ZGlmZiAtLWdpdCBhL2NsaS8uZ2l0aWdub3JlIGIvY2xpLy5naXRpZ25vcmUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjFlN2ViOAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS8uZ2l0aWdub3JlCkBAIC0wLDAgKzEsMiBAQAorbW9kZWxfaW5mb19saXN0LnB5CisKZGlmZiAtLWdpdCBhL2NsaS8ucHJvamVjdCBiL2NsaS8ucHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zNjM2YjdiCi0tLSAvZGV2L251bGwKKysrIGIvY2xpLy5wcm9qZWN0CkBAIC0wLDAgKzEsMTcgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8cHJvamVjdERlc2NyaXB0aW9uPgorCTxuYW1lPmNsaTwvbmFtZT4KKwk8Y29tbWVudD48L2NvbW1lbnQ+CisJPHByb2plY3RzPgorCTwvcHJvamVjdHM+CisJPGJ1aWxkU3BlYz4KKwkJPGJ1aWxkQ29tbWFuZD4KKwkJCTxuYW1lPm9yZy5weXRob24ucHlkZXYuUHlEZXZCdWlsZGVyPC9uYW1lPgorCQkJPGFyZ3VtZW50cz4KKwkJCTwvYXJndW1lbnRzPgorCQk8L2J1aWxkQ29tbWFuZD4KKwk8L2J1aWxkU3BlYz4KKwk8bmF0dXJlcz4KKwkJPG5hdHVyZT5vcmcucHl0aG9uLnB5ZGV2LnB5dGhvbk5hdHVyZTwvbmF0dXJlPgorCTwvbmF0dXJlcz4KKzwvcHJvamVjdERlc2NyaXB0aW9uPgpkaWZmIC0tZ2l0IGEvY2xpLy5weWRldnByb2plY3QgYi9jbGkvLnB5ZGV2cHJvamVjdApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMzdiZDI1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpLy5weWRldnByb2plY3QKQEAgLTAsMCArMSw4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCIgc3RhbmRhbG9uZT0ibm8iPz4KKzw/ZWNsaXBzZS1weWRldiB2ZXJzaW9uPSIxLjAiPz48cHlkZXZfcHJvamVjdD4KKzxweWRldl9wYXRocHJvcGVydHkgbmFtZT0ib3JnLnB5dGhvbi5weWRldi5QUk9KRUNUX1NPVVJDRV9QQVRIIj4KKzxwYXRoPi8ke1BST0pFQ1RfRElSX05BTUV9PC9wYXRoPgorPC9weWRldl9wYXRocHJvcGVydHk+Cis8cHlkZXZfcHJvcGVydHkgbmFtZT0ib3JnLnB5dGhvbi5weWRldi5QWVRIT05fUFJPSkVDVF9WRVJTSU9OIj5weXRob24gMi43PC9weWRldl9wcm9wZXJ0eT4KKzxweWRldl9wcm9wZXJ0eSBuYW1lPSJvcmcucHl0aG9uLnB5ZGV2LlBZVEhPTl9QUk9KRUNUX0lOVEVSUFJFVEVSIj5EZWZhdWx0PC9weWRldl9wcm9wZXJ0eT4KKzwvcHlkZXZfcHJvamVjdD4KZGlmZiAtLWdpdCBhL2NsaS9NQU5JRkVTVC5pbiBiL2NsaS9NQU5JRkVTVC5pbgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZTRlMTJiCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL01BTklGRVNULmluCkBAIC0wLDAgKzEsMiBAQAoraW5jbHVkZSBkYXRhL291aS50eHQKK3JlY3Vyc2l2ZS1pbmNsdWRlIGRvY3VtZW50YXRpb24gKgpkaWZmIC0tZ2l0IGEvY2xpL1JFU1BJTiBiL2NsaS9SRVNQSU4KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOThiNjJjZAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9SRVNQSU4KQEAgLTAsMCArMSBAQAorIzgvMjkvMjAxMi4xCmRpZmYgLS1naXQgYS9jbGkvX19pbml0X18ucHkgYi9jbGkvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWFiMjc4MwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKwpkaWZmIC0tZ2l0IGEvY2xpL2NfYWN0aW9ucy5weSBiL2NsaS9jX2FjdGlvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjI3MzcwOQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9jX2FjdGlvbnMucHkKQEAgLTAsMCArMSw0MTQ2IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMSwyMDEyLDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2ltcG9ydCByZQoraW1wb3J0IG51bWJlcnMKK2ltcG9ydCBjb2xsZWN0aW9ucworaW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IHR5cGVzCitpbXBvcnQganNvbgoraW1wb3J0IHRpbWUKK2ltcG9ydCBzeXMKK2ltcG9ydCBkYXRldGltZQoraW1wb3J0IG9zCitpbXBvcnQgc3VicHJvY2VzcworaW1wb3J0IHNvY2tldAoraW1wb3J0IHVybGxpYjIgIyBleGNlcHRpb24sIGR1bXBfbG9nKCkKKworaW1wb3J0IG1vZGkKK2ltcG9ydCBlcnJvcgoraW1wb3J0IGNvbW1hbmQKK2ltcG9ydCBydW5fY29uZmlnCitpbXBvcnQgcmVzdF90b19tb2RlbAoraW1wb3J0IHVybF9jYWNoZQorCitmcm9tIG1pZHcgaW1wb3J0ICoKK2Zyb20gdm5zdyBpbXBvcnQgKgorI2Zyb20gaHRtbDVsaWIuY29uc3RhbnRzIGltcG9ydCBEYXRhTG9zc1dhcm5pbmcKKworb25vcz0xCisjCisjIEFDVElPTiBQUk9DUworI0Zvcm1hdCBhY3Rpb25zIGZvciBzdGF0cyBwZXIgdGFibGUKK2RlZiByZW1vdmVfdW5pY29kZXMoYWN0aW9ucyk6CisgICAKKyAgICBpZiBhY3Rpb25zOgorICAgICAgICAjVE9ETzogQ2hlY2s6LSBXaHkgSSBoYXZlIHRvIHJlbW92ZSBsYXN0IHR3byBjaGFyYWN0ZXIgZnJvbSBzdHJpbmcKKyAgICAgICAgI2luc3RlYWQgb2YgMSBjaGFyYWN0ZXIgdG8gZ2V0IHJpZCBvZiBjb21tYSBmcm9tIGxhc3QgYWNpdG9uCisgICAgICAgIGE9JycKKyAgICAgICAgYj0nJworICAgICAgICBuZXdBY3Rpb25zPScnCisgICAgICAgIGlzUmVtb3ZlZF91ID0gRmFsc2UKKyAgICAgICAgZm9yIGNoIGluIGFjdGlvbnM6CisgICAgICAgICAgICBpZiBjaCA9PSd1JzoKKyAgICAgICAgICAgICAgICBhPSAndScKKyAgICAgICAgICAgIGlmIGNoID09J1wnJzoKKyAgICAgICAgICAgICAgICBiPSAnXCcnCisgICAgICAgICAgICAgICAgaWYgaXNSZW1vdmVkX3U6CisgICAgICAgICAgICAgICAgICAgIGlzUmVtb3ZlZF91PUZhbHNlCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgKGErYikgPT0gJ3VcJyc6CisgICAgICAgICAgICAgICAgICAgIG5ld0FjdGlvbnMgPSBuZXdBY3Rpb25zWzotMV0KKyAgICAgICAgICAgICAgICAgICAgYT0gJycKKyAgICAgICAgICAgICAgICAgICAgaXNSZW1vdmVkX3UgPSBUcnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG5ld0FjdGlvbnMgKz0gY2gKKyAgICAgICAgcmV0dXJuIG5ld0FjdGlvbnMKKyAgICBlbHNlOgorICAgICAgICAnJworZGVmIHJlbmFtZUFjdGlvbnMoYWN0aW9ucyk6CisgICAKKyAgICBhY3Rpb25zID0gYWN0aW9ucy5yZXBsYWNlKCdHT1RPX1RBQkxFJywnR09UTycpCisgICAgYWN0aW9ucyA9IGFjdGlvbnMucmVwbGFjZSgnV1JJVEVfQUNUSU9OUycsJ1dSSVRFJykKKyAgICBhY3Rpb25zID0gYWN0aW9ucy5yZXBsYWNlKCdBUFBMWV9BQ1RJT05TJywnQVBQTFknKQorICAgIGFjdGlvbnMgPSBhY3Rpb25zLnJlcGxhY2UoJ0RFQ19OV19UVEw6IFRydWUnLCdERUNfTldfVFRMJykKKyAgICBhY3Rpb25zID0gYWN0aW9ucy5yZXBsYWNlKCdQT1BfTVBMUzogVHJ1ZScsJ1BPUF9NUExTJykKKyAgICBhY3Rpb25zID0gYWN0aW9ucy5yZXBsYWNlKCdDT1BZX1RUTF9JTjogVHJ1ZScsJ0NPUFlfVFRMX0lOJykKKyAgICBhY3Rpb25zID0gYWN0aW9ucy5yZXBsYWNlKCdDT1BZX1RUTF9PVVQ6IFRydWUnLCdDT1BZX1RUTF9PVVQnKQorICAgIGFjdGlvbnMgPSBhY3Rpb25zLnJlcGxhY2UoJ0RFQ19NUExTX1RUTDogVHJ1ZScsJ0RFQ19NUExTX1RUTCcpCisgICAgYWN0aW9ucyA9IGFjdGlvbnMucmVwbGFjZSgnU0VUX0RMX1NSQycsJ1NSQ19NQUMnKQorICAgIGFjdGlvbnMgPSBhY3Rpb25zLnJlcGxhY2UoJ1NFVF9ETF9EU1QnLCdEU1RfTUFDJykKKyAgICBhY3Rpb25zID0gYWN0aW9ucy5yZXBsYWNlKCdTRVRfTldfU1JDJywnU1JDX0lQJykKKyAgICBhY3Rpb25zID0gYWN0aW9ucy5yZXBsYWNlKCdTRVRfTldfRFNUJywnRFNUX0lQJykKKyAgICBhY3Rpb25zID0gYWN0aW9ucy5yZXBsYWNlKCdDTEVBUl9BQ1RJT05TOiB7Q0xFQVJfQUNUSU9OUzogVHJ1ZX0nLCdDTEVBUl9BQ1RJT05TJykKKyAgICAKKyAgICByZXR1cm4gYWN0aW9ucworCitkZWYgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0LCBtZXNzYWdlPU5vbmUpOgorICAgIGlmIGlzaW5zdGFuY2UocmVzdWx0LCBjb2xsZWN0aW9ucy5NYXBwaW5nKToKKyAgICAgICAgZXJyb3JfdHlwZSA9IHJlc3VsdC5nZXQoJ2Vycm9yX3R5cGUnKQorICAgICAgICBpZiBlcnJvcl90eXBlOgorICAgICAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZFJlc3RFcnJvcihyZXN1bHQsIG1lc3NhZ2UpCisKK3R1bm5lbF9pZD1Ob25lCit0dW5uZWxfZGljdD17fQorZGVmIHR1bm5lbF9jcmVhdGUoZGF0YT1Ob25lKToKKyAgICBnbG9iYWwgdHVubmVsX2lkLHR1bm5lbF9kaWN0CisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgInR1bm5lbF9jcmVhdGU6IiAsIGRhdGEKKyAgICBpZiBkYXRhLmhhc19rZXkoJ3R1bm5lbC1pZCcpOgorICAgICAgICBpZiAodHVubmVsX2lkICE9IE5vbmUpOgorICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICBwcmludCAidHVubmVsX2NyZWF0ZTogcHJldmlvdXMgZGF0YSBpcyBub3QgY2xlYW5lZCB1cCIKKyAgICAgICAgICAgIHR1bm5lbF9pZD1Ob25lCisgICAgICAgICAgICB0dW5uZWxfZGljdD17fQorICAgICAgICB0dW5uZWxfaWQ9ZGF0YVsndHVubmVsLWlkJ10KKyAgICAgICAgdHVubmVsX2RpY3RbdHVubmVsX2lkXT1bXQorICAgIGlmIGRhdGEuaGFzX2tleSgnbm9kZS1sYWJlbCcpOiAgICAKKyAgICAgICAgdHVubmVsX2RpY3RbdHVubmVsX2lkXS5hcHBlbmQoZGF0YVsnbm9kZS1sYWJlbCddKQorICAgIGlmIGRhdGEuaGFzX2tleSgnYWRqYWNlbmN5LWxhYmVsJyk6ICAgIAorICAgICAgICB0dW5uZWxfZGljdFt0dW5uZWxfaWRdLmFwcGVuZChkYXRhWydhZGphY2VuY3ktbGFiZWwnXSkKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAidHVubmVsX2NyZWF0ZToiICwgdHVubmVsX2lkLCB0dW5uZWxfZGljdAorCitkZWYgdHVubmVsX2NvbmZpZ19leGl0KCk6CisgICAgZ2xvYmFsIHR1bm5lbF9pZCx0dW5uZWxfZGljdAorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJ0dW5uZWxfY29uZmlnX2V4aXQgZW50ZXJlZCIsIHR1bm5lbF9kaWN0CisgICAgaWYgdHVubmVsX2RpY3Q6CisgICAgICAgIHVybF9zdHIgPSAiIgorICAgICAgICBlbnRyaWVzID0gdHVubmVsX2RpY3RbdHVubmVsX2lkXQorICAgICAgICB1cmxfc3RyID0gImh0dHA6Ly8lcy9yZXN0L3YxL3R1bm5lbC8iICUgKHNkbnNoLmNvbnRyb2xsZXIpCisgICAgICAgIG9ial9kYXRhID0ge30KKyAgICAgICAgb2JqX2RhdGFbJ3R1bm5lbF9pZCddPXR1bm5lbF9pZAorICAgICAgICBvYmpfZGF0YVsnbGFiZWxfcGF0aCddPWVudHJpZXMKKyAgICAgICAgcmVzdWx0ID0gImZhaWwiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3VsdCA9IHNkbnNoLnN0b3JlLnJlc3RfcG9zdF9yZXF1ZXN0KHVybF9zdHIsb2JqX2RhdGEpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBlcnJvcnMgPSBzZG5zaC5yZXN0X2Vycm9yX3RvX2RpY3QoZSkKKyAgICAgICAgICAgIHByaW50IHNkbnNoLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAgICAgICAgIyBMT09LISBzdWNjZXNzZnVsIHN0dWZmIHNob3VsZCBiZSByZXR1cm5lZCBpbiBqc29uIHRvby4KKyAgICAgICAgdHVubmVsX2RpY3QgPSB7fQorICAgICAgICB0dW5uZWxfaWQgPSBOb25lCisgICAgICAgIGlmIHJlc3VsdCAhPSAic3VjY2VzcyI6CisgICAgICAgICAgICBwcmludCAiY29tbWFuZCBmYWlsZWQiCisgICAgZWxzZToKKyAgICAgICAgcHJpbnQgImVtcHR5IGNvbW1hbmQiCisgICAgI0NsZWFyIHRoZSB0cmFuc2l0IGluZm9ybWF0aW9uICAgIAorICAgICAgICAgICAgCitkZWYgdHVubmVsX3JlbW92ZShkYXRhPU5vbmUpOgorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJ0dW5uZWxfcmVtb3ZlOiIgLCBkYXRhCisgICAgdHVubmVsX2lkPWRhdGFbJ3R1bm5lbC1pZCddCisgICAgdXJsX3N0ciA9ICJodHRwOi8vJXMvcmVzdC92MS90dW5uZWwvIiAlIChzZG5zaC5jb250cm9sbGVyKQorICAgIG9ial9kYXRhID0ge30KKyAgICBvYmpfZGF0YVsndHVubmVsX2lkJ109ZGF0YVsndHVubmVsLWlkJ10KKyAgICByZXN1bHQgPSAiZmFpbCIKKyAgICB0cnk6CisgICAgICAgIHJlc3VsdCA9IHNkbnNoLnN0b3JlLnJlc3RfcG9zdF9yZXF1ZXN0KHVybF9zdHIsb2JqX2RhdGEsJ0RFTEVURScpCisgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgZXJyb3JzID0gc2Ruc2gucmVzdF9lcnJvcl90b19kaWN0KGUpCisgICAgICAgIHByaW50IHNkbnNoLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAgICBpZiBub3QgcmVzdWx0LnN0YXJ0c3dpdGgoIlNVQ0NFU1MiKToKKyAgICAgICAgcHJpbnQgcmVzdWx0CisKK3BvbGljeV9vYmpfZGF0YSA9IHt9CitkZWYgcG9saWN5X2NyZWF0ZShkYXRhPU5vbmUpOgorICAgIGdsb2JhbCBwb2xpY3lfb2JqX2RhdGEKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAicG9saWN5X2NyZWF0ZToiICwgZGF0YQorICAgIGlmIGRhdGEuaGFzX2tleSgncG9saWN5LWlkJyk6CisgICAgICAgIGlmIHBvbGljeV9vYmpfZGF0YToKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgcHJpbnQgInBvbGljeV9jcmVhdGU6IHByZXZpb3VzIGRhdGEgaXMgbm90IGNsZWFuZWQgdXAiCisgICAgICAgICAgICBwb2xpY3lfb2JqX2RhdGEgPSB7fQorICAgICAgICBwb2xpY3lfb2JqX2RhdGFbJ3BvbGljeV9pZCddID0gZGF0YVsncG9saWN5LWlkJ10KKyAgICAgICAgcG9saWN5X29ial9kYXRhWydwb2xpY3lfdHlwZSddID0gZGF0YVsncG9saWN5LXR5cGUnXQorICAgIGlmIGRhdGEuaGFzX2tleSgnc3JjX2lwJyk6CisgICAgICAgIGZvciBrZXkgaW4gZGF0YToKKyAgICAgICAgICAgIHBvbGljeV9vYmpfZGF0YVtrZXldID0gZGF0YVtrZXldCisgICAgaWYgZGF0YS5oYXNfa2V5KCdwcmlvcml0eScpOgorICAgICAgICBwb2xpY3lfb2JqX2RhdGFbJ3ByaW9yaXR5J10gPSBkYXRhWydwcmlvcml0eSddCisgICAgaWYgZGF0YS5oYXNfa2V5KCd0dW5uZWwtaWQnKToKKyAgICAgICAgcG9saWN5X29ial9kYXRhWyd0dW5uZWxfaWQnXSA9IGRhdGFbJ3R1bm5lbC1pZCddCisgICAgCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgcG9saWN5X29ial9kYXRhCisgICAgICAKK2RlZiBwb2xpY3lfY29uZmlnX2V4aXQoKToKKyAgICBnbG9iYWwgcG9saWN5X29ial9kYXRhCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgInBvbGljeV9jb25maWdfZXhpdCBlbnRlcmVkIiwgcG9saWN5X29ial9kYXRhCisgICAgaWYgcG9saWN5X29ial9kYXRhOgorICAgICAgICB1cmxfc3RyID0gImh0dHA6Ly8lcy9yZXN0L3YxL3BvbGljeS8iICUgKHNkbnNoLmNvbnRyb2xsZXIpCisgICAgICAgIHJlc3VsdCA9ICJmYWlsIgorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXN1bHQgPSBzZG5zaC5zdG9yZS5yZXN0X3Bvc3RfcmVxdWVzdCh1cmxfc3RyLHBvbGljeV9vYmpfZGF0YSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGVycm9ycyA9IHNkbnNoLnJlc3RfZXJyb3JfdG9fZGljdChlKQorICAgICAgICAgICAgcHJpbnQgc2Ruc2gucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKQorICAgICAgICBpZiByZXN1bHQgIT0gInN1Y2Nlc3MiOgorICAgICAgICAgICAgcHJpbnQgImNvbW1hbmQgZmFpbGVkIgorICAgICAgICBwb2xpY3lfb2JqX2RhdGEgPSB7fQorICAgIGVsc2U6CisgICAgICAgIHByaW50ICJlbXB0eSBjb21tYW5kIgorICAgICNDbGVhciB0aGUgdHJhbnNpdCBpbmZvcm1hdGlvbiAgICAKKyAgICAgICAgICAgIAorZGVmIHBvbGljeV9yZW1vdmUoZGF0YT1Ob25lKToKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAicG9saWN5X3JlbW92ZToiICwgZGF0YQorICAgIHBvbGljeV9pZD1kYXRhWydwb2xpY3ktaWQnXQorICAgIHVybF9zdHIgPSAiaHR0cDovLyVzL3Jlc3QvdjEvcG9saWN5LyIgJSAoc2Ruc2guY29udHJvbGxlcikKKyAgICBvYmpfZGF0YSA9IHt9CisgICAgb2JqX2RhdGFbJ3BvbGljeV9pZCddPWRhdGFbJ3BvbGljeS1pZCddCisgICAgcmVzdWx0ID0gImZhaWwiCisgICAgdHJ5OgorICAgICAgICByZXN1bHQgPSBzZG5zaC5zdG9yZS5yZXN0X3Bvc3RfcmVxdWVzdCh1cmxfc3RyLG9ial9kYXRhLCdERUxFVEUnKQorICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgIGVycm9ycyA9IHNkbnNoLnJlc3RfZXJyb3JfdG9fZGljdChlKQorICAgICAgICBwcmludCBzZG5zaC5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcnMpCisgICAgaWYgcmVzdWx0ICE9ICJkZWxldGVkIjoKKyAgICAgICAgcHJpbnQgImNvbW1hbmQgZmFpbGVkIgorICAKKyAgICAKKworZGVmIHdyaXRlX2ZpZWxkcyhvYmpfdHlwZSwgb2JqX2lkLCBkYXRhKToKKyAgICAiIiIKKyAgICBUeXBpY2FsIGFjdGlvbiB0byB1cGRhdGUgZmllbGRzIG9mIGEgcm93IGluIHRoZSBtb2RlbAorCisgICAgQHBhcmFtIG9ial90eXBlIGEgc3RyaW5nLCB0aGUgbmFtZSBvZiB0aGUgZGIgdGFibGUgdG8gdXBkYXRlCisgICAgQHBhcmFtIG9ial9pZCBhIHN0cmluZywgdGhlIHZhbHVlIG9mIHRoZSBwcmltYXJ5IGtleSBpbiBmb3IgdGhlIHRhYmxlCisgICAgQHBhcmFtIGRhdGEgYSBkaWN0LCB0aGUgbmFtZTp2YWx1ZSBwYWlycyBvZiBkYXRhIHRvIHVwZGF0ZSBpbiB0aGUgdGFibGUKKyAgICAiIiIKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAid3JpdGVfZmllbGRzOiIsIG9ial90eXBlLCBvYmpfaWQsIGRhdGEKKworICAgIHBrX25hbWUgPSBtaS5wayhvYmpfdHlwZSkKKyAgICBpZiBub3QgcGtfbmFtZToKKyAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZERlc2NyaXB0aW9uRXJyb3IoIkNhbid0IGZpbmQgcHJpbWFyeSBrZXkgbmFtZSBmb3IgdHlwZTogJXMiICUgb2JqX3R5cGUpCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgIndyaXRlX2ZpZWxkczoiLCBvYmpfdHlwZSwgcGtfbmFtZSwgb2JqX2lkLCBkYXRhCisgICAgZm9yIGZrIGluIG1pLm9ial90eXBlX2ZvcmVpZ25fa2V5cyhvYmpfdHlwZSk6CisgICAgICAgIGlmIGZrIGluIGRhdGEgYW5kIG1pLmlzX251bGxfYWxsb3dlZChvYmpfdHlwZSwgZmspOgorICAgICAgICAgICAgaWYgZGF0YVtma10gPT0gJ2RlZmF1bHQnOiAjIFhYWCBtdWNoIHRvbyBtYWdpYywgc2VlbXMgYW4gb3B0aW9uIGhlcmUgd291bGQgYmUgZ29vZAorICAgICAgICAgICAgICAgIGRhdGFbZmtdID0gTm9uZQorICAgICAgICAgICAgCisgICAgcmVzdWx0ID0gc2Ruc2gucmVzdF91cGRhdGVfb2JqZWN0KG9ial90eXBlLCBwa19uYW1lLCBvYmpfaWQsIGRhdGEpCisgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorCisKK2RlZiB2ZXJpZnlfcm93X2luY2x1ZGVzKG9ial90eXBlLCBwa192YWx1ZSwgZGF0YSwgdmVyaWZ5KToKKyAgICAiIiIKKyAgICBJbnRlbmRlZCB0byByYWlzZSBhbiBleGNlcHRpb24gd2hlbiBhIHVzZXIgZW50ZXJzICdubyBmaWVsZCB2YWx1ZScsCisgICAgYW5kIHRoZSBmaWVsZCBpc24ndCBjdXJyZW50bHkgc2V0IHRvIHZhbHVlLCAgZm9yIGV4YW1wbGU6CisgICAgJ2FkZHJlc3Mtc3BhY2UgYXMxIDsgbm8gYWRkcmVzcy1zcGFjZSBhczInLCBzaG91bGQgY29tcGxhaW4KKyAgICB0aGF0IHRoZSAnYWRkcmVzcy1zcGFjZScgZmllbGQgaXNuJ3QgY3VycmVudGx5IHNldCB0byAnYXMyJy4KKworICAgIEBwYXJhbSBvYmpfdHlwZSBhIHN0cmluZywgaWRlbnRpZmllcyB0aGUgZGIgdGFibGUKKyAgICBAcGFyYW0gcGtfdmFsdWUgYSBzdHJpbmcsIGlkZW50aWZpZXMgdGhlIHZhbHVlIGZvciB0aGUgcHJpbWFyeSBrZXkKKyAgICBAcGFyYW0gZGF0YSBpcyBhIGRpY3QsIGNvbGxlY3RpbmcgdGhlIG5hbWU6dmFsdWUgcGFpcnMgZnJvbSB0aGUgZGVzY3JpcHRpb24KKyAgICBAdmVyaWZ5IHRoZSBzdHJpbmcgb3IgbGlzdCBvZiBmaWVsZCBuYW1lcyB0byBiZSB2ZXJpZmllZAorICAgICIiIgorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJ2YWxpZGF0ZV9yb3dfaW5jbHVkZXM6Iiwgb2JqX3R5cGUsIHBrX3ZhbHVlLCBkYXRhLCB2ZXJpZnkKKworICAgIGlmIHR5cGUodmVyaWZ5KSA9PSBzdHI6CisgICAgICAgIHZlcmlmeSA9IFt2ZXJpZnldICMgaWYgbm90IGEgbGlzdCwgbWFrZSBpdCBhIGxpc3QKKworICAgIHRyeToKKyAgICAgICAgcm93ID0gc2Ruc2guZ2V0X29iamVjdF9mcm9tX3N0b3JlKG9ial90eXBlLCBwa192YWx1ZSkKKyAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICBpZiBzZG5zaC5kZWJ1ZyBvciBzZG5zaC5kZWJ1Z19iYWNrdHJhY2U6CisgICAgICAgICAgICBwcmludCAnRmFpbGVkIGxvb2t1cCBvZiAlczolczolcycsIChvYmpfdHlwZSwgcGtfdmFsdWUsIGUpCisgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKKyAgICAgICAgcmFpc2UgZXJyb3IuQXJndW1lbnRWYWxpZGF0aW9uRXJyb3IoIiVzOiAnJXMnIGRvZXNuJ3QgZXhpc3QiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9ial90eXBlLCBwa192YWx1ZSkpCisgICAgICAgIHJldHVybgorICAgIAorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJ2YWxpZGF0ZV9pbmNsdWRlczogIiwgcm93CisgICAgZm9yIGZpZWxkIGluIFt4IGZvciB4IGluIHZlcmlmeSBpZiB4IGluIGRhdGEgYW5kIHggaW4gcm93XToKKyAgICAgICAgaWYgcm93W2ZpZWxkXSAhPSBkYXRhW2ZpZWxkXToKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCIlczogJXMgZm91bmQgJyVzJyBjdXJyZW50IHZhbHVlICclcyciICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvYmpfdHlwZSwgZmllbGQsIGRhdGFbZmllbGRdLCByb3dbZmllbGRdKSkKKworCitkZWYgcmVzZXRfZmllbGRzKG9ial90eXBlLCBhcmdfZGF0YSwKKyAgICAgICAgICAgICAgICAgb2JqX2lkID0gTm9uZSwgZmllbGRzID0gTm9uZSwgbWF0Y2hfZm9yX25vID0gTm9uZSk6CisgICAgIiIiCisgICAgRm9yIGFuIG9ial90eXBlLCByZXZlcnQgZmllbGRzIGJhY2sgdG8gdGhlaXIgZGVmYXVsdCB2YWx1ZS4KKyAgICBUaGlzIGlzIHRoZSB0eXBpY2FsIGFjdGlvbiBmb3IgJ25vJyBjb21tYW5kcy4KKworICAgIFdoZW4gdmVyaWZ5IGlzIHNldCwgdGhpcyBpcyBhIHN0cmluZyBvciBsaXN0IG9mIGZpZWxkcyB3aG8ncyB2YWx1ZXMKKyAgICBtdXN0IG1hdGNoIGluIHRoZSB0YWJsZSBmb3IgdGhlIHByaW1hcnkga2V5IGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVzZXQuCisgICAgVGhpcyBhbGxvd3MgY29tbWFuZCBkZXNjcmlwdGlvbnMgdG8gaWRlbnRpZnkgYW55IGZpZWxkcyB3aGljaCBuZWVkIHRvCisgICAgYmUgY2hlY2tlZCBhZ2FpbnN0LCB3aGVuIHRoZXkgYXJlIGV4cGxpY2lkbHkgbmFtZWQgaW4gdGhlICdubycgY29tbWFuZCwKKyAgICBzbyB0aGF0ICdubyBYWFggdmFsdWUnIHdpbGwgdmVyaWZ5IHRoYXQgJ3ZhbHVlJyBtYXRjaGVzIHRoZSBjdXJyZW50IAorICAgIHJvdydzIHZhbHVlIGJlZm9yZSBhbGxvd2luZyB0aGUgcmVzZXQgdG8gY29udGludWUKKworICAgIEBwYXJhbSBvYmpfdHlwZSBhIHN0cmluZywgaWRlbnRpZmllcyB0aGUgZGIgdGFibGUKKyAgICBAcGFyYW0gb2JqX2lkIGEgc3RyaW5nLCBpZGVudGlmaWVzIHRoZSB2YWx1ZSBmb3IgdGhlIHByaW1hcnkga2V5IG9mIHRoZSByb3cgaW4gdGhlIHRhYmxlLAorICAgICAgICAgICAgcG9zc2libHkgdW5zZXQsIHRoZSBrZXkgaXMgbG9va2VkIGZvciBpbiB0aGUgYXJnX2RhdGEgaW4gdGhhdCBjYXNlLgorICAgIEBwYXJhbSBhcmdfZGF0YSBhIGRpY3QsIGNvbGxlY3Rpb24gb2YgbmFtZTp2YWx1ZSBwYWlycyBmcm9tIHRoZSBkZXNjcmlwdGlvbgorICAgIEBwYXJhbSBmaWVsZHMgYSBsaXN0LCBjb2xsZWN0aW9uIG9mIGZpZWxkcyB0byB1cGRhdGUgaW4gdGhlIHRhYmxlCisgICAgQHBhcmFtIG1hdGNoX2Zvcl9ubyBhIHN0cmluZyBvciBsaXN0LCBsaXN0IG9mIGZpZWxkcyB0byBjaGVjayBmb3IgbWF0Y2hlZCB2YWx1ZXMgaW4gYXJnX2RhdGEKKyAgICAiIiIKKworICAgIGlmIG9ial90eXBlID09IE5vbmU6CisgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCJObyBvYmplY3QgdG8gcmVzZXQgKG1pc3Npbmcgb2JqLXR5cGUpIikKKyAgICAgICAgCisgICAgcGtfbmFtZSA9IG1pLnBrKG9ial90eXBlKQorICAgICMgSWYgdGhlIGZpZWxkcyBhcmVuJ3Qgc3BlY2lmaWVkIGV4cGxpY2l0bHksIHRoZW4gZGVyaXZlIGZyb20gdGhlIGFyZ19kYXRhCisgICAgaWYgZmllbGRzIGlzIE5vbmU6CisgICAgICAgIGZpZWxkcyA9IFtdCisgICAgICAgIGZvciBmaWVsZCBpbiBhcmdfZGF0YS5rZXlzKCk6CisgICAgICAgICAgICAjIE9ubHkgYWRkIGFyZ3VtZW50cyB0aGF0IGNvcnJlc3BvbmQgdG8gdmFsaWQgZmllbGRzIGluIHRoZSBvYmplY3QKKyAgICAgICAgICAgIGlmIG1pLm9ial90eXBlX2hhc19maWVsZChvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAgICAgICAgIGlmIGZpZWxkICE9IHBrX25hbWU6ICMgZG9uJ3QgcmVzZXQgcHJpbWFyeSBrZXlzCisgICAgICAgICAgICAgICAgICAgIGZpZWxkcy5hcHBlbmQoZmllbGQpCisKKyAgICBpZiBsZW4oZmllbGRzKSA9PSAwOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcigiTm8gZmllbGRzIHRvIHJlc2V0OiB0eXBlOiAlcyIgJSBvYmpfdHlwZSkKKyAKKyAgICAjIEdldCB0aGUgcHJpbWFyeSBrZXkgbmFtZQorICAgIGlmIG5vdCBwa19uYW1lOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcigiQ2FuJ3QgZmluZCBwcmltYXJ5IGtleSBuYW1lIGZvciB0eXBlOiAlcyIgJSBvYmpfdHlwZSkKKyAgICBpZiBvYmpfaWQgPT0gTm9uZToKKyAgICAgICAgaWYgcGtfbmFtZSBpbiBhcmdfZGF0YToKKyAgICAgICAgICAgIG9ial9pZCA9IGFyZ19kYXRhW3BrX25hbWVdCisgICAgICAgIGVsaWYgbWkuZmllbGRfZGVmYXVsdF92YWx1ZShvYmpfdHlwZSwgcGtfbmFtZSk6CisgICAgICAgICAgICAjIHVudXN1YWwsIGJ1dCBub3QgaW1wb3NzaWJsZSBmb3Igc2luZ2xldG9ucworICAgICAgICAgICAgb2JqX2lkID0gbWkuZmllbGRfZGVmYXVsdF92YWx1ZShvYmpfdHlwZSwgcGtfbmFtZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCJDYW4ndCBmaW5kIGlkIHZhbHVlIG5hbWUgZm9yIHR5cGU6ICVzIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiBmaWVsZCAlcyIgJSAob2JqX3R5cGUsIHBrX25hbWUpKQorICAgIAorICAgIGlmIG1hdGNoX2Zvcl9ubzoKKyAgICAgICAgdmVyaWZ5X3Jvd19pbmNsdWRlcyhvYmpfdHlwZSwgb2JqX2lkLCBhcmdfZGF0YSwgbWF0Y2hfZm9yX25vKQorCisgICAgIyBHZXQgdGhlIGRlZmF1bHQgdmFsdWVzIG9mIHRoZSBzcGVjaWZpZWQgZmllbGQgZnJvbSBDTEkgbW9kZWwgaW5mbworICAgIGRhdGEgPSB7fQorICAgIGZvciBmaWVsZCBpbiBmaWVsZHM6CisgICAgICAgIGlmIGZpZWxkID09IHBrX25hbWU6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICB0eXBlX2luZm8gPSBtaS5jbGlfbW9kZWxfaW5mby5nZXRfZmllbGRfaW5mbyhvYmpfdHlwZSwgZmllbGQpCisgICAgICAgIGlmIHR5cGVfaW5mbyA9PSBOb25lOgorICAgICAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZERlc2NyaXB0aW9uRXJyb3IoIkNhbid0IGZpbmQgZmllbGQgZGV0YWlscyBmb3IgIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpZWxkICVzIGluIHR5cGUgJXMiICUgKGZpZWxkLCBvYmpfdHlwZSkpCisgICAgICAgIGRhdGFbZmllbGRdID0gdHlwZV9pbmZvLmdldCgnZGVmYXVsdCcpCisgICAgICAgIGlmIGRhdGFbZmllbGRdID09IE5vbmUgYW5kIHR5cGVfaW5mby5nZXQoJ3R5cGUnKSA9PSAnQm9vbGVhbkZpZWxkJzoKKyAgICAgICAgICAgIGRhdGFbZmllbGRdID0gRmFsc2UKKyAgICAgICAgIyB3aHkgZG9lcyBib29sZWFuIG5vdCByZXNwZWN0IHRoZSBkZWZhdWx0IGluIHRoZSBtb2RlbD8hPworICAgICAgICAjIGRhdGFbZmllbGRdID0gdHlwZV9pbmZvLmdldCgnZGVmYXVsdCcpIGlmIHR5cGVfaW5mby5nZXQoJ3R5cGUnKSAhPSAnQm9vbGVhbkZpZWxkJyBlbHNlIEZhbHNlCisgICAgCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgInJlc2V0X2ZpZWxkczoiLCBvYmpfdHlwZSwgcGtfbmFtZSwgb2JqX2lkLCBkYXRhLCBtYXRjaF9mb3Jfbm8KKworICAgICMgSW52b2tlIHRoZSBSRVNUIEFQSSB0byBzZXQgdGhlIGRlZmF1bHQgdmFsdWVzCisgICAgdHJ5OgorICAgICAgICByZXN1bHQgPSBzZG5zaC5yZXN0X3VwZGF0ZV9vYmplY3Qob2JqX3R5cGUsIHBrX25hbWUsIG9ial9pZCwgZGF0YSkKKyAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICBlcnJvcnMgPSBzZG5zaC5yZXN0X2Vycm9yX3RvX2RpY3QoZSwgb2JqX3R5cGUpCisgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRFcnJvcignUkVTVCcsIHNkbnNoLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykpCisKKworZGVmIG9ial90eXBlX2ZpZWxkc19oYXZlX2RlZmF1bHRfdmFsdWUob2JqX3R5cGUsIHJvdywgZGF0YSk6CisgICAgIiIiCisgICAgUmV0dXJuIFRydWUgd2hlbiBhbGwgdGhlIGZpZWxkcyBoYXZlIGEgZGVmYXVsdCB2YWx1ZSwKKyAgICByb3cgaXMgdGhlIHF1ZXJpZWQgZGF0YSBmcm9tIHRoZSBzdG9yZSwgCisgICAgZGF0YSBpcyB0aGUgZGF0YSB0byBiZSB1cGRhdGVkLgorCisgICAgVGhlIGdvYWwgaXMgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdG8gZGVsZXRlIG9yIHVwZGF0ZQorICAgIHRoZSByb3cgaW4gdGhlIHN0b3JlLgorCisgICAgIiIiCisKKyAgICBja2YgPSBbXQorICAgIGlmIG1pLmlzX2NvbXBvdW5kX2tleShvYmpfdHlwZSwgbWkucGsob2JqX3R5cGUpKToKKyAgICAgICAgIyBYWFggcHJpbWl0aXZlIGNvbXBvdW5kIGtleXMnIHRvbz8KKyAgICAgICAgY2tmID0gbWkuY29tcG91bmRfa2V5X2ZpZWxkcyhvYmpfdHlwZSwgbWkucGsob2JqX3R5cGUpKQorCisgICAgZm9yIGZpZWxkIGluIG1pLm9ial90eXBlX2ZpZWxkcyhvYmpfdHlwZSk6CisgICAgICAgIGlmIG1pLmlzX3ByaW1hcnlfa2V5KG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiBtaS5pc19mb3JlaWduX2tleShvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAgICAgIyBwZXJoYXBzIG9ubHkgYWxsb3cgYSBzaW5nbGUgZm9yZWlnbiBrZXk/CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAjIGFsc28gYW55IGZpZWxkcyB3aGljaCBhcmUgdXNlZCB0byBjb21wb3VuZCB0aGUgaWRlbnQuCisgICAgICAgIGlmIGZpZWxkIGluIGNrZjoKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICMgTmVlZHMgYSBiZXR0ZXIgd2F5IHRvIGlkZW50aWZ5IG5vbi1tb2RlbC1maWVsZHMKKyAgICAgICAgaWYgZmllbGQgPT0gJ0lkeCc6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiBtaS5pc19udWxsX2FsbG93ZWQob2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgICAgICMgZG9lcyB0aGlzIG5lZWQgdG8gYmUgbW9yZSBjb21wbGV4PworICAgICAgICAgICAgaWYgZmllbGQgaW4gZGF0YSBhbmQgZGF0YVtmaWVsZF0gIT0gTm9uZToKKyAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgICAgIGNvbnRpbnVlICMgbmV4dCBmaWVsZAorICAgICAgICBkZWZhdWx0X3ZhbHVlID0gbWkuZmllbGRfZGVmYXVsdF92YWx1ZShvYmpfdHlwZSwgZmllbGQpCisgICAgICAgIGlmIGRlZmF1bHRfdmFsdWUgPT0gTm9uZToKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgcHJpbnQgJ2RlZmF1bHRfdmFsdWU6IG5vIGRlZmF1bHQ6ICVzICVzJyAlIChvYmpfdHlwZSwgZmllbGQpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgIyBjaGVjayB0byBzZWUgaWYgdGhlIHVwZGF0ZWQgdmFsdWUgd291bGQgYmUgdGhlIGRlZmF1bHQKKyAgICAgICAgaWYgZmllbGQgaW4gZGF0YSBhbmQgZGF0YVtmaWVsZF0gIT0gZGVmYXVsdF92YWx1ZToKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgcHJpbnQgJ2RlZmF1bHRfdmFsdWU6IG5vdCBkZWZhdWx0ICVzICVzICVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIChmaWVsZCwgZGF0YVtmaWVsZF0sIGRlZmF1bHRfdmFsdWUpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgZWxpZiByb3cuZ2V0KGZpZWxkLCBkZWZhdWx0X3ZhbHVlKSAhPSBkZWZhdWx0X3ZhbHVlOgorICAgICAgICAgICAgaWYgZmllbGQgaW4gZGF0YSBhbmQgZGF0YVtmaWVsZF0gPT0gZGVmYXVsdF92YWx1ZToKKyAgICAgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgICAgICAgICBwcmludCAnZGVmYXVsdF92YWx1ZTogZGIgbm90IGRlZmF1bHQgJXMgJXMgJXMnIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJyBuZXcgdmFsdWUgaW4gZGF0YSAlcyBpcyBkZWZhdWx0JyAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmllbGQsIHJvd1tmaWVsZF0sIGRlZmF1bHRfdmFsdWUsIGRhdGFbZmllbGRdKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgICAgIHByaW50ICdkZWZhdWx0X3ZhbHVlOiBkYiBub3QgZGVmYXVsdCAlcyAlcyAlcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAoZmllbGQsIHJvd1tmaWVsZF0sIGRlZmF1bHRfdmFsdWUpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICByZXR1cm4gVHJ1ZQorCisKK2RlZiB1cGRhdGVfY29uZmlnKG9ial90eXBlLCBvYmpfaWQsIGRhdGEsIG5vX2NvbW1hbmQpOgorICAgICIiIgorICAgIHVwZGF0ZV9jb25maWcgaXMgaW50ZW5kZWQgdG8gd3JpdGUgYSByb3cgd2hlbiB0aGUgZGVzY3JpYmVkIGRhdGEKKyAgICBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgZGVmYXVsdCB2YWx1ZXMgb2YgdGhlIGZpZWxkcyBvZiAgdGhlIHJvdy4KKworICAgIFdoZW4gdGhlIGRhdGEgZGVzY3JpYmVkIGluIHRoZSBjYWxsIHVwZGF0ZXMgdGhlIGZpZWxkJ3MgdmFsdWVzCisgICAgdG8gYWxsIGRlZmF1bHQgdmFsdWVzLCB0aGUgcm93IGFzc29jaWF0ZWQgd2l0aCB0aGUgb2JqX2lkIGlzCisgICAgZGVsZXRlZC4gCisKKyAgICBUaGlzIGlzIGludGVuZGVkIHRvIGJlIHVzZWQgZm9yIG1vZGVscyB3aGljaCBjb250YWluIGNvbmZpZ3VyYXRpb24KKyAgICByb3cgZGF0YSwgYW5kIHRoYXQgZXZlcnkgZmllbGQgaGFzIGEgZGVmYXVsdCB2YWx1ZSwKKyAgICBzbyB0aGF0IHdoZW4gdGhlIGNvbmZpZyBkYXRhIGlzIHRyYW5zaXRpb25lZCB0byB0aGUgZGVmYXVsdAorICAgIHN0YXRlLCB0aGUgcm93IGlzIGludGVuZGVkIHRvIGJlIHJlbW92ZWQuICBGb3IgdGhlc2Ugc29ydHMgb2YKKyAgICBjb21tYW5kIGRlc2NyaXB0aW9ucywgdXBkYXRpbmcgYSBmaWVsZCB0byBzb21lIGRlZmF1bHQgdmFsdWUKKyAgICBtYXkgcmVzdWx0IGluIHRoZSByb3cgZ2V0dGluZyBkZWxldGVkLgorICAgICIiIgorCisgICAgY19kYXRhID0gZGljdChkYXRhKSAgIyBtYWtlIGEgbG9jYWwgY29weQorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJ1cGRhdGVfY29uZmlnOiAiLCBvYmpfdHlwZSwgb2JqX2lkLCBjX2RhdGEsIG5vX2NvbW1hbmQKKyAgICAKKyAgICBpZiBub3QgbWkub2JqX3R5cGVfZXhpc3RzKG9ial90eXBlKToKKyAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZERlc2NyaXB0aW9uRXJyb3IoIlVua25vd24gb2JqLXR5cGU6ICVzIiAlIG9ial90eXBlKQorICAgICAgICAKKyAgICAjIGNvbGxlY3QgYW55IGRpY3Qua2V5IG5hbWVzIHdoaWNoIGFyZW4ndCBmaWVsZHMgaW4gdGhlIG9iamVjdAorICAgIGZvciB1bmtub3duX2ZpZWxkIGluIFt4IGZvciB4IGluIGNfZGF0YS5rZXlzKCkgaWYgbm90IG1pLm9ial90eXBlX2hhc19maWVsZChvYmpfdHlwZSwgeCldOgorICAgICAgICBkZWwgY19kYXRhW3Vua25vd25fZmllbGRdCisKKyAgICAjIGlmIGl0cyBhIG5vIGNvbW1hbmQsIHNldCB0aGUgdmFsdWUgdG8gJ05vbmUnIGlmIGl0J3MgYWxsb3dlZCwKKyAgICAjIG9mIHRvIGl0cyBkZWZhdWx0IHZhbHVlIG90aGVyd2lzZQorICAgIGlmIG5vX2NvbW1hbmQ6CisgICAgICAgIGZvciBmaWVsZCBpbiBjX2RhdGEua2V5cygpOgorICAgICAgICAgICAgaWYgbWkuaXNfbnVsbF9hbGxvd2VkKG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICAgICAgICAgY19kYXRhW2ZpZWxkXSA9IE5vbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyByZXF1aXJlZCB0byBoYXZlIGEgZGVmYXVsdCB2YWx1ZQorICAgICAgICAgICAgICAgIGNfZGF0YVtmaWVsZF0gPSBtaS5maWVsZF9kZWZhdWx0X3ZhbHVlKG9ial90eXBlLCBmaWVsZCkKKyAgICAgICAgICAgIAorICAgICMgR2V0IHRoZSBwcmltYXJ5IGtleSBuYW1lCisgICAgcGtfbmFtZSA9IG1pLnBrKG9ial90eXBlKQorICAgIGlmIG5vdCBwa19uYW1lOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcigiQ2FuJ3QgZmluZCBwcmltYXJ5IGtleSBuYW1lIGZvciB0eXBlOiAlcyIgJSBvYmpfdHlwZSkKKyAgICBwa192YWx1ZSA9IG9ial9pZAorICAgIGlmIHBrX25hbWUgaW4gZGF0YToKKyAgICAgICAgcGtfdmFsdWUgPSBkYXRhW3BrX25hbWVdCisgICAgaWYgcGtfbmFtZSBpbiBjX2RhdGE6CisgICAgICAgIGRlbCBjX2RhdGFbcGtfbmFtZV0KKyAgICAKKyAgICAjIFF1ZXJ5IGZvciB0aGUgcm93LCBpZiBpdCBkb2Vzbid0IGV4aXN0LCBjcmVhdGUgdGhlIGl0ZW0gaWYgYW55IGl0ZW0gaXNuJ3QgZGVmYXVsdAorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJ1cGRhdGVfY29uZmlnOiBxdWVyeToiLCBvYmpfdHlwZSwgcGtfdmFsdWUKKworICAgIHJlc3VsdCA9IHNkbnNoLnJlc3RfcXVlcnlfb2JqZWN0cyhvYmpfdHlwZSwgeyBwa19uYW1lIDogcGtfdmFsdWUgfSkKKyAgICBjaGVja19yZXN0X3Jlc3VsdChyZXN1bHQpCisgICAgaWYgbGVuKHJlc3VsdCkgPT0gMDoKKyAgICAgICAgIyByZXN1bHRbMF0gLT4gZGljdGlvbmFyeSBvZiBmaWVsZDp2YWx1ZSBwYWlycworICAgICAgICAjIGNoZWNrIHRvIGVuc3VyZSBjX2RhdGEgaXNuJ3QganVzdCBkZWZhdWx0IHJvdyB2YWx1ZXMKKyAgICAgICAgaWYgbm90IG9ial90eXBlX2ZpZWxkc19oYXZlX2RlZmF1bHRfdmFsdWUob2JqX3R5cGUsIHt9LCBjX2RhdGEpOgorICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICBwcmludCAidXBkYXRlX2NvbmZpZzogY3JlYXRlOiIsIG9ial90eXBlLCBjX2RhdGEKKyAgICAgICAgICAgICMgcG9wdWxhdGUgdGhlIGNyZWF0ZSBkaWN0aW9uYXJ5CisgICAgICAgICAgICBjcmVhdGVfZGljdCA9IGRpY3QoY19kYXRhKQorICAgICAgICAgICAgY3JlYXRlX2RpY3RbcGtfbmFtZV0gPSBwa192YWx1ZQorICAgICAgICAgICAgcmVzdWx0ID0gc2Ruc2gucmVzdF9jcmVhdGVfb2JqZWN0KG9ial90eXBlLCBjcmVhdGVfZGljdCkKKyAgICAgICAgICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgcHJpbnQgInVwZGF0ZV9jb25maWc6IG5vIGN1cnJlbnQgcm93IgorICAgICAgICByZXR1cm4KKyAgICBlbHNlOgorICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgcHJpbnQgInVwZGF0ZV9jb25maWc6IGZvdW5kIHJvdyIsIHJlc3VsdFswXQorCisgICAgaWYgbGVuKHJlc3VsdCkgPiAxOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kSW50ZXJuYWxFcnJvcigiTXVsdGlwbGUgcm93cyBmb3Igb2JqLXR5cGU6ICVzOiBwayAlcyIgJSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob2JqX3R5cGUsIHBrX3ZhbHVlKSkKKworICAgICMgU2VlIGlmIHRoZSBjb21wbGV0ZSByb3cgbmVlZHMgdG8gYmUgZGVsZXRlZC4KKyAgICAjIEZvciBlYWNoIG9mIHRoZSBjdXJyZW50IGZpZWxkcywgaWYgYSBmaWVsZCdzIGRlZmF1bHQgZG9lc24ndCBleGlzdCwKKyAgICAjIHNraXAgdGhlIHJvdyBkZWxldGUsIG9yIGlmIGFueSBmaWVsZCBoYXMgYSBub24tZGVmYXVsdCB2YWx1ZSwgdXBkYXRlCisgICAgIyB0aGUgcmVxdWVzdGVkIGZpZWxkcyBpbnN0ZWFkIG9mIGRlbGV0aW5nIHRoZSByb3cuCisgICAgaWYgb2JqX3R5cGVfZmllbGRzX2hhdmVfZGVmYXVsdF92YWx1ZShvYmpfdHlwZSwgcmVzdWx0WzBdLCBjX2RhdGEpOgorICAgICAgICAjIGlmIHRoZSB0YWJsZSBoYXMgZm9yZWlnbiBrZXlzLCBjaGVjayBubyBjaGlsZHJlbiByZWZlciB0byB0aGlzIHRhYmxlLgorICAgICAgICBub19mb3JlaWduX2tleXNfYWN0aXZlID0gVHJ1ZQorICAgICAgICBpZiBvYmpfdHlwZSBpbiBtaS5mb3JlaWduX2tleV94cmVmOgorICAgICAgICAgICAgZm9yIChma19vYmpfdHlwZSwgZmtfZm4pIGluIG1pLmZvcmVpZ25fa2V5X3hyZWZbb2JqX3R5cGVdW21pLnBrKG9ial90eXBlKV06CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICByb3dzID0gc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoZmtfb2JqX3R5cGUsIGZrX2ZuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGtfdmFsdWUsICJleGFjdCIpCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICAgICAgcm93cyA9IFtdCisgICAgICAgICAgICAgICAgaWYgbGVuKHJvd3MpOgorICAgICAgICAgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgInVwZGF0ZV9jb25maWc6IGZvcmVpZ24ga2V5IGFjdGl2ZToiLCBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmtfb2JqX3R5cGUsIGZrX2ZuLCBwa192YWx1ZQorICAgICAgICAgICAgICAgICAgICBub19mb3JlaWduX2tleXNfYWN0aXZlID0gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICBpZiBub19mb3JlaWduX2tleXNfYWN0aXZlOgorICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICBwcmludCAidXBkYXRlX2NvbmZpZzogZGVsZXRlOiIsIG9ial90eXBlLCBwa192YWx1ZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGRlbGV0ZV9yZXN1bHQgPSBzZG5zaC5yZXN0X2RlbGV0ZV9vYmplY3RzKG9ial90eXBlLCB7IHBrX25hbWUgOiBwa192YWx1ZSB9KQorICAgICAgICAgICAgICAgIGNoZWNrX3Jlc3RfcmVzdWx0KGRlbGV0ZV9yZXN1bHQpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIGVycm9ycyA9IHNkbnNoLnJlc3RfZXJyb3JfdG9fZGljdChlKQorICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRJbnZvY2F0aW9uRXJyb3Ioc2Ruc2gucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKSkKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICAjIFhYWCBpZiBhIHJvdyBmcm9tIHNvbWUgdGFibGUgaXMgcmVtb3ZlZCwgYW5kIHRoYXQgdGFibGUgaXMgdXNpbmcKKyAgICAgICAgIyBmb3JlaWduIGtleXMsIHRoZW4gdGhlIHRhYmxlIHdoaWNoIGlzIHJlZmVyZWQgdG8gb3VnaHQgdG8gYmUKKyAgICAgICAgIyByZXZpZXdlZCwgdG8gc2VlIGlmIGFsbCB0aGUgZW50cmllcyBvZiB0aGUgcm93IHdoaWNoIHRoaXMgdGFibGUKKyAgICAgICAgIyByZWZlcidzIHRvIGFyZSBkZWZhdWx0LCBhbmQgaWYgdGhhdCBwYXJlbnQgdGFibGUgaXMgYSBjb25maWctc3R5bGUKKyAgICAgICAgIyB0YWJsZSwgd2l0aCBhbGwgZGVmYXVsdCB2YWx1ZXMgZm9yIGV2ZXJ5IGZpZWxkLCB0aGVyZSdzIGEgZ29vZAorICAgICAgICAjIGFyZ3VtZW50IHRoYXQgdGhlIHJvdyBvdWdodCB0byBiZSByZW1vdmVkLgorICAgICAgICAKKyAgICAjIFNlZSBpZiBhbnkgb2YgdGhlIGNfZGF0YSBpdGVtcyBpbiB0aGUgbWF0Y2hpbmcgcm93IGFyZSBkaWZmZXJlbnQKKyAgICAjIChpZTogaXMgdGhpcyB1cGRhdGUgcmVhbGx5IG5lY2Vzc2FyeT8pCisgICAgdXBkYXRlX25lY2Vzc2FyeSA9IEZhbHNlCisgICAgZm9yIChuYW1lLCB2YWx1ZSkgaW4gY19kYXRhLml0ZW1zKCk6CisgICAgICAgIGlmIG5hbWUgaW4gcmVzdWx0WzBdOgorICAgICAgICAgICAgaWYgdmFsdWUgIT0gcmVzdWx0WzBdW25hbWVdOgorICAgICAgICAgICAgICAgIHVwZGF0ZV9uZWNlc3NhcnkgPSBUcnVlCisgICAgICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgInVwZGF0ZV9jb25maWc6IHVwZGF0ZSBuZWNlc3Nhcnk6IiwgbmFtZSwgcmVzdWx0WzBdW25hbWVdLCB2YWx1ZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdXBkYXRlX25lY2Vzc2FyeSA9IFRydWUKKworICAgIGlmIG5vdCB1cGRhdGVfbmVjZXNzYXJ5OgorICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgcHJpbnQgInVwZGF0ZV9jb25maWc6IG5vIHVwZGF0ZSBuZWVkZWQiLCBvYmpfdHlwZSwgcGtfbmFtZSwgcGtfdmFsdWUKKyAgICAgICAgcmV0dXJuCisKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAidXBkYXRlX2NvbmZpZzogdXBkYXRlOiIsIG9ial90eXBlLCBwa19uYW1lLCBwa192YWx1ZSwgY19kYXRhCisgICAgIyBJbnZva2UgdGhlIFJFU1QgQVBJIHRvIHNldCB0aGUgZGVmYXVsdCB2YWx1ZXMKKyAgICByZXN1bHQgPSBzZG5zaC5yZXN0X3VwZGF0ZV9vYmplY3Qob2JqX3R5cGUsIHBrX25hbWUsIHBrX3ZhbHVlLCBjX2RhdGEpCisgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorCisKK2RlZiBkZWxldGVfb2JqZWN0cyhvYmpfdHlwZSwgZGF0YSwgcGFyZW50X2ZpZWxkPU5vbmUsIHBhcmVudF9pZD1Ob25lKToKKyAgICAiIiIKKyAgICBEZWxldGUgYSByb3cgaW4gdGhlIHRhYmxlLgorCisgICAgQHBhcmFtIG9ial90eXBlIGEgc3RyaW5nLCB0aGUgbmFtZSBvZiB0aGUgdGFibGUgdG8gdXBkYXRlCisgICAgQHBhcmFtIGRhdGEgYSBkaWN0aW9uYXJ5LCBuYW1lOnZhbHVlIHBhaXJzIHRvIGRlc2NyaWJlIHRoZSBkZWxldGUKKyAgICBAcGFyYW0gcGFyZW50X2ZpZWxkIGEgc3RyaW5nLCB0aGUgbmFtZSBvZiBhIGZpZWxkIGluIHRoZSBvYmpfdHlwZSwKKyAgICAgICAgICAgIGlkZW50aWZ5aW5nIGEgcmVsYXRpb25zaGlwIGJldHdlZW4gdGhpcyB0YWJsZSwgYW5kIGFub3RoZXIgdGFibGUKKyAgICBAcGFyYW0gcGFyZW50X2lkIGEgc3RyaW5nLCB0aGUgdmFsdWUgb2YgdGhlIHBhcmVudF9maWVsZCwgdG8gaWRlbnRpZnkKKyAgICAgICAgICAgIGFub3RoZXIgcm93IGluIHRoZSBvdGhlciB0YWJsZSBpZGVudGlmaWVkIGJ5IGEgZmllbGQgaW4gdGhpcyB0YWJsZQorICAgICIiIgorCisgICAgcGtfbmFtZSA9IG1pLnBrKG9ial90eXBlKQorICAgIGlmIG5vdCBwa19uYW1lOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcigiQ2FuJ3QgZmluZCBwcmltYXJ5IGtleSBuYW1lIGZvciB0eXBlOiAlcyIgJSBvYmpfdHlwZSkKKworICAgIHF1ZXJ5X2RhdGEgPSBkaWN0KGRhdGEpCisgICAgaWYgcGFyZW50X2ZpZWxkOgorICAgICAgICBxdWVyeV9kYXRhW3BhcmVudF9maWVsZF0gPSBwYXJlbnRfaWQKKworICAgICMgY2FzZSBjb252ZXJzaW9uCisgICAgZm9yIGZpZWxkIGluIGRhdGE6CisgICAgICAgIGlmIG1pLm9ial90eXBlX2hhc19maWVsZChvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAgICAgY2FzZSA9IG1pLmdldF9vYmpfdHlwZV9maWVsZF9jYXNlX3NlbnNpdGl2ZShvYmpfdHlwZSwgZmllbGQpCisgICAgICAgICAgICBpZiBjYXNlOgorICAgICAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgICAgIHByaW50ICdkZWxldGVfb2JqZWN0czogY2FzZSBjb252ZXJ0ICVzOiVzIHRvICVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG9ial90eXBlLCBmaWVsZCwgY2FzZSkKKyAgICAgICAgICAgICAgICBkYXRhW2ZpZWxkXSA9IHV0aWYuY29udmVydF9jYXNlKGNhc2UsIGRhdGFbZmllbGRdKQorCisgICAgcXVlcnlfcmVzdWx0ID0gc2Ruc2gucmVzdF9xdWVyeV9vYmplY3RzKG9ial90eXBlLCBxdWVyeV9kYXRhKQorICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHF1ZXJ5X3Jlc3VsdCkKKyAgICAjCisgICAgIyBpZiB0aGVyZSB3ZXJlIG5vIHJlc3VsdHMsIHRyeSB0byBkZWxldGUgYnkgcmVtb3ZpbmcgYW55CisgICAgIyBpdGVtcyB3aGljaCBoYXZlICJOb25lIiB2YWx1ZXMKKyAgICBpZiBsZW4ocXVlcnlfcmVzdWx0KSA9PSAwOgorICAgICAgICBmb3Iga2V5IGluIHF1ZXJ5X2RhdGEua2V5cygpOgorICAgICAgICAgICAgaWYgcXVlcnlfZGF0YVtrZXldID09IE5vbmU6CisgICAgICAgICAgICAgICAgZGVsIHF1ZXJ5X2RhdGFba2V5XQorICAgICAgICBxdWVyeV9yZXN1bHQgPSBzZG5zaC5yZXN0X3F1ZXJ5X29iamVjdHMob2JqX3R5cGUsIHF1ZXJ5X2RhdGEpCisgICAgICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHF1ZXJ5X3Jlc3VsdCkKKworICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJkZWxldGVfb2JqZWN0czoiLCBvYmpfdHlwZSwgcXVlcnlfZGF0YQorICAgIGRlbGV0ZV9yZXN1bHQgPSBzZG5zaC5yZXN0X2RlbGV0ZV9vYmplY3RzKG9ial90eXBlLCBxdWVyeV9kYXRhKQorICAgIGNoZWNrX3Jlc3RfcmVzdWx0KGRlbGV0ZV9yZXN1bHQpCisKKyAgICBmb3IgaXRlbSBpbiBxdWVyeV9yZXN1bHQ6CisgICAgICAgIGtleSA9IGl0ZW1bcGtfbmFtZV0KKyAgICAgICAgc2Ruc2guY2FzY2FkZV9kZWxldGUob2JqX3R5cGUsIGtleSkKKworCitkZWYgc2V0X2RhdGEoZGF0YSwga2V5LCB2YWx1ZSk6CisgICAgIiIiCisgICAgQWN0aW9uIHRvIGFzc29jaWF0ZSBhIG5ldyBuYW1lOnZhbHVlIHBhaXIgd2l0aCAnZGF0YScsIHRoZSBkaWN0aW9uYXJ5IHVzZWQgCisgICAgdG8gcGFzcyB0byBSRVNUIEFQSSdzLiAgIEFsbG93cyB0aGUgYWN0aW9uIHRvIGRlc2NyaWJlIGEgdmFsdWUgZm9yIGEgZmllbGQKKyAgICB3aGljaCB3YXNuJ3QgZGlyZWN0bHkgbmFtZWQgaW4gdGhlIGRlc2NyaXB0aW9uLgorCisgICAgIiIiCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgInNldF9kYXRhOiIsIGRhdGEsIGtleSwgdmFsdWUKKyAgICBkYXRhW2tleV0gPSB2YWx1ZQorCisKK2RlZiB3cml0ZV9vYmplY3Qob2JqX3R5cGUsIGRhdGEsIHBhcmVudF9maWVsZD1Ob25lLCBwYXJlbnRfaWQ9Tm9uZSk6CisgICAgIiIiCisgICAgV3JpdGUgYSBuZXcgcm93IGludG8gYSBzcGVjaWZpYyB0YWJsZS4KKworICAgICIiIgorICAgICMgSWYgd2UncmUgcHVzaGluZyBhIGNvbmZpZyBzdWJtb2RlIHdpdGggYW4gb2JqZWN0LCB0aGVuIHdlIG5lZWQgdG8gZXh0ZW5kIHRoZQorICAgICMgYXJndW1lbnQgZGF0YSB0aGF0IHdhcyBlbnRlcmVkIGV4cGxpY2l0bHkgaW4gdGhlIGNvbW1hbmQgd2l0aCB0aGUgaW5mb3JtYXRpb24KKyAgICAjIGFib3V0IHRoZSBwYXJlbnQgb2JqZWN0IChieSBkZWZhdWx0IG9idGFpbmVkIGJ5IGxvb2tpbmcgYXQgdGhlIG9iaiBpbmZvIG9uCisgICAgIyB0aGUgbW9kZSBzdGFjayAtLSBzZWUgZGVmYXVsdCBhcmd1bWVudHMgZm9yIHRoaXMgYWN0aW9uIHdoZW4gaXQgaXMgYWRkZWQpLgorCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgJ3dyaXRlX29iamVjdDogcGFyYW1zICcsIG9ial90eXBlLCBkYXRhLCBwYXJlbnRfZmllbGQsIHBhcmVudF9pZAorICAgIGRhdGEgPSBkaWN0KGRhdGEpICMgZGF0YSBpcyBvdmVyd3JpdGVuIGluIHZhcmlvdXMgc2l0dWF0aW9ucyBiZWxvdworICAgIGlmIHBhcmVudF9maWVsZDoKKyAgICAgICAgaWYgbm90IHBhcmVudF9pZDoKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCdJbnZhbGlkIGNvbW1hbmQgZGVzY3JpcHRpb247JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbXByb3Blcmx5IGNvbmZpZ3VyZWQgcGFyZW50IGluZm8gZm9yIGNyZWF0ZS1vYmplY3QnKQorICAgICAgICBkYXRhW3BhcmVudF9maWVsZF0gPSBwYXJlbnRfaWQKKworICAgIHBrX25hbWUgPSBtaS5wayhvYmpfdHlwZSkKKyAgICBpZiBub3QgcGtfbmFtZToKKyAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZERlc2NyaXB0aW9uRXJyb3IoIkNhbid0IGZpbmQgcHJpbWFyeSBrZXkgbmFtZSBmb3IgdHlwZTogJXMiICUgb2JqX3R5cGUpCisKKyAgICAjIGxvb2sgZm9yIHVucG9wdWxhdGVkIGZvcmVpZ24ga2V5cy4KKyAgICBma3MgPSBtaS5vYmpfdHlwZV9mb3JlaWduX2tleXMob2JqX3R5cGUpCisgICAgaWYgZmtzOgorICAgICAgICBmb3IgZmsgaW4gZmtzOgorICAgICAgICAgICAgKGZrX29iaiwgZmtfbm0pID0gbWkuZm9yZWlnbl9rZXlfcmVmZXJlbmNlcyhvYmpfdHlwZSwgZmspCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiBub3QgZmsgaW4gZGF0YSBvciBcCisgICAgICAgICAgICAgICAobWkuaXNfY29tcG91bmRfa2V5KGZrX29iaiwgZmtfbm0pIGFuZCBkYXRhW2ZrXS5maW5kKCd8JykgPT0gLTEpOgorICAgICAgICAgICAgICAgICMgdXNlIHZhcmlvdXMgdGVjaG5pcXVlcyB0byBwb3B1bGF0ZSB0aGUgZm9yZWlnbiBrZXkKKyAgICAgICAgICAgICAgICAjIC0gaWYgdGhlIGZvcmVpZ24ga2V5IGlzIGZvciBjbGFzcyB3aGljaCBoYXMgYSBjb21wb3VuZCBrZXksIHNlZSBpZiBhbGwgdGhlCisgICAgICAgICAgICAgICAgIyAgIHBhcnRzIG9mIHRoZSBjb21wb3VuZCBrZXkgYXJlIHByZXNlbnQKKworICAgICAgICAgICAgICAgIGlmIG1pLmlzX2NvbXBvdW5kX2tleShma19vYmosIGZrX25tKToKKyAgICAgICAgICAgICAgICAgICAga2ZzID0gbWkuZGVlcF9jb21wb3VuZF9rZXlfZmllbGRzKGZrX29iaiwgZmtfbm0pCisgICAgICAgICAgICAgICAgICAgIG1pc3NpbmcgPSBbeCBmb3IgeCBpbiBrZnMgaWYgbm90IHggaW4gZGF0YV0KKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKG1pc3NpbmcpID09IDA6CisgICAgICAgICAgICAgICAgICAgICAgICAjIHJlbW92ZSB0aGUgZW50cmllcywgYnVpbGQgdGhlIGNvbXBvdW5kIGtleSBmb3IgdGhlIGZvcmVpZ24ga2V5IHJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3ZhbHVlID0gbWkuY29tcG91bmRfa2V5X3NlcGFyYXRvcihma19vYmosIGZrX25tKS5cCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqb2luKFtkYXRhW3hdIGZvciB4IGluIGtmc10pCisgICAgICAgICAgICAgICAgICAgICAgICAjIHZlcmlmeSB0aGUgZm9yZWlnbiBrZXkgZXhpc3RzLCBpZiBub3QgY29tcGxhaW4gYW5kIHJldHVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICMgcHJldmVudGluZyBhIGVycm9yIGR1cmluZyB0aGUgY3JlYXRlIHJlcXVlc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5X3Jlc3VsdCA9IHNkbnNoLnJlc3RfcXVlcnlfb2JqZWN0cyggZmtfb2JqLCB7IGZrX25tIDogbmV3X3ZhbHVlIH0pCisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja19yZXN0X3Jlc3VsdChxdWVyeV9yZXN1bHQpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBsZW4ocXVlcnlfcmVzdWx0KSA9PSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpvaW5hYmxlX25hbWUgPSBbIiVzOiAlcyIgJSAoeCwgZGF0YVt4XSkgZm9yIHggaW4ga2ZzXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRTZW1hbnRpY0Vycm9yKCJSZWZlcmVuY2UgdG8gbm9uLWV4aXN0YW50IG9iamVjdDogJXMgIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLCAnLmpvaW4oam9pbmFibGVfbmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcmZuIGluIGtmczogIyByZW1vdmUgZmllbGQgbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbCBkYXRhW3Jmbl0KKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbZmtdID0gbmV3X3ZhbHVlCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcXIgPSBzZG5zaC5yZXN0X3F1ZXJ5X29iamVjdHMoZmtfb2JqLCBkYXRhKQorICAgICAgICAgICAgICAgICAgICBpZiBsZW4ocXIpID09IDE6CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2ZrXSA9IHFyWzBdW21pLnBrKGZrX29iaildCisKKyAgICBpZiBwa19uYW1lIGluIGRhdGE6CisgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICBwcmludCBjb21tYW5kLl9saW5lKCksICd3cml0ZV9vYmplY3Q6IHF1ZXJ5IHBrX25hbWUgJywgb2JqX3R5cGUsIHBrX25hbWUsIGRhdGEKKyAgICAgICAgY2FzZSA9ICBtaS5nZXRfb2JqX3R5cGVfZmllbGRfY2FzZV9zZW5zaXRpdmUob2JqX3R5cGUsIHBrX25hbWUpCisgICAgICAgIGlmIGNhc2U6CisgICAgICAgICAgICBkYXRhW3BrX25hbWVdID0gdXRpZi5jb252ZXJ0X2Nhc2UoY2FzZSwgZGF0YVtwa19uYW1lXSkKKyAgICAgICAgcXVlcnlfcmVzdWx0ID0gc2Ruc2gucmVzdF9xdWVyeV9vYmplY3RzKG9ial90eXBlLCB7IHBrX25hbWUgOiBkYXRhW3BrX25hbWVdfSkKKyAgICBlbHNlOgorICAgICAgICBxdWVyeV9kYXRhID0gZGljdChbW24sdl0gZm9yIChuLHYpIGluIGRhdGEuaXRlbXMoKSBpZiB2ICE9IE5vbmVdKQorICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgcHJpbnQgY29tbWFuZC5fbGluZSgpLCAnd3JpdGVfb2JqZWN0OiBxdWVyeSAnLCBvYmpfdHlwZSwgcXVlcnlfZGF0YQorICAgICAgICBxdWVyeV9yZXN1bHQgPSBzZG5zaC5yZXN0X3F1ZXJ5X29iamVjdHMob2JqX3R5cGUsIHF1ZXJ5X2RhdGEpCisgICAgY2hlY2tfcmVzdF9yZXN1bHQocXVlcnlfcmVzdWx0KQorIAorICAgICMgQ29uc2lkZXIgY2hlY2tpbmcgdG8gc2VlIGlmIGFsbCB0aGUgZmllbGRzIGxpc3RlZCBoZXJlCisgICAgIyBhbHJlYWR5IG1hdGNoIGEgcXVlcmllZCByZXN1bHQsIGlmIHNvLCBubyB3cml0ZSBpcyBuZWVkZWQKKworICAgIGlmIChsZW4ocXVlcnlfcmVzdWx0KSA+IDApIGFuZCAocGtfbmFtZSBpbiBkYXRhKToKKyAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgIHByaW50ICJ3cml0ZV9vYmplY3Q6IHVwZGF0ZSBvYmplY3QiLCBvYmpfdHlwZSwgcGtfbmFtZSwgZGF0YQorICAgICAgICByZXN1bHQgPSBzZG5zaC5yZXN0X3VwZGF0ZV9vYmplY3Qob2JqX3R5cGUsIHBrX25hbWUsIGRhdGFbcGtfbmFtZV0sIGRhdGEpCisgICAgZWxzZToKKyAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgIHByaW50ICJ3cml0ZV9vYmplY3Q6IGNyZWF0ZV9vYmplY3QiLCBvYmpfdHlwZSwgZGF0YQorICAgICAgICByZXN1bHQgPSBzZG5zaC5yZXN0X2NyZWF0ZV9vYmplY3Qob2JqX3R5cGUsIGRhdGEpCisgICAgICAgIAorICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCkKKworICAgIGZvciBpdGVtIGluIHF1ZXJ5X3Jlc3VsdDoKKyAgICAgICAga2V5ID0gaXRlbVtwa19uYW1lXQorICAgICAgICBzZG5zaC5jYXNjYWRlX2RlbGV0ZShvYmpfdHlwZSwga2V5KQorCisKK2RlZiBkZWxldGVfb2JqZWN0KG9ial90eXBlLCBkYXRhLCBwYXJlbnRfZmllbGQ9Tm9uZSwgcGFyZW50X2lkPU5vbmUpOgorICAgIGdsb2JhbCBzZG5zaAorCisgICAgZGF0YSA9IGRpY3QoZGF0YSkKKyAgICBpZiBwYXJlbnRfZmllbGQ6CisgICAgICAgIGlmIG5vdCBwYXJlbnRfaWQ6CisgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcignSW52YWxpZCBjb21tYW5kIGRlc2NyaXB0aW9uOycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW1wcm9wZXJseSBjb25maWd1cmVkIHBhcmVudCBpbmZvIGZvciBkZWxldGUtb2JqZWN0JykKKyAgICAgICAgZGF0YVtwYXJlbnRfZmllbGRdID0gcGFyZW50X2lkCisKKyAgICAjIGNhc2UgY29udmVyc2lvbgorICAgIGZvciBmaWVsZCBpbiBkYXRhOgorICAgICAgICBpZiBtaS5vYmpfdHlwZV9oYXNfZmllbGQob2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgICAgIGNhc2UgPSBtaS5nZXRfb2JqX3R5cGVfZmllbGRfY2FzZV9zZW5zaXRpdmUob2JqX3R5cGUsIGZpZWxkKQorICAgICAgICAgICAgaWYgY2FzZToKKyAgICAgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgICAgICAgICBwcmludCAnZGVsZXRlX29iamVjdDogY2FzZSBjb252ZXJ0ICVzOiVzIHRvICVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG9ial90eXBlLCBmaWVsZCwgY2FzZSkKKyAgICAgICAgICAgICAgICBkYXRhW2ZpZWxkXSA9IHV0aWYuY29udmVydF9jYXNlKGNhc2UsIGRhdGFbZmllbGRdKQorCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgImRlbGV0ZV9vYmplY3Q6ICIsIG9ial90eXBlLCBkYXRhCisgICAgcmVzdWx0ID0gc2Ruc2gucmVzdF9kZWxldGVfb2JqZWN0cyhvYmpfdHlwZSwgZGF0YSkKKyAgICBjaGVja19yZXN0X3Jlc3VsdChyZXN1bHQpCisKKworZGVmIHB1c2hfbW9kZV9zdGFjayhtb2RlX25hbWUsIG9ial90eXBlLCBkYXRhLCBwYXJlbnRfZmllbGQgPSBOb25lLCBwYXJlbnRfaWQgPSBOb25lLCBjcmVhdGU9VHJ1ZSk6CisgICAgIiIiCisgICAgUHVzaCBhIHN1Ym1vZGUgb24gdGhlIGNvbmZpZyBzdGFjay4KKyAgICAiIiIKKyAgICBnbG9iYWwgc2Ruc2gsIG1vZGkKKworICAgICMgU29tZSBmZXcgbWlub3IgdmFsaWRhdGlvbnM6IGVuYWJsZSBvbmx5IGluIGxvZ2luLCBjb25maWcgb25seSBpbiBlbmFibGUsCisgICAgIyBhbmQgYWRkaXRpb25hbCBjb25maWcgbW9kZXMgbXVzdCBhbHNvIGhhdmUgdGhlIHNhbWUgcHJlZml4IGFzIHRoZQorICAgICMgY3VycmVudCBtb2RlLgorICAgIGN1cnJlbnRfbW9kZSA9IHNkbnNoLmN1cnJlbnRfbW9kZSgpCisKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAicHVzaF9tb2RlOiAiLCBtb2RlX25hbWUsIG9ial90eXBlLCBkYXRhLCBwYXJlbnRfZmllbGQsIHBhcmVudF9pZAorCisgICAgIyBTZWUgaWYgdGhpcyBpcyBhIG5lc3RlZCBzdWJtb2RlLCBvciB3aGV0aGVyIHNvbWUgY3VycmVudCBtb2RlcworICAgICMgbmVlZCB0byBiZSBwb3BwZWQuCisgICAgaWYgKG1vZGVfbmFtZS5zdGFydHN3aXRoKCdjb25maWctJykgYW5kIAorICAgICAgKG5vdCBtb2RlX25hbWUuc3RhcnRzd2l0aChjdXJyZW50X21vZGUpIG9yIChtb2RlX25hbWUgPT0gY3VycmVudF9tb2RlKSkpOgorCisgICAgICAgIHNkbnNoLnBvcF9tb2RlKCkKKyAgICAgICAgY3VycmVudF9tb2RlID0gc2Ruc2guY3VycmVudF9tb2RlKCkKKyAgICAgICAgIyBwb3AgdW50aWwgaXQgaXQgbWF0Y2hlcworICAgICAgICB3aGlsZSBub3QgbW9kZV9uYW1lLnN0YXJ0c3dpdGgoY3VycmVudF9tb2RlKToKKyAgICAgICAgICAgIGlmIGxlbihzZG5zaC5tb2RlX3N0YWNrKSA9PSAwOgorICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRTZW1hbnRpY0Vycm9yKCclcyBub3QgdmFsaWQgd2l0aGluICVzIG1vZGUnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZV9uYW1lLCBjdXJyZW50X21vZGUpKQorICAgICAgICAgICAgc2Ruc2gucG9wX21vZGUoKQorICAgICAgICAgICAgY3VycmVudF9tb2RlID0gc2Ruc2guY3VycmVudF9tb2RlKCkKKworICAgICAgICAjIGlmIHRoZXJlJ3MgYSBwYXJlbnQgaWQsIGl0IGlzIHR5cGljYWxseSB0aGUgcGFyZW50LCBhbmQgYXVkaXQKKyAgICAgICAgIyBvdWdodCB0byBiZSBkb25lIHRvIHZlcmlmeSB0aGlzCisgICAgICAgIGlmIHBhcmVudF9maWVsZDoKKyAgICAgICAgICAgIGRhdGEgPSBkaWN0KGRhdGEpCisgICAgICAgICAgICBkYXRhW3BhcmVudF9maWVsZF0gPSBzZG5zaC5nZXRfY3VycmVudF9tb2RlX29iaigpCisKKyAgICBlbGlmIG1vZGVfbmFtZSBpbiBbJ2NvbmZpZycsICdlbmFibGUnLCAnbG9naW4nXToKKyAgICAgICAgIyBzZWUgaWYgdGhlIG1vZGUgaXMgaW4gdGhlIHN0YWNrCisgICAgICAgIGlmIG1vZGVfbmFtZSBpbiBbeFsnbW9kZV9uYW1lJ10gZm9yIHggaW4gc2Ruc2gubW9kZV9zdGFja106CisgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgICAgIHByaW50ICdwdXNoX21vZGU6IHBvcHBpbmcgc3RhY2sgZm9yJywgbW9kZV9uYW1lCisgICAgICAgICAgICBjdXJyZW50X21vZGUgPSBzZG5zaC5jdXJyZW50X21vZGUoKQorICAgICAgICAgICAgd2hpbGUgY3VycmVudF9tb2RlICE9IG1vZGVfbmFtZToKKyAgICAgICAgICAgICAgICBzZG5zaC5wb3BfbW9kZSgpCisgICAgICAgICAgICAgICAgY3VycmVudF9tb2RlID0gc2Ruc2guY3VycmVudF9tb2RlKCkKKyAgICAgICAgICAgIHJldHVybgorCisKKyAgICAjIElmIHdlJ3JlIHB1c2hpbmcgYSBjb25maWcgc3VibW9kZSB3aXRoIGFuIG9iamVjdCwgdGhlbiB3ZSBuZWVkIHRvIGV4dGVuZCB0aGUKKyAgICAjIGFyZ3VtZW50IGRhdGEgdGhhdCB3YXMgZW50ZXJlZCBleHBsaWNpdGx5IGluIHRoZSBjb21tYW5kIHdpdGggdGhlIGluZm9ybWF0aW9uCisgICAgIyBhYm91dCB0aGUgcGFyZW50IG9iamVjdCAoYnkgZGVmYXVsdCBvYnRhaW5lZCBieSBsb29raW5nIGF0IHRoZSBvYmogaW5mbyBvbgorICAgICMgdGhlIG1vZGUgc3RhY2sgLS0gc2VlIGRlZmF1bHQgYXJndW1lbnRzIGZvciB0aGlzIGFjdGlvbiB3aGVuIGl0IGlzIGFkZGVkKS4KKyAgICBlbGlmIHBhcmVudF9maWVsZDoKKyAgICAgICAgaWYgbm90IHBhcmVudF9pZDoKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCdJbnZhbGlkIGNvbW1hbmQgZGVzY3JpcHRpb247ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbXByb3Blcmx5IGNvbmZpZ3VyZWQgcGFyZW50IGluZm8gZm9yIHB1c2gtbW9kZS1zdGFjaycpCisgICAgICAgIGRhdGEgPSBkaWN0KGRhdGEpCisgICAgICAgIGRhdGFbcGFyZW50X2ZpZWxkXSA9IHBhcmVudF9pZAorICAgICAgICAKKyAgICBrZXkgPSBOb25lCisgICAgaWYgb2JqX3R5cGU6CisgICAgICAgIGZvciBmaWVsZCBpbiBkYXRhOgorICAgICAgICAgICAgaWYgbWkub2JqX3R5cGVfaGFzX2ZpZWxkKG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICAgICAgICAgY2FzZSA9IG1pLmdldF9vYmpfdHlwZV9maWVsZF9jYXNlX3NlbnNpdGl2ZShvYmpfdHlwZSwgZmllbGQpCisgICAgICAgICAgICAgICAgaWYgY2FzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICdwdXNoX21vZGU6IGNhc2UgY29udmVydCAlczolcyB0byAlcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob2JqX3R5cGUsIGZpZWxkLCBjYXNlKQorICAgICAgICAgICAgICAgICAgICBkYXRhW2ZpZWxkXSA9IHV0aWYuY29udmVydF9jYXNlKGNhc2UsIGRhdGFbZmllbGRdKQorCisKKyAgICAgICAgIyBRdWVyeSBmb3IgdGhlIG9iamVjdCBib3RoIHRvIHNlZSBpZiBpdCBleGlzdHMgYW5kIGFsc28gdG8gZGV0ZXJtaW5lCisgICAgICAgICMgdGhlIHBrIHZhbHVlIHdlJ3JlIGdvaW5nIHRvIHB1c2ggb24gdGhlIHN0YWNrLiBXZSBuZWVkIHRvIGRvCisgICAgICAgICMgdGhlIHF1ZXJ5IGluIHRoZSBjYXNlIHdoZXJlIHRoZSBtb2RlbCB1c2VzIGNvbXBvdW5kIGtleXMgYW5kIHdlJ3JlCisgICAgICAgICMgc3BlY2lmeWluZyB0aGUgaW5kaXZpZHVhbCBmaWVsZHMgdGhhdCBjb21wb3NlIHRoZSBjb21wb3VuZCBrZXkuCisgICAgICAgIHJlc3VsdCA9IHNkbnNoLnJlc3RfcXVlcnlfb2JqZWN0cyhvYmpfdHlwZSwgZGF0YSkKKyAgICAgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorICAgICAgICBpZiBsZW4ocmVzdWx0KSA9PSAwIGFuZCBjcmVhdGU6CisgICAgICAgICAgICAjCisgICAgICAgICAgICAjIEZvciB2bnMtaW50ZXJmYWNlLCB0aGUgYXNzb2NpYXRpb24gb2YgJ3J1bGUnIHdpdGggdGhlIGRhdGEgZGljdAorICAgICAgICAgICAgIyBpcyBkaWZmaWN1bHQgdG8gZXhwbGFpbiB2aWEgdGhlIGNvbW1hbmQgZGVzY3JpcHRpb24uICBUaGlzIGlzCisgICAgICAgICAgICAjIG9idmlvdXNseSBhIHBvb3IgbWV0aG9kIG9mIGRlYWxpbmcgd2l0aCB0aGUgaXNzdWUsIGJ1dCB1bnRpbAorICAgICAgICAgICAgIyBhIGJldHRlciBvbmUgYXJpc2VzIChwb3NzaWJseSBSRVNUIGFwaSBjcmVhdGU/ICBwb3NzaWJseQorICAgICAgICAgICAgIyBtb2RlbCB2YWxpZGF0aW9uIGNvZGU/KSwgdGhpcyBzb2x1dGlvbiB3b3Jrcy4KKyAgICAgICAgICAgIGlmIG9ial90eXBlID09ICd2bnMtaW50ZXJmYWNlJzoKKyAgICAgICAgICAgICAgICBkYXRhID0gYXNzb2NpYXRlX2ZvcmVpZ25fa2V5X2Zvcl92bnNfaW50ZXJmYWNlKGRhdGEpCisKKyAgICAgICAgICAgICMgQ3JlYXRlIHRoZSBvYmplY3QgYW5kIHJlLXF1ZXJ5IHRvIGdldCB0aGUgaWQvcGsgdmFsdWUKKyAgICAgICAgICAgICMgRklYTUU6IENvdWxkIHByb2JhYmx5IG9wdGltaXplIGhlcmUgaWYgdGhlIGRhdGEgYWxyZWFkeQorICAgICAgICAgICAgIyBjb250YWlucyB0aGUgcGsgdmFsdWUuCisgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgICAgIHByaW50ICJwdXNoX21vZGU6IGNyZWF0ZSAiLCBvYmpfdHlwZSwgZGF0YQorICAgICAgICAgICAgcmVzdWx0ID0gc2Ruc2gucmVzdF9jcmVhdGVfb2JqZWN0KG9ial90eXBlLCBkYXRhKQorICAgICAgICAgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorICAgICAgICAgICAgcmVzdWx0ID0gc2Ruc2gucmVzdF9xdWVyeV9vYmplY3RzKG9ial90eXBlLCBkYXRhKQorICAgICAgICAgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICBwcmludCAicHVzaF9tb2RlOiBvYmplY3QgZm91bmQiLCBvYmpfdHlwZSwgcmVzdWx0CisgICAgICAgIAorICAgICAgICAjIENoZWNrIChhZ2FpbikgdG8gbWFrZSBzdXJlIHRoYXQgd2UgaGF2ZSBhbiBvYmplY3QKKyAgICAgICAgaWYgbGVuKHJlc3VsdCkgPT0gMDoKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRTZW1hbnRpY0Vycm9yKCdPYmplY3Qgbm90IGZvdW5kOyB0eXBlID0gJXMnICUgb2JqX3R5cGUpCisgICAgICAgIAorICAgICAgICAjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGVyZSBhcmVuJ3QgbXVsdGlwbGUgbWF0Y2hpbmcgb2JqZWN0cy4gSWYgdGhlcmUKKyAgICAgICAgIyBhcmUgdGhhdCB3b3VsZCBpbmRpY2F0ZSBhIHByb2JsZW0gaW4gdGhlIGNvbW1hbmQgZGVzY3JpcHRpb24uCisgICAgICAgIGlmIGxlbihyZXN1bHQpID4gMToKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCdQdXNoIG1vZGUgaW5mbyBtdXN0IGlkZW50aWZ5IGEgc2luZ2xlIG9iamVjdDsnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSA9ICVzOyBkYXRhID0gJXMnICAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob2JqX3R5cGUsIHN0cihkYXRhKSkpCisgICAgICAgIAorICAgICAgICAjIEdldCB0aGUgaWQvcGsgdmFsdWUgZnJvbSB0aGUgb2JqZWN0IGluZm8KKyAgICAgICAgcGtfbmFtZSA9IG1pLnBrKG9ial90eXBlKQorICAgICAgICBpZiBub3QgcGtfbmFtZToKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCJDYW4ndCBmaW5kIHByaW1hcnkga2V5IG5hbWUgZm9yIHR5cGU6ICVzIiAlIG9ial90eXBlKQorICAgICAgICBrZXkgPSByZXN1bHRbMF1bcGtfbmFtZV0KKyAgICBlbHNlOgorICAgICAgICBwa19uYW1lID0gJzxub25lPicKKyAgICAKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAicHVzaF9tb2RlOiAiLCBtb2RlX25hbWUsIG9ial90eXBlLCBwa19uYW1lLCBrZXkKKyAgICBleGl0Q2FsbGJhY2sgPSBOb25lCisgICAgaWYgKG1vZGVfbmFtZSA9PSAnY29uZmlnLXR1bm5lbCcpOgorICAgICAgICBleGl0Q2FsbGJhY2sgPSB0dW5uZWxfY29uZmlnX2V4aXQKKyAgICBpZiAobW9kZV9uYW1lID09ICdjb25maWctcG9saWN5Jyk6CisgICAgICAgIGV4aXRDYWxsYmFjayA9IHBvbGljeV9jb25maWdfZXhpdAorICAgIHNkbnNoLnB1c2hfbW9kZShtb2RlX25hbWUsIG9ial90eXBlLCBrZXksIGV4aXRDYWxsYmFjaykKKworICAgIAorZGVmIHBvcF9tb2RlX3N0YWNrKCk6CisgICAgZ2xvYmFsIHNkbnNoCisKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAicG9wX21vZGU6ICIKKyAgICBzZG5zaC5wb3BfbW9kZSgpCisKK2RlZiBjb25maXJtX3JlcXVlc3QocHJvbXB0KToKKyAgICBnbG9iYWwgc2Ruc2gKKworICAgIGlmIHNkbnNoLmJhdGNoOgorICAgICAgICByZXR1cm4KKyAgICByZXN1bHQgPSByYXdfaW5wdXQocHJvbXB0KQorICAgIGlmIHJlc3VsdC5sb3dlcigpID09ICd5JyBvciByZXN1bHQubG93ZXIoKSA9PSAneWVzJzoKKyAgICAgICAgcmV0dXJuCisgICAgcmFpc2UgZXJyb3IuQXJndW1lbnRWYWxpZGF0aW9uRXJyb3IoIkV4cGVjdGVkIHkgb3IgeWVzLCBjb21tYW5kOiAiKQorCitpbXBvcnQgY19kYXRhX2hhbmRsZXJzCisKK2RlZiBjb252ZXJ0X3Zuc19hY2Nlc3NfbGlzdChvYmpfdHlwZSwga2V5LCBkYXRhKToKKyAgICAiIiIKKyAgICBGb3Igdm5zLWFjY2Vzcy1ncm91cCdzLCB0aGUgYWNjZXNzIGxpc3Qgd2hpY2ggaXMgdGhlIGZpcnN0IHBhcmFtZXRlcgorICAgIG5lZWRzIHRvIGJlIGNvbnZlcnRlZCBpbnRvIGEgdm5zLWFjY2Vzcy1saXN0IGZvcmVpZ24ga2V5LiAgVGhpcyBpcworICAgIHBvc3NpYmxlIHNpbmNlIHRoZSB2bnMgbmFtZSBpcyBwYXJ0IG9mIHRoZSBjdXJyZW50IG9iamVjdCBpZC4KKyAgICAiIiIKKyAgICBnbG9iYWwgc2Ruc2gsIG1vZGkKKworICAgIGtleV9wYXJ0cyA9IGtleS5zcGxpdCgnfCcpCisgICAgaWYgbGVuKGtleV9wYXJ0cykgIT0gMzoKKyAgICAgICAgcmFpc2UgZXJyb3IuQXJndW1lbnRWYWxpZGF0aW9uRXJyb3IoImludmFsaWQgaWQiKQorICAgIGlmIG5vdCAndm5zLWFjY2Vzcy1saXN0JyBpbiBkYXRhOgorICAgICAgICByYWlzZSBlcnJvci5Bcmd1bWVudFZhbGlkYXRpb25FcnJvcigibWlzc2luZyB2bnMtYWNjZXNzLWxpc3QiKQorICAgIHRyeToKKyAgICAgICAga2V5X3BhcnRzLnBvcCgpCisgICAgICAgIHZuc2tleT0nfCcuam9pbihrZXlfcGFydHMpCisgICAgICAgIGVudHJ5ID0gc2Ruc2gucmVzdF9xdWVyeV9vYmplY3RzKCd2bnMtYWNjZXNzLWxpc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJ3ZucycgOiB2bnNrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScgOiBkYXRhWyd2bnMtYWNjZXNzLWxpc3QnXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgZXhjZXB0IEV4Y2VwdGlvbiwgX2U6CisgICAgICAgIGVudHJ5ID0gW10KKworICAgIGlmIGxlbihlbnRyeSkgIT0gMToKKyAgICAgICAgcmFpc2UgZXJyb3IuQXJndW1lbnRWYWxpZGF0aW9uRXJyb3IoInVua25vd24gYWNsICVzIiAlIGRhdGFbJ3Zucy1hY2Nlc3MtbGlzdCddKQorICAgIGRhdGFbJ3Zucy1hY2Nlc3MtbGlzdCddID0gZW50cnlbMF1bJ2lkJ10KKyAgICAgICAgICAKK2RlZiBjb21tYW5kX3F1ZXJ5X29iamVjdChvYmpfdHlwZSwgZGF0YSwgc2NvcGVkLCBzb3J0KToKKyAgICAiIiIKKyAgICBSZXR1cm4gbW9kZWwgZW50cmllcyAoZGIgcm93cykgdmlhIHRoZSBSRVNUIEFQSS4gIFRyeSB0byBiZQorICAgIHZlcnkgc21hcnQgYWJvdXQgdXNpbmcgcGFyYW1ldGVycyBhbmQgdGhlIG1vZGVsIGRlZmluaXRpb24gdG8KKyAgICBmaWd1cmUgb3V0IGhvdyB0byBxdWVyeSBmb3IgdGhlIGVudHJpZXMuCisgICAgIiIiCisKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjoKKyAgICAgICAgcHJpbnQgJ2NvbW1hbmRfcXVlcnlfb2JqZWN0OiAnLCBvYmpfdHlwZSwgZGF0YSwgc2NvcGVkLCBzb3J0CisgICAgICAgIAorICAgIHNraXBmb3JlaWduc2VhcmNoPUZhbHNlCisgICAgaWYgKG9ial90eXBlPT0ndmlydHVhbHJvdXRlci1yb3V0aW5ncnVsZScgb3Igb2JqX3R5cGU9PSd2aXJ0dWFscm91dGVyLWludGVyZmFjZScpOgorICAgICAgICBza2lwZm9yZWlnbnNlYXJjaD1UcnVlCisgICAgIyBiaWdfc2VhcmNoIGRlc2NyaWJlcyBhIHJlbGF0ZWQgc2VhcmNoIHdoaWNoIG11c3QgYmUgZG9uZSB0bworICAgICMgc2F0aXNmeSB0aGlzIHJlcXVlc3QsIHNlZSB0aGUgcmVsYXRpb25zaGlwIG9mIHRhZy1tYXBwaW5nIHRvIHRhZworICAgICMgYXMgYW4gZXhhbXBsZS4KKyAgICBiaWdfc2VhcmNoID0gW10KKworICAgIGtleSA9IG1pLnBrKG9ial90eXBlKQorICAgICMKKyAgICBpZiBtaS5pc19jb21wb3VuZF9rZXkob2JqX3R5cGUsIGtleSk6CisgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICBwcmludCAiY29tbWFuZF9xdWVyeV9vYmplY3Q6ICVzIGNvbXBvdW5kICVzIiAlIChvYmpfdHlwZSwga2V5KQorICAgICAgICAjCisgICAgICAgICMgY29sbGVjdCBjb21wb3VuZCBrZXkgbmFtZXMsIGxvb2sgZm9yIHRoZXNlIGluIHRoZSBkYXRhLAorICAgICAgICAjIGlmIGFueSBvZiB0aGUgdmFsdWVzIGFyZSAnYWxsJywgcmVtb3ZlIHRoZSBpdGVtIGZyb20KKyAgICAgICAgIyB0aGUgZ3JvdXAgb2YgZGF0YS4KKyAgICAgICAgIworICAgICAgICAjIFhYWCBuZWVkcyB3b3JrOiB3ZSBvdWdodCB0byBjaGVjayB0byBzZWUgaWYgdGhlCisgICAgICAgICMgY29tcG91bmQga2V5IGlzIHBhcnQgb2Ygc29tZSBvdGhlciBrZXkuCisgICAgICAgICMKKyAgICAgICAgaWYgc2NvcGVkOgorICAgICAgICAgICAgb2JqX2QgPSB7IGtleSA6IHNkbnNoLmdldF9jdXJyZW50X21vZGVfb2JqKCkgfQorICAgICAgICAgICAgbWkuc3BsaXRfY29tcG91bmRfaW50b19kaWN0KG9ial90eXBlLCBrZXksIG9ial9kLCBpc19wcmVmaXggPSBUcnVlKQorICAgICAgICAgICAgZm9yIChrLHYpIGluIG9ial9kLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYgayAhPSBrZXkgYW5kIG5vdCBrIGluIGRhdGE6CisgICAgICAgICAgICAgICAgICAgIGRhdGFba10gPSB2CisKKyAgICAgICAgbmV3X2RhdGEgPSB7fQorICAgICAgICBkY2tmcyA9IG1pLmRlZXBfY29tcG91bmRfa2V5X2ZpZWxkcyhvYmpfdHlwZSwga2V5KQorICAgICAgICBpZiBrZXkgaW4gZGF0YToKKyAgICAgICAgICAgIG1pLnNwbGl0X2NvbXBvdW5kX2ludG9fZGljdChvYmpfdHlwZSwga2V5LCBkYXRhLCBpc19wcmVmaXggPSBUcnVlKQorICAgICAgICBmb3JlaWduX29ial90eXBlX3NlYXJjaCA9IHt9CisgICAgICAgIAorICAgICAgICBmb3Iga2YgaW4gZGNrZnM6CisgICAgICAgICAgICBpZiBtaS5vYmpfdHlwZV9oYXNfZmllbGQob2JqX3R5cGUsIGtmKSBhbmQga2YgaW4gZGF0YSBhbmQgZGF0YVtrZl0gIT0gJ2FsbCc6CisgICAgICAgICAgICAgICAgbmV3X2RhdGFba2ZdID0gZGF0YVtrZl0KKyAgICAgICAgICAgIGVsaWYgbm90IG1pLm9ial90eXBlX2hhc19maWVsZChvYmpfdHlwZSwga2YpOgorICAgICAgICAgICAgICAgICMgZGVlcF9jb21wb3VuZF9rZXlzIHJldHVybnMgcmVmZXJlbmNlcyB2aWEgZm9yZWlnbiBrZXlzLgorICAgICAgICAgICAgICAgICMgaWYgdGhlIGZpZWxkIGlzIG1pc3NpbmcgaW4gb2JqX3R5cGUsIGl0cyBsaWtlbHkgZnJvbQorICAgICAgICAgICAgICAgICMgc29tZSByZWxhdGVkIGZrLgorICAgICAgICAgICAgICAgIGZvciBmayBpbiBtaS5vYmpfdHlwZV9mb3JlaWduX2tleXMob2JqX3R5cGUpOgorICAgICAgICAgICAgICAgICAgICAoX2ZrX29ial90eXBlLCBma19uYW1lKSA9IG1pLmZvcmVpZ25fa2V5X3JlZmVyZW5jZXMob2JqX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaykKKyAgICAgICAgICAgICAgICAgICAgaWYga2YgPT0gZmtfbmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgcHJpbnQgIkZPVU5EIE1BVENIICIsIGtmLCBfZmtfb2JqX3R5cGUsIGZrX25hbWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgIGVsaWYgbm90IG1pLmlzX2NvbXBvdW5kX2tleSggX2ZrX29ial90eXBlLCBma19uYW1lKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgIGZvciBma2NmIGluIG1pLmNvbXBvdW5kX2tleV9maWVsZHMoX2ZrX29ial90eXBlLCBma19uYW1lKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGZrY2YgaW4gZGF0YSBhbmQgZGF0YVtma2NmXSAhPSAnYWxsJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGFzc3VtZSBhbGwgbW9kZWxzIHVzZSBDT01QT1VORF9LRVlfRklFTERTCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgX2ZrX29ial90eXBlIG5vdCBpbiBmb3JlaWduX29ial90eXBlX3NlYXJjaDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWlnbl9vYmpfdHlwZV9zZWFyY2hbX2ZrX29ial90eXBlXSA9IHt9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yZWlnbl9vYmpfdHlwZV9zZWFyY2hbX2ZrX29ial90eXBlXVtma2NmXSA9IGRhdGFbZmtjZl0KKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAjIHNlZSBpZiBmb3JlaWduIGtleSBmaWVsZHMgYXJlIGluZGlyZWN0bHkgbmFtZWQKKyAgICAgICAgICAgIGVsaWYgbWkuaXNfZm9yZWlnbl9rZXkob2JqX3R5cGUsIGtmKToKKyAgICAgICAgICAgICAgICAoX2ZrX29ial90eXBlLCBma19uYW1lKSA9IG1pLmZvcmVpZ25fa2V5X3JlZmVyZW5jZXMob2JqX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtmKQorICAgICAgICAgICAgICAgIGlmIGZrX25hbWUgaW4gZGF0YSBhbmQgZGF0YVtma19uYW1lXSAhPSAnYWxsJzoKKyAgICAgICAgICAgICAgICAgICAgbmV3X2RhdGFba2ZdID0gZGF0YVtma19uYW1lXQorICAgICAgICBpZiAobm90IHNraXBmb3JlaWduc2VhcmNoKTogI3NraXAgZm9yZWlnbiBrZXkgc2VhcmNoIGZvciByb3V0aW5ncnVsZSB0eXBlCisgICAgICAgICAgICBpZiBsZW4oZm9yZWlnbl9vYmpfdHlwZV9zZWFyY2gpOgorICAgICAgICAgICAgICAgICMgVGhpcyBtZWFucyB0byBjb2xsZWN0IHRoZSBlbnRyaWVzLCBhIHNlYXJjaCB0aG91Z2ggYQorICAgICAgICAgICAgICAgICMgcmVsYXRlZCBvYmpfdHlwZSAodGhyb3VnaCBmb3JlaWduIGtleSkgd2lsbCBuZWVkIHRvIGJlIGRvbmUKKyAgICAgICAgICAgICAgICAjIGEgc2luZ2xlIHF1ZXJ5IGlzbid0IGVub3VnaCwgdW5sZXNzIGFsbCBlbnRyaWVzIGFyZSBjb2xsZWN0ZWQKKyAgICAgICAgICAgICAgICAjIGNvbnNpZGVyIHRoZSByZWxhdGlvbnNoaXAgYmV0d2VlbiB0YWctbWFwcGluZyBhbmQgdGFncworICAgICAgICAgICAgICAgICMgCisgICAgICAgICAgICAgICAgIyBUaGlzIGNvZGUgc2VlbXMgdG8gaGFuZGxlIHNpbmdsZSBpbmRpcmVjdGVkIGZvcmVpZ24ga2V5CisgICAgICAgICAgICAgICAgIyBsb29rdXAsIGJ1dCBpZiBkZWVwX2NvbXBvdW5kX2tleV9maWVsZHMoKSBmb3VuZCBtb3JlIHRoYW4KKyAgICAgICAgICAgICAgICAjIHRocmVlIGxheWVycyBkZWVwICh0aGUgb2JqLXR5cGUgaGFzIGEgZmsgcmVmZXJlbmNlIHRvIGEKKyAgICAgICAgICAgICAgICAjIHRhYmxlLCB3aGljaCBoYWQgYSBmayByZWZlcmVuY2UgdG8gYW5vdGhlciB0YWJsZSwgd2hpY2gKKyAgICAgICAgICAgICAgICAjIGhhZCBhIHZhbHVlIHRvIHNlYXJjaCB3aXRoKSwgdGhpcyB3b24ndCBkbyB0aGUgdHJpY2suCisgICAgICAgICAgICAgICAgIyBhdCB0aGF0IHBvaW50IHNvbWUgc29ydCBvZiByZWN1cnNpdmUgYnVpbGRpbmcgb2YgdGhlCisgICAgICAgICAgICAgICAgIyBmb3JlaWduIGtleXMgd291bGQgYmUgbmVlZGVkIHRvIGNvbGxlY3QgdXAgdGhlIHJlcXVpcmVkCisgICAgICAgICAgICAgICAgIyBmaW5hbCBzZXJhY2hlcworICAgICAgICAgICAgICAgIGZvciAoX2ZrX29ial90eXBlLCBzZWFyY2gpIGluIGZvcmVpZ25fb2JqX3R5cGVfc2VhcmNoLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgICAgIGZrX2VudHJpZXMgPSBzZG5zaC5yZXN0X3F1ZXJ5X29iamVjdHMoX2ZrX29ial90eXBlLCBzZWFyY2gpCisgICAgICAgICAgICAgICAgICAgICMgbmVlZCB0byBpZGVudGlmeSB0aGUgbmFtZSBhc3NvY2lhdGVkIGZvcmVpZ24ga2V5IGluIHRoaXMgbW9kZWwKKyAgICAgICAgICAgICAgICAgICAgZm9yIGZrIGluIG1pLm9ial90eXBlX2ZvcmVpZ25fa2V5cyhvYmpfdHlwZSk6CisgICAgICAgICAgICAgICAgICAgICAgICAoZmtfb2JqLCBma19uYW1lKSA9IG1pLmZvcmVpZ25fa2V5X3JlZmVyZW5jZXMob2JqX3R5cGUsIGZrKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgZmtfb2JqID09IF9ma19vYmpfdHlwZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpfdHlwZV9maWVsZCA9IGZrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRTZW1hbnRpY0Vycm9yKCJiaWdzZWFyY2g6IGNhbid0IGZpbmQgZmsgcmVmZXJlbmNlIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZvciAlcyBmb3Igb2JqLXR5cGUgJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaywgb2JqX3R5cGUpKQorICAgICAgICAgICAgICAgICAgICBiaWdfc2VhcmNoICs9IFt7b2JqX3R5cGVfZmllbGQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB4W21pLnBrKF9ma19vYmpfdHlwZSldfSBmb3IgeCBpbiBma19lbnRyaWVzXQorICAgICAgICAgICAgICAgICMgYmlnX3NlYXJjaCB3b3VsZCByZXR1cm4gaWQncyBmb3IgdGhlIF9ma19vYmpfdHlwZSwKKyAgICAgICAgICAgICAgICAjIHdoaWNoIGNhbiBiZSB1c2VkIHRvIHNlYXJjaCB0aGlzIG9ial90eXBlCisgICAgICAgICMgbG9vayBmb3IgZmllbGRzIHdoaWNoIGFyZSBzZXQgaW4gbmV3X2RhdGEsIHdoaWNoIGFyZW4ndCBpbiBkYXRhLgorICAgICAgICBmb3IgKGZpZWxkLCB2YWx1ZSkgaW4gZGF0YS5pdGVtcygpOgorICAgICAgICAgICAgaWYgZmllbGQgbm90IGluIG5ld19kYXRhOgorICAgICAgICAgICAgICAgIGlmIG1pLmlzX21hcmtlZF9zZWFyY2hhYmxlKG9ial90eXBlLCBmaWVsZCkgYW5kIHZhbHVlIT0nYWxsJzoKKyAgICAgICAgICAgICAgICAgICAgbmV3X2RhdGFbZmllbGRdID0gdmFsdWUKKworICAgICAgICBkYXRhID0gbmV3X2RhdGEKKyAgICBlbHNlOgorICAgICAgICAjIE9ubHkgYWxsb3cgZmllbGRzIHdoaWNoIGFyZSBzZWFyY2hhYmxlIChYWFggbmVlZCBhIHByZWRpYXRlKQorICAgICAgICAjIG9ubHkgc2F2ZSBwcmltYXJ5IGtleSdzIGFuZCBmb3JlaWdoIGtleXMuCisgICAgICAgIG5ld19kYXRhID0ge30KKyAgICAgICAgaWYga2V5IGluIGRhdGEgYW5kIG1pLmlzX3ByaW1hcnlfa2V5KG9ial90eXBlLCBrZXkpOgorICAgICAgICAgICAgbmV3X2RhdGFba2V5XSA9IGRhdGFba2V5XQorICAgICAgICBmb3IgZmsgaW4gbWkub2JqX3R5cGVfZm9yZWlnbl9rZXlzKG9ial90eXBlKToKKyAgICAgICAgICAgIGlmIGZrIGluIGRhdGE6CisgICAgICAgICAgICAgICAgbmV3X2RhdGFbZmtdID0gZGF0YVtma10KKyAgICAgICAgICAgIChfZmtfb2JqLCBma19mbikgPSBtaS5mb3JlaWduX2tleV9yZWZlcmVuY2VzKG9ial90eXBlLCBmaykKKyAgICAgICAgICAgIGlmIGZrX2ZuIGluIGRhdGE6CisgICAgICAgICAgICAgICAgbmV3X2RhdGFbZmtfZm5dID0gZGF0YVtma19mbl0KKyAgICAgICAgZm9yIGYgaW4gbWkub2JqX3R5cGVfZmllbGRzKG9ial90eXBlKToKKyAgICAgICAgICAgIGlmIGYgaW4gZGF0YSBhbmQgZiBub3QgaW4gbmV3X2RhdGE6CisgICAgICAgICAgICAgICAgbmV3X2RhdGFbZl0gPSBkYXRhW2ZdCisgICAgICAgICAgICAKKyAgICAgICAgZGF0YSA9IG5ld19kYXRhCisKKyAgICAgICAgaWYgc2NvcGVkOgorICAgICAgICAgICAgZGF0YVtrZXldID0gc2Ruc2guZ2V0X2N1cnJlbnRfbW9kZV9vYmooKQorICAgICAgICAKKyAgICBpZiBrZXkgaW4gZGF0YSBhbmQgKGRhdGFba2V5XT09J2FsbCcgb3IgZGF0YVtrZXldPT1Ob25lKToKKyAgICAgICAgZGVsIGRhdGFba2V5XQorICAgICMKKyAgICAjIE5vdyB0aGF0IHRoZSBmaWVsZHMgaGF2ZSBiZWVuIGRpc2Fzc2VtYmxlZCBhcyBtdWNoIGFzIHBvc3NpYmxlLCBzZWUKKyAgICAjIGlmIHNvbWUgb2YgdGhlIGVudHJpZXMgbmVlZCB0byBiZSBjb2JibGVkIGJhY2sgdG9nZXRoZXIuCisgICAgZmtzID0gbWkub2JqX3R5cGVfZm9yZWlnbl9rZXlzKG9ial90eXBlKQorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJjb21tYW5kX3F1ZXJ5X29iamVjdDogJXMgZm9yZWlnbi1rZXkgJXMiICUgKG9ial90eXBlLCBma3MpCisgICAgaWYgZmtzOgorICAgICAgICBmb3IgZmsgaW4gZmtzOgorICAgICAgICAgICAgKGZrX29iaiwgZmtfbm0pID0gbWkuZm9yZWlnbl9rZXlfcmVmZXJlbmNlcyhvYmpfdHlwZSwgZmspCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBpZiBub3QgZmsgaW4gZGF0YSBvciBcCisgICAgICAgICAgICAgICAobWkuaXNfY29tcG91bmRfa2V5KGZrX29iaiwgZmtfbm0pIGFuZCBkYXRhW2ZrXS5maW5kKCd8JykgPT0gLTEpOgorCisgICAgICAgICAgICAgICAgIyB1c2UgdmFyaW91cyB0ZWNobmlxdWVzIHRvIHBvcHVsYXRlIHRoZSBmb3JlaWduIGtleQorICAgICAgICAgICAgICAgICMgLSBpZiB0aGUgZm9yZWlnbiBrZXkgaXMgZm9yIGNsYXNzIHdoaWNoIGhhcyBhIGNvbXBvdW5kIGtleSwgc2VlIGlmIGFsbCB0aGUKKyAgICAgICAgICAgICAgICAjICAgcGFydHMgb2YgdGhlIGNvbXBvdW5kIGtleSBhcmUgcHJlc2VudAorICAgICAgICAgICAgICAgIGlmIG1pLmlzX2NvbXBvdW5kX2tleShma19vYmosIGZrX25tKToKKyAgICAgICAgICAgICAgICAgICAga2ZzID0gbWkuZGVlcF9jb21wb3VuZF9rZXlfZmllbGRzKGZrX29iaiwgZmtfbm0pCisgICAgICAgICAgICAgICAgICAgIG1pc3NpbmcgPSBbeCBmb3IgeCBpbiBrZnMgaWYgbm90IHggaW4gZGF0YV0KKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKG1pc3NpbmcpID09IDA6CisgICAgICAgICAgICAgICAgICAgICAgICAjIHJlbW92ZSB0aGUgZW50cmllcywgYnVpbGQgdGhlIGNvbXBvdW5kIGtleSBmb3IgdGhlIGZvcmVpZ24ga2V5IHJlZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3ZhbHVlID0gbWkuY29tcG91bmRfa2V5X3NlcGFyYXRvcihma19vYmosIGZrX25tKS5cCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqb2luKFtkYXRhW3hdIGZvciB4IGluIGtmc10pCisgICAgICAgICAgICAgICAgICAgICAgICAjIHZlcmlmeSB0aGUgZm9yZWlnbiBrZXkgZXhpc3RzLCBpZiBub3QgY29tcGxhaW4gYW5kIHJldHVybiwKKyAgICAgICAgICAgICAgICAgICAgICAgICMgcHJldmVudGluZyBhIGVycm9yIGR1cmluZyB0aGUgY3JlYXRlIHJlcXVlc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5X3Jlc3VsdCA9IHNkbnNoLnJlc3RfcXVlcnlfb2JqZWN0cyggZmtfb2JqLCB7IGZrX25tIDogbmV3X3ZhbHVlIH0pCisgICAgICAgICAgICAgICAgICAgICAgICBjaGVja19yZXN0X3Jlc3VsdChxdWVyeV9yZXN1bHQpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBsZW4ocXVlcnlfcmVzdWx0KSA9PSAwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpvaW5hYmxlX25hbWUgPSBbIiVzOiAlcyIgJSAoeCwgZGF0YVt4XSkgZm9yIHggaW4ga2ZzXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRTZW1hbnRpY0Vycm9yKCJSZWZlcmVuY2UgdG8gbm9uLWV4aXN0YW50IG9iamVjdDogJXMgIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLCAnLmpvaW4oam9pbmFibGVfbmFtZSkpCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgcmZuIGluIGtmczogIyByZW1vdmUgZmllbGQgbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbCBkYXRhW3Jmbl0KKyAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbZmtdID0gbmV3X3ZhbHVlCisgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICBwcmludCAiY29tbWFuZF9xdWVyeV9vYmplY3Q6ICVzIGZvcmVpZ24ga2V5IGNvbnN0cnVjdGlvbiAiICUgb2JqX3R5cGUsIGRhdGEKKyAgICAjCisgICAgIyBEbyBzb21ldGhpbmcgZm9yIGFsaWFzIGRpc3BsYXlzLCBmb3Igb2JqX3R5cGVzIHdoaWNoIHNkbnNoIHNheXMKKyAgICAjIGFyZSBhbGlhc2VzLCBmaW5kIHRoZSBmb3JlaWduIHJlZmVyZW5jZSBpbiB0aGUgYWxpYXMgb2JqX3R5cGUsCisgICAgIyBhbmQgdXNlIHRoYXQgdG8gZGV0ZXJtaW5lIHRoZSBmaWVsZCBuYW1lIChma19mbikgaW4gdGhlIHBhcmVudC4KKyAgICAjIERvIGxvb2t1cHMgYmFzZWQgb24gZWl0aGVyIHRoZSBhbGlhcyBmaWVsZCBuYW1lLCBvciB0aGUgcGFyZW50J3MKKyAgICAjIGZrX2ZuIHdoZW4gc2V0IGluIGRhdGF7fQorICAgIGlmIG9ial90eXBlIGluIG1pLmFsaWFzX29ial90eXBlczoKKyAgICAgICAgZmllbGQgPSBtaS5hbGlhc19vYmpfdHlwZV9maWVsZChvYmpfdHlwZSkKKyAgICAgICAgKF9ma19vYmosIGZrX2ZuKSA9IG1pLmZvcmVpZ25fa2V5X3JlZmVyZW5jZXMob2JqX3R5cGUsIGZpZWxkKQorICAgICAgICBuZXdfZGF0YSA9IHt9CisgICAgICAgIGlmIGZrX2ZuIGluIGRhdGEgYW5kIGRhdGFbZmtfZm5dICE9ICdhbGwnOgorICAgICAgICAgICAgbmV3X2RhdGFbZmllbGRdID0gZGF0YVtma19mbl0KKyAgICAgICAgZWxpZiBmaWVsZCBpbiBkYXRhIGFuZCBkYXRhW2ZpZWxkXSAhPSAnYWxsJzoKKyAgICAgICAgICAgIG5ld19kYXRhW2ZpZWxkXSA9IGRhdGFbZmllbGRdCisgICAgICAgIGRhdGEgPSBuZXdfZGF0YQorCisgICAgIworICAgICMgVGhlIHNvcnQgdmFsdWUgb3VnaHQgdG8gYmUgYSBjb21tYW5kIHNlcGFyYXRlZCBsaXN0IG9mIGZpZWxkcyB3aXRoaW4gdGhlIG1vZGVsCisgICAgIworICAgIGlmIHNvcnQ6CisgICAgICAgIGRhdGFbJ29yZGVyYnknXSA9IHNvcnQKKworICAgIGlmIG5vdCBtaS5vYmpfdHlwZV9oYXNfbW9kZWwob2JqX3R5cGUpOgorICAgICAgICByZXR1cm4gcmVzdF90b19tb2RlbC5nZXRfbW9kZWxfZnJvbV91cmwob2JqX3R5cGUsIGRhdGEpCisKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAiY29tbWFuZF9xdWVyeV9vYmplY3Q6ICIsIG9ial90eXBlLCBkYXRhCisKKyAgICBpZiBsZW4oYmlnX3NlYXJjaCk6CisgICAgICAgIGVudHJpZXMgPSBbXQorICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfcXVlcnlfb2JqZWN0OiBiaWcgc2VhcmNoIiwgYmlnX3NlYXJjaAorICAgICAgICBmb3IgYnMgaW4gYmlnX3NlYXJjaDoKKyAgICAgICAgICAgIHNlYXJjaCA9IGRpY3QobGlzdChicy5pdGVtcygpKSArIGxpc3QoZGF0YS5pdGVtcygpKSkKKyAgICAgICAgICAgIGVudHJpZXMgKz0gc2Ruc2gucmVzdF9xdWVyeV9vYmplY3RzKG9ial90eXBlLCBzZWFyY2gpCisgICAgICAgICMgWFhYIG5lZWRzIHRvIGJlIHJlLXNvcnRlZAorICAgICAgICByZXR1cm4gZW50cmllcworICAgICAgICAKKyAgICByZXR1cm4gc2Ruc2gucmVzdF9xdWVyeV9vYmplY3RzKG9ial90eXBlLCBkYXRhKQorCisKK2RlZiBjb21tYW5kX2Rpc3BsYXlfdGFibGVfam9pbl9lbnRyaWVzKG9ial90eXBlLCBkYXRhLCBlbnRyaWVzLCBkZXRhaWwpOgorICAgICIiIgorICAgICIiIgorICAgIGlmIG9ial90eXBlID09ICd0YWctbWFwcGluZyc6CisgICAgICAgICMgbGlmdCBwZXJzaXN0IGZyb20gdGhlIHBhcmVudCB0YWcKKyAgICAgICAgaWYgbGVuKGVudHJpZXMpID09IDE6CisgICAgICAgICAgICBlbnRyeSA9IGVudHJpZXNbMF0KKyAgICAgICAgICAgIHRhZyA9IHNkbnNoLnJlc3RfcXVlcnlfb2JqZWN0cygndGFnJywgeyBtaS5waygndGFnJykgOiBlbnRyeVsndGFnJ119KQorICAgICAgICAgICAgZW50cnlbJ3BlcnNpc3QnXSA9IHRhZ1swXVsncGVyc2lzdCddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIGtleT8gdmFsdWU/IGZvciB0aGUgX2RpY3Q/CisgICAgICAgICAgICB0YWdzID0gY3JlYXRlX29ial90eXBlX2RpY3QoJ3RhZycsIG1pLnBrKCd0YWcnKSkKKyAgICAgICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgICAgIGVudHJ5WydwZXJzaXN0J10gPSB0YWdzW2VudHJ5Wyd0YWcnXV1bMF1bJ3BlcnNpc3QnXQorCisgICAgaWYgb2JqX3R5cGUgPT0gJ2NvbnRyb2xsZXItbm9kZSc6CisgICAgICAgICMgVGhpcyBpcyBhIGJpZyBvZGQsIHNpbmNlIHRoZSBjdXJyZW50IG5vZGUgbmVlZHMgdG8gYmUgYXNrZWQKKyAgICAgICAgIyB3aGljaCBjb250cm9sbGVyIG5vZGUgaXQgaXMKKyAgICAgICAgdXJsID0gImh0dHA6Ly8lcy9yZXN0L3YxL3N5c3RlbS9jb250cm9sbGVyIiAlIHNkbnNoLmNvbnRyb2xsZXIKKworICAgICAgICByZXN1bHQgPSBzZG5zaC5zdG9yZS5yZXN0X3NpbXBsZV9yZXF1ZXN0KHVybCkKKyAgICAgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorICAgICAgICBpYW0gPSBqc29uLmxvYWRzKHJlc3VsdCkKKworICAgICAgICBjbHVzdGVyX3VybCA9ICgiaHR0cDovLyVzL3Jlc3QvdjEvc3lzdGVtL2hhL2NsdXN0ZXJuYW1lIgorICAgICAgICAgICAgICAgICAgICAgICAlIHNkbnNoLmNvbnRyb2xsZXIpCisgICAgICAgIHJlc3VsdCA9IHNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QoY2x1c3Rlcl91cmwpCisgICAgICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCkKKyAgICAgICAgIyBwZXJoYXBzIG91Z2h0IHRvIGFzc2VydCBvbiBsZW5yZXN1bHQpID09IDEKKyAgICAgICAgY2x1c3Rlcm5hbWUgPSBqc29uLmxvYWRzKHJlc3VsdClbMF1bJ2NsdXN0ZXJuYW1lJ10KKworICAgICAgICBmb3IgZW50cnkgaW4gZW50cmllczoKKyAgICAgICAgICAgIGNvbnRyb2xsZXIgPSBOb25lCisgICAgICAgICAgICBpZiBlbnRyeVsnaWQnXSA9PSBpYW1bJ2lkJ106CisgICAgICAgICAgICAgICAgY29udHJvbGxlciA9IHNkbnNoLmNvbnRyb2xsZXIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBmaW5kIGludGVyZmFjZXMgd2hpY2ggaGFjdmUgYSBmaXJld2FsbCBydWxlIG9wZW4gZm9yCisgICAgICAgICAgICAgICAgIyB0Y3AvODAuICBpZTogaXAgZm9yIHRoZSBpbnRlcmZhY2Ugd2l0aCByZXN0LWFwaSByb2xlCisgICAgICAgICAgICAgICAgaXBzID0gbG9jYWxfaW50ZXJmYWNlc19maXJld2FsbF9vcGVuKCJ0Y3AiLCA4MCwgZW50cnkpCisKKyAgICAgICAgICAgICAgICAjIGNvbnRyb2xsZXItaW50ZXJmYWNlcyBuZWVkcyB0byBiZSBleGFtaW5lZCB0byBkZXRlcm1pbmUKKyAgICAgICAgICAgICAgICAjIGlmIHRoZXJlJ3MgYW4gaXAgYWRkcmVzcyB0byB1c2UgdG8gZGlzY292ZXIgdGhlIGhhLXJvbGUKKyAgICAgICAgICAgICAgICBpZiBsZW4oaXBzKSA9PSAxOgorICAgICAgICAgICAgICAgICAgICAjIE5vdCBldmVuIGNlcnRhaW4gaWYgdGhpcyBpcyByZWFjaGFibGUKKyAgICAgICAgICAgICAgICAgICAgaWYgaXBzWzBdWydkaXNjb3ZlcmVkLWlwJ10gIT0gJyc6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyID0gaXBzWzBdWydkaXNjb3ZlcmVkLWlwJ10KKyAgICAgICAgICAgICAgICAgICAgZWxpZiBpcHNbMF1bJ2lwJ10gIT0gJyc6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyID0gaXBzWzBdWydpcCddCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeVsnaGEtcm9sZSddID0gJ25vLWlwJworICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlbJ2Vycm9ycyddID0gJ05vIElQIEFkZHJlc3MnCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZW50cnlbJ2Vycm9ycyddID0gJ05vIElQIEFkZHJlc3MnCisKKyAgICAgICAgICAgIGlmIGNvbnRyb2xsZXIgPT0gTm9uZToKKyAgICAgICAgICAgICAgICBlbnRyeVsnZXJyb3JzJ10gPSAnTm8gaXAgYWRkcmVzcyBjb25maWd1cmVkJworICAgICAgICAgICAgICAgIGVudHJ5WydoYS1yb2xlJ10gPSAndW5rbm93bicKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdXJsID0gImh0dHA6Ly8lcy9yZXN0L3YxL3N5c3RlbS9oYS9yb2xlIiAlIGNvbnRyb2xsZXIKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzZG5zaC5zdG9yZS5yZXN0X3NpbXBsZV9yZXF1ZXN0KHVybCwgdGltZW91dCA9IDIpCisgICAgICAgICAgICAgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorICAgICAgICAgICAgICAgIGhhX3JvbGUgPSBqc29uLmxvYWRzKHJlc3VsdCkKKyAgICAgICAgICAgICAgICBlbnRyeVsnaGEtcm9sZSddID0gaGFfcm9sZVsncm9sZSddCisgICAgICAgICAgICAgICAgaWYgbm90ICdjbHVzdGVybmFtZScgaW4gaGFfcm9sZToKKyAgICAgICAgICAgICAgICAgICAgZW50cnlbJ2Vycm9ycyddID0gJ25vIGNsdXN0ZXJuYW1lIGluIGhhLXJvbGUgcmVzdCBhcGknCisgICAgICAgICAgICAgICAgICAgIGVudHJ5WydoYS1yb2xlJ10gPSAnVW50cnVzdGVkOiAlcycgJSBoYV9yb2xlWydyb2xlJ10KKyAgICAgICAgICAgICAgICBlbGlmIGhhX3JvbGVbJ2NsdXN0ZXJuYW1lJ10gIT0gY2x1c3Rlcm5hbWU6CisgICAgICAgICAgICAgICAgICAgIGVudHJ5WydlcnJvcnMnXSA9ICdOb3QgaW4gSEEgQ2x1c3RlciwgcmVxdWlyZXMgZGVjb21pc3Npb24nCisgICAgICAgICAgICAgICAgICAgIGVudHJ5WydoYS1yb2xlJ10gPSAnRXh0ZXJuYWwgQ2x1c3RlcjogJXMnICUgaGFfcm9sZVsncm9sZSddCisgICAgICAgICAgICAgICAgaWYgJ2NoYW5nZS1kYXRlLXRpbWUnIGluIGhhX3JvbGU6CisgICAgICAgICAgICAgICAgICAgIGVudHJ5WydjaGFuZ2UtZGF0ZS10aW1lJ10gPSBoYV9yb2xlWydjaGFuZ2UtZGF0ZS10aW1lJ10KKyAgICAgICAgICAgICAgICBpZiAnY2hhbmdlLWRlc2NyaXB0aW9uJyBpbiBoYV9yb2xlOgorICAgICAgICAgICAgICAgICAgICBlbnRyeVsnY2hhbmdlLWRlc2NyaXB0aW9uJ10gPSBoYV9yb2xlWydjaGFuZ2UtZGVzY3JpcHRpb24nXQorICAgICAgICAgICAgZXhjZXB0IHVybGxpYjIuSFRUUEVycm9yLCBlOiAjIHRpbWVvdXQ/CisgICAgICAgICAgICAgICAgZW50cnlbJ2Vycm9ycyddID0gZS5yZWFzb24KKyAgICAgICAgICAgICAgICBlbnRyeVsnaGEtcm9sZSddID0gJ3Vua25vd24nCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGV4Y2VwdCB1cmxsaWIyLlVSTEVycm9yLCBlOiAjIHRpbWVvdXQ/CisgICAgICAgICAgICAgICAgZW50cnlbJ2Vycm9ycyddID0gJyVzOiAlcycgJSAoY29udHJvbGxlciwgZS5yZWFzb24pCisgICAgICAgICAgICAgICAgZW50cnlbJ2hhLXJvbGUnXSA9ICd1bmtub3duJworICAgICAgICAgICAgICAgIGNvbnRpbnVlICMgZG9udHQgdHJ5IHRoZSB1cHRpbWUsIGl0IHdpbGwgZmFpbCB0b28KKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgZW50cnlbJ2Vycm9ycyddID0gc3RyKGUpCisgICAgICAgICAgICAgICAgZW50cnlbJ2hhLXJvbGUnXSA9ICd1bmtub3duJworCisgICAgICAgICAgICB1cmwgPSAiaHR0cDovLyVzL3Jlc3QvdjEvc3lzdGVtL3VwdGltZSIgJSBjb250cm9sbGVyCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2Ruc2guc3RvcmUucmVzdF9zaW1wbGVfcmVxdWVzdCh1cmwpCisgICAgICAgICAgICAgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorICAgICAgICAgICAgICAgIHVwdGltZSA9IGpzb24ubG9hZHMocmVzdWx0KQorICAgICAgICAgICAgICAgIGVudHJ5Wyd1cHRpbWUnXSA9IHVwdGltZVsnc3lzdGVtVXB0aW1lTXNlYyddCisKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgcmV0dXJuIGRldGFpbAorCisKK2RlZiBjb21tYW5kX2Rpc3BsYXlfdGFibGUob2JqX3R5cGUsIGRhdGEsIGRldGFpbCA9ICdkZWZhdWx0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfZm9ybWF0ID0gTm9uZSwgdGl0bGUgPSBOb25lLCBzY29wZWQgPSBOb25lLCBzb3J0ID0gTm9uZSk6CisKKyAgICAiIiIKKyAgICBEaXNwbGF5IGVudHJpZXMgZnJvbSBhIG9ial90eXBlLCB3aXRoIHNvbWUgZmlsdGVyaW5nIGRvbmUgdmlhIGRhdGEsCisgICAgYW5kIHRoZSBvdXRwdXQgZm9ybWF0IGRlc2NyaWJlZCBieSB0YWJsZV9mb3JtYXQsIHdpdGggdGhlIGRldmVsIG9mIGRldGFpbCBpbiBkZXRhaWwKKworICAgIEBwYXJhbSBvYmpfdHlwZSBzdHJpbmcgbmFtZSBvZiB0aGUgb2JqZWN0IHR5cGUKKyAgICBAcGFyYW0gZGF0YSBkaWN0aW9uYXJ5IG9mIGNvbmZpZ3VyZWQgZGF0YSBpdGVtcyBmcm9tIHRoZSBkZXNjcmlwdGlvbgorICAgIEBwYXJhbSB0YWJsZV9mb3JtYXQgc3RyaW5nIGRlc2NyaWJpbmcgdGFibGUgZm9ybWF0IHRvIHVzZSBmb3Igb3V0cHV0CisgICAgQHBhcmFtIGRldGFpbCBzdHJpbmcgZGVzY3JpYmluZyB0aGUgZGV0YWlsLWZsYXZvciBmb3IgZm9ybWF0CisgICAgQHBhcmFtIHNjb3BlZCBzdHJpbmcsIHdoZW4gbm90IG51bGwsIGluZGljYXRlcyB0aGUgc3VibW9kZSBsZXZlbCBpcyB1c2VkIHRvIGZpbHRlciBxdWVyeSByZXF1ZXN0CisgICAgQHBhcmFtIHNvcnQgc3RyaW5nLCBkZXNjcmliZXMgc29ydCB0byBhcHBlbmQgdG8gdGhlIHF1ZXJ5IHJlcXVlc3QKKyAgICAiIiIKKworICAgIGlmIG5vdCBtaS5vYmpfdHlwZV9leGlzdHMob2JqX3R5cGUpOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcigiVW5rbm93biBvYmotdHlwZTogJXMiICUgb2JqX3R5cGUpCisgICAgICAgIAorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJjb21tYW5kX2Rpc3BsYXlfdGFibGU6Iiwgb2JqX3R5cGUsIGRhdGEsIHRhYmxlX2Zvcm1hdCwgZGV0YWlsLCBzY29wZWQsIHNvcnQKKworICAgIGlmICdkZXRhaWwnIGluIGRhdGE6CisgICAgICAgIGRldGFpbCA9IGRhdGFbJ2RldGFpbCddCisKKyAgICBpZiBub3QgdGFibGVfZm9ybWF0OgorICAgICAgICBpZiAnZm9ybWF0JyBpbiBkYXRhOgorICAgICAgICAgICAgdGFibGVfZm9ybWF0ID0gZGF0YVsnZm9ybWF0J10KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRhYmxlX2Zvcm1hdCA9IG9ial90eXBlCisgICAgaWYgJ3Njb3BlZCcgaW4gZGF0YToKKyAgICAgICAgc2NvcGVkPWRhdGFbJ3Njb3BlZCddCisgICAgICAgIGRlbCBkYXRhWydzY29wZWQnXQorICAgIGVudHJpZXMgPSBjb21tYW5kX3F1ZXJ5X29iamVjdChvYmpfdHlwZSwgZGF0YSwgc2NvcGVkLCBzb3J0KQorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJjb21tYW5kX2Rpc3BsYXlfdGFibGU6ICVkIGVudHJpZXMgZm91bmQsIHVzaW5nICVzIiAlIChsZW4oZW50cmllcyksIGRhdGEpCisKKyAgICAjIHVwZGF0ZSBhbnkgb2YgdGhlIHByZXR0eS1wcmludGVyIHRhYmxlcyBiYXNlZCBvbiB0aGUgb2JqX3R5cGUKKyAgICBvYmpfdHlwZV9zaG93X2FsaWFzX3VwZGF0ZShvYmpfdHlwZSkKKworICAgICMgd2l0aF9rZXkgbWFuYWdlcyB3aGV0aGVyIGEgJ2RldGFpbCcgb3IgdGFibGUgaXMgZGlzcGxheWVkLgorICAgIHdpdGhfa2V5ID0gJzx3aXRoX2tleT4nIGlmIGRldGFpbCA9PSAnZGV0YWlscycgYW5kIGxlbihlbnRyaWVzKSA+IDAgZWxzZSAnPG5vX2tleT4nCisKKyAgICAjIHBpY2sgZm9yZWlnbiBrZXlzIHdoaWNoIGFyZSBjb21wb3VuZCBrZXlzLCBleHBsb2RlIHRoZXNlIGludG8gZmllbGRzCisgICAgZmtzID0gW3ggZm9yIHggaW4gbWkub2JqX3R5cGVfZm9yZWlnbl9rZXlzKG9ial90eXBlKSBpZiBtaS5pc19jb21wb3VuZF9rZXkob2JqX3R5cGUseCldCisgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgIGZvciBmayBpbiBma3M6CisgICAgICAgICAgICBpZiBmayBpbiBlbnRyeTogIyBmayBtYXkgYmUgbnVsbC1hYmxlCisgICAgICAgICAgICAgICAgbWkuc3BsaXRfY29tcG91bmRfaW50b19kaWN0KG9ial90eXBlLCBmaywgZW50cnksIFRydWUpCisgICAgIworICAgIGRldGFpbCA9IGNvbW1hbmRfZGlzcGxheV90YWJsZV9qb2luX2VudHJpZXMob2JqX3R5cGUsIGRhdGEsIGVudHJpZXMsIGRldGFpbCkKKworICAgICMgdXNlIGRpc3BsYXlfb2JqX3R5cGVfcm93cyBzaW5jZSBpdCAoY3VycmVudGx5KSBqb2lucyBmaWVsZHMgZm9yIG9ial90eXBlcy4KKyAgICBkaXNwbGF5ID0gc2Ruc2guZGlzcGxheV9vYmpfdHlwZV9yb3dzKHRhYmxlX2Zvcm1hdCwgZW50cmllcywgd2l0aF9rZXksIGRldGFpbCkKKyAgICBpZiB0aXRsZToKKyAgICAgICAgcmV0dXJuIHRpdGxlICsgZGlzcGxheQorICAgIHJldHVybiBkaXNwbGF5CisKKworZGVmIGNvbW1hbmRfZGlzcGxheV9yZXN0X2pvaW5fZW50cmllcyh0YWJsZV9mb3JtYXQsIGRhdGEsIGVudHJpZXMsIGRldGFpbCk6CisgICAgIiIiCisgICAgQHBhcmFtIHRhYmxlX2Zvcm1hdCBzdHJpbmcsIGlkZW50aWZ5aW5nIHRoZSBmaW5hbCB0YWJsZSBvdXRwdXQKKyAgICBAcGFyYW0gZGF0YSAgIGRpY3QsIHVzZWQgdG8gcXVlcnkgdGhlIHJlc3QgYXBpIG91dHB1dAorICAgIEBwYXJhbSBlbnRyaWVzIGxpc3Qgb2YgZGljdHMsIHJlYWR5IHRvIGJlIGRpc3BsYXllZAorICAgIEByZXR1cm4gc3RyaW5nIHJlcGxhY2luZyBkZXRhaWwKKworICAgICIiIgorCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgImNvbW1hbmRfZGlzcGxheV9yZXN0X2pvaW5fZW50cmllczogIiwgdGFibGVfZm9ybWF0LCBkYXRhLCBkZXRhaWwKKyAgICAgICAgCisgICAgaWYgdGFibGVfZm9ybWF0ID09ICdjb250cm9sbGVyLWludGVyZmFjZSc6CisgICAgICAgICMgam9pbiBmaXJld2FsbCBydWxlcyBmb3IgdGhlc2UgaW50ZXJmYWNlcworICAgICAgICBmb3IgaW50ZiBpbiBlbnRyaWVzOgorICAgICAgICAgICAgcnVsZXMgPSBbeFsncnVsZSddIGZvciB4IGluIHNkbnNoLmdldF9maXJld2FsbF9ydWxlcyhpbnRmWydpZCddKV0KKyAgICAgICAgICAgIGludGZbJ2ZpcmV3YWxsJ10gPSAnLCAnLmpvaW4ocnVsZXMpCisKKyAgICBpZiB0YWJsZV9mb3JtYXQgPT0gJ3N5c3RlbS1jbG9jayc6CisgICAgICAgICMgam9pbiB0aGUgJ3RpbWUnIHN0cmluZywgcG9zc2libHkgcmVtb3ZlICd0eicgZnJvbSBlbnRyaWVzWzBdCisgICAgICAgIGVudHJpZXNbMF1bJ3RpbWUnXSA9IHNkbnNoLmdldF9jbG9ja19zdHJpbmcoZW50cmllc1swXSwgZGF0YS5nZXQoJ2RldGFpbCcpKQorICAgICAgICByZXR1cm4gJ2RldGFpbHMnICMgZm9yY2UgdGFibGUgZm9ybWF0CisKKyAgICByZXR1cm4gZGV0YWlsCisKKworZGVmIGNvbW1hbmRfZGlzcGxheV9yZXN0X3R5cGVfY29udmVydGVyKHRhYmxlX2Zvcm1hdCwgcmVzdF90eXBlLCBkYXRhLCBlbnRyaWVzKToKKyAgICAiIiIKKyAgICB0aGUgZXhwZWN0ZWQgZGlzcGxheSB0YWJsZV9mb3JtYXQgaXMgYSBsaXN0IG9mIGRpY3Rpb25hcmllcworICAgIGVhY2ggZGljdGlvbmFyeSBoYXMgdGhlIGZpZWxkIDogdmFsdWUgcGFpcnMuICBNYW55IHJlc3QgYXBpJ3MKKyAgICByZXR1cm4gYSBkaWN0aW9uYXJ5IG9mIGRpZmZlcmVudCBsYXllcnMsIHRoZSBkZXNjcmlwdGlvbgorICAgIHByb3ZpZGVzIGEgcmVzdC10eXBlLCB3aGljaCBpcyB1c2VkIHRvIGRlc2NyaWJlIHRoZSBmb3JtCisgICAgb2YgdGhlIHZhbHVlIHJldHVybmVkIGZyb20gdGhlIHJlc3QgYXBpLgorICAgICIiIgorCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgImNvbW1hbmRfZGlzcGxheV9yZXN0X3R5cGVfY29udmVydGVyOiAiLCB0YWJsZV9mb3JtYXQsIHJlc3RfdHlwZQorICAgICAgICAKKyAgICBpZiByZXN0X3R5cGUuc3RhcnRzd2l0aCgnZGljdC1vZi1saXN0LW9mLScpOgorICAgICAgICAjIGVudHJpZXMgbG9vayBsaWtlIHsgcm93X25hbWUgOiBbdmFsdWUsIC4uLl0sIC4uLiBtb3JlLXJvdy12YWx1ZS1wYWlycyB9CisgICAgICAgICMKKyAgICAgICAgIyBkaWN0LW9mLWxpc3Qtb2Y6IGEgZGljdCB3aXRoIGtleSdzIHdoaWNoIGFyZSBnaXZlbgorICAgICAgICAjIHRoZSBuYW1lIG9mIHRoZSBmaXJzdCB0b2tlbiwgdGhlbiB0aGUgZGljdCdzIHZhbHVlIGlzCisgICAgICAgICMgYSBsaXN0IHdoaWNoIGNhbiBiZSBnaXZlbiBhbiBhc3NvY2lhdGVkIG5hbWUuCisgICAgICAgICMgZm9yIGV4YW1wbGUgJ2RpY3Qtb2YtbGlzdC1vZi1jbHVzdGVyLWlkfFtzd2l0Y2hlc10nCisgICAgICAgICMKKyAgICAgICAgIyAnZGljdC1vZi1saXN0LW9mLXN3aXRjaCcgaXMgYSBkaWN0IHdpdGgga2V5IDogdmFsdWUncworICAgICAgICAjIHdoZXJlIHRoZSB2YWx1ZSBpcyBhIGxpc3QuICBUaGUgbWVtYmVyJ3Mgb2YgdGhlIGxpc3QKKyAgICAgICAgIyBhcmUgZGljdGlvbmFyaWVzLiAgdGhlIGtleSBvZiB0aGUgb3V0ZXIgZGljdCBpcyBhZGRlZCB0bworICAgICAgICAjIGVhY2ggb2YgdGhlIGRpY3RzLCBhbmQgdGhpcyBpbnRlcmlvciBkaWN0IGlzIGFkZGVkIHRvCisgICAgICAgICMgdGhlIGZpbmFsIG91dHB1dCBsaXN0LgorCisgICAgICAgICMgaWRlbnRpZnkgdGhlIGFkZGVkIGtleSBmcm9tIHRoZSByZXN0X3R5cGUKKyAgICAgICAga2V5ID0gcmVzdF90eXBlLnJlcGxhY2UoJ2RpY3Qtb2YtbGlzdC1vZi0nLCcnKQorICAgICAgICBwYXJ0cyA9IGtleS5zcGxpdCgnfCcpCisgICAgICAgIG5hbWVzID0gTm9uZQorICAgICAgICBidWlsZF9saXN0ID0gRmFsc2UKKyAgICAgICAgaWYgbGVuKHBhcnRzKSA+IDA6CisgICAgICAgICAgICBrZXkgPSBwYXJ0c1swXQorICAgICAgICAgICAgbmFtZXMgPSBwYXJ0c1sxOl0gIyBzaG91bGQgb25seSBiZSBvbmUgbmFtZQorICAgICAgICAgICAgaWYgbGVuKG5hbWVzKSA+IDAgYW5kIG5hbWVzWzBdWzBdID09ICdbJzoKKyAgICAgICAgICAgICAgICBidWlsZF9saXN0ID0gVHJ1ZQorICAgICAgICBmb3JtYXR0ZWRfbGlzdCA9IFtdCisgICAgICAgIGZvciAocm93X25hbWUsIHJvd3MpIGluIGVudHJpZXMuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIG5vdCByb3dzOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAjIHVzZSB0aGUgbmFtZXMgYXMgd2F5cyBvZiBkZXNjcmliaW5nIGVhY2ggb2YgdGhlIGxpc3QncyBpdGVtcworICAgICAgICAgICAgaWYgdHlwZShyb3dzKSA9PSBsaXN0IGFuZCBidWlsZF9saXN0OgorICAgICAgICAgICAgICAgICMgbmFtZVswXSBsb29rcyBsaWtlICdbc3dpdGNoZXNdJywgcmVxdWVzdGluZyB0aGF0IHRoaXMKKyAgICAgICAgICAgICAgICAjIGxpc3QgYmVjb21lIHN3aXRjaGVzIDogW3Jvd3NdIAorICAgICAgICAgICAgICAgIGZvcm1hdHRlZF9saXN0LmFwcGVuZCh7a2V5IDogcm93X25hbWUsIG5hbWVzWzBdWzE6LTFdIDogcm93c30pCisgICAgICAgICAgICBlbGlmIHR5cGUocm93cykgPT0gbGlzdDoKKyAgICAgICAgICAgICAgICBmb3Igcm93IGluIHJvd3M6CisgICAgICAgICAgICAgICAgICAgIGFkZF9kaWN0ID0ge2tleSA6IHJvd19uYW1lfQorICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKHJvdykgPT0gc3RyIG9yIHR5cGUocm93KSA9PSB1bmljb2RlOgorICAgICAgICAgICAgICAgICAgICAgICAgYWRkX2RpY3RbbmFtZXNbMF1dID0gcm93CisgICAgICAgICAgICAgICAgICAgIGVsaWYgdHlwZShyb3cpID09IGRpY3Q6CisgICAgICAgICAgICAgICAgICAgICAgICAjIGFkZGl0aW9uIG5hbWVzIG1ha2Ugbm8gZGlmZmVyZW5jZQorICAgICAgICAgICAgICAgICAgICAgICAgYWRkX2RpY3QudXBkYXRlKHJvdykKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkX2xpc3QuYXBwZW5kKGFkZF9kaWN0KQorICAgICAgICAgICAgZWxpZiB0eXBlKHJvd3MpID09IGRpY3Q6CisgICAgICAgICAgICAgICAgZG9fYXBwZW5kID0gVHJ1ZQorICAgICAgICAgICAgICAgIG5ld19yb3cgPSB7IGtleSA6IHJvd19uYW1lIH0KKyAgICAgICAgICAgICAgICBmb3IgbmFtZSBpbiBbeCBmb3IgeCBpbiBuYW1lcy5rZXlzKCkgaWYgeCBpbiByb3ddOgorICAgICAgICAgICAgICAgICAgICBpdGVtID0gcm93W25hbWVdCisgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUoaXRlbSkgPT0gc3RyIG9yIHR5cGUoaXRlbSkgPT0gdW5pY29kZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld19yb3dbbmFtZV0gPSBpdGVtCisgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUoaXRlbSkgPT0gZGljdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld19yb3dbbmFtZV0udXBkYXRlKGl0ZW0pCisgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUoaXRlbSkgPT0gbGlzdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGRvX2FwcGVuZCA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaV9yb3cgaW4gaXRlbToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfcm93LnVwZGF0ZShpX3JvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfbGlzdC5hcHBlbmQobmV3X3JvdykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdfcm93ID0geyBrZXkgOiByb3dfbmFtZSB9CisgICAgICAgICAgICAgICAgaWYgZG9fYXBwZW5kOgorICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfbGlzdC5hcHBlbmQobmV3X3JvdykKKworICAgICAgICBlbnRyaWVzID0gZm9ybWF0dGVkX2xpc3QKKyAgICBlbGlmIHJlc3RfdHlwZS5zdGFydHN3aXRoKCdkaWN0LW9mLWRpY3Qtb2YtJyk6CisgICAgICAgICMgZW50cmllcyBsb29rcyBsaWtlIHsgcm93X25hbWUgOiB7IFsgeyB9LCAuLi4gXSB9ICB9CisgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKyAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YW50IHRoaXMgfAorICAgICAgICAjIGllOiBkaWN0IHdpdGggYSB2YWx1ZSB3aGljaCBpcyBhIGRpY3QsIHdob3NlCisgICAgICAgICMgJ2RpY3Qtb2YtZGljdC1vZi1zd2l0Y2h8cG9ydHMnICBUaGUgZGljdCBoYXMga2V5IDogdmFsdWVzCisgICAgICAgICMgd2hlcmUgdGhlIHZhbHVlIGlzIGEgZGljdC4gIFRoYXQgZGljdCBoYXMgdGhlICdzd2l0Y2gnIDoga2V5CisgICAgICAgICMgYWRkZWQsIGFuZCBpdCBiZWNvbWVzIHRoZSBmaW5hbCBvdXRwdXQgZGljdC4KKyAgICAgICAgIworICAgICAgICAjIGlmIGEgc2Vjb25kIG5hbWUgaXMgaW5jbHVkZWQsIHRoZW4gdGhlIG91dGVyIGRpY3QgaXMgCisgICAgICAgICMgZXhhbWluZWQgdG8gZmluZCB0aGVzZSB2YWx1ZXMgKGllOiB2YWx1ZXNbbmFtZXNdKSwgYW5kIHRoZXNlCisgICAgICAgICMgZ2V0IGFkZGVkIHRvIHRoZSBmaW5hbCBvdXRwdXQgZGljdC4KKyAgICAgICAgIyAKKyAgICAgICAgIyBpZGVudGlmeSB0aGUgYWRkZWQga2V5IGZyb20gdGhlIHJlc3RfdHlwZQorICAgICAgICBrZXkgPSByZXN0X3R5cGUucmVwbGFjZSgnZGljdC1vZi1kaWN0LW9mLScsJycpCisgICAgICAgIHBhcnRzID0ga2V5LnNwbGl0KCd8JykKKyAgICAgICAgbmFtZSA9IE5vbmUKKyAgICAgICAgaWYgbGVuKHBhcnRzKSA+IDA6CisgICAgICAgICAgICBuYW1lcyA9IHBhcnRzWzE6XQorICAgICAgICAgICAga2V5ID0gcGFydHNbMF0KKyAgICAgICAgZm9ybWF0dGVkX2xpc3QgPSBbXQorICAgICAgICBmb3IgKHJvd19uYW1lLCByb3cpIGluIGVudHJpZXMuaXRlbXMoKToKKyAgICAgICAgICAgIHJvd1trZXldID0gcm93X25hbWUKKyAgICAgICAgICAgIGRvX2FwcGVuZCA9IEZhbHNlCisgICAgICAgICAgICBpZiBuYW1lczoKKyAgICAgICAgICAgICAgICBuZXdfcm93ID0ge30KKyAgICAgICAgICAgICAgICBmb3IgbmFtZSBpbiBuYW1lczoKKyAgICAgICAgICAgICAgICAgICAgaWYgbmFtZSBpbiByb3c6CisgICAgICAgICAgICAgICAgICAgICAgICBpdGVtID0gcm93W25hbWVdCisgICAgICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKGl0ZW0pID09IHN0ciBvciB0eXBlKGl0ZW0pID09IHVuaWNvZGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3Jvd1tuYW1lXSA9IGl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb19hcHBlbmQgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHR5cGUoaXRlbSkgPT0gZGljdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBuYW1lID09IHJvd19uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb19hcHBlbmQgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHR5cGUoaXRlbSkgPT0gbGlzdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaV9yb3cgaW4gaXRlbToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93X2l0ZW1zID0ge30KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93X2l0ZW1zW2tleV0gPSByb3dfbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dfaXRlbXMudXBkYXRlKGlfcm93KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZWRfbGlzdC5hcHBlbmQocm93X2l0ZW1zKQorICAgICAgICAgICAgICAgIGlmIGRvX2FwcGVuZDoKKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkX2xpc3QuYXBwZW5kKHJvdykKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGZvcm1hdHRlZF9saXN0LmFwcGVuZChyb3cpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBlbnRyaWVzID0gZm9ybWF0dGVkX2xpc3QKKyAgICBlbGlmIHJlc3RfdHlwZS5zdGFydHN3aXRoKCdkaWN0LXdpdGgtJyk6CisgICAgICAgICMgcmVzdCByZXN1bHQgbG9va3MgbGlrZTogeyBrIDogdiwgayA6IHsgfSB9CisgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCisgICAgICAgICMgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdhbnQgdGhpcyB8CisgICAgICAgICMgZGljdC13aXRoOiB0eXBpY2FsbHkgdXNlZCBmb3IgZGljdCByZXR1cm5zIHdoaWNoIGhhdmUKKyAgICAgICAgIyBuZXN0ZWQgZGljdCdzIHdobydzIHZhbHVlcyBhcmUgcHJvbW90ZWQgdG8gYSBzaW5nbGUKKyAgICAgICAgIyBsaXN0IHdpdGggYSBkaWN0IHdpdGggdGhlc2UgdmFsdWVzLgorICAgICAgICAjCisgICAgICAgICMgaWRlbnRpZnkgdGhlIGFkZGVkIGtleSBmcm9tIHRoZSByZXN0X3R5cGUKKyAgICAgICAga2V5ID0gcmVzdF90eXBlLnJlcGxhY2UoJ2RpY3Qtd2l0aC0nLCcnKQorICAgICAgICBuYW1lcyA9IGtleS5zcGxpdCgnfCcpCisgICAgICAgIGNvbGxlY3Rfcm93ID0ge30KKyAgICAgICAgZm9ybWF0dGVkX2xpc3QgPSBbXQorICAgICAgICBmb3IgbmFtZSBpbiBuYW1lczoKKyAgICAgICAgICAgIGlmIG5hbWUgaW4gZW50cmllczoKKyAgICAgICAgICAgICAgICBpdGVtID0gZW50cmllc1tuYW1lXQorICAgICAgICAgICAgICAgIGlmIHR5cGUoaXRlbSkgPT0gc3RyIG9yIHR5cGUoaXRlbSkgPT0gdW5pY29kZSBvciBcCisgICAgICAgICAgICAgICAgICB0eXBlKGl0ZW0pID09IGludCBvciB0eXBlKGl0ZW0pID09IGxvbmc6ICMgWFhYIGZsb2F0PworICAgICAgICAgICAgICAgICAgICBjb2xsZWN0X3Jvd1tuYW1lXSA9IGl0ZW0KKyAgICAgICAgICAgICAgICBlbGlmIHR5cGUoaXRlbSkgPT0gbGlzdDoKKyAgICAgICAgICAgICAgICAgICAgZm9yIGlfcm93IGluIGl0ZW06CisgICAgICAgICAgICAgICAgICAgICAgICByb3dfaXRlbXMgPSB7fQorICAgICAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVkX2xpc3QuYXBwZW5kKGlfcm93KQorICAgICAgICAgICAgICAgIGVsaWYgdHlwZShpdGVtKSA9PSBkaWN0OgorICAgICAgICAgICAgICAgICAgICBjb2xsZWN0X3Jvdy51cGRhdGUoaXRlbSkKKworICAgICAgICBpZiBsZW4oY29sbGVjdF9yb3cpID09IDA6CisgICAgICAgICAgICBlbnRyaWVzID0gZm9ybWF0dGVkX2xpc3QKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGVudHJpZXMgPSBbY29sbGVjdF9yb3ddICsgZm9ybWF0dGVkX2xpc3QKKworICAgIGVsaWYgcmVzdF90eXBlID09ICdkaWN0JzoKKyAgICAgICAgZW50cmllcyA9IFtlbnRyaWVzXQorICAgIGVsc2U6CisgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCJVbmtub3duIHJlc3QtdHlwZTogJXMiICUgcmVzdF90eXBlKQorICAgIHJldHVybiBlbnRyaWVzCisKKworZGVmIG1pc3NpbmdfcGFydChrZXlfcGFydHMsIGVudHJ5LCBrZXlfY2FzZSA9IEZhbHNlKToKKyAgICAiIiIKKyAgICBSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIG1pc3NpbmcgZmllbGQgb2Ygb25lIG9mIHRoZSBzdHJpbmdzCisgICAgaW4gdGhlIGtleV9wYXJ0cyBsaXN0IHdoZW4gaXQgIGRvZXNuJ3QgYXBwZWFyIGluIHRoZSAnZW50cnknIGRpY3Rpb25hcnkuCisKKyAgICBSZXR1cm4gTm9uZSBvdGhlcndpc2UuCisKKyAgICBUaGlzIGlzIHVzZWQgdG8gaWRlbnRpZnkgcm93cyB3aGljaCBkb24ndCBoYXZlIGFsbCB0aGUKKyAgICBwYXJ0cyBuZWVkZWQgdG8gY29uc3RyY3V0IGEgam9pbiBrZXksIG9yIGEgZGItdGFibGUgb3IKKyAgICBxdWVyeSAia2V5IiB0byBzdXBwb3J0IGFkZGl0aW9uIG9mIHR3byBkaWZmZXJlbnQgdGFibGVzLgorCisgICAgQGtleV9wYXJ0cyBsaXN0IG9mIHN0cmluZ3MsIAorICAgIEBlbnRyeSBkaWN0aW9uYXJ5LCBuZWVkcyB0byBjb250YWlucyBlYWNoIHN0cmluZyBpbiBrZXlfcGFydHMKKyAgICBAa2V5X2Nhc2UgVHJ1ZSB3aGVuIGFsbCBrZXlfcGFydHMgbWF5IGNvbnRhaW4gYSBsZWFkaW5nICd+JyB0bworICAgICAgICBkZW5vdGUgdGhlIGZpZWxkIG5lZWRzIHRvIGJlIGxvd2VyIGNhc2VkIGZvciBqb2luaW5nCisgICAgIiIiCisgICAgZm9yIGtuIGluIGtleV9wYXJ0czoKKyAgICAgICAgaWYgbm90IGtuIGluIGVudHJ5OgorICAgICAgICAgICAgaWYga2V5X2Nhc2UgPT0gRmFsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIGtuCisgICAgICAgICAgICBpZiBrblswXSAhPSAnfic6CisgICAgICAgICAgICAgICAgcmV0dXJuIGtuCisgICAgICAgICAgICBpZiBrblsxOl0gbm90IGluIGVudHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiBrblsxOl0KKworICAgIHJldHVybiBOb25lCisKKworZGVmIGNhc2VfY3Z0KGZuLCBmX2RpY3QpOgorICAgICIiIgorICAgIEZvciBqb2luIG9wZXJhdGlvbnMsIHRoZSBmaWVsZHMgaW4gdGhlIHBhcnRpYWwgcmVzdWx0IGNhbiBubyBsb25nZXIKKyAgICBiZSBhc3NvY2lhdGVkIHdpdGggYW55IG9iai10eXBlLCB3aGljaCBtZWFucyBpdHMgaW1wb3NzaWJsZSB0byBkZXRlcm1pbmUKKyAgICB3aGV0aGVyIHRoZSBhc3NvY2lhdGVkIGZpZWxkIGlzIGNhc2Ugc2Vuc2l0aXZlLgorCisgICAgT25lIGFwcHJvYWNoIHRvIHRoaXMgcHJvYmxlbSBpcyB0byBjYXNlLW5vcm1hbGl6ZSB0aGUgb2JqLXR5cGUncworICAgIGZpZWxkIHZhbHVlcyB3aGVuIHRoZXkncmUgZmlyc3QgYWRkZWQgdG8gdGhlIHJvdy4gICBUaGF0IGRvZXNuJ3QKKyAgICBoZWxwIGZvciByZXN0LWFwaSdzLCB3aGljaCBtZWFucyBpdCBjYW4gb25seSBiZSBhIHBhcnRpYWwgc29sdXRpb24uCisgICAgSW4gYWRkaXRpb24sIGl0IG1ha2VzIHNlbnNlIHRvIHByZXNlcnZlIHRoZXNlIHZhbHVlcyB3aGVuIHBvc3NpYmxlLAorICAgIGJ1dCBzdGlsbCBqb2luIGJhc2VkIG9uIGNhc2Utbm9ybWFsaXphdGlvbi4KKyAgICAiIiIKKyAgICBpZiBmblswXSA9PSAnfic6CisgICAgICAgIHJldHVybiBzdHIoZl9kaWN0LmdldChmblsxOl0sICcnKS5sb3dlcigpKQorICAgIHJldHVybiBzdHIoZl9kaWN0LmdldChmbiwgJycpKQorCisKK2RlZiBvYmpfdHlwZV9maWVsZF9jYXNlKGRhdGEsIG9ial90eXBlLCBmaWVsZCk6CisgICAgIiIiCisgICAgRm9yIG9iamVjdHMgd2hlcmUgdGhlIGNhc2Utbm9ybWFsaXphdGlvbiBpcyBpZGVudGlmZWQsCisgICAgbWFuYWdlIGNvbnZlcnNpb24gb2YgdGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgZmllbGQKKyAgICAiIiIKKyAgICBjYXNlID0gbWkuZ2V0X29ial90eXBlX2ZpZWxkX2Nhc2Vfc2Vuc2l0aXZlKG9ial90eXBlLCBmaWVsZCkKKyAgICByZXR1cm4gc3RyKGRhdGFbZmllbGRdKSBpZiBub3QgY2FzZSBlbHNlIHN0cih1dGlmLmNvbnZlcnRfY2FzZShjYXNlLCBkYXRhW2ZpZWxkXSkpCisKKworZGVmIGFkZF9maWVsZHMoZGVzdCwgc3JjKToKKyAgICAiIiIKKyAgICBUaGVzZSBzaG91bGQgYm90aCBiZSBkaWN0aW9uYXJpZXMsIGxlYXZlIHRoZSBvcmlnaW5hbCBlbnRyaWVzIGluIHBsYWNlCisgICAgd2hlbiB0aGUgJ2Rlc3QnIGVudHJpZXMgYXJlIHBvcHVsYXRlZCBmcm9tICdzcmMnLiAgIFRoaXMgb3BlcmF0aW9uIGlzCisgICAgaGFuZHkgc2luY2UgdGhlIG9yaWdpbmFsICdkZXN0JyBlbnRyaWVzIG1heSBkaWZmZXIgZnJvbSB0aGUgJ3NyYycgZHVlCisgICAgdG8gY2FzZSBub3JtYWxpemF0aW9uLiAgIFNpbmNlIGhhdmluZyBjb25zaXN0ZW50IG5hbWVzIGlzIGEgcGx1cywgYnkKKyAgICBub3QgdXBkYXRpbmcgdGhlIHZhbHVlIHdpdGggdGhlICdzcmMnIGVudHJpZXMsICdkZXN0JyByZXRhaW5zIGl0cyBvcmlnaW5hbAorICAgIHZhbHVlcy4KKyAgICAiIiIKKyAgICBmb3IgKG4sdikgaW4gc3JjLml0ZW1zKCk6CisgICAgICAgIGlmIG4gbm90IGluIGRlc3Q6CisgICAgICAgICAgICBkZXN0W25dID0gdgorICAgICAgICBlbGlmIHN0cihkZXN0W25dKS5sb3dlcigpID09IHN0cih2KS5sb3dlcjoKKyAgICAgICAgICAgICMgc2hvdWxkIGhhdmUgYmV0dGVyIGNvbnRyb2xzIGZvciB3aGVuIHRoZSBjYXNlIG1hdHRlcnMKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgICAgIHByaW50ICdBREQgJXMgc2tpcHBpbmcgdXBkYXRpbmcgJXMgPC0+ICVzJyAlIChuLCBkZXN0W25dLCB2KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZGVzdFtuXSA9IHYKKworCitkZWYgY29tbWFuZF9xdWVyeV90YWJsZShvYmpfdHlwZSwgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsZWFyID0gVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IE5vbmUsIGFwcGVuZCA9IE5vbmUsIHNjb3BlZCA9IE5vbmUsIHNvcnQgPSBOb25lLCBjcmFjayA9IE5vbmUpOgorICAgICIiIgorICAgIExlYXZlIHRoZSByZXN1bHQgaW4gY29tbWFuZCdzIGdsb2JhbCBxdWVyeV9yZXN1bHQsIHdoaWNoIGNhbgorICAgIGJlIHVzZWQgYnkgb3RoZXIgY19hY3Rpb24gc3RlcHMKKworICAgICdrZXknIGlzIG9uZSBvciBtb3JlIGZpZWxkcyB3aGljaCBhcmUgY29uY2F0ZW5hdGVkIHRvZ2V0aGVyIHRvIGZvcm0KKyAgICB0aGUgZGlzcGxheS1waXBlbGluZSdzIHZlcnNpb24gb2YgYSBwcmltYXJ5IGtleS4gICBJdCBjb3VsZCBiZSB0aGUKKyAgICBhY3R1YWwgcHJpbWFyeSBrZXkgb2YgdGhlIHRhYmxlLCBvciBpdCBjb3VsZCBiZSBzb21lIGZpZWxkcyB3aGljaAorICAgIGFwcGVhciBpbiBhbGwgdGhlIHJvd3MuICAgT25jZSB0aGUgJ2tleScgaXMgY29uc3RydWN0ZWQsIGl0IHVzZWQgdG8KKyAgICBkZXRlcm1pbmUgaG93IHJlc3VsdHMgYXJlIGFkZGVkIHRvIHRoZSBjb21tYW5kLnF1ZXJ5X3Jlc3VsdC4KKworICAgIElmIHRoZSBleGlzdGluZyBlbnRyaWVzIGFyZSB0byBiZSAnY2xlYXJlZCcsIHRoZW4gdGUgcHJpbWFyeSBrZXkncworICAgIGFyZSBzaW1wbHkgYWRkZWQgdG8gdGhlIHRhYmxlLiAgV2hlbiB0aGUgZW50cmllcyBhcmVuJ3QgY2xlYXJlZCwgdGhlbgorICAgIHRoZSBjb21wdXRlZCBwcmltYXJ5IGtleSBpcyB1c2VkIHRvIGpvaW4gYWdhaW5zdCBleGlzdGluZyBpdGVtcy4KKworICAgIEZpbmFsbHksIHRoZSBkaWN0IGZpZWxkIG5hbWUgZm9yIHRoZSBwcmltYXJ5IGtleSBpcyBhIHNpbmdsZSBjaGFyYWN0ZXI6ICdAJworICAgIFRoaXMgbmFtZSB3YXMgcGlja2VkIHNpbmNlIGl0cyBub3QgcG9zc2libGUgZm9yIHRoZSBkYXRhYmFzZSB0byBldmVyCisgICAgdXNlIHRoYXQgbmFtZS4KKyAgICAiIiIKKworICAgIGlmIG5vdCBtaS5vYmpfdHlwZV9leGlzdHMob2JqX3R5cGUpOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcigiVW5rbm93biBvYmotdHlwZTogJXMiICUgb2JqX3R5cGUpCisgICAgICAgIAorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJjb21tYW5kX3F1ZXJ5X3RhYmxlOiIsIG9ial90eXBlLCBkYXRhLCBjbGVhciwga2V5LCBhcHBlbmQsIHNjb3BlZCwgc29ydCwgY3JhY2sKKworICAgIGlmICdzY29wZWQnIGluIGRhdGE6CisgICAgICAgIHNjb3BlZD1kYXRhWydzY29wZWQnXQorICAgICAgICBkZWwgZGF0YVsnc2NvcGVkJ10KKworICAgIHJlc3VsdCA9IGNvbW1hbmRfcXVlcnlfb2JqZWN0KG9ial90eXBlLCBkYXRhLCBzY29wZWQsIHNvcnQpCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgImNvbW1hbmRfcXVlcnlfdGFibGU6ICVkIGVudHJpZXMgZm91bmQsIHVzaW5nICVzIiAlIFwKKyAgICAgICAgICAgICAgICAobGVuKHJlc3VsdCksIGRhdGEpCisKKyAgICBpZiBjcmFjazoKKyAgICAgICAgaWYgY3JhY2sgPT0gVHJ1ZToKKyAgICAgICAgICAgIGNyYWNrID0gbWkucGsob2JqX3R5cGUpCisgICAgICAgIGZvciBlbnRyeSBpbiByZXN1bHQ6CisgICAgICAgICAgICBtaS5zcGxpdF9jb21wb3VuZF9pbnRvX2RpY3Qob2JqX3R5cGUsIGNyYWNrLCBlbnRyeSwgVHJ1ZSkKKworICAgIGlmIGFwcGVuZDoKKyAgICAgICAgZm9yIGVudHJ5IGluIHJlc3VsdDoKKyAgICAgICAgICAgIGlmIHR5cGUoYXBwZW5kKSA9PSBkaWN0OgorICAgICAgICAgICAgICAgIGVudHJ5LnVwZGF0ZShhcHBlbmQpCisgICAgICAgICAgICBlbGlmIHR5cGUoYXBwZW5kKSA9PSBsaXN0OgorICAgICAgICAgICAgICAgIGVudHJ5LnVwZGF0ZShkaWN0KGFwcGVuZCkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGVudHJ5W2FwcGVuZF0gPSBUcnVlCisKKyAgICAjIGFsbCB0aGUgZmllbGQgZnJvbSBhbGwgdGhlIHJvd3MgbmVlZCB0byBiZSBwcmVzZW50LgorICAgIGlmIGtleToKKyAgICAgICAgZmllbGRzID0ga2V5LnNwbGl0KCd8JykKKworICAgIGlmIGNsZWFyOgorICAgICAgICBjb21tYW5kLnF1ZXJ5X3Jlc3VsdCA9IHJlc3VsdAorICAgICAgICBpZiBrZXk6CisgICAgICAgICAgICBmb3IgciBpbiByZXN1bHQ6CisgICAgICAgICAgICAgICAgbWlzc2luZyA9ICBtaXNzaW5nX3BhcnQoZmllbGRzLCByKQorICAgICAgICAgICAgICAgIGlmIG1pc3Npbmc6CisgICAgICAgICAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfcXVlcnlfdGFibGU6ICcgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyBtaXNzaW5nIGZpZWxkIGluIHJvdyAlcyAoJXMpICIgJSAobWlzc2luZywgb2JqX3R5cGUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgclsnQCddID0gJ3wnLmpvaW4oW29ial90eXBlX2ZpZWxkX2Nhc2Uociwgb2JqX3R5cGUsIGYpIGZvciBmIGluIGZpZWxkc10pCisgICAgZWxzZToKKyAgICAgICAgaWYga2V5ID09IE5vbmU6CisgICAgICAgICAgICBpZiBjb21tYW5kLnF1ZXJ5X3Jlc3VscyAhPSBOb25lOgorICAgICAgICAgICAgICAgIGNvbW1hbmQucXVlcnlfcmVzdWx0ICs9IHJlc3VsdAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBjb21tYW5kLnF1ZXJ5X3Jlc3VsdCA9IHJlc3VsdAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcl9kaWN0ID0ge30KKyAgICAgICAgICAgIGZvciByIGluIHJlc3VsdDoKKyAgICAgICAgICAgICAgICBtaXNzaW5nID0gIG1pc3NpbmdfcGFydChmaWVsZHMsIHIpCisgICAgICAgICAgICAgICAgaWYgbWlzc2luZzoKKyAgICAgICAgICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiY29tbWFuZF9xdWVyeV90YWJsZTogJyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIG1pc3NpbmcgZmllbGQgaW4gcm93ICVzICglcykgIiAlIChtaXNzaW5nLCBvYmpfdHlwZSkKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBwayA9ICd8Jy5qb2luKFtyW2ZdIGZvciBmIGluIGZpZWxkc10pCisgICAgICAgICAgICAgICAgcl9kaWN0W3BrXSA9IHIKKyAgICAgICAgICAgIGlmIGhhc2F0dHIoY29tbWFuZCwgJ3F1ZXJ5X3Jlc3VsdCcpIGFuZCBjb21tYW5kLnF1ZXJ5X3Jlc3VsdDogICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBmb3IgcXIgaW4gY29tbWFuZC5xdWVyeV9yZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgIGlmICdAJyBpbiBxciBhbmQgcXJbJ0AnXSBpbiByX2RpY3Q6CisgICAgICAgICAgICAgICAgICAgICAgICBhZGRfZmllbGRzKHFyLCByX2RpY3RbcXJbJ0AnXV0pCisgICAgICAgICAgICAgICAgICAgICAgICBkZWwgcl9kaWN0W3FyWydAJ11dCisgICAgICAgICAgICAgICAgY29tbWFuZC5xdWVyeV9yZXN1bHQgKz0gcl9kaWN0LnZhbHVlcygpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGZvciAociwgdmFsdWUpIGluIHJfZGljdC5pdGVtcygpOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZVsnQCddID0gJ3wnLmpvaW4oW3ZhbHVlW2ZdIGZvciBmIGluIGZpZWxkc10pCisgICAgICAgICAgICAgICAgY29tbWFuZC5xdWVyeV9yZXN1bHQgPSByX2RpY3QudmFsdWVzKCkKKworCitkZWYgY29tbWFuZF9xdWVyeV9yZXN0KGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgIHVybCA9IE5vbmUsIHBhdGggPSBOb25lLCBjbGVhciA9IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgIGtleSA9IE5vbmUsIHJlc3RfdHlwZSA9IE5vbmUsIHNjb3BlZCA9IE5vbmUsIHNvcnQgPSBOb25lLCBhcHBlbmQgPSBOb25lKToKKyAgICAiIiIKKyAgICBMZWF2ZSB0aGUgcmVzdWx0IGluIGNvbW1hbmQncyBnbG9iYWwgcXVlcnlfcmVzdWx0LCB3aGljaCBjYW4KKyAgICBiZSB1c2VkIGJ5IG90aGVyIGNfYWN0aW9uIHN0ZXBzIChxdWVyeS10YWJsZSwgam9pbi10YWJsZSwgam9pbi1yZXN0LCBkaXNwbGF5KQorCisgICAgJ2tleScgaXMgb25lIG9yIG1vcmUgZmllbGRzIHdoaWNoIGFyZSBjb25jYXRlbmF0ZWQgdG9nZXRoZXIgdG8gZm9ybQorICAgIHRoZSBkaXNwbGF5LXBpcGVsaW5lJ3MgdmVyc2lvbiBvZiBhIHByaW1hcnkga2V5LiAgIEl0IGNvdWxkIGJlIHRoZQorICAgIGFjdHVhbCBwcmltYXJ5IGtleSBvZiB0aGUgdGFibGUsIG9yIGl0IGNvdWxkIGJlIHNvbWUgZmllbGRzIHdoaWNoCisgICAgYXBwZWFyIGluIGFsbCB0aGUgcm93cy4gICBPbmNlIHRoZSAna2V5JyBpcyBjb25zdHJ1Y3RlZCwgaXQgdXNlZCB0bworICAgIGRldGVybWluZSBob3cgcmVzdWx0cyBhcmUgYWRkZWQgdG8gdGhlIGNvbW1hbmQucXVlcnlfcmVzdWx0LgorCisgICAgSWYgdGhlIGV4aXN0aW5nIGVudHJpZXMgYXJlIHRvIGJlICdjbGVhcmVkJywgdGhlbiB0ZSBwcmltYXJ5IGtleSdzCisgICAgYXJlIHNpbXBseSBhZGRlZCB0byB0aGUgdGFibGUuICBXaGVuIHRoZSBlbnRyaWVzIGFyZW4ndCBjbGVhcmVkLCB0aGVuCisgICAgdGhlIGNvbXB1dGVkIHByaW1hcnkga2V5IGlzIHVzZWQgdG8gam9pbiBhZ2FpbnN0IGV4aXN0aW5nIGl0ZW1zLgorCisgICAgRmluYWxseSwgdGhlIGRpY3QgZmllbGQgbmFtZSBmb3IgdGhlIHByaW1hcnkga2V5IGlzIGEgc2luZ2xlIGNoYXJhY3RlcjogJ0AnCisgICAgVGhpcyBuYW1lIHdhcyBwaWNrZWQgc2luY2UgaXRzIG5vdCBwb3NzaWJsZSBmb3IgdGhlIGRhdGFiYXNlIHRvIGV2ZXIKKyAgICB1c2UgdGhhdCBuYW1lLgorCisgICAgIiIiCisKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAiY29tbWFuZF9xdWVyeV9yZXN0OiIsIHVybCwgcGF0aCwgcmVzdF90eXBlLCBkYXRhLCBzY29wZWQsIHNvcnQsIGFwcGVuZAorCisgICAgaWYgdXJsID09IE5vbmUgYW5kIHBhdGggPT0gTm9uZToKKyAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZERlc2NyaXB0aW9uRXJyb3IoIm1pc3NpbmcgdXJsIG9yIHBhdGgiKQorICAgICAgICAKKyAgICBpZiBwYXRoOgorICAgICAgICBzY2hlbWEgPSBzZG5zaC5zZG5kYi5zY2hlbWFfZGV0YWlsKHBhdGgpCisgICAgICAgIGlmIHNjaGVtYToKKyAgICAgICAgICAgIHJlc3VsdCA9IHNkbnNoLnNkbmRiLmRhdGFfcmVzdF9yZXF1ZXN0KHBhdGgpCisgICAgICAgIGlmIGtleToKKyAgICAgICAgICAgICMgY3JlYXRlIGEga2V5IGRpY3Rpb25hcnksIHdpdGggdGhlIGtleSB2YWx1ZXMsIHBvaW50aW5nIHRvCisgICAgICAgICAgICAjIGEgcHN0aCBpbiB0aGUgc2NoZW1hLgorICAgICAgICAgICAgcGFzcworICAgICAgICBwcmludCAnUEFUSCcsIHBhdGgsIHJlc3VsdAorICAgIGVsc2U6CisgICAgICAgICMgaWYgdXJsIGlzIGEgbGlzdCwgcGljayB0aGUgZmlyc3Qgb25lIHdoaWNoIGNhbiBiZSBidWlsZCBmcm9tIHRoZSBkYXRhCisgICAgICAgIGlmIHR5cGUodXJsKSA9PSBsaXN0OgorICAgICAgICAgICAgc2VsZWN0X3VybCA9IHVybAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZWN0X3VybCA9IFt1cmxdCisKKyAgICAgICAgdXNlX3VybCA9IE5vbmUKKyAgICAgICAgZm9yIHUgaW4gc2VsZWN0X3VybDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB1c2VfdXJsID0gKHUgJSBkYXRhKQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIGlmIHVzZV91cmwgPT0gTm9uZToKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfcXVlcnlfcmVzdDogbm8gdXJsIGZvdW5kIgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgcXVlcnlfdXJsID0gImh0dHA6Ly8lcy9yZXN0L3YxLyIgJSBzZG5zaC5jb250cm9sbGVyICsgdXNlX3VybAorCisgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICBwcmludCAiY29tbWFuZF9xdWVyeV9yZXN0OiBxdWVyeSAiLCBxdWVyeV91cmwKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gc2Ruc2guc3RvcmUucmVzdF9zaW1wbGVfcmVxdWVzdChxdWVyeV91cmwpCisgICAgICAgICAgICBjaGVja19yZXN0X3Jlc3VsdChyZXN1bHQpCisgICAgICAgICAgICBlbnRyaWVzID0ganNvbi5sb2FkcyhyZXN1bHQpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbiBvciBzZG5zaC5kZWJ1ZzoKKyAgICAgICAgICAgICAgICBwcmludCAnY29tbWFuZF9xdWVyeV9yZXN0OiBFUlJPUiB1cmwgJXMgJXMnICUgKHVybCwgZSkKKyAgICAgICAgICAgIGVudHJpZXMgPSBbXQorCisgICAgICAgIGlmIGVudHJpZXMgPT0gTm9uZSBvciBsZW4oZW50cmllcykgPT0gMDoKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfcXVlcnlfcmVzdDogbm8gbmV3IGVudHJpZXMgIiwgcXVlcnlfdXJsCisgICAgICAgICAgICBpZiBjbGVhcjoKKyAgICAgICAgICAgICAgICBjb21tYW5kLnF1ZXJ5X3Jlc3VsdCA9IE5vbmUKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgSXQgY2VydGFpbmx5IHNlZW1zIHBvc3NpYmxlIHRvIG1hcCBmcm9tIHVybCdzIHRvIHRoZSB0eXBlIGFzc29jaWF0ZWQsCisgICAgICAgICMgd2l0aCB0aGUgcmVzdWx0LCBidXQgaXQgYWxzbyBtYWtlcyBzZW5zZSB0byBlbmNvZGUgdGhhdCB0eXBlIGluZm9ybWF0aW9uCisgICAgICAgICMgaW50byB0aGUgZGVzY3JpcHRpb24KKyAgICAgICAgaWYgcmVzdF90eXBlOgorICAgICAgICAgICAgcmVzdWx0ID0gY29tbWFuZF9kaXNwbGF5X3Jlc3RfdHlwZV9jb252ZXJ0ZXIoTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyaWVzKQorICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICBwcmludCAiY29tbWFuZF9xdWVyeV9yZXN0OiAlcyAjZW50cmllcyAlZCAiICUgKHVybCwgbGVuKGVudHJpZXMpKQorICAgICAgICAgICAgICAgIHByaW50IHJlc3VsdAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0ID0gW10KKyAgICAgICAgICAgIGltcG9ydCBmbXRjbnYKKyAgICAgICAgICAgIGlmIChvbm9zID09IDEpIGFuZCAodXJsID09ICdsaW5rcycpOgorICAgICAgICAgICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgICAgICAgICBzcmMgPSBlbnRyeS5nZXQoJ3NyYycpCisgICAgICAgICAgICAgICAgICAgIGRzdCA9IGVudHJ5LmdldCgnZHN0JykKKyAgICAgICAgICAgICAgICAgICAgZm9yIHRlbXBFbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgY21wKHNyYywgdGVtcEVudHJ5LmdldCgnZHN0JykpID09IDA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY21wKGRzdCwgdGVtcEVudHJ5LmdldCgnc3JjJykpID09IDA6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJpZXMucmVtb3ZlKHRlbXBFbnRyeSkKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh7CisgICAgICAgICAgICAgICAgICAgICAgICdzcmMtc3dpdGNoJyAgICAgICAgICA6IGZtdGNudi5wcmludF9zd2l0Y2hfYW5kX2FsaWFzKGVudHJ5WydzcmMnXVsnZHBpZCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy1wb3J0JyAgICAgICAgICAgIDogZW50cnlbJ3NyYyddWydwb3J0TnVtYmVyJ10sCisgICAgICAgICAgICAgICAgICAgICAgICdzcmMtcG9ydC1zdGF0ZScgICAgICA6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICdkc3Qtc3dpdGNoJyAgICAgICAgICA6IGZtdGNudi5wcmludF9zd2l0Y2hfYW5kX2FsaWFzKGVudHJ5Wydkc3QnXVsnZHBpZCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2RzdC1wb3J0JyAgICAgICAgICAgIDogZW50cnlbJ2RzdCddWydwb3J0TnVtYmVyJ10sCisgICAgICAgICAgICAgICAgICAgICAgICdkc3QtcG9ydC1zdGF0ZScgICAgICA6IDAsCisgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgICAgICA6IGVudHJ5Wyd0eXBlJ10sCisgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IGVudHJpZXMKKyAgICAgICAgCisgICAgaWYgYXBwZW5kOgorICAgICAgICBmb3IgZW50cnkgaW4gcmVzdWx0OgorICAgICAgICAgICAgaWYgdHlwZShhcHBlbmQpID09IGRpY3Q6CisgICAgICAgICAgICAgICAgZW50cnkudXBkYXRlKGFwcGVuZCkKKyAgICAgICAgICAgIGVsaWYgdHlwZShhcHBlbmQpID09IGxpc3Q6CisgICAgICAgICAgICAgICAgZW50cnkudXBkYXRlKGRpY3QoYXBwZW5kKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZW50cnlbYXBwZW5kXSA9IFRydWUKKyAgICAKKyAgICBpZiBrZXk6CisgICAgICAgIGZpZWxkcyA9IGtleS5zcGxpdCgnfCcpCisKKyAgICBpZiBjbGVhcjoKKyAgICAgICAgY29tbWFuZC5xdWVyeV9yZXN1bHQgPSByZXN1bHQKKyAgICAgICAgaWYga2V5OgorICAgICAgICAgICAgZm9yIHIgaW4gcmVzdWx0OgorICAgICAgICAgICAgICAgIHJbJ0AnXSA9ICd8Jy5qb2luKFtyW2ZdIGZvciBmIGluIGZpZWxkc10pCisgICAgZWxzZToKKyAgICAgICAgaWYga2V5ID09IE5vbmU6CisgICAgICAgICAgICBpZiBjb21tYW5kLnF1ZXJ5X3Jlc3VsdCAhPSBOb25lOgorICAgICAgICAgICAgICAgIGNvbW1hbmQucXVlcnlfcmVzdWx0ICs9IHJlc3VsdAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBjb21tYW5kLnF1ZXJ5X3Jlc3VsdCA9IHJlc3VsdAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcl9kaWN0ID0ge30KKyAgICAgICAgICAgIGZvciByIGluIHJlc3VsdDoKKyAgICAgICAgICAgICAgICBtaXNzaW5nID0gIG1pc3NpbmdfcGFydChmaWVsZHMsIHIsIGtleV9jYXNlID0gVHJ1ZSkKKyAgICAgICAgICAgICAgICBpZiBtaXNzaW5nOgorICAgICAgICAgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJjb21tYW5kX3F1ZXJ5X3Jlc3Q6IG1pc3NpbmcgZmllbGQgJXMgaW4gcm93ICVzIiAlIChtaXNzaW5nLCByKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIHBrID0gJ3wnLmpvaW4oW2Nhc2VfY3Z0KGYsIHIpIGZvciBmIGluIGZpZWxkc10pCisgICAgICAgICAgICAgICAgcl9kaWN0W3BrXSA9IHIKKyAgICAgICAgICAgIGZvciBxciBpbiBjb21tYW5kLnF1ZXJ5X3Jlc3VsdDoKKyAgICAgICAgICAgICAgICBpZiAnQCcgaW4gcXIgYW5kIHFyWydAJ10gaW4gcl9kaWN0OgorICAgICAgICAgICAgICAgICAgICBhZGRfZmllbGRzKHFyLCByX2RpY3RbcXJbJ0AnXV0pCisKKworZGVmIGNvbW1hbmRfam9pbl9yZXN0KHVybCwgZGF0YSwga2V5LCBqb2luX2ZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgIGFkZF9maWVsZCA9IE5vbmUsIHJlc3RfdHlwZSA9IE5vbmUsIGNyYWNrID0gTm9uZSwgdXJsX2tleSA9IE5vbmUpOgorICAgIAorICAgICIiIgorICAgIHVybC1rZXkgYWxsb3dzIHNpbmdsZSByb3cgcmVzdWx0cyB0byBoYXZlIGEgbmFtZTp2YWx1ZSBhZGRlZCB0byB0aGUKKyAgICBlbnRyeSBpbiBzaXR1YXRpb25zIHdoZXJlIGEgc2luZ2xlIGRpY3Rpb25hcnkgaXMgY29tcHV0ZWQgYWZ0ZXIgdGhlCisgICAgcmVzdC10eXBlIGNvbnZlcnNpb24uICAgdGhpcyBhbGxvd3Mgc2ltcGxlIHJlc3VsdHMgZnJvbSB0aGUgdXJsIHRvCisgICAgaGF2ZSBhIGtleXdvcmQgYWRkZWQgdG8gYWxsb3cgam9pbnMuCisgICAgIiIiCisgICAgaWYgbm90IGhhc2F0dHIoY29tbWFuZCwgJ3F1ZXJ5X3Jlc3VsdCcpOgorICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfam9pbl9yZXN0OiBubyBlbnRyaWVzIGZvdW5kIgorICAgICAgICByZXR1cm4KKyAgICAgICAgCisgICAgaWYgY29tbWFuZC5xdWVyeV9yZXN1bHQgPT0gTm9uZToKKyAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgIHByaW50ICJjb21tYW5kX2pvaW5fcmVzdDogcXVlcnlfcmVzdWx0OiBOb25lIgorICAgICAgICByZXR1cm4KKworICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJjb21tYW5kX2pvaW5fcmVzdDogJWQgZW50cmllcyBmb3VuZCwgdXNpbmcgJXMsIHVybCAlcyIgJSBcCisgICAgICAgICAgICAgICAgKGxlbihjb21tYW5kLnF1ZXJ5X3Jlc3VsdCksIGRhdGEsIHVybCkKKyAgICAgICAgcHJpbnQgImNvbW1hbmRfam9pbl9yZXN0OiIsIGRhdGEsIGtleSwgam9pbl9maWVsZAorCisgICAgaWYgdXJsID09IE5vbmU6CisgICAgICAgIHJldHVybgorICAgIGlmIGpvaW5fZmllbGQgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuCisgICAgaWYga2V5ID09IE5vbmU6CisgICAgICAgIHJldHVybgorCisKKyAgICAjIENvbGxlY3QgYWxsIHRoZSBxdWVyaWVzLCByZW1vdmluZyBhbnkgZHVwbGljYXRlcworICAgIHF1ZXJpZXMgPSB7fQorICAgIGZvciBlbnRyeSBpbiBjb21tYW5kLnF1ZXJ5X3Jlc3VsdDoKKyAgICAgICAgIyBpZiB1cmwgaXMgYSBsaXN0LCBwaWNrIHRoZSBmaXJzdCBvbmUgd2hpY2ggY2FuIGJlIGJ1aWxkIGZyb20gdGhlIGRhdGEKKyAgICAgICAgaWYgdHlwZSh1cmwpID09IGxpc3Q6CisgICAgICAgICAgICBzZWxlY3RfdXJsID0gdXJsCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxlY3RfdXJsID0gW3VybF0KKworICAgICAgICB1c2VfdXJsID0gTm9uZQorICAgICAgICBmb3IgdSBpbiBzZWxlY3RfdXJsOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHVzZV91cmwgPSAodSAlIGVudHJ5KQorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIGlmIHVzZV91cmwgPT0gTm9uZToKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfam9pbl9yZXN0OiBubyB1cmwgZm91bmQiLCB1cmwKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIHF1ZXJ5X3VybCA9ICJodHRwOi8vJXMvcmVzdC92MS8iICUgc2Ruc2guY29udHJvbGxlciArIHVzZV91cmwKKworICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfam9pbl9yZXN0OiBxdWVyeSAiLCBxdWVyeV91cmwsIGVudHJ5CisgICAgICAgIGlmIHF1ZXJ5X3VybCBpbiBxdWVyaWVzOgorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3VsdCA9IHNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QocXVlcnlfdXJsKQorICAgICAgICAgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorICAgICAgICAgICAgZW50cmllcyA9IGpzb24ubG9hZHMocmVzdWx0KQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZW50cmllcyA9IFtdCisKKyAgICAgICAgaWYgZW50cmllcyA9PSBOb25lIG9yIGxlbihlbnRyaWVzKSA9PSAwOgorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAjIEl0IGNlcnRhaW5seSBzZWVtcyBwb3NzaWJsZSB0byBtYXAgZnJvbSB1cmwncyB0byB0aGUgdHlwZSBhc3NvY2lhdGVkLAorICAgICAgICAjIHdpdGggdGhlIHJlc3VsdCwgYnV0IGl0IGFsc28gbWFrZXMgc2Vuc2UgdG8gZW5jb2RlIHRoYXQgdHlwZSBpbmZvcm1hdGlvbgorICAgICAgICAjIGludG8gdGhlIGRlc2NyaXB0aW9uCisgICAgICAgIGlmIHJlc3RfdHlwZToKKyAgICAgICAgICAgIHF1ZXJpZXNbcXVlcnlfdXJsXSA9IGNvbW1hbmRfZGlzcGxheV9yZXN0X3R5cGVfY29udmVydGVyKE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cmllcykKKyAgICAgICAgICAgICMKKyAgICAgICAgICAgICMgdXJsX2tleSBhbGxvd3MgdGhlIGFkZGl0aW9uIG9mIGEga2V5IGZvciBqb2luaW5nIGZvciBzaW5nbGUgcmVzdWx0cworICAgICAgICAgICAgaWYgdXJsX2tleSBhbmQgbGVuKHF1ZXJpZXNbcXVlcnlfdXJsXSkgPT0gMToKKyAgICAgICAgICAgICAgICBxdWVyaWVzW3F1ZXJ5X3VybF1bMF1bdXJsX2tleV0gPSBlbnRyeS5nZXQodXJsX2tleSkKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfam9pbl9yZXN0OiAlcyAjZW50cmllcyAlZCAjcmVzdWx0ICVzIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICh1cmwsIGxlbihlbnRyaWVzKSwgbGVuKHF1ZXJpZXNbcXVlcnlfdXJsXSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBxdWVyaWVzW3F1ZXJ5X3VybF0gPSBlbnRyaWVzCisgICAgICAgICAgICAKKyAgICAjIEZyb20gdGhlIHF1ZXJ5IHJlc3VsdHMsIGdlbmVyYXRlIHRoZSBkaWN0aW9uYXJ5IHRvIGpvaW4gdGhyb3VnaAorCisgICAga2V5X3BhcnRzID0ga2V5LnNwbGl0KCd8JykgICAgICAjIGFsbCB0aGUgZmllbGRzIG5lZWRlZCB0byBtYWtlIGEga2V5CisgICAga2V5X2RpY3QgPSB7fSAgICAgICAgICAgICAgICAgICAjIHJlc3VsdGluZyBrZXkgZGljdGlvbmFyeQorICAgIGZvciAodXJsLCB2YWx1ZSkgaW4gcXVlcmllcy5pdGVtcygpOgorICAgICAgICBmb3IgZW50cnkgaW4gdmFsdWU6CisgICAgICAgICAgICAjIHNlZSBpZiBhbGwgdGhlIGtleSBwYXJ0cyBhcmUgaW4gdGhlIGVudHJ5CisgICAgICAgICAgICBtaXNzaW5nID0gIG1pc3NpbmdfcGFydChrZXlfcGFydHMsIGVudHJ5KQorICAgICAgICAgICAgaWYgbWlzc2luZzoKKyAgICAgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ2NvbW1hbmRfam9pbl9yZXN0OiBtaXNzaW5nIGZpZWxkICVzIGluICVzJyAlIChtaXNzaW5nLCBlbnRyeSkKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgbmV3X2tleSA9ICd8Jy5qb2luKFtzdHIoZW50cnlba25dKSBmb3Iga24gaW4ga2V5X3BhcnRzXSkKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgcHJpbnQgJ2NvbW1hbmRfam9pbl9yZXN0OiBuZXcta2V5JywgbmV3X2tleQorICAgICAgICAgICAga2V5X2RpY3RbbmV3X2tleV0gPSBlbnRyeQorCisgICAgIyBVc2luZyB0aGUga2V5LWRpY3Rpbm9hcnksIGxvb2sgZm9yIG1hdGNoZXMgZnJvbSB0aGUgb3JpZ2luYWwgZW50cmllcworCisgICAgaWYgYWRkX2ZpZWxkOgorICAgICAgICBwYXJ0cyA9IGFkZF9maWVsZC5zcGxpdCgnfCcpCisgICAgICAgIGZyb21fZmllbGRzID0gTm9uZQorICAgICAgICBpZiBsZW4ocGFydHMpOgorICAgICAgICAgICAgYWRkX2ZpZWxkID0gcGFydHNbMF0KKyAgICAgICAgICAgIGZyb21fZmllbGRzID0gcGFydHNbMTpdCisKKyAgICBqb2luX3BhcnRzID0gam9pbl9maWVsZC5zcGxpdCgnfCcpCisgICAgZm9yIGVudHJ5IGluIGNvbW1hbmQucXVlcnlfcmVzdWx0OgorICAgICAgICBpZiBsZW4oam9pbl9wYXJ0cyk6CisgICAgICAgICAgICBtaXNzaW5nID0gbWlzc2luZ19wYXJ0KGpvaW5fcGFydHMsIGVudHJ5LCBrZXlfY2FzZSA9IFRydWUpCisgICAgICAgICAgICBpZiBtaXNzaW5nOgorICAgICAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgICAgIHByaW50ICJjb21tYW5kX2pvaW5fcmVzdDogbWlzc2luZyBmaWVsZCAlcyBpbiAlcyIgJSAobWlzc2luZywgZW50cnkpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIGpvaW5lciA9ICd8Jy5qb2luKFtjYXNlX2N2dChrbiwgZW50cnkpIGZvciBrbiBpbiBqb2luX3BhcnRzXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfam9pbl9yZXN0OiBqb2luaW5nICIsICBlbnRyeSwgam9pbl9maWVsZCwgZW50cnkuZ2V0KGpvaW5fZmllbGQpCisgICAgICAgICAgICBpZiBub3Qgam9pbl9maWVsZCBpbiBlbnRyeToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgam9pbmVyID0gY2FzZV9jdnQoam9pbl9maWVsZCwgZW50cnkpCisKKyAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgIHByaW50ICJjb21tYW5kX2pvaW5fcmVzdDogam9pbmluZyAiLCAgZW50cnksIGpvaW5lciwga2V5X2RpY3QuZ2V0KGpvaW5lcikKKworICAgICAgICBpZiBqb2luZXIgaW4ga2V5X2RpY3Q6CisgICAgICAgICAgICAjIGFkZCBhbGwgdGhlIGVudHJpZXMgZnJvbSB0aGUga2V5X2RpY3QgCisgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgICAgIHByaW50ICdjb21tYW5kX2pvaW5fcmVzdDogQUREJywga2V5X2RpY3Rbam9pbmVyXQorICAgICAgICAgICAgaWYgYWRkX2ZpZWxkID09IE5vbmU6CisgICAgICAgICAgICAgICAgYWRkX2ZpZWxkcyhlbnRyeSwga2V5X2RpY3Rbam9pbmVyXSkKKyAgICAgICAgICAgIGVsaWYgZnJvbV9maWVsZHM6CisgICAgICAgICAgICAgICAgaWYgbGVuKGZyb21fZmllbGRzKSA9PSAxOgorICAgICAgICAgICAgICAgICAgICAjIGFkZCBhIHNpbmdsZSBmaWVsZAorICAgICAgICAgICAgICAgICAgICBpZiBmcm9tX2ZpZWxkc1swXSBpbiBrZXlfZGljdFtqb2luZXJdOgorICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlbYWRkX2ZpZWxkXSA9IGtleV9kaWN0W2pvaW5lcl1bZnJvbV9maWVsZHNbMF1dCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIyBhZGQgYSBkaWN0aW9uYXJ5CisgICAgICAgICAgICAgICAgICAgIGVudHJ5W2FkZF9maWVsZF0gPSBkaWN0KFtbZmYsIGtleV9kaWN0W2pvaW5lcl1bZmZdXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBmZiBpbiBmcm9tX2ZpZWxkc10pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGVudHJ5W2FkZF9maWVsZF0gPSBrZXlfZGljdFtqb2luZXJdCisKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAiY29tbWFuZF9qb2luX3Jlc3Q6ICIsIGNvbW1hbmQucXVlcnlfcmVzdWx0CisKKworZGVmIGNvbW1hbmRfam9pbl90YWJsZShvYmpfdHlwZSwgZGF0YSwga2V5LCBqb2luX2ZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICBrZXlfdmFsdWUgPSBOb25lLCBhZGRfZmllbGQgPSBOb25lLCBjcmFjayA9IE5vbmUpOgorICAgICIiIgorICAgIEFkZCBmaWVkcyB0byB0aGUgY3VycmVudCBjb21tYW5kLnF1ZXJ5X3Jlc3VsdCBieSBsb29raW5nIHVwIHRoZSBlbnRyeSBpbgorICAgIHRoZSBkYi9zdG9yZS4gICBrZXkgcmVwcmVzZW50cyB0aGUgdmFsdWUgb2YgdGhlIGluZGV4IHRvIHVzZSBmcm9tCisgICAgdGhlIGVudHJpZXMgcmVhZCBmcm9tIHRoZSBkYXRhYmFzZS4gIFRoZSBrZXkgY2FuIGJlIGNvbXBvc2VkIG9mCisgICAgbXVsdGlwbGUgZmllbGRzIHdpdGhpbiB0aGUgZW50cnkuICAgVGhlIGpvaW5fZmllbGQgaXMgdGhlIG5hbWUKKyAgICBvZiB0aGUgZmllbGQgd2l0aGluIHRoZSBjb21tYW5kLnF1ZXJ5X3Jlc3VsdCB0byB1c2UgYXMgdGhlIHZhbHVlIHRvIG1hdGNoCisgICAgYWdhaW5zdCB0aGUga2V5IGZpZWxkLgorCisgICAgV2hlbiBrZXlfdmFsdWUgaXMgTm9uZSwgdGhlIG1hdGNoZWQgZW50cnkgZnJvbSB0aGUgam9pbl9maWVsZCdzIGlzCisgICAgdHJlYXRlZCBhcyBhIGRpY3Rpb25hcnksIGFuZCBhbGwgdGhlIHBhaXIgb2YgbmFtZTp2YWx1ZXMgYXJlIGFkZGVkCisgICAgZGlyZWN0bHkgdG8gdGhlIG5ldyBlbnRyeS4gICAKKworICAgIFdoZW4ga2V5X3ZhbHVlIGlzIGEgZmllbGQgbmFtZSwgdGhlIGpvaW5lZCBlbnRyaWVzIGFyZSBjb2xsZWN0ZWQgCisgICAgYXMgYSBsaXN0LCBhbmQgYWRkZWQgdG8gdGhlIG5ldyBlbnRyeSBhIHRoZSBrZXlfdmFsdWUgbmFtZS4KKyAgICAoc2VlIHRoZSB1c2Ugb2YgdGFnLW1hcHBpbmcgYXMgYW4gZXhhbXBsZSkKKyAgICAiIiIKKyAgICBpZiBub3QgaGFzYXR0cihjb21tYW5kLCAncXVlcnlfcmVzdWx0Jyk6CisgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICBwcmludCAiY29tbWFuZF9qb2luX3RhYmxlOiBubyBlbnRyaWVzIGZvdW5kIgorICAgICAgICByZXR1cm4KKworICAgIGlmIGNvbW1hbmQucXVlcnlfcmVzdWx0ID09IE5vbmU6CisgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICBwcmludCAiY29tbWFuZF9qb2luX3RhYmxlOiBxdWVyeV9yZXN1bHQ6IE5vbmUiCisgICAgICAgIHJldHVybgorICAgIAorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJjb21tYW5kX2pvaW5fdGFibGU6ICVkIGVudHJpZXMgZm91bmQsIHVzaW5nICVzLCBvYmpfdHlwZSAlcyAlcyAlcyIgJSBcCisgICAgICAgICAgICAgICAgKGxlbihjb21tYW5kLnF1ZXJ5X3Jlc3VsdCksIGRhdGEsIG9ial90eXBlLCBrZXksIGpvaW5fZmllbGQpCisgICAgICAgIHByaW50ICJjb21tYW5kX2pvaW5fdGFibGU6IiwgZGF0YSwga2V5LCBqb2luX2ZpZWxkCisKKyAgICBpZiBqb2luX2ZpZWxkID09IE5vbmU6CisgICAgICAgIHJldHVybgorICAgIGlmIGtleSA9PSBOb25lOgorICAgICAgICByZXR1cm4KKworICAgIGlmIG5vdCBtaS5vYmpfdHlwZV9leGlzdHMob2JqX3R5cGUpOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcigiVW5rbm93biBvYmotdHlwZTogJXMiICUgb2JqX3R5cGUpCisKKyAgICAjIGJ1aWxkIHRoZSBqb2luX2RpY3QsIHdoaWNoIHdpbGwgaGF2ZSBrZXlzIGZvciB0aGUgaXRlbXMgdG8KKyAgICAjIGFkZCBpbnRvIHRoZSBlbnRyaWVzCisgICAgaWYgbm90IG1pLm9ial90eXBlX2hhc19tb2RlbChvYmpfdHlwZSk6CisgICAgICAgIGVudHJpZXMgPSByZXN0X3RvX21vZGVsLmdldF9tb2RlbF9mcm9tX3VybChvYmpfdHlwZSwgZGF0YSkKKyAgICBlbHNlOgorICAgICAgICBlbnRyaWVzID0gc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUob2JqX3R5cGUpCisKKyAgICAjIGRldGVybWluZSB3aGV0aGVyIHNwZWNpZmljIGZpZWxkIG5hbWVzIGFyZSBhZGRlZAorICAgIGlmIGFkZF9maWVsZDoKKyAgICAgICAgcGFydHMgPSBhZGRfZmllbGQuc3BsaXQoJ3wnKQorICAgICAgICBmcm9tX2ZpZWxkcyA9IE5vbmUKKyAgICAgICAgaWYgbGVuKHBhcnRzKToKKyAgICAgICAgICAgIGFkZF9maWVsZCA9IHBhcnRzWzBdCisgICAgICAgICAgICBmcm9tX2ZpZWxkcyA9IHBhcnRzWzE6XQorCisgICAgIyBjb25zdHVjdCB0aGUgam9pbiBrZXkgZm9yIGVhY2ggcm93IGZyb20gdGhlIGRiIHRhYmxlCisgICAga2V5X3BhcnRzID0ga2V5LnNwbGl0KCd8JykgICAgICAjIGFsbCB0aGUgZmllbGRzIG5lZWRlZCB0byBtYWtlIGEga2V5CisgICAga2V5X2RpY3QgPSB7fSAgICAgICAgICAgICAgICAgICAjIHJlc3VsdGluZyBrZXkgZGljdGlvbmFyeQorICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAjIHNlZSBpZiBhbGwgdGhlIGtleSBwYXJ0cyBhcmUgaW4gdGhlIGVudHJ5CisgICAgICAgIG1pc3NpbmcgPSBtaXNzaW5nX3BhcnQoa2V5X3BhcnRzLCBlbnRyeSkKKyAgICAgICAgaWYgbWlzc2luZzoKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfam9pbl90YWJsZTogbWlzc2luZyBmaWVsZCAlcyBpbiAlcyIgJSAobWlzc2luZywgZW50cnkpCisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIG5ld19rZXkgPSAnfCcuam9pbihbb2JqX3R5cGVfZmllbGRfY2FzZShlbnRyeSwgb2JqX3R5cGUsIGtuKSBmb3Iga24gaW4ga2V5X3BhcnRzXSkKKyAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgIHByaW50ICdjb21tYW5kX2pvaW5fdGFibGU6IG5ldy1rZXknLCBuZXdfa2V5LCBrZXlfdmFsdWUKKyAgICAgICAgaWYga2V5X3ZhbHVlOgorICAgICAgICAgICAgaWYgbm90IG5ld19rZXkgaW4ga2V5X2RpY3Q6CisgICAgICAgICAgICAgICAga2V5X2RpY3RbbmV3X2tleV0gPSBbZW50cnldCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGtleV9kaWN0W25ld19rZXldLmFwcGVuZChlbnRyeSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGtleV9kaWN0W25ld19rZXldID0gZW50cnkKKworCisgICAgIyBsZXQgJ2NyYWNrJyBjb250YWluIHRoZSBmaWVsZCdzIG5hbWUsIG5vdCBhIGJvb2xlYW4uCisgICAgaWYgY3JhY2sgYW5kIGNyYWNrID09IFRydWU6CisgICAgICAgIGNyYWNrID0gbWkucGsob2JqX3R5cGUpCisKKyAgICAjIFVzaW5nIHRoZSBrZXktZGljdGlub2FyeSwgbG9vayBmb3IgbWF0Y2hlcyBmcm9tIHRoZSBvcmlnaW5hbCBlbnRyaWVzCisKKyAgICBqb2luX3BhcnRzID0gam9pbl9maWVsZC5zcGxpdCgnfCcpCisgICAgZm9yIGVudHJ5IGluIGNvbW1hbmQucXVlcnlfcmVzdWx0OgorICAgICAgICBpZiBsZW4oam9pbl9wYXJ0cyk6CisgICAgICAgICAgICBtaXNzaW5nID0gIG1pc3NpbmdfcGFydChqb2luX3BhcnRzLCBlbnRyeSwga2V5X2Nhc2UgPSBUcnVlKQorICAgICAgICAgICAgaWYgbWlzc2luZzoKKyAgICAgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgICAgICAgICBwcmludCAiY29tbWFuZF9qb2luX3RhYmxlOiBtaXNzaW5nIGZpZWxkICVzIGluICVzIiAlIChtaXNzaW5nLCBlbnRyeSkKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgam9pbmVyID0gJ3wnLmpvaW4oW2Nhc2VfY3Z0KGtuLCBlbnRyeSkgZm9yIGtuIGluIGpvaW5fcGFydHNdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICBwcmludCAiY29tbWFuZF9qb2luX3RhYmxlOiBqb2luaW5nICIsICBlbnRyeSwgam9pbl9maWVsZCwgZW50cnkuZ2V0KGpvaW5fZmllbGQpCisgICAgICAgICAgICBpZiBub3Qgam9pbl9maWVsZCBpbiBlbnRyeToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgam9pbmVyID0gY2FzZV9jdnQoam9pbl9maWVsZCwgZW50cnkpCisKKyAgICAgICAgaWYgam9pbmVyIGluIGtleV9kaWN0OgorICAgICAgICAgICAgaWYgY3JhY2s6CisgICAgICAgICAgICAgICAgaWYgbm90IGNyYWNrIGluIGtleV9kaWN0W2VudHJ5W2pvaW5lcl1dOgorICAgICAgICAgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfam9pbl90YWJsZTogZmllbGQgJXMgbm90IGluIGVudHJ5IiAlIGNyYWNrLCBrZXlfZGljdFtqb2luZXJdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbWkuc3BsaXRfY29tcG91bmRfaW50b19kaWN0KG9ial90eXBlLCBjcmFjaywga2V5X2RpY3Rbam9pbmVyXSwgVHJ1ZSkKKworICAgICAgICAgICAgIyBhZGQgYWxsIHRoZSBlbnRyaWVzIGZyb20gdGhlIGtleV9kaWN0IAorICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICBwcmludCAnY29tbWFuZF9qb2luX3RhYmxlOiBBREQgJXMgYXMgJXMgJyAlIChrZXlfZGljdFtqb2luZXJdLCBhZGRfZmllbGQpCisgICAgICAgICAgICBpZiBhZGRfZmllbGQgPT0gTm9uZToKKyAgICAgICAgICAgICAgICBpZiBrZXlfdmFsdWU6CisgICAgICAgICAgICAgICAgICAgIGVudHJ5W2tleV92YWx1ZV0gPSBrZXlfZGljdFtqb2luZXJdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgYWRkX2ZpZWxkcyhlbnRyeSwga2V5X2RpY3Rbam9pbmVyXSkKKyAgICAgICAgICAgIGVsaWYgZnJvbV9maWVsZHM6CisgICAgICAgICAgICAgICAgaWYgbGVuKGZyb21fZmllbGRzKSA9PSAxOgorICAgICAgICAgICAgICAgICAgICAjIGFkZCBhIHNpbmdsZSBmaWVsZAorICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKGtleV9kaWN0W2pvaW5lcl0pID09IGxpc3Q6CisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeVthZGRfZmllbGRdID0gW3hbZnJvbV9maWVsZHNbMF1dIGZvciB4IGluIGtleV9kaWN0W2pvaW5lcl1dCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeVthZGRfZmllbGRdID0ga2V5X2RpY3Rbam9pbmVyXVtmcm9tX2ZpZWxkc1swXV0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIGFkZCBhIGRpY3Rpb25hcnkgd2l0aCBuYW1lZCBmaWVsZHMKKyAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShrZXlfZGljdFtqb2luZXJdKSA9PSBsaXN0OgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4ga2V5X2RpY3Rbam9pbmVyXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeVthZGRfZmllbGRdID0gZGljdChbW2ZmLCBpdGVtW2ZmXV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBmZiBpbiBmcm9tX2ZpZWxkc10pCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBlbnRyeVthZGRfZmllbGRdID0gZGljdChbW2ZmLCBrZXlfZGljdFtqb2luZXJdW2ZmXV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGZmIGluIGZyb21fZmllbGRzXSkKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGVudHJ5W2FkZF9maWVsZF0gPSBrZXlfZGljdFtqb2luZXJdCisKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAiY29tbWFuZF9qb2luX3RhYmxlOiAiLCBjb21tYW5kLnF1ZXJ5X3Jlc3VsdAorCisKK2RlZiBjb21tYW5kX2Rpc3BsYXlfcmVzdChkYXRhLCB1cmwgPSBOb25lLCBzb3J0ID0gTm9uZSwgcmVzdF90eXBlID0gTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB0YWJsZV9mb3JtYXQgPSBOb25lLCB0aXRsZSA9IE5vbmUsIGRldGFpbCA9IE5vbmUpOgorICAgICIiIgorICAgIFBlcmZvcm0gYSBjYWxsIHRvIHRoZSByZXN0IGFwaSwgYW5kIGZvcm1hdCB0aGUgcmVzdWx0LgorCisgICAgV2hlbiBzb3J0IGlzbid0IE5vbmUsIGl0IG5hbWVzIGEgZmllbGQgd2hvc2UncyB2YWx1ZSBhcmUgc29ydGVkIG9uLgorICAgICIiIgorICAgICNqdXN0IGEgaGFjayBjaGVjayB0byBpbXBsZW1lbnQgZGVjZW5kaW5nIHNvcnRpbmcKKyAgICBkZXNjZW5kaW5nID0gRmFsc2UKKyAgICAjcmFpc2UgZXJyb3IuQXJndW1lbnRWYWxpZGF0aW9uRXJyb3IoJ1xuXG5cbiAlcycgJSAoZGVzY2VuZGluZykpCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgImNvbW1hbmRfZGlzcGxheV9yZXN0OiAiLCBkYXRhLCB1cmwsIHJlc3RfdHlwZSwgdGFibGVfZm9ybWF0LCBkZXRhaWwKKworICAgIGlmIG5vdCB1cmw6CisgICAgICAgIHVybCA9IGRhdGEuZ2V0KCd1cmwnKQorICAgIGlmIG5vdCB0YWJsZV9mb3JtYXQ6CisgICAgICAgIHRhYmxlX2Zvcm1hdCA9IGRhdGEuZ2V0KCdmb3JtYXQnKQorCisgICAgY2hlY2tfc2luZ2xlX2VudHJ5ID0gVHJ1ZQorCisgICAgIyBpZiB1cmwgaXMgYSBsaXN0LCBwaWNrIHRoZSBmaXJzdCBvbmUgd2hpY2ggY2FuIGJlIGJ1aWxkIGZyb20gdGhlIGRhdGEKKyAgICBzZWxlY3RfdXJsID0gdXJsCisgICAgaWYgdXJsIGFuZCB0eXBlKHVybCkgPT0gbGlzdDoKKyAgICAgICAgZm9yIHUgaW4gdXJsOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGVjdF91cmwgPSAodSAlIGRhdGEpCisgICAgICAgICAgICAgICAgc2VsZWN0X3VybCA9IHUgIyBzZWxlY3QgdGhpcyB1cmwgZnJvbSB0aGUgbGlzdAorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcGFzcworCisgICAgaWYgbm90IGRldGFpbDoKKyAgICAgICAgZGV0YWlsID0gZGF0YS5nZXQoJ2RldGFpbCcsICdkZWZhdWx0JykKKyAgICB1cmwgPSAiaHR0cDovLyVzL3Jlc3QvdjEvIiAlIHNkbnNoLmNvbnRyb2xsZXIgKyAoc2VsZWN0X3VybCAlIGRhdGEpCisKKyAgICByZXN1bHQgPSBzZG5zaC5zdG9yZS5yZXN0X3NpbXBsZV9yZXF1ZXN0KHVybCkKKyAgICBjaGVja19yZXN0X3Jlc3VsdChyZXN1bHQpCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgImNvbW1hbmRfZGlzcGxheV9yZXN0OiByZXN1bHQgIiwgcmVzdWx0CisgICAgZW50cmllcyA9IGpzb24ubG9hZHMocmVzdWx0KQorICAgICAgICAjcmVzdF90eXBlID0gTm9uZQorICAgICAgICAjcmFpc2UgZXJyb3IuQXJndW1lbnRWYWxpZGF0aW9uRXJyb3IoJ1xuXG5cbiAlcycgJSAoYXR0cmlidXRlcykpCisgICAgI2lmICdyZWFsdGltZXN0YXRzJyBpbiBkYXRhIGFuZCBkYXRhWydyZWFsdGltZXN0YXRzJ10gPT0gJ2dyb3VwJzoKKworICAgIGVudHJpZXMyID0gTm9uZQorCisKKyAgICBpZiAncmVhbHRpbWVzdGF0cycgaW4gZGF0YSBhbmQgZGF0YVsncmVhbHRpbWVzdGF0cyddID09ICdncm91cCc6CisgICAgICAgIHVybDIgPSAiaHR0cDovLyVzL3Jlc3QvdjEvIiAlIHNkbnNoLmNvbnRyb2xsZXIgKyAoInJlYWx0aW1lc3RhdHMvZ3JvdXBkZXNjLyUoZHBpZClzLyIgJSBkYXRhKQorICAgICAgICByZXN1bHQyID0gc2Ruc2guc3RvcmUucmVzdF9zaW1wbGVfcmVxdWVzdCh1cmwyKQorICAgICAgICBjaGVja19yZXN0X3Jlc3VsdChyZXN1bHQyKQorICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfZGlzcGxheV9yZXN0OiBncm91cGRlc2MgcmVzdWx0ICIsIHJlc3VsdDIKKyAgICAgICAgZW50cmllczIgPSBqc29uLmxvYWRzKHJlc3VsdDIpCisgICAgICAgIAorICAgICMgSXQgY2VydGFpbmx5IHNlZW1zIHBvc3NpYmxlIHRvIG1hcCBmcm9tIHVybCdzIHRvIHRoZSB0eXBlIGFzc29jaWF0ZWQsCisgICAgIyB3aXRoIHRoZSByZXN1bHQsIGJ1dCBpdCBhbHNvIG1ha2VzIHNlbnNlIHRvIGVuY29kZSB0aGF0IHR5cGUgaW5mb3JtYXRpb24KKyAgICAjIGludG8gdGhlIGRlc2NyaXB0aW9uCisgICAgaWYgJ3JvdXRlcnJlYWx0aW1lc3RhdHMnIGluIGRhdGEgIGFuZCBkYXRhWydyb3V0ZXJyZWFsdGltZXN0YXRzJ10gPT0gJ2FkamFjZW5jeSc6CisgICAgICAgIHJlc3RfdHlwZSA9RmFsc2UKKyAgICBpZiByZXN0X3R5cGU6CisgICAgICAgIGVudHJpZXMgPSBjb21tYW5kX2Rpc3BsYXlfcmVzdF90eXBlX2NvbnZlcnRlcih0YWJsZV9mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cmllcykKKyAgICAgICAgaWYgJ3JlYWx0aW1lc3RhdHMnIGluIGRhdGEgYW5kIGRhdGFbJ3JlYWx0aW1lc3RhdHMnXSA9PSAnZ3JvdXAnOgorICAgICAgICAgICAgaWYgZW50cmllczIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgZW50cmllczIgPSBjb21tYW5kX2Rpc3BsYXlfcmVzdF90eXBlX2NvbnZlcnRlcih0YWJsZV9mb3JtYXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN0X3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW50cmllczIpCisKKyAgICBpZiAncm91dGVyJyBpbiBkYXRhICBhbmQgZGF0YVsncm91dGVyJ10gPT0gJ3JvdXRlcic6CisgICAgICAgIGNvbWJSZXN1bHQgPSBbXQorICAgICAgICBmb3IgZW50cnkgaW4gZW50cmllczoKKyAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBlbnRyeS5nZXQoJ3N0cmluZ0F0dHJpYnV0ZXMnKQorICAgICAgICAgICAgI3JhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCdcblxuXG4gJXMnICUgKGF0dHJpYnV0ZXMpKQorICAgICAgICAgICAgY29tYlJlc3VsdC5hcHBlbmQoeworICAgICAgICAgICAgICAgICAgICAgICAnZHBpZCcgICAgICAgICAgIDogZW50cnkuZ2V0KCdkcGlkJyksCisgICAgICAgICAgICAgICAgICAgICAgICdyb3V0ZXJJUCcgICAgICAgOiBhdHRyaWJ1dGVzWydyb3V0ZXJJcCddLAorICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScgICAgICAgICAgIDogYXR0cmlidXRlc1snbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAnaXNFZGdlUm91dGVyJyAgIDogYXR0cmlidXRlc1snaXNFZGdlUm91dGVyJ10sCisgICAgICAgICAgICAgICAgICAgICAgICdyb3V0ZXJNYWMnICAgICAgOiBhdHRyaWJ1dGVzWydyb3V0ZXJNYWMnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ25vZGVTSWQnICAgICAgICA6IGF0dHJpYnV0ZXNbJ25vZGVTaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgfSwpCisgICAgICAgIGVudHJpZXMgPSBjb21iUmVzdWx0CisgICAgI3JhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCdcblxuXG4gJXMnICUgKGVudHJpZXMpKQorICAgIGlmICdyb3V0ZXJyZWFsdGltZXN0YXRzJyBpbiBkYXRhICBhbmQgZGF0YVsncm91dGVycmVhbHRpbWVzdGF0cyddID09ICdwb3J0JzoKKyAgICAgICAgI3JhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCdcblxuXG4gJXMnICUgKGRhdGEpKQorICAgICAgICBjb21iUmVzdWx0ID0gW10KKyAgICAgICAgcG9ydExpc3QgPSBlbnRyaWVzCisgICAgICAgIGZvciBwb3J0IGluIHBvcnRMaXN0OgorICAgICAgICAgICAgcG9ydERhdGEgPSBwb3J0LmdldCgicG9ydCIpCisgICAgICAgICAgICBuYW1lID0gcG9ydERhdGEuZ2V0KCJzdHJpbmdBdHRyaWJ1dGVzIikuZ2V0KCduYW1lJykKKyAgICAgICAgICAgIHBvcnRObyA9IHBvcnREYXRhLmdldCgicG9ydE51bWJlciIpICYgMHhGRkZGICMgY29udmVydGluZyB0byB1bnNpZ25lZDE2aW50CisgICAgICAgICAgICBzdWJuZXRJcCA9IHBvcnQuZ2V0KCJzdWJuZXRJcCIpCisgICAgICAgICAgICBhZGphY2VuY3kgPSBzdHIocG9ydC5nZXQoJ2FkamFjZW5jeScpKQorICAgICAgICAgICAgY29tYlJlc3VsdC5hcHBlbmQoeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJyAgICAgICAgICAgIDpuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwb3J0Tm8nICAgICAgICAgICA6IHBvcnRObywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3VibmV0SXAnICAgICAgICAgOiBzdWJuZXRJcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRqYWNlbmN5JyAgICAgICAgOiBhZGphY2VuY3ksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgZW50cmllcyA9IGNvbWJSZXN1bHQKKyAgICBpZiAncm91dGVycmVhbHRpbWVzdGF0cycgaW4gZGF0YSAgYW5kIGRhdGFbJ3JvdXRlcnJlYWx0aW1lc3RhdHMnXSA9PSAnYWRqYWNlbmN5JzoKKyAgICAgICAgI3JhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCdcblxuXG4gJXMnICUgKGVudHJpZXMpKQorICAgICAgICAjcmFpc2UgZXJyb3IuQXJndW1lbnRWYWxpZGF0aW9uRXJyb3IoJ1xuXG5cbiAlcycgJSAoZW50cmllcykpCisgICAgICAgIGNvbWJSZXN1bHQgPSBbXQorICAgICAgICBhZGphY2VuY3lQYWlyTGlzdCA9IGVudHJpZXMKKyAgICAgICAgZm9yIGFkamFjZW5jeVBhaXIgaW4gYWRqYWNlbmN5UGFpckxpc3Q6CisgICAgICAgICAgICBhZGphY2VuY3lTaWQgPSBhZGphY2VuY3lQYWlyLmdldCgiYWRqYWNlbmN5U2lkIikKKyAgICAgICAgICAgIHBvcnRzID0gYWRqYWNlbmN5UGFpci5nZXQoInBvcnRzIikKKyAgICAgICAgICAgIGNvbWJSZXN1bHQuYXBwZW5kKHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRqYWNlbmN5U2lkJyAgICA6IGFkamFjZW5jeVNpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9ydHMnICAgICAgICAgICA6IHBvcnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgIGVudHJpZXMgPSBjb21iUmVzdWx0CisgICAgI3JhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCdcblxuXG4gJXMnICUgKGRhdGEpKQorCisgICAgaWYgJ3Nob3d0dW5uZWwnIGluIGRhdGEgIGFuZCAoZGF0YVsnc2hvd3R1bm5lbCddID09ICd0dW5uZWwnIG9yIGRhdGFbJ2RldGFpbCddID09ICdkZXRhaWxzJyk6CisgICAgICAgICNlcmFpc2UgZXJyb3IuQXJndW1lbnRWYWxpZGF0aW9uRXJyb3IoJ1xuXG5cbiAlcycgJSAoZW50cmllcykpCisgICAgICAgIGNvbWJSZXN1bHQgPSBbXQorICAgICAgICB0dW5uZWxMaXN0ID0gZW50cmllcworICAgICAgICBmb3IgdHVubmVsIGluIHR1bm5lbExpc3Q6CisgICAgICAgICAgICBsYWJlbFN0YWNrTGlzdCA9ICh0dW5uZWwuZ2V0KCdsYWJlbFN0YWNrJykpCisgICAgICAgICAgICBsYWJlbFN0YWNrU3RyaW5nID0gc3RyKGxhYmVsU3RhY2tMaXN0KQorICAgICAgICAgICAgbGFiZWxTdGFja1N0cmluZyA9IHJlbW92ZV91bmljb2RlcyhsYWJlbFN0YWNrU3RyaW5nKQorICAgICAgICAgICAgI2xhYmVsU3RhY2tMaXN0ID0gKHR1bm5lbC5nZXQoJ2xhYmVsU3RhY2snKSkKKyAgICAgICAgICAgICNsYWJlbFN0YWNrU3RyaW5nID0nWycKKyAgICAgICAgICAgICNmb3IgbGFiZWxTYWNrIGluIGxhYmVsU3RhY2tMaXN0OgorICAgICAgICAgICAgIyAgICBmb3IgbGFiZWwgaW4gbGFiZWxTYWNrOgorICAgICAgICAgICAgIyAgICAgICAgbGFiZWxTdGFja1N0cmluZyArPSAobGFiZWwgKyAnLCcpCisgICAgICAgICAgICAjaWYgbGFiZWxTdGFja1N0cmluZyA9PSAnWyc6CisgICAgICAgICAgICAjICAgIGxhYmVsU3RhY2tTdHJpbmcgPSAnJworICAgICAgICAgICAgI2Vsc2U6CisgICAgICAgICAgICAjICAgIGxhYmVsU3RhY2tTdHJpbmcgPSBsYWJlbFN0YWNrU3RyaW5nWzotMV0KKyAgICAgICAgICAgICMgICAgbGFiZWxTdGFja1N0cmluZyArPSAnXScKKyAgICAgICAgICAgIHR1bm5lbElkID0gdHVubmVsLmdldCgndHVubmVsSWQnKQorICAgICAgICAgICAgdHVubmVsUGF0aCA9IHR1bm5lbC5nZXQoJ3R1bm5lbFBhdGgnKQorICAgICAgICAgICAgZHBpZEdyb3VwID0gc3RyKHR1bm5lbC5nZXQoJ2RwaWRHcm91cCcpKQorICAgICAgICAgICAgZHBpZEdyb3VwPSByZW1vdmVfdW5pY29kZXMoZHBpZEdyb3VwKQorICAgICAgICAgICAgcG9saWNpZXMgPSB0dW5uZWwuZ2V0KCdwb2xpY2llcycpCisgICAgICAgICAgICBjb21iUmVzdWx0LmFwcGVuZCh7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R1bm5lbElkJyAgICAgICA6IHR1bm5lbElkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsYWJlbFN0YWNrJyAgICAgOiBsYWJlbFN0YWNrU3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkcGlkR3JvdXAnICAgICAgOiBkcGlkR3JvdXAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R1bm5lbFBhdGgnICAgICA6IHR1bm5lbFBhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvbGljaWVzJyAgICAgICA6IHBvbGljaWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgIGVudHJpZXMgPSBjb21iUmVzdWx0CisKKyAgICBpZiAnc2hvd3BvbGljeScgaW4gZGF0YSAgYW5kIGRhdGFbJ3Nob3dwb2xpY3knXSA9PSAncG9saWN5JzoKKyAgICAgICAgI3JhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCdcblxuXG4gJXMnICUgKGRhdGEpKQorICAgICAgICBjb21iUmVzdWx0ID0gW10KKyAgICAgICAgcG9ydExpc3QgPSBlbnRyaWVzCisgICAgICAgIGZvciBwb2xpY3kgaW4gcG9ydExpc3Q6CisgICAgICAgICAgICBwb2xpY3lJZCA9IHBvbGljeS5nZXQoInBvbGljeUlkIikKKyAgICAgICAgICAgIHBvbGljeVR5cGUgPSBwb2xpY3kuZ2V0KCJwb2xpY3lUeXBlIikKKyAgICAgICAgICAgIHByaW9yaXR5ID0gcG9saWN5LmdldCgicHJpb3JpdHkiKQorICAgICAgICAgICAgdHVubmVsSWQgPSBwb2xpY3kuZ2V0KCd0dW5uZWxJZCcpCisgICAgICAgICAgICBtYXRjaCA9IHBvbGljeS5nZXQoIm1hdGNoIikKKyAgICAgICAgICAgIGRzdElwQWRkcmVzcyA9IG1hdGNoLmdldCgnZHN0SXBBZGRyZXNzJylbJ3ZhbHVlJ10gaWYgbWF0Y2guZ2V0KCdkc3RJcEFkZHJlc3MnKSBlbHNlICcqJworICAgICAgICAgICAgZHN0TWFjQWRkcmVzcyA9IG1hdGNoLmdldCgnZHN0TWFjQWRkcmVzcycpWyd2YWx1ZSddIGlmIG1hdGNoLmdldCgnZHN0TWFjQWRkcmVzcycpIGVsc2UgJyonCisgICAgICAgICAgICBkc3RUY3BQb3J0TnVtYmVyID0gbWF0Y2guZ2V0KCdkc3RUY3BQb3J0TnVtYmVyJykgaWYgbWF0Y2guZ2V0KCdkc3RUY3BQb3J0TnVtYmVyJykgZWxzZSAnKicKKyAgICAgICAgICAgIGV0aGVyVHlwZSA9ICgnMHgnKyBzdHIobWF0Y2guZ2V0KCdldGhlclR5cGUnKSkpIGlmIG1hdGNoLmdldCgnZXRoZXJUeXBlJykgZWxzZSAnKicKKyAgICAgICAgICAgIGlwUHJvdG9jb2xOdW1iZXIgPSBtYXRjaC5nZXQoJ2lwUHJvdG9jb2xOdW1iZXInKSBpZiBtYXRjaC5nZXQoJ2lwUHJvdG9jb2xOdW1iZXInKSBlbHNlICcqJworICAgICAgICAgICAgc3JjSXBBZGRyZXNzID0gbWF0Y2guZ2V0KCdzcmNJcEFkZHJlc3MnKVsndmFsdWUnXSBpZiBtYXRjaC5nZXQoJ3NyY0lwQWRkcmVzcycpIGVsc2UgJyonCisgICAgICAgICAgICBzcmNNYWNBZGRyZXNzID0gbWF0Y2guZ2V0KCdzcmNNYWNBZGRyZXNzJylbJ3ZhbHVlJ10gaWYgbWF0Y2guZ2V0KCdzcmNNYWNBZGRyZXNzJykgZWxzZSAnKicKKyAgICAgICAgICAgIHNyY1RjcFBvcnROdW1iZXIgPSBtYXRjaC5nZXQoJ3NyY1RjcFBvcnROdW1iZXInKSBpZiBtYXRjaC5nZXQoJ3NyY1RjcFBvcnROdW1iZXInKSBlbHNlICcqJworICAgICAgICAgICAgY29tYlJlc3VsdC5hcHBlbmQoeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwb2xpY3lJZCcgICAgICAgIDogcG9saWN5SWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvbGljeVR5cGUnICAgICAgOiBwb2xpY3lUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0dW5uZWxJZCcgICAgICAgIDogdHVubmVsSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW9yaXR5JyAgICAgICAgOiBwcmlvcml0eSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHN0SXBBZGRyZXNzJyAgICA6IGRzdElwQWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHN0TWFjQWRkcmVzcycgICA6IGRzdE1hY0FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RzdFRjcFBvcnROdW1iZXInOiBkc3RUY3BQb3J0TnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdldGhlclR5cGUnICAgICAgIDogZXRoZXJUeXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcFByb3RvY29sTnVtYmVyJzogaXBQcm90b2NvbE51bWJlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3JjSXBBZGRyZXNzJyAgICA6IHNyY0lwQWRkcmVzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3JjTWFjQWRkcmVzcycgICA6IHNyY01hY0FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NyY1RjcFBvcnROdW1iZXInOiBzcmNUY3BQb3J0TnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgIGVudHJpZXMgPSBjb21iUmVzdWx0CisKKyAgICBpZiAncmVhbHRpbWVzdGF0cycgaW4gZGF0YSBhbmQgJ3RhYmxldHlwZScgaW4gZGF0YSBhbmQgZGF0YVsncmVhbHRpbWVzdGF0cyddID09ICd0YWJsZSc6CisgICAgICAgIGNvbWJSZXN1bHQgPSBbXQorICAgICAgICBpZiBkYXRhWyd0YWJsZXR5cGUnXSA9PSAnaXAnOgorICAgICAgICAgICAgI2ZvciBkZWNlbmRpbmcgc29ydGluZworICAgICAgICAgICAgZGVzY2VuZGluZyA9IFRydWUKKyAgICAgICAgICAgIGZvciBpcFRhYmxlRW50cnkgaW4gZW50cmllczoKKyAgICAgICAgICAgICAgICBtYXRjaCA9IGlwVGFibGVFbnRyeVsnbWF0Y2gnXQorICAgICAgICAgICAgICAgIG5ldHdvcmtEZXN0aW5hdGlvbiA9ICcqJworICAgICAgICAgICAgICAgIGlmIG1hdGNoIDoKKyAgICAgICAgICAgICAgICAgICAgbmV0d29ya0Rlc3RpbmF0aW9uID0gbWF0Y2guZ2V0KCduZXR3b3JrRGVzdGluYXRpb24nKSBpZiBtYXRjaC5nZXQoJ25ldHdvcmtEZXN0aW5hdGlvbicpIGVsc2UgJyonCisgICAgICAgICAgICAgICAgICAgICNyYWlzZSBlcnJvci5Bcmd1bWVudFZhbGlkYXRpb25FcnJvcignXG5cblxuICVzJyAlIGpzb24udG9vbChlbnRyaWVzKSkKKyAgICAgICAgICAgICAgICBpbnN0cnVjdGlvbnMgPSBpcFRhYmxlRW50cnlbJ2luc3RydWN0aW9ucyddCisgICAgICAgICAgICAgICAgYWN0aW9ucyA9IHN0cihpbnN0cnVjdGlvbnNbMF0pIGlmIGluc3RydWN0aW9uc1swXSBlbHNlIE5vbmUKKyAgICAgICAgICAgICAgICBpZiBhY3Rpb25zICE9IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMgPSByZW1vdmVfdW5pY29kZXMoYWN0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9ucyA9IHJlbmFtZUFjdGlvbnMoYWN0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9ucyA9IGFjdGlvbnMubG93ZXIoKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMgPScnCisgICAgICAgICAgICAgICAgY29tYlJlc3VsdC5hcHBlbmQoeworICAgICAgICAgICAgICAgICAgICAgICAnc3dpdGNoJyAgICAgICAgOiBpcFRhYmxlRW50cnlbJ3N3aXRjaCddLAorICAgICAgICAgICAgICAgICAgICAgICAnYnl0ZUNvdW50JyAgICAgOiBpcFRhYmxlRW50cnlbJ2J5dGVDb3VudCddLAorICAgICAgICAgICAgICAgICAgICAgICAncGFja2V0Q291bnQnICAgOiBpcFRhYmxlRW50cnlbJ3BhY2tldENvdW50J10sCisgICAgICAgICAgICAgICAgICAgICAgICdwcmlvcml0eScgICAgICA6IGlwVGFibGVFbnRyeVsncHJpb3JpdHknXSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2Nvb2tpZScgICAgICAgIDogaXBUYWJsZUVudHJ5Wydjb29raWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2R1cmF0aW9uU2Vjb25kcycgICAgICAgICA6IGlwVGFibGVFbnRyeVsnZHVyYXRpb25TZWMnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ25ldHdvcmtEZXN0aW5hdGlvbicgICAgICA6IG5ldHdvcmtEZXN0aW5hdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbnMnICAgICAgICAgICAgICAgICA6IGFjdGlvbnMsCisgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgIGVsaWYgZGF0YVsndGFibGV0eXBlJ10gPT0gJ21wbHMnOgorICAgICAgICAgICAgZm9yIGlwVGFibGVFbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgICAgIG1hdGNoID0gaXBUYWJsZUVudHJ5WydtYXRjaCddCisgICAgICAgICAgICAgICAgbXBsc1RjID0gICcqJworICAgICAgICAgICAgICAgIG1wbHNMYWJlbCA9ICcqJworICAgICAgICAgICAgICAgIG1wbHNCb3MgPSAnKicKKyAgICAgICAgICAgICAgICBpZiBtYXRjaCA6CisgICAgICAgICAgICAgICAgICAgIG1wbHNUYyA9IG1hdGNoLmdldCgnbXBsc1RjJykgaWYgbWF0Y2guZ2V0KCdtcGxzVGMnKSBlbHNlICcqJworICAgICAgICAgICAgICAgICAgICBtcGxzTGFiZWwgPSBtYXRjaC5nZXQoJ21wbHNMYWJlbCcpIGlmIG1hdGNoLmdldCgnbXBsc0xhYmVsJykgZWxzZSAnKicKKyAgICAgICAgICAgICAgICAgICAgbXBsc0JvcyA9IG1hdGNoLmdldCgnbXBsc0JvcycpIGlmIG1hdGNoLmdldCgnbXBsc0JvcycpIGVsc2UgJyonCisgICAgICAgICAgICAgICAgaW5zdHJ1Y3Rpb25zID0gaXBUYWJsZUVudHJ5WydpbnN0cnVjdGlvbnMnXQorICAgICAgICAgICAgICAgICNyYWlzZSBlcnJvci5Bcmd1bWVudFZhbGlkYXRpb25FcnJvcignXG5cblxuICVzJyAlbGVuKGFjdGlvbnMpKQorICAgICAgICAgICAgICAgIGFjdGlvbnMgPSBzdHIoaW5zdHJ1Y3Rpb25zWzBdKWlmIGluc3RydWN0aW9uc1swXSBlbHNlIE5vbmUKKyAgICAgICAgICAgICAgICBpZiBhY3Rpb25zICE9IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMgPSByZW1vdmVfdW5pY29kZXMoYWN0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9ucyA9IHJlbmFtZUFjdGlvbnMoYWN0aW9ucykKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9ucyA9IGFjdGlvbnMubG93ZXIoKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMgPScnCisgICAgICAgICAgICAgICAgY29tYlJlc3VsdC5hcHBlbmQoeworICAgICAgICAgICAgICAgICAgICAgICAnc3dpdGNoJyAgICAgICAgOiBpcFRhYmxlRW50cnlbJ3N3aXRjaCddLAorICAgICAgICAgICAgICAgICAgICAgICAnYnl0ZUNvdW50JyAgICAgOiBpcFRhYmxlRW50cnlbJ2J5dGVDb3VudCddLAorICAgICAgICAgICAgICAgICAgICAgICAncGFja2V0Q291bnQnICAgOiBpcFRhYmxlRW50cnlbJ3BhY2tldENvdW50J10sCisgICAgICAgICAgICAgICAgICAgICAgICdjb29raWUnICAgICAgICA6IGlwVGFibGVFbnRyeVsnY29va2llJ10sCisgICAgICAgICAgICAgICAgICAgICAgICdwcmlvcml0eScgICAgICA6IGlwVGFibGVFbnRyeVsncHJpb3JpdHknXSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ21wbHNUYycgICAgICAgICA6IG1wbHNUYywKKyAgICAgICAgICAgICAgICAgICAgICAgJ21wbHNMYWJlbCcgICAgICA6IG1wbHNMYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgJ21wbHNCb3MnICAgICAgICA6IG1wbHNCb3MsCisgICAgICAgICAgICAgICAgICAgICAgICdkdXJhdGlvblNlY29uZHMnICAgICAgICA6IGlwVGFibGVFbnRyeVsnZHVyYXRpb25TZWMnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbnMnICAgICAgICA6IGFjdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgZWxpZiBkYXRhWyd0YWJsZXR5cGUnXSA9PSAnYWNsJzoKKyAgICAgICAgICAgIGRlc2NlbmRpbmcgPSBUcnVlCisgICAgICAgICAgICBmb3IgaXBUYWJsZUVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICAgICAgbWF0Y2ggPSBpcFRhYmxlRW50cnlbJ21hdGNoJ10KKyAgICAgICAgICAgICAgICBuZXR3b3JrRGVzdGluYXRpb24gPScqJworICAgICAgICAgICAgICAgIG5ldHdvcmtQcm90b2NvbCA9ICcqJworICAgICAgICAgICAgICAgIG5ldHdvcmtTb3VyY2UgPSAnKicKKyAgICAgICAgICAgICAgICBtcGxzVGMgPSAnKicKKyAgICAgICAgICAgICAgICBtcGxzTGFiZWwgPSAnKicKKyAgICAgICAgICAgICAgICBtcGxzQm9zID0gJyonCisgICAgICAgICAgICAgICAgdHJhbnNwb3J0RGVzdGluYXRpb24gPSAnKicKKyAgICAgICAgICAgICAgICBpbnB1dFBvcnQgPSAnKicKKyAgICAgICAgICAgICAgICB0cmFuc3BvcnRTb3VyY2UgPSAnKicKKyAgICAgICAgICAgICAgICBkYXRhTGF5ZXJTb3VyY2UgPSAnKicKKyAgICAgICAgICAgICAgICBkYXRhTGF5ZXJEZXN0aW5hdGlvbiA9ICcqJworICAgICAgICAgICAgICAgIGRhdGFMYXllclR5cGUgPSAnKicKKyAgICAgICAgICAgICAgICBpZiBtYXRjaCA6CisgICAgICAgICAgICAgICAgICAgIG5ldHdvcmtEZXN0aW5hdGlvbiA9IG1hdGNoLmdldCgnbmV0d29ya0Rlc3RpbmF0aW9uJykgaWYgbWF0Y2guZ2V0KCduZXR3b3JrRGVzdGluYXRpb24nKSBlbHNlICcqJworICAgICAgICAgICAgICAgICAgICBuZXR3b3JrUHJvdG9jb2wgPSBtYXRjaC5nZXQoJ25ldHdvcmtQcm90b2NvbCcpIGlmIG1hdGNoLmdldCgnbmV0d29ya1Byb3RvY29sJykgZWxzZSAnKicKKyAgICAgICAgICAgICAgICAgICAgbmV0d29ya1NvdXJjZSA9IG1hdGNoLmdldCgnbmV0d29ya1NvdXJjZScpIGlmIG1hdGNoLmdldCgnbmV0d29ya1NvdXJjZScpIGVsc2UgJyonCisgICAgICAgICAgICAgICAgICAgIG1wbHNUYyA9IG1hdGNoLmdldCgnbXBsc1RjJykgaWYgbWF0Y2guZ2V0KCdtcGxzVGMnKSBlbHNlICcqJworICAgICAgICAgICAgICAgICAgICBtcGxzTGFiZWwgPSBtYXRjaC5nZXQoJ21wbHNMYWJlbCcpaWYgbWF0Y2guZ2V0KCdtcGxzTGFiZWwnKSBlbHNlICcqJworICAgICAgICAgICAgICAgICAgICB0cmFuc3BvcnREZXN0aW5hdGlvbiA9IG1hdGNoLmdldCgndHJhbnNwb3J0RGVzdGluYXRpb24nKSBpZiBtYXRjaC5nZXQoJ3RyYW5zcG9ydERlc3RpbmF0aW9uJykgZWxzZSAnKicKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNwb3J0U291cmNlID0gbWF0Y2guZ2V0KCd0cmFuc3BvcnRTb3VyY2UnKSBpZiBtYXRjaC5nZXQoJ3RyYW5zcG9ydFNvdXJjZScpIGVsc2UgJyonCisgICAgICAgICAgICAgICAgICAgIGlucHV0UG9ydCA9IG1hdGNoLmdldCgnaW5wdXRQb3J0JykgaWYgbWF0Y2guZ2V0KCdpbnB1dFBvcnQnKSBlbHNlICcqJworICAgICAgICAgICAgICAgICAgICBkYXRhTGF5ZXJTb3VyY2UgPSBtYXRjaC5nZXQoJ2RhdGFMYXllclNvdXJjZScpIGlmIG1hdGNoLmdldCgnZGF0YUxheWVyU291cmNlJykgZWxzZSAnKicKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxheWVyRGVzdGluYXRpb24gPSBtYXRjaC5nZXQoJ2RhdGFMYXllckRlc3RpbmF0aW9uJykgaWYgbWF0Y2guZ2V0KCdkYXRhTGF5ZXJEZXN0aW5hdGlvbicpIGVsc2UgJyonCisgICAgICAgICAgICAgICAgICAgIGRhdGFMYXllclR5cGU9IG1hdGNoLmdldCgnZGF0YUxheWVyVHlwZScpIGlmIG1hdGNoLmdldCgnZGF0YUxheWVyVHlwZScpIGVsc2UgJyonCisgICAgICAgICAgICAgICAgICAgIG1wbHNCb3MgPSBtYXRjaC5nZXQoJ21wbHNCb3MnKSBpZiBtYXRjaC5nZXQoJ21wbHNCb3MnKSBlbHNlICcqJworICAgICAgICAgICAgICAgIGluc3RydWN0aW9ucyA9IGlwVGFibGVFbnRyeVsnaW5zdHJ1Y3Rpb25zJ10KKyAgICAgICAgICAgICAgICBhY3Rpb25zID0gc3RyKGluc3RydWN0aW9uc1swXSlpZiBpbnN0cnVjdGlvbnNbMF0gZWxzZSBOb25lCisgICAgICAgICAgICAgICAgaWYgYWN0aW9ucyAhPSBOb25lOgorICAgICAgICAgICAgICAgICAgICBhY3Rpb25zID0gcmVtb3ZlX3VuaWNvZGVzKGFjdGlvbnMpCisgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMgPSByZW5hbWVBY3Rpb25zKGFjdGlvbnMpCisgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMgPSBhY3Rpb25zLmxvd2VyKCkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBhY3Rpb25zID0gJycKKyAgICAgICAgICAgICAgICBjb21iUmVzdWx0LmFwcGVuZCh7CisgICAgICAgICAgICAgICAgICAgICAgICdzd2l0Y2gnICAgICAgICA6IGlwVGFibGVFbnRyeVsnc3dpdGNoJ10sCisgICAgICAgICAgICAgICAgICAgICAgICdieXRlQ291bnQnICAgICA6IGlwVGFibGVFbnRyeVsnYnl0ZUNvdW50J10sCisgICAgICAgICAgICAgICAgICAgICAgICdwYWNrZXRDb3VudCcgICA6IGlwVGFibGVFbnRyeVsncGFja2V0Q291bnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2Nvb2tpZScgICAgICAgIDogaXBUYWJsZUVudHJ5Wydjb29raWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW9yaXR5JyAgICAgIDogaXBUYWJsZUVudHJ5Wydwcmlvcml0eSddLAorICAgICAgICAgICAgICAgICAgICAgICAnaW5wdXRQb3J0JyAgICAgICAgICAgICAgIDogaW5wdXRQb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAnZHVyYXRpb25TZWNvbmRzJyAgICAgICAgIDogaXBUYWJsZUVudHJ5WydkdXJhdGlvblNlYyddLAorICAgICAgICAgICAgICAgICAgICAgICAnbmV0d29ya1NvdXJjZScgICAgICAgICAgIDogbmV0d29ya1NvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ25ldHdvcmtEZXN0aW5hdGlvbicgICAgICA6IG5ldHdvcmtEZXN0aW5hdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgJ25ldHdvcmtQcm90b2NvbCcgICAgICAgICA6IG5ldHdvcmtQcm90b2NvbCwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGFMYXllclR5cGUnICAgICAgICAgICA6IGRhdGFMYXllclR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICdkYXRhTGF5ZXJTb3VyY2UnICAgICAgICAgOiBkYXRhTGF5ZXJTb3VyY2UsCisgICAgICAgICAgICAgICAgICAgICAgICdkYXRhTGF5ZXJEZXN0aW5hdGlvbicgICAgOiBkYXRhTGF5ZXJEZXN0aW5hdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgJ21wbHNUYycgICAgICAgICAgICAgICAgICA6IG1wbHNUYywKKyAgICAgICAgICAgICAgICAgICAgICAgJ21wbHNMYWJlbCcgICAgICAgICAgICAgICA6IG1wbHNMYWJlbCwKKyAgICAgICAgICAgICAgICAgICAgICAgJ21wbHNCb3MnICAgICAgICAgICAgICAgICA6IG1wbHNCb3MsCisgICAgICAgICAgICAgICAgICAgICAgICd0cmFuc3BvcnREZXN0aW5hdGlvbicgICAgOiB0cmFuc3BvcnREZXN0aW5hdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zcG9ydFNvdXJjZScgICAgICAgICA6IHRyYW5zcG9ydFNvdXJjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbnMnICAgICAgICAgICAgICAgICA6IGFjdGlvbnMKKyAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgZW50cmllcyA9IGNvbWJSZXN1bHQKKworICAgIGlmICdyZWFsdGltZXN0YXRzJyBpbiBkYXRhIGFuZCBkYXRhWydyZWFsdGltZXN0YXRzJ10gPT0gJ2dyb3VwJzoKKyAgICAgICAgY29tYlJlc3VsdCA9IFtdCisgICAgICAgIGZvciBncm91cFN0YXRFbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgZ3JvdXBJZCA9IGdyb3VwU3RhdEVudHJ5WyJncm91cElkIl0KKyAgICAgICAgICAgIGdyb3VwRGVzY0VudHJ5ID0gTm9uZQorICAgICAgICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXMyOgorICAgICAgICAgICAgICAgIGlmIGdyb3VwSWQgPT0gZW50cnlbImdyb3VwSWQiXToKKyAgICAgICAgICAgICAgICAgICAgZ3JvdXBEZXNjRW50cnkgPSBlbnRyeQorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgaWYgZ3JvdXBEZXNjRW50cnkgaXMgJyc6CisgICAgICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfZGlzcGxheV9yZXN0OiBtaXNzaW5nIGdyb3VwIGRlc2MgZm9yIGdyb3VwIGlkICVzIiAlIChncm91cElkKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChsZW4oZ3JvdXBTdGF0RW50cnlbJ2J1Y2tldFN0YXRzJ10pID4gMCk6CisgICAgICAgICAgICAgICAgZm9yIGJ1Y2tldElkIGluIHJhbmdlKGxlbihncm91cFN0YXRFbnRyeVsnYnVja2V0U3RhdHMnXSkpOgorICAgICAgICAgICAgICAgICAgICBzZXRzcmNtYWMgPSAnJworICAgICAgICAgICAgICAgICAgICBpZiAnU0VUX0RMX1NSQycgaW4gZ3JvdXBEZXNjRW50cnlbJ2J1Y2tldHNBY3Rpb25zJ11bYnVja2V0SWRdOgorICAgICAgICAgICAgICAgICAgICAgICAgc2V0c3JjbWFjID0gZ3JvdXBEZXNjRW50cnlbJ2J1Y2tldHNBY3Rpb25zJ11bYnVja2V0SWRdWydTRVRfRExfU1JDJ10KKyAgICAgICAgICAgICAgICAgICAgc2V0ZHN0bWFjID0gJycKKyAgICAgICAgICAgICAgICAgICAgaWYgJ1NFVF9ETF9EU1QnIGluIGdyb3VwRGVzY0VudHJ5WydidWNrZXRzQWN0aW9ucyddW2J1Y2tldElkXToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNldGRzdG1hYyA9IGdyb3VwRGVzY0VudHJ5WydidWNrZXRzQWN0aW9ucyddW2J1Y2tldElkXVsnU0VUX0RMX0RTVCddCisgICAgICAgICAgICAgICAgICAgIHB1c2htcGxzID0gJycKKyAgICAgICAgICAgICAgICAgICAgaWYgJ1BVU0hfTVBMU19MQUJFTCcgaW4gZ3JvdXBEZXNjRW50cnlbJ2J1Y2tldHNBY3Rpb25zJ11bYnVja2V0SWRdOgorICAgICAgICAgICAgICAgICAgICAgICAgcHVzaG1wbHMgPSBncm91cERlc2NFbnRyeVsnYnVja2V0c0FjdGlvbnMnXVtidWNrZXRJZF1bJ1BVU0hfTVBMU19MQUJFTCddCisgICAgICAgICAgICAgICAgICAgIHBvcG1wbHMgPSAnJworICAgICAgICAgICAgICAgICAgICBpZiAnUE9QX01QTFMnIGluIGdyb3VwRGVzY0VudHJ5WydidWNrZXRzQWN0aW9ucyddW2J1Y2tldElkXToKKyAgICAgICAgICAgICAgICAgICAgICAgIHBvcG1wbHMgPSBncm91cERlc2NFbnRyeVsnYnVja2V0c0FjdGlvbnMnXVtidWNrZXRJZF1bJ1BPUF9NUExTJ10KKyAgICAgICAgICAgICAgICAgICAgb3V0cG9ydCA9ICcnCisgICAgICAgICAgICAgICAgICAgIGlmICdPVVRQVVQnIGluIGdyb3VwRGVzY0VudHJ5WydidWNrZXRzQWN0aW9ucyddW2J1Y2tldElkXToKKyAgICAgICAgICAgICAgICAgICAgICAgIG91dHBvcnQgPSBncm91cERlc2NFbnRyeVsnYnVja2V0c0FjdGlvbnMnXVtidWNrZXRJZF1bJ09VVFBVVCddCisgICAgICAgICAgICAgICAgICAgIGdvVG9Hcm91cCA9ICcnCisgICAgICAgICAgICAgICAgICAgIGlmICdnb1RvR3JvdXAnIGluIGdyb3VwRGVzY0VudHJ5WydidWNrZXRzQWN0aW9ucyddW2J1Y2tldElkXToKKyAgICAgICAgICAgICAgICAgICAgICAgIGdvVG9Hcm91cCA9IGdyb3VwRGVzY0VudHJ5WydidWNrZXRzQWN0aW9ucyddW2J1Y2tldElkXVsnZ29Ub0dyb3VwJ10KKyAgICAgICAgICAgICAgICAgICAgc2V0Qm9zPSAnJworICAgICAgICAgICAgICAgICAgICBpZiAnUFVTSF9NUExTX0JPUycgaW4gZ3JvdXBEZXNjRW50cnlbJ2J1Y2tldHNBY3Rpb25zJ11bYnVja2V0SWRdOgorICAgICAgICAgICAgICAgICAgICAgICAgc2V0Qm9zID0gZ3JvdXBEZXNjRW50cnlbJ2J1Y2tldHNBY3Rpb25zJ11bYnVja2V0SWRdWydQVVNIX01QTFNfQk9TJ10KKyAgICAgICAgICAgICAgICAgICAgQ09QWV9UVExfSU49ICcnCisgICAgICAgICAgICAgICAgICAgIGlmICdDT1BZX1RUTF9JTicgaW4gZ3JvdXBEZXNjRW50cnlbJ2J1Y2tldHNBY3Rpb25zJ11bYnVja2V0SWRdOgorICAgICAgICAgICAgICAgICAgICAgICAgQ09QWV9UVExfSU4gPSBncm91cERlc2NFbnRyeVsnYnVja2V0c0FjdGlvbnMnXVtidWNrZXRJZF1bJ0NPUFlfVFRMX0lOJ10KKyAgICAgICAgICAgICAgICAgICAgQ09QWV9UVExfT1VUPSAnJworICAgICAgICAgICAgICAgICAgICBpZiAnQ09QWV9UVExfT1VUJyBpbiBncm91cERlc2NFbnRyeVsnYnVja2V0c0FjdGlvbnMnXVtidWNrZXRJZF06CisgICAgICAgICAgICAgICAgICAgICAgICBDT1BZX1RUTF9PVVQgPSBncm91cERlc2NFbnRyeVsnYnVja2V0c0FjdGlvbnMnXVtidWNrZXRJZF1bJ0NPUFlfVFRMX09VVCddCisgICAgICAgICAgICAgICAgICAgIERFQ19NUExTX1RUTD0gJycKKyAgICAgICAgICAgICAgICAgICAgaWYgJ0RFQ19NUExTX1RUTCcgaW4gZ3JvdXBEZXNjRW50cnlbJ2J1Y2tldHNBY3Rpb25zJ11bYnVja2V0SWRdOgorICAgICAgICAgICAgICAgICAgICAgICAgREVDX01QTFNfVFRMID0gZ3JvdXBEZXNjRW50cnlbJ2J1Y2tldHNBY3Rpb25zJ11bYnVja2V0SWRdWydERUNfTVBMU19UVEwnXQorICAgICAgICAgICAgICAgICAgICBERUNfTldfVFRMPSAnJworICAgICAgICAgICAgICAgICAgICBpZiAnREVDX05XX1RUTCcgaW4gZ3JvdXBEZXNjRW50cnlbJ2J1Y2tldHNBY3Rpb25zJ11bYnVja2V0SWRdOgorICAgICAgICAgICAgICAgICAgICAgICAgREVDX05XX1RUTCA9IGdyb3VwRGVzY0VudHJ5WydidWNrZXRzQWN0aW9ucyddW2J1Y2tldElkXVsnREVDX05XX1RUTCddCisgICAgCisgICAgICAgICAgICAgICAgICAgIGNvbWJSZXN1bHQuYXBwZW5kKHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdncm91cGlkJyAgICAgICA6IGdyb3VwSWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ3JvdXB0eXBlJyAgICAgOiBncm91cERlc2NFbnRyeVsnZ3JvdXBUeXBlJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAndG90YWxwa3RjbnQnICAgOiBncm91cFN0YXRFbnRyeVsncGFja2V0Q291bnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b3RhbGJ5dGVjbnQnICA6IGdyb3VwU3RhdEVudHJ5WydieXRlQ291bnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdidWNrZXRwa3RjbnQnICA6IGdyb3VwU3RhdEVudHJ5WydidWNrZXRTdGF0cyddW2J1Y2tldElkXVsncGt0Q291bnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdidWNrZXRieXRlY250JyA6IGdyb3VwU3RhdEVudHJ5WydidWNrZXRTdGF0cyddW2J1Y2tldElkXVsnYnl0ZUNvdW50J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2V0c3JjbWFjJyAgICAgOiBzZXRzcmNtYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2V0ZHN0bWFjJyAgICAgOiBzZXRkc3RtYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAncHVzaE1wbHNMYWJlbCcgOiBwdXNobXBscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdwb3BtcGxzJyAgICAgICA6IHBvcG1wbHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3V0cG9ydCcgICAgICAgOiBvdXRwb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dvVG9Hcm91cCcgICAgIDogZ29Ub0dyb3VwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NldEJvcycgICAgICAgIDogc2V0Qm9zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NPUFlfVFRMX0lOJyAgIDogQ09QWV9UVExfSU4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ09QWV9UVExfT1VUJyAgOiBDT1BZX1RUTF9PVVQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnREVDX01QTFNfVFRMJyAgOiBERUNfTVBMU19UVEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnREVDX05XX1RUTCcgICAgOiBERUNfTldfVFRMLAorICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY29tYlJlc3VsdC5hcHBlbmQoeworICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyb3VwaWQnICAgICAgIDogZ3JvdXBJZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdncm91cHR5cGUnICAgICA6IGdyb3VwRGVzY0VudHJ5Wydncm91cFR5cGUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b3RhbHBrdGNudCcgICA6IGdyb3VwU3RhdEVudHJ5WydwYWNrZXRDb3VudCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RvdGFsYnl0ZWNudCcgIDogZ3JvdXBTdGF0RW50cnlbJ2J5dGVDb3VudCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2J1Y2tldHBrdGNudCcgIDogJycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnVja2V0Ynl0ZWNudCcgOiAnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZXRzcmNtYWMnICAgICA6ICcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NldGRzdG1hYycgICAgIDogJycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAncHVzaE1wbHNMYWJlbCcgOiAnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdwb3BtcGxzJyAgICAgICA6ICcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ291dHBvcnQnICAgICAgIDogJycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ29Ub0dyb3VwJyAgICAgOiAnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZXRCb3MnICAgICAgICA6ICcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NPUFlfVFRMX0lOJyAgIDogJycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ09QWV9UVExfT1VUJyAgOiAnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdERUNfTVBMU19UVEwnICA6ICcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0RFQ19OV19UVEwnICAgIDogJycsCisgICAgICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICBlbnRyaWVzID0gY29tYlJlc3VsdAorICAgICMKKyAgICBpZiBmb3JtYXQ6CisgICAgICAgICMKKyAgICAgICAgZGV0YWlsID0gY29tbWFuZF9kaXNwbGF5X3Jlc3Rfam9pbl9lbnRyaWVzKHRhYmxlX2Zvcm1hdCwgZGF0YSwgZW50cmllcywgZGV0YWlsKQorICAgICAgICAjaWYgJ3JlYWx0aW1lc3RhdHMnIGluIGRhdGEgYW5kIGRhdGFbJ3JlYWx0aW1lc3RhdHMnXSA9PSAnZmxvdyc6CisgICAgICAgICMgICAgZW50cmllcyA9IHNkbnNoLmZpeF9yZWFsdGltZV9mbG93cyhlbnRyaWVzKQorICAgICAgICAjICAgIGNoZWNrX3NpbmdsZV9lbnRyeSA9IEZhbHNlCisKKyAgICAgICAgaWYgJ3JlYWx0aW1lc3RhdHMnIGluIGRhdGEgYW5kIGRhdGFbJ3JlYWx0aW1lc3RhdHMnXSA9PSAnZmVhdHVyZXMnOgorICAgICAgICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICAgICAgZW50cnlbJ3N0cC1zdGF0ZSddID0gZW50cnlbJ3N0YXRlJ10KKworICAgICAgICAjIHVwZGF0ZSBhbnkgb2YgdGhlIHByZXR0eS1wcmludGVyIHRhYmxlcyBiYXNlZCBvbiB0aGUgdGFibGVfZm9ybWF0IChvYmpfdHlwZSkKKyAgICAgICAgb2JqX3R5cGVfc2hvd19hbGlhc191cGRhdGUodGFibGVfZm9ybWF0ICUgZGF0YSkKKworICAgICAgICBpZiBjaGVja19zaW5nbGVfZW50cnkgYW5kIGVudHJpZXMgYW5kIGxlbihlbnRyaWVzKSA9PSAxIGFuZCBkZXRhaWwgPT0gJ2RldGFpbHMnOgorICAgICAgICAgICAgcmV0dXJuIHNkbnNoLnBwLmZvcm1hdF9lbnRyeShlbnRyaWVzWzBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX2Zvcm1hdCAlIGRhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGV0YWlsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNkbnNoLmRlYnVnKQorICAgICAgICBpZiBzb3J0OgorICAgICAgICAgICAgaWYgZGVzY2VuZGluZzoKKyAgICAgICAgICAgICAgICByZXZlcnNlID0gVHJ1ZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXZlcnNlID0gRmFsc2UKKyAgICAgICAgICAgIGRlZiBzb3J0X2NtcCh4LHkpOgorICAgICAgICAgICAgICAgIGZvciBmIGluIHNvcnQ6CisgICAgICAgICAgICAgICAgICAgIGlmIGYgaW4geDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGMgPSBjbXAoeC5nZXQoZiksIHkuZ2V0KGYpKSAKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGMgIT0gMDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYworICAgICAgICAgICAgICAgIHJldHVybiAwCisgICAgICAgICAgICBlbnRyaWVzID0gc29ydGVkKGVudHJpZXMsICBjbXA9c29ydF9jbXAsIHJldmVyc2U9cmV2ZXJzZSApCisgICAgICAgIGlmICdyZWFsdGltZXN0YXRzJyBpbiBkYXRhIGFuZCBkYXRhWydyZWFsdGltZXN0YXRzJ10gPT0gJ2dyb3VwJzoKKyAgICAgICAgICAgIHJlcGVhdEdyb3VwSWQgPSAtMQorICAgICAgICAgICAgbGVuZ3RoID0gbGVuKGVudHJpZXMpCisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW5ndGgpOgorICAgICAgICAgICAgICAgIGVudHJ5ID0gZW50cmllc1tpXQorICAgICAgICAgICAgICAgIGdyb3VwSWQgPSBlbnRyeS5nZXQoJ2dyb3VwaWQnKQorICAgICAgICAgICAgICAgIGlmIGdyb3VwSWQgPT0gcmVwZWF0R3JvdXBJZDoKKyAgICAgICAgICAgICAgICAgICAgZW50cmllc1tpXVsnZ3JvdXBpZCddID0gJycKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXBlYXRHcm91cElkID0gZ3JvdXBJZAorCisgICAgICAgIGRpc3BsYXkgPSBzZG5zaC5wcC5mb3JtYXRfdGFibGUoZW50cmllcywgdGFibGVfZm9ybWF0ICUgZGF0YSwgZGV0YWlsKQorICAgIGVsc2U6CisgICAgICAgIGRpc3BsYXkgPSBlbnRyaWVzCisKKyAgICBpZiB0aXRsZToKKyAgICAgICAgcmV0dXJuIHRpdGxlICsgZGlzcGxheQorICAgIHJldHVybiBkaXNwbGF5CisKKworZGVmIGNvbW1hbmRfY3JhY2soZmllbGQpOgorICAgICIiIgorICAgIFBhcnQgb2YgdGhlIHNob3cgcGlwZWxpbmUsIHNwbGl0IGlzIHR5cGljYWxseSB1c2VkIHdpdGggcmVzdCBhcGkncworICAgIG5vdCBhc3NvY2lhdGVkIHdpdGggdGhlIG1vZGVsIChkYXRhYmFzZSksIHNpbmNlIHRoZSBjbGkgaGFzIGVub3VnaAorICAgIGRldGFpbHMgb2YgdGhlIHJlbGF0aW9uc2hpcHMgYmV0d2VlbiBtb2RlbCBmaWVsZHMgdG8gdW5kZXJzdGFuZCAKKyAgICB3aGljaCBvZiB0aGUgZmllbGRzIGhhcyBhIGNvbXBvdW5kIGtleSB2YWx1ZSwgYW5kIGhhcyBvcHRpb25zIHRvCisgICAgY3JhY2sgdGhvc2UgaW50byBjb21wb25lbnQgcGFydHMuCisKKyAgICBUaGUgb3BlcmF0aW9uIGlzIGNhbGxlZCAnY3JhY2snIChub3Qgc3BsaXQpLCBzaW5jZSB0aGUgb3RoZXIKKyAgICBvcHRpb25zIGZvciBzb21lIG9mIHRoZSBhY3Rpb25zIGlzIGNhbGxlZCAnY3JhY2snCisKKyAgICBUaGUgZmllbGQgaWRlbnRpZmllcyB0aGUgbmFtZSBvZiB0aGUgZmllbGQgaW4gdGhlIGVudHJ5IHRvCisgICAgc3BsaXQgaW50byBwYXJ0cywgYW5kIHRoZSByZW1haW5pbmcgJ3wnIHNlcGFyYXRlZCBmaWVsZHMgbGlzdAorICAgIHRoZSBsYWJlbHMgdG8gYXNzb2NpYXRlIGluIHRoZSByZXN1bHQgZnJvbSBlYWNoIG9mIHRoZSAKKyAgICBzcGxpdCBjb21wb25lbnRzLiAgIEN1cnJlbnRseSwgdGhlICdjcmFjaycgY2hhcmFjdGVyIGlzICd8JywKKyAgICBhbHRob3VnaCB0aGlzIGNvdWxkIGJlIHBhcmFtZXRlcml6ZWQuCisgICAgIiIiCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgImNvbW1hbmRfc3BsaXQ6ICIsIGZpZWxkCisKKyAgICBpZiBoYXNhdHRyKGNvbW1hbmQsICdxdWVyeV9yZXN1bHQnKToKKyAgICAgICAgZW50cmllcyA9IGNvbW1hbmQucXVlcnlfcmVzdWx0CisgICAgICAgIGlmIGNvbW1hbmQucXVlcnlfcmVzdWx0ID09IE5vbmU6CisgICAgICAgICAgICBlbnRyaWVzID0gW10KKyAgICBlbHNlOgorICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfam9pbl90YWJsZTogbm8gZW50cmllcyBmb3VuZCIKKyAgICAgICAgZW50cmllcyA9IFtdCisgICAgCisgICAgcGFydHMgPSBmaWVsZC5zcGxpdCgnfCcpCisgICAgaWYgbGVuKHBhcnRzKSA9PSAwOgorICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgcHJpbnQgImNvbW1hbmRfam9pbl90YWJsZTogZmllbGQgZG9lc24ndCBjb250YWluIGxhYmVscyIgXAorICAgICAgICAgICAgICAgICAgICIgdXNlIGZpZWxkfGxhYmVsMXxsYWJlbDJ8Li4uIgorICAgICAgICByZXR1cm4KKworICAgIGZpZWxkID0gcGFydHNbMF0KKyAgICBsYWJlbCA9IHBhcnRzWzE6XQorICAgIG1hbnkgPSBsZW4obGFiZWwpCisKKyAgICBmb3IgZW50cnkgaW4gZW50cmllczoKKyAgICAgICAgaWYgZmllbGQgaW4gZW50cnk6CisgICAgICAgICAgICBwYXJ0cyA9IGVudHJ5W2ZpZWxkXS5zcGxpdCgnfCcpCisgICAgICAgICAgICBpZiBsZW4ocGFydHMpIGFuZCBtYW55ID49IGxlbihwYXJ0cykgOgorICAgICAgICAgICAgICAgICMgdXNlIGVudW1lcmF0ZSB0byBjcmVhdGUgYSB0dXBsZSBmb3IgZWFjaCBpdGVtIGluIHBhcnRzLAorICAgICAgICAgICAgICAgICMgYXNzb2NhaXRpbmcgYW4gaW5kZXgsIHdoaWNoIGNhbiBiZSB1c2VkIHRvIGlkZW50aWZ5IHRoZQorICAgICAgICAgICAgICAgICMgbGFiZWwgdG8gdXNlIGZvciBlYWNoIG9mIHRoZSBlbGVtZW50czsgZnJvbSB0aGF0IGNyZWF0ZQorICAgICAgICAgICAgICAgICMgYSBkaWN0aW9uYXksIHdoaWNoIGlzIHRoZW4gdXNlZCB0byB1cGRhdGUgdGhlIGVudHJ5CisgICAgICAgICAgICAgICAgZW50cnkudXBkYXRlKGRpY3QoW1tsYWJlbFtuXSxwXSBmb3IgKG4scCkgaW4gZW51bWVyYXRlKHBhcnRzKV0pKQorCisKK2RlZiBjb21tYW5kX2Rpc3BsYXkoZGF0YSwgdGFibGVfZm9ybWF0LCBkZXRhaWwgPSAnZGVmYXVsdCcsIHNvcnQgPSBOb25lLCB0aXRsZSA9IE5vbmUpOgorICAgIAorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJjb21tYW5kX2Rpc3BsYXk6ICIsIGRhdGEsIHRhYmxlX2Zvcm1hdCwgZGV0YWlsCisKKyAgICBpZiAnZGV0YWlsJyBpbiBkYXRhOgorICAgICAgICBkZXRhaWwgPSBkYXRhWydkZXRhaWwnXQorCisgICAgaWYgaGFzYXR0cihjb21tYW5kLCAncXVlcnlfcmVzdWx0Jyk6CisgICAgICAgIGVudHJpZXMgPSBjb21tYW5kLnF1ZXJ5X3Jlc3VsdAorICAgICAgICBpZiBjb21tYW5kLnF1ZXJ5X3Jlc3VsdCA9PSBOb25lOgorICAgICAgICAgICAgZW50cmllcyA9IFtdCisgICAgZWxzZToKKyAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgIHByaW50ICJjb21tYW5kX2pvaW5fdGFibGU6IG5vIGVudHJpZXMgZm91bmQiCisgICAgICAgIGVudHJpZXMgPSBbXQorICAgIAorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJjb21tYW5kX2Rpc3BsYXk6ICNlbnRyaWVzICIsIGxlbihlbnRyaWVzKQorCisgICAgIyBYWFggY29udHJvbGxlci1ub2RlIGhhcyBhbiBvZGQgdXJsLCBqb2luLXJlc3QgbmVlZHMgdG8gYmUgYWJsZSB0bworICAgICMgYmUgaGFuZGVkIGEgY29tcGxldGUgdXJsLCBhbmQgcmVwbGFjZSB0aGUgaXAgYWRkcmVzcyB3aXRoIHRoZSBjb250cm9sbGVyJ3MKKyAgICAjIGlwIGFkZHJlc3MuCisgICAgZGV0YWlsID0gY29tbWFuZF9kaXNwbGF5X3RhYmxlX2pvaW5fZW50cmllcyh0YWJsZV9mb3JtYXQsIGRhdGEsIGVudHJpZXMsIGRldGFpbCkKKworICAgICMgdXBkYXRlIGFueSBvZiB0aGUgcHJldHR5LXByaW50ZXIgdGFibGVzIGJhc2VkIG9uIHRoZSB0YWJsZV9mb3JtYXQgKG9ial90eXBlKQorICAgIG9ial90eXBlX3Nob3dfYWxpYXNfdXBkYXRlKHRhYmxlX2Zvcm1hdCkKKworICAgICMgd2l0aF9rZXkgbWFuYWdlcyB3aGV0aGVyIGEgJ2RldGFpbCcgb3IgdGFibGUgaXMgZGlzcGxheWVkLgorICAgIHdpdGhfa2V5ID0gJzx3aXRoX2tleT4nIGlmIGRldGFpbCA9PSAnZGV0YWlscycgYW5kIGxlbihlbnRyaWVzKSA+IDAgZWxzZSAnPG5vX2tleT4nCisKKyAgICAjIAorICAgIGlmIHNvcnQ6CisgICAgICAgIGRlZiBzb3J0X2NtcCh4LHkpOgorICAgICAgICAgICAgZm9yIGYgaW4gc29ydDoKKyAgICAgICAgICAgICAgICBpZiBmIGluIHg6CisgICAgICAgICAgICAgICAgICAgIGMgPSB1dGlmLnRyYWlsaW5nX2ludGVnZXJfY21wKHguZ2V0KGYpLHkuZ2V0KGYpKQorICAgICAgICAgICAgICAgICAgICBpZiBjOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGMKKyAgICAgICAgICAgIHJldHVybiAwCisgICAgICAgIGVudHJpZXMgPSBzb3J0ZWQoZW50cmllcywgY21wPXNvcnRfY21wKQorCisgICAgIyB1c2UgZGlzcGxheV9vYmpfdHlwZV9yb3dzIHNpbmNlIGl0IChjdXJyZW50bHkpIGpvaW5zIGZpZWxkcyBmb3Igb2JqX3R5cGVzLgorICAgIGRpc3BsYXkgPSBzZG5zaC5kaXNwbGF5X29ial90eXBlX3Jvd3ModGFibGVfZm9ybWF0LCBlbnRyaWVzLCB3aXRoX2tleSwgZGV0YWlsKQorCisgICAgaWYgdGl0bGU6CisgICAgICAgIHJldHVybiB0aXRsZSArIGRpc3BsYXkKKyAgICByZXR1cm4gZGlzcGxheQorCisKK2RlZiBjb21tYW5kX2xlZ2FjeV9jbGkob2JqX3R5cGUsIGRhdGEsIGRldGFpbCA9ICdkZWZhdWx0Jywgc2NvcGVkID0gTm9uZSwgc29ydCA9IE5vbmUpOgorICAgICIiIgorICAgIFVuZm9ydHVuYXRseSwgdGhlIGNvbW1hbmQgZGVzY3JpcHRpb25zIGRvbid0IGhhdmUgZW5vdWdoIGRpZmZlcmVudAorICAgIGRldGFpbCB0byBkZXNjcmliZSBob3cgdG8gam9pbiBzcGVjaWZpYyBkaXN0aW5jdCBmaWVsZHMuICBJbiB0aGUgZnV0dXJlLAorICAgIHRoZXJlIHdpbGwgYmUgcmVzdCBhcGkncyBmb3IgZWFjaCBvZiB0aGUgY2xpIHJlcXVlc3RzOyB0aGF0IHNob3VsZCBjYXVzZQorICAgIHRoaXMgdHJhbXBvbGluZSBjb2RlIHRvIGJlY29tZSBvYnNvbGV0ZS4KKyAgICAiIiIKKworICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJjb21tYW5kX2xlZ2FjeV9jbGk6ICIsIG9ial90eXBlLCBkYXRhLCBkZXRhaWwsIHNjb3BlZCwgc29ydAorCisgICAgIyB1cGRhdGUgYW55IG9mIHRoZSBwcmV0dHktcHJpbnRlciB0YWJsZXMgYmFzZWQgb24gdGhlIG9ial90eXBlCisgICAgb2JqX3R5cGVfc2hvd19hbGlhc191cGRhdGUob2JqX3R5cGUpCisKKyAgICAjCisgICAgIworICAgICMgVmFyaW91cyBzaG93IGNvbW1hbmQgJ2pvaW4nIGRhdGEgdG8gY3JlYXRlIGEgdGFibGUgbm90CisgICAgIyBkaXJlY3RseSBhdmFpbGFibGUgaW4gdGhlIFJFU1QgQVBJLCBzb21lZGF5IGluIHRoZSBmdXR1cmUsCisgICAgIyB0aGVzZSBqb2lucyB3aWxsIGJlIGRpcmVjdGx5IGltcGxlbWVudGVkIGluIHRoZSBSRVNUIEFQSSwKKyAgICAjIGJ1dCB0aGVzZSBzcGVjaWFsIGNhc2VzIHN0aWxsIGV4aXN0OgorICAgICMKKyAgICBpZiAncnVubmluZy1jb25maWcnIGluIGRhdGE6CisgICAgICAgIHJlc3VsdCA9IHNkbnNoLmVycm9yX21zZygiTm8gcnVubmluZy1jb25maWcgY2hvaWNlIikKKyAgICAgICAgd29yZHMgPSBbXQorICAgICAgICBpZiAnd29yZCcgaW4gZGF0YSBhbmQgZGF0YVsnd29yZCddICE9ICdhbGwnOgorICAgICAgICAgICAgd29yZHMgPSBbZGF0YVsnd29yZCddXQorCisgICAgICAgIGlmIGRhdGFbJ3J1bm5pbmctY29uZmlnJ10gPT0gJ3J1bm5pbmctY29uZmlnJzoKKyAgICAgICAgICAgICMgJ3Nob3cgdm5zIFhYWCBydW5uaW5nLWNvbmZpZycKKyAgICAgICAgICAgIGlmICd2bnNuYW1lJyBpbiBkYXRhIGFuZCBkYXRhWyd2bnNuYW1lJ10gIT0gJ2FsbCc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNkbnNoLnNob3dfdm5zX3J1bm5pbmdfY29uZmlnKGRhdGFbJ3Zuc25hbWUnXSxkYXRhWyd0ZW5hbnQnXSkKKyAgICAgICAgICAgIGVsaWYgJ3ZucycgaW4gZGF0YSBhbmQgZGF0YVsndm5zJ109PSdhbGwnOgorICAgICAgICAgICAgICAgIGRhdGFbJ3J1bm5pbmctY29uZmlnJ10gPSAndm5zJworICAgICAgICAgICAgZWxpZiAndGVuYW50JyBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGRhdGFbJ3J1bm5pbmctY29uZmlnJ109J3RlbmFudCcKKyAgICAgICAgICAgICAgICB3b3Jkcz1bZGF0YVsndGVuYW50J11dCisgICAgICAgIGlmIGRhdGFbJ3J1bm5pbmctY29uZmlnJ10gaW4gcnVuX2NvbmZpZy5yZWdpc3RyeV9pdGVtc19lbmFibGVkKCk6CisgICAgICAgICAgICByZXN1bHQgPSBydW5fY29uZmlnLnBlcmZvcm1fcnVubmluZ19jb25maWcoZGF0YVsncnVubmluZy1jb25maWcnXSwgc2Ruc2gsIGNvbmZpZywgd29yZHMpCisKKyAgICAgICAgaWYgcmVzdWx0OgorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgICAgICByZXR1cm4gJycuam9pbihjb25maWcpCisKKyAgICBpZiBvYmpfdHlwZSA9PSAncnVubmluZy1jb25maWcnOgorICAgICAgICByZXR1cm4gcnVuX2NvbmZpZy5pbXBsZW1lbnRfc2hvd19ydW5uaW5nX2NvbmZpZyhbXSkKKyAgICAgICAgICAgIAorICAgIGlmIG9ial90eXBlID09ICd2bnMtaW50ZXJmYWNlJzoKKyAgICAgICAgaWYgc2NvcGVkOgorICAgICAgICAgICAgIyBzaG91bGQgY2hlY2sgZm9yIG1pc3NpbmcgJ2lkJyBpbiBkYXRhCisgICAgICAgICAgICBkYXRhWyd2bnMnXSA9IHNkbnNoLmdldF9jdXJyZW50X21vZGVfb2JqKCkKKworICAgICAgICBpZiAndm5zJyBpbiBkYXRhOgorICAgICAgICAgICAgaWYgZGF0YVsndm5zJ10gPT0gJ2FsbCc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNkbnNoLmRpc3BsYXlfdm5zX2ludGVyZmFjZShOb25lLCB7fSwgJzxub19rZXk+JykKKyAgICAgICAgICAgIHZuc19uYW1lPWRhdGFbJ3ZucyddCisgICAgICAgICAgICByZXR1cm4gc2Ruc2guZGlzcGxheV92bnNfaW50ZXJmYWNlKHZuc19uYW1lLCB7J3Zucyc6IHZuc19uYW1lIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzxub19rZXk+JywgZGV0YWlsID0gJ3Njb3BlZCcpCisgICAgICAgIAorICAgIGlmIG9ial90eXBlID09ICd2bnMtc3dpdGNoLXBvcnRzJzoKKyAgICAgICAgaWYgJ3ZucycgaW4gZGF0YToKKyAgICAgICAgICAgIHJldHVybiBzZG5zaC5zaG93X3Zuc19zd2l0Y2hfcG9ydHMoW2RhdGFbJ3ZucyddXSkKKyAgICAgICAgcmV0dXJuIHNkbnNoLnNob3dfdm5zX3N3aXRjaF9wb3J0cyhbXSkKKworICAgIGlmIG9ial90eXBlID09ICdzd2l0Y2gtcG9ydHMtdm5zJzoKKyAgICAgICAgaWYgJ2RwaWQnIGluIGRhdGE6CisgICAgICAgICAgICByZXR1cm4gc2Ruc2guc2hvd19zd2l0Y2hfcG9ydHNfdm5zKFtkYXRhWydkcGlkJ11dKQorICAgICAgICByZXR1cm4gc2Ruc2guc2hvd19zd2l0Y2hfcG9ydHNfdm5zKFtdKQorCisgICAgaWYgb2JqX3R5cGUgPT0gJ3N3aXRjaC1pbnRlcmZhY2VzJzoKKyAgICAgICAga2V5ID0gbWkucGsob2JqX3R5cGUpCisgICAgICAgIGlmIHNjb3BlZDoKKyAgICAgICAgICAgIGRhdGFbJ2RwaWQnXSA9IHNkbnNoLmdldF9jdXJyZW50X21vZGVfb2JqKCkKKworICAgICAgICAjIGluIGxlZ2FjeV9jbGkgdG8gam9pbiB0aGUgc3dpdGNoLWludGVyZmFjZXMgd2l0aCBwb3J0IHN0YXRzCisgICAgICAgIHBvcnRfb2JqID0gJ3BvcnQnCisgICAgICAgIGVudHJpZXMgPSBzZG5zaC5zaG93X3NvcnRfb2JqX3R5cGUob2JqX3R5cGUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRfcXVlcnlfb2JqZWN0KHBvcnRfb2JqLCBkYXRhLCBzY29wZWQsIHNvcnQpKQorCisgICAgICAgICMgc3dpdGNoLWludGVyZmFjZXMgaXMgcmVhbGx5IGNsYXNzIFBvcnQsIGFuZCB0aGUgcHJpbWFyeSBrZXkKKyAgICAgICAgIyBpcyAnI3xzd2l0Y2h8bnVtYmVyLCBub3QgbmFtZS4KKworICAgICAgICBlbnRyaWVzX2RpY3QgPSBkaWN0KFtbJyVzfCVzJyAlICh4Wydzd2l0Y2gnXSwgeFsnbmFtZSddKSwgeF0gZm9yIHggaW4gZW50cmllc10pCisgICAgICAgICMgY29sbGVjdCBzd2l0Y2gtaW50ZXJmYWNlLWNvbmZpZworICAgICAgICBzaWMgPSAnc3dpdGNoLWludGVyZmFjZS1jb25maWcnCisgICAgICAgIGlmICdkcGlkJyBpbiBkYXRhIGFuZCBkYXRhWydkcGlkJ10gIT0gJ2FsbCc6CisgICAgICAgICAgICBzaWNfZGljdCA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KHNpYywgbWkucGsoc2ljKSwgbWkucGsoc2ljKSwgZGF0YVsnZHBpZCddKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2ljX2RpY3QgPSBjcmVhdGVfb2JqX3R5cGVfZGljdChzaWMsIG1pLnBrKHNpYykpCisKKyAgICAgICAgIyBhZGQgc3dpdGNoLWludGVyZmFjZS1jb25maWcgbmFtZXMgd2hlbiBtaXNzaW5nCisgICAgICAgIGZvciAoc2ljX2lkLCBzaWNfdmFsdWUpIGluIHNpY19kaWN0Lml0ZW1zKCk6CisgICAgICAgICAgICBpZiBub3Qgc2ljX2lkIGluIGVudHJpZXNfZGljdDoKKyAgICAgICAgICAgICAgICAjIGFkZCAnc3RhdGUnIHRvIHRoaXMgaXRlbSBmb3IgcHJldHR5cHJpbnRpbmcgY29sdW1uIHdpZHRoIGNvbXB1dGF0aW9uCisgICAgICAgICAgICAgICAgZm9yIHN2IGluIHNpY192YWx1ZToKKyAgICAgICAgICAgICAgICAgICAgc3ZbJ3N0YXRlJ10gPSAnJworICAgICAgICAgICAgICAgIGVudHJpZXMgKz0gc2ljX3ZhbHVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAjIGNvbGxlY3QgdGhlIHN0YXRzIGZvciB0aGUgaW50ZXJmYWNlcworICAgICAgICBzdGF0c191cmwgPSAncmVhbHRpbWVzdGF0cy9wb3J0LyUoZHBpZClzLycgJSBkYXRhCisgICAgICAgIHVybCA9ICJodHRwOi8vJXMvcmVzdC92MS8iICUgc2Ruc2guY29udHJvbGxlciArIHN0YXRzX3VybAorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXN1bHQgPSBzZG5zaC5zdG9yZS5yZXN0X3NpbXBsZV9yZXF1ZXN0KHVybCkKKyAgICAgICAgICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCkKKyAgICAgICAgICAgIHN0YXRzID0ganNvbi5sb2FkcyhyZXN1bHQpCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHN0YXRzID0ge30KKworICAgICAgICAjIGpvaW4gcmVhbHRpbWVzdGF0cworICAgICAgICBmb3IgZW50cnkgaW4gZW50cmllczoKKyAgICAgICAgICAgIGlmICdzdGF0ZScgaW4gZW50cnk6CisgICAgICAgICAgICAgICAgZW50cnlbJ3N0cC1zdGF0ZSddID0gZW50cnlbJ3N0YXRlJ10KKyAgICAgICAgICAgIHN0YXRzX2xpc3QgPSBzdGF0cy5nZXQoZW50cnlbJ3N3aXRjaCddKQorICAgICAgICAgICAgIyBOb3RlLCAnbnVtYmVyJyBtYXkgYmUgbWlzc2luZyBmcm9tIGVudHJ5IGlmIHRoZSBzd2l0Y2gKKyAgICAgICAgICAgICMgbWF0Y2hlcyBmb3Igc3dpdGNoLWludGVyZmFjZS1jb25maWcgYnV0IHRoZSBpbnRlcmZhY2UgbmFtZQorICAgICAgICAgICAgIyBkb2Vzbid0IHNob3cgdXAuCisgICAgICAgICAgICBpZiBzdGF0c19saXN0IGFuZCAnbnVtYmVyJyBpbiBlbnRyeToKKyAgICAgICAgICAgICAgICBpZm4gPSBlbnRyeVsnbnVtYmVyJ10KKyAgICAgICAgICAgICAgICAjIE5vdGljZSB0aGF0IHRoZSByZWFsdGltZSBzdGF0J3MgdXNlIGEgaW50IGZvciB0aGUgMl4xNiB2YWx1ZSBoZXJlCisgICAgICAgICAgICAgICAgIyBUaGUgJiAweGZmZmYgY29udmVydHMgdGhlICIteCIgdG8gYSBwb3NpdGl2ZSAyXjE2IHZhbHVlCisgICAgICAgICAgICAgICAgaXRlbSA9IFt4IGZvciB4IGluIHN0YXRzX2xpc3QgaWYgKHhbJ3BvcnROdW1iZXInXSAmIDB4ZmZmZikgPT0gaWZuXQorICAgICAgICAgICAgICAgIGlmIGxlbihpdGVtKSA9PSAxOgorICAgICAgICAgICAgICAgICAgICBlbnRyeS51cGRhdGUoaXRlbVswXSkKKyAgICAgICAgICAgIGlmIGVudHJ5WydpZCddIGluIHNpY19kaWN0OgorICAgICAgICAgICAgICAgIGVudHJ5LnVwZGF0ZShzaWNfZGljdFtlbnRyeVsnaWQnXV1bMF0pCisKKyAgICAgICAgIyBVcGRhdGUgdGhlIGFsaWFzIG1hcHBpbmdzIGZvciBkaXNwbGF5CisgICAgICAgIG9ial90eXBlX3Nob3dfYWxpYXNfdXBkYXRlKG9ial90eXBlKQorCisgICAgICAgIHJldHVybiBzZG5zaC5wcC5mb3JtYXRfdGFibGUoZW50cmllcywgb2JqX3R5cGUsIGRldGFpbCkKKworICAgIGlmIG9ial90eXBlID09ICd0dW5uZWwtaW50ZXJmYWNlcyc6CisgICAgICAgICMgVXNlIHRoZSBhY3RpdmUgdHVubmVscyB0byBpZGVudGlmeSB0aGUgaW50ZXJmYWNlcyBvbiB0aGUKKyAgICAgICAgIyBzd2l0Y2hlcyB3aGljaCBhcmUgdGhlIHR1bm5lbGluZyBpbnRlcmZhY2VzLCB3aXRoIHRoYXQKKyAgICAgICAgIyBjb2xsZWN0IHRvIHBvcnQgLT4gaWZfbmFtZSBtYXBwaW5ncyBmcm9tICdwb3J0JywgdGhlbgorICAgICAgICAjIGZpbmQgYWxsIHRoZSBzd2l0Y2hlcyBpbnRlcmZhY2VzLCBjb252ZXJ0IHRob3NlIHBvcnQgbnVtYmVycyB0bworICAgICAgICAjIGlmIG5hbWVzLCB0byBjb2xsZWN0IG9ubHkgdHVubmVsaW5nIGludGVyZmFjZXMuICBOb3cgY29sbGVjdAorICAgICAgICAjIHJlYWx0aW1lc3RhdHMgZm9yIHRoZSBzd2l0Y2gncyBwb3J0cywgYW5kIGFzc29jaWF0ZSB0aG9zZQorICAgICAgICAjIHN0YXRzIHdpdGggYW55IGZpbHRlcmVkIGludGVyZmFjZXMsIGZpbmFsbHkgZGlzcGxheSB0aGUgcmVzdWx0CisgICAgICAgIHR1bm5lbF91cmwgPSAidHVubmVsLW1hbmFnZXIvJShkcGlkKXMiICUgZGF0YQorICAgICAgICB1cmwgPSAiaHR0cDovLyVzL3Jlc3QvdjEvIiAlIHNkbnNoLmNvbnRyb2xsZXIgKyB0dW5uZWxfdXJsCisgICAgICAgIHJlc3VsdCA9IHNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QodXJsKQorICAgICAgICBjaGVja19yZXN0X3Jlc3VsdChyZXN1bHQpCisgICAgICAgIHR1bm5lbHMgPSBqc29uLmxvYWRzKHJlc3VsdCkKKworICAgICAgICAjIHVzZSB0aGUgYWN0aXZlIHR1bm5lbHMgdG8KKyAgICAgICAgIyBjb2xsZWN0IGRwaWQncywgY29udmVydCB0aGUgcmVtb3RlIGlwJ3MgdG8gaW50ZXJmYWNlIG5hbWVzLgorICAgICAgICB0dW5uZWxfcG9ydHMgPSB7fQorICAgICAgICBmb3IgdCBpbiB0dW5uZWxzOgorICAgICAgICAgICAgcXVhZCA9IHRbJ3R1bm5lbFBvcnRzJ10uc3BsaXQoJy4nKQorICAgICAgICAgICAgaWZfbmFtZSA9ICJ2dGElMDNkJTAzZCUwM2QlMDNkIiAlIChpbnQocXVhZFswXSksIGludChxdWFkWzFdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHF1YWRbMl0pLCBpbnQocXVhZFszXSkpCisgICAgICAgICAgICBrZXkgPSAiJXN8JXMiICUgKHRbJ2RwaWQnXSwgaWZfbmFtZSkKKyAgICAgICAgICAgIGlmIG5vdCBrZXkgaW4gdHVubmVsX3BvcnRzOgorICAgICAgICAgICAgICAgIHR1bm5lbF9wb3J0c1trZXldID0ge3RbJ2RwaWQnXTogdFsndHVubmVsUG9ydHMnXX0KKworICAgICAgICAjIENvbGxlY3QgaW50ZXJmYWNlcyBvbiBhc3NvY2lhdGVkIHN3aXRjaAorICAgICAgICBwb3J0X29iaiA9ICdwb3J0JworICAgICAgICBlbnRyaWVzID0gc2Ruc2guc2hvd19zb3J0X29ial90eXBlKHBvcnRfb2JqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRfcXVlcnlfb2JqZWN0KHBvcnRfb2JqLCBkYXRhLCBzY29wZWQsIHNvcnQpKQorICAgICAgICAjIEFzc29jaWF0ZSBwb3J0IG5hbWVzIHdpdGggaW50ZXJmYWNlIG5hbWVzCisgICAgICAgIHBvcnRfdG9faWZfbmFtZSA9IHt9CisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcG9ydHMgPSBzZG5zaC5nZXRfdGFibGVfZnJvbV9zdG9yZSgicG9ydCIpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBwb3J0ID0gW10KKworICAgICAgICBmb3IgcG9ydCBpbiBwb3J0czoKKyAgICAgICAgICAgIGtleV9zdHJpbmcgPSAnJXN8JXMnICUgKHBvcnRbJ3N3aXRjaCddLCBwb3J0WydudW1iZXInXSkKKyAgICAgICAgICAgIHBvcnRfdG9faWZfbmFtZVtrZXlfc3RyaW5nXSA9IHBvcnRbJ25hbWUnXQorCisgICAgICAgICMgRmlsdGVyIGVsZW1lbnRzLCAnZmlsdGVyZWQnIG9ubHkgY29udGFpbnMgYWN0aXZlIHR1bm5lbCBpbnRlcmZhY2VzCisgICAgICAgIGZpbHRlcmVkID0gW10KKyAgICAgICAgZm9yIGUgaW4gZW50cmllczoKKyAgICAgICAgICAgIGVbJ2lmbmFtZSddID0gcG9ydF90b19pZl9uYW1lW2VbJ2lkJ11dCisgICAgICAgICAgICBrZXkgPSAnJXN8JXMnICUgKGVbJ3N3aXRjaCddLCBlWydpZm5hbWUnXSkKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgcHJpbnQgY29tbWFuZC5fbGluZSgpLCBrZXkKKyAgICAgICAgICAgIGlmIGtleSBpbiB0dW5uZWxfcG9ydHM6CisgICAgICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgY29tbWFuZC5fbGluZSgpLCAiRm91bmQgIiwgZVsnaWQnXQorICAgICAgICAgICAgICAgIGZpbHRlcmVkLmFwcGVuZChlKQorICAgICAgICBlbnRyaWVzID0gZmlsdGVyZWQKKworICAgICAgICAjIGNvbGxlY3Qgc3dpdGNoLWludGVyZmFjZS1jb25maWcKKyAgICAgICAgc2ljID0gJ3N3aXRjaC1pbnRlcmZhY2UtY29uZmlnJworICAgICAgICBpZiAnZHBpZCcgaW4gZGF0YToKKyAgICAgICAgICAgIHNpY19kaWN0ID0gY3JlYXRlX29ial90eXBlX2RpY3Qoc2ljLCBtaS5wayhzaWMpLCBtaS5wayhzaWMpLCBkYXRhWydkcGlkJ10pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzaWNfZGljdCA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KHNpYywgbWkucGsoc2ljKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICMgY29sbGVjdCB0aGUgc3RhdHMgZm9yIHRoZSBpbnRlcmZhY2VzCisgICAgICAgIHN0YXRzX3VybCA9ICdyZWFsdGltZXN0YXRzL3BvcnQvJShkcGlkKXMvJyAlIGRhdGEKKyAgICAgICAgdXJsID0gImh0dHA6Ly8lcy9yZXN0L3YxLyIgJSBzZG5zaC5jb250cm9sbGVyICsgc3RhdHNfdXJsCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3VsdCA9IHNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QodXJsKQorICAgICAgICAgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorICAgICAgICAgICAgc3RhdHMgPSBqc29uLmxvYWRzKHJlc3VsdCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHN0YXRzID0ge30KKworICAgICAgICAjIGpvaW4gcmVhbHRpbWVzdGF0cworICAgICAgICBmb3IgZW50cnkgaW4gZW50cmllczoKKyAgICAgICAgICAgIGlmICdzdGF0ZScgaW4gZW50cnk6CisgICAgICAgICAgICAgICAgZW50cnlbJ3N0cC1zdGF0ZSddID0gZW50cnlbJ3N0YXRlJ10KKyAgICAgICAgICAgIHN0YXRzX2xpc3QgPSBzdGF0cy5nZXQoZW50cnlbJ3N3aXRjaCddKQorICAgICAgICAgICAgaWYgc3RhdHNfbGlzdCBhbmQgJ251bWJlcicgaW4gZW50cnk6CisgICAgICAgICAgICAgICAgaWZuID0gZW50cnlbJ251bWJlciddCisgICAgICAgICAgICAgICAgIyBOb3RpY2UgdGhhdCB0aGUgcmVhbHRpbWUgc3RhdCdzIHVzZSBhIGludCBmb3IgdGhlIDJeMTYgdmFsdWUgaGVyZQorICAgICAgICAgICAgICAgICMgVGhlICYgMHhmZmZmIGNvbnZlcnRzIHRoZSAiLXgiIHRvIGEgcG9zaXRpdmUgMl4xNiB2YWx1ZQorICAgICAgICAgICAgICAgIGl0ZW0gPSBbeCBmb3IgeCBpbiBzdGF0c19saXN0IGlmICh4Wydwb3J0TnVtYmVyJ10gJiAweGZmZmYpID09IGlmbl0KKyAgICAgICAgICAgICAgICBpZiBsZW4oaXRlbSkgPT0gMToKKyAgICAgICAgICAgICAgICAgICAgZW50cnkudXBkYXRlKGl0ZW1bMF0pCisgICAgICAgICAgICBpZiBlbnRyeVsnaWQnXSBpbiBzaWNfZGljdDoKKyAgICAgICAgICAgICAgICBlbnRyeS51cGRhdGUoc2ljX2RpY3RbZW50cnlbJ2lkJ11dWzBdKQorCisgICAgICAgIG9ial90eXBlX3Nob3dfYWxpYXNfdXBkYXRlKCdzd2l0Y2gtaW50ZXJmYWNlcycpCisKKyAgICAgICAgcmV0dXJuIHNkbnNoLnBwLmZvcm1hdF90YWJsZShlbnRyaWVzLCAnc3dpdGNoLWludGVyZmFjZXMnLCBkZXRhaWwpCisgICAgICAgIAorICAgIGlmIG9ial90eXBlID09ICdob3N0LXZucy1pbnRlcmZhY2Utdm5zJzoKKyAgICAgICAgd29yZHMgPSBbXQorICAgICAgICBmb3IgdyBpbiBbXTogIyBsaXN0IG9mIG9wdGlvbnMgdG8gZGlzcGxheV92bnNfbWFjX2FkZHJlc3NfdGFibGUKKyAgICAgICAgICAgIGlmIHcgaW4gZGF0YToKKyAgICAgICAgICAgICAgICB3b3Jkc1t3XSA9IGRhdGFbd10KKworICAgICAgICByZXR1cm4gc2Ruc2guZGlzcGxheV92bnNfbWFjX2FkZHJlc3NfdGFibGUoZGF0YVsndm5zJ10sIHdvcmRzKQorCisgICAgaWYgb2JqX3R5cGUgPT0gJ2NvbmZpZyc6CisgICAgICAgIGlmICdjb25maWcnIGluIGRhdGE6CisgICAgICAgICAgICBpZiAndmVyc2lvbicgaW4gZGF0YToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2Ruc2guaW1wbGVtZW50X3Nob3dfY29uZmlnKFtkYXRhWydjb25maWcnXSxkYXRhWyd2ZXJzaW9uJ11dKQorICAgICAgICAgICAgcmV0dXJuIHNkbnNoLmltcGxlbWVudF9zaG93X2NvbmZpZyhbZGF0YVsnY29uZmlnJ11dKQorCisgICAgICAgIGlmICdjb25maWctZGlmZicgaW4gZGF0YToKKyAgICAgICAgICAgIGlmICd2ZXJzaW9uJyBpbiBkYXRhOgorICAgICAgICAgICAgICAgIHJldHVybiBzZG5zaC5pbXBsZW1lbnRfc2hvd19jb25maWcoWyBkYXRhWydmaXJzdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlmZicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWydzZWNvbmQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbJ3ZlcnNpb24nXV0pCisgICAgICAgICAgICByZXR1cm4gc2Ruc2guaW1wbGVtZW50X3Nob3dfY29uZmlnKFtkYXRhWydmaXJzdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RpZmYnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsnc2Vjb25kJ10sIF0pCisgICAgICAgIHJldHVybiBzZG5zaC5pbXBsZW1lbnRfc2hvd19jb25maWcoW10pCisKKyAgICBpZiBvYmpfdHlwZSA9PSAndm5zLWZsb3cnOgorICAgICAgICBpZiAnZGV0YWlsJyBpbiBkYXRhOgorICAgICAgICAgICAgcmV0dXJuIHNkbnNoLnNob3dfdm5zX2Zsb3dfYW5ub3RhdGVkKFtkYXRhWyd2bnMnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zsb3cnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWydkZXRhaWwnXV0pCisgICAgICAgIHJldHVybiBzZG5zaC5zaG93X3Zuc19mbG93X2Fubm90YXRlZChbZGF0YVsndm5zJ10sICdmbG93J10pCisKKyAgICBpZiBvYmpfdHlwZSA9PSAndGVjaC1zdXBwb3J0JzoKKyAgICAgICAgcmV0dXJuIHNkbnNoLmRvX3Nob3dfdGVjaF9zdXBwb3J0KFtdKQorCisgICAgaWYgb2JqX3R5cGUgPT0gJ2NvbmZpZy1maWxlJzoKKyAgICAgICAgaWYgJ2ZpbGUnIGluIGRhdGE6CisgICAgICAgICAgICByZXR1cm4gc2Ruc2guaW1wbGVtZW50X3Nob3dfY29uZmlnX2ZpbGUoWydjb25maWctZmlsZScsIGRhdGFbJ2NvbmZpZyddXSkKKyAgICAgICAgcmV0dXJuIHNkbnNoLmltcGxlbWVudF9zaG93X2NvbmZpZ19maWxlKFsnY29uZmlnLWZpbGUnLCBdKQorCisgICAgaWYgb2JqX3R5cGUgPT0gJ2xvZ2dpbmcnOgorICAgICAgICBpZiAnbG9nLW5hbWUnIGluIGRhdGE6CisgICAgICAgICAgICByZXR1cm4gc2Ruc2guaW1wbGVtZW50X3Nob3dfbG9nZ2luZyhbZGF0YVsnbG9nLW5hbWUnXV0pCisgICAgICAgIHJldHVybiBzZG5zaC5pbXBsZW1lbnRfc2hvd19sb2dnaW5nKFtdKQorCisgICAgaWYgb2JqX3R5cGUgPT0gJ2V2ZW50LWhpc3RvcnknOgorICAgICAgICBpZiAnY291bnQnIGluIGRhdGE6CisgICAgICAgICAgICByZXR1cm4gc2Ruc2guZG9fc2hvd19ldmVudF9oaXN0b3J5KFtkYXRhWydldmVudCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xhc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKGRhdGFbJ2NvdW50J10pXSkKKyAgICAgICAgcmV0dXJuIHNkbnNoLmRvX3Nob3dfZXZlbnRfaGlzdG9yeShbZGF0YVsnZXZlbnQnXV0pCisKKyAgICBpZiBvYmpfdHlwZSA9PSAnZmxvdy1jYWNoZSc6CisgICAgICAgIHdvcmRzID0gW10KKyAgICAgICAgaWYgJ2NvdW50ZXJzJyBpbiBkYXRhOgorICAgICAgICAgICAgd29yZHMuYXBwZW5kKCdjb3VudGVycycpCisgICAgICAgIGVsaWYgJ2FwcGxpY2F0aW9uJyBpbiBkYXRhOgorICAgICAgICAgICAgd29yZHMuYXBwZW5kKCdhcHAnKQorICAgICAgICAgICAgd29yZHMuYXBwZW5kKGRhdGFbJ2FwcGxpY2F0aW9uJ10pCisgICAgICAgICAgICB3b3Jkcy5hcHBlbmQoJ2FwcC1pbnN0YW5jZScpCisgICAgICAgICAgICB3b3Jkcy5hcHBlbmQoZGF0YVsnaW5zdGFuY2UnXSkKKworICAgICAgICByZXR1cm4gc2Ruc2guZG9fc2hvd19mbG93X2NhY2hlKHdvcmRzKQorCisgICAgaWYgb2JqX3R5cGUgaW4gWydjb250cm9sbGVyLXN0YXRzJywgJ3N3aXRjaC1zdGF0cyddOgorICAgICAgICAjCisgICAgICAgICMgZGF0YVsnaWQnXSBpcyB0aGUgbmFtZSBvZiB0aGUgY29udHJvbGxlcgorICAgICAgICBoZWxwZXJfaXRlbSA9IG9ial90eXBlLnJlcGxhY2UoJy1zdGF0cycsJycpCisgICAgICAgIGlmIGhlbHBlcl9pdGVtID09ICdjb250cm9sbGVyJzoKKyAgICAgICAgICAgIGhlbHBlcl9pdGVtID0gJ2NvbnRyb2xsZXItbm9kZScKKyAgICAgICAga2V5ID0gbWkucGsoaGVscGVyX2l0ZW0pCisgICAgICAgIHdvcmRzID0gW2hlbHBlcl9pdGVtLCBkYXRhW2tleV0sICdzdGF0cyddCisgICAgICAgIGlmICdzdGF0cy10eXBlJyBpbiBkYXRhOgorICAgICAgICAgICAgd29yZHMuYXBwZW5kKGRhdGFbJ3N0YXRzLXR5cGUnXSkKKyAgICAgICAgZm9yIChuLHYpIGluIGRhdGEuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIG5vdCBuIGluIFtrZXksICdzdGF0cycsICdzdGF0cy10eXBlJ106CisgICAgICAgICAgICAgICAgd29yZHMuYXBwZW5kKG4pCisgICAgICAgICAgICAgICAgd29yZHMuYXBwZW5kKHYpCisgICAgICAgIHJldHVybiBzZG5zaC5oZWxwZXJfc2hvd19vYmplY3Rfc3RhdHMod29yZHMpCisKKyAgICBpZiBvYmpfdHlwZSA9PSAnc3dpdGNoLXRjcGR1bXAnOgorICAgICAgICB3b3JkcyA9IFsndHJhY2UnLCBkYXRhWydkcGlkJ11dCisgICAgICAgIGZvciAobix2KSBpbiBkYXRhLml0ZW1zKCk6CisgICAgICAgICAgICBpZiBub3QgbiBpbiBbJ3RjcGR1bXAnLCAnZHBpZCddOgorICAgICAgICAgICAgICAgIHdvcmRzLmFwcGVuZChuKQorICAgICAgICByZXR1cm4gc2Ruc2guZG9fdHJhY2Uod29yZHMpCisKKyAgICBpZiBvYmpfdHlwZSA9PSAnY29weSc6CisgICAgICAgIHdvcmRzID0gW2RhdGFbJ3NvdXJjZSddXQorICAgICAgICBpZiAnZGVzdCcgaW4gZGF0YToKKyAgICAgICAgICAgIHdvcmRzLmFwcGVuZChkYXRhWydkZXN0J10pCisgICAgICAgIHJldHVybiBzZG5zaC5pbXBsZW1lbnRfY29weSh3b3JkcykKKworICAgIGlmIG9ial90eXBlID09ICd3cml0ZSc6CisgICAgICAgIHJldHVybiBzZG5zaC5pbXBsZW1lbnRfd3JpdGUoW2RhdGFbJ3RhcmdldCddXSkKKworICAgIGlmIG9ial90eXBlID09ICd0aGlzJzoKKyAgICAgICAgb2JqX3R5cGUgPSBzZG5zaC5nZXRfY3VycmVudF9tb2RlX29ial90eXBlKCkKKyAgICAgICAgc2hvd190aGlzID0gbWkub2JqX3R5cGVfc2hvd190aGlzKG9ial90eXBlKQorICAgICAgICBpZiBub3Qgc2hvd190aGlzOgorICAgICAgICAgICAgcmV0dXJuIHNkbnNoLmRvX3Nob3dfb2JqZWN0KFsndGhpcyddKQorICAgICAgICByZXN1bHQgPSBbXQorICAgICAgICBmb3Igc2hvdyBpbiBzaG93X3RoaXM6CisgICAgICAgICAgICBpZiB0eXBlKHNob3cpIGlzIGxpc3QgYW5kIGxlbihzaG93KSA+PSAzOgorICAgICAgICAgICAgICAgICMgWyBvYmplY3QsIGZvcm1hdCwgZGV0YWlsIF0KKyAgICAgICAgICAgICAgICBpZiBsZW4ocmVzdWx0KSA+IDA6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQobWkub2JqX3R5cGVfc2hvd190aXRsZShzaG93WzBdKSkKKyAgICAgICAgICAgICAgICBzb3J0ID0gTm9uZQorICAgICAgICAgICAgICAgIGlmIGxlbihzaG93KSA+IDM6CisgICAgICAgICAgICAgICAgICAgIHNvcnQgPSBzaG93WzNdCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjb21tYW5kX2Rpc3BsYXlfdGFibGUoc2hvd1swXSwge30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfZm9ybWF0ID0gc2hvd1sxXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXRhaWwgPSBzaG93WzJdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvcnQgPSBzb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlZCA9IFRydWUpKQorICAgICAgICAgICAgZWxpZiB0eXBlKHNob3cpIGlzIGxpc3QgYW5kIGxlbihzaG93KSA9PSAyOgorICAgICAgICAgICAgICAgICMgWyBvYmplY3QsIGRldGFpbCBdCisgICAgICAgICAgICAgICAgaWYgbGVuKHJlc3VsdCkgPiAwOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKG1pLm9ial90eXBlX3Nob3dfdGl0bGUoc2hvd1swXSkpCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChjb21tYW5kX2Rpc3BsYXlfdGFibGUoc2hvd1swXSwge30sIGRldGFpbCA9IHNob3dbMV0sIHNjb3BlZCA9IFRydWUpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNkbnNoLmRvX3Nob3dfb2JqZWN0KFtzaG93XSkpCisgICAgICAgIHJldHVybiAnXG4nLmpvaW4ocmVzdWx0KQorCisgICAgaWYgb2JqX3R5cGUgPT0gJ3ZlcnNpb24nOgorICAgICAgICByZXR1cm4gc2Ruc2guZG9fc2hvd192ZXJzaW9uKFtdKQorCisgICAgaWYgb2JqX3R5cGUgPT0gJ3JlbG9hZCc6CisgICAgICAgIHJldHVybiBzZG5zaC5pbXBsZW1lbnRfcmVsb2FkKCkKKworICAgIGlmIG9ial90eXBlID09ICd0ZXN0LWNvbW1hbmQnOgorICAgICAgICBpZiBkYXRhWyd0ZXN0LXR5cGUnXSA9PSAncGFja2V0LWluJzoKKyAgICAgICAgICAgIHJldHVybiBzZG5zaC5pbXBsZW1lbnRfdGVzdF9wYWNrZXRfaW4oZGF0YSkKKyAgICAgICAgaWYgZGF0YVsndGVzdC10eXBlJ10gPT0gJ3BhdGgnOgorICAgICAgICAgICAgcmV0dXJuIHNkbnNoLmltcGxlbWVudF90ZXN0X3BhdGgoZGF0YSkKKworICAgIHByaW50ICdjb21tYW5kX2xlZ2FjeV9jbGk6IG9iai10eXBlIHVua25vd246ICcsIG9ial90eXBlCisKKworZGVmIGNvbW1hbmRfbGVnYWN5X2NsaV9ubyhvYmpfdHlwZSwgZGF0YSwgZGV0YWlsID0gJ2RlZmF1bHQnLCBzY29wZWQgPSBOb25lLCBzb3J0ID0gTm9uZSk6CisgICAgIiIiCisgICAgSW1wbGVtZW50IG5vIGNvbW1hbmQgZm9yIHRyYW1wb2xpbmUgY29kZSBiYWNrIHRvIHRoZSBvcmlnaW5hbCBjb2RlCisgICAgIiIiCisgICAgaWYgb2JqX3R5cGUgPT0gJ3RhZy1tYXBwaW5nJzoKKyAgICAgICAgcmV0dXJuIHNkbnNoLmltcGxlbWVudF9ub190YWcoWyd0YWcnLCBkYXRhWyd0YWcnXV0pCisKKworZGVmIGNvbW1hbmRfdmVyc2lvbihkYXRhKToKKyAgICAiIiIKKyAgICBUaGUgdmVyc2lvbiBjb21tYW5kIHdpbGwgbGF0ZXIgbWFuYWdlIGNoYW5naW5nIHRoZSBzeW50YXggdG8gbWF0Y2gKKyAgICB0aGUgcmVxdWVzdGVkIHZlcnNpb24uCisgICAgIiIiCisgICAgbmV3X3ZlcnNpb24gPSBkYXRhLmdldCgndmVyc2lvbicpCisgICAgaWYgbmV3X3ZlcnNpb24gPT0gTm9uZToKKyAgICAgICAgcmV0dXJuCisKKyAgICB2ZXJzaW9uID0gbmV3X3ZlcnNpb24gIyBzYXZlIGZvciBlcnJvciBtZXNzYWdlCisgICAgbmV3X3ZlcnNpb24gPSBzZG5zaC5kZXNjX3ZlcnNpb25fdG9fcGF0aF9lbGVtKG5ld192ZXJzaW9uKQorCisgICAgIyBza2lwIHZlcnNpb24gY2hhbmdlIGlzIHRoaXMgaXMgdGhlIGN1cnJlbnQgdmVyc2lvbi4KKyAgICBpZiBzZG5zaC5kZXNjX3ZlcnNpb24gPT0gbmV3X3ZlcnNpb246CisgICAgICAgIHJldHVybgorCisgICAgIyBzZWUgaWYgdGhlIHJlcXVlc3RlZCB2ZXJzaW9uIGV4aXN0cworICAgIGlmIG5vdCBzZG5zaC5jb21tYW5kX3BhY2thZ2VzX2V4aXN0cyhuZXdfdmVyc2lvbik6CisgICAgICAgIHByaW50ICdObyBjb21tYW5kIGRlc2NyaXB0aW9uIGdyb3VwIGZvciB2ZXJzaW9uICVzJyAlIHZlcnNpb24KKyAgICAgICAgcmV0dXJuCisKKyAgICAjIHJ1biAnZW52IFtlbnZyaXJvbl92YXJzXSAuLi4gY2xpLnB5JworICAgIGNvbW1hbmQgPSBbJ2VudiddCisgICAgY29tbWFuZC5hcHBlbmQoJ0NMSV9DT01NQU5EX1ZFUlNJT049JXMnICUgdmVyc2lvbikKKyAgICBjb21tYW5kLmFwcGVuZCgnQ0xJX1NUQVJUSU5HX01PREU9Y29uZmlnJykKKyAgICBpZiBvcy5wYXRoLmV4aXN0cygnL29wdC9zZG5wbGF0Zm9ybS9jbGkvYmluL2NsaScpOgorICAgICAgICAjIGNvbnRyb2xsZXIgVk0KKyAgICAgICAgY29tbWFuZC5hcHBlbmQoJy9vcHQvc2RucGxhdGZvcm0vY2xpL2Jpbi9jbGkgLS1pbml0JykKKyAgICBlbHNlOgorICAgICAgICAjIGRldmVsb3BlciBzZXR1cAorICAgICAgICBiYXNlID0gb3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKQorICAgICAgICBjb21tYW5kLmFwcGVuZChvcy5wYXRoLmpvaW4oYmFzZSwgJ2NsaS5weScpKQorICAgICAgICBjb21tYW5kLmFwcGVuZCgnLS1pbml0JykKKworICAgICMgZHVtcCB0aGUgY29tbWFuZCBkZXNjcmlwdGlvbnMsIGFuZCByZWFkIGEgbmV3IHNldC4KKyAgICAjIG9wZW4gYSBzdWJzaGVsbCB3aXRoIGEgbmV3IGNvbW1hbmQgdmVyc2lvbgorICAgIHN1YnByb2Nlc3MuY2FsbChjb21tYW5kLCBjd2Q9b3MuZW52aXJvbi5nZXQoIkhPTUUiKSkKKworICAgIHJldHVybgorCisKK2RlZiBjb21tYW5kX2NsZWFydGVybSgpOgorICAgICIiIgorICAgIFByaW50IHJlc2V0IGNoYXJhY3RlcnMgdG8gdGhlIHNjcmVlbiB0byBjbGVhciB0aGUgY29uc29sZQorICAgICIiIgorICAgIHN1YnByb2Nlc3MuY2FsbCgicmVzZXQiKQorCitkZWYgY29tbWFuZF9kaXNwbGF5X2NsaShkYXRhKToKKyAgICAiIiIKKyAgICBEaXNwbGF5IHZhcmlvdXMgY2xpIGRldGFpbHMKKyAgICAodGhpcyBtYXkgbmVlZCB0byBiZSByZS1mYWN0b3JlZCBpbnRvIHNvbWUgZ2VuZXJhbCAiaW50ZXJuYWwiIHN0YXRlIHNob3cKKyAgICAiIiIKKyAgICBkZWJ1ZyA9IFtdCisgICAgaWYgc2Ruc2guZGVidWc6CisgICAgICAgIGRlYnVnLmFwcGVuZCgnZGVidWcnKQorICAgIGlmIHNkbnNoLmRlYnVnX2JhY2t0cmFjZToKKyAgICAgICAgZGVidWcuYXBwZW5kKCdiYWNrdHJhY2UnKQorCisgICAgbW9kZXMgPSBzZG5zaC5jb21tYW5kX2RpY3Qua2V5cygpICsgc2Ruc2guY29tbWFuZF9uZXN0ZWRfZGljdC5rZXlzKCkKKworICAgIGVudHJ5ID0geworICAgICAgICAgICAgICAgJ3ZlcnNpb24nIDogJywgJy5qb2luKGNvbW1hbmQuY29tbWFuZF9zeW50YXhfdmVyc2lvbi5rZXlzKCkpLAorICAgICAgICAgICAgICAgJ2Rlc2MnICAgIDogJywgJy5qb2luKHNvcnRlZChjb21tYW5kLmNvbW1hbmRfYWRkZWRfbW9kdWxlcy5rZXlzKCkpKSwKKyAgICAgICAgICAgICAgICdmb3JtYXQnICA6ICcsICcuam9pbihzb3J0ZWQoc2Ruc2gucHAuZm9ybWF0X2FkZGVkX21vZHVsZXMua2V5cygpKSksCisgICAgICAgICAgICAgICAnbW9kZXMnICAgOiAnLCAnLmpvaW4oc29ydGVkKHV0aWYudW5pcXVlX2xpc3RfZnJvbV9saXN0KG1vZGVzKSkpLAorICAgICAgICAgICAgICAgJ2RlYnVnJyAgIDogJywgJy5qb2luKGRlYnVnKSwKKyAgICAgICAgICAgIH0KKyAgICBiYXNpYyA9IHNkbnNoLnBwLmZvcm1hdF9lbnRyeShlbnRyeSwgJ2NsaScpCisKKyAgICBtb2RlX2VudHJpZXMgPSBjb21tYW5kLmNvbW1hbmRfc3VibW9kZV9kaWN0aW9uYXJ5KG1vZGVzKQorICAgIG1vZGVfdGFibGUgPSBzZG5zaC5wcC5mb3JtYXRfdGFibGUobW9kZV9lbnRyaWVzLCAnY2xpLW1vZGVzJykKKworICAgIHJldHVybiBiYXNpYyArICdcblxuQ29tbWFuZCBTdWJtb2RlIFRyYW5zaXRpb25cbicgKyBtb2RlX3RhYmxlCisKKyAgICByZXR1cm4KKworCitkZWYgZGVsZXRlX2FsaWFzX2J5X2lkKGFsaWFzX29ial90eXBlLCBhbGlhc192YWx1ZSk6CisgICAgIiIiCisgICAgQ29tbW9uIGRlbGV0ZSBvcGVyYXRpb24gZm9yIGFsaWFzLCBiYXNlZCBvbiBwcmltYXJ5IGtleQorCisgICAgQHBhcmFtIGFsaWFzX29ial90eXBlIHN0cmluZywgbmFtZSBvZiB0YWJsZSB3aGVyZSBzaW5nbGUgZW50cnkgaXMgcmVtb3ZlZAorICAgIEBwYXJhbSBhbGlhc192YWx1ZSBzdHJpbmcsIHZhbHVlIG9mIHByaW1hcnkga2V5IHRvIGRlbGV0ZQorICAgICIiIgorICAgIHhyZWYgPSBtaS5mb3JlaWduX2tleV94cmVmLmdldChhbGlhc19vYmpfdHlwZSkKKyAgICBpZiB4cmVmOgorICAgICAgICAjIGxvb2sgZm9yIGFueSByZWZlcmVjbmVzIHRvIHRoaXMgYWxpYXNfdmFsdWUuICBTaW5jZSB0aGlzCisgICAgICAgICMgaXMgYW4gYWxpYXMgdGFibGUsIG9ubHkgdGhlIHBrIG91Z2h0IHRvIGV4aXN0IGluIHRoZSB4cmVmLgorICAgICAgICAjIFdoZW4gdGhlIGFsaWFzIGlzIGdldHRpbmcgcmVtb3ZlZCwgYW55IHJlZmVyZW5jZXMgdG8gaXQKKyAgICAgICAgIyB2aWEgZm9yZWlnbiBrZXlzIG11c3QgYWxzbyBnZXQgcmVtb3ZlZC4KKyAgICAgICAgaWYgbGVuKHhyZWYpID4gMSBvciBub3QgbWkucGsoYWxpYXNfb2JqX3R5cGUpIGluIHhyZWY6CisgICAgICAgICAgICBwcmludCAnSW50ZXJuYWwgSW5jb25zaXN0ZW5jeScKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZvciAoZmtfb2JqX3R5cGUsIGZrX2ZpZWxkKSBpbiB4cmVmW21pLnBrKGFsaWFzX29ial90eXBlKV06CisgICAgICAgICAgICAgICAgcm93cyA9IHNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKGZrX29ial90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBma19maWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNfdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleGFjdCcpCisgICAgICAgICAgICAgICAgZm9yIHJvdyBpbiByb3dzOgorICAgICAgICAgICAgICAgICAgICBzZG5zaC5yZXN0X2RlbGV0ZV9vYmplY3QoZmtfb2JqX3R5cGUsIHJvd1ttaS5wayhma19vYmpfdHlwZSldKQorICAgIHNkbnNoLnJlc3RfZGVsZXRlX29iamVjdChhbGlhc19vYmpfdHlwZSwgYWxpYXNfdmFsdWUpCisKKworZGVmIGRlbGV0ZV9hbGlhc19ieV9mayhhbGlhc19vYmpfdHlwZSwgZm9yZWlnbl9rZXkpOgorICAgICIiIgorICAgIENvbW1vbiBkZWxldGUgb3BlcmF0aW9uIGZvciBhbGlhcywgYnkgZm9yZWlnbiBrZXkKKworICAgIEBwYXJhbSBhbGlhc19vYmpfdHlwZSBzdHJpbmcsIG5hbWUgb2YgdGFibGUgd2hlcmUgc2luZ2xlIGVudHJ5IGlzIHJlbW92ZWQKKyAgICBAcGFyYW0gYWxpYXNfdmFsdWUgc3RyaW5nLCB2YWx1ZSBvZiBwcmltYXJ5IGtleSB0byBkZWxldGUKKyAgICAiIiIKKyAgICAjIGZpbmQgYWxsIHRoZSBpZCdzIGJhc2VkIG9uIHRoZSBmb3JlaWduIGtleSwgdGhlbiBkZWxldGUgdGhlbSBhbGwuCisgICAgIyBub3RlOiBzZWUgc2ltaWxhciBtaWR3IGFsaWFzX2xvb2t1cF93aXRoX2ZvcmVpZ25fa2V5KCkKKworICAgIGZvcmVpZ25fZmllbGQgPSBtaS5hbGlhc19vYmpfdHlwZV9maWVsZChhbGlhc19vYmpfdHlwZSkKKyAgICB0cnk6CisgICAgICAgIHJvd3MgPSBzZG5zaC5nZXRfdGFibGVfZnJvbV9zdG9yZShhbGlhc19vYmpfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVpZ25fZmllbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlaWduX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGFjdCIpCisgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZEludGVybmFsRXJyb3IoIkNhbid0IGZldGNoICVzOiVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvcmVpZ25fZmllbGQsIGZvcmVpZ25fa2V5KSkKKyAgICBwayA9IG1pLnBrKGFsaWFzX29ial90eXBlKQorICAgIGZvciByb3cgaW4gcm93czoKKyAgICAgICAgZGVsZXRlX2FsaWFzX2J5X2lkKGFsaWFzX29ial90eXBlLCByb3dbcGtdKQorCisKK2RlZiBjb21tYW5kX2RlbGV0ZV9hbGlhcyhvYmpfdHlwZSwgZGF0YSk6CisgICAgIiIiCisgICAgQWN0aW9uIGZvciBkZWxldGUtYWxpYXMKKworICAgIEEgc2luZ2xlIHJvdyBpcyBkZWxldGVkIGZyb20gYW4gYWxpYXMgdGFibGUuCisgICAgQ3VycmVudCBhbGlhcyB0YWJsZXMgaW5jbHVkZSBob3N0LWFsaWFzLCBzd2l0Y2gtYWxpYXMsIHBvcnQtYWxpYXMKKworICAgIEBwYXJhbSBvYmpfdHlwZSBzdHJpbmcsIG5hbWUgb2YgYWxpYXMgdGFibGUgdG8gbWFuYWdlCisgICAgQHBhcmFtIGRhdGEgZGljdCwgY29sbGVjdGlvbiBvZiBmaWVsZDp2YWx1ZSdzIGZyb20gY29tbWFuZCBkZXNjcmlwdGlvbgorICAgICIiIgorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJjb21tYW5kX2RlbGV0ZV9hbGlhczogIiwgb2JqX3R5cGUsIGRhdGEKKworICAgIHBhcmVudF9pZCA9IHNkbnNoLmdldF9jdXJyZW50X21vZGVfb2JqKCkKKworICAgIGtleSA9IG1pLnBrKG9ial90eXBlKQorICAgIGlmIGtleSBub3QgaW4gZGF0YToKKyAgICAgICAgZGVsZXRlX2FsaWFzX2J5X2ZrKG9ial90eXBlLCBwYXJlbnRfaWQpCisgICAgZWxzZToKKyAgICAgICAgZGVsZXRlX2FsaWFzX2J5X2lkKG9ial90eXBlLCBkYXRhW2tleV0pCisKKworZGVmIGNvbW1hbmRfY3JlYXRlX2FsaWFzKG9ial90eXBlLCBkYXRhLCByZXNlcnZlZCA9IE5vbmUsIGZhaWxfaWZfZXhpc3RzID0gRmFsc2UpOgorICAgICIiIgorICAgIEFjdGlvbiBmb3IgY3JlYXRlLWFsaWFzCisKKyAgICBDdXJyZW50IGFsaWFzIHRhYmxlcyBpbmNsdWRlIGhvc3QtYWxpYXMsIHN3aXRjaC1hbGlhcywgcG9ydC1hbGlhcworCisgICAgQHBhcmFtIG9ial90eXBlIHN0cmluZywgbmFtZSBvZiBhbGlhcyB0YWJsZSB0byBtYW5hZ2UKKyAgICBAcGFyYW0gZGF0YSBkaWN0LCBjb2xsZWN0aW9uIG9mIGZpZWxkOnZhbHVlJ3MgZnJvbSB0aGUgY29tbWFuZCBkZXNjcmlwdGlvbgorICAgICIiIgorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJjb21tYW5kX2NyZWF0ZV9hbGlhczogIiwgb2JqX3R5cGUsIGRhdGEsIHJlc2VydmVkLCBmYWlsX2lmX2V4aXN0cworCisgICAgcGFyZW50X29ial90eXBlID0gc2Ruc2guZ2V0X2N1cnJlbnRfbW9kZV9vYmpfdHlwZSgpCisgICAgcGFyZW50X2lkID0gc2Ruc2guZ2V0X2N1cnJlbnRfbW9kZV9vYmooKQorCisgICAga2V5ID0gbWkucGsob2JqX3R5cGUpCisgICAgaWYga2V5IG5vdCBpbiBkYXRhOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kSW50ZXJuYWxFcnJvcigiQWxpYXMgdGFibGUgJyVzJzogZGVzY3JpcHRpb24gIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJkb2Vzbid0IHBvcHVsYXRlIGNvcnJlY3QgJyVzJyBmaWVsZCBhcyBkYXRhIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9ial90eXBlLCBrZXkpKQorICAgIGFsaWFzX3ZhbHVlID0gZGF0YVtrZXldCisgICAgIworICAgICMgRGV0ZXJtaW5lIGlmIHRoZSBhbGlhcyBuYW1lIGlzIGFsbG93ZWQuCisgICAgaWYgYWxpYXNfdmFsdWUgaW4gc2Ruc2gucmVzZXJ2ZWRfd29yZHM6CisgICAgICAgIHJhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCdyZXNlcnZlZCBuYW1lICIlcyIgaW4gIiVzIicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChhbGlhc192YWx1ZSwgJywnLmpvaW4oc2Ruc2gucmVzZXJ2ZWRfd29yZHMpKSkKKyAgICBpZiByZXNlcnZlZCBhbmQgdHlwZShyZXNlcnZlZCkgIT0gbGlzdDoKKyAgICAgICAgcmVzZXJ2ZWQgPSBbcmVzZXJ2ZWRdCisKKyAgICBpZiByZXNlcnZlZCBhbmQgYWxpYXNfdmFsdWUgaW4gcmVzZXJ2ZWQ6CisgICAgICAgIHJhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCdyZXNlcnZlZCBuYW1lICIlcyIgaW4gIiVzIicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChhbGlhc192YWx1ZSwgJywnLmpvaW4ocmVzZXJ2ZWQpKSkKKworICAgICMgV2FsayB0aGUgZm9yZWlnbiBrZXkncyBpbiB0aGUgKGFsaWFzKSBvYmotdHlwZSwgbG9va2luZworICAgICMgZm9yIHRoZSBwYXJlbnQgcmVmZXJlbmNlLgorCisgICAgYWxpYXNfZmsgPSBOb25lCisgICAgb2JqX3R5cGVfZm9yZWlnbl9rZXlzID0gbWkub2JqX3R5cGVfZm9yZWlnbl9rZXlzKG9ial90eXBlKQorICAgIGlmIGxlbihvYmpfdHlwZV9mb3JlaWduX2tleXMpID09IDE6CisgICAgICAgIGFsaWFzX2ZrID0gb2JqX3R5cGVfZm9yZWlnbl9rZXlzWzBdCisgICAgZWxzZToKKyAgICAgICAgZm9yIGFsaWFzX2ZuIGluIG9ial90eXBlX2ZvcmVpZ25fa2V5czoKKyAgICAgICAgICAgIChma19vdCwgZmtfZm4pID0gbWkuZm9yZWlnbl9rZXlfcmVmZXJlbmNlcyhvYmpfdHlwZSwgYWxpYXNfZm4pCisgICAgICAgICAgICBpZiBma19vdCA9PSBwYXJlbnRfb2JqX3R5cGU6CisgICAgICAgICAgICAgICAgYWxpYXNfZmsgPSBhbGlhc19mbgorCisgICAgaWYgbm90IGFsaWFzX2ZrOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kSW50ZXJuYWxFcnJvcigiQWxpYXMgdGFibGUgJyVzJyBoYXMgbm8gZm9yZWlnbiBrZXkgdG8gJyVzJyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvYmpfdHlwZSwgcGFyZW50X29ial90eXBlKSkKKworICAgIHRyeToKKyAgICAgICAgc2Ruc2guZ2V0X29iamVjdF9mcm9tX3N0b3JlKG9ial90eXBlLCBhbGlhc192YWx1ZSkKKyAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgIHByaW50ICJjb21tYW5kX2NyZWF0ZV9hbGlhczogZGVsZXRlICIsIG9ial90eXBlLCBhbGlhc192YWx1ZQorICAgICAgICBpZiBmYWlsX2lmX2V4aXN0czoKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCJJbnRlcmZhY2UgbmFtZSAnJXMnIGFscmVhZHkgaW4gdXNlIC0gY2Fubm90IHJlYXNzaWduIiAlKGFsaWFzX3ZhbHVlKSkKKyAgICAgICAgZGVsZXRlX2FsaWFzX2J5X2lkKG9ial90eXBlLCBhbGlhc192YWx1ZSkKKyAgICBleGNlcHQ6CisgICAgICAgIHBhc3MKKworICAgICMgUmVtb3ZlIG90aGVyIGV4aXN0aW5nIGFsaWFzIGZvciB0aGUgc2FtZSBmb3JlaWduIGtleQorICAgICMgKGllOiBvbmx5IG9uZSBhbGlhcyBwZXIgZWFjaCBpdGVtLCB0aGlzIGNvdWxkIGJlIHJlbGF4ZWQpCisgICAgIyBYWFggaW1wcm92ZSBtZXRob2Qgb2YgbWFuYWdpbmcgZXJyb3JzIGhlcmUKKyAgICB0cnk6CisgICAgICAgIHJvd3MgPSBzZG5zaC5nZXRfdGFibGVfZnJvbV9zdG9yZShvYmpfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzX2ZrLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50X2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4YWN0IikKKyAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICBlcnJvcnMgPSBzZG5zaC5yZXN0X2Vycm9yX3RvX2RpY3QoZSkKKyAgICAgICAgcHJpbnQgc2Ruc2gucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKQorICAgICAgICByb3dzID0gW10KKworICAgIGZvciByb3cgaW4gcm93czoKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZGVsZXRlX2FsaWFzX2J5X2lkKG9ial90eXBlLCByb3dba2V5XSkKKyAgICAgICAgICAgIGlmIHJvd1thbGlhc19ma10gIT0gcGFyZW50X2lkOgorICAgICAgICAgICAgICAgIHNkbnNoLndhcm5pbmcoIlJlbW92ZWQgYWRkaXRpb25hbCBhbGlhcyAnJXMnIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiwgYWxzbyByZWZlcnMgdG8gJXMgJyVzJyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJvd1trZXldLCBwYXJlbnRfb2JqX3R5cGUsIHBhcmVudF9pZCkpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlYnVnIG9yIHNkbnNoLmRlYnVnX2JhY2t0cmFjZToKKyAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKKworICAgICMgVGhpcyBzZXQncyB0aGUgZm9yZWlnbiBrZXkgdG8gYWxsb3cgdGhlIGNyZWF0ZSB0byBzdWNjZWVkCisgICAgY19kaWN0ID0geworICAgICAgICAgICAgICAgIGtleSAgICAgIDogYWxpYXNfdmFsdWUsCisgICAgICAgICAgICAgICAgYWxpYXNfZmsgOiBwYXJlbnRfaWQsCisgICAgICAgICAgICAgfQorCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgImNvbW1hbmRfY3JlYXRlX2FsaWFzOiBjcmVhdGUgIiwgb2JqX3R5cGUsIGNfZGljdAorICAgIHJlc3VsdCA9IHNkbnNoLnJlc3RfY3JlYXRlX29iamVjdChvYmpfdHlwZSwgY19kaWN0KQorICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCkKKyAgICByZXN1bHQgPSBzZG5zaC5yZXN0X3F1ZXJ5X29iamVjdHMob2JqX3R5cGUsIGNfZGljdCkKKyAgICBjaGVja19yZXN0X3Jlc3VsdChyZXN1bHQpCisKKyAgICByZXR1cm4gTm9uZQorCisKK2RlZiBjb21tYW5kX2NyZWF0ZV90YWcob2JqX3R5cGUsIGRhdGEpOgorICAgICIiIgorICAgIG9ial90eXBlIG5lZWRzIHRvIGJlIG9uZSBvZiB0aGUgb2JqZWN0cyB3aGljaCBpbXBsZW1lbnRzCisgICAgYSByZWxhdGlvbnNoaXAgdG8gJ3RhZycsIGZvciBleGFtcGxlOiAgdGFnLW1hYy1tYXBwaW5nCisgICAgIiIiCisKKyAgICBpdGVtID0gc2Ruc2guZ2V0X2N1cnJlbnRfbW9kZV9vYmpfdHlwZSgpCisgICAgZmtzID0gbWkub2JqX3R5cGVfZm9yZWlnbl9rZXlzKG9ial90eXBlKQorICAgIGZvciBmayBpbiBma3M6CisgICAgICAgIChma19vYmosIGZrX25hbWUpID0gbWkuZm9yZWlnbl9rZXlfcmVmZXJlbmNlcyhvYmpfdHlwZSwgZmspCisgICAgICAgIGlmIGZrX29iaiA9PSBpdGVtOgorICAgICAgICAgICAgYnJlYWsKKyAgICBlbHNlOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kU2VtYW50aWNFcnJvciggInR5cGUgbWFwcGluZyAlcyBkb2Vzbid0IGhhdmUgIgorICAgICAgICAgICAgICAgICAgICAgICAgInJlbGF0aW9uc2hpcCB0byB0aGUgY3VycmVudCBvYmplY3QgJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgIChvYmpfdHlwZSwgaXRlbSkpCisKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAiY29tbWFuZF9jcmVhdGVfdGFnOiBjcmVhdGUgIiwgb2JqX3R5cGUsIGRhdGEKKworICAgIHRhZ19hbmRfdmFsdWUgPSBkYXRhWyd0YWcnXS5zcGxpdCgnPScpCisgICAgaWYgbGVuKHRhZ19hbmRfdmFsdWUpICE9IDI6CisgICAgICAgICMgZGVhbCB3aXRoIHRhZ19hbmRfdmFsdWUncyAndmE9dmI9dmMuLi4nCisgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRTZW1hbnRpY0Vycm9yKCJ0YWcgPFt0YWctbmFtZXNwYWNlLl1uYW1lPj08dmFsdWU+ICIgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IGFzc29jaWF0ZSB0YWcgd2l0aCBob3N0IikKKworICAgIHRhZ19wYXJ0cyA9IHRhZ19hbmRfdmFsdWVbMF0uc3BsaXQoJy4nKQorICAgIGlmIGxlbih0YWdfcGFydHMpID09IDA6CisgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRTZW1hbnRpY0Vycm9yKCJ0YWcgPFt0YWctbmFtZXNwYWNlLl1uYW1lPiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjogbXVzdCBoYXZlIGEgbmFtZSIpCisgICAgZWxpZiBsZW4odGFnX3BhcnRzKSA9PSAxOgorICAgICAgICB0YWdfbmFtZXNwYWNlID0gImRlZmF1bHQiCisgICAgICAgIHRhZ19uYW1lID0gdGFnX3BhcnRzWzBdCisgICAgZWxpZiBsZW4odGFnX3BhcnRzKSA+PSAyOgorICAgICAgICAjIHRoZSB0YWdfbmFtZSBpcyBub3QgYWxsb3dlZCB0byBoYXZlICcuJyAKKyAgICAgICAgIyBjb2xsZWN0IGFsbCB0aGUgJy4ncyB0b2dldGhlciBpbnRvIHRoZSBuYW1lc3BhY2UKKyAgICAgICAgdGFnX25hbWVzcGFjZSA9ICcuJy5qb2luKHRhZ19wYXJ0c1s6LTFdKQorICAgICAgICB0YWdfbmFtZSA9IHRhZ19wYXJ0c1stMV0KKworICAgIHRhZ192YWx1ZSA9IHRhZ19hbmRfdmFsdWVbMV0KKworICAgICMgZmlyc3QgbWFuYWdlIHRoZSB0YWcgLi4uIAorICAgIHRhZ19kaWN0ID0geyAKKyAgICAgICAgICAgICAgICduYW1lc3BhY2UnIDogdGFnX25hbWVzcGFjZSwKKyAgICAgICAgICAgICAgICduYW1lJyAgICAgIDogdGFnX25hbWUsCisgICAgICAgICAgICAgICAndmFsdWUnICAgICA6IHRhZ192YWx1ZSwKKyAgICAgICAgICAgICAgIH0gICAKKworICAgIHF1ZXJ5ID0gc2Ruc2gucmVzdF9xdWVyeV9vYmplY3RzKCd0YWcnLCB0YWdfZGljdCkKKyAgICBzZG5zaC5jaGVja19yZXN0X3Jlc3VsdChxdWVyeSkKKyAgICB0YWdfZGljdFsncGVyc2lzdCddID0gVHJ1ZQorICAgIGlmIGxlbihxdWVyeSkgPT0gMDoKKyAgICAgICAgcmVzdWx0ID0gc2Ruc2gucmVzdF9jcmVhdGVfb2JqZWN0KCd0YWcnLCB0YWdfZGljdCkKKyAgICAgICAgc2Ruc2guY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorICAgIGVsaWYgbGVuKHF1ZXJ5KSA9PSAxOgorICAgICAgICB1cGRhdGUgPSBzZG5zaC5yZXN0X3VwZGF0ZV9vYmplY3QoJ3RhZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaS5waygndGFnJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeVswXVttaS5waygndGFnJyldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFnX2RpY3QpCisgICAgICAgIHNkbnNoLmNoZWNrX3Jlc3RfcmVzdWx0KHVwZGF0ZSkKKworICAgIGRlbCB0YWdfZGljdFsncGVyc2lzdCddCisgICAgcXVlcnkgPSBzZG5zaC5yZXN0X3F1ZXJ5X29iamVjdHMoJ3RhZycsIHRhZ19kaWN0KQorICAgIHNkbnNoLmNoZWNrX3Jlc3RfcmVzdWx0KHF1ZXJ5KQorICAgIHRhZ19pZCA9IHF1ZXJ5WzBdW21pLnBrKCd0YWcnKV0KKworICAgICMgbm93IGNyZWF0ZSB0aGUgdGFnLW1hcHBpbmcKKyAgICB0YWdfZGljdCA9IHsgCisgICAgICAgICAgICAgICBmayAgICA6IHNkbnNoLmdldF9jdXJyZW50X21vZGVfb2JqKCksICMgZmsgZnJvbSBlYXJseSBmb3IgbG9vcAorICAgICAgICAgICAgICAgJ3RhZycgOiB0YWdfaWQsCisgICAgICAgICAgICAgICB9ICAgCisKKyAgICBxdWVyeSA9IHNkbnNoLnJlc3RfcXVlcnlfb2JqZWN0cyhvYmpfdHlwZSwgdGFnX2RpY3QpCisgICAgc2Ruc2guY2hlY2tfcmVzdF9yZXN1bHQocXVlcnkpCisgICAgaWYgbGVuKHF1ZXJ5KSA9PSAwOgorICAgICAgICByZXN1bHQgPSBzZG5zaC5yZXN0X2NyZWF0ZV9vYmplY3Qob2JqX3R5cGUsIHRhZ19kaWN0KQorICAgICAgICBzZG5zaC5jaGVja19yZXN0X3Jlc3VsdChyZXN1bHQpCisKKworZGVmIGNvbW1hbmRfZGVsZXRlX3RhZyhvYmpfdHlwZSwgZGF0YSk6CisgICAgIiIiCisgICAgb2JqX3R5cGUgZGVzY3JpYmVzIHRoZSB0YWctWFhYLW1hcHBpbmcgd2hpY2ggaXMgZ2V0dGluZworICAgIG1hbmFnZWQsIGRhdGEgaGFzIHRoZSB0YWcgJ3N0cmluZycgdG8gZGVsZXRlLgorICAgICIiIgorICAgIGl0ZW0gPSBzZG5zaC5nZXRfY3VycmVudF9tb2RlX29ial90eXBlKCkKKyAgICBma3MgPSBtaS5vYmpfdHlwZV9mb3JlaWduX2tleXMob2JqX3R5cGUpCisgICAgZm9yIGZrIGluIGZrczoKKyAgICAgICAgKGZrX29iaiwgZmtfbmFtZSkgPSBtaS5mb3JlaWduX2tleV9yZWZlcmVuY2VzKG9ial90eXBlLCBmaykKKyAgICAgICAgaWYgZmtfb2JqID09IGl0ZW06CisgICAgICAgICAgICBicmVhaworICAgIGVsc2U6CisgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRTZW1hbnRpY0Vycm9yKCAidHlwZSBtYXBwaW5nICVzIGRvZXNuJ3QgaGF2ZSAiCisgICAgICAgICAgICAgICAgICAgICAgICAicmVsYXRpb25zaGlwIHRvIHRoZSBjdXJyZW50IG9iamVjdCAlcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgKG9ial90eXBlLCBpdGVtKSkKKworICAgIGlmICd0YWcnIG5vdCBpbiBkYXRhOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kU2VtYW50aWNFcnJvcignVGFnIHZhbHVlIG1pc3NpbmcnKQorCisgICAgdGFnID0gZGF0YVsndGFnJ10KKyAgICBuYW1lX2FuZF92YWx1ZSA9IHRhZy5zcGxpdCgnPScpCisKKyAgICBuYW1lX3BhcnQgPSBuYW1lX2FuZF92YWx1ZVswXS5zcGxpdCgnLicpCisgICAgaWYgbGVuKG5hbWVfcGFydCkgPT0gMToKKyAgICAgICAgbmFtZXNwYWNlID0gJ2RlZmF1bHQnCisgICAgICAgIG5hbWUgPSBuYW1lX3BhcnRbMF0KKyAgICBlbGlmIGxlbihuYW1lX3BhcnQpID49IDI6CisgICAgICAgIG5hbWVzcGFjZSA9ICcuJy5qb2luKG5hbWVfcGFydFs6LTFdKQorICAgICAgICBuYW1lID0gbmFtZV9wYXJ0Wy0xXQorCisgICAgdmFsdWUgPSBuYW1lX2FuZF92YWx1ZVsxXQorICAgIHBrX3ZhbHVlID0gc2Ruc2gudW5pcXVlX2tleV9mcm9tX25vbl91bmlxdWUoW25hbWVzcGFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNkbnNoLmdldF9jdXJyZW50X21vZGVfb2JqKCldKQorICAgIHRyeToKKyAgICAgICAgc2Ruc2guZ2V0X29iamVjdF9mcm9tX3N0b3JlKG9ial90eXBlLCBwa192YWx1ZSkKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kU2VtYW50aWNFcnJvcignJXMgTm8gc3VjaCB0YWcgJXMnICUgKG9ial90eXBlLCB0YWcpKQorCisgICAgc2Ruc2gucmVzdF9kZWxldGVfb2JqZWN0KG9ial90eXBlLCBwa192YWx1ZSkKKworICAgICMgd2l0aCB0aGF0IGVudHJ5IHJlbW92ZWQsIGNoZWNrIHRvIHNlZSBpZiBhbnkgb3RoZXIKKyAgICAjIGZvcmVpZ24ga2V5cyBhc3NvY2FpdGVkIHdpdGggY2xhc3MgVGFnIGV4aXN0LgorCisgICAgZmtfdmFsdWUgPSBzZG5zaC51bmlxdWVfa2V5X2Zyb21fbm9uX3VuaXF1ZShbbmFtZXNwYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVdKQorCisgICAgZm9yIHRhZ19maWVsZHMgaW4gbWkuZm9yZWlnbl9rZXlfeHJlZlsndGFnJ106CisgICAgICAgIGZvciAoZmtfb2JqX3R5cGUsIGZrX25hbWUpIGluIG1pLmZvcmVpZ25fa2V5X3hyZWZbJ3RhZyddW3RhZ19maWVsZHNdOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKGZrX29ial90eXBlLCBma19uYW1lLCBma192YWx1ZSkKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBicmVhaworICAgIGVsc2U6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNkbnNoLnJlc3RfZGVsZXRlX29iamVjdCgndGFnJywgZmtfdmFsdWUpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kU2VtYW50aWNFcnJvcignYmFzZSB0YWcgbWlzc2luZycgJSBma192YWx1ZSkKKworCitkZWYgY29tbWFuZF9yZXN0X3Bvc3RfZGF0YShwYXRoLCBkYXRhPU5vbmUsIHZlcmI9J1BVVCcpOgorICAgICIiIgorICAgICIiIgorICAgIHVybCA9ICdodHRwOi8vJXMvcmVzdC92MS8lcycgJSAoc2Ruc2guY29udHJvbGxlciwgcGF0aCkKKyAgICByZXN1bHQgPSBzZG5zaC5yZXN0X3Bvc3RfcmVxdWVzdCh1cmwsIGRhdGEsIHZlcmIpCisgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorICAgIHJldHVybiBOb25lCisKKworZGVmIGNvbW1hbmRfY2xpX3ZhcmlhYmxlc19zZXQodmFyaWFibGUsIHZhbHVlLCBkYXRhKToKKyAgICBnbG9iYWwgc2Ruc2gKKworICAgIGlmIHZhcmlhYmxlID09ICdkZWJ1Zyc6CisgICAgICAgIHByaW50ICcqKioqKiAlcyBjbGkgZGVidWcgKioqKionICUgXAorICAgICAgICAgICAgICAgICgnRW5hYmxlZCcgaWYgdmFsdWUgZWxzZSAnRGlzYWJsZWQnKQorICAgICAgICBzZG5zaC5kZWJ1ZyA9IHZhbHVlCisgICAgZWxpZiB2YXJpYWJsZSA9PSAnY2xpLWJhY2t0cmFjZSc6CisgICAgICAgIHByaW50ICcqKioqKiAlcyBjbGkgZGVidWcgYmFja3RyYWNlICoqKioqJyAlIFwKKyAgICAgICAgICAgICAgICAoJ0VuYWJsZWQnIGlmIHZhbHVlIGVsc2UgJ0Rpc2FibGVkJykKKyAgICAgICAgc2Ruc2guZGVidWdfYmFja3RyYWNlID0gdmFsdWUKKyAgICBlbGlmIHZhcmlhYmxlID09ICdjbGktYmF0Y2gnOgorICAgICAgICBwcmludCAnKioqKiogJXMgY2xpIGJhdGNoIG1vZGUgKioqKionICUgXAorICAgICAgICAgICAgICAgICgnRW5hYmxlZCcgaWYgdmFsdWUgZWxzZSAnRGlzYWJsZWQnKQorICAgICAgICBzZG5zaC5iYXRjaCA9IHZhbHVlCisgICAgZWxpZiB2YXJpYWJsZSA9PSAnZGVzY3JpcHRpb24nOgorICAgICAgICBwcmludCAnKioqKiogJXMgY29tbWFuZCBkZXNjcmlwdGlvbiBtb2RlICoqKioqJyAlIFwKKyAgICAgICAgICAgICAgICAoJ0VuYWJsZWQnIGlmIHZhbHVlIGVsc2UgJ0Rpc2FibGVkJykKKyAgICAgICAgc2Ruc2guZGVzY3JpcHRpb24gPSB2YWx1ZQorICAgIGVsaWYgdmFyaWFibGUgPT0gJ3Jlc3QnOgorICAgICAgICBpZiAncmVjb3JkJyBpbiBkYXRhIGFuZCB2YWx1ZToKKyAgICAgICAgICAgIHByaW50ICcqKioqKiBFYW5ibGVkIHJlc3QgcmVjb3JkIG1vZGUgJXMgKioqKionICUgXAorICAgICAgICAgICAgICAgIChkYXRhWydyZWNvcmQnXSkKKyAgICAgICAgICAgIHVybF9jYWNoZS5yZWNvcmQoZGF0YVsncmVjb3JkJ10pCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgcHJpbnQgJyoqKioqICVzIGRpc3BsYXkgcmVzdCBtb2RlICoqKioqJyAlIFwKKyAgICAgICAgICAgICAgICAoJ0VuYWJsZWQnIGlmIHZhbHVlIGVsc2UgJ0Rpc2FibGVkJykKKyAgICAgICAgaWYgJ2RldGFpbCcgaW4gZGF0YSBhbmQgZGF0YVsnZGV0YWlsJ10gPT0gJ2RldGFpbHMnOgorICAgICAgICAgICAgaWYgdmFsdWUgPT0gVHJ1ZToKKyAgICAgICAgICAgICAgICBzZG5zaC5kaXNwbHlfcmVzdF9kZXRhaWwgPSB2YWx1ZQorICAgICAgICAgICAgICAgIHNkbnNoLnN0b3JlLmRpc3BsYXlfcmVwbHlfbW9kZSh2YWx1ZSkKKyAgICAgICAgc2Ruc2guZGlzcGxheV9yZXN0ID0gdmFsdWUKKyAgICAgICAgc2Ruc2guc3RvcmUuZGlzcGxheV9tb2RlKHZhbHVlKQorICAgICAgICBpZiB2YWx1ZSA9PSBGYWxzZToKKyAgICAgICAgICAgIHNkbnNoLmRpc3BseV9yZXN0X2RldGFpbCA9IHZhbHVlCisgICAgICAgICAgICBzZG5zaC5zdG9yZS5kaXNwbGF5X3JlcGx5X21vZGUodmFsdWUpCisgICAgICAgICAgICB1cmxfY2FjaGUucmVjb3JkKE5vbmUpCisgICAgZWxpZiB2YXJpYWJsZSA9PSAnc2V0JzoKKyAgICAgICAgaWYgJ2xlbmd0aCcgaW4gZGF0YToKKyAgICAgICAgICAgIHNkbnNoLmxlbmd0aCA9IHV0aWYudHJ5X2ludChkYXRhWydsZW5ndGgnXSkKKworCitkZWYgY29tbWFuZF9jbGlfc2V0KHZhcmlhYmxlLCBkYXRhKToKKyAgICBjb21tYW5kX2NsaV92YXJpYWJsZXNfc2V0KHZhcmlhYmxlLCBUcnVlLCBkYXRhKQorCitkZWYgY29tbWFuZF9jbGlfdW5zZXQodmFyaWFibGUsIGRhdGEpOgorICAgIGNvbW1hbmRfY2xpX3ZhcmlhYmxlc19zZXQodmFyaWFibGUsIEZhbHNlLCBkYXRhKQorCisKK2RlZiBjb21tYW5kX3NoZWxsX2NvbW1hbmQoc2NyaXB0KToKKworICAgIGRlZiBzaGVsbChhcmdzKToKKyAgICAgICAgc3VicHJvY2Vzcy5jYWxsKFsiZW52IiwgIlNIRUxMPS9iaW4vYmFzaCIsICIvYmluL2Jhc2giXSArIGxpc3QoYXJncyksCisgICAgICAgICAgICAgICAgICAgICAgICBjd2Q9b3MuZW52aXJvbi5nZXQoIkhPTUUiKSkKKyAgICAgICAgcHJpbnQKKworICAgIHByaW50ICJcbioqKioqIFdhcm5pbmc6IHRoaXMgaXMgYSBkZWJ1ZyBjb21tYW5kIC0gdXNlIGNhdXRpb24hICoqKioqIgorICAgIGlmIHNjcmlwdCA9PSAnYmFzaCc6CisgICAgICAgIHByaW50ICcqKioqKiBUeXBlICJleGl0IiBvciBDdHJsLUQgdG8gcmV0dXJuIHRvIHRoZSBDTEkgKioqKipcbicKKyAgICAgICAgc2hlbGwoWyItbCIsICItaSJdKQorICAgIGVsaWYgc2NyaXB0ID09ICdweXRob24nOgorICAgICAgICBwcmludCAnKioqKiogVHlwZSAiZXhpdCgpIiBvciBDdHJsLUQgdG8gcmV0dXJuIHRvIHRoZSBDTEkgKioqKipcbicKKyAgICAgICAgc2hlbGwoWyItbCIsICItYyIsICJweXRob24iXSkKKyAgICBlbGlmIHNjcmlwdCA9PSAnY2Fzc2FuZHJhLWNsaSc6CisgICAgICAgIHByaW50ICcqKioqKiBUeXBlICJleGl0IiBvciBDdHJsLUQgdG8gcmV0dXJuIHRvIHRoZSBDTEkgKioqKipcbicKKyAgICAgICAgc2hlbGwoWyItbCIsICItYyIsICIvb3B0L3NkbnBsYXRmb3JtL2RiL2Jpbi9jYXNzYW5kcmEtY2xpIC0taG9zdCBsb2NhbGhvc3QiXSkKKyAgICBlbGlmIHNjcmlwdCA9PSAnbmV0Y29uZmlnJzoKKyAgICAgICAgaWYgbm90IHJlLm1hdGNoKCIvZGV2L3R0eVM/W1xkXSskIiwgb3MudHR5bmFtZSgwKSk6CisgICAgICAgICAgICBwcmludCAnKioqKiogWW91IHNlZW0gdG8gYmUgY29ubmVjdGVkIHZpYSBTU0ggb3IgYW5vdGhlciByZW1vdGUgcHJvdG9jb2w7JworICAgICAgICAgICAgcHJpbnQgJyoqKioqIHJlY29uZmlndXJpbmcgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIG1heSBkaXNydXB0IHRoZSBjb25uZWN0aW9uIScKKyAgICAgICAgcHJpbnQgJ1xuKFByZXNzIENvbnRyb2wtQyBub3cgdG8gbGVhdmUgdGhlIG5ldHdvcmsgY29uZmlndXJhdGlvbiB1bmNoYW5nZWQpXG4nCisgICAgICAgIHN1YnByb2Nlc3MuY2FsbChbInN1ZG8iLAorICAgICAgICAgICAgICAgICAgICAgICAgICJlbnYiLAorICAgICAgICAgICAgICAgICAgICAgICAgICJTSEVMTD0vYmluL2Jhc2giLAorICAgICAgICAgICAgICAgICAgICAgICAgICIvb3B0L3NkbnBsYXRmb3JtL3N5cy9iaW4vYnNjbmV0Y29uZmlnIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAiZXRoMCJdLAorICAgICAgICAgICAgICAgICAgICAgICAgIGN3ZD1vcy5lbnZpcm9uLmdldCgiSE9NRSIpKQorICAgIGVsc2U6CisgICAgICAgICMgWFhYIHBvc3NpYmx5IHJ1biB0aGUgc2NyaXB0IGRpcmVjdGx5PworICAgICAgICBwcmludCAiVW5rbm93biBkZWJ1ZyBjaG9pY2UgJXMiICUgc2NyaXB0CisKKworZGVmIGNvbW1hbmRfcHJvbXB0X3VwZGF0ZSgpOgorICAgICIiIgorICAgIEFjdGlvbiB0byByZWNvbXB1dGUgdGhlIHByb21wdCwgdXNlZCB3aGVuIHRoZXJlJ3Mgc29tZSBwb3NzaWJpbGl0eQorICAgIHRoZSBwcm9tcHQgaGFzIGNoYW5nZXMgYWZ0ZXIgc29tZSBvdGhlciBhY3Rpb24gKGhvc3RuYW1lIHVwZGF0ZSwgZm9yIGV4YW1wbGUpCisgICAgIiIiCisgICAgc2Ruc2guc2V0X2NvbnRyb2xsZXJfZm9yX3Byb21wdCgpCisgICAgc2Ruc2gudXBkYXRlX3Byb21wdCgpCisKK2RlZiBjb21tYW5kX2NvbnRyb2xsZXJfZGVjb21taXNzaW9uKGRhdGEpOgorICAgICIiIgorICAgIERlY29tbWlzc2lvbiB0aGUgY29udHJvbGxlciB1c2luZyB0aGUgUkVTVCBBUEkKKyAgICAiIiIKKyAgICBpZCA9IGRhdGEuZ2V0KCdpZCcpCisgICAgY29uZmlybV9yZXF1ZXN0KCJEZWNvbW1pc3Npb24gY29udHJvbGxlciAnJXMnP1xuKHllcyB0byBjb250aW51ZSkgIiAlIGlkKQorCisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgdXJsID0gJ2h0dHA6Ly8lcy9yZXN0L3YxL3N5c3RlbS9oYS9kZWNvbW1pc3Npb24nICUgKHNkbnNoLmNvbnRyb2xsZXIpCisgICAgICAgIHJlc3VsdCA9IHNkbnNoLnJlc3RfcG9zdF9yZXF1ZXN0KHVybCwgeyJpZCI6IGlkfSwgJ1BVVCcpCisgICAgICAgIHN0YXR1cyA9IGpzb24ubG9hZHMocmVzdWx0KQorCisgICAgICAgIGlmIChzdGF0dXNbJ3N0YXR1cyddID09ICdPSycpIGFuZCBzdGF0dXNbJ2Rlc2NyaXB0aW9uJ10uZW5kc3dpdGgoJ2lzIGFscmVhZHkgZGVjb21taXNzaW9uZWQnKSA9PSBUcnVlOgorICAgICAgICAgICAgcHJpbnQgJ0RlY29tbWlzc2lvbiBmaW5pc2hlZCcKKyAgICAgICAgICAgIHByaW50CisgICAgICAgICAgICBicmVhaworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJpbnQgJ0RlY29tbWlzc2lvbiBpbiBwcm9ncmVzcycKKyAgICAgICAgICAgIAorICAgICAgICB0aW1lLnNsZWVwKDEwKQorCitkZWYgY29tbWFuZF9jb250cm9sbGVyX3VwZ3JhZGUoZGF0YSA9IE5vbmUpOgorICAgICIiIgorICAgIFVwZ3JhZGUgdGhlIGNvbnRyb2xsZXIgdXNpbmcgdGhlIFJFU1QgQVBJCisgICAgIiIiCisKKyAgICBmb3JjZSA9ICdmb3JjZScgaW4gZGF0YQorICAgIGRldGFpbHMgPSAnZGV0YWlscycgaW4gZGF0YQorCisgICAgaWYgZm9yY2U6CisgICAgICAgIHByaW50ICJXQVJOSU5HOiBJZ25vcmluZyBhbnkgdmFsaWRhdGlvbiBlcnJvcnMgZHVyaW5nIHVwZ3JhZGUiCisgICAgdXJsID0gImh0dHA6Ly8lcy9yZXN0L3YxL3N5c3RlbS91cGdyYWRlL2ltYWdlLW5hbWUiICUgc2Ruc2guY29udHJvbGxlcgorICAgIHJlc3VsdCA9IHNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QodXJsKQorICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCkKKyAgICBpbmFtZSA9IGpzb24ubG9hZHMocmVzdWx0KQorICAgIGlmIChpbmFtZVsnZmlsZSddIGlzIE5vbmUgb3IgaW5hbWVbJ2ZpbGUnXSA9PSAiIik6CisgICAgICAgIHByaW50ICJFcnJvcjogTm8gdXBncmFkZSBpbWFnZSBwcmVzZW50LiIKKyAgICAgICAgcHJpbnQgIiIKKyAgICAgICAgcHJpbnQgIiIiVG8gcGVyZm9ybSB1cGdyYWRlLCBhbiB1cGdyYWRlIGltYWdlIHBhY2thZ2UgbmVlZHMgdG8gYmUgdXBsb2FkZWQgKHdpdGggc2NwKSB0byB0aGUgY29udHJvbGxlcidzIFwiaW1hZ2VzXCIgdXNlci4iIiIKKyAgICAgICAgcHJpbnQgIiIiVXBncmFkZSBpbWFnZSBwYWNrYWdlIGlzIGEgZmlsZSB3aXRoIG5hbWUgb2YgZm9ybWF0IFwidXBncmFkZS1ZWVlZLk1NLkRELlhYWFgucGtnXCIuIiIiCisgICAgICAgIHByaW50ICIiCisgICAgICAgIHByaW50ICJGb2xsb3dpbmcgaXMgYW4gZXhhbXBsZSB0byBwcmVwYXJlIHVwZ3JhZGUgZm9yIGNvbnRyb2xsZXIgd2l0aCBJUCBhZGRyZXNzIDE5Mi4xNjguNjcuMTQxOiIKKyAgICAgICAgcHJpbnQgInNjcCAkcGF0aC91cGdyYWRlLTIwMTMuMDIuMTMuMDkyMS5wa2cgaW1hZ2VzQDE5Mi4xNjguNjcuMTQxOiIKKyAgICAgICAgcHJpbnQgIiIKKyAgICAgICAgcmV0dXJuCisKKyAgICBjb25maXJtX3JlcXVlc3QoIlVwZ3JhZGUgY29udHJvbGxlciBmcm9tIGltYWdlICclcyc/XG4oeWVzIHRvIGNvbnRpbnVlKSAiCisgICAgICAgICAgICAgICAgICAgICUgaW5hbWVbJ2ZpbGUnXSkKKyAgICAKKyAgICB1cmwgPSAiaHR0cDovLyVzL3Jlc3QvdjEvc3lzdGVtL3VwZ3JhZGUvZXh0cmFjdC1pbWFnZS1tYW5pZmVzdCIgJSBzZG5zaC5jb250cm9sbGVyCisgICAgcmVzdWx0ID0gc2Ruc2guc3RvcmUucmVzdF9zaW1wbGVfcmVxdWVzdCh1cmwpCisgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorICAgIG1hbmlmZXN0ID0ganNvbi5sb2FkcyhyZXN1bHQpCisKKyAgICBwcmludCAiRXhlY3V0aW5nIHVwZ3JhZGUuLi4iCisgICAgZm9yIHN0ZXAgaW4gbWFuaWZlc3Q6CisgICAgICAgIHByaW50ICIlcyAtICVzIiAlIChzdGVwWydzdGVwJ10sIHN0ZXBbJ2Rlc2NyaXB0aW9uJ10pCisgICAgICAgIHVybCA9ICdodHRwOi8vJXMvcmVzdC92MS9zeXN0ZW0vdXBncmFkZS9leGVjdXRlLXVwZ3JhZGUtc3RlcCcgJSBcCisgICAgICAgICAgICAoc2Ruc2guY29udHJvbGxlcikKKyAgICAgICAgcmVzdWx0ID0gc2Ruc2gucmVzdF9wb3N0X3JlcXVlc3QodXJsLCB7InN0ZXAiOiBzdGVwWydzdGVwJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJpbWFnZU5hbWUiOiBpbmFtZVsnZmlsZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZm9yY2UiOiBmb3JjZX0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUFVUJykKKyAgICAgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorICAgICAgICBzdGF0dXMgPSBqc29uLmxvYWRzKHJlc3VsdCkKKyAgICAgICAgCisgICAgICAgIGlmIChzdGF0dXNbJ3N0YXR1cyddID09ICJPSyIpOgorICAgICAgICAgICAgcHJpbnQgIiAgU3VjY2VlZGVkIgorICAgICAgICAgICAgaWYgZGV0YWlsczoKKyAgICAgICAgICAgICAgICBwcmludCAiXG5EZXRhaWxlZCBvdXRwdXQ6IgorICAgICAgICAgICAgICAgIHByaW50IHN0YXR1c1snZGVzY3JpcHRpb24nXQorICAgICAgICAgICAgICAgIHByaW50CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCAiICBGYWlsZWQgdG8gZXhlY3V0ZSB1cGdyYWRlIHN0ZXAgJWQiICUgc3RlcFsnc3RlcCddCisgICAgICAgICAgICBwcmludCAiXG5EZXRhaWxlZCBvdXRwdXQ6IgorICAgICAgICAgICAgcHJpbnQgc3RhdHVzWydkZXNjcmlwdGlvbiddCisgICAgICAgICAgICBwcmludAorICAgICAgICAgICAgcmV0dXJuCisKKyAgICBwcmludCAiIiJDb250cm9sbGVyIG5vZGUgdXBncmFkZSBjb21wbGV0ZS4KK1VwZ3JhZGUgd2lsbCBub3QgdGFrZSBlZmZlY3QgdW50aWwgc3lzdGVtIGlzIHJlYm9vdGVkLiBVc2UgJ3JlbG9hZCcgdG8KK3JlYm9vdCB0aGlzIGNvbnRyb2xsZXIgbm9kZS4gVG8gcmV2ZXJ0LCBzZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGltYWdlIAorZnJvbSB0aGUgYm9vdCBtZW51IiIiCisKK2RlZiBjb21tYW5kX2NsdXN0ZXJfY29uZmlnX3JvbGxiYWNrKGRhdGEpOgorICAgIHBhdGggPSAnJworICAgIGlmIGRhdGEuZ2V0KCdkaXInKSA9PSAnaW1hZ2VzOi8vJzoKKyAgICAgICAgcGF0aCArPSAnL2hvbWUvaW1hZ2VzLycKKyAgICBlbGlmIGRhdGEuZ2V0KCdkaXInKSA9PSAnc2F2ZWQtY29uZmlnczovLyc6CisgICAgICAgIHBhdGggKz0gJy9vcHQvc2RucGxhdGZvcm0vcnVuL3NhdmVkLWNvbmZpZ3MvJworICAgIHBhdGggKz0gZGF0YS5nZXQoJ2ZpbGUnKQorCisgICAgdXJsID0gImh0dHA6Ly8lcy9yZXN0L3YxL3N5c3RlbS9oYS9yb2xlIiAlIHNkbnNoLmNvbnRyb2xsZXIKKyAgICByZXN1bHQgPSBzZG5zaC5zdG9yZS5yZXN0X3NpbXBsZV9yZXF1ZXN0KHVybCwgdXNlX2NhY2hlID0gRmFsc2UpCisgICAgaGFfcm9sZSA9IGpzb24ubG9hZHMocmVzdWx0KQorICAgIGlmIGhhX3JvbGVbJ3JvbGUnXSAhPSAnTUFTVEVSJzoKKyAgICAgICAgcHJpbnQgIkNvbW1hbmQgY2FuIG9ubHkgYmUgcnVuIG9uIE1hc3RlciIKKyAgICAgICAgcmV0dXJuCisgICAKKyAgICBjb21tYW5kX2xlZ2FjeV9jbGkoJ2NvcHknLCB7J2Rlc3QnOiAnZmlsZTovL3J1bm5pbmctY29uZmlnLWNvcHknLCAnc291cmNlJzogJ3J1bm5pbmctY29uZmlnJ30pCisgICAgcHJpbnQgIklORk86IENoZWNraW5nIGNvbmZpZyAnJXMnIiAlIHBhdGgKKyAgICB1cmwgPSAiaHR0cDovLyVzL3Jlc3QvdjEvc3lzdGVtL3JvbGxiYWNrL2RpZmZjb25maWciICUgc2Ruc2guY29udHJvbGxlcgorICAgIHJlc3VsdCA9IHNkbnNoLnJlc3RfcG9zdF9yZXF1ZXN0KHVybCwgeyJjb25maWctMSI6ICIvb3B0L3NkbnBsYXRmb3JtL3J1bi9zYXZlZC1jb25maWdzL3J1bm5pbmctY29uZmlnLWNvcHkiLCAiY29uZmlnLTIiOiBwYXRofSwgJ1BVVCcpCisgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0KQorICAgIGlmIGpzb24ubG9hZHMocmVzdWx0KVsnb3V0J10uc3RhcnRzd2l0aCgnRm91bmQgZGlmZmVyZW5jZXMnKToKKyAgICAgICAgcHJpbnQganNvbi5sb2FkcyhyZXN1bHQpWydvdXQnXQorICAgICAgICBwcmludCAiUm9sbGJhY2sgYWJvcnRlZCIKKyAgICAgICAgcmV0dXJuCisgICAgICAgIAorICAgIHVybCA9ICJodHRwOi8vJXMvcmVzdC92MS9zeXN0ZW0vY29udHJvbGxlciIgJSBzZG5zaC5jb250cm9sbGVyCisgICAgcmVzdWx0ID0gc2Ruc2guc3RvcmUucmVzdF9zaW1wbGVfcmVxdWVzdCh1cmwsIHVzZV9jYWNoZSA9IEZhbHNlKQorICAgIGNvbnRyb2xsZXJfaWQgPSBqc29uLmxvYWRzKHJlc3VsdClbJ2lkJ10KKworICAgIHVybCA9ICJodHRwOi8vJXMvcmVzdC92MS9tb2RlbC9jb250cm9sbGVyLWludGVyZmFjZT9jb250cm9sbGVyPSVzIiAlIChzZG5zaC5jb250cm9sbGVyLCBjb250cm9sbGVyX2lkKQorICAgIHJlc3VsdCA9IHNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QodXJsKQorICAgIGxvY2FsX2lmYWNlID0ganNvbi5sb2FkcyhyZXN1bHQpWzBdWydkaXNjb3ZlcmVkLWlwJ10KKyAgICAKKyAgICB1cmwgPSAiaHR0cDovLyVzL3Jlc3QvdjEvbW9kZWwvY29udHJvbGxlci1pbnRlcmZhY2UiICUgc2Ruc2guY29udHJvbGxlcgorICAgIHJlc3VsdCA9IHNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QodXJsKQorICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCkKKyAgICBpZmFjZXMgPSBqc29uLmxvYWRzKHJlc3VsdCkKKworICAgIG5vZGVDb3VudCA9IGxlbihpZmFjZXMpCisgICAgY3V0b3ZlciA9IG5vZGVDb3VudC8yCisgICAgaWYgbm9kZUNvdW50JTIgPT0gMToKKyAgICAgICAgY3V0b3ZlciA9IGN1dG92ZXIgKyAxCisgICAgCisgICAgcm9sbGJhY2tlZE5vZGVzID0gW10KKworICAgICMgcmVtb3ZlIGFuZCBhZGQgb2JqZWN0IGZvciBsb2NhbCBub2RlIGF0IHRoZSBlbmQgb2YgdGhlIGxpc3QKKyAgICBmb3IgaW5kZXgsIGlmYWNlIGluIGVudW1lcmF0ZShpZmFjZXMpOgorICAgICAgICBpZiBpZmFjZVsnZGlzY292ZXJlZC1pcCddID09IGxvY2FsX2lmYWNlOgorICAgICAgICAgICAgYnJlYWsKKyAgICBkZWwgaWZhY2VzW2luZGV4XQorICAgIGlmYWNlcy5hcHBlbmQoaWZhY2UpCisKKyAgICBjb25maWc9b3BlbihwYXRoLCAncicpLnJlYWQoKQorICAgIHVybCA9ICdodHRwOi8vJXMvcmVzdC92MS9zeXN0ZW0vdXBsb2FkLWRhdGEnICUgaWZhY2VzWzBdWydkaXNjb3ZlcmVkLWlwJ10KKyAgICByZXN1bHQgPSBzZG5zaC5yZXN0X3Bvc3RfcmVxdWVzdCh1cmwsIHsiZGF0YSI6IGNvbmZpZywgImRzdCIgOiAiL3RtcC9yb2xsYmFjay5jb25mIn0sICdQVVQnKQorICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCkKKyAgICAKKyAgICB3aGlsZSBsZW4oaWZhY2VzKSA+IDA6CisgICAgICAgIGlmIHNkbnNoLmJhdGNoID09IEZhbHNlOgorICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICBjb25maXJtID0gcmF3X2lucHV0KCJSb2xsYmFjayBjb250cm9sbGVyIGF0ICclcycuIFt5ZXMvbm9dID8iICUgaWZhY2VzWzBdWydkaXNjb3ZlcmVkLWlwJ10pCisgICAgICAgICAgICAgICAgaWYgY29uZmlybS5sb3dlcigpID09ICduJyBvciBjb25maXJtLmxvd2VyKCkgPT0gJ25vJzoKKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKHJvbGxiYWNrZWROb2RlcykgPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJJTkZPOiBSb2xsYmFjayBhYm9ydGVkIgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgIklORk86IFVuZG9pbmcgUm9sbGJhY2sgb24gcHJldmlvdXNseSByb2xsYmFja2VkIG5vZGVzIgorICAgICAgICAgICAgICAgICAgICBmb3Igbm9kZSBpbiByb2xsYmFja2VkTm9kZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiSU5GTzogUmVzZXR0aW5nIGRhdGFiYXNlIG9uICclcyciICUgbm9kZVsnZGlzY292ZXJlZC1pcCddCisgICAgICAgICAgICAgICAgICAgICAgICB1cmwgPSAnaHR0cDovLyVzL3Jlc3QvdjEvc3lzdGVtL3Jlc2V0YnNjJyAlIChub2RlWydkaXNjb3ZlcmVkLWlwJ10pCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZG5zaC5yZXN0X3Bvc3RfcmVxdWVzdCh1cmwsIHt9LCAnUFVUJykKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJJTkZPOiBSZWJvb3RpbmcgJyVzJyIgJSBub2RlWydkaXNjb3ZlcmVkLWlwJ10KKyAgICAgICAgICAgICAgICAgICAgICAgIHVybCA9ICdodHRwOi8vJXMvcmVzdC92MS9zeXN0ZW0vcmVsb2FkJyAlIChub2RlWydkaXNjb3ZlcmVkLWlwJ10pCisgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZG5zaC5yZXN0X3Bvc3RfcmVxdWVzdCh1cmwsIHt9LCAnR0VUJykKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIGxlbihyb2xsYmFja2VkTm9kZXMpID49IGN1dG92ZXI6CisgICAgICAgICAgICAgICAgICAgICAgICAjIGRlbGV0ZSB0aGUgUkVKRUNUIHJ1bGVzCisgICAgICAgICAgICAgICAgICAgICAgICB1cmw9Imh0dHA6Ly9sb2NhbGhvc3QvcmVzdC92MS9tb2RlbC9maXJld2FsbC1ydWxlP3BvcnQ9NjYzMyIKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNkbnNoLnJlc3RfcG9zdF9yZXF1ZXN0KHVybCwge30sICdERUxFVEUnKQorICAgICAgICAgICAgICAgICAgICAgICAgIyBlbmFibGUgYWxsb3cgb3BlbmZsb3cgb24gYWxsIGNvbnRyb2xsZXJzIG5vdCByb2xsYmFja2VkLgorICAgICAgICAgICAgICAgICAgICAgICAgdXJsPSJodHRwOi8vbG9jYWxob3N0L3Jlc3QvdjEvbW9kZWwvZmlyZXdhbGwtcnVsZSIKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpZmFjZSBpbiBpZmFjZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGtfaWQgPSAnJXN8RXRoZXJuZXR8MCcgJSBpZmFjZVsnY29udHJvbGxlciddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbic6ICdhbGxvdycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnRlcmZhY2UnOiBwa19pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy1pcCc6ICcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9ydCc6ICc2NjMzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb3RvJzogJ3RjcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2cnJwLWlwJzogJycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJJTkZPOiByZS1hbGxvdyBvcGVuZmxvdyBvbiAlcyIgJSBpZmFjZVsnZGlzY292ZXJlZC1pcCddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2Ruc2gucmVzdF9wb3N0X3JlcXVlc3QodXJsLCBkYXRhLCAnUFVUJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja19yZXN0X3Jlc3VsdChyZXN1bHQpCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICBwcmludCAiUm9sbGJhY2sgYWJvcnRlZCIKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAgZWxpZiBjb25maXJtLmxvd2VyKCkgPT0gJ3knIG9yIGNvbmZpcm0ubG93ZXIoKSA9PSAneWVzJzoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgCisgICAgICAgIHVybCA9ICdodHRwOi8vJXMvcmVzdC92MS9zeXN0ZW0vcm9sbGJhY2svY29uZmlnJyAlIChpZmFjZXNbMF1bJ2Rpc2NvdmVyZWQtaXAnXSkKKyAgICAgICAgcmVzdWx0ID0gc2Ruc2gucmVzdF9wb3N0X3JlcXVlc3QodXJsLCB7InBhdGgiOiAiL3RtcC9yb2xsYmFjay5jb25mIn0sICdQVVQnKQorICAgICAgICBjaGVja19yZXN0X3Jlc3VsdChyZXN1bHQpCisgICAgICAgIHRpbWUuc2xlZXAoMTApCisgICAgICAgCisgICAgICAgIHByaW50ICJJTkZPOiBSZWJvb3RpbmcgIiwgaWZhY2VzWzBdWydkaXNjb3ZlcmVkLWlwJ10KKyAgICAgICAgdXJsID0gImh0dHA6Ly8lcy9yZXN0L3YxL3N5c3RlbS9yZWxvYWQiICUgaWZhY2VzWzBdWydkaXNjb3ZlcmVkLWlwJ10KKyAgICAgICAgcmVzdWx0ID0gc2Ruc2guc3RvcmUucmVzdF9zaW1wbGVfcmVxdWVzdCh1cmwpCisgICAgICAgIAorICAgICAgICBpZiBpZmFjZXNbMF1bJ2Rpc2NvdmVyZWQtaXAnXSA9PSBsb2NhbF9pZmFjZToKKyAgICAgICAgICAgIGJyZWFrCisgICAgICAgIAorICAgICAgICBwcmludCAiSU5GTzogV2FpdGluZyBmb3IgJXMgdG8gY29tZSBiYWNrIHVwIiAlIGlmYWNlc1swXVsnZGlzY292ZXJlZC1pcCddCisgICAgICAgIHVybCA9ICJodHRwOi8vJXMvcmVzdC92MS9zeXN0ZW0vaGEvcm9sZSIgJSBpZmFjZXNbMF1bJ2Rpc2NvdmVyZWQtaXAnXQorICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgdGltZS5zbGVlcCgzMCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzZG5zaC5zdG9yZS5yZXN0X3NpbXBsZV9yZXF1ZXN0KHVybCwgdXNlX2NhY2hlID0gRmFsc2UpCisgICAgICAgICAgICAgICAgc3RhdHVzID0ganNvbi5sb2FkcyhyZXN1bHQpCisgICAgICAgICAgICAgICAgaWYgc3RhdHVzWydyb2xlJ10gPT0gJ1NMQVZFJyBvciBzdGF0dXNbJ3JvbGUnXSA9PSAnTUFTVEVSJzoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgIklORk86IFJvbGxiYWNrIGNvbXBsZXRlIG9uICclcyciICUgaWZhY2VzWzBdWydkaXNjb3ZlcmVkLWlwJ10KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBwcmludCAiSU5GTzogV2FpdGluZyBmb3IgMzAgc2Vjb25kcyIgCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcHJpbnQgIklORk86IFdhaXRpbmcgZm9yIDMwIHNlY29uZHMiIAorICAgICAgICAgICAgICAgIAorICAgICAgICAgCisgICAgICAgIGlmYWNlID0gaWZhY2VzLnBvcCgwKQorICAgICAgICByb2xsYmFja2VkTm9kZXMuYXBwZW5kKGlmYWNlKQorCisgICAgcHJpbnQgIlJvbGxiYWNrIGNvbXBsZXRlZCIKKworZGVmIGNvbW1hbmRfd2FpdF9mb3JfY29udHJvbGxlcihkZWxheSA9IE5vbmUsIHNkbnBsYXRmb3JtX2NoZWNrID0gRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhpbl9jb21tYW5kID0gRmFsc2UpOgorICAgICIiIgorICAgIEZvciB2YXJpb3VzIGNvbW1hbmRzLCBpdCBtYWtlcyBzZW5zZSBmb3IgdGhlIGNvbW1hbmQgdG8gdmVyaWZ5IHRoYXQKKyAgICB0aGUgY29udHJvbGxlciByZXN0YXJ0IGhhcyBiZWVuIGNvbXBsZXRlZC4gICBJbiB0aGUgc2l0dWF0aW9uIHdoZXJlCisgICAgYSBzaW5nbGUgY29udHJvbGxlciBpcyBjb25maWd1cmVkLCBpdCBhbHNvIG1ha2VzIHNlbnNlIHRvIHZlcmlmeSB0aGUKKyAgICBjb250cm9sbGVyIGlzIG5vdyBjb25maWd1cmVkIGFzIE1BU1RFUi4KKworICAgIFRoaXMgaXMgZXNwZWNpYWxseSB0cnVlIGZvciBjb21tYW5kIHdoaWNoIGFyZSBrbm93biB0byBjYXVzZSB0aGUKKyAgICBjb250cm9sbGVyIHRvIHJlc3RhcnQsIGZvciBleGFtcGUgdGhlICdmZWF0dXJlJyBjb21tYW5kLgorCisgICAgVGhlIHByb2NlZHVyZSBpcyBhbHNvIHVzZWQgZHVyaW5nIENMSSBzdGFydHVwIChzZWUgY2xpLnB5KQorICAgIHRvIHZlcmlmeSB0aGF0IHRoZSBjb250cm9sbGVyIGlzIGluIE1BU1RFUiBtb2RlLiAgSXRzIG5vcm1hbAorICAgIGZvciB0aGUgSEEgcm9sZSB0byB0cmFuc2l0aW9uIGZyb20gU0xBVkUgdG8gbWFzdGVyIGR1cmluZyAKKyAgICBzeXN0ZW0gc3RhcnR1cC4KKyAgICAiIiIKKworICAgICMgaWYgdGhlIENMSSB3YXMgc3RhcnRlZCB3aXRoIC0taW5pdCwgc2tpcCB0aGUgd2FpdCwgdGhlCisgICAgIyBjb250cm9sbGVyIGlzbid0IHJ1bm5pbmcuCisgICAgaWYgc2Ruc2gub3B0aW9ucy5pbml0OgorICAgICAgICByZXR1cm4KKyAgICAKKyAgICBkZWYgaXNfcmVhZHkoc2Ruc2gsIHZlcmJvc2UsIGR1cmF0aW9uKToKKyAgICAgICAgIiIiCisgICAgICAgIEJlIGxvdWQtYXMtX2VhbiB3aGVuIHRoZSBkdXJhdGlvbiBpcyBncmVhdGVyIHRoZW4gMTUgc2Vjb25kcy4KKyAgICAgICAgRGlzcGxheSB0aGUgZ29yeSBkZXRhaWxzIGZvciBhbGwgdG8ga25vdy4KKyAgICAgICAgIiIiCisgICAgICAgIHRvb19sb25nID0gOTAKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdXJsID0gImh0dHA6Ly8lcy9yZXN0L3YxL3N5c3RlbS9oYS9yb2xlIiAlIHNkbnNoLmNvbnRyb2xsZXIKKyAgICAgICAgICAgIHJlc3VsdCA9IHNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QodXJsLCB1c2VfY2FjaGUgPSBGYWxzZSkKKyAgICAgICAgICAgIGhhX3JvbGUgPSBqc29uLmxvYWRzKHJlc3VsdCkKKyAgICAgICAgICAgIGlmIGR1cmF0aW9uID4gdG9vX2xvbmc6CisgICAgICAgICAgICAgICAgcHJpbnQgJ0xvbmcgZGVsYXk6IHJlYXNvbicsIFwKKyAgICAgICAgICAgICAgICAgICAgJywgJy5qb2luKFsnJXM6ICVzJyAlIChuLHYpIGZvciAobix2KSBpbiBoYV9yb2xlLml0ZW1zKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB2ICE9ICcnXSkKKyAgICAgICAgICAgIGlmIChoYV9yb2xlWydyb2xlJ10gPT0gJ01BU1RFUicgb3IKKyAgICAgICAgICAgICAgICBzZG5zaC5maW5kX21hc3RlcigpWydtYXN0ZXInXSBpcyBub3QgTm9uZSk6CisgICAgICAgICAgICAgICAgaWYgdmVyYm9zZToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ0N1cnJlbnQgcm9sZSBpcyBNQVNURVInCisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBleGNlcHQgZXJyb3IuQ29tbWFuZFJlc3RFcnJvcixlOgorICAgICAgICAgICAgcHJpbnQgIlJFU1QgZXJyb3Igd2hpbGVVbmFibGUgdG8gZGV0ZXJtaW5lIGNvbnRyb2xsZXIgSEEgcm9sZS4iCisgICAgICAgICAgICBlcnJvcnMgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlLCBvYmpfdHlwZSkKKyAgICAgICAgICAgIHByaW50IHNlbGYucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKQorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGlmIGR1cmF0aW9uID4gdG9vX2xvbmc6CisgICAgICAgICAgICAgICAgcHJpbnQgJ01BU1RFUiBUcmFuc2l0aW9uIEZhaWx1cmU6ICcsIGUKKyAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAjIGlmIHRoaXMgaXNuJ3QgYSB0eXBpY2FsIGVudmlyb25tZW50IChpZTogcnVubmluZyByZW1vdGVseSkKKyAgICAjIGRvbid0IGJvdGhlciB0cnlpbmcgdG8gZGV0ZXJtaW5lIHRoZSByb2xlCisgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKCcvb3B0L3NkbnBsYXRmb3JtL2N1cnJlbnRfcm9sZScpOgorICAgICAgICByZXR1cm4KKyAgICAKKyAgICAjIG5vdyB2YWRhbGlkYXRlIHRoZSByZXN0IGFwaSBwb3J0IGlzIHdvcmtpbmcgCisgICAgaXBfYW5kX3BvcnQgPSBzZG5zaC5jb250cm9sbGVyLnNwbGl0KCc6JykKKyAgICBpZiBsZW4oaXBfYW5kX3BvcnQpID09IDI6CisgICAgICAgICMgZmlyc3QgZW5zdXJlIHRoZSBSRVNUIEFQSSBpcyBhbnN3ZXJpbmcKKyAgICAgICAgcyA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcy5jb25uZWN0KChpcF9hbmRfcG9ydFswXSwgaW50KGlwX2FuZF9wb3J0WzFdKSkpCisgICAgICAgICAgICBzLmNsb3NlKCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHByaW50ICdSRVNUIEFQSSBub3QgcnVubmluZywgZW1lcmdlbmN5IENMSSBhY2Nlc3MnCisgICAgICAgICAgICBpZiBzZG5zaC5kZWJ1ZzogIyBlbmFibGUgZGVidWcgdG8gc2VlIG1lc3NhZ2VzCisgICAgICAgICAgICAgICAgcHJpbnQgJ0V4Y2VwdGlvbjonLCBlCisgICAgICAgICAgICByZXR1cm4KKworICAgICMgaXNzdWUgYSBSRVNUIEFQSSByZXF1ZXN0IGRpcmVjdGVkIGF0IHRoZSBtb2RlbC4KKyAgICB0cnk6CisgICAgICAgIGVudHJ5ID0gc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoJ2ZlYXR1cmUnKQorICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgIHByaW50ICdSRVNUIEFQSS9EYXRhYmFzZSBub3QgcmVzcG9uZGluZywgZW1lcmdlbmN5IENMSSBhY2Nlc3MnCisgICAgICAgIGlmIHNkbnNoLmRlYnVnOiAjIGVuYWJsZSBkZWJ1ZyB0byBzZWUgbWVzc2FnZXMKKyAgICAgICAgICAgIHByaW50ICdFeGNlcHRpb246JywgZQorICAgICAgICByZXR1cm4gCisgICAgCisgICAgaWYgc2RucGxhdGZvcm1fY2hlY2s6CisgICAgICAgICMgdGhlIFJFU1QgQVBJIHJlcXVlc3QgZm9yIGhhLXJvbGUgd2lsbCByZXR1cm4gVU5BVkFJTEFCTEUKKyAgICAgICAgIyB3aGVuIHNkbnBsYXRmb3JtIGlzbid0IHJ1bm5pbmcuCisgICAgICAgIHVybCA9ICJodHRwOi8vJXMvcmVzdC92MS9zeXN0ZW0vaGEvcm9sZSIgJSBzZG5zaC5jb250cm9sbGVyCisgICAgICAgIHJlc3VsdCA9IHNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QodXJsLCB1c2VfY2FjaGUgPSBGYWxzZSkKKyAgICAgICAgaGFfcm9sZSA9IGpzb24ubG9hZHMocmVzdWx0KQorICAgICAgICBpZiBoYV9yb2xlWydyb2xlJ10gPT0gJ1VOQVZBSUxBQkxFJzoKKyAgICAgICAgICAgIHByaW50ICdSRVNUIEFQSS9TRE4gcGxhdGZvcm0gbm90IHJlc3BvbmRpbmcsIGVtZXJnZW5jeSBDTEkgYWNjZXNzJworICAgICAgICAgICAgcmV0dXJuIAorCisKKyAgICBpZiBkZWxheSA9PSBOb25lOgorICAgICAgICBkZWxheSA9IDEKKyAgICBkZWxheV9zdHIgPSAnYSBzZWMnIGlmIGRlbGF5ID09IDEgZWxzZSAnJWQgc2Vjb25kcycgJSBkZWxheQorCisgICAgZHVyYXRpb24gPSAwCisgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdmVyYm9zZSA9IEZhbHNlCisgICAgICAgICAgICB3aGlsZSBub3QgaXNfcmVhZHkoc2Ruc2gsIHZlcmJvc2UsIGR1cmF0aW9uKToKKyAgICAgICAgICAgICAgICBpZiB3aXRoaW5fY29tbWFuZDoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ1dhaXRpbmcgJXMgdG8gY29tcGxldGUgY29tbWFuZCBleGVjdXRpb24sICcgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAnSGl0IEN0cmwtQyB0byBleGl0IGVhcmx5JyAlIGRlbGF5X3N0cgorICAgICAgICAgICAgICAgICAgICB2ZXJib3NlID0gRmFsc2UKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBwcmludCAnV2FpdGluZyAlcyB3aGlsZSBjdXJyZW50IHJvbGUgaXMgU0xBVkUgbW9kZSwgJyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICdIaXQgQ3RybC1DIHRvIGV4aXQgZWFybHknICUgZGVsYXlfc3RyCisgICAgICAgICAgICAgICAgICAgIHZlcmJvc2UgPSBUcnVlCisgICAgICAgICAgICAgICAgdGltZS5zbGVlcChkZWxheSkKKyAgICAgICAgICAgICAgICBkdXJhdGlvbiArPSBkZWxheQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIGlmIGlzX3JlYWR5KHNkbnNoLCBUcnVlLCBkdXJhdGlvbik6CisgICAgICAgICAgICAgICAgaWYgZHVyYXRpb24gPiAxNToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ01BU1RFUiBUcmFuc2l0aW9uOiAlcyBzZWMnICUgZHVyYXRpb24KKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXNwID0gcmF3X2lucHV0KCdDb250cm9sbGVyIGlzIG5vdCB5ZXQgcmVhZHkuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0RvIHlvdSBzdGlsbCB3YW50IHRvIGNvbnRpbnVlIHRvIHRoZSBDTEk/IFtuXScpCisgICAgICAgICAgICAgICAgaWYgcmVzcCBhbmQgInllcyIuc3RhcnRzd2l0aChyZXNwLmxvd2VyKCkpOgorICAgICAgICAgICAgICAgICAgICBwcmludCAnQ29udGludWluZyB3aXRoIENMSSBkZXNwaXRlIGluaXRpYWxpemF0aW9uIGVycm9yIC4uLicKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICAgICAgcmV0dXJuCisKKworZGVmIGNvbW1hbmRfZmFjdG9yeV9kZWZhdWx0KCk6CisgICAgcHJpbnQgIlJlLXNldHRpbmcgY29udHJvbGxlciB0byBmYWN0b3J5IGRlZmF1bHRzIC4uLiIKKyAgICBvcy5zeXN0ZW0oInN1ZG8gL29wdC9zZG5wbGF0Zm9ybS9zeXMvYmluL3Jlc2V0YnNjIikKKyAgICByZXR1cm4KKworCitkZWYgY29tbWFuZF9kdW1wX2xvZyhkYXRhKToKKyAgICBjb250cm9sbGVyID0gZGF0YS5nZXQoJ2NvbnRyb2xsZXItbm9kZScpICMgY2FuIGJlIE5vbmUuCisgICAgY29udHJvbGxlcl9kaWN0ID0geyAnaWQnIDogY29udHJvbGxlciB9CisgICAgZm9yIGlwX3BvcnQgaW4gY29udHJvbGxlcl9pcF9hbmRfcG9ydChjb250cm9sbGVyX2RpY3QpOgorICAgICAgICBsb2dfbmFtZSA9IGRhdGFbJ2xvZy1uYW1lJ10KKyAgICAgICAgaWYgbG9nX25hbWUgPT0gJ2FsbCc6CisgICAgICAgICAgICB1cmwgPSBsb2dfdXJsKGlwX2FuZF9wb3J0ID0gaXBfcG9ydCkKKyAgICAgICAgICAgIGxvZ19uYW1lcyA9IGNvbW1hbmQuc2Ruc2gucmVzdF9zaW1wbGVfcmVxdWVzdF90b19kaWN0KHVybCkKKyAgICAgICAgICAgIGZvciBsb2cgaW4gbG9nX25hbWVzOgorICAgICAgICAgICAgICAgIHlpZWxkICcqJyAqIDQwICsgaXBfcG9ydCArICcgJyArIGxvZ1snbG9nJ10gKyAnXG4nCisgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gY29tbWFuZF9kdW1wX2xvZyh7ICdsb2ctbmFtZScgOiBsb2dbJ2xvZyddIH0pOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCBpdGVtCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIHVzZSBhIHN0cmVhbWluZyBtZXRob2Qgc28gdGhlIGNvbXBsZXRlIGxvZyBpcyBub3QgaW4gbWVtb3J5CisgICAgICAgIHVybCA9IGxvZ191cmwoaXBfYW5kX3BvcnQgPSBpcF9wb3J0LCBsb2cgPSBsb2dfbmFtZSkKKyAgICAgICAgcmVxdWVzdCA9IHVybGxpYjIudXJsb3Blbih1cmwpCisgICAgICAgIGZvciBsaW5lIGluIHJlcXVlc3Q6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisgICAgICAgIHJlcXVlc3QuY2xvc2UoKQorCisKKyMKKyMgSW5pdGlhbGl6ZSBhY3Rpb24gZnVuY3Rpb25zIAorIworIworCitkZWYgaW5pdF9hY3Rpb25zKGJzLCBtb2RpKToKKyAgICBnbG9iYWwgc2Ruc2gsIG1pCisgICAgc2Ruc2ggPSBicworICAgIG1pID0gbW9kaQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdjcmVhdGUtdHVubmVsJywKKyAgICAgICAgICAgICAgICAgICAgICAgdHVubmVsX2NyZWF0ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J2RhdGEnIDogJyRkYXRhJyx9fSkKKworICAgIGNvbW1hbmQuYWRkX2FjdGlvbigncmVtb3ZlLXR1bm5lbCcsCisgICAgICAgICAgICAgICAgICAgICAgIHR1bm5lbF9yZW1vdmUsCisgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydkYXRhJyA6ICckZGF0YScsfX0pCisKKyAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ2NyZWF0ZS1wb2xpY3knLAorICAgICAgICAgICAgICAgICAgICAgICBwb2xpY3lfY3JlYXRlLAorICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnZGF0YScgOiAnJGRhdGEnLH19KQorICAgIAorICAgIGNvbW1hbmQuYWRkX2FjdGlvbigncmVtb3ZlLXBvbGljeScsCisgICAgICAgICAgICAgICAgICAgICAgIHBvbGljeV9yZW1vdmUsCisgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydkYXRhJyA6ICckZGF0YScsfX0pCisgICAgCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCd3cml0ZS1maWVsZHMnLCB3cml0ZV9maWVsZHMsCisgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydvYmpfdHlwZSc6ICckY3VycmVudC1tb2RlLW9iai10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29ial9pZCc6ICckY3VycmVudC1tb2RlLW9iai1pZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJzogJyRkYXRhJ319KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdyZXNldC1maWVsZHMnLCByZXNldF9maWVsZHMsCisgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydvYmpfdHlwZScgICAgIDogJyRjdXJyZW50LW1vZGUtb2JqLXR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb2JqX2lkJyAgICAgICA6ICckY3VycmVudC1tb2RlLW9iai1pZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcmdfZGF0YScgICAgIDogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hdGNoX2Zvcl9ubycgOiAnJG1hdGNoLWZvci1ubycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZHMnICAgICAgIDogJyRmaWVsZHMnfX0pCisKKyAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ3dyaXRlLWZpZWxkcy1leHBsaWNpdCcsIHdyaXRlX2ZpZWxkcywKKyAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J29ial90eXBlJyA6ICckb2JqLXR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb2JqX2lkJyAgIDogJyRvYmotaWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgIDogJyRkYXRhJ319KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdyZXNldC1maWVsZHMtZXhwbGljaXQnLCByZXNldF9maWVsZHMsCisgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydvYmpfdHlwZScgICAgIDogJyRvYmotdHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvYmpfaWQnICAgICAgIDogJyRvYmotaWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXJnX2RhdGEnICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXRjaF9mb3Jfbm8nIDogJyRtYXRjaC1mb3Itbm8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGRzJyAgICAgICA6ICckZmllbGRzJ319KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCd1cGRhdGUtY29uZmlnJywgdXBkYXRlX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J29ial90eXBlJyAgICAgIDogJyRvYmotdHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvYmpfaWQnICAgICAgICA6ICckY3VycmVudC1tb2RlLW9iai1pZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub19jb21tYW5kJyAgICA6ICckaXMtbm8tY29tbWFuZCcsIH19KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdkZWxldGUtb2JqZWN0cycsIGRlbGV0ZV9vYmplY3RzLAorICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnb2JqX3R5cGUnOiAnJG9iai10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFyZW50X2ZpZWxkJzogJyRwYXJlbnQtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFyZW50X2lkJzogJyRjdXJyZW50LW1vZGUtb2JqLWlkJ319KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCd3cml0ZS1vYmplY3QnLCB3cml0ZV9vYmplY3QsCisgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydvYmpfdHlwZSc6ICckb2JqLXR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YSc6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXJlbnRfZmllbGQnOiAnJHBhcmVudC1maWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXJlbnRfaWQnOiAnJGN1cnJlbnQtbW9kZS1vYmotaWQnfX0pCisgICAgICAgIAorICAgIGNvbW1hbmQuYWRkX2FjdGlvbignc2V0LWRhdGEnLCBzZXRfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J2RhdGEnOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAna2V5JzogJyRrZXknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiAnJHZhbHVlJ319KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdwdXNoLW1vZGUtc3RhY2snLCBwdXNoX21vZGVfc3RhY2ssCisgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydtb2RlX25hbWUnOiAnJHN1Ym1vZGUtbmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvYmpfdHlwZSc6ICckb2JqLXR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFyZW50X2ZpZWxkJzogJyRwYXJlbnQtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFyZW50X2lkJzogJyRjdXJyZW50LW1vZGUtb2JqLWlkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3JlYXRlJzogJyRjcmVhdGUnfX0pCisKKyAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ3BvcC1tb2RlLXN0YWNrJywgcG9wX21vZGVfc3RhY2spCisKKyAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ2NvbmZpcm0nLCBjb25maXJtX3JlcXVlc3QsCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsncHJvbXB0JzogJyRwcm9tcHQnfX0pCisKKyAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ2NvbnZlcnQtdm5zLWFjY2Vzcy1saXN0JywgY29udmVydF92bnNfYWNjZXNzX2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnb2JqX3R5cGUnOiAnJG9iai10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrZXknIDogJyRjdXJyZW50LW1vZGUtb2JqLWlkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyA6ICckZGF0YSd9fSkKKyAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ2Rpc3BsYXktdGFibGUnLCBjb21tYW5kX2Rpc3BsYXlfdGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnb2JqX3R5cGUnICAgICAgOiAnJG9iai10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGFibGVfZm9ybWF0JyAgOiAnJGZvcm1hdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGl0bGUnICAgICAgICAgOiAnJHRpdGxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXRhaWwnICAgICAgICA6ICckZGV0YWlsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY29wZWQnICAgICAgICA6ICckc2NvcGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzb3J0JyAgICAgICAgICA6ICckc29ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdkaXNwbGF5LXJlc3QnLCBjb21tYW5kX2Rpc3BsYXlfcmVzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeyAnZGF0YScgICAgICAgICAgOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cmwnICAgICAgICAgICA6ICckdXJsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGF0aCcgICAgICAgICAgOiAnJHBhdGgnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXN0X3R5cGUnICAgICA6ICckcmVzdC10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc29ydCcgICAgICAgICAgOiAnJHNvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aXRsZScgICAgICAgICA6ICckdGl0bGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0YWJsZV9mb3JtYXQnICA6ICckZm9ybWF0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV0YWlsJyAgICAgICAgOiAnJGRldGFpbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdxdWVyeS10YWJsZScsIGNvbW1hbmRfcXVlcnlfdGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnb2JqX3R5cGUnICAgICAgOiAnJG9iai10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAna2V5JyAgICAgICAgICAgOiAnJGtleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NvcGVkJyAgICAgICAgOiAnJHNjb3BlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc29ydCcgICAgICAgICAgOiAnJHNvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NyYWNrJyAgICAgICAgIDogJyRjcmFjaycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwZW5kJyAgICAgICAgOiAnJGFwcGVuZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xlYXInICAgICAgICAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSkKKworICAgIGNvbW1hbmQuYWRkX2FjdGlvbigncXVlcnktdGFibGUtYXBwZW5kJywgY29tbWFuZF9xdWVyeV90YWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydvYmpfdHlwZScgICAgICA6ICckb2JqLXR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICAgICAgIDogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrZXknICAgICAgICAgICA6ICcka2V5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY29wZWQnICAgICAgICA6ICckc2NvcGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzb3J0JyAgICAgICAgICA6ICckc29ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3JhY2snICAgICAgICAgOiAnJGNyYWNrJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcHBlbmQnICAgICAgICA6ICckYXBwZW5kJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbGVhcicgICAgICAgICA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSkKKworCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdxdWVyeS1yZXN0JywgY29tbWFuZF9xdWVyeV9yZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J3VybCcgICAgICAgICAgIDogJyR1cmwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhdGgnICAgICAgICAgIDogJyRwYXRoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXN0X3R5cGUnICAgICA6ICckcmVzdC10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAna2V5JyAgICAgICAgICAgOiAnJGtleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NvcGVkJyAgICAgICAgOiAnJHNjb3BlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc29ydCcgICAgICAgICAgOiAnJHNvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGVuZCcgICAgICAgIDogJyRhcHBlbmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsZWFyJyAgICAgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pCisKKyAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ3F1ZXJ5LXJlc3QtYXBwZW5kJywgY29tbWFuZF9xdWVyeV9yZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J3VybCcgICAgICAgICAgIDogJyR1cmwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhdGgnICAgICAgICAgIDogJyRwYXRoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXN0X3R5cGUnICAgICA6ICckcmVzdC10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAna2V5JyAgICAgICAgICAgOiAnJGtleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NvcGVkJyAgICAgICAgOiAnJHNjb3BlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc29ydCcgICAgICAgICAgOiAnJHNvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NyYWNrJyAgICAgICAgIDogJyRjcmFjaycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwZW5kJyAgICAgICAgOiAnJGFwcGVuZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2xlYXInICAgICAgICAgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pCisKKyAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ2pvaW4tcmVzdCcsIGNvbW1hbmRfam9pbl9yZXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J3VybCcgICAgICAgICAgIDogJyR1cmwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tleScgICAgICAgICAgIDogJyRrZXknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pvaW5fZmllbGQnICAgIDogJyRqb2luLWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXN0X3R5cGUnICAgICA6ICckcmVzdC10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRfZmllbGQnICAgICA6ICckYWRkLWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3JhY2snICAgICAgICAgOiAnJGNyYWNrJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cmxfa2V5JyAgICAgICA6ICckdXJsLWtleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdqb2luLXRhYmxlJywgY29tbWFuZF9qb2luX3RhYmxlLAorICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J29ial90eXBlJyAgICAgIDogJyRvYmotdHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgICAgICAgOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tleScgICAgICAgICAgIDogJyRrZXknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tleV92YWx1ZScgICAgIDogJyRrZXktdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZF9maWVsZCcgICAgIDogJyRhZGQtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pvaW5fZmllbGQnICAgIDogJyRqb2luLWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjcmFjaycgICAgICAgICA6ICckY3JhY2snLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSkKKworICAgIGNvbW1hbmQuYWRkX2FjdGlvbignY3JhY2snLCBjb21tYW5kX2NyYWNrLAorICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICAgOiAnJGZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pCisKKyAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ2Rpc3BsYXknLCBjb21tYW5kX2Rpc3BsYXksCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnZGF0YScgICAgICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGFibGVfZm9ybWF0JyA6ICckZm9ybWF0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzb3J0JyAgICAgICAgIDogJyRzb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXRhaWwnICAgICAgIDogJyRkZXRhaWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RpdGxlJyAgICAgICAgOiAnJHRpdGxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pCisKKyAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ2xlZ2FjeS1jbGknLCBjb21tYW5kX2xlZ2FjeV9jbGksCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnb2JqX3R5cGUnIDogJyRvYmotdHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgIDogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXRhaWwnICAgOiAnJGRldGFpbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc29ydCcgICAgIDogJyRzb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY29wZWQnICAgOiAnJHNjb3BlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdsZWdhY3ktY2xpLW5vJywgY29tbWFuZF9sZWdhY3lfY2xpX25vLAorICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J29ial90eXBlJyA6ICckb2JqLXR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV0YWlsJyAgIDogJyRkZXRhaWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvcnQnICAgICA6ICckc29ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NvcGVkJyAgIDogJyRzY29wZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSkKKworICAgIGNvbW1hbmQuYWRkX2FjdGlvbigndmVyc2lvbicsICBjb21tYW5kX3ZlcnNpb24sCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnZGF0YScgOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSkKKworICAgIGNvbW1hbmQuYWRkX2FjdGlvbignY2xlYXJ0ZXJtJywgIGNvbW1hbmRfY2xlYXJ0ZXJtKQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdkaXNwbGF5LWNsaScsICBjb21tYW5kX2Rpc3BsYXlfY2xpLAorICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J2RhdGEnICAgOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldGFpbCcgOiAnJGRldGFpbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdjcmVhdGUtYWxpYXMnLCBjb21tYW5kX2NyZWF0ZV9hbGlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydvYmpfdHlwZScgOiAnJG9iai10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc2VydmVkJyA6ICckcmVzZXJ2ZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZhaWxfaWZfZXhpc3RzJyA6ICckZmFpbC1pZi1leGlzdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSkKKworICAgIGNvbW1hbmQuYWRkX2FjdGlvbignZGVsZXRlLWFsaWFzJywgY29tbWFuZF9kZWxldGVfYWxpYXMsCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnb2JqX3R5cGUnIDogJyRvYmotdHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdjcmVhdGUtdGFnJywgY29tbWFuZF9jcmVhdGVfdGFnLAorICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J29ial90eXBlJyA6ICckb2JqLXR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSkKKworICAgIGNvbW1hbmQuYWRkX2FjdGlvbignZGVsZXRlLXRhZycsIGNvbW1hbmRfZGVsZXRlX3RhZywKKyAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydvYmpfdHlwZScgOiAnJG9iai10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgIDogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pCisgCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdjbGktc2V0JywgY29tbWFuZF9jbGlfc2V0LAorICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J3ZhcmlhYmxlJyA6ICckdmFyaWFibGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdjbGktdW5zZXQnLCBjb21tYW5kX2NsaV91bnNldCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeyd2YXJpYWJsZScgOiAnJHZhcmlhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSkKKworICAgIGNvbW1hbmQuYWRkX2FjdGlvbignc2hlbGwtY29tbWFuZCcsIGNvbW1hbmRfc2hlbGxfY29tbWFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydzY3JpcHQnIDogJyRjb21tYW5kJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pCisgICAgCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdyZXN0LXBvc3QtZGF0YScsIGNvbW1hbmRfcmVzdF9wb3N0X2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsncGF0aCc6ICckcGF0aCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YSc6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYic6ICckdmVyYicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KQorCisgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdwcm9tcHQtdXBkYXRlJywgY29tbWFuZF9wcm9tcHRfdXBkYXRlLCkKKworICAgIGNvbW1hbmQuYWRkX2FjdGlvbignY29udHJvbGxlci11cGdyYWRlJywgY29tbWFuZF9jb250cm9sbGVyX3VwZ3JhZGUsCisgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydkYXRhJzogJyRkYXRhJ319KQorICAgIAorICAgIGNvbW1hbmQuYWRkX2FjdGlvbignY29udHJvbGxlci1jb25maWctcm9sbGJhY2snLCBjb21tYW5kX2NsdXN0ZXJfY29uZmlnX3JvbGxiYWNrLAorICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnZGF0YSc6ICckZGF0YSd9fSkKKyAgICAKKyAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ2NvbnRyb2xsZXItZGVjb21taXNzaW9uJywgY29tbWFuZF9jb250cm9sbGVyX2RlY29tbWlzc2lvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J2RhdGEnOiAnJGRhdGEnfX0pCisKKyAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ3dhaXQtZm9yLWNvbnRyb2xsZXInLCBjb21tYW5kX3dhaXRfZm9yX2NvbnRyb2xsZXIsCisgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeyd3aXRoaW5fY29tbWFuZCc6IFRydWV9fSkKKworICAgIGNvbW1hbmQuYWRkX2FjdGlvbignZmFjdG9yeS1kZWZhdWx0JywgY29tbWFuZF9mYWN0b3J5X2RlZmF1bHQpCisKKyAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ2R1bXAtbG9nJywgY29tbWFuZF9kdW1wX2xvZywKKyAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJyA6IHsgJ2RhdGEnIDogJyRkYXRhJywgfX0pCmRpZmYgLS1naXQgYS9jbGkvY19jb21wbGV0aW9ucy5weSBiL2NsaS9jX2NvbXBsZXRpb25zLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFjNjZhNzkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvY19jb21wbGV0aW9ucy5weQpAQCAtMCwwICsxLDc1MiBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTEsMjAxMiwyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitpbXBvcnQgb3MKK2ltcG9ydCByZQoraW1wb3J0IG1vZGkKK2ltcG9ydCBlcnJvcgoraW1wb3J0IGNvbW1hbmQKK2ltcG9ydCBjb2xsZWN0aW9ucworaW1wb3J0IHV0aWYKKworZnJvbSBtaWR3IGltcG9ydCAqCisKK2RlZiBjaGVja19yZXN0X3Jlc3VsdChyZXN1bHQsIG1lc3NhZ2U9Tm9uZSk6CisgICAgaWYgaXNpbnN0YW5jZShyZXN1bHQsIGNvbGxlY3Rpb25zLk1hcHBpbmcpOgorICAgICAgICBlcnJvcl90eXBlID0gcmVzdWx0LmdldCgnZXJyb3JfdHlwZScpCisgICAgICAgIGlmIGVycm9yX3R5cGU6CisgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kUmVzdEVycm9yKHJlc3VsdCwgbWVzc2FnZSkKKworCitkZWYgcHJldHR5KHRleHQpOgorICAgICIiIgorICAgIEZvciBvYmplY3QtdHlwZSdzLCByZW1vdmUgZGFzaGVzLCBjYXBpdGFsaXplIGZpcnN0IGNoYXJhY3RlcgorICAgICIiIgorICAgIHJldHVybiB0ZXh0LnJlcGxhY2UoJy0nLCAnICcpLmNhcGl0YWxpemUoKQorCisKKyMKKyMgQ09NUExFVElPTiBQUk9DUworIworIyAnY29tcGxldGlvbnMnIGlzIGEgZGljdGlvbmFyeSwgd2hlcmUgdGhlIGtleXMgYXJlIHRoZSBhY3R1YWwgdGV4dAorIyBvZiB0aGUgY29tcGxldGlvbiwgd2hpbGUgdGhlIHZhbHVlIGlzIHRoZSByZWFzb24gd2h5IHRoaXMgdGV4dCAKKyMgd2FzIGFkZGVkLiAgVGhlICdyZWFzb24nIHByb3ZpZGVzIHRoZSB0ZXh0IGZvciB0aGUgdHdvLWNvbHVtbgorIyBoZWxwIHByaW50ZWQgZm9yIHRoZSAnPycgY2hhcmFjdGVyLgorIworCitkZWYgY29sbGVjdF9vYmplY3RfZmllbGRzKG9ial90eXBlLCBmaWVsZCwgZGF0YSwgbW9kZSwgY29tcGxldGlvbnMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXggPSBOb25lLCBvdGhlciA9IE5vbmUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRfZmllbGQgPSBOb25lLCBwYXJlbnRfaWQgPSBOb25lLCBzY29wZWQgPSBOb25lKToKKyAgICAiIiIKKyAgICBSZXR1cm5zIHRoZSBsaXN0IG9mIHBvc3NpYmxlIGNvbXBsZXRpb25zIGZvciBhIHBhcnRpY3VsYXIgb2JqLXR5cGUuCisgICAgIiIiCisKKyAgICBkYXRhID0gZGljdChkYXRhKQorICAgIGlmIHBhcmVudF9maWVsZDoKKyAgICAgICAgZGF0YVtwYXJlbnRfZmllbGRdID0gcGFyZW50X2lkCisgICAgaWYgcHJlZml4OgorICAgICAgICBkYXRhW2ZpZWxkICsgJ19fc3RhcnRzd2l0aCddID0gcHJlZml4CisKKyAgICBrZXkgPSBtaS5wayhvYmpfdHlwZSkKKyAgICBpZiBzY29wZWQ6CisgICAgICAgIG9ial9pZCA9IHNkbnNoLmdldF9jdXJyZW50X21vZGVfb2JqKCkKKyAgICAgICAgaWYgc2Ruc2guY3VycmVudF9tb2RlKCkgIT0gbW9kZToKKyAgICAgICAgICAgICMgWFhYIG5lZWRzIHRvIGJlIGNvdmVyZWQsIHNob3VsZG4ndCByZWFjaCBpbiBsaWtlIHRoaXMKKyAgICAgICAgICAgIGZvciB4IGluIHNkbnNoLm1vZGVfc3RhY2s6CisgICAgICAgICAgICAgICAgaWYgeFsnbW9kZV9uYW1lJ10gPT0gbW9kZToKKyAgICAgICAgICAgICAgICAgICAgb2JqX2lkID0geFsnb2JqJ10KKyAgICAgICAgb2JqX2QgPSB7IGtleSA6IG9ial9pZCB9CisKKyAgICAgICAgaWYgb2JqX3R5cGUgaW4gbWkuYWxpYXNfb2JqX3R5cGVzOgorICAgICAgICAgICAgIyB0aGUgc3VibW9kZSBvdWdodCB0byBpZGVudGlmeSB0aGUgZm9yZWlnbiBrZXkKKyAgICAgICAgICAgIGRhdGFbbWkuYWxpYXNfb2JqX3R5cGVfZmllbGQob2JqX3R5cGUpXSA9IG9ial9pZAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbWkuc3BsaXRfY29tcG91bmRfaW50b19kaWN0KG9ial90eXBlLCBrZXksIG9ial9kLCBpc19wcmVmaXggPSBUcnVlKQorICAgICAgICAgICAgZm9yIChrLHYpIGluIG9ial9kLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYgayAhPSBrZXkgYW5kIG5vdCBrIGluIGRhdGE6CisgICAgICAgICAgICAgICAgICAgIGRhdGFba10gPSB2CisgCisKKyAgICAjIGlmIHRoaXMgaXMgb25lIG9mIHRoZSBvYmpfdHlwZSdzIGFzc29jaWF0ZWQgd2l0aCBhbGlhc2VzLCBzaG91bGQKKyAgICAjIHRoZSBsaXN0IG9mIHZhbHVlcyBiZSBiYWNrLXRyYW5zZm9ybWVkIGludG8gYWxpYXMgbmFtZXM/CisgICAgIyB5ZXMsIGJlY2F1c2UgaWYgdGhlIGN1cnJlbnQgdmFsdWUgaGFzIGFuIGludmVyc2UgYWxpYXMsIHRoZSBleGlzdGluZworICAgICMgaW52ZXJzZSBmb3IgdGhlIHR5cGUgaW1wbGllcyB0aGF0IGR1cmluZyBhIHByZXZpb3VzIGluc2VydCBvZiB0aGlzCisgICAgIyB2YWx1ZSwgaXQgd2FzIGNvbnZlcnRlZCBmcm9tIGl0cyBhbGlhcyBuYW1lIHRvIHRoZSBjdXJyZW50IG5hbWUuCisgICAgIworICAgICMgY29sbGVjdCB0aGUgY29tcGxldGUgY29sbGVjdGlvbiBvZiBhbGlhc2VzLCBzaW5jZSBpdHMgbGlrZWx5CisgICAgIyBtb3JlIHRoYW4gb25lIGJhY2stdG8tYWxpYXMgY29udmVyc2lvbiB3aWxsIGJlIHJlcXVpcmVkLCBhbmQgcXVlcnkKKyAgICAjIGl0cyB2YWx1ZSBiZWZvcmUgb2JqX3R5cGUgaW4gdGhlIGhvcGUgdGhhdCBpdCB3YXMgcmVjZW50bHkgY2FjaGVkLgorICAgICMKKyAgICBhbGlhc19vYmpfdHlwZSA9IG1pLm9ial90eXBlX3JlbGF0ZWRfY29uZmlnX29ial90eXBlKG9ial90eXBlKQorICAgIGlmIG90aGVyIGFuZCBvdGhlciBpbiBtaS5hbGlhc19vYmpfdHlwZV94cmVmOgorICAgICAgICBhbGlhc19vYmpfdHlwZSA9IG1pLmFsaWFzX29ial90eXBlX3hyZWZbb3RoZXJdWzBdCisgICAgZWxpZiBmaWVsZCAhPSBtaS5wayhvYmpfdHlwZSk6CisgICAgICAgIGlmIG1pLmlzX2ZvcmVpZ25fa2V5KG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICAgICAoYWxpYXNfb2JqX3R5cGUsIGZrX25hbWUpID0gbWkuZm9yZWlnbl9rZXlfcmVmZXJlbmNlcyhvYmpfdHlwZSwgZmllbGQpCisgICAgICAgICAgICBhbGlhc19vYmpfdHlwZSA9IG1pLm9ial90eXBlX3JlbGF0ZWRfY29uZmlnX29ial90eXBlKGFsaWFzX29ial90eXBlKQorICAgICAgICAgICAgaWYgYWxpYXNfb2JqX3R5cGUgaW4gbWkuYWxpYXNfb2JqX3R5cGVfeHJlZjoKKyAgICAgICAgICAgICAgICBhbGlhc19vYmpfdHlwZSA9IG1pLmFsaWFzX29ial90eXBlX3hyZWZbYWxpYXNfb2JqX3R5cGVdWzBdCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGFsaWFzX29ial90eXBlID0gTm9uZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICBwcmludCAnY29sbGVjdF9vYmplY3RfZmllbGRzOiBubyBhbGlhcyBmb3IgJXMgJyBcCisgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkICVzIG5vdCBwaywgYW5kIG5vdCBmaycgJSAob2JqX3R5cGUsIGZpZWxkKQorICAgICAgICAgICAgYWxpYXNfb2JqX3R5cGUgPSBOb25lCisgICAgZWxpZiBvYmpfdHlwZSBpbiBtaS5hbGlhc19vYmpfdHlwZV94cmVmOgorICAgICAgICBhbGlhc19vYmpfdHlwZSA9IG1pLmFsaWFzX29ial90eXBlX3hyZWZbb2JqX3R5cGVdWzBdCisgICAgZWxzZToKKyAgICAgICAgYWxpYXNfb2JqX3R5cGUgPSBOb25lCisKKyAgICBhbGlhc19kaWN0ID0ge30KKyAgICBpZiBhbGlhc19vYmpfdHlwZToKKyAgICAgICAgZm9yZWlnbl9maWVsZCA9IG1pLmFsaWFzX29ial90eXBlX2ZpZWxkKGFsaWFzX29ial90eXBlKQorICAgICAgICBhbGlhc19kaWN0ID0gY3JlYXRlX29ial90eXBlX2RpY3QoYWxpYXNfb2JqX3R5cGUsIGZvcmVpZ25fZmllbGQpCisgICAgICAgIGFsaWFzX2tleSA9IG1pLnBrKGFsaWFzX29ial90eXBlKQorCisgICAgIyBSZW1vdmUgYW55IGRhdGEgZmllbGRzIHdoaWNoIGhhdmUgdmFsdWVzIG9mIE5vbmUsIHRoZXNlIGFyZSBmaWVsZHMKKyAgICAjIHdoaWNoIGFyZSBnZXR0aW5nIHJlc2V0LgorICAgIGZvciByZXNldF9maWVsZHMgaW4gW3ggZm9yIHggaW4gZGF0YS5rZXlzKCkgaWYgZGF0YVt4XSA9PSBOb25lXToKKyAgICAgICAgZGVsIGRhdGFbcmVzZXRfZmllbGRzXQorICAgICAgICAKKyAgICAjIGNvbGxlY3QgY29tcGxldGUgb2JqX3R5cGUKKyAgICBpZiBub3QgbWkub2JqX3R5cGVfaGFzX21vZGVsKG9ial90eXBlKToKKyAgICAgICAgcmVzdWx0ID0gcmVzdF90b19tb2RlbC5nZXRfbW9kZWxfZnJvbV91cmwob2JqX3R5cGUsIGRhdGEpCisgICAgZWxzZToKKyAgICAgICAgcmVzdWx0ID0gc2Ruc2gucmVzdF9xdWVyeV9vYmplY3RzKG9ial90eXBlLCBkYXRhKQorICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCkKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAiY29sbGVjdF9vYmplY3RfZmllbGRzOiIsIG9ial90eXBlLCBmaWVsZCwgZGF0YSwgcmVzdWx0CisKKyAgICBpc19jb21wb3VuZCA9IG1pLmlzX2NvbXBvdW5kX2tleShvYmpfdHlwZSwga2V5KQorICAgIGQgPSB7fQorICAgIGZvciBpdGVtIGluIHJlc3VsdDoKKyAgICAgICAgaWYgaXNfY29tcG91bmQ6CisgICAgICAgICAgICBtaS5zcGxpdF9jb21wb3VuZF9pbnRvX2RpY3Qob2JqX3R5cGUsIGtleSwgaXRlbSkKKyAgICAgICAgdmFsdWUgPSBpdGVtLmdldChmaWVsZCkKKyAgICAgICAgIyBYWFggaGFjayB0byBjb3JyZWN0bHkgZm9ybWF0IHRhZyBjb21wbGV0aW9ucworICAgICAgICBpZiBvYmpfdHlwZSA9PSAndGFnJyBhbmQgZmllbGQgPT0gJ2lkJzoKKyAgICAgICAgICAgIHZhbHVlID0gJyVzLiVzPSVzJyAlIHR1cGxlKHZhbHVlLnNwbGl0KCd8JykpCisgICAgICAgICMgcmVtZW1iZXIgdG8gb25seSBhZGQgbmV3IGl0ZW1zCisgICAgICAgIGlmIHZhbHVlOgorICAgICAgICAgICAgaWYgdHlwZSh2YWx1ZSkgPT0gbGlzdDoKKyAgICAgICAgICAgICAgICAjIE5lZWQgYSBtZWNoYW5pc20gdG8gc2VsZWN0IHZhbHVlcyBmcm9tIHRoZSBsaXN0LCBmaWVsZCdzIG5vdCBlbm91Z2gKKyAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiB2YWx1ZToKKyAgICAgICAgICAgICAgICAgICAgaWYgdXRpZi5xdW90ZV9zdHJpbmcoc3RyKGl0ZW0pKSBub3QgaW4gY29tcGxldGlvbnM6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzdHIoaXRlbSkgaW4gYWxpYXNfZGljdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhc19pdGVtID0gYWxpYXNfZGljdFtzdHIoaXRlbSldWzBdW2FsaWFzX2tleV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhbGlhc19pdGVtLnN0YXJ0c3dpdGgocHJlZml4KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbSA9IGFsaWFzX2l0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgIGRbdXRpZi5xdW90ZV9zdHJpbmcoc3RyKGl0ZW0pKV0gPSBOb25lCisgICAgICAgICAgICBlbGlmIHV0aWYucXVvdGVfc3RyaW5nKHN0cih2YWx1ZSkpIG5vdCBpbiBjb21wbGV0aW9uczoKKyAgICAgICAgICAgICAgICBpZiBzdHIodmFsdWUpIGluIGFsaWFzX2RpY3Q6CisgICAgICAgICAgICAgICAgICAgIGFsaWFzX3ZhbHVlID0gYWxpYXNfZGljdFtzdHIodmFsdWUpXVswXVthbGlhc19rZXldCisgICAgICAgICAgICAgICAgICAgIGlmIGFsaWFzX3ZhbHVlLnN0YXJ0c3dpdGgocHJlZml4KToKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gYWxpYXNfdmFsdWUKKyAgICAgICAgICAgICAgICBkW3V0aWYucXVvdGVfc3RyaW5nKHN0cih2YWx1ZSkpXSA9IE5vbmUKKworICAgICMgaWYgdGhlcmUncyBhbiBhbGlhcyBmb3IgdGhpcyBvYmplY3QsIGFuZCBhIHByZWZpeCBpcyBpbmNsdWRlZCwKKyAgICAjIHRoZW4gdGhlIGFsaWFzJ2VzIHdoaWNoIG1hdGNoIGFsc28gbmVlZCB0byBiZSBkaXJlY3RseSBpbmNsdWRlZCwKKyAgICAjIHNpbmNlIGl0cyBub3QgY2xlYXIgd2hldGhlciB0aGUgcHJlZml4IGFwcGxpZXMgdG8gdGhlIGFjdHVhbAorICAgICMgaWQgb3IgdGhlIGFsaWFzLiAgc2luY2UgYWxpYXNfZGljdCBpcyBhbHJlYWR5IHRoZSBjb21wbGV0ZQorICAgICMgY29sbGVjdGlvbiBvZiBhbGlhc2VzIGZvciB0aGlzIG9iai10eXBlLCB1c2UgaXQgZm9yIG1hdGNoaW5nIG5hbWVzCisgICAgaWYgYWxpYXNfb2JqX3R5cGUgYW5kIHByZWZpeCBhbmQgcHJlZml4ICE9ICcnOgorICAgICAgICBhbGlhc19wayA9IG1pLnBrKGFsaWFzX29ial90eXBlKQorICAgICAgICBmb3IgKG4sdikgaW4gYWxpYXNfZGljdC5pdGVtcygpOgorICAgICAgICAgICAgIyAnbicgaGVyZSBpcyB0aGUgZm9yZWlnbiBrZXkgcmVmZXJlbmNlIHRvIHRoaXMgb2JqLXR5cGUKKyAgICAgICAgICAgIGZvciBpdGVtIGluIFt4W2FsaWFzX3BrXSBmb3IgeCBpbiB2IGlmIHhbYWxpYXNfcGtdLnN0YXJ0c3dpdGgocHJlZml4KV06CisgICAgICAgICAgICAgICAgaWYgdXRpZi5xdW90ZV9zdHJpbmcoc3RyKGl0ZW0pKSBub3QgaW4gY29tcGxldGlvbnM6CisgICAgICAgICAgICAgICAgICAgIGRbdXRpZi5xdW90ZV9zdHJpbmcoc3RyKGl0ZW0pKV0gPSBOb25lCisKKyAgICByZXR1cm4gdXRpZi5hZGRfZGVsaW0obGlzdChkKSwgJyAnKQorCisKK2RlZiBjb21wbGV0ZV9vYmplY3RfZmllbGQob2JqX3R5cGUsIGZpZWxkLCBkYXRhLCBjb21wbGV0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZSA9IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCA9IE5vbmUsIG90aGVyID0gTm9uZSwgcGFyZW50X2ZpZWxkID0gTm9uZSwgcGFyZW50X2lkID0gTm9uZSwgc2NvcGVkID0gTm9uZSk6CisgICAgIiIiCisgICAgUG9wdWxhdGUgJ2NvbXBsZXRpb25zJyB3aXRoICB0aGUgdmFsdWVzIG9mIHRoZSBwcmltYXJ5IGtleSBmb3IKKyAgICB0aGUgcGFydGljdWxhciBvYmpfdHlwZQorICAgICIiIgorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJjb21wbGV0ZV9vYmplY3RfZmllbGQ6ICIsIG9ial90eXBlLCBtb2RlLCBmaWVsZCwgZGF0YSwgc2NvcGVkLCBvdGhlcgorCisgICAgaWYgbm90IG1pLm9ial90eXBlX2V4aXN0cyhvYmpfdHlwZSk6CisgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCJVbmtub3duIG9iai10eXBlOiAlcyIgJSBvYmpfdHlwZSkKKyAgICByZXN1bHQgPSBjb2xsZWN0X29iamVjdF9maWVsZHMob2JqX3R5cGUsIGZpZWxkLCBkYXRhLCBtb2RlLCBjb21wbGV0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeCwgb3RoZXIsIHBhcmVudF9maWVsZCwgcGFyZW50X2lkLCBzY29wZWQpCisgICAgY29tcGxldGlvbnMudXBkYXRlKGRpY3QoW1t4LCAiJXMgc2VsZWN0aW9uIiAlIHByZXR0eShvYmpfdHlwZSldCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiByZXN1bHRdKSkKKworCitkZWYgY29tcGxldGVfdGFnX21hcHBpbmcob2JqX3R5cGUsIGZpZWxkLCBkYXRhLCBjb21wbGV0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXggPSBOb25lLCBvdGhlciA9IE5vbmUsIG1vZGUgPSBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmVudF9maWVsZCA9IE5vbmUsIHBhcmVudF9pZCA9IE5vbmUsIHNjb3BlZCA9IE5vbmUpOgorICAgICIiIgorICAgIFRyYW5zbGF0ZSB0aGUgY29tcGxldGlvbiByZXN1bHRzIGZyb20gY29tcGxldGVfb2JqZWN0X2ZpZWxkIGludG8KKyAgICB0YWcgdmFsdWVzIG9mIHN5bnRheCA8bmFtZXNwYWNlLm5hbWU+PTx2YWx1ZQorICAgICIiIgorICAgIGlmIG5vdCBtaS5vYmpfdHlwZV9leGlzdHMob2JqX3R5cGUpOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcigiVW5rbm93biBvYmotdHlwZTogJXMiICUgb2JqX3R5cGUpCisKKyAgICAjIHNpbmNlIHRoZSBwcmVmaXggY2FuIGNvbnRyaWN0IHRoZSBzZWFyY2gsIGFuZCBpdHMgbm90IGNsZWFyCisgICAgIyB3aGF0IHRoZSBwcmVmaXggYXBwbGllcyB0bywgY29sbGVjdCBhbGwgdGhlIHBvc3NpYmxlIHZhbHVlcywKKyAgICAjIGNvbXB1dGUgd2h0IHRoZSBpdGVtIHdvdWxkIGxvb2sgbGlrZSB0aGVuIG1hdGNoIHRoZSBwcmVmaXguCisgICAgY29sbGVjdGlvbiA9IGNvbGxlY3Rfb2JqZWN0X2ZpZWxkcyhvYmpfdHlwZSwgZmllbGQsIGRhdGEsIG1vZGUsIGNvbXBsZXRpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJycsIG90aGVyLCBwYXJlbnRfZmllbGQsIHBhcmVudF9pZCwgc2NvcGVkKQorICAgIGlmIHByZWZpeCAhPSAiIjoKKyAgICAgICAgY29sbGVjdGlvbiA9IFt4IGZvciB4IGluIGNvbGxlY3Rpb24gaWYgeC5zdGFydHN3aXRoKHByZWZpeCldCisgICAgY29tcGxldGlvbnMudXBkYXRlKGRpY3QoW1t4LCAidGFnIHNlbGVjdGlvbiJdIGZvciB4IGluIGNvbGxlY3Rpb25dKSkKKworCitkZWYgY29tcGxldGVfZnJvbV9hbm90aGVyKG90aGVyLCBvYmpfdHlwZSwgZmllbGQsIGRhdGEsIGNvbXBsZXRpb25zLCBub19jb21tYW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXggPSBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJlbnRfZmllbGQgPSBOb25lLCBwYXJlbnRfaWQgPSBOb25lLCBzY29wZWQgPSBOb25lLGV4cGxpY2l0PU5vbmUpOgorICAgICIiIgorICAgIENvbXBsZXRpb24gZnVuY3Rpb24gdXNlZCB3aGVuIGFub3RoZXIgb2JqX3R5cGUgaXMgdXNlZCB0byBwb3B1bGF0ZQorICAgIHZhbHVlcyBmb3IgdGhlIGN1cnJlbnQgb2JqX3R5cGUKKworICAgIHRoZSAnb3RoZXInIGZpZWxkIGlkZW50aWZpZXMgdGhlIG9ial90eXBlIHRvIHVzZSB0byBjb2xsZWN0IGNob2ljZXMgZnJvbSwKKyAgICBpdCBjYW4gY29uc2lzdCBvZiB0d28gcGFydHMgIG90aGVyfGZpZWxkLiAgV2hlbiBmaWVsZCBpc24ndCBkZXNjcmliZWQgaGVyZSwKKyAgICBpdCBjb21lcyBmcm9tIHRoZSBkZXNjcmlwdGlvbiBwYXJhbWV0ZXIsIGhvd2V2ZXIsIHRoZSAnZmllbGQnIHZhbHVlIHRoZXJlIG1heQorICAgIGJlIGluIHVzZSB0byBkZXNjcmliZSB0aGUgdmFsdWUgb2YgdGhlIGFzc29jaWF0ZWQgYWN0aW9uLgorCisgICAgIiIiCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgImNvbXBsZXRlX2Zyb21fYW5vdGhlcjoiLCBvdGhlciwgZmllbGQsIGRhdGEsIHBhcmVudF9maWVsZCwgcGFyZW50X2lkLCBzY29wZWQKKworICAgICMgY29tcGxldGVfZnJvbV9hbm90aGVyIGlzIGludGVuZGVkIHRvIGluY2x1ZGUgb3RoZXIgZmllbGRzLCB3aGljaAorICAgICMgc2hvdWxkbid0IGFwcGx5IGZvciBhIG5vIGNvbW1hbmQuCisgICAgaWYgbm9fY29tbWFuZDoKKyAgICAgICAgcmV0dXJuCisKKyAgICBpZiBvdGhlci5maW5kKCd8JykgPj0gMDoKKyAgICAgICAgcGFydHMgPSBvdGhlci5zcGxpdCgnfCcpCisgICAgICAgIG90aGVyID0gcGFydHNbMF0KKyAgICAgICAgZmllbGQgPSBwYXJ0c1sxXQorCisgICAgaWYgbm90IG1pLm9ial90eXBlX2V4aXN0cyhvdGhlcik6CisgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCJVbmtub3duIG9iai10eXBlL290aGVyOiAlcyIgJSBvdGhlcikKKworICAgIGlkID0gbWkucGsob3RoZXIpCisgICAgZGF0YSA9IGRpY3QoZGF0YSkKKyAgICBpZiBwYXJlbnRfZmllbGQgYW5kIHBhcmVudF9pZDoKKyAgICAgICAgZGF0YVtwYXJlbnRfZmllbGRdID0gcGFyZW50X2lkCisgICAgaWYgcHJlZml4OgorICAgICAgICBkYXRhW2ZpZWxkICsgJ19fc3RhcnRzd2l0aCddID0gcHJlZml4CisgICAga2V5ID0gbWkucGsob3RoZXIpCisgICAgaWYgc2NvcGVkOgorICAgICAgICBrZXkgPSBtaS5wayhvdGhlcikKKyAgICAgICAgaWYgdHlwZShzY29wZWQpID09IHN0ciBhbmQgc2NvcGVkIGluIGRhdGE6CisgICAgICAgICAgICBvYmpfZCA9IHsga2V5IDogZGF0YVtzY29wZWRdIH0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG9ial9kID0geyBrZXkgOiBzZG5zaC5nZXRfY3VycmVudF9tb2RlX29iaigpIH0KKyAgICAgICAgbWkuc3BsaXRfY29tcG91bmRfaW50b19kaWN0KG90aGVyLCBrZXksIG9ial9kLCBpc19wcmVmaXggPSBUcnVlKQorICAgICAgICBmb3IgKGssdikgaW4gb2JqX2QuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIGsgIT0ga2V5IGFuZCBub3QgayBpbiBkYXRhOgorICAgICAgICAgICAgICAgIGRhdGFba10gPSB2CisgICAgaWYgbWkuaXNfcHJpbWl0aXZlX2NvbXBvdW5kX2tleShvdGhlciwga2V5KToKKyAgICAgICAgIyB0cnkgdG8gdXNlIHRoZSBmaWVsZCB2YWx1ZXMgdG8gcG9wdWxhdGUgdGhlIHByaW1hcnkga2V5Li4uCisgICAgICAgIHZhbHVlID0gIiIKKyAgICAgICAgcyA9IG1pLmNvbXBvdW5kX2tleV9zZXBhcmF0b3Iob3RoZXIsIGtleSkKKyAgICAgICAgbWlzc2luZyA9IE5vbmUKKyAgICAgICAgZm9yIGtmIGluIG1pLmRlZXBfY29tcG91bmRfa2V5X2ZpZWxkcyhvdGhlciwga2V5KToKKyAgICAgICAgICAgIGlmIGtmIGluIGRhdGE6CisgICAgICAgICAgICAgICAgdmFsdWUgKz0gZGF0YVtrZl0gKyBzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgdGhlIGZpZWxkcyBtdXN0IGFwcGVhciBpbiBvcmRlcgorICAgICAgICAgICAgICAgIG1pc3NpbmcgPSBrZgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICMgRm9yIHByZWZpeCBleHRlbnRpb24gdG8gd29yayBoZXJlLCB0aGUgb3RoZXIgZmllbGQgbXVzdCBoYXZlCisgICAgICAgICMgbmFtZWQgdGhlIGZpZWxkLCBmb3IgZXhhbXBsZSBzd2l0Y2gncyBpbnRlcmZhY2UgY29tcGxldGlvbiwKKyAgICAgICAgIyB1c2VzICJvdGhlciA6ICdwb3J0fG51bWJlciciCisgICAgICAgIHBvc3RfcHJlZml4X21hdGNoID0gRmFsc2UKKyAgICAgICAgaWYgcHJlZml4OgorICAgICAgICAgICAgcG9zdF9wcmVmaXhfbWF0Y2ggPSBUcnVlCisgICAgICAgICAgICBpZiBtaXNzaW5nID09IGZpZWxkOgorICAgICAgICAgICAgICAgIHZhbHVlICs9IHByZWZpeAorICAgICAgICAgICAgICAgIHBvc3RfcHJlZml4X21hdGNoID0gRmFsc2UKKyAgICAgICAgaWYgbWkub2JqX3R5cGVfaGFzX21vZGVsKG90aGVyKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKG90aGVyLCBrZXksIHZhbHVlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0ID0gcmVzdF90b19tb2RlbC5nZXRfbW9kZWxfZnJvbV91cmwob3RoZXIsIHsga2V5IDogdmFsdWUgfSApCisgICAgICAgIAorICAgICAgICBpZiBwb3N0X3ByZWZpeF9tYXRjaDoKKyAgICAgICAgICAgICMgdHJ5IHRvIG1hdGNoIHRoZSBtaXNzaW5nIGZpZWxkLCBtb3JlIHdvcmsgb3VnaHQgdG8gYmUgZG9uZQorICAgICAgICAgICAgIyB0byBpZGVudGlmeSB3aGV0aGVyIHRoZSAnbWlzc2luZycgZmllbGQgaXMgdGhlIGNvcnJlZWN0IHRvIG1hdGNoIGFnYWluc3QKKyAgICAgICAgICAgICMgCisgICAgICAgICAgICByZXN1bHQgPSBbeCBmb3IgeCBpbiByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgICBpZiBmaWVsZCBpbiB4IGFuZCBzdHIoeFtmaWVsZF0pLnN0YXJ0c3dpdGgocHJlZml4KV0KKyAgICBlbGlmIG1pLmlzX2NvbXBvdW5kX2tleShvdGhlciwga2V5KToKKyAgICAgICAgc2VhcmNoID0ge30KKyAgICAgICAgaWYgcGFyZW50X2lkOgorICAgICAgICAgICAgZnJvbV9pZCA9IHttaS5wayhvYmpfdHlwZSkgOiBwYXJlbnRfaWR9CisgICAgICAgICAgICBtaS5zcGxpdF9jb21wb3VuZF9pbnRvX2RpY3Qob2JqX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWkucGsob2JqX3R5cGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyb21faWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfcHJlZml4ID0gVHJ1ZSkKKyAgICAgICAgICAgICMgdGhlIGZpZWxkIG5hbWUgdXNlZCB0byBjb2xsYXBzZSB0aGUgcmVzdWx0IGlzIHRoZSBsYXN0CisgICAgICAgICAgICAjIGZpZWxkIGluIHRoZSBjb21wb3VuZCBrZXkgKGlkIG9mICdvdGhlcicpLCAgdGhpcyBtYXkgbmVlZAorICAgICAgICAgICAgIyBpbXByb3ZlbWVudCBmb3Igb3RoZXIgY29tbWFuZHMKKyAgICAgICAgICAgIGZvciBkZWVwX2ZpZWxkIGluIG1pLmRlZXBfY29tcG91bmRfa2V5X2ZpZWxkcyhvdGhlciwga2V5KToKKyAgICAgICAgICAgICAgICBpZiBkZWVwX2ZpZWxkIGluIGZyb21faWQ6CisgICAgICAgICAgICAgICAgICAgIHNlYXJjaFtkZWVwX2ZpZWxkXSA9IGZyb21faWRbZGVlcF9maWVsZF0KKyAgICAgICAgICAgICAgICBpZiBkZWVwX2ZpZWxkIGluIGRhdGE6CisgICAgICAgICAgICAgICAgICAgIHNlYXJjaFtkZWVwX2ZpZWxkXSA9IGRhdGFbZGVlcF9maWVsZF0KKyAgICAgICAgaWYgc2NvcGVkOgorICAgICAgICAgICAgIyBtb3ZlIGtub3duIGNvbXBvdW5kIGZpZWxkcyBmcm9tIG9ial9kIGludG8gc2VhcmNoLgorICAgICAgICAgICAgZm9yIGRlZXBfZmllbGQgaW4gbWkuZGVlcF9jb21wb3VuZF9rZXlfZmllbGRzKG90aGVyLCBrZXkpOgorICAgICAgICAgICAgICAgIGlmIGRlZXBfZmllbGQgaW4gb2JqX2Q6CisgICAgICAgICAgICAgICAgICAgIHNlYXJjaFtkZWVwX2ZpZWxkXSA9IG9ial9kW2RlZXBfZmllbGRdCisgICAgICAgICMKKyAgICAgICAgIyBwb3NzaWJseSBvdGhlciBzZWFyY2gga2V5cz8KKyAgICAgICAgaWYgcHJlZml4OgorICAgICAgICAgICAgc2VhcmNoW2ZpZWxkICsgJ19fc3RhcnRzd2l0aCddID0gcHJlZml4CisgICAgICAgIGlmIGV4cGxpY2l0OgorICAgICAgICAgICAgc2VhcmNoLmNsZWFyKCkKKyAgICAgICAgICAgIHNlYXJjaFtzY29wZWRdPWRhdGFbc2NvcGVkXQorICAgICAgICAgICAgaWYgcHJlZml4OgorICAgICAgICAgICAgICAgIHNlYXJjaFtmaWVsZCArICdfX3N0YXJ0c3dpdGgnXSA9IHByZWZpeAorICAgICAgICBpZiBtaS5vYmpfdHlwZV9oYXNfbW9kZWwob3RoZXIpOgorICAgICAgICAgICAgcmVzdWx0ID0gc2Ruc2gucmVzdF9xdWVyeV9vYmplY3RzKG90aGVyLCBzZWFyY2gpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHQgPSByZXN0X3RvX21vZGVsLmdldF9tb2RlbF9mcm9tX3VybChvdGhlciwgc2VhcmNoICkKKyAgICBlbGlmIG1pLm9ial90eXBlX2hhc19maWVsZChvdGhlciwgZmllbGQpIGFuZCBtaS5pc19wcmltYXJ5X2tleShvdGhlciwgZmllbGQpOgorICAgICAgICByZXN1bHQgPSB1dGlmLmFkZF9kZWxpbShvYmplY3RzX3N0YXJ0aW5nX3dpdGgob3RoZXIsIHByZWZpeCksICcgJykKKyAgICAgICAgY29tcGxldGlvbnMudXBkYXRlKGRpY3QoW1t4LCAiJXMgc2VsZWN0aW9uIiAlIHByZXR0eShvdGhlcildCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gcmVzdWx0XSkpCisgICAgICAgIHJldHVybgorICAgIGVsaWYgbWkub2JqX3R5cGVfaGFzX2ZpZWxkKG9ial90eXBlLCBmaWVsZCkgYW5kIFwKKyAgICAgIG1pLmlzX2ZvcmVpZ25fa2V5KG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICMgbG9vayB1cCB0aGUgdmFsdWVzIG9mIHRoZSBmb3JlaWduIGtleSdzIGZyb20gdGhlIG90aGVyIHRhYmxlCisgICAgICAgIChma19vYmpfdHlwZSwgZmtfZm4pID0gbWkuZm9yZWlnbl9rZXlfcmVmZXJlbmNlcyhvYmpfdHlwZSwgZmllbGQpCisgICAgICAgIHJlc3VsdCA9IHNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKGZrX29ial90eXBlLCBma19mbiwgcHJlZml4KQorICAgICAgICBmaWVsZCA9IGZrX2ZuCisgICAgZWxpZiBtaS5vYmpfdHlwZV9oYXNfZmllbGQob2JqX3R5cGUsIGZpZWxkKSBhbmQgZmllbGQgPT0gb3RoZXI6CisgICAgICAgICMgSW4gdGhpcyBzaXR1YXRpb24sIHRoaXMgb2JqX3R5cGUgaGFzIGEgZmllbGQsIHdoaWNoIHNlZW1zIHRvIGJlIG5hbWVkCisgICAgICAgICMgYmFzZWQgb24gdGhlIG90aGVyIG1vZGVsJ3MgbmFtZSwgd2hpY2ggc2VlbXMgdG8gYmUgcmVxdWVzdGluZyB0bworICAgICAgICAjIHNlYXJjaCB0aGUgb3RoZXIgbW9kZWwuCisgICAgICAgIGZpZWxkID0gbWkucGsob3RoZXIpCisgICAgICAgIHJlc3VsdCArPSB1dGlmLmFkZF9kZWxpbShvYmplY3RzX3N0YXJ0aW5nX3dpdGgob3RoZXIsIHByZWZpeCksICcgJykKKyAgICAgICAgY29tcGxldGlvbnMudXBkYXRlKGRpY3QoW1t4LCAiJXMgc2VsZWN0aW9uIiAlIHByZXR0eShvdGhlcildCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHggaW4gcmVzdWx0XSkpCisgICAgICAgIHJldHVybgorICAgIGVsc2U6CisgICAgICAgIGlmIG1pLm9ial90eXBlX2hhc19tb2RlbChvdGhlcik6CisgICAgICAgICAgICByZXN1bHQgPSBzZG5zaC5yZXN0X3F1ZXJ5X29iamVjdHMob3RoZXIsIGRhdGEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXN1bHQgPSByZXN0X3RvX21vZGVsLmdldF9tb2RlbF9mcm9tX3VybChvdGhlciwgZGF0YSkKKworICAgIGNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCkKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAiY29tcGxldGVfZnJvbV9hbm90aGVyOiIsIG90aGVyLCBmaWVsZCwgZGF0YSwgbGVuKHJlc3VsdCkKKworICAgIGQgPSB7fQorICAgIGZvciBpdGVtIGluIHJlc3VsdDoKKyAgICAgICAgdmFsdWUgPSBpdGVtLmdldChmaWVsZCkKKyAgICAgICAgIyBYWFggaGFjayB0byBjb3JyZWN0bHkgZm9ybWF0IHRhZyBjb21wbGV0aW9ucworICAgICAgICBpZiBvdGhlciA9PSAndGFnJzoKKyAgICAgICAgICAgIHZhbHVlID0gJyVzLiVzPSVzJyAlIHR1cGxlKHZhbHVlLnNwbGl0KCd8JykpCisgICAgICAgICMgYXNzdW1lIHRoYXQgJ3ZhbHVlcycgYXJlICd1bmlxdWUnIHdpdGhpbiByZXN1bHRzCisgICAgICAgIGlmIHZhbHVlIGFuZCB1dGlmLnF1b3RlX3N0cmluZyh2YWx1ZSkgbm90IGluIGNvbXBsZXRpb25zOgorICAgICAgICAgICAgZFt1dGlmLnF1b3RlX3N0cmluZyhzdHIodmFsdWUpKV0gPSBOb25lCisKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAiY29tcGxldGVfZnJvbV9hbm90aGVyOiBmaW5hbCIsIG90aGVyLCBmaWVsZCwgZGF0YSwgZC5rZXlzKCkKKworICAgIHJlc3VsdCA9IHV0aWYuYWRkX2RlbGltKGxpc3QoZCksICcgJykKKyAgICBjb21wbGV0aW9ucy51cGRhdGUoZGljdChbW3gsICIlcyBzZWxlY3Rpb24iICUgcHJldHR5KG90aGVyKV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIHJlc3VsdF0pKQorCisKK2RlZiBjb21wbGV0ZV9hbGlhc19jaG9pY2Uob2JqX3R5cGUsIGZpZWxkLCBkYXRhLCBwcmVmaXgsIGNvbXBsZXRpb25zLCBub19jb21tYW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICBvdGhlciA9IE5vbmUsIHNjb3BlZCA9IE5vbmUpOgorICAgICIiIgorICAgIENvbXBsZXRlIHNlbGVjdGlvbnMgZnJvbSBhbiBleHRlcm5hbCBvYmplY3QgKHVubHJlYXRlZCB0byB0aGlzCisgICAgb2JqZWN0IHN0YWNrJ3MgZGV0YWlscyksIG9ubHkgcmV0dXJuaW5nIHVuaXF1ZSBrZXlzLCBlaXRoZXIKKyAgICBhbGlhc2VzIGZvciB0aGUgb2JqX3R5cGUsIG9yIHByaW1hcnkga2V5cy4KKworICAgIFRoaXMgb3VnaHQgdG8gYmUgaW1wcm92ZWQsIG9iamVjdHNfc3RhcnRpbmdfd2l0aCgpIGluCisgICAgdGhlIGNsaS5weSwgaXMgcHJpbWFyaWx5IGludGVuZGVkIHRvIGJlIHVzZSB3aXRoaW4gY2xpLnB5CisgICAgIiIiCisgICAgaWYgbm90IG1pLm9ial90eXBlX2V4aXN0cyhvYmpfdHlwZSk6CisgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCJVbmtub3duIG9iai10eXBlOiAlcyIgJSBvYmpfdHlwZSkKKworICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgIHByaW50ICJjb21wbGV0ZV9hbGlhc19jaG9pY2U6Iiwgb2JqX3R5cGUsIGZpZWxkLCBvdGhlciwgZGF0YSwgcHJlZml4LCBzY29wZWQKKworICAgIGlmIG90aGVyIGFuZCBub19jb21tYW5kID09IEZhbHNlOgorICAgICAgICBwYXJ0cyA9IG90aGVyLnNwbGl0KCd8JykKKyAgICAgICAgb2JqX3R5cGUgPSBwYXJ0c1swXQorICAgICAgICBpZiBsZW4ocGFydHMpID4gMToKKyAgICAgICAgICAgICMgd2hhdCB0byBkbyB3aXRoIG1vcmUgcGFydHM/CisgICAgICAgICAgICBmaWVsZCA9IHBhcnRzWzFdCisKKyAgICBpZiBub3QgbWkub2JqX3R5cGVfaGFzX2ZpZWxkKG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCJVbmtub3duIGZpZWxkICVzIGZvciBvYmotdHlwZTogJXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChmaWVsZCwgb2JqX3R5cGUpKQorCisKKyAgICAjIHF1b3RlIHN0cmluZz8gIGFsaWFzIGNob2ljZXMgb3VnaHQgdG8gbmV2ZXIgaGF2ZSBzcGVjaWFsIGNoYXJhY3RlcnMKKyAgICByZXN1bHQgPSB1dGlmLmFkZF9kZWxpbShvYmplY3RzX3N0YXJ0aW5nX3dpdGgob2JqX3R5cGUsIHByZWZpeCwgZmllbGQpLCAnICcpCisgICAgY29tcGxldGlvbnMudXBkYXRlKGRpY3QoW1t4LCAiJXMgYWxpYXMgc2VsZWN0aW9uIiAlIHByZXR0eShvYmpfdHlwZSldCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiByZXN1bHRdKSkKKworCitkZWYgY29tcGxldGVfY29uZmlnKHByZWZpeCwgZGF0YSwgY29tcGxldGlvbnMsIGNvcHkgPSBGYWxzZSk6CisgICAgIiIiCisgICAgQ29tcGxldGUgc2VsZWN0aW9ucyBmb3IgdGhlICdjb3B5JyBjb21tYW5kLgorICAgICIiIgorCisgICAgY29uZmlncyA9IHNkbnNoLnN0b3JlLmdldF91c2VyX2RhdGFfdGFibGUoJycsICJsYXRlc3QiKQorCisgICAgIyBleGNsdWRlIHNvdXJjZSBpZiBpdHMgaW4gdGhlIGRhdGEKKyAgICBzb3VyY2UgPSBkYXRhLmdldCgnc291cmNlJywnJykKKyAgICBzcmNfZHN0ID0gJ3NvdXJjZScgaWYgc291cmNlID09ICcnIGVsc2UgJ2Rlc3RpbmF0aW9uJworCisgICAgYW55ID0gRmFsc2UKKyAgICBhbnlfY29uZmlnID0gRmFsc2UKKworICAgIGlmIGNvcHk6CisgICAgICAgIGlmICdydW5uaW5nLWNvbmZpZycuc3RhcnRzd2l0aChwcmVmaXgpOgorICAgICAgICAgICAgaWYgc291cmNlICE9ICdydW5uaW5nLWNvbmZpZyc6CisgICAgICAgICAgICAgICAgY29tcGxldGlvbnNbJ3J1bm5pbmctY29uZmlnICddID0gJ3J1bm5pbmctY29uZmlnICVzJyAlIHNyY19kc3QKKworICAgIGZvciBjIGluIGNvbmZpZ3M6CisgICAgICAgIGlmICgnY29uZmlnOi8vJyArIGNbJ25hbWUnXSkuc3RhcnRzd2l0aChwcmVmaXgpOgorICAgICAgICAgICAgaWYgc291cmNlICE9ICJjb25maWc6Ly8iICsgY1snbmFtZSddOgorICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zWyJjb25maWc6Ly8iICsgY1snbmFtZSddICsgJyAnXSA9IFwKKyAgICAgICAgICAgICAgICAgICAgJ1NhdmVkIENvbmZpZ3VyYXRpb24gJXMnICUgc3JjX2RzdAorICAgICAgICAgICAgYW55X2NvbmZpZyA9IFRydWUKKworICAgIGlmIHNvdXJjZSAhPSAnJyBhbmQgJ2NvbmZpZzovLycuc3RhcnRzd2l0aChwcmVmaXgpOgorICAgICAgICBjb21wbGV0aW9uc1snY29uZmlnOi8vJ10gPSAnY29uZmlnIHByZWZpeCAlcycgJSBzcmNfZHN0CisKKyAgICBpZiBjb3B5OgorICAgICAgICBmb3IgYWRkaXRpb25zIGluIFsiaHR0cDovLyIsICJmaWxlOi8vIiwgImZ0cDovLyIsICJ0ZnRwOi8vIiwgJ2NvbmZpZzovLycgXToKKyAgICAgICAgICAgIGlmIGFkZGl0aW9ucy5zdGFydHN3aXRoKHByZWZpeCk6CisgICAgICAgICAgICAgICAgY29tcGxldGlvbnNbYWRkaXRpb25zXSA9ICdvdGhlciAlcycgJSBzcmNfZHN0CisKKworZGVmIGNvbXBsZXRlX2ludGVyZmFjZV9saXN0KHByZWZpeCwgZGF0YSwgY29tcGxldGlvbnMpOgorICAgICIiIgorICAgIEludGVyZmFjZSBsaXN0cyBhcmUgY29tbWEgc2VwYXJhdGVkIGludGVyZmFjZXMgb3IgcmFuZ2UKKyAgICBvZiBpbnRlcmZhY2VzLiAgCisKKyAgICBUaGUgcHJlZml4IGhlcmUgcGxheXMgYW4gaW1wb3J0YW50IHJvbGUgaW4gZGV0ZXJtaW5pbmcgd2hhdAorICAgIG91Z2h0IHRvIGFwcGVhciBuZXN0LgorICAgICIiIgorICAgIGlmIG5vdCAnc3dpdGNoJyBpbiBkYXRhOgorICAgICAgICByZXR1cm4KKworICAgIGRlZiBzd2l0Y2hfaW50ZXJmYWNlc19zdGFydGluZ3dpdGgoaW50ZXJmYWNlcywgaW50ZiwgcHJlZml4LCBjb21wbGV0aW9ucyk6CisgICAgICAgIHJlc3VsdCA9IFtwcmVmaXggKyB4IGZvciB4IGluIGludGVyZmFjZXMua2V5cygpIGlmIHguc3RhcnRzd2l0aChpbnRmKV0KKyAgICAgICAgY29tcGxldGlvbnMudXBkYXRlKGRpY3QoW1t4LCAia25vd24gaW50ZXJmYWNlIl0gZm9yIHggaW4gcmVzdWx0XSkpCisgICAgICAgIHJldHVybgorCisgICAgZGVmIGhpZ2hlcl9pbnRlcmZhY2VzKGludGVyZmFjZXMsIGludGYsIHByZWZpeCwgY29tcGxldGlvbnMpOgorICAgICAgICAjIGRlcGVuZCBvbiBoYXZpbmcgYW4gaW50ZWdlciBhcyB0aGUgbGFzdCBjb21wb25lbnQKKyAgICAgICAgbGFzdF9kaWdpdHMgPSByZS5jb21waWxlKHInKC4qKShcZCspJCcpCisgICAgICAgIG1hdGNoID0gbGFzdF9kaWdpdHMuc2VhcmNoKGludGYpCisgICAgICAgIGlmIG1hdGNoOiAKKyAgICAgICAgICAgIGlmX25hbWUgPSBtYXRjaC5ncm91cCgxKQorICAgICAgICAgICAgZmlyc3QgPSBpbnQobWF0Y2guZ3JvdXAoMikpCisgICAgICAgICAgICBmb3IgaSBpbiBpbnRlcmZhY2VzOgorICAgICAgICAgICAgICAgIG1hdGNoID0gbGFzdF9kaWdpdHMuc2VhcmNoKGkpCisgICAgICAgICAgICAgICAgaWYgbWF0Y2ggYW5kIG1hdGNoLmdyb3VwKDEpID09IGlmX25hbWUgYW5kIGludChtYXRjaC5ncm91cCgyKSkgPiBmaXJzdDoKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbnNbcHJlZml4ICsgbWF0Y2guZ3JvdXAoMildID0gJ2ludGVmYWNlIGNob2ljZS4nCisKKyAKKyAgICBwb3J0cyA9IHJlc3RfdG9fbW9kZWwuZ2V0X21vZGVsX2Zyb21fdXJsKCdpbnRlcmZhY2VzJywgZGF0YSkKKyAgICBpbnRlcmZhY2VzID0gZGljdChbW3hbJ25hbWUnXSwgeF0gZm9yIHggaW4gcG9ydHNdKQorICAgIHNpYyA9IHNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKCdzd2l0Y2gtaW50ZXJmYWNlLWNvbmZpZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N3aXRjaCcsIGRhdGFbJ3N3aXRjaCddKQorICAgIGludGVyZmFjZXMudXBkYXRlKGRpY3QoW1t4WyduYW1lJ10sIHhdIGZvciB4IGluIHNpY10pKQorCisgICAgIyBwZWVrIGF0IHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgcHJlZml4OgorICAgICMgIGlmIGl0J3MgYSBkYXNoLCB0aGVuIGNob29zZSBpbnRlcmZhY2VzIHdpdGggdGhlIHNhbWUgcHJlZml4LAorICAgICMgIGlmIGl0cyBhIGNvbW1hLCB0aGVuIGNob3NlIGFub3RoZXIgaW50ZXJmYWNlCisgICAgCisgICAgZnJvbnRfaXRlbSA9ICcnCisgICAgaWYgbGVuKHByZWZpeCkgPiAwOgorICAgICAgICBpZiBwcmVmaXhbLTFdID09ICctJzoKKyAgICAgICAgICAgICMgY29tcGxldGUgbW9yZSBjaG9pY2VzCisgICAgICAgICAgICBwcmV2aW91cyA9IHByZWZpeFs6LTFdCisgICAgICAgICAgICBpZiBsZW4ocHJldmlvdXMpOgorICAgICAgICAgICAgICAgIGxhc3RfaXRlbSA9IHByZXZpb3VzLnNwbGl0KCcsJylbLTFdCisgICAgICAgICAgICAgICAgaWYgbGFzdF9pdGVtIGluIGludGVyZmFjZXM6CisgICAgICAgICAgICAgICAgICAgIGhpZ2hlcl9pbnRlcmZhY2VzKGludGVyZmFjZXMsIGxhc3RfaXRlbSwgcHJlZml4LCBjb21wbGV0aW9ucykKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIAorICAgICAgICBpZiBwcmVmaXhbLTFdICE9ICcsJzoKKyAgICAgICAgICAgIGlmIGxlbihwcmVmaXgpID4gMjoKKyAgICAgICAgICAgICAgICBwYXJ0cyA9IHByZWZpeC5zcGxpdCgnLCcpCisgICAgICAgICAgICAgICAgbGFzdF9pdGVtID0gcGFydHNbLTFdCisgICAgICAgICAgICAgICAgIyBzZWUgaWYgdGhlIGxhc3RfaXRlbSBvZiBwcmVmaXggaXMgYSBrbm93biBpbnRlcmZhY2UuCisgICAgICAgICAgICAgICAgaWYgbGFzdF9pdGVtIGluIGludGVyZmFjZXM6CisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zW3ByZWZpeCArICcsJ10gICAgID0gJ0xpc3Qgb2YgaW50ZXJmYWNlcycKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbnNbcHJlZml4ICsgJy0nXSAgICAgPSAnUmFuZ2Ugb2YgaW50ZXJmYWNlcycKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbnNbcHJlZml4ICsgJyA8Y3I+J10gPSAnQ3VycmVudCBpbnRlcmZhY2VzIHNlbGVjdGlvbicKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAgIyBzZWUgaWYgdGhlIGxhc3QgaXRlbSBpcyBhIHJhbmdlIChpbnRmIGluIGZyb250LCB0aGVuIGEgZGFzaCkKKyAgICAgICAgICAgICAgICBjID0gW3kgZm9yIHkgaW4gW3ggZm9yIHggaW4gaW50ZXJmYWNlcyBpZiBsYXN0X2l0ZW0uc3RhcnRzd2l0aCh4KV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGVuKGxhc3RfaXRlbSkgPiBsZW4oeSkgYW5kIGxhc3RfaXRlbVtsZW4oeSldID09ICctJ10KKyAgICAgICAgICAgICAgICBpZiBsZW4oYyk6CisgICAgICAgICAgICAgICAgICAgICMgZm91bmQgaW50ZXJmYWNlIHdpdGggYSBkYXNoIGFmdGVyd2FyZHMKKyAgICAgICAgICAgICAgICAgICAgIyBjb3VsZCBhY3R1YWxseSBjaGVjayB0aGF0IGV2ZXJ5dGhpbmcgYWZ0ZXIgJy0nIGlzIGRpZ2l0cworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uc1twcmVmaXggKyAnLCddICAgICA9ICdMaXN0IG9mIGludGVyZmFjZXMnCisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zW3ByZWZpeCArICcgPGNyPiddID0gJ0N1cnJlbnQgaW50ZXJmYWNlcyBzZWxlY3Rpb24nCisgICAgICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICAgICAgICAgZmlyc3RfaXRlbXMgPSAnJy5qb2luKFsnJXMsJyAlIHggZm9yIHggaW4gcGFydHNbOi0xXV0pCisgICAgICAgICAgICAgICAgc3dpdGNoX2ludGVyZmFjZXNfc3RhcnRpbmd3aXRoKGludGVyZmFjZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RfaXRlbSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3RfaXRlbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zKQorICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICAgICAjIHNpbmdsZSB0b2tlbiBwcmVmaXgKKyAgICAgICAgICAgIHN3aXRjaF9pbnRlcmZhY2VzX3N0YXJ0aW5nd2l0aChpbnRlcmZhY2VzLCBwcmVmaXgsICcnLCBjb21wbGV0aW9ucykKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICAjIGxhc3QgY2hhcmFjdGVyIGlzIGEgY29tbWEKKyAgICAgICAgaWYgbGVuKHByZWZpeCkgPT0gMToKKyAgICAgICAgICAgIHJldHVybiAjIGp1c3QgYSBjb21tYQorCisgICAgICAgICMgY3JhY2sgaW50byBwYXJ0cywgc2VlIGlmIHRoZSBsYXN0IGlzIGEgcmFuZ2UsIGlmIHNvLCB0aGVuCisgICAgICAgICMgdGhlIGNob2ljZXMgYXJlIGEgY29tbWEgb3IgYSA8Y3I+CisgICAgICAgIHBhcnRzID0gcHJlZml4LnNwbGl0KCcsJykKKyAgICAgICAgZnJvbnRfaXRlbSA9ICcsJy5qb2luKHBhcnRzWzotMV0pICsgJywnCisgICAgICAgIHByZWZpeCA9IHBhcnRzWy0xXQorICAgICAgICAjIGZhbGwgdGhyb3VnaAorCisgICAgc3dpdGNoX2ludGVyZmFjZXNfc3RhcnRpbmd3aXRoKGludGVyZmFjZXMsIHByZWZpeCwgZnJvbnRfaXRlbSwgY29tcGxldGlvbnMpCisgICAgcmV0dXJuCisKKworZGVmIGNvbXBsZXRlX3N0YXRpY2Zsb3dfYWN0aW9ucyhwcmVmaXgsIGRhdGEsIGNvbXBsZXRpb25zKToKKyAgICAjIHBlZWsgYXQgdGhlIGxhc3QgY2hhcmFjdGVyIGluIHRoZSBwcmVmaXg6CisgICAgIyAgaWYgaXQncyBhIGNvbW1hLCB0aGVuIGNob29zZSBhbGwgdGhlIHBvc3NpYmxlIGFjdGlvbnMKKyAgICAjICBpZiBpdHMgYSBlcXVhbCwgdGhlbiBkaXNwbGF5IHRoZSBjaG9pY2VzIGZvciB0aGlzIG9wdGlvbgorICAgIAorICAgIHByZWZpeF9wYXJ0cyA9IFtdCisKKyAgICBhY3Rpb25zID0geworICAgICAgICAnb3V0cHV0PScgICAgICAgICAgICA6ICdEZXNjcmliZSBwYWNrZXQgZm9yd2FyZGluZycsCisgICAgICAgICdlbnF1ZXVlPScgICAgICAgICAgIDogJ0VucXVldWUgcGFja2V0JywKKyAgICAgICAgJ3N0cmlwLXZsYW49JyAgICAgICAgOiAnU3RyaXAgVmxhbicsCisgICAgICAgICdzZXQtdmxhbi1pZD0nICAgICAgIDogJ1NldCBWbGFuJywKKyAgICAgICAgJ3NldC12bGFuLXByaW9yaXR5PScgOiAnU2V0IFByaW9yaXR5JywKKyAgICAgICAgJ3NldC1zcmMtbWFjPScgICAgICAgOiAnU2V0IFNyYyBNYWMnLAorICAgICAgICAnc2V0LWRzdC1tYWM9JyAgICAgICA6ICdTZXQgRHN0IE1hYycsCisgICAgICAgICdzZXQtdG9zLWJpdHM9JyAgICAgIDogJ1NldCBUT1MgQml0cycsCisgICAgICAgICdzZXQtc3JjLWlwPScgICAgICAgIDogJ1NldCBJUCBTcmMnLAorICAgICAgICAnc2V0LWRzdC1pcD0nICAgICAgICA6ICdTZXQgSVAgRHN0JywKKyAgICAgICAgJ3NldC1zcmMtcG9ydD0nICAgICAgOiAnU2V0IFNyYyBJUCBQb3J0JywKKyAgICAgICAgJ3NldC1kc3QtcG9ydD0nICAgICAgOiAnU2V0IGRzdCBJUCBQb3J0JywKKyAgICB9CisKKyAgICBhY3Rpb25fY2hvaWNlcyA9IHsKKyAgICAgICAgKCdvdXRwdXQ9JywgJ2FsbCcpICAgICAgICAgIDogJ0ZvcndhcmQgdG8gYWxsIHBvcnRzJywKKyAgICAgICAgKCdvdXRwdXQ9JywgJ2NvbnRyb2xsZXInKSAgIDogJ0ZvcndhcmQgdG8gY29udHJvbGxlcicsCisgICAgICAgICgnb3V0cHV0PScsICdsb2NhbCcpICAgICAgICA6ICdGb3J3YXJkIHRvIGxvY2FsJywKKyAgICAgICAgKCdvdXRwdXQ9JywgJ2luZ3Jlc3MtcG9ydCcpIDogJ0ZvcndhcmQgdG8gaW5ncmVzcyBwb3J0JywKKyAgICAgICAgKCdvdXRwdXQ9JywgJ25vcm1hbCcpICAgICAgIDogJ0ZvcndhcmQgdG8gaW5ncmVzcyBwb3J0JywKKyAgICAgICAgKCdvdXRwdXQ9JywgJ2Zsb29kJykgICAgICAgIDogJ0ZvcndhcmQsIGZsb29kIHBvcnRzJywKKyAgICAgICAgKCdvdXRwdXQ9JywgKCc8bnVtYmVyPicsICc8bnVtYmVyPicpKSAgOiAnRm9yd2FyZCwgdG8gYSBzcGVjaWZpYyBwb3J0JywKKworICAgICAgICAoJ2VucXVldWU9JywgKCc8cG9ydE51bWJlcj4uPHF1ZXVlSUQ+JywgJzxwb3J0TnVtYmVyPi48cXVldWVJRD4nKSkgOiAnRW5xdWV1ZSB0byBwb3J0LCBxdWV1ZSBpZCcsCisKKyAgICAgICAgKCdzZXQtdmxhbi1pZD0nLCgnPHZsYW4gbnVtYmVyPicsJzx2bGFuIG51bWJlcj4nKSkgOiAnU2V0IHZsYW4gdG8gPHZsYW4gbnVtYmVyPicsCisgICAgICAgIAorICAgICAgICAoJ3NldC12bGFuLXByaW9yaXR5PScsKCc8dmxhbiBwcmlvPicsJzx2bGFuIHByaW8+JykpIDogJ1NldCB2bGFuIHByaW9yaXR5IHRvIDxwcmlvPicsCisKKyAgICAgICAgKCdzZXQtdG9zLWJpdHM9JywoJzxudW1iZXI+JywpKSA6ICdTZXQgVE9TIGJpdHMnLAorICAgICAgICAoJ3NldC1zcmMtbWFjPScsKCc8c3JjLW1hYy1hZGRyZXNzPicsKSkgOiAnU2V0IHNyYyBtYWMgYWRkcmVzcycsCisKKyAgICAgICAgKCdzZXQtZHN0LW1hYz0nLCgnPGRzdC1tYWMtYWRkcmVzcz4nLCkpIDogJ1NldCBkc3QgbWFjIGFkZHJlc3MnLAorICAgICAgICAKKyAgICAgICAgKCdzZXQtc3JjLWlwPScsKCc8c3JjLWlwLWFkZHJlc3M+JywpKSA6ICdTZXQgc3JjIG1hYyBhZGRyZXNzJywKKyAgICAgICAgCisgICAgICAgICgnc2V0LWRzdC1pcD0nLCgnPHNyYy1pcC1hZGRyZXNzPicsKSkgOiAnU2V0IGRzdCBpcCBhZGRyZXNzJywKKyAgICB9CisKKyAgICBmb3IgcHMgaW4gcHJlZml4LnNwbGl0KCcsJyk6CisgICAgICAgIHBzX3BhcnRzID0gcHMuc3BsaXQoJz0nKQorICAgICAgICBpZiBsZW4ocHNfcGFydHMpID09IDEgYW5kIHBzX3BhcnRzWzBdICE9ICcnOgorICAgICAgICAgICAgIyBwb3NzaWJseSBpbmNvbXBsZXRlIGl0ZW0gYmVmb3JlIHRoZSAnPScKKyAgICAgICAgICAgIGZvciBjaG9pY2UgaW4gW3ggZm9yIHggaW4gYWN0aW9ucy5rZXlzKCkgaWYgeC5zdGFydHN3aXRoKHBzX3BhcnRzWzBdKV06CisgICAgICAgICAgICAgICAgY29tcGxldGlvbnNbY2hvaWNlXSA9IGFjdGlvbnNbY2hvaWNlXQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGVsaWYgbGVuKHBzX3BhcnRzKSA9PSAyOgorICAgICAgICAgICAgaWYgbGVuKHBzX3BhcnRzWzBdKSBhbmQgbGVuKHBzX3BhcnRzWzFdKToKKyAgICAgICAgICAgICAgICBwcmVmaXhfcGFydHMuYXBwZW5kKChwc19wYXJ0c1swXSwgcHNfcGFydHNbMV0pKQorICAgICAgICAgICAgZWxpZiBsZW4ocHNfcGFydHNbMF0pIGFuZCBsZW4ocHNfcGFydHNbMV0pID09IDA6CisgICAgICAgICAgICAgICAgcHJlZml4X3BhcnRzLmFwcGVuZCgocHNfcGFydHNbMF0sICkpCisKKyAgICBpZiBwcmVmaXggPT0gJycgb3IgcHJlZml4LmVuZHN3aXRoKCcsJyk6CisgICAgICAgIGNvbXBsZXRpb25zLnVwZGF0ZShhY3Rpb25zKQorICAgIGVsaWYgcHJlZml4LmVuZHN3aXRoKCc9Jyk6CisgICAgICAgIGxhc3QgPSBwcmVmaXhfcGFydHNbLTFdCisgICAgICAgIGZvciAoKG1hdGNoLCBuZXh0KSwgZGVzYykgaW4gYWN0aW9uX2Nob2ljZXMuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIG1hdGNoWzotMV0gIT0gbGFzdFswXToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgdHlwZShuZXh0KSA9PSBzdHI6CisgICAgICAgICAgICAgICAgY29tcGxldGlvbnNbbWF0Y2ggKyBuZXh0XSA9IGRlc2MKKyAgICAgICAgICAgIGVsaWYgdHlwZShuZXh0KSA9PSB0dXBsZToKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uc1sobWF0Y2ggKyBuZXh0WzBdLCBtYXRjaCArIG5leHRbMF0pXSA9IGRlc2MKKyAgICAgICAgICAgICMgZWxzZT8gIGRpc3BsYXkgZXJyb3I/CisgICAgZWxpZiBsZW4ocHJlZml4X3BhcnRzKToKKyAgICAgICAgbGFzdCA9IHByZWZpeF9wYXJ0c1stMV0KKyAgICAgICAgaWYgbGVuKGxhc3QpID09IDE6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsaWYgbGVuKGxhc3QpID09IDI6CisgICAgICAgICAgICAjIHRyeSB0byBmaW5kIHRoZSBsZWZ0IGl0ZW0KKyAgICAgICAgICAgIGZvciAoKG1hdGNoLCBuZXh0KSwgZGVzYykgaW4gYWN0aW9uX2Nob2ljZXMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpZiBtYXRjaFs6LTFdICE9IGxhc3RbMF06CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgdHlwZShuZXh0KSA9PSBzdHIgYW5kIG5leHQgPT0gbGFzdFsxXToKKyAgICAgICAgICAgICAgICAgICAgZW9sID0gcHJlZml4ICsgJyA8Y3I+JworICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uc1soZW9sLCBlb2wpXSA9ICdDb21wbGV0ZSBDaG9pY2UnCisgICAgICAgICAgICAgICAgICAgIGFub3RoZXIgPSBwcmVmaXggKyAnLCcKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbnNbKGFub3RoZXIsIGFub3RoZXIpXSA9ICdBZGQgYW5vdGhlciBhY3Rpb24nCisgICAgICAgICAgICAgICAgZWxpZiB0eXBlKG5leHQpID09IHN0ciBhbmQgbmV4dC5zdGFydHN3aXRoKGxhc3RbMV0pOgorICAgICAgICAgICAgICAgICAgICBiYXNlX3BhcnQgPSAnJy5qb2luKHByZWZpeC5ycGFydGl0aW9uKCcsJylbOi0xXSkKKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbnNbYmFzZV9wYXJ0ICsgbGFzdFswXSArICc9JyArIG5leHRdID0gJ0NvbXBsZXRlIHNlbGVjdGlvbicKKyAgICAgICAgICAgICAgICBlbGlmIGxlbihsYXN0WzFdKToKKyAgICAgICAgICAgICAgICAgICAgIyBoYXJkIHRvIHNheSB3aGF0IGNob2ljZXMgY2FuIGJlIGFkZGVkIGhlcmUsCisgICAgICAgICAgICAgICAgICAgICMgdGhlcmUgYXJlIHNvbWUgY2hhcmFjdGVycyBhZnRlciAnPScsIGJ1dCBub25lCisgICAgICAgICAgICAgICAgICAgICMgd2hpY2ggbWF0Y2ggc29tZSBwcmVmaXguCisgICAgICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICAgICAgICAgICMgaG93IHRvIG1hdGNoIHRoZSB2YWx1ZXM/CisKKworZGVmIGNvbXBsZXRlX2Rlc2NyaXB0aW9uX3ZlcnNpb25zKHByZWZpeCwgY29tcGxldGlvbnMpOgorICAgIGZvciBlbGVtZW50IGluIG9zLmxpc3RkaXIoc2Ruc2guY29tbWFuZF9wYWNrYWdlc19wYXRoKCkpOgorICAgICAgICBpZiBlbGVtZW50ID09ICdfX2luaXRfXy5weSc6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsaWYgZWxlbWVudC5zdGFydHN3aXRoKCd2ZXJzaW9uJyk6CisgICAgICAgICAgICAjIGxlbignZWxlbWVudCcpIC0+IDcKKyAgICAgICAgICAgIHZlcnNpb24gPSAiJTIuMmYiICUgKGZsb2F0KGVsZW1lbnRbNzpdKSAvIDEwMCkKKyAgICAgICAgICAgIGlmIHZlcnNpb25bLTI6XSA9PSAnMDAnOgorICAgICAgICAgICAgICAgIHZlcnNpb24gPSB2ZXJzaW9uWzoyXSArICcwJworICAgICAgICAgICAgaWYgdmVyc2lvbi5zdGFydHN3aXRoKHByZWZpeCk6CisgICAgICAgICAgICAgICAgY29tcGxldGlvbnNbdmVyc2lvbl0gPSAnVkVSU0lPTicKKyAgICAgICAgICAgIGlmIHZlcnNpb24gPT0gJzIuMCc6ICAgICMgY3VycmVudGx5IGlmIDIuMCBleGlzdHMsIHNvIGRvZXMgMS4wCisgICAgICAgICAgICAgICAgaWYgJzEuMCcuc3RhcnRzd2l0aChwcmVmaXgpOgorICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uc1snMS4wJ10gPSAnVkVSU0lPTicKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIGVsZW1lbnQuc3RhcnRzd2l0aChwcmVmaXgpOgorICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zW2VsZW1lbnRdID0gJ1ZFUlNJT04nCisKKworZGVmIGNvbXBsZXRlX2xvZ19uYW1lcyhwcmVmaXgsIGRhdGEsIGNvbXBsZXRpb25zKToKKyAgICAiIiIKKyAgICBFbnVtZXJhdGUgYWxsIHRoZSBsb2cgZmlsZSBjaG9pY2VzIGJhc2VkIG9uIHJlcGxpZXMgZnJvbSB0aGUgUkVTVCBBUEkuCisgICAgIiIiCisgICAgY29udHJvbGxlciA9IGRhdGEuZ2V0KCdjb250cm9sbGVyJykKKyAgICBmb3IgaXBfcG9ydCBpbiBjb250cm9sbGVyX2lwX2FuZF9wb3J0KGNvbnRyb2xsZXIpOgorICAgICAgICB1cmwgPSBsb2dfdXJsKGlwX2FuZF9wb3J0ID0gaXBfcG9ydCkKKyAgICAgICAgbG9nX25hbWVzID0gY29tbWFuZC5zZG5zaC5yZXN0X3NpbXBsZV9yZXF1ZXN0X3RvX2RpY3QodXJsKQorICAgICAgICBmb3IgbG9nIGluIGxvZ19uYW1lczoKKyAgICAgICAgICAgIGxvZ19uYW1lID0gbG9nWydsb2cnXQorICAgICAgICAgICAgaWYgbG9nX25hbWUuc3RhcnRzd2l0aChwcmVmaXgpOgorICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zW2xvZ19uYW1lICsgJyAnXSA9ICdMb2cgU2VsZWN0aW9uJworCisKKworZGVmIGluaXRfY29tcGxldGlvbnMoYnMsIG1vZGkpOgorICAgIGdsb2JhbCBzZG5zaCwgbWkKKyAgICBzZG5zaCA9IGJzCisgICAgbWkgPSBtb2RpCisKKyAgICBjb21tYW5kLmFkZF9jb21wbGV0aW9uKCdjb21wbGV0ZS1vYmplY3QtZmllbGQnLCBjb21wbGV0ZV9vYmplY3RfZmllbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnb2JqX3R5cGUnICAgICA6ICckb2JqLXR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhcmVudF9maWVsZCcgOiAnJHBhcmVudC1maWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFyZW50X2lkJyAgICA6ICckY3VycmVudC1tb2RlLW9iai1pZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICckZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByZWZpeCcgICAgICAgOiAnJHRleHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICAgICAgOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Njb3BlZCcgICAgICAgOiAnJHNjb3BlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICckb3RoZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vZGUnICAgICAgICAgOiAnJG1vZGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb25zJyAgOiAnJGNvbXBsZXRpb25zJ319KQorCisgICAgY29tbWFuZC5hZGRfY29tcGxldGlvbignY29tcGxldGUtdGFnLW1hcHBpbmcnLCBjb21wbGV0ZV90YWdfbWFwcGluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydvYmpfdHlwZScgICAgIDogJyRvYmotdHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGFyZW50X2ZpZWxkJyA6ICckcGFyZW50LWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXJlbnRfaWQnICAgIDogJyRjdXJyZW50LW1vZGUtb2JqLWlkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJyRmaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJlZml4JyAgICAgICA6ICckdGV4dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NvcGVkJyAgICAgICA6ICckc2NvcGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvdGhlcicgICAgICAgIDogJyRvdGhlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9kZScgICAgICAgICA6ICckbW9kZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbnMnICA6ICckY29tcGxldGlvbnMnfX0pCisKKyAgICBjb21tYW5kLmFkZF9jb21wbGV0aW9uKCdjb21wbGV0ZS1mcm9tLWFub3RoZXInLCBjb21wbGV0ZV9mcm9tX2Fub3RoZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnb3RoZXInICAgICAgICA6ICckb3RoZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29ial90eXBlJyAgICAgOiAnJG9iai10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXJlbnRfZmllbGQnIDogJyRwYXJlbnQtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BhcmVudF9pZCcgICAgOiAnJGN1cnJlbnQtbW9kZS1vYmotaWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnJGZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmVmaXgnICAgICAgIDogJyR0ZXh0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgICAgIDogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY29wZWQnICAgICAgIDogJyRzY29wZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb25zJyAgOiAnJGNvbXBsZXRpb25zJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub19jb21tYW5kJyAgIDogJyRpcy1uby1jb21tYW5kJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleHBsaWNpdCcgICAgIDogJyRleHBsaWNpdCcsIH19KQorCisgICAgY29tbWFuZC5hZGRfY29tcGxldGlvbignY29tcGxldGUtYWxpYXMtY2hvaWNlJywgY29tcGxldGVfYWxpYXNfY2hvaWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J29ial90eXBlJyAgICA6ICckb2JqLXR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICA6ICckZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICA6ICckb3RoZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByZWZpeCcgICAgICA6ICckdGV4dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgICAgIDogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY29wZWQnICAgICAgOiAnJHNjb3BlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbnMnIDogJyRjb21wbGV0aW9ucycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm9fY29tbWFuZCcgIDogJyRpcy1uby1jb21tYW5kJywgfX0pCisKKyAgICBjb21tYW5kLmFkZF9jb21wbGV0aW9uKCdjb21wbGV0ZS1jb25maWcnLCBjb21wbGV0ZV9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsncHJlZml4JzogJyR0ZXh0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJzogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9ucyc6ICckY29tcGxldGlvbnMnfX0pCisKKyAgICBjb21tYW5kLmFkZF9jb21wbGV0aW9uKCdjb21wbGV0ZS1jb25maWctY29weScsIGNvbXBsZXRlX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydwcmVmaXgnOiAnJHRleHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb25zJzogJyRjb21wbGV0aW9ucycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29weScgOiBUcnVlIH19KQorCisgICAgY29tbWFuZC5hZGRfY29tcGxldGlvbignY29tcGxldGUtaW50ZXJmYWNlLWxpc3QnLCBjb21wbGV0ZV9pbnRlcmZhY2VfbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydwcmVmaXgnOiAnJHRleHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb25zJzogJyRjb21wbGV0aW9ucyd9fSkKKworICAgIGNvbW1hbmQuYWRkX2NvbXBsZXRpb24oJ2NvbXBsZXRlLXN0YXRpY2Zsb3ctYWN0aW9ucycsIGNvbXBsZXRlX3N0YXRpY2Zsb3dfYWN0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydwcmVmaXgnOiAnJHRleHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb25zJzogJyRjb21wbGV0aW9ucyd9fSkKKworICAgIGNvbW1hbmQuYWRkX2NvbXBsZXRpb24oJ2Rlc2NyaXB0aW9uLXZlcnNpb25zJywgY29tcGxldGVfZGVzY3JpcHRpb25fdmVyc2lvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsncHJlZml4JzogJyR0ZXh0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9ucyc6ICckY29tcGxldGlvbnMnfX0pCisKKyAgICBjb21tYW5kLmFkZF9jb21wbGV0aW9uKCdjb21wbGV0ZS1sb2ctbmFtZXMnLCBjb21wbGV0ZV9sb2dfbmFtZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsncHJlZml4JyAgICAgOiAnJHRleHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICAgIDogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9ucyc6ICckY29tcGxldGlvbnMnfX0pCisKZGlmZiAtLWdpdCBhL2NsaS9jX2RhdGFfaGFuZGxlcnMucHkgYi9jbGkvY19kYXRhX2hhbmRsZXJzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA0YzY0ODEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvY19kYXRhX2hhbmRsZXJzLnB5CkBAIC0wLDAgKzEsNDgyIEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMSwyMDEyLDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKKyMKKyMgREFUQSBIQU5ETEVSUworIworCitpbXBvcnQgcmUKK2ltcG9ydCBtb2RpCitpbXBvcnQgdXRpZgoraW1wb3J0IGVycm9yCitpbXBvcnQgY29tbWFuZAoraW1wb3J0IHRpbWUKK2ltcG9ydCBkYXRldGltZQoraW1wb3J0IHJlc3RfdG9fbW9kZWwKK2ltcG9ydCB0cmFjZWJhY2sKKworZnJvbSBtaWR3IGltcG9ydCAqCisKK0NPTU1BTkRfQ0lEUl9SRSA9IHJlLmNvbXBpbGUocideKChcZHsxLDN9XC4pezN9XGR7MSwzfSkvKFxkezEsMn0/KSQnKQorCisKK2RlZiBzcGxpdF9jaWRyX2RhdGFfaGFuZGxlcih2YWx1ZSwgZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZXN0X2lwPSdpcCcsIGRlc3RfbmV0bWFzaz0nbmV0bWFzaycsIG5lZyA9IEZhbHNlKToKKyAgICAiIiIKKyAgICBTcGxpdCBhIGNpZHIgYWRkcmVzcyAoZS5nLiAxOTIuMTY4LjEuMS8yNCkgaW50byBzZXBhcmF0ZSBJUCBhZGRyZXNzCisgICAgYW5kIG5ldG1hc2sgdmFsdWUuIFRoZSBuYW1lcyBvZiB0aGUgaXAgYW5kIG5ldG1hc2sgZmllbGRzIGFyZQorICAgIHNwZWNpZmllZCAodHlwaWNhbGx5IGRpcmVjdGx5IGluIHRoZSBzYW1lIGJsb2NrL2RpY3Rpb25hcnkgd2hlcmUKKyAgICB0aGUgYXJndW1lbnQgZGF0YSBoYW5kbGVyIGlzIHNwZWNpZmVkKSB3aXRoIGEgJ2Rlc3QtaXAnIGFuZCBhCisgICAgJ2Rlc3QtbmV0bWFzaycgdmFsdWVzLgorICAgICIiIgorICAgIGdsb2JhbCBzZG5zaAorCisgICAgbSA9IENPTU1BTkRfQ0lEUl9SRS5tYXRjaCh2YWx1ZSkKKyAgICBpZiBtOgorICAgICAgICBiaXRzID0gaW50KG0uZ3JvdXAoMykpCisgICAgICAgIGlmIGJpdHMgPiAzMjoKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCJtYXggY2lkciBibG9jayBpcyAzMiIpCisKKyAgICAgICAgZGF0YVtkZXN0X2lwXSA9IG0uZ3JvdXAoMSkKKyAgICAgICAgaWYgbmVnOgorICAgICAgICAgICAgZGF0YVtkZXN0X25ldG1hc2tdID0gdXRpZi5pbmV0X250b2EofigweGZmZmZmZmZmIDw8ICgzMiAtIGJpdHMpKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGRhdGFbZGVzdF9uZXRtYXNrXSA9IHV0aWYuaW5ldF9udG9hKCgweGZmZmZmZmZmIDw8ICgzMiAtIGJpdHMpKSkKKworCitkZWYgYWxpYXNfdG9fdmFsdWVfaGFuZGxlcih2YWx1ZSwgb2JqX3R5cGUsIGRhdGEsIGZpZWxkLCBvdGhlciA9IE5vbmUpOgorICAgICIiIgorICAgIENvbXB1dGUgdGhlIGFsaWFzIHZhbHVlIGZvciB0aGUgbmFtZWQgZmllbGQgZm9yIHRoZSBvYmpfdHlwZS4KKyAgICBQbGFjZSB0aGUgcmVzdWx0aW5nIGNvbnZlcnRlZCBmaWVsZCBpbnRvIHRoZSBkYXRhIGRpY3Rpb25hcnkuCisKKyAgICBTaW5jZSB0aGlzIGlzIGEgZGF0YS1oYW5kbGVyLCB0aGUgZGF0YSBkaWN0IG11c3QgYmUgdXBkYXRlZAorICAgIGV2ZW4gaWYgdGhpcyBpc24ndCBhbiBhbGlhcywgb3RoZXJ3aXNlIHRoZSBmaWVsZCB2YWx1ZSBpcyBsb3N0LgorICAgICIiIgorICAgIGdsb2JhbCBzZG5zaAorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICBwcmludCAnYWxpYXNfdG9fdmFsdWVfaGFuZGxlcjogJywgdmFsdWUsIG9ial90eXBlLCBkYXRhLCBmaWVsZAorCisgICAgaWYgZmllbGQgIT0gbWkucGsob2JqX3R5cGUpOgorICAgICAgICAjIGlmIHRoaXMgaXMgYSBmb3JnZWlnbiBrZXksIHVzZSB0aGUgb2JqX3R5cGUgb2YgdGhlIGZrLgorICAgICAgICBpZiBtaS5pc19mb3JlaWduX2tleShvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAgICAgKG9ial90eXBlLCBma19uYW1lKSA9IG1pLmZvcmVpZ25fa2V5X3JlZmVyZW5jZXMob2JqX3R5cGUsIGZpZWxkKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBYWFggcG9zc2libHkgb3RoZXIgY2hvaWNlcyB0byBkZXRlcm1pbmUgYWxpYXNfb2JqX3R5cGU/CisgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjoKKyAgICAgICAgICAgICAgICBwcmludCAnYWxpYXNfdG9fdmFsdWVfaGFuZGxlcjogZmllbGQgJXMgbm8gb2JqLXR5cGUgcmVmICVzICcgJSBcCisgICAgICAgICAgICAgICAgICAgICAgKGZpZWxkLCBvYmpfdHlwZSkKKyAgICAgICAgCisgICAgaWYgb3RoZXI6CisgICAgICAgIHBhcnRzID0gb3RoZXIuc3BsaXQoJ3wnKQorICAgICAgICBrZXkgPSBtaS5wayhwYXJ0c1swXSkgIyBwYXJ0c1swXSA8LSBmaXJzdCBwYXJ0IG9mIG90aGVyCisgICAgICAgIGlmIGxlbihwYXJ0cykgPiAwOgorICAgICAgICAgICAgb3RoZXIgPSBwYXJ0c1swXQorICAgICAgICAgICAga2V5ID0gZmllbGQKKyAgICAgICAgICAgICMgbm90IGNsZWFyIHdoZXRoZXIgdGhlIHBhcnRbMV0gaXMgdXNlZnVsLCB0d28gcGFydHMgdXNlZAorICAgICAgICAgICAgIyBpbiBvdGhlciBmdW5jdGlvbnMsIGV4YW1wbGUgY29tcGxldGUtZnJvbS1hbm90aGVyKCkKKyAgICAgICAgb3RoZXIgPSBtaS5vYmpfdHlwZV9yZWxhdGVkX2NvbmZpZ19vYmpfdHlwZShvdGhlcikKKyAgICAgICAgY29udmVydGVkX3ZhbHVlID0gY29udmVydF9hbGlhc190b19vYmplY3Rfa2V5KG90aGVyLCB2YWx1ZSkKKworICAgICAgICBwayA9IG1pLnBrKG90aGVyKQorICAgICAgICBpZiBtaS5pc19jb21wb3VuZF9rZXkob3RoZXIsIHBrKSBhbmQgY29udmVydGVkX3ZhbHVlICE9IHZhbHVlOgorICAgICAgICAgICAgcGtfZGljdCA9IHsgcGsgOiBjb252ZXJ0ZWRfdmFsdWUgfQorICAgICAgICAgICAgbWkuc3BsaXRfY29tcG91bmRfaW50b19kaWN0KG90aGVyLCBwaywgcGtfZGljdCwgaXNfcHJlZml4ID0gVHJ1ZSkKKyAgICAgICAgICAgIGZvciAoayx2KSBpbiBwa19kaWN0Lml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYgayAhPSBwazoKKyAgICAgICAgICAgICAgICAgICAgZGF0YVtrXSA9IHYKKyAgICAgICAgICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiYWxpYXNfdG9fdmFsdWVfaGFuZGxlcjogY29tcG91bmQgKG90aGVyKSAlczolcyA8LSAlczolcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGssIGRhdGFba10sIG90aGVyLCBjb252ZXJ0ZWRfdmFsdWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjYXNlID0gbWkuZ2V0X29ial90eXBlX2ZpZWxkX2Nhc2Vfc2Vuc2l0aXZlKG90aGVyLCBmaWVsZCkKKyAgICAgICAgICAgIGRhdGFbZmllbGRdID0gdXRpZi5jb252ZXJ0X2Nhc2UoY2FzZSwgY29udmVydGVkX3ZhbHVlKQorCisgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgcHJpbnQgImFsaWFzX3RvX3ZhbHVlX2hhbmRsZXI6IChvdGhlcikgJXM6JXMgPC0gJXM6JXMiICUgXAorICAgICAgICAgICAgICAgICAgIChrZXksIGRhdGFba2V5XSwgb3RoZXIsIHZhbHVlKQorICAgIGVsc2U6CisgICAgICAgICMgU29tZSBvYmpfdHlwZXMsIGZvciBleGFtcGxlLCBob3N0LCBoYXZlIG5vIGNhc3NhbmRyYSBkYXRhLAorICAgICAgICAjIGJ1dCBkbyBoYXZlIGEgcmVsYXRlZCBvYmpfdHlwZSB3aGljaCBpcyBpbiB0aGUgc3RvcmUKKyAgICAgICAgb2JqX3R5cGUgPSBtaS5vYmpfdHlwZV9yZWxhdGVkX2NvbmZpZ19vYmpfdHlwZShvYmpfdHlwZSkKKyAgICAgICAgY29udmVydGVkX3ZhbHVlID0gY29udmVydF9hbGlhc190b19vYmplY3Rfa2V5KG9ial90eXBlLCB2YWx1ZSkKKworICAgICAgICBwayA9IG1pLnBrKG9ial90eXBlKQorICAgICAgICBpZiBtaS5pc19jb21wb3VuZF9rZXkob2JqX3R5cGUsIHBrKSBhbmQgY29udmVydGVkX3ZhbHVlICE9IHZhbHVlOgorICAgICAgICAgICAgcGtfZGljdCA9IHsgcGsgOiBjb252ZXJ0ZWRfdmFsdWUgfQorICAgICAgICAgICAgc3BsaXRfb2JqX3R5cGUgPSBvdGhlciBpZiBvdGhlciAhPSBOb25lIGVsc2Ugb2JqX3R5cGUgCisgICAgICAgICAgICBtaS5zcGxpdF9jb21wb3VuZF9pbnRvX2RpY3Qoc3BsaXRfb2JqX3R5cGUsIHBrLCBwa19kaWN0LCBpc19wcmVmaXggPSBUcnVlKQorICAgICAgICAgICAgZm9yIChrLHYpIGluIHBrX2RpY3QuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpZiBrICE9IHBrOgorICAgICAgICAgICAgICAgICAgICBkYXRhW2tdID0gdgorICAgICAgICAgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJhbGlhc190b192YWx1ZV9oYW5kbGVyOiBjb21wb3VuZCAlczolcyA8LSAlczolcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGssIGRhdGFba10sIG9ial90eXBlLCBjb252ZXJ0ZWRfdmFsdWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjYXNlID0gbWkuZ2V0X29ial90eXBlX2ZpZWxkX2Nhc2Vfc2Vuc2l0aXZlKG9ial90eXBlLCBmaWVsZCkKKyAgICAgICAgICAgIGRhdGFbZmllbGRdID0gdXRpZi5jb252ZXJ0X2Nhc2UoY2FzZSwgY29udmVydGVkX3ZhbHVlKQorCisgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjoKKyAgICAgICAgICAgICAgICBwcmludCAiYWxpYXNfdG9fdmFsdWVfaGFuZGxlcjogICVzOiVzIDwtICVzOiVzIiAlIChmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbZmllbGRdLCBvYmpfdHlwZSwgdmFsdWUpCisKKworZGVmIHJlcGxhY2VfdmFsdWVfaGFuZGxlcih2YWx1ZSwgb2JqX3R5cGUsIGRhdGEsIGZpZWxkLCBvdGhlciA9IE5vbmUpOgorICAgICIiIgorICAgIFVzZSB0aGUgb3RoZXIgZmllbGQgd2hlbiBpdHMgcHJlc2VudCB0byBmaW5kIGEgcmVsYXRlZCBvYmpfdHlwZSwKKyAgICBsb29rIGZvciB0aGUgZmllbGQgaW4gdGhhdCBzdHJ1Y3R1cmUgdG8gcG9wdWxhdGUgZGF0YS4KKyAgICAiIiIKKyAgICBnbG9iYWwgc2Ruc2gKKworICAgIHRhYmxlID0gb2JqX3R5cGUKKworICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICBwcmludCAicmVwbGFjZV92YWx1ZV9oYW5kbGVyOiBvYmpfdHlwZTogJXMgdmFsdWU6ICVzIGRhdGE6ICVzIGZpZWxkICVzIG90aGVyICVzIiAlIFwKKyAgICAgICAgICAgICAgICAob2JqX3R5cGUsIHZhbHVlLCBkYXRhLCBmaWVsZCwgb3RoZXIpCisgICAgZmllbGRzID0gW2ZpZWxkXQorICAgIGlmIG90aGVyOgorICAgICAgICBwYXJ0cyA9IG90aGVyLnNwbGl0KCd8JykKKyAgICAgICAgdGFibGUgPSBwYXJ0c1swXQorICAgICAgICBmaWVsZHMgPSBwYXJ0c1sxOl0KKworICAgIHRyeToKKyAgICAgICAgcm93ID0gc2Ruc2guZ2V0X29iamVjdF9mcm9tX3N0b3JlKHRhYmxlLCB2YWx1ZSkKKyAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICByYWlzZSBlcnJvci5Bcmd1bWVudFZhbGlkYXRpb25FcnJvcigiVW5rbm93biB2YWx1ZSAlcyAoJXMpIiAlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh2YWx1ZSwgb2JqX3R5cGUpKQorICAgIGZvciBmaWVsZCBpbiBmaWVsZHM6CisgICAgICAgIGlmIGZpZWxkIG5vdCBpbiByb3c6CisgICAgICAgICAgICByYWlzZSBlcnJvci5Bcmd1bWVudFZhbGlkYXRpb25FcnJvcigiVW5rbm93biBmaWVsZCAlcyAoJXMpIiAlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpZWxkLCBvYmpfdHlwZSkpCisgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgcHJpbnQgJ3JlcGxhY2VfdmFsdWVfaGFuZGxlcjogc2V0ICVzIDwtICVzIGZyb20gb2JqLXR5cGUgJXMnICVcCisgICAgICAgICAgICAgICAgICAoZmllbGQsIHJvd1tmaWVsZF0sIHRhYmxlKQorICAgICAgICBkYXRhW2ZpZWxkXSA9IHJvd1tmaWVsZF0KKworCitkZWYgZW5hYmxlX2Rpc2FibGVfdG9fYm9vbGVhbl9oYW5kbGVyKHZhbHVlLCBkYXRhLCBmaWVsZCk6CisgICAgaWYgdmFsdWUgPT0gJ2VuYWJsZSc6CisgICAgICAgIGRhdGFbZmllbGRdID0gVHJ1ZQorICAgIGlmIHZhbHVlID09ICdkaXNhYmxlJzoKKyAgICAgICAgZGF0YVtmaWVsZF0gPSBGYWxzZQorCisKK2RlZiBkYXRlX3RvX2ludGVnZXJfaGFuZGxlcih2YWx1ZSwgZGF0YSwgZmllbGQpOgorICAgIGlmICh2YWx1ZSA9PSAnbm93JyBvciB2YWx1ZSA9PSAnY3VycmVudCcpOgorICAgICAgICBkYXRhW2ZpZWxkXSA9IGludCh0aW1lLnRpbWUoKSoxMDAwKQorCisgICAgdHJ5OgorICAgICAgICBkYXRhW2ZpZWxkXSA9IGludCh2YWx1ZSkKKyAgICBleGNlcHQ6CisgICAgICAgIHBhc3MKKworICAgIGZvciBmLHByZSBpbiBbKCclWS0lbS0lZFQlSDolTTolUycsIE5vbmUpLAorICAgICAgICAgICAgICAgICAgKCclWS0lbS0lZCAlSDolTTolUycsIE5vbmUpLAorICAgICAgICAgICAgICAgICAgKCclWS0lbS0lZFQlSDolTTolUyV6JywgTm9uZSksCisgICAgICAgICAgICAgICAgICAoJyVZLSVtLSVkICVIOiVNOiVTJXonLCBOb25lKSwKKyAgICAgICAgICAgICAgICAgICgnJVktJW0tJWQnLCBOb25lKSwKKyAgICAgICAgICAgICAgICAgICgnJW0tJWQnLCAnJVktJyksCisgICAgICAgICAgICAgICAgICAoJyVIOiVNJywgJyVZLSVtLSVkVCcpXToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdCA9IHZhbHVlCisgICAgICAgICAgICBpZiBwcmU6CisgICAgICAgICAgICAgICAgcHJlZiA9IGRhdGV0aW1lLmRhdGV0aW1lLm5vdygpLnN0cmZ0aW1lKHByZSkKKyAgICAgICAgICAgICAgICBmID0gcHJlICsgZgorICAgICAgICAgICAgICAgIHQgPSBwcmVmICsgdAorCisgICAgICAgICAgICB0aGV0aW1lID0gZGF0ZXRpbWUuZGF0ZXRpbWUuc3RycHRpbWUodCwgZikKKyAgICAgICAgICAgIGRhdGFbZmllbGRdID0gaW50KHRpbWUubWt0aW1lKHRoZXRpbWUudGltZXR1cGxlKCkpKjEwMDApCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHBhc3MKKworCitIRVhfUkUgPSByZS5jb21waWxlKHInXjB4WzAtOWEtZkEtRl0rJCcpCisKK2RlZiBoZXhfdG9faW50ZWdlcl9oYW5kbGVyKHZhbHVlLCBkYXRhLCBmaWVsZCk6CisgICAgaWYgSEVYX1JFLm1hdGNoKHN0cih2YWx1ZSkpOgorICAgICAgICBfdmFsdWUgPSBzdHIoaW50KHZhbHVlLCAxNikpCisgICAgZWxzZToKKyAgICAgICAgX3ZhbHVlID0gc3RyKGludCh2YWx1ZSkpCisgICAgZGF0YVtmaWVsZF0gPSBfdmFsdWUKKworCitkZWYgX2ludmVydF9uZXRtYXNrKHZhbHVlKToKKyAgICBzcGxpdF9ieXRlcyA9IHZhbHVlLnNwbGl0KCcuJykKKyAgICByZXR1cm4gIiVzLiVzLiVzLiVzIiAlICgyNTUtaW50KHNwbGl0X2J5dGVzWzBdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUtaW50KHNwbGl0X2J5dGVzWzFdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUtaW50KHNwbGl0X2J5dGVzWzJdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUtaW50KHNwbGl0X2J5dGVzWzNdKSkKKworCitkZWYgY29udmVydF9pbnZlcnNlX25ldG1hc2tfaGFuZGxlcih2YWx1ZSwgZGF0YSwgZmllbGQpOgorICAgIGRhdGFbZmllbGRdID0gX2ludmVydF9uZXRtYXNrKHZhbHVlKQorCisKK2RlZiBpbnRlcmZhY2VfcmFuZ2VzKG5hbWVzKToKKyAgICAiIiIKKyAgICBHaXZlbiBhIGxpc3Qgb2YgaW50ZXJmYWNlcyAoc3RyaW5ncyksIGluIGFueSBvcmRlciwgd2l0aCBhIG51bWVyaWMgc3VmZml4LAorICAgIGNvbGxlY3QgdG9nZXRoZXIgdGhlIHByZWZpeCBjb21wb25lbnRzLCBhbmQgY3JlYXRlIHJhbmdlcyB3aXRoCisgICAgYWRqYWNlbnQgbnVtZXJpYyBpbnRlcmZhY2VzLCBzbyB0aGF0IGEgbGFyZ2UgY29sbGVjdGlvbiBvZiBuYW1lcworICAgIGJlY29tZXMgZWFzaWVyIHRvIHJlYWQuICBBdCB0aGUgd29yc3QsIHRoZSBsaXN0IHdpbGwgYmUgYXMKKyAgICBjb21wbGljYXRlZCBhcyB0aGUgb3JpZ2luYWwgKHdoaWNoIHdvdWxkIHR5cGljYWxseSBiZSB2ZXJ5IHVubGlrZWx5KQorCisgICAgRXhhbXBsZTogbmFtZXMgPC0gWydFdGgwJywgJ0V0aDEnLCAnRXRoMicsICAnRXRoNCcsICdFdGg1JywgJ0V0aDgnXQorICAgICAgICAgICAgIHJlc3VsdCA8LSBbJ0V0aDAtMicsICdFdGg0LTUnLCAnRXRoOCddCisKKyAgICAgICAgICAgICBuYW1lcyA8LSBbJzEnLCcyJywnMyddCisgICAgICAgICAgICAgcmVzdWx0IDwtIFsnMS0zJ10KKworICAgICIiIgorICAgICMgY29sbGVjdCB0aGUgaW50ZXJmYWNlcyBpbnRvIGRpY3Rpb25hcmllcyBiYXNlZCBvbiBwcmVmaXhlcworICAgICMgYWhlYWQgb2YgZ3JvdXBzIG9mIGRpZ2l0cy4KKyAgICBncm91cHMgPSB7fQorCisgICAgZGVmIGlzX2RpZ2l0KGMpOgorICAgICAgICBjX29yZCA9IG9yZChjKQorICAgICAgICBpZiBjX29yZCA+PSBvcmQoJzAnKSBhbmQgY19vcmQgPD0gb3JkKCc5Jyk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGZvciBuYW1lIGluIG5hbWVzOgorICAgICAgICBpZiBpc19kaWdpdChuYW1lWy0xXSk6CisgICAgICAgICAgICBmb3IgaW5kZXggaW4gcmFuZ2UoLTIsIC1sZW4obmFtZSktMSwgLTEpOgorICAgICAgICAgICAgICAgIGlmIG5vdCBpc19kaWdpdChuYW1lW2luZGV4XSk6CisgICAgICAgICAgICAgICAgICAgIGluZGV4ICs9IDEKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGluZGV4ID0gLWxlbihuYW1lKQorCisgICAgICAgICAgICBwcmVmaXggPSBuYW1lWzppbmRleF0KKyAgICAgICAgICAgIG51bWJlciA9IGludChuYW1lW2luZGV4Ol0pCisgICAgICAgICAgICBpZiBub3QgcHJlZml4IGluIGdyb3VwczoKKyAgICAgICAgICAgICAgICBncm91cHNbcHJlZml4XSA9IFtdCisgICAgICAgICAgICBncm91cHNbcHJlZml4XS5hcHBlbmQobnVtYmVyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZ3JvdXBzW25hbWVdID0gW10KKworICAgIGZvciBwcmVmaXggaW4gZ3JvdXBzOgorICAgICAgICBncm91cHNbcHJlZml4XSA9IHNvcnRlZCh1dGlmLnVuaXF1ZV9saXN0X2Zyb21fbGlzdChncm91cHNbcHJlZml4XSkpCisgICAgCisgICAgcmFuZ2VzID0gW10KKyAgICBmb3IgKHByZWZpeCwgdmFsdWUpIGluIGdyb3Vwcy5pdGVtcygpOgorICAgICAgICBpZiBsZW4odmFsdWUpID09IDA6CisgICAgICAgICAgICByYW5nZXMuYXBwZW5kKHByZWZpeCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxvdyA9IHZhbHVlWzBdCisgICAgICAgICAgICBwcmV2ID0gbG93CisgICAgICAgICAgICBmb3IgbmV4dCBpbiB2YWx1ZVsxOl0gKyBbdmFsdWVbLTFdICsgMl06ICMgK1tdIGZsdXNoZXMgbGFzdCBpdGVtCisgICAgICAgICAgICAgICAgaWYgbmV4dCA+IHByZXYgKyAxOgorICAgICAgICAgICAgICAgICAgICBpZiBwcmV2ID09IGxvdzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlcy5hcHBlbmQoJyVzJXMnICUgKHByZWZpeCwgbG93KSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJhbmdlcy5hcHBlbmQoJyVzJXMtJXMnICUgKHByZWZpeCwgbG93LCBwcmV2KSkKKyAgICAgICAgICAgICAgICAgICAgbG93ID0gbmV4dAorICAgICAgICAgICAgICAgIHByZXYgPSBuZXh0CisgCisgICAgcmV0dXJuIHJhbmdlcworCisKKyNwcmludCBpbnRlcmZhY2VfcmFuZ2VzKFsnMScsJzInLCczJywgJ29lJ10pCisjcHJpbnQgaW50ZXJmYWNlX3JhbmdlcyhbJ0V0aDEnLCdFdGgyJywnRXRoMycsICdFdGg0JywgJ281JywgJ282J10pCisKKworZGVmIGNoZWNrX21pc3NpbmdfaW50ZXJmYWNlKHN3aXRjaCwgaW50ZXJmYWNlKToKKyAgICAjCisgICAgIyBUaGUgc3dpdGNoIHZhbHVlIGNvdWxkIGJlIGEgY29tcG91bmQga2V5IHJlZmVyZW5jZSB0byBhCisgICAgIyBzd2l0Y2gsIGlmIHRoZXJlJ3MgYSAnfCcgaW4gdGhlIHN3aXRjaCB2YWx1ZCwgdHJ5IHRvIGd1ZXNzCisgICAgIyB3aGljaCBlbnRyeSBpcyB0aGUgc3dpdGNoCisKKyAgICBwYXJ0cyA9IHN3aXRjaC5zcGxpdCgnfCcpCisgICAgaWYgbGVuKHBhcnRzKSA+IDE6CisgICAgICAgIGZvciBwYXJ0IGluIHBhcnRzOgorICAgICAgICAgICAgaWYgdXRpZi5DT01NQU5EX0RQSURfUkUubWF0Y2gocGFydCk6CisgICAgICAgICAgICAgICAgc3dpdGNoID0gcGFydAorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzd2l0Y2ggPSBwYXJ0WzBdCisKKyAgICB0cnk6CisgICAgICAgIHJvdyA9IHJlc3RfdG9fbW9kZWwuZ2V0X21vZGVsX2Zyb21fdXJsKCdzd2l0Y2hlcycsIHsnZHBpZCcgOiBzd2l0Y2ggfSkKKyAgICBleGNlcHQ6CisgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uIG9yIHNkbnNoLmRlYnVnX2JhY2t0cmFjZToKKyAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICByb3cgPSBbXQorCisgICAgaWYgbGVuKHJvdykgPT0gMCBvciByb3dbMF0uZ2V0KCdpcC1hZGRyZXNzJywgJycpID09ICcnOgorICAgICAgICBzZG5zaC53YXJuaW5nKCdzd2l0Y2ggJXMgY3VycmVudGx5IG5vdCBhY3RpdmUsICcKKyAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlICVzIG1heSBub3QgZXhpc3QnICUKKyAgICAgICAgICAgICAgICAgICAgICAoc3dpdGNoLCBpbnRlcmZhY2UpKQorICAgICAgICByZXR1cm4KKworICAgIHRyeToKKyAgICAgICAgcG9ydHMgPSByZXN0X3RvX21vZGVsLmdldF9tb2RlbF9mcm9tX3VybCgnaW50ZXJmYWNlcycsIHsnZHBpZCcgOiBzd2l0Y2ggfSkKKyAgICBleGNlcHQ6CisgICAgICAgICMgY2FuJ3QgdmFsaWRhdGUgY3VycmVudCBsaXN0IG9mIGludGVyZmFjZSBuYW1lcworICAgICAgICByZXR1cm4KKworICAgIGlmX25hbWVzID0gW3hbJ3BvcnROYW1lJ10ubG93ZXIoKSBmb3IgeCBpbiBwb3J0c10KKyAgICBpZiBub3QgaW50ZXJmYWNlLmxvd2VyKCkgaW4gaWZfbmFtZXM6CisgICAgICAgICMgcHJlLXNlcnZjZSBjYXNlLCB0cnkgdG8gaWRlbnRpZnkgdW5pcXVlIHJhbmdlcworICAgICAgICByYW5nZXMgPSBpbnRlcmZhY2VfcmFuZ2VzKFt4Wydwb3J0TmFtZSddIGZvciB4IGluIHBvcnRzXSkKKworICAgICAgICBzZG5zaC53YXJuaW5nKCAnYWN0aXZlIHN3aXRjaCBoYXMgbm8gaW50ZXJmYWNlICIlcyIsICcgCisgICAgICAgICAgICAgICAgICAna25vd246ICVzJyAlIChpbnRlcmZhY2UsICcsICcuam9pbihyYW5nZXMpKSArIAorICAgICAgICAgICAgICAgICAgJ1xuVXNlIFwiZXhpdDsgbm8gaW50ZXJmYWNlICVzXCIgdG8gcmVtb3ZlJyAlIGludGVyZmFjZSkKKworCitkZWYgd2Fybl9taXNzaW5nX2ludGVyZmFjZSh2YWx1ZSwgZGF0YSwgZmllbGQsIGlzX25vLCBvYmpfdHlwZSwgb2JqX3ZhbHVlICk6CisgICAgaWYgbm90IGlzX25vOgorICAgICAgICAjIG5lZWQgc3dpdGNoLCBpZl9uYW1lIAorICAgICAgICBwa19kYXRhID0geyBtaS5wayhvYmpfdHlwZSkgOiBvYmpfdmFsdWUgfQorICAgICAgICBtaS5zcGxpdF9jb21wb3VuZF9pbnRvX2RpY3Qob2JqX3R5cGUsIG1pLnBrKG9ial90eXBlKSwgcGtfZGF0YSwgVHJ1ZSkKKyAgICAgICAgc3dpdGNoID0gcGtfZGF0YS5nZXQoJ3N3aXRjaCcpCisgICAgICAgIGlmIHN3aXRjaCA9PSBOb25lOgorICAgICAgICAgICAgc3dpdGNoID0gcGtfZGF0YS5nZXQoJ2RwaWQnKQorICAgICAgICBpZiBzd2l0Y2ggPT0gTm9uZToKKyAgICAgICAgICAgIHN3aXRjaCA9IGRhdGEuZ2V0KCdzd2l0Y2gnKQorICAgICAgICBpZiBzd2l0Y2ggPT0gTm9uZToKKyAgICAgICAgICAgIHN3aXRjaCA9IGRhdGEuZ2V0KCdkcGlkJykKKyAgICAgICAgaWYgc3dpdGNoID09IE5vbmU6CisgICAgICAgICAgICByYWlzZSBlcnJvci5Bcmd1bWVudFZhbGlkYXRpb25FcnJvcigiQ2FuJ3QgaWRlbnRpZnkgc3dpdGNoIGZvciB2YWxpZGF0aW9uIikKKyAgICAgICAgZm9yY2UgPSBUcnVlIGlmIGRhdGEuZ2V0KCdmb3JjZScsICcnKSAhPSAnJyBlbHNlIEZhbHNlCisgICAgICAgIGNoZWNrX21pc3NpbmdfaW50ZXJmYWNlKHN3aXRjaCwgdmFsdWUpCisgICAgZGF0YVtmaWVsZF0gPSB2YWx1ZQorCitkZWYgY29udmVydF9pbnRlcmZhY2VfdG9fcG9ydCh2YWx1ZSwgZGF0YSwgZmllbGQsIG90aGVyID0gTm9uZSwgc2NvcGVkID0gTm9uZSk6CisgICAgIyBsb29rIGZvciB0aGUgc3dpdGNoIG5hbWUgaW4gZGF0YQorICAgIGlmIHNjb3BlZDoKKyAgICAgICAgZHBpZCA9IGRhdGEuZ2V0KHNjb3BlZCkKKyAgICBlbGlmICdkcGlkJyBpbiBkYXRhOgorICAgICAgICBkcGlkID0gZGF0YVsnZHBpZCddCisgICAgZWxzZToKKyAgICAgICAgZHBpZCA9IGRhdGEuZ2V0KCdzd2l0Y2gnLCAnJykgIyBwb3NzaWJseSBvdGhlciBjaG9pY2VzCisKKyAgICAjIGlmIGl0cyBub3QgYSBzcGVjaWZpYyBzd2l0Y2gsIG5vIGNvbnZlcnNpb24gaXMgcG9zc2libGUKKyAgICAjIHNob3VsZCB0aGUgdmFsdWUgYmUgcGFzc2VkIHRocm91Z2g/CisgICAgaWYgZHBpZCA9PSAnJzoKKyAgICAgICAgZGF0YVtmaWVsZF0gPSB2YWx1ZQorICAgICAgICByZXR1cm4KKworICAgIHBvcnRzID0gcmVzdF90b19tb2RlbC5nZXRfbW9kZWxfZnJvbV91cmwoJ2ludGVyZmFjZXMnLCB7J2RwaWQnIDogZHBpZH0pCisgICAgZm9yIHBvcnQgaW4gcG9ydHM6CisgICAgICAgIGlmIHBvcnRbJ3BvcnROYW1lJ10gPT0gdmFsdWU6CisgICAgICAgICAgICBkYXRhW2ZpZWxkXSA9IHBvcnRbJ3BvcnROdW1iZXInXSAjIHNob3VsZCB0aGlzIGJlIGEgc3RyaW5nPworICAgICAgICAgICAgYnJlYWsKKyAgICBlbHNlOgorICAgICAgICByYWlzZSBlcnJvci5Bcmd1bWVudFZhbGlkYXRpb25FcnJvcigiQ2FuJ3QgZmluZCBwb3J0ICVzIG9uIHN3aXRjaCAlcyIgJQorICAgICAgICAgICAgICAgICh2YWx1ZSwgZHBpZCkpCisKKworZGVmIGNvbnZlcnRfdGFnX3RvX3BhcnRzKHZhbHVlLCBkYXRhLCBuYW1lc3BhY2Vfa2V5LCBuYW1lX2tleSwgdmFsdWVfa2V5KToKKyAgICAiIiIKKyAgICBTcGxpdCBhIHRhZyBvZiB0aGUgZm9ybSBbbnNdLm5hbWU9dmFsdWUgaW50byB0aGUgdGhyZWUKKyAgICBjb21wb25lbnQgcGFydHMKKyAgICAiIiIKKworICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICBwcmludCAiY29udmVydF90YWdfdG9fcGFydHM6ICVzICVzICVzICVzICVzIiAlICgKKyAgICAgICAgICAgICAgICB2YWx1ZSwgZGF0YSwgbmFtZXNwYWNlX2tleSwgbmFtZV9rZXksIHZhbHVlX2tleSkKKworICAgIHRhZ19hbmRfdmFsdWUgPSB2YWx1ZS5zcGxpdCgnPScpCisgICAgaWYgbGVuKHRhZ19hbmRfdmFsdWUpICE9IDI6CisgICAgICAgIHJhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCJ0YWcgPFt0YWctbmFtZXNwYWNlLl1uYW1lPj08dmFsdWU+IikKKworICAgIHRhZ19wYXJ0cyA9IHRhZ19hbmRfdmFsdWVbMF0uc3BsaXQoJy4nKQorICAgIGlmIGxlbih0YWdfcGFydHMpID09IDE6CisgICAgICAgIHRhZ19uYW1lc3BhY2UgPSAiZGVmYXVsdCIKKyAgICAgICAgdGFnX25hbWUgPSB0YWdfcGFydHNbMF0KKyAgICBlbGlmIGxlbih0YWdfcGFydHMpID49IDI6CisgICAgICAgIHRhZ19uYW1lc3BhY2UgPSAnLicuam9pbih0YWdfcGFydHNbOi0xXSkKKyAgICAgICAgdGFnX25hbWUgPSB0YWdfcGFydHNbLTFdCisKKyAgICAjIHNob3VsZCB0aGUgbmFtZXMgaGF2ZSBzb21lIHNwZWNpZmljIHZhbGlkYXRpb24/CisgICAgZGF0YVtuYW1lc3BhY2Vfa2V5XSA9IHRhZ19uYW1lc3BhY2UKKyAgICBkYXRhW25hbWVfa2V5XSAgICAgID0gdGFnX25hbWUKKyAgICBkYXRhW3ZhbHVlX2tleV0gICAgID0gdGFnX2FuZF92YWx1ZVsxXQorCisKK2RlZiBpbml0X2RhdGFfaGFuZGxlcnMoYnMsIG1vZGkpOgorICAgIGdsb2JhbCBzZG5zaCwgbWkKKyAgICBzZG5zaCA9IGJzCisgICAgbWkgPSBtb2RpCisKKyAgICBjb21tYW5kLmFkZF9hcmd1bWVudF9kYXRhX2hhbmRsZXIoJ3NwbGl0LWNpZHItZGF0YScsIHNwbGl0X2NpZHJfZGF0YV9oYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J3ZhbHVlJzogJyR2YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YSc6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVzdF9pcCc6ICckZGVzdC1pcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVzdF9uZXRtYXNrJzogJyRkZXN0LW5ldG1hc2snfX0pCisKKyAgICBjb21tYW5kLmFkZF9hcmd1bWVudF9kYXRhX2hhbmRsZXIoJ3NwbGl0LWNpZHItZGF0YS1pbnZlcnNlJywgc3BsaXRfY2lkcl9kYXRhX2hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsndmFsdWUnOiAnJHZhbHVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJzogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXN0X2lwJzogJyRkZXN0LWlwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXN0X25ldG1hc2snOiAnJGRlc3QtbmV0bWFzaycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmVnJyA6IFRydWV9fSkKKworICAgIGNvbW1hbmQuYWRkX2FyZ3VtZW50X2RhdGFfaGFuZGxlcignYWxpYXMtdG8tdmFsdWUnLCBhbGlhc190b192YWx1ZV9oYW5kbGVyLAorICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J3ZhbHVlJzogJyR2YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YSc6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnOiAnJGZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvdGhlcic6ICckb3RoZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29ial90eXBlJyA6ICckb2JqLXR5cGUnfX0pCisKKyAgICBjb21tYW5kLmFkZF9hcmd1bWVudF9kYXRhX2hhbmRsZXIoJ3JlcGxhY2UtdmFsdWUnLCByZXBsYWNlX3ZhbHVlX2hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsndmFsdWUnOiAnJHZhbHVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJzogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCc6ICckZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ290aGVyJzogJyRvdGhlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb2JqX3R5cGUnIDogJyRvYmotdHlwZSd9fSkKKworICAgIGNvbW1hbmQuYWRkX2FyZ3VtZW50X2RhdGFfaGFuZGxlcignZW5hYmxlLWRpc2FibGUtdG8tYm9vbGVhbicsIGVuYWJsZV9kaXNhYmxlX3RvX2Jvb2xlYW5faGFuZGxlciwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeyd2YWx1ZSc6ICckdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJzogJyRmaWVsZCd9fSkKKworICAgIGNvbW1hbmQuYWRkX2FyZ3VtZW50X2RhdGFfaGFuZGxlcignZGF0ZS10by1pbnRlZ2VyJywgZGF0ZV90b19pbnRlZ2VyX2hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsndmFsdWUnIDogJyR2YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgIDogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgOiAnJGZpZWxkJ319KQorCisgICAgY29tbWFuZC5hZGRfYXJndW1lbnRfZGF0YV9oYW5kbGVyKCdoZXgtdG8taW50ZWdlcicsIGhleF90b19pbnRlZ2VyX2hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsndmFsdWUnIDogJyR2YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgIDogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgOiAnJGZpZWxkJ319KQorCisgICAgY29tbWFuZC5hZGRfYXJndW1lbnRfZGF0YV9oYW5kbGVyKCdjb252ZXJ0LWludmVyc2UtbmV0bWFzaycsIGNvbnZlcnRfaW52ZXJzZV9uZXRtYXNrX2hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsndmFsdWUnIDogJyR2YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgIDogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgOiAnJGZpZWxkJ319KQorCisgICAgY29tbWFuZC5hZGRfYXJndW1lbnRfZGF0YV9oYW5kbGVyKCd3YXJuLW1pc3NpbmctaW50ZXJmYWNlJywgd2Fybl9taXNzaW5nX2ludGVyZmFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeyd2YWx1ZScgICAgIDogJyR2YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICA6ICckZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lzX25vJyAgICAgOiAnJGlzLW5vLWNvbW1hbmQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29ial90eXBlJyAgOiAnJGN1cnJlbnQtbW9kZS1vYmotdHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb2JqX3ZhbHVlJyA6ICckY3VycmVudC1tb2RlLW9iai1pZCd9fSkKKworICAgIGNvbW1hbmQuYWRkX2FyZ3VtZW50X2RhdGFfaGFuZGxlcignY29udmVydC1pbnRlcmZhY2UtdG8tcG9ydCcsIGNvbnZlcnRfaW50ZXJmYWNlX3RvX3BvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsndmFsdWUnICAgICA6ICckdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICAgOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnJGZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvdGhlcicgICAgIDogJyRvdGhlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NvcGVkJyAgICA6ICckc2NvcGVkJ319KQorCisgICAgY29tbWFuZC5hZGRfYXJndW1lbnRfZGF0YV9oYW5kbGVyKCdjb252ZXJ0LXRhZy10by1wYXJ0cycsIGNvbnZlcnRfdGFnX3RvX3BhcnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J3ZhbHVlJyAgICAgICAgICA6ICckdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICAgICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZXNwYWNlX2tleScgIDogJyRuYW1lc3BhY2Uta2V5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduYW1lX2tleScgICAgICAgOiAnJG5hbWUta2V5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZV9rZXknICAgICAgOiAnJHZhbHVlLWtleSd9fSkKZGlmZiAtLWdpdCBhL2NsaS9jX3ZhbGlkYXRpb25zLnB5IGIvY2xpL2NfdmFsaWRhdGlvbnMucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzA4MzgxMgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9jX3ZhbGlkYXRpb25zLnB5CkBAIC0wLDAgKzEsNDk3IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMSwyMDEyLDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2ltcG9ydCBlcnJvcgoraW1wb3J0IGNvbW1hbmQKK2ltcG9ydCBjb2xsZWN0aW9ucworaW1wb3J0IG51bWJlcnMKK2ltcG9ydCByZQoraW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IHV0aWYKK2ltcG9ydCByZXN0X3RvX21vZGVsCitpbXBvcnQgZGF0ZXRpbWUKK2ltcG9ydCBzb2NrZXQKKworZnJvbSBtaWR3IGltcG9ydCAqCisKK2RlZiB2YWxpZGF0ZV9zdHJpbmcodHlwZWRlZiwgdmFsdWUpOgorICAgICIiIgorICAgIFZhbGlkYXRlIGEgc3RyaW5nLCBjaGVjayBsZW5ndGguCisgICAgIiIiCisKKyAgICAjIENoZWNrIHRvIHNlZSBpZiB0aGUgdHlwZWRlZiBoYXMgYW55IHBhdHRlcm4gcmVzdHJpY3Rpb25zLiBJZiBpdCBkb2VzLAorICAgICMgdGhlbiBtYXRjaCBhZ2FpbnN0IGFsbCBvZiB0aGUgcGF0dGVybnMuIElmIGl0IG1hdGNoZXMgYW55CisgICAgIyBvZiB0aGUgcGF0dGVybnMgKGkuZS4gbm90IGFsbCBvZiB0aGUgcGF0dGVybnMpLCB0aGVuIHRoZSBhcmd1bWVudAorICAgICMgdmFsdWUgaXMgY29uc2lkZXJlZCB0byBiZSB2YWxpZC4KKyAgICBwYXR0ZXJucyA9IHR5cGVkZWYuZ2V0KCdwYXR0ZXJuJykKKyAgICBpZiBwYXR0ZXJuczoKKyAgICAgICAgIyBJZiBpdCdzIGEgc2luZ2xlIHBhdHRlcm4gY29udmVydCBpdCB0byBhIHR1cGxlLCBzbyB3ZSBjYW4gaGFuZGxlCisgICAgICAgICMgaXQgaW4gYSBjb21tb24gd2F5IGJlbG93LiBOb3RlIHRoYXQgd2UgZG9uJ3QgdXNlIGNvbGxlY3Rpb24uU2VxdWVuY2UKKyAgICAgICAgIyBpbiB0aGUgaXNpbnN0YW5jZSBjYWxsIGJlY2F1c2Ugc3RyaW5ncyBhcmUgc2VxdWVuY2VzCisgICAgICAgIGlmIGNvbW1hbmQuX2lzX3N0cmluZyhwYXR0ZXJucyk6CisgICAgICAgICAgICBwYXR0ZXJucyA9IChwYXR0ZXJucywpCisKKyAgICAgICAgZm9yIHBhdHRlcm4gaW4gcGF0dGVybnM6CisgICAgICAgICAgICBpZiByZS5tYXRjaChwYXR0ZXJuLCBzdHIodmFsdWUpKToKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBlbHNlOgorICAgICAgICAgICAgY29tbWFuZC5fcmFpc2VfYXJndW1lbnRfdmFsaWRhdGlvbl9leGNlcHRpb24odHlwZWRlZiwgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZhbGlkIHN0cmluZyBwYXR0ZXJuJykKKworICAgICMgQ2hlY2sgZm9yIGFueSBsZW5ndGggcmVzdHJpY3Rpb25zLiBUaGlzIGNhbiBiZSBhIHNpbmdsZSBzY2FsYXIgbGVuZ3RoIG9yCisgICAgIyBhIHNpbmdsZSBsZW5ndGggcmFuZ2Ugb3IgYSBzZXF1ZW5jZSBvZiBlaXRoZXIgb2YgdGhvc2UuIEZvciBzY2FsYXIgbGVuZ3RocworICAgICMgdGhlIGxlbmd0aCBtdXN0IG1hdGNoIGl0IGV4YWN0bHkuIEZvciBsZW5ndGggcmFuZ2VzIHRoZSBsZW5ndGggb2YgdGhlIGFyZ3VtZW50CisgICAgIyBtdXN0IGJlIGJldHdlZW4gdGhlIHR3byB2YWx1ZXMgKGluY2x1c2l2ZSkuIEZvciBhIGxpc3Qgb2YgbGVuZ3RoIHNwZWNzLCB0aGUKKyAgICAjIGxlbmd0aCBtdXN0IG1hdGNoIGFueSBvZiB0aGUgbGVuZ3RocyAoZWl0aGVyIHNjYWxhciBvciByYW5nZSkgaW4gdGhlIGxpc3QuCisgICAgbGVuZ3RocyA9IHR5cGVkZWYuZ2V0KCdsZW5ndGgnKQorICAgIGlmIGxlbmd0aHM6CisgICAgICAgIGlmIGNvbW1hbmQuX2lzX3NpbmdsZV9yYW5nZShsZW5ndGhzKToKKyAgICAgICAgICAgIGxlbmd0aHMgPSAobGVuZ3RocywpCisgICAgICAgIGZvciBsZW5ndGggaW4gbGVuZ3RoczoKKyAgICAgICAgICAgIGNvbW1hbmQuX2NoZWNrX29uZV9yYW5nZShsZW5ndGgpCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGxlbmd0aCwgbnVtYmVycy5JbnRlZ3JhbCk6CisgICAgICAgICAgICAgICAgaWYgbGVuKHZhbHVlKSA9PSBsZW5ndGg6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBpZiBsZW4odmFsdWUpID49IGxlbmd0aFswXSBhbmQgbGVuKHZhbHVlKSA8PSBsZW5ndGhbMV06CisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNvbW1hbmQuX3JhaXNlX2FyZ3VtZW50X3ZhbGlkYXRpb25fZXhjZXB0aW9uKHR5cGVkZWYsIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52YWxpZCBzdHJpbmcgbGVuZ3RoJykKKworICAgIHJldHVybiB2YWx1ZQorCitkZWYgdmFsaWRhdGVfaW50ZWdlcl9yYW5nZSh0eXBlZGVmLCB2YWx1ZSwgcmFuZ2VzKToKKyAgICAjIENoZWNrIGZvciBhbnkgcmFuZ2UgcmVzdHJpY3Rpb25zLiBUaGlzIGNhbiBiZSBhIHNpbmdsZSBzY2FsYXIgdmFsdWUgb3IKKyAgICAjIGEgc2luZ2xlIHJhbmdlIG9yIGEgbGlzdC90dXBsZSBvZiBhIGNvbWJpbmF0aW9uIG9mIHRob3NlLiBGb3Igc2NhbGFyIHJhbmdlcworICAgICMgdGhlIGFyZyBtdXN0IG1hdGNoIGl0IGV4YWN0bHkuIEZvciByYW5nZXMgdGhlIHZhbHVlIG9mIHRoZSBhcmd1bWVudAorICAgICMgbXVzdCBiZSBiZXR3ZWVuIHRoZSB0d28gdmFsdWVzIChpbmNsdXNpdmUpLiBGb3IgYSBsaXN0IG9mIHJhbmdlIHNwZWNzLCB0aGUKKyAgICAjIHZhbHVlIG11c3QgbWF0Y2ggYW55IG9mIHRoZSBsZW5ndGhzIChlaXRoZXIgc2NhbGFyIG9yIHJhbmdlKSBpbiB0aGUgbGlzdC4KKyAgICBpZiByYW5nZXM6CisgICAgICAgIGlmIGNvbW1hbmQuX2lzX3NpbmdsZV9yYW5nZShyYW5nZXMpOgorICAgICAgICAgICAgcmFuZ2VzID0gKHJhbmdlcywpCisgICAgICAgIGZvciByIGluIHJhbmdlczoKKyAgICAgICAgICAgIGNvbW1hbmQuX2NoZWNrX29uZV9yYW5nZShyKQorICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShyLCBudW1iZXJzLkludGVncmFsKToKKyAgICAgICAgICAgICAgICBpZiB2YWx1ZSA9PSByOgorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBsb3dlcl9ib3VuZGFyeSA9IGNvbW1hbmQuX2NvbnZlcnRfcmFuZ2VfYm91bmRhcnkoclswXSwgdmFsdWUpCisgICAgICAgICAgICAgICAgdXBwZXJfYm91bmRhcnkgPSBjb21tYW5kLl9jb252ZXJ0X3JhbmdlX2JvdW5kYXJ5KHJbMV0sIHZhbHVlKQorICAgICAgICAgICAgICAgIGlmIHZhbHVlID49IGxvd2VyX2JvdW5kYXJ5IGFuZCB2YWx1ZSA8PSB1cHBlcl9ib3VuZGFyeToKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGNvbW1hbmQuX3JhaXNlX2FyZ3VtZW50X3ZhbGlkYXRpb25fZXhjZXB0aW9uKHR5cGVkZWYsIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUgaXMgb3V0c2lkZSBzcGVjaWZpZWQgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmFuZ2U6ICglZC0lZCknICUgKHJbMF0sIHJbMV0pKQorCitkZWYgdmFsaWRhdGVfaW50ZWdlcih0eXBlZGVmLCB2YWx1ZSk6CisgICAgIyBDaGVjayB0aGF0IHRoZSB2YWx1ZSBpcyBhY3R1YWxseSBhbiBpbnRlZ2VyCisgICAgdHJ5OgorICAgICAgICB2YWx1ZSA9IGludCh2YWx1ZSkKKyAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5cGVFcnJvcik6CisgICAgICAgIGNvbW1hbmQuX3JhaXNlX2FyZ3VtZW50X3ZhbGlkYXRpb25fZXhjZXB0aW9uKHR5cGVkZWYsIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZSBpcyBub3QgYW4gaW50ZWdlcicpCisgICAgdmFsaWRhdGVfaW50ZWdlcl9yYW5nZSh0eXBlZGVmLCB2YWx1ZSwgdHlwZWRlZi5nZXQoJ3JhbmdlJykpCisKKyAgICByZXR1cm4gdmFsdWUKKworSEVYX1JFID0gcmUuY29tcGlsZShyJ14weFswLTlhLWZBLUZdKyQnKQorCitkZWYgdmFsaWRhdGVfaGV4X29yX2RlY19pbnRlZ2VyKHR5cGVkZWYsIHZhbHVlKToKKyAgICAjIENoZWNrIHRoYXQgdGhlIHZhbHVlIGlzIGFjdHVhbGx5IGFuIGhleCBvciBkZWNpbWFsIGludGVnZXIKKyAgICBpZiBIRVhfUkUubWF0Y2godmFsdWUpOgorICAgICAgICAjIGlmIGl0IG1hdGNoZXMsIGl0IG91Z2h0IHRvIHN1Y2NlZWQgY29udmVyc2lvbiwgYmVsb3cncyByZWFsbHkgbm90IG5lZWRlZAorICAgICAgICB0cnk6CisgICAgICAgICAgICBfdmFsdWUgPSBpbnQodmFsdWUsIDE2KQorICAgICAgICBleGNlcHQgKFZhbHVlRXJyb3IsIFR5cGVFcnJvcik6CisgICAgICAgICAgICBjb21tYW5kLl9yYWlzZV9hcmd1bWVudF92YWxpZGF0aW9uX2V4Y2VwdGlvbih0eXBlZGVmLCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlIGlzIG5vdCBhIGhleCBpbnRlZ2VyJykKKyAgICBlbHNlOgorICAgICAgICB0cnk6CisgICAgICAgICAgICBfdmFsdWUgPSBpbnQodmFsdWUpCisgICAgICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlwZUVycm9yKToKKyAgICAgICAgICAgIGNvbW1hbmQuX3JhaXNlX2FyZ3VtZW50X3ZhbGlkYXRpb25fZXhjZXB0aW9uKHR5cGVkZWYsIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUgaXMgbm90IGFuIGludGVnZXInKQorICAgIHZhbGlkYXRlX2ludGVnZXJfcmFuZ2UodHlwZWRlZiwgX3ZhbHVlLCB0eXBlZGVmLmdldCgncmFuZ2UnKSkKKworICAgIHJldHVybiB2YWx1ZQorCisKK0lQX0FERFJfUkUgPSByZS5jb21waWxlKHInXihcZHsxLDN9XC4pezN9XGR7MSwzfSQnKQorCitkZWYgaXNfbmV0bWFzayh2YWx1ZSk6CisgICAgIiIiCisgICAgcmV0dXJuIFRydWUgb3IgRmFsc2UsIFRydWUgZm9yIGEgZG90dGVkLXF1YWQgd2hpY2ggY2FuCisgICAgYmUgaW50ZXJwcmV0ZWQgYXMgYSBuZXRtYXNrLCBGYWxzZSBvdGhlcndpc2UKKyAgICAiIiIKKyAgICBpZiBub3QgSVBfQUREUl9SRS5tYXRjaCh2YWx1ZSk6CisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgIyBjb252ZXJ0IHRoZSBuZXRtYXNrIHN0cmluZyB0byBhbiBpbnRlZ2VyCisgICAgc3BsaXRfYnl0ZXMgPSB2YWx1ZS5zcGxpdCgnLicpCisgICAgbmV0bWFza19pbnQgPSAwCisgICAgZm9yIGIgaW4gc3BsaXRfYnl0ZXM6CisgICAgICAgIG5ldG1hc2tfaW50ID0gKG5ldG1hc2tfaW50IDw8IDgpICsgaW50KGIpCisKKyAgICAjIENoZWNrIHRoYXQgdGhlIHZhbHVlIGlzIGNvbXBvc2VkIG9mIGxlYWRpbmcgMSBiaXRzIGZvbGxvd2VkIGJ5CisgICAgIyB0cmFpbGluZyAwIGJpdHMuCisgICAgdmFsaWRfbmV0bWFza3MgPSBbMHhmZmZmZmZmZiAtICgoMSA8PCBpKSAtIDEpIGZvciBpIGluIHJhbmdlKDAsMzMpXQorICAgIGlmIG5ldG1hc2tfaW50IGluIHZhbGlkX25ldG1hc2tzOgorICAgICAgICByZXR1cm4gVHJ1ZQorICAgIHJldHVybiBGYWxzZQorCitkZWYgdmFsaWRhdGVfbmV0bWFzayh0eXBlZGVmLCB2YWx1ZSk6CisgICAgaWYgbm90IGlzX25ldG1hc2sodmFsdWUpOgorICAgICAgICBjb21tYW5kLl9yYWlzZV9hcmd1bWVudF92YWxpZGF0aW9uX2V4Y2VwdGlvbih0eXBlZGVmLCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52YWxpZCBuZXRtYXNrJykKKworICAgIHJldHVybiB2YWx1ZQorCitkZWYgaXNfaW52ZXJzZV9uZXRtYXNrKHZhbHVlKToKKyAgICAiIiIKKyAgICByZXR1cm4gVHJ1ZSBvciBGYWxzZSwgVHJ1ZSBmb3IgYSBkb3R0ZWQtcXVhZCB3aGljaAorICAgIGNhbiBiZSBpbnRlcnByZXRlZCBhcyBpbnZlcnNlIG5ldG1hc2tzIChsaWtlIDAuMC4wLjI1NSksCisgICAgRmFsc2Ugb3RoZXJ3aXNlLiBUaGUgZnVsbCBtYXNrIG9mICgyNTUuMjU1LjI1NS4yNTUpIGlzIG5vdAorICAgIHRyZWF0ZWQgYXMgaW52ZXJzZV9uZXRtYXNrLCBidXQgYSB2YWxpZCBuZXRtYXNrLiBUaGlzIGhlbHBzCisgICAgZGlzYW1iaWd1YXRlIGludmVyc2VfbmV0bWFzayBmcm9tIHJlZ3VsYXIgbmV0bWFzaworICAgICIiIgorICAgIGlmIG5vdCBJUF9BRERSX1JFLm1hdGNoKHZhbHVlKToKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAjIEZpcnN0IGNvbnZlcnQgdGhlIG5ldG1hc2sgc3RyaW5nIHRvIGFuIGludGVnZXIKKyAgICBzcGxpdF9ieXRlcyA9IHZhbHVlLnNwbGl0KCcuJykKKyAgICBuZXRtYXNrX2ludCA9IDAKKyAgICBmb3IgYiBpbiBzcGxpdF9ieXRlczoKKyAgICAgICAgbmV0bWFza19pbnQgPSAobmV0bWFza19pbnQgPDwgOCkgKyBpbnQoYikKKworICAgICMgQ2hlY2sgdGhhdCB0aGUgdmFsdWUgaXMgY29tcG9zZWQgb2YgbGVhZGluZyAwIGJpdHMgZm9sbG93ZWQgYnkKKyAgICAjIHRyYWlsaW5nIDEgYml0cy4gVG8gZGlzYW1iaWd1YXRlIGludmVyc2UgZnJvbSByZWd1bGFyIG5ldG1hc2ssCisgICAgIyB3ZSBtYW5kYXRlIGEgbGVhZGluZyB6ZXJvIGJpdCBpbiB0aGUgbmV0bWFzaworICAgIHZhbGlkX25ldG1hc2tzID0gWygoMSA8PCBpKSAtIDEpIGZvciBpIGluIHJhbmdlKDAsMzIpXQorICAgIGlmIG5ldG1hc2tfaW50IGluIHZhbGlkX25ldG1hc2tzOgorICAgICAgICByZXR1cm4gVHJ1ZQorICAgIHJldHVybiBGYWxzZQorCitkZWYgdmFsaWRhdGVfaW52ZXJzZV9uZXRtYXNrKHR5cGVkZWYsIHZhbHVlKToKKyAgICAiIiIKKyAgICBUaGVzZSBsb29rIGxpa2UgMC4wLjAuMjU1LCBhbmQgYXJlIGludGVuZGVkIHRvIG9ubHkgbWF0Y2gKKyAgICB3aGVuIHRoZSB0aGVyZSBpcyBvbmUgZ3JvdXAgb2YgMSdzIGFuZCBvbmUgZ3JvdXAgb2YgemVybydzLgorICAgICIiIgorICAgIGlmIGlzX2ludmVyc2VfbmV0bWFzayh2YWx1ZSk6CisgICAgICAgIHJldHVybiB2YWx1ZQorICAgICAgICAKKyAgICBjb21tYW5kLl9yYWlzZV9hcmd1bWVudF92YWxpZGF0aW9uX2V4Y2VwdGlvbih0eXBlZGVmLCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnZhbGlkIG5ldG1hc2snKQorCitkZWYgdmFsaWRhdGVfaXBfYWRkcmVzc19ub3RfbmV0bWFzayh0eXBlZGVmLCB2YWx1ZSk6CisgICAgIiIiCisgICAgRm9yIGlwIGFkZHJlc3NlcyBhc3NvY2lhdGVkIHdpdGggaW50ZXJmYWNlcywgdGhlIGNvbmZpZ3VyZWQgdmFsdWUKKyAgICBtdXN0IG5vdCBiZSBvbmUgb2YgdGhlIG1hbnkgbWFza3MuCisgICAgIiIiCisgICAgIyBpZiBpdHMgbm90IGFuIGlwIGFkZHJlc3MsIHRoZW4gaXRzIG5vdCBhIG5ldG1hc2ssIHJlcXVpcmluZworICAgICMgYSB0ZXN0IGZvciBpcCBhZGRyZXNzIG1hdGNoLgorICAgIGlmIG5vdCBJUF9BRERSX1JFLm1hdGNoKHZhbHVlKToKKyAgICAgICAgY29tbWFuZC5fcmFpc2VfYXJndW1lbnRfdmFsaWRhdGlvbl9leGNlcHRpb24odHlwZWRlZiwgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vdCBhbiBpcC1hZGRyZXNzJykKKworICAgICMgbXVzdCBiZSBmb3VyIGRvdHRlZCBxdWFkJ3MsIHZhbGlkYXRlIGVhY2ggaXMgd2l0aGluIDJeOCByYW5nZQorICAgIGlmIGxlbihbeCBmb3IgeCBpbiB2YWx1ZS5zcGxpdCgnLicpIGlmIGludCh4KSA8IDI1Nl0pICE9IDQ6CisgICAgICAgIGNvbW1hbmQuX3JhaXNlX2FyZ3VtZW50X3ZhbGlkYXRpb25fZXhjZXB0aW9uKHR5cGVkZWYsIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub3QgYW4gaXAtYWRkcmVzcycpCisKKyAgICBpZiAobm90IGlzX2ludmVyc2VfbmV0bWFzayh2YWx1ZSkpIGFuZCAobm90IGlzX25ldG1hc2sodmFsdWUpKToKKyAgICAgICAgcmV0dXJuIHZhbHVlCisKKyAgICBjb21tYW5kLl9yYWlzZV9hcmd1bWVudF92YWxpZGF0aW9uX2V4Y2VwdGlvbih0eXBlZGVmLCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtdXN0IG5vdCBiZSBhIG1hc2snKQorCisKK0NJRFJfUkUgPSByZS5jb21waWxlKHInXigoXGR7MSwzfVwuKXszfVxkezEsM30pLyhcZHsxLDJ9PykkJykKKworZGVmIHZhbGlkYXRlX2NpZHJfcmFuZ2UodHlwZWRlZiwgdmFsdWUpOgorICAgIG1hdGNoID0gQ0lEUl9SRS5tYXRjaCh2YWx1ZSkKKyAgICBpZiBub3QgbWF0Y2g6CisgICAgICAgIGNvbW1hbmQuX3JhaXNlX2FyZ3VtZW50X3ZhbGlkYXRpb25fZXhjZXB0aW9uKHR5cGVkZWYsIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub3QgY2lkciBzeW50YXg6IGlwL24nKQorICAgIGlmIGludChtYXRjaC5ncm91cCgzKSkgPiAzMjoKKyAgICAgICAgY29tbWFuZC5fcmFpc2VfYXJndW1lbnRfdmFsaWRhdGlvbl9leGNlcHRpb24odHlwZWRlZiwgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NpZHIgcmFuZ2UgYWJvdmUgMzInKQorCisgICAgaWYgbGVuKFt4IGZvciB4IGluIG1hdGNoLmdyb3VwKDEpLnNwbGl0KCcuJykgaWYgaW50KHgpIDwgMjU2XSkgIT0gNDoKKyAgICAgICAgY29tbWFuZC5fcmFpc2VfYXJndW1lbnRfdmFsaWRhdGlvbl9leGNlcHRpb24odHlwZWRlZiwgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NpZHIgcmFuZ2UgYWJvdmUgMzInKQorCisgICAgcmV0dXJuIHZhbHVlCisKKworZGVmIHZhbGlkYXRlX3Jlc29sdmFibGVfaXBfYWRkcmVzcyh0eXBlZGVmLCB2YWx1ZSk6CisgICAgIyBzZWUgaWYgdGhpcyBpcyBhbiBvYmplY3Qgd2Uga25vdyBhYm91dCwgZm9yIGV4YW1lcGxlIGEgc3dpdGNoLgorICAgIGRwaWQgPSBjb252ZXJ0X2FsaWFzX3RvX29iamVjdF9rZXkoJ3N3aXRjaC1jb25maWcnLCB2YWx1ZSkKKyAgICB0cnk6CisgICAgICAgIHZhbGlkYXRlX2RwaWQodHlwZWRlZiwgZHBpZCkKKyAgICBleGNlcHQ6CisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc29ja2V0LmdldGhvc3RieW5hbWUodmFsdWUpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIG1zZyA9ICd1bnJlc29sdmFibGUgbmFtZScKKyAgICAgICAgICAgIGNvbW1hbmQuX3JhaXNlX2FyZ3VtZW50X3ZhbGlkYXRpb25fZXhjZXB0aW9uKHR5cGVkZWYsIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXNnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorCisKK2RlZiB2YWxpZGF0ZV9pZGVudGlmaWVyKHR5cGVkZWYsIHZhbHVlLCByZXNlcnZlZCA9IE5vbmUpOgorICAgICIiIgorICAgIFdoZW4gaWRlbnRpZmllciBpcyB1c2VkIGFzIGEgJ3R5cGUnIGluIHRoZSBkZXNjcmlwdGlvbiwgaXQgd2lsbAorICAgIHZhbGlkYXRlIGFnYWluc3QgdGhlIHNkbnNoIHJlc2VydmVkX3dvcmRzLgorCisgICAgV2hlbiBpZGVudGlmaWVyIGlzIHVzZWQgYXMgYSAnYmFzZS10eXBlJyBpbiB0aGUgZGVzY3JpcHRpb24sIGl0CisgICAgd2lsbCBhbHNvIHVzZSBhbnkgJ3Jlc2VydmVkJyBhdHRyaWJ1dGVzIGluIHRoZSBkZXNjcmlwdGlvbi4KKworICAgIFRoaXMgYWxsb3dzIHNvbWUgY29udHJvbCBvdmVyIHdoZXRoZXIgdGhlICdyZXNlcnZlZCcgYXR0cmlidXRlCisgICAgdGFrZXMgZWZmZWN0IGF0IHRoZSBzeW50YXgtbGF5ZXIgb3IgYXQgdGhlIGFjdGlvbi1sYXllcgorICAgICIiIgorICAgIGlmIG5vdCByZS5tYXRjaChyJ15bYS16QS1aMC05Xy1dKyQnLCBzdHIodmFsdWUpKToKKyAgICAgICAgbXNnID0gJ0ludmFsaWQgY2hhcmFjdGVycyBpbiBpZGVudGlmaWVyJworICAgICAgICBjb21tYW5kLl9yYWlzZV9hcmd1bWVudF92YWxpZGF0aW9uX2V4Y2VwdGlvbih0eXBlZGVmLCB2YWx1ZSwgbXNnKQorICAgIGlmIHZhbHVlIGluIHNkbnNoLnJlc2VydmVkX3dvcmRzOgorICAgICAgICBtc2cgPSAncmVzZXJ2ZWQgd29yZCAiJXMiIGluICIlcyInICUgKHZhbHVlLCAnLCAnLmpvaW4oc2Ruc2gucmVzZXJ2ZWRfd29yZHMpKQorICAgICAgICBjb21tYW5kLl9yYWlzZV9hcmd1bWVudF92YWxpZGF0aW9uX2V4Y2VwdGlvbih0eXBlZGVmLCB2YWx1ZSwgbXNnKQorICAgIGlmIHJlc2VydmVkIGFuZCB2YWx1ZSBpbiByZXNlcnZlZDoKKyAgICAgICAgbXNnID0gJ3Jlc2VydmVkIHdvcmQgIiVzIiBpbiAiJXMiJyAlICh2YWx1ZSwgJywgJy5qb2luKHJlc2VydmVkKSkKKyAgICAgICAgY29tbWFuZC5fcmFpc2VfYXJndW1lbnRfdmFsaWRhdGlvbl9leGNlcHRpb24odHlwZWRlZiwgdmFsdWUsIG1zZykKKyAgICByZXR1cm4gdmFsdWUgCisKKworZGVmIHZhbGlkYXRlX2RhdGUodHlwZWRlZiwgdmFsdWUpOgorICAgIGlmICh2YWx1ZSA9PSAnbm93JyBvciB2YWx1ZSA9PSAnY3VycmVudCcpOgorICAgICAgICByZXR1cm4gdmFsdWUKKworICAgIHRyeToKKyAgICAgICAgcmV0dXJuIHN0cihpbnQodmFsdWUpKQorICAgIGV4Y2VwdCAoVmFsdWVFcnJvciwgVHlwZUVycm9yKToKKyAgICAgICAgcGFzcworCisgICAgZm9yIGYscHJlIGluIFsoJyVZLSVtLSVkVCVIOiVNOiVTJywgTm9uZSksCisgICAgICAgICAgICAgICAgICAoJyVZLSVtLSVkICVIOiVNOiVTJywgTm9uZSksCisgICAgICAgICAgICAgICAgICAoJyVZLSVtLSVkVCVIOiVNOiVTJXonLCBOb25lKSwKKyAgICAgICAgICAgICAgICAgICgnJVktJW0tJWQgJUg6JU06JVMleicsIE5vbmUpLAorICAgICAgICAgICAgICAgICAgKCclWS0lbS0lZCcsIE5vbmUpLAorICAgICAgICAgICAgICAgICAgKCclbS0lZCcsICclWS0nKSwKKyAgICAgICAgICAgICAgICAgICgnJUg6JU0nLCAnJVktJW0tJWRUJyldOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB0ID0gdmFsdWUKKyAgICAgICAgICAgIGlmIHByZToKKyAgICAgICAgICAgICAgICBwcmVmID0gZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkuc3RyZnRpbWUocHJlKQorICAgICAgICAgICAgICAgIGYgPSBwcmUgKyBmCisgICAgICAgICAgICAgICAgdCA9IHByZWYgKyB0CisKKyAgICAgICAgICAgIHJldHVybiB2YWx1ZQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBwYXNzCisKKyAgICBjb21tYW5kLl9yYWlzZV9hcmd1bWVudF92YWxpZGF0aW9uX2V4Y2VwdGlvbih0eXBlZGVmLCB2YWx1ZSwgJ2ludmFsaWQgZGF0ZScpCisKKworZGVmIHZhbGlkYXRlX2R1cmF0aW9uKHR5cGVkZWYsIHZhbHVlKToKKyAgICBmb3IgcyBpbiBbJ3dlZWtzJywgJ2RheXMnLCAnaG91cnMnLCAnbWlucycsICdzZWNzJywgJ21zJ106CisgICAgICAgIGlmIHZhbHVlLmVuZHN3aXRoKHMpOgorICAgICAgICAgICAgcmV0dXJuIHZhbHVlCisgICAgY29tbWFuZC5fcmFpc2VfYXJndW1lbnRfdmFsaWRhdGlvbl9leGNlcHRpb24odHlwZWRlZiwgdmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52YWxpZCBkdXJhdGlvbicpCisgIAorCitkZWYgdmFsaWRhdGVfZW51bSh0eXBlZGVmLCB2YWx1ZSk6CisgICAgIyBGSVhNRTogU29ydCBvZiBhIGhhY2suIFRoZSBiYXNlIGVudW0gY2xhc3MgZG9lc24ndCBoYXZlIGEgdmFsdWVzCisgICAgIyBmaWVsZCwgc28gdGhlcmUncyBub3RoaW5nIHRvIGNoZWNrIGFnYWluc3QuIFdlIHJlYWxseSBqdXN0IHVzZSBpdAorICAgICMgYXMgYSBiYXNlIHR5cGUgdG8gaW5kaWNhdGUgdGhlIHZhbGlkYXRpb24gZnVuY3Rpb24gKGkuZS4gdGhpcyBmdW5jdGlvbikKKyAgICAjIHRvIHVzZS4KKyAgICBuYW1lID0gdHlwZWRlZi5nZXQoJ25hbWUnKQorICAgIGlmIG5hbWUgPT0gJ2VudW0nOgorICAgICAgICByZXR1cm4KKworICAgIGVudW1fdmFsdWVzID0gdHlwZWRlZi5nZXQoJ3ZhbHVlcycpCisgICAgaWYgbm90IGVudW1fdmFsdWVzOgorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcignVW5zcGVjaWZpZWQgZW51bSB2YWx1ZXMnKQorCisgICAgaWYgbm90IGlzaW5zdGFuY2UoZW51bV92YWx1ZXMsIGNvbGxlY3Rpb25zLk1hcHBpbmcpOgorICAgICAgICAjIElmIGl0J3Mgbm90IGEgZGljdGlvbmFyeSB0aGVuIGl0IHNob3VsZCBiZSBhbiBhcnJheQorICAgICAgICAjIG9yIHR1cGxlIHdoZXJlIHRoZSAoc3RyaW5nKSBlbGVtZW50cyBhcmUgYm90aCB0aGUga2V5CisgICAgICAgICMgYW5kIHRoZSB2YWx1ZSBmb3IgdGhlIGVudW0gaXRlbXMuIFNvIGhlcmUgd2UgY29udmVydAorICAgICAgICAjIHRvIGEgZGljdGlvbmFyeSBzbyB3ZSBjYW4gdXNlIHRoZSBzYW1lIGxvZ2ljIGZvciBib3RoCisgICAgICAgICMgY2FzZXMgYmVsb3cuCisgICAgICAgIGlmIGNvbW1hbmQuX2lzX3N0cmluZyhlbnVtX3ZhbHVlcyk6CisgICAgICAgICAgICBlbnVtX3ZhbHVlcyA9IChlbnVtX3ZhbHVlcywpCisgICAgICAgIGlmIGlzaW5zdGFuY2UoZW51bV92YWx1ZXMsIGNvbGxlY3Rpb25zLlNlcXVlbmNlKToKKyAgICAgICAgICAgIGVudW1fdmFsdWVzID0gZGljdCgodix2KSBmb3IgdiBpbiBlbnVtX3ZhbHVlcykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKAorICAgICAgICAgICAgICAgICAgICAnRW51bSB2YWx1ZXMgbXVzdCBiZSBlaXRoZXIgYSBzdHJpbmcsIGRpY3QsIHR1cGxlLCBvciBsaXN0JykKKworICAgIHByZWZpeF9tYXRjaGVzID0gW10KKyAgICBsb3dlcl92YWx1ZSA9IHZhbHVlLmxvd2VyKCkKKyAgICBmb3IgZW51bV92YWx1ZSwgcmV0dXJuX3ZhbHVlIGluIGVudW1fdmFsdWVzLml0ZW1zKCk6CisgICAgICAgIGxvd2VyX2VudW1fdmFsdWUgPSBlbnVtX3ZhbHVlLmxvd2VyKCkKKyAgICAgICAgaWYgbG93ZXJfZW51bV92YWx1ZSA9PSBsb3dlcl92YWx1ZToKKyAgICAgICAgICAgIHJldHVybiAocmV0dXJuX3ZhbHVlLCBlbnVtX3ZhbHVlKQorICAgICAgICBpZiBsb3dlcl9lbnVtX3ZhbHVlLnN0YXJ0c3dpdGgobG93ZXJfdmFsdWUpOgorICAgICAgICAgICAgcHJlZml4X21hdGNoZXMuYXBwZW5kKChyZXR1cm5fdmFsdWUsIGVudW1fdmFsdWUpKQorCisgICAgaWYgbGVuKHByZWZpeF9tYXRjaGVzKSA9PSAwOgorICAgICAgICBjb21tYW5kLl9yYWlzZV9hcmd1bWVudF92YWxpZGF0aW9uX2V4Y2VwdGlvbih0eXBlZGVmLCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAndW5leHBlY3RlZCB2YWx1ZSBmb3IgZW51bScsIGVudW1fdmFsdWVzLmtleXMoKSkKKworICAgIHJldHVybiBwcmVmaXhfbWF0Y2hlcworCisKK0NPTU1BTkRfTUFDX0FERFJFU1NfUkUgPSByZS5jb21waWxlKHInXigoW0EtRmEtZlxkXSl7Mn06Pyl7NX1bQS1GYS1mXGRdezJ9JCcpCitDT01NQU5EX01BQ19BTFRfUkUgPSByZS5jb21waWxlKHInXigoW0EtRmEtZlxkXSl7NH1cLj8pezJ9W0EtRmEtZlxkXXs0fSQnKQorCitkZWYgX2lzX21hY19hZGRyZXNzKHZhbHVlKToKKyAgICBpZiBDT01NQU5EX01BQ19BTFRfUkUubWF0Y2godmFsdWUpOgorICAgICAgICAjCisgICAgICAgICMgQ29udmVydCAxMjM0LjU2NzguOTAxMiBpbnRvIDAxOjM0OjU2Ojc4OjkwOjEyCisgICAgICAgIF9tYWMgPSAnJXM6JXM6JXM6JXM6JXM6JXMnICUgKAorICAgICAgICAgICAgICAgICAgICB2YWx1ZVswOjJdLCAgIHZhbHVlWzI6NF0sCisgICAgICAgICAgICAgICAgICAgIHZhbHVlWzU6N10sICAgdmFsdWVbNzo5XSwKKyAgICAgICAgICAgICAgICAgICAgdmFsdWVbMTA6MTJdLCB2YWx1ZVsxMjoxNF0pCisgICAgICAgIHJldHVybiBUcnVlCisgICAgZWxpZiBDT01NQU5EX01BQ19BRERSRVNTX1JFLm1hdGNoKHZhbHVlKToKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICByZXR1cm4gRmFsc2UKKworZGVmIHZhbGlkYXRlX21hY19hZGRyZXNzKHR5cGVkZWYsIHZhbHVlKToKKyAgICBpZiBfaXNfbWFjX2FkZHJlc3ModmFsdWUpOgorICAgICAgICByZXR1cm4gdmFsdWUKKyAgICBjb21tYW5kLl9yYWlzZV9hcmd1bWVudF92YWxpZGF0aW9uX2V4Y2VwdGlvbih0eXBlZGVmLCB2YWx1ZSwgJ21hYyBhZGRyZXNzJykKKworZGVmIHZhbGlkYXRlX2hvc3QodHlwZWRlZiwgdmFsdWUpOgorICAgICIiIgorICAgICIiIgorCisgICAgaWYgX2lzX21hY19hZGRyZXNzKHZhbHVlKToKKyAgICAgICAgcmV0dXJuIHZhbHVlCisKKyAgICBwayA9IG1pLnBrKCdob3N0LWNvbmZpZycpCisgICAga2V5ID0gY29udmVydF9hbGlhc190b19vYmplY3Rfa2V5KCdob3N0LWNvbmZpZycsIHZhbHVlKQorICAgIGtleV9kaWN0ID0geyBwayA6IGtleSB9CisgICAgbWkuc3BsaXRfY29tcG91bmRfaW50b19kaWN0KCdob3N0LWNvbmZpZycsIHBrLCBrZXlfZGljdCwgaXNfcHJlZml4ID0gVHJ1ZSkKKyAgICBpZiAnbWFjJyBpbiBrZXlfZGljdCBhbmQgX2lzX21hY19hZGRyZXNzKGtleV9kaWN0WydtYWMnXSk6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIF9leGlzdHMgPSByZXN0X3RvX21vZGVsLmdldF9tb2RlbF9mcm9tX3VybCgnaG9zdCcsIGtleV9kaWN0KQorICAgICAgICAgICAgcmV0dXJuIHZhbHVlCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKAorICAgICAgICAgICAgICAgICAgICAgICAgICAnaG9zdCAiJXMiOiBkb2VzblwndCBleGlzdCcgJSB2YWx1ZSkKKworICAgIGNvbW1hbmQuX3JhaXNlX2FyZ3VtZW50X3ZhbGlkYXRpb25fZXhjZXB0aW9uKHR5cGVkZWYsIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm90IGhvc3QgYWxpYXMgbm9yIG1hYyBhZGRyZXNzJykKKworZGVmIHZhbGlkYXRlX2RwaWQodHlwZWRlZiwgdmFsdWUpOgorICAgIGlmIG5vdCB1dGlmLkNPTU1BTkRfRFBJRF9SRS5tYXRjaCh2YWx1ZSk6CisgICAgICAgIGNvbW1hbmQuX3JhaXNlX2FyZ3VtZW50X3ZhbGlkYXRpb25fZXhjZXB0aW9uKHR5cGVkZWYsIHZhbHVlLCAnc3dpdGNoIGRwaWQnKQorICAgIHJldHVybiB2YWx1ZQorCisKK2RlZiB2YWxpZGF0ZV9zd2l0Y2hfZHBpZCh0eXBlZGVmLCB2YWx1ZSk6CisgICAgIiIiCisgICAgRWl0aGVyIHRoZSB2YWx1ZSBtdXN0IGJlIGEgc3ludGFjdGljIGRwaWQgKGVpZ2h0LWhleC1ieXRlcyksCisgICAgT3IgdGhlIHZhbHVlIG11c3QgYmUgYSBzd2l0Y2ggYWxpYXMsIGFuZCB0aGUgdW5kZXJseWluZyBkcGlkCisgICAgbXVzdCBleGlzdC4KKyAgICAiIiIKKworICAgIHRyeToKKyAgICAgICAgdmFsaWRhdGVfZHBpZCh0eXBlZGVmLCB2YWx1ZSkKKyAgICAgICAgcmV0dXJuIHZhbHVlCisgICAgZXhjZXB0IGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yLCBlOgorICAgICAgICBkcGlkID0gY29udmVydF9hbGlhc190b19vYmplY3Rfa2V5KCdzd2l0Y2gtY29uZmlnJywgdmFsdWUpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHZhbGlkYXRlX2RwaWQodHlwZWRlZiwgZHBpZCkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBfZXhpc3RzID0gc2Ruc2guZ2V0X29iamVjdF9mcm9tX3N0b3JlKCdzd2l0Y2gtY29uZmlnJywgZHBpZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUKKyAgICAgICAgICAgIGV4Y2VwdCBlOgorICAgICAgICAgICAgICAgIGNvbW1hbmQuX3JhaXNlX2FyZ3VtZW50X3ZhbGlkYXRpb25fZXhjZXB0aW9uKHR5cGVkZWYsIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3dpdGNoICIlcyIgZG9lc25cJ3QgZXhpc3QnICUgdmFsdWUpCisgICAgICAgIGV4Y2VwdCBlcnJvci5Bcmd1bWVudFZhbGlkYXRpb25FcnJvciwgZToKKyAgICAgICAgICAgIGNvbW1hbmQuX3JhaXNlX2FyZ3VtZW50X3ZhbGlkYXRpb25fZXhjZXB0aW9uKHR5cGVkZWYsIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdub3Qgc3dpdGNoIGFsaWFzIG5vciBkcGlkJykKKworZGVmIHZhbGlkYXRlX2V4aXN0aW5nX29iaih0eXBlZGVmLCB2YWx1ZSwgb2JqX3R5cGUpOgorICAgICIiIgorICAgIExvb2t1cCB0aGUgc3BlY2lmaWMgb2JqX3R5cGUncyBwcmltYXJ5IGtleSB2YWx1ZSBmb3IgdmFsaWRhdGlvbi4KKyAgICAiIiIKKworICAgIGxvb2t1cF92YWx1ZSA9IGNvbnZlcnRfYWxpYXNfdG9fb2JqZWN0X2tleShvYmpfdHlwZSwgdmFsdWUpCisKKyAgICB0cnk6CisgICAgICAgIHNkbnNoLmdldF9vYmplY3RfZnJvbV9zdG9yZShvYmpfdHlwZSwgbG9va3VwX3ZhbHVlKQorICAgICAgICByZXR1cm4gdmFsdWUKKyAgICBleGNlcHQgRXhjZXB0aW9uLCBfZToKKyAgICAgICAgY29tbWFuZC5fcmFpc2VfYXJndW1lbnRfdmFsaWRhdGlvbl9leGNlcHRpb24odHlwZWRlZiwgdmFsdWUsICJkb2Vzbid0IGV4aXN0ICIpCisKKworZGVmIHZhbGlkYXRlX2NvbmZpZyh0eXBlZGVmLCB2YWx1ZSk6CisgICAgaWYgdmFsdWUuc3RhcnRzd2l0aCgnY29uZmlnOi8vJyk6CisgICAgICAgIHJldHVybiB2YWx1ZQorICAgIGVsaWYgdXRpZi5mdWxsX3dvcmRfZnJvbV9jaG9pY2VzKHZhbHVlLCBbJ3J1bm5pbmctY29uZmlnJywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXBncmFkZS1jb25maWcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYXNoJyBdKToKKyAgICAgICAgcmV0dXJuIHZhbHVlCisgICAgZWxzZToKKyAgICAgICAgZm9yIHByZWZpeGVzIGluIFsnaHR0cDovLycsICdmdHA6Ly8nLCAndGZ0cDovLycsICdmaWxlOi8vJ106CisgICAgICAgICAgICBpZiB2YWx1ZS5zdGFydHN3aXRoKHByZWZpeGVzKToKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUKKyAgICAgICAgZGF0YSA9IHNkbnNoLnN0b3JlLmdldF91c2VyX2RhdGFfdGFibGUodmFsdWUsICdsYXRlc3QnKQorICAgICAgICBpZiBsZW4oZGF0YSk6CisgICAgICAgICAgICByZXR1cm4gdmFsdWUKKyAgICAgICAgCisgICAgbXNnID0gJ25vdCBhIHZhbGlkIGNvcHksIG11c3QgYmUgKHJ1bm5pbmctY29uZmlnLCB1cGdyYWRlLWNvbmZpZyAnIFwKKyAgICAgICAgICAnb3IgbXVzdCBzdGFydCB3aXRoIGNvbmZpZzovLywgaHR0cDovLywgZnRwOi8vLCBvciB0ZnRwOi8vJworICAgIGNvbW1hbmQuX3JhaXNlX2FyZ3VtZW50X3ZhbGlkYXRpb25fZXhjZXB0aW9uKHR5cGVkZWYsIHZhbHVlLCBtc2cpCisKKworZGVmIGluaXRfdmFsaWRhdGlvbnMoYnMsIG1vZGkpOgorICAgIGdsb2JhbCBzZG5zaCwgbWkKKyAgICBzZG5zaCA9IGJzCisgICAgbWkgPSBtb2RpCisKKyAgICAjIEluaXRpYWxpemUgdmFsaWRhdGlvbiBmdW5jdGlvbnMKKyAgICBjb21tYW5kLmFkZF92YWxpZGF0aW9uKCd2YWxpZGF0ZS1zdHJpbmcnLCB2YWxpZGF0ZV9zdHJpbmcpCisgICAgY29tbWFuZC5hZGRfdmFsaWRhdGlvbigndmFsaWRhdGUtaW50ZWdlcicsIHZhbGlkYXRlX2ludGVnZXIpCisgICAgY29tbWFuZC5hZGRfdmFsaWRhdGlvbigndmFsaWRhdGUtaGV4LW9yLWRlYy1pbnRlZ2VyJywgdmFsaWRhdGVfaGV4X29yX2RlY19pbnRlZ2VyKQorICAgIGNvbW1hbmQuYWRkX3ZhbGlkYXRpb24oJ3ZhbGlkYXRlLW5ldG1hc2snLCB2YWxpZGF0ZV9uZXRtYXNrKQorICAgIGNvbW1hbmQuYWRkX3ZhbGlkYXRpb24oJ3ZhbGlkYXRlLWludmVyc2UtbmV0bWFzaycsIHZhbGlkYXRlX2ludmVyc2VfbmV0bWFzaykKKyAgICBjb21tYW5kLmFkZF92YWxpZGF0aW9uKCd2YWxpZGF0ZS1pcC1hZGRyZXNzLW5vdC1tYXNrJywgdmFsaWRhdGVfaXBfYWRkcmVzc19ub3RfbmV0bWFzaykKKyAgICBjb21tYW5kLmFkZF92YWxpZGF0aW9uKCd2YWxpZGF0ZS1jaWRyLXJhbmdlJywgdmFsaWRhdGVfY2lkcl9yYW5nZSkKKyAgICBjb21tYW5kLmFkZF92YWxpZGF0aW9uKCd2YWxpZGF0ZS1yZXNvbHZhYmxlLWlwLWFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRlX3Jlc29sdmFibGVfaXBfYWRkcmVzcykKKyAgICBjb21tYW5kLmFkZF92YWxpZGF0aW9uKCd2YWxpZGF0ZS1pZGVudGlmaWVyJywgdmFsaWRhdGVfaWRlbnRpZmllciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeyd0eXBlZGVmJyAgIDogJyR0eXBlZGVmJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZScgICAgOiAnJHZhbHVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZXNlcnZlZCcgOiAnJHJlc2VydmVkJ319KQorICAgIGNvbW1hbmQuYWRkX3ZhbGlkYXRpb24oJ3ZhbGlkYXRlLWRhdGUnLCB2YWxpZGF0ZV9kYXRlKQorICAgIGNvbW1hbmQuYWRkX3ZhbGlkYXRpb24oJ3ZhbGlkYXRlLWR1cmF0aW9uJywgdmFsaWRhdGVfZHVyYXRpb24pCisgICAgY29tbWFuZC5hZGRfdmFsaWRhdGlvbigndmFsaWRhdGUtZW51bScsIHZhbGlkYXRlX2VudW0pCisgICAgY29tbWFuZC5hZGRfdmFsaWRhdGlvbigndmFsaWRhdGUtbWFjLWFkZHJlc3MnLCB2YWxpZGF0ZV9tYWNfYWRkcmVzcykKKyAgICBjb21tYW5kLmFkZF92YWxpZGF0aW9uKCd2YWxpZGF0ZS1ob3N0JywgdmFsaWRhdGVfaG9zdCkKKyAgICBjb21tYW5kLmFkZF92YWxpZGF0aW9uKCd2YWxpZGF0ZS1zd2l0Y2gtZHBpZCcsIHZhbGlkYXRlX3N3aXRjaF9kcGlkKQorICAgIGNvbW1hbmQuYWRkX3ZhbGlkYXRpb24oJ3ZhbGlkYXRlLWV4aXN0aW5nLW9iaicsIHZhbGlkYXRlX2V4aXN0aW5nX29iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeyd0eXBlZGVmJyAgIDogJyR0eXBlZGVmJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZScgICAgOiAnJHZhbHVlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvYmpfdHlwZScgOiAnJG9ial90eXBlJ319KQorICAgIGNvbW1hbmQuYWRkX3ZhbGlkYXRpb24oJ3ZhbGlkYXRlLWNvbmZpZycsIHZhbGlkYXRlX2NvbmZpZykKKwpkaWZmIC0tZ2l0IGEvY2xpL2NsaS5lZ2ctaW5mby9QS0ctSU5GTyBiL2NsaS9jbGkuZWdnLWluZm8vUEtHLUlORk8KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTRiMjAzNwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9jbGkuZWdnLWluZm8vUEtHLUlORk8KQEAgLTAsMCArMSwxMCBAQAorTWV0YWRhdGEtVmVyc2lvbjogMS4wCitOYW1lOiBjbGkKK1ZlcnNpb246IDAuMS4wCitTdW1tYXJ5OiBVTktOT1dOCitIb21lLXBhZ2U6IFVOS05PV04KK0F1dGhvcjogVU5LTk9XTgorQXV0aG9yLWVtYWlsOiBVTktOT1dOCitMaWNlbnNlOiBVTktOT1dOCitEZXNjcmlwdGlvbjogVU5LTk9XTgorUGxhdGZvcm06IFVOS05PV04KZGlmZiAtLWdpdCBhL2NsaS9jbGkuZWdnLWluZm8vU09VUkNFUy50eHQgYi9jbGkvY2xpLmVnZy1pbmZvL1NPVVJDRVMudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4ZDJiYmQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvY2xpLmVnZy1pbmZvL1NPVVJDRVMudHh0CkBAIC0wLDAgKzEsNTk3IEBACitNQU5JRkVTVC5pbgorY19hY3Rpb25zLnB5CitjX2NvbXBsZXRpb25zLnB5CitjX2RhdGFfaGFuZGxlcnMucHkKK2NfdmFsaWRhdGlvbnMucHkKK2NsaS5weQorY2xpbW9kZWxpbmZvLnB5Citjb21tYW5kLnB5Citkb2MucHkKK2Vycm9yLnB5CitmbXRjbnYucHkKK21pZHcucHkKK21vZGVsX2luZm9fbGlzdC5weQorbW9kaS5weQorcHJldHR5cHJpbnQucHkKK3Jlc3RfdG9fbW9kZWwucHkKK3J1bl9jb25maWcucHkKK3NkbmRiLnB5CitzZXR1cC5weQorc3RvcmVjbGllbnQucHkKK3RlY2hfc3VwcG9ydC5weQordGltZXNpbmNlLnB5Cit0cmFjZS5weQordXJsX2NhY2hlLnB5Cit1dGlmLnB5Cit2ZW5kb3IucHkKK3Zuc3cucHkKK2NsaS5lZ2ctaW5mby9QS0ctSU5GTworY2xpLmVnZy1pbmZvL1NPVVJDRVMudHh0CitjbGkuZWdnLWluZm8vZGVwZW5kZW5jeV9saW5rcy50eHQKK2NsaS5lZ2ctaW5mby9lbnRyeV9wb2ludHMudHh0CitjbGkuZWdnLWluZm8vdG9wX2xldmVsLnR4dAorY2xpLmVnZy1pbmZvL3ppcC1zYWZlCitkYXRhL291aS50eHQKK2Rlc2MvdmVyc2lvbjIwMC9fX2luaXRfXy5weQorZGVzYy92ZXJzaW9uMjAwL2FkZHJlc3Nfc3BhY2UucHkKK2Rlc2MvdmVyc2lvbjIwMC9hZGRyZXNzX3NwYWNlX21vZGVsLnB5CitkZXNjL3ZlcnNpb24yMDAvYWRkcmVzc19zcGFjZV9ydW5fY29uZmlnLnB5CitkZXNjL3ZlcnNpb24yMDAvY29udHJvbGxlcl9ub2RlLnB5CitkZXNjL3ZlcnNpb24yMDAvY29udHJvbGxlcl9ub2RlX21vZGVsLnB5CitkZXNjL3ZlcnNpb24yMDAvY29yZS5weQorZGVzYy92ZXJzaW9uMjAwL2NvcmVfbW9kZWwucHkKK2Rlc2MvdmVyc2lvbjIwMC9mbG93X2VudHJ5LnB5CitkZXNjL3ZlcnNpb24yMDAvZmxvd19lbnRyeV9tb2RlbC5weQorZGVzYy92ZXJzaW9uMjAwL2ZvcndhcmRpbmcucHkKK2Rlc2MvdmVyc2lvbjIwMC9mb3J3YXJkaW5nX21vZGVsLnB5CitkZXNjL3ZlcnNpb24yMDAvZm9yd2FyZGluZ19ydW5fY29uZmlnLnB5CitkZXNjL3ZlcnNpb24yMDAvaG9zdC5weQorZGVzYy92ZXJzaW9uMjAwL2hvc3RfbW9kZWwucHkKK2Rlc2MvdmVyc2lvbjIwMC9pbnRlcm5hbC5weQorZGVzYy92ZXJzaW9uMjAwL2xpbmsucHkKK2Rlc2MvdmVyc2lvbjIwMC9wb2xpY3kucHkKK2Rlc2MvdmVyc2lvbjIwMC9yb3V0ZXIucHkKK2Rlc2MvdmVyc2lvbjIwMC9zbm1wLnB5CitkZXNjL3ZlcnNpb24yMDAvc25tcF9tb2RlbC5weQorZGVzYy92ZXJzaW9uMjAwL3NubXBfcnVuX2NvbmZpZy5weQorZGVzYy92ZXJzaW9uMjAwL3NubXBfdGVjaHN1cHBvcnQucHkKK2Rlc2MvdmVyc2lvbjIwMC9zd2l0Y2gucHkKK2Rlc2MvdmVyc2lvbjIwMC9zd2l0Y2hfbW9kZWwucHkKK2Rlc2MvdmVyc2lvbjIwMC90YWNhY3MucHkKK2Rlc2MvdmVyc2lvbjIwMC90YWNhY3NfbW9kZWwucHkKK2Rlc2MvdmVyc2lvbjIwMC90YWNhY3NfcnVuX2NvbmZpZy5weQorZGVzYy92ZXJzaW9uMjAwL3RhY2Fjc190ZWNoc3VwcG9ydC5weQorZGVzYy92ZXJzaW9uMjAwL3RhZy1tb2RlbC5weQorZGVzYy92ZXJzaW9uMjAwL3RhZy5weQorZGVzYy92ZXJzaW9uMjAwL3RhZ19tb2RlbC5weQorZGVzYy92ZXJzaW9uMjAwL3RhZ19ydW5fY29uZmlnLnB5CitkZXNjL3ZlcnNpb24yMDAvdGVjaF9zdXBwb3J0X3J1bl9jb25maWcucHkKK2Rlc2MvdmVyc2lvbjIwMC90ZWNoc3VwcG9ydC5weQorZGVzYy92ZXJzaW9uMjAwL3RlY2hzdXBwb3J0X21vZGVsLnB5CitkZXNjL3ZlcnNpb24yMDAvdGVuYW50LnB5CitkZXNjL3ZlcnNpb24yMDAvdGVuYW50X21vZGVsLnB5CitkZXNjL3ZlcnNpb24yMDAvdGVzdC5weQorZGVzYy92ZXJzaW9uMjAwL3RvcG9sb2d5LnB5CitkZXNjL3ZlcnNpb24yMDAvdG9wb2xvZ3lfbW9kZWwucHkKK2Rlc2MvdmVyc2lvbjIwMC90b3BvbG9neV9ydW5fY29uZmlnLnB5CitkZXNjL3ZlcnNpb24yMDAvdHVubmVsLnB5CitkZXNjL3ZlcnNpb24yMDAvdHVubmVsT2xkLnB5CitkZXNjL3ZlcnNpb24yMDAvdmNlbnRlci5weQorZGVzYy92ZXJzaW9uMjAwL3ZpcnR1YWxyb3V0ZXIucHkKK2Rlc2MvdmVyc2lvbjIwMC92aXJ0dWFscm91dGVyX21vZGVsLnB5CitkZXNjL3ZlcnNpb24yMDAvdm5zLnB5CitkZXNjL3ZlcnNpb24yMDAvdm5zX21vZGVsLnB5CitkZXNjL3ZlcnNpb24yMDAvdm5zX3RlY2hzdXBwb3J0LnB5Citkb2N1bWVudGF0aW9uL2VuX1VTL2ZlYXR1cmUKK2RvY3VtZW50YXRpb24vZW5fVVMvZmVhdHVyZS1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2ZlYXR1cmUtZmxvdy1wdXNoZXIKK2RvY3VtZW50YXRpb24vZW5fVVMvZmVhdHVyZS1uZXR2aXJ0Citkb2N1bWVudGF0aW9uL2VuX1VTL2ZlYXR1cmUtcGVyZm9ybWFuY2UtbW9uaXRvcgorZG9jdW1lbnRhdGlvbi9lbl9VUy9pbnRlcm5hbAorZG9jdW1lbnRhdGlvbi9lbl9VUy9pbnRyb2R1Y3Rpb24KK2RvY3VtZW50YXRpb24vZW5fVVMvc2hvdy1hcnAKK2RvY3VtZW50YXRpb24vZW5fVVMvc2hvdy1hcnAtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9zaG93LWNsb2NrCitkb2N1bWVudGF0aW9uL2VuX1VTL3Nob3ctZXZlbnQtaGlzdG9yeS1jb3VudAorZG9jdW1lbnRhdGlvbi9lbl9VUy9zdGF0aWMtYXJwCitkb2N1bWVudGF0aW9uL2VuX1VTL3N0YXRpYy1hcnAtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWFjY291bnRpbmcKK2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hY2NvdW50aW5nLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hY2NvdW50aW5nLWV4ZWMKK2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hY2NvdW50aW5nLWV4ZWMtdXNlLWRlZmF1bHQKK2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hY2NvdW50aW5nLWV4ZWMtdXNlLW5vbmUKK2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hY2NvdW50aW5nLWV4ZWMtdXNlLXNlcnZlci1ncm91cAorZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWFjY291bnRpbmctZXhlYy11c2Utc3RhcnQtc3RvcAorZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWFjY291bnRpbmctZXhlYy11c2UtdGFjYWNzCitkb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aGVudGljYXRpb24KK2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRoZW50aWNhdGlvbi1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aGVudGljYXRpb24tbG9naW4KK2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRoZW50aWNhdGlvbi1sb2dpbi11c2UtZGVmYXVsdAorZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWF1dGhlbnRpY2F0aW9uLWxvZ2luLXVzZS1sb2NhbAorZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWF1dGhlbnRpY2F0aW9uLWxvZ2luLXVzZS10YWNhY3MKK2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRob3JpemF0aW9uCitkb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aG9yaXphdGlvbi1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aG9yaXphdGlvbi1leGVjCitkb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aG9yaXphdGlvbi1leGVjLXVzZS1kZWZhdWx0Citkb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aG9yaXphdGlvbi1leGVjLXVzZS1sb2NhbAorZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWF1dGhvcml6YXRpb24tZXhlYy11c2UtdGFjYWNzCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvYWN0aXZlCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvYWN0aXZlLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9hZGRyZXNzLXNwYWNlCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvYWRkcmVzcy1zcGFjZS1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvZGVzY3JpcHRpb24KK2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9kZXNjcmlwdGlvbi1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvaWQtYWN0aXZlCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvaWQtYWN0aXZlLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZC1kZXNjcmlwdGlvbgorZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL2lkLWRlc2NyaXB0aW9uLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZC1wcmlvcml0eQorZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL2lkLXByaW9yaXR5LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZGVudGlmaWVyCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvaWRlbnRpZmllci1ydWxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvaWRlbnRpZmllci1ydWxlLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9tYXRjaAorZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL21hdGNoLXN3aXRjaAorZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL21hdGNoLXN3aXRjaC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvbWF0Y2gtc3dpdGNoLXBvcnRzCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvbWF0Y2gtdGFnCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvbWF0Y2gtdGFnLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9tYXRjaC12bGFuCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvbWF0Y2gtdmxhbi1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2Uvb3JpZ2luCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2Uvb3JpZ2luLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9wcmlvcml0eQorZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL3ByaW9yaXR5LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9zaG93LWlkCitkb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2Uvc2hvdy1pZC1ydWxlcworZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL3ZsYW4tdGFnLW9uLWVncmVzcworZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL3ZsYW4tdGFnLW9uLWVncmVzcy1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2Nsb2NrL3Nob3cKK2RvY3VtZW50YXRpb24vZW5fVVMvY2xvY2svc2hvdy1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2Nsb2NrL3Nob3ctZm9ybWF0LWRldGFpbHMKK2RvY3VtZW50YXRpb24vZW5fVVMvY29uZmlnL3Nob3ctY29uZmlnCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbmZpZy9zaG93LWZpcnN0Citkb2N1bWVudGF0aW9uL2VuX1VTL2NvbmZpZy9zaG93LXNlY29uZAorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb25maWcvc2hvdy1zaW5nbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvY29ubmVjdC9jb25uZWN0Citkb2N1bWVudGF0aW9uL2VuX1VTL2Nvbm5lY3QvY29ubmVjdC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2Nvbm5lY3QvY29ubmVjdC1pZAorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb25uZWN0L2Nvbm5lY3QtaXAKK2RvY3VtZW50YXRpb24vZW5fVVMvY29ubmVjdC9jb25uZWN0LXBvcnQKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9hbGlhcworZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2FsaWFzLW5hbWUKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jbG9jay1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvY2xvY2stc2V0Citkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvY2xvY2stc2V0LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jbG9jay10aW1lem9uZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2Nsb2NrLXRpbWV6b25lLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jb250cm9sbGVyLW5vZGUKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jb250cm9sbGVyLW5vZGUtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2NvbnRyb2xsZXItbm9kZS1uYW1lCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC1hbGxvdworZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLWxvY2FsLWlwCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtb3BlbmZsb3cKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC1wb3J0Citkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtcHJvdG9jb2wKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC1zcmMtaXAKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC1zc2gKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC1zc2wKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC10Y3AKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC11ZHAKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC12cnJwCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtd2ViCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaWQKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pbnRlcmZhY2UKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pbnRlcmZhY2UtbnVtYmVyCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaW50ZXJmYWNlLXR5cGUKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcAorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWFkZHJlc3MKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1hZGRyZXNzLWNpZHIKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1hZGRyZXNzLW5ldG1hc2sKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1hZGRyZXNzLXZhbHVlCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtZGVmYXVsdC1nYXRld2F5Citkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtZGVmYXVsdC1nYXRld2F5LXZhbHVlCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtZG9tYWluCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtZG9tYWluLWxvb2t1cHMKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1kb21haW4tbmFtZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLW1vZGUKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1uYW1lLXNlcnZlcgorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLW5hbWUtc2VydmVyLXZhbHVlCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvbG9nZ2luZworZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2xvZ2dpbmctZW5hYmxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvbG9nZ2luZy1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvbG9nZ2luZy1sZXZlbAorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2xvZ2dpbmctc2VydmVyCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvbnRwCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvbnRwLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9udHAtc2VydmVyCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdworZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctYWxpYXMKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LWRldGFpbAorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctZGV0YWlscworZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctZmlyZXdhbGwKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LWlkCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1pbnRlcmZhY2VzCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1pbnRlcmZhY2VzLW51bWJlcgorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctaW50ZXJmYWNlcy10eXBlCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cworZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtZGF0YS1mb3JtYXQKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN0YXRzLWRpc3BsYXkKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN0YXRzLWR1cmF0aW9uCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cy1lbmQtdGltZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtc2FtcGxlLWNvdW50Citkb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cy1zYW1wbGUtaW50ZXJ2YWwKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN0YXRzLXNhbXBsZS13aW5kb3cKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN0YXRzLXN0YXJ0LXRpbWUKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN0YXRzLXR5cGUKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN1bW1hcnkKK2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN3aXRjaGVzCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvcHkvY29weQorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3B5L2NvcHktZGVzdAorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3B5L2NvcHktZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3B5L2NvcHktc291cmNlCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvYm9vdAorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL2Jvb3QtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL2ZhY3RvcnktZGVmYXVsdAorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3JlbG9hZAorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3JlbG9hZC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvdXBncmFkZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3VwZ3JhZGUtYWJvcnQKK2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS91cGdyYWRlLWFib3J0LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS91cGdyYWRlLWRldGFpbHMKK2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS91cGdyYWRlLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS91cGdyYWRlLWZvcmNlCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvdmVyc2lvbgorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3ZlcnNpb24tZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3dyaXRlCitkb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvd3JpdGUtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3dyaXRlLXRlcm1pbmFsCitkb2N1bWVudGF0aW9uL2VuX1VTL2RlYnVnL2Jhc2gKK2RvY3VtZW50YXRpb24vZW5fVVMvZGVidWcvY2xpCitkb2N1bWVudGF0aW9uL2VuX1VTL2RlYnVnL2NsaS1iYWNrdHJhY2UKK2RvY3VtZW50YXRpb24vZW5fVVMvZGVidWcvY2xpLWJhdGNoCitkb2N1bWVudGF0aW9uL2VuX1VTL2RlYnVnL2RlYnVnLWNsaQorZG9jdW1lbnRhdGlvbi9lbl9VUy9kZWJ1Zy9kZWJ1Zy1jbGktZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9kZWJ1Zy9kZXNjcmlwdGlvbgorZG9jdW1lbnRhdGlvbi9lbl9VUy9kZWJ1Zy9yZXN0Citkb2N1bWVudGF0aW9uL2VuX1VTL2V4dGVybmFsLXBvcnRzL3Nob3cKK2RvY3VtZW50YXRpb24vZW5fVVMvZmlyZXdhbGwtcnVsZS9zaG93LWNvbnRyb2xsZXIKK2RvY3VtZW50YXRpb24vZW5fVVMvZmlyZXdhbGwtcnVsZS9zaG93LWxvY2FsLWlwCitkb2N1bWVudGF0aW9uL2VuX1VTL2ZpcmV3YWxsLXJ1bGUvc2hvdy1udW1iZXIKK2RvY3VtZW50YXRpb24vZW5fVVMvZmlyZXdhbGwtcnVsZS9zaG93LXBvcnQKK2RvY3VtZW50YXRpb24vZW5fVVMvZmlyZXdhbGwtcnVsZS9zaG93LXByb3RvCitkb2N1bWVudGF0aW9uL2VuX1VTL2ZpcmV3YWxsLXJ1bGUvc2hvdy1zcmMtaXAKK2RvY3VtZW50YXRpb24vZW5fVVMvZmlyZXdhbGwtcnVsZS9zaG93LXR5cGUKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9hY3RpdmUKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9hY3RpdmUtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2FjdGl2ZS1maWVsZC1GYWxzZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2FjdGl2ZS1maWVsZC1UcnVlCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvY29va2llCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvY29va2llLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9kc3QtaXAKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9kc3QtaXAtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2RzdC1pcC1maWVsZAorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2RzdC1tYWMKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9kc3QtbWFjLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9kc3QtbWFjLWZpZWxkCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZHN0LXBvcnQKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9kc3QtcG9ydC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZHN0LXBvcnQtZmllbGQKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9ldGhlci10eXBlCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZXRoZXItdHlwZS1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZXRoZXItdHlwZS1maWVsZAorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2Zsb3ctZW50cnkKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9mbG93LWVudHJ5LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9oYXJkLXRpbWVvdXQKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9oYXJkLXRpbWVvdXQtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2hhcmQtdGltZW91dC1maWVsZAorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2lkbGUtdGltZW91dAorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2lkbGUtdGltZW91dC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvaWRsZS10aW1lb3V0LWZpZWxkCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvaW5ncmVzcy1wb3J0Citkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvaW5ncmVzcy1wb3J0LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9pbmdyZXNzLXBvcnQtZmllbGQKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9wcmlvcml0eQorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3ByaW9yaXR5LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9wcmlvcml0eS1maWVsZAorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3Byb3RvY29sCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvcHJvdG9jb2wtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3Byb3RvY29sLWZpZWxkCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLWlwCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLWlwLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9zcmMtaXAtZmllbGQKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9zcmMtbWFjCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLW1hYy1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLW1hYy1maWVsZAorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3NyYy1wb3J0Citkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLXBvcnQtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3NyYy1wb3J0LWZpZWxkCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvdG9zLWJpdHMKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS90b3MtYml0cy1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvdG9zLWJpdHMtZmllbGQKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS92bGFuLWlkCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvdmxhbi1pZC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvdmxhbi1pZC1maWVsZAorZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3ZsYW4tcHJpb3JpdHkKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS92bGFuLXByaW9yaXR5LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS92bGFuLXByaW9yaXR5LWZpZWxkCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvd2lsZGNhcmRzCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvd2lsZGNhcmRzLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS93aWxkY2FyZHMtZmllbGQKK2RvY3VtZW50YXRpb24vZW5fVVMvZm9ybWF0L2JyaWVmCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zvcm1hdC9kZXRhaWxzCitkb2N1bWVudGF0aW9uL2VuX1VTL2Zvcm1hdC9mdWxsLWRldGFpbAorZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3JtYXQvc3VtbWFyeQorZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3J3YXJkaW5nL2ZvcndhcmRpbmcKK2RvY3VtZW50YXRpb24vZW5fVVMvZm9yd2FyZGluZy9mb3J3YXJkaW5nLWFjY2Vzcy1wcmlvcml0eQorZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3J3YXJkaW5nL2ZvcndhcmRpbmctY29yZS1wcmlvcml0eQorZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3J3YXJkaW5nL2ZvcndhcmRpbmctZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3J3YXJkaW5nL2ZvcndhcmRpbmctc2hvdworZG9jdW1lbnRhdGlvbi9lbl9VUy9oYS9oYS1mYWlsb3ZlcgorZG9jdW1lbnRhdGlvbi9lbl9VUy9oYS9oYS1mYWlsb3Zlci1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2hhL2hhLXZycnAKK2RvY3VtZW50YXRpb24vZW5fVVMvaGEvaGEtdnJycC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL2hvc3QvaG9zdAorZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L2hvc3QtYWRkcmVzcy1zcGFjZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L2hvc3QtYWxpYXMKK2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9ob3N0LWFsaWFzLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9ob3N0LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9ob3N0LXZsYW4KK2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eQorZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3NlY3VyaXR5LWF0dGFjaG1lbnQtcG9pbnQKK2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eS1hdHRhY2htZW50LXBvaW50LWludGVyZmFjZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3NlY3VyaXR5LWF0dGFjaG1lbnQtcG9pbnQtc3dpdGNoCitkb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2VjdXJpdHktYmluZAorZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3NlY3VyaXR5LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eS1pcC1hZGRyZXNzCitkb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2VjdXJpdHktcG9saWN5Citkb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdworZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3Nob3ctaG9zdAorZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3Nob3ctaG9zdC1hZGRyZXNzLXNwYWNlCitkb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LWFsbAorZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3Nob3ctaG9zdC1ieS1ob3N0LWxhc3Qtc2VlbgorZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3Nob3ctaG9zdC1ieS1sYXN0LXNlZW4KK2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93LWhvc3QtYnktbmV0d29yay1hZGRyZXNzCitkb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LWlwdjQKK2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93LWhvc3QtaXRlbXMKK2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93LWhvc3QtbWFjCitkb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LXN3aXRjaAorZG9jdW1lbnRhdGlvbi9lbl9VUy9waW5nL3BpbmcKK2RvY3VtZW50YXRpb24vZW5fVVMvcGluZy9waW5nLWNvdW50Citkb2N1bWVudGF0aW9uL2VuX1VTL3BpbmcvcGluZy1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Jlc2VydmVkL2FsbAorZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93Citkb2N1bWVudGF0aW9uL2VuX1VTL3J1bm5pbmctY29uZmlnL3Nob3ctYWRkcmVzcy1zcGFjZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LWNvbnRyb2xsZXItbm9kZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy1mZWF0dXJlCitkb2N1bWVudGF0aW9uL2VuX1VTL3J1bm5pbmctY29uZmlnL3Nob3ctaG9zdAorZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LW5ldHdvcmstc2VydmljZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LXNubXAKK2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy1zd2l0Y2gKK2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy10YWcKK2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy12Y2VudGVyCitkb2N1bWVudGF0aW9uL2VuX1VTL3J1bm5pbmctY29uZmlnL3Nob3ctdm5zCitkb2N1bWVudGF0aW9uL2VuX1VTL3NldC9zZXQKK2RvY3VtZW50YXRpb24vZW5fVVMvc2V0L3NldC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3NubXAvc2hvdworZG9jdW1lbnRhdGlvbi9lbl9VUy9zbm1wL3Nob3ctZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9zbm1wL3NubXAtc2VydmVyCitkb2N1bWVudGF0aW9uL2VuX1VTL3NubXAvc25tcC1zZXJ2ZXItY29tbXVuaXR5Citkb2N1bWVudGF0aW9uL2VuX1VTL3NubXAvc25tcC1zZXJ2ZXItY29udGFjdAorZG9jdW1lbnRhdGlvbi9lbl9VUy9zbm1wL3NubXAtc2VydmVyLWVuYWJsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9zbm1wL3NubXAtc2VydmVyLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvc25tcC9zbm1wLXNlcnZlci1sb2NhdGlvbgorZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvYWxpYXMKK2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL2FsaWFzLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL2NvcmUtc3dpdGNoCitkb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9jb3JlLXN3aXRjaC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9pbnRlcmZhY2UKK2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL2ludGVyZmFjZS1hbGlhcworZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvaW50ZXJmYWNlLWFsaWFzLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL2ludGVyZmFjZS1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9yZWFsdGltZS1hZ2dyZWdhdGUKK2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3JlYWx0aW1lLWRlc2MKK2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3JlYWx0aW1lLWZlYXR1cmVzCitkb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9yZWFsdGltZS1mbG93Citkb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9yZWFsdGltZS1wb3J0Citkb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9yZWFsdGltZS1xdWV1ZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvcmVhbHRpbWUtdGFibGUKK2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3Nob3cKK2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3Nob3ctaW50ZXJmYWNlcworZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc2hvdy1pbnRlcmZhY2VzLWFsaWFzCitkb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9zaG93LXN3aXRjaC1hbGlhcworZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc2hvdy1zd2l0Y2gtZm9ybWF0LWJyaWVmCitkb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9zaG93LXN3aXRjaC1mb3JtYXQtZGV0YWlscworZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc2hvdy1zd2l0Y2gtb3JkZXIKK2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3N3aXRjaAorZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc3dpdGNoLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3N3aXRjaHBvcnQKK2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3N3aXRjaHBvcnQtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvdHVubmVsCitkb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC90dW5uZWwtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gtY2x1c3Rlci9zd2l0Y2gtY2x1c3RlcgorZG9jdW1lbnRhdGlvbi9lbl9VUy90YWNhY3Mvc2hvdworZG9jdW1lbnRhdGlvbi9lbl9VUy90YWNhY3Mvc2hvdy1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy90YWNhY3MKK2RvY3VtZW50YXRpb24vZW5fVVMvdGFjYWNzL3RhY2Fjcy1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy90YWNhY3MtaG9zdAorZG9jdW1lbnRhdGlvbi9lbl9VUy90YWNhY3MvdGFjYWNzLWhvc3Qta2V5Citkb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy90YWNhY3Mta2V5Citkb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy90YWNhY3MtdGltZW91dAorZG9jdW1lbnRhdGlvbi9lbl9VUy90YWcvbWF0Y2gKK2RvY3VtZW50YXRpb24vZW5fVVMvdGFnL21hdGNoLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdGFnL3Nob3ctdGFnCitkb2N1bWVudGF0aW9uL2VuX1VTL3RhZy90YWcKK2RvY3VtZW50YXRpb24vZW5fVVMvdGFnL3RhZy1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3RlY2gtc3VwcG9ydC9zaG93LXRlY2gtc3VwcG9ydC1jb25maWcKK2RvY3VtZW50YXRpb24vZW5fVVMvdGVjaC1zdXBwb3J0L3Nob3ctdGVjaC1zdXBwb3J0LWNvbmZpZy1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3RlY2gtc3VwcG9ydC90ZWNoLXN1cHBvcnQtY29uZmlnCitkb2N1bWVudGF0aW9uL2VuX1VTL3RlY2gtc3VwcG9ydC90ZWNoLXN1cHBvcnQtY29uZmlnLWNsaQorZG9jdW1lbnRhdGlvbi9lbl9VUy90ZWNoLXN1cHBvcnQvdGVjaC1zdXBwb3J0LWNvbmZpZy1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3RlY2gtc3VwcG9ydC90ZWNoLXN1cHBvcnQtY29uZmlnLXNoZWxsCitkb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdAorZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluCitkb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4tZHBpZAorZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbi1pZgorZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLWlwCitkb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4tbWFjCitkb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4tcG9ydAorZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLXByaW9yaXR5Citkb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4tcHJvdG8KK2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbi10b3MKK2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbi12bGFuCitkb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYXRoCitkb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYXRoLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhdGgtaG9zdAorZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGF0aC1pZgorZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGF0aC1pcAorZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGF0aC1zd2l0Y2gKK2RvY3VtZW50YXRpb24vZW5fVVMvdG9wb2xvZ3kvdG9wb2xvZ3kKK2RvY3VtZW50YXRpb24vZW5fVVMvdG9wb2xvZ3kvdG9wb2xvZ3ktZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy90cmFjZXJvdXRlL3RyYWNlcm91dGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdHJhY2Vyb3V0ZS90cmFjZXJvdXRlLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdHlwZXMvY2lkci1yYW5nZQorZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9kb21haW4tbmFtZQorZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9kcGlkCitkb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL2hleC1vci1kZWNpbWFsLWludGVnZXIKK2RvY3VtZW50YXRpb24vZW5fVVMvdHlwZXMvaG9zdAorZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9pZGVudGlmaWVyCitkb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL2lwLWFkZHJlc3MKK2RvY3VtZW50YXRpb24vZW5fVVMvdHlwZXMvaXAtYWRkcmVzcy1vci1kb21haW4tbmFtZQorZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9tYWMtYWRkcmVzcworZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9uZXRtYXNrCitkb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL29iai10eXBlCitkb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL3Jlc29sdmFibGUtaXAtYWRkcmVzcworZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9zdHJpbmcKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2FjdGl2ZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYWN0aXZlLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2Fwci1tb2RlLXZhbHVlLWRyb3AtaWYtdW5rbm93bgorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYXJwLW1vZGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2FycC1tb2RlLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2FycC1tb2RlLXZhbHVlLWFsd2F5cy1mbG9vZAorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYXJwLW1vZGUtdmFsdWUtZHJvcC1pZi11bmtub3duCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9hcnAtbW9kZS12YWx1ZS1mbG9vZC1pZi11bmtub3duCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9icm9hZGNhc3QKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2Jyb2FkY2FzdC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9icm9hZGNhc3QtdmFsdWUtYWx3YXlzLWZsb29kCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9icm9hZGNhc3QtdmFsdWUtZHJvcAorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYnJvYWRjYXN0LXZhbHVlLWZvcndhcmQtdG8ta25vd24KK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2Rlc2NyaXB0aW9uCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kZXNjcmlwdGlvbi1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kaGNwLWlwCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kaGNwLWlwLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2RoY3AtbW9kZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvZGhjcC1tb2RlLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2RoY3AtdmFsdWUtYWx3YXlzLWZsb29kCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kaGNwLXZhbHVlLWZsb29kLWlmLXVua25vd24KK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2RoY3AtdmFsdWUtc3RhdGljCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9nYXRld2F5LXBvb2wKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1yb3V0ZXItY29ubmVjdGVkCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtYWN0aXZlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1hY3RpdmUtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtYWxsb3ctbXVsdGlwbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLWFsbG93LW11bHRpcGxlLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLWRlc2NyaXB0aW9uCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1kZXNjcmlwdGlvbi1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC1pcC1zdWJuZXQKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLWlwLXN1Ym5ldC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC1tYWMKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLW1hYy1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC1zd2l0Y2gKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLXN3aXRjaC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC10YWcKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLXRhZy1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC12bGFucworZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtbWF0Y2gtdmxhbnMtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtcHJpb3JpdHkKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLXByaW9yaXR5LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS12bnMtY29ubmVjdGVkCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9tYXRjaAorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvb3JpZ2luCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9vcmlnaW4tZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvb3V0Z29pbmctaW50ZXJmYWNlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9wcmlvcml0eQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvcHJpb3JpdHktZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy1pZAorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy1pZC1hY2Nlc3MtbGlzdHMKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctaWQtZmxvdworZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy1pZC1pbnRlcmZhY2UtcnVsZXMKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50Citkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LXRlbmFudC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LXRlbmFudC1pZC1yb3V0ZXIKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50LWlkLXJvdXRlci1nd2lwcG9vbAorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy10ZW5hbnQtaWQtcm91dGVyLWd3cG9vbHMKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50LWlkLXJvdXRlci1pbnRlcmZhY2VzCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LXRlbmFudC1pZC1yb3V0ZXItaXBwb29sCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LXRlbmFudC1pZC1yb3V0ZXItcm91dGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50LWlkLXZucworZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc3JjLWlwCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1hY3RpdmUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1hY3RpdmUtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LWRlc2NyaXB0aW9uCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtZGVzY3JpcHRpb24tZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItYWN0aXZlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWFjdGl2ZS1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWRlc2NyaXB0aW9uCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWRlc2NyaXB0aW9uLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItZ3dpcAorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1nd2lwLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItZ3dwb29sCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWd3cG9vbC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWludGVyZmFjZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1pbnRlcmZhY2UtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1pbnRlcmZhY2VpcAorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1pbnRlcmZhY2VpcC1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLXJvdXRlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLXJvdXRlLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC12cm91dGVyCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtdnJvdXRlci1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy91c2UtYWRkcmVzcy1zcGFjZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdXNlLWFkZHJlc3Mtc3BhY2UtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWdyb3VwCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWdyb3VwLWRpcmVjdGlvbi1pbgorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1ncm91cC1kaXJlY3Rpb24tb3V0Citkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWdyb3VwLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdAorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWNpZHItcmFuZ2UKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1kZXNjcmlwdGlvbgorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWRlc2NyaXB0aW9uLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1lbnRyeQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWVudHJ5LWFjdGlvbi1kZW55Citkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZW50cnktYWN0aW9uLXBlcm1pdAorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWVudHJ5LWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1lbnRyeS10eXBlLWlwCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZW50cnktdHlwZS1pcC1wcm90b2NvbAorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWVudHJ5LXR5cGUtdGNwCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZW50cnktdHlwZS11ZHAKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1ldGhlci10eXBlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWlwLWFuZC1tYXNrLWlwCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtaXAtYW5kLW1hc2stbWFzaworZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWlwLWFueQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWlwLWljbXAKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1pcC1vbmx5Citkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtbWFjCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtbmFtZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LXBvcnQtaGV4Citkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtcG9ydC1vcC1lcQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LXBvcnQtb3AtbmVxCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtcG9ydC10eXBlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtcHJpb3JpdHkKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1wcmlvcml0eS1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtZGVmaW5pdGlvbgorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWRlZmluaXRpb24tZXhhbXBsZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWV4YW1wbGUKK2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1pZAorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWludGVyZmFjZQorZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWludGVyZmFjZS1leGFtcGxlCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtaW50ZXJmYWNlLWZpZWxkCitkb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtc2hvdy1pbnRlcmZhY2UKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvY2xpLmVnZy1pbmZvL2RlcGVuZGVuY3lfbGlua3MudHh0IGIvY2xpL2NsaS5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjEzNzg5Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2NsaS5lZ2ctaW5mby9kZXBlbmRlbmN5X2xpbmtzLnR4dApAQCAtMCwwICsxIEBACisKZGlmZiAtLWdpdCBhL2NsaS9jbGkuZWdnLWluZm8vZW50cnlfcG9pbnRzLnR4dCBiL2NsaS9jbGkuZWdnLWluZm8vZW50cnlfcG9pbnRzLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZGFiYjk3Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2NsaS5lZ2ctaW5mby9lbnRyeV9wb2ludHMudHh0CkBAIC0wLDAgKzEsNCBAQAorW2NvbnNvbGVfc2NyaXB0c10KK2NsaSA9IGNsaTptYWluCit0cmFjZSA9IHRyYWNlOm1haW4KKwpkaWZmIC0tZ2l0IGEvY2xpL2NsaS5lZ2ctaW5mby90b3BfbGV2ZWwudHh0IGIvY2xpL2NsaS5lZ2ctaW5mby90b3BfbGV2ZWwudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjZiOGExMDQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvY2xpLmVnZy1pbmZvL3RvcF9sZXZlbC50eHQKQEAgLTAsMCArMSwyNiBAQAordGltZXNpbmNlCitjbGltb2RlbGluZm8KK2NfYWN0aW9ucworbW9kZWxfaW5mb19saXN0Cit2bnN3CitkZXNjCitmbXRjbnYKK3ZlbmRvcgorY19jb21wbGV0aW9ucwordHJhY2UKK2NfZGF0YV9oYW5kbGVycworY192YWxpZGF0aW9ucworcnVuX2NvbmZpZworbW9kaQordXRpZgorY2xpCitzdG9yZWNsaWVudAorcHJldHR5cHJpbnQKK2RvYwordGVjaF9zdXBwb3J0CityZXN0X3RvX21vZGVsCit1cmxfY2FjaGUKK2NvbW1hbmQKK2Vycm9yCittaWR3CitzZG5kYgpkaWZmIC0tZ2l0IGEvY2xpL2NsaS5lZ2ctaW5mby96aXAtc2FmZSBiL2NsaS9jbGkuZWdnLWluZm8vemlwLXNhZmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGIxMzc4OQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9jbGkuZWdnLWluZm8vemlwLXNhZmUKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgYS9jbGkvY2xpLnB5IGIvY2xpL2NsaS5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNjk4N2FmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2NsaS5weQpAQCAtMCwwICsxLDc4NzkgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisjCisjIENvcHlyaWdodCAoYykgMjAxMCwyMDExLDIwMTIsMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworIyAgc2Ruc2ggLSBUaGUgQ29udHJvbGxlciBTaGVsbAorIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIworIyBMT09LISBUT0RPIC0tCisjCisjIGNyZWF0ZSB0b2tlbnMgZm9yIG1vZGlmeSBhY3Rpb25zIGluIFN0YXRpY0Zsb3dFbnRyeVB1c2hlciBhbmQgaGVyZQorIworIyBleHRlbmQgY29tcGxldGlvbiB0byBzaG93IGhlbHAgdGV4dAorIworIyBuZWVkIHRvIHZlcmlmeSB3ZSBjYW4gdGFsayB0byB0aGUgY29udHJvbGxlcgorIworIyBmbG93LWVudHJ5IG5hbWluZyAtIHVuaXF1ZSBhY3Jvc3MgYWxsIHN3aXRjaGVzPworIworIyBqb2lucyBvbiBzaG93IGNvbW1hbmRzIChwb3J0IG5hbWVzLCBpZHMsIGV0Yy4pCisjCisjIGFjY2VwdCBlbnVtcyBpbiBhZGRpdGlvbiB0byBudW1iZXJzIC0gImV0aGVyLXR5cGUgYXJwIiBvciAiZXRoZXItdHlwZSBpcCIKKyMKKyMgY2xpIGNvbW1hbmRzIG5vdCBtYXBwaW5nIHRvIGRhdGFiYXNlIG1vZGVsICh0aGlzIGlzIGFuIC11bmRvLSkKKyMKKyMgc2ltcGxlIG9wdGlvbnMvc2luZ2xldG9ucyBpbiB0aGUgQ0xJICgibG9nZ2luZyBsZXZlbCA1IiAidHdpdHRlciB1c2VybmFtZSBibGFoIikKKyMKKyMgY3N2LCBsZWZ0L3JpZ2h0IGp1c3RpZmljYXRpb24gaW4gY29sdW1ucywgc29ydHMKKyMKKyMgY29tcGxldGlvbiB3aXRoIG11bHRpIGNvbW1hbmQgbGluZXMKKyMKKyMgZGlzYWxsb3cgJ3N3aXRjaCcgZmllbGQgYW5kIG5hbWUgYXMgb3B0aW9ucyBmbG93LWVudHJ5ICgna2V5JyBmaWVsZHMgaW4gZ2VuZXJhbCkKKyMKKyMgZGVsYXllZCBjb21taXQgc2VtYW50aWNzIChkZXBlbmRzIG9uIDE/KQorIworIyBkZWxldGUgY29uZmlnIGZpbGVzPworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIworIyBOb3RlczoKKyMKKyMgIHN1cHBvcnQgZnVuY3Rpb25zIGZvciBhIGNvbW1hbmQsIGNvbnNpZGVyLCBmb3IgZXhhbXBsZSwgJ3Zucy1kZWZpbml0aW9uJworIworIyAgIEZvciBhIG5ldyBjb21tYW5kLCBmb3IgZXhhbXBsZSAndm5zLWRlZmluaXRpb24nLCB0aGVyZSB3aWxsIGJlIGEgdmFyaWV0eQorIyAgIG9mIGRpZmZlcmVudCBzdXBwb3J0IGZ1bmN0aW9ucyB0byBtYW5hZ2UgZGlmZmVyZW50IHJlcXVpcmVkIGZ1bmN0aW9uYWx5LgorIyAgIGRvX3Zuc19kZWZpbml0aW9uKCkgZGVzY3JpYmVzIHdoYXQgdG8gZG8gdG8gZXhlY3V0ZSB0aGUgYWN0dWFsIGNvbW1hbmQuCisjICAgY3Bfdm5zX2RlZmluaXRpb24oKSBkZXNjcmliZXMgaG93IHRvIHBlcmZvcm0gY29tbWFuZCBjb21wbGV0aW9uIGZvciB0aGUgc2FtZS4KKyMgICBkb19zaG93X3Zuc19kZWZpbml0aW9uKCkgd291bGQgZGVzY3JpYmUgaG93IHRvIHNob3cgdGhlIHZucy1kZWZpbml0aW9ucworIyAgICAgKHRoaXMgcHJvY2VkdXJlIGRvZXNuJ3QgZXhpc3QsIGJ1dCBpcyBpbXBsZW1lbnRlZCBieSAnc2hvdyB2bnMnIHZpYQorIyAgICAgZG9fc2hvd192bnMpLCB3aGlsZQorIyAgIGNwX3Nob3dfdm5zX2RlZmluaXRpb24oKSB3b3VsZCBkZXNjcmliZSBob3cgdG8gY29tcGxldGUgdGhlIHNob3cgY29tbWFuZCBmb3IKKyMgICB0aGlzIHBhcnRpY3VsYXIgY29tbWFuZC4gIE90aGVyIGZ1bmN0aW9ucyBtYXkgYWxzbyBiZSBuZWVkZWQsIGZvciBleGFtcGxlCisjICAgc3BlY2lhbGl6ZWQgY2hhbmdlcyB0byB0aGUgJ25vJyBjb21tYW5kIGZvciB0aGUgc2FtZSBjb21tYW5kLgorIworIyAgY29tbWFuZCBjb21wbGV0aW9uCisjCisjICAgY3VycmVudGx5IGluIG1hbnkgY2FzZXMsIHRoZXJlJ3MgYSBzcGVjaWFsaXplZCBjb21wbGV0aW9uIGhhbmRsZXIKKyMgICBpdCB3b3VsZCBtYWtlIHNlbnNlIHRvIG1hbmFnZSAnbm8nIGNvbXBsZXRpb24gYnkgb3ZlcmxvYWRpbmcgdGhlCisjICAgc2FtZSBjb21wbGV0aW9uIGhhbmRsZXIuCisjCisjCisjICBlcnJvciBwcm9jZXNzaW5nOgorIworIyAgIEtlZXAgaW4gbW9uZCB0aGF0IGFsIGVycm9ycyBvdWdodCB0byB1c2UgYSBzaW1pbGFyIHByZWZpeCBzbyB0aGF0CisjICAgYWxsIHRoZSBlcnJvciBjb25kaXRpb25zIGFjYW4gYmUgaWRlbnRpZnllZCBieSB0aGUgYXV0b21hdGVkIHRlc3QKKyMgICBwcm9jZWR1cmVzLiAgdGhlc2UgcHJlZml4ZXMgYXJlIHJlZ3VsYXIgZXhwcmVzc2lvbnMgaW4gYmlndGVzdC9jbGkucHkKKyMgICBUaGUgcHJlZml4ZWQgY3VycmVudGx5IHJlY29nbml6ZWQgYXMgZXJyb3JzIGFyZSAnRXJyb3I6IE5vdCBGb3VuZCIsCisjICAgJ0Vycm9yIHJ1bm5pbmcgY29tbWFuZCAnLCAnU3ludGF4IGVycm9yOicsIGFuZCAnU3ludGF4OiAnIHRoZSBsYXN0CisjICAgb2Ygd2hpY2ggaXMgdXNlZCB0byBkaXNwbGF5IGJvdGggdXNhZ2UgZm9yIHNvbWUgY29tbWFuZHMsIGFuZCAKKyMgICB2YXJpb3VzIHNwZWNpZmljIHN5bnRheCBlcnJvcnMKKyMKKyMgIGFsaWFzIG1hbmFnZW1lbnQ6CisjCisjICAgQWxpYXNlcyBhcmUgbWFuYWdlZCBieSBoYXZpbmcgYSBzZXBhcmF0ZSB0YWJsZS9tb2RlbCBmb3IgZWFjaAorIyAgIG9mIHRoZSBhbGlhc2VzLCBmb3IgZXhhbXBsZSB0aGUgaG9zdCB0YWJsZSBoYXMgYW4gYXNzb2NpYXRlZCBhbGlhcworIyAgIHRhYmxlIGNhbGxlZCAnaG9zdC1hbGlhcycuICBUaGVzZSBhbGlhcyBtb2RlbHMgYXJlIG5vdGhpbmcgbW9yZQorIyAgIHRoYW4gYW4gaWQsIHdoaWNoIGlzIHRoZSBhbGlhcyBuYW1lIGFuZCBhIGZvcmVpZ24ga2V5IGZvciB0aGUgb3RoZXIKKyMgICB0YWJsZSwgaW4gdGhlICdob3N0LWFsaWFzJyBtb2RlbCwgdGhlIGFzc29jaWF0ZWQgZm9yZWlnbiBrZXkgd291bGQgCisjICAgcG9pbnQgdG8gdGhlIGhvc3QuCisjICAgCisjICAgQWxpYXMgdGFibGVzIG9yIG1vZGVscyBhcmUgbm90IGRpcmVjdGx5IGNvbmZpZ3VyZWQgYXMgYWxpYXMgdGFibGVzLAorIyAgIHRoZSBjbGkgY2FuIGZpbmQgdGhlc2UgdGFibGVzIGJ5IG5vdGljaW5nIHRoZSBvbmx5IGZpZWxkcyB3aXRoaW4KKyMgICB0aGUgbW9kZWwgaXMgYSBmb3JlaWduIGtleSBmb3IgYW5vdGhlciB0YWJsZS4gICBUaGUgY2xpIGJ1aWxkcyB0aGUKKyMgICBhbGlhc19vYmpfdHlwZV94cmVmIGRpY3Rpb25hcnkgZHVyaW5nIGluaXRpYWxpemF0aW9uLCBhbmQgbGF0ZXIgdXNlcworIyAgIHRoYXQgYXNzb2NpYXRpb24gdG8gbWFuYWdlIGFsaWFzZXMuICAgS25vd2luZyB3aGljaCBvZiB0aGUgdGFibGVzCisjICAgYXJlIGFsaWFzIHRhYmxlcyBhbHNvIGFsbG93cyB0aGUgY2xpIHRvIGV4Y2x1ZGUgdGhlc2UgdGFibGVzIGZyb20KKyMgICBtb2RpZmljYXRpb24gaW4gdHlwaWNhbCBjb25maWcgbW9kZS4KKyMKKyMgICBBbGlhcyBhcmUgY3JlYXRlZCB3aGVuIHdpdGhpbiB0aGUgc3VibW9kZSBmb3IgYSBwYXJ0aWN1bGFyIG9ial90eXBlLAorIyAgIGZvciBleGFtcGxlLCB0aGUgaG9zdC1hbGlhcyB0YWJsZSBpcyBhdmFpbGFibGUgd2l0aGluIHRoZSBob3N0CisjICAgY29uZmlnIHN1Ym1vZGUsIGFuZCBpdCBhcHBlYXJzIGFzIHRoZSAnaG9zdC1hbGlhcycgdGFibGUgdGhlcmUuCisjICAgSG93ZXZlciBubyBmdXJ0aGVyIHN1Ym1vZGUgZm9yIHRoZSBob3N0LWFsaWFzIGlzIG1hbmFnZWQ7IGl0IGlzCisjICAgdHJlYXRlZCBhcyBpZiBpdCB3ZXJlIGEgZmllbGQgaW4gdGhlIHN1Ym1vZGUgY29uZmlnIG9iamVjdC4KKyMgICBTbyBpZiAnaG9zdC1hbGlhcyB4eHgnIHdlcmUgZW50ZXJlZCB3aGlsZSBpbiBob3N0IGNvbmZpZyBzdWJtb2RlLAorIyAgIHRoZSBjbGkgY29udmVydHMgdGhlIHJlcXVlc3QgaW50byBhIGhvc3QtYWxpYXMgdGFibGUgZW50cnkuCisjCisjICAgRmVhdHVyZSBtYW5hZ2VtZW50LiAgVGhlIGNsaSBpcyBpbnRlbmRlZCB0byBtYW5hZ2UgdGhlIGF2YWlsYWJpbGl0eQorIyAgIG9mIHNwZWNpZmljIGZlYXR1cmUgZ3JvdXBzLiAgVGhpcyBpc24ndCBtZWFudCB0byBwcmV2ZW50IGEgdXNlciBmcm9tCisjICAgZ2V0dGluZyBhdCBzcGVjaWZpYyBza3UgZmVhdHVyZXMgKGllOiBsaWNlbnNpbmcpLCBidXQgaW5zdGVhZCBtZWFudAorIyAgIHRvIGFsbG93IGEgdXNlciB0byBkaXNhYmxlIHNwZWNpZmljIHN1Yi1ncm91cHMgb2YgY29tbWFuZHMgdG8gCisjICAgcHJldmVudCB1bmludGVuZGVkIGVuYWJsaW5nIG9mIGZlYXR1cmVzLiAgRm9yIGV4YW1wbGUsCisjICAgdG8gcHJldmVudCBhICdzdGF0aWMtZmxvdycgY2xpIGNvbmZpZ3VyZWQgY29udHJvbGxlciBmcm9tIGVuYWJsaW5nCisjICAgdm5zIGZlYXR1cmVzIGxpa2VseSByZXN1bHRpbmcgaW4gYSBtaXNjb25maWd1cmVkIGVudmlyb25tZW50LgorIworIyAgY2hhbmdlczoKKyMKKyMgICAtLSBuZXcgc291cmNlIGZpZWxkIGZvciBvYmpfdHlwZXMgaW4gbW9kZWxzLCBvYmpfdHlwZXMgd2hpY2ggYXJlCisjICAgICAgd3JpdHRlbiBiYXNlZCBvbiBkaXNjb3ZlcmVkIGRldGFpbHMgYXJlIHR5cGljYWxseSBub3QgZWRpdGFibGUuCisjICAgICAgZG9uJ3QgYWxsb3cgYSBjb25maWcgc3VibW9kZSBlbnRyeS4gYW5kIGRvbid0CisjICAgICAgYWR2ZXJ0aXNlIHN1Y2ggYW4gZW50cnkgaXMgcG9zc2libGUKKyMKKyMgICAtLSBpbnRlZ3JhdGVkIGFsaWFzIHN1cHBvcnQsIG5vIHNwZWNpYWwgY2FzZXMgdGhyb3VnaCB0aGUgdXNlCisjICAgICAgb2YgYSBzZXBhcmF0ZWQgYWxpYXMgdGFibGVzLiAgdGhpcyBhbGxvd3MgbW9yZSBpbnRlZ3JhdGVkCisjICAgICAgY2xpIHN1cHBvcnQgZm9yIHRhYmxlcyBzcGVjaWZpY2FsbHkgY29uc3RydWN0ZWQgdG8gbWFuYWdlCisjICAgICAgYWxpYXMgbmFtZXMgZm9yIG90aGVyIGZpZWxkcy4gICBDdXJyZW50bHkgY29kZSBpbiB0aGUgY2xpCisjICAgICAgcHJldmVudHMgbXVsdGlwbGUgYWxpYXMgZm9yIGEgc2luZ2xlIGZvcmVpZ24ga2V5LCBidXQgdGhpcworIyAgICAgIGJlaGF2aW9yIGNhbiBiZSByZWxheGVkIChwZXJoYXBzIGl0IG91Z2h0IHRvIGJlIGNvbmZpZ3VyYWJsZT8pCisjCisjICAgLS0gcGVyZm9ybSBhbGlhcyBzdWJzdGl0dXRpb24gZm9yICdubycgY29tbWFuZHMgb2JqX3R5cGUncworIworIyAgIC0tIHN1cHBvcnQgZm9yIHByaW1hcnkga2V5L2lkIGNoYW5nZXMgd2l0aGluIGEgcm93LgorIyAgICAgIGlmIGFuIHVwZGF0ZSBvY2N1cnMgd2hpY2ggbW9kaWZpZXMgdGhlIHByaW1hcnkga2V5IG9mIGEgcm93LAorIyAgICAgIHRoZSBjbGkgbm93IGlkZW50aWZpZXMgd2hldGhlciBhbnkgZm9yZWlnbiBrZXlzIHBvaW50IGF0CisjICAgICAgdGhlIGV4aXN0aW5nIGVudHJ5LCBhbmQgdXBkYXRlcyB0aGUgZm9yZWlnbiBrZXkgdG8gcmVmZXJlbmNlCisjICAgICAgdGhlIHVwZGF0ZWQgcHJpbWFyeSBrZXkuCisjCisjICAgLS0gc3VwcG9ydCBmb3IgY2FzY2FkZWQgZGVsZXRlLgorIyAgICAgIHdoZW4gYSByb3cgaXMgZGVsZXRlZCwgaWYgdGhlcmUgYXJlIGZvcmVpZ24ga2V5cyBhc3NvY2lhdGVkCisjICAgICAgd2l0aCB0aGUgcm93LCB0aGUgY2xpIHdpbGwgcmVtb3ZlIHRoZW0uICB0aGUgY2xpbW9kZWxpbmZvCisjICAgICAgY29uZmlndXJlcyB3aGljaCBvYmpfdHlwZXMgYXJlIGluY2x1ZGVkIGluIHRoZSBjYXNjYWRlIGRlbGV0ZXMuCisjCisjICAgLS0gdm5zIGludGVyZmFjZSBjcmVhdGlvbi4KKyMgICAgICB2bnMgaW50ZXJmYWNlcyBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhIHZucy1pbnRlcmZhY2UtcnVsZSBhc3NvY2lhdGVkLgorIyAgICAgIHNkbnBsYXRmb3JtIHdyaXRlcyBib3RoIHRoZSBpbnRlcmZhY2UgbmFtZSBhbmQgdGhlIHJ1bGUsIGJ1dCB0aGUgY2xpIG5lZWRlZAorIyAgICAgIHRvIGhhdmUgY29kZSBhZGRlZCB0byBkZXRlcm1pbmUgYW5kIHZhbGlkYXRlIHRoZSBhc3NvY2lhdGVkIHJ1bGUuCisjICAgICAgVGhlIHZhbGlkYXRpb24gYXR0ZW1wdHMgdG8gZW5zdXJlIHRoZSBjb3JyZWN0IHJ1bGUgaXMgYXNzb2NpYXRlZCB3aXRoCisjICAgICAgdGhlIHVzZSBvZiB0aGUgaW50ZXJmYWNlIG5hbWUgKGlkKS4KKyMKKworaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCBvcywgYXRleGl0LCBzdGF0CitpbXBvcnQgc3lzLCB0cmFjZWJhY2sgICAgICAgICAgICAgICAgICAgIyB0cmFjZWJhY2sucHJpbnRfZXhjKCkKK2Zyb20gb3B0cGFyc2UgaW1wb3J0IE9wdGlvblBhcnNlcgorZnJvbSB0eXBlcyBpbXBvcnQgU3RyaW5nVHlwZQoraW1wb3J0IGNvbGxlY3Rpb25zCitpbXBvcnQgZGF0ZXRpbWUKK2ltcG9ydCBqc29uCitpbXBvcnQgcmUKK2ltcG9ydCB0aW1lCitpbXBvcnQgdXJsbGliMgoraW1wb3J0IGh0dHBsaWIgICAgICAgICAgICAgICAgICAgICAgICAgICMgcHJvdmlkZXMgZXJyb3IgcHJvY2Vzc2luZyBmb3IgaXNpbnN0YW5jZQoraW1wb3J0IHNvY2tldAoraW1wb3J0IHNlbGVjdAoraW1wb3J0IGZjbnRsCitpbXBvcnQgcG9zaXhwYXRoCitpbXBvcnQgcmFuZG9tCitpbXBvcnQgY29weQoraW1wb3J0IHV0aWYKK2ltcG9ydCBmbXRjbnYKK2ltcG9ydCBydW5fY29uZmlnCitpbXBvcnQgaW1wCitpbXBvcnQgbG9jYWxlCisKK2Zyb20gcGtnX3Jlc291cmNlcyBpbXBvcnQgcmVzb3VyY2VfZmlsZW5hbWUKK2Zyb20gbW9kaSBpbXBvcnQgTW9kaQorZnJvbSBtaWR3IGltcG9ydCAqCitmcm9tIHZuc3cgaW1wb3J0ICoKK2Zyb20gcHJldHR5cHJpbnQgaW1wb3J0IFByZXR0eVByaW50ZXIKK2Zyb20gc3RvcmVjbGllbnQgaW1wb3J0IFN0b3JlQ2xpZW50Citmcm9tIGNsaW1vZGVsaW5mbyBpbXBvcnQgQ2xpTW9kZWxJbmZvCitmcm9tIHZlbmRvciBpbXBvcnQgVmVuZG9yREIKK2ltcG9ydCBlcnJvcgoraW1wb3J0IGNvbW1hbmQKK2ltcG9ydCByZXN0X3RvX21vZGVsCitpbXBvcnQgdGVjaF9zdXBwb3J0CitpbXBvcnQgdXJsX2NhY2hlCitpbXBvcnQgZG9jCitpbXBvcnQgc2RuZGIKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAKKworY2xhc3MgUGFyYW1FeGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLnZhbHVlID0gdmFsdWUKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHJlcHIoc2VsZi52YWx1ZSkKKworY2xhc3MgVG9vTWFueVZOU0V4Y2VwdGlvbihFeGNlcHRpb24pOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZSk6CisgICAgICAgIHNlbGYudmFsdWUgPSB2YWx1ZQorICAgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgICAgICByZXR1cm4gcmVwcihzZWxmLnZhbHVlKQorCitUSU1FU1RBTVBfSEVMUCA9IFwKKyAgICAoJ0VudGVyIGFuIGludGVnZXIgdGltZXN0YW1wIGluIG1pbGxpc2Vjb25kcyBzaW5jZSB0aGUgZXBvY2ggb3IgZm9ybWF0dGVkXG4nICsKKyAgICAgJ2FzIG9uZSBvZiB0aGUgZm9sbG93aW5nIG9wdGlvbnMgaW4geW91ciBsb2NhbCB0aW1lem9uZTpcbicKKyAgICAgJyJZWVlZLU1NLUREIEhIOk1NOlNTIiAgICAgIFlZWVktTU0tRERUSEg6TU06U1NcbicgKyAKKyAgICAgJyJZWVlZLU1NLUREIEhIOk1NOlNTK1RUVCIgIFlZWVktTU0tRERUSEg6TU06U1MrVFRUXG4nICsKKyAgICAgJ1lZWVktTU0tREQgICAgICAgICAgICAgICAgIE1NLUREXG4nICsgCisgICAgICdISDpNTSAgICAgICAgICAgICAgICAgICAgICBub3cnKQorCisKKyMgVGhpcyBpcyBhIGJpdCBvZiBhIGhhY2suIFRoZSBjb21wbGV0aW9uIGFuZCB2YWxpZGF0aW9uIGZ1bmN0aW9ucyBmb3IgdGltZSB6b25lcworIyBhcmUgc3RhdGljIG1ldGhvZHMsIGJ1dCB0aGV5IG5lZWQgdG8gYWNjZXNzIHRoZSBTRE5TaCBvYmplY3QgdG8gZ2V0IGF0IHRoZQorIyBjb250cm9sbGVyIGZpZWxkIHRvIGJlIGFibGUgdG8gZG8gYSBSRVNUIGNhbGwgdG8gbG9hZCB0aGUgbGlzdCBvZiB0aW1lIHpvbmUKKyMgc3RyaW5ncy4gU28gd2Ugc2V0IHVwIGEgZ2xvYmFsIGZvciB0aGUgc2luZ2xlIFNETlNoIGluc3RhbmNlIHdlIGhhdmUuIEFuCisjIGFsdGVybmF0aXZlIHdvdWxkIGhhdmUgYmVlbiB0byBoYXZlIGEgZ2xvYmFsIHZhcmlhYmxlIGZvciB0aGUgbGlzdCBvZiB0aW1lCisjIHpvbmUgc3RyaW5ncyB0aGF0J3MgaW5pdGlhbGl6ZWQgd2hlbiB0aGUgQ0xJIGlzIGluaXRpYWxpemVkLCBidXQgaXQgc2VlbXMKKyMgbmljZXIgdG8gb25seSBsb2FkIGl0IG9uIGRlbWFuZCwgZXNwZWNpYWxseSBzaW5jZSBzZXR0aW5nIHRoZSB0aW1lIHpvbmUKKyMgd2lsbCBiZSBhIHByZXR0eSBpbmZyZXF1ZW50bHkgaW52b2tlZCBjb21tYW5kLgorY2xpID0gTm9uZQorCisjCisjIENvbnN0YW50cyBmb3IgcGFja2V0IHRyYWNpbmcKKyMKK1NFU1NJT05JRCA9ICdzZXNzaW9uSWQnCitGVF9WTlMgPSAndm5zJworRlRfUE9SVCA9ICdwb3J0JworRlRfUE9SVF9EUElEID0gJ2RwaWQnCitGVF9QT1JUX1BPUlQgPSAncG9ydCcKK0ZUX09VVFBVVCA9ICdvdXRwdXQnCitGVF9ESVJFQ1RJT04gPSAnZGlyZWN0aW9uJworRlRfUEVSSU9EID0gJ3BlcmlvZCcKK0ZUX1RJTUVPVVQgPSAiRmlsdGVyVGltZW91dCIKK0ZUX1BFUklPRF9ERUZBVUxUID0gMzAwCisKK29ub3M9MQorIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyAKK2NsYXNzIE5vdEZvdW5kKEV4Y2VwdGlvbik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9ial90eXBlLCBuYW1lKToKKyAgICAgICAgc2VsZi5vYmpfdHlwZSA9IG9ial90eXBlCisgICAgICAgIHNlbGYubmFtZSA9IG5hbWUKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuICJOb3QgRm91bmQ6ICVzICVzIiAlIChzZWxmLm9ial90eXBlLCBzZWxmLm5hbWUpCisKKworIyBMT09LITogVGhlIG5leHQgdHdvIGZ1bmN0aW9ucyBhcmUgY29waWVkIGZyb20gdGhlIHNkbmNvbiBjb2RlLgorIyBTaG91bGQgaWRlYWxseSBmaWd1cmUgb3V0IGEgd2F5IHRvIHNoYXJlIHRoZSBjb2RlIGZvciB1dGlsaXR5CisjIGZ1bmN0aW9ucyBsaWtlIHRoaXMuCisKK2RlZiBkb3R0ZWRfZGVjaW1hbF90b19pbnQoaXApOgorICAgICIiIgorICAgIENvbnZlcnRzIGEgZG90dGVkIGRlY2ltYWwgSVAgYWRkcmVzcyBzdHJpbmcgdG8gYSAzMiBiaXQgaW50ZWdlcgorICAgICIiIgorICAgIGJ5dGVzID0gaXAuc3BsaXQoJy4nKQorICAgIGlwX2ludCA9IDAKKyAgICBmb3IgYiBpbiBieXRlczoKKyAgICAgICAgaXBfaW50ID0gKGlwX2ludCA8PCA4KSArIGludChiKQorICAgIHJldHVybiBpcF9pbnQKKyAgICAKKworZGVmIHNhbWVfc3VibmV0KGlwMSwgaXAyLCBuZXRtYXNrKToKKyAgICAiIiIKKyAgICBDaGVja3Mgd2hldGhlciB0aGUgdHdvIGlwIGFkZHJlc3NlcyBhcmUgb24gdGhlIHNhbWUgc3VibmV0IGFzCisgICAgZGV0ZXJtaW5lZCBieSB0aGUgbmV0bWFzayBhcmd1bWVudC4gQWxsIG9mIHRoZSBhcmd1bWVudHMgYXJlCisgICAgZG90dGVkIGRlY2ltYWwgSVAgYWRkcmVzcyBzdHJpbmdzLgorICAgICIiIgorICAgIGlwMV9pbnQgPSBkb3R0ZWRfZGVjaW1hbF90b19pbnQoaXAxKQorICAgIGlwMl9pbnQgPSBkb3R0ZWRfZGVjaW1hbF90b19pbnQoaXAyKQorICAgIG5ldG1hc2tfaW50ID0gZG90dGVkX2RlY2ltYWxfdG9faW50KG5ldG1hc2spCisgICAgcmV0dXJuIChpcDFfaW50ICYgbmV0bWFza19pbnQpID09IChpcDJfaW50ICYgbmV0bWFza19pbnQpCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgCisKK2NsYXNzIFNETlNoKCk6CisKKyAgICBkZWJ1ZyA9IEZhbHNlICAgICAgICAgICAgICAgIyBnZW5lcmFsIGNsaSBkZWJ1Z2dpbmcKKyAgICBkZWJ1Z19iYWNrdHJhY2UgPSBGYWxzZSAgICAgIyBiYWNrdHJhY2Ugb24gZmFpbHVyZXMKKyAgICBkZXNjcmlwdGlvbiA9IEZhbHNlICAgICAgICAgIyBoZWxwIGRlYnVnIGNvbW1hbmQgZGVzY3JpcHRpb25zCisgICAgZGlzcGxheV9yZXN0ID0gRmFsc2UgICAgICAgICMgZGlzcGxheSByZXN0IGNhbGwgZGV0YWlscworICAgIGRpc3BsYXlfcmVwbHlfcmVzdCA9IEZhbHNlICAjIGRpc3BsYXkgcmVzdCBjYWxsIHJlcGxpZXMgZGV0YWlscworCisgICAgY29tbWFuZF9kaWN0ID0ge30KKyAgICBtb2RlX3N0YWNrID0gW10KKyAgICByZXNlcnZlZF93b3JkcyA9IFsndW5rbm93bicsICdhbGwnXQorCisgICAga25vd25fY29udHJvbGxlcnMgPSBbIjEyNy4wLjAuMTo4MDAwIl0KKyAgICBjb250cm9sbGVyID0gTm9uZQorICAgICMgTE9PSyEgbWFuYWdlIHRoaXMgc2VwYXJhdGVseSB1bnRpbCB3ZSBjYW4gY2V0YWlubHkKKyAgICAjICAgICAgIHRhbGsgdG8gZXRoMCBhZGRyIGluc3RlYWQgb2YgMTI3LjAuMC4xCisgICAgY29udHJvbGxlcl9mb3JfcHJvbXB0ID0gIjEyNy4wLjAuMTo4MDAwIgorICAgIGNsdXN0ZXIgPSAiZGVmYXVsdCIKKworICAgIHJ1biA9IFRydWUKKworICAgICMgQXJlIHdlIHJ1bm5pbmcgaW4gYmF0Y2ggbW9kZSwgaS5lLiAiY2F0IGNvbW1hbmRzIHwgY2xpIgorICAgIGJhdGNoID0gRmFsc2UKKworICAgICMgdXNlZCBmb3IgcGFyc2luZyBhcyBhbiBhcmcKKyAgICBsb2NhbF9uYW1lX3BhdHRlcm4gPSAiY29uZmlnOi8vKFtBLVphLXowLTlfOkBcLVwuXC9dKyQpIgorCisgICAgIyBuYW1lIG9mIGJvb3Qvc3RhcnR1cC1jb25maWcKKyAgICBib290X2NvbmZpZ19maWxlbmFtZSA9ICcvb3B0L3NkbnBsYXRmb3JtL3J1bi9ib290LWNvbmZpZycKKyAgICBzYXZlZF9jb25maWdzX2Rpcm5hbWUgPSAnL29wdC9zZG5wbGF0Zm9ybS9ydW4vc2F2ZWQtY29uZmlncy8nCisgICAgZmVhdHVyZV9hbGxvd19leHBlcmltZW50YWwgPSAnL29wdC9zZG5wbGF0Zm9ybS9mZWF0dXJlL2V4cGVyaW1lbnRhbCcKKworICAgICMgY29udGFpbmVkIG9iamVjdHMKKyAgICBwcCA9IE5vbmUKKyAgICBzdG9yZSA9IE5vbmUKKyAgICBtb2RlbF9oYW5kbGVyID0gTm9uZQorCisgICAgIyBjYWNoZWQgbWV0YWRhdGEKKyAgICBzdGF0c19tZXRhZGF0YSA9IE5vbmUKKyAgICBzdGF0c190eXBlX21ldGFkYXRhID0gTm9uZQorICAgIHN0YXRzX3Jlc3RhcGlfbWFwID0geydjb250cm9sbGVyLW5vZGUnOiAnY29udHJvbGxlcid9CisKKyAgICBzdGF0c19vcHRpb25hbF9wYXJhbXMgPSB7CisgICAgICAgICdzdGFydC10aW1lJzogeyd0eXBlJzogJ3N0cmluZycsCisgICAgICAgICAgICAgICAgICAgICAgICdzeW50YXhfaGVscCc6IFRJTUVTVEFNUF9IRUxQfSwKKyAgICAgICAgJ2VuZC10aW1lJzogeyd0eXBlJzogJ3N0cmluZycsCisgICAgICAgICAgICAgICAgICAgICAnc3ludGF4X2hlbHAnOiBUSU1FU1RBTVBfSEVMUH0sCisgICAgICAgICdkdXJhdGlvbic6IHsndHlwZSc6ICdzdHJpbmcnLAorICAgICAgICAgICAgICAgICAgICAgJ3N5bnRheF9oZWxwJzogCisgICAgICAgICAgICAgICAgICAgICAiRW50ZXIgYW4gaW50ZWdlciBmb2xsb3dlZCBieSBhIHRpbWUgdW5pdFxuIiArCisgICAgICAgICAgICAgICAgICAgICAiW2ludGVnZXJdd2Vla3MgIFtpbnRlZ2VyXWRheXMgIFtpbnRlZ2VyXWhvdXJzXG4iICsKKyAgICAgICAgICAgICAgICAgICAgICJbaW50ZWdlcl1taW5zICAgW2ludGVnZXJdc2VjcyAgW2ludGVnZXJdbXMifSwKKyAgICAgICAgJ3NhbXBsZS1pbnRlcnZhbCc6IHsndHlwZSc6ICdpbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeW50YXhfaGVscCc6ICdFbnRlciBhbiBpbnRlZ2VyIG51bWJlciBvZiBtaWxsaXNlY29uZHMnfSwKKyAgICAgICAgJ3NhbXBsZS1jb3VudCc6IHsndHlwZSc6ICdpbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdzeW50YXhfaGVscCc6ICdFbnRlciBhbiBpbnRlZ2VyIHRhcmdldCBzYW1wbGUgY291bnQnfSwKKyAgICAgICAgJ3NhbXBsZS13aW5kb3cnOiB7J3R5cGUnOiAnc3RyaW5nJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N5bnRheF9oZWxwJzogJ0VudGVyIGFuIGludGVnZXIgbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyBmb3Igc2FtcGxpbmcgd2luZG93J30sCisgICAgICAgICdkYXRhLWZvcm1hdCc6IHsndHlwZSc6ICdlbnVtJywgJ3ZhbHVlcyc6IFsndmFsdWUnLCAncmF0ZSddfSwKKyAgICAgICAgJ2Rpc3BsYXknOiB7J3R5cGUnOiAnZW51bScsICd2YWx1ZXMnOiBbJ2xhdGVzdC12YWx1ZScsICdncmFwaCcsICd0YWJsZSddfSwKKyAgICAgICAgIydsaW1pdCc6IHsndHlwZSc6ICdpbnQnfQorICAgICAgICB9CisKKyAgICBuZXR2aXJ0X2ZlYXR1cmVfZW5hYmxlZF9jYWNoZWQgPSBGYWxzZQorICAgIHdhcm5pbmdfc3VwcHJlc3MgPSBGYWxzZSAgICAgICAgICAgICMKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyB3YXJuaW5nCisgICAgIyAgV2hlbiBhIGNvbmZpZyBpcyBnZXR0aW5nIHJlcGxheWVkLCB3YXJuaW5ncyBhcmUgc3Vwb3Jlc3NlZC4gIE90aGVyIHNpdHVhdGlvbnMKKyAgICAjICBtYXkgYWxzbyByZXF1aXJlIHN1cHJlc3Npb24gb2Ygd2FybmluZ3MuCisgICAgIworICAgIGRlZiB3YXJuaW5nKHNlbGYsIG1lc3NhZ2UpOgorICAgICAgICBpZiBub3Qgc2VsZi53YXJuaW5nX3N1cHByZXNzOgorICAgICAgICAgICAgcHJpbnQgIldhcm5pbmc6ICVzIiAlIG1lc3NhZ2UKKyAgICAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgc3VwcmVzc193YXJuaW5ncyhzZWxmKQorICAgICMKKyAgICBkZWYgc3VwcHJlc3Nfd2FybmluZ3Moc2VsZik6CisgICAgICAgIHNlbGYud2FybmluZ19zdXBwcmVzcyA9IFRydWUKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBlbmFibGVfd2FybmluZ3Moc2VsZikKKyAgICAjCisgICAgZGVmIGVuYWJsZV93YXJuaW5ncyhzZWxmKToKKyAgICAgICAgc2VsZi53YXJuaW5nX3N1cHByZXNzID0gRmFsc2UKKworCisgICAgY29uZmlnX3JlcGxheSA9IEZhbHNlICAgICAgICAgICAgICAgIyBvbmx5IHRydWUgd2hpbGUgcmVwbGF5aW5nIGNvbmZpZyBmaWxlcworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBjb25maWdfcmVwbGF5X3N0YXJ0CisgICAgIyAgQmVoYXZpb3IgaXMgZGlmZmVyZW50IGR1cmluZyBjb25maWcgcmVwbGF5LiAgV2FybmluZ3MgYXJlCisgICAgIyAgc3VwcHJlc3NlZCwgYW5kIG90aGVyIGVycm9yIGNvbmRpdGlvbnMgbWF5IGJlIHJlbGF4ZWQsIGZvciBleGFtcGxlCisgICAgIyAgdGhlIHN3aXRjaCBzdWJtb2RlIGludGVyZmFjZSBjb21tYW5kIHJlcXVpcmVzIHRoYXQgdGhlIGludGVyZmFjZSBleGlzdCwKKyAgICAjICBhbmQgdGhlIGludGVyZmFjZSBuYW1lcyBhcmUgZGlzY292ZXJlZCBieSBzZG5wbGF0Zm9ybSwgd2hpY2ggbWVhbnMgdGhhdCBkdXJpbmcKKyAgICAjICBjb25maWcgcmVwbGF5IGZvciBzdGF0dXAsIGFuIHVua25vd24tbmFtZWQtaW50ZXJmYWNlIG1heSBuZWVkIHRvIGJlIGFjY2VwdGVkCisgICAgIyAgc2luY2UgdGhhdCBpbnRlcmZhY2UgbWF5IGFwcGVhciBvbmNlIHRoZSBzd2l0Y2ggY29ubmVjdGVkIHRvIHNkbnBsYXRmb3JtLCBhbmQKKyAgICAjICBzZG5wbGF0Zm9ybSB3cml0ZXMgdGhlIHBvcnRzIGZvciB0aGlzIHN3aXRjaC4KKyAgICAjCisgICAgZGVmIGNvbmZpZ19yZXBsYXlfc3RhcnQoc2VsZik6CisgICAgICAgIHNlbGYuc3VwcHJlc3Nfd2FybmluZ3MoKQorICAgICAgICBzZWxmLmNvbmZpZ19yZXBsYXkgPSBUcnVlCisgICAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNvbmZpZ19yZXBsYXlfZG9uZQorICAgICMKKyAgICBkZWYgY29uZmlnX3JlcGxheV9kb25lKHNlbGYpOgorICAgICAgICBzZWxmLmVuYWJsZV93YXJuaW5ncygpCisgICAgICAgIHNlbGYuY29uZmlnX3JlcGxheSA9IEZhbHNlCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgY29uZmlnX3JlcGxheV9hY3RpdmUKKyAgICAjICBSZXR1cm5zIHRydWUgd2hlbiBhIGNvbmZpZ3VyYXRpb24gaXMgZ2V0dGluZyByZXBsYXllZAorICAgICMKKyAgICBkZWYgY29uZmlnX3JlcGxheV9hY3RpdmUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmNvbmZpZ19yZXBsYXkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBub3RlCisgICAgIyAgV2hlbiBhIGNvbmZpZyBpcyBnZXR0aW5nIHJlcGxheWVkLCB3YXJuaW5ncy9ub3RlcyBhcmUgc3Vwb3Jlc3NlZC4gIE90aGVyIHNpdHVhdGlvbnMKKyAgICAjICBtYXkgYWxzbyByZXF1aXJlIHN1cHJlc3Npb24gb2Ygd2FybmluZ3MuCisgICAgIworICAgIGRlZiBub3RlKHNlbGYsIG1lc3NhZ2UpOgorICAgICAgICBpZiBub3Qgc2VsZi53YXJuaW5nX3N1cHByZXNzOgorICAgICAgICAgICAgcHJpbnQgIk5vdGU6ICVzIiAlIG1lc3NhZ2UKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBkZWJ1Z19tc2cKKyAgICAjICBEZWJ1Z2dpbmcgbWVzc2FnZSBjb3Zlci4gIE9ubHkgZW5hYmxlZCBmb3IgZGlzcGxheSBvbmNlICdkZWJ1ZyBjbGknIGlzIHBlcmZvcm1lZC4KKyAgICAjCisgICAgZGVmIGRlYnVnX21zZyhzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgaWYgc2VsZi5kZWJ1ZzoKKyAgICAgICAgICAgIHByaW50ICJkZWJ1Z19tc2c6ICVzIiAlIG1lc3NhZ2UKKyAgICAgICAgICAgIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBlcnJvcl9tc2cKKyAgICAjICBFcnJvciBtZXNzYWdlIGNvdmVyLCB0byBlbnN1cmUgY29uc2lzdGVudCBlcnJvciBtZXNzYWdlcworICAgICMKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGVycm9yX21zZyhtZXNzYWdlKToKKyAgICAgICAgcmV0dXJuICJFcnJvcjogJXMiICUgbWVzc2FnZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHN5bnRheF9tc2cKKyAgICAjICBTeW50YXggZXJyb3IgbWVzc2FnZSBjb3ZlciwgdG8gZW5zdXJlIGNvbnNpc3RlbnQgZXJyb3IgbWVzc2FnZXMKKyAgICAjCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBzeW50YXhfbXNnKG1lc3NhZ2UpOgorICAgICAgICByZXR1cm4gIlN5bnRheDogJXMiICUgbWVzc2FnZSAKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBjb21wbGV0aW9uX2Vycm9yX21zZworICAgICMgIEVycm9yIG1lc3NhZ2UgY292ZXIgZHVyaW5nIGNvbXBsZXRpb24sIHRvIGVuc3VyZSBjb25zaXN0ZW50IGVycm9yIG1lc3NhZ2VzCisgICAgIworICAgIGRlZiBjb21wbGV0aW9uX2Vycm9yX21zZyhzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoIkVycm9yOiAlcyIgJSBtZXNzYWdlKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNvbXBsZXRpb25fc3ludGF4X21zZworICAgICMgIFN5bnRheCBlcnJvciBtZXNzYWdlIGNvdmVyIGR1cmluZyBjb21wbGV0aW9uLCB0byBlbnN1cmUgY29uc2lzdGVudCBlcnJvciBtZXNzYWdlcworICAgICMKKyAgICBkZWYgY29tcGxldGlvbl9zeW50YXhfbXNnKHNlbGYsIG1lc3NhZ2UpOgorICAgICAgICBzZWxmLnByaW50X2NvbXBsZXRpb25faGVscCgiU3ludGF4OiAlcyIgJSBtZXNzYWdlKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGluaXRfaGlzdG9yeV9maWxlCisgICAgIworICAgIGRlZiBpbml0X2hpc3RvcnlfZmlsZShzZWxmKToKKyAgICAgICAgaGlzdG9yeV9maWxlID0gb3MucGF0aC5qb2luKG9zLmVudmlyb25bIkhPTUUiXSwgIi5zZG5zaF9oaXN0b3J5IikKKyAgICAgICAgIyBjcmVhdGUgdGhlIGluaXRpYWwgaGlzdG9yeSBmaWxlIGdyb3VwLXdyaXRhYmxlLAorICAgICAgICAjIHNvIHRoYXQgdGhlIHRhY2FjcyB1c2VycyBjYW4gd3JpdGUgdG8gaXQKKyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoaGlzdG9yeV9maWxlKToKKyAgICAgICAgICAgIHN0ID0gb3Muc3RhdChoaXN0b3J5X2ZpbGUpCisgICAgICAgICAgICBpZiBub3QgKHN0W3N0YXQuU1RfTU9ERV0gJiBzdGF0LlNfSVdHUlApOgorICAgICAgICAgICAgICAgIGJ1ZiA9IG9wZW4oaGlzdG9yeV9maWxlKS5yZWFkKCkKKyAgICAgICAgICAgICAgICBvcy5yZW5hbWUoaGlzdG9yeV9maWxlLCBoaXN0b3J5X2ZpbGUgKyAifiIpCisgICAgICAgICAgICAgICAgbWFzayA9IG9zLnVtYXNrKDAwNykKKyAgICAgICAgICAgICAgICBmbm8gPSBvcy5vcGVuKGhpc3RvcnlfZmlsZSwgb3MuT19XUk9OTFkgfCBvcy5PX0NSRUFULCAwNjYwKQorICAgICAgICAgICAgICAgIG9zLnVtYXNrKG1hc2spCisgICAgICAgICAgICAgICAgb3Mud3JpdGUoZm5vLCBidWYpCisgICAgICAgICAgICAgICAgb3MuY2xvc2UoZm5vKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbWFzayA9IG9zLnVtYXNrKDAwNykKKyAgICAgICAgICAgIGZubyA9IG9zLm9wZW4oaGlzdG9yeV9maWxlLCBvcy5PX1dST05MWSB8IG9zLk9fQ1JFQVQsIDA2NjApCisgICAgICAgICAgICBvcy51bWFzayhtYXNrKQorICAgICAgICAgICAgb3MuY2xvc2UoZm5vKQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZWFkbGluZS5yZWFkX2hpc3RvcnlfZmlsZShoaXN0b3J5X2ZpbGUpCisgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICBhdGV4aXQucmVnaXN0ZXIocmVhZGxpbmUud3JpdGVfaGlzdG9yeV9maWxlLCBoaXN0b3J5X2ZpbGUpCisgICAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGluaXRfY29tbWFuZF9kaWN0CisgICAgIworICAgIGRlZiBpbml0X2NvbW1hbmRfZGljdChzZWxmKToKKworICAgICAgICAjCisgICAgICAgICMgY29tbWFuZF9zdWJtb2RlX2RpY3Qgc2F2ZXMgYSBsaXR0bGUgaW5mb3JtYXRpb24gYWJvdXQKKyAgICAgICAgIyBzdWJtb2RlIGNvbW1hbmRzLiAgVGhlIGluZGV4IGlzICdtb2RlJywgYW5kIHRoZSByZXN1bHRpbmcKKyAgICAgICAgIyBsaXN0IGNvbnRhaW5zIHN0cmluZ3MsIGVhY2ggb2Ygd2hpY2ggaXMgYSBzdWJtb2RlIGNvbW1hbmQKKyAgICAgICAgIyBhdmFpbGFibGUgaW4gdGhhdCBtb2RlLgorICAgICAgICBzZWxmLmNvbW1hbmRfc3VibW9kZV9kaWN0ID0ge30KKworICAgICAgICAjCisgICAgICAgICMgYXNzb2NpYXRlIGNvbW1hbmQgbmFtZXMgd2l0aCBmZWF0dXJlcywgc28gdGhhdCB3aGVuCisgICAgICAgICMgaGVscCBpcyBwcm92aWRlZCwgY29tbWFuZCBuYW1lcyB3aGljaCBoYXZlIGFzc29jaWF0ZWQKKyAgICAgICAgIyBmZWF0dXJlcyBhcmUgdmFsaWRhdGVkIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBmZWF0dXJlCisgICAgICAgICMgaXMgZW5hYmxlZCBvciBub3QuCisgICAgICAgIHNlbGYuY29tbWFuZF9uYW1lX2ZlYXR1cmUgPSB7fQorCisgICAgICAgICMKKyAgICAgICAgIyBjb21tYW5kX25lc3RlZF9kaWN0IGlzIGluZGV4ZWQgYnkgbW9kZSwgYW5kIGNvbnRhaW5zCisgICAgICAgICMgY29tbWFuZCBjb25maWd1cmVkIHdpdGggYSB0cmFpbGluZyAnKicsIGZvciBleGFtcGxlCisgICAgICAgICMgJ21vZGUnIDogJ2NvbmZpZy0qJywgaW50ZW5kZWQgdG8gbWVhbiAiYWxsIG5lc3RlZAorICAgICAgICAjIHN1Ym1vZGVzIGFmdGVyIGNvbmZpZy0nLiAgVGhpcyBjYW4ndCBiZSBjb21wdXRlZCB1bnRpbAorICAgICAgICAjIGFsbCBzdWJtb2RlcyBhcmUga25vd24sIHdoaWNoIG1lYW5zIGFsbCB0aGUgY29tbWFuZAorICAgICAgICAjIGRlc2NyaWJwdGlvbiBtdXN0IGJlIGNvbmZpZ3VyZWQuLCBmb3IgdGhlc2UgdG8gbWFrZSBzZW5zZS4KKyAgICAgICAgc2VsZi5jb21tYW5kX25lc3RlZF9kaWN0ID0ge30KKworICAgICAgICAjCisgICAgICAgICMgY29uZmlnIG1vZGUgY29tbWFuZHMKKyAgICAgICAgIworICAgICAgICAjc2VsZi5jb21tYW5kX2RpY3RbJ2NvbmZpZyddID0gWyAiYm9vdCIgXQorCisgICAgICAgICMKKyAgICAgICAgIyBjb21tYW5kcyB3aGljaCBzdGFydCBhdCAnbG9naW4nCisgICAgICAgICMKKyAgICAgICAgaWYgb25vcyA9PSAwOgorICAgICAgICAgICAgc2VsZi5jb21tYW5kX25lc3RlZF9kaWN0Wydsb2dpbiddID0gWyAnc2hvdycsICdsb2dvdXQnLCAnZXhpdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hpc3RvcnknLCAnaGVscCcsICdlY2hvJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0ZScsICd0cmFjZScsICd0cmFjZXJvdXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGluZycsICd0ZXN0JywgJ3ZlcnNpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25uZWN0JywgJ3dhdGNoJywgJ25vJyBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmNvbW1hbmRfbmVzdGVkX2RpY3RbJ2xvZ2luJ10gPSBbICdzaG93JywgJ2xvZ291dCcsICdleGl0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGlzdG9yeScsICdoZWxwJywgJ2VjaG8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRlJywgJ3RyYWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGluZycsICd0ZXN0JywgJ3ZlcnNpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25uZWN0JywgJ3dhdGNoJywgJ25vJyBdCisKKyAgICAgICAgc2VsZi5jb21tYW5kX25lc3RlZF9kaWN0WydlbmFibGUnXSA9IFsgJ2NsZWFyJywgJ2VuZCcgXQorCisgICAgICAgICNzZWxmLmNvbW1hbmRfZGljdFsnY29uZmlnLWludGVybmFsJ10gPSBbJ2xpbnQnLCAncGVybXV0ZSddCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgbWFrZV91bml0X2Zvcm1hdHRlcgorICAgICMKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIG1ha2VfdW5pdF9mb3JtYXR0ZXIodW5pdHMpOgorICAgICAgICByZXR1cm4gbGFtYmRhIHgsIHk6ICclcyAlcycgJSAoeCwgdW5pdHMpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgaW5pdF9zdGF0c19tZXRhZGF0YQorICAgICMKKyAgICBkZWYgaW5pdF9zdGF0c19tZXRhZGF0YShzZWxmKToKKyAgICAgICAgIyBJbml0aWFsaXplIHRoZSBzdGF0cyBtZXRhZGF0YSBieSBwdWxsaW5nIGl0IGZyb20gdGhlIHJlc3QgYXBpCisgICAgICAgIGpzb25fZGF0YSA9IHNlbGYucmVzdF9zaW1wbGVfcmVxdWVzdF90b19kaWN0KCdodHRwOi8vJXMvcmVzdC92MS9zdGF0cy9tZXRhZGF0YS8lcy8nICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5jb250cm9sbGVyLCBzZWxmLmNsdXN0ZXIpKQorICAgICAgICBtZXRhZGF0YSA9IHt9CisgICAgICAgIGZpZWxkcyA9IHt9CisgICAgICAgIGZvciBpdGVtIGluIGpzb25fZGF0YToKKyAgICAgICAgICAgICMgWFhYIFJlcXVlc3RpbmcgdGhpcyBzdGF0IGNhdXNlcyBhIGxvbmcgZGVsYXkgaW4gcmVhZGluZzsgYnVnIGluIHNkbmNvbgorICAgICAgICAgICAgIyBvbmNlIHRoaXMgaXMgZml4ZWQgd2UgY2FuIGFkZCBiYWNrIGluOyBhbHNvIGFkZCB0byBmaWVsZF9vcmRlcmluZ3MgYmVsb3cKKyAgICAgICAgICAgICNpZiBqc29uX2RhdGFbaXRlbV1bJ25hbWUnXSA9PSAnT0ZBY3RpdmVGbG93JzoKKyAgICAgICAgICAgICMgICAgY29udGludWUKKworICAgICAgICAgICAgaWYganNvbl9kYXRhW2l0ZW1dWyd0YXJnZXRfdHlwZSddIGluIG1ldGFkYXRhOgorICAgICAgICAgICAgICAgIG1ldGFkYXRhW2pzb25fZGF0YVtpdGVtXVsndGFyZ2V0X3R5cGUnXV0uYXBwZW5kKGpzb25fZGF0YVtpdGVtXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWV0YWRhdGFbanNvbl9kYXRhW2l0ZW1dWyd0YXJnZXRfdHlwZSddXSA9IFtqc29uX2RhdGFbaXRlbV1dCisgICAgICAgICAgICAgICAgZmllbGRzW2pzb25fZGF0YVtpdGVtXVsndGFyZ2V0X3R5cGUnXV0gPSB7fQorCisgICAgICAgICAgICBmb3JtYXR0ZXIgPSBzZWxmLm1ha2VfdW5pdF9mb3JtYXR0ZXIoanNvbl9kYXRhW2l0ZW1dWyd1bml0cyddKQorICAgICAgICAgICAgZmllbGRzW2pzb25fZGF0YVtpdGVtXVsndGFyZ2V0X3R5cGUnXV1banNvbl9kYXRhW2l0ZW1dWyduYW1lJ11dID0gXAorICAgICAgICAgICAgICAgIHsndmVyYm9zZS1uYW1lJzoganNvbl9kYXRhW2l0ZW1dWyd2ZXJib3NlX25hbWUnXSwKKyAgICAgICAgICAgICAgICAgJ3VuaXRzJzoganNvbl9kYXRhW2l0ZW1dWyd1bml0cyddLAorICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJzogZm9ybWF0dGVyfQorCisgICAgICAgIHNlbGYuc3RhdHNfbWV0YWRhdGEgPSBqc29uX2RhdGEKKyAgICAgICAgc2VsZi5zdGF0c190eXBlX21ldGFkYXRhID0gbWV0YWRhdGEKKworICAgICAgICBzZWxmLnBwLmFkZF9mb3JtYXQoJ1NUQVRTLUNPTlRST0xMRVInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaS5pbml0X3N0YXRzX21ldGFkYXRhKCknLCAjIG9yaWdpbmEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsnc3RhdHMtY29udHJvbGxlcicgOiB7CisgICAgICAgICAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7J2RlZmF1bHQnOiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2NwdS11c2VyJywgJ2NwdS1uaWNlJywgJ2NwdS1zeXN0ZW0nLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NwdS1pZGxlJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVtLWZyZWUnLCAnbWVtLXVzZWQnLCAnc3dhcC11c2VkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc2stcm9vdCcsICdkaXNrLWxvZycsICdkaXNrLWJvb3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2RucGxhdGZvcm0tY3B1JywgJ2RhdGFiYXNlLWNwdScsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBhY2hlLWNwdScsICdjbGktY3B1JywgJ3N0YXRkLWNwdSddfSwKKyAgICAgICAgICAgICAgICAnZmllbGRzJyA6IGZpZWxkc1snY29udHJvbGxlciddCisgICAgICAgICAgICAgICAgfX0pCisKKyAgICAgICAgc2VsZi5wcC5hZGRfZm9ybWF0KCdTVEFUUy1TV0lUQ0gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaS5pbml0X3N0YXRzX21ldGFkYXRhKCknLCAjIG9yaWdpbmEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJ3N0YXRzLXN3aXRjaCcgOiB7CisgICAgICAgICAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7J2RlZmF1bHQnOiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ09GUGFja2V0SW4nLCAnT0ZGbG93TW9kJywgJ09GQWN0aXZlRmxvdyddfSwKKyAgICAgICAgICAgICAgICAnZmllbGRzJyA6IGZpZWxkc1snc3dpdGNoJ10KKyAgICAgICAgICAgICAgICB9fSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICBmb3Igb2JqX3R5cGUgaW4gZmllbGRzOgorICAgICAgICAgICAgZm9yIGZpZWxkIGluIGZpZWxkc1tvYmpfdHlwZV06CisgICAgICAgICAgICAgICAgZm9yIGRhdGFfZm9ybWF0IGluIFsncmF0ZScsICd2YWx1ZSddOgorICAgICAgICAgICAgICAgICAgICB1bml0cyA9IGZpZWxkc1tvYmpfdHlwZV1bZmllbGRdWyd1bml0cyddCisgICAgICAgICAgICAgICAgICAgIGlmIGRhdGFfZm9ybWF0ID09ICdyYXRlJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHVuaXRzICs9ICcvcycKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5wcC5hZGRfZm9ybWF0KCdTVEFUUy0lcy0lcy0lcycgJSAob2JqX3R5cGUsZmllbGQsZGF0YV9mb3JtYXQpLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbGkuaW5pdF9zdGF0c19tZXRhZGF0YSgpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICdzdGF0cy0lcy0lcy0lcycgJSAob2JqX3R5cGUsZmllbGQsZGF0YV9mb3JtYXQpIDogeyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7J2RlZmF1bHQnOiBbJ3ZhbHVlJywgJ3RpbWVzdGFtcCddfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGRzJyA6IHsndGltZXN0YW1wJzogeyd2ZXJib3NlLW5hbWUnOiAnVGltZXN0YW1wJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInOiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbWJkYSB4LHk6IHRpbWUuY3RpbWUoeC8xMDAwKX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzogeyd1bml0cyc6IHVuaXRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJzogCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICclcyAoJXMpJyAlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmllbGRzW29ial90eXBlXVtmaWVsZF1bJ3ZlcmJvc2UtbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdHMpfX0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIworICAgIGRlZiBjb21tYW5kX3BhY2thZ2VzX3BhdGgoc2VsZik6CisgICAgICAgIGNvbW1hbmRfZGVzY3JpcHRpb25zID0gJ2Rlc2MnCisgICAgICAgIGRlc2NfcGF0aCA9IHJlc291cmNlX2ZpbGVuYW1lKF9fbmFtZV9fLCBjb21tYW5kX2Rlc2NyaXB0aW9ucykKKyAgICAgICAgaWYgZGVzY19wYXRoOgorICAgICAgICAgICAgIyBwcmludCAiZGVzY19wYXRoICVzIiAlIGRlc2NfcGF0aAorICAgICAgICAgICAgcmV0dXJuIGRlc2NfcGF0aAorICAgICAgICBkZXNjX3BhdGggPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgY29tbWFuZF9kZXNjcmlwdGlvbnMpCisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKGRlc2NfcGF0aCk6CisgICAgICAgICAgICByZXR1cm4gZGVzY19wYXRoCisgICAgICAgIHJldHVybiBOb25lCisKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIworICAgIGRlZiBjb21tYW5kX3BhY2thZ2VzX2V4aXN0cyhzZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgZGVzY19wYXRoID0gc2VsZi5jb21tYW5kX3BhY2thZ2VzX3BhdGgoKQorICAgICAgICBpZiBkZXNjX3BhdGggPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIHZlcnNpb25fcGF0aCA9IG9zLnBhdGguam9pbihkZXNjX3BhdGgsIHZlcnNpb24pCisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKHZlcnNpb25fcGF0aCk6CisgICAgICAgICAgICByZXR1cm4gdmVyc2lvbl9wYXRoCisgICAgICAgIHJldHVybiBOb25lCisKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIworICAgIGRlZiBhZGRfY29tbWFuZF9wYWNrYWdlcyhzZWxmLCB2ZXJzaW9uKToKKyAgICAgICAgIiIiCisgICAgICAgIEFkZCBhbGwgY29tbWFuZCBhbmQgb3V0cHV0IGZvcm1hdCBjb21wb25lbnRzCisKKyAgICAgICAgIiIiCisgICAgICAgIGRlc2NfcGF0aCA9IHNlbGYuY29tbWFuZF9wYWNrYWdlc19wYXRoKCkKKyAgICAgICAgaWYgZGVzY19wYXRoID09IE5vbmU6CisgICAgICAgICAgICBwcmludCAnTm8gQ29tbWFuZCBEZXNjcmlwdGlvbnMgc3ViZGlyZWN0b3J5JworICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgZm9yIHBhdGhfdmVyc2lvbiBpbiBbeCBmb3IgeCBpbiBvcy5saXN0ZGlyKGRlc2NfcGF0aCkgaWYgeC5zdGFydHN3aXRoKHZlcnNpb24pXToKKyAgICAgICAgICAgIHByaW50IHBhdGhfdmVyc2lvbgorICAgICAgICAgICAgcmVzdWx0X3R1cGxlID0gaW1wLmZpbmRfbW9kdWxlKHBhdGhfdmVyc2lvbiwgW2Rlc2NfcGF0aF0pCisgICAgICAgICAgICBpbXAubG9hZF9tb2R1bGUodmVyc2lvbiwgcmVzdWx0X3R1cGxlWzBdLCByZXN1bHRfdHVwbGVbMV0sIHJlc3VsdF90dXBsZVsyXSkKKyAgICAgICAgICAgIG5ld19wYXRoID0gcmVzdWx0X3R1cGxlWzFdCisgICAgICAgICAgICBjbWRzX2ltcG9ydGVkID0gW10KKyAgICAgICAgICAgIGZvciBjbWRzIGluIG9zLmxpc3RkaXIobmV3X3BhdGgpOgorICAgICAgICAgICAgICAgIChwcmVmaXgsIHN1ZmZpeCkgPSBvcy5wYXRoLnNwbGl0ZXh0KGNtZHMpCisgICAgICAgICAgICAgICAgaWYgKHN1ZmZpeCA9PSAnLnB5JyBvciBzdWZmaXggPT0gJy5weWMnKSBhbmQgcHJlZml4IG5vdCBpbiBjbWRzX2ltcG9ydGVkIGFuZCBwcmVmaXggIT0gJ19faW5pdF9fJzoKKyAgICAgICAgICAgICAgICAgICAgY21kc19pbXBvcnRlZC5hcHBlbmQocHJlZml4KQorICAgICAgICAgICAgICAgICAgICByZXN1bHRfdHVwbGUgPSBpbXAuZmluZF9tb2R1bGUocHJlZml4LCBbbmV3X3BhdGhdKQorICAgICAgICAgICAgICAgICAgICBtb2R1bGUgPSBpbXAubG9hZF9tb2R1bGUocHJlZml4LCByZXN1bHRfdHVwbGVbMF0sIHJlc3VsdF90dXBsZVsxXSwgcmVzdWx0X3R1cGxlWzJdKQorICAgICAgICAgICAgICAgICAgICBjb21tYW5kLmFkZF9jb21tYW5kc19mcm9tX21vZHVsZSh2ZXJzaW9uLCBtb2R1bGUsIHNlbGYuZHVtcF9zeW50YXgpCisgICAgICAgICAgICAgICAgICAgIHNlbGYucHAuYWRkX2Zvcm1hdHNfZnJvbV9tb2R1bGUodmVyc2lvbiwgbW9kdWxlKQorICAgICAgICAgICAgIyBwcmludCBjbWRzX2ltcG9ydGVkCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMKKyAgICBkZWYgY2hvaWNlc190ZXh0X2J1aWxkZXIoc2VsZiwgbWF0Y2hlcywgbWF4X2xlbiA9IE5vbmUsIGNvbF93aWR0aCA9IE5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgQHBhcmFtIG1heF9sZW4gaW50ZWdlciwgZGVzY3JpYmVzIG1heCB3aWR0aCBvZiBhbnkgZW50cnkgaW4gbWF0Y2hlcworICAgICAgICBAcGFyYW0gY29sX3dpZHRoIGludGVnZXIsIGNvbHVuIHdpZHRoCisgICAgICAgICIiIgorICAgICAgICAjIFNvcnQgdGhlIGNob2ljZXMgYWxwaGFiZXRpY2FsbHksIGJ1dCBpZiB0aGUgdG9rZW4gZW5kcworICAgICAgICAjIGluIGEgbnVtYmVyLCBzb3J0IHRoYXQgbnVtYmVyIG51bWVyaWNhbGx5LgorICAgICAgICB0cnk6CisgICAgICAgICAgICBlbnRyaWVzID0gc29ydGVkKG1hdGNoZXMsIHV0aWYuY29tcGxldGlvbl90cmFpbGluZ19pbnRlZ2VyX2NtcCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorCisgICAgICAgIGlmIGNvbF93aWR0aCA9PSBOb25lOgorICAgICAgICAgICAgIyByZXF1ZXN0IHRvIGxvb2sgaXQgdXAKKyAgICAgICAgICAgIChjb2xfd2lkdGgsIGxpbmVfbGVuZ3RoKSA9IHNlbGYucHAuZ2V0X3Rlcm1pbmFsX3NpemUoKQorICAgICAgICAgICAgY29sX3dpZHRoID0gbWluKDEyMCwgY29sX3dpZHRoKQorCisgICAgICAgIGlmIG1heF9sZW4gPT0gTm9uZToKKyAgICAgICAgICAgICMgcmVxdWVzdCB0byBjb21wdXRlIHRoZSBtYXggbGVuZ3RoCisgICAgICAgICAgICBtYXhfbGVuID0gbGVuKG1heChtYXRjaGVzLCBrZXk9bGVuKSkKKworICAgICAgICBjb3VudCA9IGxlbihtYXRjaGVzKQorICAgICAgICBtYXhfbGVuICs9IDEgIyBzcGFjZSBhZnRlciBlYWNoIGNob2ljZQorICAgICAgICBpZiBtYXhfbGVuID4gY29sX3dpZHRoOgorICAgICAgICAgICAgIyBvbmUgcGVyIGxpbmU/CisgICAgICAgICAgICBwYXNzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwZXJfbGluZSA9IGNvbF93aWR0aCAvIG1heF9sZW4KKyAgICAgICAgICAgIGxpbmVzID0gKGNvdW50ICsgKHBlcl9saW5lIC0gMSkpIC8gcGVyX2xpbmUKKyAgICAgICAgICAgIGlmIGxpbmVzID09IDE6CisgICAgICAgICAgICAgICAgcmV0dXJuICcnLmpvaW4oWyclLSpzJyAlIChtYXhfbGVuLCBtKSBmb3IgbSBpbiBlbnRyaWVzXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBmaWxsIHRoZSBjb2x1bW5zLCB3aGljaCBtZWFucyBza2lwcGluZyBhcm91bmQgdGhlIGVudHJpZXMKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBbXQorICAgICAgICAgICAgICAgIGZvciBsIGluIHJhbmdlKGxpbmVzKToKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChbJyUtKnMnICUgKG1heF9sZW4sIGVudHJpZXNbaV0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGwsIGNvdW50LCBsaW5lcyldKQorICAgICAgICAgICAgICAgIGxpbmVzID0gWycnLmpvaW4oeCkgZm9yIHggaW4gcmVzdWx0XQorICAgICAgICAgICAgICAgIHJldHVybiAnXG4nLmpvaW4obGluZXMpCisKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIworICAgIGRlZiBtYXRjaGVzX2hvb2soc2VsZiwgc3VicywgbWF0Y2hlcywgbWF4X2xlbik6CisKKyAgICAgICAgIyBvbmUgc2hvdCBkaXNhYmxlciwgdXNlZCB0byBkaXNhYmxlIHByaW50aW5nIG9mIGNvbXBsZXRpb24KKyAgICAgICAgIyBoZWxwIGZvciB0d28tY29sdW1uIGhlbHAgZGlzcGxheSAoZm9yICc/JyBjaGFyYWN0ZXIpLiAKKyAgICAgICAgIyBjb21wbGV0aW9uIHByaW50aW5nIGhlcmUgY2FuIG9ubHkgZGlzcGxheSB0aGUgcG9zc2libGUgc2VsZWN0aW9ucywKKyAgICAgICAgIyBmb3IgdHdvLWNvbHVtbiBtb2RlLCB0aGUgcmVhc29uIHdoeSBlYWNoIGtleXdvcmQgd2FzIGFkZGVkCisgICAgICAgICMgbmVlZHMgdG8gYmUgZGlzcGxheWVkLCB3aGljaCBpcyBubyBsb25nZXIgYXZhaWxhYmxlIGhlcmUuCisgICAgICAgIGlmIHNlbGYuY29tcGxldGlvbl9wcmludCA9PSBGYWxzZToKKyAgICAgICAgICAgIHNlbGYuY29tcGxldGlvbl9wcmludCA9IFRydWUKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICAKKyAgICAgICAgY2hvaWNlc190ZXh0ID0gc2VsZi5jaG9pY2VzX3RleHRfYnVpbGRlcihtYXRjaGVzLCBtYXhfbGVuKQorICAgICAgICBzZWxmLnByaW50X2NvbXBsZXRpb25faGVscChjaG9pY2VzX3RleHQpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMKKyAgICBkZWYgcHJlX2lucHV0X2hvb2soc2VsZik6CisgICAgICAgICIiIgorICAgICAgICAiIiIKKyAgICAgICAgcGFzcworCisgICAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIAorICAgIGRlZiBkZXNjX3ZlcnNpb25fdG9fcGF0aF9lbGVtKHNlbGYsIHZlcnNpb24pOgorICAgICAgICAiIiIKKyAgICAgICAgVmVyc2lvbiBudW1iZXJzIGxpa2UgMS4wIG5lZWQgdG8gYmUgY29udmVydGVkIHRvIHRoZSBwYXRoCisgICAgICAgIGVsZW1lbnQgYXNzb2NpYXRlZCB3aXRoIHRoZSBudW1iZXIsIGxpa2UgdmVyc2lvbjEwMAorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdmVyc2lvbl9udW1iZXIgPSBmbG9hdCh2ZXJzaW9uKQorICAgICAgICAgICAgdmVyc2lvbiA9ICd2ZXJzaW9uJXMnICUgaW50KHZlcnNpb25fbnVtYmVyICogMTAwKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgIyB0ZW1wb3JhcnksIHVzZSB1bnRpbCB2ZXJzaW9uMTAwIGV4aXN0cy4KKyAgICAgICAgaWYgdmVyc2lvbiA9PSAndmVyc2lvbjEwMCcgYW5kIG5vdCBzZWxmLmNvbW1hbmRfcGFja2FnZXNfZXhpc3RzKHZlcnNpb24pOgorICAgICAgICAgICAgdmVyc2lvbiA9ICd2ZXJzaW9uMjAwJworCisgICAgICAgIHJldHVybiB2ZXJzaW9uCisgICAgICAgIAorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGluaXQKKyAgICAjCisgICAgZGVmIGluaXQoc2VsZik6CisgICAgICAgIGdsb2JhbCBtaQorICAgICAgICAKKyAgICAgICAgc2VsZi5jb21wbGV0aW9uX3ByaW50ID0gVHJ1ZQorICAgICAgICBzZWxmLnZlbmRvcmRiID0gVmVuZG9yREIoKQorICAgICAgICBzZWxmLnZlbmRvcmRiLmluaXQoKQorCisgICAgICAgIHBhcnNlciA9IE9wdGlvblBhcnNlcigpCisgICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKCItYyIsICItLWNvbnRyb2xsZXIiLCBkZXN0PSJjb250cm9sbGVyIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ic2V0IGRlZmF1bHQgY29udHJvbGxlciB0byBDT05UUk9MTEVSIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGF2YXI9IkNPTlRST0xMRVIiLCBkZWZhdWx0PXNlbGYuY29udHJvbGxlcikKKyAgICAgICAgcGFyc2VyLmFkZF9vcHRpb24oIi1TIiwgIi0tc3ludGF4IiwgZGVzdD0nZHVtcF9zeW50YXgnLAorICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJkaXNwbGF5IHN5bnRheCBvZiBsb2FkZWQgY29tbWFuZHMiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249J3N0b3JlX3RydWUnLCBkZWZhdWx0PUZhbHNlKQorICAgICAgICBwYXJzZXIuYWRkX29wdGlvbigiLWkiLCAiLS1pbml0IiwgZGVzdD0naW5pdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9ImRvIG5vdCBwZXJmb3JtIGluaXRpYWxpemF0aW9uIGNoZWNrcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UpCisgICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKCItZCIsICItLWRlYnVnIiwgZGVzdD0nZGVidWcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdlbmFibGUgZGVidWcgZm9yIGNsaSAoZGVidWcgY2xpKScsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UpCisgICAgICAgIHBhcnNlci5hZGRfb3B0aW9uKCItdiIsICItLXZlcnNpb24iLCBkZXN0PSdkZXNjX3ZlcnNpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSdzZWxlY3QgY29tbWFuZCB2ZXJzaW9ucyAoZGVzY3JpcHRpb24gZ3JvdXApJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdD1Ob25lKQorICAgICAgICBwYXJzZXIuYWRkX29wdGlvbignLW0nLCAiLS1tb2RlIiwgZGVzdD0nc3RhcnRpbmdfbW9kZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J29uY2UgdGhlIGNsaSBzdGFydHMsIG5lc3QgaW50byB0aGlzIG1vZGUnKQorICAgICAgICBwYXJzZXIuYWRkX29wdGlvbignLXEnLCAiLS1xdWlldCIsIGRlc3Q9J3F1aWV0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0nc3VwcHJlc3Mgd2FybmluZyBtZXNzYWdlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0nc3RvcmVfdHJ1ZScsIGRlZmF1bHQ9RmFsc2UpCisgICAgICAgIChzZWxmLm9wdGlvbnMsIHNlbGYuYXJncykgPSBwYXJzZXIucGFyc2VfYXJncygpCisgICAgICAgIHNlbGYuY29udHJvbGxlciA9IHNlbGYub3B0aW9ucy5jb250cm9sbGVyCisgICAgICAgIGlmIG5vdCBzZWxmLmNvbnRyb2xsZXI6CisgICAgICAgICAgICBzZWxmLmNvbnRyb2xsZXIgPSAiMTI3LjAuMC4xOjgwMDAiCisgICAgICAgIHNlbGYuZHVtcF9zeW50YXggPSBzZWxmLm9wdGlvbnMuZHVtcF9zeW50YXgKKyAgICAgICAgaWYgbm90IHNlbGYuZHVtcF9zeW50YXg6CisgICAgICAgICAgICBzZWxmLmR1bXBfc3ludGF4ID0gRmFsc2UKKyAgICAgICAgc2VsZi5kZWJ1ZyA9IHNlbGYub3B0aW9ucy5kZWJ1ZworCisgICAgICAgICMgY29tbWFuZCBvcHRpb24sIHRoZW4gZW52LCB0aGVuIGRlZmF1bHQKKyAgICAgICAgc2VsZi5kZXNjX3ZlcnNpb24gPSBzZWxmLm9wdGlvbnMuZGVzY192ZXJzaW9uCisgICAgICAgIGlmIHNlbGYuZGVzY192ZXJzaW9uID09IE5vbmU6CisgICAgICAgICAgICBzZWxmLmRlc2NfdmVyc2lvbiA9IG9zLmdldGVudignQ0xJX0NPTU1BTkRfVkVSU0lPTicpCisgICAgICAgIGlmIHNlbGYuZGVzY192ZXJzaW9uID09IE5vbmU6CisgICAgICAgICAgICBzZWxmLmRlc2NfdmVyc2lvbiA9ICcyLjAnICAgIyAndmVyc2lvbjIwMCcKKworICAgICAgICBpZiBzZWxmLmRlc2NfdmVyc2lvbjoKKyAgICAgICAgICAgIHNlbGYuZGVzY192ZXJzaW9uID0gc2VsZi5kZXNjX3ZlcnNpb25fdG9fcGF0aF9lbGVtKHNlbGYuZGVzY192ZXJzaW9uKQorCisgICAgICAgIHNlbGYubGVuZ3RoID0gMCAjIHNjcmVlbiBsZW5ndGguCisKKyAgICAgICAgc2VsZi5zZXRfY29udHJvbGxlcl9mb3JfcHJvbXB0KCkKKworICAgICAgICBpZiBub3Qgc3lzLnN0ZGluLmlzYXR0eSgpOgorICAgICAgICAgICAgc2VsZi5iYXRjaCA9IFRydWUKKworICAgICAgICBzZWxmLnN0b3JlID0gU3RvcmVDbGllbnQoKQorICAgICAgICBzZWxmLnN0b3JlLnNldF9jb250cm9sbGVyKHNlbGYuY29udHJvbGxlcikKKworICAgICAgICBtaSA9IE1vZGkoc2VsZiwgQ2xpTW9kZWxJbmZvKCkpCisgICAgICAgIHNlbGYubWkgPSBtaQorICAgICAgICBzZWxmLmluaXRfY29tbWFuZF9kaWN0KCkKKworICAgICAgICBzZWxmLmNvbXBsZXRpb25fcmVzZXQoKQorICAgICAgICBzZWxmLmNvbXBsZXRpb25fc2tpcCA9IEZhbHNlCisgICAgICAgIHNlbGYuY29tcGxldGlvbl9jYWNoZSA9IFRydWUKKyAgICAgICAgcmVhZGxpbmUuc2V0X2NvbXBsZXRlcihzZWxmLmNvbXBsZXRlcikKKyAgICAgICAgcmVhZGxpbmUuc2V0X2NvbXBsZXRlcl9kZWxpbXMoIlx0ICIpCisgICAgICAgICMgcmVhZGxpbmUuc2V0X3ByZV9pbnB1dF9ob29rKHNlbGYucHJlX2lucHV0X2hvb2spCisgICAgICAgIHJlYWRsaW5lLnNldF9jb21wbGV0aW9uX2Rpc3BsYXlfbWF0Y2hlc19ob29rKHNlbGYubWF0Y2hlc19ob29rKQorICAgICAgICBpZiBub3Qgc2VsZi5iYXRjaDoKKyAgICAgICAgICAgIHNlbGYuaW5pdF9oaXN0b3J5X2ZpbGUoKQorICAgICAgICBzZWxmLnB1c2hfbW9kZSgibG9naW4iKQorCisgICAgICAgICMgc3RhcnRpbmcgbW9kZSwgCisgICAgICAgIHN0YXJ0aW5nX21vZGUgPSBzZWxmLm9wdGlvbnMuc3RhcnRpbmdfbW9kZQorICAgICAgICBpZiBzdGFydGluZ19tb2RlID09IE5vbmU6CisgICAgICAgICAgICBzdGFydGluZ19tb2RlID0gb3MuZ2V0ZW52KCdDTElfU1RBUlRJTkdfTU9ERScpCisKKyAgICAgICAgaWYgc3RhcnRpbmdfbW9kZToKKyAgICAgICAgICAgIGlmIHN0YXJ0aW5nX21vZGUgPT0gJ2xvZ2luJzoKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbGlmIHN0YXJ0aW5nX21vZGUgPT0gJ2VuYWJsZSc6CisgICAgICAgICAgICAgICAgc2VsZi5wdXNoX21vZGUoImVuYWJsZSIpCisgICAgICAgICAgICBlbGlmIHN0YXJ0aW5nX21vZGUgPT0gJ2NvbmZpZyc6CisgICAgICAgICAgICAgICAgc2VsZi5wdXNoX21vZGUoImVuYWJsZSIpCisgICAgICAgICAgICAgICAgc2VsZi5wdXNoX21vZGUoImNvbmZpZyIpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHByaW50ICdPbmx5IGxvZ2luLCBlbmFibGUgb3IgY29uZmlnIGFsbG93ZWQgYXMgc3RhcnRpbmcgbW9kZXMnCisKKyAgICAgICAgIyBwcm9jZXNzIHF1aWV0IG9wdGlvbgorICAgICAgICBxdWlldCA9IHNlbGYub3B0aW9ucy5xdWlldAorICAgICAgICBpZiBxdWlldCA9PSBOb25lOgorICAgICAgICAgICAgcXVpZXQgPSBvcy5nZXRlbnYoJ0NMSV9TVVBQUkVTU19XQVJOSU5HJykKKworICAgICAgICBpZiBxdWlldDoKKyAgICAgICAgICAgIHNlbGYuc3VwcmVzc193YXJuaW5ncygpCisKKyAgICAgICAgIworICAgICAgICBzZWxmLnBwID0gUHJldHR5UHJpbnRlcihzZWxmKQorCisgICAgICAgICMKKyAgICAgICAgIyBwYXR0ZXJuIG1hdGNoZXMKKyAgICAgICAgIworICAgICAgICBzZWxmLklQX0FERFJfUkUgPSByZS5jb21waWxlKHInXihcZHsxLDN9XC4pezN9XGR7MSwzfSQnKQorICAgICAgICBzZWxmLkNJRFJfUkUgPSByZS5jb21waWxlKHInXigoXGR7MSwzfVwuKXszfVxkezEsM30pLyhcZHsxLDJ9PykkJykKKyAgICAgICAgc2VsZi5NQUNfUkUgPSByZS5jb21waWxlKHInXigoW0EtRmEtZlxkXSl7Mn06Pyl7NX1bQS1GYS1mXGRdezJ9JCcpCisgICAgICAgIHNlbGYuRFBJRF9SRSA9IHJlLmNvbXBpbGUocideKChbQS1GYS1mXGRdKXsyfTo/KXs3fVtBLUZhLWZcZF17Mn0kJykKKyAgICAgICAgc2VsZi5BQ0xfUkUgPSByZS5jb21waWxlKHInXlxkKyQnKSAgIyBqdXN0IHRoZSBsZWFkaW5nIGRpZ2l0cworICAgICAgICBzZWxmLkRJR0lUU19SRSA9IHJlLmNvbXBpbGUocideXGQrJCcpCisgICAgICAgIHNlbGYuSEVYX1JFID0gcmUuY29tcGlsZShyJ14weFswLTlhLWZBLUZdKyQnKQorCisgICAgICAgICMgSW5pdGlhbGl6ZSBhbnkgbWlkZGxld2FyZSBsYXllcnMKKyAgICAgICAgaW5pdF9taWR3YXJlKHNlbGYsIG1pKQorICAgICAgICBpbml0X3Zuc3coc2VsZiwgbWkpCisgICAgICAgIHJlc3RfdG9fbW9kZWwucmVzdF90b19tb2RlbF9pbml0KHNlbGYsIG1pKQorICAgICAgICBydW5fY29uZmlnLmluaXRfcnVubmluZ19jb25maWcoc2VsZiwgbWkpCisKKyAgICAgICAgIyBJbml0aWFsaXplIGFsbCBkb2MgdGFncywgdXNlIGEgc3ViZGlyZWN0b3J5IGJhc2VkIG9uCisgICAgICAgICMgdGhlIGxvY2FsZS4gICBUaGlzIG1heSBiZSBpbmNvcmVjdCBpZiB0aGVyZSdzIG5vdGhpbmcKKyAgICAgICAgIyBpbiB0aGUgY29uZmlndXJlZCBsb2NhbGUgZm9yIHRoZSByZXR1cm5lZCBsb2NhbGUgdmFsdWUuCisgICAgICAgIGxjID0gbG9jYWxlLmdldGRlZmF1bHRsb2NhbGUoKQorICAgICAgICBpZiBsYyA9PSBOb25lIG9yIGxjWzBdID09IE5vbmU6CisgICAgICAgICAgICBwcmludCAnTG9jYWxlIG5vdCBjb25maWd1cmVkICcsIGxjCisgICAgICAgICAgICBsYyA9ICgnZW5fVVMnLCAnVVRGOCcpCisgICAgICAgIGRvY19kaXIgPSByZXNvdXJjZV9maWxlbmFtZShfX25hbWVfXywgJ2RvY3VtZW50YXRpb24vJXMnICUgbGNbMF0pCisgICAgICAgIGlmIGRvY19kaXIgaXMgTm9uZToKKyAgICAgICAgICAgIGRvY19kaXIgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgJ2RvY3VtZW50YXRpb24nLCBsY1swXSkKKyAgICAgICAgIyBwcmludCAiZG9jX2RpciAlcyIgJSBkb2NfZGlyCisgICAgICAgIGRvYy5hZGRfZG9jX3RhZ3MoZG9jX2RpcikKKworICAgICAgICAjIEluaXRpYWxpemUgdGhlIGNvbW1hbmQgbW9kdWxlLCB0aGFuIGFkZCBjb21tYW5kIHBhY2thZ2VzCisgICAgICAgIGNvbW1hbmQuaW5pdF9jb21tYW5kKHNlbGYsIG1pKQorICAgICAgICBzZWxmLmFkZF9jb21tYW5kX3BhY2thZ2VzKHNlbGYuZGVzY192ZXJzaW9uKQorCisgICAgICAgICMgc2F2ZSBmb3IgcG9zc2libGUgbGF0ZXIgdXNlCisgICAgICAgICNwcmludCBzZWxmLnBwLmZvcm1hdF90YWJsZShzZWxmLnBwLmZvcm1hdF9kZXRhaWxzKCkpCisgICAgICAgIAorICAgICAgICAjCisgICAgICAgIGlmIHNlbGYuZGVidWc6CisgICAgICAgICAgICBmb3IgKG4sdikgaW4gc2VsZi5jb21tYW5kX3N1Ym1vZGVfZGljdC5pdGVtcygpOgorICAgICAgICAgICAgICAgIHByaW50ICJTVUJNT0RFICVzICVzIiAlIChuLHYpCisgICAgICAgICAgICBmb3IgKG4sdikgaW4gc2VsZi5jb21tYW5kX2RpY3QuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBwcmludCAiTU9ERSAlcyAlcyIgJSAobix2KQorCisKKyAgICAgICAgc2VsZi50aW1lX3pvbmVfbGlzdCA9IE5vbmUKKyAgICAgICAgY29tbWFuZC5hZGRfY29tcGxldGlvbigndGltZS16b25lLWNvbXBsZXRpb24nLCBTRE5TaC50aW1lX3pvbmVfY29tcGxldGlvbikKKyAgICAgICAgY29tbWFuZC5hZGRfdmFsaWRhdGlvbigndGltZS16b25lLXZhbGlkYXRpb24nLCBTRE5TaC50aW1lX3pvbmVfdmFsaWRhdGlvbikKKyAgICAgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdzZXQtY2xvY2snLCBTRE5TaC5zZXRfY2xvY2tfYWN0aW9uLCB7J2t3YXJncyc6IHsnZGF0YSc6ICckZGF0YSd9fSkKKyAgICAgICAgY29tbWFuZC5hZGRfYWN0aW9uKCdiZWdpbi1kZWZhdWx0LWdhdGV3YXktY2hlY2snLCBTRE5TaC5iZWdpbl9kZWZhdWx0X2dhdGV3YXlfY2hlY2tfYWN0aW9uKQorICAgICAgICBjb21tYW5kLmFkZF9hY3Rpb24oJ2VuZC1kZWZhdWx0LWdhdGV3YXktY2hlY2snLCBTRE5TaC5lbmRfZGVmYXVsdF9nYXRld2F5X2NoZWNrX2FjdGlvbikKKyAgICAKKyAgICAgICAgY29tbWFuZC5hZGRfY29tbWFuZF90eXBlKCdjb25maWctd2l0aC1kZWZhdWx0LWdhdGV3YXktY2hlY2snLCB7CisgICAgICAgICAgICAnYWN0aW9uJzogKCdiZWdpbi1kZWZhdWx0LWdhdGV3YXktY2hlY2snLCAnd3JpdGUtZmllbGRzJywgJ2VuZC1kZWZhdWx0LWdhdGV3YXktY2hlY2snKSwKKyAgICAgICAgICAgICduby1hY3Rpb24nOiAoJ2JlZ2luLWRlZmF1bHQtZ2F0ZXdheS1jaGVjaycsICdyZXNldC1maWVsZHMnLCAnZW5kLWRlZmF1bHQtZ2F0ZXdheS1jaGVjaycpCisgICAgICAgIH0pCisKKyAgICAgICAgIworICAgICAgICBpZiBzZWxmLmZlYXR1cmVfZW5hYmxlZCgnZXhwZXJpbWVudGFsJyk6CisgICAgICAgICAgICBwcmludCAnKioqV2FybmluZzogZXhwZXJpbWVudGFsIGZlYXR1cmVzIGVuYWJsZWQqKionCisgICAgICAgICAgICBpZiBzZWxmLmRlYnVnOgorICAgICAgICAgICAgICAgIHNlbGYuc2RuZGIgPSBzZG5kYi5TRE5EQihzZWxmLCBzZWxmLCBzZWxmLnBwKQorICAgICAgICAgICAgICAgIHByaW50ICctLUJFR0lOLS0nCisgICAgICAgICAgICAgICAgc2VsZi5zZG5kYi5kaXNwbGF5KCdjb3JlL3N3aXRjaCcsIHN0eWxlPSd0YWJsZScpCisgICAgICAgICAgICAgICAgc2VsZi5zZG5kYi5kaXNwbGF5KCdjb3JlL2NvbnRyb2xsZXInLCBzdHlsZT0ndGFibGUnKQorICAgICAgICAgICAgICAgIHNlbGYuc2RuZGIuZGlzcGxheSgnY29yZS9jb250cm9sbGVyJywgc3R5bGU9J2xpc3QnKQorICAgICAgICAgICAgICAgIHByaW50ICctLUxJTkstLScsIHNlbGYucHAudGFibGVfaW5mb1snbGluayddWydmaWVsZC1vcmRlcmluZ3MnXQorICAgICAgICAgICAgICAgIHNlbGYuc2RuZGIuZGlzcGxheSgndG9wb2xvZ3kvbGluaycpCisgICAgICAgICAgICAgICAgc2VsZi5zZG5kYi5kaXNwbGF5KCd0b3BvbG9neS9zd2l0Y2gtY2x1c3RlcicpCisgICAgICAgICAgICAgICAgc2VsZi5zZG5kYi5kaXNwbGF5KCd0b3BvbG9neS9zd2l0Y2gtY2x1c3RlcicsIHN0eWxlPSdsaXN0JykKKyAgICAgICAgICAgICAgICBzZWxmLnNkbmRiLmRpc3BsYXkoJ3RvcG9sb2d5L2VuYWJsZWQtcG9ydCcpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgY2hlY2tfcmVzdF9yZXN1bHQKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCwgbWVzc2FnZT1Ob25lKToKKyAgICAgICAgaWYgaXNpbnN0YW5jZShyZXN1bHQsIGNvbGxlY3Rpb25zLk1hcHBpbmcpOgorICAgICAgICAgICAgZXJyb3JfdHlwZSA9IHJlc3VsdC5nZXQoJ2Vycm9yX3R5cGUnKQorICAgICAgICAgICAgaWYgZXJyb3JfdHlwZToKKyAgICAgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kUmVzdEVycm9yKHJlc3VsdCwgbWVzc2FnZSkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBnZXRfdGFibGVfZnJvbV9zdG9yZQorICAgICMgIENhY2hlcyB0aGUgbGFzdCByZXN1bHQgdG8gdHJ5IHRvIGN1dCBkb3duIG9uIHRoZSBudW1iZXIgb2YgdGltZXMgbGFyZ2UgdGFibGVzCisgICAgIyAgYXJlIGxvYWRlZCBmcm9tIHRoZSBSRVNUIEFQSQorICAgICMKKyAgICBkZWYgZ2V0X3RhYmxlX2Zyb21fc3RvcmUoc2VsZiwgb2JqX3R5cGUsIGtleSA9IE5vbmUsIHZhbCA9IE5vbmUsIG1hdGNoID0gTm9uZSk6CisgICAgICAgIHJldHVybiBzZWxmLnN0b3JlLmdldF90YWJsZV9mcm9tX3N0b3JlKG9ial90eXBlLCBrZXksIHZhbCwgbWF0Y2gpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZ2V0X29iamVjdF9mcm9tX3N0b3JlCisgICAgIyAgIGNvdmVyIGZvciBjYWxsIHRvIGdldCBhIHNwZWNpZmljIG9iamVjdCBmcm9tIGEgdGFibGUsIG9ubHkgYSBjb252ZW5pZW5jZS4KKyAgICAjCisgICAgZGVmIGdldF9vYmplY3RfZnJvbV9zdG9yZShzZWxmLCBvYmpfdHlwZSwgb2JqX25hbWUpOgorICAgICAgICByZXR1cm4gc2VsZi5zdG9yZS5nZXRfb2JqZWN0X2Zyb21fc3RvcmUob2JqX3R5cGUsIG9ial9uYW1lKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHJlc3RfcXVlcnlfb2JqZWN0cworICAgICMgICBjb3ZlciBmb3IgY2FsbCB0byBxdWVyeSBvYmplY3RzIGZyb20gdGhlIGRhdGFiYXNlLCBvbmx5IGEgY29udmVuaWVuY2UuCisgICAgIworICAgIGRlZiByZXN0X3F1ZXJ5X29iamVjdHMoc2VsZiwgb2JqX3R5cGUsIHF1ZXJ5X3BhcmFtcz1Ob25lKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc3RvcmUucmVzdF9xdWVyeV9vYmplY3RzKG9ial90eXBlLCBxdWVyeV9wYXJhbXMpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgcmVzdF9jcmVhdGVfb2JqZWN0CisgICAgIyAgUkVTVCBBUEkgY2FsbCB0byBjcmVhdGUgYW4gb2JqZWN0LCBpZiB0aGlzIGlzIHRoZSBsYXN0IHRhYmxlIHdoaWNoCisgICAgIyAgd2FzIGZldGNoZWQsIHRoZW4gZGlzY2FyZCB0aGF0IHRhYmxlLgorICAgICMKKyAgICBkZWYgcmVzdF9jcmVhdGVfb2JqZWN0KHNlbGYsIG9ial90eXBlLCBpZGVudCk6CisgICAgICAgIHJldHVybiBzZWxmLnN0b3JlLnJlc3RfY3JlYXRlX29iamVjdChvYmpfdHlwZSwgaWRlbnQpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgcmVzdF9kZWxldGVfb2JqZWN0cworICAgICMKKyAgICBkZWYgcmVzdF9kZWxldGVfb2JqZWN0cyhzZWxmLCBvYmpfdHlwZSwgZGVsZXRlX3BhcmFtcyk6CisgICAgICAgIHJldHVybiBzZWxmLnN0b3JlLnJlc3RfZGVsZXRlX29iamVjdHMob2JqX3R5cGUsIGRlbGV0ZV9wYXJhbXMpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgcmVzdF9kZWxldGVfb2JqZWN0CisgICAgIworICAgIGRlZiByZXN0X2RlbGV0ZV9vYmplY3Qoc2VsZiwgb2JqX3R5cGUsIG5hbWUpOgorICAgICAgICBpZiB0eXBlKG5hbWUpID09IGRpY3Q6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5zdG9yZS5yZXN0X2RlbGV0ZV9vYmplY3Qob2JqX3R5cGUsIG5hbWUpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuc3RvcmUucmVzdF9kZWxldGVfb2JqZWN0KG9ial90eXBlLCBtaS5wayhvYmpfdHlwZSksIG5hbWUpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgcmVzdF91cGRhdGVfb2JqZWN0CisgICAgIworICAgIGRlZiByZXN0X3VwZGF0ZV9vYmplY3Qoc2VsZiwgb2JqX3R5cGUsIG5hbWUsIG9ial9rZXlfdmFsLCBvYmpfa2V5X2RhdGEpOgorICAgICAgICByZXR1cm4gc2VsZi5zdG9yZS5yZXN0X3VwZGF0ZV9vYmplY3Qob2JqX3R5cGUsIG5hbWUsIG9ial9rZXlfdmFsLCBvYmpfa2V5X2RhdGEpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgcmVzdF9zaW1wbGVfcmVzcXVlc3RfdG9fZGljdAorICAgICMgIElzc3VlIGEgc3RvcmVfc2ltcGxlX3JlcXVlc3QgYW5kIGNvdmVydCB0aGUgcmVzdWx0IGludG8gYSBkaWN0IHVzaW5nIGpzb24ubG9hZAorICAgICMgIFBlcmZvcm1zIG5vIGV4Y2VwdGlvbiBoYW5kbGluZworICAgICMKKyAgICBkZWYgcmVzdF9zaW1wbGVfcmVxdWVzdF90b19kaWN0KHNlbGYsIHVybCk6CisgICAgICAgIHJldHVybiBqc29uLmxvYWRzKHNlbGYuc3RvcmUucmVzdF9zaW1wbGVfcmVxdWVzdCh1cmwpKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHJlc3RfcG9zdF9yZXF1ZXN0CisgICAgIyAgRm9yd2FyZCBhIGxvdy1sZXZlbCBSRVNUIHJlcXVlc3QgdG8gdGhlIHN0b3JlCisgICAgIworICAgIGRlZiByZXN0X3Bvc3RfcmVxdWVzdChzZWxmLCB1cmwsIG9iaiwgdmVyYj0nUFVUJyk6CisgICAgICAgIHJldHVybiBzZWxmLnN0b3JlLnJlc3RfcG9zdF9yZXF1ZXN0KHVybCwgb2JqLCB2ZXJiKQorICAgIAorICAgICMgIAorICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNyZWF0ZV9vYmplY3QKKyAgICAjICBIZWxwZXIgZnVuY3Rpb24gdG8gaGVscCBpZGVudGlmeSBjYWxsIHNpdGVzIHdoaWNoIGNyZWF0ZSBvYmplY3RzCisgICAgIyAgRXJyb3JzIHJlc3VsdCBpbiBwcmludGluZyBhbiBlcnJvciBtZXNzYWdlLCB0aGVuIHJldHVybmluZyBUcnVlCisgICAgIworICAgIGRlZiBjcmVhdGVfb2JqZWN0KHNlbGYsIG9ial90eXBlLCBmaWVsZF9kaWN0KToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5yZXN0X2NyZWF0ZV9vYmplY3Qob2JqX3R5cGUsIGZpZWxkX2RpY3QpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGVycm9ycyA9IHNlbGYucmVzdF9lcnJvcl90b19kaWN0KGUsIG9ial90eXBlKQorICAgICAgICAgICAKKyAgICAgICAgaWYgZXJyb3JzICE9IE5vbmU6CisgICAgICAgICAgICBwcmludCBzZWxmLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIAorICAgICMgIAorICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNyZWF0ZV9yb3cKKyAgICAjICBIZWxwZXIgZnVuY3Rpb24gdG8gaGVscCBpZGVudGlmeSBjYWxsIHNpdGVzIHdoaWNoIGNyZWF0ZSBuZXcgcm93cworICAgICMKKyAgICAjICBSZXR1cm4gYSBwYWlyIG9mIGJvb2wncywgdGhlIGZpcnN0IGlzIGFuIGVycm9yIGluZGljYXRpb24sIHdoaWxlIHRoZSBzZWNvbmQKKyAgICAjICBpcyBUcnVlIHdoZW4gdGhlIHJvdyBuZWVkZWQgdG8gYmUgY3JlYXRlZC4KKyAgICAjCisgICAgIworICAgIGRlZiBjcmVhdGVfcm93KHNlbGYsIG9ial90eXBlLCBuYW1lLCByb3dfZGljdCA9IE5vbmUpOgorICAgICAgICAjIGNyZWF0ZSB0aGUgcm93IHdpdGggYSBkaWN0aW9uYXJ5IHdoaWNoIGluY2x1ZGVzIGFsbCB0aGUKKyAgICAgICAgIyBwb3B1bGF0ZWQgdmFsdWVzIGZvciB0aGUgZm9yZWlnbiBrZXlzCisgICAgICAgICMgdGhlIHJvdyBpcyBjcmVhdGVkLgorICAgICAgICBpZiByb3dfZGljdCA9PSBOb25lOgorICAgICAgICAgICAgdXBkYXRlZF9kaWN0ID0ge30KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHVwZGF0ZWRfZGljdCA9IHJvd19kaWN0CisKKyAgICAgICAgIworICAgICAgICAjIE9ubHkgc2V0IHRoZSBwcmltYXJ5IGtleSBmb3Igb2JqX2tleXMgd2hpY2ggYXJlbid0IG1hbmFnZWQKKyAgICAgICAgIyBieSB0aGUgQ2Fzc2FuZHJhU2V0dGluZy9DT01QT1VORF9LRVlfRklFTERTICh0aGlzIGlzIGN1cnJlbnRseQorICAgICAgICAjIGEgc2xpZ2h0bHkgZGlmZmVyZW50IHByZWRpY2F0ZSB0aGFuIGlzX2NvbXBvdW5kX2tleSkKKyAgICAgICAgIworICAgICAgICBrZXkgPSBtaS5wayhvYmpfdHlwZSkKKyAgICAgICAgdHlwZV9pbmZvID0gbWkub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ11ba2V5XVsndHlwZSddCisgICAgICAgIGlmIHR5cGVfaW5mbyAhPSAnY29tcG91bmQta2V5JzoKKyAgICAgICAgICAgIHVwZGF0ZWRfZGljdFttaS5wayhvYmpfdHlwZSldID0gbmFtZQorICAgICAgICB1cGRhdGVkX2RpY3QgPSBzZWxmLmFzc29jaWF0ZV9mb3JlaWduX2tleXNfd2l0aF9kaWN0KG9ial90eXBlLCB1cGRhdGVkX2RpY3QpCisKKyAgICAgICAgaWYgc2VsZi5jcmVhdGVfb2JqZWN0KG9ial90eXBlLCB1cGRhdGVkX2RpY3QpOgorICAgICAgICAgICAgcmV0dXJuIFtUcnVlLCBGYWxzZV0KKyAgICAgICAgcmV0dXJuIFtGYWxzZSwgVHJ1ZV0KKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBmaW5kX29yX2NyZWF0ZV9yb3cKKyAgICAjICBSZXR1cm4gYSBwYWlyIG9mIGJvb2wncywgdGhlIGZpcnN0IGlzIGFuIGVycm9yIGluZGljYXRpb24sIHdoaWxlIHRoZSBzZWNvbmQKKyAgICAjICBpcyBUcnVlIHdoZW4gdGhlIHJvdyBuZWVkZWQgdG8gYmUgY3JlYXRlZC4KKyAgICAjCisgICAgIyAgV2hlbiBhIG5ldyByb3cgaXMgY3JlYXRlZCwgaWYgdGhlIG9ial90eXBlIGhhcyBhIHByaXZhdGVfa2V5LCBhbiBhdHRlbXB0CisgICAgIyAgaXMgbWFkZSB0byBpZGVudGlmeSBhbGwgdGhlIHByaXZhdGUga2V5cywgYW5kIHBvcHVsYXRlIHZhbHVlcyBmb3IgZWFjaAorICAgICMgIG9mIHRoZW0uCisgICAgIworICAgIGRlZiBmaW5kX29yX2NyZWF0ZV9yb3coc2VsZiwgb2JqX3R5cGUsIG5hbWUsIHJvd19kaWN0ID0gTm9uZSk6CisgICAgICAgIGlmIHJvd19kaWN0ID09IE5vbmU6CisgICAgICAgICAgICByb3dfZGljdCA9IHt9CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuZ2V0X29iamVjdF9mcm9tX3N0b3JlKG9ial90eXBlLCBuYW1lKQorICAgICAgICAgICAgaWYgcmVzdWx0W21pLnBrKG9ial90eXBlKV0gPT0gbmFtZToKKyAgICAgICAgICAgICAgICByZXR1cm4gW0ZhbHNlLCBGYWxzZV0KKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICByZXR1cm4gc2VsZi5jcmVhdGVfcm93KG9ial90eXBlLCBuYW1lLCByb3dfZGljdCkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBhc3NvY2lhdGVfZm9yZWlnbl9rZXlzX3dpdGhfZGljdAorICAgICMgIFBhc3NlZCBhbiBvYmpfdHlwZSwgYW5kIGEgZGljdGlvbmFyeSwgcmV0dXJucyBhIGRpY3Rpb25hcnkgd2l0aCB1cGRhdGVkCisgICAgIyAga2V5OnZhbHVlIHBhaXJzIGZvciBhbGwgdGhlIGtub3duIHByaXZhdGUga2V5cy4KKyAgICAjICAKKyAgICAjCisgICAgZGVmIGFzc29jaWF0ZV9mb3JlaWduX2tleXNfd2l0aF9kaWN0KHNlbGYsIG9ial90eXBlLCBjcmVhdGVfZGljdCk6CisgICAgICAgICMKKyAgICAgICAgIyBQcml2YXRlIGtleSBuYW1lcyBhcmUgJ3dlbGwga25vd24nLCBzbyB0aGUgbmFtZXMgYXJlIHVzZWQgaGVyZSB0bworICAgICAgICAjIGlkZW5pZnkgaG93IHRoZSBmaWVsZCBvdWdodCB0byBiZSBwb3B1bGF0ZWQuCisgICAgICAgICMKKyAgICAgICAgZm9yIGZvcmVpZ25fa2V5X2lkIGluIG1pLm9ial90eXBlX2ZvcmVpZ25fa2V5cyhvYmpfdHlwZSk6CisgICAgICAgICAgICBpZiBmb3JlaWduX2tleV9pZCBpbiBjcmVhdGVfZGljdDoKKyAgICAgICAgICAgICAgICAjIGFscmVhZHkgc2V0IGluIHRoZSBkaWN0aW9uYXJ5CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgZWxpZiBtaS5pc19udWxsX2FsbG93ZWQob2JqX3R5cGUsIGZvcmVpZ25fa2V5X2lkKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZWxpZiBmb3JlaWduX2tleV9pZCA9PSAndm5zJzoKKyAgICAgICAgICAgICAgICBjcmVhdGVfZGljdFtmb3JlaWduX2tleV9pZF0gPSBzZWxmLnZuc19uYW1lKCkKKyAgICAgICAgICAgIGVsaWYgZm9yZWlnbl9rZXlfaWQgPT0gJ3Zucy1hY2Nlc3MtbGlzdCcgYW5kIFwKKyAgICAgICAgICAgICAgc2VsZi5nZXRfY3VycmVudF9tb2RlX29ial90eXBlKCkgPT0gJ3Zucy1hY2Nlc3MtbGlzdCc6CisgICAgICAgICAgICAgICAgY3JlYXRlX2RpY3RbZm9yZWlnbl9rZXlfaWRdID0gc2VsZi5nZXRfY3VycmVudF9tb2RlX29iaigpCisgICAgICAgICAgICBlbGlmIGZvcmVpZ25fa2V5X2lkID09ICdydWxlJzoKKyAgICAgICAgICAgICAgICAjIExPT0shIHRoaXMgc2VlbXMgdG8gbmVlZCBtb3JlIHdvcmssIHdoYXQncyB0aGUgcnVsZSByZWxhdGlvbnNoaXA/CisgICAgICAgICAgICAgICAgaWYgb2JqX3R5cGUgPT0gJ3Zucy1pbnRlcmZhY2UnOgorICAgICAgICAgICAgICAgICAgICBjcmVhdGVfZGljdCA9IGFzc29jaWF0ZV9mb3JlaWduX2tleV9mb3Jfdm5zX2ludGVyZmFjZShkaWN0KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfc3RhY2soKQorICAgICAgICAgICAgICAgIHByaW50IHNlbGYuZXJyb3JfbXNnKCJJbnRlcm5hbDogJXMgY2FuJ3QgZGV0ZXJtaW5lIHZhbHVlICIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmb3IgZm9yZWlnbiBrZXkgJXMiICUgKG9ial90eXBlLCBmb3JlaWduX2tleV9pZCkpCisgCisgICAgICAgIHJldHVybiBjcmVhdGVfZGljdAorCisgICAgIworICAgICMgbWV0aG9kcyB0byBtYW5hZ2UgdGhlIG1vZGVfc3RhY2ssIHByb21wdHMsIGFuZCBtb2RlX29iai9tb2RlX29ial90eXBlCisgICAgIworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHNldF9jb250b2xsZXJfZm9yX3Byb21wdAorICAgICMKKyAgICBkZWYgc2V0X2NvbnRyb2xsZXJfZm9yX3Byb21wdChzZWxmKToKKyAgICAgICAgaWYgc2VsZi5jb250cm9sbGVyID09ICIxMjcuMC4wLjE6ODAwMCI6CisgICAgICAgICAgICBzZWxmLmNvbnRyb2xsZXJfZm9yX3Byb21wdCA9IHNvY2tldC5nZXRob3N0bmFtZSgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmNvbnRyb2xsZXJfZm9yX3Byb21wdCA9IHNlbGYuY29udHJvbGxlcgorICAgICAgICAgICAgc2VsZi51cGRhdGVfcHJvbXB0KCkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyB1cGRhdGVfcHJvbXB0CisgICAgIyAgVGhlcmUgYXJlIHNldmVyYWwgZGlmZmVyZW50IHByb21wdHMgZGVwZW5kaW5nIG9uIHRoZSBjdXJyZW50IG1vZGU6CisgICAgIyAgJ2hvc3QnPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBsb2dpbiBtb2RlCisgICAgIyAgJ2hvc3QnIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLSBlbmFibGUgbW9kZQorICAgICMgICdob3N0Jyhjb25maWcpIyAgICAgICAgICAgICAgICAgICAgICAgICAgLS0gY29uZmlnIG1vZGUKKyAgICAjICAnaG9zdCcoY29uZmlnLXZucy1kZWZpbml0aW9uLW5hbWUpIyAgICAgIC0tIHZucy1kZWZpbml0aW9uIG1vZGUKKyAgICAjICAnaG9zdCcoY29uZmlnLXZucy1kZWZpbml0aW9uLWludGVyZmFjZS1ydWxlLW5hbWUpIyAtLSB2bnMtZGVmbiwKKyAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludGVyZmFjZS1ydWxlIG1vZGUKKyAgICAjCisgICAgZGVmIHVwZGF0ZV9wcm9tcHQoc2VsZik6CisgICAgICAgIGlmIHNlbGYuY3VycmVudF9tb2RlKCkuc3RhcnRzd2l0aCgiY29uZmlnIik6CisgICAgICAgICAgICBjdXJyZW50X21vZGUgPSAiKCIgKyBzZWxmLmN1cnJlbnRfbW9kZSgpCisgICAgICAgICAgICBpZiBzZWxmLmdldF9jdXJyZW50X21vZGVfb2JqKCkgIT0gTm9uZToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmluX2NvbmZpZ19zdWJtb2RlKCJjb25maWctdm5zIik6CisgICAgICAgICAgICAgICAgICAgICMgc3Vic3RpdHV0ZSAnfCcgd2l0aCAnLScKKyAgICAgICAgICAgICAgICAgICAgcGFydHMgPSBzZWxmLmdldF9jdXJyZW50X21vZGVfb2JqKCkuc3BsaXQoJ3wnKQorICAgICAgICAgICAgICAgICAgICBjdXJyZW50X21vZGUgKz0gIi0iICsgJy0nLmpvaW4ocGFydHMpCisgICAgICAgICAgICBzZWxmLnByb21wdCA9IHN0cihzZWxmLmNvbnRyb2xsZXJfZm9yX3Byb21wdCkgKyBjdXJyZW50X21vZGUgKyAiKSMgIgorICAgICAgICBlbGlmIHNlbGYuY3VycmVudF9tb2RlKCkgPT0gImVuYWJsZSI6CisgICAgICAgICAgICBzZWxmLnByb21wdCA9IHN0cihzZWxmLmNvbnRyb2xsZXJfZm9yX3Byb21wdCkgKyAiIyAiCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnByb21wdCA9IHN0cihzZWxmLmNvbnRyb2xsZXJfZm9yX3Byb21wdCkgKyAiPiAiCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgcHVzaF9tb2RlCisgICAgIyAgRXZlcnkgcHVzaGVkIG1vZGUgaXMgYSBxdWFkOiA8bW9kZU5hbWUsIHRhYmxlTmFtZSwgc3BlY2lmaWNSb3csIGV4aXRDYWxsYmFjaz4KKyAgICAjCisgICAgIyAgb2JqX3R5cGUgaXMgdGhlIG5hbWUgb2YgYW4gYXNzb2NpYXRlZCB0YWJsZS9tb2RlbCAodGFibGVOYW1lKQorICAgICMgIG9iaiBpcyB0aGUga2V5J3MgdmFsdWUgZm9yIHRoZSB0YWJsZS9tb2RlbCdzIGtleSAoc3BlY2lmaWNSb3cpCisgICAgIyAKKyAgICAjICBUaGUgY2xpIGN1cnJlbnRseSBzdXBwb3J0cyBhIG1vZGUgb2YgdGFibGUvbW9kZWwgcm93IGVkaXQsIHdoZXJlIHRoZQorICAgICMgIG5hbWUgb2YgdGhlIHRhYmxlL21vZGUgaXMgZW50ZXJlZCwgYWxvbmcgd2l0aCBhbiBhc3NvY2lhdGVkIHZhbHVlIGZvcgorICAgICMgIGtleS1jb2x1bW4gb2YgdGhlIHRhYmxlLiAgIE9uY2UgaW4gdGhhdCBtb2RlLCBvdGhlciBmaWVsZHMgb2YgdGhlIHRhYmxlCisgICAgIyAgY2FuIGJlIGVkaXRlZCBieSBlbnRlcmluZyB0aGUgbmFtZSBvZiB0aGUgZmllbGQsIGFsb25nIHdpdGggYSBuZXcgdmFsdWUuCisgICAgIworICAgICMgIFRoZSBleGl0Q2FsbGJhY2sgaXMgdGhlIG5hbmUgb2YgYSBtZXRob2QgdG8gY2FsbCB3aGVuIHRoZSBjdXJyZW50IHB1c2hlZAorICAgICMgIGxldmVsIGlzIGdldHRpbmcgcG9wJ2QuCisgICAgIworICAgIGRlZiBwdXNoX21vZGUoc2VsZiwgbW9kZV9uYW1lLCBvYmpfdHlwZT1Ob25lLCBvYmo9Tm9uZSwgZXhpdENhbGxiYWNrPU5vbmUpOgorICAgICAgICBzZWxmLm1vZGVfc3RhY2suYXBwZW5kKCB7ICdtb2RlX25hbWUnIDogbW9kZV9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvYmpfdHlwZScgOiBvYmpfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb2JqJyA6IG9iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXhpdCcgOiBleGl0Q2FsbGJhY2t9ICkKKyAgICAgICAgc2VsZi51cGRhdGVfcHJvbXB0KCkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBwb3BfbW9kZQorICAgICMgIFBvcCB0aGUgdG9wIG9mIHRoZSBzdGFjayBvZiBtb2RlJ3MuCisgICAgIworICAgIGRlZiBwb3BfbW9kZShzZWxmKTogCisgICAgICAgIG0gPSBzZWxmLm1vZGVfc3RhY2sucG9wKCkKKyAgICAgICAgaWYgbGVuKHNlbGYubW9kZV9zdGFjaykgPT0gMDoKKyAgICAgICAgICAgIHNlbGYucnVuID0gRmFsc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYudXBkYXRlX3Byb21wdCgpCisgICAgICAgIHJldHVybiBtCisgICAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIG1vZGVfc3RhY2tfdG9fcmVzdF9kaWN0CisgICAgIyAgQ29udmVydCB0aGUgc3RhY2sgb2YgcHVzaGVkIG1vZGVzIGludG8gYSBjb2xsZWN0aW9uIG9mIGtleXMuCisgICAgIyAgQ2FuIGJlIHVzZWQgdG8gYnVpbGQgdGhlIHJlc3QgYXBpIGRpY3Rpb25hcnkgdXNlZCBmb3Igcm93IGNyZWF0ZXMKKyAgICAjCisgICAgZGVmIG1vZGVfc3RhY2tfdG9fcmVzdF9kaWN0KHNlbGYsIHJlc3RfZGljdCk6CisgICAgICAgICMKKyAgICAgICAgZm9yIHggaW4gc2VsZi5tb2RlX3N0YWNrOgorICAgICAgICAgICAgaWYgeFsnbW9kZV9uYW1lJ10uc3RhcnRzd2l0aCgnY29uZmlnLScpOgorICAgICAgICAgICAgICAgIHJlc3RfZGljdFt4WydvYmpfdHlwZSddXSA9IHhbJ29iaiddCisKKyAgICAgICAgcmV0dXJuIHJlc3RfZGljdAorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGN1cnJlbnRfbW9kZQorICAgICMgIFJldHVybiB0aGUgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIGN1cnJlbnQgKHRvcCkgbW9kZS4KKyAgICAjCisgICAgZGVmIGN1cnJlbnRfbW9kZShzZWxmKTogCisgICAgICAgIGlmIGxlbihzZWxmLm1vZGVfc3RhY2spIDwgMToKKyAgICAgICAgICAgIHJldHVybiAiIgorICAgICAgICByZXR1cm4gc2VsZi5tb2RlX3N0YWNrWy0xXVsnbW9kZV9uYW1lJ10KKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBpbl9jb25maWdfc3VibW9kZQorICAgICMgIFJldHVybiB0cnVlIHdoZW4gdGhlIGN1cnJlbnQgbW9kZSBpcyBlZGl0aW5nIHRoZSBjb250ZW50cyBvZiBvbmUgb2YgdGhlCisgICAgIyAgcm93cyBvZiB0aGUgdGFibGUvbW9kZWwgc3RvcmUuCisgICAgIworICAgIGRlZiBpbl9jb25maWdfc3VibW9kZShzZWxmLCBwcmVmaXggPSAiY29uZmlnLSIpOgorICAgICAgICByZXR1cm4gc2VsZi5jdXJyZW50X21vZGUoKS5zdGFydHN3aXRoKHByZWZpeCkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBpbl9jb25maWdfbW9kZQorICAgICMgIFJldHVybnMgdHJ1ZSBmb3IgYW55IGNvbmZpZyBtb2RlOyB0aGlzIGlzIGFueSBuZXN0ZWQgZWRpdCBtb2RlLAorICAgICMgIGFsb25nIHdpdGggdGhlIGJhc2UgY29uZmlnIG1vZGUKKyAgICAjCisgICAgZGVmIGluX2NvbmZpZ19tb2RlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5jdXJyZW50X21vZGUoKS5zdGFydHN3aXRoKCJjb25maWciKQorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBpbl9jb25maWdfc3dpdGNoX21vZGUKKyAgICAjICBSZXR1cm5zIHRydWUgd2hlbiB0aGUgc3dpdGNoIG1vZGUgaGFzIGJlZW4gZW50ZXJlZCB2aWEgdGhlICdzd2l0Y2ggPGRwaWQ+JyBjb21tYW5kLgorICAgICMKKyAgICBkZWYgaW5fY29uZmlnX3N3aXRjaF9tb2RlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5jdXJyZW50X21vZGUoKSA9PSAiY29uZmlnLXN3aXRjaCIKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgaW5fY29uZmlnX3N3aXRjaF9pZl9tb2RlCisgICAgIyAgUmV0dXJucyB0cnVlIHdoZW4gdGhlIHN3aXRjaC1pbnRlcmZhY2UgbW9kZSBoYXMgYmVlbiBlbnRlcmVkIHZpYSB0aGUKKyAgICAjICdzd2l0Y2ggPGRwaWQ+JyBjb21tYW5kLCB0aGVuIHRoZSBpbnRlcmZhY2UgPG5hbWU+IGNvbW1hbmQKKyAgICAjCisgICAgZGVmIGluX2NvbmZpZ19zd2l0Y2hfaWZfbW9kZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY3VycmVudF9tb2RlKCkgPT0gImNvbmZpZy1zd2l0Y2gtaWYiCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgdm5zX25hbWUKKyAgICAjCisgICAgZGVmIHZuc19uYW1lKHNlbGYpOgorICAgICAgICBtb2RlX2RpY3QgPSBzZWxmLm1vZGVfc3RhY2tfdG9fcmVzdF9kaWN0KHt9KQorICAgICAgICBpZiAndm5zJyBpbiBtb2RlX2RpY3Q6CisgICAgICAgICAgICByZXR1cm4gbW9kZV9kaWN0Wyd2bnMnXQorICAgICAgICBpZiAndm5zLWRlZmluaXRpb24nIGluIG1vZGVfZGljdDoKKyAgICAgICAgICAgIHJldHVybiBtb2RlX2RpY3RbJ3Zucy1kZWZpbml0aW9uJ10KKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBpbl9jb25maWdfdm5zX21vZGUKKyAgICAjICBSZXR1cm5zIHRydWUgd2hlbiB0aGUgdm5zIG1vZGUgaGFzIGJlZW4gZW50ZXJlZCB2aWEgdGhlICd2bnMgPHZuc0lkPicgY29tbWFuZC4KKyAgICAjCisgICAgZGVmIGluX2NvbmZpZ192bnNfbW9kZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY3VycmVudF9tb2RlKCkgPT0gImNvbmZpZy12bnMiCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGluX2NvbmZpZ192bnNfZGVmX21vZGUKKyAgICAjICBSZXR1cm5zIHRydWUgd2hlbiB0aGUgdm5zIG1vZGUgaGFzIGJlZW4gZW50ZXJlZCB2aWEgdGhlCisgICAgIyAgJ3Zucy1kZWZpbml0aW9uIDx2bnNJZD4nIGNvbW1hbmQuCisgICAgIworICAgIGRlZiBpbl9jb25maWdfdm5zX2RlZl9tb2RlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5jdXJyZW50X21vZGUoKSA9PSAiY29uZmlnLXZucy1kZWYiCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGluX2NvbmZpZ192bnNfZGVmX2lmX3J1bGVfbW9kZQorICAgICMgIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSB2bnMgbW9kZSBoYXMgYmVlbiBlbnRlcmVkIHZpYSB0aGUKKyAgICAjICAndm5zLWRlZmluaXRpb24gPHZuc0lkPicgY29tbWFuZCwgdGhlbiBpbnRvIGludGVyZmFjZS1ydWxlIG1vZGUuCisgICAgIworICAgIGRlZiBpbl9jb25maWdfdm5zX2RlZl9pZl9ydWxlX21vZGUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmN1cnJlbnRfbW9kZSgpID09ICJjb25maWctdm5zLWRlZi1pZi1ydWxlIgorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGluX2NvbmZpZ192bnNfYWNsX21vZGUKKyAgICAjICBSZXR1cm5zIHRydWUgd2hlbiB0aGUgdm5zIG1vZGUgaGFzIGJlZW4gZW50ZXJlZCB2aWEgdGhlCisgICAgIyAgJ3ZucyA8dm5zSWQ+JyBjb21tYW5kLCB0aGVuIGludG8gYWNsIG1vZGUuCisgICAgIworICAgIGRlZiBpbl9jb25maWdfdm5zX2FjbF9tb2RlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5jdXJyZW50X21vZGUoKSA9PSAiY29uZmlnLXZucy1hY2wiCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgaW5fY29uZmlnX3Zuc19pZl9tb2RlCisgICAgIyAgUmV0dXJucyB0cnVlIHdoZW4gdGhlIHZucyBtb2RlIGhhcyBiZWVuIGVudGVyZWQgdmlhIHRoZQorICAgICMgICd2bnMgPHZuc0lkPicgY29tbWFuZCwgdGhlbiBpbnRvIGludGVyZmFjZSBtb2RlLgorICAgICMKKyAgICBkZWYgaW5fY29uZmlnX3Zuc19pZl9tb2RlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5jdXJyZW50X21vZGUoKSA9PSAiY29uZmlnLXZucy1pZiIKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBpbl9jb25maWdfaG9zdF9tb2RlCisgICAgIyAgUmV0dXJucyB0cnVlIHdoZW4gdGhlIHZucyBtb2RlIGhhcyBiZWVuIGVudGVyZWQgdmlhIHRoZQorICAgICMgICdob3N0IDxob3N0LWlkPicgY29tbWFuZAorICAgICMKKyAgICBkZWYgaW5fY29uZmlnX2hvc3RfbW9kZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY3VycmVudF9tb2RlKCkgPT0gImNvbmZpZy1ob3N0IgorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGluX2NvbmZpZ19jb250cm9sbGVyX25vZGVfbW9kZQorICAgICMgIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSB2bnMgbW9kZSBoYXMgYmVlbiBlbnRlcmVkIHZpYSB0aGUKKyAgICAjICAnY29udHJvbGxlci1ub2RlIDxjb250cm9sbGVyLW5vZGUtaWQ+JyBjb21tYW5kCisgICAgIworICAgIGRlZiBpbl9jb25maWdfY29udHJvbGxlcl9ub2RlX21vZGUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLmN1cnJlbnRfbW9kZSgpID09ICJjb25maWctY29udHJvbGxlci1ub2RlIgorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGluX2NvbmZpZ19jb250cm9sbGVyX2ludGVyZmFjZV9tb2RlCisgICAgIyAgUmV0dXJucyB0cnVlIHdoZW4gdGhlIGNvbnRyb2xsZXIgaW50ZXJmYWNlIG1vZGUgaGFzIGJlZW4gZW50ZXJlZCB2aWEgdGhlCisgICAgIyAgJ2ludGVyZmFjZSBFdGhlcm5ldCA8Iz4nIGNvbW1hbmQgZnJvbSB0aGUgY29udHJvbGxlci1ub2RlIGNvbmZpZyBtb2RlCisgICAgIworICAgIGRlZiBpbl9jb25maWdfY29udHJvbGxlcl9pbnRlcmZhY2VfbW9kZShzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY3VycmVudF9tb2RlKCkgPT0gImNvbmZpZy1jb250cm9sbGVyLWlmIgorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGluX2NvbmZpZ19wb3J0X2NoYW5uZWxfbW9kZQorICAgICMKKyAgICBkZWYgaW5fY29uZmlnX3BvcnRfY2hhbm5lbF9tb2RlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5jdXJyZW50X21vZGUoKSA9PSAiY29uZmlnLXBvcnQtY2hhbm5lbCIKKworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHNldF9jdXJyZW50X21vZGVfb2JqCisgICAgIyAgU2V0cyB0aGUgbmFtZSBvZiB0aGUgc2VsZWN0ZWQgcm93IChrZXkncyB2YWx1ZSkKKyAgICAjCisgICAgZGVmIHNldF9jdXJyZW50X21vZGVfb2JqKHNlbGYsIG9iaik6CisgICAgICAgIHNlbGYubW9kZV9zdGFja1stMV1bJ29iaiddID0gb2JqCisgICAgICAgIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBnZXRfY3VycmVudF9tb2RlX29iagorICAgICMgIEdldHMgdGhlIG5hbWUgb2YgdGhlIGN1cnJlbnQgbW9kZSdzIHNlbGVjdGVkIHJvdyB2YWx1ZSAoa2V5J3MgdmFsdWUpCisgICAgIyAgVGhpcyBjYW4gcmV0dXJuIE5vbmUuCisgICAgIworICAgIGRlZiBnZXRfY3VycmVudF9tb2RlX29iaihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYubW9kZV9zdGFja1stMV1bJ29iaiddCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgc2V0X2N1cnJlbnRfbW9kZV9vYmpfdHlwZQorICAgICMgIFNldCB0aGUgdGFibGUvbW9kZWwgbmFtZSBmb3IgdGhpcyBjdXJyZW50IG1vZGUuCisgICAgIworICAgIGRlZiBzZXRfY3VycmVudF9tb2RlX29ial90eXBlKHNlbGYsIG9ial90eXBlKToKKyAgICAgICAgc2VsZi5tb2RlX3N0YWNrWy0xXVsnb2JqX3R5cGUnXSA9IG9ial90eXBlCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZ2V0X2N1cnJlbnRfbW9kZV9vYmpfdHlwZQorICAgICMgIEdldCB0aGUgdGFibGUvbW9kZWwgbmFtZSBmb3IgdGhpcyBjdXJyZW50IG1vZGUuCisgICAgIworICAgIGRlZiBnZXRfY3VycmVudF9tb2RlX29ial90eXBlKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5tb2RlX3N0YWNrWy0xXVsnb2JqX3R5cGUnXQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGdldF9uZXN0ZWRfbW9kZV9vYmoKKyAgICAjICBHZXQgdGhlIGlkIG9mIHRoZSBvYmplY3QgdGhhdCBtYXRjaGVzIHRoZSBnaXZlbiBvYmplY3QgdHlwZQorICAgICMgIHN0YXJ0aW5nIGZyb20gdGhlIGN1cnJlbnQgbW9kZSBhbmQgd29ya2luZyBiYWNrd2FyZHMgdG8gdGhlCisgICAgIyAgdG9wLWxldmVsIG1vZGUuIElmIHRoZXJlJ3Mgbm8gbW9kZSB0aGF0IG1hdGNoZXMgdGhlIGdpdmVuCisgICAgIyAgb2JqZWN0IHR5cGUsIHRoZW4gcmV0dXJuIE5vbmUgKG1heWJlIHNob3VsZCBoYW5kbGUgYXMgZXhjZXB0aW9uPykuCisgICAgIworICAgIGRlZiBnZXRfbmVzdGVkX21vZGVfb2JqKHNlbGYsIG9ial90eXBlKToKKyAgICAgICAgZm9yIGkgaW4gcmFuZ2UoMSwgbGVuKHNlbGYubW9kZV9zdGFjaykrMSk6CisgICAgICAgICAgICAjIFVzZSBuZWdhdGl2ZSBpbmRleCBzbyB3ZSBzZWFyY2ggZnJvbSB0aGUgdG9wL2VuZCBvZiB0aGUgc3RhY2sKKyAgICAgICAgICAgIG1vZGUgPSBzZWxmLm1vZGVfc3RhY2tbLWldCisgICAgICAgICAgICBpZiBtb2RlWydvYmpfdHlwZSddID09IG9ial90eXBlOgorICAgICAgICAgICAgICAgIHJldHVybiBtb2RlWydvYmonXQorICAgICAgICByZXR1cm4gTm9uZQorICAgIAorICAgICMKKyAgICAjIGhlbHBlciBmdW5jdGlvbnMgdG8gYWNjZXNzIGNvbW1hbmRzLCBvYmpfdHlwZXMsIGFuZCBmaWVsZHMKKyAgICAjCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgYWxsX29ial90eXBlc19zdGFydGluZ193aXRoCisgICAgIyAgUmV0dXJucyBhIGxpc3Qgb2YgYWxsIHRoZSBjdXJyZW50IG9iamVjdCB0eXBlcyBzdGFydGluZyB3aXRoIHRoZSB0ZXh0CisgICAgIyAgcGFyYW1ldGVyLgorICAgICMKKyAgICAjCisgICAgZGVmIGFsbF9vYmpfdHlwZXNfc3RhcnRpbmdfd2l0aChzZWxmLCB0ZXh0PSIiKToKKyAgICAgICAgaWYgb25vcyA9PSAwOgorICAgICAgICAgICAgbmV0dmlydF9mZWF0dXJlID0gc2VsZi5uZXR2aXJ0X2ZlYXR1cmVfZW5hYmxlZCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuZXR2aXJ0X2ZlYXR1cmUgPSBGYWxzZQorCisgICAgICAgIG1hdGNoZWRfb2JqX3R5cGVzID0gW3ggZm9yIHggaW4gbWkub2JqX3R5cGVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHguc3RhcnRzd2l0aCh0ZXh0KSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWJ1Z19vYmpfdHlwZSh4KSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5ldHZpcnRfZmVhdHVyZSBvciAoeCAhPSAndm5zLWRlZmluaXRpb24nKSkgXQorICAgICAgICAjIHN5bnRoZXRpYyBvYmplY3QgdHlwZSBiYXNlZCBvbiB0aGUgdm5zIGNvbmZpZyBzdWJtb2RlLgorICAgICAgICBpZiBzZWxmLmluX2NvbmZpZ192bnNfZGVmX21vZGUoKSBhbmQgImludGVyZmFjZS1ydWxlIi5zdGFydHN3aXRoKHRleHQpOgorICAgICAgICAgICAgbWF0Y2hlZF9vYmpfdHlwZXMuYXBwZW5kKCJpbnRlcmZhY2UtcnVsZSIpCisgICAgICAgIGlmIHNlbGYuaW5fY29uZmlnX3Zuc19tb2RlKCkgYW5kICJhY2Nlc3MtbGlzdCIuc3RhcnRzd2l0aCh0ZXh0KToKKyAgICAgICAgICAgIG1hdGNoZWRfb2JqX3R5cGVzLmFwcGVuZCgiYWNjZXNzLWxpc3QiKQorICAgICAgICBpZiBzZWxmLmluX2NvbmZpZ192bnNfbW9kZSgpIGFuZCAiaW50ZXJmYWNlcyIuc3RhcnRzd2l0aCh0ZXh0KToKKyAgICAgICAgICAgIG1hdGNoZWRfb2JqX3R5cGVzLmFwcGVuZCgiaW50ZXJmYWNlcyIpCisgICAgICAgIHJldHVybiBtYXRjaGVkX29ial90eXBlcworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBmZWF0dXJlX2VuYWJsZWQKKyAgICAjICBSZXR1cm4gVHJ1ZSB3aGVuIGEgcGFydGljdWxhciBmZWF0dXJlIGlzIGVuYWJsZWQuCisgICAgIworICAgIGRlZiBmZWF0dXJlX2VuYWJsZWQoc2VsZiwgZmVhdHVyZSk6CisgICAgICAgICMgZmVhdHVyZXMgbm90IG1hbmFnZWQgdmlhIHN0b3JlCisgICAgICAgICMKKyAgICAgICAgaWYgZmVhdHVyZSA9PSAnZXhwZXJpbWVudGFsJzoKKyAgICAgICAgICAgIHJldHVybiBvcy5wYXRoLmV4aXN0cyhzZWxmLmZlYXR1cmVfYWxsb3dfZXhwZXJpbWVudGFsKQorCisgICAgICAgIGlmIGZlYXR1cmUgPT0gJ2hhJzoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB3aXRoIG9wZW4oc2VsZi5ib290X2NvbmZpZ19maWxlbmFtZSwgInIiKSBhcyBmOgorICAgICAgICAgICAgICAgICAgICBmb3IgbGluZSBpbiBmOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGluZS5zdGFydHN3aXRoKCdoYS1jb25maWc9Jyk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFydHMgPSBsaW5lLnNwbGl0KCc9JykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBsZW4ocGFydHMpID4gMCBhbmQgcGFydHNbMV0gPT0gJ2VuYWJsZWRcbic6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgIyBvbmx5IGN1cnJlbnQgZmVhdHVyZXMgd2hpY2ggY2FuIGJlIGVuYWJsZWQgZGlzYWJsZWQKKyAgICAgICAgaWYgZmVhdHVyZSBub3QgaW4gWworICAgICAgICAgICAgICAgICd2bnMnLCAnc3RhdGljLWZsb3ctcHVzaGVyJywgJ3BlcmZvcm1hbmNlLW1vbml0b3InXToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgICMKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZW50cnkgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCdmZWF0dXJlJykKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGVycm9ycyA9IHNlbGYucmVzdF9lcnJvcl90b19kaWN0KGUsICdmZWF0dXJlJykKKyAgICAgICAgICAgIHByaW50IHNlbGYucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKQorICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICBmZWF0dXJlX3RvX2ZpZWxkX2RpY3QgPSB7CisgICAgICAgICAgICAndm5zJyAgICAgICAgICAgICAgICAgOiAnbmV0dmlydC1mZWF0dXJlJywKKyAgICAgICAgICAgICdzdGF0aWMtZmxvdy1wdXNoZXInICA6ICdzdGF0aWMtZmxvdy1wdXNoZXItZmVhdHVyZScsCisgICAgICAgICAgICAncGVyZm9ybWFuY2UtbW9uaXRvcicgOiAncGVyZm9ybWFuY2UtbW9uaXRvci1mZWF0dXJlJywKKyAgICAgICAgfQorCisgICAgICAgIGlmIGxlbihlbnRyeSkgPT0gMDoKKyAgICAgICAgICAgIGlmIGZlYXR1cmUgaW4gZmVhdHVyZV90b19maWVsZF9kaWN0OgorICAgICAgICAgICAgICAgIGZpZWxkID0gZmVhdHVyZV90b19maWVsZF9kaWN0W2ZlYXR1cmVdCisgICAgICAgICAgICAgICAgcmV0dXJuIG1pLmZpZWxkX2RlZmF1bHRfdmFsdWUoJ2ZlYXR1cmUnLCBmaWVsZCkKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAgICAgaWYgbGVuKGVudHJ5KSAhPSAxOgorICAgICAgICAgICAgIyBuZWVkIGEgbWVjaGFuaXNtIHRvIHNlbGVjdCBvbmUgZnJvbSB0aGUgbGlzdAorICAgICAgICAgICAgcmV0dXJuIFRydWUKKworICAgICAgICBpZiBmZWF0dXJlIGluIGZlYXR1cmVfdG9fZmllbGRfZGljdDoKKyAgICAgICAgICAgIHJldHVybiBlbnRyeVswXVtmZWF0dXJlX3RvX2ZpZWxkX2RpY3RbZmVhdHVyZV1dCisKKyAgICAgICAgIyB1c2UgdGhlIGRlZmF1bHQgdmFsdWUgZnJvbSB0aGUgbW9kZWwgKGV2ZXJ5IGZlYXR1cmUgbmVlZHMgYSBkZWZhdWx0IHZhbHVlKQorICAgICAgICBkZWZhdWlsdF92YWx1ZSA9IG1pLmZpZWxkX2RlZmF1bHRfdmFsdWUoJ2ZlYXR1cmUnLCBmZWF0dXJlX3RvX2ZpZWxkX2RpY3RbZmVhdHVyZV0pCisgICAgICAgIGlmIGRlZmF1bHRfdmFsdWUgPT0gTm9uZToKKyAgICAgICAgICAgIHByaW50IHNlbGYuZXJyb3JfbXNnKCdGZWF0dXJlICVzIG1pc3NpbmcgZGVmYXVsdCB2YWx1ZScgJSBmZWF0dXJlKQorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIGRlZmF1bHRfdmFsdWUKKworICAgICcnJworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBhZGRyZXNzX3NwYWNlX2RlZmF1bHRfY3JlYXRlCisgICAgIworICAgICMgIENyZWF0ZSBhIGRlZmF1bHQgYWRkcmVzcyBzcGFjZSBpZiBpdCBkb2Vzbid0IGV4aXN0LCB3aGljaCBlbmFibGVzCisgICAgIyAgJ2FkZHJlc3Mtc3BhY2UgZGVmYXVsdCcsCisgICAgIworICAgIGRlZiBhZGRyZXNzX3NwYWNlX2RlZmF1bHRfY3JlYXRlKHNlbGYpOgorICAgICAgICBrZXkgPSBtaS5waygnYWRkcmVzcy1zcGFjZScpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGVudHJpZXMgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCdhZGRyZXNzLXNwYWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwgJ2RlZmF1bHQnLCAnZXhhY3QnKQorICAgICAgICAgICAgZXJyb3JzID0gTm9uZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXJyb3JzID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSwgJ2FkZHJlc3Mtc3BhY2UnKQorICAgICAgICAgICAgaWYgbm90ICdzZWVfb3RoZXInIGluIGVycm9yczoKKyAgICAgICAgICAgICAgICBwcmludCBzZWxmLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGlmIGxlbihlbnRyaWVzKSA9PSAwOgorICAgICAgICAgICAgc2VsZi5jcmVhdGVfcm93KCdhZGRyZXNzLXNwYWNlJywgJ2RlZmF1bHQnKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHRlbmFudF9kZWZhdWx0X2NyZWF0ZQorICAgICMKKyAgICAjICBDcmVhdGUgZGVmYXVsdCB0ZW5hbnQgYW5kIHN5c3RlbSB0ZW5hbnQgaWYgaXQgZG9lc24ndCBleGlzdCwgd2hpY2ggZW5hYmxlcworICAgICMgICd0ZW5hbnQgZGVmYXVsdCcgYW5kIHRlbmFudCBzeXN0ZW0sIHJvdXRlciB2cnN5c3RlbSwKKyAgICAjCisgICAgZGVmIHRlbmFudF9kZWZhdWx0X2NyZWF0ZShzZWxmKToKKyAgICAgICAga2V5ID0gbWkucGsoJ3RlbmFudCcpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGVudHJpZXMgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCd0ZW5hbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LCAnZGVmYXVsdCcsICdleGFjdCcpCisgICAgICAgICAgICBlcnJvcnMgPSBOb25lCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBlcnJvcnMgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlLCAndGVuYW50JykKKyAgICAgICAgICAgIGlmIG5vdCAnc2VlX290aGVyJyBpbiBlcnJvcnM6CisgICAgICAgICAgICAgICAgcHJpbnQgc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcnMpCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBpZiBsZW4oZW50cmllcykgPT0gMDoKKyAgICAgICAgICAgIHNlbGYuY3JlYXRlX3JvdygndGVuYW50JywgJ2RlZmF1bHQnKQorICAgICAgICAjZXh0ZXJuYWwgdGVuYW50CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGVudHJpZXMgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCd0ZW5hbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LCAnZXh0ZXJuYWwnLCAnZXhhY3QnKQorICAgICAgICAgICAgZXJyb3JzID0gTm9uZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXJyb3JzID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSwgJ3RlbmFudCcpCisgICAgICAgICAgICBpZiBub3QgJ3NlZV9vdGhlcicgaW4gZXJyb3JzOgorICAgICAgICAgICAgICAgIHByaW50IHNlbGYucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgaWYgbGVuKGVudHJpZXMpID09IDA6CisgICAgICAgICAgICBzZWxmLmNyZWF0ZV9yb3coJ3RlbmFudCcsICdleHRlcm5hbCcpCisKKyAgICAgICAgI3N5c3RlbSB0ZW5hbnQgYW5kIHN5c3RlbSByb3V0ZXI6IHZyc3lzdGVtCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGVudHJpZXMgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCd0ZW5hbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LCAnc3lzdGVtJywgJ2V4YWN0JykKKyAgICAgICAgICAgIGVycm9ycyA9IE5vbmUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGVycm9ycyA9IHNlbGYucmVzdF9lcnJvcl90b19kaWN0KGUsICd0ZW5hbnQnKQorICAgICAgICAgICAgaWYgbm90ICdzZWVfb3RoZXInIGluIGVycm9yczoKKyAgICAgICAgICAgICAgICBwcmludCBzZWxmLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGlmIGxlbihlbnRyaWVzKSA9PSAwOgorICAgICAgICAgICAgc2VsZi5jcmVhdGVfcm93KCd0ZW5hbnQnLCAnc3lzdGVtJykKKyAgICAgICAgCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGVudHJpZXMgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCd2aXJ0dWFscm91dGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwgJ3Zyc3lzdGVtJywgJ2V4YWN0JykKKyAgICAgICAgICAgIGVycm9ycyA9IE5vbmUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGVycm9ycyA9IHNlbGYucmVzdF9lcnJvcl90b19kaWN0KGUsICd2aXJ0dWFscm91dGVyJykKKyAgICAgICAgICAgIGlmIG5vdCAnc2VlX290aGVyJyBpbiBlcnJvcnM6CisgICAgICAgICAgICAgICAgcHJpbnQgc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcnMpCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBpZiBsZW4oZW50cmllcykgPT0gMDoKKyAgICAgICAgICAgIHNlbGYuY3JlYXRlX3JvdygndmlydHVhbHJvdXRlcicsICd2cnN5c3RlbScseyJ0ZW5hbnQiOiJzeXN0ZW0iLCJ2cm5hbWUiOiJ2cnN5c3RlbSJ9KQorIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBuZXR2aXJ0X2ZlYXR1cmVfaW5pdAorICAgICMgIHBlcmZvcm0gdm5zIGZlYXRydWUgZW5hYmxlbWVudDoKKyAgICAjICBDcmVhdGUgYSBkZWZhdWx0IHZucyBpZiBpdCBkb2Vzbid0IGV4aXN0LCB3aGljaCBlbmFibGVzICd2bnMgZGVmYXVsdCcsCisgICAgIworICAgIGRlZiBuZXR2aXJ0X2ZlYXR1cmVfaW5pdChzZWxmKToKKyAgICAgICAgc2VsZi5hZGRyZXNzX3NwYWNlX2RlZmF1bHRfY3JlYXRlKCkKKyAgICAgICAgc2VsZi50ZW5hbnRfZGVmYXVsdF9jcmVhdGUoKQorICAgICAgICBrZXkgPSBtaS5waygndm5zLWRlZmluaXRpb24nKQorICAgICAgICB0cnk6CisgICAgICAgICAgICBlbnRyaWVzID0gc2VsZi5nZXRfdGFibGVfZnJvbV9zdG9yZSgndm5zLWRlZmluaXRpb24nLCBrZXksICdkZWZhdWx0fGRlZmF1bHQnLCAnZXhhY3QnKQorICAgICAgICAgICAgZXJyb3JzID0gTm9uZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXJyb3JzID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSwgJ3Zucy1kZWZpbml0aW9uJykKKyAgICAgICAgICAgIGlmIG5vdCAnc2VlX290aGVyJyBpbiBlcnJvcnM6CisgICAgICAgICAgICAgICAgcHJpbnQgc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcnMpCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBpZiBsZW4oZW50cmllcykgPT0gMDoKKyAgICAgICAgICAgIHNlbGYuY3JlYXRlX3Jvdygndm5zLWRlZmluaXRpb24nLCAnZGVmYXVsdCcsIHsidGVuYW50IjoiZGVmYXVsdCIsInZuc25hbWUiOiJkZWZhdWx0In0pCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgbmV0dmlydF9mZWF0dXJlX2VuYWJsZWQKKyAgICAjICBSZXR1cm4gVHJ1ZSB3aGVuIHRoZSB2bnMgZmVhdHVyZSBpcyBlbmFibGVkCisgICAgIyAgCisgICAgIyAgV2hlbiB2bnMgaXMgZGlzYWJsZWQsIHBhcnRpY3VsYXIgdm5zIGNvbW1hbmRzIGFyZSBubyBsb25nZXIKKyAgICAjICBhdmFpbGFibGUsIGFsb25nIHdpdGggYSBmZXcgc3BlY2lmaWMgb2JqZWN0cy4gIFBhcnRpY3VsYXIKKyAgICAjICBjb2RlIHNpdGVzIHdoaWNoIGFyZSBzcGVjaWZpY2FsbHkgY29uY2VybmVkIHdpdGggdGhlc2UgaXNzdWVzCisgICAgIyAgZGlzYWJsZSB0aGVzZSBpdGVtcy4gIEFub3RoZXIgcG9zc2libGUgYXBwcm9hY2ggd291bGQgYmUgdG8KKyAgICAjICBtb2RpZnkgdGhlIGJhc2UgaW5mb3JtYXRpb24gc291cmNlcyAgd2hlbiBhIGZlYXR1cmUgaXMKKyAgICAjICBlbmFibGVkIG9yIGRpc2FibGVkLCBpZTogbWkub2JqX3R5cGVzIGFuZCBjb21tYW5kX2RpY3QuCisgICAgIyAgVGhpcyBtb3JlIGFjdGl2ZSBhcHByb2FjaCBpc24ndCB0YWtlbiBzaW5jZSBkdXJpbmcKKyAgICAjICB0aGUgaW5pdGlhbGl6YXRpb24gcHJvY2VzcywgYSB2YXJpZXR5IG9mIGRpZmZlcmVudCBvYmplY3QKKyAgICAjICByZWxhdGlvbnNoaXBzIGFyZSBjb25zdHJ1Y3RlZDsgZm9yZWlnbiBrZXkgeHJlZidzLCAgYWxpYXMKKyAgICAjICBrZXkgeHJlZidzLCAgb2JqZWN0IGtleSBkaWN0aW9uYXJpZXMsIGV0Yy4gIElmIHRoZSBmZWF0dXJlCisgICAgIyAgZW5hYmxlZCB3ZXJlIG1vcmUgYWN0aXZlLCB0aGVuIGFsbCB0aGVzZSByZWxhdGlvbnNoaXBzIHdvdWxkIGFsc28KKyAgICAjICBuZWVkIHRvIGJlIHJlY29tcHV0ZWQuCisgICAgIworICAgIGRlZiBuZXR2aXJ0X2ZlYXR1cmVfZW5hYmxlZChzZWxmKToKKyAgICAgICAgY29udHJvbGxlcl9uZXR2aXJ0X2ZlYXR1cmUgPSBzZWxmLmZlYXR1cmVfZW5hYmxlZCgidm5zIikKKyAgICAgICAgaWYgc2VsZi5uZXR2aXJ0X2ZlYXR1cmVfZW5hYmxlZF9jYWNoZWQgIT0gY29udHJvbGxlcl9uZXR2aXJ0X2ZlYXR1cmU6CisgICAgICAgICAgICBzZWxmLm5ldHZpcnRfZmVhdHVyZV9lbmFibGVkX2NhY2hlZCA9IGNvbnRyb2xsZXJfbmV0dmlydF9mZWF0dXJlCisgICAgICAgICAgICBpZiBzZWxmLm5ldHZpcnRfZmVhdHVyZV9lbmFibGVkX2NhY2hlZDoKKyAgICAgICAgICAgICAgICBzZWxmLm5ldHZpcnRfZmVhdHVyZV9pbml0KCkKKyAgICAgICAgaWYgY29udHJvbGxlcl9uZXR2aXJ0X2ZlYXR1cmUgPT0gRmFsc2U6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICAnJycKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBnZXRfb2JqX29mX3R5cGUKKyAgICAjICBSZXR1cm4gYSBzaW5nbGUgcm93LCBvciBOb25lLCBvZiB0aGUgdGFibGUgd2hvJ3MgbmFtZSBpcyBwYXNzZWQgYXMgb2JqX3R5cGUKKyAgICAjICBSZXR1cm5zIE5vbmUgd2hlbiB3aGVuIHRoZXJlJ3MgbXVsdGlwbGUgbWF0Y2hlcyBvZiB0aGUgbmFuZSBpbiB0aGUgdGFibGUvbW9kZWwKKyAgICAjICBQZXJmb3JtcyBubyBlcnJvciBwcm9jZXNzaW5nCisgICAgIworICAgIGRlZiBnZXRfb2JqX29mX3R5cGUoc2VsZiwgb2JqX3R5cGUsIG5hbWUpOgorICAgICAgICBrZXkgPSBtaS5wayhvYmpfdHlwZSkKKyAgICAgICAgaWYga2V5OgorICAgICAgICAgICAgZXJyb3JzID0gTm9uZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGVudHJpZXMgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKG9ial90eXBlKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICBlcnJvcnMgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlLCBvYmpfdHlwZSkKKworICAgICAgICAgICAgaWYgZXJyb3JzOgorICAgICAgICAgICAgICAgIHByaW50IHNlbGYucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKQorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgICAgIGVudHJpZXMgPSBbeCBmb3IgeCBpbiBlbnRyaWVzIGlmIHguZ2V0KGtleSwgJ05vbmUnKSA9PSBuYW1lXQorICAgICAgICAgICAgaWYgbGVuKGVudHJpZXMpICE9IDE6CisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgIHJldHVybiBlbnRyaWVzWzBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZmllbGRzX2Zvcl9jdXJyZW50X3N1Ym1vZGVfc3RhcnRpbmdfd2l0aAorICAgICMgIFJldHVybiBhIGxpc3Qgb2YgY2hvaWNlcyB3aGljaCBhcmUgZmllbGRzIG5hbWVzIG9mIG1vZGVsL3N0b3JlIG9iamVjdHMKKyAgICAjICBBbnkgZmllbGRzIHdoaWNoIGFyZSBwcmltYXJ5IGtleXMgYXJlIGV4Y2x1ZGVkIGZyb20gZWRpdCwgYXMgYXJlIGFueQorICAgICMgIGZvcmVpZ24ga2V5cywgdGhpcyBpcyBtYW5hZ2VkIHRocm91Z2ggaXNfZWRpdGFibGUoKQorICAgICMKKyAgICBkZWYgZmllbGRzX2Zvcl9jdXJyZW50X3N1Ym1vZGVfc3RhcnRpbmdfd2l0aChzZWxmLCBzdGFydF90ZXh0PSIiKToKKyAgICAgICAgaWYgbm90IHNlbGYuaW5fY29uZmlnX3N1Ym1vZGUoKToKKyAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICBpZiBzZWxmLmluX2NvbmZpZ192bnNfbW9kZSgpOgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIG9ial90eXBlID0gc2VsZi5nZXRfY3VycmVudF9tb2RlX29ial90eXBlKCkKKyAgICAgICAgaWYgbm90IG9ial90eXBlIGluIG1pLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICBmaWVsZHMgPSBbeCBmb3IgeCBpbiBtaS5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydmaWVsZHMnXS5rZXlzKCkgXAorICAgICAgICAgICAgICAgICAgaWYgbWkuaXNfZWRpdGFibGUob2JqX3R5cGUsIHgpXQorCisgICAgICAgIHJldHVybiBbeCBmb3IgeCBpbiBmaWVsZHMgaWYgeC5zdGFydHN3aXRoKHN0YXJ0X3RleHQpXQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIG9ial90eXBlc19mb3JfY29uZmlnX21vZGVfc3RhcnRpbmdfd2l0aAorICAgICMKKyAgICAjIHdoYXQgb2JqIHR5cGVzIGFyZSBhdmFpbGFibGUgaW4gdGhlIGdpdmVuIHN1Ym1vZGUKKyAgICAjIGUuZy4sIHRvcC1sZXZlbCBjb25maWcgbW9kZSBoYXMgc3dpdGNoIGFuZCBjb25maWctc3dpdGNoIGhhcworICAgICMgZmxvdy1lbnRyeSBidXQgZmxvdy1lbnRyeSBzaG91bGQgbm90IGJlIGF2YWlsYWJsZSBpbiB0b3AtbGV2ZWwKKyAgICAjIGNvbmZpZyBub3Igc2hvdWxkIHN3aXRjaCBiZSBhdmFpbGFibGUgaW4gY29uZmlnLXN3aXRjaCBzdWJtb2RlIQorICAgICMgTE9PSyEgaGFyZHdpcmVkIGZvciBub3cgdG8gdGVzdCBwYXJzaW5nIC0gbmVlZCB0byBtZXJnZSB3aXRoIG1vZGVsCisgICAgIworICAgIGRlZiBvYmpfdHlwZXNfZm9yX2NvbmZpZ19tb2RlX3N0YXJ0aW5nX3dpdGgoc2VsZiwgc3RhcnRfdGV4dD0iIik6CisgICAgICAgIGlmIG5vdCBzZWxmLmluX2NvbmZpZ19tb2RlKCk6CisgICAgICAgICAgICByZXR1cm4gW10KKyAgICAgICAgIworICAgICAgICAjIHZucyBmZWF0dXJlcworICAgICAgICBpZiBvbm9zID09IDA6CisgICAgICAgICAgICBuZXR2aXJ0X2ZlYXR1cmVzID0gc2VsZi5uZXR2aXJ0X2ZlYXR1cmVfZW5hYmxlZCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuZXR2aXJ0X2ZlYXR1cmVzID0gRmFsc2UKKyAgICAgICAgdm5zX29iamVjdHMgPSBbICd2bnMtZGVmaW5pdGlvbicgXQorCisgICAgICAgIHJldF9saXN0ID0gW3ggZm9yIHggaW4gbWkub2JqX3R5cGVzCisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuZGVidWdfb2JqX3R5cGUoeCkgYW5kIAorICAgICAgICAgICAgICAgICAgICAgICBub3QgbWkuaXNfb2JqX3R5cGVfc291cmNlX25vdF91c2VyX2NvbmZpZyh4KV0KKyAgICAgICAgcmV0dXJuIFt4IGZvciB4IGluIHJldF9saXN0IGlmIHguc3RhcnRzd2l0aChzdGFydF90ZXh0KSBhbmQKKyAgICAgICAgICAgICAgICAgICAgKG5ldHZpcnRfZmVhdHVyZXMgb3Igbm90IHggaW4gdm5zX29iamVjdHMpIF0KKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgdGl0bGVfb2YoY29tbWFuZCk6CisgICAgICAgIHJldHVybiBjb21tYW5kWyd0aXRsZSddIGlmIHR5cGUoY29tbWFuZCkgaXMgZGljdCBlbHNlIGNvbW1hbmQKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBjb21tYW5kc19mZWF0dXJlX2VuYWJsZWQKKyAgICAjCisgICAgZGVmIGNvbW1hbmRzX2ZlYXR1cmVfZW5hYmxlZChzZWxmLCBjb21tYW5kcyk6CisgICAgICAgIHJldHVybiBbc2VsZi50aXRsZV9vZih4KSBmb3IgeCBpbiBjb21tYW5kcworICAgICAgICAgICAgICAgIGlmIChub3Qgc2VsZi50aXRsZV9vZih4KSBpbiBzZWxmLmNvbW1hbmRfbmFtZV9mZWF0dXJlKSBvcgorICAgICAgICAgICAgICAgICAgICBjb21tYW5kLmlzQ29tbWFuZEZlYXR1cmVBY3RpdmUoc2VsZi50aXRsZV9vZih4KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29tbWFuZF9uYW1lX2ZlYXR1cmVbc2VsZi50aXRsZV9vZih4KV0pXQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNvbW1hbmRzX2Zvcl9tb2RlCisgICAgIworICAgIGRlZiBjb21tYW5kc19mb3JfbW9kZShzZWxmLCBtb2RlKToKKyAgICAgICAgIiIiCisgICAgICAgIFdhbGsgdGhlIGNvbW1hbmQgZGljdCwgdXNpbmcgaW50ZXJpb3Igc3VibW9kZXMgYW5kIGNvbXBpbGluZworICAgICAgICB0aGUgbGlzdCBvZiBhdmFpbGFibGUgY29tbWFuZHMgKGNvdWxkIHJlYnVpbGQgY29tbWFuZF9kaWN0KCkKKyAgICAgICAgdG8gY29udGFpbiBhbGwgdGhlIHBvc3NpYmxlIGNvbW1hbmRzLCBidXQgaXRzIGdvb2QgdG8ga25vdworICAgICAgICBleGFjdGx5IHdoaWNoIGNvbW1hbmRzIGFwcGx5IHRvIHRoaXMgc3VibW9kZSkKKyAgICAgICAgIiIiCisKKyAgICAgICAgIyBtYWtlIGEgbmV3IGxpc3QsIHNvIHRoYXQgaXRlbXMgZG9uJ3QgZ2V0IGFkZGVkIHRvIHRoZSBzb3VyY2UKKyAgICAgICAgcmV0X2xpc3QgPSBsaXN0KHNlbGYuY29tbWFuZF9uZXN0ZWRfZGljdC5nZXQoJ2xvZ2luJywgW10pKQorICAgICAgICBpZiBtb2RlID09ICdsb2dpbic6CisgICAgICAgICAgICByZXRfbGlzdCArPSBzZWxmLmNvbW1hbmRfZGljdC5nZXQoJ2xvZ2luJywgW10pCisgICAgICAgICAgICByZXR1cm4gcmV0X2xpc3QKKyAgICAgICAgcmV0X2xpc3QgKz0gc2VsZi5jb21tYW5kX25lc3RlZF9kaWN0LmdldCgnZW5hYmxlJywgW10pCisgICAgICAgIGlmIG1vZGUgPT0gJ2VuYWJsZSc6CisgICAgICAgICAgICByZXRfbGlzdCArPSBzZWxmLmNvbW1hbmRfZGljdC5nZXQoJ2VuYWJsZScsIFtdKQorICAgICAgICAgICAgcmV0dXJuIHJldF9saXN0CisKKyAgICAgICAgaWYgbW9kZSA9PSAnY29uZmlnJzoKKyAgICAgICAgICAgIHJldF9saXN0ICs9IHNlbGYuY29tbWFuZF9uZXN0ZWRfZGljdC5nZXQoJ2NvbmZpZycsIFtdKQorICAgICAgICAgICAgcmV0X2xpc3QgKz0gc2VsZi5jb21tYW5kX2RpY3QuZ2V0KCdjb25maWcnLCBbXSkKKyAgICAgICAgICAgIHJldHVybiByZXRfbGlzdAorICAgICAgICAKKyAgICAgICAgZm9yIGlkeCBpbiBbeCBmb3IgeCBpbiBzZWxmLmNvbW1hbmRfbmVzdGVkX2RpY3Qua2V5cygpIGlmIG1vZGUuc3RhcnRzd2l0aCh4KV06CisgICAgICAgICAgICByZXRfbGlzdCArPSBzZWxmLmNvbW1hbmRfbmVzdGVkX2RpY3QuZ2V0KGlkeCwgW10pCisKKyAgICAgICAgcmV0X2xpc3QgKz0gc2VsZi5jb21tYW5kX2RpY3QuZ2V0KG1vZGUsIFtdKQorCisgICAgICAgICMgbWFuYWdlIGNvbW1hbmQgd2hvJ3MgbmFtZXMgYXJlIHJlZ3VsYXIgZXhwcmVzc2lvbnMKKyAgICAgICAgcmVzdWx0ID0gW3hbJ3JlJ10gaWYgdHlwZSh4KSA9PSBkaWN0IGVsc2UgeCAgZm9yIHggaW4gcmV0X2xpc3RdCisKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNvbW1hbmRzX2Zvcl9jdXJyZW50X21vZGVfc3RhcnRpbmdfd2l0aAorICAgICMKKyAgICBkZWYgY29tbWFuZHNfZm9yX2N1cnJlbnRfbW9kZV9zdGFydGluZ193aXRoKHNlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF90ZXh0ID0gIiIsIGNvbXBsZXRpb24gPSBOb25lKToKKyAgICAgICAgIiIiCisgICAgICAgIE9uZSBvZiB0aGUgZGlmZmljdWx0IGlzc3VlcyBoZXJlIGlzIHdoZW4gdGhlIGZpcnN0IGl0ZW0KKyAgICAgICAgaXNuJ3QgYSB0b2tlbiwgYnV0IHJhdGhlciBhIHJlZ3VsYXIgZXhwcmVzc2lvbi4gIFRoaXMgY3VycmVudGx5IG9jY3VyCisgICAgICAgIGluIGEgZmV3IHBsYWNlcyBpbiB0aGUgY29tbWFuZCBkZXNjcmlwdGlvbiwgYW5kIHRoZSBtZWNoYW5pc20gZm9yCisgICAgICAgIGRlYWxpbmcgd2l0aCB0aGUgaXNzdWUgaGVyZSBpcyAuLi4gdWhtIC4uLiBwb29yLiAgVGhlIGNvZGUgaGVyZSBpcworICAgICAgICBhIHN0b3BnYXAsIGFuZCBhc3N1bWVzIHRoZSBvbmx5IHJlZ3VsYXIgZXhwcmVzc2lvbiBzdXBwb3J0ZWQKKyAgICAgICAgaXMgdGhlIDxkaWdpdHM+IG9uZS4gIFRoaXMgY291bGQgYmUgbWFrZSBhIGJpdCBiZXR0ZXIgYmFzZWQgb24KKyAgICAgICAgdGhlIHN1Ym1vZGUsIGJ1dCByZWFsbHksIHRoaXMgZW50aXJlIGZpcnN0LXRva2VuIG1hbmFnZW1lbnQgc2hvdWxkCisgICAgICAgIGJlIGltcHJvdmVkLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgY29tcGxldGlvbiA9PSBOb25lOgorICAgICAgICAgICAgY29tcGxldGlvbiA9IEZhbHNlCisgICAgICAgICMKKyAgICAgICAgIyB2bnMgZmVhdHVyZXMgY29tbWFuZHMgaW5jbHVkZToKKyAgICAgICAgbmV0dmlydF9mZWF0dXJlX2NvbW1hbmRzID0gWyd2bnMnLCAndm5zLWRlZmluaXRpb24nXQorICAgICAgICBpZiBvbm9zID09IDA6CisgICAgICAgICAgICBuZXR2aXJ0X2ZlYXR1cmUgPSBzZWxmLm5ldHZpcnRfZmVhdHVyZV9lbmFibGVkKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG5ldHZpcnRfZmVhdHVyZSA9IEZhbHNlCisKKyAgICAgICAgbW9kZV9saXN0ID0gc2VsZi5jb21tYW5kc19mb3JfbW9kZShzZWxmLmN1cnJlbnRfbW9kZSgpKQorICAgICAgICByZXRfbGlzdCA9IHNlbGYuY29tbWFuZHNfZmVhdHVyZV9lbmFibGVkKHV0aWYudW5pcXVlX2xpc3RfZnJvbV9saXN0KG1vZGVfbGlzdCkpCisKKyAgICAgICAgZGVmIHByZWZpeCh4LCBzdGFydF90ZXh0LCBjb21wbGV0aW9uKToKKyAgICAgICAgICAgIGlmIHR5cGUoeCkgPT0gc3RyIGFuZCB4Lmxvd2VyKCkuc3RhcnRzd2l0aChzdGFydF90ZXh0Lmxvd2VyKCkpOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAgICBpZiBub3QgY29tcGxldGlvbiBhbmQgdHlwZSh4KSA9PSByZS5fcGF0dGVybl90eXBlOgorICAgICAgICAgICAgICAgIHJldHVybiB4Lm1hdGNoKHN0YXJ0X3RleHQpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBkZWYgcGF0dGVybl9pdGVtcyhyZXRfbGlzdCwgcHJlZml4KToKKyAgICAgICAgICAgIG1hdGNoZXMgPSBbXQorICAgICAgICAgICAgZm9yIHAgaW4gW3ggZm9yIHggaW4gcmV0X2xpc3QgaWYgdHlwZSh4KSA9PSByZS5fcGF0dGVybl90eXBlXToKKyAgICAgICAgICAgICAgICBmb3IgYyBpbiBjb21tYW5kLmNvbW1hbmRfcmVnaXN0cnk6CisgICAgICAgICAgICAgICAgICAgIGlmIGNbJ21vZGUnXSAhPSBzZWxmLmN1cnJlbnRfbW9kZSgpOgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShjWyduYW1lJ10pICE9IGRpY3Q6CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICBmaXJzdF93b3JkID0gY1snbmFtZSddCisgICAgICAgICAgICAgICAgICAgIGlmICdjb21wbGV0aW9uJyBub3QgaW4gZmlyc3Rfd29yZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb24gPSBmaXJzdF93b3JkWydjb21wbGV0aW9uJ10KKyAgICAgICAgICAgICAgICAgICAgaWYgZmlyc3Rfd29yZFsncGF0dGVybiddID09IHAucGF0dGVybjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IHt9CisgICAgICAgICAgICAgICAgICAgICAgICBzY29wZXMgPSBbIGZpcnN0X3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9ucycgOiByZXN1bHQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgICAgIDoge30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGV4dCcgICAgICAgIDogcHJlZml4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZC5fY2FsbF9wcm9jKGNvbXBsZXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZC5jb21wbGV0aW9uX3JlZ2lzdHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjb3BlcywgYykKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoZXMgPSByZXN1bHQua2V5cygpCisgICAgICAgICAgICByZXR1cm4gbWF0Y2hlcworCisgICAgICAgIG1hdGNoZXMgPSBbeCBmb3IgeCBpbiByZXRfbGlzdCBpZiBwcmVmaXgoeCwgc3RhcnRfdGV4dCwgY29tcGxldGlvbildCisgICAgICAgIGlmIGNvbXBsZXRpb246CisgICAgICAgICAgICAgICBtYXRjaGVzICs9IHBhdHRlcm5faXRlbXMocmV0X2xpc3QsIHN0YXJ0X3RleHQpCisgICAgICAgIHJldHVybiBtYXRjaGVzCisKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBjb21wbGV0ZV9vcHRpb25hbF9wYXJhbWV0ZXJzCisgICAgIworICAgICMgUGFyc2Ugb3B0aW9uYWwgcGFyYW1ldGVycy4gIFRoZXNlIGNhbiBvY2N1ciBpbiBhbnkgb3JkZXIuCisgICAgIyBQYXJhbXMgYXJndW1lbnQgaXMgYSBoYXNoIG1hcHBpbmcgYSBwYXJhbWV0ZXIgbmFtZSB0byB0eXBlCisgICAgIyBpbmZvcm1hdGlvbi4KKyAgICAjIHdvcmRzIGFyZ3VtZW50IGFyZSByZW1haW5pbmcgd29yZHMgaW4gdGhlIGNvbW1hbmQKKyAgICAjIGxpbmUgdGhhdCBhcmVuJ3QgeWV0IHBhcnNlZAorICAgICMKKyAgICBkZWYgY29tcGxldGVfb3B0aW9uYWxfcGFyYW1ldGVycyhzZWxmLCBwYXJhbXMsIHdvcmRzLCB0ZXh0KToKKyAgICAgICAgaSA9IDAKKyAgICAgICAgd2hpbGUgaSA8IGxlbih3b3Jkcyk6CisgICAgICAgICAgICBmaW5hbCA9IGkrMSA+PSBsZW4od29yZHMpCisgICAgICAgICAgICB3b3JkID0gd29yZHNbaV0KKyAgICAgICAgICAgIHBvc3NpYmxlID0gW3ggZm9yIHggaW4gcGFyYW1zIGlmIHguc3RhcnRzd2l0aCh3b3JkKV0KKyAgICAgICAgICAgIHBhcmFtX25hbWUgPSBwb3NzaWJsZVswXQorICAgICAgICAgICAgcGFyYW0gPSBwYXJhbXNbcGFyYW1fbmFtZV0KKyAgICAgICAgICAgICAKKyAgICAgICAgICAgIGlmIChwYXJhbVsndHlwZSddICE9ICdmbGFnJyk6CisgICAgICAgICAgICAgICAgaWYgKGZpbmFsKToKKyAgICAgICAgICAgICAgICAgICAgYXJndW1lbnQgPSB0ZXh0CisgICAgICAgICAgICAgICAgICAgIGlmIChwYXJhbVsndHlwZSddID09ICdlbnVtJyk6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gW3ggCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIHBhcmFtWyd2YWx1ZXMnXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeC5zdGFydHN3aXRoKGFyZ3VtZW50KV0KKyAgICAgICAgICAgICAgICAgICAgZWxpZiBhcmd1bWVudCA9PSAnJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmICgnc3ludGF4X2hlbHAnIGluIHBhcmFtKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByaW50X2NvbXBsZXRpb25faGVscChwYXJhbVsnc3ludGF4X2hlbHAnXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoJ1slcyBhcmd1bWVudF0nICUgd29yZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIGkgKz0gMQorICAgICAgICAgICAgaSArPSAxCisKKyAgICAgICAgcmV0dXJuIFt4IGZvciB4IGluIHBhcmFtcyBpZiB4LnN0YXJ0c3dpdGgodGV4dCldCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgcGFyc2Vfb3B0aW9uYWxfcGFyYW1ldGVycworICAgICMKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHBhcnNlX29wdGlvbmFsX3BhcmFtZXRlcnMocGFyYW1zLCB3b3Jkcyk6CisgICAgICAgIHBhcnNlZCA9IHt9CisgICAgICAgIGkgPSAwCisgICAgICAgIHdoaWxlIGkgPCBsZW4od29yZHMpOgorICAgICAgICAgICAgd29yZCA9IHdvcmRzW2ldCisgICAgICAgICAgICBwb3NzaWJsZSA9IFt4IGZvciB4IGluIHBhcmFtcyBpZiB4LnN0YXJ0c3dpdGgod29yZCldCisgICAgICAgICAgICBpZiBsZW4ocG9zc2libGUpID09IDA6CisgICAgICAgICAgICAgICAgcmFpc2UgUGFyYW1FeGNlcHRpb24oJ3Vua25vd24gb3B0aW9uOiAlcycgJSB3b3JkKQorICAgICAgICAgICAgZWxpZiBsZW4ocG9zc2libGUpID4gMToKKyAgICAgICAgICAgICAgICByYWlzZSBQYXJhbUV4Y2VwdGlvbignYW1iaWd1b3VzIG9wdGlvbjogJXNcbiVzJyAlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3b3JkLCAiXG4iLmpvaW4ocG9zc2libGUpKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcGFyYW1fbmFtZSA9IHBvc3NpYmxlWzBdCisgICAgICAgICAgICAgICAgcGFyYW0gPSBwYXJhbXNbcGFyYW1fbmFtZV0KKyAgICAgICAgICAgICAgICBpZiAocGFyYW1bJ3R5cGUnXSA9PSAnZmxhZycpOgorICAgICAgICAgICAgICAgICAgICBwYXJzZWRbcGFyYW1fbmFtZV0gPSBUcnVlCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgaSsxIDwgbGVuKHdvcmRzKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50ID0gd29yZHNbaSsxXQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtWyd0eXBlJ10gPT0gJ3N0cmluZycpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFtwYXJhbV9uYW1lXSA9IGFyZ3VtZW50CisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIChwYXJhbVsndHlwZSddID09ICdpbnQnKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFtwYXJhbV9uYW1lXSA9IGludChhcmd1bWVudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgUGFyYW1FeGNlcHRpb24oJ29wdGlvbiAlcyByZXF1aXJlcyAnICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnRlZ2VyIGFyZ3VtZW50JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIHdvcmQpCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIChwYXJhbVsndHlwZSddID09ICdlbnVtJyk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnX3Bvc3NpYmxlID0gW3ggCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIHBhcmFtWyd2YWx1ZXMnXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeC5zdGFydHN3aXRoKGFyZ3VtZW50KV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVuKGFyZ19wb3NzaWJsZSkgPT0gMCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFBhcmFtRXhjZXB0aW9uKCdvcHRpb24gJXMgdmFsdWUgbXVzdCBiZSBpbiAoJXMpJyAlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod29yZCwiLCAiLmpvaW4ocGFyYW1bJ3ZhbHVlcyddKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiAobGVuKGFyZ19wb3NzaWJsZSkgPiAxKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgUGFyYW1FeGNlcHRpb24oJ2FtYmlndW91cyBvcHRpb24gJXMgdmFsdWU6XG4lcycgJSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdvcmQsICJcbiIuam9pbihhcmdfcG9zc2libGUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWRbcGFyYW1fbmFtZV0gPSBhcmdfcG9zc2libGVbMF0KKyAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gMQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgUGFyYW1FeGNlcHRpb24oJ29wdGlvbiAlcyByZXF1aXJlcyBhbiBhcmd1bWVudCcgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSB3b3JkKQorICAgICAgICAgICAgaSArPSAxCisgICAgICAgIHJldHVybiBwYXJzZWQKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBhbm5vdGF0ZWRfb2JqX3R5cGVfaWQKKyAgICAjCisgICAgIyAgR2l2ZW4gYW4gaWQncyB2YWx1ZSBmb3IgYSBjb21wb3VuZCBrZXksIGNyYWNrIHRoZSB2YWx1ZSBpbnRvCisgICAgIyAgcGFydHMsIGFuZCBhbm5vdGF0ZSBlYWNoIHBhcnQgd2l0aCB0aGUgY29tcG91bmQga2V5IG5hbWUuCisgICAgIworICAgICMgIEZvciAnTm90IEZvdW5kJyBlcnJvcnMsIHRoZSBvYmpfdHlwZSBpcyBrbm93biwgYWxvbmcgd2l0aCB0aGUgdmFsdWUKKyAgICAjICBmb3IgdGhlIGlkIHdoaWNoIHdhc24ndCBmb3VuZC4gIElmIHRoaXMgaXMgYW4gaWQgd2l0aCBhIGNvbXBvdW5kIGtleSwKKyAgICAjICBsZWFraW5nIGluZm9ybWF0aW9uIGFib3V0IHRoZSBrZXkncyBpbXBsZW1lbnRpaW9uIHNob3VsZCBiZSBhdm9pZGVkLiAKKyAgICAjICBIZXJlIHRoZSBrZXkncyB2YWx1ZSBpcyBjcmFja2VkIGJhc2VkIG9uIHRoZSBjb21wb3NpdGlvbiBjaGFyYWN0ZXIsCisgICAgIyAgYW5kIHRoZSBpdGVtcyBhcmUgZGlzcGxheWVkIHdpdGggdGhlaXIga2V5LXZhbHVlIG5hbWUuCisgICAgIyAgZWc6IEVycm9yOiBOb3QgRm91bmQgdm5zOnhYeCBydWxlLWlkOnNuYXBwbGUgICh2bnMtaW50ZXJmYWNlLXJ1bGUpCisgICAgIworICAgIGRlZiBhbm5vdGF0ZWRfb2JqX3R5cGVfaWQoc2VsZiwgb2JqX3R5cGUsIGVycm9yKToKKyAgICAgICAga2V5ID0gbWkucGsob2JqX3R5cGUpCisgICAgICAgIGlmIG1pLmlzX2NvbXBvdW5kX2tleShvYmpfdHlwZSwga2V5KToKKyAgICAgICAgICAgIHJlc3VsdCA9IHsga2V5IDogZXJyb3J9CisgICAgICAgICAgICBtaS5zcGxpdF9jb21wb3VuZF9pbnRvX2RpY3Qob2JqX3R5cGUsIGtleSwgcmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuICcsICcuam9pbihbIiVzOiVzIiAlIHR1cGxlKHgpIGZvciB4IGluIHJlc3VsdC5pdGVtcygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHhbMF0gIT0ga2V5XSkKKyAgICAgICAgcmV0dXJuIGVycm9yCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMKKyAgICBkZWYgZmluZF9tYXN0ZXIoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gYSBkaWN0aW9uYXJ5IHdpdGggdHdvIGl0ZW1zOiAnbWFzdGVyJywgYW5kICdpcHMnCisgICAgICAgICdtYXN0ZXInIGlkZW50aWZlcyB0aGUgaXAgYWRkcmVzcyBvZiB0aGUgbWFzdGVyLCBhIHN0cmluZworICAgICAgICB3aGljaCBpcyBhbiBpcCBhZGRyZXNzLCBvciBOb25lLgorICAgICAgICAnaXBzJyBpcyBhIGxpc3Qgb2YgaW50ZXJmYWNlIHJvd3Mgd2l0aCBwb3B1bGF0ZWQgaXAgYWRkcmVzc2VzLgorICAgICAgICAiIiIKKyAgICAgICAgIyBjb2xsZWN0IGFsbCB0aGUgY29udHJvbGxlci1pbnRlcmZhY2VzCisgICAgICAgIGlwcyA9IFt4IGZvciB4IGluIGxvY2FsX2ludGVyZmFjZXNfZmlyZXdhbGxfb3BlbigndGNwJywgWzgwLCA4MDAwXSwgJ2FsbCcpCisgICAgICAgICAgICAgICBpZiAoeFsnaXAnXSAhPSAnJyBvciB4WydkaXNjb3ZlcmVkLWlwJ10gIT0gJycpXQorCisgICAgICAgIG1hc3RlciA9IE5vbmUKKyAgICAgICAgZm9yIGlwIGluIGlwczoKKyAgICAgICAgICAgIGlmIGlwWydpcCddICE9ICcnOgorICAgICAgICAgICAgICAgIHVybCA9ICJodHRwOi8vJXMvcmVzdC92MS9zeXN0ZW0vaGEvcm9sZSIgJSBpcFsnaXAnXQorICAgICAgICAgICAgaWYgaXBbJ2Rpc2NvdmVyZWQtaXAnXSAhPSAnJzogIyBzZWxlY3QgZGlzY292ZXJlZCBpcCBvdmVyIGlwCisgICAgICAgICAgICAgICAgdXJsID0gImh0dHA6Ly8lcy9yZXN0L3YxL3N5c3RlbS9oYS9yb2xlIiAlIGlwWydkaXNjb3ZlcmVkLWlwJ10KKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuc3RvcmUucmVzdF9zaW1wbGVfcmVxdWVzdCh1cmwsIHVzZV9jYWNoZSA9IEZhbHNlKQorICAgICAgICAgICAgc2VsZi5jaGVja19yZXN0X3Jlc3VsdChyZXN1bHQpCisgICAgICAgICAgICBoYV9yb2xlID0ganNvbi5sb2FkcyhyZXN1bHQpCisgICAgICAgICAgICBpZiBoYV9yb2xlWydyb2xlJ10gPT0gJ01BU1RFUic6CisgICAgICAgICAgICAgICAgaWYgaXBbJ2lwJ10gIT0gJyc6CisgICAgICAgICAgICAgICAgICAgIG1hc3RlciA9IGlwWydpcCddCisgICAgICAgICAgICAgICAgaWYgaXBbJ2Rpc2NvdmVyZWQtaXAnXSAhPSAnJzoKKyAgICAgICAgICAgICAgICAgICAgbWFzdGVyID0gaXBbJ2Rpc2NvdmVyZWQtaXAnXQorCisgICAgICAgIHJldHVybiB7J21hc3Rlcic6IG1hc3RlciwgJ2lwcyc6IGlwc30KKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyByZXN0X2Vycm9yX3RvX2RpY3QKKyAgICAjICAgVHVybiBhbiBleGNlcHRpb24gaW50byBhbiBlcnJvciBkaWN0aW9uYXJ5LCB3aGljaCBjYW4gbGF0ZXIgYmUgcHJpbnRlZC4KKyAgICAjICAgdXNpbmcgcmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoKS4gIAorICAgICMKKyAgICBkZWYgcmVzdF9lcnJvcl90b19kaWN0KHNlbGYsIGUsIGRldGFpbD1Ob25lKToKKyAgICAgICAgZXJyb3JzID0gTm9uZQorICAgICAgICAjIHRyeSB0byBpZGVudGlmaWZ5IHZhbGlkYXRpb24gcmVxdWVzdHMKKyAgICAgICAgaWYgaXNpbnN0YW5jZShlLCBodHRwbGliLkJhZFN0YXR1c0xpbmUpOgorICAgICAgICAgICAgZXJyb3JzID0geydjb25uZWN0aW9uX2Vycm9yJyA6ICdSRVNUIEFQSSBzZXJ2ZXIgJXM6ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2VydmVyIG5vdCBydW5uaW5nJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb250cm9sbGVyfQorICAgICAgICAgICAgcmV0dXJuIGVycm9ycworCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShlLCB1cmxsaWIyLkhUVFBFcnJvcik6CisgICAgICAgICAgICBjb2RlID0gZS5jb2RlCisgICAgICAgICAgICBlcnJvcl9yZXR1cm5lZCA9IGUucmVhZGxpbmUoKQorCisgICAgICAgICAgICBpZiBjb2RlID09IDQwNDoKKyAgICAgICAgICAgICAgICBpZiBkZXRhaWw6CisgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IHsnbm90X2ZvdW5kX2Vycm9yJyA6ICdOb3QgRm91bmQ6ICVzJyAlIGRldGFpbH0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSB7J25vdF9mb3VuZF9lcnJvcicgOiAnTm90IEZvdW5kOiAlcycgJSBlcnJvcl9yZXR1cm5lZH0KKyAgICAgICAgICAgIGVsaWYgY29kZSA9PSA1MDAgb3IgY29kZSA9PSA0MDM6CisgICAgICAgICAgICAgICAgIyB0cmFjZWJhY2sucHJpbnRfc3RhY2soKQorICAgICAgICAgICAgICAgIGVycm9ycyA9IHsnY29ubmVjdGlvbl9lcnJvcicgOiAnUkVTVCBBUEkgc2VydmVyICVzIGZhaWx1cmU6ICVzJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5jb250cm9sbGVyLCBlcnJvcl9yZXR1cm5lZCl9CisgICAgICAgICAgICBlbGlmIGNvZGUgPT0gNDAwOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0ganNvbi5sb2FkcyhlcnJvcl9yZXR1cm5lZCkKKyAgICAgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgICAgICMgaWYgdGhlIGVycm9yIGNhbid0IGJlIGNvbnZlcnRlZCBpbnRvIGEgZGljdGlvbmFyeSwgdGhlbiBpbWJlZCB0aGUgY29tcGxldGUKKyAgICAgICAgICAgICAgICAgICAgIyBlcnJvcnMgYXMgdGhlIHZhbHVlIGZvciBhIHNwZWNpZmljIGVycm9yIGtleS4KKyAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0geydlcnJvcl9yZXN1bHRfZXJyb3InOiAiQ2FuJ3QgY29udmVydCByZXR1cm5lZCBlcnJvcjogJXMiICUgZXJyb3JfcmV0dXJuZWR9CisgICAgICAgICAgICBlbGlmIGNvZGUgPT0gMzAxOgorICAgICAgICAgICAgICAgIGVycm9ycyA9IHsnbW92ZWRfZXJyb3InOiAnSHR0cEVycm9yIE1vdmVkIFBlcm1hbmVudGx5ICVzJyAlIGV9CisgICAgICAgICAgICBlbGlmIGNvZGUgPT0gMzAzOgorICAgICAgICAgICAgICAgICMgQXR0ZW1wdCB0byBkZXRlcm1pbmUgd2hhdCBsaXN0IG9mIGlwIGFkZHJlc3NlcyBpcyBmb3IKKyAgICAgICAgICAgICAgICAjIHRoZSBjb250cm9sbGVyLCB0cnkgdG8gZmluZCB0aGUgTWFzdGVyLiAgaWYgYW55IGZhaWx1cmUgCisgICAgICAgICAgICAgICAgIyBvY2N1cnMgYW55d2hlcmUsIGRyb3AgZG93biB0byBhIHNpbXBsZSBlcnJvciBtZXNzYWdlLgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgbWluZm8gPSBzZWxmLmZpbmRfbWFzdGVyKCkKKyAgICAgICAgICAgICAgICAgICAgaXBzID0gW3hbJ2lwJ10gZm9yIHggaW4gbWluZm9bJ2lwcyddXQorICAgICAgICAgICAgICAgICAgICBtYXN0ZXIgPSBtaW5mb1snbWFzdGVyJ10KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgaWYgbWFzdGVyOgorICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0geydzZWVfb3RoZXInOiAnVGhpcyBjb250cm9sbGVyIGlzIGluIFNMQVZFICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbW9kZS4gVGhlIGNvbW1hbmQgbXVzdCBiZSBydW4gaW4gTUFTVEVSIG1vZGUuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbk1BU1RFUiBhdCAlcycgJSBtYXN0ZXJ9CisgICAgICAgICAgICAgICAgICAgIGVsaWYgbGVuKGlwcyk6CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSB7J3NlZV9vdGhlcic6ICdUaGlzIGNvbnRyb2xsZXIgaXMgaW4gU0xBVkUgbW9kZS4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RoZSBjb21tYW5kIG11c3QgYmUgcnVuIGluIE1BU1RFUiBtb2RlLicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbk5vIE1BU1RFUiBmb3VuZCwgcG9zc2libGUgaXBcJ3MgJXMnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgnLCAnLmpvaW4oaXBzKSl9CisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSB7J3NlZV9vdGhlcic6ICdUaGlzIGNvbnRyb2xsZXIgaXMgaW4gU0xBVkUgbW9kZS4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RoZSBjb21tYW5kIG11c3QgYmUgcnVuIGluIE1BU1RFUiBtb2RlLicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbk5vIE1BU1RFUiBjdXJyZW50bHkgZXhpc3RzICd9CisgICAgICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSB7J3NlZV9vdGhlcic6ICdUaGlzIGNvbnRyb2xsZXIgaXMgaW4gU0xBVkUgbW9kZS4gJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1RoZSBjb21tYW5kIG11c3QgYmUgcnVuIGluIE1BU1RFUiBtb2RlLicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdcbk5vIGlwIGFkZHJlc3NlcyBmb3IgY29udHJvbGxlciBhdmFpbGFibGUnfQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBlcnJvcnMgPSB7J3Vua25vd25fZXJyb3InOiAnSHR0cEVycm9yICVzJyAlIGVycm9yX3JldHVybmVkfQorICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZSwgTm90Rm91bmQpOgorICAgICAgICAgICAgaWYgZS5vYmpfdHlwZSBpbiBtaS5vYmpfdHlwZV9pbmZvX2RpY3Q6CisgICAgICAgICAgICAgICAgZXJyb3JzID0geydub3RfZm91bmRfZXJyb3InIDogJ05vdCBGb3VuZDogJXMgKCVzKScgJSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5hbm5vdGF0ZWRfb2JqX3R5cGVfaWQoZS5vYmpfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5uYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZS5vYmpfdHlwZSl9CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGVycm9ycyA9IHsnbm90X2ZvdW5kX2Vycm9yJyA6ICdOb3QgRm91bmQ6ICVzICglcyknICUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGUubmFtZSwgZS5vYmpfdHlwZSl9CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBzZWxmLmRlYnVnIG9yIHNlbGYuZGVidWdfYmFja3RyYWNlOgorICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9zdGFjaygpCisgICAgICAgICAgICBlcnJvcnMgPSB7J3Vua25vd25fZXJyb3InOiAiTmVlZCBlcnJvciBtYW5hZ2VtZW50IGZvciBlcnJvciAlcyIgJSB0eXBlKGUpfQorCisgICAgICAgIHJldHVybiBlcnJvcnMKKworICAgICMKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgcmVzdF9lcnJvcl9pc19ub3RfZm91bmQKKyAgICAjICBSZXR1cm4gVHJ1ZSBpZiB0aGlzIHNwZWNpZmljIGVycm9yIHdhcyB0aGUgcmVzdWx0IG9mIGEgbm90LWZvdW5kIHNpdHVhdGlvbgorICAgICMKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHJlc3RfZXJyb3JfaXNfbm90X2ZvdW5kKHJlc3RfZXJyb3JfZGljdCk6CisgICAgICAgIGlmICdub3RfZm91bmRfZXJyb3InIGluIHJlc3RfZXJyb3JfZGljdDoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlCisgICAgIyAgIFR1cm4gYW4gcmVzdF9lcnJvcl9kaWN0IHJldHVybmVkIGZyb20gcmVzdF9lcnJvcl90b19kaWN0CisgICAgIyAgIGludG8gYW4gZXJyb3IgbWVzc2FnZSB3aGljaCBjYW4gZ2UgcHJpbnRlZC4gIENvZGUgYXNzdW1lcyBtdWx0aXBsZSBlcnJvcnMKKyAgICAjICAgd29uJ3Qgb2NjdXI7IGlmIGEgJ2ZpZWxkX2Vycm9yJyBleGlzdHMsIGZvciBleGFtcGxlLCBhICdtb2RlbF9lcnJvcicgd29uJ3QKKyAgICAjICAgYWxzbyBiZSBwb3N0ZWQgaW4gdGhlIGVycm9yCisgICAgIworICAgIGRlZiByZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShzZWxmLCByZXN0X2Vycm9yX2RpY3QpOgorICAgICAgICBpZiByZXN0X2Vycm9yX2RpY3QgPT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiByZXN0X2Vycm9yX2RpY3QKKyAgICAgICAgZXJyb3JfbXNnID0gIiIKKyAgICAgICAgaWYgJ2ZpZWxkX2Vycm9ycycgaW4gcmVzdF9lcnJvcl9kaWN0OgorICAgICAgICAgICAgZm9yIChrLCB2KSBpbiByZXN0X2Vycm9yX2RpY3RbJ2ZpZWxkX2Vycm9ycyddLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgZXJyb3JfbXNnICs9ICJTeW50YXggZXJyb3I6IGZpZWxkICVzOiAlcyIgJSAoaywgdikKKyAgICAgICAgICAgICMgdHJhY2ViYWNrLnByaW50X3N0YWNrKCksIHRvIGZpbmQgb3V0IHdoeSB0aGUgZXJyb3Igb2NjdXJlZAorICAgICAgICBlbGlmICdtb2RlbF9lcnJvcicgaW4gcmVzdF9lcnJvcl9kaWN0OgorICAgICAgICAgICAgZXJyb3JfbXNnICs9ICIlcyIgJSByZXN0X2Vycm9yX2RpY3RbJ21vZGVsX2Vycm9yJ10KKyAgICAgICAgZWxpZiAnbm90X2ZvdW5kX2Vycm9yJyBpbiByZXN0X2Vycm9yX2RpY3Q6CisgICAgICAgICAgICBlcnJvcl9tc2cgKz0gIkVycm9yOiAlcyIgJSByZXN0X2Vycm9yX2RpY3RbJ25vdF9mb3VuZF9lcnJvciddCisgICAgICAgIGVsaWYgJ2Nvbm5lY3Rpb25fZXJyb3InIGluIHJlc3RfZXJyb3JfZGljdDoKKyAgICAgICAgICAgIGVycm9yX21zZyArPSByZXN0X2Vycm9yX2RpY3RbJ2Nvbm5lY3Rpb25fZXJyb3InXQorICAgICAgICBlbGlmICdlcnJvcl9yZXN1bHRfZXJyb3InIGluIHJlc3RfZXJyb3JfZGljdDoKKyAgICAgICAgICAgIGVycm9yX21zZyArPSByZXN0X2Vycm9yX2RpY3RbJ2Vycm9yX3Jlc3VsdF9lcnJvciddCisgICAgICAgIGVsaWYgJ21vdmVkX2Vycm9yJyBpbiByZXN0X2Vycm9yX2RpY3Q6CisgICAgICAgICAgICBlcnJvcl9tc2cgKz0gcmVzdF9lcnJvcl9kaWN0Wydtb3ZlZF9lcnJvciddCisgICAgICAgIGVsaWYgJ3NlZV9vdGhlcicgaW4gcmVzdF9lcnJvcl9kaWN0OgorICAgICAgICAgICAgZXJyb3JfbXNnICs9IHJlc3RfZXJyb3JfZGljdFsnc2VlX290aGVyJ10KKyAgICAgICAgZWxpZiAndW5rbm93bl9lcnJvcicgaW4gcmVzdF9lcnJvcl9kaWN0OgorICAgICAgICAgICAgZXJyb3JfbXNnICs9IHJlc3RfZXJyb3JfZGljdFsndW5rbm93bl9lcnJvciddCisgICAgICAgIGVsaWYgJ2Rlc2NyaXB0aW9uJyBpbiByZXN0X2Vycm9yX2RpY3QgYW5kICBcCisgICAgICAgICAgcmVzdF9lcnJvcl9kaWN0WyJkZXNjcmlwdGlvbiJdID09ICdzYXZlZCc6CisgICAgICAgICAgICAjIG5vdCBhbiBlcnJvcjogeyAnZGVzY3JpcHRpb24nIDogJ3NhdmVkJyB9CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBlbGlmICdlcnJvcl90eXBlJyBpbiByZXN0X2Vycm9yX2RpY3Q6ICMgaHR0cCA0MDAgZXJyb3JzCisgICAgICAgICAgICBkZXNjcmlwdGlvbiA9IHJlc3RfZXJyb3JfZGljdFsnZGVzY3JpcHRpb24nXQorICAgICAgICAgICAgaWYgZGVzY3JpcHRpb24uc3RhcnRzd2l0aCgnRXJyb3I6ICcpOgorICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gZGVzY3JpcHRpb25bbGVuKCdFcnJvcjogJyk6XQorICAgICAgICAgICAgcmV0dXJuICclcyAoJXMpJyAlIChkZXNjcmlwdGlvbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdF9lcnJvcl9kaWN0WydlcnJvcl90eXBlJ10pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlcnJvcl9tc2cgPSAiUkVTVCBBUEkgc2VydmVyIG9uIGNvbnRyb2xsZXItbm9kZSAlcyAiICUgc2VsZi5jb250cm9sbGVyCisgICAgICAgICAgICBlcnJvcl9tc2cgKz0gImhhZCAlcyBlcnJvcjpcbiIgJSByZXN0X2Vycm9yX2RpY3RbJ2Vycm9yX3R5cGUnXQorICAgICAgICAgICAgZXJyb3JfbXNnICs9IHJlc3RfZXJyb3JfZGljdFsnZGVzY3JpcHRpb24nXQorICAgICAgICByZXR1cm4gZXJyb3JfbXNnCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMKKyAgICAjIENvbW1hbmRzIG9mIHRoZSBDTEkuIEEgY29tbWFuZCAiZm9vIiBzaG91bGQgaGF2ZSB0d28gbWV0aG9kczoKKyAgICAjICAgY3BfZm9vKHNlbGYsIHRleHQsIHN0YXRlKSAtIGNvbXBsZXRpb24gZm9yIHRoaXMgY29tbWFuZCwgcmV0dXJuIGxpc3Qgb2Ygb3B0aW9ucworICAgICMgICBkb19mb28oc2VsZiwgbGluZSkgLSBleGVjdXRlIHRoZSBjb21tYW5kCisgICAgIworICAgICMgR2l2ZW4gYSBzdHJpbmcgJ3dvcmQnLCBub3QgY29udGFpbmluZyBhbnkgc3BhY2VzLCBub3IgYW55IGJyZWFrCisgICAgIyAgY2hhcmFjdGVycyBhc3NvY2lhdGVkIHdpdGggcHl0aG9uLCByZXR1cm4gdGhlIGEgaW52b2NhYmxlIG1ldGhvZAorICAgICMgIG5vdGUgdGhhdCAnLScgYXJlIHBlcm1pdHRlZCwgYW5kIGNvbnZlcnRlZCB0byAnXycncworICAgICMKKyAgICAjIFdoZW4gaW4gdGhlIHZucyBvciB2bnMtZGVmaW5pdGlvbiBtb2RlLCB0aGUgc2VsZWN0ZWQgZnVuY3Rpb25zCisgICAgIyAgdG8gY2FsbCBiYWNrIGhhdmUgYW4gYWRkaXRpb25hbCBjb21wb25lbnQgYWRkZWQgdG8gdGhlIGNhbGxlZAorICAgICMgIGJhY2sgZnVuY3Rpb24uICBJbiB0aGUgbm9uLXZucyBjYXNlLCBmb3IgZXhhbXBsZSwgdGhlICJzaG93IgorICAgICMgIGNvbW1hbmQgd291bGQgcmVzdWx0IGluIGEgbWV0aG9kIGNhbGxlZCBkb19zaG93LCB3aGlsZSBpbiB0aGUKKyAgICAjICB2bnMgbW9kZXMsICd2bnNfJyBpbiBpbnNlcnRlZCBiZXR3ZWVuIHRoZSAndmVyYicgYW5kIHRoZSBub3VuLAorICAgICMgIGZvciBleGFtcGxlLCByZXN1bHRpbmcgaW4gJ2RvX3Zuc19zaG93JworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIG1ldGhvZF9mcm9tX25hbWUKKyAgICAjCisgICAgZGVmIG1ldGhvZF9mcm9tX25hbWUoc2VsZiwgcHJlZml4LCBuYW1lKToKKyAgICAgICAgaWYgdHlwZShuYW1lKSAhPSBzdHI6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBpZiBzZWxmLmluX2NvbmZpZ19zdWJtb2RlKCJjb25maWctdm5zIikgYW5kIFwKKyAgICAgICAgICAgZ2V0YXR0cihzZWxmLCBwcmVmaXggKyAidm5zXyIgKyBuYW1lLnJlcGxhY2UoIi0iLCJfIiksIE5vbmUpOgorICAgICAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZiwgcHJlZml4ICsgInZuc18iICsgbmFtZS5yZXBsYWNlKCItIiwiXyIpKQorICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLCBwcmVmaXgrbmFtZS5yZXBsYWNlKCItIiwiXyIpLCBOb25lKQorICAgICAgICAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgY29tbWFuZF9tZXRob2RfZnJvbV9uYW1lCisgICAgIworICAgIGRlZiBjb21tYW5kX21ldGhvZF9mcm9tX25hbWUoc2VsZiwgbmFtZSk6CisgICAgICAgIHJldHVybiBzZWxmLm1ldGhvZF9mcm9tX25hbWUoImRvXyIsIG5hbWUpICAgICAgICAgICAgICAgIyBkb19YWFggbWV0aG9kcworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNvbW1hbmRfc2hvd19tZXRob2RfZnJvbV9uYW1lCisgICAgIworICAgIGRlZiBjb21tYW5kX3Nob3dfbWV0aG9kX2Zyb21fbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYubWV0aG9kX2Zyb21fbmFtZSgiZG9fc2hvd18iLCBuYW1lKSAgICAgICAgICAjIGRvX3Nob3dfWFhYIG1ldGhvZHMKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBjbG91ZF9tZXRob2RfZnJvbV9uYW1lCisgICAgIworICAgIGRlZiBjbG91ZF9tZXRob2RfZnJvbV9uYW1lKHNlbGYsIG5hbWUpOgorICAgICAgICByZXR1cm4gc2VsZi5tZXRob2RfZnJvbV9uYW1lKCJjbG91ZF8iLCBuYW1lKSAgICAgICAgICAgICMgY2xvdWRfWFhYIG1ldGhvZHMKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBjb21wbGV0aW9uX21ldGhvZF9mcm9tX25hbWUKKyAgICAjCisgICAgZGVmIGNvbXBsZXRpb25fbWV0aG9kX2Zyb21fbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYubWV0aG9kX2Zyb21fbmFtZSgiY3BfIiwgbmFtZSkgICAgICAgICAgICAgICAjIGNwX1hYWCAoY29tcGxldGlvbikgbWV0aG9kcworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNvbXBsZXRpb25fc2hvd19tZXRob2RfZnJvbV9uYW1lCisgICAgIworICAgIGRlZiBjb21wbGV0aW9uX3Nob3dfbWV0aG9kX2Zyb21fbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgcmV0dXJuIHNlbGYubWV0aG9kX2Zyb21fbmFtZSgiY3Bfc2hvd18iLCBuYW1lKSAgICAgICAgICAjIGNwX3Nob3dfWFhYIChjb21wbGV0aW9uKSBtZXRob2RzCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgdW5pcXVlX2tleV9mcm9tX25vbl91bmlxdWUKKyAgICAjCisgICAgIyBQcmltYXJ5IGtleXMgZm9yIGNhc3NhbmRyYSBmb3Igc29tZSBrZXlzIGFyZSBjb250ZW5hdGlvbnMgb2YKKyAgICAjICBzZXZlcmFsIG5vbi11bmlxdWUga2V5cyBzZXBhcmF0ZWQgYnkgYSBjaGFyYWN0ZXIgbm90IHVzZWQgZm9yCisgICAgIyAgYW55IG90aGVyIHB1cnBvc2UgKGluIHRoaXMgY2FzZSAnfCcpLiAgVGhlIGNvbmNhdGVuYXRpb24KKyAgICAjICBvZiBub24tdW5pcXVlIGtleXMgaXMgaW50ZW5kZWQgdG8gY3JlYXRlIGEgdW5pcXVlIGtleS4KKyAgICAjCisgICAgZGVmIHVuaXF1ZV9rZXlfZnJvbV9ub25fdW5pcXVlKHNlbGYsIHdvcmRzKToKKyAgICAgICAgcmV0dXJuICJ8Ii5qb2luKHdvcmRzKQorICAgIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBwcmVmaXhfc2VhcmNoX2tleQorICAgICMgIFByZWZpeCdzIG9mIHByaW1hcnkga2V5cyBmb3Iga2V5cydzIGJ1aWx0IHRocm91Z2ggdW5pcXVlX2tleV9mcm9tX25vbl91bmlxdWUoKQorICAgICMKKworICAgIGRlZiBwcmVmaXhfc2VhcmNoX2tleShzZWxmLCB3b3Jkcyk6CisgICAgICAgIHJldHVybiBzZWxmLnVuaXF1ZV9rZXlfZnJvbV9ub25fdW5pcXVlKHdvcmRzKSArICJ8IgorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGltcGxlbWVudF9jb25uZWN0CisgICAgIworICAgIGRlZiBpbXBsZW1lbnRfY29ubmVjdChzZWxmLCBkYXRhKToKKyAgICAgICAgbmV3X2lwID0gZGF0YS5nZXQoJ2lwLWFkZHJlc3MnKQorICAgICAgICBpZiBuZXdfaXAgPT0gTm9uZToKKyAgICAgICAgICAgIG5ld19pcCA9IGRhdGEuZ2V0KCdjb250cm9sbGVyLWlkJykKKyAgICAgICAgaWYgbm90IHNlbGYuSVBfQUREUl9SRS5tYXRjaChuZXdfaXApOgorICAgICAgICAgICAgY29udHJvbGxlcl9pZCA9IGFsaWFzX2xvb2t1cCgnY29udHJvbGxlci1hbGlhcycsIG5ld19pcCkKKworICAgICAgICAgICAgaWYgY29udHJvbGxlcl9pZCA9PSBOb25lOgorICAgICAgICAgICAgICAgIGNvbnRyb2xsZXJfaWQgPSBuZXdfaXAKKworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGlmcyA9IHNlbGYucmVzdF9xdWVyeV9vYmplY3RzKCdjb250cm9sbGVyLWludGVyZmFjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAnY29udHJvbGxlcicgOiBjb250cm9sbGVyX2lkIH0gKQorICAgICAgICAgICAgICAgIGlmIGxlbihpZnMpID09IDE6CisgICAgICAgICAgICAgICAgICAgIG5ld19pcCA9IGlmc1swXVsnaXAnXQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygnQ2FuXCd0IGZpbmQgY29udHJvbGxlciBuYW1lZCAlcycgJSBuZXdfaXApCisgICAgICAgICAgICAgICAgcGFzcworCisgICAgICAgIGlmICdwb3J0JyBpbiBkYXRhOgorICAgICAgICAgICAgbmV3X2lwICs9IHN0cihkYXRhWydwb3J0J10pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuZXdfaXAgKz0gIjo4MCIKKyAgICAgICAgIworICAgICAgICAjIHJlcXVlc3QgdGhlIHZlcnNpb24sIGlmIGl0IGZhaWxzLCB0aGVuIGRvbid0IGFsbG93IHRoZSBzd2l0Y2gKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdmVyc2lvbl91cmwgPSAnaHR0cDovLyVzL3Jlc3QvdjEvc3lzdGVtL3ZlcnNpb24nICUgbmV3X2lwCisgICAgICAgICAgICBkYXRhID0gc2VsZi5yZXN0X3NpbXBsZV9yZXF1ZXN0X3RvX2RpY3QodmVyc2lvbl91cmwpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coJ0NvdWxkIG5vdCBjb25uZWN0IHRvICVzJyAlIG5ld19pcCkKKworICAgICAgICBzZWxmLmNvbnRyb2xsZXIgPSBuZXdfaXAKKyAgICAgICAgc2VsZi5zdG9yZS5zZXRfY29udHJvbGxlcihuZXdfaXApCisgICAgICAgIHNlbGYuc2V0X2NvbnRyb2xsZXJfZm9yX3Byb21wdCgpCisgICAgICAgIHdoaWxlIChzZWxmLmN1cnJlbnRfbW9kZSgpICE9ICJsb2dpbiIpOgorICAgICAgICAgICAgc2VsZi5wb3BfbW9kZSgpCisgICAgICAgIHByaW50ICJTd2l0Y2hpbmcgdG8gY29udHJvbGxlciAlcyIgJSBzZWxmLmNvbnRyb2xsZXIKKworICAgICAgICByZXR1cm4gc2VsZi5wcC5mb3JtYXRfZW50cnkoZGF0YVswXSwgJ3ZlcnNpb24nKQorCisgICAgZGVmIGNwX2V4aXQoc2VsZiwgd29yZHMsIHRleHQsIGNvbXBsZXRpb25fY2hhcik6CisgICAgICAgIHNlbGYucHJpbnRfY29tcGxldGlvbl9oZWxwKCI8Y3I+IikKKworICAgIGRlZiBkb19leGl0KHNlbGYsIHdvcmRzPU5vbmUpOgorICAgICAgICBpZiBzZWxmLm1vZGVfc3RhY2tbLTFdWydleGl0J106CisgICAgICAgICAgICBtZXRob2QgPSBzZWxmLm1vZGVfc3RhY2tbLTFdWydleGl0J10KKyAgICAgICAgICAgIG1ldGhvZCgpCisgICAgICAgIHNlbGYucG9wX21vZGUoKQorCisgICAgZGVmIGNwX2xvZ291dChzZWxmLCB3b3JkcywgdGV4dCwgY29tcGxldGlvbl9jaGFyKToKKyAgICAgICAgc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoIjxjcj4iKQorCisgICAgZGVmIGRvX2xvZ291dChzZWxmLCB3b3Jkcz1Ob25lKToKKyAgICAgICAgc2VsZi5ydW4gPSBGYWxzZQorCisgICAgZGVmIGNwX2VuZChzZWxmLCB3b3JkcywgdGV4dCwgY29tcGxldGlvbl9jaGFyKToKKyAgICAgICAgc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoIjxjcj4iKQorCisgICAgZGVmIGRvX2VuZChzZWxmLCB3b3Jkcz1Ob25lKToKKyAgICAgICAgd2hpbGUgc2VsZi5jdXJyZW50X21vZGUoKS5zdGFydHN3aXRoKCJjb25maWciKToKKyAgICAgICAgICAgIHNlbGYucG9wX21vZGUoKQorCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fc2hvd190dW5uZWwKKyAgICAjICBDb21tYW5kIGRlc2NyaXB0aW9ucyBoYXMgbm8gcHJhY3RpY2FsIHN1cHBvcnQgZm9yIHNob3cgY29tbWFuZHMgeWV0LgorICAgICMKKyAgICBkZWYgZG9fc2hvd190dW5uZWwoc2VsZiwgd29yZHMpOgorICAgICAgICBpZiBsZW4od29yZHMpIDwgMjoKKyAgICAgICAgICAgIHByaW50IHNlbGYuc3ludGF4X21zZygiVXNhZ2U6IHNob3cgdHVubmVsIFsgPHN3aXRjaD4gfCBhbGwgXSBhY3RpdmUiKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIHdvcmRzWzFdICE9ICJhY3RpdmUiOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJVbmtub3duIHJlcXVlc3QgJXMiICUgd29yZHNbMV0pCisKKyAgICAgICAgIyBhY3RpdmUgLS0KKworICAgICAgICBpZiB3b3Jkc1swXSAhPSAnYWxsJzoKKyAgICAgICAgICAgIHdvcmRzWzBdID0gY29udmVydF9hbGlhc190b19vYmplY3Rfa2V5KCJzd2l0Y2giLCB3b3Jkc1swXSkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5yZXN0X3NpbXBsZV9yZXF1ZXN0X3RvX2RpY3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHA6Ly8lcy9yZXN0L3YxL3R1bm5lbC1tYW5hZ2VyLyVzLycgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5jb250cm9sbGVyLCB3b3Jkc1swXSkpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygnQ291bGQgbm90IGxvYWQgdHVubmVsLW1hbmFnZXIgZGV0YWlscycpCisKKyAgICAgICAgaWYgJ2Vycm9yJyBpbiBkYXRhIGFuZCBkYXRhWydlcnJvciddICE9IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coJ3R1bm5lbC1tYW5hZ2VyIHJlc3BvbnNlOiAlcycgJSBkYXRhWydlcnJvciddKQorCisgICAgICAgIGVudHJpZXMgPSBbXQorICAgICAgICBmb3IgZW50cnkgaW4gZGF0YVsndHVubk1hcCddLmtleXMoKToKKyAgICAgICAgICAgIGl0ZW0gPSBkYXRhWyd0dW5uTWFwJ11bZW50cnldCisgICAgICAgICAgICBmb3IgcmVtb3RlIGluIGl0ZW1bJ3R1bm5lbFBvcnRzJ106CisgICAgICAgICAgICAgICAgcmVtb3RlSXAgPSAiJXMuJXMuJXMuJXMiICUgKCBpbnQocmVtb3RlWzM6Nl0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHJlbW90ZVs2OjldKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludChyZW1vdGVbOToxMl0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50KHJlbW90ZVsxMjpdKSkKKyAgICAgICAgICAgICAgICBlbnRyaWVzLmFwcGVuZCh7ICdkcGlkJzogZW50cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9jYWxUdW5uZWxJUEFkZHInIDogaXRlbVsnbG9jYWxUdW5uZWxJUEFkZHInXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0dW5uZWxQb3J0cycgOiByZW1vdGVJcAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisKKyAgICAgICAgcmV0dXJuIHNlbGYuZGlzcGxheV9vYmpfdHlwZV9yb3dzKCd0dW5uZWwtZGV0YWlscycsIGVudHJpZXMpCisgICAgCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgY3Bfc2hvd192bnNfYWNjZXNzX2xpc3RfZW50cnkKKyAgICAjCisgICAgZGVmIGNwX3Nob3dfdm5zX2FjY2Vzc19saXN0X2VudHJ5KHNlbGYsIHdvcmRzLCB0ZXh0LCBjb21wbGV0aW9uX2NoYXIpOgorICAgICAgICByZXR1cm4gc2VsZi5jcF92bnNfYWNjZXNzX2xpc3RfZW50cnkod29yZHMsIHRleHQpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fc2hvd192bnNfYWNjZXNzX2xpc3RfZW50cnkKKyAgICAjCisgICAgZGVmIGRvX3Nob3dfdm5zX2FjY2Vzc19saXN0X2VudHJ5KHNlbGYsIHdvcmRzKToKKyAgICAgICAgd2l0aF9zZWFyY2hfa2V5ID0gIjxub19rZXk+IgorICAgICAgICBpZiBzZWxmLnZuc19uYW1lKCkgaXMgTm9uZToKKyAgICAgICAgICAgIGlmIGxlbih3b3JkcykgPiAwOgorICAgICAgICAgICAgICAgIHNlYXJjaF9vYmplY3QgPSBbInZucy1hY2Nlc3MtbGlzdC1lbnRyeSIsIHdvcmRzWzBdXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWFyY2hfb2JqZWN0ID0gWyJ2bnMtYWNjZXNzLWxpc3QtZW50cnkiXSAKKyAgICAgICAgZWxpZiBsZW4od29yZHMpID4gMDoKKyAgICAgICAgICAgIHdpdGhfc2VhcmNoX2tleSA9ICctJy5qb2luKHdvcmRzKQorICAgICAgICAgICAgd29yZHMuaW5zZXJ0KDAsIHNlbGYuZ2V0X2N1cnJlbnRfbW9kZV9vYmooKSkKKyAgICAgICAgICAgIHNlYXJjaF9vYmplY3QgPSBbInZucy1hY2Nlc3MtbGlzdC1lbnRyeSIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnVuaXF1ZV9rZXlfZnJvbV9ub25fdW5pcXVlKHdvcmRzKV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlYXJjaF9vYmplY3QgPSBbInZucy1hY2Nlc3MtbGlzdC1lbnRyeSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucHJlZml4X3NlYXJjaF9rZXkoW3NlbGYuZ2V0X2N1cnJlbnRfbW9kZV9vYmooKV0pXQorICAgICAgICByZXR1cm4gc2VsZi5kb19zaG93X29iamVjdChzZWFyY2hfb2JqZWN0LCB3aXRoX3NlYXJjaF9rZXkpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fdm5zX25vCisgICAgIyAgaW1wbGVtZW50IHRoZSBubyBjb21tYW5kIHdoaWxlIGluIHRoZSBjb250ZXh0IG9mIHZucy92bnMtZGVmaW5pdGlvbgorICAgICMKKyAgICBkZWYgZG9fdm5zX25vKHNlbGYsIHdvcmRzKToKKyAgICAgICAgaWYgbGVuKHdvcmRzKSA8IDE6CisgICAgICAgICAgICByZXR1cm4gIlN5bnRheDogbm8gPGl0ZW0+IDxrZXk+IDogZGVsZXRlIGZyb20gdGhlIG5hbWVkIGl0ZW0gdGhlIHNwZWNpZmljIGtleSIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHZuc19uYW1lX3RvX3RhYmxlX25hbWUgPSB7ICJpbnRlcmZhY2VzIiAgICAgICAgOiAidm5zLWludGVyZmFjZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaW50ZXJmYWNlLXJ1bGUiICAgIDogInZucy1pbnRlcmZhY2UtcnVsZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWNjZXNzLWxpc3QiICAgICAgIDogInZucy1hY2Nlc3MtbGlzdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWNjZXNzLWxpc3QtZW50cnkiIDogInZucy1hY2Nlc3MtbGlzdC1lbnRyeSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWNjZXNzLWdyb3VwIiAgICAgIDogInZucy1pbnRlcmZhY2UtYWNjZXNzLWxpc3QiLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmIHdvcmRzWzBdIGluIHZuc19uYW1lX3RvX3RhYmxlX25hbWU6CisgICAgICAgICAgICAgICAgaWYgbGVuKHdvcmRzKSA8IDI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU3ludGF4OiBubyAlcyA8aXRlbT4gPGtleT4iICUgd29yZHNbMF0KKyAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgIyB0aGUgaXRlbSB0byByZW1vdmUgaW4gZm9yIGFjY2Vzcy1saXN0LWVudHJ5IGlzIGFuIGludGVnZXIsCisgICAgICAgICAgICAgICAgIyBjYW5vbmljYWxpemUgdGhlIG5hbWUgYmVmb3JlIGl0cyB1c2VkIHRvIHNlYXJjaAorICAgICAgICAgICAgICAgIGlmIHdvcmRzWzBdID09ICdhY2Nlc3MtbGlzdC1lbnRyeSc6CisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuQUNMX1JFLm1hdGNoKHdvcmRzWzFdKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHdvcmRzWzFdID0gc3RyKGludCh3b3Jkc1sxXSkpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coJyVzIGtleSAlcyBtdXN0IGJlIGFuIGludGVnZXInICUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod29yZHNbMF0sIHdvcmRzWzFdKSkKKworICAgICAgICAgICAgICAgIG5hbWUgPSBzZWxmLnVuaXF1ZV9rZXlfZnJvbV9ub25fdW5pcXVlKFtzZWxmLmdldF9jdXJyZW50X21vZGVfb2JqKCksIHdvcmRzWzFdXSkKKyAgICAgICAgICAgICAgICB0YWJsZSA9IHZuc19uYW1lX3RvX3RhYmxlX25hbWVbd29yZHNbMF1dCisgICAgICAgICAgICAgICAgZXJyb3JzID0gTm9uZQorCisgICAgICAgICAgICAgICAgaWYgd29yZHNbMF0gPT0gImVudHJ5IiBhbmQgbm90IHNlbGYuaW5fY29uZmlnX3Zuc19hY2xfbW9kZSgpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5kb19ubyh3b3JkcykgIyBsZXQgZG9fbm8oKSBwcmludCBlcnJvciBtZXNzYWdlcworICAgICAgICAgICAgICAgIGVsaWYgd29yZHNbMF0gPT0gImFjY2Vzcy1ncm91cCIgYW5kIG5vdCBzZWxmLmluX2NvbmZpZ192bnNfaWZfbW9kZSgpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5kb19ubyh3b3JkcykgIyBsZXQgZG9fbm8oKSBwcmludCBlcnJvciBtZXNzYWdlcworCisgICAgICAgICAgICAgICAgIyBhY2Nlc3MtZ3JvdXAvdm5zLWludGVyZmFjZS1hY2Nlc3MtbGlzdCBoYXMgJ2lkJ3Mgd2l0aCBhbiBhZGRpdGlvbmFsIGZpZWxkLAorICAgICAgICAgICAgICAgICMgdGhlIGluLW91dCBwYXJhbWV0ZXIsIHdoaWNoIGlzIHJlcXVpcmVkIHRvIGJlIGFibGUgdG8gZGVsZXRlIHRoZSBlbnRyeQorICAgICAgICAgICAgICAgIGlmIHdvcmRzWzBdID09ICJhY2Nlc3MtZ3JvdXAiOgorICAgICAgICAgICAgICAgICAgICBpZiBsZW4od29yZHMpIDwgMzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnN5bnRheF9tc2coJ25vIGFjY2Vzcy1ncm91cCA8YWNsLW5hbWU+IDxpbnxvdXQ+JykKKyAgICAgICAgICAgICAgICAgICAgY2hvaWNlcyA9IFt4IGZvciB4IGluIFsiaW4iLCAib3V0Il0gaWYgeC5zdGFydHN3aXRoKHdvcmRzWzJdKV0KKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKGNob2ljZXMpICE9IDE6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zeW50YXhfbXNnKCdubyBhY2Nlc3MtZ3JvdXAgPGFjbC1uYW1lPiA8aW58b3V0PicpCisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBzZWxmLnVuaXF1ZV9rZXlfZnJvbV9ub25fdW5pcXVlKFtzZWxmLmdldF9jdXJyZW50X21vZGVfb2JqKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnZuc19uYW1lKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3Jkc1sxXV0pCisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lICsgInwiICsgY2hvaWNlc1swXQorCisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlc3RfZGVsZXRlX29iamVjdCh0YWJsZSwgbmFtZSkKKyAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlLCB3b3Jkc1swXSArICIgIiArIHdvcmRzWzFdKQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiBlcnJvcnM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgIyBjYXNjYWRlIGRlbGV0ZT8KKyAgICAgICAgICAgICAgICBpZiBub3QgZXJyb3JzOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmNhc2NhZGVfZGVsZXRlKHRhYmxlLCBuYW1lKQorCisgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICAgICAgcmV0dXJuIHNlbGYuZG9fbm8od29yZHMpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fbm9fdGFnCisgICAgIyAgU2luY2UgdGhlIG5hbWUgYW5kIHZhbHVlIG11c3QgYmUgcHJlc2VudCwgdGhpcyBpcyBjdXJyZW50bHkgYSBzcGVjaWFsCisgICAgIyAgY2FzZS4gIGFkZGl0aW9uYWxseSwgdGhlIHR3byB0YWJsZXMgJ3RhZy1tYXBwaW5nJyBhbmQgJ3RhZycgYXJlIAorICAgICMgIGludGVybWluZ2xlZC4gIHRoZSAndGFnJyB0YWJsZSBtYW5hZ2VzIHRoZSA8bmFtZXNwYWNlPjxuYW1lPjx2YWx1ZT4KKyAgICAjICB0dXBsZSwgd2hpbGUgdGhlIHRhZy1tYXBwaW5nIGFkZCA8aG9zdD4gdG8gdGhhdCByZWxhdGlvbnNoaXAgIFdoZW4KKyAgICAjICB0aGUgcmVtb3ZhbCBvZiB0aGUgZW50cnkgZnJvbSB0aGUgdGFnLW1hcHBpbmcgdGFibGUgbGVhdmVzIG5vIGZ1cnRoZXIKKyAgICAjICA8bmFtZXNwYWNlPjxuYW1lPjx2YWx1ZT4ncyBmb3IgYW55IGhvc3RzLCB0aGVuIHRoZSByb3cgZnJvbSB0aGUKKyAgICAjICAndGFnJyB0YWJsZSBtdXN0IGJlIHJlbW92ZWQKKyAgICAjCisgICAgZGVmIGltcGxlbWVudF9ub190YWcoc2VsZiwgd29yZHMpOgorICAgICAgICBpZiBub3Qgd29yZHMgb3IgbGVuKHdvcmRzKSAhPSAyIG9yIHdvcmRzWzFdLmZpbmQoJz0nKSA9PSAtMToKKyAgICAgICAgICAgIHJldHVybiAgIlN5bnRheDogbm8gdGFnIDxuYW1lc3BhY2UubmFtZT49PHZhbHVlPiIKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG5hbWVfYW5kX3ZhbHVlID0gd29yZHNbMV0uc3BsaXQoIj0iKQorICAgICAgICAgICAgaWYgbGVuKG5hbWVfYW5kX3ZhbHVlKSA+IDI6CisgICAgICAgICAgICAgICAgcmV0dXJuICJTeW50YXg6IG5vIHRhZyA8bmFtZXNwYWNlLm5hbWU+PTx2YWx1ZT4iCisKKyAgICAgICAgICAgIG5hbWVfcGFydCA9IG5hbWVfYW5kX3ZhbHVlWzBdLnNwbGl0KCcuJykKKyAgICAgICAgICAgIGlmIGxlbihuYW1lX3BhcnQpID09IDE6CisgICAgICAgICAgICAgICAgbmFtZXNwYWNlID0gJ2RlZmF1bHQnCisgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWVfcGFydFswXQorICAgICAgICAgICAgZWxpZiBsZW4obmFtZV9wYXJ0KSA+PSAyOgorICAgICAgICAgICAgICAgIG5hbWVzcGFjZSA9ICcuJy5qb2luKG5hbWVfcGFydFs6LTFdKQorICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lX3BhcnRbLTFdCisKKyAgICAgICAgICAgIHZhbHVlID0gbmFtZV9hbmRfdmFsdWVbMV0KKworICAgICAgICAgICAgaXRlbSA9IHNlbGYudW5pcXVlX2tleV9mcm9tX25vbl91bmlxdWUoW25hbWVzcGFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZ2V0X2N1cnJlbnRfbW9kZV9vYmooKV0pCisgICAgICAgICAgICAjCisgICAgICAgICAgICAjIFRvIHByZXZlbnQgbGVha2luZyB0aGUgdW5pcXVlIGtleSB2YWx1ZSBpbiB0aGUgJ05vdCBGb3VuZCcKKyAgICAgICAgICAgICMgZXJyb3IgbWVzc2FnZSwgbG9vayB1cCB0aGUgaXRlbSBmaXJzdCwgYW5kIGRpc3BsYXkgYSB1bmlxdWUKKyAgICAgICAgICAgICMgZXJyb3IgbWVzc2FnZSBmb3IgdGhpcyBjYXNlCisgICAgICAgICAgICAjCisgICAgICAgICAgICBlcnJvcnMgPSBOb25lCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc2VsZi5nZXRfb2JqZWN0X2Zyb21fc3RvcmUoJ3RhZy1tYXBwaW5nJywgaXRlbSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgZXJyb3JzID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSwgInRhZyAiICsgaXRlbSkKKworICAgICAgICAgICAgaWYgZXJyb3JzOgorICAgICAgICAgICAgICAgIGlmIHNlbGYucmVzdF9lcnJvcl9pc19ub3RfZm91bmQoZXJyb3JzKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJ0YWcgJXMuJXM9JXMgbm90IGZvdW5kIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmFtZXNwYWNlLCBuYW1lLCB2YWx1ZSkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYucmVzdF9kZWxldGVfb2JqZWN0KCd0YWctbWFwcGluZycsIGl0ZW0pCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIGVycm9ycyA9IHNlbGYucmVzdF9lcnJvcl90b19kaWN0KGUsICJ0YWcgIiArIGl0ZW0pCisKKyAgICAgICAgICAgIGlmIGVycm9yczoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcnMpCisgICAgICAgICAgICAjCisgICAgICAgICAgICAjIGlmIHRoZXJlIGFyZSBubyBtb3JlIGl0ZW1zIGluIHRhZy1tYXBwaW5nIGZvciB0aGUKKyAgICAgICAgICAgICMgPG5hbWVzcGFjZT58PG5hbWU+fDx2YWx1ZT4sIHRoZW4gYW4gZW50cnkgbmVlZHMgdG8KKyAgICAgICAgICAgICMgcmVtb3ZlZCBmcm9tIHRoZSAndGFnJyB0YWJsZSAoZm9yIGNsZWFudXApCisgICAgICAgICAgICAjCisgICAgICAgICAgICBrZXkgPSBzZWxmLnVuaXF1ZV9rZXlfZnJvbV9ub25fdW5pcXVlKFtuYW1lc3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVdKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRhZ3MgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCd0YWctbWFwcGluZycsICd0YWcnLCBrZXkpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIGVycm9ycyA9IHNlbGYucmVzdF9lcnJvcl90b19kaWN0KGUsICJ0YWctbWFwcGluZyB0YWcgIiArIGtleSkKKworICAgICAgICAgICAgaWYgZXJyb3JzOgorICAgICAgICAgICAgICAgIHByaW50IHNlbGYucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKQorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgaWYgbGVuKHRhZ3MpID09IDA6CisgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICBzZWxmLnJlc3RfZGVsZXRlX29iamVjdCgndGFnJywga2V5KQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IHNlbGYucmVzdF9lcnJvcl90b19kaWN0KGUsICJ0YWcgIiArIGl0ZW0pCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIGVycm9yczoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcnMpCisgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgIworICAgICAgICAgICAgIyBjYXNjYWRlIGRlbGV0ZT8KKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyB2bnNfaW50ZXJmYWNlX3J1bGVfdGFnc192YWxpZGF0ZQorICAgICMgIFByb3ZpZGVzIGEgd2FybmluZyB3aGVuIHRoZSBhc3NvY2lhdGVkIHRhZyBkb2Vzbid0IGV4aXN0CisgICAgIworICAgIGRlZiB2bnNfaW50ZXJmYWNlX3J1bGVfdGFnc192YWxpZGF0ZShzZWxmLCBvYmpfdHlwZSwgZmllbGQsIHZhbHVlKToKKyAgICAgICAgZm9yIHRhZ19wYWlyIGluIHZhbHVlLnNwbGl0KCcsJyk6CisgICAgICAgICAgICBpZiB0YWdfcGFpci5maW5kKCc9JykgPT0gLTEgb3IgbGVuKHRhZ19wYWlyLnNwbGl0KCc9JykpICE9IDI6CisgICAgICAgICAgICAgICAgIyBmaWVsZCB2YWxpZGF0aW9uIHdvbid0IG1hdGNoIHRoZSByZWd1bGFyIGV4cHJlc3Npb24KKyAgICAgICAgICAgICAgICByZXR1cm4gCisgICAgICAgICAgICAodGFnX25hbWUsIHRhZ192YWx1ZSkgPSB0YWdfcGFpci5zcGxpdCgnPScpCisgICAgICAgICAgICB0YWdfbmFtZV9wYXJ0cyA9IHRhZ19uYW1lLnNwbGl0KCcuJykKKyAgICAgICAgICAgIGlmIGxlbih0YWdfbmFtZV9wYXJ0cykgPT0gMToKKyAgICAgICAgICAgICAgICB0YWdfbmFtZXNwYWNlID0gJ2RlZmF1bHQnCisgICAgICAgICAgICAgICAgdGFnX25hbWUgPSB0YWdfbmFtZV9wYXJ0c1swXQorICAgICAgICAgICAgZWxpZiBsZW4odGFnX25hbWVfcGFydHMpID49IDI6CisgICAgICAgICAgICAgICAgdGFnX25hbWVzcGFjZSA9ICcuJy5qb2luKHRhZ19uYW1lX3BhcnRzWzotMV0pCisgICAgICAgICAgICAgICAgdGFnX25hbWUgPSB0YWdfbmFtZV9wYXJ0c1stMV0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyBYWFggbm90IHJlYWNoZWQKKyAgICAgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgICAgICMgVmFsaWRhdGluZyB1c2luZyB0aGUgJ3RhZycgbW9kZWwgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhlCisgICAgICAgICAgICAjIHRhZyBleGlzdHMgZGVwZW5kcyBvbiBoYXZpbmcgdGhlIHRhZyB2YWx1ZSByZW1vdmVkIHdoZW4gdGhlcmUncworICAgICAgICAgICAgIyBubyBtb3JlIHJlZmVyZW5jZXMgdG8gdGhlIGVudHJ5LiAgdGhlIGNsaSBtYW5hZ2VzIHRoZSAKKyAgICAgICAgICAgICMgJ3RhZycvJ3RhZy1tYXBwaW5nJyBtb2RlbHMgdGhhdCB3YXksIGJ1dCBvdGhlciB1c2VzIG9mIHRoZSAKKyAgICAgICAgICAgICMgcmVzdCBhcGkgbWF5IG5vdC4KKyAgICAgICAgICAgICMKKyAgICAgICAgICAgIGtleSA9IHNlbGYudW5pcXVlX2tleV9mcm9tX25vbl91bmlxdWUoW3RhZ19uYW1lc3BhY2UsIHRhZ19uYW1lLCB0YWdfdmFsdWVdKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRhYmxlID0gc2VsZi5nZXRfb2JqZWN0X2Zyb21fc3RvcmUoJ3RhZycsIGtleSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgZXJyb3JzID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSwgJ3RhZycpCisgICAgICAgICAgICAgICAgIyBzcGVjaWFsIGNhc2UgZm9yICdub3QgZm91bmQnIGVycm9yIG1lc3NhZ2UKKyAgICAgICAgICAgICAgICBpZiBzZWxmLnJlc3RfZXJyb3JfaXNfbm90X2ZvdW5kKGVycm9ycyk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYud2FybmluZygidGFnIGAlcy4lcyAlcycgbm90IHlldCBkZWZpbmVkIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh0YWdfbmFtZXNwYWNlLCB0YWdfbmFtZSwgdGFnX3ZhbHVlKSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBwcmludCBzZWxmLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyB2YWxpZGF0ZV9zd2l0Y2hfY29yZV9zd2l0Y2gKKyAgICAjICBJbnRlbmRlZCB0byBkaXNwbGF5IGEgd2FybmluZyBtZXNzYWdlIHdoZW4gdGhlIHZhbHVlIGlzIHNldCB0byBUcnVlCisgICAgIworICAgIGRlZiB2YWxpZGF0ZV9zd2l0Y2hfY29yZV9zd2l0Y2goc2VsZiwgb2JqX3R5cGUsIGZpZWxkLCB2YWx1ZSk6CisgICAgICAgIGlmIHZhbHVlID09ICdUcnVlJzogIyBYWFggb2RkIHRoYXQgdGhlIHZhbHVlIG5lZWRzIHRvIGJlIHF1b3RlZC4KKyAgICAgICAgICAgIHNlbGYud2FybmluZygiZW5hYmxpbmcgY29yZS1zd2l0Y2ggb24gYSBzd2l0Y2ggd2l0aCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgImRpcmVjdGx5IGNvbm5lY3RlZCBob3N0cyB3aWxsIGNhdXNlIHRoZSBzYW1lIHRvICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiYmUgdW5hYmxlIHRvIGNvbm5lY3QiKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGhhbmRsZV9zcGVjaWZpY190YWdfZmllbGRzCisgICAgIyAgQ2FsbGVkIGJ5IGhhbmRsZV9zcGVjaWZpY19vYmpfdHlwZSB0byBjb252ZXJ0IGZpZWxkcyB2YWx1ZXMgZnJvbSB0aGUKKyAgICAjICByZXN0IGFwaSBpbnRvIGEgZGlzcGxheWFibGUgdGFibGUKKyAgICAjCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBoYW5kbGVfc3BlY2lmaWNfdGFnX2ZpZWxkcyhlbnRyaWVzKToKKyAgICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICBmaWVsZHMgPSBlbnRyeVsnaWQnXS5zcGxpdCgnfCcpCisgICAgICAgICAgICAjIFhYWCBlcnJvciBpZiB0aGVyZSdzIG5vdCBmb3VyIHBhcnRzCisgICAgICAgICAgICBlbnRyeVsnbmFtZXNwYWNlJ10gPSBmaWVsZHNbMF0KKyAgICAgICAgICAgIGVudHJ5WyduYW1lJ10gPSBmaWVsZHNbMV0KKyAgICAgICAgICAgIGVudHJ5Wyd2YWx1ZSddID0gZmllbGRzWzJdCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgYXBwZW5kX3doZW5fbWlzc2luZworICAgICMKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGFwcGVuZF93aGVuX21pc3NpbmcodW5pcXVlX2xpc3QsIGl0ZW0pOgorICAgICAgICBpZiBub3QgaXRlbSBpbiB1bmlxdWVfbGlzdDoKKyAgICAgICAgICAgIHVuaXF1ZV9saXN0LmFwcGVuZChpdGVtKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHNob3dfY29tbWFuZF9wcmVmaXhfbWF0Y2hlcworICAgICMgIHNob3cgY29tbWFuZCdzIHByZWZpeCBtYXRjaGVzLCByZXR1cm4gVHJ1ZSB3aGVuIHRoZSBjb21tYW5kIG1hdGNoZXMKKyAgICAjICBmcHIgdGhlIHByZWZpeCBkZXNjcmliZWQsIHVzZWQgYnkgZ2V0X3ZhbGlkX3Nob3dfb3B0aW9ucygpIGR1cmluZworICAgICMgIGNwX3Nob3coKSB0byBjb2xsZWN0IGF2YWlsYWJsZSBjb21tYW5kIGNob2ljZS4KKyAgICAjCisgICAgZGVmIHNob3dfY29tbWFuZF9wcmVmaXhfbWF0Y2hlcyhzZWxmLCBjb21tYW5kLCBwcmVmaXgpOgorICAgICAgICAjIGNvbnZlcnQgYW55ICctJ3MgaW4gdGhlIHByZWZpeCB0cCAiXyIncyBzaW5jZSBmdW5jJ3MgaGF2ZSBfIHNlcGFyYXRvcnMKKyAgICAgICAgcHJlZml4ID0gcHJlZml4LnJlcGxhY2UoIi0iLCAiXyIpCisgICAgICAgIGlmIGNvbW1hbmQuc3RhcnRzd2l0aCgiZG9fc2hvd18iK3ByZWZpeCkgYW5kIG5vdCBjb21tYW5kLnN0YXJ0c3dpdGgoImRvX3Nob3dfdm5zXyIpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgZWxpZiBjb21tYW5kLnN0YXJ0c3dpdGgoImRvX3Nob3dfdm5zXyIgKyBwcmVmaXgpOgorICAgICAgICAgICAgaWYgc2VsZi5pbl9jb25maWdfc3VibW9kZSgiY29uZmlnLXZucyIpOgorICAgICAgICAgICAgICAgIGlmIGNvbW1hbmQgPT0gJ2RvX3Nob3dfdm5zX2FjY2Vzc19saXN0JyBhbmQgc2VsZi5pbl9jb25maWdfdm5zX21vZGUoKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi52bnNfZGVidWdfc2hvd19jb21tYW5kcyhjb21tYW5kKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGdldF92YWxpZF9zaG93X29wdGlvbnMgCisgICAgIyAgdXNlZCBieSBjcF9zaG93IHRvIGlkZW50aWZ5IGNvbXBsZXRpb24gb3B0aW5vcworICAgICMKKyAgICAjIHJldHVybnMgYSBkaWN0aW9uYXJ5IHdpdGggdHdvIGVsZW1lbnRzOiAnY29tbWFuZHMnLCBhbmQgJ29iamVjdHMnLgorICAgICMgdGhlICdjb21tYW5kcycgZWxlbWVudCBpcyBhIGxpc3Qgb2YgcG9zc2libGUgY29tbWFuZHMgd2hpbGUKKyAgICAjIHRoZSAnb2JqZWN0cycgZWxlbWVudCBpcyBhIGxpc3Qgb2YgcG9zc2libGUgb2JqZWN0cyAodGFibGVzL21vZGVscyBpbiB0aGUgc3RvcmUpCisgICAgIworICAgIGRlZiBnZXRfdmFsaWRfc2hvd19vcHRpb25zKHNlbGYsIHRleHQpOgorICAgICAgICByZXRfaGFzaCA9IHt9CisgICAgICAgICMgZmlyc3QgZ2V0IGNvbW1hbmRzCisgICAgICAgIG9wdHMgPSBbXQorICAgICAgICBtYXRjaGluZ19tZXRob2RzID0gW3ggZm9yIHggaW4gZGlyKHNlbGYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5zaG93X2NvbW1hbmRfcHJlZml4X21hdGNoZXMoeCwgdGV4dCldCisKKyAgICAgICAgaWYgb25vcyA9PSAwOgorICAgICAgICAgICAgbmV0dmlydF9mZWF0dXJlID0gc2VsZi5uZXR2aXJ0X2ZlYXR1cmVfZW5hYmxlZCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuZXR2aXJ0X2ZlYXR1cmUgPSBGYWxzZQorCisgICAgICAgIGZvciBtZXRob2QgaW4gbWF0Y2hpbmdfbWV0aG9kczoKKyAgICAgICAgICAgIG0gPSByZS5zZWFyY2goImRvX3Nob3dfKC4qKSIsIG1ldGhvZCkKKyAgICAgICAgICAgIG4gPSByZS5zZWFyY2goImRvX3Nob3dfdm5zXyguKikiLCBtZXRob2QpCisgICAgICAgICAgICBpZiBuIGFuZCBzZWxmLmluX2NvbmZpZ19zdWJtb2RlKCdjb25maWctdm5zJyk6CisgICAgICAgICAgICAgICAgc2VsZi5hcHBlbmRfd2hlbl9taXNzaW5nKG9wdHMsIG4uZ3JvdXAoMSkucmVwbGFjZSgiXyIsIi0iKSkKKyAgICAgICAgICAgIGVsaWYgbToKKyAgICAgICAgICAgICAgICBpZiBuZXR2aXJ0X2ZlYXR1cmUgb3IgbS5ncm91cCgxKSAhPSAndm5zJzoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hcHBlbmRfd2hlbl9taXNzaW5nKG9wdHMsIG0uZ3JvdXAoMSkucmVwbGFjZSgiXyIsIi0iKSkKKyAgICAgICAgIworICAgICAgICAjIHJlbW92ZSBjb21tYW5kIGNhc2VzCisgICAgICAgIG9wdHMgPSBbeCBmb3IgeCBpbiBvcHRzIGlmIHggbm90IGluIFsic3RhdGlzdGljcyIsICJvYmplY3QiXV0KKyAgICAgICAgaWYgImFjY2Vzcy1ncm91cCIgaW4gb3B0cyBhbmQgbm90IHNlbGYuaW5fY29uZmlnX3Zuc19pZl9tb2RlKCk6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi52bnNfZGVidWdfc2hvd19jb21tYW5kcygndm5zLWFjY2Vzcy1ncm91cCcpOgorICAgICAgICAgICAgICAgIG9wdHMucmVtb3ZlKCJhY2Nlc3MtZ3JvdXAiKQorICAgICAgICBpZiAiYWNjZXNzLWxpc3QiIGluIG9wdHMgYW5kIG5vdCBzZWxmLmluX2NvbmZpZ192bnNfbW9kZSgpOgorICAgICAgICAgICAgaWYgbm90IHNlbGYudm5zX2RlYnVnX3Nob3dfY29tbWFuZHMoJ3Zucy1hY2Nlc3MtbGlzdCcpOgorICAgICAgICAgICAgICAgIG9wdHMucmVtb3ZlKCJhY2Nlc3MtbGlzdCIpCisgICAgICAgIGlmICJpbnRlcmZhY2UiIGluIG9wdHMgYW5kIG5vdCBzZWxmLmluX2NvbmZpZ192bnNfbW9kZSgpOgorICAgICAgICAgICAgaWYgbm90IHNlbGYudm5zX2RlYnVnX3Nob3dfY29tbWFuZHMoJ3Zucy1pbnRlcmZhY2UnKToKKyAgICAgICAgICAgICAgICBvcHRzLnJlbW92ZSgiaW50ZXJmYWNlIikKKyAgICAgICAgaWYgImludGVyZmFjZS1ydWxlIiBpbiBvcHRzIGFuZCBub3Qgc2VsZi5pbl9jb25maWdfdm5zX2RlZl9tb2RlKCk6CisgICAgICAgICAgICBpZiBub3Qgc2VsZi52bnNfZGVidWdfc2hvd19jb21tYW5kcygndm5zLWludGVyZmFjZS1ydWxlJyk6CisgICAgICAgICAgICAgICAgb3B0cy5yZW1vdmUoImludGVyZmFjZS1ydWxlIikKKyAgICAgICAgaWYgImZpcmV3YWxsIiBpbiBvcHRzIGFuZCBub3Qgc2VsZi5pbl9jb25maWdfY29udHJvbGxlcl9pbnRlcmZhY2VfbW9kZSgpOgorICAgICAgICAgICAgb3B0cy5yZW1vdmUoImZpcmV3YWxsIikKKyAgICAgICAgIyBzeW50aGV0aWMgb2JqZWN0IHR5cGUgYmFzZWQgb24gdGhlIHZuc2NvbmZpZyBzdWJtb2RlLgorICAgICAgICBpZiAiYWNjZXNzLWxpc3QtZW50cnkiIGluIG9wdHMgYW5kIG5vdCBzZWxmLmluX2NvbmZpZ192bnNfYWNsX21vZGUoKToKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLnZuc19kZWJ1Z19zaG93X2NvbW1hbmRzKCd2bnMtYWNjZXNzLWxpc3QtZW50cnknKToKKyAgICAgICAgICAgICAgICBvcHRzLnJlbW92ZSgiYWNjZXNzLWxpc3QtZW50cnkiKQorICAgICAgICByZXRfaGFzaFsiY29tbWFuZHMiXSA9IG9wdHMKKworICAgICAgICAjIG5vdyBnZXQgb2JqX3R5cGVzIHdlIGNhbiBzaG93CisgICAgICAgIG9wdHMgPSBzZWxmLmFsbF9vYmpfdHlwZXNfc3RhcnRpbmdfd2l0aCh0ZXh0KQorICAgICAgICBpZiBzZWxmLmluX2NvbmZpZ19zdWJtb2RlKCkgYW5kICJ0aGlzIi5zdGFydHN3aXRoKHRleHQpOgorICAgICAgICAgICAgb3B0cy5hcHBlbmQoInRoaXMiKQorICAgICAgICByZXRfaGFzaFsib2JqZWN0cyJdID0gb3B0cworICAgICAgICByZXR1cm4gcmV0X2hhc2gKKworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNwX3Nob3dfb2JqZWN0CisgICAgIyAgc2hvdyA8b2JqX3R5cGU+ICh3b3Jkc1swXSA9PSBvYmpfdHlwZSkKKyAgICAjCisgICAgZGVmIGNwX3Nob3dfb2JqZWN0KHNlbGYsIHdvcmRzLCB0ZXh0LCBjb21wbGV0aW9uX2NoYXIpOgorICAgICAgICBpZiBsZW4od29yZHMpID09IDE6CisgICAgICAgICAgICByZXR1cm4gb2JqZWN0c19zdGFydGluZ193aXRoKHdvcmRzWzBdLCB0ZXh0KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoIjxjcj4iKQorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBnZXRfYXR0YWNobWVudF9wb2ludHMKKyAgICAjCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBnZXRfYXR0YWNobWVudF9wb2ludHMoaG9zdCwgaG9zdF9kYXBfZGljdCk6CisgICAgICAgIGl0ZW1zID0gaG9zdF9kYXBfZGljdC5nZXQoaG9zdFsnbWFjJ10pCisgICAgICAgIGlmIG5vdCBpdGVtcyBvciBsZW4oaXRlbXMpIDw9IDE6CisgICAgICAgICAgICByZXR1cm4gaXRlbXMKKyAgICAgICAgIworICAgICAgICAjIHNvcnQgYnkgbW9zdCByZWNlbnQgaXRlbXMsIGlmIHRoZSBsYXN0LXNlZW4gZmllbGQKKyAgICAgICAgIyBleGlzdHMgZm9yIGFsbCBlbnRyaWVzCisgICAgICAgICMKKyAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6CisgICAgICAgICAgICBpZiBub3QgJ2xhc3Qtc2VlbicgaW4gaXRlbSBvciBpdGVtWydsYXN0LXNlZW4nXSA9PSAnJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gaXRlbXMKKworICAgICAgICBvcmRlcmVkID0gc29ydGVkKGl0ZW1zLAorICAgICAgICAgICAgICAgICAgICAgICAgIGtleT1sYW1iZGEgaTogaVsnbGFzdC1zZWVuJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgY21wPWxhbWJkYSB4LHk6IGNtcCh5LHgpKQorICAgICAgICBvcmRlcmVkWzBdWydwcmltZSddID0gVHJ1ZQorICAgICAgICByZXR1cm4gb3JkZXJlZAorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNyZWF0ZV9hdHRhY2htZW50X2RpY3QKKyAgICAjCisgICAgZGVmIGNyZWF0ZV9hdHRhY2htZW50X2RpY3Qoc2VsZik6CisgICAgICAgIHJldHVybiBjcmVhdGVfb2JqX3R5cGVfZGljdCgnaG9zdC1hdHRhY2htZW50LXBvaW50JywgJ21hYycpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZ2V0X2lwX2FkZHJlc3NlcworICAgICMKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGdldF9pcF9hZGRyZXNzZXMoaG9zdCwgaG9zdF9pcF9kaWN0KToKKyAgICAgICAgaXRlbXMgPSBob3N0X2lwX2RpY3QuZ2V0KGhvc3RbJ21hYyddKQorICAgICAgICBpZiBub3QgaXRlbXMgb3IgbGVuKGl0ZW1zKSA8PSAxOgorICAgICAgICAgICAgcmV0dXJuIGl0ZW1zCisKKyAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6CisgICAgICAgICAgICBpZiBub3QgJ2xhc3Qtc2VlbicgaW4gaXRlbSBvciBpdGVtWydsYXN0LXNlZW4nXSA9PSAnJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gaXRlbXMKKyAgICAgICAgIworICAgICAgICAjIHNvcnQgYnkgbW9zdCByZWNlbnQgaXRlbXMsIGlmIGV2ZXJ5IHJvdyBoYXMgYSAnbGFzdC1zZWVuJyBmaWVsZAorICAgICAgICAjCisgICAgICAgIG9yZGVyZWQgPSBzb3J0ZWQoaXRlbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAga2V5PWxhbWJkYSBpOiBpWydsYXN0LXNlZW4nXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBjbXA9bGFtYmRhIHgseTogY21wKHkseCkpCisgICAgICAgIG9yZGVyZWRbMF1bJ3ByaW1lJ10gPSBUcnVlCisgICAgICAgIHJldHVybiBvcmRlcmVkCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgY3JlYXRlX2lwX2RpY3QKKyAgICAjICBSZXR1cm5zIGEgZGljdGlvbmFyeSB3aXRoIHRoZSBob3N0IGlkIChtYWMgYWRkcmVzcykgYXMgdGhlIGtleSwKKyAgICAjICBhbmQgYSBsaXN0IG9mIGFzc29jaWF0ZWQgcm93cyBmb3IgdGhhdCBob3N0IGlkLgorICAgICMKKyAgICBkZWYgY3JlYXRlX2lwX2RpY3Qoc2VsZik6CisgICAgICAgIHJldHVybiBjcmVhdGVfb2JqX3R5cGVfZGljdCgnaG9zdC1uZXR3b3JrLWFkZHJlc3MnLCAnbWFjJykKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBzaG93X3NvcnRfb2JqX3R5cGUKKyAgICAjICBSZXR1cm5zIGEgc29ydGVkIGxpc3Qgb2YgZW50cmllcyBiYXNlZCBvbiB0aGUgc29ydCBkZXNjcmliZWQgYnkKKyAgICAjICB0aGUgb2JqLWRpY3QKKyAgICAjCisgICAgZGVmIHNob3dfc29ydF9vYmpfdHlwZShzZWxmLCBvYmpfdHlwZSwgZW50cmllcyk6CisgICAgICAgIHNvcnQgPSBtaS5vYmpfdHlwZV9zaG93X3NvcnQob2JqX3R5cGUpCisgICAgICAgIGlmIG5vdCBzb3J0OgorICAgICAgICAgICAgcmV0dXJuIGVudHJpZXMKKyAgICAgICAgaWYgc29ydCA9PSAnaW50ZWdlcic6CisgICAgICAgICAgICBrZXkgPSBtaS5wayhvYmpfdHlwZSkKKyAgICAgICAgICAgIHJldHVybiBzb3J0ZWQoZW50cmllcywga2V5PWxhbWJkYSBrOiBrW2tleV0uc3BsaXQoJ3wnKVstMV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtcD1sYW1iZGEgeCx5OiBjbXAodXRpZi50cnlfaW50KHgpLCB1dGlmLnRyeV9pbnQoeSkpKQorICAgICAgICBlbGlmIHNvcnQgPT0gJ3RhaWwtaW50ZWdlcic6CisgICAgICAgICAgICBrZXkgPSBtaS5wayhvYmpfdHlwZSkKKyAgICAgICAgICAgIGRlZiBjb21wYXJlcihsZWZ0LCByaWdodCk6CisgICAgICAgICAgICAgICAgcHJlZml4ID0gY21wKGxlZnRbOi0xXSwgcmlnaHRbOi0xXSkKKyAgICAgICAgICAgICAgICBpZiBwcmVmaXggIT0gMDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZWZpeAorICAgICAgICAgICAgICAgIHJldHVybiBjbXAodXRpZi50cnlfaW50KGxlZnRbLTFdKSwgdXRpZi50cnlfaW50KHJpZ2h0Wy0xXSkpCisKKyAgICAgICAgICAgIHJldHVybiBzb3J0ZWQoZW50cmllcywga2V5PWxhbWJkYSBrOiBrW2tleV0uc3BsaXQoJ3wnKSwgY21wPWNvbXBhcmVyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJVbmtub3duIHNvcnQgJXMiICUgc29ydCkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBkaXNwbGF5X29ial90eXBlX3Jvd3MKKyAgICAjICBHaXZlbiBhbiBvYmpfdHlwZSwgcm93cywgYW5kIHdoZXRoZXIgb3Igbm90IGEga2V5IHdhcyBwcm92aWRlZCB0byBzZWFyY2gKKyAgICAjICB3aXRoLCBnZW5lcmF0ZSB0aGUgb3V0cHV0IHRhYmxlLgorICAgICMKKyAgICBkZWYgZGlzcGxheV9vYmpfdHlwZV9yb3dzKHNlbGYsIG9ial90eXBlLCByb3dzLCB3aXRoX2tleSA9ICc8bm9fa2V5PicsIGRldGFpbCA9ICJkZWZhdWx0Iik6CisgICAgICAgICMKKyAgICAgICAgIyBoYW5kbGUgc3BlZGljaWZpYyBpc3N1ZXMgd2l0aCBwYXJ0aWN1bGFyIHRhYmxlcyByZXR1cm5lZCBmcm9tIHN0b3JhZ2UKKyAgICAgICAgIyAtIGNoYW5nZSB2bnMtaWQncyB3aXRoICJ8IiBpbnRvIHNlcGFyYXRlIGNvbHVtbnMKKyAgICAgICAgIyAtIHRoZSBob3N0IGNhc2UgZG9lcyBhICdtZXJnZScgZm9yIGF0dGFjaG1lbnQtcG9pbnRzIGFuZCBJUHMKKyAgICAgICAgIyAgICh1c2VkIGluICdzaG93IGhvc3QnKQorICAgICAgICBkZWYgaGFuZGxlX3NwZWNpZmljX29ial90eXBlKG9ial90eXBlLCBlbnRyaWVzLCBmaWVsZF9vcmRlcmluZ3MgPSAnZGVmYXVsdCcpOgorICAgICAgICAgICAgaWYgb2JqX3R5cGUgPT0gImhvc3QiOgorICAgICAgICAgICAgICAgICMgaG9zdF90YWdfZGljdCA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KCd0YWctbWFwcGluZycsICdob3N0JykKKyAgICAgICAgICAgICAgICBmb3IgaG9zdCBpbiBlbnRyaWVzOgorICAgICAgICAgICAgICAgICAgICBob3N0Wyd2ZW5kb3InXSA9IHNlbGYudmVuZG9yZGIuZ2V0X3ZlbmRvcihob3N0WydtYWMnXSkKKyAgICAgICAgICAgICAgICAgICAgIyBob3N0Wyd0YWcnXSA9IGhvc3RfdGFnX2RpY3QuZ2V0KGhvc3RbJ21hYyddLCBbXSkKKyAgICAgICAgICAgIGlmIG9ial90eXBlID09ICJob3N0LWNvbmZpZyI6CisgICAgICAgICAgICAgICAgaG9zdF9kYXBfZGljdCA9IHNlbGYuY3JlYXRlX2F0dGFjaG1lbnRfZGljdCgpCisgICAgICAgICAgICAgICAgaG9zdF9pcF9kaWN0ID0gc2VsZi5jcmVhdGVfaXBfZGljdCgpCisgICAgICAgICAgICAgICAgaG9zdF90YWdfZGljdCA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KCd0YWctbWFwcGluZycsICdtYWMnKQorICAgICAgICAgICAgICAgIGZvciBob3N0IGluIGVudHJpZXM6CisgICAgICAgICAgICAgICAgICAgIGhvc3RbJ3ZlbmRvciddID0gc2VsZi52ZW5kb3JkYi5nZXRfdmVuZG9yKGhvc3RbJ21hYyddKQorICAgICAgICAgICAgICAgICAgICBob3N0WydhdHRhY2htZW50LXBvaW50cyddID0gc2VsZi5nZXRfYXR0YWNobWVudF9wb2ludHMoaG9zdCwgaG9zdF9kYXBfZGljdCkKKyAgICAgICAgICAgICAgICAgICAgaG9zdFsnaXBzJ10gPSBzZWxmLmdldF9pcF9hZGRyZXNzZXMoaG9zdCwgaG9zdF9pcF9kaWN0KQorICAgICAgICAgICAgICAgICAgICBob3N0Wyd0YWcnXSA9IGhvc3RfdGFnX2RpY3QuZ2V0KGhvc3RbJ21hYyddLCBbXSkKKyAgICAgICAgICAgIGlmIG9ial90eXBlID09ICdjb250cm9sbGVyLW5vZGUnOgorICAgICAgICAgICAgICAgIGZvciBjb250cm9sbGVyX25vZGUgaW4gZW50cmllczoKKyAgICAgICAgICAgICAgICAgICAgZG9tYWluX25hbWVfc2VydmVycyA9IFtdCisgICAgICAgICAgICAgICAgICAgIGRvbWFpbl9uYW1lX3NlcnZlcnMgPSBzZWxmLnJlc3RfcXVlcnlfb2JqZWN0cygKKyAgICAgICAgICAgICAgICAgICAgICAgICdjb250cm9sbGVyLWRvbWFpbi1uYW1lLXNlcnZlcicsCisgICAgICAgICAgICAgICAgICAgICAgICB7J2NvbnRyb2xsZXInOiBjb250cm9sbGVyX25vZGVbJ2lkJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgJ29yZGVyYnknIDogJ3RpbWVzdGFtcCd9KQorICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyX25vZGVbJ2RvbWFpbi1uYW1lLXNlcnZlcnMnXSA9IFtkb21haW5fbmFtZV9zZXJ2ZXJbJ2lwJ10KKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBkb21haW5fbmFtZV9zZXJ2ZXIgaW4gZG9tYWluX25hbWVfc2VydmVyc10KKyAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlcl9ub2RlWydpZCddID0gJyAnLmpvaW4oY29udHJvbGxlcl9ub2RlWydpZCddLnNwbGl0KCd8JykpCisgICAgICAgICAgICBpZiBvYmpfdHlwZSA9PSAnY29udHJvbGxlci1pbnRlcmZhY2UnOgorICAgICAgICAgICAgICAgIGZvciBpbnRmIGluIGVudHJpZXM6CisgICAgICAgICAgICAgICAgICAgIHJ1bGVzID0gW3hbJ3J1bGUnXSBmb3IgeCBpbiBzZWxmLmdldF9maXJld2FsbF9ydWxlcyhpbnRmWydpZCddKV0KKyAgICAgICAgICAgICAgICAgICAgaW50ZlsnZmlyZXdhbGwnXSA9ICcsICcuam9pbihydWxlcykKKyAgICAgICAgICAgICAgICAgICAgIyBkZWwgaW50ZlsnaWQnXSBYWFggc2hvdWxkIHRoZSBpZCByZWFsbHkgZ2V0IGRpc3BsYXllZD8KKyAgICAgICAgICAgIHRhYmxlc193aXRoX3Zuc19pZHMgPSBbICJ2bnMtaW50ZXJmYWNlLXJ1bGUiLCAidm5zLWludGVyZmFjZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaG9zdC12bnMtaW50ZXJmYWNlIiwgInZucy1hY2Nlc3MtbGlzdCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAidm5zLWFjY2Vzcy1saXN0LWVudHJ5IiwgInZucy1pbnRlcmZhY2UtYWNjZXNzLWxpc3QiIF0KKyAgICAgICAgICAgIGlmIG9ial90eXBlIGluIHRhYmxlc193aXRoX3Zuc19pZHM6CisgICAgICAgICAgICAgICAgc2VsZi52bnNfdGFibGVfaWRfdG9fdm5zX2NvbHVtbihvYmpfdHlwZSwgZW50cmllcykKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmluX2NvbmZpZ19zdWJtb2RlKCJjb25maWctdm5zIikgYW5kIGZpZWxkX29yZGVyaW5ncyA9PSAnZGVmYXVsdCc6CisgICAgICAgICAgICAgICAgICAgIGZpZWxkX29yZGVyaW5ncyA9ICd2bnMtY29uZmlnJworICAgICAgICAgICAgICAgIHNlbGYudm5zX2pvaW5faG9zdF9maWVsZHMob2JqX3R5cGUsIGVudHJpZXMpCisgICAgICAgICAgICAgICAgc2VsZi52bnNfZm9yZWlnbl9rZXlfdG9fYmFzZV9uYW1lKG9ial90eXBlLCBlbnRyaWVzKQorICAgICAgICAgICAgaWYgb2JqX3R5cGUgPT0gJ3Zucy1hY2Nlc3MtbGlzdC1lbnRyeSc6CisgICAgICAgICAgICAgICAgIyBkaXNwbGF5IHRoZSBhbHRlcm5hdGl2ZSBhY2Nlc3MtbGlzdC10ZXh0IGZvcm1hdCAKKyAgICAgICAgICAgICAgICB2bnNfYWNsX2VudHJpZXNfdG9fYnJpZWYoZW50cmllcykKKyAgICAgICAgICAgICAgICAjIGZpZWxkX29yZGVyaW5ncyA9ICdhY2wtYnJpZWYnCisgICAgICAgICAgICBpZiBvYmpfdHlwZSA9PSAndm5zLWFjY2Vzcy1saXN0LWVudHJ5LWJyaWVmJzoKKyAgICAgICAgICAgICAgICAjIGRpc3BsYXkgdGhlIGFsdGVybmF0aXZlIGFjY2Vzcy1saXN0LXRleHQgZm9ybWF0IAorICAgICAgICAgICAgICAgIHZuc19hY2xfZW50cmllc190b19icmllZihlbnRyaWVzKQorICAgICAgICAgICAgICAgIGZpZWxkX29yZGVyaW5ncyA9ICdhY2wtYnJpZWYnCisgICAgICAgICAgICAjaWYgb2JqX3R5cGUgPT0gJ3RhZy1tYXBwaW5nJzoKKyAgICAgICAgICAgICAgICAjc2VsZi5oYW5kbGVfc3BlY2lmaWNfdGFnX2ZpZWxkcyhlbnRyaWVzKQorCisgICAgICAgICAgICAjIFhYWCBtYXkgbmVlZCB0byByZXZpc2l0IHRvIHByZXZlbnQgZG9uJ3QgbGVhayB2bnMgaW5mb3JtYXRpb24KKworICAgICAgICAgICAgaWYgb2JqX3R5cGUgaW4gWydkdnMtcG9ydC1ncm91cCcsICdmaXJld2FsbC1ydWxlJywgJ3RhZy1tYXBwaW5nJ106CisgICAgICAgICAgICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICAgICAgICAgIG1pLnNwbGl0X2NvbXBvdW5kX2ludG9fZGljdChvYmpfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pLnBrKG9ial90eXBlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudHJ5KQorICAgICAgICAgICAgIworICAgICAgICAgICAgIyBvYmplY3RzIHdoZXJlIGZvcmVpZ2gga2V5cyBhcmUgcmVmZXJlbmNlcyB0bworICAgICAgICAgICAgIyBjb21wb3VudCBrZXkncywgbmVlZGluZyB0byBiZSBzcGxpdC4gCisgICAgICAgICAgICAjIFhYWCB0aGVzZSBjYW4gYmUgaWRlbnRpZmllZCBieSBzY2FubmluZyB0aGUgb2JqZWN0cyBkdXJpbmcgaW5pdAorICAgICAgICAgICAgaWYgb2JqX3R5cGUgaW4gWydzd2l0Y2gtaW50ZXJmYWNlLWFsaWFzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIF06CisgICAgICAgICAgICAgICAgIyBvbmx5IHBpY2sgZm9yZWlnbiBrZXlzIHdoaWNoIGFyZSBjb21wb3VuZCBrZXlzCisgICAgICAgICAgICAgICAgZmtzID0gW3ggZm9yIHggaW4gbWkub2JqX3R5cGVfZm9yZWlnbl9rZXlzKG9ial90eXBlKQorICAgICAgICAgICAgICAgICAgICAgICBpZiBtaS5pc19jb21wb3VuZF9rZXkob2JqX3R5cGUseCldCisgICAgICAgICAgICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICAgICAgICAgIGZvciBmayBpbiBma3M6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBmayBpbiBlbnRyeTogIyBmayBtYXkgYmUgbnVsbC1hYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWkuc3BsaXRfY29tcG91bmRfaW50b19kaWN0KG9ial90eXBlLCBmaywgZW50cnkpCisgICAgICAgICAgICAgICAgICAgIGlmICdzd2l0Y2gtaW50ZXJmYWNlJyBpbiBlbnRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNpID0gZW50cnlbJ3N3aXRjaC1pbnRlcmZhY2UnXQorIAorICAgICAgICAgICAgIworICAgICAgICAgICAgaWYgb2JqX3R5cGUgPT0gJ2ZpcmV3YWxsLXJ1bGUnOgorICAgICAgICAgICAgICAgIHNlbGYuZmlyZXdhbGxfcnVsZV9hZGRfcnVsZV90b19lbnRyaWVzKGVudHJpZXMpCisgICAgICAgICAgICByZXR1cm4gZmllbGRfb3JkZXJpbmdzCisgICAgIAorICAgICAgICBmaWVsZF9vcmRlcmluZ3MgPSBoYW5kbGVfc3BlY2lmaWNfb2JqX3R5cGUob2JqX3R5cGUsIHJvd3MsIGRldGFpbCkKKyAgICAgICAgIworICAgICAgICAjIGpvaW4gYWxpYXMgbmFtZXMuICB0aGVyZSBpcyBhIGdvb2QgY2hhbmNlIHRoZSBhbGlhcydzIHRhYmxlcworICAgICAgICAjICBhcmUgc21hbGwuICBzaW5jZSBpdGVyYXRpb24gb3ZlciBhbGwgdGhlIHJvd3MgaXMgbmVlZGVkLAorICAgICAgICAjICBmaXJzdCBpZGVudGlmeSB0aGUgYWxpYXMgdGFibGVzIGludm9sdmVkLCB0aGVuIHNuYXAgdGhlCisgICAgICAgICMgIGNvbXBsZXRlIHRhYmxlIGludG8gbWVtb3J5LCBhbmQgdGhlbiBkZWNvcmFlIHdpdGggdGhlCisgICAgICAgICMgIHNwZWNpZmljIGFsaWFzIGZpZWxkcy4gIFhYWCBpdCB3b3VsZCBiZSBldmVuIGJldHRlciB0bworICAgICAgICAjICBnZXQgYSBzaXplIG9mICdyb3dzJyB2cyB0aGUgJ2FsaWFzJyB0YWJsZSwgYW5kIGNob29zZQorICAgICAgICAjICB0aGUgbW9yZSBwZXJmb3JtYW5jZSBwYXRoLi4uCisgICAgICAgICMKKyAgICAgICAgaWYgb2JqX3R5cGUgaW4gbWkuYWxpYXNfb2JqX3R5cGVfeHJlZjoKKyAgICAgICAgICAgIG9ial9rZXkgPSBtaS5wayhvYmpfdHlwZSkKKyAgICAgICAgICAgIGZvciBhbGlhcyBpbiBtaS5hbGlhc19vYmpfdHlwZV94cmVmW29ial90eXBlXToKKyAgICAgICAgICAgICAgICBhbGlhc19maWVsZCA9IG1pLmFsaWFzX29ial90eXBlX2ZpZWxkKGFsaWFzKQorICAgICAgICAgICAgICAgIGlmIG5vdCBhbGlhc19maWVsZDoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgc2VsZi5lcnJvcl9tc2coImludGVybmFsIGFsaWFzIGluIGRpc3BsYXlfb2JqX3R5cGUiKQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgYWxpYXNfcm93cyA9IHNlbGYuZ2V0X3RhYmxlX2Zyb21fc3RvcmUoYWxpYXMpCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSwgYWxpYXMpCisgICAgICAgICAgICAgICAgICAgIHByaW50IHNlbGYucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKQorICAgICAgICAgICAgICAgICAgICBhbGlhc19yb3dzID0gW10KKworICAgICAgICAgICAgICAgICMgaW52ZXJ0IHRoZSByb3cgb25jZSwgbW92aW5nIHRoZSBrZXkgdG8gdGhlIGRhdGEuCisgICAgICAgICAgICAgICAgYWxpYXNfa2V5ID0gbWkucGsoYWxpYXMpCisgICAgICAgICAgICAgICAgcm93c19hbGlhcyA9IGRpY3QoW1thW2FsaWFzX2ZpZWxkXSwgYVthbGlhc19rZXldXSBmb3IgYSBpbiBhbGlhc19yb3dzXSkKKworICAgICAgICAgICAgICAgICMgY29sbGVjdCB0aGUgbmFtZSBvZiB0aGUgZmllbGQgdG8gam9pbiAoZmtfbmFtZSkKKyAgICAgICAgICAgICAgICAjIAorICAgICAgICAgICAgICAgIChma19vYmpfdHlwZSwgZmtfbmFtZSkgPSBcCisgICAgICAgICAgICAgICAgICAgIG1pLmZvcmVpZ25fa2V5X3JlZmVyZW5jZXMoYWxpYXMsIGFsaWFzX2ZpZWxkKQorICAgICAgICAgICAgICAgICMgbm93IGFzc29jaWF0ZSBhbGlhcydzIHdpdGggdGhlIHJvdydzIGZpZWxkOgorICAgICAgICAgICAgICAgIGZvciByb3cgaW4gcm93czoKKyAgICAgICAgICAgICAgICAgICAgaWYgZmtfbmFtZSBpbiByb3c6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiByb3dbZmtfbmFtZV0gaW4gcm93c19hbGlhczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3dbYWxpYXNdID0gcm93c19hbGlhc1tyb3dbZmtfbmFtZV1dCisgICAgICAgICAgICAgICAgICAgIGVsaWYgZmtfb2JqX3R5cGUgaW4gcm93OgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgcm93W2ZrX29ial90eXBlXSBpbiByb3dzX2FsaWFzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd1thbGlhc10gPSByb3dzX2FsaWFzW3Jvd1tma19vYmpfdHlwZV1dCisgICAgICAgICAgICAjCisgICAgICAgICAgICAjIHRoaXMgY2hvaWNlIGlzIGJldHRlciBpZiB0aGUgYWxpYXMncyB0YWJsZSBpcyBsYXJnZS4KKyAgICAgICAgICAgIGlmIDA6ICNmb3Igcm93IGluIHJvd3M6CisgICAgICAgICAgICAgICAga2V5ID0gbWkucGsob2JqX3R5cGUpCisgICAgICAgICAgICAgICAgZm9yIGFsaWFzIGluIG1pLmFsaWFzX29ial90eXBlX3hyZWZbb2JqX3R5cGVdOgorICAgICAgICAgICAgICAgICAgICBmaWVsZCA9IG1pLmFsaWFzX29ial90eXBlX2ZpZWxkKGFsaWFzKQorICAgICAgICAgICAgICAgICAgICBpZiBub3QgZmllbGQ6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCBzZWxmLmVycm9yX21zZygiaW50ZXJuYWwgYWxpYXMgaW4gZGlzcGxheV9vYmpfdHlwZSIpCisgICAgICAgICAgICAgICAgICAgIGFsaWFzX3JvdyA9IHNlbGYuZ2V0X3RhYmxlX2Zyb21fc3RvcmUoYWxpYXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93W2tleV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4YWN0IikKKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKGFsaWFzX3JvdykgPiAxOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ0Vycm9yOiBtdWx0aXBsZSBhbGlhc2VzIGZvciAlcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlhcworICAgICAgICAgICAgICAgICAgICBlbGlmIGxlbihhbGlhc19yb3cpID09IDE6CisgICAgICAgICAgICAgICAgICAgICAgICByb3dbYWxpYXNdID0gYWxpYXNfcm93WzBdW21pLnBrKGFsaWFzKV0KKworICAgICAgICBpZiBsZW4ocm93cykgPT0gMDoKKyAgICAgICAgICAgIGlmIHdpdGhfa2V5ICE9ICc8bm9fa2V5Pic6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJObyAlcyAlcyBmb3VuZCIgJSAob2JqX3R5cGUsIHdpdGhfa2V5KSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucHAuZm9ybWF0X3RhYmxlKHJvd3MsIG9ial90eXBlLCBmaWVsZF9vcmRlcmluZ3MpCisgICAgICAgIGVsaWYgbGVuKHJvd3MpID09IDEgYW5kIHdpdGhfa2V5ICE9ICc8bm9fa2V5Pic6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5wcC5mb3JtYXRfZW50cnkocm93c1swXSwgb2JqX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVidWcgPSBzZWxmLmRlYnVnKQorCisgICAgICAgIHJldHVybiBzZWxmLnBwLmZvcm1hdF90YWJsZShzZWxmLnNob3dfc29ydF9vYmpfdHlwZShvYmpfdHlwZSwgcm93cyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkX29yZGVyaW5ncykKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBkb19zaG93X29iamVjdAorICAgICMgIEltcGxlbWVudHMgdGhlIHNob3cgY29tbWFuZCBmb3Igb2JqZWN0cyAodGFibGUvbW9kZWwgb3V0cHV0IG9mIHJvd3MpCisgICAgIworICAgIGRlZiBkb19zaG93X29iamVjdChzZWxmLCB3b3Jkcywgd2l0aF9zZWFyY2hfa2V5ID0gTm9uZSk6CisgICAgICAgIG9ial90eXBlID0gd29yZHNbMF0KKworICAgICAgICAjCisgICAgICAgICMgVGhlIGNsaSByZXBsYWNlcyBzb21lIHVzZXIgbmFtZXMgd2l0aCB0YWJsZSBuYW1lcworICAgICAgICBpZiBvYmpfdHlwZSA9PSAndGFnJzoKKyAgICAgICAgICAgIG9ial90eXBlID0gJ3RhZy1tYXBwaW5nJworCisgICAgICAgIG1hdGNoID0gInN0YXJ0c3dpdGgiCisgICAgICAgICMKKyAgICAgICAgIyBBbGxvdyAidGhpcyIgcmVmZXJlbmNlIGlmIHdlIGFyZSBpbiBjb25maWctc3VibW9kZSwgY2hhbmdlIHRoZQorICAgICAgICAjIG1hdGNoIHRvIGFuIGV4YWN0IG1hdGNoIHRvIHByZXZlbnQgcHJlZml4IG1hdGNoaW5nCisgICAgICAgIGlmIG9ial90eXBlID09ICJ0aGlzIjoKKyAgICAgICAgICAgIGlmIHNlbGYuaW5fY29uZmlnX3N1Ym1vZGUoKToKKyAgICAgICAgICAgICAgICBvYmpfdHlwZSA9IHNlbGYuZ2V0X2N1cnJlbnRfbW9kZV9vYmpfdHlwZSgpCisgICAgICAgICAgICAgICAgd29yZHMgPSBbb2JqX3R5cGUsICJ0aGlzIl0KKyAgICAgICAgICAgICAgICBtYXRjaCA9ICJleGFjdCIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJcInRoaXNcIiBjYW4gb25seSBiZSB1c2VkIGluIGNvbmZpZ3VyYXRpb24iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgc3VibW9kZSwgc3VjaCBhcyBzd2l0Y2gsIHBvcnQsIGhvc3QsIGV0Yy4iKQorICAgICAgICAjCisgICAgICAgICMgY29tcGxldGUgdGFibGUgbG9va3VwOiAnc2hvdyA8dGFibGU+JworICAgICAgICBpZiBsZW4od29yZHMpID09IDE6CisgICAgICAgICAgICBpZiB3aXRoX3NlYXJjaF9rZXkgPT0gTm9uZToKKyAgICAgICAgICAgICAgICB3aXRoX3NlYXJjaF9rZXkgPSAiPG5vX2tleT4iCisgICAgICAgICAgICBlcnJvcnMgPSBOb25lCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgZW50cmllcyA9IHNlbGYuZ2V0X3RhYmxlX2Zyb21fc3RvcmUob2JqX3R5cGUpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIGVycm9ycyA9IHNlbGYucmVzdF9lcnJvcl90b19kaWN0KGUsIG9ial90eXBlKQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgZXJyb3JzOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmRpc3BsYXlfb2JqX3R5cGVfcm93cyhvYmpfdHlwZSwgZW50cmllcywgd2l0aF9zZWFyY2hfa2V5KQorCisgICAgICAgICMgdGFibGUgd2l0aCBrZXk6ICAic2hvdyA8dGFibGU+IDxrZXk+IgorICAgICAgICBpZiBsZW4od29yZHMpID09IDI6CisgICAgICAgICAgICBvYmogPSB3b3Jkc1sxXQorICAgICAgICAgICAgaWYgd2l0aF9zZWFyY2hfa2V5ID09IE5vbmU6CisgICAgICAgICAgICAgICAgd2l0aF9zZWFyY2hfa2V5ID0gb2JqCisKKyAgICAgICAgICAgICMgQWxsb3cgInRoaXMiIHJlZmVyZW5jZSBpZiB3ZSBhcmUgaW4gY29uZmlnLXN1Ym1vZGUKKyAgICAgICAgICAgIGlmIG9iaiA9PSAidGhpcyIgYW5kIFwKKyAgICAgICAgICAgICAgb2JqX3R5cGUgPT0gc2VsZi5nZXRfY3VycmVudF9tb2RlX29ial90eXBlKCkgXAorICAgICAgICAgICAgICBhbmQgc2VsZi5pbl9jb25maWdfc3VibW9kZSgpOgorICAgICAgICAgICAgICAgIG9iaiA9IHNlbGYuZ2V0X2N1cnJlbnRfbW9kZV9vYmooKQorCisgICAgICAgICAgICBrZXkgPSBtaS5wayhvYmpfdHlwZSkKKyAgICAgICAgICAgIGlmIGtleToKKyAgICAgICAgICAgICAgICBvYmogPSBjb252ZXJ0X2FsaWFzX3RvX29iamVjdF9rZXkob2JqX3R5cGUsIG9iaikKKyAgICAgICAgICAgICAgICBpZiBtaS5vYmpfdHlwZV9oYXNfbW9kZWwob2JqX3R5cGUpOgorICAgICAgICAgICAgICAgICAgICBlbnRyaWVzID0gc2VsZi5nZXRfdGFibGVfZnJvbV9zdG9yZShvYmpfdHlwZSwga2V5LCBvYmosIG1hdGNoKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICMgWFhYIHJhaXNlIGludGVybmFsIGVycm9yPyAgbW9kZWwgZG9lc24ndCBleGlzdC4KKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgY29tbWFuZC5fbGluZSgpLCBvYmpfdHlwZQorICAgICAgICAgICAgICAgICAgICBlbnRyaWVzID0gW10KKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5kaXNwbGF5X29ial90eXBlX3Jvd3Mob2JqX3R5cGUsIGVudHJpZXMsIHdpdGhfc2VhcmNoX2tleSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucHAuZm9ybWF0X3RhYmxlKHNlbGYuZ2V0X3RhYmxlX2Zyb21fc3RvcmUob2JqX3R5cGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpfdHlwZSkKKyAgICAgICAgZWxpZiAic3RhdHMiLnN0YXJ0c3dpdGgod29yZHNbMl0pOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuaGVscGVyX3Nob3dfb2JqZWN0X3N0YXRzKHdvcmRzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuICJTeW50YXg6IHNob3cgPHRhYmxlPiA8a2V5PjogICIgXAorICAgICAgICAgICAgICAgICAgICAiVW5yZWNvZ25pemVkIGlucHV0OiAiICsgIiAiLmpvaW4od29yZHNbMjpdKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGhlbHBlcl9zaG93X29iamVjdF9zdGF0cworICAgICMKKyAgICBkZWYgaGVscGVyX3Nob3dfb2JqZWN0X3N0YXRzKHNlbGYsIHdvcmRzKToKKyAgICAgICAgaWYgc2VsZi5zdGF0c19tZXRhZGF0YSA9PSBOb25lOgorICAgICAgICAgICAgc2VsZi5pbml0X3N0YXRzX21ldGFkYXRhKCkKKworICAgICAgICAjIGdldCBvYmplY3QgdHlwZQorICAgICAgICBvYmplY3RfdHlwZSA9IHdvcmRzWzBdCisKKyAgICAgICAgIyBUaGUgcmVzdCBzdGF0cyBhcGkgZGlmZmVycyBmcm9tIHRoZSBDTEkgaW4gc29tZSBvZiB0aGUKKyAgICAgICAgIyBvYmplY3QgbmFtZXMsIHNvIHRoaXMgbWFwIGFsbG93cyB1cyB0byBmaXggaXQKKyAgICAgICAgaWYgb2JqZWN0X3R5cGUgaW4gc2VsZi5zdGF0c19yZXN0YXBpX21hcDoKKyAgICAgICAgICAgIG9iamVjdF90eXBlID0gc2VsZi5zdGF0c19yZXN0YXBpX21hcFtvYmplY3RfdHlwZV0KKworICAgICAgICBpZiBvYmplY3RfdHlwZSBub3QgaW4gc2VsZi5zdGF0c190eXBlX21ldGFkYXRhOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCdubyBzdGF0aXN0aWNzIGF2YWlsYWJsZSBmb3Igb2JqZWN0IHR5cGUgJXMnICUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0X3R5cGUpCisKKyAgICAgICAgIyBHZXQgdGhlIHNwZWNpZmljIG9iamVjdCB0byBvcGVyYXRlIG9uCisgICAgICAgIHNvYmplY3QgPSB3b3Jkc1sxXTsKKyAgICAgICAgCisgICAgICAgICMgdGhlIGNvbnRyb2xsZXItbm9kZSBvYmplY3RzIGRvbid0IGN1cnJlbnRseSBoYXZlIGFueSByZWFsCisgICAgICAgICMgY29uY2VwdCBvZiBhIHVuaXF1ZSBJRCBmb3IgYSBjb250cm9sbGVyOyBmb3Igbm93IHRoZSBzdGF0cworICAgICAgICAjIGFyZSBhbHdheXMgbGFiZWxlZCAnbG9jYWxob3N0JyBldmVuIHRob3VnaCB0aGF0IHdpbGwgbmV2ZXIKKyAgICAgICAgIyBhcHBlYXIgaW4gdGhlIGNvbnRyb2xsZXItbm9kZSBsaXN0CisgICAgICAgIGlmICgnY29udHJvbGxlci1ub2RlJy5zdGFydHN3aXRoKG9iamVjdF90eXBlKSk6CisgICAgICAgICAgICBzb2JqZWN0ID0gJ2xvY2FsaG9zdCcKKworICAgICAgICB0b2NoZWNrID0gW10KKyAgICAgICAgIyBnZXQgc3RhdGlzdGljIG5hbWUKKyAgICAgICAgaWYgbGVuKHdvcmRzKSA+IDM6CisgICAgICAgICAgICBpZiAod29yZHNbM10gbm90IGluIHNlbGYuc3RhdHNfbWV0YWRhdGEgb3IgCisgICAgICAgICAgICAgICAgc2VsZi5zdGF0c19tZXRhZGF0YVt3b3Jkc1szXV1bJ3RhcmdldF90eXBlJ10gIT0gb2JqZWN0X3R5cGUpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygnbm8gc3RhdGlzdGljICVzIGF2YWlsYWJsZSBmb3Igb2JqZWN0IHR5cGUgJXMnICUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3b3Jkc1szXSwgb2JqZWN0X3R5cGUpKQorICAgICAgICAgICAgdG9jaGVjay5hcHBlbmQod29yZHNbM10pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0b2NoZWNrID0gW2l0ZW1bJ25hbWUnXSAKKyAgICAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5zdGF0c190eXBlX21ldGFkYXRhW29iamVjdF90eXBlXV0KKworICAgICAgICBwYXJzZWRfb3B0aW9ucyA9IHt9CisgICAgICAgIGlmIChsZW4od29yZHMpID4gNCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcGFyc2VkX29wdGlvbnMgPSBcCisgICAgICAgICAgICAgICAgICAgIHNlbGYucGFyc2Vfb3B0aW9uYWxfcGFyYW1ldGVycyhzZWxmLnN0YXRzX29wdGlvbmFsX3BhcmFtcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3Jkc1s0Ol0pCisgICAgICAgICAgICBleGNlcHQgUGFyYW1FeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coZSkKKworICAgICAgICBkaXNwbGF5ID0gJ2xhdGVzdC12YWx1ZScKKyAgICAgICAgdGltZXNwZWMgPSBGYWxzZQorICAgICAgICBub3cgPSBpbnQodGltZS50aW1lKCkqMTAwMCkKKyAgICAgICAgcXVlcnlfcGFyYW1zID0geydzdGFydC10aW1lJzogbm93IC0gMzYwMDAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdlbmQtdGltZSc6IG5vdywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzYW1wbGUtY291bnQnOiAyNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhLWZvcm1hdCc6ICd2YWx1ZSd9CisKKyAgICAgICAgaWYgJ3N0YXJ0LXRpbWUnIGluIHBhcnNlZF9vcHRpb25zOgorICAgICAgICAgICAgdGltZXNwZWMgPSBUcnVlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcXVlcnlfcGFyYW1zWydzdGFydC10aW1lJ10gPSBzZWxmLnBhcnNlX2RhdGUocGFyc2VkX29wdGlvbnNbJ3N0YXJ0LXRpbWUnXSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coJ2ludmFsaWQgc3RhcnQgdGltZSAlczogJXMnICUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJzZWRfb3B0aW9uc1snc3RhcnQtdGltZSddLCBlKSkKKworICAgICAgICBpZiAnZW5kLXRpbWUnIGluIHBhcnNlZF9vcHRpb25zOgorICAgICAgICAgICAgdGltZXNwZWMgPSBUcnVlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcXVlcnlfcGFyYW1zWydlbmQtdGltZSddID0gc2VsZi5wYXJzZV9kYXRlKHBhcnNlZF9vcHRpb25zWydlbmQtdGltZSddKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygnaW52YWxpZCBlbmQgdGltZSAlczogJXMnICUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYXJzZWRfb3B0aW9uc1snZW5kLXRpbWUnXSwgZSkpCisKKyAgICAgICAgaWYgJ2R1cmF0aW9uJyBpbiBwYXJzZWRfb3B0aW9uczoKKyAgICAgICAgICAgIHRpbWVzcGVjID0gVHJ1ZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHF1ZXJ5X3BhcmFtc1snZHVyYXRpb24nXSA9IHBhcnNlZF9vcHRpb25zWydkdXJhdGlvbiddCisgICAgICAgICAgICAgICAgaWYgJ3N0YXJ0LXRpbWUnIGluIHBhcnNlZF9vcHRpb25zOgorICAgICAgICAgICAgICAgICAgICBkZWwgcXVlcnlfcGFyYW1zWydlbmQtdGltZSddCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZGVsIHF1ZXJ5X3BhcmFtc1snc3RhcnQtdGltZSddCisKKyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coJ2ludmFsaWQgZHVyYXRpb24gJXMnICUgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZF9vcHRpb25zWydkdXJhdGlvbiddKQorCisgICAgICAgIGlmICdkaXNwbGF5JyBpbiBwYXJzZWRfb3B0aW9uczoKKyAgICAgICAgICAgIGRpc3BsYXkgPSBwYXJzZWRfb3B0aW9uc1snZGlzcGxheSddCisKKyAgICAgICAgaWYgdGltZXNwZWMgYW5kIGRpc3BsYXkgPT0gJ2xhdGVzdC12YWx1ZSc6CisgICAgICAgICAgICBkaXNwbGF5ID0gJ2dyYXBoJworCisgICAgICAgIGlmIGRpc3BsYXkgPT0gJ2dyYXBoJzoKKyAgICAgICAgICAgIHF1ZXJ5X3BhcmFtc1snc2FtcGxlLWNvdW50J10gPSBzZWxmLnBwLmdldF90ZXJtaW5hbF9zaXplKClbMF0KKworICAgICAgICBmb3IgcCBpbiBbJ3NhbXBsZS1jb3VudCcsICdsaW1pdCcsICdzYW1wbGUtd2luZG93JywgCisgICAgICAgICAgICAgICAgICAnc2FtcGxlLWludGVydmFsJywgJ2RhdGEtZm9ybWF0J106CisgICAgICAgICAgICBpZiBwIGluIHBhcnNlZF9vcHRpb25zOgorICAgICAgICAgICAgICAgIHF1ZXJ5X3BhcmFtc1twXSA9IHBhcnNlZF9vcHRpb25zW3BdCisKKyAgICAgICAgaWYgZGlzcGxheSA9PSAnbGF0ZXN0LXZhbHVlJzoKKyAgICAgICAgICAgIGRhdGEgPSB7fQorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gdG9jaGVjazoKKyAgICAgICAgICAgICAgICB1cmwgPSAoJ2h0dHA6Ly8lcy9yZXN0L3YxL3N0YXRzL2RhdGEvJXMvJXMvJXMvJXMvJyAlIAorICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5jb250cm9sbGVyLCBzZWxmLmNsdXN0ZXIsIG9iamVjdF90eXBlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgIHNvYmplY3QsIGl0ZW0pKQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgKHRpbWVzdGFtcCwgdmFsdWUpID0gc2VsZi5yZXN0X3NpbXBsZV9yZXF1ZXN0X3RvX2RpY3QodXJsKQorICAgICAgICAgICAgICAgICAgICBkYXRhW3NlbGYuc3RhdHNfbWV0YWRhdGFbaXRlbV1bJ25hbWUnXV0gPSAiJWQiICUgdmFsdWUKKyAgICAgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgICAgIGRhdGFbc2VsZi5zdGF0c19tZXRhZGF0YVtpdGVtXVsnbmFtZSddXSA9ICJbTnVsbF0iCisKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnBwLmZvcm1hdF9lbnRyeShkYXRhLCAnc3RhdHMtJXMnICUgb2JqZWN0X3R5cGUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpdGVtID0gdG9jaGVja1swXQorICAgICAgICAgICAgdXJsID0gKCdodHRwOi8vJXMvcmVzdC92MS9zdGF0cy9kYXRhLyVzLyVzLyVzLyVzLz8lcycgJSAKKyAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYuY29udHJvbGxlciwgc2VsZi5jbHVzdGVyLCBvYmplY3RfdHlwZSwgCisgICAgICAgICAgICAgICAgICAgICAgICBzb2JqZWN0LCBpdGVtLCAiJiIuam9pbihbJyVzPSVzJyAlIChrLHYpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGssdiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiBxdWVyeV9wYXJhbXMuaXRlcml0ZW1zKCldKSkpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAganNvbl9kYXRhID0gc2VsZi5yZXN0X3NpbXBsZV9yZXF1ZXN0X3RvX2RpY3QodXJsKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgIGlmIHNlbGYuZGVidWdfYmFja3RyYWNlOgorICAgICAgICAgICAgICAgICAgICBwcmludCAnRkFJTEVEIFVSTCcsIHVybAorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygnY291bGQgbm90IGxvYWQgc3RhdHMgZGF0YTogJXMnICUgZSkKKworICAgICAgICAgICAgaWYgZGlzcGxheSA9PSAndGFibGUnOgorICAgICAgICAgICAgICAgIGRhdGEgPSBbXQorICAgICAgICAgICAgICAgIGZvciAodGltZXN0YW1wLCB2YWx1ZSkgaW4ganNvbl9kYXRhOgorICAgICAgICAgICAgICAgICAgICBkYXRhLmFwcGVuZCh7J3RpbWVzdGFtcCc6IGludCh0aW1lc3RhbXApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWUnOiB2YWx1ZX0pCisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYucHAuZm9ybWF0X3RhYmxlKGRhdGEsICdzdGF0cy0lcy0lcy0lcycgJSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9iamVjdF90eXBlLCBpdGVtLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5X3BhcmFtc1snZGF0YS1mb3JtYXQnXSkpCisgICAgICAgICAgICBlbGlmIGRpc3BsYXkgPT0gJ2dyYXBoJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wcC5mb3JtYXRfdGltZV9zZXJpZXNfZ3JhcGgoanNvbl9kYXRhLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXRzLSVzLSVzLSVzJyAlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob2JqZWN0X3R5cGUsIGl0ZW0sIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlfcGFyYW1zWydkYXRhLWZvcm1hdCddKSkKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgcGFyc2VfZGF0ZQorICAgICMKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHBhcnNlX2RhdGUodGV4dCk6CisgICAgICAgIGlmICh0ZXh0ID09ICdub3cnIG9yIHRleHQgPT0gJ2N1cnJlbnQnKToKKyAgICAgICAgICAgIHJldHVybiBpbnQodGltZS50aW1lKCkqMTAwMCkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICByZXR1cm4gaW50KHRleHQpCisgICAgICAgIGV4Y2VwdDogCisgICAgICAgICAgICBwYXNzCisKKyAgICAgICAgZm9yIGYsIHByZSBpbiBbKCclWS0lbS0lZFQlSDolTTolUycsIE5vbmUpLAorICAgICAgICAgICAgICAgICAgICAgICAoJyVZLSVtLSVkICVIOiVNOiVTJywgTm9uZSksCisgICAgICAgICAgICAgICAgICAgICAgICgnJVktJW0tJWRUJUg6JU06JVMleicsIE5vbmUpLAorICAgICAgICAgICAgICAgICAgICAgICAoJyVZLSVtLSVkICVIOiVNOiVTJXonLCBOb25lKSwKKyAgICAgICAgICAgICAgICAgICAgICAgKCclWS0lbS0lZCcsIE5vbmUpLAorICAgICAgICAgICAgICAgICAgICAgICAoJyVtLSVkJywgJyVZLScpLAorICAgICAgICAgICAgICAgICAgICAgICAoJyVIOiVNJywgJyVZLSVtLSVkVCcpXToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB0ID0gdGV4dAorICAgICAgICAgICAgICAgIGlmIHByZToKKyAgICAgICAgICAgICAgICAgICAgcHJlZiA9IGRhdGV0aW1lLmRhdGV0aW1lLm5vdygpLnN0cmZ0aW1lKHByZSkKKyAgICAgICAgICAgICAgICAgICAgZiA9IHByZSArIGYKKyAgICAgICAgICAgICAgICAgICAgdCA9IHByZWYgKyB0CisKKyAgICAgICAgICAgICAgICB0aGV0aW1lID0gZGF0ZXRpbWUuZGF0ZXRpbWUuc3RycHRpbWUodCwgZikKKyAgICAgICAgICAgICAgICByZXR1cm4gaW50KHRpbWUubWt0aW1lKHRoZXRpbWUudGltZXR1cGxlKCkpKjEwMDApCisgICAgICAgICAgICBleGNlcHQ6IAorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICByYWlzZSBWYWx1ZUVycm9yKCdjb3VudCBub3QgcGFyc2UgJXMgYXMgYSB0aW1lc3RhbXAnICUgdGV4dCkKKworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGRpc3BsYXlfdm5zX2ludGVyZmFjZQorICAgICMgIFNlYXJjaCBkaXN0IGlzIGEgY29sbGVjdGlvbiBvZiBjb21wdW5kIGtleSBlbnRpdGllcworICAgICMKKyAgICBkZWYgZGlzcGxheV92bnNfaW50ZXJmYWNlKHNlbGYsIHZuc19uYW1lLCBzZWFyY2hfZGljdCwgd2l0aF9zZWFyY2hfa2V5LCBkZXRhaWwgPSAnZGVmYXVsdCcpOgorICAgICAgICBvYmpfdHlwZSA9ICd2bnMtaW50ZXJmYWNlJworICAgICAgICBvYmpfa2V5ID0gbWkucGsob2JqX3R5cGUpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGVudHJpZXMgPSByZXN0X3RvX21vZGVsLmdldF9tb2RlbF9mcm9tX3VybChvYmpfdHlwZSwgc2VhcmNoX2RpY3QpCisgICAgICAgICAgICAjZW50cmllcyA9IHNlbGYucmVzdF9xdWVyeV9vYmplY3RzKG9ial90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNzZWFyY2hfZGljdCkKKyAgICAgICAgICAgIGVycm9ycyA9IE5vbmUKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGVycm9ycyA9IHNlbGYucmVzdF9lcnJvcl90b19kaWN0KGUsIG9ial90eXBlKQorICAgICAgICAgICAgICAgIAorICAgICAgICBpZiBlcnJvcnM6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcnMpCisgICAgICAgIHZuc19ydWxlcyA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KCd2bnMtaW50ZXJmYWNlLXJ1bGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaS5waygndm5zLWludGVyZmFjZS1ydWxlJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9kaWN0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgIworICAgICAgICAjIGRpdmlkZSB1cCB0aGUgcmVzdWx0IGludG8gdHdvIHBhcnRzLCB0aGUgZmlyc3QgcGFydCBpcworICAgICAgICAjIHRoZSBwaHlzaWNhbCBpbnRlcmZhY2VzLCB0aGUgc2Vjb25kIGlzIHRoZSBtYWMgaW50ZXJmYWNlcy4uLgorICAgICAgICBwaHlzID0gW10KKyAgICAgICAgbWFjcyA9IFtdCisgICAgICAgICAgICAKKyAgICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICBmaWVsZHMgPSBlbnRyeVtvYmpfa2V5XS5zcGxpdCgnfCcpCisgICAgICAgICAgICBlbnRyeVsndGVuYW50J10gPSBmaWVsZHNbMF0KKyAgICAgICAgICAgIGVudHJ5Wyd2bnMnXT1maWVsZHNbMV0KKyAgICAgICAgICAgICMgYWxsIHRoZXNlIGZpZWxkcyBtdXN0IGhhdmUgdHdvIHBhcnRzLgorICAgICAgICAgICAgaWYgbGVuKGZpZWxkcykgIT0gMzoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgCisgICAgICAgICAgICAjIGNob29zZSBiZXR3ZWVuIHN3aXRjaCBiYXNlZCBydWxlcyBhbmQgbWFjL2lwIGJhc2VkIHJ1bGVzCisgICAgICAgICAgICBydWxlID0gJ2RlZmF1bHQnCisgICAgICAgICAgICBzd2l0Y2ggPSBOb25lCisgICAgICAgICAgICB2aXJ0ID0gTm9uZQorICAgICAgICAgICAgIworICAgICAgICAgICAgIyBFYWNoIGFkZHJlc3Mtc3BhY2Ugd291bGQgaGF2ZSBhIGRlZmF1bHQgdm5zIG5hbWVkCisgICAgICAgICAgICAjIG5hbWVkIDxhcz4tZGVmYXVsdCwgZXhjZXB0IHRoZSAnZGVmYXVsdCcgYWRkZHJlc3Mtc3BhY2Ugd2hpY2gKKyAgICAgICAgICAgICMgaGFzIGEgZGVmYXVsdCB2bnMgbmFtZWQganVzdCAnZGVmYXVsdCcKKyAgICAgICAgICAgICMKKyAgICAgICAgICAgIGlmIGZpZWxkc1sxXSA9PSAiZGVmYXVsdCIgb3IgZmllbGRzWzFdLmVuZHN3aXRoKCItZGVmYXVsdCIpOgorICAgICAgICAgICAgICAgIHZpcnQgPSAnZGVmYXVsdCcKKyAgICAgICAgICAgICAgICBpZiBmaWVsZHNbMl0uZmluZCgnLycpID49IDA6CisgICAgICAgICAgICAgICAgICAgIHZpcnQgPSBmaWVsZHNbMl0uc3BsaXQoJy8nKVsxXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBub3QgJ3J1bGUnIGluIGVudHJ5IG9yIGVudHJ5WydydWxlJ109PSdkZWZhdWx0JzoKKyAgICAgICAgICAgICAgICAgICAgaWZfcnVsZSA9IFtdCisgICAgICAgICAgICAgICAgICAgIHZpcnQgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICMgY29udGludWUKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBydWxlID0gZW50cnlbJ3J1bGUnXQorICAgICAgICAgICAgICAgICAgICBpZl9ydWxlID0gdm5zX3J1bGVzW3J1bGVdWzBdCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgJ3N3aXRjaCcgaW4gaWZfcnVsZToKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoID0gaWZfcnVsZVsnc3dpdGNoJ10KKyAgICAgICAgICAgICAgICBlbGlmICdtYWMnIGluIGlmX3J1bGU6CisgICAgICAgICAgICAgICAgICAgIHZpcnQgPSBpZl9ydWxlWydtYWMnXQorICAgICAgICAgICAgICAgICAgICBlbnRyeVsnbWFjJ10gPSB2aXJ0CisgICAgICAgICAgICAgICAgZWxpZiAnaXAtc3VibmV0JyBpbiBpZl9ydWxlOgorICAgICAgICAgICAgICAgICAgICB2aXJ0ID0geydpcC1hZGRyZXNzJzogaWZfcnVsZVsnaXAtc3VibmV0J119CisgICAgICAgICAgICAgICAgICAgIGlmICdpcHMnIGluIGVudHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlbJ2lwcyddLmFwcGVuZCh2aXJ0KQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgZW50cnlbJ2lwcyddID0gW3ZpcnRdCisgICAgICAgICAgICAgICAgZWxpZiAndGFncycgaW4gaWZfcnVsZToKKyAgICAgICAgICAgICAgICAgICAgdmlydCA9IGlmX3J1bGVbJ3RhZ3MnXQorICAgICAgICAgICAgICAgICAgICBlbnRyeVsndGFncyddID0gdmlydAorICAgICAgICAgICAgICAgIGVsaWYgJ3ZsYW5zJyBpbiBpZl9ydWxlOgorICAgICAgICAgICAgICAgICAgICB2aXJ0ID0gInZsYW4gJXMiICUgaWZfcnVsZVsndmxhbnMnXQorICAgICAgICAgICAgICAgICAgICBlbnRyeVsndmxhbnMnXSA9IHZpcnQKKworICAgICAgICAgICAgaWYgc3dpdGNoOgorICAgICAgICAgICAgICAgIHBoeXMuYXBwZW5kKGVudHJ5KQorICAgICAgICAgICAgaWYgdmlydDoKKyAgICAgICAgICAgICAgICBlbnRyeVsndmV0aCddID0gZW50cnlbb2JqX2tleV0uc3BsaXQoJ3wnKVsyXQorICAgICAgICAgICAgICAgIG1hY3MuYXBwZW5kKGVudHJ5KQorCisgICAgICAgIG91dHB1dCA9ICcnCisgICAgICAgIGlmIGxlbihwaHlzKToKKyAgICAgICAgICAgIHNlbGYudm5zX2pvaW5fc3dpdGNoX2ZpZWxkcyh2bnNfbmFtZSwgcGh5cykKKyAgICAgICAgICAgIG91dHB1dCArPSBzZWxmLmRpc3BsYXlfb2JqX3R5cGVfcm93cygndm5zLWludGVyZmFjZS1waHlzJywgcGh5cywgd2l0aF9zZWFyY2hfa2V5LCBkZXRhaWwpCisgICAgICAgIGlmIGxlbihtYWNzKToKKyAgICAgICAgICAgIGlmIGxlbihwaHlzKToKKyAgICAgICAgICAgICAgICBvdXRwdXQgKz0gJ1xuJworICAgICAgICAgICAgc2VsZi52bnNfam9pbl9ob3N0X2ZpZWxkcyhvYmpfdHlwZSwgbWFjcykKKyAgICAgICAgICAgIG91dHB1dCArPSBzZWxmLmRpc3BsYXlfb2JqX3R5cGVfcm93cygndm5zLWludGVyZmFjZS1tYWNzJywgbWFjcywgd2l0aF9zZWFyY2hfa2V5LCBkZXRhaWwpCisKKyAgICAgICAgaWYgb3V0cHV0ICE9ICcnOgorICAgICAgICAgICAgcmV0dXJuIG91dHB1dAorICAgICAgICByZXR1cm4gc2VsZi5wcC5mb3JtYXRfdGFibGUoW10sJ2Rpc3BsYXktdm5zLWludGVyZmFjZScpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZmluZF9hbmRfZGlzcGxheV92bnNfaW50ZXJmYWNlcworICAgICMKKyAgICBkZWYgZmluZF9hbmRfZGlzcGxheV92bnNfaW50ZXJmYWNlKHNlbGYsIHZuc19uYW1lLCB3b3Jkcyk6CisgICAgICAgIHdpdGhfc2VhcmNoX2tleSA9ICI8bm9fa2V5PiIKKyAgICAgICAgc2VhcmNoX2RpY3QgPSB7ICd2bnMnIDogdm5zX25hbWUgfQorICAgICAgICBpZiBsZW4od29yZHMpID09IDE6CisgICAgICAgICAgICBzZWFyY2hfZGljdFsnaW50ZXJmYWNlJ10gPSB3b3Jkc1swXQorICAgICAgICBlbGlmIGxlbih3b3JkcykgPiAxOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJBZGRpdGlvbmFsIHNlYXJjaCBrZXlzIGFmdGVyIGludGVyYWNlIikKKworICAgICAgICByZXR1cm4gc2VsZi5kaXNwbGF5X3Zuc19pbnRlcmZhY2Uodm5zX25hbWUsIHNlYXJjaF9kaWN0LCB3aXRoX3NlYXJjaF9rZXkpCisgICAgICAgIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBkb19zaG93X3Zuc19pbnRlcmZhY2VzCisgICAgIyAgVGhpcyBkZWZpbml0aW9uIGlzIG5lZWRlZCB0byBhbGxvdyB0aGUgdm5zLWludGVyZmFjZSB0YWJsZS9tb2RlbCB0bworICAgICMgIGJlIGRpc3BsYXllZCBpbiBiYXNpYyBjb25maWcgbW9kZS4gIGRvX3Nob3coKSBzZWFyY2hlcyBuYW1lcyBvZiBmdW5jdGlvbnMKKyAgICAjICB1c2luZyB0aGUgcHJlZml4IG9mIHRoZSAnc2hvdycgYXJndW1lbnQ7IHdpdGhvdXQgdGhpcyBmdW5jdGlvbiwKKyAgICAjICBpdCBmaW5kICdkb19zaG93X3Zuc19pbnRlcmZhY2VfcnVsZScgYW5kIHNlbGVjdHMgdGhhdCBmdW5jdGlvbiB0bworICAgICMgIGRpc3BsYXkgcmVzdWx0cyBmb3IgJ3Nob3cgdm5zLWludGVyZmFjZWAuCisgICAgIworICAgIGRlZiBkb19zaG93X3Zuc19pbnRlcmZhY2VzKHNlbGYsIHdvcmRzKToKKyAgICAgICAgd2l0aF9zZWFyY2hfa2V5ID0gIjxub19rZXk+IgorICAgICAgICBsb2NhbF92bnNfbmFtZSA9IHNlbGYudm5zX25hbWUoKQorICAgICAgICBpZiBzZWxmLnZuc19uYW1lKCkgaXMgTm9uZToKKyAgICAgICAgICAgIGlmIGxlbih3b3JkcykgPiAwOgorICAgICAgICAgICAgICAgIGxvY2FsX3Zuc19uYW1lID0gd29yZHNbMF0KKyAgICAgICAgICAgICAgICBzZWFyY2hfZGljdCA9IHsgJ3ZucycgOiBsb2NhbF92bnNfbmFtZSB9CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICMgb25seSBjYXNlIHdoZXJlIHRoZSB2bnMgbmFtZSBpcyBpbmNsdWRlZCBpcyB0aGUgb3V0cHV0IAorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmRvX3Nob3dfb2JqZWN0KFsndm5zLWludGVyZmFjZSddLCB3aXRoX3NlYXJjaF9rZXkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWFyY2hfZGljdCA9IHsgJ3ZucycgOiBsb2NhbF92bnNfbmFtZSB9CisgICAgICAgICAgICBpZiBsZW4od29yZHMpID09IDE6CisgICAgICAgICAgICAgICAgd2l0aF9zZWFyY2hfa2V5ID0gd29yZHMKKyAgICAgICAgICAgICAgICBzZWFyY2hfZGljdFsnaW50ZXJmYWNlJ10gPSB3b3Jkc1swXQorICAgICAgICAgICAgZWxpZiBsZW4od29yZHMpID4gMjoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coIkFkZGl0aW9uYWwgc2VhcmNoIGtleXMgYWZ0ZXIgaW50ZXJhY2UiKQorCisgICAgICAgIHJldHVybiBzZWxmLmRpc3BsYXlfdm5zX2ludGVyZmFjZShsb2NhbF92bnNfbmFtZSwgc2VhcmNoX2RpY3QsIHdpdGhfc2VhcmNoX2tleSkKKworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGRpc3BsYXlfdm5zX21hY19hZGRyZXNzX3RhYmxlCisgICAgIyAgVXNlZCBieSAnc2hvdyB2bnMgPG4+IG1hYy1hZGRyZXNzLXRhYmxlJywgYW5kIHZucyBtb2RlICdzaG93IG1hYy1hZGRyZXNzLXRhYmxlJworICAgICMKKyAgICBkZWYgZGlzcGxheV92bnNfbWFjX2FkZHJlc3NfdGFibGUoc2VsZiwgdm5zX25hbWUsIHdvcmRzKToKKyAgICAgICAgIyBub3RlOiAnY29uZmlnLXZucycgbWF0Y2hlcyBib3RoIHZucyBhbmQgdm5zLWRlZmluaXRpb24gbW9kZSwKKyAgICAgICAgIyAgd2hpbGUgJ2NvbmZpZy12bnMtJyBtYXRjaGVzIG9ubHkgdm5zLWRlZmluaXRpb24gbW9kZS4KKyAgICAgICAgIyB0aGUgaWQgZm9yIHRoZSBob3N0LXZucy1pbnRlcmZhY2UgdGFibGUgaGFzIHRoZSBob3N0IGFzIHRoZSAncHJlZml4JywKKyAgICAgICAgIyBwcmV2ZW50aW5nIHNlYXJjaGluZyBiYXNlZCBvbiB0aGUgcHJlZml4LiAgdGhlIHZucyBpcyBub3QgZXZlbiBhIGZvcmVpZ24KKyAgICAgICAgIyBrZXksIHdoaWNoIG1lYW5zIHRoZSBjb21wbGV0ZSB0YWJsZSBtdXN0IGJlIHJlYWQsIHRoZW4gdGhlIHZucyBhc3NvY2lhdGlvbgorICAgICAgICAjIG11c3QgYmUgZGV0ZXJtaW5lZCwgYW5kIHRoZW4gbWF0Y2hlZAorICAgICAgICBmaWx0ZXIgPSB7ICd2bnMnIDogdm5zX25hbWUgfSBpZiB2bnNfbmFtZSAhPSAnYWxsJyBlbHNlIHt9CisgICAgICAgIGlmIGxlbih3b3Jkcyk6CisgICAgICAgICAgICBmaWx0ZXJbJ21hYyddID0gd29yZHNbMF0KKyAgICAgICAgZW50cmllcyA9IHJlc3RfdG9fbW9kZWwuZ2V0X21vZGVsX2Zyb21fdXJsKCdob3N0LXZucy1pbnRlcmZhY2UnLCBmaWx0ZXIpCisgICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgZmllbGRzPWVudHJ5Wyd2bnMnXS5zcGxpdCgnfCcpCisgICAgICAgICAgICBlbnRyeVsndGVuYW50J109ZmllbGRzWzBdCisgICAgICAgICAgICBlbnRyeVsndm5zJ109ZmllbGRzWzFdCisgICAgICAgIHdpdGhfa2V5ID0gJzxub19rZXk+JworICAgICAgICBpZiBsZW4od29yZHMpID4gMDoKKyAgICAgICAgICAgIHdpdGhfa2V5ID0gd29yZHNbMF0KKworICAgICAgICAjZGV0YWlsID0gJ3ZucycgICAgICAgICAgIyBleGNsdWRlIHZucyBjb2x1bW4sIHZucyBpcyBuYW1lZAorICAgICAgICBkZXRhaWwgPSAnZGVmYXVsdCcgICAgICAgICAgIyBleGNsdWRlIHZucyBjb2x1bW4sIHZucyBpcyBuYW1lZAorICAgICAgICBpZiB2bnNfbmFtZSA9PSAnYWxsJzoKKyAgICAgICAgICAgIGRldGFpbCA9ICdkZWZhdWx0JyAgIyBpbmNsdWRlIHZucyBjb2x1bW4sIHZucyBub3QgbmFtZWQKKworICAgICAgICAjIHNlbGYudm5zX2pvaW5faG9zdF9maWVsZHMoJ2hvc3Qtdm5zLWludGVyZmFjZScsIGVudHJpZXMpCisgICAgICAgIHJldHVybiBzZWxmLmRpc3BsYXlfb2JqX3R5cGVfcm93cygnaG9zdC12bnMtaW50ZXJmYWNlLXZucycsIGVudHJpZXMsIHdpdGhfa2V5LCAnZGVmYXVsdCcpCisgICAgICAgIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBkb19zaG93X3Zuc19tYWNfYWRkcmVzc190YWJsZQorICAgICMgIGNvbmZpZyBhbmQgdm5zIG1vZGUgJ3Nob3cgbWFjLWFkZHJlc3MtdGFibGUnIGNvbW1hbmQKKyAgICAjCisgICAgZGVmIGRvX3Nob3dfdm5zX21hY19hZGRyZXNzX3RhYmxlKHNlbGYsIHdvcmRzKToKKyAgICAgICAgaWYgd29yZHMgPT0gTm9uZSBvciBsZW4od29yZHMpID4gMjoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnN5bnRheF9tc2coJ3Nob3cgbWFjLWFkZHJlc3MtdGFibGUgPGhvc3Q+JykKKworICAgICAgICBpZiBzZWxmLmluX2NvbmZpZ19zdWJtb2RlKCdjb25maWctdm5zJyk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5kaXNwbGF5X3Zuc19tYWNfYWRkcmVzc190YWJsZShzZWxmLnZuc19uYW1lKCksIHdvcmRzKQorCisgICAgICAgIGlmIGxlbih3b3JkcykgPiAwOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZG9fc2hvd19vYmplY3QoWydob3N0J10gKyB3b3JkcywgJ3dpdGhfa2V5JykKKyAgICAgICAgcmV0dXJuIHNlbGYuZG9fc2hvd19vYmplY3QoWydob3N0J10pCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fc2hvd19zd2l0Y2hfY2x1c3RlcgorICAgICMKKyAgICBkZWYgZG9fc2hvd19zd2l0Y2hfY2x1c3RlcihzZWxmLCB3b3Jkcyk6CisgICAgICAgIGRhdGEgPSBzZWxmLnJlc3Rfc2ltcGxlX3JlcXVlc3RfdG9fZGljdCgKKyAgICAgICAgICAgICAgICAgICAgJ2h0dHA6Ly8lcy9yZXN0L3YxL3JlYWx0aW1lc3RhdHVzL25ldHdvcmsvY2x1c3Rlci8nICUgc2VsZi5jb250cm9sbGVyKQorCisgICAgICAgIGZvcm1hdHRlZF9kYXRhID0gW10KKyAgICAgICAgZm9yIChjbHVzdGVyaWQsIHN3aXRjaGlkcykgaW4gZGF0YS5pdGVtcygpOgorICAgICAgICAgICAgcm93ID0ge30KKyAgICAgICAgICAgIHJvd1snc3dpdGNoZXMnXSA9IHN3aXRjaGlkcworICAgICAgICAgICAgcm93WydjbHVzdGVyLWlkJ10gPSBjbHVzdGVyaWQKKyAgICAgICAgICAgIGZvcm1hdHRlZF9kYXRhLmFwcGVuZChyb3cpCisgICAgICAgIHJldHVybiBzZWxmLmRpc3BsYXlfb2JqX3R5cGVfcm93cygnc3dpdGNoLWNsdXN0ZXInLCBmb3JtYXR0ZWRfZGF0YSkKKyAgICAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fc2hvd19jb250cm9sbGVyX3N1bW1hcnkKKyAgICAjCisgICAgZGVmIGRvX3Nob3dfY29udHJvbGxlcl9zdW1tYXJ5KHNlbGYsIHdvcmRzKToKKyAgICAgICAgZGF0YSA9IHNlbGYucmVzdF9zaW1wbGVfcmVxdWVzdF90b19kaWN0KAorICAgICAgICAgICAgICAgICAgICAnaHR0cDovLyVzL3Jlc3QvdjEvY29udHJvbGxlci9zdW1tYXJ5JyAlIHNlbGYuY29udHJvbGxlcikKKworICAgICAgICAjIFhYWCBOZWVkIGEgd2F5IHRvIHNvcnQgdGhlIGRhdGEgaW4gYSB3YXkgdGhhdCBtYWtlcyBzZW5zZQorICAgICAgICBmb3IgKGtleSwgdmFsdWUpIGluIGRhdGEuaXRlbXMoKToKKyAgICAgICAgICAgIHlpZWxkIGtleSArICI6ICAiICsgc3RyKHZhbHVlKSArICJcbiIKKyAgICAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZ2V0X3N0YXRpc3RpY3NfdHlwZQorICAgICMKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGdldF9zdGF0aXN0aWNzX3R5cGUoc3RhdF90eXBlKToKKyAgICAgICAgZm9yIHMgaW4gWyJmbG93IiwgInBvcnQiLCAidGFibGUiLCAiZGVzYyIsICJhZ2dyZWdhdGUiLCAiZmVhdHVyZXMiLCAidHJhY2UiLF06CisgICAgICAgICAgICBpZiBzLnN0YXJ0c3dpdGgoc3RhdF90eXBlKToKKyAgICAgICAgICAgICAgICByZXR1cm4gcworICAgICAgICByZXR1cm4gTm9uZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGZpeF9yZWFsdGltZV9mbG93c193aWxkY2FyZF9maWVsZHMKKyAgICAjCisgICAgZGVmIGZpeF9yZWFsdGltZV9mbG93X3dpbGRjYXJkX2ZpZWxkcyhzZWxmLCBpbl9kYXRhKToKKyAgICAgICAgZm9yIGwgaW4gaW5fZGF0YToKKyAgICAgICAgICAgIGlmICd3aWxkY2FyZHMnIGluIGw6CisgICAgICAgICAgICAgICAgd2lsZGNhcmRzID0gbFsnd2lsZGNhcmRzJ10KKyAgICAgICAgICAgICAgICBiaXRfZmllbGRfbWFwID0geworICAgICAgICAgICAgICAgICAgICAwIDogJ2lucHV0UG9ydCcsCisgICAgICAgICAgICAgICAgICAgIDEgOiAnZGF0YUxheWVyVmlydHVhbExhbicsCisgICAgICAgICAgICAgICAgICAgIDIgOiAnZGF0YUxheWVyU291cmNlJywKKyAgICAgICAgICAgICAgICAgICAgMyA6ICdkYXRhTGF5ZXJEZXN0aW5hdGlvbicsCisgICAgICAgICAgICAgICAgICAgIDQgOiAnZGF0YUxheWVyVHlwZScsCisgICAgICAgICAgICAgICAgICAgIDUgOiAnbmV0d29ya1Byb3RvY29sJywKKyAgICAgICAgICAgICAgICAgICAgNiA6ICd0cmFuc3BvcnRTb3VyY2UnLAorICAgICAgICAgICAgICAgICAgICA3IDogJ3RyYW5zcG9ydERlc3RpbmF0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgMTMgOiAnbmV0d29ya1NvdXJjZScsCisgICAgICAgICAgICAgICAgICAgIDE5IDogJ25ldHdvcmtEZXN0aW5hdGlvbicsCisgICAgICAgICAgICAgICAgICAgIDIwIDogJ2RhdGFMYXllclZpcnR1YWxMYW5Qcmlvcml0eUNvZGVQb2ludCcsCisgICAgICAgICAgICAgICAgICAgIDIxIDogJ25ldHdvcmtUeXBlT2ZTZXJ2aWNlJywKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIGZvciAoaywgdikgaW4gYml0X2ZpZWxkX21hcC5pdGVtcygpOgorICAgICAgICAgICAgICAgICAgICBpZiB3aWxkY2FyZHMgJiAoMSA8PCBrKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGxbdl0gPSAiKiIKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBmaXhfcmVhbHRpbWVfZmxvd3MKKyAgICAjCisgICAgZGVmIGZpeF9yZWFsdGltZV9mbG93cyhzZWxmLCBpbl9kYXRhKToKKyAgICAgICAgaWYgbm90IGluX2RhdGE6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIyBmbGF0dGVuIG1hdGNoIGRhdGEKKyAgICAgICAgZm9yIGwgaW4gaW5fZGF0YToKKyAgICAgICAgICAgIG1hdGNoX2RpY3QgPSBsWydtYXRjaCddCisgICAgICAgICAgICBsLnVwZGF0ZShtYXRjaF9kaWN0KQorICAgICAgICAgICAgZGVsKGxbJ21hdGNoJ10pCisKKyAgICAgICAgc2VsZi5maXhfcmVhbHRpbWVfZmxvd193aWxkY2FyZF9maWVsZHMoaW5fZGF0YSkKKyAgICAgICAgcmV0dXJuIGluX2RhdGEKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBhZGRfZHBpZF90b19kYXRhCisgICAgIworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgYWRkX2RwaWRfdG9fZGF0YShkYXRhKToKKyAgICAgICAgaWYgbm90IHR5cGUoZGF0YSkgaXMgZGljdDogIyBiYWNrd2FyZC1jb21wYXRpYmxlCisgICAgICAgICAgICByZXR1cm4gZGF0YSAKKyAgICAgICAgZm9ybWF0dGVkX2xpc3QgPSBbXQorICAgICAgICBmb3IgKGRwaWQsIHJvd3MpIGluIGRhdGEuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIHJvd3MgIT0gTm9uZToKKyAgICAgICAgICAgICAgICBmb3Igcm93IGluIHJvd3M6CisgICAgICAgICAgICAgICAgICAgIHJvd1snc3dpdGNoJ10gPSBkcGlkCisgICAgICAgICAgICAgICAgICAgIGZvcm1hdHRlZF9saXN0LmFwcGVuZChyb3cpCisgICAgICAgICMjIFRPRE8gLSBBbGV4IC0gaGFuZGxlIHRpbWVvdXRzICsgc29ydGluZworICAgICAgICByZXR1cm4gZm9ybWF0dGVkX2xpc3QKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBkb19zaG93X3N0YXRpc3RpY3MKKyAgICAjCisgICAgIyBMT09LISB3ZSBjb3VsZCBnZXQgcmlkIG9mIHNob3cgc3RhdGlzdGljcyBhdCB0aGlzIHBvaW50IGFzIGl0IGlzIGFsbCB1bmRlcgorICAgICMgc2hvdyBzd2l0Y2ghCisgICAgIworICAgICMgaXQncyBjb25mdXNpbmcgdG8gcmVtYXAgaXQgb3ZlciBoZXJlLi4uCisgICAgIyB3ZSBjb3VsZCByZW1vdmUgc2hvdyBmbG93LWVudHJ5IHJlYWx0aW1lIHRvbyBmb3Igbm93CisgICAgIworICAgIGRlZiBkb19zaG93X3N0YXRpc3RpY3Moc2VsZiwgd29yZHMpOgorICAgICAgICBpZiBsZW4od29yZHMpIDwgMToKKyAgICAgICAgICAgIHJldHVybiAiU3ludGF4OiBzaG93IHN0YXRpc3RpY3MgPCBmbG93IHwgcG9ydCB8IHRhYmxlIHwgZGVzYyB8IGFnZ3JlZ2F0ZSB8ICIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJmZWF0dXJlcyB8IHRyYWNlID4gPCBTd2l0Y2ggRFBJRCB8IFN3aXRjaCBhbGlhcyB8IGFsbCA+IgorICAgICAgICBzdGF0X3R5cGUgPSBzZWxmLmdldF9zdGF0aXN0aWNzX3R5cGUod29yZHNbMF0pCisgICAgICAgIGRwaWQgPSBOb25lCisgICAgICAgIGlmIGxlbih3b3JkcykgPiAxOgorICAgICAgICAgICAgd29yZHNbMV0gPSBjb252ZXJ0X2FsaWFzX3RvX29iamVjdF9rZXkoInN3aXRjaCIsIHdvcmRzWzFdKQorICAgICAgICAgICAgZHBpZCA9IHdvcmRzWzFdICMgTE9PSyEgRXZlbnR1YWxseSBvcHRpb25hbCBzbyB3ZSBjYW4gc2hvdyBhY3Jvc3Mgc3dpdGNoZXMKKyAgICAgICAgICAgIGlmIG5vdCBkcGlkIGluIG9iamVjdHNfc3RhcnRpbmdfd2l0aCgic3dpdGNoIiwgZHBpZCkgYW5kIGRwaWQgIT0gImFsbCI6IAorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygiTm8gc3dpdGNoICVzIGZvdW5kIiAlIGRwaWQpCisgICAgICAgIGlmIHN0YXRfdHlwZSA9PSAiZmxvdyI6CisgICAgICAgICAgICBkYXRhID0gc2VsZi5yZXN0X3NpbXBsZV9yZXF1ZXN0X3RvX2RpY3QoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwOi8vJXMvcmVzdC92MS9yZWFsdGltZXN0YXRzL2Zsb3cvJXMvJyAlIChzZWxmLmNvbnRyb2xsZXIsZHBpZCkpICAgICAgICAgICAgCisgICAgICAgICAgICBkYXRhID0gc2VsZi5hZGRfZHBpZF90b19kYXRhKGRhdGEpICAgICAgICAgICAgCisgICAgICAgICAgICBkYXRhID0gc2VsZi5maXhfcmVhbHRpbWVfZmxvd3MoZGF0YSkgICAgICAgICAgICAKKworICAgICAgICAgICAgIyAKKyAgICAgICAgICAgICMgaXQgbWF5IG1ha2Ugc2Vuc2UgdG8gbW92ZSBbJ2RldGFpbHMnLCAnYnJpZWYnXSB0cCBzb21lIHNvcnQgb2YKKyAgICAgICAgICAgICMgJ3Nob3dfb2JqZWN0X29wdGlvbmFsX2Zvcm1hdF9rZXl3b3JkcycgbGlzdAorICAgICAgICAgICAgZmllbGRfb3JkZXJpbmcgPSAiZGVmYXVsdCIKKyAgICAgICAgICAgIGlmIGxlbih3b3JkcykgPT0gMzoKKyAgICAgICAgICAgICAgICBjaG9pY2VzID0gW3ggZm9yIHggaW4gWyJkZXRhaWxzIiwgImJyaWVmIl0gaWYgeC5zdGFydHN3aXRoKHdvcmRzWzJdKV0KKyAgICAgICAgICAgICAgICBpZiBsZW4oY2hvaWNlcykgIT0gMToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJzd2l0Y2ggZmxvdyBvcHRpb25zIGFyZSBlaXRoZXIgJ2RldGFpbHMnIG9yICdicmllZiciKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGZpZWxkX29yZGVyaW5nID0gY2hvaWNlc1swXQorICAgICAgICAgICAgdGFibGVfZGF0YSA9IHNlbGYucHAuZm9ybWF0X3RhYmxlKGRhdGEsICJyZWFsdGltZV9mbG93IiwgZmllbGRfb3JkZXJpbmcpCisgICAgICAgICAgICByZXR1cm4gdGFibGVfZGF0YQorICAgICAgICBlbGlmIHN0YXRfdHlwZSA9PSAidHJhY2UiOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZG9fdHJhY2Uod29yZHMpCisgICAgICAgIGVsaWYgd29yZHNbMF0gPT0gInN3aXRjaGVzIjoKKyAgICAgICAgICAgIGRhdGEgPSBzZWxmLnJlc3Rfc2ltcGxlX3JlcXVlc3RfdG9fZGljdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaHR0cDovLyVzL3Jlc3QvdjEvY29udHJvbGxlci9zdGF0cy8lcy8nICUgKHNlbGYuY29udHJvbGxlciwgd29yZHNbMF0pKQorICAgICAgICAgICAgdGFibGVfZGF0YSA9IHNlbGYucHAuZm9ybWF0X3RhYmxlKGRhdGEsICJjb250cm9sbGVyXyIrd29yZHNbMF0pCisgICAgICAgICAgICByZXR1cm4gdGFibGVfZGF0YQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZGF0YSA9IHNlbGYucmVzdF9zaW1wbGVfcmVxdWVzdF90b19kaWN0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdodHRwOi8vJXMvcmVzdC92MS9yZWFsdGltZXN0YXRzLyVzLyVzLycgJSAoc2VsZi5jb250cm9sbGVyLCBzdGF0X3R5cGUsIGRwaWQpKQorICAgICAgICAgICAgaWYgc3RhdF90eXBlID09ICJmZWF0dXJlcyI6CisgICAgICAgICAgICAgICAgZm9yIGRwaWQgaW4gZGF0YToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVtkcGlkXSA9IGRhdGFbZHBpZF1bInBvcnRzIl0KKyAgICAgICAgICAgIGRhdGEgPSBzZWxmLmFkZF9kcGlkX3RvX2RhdGEoZGF0YSkKKyAgICAgICAgICAgIHRhYmxlX2RhdGEgPSBzZWxmLnBwLmZvcm1hdF90YWJsZShkYXRhLCAicmVhbHRpbWVfIitzdGF0X3R5cGUpCisgICAgICAgICAgICByZXR1cm4gdGFibGVfZGF0YQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGRvX3Nob3dfdmVyc2lvbgorICAgICMKKyAgICBkZWYgZG9fc2hvd192ZXJzaW9uKHNlbGYsIHdvcmRzKToKKyAgICAgICAgIyBMT09LISB0aGlzIHNob3VsZCBwcm9iYWJseSBjb21lIGZyb20gdGhlIGNvbnRyb2xsZXIsIGJ1dCBmb3Igbm93CisgICAgICAgICMgd2UgYXNzdW1lIHRoZSBDTEkvY29udHJvbGxlciBhcmUgZnJvbSB0aGUgc2FtZSBidWlsZAorICAgICAgICB2ZXJzaW9uX3N0cmluZyA9ICJTRE5PUyAxLjAgLSBjdXN0b20gdmVyc2lvbiIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZmggPSBvcGVuKCIvb3B0L3NkbnBsYXRmb3JtL3JlbGVhc2UiKSAKKyAgICAgICAgICAgIHZlcnNpb25fc3RyaW5nID0gZmgucmVhZGxpbmUoKS5yc3RyaXAoKQorICAgICAgICAgICAgZmguY2xvc2UoKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHJldHVybiB2ZXJzaW9uX3N0cmluZworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGRvX2RhdGUKKyAgICAjCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBkb19kYXRlKHdvcmRzKToKKyAgICAgICAgcmV0dXJuIHRpbWUuc3RyZnRpbWUoIiVZLSVtLSVkICVIOiVNOiVTICVaIiwgdGltZS5sb2NhbHRpbWUoKSkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBjcF9zaG93X2xvZ2dpbmcKKyAgICAjCisgICAgZGVmIGNwX3Nob3dfbG9nZ2luZyhzZWxmLCB3b3JkcywgdGV4dCwgY29tcGxldGlvbl9jaGFyKToKKyAgICAgICAgaWYgbGVuKHdvcmRzKSA9PSAxOgorICAgICAgICAgICAgcmV0dXJuIFt4IGZvciB4IGluIFsic2RucGxhdGZvcm0iLCAiY2Fzc2FuZHJhIiwgImNvbnNvbGUtYWNjZXNzIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJzeXNsb2ciLCAiYXV0aGxvZyIsICJvcmNoZXN0cmF0aW9ubG9nIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJhbGwiIF0gaWYgeC5zdGFydHN3aXRoKHRleHQpXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoIjxjcj4iKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGdlbmVyYXRlX3N1YnBwcm9jZXNzX291dHB1dAorICAgICMKKyAgICBkZWYgZ2VuZXJhdGVfc3VicHJvY2Vzc19vdXRwdXQoc2VsZiwgY21kKToKKyAgICAgICAgcHJvY2VzcyA9IHN1YnByb2Nlc3MuUG9wZW4oY21kLCBzaGVsbD1UcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkZXJyPXN1YnByb2Nlc3MuU1RET1VULAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWZzaXplPTEpCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICBsaW5lID0gcHJvY2Vzcy5zdGRvdXQucmVhZGxpbmUoKQorICAgICAgICAgICAgaWYgbGluZSAhPSBOb25lIGFuZCBsaW5lICE9ICIiOgorICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIworICAgIGRlZiBpbXBsZW1lbnRfc2hvd19sb2dnaW5nKHNlbGYsIHdvcmRzKToKKyAgICAgICAgbG9nX2ZpbGVzID0geyAic2RucGxhdGZvcm0iIDogImNhdCAvb3B0L3NkbnBsYXRmb3JtL3NkbnBsYXRmb3JtL2xvZy9zZG5wbGF0Zm9ybS5sb2ciLAorICAgICAgICAgICAgICAgICAgICAgICJjYXNzYW5kcmEiIDogImNhdCAvb3B0L3NkbnBsYXRmb3JtL2RiL2xvZy9zeXN0ZW0ubG9nIiwKKyAgICAgICAgICAgICAgICAgICAgICAiY29uc29sZS1hY2Nlc3MiIDogImNhdCAvb3B0L3NkbnBsYXRmb3JtL2Nvbi9sb2cvYWNjZXNzLmxvZyIsCisgICAgICAgICAgICAgICAgICAgICAgInN5c2xvZyIgOiAiY2F0IC92YXIvbG9nL3N5c2xvZyIsCisgICAgICAgICAgICAgICAgICAgICAgImF1dGhsb2ciIDogImNhdCAvdmFyL2xvZy9hdXRoLmxvZyIsCisgICAgICAgICAgICAgICAgICAgICAgIm9yY2hlc3RyYXRpb25sb2ciIDogImNhdCAvdG1wL25ldHdvcmtzZXJ2aWNlLmxvZyIsCisgICAgICAgICAgICAgICAgICAgICAgImRtZXNnIiA6ICJkbWVzZyIsCisgICAgICAgICAgICAgICAgICAgICAgImFsbCIgOiAiIiAgIyBzcGVjaWFsCisgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICBpZiBsZW4od29yZHMpIDwgMToKKyAgICAgICAgICAgIHlpZWxkICJTeW50YXg6IHNob3cgbG9nZ2luZyA8ICVzID4gIiAlICIgfCAiLmpvaW4obG9nX2ZpbGVzLmtleXMoKSkKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBmb3IgKGYsIGNtZCkgaW4gbG9nX2ZpbGVzLml0ZW1zKCk6CisgICAgICAgICAgICBpZiAoZi5zdGFydHN3aXRoKHdvcmRzWzBdKSBvciAiYWxsIi5zdGFydHN3aXRoKHdvcmRzWzBdKSkgYW5kIGYgIT0gImFsbCI6CisgICAgICAgICAgICAgICAgeWllbGQgIioiKjgwICsgIlxuIgorICAgICAgICAgICAgICAgIHlpZWxkICJvdXRwdXQgb2YgJXMgZm9yICVzXG4iICUgKGNtZCwgZikKKyAgICAgICAgICAgICAgICB5aWVsZCAiKiIqODAgKyAiXG4iCisgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5nZW5lcmF0ZV9zdWJwcm9jZXNzX291dHB1dChjbWQpOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCBpdGVtCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fc2hvd190ZWNoX3N1cHBvcnQKKyAgICAjCisgICAgZGVmIGRvX3Nob3dfdGVjaF9zdXBwb3J0KHNlbGYsIHdvcmRzKToKKworICAgICAgICBvbGRkID0gc2VsZi5kZWJ1ZworICAgIAorICAgICAgICB0ZWNoX3N1cHBvcnRfdGFibGUgPSBbXQorCisgICAgICAgICMgQWRkIHRoZSB1c2VyIGN1c3RvbWl6ZWQgY29tbWFuZCBpbiB0ZWNoLXN1cHBvcnQtY29uZmlnIHRhYmxlCisgICAgICAgIGVudHJpZXMgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCd0ZWNoLXN1cHBvcnQtY29uZmlnJykKKyAgICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICAjIG5lZWQgZXhwbGljaXQgdHlwZSBjYXN0aW5nIHN0cigpIHRvIG1ha2UgY29tbWFuZCBoYW5kbGluZyB3b3JrCisgICAgICAgICAgICB0ZWNoX3N1cHBvcnRfdGFibGUuYXBwZW5kKFtzdHIoZW50cnlbJ2NtZC10eXBlJ10pLCBzdHIoZW50cnlbJ2NtZCddKSwgTm9uZV0pCisKKyAgICAgICAgIyBBZGQgdGhlIGxpc3Qgb2YgY29tbWFuZCBjb25maWd1cmVkIGZvciB0aGUgYmFzaWMgc3VwcG9ydAorICAgICAgICBmb3IgZW50cnkgaW4gdGVjaF9zdXBwb3J0LmdldF9zaG93X3RlY2hfY21kX3RhYmxlKCk6CisgICAgICAgICAgICB0ZWNoX3N1cHBvcnRfdGFibGUuYXBwZW5kKGVudHJ5KQorCisgICAgCisgICAgICAgIGZvciBlbnRyeSBpbiB0ZWNoX3N1cHBvcnRfdGFibGU6CisgICAgICAgICAgICBjbWRfdHlwZSA9IGVudHJ5WzBdCisgICAgICAgICAgICBjbWQgPSBlbnRyeVsxXQorICAgICAgICAgICAgZmVhdHVyZSA9IGVudHJ5WzJdCisgICAgCisgICAgICAgICAgICAjIElmIGZlYXR1cmUgaXMgbm9uLW51bGwsIHRoZW4gY2hlY2sgZmVhdHVyZSBpcyBlbmFibGVkIAorICAgICAgICAgICAgIyBiZWZvcmUgZXhlY3V0aW5nIHRoZSBjb21tYW5kCisgICAgICAgICAgICBpZiBmZWF0dXJlICE9IE5vbmUgYW5kIHNlbGYuZmVhdHVyZV9lbmFibGVkKGZlYXR1cmUpID09IEZhbHNlIDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgIAorICAgICAgICAgICAgaWYgY21kX3R5cGUgPT0gJ2NsaSc6CisgICAgICAgICAgICAgICAgeWllbGQgIlxuXG4iICsgIi0iKjgwICsgIlxuRXhlY3V0ZSBjbGk6ICIgKyBjbWQgKyAiXG5cbiIKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIHNlbGYuZ2VuZXJhdGVfY29tbWFuZF9vdXRwdXQoc2VsZi5oYW5kbGVfc2luZ2xlX2xpbmUoY21kKSk6CisgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCBpdGVtCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgICAgICAgICB5aWVsZCAiRmFpbGVkIHRvIGV4ZWN1dGUgJXM6ICVzXG4iICUgKGNtZCwgZSkKKyAgICAgICAgICAgIGVsaWYgY21kX3R5cGUgPT0gJ3NoZWxsJzoKKyAgICAgICAgICAgICAgICB5aWVsZCAiXG5cbiIgKyAiLSIqODAgKyAiXG5FeGVjdXRpbmcgb3MgY29tbWFuZDogIiArIGNtZCArICJcblxuIgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5nZW5lcmF0ZV9zdWJwcm9jZXNzX291dHB1dChjbWQpOgorICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgaXRlbQorICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgIkZhaWxlZCB0byBydW4gY29tbWFuZCAlczogJXNcbiIgJSAoY21kLCBlKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB5aWVsZCAiVW5rbm93biBjb21tYW5kIHR5cGUgJXM6ICVzXG4iICUgKGNtZF90eXBlLCBjbWQpCisgICAgCisgICAgICAgIHNlbGYuZGVidWcgPSBvbGRkCisKKworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGVsbF9lc3NfbWludXNfcgorICAgICMgIERvICJscyAtUiIsIHJldHVyaW5nIHRoZSBsaXN0IG9mIGZpbGVzIHVuZGVybmVhdGggInByZWZpeCIuCisgICAgIyAgVGhlIGludGVuZGVkIGV4dGVybmFsIGNhbGwgaXMgCisgICAgIyAgZWxsX2Vzc19taW51c19yKHJldHVybmVkX2l0ZW1zLCAiL29wdC9zZG5wbGF0Zm9ybS8uLi4iLCAgIiIpLAorICAgICMgIHdoZXJlIHRoZSBwYXRoIHBhcmFtZXRlciBpcyBudWxsIHRvIGJlZ2luIHRoZSB3YWxrLgorICAgICMKKyAgICAjICBUaGUgcmV0dXJuZWQgaXRlbXMgd29uJ3QgaGF2ZSB0aGUgb3JpZ2luYWwgcHJlZml4IGluIHRoZSBpdGVtcworICAgICMKKyAgICAjICBYWFg6IFRoZXJlJ3Mgbm8gYm91bmRpbmcgZm9yIHRoZSByZWN1cnNpdmUgZGVzY2VudC4KKyAgICAjCisgICAgZGVmIGVsbF9lc3NfbWludXNfcihzZWxmLCBpdGVtcywgcHJlZml4LCBwYXRoKToKKyAgICAgICAgcCA9IG9zLnBhdGguam9pbihwcmVmaXgsIHBhdGgpCisgICAgICAgIGlmIG9zLnBhdGguaXNkaXIocCk6CisgICAgICAgICAgICBmb3IgZW50cnkgaW4gb3MubGlzdGRpcihwKToKKyAgICAgICAgICAgICAgICBuZXdfcGF0aCA9IG9zLnBhdGguam9pbihwYXRoLCBlbnRyeSkKKyAgICAgICAgICAgICAgICBpZiBvcy5wYXRoLmlzZGlyKG9zLnBhdGguam9pbihwcmVmaXgsIG5ld19wYXRoKSk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuZWxsX2Vzc19taW51c19yKGl0ZW1zLCBwcmVmaXgsIG5ld19wYXRoKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGl0ZW1zLmFwcGVuZChvcy5wYXRoLmpvaW4ocGF0aCwgZW50cnkpKQorICAgICAgICByZXR1cm4gaXRlbXMKKyAgICAgICAgICAgIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBpbXBsZW1lbnRfc2hvd19jb25maWdfZmlsZQorICAgICMgICdzaG93IGNvbmZpZyBmaWxlJyBkaXNwbGF5cyB0aGUgbG9jYWwgZmlsZXMgdW5kZXIgc2VsZi5zYXZlZF9jb25maWdzX2Rpcm5hbWUKKyAgICAjICAgY3VycmVudGx5IC9vcHQvc2RucGxhdGZvcm0vcnVuL3NhdmVkLWNvbmZpZ3MKKyAgICAjCisgICAgZGVmIGltcGxlbWVudF9zaG93X2NvbmZpZ19maWxlKHNlbGYsIHdvcmRzKToKKyAgICAgICAgaXRlbXMgPSBbXQorICAgICAgICBzZWxmLmVsbF9lc3NfbWludXNfcihpdGVtcywgc2VsZi5zYXZlZF9jb25maWdzX2Rpcm5hbWUsICIiKQorCisgICAgICAgIGlmIGxlbih3b3JkcykgPT0gMToKKyAgICAgICAgICAgIGVudHJpZXMgPSBbXQorICAgICAgICAgICAgZm9yIGkgaW4gaXRlbXM6CisgICAgICAgICAgICAgICAgY2YgPSBvcy5wYXRoLmpvaW4oc2VsZi5zYXZlZF9jb25maWdzX2Rpcm5hbWUsIGkpCisgICAgICAgICAgICAgICAgdCA9IHRpbWUuc3RyZnRpbWUoIiVZLSVtLSVkLiVIOiVNOiVTIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aW1lLmxvY2FsdGltZShvcy5wYXRoLmdldG10aW1lKGNmKSkpCisgICAgICAgICAgICAgICAgZW50cmllcy5hcHBlbmQoeyduYW1lJyA6IGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0aW1lc3RhbXAnOiB0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGVuZ3RoJyA6IHN0cihvcy5wYXRoLmdldHNpemUoY2YpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgcmV0dXJuIHNlbGYucHAuZm9ybWF0X3RhYmxlKGVudHJpZXMsJ2NvbmZpZycpCisgICAgICAgIGVsaWYgbGVuKHdvcmRzKSA9PSAyOgorICAgICAgICAgICAgaWYgd29yZHNbMV0gaW4gaXRlbXM6CisgICAgICAgICAgICAgICAgc3JjX2ZpbGUgPSBzZWxmLnBhdGhfY29uY2F0KHNlbGYuc2F2ZWRfY29uZmlnc19kaXJuYW1lLCB3b3Jkc1sxXSkKKyAgICAgICAgICAgICAgICBpZiBzcmNfZmlsZSA9PSAiIjoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJmaWxlICVzIGNvdWxkIG5vdCBiZSAiIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVycHJldGVkIGFzIGEgdmFsaWQgc291cmNlIiAlIHdvcmRzWzFdKQorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuc3RvcmUuZ2V0X3RleHRfZnJvbV91cmwoImZpbGU6Ly8iICsgc3JjX2ZpbGUpCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKHdvcmRzWzFdICsgIjoiICsgc3RyKGUpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coIiVzIGZpbGUgdW5rbm93biIgJSB3b3Jkc1sxXSkKKyAgICAjCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGltcGxlbWVudF9zaG93X2NvbmZpZworICAgICMKKyAgICBkZWYgaW1wbGVtZW50X3Nob3dfY29uZmlnKHNlbGYsIHdvcmRzKToKKyAgICAgICAgbmFtZSA9IE5vbmUKKyAgICAgICAgc2hvd192ZXJzaW9uID0gImxhdGVzdCIKKyAgICAgICAgIyBoYW5kbGUgc2ggY29uZmlnIFsgPG5hbWU+IFsgYWxsIHwgPHZlcnNpb24gIz4gXSBdCisKKyAgICAgICAgaWYgbGVuKHdvcmRzKSA9PSAxOgorICAgICAgICAgICAgaWYgd29yZHNbMF0gPT0gImFsbCI6CisgICAgICAgICAgICAgICAgc2hvd192ZXJzaW9uID0gImFsbCIKKyAgICAgICAgICAgIGVsaWYgd29yZHNbMF0gPT0gImZpbGUiOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmltcGxlbWVudF9zaG93X2NvbmZpZ19maWxlKHdvcmRzKQorICAgICAgICAgICAgZWxpZiB3b3Jkc1swXS5zdGFydHN3aXRoKCdjb25maWc6Ly8nKToKKyAgICAgICAgICAgICAgICBuYW1lID0gd29yZHNbMF1bbGVuKCdjb25maWc6Ly8nKTpdCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG5hbWUgPSB3b3Jkc1swXQorICAgICAgICBlbGlmIGxlbih3b3JkcykgPT0gMjoKKyAgICAgICAgICAgIGlmIHdvcmRzWzBdID09ICdmaWxlJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5pbXBsZW1lbnRfc2hvd19jb25maWdfZmlsZSh3b3JkcykKKyAgICAgICAgICAgIG5hbWUgPSB3b3Jkc1swXQorICAgICAgICAgICAgc2hvd192ZXJzaW9uID0gd29yZHNbMV0KKyAgICAgICAgZWxpZiBsZW4od29yZHMpID09IDMgYW5kIHdvcmRzWzFdID09ICJkaWZmIjoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmRpZmZfdHdvX2NvbmZpZ3Mod29yZHNbMF0sIHdvcmRzWzJdKQorICAgICAgICBlbGlmIGxlbih3b3JkcykgPT0gNCBhbmQgd29yZHNbMV0gPT0gImRpZmYiOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZGlmZl90d29fdmVyc2lvbnMod29yZHNbMF0sIHdvcmRzWzJdLCB3b3Jkc1szXSkKKworICAgICAgICBkYXRhID0gc2VsZi5zdG9yZS5nZXRfdXNlcl9kYXRhX3RhYmxlKG5hbWUsIHNob3dfdmVyc2lvbikKKyAgICAgICAgaWYgZGF0YSBhbmQgbGVuKGRhdGEpID4gMSBvciBuYW1lID09IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5wcC5mb3JtYXRfdGFibGUoZGF0YSwnY29uZmlnJykKKyAgICAgICAgZWxpZiBkYXRhIGFuZCBsZW4oZGF0YSkgPT0gMToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnN0b3JlLmdldF91c2VyX2RhdGFfZmlsZShkYXRhWzBdWydmdWxsX25hbWUnXSlbOi0xXQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGRpZmZfdHdvX3ZlcnNpb25zCisgICAgIworICAgIGRlZiBkaWZmX3R3b192ZXJzaW9ucyhzZWxmLCBuYW1lLCB2YSwgdmIpOgorICAgICAgICB2YV9pbmZvID0gc2VsZi5zdG9yZS5nZXRfdXNlcl9kYXRhX3RhYmxlKG5hbWUsIHZhKQorICAgICAgICBpZiBsZW4odmFfaW5mbykgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygiVmVyc2lvbiAlcyBtaXNzaW5nIGZvciAlcyIgJSAgKHZhLCBuYW1lKSkKKyAgICAgICAgdmFfdHh0ID0gc2VsZi5zdG9yZS5nZXRfdXNlcl9kYXRhX2ZpbGUodmFfaW5mb1swXVsnZnVsbF9uYW1lJ10pCisgICAgICAgIHZiX2luZm8gPSBzZWxmLnN0b3JlLmdldF91c2VyX2RhdGFfdGFibGUobmFtZSwgdmIpCisgICAgICAgIGlmIGxlbih2Yl9pbmZvKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJWZXJzaW9uICVzIG1pc3NpbmcgZm9yICVzIiAlICh2YiwgbmFtZSkpCisgICAgICAgIHZiX3R4dCA9IHNlbGYuc3RvcmUuZ2V0X3VzZXJfZGF0YV9maWxlKHZiX2luZm9bMF1bJ2Z1bGxfbmFtZSddKQorICAgICAgICBpbXBvcnQgdGVtcGZpbGUKKyAgICAgICAgZmEgPSB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoZGVsZXRlPUZhbHNlKQorICAgICAgICBmYS53cml0ZSh2YV90eHQpCisgICAgICAgIGZhLmNsb3NlKCkKKyAgICAgICAgZmIgPSB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoZGVsZXRlPUZhbHNlKQorICAgICAgICBmYi53cml0ZSh2Yl90eHQpCisgICAgICAgIGZiLmNsb3NlKCkKKyAgICAgICAgY21kID0gJ2RpZmYgJXMgJXMgJyAlIChmYS5uYW1lLCBmYi5uYW1lKQorICAgICAgICBwcm9jZXNzID0gc3VicHJvY2Vzcy5Qb3BlbihjbWQsIHNoZWxsPVRydWUsIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUpCisgICAgICAgIChvdXRwdXQsIHN0ZGVycikgPSBwcm9jZXNzLmNvbW11bmljYXRlKCkKKyAgICAgICAgb3MudW5saW5rKGZhLm5hbWUpCisgICAgICAgIG9zLnVubGluayhmYi5uYW1lKQorICAgICAgICByZXR1cm4gb3V0cHV0CisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZGlmZl90d29fY29uZmlncworICAgICMKKyAgICBkZWYgZGlmZl90d29fY29uZmlncyhzZWxmLCBjb25maWdfYSwgY29uZmlnX2IpOgorICAgICAgICBpdGVtcyA9IHNlbGYuc3RvcmUuZ2V0X3VzZXJfZGF0YV90YWJsZShjb25maWdfYSwgImxhdGVzdCIpCisgICAgICAgIGlmIGxlbihpdGVtcykgPT0gMDoKKyAgICAgICAgICAgIGlmIGNvbmZpZ19hID09ICdydW5uaW5nLWNvbmZpZyc6CisgICAgICAgICAgICAgICAgdHh0X2EgPSBydW5fY29uZmlnLmltcGxlbWVudF9zaG93X3J1bm5pbmdfY29uZmlnKFtdKSArICJcbiIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCIlcyBjb25maWcgbWlzc2luZyIgJSBjb25maWdfYSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHR4dF9hID0gc2VsZi5zdG9yZS5nZXRfdXNlcl9kYXRhX2ZpbGUoaXRlbXNbMF1bJ2Z1bGxfbmFtZSddKQorCisgICAgICAgIGl0ZW1zID0gc2VsZi5zdG9yZS5nZXRfdXNlcl9kYXRhX3RhYmxlKGNvbmZpZ19iLCAibGF0ZXN0IikKKyAgICAgICAgaWYgbGVuKGl0ZW1zKSA9PSAwOgorICAgICAgICAgICAgaWYgY29uZmlnX2IgPT0gJ3J1bm5pbmctY29uZmlnJzoKKyAgICAgICAgICAgICAgICB0eHRfYiA9IHJ1bl9jb25maWcuaW1wbGVtZW50X3Nob3dfcnVubmluZ19jb25maWcoW10pICsgIlxuIgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coIiVzIGNvbmZpZyBtaXNzaW5nIiAlIGNvbmZpZ19iKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdHh0X2IgPSBzZWxmLnN0b3JlLmdldF91c2VyX2RhdGFfZmlsZShpdGVtc1swXVsnZnVsbF9uYW1lJ10pCisKKyAgICAgICAgaW1wb3J0IHRlbXBmaWxlCisgICAgICAgIGZhID0gdGVtcGZpbGUuTmFtZWRUZW1wb3JhcnlGaWxlKGRlbGV0ZT1GYWxzZSkKKyAgICAgICAgZmEud3JpdGUodHh0X2EpCisgICAgICAgIGZhLmNsb3NlKCkKKyAgICAgICAgZmIgPSB0ZW1wZmlsZS5OYW1lZFRlbXBvcmFyeUZpbGUoZGVsZXRlPUZhbHNlKQorICAgICAgICBmYi53cml0ZSh0eHRfYikKKyAgICAgICAgZmIuY2xvc2UoKQorICAgICAgICBjbWQgPSAnZGlmZiAlcyAlcyAnICUgKGZhLm5hbWUsIGZiLm5hbWUpCisgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKGNtZCwgc2hlbGw9VHJ1ZSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkKKyAgICAgICAgKG91dHB1dCwgc3RkZXJyKSA9IHByb2Nlc3MuY29tbXVuaWNhdGUoKQorICAgICAgICBvcy51bmxpbmsoZmEubmFtZSkKKyAgICAgICAgb3MudW5saW5rKGZiLm5hbWUpCisgICAgICAgIHJldHVybiBvdXRwdXQKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIworCisgICAgZGVmIGdldF9ob3N0X2F0dGFjaG1lbnRfc3dpdGNoX3BvcnQgKHNlbGYsIHF1ZXJ5X2RpY3QpOgorICAgICAgICAiIiIgCisgICAgICAgIEdldCBhIGhvc3QncyBhdHRhY2htZW50IHBvaW50IGlmIGl0IGlzIG5vdCBhbHJlYWR5IHByb3ZpZGVkLgorICAgICAgICBzZWUgaWYgdGhlIGhvc3QgaGFzIGFuIGF0dGFjaG1lbnQgcG9pbnQsIHVzZSB0aGUgc3dpdGNoIGFuZCBwb3J0CisgICAgICAgIG9mIHRoZSBhdHRhY2htZW50IHBvaW50LCBpZiBpdHMgYXZhaWxhYmxlCisgICAgICAgICIiIgorICAgICAgICBob3N0ID0gcmVzdF90b19tb2RlbC5nZXRfbW9kZWxfZnJvbV91cmwoJ2hvc3QnLCBxdWVyeV9kaWN0KQorICAgICAgICBpZiBsZW4oaG9zdCkgPT0gMDoKKyAgICAgICAgICAgIHByaW50IHNlbGYuZXJyb3JfbXNnKCdDYW5cJ3QgaWRlbnRpZnkgaG9zdCBkZXRhaWxzOiAlcycgJSBxdWVyeV9kaWN0KQorICAgICAgICAgICAgcmV0dXJuIChGYWxzZSxOb25lLE5vbmUpCisgICAgICAgIGF0dGFjaG1lbnRfcG9pbnRzID0gaG9zdFswXVsnYXR0YWNobWVudC1wb2ludHMnXQorICAgICAgICBpZiBhdHRhY2htZW50X3BvaW50cyA9PSBOb25lIG9yIGxlbihhdHRhY2htZW50X3BvaW50cykgPT0gMDoKKyAgICAgICAgICAgIHByaW50IHNlbGYuZXJyb3JfbXNnKCdDYW5cJ3QgaWRlbnRpZnkgYXR0YWNobWVudCBwb2ludCAlcycgJSBxdWVyeV9kaWN0KQorICAgICAgICAgICAgcmV0dXJuIChGYWxzZSxOb25lLE5vbmUpCisgICAgICAgIGlmIGxlbihhdHRhY2htZW50X3BvaW50cykgPT0gMToKKyAgICAgICAgICAgIHNyY19zdyAgICAgID0gYXR0YWNobWVudF9wb2ludHNbMF1bJ3N3aXRjaCddCisgICAgICAgICAgICBzcmNfc3dfcG9ydCA9IGF0dGFjaG1lbnRfcG9pbnRzWzBdWydpbmdyZXNzLXBvcnQnXQorICAgICAgICAgICAgcmV0dXJuIChUcnVlLCBzcmNfc3csIHNyY19zd19wb3J0KQorCisgICAgICAgIGludGVyZmFjZV9kaWN0ID0gY3JlYXRlX29ial90eXBlX2RpY3QoJ2ludGVyZmFjZXMnLCAnaWQnKQorICAgICAgICBzaG93X2xpc3QgPSBbXQorICAgICAgICBmb3IgYXAgaW4gYXR0YWNobWVudF9wb2ludHM6CisgICAgICAgICAgICBkcGlkID0gYXBbJ3N3aXRjaCddCisgICAgICAgICAgICBpbmdyZXNzX3BvcnQgPSBhcFsnaW5ncmVzcy1wb3J0J10KKworICAgICAgICAgICAgIyBhbGlhcyBmb3IgZHBpZAorICAgICAgICAgICAgc3dpdGNoX25hbWUgPSBhbGlhc19sb29rdXBfd2l0aF9mb3JlaWduX2tleSgnc3dpdGNoLWFsaWFzJywgZHBpZCkKKyAgICAgICAgICAgIGlmIG5vdCBzd2l0Y2hfbmFtZToKKyAgICAgICAgICAgICAgICBzd2l0Y2hfbmFtZSA9IGRwaWQKKyAgICAgICAgICAgICMgaW50ZXJmYWNlIG5hbWUgZm9yIGF0dGFjaG1lbnQgcG9pbnQKKyAgICAgICAgICAgIGFwX3BvcnRfaWQgPSBkcGlkICsgJ3wnICsgc3RyKGluZ3Jlc3NfcG9ydCkKKyAgICAgICAgICAgIGlmIGFwX3BvcnRfaWQgaW4gaW50ZXJmYWNlX2RpY3Q6CisgICAgICAgICAgICAgICAgc2hvd19saXN0LmFwcGVuZCgiJXMvJXMiICUgKHN3aXRjaF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2VfcG9ydFthcF9wb3J0X29kXVswXVsncG9ydE5hbWUnXSkpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNob3dfbGlzdC5hcHBlbmQoIiVzL3BvcnQgJXMiICUgKHN3aXRjaF9uYW1lLCBpbmdyZXNzX3BvcnQpKQorICAgICAgICAgICAgICAgIAorICAgICAgICBwcmludCBzZWxmLmVycm9yX21zZygnc3JjLWhvc3QgJXM6IG11bHRpcGxlIGF0dGFjaG1lbnQgcG9pbnRzOiAlcycgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3JjX21hYywgJywgJy5qb2luKHNob3dfbGlzdCkpKQorICAgICAgICBwcmludCBzZWxmLmVycm9yX21zZygncmVydW4sIGFuZCBpZGVudGlmeSBzcmMtc3dpdGNoIGFuZCBpbnRlcmZhY2UnKQorICAgICAgICByZXR1cm4gKEZhbHNlLE5vbmUsTm9uZSkKKworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHRlc3QgcGFja2V0LWluOiBzd2FwIHNvdXJjZSBhbmQgZGVzdGluYXRpb24gYXR0cmlidXRlcyAKKyAgICAjCisgICAgZGVmIHRlc3RfcGt0X2luX3N3YXBfc3JjX2Rlc3RfYXR0cmlidXRlcyhzZWxmLCBwb3N0X2RhdGEpOgorICAgICAgICAjIFJlbW92ZSB0aGUgc291cmNlIHN3aXRjaCBhbmQgcG9ydCBpZiBuZWVkZWQKKyAgICAgICAgaWYgKCJzcmNTd2l0Y2hEcGlkIiBpbiBwb3N0X2RhdGEpOgorICAgICAgICAgICAgcG9zdF9kYXRhLnBvcCgic3JjU3dpdGNoRHBpZCIpCisgICAgICAgIGlmICgic3JjU3dpdGNoSW5Qb3J0IiBpbiBwb3N0X2RhdGEpOgorICAgICAgICAgICAgcG9zdF9kYXRhLnBvcCgic3JjU3dpdGNoSW5Qb3J0IikKKworICAgICAgICAjCisgICAgICAgICMgR2V0IGRlc3RpbmF0aW9uIGhvc3QncyBhdHRhY2htZW50IHN3aXRjaC9wb3J0IGluZm9ybWF0aW9uCisgICAgICAgICMKKyAgICAgICAgKHJlc3VsdCwgc3JjX3N3LCBzcmNfc3dfcG9ydCkgPSBzZWxmLmdldF9ob3N0X2F0dGFjaG1lbnRfc3dpdGNoX3BvcnQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJ21hYycgOiBwb3N0X2RhdGFbImRlc3RpbmF0aW9uTUFDQWRkcmVzcyJdfSkKKyAgICAgICAgaWYgbm90IHJlc3VsdDoKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBwb3N0X2RhdGFbInNyY1N3aXRjaERwaWQiXSA9IHNyY19zdworICAgICAgICBwb3N0X2RhdGFbInNyY1N3aXRjaEluUG9ydCJdID0gc3JjX3N3X3BvcnQKKworICAgICAgICAjIFN3YXAgdGhlIG1hY3MKKyAgICAgICAgdGVtcCA9IHBvc3RfZGF0YVsic291cmNlTUFDQWRkcmVzcyJdCisgICAgICAgIHBvc3RfZGF0YVsic291cmNlTUFDQWRkcmVzcyJdID0gcG9zdF9kYXRhWyJkZXN0aW5hdGlvbk1BQ0FkZHJlc3MiXQorICAgICAgICBwb3N0X2RhdGFbImRlc3RpbmF0aW9uTUFDQWRkcmVzcyJdID0gdGVtcAorICAgICAgICAjIHN3YXAgdGhlIElQIGFkZHJlc3NlcyBpZiBzcGVjaWZpZWQKKyAgICAgICAgdGVtcFNyYyA9IE5vbmUKKyAgICAgICAgdGVtcERzdCA9IE5vbmUKKyAgICAgICAgaWYgKCJzb3VyY2VJcEFkZHJlc3MiIGluIHBvc3RfZGF0YSk6CisgICAgICAgICAgICB0ZW1wU3JjID0gcG9zdF9kYXRhWyJzb3VyY2VJcEFkZHJlc3MiXQorICAgICAgICAgICAgcG9zdF9kYXRhLnBvcCgic291cmNlSXBBZGRyZXNzIikKKyAgICAgICAgaWYgKCJkZXN0aW5hdGlvbklwQWRkcmVzcyIgaW4gcG9zdF9kYXRhKToKKyAgICAgICAgICAgIHRlbXBEc3QgPSBwb3N0X2RhdGFbImRlc3RpbmF0aW9uSXBBZGRyZXNzIl0KKyAgICAgICAgICAgIHBvc3RfZGF0YS5wb3AoImRlc3RpbmF0aW9uSXBBZGRyZXNzIikKKyAgICAgICAgaWYgKHRlbXBTcmMgaXMgbm90IE5vbmUpOgorICAgICAgICAgICAgcG9zdF9kYXRhWyJkZXN0aW5hdGlvbklwQWRkcmVzcyJdID0gdGVtcFNyYworICAgICAgICBpZiAodGVtcERzdCBpcyBub3QgTm9uZSk6CisgICAgICAgICAgICBwb3N0X2RhdGFbInNvdXJjZUlwQWRkcmVzcyJdID0gdGVtcERzdAorICAgICAgICAjIHN3YXAgdGhlIElQIHBvcnRzIGlmIHNwZWNpZmllZAorICAgICAgICB0ZW1wU3JjID0gTm9uZQorICAgICAgICB0ZW1wRHN0ID0gTm9uZQorICAgICAgICBpZiAoImlwTDRTb3VyY2VQb3J0IiBpbiBwb3N0X2RhdGEpOgorICAgICAgICAgICAgdGVtcFNyYyA9IHBvc3RfZGF0YVsiaXBMNFNvdXJjZVBvcnQiXQorICAgICAgICAgICAgcG9zdF9kYXRhLnBvcCgiaXBMNFNvdXJjZVBvcnQiKQorICAgICAgICBpZiAoImlwTDREZXN0aW5hdGlvblBvcnQiIGluIHBvc3RfZGF0YSk6CisgICAgICAgICAgICB0ZW1wRHN0ID0gcG9zdF9kYXRhWyJpcEw0RGVzdGluYXRpb25Qb3J0Il0KKyAgICAgICAgICAgIHBvc3RfZGF0YS5wb3AoImlwTDREZXN0aW5hdGlvblBvcnQiKQorICAgICAgICBpZiAodGVtcFNyYyBpcyBub3QgTm9uZSk6CisgICAgICAgICAgICBwb3N0X2RhdGFbImlwTDREZXN0aW5hdGlvblBvcnQiXSA9IHRlbXBTcmMKKyAgICAgICAgaWYgKHRlbXBEc3QgaXMgbm90IE5vbmUpOgorICAgICAgICAgICAgcG9zdF9kYXRhWyJpcEw0U291cmNlUG9ydCJdID0gdGVtcERzdAorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHRlc3QgcGFja2V0LWluOiBkaXNwbGF5IHBhY2tldC1pbiBwcm9jZXNzaW5nIHJlc3VsdCBmb3IgdGVzdCBwYWNrZXQtaW4KKyAgICAjCisgICAgZGVmIHRlc3RfcGt0X2luX3Jlc3VsdF9kaXNwbGF5KHNlbGYsIHJlc3BvbnNlKToKKyAgICAgICAgb3V0ID0gICJcblJlc3VsdCBvZiBwYWNrZXQtaW4gcHJvY2Vzc2luZ1xuIgorICAgICAgICBvdXQgKz0gKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpCisgICAgICAgIHNyY192bnNfbmFtZSA9IHJlc3BvbnNlWydzcmNWTlNOYW1lJ10KKyAgICAgICAgZHN0X3Zuc19uYW1lID0gcmVzcG9uc2VbJ2Rlc3RWTlNOYW1lJ10KKworICAgICAgICBpZiAocmVzcG9uc2VbJ2V4cGxhbmF0aW9uJ10gPT0gIlNvdXJjZSBzd2l0Y2ggbm90IGZvdW5kIik6CisgICAgICAgICAgICBvdXQgKz0gcmVzcG9uc2VbJ2V4cGxhbmF0aW9uJ10KKyAgICAgICAgICAgIHJldHVybiBvdXQKKworICAgICAgICBvdXQgKz0gICJcblZpcnR1YWwgUm91dGluZyBQcm9jZXNzaW5nIGl0ZXJhdGlvbnNcbiIKKyAgICAgICAgb3V0ICs9ICgiLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiIpCisgICAgICAgIGVwX3Zyb3V0aW5nID0gcmVzcG9uc2VbJ2V4cFBrdFZSb3V0aW5nJ10KKyAgICAgICAgZm9yIGVwX3ZyIGluIGVwX3Zyb3V0aW5nOgorICAgICAgICAgICAgc3JjSWZhY2UgPSBlcF92clsnc3JjSWZhY2UnXQorICAgICAgICAgICAgZHN0SWZhY2UgPSBlcF92clsnZHN0SWZhY2UnXQorICAgICAgICAgICAgYWN0aW9uID0gZXBfdnJbJ2FjdGlvbiddCisgICAgICAgICAgICBvdXQgKz0gKCJzcmMgVk5TIGlmYWNlICAgICAgICAgICA6ICVzXG4iICUgc3JjSWZhY2UpCisgICAgICAgICAgICBvdXQgKz0gKCJkc3QgVk5TIGlmYWNlICAgICAgICAgICA6ICVzXG4iICUgZHN0SWZhY2UpCisgICAgICAgICAgICBvdXQgKz0gKCJhY3Rpb24gICAgICAgICAgICAgICAgICA6ICVzXG4iICUgYWN0aW9uKQorICAgICAgICAgICAgaWYgYWN0aW9uID09ICdEUk9QJzoKKyAgICAgICAgICAgICAgICBkcm9wUmVhc29uID0gZXBfdnJbJ2Ryb3BSZWFzb24nXQorICAgICAgICAgICAgICAgIG91dCArPSAoImRyb3AgcmVhc29uICAgICAgICAgICAgIDogJXNcbiIgJSBkcm9wUmVhc29uKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBuZXh0SG9wSXAgPSBlcF92clsnbmV4dEhvcElwJ10KKyAgICAgICAgICAgICAgICBvdXQgKz0gKCJuZXh0IGhvcCBJUCAgICAgICAgICAgICA6ICVzXG4iICUgbmV4dEhvcElwKQorICAgICAgICAgICAgICAgIG5leHRIb3BHYXRld2F5UG9vbCA9IGVwX3ZyWyduZXh0SG9wR2F0ZXdheVBvb2wnXQorICAgICAgICAgICAgICAgIGlmIChuZXh0SG9wR2F0ZXdheVBvb2wgIT0gTm9uZSk6CisgICAgICAgICAgICAgICAgICAgIG91dCArPSAoIm5leHQgaG9wIEdhdGV3YXkgUG9vbCAgIDogJXNcbiIgJSBuZXh0SG9wR2F0ZXdheVBvb2wpCisgICAgICAgICAgICBvdXQgKz0gIlxuIgorCisgICAgICAgIGlmIChzcmNfdm5zX25hbWUgPT0gTm9uZSkgYW5kIChkc3Rfdm5zX25hbWUgPT0gTm9uZSk6CisgICAgICAgICAgICBvdXQgKz0gIlNvdXJjZSBhbmQgZGVzdGluYXRpb24gaG9zdHMgYXJlIG5vdCBpbiB0aGUgc2FtZSB2bnMiCisgICAgICAgICAgICByZXR1cm4gb3V0CisKKyAgICAgICAgb3V0ICs9ICgiU3RhdHVzICAgICAgOiAlc1xuIiAlIHJlc3BvbnNlWydzdGF0dXMnXSkKKyAgICAgICAgb3V0ICs9ICgiRXhwbGFuYXRpb24gOiAlc1xuIiAlIHJlc3BvbnNlWydleHBsYW5hdGlvbiddKQorCisgICAgICAgIG91dCArPSAgIlxuUmVzdWx0IG9mIFZpcnR1YWwgUm91dGluZ1xuIgorICAgICAgICBvdXQgKz0gKCItLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuIikKKyAgICAgICAgb3V0ICs9ICgiU291cmNlIFZOUyAgOiAlc1xuIiAlIHNyY192bnNfbmFtZSkKKyAgICAgICAgb3V0ICs9ICgiRGVzdC4gVk5TICAgOiAlc1xuIiAlIGRzdF92bnNfbmFtZSkKKyAgICAgICAgb3V0ICs9ICgiSW5wdXQgQUNMOlxuIikKKyAgICAgICAgb3V0ICs9ICgiICBJbnB1dCBBQ0wgTmFtZSAgICA6ICVzXG4iICUgcmVzcG9uc2VbJ2lucHV0QWNsJ11bJ2FjbE5hbWUnXSkKKyAgICAgICAgb3V0ICs9ICgiICBJbnB1dCBBQ0wgRW50cnkgICA6ICVzXG4iICUgcmVzcG9uc2VbJ2lucHV0QWNsJ11bJ2FjbEVudHJ5J10pCisgICAgICAgIG91dCArPSAoIiAgSW5wdXQgQUNMIEFjdGlvbiAgOiAlc1xuIiAlIHJlc3BvbnNlWydpbnB1dEFjbCddWydhY2xSZXN1bHQnXSkKKyAgICAgICAgb3V0ICs9ICgiT3V0cHV0IEFDTDpcbiIpCisgICAgICAgIG91dCArPSAoIiAgT3V0cHV0IEFDTCBOYW1lICAgOiAlc1xuIiAlIHJlc3BvbnNlWydvdXRwdXRBY2wnXVsnYWNsTmFtZSddKQorICAgICAgICBvdXQgKz0gKCIgIE91dHB1dCBBQ0wgRW50cnkgIDogJXNcbiIgJSByZXNwb25zZVsnb3V0cHV0QWNsJ11bJ2FjbEVudHJ5J10pCisgICAgICAgIG91dCArPSAoIiAgT3V0cHV0IEFDTCBBY3Rpb24gOiAlc1xuIiAlIHJlc3BvbnNlWydvdXRwdXRBY2wnXVsnYWNsUmVzdWx0J10pCisKKyAgICAgICAgaWYgcmVzcG9uc2VbJ2V4cFBrdFJvdXRlJ10gPT0gTm9uZToKKyAgICAgICAgICAgIG91dCArPSAiXG4iCisgICAgICAgICAgICByZXR1cm4gb3V0CisKKyAgICAgICAgb3V0ICs9ICgiUm91dGluZyBBY3Rpb24gOiAlc1xuIiAlIHJlc3BvbnNlWydyb3V0aW5nQWN0aW9uJ10pCisKKyAgICAgICAgb2JqX3R5cGVfc2hvd19hbGlhc191cGRhdGUoJ3Rlc3QtcGt0aW4tcm91dGUnKQorICAgICAgICBvdXQgKz0gKCdcbkZsb3cgUGF0aDpcbicpCisgICAgICAgIGVwX3JvdXRlID0gcmVzcG9uc2VbJ2V4cFBrdFJvdXRlJ10KKyAgICAgICAgZm9yIGVwX2NsdXN0ZXIgaW4gZXBfcm91dGU6CisgICAgICAgICAgICBlcF9jbHVzdGVyX3BhdGggPSBlcF9jbHVzdGVyWydwYXRoJ10KKyAgICAgICAgICAgIGhvcCA9IDEKKyAgICAgICAgICAgIHJvdXRlX2RhdGEgPSBbXQorICAgICAgICAgICAgZm9yIGVwX3BhdGggaW4gZXBfY2x1c3Rlcl9wYXRoOgorICAgICAgICAgICAgICAgIG9uZUhvcCA9IHt9CisgICAgICAgICAgICAgICAgb25lSG9wWydjbHVzdGVyJ10gPSBlcF9jbHVzdGVyWydjbHVzdGVyTnVtJ10KKyAgICAgICAgICAgICAgICBvbmVIb3BbJ2hvcCddID0gaG9wCisgICAgICAgICAgICAgICAgaG9wICs9IDEKKyAgICAgICAgICAgICAgICBvbmVIb3AudXBkYXRlKGVwX3BhdGgpCisgICAgICAgICAgICAgICAgcm91dGVfZGF0YS5hcHBlbmQob25lSG9wKQorICAgICAgICAgICAgcm91dGVfZGF0YSA9IHNlbGYucHAuZm9ybWF0X3RhYmxlKHJvdXRlX2RhdGEsICd0ZXN0LXBrdGluLXJvdXRlJykKKyAgICAgICAgICAgIG91dCArPSByb3V0ZV9kYXRhCisgICAgICAgICAgICBvdXQgKz0gIlxuIgorICAgICAgICByZXR1cm4gb3V0CisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgaW1wbGVtZW50X3Rlc3RfcGFja2V0X2luCisgICAgIworICAgIGRlZiBpbXBsZW1lbnRfdGVzdF9wYWNrZXRfaW4oc2VsZiwgZGF0YSk6CisgICAgICAgICMgQ3VycmVudGx5IG9ubHkgc3VwcG9ydHMgPHRlc3QgcGFja2V0LWluPiBmb3IgImV4cGxhaW4gcGFja2V0IiBmZWF0dXJlCisgICAgICAgIHNlbGYuZGVidWdfbXNnKCJJbiBkb190ZXN0KCk6IGRhdGE9JXMiICUgKGRhdGEpKQorCisgICAgICAgICMgUkVTVCBBUEkgZXhwZWN0cyBNQUMgbm90IGhvc3QgYWxpYXNlcworICAgICAgICBpZiBub3QgJ3NyYy1ob3N0JyBpbiBkYXRhOgorICAgICAgICAgICAgcHJpbnQgc2VsZi5lcnJvcl9tc2coIk1pc3Npbmcgc3JjLWhvc3QiKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHNyY19tYWMgPSBkYXRhWydzcmMtaG9zdCddCisKKyAgICAgICAgaWYgbm90ICdkc3QtaG9zdCcgaW4gZGF0YToKKyAgICAgICAgICAgIHByaW50IHNlbGYuZXJyb3JfbXNnKCJNaXNzaW5nIGRzdC1ob3N0IikKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBkc3RfbWFjID0gZGF0YVsnZHN0LWhvc3QnXQorCisgICAgICAgICMgQ2hlY2sgdGhhdCBzcmMgYW5kIGRlc3QgaG9zdHMgYXJlIG5vdCB0aGUgc2FtZQorICAgICAgICBpZiBzcmNfbWFjID09IGRzdF9tYWM6CisgICAgICAgICAgICBwcmludCBzZWxmLmVycm9yX21zZygic291cmNlIGFuZCBkZXN0aW5hdGlvbiBob3N0cyBjYW4gbm90IGJlIHNhbWUiKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgIworICAgICAgICBpZiAnc3JjLXN3aXRjaCcgaW4gZGF0YToKKyAgICAgICAgICAgIHNyY19zdyAgICAgID0gZGF0YVsnc3JjLXN3aXRjaCddCisgICAgICAgICAgICBzcmNfc3dfcG9ydCA9IGRhdGFbJ3NyYy1zd2l0Y2gtcG9ydCddCisgICAgICAgIGVsc2U6CisKKyAgICAgICAgICAgICMKKyAgICAgICAgICAgICMgR2V0IGhvc3QncyBhdHRhY2htZW50IHN3aXRjaC9wb3J0IGluZm9ybWF0aW9uCisgICAgICAgICAgICAjCisgICAgICAgICAgICAocmVzdWx0LCBzcmNfc3csIHNyY19zd19wb3J0KSA9IFwKKyAgICAgICAgICAgICAgICBzZWxmLmdldF9ob3N0X2F0dGFjaG1lbnRfc3dpdGNoX3BvcnQoeydtYWMnIDogc3JjX21hY30pCisgICAgICAgICAgICBpZiBub3QgcmVzdWx0OgorICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHBvc3RfZGF0YSA9IHsKKyAgICAgICAgICAgICJzb3VyY2VNQUNBZGRyZXNzIjogc3JjX21hYywgImRlc3RpbmF0aW9uTUFDQWRkcmVzcyI6IGRzdF9tYWMsCisgICAgICAgICAgICAic3JjU3dpdGNoRHBpZCIgICA6IHNyY19zdywgICJzcmNTd2l0Y2hJblBvcnQiICAgICAgOiBzcmNfc3dfcG9ydAorICAgICAgICB9CisKKyAgICAgICAgaWYgJ3ZsYW4nIGluIGRhdGE6CisgICAgICAgICAgICBwb3N0X2RhdGFbInZsYW5JRCJdID0gZGF0YVsndmxhbiddCisgICAgICAgIGlmICdldGhlci10eXBlJyBpbiBkYXRhOgorICAgICAgICAgICAgcG9zdF9kYXRhWyJldGhlclR5cGUiXSA9IGRhdGFbJ2V0aGVyLXR5cGUnXQorICAgICAgICAgICAgaWYgKHBvc3RfZGF0YVsnZXRoZXJUeXBlJ10gIT0gIjIwNDgiKToKKyAgICAgICAgICAgICAgICB5aWVsZChzZWxmLmVycm9yX21zZygiU3VwcG9ydGVkIGV0aGVydHlwZXM6IDIwNDggKGlwKSIpKQorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiAncHJpb3JpdHknIGluIGRhdGE6CisgICAgICAgICAgICBwb3N0X2RhdGFbInByaW9yaXR5Q29kZSJdID0gZGF0YVsncHJpb3JpdHknXQorICAgICAgICBpZiAnc3JjLWlwLWFkZHJlc3MnIGluIGRhdGE6CisgICAgICAgICAgICBwb3N0X2RhdGFbInNvdXJjZUlwQWRkcmVzcyJdID0gZGF0YVsnc3JjLWlwLWFkZHJlc3MnXQorICAgICAgICBpZiAnZHN0LWlwLWFkZHJlc3MnIGluIGRhdGE6CisgICAgICAgICAgICBwb3N0X2RhdGFbImRlc3RpbmF0aW9uSXBBZGRyZXNzIl0gPSBkYXRhWydkc3QtaXAtYWRkcmVzcyddCisgICAgICAgIGlmICdwcm90b2NvbCcgaW4gZGF0YToKKyAgICAgICAgICAgIHBvc3RfZGF0YVsiaXB2NFByb3RvY29sIl0gPSBkYXRhWydwcm90b2NvbCddCisgICAgICAgIGlmICd0b3MnIGluIGRhdGE6CisgICAgICAgICAgICAjVW5jb21tZW50IHRoZSBsaW5lIGJlbG93IG9uY2Ugd2Ugc3VwcG9ydCB0b3MgaW4gdGhlIFJFU1QgQVBJCisgICAgICAgICAgICAjcG9zdF9kYXRhWyJ0b3MiXSA9IGRhdGFbJ3RvcyddCisgICAgICAgICAgICBwYXNzCisgICAgICAgIGlmICdzcmMtcG9ydCcgaW4gZGF0YToKKyAgICAgICAgICAgIHBvc3RfZGF0YVsiaXBMNFNvdXJjZVBvcnQiXSA9IGRhdGFbJ3NyYy1wb3J0J10KKyAgICAgICAgaWYgJ2RzdC1wb3J0JyBpbiBkYXRhOgorICAgICAgICAgICAgcG9zdF9kYXRhWyJpcEw0RGVzdGluYXRpb25Qb3J0Il0gPSBkYXRhWydkc3QtcG9ydCddCisKKyAgICAgICAgc2VsZi5kZWJ1Z19tc2coIlBvc3QgRGF0YSA9ICVzIiAlIHBvc3RfZGF0YSkKKworICAgICAgICB1cmwgPSAiaHR0cDovLyVzL3Jlc3QvdjEvcmVhbHRpbWV0ZXN0L25ldHdvcmsvZXhwbGFpbi1wYWNrZXQiICUgc2VsZi5jb250cm9sbGVyCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAganJlc3BvbnNlID0gc2VsZi5zdG9yZS5yZXN0X3Bvc3RfcmVxdWVzdCh1cmwsIHBvc3RfZGF0YSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGVycm9ycyA9IHNlbGYucmVzdF9lcnJvcl90b19kaWN0KGUsIHVybCkKKyAgICAgICAgICAgIHlpZWxkKHNlbGYuZXJyb3JfbXNnKHNlbGYucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKSkpCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICByZXNwb25zZSA9IGpzb24ubG9hZHMoanJlc3BvbnNlKQorICAgICAgICBzZWxmLmRlYnVnX21zZygiUmVzcG9uc2UgPSAlcyIgJSByZXNwb25zZSkKKworCisgICAgICAgIHlpZWxkICgiSW5wdXQgcGFja2V0XG4iKQorICAgICAgICB5aWVsZCAoIi0tLS0tLS0tLS0tLVxuIikKKyAgICAgICAgZXhwbFBrdCA9IHJlc3BvbnNlWydleHBsYWluUGt0UGFyYW1zJ10KKyAgICAgICAgc3dpdGNoX2FsaWFzICAgPSBhbGlhc19sb29rdXBfd2l0aF9mb3JlaWduX2tleSgic3dpdGNoLWFsaWFzIiwgZXhwbFBrdFsnc3JjU3dpdGNoRHBpZCddKQorICAgICAgICBzcmNfaG9zdF9hbGlhcyA9IGFsaWFzX2xvb2t1cF93aXRoX2ZvcmVpZ25fa2V5KCJob3N0LWFsaWFzIiwgZXhwbFBrdFsnc291cmNlTUFDQWRkcmVzcyddKQorICAgICAgICBkc3RfaG9zdF9hbGlhcyA9IGFsaWFzX2xvb2t1cF93aXRoX2ZvcmVpZ25fa2V5KCJob3N0LWFsaWFzIiwgZXhwbFBrdFsnZGVzdGluYXRpb25NQUNBZGRyZXNzJ10pCisKKyAgICAgICAgaWYgKHNyY19ob3N0X2FsaWFzKToKKyAgICAgICAgICAgIHlpZWxkICgiU291cmNlIGhvc3QgICAgICAgIDogJXMgKCVzKSwgaXA9JXNcbiIgJSAKKyAgICAgICAgICAgICAgICAgICAoZXhwbFBrdFsnc291cmNlTUFDQWRkcmVzcyddLCBzcmNfaG9zdF9hbGlhcywgZXhwbFBrdFsnc291cmNlSXBBZGRyZXNzJ10pKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgeWllbGQgKCJTb3VyY2UgaG9zdCAgICAgICAgOiAlcywgaXA9JXNcbiIgJSAoZXhwbFBrdFsnc291cmNlTUFDQWRkcmVzcyddLCBleHBsUGt0Wydzb3VyY2VJcEFkZHJlc3MnXSkpCisKKyAgICAgICAgaWYgKGRzdF9ob3N0X2FsaWFzKToKKyAgICAgICAgICAgIHlpZWxkICgiRGVzdGluYXRpb24gaG9zdCAgIDogJXMgKCVzKSwgaXA9JXNcbiIgJSAKKyAgICAgICAgICAgICAgICAgICAgKGV4cGxQa3RbJ2Rlc3RpbmF0aW9uTUFDQWRkcmVzcyddLCBkc3RfaG9zdF9hbGlhcywgZXhwbFBrdFsnZGVzdGluYXRpb25JcEFkZHJlc3MnXSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB5aWVsZCAiRGVzdGluYXRpb24gaG9zdCAgIDogJXMsIGlwPSVzXG4iICUgKGV4cGxQa3RbJ2Rlc3RpbmF0aW9uTUFDQWRkcmVzcyddLCBleHBsUGt0WydkZXN0aW5hdGlvbklwQWRkcmVzcyddKQorICAgICAgICBpZiAoZXhwbFBrdFsndmxhbklEJ10gPT0gJy0xJyk6CisgICAgICAgICAgICB5aWVsZCAiVkxBTiAgICAgICAgICAgICAgIDogJXMgKFVudGFnZ2VkKVxuIiAlIGV4cGxQa3RbJ3ZsYW5JRCddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB5aWVsZCAiVkxBTiAgICAgICAgICAgICAgIDogJXNcbiIgJSBleHBsUGt0Wyd2bGFuSUQnXSAgICAgICAgCisgICAgICAgIHlpZWxkICI4MDIuMVEgcHJpb3JpdHkgICAgOiAlc1xuIiAlIGV4cGxQa3RbJ3ByaW9yaXR5Q29kZSddCisgICAgICAgIHlpZWxkICJFdGhlciB0eXBlICAgICAgICAgOiAlc1xuIiAlIGV4cGxQa3RbJ2V0aGVyVHlwZSddCisgICAgICAgIGlmIChzd2l0Y2hfYWxpYXMpOgorICAgICAgICAgICAgeWllbGQgIlNvdXJjZSBzd2l0Y2gvcG9ydCA6ICVzICglcykvJXNcbiIgJSAoZXhwbFBrdFsnc3JjU3dpdGNoRHBpZCddLCBzd2l0Y2hfYWxpYXMsIGV4cGxQa3RbJ3NyY1N3aXRjaEluUG9ydCddKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgeWllbGQgIlNvdXJjZSBzd2l0Y2gvcG9ydCA6ICVzLyVzXG4iICUgKGV4cGxQa3RbJ3NyY1N3aXRjaERwaWQnXSwgZXhwbFBrdFsnc3JjU3dpdGNoSW5Qb3J0J10pCisgICAgICAgIHlpZWxkICJQcm90b2NvbCAgICAgICAgICAgOiAlc1xuIiAlIGV4cGxQa3RbJ2lwdjRQcm90b2NvbCddCisgICAgICAgIHlpZWxkICJMNCBzb3VyY2UgcG9ydCAgICAgOiAlc1xuIiAlIGV4cGxQa3RbJ2lwTDRTb3VyY2VQb3J0J10KKyAgICAgICAgeWllbGQgIkw0IGRlc3RpbmF0aW9uIHBvcnQ6ICVzXG4iICUgZXhwbFBrdFsnaXBMNERlc3RpbmF0aW9uUG9ydCddICAgICAgICAgICAgICAgIAorCisgICAgICAgIHlpZWxkKCJcbkZvcndhcmQgcGF0aDoiKQorICAgICAgICB5aWVsZCgiPT09PT09PT09PT09PVxuIikKKyAgICAgICAgeWllbGQoc2VsZi50ZXN0X3BrdF9pbl9yZXN1bHRfZGlzcGxheShyZXNwb25zZSkpCisKKyAgICAgICAgIyBOb3cgc2VuZCB0aGUgcmV2ZXJzZSB0ZXN0IHBhY2tldAorICAgICAgICBzZWxmLnRlc3RfcGt0X2luX3N3YXBfc3JjX2Rlc3RfYXR0cmlidXRlcyhwb3N0X2RhdGEpCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGpyZXNwb25zZSA9IHNlbGYuc3RvcmUucmVzdF9wb3N0X3JlcXVlc3QodXJsLCBwb3N0X2RhdGEpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBlcnJvcnMgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlLCB1cmwpCisgICAgICAgICAgICB5aWVsZChzZWxmLmVycm9yX21zZyhzZWxmLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykpKQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgcmVzcG9uc2UgPSBqc29uLmxvYWRzKGpyZXNwb25zZSkKKyAgICAgICAgc2VsZi5kZWJ1Z19tc2coIlJlc3BvbnNlID0gJXMiICUgcmVzcG9uc2UpCisgICAgICAgIHlpZWxkKCJcblJldmVyc2UgcGF0aDoiKQorICAgICAgICB5aWVsZCgiPT09PT09PT09PT09PVxuIikKKyAgICAgICAgeWllbGQoc2VsZi50ZXN0X3BrdF9pbl9yZXN1bHRfZGlzcGxheShyZXNwb25zZSkpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgCisgICAgZGVmIGltcGxlbWVudF90ZXN0X3BhdGgoc2VsZiwgZGF0YSk6CisKKyAgICAgICAgIyBjb21wdXRlIHNvdXJjZQorICAgICAgICAjCisgICAgICAgIGlmICdzcmMtc3dpdGNoJyBpbiBkYXRhOgorICAgICAgICAgICAgc3JjX3N3ICAgICAgPSBkYXRhWydzcmMtc3dpdGNoJ10KKyAgICAgICAgICAgIHNyY19zd19wb3J0ID0gZGF0YVsnc3JjLXN3aXRjaC1wb3J0J10KKyAgICAgICAgZWxpZiAnc3JjLWhvc3QnIGluIGRhdGE6CisgICAgICAgICAgICAocmVzdWx0LCBzcmNfc3csIHNyY19zd19wb3J0KSA9IFwKKyAgICAgICAgICAgICAgICBzZWxmLmdldF9ob3N0X2F0dGFjaG1lbnRfc3dpdGNoX3BvcnQoeyAnbWFjJyA6IGRhdGFbJ3NyYy1ob3N0J119KQorICAgICAgICAgICAgaWYgbm90IHJlc3VsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZWxpZiAnc3JjLWlwJyBpbiBkYXRhOgorICAgICAgICAgICAgIyBsb29rIHVwIHRoZSBpcCBpbiB0aGUgZGV2aWNlIGFwaQorICAgICAgICAgICAgKHJlc3VsdCwgc3JjX3N3LCBzcmNfc3dfcG9ydCkgPSBcCisgICAgICAgICAgICAgICAgc2VsZi5nZXRfaG9zdF9hdHRhY2htZW50X3N3aXRjaF9wb3J0KHsgJ2lwdjQnIDogZGF0YVsnc3JjLWlwJ119KQorICAgICAgICAgICAgaWYgbm90IHJlc3VsdDoKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygnTm8gc291cmNlIGF0dGFjaG1lbnQgcG9pbnQgaW4gcmVxdWVzdCcpCisKKyAgICAgICAgIyBjb21wdXRlIGRlc3QKKyAgICAgICAgaWYgJ2RzdC1zd2l0Y2gnIGluIGRhdGE6CisgICAgICAgICAgICBkc3Rfc3cgICAgICA9IGRhdGFbJ2RzdC1zd2l0Y2gnXQorICAgICAgICAgICAgZHN0X3N3X3BvcnQgPSBkYXRhWydkc3Qtc3dpdGNoLXBvcnQnXQorICAgICAgICBlbGlmICdkc3QtaG9zdCcgaW4gZGF0YToKKyAgICAgICAgICAgIChyZXN1bHQsIGRzdF9zdywgZHN0X3N3X3BvcnQpID0gXAorICAgICAgICAgICAgICAgIHNlbGYuZ2V0X2hvc3RfYXR0YWNobWVudF9zd2l0Y2hfcG9ydCh7ICdtYWMnIDogZGF0YVsnZHN0LWhvc3QnXX0pCisgICAgICAgICAgICBpZiBub3QgcmVzdWx0OgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICBlbGlmICdkc3QtaXAnIGluIGRhdGE6CisgICAgICAgICAgICAjIGxvb2sgdXAgdGhlIGlwIGluIHRoZSBkZXZpY2UgYXBpCisgICAgICAgICAgICAocmVzdWx0LCBkc3Rfc3csIGRzdF9zd19wb3J0KSA9IFwKKyAgICAgICAgICAgICAgICBzZWxmLmdldF9ob3N0X2F0dGFjaG1lbnRfc3dpdGNoX3BvcnQoeyAnaXB2NCcgOiBkYXRhWydkc3QtaXAnXX0pCisgICAgICAgICAgICBpZiBub3QgcmVzdWx0OgorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCdObyBkZXN0IGF0dGFjaG1lbnQgcG9pbnQgaW4gcmVxdWVzdCcpCisKKyAgICAgICAgdXJsID0gImh0dHA6Ly8lcy9yZXN0L3YxL3JlYWx0aW1ldGVzdC9uZXR3b3JrL3BhdGgiICUgc2VsZi5jb250cm9sbGVyCisgICAgICAgIHJlcXVlc3QgPSB7CisgICAgICAgICAgICAgICAgICAgICdzcmMtc3dpdGNoJyAgICAgIDogc3JjX3N3LAorICAgICAgICAgICAgICAgICAgICAnc3JjLXN3aXRjaC1wb3J0JyA6IHNyY19zd19wb3J0LAorICAgICAgICAgICAgICAgICAgICAnZHN0LXN3aXRjaCcgICAgICA6IGRzdF9zdywKKyAgICAgICAgICAgICAgICAgICAgJ2RzdC1zd2l0Y2gtcG9ydCcgOiBkc3Rfc3dfcG9ydCwKKyAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICB0cnk6CisgICAgICAgICAgICByZXNwb25zZSA9IHNlbGYuc3RvcmUucmVzdF9wb3N0X3JlcXVlc3QodXJsLCByZXF1ZXN0KQorICAgICAgICAgICAgc2VsZi5kZWJ1Z19tc2coIlJlc3BvbnNlID0gJXMiICUgcmVzcG9uc2UpCisgICAgICAgICAgICBpZiByZXNwb25zZSAhPSAnJzoKKyAgICAgICAgICAgICAgICBjb21tYW5kLnF1ZXJ5X3Jlc3VsdCA9IGpzb24ubG9hZHMocmVzcG9uc2UpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNvbW1hbmQucXVlcnlfcmVzdWx0ID0gTm9uZQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBlcnJvcnMgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlLCB1cmwpCisgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcnMpKQorCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMKKyAgICBkZWYgY3BfaGVscChzZWxmLCB3b3JkcywgdGV4dCwgY29tcGxldGlvbl9jaGFyKToKKyAgICAgICAgIiIiCisgICAgICAgIENvbXBsZXRpb24gZm9yIHRoZSBoZWxwIGNvbW1hbmQgbXVzdCBiZSBkb25lIHVzaW5nIHRoZSBjb2xsZWN0aW9uCisgICAgICAgIG9mIGNvbW1hbmQgZGVzY3JpcHRpb25zOyBpZTogaGVscCB1c2VzIHRoZSBjb21tYW5kIGRlc2NyaXB0aW9ucworICAgICAgICB0byBjb21wbGV0ZSB0aGUgaGVscCBjb21tYW5kcy4KKyAgICAgICAgIiIiCisgICAgICAgIGlmIGNvbXBsZXRpb25fY2hhciA9PSBvcmQoJz8nKToKKyAgICAgICAgICAgIGlmIGxlbih3b3JkcykgPiAxOgorICAgICAgICAgICAgICAgIGNvbW1hbmQuZG9fY29tbWFuZF9jb21wbGV0aW9uX2hlbHAod29yZHNbMTpdLCB0ZXh0KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCBzZWxmLmhlbHBfc3BsYXNoKFtdLCB0ZXh0KQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIGxlbih3b3JkcykgPT0gMToKKyAgICAgICAgICAgIGl0ZW1zID0gc2VsZi5jb21tYW5kc19mb3JfY3VycmVudF9tb2RlX3N0YXJ0aW5nX3dpdGgodGV4dCkKKyAgICAgICAgICAgIHJldHVybiB1dGlmLmFkZF9kZWxpbShpdGVtcywgJyAnKQorICAgICAgICBlbHNlOiAgIAorICAgICAgICAgICAgcmV0dXJuIGNvbW1hbmQuZG9fY29tbWFuZF9jb21wbGV0aW9uKHdvcmRzWzE6XSwgdGV4dCkKKworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNvbW1hbmRfc2hvcnRfaGVscAorICAgICMgIEFzc29jaWF0ZSBzaG9ydCBoZWxwIHN0cmluZ3Mgd2l0aCBrbm93biBjb21tYW5kcworICAgICMgIFRoZXNlIG91Z2h0IHRvIGJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgQ09NTUFORF9ERVNDUklQVElPTnMsCisgICAgIyAgYnV0IHNpbmNlIG5vdCBhbGwgY29tbWFuZCB1c2UgdGhhdCBtZWNoYW5pc20geWV0LCBwcm92aWRlCisgICAgIyAgdGhlc2Ugc2hvcnQgZGVzY3JpcHRpb25zIGhlcmUuCisgICAgIworICAgIGNvbW1hbmRfc2hvcnRfaGVscCA9IHsKKyAgICAgICAgJ2FjY2Vzcy1saXN0JyAgICA6ICdEZWZpbmUgYWNjZXNzLWxpc3QnLAorICAgICAgICAnYWNjZXNzLWdyb3VwJyAgIDogJ0NvbmZpZ3VyZSBhY2Nlc3MtbGlzdCB0byBpbnRlcmZhY2UgYXNzb2NpYXRpb24nLAorICAgICAgICAnYm9vdCcgICAgICAgICAgIDogIkNvbmZpZ3VyZSBib290IGNvbmZpZ3VyYXRpb24iLAorICAgICAgICAnY2xvY2snICAgICAgICAgIDogJ0NvbmZpZ3VyZSB0aW1lem9uZSBvciBzZXQgY2xvY2snLAorICAgICAgICAnY2xlYXInICAgICAgICAgIDogJ1Jlc2V0IGNvdW50ZXJzJywKKyAgICAgICAgJ2Nvbm5lY3QnICAgICAgICA6ICJDb25uZWN0IHRvIGEgY29udHJvbGxlcidzIFJFU1QgQVBJIHZpYSBpcFs6cG9ydF0iLAorICAgICAgICAnZGF0ZScgICAgICAgICAgIDogJ0Rpc3BsYXkgY3VycmVudCBkYXRlIGFuZCB0aW1lJywKKyAgICAgICAgJ2RlYnVnJyAgICAgICAgICA6ICdFbnRlciB2YXJpb3VzIGRlYnVnIG1vZGVzJywKKyAgICAgICAgJ2VjaG8nICAgICAgICAgICA6ICdFY2hvIHJlbWFpbmluZyBhcmd1bWVudHMnLAorICAgICAgICAnZW5hYmxlJyAgICAgICAgIDogJ01vdmUgdG8gZW5hYmxlIG1vZGUnLAorICAgICAgICAnZXhpdCcgICAgICAgICAgIDogJ0V4aXQgY3VycmVudCBtb2RlJywKKyAgICAgICAgJ2ZlYXR1cmUnICAgICAgICA6ICdFbmFibGUgb3IgZGlzYWJsZSBmZWF0dXJlcycsCisgICAgICAgICdmaXJld2FsbCcgICAgICAgOiAnRW5hYmxlIGNvbnRyb2xsZXIgaW50ZXJmYWNlcyBhY2xzJywKKyAgICAgICAgJ2hlbHAnICAgICAgICAgICA6ICdIZWxwIG9uIGNvbW1hbmRzIG9yIHRvcGljcycsCisgICAgICAgICdoaXN0b3J5JyAgICAgICAgOiAnRGlzcGxheSBoaXN0b3J5IG9mIGNvbW1hbmRzJywKKyAgICAgICAgJ2lwJyAgICAgICAgICAgICA6ICdDb25maWd1cmUgdmFyaW91cyBjb250cm9sbGVyIG5vZGUgaXAgdmFsdWVzJywKKyAgICAgICAgJ2xvZ291dCcgICAgICAgICA6ICdFeGl0IGZyb20gY2xpJywKKyAgICAgICAgJ2xvZ2dpbmcnICAgICAgICA6ICdDb25maWd1cmUgbG9nZ2luZy9zeXNsb2cnLAorICAgICAgICAnbnRwJyAgICAgICAgICAgIDogJ0NvbmZpZ3VyZSBudHAnLAorICAgICAgICAncGluZycgICAgICAgICAgIDogJ1BpbmcgcmVxdWVzdCBmcm9tIGNvbnRyb2xsZXIgdG8gc3dpdGNoIG9yIGlwIGFkZHJlc3MnLAorICAgICAgICAnc2hvdycgICAgICAgICAgIDogJ0Rpc3BsYXkgY29uZmlndXJhdGlvbiBvciBzZXR0aW5ncycsCisgICAgICAgICd0ZXN0JyAgICAgICAgICAgOiAnVGVzdCB2YXJpb3VzIGJlaGF2aW9ycycsCisgICAgICAgICd0cmFjZScgICAgICAgICAgOiAnVHJhY2UgdmFyaW91cyBzdHJlYW1zJywKKyAgICAgICAgJ3RyYWNlcm91dGUnICAgICA6ICdUcmFjZXJvdXRlIGZyb20gY29udHJvbGxlciB0byBzd2l0Y2ggb3IgaXAgYWRkcmVzcycsCisgICAgICAgICdjb25maWd1cmUnICAgICAgOiAnRW50ZXIgY29uZmlndXJhdGlvbiBtb2RlJywKKyAgICAgICAgJ3JlbG9hZCcgICAgICAgICA6ICdSZWJvb3QgY29udHJvbGxlciwgcmVsb2FkIGNvbmZpZ3VyYXRpb24nLAorICAgICAgICAnd3JpdGUnICAgICAgICAgIDogJ1dyaXRlIGNvbmZpZ3VyYWlvbicsCisgICAgICAgICdubycgICAgICAgICAgICAgOiAnRGVsZXRlIG9yIGRpc2FibGUgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzJywKKyAgICAgICAgJ3Zucy1kZWZpbml0aW9uJyA6ICdFbnRlciB2bnMtZGVmaW5pdG9uIHN1Ym1vZGUsIGRlc2NyaWJlIG1lbWJlcnNoaXAnLAorICAgICAgICAndm5zJyAgICAgICAgICAgIDogJ0VudGVyIHZucyBzdWJtb2RlLCBtYW5hZ2UgYWNjZXNzIGxpc3RzJywKKyAgICAgICAgJ2NvcHknICAgICAgICAgICA6ICdDb3B5IGNvbmZpZ3VyYXRpb25zJywKKyAgICAgICAgJ3N3aXRjaHRvJyAgICAgICA6ICdTd2l0Y2ggdG8gYW5vdGhlciB2bnMgZGVmaW5pdGlvbicsCisgICAgICAgICdpbnRlcmZhY2UtcnVsZScgOiAnVk5TIE1lbWJlcnNoaXAgcnVsZScsCisgICAgICAgICdlbmQnICAgICAgICAgICAgOiAnRW5kIGFsbCBuZXN0ZWQgY29uZmlndXJhdGlvbiBtb2RlcycsCisgICAgICAgICdpbnRlcmZhY2UnICAgICAgOiAnRW50ZXIgaW50ZXJmYWNlIHN1Ym1vZGUnLAorICAgICAgICAnd2F0Y2gnICAgICAgICAgIDogJ0l0ZXJhdGUgaW5kaWNhdGVkIGNvbW1hbmQgZGlzcGxheWluZyByZXN1bHRzJywKKyAgICB9CisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgb2JqX3R5cGVfc2hvcnRfaGVscAorICAgICMKKyAgICBvYmpfdHlwZV9zaG9ydF9oZWxwID0geworICAgICAgICAnY29udHJvbGxlci1ub2RlJyAgICAgICAgICAgOiAnQ29uZmlndXJlIHNwZWNpZmljIGNvbnRyb2xsZXIgbm9kZXMnLAorICAgICAgICAnaG9zdCcgICAgICAgICAgICAgICAgICAgICAgOiAnQ29uZmlndXJlIGhvc3QgZGV0YWlscycsCisgICAgICAgICdzdGF0ZC1jb25maWcnICAgICAgICAgICAgICA6ICdTdGF0ZCBDb25maWd1cmF0aW9uJywKKyAgICAgICAgJ3N0YXRkcm9wZC1jb25maWcnICAgICAgICAgIDogJ1N0YXQgZHJvcGQgY29uZmlndXJhdGlvbicsCisgICAgICAgICdzdGF0ZHJvcGQtcHJvZ3Jlc3MtaW5mbycgICA6ICdTdGF0IGRyb3BkIHByb2dyZXNzIGNvbmZpZ3VyYXRpb24nLAorICAgICAgICAnc3dpdGNoJyAgICAgICAgICAgICAgICAgICAgOiAnU3dpdGNoIENvbmZpZ3VyYXRpb24nLAorCisgICAgICAgICMgLS0gZGVidWcgb25seSB0YWJsZXMKKyAgICAgICAgJ3Zucy1hY2Nlc3MtbGlzdCcgICAgICAgICAgIDogJ1ZOUyBBY2Nlc3MgTGlzdCBvYmplY3QnLAorICAgICAgICAndm5zLWFjY2Vzcy1saXN0LWVudHJ5JyAgICAgOiAnVk5TIEFjY2VzcyBMaXN0IEVudHJ5IG9iamVjdCcsCisgICAgICAgICd2bnMtaW50ZXJmYWNlJyAgICAgICAgICAgICA6ICdWTlMgSW50ZXJmYWNlIG9iamVjdCcsCisgICAgICAgICd2bnMtaW50ZXJmYWNlLWFjY2Vzcy1saXN0JyA6ICdWTlMgSW50ZXJmYWNlIEFjY2VzcyBMaXN0IG9iamVjdCcsCisgICAgICAgICd2bnMtaW50ZXJmYWNlLXJ1bGUnICAgICAgICA6ICdWTlMgSW50ZXJmYWNlIFJ1bGUgb2JqZWN0JywKKyAgICAgICAgJ2hvc3QtYWxpYXMnICAgICAgICAgICAgICAgIDogJ0hvc3QgQWxpYXMgb2JqZWN0JywKKyAgICAgICAgJ3BvcnQtYWxpYXMnICAgICAgICAgICAgICAgIDogJ1BvcnQgQWxpYXMgb2JqZWN0JywKKyAgICAgICAgJ3N3aXRjaC1hbGlhcycgICAgICAgICAgICAgIDogJ1N3aXRjaCBBbGlhcyBvYmplY3QnLAorICAgIH0KKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBoZWxwX3NwbGFzaAorICAgICMKKyAgICBkZWYgaGVscF9zcGxhc2goc2VsZiwgd29yZHMsIHRleHQpOgorICAgICAgICByZXQgPSAiIgorICAgICAgICBpZiBub3Qgd29yZHM6CisgICAgICAgICAgICBpZiB0ZXh0ID09ICIiOgorICAgICAgICAgICAgICAgIHJldCArPSAiRm9yIGhlbHAgb24gc3BlY2lmaWMgY29tbWFuZHMgdHlwZSBoZWxwIDx0b3BpYz5cbiIKKworICAgICAgICAgICAgY291bnQgPSAwCisgICAgICAgICAgICBsb25nZXN0X2NvbW1hbmQgPSAwCisgICAgICAgICAgICAjIHRoaXMgc3VibW9kZSBjb21tYW5kcworICAgICAgICAgICAgc19yZXQgPSAiIgorICAgICAgICAgICAgbW9kZSA9IHNlbGYuY3VycmVudF9tb2RlKCkKKyAgICAgICAgICAgIG5lc3RlZF9tb2RlX2NvbW1hbmRzID0gW3NlbGYudGl0bGVfb2YoeCkgZm9yIHggaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29tbWFuZF9uZXN0ZWRfZGljdC5nZXQobW9kZSwgW10pXQorICAgICAgICAgICAgcG9zc2libGVfY29tbWFuZHMgPSBbc2VsZi50aXRsZV9vZih4KSBmb3IgeCBpbgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb21tYW5kX2RpY3QuZ2V0KG1vZGUsIFtdKSBdICsgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXN0ZWRfbW9kZV9jb21tYW5kcworICAgICAgICAgICAgYXZhaWxhYmxlX2NvbW1hbmRzID0gc2VsZi5jb21tYW5kc19mZWF0dXJlX2VuYWJsZWQocG9zc2libGVfY29tbWFuZHMpCisgICAgICAgICAgICBzdWJtb2RlX2NvbW1hbmRzID0gc29ydGVkKHV0aWYudW5pcXVlX2xpc3RfZnJvbV9saXN0KGF2YWlsYWJsZV9jb21tYW5kcykpCisgICAgICAgICAgICBpZiBsZW4oc3VibW9kZV9jb21tYW5kcyk6CisgICAgICAgICAgICAgICAgbG9uZ2VzdF9jb21tYW5kID0gbGVuKG1heChzdWJtb2RlX2NvbW1hbmRzLCBrZXk9bGVuKSkKKyAgICAgICAgICAgIGZvciBpIGluIHN1Ym1vZGVfY29tbWFuZHM6CisgICAgICAgICAgICAgICAgaWYgbm90IGkuc3RhcnRzd2l0aCh0ZXh0KToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBjb3VudCArPSAxCisgICAgICAgICAgICAgICAgc2hvcnRfaGVscCA9IGNvbW1hbmQuZ2V0X2NvbW1hbmRfc2hvcnRfaGVscChpKQorICAgICAgICAgICAgICAgIGlmIG5vdCBzaG9ydF9oZWxwOgorICAgICAgICAgICAgICAgICAgICBzaG9ydF9oZWxwID0gc2VsZi5jb21tYW5kX3Nob3J0X2hlbHAuZ2V0KGksIE5vbmUpCisgICAgICAgICAgICAgICAgaWYgc2hvcnRfaGVscDoKKyAgICAgICAgICAgICAgICAgICAgc19yZXQgKz0gIiAgJXMlcyVzXG4iICUgKGksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnICcgKiAobG9uZ2VzdF9jb21tYW5kIC0gbGVuKGkpICsgMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydF9oZWxwKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHNfcmV0ICs9ICIgICVzXG4iICUgaQorCisgICAgICAgICAgICAjIGNvbW1hbmRzCisgICAgICAgICAgICBjX3JldCA9ICIiCisgICAgICAgICAgICB1cHBlcl9jb21tYW5kcyA9IFt4IGZvciB4IGluIHNlbGYuY29tbWFuZHNfZm9yX2N1cnJlbnRfbW9kZV9zdGFydGluZ193aXRoKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCB4IGluIHN1Ym1vZGVfY29tbWFuZHNdCisgICAgICAgICAgICBjb21tYW5kcyA9IHNvcnRlZCh1cHBlcl9jb21tYW5kcykKKyAgICAgICAgICAgIGlmIGxlbihjb21tYW5kcyk6CisgICAgICAgICAgICAgICAgbG9uZ2VzdF9jb21tYW5kID0gbWF4KFtsZW4oeCkgZm9yIHggaW4gY29tbWFuZHNdICsgW2xvbmdlc3RfY29tbWFuZF0pCisgICAgICAgICAgICBmb3IgaSBpbiBjb21tYW5kczoKKyAgICAgICAgICAgICAgICBpZiBub3QgaS5zdGFydHN3aXRoKHRleHQpOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGNvdW50ICs9IDEKKyAgICAgICAgICAgICAgICBzaG9ydF9oZWxwID0gY29tbWFuZC5nZXRfY29tbWFuZF9zaG9ydF9oZWxwKGkpCisgICAgICAgICAgICAgICAgaWYgbm90IHNob3J0X2hlbHA6CisgICAgICAgICAgICAgICAgICAgIHNob3J0X2hlbHAgPSBzZWxmLmNvbW1hbmRfc2hvcnRfaGVscC5nZXQoaSwgTm9uZSkKKyAgICAgICAgICAgICAgICBpZiBzaG9ydF9oZWxwOgorICAgICAgICAgICAgICAgICAgICBjX3JldCArPSAiICAlcyVzJXNcbiIgJSAoaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgJyAqIChsb25nZXN0X2NvbW1hbmQgLSBsZW4oaSkgKyAxKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0X2hlbHApCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgY19yZXQgKz0gIiAgJXNcbiIgJSBpCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAjIG9iamVjdHMKKyAgICAgICAgICAgIG9fcmV0ID0gIiIKKyAgICAgICAgICAgIGlmIHNlbGYuaW5fY29uZmlnX21vZGUoKToKKyAgICAgICAgICAgICAgICBvYmpfdHlwZXMgPSBzb3J0ZWQoc2VsZi5vYmpfdHlwZXNfZm9yX2NvbmZpZ19tb2RlX3N0YXJ0aW5nX3dpdGgoKSkKKyAgICAgICAgICAgICAgICBpZiBsZW4ob2JqX3R5cGVzKSA+IDA6CisgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIG9ial90eXBlczoKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvbmdlc3RfY29tbWFuZCA9IG1heChbbGVuKHgpIGZvciB4IGluIGNvbW1hbmRzXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xvbmdlc3RfY29tbWFuZF0pCisgICAgICAgICAgICAgICAgICAgIGZvciBpIGluIG9ial90eXBlczoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkgaW4gY29tbWFuZHM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGkuc3RhcnRzd2l0aCh0ZXh0KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb3VudCArPSAxCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnRfaGVscCA9IHNlbGYub2JqX3R5cGVfc2hvcnRfaGVscC5nZXQoaSwgTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzaG9ydF9oZWxwOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvX3JldCArPSAiICAlcyVzJXNcbiIgJSAoaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAnICogKGxvbmdlc3RfY29tbWFuZCAtIGxlbihpKSArIDEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG9ydF9oZWxwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9fcmV0ICs9ICIgICVzXG4iICUgaQorCisgICAgICAgICAgICAjIGZpZWxkcworICAgICAgICAgICAgZl9yZXQgPSAiIgorICAgICAgICAgICAgaWYgc2VsZi5pbl9jb25maWdfc3VibW9kZSgpOgorICAgICAgICAgICAgICAgICMgdHJ5IHRvIGdldCBib3RoIHRoZSBmaWVsZHMgYW5kIHRoZSBjb21tYW5kcyB0byBsaW5lIHVwCisgICAgICAgICAgICAgICAgbG9uZ2VzdF9maWVsZCA9IGxvbmdlc3RfY29tbWFuZAorICAgICAgICAgICAgICAgIGZvciBpIGluIHNlbGYuZmllbGRzX2Zvcl9jdXJyZW50X3N1Ym1vZGVfc3RhcnRpbmdfd2l0aCgpOgorICAgICAgICAgICAgICAgICAgICBpZiBpLnN0YXJ0c3dpdGgodGV4dCk6CisgICAgICAgICAgICAgICAgICAgICAgICBsb25nZXN0X2ZpZWxkID0gbWF4KGxvbmdlc3RfZmllbGQsIGxlbihpKSkKKyAKKyAgICAgICAgICAgICAgICBmX2NvdW50ID0gMAorICAgICAgICAgICAgICAgICMgTE9PSyEgY291bGQgYmUgZ2V0dGluZyB0aGUgaGVscCB0ZXh0IGZvciBlYWNoIG9mIHRoZXNlLi4uCisgICAgICAgICAgICAgICAgZm9yIGkgaW4gc29ydGVkKHNlbGYuZmllbGRzX2Zvcl9jdXJyZW50X3N1Ym1vZGVfc3RhcnRpbmdfd2l0aCgpKToKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGkuc3RhcnRzd2l0aCh0ZXh0KToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgIGNvdW50ICs9IDEKKyAgICAgICAgICAgICAgICAgICAgZmllbGRfaW5mbyA9IG1pLm9ial90eXBlX2luZm9fZGljdFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZ2V0X2N1cnJlbnRfbW9kZV9vYmpfdHlwZSgpXVsnZmllbGRzJ10uXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldChpLCBOb25lKQorICAgICAgICAgICAgICAgICAgICBpZiBub3QgZmllbGRfaW5mbyBhbmQgc2VsZi5kZWJ1ZzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICdubyBmaWVsZCBmb3IgJXM6JXMnICUgKHNlbGYuZ2V0X2N1cnJlbnRfbW9kZV9vYmpfdHlwZSgpLCBpKQorICAgICAgICAgICAgICAgICAgICBpZiBmaWVsZF9pbmZvIGFuZCBmaWVsZF9pbmZvLmdldCgnaGVscF90ZXh0JywgTm9uZSk6CisgICAgICAgICAgICAgICAgICAgICAgICBmX3JldCArPSAiICAlcyVzJXNcbiIgJSAoaSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgJyAqIChsb25nZXN0X2ZpZWxkIC0gbGVuKGkpICsgMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZF9pbmZvLmdldCgnaGVscF90ZXh0JykpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBmX3JldCArPSAiICAlc1xuIiUgaQorCisgICAgICAgICAgICBpZiAodGV4dCA9PSAiIiBvciBjb3VudCA+IDEpIGFuZCBzX3JldCAhPSAiIjoKKyAgICAgICAgICAgICAgICByZXQgKz0gIkNvbW1hbmRzOlxuIgorICAgICAgICAgICAgICAgIHJldCArPSBzX3JldAorCisgICAgICAgICAgICBpZiAodGV4dCA9PSAiIiBvciBjb3VudCA+IDEpIGFuZCBjX3JldCAhPSAiIjoKKyAgICAgICAgICAgICAgICByZXQgKz0gIkFsbCBBdmFpbGFibGUgY29tbWFuZHM6XG4iCisgICAgICAgICAgICAgICAgcmV0ICs9IGNfcmV0CisKKyAgICAgICAgICAgIGlmICh0ZXh0ID09ICIiIG9yIGNvdW50ID4gMSkgYW5kIG9fcmV0ICE9ICIiOgorICAgICAgICAgICAgICAgIHJldCArPSAiXG5BdmFpbGFibGUgY29uZmlnIHN1Ym1vZGVzOlxuIgorICAgICAgICAgICAgICAgIHJldCArPSBvX3JldAorICAgICAgICAgICAgCisgICAgICAgICAgICBpZiAodGV4dCA9PSAiIiBvciBjb3VudCA+IDEpIGFuZCBmX3JldCAhPSAiIjoKKyAgICAgICAgICAgICAgICByZXQgKz0gIlxuQXZhaWxhYmxlIGZpZWxkcyBmb3IgJXM6XG4iICUgc2VsZi5nZXRfY3VycmVudF9tb2RlX29ial90eXBlKCkgCisgICAgICAgICAgICAgICAgcmV0ICs9IGZfcmV0CisgICAgICAgIGVsaWYgd29yZHNbMF0gaW4gWyJzaG93IiwgImhlbHAiLCAiY29weSIsICJ3YXRjaCIgXToKKyAgICAgICAgICAgIG1ldGhvZCA9IHNlbGYuY29tbWFuZF9tZXRob2RfZnJvbV9uYW1lKHdvcmRzWzBdKQorICAgICAgICAgICAgaWYgbWV0aG9kOgorICAgICAgICAgICAgICAgIHJldCA9IG1ldGhvZChOb25lKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjdHJ5OgorICAgICAgICAgICAgICAgICAgICAjcmV0ID0gY29tbWFuZC5nZXRfY29tbWFuZF9zeW50YXhfaGVscCh3b3JkcywgJ0NvbW1hbmQgc3ludGF4OicpCisgICAgICAgICAgICAgICAgI2V4Y2VwdDoKKyAgICAgICAgICAgICAgICAgICAgI2lmIHNlbGYuZGVidWcgb3Igc2VsZi5kZWJ1Z19iYWNrdHJhY2U6CisgICAgICAgICAgICAgICAgICAgICAgICAjdHJhY2ViYWNrLnByaW50X2V4YygpCisgICAgICAgICAgICAgICAgICAgICNyZXQgPSAiTm8gaGVscCBhdmFpbGFibGUgZm9yIGNvbW1hbmQgJXMiICUgd29yZHNbMF0KKworICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgcmV0ID0gY29tbWFuZC5nZXRfY29tbWFuZF9kb2N1bWVudGF0aW9uKHdvcmRzKQorICAgICAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5kZWJ1ZyBvciBzZWxmLmRlYnVnX2JhY2t0cmFjZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICAgICAgICAgICAgICByZXQgPSAiTm8gaGVscCBhdmFpbGFibGUgZm9yIGNvbW1hbmQgJXMiICUgd29yZHNbMF0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICN0cnk6CisgICAgICAgICAgICAgICAgI3JldCA9IGNvbW1hbmQuZ2V0X2NvbW1hbmRfc3ludGF4X2hlbHAod29yZHMsICdDb21tYW5kIHN5bnRheDonKQorICAgICAgICAgICAgI2V4Y2VwdDoKKyAgICAgICAgICAgICAgICAjaWYgc2VsZi5kZWJ1ZyBvciBzZWxmLmRlYnVnX2JhY2t0cmFjZToKKyAgICAgICAgICAgICAgICAgICAgI3RyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICAgICAgICAgICNyZXQgPSAiTm8gaGVscCBhdmFpbGFibGUgZm9yIGNvbW1hbmQgJXMiICUgd29yZHNbMF0KKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICByZXQgPSBjb21tYW5kLmdldF9jb21tYW5kX2RvY3VtZW50YXRpb24od29yZHMpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5kZWJ1ZyBvciBzZWxmLmRlYnVnX2JhY2t0cmFjZToKKyAgICAgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCisgICAgICAgICAgICAgICAgcmV0ID0gIk5vIGhlbHAgYXZhaWxhYmxlIGZvciBjb21tYW5kICVzIiAlIHdvcmRzWzBdCisgICAgICAgIHJldHVybiByZXQKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBkb19oZWxwCisgICAgIworICAgIGRlZiBkb19oZWxwKHNlbGYsIHdvcmRzKToKKyAgICAgICAgcmV0dXJuIHNlbGYuaGVscF9zcGxhc2god29yZHMsICIiKQorICAgICAgICAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fbGludAorICAgICMKKyAgICBkZWYgZG9fbGludChzZWxmLCB3b3Jkcyk6CisgICAgICAgIHJldHVybiBjb21tYW5kLmxpbnRfY29tbWFuZCh3b3JkcykKKworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNwX2hpc3RvcnkKKyAgICAjCisgICAgZGVmIGNwX2hpc3Rvcnkoc2VsZiwgd29yZHMsIHRleHQsIGNvbXBsZXRpb25fY2hhcik6CisgICAgICAgIGlmIGxlbih3b3JkcykgPT0gMToKKyAgICAgICAgICAgIHJldF92YWwgPSAiICA8bnVtPiAgICAgIC0gdG8gZGlzcGxheSBhIHNwZWNpZmljIG51bWJlciBvZiBjb21tYW5kcyAoZGVmYXVsdDphbGwpXG4iCisgICAgICAgICAgICByZXRfdmFsICs9ICIgIDxjcj5cbiIKKyAgICAgICAgICAgIHNlbGYucHJpbnRfY29tcGxldGlvbl9oZWxwKHJldF92YWwpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLnByaW50X2NvbXBsZXRpb25faGVscCgiPGNyPiIpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9faGlzdG9yeQorICAgICMKKyAgICBkZWYgZG9faGlzdG9yeShzZWxmLCB3b3JkcyA9IE5vbmUpOgorICAgICAgICByZXRfdmFsID0gIiIKKyAgICAgICAgaG93X21hbnkgPSBudW1fY29tbWFuZHMgPSByZWFkbGluZS5nZXRfY3VycmVudF9oaXN0b3J5X2xlbmd0aCgpCisgICAgICAgIGlmIHdvcmRzOgorICAgICAgICAgICAgaG93X21hbnkgPSB3b3Jkc1swXQorICAgICAgICBmb3IgaSBpbiByYW5nZShudW1fY29tbWFuZHMtaW50KGhvd19tYW55KSArIDEsIG51bV9jb21tYW5kcyk6CisgICAgICAgICAgICB5aWVsZCAiJXM6ICVzXG4iICUgKGksIHJlYWRsaW5lLmdldF9oaXN0b3J5X2l0ZW0oaSkpCisgICAgICAgIHJldHVybgorCisKKyAgICBkZWJ1Z19jbWRfb3B0aW9ucyA9IFsicHl0aG9uIiwgImJhc2giLCAiY2Fzc2FuZHJhLWNsaSIsICJuZXRjb25maWciLCAidGNwZHVtcCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgImNsaSIsICJjbGktYmFja3RyYWNlIiwgImNsaS1iYXRjaCIsICJjbGktaW50ZXJhY3RpdmUiXQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGRvX2RlYnVnCisgICAgIworICAgIGRlZiBpbXBsZW1lbnRfZGVidWcoc2VsZiwgd29yZHMpOgorICAgICAgICBpZiBsZW4od29yZHMpIDwgMSBvciBsZW4oW3ggZm9yIHggaW4gc2VsZi5kZWJ1Z19jbWRfb3B0aW9ucyBpZiB4LnN0YXJ0c3dpdGgod29yZHNbMF0pXSkgPCAxOgorICAgICAgICAgICAgcmV0dXJuICJTeW50YXg6IGRlYnVnIDwgJXMgPiIgJSAiIHwgIi5qb2luKHNlbGYuZGVidWdfY21kX29wdGlvbnMpCisgICAgICAgIGRlZiBzaGVsbChhcmdzKToKKyAgICAgICAgICAgIHN1YnByb2Nlc3MuY2FsbChbImVudiIsICJTSEVMTD0vYmluL2Jhc2giLCAiL2Jpbi9iYXNoIl0gKyBsaXN0KGFyZ3MpLCBjd2Q9b3MuZW52aXJvbi5nZXQoIkhPTUUiKSkKKyAgICAgICAgICAgIHByaW50CisgICAgICAgIHByaW50ICJcbioqKioqIFdhcm5pbmc6IHRoaXMgaXMgYSBkZWJ1ZyBjb21tYW5kIC0gdXNlIGNhdXRpb24hICoqKioqIgorICAgICAgICBpZiAicHl0aG9uIi5zdGFydHN3aXRoKHdvcmRzWzBdKToKKyAgICAgICAgICAgIHByaW50ICcqKioqKiBUeXBlICJleGl0KCkiIG9yIEN0cmwtRCB0byByZXR1cm4gdG8gdGhlIFNETk9TIENMSSAqKioqKlxuJworICAgICAgICAgICAgc2hlbGwoWyItbCIsICItYyIsICJweXRob24iXSkKKyAgICAgICAgZWxpZiAiYmFzaCIuc3RhcnRzd2l0aCh3b3Jkc1swXSk6CisgICAgICAgICAgICBwcmludCAnKioqKiogVHlwZSAiZXhpdCIgb3IgQ3RybC1EIHRvIHJldHVybiB0byB0aGUgU0ROT1MgQ0xJICoqKioqXG4nCisgICAgICAgICAgICBzaGVsbChbIi1sIiwgIi1pIl0pCisgICAgICAgIGVsaWYgImNhc3NhbmRyYS1jbGkiLnN0YXJ0c3dpdGgod29yZHNbMF0pOgorICAgICAgICAgICAgcHJpbnQgJyoqKioqIFR5cGUgImV4aXQiIG9yIEN0cmwtRCB0byByZXR1cm4gdG8gdGhlIFNETk9TIENMSSAqKioqKlxuJworICAgICAgICAgICAgc2hlbGwoWyItbCIsICItYyIsICIvb3B0L3NkbnBsYXRmb3JtL2RiL2Jpbi9jYXNzYW5kcmEtY2xpIC0taG9zdCBsb2NhbGhvc3QiXSkKKyAgICAgICAgZWxpZiAibmV0Y29uZmlnIi5zdGFydHN3aXRoKHdvcmRzWzBdKToKKyAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaCgiL2Rldi90dHlTP1tcZF0rJCIsIG9zLnR0eW5hbWUoMCkpOgorICAgICAgICAgICAgICAgIHByaW50ICcqKioqKiBZb3Ugc2VlbSB0byBiZSBjb25uZWN0ZWQgdmlhIFNTSCBvciBhbm90aGVyIHJlbW90ZSBwcm90b2NvbDsnCisgICAgICAgICAgICAgICAgcHJpbnQgJyoqKioqIHJlY29uZmlndXJpbmcgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIG1heSBkaXNydXB0IHRoZSBjb25uZWN0aW9uIScKKyAgICAgICAgICAgIHByaW50ICdcbihQcmVzcyBDb250cm9sLUMgbm93IHRvIGxlYXZlIHRoZSBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gdW5jaGFuZ2VkKVxuJworICAgICAgICAgICAgc3VicHJvY2Vzcy5jYWxsKFsic3VkbyIsICJlbnYiLCAiU0hFTEw9L2Jpbi9iYXNoIiwgIi9vcHQvc2RucGxhdGZvcm0vc3lzL2Jpbi9ic2NuZXRjb25maWciLCAiZXRoMCJdLCBjd2Q9b3MuZW52aXJvbi5nZXQoIkhPTUUiKSkKKyAgICAgICAgZWxpZiAidGNwZHVtcCIuc3RhcnRzd2l0aCh3b3Jkc1swXSk6CisgICAgICAgICAgICBwcmludCAnKioqKiogVHlwZSBDdHJsLUMgdG8gcmV0dXJuIHRvIHRoZSBTRE5PUyBDTEkgKioqKipcbicKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzaGVsbChbIi1sIiwgIi1jIiwgInN1ZG8gL29wdC9vcGVuZmxvdy9zYmluL3RjcGR1bXAgIiArICIgIi5qb2luKHdvcmRzWzE6XSldKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHBhc3MgIyByZWFsbHksIHdlIG5lZWQgdG8gaWdub3JlIHRoaXMgdW5jb25kaXRpb25hbGx5IQorICAgICAgICAgICAgdGltZS5zbGVlcCgwLjIpCisgICAgICAgIGVsaWYgImNsaSIuc3RhcnRzd2l0aCh3b3Jkc1swXSk6CisgICAgICAgICAgICBpZiBzZWxmLmRlYnVnOgorICAgICAgICAgICAgICAgIHNlbGYuZGVidWcgPSBGYWxzZQorICAgICAgICAgICAgICAgIHByaW50ICJkZWJ1ZyBkaXNhYmxlZCIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5kZWJ1ZyA9IFRydWUKKyAgICAgICAgICAgICAgICBwcmludCAiZGVidWcgZW5hYmxlZCIKKyAgICAgICAgZWxpZiAiY2xpLWJhY2t0cmFjZSIuc3RhcnRzd2l0aCh3b3Jkc1swXSk6CisgICAgICAgICAgICAjIFRoaXMgZmVhdHVyZSBpcyBzZXBhcmF0ZWQgZnJvbSB0aGUgY2xpIGRlYnVnIG1vZGUgc28gdGhhdCBiYWNrdHJhY2VzCisgICAgICAgICAgICAjIGNhbiBiZSBjb2xsZWN0ZWQgZHVyaW5nIGNsaSBxYQorICAgICAgICAgICAgc2VsZi5kZWJ1Z19iYWNrdHJhY2UgPSBUcnVlCisgICAgICAgICAgICBwcmludCAnKioqKiogRW5hYmxlZCBjbGkgZGVidWcgYmFja3RyYWNlICoqKioqJworICAgICAgICBlbGlmICJjbGktYmF0Y2giLnN0YXJ0c3dpdGgod29yZHNbMF0pOgorICAgICAgICAgICAgc2VsZi5iYXRjaCA9IFRydWUKKyAgICAgICAgICAgIHByaW50ICcqKioqKiBFbmFibGVkIGNsaSBiYXRjaCBtb2RlICoqKioqJworICAgICAgICBlbGlmICJjbGktaW50ZXJhY3RpdmUiLnN0YXJ0c3dpdGgod29yZHNbMF0pOgorICAgICAgICAgICAgc2VsZi5iYXRjaCA9IEZhbHNlCisgICAgICAgICAgICBwcmludCAnKioqKiogRGlzYWJsZWQgY2xpIGJhdGNoIG1vZGUgKioqKionCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coImludm9raW5nIGRlYnVnIikKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fZWNobworICAgICMKKyAgICBkZWYgZG9fZWNobyhzZWxmLCB3b3Jkcyk6CisgICAgICAgIHByaW50ICIgIi5qb2luKHdvcmRzKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNwX3RyYWNlCisgICAgIworICAgIHRyYWNlX29wdGlvbmFsX3BhcmFtcyA9IHsKKyAgICAgICAgJ3NjcmVlbic6IHsndHlwZSc6ICdmbGFnJ30sCisjICAgICAgICAncG9ydCc6IHsndHlwZSc6ICdzdHJpbmcnLAorIyAgICAgICAgICAgICAgICAgICAgICdzeW50YXhfaGVscCc6ICJFbnRlciA8c3dpdGNoIGRwaWQ+IDxwaHlzaWNhbCBwb3J0Iz4sIHdoZXJlIHRoZSBwYWNrZXRzIHRyYWNlcyBhcmUgc3Bhbm5lZC4ifSwKKyAgICAgICAgJ2ZpbGUnOiB7J3R5cGUnOiAnc3RyaW5nJywKKyAgICAgICAgICAgICAgICAgICAgICdzeW50YXhfaGVscCc6ICJFbnRlciA8ZmlsZW5hbWU+IHdoZXJlIHRoZSBwYWNrZXRzIHRyYWNlcyBhcmUgY2FwdHVyZWQuIn0sCisgICAgICAgIH0KKworICAgIHRyYWNlX2NtZHMgPSBbImRldGFpbCIsICJvbmVsaW5lIiwgInZucyIsICJpbiIsICJvdXQiLCAiYm90aCIsIAorICAgICAgICAgICAgICAgICAgICAgICJlY2hvX3JlcGx5IiwgICJlY2hvX3JlcXVlc3QiLCAiZmVhdHVyZXNfcmVwIiwgImZsb3dfbW9kIiwgImZsb3dfcmVtb3ZlZCIsICJnZXRfY29uZmlnX3JlcCIsICJoZWxsbyIsIAorICAgICAgICAgICAgICAgICAgICAgICJwYWNrZXRfaW4iLCAicGFja2V0X291dCIsICJwb3J0X3N0YXR1cyIsICJzZXRfY29uZmlnIiwgInN0YXRzX3JlcGx5IiwgInN0YXRzX3JlcXVlcyJdCisKKyAgICBkZWYgY3BfdHJhY2Uoc2VsZiwgd29yZHMsIHRleHQsIGNvbXBsZXRpb25fY2hhcik6CisgICAgICAgIHZuc19jYWNoZSA9IG9iamVjdHNfc3RhcnRpbmdfd2l0aCgndm5zLWRlZmluaXRpb24nKQorICAgICAgICBpZiBsZW4od29yZHMpID09IDE6CisgICAgICAgICAgICByZXR1cm4gW3ggZm9yIHggaW4gc2VsZi50cmFjZV9jbWRzIGlmIHguc3RhcnRzd2l0aCh0ZXh0KV0KKyAgICAgICAgZWxpZiBsZW4od29yZHMpID09IDIgYW5kIHdvcmRzWzFdLmxvd2VyKCkuc3RhcnRzd2l0aCgidm5zIik6CisgICAgICAgICAgICByZXR1cm4gdm5zX2NhY2hlCisgICAgICAgIGVsaWYgbGVuKHdvcmRzKSA9PSAyIGFuZCB3b3Jkc1sxXS5sb3dlcigpLnN0YXJ0c3dpdGgoIm91dHB1dCIpOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29tcGxldGVfb3B0aW9uYWxfcGFyYW1ldGVycyhzZWxmLnRyYWNlX29wdGlvbmFsX3BhcmFtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmRzW2xlbih3b3Jkcyk6XSwgdGV4dCkKKyAgICAgICAgZWxpZiAobGVuKHdvcmRzKSA9PSAzIGFuZCAKKyAgICAgICAgICAgICB3b3Jkc1sxXS5sb3dlcigpLnN0YXJ0c3dpdGgoInZucyIpIGFuZAorICAgICAgICAgICAgIHdvcmRzWzJdLmxvd2VyKCkgaW4gdm5zX2NhY2hlKToKKyAgICAgICAgICAgIHJldHVybiBbeCBmb3IgeCBpbiBbImluIiwgIm91dCIsICJib3RoIiwgIm91dHB1dCJdIGlmIHguc3RhcnRzd2l0aCh0ZXh0KV0gCisgICAgICAgIGVsaWYgKGxlbih3b3JkcykgPT0gNCBhbmQgCisgICAgICAgICAgICAgd29yZHNbMV0ubG93ZXIoKS5zdGFydHN3aXRoKCJ2bnMiKSBhbmQKKyAgICAgICAgICAgICB3b3Jkc1syXS5sb3dlcigpIGluIG9iamVjdHNfc3RhcnRpbmdfd2l0aCgndm5zLWRlZmluaXRpb24nKSBhbmQKKyAgICAgICAgICAgICB3b3Jkc1szXS5sb3dlcigpIGluIFsiaW4iLCAib3V0IiwgImJvdGgiXSk6CisgICAgICAgICAgICByZXR1cm4gW3ggZm9yIHggaW4gWyJvdXRwdXQiXSBpZiB4LnN0YXJ0c3dpdGgodGV4dCldIAorICAgICAgICBlbGlmIGxlbih3b3JkcykgPT0gMiBhbmQgd29yZHNbMV0ubG93ZXIoKWluIFsiaW4iLCAib3V0IiwgImJvdGgiXToKKyAgICAgICAgICAgIHJldHVybiBbeCBmb3IgeCBpbiBbIm91dHB1dCJdIGlmIHguc3RhcnRzd2l0aCh0ZXh0KV0gCisgICAgICAgIGVsaWYgKGxlbih3b3JkcykgPiAyIGFuZCAKKyAgICAgICAgICAgICAod29yZHNbMV0ubG93ZXIoKS5zdGFydHN3aXRoKCJ2bnMiKSBvcgorICAgICAgICAgICAgICB3b3Jkc1sxXS5sb3dlcigpLnN0YXJ0c3dpdGgoIm91dHB1dCIpIG9yCisgICAgICAgICAgICAgIHdvcmRzWzJdLmxvd2VyKCkuc3RhcnRzd2l0aCgib3V0cHV0IikpKSA6CisgICAgICAgICAgICBvZmZzZXQgPSBsZW4od29yZHMpCisgICAgICAgICAgICBpZiB3b3Jkc1tsZW4od29yZHMpLTFdLmxvd2VyKCkgPT0gJ3NjcmVlbic6CisgICAgICAgICAgICAgICAgc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoIjxjcj4iKQorICAgICAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICAgICAgZWxpZiB3b3Jkc1tsZW4od29yZHMpLTFdLmxvd2VyKCkgaW4gWydmaWxlJ106CisgICAgICAgICAgICAgICAgb2Zmc2V0ID0gbGVuKHdvcmRzKSAtIDEKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmNvbXBsZXRlX29wdGlvbmFsX3BhcmFtZXRlcnMoc2VsZi50cmFjZV9vcHRpb25hbF9wYXJhbXMsIHdvcmRzW29mZnNldDpdLCB0ZXh0KQorCisgICAgICAgIHNlbGYucHJpbnRfY29tcGxldGlvbl9oZWxwKCI8Y3I+IikKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBkb190cmFjZQorICAgICMKKyAgICBkZWYgZG9fdHJhY2Uoc2VsZiwgKmFyZ3MpOgorICAgICAgICBkcGlkID0gTm9uZQorICAgICAgICBpZiBsZW4oYXJncykgPiAwOgorICAgICAgICAgICAgYXJncyA9IGFyZ3NbMF0gICMgZmlyc3QgZWxlbWVudCBpcyB0aGUgYXJyYXkgb2YgJ3JlYWwnIGFyZ3MKKyAgICAgICAgaWYgbGVuKGFyZ3MpID4gMSBhbmQgYXJnc1swXS5sb3dlcigpIGluIFsndm5zJywgJ2luJywgJ291dCcsICdib3RoJywgJ291dHB1dCddOgorICAgICAgICAgICAgdHJ5IDoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5kb19zZG5wbGF0Zm9ybV90cmFjZShhcmdzKQorICAgICAgICAgICAgZXhjZXB0IEtleWJvYXJkSW50ZXJydXB0LCBlOgorICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGlmIGxlbihhcmdzKSA+IDEgYW5kIGFyZ3NbMF0ubG93ZXIoKSA9PSAndHJhY2UnOgorICAgICAgICAgICAgZHBpZCA9IGFyZ3NbMV0KKyAgICAgICAgICAgIGFyZ3MgPSBhcmdzWzI6XSAjIEFuZCBpbiB0aGlzIGNhc2UsIGFyZ3MgYXJlIGFmdGVyIHRoZSBmaXJzdCAyIHBhcmFtZXRlcnMKKyAgICAgICAgcmV0dXJuIHNlbGYuZG9fdGNwZHVtcF90cmFjZShkcGlkLCBhcmdzKQorCisgICAgZGVmIGRvX3NkbnBsYXRmb3JtX3RyYWNlKHNlbGYsIGFyZ3MpOgorICAgICAgICB2bnMgPSBOb25lCisgICAgICAgIGRpcmVjdGlvbiA9ICdib3RoJworICAgICAgICBvdXRwdXQgPSAnc2NyZWVuJworICAgICAgICBkcGlkID0gTm9uZQorICAgICAgICBwb3J0ID0gTm9uZQorICAgICAgICBmaWxlX25hbWUgPSBOb25lCisgICAgICAgIHNlc3Npb25JZCA9IE5vbmUKKyAgICAgICAgZXJyb3IgPSAnRXJyb3I6IEludmFsaWQgY29tbWFuZCBzeW50YXguXG4nICsgXAorICAgICAgICAgICAgICAgICd0cmFjZSBbdm5zIDx2bnNJZD5dIFtpbnxvdXR8Ym90aF0gb3V0cHV0IFtzY3JlZW5dJworIyAgICAgICAgICAgICAgICAndHJhY2UgW3ZucyA8dm5zSWQ+XSBbaW58b3V0fGJvdGhdIG91dHB1dCBbc2NyZWVufHBvcnQgPGRwaWQ+IDxwaHlzaWNhbCBwb3J0PnxmaWxlIDxmaWxlbmFtZT5dJworCisgICAgICAgIGlmIGFyZ3NbMF0ubG93ZXIoKSA9PSAndm5zJzoKKyAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CisgICAgICAgICAgICAgICAgdm5zID0gYXJnc1sxXQorICAgICAgICAgICAgICAgIGFyZ3MgPSBhcmdzWzI6XQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3IKKworICAgICAgICB3aGlsZSBhcmdzOgorICAgICAgICAgICAgaWYgYXJnc1swXS5sb3dlcigpID09ICdvdXRwdXQnOgorICAgICAgICAgICAgICAgIGFyZ3MgPSBhcmdzWzE6XQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBhcmdzWzBdLmxvd2VyKCkgaW4gWydpbicsICdvdXQnLCAnYm90aCddOgorICAgICAgICAgICAgICAgIGRpcmVjdGlvbiA9IGFyZ3NbMF0ubG93ZXIoKSAKKyAgICAgICAgICAgICAgICBhcmdzID0gYXJnc1sxOl0KKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgYXJnc1swXS5sb3dlcigpID09ICdzY3JlZW4nOgorICAgICAgICAgICAgICAgIG91dHB1dCA9ICdzY3JlZW4nCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgIGlmIGFyZ3NbMF0ubG93ZXIoKSA9PSAncG9ydCc6CisgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ3BvcnQnCisgICAgICAgICAgICAgICAgaWYgbGVuKGFyZ3MpID4gMjoKKyAgICAgICAgICAgICAgICAgICAgZHBpZCA9IGFyZ3NbMV0KKyAgICAgICAgICAgICAgICAgICAgcG9ydCA9IGFyZ3NbMjpdCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yCisgICAgICAgICAgICBpZiBhcmdzWzBdLmxvd2VyKCkgPT0gJ2ZpbGUnOgorICAgICAgICAgICAgICAgIG91dHB1dCA9ICdmaWxlJworICAgICAgICAgICAgICAgIGlmIGxlbihhcmdzKSA+IDE6CisgICAgICAgICAgICAgICAgICAgIGZpbGVfbmFtZSA9IGFyZ3NbMV0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXJyb3IKKworICAgICAgICBmaWx0ZXJfcmVxdWVzdCA9IHtGVF9ESVJFQ1RJT046ZGlyZWN0aW9uLCBGVF9PVVRQVVQ6b3V0cHV0LCBGVF9QRVJJT0Q6RlRfUEVSSU9EX0RFRkFVTFR9CisgICAgICAgIGlmIHZucyA6CisgICAgICAgICAgICBmaWx0ZXJfcmVxdWVzdFtGVF9WTlNdID0gdm5zCisgICAgICAgIGlmIGRwaWQgYW5kIHBvcnQgOgorICAgICAgICAgICAgZmlsdGVyX3JlcXVlc3RbRlRfUE9SVF0gPSB7RlRfUE9SVF9EUElEOmRwaWQsIEZUX1BPUlRfUE9SVDpwb3J0fQorCisKKyAgICAgICAgcG9zdF9kYXRhID0ganNvbi5kdW1wcyhmaWx0ZXJfcmVxdWVzdCkKKworICAgICAgICB3aGlsZSAxOgorICAgICAgICAgICAgcmVzcG9uc2VfdGV4dCA9IE5vbmUKKyAgICAgICAgICAgIHNlc3Npb25JZCA9IE5vbmUKKyAgICAgICAgICAgIHVybCA9ICdodHRwOi8vJXMvcmVzdC92MS9wYWNrZXR0cmFjZS8nICUgY2xpLmNvbnRyb2xsZXIKKyAgICAgICAgICAgIHJlcXVlc3QgPSB1cmxsaWIyLlJlcXVlc3QodXJsLCBwb3N0X2RhdGEsIHsnQ29udGVudC1UeXBlJzonYXBwbGljYXRpb24vanNvbid9KQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJlc3BvbnNlID0gdXJsbGliMi51cmxvcGVuKHJlcXVlc3QpCisgICAgICAgICAgICAgICAgcmVzcG9uc2VfdGV4dCA9IHJlc3BvbnNlLnJlYWQoKQorICAgICAgICAgICAgICAgIHJlc3BvbnNlX3RleHQgPSBqc29uLmxvYWRzKHJlc3BvbnNlX3RleHQpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIHJldHVybiAiRXJyb3I6IGZhaWxlZCB0byBnZXQgYSByZXNwb25zZSBmb3IgYSB0cmFjZSByZXF1ZXN0LiAlcyIgJSBlCisKKyAgICAgICAgICAgIGlmIHJlc3BvbnNlX3RleHQgYW5kIFNFU1NJT05JRCBpbiByZXNwb25zZV90ZXh0OgorICAgICAgICAgICAgICAgIHNlc3Npb25JZCA9IHJlc3BvbnNlX3RleHRbU0VTU0lPTklEXQorICAgICAgICAgICAgZWxzZSA6CisgICAgICAgICAgICAgICAgcmV0dXJuICJFcnJvcjogZmFpbGVkIHRvIGdldCBhIHRyYWNlIHNlc3Npb24uICVzIiAlIHJlc3BvbnNlX3RleHQKKworICAgICAgICAgICAgIyBTcGFuIHRvIGEgcGh5c2ljYWwgcG9ydAorICAgICAgICAgICAgIyBObyBkYXRhIGlzIHNob3duIG9uIGNsaS4gXkMgdG8gc3RvcCB0aGUgdHJhY2UKKyAgICAgICAgICAgIGlmIG91dHB1dC5sb3dlcigpID09ICdwb3J0JzoKKyAgICAgICAgICAgICAgICB3aGlsZSAxOgorICAgICAgICAgICAgICAgICAgICB0cnkgOgorICAgICAgICAgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgxMDAwKQorICAgICAgICAgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQsIGU6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRlcm1pbmF0ZVRyYWNlKHNlc3Npb25JZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICAgICBscHVybCA9IE5vbmUKKworICAgICAgICAgICAgaWYgc2Vzc2lvbklkOgorICAgICAgICAgICAgICAgIGxwdXJsID0gJ2h0dHA6Ly8lcy9wb2xsL3BhY2tldHMvJXMnICUgKGNsaS5jb250cm9sbGVyLCBzZXNzaW9uSWQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiAiRXJyb3I6IGZhaWxlZCB0byBzdGFydCBhIHRyYWNlIHNlc3Npb24uICVzIiAlIHJlc3BvbnNlX3RleHQKKworICAgICAgICAgICAgRklMRSA9IE5vbmUKKyAgICAgICAgICAgIGlmIGZpbGVfbmFtZToKKyAgICAgICAgICAgICAgICBGSUxFID0gb3BlbihmaWxlX25hbWUsICJ3IikKKworICAgICAgICAgICAgZmxhZ1RpbWVvdXQgPSBGYWxzZQorICAgICAgICAgICAgd2hpbGUgMToKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlX3RleHQgPSB1cmxsaWIyLnVybG9wZW4obHB1cmwpLnJlYWQoKQorICAgICAgICAgICAgICAgICAgICBkYXRhID0ganNvbi5sb2FkcyhyZXNwb25zZV90ZXh0KQorICAgICAgICAgICAgICAgICAgICBpZiBvdXRwdXQubG93ZXIoKSA9PSAic2NyZWVuIjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdUaW1lb3V0ID0gc2VsZi5kdW1wUGt0VG9TY3JlZW4oZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgZWxpZiBvdXRwdXQubG93ZXIoKSA9PSAnZmlsZScgYW5kIEZJTEUgIT0gTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZHVtcFBrdFRvRmlsZShGSUxFLCBkYXRhKQorICAgICAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdCwgZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi4gdGVybWluYXRlVHJhY2Uoc2Vzc2lvbklkKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gIkVycm9yOiBmYWlsZWQgdG8gc3RhcnQgYSB0cmFjZSBzZXNzaW9uLiAlcyIgJSBlCisKKyAgICAgICAgICAgICAgICBpZiBmbGFnVGltZW91dDoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWVTdHJpbmcgPSByYXdfaW5wdXQoIkRvIHlvdSB3YW50IHRvIGNvbnRpbnVlIHRyYWNpbmc/IFt5L25dOiAgIikKKyAgICAgICAgICAgICAgICAgICAgaWYgJ3knIGluIGNvbnRpbnVlU3RyaW5nLmxvd2VyKCk6CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZHVtcFBrdFRvU2NyZWVuKGRhdGEpOgorICAgICAgICBmb3IgZW50cnkgaW4gZGF0YToKKyAgICAgICAgICAgIGlmIEZUX1RJTUVPVVQgaW4gZW50cnk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcHJpbnQgZW50cnkKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGR1bXBQa3RUb0ZpbGUoRklMRSwgZGF0YSk6CisgICAgICAgIEZJTEUud3JpdGVsaW5lcyhkYXRhKQorCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiB0ZXJtaW5hdGVUcmFjZShzaWQpOgorICAgICAgICBwb3N0X2RhdGEgPSBqc29uLmR1bXBzKHtTRVNTSU9OSUQ6c2lkLCBGVF9QRVJJT0Q6LTF9KQorICAgICAgICB1cmwgPSAnaHR0cDovLyVzL3Jlc3QvdjEvcGFja2V0dHJhY2UvJyAlIGNsaS5jb250cm9sbGVyCisgICAgICAgIHJlcXVlc3QgPSB1cmxsaWIyLlJlcXVlc3QodXJsLCBwb3N0X2RhdGEsIHsnQ29udGVudC1UeXBlJzonYXBwbGljYXRpb24vanNvbid9KQorICAgICAgICB0cnk6CisgICAgICAgICAgICByZXNwb25zZSA9IHVybGxpYjIudXJsb3BlbihyZXF1ZXN0KQorICAgICAgICAgICAgcmVzcG9uc2VfdGV4dCA9IHJlc3BvbnNlLnJlYWQoKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgIyBTZG5wbGF0Zm9ybSBtYXkgbm90IGJlIHJ1bm5pbmcsIGJ1dCB3ZSBkb24ndCB3YW50IHRoYXQgdG8gYmUgYSBmYXRhbAorICAgICAgICAgICAgIyBlcnJvciwgc28gd2UganVzdCBpZ25vcmUgdGhlIGV4Y2VwdGlvbiBpbiB0aGF0IGNhc2UuCisgICAgICAgICAgICBwYXNzCisKKyAgICBkZWYgZG9fdGNwZHVtcF90cmFjZShzZWxmLCBkcGlkLCBhcmdzKToKKyAgICAgICAgcmV0ID0gJycKKyAgICAgICAgYnNjX3BvcnQgPSAnNjYzMycgIyBMT09LOiBsaXN0ZW4gYWRkci9wb3J0IGFyZSB3cm9uZyBpbiB0aGUgY29udHJvbGxlci1ub2RlLCBzbyBoYXJkIGNvZGUgNjYzMyBmb3Igbm93CisgICAgICAgIHRyYWNlX2NtZCA9ICdzdWRvIC9vcHQvc2RucGxhdGZvcm0vY2xpL2Jpbi90cmFjZSAtLWZpbHRlciBcJyVzXCcgJXMnCisgICAgICAgIHRyYWNlX3J1bGUgPSAnKCh0Y3ApIGFuZCAocG9ydCAlcykpJyAlIChic2NfcG9ydCwpCisgICAgICAgIHNpbmdsZV9zZXNzaW9uID0gRmFsc2UKKworICAgICAgICB0cmFjZV9hcmdzID0gJy0tYWxpYXMnCisgICAgICAgIGlmICdkZXRhaWwnIGluIGFyZ3M6CisgICAgICAgICAgICB0cmFjZV9hcmdzICs9ICcgLS1kZXRhaWwnCisgICAgICAgICAgICBhcmdzLnJlbW92ZSgnZGV0YWlsJykKKyAgICAgICAgaWYgJ29uZWxpbmUnIGluIGFyZ3M6CisgICAgICAgICAgICB0cmFjZV9hcmdzICs9ICcgLS1vbmVsaW5lJworICAgICAgICAgICAgYXJncy5yZW1vdmUoJ29uZWxpbmUnKQorICAgICAgICBpZiAnc2luZ2xlX3Nlc3Npb24nIGluIGFyZ3M6CisgICAgICAgICAgICBzaW5nbGVfc2Vzc2lvbiA9IFRydWUKKyAgICAgICAgICAgIGFyZ3MucmVtb3ZlKCdzaW5nbGVfc2Vzc2lvbicpCisKKyAgICAgICAgaWYgZHBpZDoKKyAgICAgICAgICAgIHF1ZXJ5X2RpY3QgPSB7ICdkcGlkJyA6IGRwaWQgfQorICAgICAgICAgICAgcm93ID0gcmVzdF90b19tb2RlbC5nZXRfbW9kZWxfZnJvbV91cmwoJ3N3aXRjaGVzJywgcXVlcnlfZGljdCkKKyAgICAgICAgICAgIGlmIGxlbihyb3cpID49IDE6CisgICAgICAgICAgICAgICAgaWYgbm90ICdpcC1hZGRyZXNzJyBpbiByb3dbMF0gb3Igcm93WzBdLmdldCgnaXAtYWRkcmVzcycpID09ICcnOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coInN3aXRjaCAlcyBjdXJyZW50bHkgbm90IGNvbm5lY3RlZCAiICUgZHBpZCkKKyAgICAgICAgICAgIGFkZHIgPSByb3dbMF1bJ2lwLWFkZHJlc3MnXQorICAgICAgICAgICAgcG9ydCA9IHJvd1swXVsndGNwLXBvcnQnXQorICAgICAgICAgICAgaWYgc2luZ2xlX3Nlc3Npb246CisgICAgICAgICAgICAgICAgdHJhY2VfcnVsZSA9ICcoKHRjcCkgYW5kIChwb3J0ICVzKSBhbmQgKGhvc3QgJXMpIGFuZCAocG9ydCAlcykpJyAlIChic2NfcG9ydCwgYWRkciwgcG9ydCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgdHJhY2VfcnVsZSA9ICcoKHRjcCkgYW5kIChwb3J0ICVzKSBhbmQgKGhvc3QgJXMpKScgJSAoYnNjX3BvcnQsIGFkZHIpCisgICAgICAgIGlmIGxlbihhcmdzKSA+IDA6CisgICAgICAgICAgICB0cmFjZV9hcmdzICs9ICgnICcgKyAnICcuam9pbihhcmdzKSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgIyBwcmludCBhcmdzLCBkcGlkLCB0cmFjZV9jbWQgJSAodHJhY2VfcnVsZSwgdHJhY2VfYXJncykKKyAgICAgICAgICAgIHByb2Nlc3MgPSBzdWJwcm9jZXNzLlBvcGVuKHRyYWNlX2NtZCAlICh0cmFjZV9ydWxlLCB0cmFjZV9hcmdzKSwgc2hlbGw9VHJ1ZSkKKyAgICAgICAgICAgIHN0YXR1cyA9IG9zLndhaXRwaWQocHJvY2Vzcy5waWQsIDApWzFdCisgICAgICAgICAgICBpZiBzdGF0dXMgIT0gMDoKKyAgICAgICAgICAgICAgICByZXQgPSAnRXJybm86ICVkJyAlIChzdGF0dXMsICkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcGFzcyAjIHJlYWxseSwgd2UgbmVlZCB0byBpZ25vcmUgdGhpcyB1bmNvbmRpdGlvbmFsbHkhCisKKyAgICAgICAgdGltZS5zbGVlcCgwLjIpCisgICAgICAgIHJldHVybiByZXQKKworICAgIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBnZXRfYXV0aF90b2tlbl9maWxlX3BhdGgKKyAgICAjCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBnZXRfYXV0aF90b2tlbl9maWxlX3BhdGgoKToKKyAgICAgICAgYXV0aF90b2tlbl9wYXRoID0gb3MuZW52aXJvbi5nZXQoJ0JTQ19BVVRIX1RPS0VOX1BBVEgnKQorICAgICAgICBpZiBhdXRoX3Rva2VuX3BhdGggaXMgTm9uZToKKyAgICAgICAgICAgIGF1dGhfdG9rZW5fcGF0aCA9ICcvb3B0L3NkbnBsYXRmb3JtJworICAgICAgICBhdXRoX3Rva2VuX3BhdGggKz0gJy9hdXRoX3Rva2VuJworICAgICAgICByZXR1cm4gYXV0aF90b2tlbl9wYXRoCisgICAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHBsYXlfY29uZmlnX2xpbmVzCisgICAgIworICAgIGRlZiBwbGF5X2NvbmZpZ19saW5lcyhzZWxmLCBzcmNfdGV4dCk6CisgICAgICAgICIiIgorICAgICAgICBUaGUgY29tcGxldGUgY29sbGVjdGlvbiBvZiBsaW5lcyB0byByZXBsYXkgYXJlIGluIHNyY190ZXh0LgorICAgICAgICBJbiB0aGUgZnV0dXJlLCB0aGlzIHdvdWxkIHByb3ZpZGUgZm9yIGEgd2F5IHRvIGZpcnN0IGlkZW50aWZ5CisgICAgICAgIHdoYXQgbmVlZHMgdG8gYmUgcmVtb3ZlZCwgdGhlbiBhcHBseSB3aGF0IG5lZWRzIHRvIGJlIGFkZGVkLgorCisgICAgICAgIFNvbWUgc21hcnQgZGlmZmluZyBmcm9tIHRoZSBleGl0aW5nIHJ1bm5pbmctY29uZmlnIHdvdWxkCisgICAgICAgIGJlIG5lZWRlZCB0byBzdXBwb3J0IHRoYXQuICAgVGhlIHN0YW56YSBncm91cHMgd291bGQgbmVlZCB0bworICAgICAgICBiZSBjb2xsZWN0ZWQsIHRoZSBkaWZmJ2QKKyAgICAgICAgIiIiCisgICAgICAgIHByaW50ICJVcGRhdGluZyBydW5uaW5nLWNvbmZpZyAuLi4iCisKKyAgICAgICAgbnVtX2xpbmVzX3BsYXllZCA9IDAKKyAgICAgICAgIyBzY2FuIHRoZSBsaW5lcyBsb29raW5nIGZvciB0aGUgdmVyc2lvbiBudW1iZXIuCisgICAgICAgICMKKyAgICAgICAgdmVyc2lvbiA9IE5vbmUKKyAgICAgICAgZm9yIGxpbmUgaW4gc3JjX3RleHQuc3BsaXRsaW5lcygpOgorICAgICAgICAgICAgbSA9IHJlLm1hdGNoKCIoXHMqKShcdyspXHMqIiwgbGluZSkgIyBvbmx5IG1hdGNoIG5vbi1ibGFuayBsaW5lcworICAgICAgICAgICAgaWYgbToKKyAgICAgICAgICAgICAgICBpZiBtLmdyb3VwKDApLnN0YXJ0c3dpdGgoJ3ZlcnNpb24gJyk6CisgICAgICAgICAgICAgICAgICAgIGxpbmVfcGFydHMgPSBsaW5lLnNwbGl0KCkKKyAgICAgICAgICAgICAgICAgICAgaWYgbGluZV9wYXJ0cyA+IDE6CisgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uID0gbGluZV9wYXJ0c1sxXQorICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAjIGNvbnN0cnVjdCB0aGUgY29tbWFuZCB0byBydW4uCisgICAgICAgIGNvbW1hbmQgPSBbJ2VudiddCisgICAgICAgIGlmIHZlcnNpb246CisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZCgnQ0xJX0NPTU1BTkRfVkVSU0lPTj0lcycgJSB2ZXJzaW9uKQorICAgICAgICBjb21tYW5kLmFwcGVuZCgnQ0xJX1NUQVJUSU5HX01PREU9Y29uZmlnJykKKyAgICAgICAgY29tbWFuZC5hcHBlbmQoJ0NMSV9TVVBQUkVTU19XQVJOSU5HPVRydWUnKQorCisgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKCcvb3B0L3NkbnBsYXRmb3JtL2NsaS9iaW4vY2xpJyk6CisgICAgICAgICAgICAjIGNvbnRyb2xsZXIgVk0KKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCcvb3B0L3NkbnBsYXRmb3JtL2NsaS9iaW4vY2xpJykKKyAgICAgICAgICAgIGNvbW1hbmQuYXBwZW5kKCctLWluaXQnKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBkZXZlbG9wZXIgc2V0dXAKKyAgICAgICAgICAgIGJhc2UgPSBvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pCisgICAgICAgICAgICBjb21tYW5kLmFwcGVuZChvcy5wYXRoLmpvaW4oYmFzZSwgJ2NsaS5weScpKQorICAgICAgICAgICAgY29tbWFuZC5hcHBlbmQoJy0taW5pdCcpCisKKyAgICAgICAgIyBjcmVhdGUgYSBzdWJwcm9jZXNzIGZvciB0aGUgY29uZmlndXJhdGlvbiwgdGhlbiBwdXNoCisgICAgICAgICMgZWFjaCBvZiB0aGUgbGluZXMgaW50byB0aGF0IHN1YnByb2Nlc3MuCisgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKGNvbW1hbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGluPXN1YnByb2Nlc3MuUElQRSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZGVycj1zdWJwcm9jZXNzLlNURE9VVCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVmc2l6ZT0xKQorICAgICAgICBwb3N0cHJvY2Vzc2xpbmVzPVtdCisgICAgICAgIGZvciBsaW5lIGluIHNyY190ZXh0LnNwbGl0bGluZXMoMSk6CisgICAgICAgICAgICBtID0gcmUubWF0Y2goIihccyopKFx3KylccyoiLCBsaW5lKSAjIG9ubHkgbWF0Y2ggbm9uLWJsYW5rIGxpbmVzCisgICAgICAgICAgICBpZiBtOgorICAgICAgICAgICAgICAgIGlmICd0ZW5hbnQnIG9yICdyb3V0ZXInIGluIGxpbmU6ICAjc3BlY2lhbCBoYW5kbGluZyBmb3Igcm91dGluZyBydWxlIGNvbW1hbmRzIFZOUy0yMjYKKyAgICAgICAgICAgICAgICAgICAgcG9zdHByb2Nlc3NsaW5lcy5hcHBlbmQobGluZSkKKyAgICAgICAgICAgICAgICBwLnN0ZGluLndyaXRlKGxpbmUpCisgICAgICAgICAgICAgICAgbnVtX2xpbmVzX3BsYXllZCArPSAxCisgICAgICAgIGZvciBsaW5lIGluIHBvc3Rwcm9jZXNzbGluZXM6CisgICAgICAgICAgICBwLnN0ZGluLndyaXRlKGxpbmUpCisgICAgICAgICAgICBudW1fbGluZXNfcGxheWVkICs9IDEKKyAgICAgICAgcC5zdGRpbi5jbG9zZSgpCisgICAgICAgIG91dHB1dCA9IHAuc3Rkb3V0LnJlYWQoKQorICAgICAgICBpZiBvdXRwdXQgYW5kIChzZWxmLmRlYnVnIG9yIHNlbGYuZGVidWdfYmFja3RyYWNlIG9yIHNlbGYuZGVzY3JpcHRpb24pOiAgCisgICAgICAgICAgICBwcmludCBvdXRwdXQKKyAgICAgICAgcC5zdGRvdXQuY2xvc2UoKQorICAgICAgICByZXR1cm4gIk51bSBsaW5lcyBhcHBsaWVkOiAlc1xuIiAlIG51bV9saW5lc19wbGF5ZWQKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBwYXRoX2NvbmNhdAorICAgICMgIENvbmNhdGVuYXRlIGEgc3VmZml4IHBhdGggdG8gYSBwcmVmaXgsIG1ha2luZyB0aGUgZ3VhcmFudGVlIHRoYXQgdGhlCisgICAgIyAgc3VmZml4IHdpbGwgYWx3YXlzIGJlICJ1bmRlciIgdGhlIHByZWZpeC4gdGhlIHN1ZmZpeCBpcyBub3JtYWxpemVkLAorICAgICMgIHRoZW4gYW55IHByZWZpeCB1cC1kaXJzICgiLi4iKSBhcmUgcmVtb3ZlZC4KKyAgICAjCisgICAgZGVmIHBhdGhfY29uY2F0KHNlbGYsIHByZWZpeCwgcGF0aCk6CisgICAgICAgIHN1ZmZpeCA9IHBvc2l4cGF0aC5ub3JtcGF0aChwYXRoLmxzdHJpcCgnLycpLnJzdHJpcCgnLycpKQorICAgICAgICAoaGVhZCwgdGFpbCkgPSBvcy5wYXRoLnNwbGl0KHN1ZmZpeCkKKyAgICAgICAgdGFpbHMgPSBbdGFpbF0KKyAgICAgICAgd2hpbGUgaGVhZDoKKyAgICAgICAgICAgIChoZWFkLCB0YWlsKSA9IG9zLnBhdGguc3BsaXQoaGVhZCkKKyAgICAgICAgICAgIHRhaWxzLmluc2VydCgwLCB0YWlsKQorICAgICAgICBkcm9wID0gJycKKyAgICAgICAgd2hpbGUgdGFpbHNbMF0gPT0gJy4uJzoKKyAgICAgICAgICAgIGRyb3AgPSBvcy5wYXRoLmpvaW4oZHJvcCwgdGFpbHMucG9wKDApKQorICAgICAgICBpZiBkcm9wICE9ICcnOgorICAgICAgICAgICAgc2VsZi5ub3RlKCJJZ25vcmluZyAlcyBwcmVmaXgiICUgZHJvcCkKKyAgICAgICAgZm9yIHQgaW4gdGFpbHM6CisgICAgICAgICAgICBwcmVmaXggPSBvcy5wYXRoLmpvaW4ocHJlZml4LCB0KQorICAgICAgICByZXR1cm4gcHJlZml4CisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgaW1wbGVtZW50X2NvcHkKKyAgICAjICBzdGFydHVwLWNvbmZpZyBhbmQgdXBkYXRlLWNvbmZpZyBhcmUgc2ltcGx5IGFiYnJldmlhdGlvbnMgZm9yIAorICAgICMgIGNvbmZpZzovL3N0YXJ0dXAtY29uZmlnIGFuZCBjb25maWc6Ly91cGRhdGVfY29uZmlnCisgICAgIworICAgIGRlZiBpbXBsZW1lbnRfY29weShzZWxmLCB3b3Jkcyk6CisgICAgICAgIGlmIG5vdCB3b3JkcyBvciBsZW4od29yZHMpID4gMzoKKyAgICAgICAgICAgIHByaW50ICJTeW50YXg6IGNvcHkgPHNyYz4gPGRzdD4iCisgICAgICAgICAgICBwcmludCAid2hlcmUgPHNyYz4gYW5kIDxkc3Q+IGNhbiBiZSIKKyAgICAgICAgICAgIHByaW50ICIgIHJ1bm5pbmctY29uZmlnIHN0YXJ0dXAtY29uZmlnIHVwZGF0ZS1jb25maWciCisgICAgICAgICAgICBwcmludCAiICBjb25maWc6Ly88bmFtZS1vZi1jb25maWctaW4tZGI+IC0gQS1aYS16MC05Xy0uQCAiCisgICAgICAgICAgICBwcmludCAiICA8dXJsPiAtIHN0YXJ0aW5nIHdpdGggZWl0aGVyIHRmdHA6Ly8sIGZ0cDovLywgaHR0cDovLyBvciBmaWxlOi8vIgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIGxlbih3b3JkcykgPT0gMToKKyAgICAgICAgICAgIHNyYyA9IHdvcmRzWzBdCisgICAgICAgICAgICBkc3QgPSAidGVybWluYWwiCisgICAgICAgIGVsaWYgbGVuKHdvcmRzKSA9PSAyOgorICAgICAgICAgICAgKHNyYywgZHN0KSA9ICh3b3Jkc1swXSwgd29yZHNbMV0pCisKKyAgICAgICAgIyBDb21wbGV0ZSBhcyByZXF1aXJlZC4KKyAgICAgICAgIyBOT1RFOiBObyBjb21wbGV0aW9uIGZvciB1cGdyYWRlLWNvbmZpZyBhcyBvbmx5IG91ciBzY3JpcHRzIHNob3VsZCBiZSB1c2luZyBpdAorICAgICAgICBpZiAicnVubmluZy1jb25maWciLnN0YXJ0c3dpdGgoc3JjKToKKyAgICAgICAgICAgIHNyYyA9ICJydW5uaW5nLWNvbmZpZyIKKyAgICAgICAgZWxpZiAic3RhcnR1cC1jb25maWciLnN0YXJ0c3dpdGgoc3JjKToKKyAgICAgICAgICAgIHNyYyA9ICJzdGFydHVwLWNvbmZpZyIKKyAgICAgICAgaWYgInJ1bm5pbmctY29uZmlnIi5zdGFydHN3aXRoKGRzdCk6CisgICAgICAgICAgICBkc3QgPSAicnVubmluZy1jb25maWciCisgICAgICAgIGVsaWYgInN0YXJ0dXAtY29uZmlnIi5zdGFydHN3aXRoKGRzdCk6CisgICAgICAgICAgICBkc3QgPSAic3RhcnR1cC1jb25maWciCisgICAgICAgIGVsaWYgInRlcm1pbmFsIi5zdGFydHN3aXRoKGRzdCk6CisgICAgICAgICAgICBkc3QgPSAidGVybWluYWwiCisKKyAgICAgICAgaWYgc3JjID09IGRzdDoKKyAgICAgICAgICAgIHByaW50ICJzcmMgYW5kIGRzdCBmb3IgY29weSBjb21tYW5kIGNhbm5vdCBiZSBlcXVhbCIKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgICMgZ2V0IGZyb20gdGhlIHNvdXJjZSBmaXJzdAorICAgICAgICBzcmNfdGV4dCA9ICIiCisKKyAgICAgICAgIyBtYXAgYW55IGFiYnJldmlhdGlvbnMKKyAgICAgICAgYWJicmV2aWF0aW9ucyA9IHsnc3RhcnR1cC1jb25maWcnOiAnY29uZmlnOi8vc3RhcnR1cC1jb25maWcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICd1cGdyYWRlLWNvbmZpZyc6ICdjb25maWc6Ly91cGdyYWRlLWNvbmZpZycKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgc3JjID0gYWJicmV2aWF0aW9ucy5nZXQoc3JjLCBzcmMpCisgICAgICAgIGRhdGEgPSBOb25lCisKKyAgICAgICAgaWYgc3JjID09ICJydW5uaW5nLWNvbmZpZyI6ICMgZ2V0IHJ1bm5pbmcKKyAgICAgICAgICAgIHNyY190ZXh0ID0gcnVuX2NvbmZpZy5pbXBsZW1lbnRfc2hvd19ydW5uaW5nX2NvbmZpZyhbXSkgKyAiXG4iCisgICAgICAgIGVsaWYgc3JjLnN0YXJ0c3dpdGgoImNvbmZpZzovLyIpOiAjIGdldCBsb2NhbCBmaWxlCisgICAgICAgICAgICBtID0gcmUuc2VhcmNoKHNlbGYubG9jYWxfbmFtZV9wYXR0ZXJuLCBzcmMpCisgICAgICAgICAgICBpZiBtOgorICAgICAgICAgICAgICAgIGRhdGEgPSBzZWxmLnN0b3JlLmdldF91c2VyX2RhdGFfdGFibGUobS5ncm91cCgxKSwgImxhdGVzdCIpCisgICAgICAgICAgICAgICAgaWYgZGF0YSBhbmQgbGVuKGRhdGEpID4gMDoKKyAgICAgICAgICAgICAgICAgICAgc3JjX3RleHQgPSBzZWxmLnN0b3JlLmdldF91c2VyX2RhdGFfZmlsZShkYXRhWzBdWydmdWxsX25hbWUnXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcHJpbnQgc2VsZi5lcnJvcl9tc2coInNyYyBuYW1lIGRvZXMgbm90IG1hdGNoICVzIiAlIHNlbGYubG9jYWxfbmFtZV9wYXR0ZXJuKQorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICBlbGlmIHNyYy5zdGFydHN3aXRoKCJmdHAiKSBvciBzcmMuc3RhcnRzd2l0aCgiaHR0cCIpOiAjIGdldCBVUkwKKyAgICAgICAgICAgIHNyY190ZXh0ID0gc2VsZi5zdG9yZS5nZXRfdGV4dF9mcm9tX3VybChzcmMpCisgICAgICAgIGVsaWYgc3JjLnN0YXJ0c3dpdGgoImZpbGU6Ly8iKToKKyAgICAgICAgICAgICNzcmNfZmlsZSA9IHNlbGYuc2F2ZWRfY29uZmlnc19kaXJuYW1lICsgcG9zaXhwYXRoLm5vcm1wYXRoKHNyY1s3Ol0pLmxzdHJpcCgnLycpLnJzdHJpcCgnLycpCisgICAgICAgICAgICBzcmNfZmlsZSA9IHNlbGYucGF0aF9jb25jYXQoc2VsZi5zYXZlZF9jb25maWdzX2Rpcm5hbWUsIHNyY1s3Ol0pCisgICAgICAgICAgICBpZiBzcmNfZmlsZSA9PSAiIjoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coInNyYyAlcyBjb3VsZCBub3QgYmUgIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImludGVycHJldGVkIGFzIGEgdmFsaWQgc291cmNlIGZvciBhIGZpbGUiICUgc3JjKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNyY190ZXh0ID0gc2VsZi5zdG9yZS5nZXRfdGV4dF9mcm9tX3VybCgiZmlsZTovLyIgKyBzcmNfZmlsZSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKHNyYyArICI6IiArIHN0cihlKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygiVW5rbm93biBjb25maWd1cmF0aW9uIikKKworICAgICAgICBtZXNzYWdlID0gIiIKKyAgICAgICAgaWYgbGVuKHdvcmRzKSA+IDI6CisgICAgICAgICAgICBtZXNzYWdlID0gIiAiLmpvaW4od29yZHNbMjpdKS5zdHJpcCgnIicpCisKKyAgICAgICAgIworICAgICAgICAjIG1hcCBhbnkgYWJicmV2aWF0aW9ucworICAgICAgICBkc3QgPSBhYmJyZXZpYXRpb25zLmdldChkc3QsIGRzdCkKKworICAgICAgICAjIG5vdyBjb3B5IHRvIGRlc3QKKyAgICAgICAgaWYgZHN0ID09ICJydW5uaW5nLWNvbmZpZyI6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5wbGF5X2NvbmZpZ19saW5lcyhzcmNfdGV4dCkKKyAgICAgICAgZWxpZiBkc3QgPT0gInRlcm1pbmFsIjoKKyAgICAgICAgICAgIHJldHVybiBzcmNfdGV4dCAjIHJldHVybmluZyBzcmNfdGV4dCBoZXJlIGFsbG93ICd8JyB0byB3b3JrCisgICAgICAgIGVsaWYgZHN0LnN0YXJ0c3dpdGgoImNvbmZpZzovLyIpOgorICAgICAgICAgICAgbSA9IHJlLnNlYXJjaChzZWxmLmxvY2FsX25hbWVfcGF0dGVybiwgZHN0KQorICAgICAgICAgICAgaWYgbToKKyAgICAgICAgICAgICAgICBzdG9yZV9yZXN1bHQgPSBzZWxmLnN0b3JlLnNldF91c2VyX2RhdGFfZmlsZShtLmdyb3VwKDEpLCBzcmNfdGV4dCkKKyAgICAgICAgICAgICAgICBpZiBzdG9yZV9yZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGpzb24ubG9hZHMoc3RvcmVfcmVzdWx0KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygicmVzdCBzdG9yZSByZXN1bHQgbm90IGpzb24gZm9ybWF0IikKKyAgICAgICAgICAgICAgICBpZiAnc3RhdHVzJyBpbiByZXN1bHQgYW5kIHJlc3VsdFsnc3RhdHVzJ10gPT0gJ3N1Y2Nlc3MnOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAgICAgIGVsaWYgJ21lc3NhZ2UnIG5vdCBpbiByZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygicmVzdCBzdG9yZSByZXN1bHQgZG9lc24ndCBjb250YWluIGVycm9yIG1lc3NhZ2UiKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZyhyZXN1bHRbJ21lc3NhZ2UnXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJkc3QgbmFtZSBkb2VzIG5vdCBtYXRjaCAlcyIgJSBzZWxmLmxvY2FsX25hbWVfcGF0dGVybikKKyAgICAgICAgZWxpZiBkc3Quc3RhcnRzd2l0aCgiZnRwIikgb3IgZHN0LnN0YXJ0c3dpdGgoImh0dHAiKToKKyAgICAgICAgICAgIHNlbGYuc3RvcmUuY29weV90ZXh0X3RvX3VybChkc3QsIHNyY190ZXh0LCBtZXNzYWdlKQorICAgICAgICBlbGlmIGRzdC5zdGFydHN3aXRoKCJmaWxlOi8vIik6CisgICAgICAgICAgICBkc3RfZmlsZSA9IHNlbGYucGF0aF9jb25jYXQoc2VsZi5zYXZlZF9jb25maWdzX2Rpcm5hbWUsIGRzdFs3Ol0pCisgICAgICAgICAgICBkc3RfZGlyID0gJy8nLmpvaW4oZHN0X2ZpbGUuc3BsaXQoJy8nKVs6LTFdKQorICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGRzdF9kaXIpOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgb3MubWFrZWRpcnMoZHN0X2RpcikKKyAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygiaW4gY3JlYXRpbmcgZGVzdGluYXRpb24gZGlyZWN0b3J5OiAlcyBbJXNdIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSAoc3RyKGUpLCBkc3RfZGlyKSkKKyAgICAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmlzZGlyKGRzdF9kaXIpOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygiZGVzdGluYXRpb24gZGlyZWN0b3J5IGlzIG5vdCBhICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbGlkIGRpcmVjdG9yeTogJXMiICUgZHN0X2RpcikKKyAgICAgICAgICAgIHdpdGggb3Blbihkc3RfZmlsZSwgJ3cnKSBhcyBmOgorICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgZi53cml0ZShzcmNfdGV4dCkKKyAgICAgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygiaW4gc2F2aW5nIGNvbmZpZyBmaWxlOiAlcyBbJXNdIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyKGUpLCBkc3RfZmlsZSkpCisgICAgICAgIGVsaWYgZHN0ID09ICd0cmFzaCc6CisgICAgICAgICAgICBpZiBkYXRhOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuc3RvcmUuZGVsZXRlX3VzZXJfZGF0YV9maWxlKGRhdGFbMF1bJ2Z1bGxfbmFtZSddKQorICAgICAgICAgICAgICAgIGlmICdzdGF0dXMnIGluIHJlc3VsdCBhbmQgcmVzdWx0WydzdGF0dXMnXSA9PSAnc3VjY2Vzcyc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICAgICAgZWxpZiAnbWVzc2FnZScgbm90IGluIHJlc3VsdDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJyZXN0IHN0b3JlIHJlc3VsdCBkb2Vzbid0IGNvbnRhaW4gZXJyb3IgbWVzc2FnZSIpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKHJlc3VsdFsnbWVzc2FnZSddKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJpbnQgc2VsZi5lcnJvcl9tc2coInNvdXJjZSBmaWxlIHJldHJpZXZlZCwiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYnV0IGNvdWxkIG5vdCBjb3B5IHRvIGRlc3RpbmF0aW9uICVzIiAlIGRzdCkKKyAgICAgICAgcmV0dXJuCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgY3BfY29uZl9vYmplY3RfdHlwZQorICAgICMgICBDb21wbGV0aW9uIGZ1bmN0aW9uIGZvciBhIG5hbWVkIG9iamVjdCwgcmV0dXJucyBuYW1lcyBvZgorICAgICMgICBhdmFpbGFibGUgb2JqX3R5cGVzCisgICAgIworICAgIGRlZiBjcF9jb25mX29iamVjdF90eXBlKHNlbGYsIHdvcmRzLCB0ZXh0KToKKyAgICAgICAgaWYgd29yZHNbMF0gaW4gbWkub2JqX3R5cGVzIGFuZCBsZW4od29yZHMpID09IDE6CisgICAgICAgICAgICByZXR1cm4gdXRpZi5hZGRfZGVsaW0ob2JqZWN0c19zdGFydGluZ193aXRoKHdvcmRzWzBdLCB0ZXh0KSwgJyAnKQorICAgICAgICBzZWxmLnByaW50X2NvbXBsZXRpb25faGVscCgiPGNyPiIpCisgICAgICAgIHJldHVybiBbXQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNwX2NvbmZfZmllbGQKKyAgICAjICBIYW5kbGUgaWYgd2UndmUgZ290IGEgYnVuY2ggb2YgZmllbGRzIGJlaW5nIGNvbmNhdGVuYXRlZCwKKyAgICAjICBlLmcuLCBwcmlvcml0eSA0MiBzcmMtcG9ydCA4MAorICAgICMKKyAgICBkZWYgY3BfY29uZl9maWVsZChzZWxmLCBvYmpfdHlwZSwgd29yZHMsIHRleHQpOgorICAgICAgICBpZiBsZW4od29yZHMpICUgMiA9PSAxOiAKKyAgICAgICAgICAgIGxhdGVzdF9maWVsZF9uYW1lID0gd29yZHNbLTFdCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZmllbGRfaW5mbyA9IG1pLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2ZpZWxkcyddLmdldChsYXRlc3RfZmllbGRfbmFtZSwgTm9uZSkKKyAgICAgICAgICAgICMgaWYgdGhlcmUgd2FzIG5vIHNoYWxsb3cgbWF0Y2ggb2YgdGV4dCwgZG8gZGVlcCBtYXRjaCBvZiB4cmVmcyBpZiBhbnkKKyAgICAgICAgICAgIGlmIGZpZWxkX2luZm8gaXMgTm9uZToKKyAgICAgICAgICAgICAgICBpZiBvYmpfdHlwZSBpbiBtaS5hbGlhc19vYmpfdHlwZV94cmVmOgorICAgICAgICAgICAgICAgICAgICBpZiBsYXRlc3RfZmllbGRfbmFtZSBpbiBtaS5hbGlhc19vYmpfdHlwZV94cmVmW29ial90eXBlXToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkX2luZm8gPSBtaS5vYmpfdHlwZV9pbmZvX2RpY3RbbGF0ZXN0X2ZpZWxkX25hbWVdWydmaWVsZHMnXVsnaWQnXQorCisgICAgICAgICAgICBpZiBmaWVsZF9pbmZvOgorICAgICAgICAgICAgICAgIGNvbXBsZXRpb25fdGV4dCA9ICI8ICVzID46ICIgJSBmaWVsZF9pbmZvWyd2ZXJib3NlLW5hbWUnXQorICAgICAgICAgICAgICAgIGNvbXBsZXRpb25fdGV4dCArPSBmaWVsZF9pbmZvLmdldCgnaGVscF90ZXh0JywgIiIpCisgICAgICAgICAgICAgICAgc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoY29tcGxldGlvbl90ZXh0KQorCisKKyAgICAgICAgICAgICMgcmV0dXJuIGNob2ljZXMgYmFzZWQgb24gdGhlIHR5cGVzCisgICAgICAgICAgICBpZiBtaS5pc19maWVsZF9ib29sZWFuKG9ial90eXBlLCBsYXRlc3RfZmllbGRfbmFtZSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIHV0aWYuYWRkX2RlbGliKFt4IGZvciB4IGluIFsiVHJ1ZSIsICJGYWxzZSJdIGlmIHguc3RhcnRzd2l0aCh0ZXh0KV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgJykKKworICAgICAgICAgICAgIyBVc2UgdGhlICdWYWx1ZXM6JyBwcmVmaXggaW4gdGhlIGhlbHBfdGV4dCBhcyBhIHdheQorICAgICAgICAgICAgIyBvZiBlbnVtZXJhdGluZyB0aGUgZGlmZmVyZW50IGNob2ljZXMKKyAgICAgICAgICAgIGlmIGZpZWxkX2luZm8uZ2V0KCdoZWxwX3RleHQnLCAiIikuc3RhcnRzd2l0aCgnVmFsdWVzOicpOgorICAgICAgICAgICAgICAgIHZhbHVlcyA9IGZpZWxkX2luZm8uZ2V0KCdoZWxwX3RleHQnKS5yZXBsYWNlKCJWYWx1ZXM6IiwgIiIpCisgICAgICAgICAgICAgICAgcmV0dXJuIHV0aWYuYWRkX2RlbGltKFt4IGZvciB4IGluIHZhbHVlcy5yZXBsYWNlKCIgIiwiIikuc3BsaXQoJywnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB4LnN0YXJ0c3dpdGgodGV4dCldLCAnICcpCisKKyAgICAgICAgICAgICMKKyAgICAgICAgICAgICMgc3BlY2lhbCBjYXNlczoKKyAgICAgICAgICAgIGlmIG9ial90eXBlID09ICd2bnMtaW50ZXJmYWNlLXJ1bGUnIGFuZCBsYXRlc3RfZmllbGRfbmFtZSA9PSAnbWFjJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gdXRpZi5hZGRfZGVsaW0ob2JqZWN0c19zdGFydGluZ193aXRoKCdob3N0JywgdGV4dCksICcgJykKKyAgICAgICAgICAgIGVsaWYgb2JqX3R5cGUgPT0gJ3Zucy1pbnRlcmZhY2UtcnVsZScgYW5kIGxhdGVzdF9maWVsZF9uYW1lID09ICdzd2l0Y2gnOgorICAgICAgICAgICAgICAgIHJldHVybiB1dGlmLmFkZF9kZWxpbShvYmplY3RzX3N0YXJ0aW5nX3dpdGgoJ3N3aXRjaCcsIHRleHQpLCAnICcpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIHdlJ3ZlIGdvdCBhbiBldmVuIG51bWJlciBvZiBmaWVsZC12YWx1ZSBwYWlycywgc28ganVzdCBnaXZlIHRoZSBsaXN0CisgICAgICAgICAgICAjIG9mIGZpZWxkcyBmb3IgdGhpcyBvYmpfdHlwZQorICAgICAgICAgICAgcmV0dXJuIHV0aWYuYWRkX2ZpZWxkcygKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5maWVsZHNfZm9yX2N1cnJlbnRfc3VibW9kZV9zdGFydGluZ193aXRoKHRleHQpLAorICAgICAgICAgICAgICAgICAgICAnICcpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgdm5zIG1ldGhvZHMuCisgICAgIworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHZuc19vYmpfdHlwZQorICAgICMgIHJldHVybiBUcnVlIGZvciBhbiBvYmpfdHlwZSBhc3NvY2lhdGVkIHdpdGggdm5zLCBpbnRlbmRlZCB0byBpZGVudGlmeQorICAgICMgIHRhYmxlcyB3aGljaCBhcmUgb3IgYXJlbid0IGF2YWlsYWJsZSBpbiBkZWJ1ZyBtb2RlIAorICAgICMKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHZuc19vYmpfdHlwZShvYmpfdHlwZSk6CisgICAgICAgIGlmIG9ial90eXBlIGluIFsgJ3Zucy1pbnRlcmZhY2UnLCAndm5zLWFjY2Vzcy1saXN0LWVudHJ5JywgJ3Zucy1hY2Nlc3MtbGlzdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3Zucy1pbnRlcmZhY2UtYWNjZXNzLWxpc3QnLCAndm5zLWludGVyZmFjZS1ydWxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAndm5zLWFjY2Vzcy1ncm91cCcsICd2bnMtaW50ZXJmYWNlcycsICdob3N0LXZucy1pbnRlcmZhY2UnXToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHZuc19kZWJ1Z19vYmpfdHlwZQorICAgICMgIHJldHVybiBUcnVlIGlmIHRoZSBvYmpfdHlwZSBpcyBhdmFpbGFibGUgaW4gdGhlIG5vbi1kZWJ1ZyBtb2RlCisgICAgIworICAgIGRlZiB2bnNfZGVidWdfb2JqX3R5cGUoc2VsZiwgb2JqX3R5cGUpOgorICAgICAgICBpZiBzZWxmLmRlYnVnOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgaWYgc2VsZi5pbl9jb25maWdfc3VibW9kZSgiY29uZmlnLXZucy0iKSBhbmQgb2JqX3R5cGUgPT0gJ3Zucy1hY2Nlc3MtbGlzdC1lbnRyeSc6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIG5vdCBzZWxmLnZuc19vYmpfdHlwZShvYmpfdHlwZSkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyB2bnNfZGVidWdfc2hvd19jb21tYW5kcworICAgICMgIHJldHVybiBUcnVlIGlmIHRoZSBzaG93IGNvbW1hbmQgdm5zIG9wdGlvbiBpcyBhdmFpbGFiZSBpbiB0aGUgY3VycmVudCBkZWJ1ZyBtb2RlCisgICAgIworICAgIGRlZiB2bnNfZGVidWdfc2hvd19jb21tYW5kcyhzZWxmLCBzaG93X2NvbW1hbmQpOgorICAgICAgICBpZiBzZWxmLmRlYnVnOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgaWYgc2VsZi5pbl9jb25maWdfc3VibW9kZSgpIGFuZCBzaG93X2NvbW1hbmQgPT0gJ2RvX3Nob3dfdm5zX2ludGVyZmFjZV9ydWxlJzoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGlmIHNlbGYuaW5fY29uZmlnX3Zuc19pZl9tb2RlKCkgYW5kIHNob3dfY29tbWFuZCA9PSAnZG9fc2hvd192bnNfYWNjZXNzX2dyb3VwJzoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGlmIHNob3dfY29tbWFuZCA9PSAnZG9fc2hvd192bnMnOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIG5vdCBzZWxmLnZuc19vYmpfdHlwZShzaG93X2NvbW1hbmQucmVwbGFjZSgnXycsICctJykucmVwbGFjZSgnZG8tc2hvdy0nLCAnJywgMSkpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgdm5zX2ZpbmRfbmFtZQorICAgICMgIFJldHVybiBUcnVlIHdoZW4gZm91bmQsIEZhbHNlIG90aGVyd2lzZQorICAgICMKKyAgICBkZWYgdm5zX2ZpbmRfbmFtZShzZWxmLCBuYW1lKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc2VsZi5nZXRfb2JqZWN0X2Zyb21fc3RvcmUoInZucy1kZWZpbml0aW9uIiwgbmFtZSkKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHZuc19maW5kX2FuZF9zZXRfbmFtZQorICAgICMgIFJldHVybiBUcnVlIHdoZW4gdGhlIG5hbWUgaXMga25vd24sIGFzIGEgc2lkZSBlZmZlY3QsIHNldCBzZWxmLnZuc19uYW1lCisgICAgIyAgSW52YWxpZCBuYW1lcyBhcmUgbWFuYWdlZCBieSB0aGUgbW9kZWwsIHNlZSBWbnNOYW1lVmFsaWRhdG9yCisgICAgIworICAgIGRlZiB2bnNfZmluZF9hbmRfc2V0X25hbWUoc2VsZiwgd29yZHMpOgorICAgICAgICBpZiBsZW4od29yZHMpID09IDA6CisgICAgICAgICAgICBwcmludCBzZWxmLmVycm9yX21zZygidm5zIDxuYW1lPiByZXF1aXJlZCIpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgZWxpZiBsZW4od29yZHMpID4gMToKKyAgICAgICAgICAgIHByaW50IHNlbGYuZXJyb3JfbXNnKCJBZGRpdGlvbmFsIHRleHQgYWZ0ZXIgdm5zIG5hbWUgaWdub3JlZCIpCisgICAgICAgIG5hbWUgPSB3b3Jkc1swXQorICAgICAgICBpZiBzZWxmLnZuc19maW5kX25hbWUobmFtZSk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHZuc19maW5kX2FuZF9zZXRfZXhpc3RpbmdfbmFtZQorICAgICMgIFJldHVybiBUcnVlIHdoZW4gdGhlIG5hbWUgaXMga25vd24sIGFzIGEgc2lkZSBlZmZlY3QsIHNldCBzZWxmLnZuc19uYW1lCisgICAgIyAgQW5kIGRpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZSBjb25jZXJuaW5nIHRoZSBmYWlsdXJlLgorICAgICMKKyAgICBkZWYgdm5zX2ZpbmRfYW5kX3NldF9leGlzdGluZ19uYW1lKHNlbGYsIHdvcmRzKToKKyAgICAgICAgaWYgc2VsZi52bnNfZmluZF9hbmRfc2V0X25hbWUod29yZHMpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgaWYgbGVuKHdvcmRzKSA+IDA6CisgICAgICAgICAgICBwcmludCBzZWxmLmVycm9yX21zZygiTm90IEZvdW5kOiB2bnMgJyVzJyIgJSB3b3Jkc1swXSkKKyAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyB2bnNfZmluZF9vcl9hZGRfbmFtZQorICAgICMgIFJldHVybiBUcnVlIHdoZW4gZWl0aGVyIHRoZSB2bnMgbmFtZSBjdXJyZW50bHkgZXhpc3RzLCBvciBvZiBhIGNyZWF0ZQorICAgICMgIGZvciB0aGUgdm5zIG5hbWUgc3VjY2VlZGVkLgorICAgICMKKyAgICBkZWYgdm5zX2ZpbmRfb3JfYWRkX25hbWUoc2VsZiwgd29yZHMpOgorICAgICAgICBpZiBzZWxmLnZuc19maW5kX2FuZF9zZXRfbmFtZSh3b3Jkcyk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBuYW1lID0gd29yZHNbMF0KKyAgICAgICAgZXJyb3JzID0gTm9uZQorICAgICAgICBpZGVudCA9IHttaS5waygidm5zLWRlZmluaXRpb24iKTogbmFtZSB9CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHNlbGYucmVzdF9jcmVhdGVfb2JqZWN0KCJ2bnMtZGVmaW5pdGlvbiIsIGlkZW50KQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXJyb3JzID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSwgJ3Zucy1kZWZpbml0aW9uJykKKyAgICAgICAgICAgIHByaW50IHNlbGYucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKQorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgIAorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHZuc19hbGxfaWRzCisgICAgIworICAgIGRlZiB2bnNfYWxsX2lkcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIFt4WydpZCddIGZvciB4IGluIHNlbGYuZ2V0X3RhYmxlX2Zyb21fc3RvcmUoInZucy1kZWZpbml0aW9uIildCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgdm5zX2NvbnZlcnRfdGFibGVfaWQKKyAgICAjICByZXR1cm4gYSBsaXN0IG9mIHR3byBlbnRyaWVzLCB0aGUgZmlyc3QgaXMgdGhlIHZucyBuYW1lLCB0aGUgc2Vjb25kIGlzIHRoZQorICAgICMgIHVwZGF0ZWQgY29sdW1uIHZhbHVlCisgICAgIworICAgIGRlZiB2bnNfY29udmVydF90YWJsZV9pZChzZWxmLCBvYmpfdHlwZSwgcm93LCBpZCk6CisgICAgICAgIGZpZWxkcyA9IHJvd1tpZF0uc3BsaXQoJ3wnKQorICAgICAgICBpZiBsZW4oZmllbGRzKSA9PSAxOgorICAgICAgICAgICAgIyBKdXN0IGluIGNhc2UgdGhlcmUncyBhbiBlcnJvciBpbiB0aGUgdGFibGUKKyAgICAgICAgICAgIHJldHVybiBbZmllbGRzWzBdLCAiPGVycm9yPiJdCisgICAgICAgIGlmIGxlbihmaWVsZHMpID09IDI6CisgICAgICAgICAgICByZXR1cm4gZmllbGRzCisgICAgICAgIGVsaWYgbGVuKGZpZWxkcykgPT0gMzoKKyAgICAgICAgICAgIGlmIG9ial90eXBlID09ICdob3N0LXZucy1pbnRlcmZhY2UnOgorICAgICAgICAgICAgICAgIHJldHVybiBbZmllbGRzWzFdLCBmaWVsZHNbMl1dCisgICAgICAgICAgICBlbGlmIG9ial90eXBlID09ICd2bnMtYWNjZXNzLWxpc3QtZW50cnknOgorICAgICAgICAgICAgICAgIHJvd1sndm5zLWFjY2Vzcy1saXN0J10gPSBmaWVsZHNbMV0KKyAgICAgICAgICAgICAgICByZXR1cm4gW2ZpZWxkc1swXSwgZmllbGRzWzJdXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCBzZWxmLmVycm9yX21zZygiMzogdm5zX2NvbnZlcnRfdGFibGVfaWQgY2FzZSAlcyIgJSBvYmpfdHlwZSkKKyAgICAgICAgZWxpZiBsZW4oZmllbGRzKSA9PSA0OgorICAgICAgICAgICAgaWYgb2JqX3R5cGUgPT0gJ3Zucy1pbnRlcmZhY2UtYWNjZXNzLWxpc3QnOgorICAgICAgICAgICAgICAgICMgWFhYIG91Z2h0IHRvIHZhbGlkYXRlCisgICAgICAgICAgICAgICAgaWYgcm93Wyd2bnMtYWNjZXNzLWxpc3QnXS5zcGxpdCgnfCcpWzFdICE9IGZpZWxkc1syXToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgc2VsZi5lcnJvcl9tc2coJ3Zucy1pbnRlcmZhY2UtYWNjZXNzLWxpc3QgaW5jb25zaXN0ZW50ICVzIGFuZCBpZCAlZCcgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChyb3dbJ3Zucy1hY2Nlc3MtbGlzdCddLCByb3dbaWRdKSkKKyAgICAgICAgICAgICAgICByb3dbJ3Zucy1hY2Nlc3MtbGlzdCddID0gZmllbGRzWzJdCisgICAgICAgICAgICAgICAgcm93Wyd2bnMtaW50ZXJmYWNlJ10gPSBmaWVsZHNbMV0KKyAgICAgICAgICAgICAgICByZXR1cm4gW2ZpZWxkc1swXSwgZmllbGRzWzJdXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCBzZWxmLmVycm9yX21zZygiNDogdm5zX2NvbnZlcnRfdGFibGVfaWQgY2FzZSAlcyIgJSBvYmpfdHlwZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50IHNlbGYuZXJyb3JfbXNnKCJ2bnNfY29udmVydF90YWJsZV9pZDogbGVuZ3RoICVkIG5vdCBtYW5hZ2VkIiAlIGxlbihmaWVsZHMpKQorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyB2bnNfdGFibGVfaWRfdG9fdm5zX2NvbHVtbgorICAgICMKKyAgICAjICB2bnMgcmVsYXRlZCB0YWJsZXMgaW4gdGhlIG1vZGVsIGhhdmUgdW5pcXVlIGlkJ3MgY3JlYXRlZCBieSBjb25jYXRlbmF0aW5nIHRoZQorICAgICMgIHZucyBuYW1lIHdpdGggb3RoZXIgZmllbGRzLiAgRm9yIHRob3NlIHRhYmxlcywgc2VwYXJhdGUgdGhlIHZucyBpZCdzIGZyb20gdGhlCisgICAgIyAgYXNzb2NpYXRlZCBmaWVsZHMsIGFuZCB0cmFuc2Zvcm0gdGhlIHZucyBhc3NvY2lhdGlvbiBpbnRvIGl0cyBvd24gY29sdW1uLgorICAgICMKKyAgICAjICBvYmpfdHlwZSBpcyB0aGUgbmFtZSBvZiB0aGUgdGFibGUuCisgICAgIworICAgICMgIGZvciB0aGUgdm5zX2ludGVyZmFjZSwgdGhlIHZucyBuYW1lIGlzIGV4dHJhY3RlZCBmcm9tIHNldmVyYWwgZmllbGRzLAorICAgICMgIHZhbGlkYXRlZCwgdXBkYXRlZCB0byBleGNsdWRlIHRoZSB2bnMgbmFtZSwgdGhlbiBhIG5ldyBjb2x1bW4gaXMgYWRkZWQKKyAgICAjCisgICAgZGVmIHZuc190YWJsZV9pZF90b192bnNfY29sdW1uKHNlbGYsIG9ial90eXBlLCBlbnRyaWVzKToKKyAgICAgICAgaWQgPSBtaS5wayhvYmpfdHlwZSkKKyAgICAgICAgZm9yIHJvdyBpbiBlbnRyaWVzOgorICAgICAgICAgICAgaWYgcm93W2lkXToKKyAgICAgICAgICAgICAgICB0eXBlX2luZm8gPSBtaS5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydmaWVsZHMnXVtpZF1bJ3R5cGUnXQorICAgICAgICAgICAgICAgIGlmIHR5cGVfaW5mbyA9PSAnY29tcG91bmQta2V5JzoKKyAgICAgICAgICAgICAgICAgICAgbWkuc3BsaXRfY29tcG91bmRfaW50b19kaWN0KG9ial90eXBlLCBpZCwgcm93KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGNvbnZlcnRfaWQgPSBzZWxmLnZuc19jb252ZXJ0X3RhYmxlX2lkKG9ial90eXBlLCByb3csIGlkKQorICAgICAgICAgICAgICAgICAgICByb3dbJ3ZucyddID0gY29udmVydF9pZFswXQorICAgICAgICAgICAgICAgICAgICByb3dbaWRdID0gY29udmVydF9pZFsxXQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHZuc19mb3JlaWduX2tleV90b19iYXNlX25hbWUKKyAgICAjICBGb3IgZm9yZWlnbiBrZXkncyB3aGljaCB2bnMgd2FudHMgdG8gJ3Nob3cnLCBjb252ZXJ0IHRoZQorICAgICMgIGZvcmllZ24ga2V5IHRvIHRoZSBsYXN0IGVudHJ5IGZvciB0aGUgZmllbGQsIGFuZCBkaXNwbGF5CisgICAgIyAgdGhhdCBlbnRyeQorICAgICMKKyAgICBkZWYgdm5zX2ZvcmVpZ25fa2V5X3RvX2Jhc2VfbmFtZShzZWxmLCBvYmpfdHlwZSwgZW50cmllcyk6CisgICAgICAgIGZvcmVpZ25fa2V5cyA9IG1pLm9ial90eXBlX2ZvcmVpZ25fa2V5cyhvYmpfdHlwZSkKKyAgICAgICAgZm9yIHJvdyBpbiBlbnRyaWVzOgorICAgICAgICAgICAgIyBjb252ZXJ0IHRoZSBydWxlIGlkIGludG8gdGhlIHJ1bGUgc3VmZml4CisgICAgICAgICAgICBmb3IgZm9yZWlnbl9rZXkgaW4gZm9yZWlnbl9rZXlzOgorICAgICAgICAgICAgICAgIGlmIGZvcmVpZ25fa2V5IGluIHJvdyBhbmQgcm93W2ZvcmVpZ25fa2V5XS5maW5kKCd8Jyk6CisgICAgICAgICAgICAgICAgICAgIGZpZWxkcyA9IHJvd1tmb3JlaWduX2tleV0uc3BsaXQoJ3wnKQorICAgICAgICAgICAgICAgICAgICByb3dbZm9yZWlnbl9rZXldID0gZmllbGRzWy0xXQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHZuc19qb2luX2hvc3RfZmllbGRzCisgICAgIyAgRm9yIHZucy1pbnRlcmZhY2VzIG5ldyBmaWVsZHMgYXJlIGpvaW5lZCBmcm9tIHRoZSBob3N0IHRhYmxlLgorICAgICMKKyAgICBkZWYgdm5zX2pvaW5faG9zdF9maWVsZHMoc2VsZiwgb2JqX3R5cGUsIGVudHJpZXMpOgorICAgICAgICBpZiBvYmpfdHlwZSA9PSAndm5zLWludGVyZmFjZSc6CisgICAgICAgICAgICAjCisgICAgICAgICAgICBob3N0X2RhcF9kaWN0ID0gc2VsZi5jcmVhdGVfYXR0YWNobWVudF9kaWN0KCkKKyAgICAgICAgICAgIGhvc3RfaXBfZGljdCA9IHNlbGYuY3JlYXRlX2lwX2RpY3QoKQorICAgICAgICAgICAgIworICAgICAgICAgICAgdm5zX2ludGVyZmFjZV9rZXkgPSBtaS5waygndm5zLWludGVyZmFjZScpCisgICAgICAgICAgICAjCisgICAgICAgICAgICAjIGZvciB2bnMtaW50ZXJmYWNlLCBjdXJyZW50bHkgdmxhbiBpcyBzaG93biBpbiB0aGUgb3V0cHV0LAorICAgICAgICAgICAgIyBhbmQgdGhpcyBtdXN0IGJlIGpvaW5lZCBmcm9tIHRoZSBob3N0J3MgdGFibGUuICBBZ2FpbiwgaXQKKyAgICAgICAgICAgICMgaXMgYmV0dGVyIHRvIGNvbGxlY3QgdGhlIGNvbXBsZWUgaG9zdCB0YWJsZSwgdGhlbiBjcmVhdGUKKyAgICAgICAgICAgICMgYSBob3N0IGRpY3Rpb25hcnkKKworICAgICAgICAgICAgaG9zdHNfcm93c19kaWN0ID0gY3JlYXRlX29ial90eXBlX2RpY3QoJ2hvc3QnLCAnbWFjJykKKworICAgICAgICAgICAgIworICAgICAgICAgICAgIyByZS1pbmRleCBob3N0X3Jvd3NfZGljdCBiYXNlZCBub3Qgb24gbWFjLCBidXQgb24gYXR0YWNobWVudCBwb2ludCwKKyAgICAgICAgICAgICMgIHdoaWNoIGlzIHRoZSBzdW0gb2YgdGhlIHN3aXRjaCtwb3J0LiAgdGhlIG9iamVjdGl2ZSBoZXJlIGlzIHRvCisgICAgICAgICAgICAjICBpZGVudGlmeSB0aGUgbnVtYmVyIG9mIGl0ZW1zIG9uIGEgc3BlY2lmaWMtc3dpdGNoIHBvcnQuCisgICAgICAgICAgICAjCisgICAgICAgICAgICBhcF9kaWN0ID0ge30gIyBpbmRleGVkIGJ5IGRwaWR8cG9ydAorICAgICAgICAgICAgZm9yIChtYWMsIHZhbHVlcykgaW4gaG9zdF9kYXBfZGljdC5pdGVtcygpOgorICAgICAgICAgICAgICAgIGZvciB2YWx1ZSBpbiB2YWx1ZXM6CisgICAgICAgICAgICAgICAgICAgIGtleSA9ICIlc3wlcyIgJSAodmFsdWVbJ3N3aXRjaCddLCB2YWx1ZVsnaW5ncmVzcy1wb3J0J10pCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBrZXkgaW4gYXBfZGljdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGFwX2RpY3Rba2V5XSA9IDAKKyAgICAgICAgICAgICAgICAgICAgYXBfZGljdFtrZXldICs9IDEKKyAgICAgICAgICAgICMKKyAgICAgICAgICAgICMgdGhlIGFwX2RpY3QgY291bnRzIHRoZSBudW1iZXIgb2YgbWFjJ3MgYXNzb2NpYXRlZCB3aXRoIGFuIGFwLgorICAgICAgICAgICAgIyBzb3J0IHRoZSBob3N0X3Jvd3NfZGljdCBiYXNlZCBvbiB0aGUgbG93ZXN0IGFwIGluIGVhY2ggZ3JvdXAuCisgICAgICAgICAgICAjCisgICAgICAgICAgICBmb3IgKG1hYywgdmFsdWUpIGluIGhvc3RfZGFwX2RpY3QuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBuZXdfdmFsdWUgPSBzb3J0ZWQodmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT1sYW1iZGEgazphcF9kaWN0WyIlc3wlcyIgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtbJ3N3aXRjaCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrWydpbmdyZXNzLXBvcnQnXSldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbXA9bGFtYmRhIHgseTogaW50KHgpIC0gaW50KHkpKQorICAgICAgICAgICAgICAgICMgYWRkIGEgdGFnIHRvIHRoZSBkaWN0aW9uYXJ5IG9mIHRoZSBmaXJzdCBsaXN0IGl0ZW0KKyAgICAgICAgICAgICAgICAjIHdoZW4gdGhlIGFwX2RpY3QncyBlbnRyeSdzIGNvdW50IGlzIDEuCisgICAgICAgICAgICAgICAgZmlyc3QgPSBuZXdfdmFsdWVbMF0KKyAgICAgICAgICAgICAgICBpZiBhcF9kaWN0Wyclc3wlcycgJSAoZmlyc3RbJ3N3aXRjaCddLCBmaXJzdFsnaW5ncmVzcy1wb3J0J10pXSA9PSAxOgorICAgICAgICAgICAgICAgICAgICBuZXdfdmFsdWVbMF1bJ3ByaW1lJ10gPSBUcnVlCisgICAgICAgICAgICAgICAgaG9zdF9kYXBfZGljdFttYWNdID0gbmV3X3ZhbHVlCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgZm9yIHJvdyBpbiBlbnRyaWVzOgorICAgICAgICAgICAgICAgIGZpZWxkcyA9IHJvd1snaWQnXS5zcGxpdCgnLycpCisgICAgICAgICAgICAgICAgaWYgbm90ICdydWxlJyBpbiByb3c6CisgICAgICAgICAgICAgICAgICAgIHJvd1sncnVsZSddID0gZmllbGRzWzBdCisgICAgICAgICAgICAgICAgaWYgbGVuKGZpZWxkcykgIT0gMjoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUgIyBzaWxlbnRseSBpZ25vcmUgYW55IGlkJ3Mgbm90IGNvbnRhaW5pbmcgaG9zdHMKKyAgICAgICAgICAgICAgICBob3N0ID0gZmllbGRzWzFdCisKKyAgICAgICAgICAgICAgICByb3dbJ21hYyddID0gaG9zdAorICAgICAgICAgICAgICAgIGhvc3RfZGljdCA9IHsnbWFjJyA6IGhvc3R9CisgICAgICAgICAgICAgICAgcm93WydhdHRhY2htZW50LXBvaW50cyddID0gc2VsZi5nZXRfYXR0YWNobWVudF9wb2ludHMoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0X2RpY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0X2RhcF9kaWN0KQorICAgICAgICAgICAgICAgIHJvd1snaXBzJ10gPSBzZWxmLmdldF9pcF9hZGRyZXNzZXMoaG9zdF9kaWN0LCBob3N0X2lwX2RpY3QpCisKKyAgICAgICAgICAgICAgICBob3N0X3JvdyA9IGhvc3RzX3Jvd3NfZGljdC5nZXQoaG9zdCwgTm9uZSkKKyAgICAgICAgICAgICAgICBpZiBob3N0X3JvdyBhbmQgbGVuKGhvc3Rfcm93KSA9PSAxIGFuZCAndmxhbicgaW4gaG9zdF9yb3dbMF06CisgICAgICAgICAgICAgICAgICAgIHJvd1sndmxhbiddID0gaG9zdF9yb3dbMF1bJ3ZsYW4nXQorICAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgdm5zX2pvaW5fc3dpdGNoX2ZpZWxkcworICAgICMgIEZvciB2bnMtaW50ZXJmYWNlcyB3aXRoIGVudHJpZXMgYXJpc2luZyBmcm9tIHN3aXRjaCBpbnRlcmZhY2UgcnVsZXMsCisgICAgIyAgam9pbiBpbiB0aGUgc3dpdGNoIGFuZCBwb3J0LgorICAgICMKKyAgICBkZWYgdm5zX2pvaW5fc3dpdGNoX2ZpZWxkcyhzZWxmLCB2bnNfbmFtZSwgZW50cmllcyk6CisgICAgICAgICMKKyAgICAgICAgIyBzdG9yZSBhbGwgdGhlIHJ1bGVzIGFzc29jaWF0ZWQgd2l0aCBhIHNwZWNpZmljIHZucywKKyAgICAgICAgIyBpbmRleCB0aGVtIGJ5IHRoZSBwcmltYXJ5IGtleS4KKyAgICAgICAga2V5ID0gbWkucGsoJ3Zucy1pbnRlcmZhY2UtcnVsZScpCisgICAgICAgIGlmIHZuc19uYW1lID09IE5vbmU6CisgICAgICAgICAgICAjIHZuc19uYW1lID09IE5vbmUsIHRoaXMgbWVhbnMgJ2FsbCcKKyAgICAgICAgICAgIHZuc19pZnJfZGljdCA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KCd2bnMtaW50ZXJmYWNlLXJ1bGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VhcmNoX2tleSA9IHNlbGYudW5pcXVlX2tleV9mcm9tX25vbl91bmlxdWUoW3Zuc19uYW1lXSkKKyAgICAgICAgICAgIHZuc19pZnJfZGljdCA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KCd2bnMtaW50ZXJmYWNlLXJ1bGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2tleSkKKyAgICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICBpZiAncnVsZScgaW4gZW50cnk6CisgICAgICAgICAgICAgICAgcnVsZSA9IGVudHJ5WydydWxlJ10KKyAgICAgICAgICAgICAgICBpZiBydWxlIGluIHZuc19pZnJfZGljdDoKKyAgICAgICAgICAgICAgICAgICAgZW50cnlbJ3N3aXRjaCddID0gdm5zX2lmcl9kaWN0W3J1bGVdWzBdLmdldCgnc3dpdGNoJywgIiIpCisgICAgICAgICAgICAgICAgICAgIGVudHJ5Wydwb3J0cyddID0gdm5zX2lmcl9kaWN0W3J1bGVdWzBdLmdldCgncG9ydHMnLCAiIikKKworICAgICMKKyAgICAjIGVuZCBvZiB2bnMgbWV0aG9kcy4KKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIworCisgICAgIworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBkZWJ1Z19vYmpfdHlwZQorICAgICMgIFJldHVybiBUcnVlIHdoZW4gdGhlIG9iamVjdCBpcyBhdmFpbGFibGUsIGluIHNlbGYuZGVidWcgbW9kZSwgbW9yZSBvYmplY3RzCisgICAgIyAgYXJlIGF2YWlsYWJsZS4KKyAgICAjCisgICAgZGVmIGRlYnVnX29ial90eXBlKHNlbGYsIG9ial90eXBlKToKKyAgICAgICAgaWYgc2VsZi5kZWJ1ZzoKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGlmIG1pLmlzX29ial90eXBlX3NvdXJjZV9kZWJ1Z19vbmx5KG9ial90eXBlKToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBzZWxmLnZuc19kZWJ1Z19vYmpfdHlwZShvYmpfdHlwZSk6CisgICAgICAgICAgICBpZiBub3Qgb2JqX3R5cGUgaW4gbWkuYWxpYXNfb2JqX3R5cGVzOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgIworICAgICMgZ2VuZXJpYyBwYXJzaW5nIHJvdXRpbmVzCisgICAgIyAKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBjb21wbGV0aW9uX3Jlc2V0CisgICAgIworICAgIGRlZiBjb21wbGV0aW9uX3Jlc2V0KHNlbGYpOgorICAgICAgICBzZWxmLmxhc3RfbGluZSA9IE5vbmUKKyAgICAgICAgc2VsZi5sYXN0X29wdGlvbnMgPSBOb25lCisgICAgICAgIHNlbGYuY29tcGxldGlvbl9jYWNoZSA9IFRydWUKKyAgICAgICAgc2VsZi5sYXN0X2NvbXBsZXRpb25fY2hhciA9IHJlYWRsaW5lLmdldF9jb21wbGV0aW9uX3R5cGUoKQorCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgY29tcGxldGVyCisgICAgIyAgVGhpcyBpcyB0aGUgbWFpbiBmdW5jdGlvbiB0aGF0IGlzIGNhbGxlZCBpbiBvcmRlciB0byBjb21wbGV0ZSB1c2VyIGlucHV0CisgICAgIworICAgIGRlZiBjb21wbGV0ZXIoc2VsZiwgdGV4dCwgc3RhdGUpOgorICAgICAgICBxdWVzdGlvbl9tYXJrID0gb3JkKCc/JykKKyAgICAgICAgaWYgcmVhZGxpbmUuZ2V0X2NvbXBsZXRpb25fdHlwZSgpID09IHF1ZXN0aW9uX21hcms6CisgICAgICAgICAgICBpZiBsZW4ocmVhZGxpbmUuZ2V0X2xpbmVfYnVmZmVyKCkpID09IDA6CisgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICMgbWFuYWdlIHByaW50aW5nIG9mIGhlbHAgdGV4dCBkdXJpbmcgY29tbWFuZCBjb21wbGV0aW9uCisgICAgICAgICAgICAgICAgaGVscF90ZXh0ID0gc2VsZi5oZWxwX3NwbGFzaChOb25lLCB0ZXh0KQorICAgICAgICAgICAgICAgIGlmIGhlbHBfdGV4dCAhPSAiIjoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoaGVscF90ZXh0KQorICAgICAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIG9yaWdsaW5lID0gcmVhZGxpbmUuZ2V0X2xpbmVfYnVmZmVyKCkKKyAgICAgICAgICAgICMgU2VlIGlmIHdlIGhhdmUgYSBjYWNoZWQgcmVwbHkgYWxyZWFkeQorICAgICAgICAgICAgaWYgKHNlbGYuY29tcGxldGlvbl9jYWNoZSBhbmQgb3JpZ2xpbmUgPT0gc2VsZi5sYXN0X2xpbmUgYW5kIAorICAgICAgICAgICAgICAgIHNlbGYubGFzdF9jb21wbGV0aW9uX2NoYXIgPT0gcmVhZGxpbmUuZ2V0X2NvbXBsZXRpb25fdHlwZSgpIGFuZAorICAgICAgICAgICAgICAgIHNlbGYubGFzdF9vcHRpb25zKToKKworICAgICAgICAgICAgICAgIGlmIHN0YXRlIDwgbGVuKHNlbGYubGFzdF9vcHRpb25zKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYubGFzdF9vcHRpb25zW3N0YXRlXQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICMgYXBwYXJlbnRseSwgZm9yIHRoZSBsaW51eCBWTSBjaG9pY2UgZG9uJ3QgcHJpbnQgCisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYubGFzdF9vcHRpb25zIGFuZCBcCisgICAgICAgICAgICAgICAgICAgICAgbGVuKHNlbGYubGFzdF9vcHRpb25zKSA+IDEgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICBzZWxmLmxhc3RfY29tcGxldGlvbl9jaGFyID09IG9yZCgnXHQnKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNob2ljZXNfdGV4dCA9IHNlbGYuY2hvaWNlc190ZXh0X2J1aWxkZXIoc2VsZi5sYXN0X29wdGlvbnMpCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByaW50X2NvbXBsZXRpb25faGVscChjaG9pY2VzX3RleHQpCisKKyAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5jb21wbGV0aW9uX3NraXA6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbXBsZXRpb25fY2FjaGUgPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb21wbGV0aW9uX3NraXAgPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgICAgICBzZWxmLmNvbXBsZXRpb25fcmVzZXQoKQorCisgICAgICAgICAgICAjIHBhcnNlIHdoYXQgdXNlciBoYXMgdHlwZWQgc28gZmFyCisKKyAgICAgICAgICAgIGJlZ2luID0gcmVhZGxpbmUuZ2V0X2JlZ2lkeCgpCisgICAgICAgICAgICBlbmQgPSByZWFkbGluZS5nZXRfZW5kaWR4KCkKKworICAgICAgICAgICAgIyBGaW5kIHdoaWNoIGNvbW1hbmQgd2UncmUgaW4gZm9yIGEgc2VtaWNvbG9uLXNlcGFyYXRlZCBsaXN0IG9mIHNpbmdsZSBjb21tYW5kcworICAgICAgICAgICAgIyBMT09LISBUaGlzIGRvZXNuJ3QgaGFuZGxlIGNhc2VzIHdoZXJlIGFuIGVhcmxpZXIgY29tbWFuZCBpbiB0aGUgbGluZSBjaGFuZ2VkCisgICAgICAgICAgICAjIHRoZSBtb2RlIHNvIHRoZSBjb21wbGV0aW9uIGZvciBsYXRlciBjb21tYW5kcyBpbiB0aGUgbGluZSBzaG91bGQgYmUgZGlmZmVyZW50LgorICAgICAgICAgICAgIyBGb3IgZXhhbXBsZSwgaWYgeW91IHR5cGVkICJlbmFibGU7IGNvbmYiIGl0IHdvbid0IGRldGVjdCB0aGF0IGl0IHNob3VsZCBiZQorICAgICAgICAgICAgIyBhYmxlIHRvIGNvbXBsZXRlICJjb25mIiB0byAiY29uZmlndXJlIiBiZWNhdXNlIHRoZSBlbmFibGUgY29tbWFuZCBoYXMgbm90IGJlZW4KKyAgICAgICAgICAgICMgZXhlY3V0ZWQgeWV0LCBzbyB5b3UncmUgbm90IGluIGVuYWJsZSBtb2RlIHlldC4gSGFuZGxpbmcgdGhhdCBjYXNlIHdvdWxkIGJlCisgICAgICAgICAgICAjIG5vbi10cml2aWFsIEkgdGhpbmssIGF0IGxlYXN0IHdpdGggdGhlIGN1cnJlbnQgQ0xJIGZyYW1ld29yay4KKyAgICAgICAgICAgIGNvbW1hbmRfYmVnaW4gPSAwCisgICAgICAgICAgICBjb21tYW5kX2VuZCA9IDAKKyAgICAgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICAgICAgY29tbWFuZF9lbmQgPSBzZWxmLmZpbmRfd2l0aF9xdW90aW5nKG9yaWdsaW5lLCAnOycsIHN0YXJ0X2luZGV4PWNvbW1hbmRfYmVnaW4pCisgICAgICAgICAgICAgICAgaWYgY29tbWFuZF9lbmQgPCAwOgorICAgICAgICAgICAgICAgICAgICBjb21tYW5kX2VuZCA9IGxlbihvcmlnbGluZSkKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBpZiBiZWdpbiA+PSBjb21tYW5kX2JlZ2luIGFuZCBlbmQgPD0gY29tbWFuZF9lbmQ6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgY29tbWFuZF9iZWdpbiA9IGNvbW1hbmRfZW5kICsgMQorICAgICAgICAgICAgCisgICAgICAgICAgICAjIFNraXAgcGFzdCBhbnkgbGVhZGluZyB3aGl0ZXNwYWNlIGluIHRoZSBjb21tYW5kCisgICAgICAgICAgICB3aGlsZSBjb21tYW5kX2JlZ2luIDwgYmVnaW4gYW5kIG9yaWdsaW5lW2NvbW1hbmRfYmVnaW5dLmlzc3BhY2UoKToKKyAgICAgICAgICAgICAgICBjb21tYW5kX2JlZ2luICs9IDEKKyAgICAgICAgICAgIAorICAgICAgICAgICAgd29yZHMgPSBvcmlnbGluZVtjb21tYW5kX2JlZ2luOmVuZF0uc3BsaXQoKQorICAgICAgICAgICAgCisgICAgICAgICAgICAjIHJlbW92ZSBsYXN0IHRlcm0gaWYgaXQgaXMgdGhlIG9uZSBiZWluZyBtYXRjaGVkCisgICAgICAgICAgICBpZiBiZWdpbiAhPSBlbmQ6CisgICAgICAgICAgICAgICAgd29yZHMucG9wKCkKKworICAgICAgICAgICAgIyBMT09LISB0aGVyZSBhcmUgYXQgbGVhc3QgdGhyZWUgcGxhY2VzIHRoYXQgdHJ5IHRvIHBhcnNlIHRoZSB2YWxpZCBvcHRpb25zOgorICAgICAgICAgICAgIyAxLiBXaGVuIGFjdHVhbGx5IGhhbmRsaW5nIGEgY29tbWFuZAorICAgICAgICAgICAgIyAyLiBXaGVuIHRyeWluZyB0byBzaG93IGNvbXBsZXRpb25zIChoZXJlKQorICAgICAgICAgICAgIyAzLiBXaGVuIGRpc3BsYXlpbmcgaGVscAorCisgICAgICAgICAgICAjIGNvbXBsZXRlIHRoZSBmaXJzdCB3b3JkIGluIGEgY29tbWFuZCBsaW5lICAgICAgICAgICAgCisgICAgICAgICAgICBpZiBub3Qgd29yZHMgb3IgYmVnaW4gPT0gY29tbWFuZF9iZWdpbjoKKyAgICAgICAgICAgICAgICBvcHRpb25zID0gc2VsZi5jb21tYW5kc19mb3JfY3VycmVudF9tb2RlX3N0YXJ0aW5nX3dpdGgodGV4dCwgY29tcGxldGlvbiA9IFRydWUpCisgICAgICAgICAgICAgICAgaWYgc2VsZi5pbl9jb25maWdfbW9kZSgpOgorICAgICAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLm9ial90eXBlc19mb3JfY29uZmlnX21vZGVfc3RhcnRpbmdfd2l0aCh0ZXh0KToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXBwZW5kX3doZW5fbWlzc2luZyhvcHRpb25zLCBpdGVtKQorICAgICAgICAgICAgICAgIGlmIHNlbGYuaW5fY29uZmlnX3N1Ym1vZGUoKToKKyAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5maWVsZHNfZm9yX2N1cnJlbnRfc3VibW9kZV9zdGFydGluZ193aXRoKHRleHQpOgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hcHBlbmRfd2hlbl9taXNzaW5nKG9wdGlvbnMsIGl0ZW0pCisgICAgICAgICAgICAgICAgb3B0aW9ucyA9IFt4IGlmIHguZW5kc3dpdGgoJyAnKSBlbHNlIHggKyAnICcgIGZvciB4IGluIHNvcnRlZChvcHRpb25zKV0KKyAgICAgICAgICAgICMgQ29tcGxldGUgdGhlIDJuZCB3b3JkIG9yIGxhdGVyCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNvbW1hbmRzID0gc2VsZi5jb21tYW5kc19mb3JfY3VycmVudF9tb2RlX3N0YXJ0aW5nX3dpdGgod29yZHNbMF0pCisgICAgICAgICAgICAgICAgb2JqX3R5cGVzID0gc2VsZi5vYmpfdHlwZXNfZm9yX2NvbmZpZ19tb2RlX3N0YXJ0aW5nX3dpdGgod29yZHNbMF0pIGlmIHNlbGYuaW5fY29uZmlnX21vZGUoKSBlbHNlIFtdCisgICAgICAgICAgICAgICAgZmllbGRzID0gc2VsZi5maWVsZHNfZm9yX2N1cnJlbnRfc3VibW9kZV9zdGFydGluZ193aXRoKHdvcmRzWzBdKSBpZiBzZWxmLmluX2NvbmZpZ19zdWJtb2RlKCkgZWxzZSBbXQorICAgICAgICAgICAgICAgIGlmIGxlbihjb21tYW5kcykgKyBsZW4ob2JqX3R5cGVzKSArIGxlbihmaWVsZHMpID4gMToKKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKGZpZWxkcykgPiAxOgorICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzID0gW3dvcmRzWzBdXSBpZiB3b3Jkc1swXSBpbiBmaWVsZHMgZWxzZSBbXQorICAgICAgICAgICAgICAgICAgICBpZiBsZW4oY29tbWFuZHMpID4gMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRzID0gW3dvcmRzWzBdXSBpZiB3b3Jkc1swXSBpbiBjb21tYW5kcyBlbHNlIFtdCisgICAgICAgICAgICAgICAgICAgIGlmIGxlbihvYmpfdHlwZXMpID4gMToKKyAgICAgICAgICAgICAgICAgICAgICAgIG9ial90eXBlcyA9IFt3b3Jkc1swXV0gaWYgd29yZHNbMF0gaW4gb2JqX3R5cGVzIGVsc2UgW10KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICBpZiBsZW4oZmllbGRzKSA9PSAxOgorICAgICAgICAgICAgICAgICAgICBvcHRpb25zID0gc2VsZi5jcF9jb25mX2ZpZWxkKHNlbGYuZ2V0X2N1cnJlbnRfbW9kZV9vYmpfdHlwZSgpLCB3b3JkcywgdGV4dCkKKyAgICAgICAgICAgICAgICBlbGlmIGxlbihvYmpfdHlwZXMpID09IDE6CisgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBzZWxmLmNwX2NvbmZfb2JqZWN0X3R5cGUob2JqX3R5cGVzICsgd29yZHNbMTpdLCB0ZXh0KQorICAgICAgICAgICAgICAgIGVsaWYgbGVuKGNvbW1hbmRzKSA9PSAxOiAKKyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25zWzBdIGlzIGV4cGFuZGVkIHdoaWxlIHdvcmRzWzBdIGlzIG5vdAorICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kID0gc2VsZi5jb21wbGV0aW9uX21ldGhvZF9mcm9tX25hbWUoY29tbWFuZHNbMF0pIAorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbWV0aG9kOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbnMgPSBtZXRob2Qod29yZHMsIHRleHQsIHJlYWRsaW5lLmdldF9jb21wbGV0aW9uX3R5cGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3Qgb3B0aW9uczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBubyBtYXRjaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByZWFkbGluZS5nZXRfY29tcGxldGlvbl90eXBlKCkgPT0gcXVlc3Rpb25fbWFyazoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyA9IGNvbW1hbmQuZG9fY29tbWFuZF9jb21wbGV0aW9uX2hlbHAod29yZHMsIHRleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyA9IGNvbW1hbmQuZG9fY29tbWFuZF9jb21wbGV0aW9uKHdvcmRzLCB0ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICNlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjaWYgb3B0aW9uczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNwcmludCBzeW50YXhfaGVscAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICNwYXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoc3ludGF4X2hlbHApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuZGVidWcgb3Igc2VsZi5kZWJ1Z19iYWNrdHJhY2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgb3B0aW9ucyA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBpZiBzZWxmLmRlYnVnIG9yIHNlbGYuZGVidWdfYmFja3RyYWNlOgorICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICAgICAgIyBlcnJvcnMgaW4gY29ubmVjdCBhcmUgY2F1Z2h0IHNpbGVudGx5LCBjb21wbGFpbiBoZXJlCisgICAgICAgICAgICAjIFRPRE8gLSBNYXliZSB3ZSBzaG91bGQgbG9nIHRoaXMgaW4gYSBmaWxlIHdlIGNhbiByZXZpZXcKKyAgICAgICAgICAgICMgYXQgYSBsYXRlciBkYXRlPworICAgICAgICAKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaWYgb3B0aW9uczoKKyAgICAgICAgICAgICAgICBzZWxmLmxhc3RfbGluZSA9IG9yaWdsaW5lCisgICAgICAgICAgICAgICAgc2VsZi5sYXN0X29wdGlvbnMgPSBvcHRpb25zCisgICAgICAgICAgICAgICAgc2VsZi5sYXN0X2NvbXBsZXRpb25fY2hhciA9IHJlYWRsaW5lLmdldF9jb21wbGV0aW9uX3R5cGUoKQorICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zW3N0YXRlXQorICAgICAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBoYW5kbGVfYWxpYXMKKyAgICAjICBNYW5hZ2UgYWxpYXMgY3JlYXRpb24gZm9yIGFuIG9ial90eXBlLCBvbmx5IG1hbmFnZSBvbmUgYWxpYXMgZm9yIGVhY2ggb2YgdGhlCisgICAgIyAgdGFyZ2V0cywgYWx0aG91Z2ggdGhhdCByZXF1aXJlbWVudCBleGlzdHMgc28gdGhhdCBhIHNpbmdsZSBhbGlhcworICAgICMgIGNhbiBiZSBkaXNwbGF5ZWQgZm9yIG91dHB1dCBmcm9tIChzaG93KSBjb21tYW5kcworICAgICMKKyAgICAjICBOb3RlIHRoYXQgc2V0dGluZyB0aGUgYWxpYXMgdG8gaXRzIGN1cnJlbnQgdmFsdWUgY3VycmVudGx5IGNhdXNlcyB0aGUKKyAgICAjICBhbGlhcyB0byBiZSBjcmVhdGVkIChpZTogdGhlcmUncyBubyBzcGVjaWZpYyBzZWFyY2ggdG8gZmluZCB0aGUgaXRlbSkKKyAgICAjCisgICAgZGVmIGhhbmRsZV9hbGlhcyhzZWxmLCBvYmpfdHlwZSwgYWxpYXNfb2JqX3R5cGUsIGFsaWFzX3ZhbHVlKToKKworICAgICAgICBpZiBhbGlhc192YWx1ZSBpbiBzZWxmLnJlc2VydmVkX3dvcmRzOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJhbGlhcyB2YWx1ZSAlcyBpcyBhIHJlc2VydmVkIHdvcmQgKCVzKSIgJSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWxpYXNfdmFsdWUsICcsICcuam9pbihzZWxmLnJlc2VydmVkX3dvcmRzKSkpCisgICAgICAgICMKKyAgICAgICAgIyBhbGxvdyB0aGUgdXNlIG9mICdhbGlhcycgd2hlbiBvbmx5IG9uZSBhbGlhcyBlbnRyeQorICAgICAgICAjIGV4aXN0cyBmb3IgdGhlIG9ial90eXBlLiAgb25seS1vbmUgb3VnaHQgdG8gYmUgdHlwaWNhbC4KKyAgICAgICAgIyB0aGlzIG1heSBuZWVkIHRvIGJlIHJlbW92ZWQgYWZ0ZXIgYSBjb21wYXRhYmlsaXR5IHBlcmlvZC4KKyAgICAgICAgaWYgYWxpYXNfb2JqX3R5cGUgPT0gJ2FsaWFzJzoKKyAgICAgICAgICAgICMgdGhlcmUgc2hvdWxkIGJlIG9ubHkgb25lIGFsaWFzIHRhYmxlIGZvciB0aGlzIG9ial90eXBlCisgICAgICAgICAgICBhbGlhc2VzID0gbWkuYWxpYXNfb2JqX3R5cGVfeHJlZltvYmpfdHlwZV0KKyAgICAgICAgICAgIGlmIGxlbihhbGlhc2VzKSAhPSAxOgorICAgICAgICAgICAgICAgIHByaW50IHNlbGYuZXJyb3JfbXNnKCJJbnRlcm5hbCBtb3JlIHRoYW4gb25lIGFsaWFzIGNob2ljZSIpCisgICAgICAgICAgICBhbGlhc19vYmpfdHlwZSA9IGFsaWFzZXNbMF0KKworICAgICAgICBvYmogPSBzZWxmLmdldF9jdXJyZW50X21vZGVfb2JqKCkKKyAgICAgICAgYWxpYXNfa2V5ID0gbWkucGsoYWxpYXNfb2JqX3R5cGUpCisKKyAgICAgICAgIworICAgICAgICAjIGNyZWF0ZSByb3cgZm9yIHRhYmxlIHdpdGggZm9yZWlnbiBrZXkKKyAgICAgICAgIyBmaW5kIHRoZSBuYW1lIG9mIHRoZSBmaWVsZCB3aGljaCBpcyB0aGUgZm9yZWlnbiBrZXkuLi4KKyAgICAgICAgZm9yZWlnbl9maWVsZCA9ICBtaS5hbGlhc19vYmpfdHlwZV9maWVsZChhbGlhc19vYmpfdHlwZSkKKyAgICAgICAgaWYgbm90IGZvcmVpZ25fZmllbGQ6CisgICAgICAgICAgICBwcmludCBzZWxmLmVycm9yX21zZygiaW50ZXJuYWwgaGFuZGxlX2FsaWFzOiBhbGlhc19vYmpfdHlwZV9maWVsZCIpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgICMKKyAgICAgICAgIyBkZWxldGUgdGhlIGN1cnJlbnQgYWxpYXMgaWYgaXQgZXhpc3RzCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGV4aXN0cyA9IHNlbGYuZ2V0X29iamVjdF9mcm9tX3N0b3JlKGFsaWFzX29ial90eXBlLCBhbGlhc192YWx1ZSkKKyAgICAgICAgICAgIGlmIGxlbihleGlzdHMpOgorICAgICAgICAgICAgICAgIHNlbGYucmVzdF9kZWxldGVfb2JqZWN0KGFsaWFzX29ial90eXBlLCBhbGlhc192YWx1ZSkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcGFzcworCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGNyZWF0ZV9kaWN0ID0geyBhbGlhc19rZXkgOiBhbGlhc192YWx1ZSwgZm9yZWlnbl9maWVsZCA6IG9iaiB9CisgICAgICAgICAgICBzZWxmLnJlc3RfY3JlYXRlX29iamVjdChhbGlhc19vYmpfdHlwZSwgY3JlYXRlX2RpY3QpCisgICAgICAgICAgICBlcnJvcnMgPSBOb25lCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBlcnJvcnMgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlLCBhbGlhc19vYmpfdHlwZSkKKworICAgICAgICBpZiBlcnJvcnM6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coImNvdWxkIG5vdCBjcmVhdGUgJXMgZm9yICVzICglcyk6ICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFsaWFzX29ial90eXBlLCBhbGlhc192YWx1ZSwgb2JqX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykpKQorICAgICAgICAjCisgICAgICAgICMgcmVtb3ZlIG90aGVyIGV4aXN0aW5nIGFsaWFzIGZvciB0aGUgc2FtZSBmb3JlaWduIGtleQorICAgICAgICAjIGZpbmQgYW55IG90aGVyIGFsaWFzIGZvciB0aGlzIGNvbmZpZyBvYmplY3QsIHRoZW4gcmVtb3ZlIHRoZW0KKyAgICAgICAgIworICAgICAgICB0cnk6CisgICAgICAgICAgICByb3dzID0gc2VsZi5nZXRfdGFibGVfZnJvbV9zdG9yZShhbGlhc19vYmpfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVpZ25fZmllbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmosCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhhY3QiKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXJyb3JzID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSwgYWxpYXNfb2JqX3R5cGUpCisgICAgICAgICAgICBwcmludCBzZWxmLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAgICAgICAgICAgIHJvd3MgPSBbXQorICAgICAgICAjCisgICAgICAgICMKKyAgICAgICAgZm9yIHJvdyBpbiByb3dzOgorICAgICAgICAgICAgIworICAgICAgICAgICAgIyBza2lwIHRoZSBlbnRyeSB3aGljaCB3YXMganVzdCBpbnNlcnRlZAorICAgICAgICAgICAgaWYgcm93W2FsaWFzX2tleV0gPT0gYWxpYXNfdmFsdWUgYW5kIHJvd1tmb3JlaWduX2ZpZWxkXSA9PSBvYmo6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3RfZGVsZXRlX29iamVjdChhbGlhc19vYmpfdHlwZSwgcm93W2FsaWFzX2tleV0pCisgICAgICAgICAgICAgICAgc2VsZi53YXJuaW5nKCJyZW1vdmVkIG90aGVyIGFsaWFzICclcycgZm9yICVzICclcyciICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJvd1thbGlhc19rZXldLCBmb3JlaWduX2ZpZWxkLCByb3dbZm9yZWlnbl9maWVsZF0pKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHBhc3MKKworICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyB1cGRhdGVfZm9yZWlnbl9rZXkKKyAgICAjICBHaXZlbiBhbiBvYmpfdHlwZSwgaXRzIHByaW1hcnkga2V5IG5hbWUsIGFuZCB0aGUgb2xkIGFuZCBuZXcKKyAgICAjICBpZCB2YWx1ZXMsIGZpbmQgYW55IGFzc29jaWF0ZWQgdGFibGVzIHdoaWNoIGhhdmUgZm9yZWlnbiBrZXlzCisgICAgIyAgYXNzb2NpYXRlZCB3aXRoIHRoaXMgdGFibGUsIGFuZCB1cGRhdGUgdGhlIGZvcmVpZ24ga2V5IHNvIHRoYXQKKyAgICAjICB0aGUgdGFibGUgYWdhaW4gcG9pbnRzIHRvIGEgdmFsaWQgaWQuCisgICAgIworICAgICMgIGl0cyB1bmxpa2VseSwgYWx0aG91Z2ggbm90IGltcG9zc2libGUsIGZvciB0aGUgZm9yZWlnbiBrZXkKKyAgICAjICB1cGRhdGUgdG8gbmVlZCB0byBjYXNjYWRlLgorICAgICMKKyAgICBkZWYgdXBkYXRlX2ZvcmVpZ25fa2V5KHNlbGYsIG9ial90eXBlLCBvYmpfa2V5LCBvbGRfaWQsIG5ld19pZCk6CisgICAgICAgIGlmIG9ial90eXBlIGluIG1pLmZvcmVpZ25fa2V5X3hyZWYgYW5kIFwKKyAgICAgICAgICAgb2JqX2tleSBpbiBtaS5mb3JlaWduX2tleV94cmVmW29ial90eXBlXToKKyAgICAgICAgICAgIGZvciAoZmtfb2JqX3R5cGUsIGZrX25hbWUpIGluIG1pLmZvcmVpZ25fa2V5X3hyZWZbb2JqX3R5cGVdW29ial9rZXldOgorICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAjIGZpbmQgYW55IGFmZmVjdGVkIHJvd3MKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHJvd3MgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKGZrX29ial90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBma19uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbGRfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGFjdCIpCisgICAgICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgICAgICByb3dzID0gW10KKworICAgICAgICAgICAgICAgIGtleSA9IG1pLnBrKGZrX29ial90eXBlKQorICAgICAgICAgICAgICAgIGZvciByb3cgaW4gcm93czoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi53YXJuaW5nKCJ1cGRhdGluZyAlcyBrZXkgJXMgZmllbGQgJXMgdG8gJXMiICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmtfb2JqX3R5cGUsIHJvd1trZXldLCBma19uYW1lLCBuZXdfaWQpKQorICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlc3RfdXBkYXRlX29iamVjdChma19vYmpfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvd1trZXldLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyBma19uYW1lIDogbmV3X2lkIH0pCisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBOb25lCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlLCBma19vYmpfdHlwZSkKKworICAgICAgICAgICAgICAgICAgICBpZiBlcnJvcnM6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCBzZWxmLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBoYW5kbGVfZmllbGQKKyAgICAjCisgICAgIyBoYW5kbGVfZmllbGQgY2FsbHMgaXRzZWxmIHJlY3Vyc2l2ZWx5IHRvIHBhcnNlIGZpZWxkcyBhbmQgYnVpbGQKKyAgICAjIGEgZmllbGQgZGljdC4gSXQgdGhlbiBwYXNzZXMgdGhlIGZpZWxkIGRpY3QgdG8gb25lIHJlc3QgY2FsbC4KKyAgICAjCisgICAgZGVmIGhhbmRsZV9maWVsZChzZWxmLCB3b3JkcywgYWNjdW11bGF0ZWRfZGF0YT1Ob25lKToKKyAgICAgICAgaWYgYWNjdW11bGF0ZWRfZGF0YSBpcyBOb25lOgorICAgICAgICAgICAgYWNjdW11bGF0ZWRfZGF0YSA9IHt9CisgICAgICAgIGlmIGxlbih3b3JkcykgPCAyOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJpbmNvcnJlY3QgbnVtYmVyIG9mIGFyZ3MgKG11c3QgYmUgPGZpZWxkPiA8dmFsdWU+KSIpCisgICAgICAgIG9ial90eXBlID0gc2VsZi5nZXRfY3VycmVudF9tb2RlX29ial90eXBlKCkKKyAgICAgICAgb2JqID0gc2VsZi5nZXRfY3VycmVudF9tb2RlX29iaigpCisgICAgICAgIGxhc3Rfd29yZCA9IDIKKyAgICAgICAgZmllbGQgPSB3b3Jkc1swXQorICAgICAgICB2YWx1ZSA9IHdvcmRzWzFdCisgICAgICAgIAorICAgICAgICAjIGNvbXBsZXRlIHRoZSBmaWVsZCBpZiBuZWVkZWQKKyAgICAgICAgZmllbGRfY2hvaWNlcyA9IHNlbGYuZmllbGRzX2Zvcl9jdXJyZW50X3N1Ym1vZGVfc3RhcnRpbmdfd2l0aCh3b3Jkc1swXSkKKyAgICAgICAgIyBMT09LITogcm9idjogRml4IHRvIHdvcmsgd2l0aCBhIGZpZWxkIG5hbWVzIHdoaWNoIGlzIGEgcHJlZml4IG9mIGFub3RoZXIKKyAgICAgICAgaWYgbGVuKGZpZWxkX2Nob2ljZXMpID4gMToKKyAgICAgICAgICAgIGZvciBmaWVsZF9jaG9pY2UgaW4gZmllbGRfY2hvaWNlczoKKyAgICAgICAgICAgICAgICBpZiBmaWVsZF9jaG9pY2UgPT0gd29yZHNbMF06CisgICAgICAgICAgICAgICAgICAgIGZpZWxkX2Nob2ljZXMgPSBbZmllbGRfY2hvaWNlXQorICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBpZiBsZW4oZmllbGRfY2hvaWNlcykgPiAxOgorICAgICAgICAgICAgcmV0dXJuICJNdWx0aXBsZSBtYXRjaGVzIGZvciBmaWVsZCBuYW1lICVzLiIgJSBmaWVsZAorICAgICAgICBpZiBsZW4oZmllbGRfY2hvaWNlcykgPT0gMDoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygiJXMgaGFzIG5vIGZpZWxkIG5hbWVkICVzLiIgJSAob2JqX3R5cGUsIGZpZWxkKSkKKyAgICAgICAgZmllbGQgPSBmaWVsZF9jaG9pY2VzWzBdCisKKyAgICAgICAgIworICAgICAgICAjIGhhbmRsZSBzcGVjaWFsIGNhc2UgYWxpYXMncyB3aGljaCBhcmVuJ3QgdW5kZXJzdG9vZCB2aWEgeHJlZgorICAgICAgICAjICh0aGlzIGlzIGJlY2F1c2Ugdm5zLWludGVyZmFjZS1ydWxlIGRvZXNuJ3QgZm9yZWlnbktleSBuZWlndGhlcgorICAgICAgICAjICBzd2l0Y2ggb3IgbWFjIHJlZmVyZW5jZXMgdG8gdGhlIHN3aXRjaC9ob3N0IHRhYmxlcykKKyAgICAgICAgIyAgCisgICAgICAgIGlmIG9ial90eXBlID09ICd2bnMtaW50ZXJmYWNlLXJ1bGUnIGFuZCBmaWVsZCA9PSAnc3dpdGNoJzoKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLkRQSURfUkUubWF0Y2godmFsdWUpOgorICAgICAgICAgICAgICAgIGFsaWFzX3ZhbHVlID0gYWxpYXNfbG9va3VwKCdzd2l0Y2gtYWxpYXMnLCB2YWx1ZSkKKyAgICAgICAgICAgICAgICBpZiBhbGlhc192YWx1ZToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBhbGlhc192YWx1ZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU3ludGF4OiBVbmtub3duIHN3aXRjaCBhbGlhcyAnJXMnOyBTcGVjaWZ5IHN3aXRjaCBhcyBEUElEIG9yIGFsaWFzIiAlIHZhbHVlCisgICAgICAgIGlmIG9ial90eXBlID09ICd2bnMtaW50ZXJmYWNlLXJ1bGUnIGFuZCBmaWVsZCA9PSAnbWFjJzoKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLk1BQ19SRS5tYXRjaCh2YWx1ZSk6CisgICAgICAgICAgICAgICAgYWxpYXNfdmFsdWUgPSBhbGlhc19sb29rdXAoJ2hvc3QtYWxpYXMnLCB2YWx1ZSkKKyAgICAgICAgICAgICAgICBpZiBhbGlhc192YWx1ZToKKyAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBhbGlhc192YWx1ZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiAiU3ludGF4OiBVbmtub3duIGhvc3QgYWxpYXMgJyVzJzsgU3BlY2lmeSBob3N0IGFzIE1BQyBvciBhbGlhcyIgJSB2YWx1ZQorICAgICAgICAgICAgICAgIAorICAgICAgICAjCisgICAgICAgICMgUmVwbGFjZSBjb21tb24gdHlwZSB2YWx1ZXMgd2l0aCBleHBlY3RlZCB0eXBlcywgZm9yIGV4YW1wbGUgdHJ1ZSBvciBmYWxzZQorICAgICAgICAjICBmb3IgVHJ1ZS9GYWxzZS4gCisgICAgICAgIGlmIG1pLmlzX2ZpZWxkX2Jvb2xlYW4oc2VsZi5nZXRfY3VycmVudF9tb2RlX29ial90eXBlKCksIGZpZWxkKToKKyAgICAgICAgICAgIGlmIHZhbHVlLmxvd2VyKCkgPT0gJ2ZhbHNlJzoKKyAgICAgICAgICAgICAgICB2YWx1ZSA9ICdGYWxzZScKKyAgICAgICAgICAgIGVsaWYgdmFsdWUubG93ZXIoKSA9PSAndHJ1ZSc6CisgICAgICAgICAgICAgICAgdmFsdWUgPSAnVHJ1ZScKKyAgICAgICAgIyAKKyAgICAgICAgZWxpZiBtaS5pc19oZXhfYWxsb3dlZChvYmpfdHlwZSwgZmllbGQpIGFuZCBzZWxmLkhFWF9SRS5tYXRjaCh2YWx1ZSk6CisgICAgICAgICAgICB2YWx1ZSA9IHN0cihpbnQodmFsdWUsIDE2KSkKKyAgICAgICAgIworICAgICAgICAjIExvb2sgdXAgYW55IHZhbGlkYXRpb24gb3IgdmFsdWUgY2hhbmdpbmcgY2FsbG91dHMuLi4KKyAgICAgICAgdmFsaWRhdGUgPSBtaS5maWVsZF92YWxpZGF0aW9uKHNlbGYuZ2V0X2N1cnJlbnRfbW9kZV9vYmpfdHlwZSgpLCBmaWVsZCkKKyAgICAgICAgaWYgdmFsaWRhdGU6CisgICAgICAgICAgICB2YWxpZGF0ZV9lcnJvciA9IHZhbGlkYXRlKG9ial90eXBlLCBmaWVsZCwgdmFsdWUpCisgICAgICAgICAgICBpZiB2YWxpZGF0ZV9lcnJvcjoKKyAgICAgICAgICAgICAgICByZXR1cm4gdmFsaWRhdGVfZXJyb3IKKworICAgICAgICBhY2N1bXVsYXRlZF9kYXRhW2ZpZWxkXSA9IHZhbHVlCisKKyAgICAgICAgcmV0X3ZhbCA9IE5vbmUKKworICAgICAgICBpZiBsZW4od29yZHMpID4gbGFzdF93b3JkOgorICAgICAgICAgICAgIyBtb3JlIHRvIG11bmNoCisgICAgICAgICAgICByZXRfdmFsID0gc2VsZi5oYW5kbGVfZmllbGQod29yZHNbbGFzdF93b3JkOl0sIGFjY3VtdWxhdGVkX2RhdGEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIG11bmNoZWQgZXZlcnl0aGluZywgbm93IHVwZGF0ZQorICAgICAgICAgICAgb2JqX2tleSA9IG1pLnBrKG9ial90eXBlKQorCisgICAgICAgICAgICBwcmVwYXJlX3VwZGF0ZSA9IG1pLm9ial90eXBlX3ByZXBhcmVfcm93X3VwZGF0ZShvYmpfdHlwZSkKKyAgICAgICAgICAgIGlmIHByZXBhcmVfdXBkYXRlOgorICAgICAgICAgICAgICAgIGFjY3VtdWxhdGVkX2RhdGEgPSBwcmVwYXJlX3VwZGF0ZShvYmpfdHlwZSwgb2JqX2tleSwgb2JqLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2N1bXVsYXRlZF9kYXRhKQorICAgICAgICAgICAgICAgICMgaW4gY2FzZSB0aGUgb2JqX3R5cGUncyBrZXkgaXMgdXBkYXRlZAorICAgICAgICAgICAgICAgIG9iaiA9IGFjY3VtdWxhdGVkX2RhdGFbb2JqX2tleV0KKworICAgICAgICAgICAgIworICAgICAgICAgICAgIyBOb3RlOiBpZiBhbGwgdGhlIGZpZWxkcyBmb3IgYSByb3cgYXJlIGFsbCBtYW51YWxseSByZXZlcnRlZAorICAgICAgICAgICAgIyB0byBhIGRlZmF1bHQgdmFsdWUsIHBlcmhhcHMgdGhlIHJvdyBvdWdodCB0byBiZSBkZWxldGVkLgorICAgICAgICAgICAgZXJyb3JzID0gTm9uZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYucmVzdF91cGRhdGVfb2JqZWN0KG9ial90eXBlLCBvYmpfa2V5LCBvYmosIGFjY3VtdWxhdGVkX2RhdGEpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIGVycm9ycyA9IHNlbGYucmVzdF9lcnJvcl90b19kaWN0KGUsIG9ial90eXBlKQorCisgICAgICAgICAgICBpZiBlcnJvcnM6CisgICAgICAgICAgICAgICAgcmV0X3ZhbCA9IHNlbGYucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgIyBpZiB0aGUgcHJpbWFyeSBrZXkgd2FzIHBhcnQgb2YgdGhlIHVwZGF0ZS4gZmluZCByZWxhdHJlZAorICAgICAgICAgICAgICAgICMgdGFibGVzIGFuZCB1cGRhdGUgdGhlIGZvcmVpZ24ga2V5LiAgWFhYIHBlcmhhcHMgdGhpcyBpcworICAgICAgICAgICAgICAgICMgdGhlIHJlc3QgYXBpJ3MgcHJvYmxlbT8KKyAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgaWYgb2JqX2tleSBpbiBhY2N1bXVsYXRlZF9kYXRhIGFuZCBcCisgICAgICAgICAgICAgICAgICAgYWNjdW11bGF0ZWRfZGF0YVtvYmpfa2V5XSAhPSBvYmo6CisKKyAgICAgICAgICAgICAgICAgICAgc2VsZi51cGRhdGVfZm9yZWlnbl9rZXkob2JqX3R5cGUsIG9ial9rZXksIG9iaiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjdW11bGF0ZWRfZGF0YVtvYmpfa2V5XSkKKyAgICAgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICAgICAjIGRlbGV0ZSB0aGUgb2xkIGtleS4KKyAgICAgICAgICAgICAgICAgICAgc2VsZi5yZXN0X2RlbGV0ZV9vYmplY3Qob2JqX3R5cGUsIG9iaikKKworICAgICAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgICAgICMgbW92ZSB0aGUgdGhlIGN1cnJlbnQgaWQKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zZXRfY3VycmVudF9tb2RlX29iaihhY2N1bXVsYXRlZF9kYXRhW29ial9rZXldKQorCisgICAgICAgIHJldHVybiByZXRfdmFsCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgY29udmVydF9oZXhfdG9fZGVjaW1hbAorICAgICMgIFJldmlldyB0aGUgY29udGVudHMgb2YgYWxsIHRoZSB2YWx1ZXMsIGxvb2tpbmcgZm9yIGhleAorICAgICMgIHZhbHVlZCBmaWVsZHMuICBXaGVuIGEgaGV4IHZhbHVlIGlzIGlkZW50aWZpZWQsIGNoYW5nZQorICAgICMgIGl0IHRvIGRlY2ltYWwgd2hlbiAnaXNfaGV4X2FsbG93ZWQnIGlzIHRydWUuCisgICAgIworICAgIGRlZiBjb252ZXJ0X2hleF90b19kZWNpbWFsKHNlbGYsIG9ial90eXBlLCBmaWVsZF9kaWN0KToKKyAgICAgICAgZm9yIGtleSBpbiBmaWVsZF9kaWN0LmtleXMoKToKKyAgICAgICAgICAgIGlmIG1pLmlzX2hleF9hbGxvd2VkKG9ial90eXBlLCBrZXkpIGFuZCBcCisgICAgICAgICAgICAgICBzZWxmLkhFWF9SRS5tYXRjaChmaWVsZF9kaWN0W2tleV0pOgorICAgICAgICAgICAgICAgIGZpZWxkX2RpY3Rba2V5XSA9IGludChmaWVsZF9kaWN0W2tleV0sIDE2KQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGhhbmRsZV9vYmpfdHlwZQorICAgICMgIEluIGNvbmZpZyBtb2RlLCB0aGlzIGhhbmRsZXMgaWYgZmlyc3Qgd29yZCBpcyBhbiBvYmplY3QtdHlwZQorICAgICMgIChleDogImZsb3ctZW50cnkgY2F0Y2gtd2ViIikKKyAgICAjCisgICAgZGVmIGhhbmRsZV9vYmpfdHlwZShzZWxmLCB3b3Jkcyk6CisgICAgICAgIGlmIGxlbih3b3JkcykgPCAyOgorICAgICAgICAgICAgcmV0dXJuICJTeW50YXg6ICVzIDxrZXk+OiB3aGVyZSBrZXkgaXMgYW4gaWQgb2YgJXMiICUgKHdvcmRzWzBdLCB3b3Jkc1swXSkKKworICAgICAgICAob2JqX3R5cGUsIG9ial9uYW1lKSA9ICh3b3Jkc1swXSwgd29yZHNbMV0pCisKKyAgICAgICAgb2JqX25hbWUgPSBjb252ZXJ0X2FsaWFzX3RvX29iamVjdF9rZXkob2JqX3R5cGUsIG9ial9uYW1lKQorICAgICAgICAjIEZpcnN0IGNoZWNrIGlmIHRoaXMgaXMgc29tZXRoaW5nIHdlIGNhbiBhY3R1YWxseSBjb25maWd1cmUKKyAgICAgICAgaWYgb2JqX3R5cGUgbm90IGluIG1pLm9ial90eXBlczoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygidW5rbm93biBjb21tYW5kIG9yIG9iamVjdC4iKQorCisgICAgICAgICMgTmV4dCwgZmluZCB0aGUgb2JqZWN0CisgICAgICAgICMgIERlYWwgd2l0aCBhbnkgY2hhbmdlcyB0byB0aGUgbG9va3VwIG5hbWUgYmFzZWQgb24gdGhlICdjb25jYXRlbmF0aW9uJworICAgICAgICAjICBvZiB0aGUgY29uZmlnIG1vZGUgbmFtZSB0byB0aGUgbmFtZWQgaWRlbnRpZmVyLgorICAgICAgICAjCisgICAgICAgIGZvdW5kX29iaiA9IHNlbGYuZ2V0X29ial9vZl90eXBlKG9ial90eXBlLCBvYmpfbmFtZSkgCisKKyAgICAgICAgaWYgZm91bmRfb2JqID09IE5vbmU6CisgICAgICAgICAgICAjIG5lZWQgdG8gY3JlYXRlIG9iamVjdCwgb2JqX2RhdGEgaXMgdGhlIHJlc3QgYXBpIGRpY3Rpb25hcnkgdXNlZAorICAgICAgICAgICAgIyB0byBjcmVhdGUgdGhlIG5ldyByb3cuCisgICAgICAgICAgICBvYmpfZGF0YSA9IHsgbWkucGsob2JqX3R5cGUpOiBvYmpfbmFtZSB9CisKKyAgICAgICAgICAgIGlmIHNlbGYuaW5fY29uZmlnX3N1Ym1vZGUoKToKKyAgICAgICAgICAgICAgICAjIGFkZCBpbiBhbGwgdGhlIGtleSB2YWx1ZSBmcm9tIG1vZGVzIGluIHRoZSBzdGFjaworICAgICAgICAgICAgICAgICMgTE9PSyEgdGhpcyBpcyBicml0dGxlIGFzIGl0IGRlcGVuZHMgb24gdGhlIG5hbWUgb2YgCisgICAgICAgICAgICAgICAgIyB0aGUgbW9kZSBtYXRjaGluZyB0aGUgbmFtZSBvZiB0aGUgYXR0cmlidXRlLgorICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICBvYmpfZGF0YSA9IHNlbGYubW9kZV9zdGFja190b19yZXN0X2RpY3Qob2JqX2RhdGEpCisKKyAgICAgICAgICAgICAgICAjIAorICAgICAgICAgICAgICAgIHNlbGYuY29udmVydF9oZXhfdG9fZGVjaW1hbChvYmpfdHlwZSwgb2JqX2RhdGEpCisKKyAgICAgICAgICAgICAgICAjIG1ha2Ugc3VyZSBhbGwgdGhlIGZvcmVpZ24ga2V5cyBhcmUgcG9wdWxhdGVkCisgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgIGZvciBrZXkgaW4gbWkub2JqX3R5cGVfZm9yZWlnbl9rZXlzKG9ial90eXBlKToKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGtleSBpbiBvYmpfZGF0YToKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IHNlbGYuZXJyb3JfbXNnKCJmb3JlaWduIGtleSAnJXMnIG1pc3NpbmcgZnJvbSBtb2RlIHN0YWNrICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoa2V5LCBvYmpfZGF0YSkpCisKKyAgICAgICAgICAgIHByZXBhcmVfdXBkYXRlID0gbWkub2JqX3R5cGVfcHJlcGFyZV9yb3dfdXBkYXRlKG9ial90eXBlKQorICAgICAgICAgICAgaWYgcHJlcGFyZV91cGRhdGU6CisgICAgICAgICAgICAgICAgb2JqX2RhdGEgPSBwcmVwYXJlX3VwZGF0ZShvYmpfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pLnBrKG9ial90eXBlKSwgb2JqX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpfZGF0YSkKKworICAgICAgICAgICAgIyBjcmVhdGUgdGhlIG9iamVjdAorICAgICAgICAgICAgZXJyb3JzID0gTm9uZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHNlbGYucmVzdF9jcmVhdGVfb2JqZWN0KG9ial90eXBlLCBvYmpfZGF0YSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgZXJyb3JzID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSwgb2JqX3R5cGUpCisKKyAgICAgICAgICAgIGlmIGVycm9yczoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcnMpCisKKyAgICAgICAgICAgICMgZ2V0IGl0IGJhY2ssIHBvcHVsYXRpbmcgZm91bmRfb2JqCisgICAgICAgICAgICBmb3VuZF9vYmogPSBzZWxmLmdldF9vYmpfb2ZfdHlwZShvYmpfdHlwZSwgb2JqX25hbWUpIAorICAgICAgICAgICAgCisgICAgICAgICMgcHVzaCBvbiB0aGUgc3VibW9kZSBmb3IgdGhlIG9iamVjdCAKKyAgICAgICAgIyBMT09LISBhc3N1bWVzIGFsbCBvYmplY3QgY29tbWFuZHMgZHJvcCB5b3UgaW50byBhIHN1Ym1vZGUuLi4KKyAgICAgICAgaWYgZm91bmRfb2JqOgorICAgICAgICAgICAgc3ViX21vZGUgPSAiY29uZmlnLSVzIiAlIG9ial90eXBlCisgICAgICAgICAgICBzZWxmLnB1c2hfbW9kZShzdWJfbW9kZSwgb2JqX3R5cGUsIG9ial9uYW1lKQorCisgICAgICAgICAgICAjIGhhbmQgb2ZmIHRoZSByZXN0IG9mIHRoZSBsaW5lIHRvIGhhbmRsZV9maWVsZAorICAgICAgICAgICAgaWYgbGVuKHdvcmRzKSA+IDI6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuaGFuZGxlX2ZpZWxkKHdvcmRzWzI6XSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygiTm8gJXMgd2l0aCAlcyA9ICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9ial90eXBlLCBtaS5wayhvYmpfdHlwZSksIG9ial9uYW1lKSkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBwcmludF9jb21wbGV0aW9uX2hlbHAKKyAgICAjCisgICAgZGVmIHByaW50X2NvbXBsZXRpb25faGVscChzZWxmLCBjb21wbGV0aW9uX2hlbHBfdGV4dCk6CisgICAgICAgIG9yaWdsaW5lID0gcmVhZGxpbmUuZ2V0X2xpbmVfYnVmZmVyKCkKKyAgICAgICAgZW5kID0gcmVhZGxpbmUuZ2V0X2VuZGlkeCgpCisgICAgICAgIGN1cl9jb21tYW5kID0gb3JpZ2xpbmVbMDplbmRdCisKKyAgICAgICAgaGVscF90ZXh0ID0gIlxuJXNcbiVzJXMiICUgKCBjb21wbGV0aW9uX2hlbHBfdGV4dCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnByb21wdCwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJfY29tbWFuZCkKKyAgICAgICAgc2VsZi5jb21wbGV0aW9uX3NraXAgPSBUcnVlCisgICAgICAgIHN5cy5zdGRvdXQud3JpdGUoaGVscF90ZXh0KQorICAgICAgICAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZ2V0X2lwX2Zyb21fc3dpdGNoX2RwaWRfb3JfYWxpYXMKKyAgICAjICAgIFJldHVybnMgdGhlIElQIGFzc29jaWF0ZWQgd2l0aCB0aGUgc3dpdGNoIGlmIGl0IGV4aXN0cworICAgICMgICAgb3IgdGhlIG9yaWdpbmFsIHN0cmluZyBpZiBpdCdzIG5vdCBhIGRwaWQgb3IgYWxpYXMuCisgICAgIworICAgIGRlZiBnZXRfaXBfZnJvbV9zd2l0Y2hfZHBpZF9vcl9hbGlhcyhzZWxmLCBhbGlhcyk6CisgICAgICAgIGRwaWQgPSBjb252ZXJ0X2FsaWFzX3RvX29iamVjdF9rZXkoInN3aXRjaGVzIiwgYWxpYXMpCisgICAgICAgIGlmIHNlbGYuRFBJRF9SRS5tYXRjaChkcGlkKToKKyAgICAgICAgICAgIHF1ZXJ5X2RpY3QgPSB7ICdkcGlkJyA6IGRwaWQgfQorICAgICAgICAgICAgcm93ID0gcmVzdF90b19tb2RlbC5nZXRfbW9kZWxfZnJvbV91cmwoJ3N3aXRjaGVzJywgcXVlcnlfZGljdCkKKyAgICAgICAgICAgIGlmIGxlbihyb3cpID49IDE6CisgICAgICAgICAgICAgICAgaWYgbm90ICdpcC1hZGRyZXNzJyBpbiByb3dbMF0gb3Igcm93WzBdLmdldCgnaXAtYWRkcmVzcycpID09ICcnOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coInN3aXRjaCAlcyBjdXJyZW50bHkgbm90IGNvbm5lY3RlZCAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIGFsaWFzKQorICAgICAgICAgICAgICAgIHJldHVybiByb3dbMF0uZ2V0KCdpcC1hZGRyZXNzJykKKyAgICAgICAgcmV0dXJuIGFsaWFzCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgaW1wbGVtZW50X3dyaXRlCisgICAgIworICAgIGRlZiBpbXBsZW1lbnRfd3JpdGUoc2VsZiwgd29yZHMpOgorICAgICAgICBpZiBsZW4od29yZHMpID09IDE6CisgICAgICAgICAgICBpZiAibWVtb3J5Ii5zdGFydHN3aXRoKHdvcmRzWzBdKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5pbXBsZW1lbnRfY29weShbInJ1bm5pbmctY29uZmlnIiwgInN0YXJ0dXAtY29uZmlnIl0pCisgICAgICAgICAgICBlbGlmICJlcmFzZSIuc3RhcnRzd2l0aCh3b3Jkc1swXSk6CisgICAgICAgICAgICAgICAgcHJpbnQgIlRoaXMgd2lsbCBjbGVhciB0aGUgc3RhcnR1cC1jb25maWcgYW5kIHNldCBpdCB0byBiZSBlbXB0eS4iCisgICAgICAgICAgICAgICAgcmVzcCA9IHJhd19pbnB1dCgiQXJlIHlvdSBzdXJlIHRoYXQgd2FudCB0byBwcm9jZWVkPyBbbl0iKQorICAgICAgICAgICAgICAgIGlmIHJlc3AgYW5kICJ5ZXMiLnN0YXJ0c3dpdGgocmVzcC5sb3dlcigpKToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgIkVyYXNpbmcgc3RhcnR1cCBjb25maWcgLi4uIgorICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLnN0b3JlLmRlbGV0ZV91c2VyX2RhdGFfZmlsZSgic3RhcnR1cC1jb25maWcvdGltZS9sZW4vdmVyc2lvbiIpCisgICAgICAgICAgICAgICAgICAgIGlmICdzdGF0dXMnIGluIHJlc3VsdCBhbmQgcmVzdWx0WydzdGF0dXMnXSA9PSAnc3VjY2Vzcyc6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAgICAgICAgICBlbGlmICdtZXNzYWdlJyBub3QgaW4gcmVzdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJyZXN0IHN0b3JlIHJlc3VsdCBkb2Vzbid0IGNvbnRhaW4gZXJyb3IgbWVzc2FnZSIpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2cocmVzdWx0WydtZXNzYWdlJ10pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgIkNvbW1hbmQgYWJvcnRlZCBieSB1c2VyOiB3cml0ZSBlcmFzZSIKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIGVsaWYgInRlcm1pbmFsIi5zdGFydHN3aXRoKHdvcmRzWzBdKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5pbXBsZW1lbnRfY29weShbInJ1bm5pbmctY29uZmlnIiwgInRlcm1pbmFsIl0pCisgICAgICAgIHJldHVybiAiU3ludGF4OiB3cml0ZSA8IHRlcm1pbmFsIHwgbWVtb3J5IHwgZXJhc2U+IgorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIAorICAgIAorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgc2V0X2Nsb2NrX2FjdGlvbihkYXRhKToKKyAgICAgICAgdGltZV92YWx1ZXMgPSBkYXRhWyd0aW1lJ10uc3BsaXQoJzonKQorICAgICAgICBpZiBsZW4odGltZV92YWx1ZXMpICE9IDM6CisgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRXJyb3IoJ0ludmFsaWQgdGltZTsgbXVzdCBiZSBISDpNTTpTUycpCisgICAgICAgIGhvdXIgPSBpbnQodGltZV92YWx1ZXNbMF0pCisgICAgICAgIG1pbnV0ZSA9IGludCh0aW1lX3ZhbHVlc1sxXSkKKyAgICAgICAgc2Vjb25kID0gaW50KHRpbWVfdmFsdWVzWzJdKQorICAgICAgICAKKyAgICAgICAgTU9OVEhfTkFNRVMgPSAgKCdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlcicpCisKKyAgICAgICAgZGF5X29mX21vbnRoID0gaW50KGRhdGFbJ2RheS1vZi1tb250aCddKQorICAgICAgICBtb250aF9uYW1lID0gZGF0YVsnbW9udGgnXQorICAgICAgICBpZiBtb250aF9uYW1lIG5vdCBpbiBNT05USF9OQU1FUzoKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRFcnJvcignSW52YWxpZCBtb250aCBuYW1lIChlLmcuIEphbnVhcnksIE1heSwgSnVseSknKQorICAgICAgICBtb250aCA9IE1PTlRIX05BTUVTLmluZGV4KG1vbnRoX25hbWUpICsgMQorICAgICAgICB5ZWFyID0gaW50KGRhdGFbJ3llYXInXSkKKyAgICAgICAgCisgICAgICAgIGRhdGVfdGltZV9pbmZvID0geworICAgICAgICAgICAgJ3llYXInOiB5ZWFyLAorICAgICAgICAgICAgJ21vbnRoJzogbW9udGgsCisgICAgICAgICAgICAnZGF5JzogZGF5X29mX21vbnRoLAorICAgICAgICAgICAgJ2hvdXInOiBob3VyLAorICAgICAgICAgICAgJ21pbnV0ZSc6IG1pbnV0ZSwKKyAgICAgICAgICAgICdzZWNvbmQnOiBzZWNvbmQKKyAgICAgICAgfQorICAgICAgICB1cmwgPSAnaHR0cDovLyVzL3Jlc3QvdjEvc3lzdGVtL2Nsb2NrL2xvY2FsJyAlIGNsaS5jb250cm9sbGVyCisgICAgICAgIHJlc3VsdCA9IGNsaS5zdG9yZS5yZXN0X3Bvc3RfcmVxdWVzdCh1cmwsIGRhdGVfdGltZV9pbmZvKQorICAgICAgICBkYXRlX3RpbWVfaW5mbyA9IGpzb24ubG9hZHMocmVzdWx0KQorICAgICAgICBjbG9ja19zdHJpbmcgPSBTRE5TaC5nZXRfY2xvY2tfc3RyaW5nKGRhdGVfdGltZV9pbmZvLCBGYWxzZSkKKyAgICAgICAgcmV0dXJuIGNsb2NrX3N0cmluZworICAgIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBnZXRfbWlzY29uZmlndXJlZF9kZWZhdWx0X2dhdGV3YXkKKyAgICAjICAKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGdldF9taXNjb25maWd1cmVkX2RlZmF1bHRfZ2F0ZXdheSgpOgorICAgICAgICAiIiIKKyAgICAgICAgRGV0ZXJtaW5lIGlmIHRoZSBjb250cm9sbGVyIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIGRlZmF1bHQgZ2F0ZXdheQorICAgICAgICBzZXR0aW5nIHRoYXQgZG9lc24ndCBtYXRjaCAoaS5lLiBpcyBub3Qgb24gdGhlIHNhbWUgc3VibmV0KQorICAgICAgICBhbnkgb2YgdGhlIGludGVyZmFjZXMgY29uZmlndXJlZCB3aXRoIHN0YXRpYyBJUCBhZGRyZXNzZXMuCisgICAgICAgIFRoaXMgaXMgdXNlZCBieSB0aGUgYmVnaW5fZGVmYXVsdF9nYXRld2F5X2NoZWNrX2FjdGlvbiBhbmQKKyAgICAgICAgZW5kX2RlZmF1bHRfZ2F0ZXdheV9jaGVja19hY3Rpb24gYWN0aW9ucyB0aGF0IGNoZWNrIGlmIGEgY29tbWFuZAorICAgICAgICByZXN1bHRzIGluIGEgbWlzY29uZmlndXJlZCBkZWZhdWx0IGdhdGV3YXkgc2V0dGluZyBhbmQsIGlmIHNvLAorICAgICAgICBlbWl0IGFuIGVycm9yIG1lc3NhZ2UuCisgICAgICAgIElmIHRoZSBkZWZhdWx0IGdhdGV3YXkgaXMgbWlzY29uZmlndXJlZCwgdGhlIHJldHVybiB2YWx1ZSBpcyB0aGUKKyAgICAgICAgZGVmYXVsdCBnYXRld2F5IHZhbHVlLiBPdGhlcndpc2UsIHRoZSByZXR1cm4gdmFsdWUgaXMgTm9uZS4KKyAgICAgICAgIiIiCisgICAgICAgICMgRmlyc3QgZmlndXJlIG91dCB3aGljaCBjb250cm9sbGVyLW5vZGUgd2UncmUgd29ya2luZyB3aXRoLgorICAgICAgICAjIFRoaXMgaXMgYSBsaXR0bGUga2x1ZGd5IHJpZ2h0IG5vdy4gV2UgY2hlY2sgdGhlIG1vZGUgc3RhY2sKKyAgICAgICAgIyBsb29raW5nIGZvciBhIGNvbnRyb2xsZXIgbm9kZSBlbGVtZW50LgorICAgICAgICBjb250cm9sbGVyX2lkID0gY2xpLmdldF9uZXN0ZWRfbW9kZV9vYmooJ2NvbnRyb2xsZXItbm9kZScpCisgICAgICAgIGlmIG5vdCBjb250cm9sbGVyX2lkOgorICAgICAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZERlc2NyaXB0aW9uRXJyb3IoJ2NoZWNrX2RlZmF1bHRfZ2F0ZXdheV9hY3Rpb24gbXVzdCBiZSBjYWxsZWQgZnJvbSBhIChwb3NzaWJseSBuZXN0ZWQpIGNvbnRyb2xsZXIgbm9kZSBjb25maWcgbW9kZScpCisgICAgICAgIAorICAgICAgICBjb250cm9sbGVyID0gY2xpLmdldF9vYmplY3RfZnJvbV9zdG9yZSgnY29udHJvbGxlci1ub2RlJywgY29udHJvbGxlcl9pZCkKKyAgICAgICAgaWYgbm90IGNvbnRyb2xsZXI6CisgICAgICAgICAgICAjIFRoaXMgc2hvdWxkbid0IHJlYWxseSBoYXBwZW4gdW5sZXNzIHNvbWVvbmUvdGhpbmcgaGFzIG11Y2tlZCB3aXRoIHRoZQorICAgICAgICAgICAgIyBjb250cm9sbGVyIG9iamVjdCBvdXQgZnJvbSB1bmRlciB0aGlzIGluc3RhbmNlIG9mIHRoZSBDTEkKKyAgICAgICAgICAgICMgYnV0IGp1c3QgdG8gYmUgc2FmZS4uLgorICAgICAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZEludm9jYXRpb25FcnJvcignQ3VycmVudCBjb250cm9sbGVyIHNldHRpbmdzIGhhdmUgYmVlbiBkZWxldGVkLicpCisgICAgICAgIAorICAgICAgICAjIENoZWNrIGlmIHRoZSBjb250cm9sbGVyIG5vZGUgaXMgY29uZmlndXJlZCB3aXRoIGEgZGVmYXVsdCBnYXRld2F5LgorICAgICAgICAjIElmIG5vdCwgdGhlbiB0aGVyZSdzIG5vIHBvc3NpYmxlIG1pc2NvbmZpZ3VyYXRpb24gYW5kIHdlJ3JlIGRvbmUuCisgICAgICAgIGRlZmF1bHRfZ2F0ZXdheSA9IGNvbnRyb2xsZXIuZ2V0KCdkZWZhdWx0LWdhdGV3YXknKQorICAgICAgICBpZiBkZWZhdWx0X2dhdGV3YXkgPT0gJyc6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgCisgICAgICAgICMgVGhlcmUgaXMgYSBkZWZhdWx0IGdhdGV3YXkgY29uZmlndXJlZCwgc28gd2UgbmVlZCB0byBjaGVjayBpZiB0aGVyZSdzCisgICAgICAgICMgYW4gaW50ZXJmYWNlIHRoYXQgbWF0Y2hlcyAoaS5lLiBpcyBvbiB0aGUgc2FtZSBzdWJuZXQgYXMpIHRoZSBkZWZhdWx0CisgICAgICAgICMgZ2F0ZXdheQorICAgICAgICBpbnRlcmZhY2VzID0gY2xpLnJlc3RfcXVlcnlfb2JqZWN0cygnY29udHJvbGxlci1pbnRlcmZhY2UnLCB7J2NvbnRyb2xsZXInOiBjb250cm9sbGVyX2lkfSkKKyAgICAgICAgZm9yIGludGVyZmFjZSBpbiBpbnRlcmZhY2VzOgorICAgICAgICAgICAgbW9kZSA9IGludGVyZmFjZS5nZXQoJ21vZGUnKQorICAgICAgICAgICAgaWYgbW9kZSA9PSAnc3RhdGljJzoKKyAgICAgICAgICAgICAgICBpcCA9IGludGVyZmFjZS5nZXQoJ2lwJykKKyAgICAgICAgICAgICAgICBuZXRtYXNrID0gaW50ZXJmYWNlLmdldCgnbmV0bWFzaycpCisgICAgICAgICAgICAgICAgaWYgKGlwICE9ICcnKSBhbmQgKG5ldG1hc2sgIT0gJycpIGFuZCBzYW1lX3N1Ym5ldChkZWZhdWx0X2dhdGV3YXksIGlwLCBuZXRtYXNrKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICAgICByZXR1cm4gZGVmYXVsdF9nYXRld2F5CisgICAgICAgIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBjaGVja19kZWZhdWx0X2dhdGV3YXlfYWN0aW9uCisgICAgIyAgCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBiZWdpbl9kZWZhdWx0X2dhdGV3YXlfY2hlY2tfYWN0aW9uKCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGlzIGFuIGFjdGlvbiBwcm9jIGZvciB0aGUgZGF0YS1kcml2ZW4gY29tbWFuZCBtb2R1bGUgdGhhdCBpcyB1c2VkCisgICAgICAgIGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGVuZF9kZWZhdWx0X2dhdGV3YXlfY2hlY2tfYWN0aW9uIHRvIGNoZWNrIGlmIGEKKyAgICAgICAgQ0xJIGNvbW1hbmQgcmVzdWx0cyBpbiBhbiBpbXByb3Blcmx5IGNvbmZpZ3VyZWQgZGVmYXVsdCBnYXRld2F5IHNldHRpbmcuCisgICAgICAgIEN1cnJlbnRseSB0aGUgYmFja2VuZCBjb2RlIHRoYXQgbWFwcyB0aGUgbmV0d29yay9pbnRlcmZhY2Ugc2V0dGluZ3MKKyAgICAgICAgZm9yIHRoZSBjb250cm9sbGVyIHRvIHRoZSAvZXRjL25ldHdvcmsvaW50ZXJmYWNlcyBmaWxlIHdpbGwgb25seQorICAgICAgICBhcHBseSB0aGUgZGVmYXVsdCBnYXRld2F5IHNldHRpbmcgaWYgaXQncyBvbiB0aGUgc2FtZSBzdWJuZXQgYXMgYW4KKyAgICAgICAgaW50ZXJmYWNlIHRoYXQncyBjb25maWd1cmVkIHdpdGggYSBzdGF0aWMgSVAgYWRkcmVzcy9uZXRtYXNrLgorICAgICAgICBTbyBpZiB0aGVyZSdzIG5vIGludGVyZmFjZSB0aGF0IG1hdGNoZXMgdGhlIGRlZmF1bHQgZ2F0ZXdheSAoZWl0aGVyCisgICAgICAgIGJlY2F1c2UgaXQncyBjb25maWd1cmVkIHRvIHVzZSBESENQIG9yIHRoZSBzdWJuZXQgZG9lc24ndCBtYXRjaCkKKyAgICAgICAgdGhlbiB0aGUgZGVmYXVsdCBnYXRld2F5IHNldHRpbmcgd2lsbCBiZSBpZ25vcmVkIGFuZCB3ZSB3YW50IHRvIHdhcm4KKyAgICAgICAgdGhlIHVzZXIgYWJvdXQgdGhlIG1pc2NvbmZpZ3VyYXRpb24uIFRoZSBjaGVjayBzaG91bGQgYmUgcGVyZm9ybWVkCisgICAgICAgIG9uIGFueSBjb25maWd1cmF0aW9uIGNoYW5nZSB0aGF0IGNvdWxkIGFmZmVjdCB0aGlzIGNoZWNrLiBUaGlzIGluY2x1ZGVzOgorICAgICAgICAKKyAgICAgICAgMSkgc2V0dGluZyB0aGUgZGVmYXVsdCBnYXRld2F5CisgICAgICAgIDIpIHNldHRpbmcgdGhlIG1vZGUgb2YgYW4gaW50ZXJmYWNlIHRvIERIQ1AKKyAgICAgICAgMykgc2V0dGluZy9yZXNldHRpbmcgdGhlIGlwL25ldG1hc2sgb2YgYW4gaW50ZXJmYWNlCisgICAgICAgIDQpIGRlbGV0aW5nIGFuIGludGVyZmFjZQorICAgICAgICAKKyAgICAgICAgV2Ugb25seSB3YW50IHRvIGVtaXQgdGhlIHdhcm5pbmcgaWYgdGhlIGRlZmF1bHQgZ2F0ZXdheSB3YXMgcHJldmlvdXNseQorICAgICAgICBub3QgbWlzY29uZmlndXJlZCBhbmQgdGhlIGN1cnJlbnQgY29tbWFuZCByZXN1bHRlZCBpbiBhIG1pc2NvbmZpZ3VyYXRpb24sCisgICAgICAgIHNvIHdlIHdhbnQgdG8gY2hlY2sgZm9yIGEgbWlzY29uZmlndXJhdGlvbiBiZWZvcmUgYXBwbHlpbmcgdGhlIGNvbW1hbmQKKyAgICAgICAgYW5kIHRoZW4gY2hlY2sgYWdhaW4gYWZ0ZXIgdGhlIHNldHRpbmdzIGhhdmUgYmVlbiB1cGRhdGVkLiBUaGUKKyAgICAgICAgYmVnaW5fZGVmYXVsdF9nYXRld2F5X2NoZWNrX2FjdGlvbiBpcyB0aGUgYWN0aW9uIHRoYXQgaXMgcGVyZm9ybWVkIGJlZm9yZQorICAgICAgICB0aGUgc2V0dGluZ3MgYXJlIHVwZGF0ZWQgYW5kIHRoZSBjb3JyZXNwb25kaW5nIGVuZF9kZWZhdWx0X2dhdGV3YXlfY2hlY2tfYWN0aW9uCisgICAgICAgIGFjdGlvbiBpcyB0aGUgb25lIHRoYXQgaXMgcGVyZm9ybWVkIGFmdGVyIHRoZSBzZXR0aW5ncyBhcmUgdXBkYXRlZC4KKyAgICAgICAgCisgICAgICAgIExPT0shOiBJZGVhbGx5IHdlIHNob3VsZCBiZSBkb2luZyB0aGlzIGNoZWNrIGluIHRoZSBzZG5jb24gY29kZSBpbnN0ZWFkCisgICAgICAgIG9mIGhlcmUgaW4gdGhlIENMSSBjb2RlLiBUaGF0IHdheSB0aGUgd2FybmluZyB3b3VsZCBhbHNvIGJlIHJldHVybmVkCisgICAgICAgIGZvciBjbGllbnRzIHRoYXQgYXJlIGNoYW5naW5nIHRoZXNlIHNldHRpbmdzIGRpcmVjdGx5IHZpYSB0aGUgUkVTVAorICAgICAgICBBUEkgaW5zdGVhZCBvZiB2aWEgdGhlIENMSS4gQnV0IHRoZXJlIGlzbid0IGEgcmVhbGx5IGdvb2QgbWVjaGFuaXNtCisgICAgICAgIGN1cnJlbnRseSBmb3IgdGhlIFJFU1QgQVBJIHRvIHJldHVybiBhIHdhcm5pbmcgYnV0IHN0aWxsIGFwcGx5IHRoZQorICAgICAgICBjb25maWcgY2hhbmdlLgorICAgICAgICAiIiIKKyAgICAgICAgIyBTdGFzaCBhd2F5IGlmIHRoZSBnYXRld2F5IHNldHRpbmcgd2FzIGFscmVhZHkgbWlzY29uZmlndXJlZCBhdCB0aGUKKyAgICAgICAgIyBiZWdpbm5pbmcgb2YgdGhlIGN1cnJlbnQgY29tbWFuZC4gCisgICAgICAgICMgTE9PSyEgVGhpcyBpcyBhIGJpdCBrbHVkZ3kgdG8gc3Rhc2ggdGhpcyBhd2F5IGluIHRoZSBDTEkgb2JqZWN0LgorICAgICAgICAjIFdoZW4gdGhlIGNvbW1hbmQgbW9kdWxlIGFjdGlvbiBBUEkgaXMgY2hhbmdlZCB0byBhbGxvdyBhY2Nlc3MgdG8gdGhlCisgICAgICAgICMgY29udGV4dCwgdGhpcyBjb2RlIHNob3VsZCBiZSB1cGRhdGVkIHRvIHN0YXNoIHRoZSB2YWx1ZSBpbiB0aGUgY29udGV4dAorICAgICAgICAjIGluc3RlYWQgb2YgdGhlIENMSS4KKyAgICAgICAgY2xpLmJlZ2luX21pc2NvbmZpZ3VyZWRfZGVmYXVsdF9nYXRld2F5ID0gU0ROU2guZ2V0X21pc2NvbmZpZ3VyZWRfZGVmYXVsdF9nYXRld2F5KCkKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZW5kX2RlZmF1bHRfZ2F0ZXdheV9jaGVja19hY3Rpb24oKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgaXMgYW4gYWN0aW9uIHByb2MgZm9yIHRoZSBkYXRhLWRyaXZlbiBjb21tYW5kIG1vZHVsZSB0aGF0IGlzIHVzZWQKKyAgICAgICAgaW4gY29uanVuY3Rpb24gd2l0aCB0aGUgYmVnaW5fZGVmYXVsdF9nYXRld2F5X2NoZWNrX2FjdGlvbiB0byBjaGVjayBpZiBhCisgICAgICAgIENMSSBjb21tYW5kIHJlc3VsdHMgaW4gYW4gaW1wcm9wZXJseSBjb25maWd1cmVkIGRlZmF1bHQgZ2F0ZXdheSBzZXR0aW5nLgorICAgICAgICBDaGVjayB0aGUgZG9jIGNvbW1lbnRzIGZvciBiZWdpbl9kZWZhdWx0X2dhdGV3YXlfY2hlY2tfYWN0aW9uIGZvciBtb3JlCisgICAgICAgIGRldGFpbHMgYWJvdXQgaG93IHRoZSB0d28gYWN0aW9ucyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZC4KKyAgICAgICAgIiIiCisgICAgICAgIGVuZF9taXNjb25maWd1cmVkX2RlZmF1bHRfZ2F0ZXdheSA9IFNETlNoLmdldF9taXNjb25maWd1cmVkX2RlZmF1bHRfZ2F0ZXdheSgpCisgICAgICAgIGlmIChlbmRfbWlzY29uZmlndXJlZF9kZWZhdWx0X2dhdGV3YXkgYW5kCisgICAgICAgICAgICAoZW5kX21pc2NvbmZpZ3VyZWRfZGVmYXVsdF9nYXRld2F5ICE9IGNsaS5iZWdpbl9taXNjb25maWd1cmVkX2RlZmF1bHRfZ2F0ZXdheSkpOgorICAgICAgICAgICAgcmV0dXJuICAoJ1RoZSBjb250cm9sbGVyIGlzIGNvbmZpZ3VyZWQgd2l0aCBhIGRlZmF1bHQgZ2F0ZXdheSBzZXR0aW5nICglcyksIHRoYXRcbicKKyAgICAgICAgICAgICAgICAgICAgICdpcyBub3Qgb24gdGhlIHNhbWUgc3VibmV0IGFzIGFueSBvZiB0aGUgaW50ZXJmYWNlcyBjb25maWd1cmVkIHRvIHVzZSBhXG4nCisgICAgICAgICAgICAgICAgICAgICAnc3RhdGljIElQIGFkZHJlc3MuIFRoZSBkZWZhdWx0IGdhdGV3YXkgc2V0dGluZyB3aWxsIGJlIGlnbm9yZWQuJyAlCisgICAgICAgICAgICAgICAgICAgICBlbmRfbWlzY29uZmlndXJlZF9kZWZhdWx0X2dhdGV3YXkpCisgCisgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGxvYWRfdGltZV96b25lX2xpc3QKKyAgICAjICBVc2UgdGhlIHJlc3QgYXBpIHRvIGNvbGxlY3QgYWxsIHRoZSBrbm93biB0aW1lIHpvbmVzCisgICAgIworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgbG9hZF90aW1lX3pvbmVfbGlzdCgpOgorICAgICAgICBpZiBub3QgY2xpLnRpbWVfem9uZV9saXN0OgorICAgICAgICAgICAgdXJsID0gImh0dHA6Ly8lcy9yZXN0L3YxL3N5c3RlbS90aW1lem9uZXMvYWxsIiAlIGNsaS5jb250cm9sbGVyCisgICAgICAgICAgICBjbGkudGltZV96b25lX2xpc3QgPSBjbGkucmVzdF9zaW1wbGVfcmVxdWVzdF90b19kaWN0KHVybCkKKyAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgdGltZV96b25lX2NvbXBsZXRpb24KKyAgICAjCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiB0aW1lX3pvbmVfY29tcGxldGlvbih3b3JkcywgdGV4dCwgY29tcGxldGlvbnMpOgorICAgICAgICBTRE5TaC5sb2FkX3RpbWVfem9uZV9saXN0KCkKKyAgICAgICAgY29tcGxldGlvbl9kaWN0ID0ge30KKyAgICAgICAgdHpfY29tcGxldGlvbnMgPSBbXQorICAgICAgICBmb3IgdHogaW4gY2xpLnRpbWVfem9uZV9saXN0OgorICAgICAgICAgICAgaWYgdHoubG93ZXIoKS5zdGFydHN3aXRoKHRleHQubG93ZXIoKSk6CisgICAgICAgICAgICAgICAgdHpfY29tcGxldGlvbnMuYXBwZW5kKHR6KQorICAgICAgICAgICAgICAgIGZvciBpbmRleCBpbiByYW5nZShsZW4odGV4dCksIGxlbih0eikpOgorICAgICAgICAgICAgICAgICAgICBpZiB0eltpbmRleF0gPT0gJy8nOgorICAgICAgICAgICAgICAgICAgICAgICAgdHogPSB0els6aW5kZXgrMV0KKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgY29tcGxldGlvbl9kaWN0W3R6XSA9ICdUaW1lem9uZSBDaG9pY2UnCisgICAgICAgIAorICAgICAgICBpZiBsZW4oY29tcGxldGlvbl9kaWN0KSA+PSAxOgorICAgICAgICAgICAgY29tcGxldGlvbnMudXBkYXRlKGNvbXBsZXRpb25fZGljdCkKKyAgICAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgdGltZV96b25lX3ZhbGlkYXRpb24KKyAgICAjCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiB0aW1lX3pvbmVfdmFsaWRhdGlvbih0eXBlZGVmLCB2YWx1ZSk6CisgICAgICAgIFNETlNoLmxvYWRfdGltZV96b25lX2xpc3QoKQorICAgICAgICBpZiB2YWx1ZSBub3QgaW4gY2xpLnRpbWVfem9uZV9saXN0OgorICAgICAgICAgICAgcmFpc2UgZXJyb3IuQXJndW1lbnRWYWxpZGF0aW9uRXJyb3IoJ0ludmFsaWQgdGltZSB6b25lJykKKyAgICAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgY3BfY2xvY2sKKyAgICAjCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBjcF9jbG9jayh3b3JkcywgdGV4dCwgY29tcGxldGlvbl9jaGFyKToKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQuZG9fY29tbWFuZF9jb21wbGV0aW9uKHdvcmRzLCB0ZXh0KQorICAgICAgICAgICAgICAgIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBkb19jbG9jaworICAgICMKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIGRvX2Nsb2NrKHdvcmRzKToKKyAgICAgICAgcmV0dXJuIGNvbW1hbmQuZG9fY29tbWFuZChbJ2Nsb2NrJ10gKyB3b3JkcykKKyAgICAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fc2hvd19jbG9jaworICAgICMKKyAgICBkZWYgY3Bfc2hvd19jbG9jayhzZWxmLCB3b3JkcywgdGV4dCwgY29tcGxldGlvbl9jaGFyKToKKyAgICAgICAgaWYgbGVuKHdvcmRzKSA9PSAxIGFuZCAnZGV0YWlsJy5zdGFydHN3aXRoKHRleHQubG93ZXIoKSk6CisgICAgICAgICAgICByZXR1cm4gWydkZXRhaWwnXQorICAgIAorICAgIAorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZ2V0X2Nsb2NrX3N0cmluZyh0aW1lX2luZm8sIGRldGFpbCA9IE5vbmUpOgorICAgICAgICAjIFRoZSB0eiBpdGVtIGNvbnRhaW5zIHRoZSBhYmJyZXZpYXRlZCB0aW1lIHpvbmUgc3RyaW5nIChlLmcuIFBTVCwgRVNUKQorICAgICAgICAjIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gdGhlIGZ1bGwgdGltZSB6b25lIHN0cmluZyAoZS5nLiBBbWVyaWNhL0xvc19BbmdlbGVzKQorICAgICAgICAjIHdoaWNoIHdlIGdldCBmcm9tIHRoZSBjb250cm9sbGVyLW5vZGUgb2JqZWN0IGJlbG93IHdoZW4gd2UncmUgc2hvd2luZworICAgICAgICAjIGRldGFpbCBpbmZvLgorICAgICAgICB0eiA9IHRpbWVfaW5mb1sndHonXQorICAgICAgICBkZWwgdGltZV9pbmZvWyd0eiddCisgICAgICAgIGR0ID0gZGF0ZXRpbWUuZGF0ZXRpbWUoKip0aW1lX2luZm8pCisgICAgICAgIGlmIGRldGFpbDoKKyAgICAgICAgICAgIHRpbWVfaW5mb1sndHonXSA9IHR6CisgICAgICAgIAorICAgICAgICAjIEFyaXN0YS1zdHlsZSBmb3JtYXQKKyAgICAgICAgI3Nob3dfcmVzdWx0ID0gZHQuc3RyZnRpbWUoJyVjJykKKyAgICAgICAgCisgICAgICAgICMgQ2lzY28tc3R5bGUgZm9ybWF0CisgICAgICAgIGNsb2NrX3N0cmluZyA9IGR0LnN0cmZ0aW1lKCclSDolTTolUyAnKyB0eiArICcgJWEgJWIgJWQgJVknKQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIGNsb2NrX3N0cmluZworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGRvX3Nob3dfY2xvY2sKKyAgICAjCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBkb19zaG93X2Nsb2NrKHdvcmRzKToKKyAgICAgICAgc3ludGF4X2hlbHAgPSAiU3ludGF4OiBzaG93IGNsb2NrIFtkZXRhaWxdIgorICAgICAgICAKKyAgICAgICAgaWYgbGVuKHdvcmRzKSA9PSAwOgorICAgICAgICAgICAgZGV0YWlsID0gRmFsc2UKKyAgICAgICAgZWxpZiBsZW4od29yZHMpID09IDE6CisgICAgICAgICAgICBpZiBub3QgJ2RldGFpbCcuc3RhcnRzd2l0aCh3b3Jkc1swXS5sb3dlcigpKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc3ludGF4X2hlbHAKKyAgICAgICAgICAgIGRldGFpbCA9IFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiBzeW50YXhfaGVscAorCisgICAgICAgIHVybCA9ICJodHRwOi8vJXMvcmVzdC92MS9zeXN0ZW0vY2xvY2svbG9jYWwvIiAlIGNsaS5jb250cm9sbGVyCisgICAgICAgIHRpbWVfaW5mbyA9IGNsaS5yZXN0X3NpbXBsZV9yZXF1ZXN0X3RvX2RpY3QodXJsKQorICAgICAgICBjbG9ja19zdHJpbmcgPSBTRE5TaC5nZXRfY2xvY2tfc3RyaW5nKHRpbWVfaW5mbywgZGV0YWlsKQorICAgICAgICByZXR1cm4gY2xvY2tfc3RyaW5nCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgY3Bfc2hvd192bnMKKyAgICAjCisgICAgZGVmIGNwX3Nob3dfdm5zKHNlbGYsIHdvcmRzLCB0ZXh0LCBjb21wbGV0aW9uX2NoYXIpOgorICAgICAgICBpZiBsZW4od29yZHMpID09IDE6CisgICAgICAgICAgICByZXR1cm4gb2JqZWN0c19zdGFydGluZ193aXRoKCd2bnMtZGVmaW5pdGlvbicsIHRleHQpCisgICAgICAgIGVsaWYgbGVuKHdvcmRzKSA9PSAyOgorICAgICAgICAgICAgcmV0dXJuIFt4IGZvciB4IGluCisgICAgICAgICAgICAgICAgICAgIFsgJ2ludGVyZmFjZScsICdtYWMtYWRkcmVzcy10YWJsZScsICdpbnRlcmZhY2UtcnVsZXMnLCAgXAorICAgICAgICAgICAgICAgICAgICAgICAnYWNjZXNzLWxpc3RzJywgJ3J1bm5pbmctY29uZmlnJywgJ3N3aXRjaCcsICdmbG93JyBdCisgICAgICAgICAgICAgICAgICAgIGlmIHguc3RhcnRzd2l0aCh0ZXh0KV0KKyAgICAgICAgZWxpZiBsZW4od29yZHMpID09IDMgYW5kICdzd2l0Y2gnLnN0YXJ0c3dpdGgod29yZHNbMl0pOgorICAgICAgICAgICAgcmV0dXJuIG9iamVjdHNfc3RhcnRpbmdfd2l0aCgic3dpdGNoIiwgdGV4dCkKKyAgICAgICAgZWxpZiAobGVuKHdvcmRzKSA+PSAzKSBhbmQgKHdvcmRzWzJdID09ICdmbG93Jyk6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5jcF9zaG93X3Zuc19mbG93KHdvcmRzLCB0ZXh0KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoIjxjcj4iKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHNob3dfdm5zX2RlZmluaXRpb25fcnVubmluZ19jb25maWcKKyAgICAjIERpc3BsYXkgdGhlIHZucy1kZWZpbml0aW9uIC0tIHRoZSBpbnRlcmZhY2UgcnVsZXMgZm9yIHRoZSB2bnMuCisgICAgIworICAgIGRlZiBzaG93X3Zuc19kZWZpbml0aW9uX3J1bm5pbmdfY29uZmlnKHNlbGYsIGNvbmZpZywgdm5zX25hbWUsdGVuYW50PU5vbmUsaW5kZW50PTApOgorICAgICAgICBpZiB0ZW5hbnQ9PU5vbmUgYW5kIHZuc19uYW1lIT0nYWxsJzoKKyAgICAgICAgICAgIHZuc19pZD0nZGVmYXVsdHwnK3Zuc19uYW1lCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB2bnNfaWQ9dGVuYW50ICsnfCcrdm5zX25hbWUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdm5zID0gc2VsZi5nZXRfb2JqZWN0X2Zyb21fc3RvcmUoJ3Zucy1kZWZpbml0aW9uJywgdm5zX2lkKQorICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coJ25vIHZucyBuYW1lZCAlcycgJSB2bnNfbmFtZSkKKworICAgICAgICBjb25maWcuYXBwZW5kKCcgJyAqMippbmRlbnQgKyAidm5zLWRlZmluaXRpb24gJXNcbiIgJSB2bnNfbmFtZSkKKyAgICAgICAgcnVuX2NvbmZpZy5ydW5uaW5nX2NvbmZpZ192bnNfZGV0YWlscyhjb25maWcsIHZucywgaW5kZW50KzEpCisKKyAgICAgICAgdm5zX3J1bGVzID0gTm9uZQorICAgICAgICB0cnk6CisgICAgICAgICAgICB2bnNfcnVsZXMgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCd2bnMtaW50ZXJmYWNlLXJ1bGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndm5zJywgdm5zX2lkLCAiZXhhY3QiKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgcGFzcworICAgICAgICAKKyAgICAgICAgaWYgdm5zX3J1bGVzOgorICAgICAgICAgICAgcnVuX2NvbmZpZy5ydW5uaW5nX2NvbmZpZ192bnNfaWZfcnVsZShjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZuc19ydWxlcyxpbmRlbnQrMSkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBzaG93X3Zuc19ydW5uaW5nX2NvbmZpZworICAgICMgIEluIHRoZSBsYXJnZXIgJ3J1bm5pbmctY29uZmlnJyBmb3Igdm5zLCB0aGUgY29tcGxldGUgdm5zIHRhYmxlcyBhcmUgcmVhZAorICAgICMgIHNpbmNlIHRoZSBjb21wbGV0ZSAncnVubmluZy1jb25maWcnIHdpbGwgZGlzcGxheSBhbGwgdGhlIGRhdGEgZnJvbSB0aGUKKyAgICAjICBmaWVsZHMuICBIZXJlLCB0aGUgdGFibGVzIGFyZSBzZWFyY2hlZCBvbmx5IGZvciBzcGVjaWZpYyB2bnMgZW50cmllcy4KKyAgICAjCisgICAgIyAgVGhlIHByb2NlZHVyZSdzIG5hbWUgaXMgY2hvb3NlbiBjYXJlZnVsbHksIHNpbmNlIGl0cyBub3QgaW50ZW5kZWQgdG8KKyAgICAjICBwYXJ0IG9mIGFueSBvZiBzaG93IGNvbW1hbmQsIGNvbXBsZXRpb24sIG9yIGNvbW1hbmQgcHJvY2Vzc2luZworICAgICMKKyAgICBkZWYgc2hvd192bnNfcnVubmluZ19jb25maWcoc2VsZiwgdm5zX25hbWUsIHRlbmFudD1Ob25lLCBpbmRlbnQ9MCk6CisgICAgICAgIGNvbmZpZz1bXQorICAgICAgICBwcmVjb25maWc9WycgJyoyKmluZGVudCArInZucyAlc1xuIiAlIHZuc19uYW1lXQorICAgICAgICBpZiB0ZW5hbnQ9PU5vbmUgYW5kIHZuc19uYW1lIT0nYWxsJzoKKyAgICAgICAgICAgIHZuc19uYW1lPSdkZWZhdWx0fCcrdm5zX25hbWUKKyAgICAgICAgaWYgdGVuYW50IT1Ob25lOgorICAgICAgICAgICAgdm5zX25hbWU9dGVuYW50Kyd8Jyt2bnNfbmFtZQorICAgICAgICB0cnk6CisgICAgICAgICAgICBzZWxmLmdldF9vYmplY3RfZnJvbV9zdG9yZSgndm5zLWRlZmluaXRpb24nLCB2bnNfbmFtZSkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCdubyB2bnMgbmFtZWQgJXMnICUgdm5zX25hbWUpCisgICAgICAgIHZuc19hY2xzID0gW10KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdm5zX2FjbHMgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCd2bnMtYWNjZXNzLWxpc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2bnMnLCB2bnNfbmFtZSwgJ2V4YWN0JykKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBmb3IgYWNsIGluIHZuc19hY2xzOgorICAgICAgICAgICAgIyBub3RlIHVzZSBvZiBrZXkgaW5pdGlhbGl6ZWQgYWJvdmUKKworICAgICAgICAgICAgdm5zX2FjbF9lbnRyaWVzID0gTm9uZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHZuc19hY2xfZW50cmllcyA9IHNlbGYuZ2V0X3RhYmxlX2Zyb21fc3RvcmUoJ3Zucy1hY2Nlc3MtbGlzdC1lbnRyeScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndm5zLWFjY2Vzcy1saXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjbFsnaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleGFjdCcpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIHJ1bl9jb25maWcucnVubmluZ19jb25maWdfdm5zX2FjbChjb25maWcsIHZuc19uYW1lLCBhY2wsIHZuc19hY2xfZW50cmllcyxpbmRlbnQrMSkKKworICAgICAgICB2bnNfaW50ZXJmYWNlX2FjbCA9IE5vbmUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgdm5zX2ludGVyZmFjZV9hY2wgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCd2bnMtaW50ZXJmYWNlLWFjY2Vzcy1saXN0JykKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBmb3Igdm5zX2lmIGluIHJ1bl9jb25maWcucnVubmluZ19jb25maWdfYWN0aXZlX3Zuc19pbnRlcmZhY2VzKHZuc19uYW1lLCB2bnNfaW50ZXJmYWNlX2FjbCk6CisgICAgICAgICAgICBjb25maWcuYXBwZW5kKCcgJyAqMiooaW5kZW50KzEpICsgImludGVyZmFjZSAlc1xuIiAlIHZuc19pZikKKyAgICAgICAgICAgIHJ1bl9jb25maWcucnVubmluZ19jb25maWdfdm5zX2lmX2FuZF9hY2Nlc3NfZ3JvdXAoY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bnNfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm5zX2lmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bnNfaW50ZXJmYWNlX2FjbCxpbmRlbnQrMikKKyAgICAgICAgaWYgbGVuKGNvbmZpZykgPiAwOgorICAgICAgICAgICAgY29uZmlnID0gcHJlY29uZmlnICsgY29uZmlnCisgICAgICAgIHJldHVybiAnJy5qb2luKGNvbmZpZykKKworICAgICNnZW5lcmF0ZSB0ZW5hbnQgeHh4IHJ1bm5pbmcgY29uZmlnCisgICAgZGVmIHNob3dfdGVuYW50X3J1bm5pbmdfY29uZmlnKHNlbGYsIGNvbmZpZywgdGVuYW50X25hbWUpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgdGVuYW50cyA9IHNlbGYuZ2V0X29iamVjdF9mcm9tX3N0b3JlKCd0ZW5hbnQnLCB0ZW5hbnRfbmFtZSkKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygnbm8gdGVuYW50IG5hbWVkICVzJyAlIHRlbmFudF9uYW1lKQorICAgIAorICAgICAgICBjb25maWcuYXBwZW5kKCIhXG50ZW5hbnQgJXNcbiIgJSB0ZW5hbnRfbmFtZSkKKyAgICAgICAgcnVuX2NvbmZpZy5ydW5uaW5nX2NvbmZpZ190ZW5hbnRfZGV0YWlscyhjb25maWcsdGVuYW50cykKKworICAgICAgICB0cnk6CisgICAgICAgICAgICB2bnNlcyA9IHNlbGYuZ2V0X3RhYmxlX2Zyb21fc3RvcmUoJ3Zucy1kZWZpbml0aW9uJywndGVuYW50Jyx0ZW5hbnRfbmFtZSwiZXhhY3QiKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgdm5zZXMgPSB7fQorICAgICAgICAgICAgcGFzcworICAgICAgICB0cnk6CisgICAgICAgICAgICB2aXJ0dWFsX3JvdXRlcnMgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCd2aXJ0dWFscm91dGVyJywndGVuYW50JywgdGVuYW50X25hbWUsICJleGFjdCIpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgICAgICB2aXJ0dWFsX3JvdXRlcnMgPSB7fQorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGZvciB2bnMgaW4gdm5zZXM6CisgICAgICAgICAgICB2bnNfbmFtZT12bnNbJ3Zuc25hbWUnXQorICAgICAgICAgICAgc2VsZi5zaG93X3Zuc19kZWZpbml0aW9uX3J1bm5pbmdfY29uZmlnKGNvbmZpZywgdm5zX25hbWUsIHRlbmFudD10ZW5hbnRfbmFtZSxpbmRlbnQ9MSkKKyAgICAgICAgICAgIGNvbmZpZyArPSBzZWxmLnNob3dfdm5zX3J1bm5pbmdfY29uZmlnKHZuc19uYW1lLCB0ZW5hbnQ9dGVuYW50X25hbWUsaW5kZW50PTEpCisgICAgICAgICAgICAKKyAgICAgICAgZm9yIHZpcnR1YWxfcm91dGVyIGluIHZpcnR1YWxfcm91dGVyczoKKyAgICAgICAgICAgIHZpcnR1YWxfcm91dGVyX25hbWU9dmlydHVhbF9yb3V0ZXJbJ3ZybmFtZSddCisgICAgICAgICAgICB2aXJ0dWFsX3JvdXRlcl9pZD12aXJ0dWFsX3JvdXRlclsnaWQnXQorICAgICAgICAgICAgY29uZmlnLmFwcGVuZCgiICByb3V0ZXIgJXNcbiIgJSB2aXJ0dWFsX3JvdXRlcl9uYW1lKQorICAgICAgICAgICAgcnVuX2NvbmZpZy5ydW5uaW5nX2NvbmZpZ190ZW5hbnRfcm91dGVyX2RldGFpbHMoY29uZmlnLHZpcnR1YWxfcm91dGVyLGluZGVudD0xKQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHZyX2ludGVyZmFjZXMgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCd2aXJ0dWFscm91dGVyLWludGVyZmFjZScsJ3ZpcnR1YWwtcm91dGVyJywgdmlydHVhbF9yb3V0ZXJfaWQsICJleGFjdCIpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHZyX2ludGVyZmFjZXMgPSB7fQorICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHZyX3JvdXRlcyA9IHNlbGYuZ2V0X3RhYmxlX2Zyb21fc3RvcmUoJ3ZpcnR1YWxyb3V0ZXItcm91dGluZ3J1bGUnLCd2aXJ0dWFsLXJvdXRlcicsIHZpcnR1YWxfcm91dGVyX2lkLCAiZXhhY3QiKQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgICAgICAgICB2cl9yb3V0ZXMgPSB7fQorICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHZyX2d3cG9vbHMgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCd2aXJ0dWFscm91dGVyLWd3cG9vbCcsJ3ZpcnR1YWwtcm91dGVyJywgdmlydHVhbF9yb3V0ZXJfaWQsICJleGFjdCIpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICAgICAgICAgIHZyX2d3cG9vbHMgPSB7fQorICAgICAgICAgICAgcGFzcworCisgICAgICAgICAgICBmb3IgdnJfaW50ZXJmYWNlIGluIHZyX2ludGVyZmFjZXM6CisgICAgICAgICAgICAgICAgcnVuX2NvbmZpZy5ydW5uaW5nX2NvbmZpZ19yb3V0ZXJfaW50ZXJmYWNlX2RldGFpbHMoY29uZmlnLHZyX2ludGVyZmFjZSxpbmRlbnQ9MikKKyAgICAgICAgICAgIGZvciB2cl9yb3V0ZSBpbiB2cl9yb3V0ZXM6CisgICAgICAgICAgICAgICAgcnVuX2NvbmZpZy5ydW5uaW5nX2NvbmZpZ19yb3V0ZXJfcnVsZV9kZXRhaWxzKGNvbmZpZyx2cl9yb3V0ZSxpbmRlbnQ9MikKKyAgICAgICAgICAgIGZvciB2cl9nd3Bvb2wgaW4gdnJfZ3dwb29sczoKKyAgICAgICAgICAgICAgICBydW5fY29uZmlnLnJ1bm5pbmdfY29uZmlnX3JvdXRlcl9nd3Bvb2xfZGV0YWlscyhjb25maWcsdnJfZ3dwb29sLGluZGVudD0yKQorICAgICAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHN3aXRjaF9wb3J0X21hdGNoCisgICAgIyAgUmV0dXJuIFRydWUgd2hlbiB0aGUgcG9ydCBtYXRjaGVzIGEgcG9ydCBzcGVjaXJmaWNhdGlvbiAicGF0dGVybiIKKyAgICAjCisgICAgIyAgVGhlIHBvcnQgc3BlY2lmaWNhdGlvbiBvZiBhbiBpbnRlcmZhY2UgcnVsZSBpcyBhIGNvbW1hbmQgc2VwYXJhdGVkIGxpc3QsCisgICAgIyAgd2hpY2ggY2FuIGNvbnRhaW4gYSB0YWlsIG9mICItPGQ+Ii4gIFRoYXQgdGFpbCBkZXNjcmliZXMgYSByYW5nZS4KKyAgICAjICBXaXRoIGEgcG9ydCByYW5nZSwgZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZSAncG9ydCcgcGFyYW1ldGVyCisgICAgIyAgaXMgYSBtYXRjaC4KKyAgICAjCisgICAgZGVmIHN3aXRjaF9wb3J0X21hdGNoKHNlbGYsIHBvcnQsIHBhdHRlcm4pOgorICAgICAgICAjIFhYWCB2YWxpZGF0ZSBwb3J0IGlzIHNvbWV0aGluZyB3aGljaCBlbmRzIGluIGEgbnVtYmVyPworICAgICAgICBmb3IgZmllbGQgaW4gcGF0dGVybi5zcGxpdCgnLCcpOgorICAgICAgICAgICAgbSA9IHJlLm1hdGNoKHInXihbQS1aYS16MC05LV0qPykoXGQrKS0oXGQrKSQnLCBwYXR0ZXJuKQorICAgICAgICAgICAgaWYgbm90IG06CisgICAgICAgICAgICAgICAgaWYgZmllbGQgPT0gcG9ydDoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgcHJlZml4ID0gbS5ncm91cCgxKQorICAgICAgICAgICAgc3RhcnRwb3J0ID0gaW50KG0uZ3JvdXAoMikpCisgICAgICAgICAgICBlbmRwb3J0ID0gaW50KG0uZ3JvdXAoMykpCisgICAgICAgICAgICBpZiBub3QgcG9ydC5zdGFydHN3aXRoKHByZWZpeCk6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHRhaWwgPSBwb3J0W2xlbihwcmVmaXgpOl0KKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLkRJR0lUU19SRS5tYXRjaCh0YWlsKToKKyAgICAgICAgICAgICAgICBwcmludCBzZWxmLmVycm9yX21zZygicG9ydCBuYW1lIHRhaWwgJXMgbXVzdCBiZSBhbGwgZGlnaXRzIiAlIHRhaWwpCisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIG0gPSByZS5zZWFyY2gocicoXGQrKSQnLCBwb3J0KQorICAgICAgICAgICAgaWYgbm90IG06CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIHBvcnQgPSBtLmdyb3VwKDEpCisgICAgICAgICAgICBpZiBpbnQocG9ydCkgPj0gaW50KHN0YXJ0cG9ydCkgYW5kIGludChwb3J0KSA8PSBpbnQoZW5kcG9ydCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcHJpbnQgc2VsZi5lcnJvcl9tc2coInBvcnQgJXMgb3V0IG9mIHBvcnQtc3BlYyByYW5nZSAlcy0lcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwb3J0LCBzdGFydHBvcnQsIGVuZHBvcnQpKQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgY3Bfc2hvd19ldmVudF9oaXN0b3J5CisgICAgIyAgQ29tbWFuZCBjb21wbGV0aW9uIGZvciB0aGUgZm9sbG93aW5nIGNvbW1hbmQgdG8gc2VlCisgICAgIyAgbGFzdCA8bj4gZXZlbnRzIG9mIDxuYW1lPiBldmVudHMKKyAgICAjICBVc2VkIGluICJzaG93IGV2ZW50LWhpc3RvcnkgPG5hbWU+IFsgbGFzdCA8bj4gXSIKKyAgICAjCisgICAgZGVmIGNwX3Nob3dfZXZlbnRfaGlzdG9yeShzZWxmLCB3b3JkcywgdGV4dCwgY29tcGxldGlvbl9jaGFyKToKKyAgICAgICAgb3B0aW9ucyA9IFsnYXR0YWNobWVudC1wb2ludCcsIAorICAgICAgICAgICAgICAgICAgICdwYWNrZXQtaW4nLAorICAgICAgICAgICAgICAgICAgICd0b3BvbG9neS1saW5rJywKKyAgICAgICAgICAgICAgICAgICAndG9wb2xvZ3ktc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAndG9wb2xvZ3ktY2x1c3RlcicsCisgICAgICAgICAgICAgICAgICAgIyBBZGQgbW9yZSBldmVudCBoaXN0b3J5IG9wdGlvbnMgYWJvdmUgdGhpcyBsaW5lCisgICAgICAgICAgICAgICAgICAgIyBBZGQgdGhlIHNhbWUgaXRlbSBpbiBkb19zaG93X2V2ZW50X2hpc3RvcnkoKSBiZWxvdyBhbHNvCisgICAgICAgICAgICAgICAgICBdCisgICAgICAgIGNvbXBsZXRpb25faGVscCA9ICcnCisgICAgICAgIGZvciBvcCBpbiBvcHRpb25zOgorICAgICAgICAgICAgZXZfaGVscCA9ICclcyAgc2hvdyAlcyBldmVudHNcbicgJSAob3AsIG9wKQorICAgICAgICAgICAgY29tcGxldGlvbl9oZWxwID0gY29tcGxldGlvbl9oZWxwICsgZXZfaGVscAorCisgICAgICAgICMgc3ludGF4OiBzaG93IGV2ZW50LWhpc3RvcnkgPG5hbWU+IFsgbGFzdCA8bj4gXQorICAgICAgICBpZiAobGVuKHdvcmRzKSA9PSAxKSBhbmQgdGV4dD09Jyc6CisgICAgICAgICAgICBzZWxmLnByaW50X2NvbXBsZXRpb25faGVscChjb21wbGV0aW9uX2hlbHApCisgICAgICAgICAgICByZXR1cm4gb3B0aW9ucworICAgICAgICBlbGlmIChsZW4od29yZHMpID09IDEpOgorICAgICAgICAgICAgcmV0dXJuIFtvcCBmb3Igb3AgaW4gb3B0aW9ucyBpZiBvcC5zdGFydHN3aXRoKHRleHQpXQorICAgICAgICBlbGlmIChsZW4od29yZHMpID09IDIpOgorICAgICAgICAgICAgaWYgdGV4dCA9PSAnJzoKKyAgICAgICAgICAgICAgICBzZWxmLnByaW50X2NvbXBsZXRpb25faGVscCgibGFzdCAgU2hvdyBsYXN0ZXN0IDxuPiBldmVudHNcbiIgKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8Y3I+ICBFbnRlciIpCisgICAgICAgICAgICAgICAgcmV0dXJuIFsnbGFzdCcsICc8Y3I+J10KKyAgICAgICAgICAgIGVsaWYgImxhc3QiLnN0YXJ0c3dpdGgodGV4dCk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFsibGFzdCJdCisgICAgICAgIGVsaWYgKGxlbih3b3JkcykgPT0gMyk6CisgICAgICAgICAgICBzZWxmLnByaW50X2NvbXBsZXRpb25faGVscCgiPG51bWJlcj4gIEVudGVyIG51bWJlciBvZiBsYXRlc3QgZXZlbnRzIHRvIGRpc3BsYXkgKDEtMTAwMDApIikKKyAgICAgICAgICAgIHJldHVybiByYW5nZSgwLCAxMDAwMCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYucHJpbnRfY29tcGxldGlvbl9oZWxwKCc8Y3I+JykKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBkb19zaG93X2V2ZW50X2hpc3RvcnkKKyAgICAjCisgICAgIyBTaG93IHRoZSBldmVudCBoaXN0b3J5IG9mIHRoZSBzcGVjaWZpZWQgZXZlbnRzCisgICAgIyBTeW50YXg6IHNob3cgZXZlbnQtaGlzdG9yeSA8ZXZlbnQtaGlzdG9yeS1uYW1lPiBbbGFzdCA8Y291bnQ+XQorICAgICMgPGV2ZW50LWhpc3RvcnktbmFtZT4gaXMgd29yZHNbMF0sIDxjb3VudD4gaXMgd29yZHNbMl0KKyAgICAjCisgICAgZGVmIGRvX3Nob3dfZXZlbnRfaGlzdG9yeShzZWxmLCB3b3Jkcyk6CisgICAgICAgIHNlbGYuZGVidWdfbXNnKCJkby1zaG93LWV2ZW50LWhpc3Rvcnkgd29yZHM6ICVzIiAlIHdvcmRzKQorCisgICAgICAgICMgQ2hlY2sgc3ludGF4IG9mIHRoZSBjb21tYW5kCisgICAgICAgIHN5bnRheCA9IHNlbGYuc3ludGF4X21zZygnc2hvdyBldmVudC1oaXN0b3J5IDxuYW1lPiBbIGxhc3QgPG4+IF0nKQorICAgICAgICBvcHRpb25zID0gWydhdHRhY2htZW50LXBvaW50JywgCisgICAgICAgICAgICAgICAgICAgJ3BhY2tldC1pbicsCisgICAgICAgICAgICAgICAgICAgJ3RvcG9sb2d5LWxpbmsnLAorICAgICAgICAgICAgICAgICAgICd0b3BvbG9neS1zd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICd0b3BvbG9neS1jbHVzdGVyJywKKyAgICAgICAgICAgICAgICAgICAjIEFkZCBtb3JlIGV2ZW50IGhpc3Rvcnkgb3B0aW9ucyBhYm92ZSB0aGlzIGxpbmUKKyAgICAgICAgICAgICAgICAgICAjIEFkZCB0aGUgc2FtZSBpdGVtIGluIGRvX2NwX2V2ZW50X2hpc3RvcnkoKSBhYm92ZSBhbHNvCisgICAgICAgICAgICAgICAgICBdCisgICAgICAgIGlmICh3b3Jkc1swXSBub3QgaW4gb3B0aW9ucyk6CisgICAgICAgICAgICB5aWVsZCgiRXZlbnQgaGlzdG9yeSBuYW1lICVzIG5vdCBmb3VuZCIgJSB3b3Jkc1swXSkKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiAobGVuKHdvcmRzKSA+PSAzKSBhbmQgKHdvcmRzWzFdICE9ICdsYXN0Jyk6CisgICAgICAgICAgICB5aWVsZChzeW50YXgpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgaWYgKGxlbih3b3JkcykgPT0gMikgb3IgKGxlbih3b3JkcykgPiA0KToKKyAgICAgICAgICAgIHlpZWxkKHN5bnRheCkKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiAobGVuKHdvcmRzKSA+PSAzKSBhbmQgKG5vdCB3b3Jkc1syXS5pc2RpZ2l0KCkpOgorICAgICAgICAgICAgeWllbGQoc3ludGF4KQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmIChsZW4od29yZHMpID49IDMpIGFuZCAod29yZHNbMl0uaXNkaWdpdCgpKToKKyAgICAgICAgICAgIGNvdW50ID0gaW50KHdvcmRzWzJdKQorICAgICAgICAgICAgaWYgKGNvdW50IDwgMSkgb3IgKGNvdW50ID4gMTAwMDApOgorICAgICAgICAgICAgICAgIHlpZWxkKCJOdW1iZXIgb2YgZXZlbnRzIG11c3QgYmUgYmV0d2VlbiAxIGFuZCAxMDAwMCIpCisgICAgICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgbGFzdF9uX2NvdW50ID0gMTAyNCAjIGRlZmF1bHQKKyAgICAgICAgaWYgKGxlbih3b3JkcykgPj0gMyk6CisgICAgICAgICAgICBsYXN0X25fY291bnQgPSB3b3Jkc1syXQorICAgICAgICBldl9oaXN0X25hbWUgPSB3b3Jkc1swXQorICAgICAgICBldl9oaXN0X2ZpZWxkX25hbWUgPSAnZXYtaGlzdC0nICsgZXZfaGlzdF9uYW1lCisgICAgICAgIHVybCA9ICdodHRwOi8vJXMvcmVzdC92MS9ldmVudC1oaXN0b3J5LyVzLyVzJyAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc2VsZi5jb250cm9sbGVyLCBldl9oaXN0X25hbWUsIGxhc3Rfbl9jb3VudCkKKyAgICAgICAgZXZfaGlzdCA9IHNlbGYucmVzdF9zaW1wbGVfcmVxdWVzdF90b19kaWN0KHVybCkKKyAgICAgICAgI2V2X2hpc3QgLSBqc29uLmR1bXBzKGV2X2hpc3QpCisgICAgICAgIGV2ZW50cyA9IGV2X2hpc3RbJ2V2ZW50cyddCisgICAgICAgIHRhYmxlRGF0YSA9IFtdCisgICAgICAgIGZvciBldiBpbiBldmVudHM6CisgICAgICAgICAgICBpbmZvICAgICAgPSBldlsnaW5mbyddCisgICAgICAgICAgICBiYXNlX2luZm8gPSBldlsnYmFzZV9pbmZvJ10KKyAgICAgICAgICAgIGluZm8udXBkYXRlKGJhc2VfaW5mbykKKyAgICAgICAgICAgIHRhYmxlRGF0YS5hcHBlbmQoaW5mbykKKyAgICAgICAgIyBQcmVwYXJlIHRoZSBkYXRlIGZvciBDTEkgZGlzcGxheQorICAgICAgICB0YWJsZURhdGEgPSBzZWxmLnBwLmZvcm1hdF90YWJsZSh0YWJsZURhdGEsIGV2X2hpc3RfZmllbGRfbmFtZSkKKyAgICAgICAgeWllbGQoIlxuIikKKyAgICAgICAgeWllbGQodGFibGVEYXRhKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgY3Bfc2hvd192bnMKKyAgICAjICBDb21tYW5kIGNvbXBsZXRpb24gZm9yIHRoZSBmb2xsb3dpbmcgY29tbWFuZAorICAgICMgIFVzZWQgaW4gInNob3cgdm5zIHsgPHZucy1uYW1lPiB8IGFsbCB9IGZsb3cgWyBicmllZiB8IGZ1bGwtZGV0YWlsIHwgZGV0YWlsIHwgc3VtbWFyeSBdCisgICAgIworICAgIGRlZiBjcF9zaG93X3Zuc19mbG93KHNlbGYsIHdvcmRzLCB0ZXh0LCBjb21wbGV0aW9uX2NoYXIpOgorICAgICAgICBjbWQxID0gJ2JyaWVmICAgICAgICBzaG93IGZsb3cgaW5mb3JtYXRpb24gaW4gYnJpZWYgZm9ybWF0JworICAgICAgICBjbWQyID0gJ2RldGFpbCAgICAgICBzaG93IGRldGFpbGVkIGZsb3cgaW5mb3JtYXRpb24nCisgICAgICAgIGNtZDMgPSAnZnVsbC1kZXRhaWwgIHNob3cgZnVsbCBkZXRhaWxzIG9mIGZsb3cgaW5mb3JtYXRpb24nCisgICAgICAgIGNtZDQgPSAnc3VtbWFyeSAgICAgIHNob3cgc3VtbWFyaXplZCBmbG93IGluZm9ybWF0aW9uJworCisgICAgICAgIHN5bnRheCA9IHNlbGYuc3ludGF4X21zZygnc2hvdyB2bnMgezx2bnMtbmFtZT4gfCBhbGx9IGZsb3cgWyBicmllZiB8IGRldGFpbCB8IGZ1bGwtZGV0YWlsIHwgc3VtbWFyeSBdJykKKyAgICAgICAgaWYgKGxlbih3b3JkcykgPT0gMykgYW5kIHRleHQ9PScnOgorICAgICAgICAgICAgc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoY21kMSsnXG4nK2NtZDIrJ1xuJytjbWQzKydcbicrY21kNCkKKyAgICAgICAgICAgIHJldHVybiBbJ2JyaWVmJywgJ2RldGFpbCcsICdmdWxsLWRldGFpbCcsICdzdW1tYXJ5JywgJzxjcj4nIF0KKyAgICAgICAgZWxpZiAobGVuKHdvcmRzKSA9PSAzKSBhbmQgKCdkZXRhaWwnLnN0YXJ0c3dpdGgodGV4dCkpOgorICAgICAgICAgICAgcmV0dXJuIFsnZGV0YWlsJ10KKyAgICAgICAgZWxpZiAobGVuKHdvcmRzKSA9PSAzKSBhbmQgKCdmdWxsLWRldGFpbCcuc3RhcnRzd2l0aCh0ZXh0KSk6CisgICAgICAgICAgICByZXR1cm4gWydmdWxsLWRldGFpbCddCisgICAgICAgIGVsaWYgKGxlbih3b3JkcykgPT0gMykgYW5kICgnc3VtbWFyeScuc3RhcnRzd2l0aCh0ZXh0KSk6CisgICAgICAgICAgICByZXR1cm4gWydzdW1tYXJ5J10KKyAgICAgICAgZWxpZiAobGVuKHdvcmRzKSA9PSAzKSBhbmQgKCdicmllZicuc3RhcnRzd2l0aCh0ZXh0KSk6CisgICAgICAgICAgICByZXR1cm4gWydicmllZiddCisgICAgICAgIGVsaWYgKGxlbih3b3JkcykgPT0gNCkgYW5kICh3b3Jkc1szXSBub3QgaW4gWydicmllZicsICdkZXRhaWwnLCAnZnVsbC1kZXRhaWwnLCAnc3VtbWFyeSddKToKKyAgICAgICAgICAgIHNlbGYucHJpbnRfY29tcGxldGlvbl9oZWxwKHN5bnRheCkKKyAgICAgICAgZWxpZiAobGVuKHdvcmRzKSA+PSAzKSBhbmQgKHRleHQgIT0gJycpOgorICAgICAgICAgICAgc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoc3ludGF4KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5wcmludF9jb21wbGV0aW9uX2hlbHAoJzxjcj4nKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHNob3dfdm5zX2Zsb3dfYW5ub3RhdGVkCisgICAgIworICAgICMgRm9yIGEgZ2l2ZW4gdm5zLW5hbWUsIHNob3cgYWxsIHRoZSBhY3RpdmUgZmxvd3MgaW4gdGhhdCB2bnMgCisgICAgIyBvcgorICAgICMgZm9yIHNob3cgYWN0aXZlLWZsb3dzIGluIGFsbCB2bnNlcywgY2F0ZWdvcml6ZWQgYnkgdm5zCisgICAgIyBVc2VkIGluICJzaG93IHZucyB7IDx2bnMtbmFtZT4gfCBhbGwgfSBmbG93IFsgYnJpZWYgfCBmdWxsLWRldGFpbCB8IGRldGFpbCB8IHN1bW1hcnkgXQorICAgICMgZmxvdyByZWNvcmRzIGFyZSBhbm5vdGF0ZWQgaW4gdGhlIHNkbnBsYXRmb3JtIHdpdGggdm5zIG5hbWUKKyAgICAjCisgICAgZGVmIHNob3dfdm5zX2Zsb3dfYW5ub3RhdGVkKHNlbGYsIHdvcmRzKToKKworICAgICAgICBzeW50YXggPSBzZWxmLnN5bnRheF9tc2coJ3Nob3cgdm5zIHs8dm5zLW5hbWU+IHwgYWxsfSBmbG93IFsgYnJpZWYgfCBkZXRhaWwgfCBmdWxsLWRldGFpbCB8c3VtbWFyeSBdJykKKyAgICAgICAgaWYgKGxlbih3b3JkcykgPT0gMykgYW5kICh3b3Jkc1syXSBub3QgaW4gWydicmllZicsICdkZXRhaWxzJywgJ2Z1bGwtZGV0YWlsJywgJ3N1bW1hcnknXSk6CisgICAgICAgICAgICBwcmludCBzeW50YXgKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGlmIChsZW4od29yZHMpID4gMyk6CisgICAgICAgICAgICBwcmludCBzeW50YXgKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICAKKyAgICAgICAgIyBhbGwgPSBGYWxzZSBpcyB0aGlzIHVzZWQgYW55d2hlcmUKKyAgICAgICAgCisgICAgICAgIHZucyA9IHdvcmRzWzBdCisgICAgICAgIAorICAgICAgICBvcHRpb24gPSAnbm9uZScKKyAgICAgICAgaWYgKGxlbih3b3JkcykgPT0gMyk6CisgICAgICAgICAgICBvcHRpb24gPSB3b3Jkc1syXSAgICAgICAgCisKKyAgICAgICAgIyBHZXQgYWxsIHRoZSBmbG93cyBpbiB0aGUgbmV0d29yaworICAgICAgICBhbm5vdGF0ZWRfZmxvd19kYXRhID0ge30KKyAgICAgICAgdXJsID0gJ2h0dHA6Ly8lcy9yZXN0L3YxL3Zucy9yZWFsdGltZXN0YXRzL2Zsb3cvJXMnICUgKHNlbGYuY29udHJvbGxlciwgdm5zKQorICAgICAgICBhbm5vdGF0ZWRfZmxvd19kYXRhID0gc2VsZi5yZXN0X3NpbXBsZV9yZXF1ZXN0X3RvX2RpY3QodXJsKQorICAgICAgICAjcHJpbnQgIkRhdGE9JXMiICUganNvbi5kdW1wcyhhbm5vdGF0ZWRfZmxvd19kYXRhLCBzb3J0X2tleXM9VHJ1ZSwgaW5kZW50PTQpCisgICAgICAgICMgYW5ub3RhdGVkX2Zsb3dfZGF0YSByZXNwb25zZSBpcyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDoKKyAgICAgICAgIyBEYXRhPXsKKyAgICAgICAgIyAgICJ2bnNDb3VudCI6IDEsIAorICAgICAgICAjICAgInZuc0Zsb3dNYXAiOiB7CisgICAgICAgICMgICAgICAgICAgICAidHdvIjogeworICAgICAgICAjICAgICAgICAgICAgICAgICJmbG93Q291bnQiOiAxMCwgCisgICAgICAgICMgICAgICAgICAgICAgICAgImZsb3dMaXN0IjogWworICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAiZHBpZCI6ICIwMDowMDowMDowMDowMDowMDowMDowZiIsIAorICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAiZmxvd0VudHJ5IjogeworICAgICAgICAjICAgICAgICAgICAgICAgICAgICAgICAgICAiYWN0aW9ucyI6IFsKKyAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisKKyAgICAgICAgIyB2bnNDb3VudCA9IGFubm90YXRlZF9mbG93X2RhdGFbInZuc0NvdW50Il0KKyAgICAgICAgdm5zRmxvd01hcCA9IGFubm90YXRlZF9mbG93X2RhdGFbInZuc0Zsb3dNYXAiXQorICAgICAgICB2bnNBZGRyZXNzU3BhY2VNYXAgPSBhbm5vdGF0ZWRfZmxvd19kYXRhWyJ2bnNBZGRyZXNzU3BhY2VNYXAiXQorICAgICAgICAKKyAgICAgICAgaWYgKG9wdGlvbiA9PSAiYnJpZWYiKToKKyAgICAgICAgICAgIHRhYmxlX2ZpZWxkX29yZGVyaW5nID0gInZuc19mbG93IgorICAgICAgICBlbGlmIChvcHRpb24gPT0gImRldGFpbCIpOgorICAgICAgICAgICAgdGFibGVfZmllbGRfb3JkZXJpbmcgPSAiZGV0YWlscyIKKyAgICAgICAgZWxpZiAob3B0aW9uID09ICJmdWxsLWRldGFpbCIpOgorICAgICAgICAgICAgdGFibGVfZmllbGRfb3JkZXJpbmcgPSAidW5kZWZpbmVkIiAjIHByaW50cyBldmVyeXRoaW5nIQorICAgICAgICBlbGlmIChvcHRpb24gPT0gInN1bW1hcnkiKToKKyAgICAgICAgICAgIHRhYmxlX2ZpZWxkX29yZGVyaW5nID0gInN1bW1hcnkiICAgICAgICAgICAgCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0YWJsZV9maWVsZF9vcmRlcmluZyA9ICJkZWZhdWx0IiAgICAgICAgCisgICAgICAgIAorICAgICAgICBzdW1tYXJ5VGFibGUgPSBbXSAjIHVzZWQgZm9yIGhvbGRpbmcgdGhlIGRhdGEgZm9yICJzdW1tYXJ5IiBvcHRpb24KKyAgICAgICAgZm9yIHZuc05hbWUgaW4gdm5zRmxvd01hcDoKKyAgICAgICAgICAgIGlmIChvcHRpb24gPT0gJ2JyaWVmJykgb3IgKG9wdGlvbiA9PSAic3VtbWFyeSIpOgorICAgICAgICAgICAgICAgIGZsb3dfdHVwbGVfbGlzdCA9IFtdCisgICAgICAgICAgICAgICAgYnJpZWZGbG93Q250ID0gMAorICAgICAgICAgICAgIyBUYWJsZSBEYXRhIHdpbGwgaG9sZCBhbGwgdGhlIGZsb3cgZW50cmllcywgb25lIGxpc3QgZWxlbWVudCBwZXIgcm93IG9mIG91dHB1dAorICAgICAgICAgICAgIyBJdCBpcyByZWluaXRpbGl6ZWQgZm9yIGVhY2ggVk5TICAgCisgICAgICAgICAgICB0YWJsZURhdGEgID0gW10KKyAgICAgICAgICAgIHZuc0Zsb3dDbnQgPSB2bnNGbG93TWFwW3Zuc05hbWVdWyJmbG93Q291bnQiXSAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICB2bnNGbG93TGlzdCA9IHZuc0Zsb3dNYXBbdm5zTmFtZV1bImZsb3dMaXN0Il0KKyAgICAgICAgICAgIGZvciB2bnNGbG93RW50cnkgaW4gdm5zRmxvd0xpc3Q6ICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZsb3dFbnRyeSA9IHZuc0Zsb3dFbnRyeVsiZmxvd0VudHJ5Il0KKyAgICAgICAgICAgICAgICBkcGlkICAgICAgPSB2bnNGbG93RW50cnlbImRwaWQiXQorICAgICAgICAgICAgICAgIGlmIChvcHRpb24gPT0gImJyaWVmIikgb3IgKG9wdGlvbiA9PSAic3VtbWFyeSIpOiAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgIHNyY19tYWMgICA9IGZsb3dFbnRyeVsnbWF0Y2gnXVsnZGF0YUxheWVyRGVzdGluYXRpb24nXQorICAgICAgICAgICAgICAgICAgICBkc3RfbWFjICAgPSBmbG93RW50cnlbJ21hdGNoJ11bJ2RhdGFMYXllclNvdXJjZSddCisgICAgICAgICAgICAgICAgICAgIHZsYW4gICAgICA9IGZsb3dFbnRyeVsnbWF0Y2gnXVsnZGF0YUxheWVyVmlydHVhbExhbiddCisgICAgICAgICAgICAgICAgICAgIGV0aGVyVHlwZSA9IGZsb3dFbnRyeVsnbWF0Y2gnXVsnZGF0YUxheWVyVHlwZSddCisgICAgICAgICAgICAgICAgICAgIGZsb3dMaXN0ICA9IFtdCisgICAgICAgICAgICAgICAgICAgIGZsb3dMaXN0LmFwcGVuZChzcmNfbWFjKQorICAgICAgICAgICAgICAgICAgICBmbG93TGlzdC5hcHBlbmQoZHN0X21hYykKKyAgICAgICAgICAgICAgICAgICAgZmxvd0xpc3QuYXBwZW5kKHZsYW4pCisgICAgICAgICAgICAgICAgICAgIGZsb3dMaXN0LmFwcGVuZChldGhlclR5cGUpCisgICAgICAgICAgICAgICAgICAgIGlmIGZsb3dMaXN0IGluIGZsb3dfdHVwbGVfbGlzdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICMgZHVwbGljYXRlIGZsb3cgKGR1ZSB0byBzYW1lIGZsb3cgZW50cnkgb24gbXVsdGlwbGUgc3dpdGNoZXMgYWxvbmcgdGhlIHBhdGgsIAorICAgICAgICAgICAgICAgICAgICAgICAgIyBza2lwIGl0IGlmIHRoZSBvcHRpb24gaWYgYnJpZWYgb3Igc3VtbWFyeQorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsb3dfdHVwbGVfbGlzdC5hcHBlbmQoZmxvd0xpc3QpCisgICAgICAgICAgICAgICAgICAgICAgICBicmllZkZsb3dDbnQgKz0gMQorICAgICAgICAgICAgICAgICNwcmludCAiRFBJRCA9ICVzIiAlIGRwaWQKKyAgICAgICAgICAgICAgICAjcHJpbnQgIiBOZXcgRGF0YSA9ICVzIiAlIGpzb24uZHVtcHMoZmxvd0VudHJ5LCBpbmRlbnQ9NCkKKyAgICAgICAgICAgICAgICBpZiAob3B0aW9uICE9ICJzdW1tYXJ5Iik6CisgICAgICAgICAgICAgICAgICAgIHRhYmxlRW50cnkgPSB7fQorICAgICAgICAgICAgICAgICAgICB0YWJsZUVudHJ5W2RwaWRdID0gW10KKyAgICAgICAgICAgICAgICAgICAgdGFibGVFbnRyeVtkcGlkXS5hcHBlbmQoZmxvd0VudHJ5KQorICAgICAgICAgICAgICAgICAgICB0YWJsZUVudHJ5ID0gc2VsZi5hZGRfZHBpZF90b19kYXRhKHRhYmxlRW50cnkpCisgICAgICAgICAgICAgICAgICAgIHRhYmxlRW50cnkgPSBzZWxmLmZpeF9yZWFsdGltZV9mbG93cyh0YWJsZUVudHJ5KQorICAgICAgICAgICAgICAgICAgICAjcHJpbnQgIlRhYmxlIEVudHJ5IDogJXMiICUganNvbi5kdW1wcyh0YWJsZUVudHJ5LCBpbmRlbnQ9NCkKKyAgICAgICAgICAgICAgICAgICAgdGFibGVEYXRhLmFwcGVuZCh0YWJsZUVudHJ5WzBdKQorICAgICAgICAgICAgI3ByaW50ICIqKiogVGFibGUgRGF0YTogJXMiICUganNvbi5kdW1wcyh0YWJsZURhdGFbMF0sIGluZGVudD00KQorICAgICAgICAgICAgI3ByaW50ZiB0ZW5hbnQgKyB2bnNuYW1lCisgICAgICAgICAgICBuYW1lcz12bnNOYW1lLnNwbGl0KCd8JykKKyAgICAgICAgICAgIHRlbmFudD1uYW1lc1swXQorICAgICAgICAgICAgdm5zPW5hbWVzWzFdCisgICAgICAgICAgICBpZiAob3B0aW9uID09ICJicmllZiIpOgorICAgICAgICAgICAgICAgIHlpZWxkKCJcblRlbmFudCAlcyBWTlMgJXMgKGFkZHJlc3Mtc3BhY2UgJXMpIGZsb3dzIChjb3VudDogJXMpIiAlICh0ZW5hbnQsIHZucywgdm5zQWRkcmVzc1NwYWNlTWFwW3Zuc05hbWVdLCBicmllZkZsb3dDbnQpKQorICAgICAgICAgICAgZWxpZiAob3B0aW9uICE9ICJzdW1tYXJ5Iik6CisgICAgICAgICAgICAgICAgeWllbGQoIlxuVGVuYW50ICVzIFZOUyAlcyAoYWRkcmVzcy1zcGFjZSAlcykgZmxvdyBlbnRyaWVzIChjb3VudDogJXMpIiAlICh0ZW5hbnQsIHZucywgdm5zQWRkcmVzc1NwYWNlTWFwW3Zuc05hbWVdLCB2bnNGbG93Q250KSkKKyAgICAgICAgICAgICMgUHJpbnQgZmxvdyBkYXRhIGZvciBvbmUgdm5zLCB1bmxlc3Mgb3B0aW9uIGlzIHN1bW1hcnkKKyAgICAgICAgICAgIGlmIChvcHRpb24gPT0gInN1bW1hcnkiKToKKyAgICAgICAgICAgICAgICBzdW1tYXJ5RGF0YSA9IGRpY3QoKQorIyAgICAgICAgICAgICAgICBzdW1tYXJ5RGF0YVsndGVuYW50J10gICAgICAgPXRlbmFudAorICAgICAgICAgICAgICAgIHN1bW1hcnlEYXRhWyJ2bnNOYW1lIl0gICAgICA9IHZucworICAgICAgICAgICAgICAgIHN1bW1hcnlEYXRhWyJmbG93RW50cnlDbnQiXSA9IHZuc0Zsb3dDbnQKKyAgICAgICAgICAgICAgICBzdW1tYXJ5RGF0YVsidm5zRmxvd0NudCJdICAgPSBicmllZkZsb3dDbnQKKyAgICAgICAgICAgICAgICBzdW1tYXJ5VGFibGUuYXBwZW5kKHN1bW1hcnlEYXRhKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB5aWVsZCgiXG4iKSAKKyAgICAgICAgICAgICAgICAjIHByaW50ICIqKiogVEQgPSAlcyIgJSB0YWJsZURhdGEKKyAgICAgICAgICAgICAgICB0YWJsZURhdGEgPSBzZWxmLnBwLmZvcm1hdF90YWJsZSh0YWJsZURhdGEsICJyZWFsdGltZV9mbG93IiwgdGFibGVfZmllbGRfb3JkZXJpbmcpCisgICAgICAgICAgICAgICAgeWllbGQodGFibGVEYXRhKQorICAgICAgICAgICAgICAgIAorICAgICAgICBpZiAob3B0aW9uID09ICJzdW1tYXJ5Iik6ICAgICAgICAgICAgCisgICAgICAgICAgICAjIHByaW50ICIqKiogU1QgJXMiICUgc3VtbWFyeVRhYmxlCisgICAgICAgICAgICB5aWVsZCgiXG4iKQorICAgICAgICAgICAgc3VtbWFyeVRhYmxlID0gc2VsZi5wcC5mb3JtYXRfdGFibGUoc3VtbWFyeVRhYmxlLCAicmVhbHRpbWVfZmxvdyIsIHRhYmxlX2ZpZWxkX29yZGVyaW5nKSAgICAgICAgICAgIAorICAgICAgICAgICAgeWllbGQoc3VtbWFyeVRhYmxlKQorICAgICAgICBwcmludCgiICIpIAorICAgICAgICByZXR1cm4KKyAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHNob3dfdm5zX3N3aXRjaF9wb3J0cworICAgICMgIEZvciBzb21lIHZucy1uYW1lLCBjb2xsZWN0IGFsbCB0aGUgaW50ZXJmYWNlcywgYW5kIGZyb20gdGhhdCwKKyAgICAjICBjb2xsZWN0IGFsbCB0aGUgYXR0YWNobWVudCBwb2ludHMuICBUaGUgb2JqZWN0aXZlIGhlcmUgaXMgdG8KKyAgICAjICBuYW1lIGFsbCB0aGUgc3dpdGNoJ3MgYW5kIHBvcnRzIGFzc29jaWF0ZWQgd2l0aCBhIHZucworICAgICMKKyAgICBkZWYgc2hvd192bnNfc3dpdGNoX3BvcnRzKHNlbGYsIHdvcmRzKToKKyAgICAgICAgaWYgbGVuKHdvcmRzKSA8IDE6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIHdvcmRzOiAgWyB2bnNfbmFtZSwgJ3N3aXRjaCcsIHN3aXRjaF9uYW1lIF0KKyAgICAgICAgdm5zX25hbWUgPSB3b3Jkc1swXQorICAgICAgICBzd2l0Y2ggPSBOb25lCisgICAgICAgIGlmIGxlbih3b3JkcykgPiAyOgorICAgICAgICAgICAgc3dpdGNoID0gY29udmVydF9hbGlhc190b19vYmplY3Rfa2V5KCdzd2l0Y2gnLCB3b3Jkc1syXSkKKyAgICAgICAgcG9ydCA9IE5vbmUKKyAgICAgICAgaWYgbGVuKHdvcmRzKSA+IDM6CisgICAgICAgICAgICBwb3J0ID0gd29yZHNbM10KKworICAgICAgICB2bnNfaW50ZXJmYWNlX2tleSA9IG1pLnBrKCd2bnMtaW50ZXJmYWNlJykKKyAgICAgICAgaWYgdm5zX25hbWUgPT0gJ2FsbCc6CisgICAgICAgICAgICB2bnNfaWZzID0gY3JlYXRlX29ial90eXBlX2RpY3QoJ3Zucy1pbnRlcmZhY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZuc19pbnRlcmZhY2Vfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZCcpCisgICAgICAgICAgICB2bnNfcnVsZXMgPSBjcmVhdGVfb2JqX3R5cGVfZGljdCgndm5zLWludGVyZmFjZS1ydWxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pLnBrKCd2bnMtaW50ZXJmYWNlLXJ1bGUnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZCcsKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdm5zX2lmcyA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KCd2bnMtaW50ZXJmYWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bnNfaW50ZXJmYWNlX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndm5zJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bnNfbmFtZSkKKyAgICAgICAgICAgIHZuc19ydWxlcyA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KCd2bnMtaW50ZXJmYWNlLXJ1bGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWkucGsoJ3Zucy1pbnRlcmZhY2UtcnVsZScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZucycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bnNfbmFtZSkKKyAgICAgICAgaG9zdF9kYXBfZGljdCA9IHNlbGYuY3JlYXRlX2F0dGFjaG1lbnRfZGljdCgpCisKKyAgICAgICAgYnNwID0ge30gICMgX2JfdnMgX3Nfd2l0Y2ggX3Bfb3J0CisgICAgICAgIGZvciBpZnMgaW4gdm5zX2lmczoKKyAgICAgICAgICAgIGZpZWxkcyA9IGlmcy5zcGxpdCgnfCcpCisgICAgICAgICAgICAjIGFsbCB0aGVzZSBmaWVsZHMgbXVzdCBoYXZlIHR3byBwYXJ0cy4KKyAgICAgICAgICAgIGlmIGxlbihmaWVsZHMpICE9IDM6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICMgY2hvb3NlIGJldHdlZW4gc3dpdGNoIGJhc2VkIHJ1bGVzIGFuZCBtYWMvaXAgYmFzZWQgcnVsZXMKKyAgICAgICAgICAgIHJ1bGUgPSAnZGVmYXVsdCcKKyAgICAgICAgICAgIHZuc19uYW1lID0gdm5zX2lmc1tpZnNdWzBdWyd2bnMnXQorICAgICAgICAgICAgc3dpdGNoX3J1bGUgPSBOb25lCisgICAgICAgICAgICBpZiBmaWVsZHNbMV0gIT0gJ2RlZmF1bHQnOgorICAgICAgICAgICAgICAgIHJ1bGUgPSB2bnNfaWZzW2lmc11bMF1bJ3J1bGUnXQorICAgICAgICAgICAgICAgIGlmIG5vdCBydWxlIGluIHZuc19ydWxlczoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZl9ydWxlID0gdm5zX3J1bGVzW3J1bGVdWzBdCisgICAgICAgICAgICAgICAgaWYgJ3N3aXRjaCcgaW4gaWZfcnVsZToKKyAgICAgICAgICAgICAgICAgICAgc3dpdGNoX3J1bGUgPSBpZl9ydWxlWydzd2l0Y2gnXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZl9ydWxlID0geyAnbWFjJyA6ICdkZWZhdWx0TGllJyB9ICMgZm9yIGRlZmF1bHQgcnVsZXMKKworICAgICAgICAgICAgIyBUaGVyZSdzIHR3byBtYWpvciBjbGFzc2VzIG9mIHJ1bGVzOiBob3N0IGFuZCBzd2l0Y2gKKyAgICAgICAgICAgICMgVXNlIGV4aXN0YW5jZSBvZiBhICdzd2l0Y2gnIHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiB0aGUgdHdvLgorICAgICAgICAgICAgaWYgc3dpdGNoX3J1bGU6CisgICAgICAgICAgICAgICAgIyBpZl9ydWxlL3N3aXRjaCBhcmUgYm90aCBzZXQsIHBhcnQgYWZ0ZXIgdGhlICcvJyBpcyB0aGUgcG9ydAorICAgICAgICAgICAgICAgIGlmIGZpZWxkc1syXS5maW5kKCcvJykgPCAwOgorICAgICAgICAgICAgICAgICAgICAjIHNraXAgRXRoPG4+IGdlbmVyYWwgaW50ZXJmYWNlCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgICMgUHJlZml4IHRoaXMgcG9ydCB3aXRoIGEgcGx1cyBzaWduLCB3aGljaCB3aWxsIGJlIHJlY29nbml6ZWQKKyAgICAgICAgICAgICAgICAjIGluIHRoZSBwcmludGluZyBjb2RlIGFzIGFscmVhZHkgZGVzY3JpYmluZyBhbiBvcGVuZmxvdyBwb3J0IG5hbWUKKyAgICAgICAgICAgICAgICBwb3J0ID0gJysnICsgZmllbGRzWzJdLnNwbGl0KCcvJylbMV0KKyAgICAgICAgICAgICAgICB0ZW5hbnRfdm5zPXZuc19uYW1lLnNwbGl0KCd8JykKKyAgICAgICAgICAgICAgICB0ZW5hbnRfbmFtZT10ZW5hbnRfdm5zWzBdCisgICAgICAgICAgICAgICAgdm5zX3JlYWxfbmFtZT10ZW5hbnRfdm5zWzFdIAorICAgICAgICAgICAgICAgIGtleSA9ICIlc3wlc3wlc3wlcyIgJSAodGVuYW50X25hbWUsdm5zX3JlYWxfbmFtZSwgc3dpdGNoLCBwb3J0KQorCisgICAgICAgICAgICAgICAgaWYgbm90IGtleSBpbiBic3A6CisgICAgICAgICAgICAgICAgICAgIGJzcFtrZXldID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZW5hbnQnICAgICAgOiB0ZW5hbnRfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAndm5zJyAgICAgICAgIDogdm5zX3JlYWxfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3dpdGNoJyAgICAgIDogc3dpdGNoX3J1bGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcnQnICAgICAgICA6IHBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlYXNvbicgICAgICA6IFsiUnVsZTolcyIgJSBydWxlLnNwbGl0KCd8JylbLTFdLCBmaWVsZHNbMV1dLAorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcGFzcyAjIHNob3VsZCBvbmx5IGJlIG9uZS4KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgIyB0aGUgc2Vjb25kIHBhcnQgKGZpZWxkc1sxXSkgaXMgdGhlIGludGVyZmFjZS1sb25nIG5hbWUsCisgICAgICAgICAgICAgICAgaXRlbXMgPSBmaWVsZHNbMl0uc3BsaXQoJy8nKQorICAgICAgICAgICAgICAgIGlmIGxlbihpdGVtcykgPT0gMToKKyAgICAgICAgICAgICAgICAgICAgaWYgaXRlbXNbMF0uc3RhcnRzd2l0aCgnVkV0aCcpOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90ICdtYWMnIGluIHJ1bGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgICAgIG1hYyA9IGlmX3J1bGVbJ21hYyddCisgICAgICAgICAgICAgICAgICAgIGVsaWYgaXRlbXNbMF0uc3RhcnRzd2l0aCgnRXRoJyk6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRlYnVnX21zZygnc2hvdWxkIGhhdmUgYmVlbiBhIHN3aXRjaCBpbiBpZl9ydWxlJykKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRlYnVnX21zZygnaXRlbSBsZW5ndGggb2YgMScpCisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG1hYyA9IGl0ZW1zWzFdCisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCByZS5tYXRjaChyJ14oKFtBLUZhLWZcZF0pezJ9Oj8pezV9W0EtRmEtZlxkXXsyfSQnLCBtYWMpOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ05vdCBhIG1hYyBhZGRyZXNzOiAlcycgJSBtYWMKKyAgICAgICAgICAgICAgICAjIGN1cnJlbnRseSBqdXN0IHVzZSB0aGUgbWFjIHRvIGZpbmQgdGhlIGF0dGFjaG1lbnQgcG9pbnRzLgorICAgICAgICAgICAgICAgIGlmIG1hYyBpbiBob3N0X2RhcF9kaWN0OgorICAgICAgICAgICAgICAgICAgICBmb3IgYXR0YWNobWVudF9wb2ludCBpbiBob3N0X2RhcF9kaWN0W21hY106CisgICAgICAgICAgICAgICAgICAgICAgICAjIGlmIHN3aXRjaCBpcyBuYW1lZCwgc2tpcCBhbnkgd2hpY2ggZG9uJ3QgbWF0Y2gKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHN3aXRjaCBhbmQgYXR0YWNobWVudF9wb2ludFsnc3dpdGNoJ10gIT0gc3dpdGNoOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBwb3J0IGFuZCBhdHRhY2htZW50X3BvaW50WydpbmdyZXNzLXBvcnQnXSAhPSBwb3J0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICAgICAgICAgIHRlbmFudF92bnM9dm5zX25hbWUuc3BsaXQoJ3wnKQorICAgICAgICAgICAgICAgICAgICAgICAgdGVuYW50X25hbWU9dGVuYW50X3Zuc1swXQorICAgICAgICAgICAgICAgICAgICAgICAgdm5zX3JlYWxfbmFtZT10ZW5hbnRfdm5zWzFdIAorICAgICAgICAgICAgICAgICAgICAgICAga2V5ID0gIiVzfCVzfCVzfCVzIiAlICh0ZW5hbnRfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm5zX3JlYWxfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudF9wb2ludFsnc3dpdGNoJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF0dGFjaG1lbnRfcG9pbnRbJ2luZ3Jlc3MtcG9ydCddKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGtleSBpbiBic3A6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnNwW2tleV0gPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGVuYW50JyA6IHRlbmFudF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZucycgICAgOiB2bnNfcmVhbF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N3aXRjaCcgOiBhdHRhY2htZW50X3BvaW50Wydzd2l0Y2gnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwb3J0JyAgIDogdXRpZi50cnlfaW50KGF0dGFjaG1lbnRfcG9pbnRbJ2luZ3Jlc3MtcG9ydCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWFzb24nIDogWyJSdWxlOiVzIiAlIHJ1bGUuc3BsaXQoJ3wnKVstMV0sIG1hY10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hcHBlbmRfd2hlbl9taXNzaW5nKGJzcFtrZXldWydyZWFzb24nXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiUnVsZTolcyIgJSBydWxlLnNwbGl0KCd8JylbLTFdKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXBwZW5kX3doZW5fbWlzc2luZyhic3Bba2V5XVsncmVhc29uJ10sIG1hYykKKworICAgICAgICBzb3J0ID0gW2JzcFt4XSBmb3IgeCBpbiBzb3J0ZWQoYnNwLmtleXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtcD1sYW1iZGEgYSxiOiBjbXAodXRpZi50cnlfaW50KGEuc3BsaXQoJ3wnKVsyXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWYudHJ5X2ludChiLnNwbGl0KCd8JylbMl0pKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGEuc3BsaXQoJ3wnKVsxXSA9PSBiLnNwbGl0KCd8JylbMV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGNtcChiLnNwbGl0KCd8JylbMV0sYS5zcGxpdCgnfCcpWzFdKSldCisKKyAgICAgICAgcmV0dXJuIHNlbGYuZGlzcGxheV9vYmpfdHlwZV9yb3dzKCd2bnMtc3dpdGNoLXBvcnRzJywgc29ydCkKKworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHNob3dfc3dpdGNoX3BvcnRzX3ZucworICAgICMKKyAgICBkZWYgc2hvd19zd2l0Y2hfcG9ydHNfdm5zKHNlbGYsIHdvcmRzKToKKyAgICAgICAgc3dpdGNoID0gTm9uZQorICAgICAgICBpZiBsZW4od29yZHMpID4gMSBhbmQgd29yZHNbMF0gIT0gJ2FsbCc6CisgICAgICAgICAgICBzd2l0Y2ggPSB3b3Jkc1swXQorICAgICAgICAgICAgIworICAgICAgICAgICAgIyBzd2l0Y2ggYWxpYXMgY29udmVyc2lvbgorICAgICAgICAgICAgdmFsdWUgPSBhbGlhc19sb29rdXAoJ3N3aXRjaC1hbGlhcycsIHN3aXRjaCkKKyAgICAgICAgICAgIGlmIHZhbHVlOgorICAgICAgICAgICAgICAgIHN3aXRjaCA9IHZhbHVlCisKKyAgICAgICAgIworICAgICAgICAjIGRpY3Rpb25hcnkgZnJvbSB0aGUgdm5zIHNpZGUsIGluZGV4ZWQgYnkgaG9zdC4KKyAgICAgICAgdm5zX2lmc19kaWN0ID0gY3JlYXRlX29ial90eXBlX2RpY3QoJ3Zucy1pbnRlcmZhY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaS5waygndm5zLWludGVyZmFjZScpKQorICAgICAgICAjCisgICAgICAgICMgZGljdGlvbmFyeSBvZiB0aGUgaW50ZXJmYWNlLXJ1bGVzLCBieSBydWxlCisgICAgICAgIHZuc19ydWxlcyA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KCd2bnMtaW50ZXJmYWNlLXJ1bGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaS5waygndm5zLWludGVyZmFjZS1ydWxlJykpCisgICAgICAgICMKKyAgICAgICAgIyBmcm9tIHRoZSBsaXN0IG9mIGhvc3RzLCBpZGVudGlmeSB0aGUgYXR0YWNobWVudCBwb2ludHMKKyAgICAgICAgaG9zdF9kYXBfZGljdCA9IHNlbGYuY3JlYXRlX2F0dGFjaG1lbnRfZGljdCgpCisKKyAgICAgICAgIworICAgICAgICAjIHRoZXJlIGNhbiBiZSBtdWx0aXBsZSBhdHRhY2htZW50IHBvaW50cyBmb3IgZWFjaCBvZiB0aGUKKyAgICAgICAgIyBob3N0cy4gIGl0ZXJhdGUgb3ZlciB0aGUgaG9zdHMsICBmaW5kIGFsbCB0aGUgYXR0YWNobWVudCBwb2ludHMsCisgICAgICAgICMgbWFuYWdlIGFuIGFzc29jaWF0aW9uIGZvciB0aGUgZW50cmllcworICAgICAgICBzcGIgPSB7fSAgIyBfc193aXRjaCBfcF9vcnQgX2JfdnMKKyAgICAgICAgZm9yIGlmcyBpbiB2bnNfaWZzX2RpY3Q6CisgICAgICAgICAgICBmaWVsZHMgPSB2bnNfaWZzX2RpY3RbaWZzXVswXVsnaWQnXS5zcGxpdCgnfCcpCisgICAgICAgICAgICAjIGFsbCB0aGVzZSBmaWVsZHMgbXVzdCBoYXZlIHR3byBwYXJ0cy4KKyAgICAgICAgICAgIGlmIGxlbihmaWVsZHMpICE9IDI6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICMgaWQgcGFydHMgYXJlIHZuc3xpbnRlcmZhY2UKKyAgICAgICAgICAgIHZuc19uYW1lID0gZmllbGRzWzBdCisKKyAgICAgICAgICAgICMgY2hvb3NlIGJldHdlZW4gc3dpdGNoIGJhc2VkIHJ1bGVzIGFuZCBtYWMvaXAgYmFzZWQgcnVsZXMKKyAgICAgICAgICAgIHJ1bGUgPSAnZGVmYXVsdCcKKworICAgICAgICAgICAgc3dpdGNoX3J1bGUgPSBOb25lCisgICAgICAgICAgICBtYWNfcnVsZSA9IE5vbmUKKyAgICAgICAgICAgIHJ1bGVfZmllbGRzID0gW3J1bGVdCisgICAgICAgICAgICBpZiB2bnNfbmFtZSA9PSAnZGVmYXVsdCc6CisgICAgICAgICAgICAgICAgaWYgZmllbGRzWzFdLmZpbmQoJy8nKSA+PSAwOgorICAgICAgICAgICAgICAgICAgICBtYWNfcnVsZSA9IGZpZWxkc1sxXS5zcGxpdCgnLycpWzFdCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIG5vdCAncnVsZScgaW4gdm5zX2lmc19kaWN0W2lmc11bMF06CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgcnVsZSA9IHZuc19pZnNfZGljdFtpZnNdWzBdWydydWxlJ10KKyAgICAgICAgICAgICAgICBydWxlX2ZpZWxkcyA9IHJ1bGUuc3BsaXQoJ3wnKQorICAgICAgICAgICAgICAgIGlmX3J1bGUgPSB2bnNfcnVsZXNbcnVsZV1bMF0KKyAgICAgICAgICAgICAgICBpZiAnc3dpdGNoJyBpbiBpZl9ydWxlOgorICAgICAgICAgICAgICAgICAgICBpZiBzd2l0Y2ggYW5kIGlmX3J1bGVbJ3N3aXRjaCddICE9IHN3aXRjaDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgIHN3aXRjaF9ydWxlID0gaWZfcnVsZVsnc3dpdGNoJ10gIyBzd2l0Y2ggbWF5IGJlIE5vbmUuCisgICAgICAgICAgICAgICAgZWxpZiAnbWFjJyBpbiBpZl9ydWxlOgorICAgICAgICAgICAgICAgICAgICBtYWNfcnVsZSA9IGlmX3J1bGVbJ21hYyddCisgICAgICAgICAgICAgICAgZWxpZiAnaXAtc3VibmV0JyBpbiBpZl9ydWxlOgorICAgICAgICAgICAgICAgICAgICBtYWNfcnVsZSA9IGlmX3J1bGVbJ2lwLXN1Ym5ldCddCisgICAgICAgICAgICAgICAgZWxpZiAndGFncycgaW4gaWZfcnVsZToKKyAgICAgICAgICAgICAgICAgICAgbWFjX3J1bGUgPSBpZl9ydWxlWyd0YWdzJ10KKyAgICAgICAgICAgICAgICBlbGlmICd2bGFucycgaW4gaWZfcnVsZToKKyAgICAgICAgICAgICAgICAgICAgbWFjX3J1bGUgPSBpZl9ydWxlWyd2bGFucyddCisgICAgICAgICAgICBpZiBtYWNfcnVsZToKKyAgICAgICAgICAgICAgICBpZiBub3QgbWFjX3J1bGUgaW4gaG9zdF9kYXBfZGljdDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5kZWJ1Z19tc2coIlVua25vd24gYXR0YWNobWVudCBwb2ludCBmb3IgJXMiICUgbWFjX3J1bGUpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICBmb3IgYXR0YWNobWVudF9wb2ludCBpbiBob3N0X2RhcF9kaWN0W21hY19ydWxlXToKKyAgICAgICAgICAgICAgICAgICAga2V5ID0gIiVzfCVzIiAlIChhdHRhY2htZW50X3BvaW50Wydzd2l0Y2gnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0YWNobWVudF9wb2ludFsnaW5ncmVzcy1wb3J0J10pCisgICAgICAgICAgICAgICAgICAgIGlmIHN3aXRjaCBhbmQgYXR0YWNobWVudF9wb2ludFsnc3dpdGNoJ10gIT0gc3dpdGNoOgorICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgICAgICAgICBpZiBub3Qga2V5IGluIHNwYjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNwYltrZXldID0geworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3dpdGNoJyA6IGF0dGFjaG1lbnRfcG9pbnRbJ3N3aXRjaCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9ydCcgICA6IHV0aWYudHJ5X2ludChhdHRhY2htZW50X3BvaW50WydpbmdyZXNzLXBvcnQnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2bnMnICAgIDoge3Zuc19uYW1lIDogMX0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWFzb24nIDogWyJSdWxlOiVzIiAlIHJ1bGVfZmllbGRzWy0xXSwgbWFjX3J1bGVdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHZuc19uYW1lIGluIHNwYltrZXldWyd2bnMnXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcGJba2V5XVsndm5zJ11bdm5zX25hbWVdICs9IDEKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BiW2tleV1bJ3ZucyddW3Zuc19uYW1lXSA9IDEKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYXBwZW5kX3doZW5fbWlzc2luZyhzcGJba2V5XVsncmVhc29uJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlJ1bGU6JXMiICUgcnVsZV9maWVsZHNbLTFdKQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5hcHBlbmRfd2hlbl9taXNzaW5nKHNwYltrZXldWydyZWFzb24nXSwgbWFjX3J1bGUpCisgICAgICAgICAgICBpZiBzd2l0Y2hfcnVsZToKKyAgICAgICAgICAgICAgICBpZiBmaWVsZHNbMV0uZmluZCgnLycpID49IDA6CisgICAgICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgIyBQcmVmaXggdGhpcyBwb3J0IHdpdGggYSBwbHVzIHNpZ24sIHdoaWNoIHdpbGwgYmUgcmVjb2duaXplZAorICAgICAgICAgICAgICAgICAgICAjIGluIHRoZSBwcmludGluZyBjb2RlIGFzIGFscmVhZHkgZGVzY3JpYmluZyBhbiBvcGVuZmxvdyBwb3J0IG5hbWUKKyAgICAgICAgICAgICAgICAgICAgcG9ydCA9ICcrJyArIGZpZWxkc1sxXS5zcGxpdCgnLycpWzFdCisgICAgICAgICAgICAgICAgICAgIGtleSA9ICIlc3wlcyIgJSAoc3dpdGNoX3J1bGUsIHBvcnQpCisKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGtleSBpbiBzcGI6CisgICAgICAgICAgICAgICAgICAgICAgICBzcGJba2V5XSA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N3aXRjaCcgOiBzd2l0Y2hfcnVsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcnQnICAgOiBwb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndm5zJyAgICA6IHt2bnNfbmFtZSA6IDF9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVhc29uJyA6IFsiUnVsZTolcyIgJSBydWxlX2ZpZWxkc1stMV0sIGZpZWxkc1sxXV0KKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworICAgICAgICBzb3J0ID0gW3NwYlt4XSBmb3IgeCBpbiBzb3J0ZWQoc3BiLmtleXMoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbXA9bGFtYmRhIGEsYjogY21wKHV0aWYudHJ5X2ludChhLnNwbGl0KCd8JylbMV0pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXRpZi50cnlfaW50KGIuc3BsaXQoJ3wnKVsxXSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGEuc3BsaXQoJ3wnKVswXSA9PSBiLnNwbGl0KCd8JylbMF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBjbXAoYi5zcGxpdCgnfCcpWzBdLGEuc3BsaXQoJ3wnKVswXSkpXQorCisgICAgICAgIHJldHVybiBzZWxmLmRpc3BsYXlfb2JqX3R5cGVfcm93cygnc3dpdGNoLXBvcnRzLXZucycsIHNvcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFtzcGJbeF0gZm9yIHggaW4gc29ydGVkKHNwYi5rZXlzKCkpXSkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBkb19zaG93X3ZucworICAgICMKKyAgICBkZWYgZG9fc2hvd192bnMoc2VsZiwgd29yZHMpOgorICAgICAgICBjaG9pY2VzID0gWydpbnRlcmZhY2UnLCAnbWFjLWFkZHJlc3MtdGFibGUnLAorICAgICAgICAgICAgICAgICAgICdpbnRlcmZhY2UtcnVsZXMnLCAnYWNjZXNzLWxpc3RzJywgJ3J1bm5pbmctY29uZmlnJywgJ3N3aXRjaCcsICdmbG93JyBdCisgICAgICAgIGlmIHdvcmRzID09IE5vbmUgb3IgbGVuKHdvcmRzKSA+IDI6CisgICAgICAgICAgICBpZiB3b3Jkc1sxXSBub3QgaW4gWydzd2l0Y2gnLCAnZmxvdyddOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnN5bnRheF9tc2coJ3Nob3cgdm5zIDx2bnMtbmFtZT4gWyAlcyBdICcgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyB8ICcuam9pbihjaG9pY2VzKSkKKyAgICAgICAgaWYgbGVuKHdvcmRzKSBpbiBbMywgNF06CisgICAgICAgICAgICBpZiB3b3Jkc1sxXSA9PSAnc3dpdGNoJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zaG93X3Zuc19zd2l0Y2hfcG9ydHMod29yZHMpCisgICAgICAgICAgICBlbGlmIHdvcmRzWzFdID09ICdmbG93JzoKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5zaG93X3Zuc19mbG93X2Fubm90YXRlZCh3b3JkcykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuc3ludGF4X21zZygnc2hvdyB2bnMgPHZucy1uYW1lPiBbICVzIF0gJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIHwgJy5qb2luKGNob2ljZXMpKQorICAgICAgICBlbGlmIGxlbih3b3JkcykgPT0gMjoKKyAgICAgICAgICAgICMgd29yZHNbMF0gb3VnaHQgdG8gYW4gZXhpc3Rpbmcgdm5zCisgICAgICAgICAgICAjIEFsbG93IHNob3cgdm5zIGFsbCBmbG93IFtkZXRhaWxdCisgICAgICAgICAgICBpZiAobm90IHNlbGYudm5zX2ZpbmRfbmFtZSh3b3Jkc1swXSkpIGFuZCAod29yZHNbMV0gIT0gJ2Zsb3cnKToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coInNob3cgdm5zICclcyc6IHZucyBOb3QgRm91bmQiICUgd29yZHNbMF0pCisKKyAgICAgICAgICAgIHZuc19rZXkgPSBzZWxmLnByZWZpeF9zZWFyY2hfa2V5KFt3b3Jkc1swXV0pCisgICAgICAgICAgICBzZWxlY3Rpb24gPSB1dGlmLmZ1bGxfd29yZF9mcm9tX2Nob2ljZXMod29yZHNbMV0sIGNob2ljZXMpCisgICAgICAgICAgICBpZiBub3Qgc2VsZWN0aW9uOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnN5bnRheF9tc2coJ3Nob3cgdm5zIDx2bnMtbmFtZT4gWyAlcyAnICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgfCAnLmpvaW4oY2hvaWNlcykpCisgICAgICAgICAgICBpZiBzZWxlY3Rpb24gPT0gJ2ludGVyZmFjZSc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZmluZF9hbmRfZGlzcGxheV92bnNfaW50ZXJmYWNlKHdvcmRzWzBdLCB3b3Jkc1syOl0pCisgICAgICAgICAgICBlbGlmIHNlbGVjdGlvbiA9PSAnbWFjLWFkZHJlc3MtdGFibGUnOgorICAgICAgICAgICAgICAgICMgdGhlIGlkIGZvciB0aGUgaG9zdC12bnMtaW50ZXJmYWNlIHRhYmxlIGhhcyB0aGUgaG9zdCBhcyB0aGUgJ3ByZWZpeCcsCisgICAgICAgICAgICAgICAgIyBwcmV2ZW50aW5nIHNlYXJjaGluZyBiYXNlZCBvbiB0aGUgcHJlZml4LiAgdGhlIHZucyBpcyBub3QgZXZlbiBhIGZvcmVpZ24KKyAgICAgICAgICAgICAgICAjIGtleSwgd2hpY2ggbWVhbnMgdGhlIGNvbXBsZXRlIHRhYmxlIG11c3QgYmUgcmVhZCwgdGhlbiB0aGUgdm5zIGFzc29jaWF0aW9uCisgICAgICAgICAgICAgICAgIyBtdXN0IGJlIGRldGVybWluZWQsIGFuZCB0aGVuIG1hdGNoZWQKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5kaXNwbGF5X3Zuc19tYWNfYWRkcmVzc190YWJsZSh3b3Jkc1swXSwgd29yZHNbMjpdKQorICAgICAgICAgICAgZWxpZiBzZWxlY3Rpb24gPT0gJ2ludGVyZmFjZS1ydWxlcyc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZG9fc2hvd19vYmplY3QoWyd2bnMtaW50ZXJmYWNlLXJ1bGUnLCB2bnNfa2V5XSwgIjxub19rZXk+IikKKyAgICAgICAgICAgIGVsaWYgc2VsZWN0aW9uID09ICdhY2Nlc3MtbGlzdHMnOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmRvX3Nob3dfb2JqZWN0KFsndm5zLWFjY2Vzcy1saXN0LWVudHJ5Jywgdm5zX2tleV0sICI8bm9fa2V5PiIpCisgICAgICAgICAgICBlbGlmIHNlbGVjdGlvbiA9PSAncnVubmluZy1jb25maWcnOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnNob3dfdm5zX3J1bm5pbmdfY29uZmlnKHdvcmRzWzBdKQorICAgICAgICAgICAgZWxpZiBzZWxlY3Rpb24gPT0gJ3N3aXRjaCc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuc2hvd192bnNfc3dpdGNoX3BvcnRzKHdvcmRzKQorICAgICAgICAgICAgZWxpZiBzZWxlY3Rpb24gPT0gJ2Zsb3cnOgorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnNob3dfdm5zX2Zsb3dfYW5ub3RhdGVkKHdvcmRzKQorICAgICAgICBlbGlmIGxlbih3b3JkcykgPT0gMToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLmRvX3Nob3dfb2JqZWN0KFsidm5zLWRlZmluaXRpb24iLCB3b3Jkc1swXV0pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5kb19zaG93X29iamVjdChbInZucy1kZWZpbml0aW9uIl0pCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fc2hvd192bnNfaW50ZXJmYWNlX3J1bGUKKyAgICAjICBkb19zaG93X29iamVjdCBpcyB1c2VkIHRvIGNvbnN0cnVjdCB0aGUgb3V0cHV0IGZvciB0aGUgdGFibGUgc2VhcmNoLgorICAgICMgIEhvd2V2ZXIsIHNpbmNlIGEgdm5zIHByZWZpeCBrZXkgc2VhcmNoIGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgdGFibGUsCisgICAgIyAgYW5kIHNpbmNlIGRvX3Nob3dfb2JqZWN0IGJlaGF2ZXMgZGlmZmVyZW50bHkgd2hlbiBkaXNwbGF5aW5nIHRhYmxlcworICAgICMgIGRlcGVuZGluZyBvbiB3aGV0aGVyIHRoZSB0YWJsZSBpcyBhIGtleSBzZWFyY2ggb3Igbm90LCB0aGUgJ3dpdGhfc2VhcmNoX2tleScKKyAgICAjICBwYXJhbWV0ZXIgaXMgc2V0IHRvICJ3aXRoX2tleSIgd2hlbiB0aGUgY2FsbGVyIGluY2x1ZGVkIGFuIGFkZGl0aW9uYWwKKyAgICAjICBwcmVmaXggZm9yIChrZXkpIGZvciB0aGUgcnVsZSwgYW5kIG90aGVyd2lzZSAnPG5vX2tleT4nIGlzIHVzZWQgd2hlbgorICAgICMgIHRoZSBjYWxsZXIgd2FudHMgdGhlIGNvbXBsZXRlIGludGVyZmFjZS1ydWxlIHRhYmxlIGZvciBhIHNpbmdsZSB2bnMKKyAgICAjICAod2hpY2ggb2J2aW91bHN5IGFsc28gaW1wbGllcyBhIGtleSBzZWFyY2ggZm9yICd2bnN8JyBwcmVmaWVkIHJ1bGVzLgorICAgICMKKyAgICBkZWYgZG9fc2hvd192bnNfaW50ZXJmYWNlX3J1bGUoc2VsZiwgd29yZHMpOgorICAgICAgICB3aXRoX3NlYXJjaF9rZXkgPSAiPG5vX2tleT4iCisgICAgICAgIGlmIHNlbGYudm5zX25hbWUoKSBpcyBOb25lOgorICAgICAgICAgICAgaWYgbGVuKHdvcmRzKSA+IDA6CisgICAgICAgICAgICAgICAgc2VhcmNoX29iamVjdCA9IFsidm5zLWludGVyZmFjZS1ydWxlIiwgd29yZHNbMF1dCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlYXJjaF9vYmplY3QgPSBbInZucy1pbnRlcmZhY2UtcnVsZSJdIAorICAgICAgICBlbGlmIGxlbih3b3JkcykgPiAwOgorICAgICAgICAgICAgd2l0aF9zZWFyY2hfa2V5ID0gJy0nLmpvaW4od29yZHMpCisgICAgICAgICAgICB3b3Jkcy5pbnNlcnQoMCwgc2VsZi52bnNfbmFtZSgpKQorICAgICAgICAgICAgc2VhcmNoX29iamVjdCA9IFsidm5zLWludGVyZmFjZS1ydWxlIiwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYudW5pcXVlX2tleV9mcm9tX25vbl91bmlxdWUod29yZHMpXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VhcmNoX29iamVjdCA9IFsidm5zLWludGVyZmFjZS1ydWxlIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5wcmVmaXhfc2VhcmNoX2tleShbc2VsZi52bnNfbmFtZSgpXSkgXSAKKyAgICAgICAgICAgIG9ial90eXBlID0gJ3Zucy1pbnRlcmZhY2UtcnVsZScKKworICAgICAgICAgICAgIyAtLS0gdGhpcyBvdWdodCB0byBiZSBwcm9tb3RlZCB0byBiZSB1c2VkIG1vcmUgLi4KKyAgICAgICAgICAgIHNfZGljdCA9IHt9CisgICAgICAgICAgICAjIGZvciBhbGwgZm9yZWlnbiBrZXlzIGluIHRoaXMgb2JqX3R5cGUKKyAgICAgICAgICAgIG1vZGVfZGljdCA9IHNlbGYubW9kZV9zdGFja190b19yZXN0X2RpY3Qoe30pCisKKyAgICAgICAgICAgICMgZm9yIGZrIGluIG1pLm9ial90eXBlX2ZvcmVpZ25fa2V5cyhvYmpfdHlwZSk6CisgICAgICAgICAgICBmb3Iga2YgaW4gbWkuY29tcG91bmRfa2V5X2ZpZWxkcyhvYmpfdHlwZSwgbWkucGsob2JqX3R5cGUpKToKKyAgICAgICAgICAgICAgICBpZiBtaS5pc19mb3JlaWduX2tleShvYmpfdHlwZSwga2YpOgorICAgICAgICAgICAgICAgICAgICAocmVmX290LCByZWZfZm4pID0gbWkuZm9yZWlnbl9rZXlfcmVmZXJlbmNlcyhvYmpfdHlwZSwga2YpCisgICAgICAgICAgICAgICAgICAgIGlmIHJlZl9vdCBpbiBtb2RlX2RpY3Q6CisgICAgICAgICAgICAgICAgICAgICAgICBzX2RpY3Rba2ZdID0gbW9kZV9kaWN0W3JlZl9vdF0KKworICAgICAgICAgICAgIyBmb3IgKG4sdikgaW4gc2VsZi5tb2RlX3N0YWNrX3RvX3Jlc3RfZGljdCh7fSkuaXRlbXMoKToKKyAgICAgICAgICAgICAgICAjIGZvciAoZmtfb3QsIGZrX2ZuKSBpbiBtaS5mb3JlaWduX2tleV94cmVmW25dW21pLnBrKG4pXToKKyAgICAgICAgICAgICAgICAgICAgIyBwcmludCBuLCBma19vdCwgZmtfZm4KKyAgICAgICAgICAgICAgICAgICAgIyBpZiBma19vdCA9PSBvYmpfdHlwZToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgc19kaWN0W2ZrX2ZuXSA9IHYKKyAgICAgICAgICAgIGVudHJpZXMgPSBzZWxmLnN0b3JlLnJlc3RfcXVlcnlfb2JqZWN0cyhvYmpfdHlwZSwgc19kaWN0KQorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZGlzcGxheV9vYmpfdHlwZV9yb3dzKG9ial90eXBlLCBlbnRyaWVzLCB3aXRoX3NlYXJjaF9rZXkpCisgICAgICAgIHJldHVybiBzZWxmLmRvX3Nob3dfb2JqZWN0KHNlYXJjaF9vYmplY3QsIHdpdGhfc2VhcmNoX2tleSkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBjcF9pc19hbGlhcworICAgICMgIFVzZWQgaW4gY3Bfbm8gdG8gZGV0ZXJtaW5lIGlmIHRoZSBwYXJ0aWN1bGFyIHJlcXVlc3QgaXMgYW4gYWxpYXMgY29tcGxldGlvbgorICAgICMKKyAgICBkZWYgY3BfaXNfYWxpYXMoc2VsZiwgd29yZHMsIHRleHQpOgorICAgICAgICBpZiBub3Qgc2VsZi5pbl9jb25maWdfc3VibW9kZSgpIG9yIGxlbih3b3JkcykgIT0gMjoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBvYmpfdHlwZSA9IHNlbGYuZ2V0X2N1cnJlbnRfbW9kZV9vYmpfdHlwZSgpCisgICAgICAgICMgTE9PSyEgcm9idjogVHdlYWtlZCB0aGlzIGZyb20gdGhlIGNvbW1lbnRlZCBvdXQgdmVyc2lvbiBiZWxvdworICAgICAgICByZXR1cm4gb2JqX3R5cGUgaW4gbWkuYWxpYXNfb2JqX3R5cGVfeHJlZgorIAorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNhc2NhZGVfZGVsZXRlCisgICAgIyAgRGVsZXRlIGludGVyaW9yIG9iamVjdHMnIHJvd3MgcmVsYXRlZCB2aWEgZm9yZWlnbiBrZXlzCisgICAgIworICAgIGRlZiBjYXNjYWRlX2RlbGV0ZShzZWxmLCBvYmpfdHlwZSwgaWRfdmFsdWUpOgorICAgICAgICBnbG9iYWwgbW9kaQorCisgICAgICAgIG9ial9rZXkgPSBtaS5wayhvYmpfdHlwZSkKKyAgICAgICAgaWYgb2JqX3R5cGUgaW4gbWkuZm9yZWlnbl9rZXlfeHJlZiBhbmQgXAorICAgICAgICAgICBvYmpfa2V5IGluIG1pLmZvcmVpZ25fa2V5X3hyZWZbb2JqX3R5cGVdOgorICAgICAgICAgICAgZm9yIChma19vYmpfdHlwZSwgZmtfbmFtZSkgaW4gbWkuZm9yZWlnbl9rZXlfeHJlZltvYmpfdHlwZV1bb2JqX2tleV06CisgICAgICAgICAgICAgICAgaWYgbWkuaXNfY2FzY2FkZV9kZWxldGVfZW5hYmxlZChma19vYmpfdHlwZSk6CisgICAgICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgIyBmaW5kIGFueSBhZmZlY3RlZCByb3dzCisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKGZrX29ial90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmtfbmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkX3ZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImV4YWN0IikKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuZGVidWcgb3Igc2VsZi5kZWJ1Z19iYWNrdHJhY2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSwgZmtfb2JqX3R5cGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcnMpCisgICAgICAgICAgICAgICAgICAgICAgICByb3dzID0gW10KKworICAgICAgICAgICAgICAgICAgICAjIGRldGVybWluZSB3aGV0aGVyIHRoZSBmb3JlaWduIGtleSBjYW4gaGF2ZSBhIG51bGwKKyAgICAgICAgICAgICAgICAgICAgIyB2YWx1ZSwgaW4gd2hpY2ggY2FzZSB0aGUgcm93IGRvZXNuJ3QgaGF2ZSB0byBiZSBkZWxldGVkLAorICAgICAgICAgICAgICAgICAgICAjIGp1c3QgdXBkYXRlZCB0aGUgZm9yZWlnbiBrZXkgdG8gYE5vbmUnLgorICAgICAgICAgICAgICAgICAgICBpZiBtaS5pc19mb3JjZV9kZWxldGVfZW5hYmxlZChma19vYmpfdHlwZSk6CisgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGVsaWYgbWkuaXNfbnVsbF9hbGxvd2VkKGZrX29ial90eXBlLCBma19uYW1lKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgPSBUcnVlCisKKyAgICAgICAgICAgICAgICAgICAga2V5ID0gbWkucGsoZmtfb2JqX3R5cGUpCisgICAgICAgICAgICAgICAgICAgIGZvciByb3cgaW4gcm93czoKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBkZWxldGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVzdF9kZWxldGVfb2JqZWN0KGZrX29ial90eXBlLCByb3dba2V5XSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOiAjIHVwZGF0ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnJlc3RfdXBkYXRlX29iamVjdChma19vYmpfdHlwZSwga2V5LCByb3dba2V5XSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgZmtfbmFtZSA6IE5vbmUgfSApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gTm9uZQorICAgICAgICAgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZrX29ial90eXBlICsgIiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKyByb3dba2V5XSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGVycm9yczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcnMpCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmRlYnVnX21zZygiY2FzY2FkZSBkZWxldGU6ICVzOiAlcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmtfb2JqX3R5cGUsICcsICcuam9pbihyb3dba2V5XS5zcGxpdCgnfCcpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBkZWxldGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jYXNjYWRlX2RlbGV0ZShma19vYmpfdHlwZSwgcm93W2tleV0pCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fbm8KKyAgICAjICBEZWxldGUgcm93cyBmcm9tIGEgdGFibGUsIG9yIHVwZGF0ZSBhIGZpZWxkLiAgRm9yIGZpZWxkcyB3aGljaAorICAgICMgIGhhdmUgZGVmYXVsdHMsICdubycgcmVmZXJ0cyB0aGUgZmllbGQgdG8gaXRzIGRlZmF1bHQgdmFsdWUuCisgICAgIworICAgIGRlZiBkb19ubyhzZWxmLCB3b3Jkcyk6CisgICAgICAgICMgZm9ybWF0IGlzIG5vIDwgb2JqX3R5cGUgPiA8IGlkID4KKyAgICAgICAgaWYgbm90IHNlbGYuaW5fY29uZmlnX21vZGUoKToKKyAgICAgICAgICAgIGlmIGxlbih3b3JkcykgPCAxIG9yIHdvcmRzWzBdICE9ICdkZWJ1Zyc6CisgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCInbm8nIGNvbW1hbmQgb25seSB2YWxpZCBpbiBjb25maWcgbW9kZSIpCisgICAgICAgIG9ial90eXBlID0gc2VsZi5nZXRfY3VycmVudF9tb2RlX29ial90eXBlKCkKKyAgICAgICAgb3B0aW9uID0gd29yZHNbMF0KKyAgICAgICAgIworICAgICAgICAjIG1hbmFnZSBkZWxldGlvbiBvZiBjb21wbGV0ZSByb3dzIGluIG9ial90eXBlcycKKyAgICAgICAgIworICAgICAgICBpZiBvcHRpb24gaW4gc2VsZi5vYmpfdHlwZXNfZm9yX2NvbmZpZ19tb2RlX3N0YXJ0aW5nX3dpdGgoKToKKyAgICAgICAgICAgIGlmIG5vdCBsZW4od29yZHMpID4gMToKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coIjxpZD4gbXVzdCBiZSBzcGVjaWZpZWQgZm9yIHRoZSBvYmplY3QgdG8gZGVsZXRlIikKKyAgICAgICAgICAgIGl0ZW0gPSBjb252ZXJ0X2FsaWFzX3RvX29iamVjdF9rZXkob3B0aW9uLCB3b3Jkc1sxXSkKKyAKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBzZWxmLnJlc3RfZGVsZXRlX29iamVjdChvcHRpb24sIGl0ZW0pCisgICAgICAgICAgICAgICAgZXJyb3JzID0gTm9uZQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICBlcnJvcnMgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlLCBvcHRpb24gKyAiICIgKyBpdGVtKQorICAgICAgICAgICAgIworICAgICAgICAgICAgIyBjYXNjYWRlIGRlbGV0ZT8KKyAgICAgICAgICAgIGlmIG5vdCBlcnJvcnM6CisgICAgICAgICAgICAgICAgc2VsZi5jYXNjYWRlX2RlbGV0ZShvcHRpb24sIGl0ZW0pCisgICAgICAgICMKKyAgICAgICAgIyBtYW5hZ2UgcmVtb3ZhbC9zZXQtdG8tZGVmYXVsdCBvZiB2YWx1ZXMgaW4gZmllbGRzIG9mIGFuIG9ial90eXBlCisgICAgICAgICMKKyAgICAgICAgZWxpZiBvcHRpb24gaW4gc2VsZi5maWVsZHNfZm9yX2N1cnJlbnRfc3VibW9kZV9zdGFydGluZ193aXRoKG9wdGlvbik6CisgICAgICAgICAgICAjCisgICAgICAgICAgICAjIHJlcGxhY2UgdGhlIG9ial90eXBlIHdpdGggdGhlIGFsaWFzIG9ial90eXBlIHdoZW4gZm9yCisgICAgICAgICAgICAjIGZpZWxkcyBjYWxsZWQgJ2FsaWFzJyB3aGVuIHRoZSBvYmpfdHlwZSBoYXMgb25lIGFsaWFzIAorICAgICAgICAgICAgaWYgb2JqX3R5cGUgaW4gbWkuYWxpYXNfb2JqX3R5cGVfeHJlZjoKKyAgICAgICAgICAgICAgICBhbGlhc2VzID0gbWkuYWxpYXNfb2JqX3R5cGVfeHJlZltvYmpfdHlwZV0KKyAgICAgICAgICAgICAgICBpZiBvcHRpb24gaW4gYWxpYXNlczoKKyAgICAgICAgICAgICAgICAgICAgb2JqX3R5cGUgPSBvcHRpb24KKyAgICAgICAgICAgICAgICBpZiBsZW4oYWxpYXNlcykgPT0gMSBhbmQgb3B0aW9uID09ICdhbGlhcyc6CisgICAgICAgICAgICAgICAgICAgIG9ial90eXBlID0gYWxpYXNlc1swXQorICAgICAgICAgICAgaWYgbGVuKGFsaWFzZXMpICE9IDE6CisgICAgICAgICAgICAgICAgcHJpbnQgc2VsZi5lcnJvcl9tc2coIkludGVybmFsICdubycgbW9yZSB0aGFuIG9uZSBhbGlhcyBjaG9pY2UiKQorICAgICAgICAgICAgICAgIGlmIGxlbih3b3JkcykgPCAyOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gIlN5bnRheDogbm8gJXMgPHZhbHVlPiIgJSBvcHRpb24KKyAgICAgICAgICAgICAgICBpdGVtID0gd29yZHNbMV0KKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVzdF9kZWxldGVfb2JqZWN0KG9ial90eXBlLCBpdGVtKQorICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSBOb25lCisgICAgICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICAgICAgZXJyb3JzID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSwgb2JqX3R5cGUgKyAiICIgKyBpdGVtKQorICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAKKyAgICAgICAgICAgIGtleSA9IG1pLnBrKG9ial90eXBlKQorICAgICAgICAgICAgIworICAgICAgICAgICAgIyBub3RlOiBmaWVsZF9kZWZhdWx0X3ZhbHVlIHJldHVybnMgTm9uZSB3aGVuIG5vIGRlZmF1bHQgaXMKKyAgICAgICAgICAgICMgcHJvdmlkZWQuICBpdHMgbm90IGNsZWFyIHdoZXRoZXIgZGVmYXVsdCB2YWx1ZXMgYXJlIGFsd2F5cworICAgICAgICAgICAgIyBwcm92aWRlZCBmb3IgZmllbGRzIHdoaWNoIGRvbid0IGFjY2VwdCBudWxsIHZhbHVlcy4KKyAgICAgICAgICAgICMKKyAgICAgICAgICAgIGRlZmF1bHRfdmFsdWUgPSBtaS5maWVsZF9kZWZhdWx0X3ZhbHVlKG9ial90eXBlLCBvcHRpb24pCisKKyAgICAgICAgICAgIGlmIG1pLmlzX251bGxfYWxsb3dlZChvYmpfdHlwZSwgb3B0aW9uKSBhbmQgZGVmYXVsdF92YWx1ZToKKyAgICAgICAgICAgICAgICBzZWxmLndhcm5pbmcoIiclcycgYWNjZXB0cyBudWxsIGFuZCBoYWQgYSBkZWZhdWx0ICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInZhbHVlOyAlcyBpcyBzZXQgdG8gdGhlIGRlZmF1bHQgdmFsdWUgJyVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvYmpfdHlwZSwgb3B0aW9uLCBkZWZhdWx0X3ZhbHVlKSkKKworICAgICAgICAgICAgZXJyb3JzID0gc2VsZi5yZXN0X3VwZGF0ZV9vYmplY3Qob2JqX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmdldF9jdXJyZW50X21vZGVfb2JqKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7b3B0aW9uOmRlZmF1bHRfdmFsdWV9KQorICAgICAgICAgICAgIyBmYWxsIHRocm91Z2ggdG8gcmV0dXJuCisgICAgICAgIGVsaWYgc2VsZi5pbl9jb25maWdfdm5zX2FjbF9tb2RlKCkgYW5kIHNlbGYuQUNMX1JFLm1hdGNoKG9wdGlvbik6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5kb192bnNfbm8oWydhY2Nlc3MtbGlzdC1lbnRyeSddICsgd29yZHMpCisgICAgICAgICNlbGlmIHNlbGYuaW5fY29uZmlnX2NvbnRyb2xsZXJfaW50ZXJmYWNlX21vZGUoKSBhbmQgJ2ZpcmV3YWxsJy5zdGFydHN3aXRoKG9wdGlvbik6CisgICAgICAgICMgICAgcmV0dXJuIHNlbGYuZG9fbm9fZmlyZXdhbGwod29yZHMpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgY29tbWFuZF93b3JkcyA9IFsnbm8nXSArIHdvcmRzCisgICAgICAgICAgICAgICAgIyBKdXN0IHRyeSB0byBleGVjdXRlIHRoZSBjb21tYW5kLiBJdCB3aWxsIGVpdGhlciBzdWNjZWVkIG9yCisgICAgICAgICAgICAgICAgIyB0aHJvdyBhbiBleGNlcHRpb24KKyAgICAgICAgICAgICAgICByZXR1cm4gY29tbWFuZC5kb19jb21tYW5kKGNvbW1hbmRfd29yZHMpCisgICAgICAgICAgICBleGNlcHQgdXJsbGliMi5IVFRQRXJyb3IsIGU6CisgICAgICAgICAgICAgICAgcmFpc2UgZQorICAgICAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmRlYnVnIG9yIHNlbGYuZGVidWdfYmFja3RyYWNlOgorICAgICAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKKyAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5lcnJvcl9tc2coIiclcycgbXVzdCBiZSBlaXRoZXIgYSB2YWxpZCBvYmplY3QgdHlwZSBvciBhIGZpZWxkIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uKQorCisgICAgICAgICMgd2hlbiBlcnJvcnMgPT0gTm9uZSwgcmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UgcmV0dXJucyBOb25lLgorICAgICAgICByZXR1cm4gc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcnMpCisKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBpbXBsZW1lbnRfcGluZworICAgICMgICAgUGVyZm9ybXMgYSB0cmFjZXJvdXRlIHRvIGEgc3dpdGNoIG9yIGhvc3QuCisgICAgIyAgICBJbnB1dCBjYW4gZWl0aGVyIGJlIGEgRFBJRCwgc3dpdGNoIGFsaWFzLCBvciBob3N0IChJUCBvciBkb21haW4pLgorICAgIGRlZiBpbXBsZW1lbnRfcGluZyhzZWxmLCBkYXRhKToKKyAgICAgICAgCisgICAgICAgIGNvdW50ID0gJy1jICVkICcgJSBkYXRhLmdldCgnY291bnQnLCA1KQorICAgICAgICBpZiBub3QgJ2lwLWFkZHJlc3MnIGluIGRhdGE6CisgICAgICAgICAgICB5aWVsZCgnQ2FuXCd0IGRldGVybWluZSBwaW5nIHRhcmdldCcpCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBpcF9ob3N0ID0gZGF0YVsnaXAtYWRkcmVzcyddCisgICAgICAgIGlmIHNlbGYuRFBJRF9SRS5tYXRjaChpcF9ob3N0KToKKyAgICAgICAgICAgIGlwX2hvc3QgPSBzZWxmLmdldF9pcF9mcm9tX3N3aXRjaF9kcGlkX29yX2FsaWFzKGlwX2hvc3QpCisKKyAgICAgICAgY21kID0gJ3BpbmcgJXMlcycgJSAoY291bnQsIHNlbGYuc2hlbGxfZXNjYXBlKGlwX2hvc3QpKQorICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLmdlbmVyYXRlX3N1YnByb2Nlc3Nfb3V0cHV0KGNtZCk6CisgICAgICAgICAgICB5aWVsZCBpdGVtCisKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBpbXBsZW1lbnRfdHJhY2Vyb3V0ZQorICAgICMgICAgUGVyZm9ybXMgYSB0cmFjZXJvdXRlIHRvIGEgc3dpdGNoIG9yIGhvc3QuCisgICAgIyAgICBJbnB1dCBjYW4gZWl0aGVyIGJlIGEgRFBJRCwgc3dpdGNoIGFsaWFzLCBvciBob3N0IChJUCBvciBkb21haW4pLgorICAgIGRlZiBpbXBsZW1lbnRfdHJhY2Vyb3V0ZShzZWxmLCBkYXRhKToKKworICAgICAgICBpZiBub3QgJ2lwLWFkZHJlc3MnIGluIGRhdGE6CisgICAgICAgICAgICB5aWVsZCgnQ2FuXCd0IGRldGVybWluZSB0cmFjZXJvdXRlIHRhcmdldCcpCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBpcF9ob3N0ID0gZGF0YVsnaXAtYWRkcmVzcyddCisgICAgICAgIGlmIHNlbGYuRFBJRF9SRS5tYXRjaChpcF9ob3N0KToKKyAgICAgICAgICAgIGlwX2hvc3QgPSBzZWxmLmdldF9pcF9mcm9tX3N3aXRjaF9kcGlkX29yX2FsaWFzKGlwX2hvc3QpCisKKyAgICAgICAgY21kID0gJ3RyYWNlcm91dGUgJXMnICUgc2VsZi5zaGVsbF9lc2NhcGUoaXBfaG9zdCkKKyAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5nZW5lcmF0ZV9zdWJwcm9jZXNzX291dHB1dChjbWQpOgorICAgICAgICAgICAgeWllbGQgaXRlbQorCisgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGRvX25vX2ZpcmV3YWxsCisgICAgIworICAgICNkZWYgZG9fbm9fZmlyZXdhbGwoc2VsZiwgd29yZHMpOgorICAgICMgICAgcmV0dXJuIHNlbGYuZG9fZmlyZXdhbGwod29yZHNbMTpdLCBUcnVlKQorICAgICAgICAKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBmaXJld2FsbF9ydWxlX2FkZF9ydWxlX3RvX2VudHJpZXMKKyAgICAjCisgICAgZGVmIGZpcmV3YWxsX3J1bGVfYWRkX3J1bGVfdG9fZW50cmllcyhzZWxmLCBlbnRyaWVzKToKKyAgICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICBlbnRyeVsncnVsZSddID0gcnVuX2NvbmZpZy5maXJld2FsbF9ydWxlKGVudHJ5KQorICAgICAgICByZXR1cm4gZW50cmllcworCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZ2V0X2ZpcmV3YWxsX3J1bGVzCisgICAgIyAgUmV0dXJucyBhIGxpc3Qgb2Ygc3RyaW5ncyBkZXNjcmliaW5nIHRoZSBmaXJld2FsbCBydWxlcyBmb3IgYSBwYXJ0aWN1bGFyCisgICAgIyAgY29udHJvbGxlci1ub2RlIG5hbWUuCisgICAgIworICAgIGRlZiBnZXRfZmlyZXdhbGxfcnVsZXMoc2VsZiwgbm9kZSk6CisgICAgICAgIGtleSA9IG1pLnBrKCdmaXJld2FsbC1ydWxlJykKKyAgICAgICAga2V5X3ZhbHVlID0gc2VsZi51bmlxdWVfa2V5X2Zyb21fbm9uX3VuaXF1ZShbbm9kZV0pCisgICAgICAgIGVudHJpZXMgPSBzZWxmLmdldF90YWJsZV9mcm9tX3N0b3JlKCdmaXJld2FsbC1ydWxlJywga2V5LCBrZXlfdmFsdWUpCisKKyAgICAgICAgcmV0dXJuIHNlbGYuZmlyZXdhbGxfcnVsZV9hZGRfcnVsZV90b19lbnRyaWVzKGVudHJpZXMpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fc2hvd19maXJld2FsbAorICAgICMgIERlcGVuZHMgb24gZ2V0X2ZpcmV3YWxsX3J1bGVzIHRvIGFkZCAncnVsZScgdG8gZW50cmllcyBzbyB0aGF0CisgICAgIyAgdGhlICdmaXJld2FsbC1ydWxlJyB0YWJsZSBjYW4gZGlzcGxheSB0aGUgcnVsZSdzIHZhbHVlIGluIGEKKyAgICAjICBlYXNpbHkgaWRlbnRpZmllZCBzeW50YXguCisgICAgIworICAgIGRlZiBkb19zaG93X2ZpcmV3YWxsKHNlbGYsIHdvcmRzKToKKyAgICAgICAgcmV0dXJuIHNlbGYuZGlzcGxheV9vYmpfdHlwZV9yb3dzKCdmaXJld2FsbC1ydWxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuZ2V0X2ZpcmV3YWxsX3J1bGVzKHNlbGYuZ2V0X2N1cnJlbnRfbW9kZV9vYmooKSkpCisKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBoYW5kbGVfY29tbWFuZAorICAgICMKKyAgICBkZWYgaGFuZGxlX2NvbW1hbmQoc2VsZiwgY29tbWFuZF93b3JkLCB3b3Jkcyk6CisgICAgICAgIGlmIHR5cGUoY29tbWFuZF93b3JkKSA9PSBzdHI6CisgICAgICAgICAgICBtZXRob2QgPSBzZWxmLmNvbW1hbmRfbWV0aG9kX2Zyb21fbmFtZShjb21tYW5kX3dvcmQpCisgICAgICAgICAgICBpZiBtZXRob2Q6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ldGhvZCh3b3JkcykKKyAgICAgICAgIyBYWFggSXQgd291bGQgYmUgYmV0dGVyIHRvIG9ubHkgY2FsbCBkb19jb21tYW5kIGlmIGl0CisgICAgICAgICMgd2FzIGNsZWFyIHRoYXQgdGhpcyBjb21tYW5kIGFjdHVhbGx5IGV4aXN0ZWQuCisgICAgICAgIHJldHVybiBjb21tYW5kLmRvX2NvbW1hbmQoW2NvbW1hbmRfd29yZF0gKyB3b3JkcykKKworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGZpbmRfd2l0aF9xdW90aW5nCisgICAgIworICAgICMgIEFzc3VtZXMgc3RhcnRfaW5kZXggaXMgbm90IGluc2lkZSBhIHF1b3RlZCBzdHJpbmcuCisgICAgIworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgZmluZF93aXRoX3F1b3RpbmcobGluZSwgZmluZF9jaGFyLCByZXZlcnNlPUZhbHNlLCBzdGFydF9pbmRleD0wKToKKyAgICAgICAgaW5fcXVvdGVkX2FyZyA9IEZhbHNlCisgICAgICAgIGxpbmVfbGVuZ3RoID0gbGVuKGxpbmUpCisgICAgICAgIGkgPSBzdGFydF9pbmRleAorICAgICAgICBmb3VuZF9pbmRleCA9IC0xOworICAgICAgICB3aGlsZSBpIDwgbGluZV9sZW5ndGg6CisgICAgICAgICAgICBjID0gbGluZVtpXQorICAgICAgICAgICAgaWYgYyBpbiAiXCInIjoKKyAgICAgICAgICAgICAgICBpZiBub3QgaW5fcXVvdGVkX2FyZzoKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVfY2hhciA9IGMKKyAgICAgICAgICAgICAgICAgICAgaW5fcXVvdGVkX2FyZyA9IFRydWUKKyAgICAgICAgICAgICAgICBlbGlmIGMgPT0gcXVvdGVfY2hhcjoKKyAgICAgICAgICAgICAgICAgICAgaW5fcXVvdGVkX2FyZyA9IEZhbHNlCisgICAgICAgICAgICAgICAgIyBvdGhlcndpc2UgbGVhdmUgaW5fcXVvdGVkX2FyZyBUcnVlCisgICAgICAgICAgICBlbGlmIGMgPT0gIlxcIiBhbmQgaW5fcXVvdGVkX2FyZzoKKyAgICAgICAgICAgICAgICBpICs9IDEKKyAgICAgICAgICAgIGVsaWYgKGMgPT0gZmluZF9jaGFyKSBhbmQgbm90IGluX3F1b3RlZF9hcmc6CisgICAgICAgICAgICAgICAgZm91bmRfaW5kZXggPSBpCisgICAgICAgICAgICAgICAgaWYgbm90IHJldmVyc2U6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBpICs9IDEKKyAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gZm91bmRfaW5kZXgKKyAgICAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgc3BsaXRfd2l0aF9xdW90aW5nCisgICAgIworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgc3BsaXRfd2l0aF9xdW90aW5nKGxpbmUsIHNlcGFyYXRvcnM9IiBcdCIpOgorICAgICAgICB3b3JkX2xpc3QgPSBbXQorICAgICAgICBjdXJyZW50X3dvcmQgPSAiIgorICAgICAgICBpbl9xdW90ZWRfYXJnID0gRmFsc2UKKyAgICAgICAgbGluZV9sZW5ndGggPSBsZW4obGluZSkKKyAgICAgICAgaSA9IDAKKyAgICAgICAgd2hpbGUgaSA8IGxpbmVfbGVuZ3RoOgorICAgICAgICAgICAgYyA9IGxpbmVbaV0KKyAgICAgICAgICAgIGkgKz0gMQorICAgICAgICAgICAgaWYgYyBpbiAiXCInIjoKKyAgICAgICAgICAgICAgICBpZiBub3QgaW5fcXVvdGVkX2FyZzoKKyAgICAgICAgICAgICAgICAgICAgaW5fcXVvdGVkX2FyZyA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgcXVvdGVfY2hhciA9IGMKKyAgICAgICAgICAgICAgICBlbGlmIGMgPT0gcXVvdGVfY2hhcjoKKyAgICAgICAgICAgICAgICAgICAgaW5fcXVvdGVkX2FyZyA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgIHdvcmRfbGlzdC5hcHBlbmQoY3VycmVudF93b3JkKQorICAgICAgICAgICAgICAgICAgICBjdXJyZW50X3dvcmQgPSAiIgorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfd29yZCArPSBjCisgICAgICAgICAgICBlbGlmIGMgPT0gIlxcIiBhbmQgaW5fcXVvdGVkX2FyZzoKKyAgICAgICAgICAgICAgICBpZiBpIDwgbGluZV9sZW5ndGg6CisgICAgICAgICAgICAgICAgICAgIGMgPSBsaW5lW2ldCisgICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfd29yZCArPSBjCisgICAgICAgICAgICAgICAgICAgIGkgKz0gMQorICAgICAgICAgICAgZWxpZiAoYyBpbiBzZXBhcmF0b3JzKSBhbmQgbm90IGluX3F1b3RlZF9hcmc6CisgICAgICAgICAgICAgICAgaWYgY3VycmVudF93b3JkOgorICAgICAgICAgICAgICAgICAgICB3b3JkX2xpc3QuYXBwZW5kKGN1cnJlbnRfd29yZCkKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudF93b3JkID0gIiIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY3VycmVudF93b3JkICs9IGMKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYgY3VycmVudF93b3JkOgorICAgICAgICAgICAgd29yZF9saXN0LmFwcGVuZChjdXJyZW50X3dvcmQpCisgICAgICAgIAorICAgICAgICByZXR1cm4gd29yZF9saXN0CisgICAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHF1b3RlX2l0ZW0KKyAgICAjICBTb21lIG9mIHRoZSBuZXcgbW9kZWwgY29sdW1ucyBhdmFpbGFibGUgYXMgY2hvaWNlcyB0byBzZWxlY3QgaGF2ZSB0aGUgJ3wnIAorICAgICMgIGNoYXJhY3RlciBhcyBhIHNlcGFyYXRvci4gIEZvciB0aGVzZSBjaG9pY2VzIHRvIHdvcmQsIHRoZXkgbmVlZCB0byBiZQorICAgICMgIHF1b3RlZAorICAgICMKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHF1b3RlX2l0ZW0ob2JqX3R5cGUsIGl0ZW0pOgorICAgICAgICBpZiBpdGVtLmZpbmQoInwiKSA+PSAwOgorICAgICAgICAgICAgcmV0dXJuICAnIicgKyBzdHIoaXRlbSkgKyAnIicgCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gc3RyKGl0ZW0pCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgCisgICAgZGVmIHJlcGxheShzZWxmLCBmaWxlLCB2ZXJib3NlID0gVHJ1ZSwgY29tbWFuZF9yZXBsYXkgPSBGYWxzZSk6CisgICAgICAgICMgT25seSByZXBsYXkgdGhlIFNUUiB2YWx1ZXMsIHNpbmNlIHRoZSBjb2RlIG91Z2h0IHRvCisgICAgICAgICMgc3R1ZmYgYmFjayB0aGUgSlNPTiB2YWx1ZXMuCisgICAgICAgIHBsYXkgPSBvcGVuKGZpbGUpCisgICAgICAgIHJlc3RfbGluZV9mb3JtYXQgPSByZS5jb21waWxlKHInXlJFU1QgKFteIF0qKSggICopKFteIF0qKSggICopKC4qKSQnKQorICAgICAgICBjbWRfbGluZV9mb3JtYXQgPSByZS5jb21waWxlKHInXkNPTU1BTkQgKC4qKSQnKQorICAgICAgICBza2lwX2NvbW1hbmQgPSBUcnVlCisgICAgICAgIGZvciBsaW5lIGluIHBsYXkucmVhZCgpLnNwbGl0KCdcbicpOgorICAgICAgICAgICAgIyB0aGUgZm9ybWF0IG91Z2h0IHRvIGJlIHVybDxzcGFjZT5bU1RSfEpTT05dPHNwYWNlPiAuLi4KKyAgICAgICAgICAgIG1hdGNoID0gcmVzdF9saW5lX2Zvcm1hdC5tYXRjaChsaW5lKQorICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgaWYgbWF0Y2guZ3JvdXAoMykgPT0gJ1NUUic6CisgICAgICAgICAgICAgICAgICAgIGlmIHZlcmJvc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnUkVTVCBTVFInLCBtYXRjaC5ncm91cCgxKQorICAgICAgICAgICAgICAgICAgICB1cmxfY2FjaGUuc2F2ZV91cmwobWF0Y2guZ3JvdXAoMSksIG1hdGNoLmdyb3VwKDUpLCAxMDAwMDAwKQorICAgICAgICAgICAgICAgIGVsaWYgbWF0Y2guZ3JvdXAoMykgPT0gJ0pTT04nOgorICAgICAgICAgICAgICAgICAgICBpZiB2ZXJib3NlOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ1JFU1QgSlNPTicsIG1hdGNoLmdyb3VwKDEpCisgICAgICAgICAgICAgICAgICAgIGVudHJpZXMgPSBqc29uLmxvYWRzKG1hdGNoLmdyb3VwKDUpKQorICAgICAgICAgICAgICAgICAgICB1cmxfY2FjaGUuc2F2ZV91cmwobWF0Y2guZ3JvdXAoMSksIGVudHJpZXMsIDEwMDAwMDApCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ1JFU1QgUkVQTEFZIE5PVCBTVFJ8SlNPTicKKyAgICAgICAgICAgIGVsaWYgbGVuKGxpbmUpOgorICAgICAgICAgICAgICAgIG1hdGNoID0gY21kX2xpbmVfZm9ybWF0Lm1hdGNoKGxpbmUpCisgICAgICAgICAgICAgICAgaWYgY29tbWFuZF9yZXBsYXkgYW5kIG1hdGNoOgorICAgICAgICAgICAgICAgICAgICAjIHNraXAgdGhlIGZpcnN0IGNvbW1hbmQgc2luY2UgaXQgb3VnaHQgdG8gYmUgdGhlIHJlcGxheSBlbmFibGVtZW50CisgICAgICAgICAgICAgICAgICAgIGlmIHNraXBfY29tbWFuZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHZlcmJvc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ1NLSVAgQ09NTUFORCAlcycgJSBtYXRjaC5ncm91cCgxKQorICAgICAgICAgICAgICAgICAgICAgICAgc2tpcF9jb21tYW5kID0gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBzZWxmLnNwbGl0X3dpdGhfcXVvdGluZyhtYXRjaC5ncm91cCgxKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHZlcmJvc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ0NPTU1BTkQgJXMnICUgbGluZQorICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5oYW5kbGVfbXVsdGlwYXJ0X2xpbmUobGluZVswXSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG91dHB1dCAhPSBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IG91dHB1dAorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHByaW50ICdubyBNQVRDSCArJXMrJyAlIGxpbmUKKyAgICAgICAgcGxheS5jbG9zZSgpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgaGFuZGxlX3NpbmdsZV9saW5lCisgICAgIworICAgIGRlZiBoYW5kbGVfc2luZ2xlX2xpbmUoc2VsZiwgbGluZSk6CisgICAgICAgIHJldF92YWwgPSBOb25lCisgICAgICAgIGlmIGxlbihsaW5lKSA+IDAgYW5kIGxpbmVbMF09PSIhIjogIyBza2lwIGNvbW1lbnRzCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgd29yZHMgPSBzZWxmLnNwbGl0X3dpdGhfcXVvdGluZyhsaW5lKQorICAgICAgICBpZiBub3Qgd29yZHM6CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIworICAgICAgICBzZWxmLmNvbXBsZXRpb25fcmVzZXQoKQorCisgICAgICAgICMgTG9vayBmb3IgdGhlIHJlcGxheSBrZXl3b3JkLCB1c2UgdGhlIGZpcnN0IHR3byB0b2tlbnMgaWYgdGhlIHJlcGxheQorICAgICAgICAjIGtleXdvcmQgaXMgaW4gdGhlIGZpcnN0IHBhcnQgb2YgdGhlIGNvbW1hbmQuCisgICAgICAgIGlmIHNlbGYuZGVidWcgYW5kIGxlbih3b3JkcykgPj0gMjoKKyAgICAgICAgICAgIGlmIHdvcmRzWzBdID09ICdyZXBsYXknOgorICAgICAgICAgICAgICAgICMgcmVwbGF5IHRoZSBmaWxlLCByZW1vdmUgdGhlIGZpcnN0IHR3byBrZXl3b3JkcworICAgICAgICAgICAgICAgIHNlbGYucmVwbGF5KHdvcmRzWzFdLCBjb21tYW5kX3JlcGxheSA9IGxlbih3b3JkcykgPT0gMikKKyAgICAgICAgICAgICAgICBpZiBsZW4od29yZHMpID09IDI6CisgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgICAgIHdvcmRzID0gd29yZHNbMjpdCisKKyAgICAgICAgIyB0aGUgZmlyc3Qgd29yZCBvZiBhIGxpbmUgaXMgZWl0aGVyOgorICAgICAgICAjIC0gYSBjb21tYW5kIC0gZGVwZW5kZW50IG9uIG1vZGUgKHNob3cgYW55d2hlcmUgYnV0IGNvbmZpZ3VyZSBvbmx5IGluIGVuYWJsZSkKKyAgICAgICAgIyAtIGFuIG9iamVjdCB0eXBlIC0gaWYgd2UncmUgaW4gYSBjb25maWcgbW9kZSAoZWl0aGVyIGNvbmZpZyBvciBjb25maWcgc3VibW9kZSkKKyAgICAgICAgIyAtIGEgZmllbGQgZm9yIGFuIG9iamVjdCAtIGlmIHdlJ3JlIGluIGEgY29uZmlnIHN1Ym1vZGUKKyAgICAgICAgbWF0Y2hlcyA9IFsoeCwgImNvbW1hbmQiKSBmb3IgeCBpbiBzZWxmLmNvbW1hbmRzX2Zvcl9jdXJyZW50X21vZGVfc3RhcnRpbmdfd2l0aCh3b3Jkc1swXSldCisgICAgICAgIG1hdGNoZXMuZXh0ZW5kKFsoeCwgImNvbmZpZyBvYmplY3QiKSBmb3IgeCBpbiBzZWxmLm9ial90eXBlc19mb3JfY29uZmlnX21vZGVfc3RhcnRpbmdfd2l0aCh3b3Jkc1swXSldKQorICAgICAgICBtYXRjaGVzLmV4dGVuZChbKHgsICJmaWVsZCIpIGZvciB4IGluIHNlbGYuZmllbGRzX2Zvcl9jdXJyZW50X3N1Ym1vZGVfc3RhcnRpbmdfd2l0aCh3b3Jkc1swXSldKQorICAgICAgICAjIExPT0shOiByb2J2IEZpeCB0byB3b3JrIHdpdGggZmllbGQgbmFtZXMgd2hlcmUgb25lIG5hbWUgaXMgYSBwcmVmaXggb2YgYW5vdGhlcgorICAgICAgICBpZiBsZW4obWF0Y2hlcykgPiAxOgorICAgICAgICAgICAgZm9yIG1hdGNoX3R1cGxlIGluIG1hdGNoZXM6CisgICAgICAgICAgICAgICAgaWYgbWF0Y2hfdHVwbGVbMF0gPT0gd29yZHNbMF06CisgICAgICAgICAgICAgICAgICAgIG1hdGNoZXMgPSBbbWF0Y2hfdHVwbGVdCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGlmIGxlbihtYXRjaGVzKSA9PSAxOgorICAgICAgICAgICAgbWF0Y2ggPSBtYXRjaGVzWzBdCisgICAgICAgICAgICAjIFJlcGxhY2UgdGhlIChwb3NzaWJseSkgYWJicmV2aWF0ZWQgYXJndW1lbnQgd2l0aCB0aGUgZnVsbCBuYW1lLgorICAgICAgICAgICAgIyBUaGlzIGlzIHNvIHRoYXQgdGhlIGhhbmRsZXJzIGRvbid0IG5lZWQgdG8gYWxsIGhhbmRsZSBhYmJyZXZpYXRpb25zLgorICAgICAgICAgICAgaWYgdHlwZShtYXRjaFswXSkgPT0gc3RyOgorICAgICAgICAgICAgICAgIHdvcmRzWzBdID0gbWF0Y2hbMF0KKworICAgICAgICAgICAgaWYgbWF0Y2hbMV0gPT0gImZpZWxkIjoKKyAgICAgICAgICAgICAgICByZXRfdmFsID0gc2VsZi5oYW5kbGVfZmllbGQod29yZHMpCisgICAgICAgICAgICBlbGlmIG1hdGNoWzFdID09ICJjb25maWcgb2JqZWN0IjoKKyAgICAgICAgICAgICAgICByZXRfdmFsID0gc2VsZi5oYW5kbGVfb2JqX3R5cGUod29yZHMpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldF92YWwgPSBzZWxmLmhhbmRsZV9jb21tYW5kKHdvcmRzWzBdLCB3b3Jkc1sxOl0pCisgICAgICAgICAgICAgICAgI3JldF92YWwgPSBzZWxmLmhhbmRsZV9jb21tYW5kKG1hdGNoWzBdLCB3b3Jkc1sxOl0pCisgICAgICAgIGVsaWYgbGVuKG1hdGNoZXMpID4gMToKKyAgICAgICAgICAgIHJldF92YWwgPSBzZWxmLmVycm9yX21zZygiJXMgaXMgYW1iaWd1b3VzXG4iICUgd29yZHNbMF0pCisgICAgICAgICAgICBmb3IgbSBpbiBtYXRjaGVzOgorICAgICAgICAgICAgICAgIHJldF92YWwgKz0gIiVzICglcylcbiIgJSBtCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXRfdmFsID0gc2VsZi5lcnJvcl9tc2coIlVua25vd24gY29tbWFuZDogJXNcbiIgJSB3b3Jkc1swXSkKKworICAgICAgICB1cmxfY2FjaGUuY29tbWFuZF9maW5pc2hlZCh3b3JkcykKKyAgICAgICAgcmV0dXJuIHJldF92YWwKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBnZW5lcmF0ZV9waXBlX291dHB1dAorICAgICMKKyAgICBkZWYgZ2VuZXJhdGVfcGlwZV9vdXRwdXQoc2VsZiwgcCwgb3V0cHV0KToKKyAgICAgICAgZmwgPSBmY250bC5mY250bChwLnN0ZG91dCwgZmNudGwuRl9HRVRGTCkKKyAgICAgICAgZmNudGwuZmNudGwocC5zdGRvdXQsIGZjbnRsLkZfU0VURkwsIGZsIHwgb3MuT19OT05CTE9DSykKKworICAgICAgICBmb3IgaXRlbSBpbiBvdXRwdXQ6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcC5zdGRpbi53cml0ZShpdGVtKQorICAgICAgICAgICAgZXhjZXB0IElPRXJyb3I6CisgICAgICAgICAgICAgICAgYnJlYWsKKworICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIG91dF9pdGVtID0gcC5zdGRvdXQucmVhZCgpCisgICAgICAgICAgICAgICAgeWllbGQgb3V0X2l0ZW0KKyAgICAgICAgICAgIGV4Y2VwdCBJT0Vycm9yOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgIAorICAgICAgICBwLnN0ZGluLmNsb3NlKCkKKworICAgICAgICBmY250bC5mY250bChwLnN0ZG91dCwgZmNudGwuRl9TRVRGTCwgZmwpCisgICAgICAgIHdoaWxlIFRydWU6CisgICAgICAgICAgICBvdXRfaXRlbSA9IHAuc3Rkb3V0LnJlYWQoKQorICAgICAgICAgICAgaWYgKG91dF9pdGVtKToKKyAgICAgICAgICAgICAgICB5aWVsZCBvdXRfaXRlbQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwLnN0ZG91dC5jbG9zZSgpCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgcC53YWl0KCkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyB3cml0ZV90b19waXBlCisgICAgIworICAgIGRlZiB3cml0ZV90b19waXBlKHNlbGYsIHAsIG91dHB1dCk6CisgICAgICAgIGZvciBpdGVtIGluIG91dHB1dDoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBwLnN0ZGluLndyaXRlKGl0ZW0pCisgICAgICAgICAgICBleGNlcHQgSU9FcnJvcjoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICBwLnN0ZGluLmNsb3NlKCkKKyAgICAgICAgcC53YWl0KCkKKyAgICAgICAgICAgIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBzaGVsbF9lc2NhcGUKKyAgICAjICBSZXR1cm4gYSBzdHJpbmcsIHF1b3RpbmcgdGhlIGNvbXBsZXRlIHN0cmluZywgYW5kIGNvcnJlY3RseSBwcmVmaXggYW55CisgICAgIyAgcXVvdGVzIHdpdGhpbiB0aGUgc3RyaW5nLgorICAgICMKKyAgICBkZWYgc2hlbGxfZXNjYXBlKHNlbGYsIGFyZyk6CisgICAgICAgIHJldHVybiAiJyIgKyBhcmcucmVwbGFjZSgiJyIsICInXFwnJyIpICsgIiciCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgaGFuZGxlX3BpcGVfYW5kX3JlZGlyZWN0CisgICAgIworICAgIGRlZiBoYW5kbGVfcGlwZV9hbmRfcmVkaXJlY3Qoc2VsZiwgcGlwZV9jbWRzLCByZWRpcmVjdF90YXJnZXQsIG91dHB1dCk6CisgICAgICAgICMgaWYgcmVkaXJlY3QgdGFyZ2V0IGlzIHRmdHAvZnRwL2h0dHAvZmlsZSwgdGhlbiB3ZSBzaG91bGQgYWN0dWFsbHkgc3RpY2sKKyAgICAgICAgIyBjdXJsIGF0IHRoZSBlbmQgb2YgdGhlIHBpcGVfY21kcyBzbyBpdCBnZXRzIGhhbmRsZWQgYmVsb3cKKyAgICAgICAgaWYgcmVkaXJlY3RfdGFyZ2V0OgorICAgICAgICAgICAgaWYgcmVkaXJlY3RfdGFyZ2V0LnN0YXJ0c3dpdGgoInRmdHAiKSBvciByZWRpcmVjdF90YXJnZXQuc3RhcnRzd2l0aCgiZnRwIikgb3IgXAorICAgICAgICAgICAgICAgcmVkaXJlY3RfdGFyZ2V0LnN0YXJ0c3dpdGgoImh0dHAiKSBvciByZWRpcmVjdF90YXJnZXQuc3RhcnRzd2l0aCgiZmlsZSIpOgorICAgICAgICAgICAgICAgIHJlZGlyZWN0X3RhcmdldCA9IHNlbGYuc2hlbGxfZXNjYXBlKHJlZGlyZWN0X3RhcmdldCkKKyAgICAgICAgICAgICAgICAjIGFkZCBzbyBpdCBjYW4gYmUgdXNlZCBiZWxvdworICAgICAgICAgICAgICAgIGlmIHBpcGVfY21kcyA9PSBOb25lOgorICAgICAgICAgICAgICAgICAgICBwaXBlX2NtZHMgPSAiIgorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHBpcGVfY21kcyArPSAiIHwgIgorCisgICAgICAgICAgICAgICAgaWYgcmVkaXJlY3RfdGFyZ2V0LnN0YXJ0c3dpdGgoImZ0cCIpOiAjIHNoZWxsX2VzY2FwZSBhZGRlZCBxdW90ZQorICAgICAgICAgICAgICAgICAgICBwaXBlX2NtZHMgKz0gIiBjdXJsIC1UIC0gJXMiICUgc2VsZi5zaGVsbF9lc2NhcGUocmVkaXJlY3RfdGFyZ2V0KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHBpcGVfY21kcyArPSAiIGN1cmwgLVggUFVUIC1kIEAtICVzIiAlIHNlbGYuc2hlbGxfZXNjYXBlKHJlZGlyZWN0X3RhcmdldCkKKworICAgICAgICBpZiBwaXBlX2NtZHM6CisgICAgICAgICAgICBuZXdfcGlwZV9jbWRfbGlzdCA9IFtdCisgICAgICAgICAgICBmb3IgcGlwZV9jbWQgaW4gW3guc3RyaXAoKSBmb3IgeCBpbiBwaXBlX2NtZHMuc3BsaXQoJ3wnKV06CisgICAgICAgICAgICAgICAgIyBkb2luZyBpdCB0aGlzIHdheSBsZXQgdXMgaGFuZGxlcyBzcGFjZXMgaW4gdGhlIHBhdHRlcm5zCisgICAgICAgICAgICAgICAgIyBhcyBvcHBvc2VkIHRvIHVzaW5nIHNwbGl0L2pvaW4gd2hpY2ggd291bGQgY29tcHJlc3Mgc3BhY2UKKyAgICAgICAgICAgICAgICBuZXdfcGlwZV9jbWQgPSBwaXBlX2NtZAorICAgICAgICAgICAgICAgIG0gPSByZS5zZWFyY2goJ14oXHcrKSguKikkJywgcGlwZV9jbWQpIAorICAgICAgICAgICAgICAgIGlmIG06IAorICAgICAgICAgICAgICAgICAgICBmaXJzdF90b2sgPSBtLmdyb3VwKDEpCisgICAgICAgICAgICAgICAgICAgIHJlc3Rfb2ZfY21kID0gbS5ncm91cCgyKS5zdHJpcCgpCisgICAgICAgICAgICAgICAgICAgIGlmIGZpcnN0X3Rvay5zdGFydHN3aXRoKCJpbiIpOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3BpcGVfY21kID0gImdyZXAgLWUgIiArIHJlc3Rfb2ZfY21kCisgICAgICAgICAgICAgICAgICAgIGVsaWYgZmlyc3RfdG9rLnN0YXJ0c3dpdGgoImV4Iik6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdfcGlwZV9jbWQgPSAiZ3JlcCAtdiAtZSIgKyByZXN0X29mX2NtZAorICAgICAgICAgICAgICAgICAgICBlbGlmIGZpcnN0X3Rvay5zdGFydHN3aXRoKCJiZWdpbiIpOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3BpcGVfY21kID0gICJhd2sgJy8lcy8sMCciICUgcmVzdF9vZl9jbWQKKyAgICAgICAgICAgICAgICBuZXdfcGlwZV9jbWRfbGlzdC5hcHBlbmQobmV3X3BpcGVfY21kKQorCisgICAgICAgICAgICBuZXdfcGlwZV9jbWRzID0gInwiLmpvaW4obmV3X3BpcGVfY21kX2xpc3QpCisgICAgICAgICAgICBpZiBuZXdfcGlwZV9jbWRzOgorICAgICAgICAgICAgICAgIGlmIHJlZGlyZWN0X3RhcmdldDoKKyAgICAgICAgICAgICAgICAgICAgcCA9IHN1YnByb2Nlc3MuUG9wZW4obmV3X3BpcGVfY21kcywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWxsPVRydWUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRpbj1zdWJwcm9jZXNzLlBJUEUsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRvdXQ9c3VicHJvY2Vzcy5QSVBFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGRlcnI9c3VicHJvY2Vzcy5TVERPVVQpCisgICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IHNlbGYuZ2VuZXJhdGVfcGlwZV9vdXRwdXQocCwgb3V0cHV0KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHAgPSBzdWJwcm9jZXNzLlBvcGVuKG5ld19waXBlX2NtZHMsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaGVsbD1UcnVlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RkaW49c3VicHJvY2Vzcy5QSVBFKQorICAgICAgICAgICAgICAgICAgICBzZWxmLndyaXRlX3RvX3BpcGUocCwgb3V0cHV0KQorICAgICAgICAgICAgICAgICAgICBvdXRwdXQgPSBOb25lCisKKyAgICAgICAgIyBvbmx5IGhhbmRsZSBsb2NhbCBmaWxlIGhlcmUgYXMgaHR0cC9mdHAgd2VyZSBoYW5kbGVkIGFib3ZlIHZpYSBwaXBlCisgICAgICAgIGlmIHJlZGlyZWN0X3RhcmdldDoKKyAgICAgICAgICAgIGlmIHJlZGlyZWN0X3RhcmdldC5zdGFydHN3aXRoKCJjb25maWc6Ly8iKToKKyAgICAgICAgICAgICAgICBtID0gcmUuc2VhcmNoKHNlbGYubG9jYWxfbmFtZV9wYXR0ZXJuLCByZWRpcmVjdF90YXJnZXQpCisgICAgICAgICAgICAgICAgaWYgbToKKyAgICAgICAgICAgICAgICAgICAgam9pbl9vdXRwdXQgPSAnJy5qb2luKGl0ZXIob3V0cHV0KSkKKyAgICAgICAgICAgICAgICAgICAgc3RvcmVfcmVzdWx0ID0gc2VsZi5zdG9yZS5zZXRfdXNlcl9kYXRhX2ZpbGUobS5ncm91cCgxKSwgam9pbl9vdXRwdXQpCisgICAgICAgICAgICAgICAgICAgIGlmIHN0b3JlX3Jlc3VsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdCA9IGpzb24ubG9hZHMoc3RvcmVfcmVzdWx0KQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCJyZXN0IHN0b3JlIHJlc3VsdCBub3QganNvbiBmb3JtYXQiKQorICAgICAgICAgICAgICAgICAgICBpZiAnc3RhdHVzJyBpbiByZXN1bHQgYW5kIHJlc3VsdFsnc3RhdHVzJ10gPT0gJ3N1Y2Nlc3MnOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgICAgICAgICAgICAgZWxpZiAnbWVzc2FnZScgbm90IGluIHJlc3VsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLmVycm9yX21zZygicmVzdCBzdG9yZSByZXN1bHQgZG9lc24ndCBjb250YWluIGVycm9yIG1lc3NhZ2UiKQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKHJlc3VsdFsnbWVzc2FnZSddKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHByaW50IHNlbGYuZXJyb3JfbXNnKCJpbnZhbGlkIG5hbWUtaW4tZGIgKCVzKVxuIiAlIHJlZGlyZWN0X3RhcmdldCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dAorCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZ2VuZXJhdGVfY29tbWFuZF9vdXRwdXQKKyAgICAjCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBnZW5lcmF0ZV9jb21tYW5kX291dHB1dChyZXRfdmFsKToKKyAgICAgICAgaWYgKGlzaW5zdGFuY2UocmV0X3ZhbCwgc3RyKSBvciBcCisgICAgICAgICAgICBpc2luc3RhbmNlKHJldF92YWwsIGJ1ZmZlcikgb3IgXAorICAgICAgICAgICAgaXNpbnN0YW5jZShyZXRfdmFsLCBieXRlYXJyYXkpIG9yIFwKKyAgICAgICAgICAgIGlzaW5zdGFuY2UocmV0X3ZhbCwgdW5pY29kZSkpOgorCisgICAgICAgICAgICAjIHlpZWxkIHJldF92YWwKKyAgICAgICAgICAgIGlmIGxlbihyZXRfdmFsKSBhbmQgcmV0X3ZhbFstMV0gPT0gJ1xuJzoKKyAgICAgICAgICAgICAgICByZXRfdmFsID0gcmV0X3ZhbFs6LTFdCisgICAgICAgICAgICBmb3IgbGluZSBpbiByZXRfdmFsLnNwbGl0KCdcbicpOgorICAgICAgICAgICAgICAgIHlpZWxkIGxpbmUgKyAnXG4nCisgICAgICAgIGVsaWYgcmV0X3ZhbCAhPSBOb25lOgorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gcmV0X3ZhbDoKKyAgICAgICAgICAgICAgICB5aWVsZCBpdGVtCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZ2VuZXJhdGVfbGluZV9vdXRwdXQKKyAgICAjCisgICAgIyBUaGlzIGlzIGEgZ2VuZXJhdG9yIHRoYXQgd2lsbCBnZW5lcmF0ZSB0aGUgb3V0cHV0IG9mIHRoZSAKKyAgICAjIGNvbW1hbmQgZWl0aGVyIGFzIGEgc3RyaW5nLCBvciBieSBpdGVyYXRpbmcgb3ZlciBhIHJldHVybmVkCisgICAgIyBpdGVyYWJsZS4gIFRoaXMgd2F5LCBhIHN1YmNvbW1hbmQgY2FuIHJldHVybiBhbiBpdGVyYWJsZSB0byAKKyAgICAjIGxhemlseSBldmFsdWF0ZSBsYXJnZSBhbW91bnRzIG9mIG91dHB1dAorICAgICMKKyAgICBkZWYgZ2VuZXJhdGVfbGluZV9vdXRwdXQoc2VsZiwgbGluZSwgZG9udF9hc2spOgorICAgICAgICB3aGlsZSBsaW5lOgorICAgICAgICAgICAgc3VibGluZV9pbmRleCA9IHNlbGYuZmluZF93aXRoX3F1b3RpbmcobGluZSwgJzsnKQorICAgICAgICAgICAgaWYgc3VibGluZV9pbmRleCA8IDA6CisgICAgICAgICAgICAgICAgc3VibGluZV9pbmRleCA9IGxlbihsaW5lKQorICAgICAgICAgICAgc3VibGluZSA9IGxpbmVbOnN1YmxpbmVfaW5kZXhdCisgICAgICAgICAgICBsaW5lID0gbGluZVtzdWJsaW5lX2luZGV4KzE6XQorICAgICAgICAgICAgcmV0X3ZhbCA9IHNlbGYuaGFuZGxlX3NpbmdsZV9saW5lKHN1YmxpbmUpCisgICAgICAgICAgICBjbnQgPSAxCisgICAgICAgICAgICB0b3RhbF9jbnQgPSAwCisKKyAgICAgICAgICAgIChjb2xfd2lkdGgsIHNjcmVlbl9sZW5ndGgpID0gc2VsZi5wcC5nZXRfdGVybWluYWxfc2l6ZSgpCisgICAgICAgICAgICBpZiB0eXBlKHNlbGYubGVuZ3RoKSA9PSBpbnQ6CisgICAgICAgICAgICAgICAgc2NyZWVuX2xlbmd0aCA9IHNlbGYubGVuZ3RoCisKKyAgICAgICAgICAgIGZvciBpdGVtIGluIHNlbGYuZ2VuZXJhdGVfY29tbWFuZF9vdXRwdXQocmV0X3ZhbCk6CisgICAgICAgICAgICAgICAgaWYgbm90IGRvbnRfYXNrOgorICAgICAgICAgICAgICAgICAgICBpbmNyID0gMSArIChtYXgoKGxlbihpdGVtLnJzdHJpcCgpKSAtIDEpLCAwKSAvIGNvbF93aWR0aCkKKyAgICAgICAgICAgICAgICAgICAgaWYgc2NyZWVuX2xlbmd0aCBhbmQgY250ICsgaW5jciA+PSBzY3JlZW5fbGVuZ3RoOgorICAgICAgICAgICAgICAgICAgICAgICAgcmF3X2lucHV0KCctLSBoaXQgcmV0dXJuIHRvIGNvbnRpbnVlLCAlcykgLS0nICUgdG90YWxfY250KQorICAgICAgICAgICAgICAgICAgICAgICAgY250ID0gMAorICAgICAgICAgICAgICAgICAgICBjbnQgKz0gaW5jcgorICAgICAgICAgICAgICAgICAgICB0b3RhbF9jbnQgKz0gaW5jcgorICAgICAgICAgICAgICAgIHlpZWxkIGl0ZW0KKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBoYW5kbGVfbXVsdGlwYXJ0X2xpbmUKKyAgICAjCisgICAgIyB0aGlzIGlzIHRoZSBvdXRlcm1vc3QgaGFuZGxlciB0aGF0IHNob3VsZCBwcmludAorICAgICMKKyAgICBkZWYgaGFuZGxlX211bHRpcGFydF9saW5lKHNlbGYsIGxpbmUpOgorICAgICAgICBwaXBlX2NtZHMgPSBOb25lCisgICAgICAgIHJlZGlyZWN0X3RhcmdldCA9IE5vbmUKKyAgICAgICAgb3V0cHV0ID0gTm9uZQorCisgICAgICAgICMgcGF0dGVybiBpczoKKyAgICAgICAgIyBzaW5nbGUgbGluZSBbOyBzaW5nbGUgbGluZV0qIFt8IC4uLl0gWz4ge2NvbmZ8ZnRwfGh0dHB9XQorCisgICAgICAgICMgZmlyc3QgdGFrZSBvZmYgdGhlIHBvdGVudGlhbCByZWRpcmVjdCBwYXJ0IHRoZW4gdGhlIHBpcGUgY21kcworICAgICAgICByZWRpcmVjdF9pbmRleCA9IHNlbGYuZmluZF93aXRoX3F1b3RpbmcobGluZSwgJz4nLCBUcnVlKQorICAgICAgICBpZiByZWRpcmVjdF9pbmRleCA+PSAwOgorICAgICAgICAgICAgcmVkaXJlY3RfdGFyZ2V0ID0gbGluZVtyZWRpcmVjdF9pbmRleCsxOl0uc3RyaXAoKQorICAgICAgICAgICAgbGluZSA9IGxpbmVbOnJlZGlyZWN0X2luZGV4XS5zdHJpcCgpCisgICAgICAgIHBpcGVfaW5kZXggPSBzZWxmLmZpbmRfd2l0aF9xdW90aW5nKGxpbmUsICd8JykKKyAgICAgICAgaWYgcGlwZV9pbmRleCA+PSAwOgorICAgICAgICAgICAgcGlwZV9jbWRzID0gbGluZVtwaXBlX2luZGV4KzE6XS5zdHJpcCgpCisgICAgICAgICAgICBsaW5lID0gbGluZVs6cGlwZV9pbmRleF0uc3RyaXAoKQorICAgICAgICAjIHJlbWFpbmluZyB0ZXh0IGlzIHNpbmdsZSBsaW5lcyBzZXBhcmF0ZWQgYnkgJzsnIC0gaGFuZGxlIHRoZW0KKyAgICAgICAgb3V0cHV0ID0gc2VsZi5nZW5lcmF0ZV9saW5lX291dHB1dChsaW5lLCBwaXBlX2NtZHMgb3IgcmVkaXJlY3RfdGFyZ2V0KQorCisgICAgICAgICMgbm93IG91dHB1dCBldmVyeXRoaW5nCisgICAgICAgIGlmIHBpcGVfY21kcyBvciByZWRpcmVjdF90YXJnZXQ6CisgICAgICAgICAgICBvdXRwdXQgPSBzZWxmLmhhbmRsZV9waXBlX2FuZF9yZWRpcmVjdChwaXBlX2NtZHMsIHJlZGlyZWN0X3RhcmdldCwgb3V0cHV0KQorCisgICAgICAgIGlmIG91dHB1dCAhPSBOb25lOgorICAgICAgICAgICAgZm9yIGxpbmUgaW4gb3V0cHV0OgorICAgICAgICAgICAgICAgIHByaW50IGxpbmUucnN0cmlwKCkKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBjcF93YXRjaAorICAgICMKKyAgICBkZWYgY3Bfd2F0Y2goc2VsZiwgd29yZHMsIHRleHQsIGNvbXBsZXRpb25fY2hhcik6CisgICAgICAgIGlmIGNvbXBsZXRpb25fY2hhciA9PSBvcmQoJz8nKToKKyAgICAgICAgICAgIGlmIGxlbih3b3JkcykgPiAxOgorICAgICAgICAgICAgICAgIGNvbW1hbmQuZG9fY29tbWFuZF9jb21wbGV0aW9uX2hlbHAod29yZHNbMTpdLCB0ZXh0KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLnByaW50X2NvbXBsZXRpb25faGVscChzZWxmLmhlbHBfc3BsYXNoKFtdLCB0ZXh0KSkKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBpZiBsZW4od29yZHMpID09IDE6CisgICAgICAgICAgICBpdGVtcyA9IHNlbGYuY29tbWFuZHNfZm9yX2N1cnJlbnRfbW9kZV9zdGFydGluZ193aXRoKHRleHQpCisgICAgICAgICAgICByZXR1cm4gdXRpZi5hZGRfZGVsaW0oaXRlbXMsICcgJykKKyAgICAgICAgZWxzZTogICAKKyAgICAgICAgICAgIHJldHVybiBjb21tYW5kLmRvX2NvbW1hbmRfY29tcGxldGlvbih3b3Jkc1sxOl0sIHRleHQpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgZG9fd2F0Y2gKKyAgICAjICAgb25seSBjYWxsZWQgdG8gZGlzcGxheSBoZWxwCisgICAgIworICAgIGRlZiBkb193YXRjaChzZWxmLCB3b3Jkcyk6CisgICAgICAgIHJldHVybiAnd2F0Y2g6IHJlcGVhdCBpbmRpY2F0ZWQgY29tbWFuZCBhZnRlciB3YXRjaCBrZXl3b3JkJworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGhhbmRsZV93YXRjaF9jb21tYW5kCisgICAgIworICAgICMgaGFuZGxlIHRoaXMgaGVyZSBiZWNhdXNlIHRoaXMgaXMgYSBDTEktb25seSBjb21tYW5kCisgICAgIyBMT09LISBUaGlzIGNvdWxkIGJlIHVzaW5nIGN1cnNlcywgYnV0IHRoYXQgaGFzIHNvbWUgY29tcGxpY2F0aW9ucyB3aXRoIAorICAgICMgcG90ZW50aWFsbHkgbWVzc2luZyB1cCB0aGUgdGVybWluYWwuICBUaGlzIGlzIGNoZWFwIGJ1dCBkb3duc2lkZQorICAgICMgaXMgaXQgdXNlcyB1cCB0aGUgc2Nyb2xsYnVmZmVyLi4uCisgICAgIworICAgIGRlZiBoYW5kbGVfd2F0Y2hfY29tbWFuZChzZWxmLCBsaW5lKToKKyAgICAgICAgIworICAgICAgICB3b3JkcyA9IGxpbmUuc3BsaXQoKQorICAgICAgICBpZiBsZW4od29yZHMpID09IDA6CisgICAgICAgICAgICByZXR1cm4gc2VsZi5zeW50YXhfbXNnKCd3YXRjaDogY29tbWFuZCB0byB3YXRjaCBtaXNzaW5nJykKKyAgICAgICAgICAgIAorICAgICAgICBpZiBsZW4od29yZHMpIGFuZCB3b3Jkc1swXSA9PSAnd2F0Y2gnOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYuZXJyb3JfbXNnKCd3YXRjaCBjb21tYW5kIG5vdCBzdXBwb3J0ZWQgZm9yIHdhdGNoJykKKworICAgICAgICB3aGlsZSBUcnVlOiAjIG11c3QgY29udHJvbC1DIHRvIGdldCBvdXQgb2YgdGhpcworICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5oYW5kbGVfbXVsdGlwYXJ0X2xpbmUobGluZSkgCisgICAgICAgICAgICBpZiBvdXRwdXQ6CisgICAgICAgICAgICAgICAgb3Muc3lzdGVtKCJjbGVhciIpCisgICAgICAgICAgICAgICAgcHJpbnQgIkV4ZWN1dGluZyAlcyAiICUgbGluZQorICAgICAgICAgICAgICAgIHByaW50IG91dHB1dAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCAiRXhlY3V0aW5nICVzICIgJSBsaW5lCisgICAgICAgICAgICB0aW1lLnNsZWVwKDIpCisKKyAgICAjCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGxvb3AKKyAgICAjICB0aGlzIGlzIGp1c3QgZGlzcGF0Y2hpbmcgdGhlIGNvbW1hbmQgYW5kIGhhbmRsaW5nIGVycm9ycworICAgICMKKyAgICBkZWYgbG9vcChzZWxmKToKKyAgICAgICAgY29tbWFuZC5hY3Rpb25faW52b2tlKCd3YWl0LWZvci1jb250cm9sbGVyJywgKDUpKQorCisgICAgICAgIGlmIHNlbGYuY29udHJvbGxlcjoKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICB2ZXJzaW9uX3VybCA9ICdodHRwOi8vJXMvcmVzdC92MS9zeXN0ZW0vdmVyc2lvbicgJSBzZWxmLmNvbnRyb2xsZXIKKyAgICAgICAgICAgICAgICB2ZXJzaW9uID0gc2VsZi5yZXN0X3NpbXBsZV9yZXF1ZXN0X3RvX2RpY3QodmVyc2lvbl91cmwpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIHZlcnNpb24gPSBbeydjb250cm9sbGVyJyA6ICdSRVNUIEFQSSBGQUlMVVJFXG4nfV0KKworICAgICAgICAgICAgcHJpbnQgImRlZmF1bHQgY29udHJvbGxlcjogJXMsICVzIiAlIChzZWxmLmNvbnRyb2xsZXIsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZXJzaW9uWzBdWydjb250cm9sbGVyJ10pCisgICAgICAgICAgICAjCisgICAgICAgICAgICAjIHZucyBmZWF0dXJlIGVuYWJsZW1lbnQuCisgICAgICAgICAgICAjICB3aGVuIHZucyBpcyBlbmFibGVkLCBjYWxsIGEgaW5pdCBwcm9jZWR1cmUKKyAgICAgICAgICAgICMKKyAgICAgICAgICAgIGlmIG9ub3MgPT0gMDoKKyAgICAgICAgICAgICAgICBzZWxmLm5ldHZpcnRfZmVhdHVyZV9lbmFibGVkKCkKKworICAgICAgICB3aGlsZSBzZWxmLnJ1bjoKKyAgICAgICAgICAgICMgR2V0IGNvbW1hbmQgbGluZSAtIHRoaXMgd2lsbCB1c2UgdGhlIGNvbW1hbmQgY29tcGxldGlvbiBhYm92ZQorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICNyZXN0X3RvX21vZGVsLnZhbGlkYXRlX3N3aXRjaCgpCisgICAgICAgICAgICAgICAgdXJsX2NhY2hlLmNsZWFyX2NhY2hlZF91cmxzKCkKKyAgICAgICAgICAgICAgICBsaW5lID0gcmF3X2lucHV0KHNlbGYucHJvbXB0KQorICAgICAgICAgICAgICAgIGlmIHNlbGYuYmF0Y2g6CisgICAgICAgICAgICAgICAgICAgIHByaW50IGxpbmUKKyAgICAgICAgICAgICAgICBtID0gcmUuc2VhcmNoKCded2F0Y2ggKC4qKSQnLCBsaW5lKSAKKyAgICAgICAgICAgICAgICBpZiBtOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZV93YXRjaF9jb21tYW5kKG0uZ3JvdXAoMSkpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVfbXVsdGlwYXJ0X2xpbmUobGluZSkKKyAgICAgICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdDoKKyAgICAgICAgICAgICAgICBzZWxmLmNvbXBsZXRpb25fcmVzZXQoKQorICAgICAgICAgICAgICAgIHByaW50ICJcbkludGVycnVwdC4iCisgICAgICAgICAgICBleGNlcHQgRU9GRXJyb3I6CisgICAgICAgICAgICAgICAgcHJpbnQgIlxuRXhpdGluZy4iCisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBleGNlcHQgdXJsbGliMi5IVFRQRXJyb3IsIGU6CisgICAgICAgICAgICAgICAgZXJyb3JzID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSkKKyAgICAgICAgICAgICAgICBwcmludCBzZWxmLmVycm9yX21zZygiJXMiICUgc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcnMpKQorICAgICAgICAgICAgZXhjZXB0IHVybGxpYjIuVVJMRXJyb3IsIGU6CisgICAgICAgICAgICAgICAgcHJpbnQgc2VsZi5lcnJvcl9tc2coImNvbW11bmljYXRpbmcgd2l0aCBSRVNUIEFQSSBzZXJ2ZXIgb24gJXMgIiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLSBOZXR3b3JrIGVycm9yOiAlcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzZWxmLmNvbnRyb2xsZXIsIGUucmVhc29uKSkKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgcHJpbnQgIlxuRXJyb3IgcnVubmluZyBjb21tYW5kICclcycuXG4iICUgbGluZQorICAgICAgICAgICAgICAgIGlmIHNlbGYuZGVidWcgb3Igc2VsZi5kZWJ1Z19iYWNrdHJhY2U6CisgICAgICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgSW5pdGlhbGl6YXRpb24gY3JhenluZXNzIHRvIG1ha2UgaXQgd29yayBhY3Jvc3MgcGxhdGZvcm1zLiBNYW55IHBsYXRmb3JtcyBkb24ndCBpbmNsdWRlCisjIEdOVSByZWFkbGluZSAoZS5nLiBtYWMgb3MgeCkgYW5kIHdlIG5lZWQgdG8gY29tcGVuc2F0ZSBmb3IgdGhpcworCit0cnk6CisgICAgaW1wb3J0IHJlYWRsaW5lCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgdHJ5OgorICAgICAgICBpbXBvcnQgcHlyZWFkbGluZSBhcyByZWFkbGluZQorICAgIGV4Y2VwdCBJbXBvcnRFcnJvcjoKKyAgICAgICAgcHJpbnQgIkNhbid0IGZpbmQgYW55IHJlYWRsaW5lIGVxdWl2YWxlbnQgLSBhYm9ydGluZy4iCitlbHNlOgorICAgIGlmICdsaWJlZGl0JyBpbiByZWFkbGluZS5fX2RvY19fOgorICAgICAgICAjIG5lZWRlZCBmb3IgTWFjLCBwbGVhc2UgZml4IEFwcGxlCisgICAgICAgIHJlYWRsaW5lLnBhcnNlX2FuZF9iaW5kICgiYmluZCBeSSBybF9jb21wbGV0ZSIpCisgICAgZWxzZToKKyAgICAgICAgcmVhZGxpbmUucGFyc2VfYW5kX2JpbmQoInRhYjogY29tcGxldGUiKQorICAgICAgICByZWFkbGluZS5wYXJzZV9hbmRfYmluZCgiPzogcG9zc2libGUtY29tcGxldGlvbnMiKQorCisgIAorIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBSdW4gdGhlIHNoZWxsCisKK2RlZiBtYWluKCk6CisgICAgZ2xvYmFsIGNsaQorICAgICMgVW5jb21tZW50IHRoZSBuZXh0IHR3byBsaW5lcyB0byBlbmFibGUgcmVtb3RlIGRlYnVnZ2luZyB3aXRoIFB5RGV2CisgICAgIyBMT09LISBTaG91bGQgaGF2ZSBsb2dpYyBoZXJlIHRoYXQgZW5hYmxlcy9kaXNhYmxlcyB0aGUgcHlkZXZkIHN0dWZmCisgICAgIyBhdXRvbWF0aWNhbGx5IHdpdGhvdXQgcmVxdWlyaW5nIHVuY29tbWVudGluZyAoYW5kLCBtb3JlIGltcG9ydGFudGx5LAorICAgICMgcmVtZW1iZXJpbmcgdG8gcmVjb21tZW50IGJlZm9yZSBjb21taXR0aW5nKS4KKyAgICAjIChlLmcuIGNoZWNraW5nIGVudmlyb25tZW50IHZhcmlhYmxlIG9yIHNvbWV0aGluZyBsaWtlIHRoYXQpCisgICAgI3B5dGhvbl9wYXRoID0gb3MuZW52aXJvbi5nZXQoJ1BZVEhPTlBBVEgnLCAnJykKKyAgICAjaWYgJ3B5ZGV2LmRlYnVnJyBpbiBweXRob25fcGF0aDoKKyAgICB0cnk6CisgICAgICAgIGltcG9ydCBweWRldmQKKyAgICAgICAgcHlkZXZkLnNldHRyYWNlKCkKKyAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICBwYXNzCisKKyAgICAjIFByb2Nlc3MgJy0taW5pdCcgYXJndW1lbnQgc2luY2UgaXQgIGdhdGVzIHByb2dyZXNzIHRvIHJlc3Qgb2YgcHJvY2Vzc2luZworICAgICMgYXMgdGhpcyBpcyBhIHNwZWNpYWwgYXJndW1lbnQsIGl0IGlzIHJlcXVpcmVkIHRvIGJlIGZpcnN0IGFyZ3VtZW50IChpZiB1c2VkKQorICAgIGNoZWNrX3JlYWR5X2ZpbGUgPSBUcnVlCisgICAgaWYgbGVuKHN5cy5hcmd2KSA+IDE6CisgICAgICAgIGlmIHN5cy5hcmd2WzFdID09ICctLWluaXQnOgorICAgICAgICAgICAgY2hlY2tfcmVhZHlfZmlsZSA9IEZhbHNlCisgICAgCisgICAgIyBEbyBub3Qgc3RhcnQgQ0xJIHRpbGwgdGhlIHN5c3RlbW4gaXMgcmVhZHkKKyAgICAjIChhbGxvdyB1c2VyIHRvIF5DIGFuZCBnZXQgdG8gU0ROU2ggZm9yIGRlYnVnIGV0YykKKyAgICBub3RfcmVhZHlfZmlsZSA9ICcvb3B0L3NkbnBsYXRmb3JtL3J1bi9zdGFydGluZycKKyAgICBpZiBjaGVja19yZWFkeV9maWxlOgorICAgICAgICB0cnk6CisgICAgICAgICAgICB3aGlsZSBUcnVlOgorICAgICAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKG5vdF9yZWFkeV9maWxlKToKKyAgICAgICAgICAgICAgICAgICAgd2l0aCBvcGVuKG5vdF9yZWFkeV9maWxlLCAiciIpIGFzIGY6CisgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gZi5yZWFkKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxlbihtZXNzYWdlKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCBtZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnQ29udHJvbGxlciBub3QgeWV0IHJlYWR5IC4uLiB3YWl0aW5nIDUgc2VjJworICAgICAgICAgICAgICAgICAgICB0aW1lLnNsZWVwKDUpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMobm90X3JlYWR5X2ZpbGUpOgorICAgICAgICAgICAgICAgIHJlc3AgPSByYXdfaW5wdXQoJ0NvbnRyb2xsZXIgaXMgbm90IHlldCByZWFkeS4gRG8geW91IHN0aWxsIHdhbnQgdG8gY29udGludWUgdG8gdGhlIENMST8gW25dJykKKyAgICAgICAgICAgICAgICBpZiByZXNwIGFuZCAieWVzIi5zdGFydHN3aXRoKHJlc3AubG93ZXIoKSk6CisgICAgICAgICAgICAgICAgICAgIHByaW50ICdDb250aW51aW5nIHdpdGggQ0xJIGRlc3BpdGUgaW5pdGlhbGl6YXRpb24gZXJyb3IgLi4uJworICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHByaW50ICdBYm9ydGluZyBDb250cm9sbGVyIENMSSBsb2dpbi4nCisgICAgICAgICAgICAgICAgICAgIHRpbWUuc2xlZXAoMSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisKKyAgICAjIFN0YXJ0IENMSQorICAgIGNsaSA9IFNETlNoKCkKKyAgICBjbGkuaW5pdCgpCisgICAgY2xpLmxvb3AoKSAgICAgICAgICAgICAgCisKK2lmIF9fbmFtZV9fID09ICdfX21haW5fXyc6CisgICAgbWFpbigpCmRpZmYgLS1naXQgYS9jbGkvY2xpbW9kZWxpbmZvLnB5IGIvY2xpL2NsaW1vZGVsaW5mby5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MzhlZGE4Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2NsaW1vZGVsaW5mby5weQpAQCAtMCwwICsxLDE4MzMgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEwLDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKKyMgIHNkbnNoIC0gVGhlIENvbnRyb2xsZXIgU2hlbGwKKyMgIG1vZHVsZTogY2xpbW9kZWxpbmZvLnB5CisjCisjIFRoaXMgbW9kdWxlIGNvbnRhaW5zIGNsYXNzZXMgdGhhdCBoZWxwIGZpbGwgb3V0IG1vcmUgb2YgdGhlIENMSSdzIG1vZGVsCisjIHRoaXMgd2lsbCBkbyBhIG1lcmdlIHdpdGggdGhlIG1vZGVsX2luZm9fbGlzdCBvYmplY3QgdGhhdCBpcyBnZW5lcmF0ZWQgCisjIGRpcmVjdGx5IGZyb20gdGhlIGRqYW5nbyBtb2RlbHMKKyMKKyMgdGhlIG1vdGl2YXRpb24gaXMgdGhhdCBjb21tYW5kcy9vYmplY3RzIHRoYXQgYXJlIG5vdCBiYXNlZCBpbiB0aGUKKyMgbW9kZWwgc2hvdWxkIGJlIGFibGUgdG8gdGFrZSBhZHZhbnRhZ2Ugb2YgZnVuY3Rpb25zIGxpa2UgcHJldHR5cHJpbnQKKyMgb3IgY29tcGxldGlvbgorIworIyBhbHNvLCB0aGlzIGxldHMgdXMgYWRkIGluZm8gdG8gdGhlIG1vZGVsIHRoYXQgaXMgQ0xJLXNwZWNpZmljLgorIyBJbiB0aGF0IHJlc3BlY3QsIGl0IGlzIGEgbG90IGxpa2UgYSBkamFuZ28gaHRtbCB2aWV3IHdoZXJlIHRoZQorIyBjb2x1bW5zIGFyZSBwcmVzZW50ZWQgaW4gYSBjZXJ0YWluIG9yZGVyIGluIHRhYmxlcywgYW5kIGF0dHJpYnV0ZXMKKyMgYXJlIGdyb3VwZWQgdG9nZXRoZXIgaW4gZmllbGRzZXRzCisKKyMgZmllbGQtb3JkZXJpbmdzIG11c3QgaGF2ZSBhICdkZWZhdWx0JyBlbnRyeSB2YXJpYW50cyBmb3IgYnJpZWYvdmVyYm9zZQorCisjIExPT0shCisjIC0gc29ydCBoaW50cyBmb3Igc2hvdyBydW5uaW5nIAorIyAtIGp1c3RpZmljYXRpb24gZm9yIGNvbHVtbnMKKyMgLSBoYXZlIHByb3BlciBjbGFzcyBmb3Igb2JqX3R5cGVfaW5mbyA/CisKK2ltcG9ydCBtb2RlbF9pbmZvX2xpc3QgIyBsb2FkIHRoZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBtb2RlbCBkZWZpbml0aW9ucyBmcm9tIHRoZSBjb250cm9sbGVyCitpbXBvcnQgYmFzZTY0CitpbXBvcnQgc3RydWN0CitpbXBvcnQgcmUKK2ltcG9ydCBkb2N0ZXN0CisKK29ub3M9MQorY2xhc3MgQ2xpTW9kZWxJbmZvKCk6IAorICAgICMgc28gdGhlIG1vZGVsIGlzIGFjY2Vzc2libGUgZnJvbSB0aGUgZm9ybWF0dGVyIGZ1bmN0aW9ucworICAgIHNpbmdsZXRvbiA9IE5vbmUKKworCisgICAgZGphbmdvX21vZGVsX2RpY3QgPSB7fQorICAgIGNvbXBsZXRlX29ial90eXBlX2luZm9fZGljdCA9IHt9CisKKworICAgIGRlZiBfX2luaXRfXyhzZWxmKToKKyAgICAgICAgQ2xpTW9kZWxJbmZvLnNpbmdsZXRvbiA9IHNlbGYKKyAgICAgICAgc2VsZi5kamFuZ29fbW9kZWxfZGljdCA9IGRpY3QobW9kZWxfaW5mb19saXN0Lm1vZGVsX2luZm9fZGljdCkKKyAgICAgICAgc2VsZi5jb21wbGV0ZV9vYmpfdHlwZV9pbmZvX2RpY3QgPSBkaWN0KHNlbGYuZGphbmdvX21vZGVsX2RpY3QpCisKKyAgICAgICAgIyBDbGVhbiB1cCB0aGUgdGFibGVzIGZvciB0aGUgdXNlciBmaWVsZAorCisgICAgICAgICMgbWVyZ2UgZnJvbSBhZGRpdGlvbmFsX21vZGVsX2luZm9fZGljdAorCisgICAgICAgICMgTE9PSyEgc2hvdWxkIGJlIGFibGUgdG8gZG8gdGhpcyBieSBpbXBsZW1lbnRpbmcgYSByZWN1cnNpdmUgZGVlcCBjb3B5L3VwZGF0ZQorICAgICAgICBmb3Igb2JqX3R5cGUgaW4gc2VsZi5hZGRpdGlvbmFsX21vZGVsX2luZm9fZGljdC5rZXlzKCk6CisgICAgICAgICAgICAjIGlmIGEgbmV3IG9ial90eXBlLCBqdXN0IGNvcHkgaXQKKyAgICAgICAgICAgIGlmIG5vdCBvYmpfdHlwZSBpbiBzZWxmLmNvbXBsZXRlX29ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgICAgICBzZWxmLmNvbXBsZXRlX29ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV0gPSBkaWN0KHNlbGYuYWRkaXRpb25hbF9tb2RlbF9pbmZvX2RpY3Rbb2JqX3R5cGVdKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIGlmIGFuIGV4aXN0aW5nIG9ial90eXBlLCB0aGVuIGdvIHRocm91Z2gga2V5cyAod2Uga25vdyBpdCdzIGEgZGljdCkKKyAgICAgICAgICAgICAgICBmb3Igb2JqX2luZm8gaW4gc2VsZi5hZGRpdGlvbmFsX21vZGVsX2luZm9fZGljdFtvYmpfdHlwZV0ua2V5cygpOgorICAgICAgICAgICAgICAgICAgICBpZiBub3Qgb2JqX2luZm8gaW4gc2VsZi5jb21wbGV0ZV9vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgb2JqX2luZm8gPT0gJ2ZpZWxkLW9yZGVyaW5ncyc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb21wbGV0ZV9vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdW29ial9pbmZvXSA9IGRpY3Qoc2VsZi5hZGRpdGlvbmFsX21vZGVsX2luZm9fZGljdFtvYmpfdHlwZV1bb2JqX2luZm9dKQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHNoYWxsb3cgY29weQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuY29tcGxldGVfb2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVtvYmpfaW5mb10gPSBzZWxmLmFkZGl0aW9uYWxfbW9kZWxfaW5mb19kaWN0W29ial90eXBlXVtvYmpfaW5mb10KKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG9ial9pbmZvID09ICJmaWVsZHMiOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVsX2ZpZWxkcyA9IHNlbGYuY29tcGxldGVfb2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRsX2ZpZWxkcyA9IHNlbGYuYWRkaXRpb25hbF9tb2RlbF9pbmZvX2RpY3Rbb2JqX3R5cGVdWydmaWVsZHMnXQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBib3RoIG9iamVjdHMgaGF2ZSBmaWVsZHMgLSBiZSBpbnRlbGxpZ2VudAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBmIGluIGFkZGxfZmllbGRzLmtleXMoKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGYgaW4gbW9kZWxfZmllbGRzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWxfZmllbGRzW2ZdID0gZGljdChhZGRsX2ZpZWxkc1tmXSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBhdHRyIGluIGFkZGxfZmllbGRzW2ZdLmtleXMoKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlbF9maWVsZHNbZl1bYXR0cl0gPSBhZGRsX2ZpZWxkc1tmXVthdHRyXQorICAgICAgICAjcHJpbnQgc2VsZi5jb21wbGV0ZV9vYmpfdHlwZV9pbmZvX2RpY3QKKworICAgIGRlZiBhZGRfdHlwZV9pbmZvKHNlbGYsIG5hbWUsIHR5cGVfaW5mbyk6CisgICAgICAgIHNlbGYuY29tcGxldGVfb2JqX3R5cGVfaW5mb19kaWN0W25hbWVdID0gdHlwZV9pbmZvCisKKyAgICBkZWYgZ2V0X2NvbXBsZXRlX29ial90eXBlX2luZm9fZGljdChzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuY29tcGxldGVfb2JqX3R5cGVfaW5mb19kaWN0CisKKyAgICBkZWYgZ2V0X2ZpZWxkc190b19wcmludChzZWxmLCBvYmpfdHlwZSwgZmllbGRfb3JkZXJpbmc9J2RlZmF1bHQnKToKKyAgICAgICAgZmllbGRzX3RvX3ByaW50ID0gW10KKyAgICAgICAgb2JqX3R5cGVfaW5mbyA9IHNlbGYuY29tcGxldGVfb2JqX3R5cGVfaW5mb19kaWN0LmdldChvYmpfdHlwZSwgTm9uZSkKKyAgICAgICAgaWYgb2JqX3R5cGVfaW5mbzoKKyAgICAgICAgICAgIGlmICdmaWVsZC1vcmRlcmluZ3MnIGluIG9ial90eXBlX2luZm86CisgICAgICAgICAgICAgICAgZmllbGRzX3RvX3ByaW50ID0gb2JqX3R5cGVfaW5mb1snZmllbGQtb3JkZXJpbmdzJ10uZ2V0KGZpZWxkX29yZGVyaW5nLCBbXSkKKyAgICAgICAgICAgIGlmIGxlbihmaWVsZHNfdG9fcHJpbnQpID09IDA6ICMgZWl0aGVyIG5vIGZpZWxkLW9yZGVyaW5ncyBvciBjb3VsZG4ndCBmaW5kIHNwZWNpZmljCisgICAgICAgICAgICAgICAgZmllbGRzX3RvX3ByaW50ID0gb2JqX3R5cGVfaW5mb1snZmllbGRzJ10ua2V5cygpCisgICAgICAgIHJldHVybiBmaWVsZHNfdG9fcHJpbnQKKworICAgIGRlZiBnZXRfZmllbGRfaW5mbyhzZWxmLCBvYmpfdHlwZSwgZmllbGRfbmFtZSk6CisgICAgICAgIG9ial90eXBlX2luZm8gPSBzZWxmLmNvbXBsZXRlX29ial90eXBlX2luZm9fZGljdC5nZXQob2JqX3R5cGUsIE5vbmUpCisgICAgICAgIHJldHVybiBvYmpfdHlwZV9pbmZvWydmaWVsZHMnXS5nZXQoZmllbGRfbmFtZSwgTm9uZSkKKworICAgICMgTE9PSyEgUmVmYWN0b3IgLSBTaG91bGQgd2UgbWVyZ2UgdGhpcyB3aXRoIG1vZGVsX2luZm9fbGlzdD8KKyAgICAjaWYgKG9ub3MgPT0gMSk6CisgICAgICAgICMgZG8gbm90aGluZworICAgICMgICAgYWRkaXRpb25hbF9tb2RlbF9pbmZvX2RpY3QgPSB7fQorICAgICNlbGlmIChvbm9zPT0yKToKKyAgICBpZiAob25vcyA9PSAxKToKKyAgICAgICAgYWRkaXRpb25hbF9tb2RlbF9pbmZvX2RpY3QgPSB7CisgICAgICAgICdzd2l0Y2hlcycgOiB7CisgICAgICAgICAgICAjIHN3aXRjaGVzIGFyZSBub3cgZGlyZWN0bHkgZmV0Y2hlZCB2aWEgcmVzdCBhcGkuCisgICAgICAgICAgICAjICdoYXNfcmVzdF9tb2RlbCcgaXNuJ3Qgc2V0CisgICAgICAgICAgICAjIGZvciB0aGlzIHRhYmxlLgorICAgICAgICAgICAgIyBYWFggcGVyaGFwcyB0aGVzZSB0eXBlcyBvZiBkZXNjcmlwdGlvbnMgbmVlZCB0byBiZQorICAgICAgICAgICAgIyBpbiBhIGZpbGUgb3RoZXIgdGhhbiBjbGltb2RlbGluZm8/CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICd1c2VyLWNvbmZpZycsCisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdkaXNwbGF5JywKKyAgICAgICAgICAgICd1cmwnICAgICAgICAgICAgIDogJ3N3aXRjaGVzJywKKyAgICAgICAgICAgICdjb25maWctb2JqLXR5cGUnIDogJ3N3aXRjaC1jb25maWcnLAorCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAnZHBpZCcgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJzogMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleSc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ0NoYXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnYWN0aXZlJyAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2NvcmUtc3dpdGNoJyAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnY29ubmVjdGVkLXNpbmNlJyAgICA6IHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdjYXBhYmlsaXRpZXMnICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnYWN0aW9ucycgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2lwLWFkZHJlc3MnICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdzb2NrZXQtYWRkcmVzcycgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnYnVmZmVycycgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2NvbnRyb2xsZXInICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndGFibGVzJyAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3N3aXRjaC1hbGlhcycgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX3RleHQnIDogJ1N3aXRjaCBhbGlhcyBmb3IgRFBJRCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndHVubmVscycgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICd0dW5uZWwtc3VwcG9ydGVkJyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3R1bm5lbC10ZXJtaW5hdGlvbicgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndHVubmVsLWFjdGl2ZScgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdkcC1kZXNjJyAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2h3LWRlc2MnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnc3ctZGVzYycgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdzZXJpYWwtbnVtJyAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ludGVyZmFjZXMnIDogeworICAgICAgICAgICAgIyBzd2l0Y2hlcyBhcmUgbm93IGRpcmVjdGx5IGZldGNoZWQgdmlhIHJlc3QgYXBpLgorICAgICAgICAgICAgIyAnaGFzX3Jlc3RfbW9kZWwnIGlzbid0IHNldAorICAgICAgICAgICAgIyBmb3IgdGhpcyB0YWJsZS4KKyAgICAgICAgICAgICMgWFhYIHBlcmhhcHMgdGhlc2UgdHlwZXMgb2YgZGVzY3JpcHRpb25zIG5lZWQgdG8gYmUKKyAgICAgICAgICAgICMgaW4gYSBmaWxlIG90aGVyIHRoYW4gY2xpbW9kZWxpbmZvPworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAnZGlzcGxheScsCisgICAgICAgICAgICAndXJsJyAgICAgICAgICAgICA6ICdzd2l0Y2hlcycsCisgICAgICAgICAgICAnY29uZmlnLW9iai10eXBlJyA6ICdzd2l0Y2gtaW50ZXJmYWNlLWNvbmZpZycsCisKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICdpZCcgICAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJzogNDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleSc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA6ICdjb21wb3VuZC1rZXknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlbHBfdGV4dCcgOiAnIyFkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBvdW5kX2tleV9maWVsZHMnOiBbICdkcGlkJyBdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZHBpZCcgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyd0eXBlJyAgICAgICAgICAgOiAnRm9yZWlnbktleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIydyZWxfZmllbGRfbmFtZScgOiAnZHBpZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIydyZWxfb2JqX3R5cGUnICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICduYW1lJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdudW1iZXInICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdjb25maWcnICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdzdGF0ZScgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdjdXJyZW50LWZlYXR1cmVzJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdhZHZlcnRpc2VkLWZlYXR1cmVzJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdzdXBwb3J0ZWQtZmVhdHVyZXMnICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdwZWVyLWZlYXR1cmVzJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisKKworICAgICAgICAnc3dpdGNoLWNvbmZpZycgOiB7CisgICAgICAgICAgICAnc291cmNlJyA6ICdkZWJ1Zy1vbmx5JywKKyAgICAgICAgfSwKKworCisgICAgICAgICd0dW5uZWwtY29uZmlnJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ3VzZXItY29uZmlnJywKKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ2Rpc3BsYXknLAorICAgICAgICAgICAgJ3VybCcgICAgICAgICAgICAgOiAndHVubmVsLWNvbmZpZycsCisgICAgICAgICAgICAnY29uZmlnLW9iai10eXBlJyA6ICd0dW5uZWwtY29uZmlnJywKKworICAgICAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAgICAgJ3R1bm5lbC1pZCcgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJzogMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleSc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ0NoYXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAncG9saWN5LWNvbmZpZycgOiB7CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICd1c2VyLWNvbmZpZycsCisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdkaXNwbGF5JywKKyAgICAgICAgICAgICd1cmwnICAgICAgICAgICAgIDogJ3BvbGljeS1jb25maWcnLAorICAgICAgICAgICAgJ2NvbmZpZy1vYmotdHlwZScgOiAncG9saWN5LWNvbmZpZycsCisKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICdwb2xpY3ktaWQnICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xlbmd0aCc6IDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbWFyeV9rZXknOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgJ3N3aXRjaC1hbGlhcycgOiB7CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICd1c2VyLWNvbmZpZycsCisgICAgICAgICAgICAnY2FzY2FkZV9kZWxldGUnICA6IFRydWUsCisgICAgICAgICAgICB9LAorCisKKyAgICAgICAgJ3N3aXRjaC1pbnRlcmZhY2UtY29uZmlnJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ2RlYnVnLW9ubHknLAorICAgICAgICAgICAgJ2Nhc2NhZGVfZGVsZXRlJyAgOiBUcnVlLAorCisgICAgICAgICAgICAnZmllbGRzJyAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAnYnJvYWRjYXN0JyAgICAgICAgICAgOiB7ICdlZGl0JyA6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnbmFtZScgICAgICAgICAgICAgICAgOiB7ICdlZGl0JyA6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnbW9kZScgICAgICAgICAgICAgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9LAorCisKKyAgICAgICAgJ2hvc3QtYWxpYXMnIDogeworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAndXNlci1jb25maWcnLAorICAgICAgICAgICAgJ2Nhc2NhZGVfZGVsZXRlJyAgOiBUcnVlLAorICAgICAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKworCisgICAgICAgICdsaW5rJyA6IHsgCisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdzd2l0Y2gnLAorCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAnbGluay10eXBlJyAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnIDogJ0NoYXJGaWVsZCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorCisKKyAgICAgICAgJ3BvcnQnIDogeworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAnZGVidWctb25seScsCisKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICdzd2l0Y2gnICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdudW1iZXInICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdjb25maWcnICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdzdGF0ZScgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdjdXJyZW50LWZlYXR1cmVzJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdhZHZlcnRpc2VkLWZlYXR1cmVzJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdzdXBwb3J0ZWQtZmVhdHVyZXMnICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdwZWVyLWZlYXR1cmVzJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgJ3N3aXRjaC1pbnRlcmZhY2VzJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnICAgIDogJ3N3aXRjaCcsCisKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICdJZHgnICAgICAgICAgICAgICAgICA6IHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgOiAnQ2hhckZpZWxkJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW1hcnlfa2V5JzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgZm9ybWF0J3Mgb3V0IG9mIHRoZSBzb3J0aW5nIGJ1c2luZXNzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICdzb3J0JyA6ICd0YWlsLWludGVnZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3N3aXRjaCcgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnIDogJ0NoYXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xlbmd0aCcgOiAzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdoYXJkd2FyZS1hZGRyZXNzJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdjb25maWcnICAgICAgICAgICAgICA6IHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnc3RhdGUnICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnc3RwLXN0YXRlJyAgICAgICAgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2N1cnJlbnQtZmVhdHVyZXMnICAgIDogeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdhZHZlcnRpc2VkLWZlYXR1cmVzJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdzdXBwb3J0ZWQtZmVhdHVyZXMnICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdwZWVyLWZlYXR1cmVzJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdyZWNlaXZlQnl0ZXMnICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdyZWNlaXZlUGFja2V0cycgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdyZWNlaXZlRXJyb3JzJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICd0cmFuc21pdEJ5dGVzJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICd0cmFuc21pdFBhY2tldHMnICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICd0cmFuc21pdEVycm9ycycgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9LAorCisgICAgICAgICdjb250cm9sbGVyX3N3aXRjaGVzJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ3VzZXItY29uZmlnJywKKyAgICAgICAgICAgIAorICAgICAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAgICAgJ2RwaWQnIDogeyAncHJpbWFyeV9rZXknIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgCisgICAgICAgICdob3N0LWNvbmZpZycgOiB7CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdzaG93JywKKyAgICAgICAgICAgICd1cmwnICAgICAgICAgICAgIDogJ2RldmljZScsCisKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICdJZHgnICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgOiAnQ2hhckZpZWxkJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnbWFjJyAgICAgICAgICAgICAgICA6IHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJzogMTcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnQ2hhckZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3ZlbmRvcicgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnaXBzJyAgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2F0dGFjaG1lbnQtcG9pbnRzJyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICd0YWcnICAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnaG9zdC1hbGlhcycgICAgICAgICAgOiB7ICdoZWxwX3RleHQnIDogJ0hvc3QgYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnbGFzdC1zZWVuJyAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVscF90ZXh0JzogJ0xhc3QgdGltZSBhIHBhY2tldCB3YXMgc2VlbiBieSB0aGUgY29udHJvbGxlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ0RhdGVUaW1lRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgJ2hvc3QnOiB7CisgICAgICAgICAgICAjIGhvc3RzIGFyZSBub3cgZGlyZWN0bHkgZmV0Y2hlZCB2aWEgcmVzdCBhcGkuICdoYXNfcmVzdF9tb2RlbCcgaXNuJ3Qgc2V0CisgICAgICAgICAgICAjIGZvciB0aGlzIHRhYmxlLgorICAgICAgICAgICAgIyBYWFggcGVyaGFwcyB0aGVzZSB0eXBlcyBvZiBkZXNjcmlwdGlvbnMgbmVlZCB0byBiZQorICAgICAgICAgICAgIyBpbiBhIGZpbGUgb3RoZXIgdGhhbiBjbGltb2RlbGluZm8/CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICd1c2VyLWNvbmZpZycsCisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdkaXNwbGF5JywKKyAgICAgICAgICAgICd1cmwnICAgICAgICAgICAgIDogJ2RldmljZScsCisgICAgICAgICAgICAnY29uZmlnLW9iai10eXBlJyA6ICdob3N0LWNvbmZpZycsCisKKyAgICAgICAgICAgICdmaWVsZHMnOiB7CisgICAgICAgICAgICAgICAgJ21hYycgICAgICAgICAgICAgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xlbmd0aCc6IDE3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleSc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndmxhbicgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVscF90ZXh0JyAgICAgICAgICAgIDogJ1ZMQU4gQXNzb2NpYXRlZCB3aXRoIGhvc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnICAgICAgICAgICAgICAgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICAgICAgICAgIDogJ0ludGVnZXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgICAgICAgICAgICAgICAgIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2VhcmNoYWJsZScgICAgICAgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdkcGlkJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgICAgICAgICAgIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICA6ICdGb3JlaWduS2V5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVsX2ZpZWxkX25hbWUnIDogJ2RwaWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxfb2JqX3R5cGUnICAgOiAnc3dpdGNoZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2lwdjQnICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIyBBdHRhY2htZW50IHBvaW50IGlzbid0IHNlYXJjaGFibGUKKyAgICAgICAgICAgICAgICAjJ2F0dGFjaG1lbnQtcG9pbnRzJyAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIydlZGl0JyA6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI30sCisgICAgICAgICAgICAgICAgJ2xhc3Qtc2VlbicgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlbHBfdGV4dCc6ICdMYXN0IHRpbWUgYSBwYWNrZXQgd2FzIHNlZW4gYnkgdGhlIGNvbnRyb2xsZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdEYXRlVGltZUZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSwKKworCisgICAgICAgICdob3N0LWF0dGFjaG1lbnQtcG9pbnQnIDogeworICAgICAgICAgICAgIyBkaXJlY3RseSBmZXRjaGVkIHZpYSByZXN0IGFwaS4gCisgICAgICAgICAgICAjICdoYXNfcmVzdF9tb2RlbCcgaXNuJ3Qgc2V0IGZvciB0aGlzIHRhYmxlLgorICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAnY29udHJvbGxlcicsCisgICAgICAgICAgICAndXJsJyAgICAgICAgICAgICA6ICdkZXZpY2UnLAorCisgICAgICAgICAgICAgJ2ZpZWxkcyc6IHsKKyAgICAgICAgICAgICAgICAnbWFjJyAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbF9maWVsZF9uYW1lJzogJ21hYycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbF9vYmpfdHlwZSc6ICdob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdGb3JlaWduS2V5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3ZsYW4nICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX3RleHQnOiAnVkxBTiBBc3NvY2lhdGVkIHdpdGggaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdJbnRlZ2VyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZWFyY2hhYmxlJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdpZCcgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX3RleHQnOiAnI3xtYWN8ZHBpZHxpbmdyZXNzLXBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJzogNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbWFyeV9rZXknOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ0NoYXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdkcGlkJyAgICAgICAgIDogeyAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVsX2ZpZWxkX25hbWUnOiAnZHBpZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxfb2JqX3R5cGUnOiAnc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnRm9yZWlnbktleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdpbmdyZXNzLXBvcnQnIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX3RleHQnOiAnT3BlbiBmbG93IHBvcnQgbnVtYmVyIG9mIGluZ3Jlc3MgcG9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdJbnRlZ2VyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnc3RhdHVzJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlbHBfdGV4dCc6ICdFcnJvciBkZXNjcmlwdGlvbiwgYmxhbmsgbWVhbiBubyBlcnJvciAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heF9sZW5ndGgnOiA2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnbGFzdC1zZWVuJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlbHBfdGV4dCc6ICdMYXN0IHRpbWUgYSBwYWNrZXQgd2FzIHNlZW4gYnkgdGhlIGNvbnRyb2xsZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdEYXRlVGltZUZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2lwdjQnICAgICAgICAgOiB7ICMgYWRkZWQgdG8gZW5hYmxlIHNlYXJjaGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2VhcmNoYWJsZScgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICB9LAorCisgICAgICAgICdob3N0LW5ldHdvcmstYWRkcmVzcyc6IHsKKyAgICAgICAgICAgICMgZGlyZWN0bHkgZmV0Y2hlZCB2aWEgcmVzdCBhcGkuIAorICAgICAgICAgICAgIyAnaGFzX3Jlc3RfbW9kZWwnIGlzbid0IHNldCBmb3IgdGhpcyB0YWJsZS4KKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ3N3aXRjaCcsCisgICAgICAgICAgICAndXJsJyAgICAgICAgICAgICA6ICdkZXZpY2UnLAorCisgICAgICAgICAgICAnZmllbGRzJzogeworICAgICAgICAgICAgICAgICdtYWMnICAgICAgICA6IHsgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVsX2ZpZWxkX25hbWUnOiAnbWFjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxfb2JqX3R5cGUnOiAnaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdGb3JlaWduS2V5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3ZsYW4nICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlbHBfdGV4dCc6ICdWTEFOIEFzc29jaWF0ZWQgd2l0aCBob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ0ludGVnZXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZWFyY2hhYmxlJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnaWQnICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVscF90ZXh0JzogJyN8bWFjfGlwdjQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xlbmd0aCc6IDY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleSc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2lwLWFkZHJlc3MnOiAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlbHBfdGV4dCc6ICdJUCBBZGRyZXNzIG9mIGhvc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xlbmd0aCc6IDE1LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnQ2hhckZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnbGFzdC1zZWVuJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlbHBfdGV4dCc6ICdMYXN0IHRpbWUgYSBwYWNrZXQgd2FzIHNlZW4gYnkgdGhlIGNvbnRyb2xsZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdEYXRlVGltZUZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2lwdjQnICAgICAgOiB7ICMgYWRkZWQgdG8gZW5hYmxlIHNlYXJjaGluZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heF9sZW5ndGgnOiAxNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ0NoYXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2RwaWQnICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZWFyY2hhYmxlJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICBlbHNlOgorICAgICAgICBhZGRpdGlvbmFsX21vZGVsX2luZm9fZGljdCA9IHsKKyAgICAgICAgJ2Zsb3ctZW50cnknIDogeworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAndXNlci1jb25maWcnLAorICAgICAgICAgICAndXBkYXRlLWFsaWFzJyAgICA6IFsnc3dpdGNoJywgJ3BvcnQnXSwKKyAgICAgICAgICAgIH0sCisKKworICAgICAgICAnZmVhdHVyZScgOiB7CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdkZWJ1Zy1vbmx5JywKKworICAgICAgICAgICAgJ2ZpZWxkcycgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgJ25ldHZpcnQtZmVhdHVyZScgICAgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2V9LAorICAgICAgICAgICAgICAgICdzdGF0aWMtZmxvdy1wdXNoZXItZmVhdHVyZScgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ3BlcmZvcm1hbmNlLW1vbml0b3ItZmVhdHVyZScgICA6IHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2V9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorCisKKyAgICAgICAgJ3N5c3RlbS1pbnRlcmZhY2VzJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnICAgIDogJycsCisKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICduYW1lJyAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgOiAnQ2hhckZpZWxkJyB9LAorICAgICAgICAgICAgICAgICdhZGRyJyAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgOiAnQ2hhckZpZWxkJyB9LAorICAgICAgICAgICAgICAgICdwZWVyJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnIDogJ0NoYXJGaWVsZCcgfSwKKyAgICAgICAgICAgICAgICAnbmV0bWFzaycgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnIDogJ0NoYXJGaWVsZCcgfSwKKyAgICAgICAgICAgICAgICAnYnJvYWRjYXN0JyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnIDogJ0NoYXJGaWVsZCcgfSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorCisKKyAgICAgICAgJ3N3aXRjaC1jbHVzdGVyJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ3VzZXItY29uZmlnJywKKworICAgICAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAgICAgJ2NsdXN0ZXItaWQnIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW1hcnlfa2V5JzogVHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3N3aXRjaGVzJyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKworICAgICAgICAnc3dpdGNoZXMnIDogeworICAgICAgICAgICAgIyBzd2l0Y2hlcyBhcmUgbm93IGRpcmVjdGx5IGZldGNoZWQgdmlhIHJlc3QgYXBpLgorICAgICAgICAgICAgIyAnaGFzX3Jlc3RfbW9kZWwnIGlzbid0IHNldAorICAgICAgICAgICAgIyBmb3IgdGhpcyB0YWJsZS4KKyAgICAgICAgICAgICMgWFhYIHBlcmhhcHMgdGhlc2UgdHlwZXMgb2YgZGVzY3JpcHRpb25zIG5lZWQgdG8gYmUKKyAgICAgICAgICAgICMgaW4gYSBmaWxlIG90aGVyIHRoYW4gY2xpbW9kZWxpbmZvPworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAndXNlci1jb25maWcnLAorICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAnZGlzcGxheScsCisgICAgICAgICAgICAndXJsJyAgICAgICAgICAgICA6ICdzd2l0Y2hlcycsCisgICAgICAgICAgICAnY29uZmlnLW9iai10eXBlJyA6ICdzd2l0Y2gtY29uZmlnJywKKworICAgICAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAgICAgJ2RwaWQnICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xlbmd0aCc6IDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbWFyeV9rZXknOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2FjdGl2ZScgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdjb3JlLXN3aXRjaCcgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2Nvbm5lY3RlZC1zaW5jZScgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnY2FwYWJpbGl0aWVzJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2FjdGlvbnMnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdpcC1hZGRyZXNzJyAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnc29ja2V0LWFkZHJlc3MnICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2J1ZmZlcnMnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdjb250cm9sbGVyJyAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3RhYmxlcycgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdzd2l0Y2gtYWxpYXMnICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVscF90ZXh0JyA6ICdTd2l0Y2ggYWxpYXMgZm9yIERQSUQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3R1bm5lbHMnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndHVubmVsLXN1cHBvcnRlZCcgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICd0dW5uZWwtdGVybWluYXRpb24nIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3R1bm5lbC1hY3RpdmUnICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZHAtZGVzYycgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdody1kZXNjJyAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3N3LWRlc2MnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnc2VyaWFsLW51bScgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgJ2ludGVyZmFjZXMnIDogeworICAgICAgICAgICAgIyBzd2l0Y2hlcyBhcmUgbm93IGRpcmVjdGx5IGZldGNoZWQgdmlhIHJlc3QgYXBpLgorICAgICAgICAgICAgIyAnaGFzX3Jlc3RfbW9kZWwnIGlzbid0IHNldAorICAgICAgICAgICAgIyBmb3IgdGhpcyB0YWJsZS4KKyAgICAgICAgICAgICMgWFhYIHBlcmhhcHMgdGhlc2UgdHlwZXMgb2YgZGVzY3JpcHRpb25zIG5lZWQgdG8gYmUKKyAgICAgICAgICAgICMgaW4gYSBmaWxlIG90aGVyIHRoYW4gY2xpbW9kZWxpbmZvPworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAnZGlzcGxheScsCisgICAgICAgICAgICAndXJsJyAgICAgICAgICAgICA6ICdzd2l0Y2hlcycsCisgICAgICAgICAgICAnY29uZmlnLW9iai10eXBlJyA6ICdzd2l0Y2gtaW50ZXJmYWNlLWNvbmZpZycsCisKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICdpZCcgICAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJzogNDgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleSc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA6ICdjb21wb3VuZC1rZXknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlbHBfdGV4dCcgOiAnIyFkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBvdW5kX2tleV9maWVsZHMnOiBbICdkcGlkJyBdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZHBpZCcgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyd0eXBlJyAgICAgICAgICAgOiAnRm9yZWlnbktleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIydyZWxfZmllbGRfbmFtZScgOiAnZHBpZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIydyZWxfb2JqX3R5cGUnICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICduYW1lJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdudW1iZXInICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdjb25maWcnICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdzdGF0ZScgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdjdXJyZW50LWZlYXR1cmVzJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdhZHZlcnRpc2VkLWZlYXR1cmVzJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdzdXBwb3J0ZWQtZmVhdHVyZXMnICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdwZWVyLWZlYXR1cmVzJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisKKworICAgICAgICAnc3dpdGNoLWNvbmZpZycgOiB7CisgICAgICAgICAgICAnc291cmNlJyA6ICdkZWJ1Zy1vbmx5JywKKyAgICAgICAgfSwKKworCisgICAgICAgICdzd2l0Y2gtYWxpYXMnIDogeworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAndXNlci1jb25maWcnLAorICAgICAgICAgICAgJ2Nhc2NhZGVfZGVsZXRlJyAgOiBUcnVlLAorICAgICAgICAgICAgfSwKKworCisgICAgICAgICdzd2l0Y2gtaW50ZXJmYWNlLWNvbmZpZycgOiB7CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdkZWJ1Zy1vbmx5JywKKyAgICAgICAgICAgICdjYXNjYWRlX2RlbGV0ZScgIDogVHJ1ZSwKKworICAgICAgICAgICAgJ2ZpZWxkcycgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgJ2Jyb2FkY2FzdCcgICAgICAgICAgIDogeyAnZWRpdCcgOiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogeyAnZWRpdCcgOiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSwKKworCisgICAgICAgICdob3N0LWFsaWFzJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ3VzZXItY29uZmlnJywKKyAgICAgICAgICAgICdjYXNjYWRlX2RlbGV0ZScgIDogVHJ1ZSwKKyAgICAgICAgICAgIH0sCisKKworICAgICAgICAnbGluaycgOiB7IAorICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAnc3dpdGNoJywKKworICAgICAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAgICAgJ2xpbmstdHlwZScgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA6ICdDaGFyRmllbGQnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKworCisgICAgICAgICdwb3J0JyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ2RlYnVnLW9ubHknLAorCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAnc3dpdGNoJyAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnbnVtYmVyJyAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnY29uZmlnJyAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnc3RhdGUnICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnY3VycmVudC1mZWF0dXJlcycgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnYWR2ZXJ0aXNlZC1mZWF0dXJlcycgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnc3VwcG9ydGVkLWZlYXR1cmVzJyAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAncGVlci1mZWF0dXJlcycgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorCisgICAgICAgICdzd2l0Y2gtaW50ZXJmYWNlcycgOiB7CisgICAgICAgICAgICAnc291cmNlJyAgICA6ICdzd2l0Y2gnLAorCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAnSWR4JyAgICAgICAgICAgICAgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnIDogJ0NoYXJGaWVsZCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdpZCcgICAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleSc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGZvcm1hdCdzIG91dCBvZiB0aGUgc29ydGluZyBidXNpbmVzcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAnc29ydCcgOiAndGFpbC1pbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdzd2l0Y2gnICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICduYW1lJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heF9sZW5ndGgnIDogMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnaGFyZHdhcmUtYWRkcmVzcycgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnY29uZmlnJyAgICAgICAgICAgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3N0YXRlJyAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3N0cC1zdGF0ZScgICAgICAgICAgIDogeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdjdXJyZW50LWZlYXR1cmVzJyAgICA6IHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnYWR2ZXJ0aXNlZC1mZWF0dXJlcycgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnc3VwcG9ydGVkLWZlYXR1cmVzJyAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAncGVlci1mZWF0dXJlcycgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAncmVjZWl2ZUJ5dGVzJyAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAncmVjZWl2ZVBhY2tldHMnICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAncmVjZWl2ZUVycm9ycycgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndHJhbnNtaXRCeXRlcycgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndHJhbnNtaXRQYWNrZXRzJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndHJhbnNtaXRFcnJvcnMnICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSwKKworICAgICAgICAnY29uZmlnJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ3VzZXItY29uZmlnJywKKyAgICAgICAgICAgIAorICAgICAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAgICAgJ25hbWUnICAgICA6IHsgJ3ByaW1hcnlfa2V5JzogVHJ1ZSB9LAorICAgICAgICAgICAgICAgICd2ZXJzaW9uJyAgOiB7IH0sCisgICAgICAgICAgICAgICAgJ2xlbmd0aCcgICA6IHsgfSwKKyAgICAgICAgICAgICAgICAndGltZXN0YW1wJzogeyB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9LAorCisgICAgICAgICdjb250cm9sbGVyX3N3aXRjaGVzJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ3VzZXItY29uZmlnJywKKyAgICAgICAgICAgIAorICAgICAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAgICAgJ2RwaWQnIDogeyAncHJpbWFyeV9rZXknIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgJ3Rlc3QtcGt0aW4tcm91dGUnIDogeworICAgICAgICAgICAgJ3NvdXJjZScgOiAnZGVidWctb25seScsCisgICAgICAgICAgICAKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICdjbHVzdGVyJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdob3AnICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdkcGlkJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdpblBvcnQnIDogIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdvdXRQb3J0JzogIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9LAorCisKKyAgICAgICAgJ3BlcmZvcm1hbmNlLWRhdGEnIDogeworICAgICAgICAgICAgJ3NvdXJjZScgOiAnZGVidWctb25seScgLAorCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAnUGt0cycgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdDb21wTmFtZScgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ1N0YXJ0VGltZSc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorCisKKyAgICAgICAgJ2Zsb3ctY2FjaGUtY291bnRlcnMnIDogeworICAgICAgICAgICAgJ3NvdXJjZScgOiAnc2RucGxhdGZvcm0nLAorICAgICAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAgICAgJ2RldGFpbHMnIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXBwbE5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4Rmxvd3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlQ250JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luYWN0aXZlQ250JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZENudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxDbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZhdGVkQ250JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlYWN0aXZhdGVkQ25kJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NhY2hlSGl0Q250JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21pc3NDbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmxvd01vZFJlbW92YWxNc2dMb3NzQ250JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25vdFN0b3JlZEZ1bGxDbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmNPYmpGcmVlZENudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1bmtub3duT3BlckNudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmbG93Q2FjaGVBbG1vc3RGdWxsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorCisgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAnYXBwbE5hbWUnICAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ21heEZsb3dzJyAgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdhY3RpdmVDbnQnICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnaW5hY3RpdmVDbnQnICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2FkZENudCcgICAgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdkZWxDbnQnICAgICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnYWN0aXZhdGVkQ250JyAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2RlYWN0aXZhdGVkQ25kJyAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdjYWNoZUhpdENudCcgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnbWlzc0NudCcgICAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2Zsb3dNb2RSZW1vdmFsTXNnTG9zc0NudCcgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdub3RTdG9yZWRGdWxsQ250JyAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZmNPYmpGcmVlZENudCcgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3Vua25vd25PcGVyQ250JyAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdmbG93Q2FjaGVBbG1vc3RGdWxsJyAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0sCisKKworICAgICAgICAnZmxvdy1jYWNoZScgOiB7CisgICAgICAgICAgICAnc291cmNlJyA6ICdkZWJ1Zy1vbmx5JywKKworICAgICAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAgICAgJ1NvdXJjZS1Td2l0Y2gnICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnSW5wdXRQb3J0JyAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdTcmNNQUMnICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ0Rlc3RNQUMnICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnRXRoZXJUeXBlJyAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdQcm90b2NvbCcgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ1NyY1BvcnQnICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnRHN0UG9ydCcgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdUaW1lJyAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorCisKKyAgICAgICAgJ2V2LWhpc3QtdG9wb2xvZ3ktc3dpdGNoJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnIDogJ2RlYnVnLW9ubHknLAorCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAnSWR4JyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleScgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdUaW1lJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdTd2l0Y2gnICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdQb3J0JyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdJcEFkZHInICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdBY3Rpb24nICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdSZWFzb24nICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdTdGF0ZScgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisKKworICAgICAgICAnZXYtaGlzdC10b3BvbG9neS1jbHVzdGVyJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnIDogJ2RlYnVnLW9ubHknLAorICAgICAgICAgICAgCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAnVGltZScgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleScgIDogRmFsc2UsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ1N3aXRjaCcgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ0FjdGlvbicgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ1JlYXNvbicgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ1N0YXRlJyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKworCisgICAgICAgICdldi1oaXN0LXRvcG9sb2d5LWxpbmsnIDogeworICAgICAgICAgICAgJ3NvdXJjZScgOiAnZGVidWctb25seScsCisgICAgICAgICAgICAKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICdUaW1lJyAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbWFyeV9rZXknICA6IEZhbHNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnU291cmNlLVN3aXRjaCcgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdEZXN0LVN3aXRjaCcgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ1NyY1BvcnQnICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnRHN0UG9ydCcgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdTcmNQb3J0U3RhdGUnICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ0RzdFBvcnRTdGF0ZScgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnQWN0aW9uJyAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdSZWFzb24nICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ1N0YXRlJyAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorCisKKyAgICAgICAgJ2V2LWhpc3QtYXR0YWNobWVudC1wb2ludCcgOiB7CisgICAgICAgICAgICAnc291cmNlJyA6ICdkZWJ1Zy1vbmx5JywKKyAgICAgICAgICAgIAorICAgICAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAgICAgJ1RpbWVfbnMnIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbWFyeV9rZXknICA6IEZhbHNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdIb3N0JyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdTd2l0Y2gnICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdQb3J0JyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdWTEFOJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdBY3Rpb24nICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdSZWFzb24nICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisKKworICAgICAgICAnZXYtaGlzdC1wYWNrZXQtaW4nIDogeworICAgICAgICAgICAgJ3NvdXJjZScgOiAnZGVidWctb25seScsCisgICAgICAgICAgICAKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICdUaW1lJyAgICAgICAgICAgICA6IHsncHJpbWFyeV9rZXknICA6IEZhbHNlLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICd3aWxkY2FyZHMnICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdkYXRhTGF5ZXJTb3VyY2UnICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdkYXRhTGF5ZXJEZXN0aW5hdGlvbicgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZGF0YUxheWVyVHlwZScgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZGF0YUxheWVyVmlydHVhbExhbicgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZGF0YUxheWVyVmlydHVhbExhblByaW9yaXR5Q29kZVBvaW50JyA6IHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnaW5wdXRTd2l0Y2gnICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnaW5wdXRQb3J0JyAgICAgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ25ldHdvcmtTb3VyY2UnICAgIDogeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICduZXR3b3JrRGVzdGluYXRpb24nIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ25ldHdvcmtTb3VyY2VNYXNrTGVuJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICduZXR3b3JrRGVzdGluYXRpb25NYXNrTGVuJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICduZXR3b3JrUHJvdG9jb2wnICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICduZXR3b3JrVHlwZU9mU2VydmljZScgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndHJhbnNwb3J0U291cmNlJyAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndHJhbnNwb3J0RGVzdGluYXRpb24nIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ0FjdGlvbiAgICAgICAgICcgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ1JlYXNvbicgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIH0sCisKKworICAgICAgICAndm5zLWRlZmluaXRpb24nIDogeworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAndXNlci1jb25maWcnLAorICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAnc2hvdycsCisgICAgICAgICAgICAnY2FzY2FkZV9kZWxldGUnICA6IFRydWUsCisgICAgICAgICAgICAnc2hvdy10aGlzJyAgICAgICA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndm5zLWRlZmluaXRpb24nLCAnZGVmYXVsdCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyd2bnMtaW50ZXJmYWNlLXJ1bGUnLCAndm5zLWNvbmZpZycgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKworICAgICAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAgICAnYWN0aXZlJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICdwcmlvcml0eScgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgJ2FycC1tb2RlJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAnZGhjcC1tb2RlJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICdkaGNwLWlwJyAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgJ2Jyb2FkY2FzdCcgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorCisKKyAgICAgICAgJ3Zucy1pbnRlcmZhY2UtcnVsZScgOiB7CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdkZWJ1Zy1vbmx5JywKKyAgICAgICAgICAgICdjYXNjYWRlX2RlbGV0ZScgIDogVHJ1ZSwKKyAgICAgICAgICAgICd0aXRsZScgICAgICAgICAgIDogJ1ZOUyBJbnRlcmZhY2UgUnVsZXMnLAorCisgICAgICAgICAgICAnZmllbGRzJzogeworICAgICAgICAgICAgICAgICdydWxlJyAgICAgICAgICAgICAgIDogeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnIDogJ0NoYXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJyA6IDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndm5zJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ21hYycgICAgICAgICAgICAgICAgOiB7ICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndGFncycgICAgICAgICAgICAgICA6IHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xlbmd0aCcgOiAzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2FjdGl2ZScgICAgICAgICAgICAgOiB7ICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ2FsbG93LW11bHRpcGxlJyAgICAgOiB7ICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ3ZsYW4tdGFnLW9uLWVncmVzcycgOiB7ICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyAgICAgICAgOiB7ICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ2lwLXN1Ym5ldCcgICAgICAgICAgOiB7ICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ3BvcnRzJyAgICAgICAgICAgICAgOiB7ICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ3ByaW9yaXR5JyAgICAgICAgICAgOiB7ICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ3J1bGUnICAgICAgICAgICAgICAgOiB7ICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ3N3aXRjaCcgICAgICAgICAgICAgOiB7ICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ3RhZ3MnICAgICAgICAgICAgICAgOiB7ICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ3ZsYW5zJyAgICAgICAgICAgICAgOiB7ICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKworCisgICAgICAgICdkaXNwbGF5LXZucy1pbnRlcmZhY2UnIDogeworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAndXNlci1jb25maWcnLAorICAgICAgICAgICAgJ2Nhc2NhZGVfZGVsZXRlJyAgOiBUcnVlLAorCisgICAgICAgICAgICAnZmllbGRzJzogeworICAgICAgICAgICAgICAgICdpZCcgICAgICAgICAgICAgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdydWxlJyAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnIDogJ0NoYXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ21hYycgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgOiAnQ2hhckZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xlbmd0aCcgOiAzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSB9LAorICAgICAgICAgICAgICAgICd2bGFuJyAgICAgICAgICAgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA6ICdDaGFyZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJyA6IDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ2lwcycgICAgICAgICAgICAgICA6IHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnIDogJ0NoYXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heF9sZW5ndGgnIDogMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UgfSwKKyAgICAgICAgICAgICAgICAnYXR0YWNobWVudC1wb2ludHMnIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJyA6IDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ2xhc3Qtc2VlbicgICAgICAgICA6IHsgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorCisKKyAgICAgICAgJ3Zucy1pbnRlcmZhY2UtZGlzcGxheScgOiB7CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICd1c2VyLWNvbmZpZycsCisgICAgICAgICAgICAnY2FzY2FkZV9kZWxldGUnICA6IFRydWUsCisKKyAgICAgICAgICAgICdmaWVsZHMnOiB7CisgICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgOiAnQ2hhckZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAncnVsZScgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdtYWMnICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnIDogJ0NoYXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heF9sZW5ndGgnIDogMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UgfSwKKyAgICAgICAgICAgICAgICAndmxhbicgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA6ICdDaGFyZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJyA6IDMyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlIH0sCisgICAgICAgICAgICAgICAgJ2lwcycgICAgICAgICAgICAgICA6IHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnIDogJ0NoYXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heF9sZW5ndGgnIDogMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UgfSwKKyAgICAgICAgICAgICAgICAnYXR0YWNobWVudC1wb2ludHMnIDogeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgOiAnQ2hhckZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xlbmd0aCcgOiAzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSB9LAorICAgICAgICAgICAgICAgICdsYXN0LXNlZW4nICAgICAgICAgOiB7ICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKworCisgICAgICAgICd2bnMtYWNjZXNzLWxpc3QnOiB7CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICd1c2VyLWNvbmZpZycsCisgICAgICAgICAgICAnY2FzY2FkZV9kZWxldGUnICA6IFRydWUsCisKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICduYW1lJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nhc2NhZGVfZGVsZXRlJyA6IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisKKworICAgICAgICAndm5zLWFjY2Vzcy1saXN0LWVudHJ5JzogeworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAndXNlci1jb25maWcnLAorICAgICAgICAgICAgJ2Nhc2NhZGVfZGVsZXRlJyAgOiBUcnVlLAorCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgIyB2bnMtYWNsLWVudHJ5IGZpZWxkcyBhcmUgYSBiaXQgdW5jb21tb24uICB0aGUgYWN0aW9uIGFuZCB0eXBlCisgICAgICAgICAgICAgICAgIyBjYW4gb25seSBiZSBjb25maWd1cmVkIHZpYSB0aGUgY3JlYXRlIHBvcnRpb24gb2YgdGhlIGNvbW1hbmQsCisgICAgICAgICAgICAgICAgIyB3aGlsZSBtYW55IG90aGVyIGZpZWxkcyByZXF1cmUgc3BlY2lmaWMgdmFsaWRhdGlvbiBzbyB0aGF0CisgICAgICAgICAgICAgICAgIyBhbHRlcm5hdGUgdmFsdWVzIGNhbiBiZSByZXBsYWNlZCBmb3Igc29tZSBrZXl3b3JkcworICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAjIHRoZSB2YWx1ZXMgb2YgdGhlICd2YWxpZGF0ZScgZmllbGQgaXMgdGhlIG5hbWUgb2YgdGhlCisgICAgICAgICAgICAgICAgIyBkZWYgdG8gY2FsbCAoaW4gdGhlIGJpZ1NoIGNsYXNzKQorICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAndm5zLWFjY2Vzcy1saXN0JyAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAncnVsZScgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2FzY2FkZV9kZWxldGUnIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzb3J0JyA6ICdpbnRlZ2VyJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnc3JjLWlwJyAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnc3JjLWlwLW1hc2snICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZHN0LWlwJyAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZHN0LWlwLW1hc2snICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnc3JjLXRwLXBvcnQtb3AnICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnc3JjLXRwLXBvcnQnICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZHN0LXRwLXBvcnQtb3AnICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZHN0LXRwLXBvcnQnICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnaWNtcC10eXBlJyAgICAgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2V0aGVyLXR5cGUnICAgICAgIDogeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisKKworICAgICAgICAndm5zLWludGVyZmFjZS1hY2Nlc3MtbGlzdCc6IHsKKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ3VzZXItY29uZmlnJywKKyAgICAgICAgICAgICdjYXNjYWRlX2RlbGV0ZScgIDogVHJ1ZSwKKworICAgICAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAgICAgJ3ZucycgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xlbmd0aCcgOiAzMgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndm5zLWludGVyZmFjZS1uYW1lJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ0NoYXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJyA6IDMyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICduYW1lJyAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnQ2hhckZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heF9sZW5ndGgnIDogMzIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKworCisgICAgICAgICd0YWcnIDogeworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAndXNlci1jb25maWcnLAorICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgCisgICAgICAgICd0YWctbWFwcGluZycgOiB7CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICd1c2VyLWNvbmZpZycsCisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdzd2l0Y2gnLAorCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAndHlwZScgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2hvc3QnICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisKKworICAgICAgICAnc3luY2QtY29uZmlnJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ2RlYnVnLW9ubHknLAorICAgICAgICAgICAgfSwKKworICAgICAgICAnc3luY2QtcHJvZ3Jlc3MtaW5mbycgOiB7CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdkZWJ1Zy1vbmx5JywKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgJ3N5bmNkLXRyYW5zcG9ydC1jb25maWcnIDogeworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAnZGVidWctb25seScsCisgICAgICAgICAgICB9LAorCisgICAgICAgICdzdGF0ZC1jb25maWcnIDogeworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAnZGVidWctb25seScsCisgICAgICAgICAgICB9LAorCisgICAgICAgICdzdGF0ZHJvcGQtY29uZmlnJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ2RlYnVnLW9ubHknLAorICAgICAgICAgICAgfSwKKworICAgICAgICAnc3RhdGRyb3BkLXByb2dyZXNzLWluZm8nIDogeworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAnZGVidWctb25seScsCisgICAgICAgICAgICB9LAorCisgICAgICAgICd0ZWNoLXN1cHBvcnQtY29uZmlnJyA6IHsKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgJ3R1bm5lbC1kZXRhaWxzJyA6IHsKKyAgICAgICAgICAgICdzb3VyY2UnIDogJ3N3aXRjaCcsCisKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICdkcGlkJyAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleSc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2xvY2FsVHVubmVsSVBBZGRyJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAndHVubmVsUG9ydHMnICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9LAorCisKKyAgICAgICAgJ2NvbnRyb2xsZXItc3VtbWFyeScgOiB7CisgICAgICAgICAgICAnc291cmNlJyA6ICdzd2l0Y2gnLAorCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAnIyBBY2Nlc3MgQ29udHJvbCBMaXN0cycgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJyMgVk5TIEludGVyZmFjZXMnICAgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICcjIGhvc3RzJyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnIyBWTlNlcycgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJyMgYXR0YWNobWVudCBwb2ludHMnICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICcjIGludGVyLXN3aXRjaCBsaW5rcycgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnIyBJUCBBZGRyZXNzZXMnICAgICAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJyMgVk5TIEludGVyZmFjZXMgd2l0aCBBQ0wgYXBwbGllZCcgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9LAorCisKKyAgICAgICAgJ3N3aXRjaC1pbnRlcmZhY2UtYWxpYXMnIDogeworICAgICAgICAgICAgJ3NvdXJjZScgICAgICAgICAgOiAnY29tbWFuZHMnLAorICAgICAgICAgICAgJ2Nhc2NhZGVfZGVsZXRlJyAgOiBUcnVlLAorCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAnaWQnICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKworCisgICAgICAgICdob3N0LWNvbmZpZycgOiB7CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdzaG93JywKKyAgICAgICAgICAgICd1cmwnICAgICAgICAgICAgIDogJ2RldmljZScsCisKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICdJZHgnICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgOiAnQ2hhckZpZWxkJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnbWFjJyAgICAgICAgICAgICAgICA6IHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJzogMTcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnQ2hhckZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3ZlbmRvcicgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnaXBzJyAgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2F0dGFjaG1lbnQtcG9pbnRzJyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICd0YWcnICAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnaG9zdC1hbGlhcycgICAgICAgICAgOiB7ICdoZWxwX3RleHQnIDogJ0hvc3QgYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnbGFzdC1zZWVuJyAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVscF90ZXh0JzogJ0xhc3QgdGltZSBhIHBhY2tldCB3YXMgc2VlbiBieSB0aGUgY29udHJvbGxlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ0RhdGVUaW1lRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgJ2hvc3QnOiB7CisgICAgICAgICAgICAjIGhvc3RzIGFyZSBub3cgZGlyZWN0bHkgZmV0Y2hlZCB2aWEgcmVzdCBhcGkuICdoYXNfcmVzdF9tb2RlbCcgaXNuJ3Qgc2V0CisgICAgICAgICAgICAjIGZvciB0aGlzIHRhYmxlLgorICAgICAgICAgICAgIyBYWFggcGVyaGFwcyB0aGVzZSB0eXBlcyBvZiBkZXNjcmlwdGlvbnMgbmVlZCB0byBiZQorICAgICAgICAgICAgIyBpbiBhIGZpbGUgb3RoZXIgdGhhbiBjbGltb2RlbGluZm8/CisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICd1c2VyLWNvbmZpZycsCisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdkaXNwbGF5JywKKyAgICAgICAgICAgICd1cmwnICAgICAgICAgICAgIDogJ2RldmljZScsCisgICAgICAgICAgICAnY29uZmlnLW9iai10eXBlJyA6ICdob3N0LWNvbmZpZycsCisKKyAgICAgICAgICAgICdmaWVsZHMnOiB7CisgICAgICAgICAgICAgICAgJ21hYycgICAgICAgICAgICAgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xlbmd0aCc6IDE3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleSc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnYWRkcmVzcy1zcGFjZScgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnICAgICAgICAgICA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgOiAnRm9yZWlnbktleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbF9maWVsZF9uYW1lJyA6ICduYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVsX29ial90eXBlJyAgIDogJ2FkZHJlc3Mtc3BhY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3ZsYW4nICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlbHBfdGV4dCcgICAgICAgICAgICA6ICdWTEFOIEFzc29jaWF0ZWQgd2l0aCBob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJyAgICAgICAgICAgICAgICAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgICAgICA6ICdJbnRlZ2VyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnICAgICAgICAgICAgICAgICA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlYXJjaGFibGUnICAgICAgICAgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZHBpZCcgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnICAgICAgICAgICA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgOiAnRm9yZWlnbktleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbF9maWVsZF9uYW1lJyA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVsX29ial90eXBlJyAgIDogJ3N3aXRjaGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdpcHY0JyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICMgQXR0YWNobWVudCBwb2ludCBpc24ndCBzZWFyY2hhYmxlCisgICAgICAgICAgICAgICAgIydhdHRhY2htZW50LXBvaW50cycgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnZWRpdCcgOiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICN9LAorICAgICAgICAgICAgICAgICdsYXN0LXNlZW4nICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX3RleHQnOiAnTGFzdCB0aW1lIGEgcGFja2V0IHdhcyBzZWVuIGJ5IHRoZSBjb250cm9sbGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnRGF0ZVRpbWVGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0sCisKKworICAgICAgICAnaG9zdC1hdHRhY2htZW50LXBvaW50JyA6IHsKKyAgICAgICAgICAgICMgZGlyZWN0bHkgZmV0Y2hlZCB2aWEgcmVzdCBhcGkuIAorICAgICAgICAgICAgIyAnaGFzX3Jlc3RfbW9kZWwnIGlzbid0IHNldCBmb3IgdGhpcyB0YWJsZS4KKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ2NvbnRyb2xsZXInLAorICAgICAgICAgICAgJ3VybCcgICAgICAgICAgICAgOiAnZGV2aWNlJywKKworICAgICAgICAgICAgICdmaWVsZHMnOiB7CisgICAgICAgICAgICAgICAgJ21hYycgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxfZmllbGRfbmFtZSc6ICdtYWMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxfb2JqX3R5cGUnOiAnaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnRm9yZWlnbktleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICd2bGFuJyAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVscF90ZXh0JzogJ1ZMQU4gQXNzb2NpYXRlZCB3aXRoIGhvc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnSW50ZWdlckZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2VhcmNoYWJsZScgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnaWQnICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVscF90ZXh0JzogJyN8bWFjfGRwaWR8aW5ncmVzcy1wb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xlbmd0aCc6IDY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW1hcnlfa2V5JzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZHBpZCcgICAgICAgICA6IHsgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbF9maWVsZF9uYW1lJzogJ2RwaWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVsX29ial90eXBlJzogJ3N3aXRjaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ0ZvcmVpZ25LZXknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnaW5ncmVzcy1wb3J0JyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVscF90ZXh0JzogJ09wZW4gZmxvdyBwb3J0IG51bWJlciBvZiBpbmdyZXNzIHBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnSW50ZWdlckZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3N0YXR1cycgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX3RleHQnOiAnRXJyb3IgZGVzY3JpcHRpb24sIGJsYW5rIG1lYW4gbm8gZXJyb3IgJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJzogNjQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnQ2hhckZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2xhc3Qtc2VlbicgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX3RleHQnOiAnTGFzdCB0aW1lIGEgcGFja2V0IHdhcyBzZWVuIGJ5IHRoZSBjb250cm9sbGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnRGF0ZVRpbWVGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdpcHY0JyAgICAgICAgIDogeyAjIGFkZGVkIHRvIGVuYWJsZSBzZWFyY2hpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlZGl0JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlYXJjaGFibGUnIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgfSwKKworICAgICAgICAnaG9zdC1uZXR3b3JrLWFkZHJlc3MnOiB7CisgICAgICAgICAgICAjIGRpcmVjdGx5IGZldGNoZWQgdmlhIHJlc3QgYXBpLiAKKyAgICAgICAgICAgICMgJ2hhc19yZXN0X21vZGVsJyBpc24ndCBzZXQgZm9yIHRoaXMgdGFibGUuCisgICAgICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdzd2l0Y2gnLAorICAgICAgICAgICAgJ3VybCcgICAgICAgICAgICAgOiAnZGV2aWNlJywKKworICAgICAgICAgICAgJ2ZpZWxkcyc6IHsKKyAgICAgICAgICAgICAgICAnbWFjJyAgICAgICAgOiB7ICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ251bGwnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbF9maWVsZF9uYW1lJzogJ21hYycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVsX29ial90eXBlJzogJ2hvc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnRm9yZWlnbktleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICd2bGFuJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX3RleHQnOiAnVkxBTiBBc3NvY2lhdGVkIHdpdGggaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdJbnRlZ2VyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2VhcmNoYWJsZScgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hlbHBfdGV4dCc6ICcjfG1hY3xpcHY0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heF9sZW5ndGgnOiA2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbWFyeV9rZXknOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnQ2hhckZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdpcC1hZGRyZXNzJzogIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX3RleHQnOiAnSVAgQWRkcmVzcyBvZiBob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heF9sZW5ndGgnOiAxNSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ0NoYXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2xhc3Qtc2VlbicgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX3RleHQnOiAnTGFzdCB0aW1lIGEgcGFja2V0IHdhcyBzZWVuIGJ5IHRoZSBjb250cm9sbGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnRGF0ZVRpbWVGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdpcHY0JyAgICAgIDogeyAjIGFkZGVkIHRvIGVuYWJsZSBzZWFyY2hpbmcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXhfbGVuZ3RoJzogMTUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdkcGlkJyAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2VhcmNoYWJsZScgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSwKKworICAgICAgICAnaG9zdC12bnMtaW50ZXJmYWNlJyA6IHsKKyAgICAgICAgICAgICMgZGlyZWN0bHkgZmV0Y2hlZCB2aWEgcmVzdCBhcGkuIAorICAgICAgICAgICAgIyAnaGFzX3Jlc3RfbW9kZWwnIGlzbid0IHNldCBmb3IgdGhpcyB0YWJsZS4KKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICAgIDogJ2NvbnRyb2xsZXInLAorICAgICAgICAgICAgJ3VybCcgICAgICAgICAgICAgOiAndm5zL2RldmljZS1pbnRlcmZhY2UnLAorICAgICAgICAgICAgJ2Nhc2NhZGVfZGVsZXRlJyAgOiBUcnVlLAorCisgICAgICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICAgICAnZGVmYXVsdCcgICAgOiBbICdJZHgnLCAndm5zJywgJ2hvc3QnLCAnaXBzJywgIF0sCisgICAgICAgICAgICAgICAgJ3Zucy1jb25maWcnIDogWyAnSWR4JywgICAgICAgICdob3N0JywgJ2lwcycsICBdCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgICAgICdpZCcgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBvdW5kX2tleV9maWVsZHMnOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2bnMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmxhbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJmYWNlJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVscF90ZXh0JzogJyN8aG9zdHxpbnRlcmZhY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleSc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnY29tcG91bmQta2V5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnYWRkcmVzcy1zcGFjZScgIDogeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxfZmllbGRfbmFtZSc6ICdtYWMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxfb2JqX3R5cGUnOiAnaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnRm9yZWlnbktleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3ZsYW4nICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgOiAnQ2hhckZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4X2xlbmd0aCcgOiAzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdtYWMnICAgICAgICAgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbF9maWVsZF9uYW1lJzogJ21hYycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbF9vYmpfdHlwZSc6ICdob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdGb3JlaWduS2V5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnaW50ZXJmYWNlJzogICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbF9maWVsZF9uYW1lJzogJ2lkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVsX29ial90eXBlJzogJ3Zucy1pbnRlcmZhY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ0ZvcmVpZ25LZXknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdpcHMnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnIDogJ0NoYXJGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heF9sZW5ndGgnIDogMzIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VkaXQnIDogRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9LAorCisgICAgICAgICd2bnMtaW50ZXJmYWNlJyA6IHsKKyAgICAgICAgICAgICMgZGlyZWN0bHkgZmV0Y2hlZCB2aWEgcmVzdCBhcGkuIAorICAgICAgICAgICAgIyAnaGFzX3Jlc3RfbW9kZWwnIGlzbid0IHNldCBmb3IgdGhpcyB0YWJsZS4KKyAgICAgICAgICAgICdzb3VyY2UnICAgICAgICA6ICdjb250cm9sbGVyJywKKyAgICAgICAgICAgICd1cmwnICAgICAgICAgICA6ICd2bnMvaW50ZXJmYWNlJywKKworICAgICAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAgICAgJ2RlZmF1bHQnICAgIDogWydJZHgnLCAndm5zJywgJ2ludGVyZmFjZScsICdydWxlJywgJ2xhc3Qtc2VlbicsIF0sCisgICAgICAgICAgICAgICAgJ3Zucy1jb25maWcnIDogWydJZHgnLCAgICAgICAgJ2ludGVyZmFjZScsICdydWxlJywgJ2xhc3Qtc2VlbicsIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAnaWQnICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wb3VuZF9rZXlfZmllbGRzJzogWyAndm5zJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnRlcmZhY2UnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX3RleHQnOiAnI3x2bnN8aW50ZXJmYWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbWFyeV9rZXknOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnY29tcG91bmQta2V5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICd2bnMnICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2pzb25fc2VyaWFsaXplX3N0cmluZyc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxfZmllbGRfbmFtZSc6ICdpZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxfb2JqX3R5cGUnOiAndm5zLWRlZmluaXRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdGb3JlaWduS2V5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdpbnRlcmZhY2UnICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heF9sZW5ndGgnOiAzMiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdydWxlJyAgICAgICAgOiB7ICdqc29uX3NlcmlhbGl6ZV9zdHJpbmcnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudWxsJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVsX2ZpZWxkX25hbWUnOiAnaWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWxfb2JqX3R5cGUnOiAndm5zLWludGVyZmFjZS1ydWxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdGb3JlaWduS2V5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnbGFzdC1zZWVuJyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwX3RleHQnOiAnTGFzdCB0aW1lIGEgcGFja2V0IHdhcyBzZWVuIGJ5IHRoZSBjb250cm9sbGVyIG9uIHRoaXMgaW50ZXJmYWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnVsbCc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnRGF0ZVRpbWVGaWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICMgZG9uZS4KKyAgICAgICAgfQpkaWZmIC0tZ2l0IGEvY2xpL2NvbW1hbmQucHkgYi9jbGkvY29tbWFuZC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMWZhMjI3Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2NvbW1hbmQucHkKQEAgLTAsMCArMSw0MDcwIEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMSwyMDEyLDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2ltcG9ydCByZQoraW1wb3J0IG51bWJlcnMKK2ltcG9ydCBjb2xsZWN0aW9ucworaW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IHR5cGVzCitpbXBvcnQganNvbgoraW1wb3J0IHRpbWUKK2ltcG9ydCBzeXMKK2ltcG9ydCBkYXRldGltZQoraW1wb3J0IG9zCitpbXBvcnQgY19kYXRhX2hhbmRsZXJzCitpbXBvcnQgY192YWxpZGF0aW9ucworaW1wb3J0IGNfY29tcGxldGlvbnMKK2ltcG9ydCBjX2FjdGlvbnMKK2ltcG9ydCB1dGlmCitpbXBvcnQgZXJyb3IKK2ltcG9ydCBkb2MKKworCisjIFRPRE8gbGlzdAorIworIyAtIHN1cHBvcnQgZm9yICdtaW4nIGFuZCAnbWF4JyBhcyBib3VuZGFyeSB2YWx1ZXMgaW4gcmFuZ2UvbGVuZ3RoIHJlc3RyaWN0aW9ucworIyAtIGRpc3Rpbmd1aXNoIGJldHdlZW4gY29tcGxldGlvbiBoZWxwIHN0cmluZyBhbmQgc3ludGF4L2RvYyBzdHJpbmcKKyMgLSBhbGxvdyBtdWx0aXBsZSB2YWxpZGF0aW9uIGZ1bmN0aW9ucyBmb3IgdHlwZWRlZnMvYXJncworIyAtIHZlcmlmeSB0aGF0IGl0IGhhbmRsZXMgdW5hbWJpZ3VvdXMgcHJlZml4ZXMgaW4gc3ViY29tbWFuZHMgYW5kIGFyZ3VtZW50IHRhZ3MKKyMgLSBzdXBwb3J0IGZvciBnZXR0aW5nIG5leHQgYXZhaWxhYmxlIHNlcXVlbmNlIG51bWJlciAoZS5nLiBpcCBuYW1lLXNlcnZlcikKKyMgLSB0ZXN0IGNvZGUgdG8gaGFuZGxlIFJFU1QgZXJyb3JzCisjIC0gZmlndXJlIG91dCBob3cgdG8gZGVhbCB3aXRoIGFyZ3VtZW50cyB0aGF0IGFyZSBvcHRpb25hbCBmb3IgJ25vJyBjb21tYW5kcworIyAtIHRlc3RzIGZvciBsZW5ndGgvcmFuZ2UgdmFsaWRhdGlvbnMsIGJvdGggZm9yIHN0cmluZ3MgYW5kIGludGVnZXJzCisjIC0gYWRkIHZhbGlkYXRpb24gcGF0dGVybnMgZm9yIGRvbWFpbi1uYW1lIGFuZCBpcC1hZGRyZXNzLW9yLWRvbWFpbi1uYW1lIHR5cGVkZWZzCisjIC0gZ2V0IHN5bnRheCBoZWxwIGZvciAibm8iIGNvbW1hbmRzCisjIC0gdGVzdCB1c2luZyB1bmFtYmlndW91cyBwcmVmaXggZm9yIGNvbW1hbmQvc3ViY29tbWFuZCBuYW1lcworIyAtIHRlc3QgdXNpbmcgdW5hbWJpZ3VvdXMgcHJlZml4IGZvciBhcmd1bWVudCB0YWdzCisjIC0gdGVzdCBjYXNlIGluc2Vuc2l0aXZpdHkgZm9yIGNvbW1hbmQvc3ViY29tbWFuZC90YWcgbmFtZXMgKGkuZS4gYW55IGZpeGVkIHRva2VuKQorIyAtIEFsbG93L2lnbm9yZSBtaXNzaW5nIGNvbW1hbmQgYXJndW1lbnRzIGZvciAibm8iIGNvbW1hbmRzIChlLmcuICJubyBpcCBhZGRyZXNzIikKKyMgLSBzdXBwb3J0IGZvciBjYXNlLXNlbnNpdGl2ZSBlbnVtIHR5cGVzIChkbyB3ZSBuZWVkIHRoaXM/KQorIyAtIGNsZWFuIHVwICdkZXNjcmlwdGlvbicgdnMuICdkZXNjcmlwdG9yJyB0ZXJtaW5vbG9neSAoaS5lLiBwaWNrIG9uZSkKKyMgLSByZXR1cm4gIjxjcj4iIGFzIGNvbXBsZXRpb24gaWYgdGhlcmUgYXJlIG5vIGFyZ3MgdG8gY29tcGxldGUKKyMgLSBiZSBjb25zaXN0ZW50IGFib3V0IHVzaW5nIF94eXogZnVuY3Rpb24gbmFtaW5nIGNvbnZlbnRpb24gZm9yIHByaXZhdGUgZnVuY3Rpb25zCisjIC0gYmV0dGVyIGhhbmRsaW5nIG9mIGV4Y2VwdGlvbnMgaW4gZG9fY29tbWFuZF9jb21wbGV0aW9ucy4gY2F0Y2ggQ29tbWFuZEVycm9ycywKKyMgICBkaXN0aW5ndWlzaCBiZXR3ZWVuIGV4cGVjdGVkIGVycm9yIChlLmcuIFZhbGlkYXRpb25FcnJvcikgYW5kIGVycm9ycyB0aGF0CisjICAgaW5kaWNhdGUgYnVnIChlLmcuIGJhc2UgRXhjZXB0aW9uIHJhaXNlZCkKKyMgLSBzb3J0IGlzc3VlcyB3aXRoIHNlcXVlbmNlIG51bWJlcnMuIFRoZXkgYXJlIHRyZWF0ZWQgYXMgc3RyaW5ncyBieSB0aGUgRGphbmdvCisjICAgQ2Fzc2FuZHJhIGJhY2tlbmQgaW5zdGVhZCBvZiBpbnRlZ2Vycy4gVGhpcyBtZWFucyB0aGF0LCBmb3IgZXhhbXBsZSwgdGhlIHNlcXVlbmNlCisjICAgbnVtYmVyIDEsMiwxMCBhcmUgaW5jb3JyZWN0bHkgc29ydGVkIGluIHRoZSBvcmRlciAxLCAxMCwgMi4gTmVlZCB0byBmaXggdGhpcyBpbgorIyAgIHRoZSBEamFuZ28gYmFja2VuZC4KKyMgLSBTaG91bGRuJ3QgYWxsb3cgIm5vIiB2YXJpYW50IG9mIGEgY29tbWFuZCBpZiB0aGVyZSdzIG5vIGRlZmF1bHQgdmFsdWUgZm9yIGFuIGFyZ3VtZW50LgorIyAgIEZvciBleGFtcGxlLCBzaG91bGRuJ3QgYWxsb3cgIm5vIGNsb2NrIHNldCAwMTozMDowMCIuCisjIC0gdHJlYXQgc2NvcGUgc3RhY2sgYXMgYSBzdGFjayB3aXRoIGFwcGVuZCAmIHBvcCBvcGVyYXRpb25zIGFuZCBzZWFyY2ggaW4gcmV2ZXJzZSBvcmRlcgorIyAtIHJlbmFtZSB0aGUgImRhdGEiIGl0ZW0gaW4gdGhlIHNjb3BlcyB0byBiZSAiYXJncyIgKG9yIG1heWJlIG5vdD8pCisjIC0gY2xlYW4gdXAgc3ludGF4IGhlbHAgbWVzc2FnZTsgaW5jbHVkZXMgIlN5bnRheDogIiB0d2ljZSBpbiBtZXNzYWdlLgorIyAtIGNsZWFuIHVwIHN5bnRheCBoZWxwIG1lc3NhZ2VzIHRvIG5vdCBpbmNsdWRlIGV4dHJhbmVvdXMgd2hpdGUgc3BhY2UgY2hhcmFjdGVycworIyAgIEZvciBleGFtcGxlICJ0ZXN0IFtmb28gPGZvby12YWx1ZT5dIiBpbnN0ZWFkIG9mICJ0ZXN0IFsgZm9vIDxmb28tdmFsdWU+IF0iCisjICAgT3IgbWF5YmUgbm90PworIyAtIHN1cHBvcnQgZm9yIGV4cGxpY2l0IGNvbW1hbmQgYWJicmV2aWF0aW9ucyAoZS5nLiAicyIgPSAic2hvdyIgZXZlbiBpZiB0aGVyZSBhcmUKKyMgICBvdGhlciBhdmFpbGFibGUgY29tbWFuZHMgdGhhdCBiZWdpbiB3aXRoICJzIi4KKyMgLSBhdXRvbWF0ZWQgZ2VuZXJhdGlvbiBvZiBydW5uaW5nIGNvbmZpZworIyAtIHJlbmFtZSAnY29uZmlnJyBjb21tYW5kLXR5cGUgdG8gJ2NvbmZpZy1maWVsZHMnCisjIC0gbmVlZCB0byBmaXggZ2V0dGluZyBjb21wbGV0aW9ucyB3aXRoIGFsdGVybmF0aW9uIGlmIGFueSBvZiB0aGUgYWx0ZXJuYXRlcyBkb24ndAorIyAgIG1hdGNoIHRoZSBwYXJ0aWFsIGNvbXBsZXRpb24gdGV4dCAoZS5nLiAiZmlyZXdhbGwgYWxsb3cgb3A8dGFiPiIpLgorIyAtIGFsbG93IGNvbW1hbmQgZGVzY3JpcHRpb24gdGhhdCBkb24ndCBoYXZlIGFueSBhcmdzIHRvIG9taXQgdGhlICdhcmdzJyBzZXR0aW5nCisjICAgKHdvcmthcm91bmQgZm9yIG5vdyBpcyB0byBqdXN0IGhhdmUgYW4gZW1wdHkgYXJncyB0dXBsZS9saXN0CisKKyMgLSBzdXBwb3J0ICJyZXBlYXRhYmxlIiBhdHRyaWJ1dGUgZm9yIGFyZ3MgdG8gc3VwcG9ydCByZXBldGl0aW9uCisjIC0gU3VwcG9ydCBmb3Igc2luZ2xlIHRva2VuIGFyZ3VtZW50cyB3aXRoIGEgY3VzdG9tIGFjdGlvbiBhbmQvb3IgYXJnIGhhbmRsZXIKKyMgLSBhbGxvdyBtdWx0aXBsZSAibmFtZSJzIGZvciBhIGNvbW1hbmQgZGVzY3JpcHRpb24gYW5kIGFsbG93IGVhY2ggbmFtZSB0byBvcHRpb25hbGx5CisjICAgc2V0IGEgZmllbGQgaW4gdGhlIGFyZyBkYXRhLiBTeW50YXggd291bGQgcHJvYmFibHkgYmUgdGhhdCB0aGUgIm5hbWUiIGZpZWxkIGNvdWxkCisjICAgYmUgYSBsaXN0IG9mIG5hbWVzLiBTbyB0aGUgbmFtZSBjb3VsZCBlaXRoZXIgYmUgYSBzaW1wbGUgc3RyaW5nLCBhIGRpY3QgKHdoaWNoCisjICAgd291bGQgc3VwcG9ydCBwYXR0ZXJuLWJhc2VkIG5hbWVzIGFuZCBzZXR0aW5nIGEgZmllbGQgd2l0aCB0aGUgY29tbWFuZCB3b3JkLCBvciBhCisjICAgbGlzdCBvZiBuYW1lcyAod2hlcmUgZWFjaCBuYW1lIGNvdWxkIGJlIGVpdGhlciB0aGUgc2ltcGxlIHN0cmluZyBvciB0aGUgZGljdCkKKyMgLSBtYXliZSBnZXQgcmlkIG9mIHNwZWNpZnlpbmcgbW9kZSBpbiB0aGUgY29tbWFuZCBkZXNjcmlwdGlvbi4gSW5zdGVhZCBhIGNvbW1hbmQKKyMgICBkZXNjcmlwdGlvbiB3b3VsZCBiZSBlbmFibGVkIGZvciBhIG1vZGUgYnkgYWRkaW5nIGl0IHRvIHRoZSBsaXN0IG9mIGNvbW1hbmRzIHRoYXQKKyMgICBhcmUgZW5hYmxlZCBmb3IgdGhhdCBtb2RlLiBUaGlzIHdvdWxkIGhhcHBlbiBpbiBzb21lIGRhdGEgKG9yIGNvZGUpIHRoYXQncyBzZXBhcmF0ZQorIyAgIGZyb20gdGhlIGNvbW1hbmQgZGVzY3JpcHRpb24uIEkgdGhpbmsgdGhpcyB3b3VsZCBiZSBiZXR0ZXIgc28gdGhhdCB3ZSBjYW4gcHJ1bmUKKyMgICB0aGUgbnVtYmVyIG9mIGNvbW1hbmQgZGVzY3JpcHRpb24gd2UgbmVlZCB0byBwYXJzZSBmb3IgYSBnaXZlbiBjb21tYW5kLiBPdGhlcndpc2UKKyMgICB3ZSBhbHdheXMgbmVlZCB0byBjaGVjayBhZ2FpbnN0IGFsbCBjb21tYW5kIGRlc2NyaXB0aW9ucy4KKyMgLSBkaXN0aW5ndWlzaCBiZXR3ZWVuIGV4YWN0IG1hdGNoIHZzLiBwcmVmaXggbWF0Y2ggaW4gYSBjaG9pY2VzIGJsb2NrLiBJZiB0aGVyZSdzCisjICAgb25seSBhIHNpbmdsZSBleGFjdCBtYXRjaCB0aGVuIHRoYXQgc2hvdWxkIGdldCBwcmVjZWRlbmNlIG92ZXIgb3RoZXIgbWF0Y2hlcworIyAgIGFuZCBub3QgYmUgY29uc2lkZXJlZCBhbiBhbWJpZ3VvdXMgY29tbWFuZAorIyAtIGFkZCAnZGVmYXVsdCcgYXR0cmlidXRlIGZvciB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBhbiBvcHRpb25hbCBmaWVsZCBpZiBpdCdzIG5vdAorIyAgIHNwZWNpZmllZC4gU2hvdWxkIHRoaXMgYmUgdHJlYXRlZCBhcyBtdXR1YWxseSBleGNsdXNpdmUgd2l0aCAnb3B0aW9uYWwnPworIyAtIGNvbnZlcnQgcmVzZXQtZmllbGRzIGFjdGlvbiB0byB1c2UgZmllbGRzIGluc3RlYWQgb2YgYXJnX2RhdGEuIElmIHdlJ3JlIHVzaW5nCisjICAgbmV3LXN0eWxlIGhhY2sgdGhlbiB3ZSBwcm9iYWJseSBuZWVkIHRvIGhhdmUgaXQgYmUgbmV3LXJlc2V0LWZpZWxkcyBvciBzb21ldGhpbmcKKyMgICBsaWtlIHRoYXQuCisjIC0gY2xlYW4gdXAgdXNhZ2Ugb2YgcmV0dXJuIHZhbHVlcyBmb3IgdGhlIGNvbW1hbmQgaGFuZGxpbmcgbWV0aG9kcywgaS5lLgorIyAgIGhhbmRsZV9vbmVfY29tbWFuZCBhbmQgYWxsIG9mIHRoZSBvdGhlciBoYW5kbGVfKiBtZXRob2RzLiBTaG91bGQgbWF5YmUKKyMgICBqdXN0IG5vdCByZXR1cm4gYW55dGhpbmcgZm9yIGFueSBvZiB0aG9zZSBhbmQganVzdCBjYXB0dXJlIHRoZQorIyAgIG1hdGNoZXMvY29tcGxldGlvbiBpbiB0aGUgZGF0YSBtZW1iZXIuCisjIC0gZml4IGJlaGF2aW9yIGZvciBwcmludGluZyA8Y3I+IGFzIGEgY29tcGxldGlvbiBhdCB0aGUgZW5kIG9mIGEKKyMgICBjb21wbGV0ZSBjb21tYW5kLiBSaWdodCBub3cgdGhlcmUncyBhIGJ1ZyB3aGVyZSBpdCB3aWxsIHN0aWxsIHByaW50IG91dAorIyAgIHRoZSBzeW50YXggaGVscC4KKyMgLSBzdXBwb3J0IHN0cmluZyB0b2tlbiBhcmd1bWVudCBhcyBqdXN0IGEgc2ltcGxlIHN0cmluZyBpbiB0aGUgYXJndW1lbnQgbGlzdAorIyAtIGN1c3RvbSBjb21wbGV0aW9uIHByb2MgZm9yIGNpZHIgYWRkcmVzcy4gQ3VycmVudGx5IGlmIGEgY29tbWFuZCBkZXNjcmlwdGlvbgorIyAgIHN1cHBvcnRzIGVpdGhlciBjaWRyIG9yIGlwK25ldG1hc2sgaXQgd2lsbCBoYW5kbGUgZWl0aGVyIGZvciBjb21tYW5kIGV4ZWN1dGlvbgorIyAgIGJ1dCBjb21wbGV0aW9uIHdpbGwgb25seSBoYW5kbGUgdGhlIGlwK25ldG1hc2sgdmFyaWFudC4gV2l0aCBhIGN1c3RvbQorIyAgIGNvbXBsZXRpb24gcHJvYyB5b3UgY291bGQgY29tYmluZSB0aGUgaXArbmV0bWFzayBmcm9tIHRoZSBkYiBhbmQgZm9ybWF0IGFzCisjICAgYSBjaWRyIGFkZHJlc3MgYW5kIHJldHVybiB0aGF0IGFzIGEgY29tcGxldGlvbgorCisKKworY29tbWFuZF90eXBlX2RlZmF1bHRzID0ge30KKworCisjIFdlIHJlbHkgb24gdGhlIGhpZ2hlciBsZXZlbCBDTEkgb2JqZWN0IGZvciBjZXJ0YWluIG9wZXJhdGlvbnMsIHNvIHdlJ3JlIGluaXRpYWxpemVkCisjIHdpdGggYSByZWZlcmVuY2UgdGhhdCdzIHVzZWQgdG8gY2FsbCBiYWNrIHRvIGl0LiBUaGlzIGlzIGluaXRpYWxpemVkIGluIGluaXRfY29tbWFuZC4KK3NkbnNoID0gTm9uZQorCisjIGNvbW1hbmRfcmVnaXN0cnkgaXMgdGhlIGxpc3Qgb2YgY29tbWFuZCBkZXNjcmlwdGlvbnMgdGhhdCBoYXZlIGJlZW4gcmVnaXN0ZXJlZAorIyB2aWEgYWRkX2NvbW1hbmQuIFRoZSByZWFzb24gdGhpcyBpcyBhIGxpc3QgKGkuZS4gaW5zdGVhZCBvZiBhIGRpY3Rpb25hcnkgdGhhdCdzCisjIGtleWVkIGJ5IHRoZSBjb21tYW5kIG5hbWUpIGlzIHRoYXQncyBpdCdzIHBvc3NpYmxlIHRoYXQgeW91IGNvdWxkIGhhdmUgZGlmZmVyZW50CisjIGNvbW1hbmQgZGVzY3JpcHRpb25zIHdpdGggdGhlIHNhbWUgbmFtZSBidXQgZW5hYmxlZCBmb3IgZGlmZmVyZW50IG1vZGVzLgorY29tbWFuZF9yZWdpc3RyeSA9IFtdCisKKyMgY29tbWFuZF9zdWJtb2RlX3RyZWUgaXMgYSBkaWN0aW9uYXJ5LCB3aGVyZSBlYWNoIHN1Ym1vZGUsIGFuZCBpdHMgY2hpbGRyZW4KKyMgYXJlIHNhdmVkLgorIworY29tbWFuZF9zdWJtb2RlX3RyZWUgPSB7ICdsb2dpbicgOiB7ICdlbmFibGUnIDogeyAnY29uZmlnJyA6IHt9IH0gfSB9CisKKyMgdmFsaWRhdGlvbl9yZWdpc3RyeSBpcyB0aGUgZGljdGlvbmFyeSBvZiB2YWxpZGF0aW9uIGZ1bmN0aW9ucyB0aGF0IGhhdmUgYmVlbgorIyByZWdpc3RlcmVkIHZpYSBhZGRfdmFsaWRhdGlvbi4gVGhlIGtleSBpcyB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gYXMgc3BlY2lmaWVkCisjIGluIHR5cGVkZWYgYW5kIGNvbW1hbmQgZGVzY3JpcHRpb24uIFRoZSB2YWx1ZSBpcyBhIDIgaXRlbSB0dXBsZSB3aGVyZSB0aGUgZmlyc3QKKyMgaXRlbSBpcyB0aGUgdmFsaWRhdGlvbiBmdW5jdGlvbiB0byBpbnZva2UgYW5kIHRoZSBzZWNvbmQgaXRlbSBpcyBhIGRpY3Rpb25hcnkKKyMgZGVzY3JpYmluZyB0aGUgYXJndW1lbnRzIHRoYXQgYXJlIHVzZWQgd2hlbiBpbnZva2luZyB0aGUgdmFsaWRhdGlvbiBmdW5jdGlvbi4KKyMgU2VlIHRoZSBjb21tZW50cyBmb3IgX2NhbGxfcHJvYyBmb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZm9ybWF0IG9mIHRoZSAKKyMgZGF0YSBkZXNjcmliaW5nIHRoZSBhcmdzLgorIyBpbnZva2UuCit2YWxpZGF0aW9uX3JlZ2lzdHJ5ID0ge30KKworIyB0eXBlZGVmX3JlZ2lzdHJ5IGlzIHRoZSBkaWN0aW9uYXJ5IG9mIHR5cGVkZWYgZGVzY3JpcHRpb25zLiBUaGUga2V5IGlzIHRoZQorIyBuYW1lIG9mIHRoZSB0eXBlZGVmIGFuZCB0aGUgdmFsdWUgaXMgdGhlIHR5cGVkZWYgZGVzY3JpcHRpb24uCisjIHZhbHVlIGlmIHRoZSBmdW5jdGlvbiB0byBpbnZva2UKK3R5cGVkZWZfcmVnaXN0cnkgPSB7fQorCisjIGFjdGlvbl9yZWdpc3RyeSBpcyB0aGUgZGljdGlvbmFyeSBvZiBhY3Rpb24gZnVuY3Rpb25zIHRoYXQgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQKKyMgdmlhIGFkZF9hY3Rpb24uIFRoZSBrZXkgaXMgdGhlIG5hbWUgb2YgdGhlIGZ1bmN0aW9uIGFzIHNwZWNpZmllZCBpbgorIyBjb21tYW5kIGRlc2NyaXB0aW9ucy4gVGhlIHZhbHVlIGlzIGEgMiBpdGVtIHR1cGxlIHdoZXJlIHRoZSBmaXJzdAorIyBpdGVtIGlzIHRoZSBhY3Rpb24gZnVuY3Rpb24gdG8gaW52b2tlIGFuZCB0aGUgc2Vjb25kIGl0ZW0gaXMgYSBkaWN0aW9uYXJ5CisjIGRlc2NyaWJpbmcgdGhlIGFyZ3VtZW50cyB0aGF0IGFyZSB1c2VkIHdoZW4gaW52b2tpbmcgdGhlIHZhbGlkYXRpb24gZnVuY3Rpb24uCisjIFNlZSB0aGUgY29tbWVudHMgZm9yIF9jYWxsX3Byb2MgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZvcm1hdCBvZiB0aGUgCisjIGRhdGEgZGVzY3JpYmluZyB0aGUgYXJncy4KK2FjdGlvbl9yZWdpc3RyeSA9IHt9CisKKyMgY29tcGxldGlvbl9yZWdpc3RyeSBpcyB0aGUgZGljdGlvbmFyeSBvZiBjb21wbGV0aW9uIGZ1bmN0aW9ucyB0aGF0IGhhdmUgYmVlbgorIyByZWdpc3RlcmVkIHZpYSBhZGRfY29tcGxldGlvbi4gVGhlIGtleSBpcyB0aGUgbmFtZSBvZiB0aGUgZnVuY3Rpb24gYXMgc3BlY2lmaWVkCisjIGluIGNvbW1hbmQgZGVzY3JpcHRpb25zLiBUaGUgdmFsdWUgaXMgYSAyIGl0ZW0gdHVwbGUgd2hlcmUgdGhlIGZpcnN0CisjIGl0ZW0gaXMgdGhlIGNvbXBsZXRpb24gZnVuY3Rpb24gdG8gaW52b2tlIGFuZCB0aGUgc2Vjb25kIGl0ZW0gaXMgYSBkaWN0aW9uYXJ5CisjIGRlc2NyaWJpbmcgdGhlIGFyZ3VtZW50cyB0aGF0IGFyZSB1c2VkIHdoZW4gaW52b2tpbmcgdGhlIHZhbGlkYXRpb24gZnVuY3Rpb24uCisjIFNlZSB0aGUgY29tbWVudHMgZm9yIF9jYWxsX3Byb2MgZm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGZvcm1hdCBvZiB0aGUgCisjIGRhdGEgZGVzY3JpYmluZyB0aGUgYXJncy4KK2NvbXBsZXRpb25fcmVnaXN0cnkgPSB7fQorCisKKyMgYXJndW1lbnRfZGF0YV9oYW5kbGVyX3JlZ2lzdHJ5IGlzIHRoZSBkaWN0aW9uYXJ5IG9mIGN1c3RvbSBhcmd1bWVudCBkYXRhCisjIGhhbmRsZXJzIHRoYXQgaGF2ZSBiZWVuIHJlZ2lzdGVyZWQgdmlhIGFkZF9hcmd1bWVudF9kYXRhX2hhbmRsZXIuIFRoZXNlIGFyZQorIyB1c2VkIGlmIGN1c3RvbSBwcm9jZXNzaW5nIGlzIHJlcXVpcmVkIHRvIGNvbnZlcnQgdGhlIGFyZ3VtZW50IHZhbHVlIHRvIHRoZQorIyBkYXRhIHRoYXQgaXMgYWRkZWQgdG8gdGhlIGFyZ3VtZW50IGRhdGEgZGljdGlvbmFyeS4gVGhlIGtleSBpcyB0aGUgbmFtZSBvZgorIyB0aGUgZnVuY3Rpb24gYXMgc3BlY2lmaWVkIGluIGNvbW1hbmQgZGVzY3JpcHRpb25zLiBUaGUgdmFsdWUgaXMgYSAyIGl0ZW0KKyMgdHVwbGUgd2hlcmUgdGhlIGZpcnN0IGl0ZW0gaXMgdGhlIGhhbmRsZXIgZnVuY3Rpb24gdG8gaW52b2tlIGFuZCB0aGUgc2Vjb25kCisjIGl0ZW0gaXMgYSBkaWN0aW9uYXJ5IGRlc2NyaWJpbmcgdGhlIGFyZ3VtZW50cyB0aGF0IGFyZSB1c2VkIHdoZW4gaW52b2tpbmcKKyMgdGhlIHZhbGlkYXRpb24gZnVuY3Rpb24uIFNlZSB0aGUgY29tbWVudHMgZm9yIF9jYWxsX3Byb2MgZm9yIG1vcmUgaW5mb3JtYXRpb24KKyMgYWJvdXQgdGhlIGZvcm1hdCBvZiB0aGUgZGF0YSBkZXNjcmliaW5nIHRoZSBhcmdzLgorYXJndW1lbnRfZGF0YV9oYW5kbGVyX3JlZ2lzdHJ5ID0ge30KKworIworIyBrZWVwIGEgbGlzdCBvZiBhbGwgdGhlIGNvbW1hbmQgbW9kdWxlIG5hbWVzCitjb21tYW5kX2FkZGVkX21vZHVsZXMgPSB7fQorCisjCitjb21tYW5kX3N5bnRheF92ZXJzaW9uID0ge30KKworZGVmIGFkZF9jb21tYW5kKGNvbW1hbmQpOgorICAgIGNvbW1hbmRfcmVnaXN0cnkuYXBwZW5kKGNvbW1hbmQpCisKKworZGVmIG1vZGVsX29ial90eXBlX2Rpc2FibGVfc3VibW9kZShvYmpfdHlwZSk6CisgICAgbWkub2JqX3R5cGVfc291cmNlX3NldF9kZWJ1Z19vbmx5KG9ial90eXBlKQorCisKK2RlZiBtb2RlbF9vYmpfdHlwZV9lbmFibGVfY2FzY2FkZV9kZWxldGUob2JqX3R5cGUpOgorICAgIG1pLmNhc2NhZGVfZGVsZXRlX3NldF9lbmFibGUob2JqX3R5cGUpCisKK2RlZiBtb2RlbF9vYmpfdHlwZV93ZWFrX3dpdGhfY2FzY2FkZV9kZWxldGUob2JqX3R5cGUpOgorICAgIG1pLmNhc2NhZGVfZGVsZXRlX2VuYWJsZV9mb3JjZShvYmpfdHlwZSkKKworZGVmIG1vZGVsX29ial90eXBlX3NldF90aXRsZShvYmpfdHlwZSwgdGl0bGUpOgorICAgIG1pLm9ial90eXBlX3NldF90aXRsZShvYmpfdHlwZSwgdGl0bGUpCisKKworZGVmIG1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdChvYmpfdHlwZSwgZmllbGQpOgorICAgIG1pLm9ial90eXBlX2Rpc2FibGVfZWRpdChvYmpfdHlwZSwgZmllbGQpCisKKworZGVmIG1vZGVsX29ial90eXBlX3NldF9jYXNlKG9ial90eXBlLCBmaWVsZCwgY2FzZSk6CisgICAgbWkuc2V0X29ial90eXBlX2ZpZWxkX2Nhc2Vfc2Vuc2l0aXZlKG9ial90eXBlLCBmaWVsZCwgY2FzZSkKKworZGVmIG1vZGVsX29ial90eXBlX3NldF9zaG93X3RoaXMob2JqX3R5cGUsIHNob3dfdGhpc19saXN0KToKKyAgICAiIiIKKyAgICBXaGVuIGFuIG9iai10eXBlIGdldHMgZGlzcGxheWVkIHZpYSAnc2hvdyB0aGlzJywgY29tcGxleAorICAgIG9iamVjdHMgbWF5IHJlcXVpcmUgc2V2ZXJhbCBkaWZmZXJlbnQgaXRlbXMgdG8gYmUgZGlzcGxheWVkLgorICAgIFRoZSBzZWNvbmQgcGFyYW1ldGVyIGlzIGEgbGlzdCwgd2hlcmUgZWFjaCBpdGVtIGhhcyBzZXZlcmFsCisgICAgZmllbGRzOiB0aGUgZmlyc3QgaXMgdGhlIG5hbWUgb2YgdGhlIG9iamVjdCB0byBkaXNwbGF5LCBhbmQKKyAgICB0aGUgc2Vjb25kIGlzIHRoZSBmb3JtYXQgdG8gdXNlIGZvciB0aGF0IGRpc3BsYXkKKyAgICAiIiIKKyAgICBtaS5vYmpfdHlwZV9zZXRfc2hvd190aGlzKG9ial90eXBlLCBzaG93X3RoaXNfbGlzdCkKKworCitkZWYgY29tbWFuZF9kaWN0X21pbnVzX2xlYygpOgorICAgICMgbGVjIC0tICdsb2dpbicsICdlbmFibGUnLCAnY29uZmlnJy4KKyAgICByZXR1cm4gW3ggZm9yIHggaW4gc2Ruc2guY29tbWFuZF9kaWN0LmtleXMoKQorICAgICAgICAgICAgaWYgeCBub3QgaW4gWydsb2dpbicsICdlbmFibGUnLCAnY29uZmlnJywgJ2NvbmZpZy0nXV0KKworCitkZWYgY29tbWFuZF9kaWN0X3N1Ym1vZGVfaW5kZXgoc3VibW9kZSk6CisgICAgaWYgc3VibW9kZSBpbiBbJ2xvZ2luJywgJ2VuYWJsZScsICdjb25maWcnLCAnY29uZmlnLSddOgorICAgICAgICByZXR1cm4gc3VibW9kZQorICAgIGlmIHN1Ym1vZGUuc3RhcnRzd2l0aCgnY29uZmlnLScpOgorICAgICAgICByZXR1cm4gc3VibW9kZQorICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICBwcmludCBfbGluZSgpLCAidW5rbm93biBzdWJtb2RlICIsIHN1Ym1vZGUKKyAgICAKKworZGVmIGFkZF9jb21tYW5kX21vZGVfcmVjdXJzZShtb2RlX2RpY3QsIG1vZGUsIHN1Ym1vZGUpOgorICAgIGlmIG1vZGUgaW4gbW9kZV9kaWN0OgorICAgICAgICBpZiBub3Qgc3VibW9kZSBpbiBtb2RlX2RpY3RbbW9kZV06CisgICAgICAgICAgICBtb2RlX2RpY3RbbW9kZV1bc3VibW9kZV0gPSB7fQorICAgIGVsc2U6CisgICAgICAgIGZvciBkIGluIG1vZGVfZGljdC5rZXlzKCk6CisgICAgICAgICAgICBhZGRfY29tbWFuZF9tb2RlX3JlY3Vyc2UobW9kZV9kaWN0W2RdLCBtb2RlLCBzdWJtb2RlKQorCisKK2RlZiBhZGRfY29tbWFuZF9zdWJtb2RlKG1vZGUsIHN1Ym1vZGUpOgorICAgIGFkZF9jb21tYW5kX21vZGVfcmVjdXJzZShjb21tYW5kX3N1Ym1vZGVfdHJlZSwgbW9kZSwgc3VibW9kZSkKKworZGVmIHNob3dfY29tbWFuZF9zdWJtb2RlX3RyZWVfcmVjdXJzZShtb2RlX2RpY3QsIGxldmVsKToKKyAgICBpZiBsZW4obW9kZV9kaWN0KToKKyAgICAgICAgZm9yIGQgaW4gbW9kZV9kaWN0LmtleXMoKToKKyAgICAgICAgICAgIGluZGV4ID0gY29tbWFuZF9kaWN0X3N1Ym1vZGVfaW5kZXgoZCkKKyAgICAgICAgICAgIGl0ZW1zID0gW3ggaWYgX2lzX3N0cmluZyh4KSBlbHNlIHgucGF0dGVybiBmb3IgeCBpbiBzZG5zaC5jb21tYW5kX2RpY3QuZ2V0KGluZGV4LCAnJyldCisgICAgICAgICAgICBwcmludCAiICIgKiBsZXZlbCwgZCwgJzogJyArICcsICcuam9pbihpdGVtcykKKyAgICAgICAgICAgIHNob3dfY29tbWFuZF9zdWJtb2RlX3RyZWVfcmVjdXJzZShtb2RlX2RpY3RbZF0sIGxldmVsICsgMikKKworCitkZWYgc2hvd19jb21tYW5kX3N1Ym1vZGVfdHJlZSgpOgorICAgIHNob3dfY29tbWFuZF9zdWJtb2RlX3RyZWVfcmVjdXJzZShjb21tYW5kX3N1Ym1vZGVfdHJlZSwgMCkKKworCitkZWYgY29tbWFuZF9kaWN0X2FwcGVuZChjb21tYW5kLCBtb2RlLCBuYW1lKToKKyAgICBpZiBub3QgbW9kZSBpbiBzZG5zaC5jb21tYW5kX2RpY3Q6CisgICAgICAgIHNkbnNoLmNvbW1hbmRfZGljdFttb2RlXSA9IFtdCisgICAgaWYgdHlwZShuYW1lKSA9PSBkaWN0OgorICAgICAgICAjIHRoaXMgaXMgYSByZWd1bGFyIGV4cHJlc3Npb24gbmFtZSwgYWRkIHRoZSByZS4KKyAgICAgICAgaWYgbm90ICdwYXR0ZXJuJyBpbiBuYW1lOgorICAgICAgICAgICAgcHJpbnQgJyVzOiBtaXNzaW5nIHBhdHRlcm4nICUgY29tbWFuZFsnc2VsZiddCisgICAgICAgIG5hbWVbJ3JlJ10gPSByZS5jb21waWxlKG5hbWVbJ3BhdHRlcm4nXSkKKyAgICBzZG5zaC5jb21tYW5kX2RpY3RbbW9kZV0uYXBwZW5kKG5hbWUpCisKKworZGVmIGNvbW1hbmRfbmVzdGVkX2RpY3RfYXBwZW5kKGNvbW1hbmQsIG1vZGUsIG5hbWUpOgorICAgIGlmIG5vdCBtb2RlIGluIHNkbnNoLmNvbW1hbmRfbmVzdGVkX2RpY3Q6CisgICAgICAgIHNkbnNoLmNvbW1hbmRfbmVzdGVkX2RpY3RbbW9kZV0gPSBbXQorICAgIGlmIHR5cGUobmFtZSkgPT0gZGljdDoKKyAgICAgICAgIyB0aGlzIGlzIGEgcmVndWxhciBleHByZXNzaW9uIG5hbWUsIGFkZCB0aGUgcmUuCisgICAgICAgIGlmIG5vdCAncGF0dGVybicgaW4gbmFtZToKKyAgICAgICAgICAgIHByaW50ICclczogbWlzc2luZyBwYXR0ZXJuJyAlIGNvbW1hbmRbJ3NlbGYnXQorICAgICAgICBuYW1lWydyZSddID0gcmUuY29tcGlsZShuYW1lWydwYXR0ZXJuJ10pCisgICAgaWYgbm90IG5hbWUgaW4gc2Ruc2guY29tbWFuZF9uZXN0ZWRfZGljdFttb2RlXToKKyAgICAgICAgc2Ruc2guY29tbWFuZF9uZXN0ZWRfZGljdFttb2RlXS5hcHBlbmQobmFtZSkKKworCitkZWYgYWRkX2NvbW1hbmRfdG9fY29tbWFuZF9kaWN0KGNvbW1hbmQsIG1vZGUsIG5hbWUsIHZhcik6CisgICAgIworICAgIGlmIG1vZGUgaW4gWydsb2dpbicsICdlbmFibGUnXToKKyAgICAgICAgY29tbWFuZF9uZXN0ZWRfZGljdF9hcHBlbmQoY29tbWFuZCwgbW9kZSwgbmFtZSkKKyAgICBlbGlmIG1vZGUgPT0gJ2NvbmZpZycgb3IgbW9kZSA9PSAnY29uZmlnLSc6CisgICAgICAgIGNvbW1hbmRfZGljdF9hcHBlbmQoY29tbWFuZCwgbW9kZSwgbmFtZSkKKyAgICBlbGlmIG1vZGUuZW5kc3dpdGgoJyonKToKKyAgICAgICAgaW5kZXggPSBtb2RlWzotMV0KKyAgICAgICAgY29tbWFuZF9uZXN0ZWRfZGljdF9hcHBlbmQoY29tbWFuZCwgaW5kZXgsIG5hbWUpCisgICAgZWxpZiBtb2RlLnN0YXJ0c3dpdGgoImNvbmZpZyIpOgorICAgICAgICBjb21tYW5kX2RpY3RfYXBwZW5kKGNvbW1hbmQsIG1vZGUsIG5hbWUpCisKKworCitkZWYgYWRkX2NvbW1hbmRfdXNpbmdfZGljdChjb21tYW5kX2Rlc2NyaXB0aW9uLCB2YWx1ZSk6CisgICAgIiIiCisgICAgIiIiCisgICAgaWYgbm90ICdzZWxmJyBpbiB2YWx1ZToKKyAgICAgICAgdmFsdWVbJ3NlbGYnXSA9IGNvbW1hbmRfZGVzY3JpcHRpb24KKworICAgIGlmIG5vdCAnbmFtZScgaW4gdmFsdWU6CisgICAgICAgIHByaW50ICclczogbWlzc2luZyBcJ25hbWVcJzogaW4gZGVzY3JpcHRpb24nICUgY29tbWFuZF9kZXNjcmlwdGlvbgorICAgICAgICByZXR1cm4KKyAgICBpZiBub3QgJ21vZGUnIGluIHZhbHVlOgorICAgICAgICBwcmludCAnJXM6IG1pc3NpbmcgXCdtb2RlXCc6IGluIGRlc2NyaXB0aW9uJyAlIGNvbW1hbmRfZGVzY3JpcHRpb24KKyAgICAgICAgcmV0dXJuCisKKyAgICBuYW1lID0gdmFsdWVbJ25hbWUnXQorICAgIG1vZGUgPSB2YWx1ZVsnbW9kZSddCisgICAgY29tbWFuZF90eXBlID0gdmFsdWUuZ2V0KCdjb21tYW5kLXR5cGUnKQorICAgIGlmIGNvbW1hbmRfdHlwZSA9PSAnY29uZmlnLXN1Ym1vZGUnOgorICAgICAgICBzdWJtb2RlID0gdmFsdWUuZ2V0KCdzdWJtb2RlLW5hbWUnKQorICAgICAgICAjIGFkZF9jb21tYW5kX3N1Ym1vZGUobW9kZSxzdWJtb2RlKQorCisgICAgIyBYWFggdGhpcyBuZWVkcyBpbXByb3ZpbmcKKyAgICBmZWF0dXJlID0gdmFsdWUuZ2V0KCdmZWF0dXJlJykKKyAgICBpZiBmZWF0dXJlIGFuZCBuYW1lIG5vdCBpbiBbJ3Nob3cnXTogCisgICAgICAgIGlmIG5vdCBuYW1lIGluIHNkbnNoLmNvbW1hbmRfbmFtZV9mZWF0dXJlOgorICAgICAgICAgICAgc2Ruc2guY29tbWFuZF9uYW1lX2ZlYXR1cmVbbmFtZV0gPSBbXQorICAgICAgICBpZiBub3QgZmVhdHVyZSBpbiBzZG5zaC5jb21tYW5kX25hbWVfZmVhdHVyZVtuYW1lXToKKyAgICAgICAgICAgIHNkbnNoLmNvbW1hbmRfbmFtZV9mZWF0dXJlW25hbWVdLmFwcGVuZChmZWF0dXJlKQorICAgICMKKyAgICAjIHBvcHVsYXRlIHNkbnNoLmNvbnRyb2xsZXJfZGljdCBiYXNlZCBvbiB0aGUgbW9kZXMgZGVzY3JpYmVkIGZvciB0aGlzIGNvbW1hbmQKKyAgICAjCisgICAgaWYgJ21vZGUnIGluIHZhbHVlOgorICAgICAgICBpZiBfaXNfbGlzdChtb2RlKToKKyAgICAgICAgICAgIGZvciBtIGluIG1vZGU6CisgICAgICAgICAgICAgICAgYWRkX2NvbW1hbmRfdG9fY29tbWFuZF9kaWN0KHZhbHVlLCBtLCBuYW1lLCBjb21tYW5kX2Rlc2NyaXB0aW9uKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgYWRkX2NvbW1hbmRfdG9fY29tbWFuZF9kaWN0KHZhbHVlLCBtb2RlLCBuYW1lLCBjb21tYW5kX2Rlc2NyaXB0aW9uKQorICAgIGFkZF9jb21tYW5kKHZhbHVlKQorCisKK2RlZiBhZGRfY29tbWFuZHNfZnJvbV9jbGFzcyhhY2xhc3MpOgorICAgICIiIgorICAgICIiIgorICAgIGZvciAodmFyLCB2YWx1ZSkgaW4gdmFycyhhY2xhc3MpLml0ZW1zKCk6CisgICAgICAgIGlmIHJlLm1hdGNoKHInLipDT01NQU5EX0RFU0NSSVBUSU9OJCcsIHZhcik6CisgICAgICAgICAgICBhZGRfY29tbWFuZF91c2luZ19kaWN0KHZhciwgdmFsdWUpCisKKworZGVmIGFkZF9jb21tYW5kX21vZHVsZV9uYW1lKHZlcnNpb24sIG1vZHVsZSk6CisgICAgIiIiCisgICAgU2F2ZSBzb21lIHN0YXRlIGFib3V0IHRoZSB2ZXJzaW9uL21vZHVsZQorICAgICIiIgorICAgIGlmIHZlcnNpb24gbm90IGluIGNvbW1hbmRfc3ludGF4X3ZlcnNpb246CisgICAgICAgIGNvbW1hbmRfc3ludGF4X3ZlcnNpb25bdmVyc2lvbl0gPSBbbW9kdWxlXQorICAgIGVsc2U6CisgICAgICAgIGNvbW1hbmRfc3ludGF4X3ZlcnNpb25bdmVyc2lvbl0uYXBwZW5kKG1vZHVsZSkKKworCitkZWYgYWRkX2NvbW1hbmRzX2Zyb21fbW9kdWxlKHZlcnNpb24sIG1vZHVsZSwgZHVtcF9zeW50YXggPSBGYWxzZSk6CisgICAgYWRkX2NvbW1hbmRfbW9kdWxlX25hbWUodmVyc2lvbiwgbW9kdWxlKQorICAgIGZvciBuYW1lIGluIGRpcihtb2R1bGUpOgorICAgICAgICBpZiByZS5tYXRjaChyJy4qQ09NTUFORF9ERVNDUklQVElPTiQnLCBuYW1lKToKKyAgICAgICAgICAgIGlmIG1vZHVsZS5fX25hbWVfXyBub3QgaW4gY29tbWFuZF9hZGRlZF9tb2R1bGVzOgorICAgICAgICAgICAgICAgIGNvbW1hbmRfYWRkZWRfbW9kdWxlc1ttb2R1bGUuX19uYW1lX19dID0gW25hbWVdCisgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBjb21tYW5kX2FkZGVkX21vZHVsZXNbbW9kdWxlLl9fbmFtZV9fXToKKyAgICAgICAgICAgICAgICBjb21tYW5kX2FkZGVkX21vZHVsZXNbbW9kdWxlLl9fbmFtZV9fXS5hcHBlbmQobmFtZSkKKyAgICAgICAgICAgIGNvbW1hbmQgPSBnZXRhdHRyKG1vZHVsZSwgbmFtZSkKKyAgICAgICAgICAgIGFkZF9jb21tYW5kX3VzaW5nX2RpY3QobmFtZSwgY29tbWFuZCkKKyAgICAgICAgICAgIGlmIGR1bXBfc3ludGF4OgorICAgICAgICAgICAgICAgIGhhbmRsZXIgPSBDb21tYW5kU3ludGF4ZXIobmFtZSkKKyAgICAgICAgICAgICAgICBoYW5kbGVyLmFkZF9rbm93bl9jb21tYW5kKGNvbW1hbmQpCisgICAgICAgICAgICAgICAgcHJpbnQgaGFuZGxlci5oYW5kbGVfY29tbWFuZF9yZXN1bHRzKCkKKworCitkZWYgYWRkX3ZhbGlkYXRpb24obmFtZSwgdmFsaWRhdGlvbl9wcm9jLCBkZWZhdWx0X2FyZ3M9eydrd2FyZ3MnOgorICAgICAgICB7J3R5cGVkZWYnOiAnJHR5cGVkZWYnLCAndmFsdWUnOiAnJHZhbHVlJ319KToKKyAgICB2YWxpZGF0aW9uX3JlZ2lzdHJ5W25hbWVdID0gKHZhbGlkYXRpb25fcHJvYywgZGVmYXVsdF9hcmdzKQorICAgIAorCitkZWYgYWRkX3R5cGVkZWYodHlwZWRlZik6CisgICAgdHlwZWRlZl9yZWdpc3RyeVt0eXBlZGVmWyduYW1lJ11dID0gdHlwZWRlZgorCisKK2RlZiBhZGRfYWN0aW9uKG5hbWUsIGFjdGlvbl9wcm9jLCBkZWZhdWx0X2FyZ3M9e30pOgorICAgIGFjdGlvbl9yZWdpc3RyeVtuYW1lXSA9IChhY3Rpb25fcHJvYywgZGVmYXVsdF9hcmdzKQorCitkZWYgYWN0aW9uX2ludm9rZShuYW1lLCBhY3Rpb25fYXJncyk6CisgICAgIyBubyB2YWxpZGF0aW9uIHRvIG1hdGNoIGFyZ3MuCisgICAgYWN0aW9uID0gYWN0aW9uX3JlZ2lzdHJ5W25hbWVdIAorICAgIGFjdGlvblswXShhY3Rpb25fYXJncykKKyAgICAKK2RlZiBhZGRfY29tcGxldGlvbihuYW1lLCBjb21wbGV0aW9uX3Byb2MsIGRlZmF1bHRfYXJncz0geydrd2FyZ3MnOgorICAgICAgICB7J3dvcmRzJzogJyR3b3JkcycsICd0ZXh0JzogJyR0ZXh0JywgJ2NvbXBsZXRpb25zJzogJyRjb21wbGV0aW9ucyd9fSk6CisgICAgY29tcGxldGlvbl9yZWdpc3RyeVtuYW1lXSA9IChjb21wbGV0aW9uX3Byb2MsIGRlZmF1bHRfYXJncykKKworZGVmIGFkZF9hcmd1bWVudF9kYXRhX2hhbmRsZXIobmFtZSwgaGFuZGxlcl9wcm9jLCBkZWZhdWx0X2FyZ3MgPSAKKyAgICAgICAgeydrd2FyZ3MnOiB7J25hbWUnOiAnJG5hbWUnLCAndmFsdWUnOiAnJHZhbHVlJywKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGEnOiAnJGRhdGEnLCAnc2NvcGVzJzogJyRzY29wZXMnfX0pOgorICAgIGFyZ3VtZW50X2RhdGFfaGFuZGxlcl9yZWdpc3RyeVtuYW1lXSA9IChoYW5kbGVyX3Byb2MsIGRlZmF1bHRfYXJncykKKyAgICAKK2RlZiBhZGRfY29tbWFuZF90eXBlKG5hbWUsIGNvbW1hbmRfZGVmYXVsdHMpOgorICAgIGNvbW1hbmRfdHlwZV9kZWZhdWx0c1tuYW1lXSA9IGNvbW1hbmRfZGVmYXVsdHMKKyAKK2RlZiBfbGluZSgpOgorICAgICMgcHlsaW50OiBkaXNhYmxlPVcwMjEyCisgICAgZiA9IHN5cy5fZ2V0ZnJhbWUoKS5mX2JhY2sKKyAgICByZXR1cm4gJ1slczolZF0nICUgKGYuZl9jb2RlLmNvX2ZpbGVuYW1lLCBmLmZfbGluZW5vKQorCisjCisjIFZBTElEQVRJT04gUFJPQ1MKKyMKKworZGVmIF9pc19yYW5nZV9ib3VuZGFyeShib3VuZGFyeSk6CisgICAgIiIiCisgICAgUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgZ2l2ZW4gdmFsdWUgaXMgYSB2YWxpZCBib3VuZGFyeSB2YWx1ZS4KKyAgICBWYWxpZCB2YWx1ZXMgYXJlIGludGVnZXJzIG9yIHRoZSBzcGVjaWFsIHN0cmluZ3MgJ21pbicgb3IgJ21heCcKKyAgICAoY2FzZS1pbnNlbnNpdGl2ZSkKKyAgICAiIiIKKyAgICByZXR1cm4gKGlzaW5zdGFuY2UoYm91bmRhcnksIG51bWJlcnMuSW50ZWdyYWwpIG9yCisgICAgICAgIChfaXNfc3RyaW5nKGJvdW5kYXJ5KSBhbmQgKGJvdW5kYXJ5Lmxvd2VyKCkgaW4gKCdtaW4nLCdtYXgnKSkpKQorCisKK2RlZiBfY29udmVydF9yYW5nZV9ib3VuZGFyeShib3VuZGFyeSwgdGVzdF92YWx1ZSk6CisgICAgIiIiCisgICAgQ29udmVydHMgdGhlIGdpdmVuIGJvdW5kYXJ5IHZhbHVlIHRvIGFuIGFwcHJvcHJpYXRlIGludGVncmFsCisgICAgYm91bmRhcnkgdmFsdWUuIFRoaXMgaXMgdXNlZCB0byBoYW5kbGUgdGhlIHNwZWNpYWwgIm1pbicgYW5kCisgICAgJ21heCcgc3RyaW5nIHZhbHVlcy4gVGhlIHRlc3RfdmFsdWUgYXJndW1lbnQgc2hvdWxkIGJlIHRoZSB2YWx1ZQorICAgIHdoaWNoIGlzIGJlaW5nIHRlc3RlZCBmb3Igd2hldGhlciBvciBub3QgaXQncyBpbiBhIHJhbmdlLiBTaW5jZQorICAgIGxvbmcgaW50ZWdyYWwgdmFsdWVzIGhhdmUgYW4gdW5saW1pdGVkIHByZWNpc2lvbiB0aGVyZSBpcyBubworICAgIGFjdHVhbCBNSU4gb3IgTUFYIHZhbHVlLCBzbyB3ZSBqdXN0IG1ha2UgdGhlIHZhbHVlIG9uZSBsZXNzIG9yCisgICAgb25lIG1vcmUgdGhhbiB0aGUgdGVzdF92YWx1ZSwgc28gdGhhdCB0aGUgcmFuZ2UgY2hlY2sgaW4KKyAgICB2YWxpZGF0ZV9pbnRlZ2VyIGFnYWluc3QgdGhlIHRlc3RfdmFsdWUgd2lsbCBmYWlsIG9yIHN1Y2NlZWQKKyAgICBhcHByb3ByaWF0ZWx5LiBOb3RlIHRoYXQgdGhpcyBtZWFucyB0aGF0IHRoaXMgZnVuY3Rpb24gbXVzdCBiZQorICAgIGNhbGxlZCBhZ2FpbiBmb3IgZWFjaCBkaWZmZXJlbnQgdGVzdF92YWx1ZSAoaS5lLiB5b3UgY2FuJ3QKKyAgICBwcmUtcHJvY2VzcyB0aGUgcmFuZ2VzIHRvIHJlbW92ZSB0aGUgJ21pbicgYW5kICdtYXgnIHZhbHVlcykuCisgICAgIiIiCisgICAgaWYgX2lzX3N0cmluZyhib3VuZGFyeSk6CisgICAgICAgIGlmIGJvdW5kYXJ5Lmxvd2VyKCkgPT0gJ21pbic6CisgICAgICAgICAgICBib3VuZGFyeSA9IHRlc3RfdmFsdWUgLSAxCisgICAgICAgIGVsaWYgYm91bmRhcnkubG93ZXIoKSA9PSAnbWF4JzoKKyAgICAgICAgICAgIGJvdW5kYXJ5ID0gdGVzdF92YWx1ZSArIDEKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCdJbnZhbGlkIHJhbmdlIGJvdW5kYXJ5IGNvbnN0YW50OyBtdXN0IGJlICJtaW4iLCAibWF4IiBvciBpbnRlZ2VyIHZhbHVlJykKKyAgICAgICAgCisgICAgcmV0dXJuIGJvdW5kYXJ5CisKKworZGVmIF9pc19zaW5nbGVfcmFuZ2Uocik6CisgICAgIiIiCisgICAgUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgYXJndW1lbnQgaXMgYSB2YWxpZCBzaW5nbGUgcmFuZ2UuCisgICAgQSB2YWxpZCByYW5nZSBpcyBlaXRoZXIgYSBzaW5nbGUgaW50ZWdyYWwgdmFsdWUgb3IgZWxzZSBhCisgICAgc2VxdWVuY2UgKHR1cGxlIG9yIGxpc3QpIHdpdGggMiBlbGVtZW50cywgZWFjaCBvZiB3aGljaCBpcyBhIHZhbGlkCisgICAgcmFuZ2UgYm91bmRhcnkgdmFsdWUuCisgICAgIiIiCisgICAgcmV0dXJuICAoaXNpbnN0YW5jZShyLCBudW1iZXJzLkludGVncmFsKSBvcgorICAgICAgICAgICAgKGlzaW5zdGFuY2UociwgY29sbGVjdGlvbnMuU2VxdWVuY2UpIGFuZCAobGVuKHIpID09IDIpIGFuZAorICAgICAgICAgICAgIF9pc19yYW5nZV9ib3VuZGFyeShyWzBdKSBhbmQgX2lzX3JhbmdlX2JvdW5kYXJ5KHJbMV0pKSkKKworCitkZWYgX2NoZWNrX29uZV9yYW5nZShyKToKKyAgICAiIiIKKyAgICBDaGVja3MgdGhhdCB0aGUgYXJndW1lbnQgaXMgYSB2YWxpZCBzaW5nbGUgcmFuZ2UgYXMgZGV0ZXJtaW5lZAorICAgIGJ5IF9pc19zaW5nbGVfcmFuZ2UuCisgICAgSWYgaXQgaXMsIHRoZW4gdGhlIGZ1bmN0aW9uIHJldHVybnMgTm9uZS4KKyAgICBJdCBpdCdzIG5vdCwgdGhlbiBhIFJhbmdlU3ludGF4RXJyb3IgZXhjZXB0aW9uIGlzIHJhaXNlZC4KKyAgICAiIiIKKyAgICBpZiBub3QgX2lzX3NpbmdsZV9yYW5nZShyKToKKyAgICAgICAgcmFpc2UgZXJyb3IuUmFuZ2VTeW50YXhFcnJvcihzdHIocikpCisKKworZGVmIF9jaGVja19yYW5nZShyKToKKyAgICAiIiIKKyAgICBDaGVja3MgdGhhdCB0aGUgYXJndW1lbnQgaXMgYSB2YWxpZCByYW5nZS4KKyAgICBJZiBpdCBpcywgdGhlbiB0aGUgZnVuY3Rpb24gcmV0dXJucyBOb25lLgorICAgIEl0IGl0J3Mgbm90LCB0aGVuIGEgUmFuZ2VTeW50YXhFcnJvciBleGNlcHRpb24gaXMgcmFpc2VkLgorICAgIEZJWE1FOiBUaGlzIGRvZXNuJ3Qgc2VlbSB0byBiZSB1c2VkIGFueW1vcmUuIFJlbW92ZT8KKyAgICAiIiIgCisgICAgaWYgX2lzX3NpbmdsZV9yYW5nZShyKToKKyAgICAgICAgX2NoZWNrX29uZV9yYW5nZShyKQorICAgIGVsaWYgaXNpbnN0YW5jZShyLCBjb2xsZWN0aW9ucy5TZXF1ZW5jZSk6CisgICAgICAgIGZvciByMiBpbiByOgorICAgICAgICAgICAgX2NoZWNrX29uZV9yYW5nZShyMikKKyAgICBlbHNlOgorICAgICAgICByYWlzZSBlcnJvci5SYW5nZVN5bnRheEVycm9yKHN0cihyKSkKKworCitkZWYgX2xvb2t1cF90eXBlZGVmX3ZhbHVlKHR5cGVkZWYsIG5hbWUpOgorICAgICIiIgorICAgIExvb2sgdXAgdGhlIGdpdmVuIG5hbWUgaW4gYSB0eXBlZGVmLgorICAgIElmIGl0J3Mgbm90IGZvdW5kIGluIHRoZSBnaXZlbiB0eXBlZGVmIGl0IHJlY3Vyc2l2ZWx5IHNlYXJjaGVzCisgICAgZm9yIHRoZSB2YWx1ZSBpbiB0aGUgYmFzZSB0eXBlZGVmcy4KKyAgICBSZXR1cm5zIE5vbmUgaWYgdGhlIHZhbHVlIGlzIG5vdCBmb3VuZC4KKyAgICBGSVhNRTogTm90ZSB0aGF0IHRoaXMgbWVhbnMgdGhlcmUncyBjdXJyZW50bHkgbm8gd2F5IHRvIGRpc3Rpbmd1aXNoCisgICAgYmV0d2VlbiBhbiBleHBsaWNpdCBOb25lIHZhbHVlIGFuZCB0aGUgbmFtZSBub3QgYmVpbmcgc3BlY2lmaWVkLgorICAgICIiIgorICAgIGFzc2VydCB0eXBlZGVmIGlzIG5vdCBOb25lCisgICAgYXNzZXJ0IG5hbWUgaXMgbm90IE5vbmUKKyAgICAKKyAgICAjIENoZWNrIGlmIHRoZSB0eXBlZGVmIGhhcyB0aGUgYXR0cmlidXRlCisgICAgdmFsdWUgPSB0eXBlZGVmLmdldChuYW1lKQorICAgIGlmIHZhbHVlOgorICAgICAgICByZXR1cm4gdmFsdWUKKyAgICAKKyAgICAjIE90aGVyd2lzZSwgc2VlIGlmIGl0J3MgZGVmaW5lZCBpbiB0aGUgYmFzZSB0eXBlKHMpCisgICAgYmFzZV90eXBlX25hbWUgPSB0eXBlZGVmLmdldCgnYmFzZS10eXBlJykKKyAgICBpZiBiYXNlX3R5cGVfbmFtZToKKyAgICAgICAgYmFzZV90eXBlZGVmID0gdHlwZWRlZl9yZWdpc3RyeS5nZXQoYmFzZV90eXBlX25hbWUpCisgICAgICAgIGlmIG5vdCBiYXNlX3R5cGVkZWY6CisgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcignVW5rbm93biB0eXBlIG5hbWU6ICVzJyAlIGJhc2VfdHlwZV9uYW1lKQorICAgICAgICByZXR1cm4gX2xvb2t1cF90eXBlZGVmX3ZhbHVlKGJhc2VfdHlwZWRlZiwgbmFtZSkKKworICAgIHJldHVybiBOb25lCisKKworZGVmIF9yYWlzZV9hcmd1bWVudF92YWxpZGF0aW9uX2V4Y2VwdGlvbih0eXBlZGVmLCB2YWx1ZSwgZGV0YWlsLCBleHBlY3RlZF90b2tlbnM9Tm9uZSk6CisgICAgIiIiCisgICAgQ2FsbGVkIHdoZW4gYW4gYXJndW1lbnQgZG9lc24ndCBtYXRjaCB0aGUgZXhwZWN0ZWQgdHlwZS4gUmFpc2VzIGFuCisgICAgQXJndW1lbnRWYWxpZGF0aW9uRXJyb3IgZXhjZXB0aW9uLiBUaGUgbWVzc2FnZSBmb3IgdGhlIGV4Y2VwdGlvbgorICAgIGNhbiBiZSBjdXN0b21pemVkIGJ5IHNwZWNpZnlpbmcgYSBlcnJvciBmb3JtYXQgc3RyaW5nIGluIHRoZQorICAgIHR5cGUgZGVmaW5pdGlvbi4gVGhlIGZvcm1hdCBzdHJpbmcgaXMgY2FsbGVkICcgdmFsaWRhdGlvbi1lcnJvci1mb3JtYXQnLgorICAgIFRoZSBmb3JtYXQgc3RyaW5nIGNhbiB1c2UgdGhlIGZvbGxvd2luZyBzdWJzdGl0dXRpb24gdmFyaWFibGVzOgorICAgIC0gJ3R5cGVkZWYnOiBUaGUgbmFtZSBvZiB0aGUgdHlwZWRlZgorICAgIC0gJ3ZhbHVlJzogVGhlIHZhbHVlIHRoYXQgZGlkbid0IG1hdGNoIHRoZSB0eXBlZGVmIHJlc3RyaWN0aW9ucworICAgIC0gJ2RldGFpbCc6IEFkZGl0aW9uYWwgbWVzc2FnZSBmb3IgdGhlIG5hdHVyZSBvZiB0aGUgdHlwZSBtaXNtYXRjaAorICAgIFRoZSBkZWZhdWx0IGZvcm1hdCBzdHJpbmcgaXM6ICdJbnZhbGlkICUodHlwZWRlZilzOiAlKHZhbHVlKXM7ICUoZGV0YWlsKXMnLgorICAgICIiIgorICAgIHR5cGVkZWZfbmFtZSA9IHR5cGVkZWYuZ2V0KCdoZWxwLW5hbWUnKQorICAgIGlmIHR5cGVkZWZfbmFtZSBpcyBOb25lOgorICAgICAgICB0eXBlZGVmX25hbWUgPSB0eXBlZGVmLmdldCgnbmFtZScpCisgICAgICAgIGlmIHR5cGVkZWZfbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgdHlwZWRlZl9uYW1lID0gdHlwZWRlZi5nZXQoJ2ZpZWxkJykKKyAgICAgICAgICAgIGlmIHR5cGVkZWZfbmFtZSBpcyBOb25lOgorICAgICAgICAgICAgICAgIHR5cGVkZWZfbmFtZSA9ICc8dW5rbm93bi10eXBlPicKKyAgICBpZiBkZXRhaWwgaXMgTm9uZToKKyAgICAgICAgZGV0YWlsID0gJycKKyAgICB2YWxpZGF0aW9uX2Vycm9yX2Zvcm1hdCA9IHR5cGVkZWYuZ2V0KCd2YWxpZGF0aW9uLWVycm9yLWZvcm1hdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSW52YWxpZCAlKHR5cGVkZWYpczogJSh2YWx1ZSlzOyAlKGRldGFpbClzJykKKyAgICB2YWxpZGF0aW9uX2Vycm9yID0gKHZhbGlkYXRpb25fZXJyb3JfZm9ybWF0ICUKKyAgICAgICAgICAgICAgICAgICAgICAgIHsndHlwZWRlZic6IHR5cGVkZWZfbmFtZSwgJ3ZhbHVlJzogc3RyKHZhbHVlKSwgJ2RldGFpbCc6IGRldGFpbH0pCisgICAgcmFpc2UgZXJyb3IuQXJndW1lbnRWYWxpZGF0aW9uRXJyb3IodmFsaWRhdGlvbl9lcnJvciwgZXhwZWN0ZWRfdG9rZW5zKQorCisKKyMKKyMgQ09NTUFORCBNT0RVTEUgRlVOQ1RJT05TCisjCisKK2RlZiBfZ2V0X2FyZ3MoaXRlbSk6CisgICAgIiIiCisgICAgR2V0cyB0aGUgYXJncyBpdGVtIGZyb20gdGhlIGdpdmVuIGl0ZW0uIFRoZSBpdGVtIG1heSBiZSBhIGNvbW1hbmQKKyAgICBvciBzdWJjb21tYW5kIGRlc2NyaXB0aW9uIG9yIGEgbmVzdGVkIGFyZyBsaXN0IGluc2lkZSBhICdjaG9pY2UnCisgICAgYXJndW1lbnQuIElmIHRoZXJlJ3Mgbm8gaXRlbSBuYW1lcyAiYXJncyIsIHRoZW4gaXQgcmV0dXJucyBOb25lLgorICAgIElmIHRoZSBhcmdzIGl0ZW0gaXMgYSBzaW5nbGUgYXJndW1lbnQsIHRoZW4gaXQncyBjb252ZXJ0ZWQgaW50bworICAgIGEgdHVwbGUgY29udGFpbmluZyB0aGF0IHNpbmdsZSBhcmd1bWVudCwgc28gdGhhdCB0aGUgY2FsbGVyIGNhbgorICAgIGFsd2F5cyB0cmVhdCB0aGUgcmV0dXJuIHZhbHVlIGFzIGFuIGl0ZXJhYmxlIHNlcXVlbmNlIG9mIGFyZ3MuCisgICAgSXQgZG9lc24ndCBkbyBhbnkgYWRkaXRpb25hbCB2YWxpZGF0aW9uIG9mIHRoZSBhcmdzIHZhbHVlCisgICAgKGUuZy4gaXQgZG9lc24ndCBjaGVjayB0aGF0IHRoZSBpbmRpdmlkdWFsIGFyZ3VtZW50cyBhcmUgZGljdCBvYmplY3RzKS4KKyAgICAiIiIKKyAgICBhcmdzID0gaXRlbS5nZXQoJ2FyZ3MnKQorICAgIGlmIGFyZ3MgYW5kIG5vdCBpc2luc3RhbmNlKGFyZ3MsIGNvbGxlY3Rpb25zLlNlcXVlbmNlKToKKyAgICAgICAgYXJncyA9IChhcmdzLCkKKyAgICByZXR1cm4gYXJncworCisKK2RlZiBfZ2V0X2Nob2ljZV9hcmdzKGNob2ljZSk6CisgICAgaWYgaXNpbnN0YW5jZShjaG9pY2UsIGNvbGxlY3Rpb25zLlNlcXVlbmNlKToKKyAgICAgICAgYXJncyA9IGNob2ljZQorICAgIGVsc2U6CisgICAgICAgIGFyZ3MgPSBfZ2V0X2FyZ3MoY2hvaWNlKQorICAgICAgICBpZiBub3QgYXJnczoKKyAgICAgICAgICAgIGFyZ3MgPSAoY2hvaWNlLCkKKyAgICByZXR1cm4gYXJncworCisKK2RlZiBfZ2V0X2NvbW1hbmRfYXJnc19zeW50YXhfaGVscF9zdHJpbmcoY29tbWFuZCwgaXNfbm9fY29tbWFuZCwgYXJncyk6CisgICAgIiIiCisgICAgR2V0IHRoZSBzeW50YXggaGVscCBzdHJpbmcgZm9yIGFuIGFyZ3VtZW50IGxpc3QuCisgICAgIiIiCisgICAgc3ludGF4X3N0cmluZyA9ICcnCisgICAgaWYgYXJnczoKKyAgICAgICAgZm9yIGksIGFyZyBpbiBlbnVtZXJhdGUoYXJncyk6CisgICAgICAgICAgICBpZiBpID4gMDoKKyAgICAgICAgICAgICAgICBzeW50YXhfc3RyaW5nICs9ICcgJworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgX2lzX3N0cmluZyhhcmcpOgorICAgICAgICAgICAgICAgIHN5bnRheF9zdHJpbmcgKz0gYXJnCisgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgaWYgdHlwZShhcmcpID09IHR1cGxlOgorICAgICAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgICAgICAgICBwcmludCBfbGluZSgpLCBjb21tYW5kWydzZWxmJ10sIGFyZworCisgICAgICAgICAgICBpZiBpc19ub19jb21tYW5kOgorICAgICAgICAgICAgICAgIG9wdGlvbmFsID0gYXJnLmdldCgnb3B0aW9uYWwtZm9yLW5vJywgRmFsc2UpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG9wdGlvbmFsID0gYXJnLmdldCgnb3B0aW9uYWwnLCBGYWxzZSkKKyAgICAgICAgICAgIGlmIG9wdGlvbmFsOgorICAgICAgICAgICAgICAgIHN5bnRheF9zdHJpbmcgKz0gJ1snCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjaG9pY2VzID0gYXJnLmdldCgnY2hvaWNlcycpCisgICAgICAgICAgICBuZXN0ZWRfYXJncyA9IGFyZy5nZXQoJ2FyZ3MnKQorICAgICAgICAgICAgaWYgbmVzdGVkX2FyZ3M6CisgICAgICAgICAgICAgICAgaWYgY2hvaWNlczoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZERlc2NyaXB0aW9uRXJyb3IoJ0FuIGFyZ3VtZW50IGNhblwndCBoYXZlIGJvdGggJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICciY2hvaWNlcyIgYW5kICJhcmdzIiBhdHRyaWJ1dGVzJywgY29tbWFuZCkKKyAgICAgICAgICAgICAgICBjaG9pY2VzID0gKG5lc3RlZF9hcmdzLCkKKyAgICAgICAgICAgIGlmIGNob2ljZXM6CisgICAgICAgICAgICAgICAgIyBTdXBwcmVzcyBjaG9pY2UgZGVsaW1pdGVycyBpZiB3ZSd2ZSBhbHJlYWR5IGVtaXR0ZWQgdGhlIHNxdWFyZQorICAgICAgICAgICAgICAgICMgYnJhY2tldHMgdG8gaW5kaWNhdGUgYW4gb3B0aW9uYWwgYXJndW1lbnQuIFRoaXMgaXMgc28gd2UgZ2V0CisgICAgICAgICAgICAgICAgIyBzb21ldGhpbmcgc2ltcGxlciAoZS5nLiAiW3RoaXMgfCB0aGF0XSIgKSBpbnN0ZWFkIG9mIGdldHRpbmcKKyAgICAgICAgICAgICAgICAjIGRvdWJsZWQgZGVsaW1pdGVycyAoZS5nLiAiW3t0aGlzIHwgdGhhdH1dIikuCisgICAgICAgICAgICAgICAgaWYgbm90IG9wdGlvbmFsOgorICAgICAgICAgICAgICAgICAgICBzeW50YXhfc3RyaW5nICs9ICd7JworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGZvciBqLCBjaG9pY2UgaW4gZW51bWVyYXRlKGNob2ljZXMpOgorICAgICAgICAgICAgICAgICAgICBpZiBqID4gMDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHN5bnRheF9zdHJpbmcgKz0gJyB8ICcKKyAgICAgICAgICAgICAgICAgICAgY2hvaWNlX2FyZ3MgPSBfZ2V0X2Nob2ljZV9hcmdzKGNob2ljZSkKKyAgICAgICAgICAgICAgICAgICAgY2hvaWNlX3N5bnRheF9zdHJpbmcgPSBfZ2V0X2NvbW1hbmRfYXJnc19zeW50YXhfaGVscF9zdHJpbmcoY29tbWFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNfbm9fY29tbWFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hvaWNlX2FyZ3MpCisgICAgICAgICAgICAgICAgICAgIHN5bnRheF9zdHJpbmcgKz0gY2hvaWNlX3N5bnRheF9zdHJpbmcKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgbm90IG9wdGlvbmFsOgorICAgICAgICAgICAgICAgICAgICBzeW50YXhfc3RyaW5nICs9ICd9JworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmaWVsZCA9IGFyZy5nZXQoJ2ZpZWxkJykKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0YWcgPSBhcmcuZ2V0KCd0YWcnKQorICAgICAgICAgICAgICAgIGlmIHRhZzoKKyAgICAgICAgICAgICAgICAgICAgc3ludGF4X3N0cmluZyArPSB0YWcgKyAnICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICB0b2tlbiA9IGFyZy5nZXQoJ3Rva2VuJykKKyAgICAgICAgICAgICAgICBpZiB0b2tlbjoKKyAgICAgICAgICAgICAgICAgICAgc3ludGF4X3N0cmluZyArPSB0b2tlbgorCisgICAgICAgICAgICAgICAgaWYgKGZpZWxkICE9IE5vbmUpIGFuZCAoYXJnLmdldCgndHlwZScpICE9ICdib29sZWFuJyk6CisgICAgICAgICAgICAgICAgICAgIGhlbHBfbmFtZSA9IGFyZy5nZXQoJ2hlbHAtbmFtZScpCisgICAgICAgICAgICAgICAgICAgIGlmIGhlbHBfbmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfbmFtZSA9ICc8JyArIGhlbHBfbmFtZSArICc+JworICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgYXJnLmdldCgndHlwZScpID09ICdlbnVtJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXMgPSBhcmcuZ2V0KCd2YWx1ZXMnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHZhbHVlczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgX2lzX3N0cmluZyh2YWx1ZXMpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzID0gKHZhbHVlcywpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfbmFtZSA9ICcgfCAnLmpvaW4odmFsdWVzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBsZW4odmFsdWVzKSA+IDE6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwX25hbWUgPSAneycgKyBoZWxwX25hbWUgKyAnfScKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBoZWxwX25hbWU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9uYW1lID0gJzwnICsgZmllbGQgKyAnPicKKyAgICAgICAgICAgICAgICAgICAgc3ludGF4X3N0cmluZyArPSBoZWxwX25hbWUKKyAgICAgICAgICAgIGlmIG9wdGlvbmFsOgorICAgICAgICAgICAgICAgIHN5bnRheF9zdHJpbmcgKz0gJ10nCisgICAgICAgICAgICAgICAgCisgICAgcmV0dXJuIHN5bnRheF9zdHJpbmcKKworCitkZWYgX2dldF9jb21tYW5kX3N5bnRheF9oZWxwX3N0cmluZyhjb21tYW5kLCBjb21tYW5kX3ByZWZpeF9zdHJpbmcpOgorICAgIHRyeToKKyAgICAgICAgcGFydHMgPSBbXQorICAgICAgICBpZiBjb21tYW5kX3ByZWZpeF9zdHJpbmc6CisgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoY29tbWFuZF9wcmVmaXhfc3RyaW5nKQorICAgICAgICBjb21tYW5kX25hbWUgPSBfZ2V0X2NvbW1hbmRfdGl0bGUoY29tbWFuZCkKKyAgICAgICAgcGFydHMuYXBwZW5kKGNvbW1hbmRfbmFtZSkKKyAgICAgICAgYXJncyA9IF9nZXRfYXJncyhjb21tYW5kKQorICAgICAgICBhcmdzX3N5bnRheF9oZWxwX3N0cmluZz0nJworICAgICAgICBpZiBhcmdzOgorICAgICAgICAgICAgYXJnc19zeW50YXhfaGVscF9zdHJpbmcgPSBfZ2V0X2NvbW1hbmRfYXJnc19zeW50YXhfaGVscF9zdHJpbmcoY29tbWFuZCwgRmFsc2UsIGFyZ3MpCisgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoYXJnc19zeW50YXhfaGVscF9zdHJpbmcpCisKKyAgICAgICAgbmFtZSA9ICcnCisgICAgICAgIGlmIHNkbnNoLmRlYnVnIG9yIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgbmFtZSA9IGNvbW1hbmRbJ3NlbGYnXSArICJcbiAgIgorCisgICAgICAgIGlmIGlzX25vX2NvbW1hbmRfc3VwcG9ydGVkKGNvbW1hbmQpIGFuZCBjb21tYW5kX3ByZWZpeF9zdHJpbmcgIT0gJ25vJzoKKyAgICAgICAgICAgIG5vX3N5bnRheCA9IF9nZXRfY29tbWFuZF9hcmdzX3N5bnRheF9oZWxwX3N0cmluZyhjb21tYW5kLCBUcnVlLCBhcmdzKQorICAgICAgICAgICAgaWYgJyAnLmpvaW4obm9fc3ludGF4KSA9PSAnICcuam9pbihhcmdzX3N5bnRheF9oZWxwX3N0cmluZyk6CisgICAgICAgICAgICAgICAgY29tbWFuZF9zeW50YXhfaGVscF9zdHJpbmcgPSBuYW1lICsgJ1tub10gJyArJyAnLmpvaW4ocGFydHMpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBbICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSArICcgJy5qb2luKHBhcnRzKSwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWUgKyAnbm8gJyArIGNvbW1hbmRfbmFtZSArICcgJyArIG5vX3N5bnRheAorICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb21tYW5kX3N5bnRheF9oZWxwX3N0cmluZyA9IG5hbWUgKyAnICcuam9pbihwYXJ0cykKKworICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgIGlmIHNkbnNoLmRlYnVnIG9yIHNkbnNoLmRlYnVnX2JhY2t0cmFjZToKKyAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcihzdHIoZSkpCisgICAgCisgICAgcmV0dXJuIGNvbW1hbmRfc3ludGF4X2hlbHBfc3RyaW5nCisKKworZGVmIF9xdWlja19jb21tYW5kX3N5bnRheChjb21tYW5kKToKKyAgICB0aXRsZSA9IF9nZXRfY29tbWFuZF90aXRsZShjb21tYW5kKQorICAgIGFyZ3MgPSBfZ2V0X2FyZ3MoY29tbWFuZCkKKyAgICBhcmdzX3N5bnRheF9oZWxwX3N0cmluZyA9IF9nZXRfY29tbWFuZF9hcmdzX3N5bnRheF9oZWxwX3N0cmluZyhjb21tYW5kLCBGYWxzZSwgYXJncykKKyAgICByZXR1cm4gJyAnLmpvaW4oKHRpdGxlLCBhcmdzX3N5bnRheF9oZWxwX3N0cmluZykpCisKKworZGVmIHJlZm9ybWF0X2xpbmUoc3RyaW5nLCB3aWR0aCwgaW5kZW50LCByZWN1cnNlKToKKworICAgIHJlc3VsdCA9IFtdCisgICAgc3BsaXRfY2hhcnMgPSAiMDEyMzQ1Njc4OSIKKyAgICBkZXB0aCA9IDAKKyAgICBhbGlnbiA9IDAKKyAgICBuZXh0X21hcmsgPSBGYWxzZQorCisgICAgaWYgcmVjdXJzZSA+IDggb3IgaW5kZW50ID4gd2lkdGg6CisgICAgICAgIHJldHVybiBbc3RyaW5nXQorCisgICAgc3RyaW5nID0gJyAnICogaW5kZW50ICsgc3RyaW5nCisKKyAgICBmb3IgYyBpbiBzdHJpbmc6CisgICAgICAgIGlmIGMgaW4gJ3soWzwnOgorICAgICAgICAgICAgaWYgYWxpZ24gPT0gMDoKKyAgICAgICAgICAgICAgICBhbGlnbiA9IGxlbihyZXN1bHQpCisgICAgICAgICAgICBkZXB0aCArPSAxCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKCcgJykKKyAgICAgICAgICAgIG5leHRfbWFyayA9IEZhbHNlCisgICAgICAgIGVsaWYgYyBpbiAnfSldPic6CisgICAgICAgICAgICBuZXh0X21hcmsgPSBGYWxzZQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpCisgICAgICAgICAgICBkZXB0aCAtPSAxCisgICAgICAgICAgICBpZiBkZXB0aCA9PSAwOgorICAgICAgICAgICAgICAgIG5leHRfbWFyayA9IFRydWUKKyAgICAgICAgZWxpZiBjID09ICd8JzoKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoc3BsaXRfY2hhcnNbZGVwdGhdKQorICAgICAgICAgICAgbmV4dF9tYXJrID0gRmFsc2UKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGlmIG5leHRfbWFyazoKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHNwbGl0X2NoYXJzW2RlcHRoXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCgnICcpCisgICAgICAgICAgICBuZXh0X21hcmsgPSBGYWxzZQorCisgICAgaWYgbGVuKHN0cmluZykgPiB3aWR0aDoKKyAgICAgICAgI3NwbGl0X2RlcHRoID0gMAorICAgICAgICByID0gJycuam9pbihyZXN1bHQpCisgICAgICAgIHNwbGl0cyA9IE5vbmUKKyAgICAgICAgZm9yIHMgaW4gcmFuZ2UoMCw5KToKKyAgICAgICAgICAgIGlmIHNwbGl0X2NoYXJzW3NdIGluIHI6CisgICAgICAgICAgICAgICAgc3BsaXRzID0gJycuam9pbihyZXN1bHQpLnNwbGl0KHNwbGl0X2NoYXJzW3NdKQorICAgICAgICAgICAgICAgIGlmIGxlbihzcGxpdHNbLTFdKSA+IDA6CisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisKKyAgICAgICAgaWYgbm90IHNwbGl0czoKKyAgICAgICAgICAgIHJldHVybiBbc3RyaW5nXQorCisgICAgICAgIHBhcnRzID0gW10KKyAgICAgICAgZmlyc3QgPSBsZW4oc3BsaXRzWzBdKSsxCisgICAgICAgIGYgPSAnICcgKiBhbGlnbgorICAgICAgICBjb2xsZWN0ID0gc3RyaW5nWzA6bGVuKHNwbGl0c1swXSkrMV0KKyAgICAgICAgbW9yZSA9IEZhbHNlCisgICAgICAgIGZvciBzIGluIHNwbGl0c1sxOl06CisgICAgICAgICAgICBpZiBsZW4ocykgPT0gMDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgbGVuKGNvbGxlY3QpICsgbGVuKHMpID4gd2lkdGg6CisgICAgICAgICAgICAgICAgcGFydHMuYXBwZW5kKGNvbGxlY3QpCisgICAgICAgICAgICAgICAgY29sbGVjdCA9IGYKKyAgICAgICAgICAgICAgICBtb3JlID0gRmFsc2UKKyAgICAgICAgICAgICMgdGhlIG5leHQgc3BsaXQgY2FuIHN0aWxsIGJlIHRvbyB3aWRlCisgICAgICAgICAgICBpZiBsZW4oY29sbGVjdCkgKyBsZW4ocykgPiB3aWR0aDoKKyAgICAgICAgICAgICAgICByZWZvcm1hdCA9IHJlZm9ybWF0X2xpbmUoc3RyaW5nW2ZpcnN0OmZpcnN0K2xlbihzKSsxXSwgd2lkdGgsIGFsaWduLCByZWN1cnNlKzEpCisgICAgICAgICAgICAgICAgZmlyc3QgKz0gbGVuKHMpKzEKKyAgICAgICAgICAgICAgICBwYXJ0cyArPSByZWZvcm1hdAorICAgICAgICAgICAgICAgIGNvbGxlY3QgPSBmCisgICAgICAgICAgICAgICAgbW9yZSA9IEZhbHNlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGNvbGxlY3QgKz0gc3RyaW5nW2ZpcnN0OmZpcnN0K2xlbihzKSsxXQorICAgICAgICAgICAgICAgIGZpcnN0ICs9IGxlbihzKSsxCisgICAgICAgICAgICAgICAgbW9yZSA9IFRydWUKKyAgICAgICAgaWYgbW9yZToKKyAgICAgICAgICAgIHBhcnRzLmFwcGVuZChjb2xsZWN0KQorICAgICAgICByZXR1cm4gcGFydHMKKworICAgIHJldHVybiBbc3RyaW5nXQorCisKK2RlZiBpc0NvbW1hbmRGZWF0dXJlQWN0aXZlKGNvbW1hbmQsIGZlYXR1cmVzKToKKyAgICBpZiBub3QgZmVhdHVyZXM6CisgICAgICAgIHJldHVybiBUcnVlICMgdGhpcyBjb21tYW5kIGlzIHVzYWJsZSBhbnl3aGVyZQorICAgIGlmIGZlYXR1cmVzOgorICAgICAgICBpZiBub3QgX2lzX2xpc3QoZmVhdHVyZXMpOgorICAgICAgICAgICAgZmVhdHVyZXMgPSAoZmVhdHVyZXMsKQorICAgICAgICBldmVyeV9mZWF0dXJlc19lbmFibGVkID0gVHJ1ZQorICAgICAgICBmb3IgZmVhdHVyZSBpbiBmZWF0dXJlczoKKyAgICAgICAgICAgIGlmIG5vdCBzZG5zaC5mZWF0dXJlX2VuYWJsZWQoZmVhdHVyZSk6CisgICAgICAgICAgICAgICAgZXZlcnlfZmVhdHVyZXNfZW5hYmxlZCA9IEZhbHNlCisgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgaWYgbm90IGV2ZXJ5X2ZlYXR1cmVzX2VuYWJsZWQ6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIFRydWUKKworCitkZWYgaXNfbm9fY29tbWFuZF9zdXBwb3J0ZWQoY29tbWFuZCk6CisgICAgIiIiCisgICAgUHJlZGljYXRlIHRvIHByb3ZpZGUgc29tZSBpbmRpY2F0aW9uIG9mIHdoZXRoZXIgb3Igbm90CisgICAgdGhlIGNvbW1hbmQgYWxsb3dzIHRoZSAnbm8nIHByZWZpeAorICAgICIiIgorICAgIGNvbW1hbmRfdHlwZSA9IGNvbW1hbmQuZ2V0KCdjb21tYW5kLXR5cGUnKQorICAgIGlmIGNvbW1hbmRfdHlwZToKKyAgICAgICAgaWYgY29tbWFuZF90eXBlIGluIFsnZGlzcGxheS10YWJsZScsJ2Rpc3BsYXktcmVzdCddOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgbm9fc3VwcG9ydGVkID0gY29tbWFuZC5nZXQoJ25vLXN1cHBvcnRlZCcsIFRydWUpCisgICAgaWYgbm9fc3VwcG9ydGVkID09IEZhbHNlOgorICAgICAgICByZXR1cm4gRmFsc2UKKyAgICByZXR1cm4gVHJ1ZQorCisKK2NsYXNzIENvbW1hbmRIYW5kbGVyKG9iamVjdCk6CisgICAgCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzZWxmLmFjdGlvbnMgPSBOb25lCisgICAgICAgIHNlbGYucGFyc2VfZXJyb3JzID0gc2V0KCkKKyAgICAgICAgc2VsZi5wcmVmaXggPSAnJworICAgICAgICAKKyAgICBkZWYgaGFuZGxlX2NvbW1hbmRfZXJyb3Ioc2VsZiwgZSk6CisgICAgICAgIHBhc3MKKyAgICAKKyAgICBkZWYgaGFuZGxlX2V4Y2VwdGlvbihzZWxmLCBlKToKKyAgICAgICAgcGFzcworICAgIAorICAgIGRlZiBoYW5kbGVfdW5zcGVjaWZpZWRfY29tbWFuZChzZWxmKToKKyAgICAgICAgcGFzcworICAgIAorICAgICMgVGhlc2UgYXJlIHRoZSB2YWx1ZXMgdG8gdXNlIGZvciB0aGUgcHJpb3JpdHkgYXJndW1lbnQgdG8KKyAgICAjIGhhbmRsZV9wYXJzZV9lcnJvcgorICAgIFVORVhQRUNURURfQURESVRJT05BTF9BUkdVTUVOVFNfUFJJT1JJVFkgPSAxMAorICAgIFVORVhQRUNURURfRU5EX09GX0FSR1VNRU5UU19QUklPUklUWSA9IDIwCisgICAgVU5FWFBFQ1RFRF9UT0tFTl9QUklPUklUWSA9IDMwCisgICAgVkFMSURBVElPTl9FUlJPUl9QUklPUklUWSA9IDQwCisgICAgCisgICAgZGVmIGhhbmRsZV9wYXJzZV9lcnJvcihzZWxmLCBlcnJvcl9tZXNzYWdlLCB3b3JkX2luZGV4LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpb3JpdHksIGV4cGVjdGVkX3Rva2Vucz1Ob25lKToKKyAgICAgICAgIyBOZWVkIHRvIGNvbnZlcnQgYSBsaXN0IHRvIGEgdHVwbGUgZmlyc3QgdG8gbWFrZSBpdCBoYXNoYWJsZSBzbyB0aGF0IHdlCisgICAgICAgICMgY2FuIGFkZCBpdCB0byB0aGUgcGFyc2VfZXJyb3JzIHNldC4KKyAgICAgICAgaWYgaXNpbnN0YW5jZShleHBlY3RlZF90b2tlbnMsIGxpc3QpOgorICAgICAgICAgICAgZXhwZWN0ZWRfdG9rZW5zID0gdHVwbGUoZXhwZWN0ZWRfdG9rZW5zKQorICAgICAgICBzZWxmLnBhcnNlX2Vycm9ycy5hZGQoKGVycm9yX21lc3NhZ2UsIHdvcmRfaW5kZXgsIHByaW9yaXR5LCBleHBlY3RlZF90b2tlbnMpKQorICAgICAgICAKKyAgICBkZWYgaGFuZGxlX2luY29tcGxldGVfY29tbWFuZChzZWxmLCBhcmcsIGFyZ19zY29wZXMsIGFyZ19kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkcywgcGFyc2VkX3RhZywgY29tbWFuZCk6CisgICAgICAgIHBhc3MKKyAgICAKKyAgICBkZWYgaGFuZGxlX2NvbXBsZXRlX2NvbW1hbmQoc2VsZiwgcHJlZml4X21hdGNoZXMsIHNjb3BlcywgYXJnX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkcywgYWN0aW9ucywgY29tbWFuZCk6CisgICAgICAgIHBhc3MKKyAgICAKKyAgICBkZWYgaGFuZGxlX2NvbW1hbmRfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgcGFzcworICAgIAorICAgIGRlZiBoYW5kbGVfZmlyc3RfbWF0Y2hlZF9yZXN1bHQoc2VsZiwgY29tbWFuZCk6CisgICAgICAgIHBhc3MKKworICAgIGRlZiBoYW5kbGVfbWF0Y2hlZF9yZXN1bHQoc2VsZiwgY29tbWFuZCwgcmVzdWx0LCBhcmdfc2NvcGVzKToKKyAgICAgICAgcGFzcworCisgICAgZGVmIGdldF9kZWZhdWx0X3ZhbHVlKHNlbGYsIGFyZyk6CisgICAgICAgIGRlZmF1bHQgPSBOb25lCisgICAgICAgIGlmIHNlbGYuaXNfbm9fY29tbWFuZDoKKyAgICAgICAgICAgIGRlZmF1bHQgPSBhcmcuZ2V0KCdkZWZhdWx0LWZvci1ubycpCisgICAgICAgICAgICBpZiBkZWZhdWx0IGlzIE5vbmUgYW5kICdmaWVsZCcgaW4gYXJnOgorICAgICAgICAgICAgICAgIGRlZmF1bHQgPSBtaS5maWVsZF9jdXJyZW50X29ial90eXBlX2RlZmF1bHRfdmFsdWUoYXJnWydmaWVsZCddKQorICAgICAgICAgICAgICAgIGlmIGRlZmF1bHQgIT0gTm9uZToKKyAgICAgICAgICAgICAgICAgICAgZGVmYXVsdCA9IHN0cihkZWZhdWx0KQorICAgICAgICBpZiBkZWZhdWx0IGlzIE5vbmU6CisgICAgICAgICAgICBkZWZhdWx0ID0gYXJnLmdldCgnZGVmYXVsdCcpCisgICAgICAgIHJldHVybiBkZWZhdWx0CisgICAgCisKKyAgICBkZWYgZ2V0X21hdGNoaW5nX2NvbW1hbmRzKHNlbGYsIGNvbW1hbmRfd29yZCwgaXNfbm9fY29tbWFuZCwgY29tbWFuZF9saXN0KToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIGxpc3Qgb2YgbWF0Y2hpbmcgY29tbWFuZCBjYW5kaWRhdGVzIGZyb20gdGhlIGNvbW1hbmQgbGlzdC4KKyAgICAgICAgCisgICAgICAgIFRvIGJlIGEgY2FuZGlkYXRlIGEgY29tbWFuZCBkZXNjcmlwdGlvbiBtdXN0IHNhdGlzZnkgdGhyZWUgY3JpdGVyaWE6CisgICAgICAgIAorICAgICAgICAxKSBJZiBpdCBzcGVjaWZpZXMgYSBmZWF0dXJlIChvciBhIGxpc3Qgb2YgZmVhdHVyZXMpLCB0aGVuIGFsbCBvZgorICAgICAgICAgICB0aG9zZSBmZWF0dXJlcyBtdXN0IGJlIGVuYWJsZWQuCisgICAgICAgIDIpIEl0cyAnbW9kZScgdmFsdWUgKHBvc3NpYmx5IGEgbGlzdCBvZiBtb2RlcyBvciBhIG1vZGUgcGF0dGVybikKKyAgICAgICAgICAgbXVzdCBtYXRjaCB0aGUgY3VycmVudCBtb2RlLgorICAgICAgICAzKSBJdCdzIG5hbWUgbXVzdCBiZWdpbiB3aXRoIHRoZSBjb21tYW5kIHByZWZpeAorICAgICAgICA0KSAnTm8nIG9yIG5vdCAnbm8nLCBzb21lIGNvbW1hbmRzIGFsbG93ICdubycsIG90aGVyJ3MgZG9udAorICAgICAgICAKKyAgICAgICAgRWFjaCBpdGVtIGluIHRoZSBjYW5kaWRhdGUgbGlzdCBpcyBhIDIgaXRlbSB0dXBsZSB3aGVyZSB0aGUgZmlyc3QgaXRlbQorICAgICAgICBpcyB0aGUgY29tbWFuZCBkZXNjcmlwdGlvbiBhbmQgdGhlIHNlY29uZCBpdGVtIGlzIGEgYm9vbGVhbiBmb3Igd2hldGhlcgorICAgICAgICB0aGUgY29tbWFuZCBkZXNjcmlwdGlvbiB3YXMgYW4gZXhhY3QgbWF0Y2ggZm9yIHRoZSBjb21tYW5kIHdvcmQKKyAgICAgICAgKGkuZS4gYXMgb3Bwb3NlZCB0byBhIHByZWZpeCBtYXRjaCkuCisgICAgICAgICIiIgorICAgICAgICBjYW5kaWRhdGVzID0gW10KKyAgICAgICAgY3VycmVudF9tb2RlID0gc2Ruc2guY3VycmVudF9tb2RlKCkKKyAgICAgICAgY29tbWFuZF93b3JkX2xvd2VyID0gY29tbWFuZF93b3JkLmxvd2VyKCkKKyAgICAgICAgCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGZvciBjb21tYW5kIGluIGNvbW1hbmRfbGlzdDoKKyAgICAgICAgICAgICAgICAjIElmIHRoaXMgY29tbWFuZCBpcyB0aWVkIHRvIGEgZmVhdHVyZSB0aGVuIGNoZWNrIHRoYXQgdGhlCisgICAgICAgICAgICAgICAgIyBmZWF0dXJlIGlzIGVuYWJsZWQuCisgICAgICAgICAgICAgICAgaWYgaXNDb21tYW5kRmVhdHVyZUFjdGl2ZShjb21tYW5kLCBjb21tYW5kLmdldCgnZmVhdHVyZScpKSA9PSBGYWxzZToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICMgQ2hlY2sgdGhhdCB0aGUgY29tbWFuZCBpcyBlbmFibGVkIGZvciB0aGUgY3VycmVudCBtb2RlCisgICAgICAgICAgICAgICAgbW9kZXMgPSBjb21tYW5kLmdldCgnbW9kZScpCisgICAgICAgICAgICAgICAgaWYgbm90IG1vZGVzOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICdDb21tYW5kIGRlc2NyaXB0aW9uIG11c3Qgc3BlY2lmeSBhIG1vZGUnLCBjb21tYW5kKQorICAgICAgICAgICAgICAgIGlmIG5vdCBfaXNfbGlzdChtb2Rlcyk6CisgICAgICAgICAgICAgICAgICAgIG1vZGVzID0gKG1vZGVzLCkKKyAgICAgICAgICAgICAgICBpZiBub3QgX21hdGNoX2N1cnJlbnRfbW9kZXMoY29tbWFuZCwgY3VycmVudF9tb2RlLCBtb2Rlcyk6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIyBJZiBhICdubycgY29tbWFuZCB3YXMgcmVxdWVzdGVkLCB2ZXJpZnkgdGhpcyBjb21tYW5kCisgICAgICAgICAgICAgICAgIyBzdXBwb3J0ICdubycgKGNhbiB3ZSB0ZWxsIGZyb20gdGhlIHR5cGU/KQorICAgICAgICAgICAgICAgIGlmIGlzX25vX2NvbW1hbmQ6CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBpc19ub19jb21tYW5kX3N1cHBvcnRlZChjb21tYW5kKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgICAgICAjIENoZWNrIHRoYXQgdGhlIG5hbWUgbWF0Y2hlcyB0aGUgY29tbWFuZCB3b3JkCisgICAgICAgICAgICAgICAgbmFtZSA9IGNvbW1hbmRbJ25hbWUnXQorICAgICAgICAgICAgICAgIGlmIF9pc19zdHJpbmcobmFtZSk6CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLmxvd2VyKCkKKyAgICAgICAgICAgICAgICAgICAgaWYgbmFtZS5zdGFydHN3aXRoKGNvbW1hbmRfd29yZF9sb3dlcik6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXhfbWF0Y2ggPSBsZW4oY29tbWFuZF93b3JkKSA8IGxlbihuYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlcy5hcHBlbmQoKGNvbW1hbmQsIHByZWZpeF9tYXRjaCkpCisgICAgICAgICAgICAgICAgZWxpZiBpc2luc3RhbmNlKG5hbWUsIGNvbGxlY3Rpb25zLk1hcHBpbmcpOgorICAgICAgICAgICAgICAgICAgICAjIEZJWE1FOiBTaG91bGQgc3VwcG9ydCBkaWN0LWJhc2VkIG5hbWVzIHRoYXQgYXJlbid0CisgICAgICAgICAgICAgICAgICAgICMgcGF0dGVybnMuIFdpbGwgYmUgdXNlZnVsIHdoZW4gd2Ugc3VwcG9ydCBsaXN0cyBvZiBuYW1lcworICAgICAgICAgICAgICAgICAgICAjIGZvciBhIGNvbW1hbmQgZGVzY3JpcHRpb24gd2hlcmUgdGhlIGFyZ19kYXRhIGNhbiBiZSBzZXQgd2l0aAorICAgICAgICAgICAgICAgICAgICAjIGRpZmZlcmVudCBmaWVsZHMgYmFzZWQgb24gd2hpY2ggbmFtZSB3YXMgbWF0Y2hlZCBmb3IgdGhlIGNvbW1hbmQKKyAgICAgICAgICAgICAgICAgICAgaWYgJ3JlJyBub3QgaW4gbmFtZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRbJ25hbWUnXVsncmUnXSA9IHJlLmNvbXBpbGUobmFtZVsncGF0dGVybiddKQorICAgICAgICAgICAgICAgICAgICBpZiBuYW1lWydyZSddLm1hdGNoKGNvbW1hbmRfd29yZCk6CisgICAgICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVzLmFwcGVuZCgoY29tbWFuZCwgVHJ1ZSkpCisgICAgICAgICAgICAgICAgIyBGSVhNRTogUHJvYmFibHkgc2hvdWxkIGdldCByaWQgb2YgdGhlIGZvbGxvd2luZyBwYXR0ZXJuIGNvZGUKKyAgICAgICAgICAgICAgICAjIGFuZCBqdXN0IHVzZSB0aGUgYWJvdmUgcGF0dGVybiBjb21waWxhdGlvbiBtZWNoYW5pc20uCisgICAgICAgICAgICAgICAgIyBUaGUgZm9sbG93aW5nIHdvbid0IHdvcmsgd2hlbiB3ZSByZXF1aXJlIHRoZSBjb21tYW5kCisgICAgICAgICAgICAgICAgIyBkZXNjcmlwdGlvbnMgdG8gYmUgcHVyZSBkYXRhLCBlLmcuIGRlcml2ZWQgZnJvbSBKU09OIGRhdGEKKyAgICAgICAgICAgICAgICAjIG9yIHNvbWV0aGluZyBsaWtlIHRoYXQuCisgICAgICAgICAgICAgICAgZWxpZiB0eXBlKG5hbWUpID09IGRpY3QgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVbJ3JlJ10ubWF0Y2goY29tbWFuZF93b3JkKToKKyAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlcy5hcHBlbmQoKGNvbW1hbmQsIEZhbHNlKSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcignQ29tbWFuZCBkZXNjcmlwdGlvbiBuYW1lICcKKyAgICAgICAgICAgICAgICAgICAgICAgICdtdXN0IGJlIGVpdGhlciBzdHJpbmcsIGRpY3QsIG9yIHBhdHRlcm4nLCBjb21tYW5kKQorICAgICAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIF9lOgorICAgICAgICAgICAgaWYgc2Ruc2guZGVidWcgb3Igc2Ruc2guZGVidWdfYmFja3RyYWNlOgorICAgICAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZERlc2NyaXB0aW9uRXJyb3IoJ01pc3NpbmcgbW9kZSBvciBuYW1lOicsIGNvbW1hbmQpCisgICAgICAgIAorICAgICAgICByZXR1cm4gY2FuZGlkYXRlcworICAgIAorICAgIGRlZiBjaGVja19jb21tYW5kX3R5cGVfYW5kX2FjdGlvbnMoc2VsZiwgY3VycmVudF9zY29wZSwgc2NvcGVzLCBhY3Rpb25zKToKKyAgICAgICAgCisgICAgICAgICMgUHVzaCB0aGUgc2NvcGVzIGZvciB0aGUgY29tbWFuZCBkZWZhdWx0cyBhbmQgdGhlIGNvbW1hbmQgaXRzZWxmCisgICAgICAgICMgb250byB0aGUgc2NvcGUgc3RhY2suCisgICAgICAgIGNvbW1hbmRfdHlwZSA9IGN1cnJlbnRfc2NvcGUuZ2V0KCdjb21tYW5kLXR5cGUnKQorICAgICAgICBjb21tYW5kX2RlZmF1bHRzID0gY29tbWFuZF90eXBlX2RlZmF1bHRzLmdldChjb21tYW5kX3R5cGUsIHt9KQorICAgICAgICBpZiBjb21tYW5kX2RlZmF1bHRzOgorICAgICAgICAgICAgIyBSZXBsYWNlIHRoZSBjb21tYW5kIGRlZmF1bHRzIHdpdGggdGhlIG5ldyBvbmVzCisgICAgICAgICAgICBzY29wZXMgPSBzY29wZXNbOi0xXSArIFtjb21tYW5kX2RlZmF1bHRzXQorCisgICAgICAgICMgR2V0IHRoZSBhY3Rpb25zIGZvciB0aGUgY29tbWFuZAorICAgICAgICBhY3Rpb25fbmFtZSA9ICduby1hY3Rpb24nIGlmIHNlbGYuaXNfbm9fY29tbWFuZCBlbHNlICdhY3Rpb24nCisgICAgICAgIGN1cnJlbnRfc2NvcGVfYWN0aW9ucyA9IGN1cnJlbnRfc2NvcGUuZ2V0KGFjdGlvbl9uYW1lKQorICAgICAgICBpZiBjdXJyZW50X3Njb3BlX2FjdGlvbnMgb3IgY29tbWFuZF9kZWZhdWx0czoKKyAgICAgICAgICAgIGFjdGlvbnMgPSBfbG9va3VwX2luX3Njb3BlcyhhY3Rpb25fbmFtZSwgc2NvcGVzKQorICAgICAgICAgICAgaWYgYWN0aW9ucyBpcyBOb25lOgorICAgICAgICAgICAgICAgIGFjdGlvbnMgPSBbXQorICAgICAgICAgICAgZWxpZiBub3QgX2lzX2xpc3QoYWN0aW9ucyk6CisgICAgICAgICAgICAgICAgYWN0aW9ucyA9IFthY3Rpb25zXQorCisgICAgICAgICAgICAjIFVwZGF0ZSB0aGUgYWN0aW9ucyB3aXRoIHRoZSBzY29wZXMgdGhhdCB3ZXJlIGluIGVmZmVjdCBhdCB0aGUgcG9pbnQKKyAgICAgICAgICAgICMgd2UgbG9va2VkIHVwIHRoYXQgYWN0aW9uLiBUaGlzIGlzIHNvIHdlIGNhbiByZS1jcmVhdGUgdGhlCisgICAgICAgICAgICAjIGFwcHJvcHJpYXRlIHNjb3BlcyBsYXRlciB3aGVuIHdlIGV4ZWN1dGUgdGhlIGFjdGlvbi4KKyAgICAgICAgICAgIGFjdGlvbnMgPSBbKGFjdGlvbiwgc2NvcGVzKSBmb3IgYWN0aW9uIGluIGFjdGlvbnNdCisgICAgICAgIAorICAgICAgICByZXR1cm4gc2NvcGVzLCBhY3Rpb25zCisgICAgCisgICAgZGVmIHBhcnNlX2FyZ3VtZW50cyhzZWxmLCBhcmdzLCB3b3Jkcywgc3RhcnRfd29yZF9pbmRleCwgc2NvcGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgYXJnX2RhdGEsIGZpZWxkcywgYWN0aW9ucywgcHJlZml4X21hdGNoZXMsIGNvbW1hbmQpOgorICAgICAgICAiIiIKKyAgICAgICAgUGFyc2UgdGhlIGdpdmVuIGFyZ3MgZnJvbSB0aGUgZ2l2ZW4gY29tbWFuZCB3b3Jkcy4KKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgbGVuKGFyZ3MpID09IDA6CisgICAgICAgICAgICByZXR1cm4gW1swLCBbXSwgc2NvcGVzLCBhcmdfZGF0YSwgZmllbGRzLCBhY3Rpb25zXV0KKworICAgICAgICBwYXJzZV9yZXN1bHRzID0gW10KKworICAgICAgICBhcmcgPSBhcmdzWzBdCisKKyAgICAgICAgaWYgX2lzX3N0cmluZyhhcmcpOgorICAgICAgICAgICAgYXJnID0geyd0b2tlbic6IGFyZ30KKworICAgICAgICByZW1haW5pbmdfYXJncyA9IGFyZ3NbMTpdCisKKyAgICAgICAgYXJnX3Njb3BlcyA9IFthcmddICsgc2NvcGVzCisgICAgICAgIGFyZ19wYXJzZV9yZXN1bHRzID0gW10KKworICAgICAgICAjIEdldCB0aGUgYXR0cmlidXRlcyB3ZSBuZWVkIGZyb20gdGhlIGFyZworICAgICAgICAjIEZJWE1FOiBTaG91bGQgcG9zc2libHkgZ2V0IHJpZCBvZiB0aGUgJ2RhdGEnIG1lY2hhbmlzbQorICAgICAgICAjIGFuZCBoYW5kbGUgaXQgdmlhIGEgY3VzdG9tIGR0YSBoYW5kbGVyCisgICAgICAgIGNob2ljZXMgPSBhcmcuZ2V0KCdjaG9pY2VzJykKKyAgICAgICAgbmVzdGVkX2FyZ3MgPSBhcmcuZ2V0KCdhcmdzJykKKyAgICAgICAgaWYgbmVzdGVkX2FyZ3M6CisgICAgICAgICAgICAjIENvbnZlcnQgdGhlIG5lc3RlZCBhcmd1bWVudCBsaXN0IGludG8gYSBjaG9pY2VzIGFyZ3VtZW50IHdpdGgKKyAgICAgICAgICAgICMgYSBzaW5nbGUgY2hvaWNlLCBzbyB0aGF0IHdlIGNhbiBsZXZlcmFnZSB0aGUgY29kZSBiZWxvdyB0aGF0CisgICAgICAgICAgICAjIGhhbmRsZXMgY2hvaWNlcworICAgICAgICAgICAgaWYgY2hvaWNlczoKKyAgICAgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcignQW4gYXJndW1lbnQgY2FuXCd0IGhhdmUgYm90aCAnCisgICAgICAgICAgICAgICAgICAgICAgICAnImNob2ljZXMiIGFuZCAiYXJncyIgYXR0cmlidXRlcycsIGNvbW1hbmQpCisgICAgICAgICAgICBjaG9pY2VzID0gKG5lc3RlZF9hcmdzLCkKKworICAgICAgICAjIERldGVybWluZSB3aGV0aGVyIG9yIG5vdCB0aGlzIGFyZ3VtZW50IGlzIG9wdGlvbmFsLgorICAgICAgICAjIERlZmF1bHQgdG8gbWFraW5nIGFyZ3VtZW50cyBvcHRpb25hbCBmb3Igbm8gY29tbWFuZHMsIGV4Y2VwdCBmb3IgaWYKKyAgICAgICAgIyBpdCdzIGEgY2hvaWNlcyBhcmd1bWVudC4gSW4gdGhhdCBjYXNlIGl0IHdpbGwgcHJvYmFibHkgYmUgYW1iaWd1b3VzCisgICAgICAgICMgYWJvdXQgd2hpY2ggZmllbGRzIHNob3VsZCBiZSByZXNldCB0byB0aGUgZGVmYXVsdCB2YWx1ZXMsIHNvIHdlIGp1c3QKKyAgICAgICAgIyBkb24ndCB0cnkgdG8gaGFuZGxlIHRoYXQuCisgICAgICAgIG9wdGlvbmFsX25hbWUgPSAnb3B0aW9uYWwtZm9yLW5vJyBpZiBzZWxmLmlzX25vX2NvbW1hbmQgZWxzZSAnb3B0aW9uYWwnCisgICAgICAgICNvcHRpb25hbF9kZWZhdWx0X3ZhbHVlID0gc2VsZi5pc19ub19jb21tYW5kCisgICAgICAgICNvcHRpb25hbF9uYW1lID0gJ29wdGlvbmFsJworICAgICAgICBvcHRpb25hbF9kZWZhdWx0X3ZhbHVlID0gRmFsc2UKKyAgICAgICAgI29wdGlvbmFsID0gYXJnLmdldChvcHRpb25hbF9uYW1lLCBvcHRpb25hbF9kZWZhdWx0X3ZhbHVlKQorICAgICAgICAjIEZJWE1FOiBEaXNhYmxpbmcgdGhlIHNwZWNpYWwgaGFuZGxpbmcgb2Ygb3B0aW9uYWwgYXJndW1lbnRzIGZvciBubworICAgICAgICAjIGNvbW1hbmQuIFRoYXQncyBjYXVzaW5nIHNwdXJpb3VzIGNvbXBsZXRpb25zIHRvIGJlIGluY2x1ZGVkLiBOb3Qgc3VyZQorICAgICAgICAjIGhvdyB0byBmaXggdGhhdCByaWdodCBub3cuIERvIHdlIHJlYWxseSBuZWVkIHRoZSBzcGVjaWFsIG9wdGlvbmFsCisgICAgICAgICMgaGFuZGxpbmcgYW55d2F5PyBEb2VzIENpc2NvIGFjdHVhbGx5IHN1cHBvcnQgdGhhdC4KKyAgICAgICAgIyBGb3IgZXhhbXBsZSwgYmVpbmcgYWJsZSB0byB1c2UgIm5vIGlwIGFkZHJlc3MiIHJhdGhlciB0aGFuCisgICAgICAgICMgIm5vIGlwIGFkZHJlc3MgMTkyLjE2OC4yLjIgMjU1LjI1NS4yNTUuMCIuIEkgaGF2ZW4ndCBhY3R1YWxseSB0cmllZAorICAgICAgICAjIGJvdGggZm9ybXMgb24gYSBDaXNjbyBzd2l0Y2ggdG8gc2VlIHdoYXQgaXQgZG9lcy4KKyAgICAgICAgb3B0aW9uYWwgPSBhcmcuZ2V0KG9wdGlvbmFsX25hbWUsIG9wdGlvbmFsX2RlZmF1bHRfdmFsdWUpCisKKyAgICAgICAgIyBDaGVjayB0byBzZWUgaWYgdGhpcyBhcmcgb3ZlcnJpZGVzIGVpdGhlciB0aGUgY29tbWFuZCB0eXBlIG9yIGFjdGlvbgorICAgICAgICAjIE5vdGUgdGhhdCB3ZSBkb24ndCB3YW50IHRvIHNldCB0aGUgImFjdGlvbnMiIHZhcmlhYmxlIHdpdGggdGhlCisgICAgICAgICMgdXBkYXRlZCBhY3Rpb25zIHlldCB1bnRpbCB3ZSBrbm93IHRoYXQgdGhlIGN1cnJlbnQgYXJndW1lbnQKKyAgICAgICAgIyBhY3R1YWxseSBtYXRjaGVkIGFnYWluc3QgdGhlIGNvbW1hbmQgd29yZHMgYW5kIHdhc24ndCBhbiBvcHRpb25hbAorICAgICAgICAjIGFyZ3VtZW50IHRoYXQgd2FzIHNraXBwZWQuCisgICAgICAgIGFyZ19zY29wZXMsIGFyZ19hY3Rpb25zID0gc2VsZi5jaGVja19jb21tYW5kX3R5cGVfYW5kX2FjdGlvbnMoCisgICAgICAgICAgICAgICAgYXJnLCBhcmdfc2NvcGVzLCBhY3Rpb25zKQorCisgICAgICAgIGlmIGNob2ljZXM6CisgICAgICAgICAgICBpZiBub3QgX2lzX2xpc3QoY2hvaWNlcyk6CisgICAgICAgICAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZERlc2NyaXB0aW9uRXJyb3IoJyJjaG9pY2VzIiBhcmd1bWVudCBtdXN0IGJlIGEgbGlzdCAnCisgICAgICAgICAgICAgICAgICAgICAgICAnb3IgdHVwbGUgb2YgYXJndW1lbnQgZGVzY3JpcHRpb25zIGZyb20gd2hpY2ggdG8gY2hvb3NlJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQpCisKKyAgICAgICAgICAgIGZvciBjaG9pY2UgaW4gY2hvaWNlczoKKyAgICAgICAgICAgICAgICBjaG9pY2VfYXJncyA9IF9nZXRfY2hvaWNlX2FyZ3MoY2hvaWNlKQorICAgICAgICAgICAgICAgIGNob2ljZV9hcmdfc2NvcGVzID0gYXJnX3Njb3BlcworICAgICAgICAgICAgICAgIGNob2ljZV9hY3Rpb25zID0gbGlzdChhcmdfYWN0aW9ucykKKyAgICAgICAgICAgICAgICBjaG9pY2VfcHJlZml4X21hdGNoZXMgPSBsaXN0KHByZWZpeF9tYXRjaGVzKQorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY2hvaWNlLCBjb2xsZWN0aW9ucy5NYXBwaW5nKToKKyAgICAgICAgICAgICAgICAgICAgY2hvaWNlX2FyZ19zY29wZXMgPSBbY2hvaWNlXSArIGNob2ljZV9hcmdfc2NvcGVzCisgICAgICAgICAgICAgICAgICAgIGNob2ljZV9vcHRpb25hbCA9IGNob2ljZS5nZXQob3B0aW9uYWxfbmFtZSwgRmFsc2UpCisgICAgICAgICAgICAgICAgICAgIGlmIGNob2ljZV9vcHRpb25hbDoKKyAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbmFsID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBjaG9pY2VfYXJnX3Njb3BlcywgY2hvaWNlX2FjdGlvbnMgPSBcCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNoZWNrX2NvbW1hbmRfdHlwZV9hbmRfYWN0aW9ucygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaG9pY2UsIGNob2ljZV9hcmdfc2NvcGVzLCBjaG9pY2VfYWN0aW9ucykKKyAgICAgICAgICAgICAgICBjaG9pY2VfYXJnX2RhdGEgPSBkaWN0KGFyZ19kYXRhKQorICAgICAgICAgICAgICAgIGNob2ljZV9maWVsZHMgPSBsaXN0KGZpZWxkcykKKworICAgICAgICAgICAgICAgIGNob2ljZV9wYXJzZV9yZXN1bHRzID0gc2VsZi5wYXJzZV9hcmd1bWVudHMoY2hvaWNlX2FyZ3MsCisgICAgICAgICAgICAgICAgICAgIHdvcmRzLCBzdGFydF93b3JkX2luZGV4LCBjaG9pY2VfYXJnX3Njb3BlcywKKyAgICAgICAgICAgICAgICAgICAgY2hvaWNlX2FyZ19kYXRhLCBjaG9pY2VfZmllbGRzLCBjaG9pY2VfYWN0aW9ucywKKyAgICAgICAgICAgICAgICAgICAgY2hvaWNlX3ByZWZpeF9tYXRjaGVzLCBjb21tYW5kKQorICAgICAgICAgICAgICAgIGZvciBjaG9pY2VfcGFyc2VfcmVzdWx0IGluIGNob2ljZV9wYXJzZV9yZXN1bHRzOgorICAgICAgICAgICAgICAgICAgICB3b3Jkc19tYXRjaGVkID0gY2hvaWNlX3BhcnNlX3Jlc3VsdFswXQorICAgICAgICAgICAgICAgICAgICBuZXdfYXJnX2RhdGEgPSBjaG9pY2VfcGFyc2VfcmVzdWx0WzNdCisgICAgICAgICAgICAgICAgICAgICMgRklYTUU6IE5vdCBzdXJlIGlmIHRoZSBjb2RlIGJlbG93IGlzIHRoZSBiZXN0IHdheSB0bworICAgICAgICAgICAgICAgICAgICAjIGhhbmRsZSB0aGluZ3MsIGJ1dCB0aGUgaWRlYSBpcyB0aGF0IHdlIHdhbnQgdG8gZGV0ZWN0CisgICAgICAgICAgICAgICAgICAgICMgdGhlIGNhc2Ugd2hlcmUgYW55IG9mIHRoZSBjaG9pY2VzIGluIGEgY2hvaWNlIGJsb2NrCisgICAgICAgICAgICAgICAgICAgICMgaXMgY29tcG9zZWQgb2YgYWxsIG9wdGlvbmFsIGFyZ3VtZW50cy4gSW4gdGhhdCBjYXNlCisgICAgICAgICAgICAgICAgICAgICMgdGhlIG92ZXJhbGwgY2hvaWNlIGJsb2NrIHRodXMgYmVjb21lcyBvcHRpb25hbC4gVGhlCisgICAgICAgICAgICAgICAgICAgICMgcmVhc29uIHdlIHByb3BhZ2F0ZSB0aGUgb3B0aW9uYWwgYXR0cmlidXRlIGlzIHRoYXQgaWYKKyAgICAgICAgICAgICAgICAgICAgIyB0aGVyZSBhcmUgbXVsdGlwbGUgY2hvaWNlcyB0aGF0IGNvbnNpc3QgZW50aXJlbHkgb2YKKyAgICAgICAgICAgICAgICAgICAgIyBvcHRpb25hbCBhcmd1bWVudHMgdGhlbiB3ZSdkIGdldCBtbHV0aXBsZSByZWR1bmRhbnQKKyAgICAgICAgICAgICAgICAgICAgIyBtYXRjaGVzIHdpdGggZXhhY3RseSB0aGUgc2FtZSBhcmdfZGF0YSBhbmQgcHJlZml4X21hdGNoZXMKKyAgICAgICAgICAgICAgICAgICAgIyB3aGljaCB3b3VsZCBsZWFkIHRvIGFuIGFtYmlndW91cyBjb21tYW5kIHdoZW4gd2UgCisgICAgICAgICAgICAgICAgICAgICMgcHJvY2VzcyB0aGUgcmVzdWx0cyBhdCB0aGUgZW5kLiBTbyBieSBub3QgYWRkaW5nIGEKKyAgICAgICAgICAgICAgICAgICAgIyByZXN1bHQgZm9yIGVhY2ggb2YgdGhvc2UgY2FzZXMgYW5kIGluc3RlYWQganVzdCBhZGRpbmcKKyAgICAgICAgICAgICAgICAgICAgIyBhIHNpbmdsZSByZXN1bHQgZm9yIHRoZSBvdmVyYWxsIGNob2ljZSBibG9jay4KKyAgICAgICAgICAgICAgICAgICAgIyBUaGUgb3RoZXIgdGhpbmcgd2UgbmVlZCB0byBkbyBpcyBkaXN0aW5ndWlzaCBiZXR3ZWVuCisgICAgICAgICAgICAgICAgICAgICMgb3B0aW9uYWwgYXJncyBhbmQgZGVmYXVsdCBhcmdzIHdoaWNoIHdpbGwgYm90aCBsZWFkIHRvCisgICAgICAgICAgICAgICAgICAgICMgY2FzZXMgd2hlcmUgd29yZHNfbWF0Y2hlZCA9PSAwLiBGb3IgdGhlIGRlZmF1bHQgYXJnCisgICAgICAgICAgICAgICAgICAgICMgY2FzZSB0aG91Z2ggd2Ugd2lsbCBhZGQgdGhlIG1hdGNoIGluIHRoZSBuZXN0ZWQgY2FsbAorICAgICAgICAgICAgICAgICAgICAjIHNpbmNlIGl0IHdpbGwgaGF2ZSBjaGFuZ2VzIHRvIHRoZSBhcmdfZGF0YSB3aGljaCBhcmUKKyAgICAgICAgICAgICAgICAgICAgIyBzaWduaWZpY2FudCBpbiB0aGUgcHJvY2Vzc2luZyBvZiB0aGUgY29tbWFuZCBhY3Rpb24uCisgICAgICAgICAgICAgICAgICAgICMgU2luY2Ugd2UndmUgYWxyZWFkeSBhZGRlZCBhIHJlc3VsdCwgd2UgZG9uJ3Qgd2FudCB0bworICAgICAgICAgICAgICAgICAgICAjIHNldCB0aGUgb3ZlcmFsbCBjaG9pY2UgdG8gYmUgb3B0aW9uYWwgb3IgZWxzZSBhZ2FpbgorICAgICAgICAgICAgICAgICAgICAjIHdlJ2xsIGdldCBtdWx0aXBsZSBhbWlidW91cyByZXN1bHRzLiBUaGUgd2F5IHdlIGRldGVjdAorICAgICAgICAgICAgICAgICAgICAjIHRoYXQgY2FzZSBpcyBpZiB0aGUgYXJnX2RhdGEgZnJvbSB0aGUgcGFyc2VfcmVzdWx0IGlzCisgICAgICAgICAgICAgICAgICAgICMgZGlmZmVyZW50IHRoYW4gdGhlIGFyZ19kYXRhIHRoYXQgd2FzIHBhc3NlZCBpbi4gU28KKyAgICAgICAgICAgICAgICAgICAgIyB0aGF0J3Mgd2h5IHdlIHVzZSB0aGUgZm9sbG93aW5nIHRlc3QuCisgICAgICAgICAgICAgICAgICAgIGlmIHdvcmRzX21hdGNoZWQgPT0gMCBhbmQgbmV3X2FyZ19kYXRhID09IGFyZ19kYXRhOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBGSVhNRTogSSBkb24ndCB0aGluayB0aGlzIHdpbGwgd29yayBjb3JyZWN0bHkKKyAgICAgICAgICAgICAgICAgICAgICAgICMgaWYvd2hlbiB3ZSBzdXBwb3J0IGRlZmF1bHQgdmFsdWVzIGZvciBhcmdzLiBJbiB0aGF0CisgICAgICAgICAgICAgICAgICAgICAgICAjIGNhc2UgdGhlIGNob2ljZSBtYXkgaGF2ZSBtYXRjaGVkIDAgd29yZHMsIGJ1dCBpdAorICAgICAgICAgICAgICAgICAgICAgICAgIyBtYXkgaGF2ZSB1cGRhdGVkIHRoZSBhcmdfZGF0YSB3aXRoIHNvbWUgZGVmYXVsdAorICAgICAgICAgICAgICAgICAgICAgICAgIyBhcmd1bWVudCB2YWx1ZXMsIHdoaWNoIHdlJ2xsIGlmIHdlIGRvbid0IGFkZCB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICMgcGFyc2VfcmVzdWx0IGF0IHRoaXMgcG9pbnQuIE5lZWQgdG8gdGhpbmsgbW9yZQorICAgICAgICAgICAgICAgICAgICAgICAgIyBhYm91dCB0aGlzLgorICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uYWwgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBhcmdfcGFyc2VfcmVzdWx0cy5hcHBlbmQoY2hvaWNlX3BhcnNlX3Jlc3VsdCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHRva2VuID0gYXJnLmdldCgndG9rZW4nKQorICAgICAgICAgICAgZmllbGQgPSBhcmcuZ2V0KCdmaWVsZCcpCisgICAgICAgICAgICBhcmdfdHlwZSA9IGFyZy5nZXQoJ3R5cGUnKQorICAgICAgICAgICAgdGFnID0gYXJnLmdldCgndGFnJykKKyAgICAgICAgICAgIGRlZmF1bHQgPSBzZWxmLmdldF9kZWZhdWx0X3ZhbHVlKGFyZykKKyAgICAgICAgCisgICAgICAgICAgICB0YWdfcHJlZml4X21hdGNoID0gTm9uZQorICAgICAgICAgICAgcGFyc2VkX3RhZyA9IEZhbHNlCisgICAgICAgICAgICBpc19tYXRjaCA9IFRydWUKKyAgICAgICAgICAgIHdvcmRzX21hdGNoZWQgPSAwCisgICAgICAgICAgICByZXN1bHRzID0gTm9uZQorCisgICAgICAgICAgICAjIEZpcnN0IHRyeSB0byBwYXJzZSB0aGUgdGFnIGlmIHRoZXJlIGlzIG9uZQorICAgICAgICAgICAgaWYgdGFnIGFuZCBsZW4od29yZHMpID4gMDoKKyAgICAgICAgICAgICAgICB3b3JkID0gd29yZHNbMF0KKyAgICAgICAgICAgICAgICBpZiB0YWcubG93ZXIoKS5zdGFydHN3aXRoKHdvcmQubG93ZXIoKSk6CisgICAgICAgICAgICAgICAgICAgIGlmIHRhZy5sb3dlcigpICE9IHdvcmQubG93ZXIoKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhZ19wcmVmaXhfbWF0Y2ggPSBbc3RhcnRfd29yZF9pbmRleCt3b3Jkc19tYXRjaGVkLCB0YWddCisgICAgICAgICAgICAgICAgICAgIHdvcmRzX21hdGNoZWQgKz0gMQorICAgICAgICAgICAgICAgICAgICBwYXJzZWRfdGFnID0gVHJ1ZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuaGFuZGxlX3BhcnNlX2Vycm9yKCJVbmV4cGVjdGVkIGFyZ3VtZW50IGF0IFwiJXNcIiIgJSB3b3JkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X3dvcmRfaW5kZXgsIENvbW1hbmRIYW5kbGVyLlVORVhQRUNURURfVE9LRU5fUFJJT1JJVFksIHRhZykKKyAgICAgICAgICAgICAgICAgICAgaXNfbWF0Y2ggPSBGYWxzZQorCisgICAgICAgICAgICAjIEhhbmRsZSBpbmNvbXBsZXRlIGFyZ3VtZW50IG1hdGNoaW5nCisgICAgICAgICAgICBpZiBpc19tYXRjaDoKKyAgICAgICAgICAgICAgICBpZiB3b3Jkc19tYXRjaGVkIDwgbGVuKHdvcmRzKToKKyAgICAgICAgICAgICAgICAgICAgd29yZCA9IHdvcmRzW3dvcmRzX21hdGNoZWRdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVfaW5jb21wbGV0ZV9jb21tYW5kKGFyZywgYXJnX3Njb3BlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdfZGF0YSwgZmllbGRzLCBwYXJzZWRfdGFnLCBjb21tYW5kKQorICAgICAgICAgICAgICAgICAgICBpZiBkZWZhdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgd29yZCA9IGRlZmF1bHQKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaGFuZGxlX3BhcnNlX2Vycm9yKCJVbmV4cGVjdGVkIGVuZCBvZiBjb21tYW5kIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfd29yZF9pbmRleCArIHdvcmRzX21hdGNoZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRIYW5kbGVyLlVORVhQRUNURURfRU5EX09GX0FSR1VNRU5UU19QUklPUklUWSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX21hdGNoID0gRmFsc2UKKworICAgICAgICAgICAgIyBIYW5kbGUgdGhlIGFyZ3VtZW50IHZhbHVlCisgICAgICAgICAgICBpZiBpc19tYXRjaDoKKyAgICAgICAgICAgICAgICBpZiB0b2tlbjoKKyAgICAgICAgICAgICAgICAgICAgaWYgdG9rZW4ubG93ZXIoKS5zdGFydHN3aXRoKHdvcmQubG93ZXIoKSk6CisgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IFRydWUgaWYgYXJnX3R5cGUgPT0gJ2Jvb2xlYW4nIGVsc2UgdG9rZW4KKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMgPSBbKHZhbHVlLCB0b2tlbildCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZV9wYXJzZV9lcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlVuZXhwZWN0ZWQgYXJndW1lbnQgYXQgXCIlc1wiIiAlIHdvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X3dvcmRfaW5kZXggKyB3b3Jkc19tYXRjaGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kSGFuZGxlci5VTkVYUEVDVEVEX1RPS0VOX1BSSU9SSVRZLCB0b2tlbikKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX21hdGNoID0gRmFsc2UKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAjIENoZWNrIHRoYXQgdGhlIGFyZ3VtZW50IGlzIHZhbGlkCisgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdHMgPSB2YWxpZGF0ZV9hcmd1bWVudChhcmcsIHdvcmQsIGFyZ19zY29wZXMsIGNvbW1hbmQpCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBlcnJvci5Bcmd1bWVudFZhbGlkYXRpb25FcnJvciwgZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3Rva2VucyA9IGUuZXhwZWN0ZWRfdG9rZW5zCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBleHBlY3RlZF90b2tlbnM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgX2lzX3N0cmluZyhleHBlY3RlZF90b2tlbnMpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF90b2tlbnMgPSAoZXhwZWN0ZWRfdG9rZW5zLCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZV9wYXJzZV9lcnJvcihzdHIoZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydF93b3JkX2luZGV4ICsgd29yZHNfbWF0Y2hlZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRIYW5kbGVyLlVORVhQRUNURURfVE9LRU5fUFJJT1JJVFksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3RlZF90b2tlbnMpCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaGFuZGxlX3BhcnNlX2Vycm9yKHN0cihlKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0X3dvcmRfaW5kZXggKyB3b3Jkc19tYXRjaGVkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29tbWFuZEhhbmRsZXIuVkFMSURBVElPTl9FUlJPUl9QUklPUklUWSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGlzX21hdGNoID0gRmFsc2UKKworICAgICAgICAgICAgaWYgaXNfbWF0Y2g6CisgICAgICAgICAgICAgICAgYXNzZXJ0IHJlc3VsdHMgaXMgbm90IE5vbmUKKyAgICAgICAgICAgICAgICBhc3NlcnQgX2lzX2xpc3QocmVzdWx0cykKKyAgICAgICAgICAgICAgICBhc3NlcnQgbGVuKHJlc3VsdHMpID4gMAorICAgICAgICAgICAgICAgICMgSWYgd2UgcmVhY2ggaGVyZSB3ZSd2ZSBzdWNjZXNzZnVsbHkgbWF0Y2hlZCB0aGUgd29yZC4gVGhlIHdvcmQKKyAgICAgICAgICAgICAgICAjIG1heSBoYXZlIGNvbWUgZnJvbSB0aGUgY29tbWFuZHMgd29yZHMgb3IgaXQgbWF5IGhhdmUgY29tZSBmcm9tCisgICAgICAgICAgICAgICAgIyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGFyZ3VtZW50LiBXZSBvbmx5IHdhbnQgdG8gYnVtcCB0aGUKKyAgICAgICAgICAgICAgICAjIHdvcmRzX21hdGNoZWQgaW4gdGhlIGZvcm1lciBjYXNlLCB3aGljaCBpcyB3aHkgd2UgbmVlZCB0byBjaGVjaworICAgICAgICAgICAgICAgICMgYWdhaW5zdCB0aGUgbGVuZ3RoIG9mIHRoZSB3b3JkcyBhcnJheS4gTm90ZSB0aGF0IHdlIGRvbid0IHdhbnQKKyAgICAgICAgICAgICAgICAjIHRvIGJ1bXAgd29yZHNfbWF0Y2hlZCBpbiB0aGUgY29kZSBhYm92ZSB3aGVyZSB3ZSBnZXQgaXQgZnJvbSAKKyAgICAgICAgICAgICAgICAjIHRoZSBjb21tYW5kIHdvcmRzLCBiZWNhdXNlIHRoZW4gdGhlIHdvcmQgb2Zmc2V0IHdlIHBhc3MgdG8KKyAgICAgICAgICAgICAgICAjIGhhbmRsZV9wYXJzZV9lcnJvciB3b3VsZCBiZSBvZmYgYnkgMSBpZiB0aGUgdmFsaWRhdGlvbiBmYWlscy4KKyAgICAgICAgICAgICAgICBpZiB3b3Jkc19tYXRjaGVkIDwgbGVuKHdvcmRzKToKKyAgICAgICAgICAgICAgICAgICAgd29yZHNfbWF0Y2hlZCArPSAxCisgICAgICAgICAgICAgICAgZGF0YSA9IGFyZy5nZXQoJ2RhdGEnKQorICAgICAgICAgICAgICAgIGFyZ19kYXRhX2hhbmRsZXIgPSBfbG9va3VwX2luX3Njb3BlcygnZGF0YS1oYW5kbGVyJywgYXJnX3Njb3BlcykKKyAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZV9maXJzdF9tYXRjaGVkX3Jlc3VsdChjb21tYW5kKQorCisgICAgICAgICAgICAgICAgZm9yIHJlc3VsdCBpbiByZXN1bHRzOgorICAgICAgICAgICAgICAgICAgICB2YWx1ZSwgbWF0Y2hfdG9rZW4gPSByZXN1bHQKKyAgICAgICAgICAgICAgICAgICAgbmV3X2FyZ19kYXRhID0gZGljdChhcmdfZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgaWYgZGF0YToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld19hcmdfZGF0YS51cGRhdGUoZGF0YSkKKyAgICAgICAgICAgICAgICAgICAgIyBYWFggc2hvdWxkIHRoZSBtb2RlIHBhc3NlZCBpbiBoZXJlIHRvIHRoZSBoYW5kbGVyIGJlCisgICAgICAgICAgICAgICAgICAgICMgdGhlIG1vZGUgb2YgdGhlIGNvbW1hbmQsIG9yIHRoZSBjdXJyZW50IG1vZGUgPworICAgICAgICAgICAgICAgICAgICAjIChtb2RlLW9mLXRoZS1jb21tYW5kIGluIGNhc2UgaXRzIGEgaGlnaGVyIHN1Ym1vZGUgcHVzaCkKKyAgICAgICAgICAgICAgICAgICAgaWYgYXJnX2RhdGFfaGFuZGxlcjoKKyAgICAgICAgICAgICAgICAgICAgICAgIGludm9jYXRpb25fc2NvcGUgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBGSVhNRTogVGhlICduYW1lJyBhdHRyaWJ1dGUgaXMgZGVwcmVjYXRlZC4gUmVtb3ZlIG9uY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGV2ZXJ5dGhpbmcncyBiZWVuIGNvbnZlcnRlZC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZSc6IGZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCc6IGZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZSc6IHZhbHVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJzogbmV3X2FyZ19kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcy1uby1jb21tYW5kJzogc2VsZi5pc19ub19jb21tYW5kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW50LW1vZGUtb2JqLXR5cGUnOiBzZG5zaC5nZXRfY3VycmVudF9tb2RlX29ial90eXBlKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnQtbW9kZS1vYmotaWQnOiBzZG5zaC5nZXRfY3VycmVudF9tb2RlX29iaigpCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdfYXJnX3Njb3BlcyA9IFtpbnZvY2F0aW9uX3Njb3BlXSArIGFyZ19zY29wZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQgPSBfY2FsbF9wcm9jKGFyZ19kYXRhX2hhbmRsZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudF9kYXRhX2hhbmRsZXJfcmVnaXN0cnksIG5ld19hcmdfc2NvcGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBYWFggb3VnaHQgdG8gbm90IG1hbmFnZSBwYXJhbWV0ZXIgZXhjZXB0aW9ucyBmb3IgX2NhbGxfcHJvYworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNkbnNoLmRlYnVnIG9yIHNkbnNoLmRlYnVnX2JhY2t0cmFjZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVfcGFyc2VfZXJyb3Ioc3RyKGUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRfd29yZF9pbmRleCArIHdvcmRzX21hdGNoZWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb21tYW5kSGFuZGxlci5WQUxJREFUSU9OX0VSUk9SX1BSSU9SSVRZKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwYXJzZV9yZXN1bHRzCisgICAgICAgICAgICAgICAgICAgIGVsaWYgZmllbGQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdfYXJnX2RhdGFbZmllbGRdID0gdmFsdWUKKworICAgICAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZV9tYXRjaGVkX3Jlc3VsdChjb21tYW5kLCByZXN1bHQsIGFyZ19zY29wZXMpCisKKyAgICAgICAgICAgICAgICAgICAgIyBGSVhNRTogRG8gd2Ugc3RpbGwgbmVlZCB0aGUgc2VwYXJhdGUgZmllbGRzIGRpY3Q/CisgICAgICAgICAgICAgICAgICAgICMgSWYgc28sIEkgZG9uJ3QgdGhpbmsgdGhpcyBpcyBhY3R1YWxseSBjb3JyZWN0LCBzaW5jZQorICAgICAgICAgICAgICAgICAgICAjIHdlIHdhbnQgZmllbGRzIHRvIG5vdCBuZWNlc3NhcmlseSBiZSBrZXB0IGV4YWN0bHkgaW4KKyAgICAgICAgICAgICAgICAgICAgIyBzeW5jIHdpdGggYXJnX2RhdGEuIE5lZWQgdG8gdGhpbmsgYWJvdXQgdGhpcyBtb3JlLgorICAgICAgICAgICAgICAgICAgICBuZXdfZmllbGRzID0gbmV3X2FyZ19kYXRhLmtleXMoKQorICAgICAgICAgICAgICAgICAgICBuZXdfcHJlZml4X21hdGNoZXMgPSBsaXN0KHByZWZpeF9tYXRjaGVzKQorICAgICAgICAgICAgICAgICAgICBpZiB0YWdfcHJlZml4X21hdGNoOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3ByZWZpeF9tYXRjaGVzLmFwcGVuZCh0YWdfcHJlZml4X21hdGNoKQorICAgICAgICAgICAgICAgICAgICBpZiBsZW4obWF0Y2hfdG9rZW4pID4gbGVuKHdvcmQpOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X3ByZWZpeF9tYXRjaGVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RhcnRfd29yZF9pbmRleCt3b3Jkc19tYXRjaGVkLTEsIG1hdGNoX3Rva2VuXSkKKyAgICAgICAgICAgICAgICAgICAgYXJnX3BhcnNlX3Jlc3VsdHMuYXBwZW5kKFt3b3Jkc19tYXRjaGVkLCBuZXdfcHJlZml4X21hdGNoZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnX3Njb3BlcywgbmV3X2FyZ19kYXRhLCBuZXdfZmllbGRzLCBhcmdfYWN0aW9uc10pCisKKyAgICAgICAgaWYgb3B0aW9uYWw6CisgICAgICAgICAgICBhcmdfcGFyc2VfcmVzdWx0cy5hcHBlbmQoWzAsIHByZWZpeF9tYXRjaGVzLCBzY29wZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ19kYXRhLCBmaWVsZHMsIGFjdGlvbnNdKQorCisgICAgICAgIGZvciBhcmdfcGFyc2VfcmVzdWx0IGluIGFyZ19wYXJzZV9yZXN1bHRzOgorICAgICAgICAgICAgKHdvcmRzX21hdGNoZWQsIHByZWZpeF9tYXRjaGVzLCBhcmdfc2NvcGVzLCBhcmdfZGF0YSwKKyAgICAgICAgICAgICBmaWVsZHMsIGFjdGlvbnMpID0gYXJnX3BhcnNlX3Jlc3VsdAorICAgICAgICAgICAgcmVtYWluaW5nX3dvcmRzID0gd29yZHNbd29yZHNfbWF0Y2hlZDpdCisgICAgICAgICAgICByZW1haW5pbmdfcGFyc2VfcmVzdWx0cyA9IHNlbGYucGFyc2VfYXJndW1lbnRzKAorICAgICAgICAgICAgICAgICAgICByZW1haW5pbmdfYXJncywgcmVtYWluaW5nX3dvcmRzLAorICAgICAgICAgICAgICAgICAgICBzdGFydF93b3JkX2luZGV4ICsgd29yZHNfbWF0Y2hlZCwgc2NvcGVzLCBhcmdfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgZmllbGRzLCBhY3Rpb25zLCBwcmVmaXhfbWF0Y2hlcywgY29tbWFuZCkKKyAgICAgICAgICAgICMgVGhlIGZpcnN0IGl0ZW0gaW4gZWFjaCB0dXBsZSBpcyB0aGUgd29yZHMgY29uc3VtZWQsIGJ1dAorICAgICAgICAgICAgIyB0aGF0J3MgcmVsYXRpdmUgdG8gdGhlIHJlbWFpbmluZyBhcmdzIHRoYXQgd2UgcGFzc2VkIHRvCisgICAgICAgICAgICAjIGl0LiBGb3IgdGhlIHBhcnNlIHJlc3VsdHMgZnJvbSB0aGlzIGludm9jYXRpb24gb2YKKyAgICAgICAgICAgICMgcGFyc2UgYXJncyB3ZSBhbHNvIG5lZWQgdG8gaW5jbHVkZSB0aGUgY291bnRzIG9mIHRoZSBhcmdzCisgICAgICAgICAgICAjIHRoYXQgd2UndmUgYWxyZWFkeSBwYXJzZWQgcGx1cyB0aGUgYXJncyB0aGF0IHdlcmUgcGFyc2VkCisgICAgICAgICAgICAjIGZvciB0aGUgY3VycmVudCBjaG9pY2UuCisgICAgICAgICAgICBmb3IgcGFyc2VfcmVzdWx0IGluIHJlbWFpbmluZ19wYXJzZV9yZXN1bHRzOgorICAgICAgICAgICAgICAgIHBhcnNlX3Jlc3VsdFswXSArPSB3b3Jkc19tYXRjaGVkCisjICAgICAgICAgICAgICAgIHBhcnNlX3ByZWZpeF9tYXRjaGVzID0gcGFyc2VfcmVzdWx0WzFdCisjICAgICAgICAgICAgICAgIGZvciBtYXRjaCBpbiBwYXJzZV9wcmVmaXhfbWF0Y2hlczoKKyMgICAgICAgICAgICAgICAgICAgIG1hdGNoWzBdICs9IHdvcmRzX21hdGNoZWQKKyAgICAgICAgICAgICAgICBwYXJzZV9yZXN1bHRbMV0gPSBwcmVmaXhfbWF0Y2hlcyArIHBhcnNlX3Jlc3VsdFsxXQorICAgICAgICAgICAgICAgIHBhcnNlX3Jlc3VsdHMuYXBwZW5kKHBhcnNlX3Jlc3VsdCkKKworICAgICAgICByZXR1cm4gcGFyc2VfcmVzdWx0cworCisKKyAgICBkZWYgaGFuZGxlX29uZV9jb21tYW5kKHNlbGYsIGNvbW1hbmQsIHByZWZpeF9tYXRjaCwgd29yZHMpOgorCisgICAgICAgIGFzc2VydCB3b3JkcyBpcyBub3QgTm9uZQorICAgICAgICBhc3NlcnQgbGVuKHdvcmRzKSA+IDAKKyAgICAgICAgYXNzZXJ0IGNvbW1hbmQgaXMgbm90IE5vbmUKKworICAgICAgICBmaWVsZHMgPSB7fQorICAgICAgICBjb21tYW5kX3dvcmQgPSB3b3Jkc1swXQorICAgICAgICBjb21tYW5kX25hbWUgPSBjb21tYW5kLmdldCgnbmFtZScpCisgICAgICAgIGFyZ19kYXRhID0gZGljdChjb21tYW5kLmdldCgnZGF0YScsIHt9KSkKKworICAgICAgICAjIFRoZSBmaXJzdCB0d28gZWxlbWVudHMgaW4gdGhlIHNjb3BlcyBhcmUgdGhlIGNvbW1hbmQgYW5kIHRoZSBjb21tYW5kCisgICAgICAgICMgZGVmYXVsdHMuIFRoZSBjb21tYW5kIGRlZmF1bHRzIHdpbGwgYmUgcG9wdWxhdGVkIHdpdGggdGhlIHJlYWwKKyAgICAgICAgIyBkZWZhdWx0cyB3aGVuIHdlIGNhbGwgY2hlY2tfY29tbWFuZF9kZWZhdWx0c19hbmRfYWN0aW9ucworICAgICAgICBzY29wZXMgPSBbY29tbWFuZCwge31dCisgICAgICAgIGFjdGlvbnMgPSBbXQorICAgICAgICBwcmVmaXhfbWF0Y2hlcyA9IFtdCisgICAgICAgIGlmIHByZWZpeF9tYXRjaDoKKyAgICAgICAgICAgIHByZWZpeF9tYXRjaGVzLmFwcGVuZChbMCwgY29tbWFuZF9uYW1lXSkKKworICAgICAgICBpZiBpc2luc3RhbmNlKGNvbW1hbmRfbmFtZSwgY29sbGVjdGlvbnMuTWFwcGluZyk6CisgICAgICAgICAgICBmaWVsZCA9IGNvbW1hbmRfbmFtZVsnZmllbGQnXQorICAgICAgICAgICAgaWYgZmllbGQ6CisgICAgICAgICAgICAgICAgZmllbGRzW2ZpZWxkXSA9IFRydWUKKyAgICAgICAgICAgICAgICBhcmdfZGF0YVtmaWVsZF0gPSBjb21tYW5kX3dvcmQKKyAgICAgICAgZWxpZiBfaXNfc3RyaW5nKGNvbW1hbmRfbmFtZSk6CisgICAgICAgICAgICBhc3NlcnQgY29tbWFuZF9uYW1lLmxvd2VyKCkuc3RhcnRzd2l0aChjb21tYW5kX3dvcmQubG93ZXIoKSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCdDb21tYW5kIG5hbWUgbXVzdCBiZSBlaXRoZXInCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYSBzdHJpbmcgb3IgYSBkaWN0JywgY29tbWFuZCkKKworICAgICAgICAjIFdlJ3ZlIGNoZWNrZWQgdGhhdCB0aGUgZmlyc3Qgd29yZCBtYXRjaGVzIHdoYXQgd2UgZXhwZWN0IGZyb20gdGhlCisgICAgICAgICMgY29tbWFuZCBvYmplY3QgYW5kIG5vdyB3ZSBqdXN0IGNhcmUgYWJvdXQgdGhlIHJlbWFpbmluZyB3b3Jkcywgc28KKyAgICAgICAgIyB3ZSBzdHJpcCBvZmYgdGhlIGluaXRpYWwgY29tbWFuZCB3b3JkLiBOb3RlIHRoYXQgd2Ugc2xpY2UvY29weQorICAgICAgICAjIHRoZSB3b3JkIGxpc3QgaW5zdGVhZCBvZiBkZWxldGluZyB0aGUgZmlyc3Qgd29yZCBpbiBwbGFjZSwgc28gdGhhdAorICAgICAgICAjIHdlIGRvbid0IGFmZmVjdCB0aGUgd29yZCBsaXN0IG9mIHRoZSBjYWxsaW5nIGZ1bmN0aW9uLgorICAgICAgICB3b3JkcyA9IHdvcmRzWzE6XQorCisgICAgICAgIHNjb3BlcywgYWN0aW9ucyA9IHNlbGYuY2hlY2tfY29tbWFuZF90eXBlX2FuZF9hY3Rpb25zKGNvbW1hbmQsIHNjb3BlcywgYWN0aW9ucykKKworICAgICAgICAjIFBhcnNlIHRoZSBhcmd1bWVudHMKKyAgICAgICAgYXJncyA9IF9nZXRfYXJncyhjb21tYW5kKQorICAgICAgICBwYXJzZV9yZXN1bHRzID0gc2VsZi5wYXJzZV9hcmd1bWVudHMoYXJncywgd29yZHMsIDEsIHNjb3BlcywKKyAgICAgICAgICAgICAgICBhcmdfZGF0YSwgZmllbGRzLCBhY3Rpb25zLCBwcmVmaXhfbWF0Y2hlcywgY29tbWFuZCkKKworICAgICAgICBpZiBwYXJzZV9yZXN1bHRzOgorICAgICAgICAgICAgZm9yIHBhcnNlX3Jlc3VsdCBpbiBwYXJzZV9yZXN1bHRzOgorICAgICAgICAgICAgICAgIHdvcmRzX2NvbnN1bWVkLCBwcmVmaXhfbWF0Y2hlcywgc2NvcGVzLCBhcmdfZGF0YSwgZmllbGRzLCBhY3Rpb25zID0gcGFyc2VfcmVzdWx0CisgICAgICAgICAgICAgICAgaWYgd29yZHNfY29uc3VtZWQgPT0gbGVuKHdvcmRzKToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVfY29tcGxldGVfY29tbWFuZChwcmVmaXhfbWF0Y2hlcywgc2NvcGVzLCBhcmdfZGF0YSwgZmllbGRzLCBhY3Rpb25zLCBjb21tYW5kKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHdvcmQgPSB3b3Jkc1t3b3Jkc19jb25zdW1lZF0KKyAgICAgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVfcGFyc2VfZXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1VuZXhwZWN0ZWQgYWRkaXRpb25hbCBhcmd1bWVudHMgYXQgXCIlcyInICUgd29yZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB3b3Jkc19jb25zdW1lZCsxLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvbW1hbmRIYW5kbGVyLlVORVhQRUNURURfQURESVRJT05BTF9BUkdVTUVOVFNfUFJJT1JJVFkpCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIAorICAgIGRlZiBoYW5kbGVfY29tbWFuZChzZWxmLCB3b3JkcywgdGV4dD1Ob25lKToKKworICAgICAgICAjIENoZWNrIGlmIGl0J3MgYSBubyBjb21tYW5kIGFuZCwgaWYgc28sIGFkanVzdCB0aGUgd29yZHMKKyAgICAgICAgc2VsZi5pc19ub19jb21tYW5kID0gbGVuKHdvcmRzKSA+IDAgYW5kIHdvcmRzWzBdLmxvd2VyKCkgPT0gJ25vJworICAgICAgICBpZiBzZWxmLmlzX25vX2NvbW1hbmQ6CisgICAgICAgICAgICBzZWxmLnByZWZpeCA9IHdvcmRzWzBdCisgICAgICAgICAgICB3b3JkcyA9IHdvcmRzWzE6XQorCisgICAgICAgIHNlbGYud29yZHMgPSB3b3JkcworICAgICAgICBzZWxmLnRleHQgPSB0ZXh0CisKKyAgICAgICAgcmVzdWx0ID0gTm9uZQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGlmIGxlbih3b3JkcykgPiAwOgorICAgICAgICAgICAgICAgIGNvbW1hbmRfd29yZCA9IHdvcmRzWzBdCisgICAgICAgICAgICAgICAgbWF0Y2hpbmdfY29tbWFuZHMgPSBzZWxmLmdldF9tYXRjaGluZ19jb21tYW5kcyhjb21tYW5kX3dvcmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlzX25vX2NvbW1hbmQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kX3JlZ2lzdHJ5KQorICAgICAgICAgICAgICAgIGZvciBtYXRjaGluZ19jb21tYW5kIGluIG1hdGNoaW5nX2NvbW1hbmRzOgorICAgICAgICAgICAgICAgICAgICBjb21tYW5kLCBwcmVmaXhfbWF0Y2ggPSBtYXRjaGluZ19jb21tYW5kCisgICAgICAgICAgICAgICAgICAgIHNlbGYuaGFuZGxlX29uZV9jb21tYW5kKGNvbW1hbmQsIHByZWZpeF9tYXRjaCwgd29yZHMpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuaGFuZGxlX3Vuc3BlY2lmaWVkX2NvbW1hbmQoKQorICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5oYW5kbGVfY29tbWFuZF9yZXN1bHRzKCkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlYnVnIG9yIHNkbnNoLmRlYnVnX2JhY2t0cmFjZToKKyAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKKyAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoZSwgZXJyb3IuQ29tbWFuZEVycm9yKToKKyAgICAgICAgICAgICAgICByZXN1bHQgPSBzZWxmLmhhbmRsZV9jb21tYW5kX2Vycm9yKGUpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYuaGFuZGxlX2V4Y2VwdGlvbihlKQorCisgICAgICAgIHJldHVybiByZXN1bHQKKworCitjbGFzcyBDb21tYW5kRXhlY3V0b3IoQ29tbWFuZEhhbmRsZXIpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYpOgorICAgICAgICBzdXBlcihDb21tYW5kRXhlY3V0b3IsIHNlbGYpLl9faW5pdF9fKCkKKyAgICAgICAgc2VsZi5tYXRjaGVzID0gW10KKworICAgICNkZWYgZ2V0X2RlZmF1bHRfYXR0cmlidXRlX25hbWUoc2VsZik6CisgICAgIyAgICByZXR1cm4gJ2RlZmF1bHQtZm9yLW5vJyBpZiBzZWxmLmlzX25vX2NvbW1hbmQgZWxzZSAnZGVmYXVsdCcKKyAgICAKKyAgICBkZWYgaGFuZGxlX3Vuc3BlY2lmaWVkX2NvbW1hbmQoc2VsZik6CisgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRJbnZvY2F0aW9uRXJyb3IoJ05vIGNvbW1hbmQgc3BlY2lmaWVkJykKKworICAgIGRlZiBoYW5kbGVfY29tbWFuZF9lcnJvcihzZWxmLCBlKToKKyAgICAgICAgcmVzdWx0ID0gc2Ruc2guZXJyb3JfbXNnKHN0cihlKSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgZGVmIGhhbmRsZV9leGNlcHRpb24oc2VsZiwgZSk6CisgICAgICAgIGlmIHNkbnNoLmRlYnVnIG9yIHNkbnNoLmRlYnVnX2JhY2t0cmFjZToKKyAgICAgICAgICAgIHRyYWNlYmFjay5wcmludF9leGMoKQorICAgICAgICByYWlzZSBlCisKKyAgICBkZWYgaGFuZGxlX2NvbXBsZXRlX2NvbW1hbmQoc2VsZiwgcHJlZml4X21hdGNoZXMsIHNjb3BlcywgYXJnX2RhdGEsIGZpZWxkcywgYWN0aW9ucywgY29tbWFuZCk6CisgICAgICAgIHNlbGYubWF0Y2hlcy5hcHBlbmQoKHByZWZpeF9tYXRjaGVzLCBzY29wZXMsIGFyZ19kYXRhLCBmaWVsZHMsIGFjdGlvbnMsIGNvbW1hbmQpKQorCisgICAgZGVmIGhhbmRsZV9jb21tYW5kX3Jlc3VsdHMoc2VsZik6CisKKyAgICAgICAgaWYgbGVuKHNlbGYubWF0Y2hlcykgPT0gMDoKKyAgICAgICAgICAgICMgTm8gbWF0Y2hpbmcgY29tbWFuZC4gV2UgbmVlZCB0byBydW4gdGhyb3VnaCB0aGUgcGFyc2UKKyAgICAgICAgICAgICMgZXJyb3JzIHdlJ3ZlIGNvbGxlY3RlZCB0byB0cnkgdG8gZmlndXJlIG91dCB0aGUgYmVzdCBlcnJvcgorICAgICAgICAgICAgIyBtZXNzYWdlIHRvIHVzZS4gVGhlIHNpbXBsZSBoZXVyaXN0aWMgd2UgdXNlIGlzIHRoYXQgd2UnbGwKKyAgICAgICAgICAgICMgYXNzdW1lIHRoYXQgZXJyb3JzIHRoYXQgbWF0Y2hlZCB0aGUgbW9zdCBjb21tYW5kIHdvcmRzCisgICAgICAgICAgICAjIGJlZm9yZSBoaXR0aW5nIGEgcGFyc2UgZXJyb3IgYXJlIHRoZSBtb3N0IHJlbGV2YW50LCBzbworICAgICAgICAgICAgIyB0aG9zZSBhcmUgdGhlIG9uZXMgd2UnbGwgcHJpbnQuIElmIGl0J3MgYSBwYXJzZSBlcnJvcgorICAgICAgICAgICAgIyBiZWNhdXNlIGl0IGRpZG4ndCBtYXRjaCBhIGxpdGVyYWwgdG9rZW4gKGkuZS4gYXMgb3Bwb3NlZAorICAgICAgICAgICAgIyB0byBhIHZhbGlkYXRpb24gZXJyb3IpLCB0aGVuIHdlJ2xsIGNvbGxlY3QgYWxsIG9mIHRoZQorICAgICAgICAgICAgIyB2YWxpZCB0b2tlbnMgYW5kIHByaW50IGEgc2luZ2xlIGVycm9yIG1lc3NhZ2UgZm9yIGFsbCBvZgorICAgICAgICAgICAgIyB0aGVtLiBPdGhlcndpc2Ugd2UnbGwgcHJpbnQgb3V0IGFsbCBvZiB0aGUgaW5kaXZpZHVhbAorICAgICAgICAgICAgIyBlcnJvciBtZXNzYWdlLiBUaGlzIGlzbid0IGdyZWF0LCBiZWNhdXNlIGluIGEgbG90IG9mCisgICAgICAgICAgICAjIGNhc2VzIHRoZXJlIHdlJ2xsIGJlIG11bHRpcGxlIGVycm9yIG1lc3NhZ2VzLCB3aGljaCAKKyAgICAgICAgICAgICMgbWF5IGJlIGVpdGhlciBjb25mbGljdGluZyBvciBhbG1vc3QgaWRlbnRpY2FsIChpZGVudGljYWwKKyAgICAgICAgICAgICMgbWVzc2FnZXMgYXJlIGVsaW1pbmF0ZWQgYmVjYXVzZSB3ZSB1c2UgYSBzZXQgd2hlbiB3ZQorICAgICAgICAgICAgIyBjb2xsZWN0IHRoZSBwYXJzZSBlcnJvcnMpLgorICAgICAgICAgICAgbW9zdF93b3Jkc19tYXRjaGVkID0gLTEKKyAgICAgICAgICAgIGhpZ2hlc3RfcHJpb3JpdHkgPSAtMQorICAgICAgICAgICAgYWNjdW11bGF0ZWRfZXJyb3JfbWVzc2FnZXMgPSBbXQorICAgICAgICAgICAgYWNjdW11bGF0ZWRfZXhwZWN0ZWRfdG9rZW5zID0gW10KKyAgICAgICAgICAgIGZvciBlcnJvcl9tZXNzYWdlLCB3b3Jkc19tYXRjaGVkLCBwcmlvcml0eSwgZXhwZWN0ZWRfdG9rZW5zIGluIHNlbGYucGFyc2VfZXJyb3JzOgorICAgICAgICAgICAgICAgIGlmIHdvcmRzX21hdGNoZWQgPiBtb3N0X3dvcmRzX21hdGNoZWQ6CisgICAgICAgICAgICAgICAgICAgICMgV2UgZm91bmQgYW4gZXJyb3IgdGhhdCBtYXRjaGVkIG1vcmUgd29yZHMgdGhhbgorICAgICAgICAgICAgICAgICAgICAjIHRoZSBvdGhlciBlcnJvcnMgd2UndmUgc2VlbiBzbyBmYXIsIHNvIHJlc2V0CisgICAgICAgICAgICAgICAgICAgICMgdGhlIGhpZ2hlc3QgcHJpb3JpdHksIHNvIHdlJ2xsIHN0YXJ0IGxvb2tpbmcgZm9yCisgICAgICAgICAgICAgICAgICAgICMgdGhlIG5ldyBoaWdoZXN0IHByaW9yaXR5IGF0IHRoZSBjdXJyZW50IHdvcmQgbWF0Y2ggbGV2ZWwuCisgICAgICAgICAgICAgICAgICAgICMgdGhlIHZhcmlhYmxlIHdlJ3JlIHVzaW5nIHRvIGNvbGxlY3QgdGhlIGVycm9yCisgICAgICAgICAgICAgICAgICAgICMgbWVzc2FnZXMgYW5kIGV4cGVjdGVkIHRva2VucworICAgICAgICAgICAgICAgICAgICBtb3N0X3dvcmRzX21hdGNoZWQgPSB3b3Jkc19tYXRjaGVkCisgICAgICAgICAgICAgICAgICAgIGhpZ2hlc3RfcHJpb3JpdHkgPSAtMQorICAgICAgICAgICAgICAgIGlmIHdvcmRzX21hdGNoZWQgPT0gbW9zdF93b3Jkc19tYXRjaGVkOgorICAgICAgICAgICAgICAgICAgICBpZiBwcmlvcml0eSA+IGhpZ2hlc3RfcHJpb3JpdHk6CisgICAgICAgICAgICAgICAgICAgICAgICAjIFdlIGZvdW5kIGEgaGlnaGVyIHByaW9yaXR5IGVycm9yLCBzbyBjbGVhciB0aGUKKyAgICAgICAgICAgICAgICAgICAgICAgICMgYWNjdW11bGF0ZWQgZXJyb3JzIGFuZCBleHBlY3RlZCB0b2tlbnMuCisgICAgICAgICAgICAgICAgICAgICAgICBhY2N1bXVsYXRlZF9lcnJvcl9tZXNzYWdlcyA9IFtdCisgICAgICAgICAgICAgICAgICAgICAgICBhY2N1bXVsYXRlZF9leHBlY3RlZF90b2tlbnMgPSBbXQorICAgICAgICAgICAgICAgICAgICAgICAgaGlnaGVzdF9wcmlvcml0eSA9IHByaW9yaXR5CisgICAgICAgICAgICAgICAgICAgIGlmIHdvcmRzX21hdGNoZWQgPT0gbW9zdF93b3Jkc19tYXRjaGVkIGFuZCBwcmlvcml0eSA9PSBoaWdoZXN0X3ByaW9yaXR5OgorICAgICAgICAgICAgICAgICAgICAgICAgIyBDb2xsZWN0IHRoZSBlcnJvciBtZXNzYWdlIGFuZCBjaGVjayB0byBzZWUgaWYgdGhlcmUncworICAgICAgICAgICAgICAgICAgICAgICAgIyBhbiBleHBlY3RlZCB0b2tlbiBhbmQgaWYgYWxsIG9mIHRoZSBlcnJvcnMgYXQgdGhpcyBsZXZlbAorICAgICAgICAgICAgICAgICAgICAgICAgIyBzbyBmYXIgYWxzbyBoYWQgZXhwZWN0ZWQgdG9rZW5zLiBJZiB0aGVyZSdzIGFueSBlcnJvcgorICAgICAgICAgICAgICAgICAgICAgICAgIyB0aGF0IGRvZXNuJ3QgaGF2ZSBhbiBleHBlY3RlZCB0b2tlbiwgdGhlbiB3ZSByZXZlcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICMgdG8gdGhlIG1vZGUgd2hlcmUgd2UnbGwgcHJpbnQgYWxsIG9mIHRoZSBpbmRpdmlkdWFsCisgICAgICAgICAgICAgICAgICAgICAgICAjIGVycm9yIG1lc3NhZ2VzLgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgZXhwZWN0ZWRfdG9rZW5zIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIF9pc19zdHJpbmcoZXhwZWN0ZWRfdG9rZW5zKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdG9rZW5zID0gW2V4cGVjdGVkX3Rva2Vuc10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIGlzaW5zdGFuY2UoZXhwZWN0ZWRfdG9rZW5zLCB0dXBsZSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVkX3Rva2VucyA9IGxpc3QoZXhwZWN0ZWRfdG9rZW5zKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjY3VtdWxhdGVkX2V4cGVjdGVkX3Rva2VucyArPSBleHBlY3RlZF90b2tlbnMKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjdW11bGF0ZWRfZXJyb3JfbWVzc2FnZXMuYXBwZW5kKGVycm9yX21lc3NhZ2UpCisgICAgICAgICAgICAKKyAgICAgICAgICAgICMgV2UndmUgY29sbGVjdGVkIHRoZSBlcnJvcnMgYW5kIHRoZSBleHBlY3RlZCB0b2tlbnMuIE5vdyB3ZQorICAgICAgICAgICAgIyBqdXN0IG5lZWQgdG8gZm9ybWF0IHRoZSBlcnJvciBtZXNzYWdlIHRvIHVzZSB3aXRoIHRoZQorICAgICAgICAgICAgIyBDb21tYW5kU3ludGF4RXJyb3IgZXhjZXB0aW9uLgorICAgICAgICAgICAgZXJyb3JfbWVzc2FnZSA9ICcnCisgICAgICAgICAgICBpZiBhY2N1bXVsYXRlZF9leHBlY3RlZF90b2tlbnM6CisgICAgICAgICAgICAgICAgd29yZCA9IHNlbGYud29yZHNbbW9zdF93b3Jkc19tYXRjaGVkXQorICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgKz0gJ1VuZXhwZWN0ZWQgYXJndW1lbnQgXCIlc1wiOyBleHBlY3RlZCAnICUgd29yZAorICAgICAgICAgICAgICAgIGV4cGVjdGVkX3Rva2VucyA9IFsnIicgKyBleHBlY3RlZF90b2tlbiArICciJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZXhwZWN0ZWRfdG9rZW4gaW4gYWNjdW11bGF0ZWRfZXhwZWN0ZWRfdG9rZW5zXQorICAgICAgICAgICAgICAgIGlmIGxlbihleHBlY3RlZF90b2tlbnMpID4gMToKKyAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfdG9rZW5zLnNvcnQoKQorICAgICAgICAgICAgICAgICAgICBlcnJvcl9tZXNzYWdlICs9ICdvbmUgb2YgJworICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgKz0gJygnICsgJywgJy5qb2luKGV4cGVjdGVkX3Rva2VucykgKyAnKScKKyAgICAgICAgICAgIGZvciBtZXNzYWdlIGluIGFjY3VtdWxhdGVkX2Vycm9yX21lc3NhZ2VzOgorICAgICAgICAgICAgICAgIGlmIGVycm9yX21lc3NhZ2U6CisgICAgICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgKz0gJ1xuJworICAgICAgICAgICAgICAgIGVycm9yX21lc3NhZ2UgKz0gbWVzc2FnZQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRTeW50YXhFcnJvcihlcnJvcl9tZXNzYWdlKQorCisgICAgICAgICMgVGhlcmUgbWF5IGJlIG11bHRpcGxlIHJlc3VsdHMuIFdlIG5lZWQgdG8gZmlndXJlIG91dCBpdCB0aGVyZSdzCisgICAgICAgICMgYW4gdW5hbWJpZ3VvdXMgbWF0Y2guIFRoZSBoZXVyaXN0aWMgd2UgdXNlIGlzIHRvIGl0ZXJhdGUgb3ZlcgorICAgICAgICAjIHRoZSBjb21tYW5kIHdvcmRzIGFuZCB0cnkgdG8gZmluZCBhIHNpbmdsZSByZXN1bHQgd2hpY2ggaGFzIGFuCisgICAgICAgICMgZXhhY3QgbWF0Y2ggb24gdGhlIHdvcmQgd2hpbGUgYWxsIHRoZSBvdGhlcnMgYXJlIHByZWZpeCBtYXRjaGVzLgorICAgICAgICAjIElmIHRoZXJlIGFyZSBtdWx0aXBsZSByZXN1bHRzIHRoYXQgYXJlIGV4YWN0IG1hdGNoZXMsIHRoZW4gd2UKKyAgICAgICAgIyBkaXNjYXJkIHRoZSBvdGhlciByZXN1bHRzIHRoYXQgd2VyZSBwcmVmaXggbWF0Y2hlcyBhbmQgY29udGludWUKKyAgICAgICAgIyB3aXRoIHRoZSBuZXh0IGNvbW1hbmQgd29yZC4gSWYgYXQgYW4gaXRlcmF0aW9uIGFsbCBvZiB0aGUKKyAgICAgICAgIyByZXN1bHRzIGFyZSBwcmVmaXggbWF0Y2hlcyBmb3IgdGhlIGN1cnJlbnQgd29yZCwgdGhlbiB3ZSBjaGVjaworICAgICAgICAjIGFsbCBvZiB0aGUgZnVsbCB0b2tlbnMgdGhhdCB3ZXJlIHByZWZpeCBtYXRjaGVkIGJ5IHRoZSBjb21tYW5kCisgICAgICAgICMgd29yZC4gSWYgYWxsIG9mIHRoZSByZXN1bHRzIGhhdmUgdGhlIHNhbWUgZnVsbCB0b2tlbiwgdGhlbiB3ZQorICAgICAgICAjIGNvbnRpbnVlLiBJZiB0aGVyZSBhcmUgbXVsdGlwbGUgZnVsbCB0b2tlbnMsIHRoZW4gdGhhdCdzCisgICAgICAgICMgaW5kaWNhdGl2ZSBvZiBhbiBhbWJpZ3VvdXMgY29tbWFuZCwgc28gd2UgYnJlYWsgb3V0IG9mIHRoZSBsb29wCisgICAgICAgICMgYW5kIHJhaXNlIGFuIGFtYmlndW91cyBjb21tYW5kIGV4Y2VwdGlvbi4KKyAgICAgICAgdW5hbWJpZ3VvdXNfbWF0Y2ggPSBOb25lCisgICAgICAgIGlmIGxlbihzZWxmLm1hdGNoZXMpID4gMToKKyAgICAgICAgICAgIG5hcnJvd2VkX21hdGNoZXMgPSBzZWxmLm1hdGNoZXMKKyAgICAgICAgICAgIGZvciBpIGluIHJhbmdlKGxlbihzZWxmLndvcmRzKSk6CisgICAgICAgICAgICAgICAgZXhhY3RfbWF0Y2hfbWF0Y2hlcyA9IFtdCisgICAgICAgICAgICAgICAgcHJlZml4X21hdGNoX21hdGNoZXMgPSBbXQorICAgICAgICAgICAgICAgIHByZWZpeF9tYXRjaF9mdWxsX3Rva2VucyA9IHt9CisgICAgICAgICAgICAgICAgZm9yIG1hdGNoIGluIG5hcnJvd2VkX21hdGNoZXM6CisgICAgICAgICAgICAgICAgICAgIHByZWZpeF9tYXRjaGVzID0gbWF0Y2hbMF0KKyAgICAgICAgICAgICAgICAgICAgZm9yIHByZWZpeF9tYXRjaCBpbiBwcmVmaXhfbWF0Y2hlczoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHByZWZpeF9tYXRjaFswXSA9PSBpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWZpeF9tYXRjaF9tYXRjaGVzLmFwcGVuZChtYXRjaCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKHByZWZpeF9tYXRjaFsxXSkgPT0gZGljdDogIyByZWd1bGFyIGV4cHJlc3Npb24KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBzaW1pbGFyIHRvIF9nZXRfY29tbWFuZF90aXRsZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bGxfdG9rZW4gPSBwcmVmaXhfbWF0Y2hbMV1bJ3RpdGxlJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdWxsX3Rva2VuID0gcHJlZml4X21hdGNoWzFdLmxvd2VyKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmVmaXhfbWF0Y2hfZnVsbF90b2tlbnNbZnVsbF90b2tlbl0gPSBOb25lCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0X21hdGNoX21hdGNoZXMuYXBwZW5kKG1hdGNoKQorICAgICAgICAgICAgICAgIGlmIGxlbihleGFjdF9tYXRjaF9tYXRjaGVzKSA9PSAxOgorICAgICAgICAgICAgICAgICAgICB1bmFtYmlndW91c19tYXRjaCA9IGV4YWN0X21hdGNoX21hdGNoZXNbMF0KKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICBlbGlmIGxlbihleGFjdF9tYXRjaF9tYXRjaGVzKSA+IDE6CisgICAgICAgICAgICAgICAgICAgIG5hcnJvd2VkX21hdGNoZXMgPSBleGFjdF9tYXRjaF9tYXRjaGVzCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgIyBObyBleGFjdCBtYXRjaGVzLCBjaGVjayB0byBzZWUgaWYgdGhlIHByZWZpeCBtYXRjaGVzCisgICAgICAgICAgICAgICAgICAgICMgYXJlIGFsbCBwcmVmaXhlcyBmb3IgdGhlIHNhbWUgdG9rZW4uIElmIHNvLCB0aGVuIGxldAorICAgICAgICAgICAgICAgICAgICAjIHRoZSBwcm9jZXNzIGNvbnRpbnVlIHdpdGggdGhlIG5leHQgd29yZCBpbiB0aGUgY29tbWFuZC4KKyAgICAgICAgICAgICAgICAgICAgIyBPdGhlcndpc2UgaXQncyBhbiBhbWJpZ3VvdXMgY29tbWFuZC4KKyAgICAgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbihwcmVmaXhfbWF0Y2hfbWF0Y2hlcykgPiAxCisgICAgICAgICAgICAgICAgICAgIGlmIGxlbihwcmVmaXhfbWF0Y2hfZnVsbF90b2tlbnMpID4gMToKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgIG5hcnJvd2VkX21hdGNoZXMgPSBwcmVmaXhfbWF0Y2hfbWF0Y2hlcworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIElmIHdlIHJlYWNoIHRoZSBlbmQgb2YgdGhlIHdvcmRzIHdpdGhvdXQgZWl0aGVyIGZpbmRpbmcgYW4KKyAgICAgICAgICAgICAgICAjIHVuYW1iaWd1b3VzIHJlc3VsdCBvciB0aGUgd29yZCB3aGljaCB3YXMgYW1iaWd1b3VzIHRoZW4gdGhhdAorICAgICAgICAgICAgICAgICMgbWVhbnMgdGhhdCBtdWx0aXBsZSBjb21tYW5kIGRlc2NyaXB0aW9ucyAob3IgbXVsdGlwbGUKKyAgICAgICAgICAgICAgICAjIGNob2ljZXMvcGF0aCB0aHJvdWdoIGEgc2luZ2xlIGNvbW1hbmQgZGVzY3JpcHRpb24pIGhhZCB0aGUKKyAgICAgICAgICAgICAgICAjIGV4YWN0IHNhbWUgbWF0Y2ggdG9rZW5zLCB3aGljaCBtZWFucyB0aGF0IHRoZXJlIGFyZQorICAgICAgICAgICAgICAgICMgY29uZmxpY3RpbmcgY29tbWFuZCBkZXNjcmlwdGlvbnMsIHdoaWNoIGlzIGEgYnVnIGluIHRoZQorICAgICAgICAgICAgICAgICMgY29tbWFuZCBkZXNjcmlwdGlvbnMuCisgICAgICAgICAgICAgICAgaWYgc2Ruc2guZGVidWcgb3Igc2Ruc2guZGVidWdfYmFja3RyYWNlIG9yIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgICAgICAgICBmb3IgbiBpbiBuYXJyb3dlZF9tYXRjaGVzOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgX2xpbmUoKSwgblsxXVswXVsnc2VsZiddCisgICAgICAgICAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZEFtYmlndW91c0Vycm9yKCdNdWx0aXBsZSBjb21tYW5kIGRlc2NyaXB0aW9uIG1hdGNoJykKKworICAgICAgICAgICAgaWYgdW5hbWJpZ3VvdXNfbWF0Y2ggaXMgTm9uZToKKyAgICAgICAgICAgICAgICBhc3NlcnQgcHJlZml4X21hdGNoX2Z1bGxfdG9rZW5zIGlzIG5vdCBOb25lCisgICAgICAgICAgICAgICAgYXNzZXJ0IGxlbihwcmVmaXhfbWF0Y2hfZnVsbF90b2tlbnMpID4gMQorICAgICAgICAgICAgICAgIHF1b3RlZF9mdWxsX3Rva2VucyA9IFsnIicgKyBmdWxsX3Rva2VuICsgJyInCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBmdWxsX3Rva2VuIGluIHByZWZpeF9tYXRjaF9mdWxsX3Rva2Vuc10KKyAgICAgICAgICAgICAgICAjIHB5bGludDogZGlzYWJsZT1XMDYzMQorICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRBbWJpZ3VvdXNFcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICdBbWJpZ3VvdXMgY29tbWFuZCB3b3JkICIlcyI7IG1hdGNoZXMgWyVzXScgJQorICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYud29yZHNbaV0sICcsICcuam9pbihxdW90ZWRfZnVsbF90b2tlbnMpKSkKKworICAgICAgICBlbHNlOgorICAgICAgICAgICAgdW5hbWJpZ3VvdXNfbWF0Y2ggPSBzZWxmLm1hdGNoZXNbMF0KKworICAgICAgICBwcmVmaXhfbWF0Y2hlcywgc2NvcGVzLCBhcmdfZGF0YSwgZmllbGRzLCBhY3Rpb25zLCBjb21tYW5kID0gdW5hbWJpZ3VvdXNfbWF0Y2gKKworICAgICAgICAjIFhYWCBQb3NzaWJseSBhIGJldHRlciBtZXRob2Qgb2YgZGVjaWRpbmcgd2hlbiB0byBsb29vayBkZWVwZXIKKyAgICAgICAgIyBpbiB0aGUgc2NvcGVzIHdvdWxkIGJlIGEgZ29vZCBpZGVhLgorICAgICAgICBpZiBmaWVsZHMgPT0gTm9uZSBvciBsZW4oZmllbGRzKSA9PSAwOgorICAgICAgICAgICAgZmllbGRzID0gX2xvb2t1cF9pbl9zY29wZXMoJ2ZpZWxkcycsIHNjb3BlcykKKworICAgICAgICBpbnZvY2F0aW9uX3Njb3BlID0geworICAgICAgICAgICAgJ2RhdGEnOiBhcmdfZGF0YSwKKyAgICAgICAgICAgICdmaWVsZHMnOiBmaWVsZHMsCisgICAgICAgICAgICAnaXMtbm8tY29tbWFuZCc6IHNlbGYuaXNfbm9fY29tbWFuZCwKKyAgICAgICAgICAgICdjdXJyZW50LW1vZGUtb2JqLXR5cGUnOiBzZG5zaC5nZXRfY3VycmVudF9tb2RlX29ial90eXBlKCksCisgICAgICAgICAgICAnY3VycmVudC1tb2RlLW9iai1pZCc6IHNkbnNoLmdldF9jdXJyZW50X21vZGVfb2JqKCkKKyAgICAgICAgfQorCisgICAgICAgICNzY29wZXMgPSBbaW52b2NhdGlvbl9zY29wZV0gKyBzY29wZXMKKyAgICAgICAgYXNzZXJ0IGFjdGlvbnMgaXMgbm90IE5vbmUKKyAgICAgICAgaWYgbGVuKGFjdGlvbnMpID09IDA6CisgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcignTm8gYWN0aW9uIHNwZWNpZmllZCcsIGNvbW1hbmQpCisgICAgICAgICNpZiB2YWxpZF9hcmdzOgorICAgICAgICAjICAgIHNjb3BlcyA9IHZhbGlkX2FyZ3MgKyBzY29wZXMKKyAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZWJ1ZyBkZXRhaWxzCisgICAgICAgICAgICBwcmludCAiQ29tbWFuZCBTZWxlY3RlZDogJXMiICUgY29tbWFuZFsnc2VsZiddCisKKyAgICAgICAgY29tYmluZWRfcmVzdWx0ID0gTm9uZQorICAgICAgICBmb3IgYWN0aW9uIGluIGFjdGlvbnM6CisgICAgICAgICAgICBhY3Rpb25fcHJvYywgYWN0aW9uX3Njb3BlcyA9IGFjdGlvbgorICAgICAgICAgICAgc2NvcGVzID0gW2ludm9jYXRpb25fc2NvcGVdICsgYWN0aW9uX3Njb3BlcworICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246CisgICAgICAgICAgICAgICAgcHJpbnQgJ0FjdGlvbjogJywgYWN0aW9uX3Byb2MKKyAgICAgICAgICAgIHJlc3VsdCA9IF9jYWxsX3Byb2MoYWN0aW9uX3Byb2MsIGFjdGlvbl9yZWdpc3RyeSwgc2NvcGVzLCBjb21tYW5kKQorICAgICAgICAgICAgaWYgcmVzdWx0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgIGNvbWJpbmVkX3Jlc3VsdCA9IGNvbWJpbmVkX3Jlc3VsdCArIHJlc3VsdCBpZiBjb21iaW5lZF9yZXN1bHQgZWxzZSByZXN1bHQKKworICAgICAgICAjIFNpbmNlIGEgc3VjY2Vzc2Z1bCAnbm8nIGNvbW1hbmQgbWF5IHJlbW92ZSBhbiBvYmplY3QsCisgICAgICAgICMgYWZ0ZXIgYSBubyBjb21tYW5kIGNvbXBsZXRlJ3MgYWxsIGl0cyBhY3Rpb25zLCB2ZXJpZnkKKyAgICAgICAgIyB0aGUgZXhpc3RhbmNlIG9mIGV2ZXJ5IG9iamVjdCBpbiB0aGUgbW9kZSBzdGFjay4gIAorICAgICAgICAjIFBvcCBhbnkgbmVzdGVkIG1vZGVzIHdoZXJlIHRoZSBvYmplY3QgaXMgbWlzc2luZy4KKyAgICAgICAgaWYgc2VsZi5pc19ub19jb21tYW5kOgorICAgICAgICAgICAgIyBzdGFydGluZyBhdCB0aGUgbW9zdCBuZXN0ZWQgc3VibW9kZSBsZXZlbCwgZGV0ZXJtaW5lIGlmIHRoZQorICAgICAgICAgICAgIyBjdXJyZW50IHN1Ym1vZGUgb2JqZWN0IHN0aWxsIGV4aXN0cworICAgICAgICAgICAgYW55X3JlbW92ZWQgPSBGYWxzZQorICAgICAgICAgICAgZm9yIGluZGV4IGluIHJldmVyc2VkKHJhbmdlKGxlbihzZG5zaC5tb2RlX3N0YWNrKSkpOgorICAgICAgICAgICAgICAgIG1vZGUgPSBzZG5zaC5tb2RlX3N0YWNrW2luZGV4XQorICAgICAgICAgICAgICAgIGlmIG1pLm9ial90eXBlX2luX3VzZV9hc19yZWxhdGVkX2NvbmZpZ190eXBlKG1vZGUuZ2V0KCdvYmpfdHlwZScpKToKKyAgICAgICAgICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnQ09ORklHIFRZUEU6JywgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZS5nZXQoJ29ial90eXBlJyksIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pLm9ial90eXBlX2luX3VzZV9hc19yZWxhdGVkX2NvbmZpZ190eXBlKG1vZGUuZ2V0KCdvYmpfdHlwZScpKQorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAgICAgaWYgbW9kZS5nZXQoJ29ial90eXBlJykgYW5kIG1vZGUuZ2V0KCdvYmonKToKKyAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgc2Ruc2guZ2V0X29iamVjdF9mcm9tX3N0b3JlKG1vZGVbJ29ial90eXBlJ10sIG1vZGVbJ29iaiddKQorICAgICAgICAgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAjIHBvcCB0aGlzIGl0ZW0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICdOTyBMT1NUIE9CSkVDVCAnLCBtb2RlLmdldCgnb2JqX3R5cGUnKSwgbW9kZS5nZXQoJ29iaicpCisgICAgICAgICAgICAgICAgICAgICAgICBkZWwgc2Ruc2gubW9kZV9zdGFja1tpbmRleF0KKyAgICAgICAgICAgICAgICAgICAgICAgIGFueV9yZW1vdmVkID0gVHJ1ZQorCisgICAgICAgICAgICBpZiBhbnlfcmVtb3ZlZDoKKyAgICAgICAgICAgICAgICBzZG5zaC53YXJuaW5nKCJzdWJtb2RlIGV4aXRlZCBkdWUgdG8gZGVsZXRlZCBvYmplY3QiKQorICAgICAgICAgICAgICAgIHNkbnNoLnVwZGF0ZV9wcm9tcHQoKQorCisgICAgICAgIHJldHVybiBjb21iaW5lZF9yZXN1bHQKKworCitjbGFzcyBDb21tYW5kQ29tcGxldGVyKENvbW1hbmRIYW5kbGVyKToKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXRhX2NvbXBsZXRpb24gPSBGYWxzZSk6CisgICAgICAgIHN1cGVyKENvbW1hbmRDb21wbGV0ZXIsIHNlbGYpLl9faW5pdF9fKCkKKyAgICAgICAgc2VsZi5tZXRhX2NvbXBsZXRpb24gPSBtZXRhX2NvbXBsZXRpb24KKyAgICAgICAgc2VsZi5jb21wbGV0aW9ucyA9IHt9CisKKyAgICBkZWYgZ2V0X2RlZmF1bHRfdmFsdWUoc2VsZiwgYXJnKToKKyAgICAgICAgZGVmYXVsdCA9IGFyZy5nZXQoJ2RlZmF1bHQnKQorICAgICAgICBpZiBzZWxmLmlzX25vX2NvbW1hbmQgYW5kIGRlZmF1bHQgaXMgTm9uZSBhbmQgJ2ZpZWxkJyBpbiBhcmc6CisgICAgICAgICAgICBkZWZhdWx0ID0gbWkuZmllbGRfY3VycmVudF9vYmpfdHlwZV9kZWZhdWx0X3ZhbHVlKGFyZ1snZmllbGQnXSkKKyAgICAgICAgICAgIGlmIGRlZmF1bHQgIT0gTm9uZToKKyAgICAgICAgICAgICAgICBkZWZhdWx0ID0gc3RyKE5vbmUpCisgICAgICAgIHJldHVybiBkZWZhdWx0CisKKyAgICBkZWYgY29tcGxldGVfaGVscChzZWxmLCBhcmdfc2NvcGVzKToKKyAgICAgICAgIiIiCisgICAgICAgIFNlbGVjdCB0aGUgbW9zdCBhcHByb3ByaWF0ZSBsb2NhbGl6ZWQgdGV4dCB0byBhc3NvY2lhdGUgd2l0aAorICAgICAgICB0aGUgY29tcGxldGlvbi1yZWFzb24gZm9yIHNvbWUgY29tcGxldGlvbi10ZXh0CisgICAgICAgICIiIgorICAgICAgICBjX2hlbHAgPSBfbG9va3VwX2luX3Njb3BlcygnY29ucGxldGlvbi10ZXh0JywgYXJnX3Njb3BlcykKKyAgICAgICAgaWYgY19oZWxwOgorICAgICAgICAgICAgcmV0dXJuIGNfaGVscAorICAgICAgICBjX2hlbHAgPSBfbG9va3VwX2luX3Njb3Blcygnc3ludGF4LWhlbHAnLCBhcmdfc2NvcGVzKQorICAgICAgICBpZiBjX2hlbHA6CisgICAgICAgICAgICByZXR1cm4gY19oZWxwCisgICAgICAgIGNfaGVscCA9IF9sb29rdXBfaW5fc2NvcGVzKCdhbGwtaGVscCcsIGFyZ19zY29wZXMpCisgICAgICAgIGlmIGNfaGVscDoKKyAgICAgICAgICAgIHJldHVybiAnIScgKyBjX2hlbHAKKyAgICAgICAgY19oZWxwID0gX2xvb2t1cF9pbl9zY29wZXMoJ3Nob3J0LWhlbHAnLCBhcmdfc2NvcGVzKQorICAgICAgICBpZiBjX2hlbHA6CisgICAgICAgICAgICByZXR1cm4gY19oZWxwCisgICAgICAgIHJldHVybiAnIDxoZWxwIG1pc3Npbmc+ICVzJyAlICBfbG9va3VwX2luX3Njb3Blcygnc2VsZicsIGFyZ19zY29wZXMpCisKKworICAgIGRlZiBjb21wbGV0aW9uX3NldChzZWxmLCBjb21wbGV0aW9ucywgdGV4dCwgcmVhc29uKToKKyAgICAgICAgIiIiCisgICAgICAgIEluIHNpdHVhdGlvbnMgd2hlcmUgbXVsdGlwbGUgY29tbWFuZHMgbWF0Y2ggZm9yIHNvbWUgY29tcGxldGlvbgorICAgICAgICB0ZXh0LCB0aGUgbGFzdCBjb21tYW5kLWl0ZXJhdGVkLW92ZXIgd2lsbCBwb3B1bGF0ZSB0aGUgdGV4dCBmb3IKKyAgICAgICAgdGhlIGNvbXBsZXRpb24gZGljdGlvbmFyeS4gIFVzZSB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSAKKyAgICAgICAgY29tcGxldGlvbiBzdHJpbmcgZm9yIHRoaXMgY29tbWFuZCB0byBpZGVudGlmeSB3aGVuIHRoZSB0ZXh0CisgICAgICAgIHJlcHJlc2VudHMgdGhlIG1vc3QgImJhc2UiIHZhcmlhbnQgb2YgdGhlIGNvbW1hbmQgdG8gZGlzcGxheQorICAgICAgICBmb3IgY29tcGxldGlvbiBoZWxwIHRleHQuCisKKyAgICAgICAgV2hlbiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBzdHJpbmcgaXMgYSAnIScsIHRoZSBwcmludGluZworICAgICAgICBwcm9jZWR1cmVzIG11c3QgZHJvcCB0aGUgZmlyc3QgY2hhcmFjdGVyLgorICAgICAgICAiIiIKKyAgICAgICAgaWYgY29tcGxldGlvbnMgPT0gTm9uZToKKyAgICAgICAgICAgIGNvbXBsZXRpb25zID0ge3RleHQgOiByZWFzb259CisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgY3VycmVudF90ZXh0ID0gY29tcGxldGlvbnMuZ2V0KHRleHQpCisgICAgICAgICMgY3VycmVudF90ZXh0IGNvdWxkIHBvc3NpYmx5IGJlIE5vbmUgZnJvbSB0aGUgbG9va3VwCisgICAgICAgIGlmIGN1cnJlbnRfdGV4dCAhPSBOb25lIGFuZCBjdXJyZW50X3RleHRbMF0gPT0gJyEnOgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGNvbXBsZXRpb25zW3RleHRdID0gcmVhc29uCisKKworICAgIGRlZiBjb21tYW5kX2hlbHBfdGV4dChzZWxmLCBjb21tYW5kKToKKyAgICAgICAgY19oZWxwID0gY29tbWFuZC5nZXQoJ2FsbC1oZWxwJykKKyAgICAgICAgaWYgY19oZWxwOgorICAgICAgICAgICAgaWYgY19oZWxwWzBdICE9ICchJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gJyEnICsgY19oZWxwCisgICAgICAgICAgICByZXR1cm4gY19oZWxwCisgICAgICAgIGNfaGVscCA9IGNvbW1hbmQuZ2V0KCdzaG9ydC1oZWxwJykKKyAgICAgICAgcmV0dXJuIGNfaGVscAorCisKKyAgICBkZWYgaGFuZGxlX3Vuc3BlY2lmaWVkX2NvbW1hbmQoc2VsZik6CisgICAgICAgIGNhbmRpZGF0ZXMgPSBzZWxmLmdldF9tYXRjaGluZ19jb21tYW5kcyhzZWxmLnRleHQsIHNlbGYuaXNfbm9fY29tbWFuZCwgY29tbWFuZF9yZWdpc3RyeSkKKyAgICAgICAgZm9yIGNhbmRpZGF0ZSBpbiBjYW5kaWRhdGVzOgorICAgICAgICAgICAgc2VsZi5jb21wbGV0aW9uX3NldChzZWxmLmNvbXBsZXRpb25zLCBjYW5kaWRhdGVbMF1bJ25hbWUnXSArICcgJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb21tYW5kX2hlbHBfdGV4dChjYW5kaWRhdGVbMF0pKQorCisgICAgZGVmIGhhbmRsZV9pbmNvbXBsZXRlX2NvbW1hbmQoc2VsZiwgYXJnLCBhcmdfc2NvcGVzLCBhcmdfZGF0YSwgZmllbGRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZF90YWcsIGNvbW1hbmQpOgorCisgICAgICAgIGNvbXBsZXRpb25zID0gTm9uZQorICAgICAgICB0YWcgPSBhcmcuZ2V0KCd0YWcnKQorICAgICAgICBsb3dlcl90ZXh0ID0gc2VsZi50ZXh0Lmxvd2VyKCkKKworICAgICAgICBpZiB0YWcgaXMgbm90IE5vbmUgYW5kIG5vdCBwYXJzZWRfdGFnOgorICAgICAgICAgICAgaWYgdGFnLmxvd2VyKCkuc3RhcnRzd2l0aChsb3dlcl90ZXh0KToKKyAgICAgICAgICAgICAgICBpZiBjb21wbGV0aW9ucyA9PSBOb25lOgorICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9ucyA9IHt9CisgICAgICAgICAgICAgICAgY29tcGxldGlvbnNbdGFnICsgJyAnXSA9IHNlbGYuY29tcGxldGVfaGVscChhcmdfc2NvcGVzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgdG9rZW4gPSBhcmcuZ2V0KCd0b2tlbicpCisgICAgICAgICAgICB0eXBlX25hbWUgPSBhcmcuZ2V0KCd0eXBlJykKKyAgICAgICAgICAgIGlmIHR5cGVfbmFtZSA9PSBOb25lOgorICAgICAgICAgICAgICAgIHR5cGVfbmFtZSA9IGFyZy5nZXQoJ2Jhc2UtdHlwZScpCisgICAgICAgICAgICB0eXBlZGVmID0gdHlwZWRlZl9yZWdpc3RyeS5nZXQodHlwZV9uYW1lKSBpZiB0eXBlX25hbWUgZWxzZSBOb25lCisKKyAgICAgICAgICAgICMgU2VlIGlmIHRoaXMgYXJndW1lbnQgaXMgYW4gZW51bWVyYXRlZCB2YWx1ZS4gVGhpcyBjYW4gZWl0aGVyCisgICAgICAgICAgICAjIGJlIGJ5IGEgdHlwZS92YWx1ZXMgc3BlY2lmaWVkIGlubGluZSBpbiB0aGUgYXJndW1lbnQgb3IgdmlhCisgICAgICAgICAgICAjIGFuIGVudW0gdHlwZWRlZi4gU28gZmlyc3Qgd2UgY2hlY2sgZm9yIHRob3NlIHR3byBjYXNlcyBhbmQKKyAgICAgICAgICAgICMgZ2V0IHRoZSBvYmplY3QgdGhhdCBjb250YWlucyB0aGUgdmFsdWVzLCBlaXRoZXIgdGhlIGFyZ3VtZW50CisgICAgICAgICAgICAjIGl0c2VsZiBvciB0aGUgdHlwZWRlZi4KKyAgICAgICAgICAgIGVudW1fb2JqID0gTm9uZQorICAgICAgICAgICAgaWYgdG9rZW4gaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgdG9rZW4ubG93ZXIoKS5zdGFydHN3aXRoKGxvd2VyX3RleHQpOgorICAgICAgICAgICAgICAgICAgICBpZiBjb21wbGV0aW9ucyA9PSBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbnMgPSB7fQorICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uc1t0b2tlbiArICcgJ10gPSBzZWxmLmNvbXBsZXRlX2hlbHAoYXJnX3Njb3BlcykKKyAgICAgICAgICAgIGVsaWYgdHlwZV9uYW1lID09ICdlbnVtJzoKKyAgICAgICAgICAgICAgICBlbnVtX29iaiA9IGFyZworICAgICAgICAgICAgZWxpZiB0eXBlZGVmOgorICAgICAgICAgICAgICAgICMgTm90ZTogVGhpcyBkb2Vzbid0IHJlY3Vyc2l2ZWx5IGNoZWNrIHVwIHRoZSB0eXBlIGhpZXJhcmNoeSwKKyAgICAgICAgICAgICAgICAjIGJ1dCBpdCBkb2Vzbid0IHNlZW0gbGlrZSBhIHZhbGlkIHVzZSBjYXNlIHRvIGhhdmUgbW9yZSB0aGFuCisgICAgICAgICAgICAgICAgIyBvbmUgbGV2ZWwgb2YgaW5oZXJpdGFuY2UgZm9yIGVudW1lcmF0aW9ucywgc28gaXQgc2hvdWxkIGJlIE9LLgorICAgICAgICAgICAgICAgIGJhc2VfdHlwZSA9IHR5cGVkZWYuZ2V0KCdiYXNlLXR5cGUnKQorICAgICAgICAgICAgICAgIGlmIGJhc2VfdHlwZSA9PSAnZW51bSc6CisgICAgICAgICAgICAgICAgICAgIGVudW1fb2JqID0gdHlwZWRlZgorCisgICAgICAgICAgICAjIElmIHdlIGhhdmUgYW4gZW51bSBvYmplY3QsIHRoZW4gZ2V0IHRoZSB2YWx1ZXMgYW5kCisgICAgICAgICAgICAjIGJ1aWxkIHRoZSBjb21wbGV0aW9uIGxpc3QKKyAgICAgICAgICAgIGlmIGVudW1fb2JqOgorICAgICAgICAgICAgICAgIGVudW1fdmFsdWVzID0gZW51bV9vYmouZ2V0KCd2YWx1ZXMnKQorICAgICAgICAgICAgICAgIGlmIGVudW1fdmFsdWVzOgorICAgICAgICAgICAgICAgICAgICBpZiBfaXNfc3RyaW5nKGVudW1fdmFsdWVzKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGVudW1fdmFsdWVzID0gKGVudW1fdmFsdWVzLCkKKyAgICAgICAgICAgICAgICAgICAgIyBlbnVtX3ZhbHVlcyBtYXkgYmUgZWl0aGVyIGEgYXJyYXkvdHVwbGUgb2Ygc3RyaW5ncyBvcgorICAgICAgICAgICAgICAgICAgICAjIGVsc2UgYSBkaWN0IHdob3NlIGtleXMgYXJlIHRoZSBlbnVtIHN0cmluZ3MuIEluIGJvdGgKKyAgICAgICAgICAgICAgICAgICAgIyBjYXNlcyB3ZSBjYW4gdXNlIHRoZSBmb3IgbG9vcCB0byBpdGVyYXRlIG92ZXIgdGhlCisgICAgICAgICAgICAgICAgICAgICMgZW51bSBzdHJpbmcgbmFtZXMgdG8gYmUgdXNlZCBmb3IgY29tcGxldGlvbi4KKyAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbnMgPSB7fQorICAgICAgICAgICAgICAgICAgICBmb3IgZW51bV92YWx1ZSBpbiBlbnVtX3ZhbHVlczoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGVudW1fdmFsdWUubG93ZXIoKS5zdGFydHN3aXRoKGxvd2VyX3RleHQpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zW2VudW1fdmFsdWUgKyAnICddID0gXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmNvbXBsZXRlX2hlbHAoYXJnX3Njb3BlcykKKworICAgICAgICAgICAgaWYgY29tcGxldGlvbnMgPT0gTm9uZSBvciBsZW4oY29tcGxldGlvbnMpID09IDA6CisgICAgICAgICAgICAgICAgIyBDaGVjayB0byBzZWUgaWYgdGhlcmUncyBhIGN1c3RvbSBjb21wbGV0aW9uIHByb2MKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9uX3Byb2MgPSBfbG9va3VwX2luX3Njb3BlcygnY29tcGxldGlvbicsIGFyZ19zY29wZXMpCisgICAgICAgICAgICAgICAgaWYgY29tcGxldGlvbl9wcm9jOgorICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9ucyA9IHt9CisgICAgICAgICAgICAgICAgICAgIGN1cnJfb2JqX3R5cGUgPSBzZG5zaC5nZXRfY3VycmVudF9tb2RlX29ial90eXBlKCkKKyAgICAgICAgICAgICAgICAgICAgY3Vycl9vYmpfaWQgICA9IHNkbnNoLmdldF9jdXJyZW50X21vZGVfb2JqKCkKKyAgICAgICAgICAgICAgICAgICAgY29tbWFuZF9tb2RlID0gY29tbWFuZC5nZXQoJ21vZGUnKQorICAgICAgICAgICAgICAgICAgICBpZiBjb21tYW5kX21vZGUgYW5kIGNvbW1hbmRfbW9kZVstMV0gPT0gJyonOgorICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZF9tb2RlID0gY29tbWFuZF9tb2RlWzotMV0KKyAgICAgICAgICAgICAgICAgICAgaWYgY29tbWFuZF9tb2RlIGFuZCBzZG5zaC5jdXJyZW50X21vZGUoKSAhPSBjb21tYW5kX21vZGU6CisgICAgICAgICAgICAgICAgICAgICAgICAjIHRoaXMgaXMgY29tcGxldGluZyBhIGRpZmZlcmVudCBpdGVtIG9uIHRoZSBzdGFjay4KKyAgICAgICAgICAgICAgICAgICAgICAgICMgWFhYIG5lZWRzIGJldHRlciBhcGkncyBoZXJlLgorICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRfaW5fbW9kZV9zdGFjayA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBzZG5zaC5tb2RlX3N0YWNrOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHhbJ21vZGVfbmFtZSddID09IGNvbW1hbmRfbW9kZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRfaW5fbW9kZV9zdGFjayA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vycl9vYmpfdHlwZSA9IHhbJ29ial90eXBlJ10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vycl9vYmpfaWQgICA9IHhbJ29iaiddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgZm91bmRfaW5fbW9kZV9zdGFjazoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcigKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdVbmFibGUgdG8gZmluZCBtb2RlICVzJyAlIGNvbW1hbmRfbW9kZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kKQorCisgICAgICAgICAgICAgICAgICAgIGludm9jYXRpb25fc2NvcGUgPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAnd29yZHMnOiBzZWxmLndvcmRzLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3RleHQnOiBzZWxmLnRleHQsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YSc6IGFyZ19kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb25zJzogY29tcGxldGlvbnMsCisgICAgICAgICAgICAgICAgICAgICAgICAnaXMtbm8tY29tbWFuZCc6IHNlbGYuaXNfbm9fY29tbWFuZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdtb2RlJyA6IGNvbW1hbmRfbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdjdXJyZW50LW1vZGUtb2JqLXR5cGUnOiBjdXJyX29ial90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnQtbW9kZS1vYmotaWQnOiBjdXJyX29ial9pZCwKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICBhcmdfc2NvcGVzLmluc2VydCgwLCBpbnZvY2F0aW9uX3Njb3BlKQorICAgICAgICAgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogIyBmb3IgZGV1YnVnZ2luZywgcHJpbnQgY29tbWFuZCBuYW1lCisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCBjb21tYW5kWydzZWxmJ10sIGNvbXBsZXRpb25fcHJvYworICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICBfcmVzdWx0ID0gX2NhbGxfcHJvYyhjb21wbGV0aW9uX3Byb2MsIGNvbXBsZXRpb25fcmVnaXN0cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ19zY29wZXMsIGNvbW1hbmQpCisgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBUeXBlRXJyb3IsIGU6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZG5zaC5kZWJ1ZyBvciBzZG5zaC5kZWJ1Z19iYWNrdHJhY2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgIklzc3VlOiAiLCBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X2V4YygpCisgICAgICAgICAgICAgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcigiVW5hYmxlIHRvIGNhbGwgY29tcGxldGlvbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kKQorCisgICAgICAgICAgICBpZiAoY29tcGxldGlvbnMgPT0gTm9uZSBvciBsZW4oY29tcGxldGlvbnMpID09IDAgb3Igc2VsZi5tZXRhX2NvbXBsZXRpb24pIGFuZCBub3Qgc2VsZi50ZXh0OgorICAgICAgICAgICAgICAgICMgVE9ETzogSXQncyBub3QgY2xlYXIgaW4gdGhpcyBjYXNlIGhvdyB0byBkZXRlY3QgaWYgYQorICAgICAgICAgICAgICAgICMgcGFydGlhbGx5IGVudGVyZWQgYXJndW1lbnQgY2FuIHJlYWxseSBtYXRjaCB0aGlzIGFyZ3VtZW50LAorICAgICAgICAgICAgICAgICMgc28gd2UgKGNvbnNlcnZhdGl2ZWx5KSBvbmx5IGluY2x1ZGUgdGhlc2UgY29tcGxldGlvbiB0ZXh0CisgICAgICAgICAgICAgICAgIyBzdHJpbmdzIHdoZW4gdGhlcmUncyBubyBwYXJ0aWFsIHRleHQgZm9yIHRoZSBhcmd1bWVudCwgd2hpY2gKKyAgICAgICAgICAgICAgICAjIGlzIHdoeSB3ZSBoYXZlIHRoZSBhYm92ZSBjaGVjayBmb3Igc2VsZi50ZXh0CisKKyAgICAgICAgICAgICAgICAjIE5vdGU6IFdlIHdhbnQgdG8gYWxsb3cgTm9uZSBmb3IgdGhlIHZhbHVlIG9mIGNvbXBsZXRpb24tdGV4dAorICAgICAgICAgICAgICAgICMgdG8gbWVhbiB0aGF0IGNvbXBsZXRpb24gc2hvdWxkIGJlIGRpc2FibGVkIGZvciB0aGUgYXJndW1lbnQsCisgICAgICAgICAgICAgICAgIyBzbyB3ZSB1c2UgRmFsc2UgZm9yIHRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBnZXQgbWV0aG9kLgorICAgICAgICAgICAgICAgICMgVGhlbiBpZiB0aGUgY29tcGxldGlvbi10ZXh0IGlzIG5vdCBzZXQgaW4gdGhlIGFyZyB0aGUKKyAgICAgICAgICAgICAgICAjICJpZiBub3QgY29tcGxldGlvbl90ZXh0IiBjaGVja3Mgd2lsbCBiZSBUcnVlLCBzbyB3ZSdsbCB0cnkgdG8KKyAgICAgICAgICAgICAgICAjIHNldCB0aGUgY29tcGxldGlvbiB0ZXh0IHRvIHRoZSBoZWxwLW5hbWUgb3IgZmllbGQgdmFsdWUuCisgICAgICAgICAgICAgICAgY29tcGxldGlvbl90ZXh0ID0gYXJnLmdldCgnY29tcGxldGlvbi10ZXh0JywgRmFsc2UpCisgICAgICAgICAgICAgICAgaWYgY29tcGxldGlvbl90ZXh0IGlzIG5vdCBOb25lOgorICAgICAgICAgICAgICAgICAgICAjIEZJWE1FOiBQcm9iYWJseSBzaG91bGRuJ3QgdXNlIHN5bnRheCBoZWxwIGhlcmUuIFRoYXQKKyAgICAgICAgICAgICAgICAgICAgIyBzaG91bGQgcHJvYmFibHkgYmUgcmVzZXJ2ZWQgZm9yIHByaW50aW5nIGFkZGl0aW9uYWwKKyAgICAgICAgICAgICAgICAgICAgIyBzeW50YXggaGVscCBmb3IgdGhlIGFyZ3VtZW50LCBkdWggKHByZXN1bWFibHkgc29tZSBsb25nZXIKKyAgICAgICAgICAgICAgICAgICAgIyBkZXNjcmlwdGl2ZSB0ZXh0IGZvciB0aGUgYXJndW1lbnQpLgorICAgICAgICAgICAgICAgICAgICBpZiBub3QgY29tcGxldGlvbl90ZXh0OgorICAgICAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvbl90ZXh0ID0gYXJnLmdldCgnaGVscC1uYW1lJykKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGNvbXBsZXRpb25fdGV4dDoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25fdGV4dCA9IHRhZyBpZiB0YWcgZWxzZSBhcmcuZ2V0KCdmaWVsZCcpCisgICAgICAgICAgICAgICAgICAgIHN5bnRheF9oZWxwID0gYXJnLmdldCgnc3ludGF4LWhlbHAnKQorICAgICAgICAgICAgICAgICAgICBpZiBzeW50YXhfaGVscCA9PSBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4X2hlbHAgPSAnQWRkIHN5bnRheC1oZWxwICVzIGF0ICVzJyAlIChjb21tYW5kWydzZWxmJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uX3RleHQpCisgICAgICAgICAgICAgICAgICAgICAgICAjIGV4Y2x1ZGUgZW51bSwgc2luY2UgdGhlIHZhbHVlcyB3aWxsIGluY2x1ZGVkIGFzIHRleHQKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHR5cGVkZWYgYW5kIHR5cGVfbmFtZSAhPSAnZW51bSc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3ludGF4X2hlbHAgPSB0eXBlZGVmLmdldCgnaGVscC1uYW1lJykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBzeW50YXhfaGVscCA9PSBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW50YXhfaGVscCA9ICcgPCcgKyB0eXBlX25hbWUgKyAnPiAnICMgYWRkIGRlbGltCisKKyAgICAgICAgICAgICAgICAgICAgaWYgY29tcGxldGlvbl90ZXh0IGFuZCBzeW50YXhfaGVscDoKKyAgICAgICAgICAgICAgICAgICAgICAgICNhbmQgY29tcGxldGlvbl90ZXh0LnN0YXJ0c3dpdGgobG93ZXJfdGV4dCk6CisgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9uX3RleHQgPSAnIDwnICsgY29tcGxldGlvbl90ZXh0ICsgJz4gJyAjIGFkZF9kZWxpbQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgY29tcGxldGlvbnMgPT0gTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wbGV0aW9ucyA9IHt9CisgICAgICAgICAgICAgICAgICAgICAgICAjIFRoZSB1c2Ugb2YgdHVwbGUgaGVyZSBhcyBoZSBpbmRleCBwcm92aWRlcyBhIG1ldGhvZAorICAgICAgICAgICAgICAgICAgICAgICAgIyBvZiBpZGVudGlmeWluZyB0aGUgY29tcGxldGlvbiB2YWx1ZXMgd2hpY2ggYXJlIAorICAgICAgICAgICAgICAgICAgICAgICAgIyAnbWV0YS1pbmZvcm1hdGlvbicsIGFuZCBub3QgdG8gYmUgY29tcGxldGVkIGFnYWluc3QKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zWyhjb21wbGV0aW9uX3RleHQsIHN5bnRheF9oZWxwKV0gPSBzeW50YXhfaGVscAorCisgICAgICAgIGlmIGNvbXBsZXRpb25zIGFuZCBsZW4oY29tcGxldGlvbnMpID4gMDoKKyAgICAgICAgICAgIGZvciAoY29tcGxldGlvbiwgdGV4dCkgaW4gY29tcGxldGlvbnMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBzZWxmLmNvbXBsZXRpb25fc2V0KHNlbGYuY29tcGxldGlvbnMsIGNvbXBsZXRpb24sIHRleHQpCisKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGRlZiBoYW5kbGVfY29tcGxldGVfY29tbWFuZChzZWxmLCBwcmVmaXhfbWF0Y2hlcywgc2NvcGVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmdfZGF0YSwgZmllbGRzLCBhY3Rpb25zLCBjb21tYW5kKToKKyAgICAgICAgaWYgbm90IHNlbGYudGV4dDoKKyAgICAgICAgICAgICMgY29tcGxldGUgY29tbWFuZCwgaW50ZW50aW9uYWxseSB1c2UgdGhlIHNob3J0LWhlbHAgYXNzb2NpYXRlZAorICAgICAgICAgICAgIyB3aXRoIHRoZSB0b3AgbGV2ZWwgb2YgdGhpcyBjb21tYW5kLgorICAgICAgICAgICAgIyBUaGUgdXNlIG9mIHR1cGxlIGhlcmUgYXMgaGUgaW5kZXggcHJvdmlkZXMgYSBtZXRob2QKKyAgICAgICAgICAgICMgb2YgaWRlbnRpZnlpbmcgdGhlIGNvbXBsZXRpb24gdmFsdWVzIHdoaWNoIGFyZSAKKyAgICAgICAgICAgICMgJ21ldGEtaW5mb3JtYXRpb24nLCBhbmQgbm90IHRvIGJlIGNvbXBsZXRlZCBhZ2FpbnN0CisgICAgICAgICAgICBzZWxmLmNvbXBsZXRpb25zWygnIDxjcj4gJywgJzxjcj4nICldID0gY29tbWFuZC5nZXQoJ3Nob3J0LWhlbHAnKQorCisgICAgZGVmIGhhbmRsZV9jb21tYW5kX2Vycm9yKHNlbGYsIGUpOgorICAgICAgICAjIEZvciBjb21wbGV0aW9uIGlnbm9yZSBhbGwgZXJyb3JzIGV4Y2VwdGlvbiBmb3Igb25lcyB0aGF0IGFyZQorICAgICAgICAjIGluZGljYXRpdmUgb2YgYW4gZXJyb3IgaW4gdGhlIGNvbW1hbmQgZGVzY3JpcHRpb24sIHdoaWNoIHdpbGwKKyAgICAgICAgIyAoaG9wZWZ1bGx5KSBiZSBmb3VuZCBieSB0aGUgZGV2ZWxvcGVyIHdoaWxlIGRlYnVnZ2luZyB0aGUKKyAgICAgICAgIyBjb21tYW5kIGRlc2NyaXB0aW9uLgorICAgICAgICBpZiBpc2luc3RhbmNlKGUsIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKToKKyAgICAgICAgICAgIHNkbnNoLnByaW50X2NvbXBsZXRpb25faGVscChzZG5zaC5lcnJvcl9tc2coc3RyKGUpKSkKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlYnVnIG9yIHNkbnNoLmRlYnVnX2JhY2t0cmFjZToKKyAgICAgICAgICAgICAgICB0cmFjZWJhY2sucHJpbnRfZXhjKCkKKworCisgICAgZGVmIHByaW50X2NvbXBsZXRpb25zKHNlbGYsIGNvbXBsZXRpb25zKToKKyAgICAgICAgIiIiCisgICAgICAgIFByaW50IHRoZSBjb21wbGV0aW9ucyBvdXJzZWx2ZXMgaW4gc29ydGVkIG11bHRpcGxlIGNvbHVtbiBmb3JtYXQuCisgICAgICAgIFdlIHVzZSB0aGlzIHdoZW4gdGhlIGNvbXBsZXRpb25zIGFyZSBhcmUgcHNldWRvL2hlbHAgY29tcGxldGlvbnMKKyAgICAgICAgdGhhdCBhcmVuJ3QgcmVhbCB0b2tlbnMgdGhhdCB3ZSB3YW50IHJlYWRsaW5lIHRvIHVzZSBmb3IKKyAgICAgICAgY29tcGxldGlvbnMuCisgICAgICAgICIiIgorICAgICAgICBtZXRhX2NvbXBsZXRpb25zID0gW2NvbXBsZXRpb25bMF0gaWYgaXNpbnN0YW5jZShjb21wbGV0aW9uLCB0dXBsZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGNvbXBsZXRpb24gZm9yIGNvbXBsZXRpb24gaW4gY29tcGxldGlvbnNdCisgICAgICAgIG1ldGFfY29tcGxldGlvbnMuc29ydCgpCisKKyAgICAgICAgc2Ruc2gucHJpbnRfY29tcGxldGlvbl9oZWxwKHNkbnNoLmNob2ljZXNfdGV4dF9idWlsZGVyKG1ldGFfY29tcGxldGlvbnMpKQorCisKKyAgICBkZWYgaGFuZGxlX2NvbW1hbmRfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgaWYgc2VsZi5tZXRhX2NvbXBsZXRpb24gPT0gVHJ1ZToKKyAgICAgICAgICAgICMgdHdvLWNvbHVtbiBkaXNwbGF5IG1vZGUKKyAgICAgICAgICAgIHNkbnNoLmNvbXBsZXRpb25fcHJpbnQgPSBGYWxzZQorICAgICAgICAgICAgaWYgbGVuKHNlbGYuY29tcGxldGlvbnMpOgorICAgICAgICAgICAgICAgIG1heF90b2tlbl9sZW4gPSAwCisgICAgICAgICAgICAgICAgZm9yIGNvbXBsZXRpb24gaW4gc2VsZi5jb21wbGV0aW9uczoKKyAgICAgICAgICAgICAgICAgICAgaXRlbSA9IGNvbXBsZXRpb24KKyAgICAgICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZShjb21wbGV0aW9uLCB0dXBsZSk6CisgICAgICAgICAgICAgICAgICAgICAgICBpdGVtID0gY29tcGxldGlvblswXQorICAgICAgICAgICAgICAgICAgICBtYXhfdG9rZW5fbGVuID0gbWF4KG1heF90b2tlbl9sZW4sIGxlbihpdGVtKSkKKyAgICAgICAgICAgIHRleHQgPSBbXQorICAgICAgICAgICAgZm9yIGNvbXBsZXRpb24gaW4gc29ydGVkKHNlbGYuY29tcGxldGlvbnMua2V5cygpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtcD11dGlmLmNvbXBsZXRpb25fdHJhaWxpbmdfaW50ZWdlcl9jbXApOgorICAgICAgICAgICAgICAgIGhlbHAgPSBzZWxmLmNvbXBsZXRpb25zW2NvbXBsZXRpb25dCisgICAgICAgICAgICAgICAgaWYgaGVscCBhbmQgaGVscFswXSA9PSAnISc6CisgICAgICAgICAgICAgICAgICAgIGhlbHAgPSBoZWxwWzE6XQorCisgICAgICAgICAgICAgICAgbGVmdF9zaWRlID0gY29tcGxldGlvbgorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY29tcGxldGlvbiwgdHVwbGUpOgorICAgICAgICAgICAgICAgICAgICBsZWZ0X3NpZGUgPSBjb21wbGV0aW9uWzBdCisgICAgICAgICAgICAgICAgdGV4dC5hcHBlbmQoJyUtKnMgJXNcbicgJSAobWF4X3Rva2VuX2xlbiwgbGVmdF9zaWRlLnN0cmlwKCksIGhlbHAuc3RyaXAoKSkpCisgICAgICAgICAgICBzZG5zaC5wcmludF9jb21wbGV0aW9uX2hlbHAoJycuam9pbih0ZXh0KSkKKworICAgICAgICBjb21wbGV0aW9ucyA9IGxpc3Qoc2VsZi5jb21wbGV0aW9ucykKKyAgICAgICAgaWYgbGVuKGNvbXBsZXRpb25zKSA9PSAxOgorICAgICAgICAgICAgY29tcGxldGlvbiA9IGNvbXBsZXRpb25zWzBdCisgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGNvbXBsZXRpb24sIHR1cGxlKToKKyAgICAgICAgICAgICAgICBoZWxwX3RleHQgPSBjb21wbGV0aW9uWzFdCisgICAgICAgICAgICAgICAgaWYgbm90IGhlbHBfdGV4dDoKKyAgICAgICAgICAgICAgICAgICAgaGVscF90ZXh0ID0gY29tcGxldGlvblswXQorICAgICAgICAgICAgICAgIGlmIHNlbGYubWV0YV9jb21wbGV0aW9uID09IEZhbHNlOgorICAgICAgICAgICAgICAgICAgICBzZG5zaC5wcmludF9jb21wbGV0aW9uX2hlbHAoaGVscF90ZXh0KQorICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zID0gTm9uZQorICAgICAgICBlbGlmIGxlbihjb21wbGV0aW9ucykgPiAxOgorICAgICAgICAgICAgIyBTb21lIG9mIHRoZSBjb21wbGV0aW9uIHJlc3VsdHMgYXJlIHJlYWxseSBwc2V1ZG8gY29tcGxldGlvbnMKKyAgICAgICAgICAgICMgdGhhdCBhcmUgbWVhbnQgdG8gYmUgbW9yZSBsaWtlIGEgaGVscCBwcm9tcHQgZm9yIHRoZSB1c2VyIHJhdGhlcgorICAgICAgICAgICAgIyB0aGFuIGFuIGFjdHVhbCB0b2tlbiB0aGF0IHNob3VsZCBiZSB1c2VkIGZvciBjb21wbGV0aW9uIGJ5IHJlYWRsaW5lCisgICAgICAgICAgICAjIElmIGFsbCBvZiB0aGUgY29tcGxldGlvbnMgYXJlIGxpa2UgdGhhdCBhbmQgd2UgcmV0dXJuIHRoZW0gdG8KKyAgICAgICAgICAgICMgcmVhZGxpbmUsIHRoZW4gaXQgd2lsbCBhY3R1YWxseSBjb21wbGV0ZSB0aGUgbGVhZGluZyBwcmVmaXgsIHdoaWNoCisgICAgICAgICAgICAjIHdpbGwgYmUgYXQgbGVhc3QgdGhlIGxlYWRpbmcgJzwnLiBUbyBhdm9pZCB0aGF0IHNpdHVhdGlvbiB3ZSBwcmludAorICAgICAgICAgICAgIyBvdXQgdGhlIGNvbXBsZXRpb25zIG91cnNlbHZlcyB1c2luZyBwcmludF9jb21wbGV0aW9uX2hlbHAgYW5kIHRoZW4KKyAgICAgICAgICAgICMgcmV0dXJuIE5vbmUgZm9yIHRoZSBjb21wbGV0aW9ucy4KKyAgICAgICAgICAgIGFsbF9wc2V1ZG9fY29tcGxldGlvbnMgPSBUcnVlCisgICAgICAgICAgICBmb3IgY29tcGxldGlvbiBpbiBjb21wbGV0aW9uczoKKyAgICAgICAgICAgICAgICBuYW1lID0gY29tcGxldGlvblswXSBpZiBpc2luc3RhbmNlKGNvbXBsZXRpb24sIHR1cGxlKSBlbHNlIGNvbXBsZXRpb24KKyAgICAgICAgICAgICAgICBpZiBub3QgbmFtZS5lbmRzd2l0aCgnPiAnKSBhbmQgbm90IG5hbWUuZW5kc3dpdGgoJz4nKToKKyAgICAgICAgICAgICAgICAgICAgYWxsX3BzZXVkb19jb21wbGV0aW9ucyA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICBpZiBhbGxfcHNldWRvX2NvbXBsZXRpb25zOgorICAgICAgICAgICAgICAgIGlmIHNlbGYubWV0YV9jb21wbGV0aW9uID09IEZhbHNlOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnByaW50X2NvbXBsZXRpb25zKGNvbXBsZXRpb25zKQorICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zID0gTm9uZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBjb21wbGV0aW9ucyA9IFtjb21wbGV0aW9uWzBdIGlmIGlzaW5zdGFuY2UoY29tcGxldGlvbiwgdHVwbGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBjb21wbGV0aW9uIGZvciBjb21wbGV0aW9uIGluIGNvbXBsZXRpb25zXQorCisgICAgICAgIHJldHVybiBjb21wbGV0aW9ucworCisKK2RlZiBkb19jb21tYW5kX2NvbXBsZXRpb24od29yZHMsIHRleHQpOgorICAgIGNvbXBsZXRlciA9IENvbW1hbmRDb21wbGV0ZXIoKQorICAgIGNvbXBsZXRpb25zID0gY29tcGxldGVyLmhhbmRsZV9jb21tYW5kKHdvcmRzLCB0ZXh0KQorICAgIHJldHVybiBjb21wbGV0aW9ucworCisKK2RlZiBkb19jb21tYW5kX2NvbXBsZXRpb25faGVscCh3b3JkcywgdGV4dCk6CisgICAgY29tcGxldGVyID0gQ29tbWFuZENvbXBsZXRlcihtZXRhX2NvbXBsZXRpb24gPSBUcnVlKQorICAgIGNvbXBsZXRpb25zID0gY29tcGxldGVyLmhhbmRsZV9jb21tYW5kKHdvcmRzLCB0ZXh0KQorICAgIHJldHVybiBjb21wbGV0aW9ucworCisKK2RlZiBfY2Fub25pY2FsaXplX3ZhbGlkYXRpb25fcmVzdWx0KHJlc3VsdCk6CisgICAgIiIiCisgICAgVGhlIGNhbm9uaWNhbCAoaS5lLiBtb3N0IGdlbmVyYWwpIHJlcHJlc2VudGF0aW9uIG9mIGEgdmFsaWRhdGlvbgorICAgIHJlc3VsdCBpcyBhIGxpc3Qgb2YgMi1pdGVtIHR1cGxlcyB3aGVyZSB0aGUgZmlyc3QgaXRlbSBpbiB0aGUgdHVwbGUKKyAgICBpcyB0aGUgdmFsaWRhdGVkIHZhbHVlIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gdXBkYXRlIHRoZSBhcmdfZGF0YQorICAgIGFuZCB0aGUgc2Vjb25kIGl0ZW0gaXMgdGhlIGFjdHVhbCB0b2tlbiB0aGF0IHdhcyBtYXRjaGVkLCB3aGljaCBtYXkKKyAgICBub3QgYmUgdGhlIHNhbWUgYXMgdGhlIHdvcmQgaW4gdGhlIGNvbW1hbmQuIEZvciBleGFtcGxlLCBpbiB0aGUKKyAgICByZXN1bHRzIGZvciBhbiBlbnVtIHRoZSB3b3JkIGZyb20gdGhlIGNvbW1hbmQgbWF5IGJlIGEgcHJlZml4IGZvcgorICAgIG9uZSBvZiB0aGUgYWxsb3dlZCB2YWx1ZSBmb3IgdGhlIGVudW0uIEluIHRoYXQgY2FzZSB0aGUgZmlyc3QgaXRlbQorICAgIHdvdWxkIGJlIHRoZSByZXR1cm4gdmFsdWUgZm9yIHRoZSBlbnVtIHZhbHVlIGFuZCB0aGUgc2Vjb25kIGl0ZW0KKyAgICB3aWxsIGJlIHRoZSBmdWxsIGVudW0gdmFsdWUsIGkuZS4gbm90IHRoZSBwcmVmaXggdGhhdCB3YXMgdHlwZWQKKyAgICBpbiB0aGUgY29tbWFuZC4KKworICAgIEJ1dCB0aGVyZSBhcmUgYSBjb3VwbGUgb2Ygc2ltcGxlciByZXByZXNlbnRhdGlvbnMgb2YgdGhlIHZhbGlkYXRpb24KKyAgICByZXN1bHRzLiBGaXJzdCwgdGhlIHJlc3VsdCBjYW4gYmUgYSBzaW1wbGUgc2NhbGFyIHZhbGlkYXRlZCB2YWx1ZS4KKyAgICBUaGlzIGlzIGNvbnZlcnRlZCB0byB0aGUgY2Fub25pY2FsIHJlcHJlc2VudGF0aW9uIGJ5IHR1cm5pbmcgaXQKKyAgICBpbnRvIFsoPHZhbHVlPiwgPHZhbHVlPildLiBTZWNvbmQsIHRoZSBpbnB1dCByZXN1bHQgY2FuIGJlIGp1c3QKKyAgICB0aGUgMi1pdGVtIHR1cGxlLiBUbyBjYW5vbmljYWxpemUgdGhhdCB3ZSBqdXN0IGVuY2xvc2UgaXQgaW4gYQorICAgIGxpc3Q6IFs8dHVwbGUtcmVzdWx0Pl0uCisgICAgIiIiCisgICAgaWYgcmVzdWx0IGlzIE5vbmU6CisgICAgICAgIHJlc3VsdCA9IFtdCisgICAgZWxpZiBfaXNfbGlzdChyZXN1bHQpOgorICAgICAgICBpZiBsZW4ocmVzdWx0KSA+IDAgYW5kIG5vdCBfaXNfbGlzdChyZXN1bHRbMF0pOgorICAgICAgICAgICAgcmVzdWx0ID0gW3Jlc3VsdF0KKyAgICBlbHNlOgorICAgICAgICBtYXRjaGluZ190b2tlbiA9IHJlc3VsdCBpZiBfaXNfc3RyaW5nKHJlc3VsdCkgZWxzZSBzdHIocmVzdWx0KQorICAgICAgICByZXN1bHQgPSBbKHJlc3VsdCwgbWF0Y2hpbmdfdG9rZW4pXQorCisgICAgcmV0dXJuIHJlc3VsdAorCisKK2RlZiBfY29tYmluZV92YWxpZGF0aW9uX3Jlc3VsdHMocmVzdWx0MSwgcmVzdWx0MiwgdHlwZWRlZiwgdmFsdWUpOgorICAgIGlmIHJlc3VsdDEgaXMgbm90IE5vbmU6CisgICAgICAgIHJlc3VsdDEgPSBfY2Fub25pY2FsaXplX3ZhbGlkYXRpb25fcmVzdWx0KHJlc3VsdDEpCisgICAgaWYgcmVzdWx0MiBpcyBub3QgTm9uZToKKyAgICAgICAgcmVzdWx0MiA9IF9jYW5vbmljYWxpemVfdmFsaWRhdGlvbl9yZXN1bHQocmVzdWx0MikKKworICAgIGlmIHJlc3VsdDEgaXMgbm90IE5vbmU6CisgICAgICAgIGlmIHJlc3VsdDIgaXMgbm90IE5vbmU6CisgICAgICAgICAgICByZXN1bHQgPSBbciBmb3IgciBpbiByZXN1bHQxIGlmIHIgaW4gcmVzdWx0Ml0KKyAgICAgICAgICAgIGlmIGxlbihyZXN1bHQpID09IDA6CisgICAgICAgICAgICAgICAgX3JhaXNlX2FyZ3VtZW50X3ZhbGlkYXRpb25fZXhjZXB0aW9uKHR5cGVkZWYsIHZhbHVlLCAibm8gbWF0Y2giKQorICAgICAgICAgICAgI2VsaWYgbGVuKHJlc3VsdCkgPT0gMToKKyAgICAgICAgICAgICMgICAgcmVzdWx0ID0gcmVzdWx0WzBdCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0MQorICAgIGVsaWYgcmVzdWx0MiBpcyBub3QgTm9uZToKKyAgICAgICAgcmV0dXJuIHJlc3VsdDIKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gWyh2YWx1ZSwgdmFsdWUpXQorCisKK2RlZiB2YWxpZGF0ZV90eXBlKHR5cGVfbmFtZSwgdmFsdWUsIHNjb3BlcywgY29tbWFuZCk6CisgICAgIiIiCisgICAgVmFsaWRhdGUgdGhhdCB0aGUgc3BlY2lmaWVkIHZhbHVlIG1hdGNoZXMgdGhlIHZhbGlkYXRpb24gaW4gdGhlCisgICAgc3BlY2lmaWVkIHR5cGUgZGVmaW5pdGlvbiBhbmQgYW55IGluaGVyaXRlZCB0eXBlIGRlZmluaXRpb25zCisgICAgIiIiCisgICAgIyBMb29rIHVwIHRoZSB0eXBlIGRlZmluaXRpb24gYW5kIHBlcmZvcm0gYW55IHZhbGlkYXRpb24gc3BlY2lmaWVkIHRoZXJlCisgICAgdHlwZWRlZiA9IHR5cGVkZWZfcmVnaXN0cnkuZ2V0KHR5cGVfbmFtZSkKKyAgICBpZiBub3QgdHlwZWRlZjoKKyAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZERlc2NyaXB0aW9uRXJyb3IoJ1Vua25vd24gdHlwZTogJXMnICUgdHlwZV9uYW1lKQorCisgICAgdHlwZV9yZXN1bHQgPSBOb25lCisgICAgdmFsaWRhdGlvbl9yZXN1bHQgPSBOb25lCisKKyAgICAjIElmIGl0J3MgYSBzdWJ0eXBlLCB2YWxpZGF0ZSB0aGUgYmFzZSB0eXBlIGZpcnN0CisgICAgYmFzZV90eXBlX25hbWUgPSB0eXBlZGVmLmdldCgnYmFzZS10eXBlJykKKyAgICBpZiBiYXNlX3R5cGVfbmFtZToKKyAgICAgICAgdHlwZV9yZXN1bHQgPSB2YWxpZGF0ZV90eXBlKGJhc2VfdHlwZV9uYW1lLCB2YWx1ZSwgc2NvcGVzLCBjb21tYW5kKQorCisgICAgIyBGSVhNRTogU2VlbXMgbGlrZSB3ZSBzaG91bGRuJ3QgYmUgaGFuZGxpbmcgb2JqLXR5cGUgaGVyZSwgc2luY2UKKyAgICAjIHRoYXQncyBqdXN0IGFuIGF0dHJpYnV0ZSB0aGF0J3Mgc3BlY2lmaWMgdG8gY2VydGFpbiB2YWxpZGF0aW9uCisgICAgIyBwcm9jcy4gU2hvdWxkbid0IHRoYXQgdmFsdWUgYWxyZWFkeSBiZSBhdmFpbGFibGUgaW4gdGhlIHNjb3BlcworICAgICMgdG8gYmUgYWJsZSB0byBwYXNzIHRvIHRoZSBwcm9jPworICAgIG9ial90eXBlID0gX2xvb2t1cF9pbl9zY29wZXMoJ29iai10eXBlJywgc2NvcGVzKQorCisgICAgIyBOb3cgdmFsaWRhdGUgdGhlIHN1YnR5cGUKKyAgICAjIF9jYWxsX3Byb2MgcmVxdWlyZXMgdGhhdCB0aGUgZmlyc3Qgc2NvcGUgYmUgYW4gaW52b2NhdGlvbiBzY29wZSB0aGF0CisgICAgIyBpdCBwb3NzaWJseSBtb2RpZmllcyBieSBzZXR0aW5ncyB0aGUgJ3Njb3BlcycgdmFyaWFibGUsIHNvIHdlIG5lZWQKKyAgICAjIHRvIGluY2x1ZGUgYW4gZW1wdHkgaW52b2NhdGlvbiBzY29wZSBoZXJlCisgICAgaW52b2NhdGlvbl9zY29wZSA9IHt9CisgICAgcGFyYW1ldGVyX3Njb3BlID0geyd0eXBlZGVmJzogdHlwZWRlZiwgJ3ZhbHVlJzogdmFsdWV9CisgICAgaWYgb2JqX3R5cGU6CisgICAgICAgIHBhcmFtZXRlcl9zY29wZVsnb2JqX3R5cGUnXSA9IG9ial90eXBlCisgICAgc2NvcGVzID0gW2ludm9jYXRpb25fc2NvcGUsIHBhcmFtZXRlcl9zY29wZSwgdHlwZWRlZl0KKyAgICB3aGlsZSBiYXNlX3R5cGVfbmFtZSBpcyBub3QgTm9uZToKKyAgICAgICAgYmFzZV90eXBlZGVmID0gdHlwZWRlZl9yZWdpc3RyeS5nZXQoYmFzZV90eXBlX25hbWUpCisgICAgICAgIGlmIG5vdCBiYXNlX3R5cGVkZWY6CisgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcignSW52YWxpZCBiYXNlLXR5cGUgbmFtZTogJXMnICUgYmFzZV90eXBlX25hbWUpCisgICAgICAgIHNjb3Blcy5hcHBlbmQoYmFzZV90eXBlZGVmKQorICAgICAgICBiYXNlX3R5cGVfbmFtZSA9IGJhc2VfdHlwZWRlZi5nZXQoJ2Jhc2UtdHlwZScpCisKKyAgICAjY29tbWFuZF90eXBlID0gY29tbWFuZC5nZXQoJ2NvbW1hbmQtdHlwZScpCisgICAgI2NvbW1hbmRfZGVmYXVsdHMgPSBjb21tYW5kX3R5cGVfZGVmYXVsdHMuZ2V0KGNvbW1hbmRfdHlwZSwge30pCisKKyAgICAjc2NvcGVzLmFwcGVuZChbY29tbWFuZCwgY29tbWFuZF9kZWZhdWx0c10pCisgICAgdmFsaWRhdGlvbiA9IF9sb29rdXBfaW5fc2NvcGVzKCd2YWxpZGF0aW9uJywgc2NvcGVzKQorICAgIGlmIHZhbGlkYXRpb246CisgICAgICAgIHZhbGlkYXRpb25fcmVzdWx0ID0gX2NhbGxfcHJvYyh2YWxpZGF0aW9uLCB2YWxpZGF0aW9uX3JlZ2lzdHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGVzLCBjb21tYW5kKQorICAgICAgICBpZiB2YWxpZGF0aW9uX3Jlc3VsdCBpcyBOb25lOgorICAgICAgICAgICAgdmFsaWRhdGlvbl9yZXN1bHQgPSB2YWx1ZQorCisgICAgcmVzdWx0ID0gX2NvbWJpbmVfdmFsaWRhdGlvbl9yZXN1bHRzKHR5cGVfcmVzdWx0LCB2YWxpZGF0aW9uX3Jlc3VsdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZWRlZiwgdmFsdWUpCisKKyAgICByZXR1cm4gcmVzdWx0CisKKworZGVmIHZhbGlkYXRlX2FyZ3VtZW50KGFyZywgdmFsdWUsIHNjb3BlcywgY29tbWFuZCk6CisKKyAgICB0eXBlX3Jlc3VsdCA9IE5vbmUKKyAgICB2YWxpZGF0aW9uX3Jlc3VsdCA9IE5vbmUKKworICAgICMgVmFsaWRhdGUgYmFzZWQgb24gdGhlIHR5cGUgb2YgdGhlIGFyZ3VtZW50CisgICAgdHlwZV9uYW1lID0gYXJnLmdldCgndHlwZScpCisgICAgaWYgdHlwZV9uYW1lOgorICAgICAgICBpZiB0eXBlX25hbWUgPT0gJ2VudW0nOgorICAgICAgICAgICAgI3ZhbHVlcyA9IGFyZy5nZXQoJ3ZhbHVlcycpCisgICAgICAgICAgICAjcmVzdWx0ID0gdmFsaWRhdGVfZW51bSh7J3ZhbHVlcyc6IHZhbHVlc30sIHZhbHVlKQorICAgICAgICAgICAgdHlwZV9yZXN1bHQgPSBjX3ZhbGlkYXRpb25zLnZhbGlkYXRlX2VudW0oYXJnLCB2YWx1ZSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHR5cGVfcmVzdWx0ID0gdmFsaWRhdGVfdHlwZSh0eXBlX25hbWUsIHZhbHVlLCBzY29wZXMsIGNvbW1hbmQpCisgICAgZWxzZToKKyAgICAgICAgIyBJZiB0aGUgYXJndW1lbnQgZGVzY3JpcHRpb24gc3BlY2lmaWVzIGEgYmFzZS10eXBlIHZhbHVlLCB0aGVuCisgICAgICAgICMgd2UgdHJlYXQgaXQgYXMgYW4gYW5vbnltb3VzIHR5cGVkZWYuCisgICAgICAgICMgRklYTUU6IFNob3VsZCBwcm9iYWJseSBiZSBhYmxlIHRvIHJlZmFjdG9yIHRoaXMgY29kZSBhIGJpdCB0bworICAgICAgICAjIHJlZHVjZSBjb2RlIGR1cGxpY2F0aW9uLgorICAgICAgICBiYXNlX3R5cGVfbmFtZSA9IGFyZy5nZXQoJ2Jhc2UtdHlwZScpCisgICAgICAgIGlmIGJhc2VfdHlwZV9uYW1lOgorICAgICAgICAgICAgYmFzZV90eXBlZGVmID0gdHlwZWRlZl9yZWdpc3RyeS5nZXQoYmFzZV90eXBlX25hbWUpCisgICAgICAgICAgICBpZiBiYXNlX3R5cGVkZWY6CisgICAgICAgICAgICAgICAgdmFsaWRhdGlvbiA9IF9sb29rdXBfdHlwZWRlZl92YWx1ZShiYXNlX3R5cGVkZWYsICd2YWxpZGF0aW9uJykKKyAgICAgICAgICAgICAgICBpZiB2YWxpZGF0aW9uOgorICAgICAgICAgICAgICAgICAgICBzY29wZXMgPSBbeyd0eXBlZGVmJzogYXJnLCAndmFsdWUnOiB2YWx1ZX1dICsgc2NvcGVzCisgICAgICAgICAgICAgICAgICAgIHR5cGVfcmVzdWx0ID0gX2NhbGxfcHJvYyh2YWxpZGF0aW9uLCB2YWxpZGF0aW9uX3JlZ2lzdHJ5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NvcGVzLCBjb21tYW5kKQorICAgICAgICAgICAgICAgICAgICBpZiB0eXBlX3Jlc3VsdCBpcyBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV9yZXN1bHQgPSB2YWx1ZQorCisgICAgIyBQZXJmb3JtIGFueSBjdXN0b20gdmFsaWRhdGUgcHJvYyBpbiB0aGUgYXJndW1lbnQKKyAgICB2YWxpZGF0aW9uID0gYXJnLmdldCgndmFsaWRhdGlvbicpCisgICAgaWYgdmFsaWRhdGlvbjoKKyAgICAgICAgIyBJbmNsdWRlICd0eXBlZGVmJyBpbiB0aGUgbG9jYWwgc2NvcGUgc28gdGhhdCB3ZSBjYW4gdXNlCisgICAgICAgICMgdHlwZWRlZiB2YWxpZGF0aW9uIGZ1bmN0aW9ucyBpbmxpbmUgZm9yIGFyZ3VtZW50cyAoYXMgb3Bwb3NlZCB0bworICAgICAgICAjIHJlcXVpcmluZyBhIHR5cGVkZWYgZGVmaW5pdGlvbikuCisgICAgICAgIHNjb3BlcyA9IFt7J2FyZyc6IGFyZywgJ3R5cGVkZWYnOiBhcmcsICd2YWx1ZSc6IHZhbHVlfV0gKyBzY29wZXMKKyAgICAgICAgdmFsaWRhdGlvbl9yZXN1bHQgPSBfY2FsbF9wcm9jKHZhbGlkYXRpb24sIHZhbGlkYXRpb25fcmVnaXN0cnksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY29wZXMsIGNvbW1hbmQpCisgICAgICAgIGlmIHZhbGlkYXRpb25fcmVzdWx0IGlzIE5vbmU6CisgICAgICAgICAgICB2YWxpZGF0aW9uX3Jlc3VsdCA9IHZhbHVlCisKKyAgICByZXN1bHQgPSBfY29tYmluZV92YWxpZGF0aW9uX3Jlc3VsdHModHlwZV9yZXN1bHQsIHZhbGlkYXRpb25fcmVzdWx0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmcsIHZhbHVlKQorCisgICAgcmV0dXJuIHJlc3VsdAorCisjCisjIENvbW1hbmRTeW50YXhlcjogQ29sbGVjdCBhbGwgdGhlIGNvbW1hbmRzIHdoaWNoICJwcmVmaXggbWF0Y2giIHRoZSB3b3JkcworIworY2xhc3MgQ29tbWFuZFN5bnRheGVyKENvbW1hbmRIYW5kbGVyKToKKyAgICAKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaGVhZGVyKToKKyAgICAgICAgc3VwZXIoQ29tbWFuZFN5bnRheGVyLCBzZWxmKS5fX2luaXRfXygpCisgICAgICAgIGlmIGhlYWRlciBpcyBOb25lOgorICAgICAgICAgICAgaGVhZGVyID0gJycKKyAgICAgICAgc2VsZi5oZWFkZXIgPSBoZWFkZXIKKyAgICAgICAgc2VsZi5pc19ub19jb21tYW5kID0gRmFsc2UKKyAgICAgICAgc2VsZi5jb21tYW5kcyA9IFtdCisKKyAgICBkZWYgYWRkX2tub3duX2NvbW1hbmQoc2VsZiwgY29tbWFuZCk6CisgICAgICAgIHNlbGYuY29tbWFuZHMuYXBwZW5kKGNvbW1hbmQpCisKKyAgICBkZWYgaGFuZGxlX2luY29tcGxldGVfY29tbWFuZChzZWxmLCBhcmcsIGFyZ19zY29wZXMsIGFyZ19kYXRhLCBmaWVsZHMsIHBhcnNlZF90YWcsIGNvbW1hbmQpOgorICAgICAgICBpZiBjb21tYW5kIG5vdCBpbiBzZWxmLmNvbW1hbmRzOgorICAgICAgICAgICAgc2VsZi5jb21tYW5kcy5hcHBlbmQoY29tbWFuZCkKKworICAgIGRlZiBoYW5kbGVfY29tcGxldGVfY29tbWFuZChzZWxmLCBwcmVmaXhfbWF0Y2hlcywgc2NvcGVzLCBhcmdfZGF0YSwgZmllbGRzLCBhY3Rpb25zLCBjb21tYW5kKToKKyAgICAgICAgaWYgY29tbWFuZCBub3QgaW4gc2VsZi5jb21tYW5kczoKKyAgICAgICAgICAgIHNlbGYuY29tbWFuZHMuYXBwZW5kKGNvbW1hbmQpCisgICAgZGVmIGhhbmRsZV9jb21tYW5kX3Jlc3VsdHMoc2VsZik6CisgICAgICAgIGlmIGxlbihzZWxmLmNvbW1hbmRzKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJuICdObyBhcHBsaWNhYmxlIGNvbW1hbmQ6ICVzJyAlICcgJy5qb2luKHNlbGYud29yZHMpCisgICAgICAgIAorICAgICAgICBoZWxwX2xpbmVzID0gWycnXQorCisgICAgICAgIGlmIHNlbGYuaGVhZGVyOgorICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoc2VsZi5oZWFkZXIpCisgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnJykKKworICAgICAgICBoZWxwX3N0cmluZ3MgPSBbXQorICAgICAgICBmb3IgY29tbWFuZCBpbiBzZWxmLmNvbW1hbmRzOgorICAgICAgICAgICAgY29tbWFuZF9oZWxwX3N0cmluZyA9IF9nZXRfY29tbWFuZF9zeW50YXhfaGVscF9zdHJpbmcoCisgICAgICAgICAgICAgICAgICAgIGNvbW1hbmQsIHNlbGYucHJlZml4KQorICAgICAgICAgICAgaWYgdHlwZShjb21tYW5kX2hlbHBfc3RyaW5nKSA9PSBsaXN0OgorICAgICAgICAgICAgICAgIGhlbHBfc3RyaW5ncyArPSBjb21tYW5kX2hlbHBfc3RyaW5nCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGhlbHBfc3RyaW5ncy5hcHBlbmQoY29tbWFuZF9oZWxwX3N0cmluZykKKyAgICAgICAgICAgIAorICAgICAgICAodGVybV9jb2xzLCB0ZXJtX3Jvd3MpID0gc2Ruc2gucHAuZ2V0X3Rlcm1pbmFsX3NpemUoKQorICAgICAgICBmb3IgaCBpbiBzb3J0ZWQoaGVscF9zdHJpbmdzKToKKyAgICAgICAgICAgICMgdXNlIDc1JSBvZiB0aGUgd2lkdGgsIHNpbmNlIHJlZm9ybWF0X2xpbmUgaXNuJ3QgcGVyZmVjdC4KKyAgICAgICAgICAgIHNtYWxsZXJfdGVybV9jb2xzID0gKHRlcm1fY29scyAqIDMpIC8gNAorICAgICAgICAgICAgaWYgbGVuKGgpID4gc21hbGxlcl90ZXJtX2NvbHM6CisgICAgICAgICAgICAgICAgaGVscF9saW5lcyArPSByZWZvcm1hdF9saW5lKGgsIHNtYWxsZXJfdGVybV9jb2xzLCAwLCAwKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZChoKQorICAgICAgICAKKyAgICAgICAgaWYgbGVuKHNlbGYuY29tbWFuZHMpID09IDE6CisgICAgICAgICAgICBzaG9ydF9oZWxwID0gTm9uZQorICAgICAgICAgICAgaWYgc2VsZi5pc19ub19jb21tYW5kOgorICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAjIENvYmJsZSB0b2dldGhlciBhIGhlbHAgc3RyaW5nIGZvciBhIG5vIGNvbW1hbmQsIGJ1aWxkCisgICAgICAgICAgICAgICAgIyBhIGRlZmF1bHQgdmFsdWUgZm9yIHN1YmNvbW1hbmQncywgcG9zc2libHkgb3RoZXIgY29tbWFuZAorICAgICAgICAgICAgICAgICMgZGVzY3JpcHRpb25zCisgICAgICAgICAgICAgICAgIworICAgICAgICAgICAgICAgIHNob3J0X2hlbHAgPSBzZWxmLmNvbW1hbmRzWzBdLmdldCgnbm8taGVscCcpCisgICAgICAgICAgICAgICAgaWYgbm90IHNob3J0X2hlbHA6CisgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRfdHlwZSA9IHNlbGYuY29tbWFuZHNbMF0uZ2V0KCdjb21tYW5kLXR5cGUnKQorICAgICAgICAgICAgICAgICAgICBhY3Rpb24gPSBzZWxmLmNvbW1hbmRzWzBdLmdldCgnYWN0aW9uJykKKyAgICAgICAgICAgICAgICAgICAgaWYgKChjb21tYW5kX3R5cGUgYW5kIGNvbW1hbmRfdHlwZSA9PSAnY29uZmlnLXN1Ym1vZGUnKSBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhY3Rpb24gYW5kIGFjdGlvbiA9PSAncHVzaC1tb2RlLXN0YWNrJykpOgorICAgICAgICAgICAgICAgICAgICAgICAgbW9kZV9uYW1lID0gc2VsZi5jb21tYW5kc1swXS5nZXQoJ25hbWUnKQorICAgICAgICAgICAgICAgICAgICAgICAgc2hvcnRfaGVscCA9ICdSZW1vdmUgJXMgY29uZmlndXJhdGlvbicgJSBtb2RlX25hbWUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2hvcnRfaGVscCA9IHNlbGYuY29tbWFuZHNbMF0uZ2V0KCdzaG9ydC1oZWxwJykKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgc2hvcnRfaGVscDoKKyAgICAgICAgICAgICAgICAjaGVscF9saW5lcy5hcHBlbmQoJycpCisgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoc2hvcnRfaGVscCkKKyAgICAgICAgCisgICAgICAgIHJldHVybiAnXG4nLmpvaW4oaGVscF9saW5lcykKKworCitkZWYgZ2V0X2NvbW1hbmRfc3ludGF4X2hlbHAod29yZHMsIGhlYWRlcj1Ob25lKToKKyAgICBoYW5kbGVyID0gQ29tbWFuZFN5bnRheGVyKGhlYWRlcikKKyAgICAjIEhhY2sgdG8gbWFrZSAiaGVscCBubyIgd29yaworICAgIGlmIGxlbih3b3JkcykgPT0gMSBhbmQgd29yZHNbMF0gPT0gJ25vJzoKKyAgICAgICAgd29yZHMgPSAgd29yZHMgKyBbJyddCisgICAgcmVzdWx0ID0gaGFuZGxlci5oYW5kbGVfY29tbWFuZCh3b3JkcykKKyAgICByZXR1cm4gcmVzdWx0CisKKworZGVmIGdldF9jb21tYW5kX3Nob3J0X2hlbHBfZm9yX3BhdHRlcm4od29yZCk6CisgICAgIyB0cnkgdG8gZmluZCB0aGUgY29tbWFuZCBiYXNlZCBvbiB0aGUgcGF0dGVybi4KKyAgICBmb3IgY29tbWFuZCBpbiBjb21tYW5kX3JlZ2lzdHJ5OgorICAgICAgICBpZiB0eXBlKGNvbW1hbmRbJ25hbWUnXSkgPT0gZGljdDoKKyAgICAgICAgICAgIGlmIGNvbW1hbmRbJ25hbWUnXVsndGl0bGUnXSA9PSB3b3JkOgorICAgICAgICAgICAgICAgIHJldHVybiBjb21tYW5kLmdldCgnc2hvcnQtaGVscCcpCisgICAgCisKK2RlZiBnZXRfY29tbWFuZF9zaG9ydF9oZWxwKHdvcmQpOgorICAgIGhhbmRsZXIgPSBDb21tYW5kSGFuZGxlcigpCisgICAgbWF0Y2hpbmdfY29tbWFuZHMgPSBoYW5kbGVyLmdldF9tYXRjaGluZ19jb21tYW5kcyh3b3JkLCBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbW1hbmRfcmVnaXN0cnkpCisgICAgaWYgbGVuKG1hdGNoaW5nX2NvbW1hbmRzKSA9PSAwOgorICAgICAgICByZXR1cm4gZ2V0X2NvbW1hbmRfc2hvcnRfaGVscF9mb3JfcGF0dGVybih3b3JkKQorCisgICAgaWYgbGVuKG1hdGNoaW5nX2NvbW1hbmRzKSA+PSAxOgorICAgICAgICAjIFRoaXMgd2lsbCBvbmx5IHdvcmsgb25jZSBhbGwgY29tbWFuZHMgaGF2ZSBjb21tYW5kIGRlc2NyaXB0aW9ucy4KKyAgICAgICAgI21hdGNoaW5nX2NvbW1hbmRzWzBdWzBdWydzZWxmJ10sIF9leGFjdF9tb2RlX21hdGNoKGN1cnJlbnRfbW9kZSwKKyAgICAgICAgIyhtYXRjaGluZ19jb21tYW5kc1swXVswXSkuZ2V0KCdtb2RlJykpCisgICAgICAgIHJldHVybiAobWF0Y2hpbmdfY29tbWFuZHNbMF1bMF0pLmdldCgnc2hvcnQtaGVscCcpCisgICAgcmV0dXJuIE5vbmUKKworCitkZWYgZHVtYl9mb3JtYXR0ZXIob3V0LCB0ZXh0LCBsZWZ0LCByaWdodCA9IE5vbmUpOgorICAgICIiIgorICAgIEJ1aWxkIG91dHB1dCBsaW5lcyBmcm9tIHRoZSBwYXNzZWQgaW4gdGV4dC4gIElmIHRoZQorICAgIHRleHQgaGFzIGxlYWRpbmcgc3BhY2VzLCB0aGVuIGxlYXZlIHRoZSBzcGFjZXMgaW50YWN0CisgICAgKHN0YXJ0aW5nIGF0IHRoZSBpbmRlbnQpLgorICAgICIiIgorICAgIGlmIHJpZ2h0ID09IE5vbmU6CisgICAgICAgIChyaWdodCwgbGluZV9sZW5ndGgpID0gc2Ruc2gucHAuZ2V0X3Rlcm1pbmFsX3NpemUoKQorICAgICAgICBpZiByaWdodCAtIDIwID4gbGVmdDogIyBYWFggbmVlZHMgd29yaworICAgICAgICAgICAgcmlnaHQgPSByaWdodCAtIDIwCisgICAgICAgIHJpZ2h0ID0gbWluKHJpZ2h0LCAxMjApCisKKyAgICBsZWZ0X2luZGVudCA9ICcgJyAqIGxlZnQKKyAgICBvdXRfbGVuID0gbGVmdAorICAgIG91dF9saW5lID0gbGVmdF9pbmRlbnQKKworICAgIGZvciBsaW5lIGluIHRleHQuc3BsaXQoJ1xuJyk6CisgICAgICAgIGlmIGxlbihsaW5lKSA9PSAwOgorICAgICAgICAgICAgaWYgb3V0X2xlbiA+IGxlZnQ6CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChvdXRfbGluZSkKKyAgICAgICAgICAgIG91dF9sZW4gPSBsZWZ0CisgICAgICAgICAgICBvdXRfbGluZSA9IGxlZnRfaW5kZW50CisgICAgICAgICAgICBvdXQuYXBwZW5kKCcnKQorICAgICAgICBlbGlmIGxpbmVbMF0gPT0gJyAnOiAgIyBsZWFkaW5nIHNwYWNlcworICAgICAgICAgICAgaWYgb3V0X2xlbiA+IGxlZnQ6CisgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChvdXRfbGluZSkKKyAgICAgICAgICAgIG91dF9sZW4gPSBsZWZ0CisgICAgICAgICAgICBvdXRfbGluZSA9IGxlZnRfaW5kZW50CisgICAgICAgICAgICBvdXQuYXBwZW5kKCBsZWZ0X2luZGVudCArIGxpbmUgKQorICAgICAgICBlbHNlOiAjIHRleHQgZm9ybWF0dGluZworCisgICAgICAgICAgICBmb3Igd29yZCBpbiBsaW5lLnNwbGl0KCk6CisgICAgICAgICAgICAgICAgc2VwID0gJyAnCisgICAgICAgICAgICAgICAgaWYgd29yZC5lbmRzd2l0aCgnLicpOgorICAgICAgICAgICAgICAgICAgICBzZXAgPSAnICAnCisgICAgICAgICAgICAgICAgaWYgbGVuKHdvcmQpICsgb3V0X2xlbiArIGxlbihzZXApID4gcmlnaHQ6CisgICAgICAgICAgICAgICAgICAgIGlmIG91dF9sZW4gPiBsZWZ0OgorICAgICAgICAgICAgICAgICAgICAgICAgb3V0LmFwcGVuZChvdXRfbGluZSkKKyAgICAgICAgICAgICAgICAgICAgb3V0X2xlbiA9IGxlZnQgKyBsZW4od29yZCkgKyBsZW4oc2VwKQorICAgICAgICAgICAgICAgICAgICBvdXRfbGluZSA9IGxlZnRfaW5kZW50ICsgd29yZCArIHNlcAorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIG91dF9saW5lICs9IHdvcmQgKyBzZXAKKyAgICAgICAgICAgICAgICAgICAgb3V0X2xlbiArPSBsZW4oc2VwKSArIGxlbih3b3JkKQorICAgIGlmIG91dF9sZW4gPiBsZWZ0OgorICAgICAgICBvdXQuYXBwZW5kKG91dF9saW5lKQorCisKKyMKKyMgRG9jdW1lbnRhdGlvbnM6IENvbGxlY3QgYWxsIHRoZSBjb21tYW5kcyB3aGljaCAicHJlZml4IG1hdGNoIiB0aGUgd29yZHMKKyMKK2NsYXNzIENvbW1hbmREb2N1bWVudG9yKENvbW1hbmRIYW5kbGVyKToKKyAgICAKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaGVhZGVyLCBmb3JtYXQgPSBOb25lKToKKyAgICAgICAgc3VwZXIoQ29tbWFuZERvY3VtZW50b3IsIHNlbGYpLl9faW5pdF9fKCkKKyAgICAgICAgaWYgaGVhZGVyIGlzIE5vbmU6CisgICAgICAgICAgICBoZWFkZXIgPSAnJworICAgICAgICBzZWxmLmhlYWRlciA9IGhlYWRlcgorICAgICAgICBzZWxmLmNvbW1hbmRzID0gW10KKyAgICAgICAgc2VsZi5kb2NzID0ge30KKyAgICAgICAgc2VsZi5kb2NzX3N0YWNrID0gW10KKyAgICAgICAgc2VsZi5pc19ub19jb21tYW5kID0gRmFsc2UKKyAgICAgICAgc2VsZi53b3JkcyA9IE5vbmUKKyAgICAgICAgc2VsZi5mb3JtYXQgPSBmb3JtYXQKKyAgICAgICAgKHNlbGYudGVybV9jb2xzLCBzZWxmLnRlcm1fcm93cykgPSBzZG5zaC5wcC5nZXRfdGVybWluYWxfc2l6ZSgpCisKKworICAgIGRlZiBhZGRfZG9jcyhzZWxmLCBuYW1lLCB2YWx1ZSk6CisgICAgICAgIGlmIG5hbWUgaW4gc2Ruc2gucmVzZXJ2ZWRfd29yZHMgYW5kIHZhbHVlID09IE5vbmU6CisgICAgICAgICAgICB2YWx1ZSA9ICdyZXNlcnZlZHwlcycgJSBuYW1lCisgICAgICAgIGlmIG5hbWUgaW4gc2VsZi5kb2NzOgorICAgICAgICAgICAgaWYgdmFsdWUgIT0gc2VsZi5kb2NzW25hbWVdOgorICAgICAgICAgICAgICAgIGlmIHZhbHVlICE9IE5vbmUgYW5kIE5vbmUgaW4gc2VsZi5kb2NzW25hbWVdIGFuZCBcCisgICAgICAgICAgICAgICAgICBsZW4oc2VsZi5kb2NzW25hbWVdKSA9PSAxIDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5kb2NzW25hbWVdID0gW3ZhbHVlXQorICAgICAgICAgICAgICAgIGVsaWYgdmFsdWUgIT0gTm9uZSBhbmQgdmFsdWUgbm90IGluIHNlbGYuZG9jc1tuYW1lXToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5kb2NzW25hbWVdLmFwcGVuZCh2YWx1ZSkKKyAgICAgICAgICAgICMgaWYgdGhlIHZhbHVlIGlzIGFscmVhZHkgdGhlcmUsIGRvbid0IGRvIG51dHRuCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzZWxmLmRvY3NbbmFtZV0gPSBbdmFsdWVdCisKKyAgICBkZWYgYWRkX2RpY3RfZG9jKHNlbGYsIGFyZyk6CisgICAgICAgIGlmICdjaG9pY2VzJyBpbiBhcmc6CisgICAgICAgICAgICBzZWxmLmFkZF90dXBsZV9kb2NzKGFyZ1snY2hvaWNlcyddKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIGlmICdhcmdzJyBpbiBhcmc6CisgICAgICAgICAgICBhcmdzX2FyZyA9IGFyZ1snYXJncyddCisgICAgICAgICAgICBpZiB0eXBlKGFyZ3NfYXJnKSA9PSB0dXBsZToKKyAgICAgICAgICAgICAgICBzZWxmLmFkZF90dXBsZV9kb2NzKGFyZ3NfYXJnKQorICAgICAgICAgICAgZWxpZiB0eXBlKGFyZ3NfYXJnKSA9PSBkaWN0OgorICAgICAgICAgICAgICAgIHNlbGYuYWRkX2RpY3RfZG9jKGFyZ3NfYXJnKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCAnYWRkX2RpY3RfZG9jICcsIHR5cGUoYXJnc19hcmcpLCBhcmdzX2FyZworICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgdGFnID0gYXJnLmdldCgndGFnJykKKyAgICAgICAgaWYgJ2ZpZWxkJyBpbiBhcmc6CisgICAgICAgICAgICBpZiB0YWc6CisgICAgICAgICAgICAgICAgbmFtZSA9ICclcyA8JXM+JyAlICh0YWcsIGFyZ1snZmllbGQnXSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbmFtZSA9IGFyZ1snZmllbGQnXQorICAgICAgICBlbGlmICd0b2tlbicgaW4gYXJnOgorICAgICAgICAgICAgbmFtZSA9IGFyZ1sndG9rZW4nXQorCisgICAgICAgIGRvYyA9IGFyZy5nZXQoJ2RvYycpCisKKyAgICAgICAgaWYgZG9jIGFuZCAndHlwZScgaW4gYXJnOgorICAgICAgICAgICAgdmFsdWVzID0gYXJnLmdldCgndmFsdWVzJykKKyAgICAgICAgICAgIGlmIGFyZ1sndHlwZSddID09ICdlbnVtJyBhbmQgdmFsdWVzOgorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodmFsdWVzLHN0cik6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuYWRkX2RvY3ModmFsdWVzLGRvYykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBmb3IgdiBpbiB2YWx1ZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBkb2MgYW5kIGRvY1stMV0gPT0gJysnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYWRkX2RvY3ModiwgZG9jWzotMV0gKyB2KQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFkZF9kb2NzKHYsIGRvYykKKyAgICAgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgICAgICAKKyAgICAgICAgaWYgZG9jOgorICAgICAgICAgICAgc2VsZi5hZGRfZG9jcyhuYW1lLCBkb2MpCisKKworICAgIGRlZiBhZGRfdHVwbGVfZG9jcyhzZWxmLCB0dXBsZV9hcmcpOgorICAgICAgICBmb3IgdCBpbiB0dXBsZV9hcmc6CisgICAgICAgICAgICBpZiB0eXBlKHQpID09IHR1cGxlOgorICAgICAgICAgICAgICAgIHNlbGYuYWRkX3R1cGxlX2RvY3ModCkKKyAgICAgICAgICAgIGVsaWYgdHlwZSh0KSA9PSBkaWN0OgorICAgICAgICAgICAgICAgIHNlbGYuYWRkX2RpY3RfZG9jKHQpCisKKyAgICBkZWYgYWRkX2NvbW1hbmQoc2VsZiwgY29tbWFuZCk6CisgICAgICAgIHNlbGYuY29tbWFuZHMuYXBwZW5kKGNvbW1hbmQpCisgICAgICAgIGFyZ3MgPSBjb21tYW5kLmdldCgnYXJncycpCisgICAgICAgIHNlbGYuYWRkX3R1cGxlX2RvY3MoKGFyZ3MsKSkKKworICAgIGRlZiBoYW5kbGVfZmlyc3RfbWF0Y2hlZF9yZXN1bHQoc2VsZiwgY29tbWFuZCk6CisgICAgICAgIHNlbGYuZG9jc19zdGFjay5hcHBlbmQoe30pCisKKyAgICBkZWYgaGFuZGxlX21hdGNoZWRfcmVzdWx0KHNlbGYsIGNvbW1hbmQsIHJlc3VsdCwgYXJnX3Njb3Blcyk6CisgICAgICAgIG1hdGNoZWRfZG9jID0gIF9sb29rdXBfaW5fc2NvcGVzKCdkb2MnLCBhcmdfc2NvcGVzKQorICAgICAgICBpZiBtYXRjaGVkX2RvYyBhbmQgbWF0Y2hlZF9kb2NbLTFdID09ICcrJzoKKyAgICAgICAgICAgIGl0ZW0gPSByZXN1bHQKKyAgICAgICAgICAgIGlmIHR5cGUoaXRlbSkgPT0gdHVwbGU6CisgICAgICAgICAgICAgICAgaXRlbSA9IGl0ZW1bMF0KKyAgICAgICAgICAgIG1hdGNoZWRfZG9jID0gbWF0Y2hlZF9kb2NbOi0xXSArIGl0ZW0KKyAgICAgICAgc2VsZi5kb2NzX3N0YWNrWy0xXVtjb21tYW5kWydzZWxmJ11dID0gKHJlc3VsdCwgbWF0Y2hlZF9kb2MpCisKKyAgICBkZWYgaGFuZGxlX2luY29tcGxldGVfY29tbWFuZChzZWxmLCBhcmcsIGFyZ19zY29wZXMsIGFyZ19kYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkcywgcGFyc2VkX3RhZywgY29tbWFuZCk6CisgICAgICAgIHRhZyA9IGFyZy5nZXQoJ3RhZycpCisgICAgICAgIGRvYyA9IGFyZy5nZXQoJ2RvYycpCisgICAgICAgIGRvY19hbnkgPSBkb2MKKyAgICAgICAgaWYgZG9jX2FueSA9PSBOb25lOgorICAgICAgICAgICAgZG9jX2FueSA9IF9sb29rdXBfaW5fc2NvcGVzKCdkb2MnLCBhcmdfc2NvcGVzKQorICAgICAgICAjIG5vdGU6IGRvYyBtYXkgc3RpbGwgYmUgTm9uZQorCisgICAgICAgIHRva2VuID0gYXJnLmdldCgndG9rZW4nKQorCisgICAgICAgIHR5cGVfbmFtZSA9IGFyZy5nZXQoJ3R5cGUnKQorICAgICAgICBpZiB0eXBlX25hbWUgPT0gTm9uZToKKyAgICAgICAgICAgIHR5cGVfbmFtZSA9IGFyZy5nZXQoJ2Jhc2UtdHlwZScpCisgICAgICAgIHR5cGVkZWYgPSB0eXBlZGVmX3JlZ2lzdHJ5LmdldCh0eXBlX25hbWUpIGlmIHR5cGVfbmFtZSBlbHNlIE5vbmUKKworICAgICAgICBmaWVsZCA9IGFyZy5nZXQoJ2ZpZWxkJykKKyAgICAgICAgaGVscF9uYW1lID0gYXJnLmdldCgnaGVscC1uYW1lJywgZmllbGQpCisKKyAgICAgICAgZmllbGRfZG9jID0gYXJnLmdldCgnY29tcGxldGlvbi10ZXh0JywgRmFsc2UpCisgICAgICAgIGlmIGZpZWxkX2RvYyA9PSBOb25lOgorICAgICAgICAgICAgZmllbGRfZG9jID0gYXJnLmdldCgnaGVscC1uYW1lJykKKyAgICAgICAgaWYgZmllbGRfZG9jID09IE5vbmU6CisgICAgICAgICAgICBmaWVsZF9kb2MgPSBhcmcuZ2V0KCdzeW50YXgtaGVscCcpCisKKyAgICAgICAgZGVmIG1hbmFnZV9lbnVtKGFyZywgZG9jKToKKyAgICAgICAgICAgIGVudW1fdmFsdWVzID0gYXJnLmdldCgndmFsdWVzJykKKyAgICAgICAgICAgIGlmIF9pc19zdHJpbmcoZW51bV92YWx1ZXMpOgorICAgICAgICAgICAgICAgIGVudW1fdmFsdWVzID0gW2VudW1fdmFsdWVzXQorICAgICAgICAgICAgZm9yIGVudW0gaW4gZW51bV92YWx1ZXM6CisgICAgICAgICAgICAgICAgaWYgZG9jIGFuZCBkb2NbLTFdID09ICcrJzoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hZGRfZG9jcyhlbnVtLCBkb2NbOi0xXSArIGVudW0pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hZGRfZG9jcyhlbnVtLCBkb2MpCisKKyAgICAgICAgaWYgdG9rZW4gIT0gTm9uZTogICMgdG9rZW4gaXMgYSBsb25lci4KKyAgICAgICAgICAgIHNlbGYuYWRkX2RvY3ModG9rZW4ubG93ZXIoKSwgZG9jX2FueSkKKyAgICAgICAgZWxpZiB0YWcgYW5kIGZpZWxkIGFuZCBmaWVsZF9kb2M6CisgICAgICAgICAgICBzZWxmLmFkZF9kb2NzKHRhZyArICcgPCcgKyBoZWxwX25hbWUgKyAnPicsIGRvYyBpZiBkb2MgZWxzZSBmaWVsZF9kb2MpCisgICAgICAgIGVsaWYgZmllbGQgYW5kIHR5cGVkZWYgYW5kIHR5cGVkZWYuZ2V0KCduYW1lJykgPT0gJ2VudW0nOgorICAgICAgICAgICAgbWFuYWdlX2VudW0oYXJnLCBkb2MpCisgICAgICAgIGVsaWYgZmllbGQgYW5kIGRvYzoKKyAgICAgICAgICAgIHNlbGYuYWRkX2RvY3MoaGVscF9uYW1lLCBkb2MpCisgICAgICAgIGVsaWYgdGFnIGFuZCBmaWVsZCBhbmQgdHlwZWRlZjogCisgICAgICAgICAgICBzZWxmLmFkZF9kb2NzKHRhZyArICcgPCcgKyBoZWxwX25hbWUgKyAnPicsICd0eXBlc3wnICsgIHR5cGVkZWYuZ2V0KCduYW1lJykpCisgICAgICAgIGVsaWYgZmllbGQgYW5kIGZpZWxkX2RvYzoKKyAgICAgICAgICAgIHNlbGYuYWRkX2RvY3MoaGVscF9uYW1lLCBmaWVsZF9kb2MpCisgICAgICAgIGVsaWYgdHlwZWRlZjoKKyAgICAgICAgICAgIHR5cGVkZWZfbmFtZSA9IHR5cGVkZWYuZ2V0KCduYW1lJykubG93ZXIoKQorICAgICAgICAgICAgaWYgdHlwZWRlZl9uYW1lICE9ICdlbnVtJzoKKyAgICAgICAgICAgICAgICBpZiBmaWVsZDoKKyAgICAgICAgICAgICAgICAgICAgIyBtYWdpYyByZWZlcmVuY2UgdG8gZG9jOiAgdHlwZXMvPHR5cGVuYW1lPgorICAgICAgICAgICAgICAgICAgICBzZWxmLmFkZF9kb2NzKGZpZWxkLCAndHlwZXN8JyArIHR5cGVkZWYuZ2V0KCduYW1lJykpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hZGRfZG9jcyh0eXBlZGVmLmdldCgnbmFtZScpLmxvd2VyKCksIGRvYykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWFuYWdlX2VudW0oYXJnLCBkb2MpCisKKyAgICAgICAgaWYgY29tbWFuZCBub3QgaW4gc2VsZi5jb21tYW5kczoKKyAgICAgICAgICAgIHNlbGYuY29tbWFuZHMuYXBwZW5kKGNvbW1hbmQpCisKKworICAgIGRlZiBoYW5kbGVfY29tcGxldGVfY29tbWFuZChzZWxmLCBwcmVmaXhfbWF0Y2hlcywgc2NvcGVzLCBhcmdfZGF0YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzLCBhY3Rpb25zLCBjb21tYW5kKToKKyAgICAgICAgIyBvbmx5IHByb3ZpZGUgaGVscCBmb3IgZXhhY3QgY29tbWFuZCBtYXRjaGVzCisgICAgICAgIGlmIGxlbihwcmVmaXhfbWF0Y2hlcyk6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBpZiBjb21tYW5kIG5vdCBpbiBzZWxmLmNvbW1hbmRzOgorICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246CisgICAgICAgICAgICAgICAgcHJpbnQgJ0NPTVBMRVRFIENPTU1BTkQgRE9DJywgIGNvbW1hbmRbJ3NlbGYnXSwgYXJnX2RhdGEsIHByZWZpeF9tYXRjaGVzCisgICAgICAgICAgICBzZWxmLmNvbW1hbmRzLmFwcGVuZChjb21tYW5kKQorCisgICAgZGVmIGhhbmRsZV9jb21tYW5kX3Jlc3VsdHNfd2lraShzZWxmKToKKyAgICAgICAgZGVmIGhhbmRsZV9wbGFpbnRleHRfd2lraShpbnB1dHN0cik6CisgICAgICAgICAgICBpbnB1dHN0cj1pbnB1dHN0ci5yZXBsYWNlKCJ7IiwiXHsiKQorICAgICAgICAgICAgaW5wdXRzdHI9aW5wdXRzdHIucmVwbGFjZSgifSIsIlx9IikKKyAgICAgICAgICAgIGlucHV0c3RyPWlucHV0c3RyLnJlcGxhY2UoIlsiLCJcWyIpCisgICAgICAgICAgICBpbnB1dHN0cj1pbnB1dHN0ci5yZXBsYWNlKCJdIiwiXF0iKQorICAgICAgICAgICAgaW5wdXRzdHI9aW5wdXRzdHIucmVwbGFjZSgiXFxcXCIsIjxicj4iKQorICAgICAgICAgICAgaW5wdXRzdHI9aW5wdXRzdHIucmVwbGFjZSgiXG5cbiIsICJcXEAiKQorICAgICAgICAgICAgaW5wdXRzdHI9aW5wdXRzdHIucmVwbGFjZSgiXG4iLCIgIikKKyAgICAgICAgICAgIGlucHV0c3RyPWlucHV0c3RyLnJlcGxhY2UoIlxcQCIsICJcblxuIikKKyAgICAgICAgICAgIGlucHV0c3RyPWlucHV0c3RyLnJlcGxhY2UoIjxicj4iLCAiXG4iKQorICAgICAgICAgICAgCisgICAgICAgICAgICByZXR1cm4gaW5wdXRzdHIKKworICAgICAgICBpZiBsZW4oc2VsZi5jb21tYW5kcykgPT0gMDoKKyAgICAgICAgICAgIGlmIHNlbGYud29yZHM6CisgICAgICAgICAgICAgICAgcmV0dXJuICdObyBhcHBsaWNhYmxlIGNvbW1hbmQ6ICVzJyAlICcgJy5qb2luKHNlbGYud29yZHMpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiAnXG5ObyBjb21tYW5kIGZvciAgJyArIHNlbGYuaGVhZGVyCisgICAgICAgIGhlbHBfbGluZXM9W10KKyAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJycpCisgICAgICAgIGxhc3RfZGVzY19uYW1lID0gTm9uZQorICAgICAgICBsYXN0X3N5bnRheF9uYW1lID0gTm9uZQorICAgICAgICAjIEtlZXAgdHJhY2sgb2YgcGFyYWdyYXBocyBkaXNwbGF5ZWQgdG8gcHJldmVudCByZXBlYXRlZAorICAgICAgICAjIGRpc3BsYXkgb2YgdGhlIHNhbWUgZG9jIHRhZ3MuCisgICAgICAgIHNob3duX2l0ZW1zID0gW10gCisgICAgICAgIGZvciBjb21tYW5kIGluIHNlbGYuY29tbWFuZHM6CisgICAgICAgICAgICBkb2NfdGFnID0gY29tbWFuZC5nZXQoJ2RvYycpCisgICAgICAgICAgICBuYW1lID0gX2dldF9jb21tYW5kX3RpdGxlKGNvbW1hbmQpCisgICAgICAgICAgICBzaG9ydF9oZWxwID0gY29tbWFuZC5nZXQoJ3Nob3J0LWhlbHAnKQorICAgICAgICAgICAgaWYgc2hvcnRfaGVscDoKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmhlYWRlcjoKKyAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJ1xuaDIuICVzIENvbW1hbmQnICUgbmFtZS5jYXBpdGFsaXplKCkpCisgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJ1xuaDQuICVzJyAlIHNob3J0X2hlbHAuY2FwaXRhbGl6ZSgpKQorICAgICAgICAgICAgICAgIGNtZG1vZGU9Y29tbWFuZC5nZXQoJ21vZGUnKQorICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UoY21kbW9kZSxsaXN0KToKKyAgICAgICAgICAgICAgICAgICAgY21kbW9kZXN0cj0nJworICAgICAgICAgICAgICAgICAgICBmb3IgY21kbW9kZW1lbSBpbiBjbWRtb2RlOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgY21kbW9kZW1lbVstMV09PScqJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbWRtb2RlbWVtPWNtZG1vZGVtZW1bOi0xXQorICAgICAgICAgICAgICAgICAgICAgICAgY21kbW9kZXN0cj0gY21kbW9kZXN0ciArJyAnICsgY21kbW9kZW1lbQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGNtZG1vZGVzdHI9Y21kbW9kZQorICAgICAgICAgICAgICAgICAgICBpZiBjbWRtb2Rlc3RyWy0xXT09JyonOgorICAgICAgICAgICAgICAgICAgICAgICAgY21kbW9kZXN0cj1jbWRtb2Rlc3RyWzotMV0KKyAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnXG4qQ29tbWFuZCBNb2RlOiogICAgICAgICAgJXMgbW9kZScgJSBjbWRtb2Rlc3RyKQorICAgICAgICAgICAgICAgIGxhc3Rfc3ludGF4X25hbWUgPSBOb25lICMgZGlzcGxheSBzeW50YXggaGVhZGVyCisKKyAgICAgICAgICAgIGhlbHBfc3RyaW5ncyA9IFtdCisgICAgICAgICAgICBjb21tYW5kX2hlbHBfc3RyaW5nID0gX2dldF9jb21tYW5kX3N5bnRheF9oZWxwX3N0cmluZygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZCwgc2VsZi5wcmVmaXgpCisgICAgICAgICAgICBoZWxwX3N0cmluZ3MuYXBwZW5kKGNvbW1hbmRfaGVscF9zdHJpbmcpCisgICAgICAgICAgICBmb3IgaCBpbiBzb3J0ZWQoaGVscF9zdHJpbmdzKToKKyAgICAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGgsbGlzdCk6CisgICAgICAgICAgICAgICAgICAgIGggPSBoYW5kbGVfcGxhaW50ZXh0X3dpa2koaFswXSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBoID0gaGFuZGxlX3BsYWludGV4dF93aWtpKGgpCisgICAgICAgICAgICAgICAgaWYgbGFzdF9zeW50YXhfbmFtZSAhPSBuYW1lOgorICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnXG4qQ29tbWFuZCBTeW50YXg6KiAgICAgICAge3slc319JyAlIGgpCisgICAgICAgICAgICAgICAgbGFzdF9zeW50YXhfbmFtZSA9IG5hbWUKKyAgICAgICAgICAgICAgICBsYXN0X2Rlc2NfbmFtZSA9IE5vbmUgIyBwcmludCBkZXNjcmlwdGlvbiBoZWFkZXIKKworICAgICAgICAgICAgaWYgZG9jX3RhZzoKKyAgICAgICAgICAgICAgICB0ZXh0ID0gZG9jLmdldF90ZXh0KHNlbGYsIGRvY190YWcpCisgICAgICAgICAgICAgICAgaWYgdGV4dCAhPSAnJyBhbmQgZG9jX3RhZyBub3QgaW4gc2hvd25faXRlbXM6CisgICAgICAgICAgICAgICAgICAgIHNob3duX2l0ZW1zLmFwcGVuZChkb2NfdGFnKQorICAgICAgICAgICAgICAgICAgICBpZiBsYXN0X2Rlc2NfbmFtZSAhPSBuYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJ1xuKkNvbW1hbmQgRGVzY3JpcHRpb246KicpCisgICAgICAgICAgICAgICAgICAgICAgICBsYXN0X2Rlc2NfbmFtZSA9IG5hbWUKKyAgICAgICAgICAgICAgICAgICAgdGV4dD1oYW5kbGVfcGxhaW50ZXh0X3dpa2kodGV4dCkKKyAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQodGV4dCkKKyAgICAgICAgICAgICAgICAgICAgI2R1bWJfZm9ybWF0dGVyKGhlbHBfbGluZXMsIHRleHQsIDMpCisgICAgICAgICAgICAgICAgICAgIGxhc3Rfc3ludGF4X25hbWUgPSBOb25lICMgcHJpbnQgJ1N5bnRheCcgaGVhZGVyCisgICAgICAgIGlmIGxlbihzZWxmLmNvbW1hbmRzKSA9PSAxOgorICAgICAgICAgICAgc2hvcnRfaGVscCA9IE5vbmUKKyAgICAgICAgICAgIGlmIHNlbGYuaXNfbm9fY29tbWFuZDoKKyAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgIyBDb2JibGUgdG9nZXRoZXIgYSBoZWxwIHN0cmluZyBmb3IgYSBubyBjb21tYW5kLCBidWlsZAorICAgICAgICAgICAgICAgICMgYSBkZWZhdWx0IHZhbHVlIGZvciBzdWJjb21tYW5kJ3MsIHBvc3NpYmx5IG90aGVyIGNvbW1hbmQKKyAgICAgICAgICAgICAgICAjIGRlc2NyaXB0aW9ucworICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICBzaG9ydF9oZWxwID0gc2VsZi5jb21tYW5kc1swXS5nZXQoJ25vLWhlbHAnKQorICAgICAgICAgICAgICAgIGlmIG5vdCBzaG9ydF9oZWxwOgorICAgICAgICAgICAgICAgICAgICBjb21tYW5kX3R5cGUgPSBzZWxmLmNvbW1hbmRzWzBdLmdldCgnY29tbWFuZC10eXBlJykKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gc2VsZi5jb21tYW5kc1swXS5nZXQoJ2FjdGlvbicpCisgICAgICAgICAgICAgICAgICAgIGlmICgoY29tbWFuZF90eXBlIGFuZCBjb21tYW5kX3R5cGUgPT0gJ2NvbmZpZy1zdWJtb2RlJykgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aW9uIGFuZCBhY3Rpb24gPT0gJ3B1c2gtbW9kZS1zdGFjaycpKToKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVfbmFtZSA9IHNlbGYuY29tbWFuZHNbMF0uZ2V0KCduYW1lJykKKyAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0X2hlbHAgPSAnUmVtb3ZlICVzIGNvbmZpZ3VyYXRpb24nICUgbW9kZV9uYW1lCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNob3J0X2hlbHAgPSBzZWxmLmNvbW1hbmRzWzBdLmdldCgnc2hvcnQtaGVscCcpCisgICAgICAgICAgICBmb3IgbGFzdF9kb2MgaW4gc2VsZi5kb2NzX3N0YWNrOgorICAgICAgICAgICAgICAgIGlmIGNvbW1hbmRbJ3NlbGYnXSBpbiBsYXN0X2RvYzoKKyAgICAgICAgICAgICAgICAgICAgKGtleXdvcmQsIGxhc3RfZG9jKSA9IGxhc3RfZG9jW2NvbW1hbmRbJ3NlbGYnXV0KKyAgICAgICAgICAgICAgICAgICAgdGV4dCA9IGRvYy5nZXRfdGV4dChzZWxmLCBsYXN0X2RvYykKKyAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShrZXl3b3JkKSA9PSB0dXBsZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGtleXdvcmQgPSBrZXl3b3JkWzBdCisgICAgICAgICAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoIlx0JXM6ICVzICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tbWFuZFsnc2VsZiddLCBrZXl3b3JkLCBsYXN0X2RvYykpCisgICAgICAgICAgICAgICAgICAgIGlmIHRleHQgIT0gJycgYW5kIGxhc3RfZG9jIG5vdCBpbiBzaG93bl9pdGVtczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNob3duX2l0ZW1zLmFwcGVuZChsYXN0X2RvYykKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfbGluZXMuYXBwZW5kKCdcbktleXdvcmQgJXMgRGVzY3JpcHRpb246JyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZC5jYXBpdGFsaXplKCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0PWhhbmRsZV9wbGFpbnRleHRfd2lraSh0ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQodGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICNkdW1iX2Zvcm1hdHRlcihoZWxwX2xpbmVzLCB0ZXh0LCA0KQorCisgICAgICAgICAgICBpZiBsZW4oc2VsZi5kb2NzKSA+IDA6CisgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJ1xuKk5leHQgS2V5d29yZCBEZXNjcmlwdGlvbnM6KicpCisgICAgICAgICAgICAgICAgZm9yIChkb2NfbmFtZSwgZG9jX3RhZ3MpIGluIHNlbGYuZG9jcy5pdGVtcygpOgorICAgICAgICAgICAgICAgICAgICBpZiBsZW4oZG9jX3RhZ3MpID09IDEgYW5kIGRvY190YWdzWzBdID09IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgiXHQlczogJXMgbWlzc2luZyBkb2MgYXR0cmlidXRlIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbW1hbmRbJ3NlbGYnXSwgZG9jX25hbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJyogICVzOicgJSBkb2NfbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgZWxpZiBsZW4oZG9jX3RhZ3MpID09IDEgYW5kIGRvY190YWdzWzBdLnNwbGl0KCd8JylbMF0gPT0gJ3R5cGVzJyBhbmQgXAorICAgICAgICAgICAgICAgICAgICAgIG5vdCBkb2NfbmFtZS5zdGFydHN3aXRoKGRvY190YWdzWzBdLnNwbGl0KCd8JylbMV0pOgorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV9uYW1lID0gZG9jX3RhZ3NbMF0uc3BsaXQoJ3wnKVsxXS5jYXBpdGFsaXplKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfbGluZXMuYXBwZW5kKCcgICVzOiB0eXBlICVzJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChkb2NfbmFtZSwgdHlwZV9uYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfbGluZXMuYXBwZW5kKCcqICAlczonICUgZG9jX25hbWUpCisgICAgICAgICAgICAgICAgICAgIGZvciBkb2NfdGFnIGluIGRvY190YWdzOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoIlx0JXM6ICVzICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbW1hbmRbJ3NlbGYnXSwgZG9jX25hbWUsIGRvY190YWcpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IGRvYy5nZXRfdGV4dChzZWxmLCBkb2NfdGFnKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGV4dCA9PSAnJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnJykKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRleHQgIT0gJycgYW5kIGRvY190YWcgbm90IGluIHNob3duX2l0ZW1zOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxlbihkb2NfdGFncykgPiAxIGFuZCBkb2NfdGFnLnNwbGl0KCd8JylbMF0gPT0gJ3R5cGVzJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV9uYW1lID0gZG9jX3RhZy5zcGxpdCgnfCcpWzFdLmNhcGl0YWxpemUoKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnXHRUeXBlOiAlcycgJSB0eXBlX25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd25faXRlbXMuYXBwZW5kKGRvY190YWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD1oYW5kbGVfcGxhaW50ZXh0X3dpa2kodGV4dCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCh0ZXh0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICNkdW1iX2Zvcm1hdHRlcihoZWxwX2xpbmVzLCB0ZXh0LCA0KQorICAgICAgICAgICAgZG9jX2V4YW1wbGUgPSBjb21tYW5kLmdldCgnZG9jLWV4YW1wbGUnKQorICAgICAgICAgICAgaWYgZG9jX2V4YW1wbGU6CisgICAgICAgICAgICAgICAgdGV4dCA9IGRvYy5nZXRfdGV4dChzZWxmLCBkb2NfZXhhbXBsZSkKKyAgICAgICAgICAgICAgICBpZiB0ZXh0ICE9ICcnOgorICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnXG4qQ29tbWFuZCBFeGFtcGxlczoqJykKKyAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJ3tub2Zvcm1hdH0nKQorICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCh0ZXh0KQorICAgICAgICAgICAgICAgICAgICAjZHVtYl9mb3JtYXR0ZXIoaGVscF9saW5lcywgdGV4dCwgMCkKKyAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJ3tub2Zvcm1hdH0nKQorICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGhlbHBfbGluZXMpCisKKworICAgIGRlZiBoYW5kbGVfY29tbWFuZF9yZXN1bHRzKHNlbGYpOgorICAgICAgICBpZiBsZW4oc2VsZi5jb21tYW5kcykgPT0gMDoKKyAgICAgICAgICAgIGlmIHNlbGYud29yZHM6CisgICAgICAgICAgICAgICAgcmV0dXJuICdObyBhcHBsaWNhYmxlIGNvbW1hbmQ6ICVzJyAlICcgJy5qb2luKHNlbGYud29yZHMpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiAnXG5ObyBjb21tYW5kIGZvciAgJyArIHNlbGYuaGVhZGVyCisKKyAgICAgICAgaGVscF9saW5lcyA9IFtdCisgICAgICAgICMgRGVhbCB3aXRoIHRvbyBtdWNoIG91dHB1dAorICAgICAgICBpZiBsZW4oc2VsZi5jb21tYW5kcykgPiAxMDogIyAxMCBpcyBhIG1hZ2ljIG51bWJlciwKKyAgICAgICAgICAgIGhlbHBfbGluZXMuYXBwZW5kKCdIZWxwOiBUb28gbWFueSBjb21tYW5kcyBtYXRjaCAoJWQpLCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUGxlYXNlIGNob29zZSBtb3JlIGRldGFpbCBmcm9tIGl0ZW06ICcgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuKHNlbGYuY29tbWFuZHMpKQorICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoc2Ruc2guY2hvaWNlc190ZXh0X2J1aWxkZXIoc2VsZi5kb2NzKSkKKyAgICAgICAgICAgIHJldHVybiAnXG4nLmpvaW4oaGVscF9saW5lcykKKworCisgICAgICAgIGlmIHNlbGYuaGVhZGVyOgorICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoc2VsZi5oZWFkZXIpCisgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnJykKKworICAgICAgICAodGVybV9jb2xzLCB0ZXJtX3Jvd3MpID0gc2Ruc2gucHAuZ2V0X3Rlcm1pbmFsX3NpemUoKQorICAgICAgICBsYXN0X2Rlc2NfbmFtZSA9IE5vbmUKKyAgICAgICAgbGFzdF9zeW50YXhfbmFtZSA9IE5vbmUKKworICAgICAgICAjIGFsbC1oZWxwIGluIGludGVuZGVkIHRvIHByb3ZpZGUgYW4gb3ZlcmFsbCBzaG9ydC1oZWxwIGZvcgorICAgICAgICAjIGEgY29sbGVjdGlvbiBvZiBzaW1pbGFybHkgc3ludGF4J2VkIGNvbW1hbmRzLiAgCisgICAgICAgIGFsbF9oZWxwID0ge30KKyAgICAgICAgZm9yIGNvbW1hbmQgaW4gc2VsZi5jb21tYW5kczoKKyAgICAgICAgICAgIGlmIGNvbW1hbmQuZ2V0KCdhbGwtaGVscCcpOgorICAgICAgICAgICAgICAgIGFsbF9oZWxwW2NvbW1hbmQuZ2V0KCduYW1lJyldID0gY29tbWFuZC5nZXQoJ2FsbC1oZWxwJykKKyAgICAgICAgIyB3aGVuIGxlbihhbGxfaGVscCkgPT0gMSwgb25seSBPTkUgY29tbWFuZCBjb2xsZWN0aW9uIGdyb3VwCisgICAgICAgICMgaXMgZ2V0dGluZyBkZXNjcmliZWQKKyAgICAgICAgaWYgbGVuKGFsbF9oZWxwKSA9PSAxOgorICAgICAgICAgICAgbmFtZSA9IGFsbF9oZWxwLmtleXMoKVswXQorICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJyVzIENvbW1hbmQ6ICVzJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobmFtZS5jYXBpdGFsaXplKCksIGFsbF9oZWxwW25hbWVdLmNhcGl0YWxpemUoKSkpCisgICAgICAgICAgICBhbGxfaGVscCA9IFRydWUKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGFsbF9oZWxwID0gRmFsc2UKKworICAgICAgICAjIEtlZXAgdHJhY2sgb2YgcGFyYWdyYXBocyBkaXNwbGF5ZWQgdG8gcHJldmVudCByZXBlYXRlZAorICAgICAgICAjIGRpc3BsYXkgb2YgdGhlIHNhbWUgZG9jIHRhZ3MuCisgICAgICAgIHNob3duX2l0ZW1zID0gW10gCisKKyAgICAgICAgZm9yIGNvbW1hbmQgaW4gc2VsZi5jb21tYW5kczoKKworICAgICAgICAgICAgZG9jX3RhZyA9IGNvbW1hbmQuZ2V0KCdkb2MnKQorICAgICAgICAgICAgbmFtZSA9IF9nZXRfY29tbWFuZF90aXRsZShjb21tYW5kKQorICAgICAgICAgICAgc2hvcnRfaGVscCA9IGNvbW1hbmQuZ2V0KCdzaG9ydC1oZWxwJykKKyAgICAgICAgICAgIGlmIG5vdCBhbGxfaGVscCBhbmQgc2hvcnRfaGVscDoKKyAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnXG4lcyBDb21tYW5kOiAlc1xuJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5hbWUuY2FwaXRhbGl6ZSgpLCBzaG9ydF9oZWxwLmNhcGl0YWxpemUoKSkpCisgICAgICAgICAgICAgICAgbGFzdF9zeW50YXhfbmFtZSA9IE5vbmUgIyBkaXNwbGF5IHN5bnRheCBoZWFkZXIKKworICAgICAgICAgICAgaGVscF9zdHJpbmdzID0gW10KKyAgICAgICAgICAgIGNvbW1hbmRfaGVscF9zdHJpbmcgPSBfZ2V0X2NvbW1hbmRfc3ludGF4X2hlbHBfc3RyaW5nKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tYW5kLCBzZWxmLnByZWZpeCkKKworICAgICAgICAgICAgaWYgdHlwZShjb21tYW5kX2hlbHBfc3RyaW5nKSA9PSBsaXN0OgorICAgICAgICAgICAgICAgIGhlbHBfc3RyaW5ncyArPSBjb21tYW5kX2hlbHBfc3RyaW5nCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGhlbHBfc3RyaW5ncy5hcHBlbmQoY29tbWFuZF9oZWxwX3N0cmluZykKKyAgICAgICAgCisgICAgICAgICAgICBmb3IgaCBpbiBzb3J0ZWQoaGVscF9zdHJpbmdzKToKKyAgICAgICAgICAgICAgICBpZiBsYXN0X3N5bnRheF9uYW1lICE9IG5hbWU6CisgICAgICAgICAgICAgICAgICAgIGlmIGxlbihzZWxmLmNvbW1hbmRzKSA+IDE6CisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnIENvbW1hbmQgU3ludGF4OicpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnJXMgQ29tbWFuZCBTeW50YXg6JyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmNhcGl0YWxpemUoKSkKKyAgICAgICAgICAgICAgICAgICAgbGFzdF9zeW50YXhfbmFtZSA9IG5hbWUKKworICAgICAgICAgICAgICAgICMgdXNlIDc1JSBvZiB0aGUgd2lkdGgsIHNpbmNlIHJlZm9ybWF0X2xpbmUgaXNuJ3QgcGVyZmVjdC4KKyAgICAgICAgICAgICAgICBzbWFsbGVyX3Rlcm1fY29scyA9IChzZWxmLnRlcm1fY29scyAqIDMpIC8gNAorICAgICAgICAgICAgICAgIGlmIGxlbihoKSA+IHNtYWxsZXJfdGVybV9jb2xzOgorICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzICs9IHJlZm9ybWF0X2xpbmUoaCwgc21hbGxlcl90ZXJtX2NvbHMsIDIsIDApCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJyAgJXMnICUgaCkKKyAgICAgICAgICAgICAgICBsYXN0X2Rlc2NfbmFtZSA9IE5vbmUgIyBwcmludCBkZXNjcmlwdGlvbiBoZWFkZXIKKworICAgICAgICAgICAgaWYgZG9jX3RhZzoKKyAgICAgICAgICAgICAgICB0ZXh0ID0gZG9jLmdldF90ZXh0KHNlbGYsIGRvY190YWcpCisgICAgICAgICAgICAgICAgaWYgdGV4dCAhPSAnJyBhbmQgZG9jX3RhZyBub3QgaW4gc2hvd25faXRlbXM6CisgICAgICAgICAgICAgICAgICAgIHNob3duX2l0ZW1zLmFwcGVuZChkb2NfdGFnKQorICAgICAgICAgICAgICAgICAgICBpZiBsYXN0X2Rlc2NfbmFtZSAhPSBuYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2VsZi5mb3JtYXQgPT0gTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnXG4lcyBDb21tYW5kIERlc2NyaXB0aW9uOicgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lLmNhcGl0YWxpemUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsaWYgc2VsZi5mb3JtYXQgPT0gJ2NsaWRvYyc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJ1xuICBEZXNjcmlwdGlvbjonKQorICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9kZXNjX25hbWUgPSBuYW1lCisgICAgICAgICAgICAgICAgICAgIGR1bWJfZm9ybWF0dGVyKGhlbHBfbGluZXMsIHRleHQsIDQpCisgICAgICAgICAgICAgICAgICAgIGxhc3Rfc3ludGF4X25hbWUgPSBOb25lICMgcHJpbnQgJ1N5bnRheCcgaGVhZGVyCisgICAgICAgICAgICAKKyAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgbGVuKHNlbGYuY29tbWFuZHMpID4gMToKKyAgICAgICAgICAgICAgICBmb3IgbGFzdF9kb2MgaW4gc2VsZi5kb2NzX3N0YWNrOgorICAgICAgICAgICAgICAgICAgICBpZiBjb21tYW5kWydzZWxmJ10gaW4gbGFzdF9kb2M6CisgICAgICAgICAgICAgICAgICAgICAgICAoa2V5d29yZCwgY21kX2RvYykgPSBsYXN0X2RvY1tjb21tYW5kWydzZWxmJ11dCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gZG9jLmdldF90ZXh0KHNlbGYsIGNtZF9kb2MpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXh0ICE9ICcnIGFuZCBjbWRfZG9jIG5vdCBpbiBzaG93bl9pdGVtczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93bl9pdGVtcy5hcHBlbmQoY21kX2RvYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKGtleXdvcmQpID09IHR1cGxlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3JkID0ga2V5d29yZFswXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfbGluZXMuYXBwZW5kKCdcbktleXdvcmQgJXM6JyAlIGtleXdvcmQuY2FwaXRhbGl6ZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1bWJfZm9ybWF0dGVyKGhlbHBfbGluZXMsIHRleHQsIDQpCisKKyAgICAgICAgICAgIGRvY19leGFtcGxlID0gY29tbWFuZC5nZXQoJ2RvYy1leGFtcGxlJykKKyAgICAgICAgICAgIGlmIGxlbihzZWxmLmNvbW1hbmRzKSA+IDEgYW5kIGRvY19leGFtcGxlOgorICAgICAgICAgICAgICAgIHRleHQgPSBkb2MuZ2V0X3RleHQoc2VsZiwgZG9jX2V4YW1wbGUpCisgICAgICAgICAgICAgICAgaWYgdGV4dCAhPSAnJyBhbmQgZG9jX2V4YW1wbGUgbm90IGluIHNob3duX2l0ZW1zOgorICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnRXhhbXBsZXM6JykKKyAgICAgICAgICAgICAgICAgICAgc2hvd25faXRlbXMuYXBwZW5kKGRvY19leGFtcGxlKQorICAgICAgICAgICAgICAgICAgICBkdW1iX2Zvcm1hdHRlcihoZWxwX2xpbmVzLCB0ZXh0LCA0KQorCisgICAgICAgIGlmIGxlbihzZWxmLmNvbW1hbmRzKSA9PSAxOgorICAgICAgICAgICAgc2hvcnRfaGVscCA9IE5vbmUKKyAgICAgICAgICAgIGlmIHNlbGYuaXNfbm9fY29tbWFuZDoKKyAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgIyBDb2JibGUgdG9nZXRoZXIgYSBoZWxwIHN0cmluZyBmb3IgYSBubyBjb21tYW5kLCBidWlsZAorICAgICAgICAgICAgICAgICMgYSBkZWZhdWx0IHZhbHVlIGZvciBzdWJjb21tYW5kJ3MsIHBvc3NpYmx5IG90aGVyIGNvbW1hbmQKKyAgICAgICAgICAgICAgICAjIGRlc2NyaXB0aW9ucworICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICBzaG9ydF9oZWxwID0gc2VsZi5jb21tYW5kc1swXS5nZXQoJ25vLWhlbHAnKQorICAgICAgICAgICAgICAgIGlmIG5vdCBzaG9ydF9oZWxwOgorICAgICAgICAgICAgICAgICAgICBjb21tYW5kX3R5cGUgPSBzZWxmLmNvbW1hbmRzWzBdLmdldCgnY29tbWFuZC10eXBlJykKKyAgICAgICAgICAgICAgICAgICAgYWN0aW9uID0gc2VsZi5jb21tYW5kc1swXS5nZXQoJ2FjdGlvbicpCisgICAgICAgICAgICAgICAgICAgIGlmICgoY29tbWFuZF90eXBlIGFuZCBjb21tYW5kX3R5cGUgPT0gJ2NvbmZpZy1zdWJtb2RlJykgb3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYWN0aW9uIGFuZCBhY3Rpb24gPT0gJ3B1c2gtbW9kZS1zdGFjaycpKToKKyAgICAgICAgICAgICAgICAgICAgICAgIG1vZGVfbmFtZSA9IHNlbGYuY29tbWFuZHNbMF0uZ2V0KCduYW1lJykKKyAgICAgICAgICAgICAgICAgICAgICAgIHNob3J0X2hlbHAgPSAnUmVtb3ZlICVzIGNvbmZpZ3VyYXRpb24nICUgbW9kZV9uYW1lCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNob3J0X2hlbHAgPSBzZWxmLmNvbW1hbmRzWzBdLmdldCgnc2hvcnQtaGVscCcpCisgICAgICAgICAgICAKKyAgICAgICAgICAgIGZvciBsYXN0X2RvYyBpbiBzZWxmLmRvY3Nfc3RhY2s6CisgICAgICAgICAgICAgICAgaWYgY29tbWFuZFsnc2VsZiddIGluIGxhc3RfZG9jOgorICAgICAgICAgICAgICAgICAgICAoa2V5d29yZCwgbGFzdF9kb2MpID0gbGFzdF9kb2NbY29tbWFuZFsnc2VsZiddXQorICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gZG9jLmdldF90ZXh0KHNlbGYsIGxhc3RfZG9jKQorICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKGtleXdvcmQpID09IHR1cGxlOgorICAgICAgICAgICAgICAgICAgICAgICAga2V5d29yZCA9IGtleXdvcmRbMF0KKyAgICAgICAgICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgiXHQlczogJXMgJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb21tYW5kWydzZWxmJ10sIGtleXdvcmQsIGxhc3RfZG9jKSkKKyAgICAgICAgICAgICAgICAgICAgaWYgdGV4dCAhPSAnJyBhbmQgbGFzdF9kb2Mgbm90IGluIHNob3duX2l0ZW1zOgorICAgICAgICAgICAgICAgICAgICAgICAgc2hvd25faXRlbXMuYXBwZW5kKGxhc3RfZG9jKQorICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJ1xuS2V5d29yZCAlcyBEZXNjcmlwdGlvbjonICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXl3b3JkLmNhcGl0YWxpemUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGR1bWJfZm9ybWF0dGVyKGhlbHBfbGluZXMsIHRleHQsIDQpCisKKyAgICAgICAgICAgIGlmIGxlbihzZWxmLmRvY3MpID4gMDoKKyAgICAgICAgICAgICAgICBpZiBzZWxmLmZvcm1hdCA9PSBOb25lOgorICAgICAgICAgICAgICAgICAgICBpbmRlbnQgPSAnICAnCisgICAgICAgICAgICAgICAgICAgIGhlbHBfbGluZXMuYXBwZW5kKCdcbk5leHQgS2V5d29yZCBEZXNjcmlwdGlvbnM7JykKKyAgICAgICAgICAgICAgICBlbGlmIHNlbGYuZm9ybWF0ID09ICdjbGlkb2MnOgorICAgICAgICAgICAgICAgICAgICBpbmRlbnQgPSAnICAgICcKKworICAgICAgICAgICAgICAgIGZvciAoZG9jX25hbWUsIGRvY190YWdzKSBpbiBzb3J0ZWQoc2VsZi5kb2NzLml0ZW1zKCkpOgorICAgICAgICAgICAgICAgICAgICBpZiBsZW4oZG9jX3RhZ3MpID09IDEgYW5kIGRvY190YWdzWzBdID09IE5vbmU6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgiXHQlczogJXMgbWlzc2luZyBkb2MgYXR0cmlidXRlIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbW1hbmRbJ3NlbGYnXSwgZG9jX25hbWUpKQorICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJyVzJXM6JyAlIChpbmRlbnQsIGRvY19uYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgZWxpZiBsZW4oZG9jX3RhZ3MpID09IDEgYW5kIGRvY190YWdzWzBdLnNwbGl0KCd8JylbMF0gPT0gJ3R5cGVzJyBhbmQgXAorICAgICAgICAgICAgICAgICAgICAgIG5vdCBkb2NfbmFtZS5zdGFydHN3aXRoKGRvY190YWdzWzBdLnNwbGl0KCd8JylbMV0pOgorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV9uYW1lID0gZG9jX3RhZ3NbMF0uc3BsaXQoJ3wnKVsxXS5jYXBpdGFsaXplKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfbGluZXMuYXBwZW5kKCclcyVzOiB0eXBlICVzJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbmRlbnQsIGRvY19uYW1lLCB0eXBlX25hbWUpKQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJyVzJXM6JyAlIChpbmRlbnQsIGRvY19uYW1lKSkKKyAgICAgICAgICAgICAgICAgICAgZm9yIGRvY190YWcgaW4gZG9jX3RhZ3M6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgiXHQlczogJXMgJXMiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29tbWFuZFsnc2VsZiddLCBkb2NfbmFtZSwgZG9jX3RhZykpCisgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gZG9jLmdldF90ZXh0KHNlbGYsIGRvY190YWcpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiB0ZXh0ID09ICcnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfbGluZXMuYXBwZW5kKCcnKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGV4dCAhPSAnJyBhbmQgZG9jX3RhZyBub3QgaW4gc2hvd25faXRlbXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGVuKGRvY190YWdzKSA+IDEgYW5kIGRvY190YWcuc3BsaXQoJ3wnKVswXSA9PSAndHlwZXMnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlX25hbWUgPSBkb2NfdGFnLnNwbGl0KCd8JylbMV0uY2FwaXRhbGl6ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHBfbGluZXMuYXBwZW5kKCdcdFR5cGU6ICVzJyAlIHR5cGVfbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG93bl9pdGVtcy5hcHBlbmQoZG9jX3RhZykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkdW1iX2Zvcm1hdHRlcihoZWxwX2xpbmVzLCB0ZXh0LCA4KQorCisgICAgICAgICAgICBkb2NfZXhhbXBsZSA9IGNvbW1hbmQuZ2V0KCdkb2MtZXhhbXBsZScpCisgICAgICAgICAgICBpZiBkb2NfZXhhbXBsZToKKyAgICAgICAgICAgICAgICB0ZXh0ID0gZG9jLmdldF90ZXh0KHNlbGYsIGRvY19leGFtcGxlKQorICAgICAgICAgICAgICAgIGlmIHRleHQgIT0gJyc6CisgICAgICAgICAgICAgICAgICAgIGhlbHBfbGluZXMuYXBwZW5kKCdFeGFtcGxlczonKQorICAgICAgICAgICAgICAgICAgICBkdW1iX2Zvcm1hdHRlcihoZWxwX2xpbmVzLCB0ZXh0LCA0KQorICAgICAgICAKKyAgICAgICAgaWYgbGVuKHNlbGYuY29tbWFuZHMpID4gMSBhbmQgbGVuKHNlbGYuZG9jcykgPiAwOgorICAgICAgICAgICAgaWYgc2VsZi5mb3JtYXQgPT0gTm9uZToKKyAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnXG5OZXh0IEtleXdvcmQgRGVzY3JpcHRpb25zOycpCisgICAgICAgICAgICBmb3IgKGRvY19uYW1lLCBkb2NfdGFncykgaW4gc29ydGVkKHNlbGYuZG9jcy5pdGVtcygpKToKKyAgICAgICAgICAgICAgICBpZiBsZW4oZG9jX3RhZ3MpID09IDEgYW5kIGRvY190YWdzWzBdID09IE5vbmU6CisgICAgICAgICAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoIlx0JXM6IG1pc3NpbmcgZG9jIGF0dHJpYnV0ZSIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZFsnc2VsZiddKQorICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnICAlczonICUgZG9jX25hbWUpCisgICAgICAgICAgICAgICAgZWxpZiBsZW4oZG9jX3RhZ3MpID09IDEgYW5kIGRvY190YWdzWzBdLnNwbGl0KCd8JylbMF0gPT0gJ3R5cGVzJyBhbmQgXAorICAgICAgICAgICAgICAgICAgbm90IGRvY19uYW1lLnN0YXJ0c3dpdGgoZG9jX3RhZ3NbMF0uc3BsaXQoJ3wnKVsxXSk6CisgICAgICAgICAgICAgICAgICAgIHR5cGVfbmFtZSA9IGRvY190YWdzWzBdLnNwbGl0KCd8JylbMV0uY2FwaXRhbGl6ZSgpCisgICAgICAgICAgICAgICAgICAgIGhlbHBfbGluZXMuYXBwZW5kKCcgICVzOiB0eXBlICVzJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRvY19uYW1lLCB0eXBlX25hbWUpKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGhlbHBfbGluZXMuYXBwZW5kKCcgICVzOicgJSBkb2NfbmFtZSkKKyAgICAgICAgICAgICAgICBmb3IgZG9jX3RhZyBpbiBkb2NfdGFnczoKKyAgICAgICAgICAgICAgICAgICAgaWYgZG9jX3RhZzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGxlbihkb2NfdGFncykgPiAxIGFuZCBkb2NfdGFnLnNwbGl0KCd8JylbMF0gPT0gJ3R5cGVzJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlX25hbWUgPSBkb2NfdGFnLnNwbGl0KCd8JylbMV0uY2FwaXRhbGl6ZSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJ1x0VHlwZTogJXMnICUgdHlwZV9uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoIlx0JXM6ICVzICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNvbW1hbmRbJ3NlbGYnXSwgZG9jX25hbWUsIGRvY190YWcpKQorICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCA9IGRvYy5nZXRfdGV4dChzZWxmLCBkb2NfdGFnKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgdGV4dCAhPSAnJyBhbmQgZG9jX3RhZyBub3QgaW4gc2hvd25faXRlbXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvd25faXRlbXMuYXBwZW5kKGRvY190YWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVtYl9mb3JtYXR0ZXIoaGVscF9saW5lcywgdGV4dCwgOCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVscF9saW5lcy5hcHBlbmQoJycpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwX2xpbmVzLmFwcGVuZCgnJykKKworICAgICAgICByZXR1cm4gJ1xuJy5qb2luKGhlbHBfbGluZXMpCisKKworZGVmIGdldF9jb21tYW5kX2RvY190YWcod29yZCk6CisgICAgaGFuZGxlciA9IENvbW1hbmRIYW5kbGVyKCkKKyAgICBtYXRjaGluZ19jb21tYW5kcyA9IGhhbmRsZXIuZ2V0X21hdGNoaW5nX2NvbW1hbmRzKHdvcmQsIEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZF9yZWdpc3RyeSkKKyAgICBpZiBsZW4obWF0Y2hpbmdfY29tbWFuZHMpID09IDE6CisgICAgICAgIHJldHVybiAobWF0Y2hpbmdfY29tbWFuZHNbMF1bMF0pLmdldCgnZG9jJykKKyAgICBpZiBsZW4obWF0Y2hpbmdfY29tbWFuZHMpID4gMToKKyAgICAgICAgIyBlcnJvcj8gcmV0dXIgdmFsdWUgZm9yIG11bHRpcGxlIGNvbW1hbmRzPworICAgICAgICBwYXNzCisgICAgcmV0dXJuIE5vbmUKKworCitkZWYgZ2V0X2NvbW1hbmRfZG9jdW1lbnRhdGlvbih3b3JkcywgaGVhZGVyPU5vbmUpOgorICAgIGhhbmRsZXIgPSBDb21tYW5kRG9jdW1lbnRvcihoZWFkZXIpCisgICAgIyBIYWNrIHRvIG1ha2UgImhlbHAgbm8iIHdvcmsKKyAgICBpZiBsZW4od29yZHMpID09IDEgYW5kIHdvcmRzWzBdID09ICdubyc6CisgICAgICAgIHdvcmRzID0gIHdvcmRzICsgWycnXQorICAgIHJlc3VsdCA9IGhhbmRsZXIuaGFuZGxlX2NvbW1hbmQod29yZHMpCisgICAgcmV0dXJuIHJlc3VsdAorCisKK2RlZiBjb21tYW5kX3N1Ym1vZGVfZGljdGlvbmFyeShtb2RlcyA9IE5vbmUpOgorICAgIGlmIG1vZGVzID09IE5vbmU6CisgICAgICAgIG1vZGVzID0gc2Ruc2guY29tbWFuZF9kaWN0LmtleXMoKSArIHNkbnNoLmNvbW1hbmRfbmVzdGVkX2RpY3Qua2V5cygpCisgICAgIworICAgICMgdHJ5IHRvIGZpbmQgYWxsIHN1Ym1vZGUgY29tbWFuZHMsIGJ1aWxkIGEgZGljdGlvbmFyeQorICAgIHJlYWNoZWRfbW9kZXMgPSBbXQorICAgIG1vZGVfbm9kZXMgPSB7fQorICAgIG1vZGVfZW50cmllcyA9IFtdCisgICAgZm9yIGMgaW4gY29tbWFuZF9yZWdpc3RyeToKKyAgICAgICAgY190eXBlID0gYy5nZXQoJ2NvbW1hbmQtdHlwZScpCisgICAgICAgIGlmIGNfdHlwZSBhbmQgY190eXBlID09ICdjb25maWctc3VibW9kZSc6CisgICAgICAgICAgICBmcm9tX21vZGUgPSBjLmdldCgnbW9kZScpCisgICAgICAgICAgICB0b19tb2RlID0gYy5nZXQoJ3N1Ym1vZGUtbmFtZScpCisgICAgICAgICAgICByZWFjaGVkX21vZGVzLmFwcGVuZCh0b19tb2RlKQorICAgICAgICAgICAgaWYgbm90IGZyb21fbW9kZSBpbiBtb2RlX25vZGVzOgorICAgICAgICAgICAgICAgIG1vZGVfbm9kZXNbZnJvbV9tb2RlXSA9IFtdCisgICAgICAgICAgICBtb2RlX25vZGVzW2Zyb21fbW9kZV0uYXBwZW5kKCh0b19tb2RlLCBfZ2V0X2NvbW1hbmRfdGl0bGUoYykpKQorICAgICAgICAgICAgbW9kZV9lbnRyaWVzLmFwcGVuZCh7J21vZGUnICAgIDogZnJvbV9tb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1Ym1vZGUnIDogdG9fbW9kZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21tYW5kJyA6IF9nZXRfY29tbWFuZF90aXRsZShjKX0pCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246CisgICAgICAgIHByaW50ICcsICcuam9pbihtb2RlX25vZGVzKQorICAgICAgICBwcmludCBtb2RlX25vZGVzCisgICAgICAgIGlmIFt4IGZvciB4IGluIG1vZGVzIGlmIG5vdCB4IGluIHJlYWNoZWRfbW9kZXNdOgorICAgICAgICAgICAgcHJpbnQgJ01pc3NpbmcgJywgW3ggZm9yIHggaW4gbW9kZXMgaWYgbm90IHggaW4gcmVhY2hlZF9tb2Rlc10KKworICAgIHJldHVybiBtb2RlX2VudHJpZXMKKworCitkZWYgZ2V0X2NsaWRvYyh3b3Jkcyk6CisgICAgaWYgbGVuKHdvcmRzKToKKyAgICAgICAgaGFuZGxlciA9IENvbW1hbmREb2N1bWVudG9yKGhlYWRlciA9IE5vbmUsIGZvcm1hdCA9ICdjbGlkb2MnKQorICAgICAgICBmb3Igd29yZCBpbiB3b3JkczoKKyAgICAgICAgICAgIGZvciBjIGluIGNvbW1hbmRfcmVnaXN0cnk6CisgICAgICAgICAgICAgICAgaWYgd29yZCA9PSBjWydzZWxmJ106CisgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIuYWRkX2NvbW1hbmQoYykKKyAgICAgICAgcmVzdWx0ID0gaGFuZGxlci5oYW5kbGVfY29tbWFuZF9yZXN1bHRzKCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgIGVsc2U6CisgICAgICAgIGNsaWRvYyA9IFtdCisgICAgICAgIGRlZiBjb21tYW5kc19mb3JfbW9kZShtb2RlKToKKyAgICAgICAgICAgIGNsaWRvYy5hcHBlbmQoJ1xuXG5cbj09PT09PT09PT09PT09PT09PT09PT09PT09PT09IE1PREUgJyArIG1vZGUgKyAnXG5cbicpCisgICAgICAgICAgICBmb3IgYyBpbiBjb21tYW5kX3JlZ2lzdHJ5OgorICAgICAgICAgICAgICAgIGlmIG1vZGUgPT0gY1snbW9kZSddOgorICAgICAgICAgICAgICAgICAgICBoYW5kbGVyID0gQ29tbWFuZERvY3VtZW50b3IoaGVhZGVyID0gJ1xuXG5cbiAtLS0tIE1PREUgJyArIG1vZGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtYXQgPSAnY2xpZG9jJykKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlci5hZGRfY29tbWFuZChjKQorICAgICAgICAgICAgICAgICAgICBjbGlkb2MuYXBwZW5kKGhhbmRsZXIuaGFuZGxlX2NvbW1hbmRfcmVzdWx0cygpKQorCisgICAgICAgIG1vZGUgPSAnbG9naW4nCisgICAgICAgIGNvbW1hbmRzX2Zvcl9tb2RlKG1vZGUpCisKKyAgICAgICAgIyBzZWxlY3QgY29tbWFuZHMgYnkgc3VibW9kZS4KKyAgICAgICAgbW9kZV9lbnRyaWVzID0gY29tbWFuZF9zdWJtb2RlX2RpY3Rpb25hcnkoKQorICAgICAgICBmb3IgbW9kZV9lbnRyeSBpbiBtb2RlX2VudHJpZXM6CisgICAgICAgICAgICBtb2RlID0gbW9kZV9lbnRyeVsnc3VibW9kZSddCisgICAgICAgICAgICBpZiBtb2RlWy0xXSA9PSAnKic6CisgICAgICAgICAgICAgICAgbW9kZSA9IG1vZGVbOi0xXQorICAgICAgICAgICAgaWYgbW9kZSA9PSAnY29uZmlnLSc6CisgICAgICAgICAgICAgICAgbW9kZSA9ICdjb25maWcnCisKKyAgICAgICAgICAgIGNvbW1hbmRzX2Zvcl9tb2RlKG1vZGUpCisKKyAgICAgICAgcmV0dXJuICcnLmpvaW4oY2xpZG9jKQorCitkZWYgZ2V0X2NsaXdpa2kod29yZHMpOgorICAgIGRlZiB3aWtpX3NwZWNpYWxfY2hhcmFjdGVyX2hhbmRsaW5nKGlucHV0c3RyKToKKyAgICAgICAgaW5wdXRzdHI9aW5wdXRzdHIucmVwbGFjZSgneycsJ1x7JykKKyAgICAgICAgaW5wdXRzdHI9aW5wdXRzdHIucmVwbGFjZSgnfScsJ1x9JykKKyAgICAgICAgaW5wdXRzdHI9aW5wdXRzdHIucmVwbGFjZSgnWycsJ1xbJykKKyAgICAgICAgaW5wdXRzdHI9aW5wdXRzdHIucmVwbGFjZSgnXScsJ1xdJykKKyAgICAgICAgcmV0dXJuIGlucHV0c3RyCisgICAgY2xpd2lraWZpbGU9b3BlbignY2xpd2lraS50eHQnLCAndycpCisgICAgaWYgbm90IGNsaXdpa2lmaWxlOgorICAgICAgICBwcmludCAnRmlsZSBjcmVhdGlvbiBmYWlsZWQgXG4nCisgICAgICAgIHJldHVybgorICAgIGNsaXdpa2lmaWxlLndyaXRlKCd7dG9jOnByaW50YWJsZT10cnVlfHN0eWxlPWRpc2N8bWF4TGV2ZWw9M3xtaW5MZXZlbD0xfGNsYXNzPWJpZ3Bpbmt8ZXhjbHVkZT1bMS8vMl18dHlwZT1saXN0fGluY2x1ZGU9Lip9JykKKyAgICAjd3JpdGUgdGhlIGludHJvZHVjdGlvbiBwYXJ0CisgICAgaW50cm9kdWN0aW9uZmlsZT1vcGVuKCdkb2N1bWVudGF0aW9uL2VuX1VTL2ludHJvZHVjdGlvbicpCisgICAgc3RyMT1pbnRyb2R1Y3Rpb25maWxlLnJlYWQoKQorICAgIGNsaXdpa2lmaWxlLndyaXRlKCdcbicpCisgICAgY2xpd2lraWZpbGUud3JpdGUoc3RyMSkKKyAgICBzdHIxPSdcbmgxLiBDTEkgQ29tbWFuZHMnCisgICAgY2xpd2lraWZpbGUud3JpdGUoc3RyMSkKKyAgICAjZ2VuZXJhdGUgYWxsIGNvbW1hbmRzIGluIGxvZ2luL2VuYWJsZSBtb2RlIGV4Y2VwdCBzaG93IGNtZHMKKyAgICBtb2RlPVsnbG9naW4nLCdlbmFibGUnXQorICAgIGNhdGVnb3J5PVsnc2hvdyddCisgICAgZm9yIGMgaW4gY29tbWFuZF9yZWdpc3RyeToKKyAgICAgICAgbmFtZSA9IGNbJ25hbWUnXQorICAgICAgICBpZiBuYW1lIG5vdCBpbiBjYXRlZ29yeSBhbmQgY1snbW9kZSddIGluIG1vZGU6CisgICAgICAgICAgICBjYXRlZ29yeS5hcHBlbmQobmFtZSkKKyAgICAgICAgICAgIGhhbmRsZXIgPSBDb21tYW5kRG9jdW1lbnRvcihoZWFkZXIgPSAnbG9naW4nKQorICAgICAgICAgICAgZm9yIGNjIGluIGNvbW1hbmRfcmVnaXN0cnk6CisgICAgICAgICAgICAgICAgaWYgbmFtZT09Y2NbJ25hbWUnXSBhbmQgY2NbJ21vZGUnXSBpbiBtb2RlOgorICAgICAgICAgICAgICAgICAgICBoYW5kbGVyLmFkZF9jb21tYW5kKGNjKQorICAgICAgICAgICAgICAgICAgICBzdHIxID0gaGFuZGxlci5oYW5kbGVfY29tbWFuZF9yZXN1bHRzX3dpa2koKQorICAgICAgICAgICAgICAgICAgICBzdHIxPSBzdHIxKyAnXG4nCisgICAgICAgICAgICAgICAgICAgIGNsaXdpa2lmaWxlLndyaXRlKHN0cjEpCisgICAgICAgICAgICAgICAgICAgIGhhbmRsZXIgPSBDb21tYW5kRG9jdW1lbnRvcihoZWFkZXIgPSBOb25lKQorICAgICNnZW5lcmF0ZSBhbGwgY29uZmlndXJhdGlvbiBjb21tYW5kczogZXhjbHVkZSBpbnRlcm5hbCBjb21tYW5kcworICAgIG1vZGU9Wydjb25maWcnLCAnY29uZmlnKiddCisgICAgY2F0ZWdvcnk9WydpbnRlcm5hbCddICNwcnVuZSBvdXQgYWxsIGludGVybmFsIGNvbW1hbmRzCisgICAgc3RyMT0nXG5oMi4gQ29uZmlndXJhdGlvbiBDb21tYW5kcycKKyAgICBjbGl3aWtpZmlsZS53cml0ZShzdHIxKQorICAgIGZvciBjIGluIGNvbW1hbmRfcmVnaXN0cnk6CisgICAgICAgIG5hbWUgPSBjWyduYW1lJ10KKyAgICAgICAgaWYgbmFtZSBub3QgaW4gY2F0ZWdvcnkgYW5kIGNbJ21vZGUnXSBpbiBtb2RlOgorICAgICAgICAgICAgY2F0ZWdvcnkuYXBwZW5kKG5hbWUpCisgICAgICAgICAgICBzdWJtb2RlPSdjb25maWctJyArIG5hbWUKKyAgICAgICAgICAgIHN1Ym1vZGUxPWMuZ2V0KCdzdWJtb2RlLW5hbWUnKQorICAgICAgICAgICAgaWYgc3VibW9kZTEgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAgaWYgc3VibW9kZTEuZmluZChzdWJtb2RlKT09LTE6CisgICAgICAgICAgICAgICAgICAgIHN1Ym1vZGU9c3VibW9kZTEKKyAgICAgICAgICAgIGlmIG5hbWU9PSd2bnMtZGVmaW5pdGlvbic6CisgICAgICAgICAgICAgICAgcHJpbnQgc3VibW9kZQorICAgICAgICAgICAgc3RyMT0iJXMiICUgbmFtZQorICAgICAgICAgICAgc3RyMT13aWtpX3NwZWNpYWxfY2hhcmFjdGVyX2hhbmRsaW5nKHN0cjEpCisgICAgICAgICAgICBzdHIxPSJcbmgzLiAlcyBDb21tYW5kcyAiICUgc3RyMS5jYXBpdGFsaXplKCkKKyAgICAgICAgICAgIGNsaXdpa2lmaWxlLndyaXRlKHN0cjEpCisgICAgICAgICAgICBoYW5kbGVyID0gQ29tbWFuZERvY3VtZW50b3IoaGVhZGVyID0gTm9uZSkKKyAgICAgICAgICAgIGhhbmRsZXIuYWRkX2NvbW1hbmQoYykKKyAgICAgICAgICAgIHN0cjEgPSBoYW5kbGVyLmhhbmRsZV9jb21tYW5kX3Jlc3VsdHNfd2lraSgpCisgICAgICAgICAgICBzdHIxPSBzdHIxKyAnXG4nCisgICAgICAgICAgICBjbGl3aWtpZmlsZS53cml0ZShzdHIxKQorICAgICAgICAgICAgZm9yIGNjIGluIGNvbW1hbmRfcmVnaXN0cnk6CisgICAgICAgICAgICAgICAgY21kbW9kZT1jY1snbW9kZSddCisgICAgICAgICAgICAgICAgaWYgKGlzaW5zdGFuY2UoY21kbW9kZSwgc3RyKSk6CisgICAgICAgICAgICAgICAgICAgIGlmIChjbWRtb2RlLmZpbmQoc3VibW9kZSkhPS0xKSBhbmQgKGNjWyduYW1lJ10hPSdzaG93Jyk6CisgICAgICAgICAgICAgICAgICAgICAgICAjc3BlY2lhbCBoYW5kbGluZzogcHJ1bmUgdm5zIGNvbW1hbmQgZnJvbSB0ZW5hbnQgbW9kZQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG5hbWUgIT0gJ3RlbmFudCcpIG9yICgobmFtZSA9PSAndGVuYW50JykgYW5kIGNtZG1vZGUuZmluZCgnY29uZmlnLXRlbmFudC12bnMnKT09LTEgYW5kIGNtZG1vZGUuZmluZCgnY29uZmlnLXRlbmFudC1kZWYtdm5zJyk9PS0xKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyID0gQ29tbWFuZERvY3VtZW50b3IoaGVhZGVyID0gTm9uZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyLmFkZF9jb21tYW5kKGNjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cjEgPSBoYW5kbGVyLmhhbmRsZV9jb21tYW5kX3Jlc3VsdHNfd2lraSgpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyMT0gc3RyMSsgJ1xuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsaXdpa2lmaWxlLndyaXRlKHN0cjEpCisgICAgI2dlbmVyYXRlIGFsbCBzaG93IGNvbW1hbmRzCisgICAgbmFtZT0nc2hvdycKKyAgICBzdHIxPSdcbmgyLiBTaG93IENvbW1hbmRzJworICAgIGNsaXdpa2lmaWxlLndyaXRlKHN0cjEpCisgICAgbW9kZT1bJ2NvbmZpZy1pbnRlcm5hbCddICNwcnVuZSBvdXQgYWxsIGludGVybmFsIGNvbW1hbmRzCisgICAgb2JqX3R5cGU9W10KKyAgICBmb3IgYyBpbiBjb21tYW5kX3JlZ2lzdHJ5OgorICAgICAgICBpZiBjWyduYW1lJ109PW5hbWUgYW5kIGNbJ21vZGUnXSBub3QgaW4gbW9kZToKKyAgICAgICAgICAgIG9iaj1jLmdldCgnb2JqLXR5cGUnKQorICAgICAgICAgICAgaWYgb2JqIGFuZCBvYmogbm90IGluIG9ial90eXBlOgorICAgICAgICAgICAgICAgIG9ial90eXBlLmFwcGVuZChvYmopCisgICAgICAgICAgICAgICAgc3RyMT0iJXMiICUgb2JqCisgICAgICAgICAgICAgICAgc3RyMT13aWtpX3NwZWNpYWxfY2hhcmFjdGVyX2hhbmRsaW5nKHN0cjEpCisgICAgICAgICAgICAgICAgc3RyMT0iXG5oMy4gU2hvdyAlcyBDb21tYW5kcyAiICUgb2JqLmNhcGl0YWxpemUoKQorICAgICAgICAgICAgICAgIGNsaXdpa2lmaWxlLndyaXRlKHN0cjEpCisgICAgICAgICAgICAgICAgZm9yIGNjIGluIGNvbW1hbmRfcmVnaXN0cnk6CisgICAgICAgICAgICAgICAgICAgIGlmIG5hbWU9PWNjWyduYW1lJ10gYW5kIG9iaj09Y2MuZ2V0KCdvYmotdHlwZScpIGFuZCBjY1snbW9kZSddIG5vdCBpbiBtb2RlOgorICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlciA9IENvbW1hbmREb2N1bWVudG9yKGhlYWRlciA9IE5vbmUpCisgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVyLmFkZF9jb21tYW5kKGNjKQorICAgICAgICAgICAgICAgICAgICAgICAgc3RyMSA9IGhhbmRsZXIuaGFuZGxlX2NvbW1hbmRfcmVzdWx0c193aWtpKCkKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cjE9IHN0cjErICdcbicKKyAgICAgICAgICAgICAgICAgICAgICAgIGNsaXdpa2lmaWxlLndyaXRlKHN0cjEpCisKKyAgICBjbGl3aWtpZmlsZS5jbG9zZSgpCisgICAgcHJpbnQgJ0NMSSByZWZlcmVuY2Ugd2lraSBtYXJrdXAgZmlsZSBpcyBnZW5lcmF0ZWQgc3VjY2Vzc2Z1bGx5IGF0OiBjbGkvY2xpd2lraS50eHQuXG4gJworCisjCisjIExpbnQ6IFZlcmlmeSByZXF1ZXN0ZWQgY29tbWFuZHMKKyMKK2NsYXNzIENvbW1hbmRMaW50KENvbW1hbmRIYW5kbGVyKToKKyAgICAKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHN1cGVyKENvbW1hbmRMaW50LCBzZWxmKS5fX2luaXRfXygpCisgICAgICAgIHNlbGYuY29tbWFuZHMgPSBbXQorCisgICAgZGVmIGhhbmRsZV9pbmNvbXBsZXRlX2NvbW1hbmQoc2VsZiwgYXJnLCBhcmdfc2NvcGVzLCBhcmdfZGF0YSwgZmllbGRzLCBwYXJzZWRfdGFnLCBjb21tYW5kKToKKyAgICAgICAgaWYgY29tbWFuZCBub3QgaW4gc2VsZi5jb21tYW5kczoKKyAgICAgICAgICAgIHNlbGYuY29tbWFuZHMuYXBwZW5kKGNvbW1hbmQpCisKKyAgICBkZWYgaGFuZGxlX2NvbXBsZXRlX2NvbW1hbmQoc2VsZiwgcHJlZml4X21hdGNoZXMsIHNjb3BlcywgYXJnX2RhdGEsIGZpZWxkcywgYWN0aW9ucywgY29tbWFuZCk6CisgICAgICAgIGlmIGNvbW1hbmQgbm90IGluIHNlbGYuY29tbWFuZHM6CisgICAgICAgICAgICBzZWxmLmNvbW1hbmRzLmFwcGVuZChjb21tYW5kKQorICAgICAgICAKKyAgICBkZWYgbGludF9hY3Rpb25fcXVlcnlfdGFibGUoc2VsZiwgY19zZWxmLCBjb21tYW5kLCBjX3Njb3BlKToKKyAgICAgICAgIyBsb29rIGZvciBpdGVtcyB3aGljaCBhcmUgbm90IHBhcmFtZXRlcnMKKyAgICAgICAgYXR0cnMgPSBbJ3Byb2MnLCAna2V5JywgJ3Njb3BlZCcsICdzb3J0JywgJ2NyYWNrJywgJ29iai10eXBlJywgJ3Byb2MnXQorICAgICAgICBmb3IgYSBpbiBjX3Njb3BlOgorICAgICAgICAgICAgaWYgbm90IGEgaW4gYXR0cnM6CisgICAgICAgICAgICAgICAgcHJpbnQgJyVzOiB1bmtub3duIGF0dHJpYnV0ZSAlcyBmb3IgcXVlcnktdGFibGUnICUgKGNfc2VsZiwgYSkKKyAgICAgICAgcmVxID0gWydvYmotdHlwZSddCisgICAgICAgIGZvciByIGluIHJlcToKKyAgICAgICAgICAgIGlmIG5vdCByIGluIGNfc2NvcGU6CisgICAgICAgICAgICAgICAgcHJpbnQgJyVzOiBtaXNzaW5nIHJlcXVpcmVkIGF0dHJpYnV0ZSAlcyBmb3IgcXVlcnktdGFibGUnICUgKAorICAgICAgICAgICAgICAgICAgICBjX3NlbGYsIHIpCisgICAgICAgIGlmICdvYmotdHlwZScgaW4gY19zY29wZToKKyAgICAgICAgICAgIGlmIG5vdCBtaS5vYmpfdHlwZV9leGlzdHMoY19zY29wZVsnb2JqLXR5cGUnXSk6CisgICAgICAgICAgICAgICAgcHJpbnQgJyVzOiBxdWVyeS10YWJsZSBubyBzdWNoIG9iai10eXBlICVzJyAlICgKKyAgICAgICAgICAgICAgICAgICAgICAgIGNfc2VsZiwgY19zY29wZVsnb2JqLXR5cGUnXSkKKworICAgIGRlZiBsaW50X2FjdGlvbl9xdWVyeV9yZXN0KHNlbGYsIGNfc2VsZiwgY29tbWFuZCwgY19zY29wZSk6CisgICAgICAgICMgbG9vayBmb3IgaXRlbXMgd2hpY2ggYXJlIG5vdCBwYXJhbWV0ZXJzCisgICAgICAgIGF0dHJzID0gWydwcm9jJywgJ3VybCcsICdyZXN0LXR5cGUnLCAna2V5JywgJ3Njb3BlZCcsICdzb3J0JywgJ2FwcGVuZCddCisgICAgICAgIGZvciBhIGluIGNfc2NvcGU6CisgICAgICAgICAgICBpZiBub3QgYSBpbiBhdHRyczoKKyAgICAgICAgICAgICAgICBwcmludCAnJXM6IHVua25vd24gYXR0cmlidXRlICVzIGZvciBxdWVyeS1yZXN0JyAlIChjX3NlbGYsIGEpCisgICAgICAgIHJlcSA9IFsndXJsJ10KKyAgICAgICAgZm9yIHIgaW4gcmVxOgorICAgICAgICAgICAgaWYgbm90IHIgaW4gY19zY29wZToKKyAgICAgICAgICAgICAgICBwcmludCAnJXM6IG1pc3NpbmcgcmVxdWlyZWQgYXR0cmlidXRlICVzIGZvciBxdWVyeS1yZXN0JyAlICgKKyAgICAgICAgICAgICAgICAgICAgY19zZWxmLCByKQorICAgICAgICBpZiAnYXBwZW5kJyBpbiBjX3Njb3BlOgorICAgICAgICAgICAgaWYgdHlwZShjX3Njb3BlWydhcHBlbmQnXSkgIT0gZGljdDoKKyAgICAgICAgICAgICAgICBwcmludCAnJXM6IGFwcGVuZCBwYXJhbWV0ZXIgaW4gcXVlcnlfcmVzdCcgXAorICAgICAgICAgICAgICAgICAgICAgICdyZXF1aXJlZCB0byBiZSBhIGRpY3QnICUgKGNfc2VsZikKKworICAgIGRlZiBsaW50X2FjdGlvbl9qb2luX3RhYmxlKHNlbGYsIGNfc2VsZiwgY29tbWFuZCwgY19zY29wZSk6CisgICAgICAgICMgbG9vayBmb3IgaXRlbXMgd2hpY2ggYXJlIG5vdCBwYXJhbWV0ZXJzCisgICAgICAgIGF0dHJzID0gWydwcm9jJywgJ29iai10eXBlJywgJ2tleScsICdrZXktdmFsdWUnLCAnYWRkLWZpZWxkJywgJ2pvaW4tZmllbGQnLCAnY3JhY2snXQorICAgICAgICBmb3IgYSBpbiBjX3Njb3BlOgorICAgICAgICAgICAgaWYgbm90IGEgaW4gYXR0cnM6CisgICAgICAgICAgICAgICAgcHJpbnQgJyVzOiB1bmtub3duIGF0dHJpYnV0ZSAlcyBmb3Igam9pbi10YWJsZScgJSAoY19zZWxmLCBhKQorICAgICAgICByZXEgPSBbJ29iai10eXBlJywgJ2tleScsICdqb2luLWZpZWxkJ10KKyAgICAgICAgZm9yIHIgaW4gcmVxOgorICAgICAgICAgICAgaWYgbm90IHIgaW4gY19zY29wZToKKyAgICAgICAgICAgICAgICBwcmludCAnJXM6IG1pc3NpbmcgcmVxdWlyZWQgYXR0cmlidXRlICVzIGZvciBxdWVyeS10YWJsZScgJSAoCisgICAgICAgICAgICAgICAgICAgIGNfc2VsZiwgcikKKyAgICAgICAgaWYgJ29iai10eXBlJyBpbiBjX3Njb3BlOgorICAgICAgICAgICAgaWYgbm90IG1pLm9ial90eXBlX2V4aXN0cyhjX3Njb3BlWydvYmotdHlwZSddKToKKyAgICAgICAgICAgICAgICBwcmludCAnJXM6IGpvaW4tdGFibGUgbm8gc3VjaCBvYmotdHlwZSAlcycgJSAoCisgICAgICAgICAgICAgICAgICAgICAgICBjX3NlbGYsIGNfc2NvcGVbJ29iai10eXBlJ10pCisKKyAgICBkZWYgbGludF9kaWN0X2FjdGlvbihzZWxmLCBjX3NlbGYsIGNvbW1hbmQsIGNfYWN0aW9uLCBjX3Njb3BlKToKKyAgICAgICAgaWYgbm90ICdwcm9jJyBpbiBjX2FjdGlvbjoKKyAgICAgICAgICAgIHByaW50ICclczogInByb2MiIGV4cGVjdGVkIGZvciBkaWN0IGluIGFjdGlvbicgJSBjX3NlbGYKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBhY3Rpb24gPSBjX2FjdGlvblsncHJvYyddCisgICAgICAgIGlmIG5vdCBhY3Rpb24gaW4gYWN0aW9uX3JlZ2lzdHJ5OgorICAgICAgICAgICAgcHJpbnQgJyVzOiBhY3Rpb24gJXMgdW5rbm93bicgJSAoY19zZWxmLCBjX2FjdGlvbikKKyAgICAgICAgaWYgY19hY3Rpb24gPT0gJ2Rpc3BsYXktcmVzdCc6CisgICAgICAgICAgICBpZiBub3QgJ3VybCcgaW4gY19hY3Rpb246CisgICAgICAgICAgICAgICAgcHJpbnQgJyVzOiBtaXNzaW5nICJ1cmwiIGZvciBkaXNwbGF5LXJlc3QnICUgY19zZWxmCisgICAgICAgIGlmIGFjdGlvbiA9PSAnZGlzcGxheS10YWJsZSc6CisgICAgICAgICAgICBpZiBub3QgJ29iai10eXBlJyBpbiBjX2FjdGlvbjoKKyAgICAgICAgICAgICAgICAjIGNvdWxkIGJlIGluIGNfc2NvcGUsIG9yIG90aGVyIG5lc3RzLgorICAgICAgICAgICAgICAgIHByaW50ICclczogbWlzc2luZyAib2JqLXR5cGUiIGZvciBkaXNwbGF5LXRhYmxlJyAlIGNfc2VsZgorICAgICAgICBpZiBhY3Rpb24gaW4gWydxdWVyeS10YWJsZScsICdxdWVyeS10YWJsZS1hcHBlbmQnXToKKyAgICAgICAgICAgIHNlbGYubGludF9hY3Rpb25fcXVlcnlfdGFibGUoY19zZWxmLCBjb21tYW5kLCBjX2FjdGlvbikKKyAgICAgICAgaWYgYWN0aW9uIGluIFsncXVlcnktcmVzdCcsICdxdWVyeS10YWJsZS1yZXN0J106CisgICAgICAgICAgICBzZWxmLmxpbnRfYWN0aW9uX3F1ZXJ5X3Jlc3QoY19zZWxmLCBjb21tYW5kLCBjX2FjdGlvbikKKyAgICAgICAgaWYgYWN0aW9uID09ICdqb2luLXRhYmxlJzoKKyAgICAgICAgICAgIHNlbGYubGludF9hY3Rpb25fam9pbl90YWJsZShjX3NlbGYsIGNvbW1hbmQsIGNfYWN0aW9uKQorICAgICAgICBpZiBhY3Rpb24gPT0gJ2xlZ2FjeS1jbGknOgorICAgICAgICAgICAgcHJpbnQgJyVzOiBMRUdBQ1ktQ0xJLCBjb25zaWRlciByZWltcGxlbWVudGF0aW9uJyAlIGNfc2VsZgorCisgICAgZGVmIGxpbnRfYWN0aW9uKHNlbGYsIGNfc2VsZiwgY29tbWFuZCwgY19hY3Rpb24sIGNfdHlwZSwgY19zY29wZSk6CisgICAgICAgIGlmIHR5cGUoY19hY3Rpb24pID09IHR1cGxlOgorICAgICAgICAgICAgZm9yIHQgaW4gY19hY3Rpb246CisgICAgICAgICAgICAgICAgaWYgdHlwZSh0KSA9PSBsaXN0OgorICAgICAgICAgICAgICAgICAgICBwcmludCAnJXM6IExJU1Qgbm9zdCBzdXBwb3J0ZWQgYXMgYSBtZW1iZXIgb2YgYWN0aW9ucycgJSBjX3NlbGYKKyAgICAgICAgICAgICAgICBlbGlmIHR5cGUodCkgPT0gZGljdDoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5saW50X2RpY3RfYWN0aW9uKGNfc2VsZiwgY29tbWFuZCwgdCwgY19zY29wZSkKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgIGlmIHR5cGUoY19hY3Rpb24pID09IGRpY3Q6CisgICAgICAgICAgICBzZWxmLmxpbnRfZGljdF9hY3Rpb24oY19zZWxmLCBjb21tYW5kLCBjX2FjdGlvbiwgY19zY29wZSkKKyAgICAgICAgaWYgdHlwZShjX2FjdGlvbikgPT0gc3RyOgorICAgICAgICAgICAgaWYgbm90IGNfYWN0aW9uIGluIGFjdGlvbl9yZWdpc3RyeToKKyAgICAgICAgICAgICAgICBwcmludCAnJXM6IGFjdGlvbiAlcyB1bmtub3duJyAlIChjX3NlbGYsIGNfYWN0aW9uKQorICAgICAgICAgICAgaWYgY19hY3Rpb24gPT0gJ2Rpc3BsYXktcmVzdCc6CisgICAgICAgICAgICAgICAgaWYgbm90ICd1cmwnIGluIGNfc2NvcGU6CisgICAgICAgICAgICAgICAgICAgIHByaW50ICclczogbWlzc2luZyAidXJsIiBmb3IgZGlzcGxheS1yZXN0JyAlIGNfc2VsZgorICAgICAgICAgICAgaWYgY19hY3Rpb24gaW4gWydxdWVyeS10YWJsZScsICdxdWVyeS10YWJsZS1hcHBlbmQnXToKKyAgICAgICAgICAgICAgICBzZWxmLmxpbnRfYWN0aW9uX3F1ZXJ5X3RhYmxlKGNfc2VsZiwgY29tbWFuZCwgY19zY29wZSkKKyAgICAgICAgICAgIGlmIGNfYWN0aW9uIGluIFsncXVlcnktcmVzdCcsICdxdWVyeS10YWJsZS1yZXN0J106CisgICAgICAgICAgICAgICAgc2VsZi5saW50X2FjdGlvbl9xdWVyeV9yZXN0KGNfc2VsZiwgY29tbWFuZCwgY19zY29wZSkKKyAgICAgICAgICAgIGlmIGNfYWN0aW9uID09ICdqb2luLXRhYmxlJzoKKyAgICAgICAgICAgICAgICBzZWxmLmxpbnRfYWN0aW9uX2pvaW5fdGFibGUoY19zZWxmLCBjb21tYW5kLCBjX3Njb3BlKQorICAgICAgICAgICAgaWYgY19hY3Rpb24gPT0gJ2xlZ2FjeS1jbGknOgorICAgICAgICAgICAgICAgIHByaW50ICclczogTEVHQUNZLUNMSSwgY29uc2lkZXIgcmVpbXBsZW1lbnRhdGlvbicgJSBjX3NlbGYKKworICAgIGRlZiBsaW50X2Nob2ljZShzZWxmLCBjX3NlbGYsIGNvbW1hbmQsIGNfY2hvaWNlLCBjX3R5cGUpOgorICAgICAgICBmb3IgY2hvaWNlIGluIGNfY2hvaWNlOgorICAgICAgICAgICAgaWYgdHlwZShjaG9pY2UpID09IHR1cGxlOgorICAgICAgICAgICAgICAgICMgaW4gb3JkZXIgY29sbGVjdGlvbiBvZiB0ZXJtcywgdGhlc2UgYXJlbid0IGNob2ljZXMsIGJ1dCAKKyAgICAgICAgICAgICAgICAjIGhlcmUgZSBjYW4gdHJlYXQgdGhlbSB0aGF0IHdheQorICAgICAgICAgICAgICAgIGZvciB0IGluIGNob2ljZToKKyAgICAgICAgICAgICAgICAgICAgaWYgdHlwZSh0KSA9PSBsaXN0OgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJyVzOiBMSVNUIG5vc3Qgc3VwcG9ydGVkIGFzIGEgbWVtYmVyIG9mIGNob2ljZXMnICUgY19zZWxmCisgICAgICAgICAgICAgICAgICAgIGVsaWYgdHlwZSh0KSA9PSBkaWN0OgorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5saW50X2Nob2ljZShjX3NlbGYsIGNvbW1hbmQsICh0LCksIGNfdHlwZSkKKyAgICAgICAgICAgICAgICAgICAgZWxpZiB0eXBlKHQpID09IHN0cjoKKyAgICAgICAgICAgICAgICAgICAgICAgICMgdG9rZW4sIG91Z2h0IHRvIHZhbGlkYXRlIGNoYXIncyBpbiB0b2tlbgorICAgICAgICAgICAgICAgICAgICAgICAgcGFzcworICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJyVzOiBiYWQgZWxlbWVudCB0eXBlIC0+ICVzJyAlIChjX3NlbGYsIHR5cGUodCkpCisKKyAgICAgICAgICAgIGlmICdjb21tYW5kLXR5cGUnIGluIGNob2ljZToKKyAgICAgICAgICAgICAgICBwcmludCAnJXM6IENIT0lDRSBjb250YWlucyAiY29tbWFuZC10eXBlIiwgb25seScgXAorICAgICAgICAgICAgICAgICAgICAnIGludGVuZGVkIHRvIGJlIHVzZWQgYXQgdG9wIGxldmVsJyAlIGNfc2VsZgorICAgICAgICAgICAgICAgIGlmIG5vdCBjaG9pY2VbJ2NvbW1hbmQtdHlwZSddIGluIGNvbW1hbmRfdHlwZV9kZWZhdWx0czoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJyVzOiBtaXNzaW5nIGNvbW1hbmQtdHlwZSAlcycgJSAoY19zZWxmLCBjaG9pY2VbJ2NvbW1hbmQtdHlwZSddKQorICAgICAgICAgICAgaWYgJ2FjdGlvbicgaW4gY2hvaWNlOgorICAgICAgICAgICAgICAgIHNlbGYubGludF9hY3Rpb24oY19zZWxmLCBjb21tYW5kLCBjaG9pY2VbJ2FjdGlvbiddLCBjX3R5cGUsIGNob2ljZSkKKyAgICAgICAgICAgIGlmICdjaG9pY2VzJyBpbiBjaG9pY2U6CisgICAgICAgICAgICAgICAgc2VsZi5saW50X2Nob2ljZShjX3NlbGYsIGNvbW1hbmQsIGNob2ljZVsnY2hvaWNlcyddLCBjX3R5cGUpCisKKyAgICBkZWYgbGludF9jb21tYW5kKHNlbGYsY29tbWFuZCk6CisgICAgICAgIGNfc2VsZiA9IGNvbW1hbmQuZ2V0KCdzZWxmJywgJ1VOS05PV04gU0VMRiBOQU5FJykKKyAgICAgICAgcHJpbnQgY29tbWFuZFsnc2VsZiddCisKKyAgICAgICAgY19uYW1lID0gY29tbWFuZC5nZXQoJ25hbWUnLCBOb25lKQorICAgICAgICBpZiBjX25hbWUgPT0gTm9uZToKKyAgICAgICAgICAgIHByaW50ICclczogbm8gbmFtZSBkZWZpbmVkJyAlIGNfc2VsZgorCisgICAgICAgIGNfbW9kZSA9IGNvbW1hbmQuZ2V0KCdtb2RlJywgTm9uZSkKKyAgICAgICAgaWYgY19tb2RlID09IE5vbmU6CisgICAgICAgICAgICBwcmludCAnJXM6IG5vIHN1Ym1vZGUgZGVmaW5lZCcgJSBjX3NlbGYKKworICAgICAgICBjX3Nob3J0X2hlbHAgPSBjb21tYW5kLmdldCgnc2hvcnQtaGVscCcsIE5vbmUpCisgICAgICAgIGlmIGNfc2hvcnRfaGVscCA9PSBOb25lOgorICAgICAgICAgICAgcHJpbnQgJyVzOiBubyBzaG9ydC1oZWxwIGRlZmluZWQnICUgY19zZWxmCisKKyAgICAgICAgY19vYmpfdHlwZSA9IGNvbW1hbmQuZ2V0KCdvYmotdHlwZScsIE5vbmUpCisKKyAgICAgICAgY19jdXJyZW50X21vZGVfb2JqX2lkID0gY29tbWFuZC5nZXQoJ2N1cnJlbnQtbW9kZS1vYmotaWQnLCBOb25lKQorICAgICAgICBpZiAnY3VycmVudC1tb2RlLW9iai1pZCcgaW4gY29tbWFuZDoKKyAgICAgICAgICAgIGlmIGNfY3VycmVudF9tb2RlX29ial9pZCA9PSBOb25lOgorICAgICAgICAgICAgICAgIHByaW50ICclczogImN1cnJlbnQtbW9kZS1vYmotaWQiIG5vdCBuZWVkZWQgYXQgdG9wIGxldmVsJyAlIGNfc2VsZgorCisgICAgICAgIGNfcGFyZW50X2lkID0gY29tbWFuZC5nZXQoJ3BhcmVudC1pZCcsIE5vbmUpCisgICAgICAgIGlmICdwYXJlbnQtaWQnIGluIGNvbW1hbmQ6CisgICAgICAgICAgICBpZiBjX3BhcmVudF9pZCA9PSBOb25lOgorICAgICAgICAgICAgICAgIHByaW50ICclczogInBhcmVudC1pZCIgbm90IG5lZWRlZCBhdCB0b3AgbGV2ZWwnICUgY19zZWxmCisKKyAgICAgICAgY190eXBlID0gY29tbWFuZC5nZXQoJ2NvbW1hbmQtdHlwZScsIE5vbmUpCisKKyAgICAgICAgY19hcmdzID0gY29tbWFuZC5nZXQoJ2FyZ3MnLCBOb25lKQorICAgICAgICBpZiBjX2FyZ3MgPT0gTm9uZToKKyAgICAgICAgICAgIHByaW50ICclczogbm8gYXJncyBkZWZpbmVkJyAlIGNfYXJncworCisgICAgICAgIGNfYWN0aW9uID0gY29tbWFuZC5nZXQoJ2FjdGlvbicsIE5vbmUpCisKKyAgICAgICAgaWYgY19hY3Rpb24gb3IgY190eXBlOgorICAgICAgICAgICAgc2VsZi5saW50X2FjdGlvbihjX3NlbGYsIGNvbW1hbmQsIGNfYWN0aW9uLCBjX3R5cGUsIGNvbW1hbmQpCisKKyAgICAgICAgaWYgdHlwZShjX2FyZ3MpID09IGRpY3Q6CisgICAgICAgICAgICBpZiAnYWN0aW9uJyBpbiBjX2FyZ3M6CisgICAgICAgICAgICAgICAgc2VsZi5saW50X2FjdGlvbihjX3NlbGYsIGNvbW1hbmQsIGNfYXJnc1snYWN0aW9uJ10sIGNfdHlwZSwgY19hcmdzKQorICAgICAgICAgICAgaWYgJ2Nob2ljZXMnIGluIGNfYXJnczoKKyAgICAgICAgICAgICAgICBzZWxmLmxpbnRfY2hvaWNlKGNfc2VsZiwgY29tbWFuZCwgY19hcmdzWydjaG9pY2VzJ10sIGNfdHlwZSkKKyAgICAgICAgICAgIGlmICdjaG9pY2UnIGluIGNfYXJnczoKKyAgICAgICAgICAgICAgICBwcmludCAnJXM6ICJjaG9pY2VzIiBub3QgImNob2ljZSInICUgY19zZWxmCisgICAgICAgIGVsaWYgdHlwZShjX2FyZ3MpID09IHR1cGxlIG9yIHR5cGUoY19hcmdzKSA9PSBsaXN0OgorICAgICAgICAgICAgZm9yIGEgaW4gY19hcmdzOgorICAgICAgICAgICAgICAgIGlmICdhY3Rpb24nIGluIGE6CisgICAgICAgICAgICAgICAgICAgIHNlbGYubGludF9hY3Rpb24oY19zZWxmLCBjb21tYW5kLCBhWydhY3Rpb24nXSwgY190eXBlLCBhKQorICAgICAgICAgICAgICAgIGlmICdjaG9pY2VzJyBpbiBhOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmxpbnRfY2hvaWNlKGNfc2VsZiwgY29tbWFuZCwgYVsnY2hvaWNlcyddLCBjX3R5cGUpCisgICAgICAgICAgICAgICAgaWYgJ2Nob2ljZScgaW4gYToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJyVzOiAiY2hvaWNlcyIgbm90ICJjaG9pY2UiJyAlIGNfc2VsZgorICAgICAgICAgICAgICAgIGlmICdmaWVsZCcgaW4gYToKKyAgICAgICAgICAgICAgICAgICAgaWYgY19vYmpfdHlwZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBtaS5vYmpfdHlwZV9oYXNfZmllbGQoY19vYmpfdHlwZSwgYVsnZmllbGQnXSk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJyVzOiAlcyBNSVNTSU5HIEZJRUxEICVzJyAlIChjX3NlbGYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjX29ial90eXBlLCBhWydmaWVsZCddKQorCisKKyAgICBkZWYgaGFuZGxlX2NvbW1hbmRfcmVzdWx0cyhzZWxmKToKKyAgICAgICAgaWYgbGVuKHNlbGYuY29tbWFuZHMpID09IDA6CisgICAgICAgICAgICByZXR1cm4gJ05vIGFwcGxpY2FibGUgY29tbWFuZDogJXMnICUgJyAnLmpvaW4oc2VsZi53b3JkcykKKyAgICAgICAgCisgICAgICAgIGZvciBjb21tYW5kIGluIHNlbGYuY29tbWFuZHM6CisgICAgICAgICAgICBzZWxmLmxpbnRfY29tbWFuZChjb21tYW5kKQorCisgICAgICAgIHJldHVybiAnLS0nCisKKworZGVmIGxpbnRfY29tbWFuZCh3b3Jkcyk6CisgICAgbGludCA9IENvbW1hbmRMaW50KCkKKyAgICBpZiBsZW4od29yZHMpID09IDA6CisgICAgICAgIGZvciBjb21tYW5kIGluIGNvbW1hbmRfcmVnaXN0cnk6CisgICAgICAgICAgICBsaW50LmxpbnRfY29tbWFuZChjb21tYW5kKQorICAgIGVsc2U6CisgICAgICAgIGZvciBjb21tYW5kIGluIGNvbW1hbmRfcmVnaXN0cnk6CisgICAgICAgICAgICBpZiBjb21tYW5kWydzZWxmJ10gaW4gd29yZHM6CisgICAgICAgICAgICAgICAgbGludC5saW50X2NvbW1hbmQoY29tbWFuZCkKKyAgICByZXR1cm4gJycKKworCitjbGFzcyBDb21tYW5kUGVybXV0b3IoQ29tbWFuZEhhbmRsZXIpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHF1YWxpZnkgPSBGYWxzZSk6CisgICAgICAgICIiIgorICAgICAgICBAcGFyYW0gcXVhbGlmeSBHZW5lcmF0ZSBxdWFsaWZ5IHZlcnNpb24gb2YgdGhlIHBlcm11dGF0aW9ucworICAgICAgICAiIiIKKyAgICAgICAgc3VwZXIoQ29tbWFuZFBlcm11dG9yLCBzZWxmKS5fX2luaXRfXygpCisgICAgICAgIHNlbGYuY29tbWFuZHMgPSBbXQorICAgICAgICBzZWxmLmNvbGxlY3QgPSBbXQorICAgICAgICBzZWxmLnF1YWxpZnkgPSBxdWFsaWZ5CisKKyAgICAgICAgc2VsZi5vYmpfdHlwZSA9IE5vbmUKKyAgICAgICAgc2VsZi5vYmpfdHlwZV9vdGhlciA9IE5vbmUKKworCisgICAgZGVmIGNvbGxlY3RfY29tcGxldGVfY29tbWFuZChzZWxmLCBsaW5lKToKKyAgICAgICAgaWYgc2VsZi5xdWFsaWZ5OgorICAgICAgICAgICAgIyBjb2xsZWN0IHRvZ2V0aGVyIHBhcnRzLCB3aGVuIGEgdG9rZW4gYXBwZWFycywKKyAgICAgICAgICAgICMgcmVwbGFjZSB0aGUgdG9rZW4gd2l0aCBhIHByb2NlZHVyZSBjYWxsLgorICAgICAgICAgICAgaWYgbGVuKGxpbmUpID09IDA6CisgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICBuZXdfbGluZSA9IFsnIiddCisgICAgICAgICAgICBxdW90ZWQgPSBUcnVlCisgICAgICAgICAgICBpZiBsaW5lWzBdWzBdID09ICcrJzogIyB1bnVzdWFsCisgICAgICAgICAgICAgICAgbmV3X2xpbmUgPSBbJyVzICcgJSBsaW5lWzBdWzE6XV0KKyAgICAgICAgICAgICAgICBsaW5lID0gbGluZVsxOl0KKyAgICAgICAgICAgICAgICBxdW90ZWQgPSBGYWxzZQorICAgICAgICAgICAgZm9yIGl0ZW0gaW4gbGluZToKKyAgICAgICAgICAgICAgICBpZiBxdW90ZWQ6CisgICAgICAgICAgICAgICAgICAgIGlmIGl0ZW1bMF0gPT0gJysnOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV3X2xpbmUuYXBwZW5kKCciICsgJXMgJyAlIGl0ZW1bMTpdKQorICAgICAgICAgICAgICAgICAgICAgICAgcXVvdGVkID0gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIG5ld19saW5lLmFwcGVuZCgnJXMgJyAlIGl0ZW0pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgaXRlbVswXSA9PSAnKyc6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdfbGluZS5hcHBlbmQoJyArICIgIiArICVzICcgJSBpdGVtWzE6XSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlZCA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdfbGluZS5hcHBlbmQoJysgIiAlcyAnICUgaXRlbSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHF1b3RlZCA9IFRydWUKKyAgICAgICAgICAgIGlmIHF1b3RlZDoKKyAgICAgICAgICAgICAgICBuZXdfbGluZS5hcHBlbmQoJyInKQorCisgICAgICAgICAgICBzZWxmLmNvbGxlY3QuYXBwZW5kKCcnLmpvaW4obmV3X2xpbmUpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5jb2xsZWN0LmFwcGVuZCgnICcuam9pbihsaW5lKSkKKworCisgICAgZGVmIGZpZWxkX3RvX2dlbmVyYXRvcihzZWxmLCBmaWVsZCk6CisgICAgICAgICIiIgorICAgICAgICBDb252ZXJ0IHRoZSBmaWVsZCBuYW1lIHRvIGEgdGV4dCBmaWVsZC4KKyAgICAgICAgV2hlbiAncXVhbGlmeScgaXMgc2V0LCByZXBsYWNlIHRoZSBmaWVsZCBuYW1lCisgICAgICAgIHdpdGggYSBsaWtlbHkgcHJvY2VkdXJlIHRvIGNhbGwgaW5zdGVhZAorICAgICAgICAiIiIKKyAgICAgICAgaWYgc2VsZi5xdWFsaWZ5OgorICAgICAgICAgICAgIyBNYW55IG9mIHRoZSBmaWVsZHMgYXJlIGFjdHVhbGx5IGZpZWxkcyBpbgorICAgICAgICAgICAgIyB0aGUgbmFtZWQgb2JqLXR5cGUuICBUYWtlIGEgc2hvdCBhdCBzZWVpbmcgaWYgdGhhdCdzCisgICAgICAgICAgICAjIHRoZSBjYXNlLCBhbmQgY2FsbCBhIHNhbXBsZSB2YWx1ZSBjb2xsZWN0b3IKKworICAgICAgICAgICAgaWYgc2VsZi5vYmpfdHlwZV9vdGhlcjoKKyAgICAgICAgICAgICAgICAjIFRoZXNlIGFyZSB0eXBpY2FsbHkgYW4gb2JqX3R5cGV8ZmllbGQgbmFtZXMuCisgICAgICAgICAgICAgICAgcGFydHMgPSBzZWxmLm9ial90eXBlX290aGVyLnNwbGl0KCd8JykKKyAgICAgICAgICAgICAgICBvX2ZpZWxkID0gZmllbGQKKyAgICAgICAgICAgICAgICBpZiBsZW4ocGFydHMpID4gMToKKyAgICAgICAgICAgICAgICAgICAgb19maWVsZCA9IHBhcnRzWzFdCisgICAgICAgICAgICAgICAgIyBieSB1c2luZyBvYmpfdHlwZV9oYXNfbW9kZWwoKSBpbnN0ZWFkIG9mCisgICAgICAgICAgICAgICAgIyBvYmpfdHlwZV9leGlzdHMoKSwgJ2N1cmwoMSknIGNhbiBiZSB1c2VkIGluCisgICAgICAgICAgICAgICAgIyB0aGUgdGVzdGluZyB0byBmaW5kIHNhbXBsZSBvYmplY3RzLgorICAgICAgICAgICAgICAgIGlmIG1pLm9ial90eXBlX2hhc19tb2RlbChwYXJ0c1swXSk6CisgICAgICAgICAgICAgICAgICAgIHNhbXBsZV9vYmpfdHlwZSA9ICdzYW1wbGVfb2JqX3R5cGUnCisgICAgICAgICAgICAgICAgICAgIGlmIHNlbGYuaXNfbm9fY29tbWFuZDoKKyAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZV9vYmpfdHlwZSA9ICdzYW1wbGVfbm9fb2JqX3R5cGUnCisgICAgICAgICAgICAgICAgICAgIGlmIG1pLm9ial90eXBlX2hhc19maWVsZChwYXJ0c1swXSwgb19maWVsZCk6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gJytpZC4lcygiJXMiLCAiJXMiKScgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIChzYW1wbGVfb2JqX3R5cGUsIHBhcnRzWzBdLCBvX2ZpZWxkKQorCisgICAgICAgICAgICBweXRob25fZmllbGQgPSBmaWVsZC5yZXBsYWNlKCItIiwgIl8iKQorICAgICAgICAgICAgaWYgc2VsZi5vYmpfdHlwZToKKyAgICAgICAgICAgICAgICBzYW1wbGVfb2JqX3R5cGUgPSAnc2FtcGxlX29ial90eXBlJworICAgICAgICAgICAgICAgIGlmIHNlbGYuaXNfbm9fY29tbWFuZDoKKyAgICAgICAgICAgICAgICAgICAgc2FtcGxlX29ial90eXBlID0gJ3NhbXBsZV9ub19vYmpfdHlwZScKKyAgICAgICAgICAgICAgICBpZiBtaS5vYmpfdHlwZV9oYXNfZmllbGQoc2VsZi5vYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gJytpZC4lcygiJXMiLCAiJXMiKScgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICUgKHNhbXBsZV9vYmpfdHlwZSwgc2VsZi5vYmpfdHlwZSwgZmllbGQpCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcraWQuJXMoIiVzIiknICUgKHB5dGhvbl9maWVsZCwgc2VsZi5vYmpfdHlwZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcmV0dXJuICcraWQuJXMoKScgJSBweXRob25fZmllbGQKKworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuICI8JXM+IiAlIGZpZWxkCisgICAgICAgIAorCisgICAgZGVmIHBlcm11dGVfaXRlbShzZWxmLCBpdGVtLCBsaW5lLCBuZXh0X2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgRGVhbHMgd2l0aCBhIHNpbmdsZSBkaWN0aW9uYXJ5IGl0ZW0uICBUaGlzIGNhbiBiZToKKyAgICAgICAgYSBjaG9pY2UsIGFuIGFyZywgYSB0b2tlbiwgb3IgYSBmaWVsZC4KKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgdHlwZShpdGVtKSA9PSBzdHI6CisgICAgICAgICAgICBsaW5lLmFwcGVuZChpdGVtKQorICAgICAgICAgICAgc2VsZi5wZXJtdXRlX2luX29yZGVyKG5leHRfYXJnc1swXSwgbGluZSwgbmV4dF9hcmdzWzE6XSkKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGlmIHNlbGYuaXNfbm9fY29tbWFuZDoKKyAgICAgICAgICAgIG9wdGlvbmFsID0gaXRlbS5nZXQoJ29wdGlvbmFsLWZvci1ubycsIEZhbHNlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgb3B0aW9uYWwgPSBpdGVtLmdldCgnb3B0aW9uYWwnLCBGYWxzZSkKKworCisgICAgICAgIHNraXAgPSBpdGVtLmdldCgncGVybXV0ZScpICAgICAgIyBYWFggcGVybXV0ZSB2cyBxdWFsaWZ5IHNraXA/CisKKyAgICAgICAgaWYgc2tpcCAhPSAnc2tpcCcgYW5kIG9wdGlvbmFsOgorICAgICAgICAgICAgaWYgbGVuKG5leHRfYXJncyk6CisgICAgICAgICAgICAgICAgc2VsZi5wZXJtdXRlX2luX29yZGVyKE5vbmUsIGxpbmUsIG5leHRfYXJncykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc2VsZi5jb2xsZWN0X2NvbXBsZXRlX2NvbW1hbmQobGluZSkKKworICAgICAgICBjaG9pY2VzID0gaXRlbS5nZXQoJ2Nob2ljZXMnKQorICAgICAgICBpZiBjaG9pY2VzOgorICAgICAgICAgICAgc2VsZi5wZXJtdXRlX2Nob2ljZXMoY2hvaWNlcywgbGlzdChsaW5lKSwgbmV4dF9hcmdzKQorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIAorICAgICAgICBpZiBza2lwID09ICdza2lwJzoKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHRva2VuID0gaXRlbS5nZXQoJ3Rva2VuJykKKyAgICAgICAgdGFnID0gaXRlbS5nZXQoJ3RhZycpCisgICAgICAgIGZpZWxkID0gaXRlbS5nZXQoJ2ZpZWxkJykKKyAgICAgICAgYXJncyA9IGl0ZW0uZ2V0KCdhcmdzJykKKyAgICAgICAgb2JqX3R5cGUgPSBpdGVtLmdldCgnb2JqLXR5cGUnKQorICAgICAgICBpZiBvYmpfdHlwZToKKyAgICAgICAgICAgIHNlbGYub2JqX3R5cGUgPSBvYmpfdHlwZQorCisgICAgICAgICMgbXVzdCBkbyB0aGlzIGFmdGVyIHRoZSByZWN1cnNpdmUgJ29wdGlvbmFsJyBjYWxscy4KKyAgICAgICAgc2VsZi5vYmpfdHlwZV9vdGhlciA9IGl0ZW0uZ2V0KCdvdGhlcicpCisKKyAgICAgICAgaWYgYXJnczoKKyAgICAgICAgICAgIGlmIHR5cGUoYXJncykgPT0gZGljdDoKKyAgICAgICAgICAgICAgICBzZWxmLnBlcm11dGVfaXRlbShhcmdzLCBsaW5lLCBuZXh0X2FyZ3MpCisgICAgICAgICAgICBlbGlmIHR5cGUoYXJncykgPT0gdHVwbGU6CisgICAgICAgICAgICAgICAgc2VsZi5wZXJtdXRlX2luX29yZGVyKGFyZ3MsIGxpc3QobGluZSksIG5leHRfYXJncykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcHJpbnQgJ1RZUEUgQVJHUyAnLCB0eXBlKGFyZ3MpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZWxpZiB0b2tlbjoKKyAgICAgICAgICAgIGxpbmUuYXBwZW5kKHRva2VuKQorICAgICAgICBlbGlmIGZpZWxkOgorICAgICAgICAgICAgaXRlbV90eXBlID0gaXRlbS5nZXQoJ3R5cGUnKQorICAgICAgICAgICAgaWYgaXRlbV90eXBlID09IE5vbmU6CisgICAgICAgICAgICAgICAgaXRlbV90eXBlID0gaXRlbS5nZXQoJ2Jhc2UtdHlwZScpCisgICAgICAgICAgICBpZiBpdGVtX3R5cGUgPT0gJ2VudW0nOgorICAgICAgICAgICAgICAgIHZhbHVlcyA9IGl0ZW0uZ2V0KCd2YWx1ZXMnKQorICAgICAgICAgICAgICAgIGlmIHZhbHVlczoKKyAgICAgICAgICAgICAgICAgICAgaWYgdGFnOgorICAgICAgICAgICAgICAgICAgICAgICAgbGluZS5hcHBlbmQodGFnKQorICAgICAgICAgICAgICAgICAgICAjIGNvbnZlcnQgdGhlIHZhbHVlcyBpbnRvIGEgdHVwbGUgb2YgZGljdHMsIAorICAgICAgICAgICAgICAgICAgICAjIHNvIHRoYXQgcGVybXV0ZV9jaG9pY2VzIGNhbiBtYW5hZ2UgaXQKKyAgICAgICAgICAgICAgICAgICAgaWYgdHlwZSh2YWx1ZXMpID09IHN0cjoKKyAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcyA9IFt2YWx1ZXNdCisgICAgICAgICAgICAgICAgICAgIGNob2ljZXMgPSB0dXBsZShbeyd0b2tlbicgOiB4fSBmb3IgeCBpbiB2YWx1ZXNdKQorICAgICAgICAgICAgICAgICAgICBzZWxmLnBlcm11dGVfY2hvaWNlcyhjaG9pY2VzLCBsaXN0KGxpbmUpLCBuZXh0X2FyZ3MpCisgICAgICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgaWYgdGFnOgorICAgICAgICAgICAgICAgICAgICBsaW5lLmFwcGVuZCh0YWcpCisgICAgICAgICAgICAgICAgbGluZS5hcHBlbmQoc2VsZi5maWVsZF90b19nZW5lcmF0b3IoZmllbGQpKQorCisgICAgICAgICMKKyAgICAgICAgIyBmYWxsLXRocm91Z2ggdG8gdGhpcyBjb21tb24gY29kZSwgd2hpY2ggc2hvdWxkIG9ubHkgYmUKKyAgICAgICAgIyByZWFjaGVkIHdoZW4gbm8gb3RoZXIgcmVjdXJzaXZlIGRlc2NlbnQgaXMgcGVyZm9ybWVkLgorCisgICAgICAgIGlmIGxlbihuZXh0X2FyZ3MpOgorICAgICAgICAgICAgc2VsZi5wZXJtdXRlX2luX29yZGVyKE5vbmUsIGxpbmUsIG5leHRfYXJncykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNlbGYuY29sbGVjdF9jb21wbGV0ZV9jb21tYW5kKGxpbmUpCisgICAgICAgIAorCisgICAgZGVmIHBlcm11dGVfY2hvaWNlcyhzZWxmLCBjaG9pY2VzLCBsaW5lLCBuZXh0X2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAgICAgV2hlbiBhICdjaG9pY2VzJzogaXMgcmVhY2hlZCwgZW51bWVyYXRlIGFsbCB0aGUgY2hvaWNlcywKKyAgICAgICAgYW5kIGNvbnRpbnVlIGZvcndhcmQuICAKKyAgICAgICAgIiIiCisgICAgICAgIGZvciBwaWNrIGluIGNob2ljZXM6CisgICAgICAgICAgICBpZiB0eXBlKHBpY2spID09IGRpY3Q6CisgICAgICAgICAgICAgICAgbmV3X2xpbmUgPSBsaXN0KGxpbmUpCisgICAgICAgICAgICAgICAgc2VsZi5wZXJtdXRlX2l0ZW0ocGljaywgbmV3X2xpbmUsIG5leHRfYXJncykKKyAgICAgICAgICAgICAgICBpZiBuZXh0X2FyZ3MgPT0gTm9uZToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5jb2xsZWN0X2NvbXBsZXRlX2NvbW1hbmQobGluZSkKKyAgICAgICAgICAgIGVsaWYgdHlwZShwaWNrKSA9PSB0dXBsZToKKyAgICAgICAgICAgICAgICBzZWxmLnBlcm11dGVfaW5fb3JkZXIocGljaywgbGlzdChsaW5lKSwgbmV4dF9hcmdzKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCAiQ0hPSUNFPyAiLCB0eXBlKHBpY2spCisKKworICAgIGRlZiBwZXJtdXRlX2luX29yZGVyKHNlbGYsIGl0ZW1zLCBsaW5lLCBuZXh0X2FyZ3MpOgorICAgICAgICBpZiBpdGVtcyA9PSBOb25lIGFuZCBsZW4obmV4dF9hcmdzKToKKyAgICAgICAgICAgIGl0ZW1zID0gbmV4dF9hcmdzCisgICAgICAgICAgICBuZXh0X2FyZ3MgPSBbXQorICAgICAgICBpZiBsZW4oaXRlbXMpID09IDA6CisgICAgICAgICAgICAjIGRvbmUKKyAgICAgICAgICAgIHNlbGYuY29sbGVjdF9jb21wbGV0ZV9jb21tYW5kKGxpbmUpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgIyBzZWUgaWYgdGhlIGl0ZW0gaXMgb3B0aW9uYWwsIGlmIHNvIHRoZW4gZG9uJ3QgYWRkIHRoZSBpdGVtLAorICAgICAgICAjIGFuZCBnbyB0byB0aGUgbmV4dCBpdGVtIGluIGEgcmVjdXJzaXZlIGNhbGwKKworICAgICAgICB3aGlsZSBsZW4oaXRlbXMpIGFuZCB0eXBlKGl0ZW1zWzBdKSA9PSBzdHI6CisgICAgICAgICAgICBsaW5lLmFwcGVuZChpdGVtc1swXSkKKyAgICAgICAgICAgIGl0ZW1zID0gaXRlbXNbMTpdCisKKyAgICAgICAgaWYgbGVuKGl0ZW1zKToKKyAgICAgICAgICAgIGl0ZW0gPSBpdGVtc1swXQorICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYgbGVuKGl0ZW1zKSA+IDE6CisgICAgICAgICAgICAgICAgaWYgbGVuKG5leHRfYXJncykgPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgbmV4dF9hcmdzID0gaXRlbXNbMTpdCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShpdGVtc1sxOl0pID09IHR1cGxlOgorICAgICAgICAgICAgICAgICAgICAgICAgbmV4dF9hcmdzID0gbGlzdChpdGVtc1sxOl0pICsgbmV4dF9hcmdzCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0X2FyZ3MgPSBpdGVtc1sxOl0gKyBuZXh0X2FyZ3MKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbmV4dF9hcmdzID0gW10KKworICAgICAgICAgICAgdG9rZW4gPSBGYWxzZQorICAgICAgICAgICAgaWYgdHlwZShpdGVtKSA9PSB0dXBsZToKKyAgICAgICAgICAgICAgICBzZWxmLnBlcm11dGVfaW5fb3JkZXIoaXRlbSwgbGluZSwgbGlzdChuZXh0X2FyZ3MpKQorICAgICAgICAgICAgZWxpZiB0eXBlKGl0ZW0pID09IGRpY3Q6CisgICAgICAgICAgICAgICAgc2VsZi5wZXJtdXRlX2l0ZW0oaXRlbSwgbGlzdChsaW5lKSwgbGlzdChuZXh0X2FyZ3MpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCAncGVybXV0ZV9pbl9vcmRlcjogbmVlZCB0eXBlJywgdHlwZShpdGVtKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5jb2xsZWN0X2NvbXBsZXRlX2NvbW1hbmQobGluZSkKKworICAgICAgICByZXR1cm4KKworICAgIGRlZiBwZXJtdXRlX2NvbW1hbmRfY29tbW9uKHNlbGYsIGNvbW1hbmQpOgorICAgICAgICBhcmdzID0gY29tbWFuZC5nZXQoJ2FyZ3MnKQorICAgICAgICBpZiBhcmdzID09IE5vbmU6CisgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjoKKyAgICAgICAgICAgICAgICBwcmludCAnUEVSTVVURTogbWlzc2luZyBhcmdzIGZvciAlcycgJSBjb21tYW5kWydzZWxmJ10KKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBuYW1lID0gX2dldF9jb21tYW5kX3RpdGxlKGNvbW1hbmQpCisKKyAgICAgICAgb2JqX3R5cGUgPSBjb21tYW5kLmdldCgnb2JqLXR5cGUnKQorICAgICAgICBpZiBvYmpfdHlwZToKKyAgICAgICAgICAgIHNlbGYub2JqX3R5cGUgPSBvYmpfdHlwZQorCisgICAgICAgIGlmIHR5cGUoY29tbWFuZC5nZXQoJ25hbWUnKSkgPT0gZGljdDoKKyAgICAgICAgICAgIGlmIHNlbGYucXVhbGlmeToKKyAgICAgICAgICAgICAgICBuYW1lID0gc2VsZi5maWVsZF90b19nZW5lcmF0b3IoY29tbWFuZFsnbmFtZSddWydmaWVsZCddKQorCisgICAgICAgIGlmIHNlbGYuaXNfbm9fY29tbWFuZDoKKyAgICAgICAgICAgIGxpbmUgPSBbJ25vJywgbmFtZV0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGxpbmUgPSBbbmFtZV0KKworICAgICAgICBpZiB0eXBlKGFyZ3MpID09IHR1cGxlOgorICAgICAgICAgICAgc2VsZi5wZXJtdXRlX2luX29yZGVyKGFyZ3MsIGxpbmUsIFtdKQorICAgICAgICBlbGlmIHR5cGUoYXJncykgPT0gZGljdDoKKyAgICAgICAgICAgIHNlbGYucGVybXV0ZV9pdGVtKGFyZ3MsIGxpbmUsIFtdKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJpbnQgJ1BDICcsIHR5cGUoYXJncykKKworICAgICAgICByZXR1cm4gJ1xuJy5qb2luKHNlbGYuY29sbGVjdCkKKworCisgICAgZGVmIHBlcm11dGVfY29tbWFuZChzZWxmLCBjb21tYW5kKToKKyAgICAgICAgcHJpbnQgJ1BFUk1VVEUnLCBjb21tYW5kWydzZWxmJ10sIGlzX25vX2NvbW1hbmRfc3VwcG9ydGVkKGNvbW1hbmQpCisKKyAgICAgICAgc2VsZi5pc19ub19jb21tYW5kID0gRmFsc2UKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5wZXJtdXRlX2NvbW1hbmRfY29tbW9uKGNvbW1hbmQpCisKKyAgICAgICAgaWYgaXNfbm9fY29tbWFuZF9zdXBwb3J0ZWQoY29tbWFuZCk6CisgICAgICAgICAgICAjIE5vdyBhZGQgdGhlIGNvbW1hbmQgZm9yICdubycKKyAgICAgICAgICAgIHNlbGYuaXNfbm9fY29tbWFuZCA9IFRydWUKKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYucGVybXV0ZV9jb21tYW5kX2NvbW1vbihjb21tYW5kKQorCisgICAgICAgIHJldHVybiByZXN1bHQKKworCisgICAgZGVmIGhhbmRsZV9jb21tYW5kX3Jlc3VsdHMoc2VsZik6CisgICAgICAgIGNvbGxlY3Rpb25zID0gW10KKyAgICAgICAgZm9yIGNvbW1hbmQgaW4gc2VsZi5jb21tYW5kczoKKyAgICAgICAgICAgIGNvbGxlY3Rpb25zLmFwcGVuZChzZWxmLnBlcm11dGVfY29tbWFuZChjb21tYW5kKSkKKyAgICAgICAgcmV0dXJuICdcbicuam9pbihjb2xsZWN0aW9ucykKKworCisgICAgZGVmIGhhbmRsZV9jb21tYW5kKHNlbGYsIHdvcmRzKToKKyAgICAgICAgZm9yIHdvcmQgaW4gd29yZHM6CisgICAgICAgICAgICBmb3IgYyBpbiBjb21tYW5kX3JlZ2lzdHJ5OgorICAgICAgICAgICAgICAgIGlmIHdvcmQgPT0gY1snc2VsZiddOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VsZi5wZXJtdXRlX2NvbW1hbmQoYykKKworCitkZWYgcGVybXV0ZV9zaW5nbGVfc3VibW9kZShzdWJtb2RlX2NvbW1hbmQsIHF1YWxpZnkpOgorICAgICIiIgorICAgIFBlcm11dGUgY29tbWFuZCBmb3IgYSBzdWJtb2RlLCB0YWtlcyB0aGUgY29tbWFuZCwgZmluZHMKKyAgICBhbGwgdGhlIHJlbGF0ZWQgc3VibW9kZXNtb2RlcywgcGVybXV0ZXMgYWxsIHRoZSBjb21tYW5kcworICAgIGluIHRoZSBzdWJtb2RlLCB0aGVuIGEgcmVjdXJzaXZlIGNhbGwgdG8gYW55IHN1Ym1vZGVzCisgICAgZm91bmQgd2l0aGluIHRoaXMgb25lLgorCisgICAgQHBhcmFtIHN1Ym1vZGVfY29tbWFuZCBjb21tYW5kIGRpY3Rpb25hcnkgb2YgdGhlIHN1Ym1vZGUgY29tbWFuZC4KKyAgICAgICAgQ2FuIGJlIHNldCB0byBOb25lIGFzIGFuIGluZGljYXRpb24gb2YgInJvb3QiCisKKyAgICBAcGFyYW0gcXVhbGlmeSBib29sZWFuLCBkZXNjcmliZXMgd2hldGhlciB0byBnZW5lcmF0ZSAicGVybXV0ZSIKKyAgICAgICAgb3V0cHV0IG9yICJxdWFsaWZ5IiBvdXRwdXQuICBQZXJtdXRlIG91dHB1dCBpcyBhIGh1bWFuIHJlYWRhYmxlCisgICAgICAgIGNvbW1hbmQgcGVybXV0YXRpb24sIHdoaWxlICJxdWFsaWZ5IiBpcyBpbnRlbmRlZCBmb3Igc2NyaXB0IGJ1aWxkaW5nCisKKyAgICAiIiIKKyAgICBwZXJtdXRlZCA9IFtdCisgICAgcGVybXV0ZV9zdWJtb2RlcyA9IFtdCisKKyAgICBpZiBzdWJtb2RlX2NvbW1hbmQgPT0gTm9uZToKKyAgICAgICAgbW9kZSA9ICdsb2dpbicKKyAgICBlbHNlOgorICAgICAgICAjIGZpcnN0LCB0aGUgc3VibW9kZS4gIFRoZXJlIG91Z2h0IHRvIGJlIG9ubHkgb25lIHBlcm11dGF0aW9uLgorICAgICAgICBwZXJtdXRlID0gQ29tbWFuZFBlcm11dG9yKHF1YWxpZnkpCisgICAgICAgIHBlcm11dGVkLmFwcGVuZChwZXJtdXRlLnBlcm11dGVfY29tbWFuZChzdWJtb2RlX2NvbW1hbmQpKQorICAgICAgICBtb2RlID0gc3VibW9kZV9jb21tYW5kLmdldCgnc3VibW9kZS1uYW1lJykKKyAgICAgICAgcHJpbnQgJ1NVQk1PREUgUEVSTVVURScsIHN1Ym1vZGVfY29tbWFuZFsnc2VsZiddLCAnTU9ERScsIG1vZGUKKworICAgIGRlZiBzdWJtb2RlX21hdGNoKHdhbnQsIGNtZCk6CisgICAgICAgIGlmIHR5cGUoY21kKSA9PSBzdHI6CisgICAgICAgICAgICBjbWQgPSBbY21kXQorICAgICAgICBpZiB3YW50LnN0YXJ0c3dpdGgoJ2NvbmZpZycpOgorICAgICAgICAgICAgZm9yIGMgaW4gY21kOgorICAgICAgICAgICAgICAgIGlmIGMuZW5kc3dpdGgoJyonKToKKyAgICAgICAgICAgICAgICAgICAgYyA9IGNbOi0xXQorICAgICAgICAgICAgICAgIGlmIGMgPT0gJ2NvbmZpZy0nOgorICAgICAgICAgICAgICAgICAgICBjID0gJ2NvbmZpZycKKyAgICAgICAgICAgICAgICBpZiB3YW50ID09IGM6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBmb3IgYyBpbiBjbWQ6CisgICAgICAgICAgICBpZiB3YW50ID09IGM6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAjIHRoZXJlJ3Mgbm8gY29tbWFuZCB0byBlbnRlciBsb2dpbi4KKyAgICBmb3IgYyBpbiBjb21tYW5kX3JlZ2lzdHJ5OgorICAgICAgICBpZiBzdWJtb2RlX21hdGNoKG1vZGUsIGNbJ21vZGUnXSk6CisgICAgICAgICAgICAjIG5vIHN1Ym1vZGUgY29tbWFuZHMuCisgICAgICAgICAgICBpZiBjLmdldCgnY29tbWFuZC10eXBlJykgPT0gJ2NvbmZpZy1zdWJtb2RlJzoKKyAgICAgICAgICAgICAgICBwcmludCAnU1VCTU9ERSBQT1NUUE9ORScsIGNbJ3NlbGYnXQorICAgICAgICAgICAgICAgIHBlcm11dGVfc3VibW9kZXMuYXBwZW5kKGMpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHBlcm11dGUgPSBDb21tYW5kUGVybXV0b3IocXVhbGlmeSkKKyAgICAgICAgICAgICAgICBwZXJtdXRlZC5hcHBlbmQocGVybXV0ZS5wZXJtdXRlX2NvbW1hbmQoYykpCisKKyAgICAjIG5vdyBhbnkgc3VibW9kZXMgZm91bmQKKyAgICBmb3IgYyBpbiBwZXJtdXRlX3N1Ym1vZGVzOgorICAgICAgICBwZXJtdXRlZC5hcHBlbmQocGVybXV0ZV9zaW5nbGVfc3VibW9kZShjLCBxdWFsaWZ5KSkKKworICAgIHJldHVybiAnXG4nLmpvaW4ocGVybXV0ZWQpCisKKworZGVmIHBlcm11dGVfY29tbWFuZCh3b3JkcywgcXVhbGlmeSk6CisgICAgIiIiCisgICAgUGVybXV0ZSBhbGwgdGhlIGNvbW1hbmRzICh3aXRoIG5vIHBhcmFtZXRlcnMpLCBvciBhCisgICAgc2lnbGUgY29tbWFuZC4gICBUaGUgY29tbWFuZCBpcyBuYW1lZCB2aWEgdGhlIG5hbWUKKyAgICBvZiB0aGUgZGljdGlvbmFyeSwgZm9yIGV4YW1wbGU6IAorICAgIHBlcm11dGUgQ09NTUFORF9ERVNDUklQVElPTgorICAgICIiIgorICAgIGlmIGxlbih3b3JkcykgPT0gMDoKKyAgICAgICAgcmV0dXJuIHBlcm11dGVfc2luZ2xlX3N1Ym1vZGUoTm9uZSwgcXVhbGlmeSkKKyAgICBlbHNlOgorICAgICAgICBwZXJtdXRlID0gQ29tbWFuZFBlcm11dG9yKHF1YWxpZnkpCisgICAgICAgIHJldHVybiBwZXJtdXRlLmhhbmRsZV9jb21tYW5kKHdvcmRzKQorCisKK2RlZiBfaXNfc3RyaW5nKGFyZyk6CisgICAgIiIiCisgICAgUmV0dXJucyB3aGV0aGVyIG9yIG5vdCB0aGUgYXJndW1lbnQgaXMgYSBzdHJpbmcgKGVpdGhlciBhICJzdHIiIG9yICJ1bmljb2RlIikKKyAgICAiIiIKKyAgICByZXR1cm4gaXNpbnN0YW5jZShhcmcsIHR5cGVzLlN0cmluZ1R5cGVzKQorCisKK2RlZiBfaXNfbGlzdChhcmcpOgorICAgICIiIgorICAgIFJldHVybnMgd2hldGhlciBvciBub3QgdGhlIGFyZ3VtZW50IGlzIGEgbGlzdC4gVGhpcyBtZWFucyB0aGF0IGl0J3MgYW4KKyAgICBpbnN0YW5jZSBvZiBhIHNlcXVlbmNlLCBidXQgbm90IGluY2x1ZGluZyB0aGUgc3RyaW5nIHR5cGVzCisgICAgIiIiCisgICAgcmV0dXJuIGlzaW5zdGFuY2UoYXJnLCBjb2xsZWN0aW9ucy5TZXF1ZW5jZSkgYW5kIG5vdCBfaXNfc3RyaW5nKGFyZykKKworCitkZWYgX2xvb2t1cF9pbl9zY29wZXMobmFtZSwgc2NvcGVzLCBkZWZhdWx0PU5vbmUpOgorICAgICIiIgorICAgIExvb2sgdXAgdGhlIGdpdmVuIG5hbWUgaW4gdGhlIGdpdmVuIGxpc3Qgb2Ygc2NvcGVzLgorICAgIFJldHVybnMgdGhlIGRlZmF1bHQgdmFsdWUgaWYgdGhlIG5hbWUgaXMgbm90IGRlZmluZWQgaW4gYW55IG9mIHRoZSBzY29wZXMuCisgICAgIiIiCisgICAgYXNzZXJ0IG5hbWUKKyAgICBhc3NlcnQgc2NvcGVzIGlzIG5vdCBOb25lCisgICAgCisgICAgIyBXZSBpdGVyYXRlIG92ZXIgdGhlIGl0ZW1zIGluIHRoZSBzY29wZSAocmF0aGVyIHRoYW4gdXNpbmcgJ2dldCcpCisgICAgIyBzbyB3ZSBjYW4gZG8gYSBjYXNlLWluc2Vuc2l0aXZlIGxvb2t1cC4KKyAgICBuYW1lX2xvd2VyID0gbmFtZS5sb3dlcigpCisgICAgZm9yIHNjb3BlIGluIHNjb3BlczoKKyAgICAgICAgZm9yIGtleSwgdmFsdWUgaW4gc2NvcGUuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIGtleS5sb3dlcigpID09IG5hbWVfbG93ZXI6CisgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlCisgICAgcmV0dXJuIGRlZmF1bHQKKworCitkZWYgX2NhbGxfcHJvYyhwcm9jX2Rlc2NyaXB0b3IsIHByb2NfcmVnaXN0cnksIHNjb3BlcywgY29tbWFuZCk6CisgICAgYXNzZXJ0IHByb2NfZGVzY3JpcHRvciBpcyBub3QgTm9uZQorICAgIGFzc2VydCBwcm9jX3JlZ2lzdHJ5IGlzIG5vdCBOb25lCisgICAgCisgICAgaWYgaXNpbnN0YW5jZShwcm9jX2Rlc2NyaXB0b3IsIGNvbGxlY3Rpb25zLlNlcXVlbmNlKSBhbmQgbm90IF9pc19zdHJpbmcocHJvY19kZXNjcmlwdG9yKToKKyAgICAgICAgcHJvY19kZXNjcmlwdG9ycyA9IHByb2NfZGVzY3JpcHRvcgorICAgIGVsc2U6CisgICAgICAgIHByb2NfZGVzY3JpcHRvcnMgPSAocHJvY19kZXNjcmlwdG9yLCkKKyAgICAKKyAgICBjb21iaW5lZF9yZXN1bHQgPSBOb25lCisgICAgCisgICAgc2F2ZWRfc2NvcGVzID0gc2NvcGVzCisgICAgCisgICAgZm9yIHByb2NfZGVzY3JpcHRvciBpbiBwcm9jX2Rlc2NyaXB0b3JzOgorICAgICAgICBhcmdzX2Rlc2NyaXB0b3IgPSBOb25lCisgICAgICAgIHNjb3BlcyA9IHNhdmVkX3Njb3BlcworICAgICAgICBpZiBpc2luc3RhbmNlKHByb2NfZGVzY3JpcHRvciwgY29sbGVjdGlvbnMuTWFwcGluZyk6CisgICAgICAgICAgICAjIExvb2sgdXAgdGhlIHByb2MgaW4gdGhlIHNwZWNpZmllZCByZWdpc3RyeQorICAgICAgICAgICAgcHJvY19uYW1lID0gcHJvY19kZXNjcmlwdG9yLmdldCgncHJvYycpCisgICAgICAgICAgICBpZiBub3QgcHJvY19uYW1lOgorICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCdVbnNwZWNpZmllZCBwcm9jIG5hbWU6ICcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZCkKKyAgICAgICAgICAgIGlmIHByb2NfZGVzY3JpcHRvci5nZXQoJ2FyZ3MnKSBvciBwcm9jX2Rlc2NyaXB0b3IuZ2V0KCdrd2FyZ3MnKToKKyAgICAgICAgICAgICAgICBhcmdzX2Rlc2NyaXB0b3IgPSBwcm9jX2Rlc2NyaXB0b3IKKyAgICAgICAgICAgIHNjb3BlcyA9IFtwcm9jX2Rlc2NyaXB0b3JdICsgc2NvcGVzCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcm9jX25hbWUgPSBwcm9jX2Rlc2NyaXB0b3IKKyAgICAKKyAgICAgICAgIyBQdXNoIGFuIGVtcHR5IHNjb3BlIG9uIHRoZSBzY29wZSBzdGFjayB0byBob2xkIGEgdmFyaWFibGUgZm9yIHRoZSBzY29wZXMKKyAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgYmUgY2xlYW5lZCB1cCB3aGVuIHdlIGNoYW5nZSB0aGUgY2FsbGluZyBjb252ZW50aW9ucworICAgICAgICAjIGZvciBwcm9jcy4KKyAgICAgICAgc2NvcGVzID0gW3t9XSArIHNjb3BlcworICAgICAgICBzY29wZXNbMF1bJ3Njb3BlcyddID0gc2NvcGVzCisgICAgICAgIAorICAgICAgICBwcm9jX2FuZF9hcmcgPSBwcm9jX3JlZ2lzdHJ5LmdldChwcm9jX25hbWUpCisgICAgICAgIGlmIG5vdCBwcm9jX2FuZF9hcmc6CisgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kRGVzY3JpcHRpb25FcnJvcignVW5rbm93biBwcm9jIG5hbWU6ICVzJyAlIHByb2NfbmFtZSwgY29tbWFuZCkKKyAgICAgICAgcHJvYywgZGVmYXVsdF9hcmdzX2Rlc2NyaXB0b3IgPSBwcm9jX2FuZF9hcmcKKyAgICAgICAgCisgICAgICAgIGlmIG5vdCBhcmdzX2Rlc2NyaXB0b3I6CisgICAgICAgICAgICBhcmdzX2Rlc2NyaXB0b3IgPSBkZWZhdWx0X2FyZ3NfZGVzY3JpcHRvcgorICAgICAgICAKKyAgICAgICAgY29udmVydGVkX2FyZ3MgPSBbXQorICAgICAgICBjb252ZXJ0ZWRfa3dhcmdzID0ge30KKyAgICAgICAgCisgICAgICAgICMgQ29udmVydCB0aGUgcG9zaXRpb25hbCBhcmdzCisgICAgICAgIGFyZ3MgPSBfZ2V0X2FyZ3MoYXJnc19kZXNjcmlwdG9yKQorICAgICAgICBpZiBhcmdzOgorICAgICAgICAgICAgZm9yIGFyZyBpbiBhcmdzOgorICAgICAgICAgICAgICAgIGlmIF9pc19zdHJpbmcoYXJnKSBhbmQgbGVuKGFyZykgPiAxIGFuZCBhcmdbMF0gPT0gJyQnOgorICAgICAgICAgICAgICAgICAgICBuYW1lID0gYXJnWzE6XQorICAgICAgICAgICAgICAgICAgICBmb3Igc2NvcGUgaW4gc2NvcGVzOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbmFtZSBpbiBzY29wZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHNjb3BlW25hbWVdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICMgRklYTUU6IERpc2FibGluZyB0cmVhdGluZyBhcmdzIHRoYXQgY2FuJ3QgYmUgcmVzb2x2ZWQgYXMgZXJyb3JzLCBzbyB0aGF0CisgICAgICAgICAgICAgICAgICAgICAgICAjIHRoZXkgY2FuIGluc3RlYWQgYmUgaW50ZXJwcmV0ZWQgYXMganVzdCB1c2luZyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIAorICAgICAgICAgICAgICAgICAgICAgICAgI3JhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCdJbnZhbGlkIHByb2MgYXJndW1lbnQ6ICVzICcgJQorICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgY29tbWFuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgY29udmVydGVkX2FyZ3MuYXBwZW5kKHZhbHVlKQorICAgICAgICAgICAgICAgIAorICAgICAgICAjIENvbnZlcnQgdGhlIGtleXdvcmQgYXJncworICAgICAgICBrd2FyZ3MgPSBhcmdzX2Rlc2NyaXB0b3IuZ2V0KCdrd2FyZ3MnKQorICAgICAgICBpZiBrd2FyZ3M6CisgICAgICAgICAgICBmb3Iga2V5LCB2YWx1ZSBpbiBrd2FyZ3MuaXRlcml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYgX2lzX3N0cmluZyh2YWx1ZSkgYW5kIGxlbih2YWx1ZSkgPiAxIGFuZCB2YWx1ZVswXSA9PSAnJCc6CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSB2YWx1ZVsxOl0KKyAgICAgICAgICAgICAgICAgICAgZm9yIHNjb3BlIGluIHNjb3BlczoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5hbWUgaW4gc2NvcGU6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBzY29wZVtuYW1lXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAjIEZJWE1FOiBEb24ndCB0cmVhdCBhcmdzIHRoYXQgY2FuJ3QgYmUgcmVzb2x2ZWQgYXMgZXJyb3JzLCBzbyB0aGF0CisgICAgICAgICAgICAgICAgICAgICAgICAjIHRoZXkgY2FuIGluc3RlYWQgYmUgaW50ZXJwcmV0ZWQgYXMganVzdCB1c2luZyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIAorICAgICAgICAgICAgICAgICAgICAgICAgI3JhaXNlIGVycm9yLkNvbW1hbmREZXNjcmlwdGlvbkVycm9yKCdJbnZhbGlkIHByb2MgYXJndW1lbnQ6ICVzICcgJQorICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZSwgY29tbWFuZCkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgY29udmVydGVkX2t3YXJnc1trZXldID0gdmFsdWUKKyAgICAgICAgCisgICAgICAgICMgQ2FsbCB0aGUgcHJvYworICAgICAgICAjIHB5bGludDogZGlzYWJsZT1XMDE0MgorICAgICAgICByZXN1bHQgPSBwcm9jKCpjb252ZXJ0ZWRfYXJncywgKipjb252ZXJ0ZWRfa3dhcmdzKQorCisgICAgICAgIGlmIHJlc3VsdCBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGNvbWJpbmVkX3Jlc3VsdCA9IGNvbWJpbmVkX3Jlc3VsdCArIHJlc3VsdCBpZiBjb21iaW5lZF9yZXN1bHQgZWxzZSByZXN1bHQKKyAgICAgICAgICAgIAorICAgIHJldHVybiBjb21iaW5lZF9yZXN1bHQKKworCitkZWYgX2FkZF9hcHBsaWNhYmxlX21vZGVzKGNvbW1hbmQsIG1vZGVfZGljdCk6CisgICAgIiIiCisgICAgSGVscGVyIGZ1bmN0aW9uIGZvciBfZ2V0X2FwcGxpY2FibGVfbW9kZXMgdG8gYWRkIGFueSBtb2RlcyBmb3IgdGhpcyBjb21tYW5kCisgICAgIiIiCisgICAgZmVhdHVyZSA9IGNvbW1hbmQuZ2V0KCdmZWF0dXJlJykKKyAgICBpZiBmZWF0dXJlOgorICAgICAgICBpZiBub3Qgc2Ruc2guZmVhdHVyZV9lbmFibGVkKGZlYXR1cmUpOgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICBtb2RlID0gY29tbWFuZC5nZXQoJ21vZGUnKQorICAgIGlmIG1vZGU6CisgICAgICAgIGlmIHR5cGUobW9kZSkgPT0gbGlzdDoKKyAgICAgICAgICAgIGZvciBtIGluIG1vZGU6CisgICAgICAgICAgICAgICAgbW9kZV9kaWN0W21dID0gTm9uZQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbW9kZV9kaWN0W21vZGVdID0gTm9uZQorCisKK2RlZiBfZ2V0X2FwcGxpY2FibGVfbW9kZXMoY29tbWFuZCk6CisgICAgIiIiCisgICAgUmV0dXJucyBhIGxpc3Qgb2YgYWxsIG9mIHRoZSBtb2RlcyB0aGF0IGFyZSBzcGVjaWZpZWQgZm9yIHRoaXMgY29tbWFuZAorICAgICIiIgorICAgIG1vZGVfZGljdCA9IHt9CisgICAgX2FkZF9hcHBsaWNhYmxlX21vZGVzKGNvbW1hbmQsIG1vZGVfZGljdCkKKyAgICByZXR1cm4gbW9kZV9kaWN0LmtleXMoKQorCisKK2RlZiBfZXhhY3RfbW9kZV9tYXRjaChjdXJyZW50X21vZGUsIGNvbW1hbmRfbW9kZXMpOgorICAgICIiIgorICAgIFJldHVybiBUcnVlIHdoZW4gdGhpcyBjb21tYW5kX21vZGUgaXMgYW4gZXhhY3QgbWF0Y2gKKyAgICBmb3IgdGhpcyBjdXJyZW50IG1vZGUgKHVzZWQgdG8gcGFydGl0aW9uIGxpc3Qgb2YgY29tbWFuZHMKKyAgICBpbnRvIHR3byBncm91cHMsIG9uZSBleGFjdCBsZXZlbCwgYW5kIGZvciBmb3IgcmVsYXRlZCBtb2RlCisgICAgbWF0Y2hlcykKKyAgICAiIiIKKyAgICBpZiBub3QgdHlwZShjb21tYW5kX21vZGVzKSA9PSBsaXN0OgorICAgICAgICBjb21tYW5kX21vZGVzID0gW2NvbW1hbmRfbW9kZXNdCisgICAgZm9yIG1vZGUgaW4gY29tbWFuZF9tb2RlczoKKyAgICAgICAgaWYgbW9kZSA9PSBjdXJyZW50X21vZGU6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBpZiBtb2RlLmVuZHN3aXRoKCcqJykgYW5kIG1vZGVbOi0xXSA9PSBjdXJyZW50X21vZGU6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgIHJldHVybiBGYWxzZQorCisKK2RlZiBfbWF0Y2hfY3VycmVudF9tb2Rlcyhjb21tYW5kLCBjdXJyZW50X21vZGUsIG1vZGVzKToKKyAgICAiIiIKKyAgICBFdmVuIHdoZW4gdGhlIGN1cnJlbnQgbW9kZSBpc24ndCBpbiB0aGUgbGlzdCBvZiBtb2RlcywKKyAgICB0aGVyZSdzIGEgZmV3IG1vZGVzIGluIHRoZSBtb2RlIGxpc3Qgd2hpY2ggYXJlIGludGVuZGVkIHRvCisgICAgYmUgYSBjb2xsZWN0aW9uIG9mIG1vZGVzLCBlZzogImNvbmZpZyoiLCBhbmQgImNvbmZpZy0qIiwKKyAgICBGb3IgYW55IG1vZGUgd2hpY2ggZW5kcyBpbiBhbiAoJyonKSwgdGhlIGN1cnJlbnQgbW9kZQorICAgIHdpbGwgbWF0Y2ggd2hlbiB0aGUgY3VycmVudCBtb2RlIGlzIHByZWZpeCBvZiB0aGUgbW9kZQorICAgICh3aXRob3V0IHRoZSBsYXN0ICcqJyBjaGFyYWN0ZXIpCisgICAgJ2NvbmZpZyonIGlzIGludGVuZGVkIHRvIG1hdGNoIGFueSBjb25maWcgbW9kZSwgd2hpbGUKKyAgICAnY29uZmlnLSonIGlzIGludGVuZGVkIHRvIG1hdGNoIGFueSBjb25maWcgc3VibW9kZS4gIAorICAgICIiIgorICAgIGlmIGN1cnJlbnRfbW9kZSBpbiBtb2RlczoKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICAjCisgICAgIyBpZiB0aGUgbW9kZXMgaXMgZW5hYmxlLCB0aGlzIHdvcmtzIGV2ZXJ5d2hlcmUKKyAgICAjCisgICAgaWYgJ2xvZ2luJyBpbiBtb2RlczoKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICAjCisgICAgIyBpZiB0aGUgbW9kZXMgaXMgbG9naW4sIGFuZCB0aGUgbW9kZSBpcyBhbnl0aGluZyBidXQgbG9naW4sCisgICAgIyB0aGVuIHRoaXMgaXMgdHJ1ZQorICAgICMKKyAgICBpZiAnZW5hYmxlJyBpbiBtb2RlcyBhbmQgY3VycmVudF9tb2RlICE9ICdsb2dpbic6CisgICAgICAgIHJldHVybiBUcnVlCisgICAgZm9yIG1vZGUgaW4gbW9kZXM6CisgICAgICAgIGlmIG1vZGUuZW5kc3dpdGgoJyonKSBhbmQgY3VycmVudF9tb2RlLnN0YXJ0c3dpdGgobW9kZVs6LTFdKToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgI2lmIGNvbW1hbmQuZ2V0KCdjb21tYW5kLXR5cGUnKSA9PSAnY29uZmlnLXN1Ym1vZGUnOgorICAgICMgICAgZm9yIG1vZGUgaW4gbW9kZXM6CisgICAgIyAgICAgICAgaWYgY3VycmVudF9tb2RlLnN0YXJ0c3dpdGgobW9kZSk6CisgICAgIyAgICAgICAgICAgIHByaW50ICJfbWF0Y2hfY3VycmVudF9tb2RlczogY3VycmVudCBjb21tYW5kIHR5cGUgaXMgY29uZmlnLXN1Ym1vZGUiLGN1cnJlbnRfbW9kZSxtb2RlCisgICAgIyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIAorICAgIHJldHVybiBGYWxzZQorICAgIAorCitkZWYgX2dldF9jb21tYW5kX3RpdGxlKGNvbW1hbmQpOgorICAgIGlmIHR5cGUoY29tbWFuZFsnbmFtZSddKSA9PSBzdHI6CisgICAgICAgIHJldHVybiBjb21tYW5kWyduYW1lJ10KKyAgICBpZiB0eXBlKGNvbW1hbmRbJ25hbWUnXSkgPT0gZGljdDoKKyAgICAgICAgcmV0dXJuIGNvbW1hbmRbJ25hbWUnXVsndGl0bGUnXQorICAgIGVsc2U6CisgICAgICAgIHJhaXNlIEV4Y2VwdGlvbigiQ29tbWFuZCAlcyBoYXMgdW5rbm93biB0aXRsZSIgJSBjb21tYW5kWyduYW1lJ10pCisKKworZGVmIF9sb29rdXBfY29tbWFuZF9jYW5kaWRhdGVzKGNvbW1hbmRfcHJlZml4LCBjb21tYW5kX2xpc3QpOgorICAgICIiIgorICAgIFJldHVybnMgdGhlIGxpc3Qgb2YgY29tbWFuZCBjYW5kaWRhdGVzIGZyb20gdGhlIGdpdmVuIGNvbW1hbmQgbGlzdC4KKyAgICBBIGNhbmRpZGF0ZSBtdXN0IGhhdmUgYSAnbW9kZScgdmFsdWUgdGhhdCBtYXRjaGVzIHRoZSBjdXJyZW50IG1vZGUsCisgICAgYW5kIGl0cyBuYW1lIG11c3QgYmVnaW4gd2l0aCB0aGUgZ2l2ZW4gY29tbWFuZCBwcmVmaXguCisgICAgIiIiCisgICAgY2FuZGlkYXRlcyA9IFtdCisgICAgY3VycmVudF9tb2RlID0gc2Ruc2guY3VycmVudF9tb2RlKCkKKyAgICB0cnk6CisgICAgICAgIGZvciBjb21tYW5kIGluIGNvbW1hbmRfbGlzdDoKKyAgICAgICAgICAgIG1vZGVzID0gX2dldF9hcHBsaWNhYmxlX21vZGVzKGNvbW1hbmQpCisgICAgICAgICAgICBpZiBfbWF0Y2hfY3VycmVudF9tb2Rlcyhjb21tYW5kLCBjdXJyZW50X21vZGUsIG1vZGVzKToKKyAgICAgICAgICAgICAgICBuYW1lID0gY29tbWFuZFsnbmFtZSddCisgICAgICAgICAgICAgICAgaWYgKHR5cGUobmFtZSkgPT0gc3RyIGFuZAorICAgICAgICAgICAgICAgICAgICBuYW1lLnN0YXJ0c3dpdGgoY29tbWFuZF9wcmVmaXgubG93ZXIoKSkpOgorICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVzLmFwcGVuZChjb21tYW5kKQorICAgICAgICAgICAgICAgICMgc2hvdWxkIGNoZWNrIHRoZSB0eXBlIG9mIGNvbW1hbmRfcHJlZml4LAorICAgICAgICAgICAgICAgICMgYW5kIGZvciBzdHIsIGFtZS5tYXRjaChjb21tYW5kX3ByZWZpeCk6CisgICAgICAgICAgICAgICAgaWYgdHlwZShuYW1lKSA9PSBkaWN0OgorICAgICAgICAgICAgICAgICAgICBpZiAncmUnIG5vdCBpbiBuYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgY29tbWFuZFsnbmFtZSddWydyZSddID0gcmUuY29tcGlsZShuYW1lWydwYXR0ZXJuJ10pCisgICAgICAgICAgICAgICAgICAgIGlmIG5hbWVbJ3JlJ10ubWF0Y2goY29tbWFuZF9wcmVmaXgpOgorICAgICAgICAgICAgICAgICAgICAgICAgY2FuZGlkYXRlcy5hcHBlbmQoY29tbWFuZCkKKyAgICAgICAgICAgICAgICBpZiB0eXBlKG5hbWUpID09IGRpY3QgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVbJ3JlJ10oY29tbWFuZF9wcmVmaXgpOgorICAgICAgICAgICAgICAgICAgICBjYW5kaWRhdGVzLmFwcGVuZChjb21tYW5kKQorICAgICAgICAgICAgICAgICAgICAKKyAgICBleGNlcHQgRXhjZXB0aW9uLCBfZToKKyAgICAgICAgcmFpc2UgZXJyb3IuQ29tbWFuZERlc2NyaXB0aW9uRXJyb3IoJ01pc3NpbmcgbW9kZSBvciBuYW1lOiAnLCBjb21tYW5kKQorICAgIAorICAgIHJldHVybiBjYW5kaWRhdGVzCisKK2RlZiBkb19jb21tYW5kKHdvcmRzKToKKyAgICBleGVjdXRvciA9IENvbW1hbmRFeGVjdXRvcigpCisgICAgcmVzdWx0ID0gZXhlY3V0b3IuaGFuZGxlX2NvbW1hbmQod29yZHMpCisgICAgcmV0dXJuIHJlc3VsdAorCitkZWYgaW5pdF9jb21tYW5kKGJzLCBtb2RpKToKKyAgICAjIEZJWE1FIEhBQ0s6IHNkbnNoIGdsb2JhbCB0byBhY2Nlc3MgdG9wLWxldmVsIENMSSBvYmplY3QKKyAgICBnbG9iYWwgc2Ruc2gsIG1pCisgICAgc2Ruc2ggPSBicworICAgIG1pID0gbW9kaQorCisgICAgY19hY3Rpb25zLmluaXRfYWN0aW9ucyhicywgbW9kaSkKKyAgICBjX2RhdGFfaGFuZGxlcnMuaW5pdF9kYXRhX2hhbmRsZXJzKGJzLCBtb2RpKQorICAgIGNfY29tcGxldGlvbnMuaW5pdF9jb21wbGV0aW9ucyhicywgbW9kaSkKKyAgICBjX3ZhbGlkYXRpb25zLmluaXRfdmFsaWRhdGlvbnMoYnMsIG1vZGkpCisKKworICAgIGFkZF9jb21tYW5kX3R5cGUoJ2NvbmZpZycsIHsKKyAgICAgICAgJ2FjdGlvbic6ICd3cml0ZS1maWVsZHMnLAorICAgICAgICAnbm8tYWN0aW9uJzogJ3Jlc2V0LWZpZWxkcycKKyAgICB9KQorCisgICAgYWRkX2NvbW1hbmRfdHlwZSgnY29uZmlnLW9iamVjdCcsIHsKKyAgICAgICAgJ2FjdGlvbic6ICd3cml0ZS1vYmplY3QnLAorICAgICAgICAnbm8tYWN0aW9uJzogJ2RlbGV0ZS1vYmplY3RzJywKKyAgICB9KQorCisgICAgYWRkX2NvbW1hbmRfdHlwZSgnY29uZmlnLXN1Ym1vZGUnLCB7CisgICAgICAgICdhY3Rpb24nOiAncHVzaC1tb2RlLXN0YWNrJywKKyAgICAgICAgIyduby1hY3Rpb24nOiAnZGVsZXRlLWNoaWxkLW9iamVjdHMnLAorICAgICAgICAnbm8tYWN0aW9uJzogJ2RlbGV0ZS1vYmplY3RzJywKKyAgICB9KQorCisgICAgYWRkX2NvbW1hbmRfdHlwZSgnY3JlYXRlLXR1bm5lbCcsIHsKKyAgICAgICAgJ2FjdGlvbic6ICdjcmVhdGUtdHVubmVsJworICAgIH0pCisgICAgCisgICAgYWRkX2NvbW1hbmRfdHlwZSgncmVtb3ZlLXR1bm5lbCcsIHsKKyAgICAgICAgJ2FjdGlvbic6ICdyZW1vdmUtdHVubmVsJworICAgIH0pCisgICAgCisgICAgYWRkX2NvbW1hbmRfdHlwZSgnY3JlYXRlLXBvbGljeScsIHsKKyAgICAgICAgJ2FjdGlvbic6ICdjcmVhdGUtcG9saWN5JworICAgIH0pCisgICAgCisgICAgYWRkX2NvbW1hbmRfdHlwZSgncmVtb3ZlLXBvbGljeScsIHsKKyAgICAgICAgJ2FjdGlvbic6ICdyZW1vdmUtcG9saWN5JworICAgIH0pCisgICAgCisgICAgYWRkX2NvbW1hbmRfdHlwZSgnZGlzcGxheS10YWJsZScsIHsKKyAgICAgICAgJ2FjdGlvbic6ICdkaXNwbGF5LXRhYmxlJworICAgIH0pCisgICAgCisgICAgYWRkX2NvbW1hbmRfdHlwZSgnZGlzcGxheS1yZXN0JywgeworICAgICAgICAnYWN0aW9uJzogJ2Rpc3BsYXktcmVzdCcKKyAgICB9KQorICAgIAorICAgIGFkZF9jb21tYW5kX3R5cGUoJ21hbmFnZS1hbGlhcycsIHsKKyAgICAgICAgJ2FjdGlvbicgICAgOiAnY3JlYXRlLWFsaWFzJywKKyAgICAgICAgJ25vLWFjdGlvbicgOiAnZGVsZXRlLWFsaWFzJywKKyAgICB9KQorCisgICAgYWRkX2NvbW1hbmRfdHlwZSgnbWFuYWdlLXRhZycsIHsKKyAgICAgICAgJ2FjdGlvbicgICAgOiAnY3JlYXRlLXRhZycsCisgICAgICAgICduby1hY3Rpb24nIDogJ2RlbGV0ZS10YWcnLAorICAgIH0pCisKKyAgICBhZGRfY29tbWFuZF90eXBlKCd1cGRhdGUtY29uZmlnJywgeworICAgICAgICAnYWN0aW9uJyAgICA6ICd1cGRhdGUtY29uZmlnJywKKyAgICAgICAgJ25vLWFjdGlvbicgOiAndXBkYXRlLWNvbmZpZycsCisgICAgfSkKKworICAgICMgSW5pdGlhbGl6ZSB0eXBlZGVmcworICAgIGFkZF90eXBlZGVmKHsKKyAgICAgICAgJ25hbWUnOiAnc3RyaW5nJywKKyAgICAgICAgJ3ZhbGlkYXRpb24nOiAndmFsaWRhdGUtc3RyaW5nJworICAgIH0pCisgICAgCisgICAgYWRkX3R5cGVkZWYoeworICAgICAgICAnbmFtZSc6ICdpbnRlZ2VyJywKKyAgICAgICAgJ3ZhbGlkYXRpb24nOiAndmFsaWRhdGUtaW50ZWdlcicKKyAgICB9KQorCisgICAgYWRkX3R5cGVkZWYoeworICAgICAgICAnbmFtZSc6ICdoZXgtb3ItZGVjaW1hbC1pbnRlZ2VyJywKKyAgICAgICAgJ3ZhbGlkYXRpb24nOiAndmFsaWRhdGUtaGV4LW9yLWRlYy1pbnRlZ2VyJworICAgIH0pCisKKyAgICBhZGRfdHlwZWRlZih7CisgICAgICAgICduYW1lJzogJ2RhdGUnLAorICAgICAgICAndmFsaWRhdGlvbic6ICd2YWxpZGF0ZS1kYXRlJworICAgIH0pCisKKyAgICBhZGRfdHlwZWRlZih7CisgICAgICAgICduYW1lJzogJ2R1cmF0aW9uJywKKyAgICAgICAgJ3ZhbGlkYXRpb24nOiAndmFsaWRhdGUtZHVyYXRpb24nCisgICAgfSkKKworICAgIGFkZF90eXBlZGVmKHsKKyAgICAgICAgJ25hbWUnOiAnZW51bScsCisgICAgICAgICd2YWxpZGF0aW9uJzogJ3ZhbGlkYXRlLWVudW0nCisgICAgfSkKKworICAgIGFkZF90eXBlZGVmKHsKKyAgICAgICAgJ25hbWUnICAgICAgIDogJ21hYy1hZGRyZXNzJywKKyAgICAgICAgJ2hlbHAtbmFtZScgIDogJ01BQyBBZGRyZXNzJywKKyAgICAgICAgJ2Jhc2UtdHlwZScgIDogJ3N0cmluZycsCisgICAgICAgICd2YWxpZGF0aW9uJyA6ICd2YWxpZGF0ZS1tYWMtYWRkcmVzcycsCisgICAgfSkKKyAgICAKKyAgICBhZGRfdHlwZWRlZih7CisgICAgICAgICduYW1lJyAgICAgICA6ICdob3N0JywKKyAgICAgICAgJ2hlbHAtbmFtZScgIDogJ0hvc3QgQWxpYXMgb3IgTUFDIEFkZHJlc3MnLAorICAgICAgICAnYmFzZS10eXBlJyAgOiAnc3RyaW5nJywKKyAgICAgICAgJ3ZhbGlkYXRpb24nIDogJ3ZhbGlkYXRlLWhvc3QnLAorICAgIH0pCisgICAgCisgICAgYWRkX3R5cGVkZWYoeworICAgICAgICAnbmFtZScgICAgICAgOiAndmxhbicsCisgICAgICAgICdoZWxwLW5hbWUnICA6ICdWbGFuJywKKyAgICAgICAgJ2Jhc2UtdHlwZScgIDogJ2ludGVnZXInLAorICAgICAgICAndmFsaWRhdGlvbicgOiAndmFsaWRhdGUtaW50ZWdlcicsCisgICAgfSkKKworICAgIGFkZF90eXBlZGVmKHsKKyAgICAgICAgJ25hbWUnICAgICAgIDogJ2xhYmVsJywKKyAgICAgICAgJ2hlbHAtbmFtZScgIDogJ1NlZ21lbnQgTGFiZWwnLAorICAgICAgICAnYmFzZS10eXBlJyAgOiAnaW50ZWdlcicsCisgICAgICAgICd2YWxpZGF0aW9uJyA6ICd2YWxpZGF0ZS1pbnRlZ2VyJywKKyAgICB9KQorICAgIAorICAgIGFkZF90eXBlZGVmKHsKKyAgICAgICAgJ25hbWUnICAgICAgIDogJ2RwaWQnLAorICAgICAgICAnaGVscC1uYW1lJyAgOiAnc3dpdGNoIGlkICg4LWhleCBieXRlcyknLAorICAgICAgICAnYmFzZS10eXBlJyAgOiAnc3RyaW5nJywKKyAgICAgICAgJ3ZhbGlkYXRpb24nIDogJ3ZhbGlkYXRlLXN3aXRjaC1kcGlkJywKKyAgICB9KQorCisgICAgYWRkX3R5cGVkZWYoeworICAgICAgICAnbmFtZScgICAgICA6ICdpcC1hZGRyZXNzJywKKyAgICAgICAgJ2hlbHAtbmFtZScgOiAnSVAgYWRkcmVzcyAoZG90dGVkIHF1YWQpJywKKyAgICAgICAgJ2Jhc2UtdHlwZScgOiAnc3RyaW5nJywKKyAgICAgICAgJ3BhdHRlcm4nICAgOiByJ14oKFswLTldfFsxLTldWzAtOV18MVswLTldWzAtOV18MlswLTRdWzAtOV18MjVbMC01XSlcLil7M30oWzAtOV18WzEtOV1bMC05XXwxWzAtOV1bMC05XXwyWzAtNF1bMC05XXwyNVswLTVdKSQnLAorICAgIH0pCisgICAgCisgICAgYWRkX3R5cGVkZWYoeworICAgICAgICAnbmFtZScgICAgICAgIDogJ2lwLWFkZHJlc3Mtbm90LW1hc2snLAorICAgICAgICAnaGVscC1uYW1lJyAgIDogJ0lQIEFkZHJlc3MnLAorICAgICAgICAnYmFzZS10eXBlJyAgIDogJ3N0cmluZycsCisgICAgICAgICdwYXR0ZXJuJyAgICAgOiByJ14oXGR7MSwzfVwuKXszfVxkezEsM30kJywKKyAgICAgICAgJ3ZhbGlkYXRpb24nICA6ICd2YWxpZGF0ZS1pcC1hZGRyZXNzLW5vdC1tYXNrJworICAgIH0pCisgICAgCisgICAgYWRkX3R5cGVkZWYoeworICAgICAgICAnbmFtZScgICAgICAgIDogJ2NpZHItcmFuZ2UnLAorICAgICAgICAnaGVscC1uYW1lJyAgIDogJ2NpZHIgcmFuZ2UgKGlwLWFkZHJlc3MvaW50KScsCisgICAgICAgICdiYXNlLXR5cGUnICAgOiAnc3RyaW5nJywKKyAgICAgICAgJ3BhdHRlcm4nICAgICA6IHInXihcZHsxLDN9XC4pezN9XGR7MSwzfS9cZHsxLDJ9PyQnLAorICAgICAgICAndmFsaWRhdGlvbicgIDogJ3ZhbGlkYXRlLWNpZHItcmFuZ2UnLAorICAgIH0pCisKKyAgICBhZGRfdHlwZWRlZih7CisgICAgICAgICduYW1lJyAgICAgICAgOiAnbmV0bWFzaycsCisgICAgICAgICdoZWxwLW5hbWUnICAgOiAnbmV0bWFzayAoZWc6IDI1NS4yNTUuMjU1LjApJywKKyAgICAgICAgJ2Jhc2UtdHlwZScgICA6ICdpcC1hZGRyZXNzJywKKyAgICAgICAgJ3ZhbGlkYXRpb24nICA6ICd2YWxpZGF0ZS1uZXRtYXNrJworICAgIH0pCisgICAgCisgICAgYWRkX3R5cGVkZWYoeworICAgICAgICAnbmFtZScgICAgICAgOiAnb2JqLXR5cGUnLAorICAgICAgICAnaGVscC1uYW1lJyAgOiAnY29uZmlndXJlZCBvYmplY3QnLAorICAgICAgICAnYmFzZS10eXBlJyAgOiAnc3RyaW5nJywKKyAgICAgICAgJ3ZhbGlkYXRpb24nIDogJ3ZhbGlkYXRlLWV4aXN0aW5nLW9iaicKKyAgICB9KQorCisgICAgYWRkX3R5cGVkZWYoeworICAgICAgICAnbmFtZScgICAgICAgOiAnaW52ZXJzZS1uZXRtYXNrJywKKyAgICAgICAgJ2hlbHAtbmFtZScgIDogJ2ludmVyc2UgbmV0bWFzayAoZWc6IDAuMC4wLjI1NSknLAorICAgICAgICAnYmFzZS10eXBlJyAgOiAnaXAtYWRkcmVzcycsCisgICAgICAgICd2YWxpZGF0aW9uJyA6ICd2YWxpZGF0ZS1pbnZlcnNlLW5ldG1hc2snCisgICAgfSkKKyAgICAKKyAgICBhZGRfdHlwZWRlZih7CisgICAgICAgICduYW1lJyAgICAgIDogJ2RvbWFpbi1uYW1lJywKKyAgICAgICAgJ2hlbHAtbmFtZScgOiAnRG9tYWluIG5hbWUnLAorICAgICAgICAjIFNpbXBsZSBkb21haW4gbmFtZSBjaGVja2luZy4KKyAgICAgICAgIyBBbGxvd3Mgc29tZSB0aGluZ3MgdGhhdCBhcmVuJ3QgdmFsaWQgZG9tYWluIG5hbWVzLCBidXQgZG9lc24ndAorICAgICAgICAjIGRpc2FsbG93IHRoaW5ncyBsaWt5IHB1bnljb2RlIGFuZCBmdWxseSBxdWFsaWZpZWQgZG9tYWluIG5hbWVzLgorICAgICAgICAncGF0dGVybicgICA6IHInXihbYS16QS1aMC05LV0rLj8pKyQnLAorICAgICAgICAnYmFzZS10eXBlJyA6ICdzdHJpbmcnCisgICAgfSkKKworICAgIGFkZF90eXBlZGVmKHsKKyAgICAgICAgJ25hbWUnOiAnaXAtYWRkcmVzcy1vci1kb21haW4tbmFtZScsCisgICAgICAgICdoZWxwLW5hbWUnOiAnSVAgYWRkcmVzcyBvciBkb21haW4gbmFtZScsCisgICAgICAgICdiYXNlLXR5cGUnOiAnc3RyaW5nJywKKyAgICAgICAgJ3BhdHRlcm4nOiAoCisgICAgICAgICAgICByJ14oW2EtekEtWjAtOS1dKy4/KSskJywgIyBzaW1wbGUgZG9tYWluIG5hbWUKKyAgICAgICAgICAgIHInXihcZHsxLDN9XC4pezN9XGR7MSwzfSQnICMgSVAgYWRkcmVzcworICAgICAgICApLAorICAgICAgICAjIGZvciBpcCBhZGRyZXNzZXMsIG91Z2h0IHRvIHZhbGlkYXRlIG5vbi1tYXNrIHZhbHVlcywgaWU6IDAuMC4wLjAsIDI1NS4yNTUuMjU1LjI1NQorICAgICAgICAjIG91Z2h0IHRvIGFsc28gdmFsaWRhdGUgaXAgYWRkcmVzc2VzIHdoaWNoIGFyZW4ndCBpcCBhZGRyZXNzLCB0aGUgZGhjcCAxNjkueCB2YWx1ZXMuCisgICAgfSkKKyAgICAKKyAgICBhZGRfdHlwZWRlZih7CisgICAgICAgICduYW1lJyAgICAgICA6ICdyZXNvbHZhYmxlLWlwLWFkZHJlc3MnLAorICAgICAgICAnaGVscC1uYW1lJyAgOiAncmVzb2x2YWJsZSBpcCBhZGRyZXNzJywKKyAgICAgICAgJ2Jhc2UtdHlwZScgIDogJ3N0cmluZycsCisgICAgICAgICdwYXR0ZXJuJyAgICA6ICgKKyAgICAgICAgICAgIHInXihbYS16QS1aMC05LV0rLj8pKyQnLCAjIHNpbXBsZSBkb21haW4gbmFtZQorICAgICAgICAgICAgcideKFxkezEsM31cLil7M31cZHsxLDN9JCcgIyBJUCBhZGRyZXNzCisgICAgICAgICksCisgICAgICAgICd2YWxpZGF0aW9uJyA6ICd2YWxpZGF0ZS1yZXNvbHZhYmxlLWlwLWFkZHJlc3MnLAorICAgIH0pCisKKyAgICBhZGRfdHlwZWRlZih7CisgICAgICAgICduYW1lJzogJ2VuYWJsZS1kaXNhYmxlLWZsYWcnLAorICAgICAgICAnaGVscC1uYW1lJzogJ0VudGVyICJlbmFibGUiIG9yICJkaXNhYmxlIicsCisgICAgICAgICdiYXNlLXR5cGUnOiAnZW51bScsCisgICAgICAgICd2YWx1ZXMnOiAoJ2Rpc2FibGUnLCAnZW5hYmxlJyksCisgICAgfSkKKworICAgIGFkZF90eXBlZGVmKHsKKyAgICAgICAgJ25hbWUnICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAnaGVscC1uYW1lJyAgOiAnQWxwaGFiZXRpYyBjaGFyYWN0ZXIsIGZvbGxvd2VkIGJ5IGFscGhhbnVtZXJpY3MnLAorICAgICAgICAnYmFzZS10eXBlJyAgOiAnc3RyaW5nJywKKyAgICAgICAgJ3ZhbGlkYXRpb24nIDogJ3ZhbGlkYXRlLWlkZW50aWZpZXInLAorICAgIH0pCisKKyAgICBhZGRfdHlwZWRlZih7CisgICAgICAgICduYW1lJyAgICAgICA6ICdjb25maWcnLAorICAgICAgICAnaGVscC1uYW1lJyAgOiAnbmFtZSBvZiBjb25maWcgZmlsZScsCisgICAgICAgICdiYXNlLXR5cGUnICA6ICdzdHJpbmcnLAorICAgICAgICAndmFsaWRhdGlvbicgOiAndmFsaWRhdGUtY29uZmlnJywKKyAgICB9KQorCmRpZmYgLS1naXQgYS9jbGkvZGF0YS9vdWktYXNjaWkudHh0IGIvY2xpL2RhdGEvb3VpLWFzY2lpLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZTIxMDA0Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RhdGEvb3VpLWFzY2lpLnR4dApAQCAtMCwwICsxLDk1MDkyIEBACisKK09VSQkJCQlPcmdhbml6YXRpb24KK2NvbXBhbnlfaWQJCQlPcmdhbml6YXRpb24KKwkJCQlBZGRyZXNzCisKKworMDAtMDAtMDAgICAoaGV4KQkJWEVST1ggQ09SUE9SQVRJT04KKzAwMDAwMCAgICAgKGJhc2UgMTYpCQlYRVJPWCBDT1JQT1JBVElPTgorCQkJCU0vUyAxMDUtNTBDCisJCQkJODAwIFBISUxMSVBTIFJPQUQKKwkJCQlXRUJTVEVSIE5ZIDE0NTgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0wMSAgIChoZXgpCQlYRVJPWCBDT1JQT1JBVElPTgorMDAwMDAxICAgICAoYmFzZSAxNikJCVhFUk9YIENPUlBPUkFUSU9OCisJCQkJWkVST1ggU1lTVEVNUyBJTlNUSVRVVEUKKwkJCQlNL1MgMTA1LTUwQyA4MDAgUEhJTExJUFMgUk9BRAorCQkJCVdFQlNURVIgTlkgMTQ1ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTAyICAgKGhleCkJCVhFUk9YIENPUlBPUkFUSU9OCiswMDAwMDIgICAgIChiYXNlIDE2KQkJWEVST1ggQ09SUE9SQVRJT04KKwkJCQlYRVJPWCBTWVNURU1TIElOU1RJVFVURQorCQkJCU0vUyAxMDUtNTBDIDgwMCBQSElMTElQUyBST0FECisJCQkJV0VCU1RFUiBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMDMgICAoaGV4KQkJWEVST1ggQ09SUE9SQVRJT04KKzAwMDAwMyAgICAgKGJhc2UgMTYpCQlYRVJPWCBDT1JQT1JBVElPTgorCQkJCVpFUk9YIFNZU1RFTVMgSU5TVElUVVRFCisJCQkJTS9TIDEwNS01MENFVyBBVkVOVUUgODAwIFBISUxMSVBTIFJPQUQKKwkJCQlXRUJTVEVSIE5ZIDE0NTgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0wNCAgIChoZXgpCQlYRVJPWCBDT1JQT1JBVElPTgorMDAwMDA0ICAgICAoYmFzZSAxNikJCVhFUk9YIENPUlBPUkFUSU9OCisJCQkJT0ZGSUNFIFNZU1RFTVMgRElWSVNJT04KKwkJCQlNL1MgMTA1LTUwQyA4MDAgUEhJTExJUFMgUk9BRDQKKwkJCQlXRUJTVEVSIE5ZIDE0NTgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0wNSAgIChoZXgpCQlYRVJPWCBDT1JQT1JBVElPTgorMDAwMDA1ICAgICAoYmFzZSAxNikJCVhFUk9YIENPUlBPUkFUSU9OCisJCQkJT0ZGSUNFIFNZU1RFTVMgRElWSVNJT04KKwkJCQlNL1MgMTA1LTUwQyA4MDAgUEhJTExJUFMgUk9BRAorCQkJCVdFQlNURVIgTlkgMTQ1ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTA2ICAgKGhleCkJCVhFUk9YIENPUlBPUkFUSU9OCiswMDAwMDYgICAgIChiYXNlIDE2KQkJWEVST1ggQ09SUE9SQVRJT04KKwkJCQlPRkZJQ0UgU1lTVEVNUyBESVZJU0lPTgorCQkJCU0vUyAxMDUtNTBDIDgwMCBQSElMTElQUyBST0FENAorCQkJCVdFQlNURVIgTlkgMTQ1ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTA3ICAgKGhleCkJCVhFUk9YIENPUlBPUkFUSU9OCiswMDAwMDcgICAgIChiYXNlIDE2KQkJWEVST1ggQ09SUE9SQVRJT04KKwkJCQlPRkZJQ0UgU1lTVEVNUyBESVZJU0lPTgorCQkJCU0vUyAxMDUtNTBDIDgwMCBQSElMTElQUyBST0FECisJCQkJV0VCU1RFUiBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMDggICAoaGV4KQkJWEVST1ggQ09SUE9SQVRJT04KKzAwMDAwOCAgICAgKGJhc2UgMTYpCQlYRVJPWCBDT1JQT1JBVElPTgorCQkJCU9GRklDRSBTWVNURU1TIERJVklTSU9OCisJCQkJTS9TLyAxMDUtNTBDIDgwMCBQSElMTElQUyBST0FECisJCQkJV0VCU1RFUiBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMDkgICAoaGV4KQkJWEVST1ggQ09SUE9SQVRJT04KKzAwMDAwOSAgICAgKGJhc2UgMTYpCQlYRVJPWCBDT1JQT1JBVElPTgorCQkJCTEzNTAgSkVGRkVSU09OIFJPQUQKKwkJCQlST0NIRVNURVIgTlkgMTQ2MjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTBBICAgKGhleCkJCU9NUk9OIFRBVEVJU0kgRUxFQ1RST05JQ1MgQ08uCiswMDAwMEEgICAgIChiYXNlIDE2KQkJT01ST04gVEFURUlTSSBFTEVDVFJPTklDUyBDTy4KKwkJCQlTRUNUSU9OIE5GRiwgU1lTVEVNIFImRCBMQUJTLgorCQkJCVJFU0VBUkNIICYgVEVDSC4gQVNTRVNTTU5UIERJViBTSElNT0tBSUkKKwkJCQlLWU9UTyA2MTcgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC0wQiAgIChoZXgpCQlNQVRSSVggQ09SUE9SQVRJT04KKzAwMDAwQiAgICAgKGJhc2UgMTYpCQlNQVRSSVggQ09SUE9SQVRJT04KKwkJCQkxMjAzIE5FVyBIT1BFIFJPQUQKKwkJCQlSQUxFSUdIIE5PUlRIIENBUk9MSU5BICAyNzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTBDICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMDAwQyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMEQgICAoaGV4KQkJRklCUk9OSUNTIExURC4KKzAwMDAwRCAgICAgKGJhc2UgMTYpCQlGSUJST05JQ1MgTFRELgorCQkJCU1BVEFNIFRFQ0hOT0xPR1kgQ0VOVEVSCisJCQkJSEFJRkEgMzE5MDUKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDAtMEUgICAoaGV4KQkJRlVKSVRTVSBMSU1JVEVECiswMDAwMEUgICAgIChiYXNlIDE2KQkJRlVKSVRTVSBMSU1JVEVECisJCQkJTXVzYXNoaS1rb3N1Z2kgVG93ZXIgUGxhY2UgQmxkZy4sCisJCQkJS29zdWdpLWNobyAxLWNob21lLE5ha2FoYXJhLWt1CisJCQkJS0FXQVNBS0kgMjExIEthbmFnYXdhIAorCQkJCUpBUEFOCisKKzAwLTAwLTBGICAgKGhleCkJCU5FWFQsIElOQy4KKzAwMDAwRiAgICAgKGJhc2UgMTYpCQlORVhULCBJTkMuCisJCQkJMzQ3NSBERUVSIENSRUVLIFJPQUQKKwkJCQlQQUxPIEFMVE8gQ0EgOTQzMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTEwICAgKGhleCkJCVNZVEVLIElOQy4KKzAwMDAxMCAgICAgKGJhc2UgMTYpCQlTWVRFSyBJTkMuCisJCQkJMTIyNSBDSEFSTEVTVE9OIFJPQUQKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0xMSAgIChoZXgpCQlOT1JNRVJFTCBTWVNURU1FUworMDAwMDExICAgICAoYmFzZSAxNikJCU5PUk1FUkVMIFNZU1RFTUVTCisJCQkJNTggUlVFIFBPVFRJRVIKKwkJCQk3ODE1MCBMRSBDSEVTTkFZCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAwLTEyICAgKGhleCkJCUlORk9STUFUSU9OIFRFQ0hOT0xPR1kgTElNSVRFRAorMDAwMDEyICAgICAoYmFzZSAxNikJCUlORk9STUFUSU9OIFRFQ0hOT0xPR1kgTElNSVRFRAorCQkJCU1BWUxBTkRTIEFWRS4gSEVNRUwgSEVNUFNURUFECisJCQkJSEVSVFMgRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLTEzICAgKGhleCkJCUNBTUVYCiswMDAwMTMgICAgIChiYXNlIDE2KQkJQ0FNRVgKKwkJCQk3NSBLTkVFTEFORCBTVFJFRVQKKwkJCQlCT1NUT04gTUEgMDIxMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTE0ICAgKGhleCkJCU5FVFJPTklYCiswMDAwMTQgICAgIChiYXNlIDE2KQkJTkVUUk9OSVgKKwkJCQkxMzcyIE1DRE9XRUxMIEJMVkQuCisJCQkJUEVUVUxBTUEgQ0EgOTQ5NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTE1ICAgKGhleCkJCURBVEFQT0lOVCBDT1JQT1JBVElPTgorMDAwMDE1ICAgICAoYmFzZSAxNikJCURBVEFQT0lOVCBDT1JQT1JBVElPTgorCQkJCTk3MjUgREFUQVBPSU5UIERSSVZFCisJCQkJTVMgUy0zNworCQkJCVNBTiBBTlRPTklPIFRYIDc4Mjg0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0xNiAgIChoZXgpCQlEVSBQT05UIFBJWEVMIFNZU1RFTVMgICAgIC4KKzAwMDAxNiAgICAgKGJhc2UgMTYpCQlEVSBQT05UIFBJWEVMIFNZU1RFTVMgICAgIC4KKwkJCQlNRUFETEFLRSBQTEFDRQorCQkJCVRIT1JQRSBMRUEgUk9BRCBFR0hBTSwgU1VSUkVZIFRXMjAgOEhFCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLTE3ICAgKGhleCkJCVRFS0VMRUMKKzAwMDAxNyAgICAgKGJhc2UgMTYpCQlURUtFTEVDCisJCQkJMjY1NDAgQUdPVVJBIFJPQUQKKwkJCQlDQUxBQkFTQVMgQ0EgOTEzMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTE4ICAgKGhleCkJCVdFQlNURVIgQ09NUFVURVIgQ09SUE9SQVRJT04KKzAwMDAxOCAgICAgKGJhc2UgMTYpCQlXRUJTVEVSIENPTVBVVEVSIENPUlBPUkFUSU9OCisJCQkJMTYwNDAgUkVEV09PRCBMT0RHRSBST0FECisJCQkJTE9TIEdBVE9TIENBIDk1MDMzLTkyNjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTE5ICAgKGhleCkJCUFQUExJRUQgRFlOQU1JQ1MgSU5URVJOQVRJT05BTAorMDAwMDE5ICAgICAoYmFzZSAxNikJCUFQUExJRUQgRFlOQU1JQ1MgSU5URVJOQVRJT05BTAorCQkJCTM4MDAgU1RPTkUgU0NIT09MIFJPQUQKKwkJCQlBTk4gQVJCT1IgTUkgNDgxMDQtMjQ5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMUEgICAoaGV4KQkJQURWQU5DRUQgTUlDUk8gREVWSUNFUworMDAwMDFBICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIE1JQ1JPIERFVklDRVMKKwkJCQlQLk8uIEJPWCAzNDUzCisJCQkJTS9TIDI2CisJCQkJU1VOTllWQUxFIENBIDk0MDg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0xQiAgIChoZXgpCQlOT1ZFTEwgSU5DLgorMDAwMDFCICAgICAoYmFzZSAxNikJCU5PVkVMTCBJTkMuCisJCQkJMTIyIEVBU1QgMTcwMCBTT1VUSAorCQkJCU0vUzogRS0xMi0xCisJCQkJUFJPVk8gVVQgODQ2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTFDICAgKGhleCkJCUJFTEwgVEVDSE5PTE9HSUVTCiswMDAwMUMgICAgIChiYXNlIDE2KQkJQkVMTCBURUNITk9MT0dJRVMKKwkJCQkzMzAgV0FSUkVOIEFWRU5VRQorCQkJCUZSRU1PTlQgQ0EgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTFEICAgKGhleCkJCUNBQkxFVFJPTiBTWVNURU1TLCBJTkMuCiswMDAwMUQgICAgIChiYXNlIDE2KQkJQ0FCTEVUUk9OIFNZU1RFTVMsIElOQy4KKwkJCQkzNSBJTkRVU1RSSUFMIFdBWQorCQkJCVAuTy4gQk9YIDUwMDUKKwkJCQlST0NIRVNURVIgTkggMDM4NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTFFICAgKGhleCkJCVRFTFNJU1QgSU5EVVNUUklBIEVMRUNUUk9OSUNBCiswMDAwMUUgICAgIChiYXNlIDE2KQkJVEVMU0lTVCBJTkRVU1RSSUEgRUxFQ1RST05JQ0EKKwkJCQlSVUEgVklMSEVOQSBERSBNT1JBRVMsIDM4MAorCQkJCUJBUlJBIERBIFRJSlVDQSBSSU8gREUgSkFORUlSTywgUkogQ0VQIDIKKwkJCQlCUkFaSUwKKwkJCQlCUkFaSUwKKworMDAtMDAtMUYgICAoaGV4KQkJVGVsY28gU3lzdGVtcywgSW5jLgorMDAwMDFGICAgICAoYmFzZSAxNikJCVRlbGNvIFN5c3RlbXMsIEluYy4KKwkJCQkxNSBCZXJrc2hpcmUgUm9hZAorCQkJCU1hbnNmaWVsZCBNQSAwMjA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMjAgICAoaGV4KQkJREFUQUlORFVTVFJJRVIgRElBQiBBQgorMDAwMDIwICAgICAoYmFzZSAxNikJCURBVEFJTkRVU1RSSUVSIERJQUIgQUIKKwkJCQlCT1ggMjAyOQorCQkJCVMtMTgzIDAyIFRBQlkKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtMDAtMjEgICAoaGV4KQkJU1VSRU1BTiBDT01QLiAmIENPTU1VTi4gQ09SUC4KKzAwMDAyMSAgICAgKGJhc2UgMTYpCQlTVVJFTUFOIENPTVAuICYgQ09NTVVOLiBDT1JQLgorCQkJCTEwRi01IE5PLiA3LCAgU0VDLiAzCisJCQkJSFNJTiBTSEVORyBOLiBSRC4sCisJCQkJVEFJUEVJIFRBSVdBTiwgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMC0yMiAgIChoZXgpCQlWSVNVQUwgVEVDSE5PTE9HWSBJTkMuCiswMDAwMjIgICAgIChiYXNlIDE2KQkJVklTVUFMIFRFQ0hOT0xPR1kgSU5DLgorCQkJCTE3MDMgTUlERExFU0VYIFNUUkVFVAorCQkJCUxPV0VMTCBNQSAwMTg1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMjMgICAoaGV4KQkJQUJCIElORFVTVFJJQUwgU1lTVEVNUyBBQgorMDAwMDIzICAgICAoYmFzZSAxNikJCUFCQiBJTkRVU1RSSUFMIFNZU1RFTVMgQUIKKwkJCQlERVBULiBTRUlTWS9MS1NCCisJCQkJUy03MjEgNjcgVkFTVEVSQVMKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtMDAtMjQgICAoaGV4KQkJQ09OTkVDVCBBUworMDAwMDI0ICAgICAoYmFzZSAxNikJCUNPTk5FQ1QgQVMKKwkJCQlIT0VSS0FFUiA3LTkKKwkJCQlESyAyNzMwIEhFUkxFVgorCQkJCURFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLTAwLTI1ICAgKGhleCkJCVJBTVRFSyBDT1JQLgorMDAwMDI1ICAgICAoYmFzZSAxNikJCVJBTVRFSyBDT1JQLgorCQkJCTgxMCBXLiBNQVVERSBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTI2ICAgKGhleCkJCVNIQS1LRU4gQ08uLCBMVEQuCiswMDAwMjYgICAgIChiYXNlIDE2KQkJU0hBLUtFTiBDTy4sIExURC4KKwkJCQlNSU5BTUktT1RTVUtBCisJCQkJMi0yNi0xMywgVE9TSElNQS1LVQorCQkJCVRPS1lPIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtMjcgICAoaGV4KQkJSkFQQU4gUkFESU8gQ09NUEFOWQorMDAwMDI3ICAgICAoYmFzZSAxNikJCUpBUEFOIFJBRElPIENPTVBBTlkKKwkJCQlMQUJPUkFUT1JZCisJCQkJNS0xLTEgU0hJTU9SRU5KQUtVIE1JVEFLQS1TSEksIFRPS1lPCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC0yOCAgIChoZXgpCQlQUk9ESUdZIFNZU1RFTVMgQ09SUE9SQVRJT04KKzAwMDAyOCAgICAgKGJhc2UgMTYpCQlQUk9ESUdZIFNZU1RFTVMgQ09SUE9SQVRJT04KKwkJCQkyNjAxIENBU0VZIERSSVZFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMjkgICAoaGV4KQkJSU1DIE5FVFdPUktTIENPUlAuCiswMDAwMjkgICAgIChiYXNlIDE2KQkJSU1DIE5FVFdPUktTIENPUlAuCisJCQkJMTY5MzEgTUlMTElLRU4gQVZFLgorCQkJCUlSVklORSBDQSA5MjcxNC01MDEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0yQSAgIChoZXgpCQlUUlcgLSBTRUREL0lOUAorMDAwMDJBICAgICAoYmFzZSAxNikJCVRSVyAtIFNFREQvSU5QCisJCQkJMTgwMCBHTEVOTiBDVVJUSVNTIFNUUkVFVAorCQkJCU0vUyBESDYvMjgyNgorCQkJCUNBUlNPTiBDQSA5MDc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMkIgICAoaGV4KQkJQ1JJU1AgQVVUT01BVElPTiwgSU5DCiswMDAwMkIgICAgIChiYXNlIDE2KQkJQ1JJU1AgQVVUT01BVElPTiwgSU5DCisJCQkJNTE2MCBCTEFaRVIgUEFSS1dBWQorCQkJCURVQkxJTiBPSCA0MzAxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMkMgICAoaGV4KQkJQVVUT1RPVEUgTElNSVRFRAorMDAwMDJDICAgICAoYmFzZSAxNikJCUFVVE9UT1RFIExJTUlURUQKKwkJCQkxMDAgQkVMTEVWVUUgUk9BRAorCQkJCU5FV0FSSyBERUxBV0FSRSAxOTcxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMkQgICAoaGV4KQkJQ0hST01BVElDUyBJTkMKKzAwMDAyRCAgICAgKGJhc2UgMTYpCQlDSFJPTUFUSUNTIElOQworCQkJCTI1NTggTU9VTlRBSU4gSU5EVVNUUklBTCBCTFZECisJCQkJVFVDS0VSIEdBIDMwMDg0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0yRSAgIChoZXgpCQlTT0NJRVRFIEVWSVJBCiswMDAwMkUgICAgIChiYXNlIDE2KQkJU09DSUVURSBFVklSQQorCQkJCVpPTkUgUE9SVFVBSVJFIERFIEJSRUdBSUxMT04KKwkJCQk4MzUwMCBMQSBTRVlORSBTVVIgTUVSCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAwLTJGICAgKGhleCkJCVRJTUVQTEVYIElOQy4KKzAwMDAyRiAgICAgKGJhc2UgMTYpCQlUSU1FUExFWCBJTkMuCisJCQkJNTMwIENIRVNUTlVUIFJJREdFIFJPQUQKKwkJCQlXT09EQ0xJRkYgTEFLRSBOSiAwNzY3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMzAgICAoaGV4KQkJVkcgTEFCT1JBVE9SWSBTWVNURU1TIExURAorMDAwMDMwICAgICAoYmFzZSAxNikJCVZHIExBQk9SQVRPUlkgU1lTVEVNUyBMVEQKKwkJCQlUUklCVU5FIEFWRU5VRQorCQkJCUFMVFJJTkNIQU0sIE1BTkNIRVNURVIsIFdBMTQgNVRQCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLTMxICAgKGhleCkJCVFQU1ggQ09NTVVOSUNBVElPTlMgUFRZIExURAorMDAwMDMxICAgICAoYmFzZSAxNikJCVFQU1ggQ09NTVVOSUNBVElPTlMgUFRZIExURAorCQkJCTMzIFJJQ0hBUkRTT04gU1RSRUVUCisJCQkJV0VTVCBQRVJUSCA2MDA1CisJCQkJV0VTVEVSTiBBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtMDAtMzIgICAoaGV4KQkJTWFyY29uaSBwbGMKKzAwMDAzMiAgICAgKGJhc2UgMTYpCQlNYXJjb25pIHBsYworCQkJCTI4IEVMU1RSRUUgV0FZLCBCT1JFSEFNV09PRAorCQkJCUhFUlRGT1JEU0hJUkUgV0Q2IDFSWAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtMzMgICAoaGV4KQkJRUdBTiBNQUNISU5FUlkgQ09NUEFOWQorMDAwMDMzICAgICAoYmFzZSAxNikJCUVHQU4gTUFDSElORVJZIENPTVBBTlkKKwkJCQlTT1VUSCBBREFNU1ZJTExFIFJPQUQKKwkJCQlTT01NRVJWSUxMRSBOSiAwODg3NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMzQgICAoaGV4KQkJTkVUV09SSyBSRVNPVVJDRVMgQ09SUE9SQVRJT04KKzAwMDAzNCAgICAgKGJhc2UgMTYpCQlORVRXT1JLIFJFU09VUkNFUyBDT1JQT1JBVElPTgorCQkJCTYxIEVBU1QgREFHR0VUVCBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0zNSAgIChoZXgpCQlTUEVDVFJBR1JBUEhJQ1MgQ09SUE9SQVRJT04KKzAwMDAzNSAgICAgKGJhc2UgMTYpCQlTUEVDVFJBR1JBUEhJQ1MgQ09SUE9SQVRJT04KKwkJCQkgICAgT1IKKwkJCQlMQU4gTUFOVUZBQ1RVUklORyBFTkdJTkVFUiA5NzA3IFdBUExFUyBTCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0zNiAgIChoZXgpCQlBVEFSSSBDT1JQT1JBVElPTgorMDAwMDM2ICAgICAoYmFzZSAxNikJCUFUQVJJIENPUlBPUkFUSU9OCisJCQkJMTE5NiBCT1JSRUdBUyBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTM3ICAgKGhleCkJCU9YRk9SRCBNRVRSSUNTIExJTUlURUQKKzAwMDAzNyAgICAgKGJhc2UgMTYpCQlPWEZPUkQgTUVUUklDUyBMSU1JVEVECisJCQkJVU5JVCA4LCA3IFdFU1QgV0FZLAorCQkJCUJPVExFWSxPWEZPUkQsIE9YMiBPSkIKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLTM4ICAgKGhleCkJCUNTUyBMQUJTCiswMDAwMzggICAgIChiYXNlIDE2KQkJQ1NTIExBQlMKKwkJCQkyMTM0IFNPVVRIIFJJUENIRVkKKwkJCQlTQU5UQSBBTkEgQ0EgOTI3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTM5ICAgKGhleCkJCVRPU0hJQkEgQ09SUE9SQVRJT04KKzAwMDAzOSAgICAgKGJhc2UgMTYpCQlUT1NISUJBIENPUlBPUkFUSU9OCisJCQkJQ09NUFVURVIgRElWSVNJT04KKwkJCQkxLTEtMSBTSElCQVVSQSwgTUlOQVRPLUtVCisJCQkJVE9LWU8gMTA1IEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtM0EgICAoaGV4KQkJQ0hZUk9OIENPUlBPUkFUSU9OCiswMDAwM0EgICAgIChiYXNlIDE2KQkJQ0hZUk9OIENPUlBPUkFUSU9OCisJCQkJMjY1IFNQQUdOT0xJIFJPQUQKKwkJCQlNRUxWSUxMRSBOWSAxMTc0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtM0IgICAoaGV4KQkJaSBDb250cm9scywgSW5jLgorMDAwMDNCICAgICAoYmFzZSAxNikJCWkgQ29udHJvbHMsIEluYy4KKwkJCQkxMkYgRG9vbnNhbiBidWlsZGluZywgMTA1LTcKKwkJCQlOb25oeXVuLWRvbmcsIEdhbmduYW0tZ3UgU2VvdWwKKwkJCQlLT1JFQSAxMzUtNzE0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAwLTNDICAgKGhleCkJCUFVU1BFWCBTWVNURU1TIElOQy4KKzAwMDAzQyAgICAgKGJhc2UgMTYpCQlBVVNQRVggU1lTVEVNUyBJTkMuCisJCQkJNTIwMCBHUkVBVCBBTUVSSUNBIFBLV1kKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtM0QgICAoaGV4KQkJVU5JU1lTCiswMDAwM0QgICAgIChiYXNlIDE2KQkJVU5JU1lTCisJCQkJTVM4LTAxMAorCQkJCVAuTy4gQk9YIDY2ODUKKwkJCQlTQU4gSk9TRSBDQSA5NTE1MC02Njg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0zRSAgIChoZXgpCQlTSU1QQUNUCiswMDAwM0UgICAgIChiYXNlIDE2KQkJU0lNUEFDVAorCQkJCTkyMTAgU0tZIFBBUksgQ09VUlQKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTNGICAgKGhleCkJCVNZTlRSRVgsIElOQy4KKzAwMDAzRiAgICAgKGJhc2UgMTYpCQlTWU5UUkVYLCBJTkMuCisJCQkJMjQ2IElORFVTVFJJQUwgV0FZIFdFU1QKKwkJCQlFQVRPTlRPV04gTkogMDc3MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTQwICAgKGhleCkJCUFQUExJQ09OLCBJTkMuCiswMDAwNDAgICAgIChiYXNlIDE2KQkJQVBQTElDT04sIElOQy4KKwkJCQk0MjUxIFBMWU1PVVRIIFJEIDQ4MDE1CisJCQkJUE8gQk9YIDk4NgorCQkJCUFOTiBBUkJPUiBNSSA0ODEwNi0wOTg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC00MSAgIChoZXgpCQlJQ0UgQ09SUE9SQVRJT04KKzAwMDA0MSAgICAgKGJhc2UgMTYpCQlJQ0UgQ09SUE9SQVRJT04KKwkJCQkxNzk0NSBTS1lQQVJLIENJUkNMRQorCQkJCVNVSVRFIEUKKwkJCQlJUlZJTkUgQ0EgOTI3MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTQyICAgKGhleCkJCU1FVElFUiBNQU5BR0VNRU5UIFNZU1RFTVMgTFRELgorMDAwMDQyICAgICAoYmFzZSAxNikJCU1FVElFUiBNQU5BR0VNRU5UIFNZU1RFTVMgTFRELgorCQkJCTMgRk9VTkRBVElPTiBTVFJFRVQKKwkJCQlJUFNXSUNIICBTVUZGT0xLICBJUDQgMUJHCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLTQzICAgKGhleCkJCU1JQ1JPIFRFQ0hOT0xPR1kKKzAwMDA0MyAgICAgKGJhc2UgMTYpCQlNSUNSTyBURUNITk9MT0dZCisJCQkJNDkwNSBFQVNUIExBUEFMTUEKKwkJCQlBTkFIRUlNIENBIDkyODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC00NCAgIChoZXgpCQlDQVNURUxMRSBDT1JQT1JBVElPTgorMDAwMDQ0ICAgICAoYmFzZSAxNikJCUNBU1RFTExFIENPUlBPUkFUSU9OCisJCQkJMzI1NS0zIFNDT1RUIEJPVUxFVkFSRAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC00NSAgIChoZXgpCQlGT1JEIEFFUk9TUEFDRSAmIENPTU0uIENPUlAuCiswMDAwNDUgICAgIChiYXNlIDE2KQkJRk9SRCBBRVJPU1BBQ0UgJiBDT01NLiBDT1JQLgorCQkJCUNPTE9SQURPIFNQUklOR1MgT1BFUkFUSU9OCisJCQkJMTA0NDAgU1RBVEUgSElHSFdBWSA4MworCQkJCUNPTE9SQURPIFNQUklOR1MgQ08gODA5MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTQ2ICAgKGhleCkJCU9MSVZFVFRJIE5PUlRIIEFNRVJJQ0EKKzAwMDA0NiAgICAgKGJhc2UgMTYpCQlPTElWRVRUSSBOT1JUSCBBTUVSSUNBCisJCQkJRSAyMjQyNSBBUFBMRVdBWQorCQkJCUxJQkVSVFkgTEFLRSBXQSA5OTAxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNDcgICAoaGV4KQkJTklDT0xFVCBJTlNUUlVNRU5UUyBDT1JQLgorMDAwMDQ3ICAgICAoYmFzZSAxNikJCU5JQ09MRVQgSU5TVFJVTUVOVFMgQ09SUC4KKwkJCQk1MjI1IFZFUk9OQSBST0FECisJCQkJTUFESVNPTiBXSSA1MzcxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNDggICAoaGV4KQkJU0VJS08gRVBTT04gQ09SUE9SQVRJT04KKzAwMDA0OCAgICAgKGJhc2UgMTYpCQlTRUlLTyBFUFNPTiBDT1JQT1JBVElPTgorCQkJCTgwIEhJUk9PS0EgU0hJT0pJUkktQ0lUWQorCQkJCU5BR0FOTy1LRU4KKwkJCQlKQVBBTiAzOTktMDcKKwkJCQlKQVBBTgorCiswMC0wMC00OSAgIChoZXgpCQlBUFJJQ09UIENPTVBVVEVSUywgTFRECiswMDAwNDkgICAgIChiYXNlIDE2KQkJQVBSSUNPVCBDT01QVVRFUlMsIExURAorCQkJCTkwIFZJTkNFTlQgRFJJVkUKKwkJCQlFREdCQVNUT04sIEJJUk1JTkdIQU0gQjE1MlNQCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLTRBICAgKGhleCkJCUFEQyBDT0RFTk9MTCBURUNITk9MT0dZIENPUlAuCiswMDAwNEEgICAgIChiYXNlIDE2KQkJQURDIENPREVOT0xMIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkyMDAgQ09SUE9SQVRFIEJMVkQuIFNPLgorCQkJCVlPTktFUlMgTlkgMTA3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTRCICAgKGhleCkJCUlDTCBEQVRBIE9ZCiswMDAwNEIgICAgIChiYXNlIDE2KQkJSUNMIERBVEEgT1kKKwkJCQlLVVRPTU9USUUgMTYtMTgKKwkJCQkwMDM4MCBIRUxTSU5LSSAgUC5PLiBCT1ggNDU4IFNGLTAwMTAxIEhFCisJCQkJRklOTEFORAorCQkJCUZJTkxBTkQKKworMDAtMDAtNEMgICAoaGV4KQkJTkVDIENPUlBPUkFUSU9OCiswMDAwNEMgICAgIChiYXNlIDE2KQkJTkVDIENPUlBPUkFUSU9OCisJCQkJNy0xIFNISUJBICA1LUNIT01FCisJCQkJTUlOQVRPLUtVCisJCQkJVE9LWU8gMTA4LTAxICBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLTREICAgKGhleCkJCURDSSBDT1JQT1JBVElPTgorMDAwMDREICAgICAoYmFzZSAxNikJCURDSSBDT1JQT1JBVElPTgorCQkJCTY0SiBQUklOQ0VUT04tSElHSFRTVE9XTiBSRAorCQkJCSMxMjEKKwkJCQlQUklOQ0VUT04gSlVOQ1RJT04gTkogMDg1NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTRFICAgKGhleCkJCUFNUEVYIENPUlBPUkFUSU9OCiswMDAwNEUgICAgIChiYXNlIDE2KQkJQU1QRVggQ09SUE9SQVRJT04KKwkJCQk1ODEgQ09ORkVSRU5DRSBQTEFDRQorCQkJCUdPTERFTiBDTyA4MDQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNEYgICAoaGV4KQkJTE9HSUNSQUZULCBJTkMuCiswMDAwNEYgICAgIChiYXNlIDE2KQkJTE9HSUNSQUZULCBJTkMuCisJCQkJMjIgQ09UVE9OIFJPQUQKKwkJCQlOQVNIVUEgTkggMDMwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTUwICAgKGhleCkJCVJBRElTWVMgQ09SUE9SQVRJT04KKzAwMDA1MCAgICAgKGJhc2UgMTYpCQlSQURJU1lTIENPUlBPUkFUSU9OCisJCQkJMTUwMjUgUy5XLiBLT0xMIFBBUktXQVkKKwkJCQlCRUFWRVJUT04gT1IgOTcwMDYtNjA1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNTEgICAoaGV4KQkJSE9CIEVMRUNUUk9OSUMgR01CSCAmIENPLiBLRworMDAwMDUxICAgICAoYmFzZSAxNikJCUhPQiBFTEVDVFJPTklDIEdNQkggJiBDTy4gS0cKKwkJCQlCUkFORFNTVEFUVEVSLVNUUi4yLTEwCisJCQkJRC04NTAyIFpJUk5ET1JGCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDAtNTIgICAoaGV4KQkJSW50cnVzaW9uLmNvbSwgSW5jLgorMDAwMDUyICAgICAoYmFzZSAxNikJCUludHJ1c2lvbi5jb20sIEluYy4KKwkJCQkxMTAxIEUuIEFSQVBBSE8gUk9BRAorCQkJCVJJQ0hBUkRTT04gVFggNzUwODEKKworMDAtMDAtNTMgICAoaGV4KQkJQ09NUFVDT1JQCiswMDAwNTMgICAgIChiYXNlIDE2KQkJQ09NUFVDT1JQCisJCQkJMjIxMSBNSUNISUdBTiBBVkVOVUUKKwkJCQlTQU5UQSBNT05JQ0EgQ0EgOTA0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTU0ICAgKGhleCkJCU1PRElDT04sIElOQy4KKzAwMDA1NCAgICAgKGJhc2UgMTYpCQlNT0RJQ09OLCBJTkMuCisJCQkJT05FIEhJR0ggU1RSRUVUCisJCQkJTk9SVEggQU5ET1ZFUiBNQSAwMTg0NS0yNjk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC01NSAgIChoZXgpCQlDT01NSVNTQVJJQVQgQSBMYEVORVJHSUUgQVRPTS4KKzAwMDA1NSAgICAgKGJhc2UgMTYpCQlDT01NSVNTQVJJQVQgQSBMYEVORVJHSUUgQVRPTS4KKwkJCQkzMSwgUlVFIERFIExBIEZFREVSQVRJT04KKwkJCQlQQVJJUyA3NTAxNQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMC01NiAgIChoZXgpCQlEUi4gQi4gU1RSVUNLCiswMDAwNTYgICAgIChiYXNlIDE2KQkJRFIuIEIuIFNUUlVDSworCQkJCVBPQiAxMTQ3IEJBRUNLRVJCQVJHIDYKKwkJCQlELTIwMDAgVEFOR1NURURUL0hBTUJVUkcKKwkJCQlXLUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAwLTU3ICAgKGhleCkJCVNDSVRFWCBDT1JQT1JBVElPTiBMVEQuCiswMDAwNTcgICAgIChiYXNlIDE2KQkJU0NJVEVYIENPUlBPUkFUSU9OIExURC4KKwkJCQlQLk8uIEJPWCAzMzAKKwkJCQk0NjEwMyBIRVJaTElBIEIKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDAtNTggICAoaGV4KQkJUkFDT1JFIENPTVBVVEVSIFBST0RVQ1RTIElOQy4KKzAwMDA1OCAgICAgKGJhc2UgMTYpCQlSQUNPUkUgQ09NUFVURVIgUFJPRFVDVFMgSU5DLgorCQkJCTIzNTUgU09VVEggMTA3MCBXRVNUCisJCQkJU0FMVCBMQUtFIENJVFkgVVQgODQxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTU5ICAgKGhleCkJCUhFTExJR0UgR01CSAorMDAwMDU5ICAgICAoYmFzZSAxNikJCUhFTExJR0UgR01CSAorCQkJCUUtU1cKKwkJCQlIRUlOUklDSC1WT04tU1RFRkFOLVNUUi40IEQtNzgwMCBGUkVJQlVSCisJCQkJV0VTVCBHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMC01QSAgIChoZXgpCQlTeXNLb25uZWN0IEdtYkgKKzAwMDA1QSAgICAgKGJhc2UgMTYpCQlTeXNLb25uZWN0IEdtYkgKKwkJCQlTSUVNRU5TU1RSQVNTRSAyMworCQkJCTc2Mjc1IEVUVExJTkdFTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAwLTVCICAgKGhleCkJCUVMVEVDIEVMRUtUUk9OSUsgQUcKKzAwMDA1QiAgICAgKGJhc2UgMTYpCQlFTFRFQyBFTEVLVFJPTklLIEFHCisJCQkJR2FsaWxlby1HYWxpbGVpLVN0cmFzc2UgMTEKKwkJCQlQT0IgNDIgMTMgNjMgRC01NTA3MSBNQUlOWgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAwLTVDICAgKGhleCkJCVRFTEVNQVRJQ1MgSU5URVJOQVRJT05BTCBJTkMuCiswMDAwNUMgICAgIChiYXNlIDE2KQkJVEVMRU1BVElDUyBJTlRFUk5BVElPTkFMIElOQy4KKwkJCQkxMjAxIENZUFJFU1MgQ1JFRUsgUkQKKwkJCQlGVC4gTEFVREVSREFMRSBGTCAzMzMwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNUQgICAoaGV4KQkJQ1MgVEVMRUNPTQorMDAwMDVEICAgICAoYmFzZSAxNikJCUNTIFRFTEVDT00KKwkJCQk0LTE2IEFWRU5VRSBEVSBHRU5FUkFMIExFQ0xFUkMKKwkJCQlCUCA3NCAtIDkyMjYzIEZPTlRFTkFZIEFVWCBST1NFUworCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMC01RSAgIChoZXgpCQlVU0MgSU5GT1JNQVRJT04gU0NJRU5DRVMgSU5TVAorMDAwMDVFICAgICAoYmFzZSAxNikJCVVTQyBJTkZPUk1BVElPTiBTQ0lFTkNFUyBJTlNUCisJCQkJSU5URVJORVQgQVNTJ05FRCBOT1MuQVVUSE9SSVRZCisJCQkJNDY3NiBBRE1JUkFMVFkgV0FZCisJCQkJTUFSSU5BIERFTCBSRVkgQ0EgOTAyOTItNjY5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNUYgICAoaGV4KQkJU1VNSVRPTU8gRUxFQ1RSSUMgSU5ELiwgTFRELgorMDAwMDVGICAgICAoYmFzZSAxNikJCVNVTUlUT01PIEVMRUNUUklDIElORC4sIExURC4KKwkJCQkxLTEtMywgU0hJTUFZQQorCQkJCUtPTk9IQU5BLUtVIE9TQUtBCisJCQkJNTU0IEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtNjAgICAoaGV4KQkJS09OVFJPTiBFTEVLVFJPTklLIEdNQkgKKzAwMDA2MCAgICAgKGJhc2UgMTYpCQlLT05UUk9OIEVMRUtUUk9OSUsgR01CSAorCQkJCU9TS0FSLVZPTi1NSUxMRVItU1RSLiAxCisJCQkJRC04NTM4NSBFQ0hJTkcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMC02MSAgIChoZXgpCQlHQVRFV0FZIENPTU1VTklDQVRJT05TCiswMDAwNjEgICAgIChiYXNlIDE2KQkJR0FURVdBWSBDT01NVU5JQ0FUSU9OUworCQkJCTI5NDEgQUxUT04gQVZFTlVFCisJCQkJSVJWSU5FIENBIDkyNzE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC02MiAgIChoZXgpCQlCVUxMIEhOIElORk9STUFUSU9OIFNZU1RFTVMKKzAwMDA2MiAgICAgKGJhc2UgMTYpCQlCVUxMIEhOIElORk9STUFUSU9OIFNZU1RFTVMKKwkJCQkzMDAgQ09OQ09SRCBST0FEIE0vUyA4NjRBCisJCQkJQklMTEVSSUNBIE1BIDAxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC02MyAgIChoZXgpCQlCQVJDTyBDT05UUk9MIFJPT01TIEdNQkgKKzAwMDA2MyAgICAgKGJhc2UgMTYpCQlCQVJDTyBDT05UUk9MIFJPT01TIEdNQkgKKwkJCQlBbiBkZXIgUm9zc3dlaWQgNQorCQkJCUthcmxzcnVoZSAgRC03NjIyOQorCQkJCUdFUk1BTlkKKworMDAtMDAtNjQgICAoaGV4KQkJWU9LT0dBV0EgRElHSVRBTCBDT01QVVRFUiBDT1JQCiswMDAwNjQgICAgIChiYXNlIDE2KQkJWU9LT0dBV0EgRElHSVRBTCBDT01QVVRFUiBDT1JQCisJCQkJU0kgSEVBRFFVQVJURVJTIERJVklTSU9OCisJCQkJTk8uIDI1IEtPV0EgQkxERyA4LTcgU0FOQkFOQ0hPIENISVlPREEtSworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtNjUgICAoaGV4KQkJTmV0d29yayBHZW5lcmFsIENvcnBvcmF0aW9uCiswMDAwNjUgICAgIChiYXNlIDE2KQkJTmV0d29yayBHZW5lcmFsIENvcnBvcmF0aW9uCisJCQkJMTc4IEUgVHNhbWFuIERyCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTY2ICAgKGhleCkJCVRBTEFSSVMgU1lTVEVNUywgSU5DLgorMDAwMDY2ICAgICAoYmFzZSAxNikJCVRBTEFSSVMgU1lTVEVNUywgSU5DLgorCQkJCTExMzM5IFNPUlJFTlRPIFZBTExFWSBST0FECisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC02NyAgIChoZXgpCQlTT0ZUICogUklURSwgSU5DLgorMDAwMDY3ICAgICAoYmFzZSAxNikJCVNPRlQgKiBSSVRFLCBJTkMuCisJCQkJMTUzOTIgQVNTRU1CTFkgTEFORSwgVU5JVCBBCisJCQkJSFVOVElOR1RPTiBCRUFDSCBDQSA5MjY0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNjggICAoaGV4KQkJUk9TRU1PVU5UIENPTlRST0xTCiswMDAwNjggICAgIChiYXNlIDE2KQkJUk9TRU1PVU5UIENPTlRST0xTCisJCQkJMTMwMCBFLiBMQU1CRVJUIFJPQUQKKwkJCQlMQSBIQUJSQSBDQSA5MDYzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNjkgICAoaGV4KQkJQ09OQ09SRCBDT01NVU5JQ0FUSU9OUyBJTkMKKzAwMDA2OSAgICAgKGJhc2UgMTYpCQlDT05DT1JEIENPTU1VTklDQVRJT05TIElOQworCQkJCTc1MyBGT1JFU1QgU1RSRUVUCisJCQkJTUFSTEJPUk9VR0ggTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTZBICAgKGhleCkJCUNPTVBVVEVSIENPTlNPTEVTIElOQy4KKzAwMDA2QSAgICAgKGJhc2UgMTYpCQlDT01QVVRFUiBDT05TT0xFUyBJTkMuCisJCQkJQ09NUFVURVIgUFJPRFVDVFMgRElWSVNJT04KKwkJCQk5ODAxIE1VSVJMQU5EUyBCTFZELgorCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNkIgICAoaGV4KQkJU0lMSUNPTiBHUkFQSElDUyBJTkMuL01JUFMKKzAwMDA2QiAgICAgKGJhc2UgMTYpCQlTSUxJQ09OIEdSQVBISUNTIElOQy4vTUlQUworCQkJCTIwMTEgTk9SVEggU0hPUkVMSU5FIEJMVkQuCisJCQkJUC5PLiBCT1ggNzMxMSAtICBCTERHLiAjMTAKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDM5LTczMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTZDICAgKGhleCkJCVBSSVZBVEUKKzAwMDA2QyAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMDAtNkQgICAoaGV4KQkJQ1JBWSBDT01NVU5JQ0FUSU9OUywgTFRELgorMDAwMDZEICAgICAoYmFzZSAxNikJCUNSQVkgQ09NTVVOSUNBVElPTlMsIExURC4KKwkJCQlQLk8uIEJPWCAyNTQsIENBWFRPTiBXQVkKKwkJCQlXQVRGT1JEIEJVU0lORVNTIFBBUksgV0FURk9SRCBIRVJUUyAgV0QxCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC02RSAgIChoZXgpCQlBUlRJU09GVCwgSU5DLgorMDAwMDZFICAgICAoYmFzZSAxNikJCUFSVElTT0ZULCBJTkMuCisJCQkJNjkxIEVBU1QgUklWRVIgUk9BRAorCQkJCVRVQ1NPTiBBWiA4NTcwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNkYgICAoaGV4KQkJTWFkZ2UgTHRkLgorMDAwMDZGICAgICAoYmFzZSAxNikJCU1hZGdlIEx0ZC4KKwkJCQlNYWRnZSBIb3VzZQorCQkJCVByaW9ycyBXYXkKKwkJCQlNYWluZGVuaGVhZCBCZXJrc2hpcmUgU0w2IDJIUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLTcwICAgKGhleCkJCUhDTCBMSU1JVEVECiswMDAwNzAgICAgIChiYXNlIDE2KQkJSENMIExJTUlURUQKKwkJCQlSRVNFQVJDSCAmIERFVkVMT1BNRU5UIFVOSVQKKwkJCQk3MiwgTFVaIENIVVJDSCBST0FEIE1BRFJTQS02MDAgMDA0CisJCQkJSU5ESUEKKwkJCQlJTkRJQQorCiswMC0wMC03MSAgIChoZXgpCQlBRFJBIFNZU1RFTVMgSU5DLgorMDAwMDcxICAgICAoYmFzZSAxNikJCUFEUkEgU1lTVEVNUyBJTkMuCisJCQkJNTkgVEVDSE5PTE9HWSBEUklWRQorCQkJCUxPV0VMTCBNQSAwMTg1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNzIgICAoaGV4KQkJTUlOSVdBUkUgVEVDSE5PTE9HWQorMDAwMDcyICAgICAoYmFzZSAxNikJCU1JTklXQVJFIFRFQ0hOT0xPR1kKKwkJCQlCRUVNREVOU1RSQUFUIDM4CisJCQkJNTAwNCBDVCBXRUVSVCAoTCkKKwkJCQlUSEUgTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC0wMC03MyAgIChoZXgpCQlTSUVDT1IgQ09SUE9SQVRJT04KKzAwMDA3MyAgICAgKGJhc2UgMTYpCQlTSUVDT1IgQ09SUE9SQVRJT04KKwkJCQlQLk8uIEJPWCAxMzYyNQorCQkJCVJFU0VBUkNIIFRSSUFOR0xFIFBLIE5DIDI3NzA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC03NCAgIChoZXgpCQlSSUNPSCBDT01QQU5ZIExURC4KKzAwMDA3NCAgICAgKGJhc2UgMTYpCQlSSUNPSCBDT01QQU5ZIExURC4KKwkJCQkyNDQ2IFRPREEsIEFUU1VHSSBDSVRZCisJCQkJS0FOQUdBV0EgUFJFRi4sCisJCQkJMjQzIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtNzUgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDAwNzUgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJR2xvYmFsIE9wZXJhdGlvbnMgRW5naW5lZXJpbmcKKwkJCQlEZXAgNjgwMCBQcm9ncmFtIE1hbmFnZXIgODIwMCBEaXhpZSBSb2FkCisJCQkJQnJhbXB0b24gT04gbDZUIDVQNiBDYW5hCisJCQkJQ0FOQURBCisKKzAwLTAwLTc2ICAgKGhleCkJCUFCRUtBUyBWSURFTyBTWVNURU0KKzAwMDA3NiAgICAgKGJhc2UgMTYpCQlBQkVLQVMgVklERU8gU1lTVEVNCisJCQkJMTAxIEdBTFZFU1RPTiBEUklWRQorCQkJCVJFRFdPT0QgQ0lUWSBDQSA5NDA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNzcgICAoaGV4KQkJSU5URVJQSEFTRSBDT1JQT1JBVElPTgorMDAwMDc3ICAgICAoYmFzZSAxNikJCUlOVEVSUEhBU0UgQ09SUE9SQVRJT04KKwkJCQkxMzgwMCBTRU5MQUMKKwkJCQlEQUxMQVMgVFggNzUyMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTc4ICAgKGhleCkJCUxBQlRBTSBMSU1JVEVECiswMDAwNzggICAgIChiYXNlIDE2KQkJTEFCVEFNIExJTUlURUQKKwkJCQk0MyBNQUxDT0xNIFJPQUQgICBQLk8uIEJPWDI5NworCQkJCUJSQUVTSURFLCBWSUNUT1JJQSAzMTk1CisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLTAwLTc5ICAgKGhleCkJCU5FVFdPUlRIIElOQ09SUE9SQVRFRAorMDAwMDc5ICAgICAoYmFzZSAxNikJCU5FVFdPUlRIIElOQ09SUE9SQVRFRAorCQkJCTg0MDQgRVNURVJTIEJPVUxFVkFSRAorCQkJCUlSVklORyBUWCA3NTA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtN0EgICAoaGV4KQkJREFOQSBDT01QVVRFUiBJTkMuCiswMDAwN0EgICAgIChiYXNlIDE2KQkJREFOQSBDT01QVVRFUiBJTkMuCisJCQkJNTUwIERFTCBSRVkgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC03QiAgIChoZXgpCQlSRVNFQVJDSCBNQUNISU5FUworMDAwMDdCICAgICAoYmFzZSAxNikJCVJFU0VBUkNIIE1BQ0hJTkVTCisJCQkJUC5PLiBCT1ggNzUKKwkJCQlNSUxMIFNUUkVFVCBPWEZPUkQgIE9YMiAwQlcKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtN0MgICAoaGV4KQkJQU1QRVJFIElOQ09SUE9SQVRFRAorMDAwMDdDICAgICAoYmFzZSAxNikJCUFNUEVSRSBJTkNPUlBPUkFURUQKKwkJCQlTSElOSlVLVSBBU0FISSBCTERHLgorCQkJCTUtMjAgIDctQ0hPTUUgTklTSEktU0hJTkpVS1UgIFNISU5KVUtVLUsKKwkJCQlUT0tZTyBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLTdEICAgKGhleCkJCU9yYWNsZSBDb3Jwb3JhdGlvbgorMDAwMDdEICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbgorCQkJCTE3IE5ldHdvcmsgQ2lyY2xlCisJCQkJQnVpbGRpbmcgMTcsIFVNUEsxNy0xMzEKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtN0UgICAoaGV4KQkJQ0xVU1RSSVggQ09SUE9SQVRJT04KKzAwMDA3RSAgICAgKGJhc2UgMTYpCQlDTFVTVFJJWCBDT1JQT1JBVElPTgorCQkJCTk2MCBIQU1MSU4gQ09VUlQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTdGICAgKGhleCkJCUxJTk9UWVBFLUhFTEwgQUcKKzAwMDA3RiAgICAgKGJhc2UgMTYpCQlMSU5PVFlQRS1IRUxMIEFHCisJCQkJUE9TVEZBQ0ggNTYgNjAKKwkJCQlNRVJHRU5USEFMRVIgQUxMRUUgNTUtNzUgNjIzNiBFU0NIQk9STiBCCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDAtODAgICAoaGV4KQkJQ1JBWSBDT01NVU5JQ0FUSU9OUyBBL1MKKzAwMDA4MCAgICAgKGJhc2UgMTYpCQlDUkFZIENPTU1VTklDQVRJT05TIEEvUworCQkJCVNNRURFSE9MTSAxMi0xNAorCQkJCTI3MzAgSEVSTEVWCisJCQkJREVOTUFSSworCQkJCURFTk1BUksKKworMDAtMDAtODEgICAoaGV4KQkJQkFZIE5FVFdPUktTCiswMDAwODEgICAgIChiYXNlIDE2KQkJQkFZIE5FVFdPUktTCisJCQkJNDQwMSBHUkVBVCBBTUVSSUNBTiBQQVJLV0FZCisJCQkJUE8gQk9YIDU4MTg1IE0vUyBTQzAxLTA1CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTItODE4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtODIgICAoaGV4KQkJTEVDVFJBIFNZU1RFTUVTIFNBCiswMDAwODIgICAgIChiYXNlIDE2KQkJTEVDVFJBIFNZU1RFTUVTIFNBCisJCQkJQ0hFTUlOIERFIE1BUlRJQ09UCisJCQkJUkVTRUFSQ0ggREVQQVJUTUVOVCAzMzYxMCBDRVNUQVMKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDAtODMgICAoaGV4KQkJVEFEUE9MRSBURUNITk9MT0dZIFBMQworMDAwMDgzICAgICAoYmFzZSAxNikJCVRBRFBPTEUgVEVDSE5PTE9HWSBQTEMKKwkJCQkxMzcgRElUVE9OIFdBTEsKKwkJCQlDQU1CUklER0UgQ0I1IDhGTgorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC04NCAgIChoZXgpCQlTVVBFUk5FVAorMDAwMDg0ICAgICAoYmFzZSAxNikJCVNVUEVSTkVUCisJCQkJODQ2IERFTCBSRVkgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC04NSAgIChoZXgpCQlDQU5PTiBJTkMuCiswMDAwODUgICAgIChiYXNlIDE2KQkJQ0FOT04gSU5DLgorCQkJCURWVEVDSC4gREVWLiBDRU5URVIgREVQVC4xMgorCQkJCTMtMzAtMiwgU0hJTU9NQVJVS08sIE9IVEEtS1UgVE9LWU8gMTQ2CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC04NiAgIChoZXgpCQlNRUdBSEVSVFogQ09SUE9SQVRJT04KKzAwMDA4NiAgICAgKGJhc2UgMTYpCQlNRUdBSEVSVFogQ09SUE9SQVRJT04KKwkJCQk2MDUgTk9SVEgtLTU2MDAgV0VTVAorCQkJCVNBTFQgTEFLRSBDSVRZIFVUIDg0MTE2LTM3MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTg3ICAgKGhleCkJCUhJVEFDSEksIExURC4KKzAwMDA4NyAgICAgKGJhc2UgMTYpCQlISVRBQ0hJLCBMVEQuCisJCQkJTkVUV09SSyBFTkdJTkVFUklORyBESVYuCisJCQkJSElUQUNISSBPTU9SSSAyTkQgQkxERy4sIDI3LTE4IE1JTkFNSSBPSQorCQkJCVRPS1lPIDE0MCAKKwkJCQlKQVBBTgorCiswMC0wMC04OCAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKzAwMDA4OCAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTg5ICAgKGhleCkJCUNBWU1BTiBTWVNURU1TIElOQy4KKzAwMDA4OSAgICAgKGJhc2UgMTYpCQlDQVlNQU4gU1lTVEVNUyBJTkMuCisJCQkJMjYgTEFOU0RPV05FIFNUUkVFVAorCQkJCUNBTUJSSURHRSBNQSAwMjEzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOEEgICAoaGV4KQkJREFUQUhPVVNFIElORk9STUFUSU9OIFNZU1RFTVMKKzAwMDA4QSAgICAgKGJhc2UgMTYpCQlEQVRBSE9VU0UgSU5GT1JNQVRJT04gU1lTVEVNUworCQkJCURJUkVDVE9SIE9GIE9QRVJBVElPTlMKKwkJCQlNRU9OIEhPVVNFLCBFQVNUIFRJU1RFRCBOUi4gQUxUT04sIEhBTVBTCisJCQkJR1UzNCAzUVcgRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLThCICAgKGhleCkJCUlORk9UUk9OCiswMDAwOEIgICAgIChiYXNlIDE2KQkJSU5GT1RST04KKwkJCQk5IE5PUlRIIE9MTkVZCisJCQkJQ0hFUlJZIEhJTEwgTkogMDgwMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLThDICAgKGhleCkJCUFsbG95IENvbXB1dGVyIFByb2R1Y3RzIChBdXN0cmFsaWEpIFB0eSBMdGQKKzAwMDA4QyAgICAgKGJhc2UgMTYpCQlBbGxveSBDb21wdXRlciBQcm9kdWN0cyAoQXVzdHJhbGlhKSBQdHkgTHRkCisJCQkJVW5pdCA0LzU4NSBCbGFja2J1cm4gUm9hZAorCQkJCU5vdHRpbmcgSGlsbCBWaWN0b3JpYSAzMTY4CisJCQkJQVVTVFJBTElBCisKKzAwLTAwLThEICAgKGhleCkJCUNyeXB0ZWsgSW5jLgorMDAwMDhEICAgICAoYmFzZSAxNikJCUNyeXB0ZWsgSW5jLgorCQkJCTE1MDEgTW9yYW4gUm9hZAorCQkJCVN0ZXJsaW5nIFZBIDIwMTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC04RSAgIChoZXgpCQlTT0xCT1VSTkUgQ09NUFVURVIsIElOQy4KKzAwMDA4RSAgICAgKGJhc2UgMTYpCQlTT0xCT1VSTkUgQ09NUFVURVIsIElOQy4KKwkJCQkxOTAwIFBJS0UgUk9BRAorCQkJCUxPTkdNT05UIENPTE9SQURPIDgwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC04RiAgIChoZXgpCQlSYXl0aGVvbgorMDAwMDhGICAgICAoYmFzZSAxNikJCVJheXRoZW9uCisJCQkJTS9TIDEtMS0xMTE5CisJCQkJMTAwMSBCb3N0b24gUG9zdCBSZAorCQkJCU1hcmxib3JvIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC05MCAgIChoZXgpCQlNSUNST0NPTQorMDAwMDkwICAgICAoYmFzZSAxNikJCU1JQ1JPQ09NCisJCQkJNTAwIFJJVkVSIFJJREdFIERSSVZFCisJCQkJTk9SV09PRCBNQSAwMjA2Mi01MDI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC05MSAgIChoZXgpCQlBTlJJVFNVIENPUlBPUkFUSU9OCiswMDAwOTEgICAgIChiYXNlIDE2KQkJQU5SSVRTVSBDT1JQT1JBVElPTgorCQkJCTE4MDAsIE9OTkEKKwkJCQlBVFVHSS1TSEkgS0FOQUdBV0EtS0VOIDI0MworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtOTIgICAoaGV4KQkJQ09HRU5UIERBVEEgVEVDSE5PTE9HSUVTCiswMDAwOTIgICAgIChiYXNlIDE2KQkJQ09HRU5UIERBVEEgVEVDSE5PTE9HSUVTCisJCQkJNjQwIE1VTExJUyBTVFJFRVQKKwkJCQlGUklEQVkgSEFSQk9SIFdBIDk4MjUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC05MyAgIChoZXgpCQlQUk9URU9OIElOQy4KKzAwMDA5MyAgICAgKGJhc2UgMTYpCQlQUk9URU9OIElOQy4KKwkJCQk0IFRFQ0ggQ0lSQ0xFCisJCQkJTkFUSUNLIE1BIDAxNzYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC05NCAgIChoZXgpCQlBU0FOVEUgVEVDSE5PTE9HSUVTCiswMDAwOTQgICAgIChiYXNlIDE2KQkJQVNBTlRFIFRFQ0hOT0xPR0lFUworCQkJCTgyMSBGT1ggTEFORQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC05NSAgIChoZXgpCQlTT05ZIFRFS1RST05JWCBDT1JQLgorMDAwMDk1ICAgICAoYmFzZSAxNikJCVNPTlkgVEVLVFJPTklYIENPUlAuCisJCQkJUC5PLiBCT1ggNTIwOSBUT0tZTyBJTlQnTAorCQkJCVRPS1lPIDEwMC0zMQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtOTYgICAoaGV4KQkJTUFSQ09OSSBFTEVDVFJPTklDUyBMVEQuCiswMDAwOTYgICAgIChiYXNlIDE2KQkJTUFSQ09OSSBFTEVDVFJPTklDUyBMVEQuCisJCQkJQlJPV05TIExBTkUsIFRIRSBBSVJQT1JUCisJCQkJUE9SVFNNT1VUSCAtLSBIQU1QU0hJUkUgUDAzIDVQSAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtOTcgICAoaGV4KQkJRU1DIENvcnBvcmF0aW9uCiswMDAwOTcgICAgIChiYXNlIDE2KQkJRU1DIENvcnBvcmF0aW9uCisJCQkJMTc2IFNvdXRoIFN0cmVldAorCQkJCUhvcGtpbnRvbiBNQSAwMTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOTggICAoaGV4KQkJQ1JPU1NDT01NIENPUlBPUkFUSU9OCiswMDAwOTggICAgIChiYXNlIDE2KQkJQ1JPU1NDT01NIENPUlBPUkFUSU9OCisJCQkJNDUwIERPTkFMRCBMWU5DSCBCT1VMRVZBUkQKKwkJCQlNQVJMQk9ST1VHSCBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOTkgICAoaGV4KQkJTVRYLCBJTkMuCiswMDAwOTkgICAgIChiYXNlIDE2KQkJTVRYLCBJTkMuCisJCQkJMzMwMSBURVJNSU5BTCBEUklWRQorCQkJCVJBTEVJR0ggTkMgMjc2MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTlBICAgKGhleCkJCVJDIENPTVBVVEVSIEEvUworMDAwMDlBICAgICAoYmFzZSAxNikJCVJDIENPTVBVVEVSIEEvUworCQkJCUxBVVRSVVBCSkVSRyAxCisJCQkJREstMjc1MCBCQUxMRVJVUAorCQkJCURFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLTAwLTlCICAgKGhleCkJCUlORk9STUFUSU9OIElOVEVSTkFUSU9OQUwsIElOQworMDAwMDlCICAgICAoYmFzZSAxNikJCUlORk9STUFUSU9OIElOVEVSTkFUSU9OQUwsIElOQworCQkJCTVGLiwgVEhFIDdUSCBJTkRVU1RSWSBCTERHLgorCQkJCTEtMjAtMTQgSklOTkFOIFNISUJVWUEtS1UgVE9LWU8KKwkJCQlKQVBBTiAxNTAKKwkJCQlKQVBBTgorCiswMC0wMC05QyAgIChoZXgpCQlST0xNIE1JTC1TUEVDIENPTVBVVEVSUworMDAwMDlDICAgICAoYmFzZSAxNikJCVJPTE0gTUlMLVNQRUMgQ09NUFVURVJTCisJCQkJMzE1MSBaQU5LRVIgUk9BRAorCQkJCVNBTiBKT1NFIENBIDk1MTQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC05RCAgIChoZXgpCQlMT0NVUyBDT01QVVRJTkcgQ09SUE9SQVRJT04KKzAwMDA5RCAgICAgKGJhc2UgMTYpCQlMT0NVUyBDT01QVVRJTkcgQ09SUE9SQVRJT04KKwkJCQk5ODAwIExBIENJRU5FR0EKKwkJCQlJTkdMRVdPT0QgQ0EgOTAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTlFICAgKGhleCkJCU1BUkxJIFMuQS4KKzAwMDA5RSAgICAgKGJhc2UgMTYpCQlNQVJMSSBTLkEuCisJCQkJQ0hFTUlOIFRBVkVSTkVZIDMKKwkJCQkxMjE4IEdFTkVWQQorCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDAtMDAtOUYgICAoaGV4KQkJQU1FUklTVEFSIFRFQ0hOT0xPR0lFUyBJTkMuCiswMDAwOUYgICAgIChiYXNlIDE2KQkJQU1FUklTVEFSIFRFQ0hOT0xPR0lFUyBJTkMuCisJCQkJNDcgV0hJVFRJRVIgQVZFLgorCQkJCU1FREZPUkQgTlkgMTE3NjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUEwICAgKGhleCkJCVNBTllPIEVsZWN0cmljIENvLiwgTHRkLgorMDAwMEEwICAgICAoYmFzZSAxNikJCVNBTllPIEVsZWN0cmljIENvLiwgTHRkLgorCQkJCTUtNSwgS2VpaGFuLWhvbmRvcmkgMi1jaG9tZSwKKwkJCQlNb3JpZ3VjaGkgQ2l0eSBPc2FrYSA1NzAtODY3NworCQkJCUpBUEFOCisKKzAwLTAwLUExICAgKGhleCkJCU1BUlFVRVRURSBFTEVDVFJJQyBDTy4KKzAwMDBBMSAgICAgKGJhc2UgMTYpCQlNQVJRVUVUVEUgRUxFQ1RSSUMgQ08uCisJCQkJODIwMCBXRVNUIFRPV0VSIEFWRU5VRQorCQkJCU1JTFdBVUtFRSBXSSA1MzIyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQTIgICAoaGV4KQkJQkFZIE5FVFdPUktTCiswMDAwQTIgICAgIChiYXNlIDE2KQkJQkFZIE5FVFdPUktTCisJCQkJNDQwMSBHUkVBVCBBTUVSSUNBTiBQS1dZCisJCQkJTS9TOlNDMDEtMDUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1Mi04MTg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1BMyAgIChoZXgpCQlORVRXT1JLIEFQUExJQ0FUSU9OIFRFQ0hOT0xPR1kKKzAwMDBBMyAgICAgKGJhc2UgMTYpCQlORVRXT1JLIEFQUExJQ0FUSU9OIFRFQ0hOT0xPR1kKKwkJCQkxNjg2IERFTEwgQVZFTlVFCisJCQkJQ0FNUEJFTEwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUE0ICAgKGhleCkJCUFDT1JOIENPTVBVVEVSUyBMSU1JVEVECiswMDAwQTQgICAgIChiYXNlIDE2KQkJQUNPUk4gQ09NUFVURVJTIExJTUlURUQKKwkJCQlGVUxCT1VSTiBST0FELCBDSEVSUlkgSElOVE9OCisJCQkJQ0FNQlJJREdFIENCMSA0Sk4sCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLUE1ICAgKGhleCkJCUNPTVBBVElCTEUgU1lTVEVNUyBDT1JQLgorMDAwMEE1ICAgICAoYmFzZSAxNikJCUNPTVBBVElCTEUgU1lTVEVNUyBDT1JQLgorCQkJCVAuTy4gQk9YIDE3MjIwCisJCQkJQk9VTERFUiBDTyA4MDMwOC03MjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1BNiAgIChoZXgpCQlORVRXT1JLIEdFTkVSQUwgQ09SUE9SQVRJT04KKzAwMDBBNiAgICAgKGJhc2UgMTYpCQlORVRXT1JLIEdFTkVSQUwgQ09SUE9SQVRJT04KKwkJCQkxMjk2IEIgTEFXUkVOQ0UgU1RBVElPTiBST0FECisJCQkJU1VOTllWQUxFIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1BNyAgIChoZXgpCQlORVRXT1JLIENPTVBVVElORyBERVZJQ0VTIElOQy4KKzAwMDBBNyAgICAgKGJhc2UgMTYpCQlORVRXT1JLIENPTVBVVElORyBERVZJQ0VTIElOQy4KKwkJCQkzNTAgTk9SVEggQkVSTkFSRE8KKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1BOCAgIChoZXgpCQlTVFJBVFVTIENPTVBVVEVSIElOQy4KKzAwMDBBOCAgICAgKGJhc2UgMTYpCQlTVFJBVFVTIENPTVBVVEVSIElOQy4KKwkJCQkxMTEgUG93ZGVybWlsbCBSb2FkCisJCQkJTWF5bmFyZCBNQSAwMTc1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQTkgICAoaGV4KQkJTkVUV09SSyBTWVNURU1TIENPUlAuCiswMDAwQTkgICAgIChiYXNlIDE2KQkJTkVUV09SSyBTWVNURU1TIENPUlAuCisJCQkJNzYwMCBCT09ORSBBVkVOVUUgTk9SVEgKKwkJCQlNSU5ORUFQT0xJUyBNTiA1NTQyOC0xMDk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1BQSAgIChoZXgpCQlYRVJPWCBDT1JQT1JBVElPTgorMDAwMEFBICAgICAoYmFzZSAxNikJCVhFUk9YIENPUlBPUkFUSU9OCisJCQkJT0ZGSUNFIFNZU1RFTVMgRElWSVNJT04KKwkJCQlNL1MgMTA1LTUwQyA4MDAgUEhJTExJUFMgUk9BRAorCQkJCVdFQlNURVIgTlkgMTQ1ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUFCICAgKGhleCkJCUxPR0lDIE1PREVMSU5HIENPUlBPUkFUSU9OCiswMDAwQUIgICAgIChiYXNlIDE2KQkJTE9HSUMgTU9ERUxJTkcgQ09SUE9SQVRJT04KKwkJCQkxNTIwIE1DQ0FORExFU1MgRFJJVkUKKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQUMgICAoaGV4KQkJQ09OV0FSRSBDT01QVVRFUiBDT05TVUxUSU5HCiswMDAwQUMgICAgIChiYXNlIDE2KQkJQ09OV0FSRSBDT01QVVRFUiBDT05TVUxUSU5HCisJCQkJS0lMTElTRkVMRFNUUkFTU0UgNjQKKwkJCQk3NjIyNyBLQVJMU1JVSEUKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMC1BRCAgIChoZXgpCQlCUlVLRVIgSU5TVFJVTUVOVFMgSU5DLgorMDAwMEFEICAgICAoYmFzZSAxNikJCUJSVUtFUiBJTlNUUlVNRU5UUyBJTkMuCisJCQkJTUFOTklORyBQQVJLCisJCQkJQklMTEVSSUNBIE1BIDAxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1BRSAgIChoZXgpCQlEQVNTQVVMVCBFTEVDVFJPTklRVUUKKzAwMDBBRSAgICAgKGJhc2UgMTYpCQlEQVNTQVVMVCBFTEVDVFJPTklRVUUKKwkJCQk1NSwgUVVBSSBNQVJDRUwgREFTU0FVTFQKKwkJCQk5MjIxNCBTVCBDTE9VRAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMC1BRiAgIChoZXgpCQlOVUNMRUFSIERBVEEgSU5TVFJVTUVOVEFUSU9OCiswMDAwQUYgICAgIChiYXNlIDE2KQkJTlVDTEVBUiBEQVRBIElOU1RSVU1FTlRBVElPTgorCQkJCUdPTEYgJiBNRUFDSEFNIFJPQURTCisJCQkJU0NIQVVNQkVSRyBJTCA2MDE5NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQjAgICAoaGV4KQkJUk5ELVJBRCBORVRXT1JLIERFVklDRVMKKzAwMDBCMCAgICAgKGJhc2UgMTYpCQlSTkQtUkFEIE5FVFdPUksgREVWSUNFUworCQkJCUFUSURJTSBURUNITk9MJ0NMIEJMREcuIDEKKwkJCQlURUwgQVZJViAgNjExMzEKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDAtQjEgICAoaGV4KQkJQUxQSEEgTUlDUk9TWVNURU1TIElOQy4KKzAwMDBCMSAgICAgKGJhc2UgMTYpCQlBTFBIQSBNSUNST1NZU1RFTVMgSU5DLgorCQkJCTM1MDEgU1VORkxPV0VSCisJCQkJU0FOVEEgQU5BIENBIDkyNzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1CMiAgIChoZXgpCQlURUxFVklERU8gU1lTVEVNUywgSU5DLgorMDAwMEIyICAgICAoYmFzZSAxNikJCVRFTEVWSURFTyBTWVNURU1TLCBJTkMuCisJCQkJNTUwIEUuIEJST0tBVyBST0FECisJCQkJU0FOIEpPU0UgQ0EgOTUxNjEtOTA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQjMgICAoaGV4KQkJQ0lNTElOQyBJTkNPUlBPUkFURUQKKzAwMDBCMyAgICAgKGJhc2UgMTYpCQlDSU1MSU5DIElOQ09SUE9SQVRFRAorCQkJCTE5NTcgQ1JPT0tTIFJPQUQKKwkJCQlUUk9ZIE1JIDQ4MDg0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1CNCAgIChoZXgpCQlFRElNQVggQ09NUFVURVIgQ09NUEFOWQorMDAwMEI0ICAgICAoYmFzZSAxNikJCUVESU1BWCBDT01QVVRFUiBDT01QQU5ZCisJCQkJTm8uIDMsIFd1LUNodWFuIDNyZCBSb2FkLAorCQkJCVd1LUt1IEluZHVzdHJpYWwgUGFyaworCQkJCVRhaXBlaSBIc2llbiAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMC1CNSAgIChoZXgpCQlEQVRBQklMSVRZIFNPRlRXQVJFIFNZUy4gSU5DLgorMDAwMEI1ICAgICAoYmFzZSAxNikJCURBVEFCSUxJVFkgU09GVFdBUkUgU1lTLiBJTkMuCisJCQkJT05FIFBBTE1FUiBURVJSQUNFCisJCQkJQ0FSTFNUQURUIE5KIDA3MDcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1CNiAgIChoZXgpCQlNSUNSTy1NQVRJQyBSRVNFQVJDSAorMDAwMEI2ICAgICAoYmFzZSAxNikJCU1JQ1JPLU1BVElDIFJFU0VBUkNICisJCQkJQU1CQUNIVEVOTEFBTiAgMjEgQjUKKwkJCQlCIC0gMzAzMCAgSEVWRVJMRUUKKwkJCQlCRUxHSVVNCisJCQkJQkVMR0lVTQorCiswMC0wMC1CNyAgIChoZXgpCQlET1ZFIENPTVBVVEVSIENPUlBPUkFUSU9OCiswMDAwQjcgICAgIChiYXNlIDE2KQkJRE9WRSBDT01QVVRFUiBDT1JQT1JBVElPTgorCQkJCTEyMDAgTk9SVEggMjNSRCBTVFJFRVQKKwkJCQlXSUxNSU5HVE9OIE5DIDI4NDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1COCAgIChoZXgpCQlTRUlLT1NIQSBDTy4sIExURC4KKzAwMDBCOCAgICAgKGJhc2UgMTYpCQlTRUlLT1NIQSBDTy4sIExURC4KKwkJCQlTWVNURU0gRVFVSVBNRU5UIERJVklTSU9OCisJCQkJNC0xLTEgVEFJSEVJIFNVTUlEQS1LVSBUT0tZTyAxMzAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLUI5ICAgKGhleCkJCU1DRE9OTkVMTCBET1VHTEFTIENPTVBVVEVSIFNZUworMDAwMEI5ICAgICAoYmFzZSAxNikJCU1DRE9OTkVMTCBET1VHTEFTIENPTVBVVEVSIFNZUworCQkJCURJViBNQ0RPTk5FTEwgRE9VR0xBUyBJTkYgU1lTCisJCQkJQk9VTkRBUlkgV0FZIEhFTUVMIEhFTVBTVEVBRCBIRVJUUworCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC1CQSAgIChoZXgpCQlTSUlHLCBJTkMuCiswMDAwQkEgICAgIChiYXNlIDE2KQkJU0lJRywgSU5DLgorCQkJCTYwNzggU1RFV0FSVCBBVkVOVUUKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1CQiAgIChoZXgpCQlUUkktREFUQQorMDAwMEJCICAgICAoYmFzZSAxNikJCVRSSS1EQVRBCisJCQkJNTA1IEVBU1QgTUlERExFRklFTEQgUk9BRAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMtNDA4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQkMgICAoaGV4KQkJUm9ja3dlbGwgQXV0b21hdGlvbgorMDAwMEJDICAgICAoYmFzZSAxNikJCVJvY2t3ZWxsIEF1dG9tYXRpb24KKwkJCQkxIEFsbGVuLUJyYWRsZXkgRHIuCisJCQkJTWF5ZmllbGQgSGVpZ2h0cyBPSCA0NDEyNC02MTE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1CRCAgIChoZXgpCQlNSVRTVUJJU0hJIENBQkxFIENPTVBBTlkKKzAwMDBCRCAgICAgKGJhc2UgMTYpCQlNSVRTVUJJU0hJIENBQkxFIENPTVBBTlkKKwkJCQk1MjAgTUFESVNPTiBBVkVOVUUKKwkJCQlORVcgWU9SSyBOWSAxMDAyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQkUgICAoaGV4KQkJVEhFIE5USSBHUk9VUAorMDAwMEJFICAgICAoYmFzZSAxNikJCVRIRSBOVEkgR1JPVVAKKwkJCQk0NzAxIFBBVFJJQ0sgSEVOUlkgRFJJVkUKKwkJCQlTVUlURSAyNAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1CRiAgIChoZXgpCQlTWU1NRVRSSUMgQ09NUFVURVIgU1lTVEVNUworMDAwMEJGICAgICAoYmFzZSAxNikJCVNZTU1FVFJJQyBDT01QVVRFUiBTWVNURU1TCisJCQkJMTYyMCBPQUtMQU5EIFJPQUQgIFNVSVRFIEQtMjAwCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUMwICAgKGhleCkJCVdFU1RFUk4gRElHSVRBTCBDT1JQT1JBVElPTgorMDAwMEMwICAgICAoYmFzZSAxNikJCVdFU1RFUk4gRElHSVRBTCBDT1JQT1JBVElPTgorCQkJCTgxMDUgSVJWSU5FIENFTlRFUiBEUklWRQorCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQzEgICAoaGV4KQkJTWFkZ2UgTHRkLgorMDAwMEMxICAgICAoYmFzZSAxNikJCU1hZGdlIEx0ZC4KKwkJCQlNYWRnZSBIb3VzZQorCQkJCVByaW9ycyBXYXkKKwkJCQlNYWluZGVuaGVhZCBCZXJrc2hpcmUgU0w2IDJIUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLUMyICAgKGhleCkJCUlORk9STUFUSU9OIFBSRVNFTlRBVElPTiBURUNILgorMDAwMEMyICAgICAoYmFzZSAxNikJCUlORk9STUFUSU9OIFBSRVNFTlRBVElPTiBURUNILgorCQkJCTIzODAxIENBTEFCQVNBUyBST0FECisJCQkJU1VJVEUgMjAxMQorCQkJCUNBTEFCQVNBUyBDQSA5MTMwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQzMgICAoaGV4KQkJSEFSUklTIENPUlAgQ09NUFVURVIgU1lTIERJVgorMDAwMEMzICAgICAoYmFzZSAxNikJCUhBUlJJUyBDT1JQIENPTVBVVEVSIFNZUyBESVYKKwkJCQlNL1MgNzUKKwkJCQkxMDI1IFcuIE5BU0EgQkxWRC5MIDMzMzA5CisJCQkJTUVMQk9VUk5FIEZMIDMyOTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1DNCAgIChoZXgpCQlXQVRFUlMgRElWLiBPRiBNSUxMSVBPUkUKKzAwMDBDNCAgICAgKGJhc2UgMTYpCQlXQVRFUlMgRElWLiBPRiBNSUxMSVBPUkUKKwkJCQkzNCBNQVBMRSBTVFJFRVQKKwkJCQlNSUxGT1JEIE1BIDAxNzU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1DNSAgIChoZXgpCQlGQVJBTExPTiBDT01QVVRJTkcvTkVUT1BJQQorMDAwMEM1ICAgICAoYmFzZSAxNikJCUZBUkFMTE9OIENPTVBVVElORy9ORVRPUElBCisJCQkJMjQ3MCBNQVJJTkVSIFNRVUFSRSBMT09QCisJCQkJQUxBTUVEQSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQzYgICAoaGV4KQkJRU9OIFNZU1RFTVMKKzAwMDBDNiAgICAgKGJhc2UgMTYpCQlFT04gU1lTVEVNUworCQkJCTEwNjAxIFNPVVRIIERFQU5aQSBCTFZELgorCQkJCVNVSVRFIDMwMworCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQzcgICAoaGV4KQkJQVJJWCBDT1JQT1JBVElPTgorMDAwMEM3ICAgICAoYmFzZSAxNikJCUFSSVggQ09SUE9SQVRJT04KKwkJCQlFTkdJTkVFUklORyBNQUlMIFNUT1AKKwkJCQkxMTUyIE1PUlNFIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQzggICAoaGV4KQkJQUxUT1MgQ09NUFVURVIgU1lTVEVNUworMDAwMEM4ICAgICAoYmFzZSAxNikJCUFMVE9TIENPTVBVVEVSIFNZU1RFTVMKKwkJCQkyNjQxIE9SQ0hBUkQgUEFSS1dBWQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1DOSAgIChoZXgpCQlFbXVsZXggQ29ycG9yYXRpb24KKzAwMDBDOSAgICAgKGJhc2UgMTYpCQlFbXVsZXggQ29ycG9yYXRpb24KKwkJCQkzMzMzIFN1c2FuIFN0cmVldAorCQkJCUNvc3RhIE1lc2EgQ0EgOTI2MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUNBICAgKGhleCkJCUFSUklTIEludGVybmF0aW9uYWwKKzAwMDBDQSAgICAgKGJhc2UgMTYpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUsIFN1aXRlIDMwMAorCQkJCVN1d2FuZWUgR0EgMzAwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUNCICAgKGhleCkJCUNPTVBVLVNIQUNLIEVMRUNUUk9OSUMgR01CSAorMDAwMENCICAgICAoYmFzZSAxNikJCUNPTVBVLVNIQUNLIEVMRUNUUk9OSUMgR01CSAorCQkJCVJJTkdTVFIuIDU2IC0gNTgsIDU0NTAgTkVVV0lFRAorCQkJCVdFU1QgR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDAtQ0MgICAoaGV4KQkJREVOU0FOIENPLiwgTFRELgorMDAwMENDICAgICAoYmFzZSAxNikJCURFTlNBTiBDTy4sIExURC4KKwkJCQkxLTIzLTExLCBLQU1JVEFLQUlETworCQkJCVNVR0lOQU1JLUtVLCBUT0tZTyAxNjgKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLUNEICAgKGhleCkJCUFsbGllZCBUZWxlc2lzIExhYnMgTHRkCiswMDAwQ0QgICAgIChiYXNlIDE2KQkJQWxsaWVkIFRlbGVzaXMgTGFicyBMdGQKKwkJCQkyNyBOYXphcmV0aCBBdmVudWUKKwkJCQlNaWRkbGV0b24gQ2hyaXN0Y2h1cmNoIDgwMjQKKwkJCQlORVcgWkVBTEFORAorCiswMC0wMC1DRSAgIChoZXgpCQlNRUdBREFUQSBDT1JQLgorMDAwMENFICAgICAoYmFzZSAxNikJCU1FR0FEQVRBIENPUlAuCisJCQkJMzUgT1JWSUxMRSBEUklWRQorCQkJCUJPSEVNSUEgTlkgMTE3MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUNGICAgKGhleCkJCUhBWUVTIE1JQ1JPQ09NUFVURVIgUFJPRFVDVFMKKzAwMDBDRiAgICAgKGJhc2UgMTYpCQlIQVlFUyBNSUNST0NPTVBVVEVSIFBST0RVQ1RTCisJCQkJKENBTkFEQSkgTFRELgorCQkJCTI5NSBQSElMTElQIFNUUkVFVCBXQVRFUkxPTywgT05UQVJJTyBOMkwKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDAtRDAgICAoaGV4KQkJREVWRUxDT04gRUxFQ1RST05JQ1MgTFRELgorMDAwMEQwICAgICAoYmFzZSAxNikJCURFVkVMQ09OIEVMRUNUUk9OSUNTIExURC4KKwkJCQk4NTYtNTFTVCBTVFJFRVQgRUFTVAorCQkJCVNBU0tBVE9PTiBTQVNLQVRDSEVXQU4gUzdLIDVDNworCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMC1EMSAgIChoZXgpCQlBREFQVEVDIElOQ09SUE9SQVRFRAorMDAwMEQxICAgICAoYmFzZSAxNikJCUFEQVBURUMgSU5DT1JQT1JBVEVECisJCQkJTS9TIDE4MAorCQkJCTY5MSBTT1VUSCBNSUxQSVRBUyBCTFZELgorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1EMiAgIChoZXgpCQlTQkUsIElOQy4KKzAwMDBEMiAgICAgKGJhc2UgMTYpCQlTQkUsIElOQy4KKwkJCQk0NTUwIE5PUlRIIENBTllPTiBST0FECisJCQkJU0FOIFJBTU9OIENBIDk0NTgzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1EMyAgIChoZXgpCQlXQU5HIExBQk9SQVRPUklFUyBJTkMuCiswMDAwRDMgICAgIChiYXNlIDE2KQkJV0FORyBMQUJPUkFUT1JJRVMgSU5DLgorCQkJCQorCiswMC0wMC1ENCAgIChoZXgpCQlQVVJFIERBVEEgTFRELgorMDAwMEQ0ICAgICAoYmFzZSAxNikJCVBVUkUgREFUQSBMVEQuCisJCQkJMjAwIFdFU1QgQkVBVkVSIENSRUVLIFJPQUQKKwkJCQlSSUNITU9ORCBISUxMICBPTlRBUklPCisJCQkJTDRCIDFCNCBDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDAtRDUgICAoaGV4KQkJTUlDUk9HTk9TSVMgSU5URVJOQVRJT05BTAorMDAwMEQ1ICAgICAoYmFzZSAxNikJCU1JQ1JPR05PU0lTIElOVEVSTkFUSU9OQUwKKwkJCQk2MyBRVUVFTiBWSUNUT1JJQSBTVFJFRVQKKwkJCQlMT05ET04gRUM0TiA0VUQKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLUQ2ICAgKGhleCkJCVBVTkNIIExJTkUgSE9MRElORworMDAwMEQ2ICAgICAoYmFzZSAxNikJCVBVTkNIIExJTkUgSE9MRElORworCQkJCVAuTy4gQk9YIDM5MTcwOAorCQkJCUJSQU1MRVkgMjAxOAorCQkJCVNPVVRIIEFGUklDQQorCQkJCVNPVVRIIEFGUklDQQorCiswMC0wMC1ENyAgIChoZXgpCQlEQVJUTU9VVEggQ09MTEVHRQorMDAwMEQ3ICAgICAoYmFzZSAxNikJCURBUlRNT1VUSCBDT0xMRUdFCisJCQkJS0lFV0lUIENPTVBVVEVSIENFTlRFUgorCQkJCUhBTk9WRVIgTkggMDM3NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUQ4ICAgKGhleCkJCU5PVkVMTCwgSU5DLgorMDAwMEQ4ICAgICAoYmFzZSAxNikJCU5PVkVMTCwgSU5DLgorCQkJCTEyMiBFQVNUIDE3MDAgU09VVEggTS9TOkUtMTItMQorCQkJCVAuTy4gQk9YIDU5MDAKKwkJCQlQUk9WTyBVVCA4NDYwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRDkgICAoaGV4KQkJTklQUE9OIFRFTEVHUkFQSCAmIFRFTEVQSE9ORQorMDAwMEQ5ICAgICAoYmFzZSAxNikJCU5JUFBPTiBURUxFR1JBUEggJiBURUxFUEhPTkUKKwkJCQlDT1JQT1JBVElPTiAoTlRUKQorCQkJCVRFSVNISU4gQkxERy4gMy0xIE9PVEVNQUNISSAyIENIT01FLCBDSEkKKwkJCQlUT0tZTyAxMDAtODExNiBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLURBICAgKGhleCkJCUFURVgKKzAwMDBEQSAgICAgKGJhc2UgMTYpCQlBVEVYCisJCQkJMTUgQ1JPU0JZIERSSVZFCisJCQkJQkVERk9SRCBNQSAwMTczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtREIgICAoaGV4KQkJQlJJVElTSCBURUxFQ09NTVVOSUNBVElPTlMgUExDCiswMDAwREIgICAgIChiYXNlIDE2KQkJQlJJVElTSCBURUxFQ09NTVVOSUNBVElPTlMgUExDCisJCQkJODEgTkVXR0FURSBTVFJFRVQKKwkJCQlMT05ET04sIEVDMUEgN0FKCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLURDICAgKGhleCkJCUhBWUVTIE1JQ1JPQ09NUFVURVIgUFJPRFVDVFMKKzAwMDBEQyAgICAgKGJhc2UgMTYpCQlIQVlFUyBNSUNST0NPTVBVVEVSIFBST0RVQ1RTCisJCQkJUC5PLiBCT1ggMTA1MjAzCisJCQkJQVRMQU5UQSBHQSAzMDM0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtREQgICAoaGV4KQkJVENMIElOQ09SUE9SQVRFRAorMDAwMEREICAgICAoYmFzZSAxNikJCVRDTCBJTkNPUlBPUkFURUQKKwkJCQk0MTgyOSBBTEJSQUUgU1RSRUVUCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtREUgICAoaGV4KQkJQ0VUSUEKKzAwMDBERSAgICAgKGJhc2UgMTYpCQlDRVRJQQorCQkJCTE1MCBSVUUgQkVSVEhFTE9UCisJCQkJWkkgVE9VTE9OIEVTVCA4MzA4OCBUT1VMT04gQ0VERVgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDAtREYgICAoaGV4KQkJQkVMTCAmIEhPV0VMTCBQVUIgU1lTIERJVgorMDAwMERGICAgICAoYmFzZSAxNikJCUJFTEwgJiBIT1dFTEwgUFVCIFNZUyBESVYKKwkJCQlPTEQgTUFOU0ZJRUxEIFJPQUQKKwkJCQlXT09TVEVSIE9IIDQ0NjkxLTkwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUUwICAgKGhleCkJCVFVQURSQU0gQ09SUC4KKzAwMDBFMCAgICAgKGJhc2UgMTYpCQlRVUFEUkFNIENPUlAuCisJCQkJT05FIFFVQUQgV0FZCisJCQkJTk9SQ1JPU1MgR0EgMzAwOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUUxICAgKGhleCkJCUdSSUQgU1lTVEVNUworMDAwMEUxICAgICAoYmFzZSAxNikJCUdSSUQgU1lTVEVNUworCQkJCTQ3MjExIExBS0VWSUVXIEJPVUxFVkFSRAorCQkJCVAuTy4gQk9YIDUwMDMKKwkJCQlGUkVNT05UIENBIDk0NTM3LTUwMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUUyICAgKGhleCkJCUFDRVIgVEVDSE5PTE9HSUVTIENPUlAuCiswMDAwRTIgICAgIChiYXNlIDE2KQkJQUNFUiBURUNITk9MT0dJRVMgQ09SUC4KKwkJCQk0MDEgQ0hBUkNPVCBBVkUuCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUUzICAgKGhleCkJCUlOVEVHUkFURUQgTUlDUk8gUFJPRFVDVFMgTFRECiswMDAwRTMgICAgIChiYXNlIDE2KQkJSU5URUdSQVRFRCBNSUNSTyBQUk9EVUNUUyBMVEQKKwkJCQlJTVAsIE5PLiAxIElORFVTVFJJQUwgRVNUQVRFCisJCQkJQ09OU0VUVCwgQ08gRFVLSEFNCisJCQkJRU5HTEFORCBFTkdMQU5EIERIODZUSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLUU0ICAgKGhleCkJCUlOMiBHUk9VUEUgSU5URVJURUNITklRVUUKKzAwMDBFNCAgICAgKGJhc2UgMTYpCQlJTjIgR1JPVVBFIElOVEVSVEVDSE5JUVVFCisJCQkJSU4yIC0gQi5QLjYzCisJCQkJNzgzNzMgUExBSVNJUiBDRURFWAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMC1FNSAgIChoZXgpCQlTSUdNRVggTFRELgorMDAwMEU1ICAgICAoYmFzZSAxNikJCVNJR01FWCBMVEQuCisJCQkJU0lHTUEgSE9VU0UKKwkJCQlOT1JUSCBIRUFUSCBMQU5FIEhPUlNIQU0sIFdFU1QgU1VTU0VYCisJCQkJUkgxMiA0VVogRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLUU2ICAgKGhleCkJCUFQVE9SIFBST0RVSVRTIERFIENPTU0gSU5EVVNUCiswMDAwRTYgICAgIChiYXNlIDE2KQkJQVBUT1IgUFJPRFVJVFMgREUgQ09NTSBJTkRVU1QKKwkJCQk2MSwgQ0hFTUlOIERVIFZJRVVYLUNIRU5FCisJCQkJWklSU1QtQlAgMTc3IDM4MjQ0IE1FWUxBTiBDRURFWAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMC1FNyAgIChoZXgpCQlTVEFSIEdBVEUgVEVDSE5PTE9HSUVTCiswMDAwRTcgICAgIChiYXNlIDE2KQkJU1RBUiBHQVRFIFRFQ0hOT0xPR0lFUworCQkJCTI5MzAwIEFVUk9SQSBST0FECisJCQkJU09MT04gT0ggNDQxMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUU4ICAgKGhleCkJCUFDQ1RPTiBURUNITk9MT0dZIENPUlAuCiswMDAwRTggICAgIChiYXNlIDE2KQkJQUNDVE9OIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQk0Njc1MCBGUkVNT05UIEJMVkQuICMxMDQKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1FOSAgIChoZXgpCQlJU0lDQUQsIElOQy4KKzAwMDBFOSAgICAgKGJhc2UgMTYpCQlJU0lDQUQsIElOQy4KKwkJCQkxOTIwIFdFU1QgQ09SUE9SQVRFIFdBWQorCQkJCUFOQUhFSU0gQ0EgOTI4MDMtNjEyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRUEgICAoaGV4KQkJVVBOT0QgQUIKKzAwMDBFQSAgICAgKGJhc2UgMTYpCQlVUE5PRCBBQgorCQkJCUJPWCAyMzA1MQorCQkJCVMtNzUwIDIzIFVQUFNBTEEKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtMDAtRUIgICAoaGV4KQkJTUFUU1VTSElUQSBDT01NLiBJTkQuIENPLiBMVEQuCiswMDAwRUIgICAgIChiYXNlIDE2KQkJTUFUU1VTSElUQSBDT01NLiBJTkQuIENPLiBMVEQuCisJCQkJMy0xICA0LUNIT01FCisJCQkJVFNVTkFTSElNQS1ISUdBU0hJIEtPSE9LVS1LVSAgWU9LT0hBTUEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLUVDICAgKGhleCkJCU1JQ1JPUFJPQ0VTUworMDAwMEVDICAgICAoYmFzZSAxNikJCU1JQ1JPUFJPQ0VTUworCQkJCTk3IEJJUywgUlVFIERFIENPTE9NQkVTCisJCQkJQi5QLiA4NyA5MjQwMCBDT1VSQkVWT0lFCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAwLUVEICAgKGhleCkJCUFQUklMCiswMDAwRUQgICAgIChiYXNlIDE2KQkJQVBSSUwKKwkJCQk2MCwgUlVFIERFIENBUlRBTEUKKwkJCQlCUCAzOCAzODE3MCBTRVlTU0lORVQtUEFSSVNFVAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMC1FRSAgIChoZXgpCQlORVRXT1JLIERFU0lHTkVSUywgTFRELgorMDAwMEVFICAgICAoYmFzZSAxNikJCU5FVFdPUksgREVTSUdORVJTLCBMVEQuCisJCQkJVU5JVCAxQSwgSE9STkJFQU0gUEFSSworCQkJCUhPT0tTVE9ORSBST0FEIEhBUlJPR0FURSwgTk9SVEggWU9SS1NISVIKKwkJCQlVTklURUQgS0lOR0RPTSBIRzIgOFFUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtRUYgICAoaGV4KQkJS1RJCiswMDAwRUYgICAgIChiYXNlIDE2KQkJS1RJCisJCQkJMjE1NyBPJ1RPT0xFIEFWRU5VRQorCQkJCVNVSVRFIEgKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRjAgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPTklDUyBDTy4sIExURC4KKzAwMDBGMCAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCTQxNiwgTUFFVEFOLTNET05HLCBQQUxEQUwtR1UKKwkJCQlTVVdPTiBDSVRZLCBLWVVOR0tJLURPCisJCQkJNDQyLTc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMC1GMSAgIChoZXgpCQlNQUdOQSBDT01QVVRFUiBDT1JQT1JBVElPTgorMDAwMEYxICAgICAoYmFzZSAxNikJCU1BR05BIENPTVBVVEVSIENPUlBPUkFUSU9OCisJCQkJMjIgS0VFV0FZRElOIERSSVZFCisJCQkJU0FMRU0gTkggMDMwNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUYyICAgKGhleCkJCVNQSURFUiBDT01NVU5JQ0FUSU9OUworMDAwMEYyICAgICAoYmFzZSAxNikJCVNQSURFUiBDT01NVU5JQ0FUSU9OUworCQkJCTc0OTEgQlJJQVIgUk9BRAorCQkJCU1PTlRSRUFMLCAgUVVFQkVDIEg0VyAxSzQKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDAtRjMgICAoaGV4KQkJR0FOREFMRiBEQVRBIExJTUlURUQKKzAwMDBGMyAgICAgKGJhc2UgMTYpCQlHQU5EQUxGIERBVEEgTElNSVRFRAorCQkJCTEzMCBDT0xPTk5BREUgUk9BRCBTT1VUSAorCQkJCU5FUEVBTiAgT05UQVJJTyAgSzJFIDdNNAorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMC1GNCAgIChoZXgpCQlBbGxpZWQgVGVsZXNpcworMDAwMEY0ICAgICAoYmFzZSAxNikJCUFsbGllZCBUZWxlc2lzCisJCQkJQ09SUE9SQVRJT04KKwkJCQk5NTAgS0lGRVIgUk9BRAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRjUgICAoaGV4KQkJRElBTU9ORCBTQUxFUyBMSU1JVEVECiswMDAwRjUgICAgIChiYXNlIDE2KQkJRElBTU9ORCBTQUxFUyBMSU1JVEVECisJCQkJMTcsIENIQVJURVJIT1VTRSBTVFJFRVQKKwkJCQlMT05ET04sIEVDSU4gNlJBCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC1GNiAgIChoZXgpCQlBUFBMSUVEIE1JQ1JPU1lTVEVNUyBDT1JQLgorMDAwMEY2ICAgICAoYmFzZSAxNikJCUFQUExJRUQgTUlDUk9TWVNURU1TIENPUlAuCisJCQkJNTAyMCAxNDggQVZFTlVFLCBOLkUuCisJCQkJUC5PLiBCT1ggOTcwMDIKKwkJCQlSRURNT05EIFdBIDk4MDczLTk3MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUY3ICAgKGhleCkJCVlPVVRIIEtFRVAgRU5URVJQUklTRSBDTyBMVEQKKzAwMDBGNyAgICAgKGJhc2UgMTYpCQlZT1VUSCBLRUVQIEVOVEVSUFJJU0UgQ08gTFRECisJCQkJMy9GIE5PLiA3MTIgTUlOVFNVIEUuIFJPQUQKKwkJCQlUQUlQRUksIFRBSVdBTgorCQkJCVJPQworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDAtRjggICAoaGV4KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKzAwMDBGOCAgICAgKGJhc2UgMTYpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorCQkJCUxLRyAxLTIvQTE5CisJCQkJNTUwIEtJTkcgU1RSRUVUIExJVFRMRVRPTiAgTUEgIDAxNDYwLTEyOAorCQkJCTAxNDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1GOSAgIChoZXgpCQlRVU9UUk9OIFNZU1RFTVMgSU5DLgorMDAwMEY5ICAgICAoYmFzZSAxNikJCVFVT1RST04gU1lTVEVNUyBJTkMuCisJCQkJNTQ1NCBCRUVUSE9WRU4gU1QuCisJCQkJTE9TIEFOR0VMRVMgQ0EgOTAwNjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUZBICAgKGhleCkJCU1JQ1JPU0FHRSBDT01QVVRFUiBTWVNURU1TIElOQworMDAwMEZBICAgICAoYmFzZSAxNikJCU1JQ1JPU0FHRSBDT01QVVRFUiBTWVNURU1TIElOQworCQkJCTY4MCBTT1VUSCBST0NLIEJMVkQKKwkJCQlSRU5PIE5FIDg5NTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1GQiAgIChoZXgpCQlSRUNITkVSIFpVUiBLT01NVU5JS0FUSU9OCiswMDAwRkIgICAgIChiYXNlIDE2KQkJUkVDSE5FUiBaVVIgS09NTVVOSUtBVElPTgorCQkJCUJJVFpFTlNUUi4gMTEKKwkJCQlGLTU0NjQgQVNCQUNICisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDAtRkMgICAoaGV4KQkJTUVJS08KKzAwMDBGQyAgICAgKGJhc2UgMTYpCQlNRUlLTworCQkJCTY1MCBBWlRFQyBXRVNUCisJCQkJQlJJU1RPTCBCUzEyIDRTRAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtRkQgICAoaGV4KQkJSElHSCBMRVZFTCBIQVJEV0FSRQorMDAwMEZEICAgICAoYmFzZSAxNikJCUhJR0ggTEVWRUwgSEFSRFdBUkUKKwkJCQlQTyBCT1ggMTcwIFdJTkRNSUxMIFJPQUQKKwkJCQlIRUFESU5HVE9OIE9YRk9SRCBPWDMgN0JOCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLUZFICAgKGhleCkJCUFOTkFQT0xJUyBNSUNSTyBTWVNURU1TCiswMDAwRkUgICAgIChiYXNlIDE2KQkJQU5OQVBPTElTIE1JQ1JPIFNZU1RFTVMKKwkJCQkxOTAgQURNSVJBTCBDT0NIUkFORSBEUklWRQorCQkJCVNVSVRFIDEzMAorCQkJCUFOTkFQT0xJUyBNRCAyMTQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRkYgICAoaGV4KQkJQ0FNVEVDIEVMRUNUUk9OSUNTIExURC4KKzAwMDBGRiAgICAgKGJhc2UgMTYpCQlDQU1URUMgRUxFQ1RST05JQ1MgTFRELgorCQkJCTEwMSBWQVVHSEFOIFdBWQorCQkJCUxFSUNFU1RFUiBMRTEgNFNBCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAxLTAwICAgKGhleCkJCUVRVUlQJ1RSQU5TCiswMDAxMDAgICAgIChiYXNlIDE2KQkJRVFVSVAnVFJBTlMKKwkJCQkzMSBydWUgUGF1bCBDZXphbm5lCisJCQkJTEEgUk9DSEVUVEUgIDc3MDAwCisJCQkJRlJBTkNFCisKKzAwLTAxLTAxICAgKGhleCkJCVBSSVZBVEUKKzAwMDEwMSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMDEtMDIgICAoaGV4KQkJM0NPTSBDT1JQT1JBVElPTgorMDAwMTAyICAgICAoYmFzZSAxNikJCTNDT00gQ09SUE9SQVRJT04KKwkJCQk1NDAwIEJheWZyb250IFBsYXphICAtIE1TOiA0MjIwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTAzICAgKGhleCkJCTNDT00gQ09SUE9SQVRJT04KKzAwMDEwMyAgICAgKGJhc2UgMTYpCQkzQ09NIENPUlBPUkFUSU9OCisJCQkJNTQwMCBCYXlmcm9udCBQbGF6YSAtIE1TOiA0MjIwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTA0ICAgKGhleCkJCURWSUNPIENvLiwgTHRkLgorMDAwMTA0ICAgICAoYmFzZSAxNikJCURWSUNPIENvLiwgTHRkLgorCQkJCUtvb2ttaW4gQ2FyZCBCL0QgNkYgMjY3LTIKKwkJCQlTZW9oeXVuLURvbmcgQm9vbmRhbmctR3UKKwkJCQlTdW5nbmFtLXNpIEt5dW5na2ktZG8gNDYzLTA1MCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTA1ICAgKGhleCkJCUJlY2tob2ZmIEF1dG9tYXRpb24gR21iSAorMDAwMTA1ICAgICAoYmFzZSAxNikJCUJlY2tob2ZmIEF1dG9tYXRpb24gR21iSAorCQkJCUVpc2Vyc3RyLiA1CisJCQkJMzM0MTUgVmVybCAKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLTA2ICAgKGhleCkJCVRld3MgRGF0ZW50ZWNobmlrIEdtYkgKKzAwMDEwNiAgICAgKGJhc2UgMTYpCQlUZXdzIERhdGVudGVjaG5payBHbWJICisJCQkJQW0gQmFobmhvZiA3CisJCQkJMjU0NjkgSGFsc3RlbmJlayAgCisJCQkJR0VSTUFOWQorCiswMC0wMS0wNyAgIChoZXgpCQlMZWlzZXIgR21iSAorMDAwMTA3ICAgICAoYmFzZSAxNikJCUxlaXNlciBHbWJICisJCQkJSWxtc3RyLiA3CisJCQkJODU1NzkgTmV1YmliZXJnICAKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLTA4ICAgKGhleCkJCUFWTEFCIFRlY2hub2xvZ3ksIEluYy4KKzAwMDEwOCAgICAgKGJhc2UgMTYpCQlBVkxBQiBUZWNobm9sb2d5LCBJbmMuCisJCQkJM0YtMSwgTm8uIDEzNCwgU2VjLiAzCisJCQkJQ2h1bmcgU2hpbiBSb2FkCisJCQkJSHNpbiBUaWVuLCBUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtMDkgICAoaGV4KQkJTmFnYW5vIEphcGFuIFJhZGlvIENvLiwgTHRkLgorMDAwMTA5ICAgICAoYmFzZSAxNikJCU5hZ2FubyBKYXBhbiBSYWRpbyBDby4sIEx0ZC4KKwkJCQlTaGltb2hpZ2FubyAxMTYzLCBJbmFzYXRvLW1hY2hpCisJCQkJTmFnYW5vIDM4MS0yMjg4ICAKKwkJCQlKQVBBTgorCiswMC0wMS0wQSAgIChoZXgpCQlDSVMgVEVDSE5PTE9HWSBJTkMuCiswMDAxMEEgICAgIChiYXNlIDE2KQkJQ0lTIFRFQ0hOT0xPR1kgSU5DLgorCQkJCTE2RiwgTm8uIDc1IEhzaW4gVGFpIFd1IFJvYWQKKwkJCQlTZWMuIDEsIEhzaSBDaGloCisJCQkJVGFpcGVpIEhzaWVuIDIyMSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS0wQiAgIChoZXgpCQlTcGFjZSBDeWJlckxpbmssIEluYy4KKzAwMDEwQiAgICAgKGJhc2UgMTYpCQlTcGFjZSBDeWJlckxpbmssIEluYy4KKwkJCQk1dGggRmwuIEd1cHB5dW5nIFRvd24gQgorCQkJCTIwMyBOb25obnl1bi1Eb25nLCBLYW5naGFtLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS0wQyAgIChoZXgpCQlTeXN0ZW0gVGFsa3MgSW5jLgorMDAwMTBDICAgICAoYmFzZSAxNikJCVN5c3RlbSBUYWxrcyBJbmMuCisJCQkJNEYsIFByaW1lTmlob25iYXNoaSBCbGQuCisJCQkJMy0zNS02LCBOaWhvbmJhc2hpIEhhbWEtY2hvCisJCQkJQ2h1by1rdSBUb2t5byAgCisJCQkJSkFQQU4KKworMDAtMDEtMEQgICAoaGV4KQkJQ09SRUNPLCBJTkMuCiswMDAxMEQgICAgIChiYXNlIDE2KQkJQ09SRUNPLCBJTkMuCisJCQkJNjk2OSBSb3V0ZSBUcmFuc2NhbmFkaWFubmUKKwkJCQlWaWxsZSBTdC4gTGF1cmVudCBINFQgMVY4IFF1ZWJlYyAKKwkJCQlDQU5BREEKKworMDAtMDEtMEUgICAoaGV4KQkJQnJpLUxpbmsgVGVjaG5vbG9naWVzIENvLiwgTHRkCiswMDAxMEUgICAgIChiYXNlIDE2KQkJQnJpLUxpbmsgVGVjaG5vbG9naWVzIENvLiwgTHRkCisJCQkJMkYsIE5vLiA2MywgQ2hvdy1UemUgU3RyZWV0CisJCQkJVGFpcGVpIDExNCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS0wRiAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKzAwMDEwRiAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTEwICAgKGhleCkJCUdvdGhhbSBOZXR3b3JrcworMDAwMTEwICAgICAoYmFzZSAxNikJCUdvdGhhbSBOZXR3b3JrcworCQkJCTE1IERpc2NvdmVyeSBXYXkKKwkJCQlBY3RvbiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMTEgICAoaGV4KQkJaURpZ20gSW5jLgorMDAwMTExICAgICAoYmFzZSAxNikJCWlEaWdtIEluYy4KKwkJCQk3RkwgU2luZG8gQi9EIDE2MDQtMjIgU2VvY2hvLURvbmcKKwkJCQlTZW9jaG8tR3UKKwkJCQlTZW91bCAxMzctMDcwICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtMTIgICAoaGV4KQkJU2hhcmsgTXVsdGltZWRpYSBJbmMuCiswMDAxMTIgICAgIChiYXNlIDE2KQkJU2hhcmsgTXVsdGltZWRpYSBJbmMuCisJCQkJNDg4OTAgTWlsbW9udCBEcml2ZSAgIzEwMS1ECisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMTMgICAoaGV4KQkJT0xZTVBVUyBDT1JQT1JBVElPTgorMDAwMTEzICAgICAoYmFzZSAxNikJCU9MWU1QVVMgQ09SUE9SQVRJT04KKwkJCQkyLTMgS3Vib3lhbWEtY2hvLCBIYWNoaW9qaS1zaGkKKwkJCQlUb2t5byAxOTItODUxMiAgCisJCQkJSkFQQU4KKworMDAtMDEtMTQgICAoaGV4KQkJS0FOREEgVFNVU0hJTiBLT0dZTyBDTy4sIExURC4KKzAwMDExNCAgICAgKGJhc2UgMTYpCQlLQU5EQSBUU1VTSElOIEtPR1lPIENPLiwgTFRELgorCQkJCTIzLTIsIE5pc2hpLUdvdGFuZGEgMi1jaG9tZSwKKwkJCQlTaGluYWdhd2Eta3UKKwkJCQlUb2t5byAxNDEtODUzMyAgCisJCQkJSkFQQU4KKworMDAtMDEtMTUgICAoaGV4KQkJRVhUUkFURUNIIENPUlBPUkFUSU9OCiswMDAxMTUgICAgIChiYXNlIDE2KQkJRVhUUkFURUNIIENPUlBPUkFUSU9OCisJCQkJNzYwIFRob3JudG9uIFN0LiwgVW5pdCAyCisJCQkJUG9zdCBGYWxscyBJRCA4Mzg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMTYgICAoaGV4KQkJTmV0c3BlY3QgVGVjaG5vbG9naWVzLCBJbmMuCiswMDAxMTYgICAgIChiYXNlIDE2KQkJTmV0c3BlY3QgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMzk0NSBGcmVlZG9tIENpcmNsZSAtIFN0ZS4gIzM2MAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0xNyAgIChoZXgpCQlDQU5BTCArCiswMDAxMTcgICAgIChiYXNlIDE2KQkJQ0FOQUwgKworCQkJCTIzIFJ1ZSBMZUJsYW5jCisJCQkJTGUgUG9uYW50IEMKKwkJCQk3NTkwNiBQYXJpcyBDZWRleCAxNSAgCisJCQkJRlJBTkNFCisKKzAwLTAxLTE4ICAgKGhleCkJCUVaIERpZ2l0YWwgQ28uLCBMdGQuCiswMDAxMTggICAgIChiYXNlIDE2KQkJRVogRGlnaXRhbCBDby4sIEx0ZC4KKwkJCQlCaXR2aWxsZSBCbGRnLiBSb29tIDcwMworCQkJCSMxMzI3IFNlb2Noby1Eb25nIFNlb2Noby1HdQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtMTkgICAoaGV4KQkJUlRVbmV0IChBdXN0cmFsaWEpCiswMDAxMTkgICAgIChiYXNlIDE2KQkJUlRVbmV0IChBdXN0cmFsaWEpCisJCQkJOC8zLTUgR2lsZGEgQ291cnQKKwkJCQlNdWxncmF2ZSBWaWMgMzE3MAorCQkJCUFVU1RSQUxJQQorCiswMC0wMS0xQSAgIChoZXgpCQlFRUggRGF0YUxpbmsgR21iSAorMDAwMTFBICAgICAoYmFzZSAxNikJCUVFSCBEYXRhTGluayBHbWJICisJCQkJTmllZGVyYmVyZ2VyIFN0ci4gNzUKKwkJCQlELTUzOTA5IFp1ZWxwaWNoICAKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLTFCICAgKGhleCkJCVVuaXpvbmUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDAxMUIgICAgIChiYXNlIDE2KQkJVW5pem9uZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk1Rmxvb3IgSGFlU3VuZyBCbGRnLgorCQkJCTY3LTItWWFuZ0phZS1Eb25nCisJCQkJU2VvQ2hvLUt1IFNlb3VsIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS0xQyAgIChoZXgpCQlVbml2ZXJzYWwgVGFsa3dhcmUgQ29ycG9yYXRpb24KKzAwMDExQyAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgVGFsa3dhcmUgQ29ycG9yYXRpb24KKwkJCQkxMCBTZWNvbmQgU3QuIE5FCisJCQkJU3VpdGUgIzQwMAorCQkJCU1pbm5lYXBvbGlzIE1OIDU1NDEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0xRCAgIChoZXgpCQlDZW50aWxsaXVtIENvbW11bmljYXRpb25zCiswMDAxMUQgICAgIChiYXNlIDE2KQkJQ2VudGlsbGl1bSBDb21tdW5pY2F0aW9ucworCQkJCTQ3MjExIExha2V2aWV3IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMUUgICAoaGV4KQkJUHJlY2lkaWEgVGVjaG5vbG9naWVzLCBJbmMuCiswMDAxMUUgICAgIChiYXNlIDE2KQkJUHJlY2lkaWEgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTBBIEhlYXJzdCBXYXkKKwkJCQlLYW5hdGEgT250YXJpbyBLMk0tMkM0IAorCQkJCUNBTkFEQQorCiswMC0wMS0xRiAgIChoZXgpCQlSQyBOZXR3b3JrcywgSW5jLgorMDAwMTFGICAgICAoYmFzZSAxNikJCVJDIE5ldHdvcmtzLCBJbmMuCisJCQkJNjcyNyBGbGFuZGVycyBEcml2ZSAtIFN0ZS4gIzIxMgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMjAgICAoaGV4KQkJT1NDSUxMT1FVQVJUWiBTLkEuCiswMDAxMjAgICAgIChiYXNlIDE2KQkJT1NDSUxMT1FVQVJUWiBTLkEuCisJCQkJUnVlIERlcyBCcmV2YXJkcyAxNgorCQkJCTIwMDIgTmV1Y2hhdGVsICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wMS0yMSAgIChoZXgpCQlXYXRjaGd1YXJkIFRlY2hub2xvZ2llcywgSW5jLgorMDAwMTIxICAgICAoYmFzZSAxNikJCVdhdGNoZ3VhcmQgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNjA1IEZpZnRoIEF2ZS4gUworCQkJCVN1aXRlIDUwMAorCQkJCVNlYXR0bGUgV0EgOTgxMDQtMzg5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMjIgICAoaGV4KQkJVHJlbmQgQ29tbXVuaWNhdGlvbnMsIEx0ZC4KKzAwMDEyMiAgICAgKGJhc2UgMTYpCQlUcmVuZCBDb21tdW5pY2F0aW9ucywgTHRkLgorCQkJCUtuYXZlcyBCZWVjaCBFc3RhdGUKKwkJCQlMb3Vkd2F0ZXIsIEhpZ2ggV3ljb21iZQorCQkJCUJ1Y2tzLCBIUDEwIDlRWiBFbmdsYW5kIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAxLTIzICAgKGhleCkJCURJR0lUQUwgRUxFQ1RST05JQ1MgQ09SUC4KKzAwMDEyMyAgICAgKGJhc2UgMTYpCQlESUdJVEFMIEVMRUNUUk9OSUNTIENPUlAuCisJCQkJOC0yLTUyIE5hbmtvIEhpZ2FzaGksIFN1bWlub2Uta3UKKwkJCQlPc2FrYSwgNTU5LTAwMzEgIAorCQkJCUpBUEFOCisKKzAwLTAxLTI0ICAgKGhleCkJCUFjZXIgSW5jb3Jwb3JhdGVkCiswMDAxMjQgICAgIChiYXNlIDE2KQkJQWNlciBJbmNvcnBvcmF0ZWQKKwkJCQkyMUYsIDg4LCBTZWMuMQorCQkJCUhzaW4gVGFpIFd1IFJvYWQsIEhzaWNoaWgKKwkJCQlUYWlwZWkgSHNpZW4gMjIxICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTI1ICAgKGhleCkJCVlBRVNVIE1VU0VOIENPLiwgTFRELgorMDAwMTI1ICAgICAoYmFzZSAxNikJCVlBRVNVIE1VU0VOIENPLiwgTFRELgorCQkJCTQtOC04LCBOYWthbWVndXJvCisJCQkJTWVndXJvLWt1LAorCQkJCVRva3lvLCAxNTMtODY0NCAgCisJCQkJSkFQQU4KKworMDAtMDEtMjYgICAoaGV4KQkJUEFDIExhYnMKKzAwMDEyNiAgICAgKGJhc2UgMTYpCQlQQUMgTGFicworCQkJCTMwNzkgS2lsZ29yZSBSb2FkCisJCQkJUmFuY2hvIENvcmRvdmEgQ0EgOTU2NzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTI3ICAgKGhleCkJCU9QRU4gTmV0d29ya3MgUHR5IEx0ZAorMDAwMTI3ICAgICAoYmFzZSAxNikJCU9QRU4gTmV0d29ya3MgUHR5IEx0ZAorCQkJCUxldmVsIDUsIDM0MiBGbGluZGVycyBTdHJlZXQKKwkJCQlNZWxib3VybmUgIFZJQyAzMDAwCisJCQkJQVVTVFJBTElBCisKKzAwLTAxLTI4ICAgKGhleCkJCUVuam95V2ViLCBJbmMuCiswMDAxMjggICAgIChiYXNlIDE2KQkJRW5qb3lXZWIsIEluYy4KKwkJCQkzMDAwIFNjb3R0IEJsdmQuICMxMDcKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMjkgICAoaGV4KQkJREZJIEluYy4KKzAwMDEyOSAgICAgKGJhc2UgMTYpCQlERkkgSW5jLgorCQkJCTEwMCwgSHVhbi1IbyBTdHJlZXQKKwkJCQlIc2ktQ2hpaCBDaXR5IFRhaXBlaSBIc2llbiAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTJBICAgKGhleCkJCVRlbGVtYXRpY2EgU2lzdGVtcyBJbnRlbGlnZW50ZQorMDAwMTJBICAgICAoYmFzZSAxNikJCVRlbGVtYXRpY2EgU2lzdGVtcyBJbnRlbGlnZW50ZQorCQkJCVJ1YSBNaWd1ZWwgQ2FzYWdyYW5kZSwgMjAwCisJCQkJU2FvIFBhdWxvICAKKwkJCQlCUkFaSUwKKworMDAtMDEtMkIgICAoaGV4KQkJVEVMRU5FVCBDby4sIEx0ZC4KKzAwMDEyQiAgICAgKGJhc2UgMTYpCQlURUxFTkVUIENvLiwgTHRkLgorCQkJCQorCiswMC0wMS0yQyAgIChoZXgpCQlBcmF2b3ggVGVjaG5vbG9naWVzLCBJbmMuCiswMDAxMkMgICAgIChiYXNlIDE2KQkJQXJhdm94IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE2NzI1IDQwdGggUGxhY2UgTm9ydGgKKwkJCQlQbHltb3V0aCBNTiA1NTQ0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMkQgICAoaGV4KQkJS29tb2RvIFRlY2hub2xvZ3kKKzAwMDEyRCAgICAgKGJhc2UgMTYpCQlLb21vZG8gVGVjaG5vbG9neQorCQkJCTE3MCBLbm93bGVzIERyaXZlCisJCQkJTG9zIEdhdG9zIENBIDk1MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0yRSAgIChoZXgpCQlQQyBQYXJ0bmVyIEx0ZC4KKzAwMDEyRSAgICAgKGJhc2UgMTYpCQlQQyBQYXJ0bmVyIEx0ZC4KKwkJCQlSbSAxOTAxLTE5MDgsIDE5L0YsIFNoYXRpbiBHYWxsZXJpYQorCQkJCTE4LTI0IFNoYW4gIE1laSBTdHJlZXQsIEZvIFRhbiBTaGF0aW4sIEgKKwkJCQlDSElOQQorCQkJCUNISU5BCisKKzAwLTAxLTJGICAgKGhleCkJCVR3aW5oZWFkIEludGVybmF0aW9uYWwgQ29ycAorMDAwMTJGICAgICAoYmFzZSAxNikJCVR3aW5oZWFkIEludGVybmF0aW9uYWwgQ29ycAorCQkJCTJGTCwgMiwgTGFuZSAyMzUsIEJhby1DaGlhbyBSb2FkCisJCQkJSHNpbi1UaWVuCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTMwICAgKGhleCkJCUV4dHJlbWUgTmV0d29ya3MKKzAwMDEzMCAgICAgKGJhc2UgMTYpCQlFeHRyZW1lIE5ldHdvcmtzCisJCQkJMzU4NSBNb25yb2UgU3RyZWV0CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTMxICAgKGhleCkJCUJvc2NoIFNlY3VyaXR5IFN5c3RlbXMsIEluYy4KKzAwMDEzMSAgICAgKGJhc2UgMTYpCQlCb3NjaCBTZWN1cml0eSBTeXN0ZW1zLCBJbmMuCisJCQkJMTMwIFBlcmludG9uIFBhcmt3YXkKKwkJCQlGYWlycG9ydCBOWSAxNDQ1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMzIgICAoaGV4KQkJRHJhbmV0eiAtIEJNSQorMDAwMTMyICAgICAoYmFzZSAxNikJCURyYW5ldHogLSBCTUkKKwkJCQkxMDAwIE5ldyBEdXJoYW0gUm9hZAorCQkJCUVkaXNvbiBOSiAwODgxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMzMgICAoaGV4KQkJS1lPV0EgRWxlY3Ryb25pYyBJbnN0cnVtZW50cyBDCiswMDAxMzMgICAgIChiYXNlIDE2KQkJS1lPV0EgRWxlY3Ryb25pYyBJbnN0cnVtZW50cyBDCisJCQkJMy01LTEsIEN5b2Z1Z2Fva2EKKwkJCQlDeW9mdSBUb2t5byAKKwkJCQlKQVBBTgorCiswMC0wMS0zNCAgIChoZXgpCQlTZWxlY3Ryb24gU3lzdGVtcyBBRworMDAwMTM0ICAgICAoYmFzZSAxNikJCVNlbGVjdHJvbiBTeXN0ZW1zIEFHCisJCQkJQmVybnN0cmVhc3NlIDcwCisJCQkJQ0gtMzI1MCBMeXNzCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMDEtMzUgICAoaGV4KQkJS0RDIENvcnAuCiswMDAxMzUgICAgIChiYXNlIDE2KQkJS0RDIENvcnAuCisJCQkJMjAwLTExIEFuWWFuZyA3IGRvbmcKKwkJCQlNYW5Bbi1HdSBBbllhbmUtU2kgS3l1bmdnaS1kbworCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTM2ICAgKGhleCkJCUN5YmVyVEFOIFRlY2hub2xvZ3ksIEluYy4KKzAwMDEzNiAgICAgKGJhc2UgMTYpCQlDeWJlclRBTiBUZWNobm9sb2d5LCBJbmMuCisJCQkJNjI2LCBCbGRnLjUzLCAxOTUtNTYgU2VjLjQKKwkJCQlDaHVuZyBIc2luZyBSZCBDaHV0dW5nLCBIc2luY2h1CisJCQkJVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtMzcgICAoaGV4KQkJSVQgRmFybSBDb3Jwb3JhdGlvbgorMDAwMTM3ICAgICAoYmFzZSAxNikJCUlUIEZhcm0gQ29ycG9yYXRpb24KKwkJCQlBc2FzaGlzZWltZWkgRnVjaHUgQmxkZy4gMTFGCisJCQkJMS0xNC0xIEZ1Y2h1LWNobywgRnVjaHUtc2hpIFRva3lvCisJCQkJMTgzLTAwNTUgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS0zOCAgIChoZXgpCQlYQVZpIFRlY2hub2xvZ2llcyBDb3JwLgorMDAwMTM4ICAgICAoYmFzZSAxNikJCVhBVmkgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJOUYsIE5vLiAxMjksIEhzaW5nIFRlIFJkLAorCQkJCVNhbmNodW5nIENpdHkgIFRhaXBlaSBIc2llbgorCQkJCTI0MSBUQUlXQU4gMjQxIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTM5ICAgKGhleCkJCVBvaW50IE11bHRpbWVkaWEgU3lzdGVtcworMDAwMTM5ICAgICAoYmFzZSAxNikJCVBvaW50IE11bHRpbWVkaWEgU3lzdGVtcworCQkJCTRSYSA1MDcsIFNoaWh3YSBJbmR1c3RyaWFsIENvbXBsZXgKKwkJCQk2NjktOCBTdW5na29nLURvbmcsIEFuc2FuLUNpdHksIEt5dW5nZ2ktCisJCQkJS29yZWEgNDI1LTExMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS0zQSAgIChoZXgpCQlTSEVMQ0FEIENPTU1VTklDQVRJT05TLCBMVEQuCiswMDAxM0EgICAgIChiYXNlIDE2KQkJU0hFTENBRCBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCVAuTy4gQm94IDg1MTMKKwkJCQlOZXcgSW5kdXN0cmlhbCBab25lIE5ldGFueWEgNDI1MDQKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDEtM0IgICAoaGV4KQkJQk5BIFNZU1RFTVMKKzAwMDEzQiAgICAgKGJhc2UgMTYpCQlCTkEgU1lTVEVNUworCQkJCTE2MzcgUy4gTWFpbiBTdHJlZXQKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtM0MgICAoaGV4KQkJVElXIFNZU1RFTVMKKzAwMDEzQyAgICAgKGJhc2UgMTYpCQlUSVcgU1lTVEVNUworCQkJCTIyMTEgTGF3c29uIExhbmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtM0QgICAoaGV4KQkJUmlzY1N0YXRpb24gTHRkLgorMDAwMTNEICAgICAoYmFzZSAxNikJCVJpc2NTdGF0aW9uIEx0ZC4KKwkJCQkxNjggRWxsaW90dCBTdHJlZXQKKwkJCQlUeWxkZXNsZXkgTTI5IDgwNQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDEtM0UgICAoaGV4KQkJQXNjb20gVGF0ZWNvIEFCCiswMDAxM0UgICAgIChiYXNlIDE2KQkJQXNjb20gVGF0ZWNvIEFCCisJCQkJQm94IDg3ODMKKwkJCQk0MDI3NiBHb3RlYm9yZworCQkJCVNXRURFTgorCiswMC0wMS0zRiAgIChoZXgpCQlOZWlnaGJvciBXb3JsZCBDby4sIEx0ZC4KKzAwMDEzRiAgICAgKGJhc2UgMTYpCQlOZWlnaGJvciBXb3JsZCBDby4sIEx0ZC4KKwkJCQkxMTRBIFlFUkMsIDEzNCwgU2hpbmNob25fZG9uZworCQkJCVNlb2RhZW11bl9rdSBTZW91bAorCQkJCTEyMC03NDkgMTIwLTc0OSBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS00MCAgIChoZXgpCQlTZW5kdGVrIENvcnBvcmF0aW9uCiswMDAxNDAgICAgIChiYXNlIDE2KQkJU2VuZHRlayBDb3Jwb3JhdGlvbgorCQkJCTEyRi0zLCAzMzMsIFNlYy4xCisJCQkJS3VhbmctRnUgUm9hZCBIc2luY2h1CisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS00MSAgIChoZXgpCQlDQUJMRSBQUklOVAorMDAwMTQxICAgICAoYmFzZSAxNikJCUNBQkxFIFBSSU5UCisJCQkJSm96ZWYgQ2FyZHluc3RyYWF0IDE2CisJCQkJQiAgLSA5NDIwIEVycGUtTWVyZQorCQkJCUJFTEdJVU0KKwkJCQlCRUxHSVVNCisKKzAwLTAxLTQyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDE0MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlIC0gU0pBLTIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNDMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMTQzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS00NCAgIChoZXgpCQlFTUMgQ29ycG9yYXRpb24KKzAwMDE0NCAgICAgKGJhc2UgMTYpCQlFTUMgQ29ycG9yYXRpb24KKwkJCQkyMjggU291dGggU3QuCisJCQkJSG9wa2ludG9uIE1BIDAxNzQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS00NSAgIChoZXgpCQlXSU5TWVNURU1TLCBJTkMuCiswMDAxNDUgICAgIChiYXNlIDE2KQkJV0lOU1lTVEVNUywgSU5DLgorCQkJCTcxNSBTdGFkaXVtIERyaXZlCisJCQkJQXJsaW5ndG9uIFRYIDc2MDExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS00NiAgIChoZXgpCQlUZXNjbyBDb250cm9scywgSW5jLgorMDAwMTQ2ICAgICAoYmFzZSAxNikJCVRlc2NvIENvbnRyb2xzLCBJbmMuCisJCQkJUC5PLiBCb3ggMjM5MDEyCisJCQkJU2FjcmFtZW50byBDQSA5NTgyMy05MDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS00NyAgIChoZXgpCQlaaG9uZSBUZWNobm9sb2dpZXMKKzAwMDE0NyAgICAgKGJhc2UgMTYpCQlaaG9uZSBUZWNobm9sb2dpZXMKKwkJCQk3MDAxIE9ha3BvcnQgU3RyZWV0CisJCQkJT2FrbGFuZCBDQSA5NDYyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNDggICAoaGV4KQkJWC10cmFXZWIgSW5jLgorMDAwMTQ4ICAgICAoYmFzZSAxNikJCVgtdHJhV2ViIEluYy4KKwkJCQk2NzUwIFdlc3QgOTNyZCBTdHJlZXQgLSBTdGUuICMyMTAKKwkJCQlPdmVybGFuZCBQYXJrIEtTIDY2MjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS00OSAgIChoZXgpCQlULkQuVC4gVHJhbnNmZXIgRGF0YSBUZXN0IEdtYkgKKzAwMDE0OSAgICAgKGJhc2UgMTYpCQlULkQuVC4gVHJhbnNmZXIgRGF0YSBUZXN0IEdtYkgKKwkJCQlTaWVtZW5zc3RyYXNzZSAxOAorCQkJCTg0MDUxIEVzc2VuYmFjaAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLTRBICAgKGhleCkJCVNvbnkgQ29ycG9yYXRpb24KKzAwMDE0QSAgICAgKGJhc2UgMTYpCQlTb255IENvcnBvcmF0aW9uCisJCQkJR290ZW55YW1hIFRlYyA1LTEtMgorCQkJCUtpdGFzaGluYWdhd2EsCisJCQkJVG9reW8gU2hpbmFnYXdhLWt1IDE0MS0wMDAxCisJCQkJSkFQQU4KKworMDAtMDEtNEIgICAoaGV4KQkJRW5ub3ZhdGUgTmV0d29ya3MsIEluYy4KKzAwMDE0QiAgICAgKGJhc2UgMTYpCQlFbm5vdmF0ZSBOZXR3b3JrcywgSW5jLgorCQkJCTYwIENvZG1hbiBIaWxsIFJvYWQKKwkJCQlCb3hib3JvdWdoIE1BIDAxNzE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS00QyAgIChoZXgpCQlCZXJrZWxleSBQcm9jZXNzIENvbnRyb2wKKzAwMDE0QyAgICAgKGJhc2UgMTYpCQlCZXJrZWxleSBQcm9jZXNzIENvbnRyb2wKKwkJCQk0MTI0IExha2VzaWRlIERyCisJCQkJUmljaG1vbmQgQ0EgOTQ4MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTREICAgKGhleCkJCVNoaW4gS2luIEVudGVycHJpc2VzIENvLiwgTHRkCiswMDAxNEQgICAgIChiYXNlIDE2KQkJU2hpbiBLaW4gRW50ZXJwcmlzZXMgQ28uLCBMdGQKKwkJCQk3LCBGVSBIc2luZyBTdC4gVHVlIENoZW5nIEluZC4KKwkJCQlEaXN0LiBUYWlwZWkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtNEUgICAoaGV4KQkJV0lOIEVudGVycHJpc2VzLCBJbmMuCiswMDAxNEUgICAgIChiYXNlIDE2KQkJV0lOIEVudGVycHJpc2VzLCBJbmMuCisJCQkJMzAwIFdpbGxvdyBTdHJlZXQgU291dGgKKwkJCQlOb3J0aCBBbmRvdmVyIE1BIDAxODQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS00RiAgIChoZXgpCQlBRFRSQU4gSU5DCiswMDAxNEYgICAgIChiYXNlIDE2KQkJQURUUkFOIElOQworCQkJCTkwMSBFeHBsb3JlciBCbHZkLgorCQkJCUh1bnRzdmlsbGUgQUwgMzU4MDYtMjgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNTAgICAoaGV4KQkJR0lMQVQgQ09NTVVOSUNBVElPTlMsIExURC4KKzAwMDE1MCAgICAgKGJhc2UgMTYpCQlHSUxBVCBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCTIxL0QgWWVnaWEgS2FwYXlpbSBTdHJlZXQKKwkJCQlQZXRhY2gtVGlrdmEgNDkxMzAKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDEtNTEgICAoaGV4KQkJRW5zZW1ibGUgQ29tbXVuaWNhdGlvbnMKKzAwMDE1MSAgICAgKGJhc2UgMTYpCQlFbnNlbWJsZSBDb21tdW5pY2F0aW9ucworCQkJCTYyNTYgR3JlZW5tYW4gRHJpdmUgLSBTdGUuICM0MDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTUyICAgKGhleCkJCUNIUk9NQVRFSyBJTkMuCiswMDAxNTIgICAgIChiYXNlIDE2KQkJQ0hST01BVEVLIElOQy4KKwkJCQk2LTEwLCBNaXlhemFraSAyLUNob21lCisJCQkJTWl5YW1hZS1LdSwgS2F3YXNha2ktc2hpIEthbmFnYXdhLCAyMTYtMAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtNTMgICAoaGV4KQkJQVJDSFRFSyBURUxFQ09NIENPUlBPUkFUSU9OCiswMDAxNTMgICAgIChiYXNlIDE2KQkJQVJDSFRFSyBURUxFQ09NIENPUlBPUkFUSU9OCisJCQkJNEYsIE5vLjkgTGFuZSAxMzAsIE1pbi1DaHl1YW4gUmQuCisJCQkJSHNpbi1UaWVuIFRhaXBlaQorCQkJCTIzMSBUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTU0ICAgKGhleCkJCUczTSBDb3Jwb3JhdGlvbgorMDAwMTU0ICAgICAoYmFzZSAxNikJCUczTSBDb3Jwb3JhdGlvbgorCQkJCTQzMjAgU3RldmVucyBDcmVlayBCbHZkLiAtIFN0ZS4gIzI3NQorCQkJCVNhbiBKb3NlIENBIDk1MTI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS01NSAgIChoZXgpCQlQcm9taXNlIFRlY2hub2xvZ3ksIEluYy4KKzAwMDE1NSAgICAgKGJhc2UgMTYpCQlQcm9taXNlIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk0RiwgMSwgUHJvc3Blcml0eSAxc3QgUm9hZAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrIEhzaW4tQ2h1CisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS01NiAgIChoZXgpCQlGSVJFV0lSRURJUkVDVC5DT00sIElOQy4KKzAwMDE1NiAgICAgKGJhc2UgMTYpCQlGSVJFV0lSRURJUkVDVC5DT00sIElOQy4KKwkJCQk0MTMyIFNwaWNld29vZCBTcHJpbmdzIFJkIC0gI0ktNAorCQkJCUF1c3RpbiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNTcgICAoaGV4KQkJU1lTV0FWRSBDTy4sIExURAorMDAwMTU3ICAgICAoYmFzZSAxNikJCVNZU1dBVkUgQ08uLCBMVEQKKwkJCQlEb25naG8gQi9EIDVGLCAyMjEtMgorCQkJCU5vbmh5dW4tRG9uZywgS2FuZ25hbS1HdSBTZW91bAorCQkJCUtPUkVBIDEzNS0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtNTggICAoaGV4KQkJRWxlY3RybyBJbmR1c3RyaWVzL0dhdWdlIFRlY2gKKzAwMDE1OCAgICAgKGJhc2UgMTYpCQlFbGVjdHJvIEluZHVzdHJpZXMvR2F1Z2UgVGVjaAorCQkJCTE4MDAgU2hhbWVzIERyaXZlCisJCQkJV2VzdGJ1cnkgTlkgMTE1OTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTU5ICAgKGhleCkJCVMxIENvcnBvcmF0aW9uCiswMDAxNTkgICAgIChiYXNlIDE2KQkJUzEgQ29ycG9yYXRpb24KKwkJCQlSJkQgQ2VudGVyLCBTMSBCbGRnLgorCQkJCTU5LTgsIE5vbmh5dW4tRG9uZyBLYW5nbmFtLUt1IFNlb3VsCisJCQkJS09SRUEgMTM1LTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS01QSAgIChoZXgpCQlEaWdpdGFsIFZpZGVvIEJyb2FkY2FzdGluZworMDAwMTVBICAgICAoYmFzZSAxNikJCURpZ2l0YWwgVmlkZW8gQnJvYWRjYXN0aW5nCisJCQkJRFZCLCAlIEV1cm9wZWFuIEJyb2FkY2FzdGluZyBVbmlvbgorCQkJCTE3QSBBbmNpZW5uZSBSb3V0ZSBDSC0xMjE4IEdyYW5kIFNhY29ubmUKKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTAxLTVCICAgKGhleCkJCUlUQUxURUwgUy5wLkEvUkYtVVAtSQorMDAwMTVCICAgICAoYmFzZSAxNikJCUlUQUxURUwgUy5wLkEvUkYtVVAtSQorCQkJCTIwMDE5IENhc3QuU2V0dGltbyBNLnNlIChNSSkKKwkJCQlJVEFMWQorCQkJCUlUQUxZCisKKzAwLTAxLTVDICAgKGhleCkJCUNBREFOVCBJTkMuCiswMDAxNUMgICAgIChiYXNlIDE2KQkJQ0FEQU5UIElOQy4KKwkJCQk0MzQzIENvbW1lcmNlIENvdXJ0IC0gU3RlLiAjMjA3CisJCQkJTGlzbGUgSUwgNjA1MzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTVEICAgKGhleCkJCU9yYWNsZSBDb3Jwb3JhdGlvbgorMDAwMTVEICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbgorCQkJCTE3IE5ldHdvcmsgQ2lyY2xlCisJCQkJQnVpbGRpbmcgMTcsIFVNUEsxNy0xMzEKKwkJCQlNZW5sbyBQYXJrIENBIDk1MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS01RSAgIChoZXgpCQlCRVNUIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDAxNUUgICAgIChiYXNlIDE2KQkJQkVTVCBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCTdGLCBIYWVzdW5nIEIvRAorCQkJCTExNS0xMiBOb25oeXVuLWRvbmcgS2FuZ25hbS1LdSBTZW91bCwgMTMKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS01RiAgIChoZXgpCQlESUdJVEFMIERFU0lHTiBHbWJICiswMDAxNUYgICAgIChiYXNlIDE2KQkJRElHSVRBTCBERVNJR04gR21iSAorCQkJCUFsdC1Nb2FiaXQgOTZhCisJCQkJQmVybGluIEQtMTA1NTkKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLTYwICAgKGhleCkJCUVMTUVYIENvLiwgTFRELgorMDAwMTYwICAgICAoYmFzZSAxNikJCUVMTUVYIENvLiwgTFRELgorCQkJCTE2LTMwIEtpbWFjaGkKKwkJCQlBb2Jha3UgU2VuZGFpLVNoaSBNaXlhZ2ktS2VuCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS02MSAgIChoZXgpCQlNZXRhIE1hY2hpbmUgVGVjaG5vbG9neQorMDAwMTYxICAgICAoYmFzZSAxNikJCU1ldGEgTWFjaGluZSBUZWNobm9sb2d5CisJCQkJNDAwIFNpbHZlciBDZWRhciBDb3VydCAtIHN0ZS4gIzIyMAorCQkJCUNoYXBlbCBIaWxsIE5DIDI3NTE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS02MiAgIChoZXgpCQlDeWduZXQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDAxNjIgICAgIChiYXNlIDE2KQkJQ3lnbmV0IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE0MTEgTGVNYXkgRHJpdmUgIzMwMQorCQkJCUNhcnJvbGx0b24gVFggNzUwMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTYzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDE2MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlIC0gU0pBLTIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNjQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMTY0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS02NSAgIChoZXgpCQlBaXJTd2l0Y2ggQ29ycG9yYXRpb24KKzAwMDE2NSAgICAgKGJhc2UgMTYpCQlBaXJTd2l0Y2ggQ29ycG9yYXRpb24KKwkJCQkzN0Vhc3QgMjAwU291dGgKKwkJCQlTcHJpbmd2aWxsZSBVVCA4NDY2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNjYgICAoaGV4KQkJVEMgR1JPVVAgQS9TCiswMDAxNjYgICAgIChiYXNlIDE2KQkJVEMgR1JPVVAgQS9TCisJCQkJU2luZGFsc3ZlaiAzNAorCQkJCVJpc3Nrb3YgIERLLTgyNDAKKwkJCQlERU5NQVJLCisKKzAwLTAxLTY3ICAgKGhleCkJCUhJT0tJIEUuRS4gQ09SUE9SQVRJT04KKzAwMDE2NyAgICAgKGJhc2UgMTYpCQlISU9LSSBFLkUuIENPUlBPUkFUSU9OCisJCQkJODEgS29penVtaSwgVWVkYSwgTmFnYW5vCisJCQkJMzg2LTExOTIgMzg2LTExOTIgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS02OCAgIChoZXgpCQlWSVRBTkEgQ09SUE9SQVRJT04KKzAwMDE2OCAgICAgKGJhc2UgMTYpCQlWSVRBTkEgQ09SUE9SQVRJT04KKwkJCQkyNTAwIERvbiBSZWlkIERyaXZlCisJCQkJT3R0YXdhLCBPbnRhcmlvCisJCQkJSzFIIDFFMSBLMUggMUUxIENBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMS02OSAgIChoZXgpCQlDZWxlc3RpeCBOZXR3b3JrcyBQdGUgTHRkLgorMDAwMTY5ICAgICAoYmFzZSAxNikJCUNlbGVzdGl4IE5ldHdvcmtzIFB0ZSBMdGQuCisJCQkJMTggVGFubmVyeSBMYW5lICMwNS0wMworCQkJCUxpYW4gVG9uZyBCdWlsZGluZworCQkJCVNJTkdBUE9SRSAzNDc3ODAKKwkJCQlTSU5HQVBPUkUKKworMDAtMDEtNkEgICAoaGV4KQkJQUxJVEVDCiswMDAxNkEgICAgIChiYXNlIDE2KQkJQUxJVEVDCisJCQkJTGF2YWwgVGVjaG5vcG9sZSBCLlAuIDEwMgorCQkJCTUzMDAxIExBVkFMIENlZGV4CisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAxLTZCICAgKGhleCkJCUxpZ2h0Q2hpcCwgSW5jLgorMDAwMTZCICAgICAoYmFzZSAxNikJCUxpZ2h0Q2hpcCwgSW5jLgorCQkJCTUgSW5kdXN0cmlhbCBXYXkKKwkJCQlTYWxlbSBOSCAwMzA3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNkMgICAoaGV4KQkJRk9YQ09OTgorMDAwMTZDICAgICAoYmFzZSAxNikJCUZPWENPTk4KKwkJCQk2MTI1IFBoeWxsaXMgRHJpdmUKKwkJCQlDeXByZXNzIENBIDkwNjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS02RCAgIChoZXgpCQlDYXJyaWVyQ29tbSBJbmMuCiswMDAxNkQgICAgIChiYXNlIDE2KQkJQ2FycmllckNvbW0gSW5jLgorCQkJCTUzOSBFbmNpbnRhcyBCbHZkLgorCQkJCUVuY2ludGFzIENBIDkyMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS02RSAgIChoZXgpCQlDb25rbGluIENvcnBvcmF0aW9uCiswMDAxNkUgICAgIChiYXNlIDE2KQkJQ29ua2xpbiBDb3Jwb3JhdGlvbgorCQkJCTYxNDEgQ3Jvb2tlZCBDcmVlayBSb2FkCisJCQkJTm9yY3Jvc3MgR0EgMzAwOTItMzE5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNkYgICAoaGV4KQkJSW5rZWwgQ29ycC4KKzAwMDE2RiAgICAgKGJhc2UgMTYpCQlJbmtlbCBDb3JwLgorCQkJCUNoZW9uZ0NoZW9uLURvbmcsIEJ1UHllb25nLUd1LAorCQkJCUluY2hlb24tU2kgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS03MCAgIChoZXgpCQlFU0UgRW1iZWRkZWQgU3lzdGVtIEVuZ2luZWVyJ2cKKzAwMDE3MCAgICAgKGJhc2UgMTYpCQlFU0UgRW1iZWRkZWQgU3lzdGVtIEVuZ2luZWVyJ2cKKwkJCQlNdWVobGJhY2hzdHIuIDIwCisJCQkJNzgzNTEgQm9kbWFuLUx1ZHdpZ3NoYWZlbgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLTcxICAgKGhleCkJCUFsbGllZCBEYXRhIFRlY2hub2xvZ2llcworMDAwMTcxICAgICAoYmFzZSAxNikJCUFsbGllZCBEYXRhIFRlY2hub2xvZ2llcworCQkJCVBhc2NhbHdlZyAxLAorCQkJCTMyMDggS0wgU3Bpamtlbmlzc2UKKwkJCQlUSEUgTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC0wMS03MiAgIChoZXgpCQlUZWNobm9MYW5kIENvLiwgTFRELgorMDAwMTcyICAgICAoYmFzZSAxNikJCVRlY2hub0xhbmQgQ28uLCBMVEQuCisJCQkJMy0xNy0xMSBBa2Vib25vLWNobworCQkJCUZ1a3V5YW1hLWNpdHkgSGlyb3NoaW1hIDcyMS0wOTI1CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS03MyAgIChoZXgpCQlBTUNDCiswMDAxNzMgICAgIChiYXNlIDE2KQkJQU1DQworCQkJCTYyOTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTc0ICAgKGhleCkJCUN5YmVyT3B0aWNzIENvcnBvcmF0aW9uCiswMDAxNzQgICAgIChiYXNlIDE2KQkJQ3liZXJPcHRpY3MgQ29ycG9yYXRpb24KKwkJCQk1OTAwIEdvbGRlbiBIaWxscyBEcml2ZQorCQkJCUdvbGRlbiBWYWxsZXkgTU4gNTU0MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTc1ICAgKGhleCkJCVJhZGlhbnQgQ29tbXVuaWNhdGlvbnMgQ29ycC4KKzAwMDE3NSAgICAgKGJhc2UgMTYpCQlSYWRpYW50IENvbW11bmljYXRpb25zIENvcnAuCisJCQkJNTAwMSBIYWRsZXkgUm9hZAorCQkJCVNvdXRoIFBsYWluZmllbGQgTkogMDcwODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTc2ICAgKGhleCkJCU9yaWVudCBTaWx2ZXIgRW50ZXJwcmlzZXMKKzAwMDE3NiAgICAgKGJhc2UgMTYpCQlPcmllbnQgU2lsdmVyIEVudGVycHJpc2VzCisJCQkJODc0MCBXaGl0ZSBPYWsgQXZlbnVlCisJCQkJUmFuY2hvIEN1Y2Ftb25nYSBDQSA5MTczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNzcgICAoaGV4KQkJRURTTAorMDAwMTc3ICAgICAoYmFzZSAxNikJCUVEU0wKKwkJCQlIYWJhcnplbCAxIHN0CisJCQkJUmFtYXQgQWhheWFsIFRlbC1Bdml2CisJCQkJSVNSQUVMIDY5NzEwCisJCQkJSVNSQUVMCisKKzAwLTAxLTc4ICAgKGhleCkJCU1BUkdJIFN5c3RlbXMsIEluYy4KKzAwMDE3OCAgICAgKGJhc2UgMTYpCQlNQVJHSSBTeXN0ZW1zLCBJbmMuCisJCQkJMzE1NSBLZWFybmV5IFN0cmVldC4gLSBTdGUuIzIwMAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTc5ICAgKGhleCkJCVdJUkVMRVNTIFRFQ0hOT0xPR1ksIElOQy4KKzAwMDE3OSAgICAgKGJhc2UgMTYpCQlXSVJFTEVTUyBURUNITk9MT0dZLCBJTkMuCisJCQkJQW5hbSBCbGRnLiAyRmwsIDE1NC0xNworCQkJCVNhbXN1bmctRG9uZywgS2FuZ25hbS1LdSBTZW91bCwgMTM1LTA5MAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTdBICAgKGhleCkJCUNoZW5nZHUgTWFpcHUgRWxlY3RyaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzAwMDE3QSAgICAgKGJhc2UgMTYpCQlDaGVuZ2R1IE1haXB1IEVsZWN0cmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJTkFOWUkgQlVJTERJTkcsIENPTlNVTEFURSBSRC4sCisJCQkJQ0hFTkdEVQorCQkJCVAuUi4gQ0hJTkEKKwkJCQlDSElOQQorCiswMC0wMS03QiAgIChoZXgpCQlIZWlkZWxiZXJnZXIgRHJ1Y2ttYXNjaGluZW4gQUcKKzAwMDE3QiAgICAgKGJhc2UgMTYpCQlIZWlkZWxiZXJnZXIgRHJ1Y2ttYXNjaGluZW4gQUcKKwkJCQlLdXJmdWVyc3RlbmFubGFnZSA1Mi02MAorCQkJCTY5MTE1IEhlaWRlbGJlcmcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMS03QyAgIChoZXgpCQlBRy1FIEdtYkgKKzAwMDE3QyAgICAgKGJhc2UgMTYpCQlBRy1FIEdtYkgKKwkJCQlEZW5uZXdhcnRzdHIuIDI3CisJCQkJNTIwNjggQWFjaGVuCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDEtN0QgICAoaGV4KQkJVGhlcm1vUXVlc3QKKzAwMDE3RCAgICAgKGJhc2UgMTYpCQlUaGVybW9RdWVzdAorCQkJCTM1NSBSaXZlciBPYWtzIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtN0UgICAoaGV4KQkJQURURUsgU3lzdGVtIFNjaWVuY2UgQ28uLCBMdGQuCiswMDAxN0UgICAgIChiYXNlIDE2KQkJQURURUsgU3lzdGVtIFNjaWVuY2UgQ28uLCBMdGQuCisJCQkJWUJQIFdlc3QgVG93ZXIKKwkJCQkxMzQgR29oZG8tY2hvLAorCQkJCUhvZG9nYXlhIFlva29oYW1hIAorCQkJCUpBUEFOCisKKzAwLTAxLTdGICAgKGhleCkJCUV4cGVyaWVuY2UgTXVzaWMgUHJvamVjdAorMDAwMTdGICAgICAoYmFzZSAxNikJCUV4cGVyaWVuY2UgTXVzaWMgUHJvamVjdAorCQkJCTExMCAtMTEwdGggQXZlbnVlIE5FIC0gU3RlLiAjNDAwCisJCQkJQmVsbGV2dWUgV0EgOTgwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTgwICAgKGhleCkJCUFPcGVuLCBJbmMuCiswMDAxODAgICAgIChiYXNlIDE2KQkJQU9wZW4sIEluYy4KKwkJCQk2RiwgODgsIFNlYy4xLCBIc2luIFRhaQorCQkJCVd1IFJvYWQsIEhzaWNoaWggVGFpcGVpIEhzaWVuIDIyMQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS04MSAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMDE4MSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQkxMTAwIFRlY2hub2xvZ3kgUGFyayBEcml2ZQorCQkJCUJpbGxlcmljYSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtODIgICAoaGV4KQkJRElDQSBURUNITk9MT0dJRVMgQUcKKzAwMDE4MiAgICAgKGJhc2UgMTYpCQlESUNBIFRFQ0hOT0xPR0lFUyBBRworCQkJCVJvdGhlcnN0ciwgMTkKKwkJCQlELTEwMjQ1IEJlcmxpbgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLTgzICAgKGhleCkJCUFOSVRFIFRFTEVDT01TCiswMDAxODMgICAgIChiYXNlIDE2KQkJQU5JVEUgVEVMRUNPTVMKKwkJCQkxMjcgRmxlZXQgUm9hZCwgRmxlZXQKKwkJCQlIYW1wc2hpcmUsIEdVQiA4UEQKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAxLTg0ICAgKGhleCkJCVNJRUIgJiBNRVlFUiBBRworMDAwMTg0ICAgICAoYmFzZSAxNikJCVNJRUIgJiBNRVlFUiBBRworCQkJCUF1ZiBkZW0gU2NobWFhcmthbXAgMjEKKwkJCQlELTIxMzM5IEx1bmVidXJnCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDEtODUgICAoaGV4KQkJQWxva2EgQ28uLCBMdGQuCiswMDAxODUgICAgIChiYXNlIDE2KQkJQWxva2EgQ28uLCBMdGQuCisJCQkJMy03LTE5LCBJbWFpIE9tZS1jaXR5CisJCQkJVG9reW8KKwkJCQkxOTgtODU3NyBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLTg2ICAgKGhleCkJCVV3ZSBEaXNjaAorMDAwMTg2ICAgICAoYmFzZSAxNikJCVV3ZSBEaXNjaAorCQkJCUVpY2hlbmhhaW5zdHJhc3NlIDE0CisJCQkJOTEyMDcgTGF1ZiBhLmQuIFBlZ25pdHoKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLTg3ICAgKGhleCkJCWkyU0UgR21iSAorMDAwMTg3ICAgICAoYmFzZSAxNikJCWkyU0UgR21iSAorCQkJCUNhcmwtWmVpc3MgLSBTdHIuIDQ2CisJCQkJNDc0NDUgTW9lcnMKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMS04OCAgIChoZXgpCQlMWENPIFRlY2hub2xvZ2llcyBhZworMDAwMTg4ICAgICAoYmFzZSAxNikJCUxYQ08gVGVjaG5vbG9naWVzIGFnCisJCQkJR2ltbWVyc3RyLiA2OQorCQkJCUQtMTAxMTcgQmVybGluCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDEtODkgICAoaGV4KQkJUmVmcmFjdGlvbiBUZWNobm9sb2d5LCBJbmMuCiswMDAxODkgICAgIChiYXNlIDE2KQkJUmVmcmFjdGlvbiBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjYyNiBMb21iYXJkeSBMYW5lIC0gU3RlLiAjMTA1CisJCQkJRGFsbGFzIFRYIDc1MjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS04QSAgIChoZXgpCQlST0kgQ09NUFVURVIgQUcKKzAwMDE4QSAgICAgKGJhc2UgMTYpCQlST0kgQ09NUFVURVIgQUcKKwkJCQlXZXJuZXItdm9uLVNpZW1lbnMtU3RyLiAxCisJCQkJOTM0MjYgUm9kaW5nCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDEtOEIgICAoaGV4KQkJTmV0TGlua3MgQ28uLCBMdGQuCiswMDAxOEIgICAgIChiYXNlIDE2KQkJTmV0TGlua3MgQ28uLCBMdGQuCisJCQkJM0YgRHNjb20gQmxkZy4sIDIzOC0zCisJCQkJUG9pLWRvbmcsIEthbmduYW0tS3UgU2VvdWwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS04QyAgIChoZXgpCQlNZWdhIFZpc2lvbgorMDAwMThDICAgICAoYmFzZSAxNikJCU1lZ2EgVmlzaW9uCisJCQkJNTc2NSBUaG9ybndvb2QgRHJpdmUKKwkJCQlHb2xldGEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLThEICAgKGhleCkJCUF1ZGVTaSBUZWNobm9sb2dpZXMKKzAwMDE4RCAgICAgKGJhc2UgMTYpCQlBdWRlU2kgVGVjaG5vbG9naWVzCisJCQkJU3VpdGUgMTgwLCA2ODE1CisJCQkJOHRoIFN0cmVldCBOLkUuIENhbGdhcnkKKwkJCQlBQiBDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDEtOEUgICAoaGV4KQkJTG9naXRlYyBDb3Jwb3JhdGlvbgorMDAwMThFICAgICAoYmFzZSAxNikJCUxvZ2l0ZWMgQ29ycG9yYXRpb24KKwkJCQk4MjY4IFJva3Vkb3VoYXJhLCBNaXN1enUKKwkJCQlJbmEsIE5hZ2FubworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtOEYgICAoaGV4KQkJS2VuZXRlYywgSW5jLgorMDAwMThGICAgICAoYmFzZSAxNikJCUtlbmV0ZWMsIEluYy4KKwkJCQkxMTUgSHVybGV5IFJvYWQKKwkJCQlPeGZvcmQgQ1QgMDY3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTkwICAgKGhleCkJCVNNSy1NCiswMDAxOTAgICAgIChiYXNlIDE2KQkJU01LLU0KKwkJCQkxMDU1IFRpZXJyYSBEZWwgUmV5CisJCQkJQ2h1bGEgVmlzdGEgQ0EgOTE5MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTkxICAgKGhleCkJCVNZUkVEIERhdGEgU3lzdGVtcworMDAwMTkxICAgICAoYmFzZSAxNikJCVNZUkVEIERhdGEgU3lzdGVtcworCQkJCTI3MiBMYW5lcyBNaWxsIFJvYWQKKwkJCQlIb3dlbGwgTkogMDc3MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTkyICAgKGhleCkJCVRleGFzIERpZ2l0YWwgU3lzdGVtcworMDAwMTkyICAgICAoYmFzZSAxNikJCVRleGFzIERpZ2l0YWwgU3lzdGVtcworCQkJCTQwMCBUZWNobm9sb2d5IFBhcmt3YXkKKwkJCQlDb2xsZWdlIFN0YXRpb24gVFggNzc4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTkzICAgKGhleCkJCUhhbmJ5dWwgVGVsZWNvbSBDby4sIEx0ZC4KKzAwMDE5MyAgICAgKGJhc2UgMTYpCQlIYW5ieXVsIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJNXRoIEZsLiBPa3NhbiBCbGRnLgorCQkJCTE1Ny0zMyBTYW1zdW5nLURvbmcgS2FuZ25hbS1rdSBTZW91bAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTk0ICAgKGhleCkJCUNhcGl0YWwgRXF1aXBtZW50IENvcnBvcmF0aW9uCiswMDAxOTQgICAgIChiYXNlIDE2KQkJQ2FwaXRhbCBFcXVpcG1lbnQgQ29ycG9yYXRpb24KKwkJCQk5MDAgTWlkZGxlc2V4IFR1cm5waWtlIC0gQmxkZy4gMgorCQkJCUJpbGxlcmljYSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtOTUgICAoaGV4KQkJU2VuYSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDE5NSAgICAgKGJhc2UgMTYpCQlTZW5hIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTExNi0yMyBTaGlubGltLWRvbmcKKwkJCQlPbnN1bmcgQmxkZy4gOHRoIEZsb29yIEt3YW5hay1rdSBTZW91bAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTk2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDE5NiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlIC0gU0pBLTIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtOTcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMTk3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS05OCAgIChoZXgpCQlEYXJpbSBWaXNpb24KKzAwMDE5OCAgICAgKGJhc2UgMTYpCQlEYXJpbSBWaXNpb24KKwkJCQlUYWVqb24gRXhwbyBWZW50dXJlIFRvd24KKwkJCQkzLTEgRG9yeW9uZy1kb25nLCBZdXN1bmctZ3UgVGFlam9uCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtOTkgICAoaGV4KQkJSGVpU2VpIEVsZWN0cm9uaWNzCiswMDAxOTkgICAgIChiYXNlIDE2KQkJSGVpU2VpIEVsZWN0cm9uaWNzCisJCQkJNS83IEFsbGV5IDgsIExhbmUgNDUKKwkJCQlQb2FsdHNpbiBSb2FkIEhzaW50aWVuIENpdHkKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTlBICAgKGhleCkJCUxFVU5JRyBHbWJICiswMDAxOUEgICAgIChiYXNlIDE2KQkJTEVVTklHIEdtYkgKKwkJCQlXaWxoZWxtLU9zdHdhbGQtU3RyLiAxNworCQkJCTUzNzIxIFNpZWdidXJnCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDEtOUIgICAoaGV4KQkJS3lvdG8gTWljcm9jb21wdXRlciBDby4sIEx0ZC4KKzAwMDE5QiAgICAgKGJhc2UgMTYpCQlLeW90byBNaWNyb2NvbXB1dGVyIENvLiwgTHRkLgorCQkJCTItMjcgSGFjaGlqb2dhb2thCisJCQkJTmFnYW9rYWt5by1jaXR5IEt5b3RvCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS05QyAgIChoZXgpCQlKRFMgVW5pcGhhc2UgSW5jLgorMDAwMTlDICAgICAoYmFzZSAxNikJCUpEUyBVbmlwaGFzZSBJbmMuCisJCQkJNTcwIFdlc3QgSHVudCBDbHViIFJvYWQKKwkJCQlOYXBlb24sIE9OIEsxUiA3VDcKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDEtOUQgICAoaGV4KQkJRS1Db250cm9sIFN5c3RlbXMsIEluYy4KKzAwMDE5RCAgICAgKGJhc2UgMTYpCQlFLUNvbnRyb2wgU3lzdGVtcywgSW5jLgorCQkJCTk0MjAgTHVybGluZSBBdmUuLCBVbml0ZQorCQkJCUNoYXRzd29ydGggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTlFICAgKGhleCkJCUVTUyBUZWNobm9sb2d5LCBJbmMuCiswMDAxOUUgICAgIChiYXNlIDE2KQkJRVNTIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk0ODQwMSBGcmVtb250IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtOUYgICAoaGV4KQkJUGhvbmV4IEJyb2FkYmFuZAorMDAwMTlGICAgICAoYmFzZSAxNikJCVBob25leCBCcm9hZGJhbmQKKwkJCQk2OTUyIEhpZ2ggVGVjaCBEcml2ZQorCQkJCU1pZHZhbGUgVVQgODQwNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUEwICAgKGhleCkJCUluZmluaWxpbmsgQ29ycG9yYXRpb24KKzAwMDFBMCAgICAgKGJhc2UgMTYpCQlJbmZpbmlsaW5rIENvcnBvcmF0aW9uCisJCQkJMTc0MCBFLiBHYXJyeSBBdmUuIC0gU3RlLiAjMjA2CisJCQkJU2FudGEgQW5hIENBIDkyNzA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1BMSAgIChoZXgpCQlNYWctVGVrLCBJbmMuCiswMDAxQTEgICAgIChiYXNlIDE2KQkJTWFnLVRlaywgSW5jLgorCQkJCTIwNzI1IFNvdXRoIEFubmFsZWUgQXZlLgorCQkJCUNhcnNvbiBDQSA5MDc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQTIgICAoaGV4KQkJTG9naWNhbCBDby4sIEx0ZC4KKzAwMDFBMiAgICAgKGJhc2UgMTYpCQlMb2dpY2FsIENvLiwgTHRkLgorCQkJCTQ1OTggTXVyYWt1c2hpLWNobworCQkJCUhhbWFtYXRzdS1zaGksIFNoaXp1b2thLWtlbgorCQkJCTQzMS0xMjA3IEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtQTMgICAoaGV4KQkJR0VORVNZUyBMT0dJQywgSU5DLgorMDAwMUEzICAgICAoYmFzZSAxNikJCUdFTkVTWVMgTE9HSUMsIElOQy4KKwkJCQkxMEYsIE5vLiAxMSwgTG4uMy4sCisJCQkJVHNhbyBUaSBXZWksIFNoZW5rZW5nIFRhaXBlaQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtQTQgICAoaGV4KQkJTWljcm9saW5rIENvcnBvcmF0aW9uCiswMDAxQTQgICAgIChiYXNlIDE2KQkJTWljcm9saW5rIENvcnBvcmF0aW9uCisJCQkJMTExMTAgT2hpbyBBdmUuLCAtIFN0ZS4gIzEwOAorCQkJCUxvcyBBbmdlbGVzIENBIDkwMDM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1BNSAgIChoZXgpCQlOZXh0Y29tbSwgSW5jLgorMDAwMUE1ICAgICAoYmFzZSAxNikJCU5leHRjb21tLCBJbmMuCisJCQkJMTI0MTMgV2lsbG93cyBSb2FkIE5FIC0gU3RlLiAjMjEwCisJCQkJS2lya2xhbmQgV0EgOTgwMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUE2ICAgKGhleCkJCVNjaWVudGlmaWMtQXRsYW50YSBBcmNvZGFuIEEvUworMDAwMUE2ICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMtQXRsYW50YSBBcmNvZGFuIEEvUworCQkJCUF2Z3VzdGVuYm9yZyBMYW5kZXZlaiA3CisJCQkJREstNjQwMCBTb25kZXJib3JnCisJCQkJREVOTUFSSworCQkJCURFTk1BUksKKworMDAtMDEtQTcgICAoaGV4KQkJVU5FWCBURUNITk9MT0dZIENPUlBPUkFUSU9OCiswMDAxQTcgICAgIChiYXNlIDE2KQkJVU5FWCBURUNITk9MT0dZIENPUlBPUkFUSU9OCisJCQkJOEYtNSwgTk8uIDEzMCBTWkUgV0VJIFJPQUQKKwkJCQlIU0lOQ0hVCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLUE4ICAgKGhleCkJCVdlbGx0ZWNoIENvbXB1dGVyIENvLiwgTHRkLgorMDAwMUE4ICAgICAoYmFzZSAxNikJCVdlbGx0ZWNoIENvbXB1dGVyIENvLiwgTHRkLgorCQkJCTEzRi00LCBuby4gMTUwLCBKaWFuIFlpIFJvYWQKKwkJCQlDaHVuZy1IbyAyMzUsICBUYWlwZWkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtQTkgICAoaGV4KQkJQk1XIEFHCiswMDAxQTkgICAgIChiYXNlIDE2KQkJQk1XIEFHCisJCQkJQk1XIEFHIERlcHQuIEZaLTMyMAorCQkJCUtub3Jyc3RyLjExOQorCQkJCTgwNzg4IE11bmljaCAKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLUFBICAgKGhleCkJCUFpcnNwYW4gQ29tbXVuaWNhdGlvbnMsIEx0ZC4KKzAwMDFBQSAgICAgKGJhc2UgMTYpCQlBaXJzcGFuIENvbW11bmljYXRpb25zLCBMdGQuCisJCQkJQ2FtYnJpZGdlIEhvdXNlLCBPeGZvcmQgUmQuLAorCQkJCVV4YnJpZGdlLCBNaWRkbGVzZXggVUIxVU4sCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS1BQiAgIChoZXgpCQlNYWluIFN0cmVldCBOZXR3b3JrcworMDAwMUFCICAgICAoYmFzZSAxNikJCU1haW4gU3RyZWV0IE5ldHdvcmtzCisJCQkJNDAzMCBNb29ycGFyayBBdmUuCisJCQkJU3VpdGUgMjAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTctMTg0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQUMgICAoaGV4KQkJU2l0YXJhIE5ldHdvcmtzLCBJbmMuCiswMDAxQUMgICAgIChiYXNlIDE2KQkJU2l0YXJhIE5ldHdvcmtzLCBJbmMuCisJCQkJNjAgSGlja29yeSBEcml2ZQorCQkJCVdhbHRoYW0gTUEgMDI0NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUFEICAgKGhleCkJCUNvYWNoIE1hc3RlciBJbnRlcm5hdGlvbmFsICBkLmIuYS4gQ01JIFdvcmxkd2lkZSwgSW5jLgorMDAwMUFEICAgICAoYmFzZSAxNikJCUNvYWNoIE1hc3RlciBJbnRlcm5hdGlvbmFsICBkLmIuYS4gQ01JIFdvcmxkd2lkZSwgSW5jLgorCQkJCTYwMCBTdGV3YXJ0IFN0cmVldAorCQkJCVN1aXRlIDcwMAorCQkJCVNlYXR0bGUgV0EgOTgxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUFFICAgKGhleCkJCVRyZXggRW50ZXJwcmlzZXMKKzAwMDFBRSAgICAgKGJhc2UgMTYpCQlUcmV4IEVudGVycHJpc2VzCisJCQkJNTkwIExpcG9hIFBhcmt3YXkKKwkJCQlTdWl0ZSAyMjIKKwkJCQlLaWhlaSBISSA5Njc1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQUYgICAoaGV4KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCiswMDAxQUYgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCisJCQkJMjkwMCBTLiBEaWFibG8gV2F5CisJCQkJU3VpdGUgMTkwCisJCQkJVGVtcGUgQXJpem9uYSA4NTI4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQjAgICAoaGV4KQkJRnVsbHRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwMUIwICAgICAoYmFzZSAxNikJCUZ1bGx0ZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkzRiBOby4gOCwgTGFuZSAxMzAsIE1pbiBDaHVhbiBSZC4sIEhzaW50CisJCQkJQ2l0eSwgVGFpcGVpIEhzZWluIDIzMSwKKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS1CMSAgIChoZXgpCQlHZW5lcmFsIEJhbmR3aWR0aAorMDAwMUIxICAgICAoYmFzZSAxNikJCUdlbmVyYWwgQmFuZHdpZHRoCisJCQkJMTIzMDMtQiBUZWNobm9sb2d5IEJsdmQuCisJCQkJQXVzdGluIFRYIDc4NzI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1CMiAgIChoZXgpCQlEaWdpdGFsIFByb2Nlc3NpbmcgU3lzdGVtcywgSW5jLgorMDAwMUIyICAgICAoYmFzZSAxNikJCURpZ2l0YWwgUHJvY2Vzc2luZyBTeXN0ZW1zLCBJbmMuCisJCQkJNzAgVmFsbGV5d29vZCBEcml2ZQorCQkJCU1hcmtoYW0sIE9udGFyaW8gQ0FOQURBCisJCQkJTDNSIDRUNQorCQkJCUNBTkFEQQorCiswMC0wMS1CMyAgIChoZXgpCQlQcmVjaXNpb24gRWxlY3Ryb25pYyBNYW51ZmFjdHVyaW5nCiswMDAxQjMgICAgIChiYXNlIDE2KQkJUHJlY2lzaW9uIEVsZWN0cm9uaWMgTWFudWZhY3R1cmluZworCQkJCVAwMTg3LCBQLk8uIDUyNzk0OAorCQkJCU1pYW1pIEZMIDMzMTUyLTc5NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUI0ICAgKGhleCkJCVdheXBvcnQsIEluYy4KKzAwMDFCNCAgICAgKGJhc2UgMTYpCQlXYXlwb3J0LCBJbmMuCisJCQkJMTYwOSBTaG9hbCBDcmVlayBCbHZkLgorCQkJCVN1aXRlIDMwMQorCQkJCUF1c3RpbiBUWCA3ODcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQjUgICAoaGV4KQkJVHVyaW4gTmV0d29ya3MsIEluYy4KKzAwMDFCNSAgICAgKGJhc2UgMTYpCQlUdXJpbiBOZXR3b3JrcywgSW5jLgorCQkJCTE0MTUgTm9ydGggTWNEb3dlbGwgQmx2ZC4KKwkJCQlQZXRhbHVtYSBDQSA5NDk1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQjYgICAoaGV4KQkJU0FFSklOIFQmTSBDby4sIEx0ZC4KKzAwMDFCNiAgICAgKGJhc2UgMTYpCQlTQUVKSU4gVCZNIENvLiwgTHRkLgorCQkJCTJuZCBGbC4sIFNhZWppbiBCbGRnLiwgNjg5CisJCQkJSWx3b24tRG9uZywgS2FuZ25hbS1HdS4gU2VvdWwsIDEzNS0yMzAKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS1CNyAgIChoZXgpCQlDZW50b3MsIEluYy4KKzAwMDFCNyAgICAgKGJhc2UgMTYpCQlDZW50b3MsIEluYy4KKwkJCQk2Ri0xLCBOTy4gMTUsIExBTkUgMzYwCisJCQkJTkVJLUhVIFJELiwgU0VDVC4gMSwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLUI4ICAgKGhleCkJCU5ldHNlbnNpdHksIEluYy4KKzAwMDFCOCAgICAgKGJhc2UgMTYpCQlOZXRzZW5zaXR5LCBJbmMuCisJCQkJUE8gQm94IDEwNjAKKwkJCQlMYWtlIEZvcmVzdCBDQSA5MjYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQjkgICAoaGV4KQkJU0tGIENvbmRpdGlvbiBNb25pdG9yaW5nCiswMDAxQjkgICAgIChiYXNlIDE2KQkJU0tGIENvbmRpdGlvbiBNb25pdG9yaW5nCisJCQkJNDE0MSBSdWZmaW4gUm9hZAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQkEgICAoaGV4KQkJSUMtTmV0LCBJbmMuCiswMDAxQkEgICAgIChiYXNlIDE2KQkJSUMtTmV0LCBJbmMuCisJCQkJNSBGbC4gU2Vhc3VuZyBCbGRnLiwgMzExLTI3IE5vcnlhbmdqaW4tRAorCQkJCURvbmdqYWstR3UgU2VvdWwsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtQkIgICAoaGV4KQkJRnJlcXVlbnRpcworMDAwMUJCICAgICAoYmFzZSAxNikJCUZyZXF1ZW50aXMKKwkJCQlTUElUVEVMQlJFSVRFTkdBU1NFIDM0CisJCQkJQS0xMTIwIFZJRU5OQQorCQkJCUFVU1RSSUEKKwkJCQlBVVNUUklBCisKKzAwLTAxLUJDICAgKGhleCkJCUJyYWlucyBDb3Jwb3JhdGlvbgorMDAwMUJDICAgICAoYmFzZSAxNikJCUJyYWlucyBDb3Jwb3JhdGlvbgorCQkJCTItMjctOC00RmwgVEFNQUdBV0EKKwkJCQlTRVRBR0FZQS1LVSwgVE9LWU8gMTU4LTAwOTQKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLUJEICAgKGhleCkJCVBldGVyc29uIEVsZWN0cm8tTXVzaWNhbCBQcm9kdWN0cywgSW5jLgorMDAwMUJEICAgICAoYmFzZSAxNikJCVBldGVyc29uIEVsZWN0cm8tTXVzaWNhbCBQcm9kdWN0cywgSW5jLgorCQkJCTExNjAxIFMuIE1heWZpZWxkIEF2ZW51ZQorCQkJCUFsc2lwIElMIDYwODAzLTI0NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUJFICAgKGhleCkJCUdpZ2FsaW5rIENvLiwgTHRkLgorMDAwMUJFICAgICAoYmFzZSAxNikJCUdpZ2FsaW5rIENvLiwgTHRkLgorCQkJCTZ0aCBGL0wgRGlwbG9tYXRpYyBDZW50ZXIgMTM3Ni0xCisJCQkJU2VvY2hvLWRvbmcgU2VvY2hvLWt1IFNlb3VsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtQkYgICAoaGV4KQkJVGVsZWZvcmNlIENvLiwgTHRkLgorMDAwMUJGICAgICAoYmFzZSAxNikJCVRlbGVmb3JjZSBDby4sIEx0ZC4KKwkJCQk3MjEgeW9zaGlva2EtY2hvIGthbm9uamktY2l0eQorCQkJCUthZ2F3YS1wcmYuIDc2OC0wMDIxCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS1DMCAgIChoZXgpCQlDb21wdUxhYiwgTHRkLgorMDAwMUMwICAgICAoYmFzZSAxNikJCUNvbXB1TGFiLCBMdGQuCisJCQkJUC5PLiBCb3ggNjYKKwkJCQlOZXNoZXIgMzY3NzAKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDEtQzEgICAoaGV4KQkJVml0ZXNzZSBTZW1pY29uZHVjdG9yIENvcnBvcmF0aW9uCiswMDAxQzEgICAgIChiYXNlIDE2KQkJVml0ZXNzZSBTZW1pY29uZHVjdG9yIENvcnBvcmF0aW9uCisJCQkJSG9lcmthZXIgMTgKKwkJCQlESy0yNzMwIEhlcmxldgorCQkJCURFTk1BUksKKworMDAtMDEtQzIgICAoaGV4KQkJQVJLIFJlc2VhcmNoIENvcnAuCiswMDAxQzIgICAgIChiYXNlIDE2KQkJQVJLIFJlc2VhcmNoIENvcnAuCisJCQkJMTE5OCBTYXJhdG9nYSBBdmUuICMxMUQKKwkJCQlTYW4gSm9zZSBDQSA5NTEyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQzMgICAoaGV4KQkJQWNyb21hZywgSW5jLgorMDAwMUMzICAgICAoYmFzZSAxNikJCUFjcm9tYWcsIEluYy4KKwkJCQkzMDc2NSBTLiBXaXhvbSBSb2FkCisJCQkJV2l4b20gTUkgNDgzOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUM0ICAgKGhleCkJCU5lb1dhdmUsIEluYy4KKzAwMDFDNCAgICAgKGJhc2UgMTYpCQlOZW9XYXZlLCBJbmMuCisJCQkJMTB0aCBLUklIUyBCbGRnLiAxNTkxLTYKKwkJCQlLd2FuIFlhbmctRG9uZywgRG9uZyBBbi1HdSwgQW55b25nLVNpLCBLCisJCQkJU09VVEggS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtQzUgICAoaGV4KQkJU2ltcGxlciBOZXR3b3JrcworMDAwMUM1ICAgICAoYmFzZSAxNikJCVNpbXBsZXIgTmV0d29ya3MKKwkJCQk1NTUgRHIgRnJlZGVyaWNrIFBoaWxpcHMKKwkJCQlTdWl0ZSAyMTAgU3QuIExhdXJlbnQsIFFVRUJFQyBDQU5BREEKKwkJCQlINE0gMlg0CisJCQkJQ0FOQURBCisKKzAwLTAxLUM2ICAgKGhleCkJCVF1YXJyeSBUZWNobm9sb2dpZXMKKzAwMDFDNiAgICAgKGJhc2UgMTYpCQlRdWFycnkgVGVjaG5vbG9naWVzCisJCQkJOCBOZXcgRW5nbGFuZCBFeGVjdXRpdmUgUGFyaworCQkJCUJ1cmxpbmd0b24gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUM3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDFDNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1DOCAgIChoZXgpCQlUSE9NQVMgQ09OUkFEIENPUlAuCiswMDAxQzggICAgIChiYXNlIDE2KQkJVEhPTUFTIENPTlJBRCBDT1JQLgorCQkJCTE5MDgtUiBLUkFNRVIgTEFORQorCQkJCUFVU1RJTiBUWCA3ODc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQzggICAoaGV4KQkJQ09OUkFEIENPUlAuCiswMDAxQzggICAgIChiYXNlIDE2KQkJQ09OUkFEIENPUlAuCisJCQkJCisKKzAwLTAxLUM5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDFDOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUNBICAgKGhleCkJCUdlb2Nhc3QgTmV0d29yayBTeXN0ZW1zLCBJbmMuCiswMDAxQ0EgICAgIChiYXNlIDE2KQkJR2VvY2FzdCBOZXR3b3JrIFN5c3RlbXMsIEluYy4KKwkJCQkxOTAgSW5kZXBlbmRlbmNlIERyaXZlCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQ0IgICAoaGV4KQkJRVZSCiswMDAxQ0IgICAgIChiYXNlIDE2KQkJRVZSCisJCQkJMTIgUmF1bCBXYWxsZW5iZXJnIFN0LgorCQkJCVRlbCBBdml2ICA2OTcxOQorCQkJCUlTUkFFTAorCiswMC0wMS1DQyAgIChoZXgpCQlKYXBhbiBUb3RhbCBEZXNpZ24gQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKzAwMDFDQyAgICAgKGJhc2UgMTYpCQlKYXBhbiBUb3RhbCBEZXNpZ24gQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKwkJCQlFbmVzdGEgU3VnaW5hbWloaWdhc2hpIEJ1aWxkLiwgM0YsCisJCQkJMy03LTEsIEFzYWdheWFtaW5hbWkgU3VnaW5hbWkta3UsIFRva3lvCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS1DRCAgIChoZXgpCQlBUnRlbQorMDAwMUNEICAgICAoYmFzZSAxNikJCUFSdGVtCisJCQkJT2xnYXN0cmFzc2UgMTUyCisJCQkJRC04OTA3MyBVTE0KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMS1DRSAgIChoZXgpCQlDdXN0b20gTWljcm8gUHJvZHVjdHMsIEx0ZC4KKzAwMDFDRSAgICAgKGJhc2UgMTYpCQlDdXN0b20gTWljcm8gUHJvZHVjdHMsIEx0ZC4KKwkJCQk0NTAgQmxhbmRmb3JkIFJvYWQKKwkJCQlIYW13b3J0aHkgUG9vbGUgRG9yc2V0IEJISUwgNUJOCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS1DRiAgIChoZXgpCQlBbHBoYSBEYXRhIFBhcmFsbGVsIFN5c3RlbXMsIEx0ZC4KKzAwMDFDRiAgICAgKGJhc2UgMTYpCQlBbHBoYSBEYXRhIFBhcmFsbGVsIFN5c3RlbXMsIEx0ZC4KKwkJCQk1OCBUaW1iZXIgQnVzaAorCQkJCUVkaW5idXJnaCBFSDYgNlFIIFNjb3RsYW5kCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS1EMCAgIChoZXgpCQlWaXRhbFBvaW50LCBJbmMuCiswMDAxRDAgICAgIChiYXNlIDE2KQkJVml0YWxQb2ludCwgSW5jLgorCQkJCTE1NzcwIEhvcHBlciBSb2FkCisJCQkJUGV5dG9uIENPIDgwODMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1EMSAgIChoZXgpCQlDb05ldCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMUQxICAgICAoYmFzZSAxNikJCUNvTmV0IENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMjUgTWF1Y2hseSwgIzMyMAorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRDIgICAoaGV4KQkJaW5YdHJvbiwgSW5jLiAKKzAwMDFEMiAgICAgKGJhc2UgMTYpCQlpblh0cm9uLCBJbmMuIAorCQkJCThGLCBOby41MiwgTWluUXVhbiBSb2FkLCBYaW5kaWFuIERpc3QuCisJCQkJTmV3IFRhaXBlaSBDaXR5ICAyMzE0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtRDMgICAoaGV4KQkJUEFYQ09NTSwgSW5jLgorMDAwMUQzICAgICAoYmFzZSAxNikJCVBBWENPTU0sIEluYy4KKwkJCQk3dGggRiBUaGUgQ29ycC4gQ2VudGVyCisJCQkJQ2h1bmduYW0gTmF0aW9uYWwgVW5pdmVyc2l0eSAyMjAgS3VuZy1EbworCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLUQ0ICAgKGhleCkJCUxlaXN1cmUgVGltZSwgSW5jLgorMDAwMUQ0ICAgICAoYmFzZSAxNikJCUxlaXN1cmUgVGltZSwgSW5jLgorCQkJCTQyNTggQ29tbXVuaWNhdGlvbnMgRHJpdmUKKwkJCQlOb3Jjcm9zcyBHQSAzMDA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRDUgICAoaGV4KQkJSEFFRE9ORyBJTkZPICYgQ09NTSBDTy4sIExURAorMDAwMUQ1ICAgICAoYmFzZSAxNikJCUhBRURPTkcgSU5GTyAmIENPTU0gQ08uLCBMVEQKKwkJCQkjODAxIFRoZSBDb3Jwb3JhdGlvbiBDZW50ZXIgZm9yIFVuaXZlcnNpCisJCQkJMjIwIEt1bmctRG9uZywgWXVzZW9uZy1HdSwKKwkJCQlUYWVqZW9uIFJlcHVibGljIG9mIEtvcmVhIDMwNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS1ENiAgIChoZXgpCQltYW5yb2xhbmQgQUcKKzAwMDFENiAgICAgKGJhc2UgMTYpCQltYW5yb2xhbmQgQUcKKwkJCQlTdGFkdGJhY2hzdHJhc3NlIDEKKwkJCQk4NjIxOSBBdWdzYnVyZworCQkJCUdFUk1BTlkKKworMDAtMDEtRDcgICAoaGV4KQkJRjUgTmV0d29ya3MsIEluYy4KKzAwMDFENyAgICAgKGJhc2UgMTYpCQlGNSBOZXR3b3JrcywgSW5jLgorCQkJCTEzMjIgTi4gV2hpdG1hbiBMYW5lCisJCQkJTGliZXJ0eSBMYWtlIFdBIDk5MDE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1EOCAgIChoZXgpCQlUZWx0cm9uaWNzLCBJbmMuCiswMDAxRDggICAgIChiYXNlIDE2KQkJVGVsdHJvbmljcywgSW5jLgorCQkJCTQxMjUgS2VsbGVyIFNwcmluZ3MgUm9hZAorCQkJCVN1aXRlIDE2NgorCQkJCUFkZGlzb24gVFggMjUwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUQ5ICAgKGhleCkJCVNpZ21hLCBJbmMuCiswMDAxRDkgICAgIChiYXNlIDE2KQkJU2lnbWEsIEluYy4KKwkJCQkzMi0zIFNlaWp5byA5IENob21lCisJCQkJU2V0YWdheWEta3UgVG9reW8gMTU3LTAwNjYKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLURBICAgKGhleCkJCVdJTkNPTU0gQ29ycG9yYXRpb24KKzAwMDFEQSAgICAgKGJhc2UgMTYpCQlXSU5DT01NIENvcnBvcmF0aW9uCisJCQkJMkYsIE5vLiAzLCBQcm9zcGVyaXR5IFJvYWQgMSwKKwkJCQlTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaywgSHNpbmNodSwKKwkJCQlIc2luY2h1IFRhaXdhbgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtREIgICAoaGV4KQkJRnJlZWNvbSBUZWNobm9sb2dpZXMgR21iSAorMDAwMURCICAgICAoYmFzZSAxNikJCUZyZWVjb20gVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlPYmVudHJhdXRzdHIuIDcyCisJCQkJRC0xMDk2MywgQmVybGluLAorCQkJCUdFUk1BTlkKKworMDAtMDEtREMgICAoaGV4KQkJQWN0aXZldGVsY28KKzAwMDFEQyAgICAgKGJhc2UgMTYpCQlBY3RpdmV0ZWxjbworCQkJCTQzMjIyIENocmlzdHkgU3RyZWV0CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtREQgICAoaGV4KQkJQXZhaWwgTmV0d29ya3MKKzAwMDFERCAgICAgKGJhc2UgMTYpCQlBdmFpbCBOZXR3b3JrcworCQkJCTMwNSBFLiBFaXNlbmhvd2VyIFBhcmt3YXkKKwkJCQlBbm4gQXJib3IgTUkgNDgxMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLURFICAgKGhleCkJCVRyYW5nbyBTeXN0ZW1zLCBJbmMuCiswMDAxREUgICAgIChiYXNlIDE2KQkJVHJhbmdvIFN5c3RlbXMsIEluYy4KKwkJCQk5OTM5IFYvQSBQYXNhcgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtREYgICAoaGV4KQkJSVNETiBDb21tdW5pY2F0aW9ucywgTHRkLgorMDAwMURGICAgICAoYmFzZSAxNikJCUlTRE4gQ29tbXVuaWNhdGlvbnMsIEx0ZC4KKwkJCQlUaGUgU3RhYmxlIEJsb2NrLCBSb25hbnMKKwkJCQlDaGF2ZXkgRG93biBSb2FkLCBXaW5rZmllbGQgUm93IEJlcmtzaGlyCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAxLUUwICAgKGhleCkJCUZhc3QgU3lzdGVtcywgSW5jLgorMDAwMUUwICAgICAoYmFzZSAxNikJCUZhc3QgU3lzdGVtcywgSW5jLgorCQkJCTg3LTkgWWFuZy1KYWUsIFNlby1DaG8sCisJCQkJU2VvdWwsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtRTEgICAoaGV4KQkJS2lucG8gRWxlY3Ryb25pY3MsIEluYy4KKzAwMDFFMSAgICAgKGJhc2UgMTYpCQlLaW5wbyBFbGVjdHJvbmljcywgSW5jLgorCQkJCVRTQUMgVEkgV0VJLCBXQU4gU0hVTiBUU1VOLAorCQkJCVNIRU4gS0VORyBIU0lBTkcsIFRBSVBFSSBIU0lFTiBUQUlXQU4gKDIKKwkJCQlDSElOQQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtRTIgICAoaGV4KQkJQW5kbyBFbGVjdHJpYyBDb3Jwb3JhdGlvbgorMDAwMUUyICAgICAoYmFzZSAxNikJCUFuZG8gRWxlY3RyaWMgQ29ycG9yYXRpb24KKwkJCQkxOS03LCBLYW1hdGEgNC1DaHJvbWUsIE90YS1rdQorCQkJCVRva3lvLCAxNDQtMDA1MgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtRTMgICAoaGV4KQkJU2llbWVucyBBRworMDAwMUUzICAgICAoYmFzZSAxNikJCVNpZW1lbnMgQUcKKwkJCQlTY2hsYXZlbmhvcnN0IDg4CisJCQkJNDYzOTUgQm9jaG9sdAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLUU0ICAgKGhleCkJCVNpdGVyYSwgSW5jLgorMDAwMUU0ICAgICAoYmFzZSAxNikJCVNpdGVyYSwgSW5jLgorCQkJCTE4MjAgTGVmdGhhbmQgQ2lyY2xlCisJCQkJTG9uZ21vbnQgQ08gODA1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUU1ICAgKGhleCkJCVN1cGVybmV0LCBJbmMuCiswMDAxRTUgICAgIChiYXNlIDE2KQkJU3VwZXJuZXQsIEluYy4KKwkJCQkxMzUtMDgwIERhZW1lb25nIEJsZGcuCisJCQkJMm5kIEZsb29yLCA2NTAtMiwgWWVva3NhbS1kb25nIEthbmduYW0taworCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLUU2ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDAxRTYgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMTAwMCBXb2xmZSBSb2FkLCBNYWlsc3RvcCA0MkxFCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1FNyAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAwMUU3ICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMTEwMDAgV29sZmUgUm9hZCwgTWFpbHN0b3AgNDJMRQorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRTggICAoaGV4KQkJRm9yY2UxMCBOZXR3b3JrcywgSW5jLgorMDAwMUU4ICAgICAoYmFzZSAxNikJCUZvcmNlMTAgTmV0d29ya3MsIEluYy4KKwkJCQkxNDQwIE1jQ2FydGh5IEJsdmQuCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUU5ICAgKGhleCkJCUxpdHRvbiBNYXJpbmUgU3lzdGVtcyBCLlYuCiswMDAxRTkgICAgIChiYXNlIDE2KQkJTGl0dG9uIE1hcmluZSBTeXN0ZW1zIEIuVi4KKwkJCQkxMTggQnVybGluZ3RvbiBSb2FkCisJCQkJTmV3IE1hbGRlbiwgU3VycmV5CisJCQkJRU5HTEFORCBLVDMgNE5SCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDEtRUEgICAoaGV4KQkJQ2lyaWxpdW0gQ29ycC4KKzAwMDFFQSAgICAgKGJhc2UgMTYpCQlDaXJpbGl1bSBDb3JwLgorCQkJCTE2MTUgUy4gNTJuZCBTdHJlZXQKKwkJCQlUZW1wZSBBWiA4NTI4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRUIgICAoaGV4KQkJQy1DT00gQ29ycG9yYXRpb24KKzAwMDFFQiAgICAgKGJhc2UgMTYpCQlDLUNPTSBDb3Jwb3JhdGlvbgorCQkJCTNGLCBOby4gNDgsIFBhcmsgQXZlLiBJSSBTQklQCisJCQkJSHNpbmNodSBUYWl3YW4gSHNpbmNodSBUYWl3YW4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS1FQyAgIChoZXgpCQlFcmljc3NvbiBHcm91cAorMDAwMUVDICAgICAoYmFzZSAxNikJCUVyaWNzc29uIEdyb3VwCisJCQkJVGVsZWZvbmFrdGllYm9sYWdldAorCQkJCUxNIEVyaWNzc29uIENvcnAuIDEyNiAyNSBTVE9DS0hPTE0KKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtMDEtRUQgICAoaGV4KQkJU0VUQSBDb3JwLgorMDAwMUVEICAgICAoYmFzZSAxNikJCVNFVEEgQ29ycC4KKwkJCQlBcmlha2UgRnJvbnRpZXIgQmxkZy4gQgorCQkJCUFyaWFrZSwgS291dG91IEt1IFRva3lvLAorCQkJCUpBUEFOIDEzNS0wMDYzCisJCQkJSkFQQU4KKworMDAtMDEtRUUgICAoaGV4KQkJQ29tdHJvbCBFdXJvcGUsIEx0ZC4KKzAwMDFFRSAgICAgKGJhc2UgMTYpCQlDb210cm9sIEV1cm9wZSwgTHRkLgorCQkJCVRoZSBDb3VydHlhcmQgU3R1ZGlvCisJCQkJR3JhbmdlIEZhcm0sIFN0YXRpb24gUm9hZCBMYXVudG9uIE94b24gTworCQkJCVUuSy4KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS1FRiAgIChoZXgpCQlDYW10ZWwgVGVjaG5vbG9neSBDb3JwLgorMDAwMUVGICAgICAoYmFzZSAxNikJCUNhbXRlbCBUZWNobm9sb2d5IENvcnAuCisJCQkJTm8uIDIsIFd1LUt1bmcgNSBSZC4sIFd1LUt1CisJCQkJSW5kLiBQYXJrLCBIc2luY2h1YW5nLCBUYWlwZWkgU2hpZW4KKwkJCQlUYWl3YW4gVGFpd2FuIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtRjAgICAoaGV4KQkJVHJpZGl1bSwgSW5jLgorMDAwMUYwICAgICAoYmFzZSAxNikJCVRyaWRpdW0sIEluYy4KKwkJCQkzOTUxIFdlc3RlcnJlIFBhcmt3YXkKKwkJCQlTdWl0ZSAzNTAKKwkJCQlSaWNobW9uZCBWQSAyMzIzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRjEgICAoaGV4KQkJSW5ub3ZhdGl2ZSBDb25jZXB0cywgSW5jLgorMDAwMUYxICAgICAoYmFzZSAxNikJCUlubm92YXRpdmUgQ29uY2VwdHMsIEluYy4KKwkJCQk4MjAwIEdyZWVuc2Jvcm8gRHJpdmUKKwkJCQlTdWl0ZSA4MDEKKwkJCQlNY0xlYW4gVkEgMjIxMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUYyICAgKGhleCkJCU1hcmsgb2YgdGhlIFVuaWNvcm4sIEluYy4KKzAwMDFGMiAgICAgKGJhc2UgMTYpCQlNYXJrIG9mIHRoZSBVbmljb3JuLCBJbmMuCisJCQkJMTI4MCBNYXNzYWNodXNldHRzIEF2ZS4KKwkJCQlDYW1icmlkZ2UgTUEgMDIxMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUYzICAgKGhleCkJCVFQUywgSW5jLgorMDAwMUYzICAgICAoYmFzZSAxNikJCVFQUywgSW5jLgorCQkJCTgwMTUgRS4gQ3J5c3RhbCBEcml2ZQorCQkJCUFuYWhlaW0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUY0ICAgKGhleCkJCUVudGVyYXN5cyBOZXR3b3JrcworMDAwMUY0ICAgICAoYmFzZSAxNikJCUVudGVyYXN5cyBOZXR3b3JrcworCQkJCTM1IEluZHVzdHJpYWwgV2F5CisJCQkJUm9jaGVzdGVyIE5IIDAzODY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1GNSAgIChoZXgpCQlFUklNIFMuQS4KKzAwMDFGNSAgICAgKGJhc2UgMTYpCQlFUklNIFMuQS4KKwkJCQkxMSBBdiBSZXB1YmxpcXVlCisJCQkJNjk2OTIgVmVuaXNzaWV1eCBDZWRleAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMS1GNiAgIChoZXgpCQlBc3NvY2lhdGlvbiBvZiBNdXNpY2FsIEVsZWN0cm9uaWNzIEluZHVzdHJ5CiswMDAxRjYgICAgIChiYXNlIDE2KQkJQXNzb2NpYXRpb24gb2YgTXVzaWNhbCBFbGVjdHJvbmljcyBJbmR1c3RyeQorCQkJCUl0byBCbGRnLiA0dGggRmxvb3IgMi0xNi05IE1pc2FraS1jaG8sCisJCQkJQ2hpeW9kYS1rdSwgVG9reW8sIDEwMS0wMDYxCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS1GNyAgIChoZXgpCQlJbWFnZSBEaXNwbGF5IFN5c3RlbXMsIEluYy4KKzAwMDFGNyAgICAgKGJhc2UgMTYpCQlJbWFnZSBEaXNwbGF5IFN5c3RlbXMsIEluYy4KKwkJCQk0NjU2MCBGcmVtb250IEJsdmQuCisJCQkJU3VpdGUgIzQwNgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUY4ICAgKGhleCkJCUFkaGVyZW50IFN5c3RlbXMsIEx0ZC4KKzAwMDFGOCAgICAgKGJhc2UgMTYpCQlBZGhlcmVudCBTeXN0ZW1zLCBMdGQuCisJCQkJRW5kZWF2b3VyIEhvdXNlLCBWaXNpb24gUGFyaworCQkJCUhpc3RvbiBDYW1icmlkZ2UgQ0I0IDRaUgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDEtRjkgICAoaGV4KQkJVGVyYUdsb2JhbCBDb21tdW5pY2F0aW9ucyBDb3JwLgorMDAwMUY5ICAgICAoYmFzZSAxNikJCVRlcmFHbG9iYWwgQ29tbXVuaWNhdGlvbnMgQ29ycC4KKwkJCQk5MTcxIFRvd25lIENlbnRyZSBEcml2ZQorCQkJCVN1aXRlICM2MDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUZBICAgKGhleCkJCUhPUk9TQ0FTCiswMDAxRkEgICAgIChiYXNlIDE2KQkJSE9ST1NDQVMKKwkJCQkyNiwgTE9VSVMgQkxBTkMKKwkJCQk2OTAwNiBMWU9OCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAxLUZCICAgKGhleCkJCURvVG9wIFRlY2hub2xvZ3ksIEluYy4KKzAwMDFGQiAgICAgKGJhc2UgMTYpCQlEb1RvcCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTBGLCBOby4gMTAwLCBNaW4tQ2h5dWFuIFJvYWQKKwkJCQlIc2luLVRpZW4sIFRhaXBlaQorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtRkMgICAoaGV4KQkJS2V5ZW5jZSBDb3Jwb3JhdGlvbgorMDAwMUZDICAgICAoYmFzZSAxNikJCUtleWVuY2UgQ29ycG9yYXRpb24KKwkJCQkxLTMtMTQsIEhpZ2FzaGktTmFrYWppbWEsCisJCQkJSGlnYXNoaS1Zb2RvZ2F3YS1rdSBPc2FrYSA1MzMtODU1NQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtRkQgICAoaGV4KQkJRGlnaXRhbCBWb2ljZSBTeXN0ZW1zLCBJbmMuCiswMDAxRkQgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBWb2ljZSBTeXN0ZW1zLCBJbmMuCisJCQkJMjM0IExpdHRsZXRvbiBSb2FkCisJCQkJV2VzdGZvcmQgTUEgMDE4ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUZFICAgKGhleCkJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCiswMDAxRkUgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKwkJCQlNL1MgQ1gwMS0yL04yNgorCQkJCTMwMSBST0NLUklNTU9OIEJMVkQuLCBTCisJCQkJQ09MT1JBRE8gU1BSSU5HUyBDTyA4MDkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRkYgICAoaGV4KQkJRGF0YSBEaXJlY3QgTmV0d29ya3MsIEluYy4KKzAwMDFGRiAgICAgKGJhc2UgMTYpCQlEYXRhIERpcmVjdCBOZXR3b3JrcywgSW5jLgorCQkJCTkzMjAgTHVybGluZSBBdmVudWUKKwkJCQlDaGF0c3dvcnRoIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0wMCAgIChoZXgpCQlOZXQgJiBTeXMgQ28uLCBMdGQuCiswMDAyMDAgICAgIChiYXNlIDE2KQkJTmV0ICYgU3lzIENvLiwgTHRkLgorCQkJCUt1cm8gSGl0ZWNoIEluZHVzdHJpYWwgQ29tcGxleCAzMDQsCisJCQkJNDAyLTMsIFNoaW5kb3JpbS1kb25nLCBLdXJvLWd1IFNlb3VsLAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTAxICAgKGhleCkJCUlGTSBFbGVjdHJvbmljIGdtYmgKKzAwMDIwMSAgICAgKGJhc2UgMTYpCQlJRk0gRWxlY3Ryb25pYyBnbWJoCisJCQkJQmVjaGxpbmdlbiAzNAorCQkJCUQtODgwNjkgVGV0dG5hbmcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMi0wMiAgIChoZXgpCQlBbWlubyBDb21tdW5pY2F0aW9ucywgTHRkLgorMDAwMjAyICAgICAoYmFzZSAxNikJCUFtaW5vIENvbW11bmljYXRpb25zLCBMdGQuCisJCQkJVGltZXMgSG91c2UKKwkJCQlGZW4gRW5kIFdpbGxpbmdoYW0sIENhbWJyaWRnZQorCQkJCVVLIENCNCA1TEgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMi0wMyAgIChoZXgpCQlXb29uc2FuZyBUZWxlY29tLCBJbmMuCiswMDAyMDMgICAgIChiYXNlIDE2KQkJV29vbnNhbmcgVGVsZWNvbSwgSW5jLgorCQkJCTEwNC05LCBNdW5qaS1Eb25nLCBZdXNvbmctR3UKKwkJCQlUYWVqb24sIDMwNS0zODAsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItMDQgICAoaGV4KQkJQm9kbWFubiBJbmR1c3RyaWVzIEVsZWt0cm9uaWsgR21iSAorMDAwMjA0ICAgICAoYmFzZSAxNikJCUJvZG1hbm4gSW5kdXN0cmllcyBFbGVrdHJvbmlrIEdtYkgKKwkJCQlNZXNzZXJzY2htaXR0cmluZyAzMworCQkJCUQtODYzNDMgS29uaWdzYnJ1bm4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMi0wNSAgIChoZXgpCQlIaXRhY2hpIERlbnNoaSwgTHRkLgorMDAwMjA1ICAgICAoYmFzZSAxNikJCUhpdGFjaGkgRGVuc2hpLCBMdGQuCisJCQkJMzIgTWl5YWtpLWNobyBLb2RhaXJhLXNoaQorCQkJCVRveWtvLAorCQkJCUpBUEFOIDE4Ny04NTExCisJCQkJSkFQQU4KKworMDAtMDItMDYgICAoaGV4KQkJVGVsaXRhbCBSJkQgRGVubWFyayBBL1MKKzAwMDIwNiAgICAgKGJhc2UgMTYpCQlUZWxpdGFsIFImRCBEZW5tYXJrIEEvUworCQkJCTk1MzAgU3RvdXJpbmcKKwkJCQlEZW5tYXJrCisJCQkJREVOTUFSSworCiswMC0wMi0wNyAgIChoZXgpCQlWaXNpb25HbG9iYWwgTmV0d29yayBDb3JwLgorMDAwMjA3ICAgICAoYmFzZSAxNikJCVZpc2lvbkdsb2JhbCBOZXR3b3JrIENvcnAuCisJCQkJODI2IEUuIFN0YWxlIFJvYWQKKwkJCQlTdWl0ZSAyMDAKKwkJCQlBbWVyaWNhbiBGb3JrIFVUIDg0MDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0wOCAgIChoZXgpCQlVbmlmeSBOZXR3b3JrcywgSW5jLgorMDAwMjA4ICAgICAoYmFzZSAxNikJCVVuaWZ5IE5ldHdvcmtzLCBJbmMuCisJCQkJMzE2MCBEZSBMYSBDcnV6IEJsdmQuCisJCQkJIzIwMQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0wOSAgIChoZXgpCQlTaGVuemhlbiBTRUQgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDIwOSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBTRUQgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk0L0YuLCBXZXN0IEJsb2NrLCBCbG9jayA0MTQsIFpoZW5odWEgUmQuCisJCQkJRnV0aWFuIFNoZW56aGVuLCA1MTgwMzEgUC5SLgorCQkJCUNISU5BCisJCQkJQ0hJTkEKKworMDAtMDItMEEgICAoaGV4KQkJR2VmcmFuIFNwYQorMDAwMjBBICAgICAoYmFzZSAxNikJCUdlZnJhbiBTcGEKKwkJCQlWaWEgU2ViaW5hLCA3NAorCQkJCVByb3ZhZ2xpbyBEJ0lzZW8gMjUwNTAgQnJlc2NpYQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtMDItMEIgICAoaGV4KQkJTmF0aXZlIE5ldHdvcmtzLCBJbmMuCiswMDAyMEIgICAgIChiYXNlIDE2KQkJTmF0aXZlIE5ldHdvcmtzLCBJbmMuCisJCQkJUC5PLiBCb3ggNzE2NQorCQkJCVBldGFoIFRpa3ZhIDQ5MTcwCisJCQkJSXNyYWVsCisJCQkJSVNSQUVMCisKKzAwLTAyLTBDICAgKGhleCkJCU1ldHJvLU9wdGl4CiswMDAyMEMgICAgIChiYXNlIDE2KQkJTWV0cm8tT3B0aXgKKwkJCQkyMjAxIEF2ZW51ZSBLCisJCQkJUGxhbm8gVFggNzUwNzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTBEICAgKGhleCkJCU1pY3JvbnBjLmNvbQorMDAwMjBEICAgICAoYmFzZSAxNikJCU1pY3JvbnBjLmNvbQorCQkJCTkwMCBFLiBLYXJjaGVyIFJkLgorCQkJCU5hbXBhIElBIDgzNjg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0wRSAgIChoZXgpCQlFQ0kgVGVsZWNvbSwgTHRkLiwgTlNELVVTCiswMDAyMEUgICAgIChiYXNlIDE2KQkJRUNJIFRlbGVjb20sIEx0ZC4sIE5TRC1VUworCQkJCTEzMDAgT21lZ2EgRHIuCisJCQkJUGl0dHNidXJnaCBQQSAxNTIwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMEYgICAoaGV4KQkJQUFUUgorMDAwMjBGICAgICAoYmFzZSAxNikJCUFBVFIKKwkJCQkzMDYgQ2hlbWluIGRlcyBNaXJvaXJzCisJCQkJMTMzMzAgUGVsaXNzYW5uZQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMi0xMCAgIChoZXgpCQlGZW5lY29tCiswMDAyMTAgICAgIChiYXNlIDE2KQkJRmVuZWNvbQorCQkJCTcvRiBLb24ta3VrIFVuaXZlcnNpdHkgQWx1bW5pCisJCQkJQXNzb2NpYXRpb24gQnVpbGRpbmcgTk86ICAyMjctMzM2IEpheWFuZworCQkJCVNlb3VsIFNlb3VsIEtvcmVhCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTExICAgKGhleCkJCU5hdHVyZSBXb3JsZHdpZGUgVGVjaG5vbG9neSBDb3JwLgorMDAwMjExICAgICAoYmFzZSAxNikJCU5hdHVyZSBXb3JsZHdpZGUgVGVjaG5vbG9neSBDb3JwLgorCQkJCU5vLiAxLCBNaW4tQ2h1YW4gU3RyZWV0CisJCQkJVHUtQ2hlbmcgSW5kdXN0cmlhbCBQYXJrIFRhaXBlaSBIc2llbiwKKwkJCQlUYWl3YW4gVGFpd2FuIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItMTIgICAoaGV4KQkJU2llcnJhQ29tCiswMDAyMTIgICAgIChiYXNlIDE2KQkJU2llcnJhQ29tCisJCQkJOTkgU291dGggU3RyZWV0CisJCQkJSG9wa2ludG9uIE1hIDAxNzQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0xMyAgIChoZXgpCQlTLkQuRS5MLgorMDAwMjEzICAgICAoYmFzZSAxNikJCVMuRC5FLkwuCisJCQkJQWVyb3BvbGUgRDJBCisJCQkJUnVlIE51bmdlcnJlciBldCBDb2xpIDQ0ODYwIFN0IEFpZ25hbiBkZQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMi0xNCAgIChoZXgpCQlEVFZSTworMDAwMjE0ICAgICAoYmFzZSAxNikJCURUVlJPCisJCQkJODEzIERhZWdvbmcgQmxkZy4sCisJCQkJODIzLTIxIFllb2tzYW0tRG9uZywgS2FuZ25hbS1HdSwgU2VvdWwsCisJCQkJS09SRUEgS09SRUEgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi0xNSAgIChoZXgpCQlDb3RhcyBDb21wdXRlciBUZWNobm9sb2d5IEEvQgorMDAwMjE1ICAgICAoYmFzZSAxNikJCUNvdGFzIENvbXB1dGVyIFRlY2hub2xvZ3kgQS9CCisJCQkJUGFsdWRhbi1NdWxsZXJzIFZlaiA4MgorCQkJCURLLTgyMDAgQWFyaHVzIE4KKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswMC0wMi0xNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAyMTYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0xNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAyMTcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0xOCAgIChoZXgpCQlBZHZhbmNlZCBTY2llbnRpZmljIENvcnAKKzAwMDIxOCAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBTY2llbnRpZmljIENvcnAKKwkJCQkxIEZsLiwgTm8uIDI2LCBJbmR1c3RyeSBFYXN0IDl0aCBSb2FkCisJCQkJU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmsgSHNpbi1DaHUKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTE5ICAgKGhleCkJCVBhcmFsb24gVGVjaG5vbG9naWVzCiswMDAyMTkgICAgIChiYXNlIDE2KQkJUGFyYWxvbiBUZWNobm9sb2dpZXMKKwkJCQk3MDAgRmlmdGggQXZlLCBTdWl0ZSA2MTAxCisJCQkJU2VhdHRsZSBXQSA5ODEwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMUEgICAoaGV4KQkJWnVtYSBOZXR3b3JrcworMDAwMjFBICAgICAoYmFzZSAxNikJCVp1bWEgTmV0d29ya3MKKwkJCQk4NDAzIEZhbGxicm9vayBBdmUuCisJCQkJV2VzdCBIaWxscyBDQSA5MTMwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMUIgICAoaGV4KQkJS29sbG1vcmdlbi1TZXJ2b3Ryb25peAorMDAwMjFCICAgICAoYmFzZSAxNikJCUtvbGxtb3JnZW4tU2Vydm90cm9uaXgKKwkJCQlQT0IgMzkxOSwgUGV0YWNoIFRpa3lhCisJCQkJNDkxMzAgSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTAyLTFDICAgKGhleCkJCU5ldHdvcmsgRWxlbWVudHMsIEluYy4KKzAwMDIxQyAgICAgKGJhc2UgMTYpCQlOZXR3b3JrIEVsZW1lbnRzLCBJbmMuCisJCQkJOTc4MiBTVyBOaW1idXMgQXZlbnVlCisJCQkJQmVhdmVydG9uIE9SIDk3MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0xRCAgIChoZXgpCQlEYXRhIEdlbmVyYWwgQ29tbXVuaWNhdGlvbiBMdGQuCiswMDAyMUQgICAgIChiYXNlIDE2KQkJRGF0YSBHZW5lcmFsIENvbW11bmljYXRpb24gTHRkLgorCQkJCVJtLiAxOEMsIEJsZGcuIEMsIENFSUVDIFRvd2VyCisJCQkJTm8uIDIwNzAsIFJkLiBTaGVuTmFuWmhvbmcgU2hlblpoZW4gQ2l0eQorCQkJCUNISU5BCisJCQkJQ0hJTkEKKworMDAtMDItMUUgICAoaGV4KQkJU0lNVEVMIFMuUi5MLgorMDAwMjFFICAgICAoYmFzZSAxNikJCVNJTVRFTCBTLlIuTC4KKwkJCQlWaWEgQm9uaWZhY2lvIEx1cGksIDI1CisJCQkJNTAxMjkgRmlyZW56ZQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtMDItMUYgICAoaGV4KQkJQWN1bGFiIFBMQworMDAwMjFGICAgICAoYmFzZSAxNikJCUFjdWxhYiBQTEMKKwkJCQlMYWtlc2lkZSwgQnJhbWxleSBSb2FkCisJCQkJTW91bnQgRmFybSBNaWx0b24gS2V5bmVzIEJ1bGtzIE1LMSAxUFQKKwkJCQlVSworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLTIwICAgKGhleCkJCUNBTk9OIEZJTkVURUNIIElOQy4KKzAwMDIyMCAgICAgKGJhc2UgMTYpCQlDQU5PTiBGSU5FVEVDSCBJTkMuCisJCQkJNzE3LCBZYWd1Y2hpLCBNaXNhdG8tc2hpLAorCQkJCVNhaXRhbWEgIDM0MS04NTI3CisJCQkJSkFQQU4KKworMDAtMDItMjEgICAoaGV4KQkJRFNQIEFwcGxpY2F0aW9uLCBMdGQuCiswMDAyMjEgICAgIChiYXNlIDE2KQkJRFNQIEFwcGxpY2F0aW9uLCBMdGQuCisJCQkJMTJGLTEyLCBOby4gNzksIFNlYy4gMSBIc2luIFRhaSBXdSBSZC4KKwkJCQlIU0lDSEksIFRhaXBlaSBDb3VudHkKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTIyICAgKGhleCkJCUNocm9taXN5cywgSW5jLgorMDAwMjIyICAgICAoYmFzZSAxNikJCUNocm9taXN5cywgSW5jLgorCQkJCTEwMTIgU3Rld2FydCBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMjMgICAoaGV4KQkJQ2xpY2tUVgorMDAwMjIzICAgICAoYmFzZSAxNikJCUNsaWNrVFYKKwkJCQlLZW1vbmcgQmxkZy4sIDR0aCBGbC4sCisJCQkJNzcyIFlva3NhbS1Eb25nIEthbmduYW0tS3UKKwkJCQlTZW91bCBLb3JlYSAxMzUtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTI0ICAgKGhleCkJCUMtQ09SCiswMDAyMjQgICAgIChiYXNlIDE2KQkJQy1DT1IKKwkJCQkxNSBTdGVybGluZyBEcml2ZQorCQkJCVdhbGxpbmdmb3JkIENUIDA2NDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0yNSAgIChoZXgpCQlPbmUgU3RvcCBTeXN0ZW1zCiswMDAyMjUgICAgIChiYXNlIDE2KQkJT25lIFN0b3AgU3lzdGVtcworCQkJCTIyMzUgRW50ZXJwcmlzZSBTdHJlZXQKKwkJCQlTdWl0ZSAxMTAKKwkJCQlFc2NvbmRpZG8gQ0EgOTIwMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTI2ICAgKGhleCkJCVhFU3lzdGVtcywgSW5jLgorMDAwMjI2ICAgICAoYmFzZSAxNikJCVhFU3lzdGVtcywgSW5jLgorCQkJCTMxNyBNYWluIFN0cmVldAorCQkJCUVhc3QgUm9jaGVzdGVyIE5ZIDE0NDQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0yNyAgIChoZXgpCQlFU0QgRWxlY3Ryb25pYyBTeXN0ZW0gRGVzaWduIEdtYkgKKzAwMDIyNyAgICAgKGJhc2UgMTYpCQlFU0QgRWxlY3Ryb25pYyBTeXN0ZW0gRGVzaWduIEdtYkgKKwkJCQlWYWhyZW53YWxkZXIgU3RyLiAyMDcKKwkJCQkzMCAxNjUgSGFubm92ZXIgR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDItMjggICAoaGV4KQkJTmVjc29tLCBMdGQuCiswMDAyMjggICAgIChiYXNlIDE2KQkJTmVjc29tLCBMdGQuCisJCQkJTmVjc29tIEx0ZC4gYy9vIEtvaXJzdG8KKwkJCQlTYXVuYW1hZW50aWUgNCBBIDEgRklOLTAyNzcwIEVTUDAwCisJCQkJRklOTEFORAorCQkJCUZJTkxBTkQKKworMDAtMDItMjkgICAoaGV4KQkJQWR0ZWMgQ29ycG9yYXRpb24KKzAwMDIyOSAgICAgKGJhc2UgMTYpCQlBZHRlYyBDb3Jwb3JhdGlvbgorCQkJCTNGIE1lZ3Vyb2hpZ2FzaGl5YW1hIEJsZworCQkJCTEgNCA0IEhpZ2FzaGl5YW1hLCBNZWd1cm8gS3UgVG9reW8gMTUzIDAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAyLTJBICAgKGhleCkJCUFzb3VuZCBFbGVjdHJvbmljCiswMDAyMkEgICAgIChiYXNlIDE2KQkJQXNvdW5kIEVsZWN0cm9uaWMKKwkJCQlYaWFueGkgSW5kdXN0cmllcyBab25lIENoYW5nYW4gVG93bgorCQkJCURvbmcgR3VvbiBDaXR5LCBHdW9uZyBEb25nIFByb3ZpZGVuY2UKKwkJCQlDSElOQQorCQkJCUNISU5BCisKKzAwLTAyLTJCICAgKGhleCkJCVNBWEEsIEluYy4KKzAwMDIyQiAgICAgKGJhc2UgMTYpCQlTQVhBLCBJbmMuCisJCQkJTkJGIFBsYXRpbnVtIFRvd2VyIDEtMTctMyBTaGlyb2thbmUKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA4LTgwNTAKKwkJCQlKQVBBTgorCiswMC0wMi0yQyAgIChoZXgpCQlBQkIgQm9tZW0sIEluYy4KKzAwMDIyQyAgICAgKGJhc2UgMTYpCQlBQkIgQm9tZW0sIEluYy4KKwkJCQk1ODUsIGJvdWwuIENoYXJlc3QgRXN0CisJCQkJU3VpdGUgMzAwIFF1ZWJlYyBDaXR5LCBQUQorCQkJCUNhbmFkYSBHMUsgOUg0CisJCQkJQ0FOQURBCisKKzAwLTAyLTJEICAgKGhleCkJCUFnZXJlIFN5c3RlbXMKKzAwMDIyRCAgICAgKGJhc2UgMTYpCQlBZ2VyZSBTeXN0ZW1zCisJCQkJUC5PLiBCb3ggNzU1CisJCQkJMzQzMCBBdCBOaWV1d2VnZWluCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDItMkUgICAoaGV4KQkJVEVBQyBDb3JwLiBSJiBECiswMDAyMkUgICAgIChiYXNlIDE2KQkJVEVBQyBDb3JwLiBSJiBECisJCQkJODU3IEtveWF0YSwgSXJ1bWEKKwkJCQlTYWl0YW1hCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMi0yRiAgIChoZXgpCQlQLUN1YmUsIEx0ZC4KKzAwMDIyRiAgICAgKGJhc2UgMTYpCQlQLUN1YmUsIEx0ZC4KKwkJCQlQLk8uIEJveCAxMjMzMQorCQkJCUhlcnpsaWEgNDY3NjYKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDItMzAgICAoaGV4KQkJSW50ZXJzb2Z0IEVsZWN0cm9uaWNzCiswMDAyMzAgICAgIChiYXNlIDE2KQkJSW50ZXJzb2Z0IEVsZWN0cm9uaWNzCisJCQkJTGFtbWVyZHJpZXMgMjcKKwkJCQlCMjI1MCBPbGVuCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtMDItMzEgICAoaGV4KQkJSW5nZXJzb2xsLVJhbmQKKzAwMDIzMSAgICAgKGJhc2UgMTYpCQlJbmdlcnNvbGwtUmFuZAorCQkJCTE0NjcgUm91dGUgMzEgU291dGgKKwkJCQlQLk8uIEJveCA5NzAKKwkJCQlBbm5hbmRhbGUgTkogMDg4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTMyICAgKGhleCkJCUF2aXNpb24sIEluYy4KKzAwMDIzMiAgICAgKGJhc2UgMTYpCQlBdmlzaW9uLCBJbmMuCisJCQkJTm8uIDIwLCBDcmVhdGlvbiBSZC4gMSwKKwkJCQlTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1IFRhaXdhbiwgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi0zMyAgIChoZXgpCQlNYW50cmEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDIzMyAgICAgKGJhc2UgMTYpCQlNYW50cmEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkxMjg1MCBNaWRkbGVicm9vayBSb2FkCisJCQkJU3VpdGUgMQorCQkJCUdlcm1hbnRvd24gTUQgMjA4NzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTM0ICAgKGhleCkJCUltcGVyaWFsIFRlY2hub2xvZ3ksIEluYy4KKzAwMDIzNCAgICAgKGJhc2UgMTYpCQlJbXBlcmlhbCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjMwNSBVdGFoIEF2ZW51ZQorCQkJCUVsIFNlZ3VuZG8gQ0EgOTAyNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTM1ICAgKGhleCkJCVBhcmFnb24gTmV0d29ya3MgSW50ZXJuYXRpb25hbAorMDAwMjM1ICAgICAoYmFzZSAxNikJCVBhcmFnb24gTmV0d29ya3MgSW50ZXJuYXRpb25hbAorCQkJCTYxIENvbW1lcmNlIERyaXZlCisJCQkJQnJvb2tmaWVsZCBDVCAwNjgwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMzYgICAoaGV4KQkJSU5JVCBHbWJICiswMDAyMzYgICAgIChiYXNlIDE2KQkJSU5JVCBHbWJICisJCQkJS2FlcHBlbGVzdHIuIDYKKwkJCQlELTc2MTMxIEthcmxzcnVoZQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAyLTM3ICAgKGhleCkJCUNvc21vIFJlc2VhcmNoIENvcnAuCiswMDAyMzcgICAgIChiYXNlIDE2KQkJQ29zbW8gUmVzZWFyY2ggQ29ycC4KKwkJCQlDb3NtbyBCbGRnLCAzLTE0OC01CisJCQkJTWl5YWhhcmFjaG8sIE9taXlhIFNhaXRhbWEgMzMwLTAwMzgKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAyLTM4ICAgKGhleCkJCVNlcm9tZSBUZWNobm9sb2d5LCBJbmMuCiswMDAyMzggICAgIChiYXNlIDE2KQkJU2Vyb21lIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk1NTUtMTQsIEJhZWthbmcgQi9EIDdGCisJCQkJU2hpbnNhLWRvbmcsIEthbmduYW0tZ3UKKwkJCQlTZW91bCBLb3JlYSAxMzUtMTIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTM5ICAgKGhleCkJCVZpc2ljb20KKzAwMDIzOSAgICAgKGJhc2UgMTYpCQlWaXNpY29tCisJCQkJMTAwNTIgTWVzYSBSaWRnZSBDdC4KKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTNBICAgKGhleCkJCVpTSyBTdGlja21hc2NoaW5lbiBHbWJICiswMDAyM0EgICAgIChiYXNlIDE2KQkJWlNLIFN0aWNrbWFzY2hpbmVuIEdtYkgKKwkJCQlNYWdkZWJ1cmdlciBTdHJhc3NlIDM4LTQwCisJCQkJNDc4MDAgS3JlZmVsZAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAyLTNCICAgKGhleCkJCVJlZGJhY2sgTmV0d29ya3MKKzAwMDIzQiAgICAgKGJhc2UgMTYpCQlSZWRiYWNrIE5ldHdvcmtzCisJCQkJMTE5NSBCb3JyZWdhcyBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTNDICAgKGhleCkJCUNyZWF0aXZlIFRlY2hub2xvZ3ksIEx0ZC4KKzAwMDIzQyAgICAgKGJhc2UgMTYpCQlDcmVhdGl2ZSBUZWNobm9sb2d5LCBMdGQuCisJCQkJMzEgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBQYXJrCisJCQkJU2luZ2Fwb3JlIDYwOTkyMQorCQkJCVJlcHVibGljIG9mIFNpbmdhcG9yZQorCQkJCVNJTkdBUE9SRQorCiswMC0wMi0zRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAyM0QgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0zRSAgIChoZXgpCQlTZWx0YSBUZWxlbWF0aWNhIFMucC5hCiswMDAyM0UgICAgIChiYXNlIDE2KQkJU2VsdGEgVGVsZW1hdGljYSBTLnAuYQorCQkJCVZpYSBOYXppb25hbGUga20gNDA0LjUKKwkJCQk2NDAxOSBUb3J0b3JldG8gTGlkbyBURQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtMDItM0YgICAoaGV4KQkJQ29tcGFsIEVsZWN0cm9uaWNzLCBJbmMuCiswMDAyM0YgICAgIChiYXNlIDE2KQkJQ29tcGFsIEVsZWN0cm9uaWNzLCBJbmMuCisJCQkJNTgxLCBKdWlrdWFuZyBSZC4sCisJCQkJTmVpaHUsIFRhaXBlaSwgKDExNCkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItNDAgICAoaGV4KQkJU2VlZGVrIENvLiwgTHRkLgorMDAwMjQwICAgICAoYmFzZSAxNikJCVNlZWRlayBDby4sIEx0ZC4KKwkJCQkjNzA5LCAxNjM4LTMyLCBTYW1tbworCQkJCVNoaW5yaW1ib24tRG9uZywgS3dhbmFrLUd1LCBTZW91bAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTQxICAgKGhleCkJCUFtZXIuY29tCiswMDAyNDEgICAgIChiYXNlIDE2KQkJQW1lci5jb20KKwkJCQk3MjU5IEJyeWFuIERhaXJ5IFJvYWQKKwkJCQlMYXJnbyBGTCAzMzc3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNDIgICAoaGV4KQkJVmlkZW9mcmFtZSBTeXN0ZW1zCiswMDAyNDIgICAgIChiYXNlIDE2KQkJVmlkZW9mcmFtZSBTeXN0ZW1zCisJCQkJMTAxIFByb3ZpZGVuY2UgTWluZSBSb2FkCisJCQkJU3VpdGUgMTAzCisJCQkJTmV2YWRhIENpdHkgQ0EgOTU5NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTQzICAgKGhleCkJCVJheXNpcyBDby4sIEx0ZC4KKzAwMDI0MyAgICAgKGJhc2UgMTYpCQlSYXlzaXMgQ28uLCBMdGQuCisJCQkJOTk3LTEwLCBEYWVjaGktRG9uZywgS2FuZ25hbS1LdSwKKwkJCQlTZW91bCAxMzUtMjgwLCBTb3V0aCBLb3JlYQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi00NCAgIChoZXgpCQlTVVJFQ09NIFRlY2hub2xvZ3kgQ28uCiswMDAyNDQgICAgIChiYXNlIDE2KQkJU1VSRUNPTSBUZWNobm9sb2d5IENvLgorCQkJCTZGLCBOby4gMTI1LCBTZWMuIDIsIERhdHVuZyBSZC4KKwkJCQlTaGlqciwgVGFpcGVpIENvdW50eSwgMjIxCisJCQkJVGFpd2FuIFRhaXdhbiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTQ1ICAgKGhleCkJCUxhbXB1cyBDbywgTHRkLgorMDAwMjQ1ICAgICAoYmFzZSAxNikJCUxhbXB1cyBDbywgTHRkLgorCQkJCTZ0aCBCbGRnLiwgU2FtZ29uZywKKwkJCQk1OC03IFJhbnBvIDRkb25nIFNjb2NoLWdvLCBTZW91bCwKKwkJCQlLb3JlYSBLb3JlYSAxMzctMDQ0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTQ2ICAgKGhleCkJCUFsbC1XaW4gVGVjaCBDby4sIEx0ZC4KKzAwMDI0NiAgICAgKGJhc2UgMTYpCQlBbGwtV2luIFRlY2ggQ28uLCBMdGQuCisJCQkJMTFGLCBOby4gMTExLTcsIEhzaW5nIERlIFJkLiwKKwkJCQlTYW4gQ2h1bmcgQ2l0eSwKKwkJCQlUYWlwZWkgSHNpZW4gVGFpd2FuLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTQ3ICAgKGhleCkJCUdyZWF0IERyYWdvbiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IChHcm91cCkgQ28uLCBMdGQuCiswMDAyNDcgICAgIChiYXNlIDE2KQkJR3JlYXQgRHJhZ29uIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKEdyb3VwKSBDby4sIEx0ZC4KKwkJCQkxNjkgQmVpeXVhbiBSZC4sCisJCQkJQ2hhb3lhbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nIDEwMDEwMSwgQ0hJTkEKKwkJCQlDSElOQQorCiswMC0wMi00OCAgIChoZXgpCQlQaWx6IEdtYkggJiBDby4KKzAwMDI0OCAgICAgKGJhc2UgMTYpCQlQaWx6IEdtYkggJiBDby4KKwkJCQlGZWxpeC1XYW5rZWwtU3RyYXNzZSAyCisJCQkJRC03Mzc2MCBPc3RmaWxkZXJuCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDItNDkgICAoaGV4KQkJQXZpdiBJbmZvY29tIENvLCBMdGQuCiswMDAyNDkgICAgIChiYXNlIDE2KQkJQXZpdiBJbmZvY29tIENvLCBMdGQuCisJCQkJOTYyLTUsIEt3YW55YW5nLURvbmcsIERvbmdhbi1HdSwKKwkJCQlBbnlhbmctQ2l0eSwgS3l1bmdraS1EbywgNDMxLTA2MAorCQkJCUtvcmVhIChST0spCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTRBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDI0QSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi00QiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAyNEIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNEMgICAoaGV4KQkJU2lCeXRlLCBJbmMuCiswMDAyNEMgICAgIChiYXNlIDE2KQkJU2lCeXRlLCBJbmMuCisJCQkJMjgwNSBCb3dlcnMgQXZlbnVlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEtMDkxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNEQgICAoaGV4KQkJTWFubmVzbWFuIERlbWF0aWMgQ29sYnkgUHR5LiBMdGQuCiswMDAyNEQgICAgIChiYXNlIDE2KQkJTWFubmVzbWFuIERlbWF0aWMgQ29sYnkgUHR5LiBMdGQuCisJCQkJMjQgTmFyYWJhbmcgV2F5CisJCQkJQmVscm9zZSwgTlNXIDIwODUKKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtMDItNEUgICAoaGV4KQkJRGF0YWNhcmQgR3JvdXAKKzAwMDI0RSAgICAgKGJhc2UgMTYpCQlEYXRhY2FyZCBHcm91cAorCQkJCTExMTExIEJyZW4gUm9hZCBXZXN0CisJCQkJTVMgMjEwCisJCQkJTWlubmV0b25rYSBNTiA1NTM0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNEYgICAoaGV4KQkJSVBNIERhdGFjb20gUy5SLkwuCiswMDAyNEYgICAgIChiYXNlIDE2KQkJSVBNIERhdGFjb20gUy5SLkwuCisJCQkJVmlhIFJvbWEsIDIzMQorCQkJCTgwMDI3IEZyYXR0YW1hZ2dpb3JlCisJCQkJTmFwbGVzIElUQUxZCisJCQkJSVRBTFkKKworMDAtMDItNTAgICAoaGV4KQkJR2V5c2VyIE5ldHdvcmtzLCBJbmMuCiswMDAyNTAgICAgIChiYXNlIDE2KQkJR2V5c2VyIE5ldHdvcmtzLCBJbmMuCisJCQkJNTM1IERlbCBSZXkgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi01MSAgIChoZXgpCQlTb21hIE5ldHdvcmtzLCBJbmMuCiswMDAyNTEgICAgIChiYXNlIDE2KQkJU29tYSBOZXR3b3JrcywgSW5jLgorCQkJCTY1MCBUb3duc2VuZCBTdC4KKwkJCQlTdWl0ZSAzMDUKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi01MiAgIChoZXgpCQlDYXJyaWVyIENvcnBvcmF0aW9uCiswMDAyNTIgICAgIChiYXNlIDE2KQkJQ2FycmllciBDb3Jwb3JhdGlvbgorCQkJCU9uZSBDYXJyaWVyIFBsYWNlCisJCQkJRmFybWluZ3RvbiBDVCAwNjAzNC00MDE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi01MyAgIChoZXgpCQlUZWxldmlkZW8sIEluYy4KKzAwMDI1MyAgICAgKGJhc2UgMTYpCQlUZWxldmlkZW8sIEluYy4KKwkJCQkyMzQ1IEhhcnJpcyBXYXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNTQgICAoaGV4KQkJV29ybGRHYXRlCiswMDAyNTQgICAgIChiYXNlIDE2KQkJV29ybGRHYXRlCisJCQkJMzE5MCBUcmVtb250IEF2ZW51ZQorCQkJCVRyZXZvc2UgUEEgMTkwNTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTU1ICAgKGhleCkJCUlCTSBDb3JwCiswMDAyNTUgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUC5PLiBCb3ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTU2ICAgKGhleCkJCUFscGhhIFByb2Nlc3NvciwgSW5jLgorMDAwMjU2ICAgICAoYmFzZSAxNikJCUFscGhhIFByb2Nlc3NvciwgSW5jLgorCQkJCTEzMCBDIEJha2VyIEF2ZS4gRXh0LgorCQkJCUNvbmNvcmQgTUEgMDE3NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTU3ICAgKGhleCkJCU1pY3JvY29tIENvcnAuCiswMDAyNTcgICAgIChiYXNlIDE2KQkJTWljcm9jb20gQ29ycC4KKwkJCQk4MzMzQSBHcmVlbiBNZWFkb3dzIERyLiBOLgorCQkJCVdlc3RlcnZpbGxlIE9IIDQzMDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi01OCAgIChoZXgpCQlGbHlpbmcgUGFja2V0cyBDb21tdW5pY2F0aW9ucworMDAwMjU4ICAgICAoYmFzZSAxNikJCUZseWluZyBQYWNrZXRzIENvbW11bmljYXRpb25zCisJCQkJMzg4IE1hcmtldCBTdHJlZXQKKwkJCQlTdWl0ZSAzODAKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi01OSAgIChoZXgpCQlUc2FubiBLdWVuIENoaW5hIChTaGFuZ2hhaSlFbnRlcnByaXNlIENvLiwgTHRkLiBJVCBHcm91cAorMDAwMjU5ICAgICAoYmFzZSAxNikJCVRzYW5uIEt1ZW4gQ2hpbmEgKFNoYW5naGFpKUVudGVycHJpc2UgQ28uLCBMdGQuIElUIEdyb3VwCisJCQkJOEYsICM5OSwgSHVhaWhhaSBSZCwgRWFzdCwKKwkJCQlTaGFuZ2hhaSwKKwkJCQlDSElOQSAyMDAwMjEKKwkJCQlDSElOQQorCiswMC0wMi01QSAgIChoZXgpCQlDYXRlbmEgTmV0d29ya3MKKzAwMDI1QSAgICAgKGJhc2UgMTYpCQlDYXRlbmEgTmV0d29ya3MKKwkJCQkzMDcgTGVnZ2V0IERyaXZlCisJCQkJS2FuYXRhIE9udGFyaW8KKwkJCQlDYW5hZGEgSzJLIDNDOAorCQkJCUNBTkFEQQorCiswMC0wMi01QiAgIChoZXgpCQlDYW1icmlkZ2UgU2lsaWNvbiBSYWRpbworMDAwMjVCICAgICAoYmFzZSAxNikJCUNhbWJyaWRnZSBTaWxpY29uIFJhZGlvCisJCQkJVW5pdCA0MDAsIFNjaWVuY2UgUGFyaywKKwkJCQlNaWx0b24gUm9hZCwgQ2FtYnJpZGdlLENCNCBPWEwKKwkJCQlVbml0ZWQgS2luZ2RvbQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLTVDICAgKGhleCkJCVNDSSBTeXN0ZW1zIChLdW5zaGFuKSBDby4sIEx0ZC4KKzAwMDI1QyAgICAgKGJhc2UgMTYpCQlTQ0kgU3lzdGVtcyAoS3Vuc2hhbikgQ28uLCBMdGQuCisJCQkJMzEyIFFJTkcgWUFORyBST0FECisJCQkJS1VOU0hBTiwgSklBTkdTVSBQUk9WSUNDCisJCQkJQ0hJTkEgQ0hJTkEgMjE1MzAwCisJCQkJQ0hJTkEKKworMDAtMDItNUQgICAoaGV4KQkJQ2FsaXggTmV0d29ya3MKKzAwMDI1RCAgICAgKGJhc2UgMTYpCQlDYWxpeCBOZXR3b3JrcworCQkJCTEwMzUgTm9ydGggTWNEb3dlbGwgQmx2ZC4KKwkJCQlQZXRhbHVtYSBDQSA5NDk1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNUUgICAoaGV4KQkJSGlnaCBUZWNobm9sb2d5IEx0ZAorMDAwMjVFICAgICAoYmFzZSAxNikJCUhpZ2ggVGVjaG5vbG9neSBMdGQKKwkJCQlDaG9uZ3FpbmcgSmluZ2hvbmcKKwkJCQlBMi0xMC0zIENhbGlmb3JuaWEgR2FyZGVuIFl1YmVpIERpc3RyaWN0CisJCQkJUGVvcGxlJ3MgUmVwdWJsaWMgb2YgQ2hpbmEKKwkJCQlDSElOQQorCiswMC0wMi01RiAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMDI1RiAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk5MzAwIHRyYW5zLUNBTkFEQSBIaWdod2F5CisJCQkJU3QuIExhdXJlbmV0LCBRdWViZWMKKwkJCQlINFMgMUtTIENBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMi02MCAgIChoZXgpCQlBY2NvcmRpb24gTmV0d29ya3MsIEluYy4KKzAwMDI2MCAgICAgKGJhc2UgMTYpCQlBY2NvcmRpb24gTmV0d29ya3MsIEluYy4KKwkJCQkzOTg5OSBCYWxlbnRpbmUgRHJpdmUsICMzMzUKKwkJCQlOZXdhcmsgQ0EgOTQ1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTYxICAgKGhleCkJCVRpbGdpbiBBQgorMDAwMjYxICAgICAoYmFzZSAxNikJCVRpbGdpbiBBQgorCQkJCUZpbmxhbmRzZ2F0YW4gNDAKKwkJCQlTRS0xNjQgNzQgS2lzdGEKKwkJCQlTV0VERU4KKworMDAtMDItNjIgICAoaGV4KQkJU295byBHcm91cCBTb3lvIENvbSBUZWNoIENvLiwgTHRkCiswMDAyNjIgICAgIChiYXNlIDE2KQkJU295byBHcm91cCBTb3lvIENvbSBUZWNoIENvLiwgTHRkCisJCQkJNUguIE5vLiAyMSBXdS1nb25nIDUgUmQsCisJCQkJSHNpbmcgQ2h1YW5nLAorCQkJCVRhaXBlaSBIc2llbiBUYWl3YW4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi02MyAgIChoZXgpCQlVUFMgTWFudWZhY3R1cmluZyBTUkwKKzAwMDI2MyAgICAgKGJhc2UgMTYpCQlVUFMgTWFudWZhY3R1cmluZyBTUkwKKwkJCQlWaWEgR2lvcmRhbm8sIDU0CisJCQkJMzcwNTAgVmFsbGVzZSBEaSBPcHBlYW5vCisJCQkJVmVyb25hIEl0YWx5CisJCQkJSVRBTFkKKworMDAtMDItNjQgICAoaGV4KQkJQXVkaW9SYW1wLmNvbQorMDAwMjY0ICAgICAoYmFzZSAxNikJCUF1ZGlvUmFtcC5jb20KKwkJCQkxNTk0MSBSZWQgSGlsbCBTdWl0ZSAyMDUKKwkJCQlUdXN0aW4gQ0EgOTI3ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTY1ICAgKGhleCkJCVZpcmRpdGVjaCBDby4gTHRkLgorMDAwMjY1ICAgICAoYmFzZSAxNikJCVZpcmRpdGVjaCBDby4gTHRkLgorCQkJCUh5dW5kYWkgVG9waWNzIEJsZ2QuLCAxMXRoIEZsCisJCQkJNDQtMyBQYW5naS1kb25nLCBTb25ncGEtR3UKKwkJCQlTZW91bCBTZW91bCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi02NiAgIChoZXgpCQlUaGVybWFsb2dpYyBDb3Jwb3JhdGlvbgorMDAwMjY2ICAgICAoYmFzZSAxNikJCVRoZXJtYWxvZ2ljIENvcnBvcmF0aW9uCisJCQkJMjIgS2FuZSBJbmR1c3RyaWFsIERyaXZlCisJCQkJSHVkc29uIE1BIDAxNzQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi02NyAgIChoZXgpCQlOT0RFIFJVTk5FUiwgSU5DLgorMDAwMjY3ICAgICAoYmFzZSAxNikJCU5PREUgUlVOTkVSLCBJTkMuCisJCQkJMjIwMiBOLiBGT1JCRVMgQkxWRC4KKwkJCQlUVUNTT04gQVogODU3NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTY4ICAgKGhleCkJCUhhcnJpcyBHb3Zlcm5tZW50IENvbW11bmljYXRpb25zCiswMDAyNjggICAgIChiYXNlIDE2KQkJSGFycmlzIEdvdmVybm1lbnQgQ29tbXVuaWNhdGlvbnMKKwkJCQlTeXN0ZW1zIERpdmlzaW9uCisJCQkJUC5PLiBCb3ggMzcgTVM6IDEtNTg1NgorCQkJCU1lbGJvdXJuZSBGTCAzMjkwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNjkgICAoaGV4KQkJTmFkYXRlbCBDby4sIEx0ZAorMDAwMjY5ICAgICAoYmFzZSAxNikJCU5hZGF0ZWwgQ28uLCBMdGQKKwkJCQk5RiBDb1dlbGwgQmxkZywgNjYtMSBCYW5wby1Eb25nCisJCQkJU2VvY2hvLUd1LCBTZW91bCwKKwkJCQlLT1JFQSAxMzctMDQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTZBICAgKGhleCkJCUNvY2VzcyBUZWxlY29tIENvLiwgTHRkLgorMDAwMjZBICAgICAoYmFzZSAxNikJCUNvY2VzcyBUZWxlY29tIENvLiwgTHRkLgorCQkJCVJlc2VhcmNoICYgRGV2ZWxvcG1lbnQgRGVwdC4KKwkJCQk0MywgWW9pZG8tRG9uZywgWW91bmdkZXVuZ3BvLUt1CisJCQkJU2VvdWwgU2VvdWwgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItNkIgICAoaGV4KQkJQkNNIENvbXB1dGVycyBDby4sIEx0ZC4KKzAwMDI2QiAgICAgKGJhc2UgMTYpCQlCQ00gQ29tcHV0ZXJzIENvLiwgTHRkLgorCQkJCTRGLTEsIE5vLiA2NiwgU2VjIDIsCisJCQkJTmFuIEthbiBSZC4sIEx1LUNodSBIc2luZywgVGFvIFl1YW4KKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItNkMgICAoaGV4KQkJUGhpbGlwcyBDRlQKKzAwMDI2QyAgICAgKGJhc2UgMTYpCQlQaGlsaXBzIENGVAorCQkJCUJ1aWxkaW5nIFNBTiA2CisJCQkJUC5PLiBCb3ggMjE4IDU2MDAgTUQgRWluZGhvdmVuCisJCQkJVGhlIE5ldGhlcmxhbmRzCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDItNkQgICAoaGV4KQkJQWRlcHQgVGVsZWNvbQorMDAwMjZEICAgICAoYmFzZSAxNikJCUFkZXB0IFRlbGVjb20KKwkJCQlBdmVudWUgZGUgbCdFdXJvcGUKKwkJCQlCUCAxNjEgRi03MTIwNCBMZSBDcmV1c290IENlZGV4CisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAyLTZFICAgKGhleCkJCU5lR2VOIEFjY2VzcywgSW5jLgorMDAwMjZFICAgICAoYmFzZSAxNikJCU5lR2VOIEFjY2VzcywgSW5jLgorCQkJCTMzIEJvc3RvbiBQb3N0IFJkLiBXZXN0CisJCQkJU3VpdGUgMzYwCisJCQkJTWFybGJvcm91Z2ggTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTZGICAgKGhleCkJCVNlbmFvIEludGVybmF0aW9uYWwgQ28uLCBMdGQuCiswMDAyNkYgICAgIChiYXNlIDE2KQkJU2VuYW8gSW50ZXJuYXRpb25hbCBDby4sIEx0ZC4KKwkJCQkyRiwgTm8uIDUzMSwgQ2h1bmctQ2hlbmcgUmQuLAorCQkJCUhzaW4tVGllbiBDaXR5LCBUYWlwZWkgQ291bnR5LAorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItNzAgICAoaGV4KQkJQ3Jld2F2ZSBDby4sIEx0ZC4KKzAwMDI3MCAgICAgKGJhc2UgMTYpCQlDcmV3YXZlIENvLiwgTHRkLgorCQkJCUY3LCBQdXJldW4gQmxkZy4sIDI4LTEKKwkJCQlKYW13b24tZG9uZywgU2VvY2hvLWd1CisJCQkJU2VvdWwgS09SRUEgMTM3LTAzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi03MSAgIChoZXgpCQlaaG9uZSBUZWNobm9sb2dpZXMKKzAwMDI3MSAgICAgKGJhc2UgMTYpCQlaaG9uZSBUZWNobm9sb2dpZXMKKwkJCQk3MDAxIE9ha3BvcnQgU3RyZWV0CisJCQkJT2FrbGFuZCBDQSA5NDYyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNzIgICAoaGV4KQkJQ0MmQyBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDI3MiAgICAgKGJhc2UgMTYpCQlDQyZDIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCThGLCAxNTAsIENoaWVuIEkgUmQuLCBDaHVuZyBIbyBDaXR5LAorCQkJCVRhaXBlaSBDb3VudHkgMjM1IFRhaXdhbiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTczICAgKGhleCkJCUNvcmlvbGlzIE5ldHdvcmtzCiswMDAyNzMgICAgIChiYXNlIDE2KQkJQ29yaW9saXMgTmV0d29ya3MKKwkJCQkzMzAgQ29kbWFuaGlsbCBSb2FkCisJCQkJQm94Ym9yb3VnaCBNQSAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNzQgICAoaGV4KQkJVG9tbXkgVGVjaG5vbG9naWVzIENvcnAuCiswMDAyNzQgICAgIChiYXNlIDE2KQkJVG9tbXkgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJIzQwNyBIZWVob29uIEJsZAorCQkJCTExMC0xIEt1cm8tZG9uZywgS3Vyby1rdQorCQkJCVNlb3VsIFNlb3VsIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTc1ICAgKGhleCkJCVNNQVJUIFRlY2hub2xvZ2llcywgSW5jLgorMDAwMjc1ICAgICAoYmFzZSAxNikJCVNNQVJUIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTM2MzYgUmVzZWFyY2ggIFJvYWQgTlcKKwkJCQlDYWxnYXJ5LCBBbGJlcnRhICBUMkwxWTEKKwkJCQlDQU5BREEKKworMDAtMDItNzYgICAoaGV4KQkJUHJpbWF4IEVsZWN0cm9uaWNzIEx0ZC4KKzAwMDI3NiAgICAgKGJhc2UgMTYpCQlQcmltYXggRWxlY3Ryb25pY3MgTHRkLgorCQkJCU5vLiA2NjksIFJ1ZXkgS3VhbmcgUm9hZCwgTmVpaHUKKwkJCQlUYWlwZWkgVGFpd2FuLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTc3ICAgKGhleCkJCUNhc2ggU3lzdGVtZXMgSW5kdXN0cmllCiswMDAyNzcgICAgIChiYXNlIDE2KQkJQ2FzaCBTeXN0ZW1lcyBJbmR1c3RyaWUKKwkJCQlUZWNobm9wYXJjIEVwc2lsb24KKwkJCQlSZCAxMDAgODM3MDAgU3QgUmFwaGFlbAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMi03OCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm8tTWVjaGFuaWNzIENvLiwgTHRkLgorMDAwMjc4ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryby1NZWNoYW5pY3MgQ28uLCBMdGQuCisJCQkJMzE0LCBNYWUtdGFuLWRvbmcsCisJCQkJUGFpLWRhbC1ndSwgS3lvdW5nLWdpLWRvLAorCQkJCVN1d29uIFN1d29uIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTc5ICAgKGhleCkJCUNvbnRyb2wgQXBwbGljYXRpb25zLCBMdGQuCiswMDAyNzkgICAgIChiYXNlIDE2KQkJQ29udHJvbCBBcHBsaWNhdGlvbnMsIEx0ZC4KKwkJCQkzIFRldnVvdCBIYWFyZXRzIFN0LgorCQkJCVRlbC1Bdml2IDY5NTQ2CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTAyLTdBICAgKGhleCkJCUlPSSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDAyN0EgICAgIChiYXNlIDE2KQkJSU9JIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Ri0zIE5vLiAxMjUgTGFuZSAyMzUsCisJCQkJUGFvIENoaWFvIFJvYWQgSHNpbiBUaWVuIENpdHksCisJCQkJVGFpcGVpIFRBSVdBTiwgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi03QiAgIChoZXgpCQlBbXBsaWZ5IE5ldCwgSW5jLgorMDAwMjdCICAgICAoYmFzZSAxNikJCUFtcGxpZnkgTmV0LCBJbmMuCisJCQkJNDczODEgQmF5c2lkZSBQYXJrd2F5CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItN0MgICAoaGV4KQkJVHJpbGl0aGljLCBJbmMuCiswMDAyN0MgICAgIChiYXNlIDE2KQkJVHJpbGl0aGljLCBJbmMuCisJCQkJOTIwMiBFLiAzM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjIzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItN0QgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMjdEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTdFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDI3RSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi03RiAgIChoZXgpCQlhc2stdGVjaG5vbG9naWVzLmNvbQorMDAwMjdGICAgICAoYmFzZSAxNikJCWFzay10ZWNobm9sb2dpZXMuY29tCisJCQkJMzYgV2VsbGluZ3RvbiBCdXNpbmVzcyBQYXJrCisJCQkJRHVrZXMgUmlkZSwgQ3Jvd3Rob3JuZSBCZXJrc2hpcmUgUkc0NSA2TAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLTgwICAgKGhleCkJCU11IE5ldCwgSW5jLgorMDAwMjgwICAgICAoYmFzZSAxNikJCU11IE5ldCwgSW5jLgorCQkJCTQ0MiBNYXJyZXR0IFJvYWQKKwkJCQlTdWl0ZSA5CisJCQkJTGV4aW5ndG9uIE1BIDAyNDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi04MSAgIChoZXgpCQlNYWRnZSBMdGQuCiswMDAyODEgICAgIChiYXNlIDE2KQkJTWFkZ2UgTHRkLgorCQkJCU1hZGdlIEhvdXNlCisJCQkJUHJpb3JzIFdheQorCQkJCU1haW5kZW5oZWFkIEJlcmtzaGlyZSBTTDYgMkhQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDItODIgICAoaGV4KQkJVmlhQ2xpeCwgSW5jLgorMDAwMjgyICAgICAoYmFzZSAxNikJCVZpYUNsaXgsIEluYy4KKwkJCQkxNDAwIERlbGwgQXZlLiwgU3VpdGUgQgorCQkJCUNhbXBiZWxsIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi04MyAgIChoZXgpCQlTcGVjdHJ1bSBDb250cm9scywgSW5jLgorMDAwMjgzICAgICAoYmFzZSAxNikJCVNwZWN0cnVtIENvbnRyb2xzLCBJbmMuCisJCQkJUE8gQm94IDU1MzMKKwkJCQlCZWxsZXZ1ZSBXQSA5ODAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItODQgICAoaGV4KQkJQVJFVkEgVCZECiswMDAyODQgICAgIChiYXNlIDE2KQkJQVJFVkEgVCZECisJCQkJQXZlbnVlIGRlIEZpZ3VpZXJlcyBCUCA3NQorCQkJCTM0OTc1IExBVFRFUyBDZWRleAorCQkJCUZSQU5DRQorCiswMC0wMi04NSAgIChoZXgpCQlSaXZlcnN0b25lIE5ldHdvcmtzCiswMDAyODUgICAgIChiYXNlIDE2KQkJUml2ZXJzdG9uZSBOZXR3b3JrcworCQkJCTUyMDAgR3JlYXQgQW1lcmljYSBQYXJrd2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTg2ICAgKGhleCkJCU9jY2FtIE5ldHdvcmtzCiswMDAyODYgICAgIChiYXNlIDE2KQkJT2NjYW0gTmV0d29ya3MKKwkJCQk0MTgzIFN0YXRlIFN0cmVldAorCQkJCVNhbnRhIEJhcmJhcmEgQ0EgOTMxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTg3ICAgKGhleCkJCUFkYXBjb20KKzAwMDI4NyAgICAgKGJhc2UgMTYpCQlBZGFwY29tCisJCQkJMTcyLUEgQ29tcG9uZW50IERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTg4ICAgKGhleCkJCUdMT0JBTCBWSUxMQUdFIENPTU1VTklDQVRJT04KKzAwMDI4OCAgICAgKGJhc2UgMTYpCQlHTE9CQUwgVklMTEFHRSBDT01NVU5JQ0FUSU9OCisJCQkJMTE0NCBFQVNUIEFSUVVFUyBBVkUuCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi04OSAgIChoZXgpCQlETkUgVGVjaG5vbG9naWVzCiswMDAyODkgICAgIChiYXNlIDE2KQkJRE5FIFRlY2hub2xvZ2llcworCQkJCTUwIEJhcm5lcyBQYXJrIE4KKwkJCQlXYWxsaW5nZm9yZCBDVCAwNjQ5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOEEgICAoaGV4KQkJQW1iaXQgTWljcm9zeXN0ZW1zIENvcnBvcmF0aW9uCiswMDAyOEEgICAgIChiYXNlIDE2KQkJQW1iaXQgTWljcm9zeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJNUYtMSwgNSBIc2luLUFuIFJvYWQgSHNpbmNodSwKKwkJCQlTY2llbmNlIEJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLThCICAgKGhleCkJCVZEU0wgU3lzdGVtcyBPWQorMDAwMjhCICAgICAoYmFzZSAxNikJCVZEU0wgU3lzdGVtcyBPWQorCQkJCVRla25paWthbnRpZSAxMgorCQkJCTAyIDE1MCBFc3BvbworCQkJCUZJTkxBTkQKKwkJCQlGSU5MQU5ECisKKzAwLTAyLThDICAgKGhleCkJCU1pY3JlbC1TeW5lcmd5IFNlbWljb25kdWN0b3IKKzAwMDI4QyAgICAgKGJhc2UgMTYpCQlNaWNyZWwtU3luZXJneSBTZW1pY29uZHVjdG9yCisJCQkJMzI1MCBTY290dCBCb3VsZXZhcmQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOEQgICAoaGV4KQkJTW92aXRhIFRlY2hub2xvZ2llcywgSW5jLgorMDAwMjhEICAgICAoYmFzZSAxNikJCU1vdml0YSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQlOby4gMjYgV3UtQ2h1YW4gN3RoIFJvYWQsCisJCQkJV3UtS3UgSW5kdXN0cmlhbCBQYXJrCisJCQkJVGFpcGVpIFRhaXdhbiwgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi04RSAgIChoZXgpCQlSYXBpZCA1IE5ldHdvcmtzLCBJbmMuCiswMDAyOEUgICAgIChiYXNlIDE2KQkJUmFwaWQgNSBOZXR3b3JrcywgSW5jLgorCQkJCTE4MCBCYXl0ZWNoIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQtMjMwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOEYgICAoaGV4KQkJR2xvYmV0ZWssIEluYy4KKzAwMDI4RiAgICAgKGJhc2UgMTYpCQlHbG9iZXRlaywgSW5jLgorCQkJCTE2MDcgQWtyb24gUGVuaW5zdWxhIFJkLgorCQkJCVN1aXRlIDEwMworCQkJCUFrcm9uIE9IIDQ0MzEzLTUxOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTkwICAgKGhleCkJCVdvb3JpZ2lzb29sLCBJbmMuCiswMDAyOTAgICAgIChiYXNlIDE2KQkJV29vcmlnaXNvb2wsIEluYy4KKwkJCQlZb29wb29uZyBCbGRnLgorCQkJCTE1OTUtMSwgQm9uZ2NodW0tN2RvbmcsCisJCQkJU2VvdWwgU2VvdWwgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItOTEgICAoaGV4KQkJT3BlbiBOZXR3b3JrIENvLiwgTHRkLgorMDAwMjkxICAgICAoYmFzZSAxNikJCU9wZW4gTmV0d29yayBDby4sIEx0ZC4KKwkJCQlTZWlzaGluIEJsZGcuLCAyLTUtMTAgU2hpbmp1a3UKKwkJCQlTaGluanVrdS1rdSwgVG9reW8KKwkJCQlKQVBBTiAxNjAtMDAyMgorCQkJCUpBUEFOCisKKzAwLTAyLTkyICAgKGhleCkJCUxvZ2ljIElubm92YXRpb25zLCBJbmMuCiswMDAyOTIgICAgIChiYXNlIDE2KQkJTG9naWMgSW5ub3ZhdGlvbnMsIEluYy4KKwkJCQk2MjA1IEx1c2sgQmx2ZC4KKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEtMjczMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOTMgICAoaGV4KQkJU29saWQgRGF0YSBTeXN0ZW1zCiswMDAyOTMgICAgIChiYXNlIDE2KQkJU29saWQgRGF0YSBTeXN0ZW1zCisJCQkJMjk0NSBPYWttZWFkIFZpbGxhZ2UgQ291cnQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOTQgICAoaGV4KQkJVG9reW8gU29rdXNoaW4gQ28uLCBMdGQuCiswMDAyOTQgICAgIChiYXNlIDE2KQkJVG9reW8gU29rdXNoaW4gQ28uLCBMdGQuCisJCQkJNS0xNi0xMiBOaXNoaS1OaXBwb3JpCisJCQkJQXJha2F3YS1rdSwgVG9reW8gMTE2LTAwMTMKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAyLTk1ICAgKGhleCkJCUlQLkFjY2VzcyBMaW1pdGVkCiswMDAyOTUgICAgIChiYXNlIDE2KQkJSVAuQWNjZXNzIExpbWl0ZWQKKwkJCQlNZWxib3VybiBTY2llbmNlIFBhcmsKKwkJCQlDYW1icmlkZ2UgUm9hZCwgTWVsYm91cm4gUm95c3RvbiwgSGFydGZvCisJCQkJU0c4IDZFRSBTRzggNkVFIFUuSy4KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMi05NiAgIChoZXgpCQlMZWN0cm9uIENvLC4gTHRkLgorMDAwMjk2ICAgICAoYmFzZSAxNikJCUxlY3Ryb24gQ28sLiBMdGQuCisJCQkJOUYsIE5vLjE3MSwgU2VjLiAyLCBUYXR1bmcgUmQuLAorCQkJCUhzaWNoaWggQ2l0eSwgVGFpcGVpIEhzaWVuIDIyMSwKKwkJCQlUYWl3YW4gVGFpd2FuIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItOTcgICAoaGV4KQkJQy1DT1IubmV0CiswMDAyOTcgICAgIChiYXNlIDE2KQkJQy1DT1IubmV0CisJCQkJNjAgRGVjaWJlbCBSb2FkCisJCQkJQk1TIEVuZ2luZWVyaW5nCisJCQkJU3RhdGUgQ29sbGVnZSBQQSAxNjgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOTggICAoaGV4KQkJQnJvYWRmcmFtZSBDb3Jwb3JhdGlvbgorMDAwMjk4ICAgICAoYmFzZSAxNikJCUJyb2FkZnJhbWUgQ29ycG9yYXRpb24KKwkJCQk1ODI4IE1vb25zdG9uZSBBdmUuCisJCQkJU3VpdGUgMjIwCisJCQkJQWx0YSBMb21hIENBIDkxNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi05OSAgIChoZXgpCQlBcGV4LCBJbmMuCiswMDAyOTkgICAgIChiYXNlIDE2KQkJQXBleCwgSW5jLgorCQkJCTk5MTEgV2lsbG93cyBSZC4gTi5FLgorCQkJCVJlZG1vbmQgV0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTlBICAgKGhleCkJCVN0b3JhZ2UgQXBwcworMDAwMjlBICAgICAoYmFzZSAxNikJCVN0b3JhZ2UgQXBwcworCQkJCTMgUHJpbmNlc3MgUm9hZAorCQkJCUxhd3JlbmNldmlsbGUgTkogMDg2NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTlCICAgKGhleCkJCUtyZWF0ZWwgQ29tbXVuaWNhdGlvbnMgQUIKKzAwMDI5QiAgICAgKGJhc2UgMTYpCQlLcmVhdGVsIENvbW11bmljYXRpb25zIEFCCisJCQkJVGVrbmlrcmluZ2VuIDRDCisJCQkJU0UtNTgzMzAgTGlua29waW5nCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLTAyLTlDICAgKGhleCkJCTNDT00KKzAwMDI5QyAgICAgKGJhc2UgMTYpCQkzQ09NCisJCQkJNDA1IFNQUklORyBISUxMIFJPQUQKKwkJCQlTSEFST04gTkggMDM0NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTlEICAgKGhleCkJCU1lcml4IENvcnAuCiswMDAyOUQgICAgIChiYXNlIDE2KQkJTWVyaXggQ29ycC4KKwkJCQlKaW4tU3UgQnVpbGRpbmcsIDQ5LTE2CisJCQkJTWFjaHVtLURvbmcsIFNvbmctUGEta3UKKwkJCQlTZW91bCBTZW91bCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi05RSAgIChoZXgpCQlJbmZvcm1hdGlvbiBFcXVpcG1lbnQgQ28uLCBMdGQuCiswMDAyOUUgICAgIChiYXNlIDE2KQkJSW5mb3JtYXRpb24gRXF1aXBtZW50IENvLiwgTHRkLgorCQkJCTc0MC0xIEVhaG8gQmxkZy4sIFllb2sgU2FtLURvbmcKKwkJCQlLYW5nbmFtLWt1CisJCQkJU2VvdWwgS29yZWEgIzEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItOUYgICAoaGV4KQkJTC0zIENvbW11bmljYXRpb24gQXZpYXRpb24gUmVjb3JkZXJzCiswMDAyOUYgICAgIChiYXNlIDE2KQkJTC0zIENvbW11bmljYXRpb24gQXZpYXRpb24gUmVjb3JkZXJzCisJCQkJUC5PLiBCb3ggMzA0MQorCQkJCVNhcmFzb3RhIEZMIDM0MjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1BMCAgIChoZXgpCQlGbGF0c3RhY2sgTHRkLgorMDAwMkEwICAgICAoYmFzZSAxNikJCUZsYXRzdGFjayBMdGQuCisJCQkJMTExMiBCdWRhcGVzdAorCQkJCVBldGVyaGVneWkgVVQgOTgKKwkJCQlIVU5HQVJZCisJCQkJSFVOR0FSWQorCiswMC0wMi1BMSAgIChoZXgpCQlXb3JsZCBXaWRlIFBhY2tldHMKKzAwMDJBMSAgICAgKGJhc2UgMTYpCQlXb3JsZCBXaWRlIFBhY2tldHMKKwkJCQlQTyBCb3ggMTQ2NDUKKwkJCQlTcG9rYW5lIFdBIDk5MjE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1BMiAgIChoZXgpCQlIaWxzY2hlciBHbWJICiswMDAyQTIgICAgIChiYXNlIDE2KQkJSGlsc2NoZXIgR21iSAorCQkJCVJoZWluc3RyYXNzZSAxNQorCQkJCTY1Nzk1IEhhdHRlcnNoZWltCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDItQTMgICAoaGV4KQkJQUJCIFN3aXR6ZXJsYW5kIEx0ZCwgUG93ZXIgU3lzdGVtcworMDAwMkEzICAgICAoYmFzZSAxNikJCUFCQiBTd2l0emVybGFuZCBMdGQsIFBvd2VyIFN5c3RlbXMKKwkJCQlCcnVnZ2Vyc3RyYXNzZSA3MgorCQkJCUNILTU0MDAKKwkJCQlCYWRlbiAgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMDItQTQgICAoaGV4KQkJQWRkUGFjIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDAyQTQgICAgIChiYXNlIDE2KQkJQWRkUGFjIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJM0YgSmVvdW5nIEFtIEJsZGcuLCA3NjktMTIKKwkJCQlZZW9rc2FtLWRvbmcsIEthbmduYW0tZ3UsCisJCQkJU2VvdWwgU2VvdWwgS29yZWEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItQTUgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDAyQTUgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUE2ICAgKGhleCkJCUVmZmluZXQgU3lzdGVtcyBDby4sIEx0ZC4KKzAwMDJBNiAgICAgKGJhc2UgMTYpCQlFZmZpbmV0IFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJWXVnb25nIEJsZGcuIDUwMgorCQkJCTExNDQtMSwgU2FuYm9uLURvbmcgS3VucG8tc2hpLCBLeW9uZ2dpLUQKKwkJCQlLb3JlYQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi1BNyAgIChoZXgpCQlWaXZhY2UgTmV0d29ya3MKKzAwMDJBNyAgICAgKGJhc2UgMTYpCQlWaXZhY2UgTmV0d29ya3MKKwkJCQkyNzMwIE9yY2hhcmQgUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1BOCAgIChoZXgpCQlBaXIgTGluayBUZWNobm9sb2d5CiswMDAyQTggICAgIChiYXNlIDE2KQkJQWlyIExpbmsgVGVjaG5vbG9neQorCQkJCUJldGhlbCBCbGRnLiAzMDMKKwkJCQkzMjQtMSBZYW5namVlLURvbmcsIFNlb2Noby1HdQorCQkJCVNlb3VsIEtPUkVBIDEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItQTkgICAoaGV4KQkJUkFDT00sIHMuci5vLgorMDAwMkE5ICAgICAoYmFzZSAxNikJCVJBQ09NLCBzLnIuby4KKwkJCQlNaXJvdmEgMTI4MywgTm92ZSBNZXN0byBuYSBNb3JhdmUKKwkJCQk1OTIgMzEgQ3plY2ggcmVwdWJsaWMKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0wMi1BQSAgIChoZXgpCQlQTGNvbSBDby4sIEx0ZC4KKzAwMDJBQSAgICAgKGJhc2UgMTYpCQlQTGNvbSBDby4sIEx0ZC4KKwkJCQlIb3N1bmcgQi9ELCAjMTA4My0xLCBIb2d5ZS1Eb25nCisJCQkJRG9uZ2FuLUt1LCBBbnlhbmctQ2l0eQorCQkJCVNvdXRoIEtvcmVhCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLUFCICAgKGhleCkJCUNUQyBVbmlvbiBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDAyQUIgICAgIChiYXNlIDE2KQkJQ1RDIFVuaW9uIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQk4RiBOby4gNjAgWmhvdXppIFN0LgorCQkJCU5laWh1IFRhaXBlaSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLUFDICAgKGhleCkJCTNQQVIgZGF0YQorMDAwMkFDICAgICAoYmFzZSAxNikJCTNQQVIgZGF0YQorCQkJCTQyMDkgVGVjaG5vbG9neSBEcml2ZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUFEICAgKGhleCkJCUhPWUEgQ29ycG9yYXRpb24KKzAwMDJBRCAgICAgKGJhc2UgMTYpCQlIT1lBIENvcnBvcmF0aW9uCisJCQkJMi03LTUgTmFrYS1PY2hpYWksIFNoaW5qdWt1LWt1LAorCQkJCVRva3lvIDE2MS04NTI1CisJCQkJSkFQQU4KKworMDAtMDItQUUgICAoaGV4KQkJU2Nhbm5leCBFbGVjdHJvbmljcyBMdGQuCiswMDAyQUUgICAgIChiYXNlIDE2KQkJU2Nhbm5leCBFbGVjdHJvbmljcyBMdGQuCisJCQkJVW5pdCA4IEVuZ2xpc2ggQnVzaW5lc3MgUGFyaworCQkJCUVuZ2xpc2ggQ2xvc2UKKwkJCQlIb3ZlICBCTjMgN0VUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDItQUYgICAoaGV4KQkJVGVsZUNydXogVGVjaG5vbG9neSwgSW5jLgorMDAwMkFGICAgICAoYmFzZSAxNikJCVRlbGVDcnV6IFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyMzkxIFF1bWUgRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUIwICAgKGhleCkJCUhva3VidSBDb21tdW5pY2F0aW9uICYgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzAwMDJCMCAgICAgKGJhc2UgMTYpCQlIb2t1YnUgQ29tbXVuaWNhdGlvbiAmIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJRnVzaGlvZ2FtaS1hemEtb2tpIDI3LTEKKwkJCQlGdWt1c2hpbWEgIDk2MC04NTE0CisJCQkJSkFQQU4KKworMDAtMDItQjEgICAoaGV4KQkJQW5yaXRzdSwgTHRkLgorMDAwMkIxICAgICAoYmFzZSAxNikJCUFucml0c3UsIEx0ZC4KKwkJCQlSdXRoZXJmb3JkIENsb3NlCisJCQkJU3RldmVuYWdlLCBIZXJ0cyBFbmdsYW5kLCBTRzEyRUYKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLUIyICAgKGhleCkJCUNhYmxldmlzaW9uCiswMDAyQjIgICAgIChiYXNlIDE2KQkJQ2FibGV2aXNpb24KKwkJCQk0MjAgQ3Jvc3N3YXlzIFBhcmsgRHJpdmUgV2VzdAorCQkJCVdvb2RidXJ5IE5ZIDExNzg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1CMyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAwMkIzICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTS9TOiAgSkYzLTQyMAorCQkJCTIxMTEgTi5FLiAyNXRoIEF2ZS4KKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUI0ICAgKGhleCkJCURBUEhORQorMDAwMkI0ICAgICAoYmFzZSAxNikJCURBUEhORQorCQkJCTEwMSBDaGF1c3NlZSBEZSBCaW5jaGUKKwkJCQk3MDAwIEhvbnMKKwkJCQlCRUxHSVVNCisJCQkJQkVMR0lVTQorCiswMC0wMi1CNSAgIChoZXgpCQlBdm5ldCwgSW5jLgorMDAwMkI1ICAgICAoYmFzZSAxNikJCUF2bmV0LCBJbmMuCisJCQkJMjIxMSBTLiA0N3RoIFN0cmVldAorCQkJCVBob2VuaXggQVogODUwMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUI2ICAgKGhleCkJCUFjcm9zc2VyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDAyQjYgICAgIChiYXNlIDE2KQkJQWNyb3NzZXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gMTE2LTIgR3VhbmctRnUgUmQuCisJCQkJU2VhIDEsIFNhbiBDaHVuZywKKwkJCQlUYWlwZWkgVGFpcGVpIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItQjcgICAoaGV4KQkJV2F0YW5hYmUgRWxlY3RyaWMgSW5kdXN0cnkgQ28uLCBMdGQuCiswMDAyQjcgICAgIChiYXNlIDE2KQkJV2F0YW5hYmUgRWxlY3RyaWMgSW5kdXN0cnkgQ28uLCBMdGQuCisJCQkJNi0xNi0xOSwgSmluZ3VtYWUsIFNoaWJ1eWEta3UKKwkJCQlUb2t5byAxNTAtMDAwMSwKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAyLUI4ICAgKGhleCkJCVdISSBLT05TVUxUIEFCCiswMDAyQjggICAgIChiYXNlIDE2KQkJV0hJIEtPTlNVTFQgQUIKKwkJCQlTY2hlZWxlZ2F0YW4gMTEKKwkJCQkxMjA0MCBBcnN0YQorCQkJCVN0b2NraG9sbSBTRS0xMTIgMjgKKwkJCQlTV0VERU4KKworMDAtMDItQjkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMkI5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUJBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDJCQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1CQiAgIChoZXgpCQlDb250aW51b3VzIENvbXB1dGluZyBDb3JwCiswMDAyQkIgICAgIChiYXNlIDE2KQkJQ29udGludW91cyBDb21wdXRpbmcgQ29ycAorCQkJCTkzODAgQ2Fycm9sbCBQYXJrIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1CQyAgIChoZXgpCQlMVkwgNyBTeXN0ZW1zLCBJbmMuCiswMDAyQkMgICAgIChiYXNlIDE2KQkJTFZMIDcgU3lzdGVtcywgSW5jLgorCQkJCTEzMDAwIFdlc3RvbiBQa3d5CisJCQkJU3VpdGUgMTA1CisJCQkJQ2FyeSBOQyAyNzUxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItQkQgICAoaGV4KQkJQmlvbmV0IENvLiwgTHRkLgorMDAwMkJEICAgICAoYmFzZSAxNikJCUJpb25ldCBDby4sIEx0ZC4KKwkJCQkzRiwgTWVkaXNvbiBWZW50dXJlIFRvd2VyLAorCQkJCTk5Ny00LCBEYWVjaGktZG9uZywgS2FuZ25hbS1ndSwgU2VvdWwsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItQkUgICAoaGV4KQkJVG90c3UgRW5naW5lZXJpbmcsIEluYy4KKzAwMDJCRSAgICAgKGJhc2UgMTYpCQlUb3RzdSBFbmdpbmVlcmluZywgSW5jLgorCQkJCSA1LTE2LTIwIFJvcHBvbmdpIE1pbmF0by1rdQorCQkJCVppcDogIDEwNi0wMDMyCisJCQkJVG9reW8gIDEwNi04NTUxCisJCQkJSkFQQU4KKworMDAtMDItQkYgICAoaGV4KQkJZG90Um9ja2V0LCBJbmMuCiswMDAyQkYgICAgIChiYXNlIDE2KQkJZG90Um9ja2V0LCBJbmMuCisJCQkJMTkwMSBTLiBCYXNjb20sIFN1aXRlIDMwMAorCQkJCUNhbXBiZWxsIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1DMCAgIChoZXgpCQlCZW5jZW50IFR6ZW5nIEluZHVzdHJ5IENvLiwgTHRkLgorMDAwMkMwICAgICAoYmFzZSAxNikJCUJlbmNlbnQgVHplbmcgSW5kdXN0cnkgQ28uLCBMdGQuCisJCQkJM3JkIGZsLiwgTm8uIDMgUnVleSBLdWFuZyBSZC4sCisJCQkJTmVpIEh1IERpc3QuLCBUYWlwZWkgMTE0CisJCQkJVGFpd2FuIFRhaXdhbiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLUMxICAgKGhleCkJCUlubm92YXRpdmUgRWxlY3Ryb25pYyBEZXNpZ25zLCBJbmMuCiswMDAyQzEgICAgIChiYXNlIDE2KQkJSW5ub3ZhdGl2ZSBFbGVjdHJvbmljIERlc2lnbnMsIEluYy4KKwkJCQk5NzAxIFRheWxvcnN2aWxsZSBSZC4KKwkJCQlMb3Vpc3ZpbGxlIEtZIDQwMjk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1DMiAgIChoZXgpCQlOZXQgVmlzaW9uIFRlbGVjb20KKzAwMDJDMiAgICAgKGJhc2UgMTYpCQlOZXQgVmlzaW9uIFRlbGVjb20KKwkJCQkjMjA2IFNvZnR3YXJlIFN1cHBvcnQgQ2VudGVyCisJCQkJNDggSmFuZy1Eb25nIFl1c29uZy1HdSwgVGFlam9uCisJCQkJMzA1LTM0MyBSZXAuIG9mIEtvcmVhCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLUMzICAgKGhleCkJCUFyZWxuZXQgTHRkLgorMDAwMkMzICAgICAoYmFzZSAxNikJCUFyZWxuZXQgTHRkLgorCQkJCTMgSGF5YXJkZW4gU3QuCisJCQkJWWF2bmUgNzA2MDAKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDItQzQgICAoaGV4KQkJVmVjdG9yIEludGVybmF0aW9uYWwgQlZCQQorMDAwMkM0ICAgICAoYmFzZSAxNikJCVZlY3RvciBJbnRlcm5hdGlvbmFsIEJWQkEKKwkJCQlUZWNobm9sb2dpZWxhYW4gNAorCQkJCTMwMDEgTGV1dmVuIAorCQkJCUJFTEdJVU0KKworMDAtMDItQzUgICAoaGV4KQkJRXZlcnR6IE1pY3Jvc3lzdGVtcyBMdGQuCiswMDAyQzUgICAgIChiYXNlIDE2KQkJRXZlcnR6IE1pY3Jvc3lzdGVtcyBMdGQuCisJCQkJNTI4OCBKb2huIEx1Y2FzIERyaXZlCisJCQkJQnVybGluZ3RvbgorCQkJCU9udGFyaW8gTDdMIDVaOQorCQkJCUNBTkFEQQorCiswMC0wMi1DNiAgIChoZXgpCQlEYXRhIFRyYWNrIFRlY2hub2xvZ3kgUExDCiswMDAyQzYgICAgIChiYXNlIDE2KQkJRGF0YSBUcmFjayBUZWNobm9sb2d5IFBMQworCQkJCTE1MyBTb21lcmZvcmQgUm9hZAorCQkJCUNocmlzdGNodXJjaCwgRG9yc2V0IEJIMjMgM1RZLAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDItQzcgICAoaGV4KQkJQUxQUyBFTEVDVFJJQyBDby4sIEx0ZC4KKzAwMDJDNyAgICAgKGJhc2UgMTYpCQlBTFBTIEVMRUNUUklDIENvLiwgTHRkLgorCQkJCTEtMi0xLCBPa2lub3VjaGksIFNhbWEtQ2l0eSwKKwkJCQlGdWt1c2hpbWEtcHJlZiwgOTc2LTg1MDEsCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMi1DOCAgIChoZXgpCQlUZWNobm9jb20gQ29tbXVuaWNhdGlvbnMgVGVjaG5vbG9neSAocHRlKSBMdGQKKzAwMDJDOCAgICAgKGJhc2UgMTYpCQlUZWNobm9jb20gQ29tbXVuaWNhdGlvbnMgVGVjaG5vbG9neSAocHRlKSBMdGQKKwkJCQkxODkgS2FraSBCdWNraXQgQXZlbnVlIDEKKwkJCQkjMDMtMDMgU2h1biBMaSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTaW5nYXBvcmUgNDE2MDI5CisJCQkJU0lOR0FQT1JFCisKKzAwLTAyLUM5ICAgKGhleCkJCU1lbGxhbm94IFRlY2hub2xvZ2llcworMDAwMkM5ICAgICAoYmFzZSAxNikJCU1lbGxhbm94IFRlY2hub2xvZ2llcworCQkJCTM1MCBPYWttZWFkIFBhcmt3YXkKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUNBICAgKGhleCkJCUVuZFBvaW50cywgSW5jLgorMDAwMkNBICAgICAoYmFzZSAxNikJCUVuZFBvaW50cywgSW5jLgorCQkJCTQgUHJlc3RvbiBDb3VydAorCQkJCUJlZGZvcmQgTUEgMDE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUNCICAgKGhleCkJCVRyaVN0YXRlIEx0ZC4KKzAwMDJDQiAgICAgKGJhc2UgMTYpCQlUcmlTdGF0ZSBMdGQuCisJCQkJU2hpbm9uYWdhIEJsZy4gNC0xMS0xOSBIb2trby1jaG8KKwkJCQlUb21ha29tYWktc2hpLCBIb2trYWlkbworCQkJCTA1My0wODUyIDA1My0wODUyIEphcGFuCisJCQkJSkFQQU4KKworMDAtMDItQ0MgICAoaGV4KQkJTS5DLkMuSQorMDAwMkNDICAgICAoYmFzZSAxNikJCU0uQy5DLkkKKwkJCQkzNTIwIEtydW1zIENvcm5lcnMgUmQuCisJCQkJSXRoYWNhIE5ZIDE0ODUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1DRCAgIChoZXgpCQlUZWxlRHJlYW0sIEluYy4KKzAwMDJDRCAgICAgKGJhc2UgMTYpCQlUZWxlRHJlYW0sIEluYy4KKwkJCQlTaGluaHdhIEJsZGcuLCA5NDAtMTAgRGFlY2hpLURvbmcKKwkJCQlLYW5nbmFtLWt1LCBTZW91bCAxMzUtMjgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLUNFICAgKGhleCkJCUZveEpldCwgSW5jLgorMDAwMkNFICAgICAoYmFzZSAxNikJCUZveEpldCwgSW5jLgorCQkJCTIwMTYgRS4gUmFuZGFsIE1pbGwgUmQuICM0MDkKKwkJCQlBcmxpbmd0b24gVFggNzYwMTEtODIyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItQ0YgICAoaGV4KQkJWnlHYXRlIENvbW11bmljYXRpb25zLCBJbmMuCiswMDAyQ0YgICAgIChiYXNlIDE2KQkJWnlHYXRlIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMkYsIE5vLjQ4LCBMdW5nLUNoaW4gUm9hZAorCQkJCUx1bmctVGFuLCBUYW55dWFuLAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItRDAgICAoaGV4KQkJQ29tZGlhbCBDb3Jwb3JhdGlvbgorMDAwMkQwICAgICAoYmFzZSAxNikJCUNvbWRpYWwgQ29ycG9yYXRpb24KKwkJCQkxMTgwIFNlbWlub2xlIFRyYWlsCisJCQkJQ2hhcmxvdHRlc3ZpbGxlIFZBIDIyOTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1EMSAgIChoZXgpCQlWaXZvdGVrLCBJbmMuCiswMDAyRDEgICAgIChiYXNlIDE2KQkJVml2b3RlaywgSW5jLgorCQkJCTVGLTEsIDE2OC0xLCBMaWVuLUNoZW4gUmQsCisJCQkJQ2h1bmctSG8sIFRhaXBlaSBDb3VudHksCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi1EMiAgIChoZXgpCQlXb3Jrc3RhdGlvbiBBRworMDAwMkQyICAgICAoYmFzZSAxNikJCVdvcmtzdGF0aW9uIEFHCisJCQkJU2NoYWZmaGF1c2Vyc3RyLiA1NQorCQkJCUNILTgxNTIgR2xhdHRicnVnZworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTAyLUQzICAgKGhleCkJCU5ldEJvdHosIEluYy4KKzAwMDJEMyAgICAgKGJhc2UgMTYpCQlOZXRCb3R6LCBJbmMuCisJCQkJMTEwMDQ0IFJlc2VhcmNoIEJsdmQuCisJCQkJU3VpdGUgQy0xMDAKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUQ0ICAgKGhleCkJCVBEQSBQZXJpcGhlcmFscywgSW5jLgorMDAwMkQ0ICAgICAoYmFzZSAxNikJCVBEQSBQZXJpcGhlcmFscywgSW5jLgorCQkJCTIwNSBPcmFuZ2UgU3QuCisJCQkJVGhpcmQgRmxvb3IKKwkJCQlOZXcgSGF2ZW4gQ1QgMDY1MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUQ1ICAgKGhleCkJCUFDUgorMDAwMkQ1ICAgICAoYmFzZSAxNikJCUFDUgorCQkJCUNhcmRvdWxpbmVzIEIyCisJCQkJMTM2MCBydGUgRG9saW5pcyAwNjU2MCBWYWxib25uZQorCQkJCUZSQU5DRQorCiswMC0wMi1ENiAgIChoZXgpCQlOSUNFIFN5c3RlbXMKKzAwMDJENiAgICAgKGJhc2UgMTYpCQlOSUNFIFN5c3RlbXMKKwkJCQk4IEhhcG5pbmEgU3QuLCBQT0IgNjkwCisJCQkJUmEnQW5hbmEgNDMxMDcKKwkJCQlJU1JBRUwKKworMDAtMDItRDcgICAoaGV4KQkJRU1QRUcgTHRkCiswMDAyRDcgICAgIChiYXNlIDE2KQkJRU1QRUcgTHRkCisJCQkJMSBTaWduZXQgQ291cnQKKwkJCQlTd2FubidzIFJvYWQgQ2FtYnJpZGdlLCBVSworCQkJCUNCNSA4TEEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMi1EOCAgIChoZXgpCQlCUkVDSVMgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzAwMDJEOCAgICAgKGJhc2UgMTYpCQlCUkVDSVMgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKwkJCQkyMDI1IEdhdGV3YXkgUGxhY2UsIFN1aXRlIDEzMgorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1EOSAgIChoZXgpCQlSZWxpYWJsZSBDb250cm9scworMDAwMkQ5ICAgICAoYmFzZSAxNikJCVJlbGlhYmxlIENvbnRyb2xzCisJCQkJMTIwIEhhbGxvd2VsbCBSb2FkCisJCQkJVmljdG9yaWEsICBCLkMuIFY5QSA3SzIKKwkJCQlDQU5BREEKKworMDAtMDItREEgICAoaGV4KQkJRXhpTyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMkRBICAgICAoYmFzZSAxNikJCUV4aU8gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyMzYyIFF1bWUgRHJpdmUKKwkJCQlTdWl0ZSBDCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLURCICAgKGhleCkJCU5FVFNFQworMDAwMkRCICAgICAoYmFzZSAxNikJCU5FVFNFQworCQkJCTEzNTA1IER1bGxlcyBUZWNobm9sb2d5IERyaXZlCisJCQkJU3VpdGUgMQorCQkJCUhlcm5hbmRvbiBWQSAyMDE3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItREMgICAoaGV4KQkJRnVqaXRzdSBHZW5lcmFsIExpbWl0ZWQKKzAwMDJEQyAgICAgKGJhc2UgMTYpCQlGdWppdHN1IEdlbmVyYWwgTGltaXRlZAorCQkJCTExMTYsIFN1ZW5hZ2EsIFRha2F0c3UtS3UsCisJCQkJS2F3YXNha2ktQ2l0eSwgS2FuYWdhd2EtUHJlZi4sCisJCQkJMjEzLTg1MDIgCisJCQkJSkFQQU4KKworMDAtMDItREQgICAoaGV4KQkJQnJvbWF4IENvbW11bmljYXRpb25zLCBMdGQuCiswMDAyREQgICAgIChiYXNlIDE2KQkJQnJvbWF4IENvbW11bmljYXRpb25zLCBMdGQuCisJCQkJTm8uIDIwIEt1YW5nIEZ1IFJvYWQsCisJCQkJSHNpbiBDaHUgSW5kdXN0cmlhbCBQYXJrLCBIdSBLb3UsCisJCQkJSHNpbiBDaHUgMzAzICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLURFICAgKGhleCkJCUFzdHJvZGVzaWduLCBJbmMuCiswMDAyREUgICAgIChiYXNlIDE2KQkJQXN0cm9kZXNpZ24sIEluYy4KKwkJCQkyLTIyLTEyIEthbWlrb2RhbmEgS2EKKwkJCQlOYWthaGFyYWt1LCBLYXdhc2FpLUNpdHkKKwkJCQlLYW5hZ2F3YSAgCisJCQkJSkFQQU4KKworMDAtMDItREYgICAoaGV4KQkJTmV0IENvbSBTeXN0ZW1zLCBJbmMuCiswMDAyREYgICAgIChiYXNlIDE2KQkJTmV0IENvbSBTeXN0ZW1zLCBJbmMuCisJCQkJMTUtMywgWW9pZG8tRG9uZywKKwkJCQlZZW91bmdkb25ncG8ta3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi1FMCAgIChoZXgpCQlFVEFTIEdtYkgKKzAwMDJFMCAgICAgKGJhc2UgMTYpCQlFVEFTIEdtYkgKKwkJCQlCb3JzaWdzdHJhc3NlIDEwCisJCQkJRDcwNDY5IFN0dXR0Z2FydAorCQkJCUdFUk1BTlkKKworMDAtMDItRTEgICAoaGV4KQkJSW50ZWdyYXRlZCBOZXR3b3JrIENvcnBvcmF0aW9uCiswMDAyRTEgICAgIChiYXNlIDE2KQkJSW50ZWdyYXRlZCBOZXR3b3JrIENvcnBvcmF0aW9uCisJCQkJNzU3IFJvdXRlIDIwMi8yMDYKKwkJCQlCcmlkZ2V3YXRlciBOSiAwODgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItRTIgICAoaGV4KQkJTkRDIEluZmFyZWQgRW5naW5lZXJpbmcKKzAwMDJFMiAgICAgKGJhc2UgMTYpCQlOREMgSW5mYXJlZCBFbmdpbmVlcmluZworCQkJCTUzMTQgTi4gSXJ3aW5kYWxlIEF2ZS4KKwkJCQlJcndpbmRhbGUgQ0EgOTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUUzICAgKGhleCkJCUxJVEUtT04gQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDJFMyAgICAgKGJhc2UgMTYpCQlMSVRFLU9OIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNzM2IFMuIEhpbGx2aWV3IERyaXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUU0ICAgKGhleCkJCUpDIEhZVU4gU3lzdGVtcywgSW5jLgorMDAwMkU0ICAgICAoYmFzZSAxNikJCUpDIEhZVU4gU3lzdGVtcywgSW5jLgorCQkJCVNoaW5ib25nIEJsZGcsIDczNi02LAorCQkJCVlva3NhbS1Eb25nLCBLYW5nbmFtLUt1LAorCQkJCVNlb3VsICAoMTM1LTA4MCkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItRTUgICAoaGV4KQkJVGltZXdhcmUgTHRkLgorMDAwMkU1ICAgICAoYmFzZSAxNikJCVRpbWV3YXJlIEx0ZC4KKwkJCQlCcm9va2ZpZWxkIEdyYW5nZQorCQkJCTc5IEZhbGluZ2UgUmQsIFJvY2tkYWxlCisJCQkJTGFuY3MgIDA0MiBHTEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMi1FNiAgIChoZXgpCQlHb3VsZCBJbnN0cnVtZW50IFN5c3RlbXMsIEluYy4KKzAwMDJFNiAgICAgKGJhc2UgMTYpCQlHb3VsZCBJbnN0cnVtZW50IFN5c3RlbXMsIEluYy4KKwkJCQk4MzMzIFJvY2tzaWRlIFJvYWQKKwkJCQlWYWxsZXkgVmlldyBPSCA0NDEyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItRTcgICAoaGV4KQkJQ0FCIEdtYkggJiBDbyBLRworMDAwMkU3ICAgICAoYmFzZSAxNikJCUNBQiBHbWJIICYgQ28gS0cKKwkJCQlXaWxoZWxtLVNjaGlja2FyZC1TdHIgMTQKKwkJCQk3NjEzMSBLYXJsc3J1aGUKKwkJCQlHRVJNQU5ZCisKKzAwLTAyLUU4ICAgKGhleCkJCUUuRC4mQS4KKzAwMDJFOCAgICAgKGJhc2UgMTYpCQlFLkQuJkEuCisJCQkJRW5lcmdpZWxhYW4gMTYKKwkJCQlJWiBCb3NkdWluIDI5NTAgS2FwZWxsZW4KKwkJCQlCRUxHSVVNCisKKzAwLTAyLUU5ICAgKGhleCkJCUNTIFN5c3RlbWVzIERlIFNlY3VyaXRlIC0gQzNTCiswMDAyRTkgICAgIChiYXNlIDE2KQkJQ1MgU3lzdGVtZXMgRGUgU2VjdXJpdGUgLSBDM1MKKwkJCQkyMywgcnVlIGRlIFNjaHdvYnNoZWltCisJCQkJNjc2MDAgQmFsZGVuaGVpbQorCQkJCUZSQU5DRQorCiswMC0wMi1FQSAgIChoZXgpCQlGb2N1cyBFbmhhbmNlbWVudHMKKzAwMDJFQSAgICAgKGJhc2UgMTYpCQlGb2N1cyBFbmhhbmNlbWVudHMKKwkJCQkxMzcwIERlbGwgQXZlLgorCQkJCUNhbXBiZWxsIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1FQiAgIChoZXgpCQlQaWNvIENvbW11bmljYXRpb25zCiswMDAyRUIgICAgIChiYXNlIDE2KQkJUGljbyBDb21tdW5pY2F0aW9ucworCQkJCTIwMDg1IFN0ZXZlbnMgQ3JlZWsgQmx2ZC4KKwkJCQlTdWl0ZSAjMTAwCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1FQyAgIChoZXgpCQlNYXNjaG9mZiBEZXNpZ24gRW5naW5lZXJpbmcKKzAwMDJFQyAgICAgKGJhc2UgMTYpCQlNYXNjaG9mZiBEZXNpZ24gRW5naW5lZXJpbmcKKwkJCQk0NDU0IENlZGFyIExha2UgUmQuICM4CisJCQkJU3QuIExvdWlzIFBhcmsgTU4gNTU0MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUVEICAgKGhleCkJCURYTyBUZWxlY29tIENvLiwgTHRkLgorMDAwMkVEICAgICAoYmFzZSAxNikJCURYTyBUZWxlY29tIENvLiwgTHRkLgorCQkJCThGLCAzMDAtMTEsIFl1bWdvay1Eb25nLAorCQkJCVNlb2Noby1LdSwgU2VvdWwgMTM3LTc4OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi1FRSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAwMkVFICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqLCBDb3BlbmhhZ2VuIFYKKwkJCQlESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0wMi1FRiAgIChoZXgpCQlDQ0MgTmV0d29yayBTeXN0ZW1zIEdyb3VwIEx0ZC4KKzAwMDJFRiAgICAgKGJhc2UgMTYpCQlDQ0MgTmV0d29yayBTeXN0ZW1zIEdyb3VwIEx0ZC4KKwkJCQkxMyBGYXJuYm9yb3VnaCBCdXNpbmVzcyBDZW50cmUKKwkJCQlFZWxtb29yIFJvYWQsIEZhcm5ib3JvdWdoLCBIYW50cywgR1UxNCA3CisJCQkJRU5HTEFORCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMi1GMCAgIChoZXgpCQlBTUUgT3B0aW1lZGlhIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDAyRjAgICAgIChiYXNlIDE2KQkJQU1FIE9wdGltZWRpYSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTE3Ri0yLCA3OSBIc2luIFRhaSBXdSBSb2FkLCBTZWMuIDEsCisJCQkJSHNpLUNoaWgsIFRhaXBlaSBIc2llbgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItRjEgICAoaGV4KQkJUGluZXRyb24gQ28uLCBMdGQuCiswMDAyRjEgICAgIChiYXNlIDE2KQkJUGluZXRyb24gQ28uLCBMdGQuCisJCQkJQmxkZy4gIzE1OTktMTEsCisJCQkJU2VvY2hvLURvbmcsIFNlb2Noby1LdSwKKwkJCQlTZW91bCAgMTM3LTA3MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi1GMiAgIChoZXgpCQllRGV2aWNlLCBJbmMuCiswMDAyRjIgICAgIChiYXNlIDE2KQkJZURldmljZSwgSW5jLgorCQkJCTQyMCBMZXhpbmd0b24gQXZlbnVlCisJCQkJU3VpdGUgMjMwMAorCQkJCU5ldyBZb3JrIE5ZIDEwMTcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1GMyAgIChoZXgpCQlNZWRpYSBTZXJ2ZSBDby4sIEx0ZC4KKzAwMDJGMyAgICAgKGJhc2UgMTYpCQlNZWRpYSBTZXJ2ZSBDby4sIEx0ZC4KKwkJCQlEb25nc3VuZyBCbGRnLiAjMTctOCwgWW91aWRvLWRvbmcsCisJCQkJWW91bmdkZW91bmdwby1rdSwKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLUY0ICAgKGhleCkJCVBDVEVMLCBJbmMuCiswMDAyRjQgICAgIChiYXNlIDE2KQkJUENURUwsIEluYy4KKwkJCQkxMzMxIENhbGlmb3JuaWEgQ2lyY2xlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUY1ICAgKGhleCkJCVZJVkUgU3luZXJnaWVzLCBJbmMuCiswMDAyRjUgICAgIChiYXNlIDE2KQkJVklWRSBTeW5lcmdpZXMsIEluYy4KKwkJCQkzMCBXZXN0IEJlYXZlciBDcmVlayBSb2FkLCBVbml0IDEwMQorCQkJCVJpY2htb25kIEhpbGwsIE9udGFyaW8KKwkJCQlMNEIgM0sxCisJCQkJQ0FOQURBCisKKzAwLTAyLUY2ICAgKGhleCkJCUVxdWlwZSBDb21tdW5pY2F0aW9ucworMDAwMkY2ICAgICAoYmFzZSAxNikJCUVxdWlwZSBDb21tdW5pY2F0aW9ucworCQkJCTEwMCBOYWdvZyBQYXJrCisJCQkJQWN0b24gTUEgMDE3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUY3ICAgKGhleCkJCUFSTQorMDAwMkY3ICAgICAoYmFzZSAxNikJCUFSTQorCQkJCTExMCwgRnVsYm91cm4gUm9hZAorCQkJCUNoZXJyeSBIaW50b24gQ2FtYnJpZGdlCisJCQkJQ0IxIDlOSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLUY4ICAgKGhleCkJCVNFQUtSIEVuZ2luZWVyaW5nLCBJbmMuCiswMDAyRjggICAgIChiYXNlIDE2KQkJU0VBS1IgRW5naW5lZXJpbmcsIEluYy4KKwkJCQkxMjg0NyBFLiBQZWFrdmlldyBBdmUuCisJCQkJRW5nbGV3b29kIENPIDgwMTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1GOSAgIChoZXgpCQlNaW1vcyBTZW1pY29uZHVjdG9yIFNETiBCSEQKKzAwMDJGOSAgICAgKGJhc2UgMTYpCQlNaW1vcyBTZW1pY29uZHVjdG9yIFNETiBCSEQKKwkJCQlUYW1hbiBUZWtub2xvZ2kgTWFsYXlzaWEKKwkJCQlCdWtpdCBKYWxpbCA1NzAwMCBLdWFsYSBMdW1wdXIsCisJCQkJTUFMQVlTSUEKKworMDAtMDItRkEgICAoaGV4KQkJRFggQW50ZW5uYSBDby4sIEx0ZC4KKzAwMDJGQSAgICAgKGJhc2UgMTYpCQlEWCBBbnRlbm5hIENvLiwgTHRkLgorCQkJCTItMTUgSGFtYXpha2ktRG9yaSwKKwkJCQlIeW9nby1rdSwgS29iZQorCQkJCUpBUEFOCisKKzAwLTAyLUZCICAgKGhleCkJCUJhdW11bGxlciBBdWx1Z2VuLVN5c3RlbXRlY2huaWsgR21iSAorMDAwMkZCICAgICAoYmFzZSAxNikJCUJhdW11bGxlciBBdWx1Z2VuLVN5c3RlbXRlY2huaWsgR21iSAorCQkJCU9zdGVuZHN0cy4gODQKKwkJCQlELTkwNDgyIE51cnViZXJnCisJCQkJR0VSTUFOWQorCiswMC0wMi1GQyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAyRkMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItRkQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMkZEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUZFICAgKGhleCkJCVZpZGl0ZWMsIEluYy4KKzAwMDJGRSAgICAgKGJhc2UgMTYpCQlWaWRpdGVjLCBJbmMuCisJCQkJNTIwIENlbnRyYWwgUGFya3dheSBFLgorCQkJCVN1aXRlIDExNQorCQkJCVBsYW5vIFRYIDc1MDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1GRiAgIChoZXgpCQlIYW5kYW4gQnJvYWRJbmZvQ29tCiswMDAyRkYgICAgIChiYXNlIDE2KQkJSGFuZGFuIEJyb2FkSW5mb0NvbQorCQkJCTV0aCBGbC4gU2hpbnN1bmcgUGxhemEgIzY5Ny0xMQorCQkJCVllb2dzYW0tZG9uZywgS2FuZ25hbS1ndQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMDAgICAoaGV4KQkJQmFycmFjdWRhIE5ldHdvcmtzLCBJbmMuCiswMDAzMDAgICAgIChiYXNlIDE2KQkJQmFycmFjdWRhIE5ldHdvcmtzLCBJbmMuCisJCQkJMzE3NSBTLiBXaW5jaGVzdGVyIEJsdmQKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMDEgICAoaGV4KQkJQXZhbnRhcyBOZXR3b3JrcyBDb3Jwb3JhdGlvbgorMDAwMzAxICAgICAoYmFzZSAxNikJCUF2YW50YXMgTmV0d29ya3MgQ29ycG9yYXRpb24KKwkJCQk5OTAwIENhdmVuZGlzaCBCbHZkLiwgU3VpdGUgIzMxMAorCQkJCVN0LUxhdXJlbnQsIFF1ZWJlYworCQkJCUg0TSAyVjIKKwkJCQlDQU5BREEKKworMDAtMDMtMDIgICAoaGV4KQkJQ2hhcmxlcyBJbmR1c3RyaWVzLCBMdGQuCiswMDAzMDIgICAgIChiYXNlIDE2KQkJQ2hhcmxlcyBJbmR1c3RyaWVzLCBMdGQuCisJCQkJNTYwMCBBcG9sbG8gRHJpdmUKKwkJCQlSb2xsaW5nIE1lYWRvd3MgSUwgNjAwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTAzICAgKGhleCkJCUpBTUEgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDAzMDMgICAgIChiYXNlIDE2KQkJSkFNQSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkxMEYsIE5vLiAyMjItMSwgU2VjLiAzCisJCQkJVGEtVHVuZyBSZC4sIEhzaS1DaGloCisJCQkJVGFpcGVpIEhzaWVuICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTA0ICAgKGhleCkJCVBhY2lmaWMgQnJvYWRiYW5kIENvbW11bmljYXRpb25zCiswMDAzMDQgICAgIChiYXNlIDE2KQkJUGFjaWZpYyBCcm9hZGJhbmQgQ29tbXVuaWNhdGlvbnMKKwkJCQkzMTAzIE5vcnRoIEZpcnN0IFN0LgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0wNSAgIChoZXgpCQlNU0MgVmVydHJpZWJzIEdtYkgKKzAwMDMwNSAgICAgKGJhc2UgMTYpCQlNU0MgVmVydHJpZWJzIEdtYkgKKwkJCQlEZXNpZ24gQ2VudGVyIEFhY2hlbgorCQkJCVBhc2NhbHN0cmFzc2UgMjEKKwkJCQlBQUNIRU4gICAgRC01MjA3NgorCQkJCUdFUk1BTlkKKworMDAtMDMtMDYgICAoaGV4KQkJRnVzaW9uIEluIFRlY2ggQ28uLCBMdGQuCiswMDAzMDYgICAgIChiYXNlIDE2KQkJRnVzaW9uIEluIFRlY2ggQ28uLCBMdGQuCisJCQkJNkZsLCBEYWV5b29uIEJsZGcuIDE2ODgtNSwgU2VvY2hvLWRvbmcKKwkJCQlTZW9jaG8ta3UsCisJCQkJU2VvdWwsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMDcgICAoaGV4KQkJU2VjdXJlIFdvcmtzLCBJbmMuCiswMDAzMDcgICAgIChiYXNlIDE2KQkJU2VjdXJlIFdvcmtzLCBJbmMuCisJCQkJMTEgRXhlY3V0aXZlIERyaXZlCisJCQkJU3VpdGUgMjAwCisJCQkJQXRsYW50YSBHQSAzMDMyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMDggICAoaGV4KQkJQU0gQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDMwOCAgICAgKGJhc2UgMTYpCQlBTSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTEwMCBDb21tZXJjZSBCbHZkLgorCQkJCVF1YWtlcnRvd24gUEEgMTg5NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTA5ICAgKGhleCkJCVRleGNlbCBUZWNobm9sb2d5IFBMQworMDAwMzA5ICAgICAoYmFzZSAxNikJCVRleGNlbCBUZWNobm9sb2d5IFBMQworCQkJCVRoYW1lcyBSb2FkCisJCQkJQ3JheWZvcmQgS2VudCBEQTEgNFNCCisJCQkJRU5HTEFORCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMy0wQSAgIChoZXgpCQlBcmd1cyBUZWNobm9sb2dpZXMKKzAwMDMwQSAgICAgKGJhc2UgMTYpCQlBcmd1cyBUZWNobm9sb2dpZXMKKwkJCQk4RiwgTm8uIDE4MywgS2FuZyBDaGllbiBSZC4KKwkJCQkxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTBCICAgKGhleCkJCUh1bnRlciBUZWNobm9sb2d5LCBJbmMuCiswMDAzMEIgICAgIChiYXNlIDE2KQkJSHVudGVyIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxNDA4LCBXb29saW0gZS1iaXogQ2VudGVyLAorCQkJCTE3MC01LCBHdXJvLTNkb25nLCBHdXJvLWd1LAorCQkJCVNlb3VsICAxMzUtMjcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTBDICAgKGhleCkJCVRlbGVzb2Z0IFRlY2hub2xvZ2llcyBMdGQuCiswMDAzMEMgICAgIChiYXNlIDE2KQkJVGVsZXNvZnQgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQlPYnNlcnZhdG9yeSBIb3VzZSwgU3RvdXIgUGFyaywKKwkJCQlCbGFuZGZvcnVtLCBEb3JzZXQsIERUMTEgOUxRLAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAzLTBEICAgKGhleCkJCVVuaXdpbGwgQ29tcHV0ZXIgQ29ycC4KKzAwMDMwRCAgICAgKGJhc2UgMTYpCQlVbml3aWxsIENvbXB1dGVyIENvcnAuCisJCQkJTm8uIDI0LCBQZWkgWXVhbiBSZC4sIENodW5nCisJCQkJTGkgSW5kdXN0cmlhbCBQYXJrLCBDaHVuZworCQkJCUxpIENpdHkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtMEUgICAoaGV4KQkJQ29yZSBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMDMwRSAgICAgKGJhc2UgMTYpCQlDb3JlIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorCQkJCTNGIFNob3BwaW5nIENlbnRlciBCZC4gb2YKKwkJCQlTU2FuZyBZb3VuZyBId2FuZy1nZXVtIEFQVCwgIzI1MyBNYXBvLURvCisJCQkJU2VvdWwgKDEyMS0wNTApICAoMTIxLTA1MCkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMEYgICAoaGV4KQkJRGlnaXRhbCBDaGluYSAoU2hhbmdoYWkpIE5ldHdvcmtzIEx0ZC4KKzAwMDMwRiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIENoaW5hIChTaGFuZ2hhaSkgTmV0d29ya3MgTHRkLgorCQkJCTYwMi0yMywgSGFpdGFpIEJ1aWxkaW5nLCAzNTEgR3VvIFNob3VqaW4KKwkJCQlQdWRvbmcgTmV3IERpc3RyaWN0LAorCQkJCVNoYW5naGFpICAKKwkJCQlDSElOQQorCiswMC0wMy0xMCAgIChoZXgpCQlJVFggRS1HbG9iYWxlZGdlIENvcnBvcmF0aW9uCiswMDAzMTAgICAgIChiYXNlIDE2KQkJSVRYIEUtR2xvYmFsZWRnZSBDb3Jwb3JhdGlvbgorCQkJCU5ha2FtZWd1cm8gR1QgdG93ZXIgN0YgMi0xLTEga2FtaW1lZ3VybworCQkJCU1lZ3Vyby1rdQorCQkJCVRva3lvICAxNTMtMDA1MQorCQkJCUpBUEFOCisKKzAwLTAzLTExICAgKGhleCkJCU1pY3JvIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDAzMTEgICAgIChiYXNlIDE2KQkJTWljcm8gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlTdWVoaXJvIEJsZGcuCisJCQkJMS0yLCBTb3RvIEthbmRhIDUgQ2hvbWUgQ2hpeW9kYS1rdSwgVG9reQorCQkJCTEwMS0wMDIxIAorCQkJCUpBUEFOCisKKzAwLTAzLTEyICAgKGhleCkJCVRSLVN5c3RlbXRlY2huaWsgR21iSAorMDAwMzEyICAgICAoYmFzZSAxNikJCVRSLVN5c3RlbXRlY2huaWsgR21iSAorCQkJCUVnbGlzaGFsZGUgNgorCQkJCUQtNzg2NDcgVHJvc3NpbmdlbgorCQkJCUdFUk1BTlkKKworMDAtMDMtMTMgICAoaGV4KQkJQWNjZXNzIE1lZGlhIFNQQQorMDAwMzEzICAgICAoYmFzZSAxNikJCUFjY2VzcyBNZWRpYSBTUEEKKwkJCQlWaWEgZGVsbGUgSW5kdXN0cmllLCA0L2cKKwkJCQkyNDAzNSBMQUxMSU8gKEJHKSAgCisJCQkJSVRBTFkKKworMDAtMDMtMTQgICAoaGV4KQkJVGVsZXdhcmUgTmV0d29yayBTeXN0ZW1zCiswMDAzMTQgICAgIChiYXNlIDE2KQkJVGVsZXdhcmUgTmV0d29yayBTeXN0ZW1zCisJCQkJIzc4MDYgN3RoIERvbmdpbCBUZWNobm90b3duLAorCQkJCUtpbmFueWFuZyBEb25nIDgyMywgRG9uZ2FobiBHdSwgQW55YW5nIEMKKwkJCQk0MzEtMDYyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTE1ICAgKGhleCkJCUNpZGNvIEluY29ycG9yYXRlZAorMDAwMzE1ICAgICAoYmFzZSAxNikJCUNpZGNvIEluY29ycG9yYXRlZAorCQkJCTIyMCBDb2NocmFuZSBDaXJjbGUKKwkJCQlNb3JnYW4gSGlsbCBDQSA5NTAzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMTYgICAoaGV4KQkJTm9iZWxsIENvbW11bmljYXRpb25zLCBJbmMuCiswMDAzMTYgICAgIChiYXNlIDE2KQkJTm9iZWxsIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMzQxMCBGYXIgV2VzdCBCbHZkLiwgU3VpdGUgMjQwCisJCQkJQXVzdGluIFRYIDc4NzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0xNyAgIChoZXgpCQlNZXJsaW4gU3lzdGVtcywgSW5jLgorMDAwMzE3ICAgICAoYmFzZSAxNikJCU1lcmxpbiBTeXN0ZW1zLCBJbmMuCisJCQkJMzkwMCBOZXcgUGFyayBNYWxsIFJkLgorCQkJCTNyZCBGbG9vcgorCQkJCU5ld2FyayBDQSA5NDU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMTggICAoaGV4KQkJQ3lyYXMgU3lzdGVtcywgSW5jLgorMDAwMzE4ICAgICAoYmFzZSAxNikJCUN5cmFzIFN5c3RlbXMsIEluYy4KKwkJCQk0NzEwMCBCYXlzaWRlIFBhcmt3YXkKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0xOSAgIChoZXgpCQlJbmZpbmVvbiBBRworMDAwMzE5ICAgICAoYmFzZSAxNikJCUluZmluZW9uIEFHCisJCQkJUC5PLiBCb3ggODAwOTQ5CisJCQkJRC04MTYwOSBNdW5pY2gKKwkJCQlHRVJNQU5ZCisKKzAwLTAzLTFBICAgKGhleCkJCUJlaWppbmcgQnJvYWQgVGVsZWNvbSBMdGQuLCBDaGluYQorMDAwMzFBICAgICAoYmFzZSAxNikJCUJlaWppbmcgQnJvYWQgVGVsZWNvbSBMdGQuLCBDaGluYQorCQkJCVAuTy4gQm94ICMxNDcKKwkJCQlCZWlqaW5nIFVuaXZlcnNpdHkgb2YgUG9zdHMgIGFuZCBUZWxlY29tCisJCQkJQmVpamluZyAgMTAwODc2CisJCQkJQ0hJTkEKKworMDAtMDMtMUIgICAoaGV4KQkJQ2VsbHZpc2lvbiBTeXN0ZW1zLCBJbmMuCiswMDAzMUIgICAgIChiYXNlIDE2KQkJQ2VsbHZpc2lvbiBTeXN0ZW1zLCBJbmMuCisJCQkJM0YtMSwgNzUsIEhzaW4gVGFpd3UgUm9hZCwgU2VjLiAxCisJCQkJSHNpY2hpaCwgVGFpcGVpLAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtMUMgICAoaGV4KQkJU3ZlbnNrYSBIYXJkdmFydWZhYnJpa2VuIEFCCiswMDAzMUMgICAgIChiYXNlIDE2KQkJU3ZlbnNrYSBIYXJkdmFydWZhYnJpa2VuIEFCCisJCQkJT2xlIFJvbWVyc3ZhZyAxNiwgSWRlb24KKwkJCQlTRS0yMjMgNzAgTHVuZAorCQkJCVNXRURFTgorCiswMC0wMy0xRCAgIChoZXgpCQlUYWl3YW4gQ29tbWF0ZSBDb21wdXRlciwgSW5jLgorMDAwMzFEICAgICAoYmFzZSAxNikJCVRhaXdhbiBDb21tYXRlIENvbXB1dGVyLCBJbmMuCisJCQkJOEYsIE5vLiA5NCwgU2VjIDEsCisJCQkJU2hpbiBUYWkgV3UgUmQuIEhzaSBDaGloLCBUYWlwZWkgSHNpZW4sCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy0xRSAgIChoZXgpCQlPcHRyYW5ldCwgSW5jLgorMDAwMzFFICAgICAoYmFzZSAxNikJCU9wdHJhbmV0LCBJbmMuCisJCQkJNzA0MSBLb2xsIENlbnRlciBQa3d5CisJCQkJU3VpdGUgMTM1CisJCQkJUGxlYXNhbnRvbiBDQSA5NDU2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMUYgICAoaGV4KQkJQ29uZGV2IEx0ZC4KKzAwMDMxRiAgICAgKGJhc2UgMTYpCQlDb25kZXYgTHRkLgorCQkJCTIwMC0xNjI2IFdlc3QgMm5kIEF2ZS4KKwkJCQlWYW5jb3V2ZXIsIEIuQy4gVjZKIDFINAorCQkJCUNBTkFEQQorCiswMC0wMy0yMCAgIChoZXgpCQlYcGVlZCwgSW5jLgorMDAwMzIwICAgICAoYmFzZSAxNikJCVhwZWVkLCBJbmMuCisJCQkJOTkgVy4gVGFzbWFuIERyaXZlCisJCQkJU3VpdGUgMTEwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTIxICAgKGhleCkJCVJlY28gUmVzZWFyY2ggQ28uLCBMdGQuCiswMDAzMjEgICAgIChiYXNlIDE2KQkJUmVjbyBSZXNlYXJjaCBDby4sIEx0ZC4KKwkJCQlOby4gNDctMSwgU2VjLiAyLAorCQkJCUt1YW5nIEZ1IFJkLixTYW4gQ2h1bmcgQ2l0eSwgVGFpcGVpLAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtMjIgICAoaGV4KQkJSURJUyBDby4sIEx0ZC4KKzAwMDMyMiAgICAgKGJhc2UgMTYpCQlJRElTIENvLiwgTHRkLgorCQkJCTd0aCBGbG9vciwgNjQ2LTcgWXVrc2FtLURvbmcsCisJCQkJS2FuZ25hbS1HdSwgU2VvdWwgMTM1LTI4MCwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMjMgICAoaGV4KQkJQ29ybmV0IFRlY2hub2xvZ3ksIEluYy4KKzAwMDMyMyAgICAgKGJhc2UgMTYpCQlDb3JuZXQgVGVjaG5vbG9neSwgSW5jLgorCQkJCTY4MDAgVmVyc2FyIENlbnRlciwgU3VpdGUgMjE2CisJCQkJU3ByaW5nZmllbGQgVkEgMjIxNTEtNDE0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMjQgICAoaGV4KQkJU0FOWU8gQ29uc3VtZXIgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDAzMjQgICAgIChiYXNlIDE2KQkJU0FOWU8gQ29uc3VtZXIgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJNy0xMDEgVGFjaGlrYXdhLWNobworCQkJCVRvdHRvcmkgQ2l0eSAgNjgwLTg2MzQKKwkJCQlKQVBBTgorCiswMC0wMy0yNSAgIChoZXgpCQlBcmltYSBDb21wdXRlciBDb3JwLgorMDAwMzI1ICAgICAoYmFzZSAxNikJCUFyaW1hIENvbXB1dGVyIENvcnAuCisJCQkJNnRoIEZsLiwgTm8uIDMyNywKKwkJCQlTdW5nLWx1bmcgUmQuLCBUYWlwZWkgQ2l0eSwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTI2ICAgKGhleCkJCUl3YXNha2kgSW5mb3JtYXRpb24gU3lzdGVtcyBDby4sIEx0ZC4KKzAwMDMyNiAgICAgKGJhc2UgMTYpCQlJd2FzYWtpIEluZm9ybWF0aW9uIFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJMzM2MSBPc2hpCisJCQkJRnVraWFnZS1tYWNoaSwgU2FpdGFtYSAzNjktMDExMworCQkJCUpBUEFOCisKKzAwLTAzLTI3ICAgKGhleCkJCUFDVCdMCiswMDAzMjcgICAgIChiYXNlIDE2KQkJQUNUJ0wKKwkJCQlBdmVudWUgZGUgQXJ0aXNhbmF0IDEwQQorCQkJCTE5MjQgQnJhaW5lIGwnQWxsYXJkCisJCQkJQkVMR0lVTQorCiswMC0wMy0yOCAgIChoZXgpCQlNYWNlIEdyb3VwLCBJbmMuCiswMDAzMjggICAgIChiYXNlIDE2KQkJTWFjZSBHcm91cCwgSW5jLgorCQkJCTUxMDEgQ29tbWVyY2UgRHIuCisJCQkJQmFsZHdpbiBQYXJrIENBIDkxNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0yOSAgIChoZXgpCQlGMywgSW5jLgorMDAwMzI5ICAgICAoYmFzZSAxNikJCUYzLCBJbmMuCisJCQkJMkYsIE5vLiA3LCBJbmR1c3RyeSBFLiBSZC4gOSwKKwkJCQlTY2llbmNlIEJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTJBICAgKGhleCkJCVVuaURhdGEgQ29tbXVuaWNhdGlvbiBTeXN0ZW1zLCBJbmMuCiswMDAzMkEgICAgIChiYXNlIDE2KQkJVW5pRGF0YSBDb21tdW5pY2F0aW9uIFN5c3RlbXMsIEluYy4KKwkJCQkyRiwgT2hTdW5nLUJsZGcsIDgyLTE1LAorCQkJCU5vbkh5dW4tRG9uZywgR2FuZ05hbS1HdSwgIFNlb3VsLDEzNS0xMDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMkIgICAoaGV4KQkJR0FJIERhdGVuZnVua3N5c3RlbWUgR21iSAorMDAwMzJCICAgICAoYmFzZSAxNikJCUdBSSBEYXRlbmZ1bmtzeXN0ZW1lIEdtYkgKKwkJCQlSaWVkbGVwYXJrc3RyYXNzZSAyOAorCQkJCUQtODgwNDUgRnJpZWRyaWNoc2hhZmVuCisJCQkJR0VSTUFOWQorCiswMC0wMy0yQyAgIChoZXgpCQlBQkIgU3dpdHplcmxhbmQgTHRkCiswMDAzMkMgICAgIChiYXNlIDE2KQkJQUJCIFN3aXR6ZXJsYW5kIEx0ZAorCQkJCURlcHQuIEFUUFQKKwkJCQlDSC01MzAwIFR1cmdpCisJCQkJQXVzdHJhc3NlICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wMy0yRCAgIChoZXgpCQlJQkFTRSBUZWNobm9sb2d5LCBJbmMuCiswMDAzMkQgICAgIChiYXNlIDE2KQkJSUJBU0UgVGVjaG5vbG9neSwgSW5jLgorCQkJCTVGLCBOby4gMjIxLAorCQkJCUNodW5nIFlhbmcgUmQuCisJCQkJVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTJFICAgKGhleCkJCVNjb3BlIEluZm9ybWF0aW9uIE1hbmFnZW1lbnQsIEx0ZC4KKzAwMDMyRSAgICAgKGJhc2UgMTYpCQlTY29wZSBJbmZvcm1hdGlvbiBNYW5hZ2VtZW50LCBMdGQuCisJCQkJMkYgQ2hhbndvbyBiL28gNzM2IFlvdWtzYW5nLWRvbmcsCisJCQkJS2FuZ25hbS1ndSwKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy0yRiAgIChoZXgpCQlHbG9iYWwgU3VuIFRlY2hub2xvZ3ksIEluYy4KKzAwMDMyRiAgICAgKGJhc2UgMTYpCQlHbG9iYWwgU3VuIFRlY2hub2xvZ3ksIEluYy4KKwkJCQlOby4gMTMsIFR1bmcgWXVhbiBSZC4sCisJCQkJSnVuZyBMaSBJbmR1c3RyaWFsIFBhcmsgSnVuZyBMaSBDaXR5CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy0zMCAgIChoZXgpCQlJbWFnZW5pY3MsIENvLiwgTHRkLgorMDAwMzMwICAgICAoYmFzZSAxNikJCUltYWdlbmljcywgQ28uLCBMdGQuCisJCQkJMS0zMS01IEtva3VyeW8tQ2hvCisJCQkJQ2hvZnUtQ2l0eSBUb2t5bworCQkJCTE4Mi0wMDIyIAorCQkJCUpBUEFOCisKKzAwLTAzLTMxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDMzMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0zMiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAzMzIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMzMgICAoaGV4KQkJRGlnaXRlbCBDby4sIEx0ZC4KKzAwMDMzMyAgICAgKGJhc2UgMTYpCQlEaWdpdGVsIENvLiwgTHRkLgorCQkJCTgzNS02LCBZb2tzYW0tZG9uZworCQkJCUthbmduYW0tZ3UsIDEzNS0wODAsIFNlb3VsLAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy0zNCAgIChoZXgpCQlOZXdwb3J0IEVsZWN0cm9uaWNzCiswMDAzMzQgICAgIChiYXNlIDE2KQkJTmV3cG9ydCBFbGVjdHJvbmljcworCQkJCTIyMjkgU28uIFlhbGUgU3QuCisJCQkJU2FudGEgQW5hIENBIDkyNzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0zNSAgIChoZXgpCQlNaXJhZSBUZWNobm9sb2d5CiswMDAzMzUgICAgIChiYXNlIDE2KQkJTWlyYWUgVGVjaG5vbG9neQorCQkJCTIxMS0xNSwgSG9uIEh5dW4tZG9uZywKKwkJCQlLYW5nbmFtLWt1IDEzNS0wMTAKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTM2ICAgKGhleCkJCVpldGVzIFRlY2hub2xvZ2llcworMDAwMzM2ICAgICAoYmFzZSAxNikJCVpldGVzIFRlY2hub2xvZ2llcworCQkJCTMgUnVlIERlIFN0cmFzIEJvdXJnCisJCQkJMTEzMCBCcnVzc2VscworCQkJCUJFTEdJVU0KKworMDAtMDMtMzcgICAoaGV4KQkJVmFvbmUsIEluYy4KKzAwMDMzNyAgICAgKGJhc2UgMTYpCQlWYW9uZSwgSW5jLgorCQkJCTZGIEt5ZW1vbmcgQXJ0IENlbnRlciwKKwkJCQk3NzIgWXVrc2FuMi1Eb25nIEthbmcgSGFtR3UsIFNlb3VsLAorCQkJCTEzNS0wODIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMzggICAoaGV4KQkJT2FrIFRlY2hub2xvZ3kKKzAwMDMzOCAgICAgKGJhc2UgMTYpCQlPYWsgVGVjaG5vbG9neQorCQkJCTEzOSBLaWZlciBDb3VydAorCQkJCVN1bm55dmFsZSBDQSA5NDA4Ni01MTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0zOSAgIChoZXgpCQlFdXJvbG9naWMgU3lzdGVtcywgTHRkLgorMDAwMzM5ICAgICAoYmFzZSAxNikJCUV1cm9sb2dpYyBTeXN0ZW1zLCBMdGQuCisJCQkJQ2xvbnNoYXVnaCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCUNsb25zaGF1Z2ggRHVibGluIDE3IAorCQkJCUlSRUxBTkQKKworMDAtMDMtM0EgICAoaGV4KQkJU2lsaWNvbiBXYXZlLCBJbmMuCiswMDAzM0EgICAgIChiYXNlIDE2KQkJU2lsaWNvbiBXYXZlLCBJbmMuCisJCQkJNjI1NiBHcmVlbndpY2ggRHJpdmUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTNCICAgKGhleCkJCVRBTUkgVGVjaCBDby4sIEx0ZC4KKzAwMDMzQiAgICAgKGJhc2UgMTYpCQlUQU1JIFRlY2ggQ28uLCBMdGQuCisJCQkJNEYsIENodW5nZG8gQmVuY2hlciBUb3duCisJCQkJNjA2IFRhbmJhbmctRG9uZywgU2VvLUd1CisJCQkJVGFlam9uICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtM0MgICAoaGV4KQkJRGFpZGVuIENvLiwgTHRkLgorMDAwMzNDICAgICAoYmFzZSAxNikJCURhaWRlbiBDby4sIEx0ZC4KKwkJCQkyMTAwLTE5IFR1dHVtaSwgS2FtaW1pbmUtbWFjaGkKKwkJCQlNaXlha2ktZ3VuLCBTYWdhLWtlbgorCQkJCUpBUEFOCisKKzAwLTAzLTNEICAgKGhleCkJCUlMU0hpbiBMYWIKKzAwMDMzRCAgICAgKGJhc2UgMTYpCQlJTFNIaW4gTGFiCisJCQkJS0NTIEIvRCAyMjgtMTMgWW91bmcgRGFwLURvbmcKKwkJCQlTVU5HIERPTkctR1UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy0zRSAgIChoZXgpCQlUYXRleWFtYSBTeXN0ZW0gTGFib3JhdG9yeSBDby4sIEx0ZC4KKzAwMDMzRSAgICAgKGJhc2UgMTYpCQlUYXRleWFtYSBTeXN0ZW0gTGFib3JhdG9yeSBDby4sIEx0ZC4KKwkJCQkzMCBTaGltb25vYmFuIE95YW1hLWNobworCQkJCUthbWluaWthd2EtZ3VuIFRveWFtYSBQcm9mLgorCQkJCTkzMC0xMzA1CisJCQkJSkFQQU4KKworMDAtMDMtM0YgICAoaGV4KQkJQmlnQmFuZCBOZXR3b3JrcywgTHRkLgorMDAwMzNGICAgICAoYmFzZSAxNikJCUJpZ0JhbmQgTmV0d29ya3MsIEx0ZC4KKwkJCQkzIEF6cmllbGkgVG93ZXJzCisJCQkJVGVsLUF2aXYgNjcwMjMKKwkJCQlJU1JBRUwKKworMDAtMDMtNDAgICAoaGV4KQkJRmxvd2FyZSBXaXJlbGVzcyBTeXN0ZW1zLCBMdGQuCiswMDAzNDAgICAgIChiYXNlIDE2KQkJRmxvd2FyZSBXaXJlbGVzcyBTeXN0ZW1zLCBMdGQuCisJCQkJMjggSGFjaGFyb3NoZXQgU3RlZXQKKwkJCQlQLk8uQi4gODEyIE9yLVllaHVkYQorCQkJCTYwMjUwCisJCQkJSVNSQUVMCisKKzAwLTAzLTQxICAgKGhleCkJCUF4b24gRGlnaXRhbCBEZXNpZ24KKzAwMDM0MSAgICAgKGJhc2UgMTYpCQlBeG9uIERpZ2l0YWwgRGVzaWduCisJCQkJTGFuZ2UgV2FnZW5zdHJhYXQgNTUKKwkJCQlOTC01MTI2IEJCIEdJTFpFCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDMtNDIgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDAzNDIgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJODIwMCBEaXhpZSBSb2FkIC0gU3RlICMxMDAKKwkJCQlEZXB0LiA2ODAwIEJyYW1wdG9uICBPTiAgTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0wMy00MyAgIChoZXgpCQlNYXJ0aW4gUHJvZmVzc2lvbmFsIEEvUworMDAwMzQzICAgICAoYmFzZSAxNikJCU1hcnRpbiBQcm9mZXNzaW9uYWwgQS9TCisJCQkJT2xvZiBQYWxtZXMgQWxsZSAxOAorCQkJCURLLTgyMDAgQWFyaHVzbgorCQkJCURFTk1BUksKKworMDAtMDMtNDQgICAoaGV4KQkJVGlldGVjaC5Dby4sIEx0ZC4KKzAwMDM0NCAgICAgKGJhc2UgMTYpCQlUaWV0ZWNoLkNvLiwgTHRkLgorCQkJCTItMTMtMSBDaGlrYW1hdG9vcmkgTWluYW1pa3UKKwkJCQlOYWdveWEsCisJCQkJSkFQQU4KKworMDAtMDMtNDUgICAoaGV4KQkJUm91dHJlayBOZXR3b3JrcyBDb3Jwb3JhdGlvbgorMDAwMzQ1ICAgICAoYmFzZSAxNikJCVJvdXRyZWsgTmV0d29ya3MgQ29ycG9yYXRpb24KKwkJCQlOaWxzc2VpIFNoaW4gTWl6b25va3VjaGkgQmxkZy4gMUYKKwkJCQkzLTUtNyBIaXNhbW90bywgVGFrYXRzdS1LdSBLYXdhc2FraS1zaGksCisJCQkJMjMtMDAxMSAKKwkJCQlKQVBBTgorCiswMC0wMy00NiAgIChoZXgpCQlIaXRhY2hpIEtva3VzYWkgRWxlY3RyaWMsIEluYy4KKzAwMDM0NiAgICAgKGJhc2UgMTYpCQlIaXRhY2hpIEtva3VzYWkgRWxlY3RyaWMsIEluYy4KKwkJCQkxLTYtMTAgVWNoaWthbmRhCisJCQkJQ2hpeW9kYS1LdSBUb2t5byBsMTAxCisJCQkJSkFQQU4KKworMDAtMDMtNDcgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzAwMDM0NyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCU1TOiAgTEYzLTQyMAorCQkJCTIxMTEgTi5FLiAyNXRoIEF2ZW51ZQorCQkJCUhpbGxzYm9ybyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNDggICAoaGV4KQkJTm9yc2NhbiBJbnN0cnVtZW50cywgTHRkLgorMDAwMzQ4ICAgICAoYmFzZSAxNikJCU5vcnNjYW4gSW5zdHJ1bWVudHMsIEx0ZC4KKwkJCQk3IFRlcnJhY29uIFBsYWNlCisJCQkJV2lubmlwZWcsIE1hbml0b2JhLAorCQkJCVIySiA0QjMKKwkJCQlDQU5BREEKKworMDAtMDMtNDkgICAoaGV4KQkJVmlkaWNvZGUgRGF0YWNvbW11bmljYXRpZSBCLlYuCiswMDAzNDkgICAgIChiYXNlIDE2KQkJVmlkaWNvZGUgRGF0YWNvbW11bmljYXRpZSBCLlYuCisJCQkJUG9zdGJ1cyA3MTY0CisJCQkJMjcwMSBBRCBab2V0ZXJtZWVyCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDMtNEEgICAoaGV4KQkJUklBUyBDb3Jwb3JhdGlvbgorMDAwMzRBICAgICAoYmFzZSAxNikJCVJJQVMgQ29ycG9yYXRpb24KKwkJCQk0NjYwMCBGcmVtb250IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNEIgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDAzNEIgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJODIwMCBEaXhpZSBSb2FkIFN1aXRlIDEwMAorCQkJCURlcHQuIDY4MDAgQnJhbXB0b24gT04gTDZUIDUgUDYKKwkJCQlDQU5BREEKKworMDAtMDMtNEMgICAoaGV4KQkJU2hhbmdoYWkgRGlnaVZpc2lvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwMzRDICAgICAoYmFzZSAxNikJCVNoYW5naGFpIERpZ2lWaXNpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxMUYsIEhlbmcgVG9uZworCQkJCUludGVybmF0aW9uYWwgQnVpbGRpbmcsIDg2NSBDaGFuZyBOaW5nIFIKKwkJCQlTaGFuZ2hhaSAyMDAwNTAKKwkJCQlDSElOQQorCiswMC0wMy00RCAgIChoZXgpCQlDaGlhcm8gTmV0d29ya3MsIEx0ZC4KKzAwMDM0RCAgICAgKGJhc2UgMTYpCQlDaGlhcm8gTmV0d29ya3MsIEx0ZC4KKwkJCQlQLk8uIEJveCA4MzI0MjcKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgzLTI0MjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTRFICAgKGhleCkJCVBvcyBEYXRhIENvbXBhbnksIEx0ZC4KKzAwMDM0RSAgICAgKGJhc2UgMTYpCQlQb3MgRGF0YSBDb21wYW55LCBMdGQuCisJCQkJMjc2LTIsIFNlby1IeXVuIERvbmcsCisJCQkJQnVuLURhbmcgR3UsIFN1bmctbmFtIENpdHksIEt5b3VuZy1HaSBQcgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy00RiAgIChoZXgpCQlTdXItR2FyZCBTZWN1cml0eQorMDAwMzRGICAgICAoYmFzZSAxNikJCVN1ci1HYXJkIFNlY3VyaXR5CisJCQkJNDAxIE1hZ25ldGljIERyaXZlCisJCQkJVW5pdHMgMjQtMjgsIERvd25zdmlldworCQkJCU9udGFyaW8gIE0zSiAzSDkKKwkJCQlDQU5BREEKKworMDAtMDMtNTAgICAoaGV4KQkJQlRJQ0lOTyBTUEEKKzAwMDM1MCAgICAgKGJhc2UgMTYpCQlCVElDSU5PIFNQQQorCQkJCVZpYSBMLiBNYW5hcmEsIDQKKwkJCQkyMjAzNiBFcmJhIChDTykKKwkJCQlJVEFMWQorCiswMC0wMy01MSAgIChoZXgpCQlEaWVib2xkLCBJbmMuCiswMDAzNTEgICAgIChiYXNlIDE2KQkJRGllYm9sZCwgSW5jLgorCQkJCTU5OTUgTWF5ZmFpciBSb2FkCisJCQkJTm9ydGggQ2FudG9uIE9IIDQ0NzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy01MiAgIChoZXgpCQlDb2x1YnJpcyBOZXR3b3JrcworMDAwMzUyICAgICAoYmFzZSAxNikJCUNvbHVicmlzIE5ldHdvcmtzCisJCQkJNDQwIEFybWFuZC1GcmFwcGllcgorCQkJCUxhdmFsIChRdWViZWMpCisJCQkJSDdWIDRCNAorCQkJCUNBTkFEQQorCiswMC0wMy01MyAgIChoZXgpCQlNaXRhYywgSW5jLgorMDAwMzUzICAgICAoYmFzZSAxNikJCU1pdGFjLCBJbmMuCisJCQkJTm8uIDIsIENodW5nLUhzaWFvIFN0cmVldAorCQkJCUNoaXR1IEtlZWx1bmcsIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtNTQgICAoaGV4KQkJRmliZXIgTG9naWMgQ29tbXVuaWNhdGlvbnMKKzAwMDM1NCAgICAgKGJhc2UgMTYpCQlGaWJlciBMb2dpYyBDb21tdW5pY2F0aW9ucworCQkJCTVGLTMsIE5vLiA5LCBQcm9zcGVyaXR5IFJvYWQgT25lLAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtNTUgICAoaGV4KQkJVGVyYUJlYW0gSW50ZXJuZXQgU3lzdGVtcworMDAwMzU1ICAgICAoYmFzZSAxNikJCVRlcmFCZWFtIEludGVybmV0IFN5c3RlbXMKKwkJCQkxNDgzMyBORSA4N3RoIFN0LiwgQmxkZy4gQworCQkJCVJlZG1vbmQgV0EgOTgwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTU2ICAgKGhleCkJCVdpbmNvciBOaXhkb3JmIEludGVybmF0aW9uYWwgR21iSAorMDAwMzU2ICAgICAoYmFzZSAxNikJCVdpbmNvciBOaXhkb3JmIEludGVybmF0aW9uYWwgR21iSAorCQkJCUhlaW56LU5peGRvcmYgUmluZyAxCisJCQkJRC0zMzEwNiBQYWRlcmJvcm4gCisJCQkJR0VSTUFOWQorCiswMC0wMy01NyAgIChoZXgpCQlJbnRlcnZvaWNlLUJyaXRlLCBJbmMuCiswMDAzNTcgICAgIChiYXNlIDE2KQkJSW50ZXJ2b2ljZS1Ccml0ZSwgSW5jLgorCQkJCTE3ODExIFdhdGVydmlldyBQa3d5LgorCQkJCURhbGxhcyBUWCA3NTI1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNTggICAoaGV4KQkJSGFueWFuZyBEaWdpdGVjaCBDby4sIEx0ZC4KKzAwMDM1OCAgICAgKGJhc2UgMTYpCQlIYW55YW5nIERpZ2l0ZWNoIENvLiwgTHRkLgorCQkJCTEzRiwgQWNldHdpbnRvd2VyMiwgMjEyLTMwLCBHdXJvLURvbmcKKwkJCQlHdXJvLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy01OSAgIChoZXgpCQlEaWdpdGFsU2lzCiswMDAzNTkgICAgIChiYXNlIDE2KQkJRGlnaXRhbFNpcworCQkJCUItMTQwNSBTYW1obyBCbGRnLgorCQkJCTI3NS02IFlhbmdqYWUKKwkJCQlTZW9jaG8gU2VvdWwsIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy01QSAgIChoZXgpCQlQaG90cm9uIExpbWl0ZWQKKzAwMDM1QSAgICAgKGJhc2UgMTYpCQlQaG90cm9uIExpbWl0ZWQKKwkJCQkxLTEtOCwgRnVqaW1pLAorCQkJCUNoaXlvZGEta3UgIDEwMi0wMDcxCisJCQkJSkFQQU4KKworMDAtMDMtNUIgICAoaGV4KQkJQnJpZGdlV2F2ZSBDb21tdW5pY2F0aW9ucworMDAwMzVCICAgICAoYmFzZSAxNikJCUJyaWRnZVdhdmUgQ29tbXVuaWNhdGlvbnMKKwkJCQkzMzUwIFRob21hZCBSb2FkCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTVDICAgKGhleCkJCVNhaW50IFNvbmcgQ29ycC4KKzAwMDM1QyAgICAgKGJhc2UgMTYpCQlTYWludCBTb25nIENvcnAuCisJCQkJNEYsIE5vLiAxMiwgTGFuZSA5NCwgVHNhbyBUaSBXemkKKwkJCQlTaGVuIEtlbmcgSHNpYW5nLCBUYWlwZWkgSHNpZW4KKwkJCQkyMjIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTVEICAgKGhleCkJCUJvc3VuZyBIaS1OZXQgQ28uLCBMdGQuCiswMDAzNUQgICAgIChiYXNlIDE2KQkJQm9zdW5nIEhpLU5ldCBDby4sIEx0ZC4KKwkJCQlZb3VuZ2lsIEIvTyAyRiwKKwkJCQlZYW5nSmFlLWRvbmcgMTItNywgU2VvY2hvLWd1LCBTZW91bAorCQkJCTEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtNUUgICAoaGV4KQkJTWV0cm9wb2xpdGFuIEFyZWEgTmV0d29ya3MsIEluYy4KKzAwMDM1RSAgICAgKGJhc2UgMTYpCQlNZXRyb3BvbGl0YW4gQXJlYSBOZXR3b3JrcywgSW5jLgorCQkJCTEyOTkgUGVubnN5bHZhbmlhIEF2ZW51ZSwgTlcKKwkJCQlOaW50aCBGbG9vcgorCQkJCVdhc2hpbmd0b24gREMgMjAwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTVGICAgKGhleCkJCVBydWVmdGVjaG5payBDb25kaXRpb24gTW9uaXRvcmluZyBHbWJIICYgQ28uIEtHCiswMDAzNUYgICAgIChiYXNlIDE2KQkJUHJ1ZWZ0ZWNobmlrIENvbmRpdGlvbiBNb25pdG9yaW5nIEdtYkggJiBDby4gS0cKKwkJCQlGcmFuei1CYXllci1TdHIuIDE0CisJCQkJRC04ODIxMyBSYXZlbnNidXJnCisJCQkJR0VSTUFOWQorCiswMC0wMy02MCAgIChoZXgpCQlQQUMgSW50ZXJhY3RpdmUgVGVjaG5vbG9neSwgSW5jLgorMDAwMzYwICAgICAoYmFzZSAxNikJCVBBQyBJbnRlcmFjdGl2ZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJNkYsIE5vLiAzMCwgQWxsZXkgMTgsIExhbmUgNDc4CisJCQkJSmFpIEd1YW5nIFJvYWQsIE5laS1IdQorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy02MSAgIChoZXgpCQlXaWRjb21tLCBJbmMuCiswMDAzNjEgICAgIChiYXNlIDE2KQkJV2lkY29tbSwgSW5jLgorCQkJCTk2NDUgU2NyYW50b24gUm9hZAorCQkJCVN1aXRlIDIwNQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNjIgICAoaGV4KQkJVm9kdGVsIENvbW11bmljYXRpb25zLCBJbmMuCiswMDAzNjIgICAgIChiYXNlIDE2KQkJVm9kdGVsIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTJGLCBObyAxNjYgQ2hpZW4tWWkgUm9hZAorCQkJCUNodW5nLUhvIENpdHksIFRhaXBlaSBDb3VudHkKKwkJCQkyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTYzICAgKGhleCkJCU1pcmFlc3lzIENvLiwgTHRkLgorMDAwMzYzICAgICAoYmFzZSAxNikJCU1pcmFlc3lzIENvLiwgTHRkLgorCQkJCTY1MC0yIDQgRmwuIERhZW15dW5nIEJsZGcuCisJCQkJWXVrc2FtLCBLYW5nbmFtLCBTZW91bCwKKwkJCQkxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTY0ICAgKGhleCkJCVNjZW5peCBTZW1pY29uZHVjdG9yLCBJbmMuCiswMDAzNjQgICAgIChiYXNlIDE2KQkJU2Nlbml4IFNlbWljb25kdWN0b3IsIEluYy4KKwkJCQkxMzMwIENoYXJsZXN0b24gUmQuCisJCQkJTW91bnRhaW52aWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy02NSAgIChoZXgpCQlLaXJhIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbnMsIEx0ZC4KKzAwMDM2NSAgICAgKGJhc2UgMTYpCQlLaXJhIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbnMsIEx0ZC4KKwkJCQk2dGggRmwuIEFuYW0gVG93ZXIsCisJCQkJNzAyLTEwIFllb2tzYW0tZG9uZywgS2FuZ25hbS1rdSwgU2VvdWwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtNjYgICAoaGV4KQkJQVNNIFBhY2lmaWMgVGVjaG5vbG9neQorMDAwMzY2ICAgICAoYmFzZSAxNikJCUFTTSBQYWNpZmljIFRlY2hub2xvZ3kKKwkJCQkxMi9GIFdhdHNvbiBDZW50cmUKKwkJCQkxNiBLdW5nIFlpcCBTdC4KKwkJCQlLd2FpIENodW5nICAKKwkJCQlIT05HIEtPTkcKKworMDAtMDMtNjcgICAoaGV4KQkJSmFzbWluZSBOZXR3b3JrcywgSW5jLgorMDAwMzY3ICAgICAoYmFzZSAxNikJCUphc21pbmUgTmV0d29ya3MsIEluYy4KKwkJCQkxOTQwIFphbmtlciBSb2FkCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTY4ICAgKGhleCkJCUVtYmVkb25lIENvLiwgTHRkLgorMDAwMzY4ICAgICAoYmFzZSAxNikJCUVtYmVkb25lIENvLiwgTHRkLgorCQkJCUZsLiA5IEFubmV4IFNhbWh3YW4gQi9ELiAxNy0yNgorCQkJCVllb2lkby1Eb25nLCBZb3VuZ2RldW5ncG8ta3UsCisJCQkJU2VvdWwgIDE1MC0wMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy02OSAgIChoZXgpCQlOaXBwb24gQW50ZW5uYSBDby4sIEx0ZC4KKzAwMDM2OSAgICAgKGJhc2UgMTYpCQlOaXBwb24gQW50ZW5uYSBDby4sIEx0ZC4KKwkJCQlOby4gNDktOCwgTmlzaGlvZ3UsCisJCQkJNy1DaG9tZSBBcmFrYXdhLWt1LAorCQkJCVRva3lvICAxMTYtODU2MQorCQkJCUpBUEFOCisKKzAwLTAzLTZBICAgKGhleCkJCU1haW5uZXQsIEx0ZC4KKzAwMDM2QSAgICAgKGJhc2UgMTYpCQlNYWlubmV0LCBMdGQuCisJCQkJUC5PLiBCb3ggMjMyNAorCQkJCUtmYXIgU2FiYSA0NDY0MQorCQkJCUlTUkFFTAorCiswMC0wMy02QiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAzNkIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNkMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMzZDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTZEICAgKGhleCkJCVJ1bnRvcCwgSW5jLgorMDAwMzZEICAgICAoYmFzZSAxNikJCVJ1bnRvcCwgSW5jLgorCQkJCTEsIExhbmUgMjEsIEhzaW4gSHVhIFJvYWQsIEt1ZWlzaGFuCisJCQkJSW5kdXN0cmlhbCBQYXJrLCBUYW95dWFuIENpdHksCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy02RSAgIChoZXgpCQlOaWNvbiBTeXN0ZW1zIChQdHkpIExpbWl0ZWQKKzAwMDM2RSAgICAgKGJhc2UgMTYpCQlOaWNvbiBTeXN0ZW1zIChQdHkpIExpbWl0ZWQKKwkJCQkxMSBUZXJtbyBTdHJlZXQKKwkJCQlUZWNobm9wYXJrIFN0ZWxsZW5ib3NjaCwgNzYwMAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0wMy02RiAgIChoZXgpCQlUZWxzZXkgU1BBCiswMDAzNkYgICAgIChiYXNlIDE2KQkJVGVsc2V5IFNQQQorCQkJCVZpYWxlIERlbGwgSW5kdXN0cmlhLCAxCisJCQkJMzEgMDU1IFF1aW50bworCQkJCURpVHJldmlzby0gIAorCQkJCUlUQUxZCisKKzAwLTAzLTcwICAgKGhleCkJCU5YVFYsIEluYy4KKzAwMDM3MCAgICAgKGJhc2UgMTYpCQlOWFRWLCBJbmMuCisJCQkJNTk1NSBEZSBTb3RvIEF2ZSwgIzE2MAorCQkJCVdvb2RsYW5kIEhpbGxzIENBIDkxMzY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy03MSAgIChoZXgpCQlBY29teiBOZXR3b3JrcyBDb3JwLgorMDAwMzcxICAgICAoYmFzZSAxNikJCUFjb216IE5ldHdvcmtzIENvcnAuCisJCQkJN3RoIEZsLiwgV29vc2VvayBCbGRnLiwgMTAwNy0zNworCQkJCVNhZGFuZzEtZG9uZywgRG9uZ2phay1ndSwKKwkJCQlTZW91bCAgMTU2LTA5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTcyICAgKGhleCkJCVVMQU4KKzAwMDM3MiAgICAgKGJhc2UgMTYpCQlVTEFOCisJCQkJNUYtMywgTm8uIDMxLTEsIExhbmUgMTY5LAorCQkJCUthbmcgTmluZyBTdC4sIEhzaS1DaGluIENpdHksIFRhaXBlaSBIc2kKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtNzMgICAoaGV4KQkJQXNlbHNhbiBBLlMKKzAwMDM3MyAgICAgKGJhc2UgMTYpCQlBc2Vsc2FuIEEuUworCQkJCU1laG1ldCBBa2lmIEVyc295IE1haC4KKwkJCQkxNiBDYWQuIE5vLiAxNiBNYWN1bmtveS9BbmthcmEKKwkJCQlUVVJLRVkKKwkJCQlUVVJLRVkKKworMDAtMDMtNzQgICAoaGV4KQkJQ29udHJvbCBNaWNyb3N5c3RlbXMKKzAwMDM3NCAgICAgKGJhc2UgMTYpCQlDb250cm9sIE1pY3Jvc3lzdGVtcworCQkJCTQ4IFN0ZWFjaWUgRHJpdmUKKwkJCQlPdHRhd2EgT250YXJpbyBLMksgMkE5CisJCQkJQ0FOQURBCisKKzAwLTAzLTc1ICAgKGhleCkJCU5ldE1lZGlhLCBJbmMuCiswMDAzNzUgICAgIChiYXNlIDE2KQkJTmV0TWVkaWEsIEluYy4KKwkJCQkxMDk0MCBOLiBTdGFsbGFyZCBQbGFjZQorCQkJCVR1c2NvbiBBWiA4NTczNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNzYgICAoaGV4KQkJR3JhcGh0ZWMgVGVjaG5vbG9neSwgSW5jLgorMDAwMzc2ICAgICAoYmFzZSAxNikJCUdyYXBodGVjIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk0NSBQYXJrZXIsIFN1aXRlIEEKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTc3ICAgKGhleCkJCUdpZ2FiaXQgV2lyZWxlc3MKKzAwMDM3NyAgICAgKGJhc2UgMTYpCQlHaWdhYml0IFdpcmVsZXNzCisJCQkJMzA5OSBOLiBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNzggICAoaGV4KQkJSFVNQVggQ28uLCBMdGQuCiswMDAzNzggICAgIChiYXNlIDE2KQkJSFVNQVggQ28uLCBMdGQuCisJCQkJMjcxLTIsIFN1aC1oeXVuLURvbmcsCisJCQkJQnVuZGFuZy1HdSwgU3VuZ25hbS1DaXR5LCBLeW9uZ2dpLURvLCA0NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy03OSAgIChoZXgpCQlQcm9zY2VuZCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMzc5ICAgICAoYmFzZSAxNikJCVByb3NjZW5kIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMkYsIE5vLjM2LCBJbmR1c3RyeSBFLiBSZC4gSVYsCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy03QSAgIChoZXgpCQlUYWl5byBZdWRlbiBDby4sIEx0ZC4KKzAwMDM3QSAgICAgKGJhc2UgMTYpCQlUYWl5byBZdWRlbiBDby4sIEx0ZC4KKwkJCQk4LTEgU2FrYWUtQ2hvCisJCQkJVGFrYXNha2ktU2hpIEd1bm1hIDM3MC04NTIyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMy03QiAgIChoZXgpCQlJREVDIElaVU1JIENvcnBvcmF0aW9uCiswMDAzN0IgICAgIChiYXNlIDE2KQkJSURFQyBJWlVNSSBDb3Jwb3JhdGlvbgorCQkJCTctMzEsIE5pc2hpbWl5YWhhcmEKKwkJCQkxLUNob21lIFlvZG9nYXdhLWt1LiBPc2FrYSA1MzItODU1MAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDMtN0MgICAoaGV4KQkJQ29heCBNZWRpYQorMDAwMzdDICAgICAoYmFzZSAxNikJCUNvYXggTWVkaWEKKwkJCQkxMjIwIE9hayBJbmR1c3RyaWFsIExhbmUKKwkJCQlTdWl0ZSBCCisJCQkJQ3VtbWluZyBHQSAzMDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtN0QgICAoaGV4KQkJU3RlbGxjb20KKzAwMDM3RCAgICAgKGJhc2UgMTYpCQlTdGVsbGNvbQorCQkJCTEwNTI1IFZpc3RhIFNvcnJlbnRvIFBhcmt3YXkKKwkJCQlTdWl0ZSAxMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTdFICAgKGhleCkJCVBPUlRlY2ggQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDM3RSAgICAgKGJhc2UgMTYpCQlQT1JUZWNoIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTUwLCBTaGlhbmctU2h1bmcgTi4gUmQuLAorCQkJCVRhaWNodW5nIFRhaXdhbiA0MDMsIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtN0YgICAoaGV4KQkJQXRoZXJvcyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMzdGICAgICAoYmFzZSAxNikJCUF0aGVyb3MgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk1NDgwIEdyZWF0IEFtZXJpY2EgUGFya3dheQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy04MCAgIChoZXgpCQlTU0ggQ29tbXVuaWNhdGlvbnMgU2VjdXJpdHkgQ29ycC4KKzAwMDM4MCAgICAgKGJhc2UgMTYpCQlTU0ggQ29tbXVuaWNhdGlvbnMgU2VjdXJpdHkgQ29ycC4KKwkJCQlGcmVkcmlraW5rYXR1IDQyCisJCQkJRmluIDAxMDAgSGVsc2lua2kKKwkJCQlGSU5MQU5ECisJCQkJRklOTEFORAorCiswMC0wMy04MSAgIChoZXgpCQlJbmdlbmljbyBJbnRlcm5hdGlvbmFsCiswMDAzODEgICAgIChiYXNlIDE2KQkJSW5nZW5pY28gSW50ZXJuYXRpb25hbAorCQkJCTEvOSBBcG9sbG8gU3RyZWV0CisJCQkJV2Fycmlld29vZCBOU1cgMjEwMgorCQkJCUFVU1RSQUxJQQorCiswMC0wMy04MiAgIChoZXgpCQlBLU9uZSBDby4sIEx0ZC4KKzAwMDM4MiAgICAgKGJhc2UgMTYpCQlBLU9uZSBDby4sIEx0ZC4KKwkJCQk2LTktMjAsIFNoaW1vaWNoaWJhLWNobywKKwkJCQlLYXN1Z2FpLXNoaSwgQWljaGkta2VuLCA0ODYtMDg1MgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDMtODMgICAoaGV4KQkJTWV0ZXJhIE5ldHdvcmtzLCBJbmMuCiswMDAzODMgICAgIChiYXNlIDE2KQkJTWV0ZXJhIE5ldHdvcmtzLCBJbmMuCisJCQkJMTIwMiBSaWNoYXJkc29uIERyLgorCQkJCVN1aXRlIDEwMAorCQkJCVJpY2hhcmRzb24gVFggNzUwODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTg0ICAgKGhleCkJCUFFVEEKKzAwMDM4NCAgICAgKGJhc2UgMTYpCQlBRVRBCisJCQkJS2VwbGVyIDYKKwkJCQkxOC0yMiBhdmVudWUgRWRvdWFyZCBIZXJyaW90CisJCQkJTGUgUGxlc3NpcyBSb2JpbnNvbiAgOTIzNTAKKwkJCQlGUkFOQ0UKKworMDAtMDMtODUgICAoaGV4KQkJQWN0ZWxpcyBOZXR3b3JrcywgSW5jLgorMDAwMzg1ICAgICAoYmFzZSAxNikJCUFjdGVsaXMgTmV0d29ya3MsIEluYy4KKwkJCQkxIEJhemVsIFN0LiwgUC5PLkIuIDEwMTczCisJCQkJUGV0YWggLSBUaWt2YSA0OTEwMworCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wMy04NiAgIChoZXgpCQlIbyBOZXQsIEluYy4KKzAwMDM4NiAgICAgKGJhc2UgMTYpCQlIbyBOZXQsIEluYy4KKwkJCQlWZW50dXJlIENvbXBhbnkgQ2VudGVyCisJCQkJU2FuIDk0LTYgWWl1aS1Eb25nLCBQYWxkYWwtR3UsIFN1d29uLXNpLAorCQkJCUtPUkVBIDQ0Mi03NjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtODcgICAoaGV4KQkJQmxhemUgTmV0d29yayBQcm9kdWN0cworMDAwMzg3ICAgICAoYmFzZSAxNikJCUJsYXplIE5ldHdvcmsgUHJvZHVjdHMKKwkJCQk1MTgwIEhhY2llbmRhIERyaXZlCisJCQkJRHVibGluIENBIDk0NTY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy04OCAgIChoZXgpCQlGYXN0ZmFtZSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwMzg4ICAgICAoYmFzZSAxNikJCUZhc3RmYW1lIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJN0YsIE5vLiAxMTEsIEhzaW5nIERlIFJkLiwKKwkJCQlTYW5jaHVuZywgVGFpcGVpLAorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy04OSAgIChoZXgpCQlQbGFudHJvbmljcworMDAwMzg5ICAgICAoYmFzZSAxNikJCVBsYW50cm9uaWNzCisJCQkJMzQ1IEVuY2luYWwgU3QuCisJCQkJU2FudGEgQ3J1eiBDQSA5NTA2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOEEgICAoaGV4KQkJQW1lcmljYSBPbmxpbmUsIEluYy4KKzAwMDM4QSAgICAgKGJhc2UgMTYpCQlBbWVyaWNhIE9ubGluZSwgSW5jLgorCQkJCTQ0OTAwIFByZW50aWNlIERyaXZlCisJCQkJRHVsbGVzIFZBIDIwMTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy04QiAgIChoZXgpCQlQTFVTLU9ORSBJJlQsIEluYy4KKzAwMDM4QiAgICAgKGJhc2UgMTYpCQlQTFVTLU9ORSBJJlQsIEluYy4KKwkJCQk3RiwgQS1TYW4gVmVudHVyZSBUb3dlciwKKwkJCQlZYW5nSmFlLWRvbmcsIFNlb2Noby1rdSwgU2VvdWwsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtOEMgICAoaGV4KQkJVG90YWwgSW1wYWN0CiswMDAzOEMgICAgIChiYXNlIDE2KQkJVG90YWwgSW1wYWN0CisJCQkJMjk1IFdpbGxpcyBBdmUuCisJCQkJU3VpdGUgRQorCQkJCUNhbWFyaWxsbyBDQSA5MzAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOEQgICAoaGV4KQkJUENTIFJldmVudWUgQ29udHJvbCBTeXN0ZW1zLCBJbmMuCiswMDAzOEQgICAgIChiYXNlIDE2KQkJUENTIFJldmVudWUgQ29udHJvbCBTeXN0ZW1zLCBJbmMuCisJCQkJNTYwIFN5bHZhbiBBdmUuCisJCQkJRW5nbGV3b29kIENsaWZmcyBOSiAwNzYzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOEUgICAoaGV4KQkJQXRvZ2EgU3lzdGVtcywgSW5jLgorMDAwMzhFICAgICAoYmFzZSAxNikJCUF0b2dhIFN5c3RlbXMsIEluYy4KKwkJCQk0OTAyNiBNaWxtb250IERyaXZlCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOEYgICAoaGV4KQkJV2VpbnNjaGVsIENvcnBvcmF0aW9uCiswMDAzOEYgICAgIChiYXNlIDE2KQkJV2VpbnNjaGVsIENvcnBvcmF0aW9uCisJCQkJNTMwNSBTcGVjdHJ1bSBEcml2ZQorCQkJCUZyZWRlcmljayBNRCAyMTcwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOTAgICAoaGV4KQkJRGlnaXRhbCBWaWRlbyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMzkwICAgICAoYmFzZSAxNikJCURpZ2l0YWwgVmlkZW8gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk1MDAgVy4gQ3VtbWluZ3MgUGFyaworCQkJCVN1aXRlIDIwMDAKKwkJCQlXb2J1cm4gTUEgMDc4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTkxICAgKGhleCkJCUFkdmFuY2VkIERpZ2l0YWwgQnJvYWRjYXN0LCBMdGQuCiswMDAzOTEgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgRGlnaXRhbCBCcm9hZGNhc3QsIEx0ZC4KKwkJCQk4RiwgMTQ1IENodW5nIFNoYW4gTi4gUmQuIFNlYy4gMiwKKwkJCQlUYWlwZWksIDEwNCwKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtOTIgICAoaGV4KQkJSHl1bmRhaSBUZWxldGVrIENvLiwgTHRkLgorMDAwMzkyICAgICAoYmFzZSAxNikJCUh5dW5kYWkgVGVsZXRlayBDby4sIEx0ZC4KKwkJCQlCLTUwMSwgVGVjaG5vIFBhcmssIDE0OCBZYXRhcC1kb25nLAorCQkJCUJvb25kYW5nLWd1LCBTdW5nbmFtLXNpLCBLeXVuZ2dpLWRvLCA0NjMKKwkJCQlLT1JFQSBSZXB1YmxpYworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy05MyAgIChoZXgpCQlBcHBsZSBDb21wdXRlciwgSW5jLgorMDAwMzkzICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyLCBJbmMuCisJCQkJMjA2NTAgVmFsbGV5IEdyZWVuIERyLgorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOTQgICAoaGV4KQkJQ29ubmVjdCBPbmUKKzAwMDM5NCAgICAgKGJhc2UgMTYpCQlDb25uZWN0IE9uZQorCQkJCTIgSGFuYWdhciBTdHJlZXQKKwkJCQlLZmFyIFNhYmEgNDQ0MjUKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDMtOTUgICAoaGV4KQkJQ2FsaWZvcm5pYSBBbXBsaWZpZXIKKzAwMDM5NSAgICAgKGJhc2UgMTYpCQlDYWxpZm9ybmlhIEFtcGxpZmllcgorCQkJCTQ2MCBDYWxsZSBTYW4gUGFibG8KKwkJCQlDYW1hcmlsbG8gQ0EgOTMwMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTk2ICAgKGhleCkJCUVaIENhc3QgQ28uLCBMdGQuCiswMDAzOTYgICAgIChiYXNlIDE2KQkJRVogQ2FzdCBDby4sIEx0ZC4KKwkJCQk2dGggRmxvb3IsIEp1bmdBbmcgQnVpbGRpbmcsCisJCQkJOTktMSwgTm9uaHl1bi1Eb25nICgxMzUtMDEwKSBLYW5nbmFtLWt1LAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTk3ICAgKGhleCkJCVdhdGNoZnJvbnQgTGltaXRlZAorMDAwMzk3ICAgICAoYmFzZSAxNikJCVdhdGNoZnJvbnQgTGltaXRlZAorCQkJCTMgVmljdG9yaWEgV2FsaworCQkJCVdva2luZ2hhbSAgUkc0MCA1WUwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMy05OCAgIChoZXgpCQlXSVNJCiswMDAzOTggICAgIChiYXNlIDE2KQkJV0lTSQorCQkJCVdpbGhlbG0tU2lobi1TdHIuIDUtNworCQkJCUQtNzUyMjMgTmllZmVybi1PZXNjaGVsYnJvbm4gCisJCQkJR0VSTUFOWQorCiswMC0wMy05OSAgIChoZXgpCQlEb25nanUgSW5mb3JtYXRpb25zICYgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDAzOTkgICAgIChiYXNlIDE2KQkJRG9uZ2p1IEluZm9ybWF0aW9ucyAmIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorCQkJCSMzMDUsIEV1bnN1ayBCbGRnLiBTYW1zdW5nLWRvbmcKKwkJCQlLYW5nbmFtLWd1IFNlb3VsCisJCQkJUmVwdWJsaWMgb2YgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtOUEgICAoaGV4KQkJU2lDb25uZWN0CiswMDAzOUEgICAgIChiYXNlIDE2KQkJU2lDb25uZWN0CisJCQkJRGVsdGEgMTAwCisJCQkJV2VsdG9uIFJvYWQKKwkJCQlTd2luZG9uICBTTjUgN1hQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDMtOUIgICAoaGV4KQkJTmV0Q2hpcCBUZWNobm9sb2d5LCBJbmMuCiswMDAzOUIgICAgIChiYXNlIDE2KQkJTmV0Q2hpcCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMzM1IFBpb25lZXIgV2F5CisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOUMgICAoaGV4KQkJT3B0aU1pZ2h0IENvbW11bmljYXRpb25zLCBJbmMuCiswMDAzOUMgICAgIChiYXNlIDE2KQkJT3B0aU1pZ2h0IENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJOTgwIExpbmRhIFZpc3RhIEF2ZW51ZQorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTlEICAgKGhleCkJCVFpc2RhIENvcnBvcmF0aW9uCiswMDAzOUQgICAgIChiYXNlIDE2KQkJUWlzZGEgQ29ycG9yYXRpb24KKwkJCQkxNTcgU2hhbiBZaW5nIFJvYWQKKwkJCQlHdWVpU2hhbiBUYW95dWFuIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtOUUgICAoaGV4KQkJVGVyYSBTeXN0ZW0gQ28uLCBMdGQuCiswMDAzOUUgICAgIChiYXNlIDE2KQkJVGVyYSBTeXN0ZW0gQ28uLCBMdGQuCisJCQkJRG9vc3VuZyBCL0YgUm0gMzAyCisJCQkJNzY2LTEgU2hpbmNodW5nZG9uZyBTaGlodW5nIENpdHkgS3l1bmdraQorCQkJCVJlcHVibGljIG9mIEtvcmVhCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTlGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDM5RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1BMCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAzQTAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQTEgICAoaGV4KQkJSElQRVIgSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9uLCBJbmMuCiswMDAzQTEgICAgIChiYXNlIDE2KQkJSElQRVIgSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9uLCBJbmMuCisJCQkJMTY3NS03LCBTaW5pbC1kb25nLAorCQkJCVRhZWR1ay1ndSwgVGFlam9uLAorCQkJCTMwNi0yMzAgU291dGggS29yZWEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtQTIgICAoaGV4KQkJQ2F0YXB1bHQgQ29tbXVuaWNhdGlvbnMKKzAwMDNBMiAgICAgKGJhc2UgMTYpCQlDYXRhcHVsdCBDb21tdW5pY2F0aW9ucworCQkJCTE2MCBTLiBXaGlzbWFuIFJkLgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUEzICAgKGhleCkJCU1BVklYLCBMdGQuCiswMDAzQTMgICAgIChiYXNlIDE2KQkJTUFWSVgsIEx0ZC4KKwkJCQlQT0IgMjE3LCBZb2tuZWFtIElsbGl0LAorCQkJCTIwNjkyCisJCQkJSVNSQUVMCisKKzAwLTAzLUE0ICAgKGhleCkJCUltYXRpb24gQ29ycC4KKzAwMDNBNCAgICAgKGJhc2UgMTYpCQlJbWF0aW9uIENvcnAuCisJCQkJMSBJbWF0aW9uIFBsYWNlCisJCQkJRGlzY292ZXJ5IDJCLTUwCisJCQkJT2FrZGFsZSBNTiA1NTEyOC0zNDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1BNSAgIChoZXgpCQlNZWRlYSBDb3Jwb3JhdGlvbgorMDAwM0E1ICAgICAoYmFzZSAxNikJCU1lZGVhIENvcnBvcmF0aW9uCisJCQkJNTcwMSBMaW5kZXJvIENhbnlvbiBSZC4KKwkJCQlCbGRnLiAzLTEwMAorCQkJCVdldGxha2UgVmlsbGFnZSBDQSA5MTM2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQTYgICAoaGV4KQkJVHJheGl0IFRlY2hub2xvZ3ksIEluYy4KKzAwMDNBNiAgICAgKGJhc2UgMTYpCQlUcmF4aXQgVGVjaG5vbG9neSwgSW5jLgorCQkJCTI1NiBHcmVhdCBSb2FkLAorCQkJCVN1aXRlIDE2CisJCQkJTGl0dGxldG9uIE1BIDAxNDYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1BNyAgIChoZXgpCQlVbml4dGFyIFRlY2hub2xvZ3ksIEluYy4KKzAwMDNBNyAgICAgKGJhc2UgMTYpCQlVbml4dGFyIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxM0YgTm8uIDEwMCBNaW5nIENodWFuIFJvYWQKKwkJCQlIc2luIFRpZW4sIFRhaXBlaSwKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLUE4ICAgKGhleCkJCUlET1QgQ29tcHV0ZXJzLCBJbmMuCiswMDAzQTggICAgIChiYXNlIDE2KQkJSURPVCBDb21wdXRlcnMsIEluYy4KKwkJCQkzRi4sIE5vLiAxMzcsIExhbmUgMjM1CisJCQkJUGFvLUNoaWFvIFJvYWQsIEhzaW4tVGllbiBUYWlwZWkgQ291bnRyeQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy1BOSAgIChoZXgpCQlBWENFTlQgTWVkaWEgQUcKKzAwMDNBOSAgICAgKGJhc2UgMTYpCQlBWENFTlQgTWVkaWEgQUcKKwkJCQlUZWNobm9sb2dpZXBhcmsgMTMKKwkJCQkzMzEwMCBQYWRlcmJvcm4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMy1BQSAgIChoZXgpCQlXYXRsb3cKKzAwMDNBQSAgICAgKGJhc2UgMTYpCQlXYXRsb3cKKwkJCQkxMjQxIEJ1bmR5IEJsdmQuCisJCQkJV2lub25hIE1OIDU1OTg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1BQiAgIChoZXgpCQlCcmlkZ2UgSW5mb3JtYXRpb24gU3lzdGVtcworMDAwM0FCICAgICAoYmFzZSAxNikJCUJyaWRnZSBJbmZvcm1hdGlvbiBTeXN0ZW1zCisJCQkJNzE3IE9mZmljZSBQYXJrd2F5CisJCQkJU3QuIExvdWlzIE1PIDYzMTQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1BQyAgIChoZXgpCQlGcm9uaXVzIFNjaHdlaXNzbWFzY2hpbmVuCiswMDAzQUMgICAgIChiYXNlIDE2KQkJRnJvbml1cyBTY2h3ZWlzc21hc2NoaW5lbgorCQkJCUd1ZW50ZXIgRnJvbml1cyBTdHIuIDEKKwkJCQlBLTQ2MDAgV2Vpcy1UaGFsaGVpbQorCQkJCUFVU1RSSUEKKwkJCQlBVVNUUklBCisKKzAwLTAzLUFEICAgKGhleCkJCUVtZXJzb24gRW5lcmd5IFN5c3RlbXMgQUIKKzAwMDNBRCAgICAgKGJhc2UgMTYpCQlFbWVyc29uIEVuZXJneSBTeXN0ZW1zIEFCCisJCQkJU0UtMTQxIDgyIFN0b2NraG9sbQorCQkJCVNXRURFTgorCiswMC0wMy1BRSAgIChoZXgpCQlBbGxpZWQgQWR2YW5jZWQgTWFudWZhY3R1cmluZyBQdGUsIEx0ZC4KKzAwMDNBRSAgICAgKGJhc2UgMTYpCQlBbGxpZWQgQWR2YW5jZWQgTWFudWZhY3R1cmluZyBQdGUsIEx0ZC4KKwkJCQk3IEludGVybmF0aW9uYWwgQnVzaW5lc3MgUGFyaworCQkJCSMwMi0wMAorCQkJCVNpbmdhcG9yZSA2MDk5MTkKKwkJCQlTSU5HQVBPUkUKKworMDAtMDMtQUYgICAoaGV4KQkJUGFyYWdlYSBDb21tdW5pY2F0aW9ucworMDAwM0FGICAgICAoYmFzZSAxNikJCVBhcmFnZWEgQ29tbXVuaWNhdGlvbnMKKwkJCQkyMDcgUGVycnkgUGFya3dheQorCQkJCUdhaXRoZXJzYnVyZyBNRCAyMDg3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQjAgICAoaGV4KQkJWHNlbnNlIFRlY2hub2xvZ3kgQ29ycC4KKzAwMDNCMCAgICAgKGJhc2UgMTYpCQlYc2Vuc2UgVGVjaG5vbG9neSBDb3JwLgorCQkJCTExIEYsIDIzMiwgU2VjLiAzLCBDaGVuZ1RlaCBSZC4KKwkJCQlUYWlwZWkgVEFJV0FOLCAxMDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLUIxICAgKGhleCkJCUhvc3BpcmEgSW5jLgorMDAwM0IxICAgICAoYmFzZSAxNikJCUhvc3BpcmEgSW5jLgorCQkJCTc1NSBKYXJ2aXMgRHJpdmUKKwkJCQlNb3JnYW4gSGlsbCBDQSA5NTAzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQjIgICAoaGV4KQkJUmFkd2FyZQorMDAwM0IyICAgICAoYmFzZSAxNikJCVJhZHdhcmUKKwkJCQk4IEhhbXJwZSBIb2NodmltCisJCQkJSmVydXNhbGVtCisJCQkJSVNSQUVMCisKKzAwLTAzLUIzICAgKGhleCkJCUlBIExpbmsgU3lzdGVtcyBDby4sIEx0ZC4KKzAwMDNCMyAgICAgKGJhc2UgMTYpCQlJQSBMaW5rIFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJNkYtNCwgTm8uIDgxIEhzaW4gVGFpCisJCQkJV3UgUmQuLCBTZWMuIDEgSHNpaC1DaGloLCBUYWlwZWkgSHNpZW4sCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLUI0ICAgKGhleCkJCU1hY3JvdGVrIEludGVybmF0aW9uYWwgQ29ycC4KKzAwMDNCNCAgICAgKGJhc2UgMTYpCQlNYWNyb3RlayBJbnRlcm5hdGlvbmFsIENvcnAuCisJCQkJMkYsIE5vLiAyOCwgTGFuZSA0NgorCQkJCUt3YW5nIEZ1IDYgUm9hZCwKKwkJCQlUYWlwZWkgVGFpcGVpIFRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtQjUgICAoaGV4KQkJRW50cmEgVGVjaG5vbG9neSBDby4KKzAwMDNCNSAgICAgKGJhc2UgMTYpCQlFbnRyYSBUZWNobm9sb2d5IENvLgorCQkJCUZsLiAzLCBOby4gNSwgQWxsZXkgMiwKKwkJCQlTdS1XZWkgTGFuZSwgQ2h1bmctQ2hlbmcgUmQuLCBIc2luLURpZW4sCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLUI2ICAgKGhleCkJCVFTSSBDb3Jwb3JhdGlvbgorMDAwM0I2ICAgICAoYmFzZSAxNikJCVFTSSBDb3Jwb3JhdGlvbgorCQkJCTIyMTIgU291dGggV2VzdCBUZW1wbGUgIzUwCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUI3ICAgKGhleCkJCVpBQ0NFU1MgU3lzdGVtcworMDAwM0I3ICAgICAoYmFzZSAxNikJCVpBQ0NFU1MgU3lzdGVtcworCQkJCTI3NSBTaG9yZWxpbmUgRHJpdmUsICMxMTAKKwkJCQlSZWR3b29kIENpdHkgQ0EgOTQwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUI4ICAgKGhleCkJCU5ldEtpdCBTb2x1dGlvbnMsIExMQworMDAwM0I4ICAgICAoYmFzZSAxNikJCU5ldEtpdCBTb2x1dGlvbnMsIExMQworCQkJCTExMjUtQSBCdXNpbmVzcyBDZW50ZXIgQ2lyY2xlCisJCQkJVGhvdXNhbmQgT2FrcyBDQSA5MTMyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQjkgICAoaGV4KQkJSHVhbG9uZyBUZWxlY29tIENvLiwgTHRkLgorMDAwM0I5ICAgICAoYmFzZSAxNikJCUh1YWxvbmcgVGVsZWNvbSBDby4sIEx0ZC4KKwkJCQk5IEd1YW5naHVhIFN0LgorCQkJCUNoYW5nemhvdSwgSmlhbmdzdSwgMjEzMDAzCisJCQkJUC5SLiBDSElOQQorCQkJCUNISU5BCisKKzAwLTAzLUJBICAgKGhleCkJCU9yYWNsZSBDb3Jwb3JhdGlvbgorMDAwM0JBICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbgorCQkJCTE3IE5ldHdvcmsgQ2lyY2xlCisJCQkJQnVpbGRpbmcgMTcsIFVNUEsxNy0xMzEKKwkJCQlNZW5sbyBQYXJrIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1CQiAgIChoZXgpCQlTaWduYWwgQ29tbXVuaWNhdGlvbnMgTGltaXRlZAorMDAwM0JCICAgICAoYmFzZSAxNikJCVNpZ25hbCBDb21tdW5pY2F0aW9ucyBMaW1pdGVkCisJCQkJVW5pdCAyMTcsIDIvRiwgSEtJVEMsCisJCQkJNzIgVGF0IENoZWUgQXZlbnVlLCBLTE4uLAorCQkJCUhPTkcgS09ORworCQkJCUhPTkcgS09ORworCiswMC0wMy1CQyAgIChoZXgpCQlDT1QgR21iSAorMDAwM0JDICAgICAoYmFzZSAxNikJCUNPVCBHbWJICisJCQkJR3VldGVyc3RyYXNzZSA1CisJCQkJNjQ4MDcgRGllYnVyZworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAzLUJEICAgKGhleCkJCU9tbmlDbHVzdGVyIFRlY2hub2xvZ2llcywgSW5jLgorMDAwM0JEICAgICAoYmFzZSAxNikJCU9tbmlDbHVzdGVyIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTQ5NTAgQmx1ZSBMYWtlIERyaXZlCisJCQkJU3VpdGUgOTAwCisJCQkJQm9jYSBSYXRvbiBGTCAzMzQzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQkUgICAoaGV4KQkJTmV0aWxpdHkKKzAwMDNCRSAgICAgKGJhc2UgMTYpCQlOZXRpbGl0eQorCQkJCTI5OCBTb3V0aCBTdW5ueXZhbGUgQXZlLgorCQkJCVN1aWUgMTAyCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1CRiAgIChoZXgpCQlDZW50ZXJwb2ludCBCcm9hZGJhbmQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDAzQkYgICAgIChiYXNlIDE2KQkJQ2VudGVycG9pbnQgQnJvYWRiYW5kIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE3NDEgVGVjaG5vbG9neSBEcml2ZSwKKwkJCQlTdWl0ZSA0MDAKKwkJCQlTYW4gSm9zZSBDQSA5NTExMC0xMzEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1DMCAgIChoZXgpCQlSRlROQyBDby4sIEx0ZC4KKzAwMDNDMCAgICAgKGJhc2UgMTYpCQlSRlROQyBDby4sIEx0ZC4KKwkJCQkzRiwgMTYyNC0yNCwgQm9uZ2NoZW4tZG9uZworCQkJCUtpb25hay1ndSwgU2VvdWwKKwkJCQlTT1VUSCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy1DMSAgIChoZXgpCQlQYWNrZXQgRHluYW1pY3MgTHRkCiswMDAzQzEgICAgIChiYXNlIDE2KQkJUGFja2V0IER5bmFtaWNzIEx0ZAorCQkJCTIgQnVja3N0YW5lIFBhcmsKKwkJCQlFZGluYnVyZ2gsIFNjb3RsYW5kCisJCQkJVUsgRUgxMCBHUEEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMy1DMiAgIChoZXgpCQlTb2xwaG9uZSBLLksuCiswMDAzQzIgICAgIChiYXNlIDE2KQkJU29scGhvbmUgSy5LLgorCQkJCTItMTEtMSBLYW5kYXRzdWthc2EtY2hvCisJCQkJQ2hpeWFkYSwgVG9reW8KKwkJCQkxMDEtMDA0OCBKYXBhbgorCQkJCUpBUEFOCisKKzAwLTAzLUMzICAgKGhleCkJCU1pY3JvbmlrIE11bHRpbWVkaWEKKzAwMDNDMyAgICAgKGJhc2UgMTYpCQlNaWNyb25payBNdWx0aW1lZGlhCisJCQkJQnJ1ZWNrZW5zdHIuIDIKKwkJCQlELTUxMzc5IExldmVya3VzZW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMy1DNCAgIChoZXgpCQlUb21yYSBTeXN0ZW1zIEFTQQorMDAwM0M0ICAgICAoYmFzZSAxNikJCVRvbXJhIFN5c3RlbXMgQVNBCisJCQkJRHJlbmdzcnVkaGFnZW4gMgorCQkJCUJveCAyNzggTi0xMzcxIEFza2VyCisJCQkJTk9SV0FZCisJCQkJTk9SV0FZCisKKzAwLTAzLUM1ICAgKGhleCkJCU1vYm90aXggQUcKKzAwMDNDNSAgICAgKGJhc2UgMTYpCQlNb2JvdGl4IEFHCisJCQkJV2luZ2VydHN3ZWlsZXJob2YgNgorCQkJCUQtNjc3MjQgSG9yaW5nZW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMy1DNiAgIChoZXgpCQlJQ1VFIFN5c3RlbXMsIEluYy4KKzAwMDNDNiAgICAgKGJhc2UgMTYpCQlJQ1VFIFN5c3RlbXMsIEluYy4KKwkJCQkxNzQ4OSBHYWxlIEF2ZW51ZQorCQkJCUNpdHkgb2YgSW5kdXN0cnkgQ0EgOTE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUM3ICAgKGhleCkJCWhvcGYgRWxla3Ryb25payBHbWJICiswMDAzQzcgICAgIChiYXNlIDE2KQkJaG9wZiBFbGVrdHJvbmlrIEdtYkgKKwkJCQlOb3R0ZWJvaG1zdHJhc3NlIDQxCisJCQkJNTg1MTEgTHVlZGVuc2NoZWlkIAorCQkJCUdFUk1BTlkKKworMDAtMDMtQzggICAoaGV4KQkJQ01MIEVtZXJnZW5jeSBTZXJ2aWNlcworMDAwM0M4ICAgICAoYmFzZSAxNikJCUNNTCBFbWVyZ2VuY3kgU2VydmljZXMKKwkJCQk3NSBCb3VsZXZhcmQgbGEgVGVjaG5vbG9naWVzCisJCQkJSHVsbCwgUXVlYmVjIEpFMjNHNAorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMy1DOSAgIChoZXgpCQlURUNPTSBDby4sIEx0ZC4KKzAwMDNDOSAgICAgKGJhc2UgMTYpCQlURUNPTSBDby4sIEx0ZC4KKwkJCQkyMywgUiZEIFJvYWQgMgorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbi1DaHUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtQ0EgICAoaGV4KQkJTVRTIFN5c3RlbXMgQ29ycC4KKzAwMDNDQSAgICAgKGJhc2UgMTYpCQlNVFMgU3lzdGVtcyBDb3JwLgorCQkJCTMwMDEgU2hlbGRvbiBEcml2ZQorCQkJCUNhcnksIE5DIDI3NTEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1DQiAgIChoZXgpCQlOaXBwb24gU3lzdGVtcyBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKzAwMDNDQiAgICAgKGJhc2UgMTYpCQlOaXBwb24gU3lzdGVtcyBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKwkJCQkzMC0xMiwgS29teW8tY2hvLAorCQkJCVRha2FyYWJ1a2EtY2l0eSwgSHlvZ28sCisJCQkJNjY1LTAwNDUgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMy1DQyAgIChoZXgpCQlNb21lbnR1bSBDb21wdXRlciwgSW5jLgorMDAwM0NDICAgICAoYmFzZSAxNikJCU1vbWVudHVtIENvbXB1dGVyLCBJbmMuCisJCQkJMTgxNSBBc3RvbiBBdmVudWUKKwkJCQlTdWl0ZSAxMDcKKwkJCQlDYXJsc2JhZCBDQSA5MjAwOC03MzEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1DRCAgIChoZXgpCQlDbG92ZXJ0ZWNoLCBJbmMuCiswMDAzQ0QgICAgIChiYXNlIDE2KQkJQ2xvdmVydGVjaCwgSW5jLgorCQkJCTMtMS01IE5ha2EtY2hvIE11c2FzaGluby1zaGkKKwkJCQlUb2t5byAxODAtMDAwNiBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAzLUNFICAgKGhleCkJCUVURU4gVGVjaG5vbG9naWVzLCBJbmMuCiswMDAzQ0UgICAgIChiYXNlIDE2KQkJRVRFTiBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyRiwgTm8uIDksIExhbmUgMjM1LCBQYW8tQ2hpYW8gUmQuLAorCQkJCUhzaWVuIFRpZW4gQ2l0eSwgVGFpcGVpIEhzaWVuIDIzMQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy1DRiAgIChoZXgpCQlNdXhjb20sIEluYy4KKzAwMDNDRiAgICAgKGJhc2UgMTYpCQlNdXhjb20sIEluYy4KKwkJCQlEIDYwMiwgQnVuZGFuZyBUZWNobm9wYXJrICMxNTEKKwkJCQlZYXRhcCBEb25nLCBCdW5kYWcgR3UsIFN1bmduYW0gU2ksCisJCQkJS3l1bmdraSBEbyBLT1JFQSA0NjMtMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLUQwICAgKGhleCkJCUtPQU5LRUlTTyBDby4sIEx0ZC4KKzAwMDNEMCAgICAgKGJhc2UgMTYpCQlLT0FOS0VJU08gQ28uLCBMdGQuCisJCQkJWmlwIENvZGUgNzkxLTgwNDIKKwkJCQkyNzk4IDM2bWluYW1peW9zaGlkYS1NYXRpIE1hdHV5YW1hLUNpdHkKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAzLUQxICAgKGhleCkJCVRha2F5YSBDb3Jwb3JhdGlvbgorMDAwM0QxICAgICAoYmFzZSAxNikJCVRha2F5YSBDb3Jwb3JhdGlvbgorCQkJCURldmVsb3BtZW50IERpdmlzaW9uCisJCQkJNjYxLTEsIEliYXJhLWNobyBJYmFyYS1DaXR5IE9rYXlhbWEsIDcxNQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDMtRDIgICAoaGV4KQkJQ3Jvc3NiZWFtIFN5c3RlbXMsIEluYy4KKzAwMDNEMiAgICAgKGJhc2UgMTYpCQlDcm9zc2JlYW0gU3lzdGVtcywgSW5jLgorCQkJCTgwIENlbnRyYWwgU3RyZWV0CisJCQkJQm94Ym9yb3VnaCBNQSAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRDMgICAoaGV4KQkJSW50ZXJuZXQgRW5lcmd5IFN5c3RlbXMsIEluYy4KKzAwMDNEMyAgICAgKGJhc2UgMTYpCQlJbnRlcm5ldCBFbmVyZ3kgU3lzdGVtcywgSW5jLgorCQkJCTQyMTggVHJ1bWJvIEN0LgorCQkJCUZhaXJmYXggVkEgMjIwMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUQ0ICAgKGhleCkJCUFsbG9wdGljLCBJbmMuCiswMDAzRDQgICAgIChiYXNlIDE2KQkJQWxsb3B0aWMsIEluYy4KKwkJCQk2OTYwIEtvbGwgQ2VudGVyIFBhcmt3YXkKKwkJCQlTdWl0ZSAzMDAKKwkJCQlQbGVhc2FudG9uIENBIDk0NTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1ENSAgIChoZXgpCQlBZHZhbmNlZCBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMDNENSAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQkxNi0xNiBUYWthc2hpbWEtaG9uY2hvLAorCQkJCU51bWF6dSBTaGl6dW9rYSwKKwkJCQk0MTAwMDU1IEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDMtRDYgICAoaGV4KQkJUkFEVmlzaW9uLCBMdGQuCiswMDAzRDYgICAgIChiYXNlIDE2KQkJUkFEVmlzaW9uLCBMdGQuCisJCQkJMjQgUmF1bCBXYWxsZW5iZXJnIFN0LgorCQkJCVRlbC1Bdml2IDY5NzE5CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTAzLUQ3ICAgKGhleCkJCU5leHROZXQgV2lyZWxlc3MsIEluYy4KKzAwMDNENyAgICAgKGJhc2UgMTYpCQlOZXh0TmV0IFdpcmVsZXNzLCBJbmMuCisJCQkJOTU1NSBKYW1lcyBBdmUuIFNvLgorCQkJCVN1aXRlIDI3MAorCQkJCUJsb29taW5ndG9uIE1OIDU1NDMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1EOCAgIChoZXgpCQlpTVBhdGggTmV0d29ya3MsIEluYy4KKzAwMDNEOCAgICAgKGJhc2UgMTYpCQlpTVBhdGggTmV0d29ya3MsIEluYy4KKwkJCQkxNDMxIE1lcml2YWxlIFJkLgorCQkJCU5lcGVhbiwgT250YXJpbywKKwkJCQlDQU5BREEgSzJFIDFCOQorCQkJCUNBTkFEQQorCiswMC0wMy1EOSAgIChoZXgpCQlTZWNoZXJvbiBTQQorMDAwM0Q5ICAgICAoYmFzZSAxNikJCVNlY2hlcm9uIFNBCisJCQkJVW50ZXJtYXR0d2VnIDgKKwkJCQlDaC0zMDI3IEJlcm4KKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTAzLURBICAgKGhleCkJCVRha2FtaXNhd2EgQ3liZXJuZXRpY3MgQ28uLCBMdGQuCiswMDAzREEgICAgIChiYXNlIDE2KQkJVGFrYW1pc2F3YSBDeWJlcm5ldGljcyBDby4sIEx0ZC4KKwkJCQlOYWthbm8gSGVpd2EgQmxkZy4KKwkJCQk0OCA1LTItQ2hvbWUgQ2h1bywgTmFrYW5vLWt1IFRva3lvIDE2NC0wCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMy1EQiAgIChoZXgpCQlBcG9nZWUgRWxlY3Ryb25pY3MgQ29ycC4KKzAwMDNEQiAgICAgKGJhc2UgMTYpCQlBcG9nZWUgRWxlY3Ryb25pY3MgQ29ycC4KKwkJCQkzMTQ1IERvbmFsZCBEb3VnbGFzIExvb3AgU291dGgKKwkJCQlTYW50YSBNb25pY2EgQ0EgOTA0MDUtMzIxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtREMgICAoaGV4KQkJTGV4YXIgTWVkaWEsIEluYy4KKzAwMDNEQyAgICAgKGJhc2UgMTYpCQlMZXhhciBNZWRpYSwgSW5jLgorCQkJCTQ3NDIxIEJheXNpZGUgUGFya3dheQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUREICAgKGhleCkJCUNvbWFyayBDb3JwLgorMDAwM0REICAgICAoYmFzZSAxNikJCUNvbWFyayBDb3JwLgorCQkJCTkzIFdlc3QgU3QuCisJCQkJTWVkZmllbGQgTUEgMDIwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLURFICAgKGhleCkJCU9UQyBXaXJlbGVzcworMDAwM0RFICAgICAoYmFzZSAxNikJCU9UQyBXaXJlbGVzcworCQkJCTYwMiBDaGFybG90IEF2ZS4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtREYgICAoaGV4KQkJRGVzYW5hIFN5c3RlbXMKKzAwMDNERiAgICAgKGJhc2UgMTYpCQlEZXNhbmEgU3lzdGVtcworCQkJCTE4MDUgTWNDYW5kbGVzcyBBdmUuCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUUwICAgKGhleCkJCU1vdG9yb2xhLCBJbmMuCiswMDAzRTAgICAgIChiYXNlIDE2KQkJTW90b3JvbGEsIEluYy4KKwkJCQkxMzAxIEUuIEFsZ29ucXVpbiBSZC4KKwkJCQlTY2hhdW1idXJnIElMIDYwMTk2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1FMSAgIChoZXgpCQlXaW5tYXRlIENvbW11bmljYXRpb24sIEluYy4KKzAwMDNFMSAgICAgKGJhc2UgMTYpCQlXaW5tYXRlIENvbW11bmljYXRpb24sIEluYy4KKwkJCQk5RixOby4xMTEtNixTaGluZy1EZSBSZAorCQkJCVNhbi1DaHVuZywKKwkJCQlUYWlwZWkgICAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLUUyICAgKGhleCkJCUNvbXNwYWNlIENvcnBvcmF0aW9uCiswMDAzRTIgICAgIChiYXNlIDE2KQkJQ29tc3BhY2UgQ29ycG9yYXRpb24KKwkJCQk5NTUgRnJlZXBvcnQgUGt3eQorCQkJCVN1aXRlIDEwMAorCQkJCUNvcHBlbGwgVFggNzUwMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUUzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDNFMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1FNCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAzRTQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRTUgICAoaGV4KQkJSGVybXN0ZWR0IFNHCiswMDAzRTUgICAgIChiYXNlIDE2KQkJSGVybXN0ZWR0IFNHCisJCQkJQ2FybC1SZXV0aGVyIC0gU3RyLiAzCisJCQkJRC02ODMwNSBNYW5uaGVpbQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAzLUU2ICAgKGhleCkJCUVudG9uZSwgSW5jLgorMDAwM0U2ICAgICAoYmFzZSAxNikJCUVudG9uZSwgSW5jLgorCQkJCTI3NTUgQ2FtcHVzIERyIFN0ZSAyMzUKKwkJCQlTYW4gTWF0ZW8gQ0EgIDk0NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1FNyAgIChoZXgpCQlMb2dvc3RlayBDby4gTHRkLgorMDAwM0U3ICAgICAoYmFzZSAxNikJCUxvZ29zdGVrIENvLiBMdGQuCisJCQkJMTl0aCAxNSBTdW51c3UtQWNhZGVteSBUb3dlcgorCQkJCTI3Ny0xNyBTdW5nc3UtMmdhLCBTdW5nZG9uZy1ndQorCQkJCVNlb3VsIEtPUkVBIDEzMy0xMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtRTggICAoaGV4KQkJV2F2ZWxlbmd0aCBEaWdpdGFsIExpbWl0ZWQKKzAwMDNFOCAgICAgKGJhc2UgMTYpCQlXYXZlbGVuZ3RoIERpZ2l0YWwgTGltaXRlZAorCQkJCTEyIFZpbmNlbnQgQXZlbnVlCisJCQkJQ3Jvd25oaWxsIEJ1c2luZXNzIFBhcmsgTWlsdG9uIEtleW5lcywgQgorCQkJCU1LOCAwQUIgTUs4IDBBQiBFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDMtRTkgICAoaGV4KQkJQWthcmEgQ2FuYWRhLCBJbmMuCiswMDAzRTkgICAgIChiYXNlIDE2KQkJQWthcmEgQ2FuYWRhLCBJbmMuCisJCQkJMTUwIEthdGltYXZpayBSb2FkCisJCQkJS2FuYXRhIE9udGFyaW8KKwkJCQlDQU5BREEgSzJMIDJOMgorCQkJCUNBTkFEQQorCiswMC0wMy1FQSAgIChoZXgpCQlNZWdhIFN5c3RlbSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDNFQSAgICAgKGJhc2UgMTYpCQlNZWdhIFN5c3RlbSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyRiwgTm8uIDQxLCBMYW5lIDc2LAorCQkJCVJ1aSBLdWFuZyBSZC4sIE5laSBIdSAxMTQKKwkJCQlUYWlwZWkgVGFpcGVpIFRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtRUIgICAoaGV4KQkJQXRyaWNhCiswMDAzRUIgICAgIChiYXNlIDE2KQkJQXRyaWNhCisJCQkJNSBTaGVua2FyIFN0LiBQLk8uQi4gMTIyMzEKKwkJCQlIZXplbGlhIEluZHVzdHJpYWwgQXJlYQorCQkJCTQ2NzMzIDQ2NzMzIElTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wMy1FQyAgIChoZXgpCQlJQ0cgUmVzZWFyY2gsIEluYy4KKzAwMDNFQyAgICAgKGJhc2UgMTYpCQlJQ0cgUmVzZWFyY2gsIEluYy4KKwkJCQk3NzUgQiBUaGUgUXVlZW5zIFdheQorCQkJCVRvcm9udG8sIE9udGFyaW8KKwkJCQlNOFogMU4xIENBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMy1FRCAgIChoZXgpCQlTaGlua2F3YSBFbGVjdHJpYyBDby4sIEx0ZC4KKzAwMDNFRCAgICAgKGJhc2UgMTYpCQlTaGlua2F3YSBFbGVjdHJpYyBDby4sIEx0ZC4KKwkJCQkzLTItMjQgMyBjaG9tZQorCQkJCUtvbmFuIE5ha2FrdSBIaXJvc2hpbWEsIDczMC0wODI1LAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDMtRUUgICAoaGV4KQkJTUtOZXQgQ29ycG9yYXRpb24KKzAwMDNFRSAgICAgKGJhc2UgMTYpCQlNS05ldCBDb3Jwb3JhdGlvbgorCQkJCTcxMS1CIENoYXJjb3QgQXZlLgorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1FRiAgIChoZXgpCQlPbmVsaW5lIEFHCiswMDAzRUYgICAgIChiYXNlIDE2KQkJT25lbGluZSBBRworCQkJCVN0ZWluZmVsZHN0ci4gMworCQkJCTM5MTc5IEJhcmxlYmVuCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDMtRjAgICAoaGV4KQkJUmVkZmVybiBCcm9hZGJhbmQgTmV0d29ya3MKKzAwMDNGMCAgICAgKGJhc2UgMTYpCQlSZWRmZXJuIEJyb2FkYmFuZCBOZXR3b3JrcworCQkJCUxldmVsIDEsIDEgQ2VudHJhbCBBdmUuLAorCQkJCUF1c3RyYWxpYW4gVGVjaG5vbG9neSBQYXJrIEV2ZWxlaWdoLCBOU1cKKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtMDMtRjEgICAoaGV4KQkJQ2ljYWRhIFNlbWljb25kdWN0b3IsIEluYy4KKzAwMDNGMSAgICAgKGJhc2UgMTYpCQlDaWNhZGEgU2VtaWNvbmR1Y3RvciwgSW5jLgorCQkJCTgxMSBCYXJ0b24gU3ByaW5ncyBSZC4KKwkJCQlTdWl0ZSA1NTAKKwkJCQlBdXN0aW4gVFggNzg3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUYyICAgKGhleCkJCVNlbmVjYSBOZXR3b3JrcworMDAwM0YyICAgICAoYmFzZSAxNikJCVNlbmVjYSBOZXR3b3JrcworCQkJCTMwIFdlc3QgR3VkZSBEci4KKwkJCQlTdWl0ZSAyMDAKKwkJCQlSb2NrdmlsbGUgTUQgMjA4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUYzICAgKGhleCkJCURhenpsZSBNdWx0aW1lZGlhLCBJbmMuCiswMDAzRjMgICAgIChiYXNlIDE2KQkJRGF6emxlIE11bHRpbWVkaWEsIEluYy4KKwkJCQk0NzIxMSBCYXlzaWRlIFBhcmt3YXkKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1GNCAgIChoZXgpCQlOZXRCdXJuZXIKKzAwMDNGNCAgICAgKGJhc2UgMTYpCQlOZXRCdXJuZXIKKwkJCQkxMTMyNCBMZWdhY3kgQ2FueW9uIFBsLgorCQkJCVNhbiBEaWVnbyBDQSA5MjEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRjUgICAoaGV4KQkJQ2hpcDJDaGlwCiswMDAzRjUgICAgIChiYXNlIDE2KQkJQ2hpcDJDaGlwCisJCQkJMjI0OSBaYW5rZXIgUmQuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUY2ICAgKGhleCkJCUFsbGVncm8gTmV0d29ya3MsIEluYy4KKzAwMDNGNiAgICAgKGJhc2UgMTYpCQlBbGxlZ3JvIE5ldHdvcmtzLCBJbmMuCisJCQkJNjM5OSBTYW4gSWduYWNpbyBBdmVudWUKKwkJCQlTYW4gSm9zZSBDQSA5NTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRjcgICAoaGV4KQkJUGxhc3QtQ29udHJvbCBHbWJICiswMDAzRjcgICAgIChiYXNlIDE2KQkJUGxhc3QtQ29udHJvbCBHbWJICisJCQkJV2FsdGVyLUZyZWl0YWctU3RyLiAxNQorCQkJCTQyODk5IFJlbXNjaGVpZAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAzLUY4ICAgKGhleCkJCVNhbkNhc3RsZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDNGOCAgICAgKGJhc2UgMTYpCQlTYW5DYXN0bGUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMjEwNyBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTdWl0ZSA1MDAKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRjkgICAoaGV4KQkJUGxlaWFkZXMgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDNGOSAgICAgKGJhc2UgMTYpCQlQbGVpYWRlcyBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTI4MzAgTWFya2V0IExvb3AgIzEwNAorCQkJCVNvdXRoIExha2UgVFggNzYwOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUZBICAgKGhleCkJCVRpTWV0cmEgTmV0d29ya3MKKzAwMDNGQSAgICAgKGJhc2UgMTYpCQlUaU1ldHJhIE5ldHdvcmtzCisJCQkJNTAwIEVsbGlzIFN0LgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUZCICAgKGhleCkJCUVORUdBVEUgQ28uLEx0ZC4KKzAwMDNGQiAgICAgKGJhc2UgMTYpCQlFTkVHQVRFIENvLixMdGQuCisJCQkJMy0xNC00MCBTZW5yaW9rYSwKKwkJCQlTZXR0c3UtY2l0eSBPc2FrYSA1NjYtODY4NgorCQkJCUpBUEFOCisKKzAwLTAzLUZDICAgKGhleCkJCUludGVydGV4IERhdGEgQUIKKzAwMDNGQyAgICAgKGJhc2UgMTYpCQlJbnRlcnRleCBEYXRhIEFCCisJCQkJUmlzc25lbGVkZW4gNDUKKwkJCQkxNzQgNDQgU3VuZGJ5YmVyZworCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC0wMy1GRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAzRkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRkUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwM0ZFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUZGICAgKGhleCkJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorMDAwM0ZGICAgICAoYmFzZSAxNikJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorCQkJCTEgTWljcm9zb2Z0IFdheQorCQkJCVJlZG1vbmQgV0EgOTgwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTAwICAgKGhleCkJCUxFWE1BUksgSU5URVJOQVRJT05BTCwgSU5DLgorMDAwNDAwICAgICAoYmFzZSAxNikJCUxFWE1BUksgSU5URVJOQVRJT05BTCwgSU5DLgorCQkJCTc0MCBORVcgQ0lSQ0xFIFJEIC0gQkxERy4gIzAzNQorCQkJCUxFWElOR1RPTiBLWSA0MDU1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMDEgICAoaGV4KQkJT3Nha2kgRWxlY3RyaWMgQ28uLCBMdGQuCiswMDA0MDEgICAgIChiYXNlIDE2KQkJT3Nha2kgRWxlY3RyaWMgQ28uLCBMdGQuCisJCQkJMTEzMSwgRnVqaWt1Ym8sIE1peW9zaGltYWNoaSwKKwkJCQlJcnVtYS1ndW4sIFNhaXRhbWEgMzU0LTg1MDEsCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC0wMiAgIChoZXgpCQlOZXhzYW4gVGVjaG5vbG9naWVzLCBMdGQuCiswMDA0MDIgICAgIChiYXNlIDE2KQkJTmV4c2FuIFRlY2hub2xvZ2llcywgTHRkLgorCQkJCVBhcmtlciBDZW50cmUKKwkJCQlNYW5zZmllbGQgUmQKKwkJCQlEZXJieSAgREUyMSA0U1oKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC0wMyAgIChoZXgpCQlOZXhzaSBDb3Jwb3JhdGlvbgorMDAwNDAzICAgICAoYmFzZSAxNikJCU5leHNpIENvcnBvcmF0aW9uCisJCQkJMTk1OSBDb25jb3Vyc2UgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMDQgICAoaGV4KQkJTWFraW5vIE1pbGxpbmcgTWFjaGluZSBDby4sIEx0ZC4KKzAwMDQwNCAgICAgKGJhc2UgMTYpCQlNYWtpbm8gTWlsbGluZyBNYWNoaW5lIENvLiwgTHRkLgorCQkJCTQwMjMgTmFrYXRzdSwgQWlrYXdhLW1hY2hpLAorCQkJCUFpa28tZ3VuIEthbmFnYXdhIDI0My0wMzAzCisJCQkJSkFQQU4KKworMDAtMDQtMDUgICAoaGV4KQkJQUNOIFRlY2hub2xvZ2llcworMDAwNDA1ICAgICAoYmFzZSAxNikJCUFDTiBUZWNobm9sb2dpZXMKKwkJCQk5RiwgSGV5S2FuZyBCL0QsIDE1Ny0zNgorCQkJCVNhbnN1bmctZG9uZywgS2FuZ25hbWd1LAorCQkJCVNlb3VsIEtPUkVBICMxMzUtMDkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LTA2ICAgKGhleCkJCUZhLiBNZXRhYm94IEFHCiswMDA0MDYgICAgIChiYXNlIDE2KQkJRmEuIE1ldGFib3ggQUcKKwkJCQlEYWltbGVycmluZyAzNywKKwkJCQlELTMxMTM1IEhpbGRzaGVpbSwKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC0wNyAgIChoZXgpCQlUb3Bjb24gUG9zaXRpb25pbmcgU3lzdGVtcywgSW5jLgorMDAwNDA3ICAgICAoYmFzZSAxNikJCVRvcGNvbiBQb3NpdGlvbmluZyBTeXN0ZW1zLCBJbmMuCisJCQkJNTc1OCBXLiBMYXMgUG9zaXRhcyBCbHZkLgorCQkJCVBsZWFzYW50b24gQ0EgOTQ1ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTA4ICAgKGhleCkJCVNhbmtvIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwNDA4ICAgICAoYmFzZSAxNikJCVNhbmtvIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTMtODAyIHVlZGEgdGVucGFrdS1rdQorCQkJCW5hZ295YSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTA0LTA5ICAgKGhleCkJCUNyYXRvcyBOZXR3b3JrcworMDAwNDA5ICAgICAoYmFzZSAxNikJCUNyYXRvcyBOZXR3b3JrcworCQkJCTMxMyBMaXR0bGV0b24gUm9hZAorCQkJCVN1aXRlIDIwCisJCQkJQ2hlbG1zZm9yZCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMEEgICAoaGV4KQkJU2FnZSBTeXN0ZW1zCiswMDA0MEEgICAgIChiYXNlIDE2KQkJU2FnZSBTeXN0ZW1zCisJCQkJMTQyMCBIYXJib3IgQmF5IFBhcmt3YXkKKwkJCQlTdWl0ZSAxNjAKKwkJCQlBbGFtZWRhIENBIDk0NTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0wQiAgIChoZXgpCQkzY29tIEV1cm9wZSBMdGQuCiswMDA0MEIgICAgIChiYXNlIDE2KQkJM2NvbSBFdXJvcGUgTHRkLgorCQkJCTNjb20gQ2VudHJlCisJCQkJQm91bmRhcnkgV2F5LCBIZW1lbCBIZW1wc3RlYWQgSGVydGZvcmRzaAorCQkJCUhQMiA3WVUgVUsKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC0wQyAgIChoZXgpCQlLQU5OTyBXb3JrJ3MgTHRkLgorMDAwNDBDICAgICAoYmFzZSAxNikJCUtBTk5PIFdvcmsncyBMdGQuCisJCQkJMS01LTI1IEthbWl0b21pbm8sCisJCQkJS29rdXJha2l0YS1rdSwgS2l0YWt5dXN5dS1jaXR5LCBGdWt1b2thLQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtMEQgICAoaGV4KQkJQXZheWEsIEluYy4KKzAwMDQwRCAgICAgKGJhc2UgMTYpCQlBdmF5YSwgSW5jLgorCQkJCU9mZmljZSAxQTMyNQorCQkJCTMwNyBNaWRkbGV0b3duIExpbmNyb2Z0IFJvYWQKKwkJCQlMaW5jcm9mdCBOSiAwNzczOC0xNTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0wRSAgIChoZXgpCQlBVk0gR21iSAorMDAwNDBFICAgICAoYmFzZSAxNikJCUFWTSBHbWJICisJCQkJQWx0LU1vYWJpdCA5NQorCQkJCTEwNTU5IEJlcmxpbgorCQkJCUdFUk1BTlkKKworMDAtMDQtMEYgICAoaGV4KQkJQXN1cyBOZXR3b3JrIFRlY2hub2xvZ2llcywgSW5jLgorMDAwNDBGICAgICAoYmFzZSAxNikJCUFzdXMgTmV0d29yayBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMS0xLCBOby4gNjc1LCBTZWMuIDEsIEtpbmcta3VvIFJkLiwKKwkJCQlIc2luY2h1LAorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC0xMCAgIChoZXgpCQlTcGlubmFrZXIgTmV0d29ya3MsIEluYy4KKzAwMDQxMCAgICAgKGJhc2UgMTYpCQlTcGlubmFrZXIgTmV0d29ya3MsIEluYy4KKwkJCQkxMDcgR2FtbWEgRHJpdmUKKwkJCQlQaXR0c2J1cmdoIFBBIDE1MjM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0xMSAgIChoZXgpCQlJbmtyYSBOZXR3b3JrcywgSW5jLgorMDAwNDExICAgICAoYmFzZSAxNikJCUlua3JhIE5ldHdvcmtzLCBJbmMuCisJCQkJNDA5NzEgRW5jeWNsb3BlZGlhIENpcmNsZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTEyICAgKGhleCkJCVdhdmVTbWl0aCBOZXR3b3JrcywgSW5jLgorMDAwNDEyICAgICAoYmFzZSAxNikJCVdhdmVTbWl0aCBOZXR3b3JrcywgSW5jLgorCQkJCTQwIE5hZ29nIFBhcmsKKwkJCQlBY3RvbiBNQSAwMTcyMC0zNDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0xMyAgIChoZXgpCQlTTk9NIFRlY2hub2xvZ3kgQUcKKzAwMDQxMyAgICAgKGJhc2UgMTYpCQlTTk9NIFRlY2hub2xvZ3kgQUcKKwkJCQlIZWxtaG9sdHpzdHJhc3NlIDItOQorCQkJCUQtMTA1ODcgQmVybGluCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDQtMTQgICAoaGV4KQkJVW1lemF3YSBNdXNlbiBEZW5raSBDby4sIEx0ZC4KKzAwMDQxNCAgICAgKGJhc2UgMTYpCQlVbWV6YXdhIE11c2VuIERlbmtpIENvLiwgTHRkLgorCQkJCTE0LTMsIE1pbmFtaSAxLCBOaXNoaSA4LAorCQkJCUNodW8ta3UsIFNhcHBvcm8sCisJCQkJSG9ra2FpZG8gSkFQQU4gMDYwLTAwNjEKKwkJCQlKQVBBTgorCiswMC0wNC0xNSAgIChoZXgpCQlSYXN0ZW1lIFN5c3RlbXMgQ28uLCBMdGQuCiswMDA0MTUgICAgIChiYXNlIDE2KQkJUmFzdGVtZSBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCTg4Ni0yIE5paG9uZ2kgTmFrYWdvdS1tdXJhCisJCQkJTmFrYWt1YmlraS1ndW4gTmlpZ2F0YQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtMTYgICAoaGV4KQkJUGFya3MgUy9BIENvbXVuaWNhY29lcyBEaWdpdGFpcworMDAwNDE2ICAgICAoYmFzZSAxNikJCVBhcmtzIFMvQSBDb211bmljYWNvZXMgRGlnaXRhaXMKKwkJCQlBdi4gUGVybmFtYnVjbywgMTAwMQorCQkJCVBvcnRvLUFsZWdyZS1SUyBDRVAgOTAyNDAtMDA0CisJCQkJQlJBWklMCisJCQkJQlJBWklMCisKKzAwLTA0LTE3ICAgKGhleCkJCUVMQVUgQUcKKzAwMDQxNyAgICAgKGJhc2UgMTYpCQlFTEFVIEFHCisJCQkJRGlsbGJlcmcgMTIKKwkJCQk5NzgyOCBNYXJrdGhlaWRlbmZlbGQKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC0xOCAgIChoZXgpCQlUZWx0cm9uaWMgUy5BLlUuCiswMDA0MTggICAgIChiYXNlIDE2KQkJVGVsdHJvbmljIFMuQS5VLgorCQkJCVBvbGlnb25vIGRlIE1hbHBpY2EKKwkJCQlDYWxsZSBGIE9lc3RlIDUwMDU3IFphcmFnb3phCisJCQkJU1BBSU4KKwkJCQlTUEFJTgorCiswMC0wNC0xOSAgIChoZXgpCQlGaWJlcmN5Y2xlIE5ldHdvcmtzLCBJbmMuCiswMDA0MTkgICAgIChiYXNlIDE2KQkJRmliZXJjeWNsZSBOZXR3b3JrcywgSW5jLgorCQkJCTIwIFNvdXRoIFNhbnRhIENydXogQXZlLgorCQkJCVN1aXRlIDExMgorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMUEgICAoaGV4KQkJSW5lcyBUZXN0IGFuZCBNZWFzdXJlbWVudCBHbWJIICYgQ29LRworMDAwNDFBICAgICAoYmFzZSAxNikJCUluZXMgVGVzdCBhbmQgTWVhc3VyZW1lbnQgR21iSCAmIENvS0cKKwkJCQlBbiBkZXIgTXVlaGxlbmF1ZSA1CisJCQkJQmFkIE5lbm5kb3JmIDMxNTQyCisJCQkJR0VSTUFOWQorCiswMC0wNC0xQiAgIChoZXgpCQlCcmlkZ2V3b3JrcyBMdGQuCiswMDA0MUIgICAgIChiYXNlIDE2KQkJQnJpZGdld29ya3MgTHRkLgorCQkJCTEzNSBTb21lcmZvcmQgUm9hZAorCQkJCUNocmlzdGNodXJjaCBET1JTRVQgQkgyMyAzUFkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC0xQyAgIChoZXgpCQlpcERpYWxvZywgSW5jLgorMDAwNDFDICAgICAoYmFzZSAxNikJCWlwRGlhbG9nLCBJbmMuCisJCQkJMTc2MiBUZWNobm9sb2d5IERyaXZlCisJCQkJU3VpdGUgMTI0CisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTFEICAgKGhleCkJCUNvcmVnYSBvZiBBbWVyaWNhCiswMDA0MUQgICAgIChiYXNlIDE2KQkJQ29yZWdhIG9mIEFtZXJpY2EKKwkJCQlQLk8uIEJveCAxNTkKKwkJCQlCb3RoZWxsIFdBIDk4MDQxLTAxNTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTFFICAgKGhleCkJCVNoaWtva3UgSW5zdHJ1bWVudGF0aW9uIENvLiwgTHRkLgorMDAwNDFFICAgICAoYmFzZSAxNikJCVNoaWtva3UgSW5zdHJ1bWVudGF0aW9uIENvLiwgTHRkLgorCQkJCTc3NywgT29zYWNob3UsIFplbnRzdXVqaXNoaSwKKwkJCQlLYWdhd2EsIDc2NS0wMDUyLAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtMUYgICAoaGV4KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50LCBJbmMuCiswMDA0MUYgICAgIChiYXNlIDE2KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50LCBJbmMuCisJCQkJMi02LTIxIE1pbmFtaS1Bb3lhbWEKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA3LTAwNjIKKwkJCQlKQVBBTgorCiswMC0wNC0yMCAgIChoZXgpCQlTbGltIERldmljZXMsIEluYy4KKzAwMDQyMCAgICAgKGJhc2UgMTYpCQlTbGltIERldmljZXMsIEluYy4KKwkJCQkxMiBTb3V0aCBGaXJzdCBTdC4KKwkJCQlTdWl0ZSAxMDMKKwkJCQlTYW4gSm9zZSBDQSA5NTExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMjEgICAoaGV4KQkJT2N1bGFyIE5ldHdvcmtzCiswMDA0MjEgICAgIChiYXNlIDE2KQkJT2N1bGFyIE5ldHdvcmtzCisJCQkJMTI3MDAsIEZhaXIgTGFrZXMgQ2lyY2xlCisJCQkJU3VpdGUgMTAwCisJCQkJRmFpcmZheCBWQSAyMjAzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMjIgICAoaGV4KQkJR29yZG9uIEthcGVzLCBJbmMuCiswMDA0MjIgICAgIChiYXNlIDE2KQkJR29yZG9uIEthcGVzLCBJbmMuCisJCQkJNTUyMCBXLiBUb3VoeSBBdmUuCisJCQkJU2tva2llIElMIDYwMDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0yMyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAwNDIzICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTVM6ICBKRjMtNDIwCisJCQkJMjExMSBORSAyNXRoIEF2ZW51ZQorCQkJCUhpbGxzYm9ybyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMjQgICAoaGV4KQkJVE1DIHMuci5sLgorMDAwNDI0ICAgICAoYmFzZSAxNikJCVRNQyBzLnIubC4KKwkJCQkyMDIgVmlhIEEuIENvc3RhCisJCQkJNDAxMzQgLSBCb2xvZ25hCisJCQkJSVRBTFkKKwkJCQlJVEFMWQorCiswMC0wNC0yNSAgIChoZXgpCQlBdG1lbCBDb3Jwb3JhdGlvbgorMDAwNDI1ICAgICAoYmFzZSAxNikJCUF0bWVsIENvcnBvcmF0aW9uCisJCQkJTXVsdGltZWRpYSAmIENvbW11bmljYXRpb25zIEdyb3VwCisJCQkJMjIwMCBHYXRld2F5IENlbnRyZSwgU3VpdGUgMjAxCisJCQkJTW9ycmlzdmlsbGUgTkMgMjc1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTI2ICAgKGhleCkJCUF1dG9zeXMKKzAwMDQyNiAgICAgKGJhc2UgMTYpCQlBdXRvc3lzCisJCQkJMjAyIElsc2lucGFzdGVsLAorCQkJCTcyMS0yIE1PSzMtRG9uZyBZYW5nIENoZW9uLWt1LAorCQkJCVNlb3VsIFNlb3VsIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LTI3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDQyNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0yOCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA0MjggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMjkgICAoaGV4KQkJUGl4b3JkIENvcnBvcmF0aW9uCiswMDA0MjkgICAgIChiYXNlIDE2KQkJUGl4b3JkIENvcnBvcmF0aW9uCisJCQkJUm9vbSAzLCAxRiwgTm8uIDEzOTYsCisJCQkJQ2h1bmcgQ2hlbmcgUmQuIFRhb3l1YW4gQ2l0eSwgVGFveXVhbiBIcworCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC0yQSAgIChoZXgpCQlXaXJlbGVzcyBOZXR3b3JrcywgSW5jLgorMDAwNDJBICAgICAoYmFzZSAxNikJCVdpcmVsZXNzIE5ldHdvcmtzLCBJbmMuCisJCQkJMjMyMiBFbCBDYW1pbm8gUmVhbAorCQkJCVNhbiBNYXRlbyBDQSA5NDQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMkIgICAoaGV4KQkJSVQgQWNjZXNzIENvLiwgTHRkLgorMDAwNDJCICAgICAoYmFzZSAxNikJCUlUIEFjY2VzcyBDby4sIEx0ZC4KKwkJCQkzLTE3LTYsIFNoaW55b2tvaGFtYSwgS291aG9rdS1rdQorCQkJCVlva29oYW1hLXNoaSwgS2FuYWdhd2EgMjIyLTg1NDUKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTA0LTJDICAgKGhleCkJCU1pbmV0LCBJbmMuCiswMDA0MkMgICAgIChiYXNlIDE2KQkJTWluZXQsIEluYy4KKwkJCQkzRiBTZS1BIFZlbnR1cmUgVG93ZXIKKwkJCQk5NDYtMTIgRGFlY2hpLWRvbmcsIEdhbmduYW0tZ3UsIFNlb3VsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtMkQgICAoaGV4KQkJU2FyaWFuIFN5c3RlbXMsIEx0ZC4KKzAwMDQyRCAgICAgKGJhc2UgMTYpCQlTYXJpYW4gU3lzdGVtcywgTHRkLgorCQkJCUZsb29kbGlnaHQgSG91c2UKKwkJCQlSaXZlcnNpZGUgQnVzaW5lc3MgUGFyayAgTGVlZHMgUm9hZCwgSWxrCisJCQkJV2VzdCBZb3Jrc2hpcmUgRU5HTEFORCBMUzI5IDhKWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA0LTJFICAgKGhleCkJCU5ldG91cyBUZWNobm9sb2dpZXMsIEx0ZC4KKzAwMDQyRSAgICAgKGJhc2UgMTYpCQlOZXRvdXMgVGVjaG5vbG9naWVzLCBMdGQuCisJCQkJMTAwNiwgQmxvY2sgQSwKKwkJCQlHb29kVmlldyBJbmR1c3RyaWFsIEJ1aWxkaW5nLCBLaW4gRmF0IFN0CisJCQkJSE9ORyBLT05HCisJCQkJSE9ORyBLT05HCisKKzAwLTA0LTJGICAgKGhleCkJCUludGVybmF0aW9uYWwgQ29tbXVuaWNhdGlvbnMgUHJvZHVjdHMsIEluYy4KKzAwMDQyRiAgICAgKGJhc2UgMTYpCQlJbnRlcm5hdGlvbmFsIENvbW11bmljYXRpb25zIFByb2R1Y3RzLCBJbmMuCisJCQkJNDMyNSBXb29kbGFuZCBQYXJrIERyaXZlCisJCQkJU3VpdGUgMTAxCisJCQkJV2VzdCBNZWxib3VybmUgRkwgMzI5MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTMwICAgKGhleCkJCU5ldGdlbQorMDAwNDMwICAgICAoYmFzZSAxNikJCU5ldGdlbQorCQkJCTI3IHJ1ZSBkJ09ybGVhbnMKKwkJCQk5MiAyMDAgTmV1aWxsdCBzL1NlaW5lCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTA0LTMxICAgKGhleCkJCUdsb2JhbFN0cmVhbXMsIEluYy4KKzAwMDQzMSAgICAgKGJhc2UgMTYpCQlHbG9iYWxTdHJlYW1zLCBJbmMuCisJCQkJMjg4MiBQcm9zcGVjdCBQYXJrIERyaXZlCisJCQkJU3VpdGUgMzUwCisJCQkJUmFuY2hvIENvcmRvdmEgQ0EgOTU2NzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTMyICAgKGhleCkJCVZveWV0cmEgVHVydGxlIEJlYWNoLCBJbmMuCiswMDA0MzIgICAgIChiYXNlIDE2KQkJVm95ZXRyYSBUdXJ0bGUgQmVhY2gsIEluYy4KKwkJCQkxNTAgQ2xlYXJicm9vayBSb2FkLCBTdWl0ZSAxNjIKKwkJCQlFbG1zZm9yZCBOWSAxMDUyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMzMgICAoaGV4KQkJQ3liZXJib2FyZCBBL1MKKzAwMDQzMyAgICAgKGJhc2UgMTYpCQlDeWJlcmJvYXJkIEEvUworCQkJCUtsb2V2ZXJtYXJrZW4gMTIwCisJCQkJREstNzE5MCBCaWxsdW5kCisJCQkJREVOTUFSSworCQkJCURFTk1BUksKKworMDAtMDQtMzQgICAoaGV4KQkJQWNjZWxlbnQgU3lzdGVtcywgSW5jLgorMDAwNDM0ICAgICAoYmFzZSAxNikJCUFjY2VsZW50IFN5c3RlbXMsIEluYy4KKwkJCQkyNjIwIFJpZGdld29vZCBSZC4sCisJCQkJU3VpdGUgMzAwCisJCQkJQWtyb24gT0ggNDQzMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTM1ICAgKGhleCkJCUNvbXB0ZWsgSW50ZXJuYXRpb25hbCwgSW5jLgorMDAwNDM1ICAgICAoYmFzZSAxNikJCUNvbXB0ZWsgSW50ZXJuYXRpb25hbCwgSW5jLgorCQkJCTExIEZsb29kbGlnaHQgU3QuCisJCQkJQm9zdG9uIE1BIDAyMTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0zNiAgIChoZXgpCQlFTEFOc2F0IFRlY2hub2xvZ2llcywgSW5jLgorMDAwNDM2ICAgICAoYmFzZSAxNikJCUVMQU5zYXQgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJTm8uIDExLCBMYW5lIDE5LCBQYXRlaCBSb2FkLAorCQkJCUhzaW5jaHUgVEFJV0FOLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LTM3ICAgKGhleCkJCVBvd2luIEluZm9ybWF0aW9uIFRlY2hub2xvZ3ksIEluYy4KKzAwMDQzNyAgICAgKGJhc2UgMTYpCQlQb3dpbiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBJbmMuCisJCQkJOEYsIE5vLiA3MCwgWmhvdS1aIFN0LgorCQkJCTExNCBOZWktSHUgVGFpcGVpCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LTM4ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwNDM4ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCURlcGFydG1lbnQgNjgwMAorCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwIEJyYW1wdG9uLCBPTgorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wNC0zOSAgIChoZXgpCQlSb3NjbyBFbnRlcnRhaW5tZW50IFRlY2hub2xvZ3ksIEluYy4KKzAwMDQzOSAgICAgKGJhc2UgMTYpCQlSb3NjbyBFbnRlcnRhaW5tZW50IFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyMTgxIE5XIEZyb250IEF2ZS4KKwkJCQlQb3J0bGFuZCBPUiA5NzIwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtM0EgICAoaGV4KQkJSW50ZWxsaWdlbnQgVGVsZWNvbW11bmljYXRpb25zLCBJbmMuCiswMDA0M0EgICAgIChiYXNlIDE2KQkJSW50ZWxsaWdlbnQgVGVsZWNvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTY4Ny0yLCBTaW5pbC1kb25nCisJCQkJRGFlZG9rLWd1LCBUYWVqb24KKwkJCQlTT1VUSCBLT1JFQSAzMDYtMjMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LTNCICAgKGhleCkJCUxhdmEgQ29tcHV0ZXIgTWZnLiwgSW5jLgorMDAwNDNCICAgICAoYmFzZSAxNikJCUxhdmEgQ29tcHV0ZXIgTWZnLiwgSW5jLgorCQkJCTIgVnVsY2FuIFN0LgorCQkJCUV0b2JpY29rZSwgT250YXJpbworCQkJCUNBTkFEQSBNOVctMUwyCisJCQkJQ0FOQURBCisKKzAwLTA0LTNDICAgKGhleCkJCVNPTk9TIENvLiwgTHRkLgorMDAwNDNDICAgICAoYmFzZSAxNikJCVNPTk9TIENvLiwgTHRkLgorCQkJCSM3MjUgUHVuZ3NhbiBBcHQuIEZhY3RvcnkKKwkJCQkxMTQxLTIgQmFpa3Nlb2ssIGlsc2FuLCBHb3lhbmcsIEd5ZW9uZ2dpCisJCQkJUmVwLiBvZiBLT1JFQSBaaXAgQ29kZTogNDExLTgxNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC0zRCAgIChoZXgpCQlJTkRFTCBBRworMDAwNDNEICAgICAoYmFzZSAxNikJCUlOREVMIEFHCisJCQkJVHVmaXdpcyAyNgorCQkJCUNILTgzMzIgUnVzc2lrb24KKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA0LTNFICAgKGhleCkJCVRlbGVuY29tbQorMDAwNDNFICAgICAoYmFzZSAxNikJCVRlbGVuY29tbQorCQkJCTI1NTEgV2Fsc2ggQXZlbnVlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTNGICAgKGhleCkJCUVTVGVlbSBXaXJlbGVzcyBNb2RlbXMsIEluYworMDAwNDNGICAgICAoYmFzZSAxNikJCUVTVGVlbSBXaXJlbGVzcyBNb2RlbXMsIEluYworCQkJCTQxNSBOLiBRdWF5IFN0LiwgU3VpdGUgNAorCQkJCUtlbm5ld2ljayBXQSA5OTMzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNDAgICAoaGV4KQkJY3liZXJQSVhJRSwgSW5jLgorMDAwNDQwICAgICAoYmFzZSAxNikJCWN5YmVyUElYSUUsIEluYy4KKwkJCQk2OCBFLiBXYWNrZXIgUGxhY2UsCisJCQkJU3VpdGUgNjAwCisJCQkJQ2hpY2FnbyBJTCA2MDYwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNDEgICAoaGV4KQkJSGFsZiBEb21lIFN5c3RlbXMsIEluYy4KKzAwMDQ0MSAgICAgKGJhc2UgMTYpCQlIYWxmIERvbWUgU3lzdGVtcywgSW5jLgorCQkJCTE1NSBCLTEgTW9mZmV0IFBhcmsgRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTQyICAgKGhleCkJCU5BQ1QKKzAwMDQ0MiAgICAgKGJhc2UgMTYpCQlOQUNUCisJCQkJMTkxIFcuIDUyMDAgTi4KKwkJCQlQcm92byBVVCA4NDYwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNDMgICAoaGV4KQkJQWdpbGVudCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDQ0MyAgICAgKGJhc2UgMTYpCQlBZ2lsZW50IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTUzMDEgU3RldmVucyBDcmVlayBCb3VsZXZhcmQKKwkJCQlNYWlsc3RvcCA1NEwtU1EKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNDQgICAoaGV4KQkJV2VzdGVybiBNdWx0aXBsZXggQ29ycG9yYXRpb24KKzAwMDQ0NCAgICAgKGJhc2UgMTYpCQlXZXN0ZXJuIE11bHRpcGxleCBDb3Jwb3JhdGlvbgorCQkJCTExOTYgQm9ycmVnYXMgQXZlbnVlCisJCQkJU3VpdGUgNTAwCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC00NSAgIChoZXgpCQlMTVMgU2thbGFyIEluc3RydW1lbnRzIEdtYkgKKzAwMDQ0NSAgICAgKGJhc2UgMTYpCQlMTVMgU2thbGFyIEluc3RydW1lbnRzIEdtYkgKKwkJCQlXaWxsaS1FaWNobGVyLVN0ciAxMQorCQkJCUQtMzcwNzkgR29ldHRpbmdlbgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTA0LTQ2ICAgKGhleCkJCUNZWkVOVEVDSCBDby4sIEx0ZC4KKzAwMDQ0NiAgICAgKGJhc2UgMTYpCQlDWVpFTlRFQ0ggQ28uLCBMdGQuCisJCQkJNjAxIEV1bmt5ZW9uZyBCL0QgMTQxLTMxLAorCQkJCVNhbXN1bmctZG9uZywgR2FuZ25hbS1ndSwgU2VvdWwsCisJCQkJMTM1LTg3NiBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC00NyAgIChoZXgpCQlBY3Jvd2F2ZSBTeXN0ZW1zIENvLiwgTHRkLgorMDAwNDQ3ICAgICAoYmFzZSAxNikJCUFjcm93YXZlIFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJTWFydSBCL0QgODYtNiwgTm9uaHl1bi1Eb25nCisJCQkJR2FuZ25hbS1ndSwgU2VvdWwKKwkJCQlLT1JFQSB6aXA6IDEzNS04MTgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtNDggICAoaGV4KQkJUG9sYXJvaWQgQ29ycG9yYXRpb24KKzAwMDQ0OCAgICAgKGJhc2UgMTYpCQlQb2xhcm9pZCBDb3Jwb3JhdGlvbgorCQkJCTMwMCBCYWtlciBBdmVudWUKKwkJCQlDb25jb3JkIE1BIDAxNzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC00OSAgIChoZXgpCQlNYXBsZXRyZWUgTmV0d29ya3MKKzAwMDQ0OSAgICAgKGJhc2UgMTYpCQlNYXBsZXRyZWUgTmV0d29ya3MKKwkJCQkzMTUgTm9yd29vZCBQYXJrIFNvdXRoCisJCQkJTm9yd29vZCBNQSAwMjA2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNEEgICAoaGV4KQkJaVBvbGljeSBOZXR3b3JrcywgSW5jLgorMDAwNDRBICAgICAoYmFzZSAxNikJCWlQb2xpY3kgTmV0d29ya3MsIEluYy4KKwkJCQk0NzQ2NyBGcmVtb250IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNEIgICAoaGV4KQkJTlZJRElBCiswMDA0NEIgICAgIChiYXNlIDE2KQkJTlZJRElBCisJCQkJMzUzNSBNb25yb2UgU3QuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTRDICAgKGhleCkJCUpFTk9QVElLCiswMDA0NEMgICAgIChiYXNlIDE2KQkJSkVOT1BUSUsKKwkJCQlMYXNlciwgT3B0aWssIFN5c3RlbWUgR21iSAorCQkJCUVpbmthdWYsIFBydXNzaW5nc3RyLiA0MSBELTA3NzQ1IEplbmEKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC00RCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA0NEQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNEUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNDRFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTRGICAgKGhleCkJCUxldWtoYXJkdCBTeXN0ZW1lbGVrdHJvbmlrIEdtYkgKKzAwMDQ0RiAgICAgKGJhc2UgMTYpCQlMZXVraGFyZHQgU3lzdGVtZWxla3Ryb25payBHbWJICisJCQkJUnVkb2xmLURpZXNlbC1TdHIuIDE3CisJCQkJNzg1MzIgVHV0dGxpbmdlbgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTA0LTUwICAgKGhleCkJCURNRCBDb21wdXRlcnMgU1JMCiswMDA0NTAgICAgIChiYXNlIDE2KQkJRE1EIENvbXB1dGVycyBTUkwKKwkJCQlWaWEgTW9udmlzbywgMTQKKwkJCQkxMDA5MCBWaWxsYXJiYXNzZSAoVG8pCisJCQkJSVRBTFkKKwkJCQlJVEFMWQorCiswMC0wNC01MSAgIChoZXgpCQlNZWRyYWQsIEluYy4KKzAwMDQ1MSAgICAgKGJhc2UgMTYpCQlNZWRyYWQsIEluYy4KKwkJCQlPbmUgTWVkcmFkIERyaXZlCisJCQkJSW5kaWFub2xhIFBBIDE1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC01MiAgIChoZXgpCQlSb2NrZXRMb2dpeCwgSW5jLgorMDAwNDUyICAgICAoYmFzZSAxNikJCVJvY2tldExvZ2l4LCBJbmMuCisJCQkJNjUwNCBJbnRlcm5hdGlvbmFsIFBhcmt3YXkKKwkJCQlTdWl0ZSAxMjAwCisJCQkJUGxhbm8gVFggNzUwOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTUzICAgKGhleCkJCVlvdHRhWW90dGEsIEluYy4KKzAwMDQ1MyAgICAgKGJhc2UgMTYpCQlZb3R0YVlvdHRhLCBJbmMuCisJCQkJNjAyMC0gMTA0IFN0cmVldAorCQkJCUVkbW9udG9uLCBBQiAgVDZIIDVTNAorCQkJCUNBTkFEQQorCiswMC0wNC01NCAgIChoZXgpCQlRdWFkcmlnYSBVSworMDAwNDU0ICAgICAoYmFzZSAxNikJCVF1YWRyaWdhIFVLCisJCQkJQmFpcmQgSG91c2UKKwkJCQlBcmxpbmd0b24gQnVzaW5lc3MgUGFyayBUaGVhbGUgUmVhZGluZyBSCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA0LTU1ICAgKGhleCkJCUFOVEFSQS5uZXQKKzAwMDQ1NSAgICAgKGJhc2UgMTYpCQlBTlRBUkEubmV0CisJCQkJNzQ3IENhbWRlbiBBdmUuCisJCQkJU3VpdGUgQQorCQkJCUNhbXBiZWxsIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC01NiAgIChoZXgpCQlNb3Rvcm9sYSBQVFAgSW5jCiswMDA0NTYgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgUFRQIEluYworCQkJCVVuaXQgMUEsIExpbmhheSBCdXNpbmVzcyBQYXJrLAorCQkJCUVhc3Rlcm4gUm9hZCwKKwkJCQlBc2hidXJ0b24gRGV2b24gVFExMyA3VVAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC01NyAgIChoZXgpCQlVbml2ZXJzYWwgQWNjZXNzIFRlY2hub2xvZ3ksIEluYy4KKzAwMDQ1NyAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgQWNjZXNzIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyIEZsLiwgTm8uIDUsIEFsbGV5IDIyLAorCQkJCUxhbmUgNTEzLCBKdWkgS3VhbmcgUm9hZCwKKwkJCQlOZWkgSHUgVGFpcGVpLCBUQUlXQU4gMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC01OCAgIChoZXgpCQlGdXNpb24gWCBDby4sIEx0ZC4KKzAwMDQ1OCAgICAgKGJhc2UgMTYpCQlGdXNpb24gWCBDby4sIEx0ZC4KKwkJCQkjOTA1IEhhbnNvbCBUZWNobm8gVG93bgorCQkJCTE2LTEgRGFuZy1KdW5nIERvbmcgS3VuLVBvIEt5dW5nLUtpIGRvIEsKKwkJCQlaaXAgNDM1LTAzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC01OSAgIChoZXgpCQlWZXJpc3RhciBDb3Jwb3JhdGlvbgorMDAwNDU5ICAgICAoYmFzZSAxNikJCVZlcmlzdGFyIENvcnBvcmF0aW9uCisJCQkJNzI3IEFsbHN0b24gV2F5CisJCQkJQmVya2VsZXkgQ0EgOTQ3MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTVBICAgKGhleCkJCVRoZSBMaW5rc3lzIEdyb3VwLCBJbmMuCiswMDA0NUEgICAgIChiYXNlIDE2KQkJVGhlIExpbmtzeXMgR3JvdXAsIEluYy4KKwkJCQkxNzQwMSBBcm1zdHJvbmcgQXZlLgorCQkJCUlydmluZSBDQSA5MjYxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNUIgICAoaGV4KQkJVGVjaHNhbiBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMDQ1QiAgICAgKGJhc2UgMTYpCQlUZWNoc2FuIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCU5vcnRoIFdpbmcKKwkJCQk0MyBIaWdoIFN0cmVldCBGYXJlaGFtLCBIYW50cyBQMDE2IDdCUQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDQtNUMgICAoaGV4KQkJTW9iaXdhdmUgUHRlIEx0ZAorMDAwNDVDICAgICAoYmFzZSAxNikJCU1vYml3YXZlIFB0ZSBMdGQKKwkJCQlCbGsgMTYsIEthbGxhbmcgUGxhY2UKKwkJCQkjMDctMDEvMDQKKwkJCQkzMzkxNTYKKwkJCQlTSU5HQVBPUkUKKworMDAtMDQtNUQgICAoaGV4KQkJQkVLQSBFbGVrdHJvbmlrCiswMDA0NUQgICAgIChiYXNlIDE2KQkJQkVLQSBFbGVrdHJvbmlrCisJCQkJU2llbWVuc3RyYXNzZSAyOQorCQkJCUVyZnRzdGFkdCA1MDM3NAorCQkJCUdFUk1BTlkKKworMDAtMDQtNUUgICAoaGV4KQkJUG9seVRyYXggSW5mb3JtYXRpb24gVGVjaG5vbG9neSBBRworMDAwNDVFICAgICAoYmFzZSAxNikJCVBvbHlUcmF4IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQUcKKwkJCQlNYXJ0aW4tS29sbGFyIC0gU3RyLiA1CisJCQkJRC04MTgyOSBNdW5jaGVuCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDQtNUYgICAoaGV4KQkJRXZhbHVlIFRlY2hub2xvZ3ksIEluYy4KKzAwMDQ1RiAgICAgKGJhc2UgMTYpCQlFdmFsdWUgVGVjaG5vbG9neSwgSW5jLgorCQkJCTVGLTcsIE5vLiAxMzAsIENoaWVuIEthbmcgUm9hZCwKKwkJCQlDaHVuZyBIbyBDaXR5LCBUYWlwZWkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtNjAgICAoaGV4KQkJS25pbGluayBUZWNobm9sb2d5LCBJbmMuCiswMDA0NjAgICAgIChiYXNlIDE2KQkJS25pbGluayBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTBGLCAjOTYsIEhzaW4gVGFpIFd1IFJkLiwKKwkJCQlTZWMuIDEsIEhzaSBDaGloLCBUYWlwZWkgSHNpZW4sCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC02MSAgIChoZXgpCQlFUE9YIENvbXB1dGVyIENvLiwgTHRkLgorMDAwNDYxICAgICAoYmFzZSAxNikJCUVQT1ggQ29tcHV0ZXIgQ28uLCBMdGQuCisJCQkJMTFGLCAjMzQ2LCBDaHVuZyBTYW4gUmQuCisJCQkJU2VjLiAyLCBDaHVuZyBIbyBDaXR5LCBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LTYyICAgKGhleCkJCURBS09TIERhdGEgJiBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorMDAwNDYyICAgICAoYmFzZSAxNikJCURBS09TIERhdGEgJiBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorCQkJCTJuZCBGbG9vciBCZXRoZWwgQnVpbGRpbmcgMzI0LTEKKwkJCQlZYW5namFlLWRvbmcgU2VvY2hvLWd1IFNlb3VsIFIuTy5LLgorCQkJCVppcCBjb2RlOiAxMzctMTMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC02MyAgIChoZXgpCQlCb3NjaCBTZWN1cml0eSBTeXN0ZW1zCiswMDA0NjMgICAgIChiYXNlIDE2KQkJQm9zY2ggU2VjdXJpdHkgU3lzdGVtcworCQkJCTg1MCBHcmVlbmZpZWxkIFJvYWQKKwkJCQlMYW5jYXN0ZXIgUEEgMTc2MDEtNTg3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNjQgICAoaGV4KQkJRmFudGFzbWEgTmV0d29ya3MsIEluYy4KKzAwMDQ2NCAgICAgKGJhc2UgMTYpCQlGYW50YXNtYSBOZXR3b3JrcywgSW5jLgorCQkJCTMyNTAgQXNoIFN0cmVldAorCQkJCVBhbG8gQWx0byBDQSA5NDMwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNjUgICAoaGV4KQkJaS5zLnQgaXNkbi1zdXBwb3J0IHRlY2huaWsgR21iSAorMDAwNDY1ICAgICAoYmFzZSAxNikJCWkucy50IGlzZG4tc3VwcG9ydCB0ZWNobmlrIEdtYkgKKwkJCQlSaGVpbiBTdHJhc3NlIDdFCisJCQkJMTQ1MTMgVGVsdG93CisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDQtNjYgICAoaGV4KQkJQVJNSVRFTCBDby4KKzAwMDQ2NiAgICAgKGJhc2UgMTYpCQlBUk1JVEVMIENvLgorCQkJCUY1LCBEb21hbiBQbGF6YSAzNTMtNCwKKwkJCQlZYXRhcC1Eb25nLCBQdWRhbmcta3UsIFNlb25nLU5hbWUgU2ksIEt5CisJCQkJUmVwdWJsaWMgb2YgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtNjcgICAoaGV4KQkJV3VoYW4gUmVzZWFyY2ggSW5zdGl0dXRlIG9mIE1JSQorMDAwNDY3ICAgICAoYmFzZSAxNikJCVd1aGFuIFJlc2VhcmNoIEluc3RpdHV0ZSBvZiBNSUkKKwkJCQk4OCBZb3VrZXl1YW4gUm9hZCwKKwkJCQlIYW5nc2hhbiBEaXN0cmljdCxXdWhhbiwgSHViZWkgUHJvdmluY2UsCisJCQkJNDMwMDc0IDQzMDA3NCBQLlIuQ0hJTkEKKwkJCQlDSElOQQorCiswMC0wNC02OCAgIChoZXgpCQlWaXZpdHksIEluYy4KKzAwMDQ2OCAgICAgKGJhc2UgMTYpCQlWaXZpdHksIEluYy4KKwkJCQkzMzYwIE1pdGNoZWxsIExhbmUKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC02OSAgIChoZXgpCQlJbm5vY29tLCBJbmMuCiswMDA0NjkgICAgIChiYXNlIDE2KQkJSW5ub2NvbSwgSW5jLgorCQkJCTY1NS0yIE5hZWJhbHNhbi1Eb25nCisJCQkJS2FuZ3Nlby1HdSwgU2VvdWwKKwkJCQkxNTctMjgwIDE1Ny0yODAgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtNkEgICAoaGV4KQkJTmF2aW5pIE5ldHdvcmtzCiswMDA0NkEgICAgIChiYXNlIDE2KQkJTmF2aW5pIE5ldHdvcmtzCisJCQkJMzYwNSBFLiBQbGFubyBQa3d5LAorCQkJCVN1aXRlIDQwMCwKKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNkIgICAoaGV4KQkJUGFsbSBXaXJlbGVzcywgSW5jLgorMDAwNDZCICAgICAoYmFzZSAxNikJCVBhbG0gV2lyZWxlc3MsIEluYy4KKwkJCQk0ODkzMyBXYXJtIFNwcmluZ3MgQmx2ZC4KKwkJCQlGcmVtb250IENBIDk0NTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC02QyAgIChoZXgpCQlDeWJlciBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwNDZDICAgICAoYmFzZSAxNikJCUN5YmVyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMS00NSBZZW8gV29sLURvbmcKKwkJCQlPaCBKdW5nLUVtLCBCdSBDaGVvbiBDaXR5LAorCQkJCUt5ZW9uZyBHaS1EbyBLeWVvbmcgR2ktRG8gS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtNkQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNDZEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTZFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDQ2RSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC02RiAgIChoZXgpCQlEaWdpdGVsIFMvQSBJbmR1c3RyaWEgRWxldHJvbmljYQorMDAwNDZGICAgICAoYmFzZSAxNikJCURpZ2l0ZWwgUy9BIEluZHVzdHJpYSBFbGV0cm9uaWNhCisJCQkJUi4gRG91dG9yIEpvYW8gSWduYWNpbywgMTE2NQorCQkJCVBvcnRvIEFsZWdyZSwgUlMuIEJyYXppbAorCQkJCVppcDogOTAyMzAuMTgxCisJCQkJQlJBWklMCisKKzAwLTA0LTcwICAgKGhleCkJCWlwVW5wbHVnZ2VkIEFCCiswMDA0NzAgICAgIChiYXNlIDE2KQkJaXBVbnBsdWdnZWQgQUIKKwkJCQlCb3ggMTAxNjAKKwkJCQlTRSAxMjEgMjggU3RvY2tob2xtLUdsb2JzZW4KKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtMDQtNzEgICAoaGV4KQkJSVByYWQKKzAwMDQ3MSAgICAgKGJhc2UgMTYpCQlJUHJhZAorCQkJCTI0IFJhb3VsIFdhbGxlbmJlcmcgU3QuCisJCQkJVGVsLUF2aXYgNjk3MTkKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDQtNzIgICAoaGV4KQkJVGVsZWx5bngsIEluYy4KKzAwMDQ3MiAgICAgKGJhc2UgMTYpCQlUZWxlbHlueCwgSW5jLgorCQkJCTNGLTEsIDY2IE5hbmthbiBSZC4sCisJCQkJU2VjLiAyIEx1IENodSwgVGFvLVl1YW4KKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LTczICAgKGhleCkJCVBob3RvbmV4IENvcnBvcmF0aW9uCiswMDA0NzMgICAgIChiYXNlIDE2KQkJUGhvdG9uZXggQ29ycG9yYXRpb24KKwkJCQk4QyBQcmVzdG9uIENvdXJ0CisJCQkJQmVkZm9yZCBNQSAwMTczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNzQgICAoaGV4KQkJTEVHUkFORAorMDAwNDc0ICAgICAoYmFzZSAxNikJCUxFR1JBTkQKKwkJCQkxNDUgQXZlbnVlIERlIExhdHRyZQorCQkJCTU3MDQ1IExpbW9nZXMKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDQtNzUgICAoaGV4KQkJMyBDb20gQ29ycG9yYXRpb24KKzAwMDQ3NSAgICAgKGJhc2UgMTYpCQkzIENvbSBDb3Jwb3JhdGlvbgorCQkJCTU0MDAgQmF5ZnJvbnQgUGxhemEKKwkJCQlNUzogIDQyMjAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNzYgICAoaGV4KQkJMyBDb20gQ29ycG9yYXRpb24KKzAwMDQ3NiAgICAgKGJhc2UgMTYpCQkzIENvbSBDb3Jwb3JhdGlvbgorCQkJCTU0MDAgQmF5ZnJvbnQgUGxhemEKKwkJCQlNUzogIDQyMjAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNzcgICAoaGV4KQkJU2NhbGFudCBTeXN0ZW1zLCBJbmMuCiswMDA0NzcgICAgIChiYXNlIDE2KQkJU2NhbGFudCBTeXN0ZW1zLCBJbmMuCisJCQkJMjA0MCBNYXJ0aW4gQXZlbnVlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTc4ICAgKGhleCkJCUcuIFN0YXIgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAwNDc4ICAgICAoYmFzZSAxNikJCUcuIFN0YXIgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTR0aCBGbG9vciwgTm8uIDExOCwgU2VjdG9yIDIKKwkJCQlDaHVuZyBIc2lhbyBFYXN0IFJvYWQKKwkJCQlUYWlwZWkgQ2l0eSBUYWlwZWkgQ2l0eSBUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LTc5ICAgKGhleCkJCVJhZGl1cyBDby4sIEx0ZC4KKzAwMDQ3OSAgICAgKGJhc2UgMTYpCQlSYWRpdXMgQ28uLCBMdGQuCisJCQkJMS00OC0xMSwgSXRhYmFzaGkKKwkJCQlSb2plIEJsZGcuLCBOby4gMywgNkYgSXRhYmFzaGkta3UsIFRva3lvCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC03QSAgIChoZXgpCQlBWFhFU1NJVCBBU0EKKzAwMDQ3QSAgICAgKGJhc2UgMTYpCQlBWFhFU1NJVCBBU0EKKwkJCQlBWFhFU1NJVCBBU0EgSEFMREVOCisJCQkJQm94IDEwNTMgMTc4NyBCZXJnIGkgT3N0Zm9sZAorCQkJCU5PUldBWQorCQkJCU5PUldBWQorCiswMC0wNC03QiAgIChoZXgpCQlTY2hsdW1iZXJnZXIKKzAwMDQ3QiAgICAgKGJhc2UgMTYpCQlTY2hsdW1iZXJnZXIKKwkJCQlTdWdhciBMYW5kIFByb2R1Y3QgQ2VudGVyCisJCQkJMTEwIFNjaGx1bWJlcmdlciBEcml2ZQorCQkJCVN1Z2FyIExhbmQgVFggNzc0NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTdDICAgKGhleCkJCVNraWRhdGEgQUcKKzAwMDQ3QyAgICAgKGJhc2UgMTYpCQlTa2lkYXRhIEFHCisJCQkJVC02OTc1NTMgVW50ZXJzYmVyZ3N0ci4gNDAKKwkJCQlBLTUwODMgR2FydGVuYXUKKwkJCQlBVVNUUklBCisJCQkJQVVTVFJJQQorCiswMC0wNC03RCAgIChoZXgpCQlQZWxjbworMDAwNDdEICAgICAoYmFzZSAxNikJCVBlbGNvCisJCQkJMzUwMCBQZWxjbyBXYXkKKwkJCQlDbG92aXMgQ0EgOTM2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTdFICAgKGhleCkJCU9wdGVsZWNvbT1OS0YKKzAwMDQ3RSAgICAgKGJhc2UgMTYpCQlPcHRlbGVjb209TktGCisJCQkJWnVpZGVsaWprIEhhbGZyb25kIDExCisJCQkJMjgwMSBERCBHb3VkYQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTA0LTdGICAgKGhleCkJCUNoci4gTWF5ciBHbWJIICYgQ28uIEtHCiswMDA0N0YgICAgIChiYXNlIDE2KQkJQ2hyLiBNYXlyIEdtYkggJiBDby4gS0cKKwkJCQlFaWNoZW5zdHJhc3NlIDEKKwkJCQlELTg3NjY1IE1hdWVyc3RldHRlbgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTA0LTgwICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCiswMDA0ODAgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTE2NC05MTAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC04MSAgIChoZXgpCQlFY29ub2xpdGUgQ29udHJvbCBQcm9kdWN0cywgSW5jLgorMDAwNDgxICAgICAoYmFzZSAxNikJCUVjb25vbGl0ZSBDb250cm9sIFByb2R1Y3RzLCBJbmMuCisJCQkJMzM2MCBFLiBMYSBQYWxtYSBBdmUuCisJCQkJQW5haGVpbSBDQSA5MjgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtODIgICAoaGV4KQkJTWVkaWFsb2dpYyBDb3JwLgorMDAwNDgyICAgICAoYmFzZSAxNikJCU1lZGlhbG9naWMgQ29ycC4KKwkJCQkwLTMsIFRveWFtYWtlbi1TYW5neW91CisJCQkJS291ZG9rYS1DZW50ZXIsIDUsIE9mZmljZSBQYXJrLCBUYWthb2thLQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtODMgICAoaGV4KQkJRGVsdHJvbiBUZWNobm9sb2d5LCBJbmMuCiswMDA0ODMgICAgIChiYXNlIDE2KQkJRGVsdHJvbiBUZWNobm9sb2d5LCBJbmMuCisJCQkJOEYtMywgTm8uIDEyNSwgTGFuZSAyMzUKKwkJCQlQYW8tQ2hpYW8gUmQuLCBIc2ludGllbiwKKwkJCQlUYWlwZWkgVEFJV0FOLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LTg0ICAgKGhleCkJCUFtYW5uIEdtYkgKKzAwMDQ4NCAgICAgKGJhc2UgMTYpCQlBbWFubiBHbWJICisJCQkJVW50ZXJhbmdlciA2CisJCQkJRC04MjA0MSBPYmVyaGFjaGluZworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTA0LTg1ICAgKGhleCkJCVBpY29MaWdodAorMDAwNDg1ICAgICAoYmFzZSAxNikJCVBpY29MaWdodAorCQkJCTQ2NjUgTmF1dGlsdXMgQ291cnQgU291dGgKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC04NiAgIChoZXgpCQlJVFRDLCBVbml2ZXJzaXR5IG9mIEthbnNhcworMDAwNDg2ICAgICAoYmFzZSAxNikJCUlUVEMsIFVuaXZlcnNpdHkgb2YgS2Fuc2FzCisJCQkJMjMzNSBJcnZpbmcgSGlsbCBSZC4KKwkJCQlMYXdyZW5jZSBLUyA2NjA0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtODcgICAoaGV4KQkJQ29nZW5jeSBTZW1pY29uZHVjdG9yLCBJbmMuCiswMDA0ODcgICAgIChiYXNlIDE2KQkJQ29nZW5jeSBTZW1pY29uZHVjdG9yLCBJbmMuCisJCQkJMzYyIFRlcnJ5IEZveCBEcml2ZSwgU3VpdGUgMjEwCisJCQkJS2FuYXRhLCBPTiwgSzJLIDJQNQorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wNC04OCAgIChoZXgpCQlFdXJvdGhlcm0gQ29udHJvbHMKKzAwMDQ4OCAgICAgKGJhc2UgMTYpCQlFdXJvdGhlcm0gQ29udHJvbHMKKwkJCQk3NDFGIE1pbGxlciBEcml2ZQorCQkJCUxlc3NidXJnIFZBIDIwMTc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC04OSAgIChoZXgpCQlZQUZPIE5ldHdvcmtzLCBJbmMuCiswMDA0ODkgICAgIChiYXNlIDE2KQkJWUFGTyBOZXR3b3JrcywgSW5jLgorCQkJCTEzNDBGIENoYXJ3b29kIFJkLgorCQkJCUhhbm92ZXIgTUQgMjEwNzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LThBICAgKGhleCkJCVRlbWlhIFZlcnRyaWVicyBHbWJICiswMDA0OEEgICAgIChiYXNlIDE2KQkJVGVtaWEgVmVydHJpZWJzIEdtYkgKKwkJCQlMYW5kc2JlcmdlcnN0ci4gMzIwCisJCQkJRC04MDY4NyBNdW5pY2gKKwkJCQlHRVJNQU5ZCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC04QiAgIChoZXgpCQlQb3Njb24gQ29ycG9yYXRpb24KKzAwMDQ4QiAgICAgKGJhc2UgMTYpCQlQb3Njb24gQ29ycG9yYXRpb24KKwkJCQkjNjA2IEhvLURvbmcsIE5hbSBHdSwKKwkJCQlQb2hhbmcgQ2l0eSwgS3l1bmdidWssCisJCQkJU09VVEggS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtOEMgICAoaGV4KQkJTmF5bmEgTmV0d29ya3MsIEluYy4KKzAwMDQ4QyAgICAgKGJhc2UgMTYpCQlOYXluYSBOZXR3b3JrcywgSW5jLgorCQkJCTE1NyBUb3BheiBTdC4KKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtOEQgICAoaGV4KQkJVG9uZSBDb21tYW5kZXIgU3lzdGVtcywgSW5jLgorMDAwNDhEICAgICAoYmFzZSAxNikJCVRvbmUgQ29tbWFuZGVyIFN5c3RlbXMsIEluYy4KKwkJCQkxMTYwOSA0OXRoIFBsYWNlIFdlc3QKKwkJCQlNdWtpbHRlbyBXQSA5ODI3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtOEUgICAoaGV4KQkJT2htIFRlY2ggTGFicywgSW5jLgorMDAwNDhFICAgICAoYmFzZSAxNikJCU9obSBUZWNoIExhYnMsIEluYy4KKwkJCQkxNDEgTGFuemEgQXZlLiwgQi0xMgorCQkJCUdhcmZpZWxkIE5KIDA3MDI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC04RiAgIChoZXgpCQlURCBTeXN0ZW1zIENvcnBvcmF0aW9uCiswMDA0OEYgICAgIChiYXNlIDE2KQkJVEQgU3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTEwMCBCZWFyZm9vdCBSZC4KKwkJCQk2NCBPbnRhcmlvIERyaXZlCisJCQkJSHVkc29uIE1BIDAxNzQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC05MCAgIChoZXgpCQlPcHRpY2FsIEFjY2VzcworMDAwNDkwICAgICAoYmFzZSAxNikJCU9wdGljYWwgQWNjZXNzCisJCQkJUC5PLiBCb3ggMTE0CisJCQkJWW9rbmVhbSwgMjA2OTIKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDQtOTEgICAoaGV4KQkJVGVjaG5vdmlzaW9uLCBJbmMuCiswMDA0OTEgICAgIChiYXNlIDE2KQkJVGVjaG5vdmlzaW9uLCBJbmMuCisJCQkJNTE1NSBTcGVjdHJ1bSBXYXksIFVuaXQgIzMxCisJCQkJTWlzc2lzc2F1Z2EsIE9udGFyaW8KKwkJCQlMNFcgNUExIENBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wNC05MiAgIChoZXgpCQlIaXZlIEludGVybmV0LCBMdGQuCiswMDA0OTIgICAgIChiYXNlIDE2KQkJSGl2ZSBJbnRlcm5ldCwgTHRkLgorCQkJCVVuaXQgMiwgQ2h1cmNoIFZpZXcgQnVzaW5lc3MgQ2VudHJlCisJCQkJTG91dGggUm9hZAorCQkJCUJpbmJyb29rIE1hcmtldCBSYXNlbiwgTGluY29sbnNoaXJlIExOOCA2QlkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC05MyAgIChoZXgpCQlUc2luZ2h1YSBVbmlzcGxlbmRvdXIgQ28uLCBMdGQuCiswMDA0OTMgICAgIChiYXNlIDE2KQkJVHNpbmdodWEgVW5pc3BsZW5kb3VyIENvLiwgTHRkLgorCQkJCVRoLVVuaXMgQnVpbGRpbmcgVHNpbmdodWEKKwkJCQlVbml2ZXJzaXR5LCBCZWppbmcgMTAwMDg0CisJCQkJUC5SLiBDSElOQQorCQkJCUNISU5BCisKKzAwLTA0LTk0ICAgKGhleCkJCUJyZWV6ZWNvbSwgTHRkLgorMDAwNDk0ICAgICAoYmFzZSAxNikJCUJyZWV6ZWNvbSwgTHRkLgorCQkJCUF0aWRpbSBUZWNobm9sb2d5IFBhcmsKKwkJCQlCbGRnLiAxLCBQLk8uQi4gMTMxMzkgVGVsLUF2aXYgNjExMzEKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDQtOTUgICAoaGV4KQkJVGVqYXMgTmV0d29ya3MgSW5kaWEgTGltaXRlZAorMDAwNDk1ICAgICAoYmFzZSAxNikJCVRlamFzIE5ldHdvcmtzIEluZGlhIExpbWl0ZWQKKwkJCQkjNTgsIDFzdCBNYWluIFJvYWQsIEouUC4gTmFnYXIsIAorCQkJCTNyZCBQaGFzZSwgS2FybmF0YWthCisJCQkJQmFuZ2Fsb3JlICA1NjAwNzggCisJCQkJSU5ESUEKKworMDAtMDQtOTYgICAoaGV4KQkJRXh0cmVtZSBOZXR3b3JrcworMDAwNDk2ICAgICAoYmFzZSAxNikJCUV4dHJlbWUgTmV0d29ya3MKKwkJCQkzNTg1IE1vbnJvZSBTdC4KKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtOTcgICAoaGV4KQkJTWFjcm9TeXN0ZW0gRGlnaXRhbCBWaWRlbyBBRworMDAwNDk3ICAgICAoYmFzZSAxNikJCU1hY3JvU3lzdGVtIERpZ2l0YWwgVmlkZW8gQUcKKwkJCQlTY2hvZWxsaW5nZXIgRmVsZCAyOAorCQkJCTU4MzAwIFdldHRlciwgRi5SLgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTA0LTk4ICAgKGhleCkJCU1haGkgTmV0d29ya3MKKzAwMDQ5OCAgICAgKGJhc2UgMTYpCQlNYWhpIE5ldHdvcmtzCisJCQkJMTAzOSBOLiBNY0Rvd2VsbCBCbHZkLgorCQkJCVBldGFsdW1hIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC05OSAgIChoZXgpCQlDaGlubyBDb3Jwb3JhdGlvbgorMDAwNDk5ICAgICAoYmFzZSAxNikJCUNoaW5vIENvcnBvcmF0aW9uCisJCQkJMSBNb3JpLCBGdWppb2thIENpdHksCisJCQkJR3VubWEgUHJlZi4gSkFQQU4KKwkJCQlaaXA6IDM3NS04NTA1CisJCQkJSkFQQU4KKworMDAtMDQtOUEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNDlBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTlCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDQ5QiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC05QyAgIChoZXgpCQlTdXJnaWVudCBOZXR3b3JrcywgSW5jLgorMDAwNDlDICAgICAoYmFzZSAxNikJCVN1cmdpZW50IE5ldHdvcmtzLCBJbmMuCisJCQkJMzUyMCBFeGVjdXRpdmUgQ2VudGVyIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJQXVzdGluIFRYIDc4NzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC05RCAgIChoZXgpCQlJcGFuZW1hIFRlY2hub2xvZ2llcworMDAwNDlEICAgICAoYmFzZSAxNikJCUlwYW5lbWEgVGVjaG5vbG9naWVzCisJCQkJMjgsIFJ1ZSBEZSBMYSBSZWRvdXRlCisJCQkJOTIyNjAgRm9udGVuYXkgQXV4IFJvc2VzCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTA0LTlFICAgKGhleCkJCVdpcmVsaW5rIENvLiwgTHRkLgorMDAwNDlFICAgICAoYmFzZSAxNikJCVdpcmVsaW5rIENvLiwgTHRkLgorCQkJCTExRiwgR2Vvc2VvbmcgQi9EIDU0MSwgRG93aGEtRG9uZywKKwkJCQlNYXBvLUd1LCBTZW91bCwgMTIxLTcwMSwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC05RiAgIChoZXgpCQlGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvcgorMDAwNDlGICAgICAoYmFzZSAxNikJCUZyZWVzY2FsZSBTZW1pY29uZHVjdG9yCisJCQkJNzcwMCBXZXN0IFBhcm1lciBMYW5lCisJCQkJTUQgUEw1OQorCQkJCUF1c3RpbiBUWCA3ODcyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQTAgICAoaGV4KQkJVmVyaXR5IEluc3RydW1lbnRzLCBJbmMuCiswMDA0QTAgICAgIChiYXNlIDE2KQkJVmVyaXR5IEluc3RydW1lbnRzLCBJbmMuCisJCQkJMjkwMSBFaXNlbmhvd2VyIFN0LgorCQkJCUNhcnJvbGx0b24gVFggNzUwMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUExICAgKGhleCkJCVBhdGh3YXkgQ29ubmVjdGl2aXR5CiswMDA0QTEgICAgIChiYXNlIDE2KQkJUGF0aHdheSBDb25uZWN0aXZpdHkKKwkJCQkxNDM5LTE3IEF2ZW51ZSBTRQorCQkJCUNhbGdhcnkgQWxiZXJ0YSBUMkcgMUo5CisJCQkJQ0FOQURBCisKKzAwLTA0LUEyICAgKGhleCkJCUwuUy5JLiBKYXBhbiBDby4sIEx0ZC4KKzAwMDRBMiAgICAgKGJhc2UgMTYpCQlMLlMuSS4gSmFwYW4gQ28uLCBMdGQuCisJCQkJMS04LTE0IFNlbmRhZ2F5YSBTaGlidXlhLUt1CisJCQkJVG9reW8gMTUxLTAwNTEgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC1BMyAgIChoZXgpCQlNaWNyb2NoaXAgVGVjaG5vbG9neSwgSW5jLgorMDAwNEEzICAgICAoYmFzZSAxNikJCU1pY3JvY2hpcCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjM1NSBXLiBDaGFuZGxlciBCbHZkLgorCQkJCUNoYW5kbGVyIEFaIDg1MjI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1BNCAgIChoZXgpCQlOZXRFbmFibGVkLCBJbmMuCiswMDA0QTQgICAgIChiYXNlIDE2KQkJTmV0RW5hYmxlZCwgSW5jLgorCQkJCTEyNzUgS2lubmVhciBSZC4KKwkJCQlDb2x1bWJ1cyBPSCA0MzIxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQTUgICAoaGV4KQkJQmFyY28gUHJvamVjdGlvbiBTeXN0ZW1zIE5WCiswMDA0QTUgICAgIChiYXNlIDE2KQkJQmFyY28gUHJvamVjdGlvbiBTeXN0ZW1zIE5WCisJCQkJTm9vcmRsYWFuIDUKKwkJCQlCODUyMCBLdXVybmUKKwkJCQlCRUxHSVVNCisJCQkJQkVMR0lVTQorCiswMC0wNC1BNiAgIChoZXgpCQlTQUYgVGVobmlrYSBMdGQuCiswMDA0QTYgICAgIChiYXNlIDE2KQkJU0FGIFRlaG5pa2EgTHRkLgorCQkJCTkxIER6aXJuYXZ1IFN0ci4sCisJCQkJUmlnYSwgTFYtMTAxMSwKKwkJCQlMQVRWSUEKKwkJCQlMQVRWSUEKKworMDAtMDQtQTcgICAoaGV4KQkJRmFiaWFUZWNoIENvcnBvcmF0aW9uCiswMDA0QTcgICAgIChiYXNlIDE2KQkJRmFiaWFUZWNoIENvcnBvcmF0aW9uCisJCQkJNEYtMywgTm8uIDE4LCBMYW5lIDYwOQorCQkJCUNodW5nLUhzaW4gUmQuLCBTZWMuIDUgU2FuIENodW5nIENpdHksCisJCQkJVGFpcGVpIEhzaWVuLCBUQUlXQU4gUi5PLkMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LUE4ICAgKGhleCkJCUJyb2FkbWF4IFRlY2hub2xvZ2llcywgSW5jLgorMDAwNEE4ICAgICAoYmFzZSAxNikJCUJyb2FkbWF4IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE4MCwgV2FpIFlpcCBTdHJlZXQsCisJCQkJSHd1biBUb25nLAorCQkJCUhPTkcgS09ORworCQkJCUhPTkcgS09ORworCiswMC0wNC1BOSAgIChoZXgpCQlTYW5kU3RyZWFtIFRlY2hub2xvZ2llcywgSW5jLgorMDAwNEE5ICAgICAoYmFzZSAxNikJCVNhbmRTdHJlYW0gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTk1NSBMYWtld2F5IERyLgorCQkJCUxld2lzdmlsbGUgVFggNzUwNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUFBICAgKGhleCkJCUpldHN0cmVhbSBDb21tdW5pY2F0aW9ucworMDAwNEFBICAgICAoYmFzZSAxNikJCUpldHN0cmVhbSBDb21tdW5pY2F0aW9ucworCQkJCTU0MDAgSGVsbHllciBBdmVudWUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzOC0xMDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1BQiAgIChoZXgpCQlDb212ZXJzZSBOZXR3b3JrIFN5c3RlbXMsIEluYy4KKzAwMDRBQiAgICAgKGJhc2UgMTYpCQlDb212ZXJzZSBOZXR3b3JrIFN5c3RlbXMsIEluYy4KKwkJCQkyOSBIYWJhcnplbCBTdHJlZXQuCisJCQkJVGVsLUF2aXYgNjk3MTAKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDQtQUMgICAoaGV4KQkJSUJNIENvcnAKKzAwMDRBQyAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQUQgICAoaGV4KQkJTWFsaWJ1IE5ldHdvcmtzCiswMDA0QUQgICAgIChiYXNlIDE2KQkJTWFsaWJ1IE5ldHdvcmtzCisJCQkJMjY2MzcgQWdvdXJhIFJkLgorCQkJCUNhbGFiYXNhcyBDQSA5MTMwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQUUgICAoaGV4KQkJU3VsbGFpciBDb3Jwb3JhdGlvbgorMDAwNEFFICAgICAoYmFzZSAxNikJCVN1bGxhaXIgQ29ycG9yYXRpb24KKwkJCQkzNzAwIEVhc3QgTWljaGlnYW4gQmx2ZAorCQkJCU1pY2hpZ2FuIENpdHkgSU4gNDYzNjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUFGICAgKGhleCkJCURpZ2l0YWwgRm91bnRhaW4sIEluYy4KKzAwMDRBRiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIEZvdW50YWluLCBJbmMuCisJCQkJNjAwIEFsYWJhbWEgU3QuCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQjAgICAoaGV4KQkJRUxFU0lHTiBDby4sIEx0ZC4KKzAwMDRCMCAgICAgKGJhc2UgMTYpCQlFTEVTSUdOIENvLiwgTHRkLgorCQkJCTlGbC4gVGFlS3lvdW5nIEJsZGcuLAorCQkJCTQyLTQyIEJvbmdDaHVuLWRvbmcgS3dhbkFrLWd1LCBTZW91bCwKKwkJCQlSLk8uIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LUIxICAgKGhleCkJCVNpZ25hbCBUZWNobm9sb2d5LCBJbmMuCiswMDA0QjEgICAgIChiYXNlIDE2KQkJU2lnbmFsIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkzcmQuIEZsLiBEYWJvIEJsZGcuCisJCQkJMzctMiBrb3lvIHNvbmdwYQorCQkJCVNlb3VsIEtPUkVBIDEzOC0xMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtQjIgICAoaGV4KQkJRVNTRUdJIFNSTAorMDAwNEIyICAgICAoYmFzZSAxNikJCUVTU0VHSSBTUkwKKwkJCQlWaWEgRGVsIENhdmFyYXRvcmksIDE3CisJCQkJMjAwOTIgQ2luaXNlbGxvIEIuIChNMSkKKwkJCQlJVEFMWQorCQkJCUlUQUxZCisKKzAwLTA0LUIzICAgKGhleCkJCVZpZGVvdGVrLCBJbmMuCiswMDA0QjMgICAgIChiYXNlIDE2KQkJVmlkZW90ZWssIEluYy4KKwkJCQkyNDMgU2hvZW1ha2VyIFJkLgorCQkJCVBvdHRzdG93biBQQSAxOTQ2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQjQgICAoaGV4KQkJQ0lBQworMDAwNEI0ICAgICAoYmFzZSAxNikJCUNJQUMKKwkJCQkxOCBydWUgSm9zZXBoIEJBUkEKKwkJCQk5MjEzMCBJc3N5LWxlcy1Nb2xpbmVhdXgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDQtQjUgICAoaGV4KQkJRXF1aXRyYWMgQ29ycG9yYXRpb24KKzAwMDRCNSAgICAgKGJhc2UgMTYpCQlFcXVpdHJhYyBDb3Jwb3JhdGlvbgorCQkJCTE5MDUgTi5XLiA4Mm5kIEF2ZW51ZQorCQkJCU1pYW1pIEZMIDMzMTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1CNiAgIChoZXgpCQlTdHJhdGV4IE5ldHdvcmtzLCBJbmMuCiswMDA0QjYgICAgIChiYXNlIDE2KQkJU3RyYXRleCBOZXR3b3JrcywgSW5jLgorCQkJCTY0IFdoaXRlIFJvYWQKKwkJCQlSZXRyZWF0LAorCQkJCUNhcGUgVG93biAgNzk0NQorCQkJCVNPVVRIIEFGUklDQQorCiswMC0wNC1CNyAgIChoZXgpCQlBTUIgaS50LiBIb2xkaW5nCiswMDA0QjcgICAgIChiYXNlIDE2KQkJQU1CIGkudC4gSG9sZGluZworCQkJCVp1aWRlcmhvdXRsYWFuIDQKKwkJCQlQSiBIYWFybGVtIDIwMTIKKwkJCQlORVRIRVJMQU5EUworCiswMC0wNC1COCAgIChoZXgpCQlLdW1haGlyYSBDby4sIEx0ZC4KKzAwMDRCOCAgICAgKGJhc2UgMTYpCQlLdW1haGlyYSBDby4sIEx0ZC4KKwkJCQk0LTM0IFVqaW5haGlnYXNoaSAyLUNob21lCisJCQkJTWluYW1pa3UgSGlyb3NoaW1hCisJCQkJSkFQQU4gNzM0LTg1NjcKKwkJCQlKQVBBTgorCiswMC0wNC1COSAgIChoZXgpCQlTLkkuIFNvdWJvdSwgSW5jLgorMDAwNEI5ICAgICAoYmFzZSAxNikJCVMuSS4gU291Ym91LCBJbmMuCisJCQkJS3VibyBCbGRnLiwgNzAzLCAyLTEyLAorCQkJCU5hbnBlaWRhaS1jaG8sIFNoaWJ1eWEta3UsCisJCQkJVG9reW8gVG9reW8gSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC1CQSAgIChoZXgpCQlLREQgTWVkaWEgV2lsbCBDb3Jwb3JhdGlvbgorMDAwNEJBICAgICAoYmFzZSAxNikJCUtERCBNZWRpYSBXaWxsIENvcnBvcmF0aW9uCisJCQkJMi0xLTIzIE5ha2FtZWd1cm8KKwkJCQlNZWd1cm8tS3UgVG9reW8KKwkJCQkxNTMtMDA2MSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTA0LUJCICAgKGhleCkJCUJhcmRhYyBDb3Jwb3JhdGlvbgorMDAwNEJCICAgICAoYmFzZSAxNikJCUJhcmRhYyBDb3Jwb3JhdGlvbgorCQkJCTQwIExvZyBDYW5vZSBDaXJjbGUKKwkJCQlTdGV2ZW5zdmlsbGUgTUQgMjE2NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUJDICAgKGhleCkJCUdpYW50ZWMsIEluYy4KKzAwMDRCQyAgICAgKGJhc2UgMTYpCQlHaWFudGVjLCBJbmMuCisJCQkJNEYsIE5vLiAzLCBMYW5lIDEyMywKKwkJCQlQYW8gQ2h1bmcgUmQuLCBIc2llbiBUaWVuIENpdHksIFRhaXBlaQorCQkJCVRBSVdBTiAyMzEgVEFJV0FOIDIzMSBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LUJEICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAwNEJEICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUJFICAgKGhleCkJCU9wdFhDb24sIEluYy4KKzAwMDRCRSAgICAgKGJhc2UgMTYpCQlPcHRYQ29uLCBJbmMuCisJCQkJUC5PLiBCb3ggMTM0NDkKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTM0NDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUJGICAgKGhleCkJCVZlcnNhTG9naWMgQ29ycC4KKzAwMDRCRiAgICAgKGJhc2UgMTYpCQlWZXJzYUxvZ2ljIENvcnAuCisJCQkJMzg4OCBTdGV3YXJ0IFJkLgorCQkJCUV1Z2VuZSBPUiA5NzQwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQzAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNEMwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUMxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDRDMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1DMiAgIChoZXgpCQlNYWduaXBpeCwgSW5jLgorMDAwNEMyICAgICAoYmFzZSAxNikJCU1hZ25pcGl4LCBJbmMuCisJCQkJMzUzOSBTdC1DaGFybGVzIEJsdmQuLCBTdWl0ZSAyMTIKKwkJCQlLaXJrbGFuZCAoUXVlYmVjKQorCQkJCUNBTkFEQSBIOUgzQzQKKwkJCQlDQU5BREEKKworMDAtMDQtQzMgICAoaGV4KQkJQ0FTVE9SIEluZm9ybWF0aXF1ZQorMDAwNEMzICAgICAoYmFzZSAxNikJCUNBU1RPUiBJbmZvcm1hdGlxdWUKKwkJCQkyLCBSdWUgRHUgS2VmaXIKKwkJCQlTZW5pYSAzNDMKKwkJCQk5NDUzNyBPcmx5IENlZGV4IEZyYW5jZQorCQkJCUZSQU5DRQorCiswMC0wNC1DNCAgIChoZXgpCQlBbGxlbiAmIEhlYXRoIExpbWl0ZWQKKzAwMDRDNCAgICAgKGJhc2UgMTYpCQlBbGxlbiAmIEhlYXRoIExpbWl0ZWQKKwkJCQlLZXJuaWNrIEluZHVzdHJpYWwgRXN0YXRlLCBQZW5yeW4KKwkJCQlDb3Jud2FsbCBFbmdsYW5kIFRSMTAgOUxVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDQtQzUgICAoaGV4KQkJQVNFIFRlY2hub2xvZ2llcywgVVNBCiswMDA0QzUgICAgIChiYXNlIDE2KQkJQVNFIFRlY2hub2xvZ2llcywgVVNBCisJCQkJNjcyMSBCYXVtIERyLgorCQkJCUtub3h2aWxsZSBUTiAzNzkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQzYgICAoaGV4KQkJWWFtYWhhIE1vdG9yIENvLiwgTHRkLgorMDAwNEM2ICAgICAoYmFzZSAxNikJCVlhbWFoYSBNb3RvciBDby4sIEx0ZC4KKwkJCQlJbmZvcm1hdGlvbiBTeXN0ZW0gRGl2aXNpb24KKwkJCQkyNTAwIFNoaW5nYWkgSXdhdGEsIFNoaXp1b2thCisJCQkJSmFwYW4gWmlwOiA0MzgtODUwMQorCQkJCUpBUEFOCisKKzAwLTA0LUM3ICAgKGhleCkJCU5ldE1vdW50CiswMDA0QzcgICAgIChiYXNlIDE2KQkJTmV0TW91bnQKKwkJCQlQLk8uQi4gMjMyNQorCQkJCUthZGltYSA2MDkyMAorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wNC1DOCAgIChoZXgpCQlMSUJBIE1hc2NoaW5lbmZhYnJpayBHbWJICiswMDA0QzggICAgIChiYXNlIDE2KQkJTElCQSBNYXNjaGluZW5mYWJyaWsgR21iSAorCQkJCVBPIEJveCAxMTIwCisJCQkJRDk1MTEyIE5haWxhCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDQtQzkgICAoaGV4KQkJTWljcm8gRWxlY3Ryb24gQ28uLCBMdGQuCiswMDA0QzkgICAgIChiYXNlIDE2KQkJTWljcm8gRWxlY3Ryb24gQ28uLCBMdGQuCisJCQkJMkYgSWJhbmFraS1UYW5ha2EgQmxkZy4KKwkJCQkxLTEtNTkgTmFrYWhvZHVtaSBJYmFyYWtpLXNoaSwgT3Nha2EgNTY3CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC1DQSAgIChoZXgpCQlGcmVlTXMgQ29ycC4KKzAwMDRDQSAgICAgKGJhc2UgMTYpCQlGcmVlTXMgQ29ycC4KKwkJCQlTaGluaGFuIEJsZGcuIDZGLAorCQkJCTQ1LTExIFlvaWRvLURvbmcsIFlvdW5nZGV1bmdwby1rdSwKKwkJCQlTZW91bCAxNTAtNzM2IEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LUNCICAgKGhleCkJCVRkc29mdCBDb21tdW5pY2F0aW9uLCBMdGQuCiswMDA0Q0IgICAgIChiYXNlIDE2KQkJVGRzb2Z0IENvbW11bmljYXRpb24sIEx0ZC4KKwkJCQk2MCBNZWRpbmF0IEhheWVodWRpbSBTdC4KKwkJCQlIZXJ6bGlhIDQ2NzY2CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTA0LUNDICAgKGhleCkJCVBlZWsgVHJhZmZpYyBCLlYuCiswMDA0Q0MgICAgIChiYXNlIDE2KQkJUGVlayBUcmFmZmljIEIuVi4KKwkJCQlQb3N0YnVzIDI1NDIKKwkJCQkzODAwIEdCIEFtZXJzZm9vdAorCQkJCVRoZSBOZXRoZXJsYW5kcworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTA0LUNEICAgKGhleCkJCUluZm9ybWVkaWEgUmVzZWFyY2ggR3JvdXAKKzAwMDRDRCAgICAgKGJhc2UgMTYpCQlJbmZvcm1lZGlhIFJlc2VhcmNoIEdyb3VwCisJCQkJMzkwIFN0LVZhbGxpZXIgRWFzdAorCQkJCVN1aXRlIDIwMworCQkJCVF1ZWJlYyBQUSBHMUsgM1A2IENBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wNC1DRSAgIChoZXgpCQlQYXRyaWEgQWlsb24KKzAwMDRDRSAgICAgKGJhc2UgMTYpCQlQYXRyaWEgQWlsb24KKwkJCQlOYXVsYWthdHUgMworCQkJCUZJTi0zMzEwMCBUYW1wZXJlCisJCQkJRklOTEFORAorCQkJCUZJTkxBTkQKKworMDAtMDQtQ0YgICAoaGV4KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CiswMDA0Q0YgICAgIChiYXNlIDE2KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CisJCQkJMTI4MCBEaXNjIERyaXZlCisJCQkJU2hha29wZWUgTU4gNTUzNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUQwICAgKGhleCkJCVNvZnRsaW5rIHMuci5vLgorMDAwNEQwICAgICAoYmFzZSAxNikJCVNvZnRsaW5rIHMuci5vLgorCQkJCVRvbWtvdmEgNDA5CisJCQkJS3JhbHVweSBuLiBWbHRhdm91CisJCQkJQ3plY2ggUmVwdWJsaWMKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0wNC1EMSAgIChoZXgpCQlEcmV3IFRlY2hub2xvZ2llcywgSW5jLgorMDAwNEQxICAgICAoYmFzZSAxNikJCURyZXcgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMzkxNSBSZXNlYXJjaCBQYXJrIERyCisJCQkJU3VpdGUgQTEwCisJCQkJQW5uIEFyYm9yIE1JIDQ4MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1EMiAgIChoZXgpCQlBZGNvbiBUZWxlbWV0cnkgR21iSAorMDAwNEQyICAgICAoYmFzZSAxNikJCUFkY29uIFRlbGVtZXRyeSBHbWJICisJCQkJSW5rdXN0ci4gMjQKKwkJCQlBLTM0MDAgS2xvc3Rlcm5ldWJ1cmcKKwkJCQlBVVNUUklBCisKKzAwLTA0LUQzICAgKGhleCkJCVRveW9rZWlraSBDby4sIEx0ZC4KKzAwMDREMyAgICAgKGJhc2UgMTYpCQlUb3lva2Vpa2kgQ28uLCBMdGQuCisJCQkJV2FkYSAzOTY3LTEwLCBNYXRzdW1vdG8tQ2l0eQorCQkJCU5hZ2FubyAzOTAtMTI5OCwKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTA0LUQ0ICAgKGhleCkJCVByb3ZpZXcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDA0RDQgICAgIChiYXNlIDE2KQkJUHJvdmlldyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQk2RiwgTm8uIDEsIFBhdS1TaGVuZyBSb2FkCisJCQkJWXVuZyBIbyBDaXR5LCBUYWlwZWksCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC1ENSAgIChoZXgpCQlIaXRhY2hpIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbiBFbmdpbmVlcmluZywgTHRkLgorMDAwNEQ1ICAgICAoYmFzZSAxNikJCUhpdGFjaGkgSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9uIEVuZ2luZWVyaW5nLCBMdGQuCisJCQkJUXVlZW4ncyBUb3dlciBCMjFGLCAyLTMtMywgTWluYXRvbWlyYWksCisJCQkJTmlzaGkta3UsIFlva29oYW1hLCAyMjAtNjEyMQorCQkJCUpBUEFOCisKKzAwLTA0LUQ2ICAgKGhleCkJCVRha2FnaSBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAwNEQ2ICAgICAoYmFzZSAxNikJCVRha2FnaSBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCUVsZWN0cm9uaWMgSW5zdHJ1bWVudCBEaXYuCisJCQkJMzUwOCwgS2FtaWlkZS1NaWthZXNoaSwgRXVqaW5vbWl5YS1zaGksCisJCQkJNDE4LTAxMDMgNDE4LTAxMDMgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC1ENyAgIChoZXgpCQlPbWl0ZWMgSW5zdHJ1bWVudGF0aW9uIEx0ZC4KKzAwMDRENyAgICAgKGJhc2UgMTYpCQlPbWl0ZWMgSW5zdHJ1bWVudGF0aW9uIEx0ZC4KKwkJCQlIb3B0b24gSW5kdXN0cmlhbCBFc3QuCisJCQkJTG9uZG9uIFJkLiwgRGV2aXplcyBXaWx0c2hpcmUgU04xMCAyRVUKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDQtRDggICAoaGV4KQkJSVBXaXJlbGVzcywgSW5jLgorMDAwNEQ4ICAgICAoYmFzZSAxNikJCUlQV2lyZWxlc3MsIEluYy4KKwkJCQk0IExhbmRzb3duZSBDb3VydAorCQkJCUJ1bXBlcnMgV2F5IENoaXBwZW5oYW0sIFdpbHRzaGlyZSwKKwkJCQlTTjE0IEdSWiBVSworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA0LUQ5ICAgKGhleCkJCVRpdGFuIEVsZWN0cm9uaWNzLCBJbmMuCiswMDA0RDkgICAgIChiYXNlIDE2KQkJVGl0YW4gRWxlY3Ryb25pY3MsIEluYy4KKwkJCQlSbSA3LCAxMSBGbC4sIE5vLiAzOTgsCisJCQkJSHVhbi1QZWkgUm9hZCwgQ2h1bmctTGksCisJCQkJVGFveXVhbiBUYW95dWFuIFRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtREEgICAoaGV4KQkJUmVsYXggVGVjaG5vbG9neSwgSW5jLgorMDAwNERBICAgICAoYmFzZSAxNikJCVJlbGF4IFRlY2hub2xvZ3ksIEluYy4KKwkJCQlEQkEvIEdyYW5pdGUgRGlnaXRhbAorCQkJCTMxMDEgV2hpcHBsZSBSb2FkCisJCQkJVW5pb24gQ2l0eSBDQSA5NDU4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtREIgICAoaGV4KQkJVGVsbHVzIEdyb3VwIENvcnAuCiswMDA0REIgICAgIChiYXNlIDE2KQkJVGVsbHVzIEdyb3VwIENvcnAuCisJCQkJNEYsIE5vLiAxNSBJbmR1c3RyeSBFLiBSZC4sIElYCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1IEhzaW5jaHUgVGFpd2FuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC1EQyAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMDREQyAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlEZXBhcnRtZW50IDY4MDAKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMCBCcmFwdG9uIE9OIEw2CisJCQkJQ0FOQURBCisJCQkJQ0FOQURBCisKKzAwLTA0LUREICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDRERCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1ERSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA0REUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtREYgICAoaGV4KQkJVGVyYWNvbSBUZWxlbWF0aWNhIEx0ZGEuCiswMDA0REYgICAgIChiYXNlIDE2KQkJVGVyYWNvbSBUZWxlbWF0aWNhIEx0ZGEuCisJCQkJUi4gRmVsaXBlIE5lcmksIDI0NiBDSi4gMzAxCisJCQkJOTA0NDAtMTUwIFBvcnRvIEFsbGVncmUgUlMKKwkJCQlCYXppbAorCQkJCUJSQVpJTAorCiswMC0wNC1FMCAgIChoZXgpCQlQcm9ja2V0IE5ldHdvcmtzCiswMDA0RTAgICAgIChiYXNlIDE2KQkJUHJvY2tldCBOZXR3b3JrcworCQkJCTExMDAgQ2FkaWxsYWMgQ291cnQKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRTEgICAoaGV4KQkJSW5maW5pb3IgTWljcm9zeXN0ZW1zCiswMDA0RTEgICAgIChiYXNlIDE2KQkJSW5maW5pb3IgTWljcm9zeXN0ZW1zCisJCQkJMkYsIEFjY3VmYXIgQmxkZywgMjM0LTEwLAorCQkJCUphbXNpbC1Eb25nLCBTb25ncGEtR3UKKwkJCQlTZW91bCBLT1JFQSAxMzgtMjIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LUUyICAgKGhleCkJCVNNQyBOZXR3b3JrcywgSW5jLgorMDAwNEUyICAgICAoYmFzZSAxNikJCVNNQyBOZXR3b3JrcywgSW5jLgorCQkJCTYgSHVnaGVzCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1FMyAgIChoZXgpCQlBY2N0b24gVGVjaG5vbG9neSBDb3JwLgorMDAwNEUzICAgICAoYmFzZSAxNikJCUFjY3RvbiBUZWNobm9sb2d5IENvcnAuCisJCQkJTm8uIDEgQ3JlYXRpb24gUmQuIElJSSwKKwkJCQlTQklQCisJCQkJSHNpbmNodSBIc2luY2h1IFRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtRTQgICAoaGV4KQkJRGFlcnl1bmcgSW5kLiwgSW5jLgorMDAwNEU0ICAgICAoYmFzZSAxNikJCURhZXJ5dW5nIEluZC4sIEluYy4KKwkJCQkjMjE5LTYsIEthc2FuIERvbmcsCisJCQkJS3VtY2h1biBrdSwKKwkJCQlTZW91bCBTZW91bCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC1FNSAgIChoZXgpCQlHbG9uZXQgU3lzdGVtcywgSW5jLgorMDAwNEU1ICAgICAoYmFzZSAxNikJCUdsb25ldCBTeXN0ZW1zLCBJbmMuCisJCQkJMTFGbC4sIEplaWwgQmxkZy4sIDk0LTQ2LCA3S2EKKwkJCQlZb3VuZ2R1bmdwby1kb25nIFlvbmdkdW5ncG8tS3UgU2VvdWwsIDE1CisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtRTYgICAoaGV4KQkJQmFueWFuIE5ldHdvcmsgUHJpdmF0ZSBMaW1pdGVkCiswMDA0RTYgICAgIChiYXNlIDE2KQkJQmFueWFuIE5ldHdvcmsgUHJpdmF0ZSBMaW1pdGVkCisJCQkJNDQzLCA4dGggRmxvb3IsIEd1bmEgQ29tcGxleAorCQkJCUFubmFzYWxhaSwgQ2hlbm5haS02MDAgMDE4CisJCQkJSU5ESUEKKwkJCQlJTkRJQQorCiswMC0wNC1FNyAgIChoZXgpCQlMaWdodHBvaW50ZSBDb21tdW5pY2F0aW9ucywgSW5jCiswMDA0RTcgICAgIChiYXNlIDE2KQkJTGlnaHRwb2ludGUgQ29tbXVuaWNhdGlvbnMsIEluYworCQkJCTEwMTQwIEJhcm5lcyBDYW55b24gUm9hZAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRTggICAoaGV4KQkJSUVSLCBJbmMuCiswMDA0RTggICAgIChiYXNlIDE2KQkJSUVSLCBJbmMuCisJCQkJNDUwMSBTby4gR2VuZXJhbCBCcnVjZSBEcgorCQkJCVN1aXRlIDUwCisJCQkJVGVtcGxlIFRYIDc2NTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1FOSAgIChoZXgpCQlJbmZpbmlzd2l0Y2ggQ29ycG9yYXRpb24KKzAwMDRFOSAgICAgKGJhc2UgMTYpCQlJbmZpbmlzd2l0Y2ggQ29ycG9yYXRpb24KKwkJCQkxMzQgRmxhbmRlcnMgUm9hZAorCQkJCVdlc3Rib3JvdWdoIE1BIDAxNTgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1FQSAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAwNEVBICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMTEwMDAgV29sZmUgUm9hZCwgTWFpbHN0b3AgNDJMRQorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRUIgICAoaGV4KQkJUGF4b25ldCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNEVCICAgICAoYmFzZSAxNikJCVBheG9uZXQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk0MDQ2IENsaXBwZXIgQ291cnQKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1FQyAgIChoZXgpCQlNZW1vYm94IFNBCiswMDA0RUMgICAgIChiYXNlIDE2KQkJTWVtb2JveCBTQQorCQkJCTEsIFBsYWNlIERhbWUgU3V6YW5uZQorCQkJCTkxMTkwIFNhaW50IEF1YmluCisJCQkJRnJhbmNlCisJCQkJRlJBTkNFCisKKzAwLTA0LUVEICAgKGhleCkJCUJpbGxpb24gRWxlY3RyaWMgQ28uLCBMdGQuCiswMDA0RUQgICAgIChiYXNlIDE2KQkJQmlsbGlvbiBFbGVjdHJpYyBDby4sIEx0ZC4KKwkJCQk4RiwgTm8uMTkyLCBTZWMuMiwgQ2h1bmcgSHNpbmcgUmQuLAorCQkJCUhzaW4gVGllbiBDaXR5LCBUYWlwZWkgSHNpZW4KKwkJCQlUYWl3YW4gVGFpd2FuIFJPQworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtRUUgICAoaGV4KQkJTGluY29sbiBFbGVjdHJpYyBDb21wYW55CiswMDA0RUUgICAgIChiYXNlIDE2KQkJTGluY29sbiBFbGVjdHJpYyBDb21wYW55CisJCQkJMjI4MDEgU3QuIENsYWlyIEF2ZW51ZQorCQkJCUNsZXZlbGFuZCBPSCA0NDExNy0xMTk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1FRiAgIChoZXgpCQlQb2xlc3RhciBDb3JwLgorMDAwNEVGICAgICAoYmFzZSAxNikJCVBvbGVzdGFyIENvcnAuCisJCQkJUk0gIzgwMiBTZW9HZW9uIEIvRCwgMTQ4MCwKKwkJCQlHd2FuWWFuZy1Eb25nLCBEb25nQW4tR3UsIEFuWWFuZyBDaXR5LCA0CisJCQkJS29yZWEgKFJPSykKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtRjAgICAoaGV4KQkJSW50ZXJuYXRpb25hbCBDb21wdXRlcnMsIEx0ZAorMDAwNEYwICAgICAoYmFzZSAxNikJCUludGVybmF0aW9uYWwgQ29tcHV0ZXJzLCBMdGQKKwkJCQkxIFdlbmxvY2sgV2F5CisJCQkJV2VzdCBHb3J0b24gTWFuY2hlc3RlciwgTTEyIDVEUgorCQkJCVVLCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDQtRjEgICAoaGV4KQkJV2hlcmVOZXQKKzAwMDRGMSAgICAgKGJhc2UgMTYpCQlXaGVyZU5ldAorCQkJCTEwNyBXLiBNY0tpbm5leSBBdmVudWUKKwkJCQlSb2dlcnN2aWxsZSBUTiAzNzg1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRjIgICAoaGV4KQkJUG9seWNvbQorMDAwNEYyICAgICAoYmFzZSAxNikJCVBvbHljb20KKwkJCQkxMDAwIFdlc3QgMTR0aCBTdHJlZXQKKwkJCQlOb3J0aCBWYW5jb3V2ZXIsIEIuQy4KKwkJCQlDYW5hZGEgVjdQM1AzCisJCQkJQ0FOQURBCisKKzAwLTA0LUYzICAgKGhleCkJCUZTIEZPUlRILVNZU1RFTUUgR21iSAorMDAwNEYzICAgICAoYmFzZSAxNikJCUZTIEZPUlRILVNZU1RFTUUgR21iSAorCQkJCUt1ZWZlcnN0ci4gOAorCQkJCUQtNzkyMDYgQnJlaXNhY2gKKwkJCQlHZXJtYW55CisJCQkJR0VSTUFOWQorCiswMC0wNC1GNCAgIChoZXgpCQlJbmZpbml0ZSBFbGVjdHJvbmljcyBJbmMuCiswMDA0RjQgICAgIChiYXNlIDE2KQkJSW5maW5pdGUgRWxlY3Ryb25pY3MgSW5jLgorCQkJCU5vLjQ3OC0xLCBTZWMgMgorCQkJCUNoaW5nIEhhaSBSb2FkIDQwNywgVGFpIENodW5nCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC1GNSAgIChoZXgpCQlTbm93U2hvcmUgTmV0d29ya3MsIEluYy4KKzAwMDRGNSAgICAgKGJhc2UgMTYpCQlTbm93U2hvcmUgTmV0d29ya3MsIEluYy4KKwkJCQkyODUgQmlsbGVyaWNhIFJvYWQKKwkJCQlDaGVsbXNmb3JkIE1BIDAxODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1GNiAgIChoZXgpCQlBbXBodXMKKzAwMDRGNiAgICAgKGJhc2UgMTYpCQlBbXBodXMKKwkJCQkyMzcyIFF1bWUgRHJpdmUsICNGCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUY3ICAgKGhleCkJCU9tZWdhIEJhbmQsIEluYy4KKzAwMDRGNyAgICAgKGJhc2UgMTYpCQlPbWVnYSBCYW5kLCBJbmMuCisJCQkJOTAyMC1JIENhcGl0YWwgb2YgVGV4YXMgSGdod3kgTgorCQkJCVN1aXRlICMyNzAKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUY4ICAgKGhleCkJCVFVQUxJQ0FCTEUgVFYgSW5kdXN0cmlhIEUgQ29tLiwgTHRkYQorMDAwNEY4ICAgICAoYmFzZSAxNikJCVFVQUxJQ0FCTEUgVFYgSW5kdXN0cmlhIEUgQ29tLiwgTHRkYQorCQkJCUF2LiBKb2FvIFBhdWxvIEFibGFzLCAzMDgKKwkJCQlKYXJkaW0gRGEgR2xvcmlhIC0gQ290aWEgLVNQIENFUCAwNjcxMS0yCisJCQkJQlJBWklMCisKKzAwLTA0LUY5ICAgKGhleCkJCVh0ZXJhIENvbW11bmljYXRpb25zLCBJbmMuCiswMDA0RjkgICAgIChiYXNlIDE2KQkJWHRlcmEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk1MDAgVyBCZXRoYW55IERyaXZlCisJCQkJQWxsZW4gVFggNzUwMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUZBICAgKGhleCkJCU5CUyBUZWNobm9sb2dpZXMgSW5jLgorMDAwNEZBICAgICAoYmFzZSAxNikJCU5CUyBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTcwMyBFdmFucyBBdmVudWUsIFN1aXRlIDQwMAorCQkJCVRvcm9udG8KKwkJCQlPbnRhcmlvICBNOUMgNUU5CisJCQkJQ0FOQURBCisKKzAwLTA0LUZCICAgKGhleCkJCUNvbW10ZWNoLCBJbmMuCiswMDA0RkIgICAgIChiYXNlIDE2KQkJQ29tbXRlY2gsIEluYy4KKwkJCQk5MDExIEUuIDM3dGggU3RyZWV0CisJCQkJV2ljaGl0YSBLUyA2NzIyNi0yMDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1GQyAgIChoZXgpCQlTdHJhdHVzIENvbXB1dGVyIChERSksIEluYy4KKzAwMDRGQyAgICAgKGJhc2UgMTYpCQlTdHJhdHVzIENvbXB1dGVyIChERSksIEluYy4KKwkJCQkxMTEgUG93ZGVybWlsbCBSb2FkCisJCQkJTWF5bmFyZCBNQSAwMTc1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRkQgICAoaGV4KQkJSmFwYW4gQ29udHJvbCBFbmdpbmVlcmluZyBDby4sIEx0ZC4KKzAwMDRGRCAgICAgKGJhc2UgMTYpCQlKYXBhbiBDb250cm9sIEVuZ2luZWVyaW5nIENvLiwgTHRkLgorCQkJCTEtNS0xLCBIaWdhc2hpYW1hZ2F3YSwgVGFrYXRzdWtpLXNoaQorCQkJCU9zYWthIDU2OS0wMDEyCisJCQkJSkFQQU4KKworMDAtMDQtRkUgICAoaGV4KQkJUGVsYWdvIE5ldHdvcmtzCiswMDA0RkUgICAgIChiYXNlIDE2KQkJUGVsYWdvIE5ldHdvcmtzCisJCQkJNzAxIEUuIFBsYW5vIFBhcmt3YXkgLSBTdGUuICMyMDUKKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRkYgICAoaGV4KQkJQWNyb25ldCBDby4sIEx0ZC4KKzAwMDRGRiAgICAgKGJhc2UgMTYpCQlBY3JvbmV0IENvLiwgTHRkLgorCQkJCVNhbWFuIEIvRCAyRmwKKwkJCQk4MTEtMTUgQmFuZ2JhZS1Eb25nIFNlb2Noby1rdSwgU2VvdWwKKwkJCQkxMzctMDY0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTAwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDUwMCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0wMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA1MDEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMDIgICAoaGV4KQkJQVBQTEUgQ09NUFVURVIKKzAwMDUwMiAgICAgKGJhc2UgMTYpCQlBUFBMRSBDT01QVVRFUgorCQkJCTIwNjUwIFZBTExFWSBHUkVFTiBEUklWRQorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMDMgICAoaGV4KQkJSUNPTkFHCiswMDA1MDMgICAgIChiYXNlIDE2KQkJSUNPTkFHCisJCQkJQU0gQmFobmhvZiAyCisJCQkJNTU3NjUgQmlya2VuZmVsZAorCQkJCUdFUk1BTlkKKworMDAtMDUtMDQgICAoaGV4KQkJTmFyYXkgSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9uIEVudGVycHJpc2UKKzAwMDUwNCAgICAgKGJhc2UgMTYpCQlOYXJheSBJbmZvcm1hdGlvbiAmIENvbW11bmljYXRpb24gRW50ZXJwcmlzZQorCQkJCTNGIFNhbiBXb28gQmxkZy4sIDE1NDMtMTEKKwkJCQlTZW9jaG8tRG9uZywgU2VvY2hvLUt1LAorCQkJCVNlb3VsIDEzNy0wNzAgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS0wNSAgIChoZXgpCQlTeXN0ZW1zIEludGVncmF0aW9uIFNvbHV0aW9ucywgSW5jLgorMDAwNTA1ICAgICAoYmFzZSAxNikJCVN5c3RlbXMgSW50ZWdyYXRpb24gU29sdXRpb25zLCBJbmMuCisJCQkJMzkyMiBDb2NvbnV0IFBhbG0gRHJpdmUsCisJCQkJU3VpdGUgMTA2CisJCQkJVGFtcGEgRkwgMzM2MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTA2ICAgKGhleCkJCVJlZGRvIE5ldHdvcmtzIEFCCiswMDA1MDYgICAgIChiYXNlIDE2KQkJUmVkZG8gTmV0d29ya3MgQUIKKwkJCQlMaXZkanVyc2dhdGFuIDQKKwkJCQlTRSAxMjEgNjIgSm9oYW5uZXNob3YKKwkJCQlTV0VERU4KKworMDAtMDUtMDcgICAoaGV4KQkJRmluZSBBcHBsaWFuY2UgQ29ycC4KKzAwMDUwNyAgICAgKGJhc2UgMTYpCQlGaW5lIEFwcGxpYW5jZSBDb3JwLgorCQkJCTdGbC4sIE5vLiA0OTksCisJCQkJQ2h1bmctQ2hlbmcgUmQuLCBIc2ludGllbiwgVGFpcGVpCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS0wOCAgIChoZXgpCQlJbmV0Y2FtLCBJbmMuCiswMDA1MDggICAgIChiYXNlIDE2KQkJSW5ldGNhbSwgSW5jLgorCQkJCTEwMTcxIFBhY2lmaWMgTWVzYSBCbHZkLgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMDkgICAoaGV4KQkJQVZPQyBOaXNoaW11cmEgTHRkLgorMDAwNTA5ICAgICAoYmFzZSAxNikJCUFWT0MgTmlzaGltdXJhIEx0ZC4KKwkJCQlKb2dhc2FraSA0LTE2LTE0CisJCQkJTWl5YXpha2ktY2l0eSwgTWl5YXpha2kgODgwLTA5MTcsCisJCQkJSkFQQU4KKworMDAtMDUtMEEgICAoaGV4KQkJSUNTIFNwYQorMDAwNTBBICAgICAoYmFzZSAxNikJCUlDUyBTcGEKKwkJCQlWaWEgUm9tYW5vIEFMCisJCQkJMTAwMTAgU2Nhcm1hZ25vIChUTykKKwkJCQlJVEFMWQorCiswMC0wNS0wQiAgIChoZXgpCQlTSUNPTSBTeXN0ZW1zLCBJbmMuCiswMDA1MEIgICAgIChiYXNlIDE2KQkJU0lDT00gU3lzdGVtcywgSW5jLgorCQkJCTQxNDAgU2t5cm9uIERyaXZlCisJCQkJRG95bGVzdG93biBQQSAxODkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMEMgICAoaGV4KQkJTmV0d29yayBQaG90b25pY3MsIEluYy4KKzAwMDUwQyAgICAgKGJhc2UgMTYpCQlOZXR3b3JrIFBob3RvbmljcywgSW5jLgorCQkJCTQ1MSBBdmlhdGlvbiBCb3VsZXZhcmQKKwkJCQlTYW50YSBSb3NhIENBIDk1NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0wRCAgIChoZXgpCQlNaWRzdHJlYW0gVGVjaG5vbG9naWVzLCBJbmMuCiswMDA1MEQgICAgIChiYXNlIDE2KQkJTWlkc3RyZWFtIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTc3NyAxMDh0aCBBdmUuIE5FCisJCQkJU3VpdGUgMTcwMAorCQkJCUJlbGxldnVlIFdBIDk4MDA0LTUxNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTBFICAgKGhleCkJCTN3YXJlLCBJbmMuCiswMDA1MEUgICAgIChiYXNlIDE2KQkJM3dhcmUsIEluYy4KKwkJCQk3MDEgRS4gTWlkZGxlZmllbGQgUmQuCisJCQkJU3VpdGUgMzAwCisJCQkJTXQuIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTBGICAgKGhleCkJCVRhbmFrYSBTL1MgTHRkLgorMDAwNTBGICAgICAoYmFzZSAxNikJCVRhbmFrYSBTL1MgTHRkLgorCQkJCTE5NDIgTm9tdXJhIEhpcm9va2EKKwkJCQlTaGlvamlyaS1DaXR5CisJCQkJTmFnYW5vIDM5OS0wNzAyIAorCQkJCUpBUEFOCisKKzAwLTA1LTEwICAgKGhleCkJCUluZmluaXRlIFNoYW5naGFpIENvbW11bmljYXRpb24gVGVybWluYWxzIEx0ZC4KKzAwMDUxMCAgICAgKGJhc2UgMTYpCQlJbmZpbml0ZSBTaGFuZ2hhaSBDb21tdW5pY2F0aW9uIFRlcm1pbmFscyBMdGQuCisJCQkJNzc3IENodW5naWFvIFJvYWQsIFB1ZG9uZworCQkJCVNoYW5naGFpIDIwMTIwNiwKKwkJCQlDSElOQQorCiswMC0wNS0xMSAgIChoZXgpCQlDb21wbGVtZW50YXJ5IFRlY2hub2xvZ2llcyBMdGQKKzAwMDUxMSAgICAgKGJhc2UgMTYpCQlDb21wbGVtZW50YXJ5IFRlY2hub2xvZ2llcyBMdGQKKwkJCQlDb210ZWNoIEhvdXNlLCAyOCBNYW5jaGVzdGVyIFJvYWQKKwkJCQlXZXN0aG91Z2h0b24gQk9MVE9OCisJCQkJQkw1IDNRSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA1LTEyICAgKGhleCkJCU1lc2hOZXR3b3JrcywgSW5jLgorMDAwNTEyICAgICAoYmFzZSAxNikJCU1lc2hOZXR3b3JrcywgSW5jLgorCQkJCTQ4NSBLZWxsZXIgUmQuLCBTdWl0ZSAyNTAKKwkJCQlNYWl0bGFuZCBGTCAzMjc1MS03NTM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0xMyAgIChoZXgpCQlWVExpbnggTXVsdGltZWRpYSBTeXN0ZW1zLCBJbmMuCiswMDA1MTMgICAgIChiYXNlIDE2KQkJVlRMaW54IE11bHRpbWVkaWEgU3lzdGVtcywgSW5jLgorCQkJCTg0MDEgQ29sZXN2aWxsZSBSb2FkLAorCQkJCVN1aXRlIDc1MAorCQkJCVNpbHZlciBTcHJpbmcgTUQgMjA5MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTE0ICAgKGhleCkJCUtEVCBTeXN0ZW1zIENvLiwgTHRkLgorMDAwNTE0ICAgICAoYmFzZSAxNikJCUtEVCBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCTEwMi02LCBDaG9idS1MaSwgTW9oeXVuLU15dW4sCisJCQkJWW9uZ2luLUNpdHksIEt5dW5na2ktRG8sCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTE1ICAgKGhleCkJCU51YXJrIENvLiwgTHRkLgorMDAwNTE1ICAgICAoYmFzZSAxNikJCU51YXJrIENvLiwgTHRkLgorCQkJCTEyRiwgQW55YW5nIEsgY2VudGVyLCAxNTkxLTksIEJ1cmltLWRvbmcKKwkJCQlEb25nYW4tZ3UsIEFueWFuZy1zaSwKKwkJCQlHdW5nZ2ktZG8gNDMxLTA2NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS0xNiAgIChoZXgpCQlTTUFSVCBNb2R1bGFyIFRlY2hub2xvZ2llcworMDAwNTE2ICAgICAoYmFzZSAxNikJCVNNQVJUIE1vZHVsYXIgVGVjaG5vbG9naWVzCisJCQkJNDMwNSBDdXNoaW5nIFBrd3kKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0xNyAgIChoZXgpCQlTaGVsbGNvbW0sIEluYy4KKzAwMDUxNyAgICAgKGJhc2UgMTYpCQlTaGVsbGNvbW0sIEluYy4KKwkJCQlSbSAjNjEyMiBFVFJJIFRCSSBDZW50ZXIsIDEsCisJCQkJRW9ldW4tRG9uZywgWXVzb25nLUd1LCBUYWVqb24sIDMwNS0zMzMsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTE4ICAgKGhleCkJCUp1cGl0ZXJzIFRlY2hub2xvZ3kKKzAwMDUxOCAgICAgKGJhc2UgMTYpCQlKdXBpdGVycyBUZWNobm9sb2d5CisJCQkJUE8gQm94IDEyNjkzCisJCQkJRWxpemFiZXRoIFN0cmVldCBCcmlzYmFuZSBRTEQgNDAwMgorCQkJCUFVU1RSQUxJQQorCiswMC0wNS0xOSAgIChoZXgpCQlTaWVtZW5zIEJ1aWxkaW5nIFRlY2hub2xvZ2llcyBBRywKKzAwMDUxOSAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEJ1aWxkaW5nIFRlY2hub2xvZ2llcyBBRywKKwkJCQlDZXJiZXJ1cyBEaXZpc2lvbgorCQkJCWFsdGUgTGFuZHN0cmFzc2UgNDExIENILTg3MDggTWFlbm5lZG9yZgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA1LTFBICAgKGhleCkJCTNDb20gRXVyb3BlIEx0ZC4KKzAwMDUxQSAgICAgKGJhc2UgMTYpCQkzQ29tIEV1cm9wZSBMdGQuCisJCQkJM0NvbSBDZW50cmUsIEJvdW5kYXJ5IFdheSwKKwkJCQlIZW1wc3RlYWQsIEhlcnRzLCBIUDIgN1lVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDUtMUIgICAoaGV4KQkJTWFnaWMgQ29udHJvbCBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDA1MUIgICAgIChiYXNlIDE2KQkJTWFnaWMgQ29udHJvbCBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNkYsIE5vLiAxMjAtMTEgQ2h1bmcgU2hhbiBSZC4KKwkJCQlTZWMgMywgQ2h1bmcgSG8gVGFpcGVpCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS0xQyAgIChoZXgpCQlYbmV0IFRlY2hub2xvZ3kgQ29ycC4KKzAwMDUxQyAgICAgKGJhc2UgMTYpCQlYbmV0IFRlY2hub2xvZ3kgQ29ycC4KKwkJCQk5Ri0xNiwgTm8uIDEyLCBMYW5lIDYwOSwKKwkJCQlTZWMuIDUsIENodW5nIEhzaW4gUm9hZCwgU2FuIENodW5nIENpdHksCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS0xRCAgIChoZXgpCQlBaXJvY29uLCBJbmMuCiswMDA1MUQgICAgIChiYXNlIDE2KQkJQWlyb2NvbiwgSW5jLgorCQkJCTExNiBIb3VnaHRvbiBMYW5lCisJCQkJQm94Ym9ybyBNQSAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMUUgICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCiswMDA1MUUgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJMTc0NSBUZWNobm9sb2d5IERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTFGICAgKGhleCkJCVRhaWppbiBNZWRpYSBDby4sIEx0ZC4KKzAwMDUxRiAgICAgKGJhc2UgMTYpCQlUYWlqaW4gTWVkaWEgQ28uLCBMdGQuCisJCQkJNjQwLTggVHVuZ2Nob24tRG9uZworCQkJCUthbmdzZW8tR3UsCisJCQkJU2VvdWwgIDE1Ny0wMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtMjAgICAoaGV4KQkJU21hcnRyb25peCwgSW5jLgorMDAwNTIwICAgICAoYmFzZSAxNikJCVNtYXJ0cm9uaXgsIEluYy4KKwkJCQkyMjY4NSBUaHJlZSBOb3RjaCBSZC4KKwkJCQlDYWxpZm9ybmlhIE1EIDIwNjE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0yMSAgIChoZXgpCQlDb250cm9sIE1pY3Jvc3lzdGVtcworMDAwNTIxICAgICAoYmFzZSAxNikJCUNvbnRyb2wgTWljcm9zeXN0ZW1zCisJCQkJNDggU3RlYWNpZSBEcml2ZQorCQkJCU9udGFyaW8gIEsySyAyQTkKKwkJCQlDQU5BREEKKworMDAtMDUtMjIgICAoaGV4KQkJTEVBKkQgQ29ycG9yYXRpb24sIEluYy4KKzAwMDUyMiAgICAgKGJhc2UgMTYpCQlMRUEqRCBDb3Jwb3JhdGlvbiwgSW5jLgorCQkJCUFkdmF0ZWNoIEJsZGcuCisJCQkJVGVyYWRpb24gSW5kLiBQYXJrIEQuTi4gTWlzZ2F2LCAyMDE3OQorCQkJCUlTUkFFTAorCiswMC0wNS0yMyAgIChoZXgpCQlBVkwgTGlzdCBHbWJICiswMDA1MjMgICAgIChiYXNlIDE2KQkJQVZMIExpc3QgR21iSAorCQkJCUhhbnMgTGlzdCBQbGF0eiAxCisJCQkJQS04MDIwIEdyYXoKKwkJCQlBVVNUUklBCisKKzAwLTA1LTI0ICAgKGhleCkJCUJUTCBTeXN0ZW0gKEhLKSBMaW1pdGVkCiswMDA1MjQgICAgIChiYXNlIDE2KQkJQlRMIFN5c3RlbSAoSEspIExpbWl0ZWQKKwkJCQkxNC9GLiwgQmxrLiBCLCBWaXRhIFRvd2VyLAorCQkJCTI5IFdvbmcgQ2h1ayBIYW5nIFJkLiwKKwkJCQlBYmVyZGVlbiAgCisJCQkJSE9ORyBLT05HCisKKzAwLTA1LTI1ICAgKGhleCkJCVB1cmV0ZWsgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzAwMDUyNSAgICAgKGJhc2UgMTYpCQlQdXJldGVrIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJTm8uIDE0LCA0IEZsci4gTGFuZSAyMzUKKwkJCQlQYW8gQ2hpYW8gUm9hZCBIc2luIFRpZW4sIFRhaXBlaSBIc2llbgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDUtMjYgICAoaGV4KQkJSVBBUyBHbWJICiswMDA1MjYgICAgIChiYXNlIDE2KQkJSVBBUyBHbWJICisJCQkJR3JhYmVuc3RyLiAxNDlhCisJCQkJNDcwNTcgRHVpc2J1cmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA1LTI3ICAgKGhleCkJCVNKIFRlayBDby4gTHRkCiswMDA1MjcgICAgIChiYXNlIDE2KQkJU0ogVGVrIENvLiBMdGQKKwkJCQlIbyBnYWUgRG9uZyA5NzYtNSwgRG9uZyBBbiBLdSwKKwkJCQlBbiB5YW5nIENpdHksIEt5dW5nIEtlZSBEbywKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtMjggICAoaGV4KQkJTmV3IEZvY3VzLCBJbmMuCiswMDA1MjggICAgIChiYXNlIDE2KQkJTmV3IEZvY3VzLCBJbmMuCisJCQkJMjYzMCBXYWxzaCBBdmUuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTI5ICAgKGhleCkJCVNoYW5naGFpIEJyb2FkYW4gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLiwgTHRkCiswMDA1MjkgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgQnJvYWRhbiBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQkxNUYsIFN1bnRpbWUgSW50ZXJuYXRpb25hbCBNYW5zaW9uCisJCQkJTm8uIDQ1MCBGdXNoYW4gUm9hZCwgUHVkb25nIERpc3RyaWN0LCBTaAorCQkJCTIwMDEyMgorCQkJCUNISU5BCisKKzAwLTA1LTJBICAgKGhleCkJCUlrZWdhbWkgVHN1c2hpbmtpIENvLiwgTHRkLgorMDAwNTJBICAgICAoYmFzZSAxNikJCUlrZWdhbWkgVHN1c2hpbmtpIENvLiwgTHRkLgorCQkJCTUtNi0xNiBJa2VnYW1pIE9odGEta3UsCisJCQkJVG9reW8KKwkJCQkxNDYtODU2NworCQkJCUpBUEFOCisKKzAwLTA1LTJCICAgKGhleCkJCUhPUklCQSwgTHRkLgorMDAwNTJCICAgICAoYmFzZSAxNikJCUhPUklCQSwgTHRkLgorCQkJCTIgTWl5YW5vaGlnYXNoaSwgS2lzc2hvaW4sCisJCQkJTWluYW1pLWt1LCBLeW90bworCQkJCTYwMS04NTEwCisJCQkJSkFQQU4KKworMDAtMDUtMkMgICAoaGV4KQkJU3VwcmVtZSBNYWdpYyBDb3Jwb3JhdGlvbgorMDAwNTJDICAgICAoYmFzZSAxNikJCVN1cHJlbWUgTWFnaWMgQ29ycG9yYXRpb24KKwkJCQlTdW4gVG93ZXJzIENlbnRlciBCbGRnLiwgMTNGCisJCQkJMi0xMS0yMiwgU2FuZ2VuLWpheWEsIFNldGFnYXlhLWt1LCBUb2t5bworCQkJCTE1NC0wMDI0CisJCQkJSkFQQU4KKworMDAtMDUtMkQgICAoaGV4KQkJWm9sdHJpeCBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKzAwMDUyRCAgICAgKGJhc2UgMTYpCQlab2x0cml4IEludGVybmF0aW9uYWwgTGltaXRlZAorCQkJCVJvb20gNzAxIFBvIEhpbmcgQ2VudHJlLAorCQkJCTE4IFdhbiBDaGl1IFJvYWQsIEtvd2xvb24sCisJCQkJSE9ORyBLT05HCisKKzAwLTA1LTJFICAgKGhleCkJCUNpbnRhIE5ldHdvcmtzCiswMDA1MkUgICAgIChiYXNlIDE2KQkJQ2ludGEgTmV0d29ya3MKKwkJCQkzMDEwIE5vcnRoIEZpcnN0IFN0cmVldAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0yRiAgIChoZXgpCQlMZXZpdG9uIE5ldHdvcmsgU29sdXRpb25zCiswMDA1MkYgICAgIChiYXNlIDE2KQkJTGV2aXRvbiBOZXR3b3JrIFNvbHV0aW9ucworCQkJCTIyMjIgMjIybmQgU3RyZWV0IFMuRS4KKwkJCQlCb3RoZWxsIFdBIDk4MDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0zMCAgIChoZXgpCQlBbmRpYW1vIFN5c3RlbXMsIEluYy4KKzAwMDUzMCAgICAgKGJhc2UgMTYpCQlBbmRpYW1vIFN5c3RlbXMsIEluYy4KKwkJCQkxNDE3MSBUZWVybGluayBXYXkKKwkJCQlTYXJhdG9nYSBDQSA5NTA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMzEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNTMxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTMyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDUzMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0zMyAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKzAwMDUzMyAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTM0ICAgKGhleCkJCU5vcnRoc3RhciBFbmdpbmVlcmluZyBMdGQuCiswMDA1MzQgICAgIChiYXNlIDE2KQkJTm9ydGhzdGFyIEVuZ2luZWVyaW5nIEx0ZC4KKwkJCQlQLk8uIEJveCA0MAorCQkJCUhlbmxleS1vbi1UaGFtZXMgT3hvbiBSRzkgNkFFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDUtMzUgICAoaGV4KQkJQ2hpcCBQQyBMdGQuCiswMDA1MzUgICAgIChiYXNlIDE2KQkJQ2hpcCBQQyBMdGQuCisJCQkJMjAgQS5MLiBNb3R6a2luIFN0LgorCQkJCVRvcGF6IEhvdXNlLCBOYWh1bSBIYXQgNSAsIFAuTy4gQm94IDQKKwkJCQlUaXJhdCBDYXJtZWwgIDM5MTAwCisJCQkJSVNSQUVMCisKKzAwLTA1LTM2ICAgKGhleCkJCURhbmFtIENvbW11bmljYXRpb25zLCBJbmMuCiswMDA1MzYgICAgIChiYXNlIDE2KQkJRGFuYW0gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk5MDAtMywgSG9reWUtZG9uZywgRG9uZ2FuLWd1LAorCQkJCUFueWFuZywgS3l1bmdraS1kbywgNDMxLTA4MiwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtMzcgICAoaGV4KQkJTmV0cyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwNTM3ICAgICAoYmFzZSAxNikJCU5ldHMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkjQjEgWXVuZ0p1biBCbGRnLgorCQkJCTE1NC0xMCBTYW5zdW5nLURvbmcgS2FuZ25hbS1HdQorCQkJCVNlb3VsIDEzNS0wOTAgIDEzNS0wOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtMzggICAoaGV4KQkJTWVyaWx1cywgSW5jLgorMDAwNTM4ICAgICAoYmFzZSAxNikJCU1lcmlsdXMsIEluYy4KKwkJCQkjMzA3LTQ2MTY1IFlhbGUgUm9hZAorCQkJCUNoaWxpd2FjaywgQkMKKwkJCQlWMlAgMlAyCisJCQkJQ0FOQURBCisKKzAwLTA1LTM5ICAgKGhleCkJCUEgQnJhbmQgTmV3IFdvcmxkIGluIFN3ZWRlbiBBQgorMDAwNTM5ICAgICAoYmFzZSAxNikJCUEgQnJhbmQgTmV3IFdvcmxkIGluIFN3ZWRlbiBBQgorCQkJCUJveCAxMjIzCisJCQkJU0UtMTY0IDI4IEtJU1RBCisJCQkJU1dFREVOCisKKzAwLTA1LTNBICAgKGhleCkJCVdpbGxvd2dsZW4gU2VydmljZXMgUHRlIEx0ZAorMDAwNTNBICAgICAoYmFzZSAxNikJCVdpbGxvd2dsZW4gU2VydmljZXMgUHRlIEx0ZAorCQkJCTE1MSBMb3JvbmcgQ2h1YW4sCisJCQkJTmV3IFRlY2ggUGFyayAjMDUtMDcsCisJCQkJNTU2NzQxCisJCQkJU0lOR0FQT1JFCisKKzAwLTA1LTNCICAgKGhleCkJCUhhcmJvdXIgTmV0d29ya3MgTHRkLiwgQ28uIEJlaWppbmcKKzAwMDUzQiAgICAgKGJhc2UgMTYpCQlIYXJib3VyIE5ldHdvcmtzIEx0ZC4sIENvLiBCZWlqaW5nCisJCQkJMTMvRiwgSml1TGluZyBCdWlsZGluZywgTm8uIDIxLAorCQkJCVhpU2FuSHVhbiBOb3J0aCBSZC4sIEJlaWppbmcKKwkJCQkxMDAwODkKKwkJCQlDSElOQQorCiswMC0wNS0zQyAgIChoZXgpCQlYaXJjb20KKzAwMDUzQyAgICAgKGJhc2UgMTYpCQlYaXJjb20KKwkJCQkyMzAwIENvcnBvcmF0ZSBDZW50ZXIgRHIuCisJCQkJVGhvdXNhbmQgT2FrcyBDQSA5MTMyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtM0QgICAoaGV4KQkJQWdlcmUgU3lzdGVtcworMDAwNTNEICAgICAoYmFzZSAxNikJCUFnZXJlIFN5c3RlbXMKKwkJCQkxMzcxIE1jQ2FydGh5IEJsdmQuCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTNFICAgKGhleCkJCUtJRCBTeXN0ZW1lIEdtYkgKKzAwMDUzRSAgICAgKGJhc2UgMTYpCQlLSUQgU3lzdGVtZSBHbWJICisJCQkJTHVuZWJ1cmdlciBTY2hhbnplIDMwCisJCQkJMjE2MTQgQnV4dGVodWRlCisJCQkJR0VSTUFOWQorCiswMC0wNS0zRiAgIChoZXgpCQlWaXNpb25UZWssIEluYy4KKzAwMDUzRiAgICAgKGJhc2UgMTYpCQlWaXNpb25UZWssIEluYy4KKwkJCQkxMTc1IExha2VzaWRlIERyLgorCQkJCUd1cm5lZSBJTCA2MDAzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNDAgICAoaGV4KQkJRkFTVCBDb3Jwb3JhdGlvbgorMDAwNTQwICAgICAoYmFzZSAxNikJCUZBU1QgQ29ycG9yYXRpb24KKwkJCQkyNzkxLTUgU2hpbW8tVHN1cnVtYQorCQkJCVlhbWF0byBLYW5hZ2F3YQorCQkJCTI0Mi0wMDAxCisJCQkJSkFQQU4KKworMDAtMDUtNDEgICAoaGV4KQkJQWR2YW5jZWQgU3lzdGVtcyBDby4sIEx0ZC4KKzAwMDU0MSAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCTItOS03IE5pc2hpa2ljaG8sCisJCQkJVGFjaGlrYXdhLXNoaSwgVG9reW8KKwkJCQkxOTAtMDAyMgorCQkJCUpBUEFOCisKKzAwLTA1LTQyICAgKGhleCkJCU90YXJpLCBJbmMuCiswMDA1NDIgICAgIChiYXNlIDE2KQkJT3RhcmksIEluYy4KKwkJCQk0LTMzLTMgS29rdXJ5by1jaG8sCisJCQkJQ2hvZnUtc2hpLCBUb2t5byAxODItMDAyMiwKKwkJCQlKQVBBTgorCiswMC0wNS00MyAgIChoZXgpCQlJUSBXaXJlbGVzcyBHbWJICiswMDA1NDMgICAgIChiYXNlIDE2KQkJSVEgV2lyZWxlc3MgR21iSAorCQkJCUNhcmwtU2NoZWVsZS1TdHIuIDE0CisJCQkJRC0xMjQ4OSBCZXJsaW4KKwkJCQlHRVJNQU5ZCisKKzAwLTA1LTQ0ICAgKGhleCkJCVZhbGxleSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDU0NCAgICAgKGJhc2UgMTYpCQlWYWxsZXkgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTAwNiBXZXN0IENvbGxlZ2UgQXZlLgorCQkJCVN1aXRlIDIwMAorCQkJCVN0YXRlIENvbGxlZ2UgUEEgMTY4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTQ1ICAgKGhleCkJCUludGVybmV0IFBob3RvbmljcworMDAwNTQ1ICAgICAoYmFzZSAxNikJCUludGVybmV0IFBob3RvbmljcworCQkJCTEwMzAgQnJvYWQgU3QuLCAybmQgRmxvb3IKKwkJCQlTaHJld3NidXJ5IE5KIDA3NzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS00NiAgIChoZXgpCQlLRERJIE5ldHdvcmsgJiBTb2x1bHRpb25zIEluYy4KKzAwMDU0NiAgICAgKGJhc2UgMTYpCQlLRERJIE5ldHdvcmsgJiBTb2x1bHRpb25zIEluYy4KKwkJCQkyLTMtMSwgTmlzaGlzaGluanVua3Uta3UsCisJCQkJVG9reW8gMTYzLTA5MDcKKwkJCQlKQVBBTgorCiswMC0wNS00NyAgIChoZXgpCQlTdGFyZW50IE5ldHdvcmtzCiswMDA1NDcgICAgIChiYXNlIDE2KQkJU3RhcmVudCBOZXR3b3JrcworCQkJCTMwIEludGVybmF0aW9uYWwgUGxhY2UKKwkJCQlUZXdrc2J1cnkgTUEgMDE4NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTQ4ICAgKGhleCkJCURpc2NvIENvcnBvcmF0aW9uCiswMDA1NDggICAgIChiYXNlIDE2KQkJRGlzY28gQ29ycG9yYXRpb24KKwkJCQkxMy0xMSBPbW9yaS1LaXRhIDItY2hvbWUKKwkJCQlPdGEta3UgVG9reW8gMTQzLTg1ODAKKwkJCQlKQVBBTgorCiswMC0wNS00OSAgIChoZXgpCQlTYWxpcmEgT3B0aWNhbCBOZXR3b3JrIFN5c3RlbXMKKzAwMDU0OSAgICAgKGJhc2UgMTYpCQlTYWxpcmEgT3B0aWNhbCBOZXR3b3JrIFN5c3RlbXMKKwkJCQkyNjk0IE9yY2hhcmQgUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS00QSAgIChoZXgpCQlBcmlvIERhdGEgTmV0d29ya3MsIEluYy4KKzAwMDU0QSAgICAgKGJhc2UgMTYpCQlBcmlvIERhdGEgTmV0d29ya3MsIEluYy4KKwkJCQkyODkwIFphbmtlciBSb2FkLCBTdWl0ZSAyMDMKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNEIgICAoaGV4KQkJRWF0b24gQXV0b21hdGlvbiBBRworMDAwNTRCICAgICAoYmFzZSAxNikJCUVhdG9uIEF1dG9tYXRpb24gQUcKKwkJCQlTcGlubmVyZWlzdHJhc3NlIDgKKwkJCQlTdC5HYWxsZW4gIDkwMDggCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMDUtNEMgICAoaGV4KQkJUkYgSW5ub3ZhdGlvbnMgUHR5IEx0ZAorMDAwNTRDICAgICAoYmFzZSAxNikJCVJGIElubm92YXRpb25zIFB0eSBMdGQKKwkJCQkyMiBCb3VsZGVyIFJvYWQKKwkJCQlNYWxhZ2EgV0EgIDYwOTAKKwkJCQlBVVNUUkFMSUEKKworMDAtMDUtNEQgICAoaGV4KQkJQnJhbnMgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA1NEQgICAgIChiYXNlIDE2KQkJQnJhbnMgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNTAxIEJvcmFtYWUgQWNhZGVteSBUb3dlcgorCQkJCTM5NS02OSBTaGluYWViYW5nLURvbmcgVG9uZ2phay1HdSBTZW91bAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS00RSAgIChoZXgpCQlQaGlsaXBzCiswMDA1NEUgICAgIChiYXNlIDE2KQkJUGhpbGlwcworCQkJCTEwMDAgV2VzdCBNYXVkZSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUtMjgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNEYgICAoaGV4KQkJUFJJVkFURQorMDAwNTRGICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wNS01MCAgIChoZXgpCQlWY29tbXMgQ29ubmVjdCBMaW1pdGVkCiswMDA1NTAgICAgIChiYXNlIDE2KQkJVmNvbW1zIENvbm5lY3QgTGltaXRlZAorCQkJCTc1IFRoZSBFc3BsYW5hZGUsIExldmVsIDMKKwkJCQlQTyBCb3ggMzgtOTIwCisJCQkJV2VsbGluZ3RvbiBNYWlsIENlbnRyZSA1MDQ1IFdlbGxpbmd0b24gCisJCQkJTkVXIFpFQUxBTkQKKworMDAtMDUtNTEgICAoaGV4KQkJRiAmIFMgRWxla3Ryb25payBTeXN0ZW1lIEdtYkgKKzAwMDU1MSAgICAgKGJhc2UgMTYpCQlGICYgUyBFbGVrdHJvbmlrIFN5c3RlbWUgR21iSAorCQkJCVVudGVyZSBXYWxkcGxhZXR6ZSAyMworCQkJCUQtNzA1NjkgU3R1dHRnYXJ0CisJCQkJR0VSTUFOWQorCiswMC0wNS01MiAgIChoZXgpCQlYeWNvdGVjIENvbXB1dGVyIEdtYkgKKzAwMDU1MiAgICAgKGJhc2UgMTYpCQlYeWNvdGVjIENvbXB1dGVyIEdtYkgKKwkJCQlLYXJsLUhlaW56LUJlY2t1cnRzLVN0ci4gNAorCQkJCUQtNTI0MjggSnVsaWNoCisJCQkJR0VSTUFOWQorCiswMC0wNS01MyAgIChoZXgpCQlEVkMgQ29tcGFueSwgSW5jLgorMDAwNTUzICAgICAoYmFzZSAxNikJCURWQyBDb21wYW55LCBJbmMuCisJCQkJMTAyMDAgSHd5IDI5MCBXLgorCQkJCUF1c3RpbiBUWCA3ODIzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNTQgICAoaGV4KQkJUmFuZ2VzdGFyIFdpcmVsZXNzCiswMDA1NTQgICAgIChiYXNlIDE2KQkJUmFuZ2VzdGFyIFdpcmVsZXNzCisJCQkJOTU2NSBTb3F1ZWwgRHJpdmUsIFN1aXRlIDEwMAorCQkJCUFwdG9zIENBIDk1MDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS01NSAgIChoZXgpCQlKYXBhbiBDYXNoIE1hY2hpbmUgQ28uLCBMdGQuCiswMDA1NTUgICAgIChiYXNlIDE2KQkJSmFwYW4gQ2FzaCBNYWNoaW5lIENvLiwgTHRkLgorCQkJCU5vLiAzLTE1LCAyLWNob21lLCBOaXNoaXdha2ksCisJCQkJSGlyYW5vLWt1LCBPc2FrYQorCQkJCTU0Ny0wMDM1CisJCQkJSkFQQU4KKworMDAtMDUtNTYgICAoaGV4KQkJMzYwIFN5c3RlbXMKKzAwMDU1NiAgICAgKGJhc2UgMTYpCQkzNjAgU3lzdGVtcworCQkJCTMxMzU1IEFnb3VyYSBSb2FkCisJCQkJV2VzdGxha2UgVmlsbGFnZSBDQSA5MTM2MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNTcgICAoaGV4KQkJQWdpbGUgVFYgQ29ycG9yYXRpb24KKzAwMDU1NyAgICAgKGJhc2UgMTYpCQlBZ2lsZSBUViBDb3Jwb3JhdGlvbgorCQkJCTMzMyBSYXZlbnN3b29kIEF2ZS4sCisJCQkJQnVpbGRpbmcgMjAyCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNTggICAoaGV4KQkJU3luY2hyb25vdXMsIEluYy4KKzAwMDU1OCAgICAgKGJhc2UgMTYpCQlTeW5jaHJvbm91cywgSW5jLgorCQkJCTc3IExhcyBDb2xpbmFzIExhbmUKKwkJCQlTYW4gSm9zZSBDQSA5NTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNTkgICAoaGV4KQkJSW50cmFjb20gUy5BLgorMDAwNTU5ICAgICAoYmFzZSAxNikJCUludHJhY29tIFMuQS4KKwkJCQkxOSA1IEtNIE1hcmtvcG91bG91IEF2ZS4KKwkJCQkxOTAwMiBQZWFuaWEKKwkJCQlBdHRpa2EgIAorCQkJCUdSRUVDRQorCiswMC0wNS01QSAgIChoZXgpCQlQb3dlciBEc2luZSBMdGQuCiswMDA1NUEgICAgIChiYXNlIDE2KQkJUG93ZXIgRHNpbmUgTHRkLgorCQkJCTEgSGFuYWdhciBTdC4sIFAuTy4gQm94IDcyMjAKKwkJCQlOZXZlIE5lJ2VtYW4gSW5kdXN0cmlhbCBab25lIEhvZCBIYXNoYXJvCisJCQkJSVNSQUVMCisKKzAwLTA1LTVCICAgKGhleCkJCUNoYXJsZXMgSW5kdXN0cmllcywgTHRkLgorMDAwNTVCICAgICAoYmFzZSAxNikJCUNoYXJsZXMgSW5kdXN0cmllcywgTHRkLgorCQkJCTU2MDAgQXBvbGxvIERyLgorCQkJCVJvbGxpbmcgTWVhZG93cyBJTCA2MDAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNUMgICAoaGV4KQkJS293YSBDb21wYW55LCBMdGQuCiswMDA1NUMgICAgIChiYXNlIDE2KQkJS293YSBDb21wYW55LCBMdGQuCisJCQkJQ2hvZnVnYW9rYSAzLTMtMSwKKwkJCQlDaG9mdS1zaSwgVG9reW8sCisJCQkJMTgyLTAwMjEKKwkJCQlKQVBBTgorCiswMC0wNS01RCAgIChoZXgpCQlELUxpbmsgU3lzdGVtcywgSW5jLgorMDAwNTVEICAgICAoYmFzZSAxNikJCUQtTGluayBTeXN0ZW1zLCBJbmMuCisJCQkJNTMgRGlzY292ZXJ5IERyLgorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNUUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNTVFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTVGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDU1RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS02MCAgIChoZXgpCQlMRUFERVIgQ09NTS5DTy4sIExURAorMDAwNTYwICAgICAoYmFzZSAxNikJCUxFQURFUiBDT01NLkNPLiwgTFRECisJCQkJMjM0LCBLb21hZS1yaSwgS2loZXVuZy1ldXAsCisJCQkJWW91bmdzaW4tc2ksIEt5dW5na2ktZG8sCisJCQkJNDQ5LTkwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS02MSAgIChoZXgpCQluYWMgSW1hZ2UgVGVjaG5vbG9neSwgSW5jLgorMDAwNTYxICAgICAoYmFzZSAxNikJCW5hYyBJbWFnZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJOC03IFNhbmJhbi1jaG8sIENoaXlvZGEta3UsCisJCQkJVG9reW8sIDEwMi0wMDc1CisJCQkJSkFQQU4KKworMDAtMDUtNjIgICAoaGV4KQkJRGlnaXRhbCBWaWV3IExpbWl0ZWQKKzAwMDU2MiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFZpZXcgTGltaXRlZAorCQkJCTIyMDEgTmFuIFlhbmcgUGxhemEsCisJCQkJNTcgSHVuZ3RvIFJvYWQsIEt3dW4gVG9uZywKKwkJCQlLb3dsb29uICAKKwkJCQlIT05HIEtPTkcKKworMDAtMDUtNjMgICAoaGV4KQkJSi1Xb3JrcywgSW5jLgorMDAwNTYzICAgICAoYmFzZSAxNikJCUotV29ya3MsIEluYy4KKwkJCQkxMjMyOCBHbGFkc3RvbmUgU3QuICMxCisJCQkJU3lsbW9yIENBIDkxMzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS02NCAgIChoZXgpCQlUc2luZ2h1YSBCaXR3YXkgQ28uLCBMdGQuCiswMDA1NjQgICAgIChiYXNlIDE2KQkJVHNpbmdodWEgQml0d2F5IENvLiwgTHRkLgorCQkJCTEyIEZsb29yLCBUb3dlciBDLCBDb3Jwb3JhdGUKKwkJCQlTcXVhcmUsIE5vLiAzNSwgRmluYW5jaWFsIFN0cmVldCwgWGljaGVuCisJCQkJQ0hJTkEKKworMDAtMDUtNjUgICAoaGV4KQkJVGFpbHluIENvbW11bmljYXRpb24gQ29tcGFueSBMdGQuCiswMDA1NjUgICAgIChiYXNlIDE2KQkJVGFpbHluIENvbW11bmljYXRpb24gQ29tcGFueSBMdGQuCisJCQkJTm8uIDYyLCBMYW5lIDIwNSwgTmFuLVNhbiBSb2FkLAorCQkJCVNlYy4gMiwgTHUtQ2h1IEhzaWFuZywKKwkJCQlUYW95dWFuIEhzaWVuICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LTY2ICAgKGhleCkJCVNlY3VpLmNvbSBDb3Jwb3JhdGlvbgorMDAwNTY2ICAgICAoYmFzZSAxNikJCVNlY3VpLmNvbSBDb3Jwb3JhdGlvbgorCQkJCTE3dGggRmwuIFNhbXN1bmcgWWVva3NhbSBCbGRnLgorCQkJCTY0Ny05LCBZZW9rc2FtLWRvbmcsIEthbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS02NyAgIChoZXgpCQlFdHltb25pYyBEZXNpZ24sIEluYy4KKzAwMDU2NyAgICAgKGJhc2UgMTYpCQlFdHltb25pYyBEZXNpZ24sIEluYy4KKwkJCQk0MSBCeXJvbiBBdmVudWUKKwkJCQlEb3JjaGVzdGVyLCBPbnRhcmlvLAorCQkJCU5PTCAxR08KKwkJCQlDQU5BREEKKworMDAtMDUtNjggICAoaGV4KQkJUGlsdG9maXNoIE5ldHdvcmtzIEFCCiswMDA1NjggICAgIChiYXNlIDE2KQkJUGlsdG9maXNoIE5ldHdvcmtzIEFCCisJCQkJU3RvcmEgQmFkaHVzZ2F0YW4gMTgtMjAKKwkJCQlTLTQxMTIxIEdvdGVib3JnCisJCQkJU1dFREVOCisKKzAwLTA1LTY5ICAgKGhleCkJCVZNd2FyZSwgSW5jLgorMDAwNTY5ICAgICAoYmFzZSAxNikJCVZNd2FyZSwgSW5jLgorCQkJCTM0MDEgSGlsbHZpZXcgQXZlbnVlCisJCQkJUGFsbyBBbHRvIENBIDk0MzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS02QSAgIChoZXgpCQlIZXVmdCBTeXN0ZW10ZWNobmlrIEdtYkgKKzAwMDU2QSAgICAgKGJhc2UgMTYpCQlIZXVmdCBTeXN0ZW10ZWNobmlrIEdtYkgKKwkJCQlCcm9obHRhbHN0ciAzMS0zMworCQkJCTU2NjU5IEJ1cmdicm9obAorCQkJCURldXRzY2hsYW5kICAKKwkJCQlHRVJNQU5ZCisKKzAwLTA1LTZCICAgKGhleCkJCUMuUC4gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDU2QiAgICAgKGJhc2UgMTYpCQlDLlAuIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMTJGLCBOby4gODYsIEhzaW4gVGFpIFd1IFJkLiwKKwkJCQlTZWMuIDEsIEhzaS1DaGloLCBUYWlwZWkgSHNpZW4sCisJCQkJMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS02QyAgIChoZXgpCQlIdW5nIENoYW5nIENvLiwgTHRkLgorMDAwNTZDICAgICAoYmFzZSAxNikJCUh1bmcgQ2hhbmcgQ28uLCBMdGQuCisJCQkJMTM4NS0xNCwgSnVhbi1Eb25nLAorCQkJCU5hbS1rdSwgSW5jaG9tLCA0MDItMjAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTZEICAgKGhleCkJCVBhY2lmaWMgQ29ycG9yYXRpb24KKzAwMDU2RCAgICAgKGJhc2UgMTYpCQlQYWNpZmljIENvcnBvcmF0aW9uCisJCQkJMi0yMy0zIEViaXN1LU1pbmFtaSBTaGlidXlhCisJCQkJVG9reW8gMTUwLTAwMjIKKwkJCQlKQVBBTgorCiswMC0wNS02RSAgIChoZXgpCQlOYXRpb25hbCBFbmhhbmNlIFRlY2hub2xvZ3ksIEluYy4KKzAwMDU2RSAgICAgKGJhc2UgMTYpCQlOYXRpb25hbCBFbmhhbmNlIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyRiwgTm8uIDE5Ni0zLCBUYXR1bmcgUmQuLCBTZWMuIDMsCisJCQkJSHNpIENoaWgsIFRhaXBlaSBIc2llbiwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LTZGICAgKGhleCkJCUlubm9tZWRpYSBUZWNobm9sb2dpZXMgUHZ0LiBMdGQuCiswMDA1NkYgICAgIChiYXNlIDE2KQkJSW5ub21lZGlhIFRlY2hub2xvZ2llcyBQdnQuIEx0ZC4KKwkJCQkjMzI3OCwgMTJ0aCBNYWluIFJvYWQKKwkJCQlIQUwgMm5kIFN0YWdlIEJhbmdhbG9yZSAtIDU2MCAwMDgKKwkJCQlJTkRJQQorCiswMC0wNS03MCAgIChoZXgpCQlCYXlkZWwgTHRkLgorMDAwNTcwICAgICAoYmFzZSAxNikJCUJheWRlbCBMdGQuCisJCQkJQmF5ZGVsIEhvdXNlCisJCQkJQnJvb2sgV2F5IExlYXRoZXJoZWFkLCBTdXJyZXkgS1QyMiA3TkEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNS03MSAgIChoZXgpCQlTZWl3YSBFbGVjdHJvbmljcyBDby4KKzAwMDU3MSAgICAgKGJhc2UgMTYpCQlTZWl3YSBFbGVjdHJvbmljcyBDby4KKwkJCQk3NTcgQW1hYm91a2ksIEt1a2l6YWtpLU1hY2hpCisJCQkJSW5hc2hpa2ktR3VuLCBJYmFyYWtpLUtlbgorCQkJCTMwMC0xMjUzCisJCQkJSkFQQU4KKworMDAtMDUtNzIgICAoaGV4KQkJRGVvbmV0IENvLiwgTHRkLgorMDAwNTcyICAgICAoYmFzZSAxNikJCURlb25ldCBDby4sIEx0ZC4KKwkJCQkjMTI3LTUgSmlueW91bmcgQi9EIDN0aCBGLAorCQkJCU5vbkl5dW4tRG9uZywgS2FuZ05hbS1HdSwKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTczICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDU3MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS03NCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA1NzQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNzUgICAoaGV4KQkJQ0RTLUVsZWN0cm9uaWNzIEJWCiswMDA1NzUgICAgIChiYXNlIDE2KQkJQ0RTLUVsZWN0cm9uaWNzIEJWCisJCQkJTW96YXJ0IGxhYW4gMzMwCisJCQkJMzE0NCBOSCBNYWFzc2x1aXMKKwkJCQlORVRIRVJMQU5EUworCiswMC0wNS03NiAgIChoZXgpCQlOU00gVGVjaG5vbG9neSBMdGQuCiswMDA1NzYgICAgIChiYXNlIDE2KQkJTlNNIFRlY2hub2xvZ3kgTHRkLgorCQkJCTIyIEZsb29yLCBUaW1lcyBUb3dlcgorCQkJCTkyOCBDaGV1bmcgU2hhIFdhbiBSb2FkCisJCQkJS29sb29uICAKKwkJCQlIT05HIEtPTkcKKworMDAtMDUtNzcgICAoaGV4KQkJU00gSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9uCiswMDA1NzcgICAgIChiYXNlIDE2KQkJU00gSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9uCisJCQkJMzMwLTEgWWFuZ2phZWRvbmcKKwkJCQlTZW91Y2hvLUd1LCBTZW91bAorCQkJCTEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtNzggICAoaGV4KQkJUFJJVkFURQorMDAwNTc4ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wNS03OSAgIChoZXgpCQlVbml2ZXJzYWwgQ29udHJvbCBTb2x1dGlvbiBDb3JwLgorMDAwNTc5ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBDb250cm9sIFNvbHV0aW9uIENvcnAuCisJCQkJMTI4NDMgRm9vdGhpbGwgQmx2ZC4KKwkJCQlVbml0ICNkCisJCQkJU3lsbWFyIENBIDkxMzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS03QSAgIChoZXgpCQlIYXR0ZXJhcyBOZXR3b3JrcworMDAwNTdBICAgICAoYmFzZSAxNikJCUhhdHRlcmFzIE5ldHdvcmtzCisJCQkJUC5PLiBCb3ggQm94IDExMDAyNQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtN0IgICAoaGV4KQkJQ2h1bmcgTmFtIEVsZWN0cm9uaWMgQ28uLCBMdGQuCiswMDA1N0IgICAgIChiYXNlIDE2KQkJQ2h1bmcgTmFtIEVsZWN0cm9uaWMgQ28uLCBMdGQuCisJCQkJVW5pdCAzLCAxL0YsIEZlc3RpZ29vZCBDZW50cmUKKwkJCQlOby4gOCBMb2sgWWlwIFJvYWQsIE9uIExvaworCQkJCVRzdWVuIEZhbmxpbmcsIAorCQkJCUhPTkcgS09ORworCiswMC0wNS03QyAgIChoZXgpCQlSQ08gU2VjdXJpdHkgQUIKKzAwMDU3QyAgICAgKGJhc2UgMTYpCQlSQ08gU2VjdXJpdHkgQUIKKwkJCQlCb3ggNzA1CisJCQkJU0UgMTc2IDI3IEphcmZhbGxhCisJCQkJU1dFREVOCisKKzAwLTA1LTdEICAgKGhleCkJCVN1biBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNTdEICAgICAoYmFzZSAxNikJCVN1biBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCUdsb3JpYSBCbGRnIDZ0aAorCQkJCTEtMyBBZ2ViYS1DaG8gU2hpbmp1a3Uta3UKKwkJCQlUb2t5byAgMTYyLTA4MgorCQkJCUpBUEFOCisKKzAwLTA1LTdFICAgKGhleCkJCUVja2VsbWFubiBTdGV1ZXJ1bmdzdGVjaG5payBHbWJICiswMDA1N0UgICAgIChiYXNlIDE2KQkJRWNrZWxtYW5uIFN0ZXVlcnVuZ3N0ZWNobmlrIEdtYkgKKwkJCQlCZXJsaW5lciBTdHJhc3NlIDE2MQorCQkJCTY1MjA1IFdpZXNiYWRlbgorCQkJCUdFUk1BTlkKKworMDAtMDUtN0YgICAoaGV4KQkJQWNxaXMgVGVjaG5vbG9neQorMDAwNTdGICAgICAoYmFzZSAxNikJCUFjcWlzIFRlY2hub2xvZ3kKKwkJCQkxNjIxIFdlc3QgRWwgQ2FtaW5vIFJlYWwKKwkJCQlNdC4gVmlldyBDQSA5NDA0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtODAgICAoaGV4KQkJRmlicm9sYW4gTHRkLgorMDAwNTgwICAgICAoYmFzZSAxNikJCUZpYnJvbGFuIEx0ZC4KKwkJCQk2IEhheWV0emlyYSBTdHJlZXQKKwkJCQlZb2tuZWFtIElsbGl0IDIwNjkyCisJCQkJSVNSQUVMCisKKzAwLTA1LTgxICAgKGhleCkJCVNuZWxsCiswMDA1ODEgICAgIChiYXNlIDE2KQkJU25lbGwKKwkJCQlTb3V0aGxlaWdoIFBhcmsgSG91c2UKKwkJCQlFYXN0bGVpZ2ggUm9hZCwgSGF2YW50CisJCQkJSGFtcHNoaXJlICBQMDkgMlBFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDUtODIgICAoaGV4KQkJQ2xlYXJDdWJlIFRlY2hub2xvZ3kKKzAwMDU4MiAgICAgKGJhc2UgMTYpCQlDbGVhckN1YmUgVGVjaG5vbG9neQorCQkJCTg4MzQgQ2FwaXRhbCBvZiBUZXhhcyBId3ksCisJCQkJU3VpdGUgMTQwCisJCQkJQXVzdGluIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS04MyAgIChoZXgpCQlJbWFnZUNvbSBMaW1pdGVkCiswMDA1ODMgICAgIChiYXNlIDE2KQkJSW1hZ2VDb20gTGltaXRlZAorCQkJCUNlZGFycyBQYXJrLCBDZWRhcnMgUm9hZCwKKwkJCQlNYWlkZW5oZWFkLCBCZXJrc2hpcmUsCisJCQkJU0w2IDFSWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA1LTg0ICAgKGhleCkJCUFic29sdXRlVmFsdWUgU3lzdGVtcywgSW5jLgorMDAwNTg0ICAgICAoYmFzZSAxNikJCUFic29sdXRlVmFsdWUgU3lzdGVtcywgSW5jLgorCQkJCTcxNS1EIE5vcnRoIERyLgorCQkJCU1lbGJvdXJuZSBGTCAzMjkzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtODUgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcywgSW5jLgorMDAwNTg1ICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MsIEluYy4KKwkJCQkxMTk0IE4uIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtODYgICAoaGV4KQkJTHVjZW50IFRlY2hub2xvZ2llcworMDAwNTg2ICAgICAoYmFzZSAxNikJCUx1Y2VudCBUZWNobm9sb2dpZXMKKwkJCQkxNzAxIEhhcmJvciBCYXkgUGFya3dheQorCQkJCUFsYW1lZGEgQ0EgOTQ1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTg3ICAgKGhleCkJCUxvY3VzLCBJbmNvcnBvcmF0ZWQKKzAwMDU4NyAgICAgKGJhc2UgMTYpCQlMb2N1cywgSW5jb3Jwb3JhdGVkCisJCQkJNTU0MCBSZXNlYXJjaCBQYXJrIERyaXZlCisJCQkJRml0Y2hidXJnIENlbnRlcgorCQkJCU1hZGlzb24gV0kgNTM3MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTg4ICAgKGhleCkJCVNlbnNvcmlhIENvcnAuCiswMDA1ODggICAgIChiYXNlIDE2KQkJU2Vuc29yaWEgQ29ycC4KKwkJCQkxNTk1MCBCZXJuYXJkbyBDdHIuIERyLgorCQkJCVN1aXRlIEoKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTg5ICAgKGhleCkJCU5hdGlvbmFsIERhdGFjb21wdXRlcgorMDAwNTg5ICAgICAoYmFzZSAxNikJCU5hdGlvbmFsIERhdGFjb21wdXRlcgorCQkJCTkwMCBNaWRkbGVzZXggVHBrLgorCQkJCUJpbGxlcmljYSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtOEEgICAoaGV4KQkJTmV0Y29tIENvLiwgTHRkLgorMDAwNThBICAgICAoYmFzZSAxNikJCU5ldGNvbSBDby4sIEx0ZC4KKwkJCQkxRiwgTm8uIDcsIExhbmUgMjQyLAorCQkJCUh1IExpaW4gU3RyZWV0CisJCQkJVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LThCICAgKGhleCkJCUlQbWVudGFsLCBJbmMuCiswMDA1OEIgICAgIChiYXNlIDE2KQkJSVBtZW50YWwsIEluYy4KKwkJCQk4Ri05LCBOby4gMzUsIEhzaW4gVGFpIFJkLgorCQkJCUp1aWJlaSwgSHNpbmNodQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDUtOEMgICAoaGV4KQkJT3BlbnRlY2ggSW5jLgorMDAwNThDICAgICAoYmFzZSAxNikJCU9wZW50ZWNoIEluYy4KKwkJCQk2RiwgRG9uZ1dvbiBCbGRnLiwgMjc1CisJCQkJWW91bmdqYWUtRG9uZywgU2VvY2hvLUd1LAorCQkJCVNlb3VsICAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LThEICAgKGhleCkJCUx5bnggUGhvdG9uaWMgTmV0d29ya3MsIEluYy4KKzAwMDU4RCAgICAgKGJhc2UgMTYpCQlMeW54IFBob3RvbmljIE5ldHdvcmtzLCBJbmMuCisJCQkJMTMgSGFtZWxhaGEgU3QuCisJCQkJUm9zaC1IZWF5bgorCQkJCUlTUkFFTAorCiswMC0wNS04RSAgIChoZXgpCQlGbGV4dHJvbmljcyBJbnRlcm5hdGlvbmFsIEdtYkggJiBDby4gTmZnLiBLRworMDAwNThFICAgICAoYmFzZSAxNikJCUZsZXh0cm9uaWNzIEludGVybmF0aW9uYWwgR21iSCAmIENvLiBOZmcuIEtHCisJCQkJU2NocmFja2dhc3NlIDktMTUKKwkJCQlLaW5kYmVyZyAgODY1MAorCQkJCUFVU1RSSUEKKworMDAtMDUtOEYgICAoaGV4KQkJQ0xDc29mdCBjby4KKzAwMDU4RiAgICAgKGJhc2UgMTYpCQlDTENzb2Z0IGNvLgorCQkJCURlcHQuIG9mIEVsZWN0cmljYWwgRW5naW5lZXJpbmcKKwkJCQlLQUlTVCwgMzczLTEgS3VzZW9uZy1kb25nLCBZdXNlb25nLWd1LCBECisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTkwICAgKGhleCkJCVN3aXNzdm9pY2UgTHRkLgorMDAwNTkwICAgICAoYmFzZSAxNikJCVN3aXNzdm9pY2UgTHRkLgorCQkJCVppZWdlbG1hdHRzdHJhc3NlIDEKKwkJCQk0NTAzIFNvbG90aHVybgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA1LTkxICAgKGhleCkJCUFjdGl2ZSBTaWxpY29uIEx0ZC4KKzAwMDU5MSAgICAgKGJhc2UgMTYpCQlBY3RpdmUgU2lsaWNvbiBMdGQuCisJCQkJQnJ1bm5lbCBTY2llbmNlIFBhcmsKKwkJCQlLaW5nc3RvbiBMYW5lLCBVeGJyaWRnZSwKKwkJCQlNaWRkeCAgVUI4IDNQUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA1LTkyICAgKGhleCkJCVB1bHRlayBDb3JwLgorMDAwNTkyICAgICAoYmFzZSAxNikJCVB1bHRlayBDb3JwLgorCQkJCTc0LTEsIFlhbWFzaGl0YS1jaG8sCisJCQkJTmFrYS1rdSwgVG9rb2hhbWEtY2l0eSwKKwkJCQkyMzEtMDAyMworCQkJCUpBUEFOCisKKzAwLTA1LTkzICAgKGhleCkJCUdyYW1tYXIgRW5naW5lIEluYy4KKzAwMDU5MyAgICAgKGJhc2UgMTYpCQlHcmFtbWFyIEVuZ2luZSBJbmMuCisJCQkJOTIxIEVhc3R3aW5kIERyaXZlCisJCQkJU3VpdGUgMTIyCisJCQkJV2VzdGVydmlsbGUgT0ggNDMwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTk0ICAgKGhleCkJCUlYWEFUIEF1dG9tYXRpb24gR21iSAorMDAwNTk0ICAgICAoYmFzZSAxNikJCUlYWEFUIEF1dG9tYXRpb24gR21iSAorCQkJCUxlaWJuaXpzdHJhc3NlIDE1CisJCQkJODgyNTAgV2VpbmdhcnRlbgorCQkJCUdFUk1BTlkKKworMDAtMDUtOTUgICAoaGV4KQkJQWxlc2lzIENvcnBvcmF0aW9uCiswMDA1OTUgICAgIChiYXNlIDE2KQkJQWxlc2lzIENvcnBvcmF0aW9uCisJCQkJMTYzMyAyNnRoIFN0cmVldAorCQkJCVNhbnRhIE1vbmljYSBDQSA5MDQwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtOTYgICAoaGV4KQkJR2Vub3RlY2ggQ28uLCBMdGQuCiswMDA1OTYgICAgIChiYXNlIDE2KQkJR2Vub3RlY2ggQ28uLCBMdGQuCisJCQkJIzMwOCBHdW5rb29rIEJsZGcuLAorCQkJCTI4OC0xIERva3Nhbi1Eb25nCisJCQkJR3VtY2hvbi1HdSBTZW91bCAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtOTcgICAoaGV4KQkJRWFnbGUgVHJhZmZpYyBDb250cm9sIFN5c3RlbXMKKzAwMDU5NyAgICAgKGJhc2UgMTYpCQlFYWdsZSBUcmFmZmljIENvbnRyb2wgU3lzdGVtcworCQkJCTgwMDQgQ2FtZXJvbiBSb2FkCisJCQkJQXVzdGluIFRYIDc4NzU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS05OCAgIChoZXgpCQlDUk9OT1MgUy5yLmwuCiswMDA1OTggICAgIChiYXNlIDE2KQkJQ1JPTk9TIFMuci5sLgorCQkJCVZpYSBjYXZvdXIgNTgvQQorCQkJCTIzOTAwIExFQ0NPIChMQykKKwkJCQlJVEFMWQorCiswMC0wNS05OSAgIChoZXgpCQlEUlMgVGVzdCBhbmQgRW5lcmd5IE1hbmFnZW1lbnQgb3IgRFJTLVRFTQorMDAwNTk5ICAgICAoYmFzZSAxNikJCURSUyBUZXN0IGFuZCBFbmVyZ3kgTWFuYWdlbWVudCBvciBEUlMtVEVNCisJCQkJMTEwIFd5bm4gRHJpdmUKKwkJCQlIdW50c3ZpbGxlIEFMIDM1ODA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS05QSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA1OUEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS05QiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA1OUIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS05QyAgIChoZXgpCQlLbGVpbmtuZWNodCBHbWJILCBJbmcuIEJ1ZXJvCiswMDA1OUMgICAgIChiYXNlIDE2KQkJS2xlaW5rbmVjaHQgR21iSCwgSW5nLiBCdWVybworCQkJCUJhY2hzdHJhc3NlIDMwCisJCQkJRC04MjU0MSBNdWVuc2luZworCQkJCUdFUk1BTlkKKworMDAtMDUtOUQgICAoaGV4KQkJRGFuaWVsIENvbXB1dGluZyBTeXN0ZW1zLCBJbmMuCiswMDA1OUQgICAgIChiYXNlIDE2KQkJRGFuaWVsIENvbXB1dGluZyBTeXN0ZW1zLCBJbmMuCisJCQkJMzIwOCA4dGggQXZlbnVlIE5FICMxMTgKKwkJCQlDYWxnYXJ5IEFsYmVydGEKKwkJCQlUMkEgN1Y4CisJCQkJQ0FOQURBCisKKzAwLTA1LTlFICAgKGhleCkJCVppbndlbGwgQ29ycG9yYXRpb24KKzAwMDU5RSAgICAgKGJhc2UgMTYpCQlaaW53ZWxsIENvcnBvcmF0aW9uCisJCQkJN0YsIE5vLjUxMiwgWXVhbi1TaGFuIFJvYWQKKwkJCQlDaGFuZy1obyBjaXR5IFRhaXBlaSBIc2llbgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDUtOUYgICAoaGV4KQkJWW90dGEgTmV0d29ya3MsIEluYy4KKzAwMDU5RiAgICAgKGJhc2UgMTYpCQlZb3R0YSBOZXR3b3JrcywgSW5jLgorCQkJCTIyMDEgQXZlbnVlIEsKKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQTAgICAoaGV4KQkJTU9CSUxJTkUgS2Z0LgorMDAwNUEwICAgICAoYmFzZSAxNikJCU1PQklMSU5FIEtmdC4KKwkJCQlMZWhlbCBVdGNhIDE0CisJCQkJQlVEQVBFU1QKKwkJCQlILTExMzQKKwkJCQlIVU5HQVJZCisKKzAwLTA1LUExICAgKGhleCkJCVplbm9jb20KKzAwMDVBMSAgICAgKGJhc2UgMTYpCQlaZW5vY29tCisJCQkJTm8uNDAyLCA0dGggZmxvb3IsIFdvbmdvayBCbGRnLgorCQkJCTgzMC0zOCwgWW9rc2FtLURvbmcsIEdhbmduYW0tR3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUEyICAgKGhleCkJCUNFTE9YIE5ldHdvcmtzCiswMDA1QTIgICAgIChiYXNlIDE2KQkJQ0VMT1ggTmV0d29ya3MKKwkJCQk5NDAgV2VzdCBQb3J0IFBsYXphIC0gU3RlLiAjMzAwCisJCQkJU3QuIExvdWlzIE1PIDYzMTQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1BMyAgIChoZXgpCQlRRUksIEluYy4KKzAwMDVBMyAgICAgKGJhc2UgMTYpCQlRRUksIEluYy4KKwkJCQk2MCBGYWRlbSBSb2FkCisJCQkJU3ByaW5nZmllbGQgTkogMDcwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUE0ICAgKGhleCkJCUx1Y2lkIFZvaWNlIEx0ZC4KKzAwMDVBNCAgICAgKGJhc2UgMTYpCQlMdWNpZCBWb2ljZSBMdGQuCisJCQkJNSBKYWJvdGluc2tpIFN0cmVldAorCQkJCVJhbWF0LUdhbiwgNTI1MjAKKwkJCQlJU1JBRUwKKworMDAtMDUtQTUgICAoaGV4KQkJS09UVAorMDAwNUE1ICAgICAoYmFzZSAxNikJCUtPVFQKKwkJCQlTdWl0ZSAzMDUgRGFlaGEgQi9ECisJCQkJNjgwIFllb2tzYW0tRG9uZywgS2FuZ05hbS1HdSBTZW91bAorCQkJCTEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtQTYgICAoaGV4KQkJRXh0cm9uIEVsZWN0cm9uaWNzCiswMDA1QTYgICAgIChiYXNlIDE2KQkJRXh0cm9uIEVsZWN0cm9uaWNzCisJCQkJMTIzMCBTLiBMZXdpcworCQkJCUFuYWhpZW0gQ0EgOTI4MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUE3ICAgKGhleCkJCUh5cGVyY2hpcCwgSW5jLgorMDAwNUE3ICAgICAoYmFzZSAxNikJCUh5cGVyY2hpcCwgSW5jLgorCQkJCTE4MCBQZWVsIFN0cmVldCAtIFN0ZS4gIzMzMworCQkJCU1vbnRyZWFsLCBRdWViZWMKKwkJCQlIM0MgMkc3CisJCQkJQ0FOQURBCisKKzAwLTA1LUE4ICAgKGhleCkJCVdZTEUgRUxFQ1RST05JQ1MKKzAwMDVBOCAgICAgKGJhc2UgMTYpCQlXWUxFIEVMRUNUUk9OSUNTCisJCQkJMzAwMCBCT1dFUlMgQVZFTlVFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTEtMDkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQTkgICAoaGV4KQkJUHJpbmNldG9uIE5ldHdvcmtzLCBJbmMuCiswMDA1QTkgICAgIChiYXNlIDE2KQkJUHJpbmNldG9uIE5ldHdvcmtzLCBJbmMuCisJCQkJMTAwIENlbnR1cnkgQ2VudGVyIEN0LiAjMTAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUFBICAgKGhleCkJCU1vb3JlIEluZHVzdHJpZXMgSW50ZXJuYXRpb25hbCBJbmMuCiswMDA1QUEgICAgIChiYXNlIDE2KQkJTW9vcmUgSW5kdXN0cmllcyBJbnRlcm5hdGlvbmFsIEluYy4KKwkJCQkxNjY1MCBTY2hvZW5ib3JuIFN0LgorCQkJCU5vcnRoIEhpbGxzIENBIDkxMzQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1BQiAgIChoZXgpCQlDeWJlciBGb25lLCBJbmMuCiswMDA1QUIgICAgIChiYXNlIDE2KQkJQ3liZXIgRm9uZSwgSW5jLgorCQkJCTk4OSBPbGQgRWFnbGUgU2Nob29sIFJvYWQKKwkJCQlTdWl0ZSA4MDAKKwkJCQlXYXluZSBQQSAxOTA4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQUMgICAoaGV4KQkJTm9ydGhlcm4gRGlnaXRhbCwgSW5jLgorMDAwNUFDICAgICAoYmFzZSAxNikJCU5vcnRoZXJuIERpZ2l0YWwsIEluYy4KKwkJCQkxMDMgUmFuZGFsbCBEcml2ZQorCQkJCVdhdGVybG9vICBPbnRhcmlvIE4yViAxQzUKKwkJCQlDQU5BREEKKworMDAtMDUtQUQgICAoaGV4KQkJVG9wc3BpbiBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNUFEICAgICAoYmFzZSAxNikJCVRvcHNwaW4gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk1MTUgRWxsaXMgU3RyZWV0CisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQUUgICAoaGV4KQkJTWVkaWFwb3J0IFVTQQorMDAwNUFFICAgICAoYmFzZSAxNikJCU1lZGlhcG9ydCBVU0EKKwkJCQkxNzE1MSBOZXdob3BlIEF2ZS4gIzIwMgorCQkJCUZvdW50YWluIFZhbGxleSBDQSA5MjcwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQUYgICAoaGV4KQkJSW5ub1NjYW4gQ29tcHV0aW5nIEEvUworMDAwNUFGICAgICAoYmFzZSAxNikJCUlubm9TY2FuIENvbXB1dGluZyBBL1MKKwkJCQlTb3JlbiBGcmljaHN2ZWogNDJSCisJCQkJREstODIzMCBBYWJ5aG9qCisJCQkJREVOTUFSSworCiswMC0wNS1CMCAgIChoZXgpCQlLb3JlYSBDb21wdXRlciBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwNUIwICAgICAoYmFzZSAxNikJCUtvcmVhIENvbXB1dGVyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJS0NUIEJsZGcsIDExMS0zIFlhbmdqYWUtRG9uZywKKwkJCQlTZW9jaG8tR3UsIFNlb3VsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUIxICAgKGhleCkJCUFTQiBUZWNobm9sb2d5IEJWCiswMDA1QjEgICAgIChiYXNlIDE2KQkJQVNCIFRlY2hub2xvZ3kgQlYKKwkJCQlEZSBSb25kZSAxNUEKKwkJCQk1NjgzIENaIEJlc3QKKwkJCQlORVRIRVJMQU5EUworCiswMC0wNS1CMiAgIChoZXgpCQlNZWRpc29uIENvLiwgTHRkLgorMDAwNUIyICAgICAoYmFzZSAxNikJCU1lZGlzb24gQ28uLCBMdGQuCisJCQkJOTk3LTQsIFNhZWNoaS1Eb25nLAorCQkJCUthbmduYW0ta3UsIFNvdWVsLAorCQkJCTEzNS0yODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtQjMgICAoaGV4KQkJQXNhaGktRW5naW5lZXJpbmcgQ28uLCBMdGQuCiswMDA1QjMgICAgIChiYXNlIDE2KQkJQXNhaGktRW5naW5lZXJpbmcgQ28uLCBMdGQuCisJCQkJMy02LTEyLTIgR2FrdWVuaGlnYXNoaS1jaG8KKwkJCQlLb2RhaXJhLXNoaQorCQkJCVRva3lvICAxODctMDA0MworCQkJCUpBUEFOCisKKzAwLTA1LUI0ICAgKGhleCkJCUFjZWV4IENvcnBvcmF0aW9uCiswMDA1QjQgICAgIChiYXNlIDE2KQkJQWNlZXggQ29ycG9yYXRpb24KKwkJCQkyRiwgTm8uIDIsIEFsbGV5IDEsIFN6ZS1XZWkgTGFuZQorCQkJCUNodW5nLUNoZW5nIFJkLiwgSHNpbnRpZW4sIFRhaXBlaQorCQkJCTIzMTM4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS1CNSAgIChoZXgpCQlCcm9hZGNvbSBUZWNobm9sb2dpZXMKKzAwMDVCNSAgICAgKGJhc2UgMTYpCQlCcm9hZGNvbSBUZWNobm9sb2dpZXMKKwkJCQkxMzctMDYwCisJCQkJODU4LTMxIFl1amVvbmcgQkxELCBCYW5nYmFlLURvbmcKKwkJCQlTZWNoby1HdSBTZW91bCwgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUI2ICAgKGhleCkJCUlOU1lTIE1pY3JvZWxlY3Ryb25pY3MgR21iSAorMDAwNUI2ICAgICAoYmFzZSAxNikJCUlOU1lTIE1pY3JvZWxlY3Ryb25pY3MgR21iSAorCQkJCVdhZmZuZXJnYXNzZSA4CisJCQkJOTMwNDcgUmVnZW5zYnVyZworCQkJCUdFUk1BTlkKKworMDAtMDUtQjcgICAoaGV4KQkJQXJib3IgVGVjaG5vbG9neSBDb3JwLgorMDAwNUI3ICAgICAoYmFzZSAxNikJCUFyYm9yIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQk1RiwgTm8uIDczOCwgWmhvbmcgWmhlbmcgUmQuLAorCQkJCVpob25nIEhvIDIzNSwgVGFpcGVpLAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDUtQjggICAoaGV4KQkJRWxlY3Ryb25pYyBEZXNpZ24gQXNzb2NpYXRlcywgSW5jLgorMDAwNUI4ICAgICAoYmFzZSAxNikJCUVsZWN0cm9uaWMgRGVzaWduIEFzc29jaWF0ZXMsIEluYy4KKwkJCQkzMzEgQXJjYWRvIFJkLiBOVworCQkJCVN1aXRlIEMtMQorCQkJCUxpbGJ1cm4gR0EgMzAwNDctMjg0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQjkgICAoaGV4KQkJQWlydmFuYSwgSW5jLgorMDAwNUI5ICAgICAoYmFzZSAxNikJCUFpcnZhbmEsIEluYy4KKwkJCQkyNSBJbmR1c3RyaWFsIEF2ZS4KKwkJCQlDaGxlbXNmb3JkIE1BIDAxODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1CQSAgIChoZXgpCQlBcmVhIE5ldHdvZWtzLCBJbmMuCiswMDA1QkEgICAgIChiYXNlIDE2KQkJQXJlYSBOZXR3b2VrcywgSW5jLgorCQkJCTExNDggRXVjbGlkIEF2ZS4sIFN1aXRlIDQwMAorCQkJCUNsZXZlbGFuZCBPSCA0NDE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1CQiAgIChoZXgpCQlNeXNwYWNlIEFCCiswMDA1QkIgICAgIChiYXNlIDE2KQkJTXlzcGFjZSBBQgorCQkJCVN2ZWF2YWdlbiAzMworCQkJCVNFLTExMTM0IFN0b2NraG9sbQorCQkJCVNXRURFTgorCiswMC0wNS1CQyAgIChoZXgpCQlSZXNvcnN5cyBMdGQuCiswMDA1QkMgICAgIChiYXNlIDE2KQkJUmVzb3JzeXMgTHRkLgorCQkJCTgwIEpvaG5zZG9uZSBBdmVudWUsCisJCQkJSGlsaW5ndG9uLCBHbGFzZ293LAorCQkJCVNjb3RsYW5kICBHNTIgNExUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDUtQkQgICAoaGV4KQkJUk9BWCBCVgorMDAwNUJEICAgICAoYmFzZSAxNikJCVJPQVggQlYKKwkJCQlTdGVycmVuYmVyZ3dlZyAyOQorCQkJCU5MLTM3NjkgQlMgIFNPRVNURVJCRVJHCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDUtQkUgICAoaGV4KQkJS29uZ3NiZXJnIFNlYXRleCBBUworMDAwNUJFICAgICAoYmFzZSAxNikJCUtvbmdzYmVyZyBTZWF0ZXggQVMKKwkJCQlQaXJzZW50ZXJldAorCQkJCU4tNzU2MiBUcm9uZGhlaW0KKwkJCQlOT1JXQVkKKworMDAtMDUtQkYgICAoaGV4KQkJSnVzdEV6eSBUZWNobm9sb2d5LCBJbmMuCiswMDA1QkYgICAgIChiYXNlIDE2KQkJSnVzdEV6eSBUZWNobm9sb2d5LCBJbmMuCisJCQkJNUYsIE5vLiAzMjQsIFNlYy4gMSwgSnVuZ2h1YSBSZC4KKwkJCQlIc2luY2h1ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LUMwICAgKGhleCkJCURpZ2l0YWwgTmV0d29yayBBbGFjYXJ0ZSBDby4sIEx0ZC4KKzAwMDVDMCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIE5ldHdvcmsgQWxhY2FydGUgQ28uLCBMdGQuCisJCQkJQTEwNCwgU2VvdWwgQnVzaW5lc3MgSW5jdWJhdG9yCisJCQkJNjQ3LTI2LCBEZXVuZ0NodW4tRG9uZywgS2FuZ3Nlby1HdQorCQkJCVNlb3VsICAxNTctMDMwLAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1DMSAgIChoZXgpCQlBLUt5dW5nIE1vdGlvbiwgSW5jLgorMDAwNUMxICAgICAoYmFzZSAxNikJCUEtS3l1bmcgTW90aW9uLCBJbmMuCisJCQkJNTQtMTAsIE11bmp1bmctRG9uZworCQkJCVNvbmdwYS1LdSwKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUMyICAgKGhleCkJCVNvcm9udGksIEluYy4KKzAwMDVDMiAgICAgKGJhc2UgMTYpCQlTb3JvbnRpLCBJbmMuCisJCQkJMTIyNTcgU291dGggQnVzaW5lc3MgUGFyayBEcml2ZQorCQkJCSMxNjAKKwkJCQlEcmFwZXIgVXRhaCA4NDAyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQzMgICAoaGV4KQkJUGFjaWZpYyBJbnN0cnVtZW50cywgSW5jLgorMDAwNUMzICAgICAoYmFzZSAxNikJCVBhY2lmaWMgSW5zdHJ1bWVudHMsIEluYy4KKwkJCQk0MDgwIFBpa2UgTGFuZQorCQkJCUNvbmNvcmQgQ0EgOTQ1MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUM0ICAgKGhleCkJCVRlbGVjdCwgSW5jLgorMDAwNUM0ICAgICAoYmFzZSAxNikJCVRlbGVjdCwgSW5jLgorCQkJCTIxMTEgTi4gTW9sdGVyIFJvYWQKKwkJCQlMaWJlcnR5IExha2UgV0EgOTkwMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUM1ICAgKGhleCkJCUZsYWdhIEhGCiswMDA1QzUgICAgIChiYXNlIDE2KQkJRmxhZ2EgSEYKKwkJCQlWZXN0dXJobGlkIDcKKwkJCQlJUy0xMDUgUmV5a2phdmlrCisJCQkJSUNFTEFORAorCiswMC0wNS1DNiAgIChoZXgpCQlUcml6IENvbW11bmljYXRpb25zCiswMDA1QzYgICAgIChiYXNlIDE2KQkJVHJpeiBDb21tdW5pY2F0aW9ucworCQkJCUFud29uIEJsZGcuIDd0aCBGbC4KKwkJCQkxNC0xNSBZb2lkby1Eb25nIFlvdW5nZGV1bmdwby1HdQorCQkJCVNlb3VsICAxNTAtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUM3ICAgKGhleCkJCUkvRi1DT00gQS9TCiswMDA1QzcgICAgIChiYXNlIDE2KQkJSS9GLUNPTSBBL1MKKwkJCQlFbGxlZ2FhcmR2ZWogMzYKKwkJCQk2NDAwIFNvZW5kZXJib3JnCisJCQkJREVOTUFSSworCiswMC0wNS1DOCAgIChoZXgpCQlWRVJZVEVDSAorMDAwNUM4ICAgICAoYmFzZSAxNikJCVZFUllURUNICisJCQkJIzQwMiwgSmFuZyBZb3VuZyBTaGlsIEt3YW4sCisJCQkJVmVudHVyZSBUb3duLCAxNjg4LTUgU2hpbmlsLURvbmcsIERhZWRlbworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1DOSAgIChoZXgpCQlMRyBJbm5vdGVrIENvLiwgTHRkLgorMDAwNUM5ICAgICAoYmFzZSAxNikJCUxHIElubm90ZWsgQ28uLCBMdGQuCisJCQkJTEcgQ29tcG9uZW50IFImRCBDZW50ZXIKKwkJCQkxMjcxLCBTYS1Eb25nLCBTYW5ncm9rLWd1CisJCQkJQW5zYW4tc2kgR3llb25nZ2ktZG8gNDI2LTc5MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1DQSAgIChoZXgpCQlIaXRyb24gVGVjaG5vbG9neSwgSW5jLgorMDAwNUNBICAgICAoYmFzZSAxNikJCUhpdHJvbiBUZWNobm9sb2d5LCBJbmMuCisJCQkJSFNJTkNIVSBTQklQIFNVQlNJRElBUlkKKwkJCQlOby4gMjUgUiZEIDFzdCBSZC4gU2NpZW5jZS1CYXNlZCBJbmR1c3RyCisJCQkJSHNpbi1jaHUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDUtQ0IgICAoaGV4KQkJUk9JUyBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDVDQiAgICAgKGJhc2UgMTYpCQlST0lTIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTZ0aCBGIENoYW5naHl1biBCL0QsIDk2MC0xCisJCQkJSG9neWUtRG9uZyBEb25nYW4tS3UgQW55YW5nLAorCQkJCTQzMS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtQ0MgICAoaGV4KQkJU3VtdGVsIENvbW11bmljYXRpb25zLCBJbmMuCiswMDA1Q0MgICAgIChiYXNlIDE2KQkJU3VtdGVsIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMUYsIE5vLiAxNzMsIEd1bmcgWXVhbiBSb2FkLAorCQkJCUhzaW5jaHUgQ2l0eSAgMzAwNTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LUNEICAgKGhleCkJCURlbm9uLCBMdGQuCiswMDA1Q0QgICAgIChiYXNlIDE2KQkJRGVub24sIEx0ZC4KKwkJCQkzNS0xLCBTYWdhbWlvbm8gNy1jaG9tZSwKKwkJCQlTYWdhbWloYXJhLXNoaQorCQkJCUthbmFnYXdhICAyMjgtODUwNQorCQkJCUpBUEFOCisKKzAwLTA1LUNFICAgKGhleCkJCVByb2xpbmsgTWljcm9zeXN0ZW1zIENvcnBvcmF0aW9uCiswMDA1Q0UgICAgIChiYXNlIDE2KQkJUHJvbGluayBNaWNyb3N5c3RlbXMgQ29ycG9yYXRpb24KKwkJCQk2RiwgTm8uIDM0OSwgWWFuZy1LdWFuZyBTdC4KKwkJCQlOZWktSHUgVGFpcGVpLCAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LUNGICAgKGhleCkJCVRodW5kZXIgUml2ZXIgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA1Q0YgICAgIChiYXNlIDE2KQkJVGh1bmRlciBSaXZlciBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyMyBDb3Jwb3JhdGUgUGxhemEsIFN1aXRlIDI1MAorCQkJCU5ld3BvcnQgQmVhY2ggQ0EgOTI2NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUQwICAgKGhleCkJCVNvbGluZXQgU3lzdGVtcworMDAwNUQwICAgICAoYmFzZSAxNikJCVNvbGluZXQgU3lzdGVtcworCQkJCTEyMDAtMTgwIEVsZ2luIFN0LgorCQkJCU90dGF3YSBPbnRhcmlvCisJCQkJSzJQIDJLMworCQkJCUNBTkFEQQorCiswMC0wNS1EMSAgIChoZXgpCQlNZXRhdmVjdG9yIFRlY2hub2xvZ2llcworMDAwNUQxICAgICAoYmFzZSAxNikJCU1ldGF2ZWN0b3IgVGVjaG5vbG9naWVzCisJCQkJU3RlZW53ZWcgT3AgR2llcmxlLCAxMDAKKwkJCQlCLTIzMDAgVHVybmhvdXQsCisJCQkJQkVMR0lVTQorCiswMC0wNS1EMiAgIChoZXgpCQlEQVAgVGVjaG5vbG9naWVzCiswMDA1RDIgICAgIChiYXNlIDE2KQkJREFQIFRlY2hub2xvZ2llcworCQkJCTk1NSBGZXJuYW5kIER1Zm91ciwKKwkJCQlWaWxsZSBEZSBWYW5pZXIsIFF1ZWJlYywKKwkJCQlHMU0gM0IyCisJCQkJQ0FOQURBCisKKzAwLTA1LUQzICAgKGhleCkJCWVQcm9kdWN0aW9uIFNvbHV0aW9ucywgSW5jLgorMDAwNUQzICAgICAoYmFzZSAxNikJCWVQcm9kdWN0aW9uIFNvbHV0aW9ucywgSW5jLgorCQkJCTIyMDAxIE5vcnRoIFBhcmsgRHJpdmUKKwkJCQlLaW5nd29vZCBUWCA3NzMzOS0zODA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1ENCAgIChoZXgpCQlGdXR1cmVTbWFydCBOZXR3b3JrcywgSW5jLgorMDAwNUQ0ICAgICAoYmFzZSAxNikJCUZ1dHVyZVNtYXJ0IE5ldHdvcmtzLCBJbmMuCisJCQkJNjE1NSBBbG1hZGVuIEV4cHJlc3N3YXkKKwkJCQlTdWl0ZSAxMDAKKwkJCQlTYW4gSm9zZSBDQSA5NTEyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRDUgICAoaGV4KQkJU3BlZWRjb20gV2lyZWxlc3MKKzAwMDVENSAgICAgKGJhc2UgMTYpCQlTcGVlZGNvbSBXaXJlbGVzcworCQkJCTcwMjAgUHJvZmVzc2lvbmFsIFBrd3kgRWFzdAorCQkJCVNhcmFzb3RhIEZMIDM0MjQwLTg1MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUQ2ICAgKGhleCkJCVRpdGFuIFdpcmVsZXNzCiswMDA1RDYgICAgIChiYXNlIDE2KQkJVGl0YW4gV2lyZWxlc3MKKwkJCQkzMDMzIFNjaWVuY2UgUGFyayBSb2FkCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1ENyAgIChoZXgpCQlWaXN0YSBJbWFnaW5nLCBJbmMuCiswMDA1RDcgICAgIChiYXNlIDE2KQkJVmlzdGEgSW1hZ2luZywgSW5jLgorCQkJCTUyMSBUYXlsb3IgV2F5CisJCQkJU2FuIENhcmxvcyBDQSA5NDA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRDggICAoaGV4KQkJQXJlc2NvbSwgSW5jLgorMDAwNUQ4ICAgICAoYmFzZSAxNikJCUFyZXNjb20sIEluYy4KKwkJCQkzNTQxIEdhdGV3YXkgQmx2ZC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1EOSAgIChoZXgpCQlUZWNobm8gVmFsbGV5LCBJbmMuCiswMDA1RDkgICAgIChiYXNlIDE2KQkJVGVjaG5vIFZhbGxleSwgSW5jLgorCQkJCUFTSUMgVmVudHVyZSBUb3duIDVGLAorCQkJCTEzMzAtMyBTZW9jaG8yLURvbmcsIFNlb2Noby1LdSwKKwkJCQlTZW91bCAgMTM1LTA3MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1EQSAgIChoZXgpCQlBcGV4IEF1dG9tYXRpb25zdGVjaG5paworMDAwNURBICAgICAoYmFzZSAxNikJCUFwZXggQXV0b21hdGlvbnN0ZWNobmlrCisJCQkJVm9zc2Vua2FtcCA0CisJCQkJRC0zODEwNCBCcmF1bnNjaHdlaWcKKwkJCQlHRVJNQU5ZCisKKzAwLTA1LURCICAgKGhleCkJCVBTSSBOZW50ZWMgR21iSAorMDAwNURCICAgICAoYmFzZSAxNikJCVBTSSBOZW50ZWMgR21iSAorCQkJCUdyZXNjaGJhY2hzdHJhc3NlIDEyCisJCQkJS2FybHNydWhlICA3NjIyOQorCQkJCUdFUk1BTlkKKworMDAtMDUtREMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNURDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUREICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDVERCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1ERSAgIChoZXgpCQlHaSBGb25lIEtvcmVhLCBJbmMuCiswMDA1REUgICAgIChiYXNlIDE2KQkJR2kgRm9uZSBLb3JlYSwgSW5jLgorCQkJCVR3aW4gQmxkZy4gNHRoIEZsLAorCQkJCTkwMi0xMjQgVG9nb2stZG9uZywgS2FuZ25hbS1ndSwKKwkJCQlTZW91bCwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1ERiAgIChoZXgpCQlFbGVjdHJvbmljIElubm92YXRpb24sIEluYy4KKzAwMDVERiAgICAgKGJhc2UgMTYpCQlFbGVjdHJvbmljIElubm92YXRpb24sIEluYy4KKwkJCQkxMjczMSBDYW5uaW5ndG9uIFdheSBTVworCQkJCUNhbGdhcnksIEFCIFQyVyAxWjcKKwkJCQlDQU5BREEKKworMDAtMDUtRTAgICAoaGV4KQkJRW1waXJpeCBDb3JwLgorMDAwNUUwICAgICAoYmFzZSAxNikJCUVtcGlyaXggQ29ycC4KKwkJCQkyMDUgTG93ZWxsIFN0LgorCQkJCVdpbG1pbmd0b24gTUEgMDE4ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUUxICAgKGhleCkJCVRyZWxsaXMgUGhvdG9uaWNzLCBMdGQuCiswMDA1RTEgICAgIChiYXNlIDE2KQkJVHJlbGxpcyBQaG90b25pY3MsIEx0ZC4KKwkJCQlQLk8uQi4gMzYKKwkJCQlZb2duZWFtIEVsaXRlLCAyMDY5MgorCQkJCUlTUkFFTAorCiswMC0wNS1FMiAgIChoZXgpCQlDcmVhdGl2IE5ldHdvcmsgVGVjaG5vbG9naWVzCiswMDA1RTIgICAgIChiYXNlIDE2KQkJQ3JlYXRpdiBOZXR3b3JrIFRlY2hub2xvZ2llcworCQkJCTE3NTUgU3QuIFJlZ2lzIFN1aXRlIDI0MAorCQkJCURvbGxhcmQtZGVzLU9ybWVhdXgKKwkJCQlRdWViZWMgSDlCLTJNOQorCQkJCUNBTkFEQQorCiswMC0wNS1FMyAgIChoZXgpCQlMaWdodFNhbmQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDVFMyAgICAgKGJhc2UgMTYpCQlMaWdodFNhbmQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkzNzUgTG9zIENvY2hlcyBTdC4KKwkJCQlNaWxwaXRhcyBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRTQgICAoaGV4KQkJUmVkIExpb24gQ29udHJvbHMgSW5jLgorMDAwNUU0ICAgICAoYmFzZSAxNikJCVJlZCBMaW9uIENvbnRyb2xzIEluYy4KKwkJCQkyMCBXaWxsb3cgU3ByaW5ncyBDaXJjbGUKKwkJCQlZb3JrIFBBIDE3NDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1FNSAgIChoZXgpCQlSZW5pc2hhdyBQTEMKKzAwMDVFNSAgICAgKGJhc2UgMTYpCQlSZW5pc2hhdyBQTEMKKwkJCQlOZXcgTWlsbHMsIFdvdHRvbi11bmRlci1FZGdlCisJCQkJR2xvdWNlc3RlcnNodXJlLCBHTDEyIDhKUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA1LUU2ICAgKGhleCkJCUVnZW5lcmEsIEluYy4KKzAwMDVFNiAgICAgKGJhc2UgMTYpCQlFZ2VuZXJhLCBJbmMuCisJCQkJMTY1IEZvcmVzdCBTdC4KKwkJCQlNYXJsYm9ybyBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRTcgICAoaGV4KQkJTmV0cmFrZSBhbiBBdWRpb0NvZGVzIENvbXBhbnkKKzAwMDVFNyAgICAgKGJhc2UgMTYpCQlOZXRyYWtlIGFuIEF1ZGlvQ29kZXMgQ29tcGFueQorCQkJCTMwMDAgVGVjaG5vbG9neSBEcml2ZQorCQkJCVN1aXRlIDEwMAorCQkJCVBsYW5vIFRYIDc1MDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1FOCAgIChoZXgpCQlUdXJib1dhdmUsIEluYy4KKzAwMDVFOCAgICAgKGJhc2UgMTYpCQlUdXJib1dhdmUsIEluYy4KKwkJCQk1NTUgU291dGggU3RhdGUKKwkJCQlTdWl0ZSAzMDIKKwkJCQlPcmVtIFVUIDg0MDU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1FOSAgIChoZXgpCQlVbmljZXNzIE5ldHdvcmssIEluYy4KKzAwMDVFOSAgICAgKGJhc2UgMTYpCQlVbmljZXNzIE5ldHdvcmssIEluYy4KKwkJCQk4NzAgRG9yb3RoeSBEci4gIzcwOAorCQkJCVJpY2hhcmRzb24gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUVBICAgKGhleCkJCVJlZG5peAorMDAwNUVBICAgICAoYmFzZSAxNikJCVJlZG5peAorCQkJCTUwMiwgRG9uZy1BIFJlc29ydCBPZmZpY2V0ZWwKKwkJCQk1MzgtOCBCb25nbXl1bmctRG9uZyBZdXN1bmcsCisJCQkJVGFlam9uICAzMDUtNzA5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUVCICAgKGhleCkJCUJsdWUgUmlkZ2UgTmV0d29ya3MsIEluYy4KKzAwMDVFQiAgICAgKGJhc2UgMTYpCQlCbHVlIFJpZGdlIE5ldHdvcmtzLCBJbmMuCisJCQkJMTQxMjAgUGFya2UgTG9uZyBDb3VydAorCQkJCVN1aXRlIDIwMQorCQkJCUNoYW50aWxseSBWQSAyMDE1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRUMgICAoaGV4KQkJTW9zYWljIFN5c3RlbXMgSW5jLgorMDAwNUVDICAgICAoYmFzZSAxNikJCU1vc2FpYyBTeXN0ZW1zIEluYy4KKwkJCQk3IENhbXBiZWxsIFBhcmsKKwkJCQlTb21lcnZpbGxlIE1BIDAyMTQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1FRCAgIChoZXgpCQlUZWNobmlrdW0gSm9hbm5ldW0gR21iSAorMDAwNUVEICAgICAoYmFzZSAxNikJCVRlY2huaWt1bSBKb2FubmV1bSBHbWJICisJCQkJQWx0ZSBQb3N0c3RyYXNzZSAxNDkKKwkJCQk4MDIwIEdyYXoKKwkJCQlBVVNUUklBCisKKzAwLTA1LUVFICAgKGhleCkJCUJFV0FUT1IgR3JvdXAKKzAwMDVFRSAgICAgKGJhc2UgMTYpCQlCRVdBVE9SIEdyb3VwCisJCQkJQmV3YXRvciBBQiwgQm94IDEyNzUKKwkJCQlTRS0xNzEyNCBTb2xuYW4KKwkJCQlTV0VERU4KKworMDAtMDUtRUYgICAoaGV4KQkJQURPSVIgRGlnaXRhbCBUZWNobm9sb2d5CiswMDA1RUYgICAgIChiYXNlIDE2KQkJQURPSVIgRGlnaXRhbCBUZWNobm9sb2d5CisJCQkJMjggRmwsIFpoYW9GZW5nIFdvcmxkIFRyYWRlIEJsZGcuCisJCQkJMzY5IEppYW5nU3UgUmQuCisJCQkJU2hhbmdoYWkgMjAwMDUwLCAKKwkJCQlDSElOQQorCiswMC0wNS1GMCAgIChoZXgpCQlTQVRFQworMDAwNUYwICAgICAoYmFzZSAxNikJCVNBVEVDCisJCQkJUC5PLiBCb3ggNDUwMjIKKwkJCQlKZXJ1c2FsZW0KKwkJCQk5MTQ1MCAKKwkJCQlJU1JBRUwKKworMDAtMDUtRjEgICAoaGV4KQkJVnJjb20sIEluYy4KKzAwMDVGMSAgICAgKGJhc2UgMTYpCQlWcmNvbSwgSW5jLgorCQkJCTQwMSwgU29uZ2FtIEJsZGcsIDQ3OS0xLAorCQkJCUJhbmdiYWUgMy1kb25nLCBTZW9jaG8ta3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1GMiAgIChoZXgpCQlQb3dlciBSLCBJbmMuCiswMDA1RjIgICAgIChiYXNlIDE2KQkJUG93ZXIgUiwgSW5jLgorCQkJCTc1NiBBbG9oYSBTdC4KKwkJCQlTZWF0dGxlIFdBIDk4MTA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1GMyAgIChoZXgpCQlXZWJveW4KKzAwMDVGMyAgICAgKGJhc2UgMTYpCQlXZWJveW4KKwkJCQkyNiBSdWUgT2VzIEdhdWRpbmVzCisJCQkJNzgxMDAgU2FpbnQtR2VybWFpbgorCQkJCUZSQU5DRQorCiswMC0wNS1GNCAgIChoZXgpCQlTeXN0ZW0gQmFzZSBDby4sIEx0ZC4KKzAwMDVGNCAgICAgKGJhc2UgMTYpCQlTeXN0ZW0gQmFzZSBDby4sIEx0ZC4KKwkJCQk0NzUtMjIsIEJhbmdCYWUgMiBkb25nLAorCQkJCVNlb2NobyBndSwgU2VvdWwsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUY1ICAgKGhleCkJCU9ZTyBHZW9zcGFjZQorMDAwNUY1ICAgICAoYmFzZSAxNikJCU9ZTyBHZW9zcGFjZQorCQkJCTcwMDcgUGluZW1vbnQKKwkJCQlIb3VzdG9uIFRYIDc3MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1GNiAgIChoZXgpCQlZb3VuZyBDaGFuZyBDby4gTHRkLgorMDAwNUY2ICAgICAoYmFzZSAxNikJCVlvdW5nIENoYW5nIENvLiBMdGQuCisJCQkJMTQzMiBNYWluIFN0cmVldAorCQkJCVdhbHRoYW0gTUEgMDI0NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUY3ICAgKGhleCkJCUFuYWxvZyBEZXZpY2VzLCBJbmMuCiswMDA1RjcgICAgIChiYXNlIDE2KQkJQW5hbG9nIERldmljZXMsIEluYy4KKwkJCQk4MDQgV29idXJuIFN0LiwgTVMgMTExCisJCQkJV2lsbWluZ3RvbiBNQSAwMTg4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRjggICAoaGV4KQkJUmVhbCBUaW1lIEFjY2VzcywgSW5jLgorMDAwNUY4ICAgICAoYmFzZSAxNikJCVJlYWwgVGltZSBBY2Nlc3MsIEluYy4KKwkJCQk0NTUgTi4gQ2FueW9ucyBQa3d5LgorCQkJCVN1aXRlIEIKKwkJCQlMaXZlcm1vcmUgQ0EgOTQ1NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUY5ICAgKGhleCkJCVRPQSBDb3Jwb3JhdGlvbgorMDAwNUY5ICAgICAoYmFzZSAxNikJCVRPQSBDb3Jwb3JhdGlvbgorCQkJCTItMSBUYWthbWF0c3UtY2hvLAorCQkJCVRha2FyYXp1a2EtY2l0eQorCQkJCUh5b2dvICA2NjUtMDA0MworCQkJCUpBUEFOCisKKzAwLTA1LUZBICAgKGhleCkJCUlQT3B0aWNhbCwgSW5jLgorMDAwNUZBICAgICAoYmFzZSAxNikJCUlQT3B0aWNhbCwgSW5jLgorCQkJCTQ1OTQwIEhvcnNlc2hvZSBEcml2ZQorCQkJCVN1aXRlIDE1MAorCQkJCUR1bGxlcyBWQSAyMDE2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRkIgICAoaGV4KQkJU2hhcmVHYXRlLCBJbmMuCiswMDA1RkIgICAgIChiYXNlIDE2KQkJU2hhcmVHYXRlLCBJbmMuCisJCQkJOTgwNSBEb3VibGUgUiBCbHZkLgorCQkJCVRoaXJkIEZsb29yCisJCQkJUmVubyBOViA4OTUxMS01OTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1GQyAgIChoZXgpCQlTY2hlbmNrIFBlZ2FzdXMgQ29ycC4KKzAwMDVGQyAgICAgKGJhc2UgMTYpCQlTY2hlbmNrIFBlZ2FzdXMgQ29ycC4KKwkJCQkyODkwIEpvaG4gUiBSb2FkCisJCQkJVHJveSBNSSA0ODA4MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRkQgICAoaGV4KQkJUGFja2V0TGlnaHQgTmV0d29ya3MgTHRkLgorMDAwNUZEICAgICAoYmFzZSAxNikJCVBhY2tldExpZ2h0IE5ldHdvcmtzIEx0ZC4KKwkJCQkyNyBIYWJhcnplbCBTdC4KKwkJCQlSYW1hdCBIYWhheWFsCisJCQkJVGVsLUF2aXYgIDY5NzEwCisJCQkJSVNSQUVMCisKKzAwLTA1LUZFICAgKGhleCkJCVRyYWZpY29uIE4uVi4KKzAwMDVGRSAgICAgKGJhc2UgMTYpCQlUcmFmaWNvbiBOLlYuCisJCQkJQmlzc2VnZW1zZXN0cmFhdCA0NQorCQkJCUItODUwMSBIZXVsZQorCQkJCUJFTEdJVU0KKworMDAtMDUtRkYgICAoaGV4KQkJU05TIFNvbHV0aW9ucywgSW5jLgorMDAwNUZGICAgICAoYmFzZSAxNikJCVNOUyBTb2x1dGlvbnMsIEluYy4KKwkJCQkybmQgRmwuIEhpbGwgSG91c2UsCisJCQkJOTktMiBTb2h5dW4sIEJ1bmRhbmcsIFN1bmduYW0sIEt5dW5nZ2ksCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTAwICAgKGhleCkJCVRvc2hpYmEgVGVsaSBDb3Jwb3JhdGlvbgorMDAwNjAwICAgICAoYmFzZSAxNikJCVRvc2hpYmEgVGVsaSBDb3Jwb3JhdGlvbgorCQkJCSA0LTctMSBBc2FoaWdhb2thLCBIaW5vLVNoaSwKKwkJCQlUb2t5byAxOTEtMDA2NQorCQkJCUpBUEFOCisKKzAwLTA2LTAxICAgKGhleCkJCU90YW5pa2Vpa2kgQ28uLCBMdGQuCiswMDA2MDEgICAgIChiYXNlIDE2KQkJT3RhbmlrZWlraSBDby4sIEx0ZC4KKwkJCQkyLTEwLTIzIEhpa2FyaS1NYWNoaQorCQkJCUhpZ2FzaGktS3UgSGlyb3NoaW1hCisJCQkJNzMyLTAwNTIKKwkJCQlKQVBBTgorCiswMC0wNi0wMiAgIChoZXgpCQlDaXJraXRlY2ggRWxlY3Ryb25pY3MgQ28uCiswMDA2MDIgICAgIChiYXNlIDE2KQkJQ2lya2l0ZWNoIEVsZWN0cm9uaWNzIENvLgorCQkJCUIxLTIsIE5vLiAzNjEsIEZ1LVhpbmcgRmlyc3QgUm9hZAorCQkJCUd1ZWktU2hhbiBIc2lhbmcsCisJCQkJVGFvLVl1YW4gCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi0wMyAgIChoZXgpCQlCYWtlciBIdWdoZXMgSW5jLgorMDAwNjAzICAgICAoYmFzZSAxNikJCUJha2VyIEh1Z2hlcyBJbmMuCisJCQkJMjAwMSBSYW5raW4gUmQuCisJCQkJSG91c3RvbiBUWCA3NzA3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMDQgICAoaGV4KQkJQFRyYWNrIENvbW11bmljYXRpb25zLCBJbmMuCiswMDA2MDQgICAgIChiYXNlIDE2KQkJQFRyYWNrIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTE1NSBLYXMgRHIuCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMDUgICAoaGV4KQkJSW5uY29tIEludGVybmF0aW9uYWwsIEluYy4KKzAwMDYwNSAgICAgKGJhc2UgMTYpCQlJbm5jb20gSW50ZXJuYXRpb25hbCwgSW5jLgorCQkJCVAuTy4gQm94IDEwNjAKKwkJCQk4MyBIYWxscyBSb2FkCisJCQkJT2xkIEx5bWUgQ1QgMDYzNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTA2ICAgKGhleCkJCVJhcGlkV0FOLCBJbmMuCiswMDA2MDYgICAgIChiYXNlIDE2KQkJUmFwaWRXQU4sIEluYy4KKwkJCQkyMDg1IEhhbWlsdG9uIEF2ZS4KKwkJCQlTdWl0ZSAjMjIwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTA3ICAgKGhleCkJCU9tbmkgRGlyZWN0aW9uYWwgQ29udHJvbCBUZWNobm9sb2d5IEluYy4KKzAwMDYwNyAgICAgKGJhc2UgMTYpCQlPbW5pIERpcmVjdGlvbmFsIENvbnRyb2wgVGVjaG5vbG9neSBJbmMuCisJCQkJOEYtMiwgTm8uIDk0LCBQYW8tQ2h1bmcgUmQuCisJCQkJSHNpbi1UaWVuIENpdHksCisJCQkJVGFpcGVpIEhzaWVuLCAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA2LTA4ICAgKGhleCkJCUF0LVNreSBTQVMKKzAwMDYwOCAgICAgKGJhc2UgMTYpCQlBdC1Ta3kgU0FTCisJCQkJWkkgQXRoZWxpYSAzLCBWb2kgQXRsYXMKKwkJCQkxMzYwMC0gTGEgQ2lvdGF0CisJCQkJRlJBTkNFCisKKzAwLTA2LTA5ICAgKGhleCkJCUNyb3NzcG9ydCBTeXN0ZW1zCiswMDA2MDkgICAgIChiYXNlIDE2KQkJQ3Jvc3Nwb3J0IFN5c3RlbXMKKwkJCQkxMDk0MCBORSAzM3JkIFBsLgorCQkJCVN1aXRlIDEwMQorCQkJCUJlbGxldnVlIFdBIDk4MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0wQSAgIChoZXgpCQlCbHVlMnNwYWNlCiswMDA2MEEgICAgIChiYXNlIDE2KQkJQmx1ZTJzcGFjZQorCQkJCUFyc3RhYW5nc3YuIDkKKwkJCQlTRS0xMTc0OCBTdG9ja2hvbG0KKwkJCQlTV0VERU4KKworMDAtMDYtMEIgICAoaGV4KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCiswMDA2MEIgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCisJCQkJMjkwMCBTLiBEaWFibG8gV2F5IFN1aXRlIDE5MAorCQkJCVRlbXBlIEFaIDg1MjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0wQyAgIChoZXgpCQlNZWxjbyBJbmR1c3RyaWVzLCBJbmMuCiswMDA2MEMgICAgIChiYXNlIDE2KQkJTWVsY28gSW5kdXN0cmllcywgSW5jLgorCQkJCTE1NzUgVy4gMTI0dGggQXZlLgorCQkJCURlbnZlciBDTyA4MDIzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMEQgICAoaGV4KQkJV2F2ZTcgT3B0aWNzCiswMDA2MEQgICAgIChiYXNlIDE2KQkJV2F2ZTcgT3B0aWNzCisJCQkJMTA3NSBXaW5kd2FyZCBSaWRnZSBQa3d5LgorCQkJCVN1aXRlIDE3MAorCQkJCUFscGhhcmV0dGEgR0EgMzAwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTBFICAgKGhleCkJCUlHWVMgU3lzdGVtcywgSW5jLgorMDAwNjBFICAgICAoYmFzZSAxNikJCUlHWVMgU3lzdGVtcywgSW5jLgorCQkJCTczNzMgTGluY29sbiBXYXkKKwkJCQlHYXJkZW4gR3JvdmUgQ0EgOTI4NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTBGICAgKGhleCkJCU5hcmFkIE5ldHdvcmtzIEluYworMDAwNjBGICAgICAoYmFzZSAxNikJCU5hcmFkIE5ldHdvcmtzIEluYworCQkJCTUxNSBHcm90b24gUm9hZAorCQkJCVdlc3Rmb3JkIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0xMCAgIChoZXgpCQlBYmVvbmEgTmV0d29ya3MgSW5jCiswMDA2MTAgICAgIChiYXNlIDE2KQkJQWJlb25hIE5ldHdvcmtzIEluYworCQkJCTQ2MTE3IExhbmRpbmcgUGFya3dheQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTExICAgKGhleCkJCVpldXMgV2lyZWxlc3MsIEluYy4KKzAwMDYxMSAgICAgKGJhc2UgMTYpCQlaZXVzIFdpcmVsZXNzLCBJbmMuCisJCQkJODMyNSBHdWlsZm9yZCBSb2FkCisJCQkJQ29sdW1iaWEgTUQgMjEwNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTEyICAgKGhleCkJCUFjY3VzeXMsIEluYy4KKzAwMDYxMiAgICAgKGJhc2UgMTYpCQlBY2N1c3lzLCBJbmMuCisJCQkJNUYsIE5vLiAzOCwgVGFpeXVhbiBTdAorCQkJCUpodWJlaSBDaXR5CisJCQkJSHNpbmNodSBDb3VudHkgIDMwMjY1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi0xMyAgIChoZXgpCQlLYXdhc2FraSBNaWNyb2VsZWN0cm9uaWNzIEluY29ycG9yYXRlZAorMDAwNjEzICAgICAoYmFzZSAxNikJCUthd2FzYWtpIE1pY3JvZWxlY3Ryb25pY3MgSW5jb3Jwb3JhdGVkCisJCQkJTVRHIEItNSwgMS0zLCBOYWthc2UsCisJCQkJTWloYW1hLWt1IENoaWJhIDI2MS04NTAxCisJCQkJSkFQQU4KKworMDAtMDYtMTQgICAoaGV4KQkJUHJpc20gSG9sZGluZ3MKKzAwMDYxNCAgICAgKGJhc2UgMTYpCQlQcmlzbSBIb2xkaW5ncworCQkJCVAuTy4gQm94IDkwMSwKKwkJCQlXaXRrb3BwZW4sIDIwNjgsCisJCQkJR2F1dGVuZyAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTA2LTE1ICAgKGhleCkJCUtpbW90byBFbGVjdHJpYyBDby4sIEx0ZC4KKzAwMDYxNSAgICAgKGJhc2UgMTYpCQlLaW1vdG8gRWxlY3RyaWMgQ28uLCBMdGQuCisJCQkJMy0xIEZ1bmFoYXNoaS1DaG8sCisJCQkJVGVubm9qaS1LdSwgT3Nha2EKKwkJCQk1NDMtMDAyNAorCQkJCUpBUEFOCisKKzAwLTA2LTE2ICAgKGhleCkJCVRlbCBOZXQgQ28uLCBMdGQuCiswMDA2MTYgICAgIChiYXNlIDE2KQkJVGVsIE5ldCBDby4sIEx0ZC4KKwkJCQkzRiBCT0YgQmxkZyA3MzAtMTUgR29qZSBTb25nCisJCQkJWWVvbmplIEd1IFB1c2FtIDYxMS0wNzMsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTE3ICAgKGhleCkJCVJlZHN3aXRjaCBJbmMuCiswMDA2MTcgICAgIChiYXNlIDE2KQkJUmVkc3dpdGNoIEluYy4KKwkJCQkxODE1IE1jQ2FuZGxlc3MgRHJpdmUKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNS04MDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0xOCAgIChoZXgpCQlEaWdpUG93ZXIgTWFudWZhY3R1cmluZyBJbmMuCiswMDA2MTggICAgIChiYXNlIDE2KQkJRGlnaVBvd2VyIE1hbnVmYWN0dXJpbmcgSW5jLgorCQkJCU5vLiAxMTQsIEZsb29yIDEzLCBTZWMuIDEsCisJCQkJSHNpbiBUYWkgV3UgUm9hZCwgU2hpanIgQ2l0eSwKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtMTkgICAoaGV4KQkJQ29ubmVjdGlvbiBUZWNobm9sb2d5IFN5c3RlbXMKKzAwMDYxOSAgICAgKGJhc2UgMTYpCQlDb25uZWN0aW9uIFRlY2hub2xvZ3kgU3lzdGVtcworCQkJCTE4Ri02LCBOby4gNzksIFNlYy4gMSwKKwkJCQlIc2luIFRhaSBXdSBSZC4KKwkJCQlIc2luY2hpaCBUYWlwZWksIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtMUEgICAoaGV4KQkJWmV0YXJpIEluYy4KKzAwMDYxQSAgICAgKGJhc2UgMTYpCQlaZXRhcmkgSW5jLgorCQkJCTQxMSBXYXZlcmx5IE9ha3MgUmQuCisJCQkJU3VpdGUgMzIzCisJCQkJV2FsdGhhbSBNQSAwMjQ1Mi04NDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0xQiAgIChoZXgpCQlOb3RlYm9vayBEZXZlbG9wbWVudCBMYWIuICBMZW5vdm8gSmFwYW4gTHRkLgorMDAwNjFCICAgICAoYmFzZSAxNikJCU5vdGVib29rIERldmVsb3BtZW50IExhYi4gIExlbm92byBKYXBhbiBMdGQuCisJCQkJMTYyMy0xNCBTaGltb3RzdXJ1bWEKKwkJCQlZYW1hdG8tc2hpIEthbmFnYXdhLWtlbgorCQkJCTI0Mi04NTAyCisJCQkJSkFQQU4KKworMDAtMDYtMUMgICAoaGV4KQkJSG9zaGlubyBNZXRhbCBJbmR1c3RyaWVzLCBMdGQuCiswMDA2MUMgICAgIChiYXNlIDE2KQkJSG9zaGlubyBNZXRhbCBJbmR1c3RyaWVzLCBMdGQuCisJCQkJNjQ1IFlhbWFub2thbWksIFlhYnV0c3VrYSwKKwkJCQlOaXR0YS1ndW4sIEd1bm1hCisJCQkJMzc5LTIzMDIKKwkJCQlKQVBBTgorCiswMC0wNi0xRCAgIChoZXgpCQlNSVAgVGVsZWNvbSwgSW5jLgorMDAwNjFEICAgICAoYmFzZSAxNikJCU1JUCBUZWxlY29tLCBJbmMuCisJCQkJM3JkIEZsb29yLCBTYW5naWwgQkxERywKKwkJCQk5NDgtMTYsIEJvbmdjaGVvbmRvbmcsIEd3YW5ha2t1LAorCQkJCVNlb3VsICAxNTEtMDY5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTFFICAgKGhleCkJCU1heGFuIFN5c3RlbXMKKzAwMDYxRSAgICAgKGJhc2UgMTYpCQlNYXhhbiBTeXN0ZW1zCisJCQkJMS04NCwgV291bGFtLWRvbmcKKwkJCQlTYWxzZW8tZ3UsIERBRUdVLAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi0xRiAgIChoZXgpCQlWaXNpb24gQ29tcG9uZW50cyBHbWJICiswMDA2MUYgICAgIChiYXNlIDE2KQkJVmlzaW9uIENvbXBvbmVudHMgR21iSAorCQkJCU90dG9zdHIuIDIKKwkJCQlFdHRsaW5nZW4sIDc2Mjc1CisJCQkJR0VSTUFOWQorCiswMC0wNi0yMCAgIChoZXgpCQlTZXJpYWwgU3lzdGVtIEx0ZC4KKzAwMDYyMCAgICAgKGJhc2UgMTYpCQlTZXJpYWwgU3lzdGVtIEx0ZC4KKwkJCQk3NiBQbGF5ZmFpciBSb2FkCisJCQkJIzA0LTAzIExISzIgQnVpbGRpbmcKKwkJCQkzNjc5OTYKKwkJCQlTSU5HQVBPUkUKKworMDAtMDYtMjEgICAoaGV4KQkJSGlub3gsIENvLiwgTHRkLgorMDAwNjIxICAgICAoYmFzZSAxNikJCUhpbm94LCBDby4sIEx0ZC4KKwkJCQkxNS03IDMtY2hvbWUsIFNlbm5pbi1jaG8sCisJCQkJSGFjaGlvamktQ2l0eSwgVG9reW8sCisJCQkJMTkzLTA4MzUKKwkJCQlKQVBBTgorCiswMC0wNi0yMiAgIChoZXgpCQlDaHVuZyBGdSBDaGVuIFllaCBFbnRlcnByaXNlIENvcnAuCiswMDA2MjIgICAgIChiYXNlIDE2KQkJQ2h1bmcgRnUgQ2hlbiBZZWggRW50ZXJwcmlzZSBDb3JwLgorCQkJCTJGIE5vLiA2NjYgSmluZyBQaW5nIFJvYWQsCisJCQkJQ2h1bmcgSG8gQ2l0eSwKKwkJCQlUYWlwZWkgSHNpZW4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtMjMgICAoaGV4KQkJTUdFIFVQUyBTeXN0ZW1zIEZyYW5jZQorMDAwNjIzICAgICAoYmFzZSAxNikJCU1HRSBVUFMgU3lzdGVtcyBGcmFuY2UKKwkJCQkxNDAgQXZlbnVlIEplYW4gS3VudHptYW5uCisJCQkJWmlyc3QgTW9udGJvbm5vdCBTdCBNYXJ0aW4gMzgzMzQgU3QgSXNtaQorCQkJCUZSQU5DRQorCiswMC0wNi0yNCAgIChoZXgpCQlHZW50bmVyIENvbW11bmljYXRpb25zIENvcnAuCiswMDA2MjQgICAgIChiYXNlIDE2KQkJR2VudG5lciBDb21tdW5pY2F0aW9ucyBDb3JwLgorCQkJCTE4MjUgUmVzZWFyY2ggV2F5CisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTI1ICAgKGhleCkJCVRoZSBMaW5rc3lzIEdyb3VwLCBJbmMuCiswMDA2MjUgICAgIChiYXNlIDE2KQkJVGhlIExpbmtzeXMgR3JvdXAsIEluYy4KKwkJCQkxNzQwMSBBcm1zdHJvbmcgQXZlLgorCQkJCUlydmluZSBDQSA5MjYxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMjYgICAoaGV4KQkJTVdFIEdtYkgKKzAwMDYyNiAgICAgKGJhc2UgMTYpCQlNV0UgR21iSAorCQkJCU9sYnJpY2h0c3RyLiAyMQorCQkJCUQtNjk0NjkgV2VpbmhlaW0KKwkJCQlHRVJNQU5ZCisKKzAwLTA2LTI3ICAgKGhleCkJCVVuaXdpZGUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA2MjcgICAgIChiYXNlIDE2KQkJVW5pd2lkZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQlLb3JlYSBEZXZlbG9wbWVudCBCYW5rIEIvRCA1dGggRmxyCisJCQkJRHVuc2FuZG9uZywgU2VvZ3UsCisJCQkJVGFlam9uIDMwMi0xMjIsIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi0yOCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA2MjggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMjkgICAoaGV4KQkJSUJNIENvcnAKKzAwMDYyOSAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMkEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNjJBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTJCICAgKGhleCkJCUlOVFJBU0VSVkVSIFRFQ0hOT0xPR1kKKzAwMDYyQiAgICAgKGJhc2UgMTYpCQlJTlRSQVNFUlZFUiBURUNITk9MT0dZCisJCQkJU0VWRU4gT0NUT0JFUiBISUxMIFJELgorCQkJCUhPTExJU1RPTiBNQSAwMTc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMkMgICAoaGV4KQkJQml2aW8gTmV0d29ya3MKKzAwMDYyQyAgICAgKGJhc2UgMTYpCQlCaXZpbyBOZXR3b3JrcworCQkJCTQ0NTcgV2lsbG93IFJvYWQsCisJCQkJUGxlYXNhbnRvbiBDQSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMkQgICAoaGV4KQkJVG91Y2hTdGFyIFRlY2hub2xvZ2llcywgTC5MLkMuCiswMDA2MkQgICAgIChiYXNlIDE2KQkJVG91Y2hTdGFyIFRlY2hub2xvZ2llcywgTC5MLkMuCisJCQkJNTE0NyBTb3V0aCBHYXJuZXR0IFJvYWQKKwkJCQlTdWl0ZSBBCisJCQkJVHVsc2EgT0sgNzQxNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTJFICAgKGhleCkJCUFyaXN0b3MgTG9naWMgQ29ycC4KKzAwMDYyRSAgICAgKGJhc2UgMTYpCQlBcmlzdG9zIExvZ2ljIENvcnAuCisJCQkJMjcwNTEgVG93bmUgQ2VudHJlIERyLgorCQkJCVN1aXRlIDI5MAorCQkJCUZvb3RoaWxsIFJhbmNoIENBIDkyNjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0yRiAgIChoZXgpCQlQaXZvdGVjaCBTeXN0ZW1zIEluYy4KKzAwMDYyRiAgICAgKGJhc2UgMTYpCQlQaXZvdGVjaCBTeXN0ZW1zIEluYy4KKwkJCQkyMDAgQ2VudGVubmlhbCBBdmUuLAorCQkJCVN1aXRlIDIyMgorCQkJCVBpc2NhdGF3YXkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTMwICAgKGhleCkJCUFkdHJhbnogU3dlZGVuCiswMDA2MzAgICAgIChiYXNlIDE2KQkJQWR0cmFueiBTd2VkZW4KKwkJCQlEZXB0LiBUQ0MvVEgKKwkJCQlPc3RyYXJpbmd2YWdlbiAyIDcyMTczIFZhc3RlcmFzCisJCQkJU1dFREVOCisKKzAwLTA2LTMxICAgKGhleCkJCU9wdGljYWwgU29sdXRpb25zLCBJbmMuCiswMDA2MzEgICAgIChiYXNlIDE2KQkJT3B0aWNhbCBTb2x1dGlvbnMsIEluYy4KKwkJCQkxNjMwNSAzNnRoIEF2ZS4gTi4KKwkJCQlTdWl0ZSAzMDAKKwkJCQlQbHltb3V0aCBNTiA1NTQ0Ni0yNjk4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0zMiAgIChoZXgpCQlNZXNjbyBFbmdpbmVlcmluZyBHbWJICiswMDA2MzIgICAgIChiYXNlIDE2KQkJTWVzY28gRW5naW5lZXJpbmcgR21iSAorCQkJCVdpZXNlbnRhbHN0cmFzc2UgNzQKKwkJCQk3OTUzOSBMb3JyYWNoCisJCQkJR0VSTUFOWQorCiswMC0wNi0zMyAgIChoZXgpCQlDcm9zcyBNYXRjaCBUZWNobm9sb2dpZXMgR21iSAorMDAwNjMzICAgICAoYmFzZSAxNikJCUNyb3NzIE1hdGNoIFRlY2hub2xvZ2llcyBHbWJICisJCQkJVW5zdHJ1dHdlZyA0CisJCQkJSmVuYSAwNzc0MworCQkJCUdFUk1BTlkKKworMDAtMDYtMzQgICAoaGV4KQkJR1RFIEFpcmZvbmUgSW5jLgorMDAwNjM0ICAgICAoYmFzZSAxNikJCUdURSBBaXJmb25lIEluYy4KKwkJCQkyODA5IEJ1dHRlcmZpZWxkCisJCQkJT2FrYnJvb2sgSUwgNjA1MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTM1ICAgKGhleCkJCVBhY2tldEFpciBOZXR3b3JrcywgSW5jLgorMDAwNjM1ICAgICAoYmFzZSAxNikJCVBhY2tldEFpciBOZXR3b3JrcywgSW5jLgorCQkJCTExNTQ1IFcuIEJlcm5hcmRvIEN0LgorCQkJCVN1aXRlIDEwMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMzYgICAoaGV4KQkJSmVkYWkgQnJvYWRiYW5kIE5ldHdvcmtzCiswMDA2MzYgICAgIChiYXNlIDE2KQkJSmVkYWkgQnJvYWRiYW5kIE5ldHdvcmtzCisJCQkJMzMxIE5ld21hbiBTcHJpbmdzIFJkLgorCQkJCUJ1aWxkaW5nIDEsIDJuZCBGbG9vcgorCQkJCVJlZCBCYW5rIE5KIDA3NzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0zNyAgIChoZXgpCQlUb3B0cmVuZC1NZXRhIEluZm9ybWF0aW9uIChTaGVuWmhlbikgSW5jLgorMDAwNjM3ICAgICAoYmFzZSAxNikJCVRvcHRyZW5kLU1ldGEgSW5mb3JtYXRpb24gKFNoZW5aaGVuKSBJbmMuCisJCQkJMi9GLCBCbGRnLiAzLCBTZWN0aW9uIEEsIE5vci1FYXN0IFpvbmUKKwkJCQlFYXN0ZXJuIEluZHVzdHJpYWwgQXJlYSwgT3ZlcnNlYXMgQ2l0eSwKKwkJCQlDSElOQQorCiswMC0wNi0zOCAgIChoZXgpCQlTdW5namluIEMmQyBDby4sIEx0ZC4KKzAwMDYzOCAgICAgKGJhc2UgMTYpCQlTdW5namluIEMmQyBDby4sIEx0ZC4KKwkJCQkxNTQzLTYsIFNlb2Noby1kb25nLCBTZW9jaG8tZ3UsCisJCQkJU2VvdWwgIDEzNy0wNzMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtMzkgICAoaGV4KQkJTmV3dGVjCiswMDA2MzkgICAgIChiYXNlIDE2KQkJTmV3dGVjCisJCQkJTGFhcnN0cmFhdCA1CisJCQkJQi05MTAwIFNpbnQtTmlrbGFhcworCQkJCUJFTEdJVU0KKworMDAtMDYtM0EgICAoaGV4KQkJRHVyYSBNaWNybywgSW5jLgorMDAwNjNBICAgICAoYmFzZSAxNikJCUR1cmEgTWljcm8sIEluYy4KKwkJCQkxMzU4MCBGaWZ0aCBTdHJlZXQKKwkJCQlDaGlubyBDQSA5MTcxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtM0IgICAoaGV4KQkJQXJjdHVydXMgTmV0d29ya3MsIEluYy4KKzAwMDYzQiAgICAgKGJhc2UgMTYpCQlBcmN0dXJ1cyBOZXR3b3JrcywgSW5jLgorCQkJCTcwMSBFdmFucyBBdmUuIC0gU3VpdGUgMzAwCisJCQkJVG9yb250byBPbnRhcmlvIE05QyAxQTMKKwkJCQlDQU5BREEKKworMDAtMDYtM0MgICAoaGV4KQkJSW50cmluc3ljIEV1cm9wZSBMdGQKKzAwMDYzQyAgICAgKGJhc2UgMTYpCQlJbnRyaW5zeWMgRXVyb3BlIEx0ZAorCQkJCTcwMCBXZXN0IFBlbmRlciBTdHJlZXQsIDEwdGggRmxvb3IsCisJCQkJVmFuY291dmVyLCBCQywgVjZDIDFHOAorCQkJCUNBTkFEQQorCiswMC0wNi0zRCAgIChoZXgpCQlNaWNyb3dhdmUgRGF0YSBTeXN0ZW1zIEluYy4KKzAwMDYzRCAgICAgKGJhc2UgMTYpCQlNaWNyb3dhdmUgRGF0YSBTeXN0ZW1zIEluYy4KKwkJCQkxNzUgU2NpZW5jZSBQYXJrd2F5CisJCQkJUm9jaGVzdGVyIE5ZIDE0NjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0zRSAgIChoZXgpCQlPcHRob3MgSW5jLgorMDAwNjNFICAgICAoYmFzZSAxNikJCU9wdGhvcyBJbmMuCisJCQkJNTkwIFRheWxvciBXYXkKKwkJCQlTYW4gQ2FybG9zIENBIDk0MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0zRiAgIChoZXgpCQlFdmVyZXggQ29tbXVuaWNhdGlvbnMgSW5jLgorMDAwNjNGICAgICAoYmFzZSAxNikJCUV2ZXJleCBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJNTAyMEEgQnJhbmRpbiBDdC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi00MCAgIChoZXgpCQlXaGl0ZSBSb2NrIE5ldHdvcmtzCiswMDA2NDAgICAgIChiYXNlIDE2KQkJV2hpdGUgUm9jayBOZXR3b3JrcworCQkJCVN1aXRlICM5MDAKKwkJCQkxODExMSBQcmVzdG9uIFJvYWQKKwkJCQlEYWxsYXMgVFggNzUyNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTQxICAgKGhleCkJCUlUQ04KKzAwMDY0MSAgICAgKGJhc2UgMTYpCQlJVENOCisJCQkJODU3MSBHYW5kZXIgQ3JlZWsgRHJpdmUKKwkJCQlNaWFtaXNidXJnIE9IIDQ1MzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi00MiAgIChoZXgpCQlHZW5ldGVsIFN5c3RlbXMgSW5jLgorMDAwNjQyICAgICAoYmFzZSAxNikJCUdlbmV0ZWwgU3lzdGVtcyBJbmMuCisJCQkJTW9ja3dvbyBCL0QsIDkxMiBXYWxweW91bmctRG9uZworCQkJCVNlby1HdSBUYWVqb24sCisJCQkJMzAyLTg1MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi00MyAgIChoZXgpCQlTT05PIENvbXB1dGVyIENvLiwgTHRkLgorMDAwNjQzICAgICAoYmFzZSAxNikJCVNPTk8gQ29tcHV0ZXIgQ28uLCBMdGQuCisJCQkJMUYuLCBOby4gOCwgQWxsZXkgMzUsIExhbmUgOTEsCisJCQkJU2VjLiAxLCBOZWktSHUgUm9hZCwKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtNDQgICAoaGV4KQkJTmVpeCxJbmMKKzAwMDY0NCAgICAgKGJhc2UgMTYpCQlOZWl4LEluYworCQkJCTMtNS0zLTI0LCBIaWdhc2hpc2FwcG9ybworCQkJCVNoaXJvaXNoaS1rdQorCQkJCVNhcHBvcm8gSG9ra2FpZG8gMDAzLTAwMDMKKwkJCQlKQVBBTgorCiswMC0wNi00NSAgIChoZXgpCQlNZWlzZWkgRWxlY3RyaWMgQ28uIEx0ZC4KKzAwMDY0NSAgICAgKGJhc2UgMTYpCQlNZWlzZWkgRWxlY3RyaWMgQ28uIEx0ZC4KKwkJCQkyNDktMSwgTW9yaXlhLWtvdSwgTW9yaXlhCisJCQkJS2l0YXNvdW1hLUd1biwgSWJhcmFraQorCQkJCTMwMi0wMTkyCisJCQkJSkFQQU4KKworMDAtMDYtNDYgICAoaGV4KQkJU2hlblpoZW4gWHVuQmFvIE5ldHdvcmsgVGVjaG5vbG9neSBDbyBMdGQKKzAwMDY0NiAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBYdW5CYW8gTmV0d29yayBUZWNobm9sb2d5IENvIEx0ZAorCQkJCUYzLCBSMi1BIEJ1aWxkaW5nLCBTb3V0aCBEaXN0cmljdAorCQkJCW9mIEhpZ2gtVGVjaCBJbmR1c3RyaWFsIFBhcmssCisJCQkJU2hlbiBaaGVuICAKKwkJCQlDSElOQQorCiswMC0wNi00NyAgIChoZXgpCQlFdHJhbGkgUy5BLgorMDAwNjQ3ICAgICAoYmFzZSAxNikJCUV0cmFsaSBTLkEuCisJCQkJMjIxLCBSdWUgTGEgRm9udGFpbmUKKwkJCQk5NDEzMiBGb250ZW5heSBTb3VzIEJvaXMgQ2VkZXgKKwkJCQlGUkFOQ0UKKworMDAtMDYtNDggICAoaGV4KQkJU2VlZHN3YXJlLCBJbmMuCiswMDA2NDggICAgIChiYXNlIDE2KQkJU2VlZHN3YXJlLCBJbmMuCisJCQkJIDMtNy0xNiBUZWNobm9zdGFnZSwKKwkJCQlJenVtaSwgT3Nha2EgNTk0LTExNDQKKwkJCQlKQVBBTgorCiswMC0wNi00OSAgIChoZXgpCQkzTSBEZXV0c2NobGFuZCBHbWJICiswMDA2NDkgICAgIChiYXNlIDE2KQkJM00gRGV1dHNjaGxhbmQgR21iSAorCQkJCUNhcmwtU2NodXJ6LVN0ci4gMQorCQkJCU5ldXNzICBELTQxNDUzCisJCQkJR0VSTUFOWQorCiswMC0wNi00QSAgIChoZXgpCQlIb25leXdlbGwgQ28uLCBMdGQuIChLT1JFQSkKKzAwMDY0QSAgICAgKGJhc2UgMTYpCQlIb25leXdlbGwgQ28uLCBMdGQuIChLT1JFQSkKKwkJCQk1NiwgQ2hhYW0tZG9uZywgQ2hvbmFuLWNpdHkKKwkJCQlDaG9vbmdjaGVvbmduYW0tZG8sIDMzMC0yMDAsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTRCICAgKGhleCkJCUFsZXhvbiBDby4sIEx0ZC4KKzAwMDY0QiAgICAgKGJhc2UgMTYpCQlBbGV4b24gQ28uLCBMdGQuCisJCQkJMy0yMDctMSBUZXJhbW90bywKKwkJCQlJdGFtaSwgSHlvZ28gNjY0LTAwMjYKKwkJCQlKQVBBTgorCiswMC0wNi00QyAgIChoZXgpCQlJbnZpY3RhIE5ldHdvcmtzLCBJbmMuCiswMDA2NEMgICAgIChiYXNlIDE2KQkJSW52aWN0YSBOZXR3b3JrcywgSW5jLgorCQkJCTEzODczIFBhcmsgQ2VudGVyIFJvYWQKKwkJCQlTdWl0ZSA0MDAKKwkJCQlIZXJuZG9uIFZBIDIwMTcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi00RCAgIChoZXgpCQlTZW5jb3JlCiswMDA2NEQgICAgIChiYXNlIDE2KQkJU2VuY29yZQorCQkJCTMyMDAgU2VuY29yZSBEci4KKwkJCQlTaW91eCBGYWxscyBTRCA1NzEwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNEUgICAoaGV4KQkJQnJvYWQgTmV0IFRlY2hub2xvZ3kgSW5jLgorMDAwNjRFICAgICAoYmFzZSAxNikJCUJyb2FkIE5ldCBUZWNobm9sb2d5IEluYy4KKwkJCQk1RiwgTm8uNTgsIExhbmUgMTg4LCBSdWkgS3VhbmcgUm9hZAorCQkJCU5laWh1IERpc3RyaWN0LCBUYWlwZWkgMTE0LAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtNEYgICAoaGV4KQkJUFJPLU5FVFMgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAwNjRGICAgICAoYmFzZSAxNikJCVBSTy1ORVRTIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQlQYW8tQ2h1bmcgUm9hZCwKKwkJCQlOby4gOTIsIDEwRi0xCisJCQkJSHNpbiBUaWVuIFRhaXBlaSwgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi01MCAgIChoZXgpCQlUaWJ1cm9uIE5ldHdvcmtzLCBJbmMuCiswMDA2NTAgICAgIChiYXNlIDE2KQkJVGlidXJvbiBOZXR3b3JrcywgSW5jLgorCQkJCTIwMCBNaW51dGVtYW4gUmQuCisJCQkJU3VpdGUgMkIKKwkJCQlBbmRvdmVyIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi01MSAgIChoZXgpCQlBc3BlbiBOZXR3b3JrcyBJbmMuCiswMDA2NTEgICAgIChiYXNlIDE2KQkJQXNwZW4gTmV0d29ya3MgSW5jLgorCQkJCTM3NzcgU3RldmVucyBDcmVlayBCbHZkCisJCQkJU3VpdGUgMzMwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTUyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDY1MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi01MyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA2NTMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNTQgICAoaGV4KQkJV2lucHJlc2EgQnVpbGRpbmcgQXV0b21hdGlvbiBUZWNobm9sb2dpZXMgR21iSAorMDAwNjU0ICAgICAoYmFzZSAxNikJCVdpbnByZXNhIEJ1aWxkaW5nIEF1dG9tYXRpb24gVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlWaXZlbm90Z2Fzc2UgNTMvMgorCQkJCUEtMTEyMCBWaWVubmEKKwkJCQlBVVNUUklBCisKKzAwLTA2LTU1ICAgKGhleCkJCVlpcGVlLCBJbmMuCiswMDA2NTUgICAgIChiYXNlIDE2KQkJWWlwZWUsIEluYy4KKwkJCQk1NTUgSW50ZXJuYXRpb25hbCBEcml2ZQorCQkJCVN1aXRlIDgwMAorCQkJCVdpbGxpYW1zdmlsbGUgTlkgMTQyMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTU2ICAgKGhleCkJCVRhY3RlbCBBQgorMDAwNjU2ICAgICAoYmFzZSAxNikJCVRhY3RlbCBBQgorCQkJCU5vcnJhIFZhbGxnYXRhbiA2NAorCQkJCVNFLTIxMSAyMiBNYWxtbworCQkJCVNXRURFTgorCiswMC0wNi01NyAgIChoZXgpCQlNYXJrZXQgQ2VudHJhbCwgSW5jLgorMDAwNjU3ICAgICAoYmFzZSAxNikJCU1hcmtldCBDZW50cmFsLCBJbmMuCisJCQkJNTAwIEJ1c2luZXNzIENlbnRlciBEcml2ZQorCQkJCVBpdHRzYnVyZ2ggUEEgMTUyMDUtMTMzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNTggICAoaGV4KQkJSGVsbXV0IEZpc2NoZXIgR21iSCBJbnN0aXR1dCBmdXIgRWxla3Ryb25payB1bmQgTWVzc3RlY2huaWsKKzAwMDY1OCAgICAgKGJhc2UgMTYpCQlIZWxtdXQgRmlzY2hlciBHbWJIIEluc3RpdHV0IGZ1ciBFbGVrdHJvbmlrIHVuZCBNZXNzdGVjaG5paworCQkJCUluZHVzdHJpYUJlMjEKKwkJCQk3MTA2OSBTaW5kZWZpbmdlbgorCQkJCUdFUk1BTlkKKworMDAtMDYtNTkgICAoaGV4KQkJRUFMIChBcGVsZG9vcm4pIEIuVi4KKzAwMDY1OSAgICAgKGJhc2UgMTYpCQlFQUwgKEFwZWxkb29ybikgQi5WLgorCQkJCU1vbGVubWFrZXJzaG9layAxNAorCQkJCUpLIEFwZWxkb29ybiAgNzMyOAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTA2LTVBICAgKGhleCkJCVN0cml4IFN5c3RlbXMKKzAwMDY1QSAgICAgKGJhc2UgMTYpCQlTdHJpeCBTeXN0ZW1zCisJCQkJMzEwIE4uIFdlc3RsYWtlIEJsdmQuCisJCQkJU3VpdGUgMTUwCisJCQkJV2VzdGxha2UgVmlsbGFnZSBDQSA5MTM2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNUIgICAoaGV4KQkJRGVsbCBDb21wdXRlciBDb3JwLgorMDAwNjVCICAgICAoYmFzZSAxNikJCURlbGwgQ29tcHV0ZXIgQ29ycC4KKwkJCQlPbmUgRGVsbCBXYXkKKwkJCQlSb3VuZCBSb2NrIFRYIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi01QyAgIChoZXgpCQlNYWxhY2hpdGUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA2NUMgICAgIChiYXNlIDE2KQkJTWFsYWNoaXRlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE5NSBOZXcgSGFtcHNoaXJlIEF2ZW51ZQorCQkJCVN1aXRlIDE1MAorCQkJCVBvcnRzbW91dGggTkggMDM4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTVEICAgKGhleCkJCUhlaWRlbGJlcmcgV2ViIFN5c3RlbXMKKzAwMDY1RCAgICAgKGJhc2UgMTYpCQlIZWlkZWxiZXJnIFdlYiBTeXN0ZW1zCisJCQkJMTIxIFRlY2hub2xvZ3kgRHIuCisJCQkJRHVyaGFtIE5IIDAzODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi01RSAgIChoZXgpCQlQaG90dXJpcywgSW5jLgorMDAwNjVFICAgICAoYmFzZSAxNikJCVBob3R1cmlzLCBJbmMuCisJCQkJMjAgQ29ycG9yYXRlIFBsYWNlIFNvdXRoCisJCQkJUGlzY2F0YXdheSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNUYgICAoaGV4KQkJRUNJIFRlbGVjb20gLSBOR1RTIEx0ZC4KKzAwMDY1RiAgICAgKGJhc2UgMTYpCQlFQ0kgVGVsZWNvbSAtIE5HVFMgTHRkLgorCQkJCTMwIEhhc2l2aW0gU3QuCisJCQkJUGV0YWgtVGlrdmEgNDkxMzAKKwkJCQlJU1JBRUwKKworMDAtMDYtNjAgICAoaGV4KQkJTkFERVggQ28uLCBMdGQuCiswMDA2NjAgICAgIChiYXNlIDE2KQkJTkFERVggQ28uLCBMdGQuCisJCQkJMSBPbWl5YW1hZSwgVG9rdXNoaWdlLAorCQkJCU5pc2hpaGFydS1jeW8sIE5pc2hpa2FzdWdhaS1ndW4sCisJCQkJQWljaGkgIDQ4MS0wMDM4CisJCQkJSkFQQU4KKworMDAtMDYtNjEgICAoaGV4KQkJTklBIEhvbWUgVGVjaG5vbG9naWVzIENvcnAuCiswMDA2NjEgICAgIChiYXNlIDE2KQkJTklBIEhvbWUgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJSW5ub3ZhdGlvbiBJbmN1YmF0b3IsIE5USFUsCisJCQkJMTAxLCBTZWMuIDIsIEt1YW5nIEZ1IFJvYWQsCisJCQkJSHNpbmNodSAzMDAxMywgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi02MiAgIChoZXgpCQlNQk0gVGVjaG5vbG9neSBMdGQuCiswMDA2NjIgICAgIChiYXNlIDE2KQkJTUJNIFRlY2hub2xvZ3kgTHRkLgorCQkJCVZpY3RvcmlhIFJkLgorCQkJCVBvcnRzbGFkZSwgQnJpZ2h0b24gU3Vzc2V4IEJONGwgMVlICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDYtNjMgICAoaGV4KQkJSHVtYW4gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDY2MyAgICAgKGJhc2UgMTYpCQlIdW1hbiBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTNyZCBGbCwgSHl1bmdvayBCbGRnLiwKKwkJCQk4MzYtMjUsIFl1a3NhbS1Eb25nLAorCQkJCUthbmduYW0ta3UgU2VvdWwgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTY0ICAgKGhleCkJCUZvc3RleCBDb3Jwb3JhdGlvbgorMDAwNjY0ICAgICAoYmFzZSAxNikJCUZvc3RleCBDb3Jwb3JhdGlvbgorCQkJCTMtMi0zNSwgTXVzYXNoaW5vLCBBa2lzaGltYSwKKwkJCQlUb2t5byAgMTk2LTAwMjEKKwkJCQlKQVBBTgorCiswMC0wNi02NSAgIChoZXgpCQlTdW5ueSBHaWtlbiwgSW5jLgorMDAwNjY1ICAgICAoYmFzZSAxNikJCVN1bm55IEdpa2VuLCBJbmMuCisJCQkJMy0xLTkgTmlzaGlkYWkgSXRhbWktc2hpCisJCQkJSHlvZ28tcHJlZi4gIDY2NC0wODU4CisJCQkJSkFQQU4KKworMDAtMDYtNjYgICAoaGV4KQkJUm92aW5nIE5ldHdvcmtzCiswMDA2NjYgICAgIChiYXNlIDE2KQkJUm92aW5nIE5ldHdvcmtzCisJCQkJODA5IFVuaXZlcnNpdHkgQXZlbnVlCisJCQkJTG9zIEdhdG9zIENBIDk1MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi02NyAgIChoZXgpCQlUcmlwcCBMaXRlCiswMDA2NjcgICAgIChiYXNlIDE2KQkJVHJpcHAgTGl0ZQorCQkJCTExMTEgVy4gMzV0aCBTdHJlZXQKKwkJCQlDaGljYWdvIElMIDYwNjA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi02OCAgIChoZXgpCQlWaWNvbiBJbmR1c3RyaWVzIEluYy4KKzAwMDY2OCAgICAgKGJhc2UgMTYpCQlWaWNvbiBJbmR1c3RyaWVzIEluYy4KKwkJCQk4OSBBcmtheSBEcml2ZQorCQkJCUhhdXBwYXVnZSBOWSAxMTc4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNjkgICAoaGV4KQkJRGF0YXNvdW5kIExhYm9yYXRvcmllcyBMdGQKKzAwMDY2OSAgICAgKGJhc2UgMTYpCQlEYXRhc291bmQgTGFib3JhdG9yaWVzIEx0ZAorCQkJCTUgQnVzaW5lc3MgUGFyayBXZXN0LCBBdmVudWUgT25lCisJCQkJTGV0Y2h3b3J0aCwgSGVydHMgU0c2IDI0QgorCQkJCUVOR0xBTkQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDYtNkEgICAoaGV4KQkJSW5maW5pQ29uIFN5c3RlbXMsIEluYy4KKzAwMDY2QSAgICAgKGJhc2UgMTYpCQlJbmZpbmlDb24gU3lzdGVtcywgSW5jLgorCQkJCTcwMCBBbWVyaWNhbiBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJS2luZyBvZiBQcnVzc2lhIFBBIDE5NDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi02QiAgIChoZXgpCQlTeXNtZXggQ29ycG9yYXRpb24KKzAwMDY2QiAgICAgKGJhc2UgMTYpCQlTeXNtZXggQ29ycG9yYXRpb24KKwkJCQk0LTQtNCBUYWthdHN1a2FkYWksCisJCQkJTmlzaGkta3UsIEtvYmUtQ2l0eQorCQkJCTY1MS0yMjcxCisJCQkJSkFQQU4KKworMDAtMDYtNkMgICAoaGV4KQkJUm9iaW5zb24gQ29ycG9yYXRpb24KKzAwMDY2QyAgICAgKGJhc2UgMTYpCQlSb2JpbnNvbiBDb3Jwb3JhdGlvbgorCQkJCTEyRiwgTm8uIDI3OCBIbyBQaW5nIEUuIFJkLiwKKwkJCQlTZWMuIDMKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtNkQgICAoaGV4KQkJQ29tcHVwcmludCBTLlAuQS4KKzAwMDY2RCAgICAgKGJhc2UgMTYpCQlDb21wdXByaW50IFMuUC5BLgorCQkJCVZpYSBNYXJ0aXJpIEQnSXRhbGlhIDI2CisJCQkJMTAwMTQgQ2FsdXNvIChUdXJpbikKKwkJCQlJVEFMWQorCiswMC0wNi02RSAgIChoZXgpCQlEZWx0YSBFbGVjdHJvbmljcywgSW5jLgorMDAwNjZFICAgICAoYmFzZSAxNikJCURlbHRhIEVsZWN0cm9uaWNzLCBJbmMuCisJCQkJMTFGLCAyNjYgV2VuLUh3YSAybmQgUm9hZCwKKwkJCQlTZWMuIDEsIExpbmtvdSwgVGFpcGVpIEhzaWVuIDI0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtNkYgICAoaGV4KQkJS29yZWEgRGF0YSBTeXN0ZW1zCiswMDA2NkYgICAgIChiYXNlIDE2KQkJS29yZWEgRGF0YSBTeXN0ZW1zCisJCQkJMTcwLCBHb25nZGFuLURvbmcsIEd1bWktU2kKKwkJCQlLeXVuZ2J1ayAgNzMwLTAzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi03MCAgIChoZXgpCQlVcHBvbmV0dGkgT3kKKzAwMDY3MCAgICAgKGJhc2UgMTYpCQlVcHBvbmV0dGkgT3kKKwkJCQlUeWtpc3Rva2F0dSA0RAorCQkJCUZJTi0yMDUyMCBUdXJrdQorCQkJCUZJTkxBTkQKKworMDAtMDYtNzEgICAoaGV4KQkJU29mdGluZyBBRworMDAwNjcxICAgICAoYmFzZSAxNikJCVNvZnRpbmcgQUcKKwkJCQlSaWNoYXJkLVJlaXR6bmVyLUFsbGVlIDYKKwkJCQk4NTU0MCBIYWFyCisJCQkJR0VSTUFOWQorCiswMC0wNi03MiAgIChoZXgpCQlOZXRlenphCiswMDA2NzIgICAgIChiYXNlIDE2KQkJTmV0ZXp6YQorCQkJCTE2NzEgV29yY2VzdGVyIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlGcmFtaW5naGFtIE1BIDAxNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi03MyAgIChoZXgpCQlPcHRlbGVjb20tbmtmCiswMDA2NzMgICAgIChiYXNlIDE2KQkJT3B0ZWxlY29tLW5rZgorCQkJCTEyOTIwIENsb3ZlcmxlYWYgQ2VudGVyIERyaXZlCisJCQkJR2VybWFudG93biBNRCAyMDg3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNzQgICAoaGV4KQkJU3BlY3RydW0gQ29udHJvbCwgSW5jLgorMDAwNjc0ICAgICAoYmFzZSAxNikJCVNwZWN0cnVtIENvbnRyb2wsIEluYy4KKwkJCQk4MDYxIEF2b25pYSBSb2FkCisJCQkJRmFpcnZpZXcgUEEgMTY0MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTc1ICAgKGhleCkJCUJhbmRlcmFjb20sIEluYy4KKzAwMDY3NSAgICAgKGJhc2UgMTYpCQlCYW5kZXJhY29tLCBJbmMuCisJCQkJOTIxMSBXYXRlcmZvcmQgQ2VudHJlIEJsdmQuCisJCQkJU3VpdGUgMTAwCisJCQkJQXVzdGluIFRYIDc4NzU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi03NiAgIChoZXgpCQlOb3ZyYSBUZWNobm9sb2dpZXMgSW5jLgorMDAwNjc2ICAgICAoYmFzZSAxNikJCU5vdnJhIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJOTAwLTMzMCBTdC4gTWFyeSBBdmVudWUKKwkJCQlXaW5uaXBlZyBNYW5pdG9iYSBSM0MgM1o1CisJCQkJQ0FOQURBCisKKzAwLTA2LTc3ICAgKGhleCkJCVNJQ0sgQUcKKzAwMDY3NyAgICAgKGJhc2UgMTYpCQlTSUNLIEFHCisJCQkJRXJ3aW4tU2ljayBTdHIuMQorCQkJCUQtNzkxODMgV2FsZGtpcmNoIAorCQkJCUdFUk1BTlkKKworMDAtMDYtNzggICAoaGV4KQkJTWFyYW50eiBCcmFuZCBDb21wYW55CiswMDA2NzggICAgIChiYXNlIDE2KQkJTWFyYW50eiBCcmFuZCBDb21wYW55CisJCQkJRCZNIEJ1aWxkaW5nLCAyLTEgTmlzc2hpbi1jaG8KKwkJCQlLYXdhc2FraS1rdQorCQkJCUthd2FzYWtpLXNoaSBLYXdhZ2F3YSAyMTAtODU2OQorCQkJCUpBUEFOCisKKzAwLTA2LTc5ICAgKGhleCkJCUtvbmFtaSBDb3Jwb3JhdGlvbgorMDAwNjc5ICAgICAoYmFzZSAxNikJCUtvbmFtaSBDb3Jwb3JhdGlvbgorCQkJCTExLTE0LTUgQWthc2FrYSwgTWluYXRvLWt1LAorCQkJCVRva3lvIDEwNy0wMDUyCisJCQkJSkFQQU4KKworMDAtMDYtN0EgICAoaGV4KQkJSk1QIFN5c3RlbXMKKzAwMDY3QSAgICAgKGJhc2UgMTYpCQlKTVAgU3lzdGVtcworCQkJCTNyZCBGbC4gU2hpbndoYSBCbGRnLiwKKwkJCQkxNDUxLTE5LCBTZW9jaG8tZG9uZywKKwkJCQlTZW9jaG8ta3UgU2VvdWwsIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi03QiAgIChoZXgpCQlUb3BsaW5rIEMmQyBDb3Jwb3JhdGlvbgorMDAwNjdCICAgICAoYmFzZSAxNikJCVRvcGxpbmsgQyZDIENvcnBvcmF0aW9uCisJCQkJNkYtMTUsIE5vLiAxMiwgTGFuZSA2MDksIFNlYy4gNQorCQkJCUNodW5nIEhzaW4gUmQuLCBTYW4gQ2h1bmcgQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAyNDEgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtN0MgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAwNjdDICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtN0QgICAoaGV4KQkJVGFrYXNhZ28gTHRkLgorMDAwNjdEICAgICAoYmFzZSAxNikJCVRha2FzYWdvIEx0ZC4KKwkJCQkxLTI0LTE2IE1pem9ub2t1Y2hpIFRha2F0c3Uta3UKKwkJCQlLYXdhc2FraSBLYW5hZ2F3YQorCQkJCUpBUEFOCisKKzAwLTA2LTdFICAgKGhleCkJCVdpbkNvbSBTeXN0ZW1zLCBJbmMuCiswMDA2N0UgICAgIChiYXNlIDE2KQkJV2luQ29tIFN5c3RlbXMsIEluYy4KKwkJCQkxMDkwMCBXb3JsZCBUcmFkZSBCbHZkLgorCQkJCVN1aXRlIDI1MAorCQkJCU1vcnJpc3ZpbGxlIE5DIDI3NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi03RiAgIChoZXgpCQlEaWdlbywgSW5jLgorMDAwNjdGICAgICAoYmFzZSAxNikJCURpZ2VvLCBJbmMuCisJCQkJODgxNSAxMjJuZCBBdmVudWUgTkUKKwkJCQlLaXJrbGFuZCBXQSA5ODAzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtODAgICAoaGV4KQkJQ2FyZCBBY2Nlc3MsIEluYy4KKzAwMDY4MCAgICAgKGJhc2UgMTYpCQlDYXJkIEFjY2VzcywgSW5jLgorCQkJCTExNzc4IFMuIEVsZWN0aW9uIFJkCisJCQkJU3VpdGUgMjYwCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODA0MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTgxICAgKGhleCkJCUdvZXBlbCBFbGVjdHJvbmljIEdtYkgKKzAwMDY4MSAgICAgKGJhc2UgMTYpCQlHb2VwZWwgRWxlY3Ryb25pYyBHbWJICisJCQkJR29lc2Nod2l0emVyIFN0ci4gNTgtNjAKKwkJCQkwNzc0NSBKZW5hCisJCQkJR0VSTUFOWQorCiswMC0wNi04MiAgIChoZXgpCQlDb252ZWRpYQorMDAwNjgyICAgICAoYmFzZSAxNikJCUNvbnZlZGlhCisJCQkJNDE5MCBTdGlsbCBDcmVlayBEci4KKwkJCQlWYW5jb3V2ZXIgQi5DLgorCQkJCVY1QyA2QzYKKwkJCQlDQU5BREEKKworMDAtMDYtODMgICAoaGV4KQkJQnJhdmFyYSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNjgzICAgICAoYmFzZSAxNikJCUJyYXZhcmEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyNjUwIEVhc3QgQmF5c2hvcmUgUm9hZAorCQkJCVBhbG8gQWx0byBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtODQgICAoaGV4KQkJQmlhY29yZSBBQgorMDAwNjg0ICAgICAoYmFzZSAxNikJCUJpYWNvcmUgQUIKKwkJCQlTb2Z0d2FyZSwgRWxlY3Ryb25pY3MgYW5kIE9wdGljcworCQkJCVJhcHNnYXRhbiA3LCA3NTQgNTAgVXBwc2FsYQorCQkJCVNXRURFTgorCiswMC0wNi04NSAgIChoZXgpCQlOZXROZWFyVSBDb3Jwb3JhdGlvbgorMDAwNjg1ICAgICAoYmFzZSAxNikJCU5ldE5lYXJVIENvcnBvcmF0aW9uCisJCQkJMjkwOCBGaW5mZWF0aGVyIFJvYWQKKwkJCQlCcnlhbiBUWCA3NzgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtODYgICAoaGV4KQkJWkFSRENPTSBDby4sIEx0ZC4KKzAwMDY4NiAgICAgKGJhc2UgMTYpCQlaQVJEQ09NIENvLiwgTHRkLgorCQkJCTRGLCAxNTQ4LTEsIFNlb2NobyBEb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTg3ICAgKGhleCkJCU9tbml0cm9uIFN5c3RlbXMgVGVjaG5vbG9neSwgSW5jLgorMDAwNjg3ICAgICAoYmFzZSAxNikJCU9tbml0cm9uIFN5c3RlbXMgVGVjaG5vbG9neSwgSW5jLgorCQkJCTE0MCBUZWNobm9sb2d5CisJCQkJU3VpdGUgNTAwCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi04OCAgIChoZXgpCQlUZWx3YXlzIENvbW11bmljYXRpb24gQ28uLCBMdGQuCiswMDA2ODggICAgIChiYXNlIDE2KQkJVGVsd2F5cyBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorCQkJCTNGLCBOby4gNTMsIExhbmUgMjU4CisJCQkJWnVpLUt1YW5nIFJkLiwgTmVpLUh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA2LTg5ICAgKGhleCkJCXlMZXogVGVjaG5vbG9naWVzIFB0ZSBMdGQKKzAwMDY4OSAgICAgKGJhc2UgMTYpCQl5TGV6IFRlY2hub2xvZ2llcyBQdGUgTHRkCisJCQkJTm8uIDEsIFRhbm5lcnkgUm9hZCwgQ2VuY29uIDEsCisJCQkJIzA5LTAzLCAzNDc3MTkKKwkJCQlTSU5HQVBPUkUKKworMDAtMDYtOEEgICAoaGV4KQkJTmV1cm9uTmV0IENvLiBMdGQuIFImRCBDZW50ZXIKKzAwMDY4QSAgICAgKGJhc2UgMTYpCQlOZXVyb25OZXQgQ28uIEx0ZC4gUiZEIENlbnRlcgorCQkJCTczNS0zNCBEYXN1bmcgQmxkZy4sIFl1a3NhbS1kb25nLAorCQkJCUthbmduYW0tZ3UsIFNlb3VsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LThCICAgKGhleCkJCUFpclJ1bm5lciBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDY4QiAgICAgKGJhc2UgMTYpCQlBaXJSdW5uZXIgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMjQwMSBMdXBpbmUgVHJhaWwKKwkJCQlTb3V0aCBMYWtlIFRhaG9lIENBIDk2MTUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi04QyAgIChoZXgpCQkzQ29tIENvcnBvcmF0aW9uCiswMDA2OEMgICAgIChiYXNlIDE2KQkJM0NvbSBDb3Jwb3JhdGlvbgorCQkJCTU0MDAgQmF5ZnJvbnQgUGxhemEKKwkJCQlNUzogIDUxMTYKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtOEQgICAoaGV4KQkJU0VQQVRPTiwgSW5jLgorMDAwNjhEICAgICAoYmFzZSAxNikJCVNFUEFUT04sIEluYy4KKwkJCQk0MDAgTmlja2Vyc29uIFJkLgorCQkJCU1hcmxib3JvdWdoIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi04RSAgIChoZXgpCQlISUQgQ29ycG9yYXRpb24KKzAwMDY4RSAgICAgKGJhc2UgMTYpCQlISUQgQ29ycG9yYXRpb24KKwkJCQk5MjkyIEplcm9uaW1vIFJvYWQKKwkJCQlJcnZpbmUgQ0EgOTI2MTgtMTkwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtOEYgICAoaGV4KQkJVGVsZW1vbml0b3IsIEluYy4KKzAwMDY4RiAgICAgKGJhc2UgMTYpCQlUZWxlbW9uaXRvciwgSW5jLgorCQkJCTkwNTVGIEd1aWxmb3JkIFJvYWQKKwkJCQlDb2x1bWJpYSBNRCAyMTA0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtOTAgICAoaGV4KQkJRXVyYWNvbSBDb21tdW5pY2F0aW9uIEdtYkgKKzAwMDY5MCAgICAgKGJhc2UgMTYpCQlFdXJhY29tIENvbW11bmljYXRpb24gR21iSAorCQkJCUZyYW5rbGluc3RyLiAxNAorCQkJCUQtMTA1ODcgQmVybGluCisJCQkJR0VSTUFOWQorCiswMC0wNi05MSAgIChoZXgpCQlQVCBJbm92YWNhbworMDAwNjkxICAgICAoYmFzZSAxNikJCVBUIElub3ZhY2FvCisJCQkJUnVhIEVuZy4gSm9zZSBGLiBQaW50byBCYXN0bworCQkJCTM4MTAgQXZlaXJvCisJCQkJUE9SVFVHQUwKKworMDAtMDYtOTIgICAoaGV4KQkJSW50cnV2ZXJ0IE5ldHdvcmtzLCBJbmMuCiswMDA2OTIgICAgIChiYXNlIDE2KQkJSW50cnV2ZXJ0IE5ldHdvcmtzLCBJbmMuCisJCQkJU3VpdGUgMTAyCisJCQkJMjI5MCBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtOTMgICAoaGV4KQkJRmxleHVzIENvbXB1dGVyIFRlY2hub2xvZ3ksIEluYy4KKzAwMDY5MyAgICAgKGJhc2UgMTYpCQlGbGV4dXMgQ29tcHV0ZXIgVGVjaG5vbG9neSwgSW5jLgorCQkJCThGLTIsIE5vLjUsIEFsbGV5MjIsIExhbmUgNTEzLAorCQkJCVJ1ZWktR3VhbmcgUmQuLCBOZWktSHUgRGlzdC4sCisJCQkJVGFpcGVpIDExNCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi05NCAgIChoZXgpCQlNb2JpbGxpYW4gQ29ycG9yYXRpb24KKzAwMDY5NCAgICAgKGJhc2UgMTYpCQlNb2JpbGxpYW4gQ29ycG9yYXRpb24KKwkJCQkxMTAzMSBWaWEgRnJvbnRlcmEKKwkJCQlTdWl0ZSBDCisJCQkJU2FuIERpZWdvIENBIDkyMTI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi05NSAgIChoZXgpCQlFbnN1cmUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA2OTUgICAgIChiYXNlIDE2KQkJRW5zdXJlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTM1MjYgV2VzdCBMaWJlcnR5CisJCQkJU3VpdGUgMTAwCisJCQkJQW5uIEFyYm9yIE1JIDQ4MTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi05NiAgIChoZXgpCQlBZHZlbnQgTmV0d29ya3MKKzAwMDY5NiAgICAgKGJhc2UgMTYpCQlBZHZlbnQgTmV0d29ya3MKKwkJCQk5NjAwIEdyZWF0IEhpbGxzIFRyLgorCQkJCVN1aXRlIDMwMEUKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTk3ICAgKGhleCkJCVIgJiBEIENlbnRlcgorMDAwNjk3ICAgICAoYmFzZSAxNikJCVIgJiBEIENlbnRlcgorCQkJCTVGLCBTZXVuZ3dvbiBCL0QsIDgxMC05CisJCQkJQmFuZ2JhZS1Eb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTk4ICAgKGhleCkJCWVnbml0ZSBTb2Z0d2FyZSBHbWJICiswMDA2OTggICAgIChiYXNlIDE2KQkJZWduaXRlIFNvZnR3YXJlIEdtYkgKKwkJCQlFcmluc3RyLiA5CisJCQkJQ2FzdHJvcC1SYXV4ZWwgRC00NDU3NQorCQkJCUdFUk1BTlkKKworMDAtMDYtOTkgICAoaGV4KQkJVmlkYSBEZXNpZ24gQ28uCiswMDA2OTkgICAgIChiYXNlIDE2KQkJVmlkYSBEZXNpZ24gQ28uCisJCQkJMTBGLCBOby4gMjc4IEhvIFBpbmcgRS4gUmQuLAorCQkJCVNlYy4gMywgVGFpcGVpCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi05QSAgIChoZXgpCQllICYgVGVsCiswMDA2OUEgICAgIChiYXNlIDE2KQkJZSAmIFRlbAorCQkJCTEwMCBTZWpvbmctbm8gQ2hvbmduby1ndSwKKwkJCQlTZW91bCAxMTAtNzc3LAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi05QiAgIChoZXgpCQlBVlQgQXVkaW8gVmlkZW8gVGVjaG5vbG9naWVzIEdtYkgKKzAwMDY5QiAgICAgKGJhc2UgMTYpCQlBVlQgQXVkaW8gVmlkZW8gVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlSYXRoc2JlcmdzdHJhc3NlIDE3CisJCQkJRC05MDQxMSBOdWVybmJlcmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA2LTlDICAgKGhleCkJCVRyYW5zbW9kZSBTeXN0ZW1zIEFCCiswMDA2OUMgICAgIChiYXNlIDE2KQkJVHJhbnNtb2RlIFN5c3RlbXMgQUIKKwkJCQlKYWtvYnNkYWxzdmFnZW4gMTcKKwkJCQlIQUdFUlNURU4gU0UtMTI2IDUzCisJCQkJU1dFREVOCisKKzAwLTA2LTlEICAgKGhleCkJCVBldGFyZHMgTHRkCiswMDA2OUQgICAgIChiYXNlIDE2KQkJUGV0YXJkcyBMdGQKKwkJCQkzOTAgUHJpbmNlc3dheSwgVGVhbSBWYWxsZXkKKwkJCQlHYXRlc2hlYWQgVHluZSBhbmQgV2VhciBORTExIE9UVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA2LTlFICAgKGhleCkJCVVOSVFBLCBJbmMuCiswMDA2OUUgICAgIChiYXNlIDE2KQkJVU5JUUEsIEluYy4KKwkJCQk0NzcgVmFsbGV5IFdheQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi05RiAgIChoZXgpCQlLdW9rb2EgTmV0d29ya3MKKzAwMDY5RiAgICAgKGJhc2UgMTYpCQlLdW9rb2EgTmV0d29ya3MKKwkJCQkyOTAxIFRhc21hbiBEci4KKwkJCQlTdWl0ZSAyMDIKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQTAgICAoaGV4KQkJTXggSW1hZ2luZworMDAwNkEwICAgICAoYmFzZSAxNikJCU14IEltYWdpbmcKKwkJCQkyMzQxIFcuIDIwNXRoIFN0cmVldAorCQkJCVN1aXRlIDExMAorCQkJCVRvcnJhbmNlIENBIDkwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1BMSAgIChoZXgpCQlDZWxzaWFuIFRlY2hub2xvZ2llcywgSW5jLgorMDAwNkExICAgICAoYmFzZSAxNikJCUNlbHNpYW4gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMzAwMiBEb3cgQXZlLiwgVW5pdCAxMzgKKwkJCQlUdXN0aW4gQ0EgOTI3ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUEyICAgKGhleCkJCU1pY3JvdHVuZSwgSW5jLgorMDAwNkEyICAgICAoYmFzZSAxNikJCU1pY3JvdHVuZSwgSW5jLgorCQkJCTY0NDAgTHVzayBCbHZkLiwgU3VpdGUgRDIwNQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQTMgICAoaGV4KQkJQml0cmFuIENvcnBvcmF0aW9uCiswMDA2QTMgICAgIChiYXNlIDE2KQkJQml0cmFuIENvcnBvcmF0aW9uCisJCQkJMjIxMyBNb2NoaWRhCisJCQkJR3lvdWRhIFNhaXRhbWEKKwkJCQlKQVBBTgorCiswMC0wNi1BNCAgIChoZXgpCQlJTk5PV0VMTCBDb3JwLgorMDAwNkE0ICAgICAoYmFzZSAxNikJCUlOTk9XRUxMIENvcnAuCisJCQkJIzcxNyBDaG9uZ0d1IEJsdWV2aWxsCisJCQkJMTEtMSwgU3VuYWUtMSBEb25nLCBCdW5kYW5nLUd1LCBTdW5nbmFtLQorCQkJCTQ2My04MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtQTUgICAoaGV4KQkJUElOT04gQ29ycC4KKzAwMDZBNSAgICAgKGJhc2UgMTYpCQlQSU5PTiBDb3JwLgorCQkJCURLIEdvdGFuZGEgQmxkZy43RgorCQkJCTctMTMtNSBOaXNoaWdvdGFuZGEgU2hpbmFnYXdhLWt1CisJCQkJVG9reW8gIDE0MS0wMDMxCisJCQkJSkFQQU4KKworMDAtMDYtQTYgICAoaGV4KQkJQXJ0aXN0aWMgTGljZW5jZSAoVUspIEx0ZAorMDAwNkE2ICAgICAoYmFzZSAxNikJCUFydGlzdGljIExpY2VuY2UgKFVLKSBMdGQKKwkJCQkyNCBGb3J3YXJkIERyaXZlCisJCQkJQ2hyaXN0Y2h1cmNoIEF2ZW51ZQorCQkJCUhhcnJvdyBNaWRkbGVzZXggSEEzIDhOVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA2LUE3ICAgKGhleCkJCVByaW1hcmlvbgorMDAwNkE3ICAgICAoYmFzZSAxNikJCVByaW1hcmlvbgorCQkJCTM0NTAgVG9ycmFuY2UgQmx2ZC4KKwkJCQlUb3JyYW5jZSBDQSA5MDUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQTggICAoaGV4KQkJS0MgVGVjaG5vbG9neSwgSW5jLgorMDAwNkE4ICAgICAoYmFzZSAxNikJCUtDIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxOTAwIE1jQ2FydGh5IEJsdmQuCisJCQkJU3VpdGUgMzAwCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUE5ICAgKGhleCkJCVVuaXZlcnNhbCBJbnN0cnVtZW50cyBDb3JwLgorMDAwNkE5ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBJbnN0cnVtZW50cyBDb3JwLgorCQkJCVBPIEJveCA4MjUKKwkJCQlCaW5naGFtdG9uIE5ZIDEzOTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1BQSAgIChoZXgpCQlWVCBNaWx0b3BlCiswMDA2QUEgICAgIChiYXNlIDE2KQkJVlQgTWlsdG9wZQorCQkJCTQ5MDAgUGVhcmwgRWFzdCBDaXJjbGUKKwkJCQlTdWl0ZSAxMDYKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1BQiAgIChoZXgpCQlXLUxpbmsgU3lzdGVtcywgSW5jLgorMDAwNkFCICAgICAoYmFzZSAxNikJCVctTGluayBTeXN0ZW1zLCBJbmMuCisJCQkJTm8uIDIwLCBQYXJrIEF2ZS4gSUksCisJCQkJU2NpZW5jZSBCYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi1BQyAgIChoZXgpCQlJbnRlcnNvZnQgQ28uCiswMDA2QUMgICAgIChiYXNlIDE2KQkJSW50ZXJzb2Z0IENvLgorCQkJCSMxODAzIHN1bi1reW91bmcgT2ZmaWNldGVsCisJCQkJMTA2LTQgQnVuemksIEd1cm81RG9uZywgR3VybyBHdQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtQUQgICAoaGV4KQkJS0IgRWxlY3Ryb25pY3MgTHRkLgorMDAwNkFEICAgICAoYmFzZSAxNikJCUtCIEVsZWN0cm9uaWNzIEx0ZC4KKwkJCQkxNTAgQmx1ZXdhdGVyIFJkLgorCQkJCUJlZGZvcmQsIE5vdmEgU2NvdGlhCisJCQkJQjRCIDFHOQorCQkJCUNBTkFEQQorCiswMC0wNi1BRSAgIChoZXgpCQlIaW1hY2hhbCBGdXR1cmlzdGljIENvbW11bmljYXRpb25zIEx0ZAorMDAwNkFFICAgICAoYmFzZSAxNikJCUhpbWFjaGFsIEZ1dHVyaXN0aWMgQ29tbXVuaWNhdGlvbnMgTHRkCisJCQkJOCwgQ29tbWVyY2lhbCBDb21wbGV4CisJCQkJTWFzamlkIE1vdGgsIEdyZWF0ZXIgS2FpbGFzaCBJSQorCQkJCU5ldyBEZWhsaSAgMTEwMDQ4CisJCQkJSU5ESUEKKworMDAtMDYtQUYgICAoaGV4KQkJWGFsdGVkIE5ldHdvcmtzCiswMDA2QUYgICAgIChiYXNlIDE2KQkJWGFsdGVkIE5ldHdvcmtzCisJCQkJMjkwMSBEYWxsYXMgUGFya3dheQorCQkJCVN1aXRlIDIwMAorCQkJCVBsYW5vIFRYIDc1MDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1CMCAgIChoZXgpCQlDb210ZWNoIEVGIERhdGEgQ29ycC4KKzAwMDZCMCAgICAgKGJhc2UgMTYpCQlDb210ZWNoIEVGIERhdGEgQ29ycC4KKwkJCQkyMTE0IFcuIDd0aCBTdC4KKwkJCQlUZW1wZSBBWiA4NTI4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQjEgICAoaGV4KQkJU29uaWN3YWxsCiswMDA2QjEgICAgIChiYXNlIDE2KQkJU29uaWN3YWxsCisJCQkJMTE2MCBCb3JkZWF1eCBEci4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUIyICAgKGhleCkJCUxpbnh0ZWsgQ28uCiswMDA2QjIgICAgIChiYXNlIDE2KQkJTGlueHRlayBDby4KKwkJCQkyRiBLdW0tYSBCL0QgMzEtMyBLYXJhay1kb25nLAorCQkJCVNvbmdwYS1rdSwgU2VvdWwsCisJCQkJMTM4LTE2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi1CMyAgIChoZXgpCQlEaWFncmFwaCBDb3Jwb3JhdGlvbgorMDAwNkIzICAgICAoYmFzZSAxNikJCURpYWdyYXBoIENvcnBvcmF0aW9uCisJCQkJMzQwMSBSaWRlciBUcmFpbCBTb3V0aAorCQkJCUVhcnRoIENpdHkgTU8gNjMwNDUtMTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQjQgICAoaGV4KQkJVm9ybmUgSW5kdXN0cmllcywgSW5jLgorMDAwNkI0ICAgICAoYmFzZSAxNikJCVZvcm5lIEluZHVzdHJpZXMsIEluYy4KKwkJCQkxNDQ1IEluZHVzdHJpYWwgRHIuCisJCQkJSXRhc2NhIElMIDYwMTQzLTE4NDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUI1ICAgKGhleCkJCUx1bWluZW50LCBJbmMuCiswMDA2QjUgICAgIChiYXNlIDE2KQkJTHVtaW5lbnQsIEluYy4KKwkJCQkyMDU1MCBOb3JkaG9mZiBTdC4KKwkJCQlDaGF0c3dvcnRoIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1CNiAgIChoZXgpCQlOaXItT3IgSXNyYWVsIEx0ZC4KKzAwMDZCNiAgICAgKGJhc2UgMTYpCQlOaXItT3IgSXNyYWVsIEx0ZC4KKwkJCQkxMSBBbWFsIFN0LgorCQkJCVJvc2ggSGEnYXlpbiA0ODA5MgorCQkJCUlTUkFFTAorCiswMC0wNi1CNyAgIChoZXgpCQlURUxFTSBHbWJICiswMDA2QjcgICAgIChiYXNlIDE2KQkJVEVMRU0gR21iSAorCQkJCUxpc2UtTWVpdG5lci1BbGxlZSAzMQorCQkJCUQgNDQ4MDEKKwkJCQlHRVJNQU5ZCisKKzAwLTA2LUI4ICAgKGhleCkJCUJhbmRzcGVlZCBQdHkgTHRkCiswMDA2QjggICAgIChiYXNlIDE2KQkJQmFuZHNwZWVkIFB0eSBMdGQKKwkJCQlMZXZlbCA5LCA1MDAwIENvbGxpbnMgU3RyZWV0CisJCQkJTWVsYm91cm5lIFZpYyAzMDAwCisJCQkJQVVTVFJBTElBCisKKzAwLTA2LUI5ICAgKGhleCkJCUE1VEVLIENvcnAuCiswMDA2QjkgICAgIChiYXNlIDE2KQkJQTVURUsgQ29ycC4KKwkJCQkxMjMzIEFsZGVyd29vZCBBdmUuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1CQSAgIChoZXgpCQlXZXN0d2F2ZSBDb21tdW5pY2F0aW9ucworMDAwNkJBICAgICAoYmFzZSAxNikJCVdlc3R3YXZlIENvbW11bmljYXRpb25zCisJCQkJNDYzIEF2aWF0aW9uIEJsdmQuCisJCQkJU2FudGEgUm9zYSBDQSA5NTQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQkIgICAoaGV4KQkJQVRJIFRlY2hub2xvZ2llcyBJbmMuCiswMDA2QkIgICAgIChiYXNlIDE2KQkJQVRJIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNzUgVGl2ZXJ0b24gQ291cnQKKwkJCQlVbmlvbnZpbGxlLCBPTiBMM1IgOTUzCisJCQkJQ0FOQURBCisKKzAwLTA2LUJDICAgKGhleCkJCU1hY3JvbGluaywgSW5jLgorMDAwNkJDICAgICAoYmFzZSAxNikJCU1hY3JvbGluaywgSW5jLgorCQkJCTE1MDAgTiBLZWxsb2dnIERyLgorCQkJCUFuYWhlaW0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUJEICAgKGhleCkJCUJOVEVDSE5PTE9HWSBDby4sIEx0ZC4KKzAwMDZCRCAgICAgKGJhc2UgMTYpCQlCTlRFQ0hOT0xPR1kgQ28uLCBMdGQuCisJCQkJNjAyIFlvdW5nc2hpbiBCbGRnLiAyMzgtOAorCQkJCVBvaS1Eb25nIEthbmduYW0tR3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LUJFICAgKGhleCkJCUJhdW1lciBPcHRyb25pYyBHbWJICiswMDA2QkUgICAgIChiYXNlIDE2KQkJQmF1bWVyIE9wdHJvbmljIEdtYkgKKwkJCQlCYWRzdHJhc3NlIDMwCisJCQkJRC0wMTQ1NCBSYWRlYmVyZworCQkJCUdFUk1BTlkKKworMDAtMDYtQkYgICAoaGV4KQkJQWNjZWxsYSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDA2QkYgICAgIChiYXNlIDE2KQkJQWNjZWxsYSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJUm0gNTEyIE5vLiA2ODAgR3VpIFBpbmcgUmQuCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTA2LUMwICAgKGhleCkJCVVuaXRlZCBJbnRlcm5ldHdvcmtzLCBJbmMuCiswMDA2QzAgICAgIChiYXNlIDE2KQkJVW5pdGVkIEludGVybmV0d29ya3MsIEluYy4KKwkJCQk1MDcyIE5vcnRoIDMwMCBXZXN0LCBTdWl0ZSAyTgorCQkJCVByb3ZvIFVUIDg0NjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1DMSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDA2QzEgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1DMiAgIChoZXgpCQlTbWFydG1hdGljIENvcnBvcmF0aW9uCiswMDA2QzIgICAgIChiYXNlIDE2KQkJU21hcnRtYXRpYyBDb3Jwb3JhdGlvbgorCQkJCTY0MDAgQ29uZ3Jlc3MgQXZlLiwgU3VpdGUgMTMwMAorCQkJCUJvY2EgUmF0b24gRkwgMzM0ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUMzICAgKGhleCkJCVNjaGluZGxlciBFbGV2YXRvciBMdGQuCiswMDA2QzMgICAgIChiYXNlIDE2KQkJU2NoaW5kbGVyIEVsZXZhdG9yIEx0ZC4KKwkJCQlEZXB0LiBSJkQtQ08KKwkJCQlWaWEgZGVsbGEgUGFjZSAyMgorCQkJCUxvY2Fybm8gQ0gtNjYwMAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA2LUM0ICAgKGhleCkJCVBpb2xpbmsgSW5jLgorMDAwNkM0ICAgICAoYmFzZSAxNikJCVBpb2xpbmsgSW5jLgorCQkJCUlUIENhc3RsZSAxLTQwMSwgNTUwLTEgR2FzYW4tZG9uZywKKwkJCQkxNjU2LTIgU2VvY2hvLUd1LCBTZW91bAorCQkJCVNlb3VsIEdldW1jaG9uLUd1IDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtQzUgICAoaGV4KQkJSU5OT1ZJIFRlY2hub2xvZ2llcyBMaW1pdGVkCiswMDA2QzUgICAgIChiYXNlIDE2KQkJSU5OT1ZJIFRlY2hub2xvZ2llcyBMaW1pdGVkCisJCQkJMzFzdCBGbG9vciwgQ2hpbmEgT25saW5lIENlbnRyZQorCQkJCTMzMyBMb2NraGFydCBSb2FkCisJCQkJV2FuY2hhaSAKKwkJCQlIT05HIEtPTkcKKworMDAtMDYtQzYgICAoaGV4KQkJbGVzc3dpcmUgQUcKKzAwMDZDNiAgICAgKGJhc2UgMTYpCQlsZXNzd2lyZSBBRworCQkJCUltIFRlY2hub2xvZ2llcGFyayAyNQorCQkJCUdFUk1BTlkKKworMDAtMDYtQzcgICAoaGV4KQkJUkZORVQgVGVjaG5vbG9naWVzIFB0ZSBMdGQgKFMpCiswMDA2QzcgICAgIChiYXNlIDE2KQkJUkZORVQgVGVjaG5vbG9naWVzIFB0ZSBMdGQgKFMpCisJCQkJVW5pdCAyMzMgSW5ub3ZhdGlvbiBDZW50cmUgQmxrIDIKKwkJCQkxOCBOYW55YW5nIERyaXZlCisJCQkJNjM3NzIyCisJCQkJU0lOR0FQT1JFCisKKzAwLTA2LUM4ICAgKGhleCkJCVN1bWl0b21vIE1ldGFsIE1pY3JvIERldmljZXMsIEluYy4KKzAwMDZDOCAgICAgKGJhc2UgMTYpCQlTdW1pdG9tbyBNZXRhbCBNaWNybyBEZXZpY2VzLCBJbmMuCisJCQkJMSwgSGlnYXNoaW11a29qaW1hIEhpZ2FzaGluby1jaG8KKwkJCQlBbWFnYXNha2ksIEh5b2dvLCA2NjAtODY2MAorCQkJCUpBUEFOCisKKzAwLTA2LUM5ICAgKGhleCkJCVRlY2huaWNhbCBNYXJrZXRpbmcgUmVzZWFyY2gsIEluYy4KKzAwMDZDOSAgICAgKGJhc2UgMTYpCQlUZWNobmljYWwgTWFya2V0aW5nIFJlc2VhcmNoLCBJbmMuCisJCQkJU2hpbiBOaWhvbiBHaWp1dHN1IEJsZGcuCisJCQkJMS0xLTMyLCBTaGliYWRhaW1vbiwgTWluYXRvLWt1CisJCQkJVG9reW8gMTA1LTAwMTIgIDEwNS0wMDEyCisJCQkJSkFQQU4KKworMDAtMDYtQ0EgICAoaGV4KQkJQW1lcmljYW4gQ29tcHV0ZXIgJiBEaWdpdGFsIENvbXBvbmVudHMsIEluYy4gKEFDREMpCiswMDA2Q0EgICAgIChiYXNlIDE2KQkJQW1lcmljYW4gQ29tcHV0ZXIgJiBEaWdpdGFsIENvbXBvbmVudHMsIEluYy4gKEFDREMpCisJCQkJNDQwIENsb3ZlcmxlYWYgRHJpdmUKKwkJCQlCYWxkd2luIFBhcmsgQ0EgOTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUNCICAgKGhleCkJCUpvdHJvbiBFbGVjdHJvbmljcyBBL1MKKzAwMDZDQiAgICAgKGJhc2UgMTYpCQlKb3Ryb24gRWxlY3Ryb25pY3MgQS9TCisJCQkJUG9iIDU0CisJCQkJTjMyODAgVGpvZGFseW5nCisJCQkJTk9SV0FZCisKKzAwLTA2LUNDICAgKGhleCkJCUpNSSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMDZDQyAgICAgKGJhc2UgMTYpCQlKTUkgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJTmFueWFuZyBCL0QgM0YsIDI1LTQKKwkJCQlZb25tdW4tZG9uZywgWW9uZ3Nhbi1ndQorCQkJCVNlb3VsICAxNDAtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LUNEICAgKGhleCkJCUxlYWYgSW1hZ2luZyBMdGQuCiswMDA2Q0QgICAgIChiYXNlIDE2KQkJTGVhZiBJbWFnaW5nIEx0ZC4KKwkJCQk3dGggSGF0bnVmYSBzdAorCQkJCVBldGFjaC1UaWt2YSAgNDkwMDIKKwkJCQlJU1JBRUwKKworMDAtMDYtQ0UgICAoaGV4KQkJREFURU5PCiswMDA2Q0UgICAgIChiYXNlIDE2KQkJREFURU5PCisJCQkJUnVlIEFtaXJhbCBCZXJlbmdlcgorCQkJCVphYyBFcyBQYXNzYW50cyBJSSBCUCA5MDE0NSwgMzU4MDEgRGluYXIKKwkJCQlGUkFOQ0UKKworMDAtMDYtQ0YgICAoaGV4KQkJVGhhbGVzIEF2aW9uaWNzIEluLUZsaWdodCBTeXN0ZW1zLCBMTEMKKzAwMDZDRiAgICAgKGJhc2UgMTYpCQlUaGFsZXMgQXZpb25pY3MgSW4tRmxpZ2h0IFN5c3RlbXMsIExMQworCQkJCTE3NDgxIFJlZCBIaWxsIEF2ZW51ZQorCQkJCUlydmluZSBDQSA5MjYxNC01NjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1EMCAgIChoZXgpCQlFbGdhciBFbGVjdHJvbmljcyBDb3JwLgorMDAwNkQwICAgICAoYmFzZSAxNikJCUVsZ2FyIEVsZWN0cm9uaWNzIENvcnAuCisJCQkJOTI1MCBCcm93biBEZWVyIFJkLgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRDEgICAoaGV4KQkJVGFob2UgTmV0d29ya3MsIEluYy4KKzAwMDZEMSAgICAgKGJhc2UgMTYpCQlUYWhvZSBOZXR3b3JrcywgSW5jLgorCQkJCTMwNTIgT3JjaGFyZCBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1EMiAgIChoZXgpCQlUdW5kcmEgU2VtaWNvbmR1Y3RvciBDb3JwLgorMDAwNkQyICAgICAoYmFzZSAxNikJCVR1bmRyYSBTZW1pY29uZHVjdG9yIENvcnAuCisJCQkJNjAzIE1hcmNoIFJvYWQKKwkJCQlLYW5hdGEsIE9udC4KKwkJCQlLMkstMk01CisJCQkJQ0FOQURBCisKKzAwLTA2LUQzICAgKGhleCkJCUFscGhhIFRlbGVjb20sIEluYy4gVS5TLkEuCiswMDA2RDMgICAgIChiYXNlIDE2KQkJQWxwaGEgVGVsZWNvbSwgSW5jLiBVLlMuQS4KKwkJCQkxMzk0IEJvcnJlZ29yIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUQ0ICAgKGhleCkJCUludGVyYWN0aXZlIE9iamVjdHMsIEluYy4KKzAwMDZENCAgICAgKGJhc2UgMTYpCQlJbnRlcmFjdGl2ZSBPYmplY3RzLCBJbmMuCisJCQkJMTI2MDAgU0UgMzh0aCBTdC4KKwkJCQlTdWl0ZSAxNTAKKwkJCQlCZWxsZXZ1ZSBXQSA5ODAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRDUgICAoaGV4KQkJRGlhbW9uZCBTeXN0ZW1zIENvcnAuCiswMDA2RDUgICAgIChiYXNlIDE2KQkJRGlhbW9uZCBTeXN0ZW1zIENvcnAuCisJCQkJODQzMC1EIENlbnRyYWwgQXZlLgorCQkJCU5ld2FyayBDQSA5NDU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRDYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNkQ2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUQ3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDZENyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1EOCAgIChoZXgpCQlNYXBsZSBPcHRpY2FsIFN5c3RlbXMKKzAwMDZEOCAgICAgKGJhc2UgMTYpCQlNYXBsZSBPcHRpY2FsIFN5c3RlbXMKKwkJCQkzMjAwIE5vcnRoIEZpcnN0IFN0LgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1EOSAgIChoZXgpCQlJUE0tTmV0IFMucC5BLgorMDAwNkQ5ICAgICAoYmFzZSAxNikJCUlQTS1OZXQgUy5wLkEuCisJCQkJVmlhIFJlbW8gRGUgRmVvCisJCQkJODAwMjIgQXJ6YW5vIChOYXBsZXMpCisJCQkJSVRBTFkKKworMDAtMDYtREEgICAoaGV4KQkJSVRSQU4gQ29tbXVuaWNhdGlvbnMgTHRkLgorMDAwNkRBICAgICAoYmFzZSAxNikJCUlUUkFOIENvbW11bmljYXRpb25zIEx0ZC4KKwkJCQkxIEF6cmllbGkgQ2VudGVyLAorCQkJCVRoZSByb3VuZCBidWlsZGluZworCQkJCVRlbCBBdml2IDY3MDIxICAgNjcwMjEKKwkJCQlJU1JBRUwKKworMDAtMDYtREIgICAoaGV4KQkJSUNISVBTIENvLiwgTHRkLgorMDAwNkRCICAgICAoYmFzZSAxNikJCUlDSElQUyBDby4sIEx0ZC4KKwkJCQkzRiwgU2FtamVvbiBCbGRnLiwgMjM2LTMKKwkJCQlOb25oeXVuLURvbmcsIEthbmduYW0ta3UKKwkJCQlTZW91bC1DaXR5ICAxMzUtMDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtREMgICAoaGV4KQkJU3lhYmFzIFRlY2hub2xvZ3kgKEFtcXVlc3QpCiswMDA2REMgICAgIChiYXNlIDE2KQkJU3lhYmFzIFRlY2hub2xvZ3kgKEFtcXVlc3QpCisJCQkJNDcyNyBQYXNlbyBQYWRyZSBQYXJrd2F5CisJCQkJRnJlbW9udCBDQSA5NDU1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtREQgICAoaGV4KQkJQVQgJiBUIExhYm9yYXRvcmllcyAtIENhbWJyaWRnZSBMdGQKKzAwMDZERCAgICAgKGJhc2UgMTYpCQlBVCAmIFQgTGFib3JhdG9yaWVzIC0gQ2FtYnJpZGdlIEx0ZAorCQkJCTI0YSBUcnVtcGluZ3RvbiBTdHJlZXQKKwkJCQlDYW1icmlkZ2UsIENCMiAxUUEKKwkJCQlFTkdMQU5EIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA2LURFICAgKGhleCkJCUZsYXNoIFRlY2hub2xvZ3kKKzAwMDZERSAgICAgKGJhc2UgMTYpCQlGbGFzaCBUZWNobm9sb2d5CisJCQkJUC5PLiBCb3ggNjgxNTA5CisJCQkJRnJhbmtsaW4gVE4gMzcwNjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LURGICAgKGhleCkJCUFJRE9OSUMgQ29ycG9yYXRpb24KKzAwMDZERiAgICAgKGJhc2UgMTYpCQlBSURPTklDIENvcnBvcmF0aW9uCisJCQkJMi03LTEwIE90c3VrYSwgQnVua3lvLWt1LAorCQkJCVRva3lvLCAxMTItMDAxMgorCQkJCUpBUEFOCisKKzAwLTA2LUUwICAgKGhleCkJCU1BVCBDby4sIEx0ZC4KKzAwMDZFMCAgICAgKGJhc2UgMTYpCQlNQVQgQ28uLCBMdGQuCisJCQkJODY0LTMgS3dhbnlhbmctZG9uZworCQkJCURvbmdhbi1ndSwgQW55YW5nLXNpCisJCQkJS3l1bmdnaS1kbyAgNDMxLTA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi1FMSAgIChoZXgpCQlUZWNobm8gVHJhZGUgcy5hCiswMDA2RTEgICAgIChiYXNlIDE2KQkJVGVjaG5vIFRyYWRlIHMuYQorCQkJCTczMmEgQ2hhdXNzZWUgZGUgQnJ1eGVsbGVzCisJCQkJQi0xNDEwIFdhdGVybG9vCisJCQkJQkVMR0lVTQorCiswMC0wNi1FMiAgIChoZXgpCQlDZWVtYXggVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDZFMiAgICAgKGJhc2UgMTYpCQlDZWVtYXggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk1Zi03LCA3MzYsIENodW5nIENoZW5nIFJkLiwKKwkJCQlDaHVuZyBIbyBUYWlwZWkgSHNpZW4sCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi1FMyAgIChoZXgpCQlRdWFudGl0YXRpdmUgSW1hZ2luZyBDb3Jwb3JhdGlvbgorMDAwNkUzICAgICAoYmFzZSAxNikJCVF1YW50aXRhdGl2ZSBJbWFnaW5nIENvcnBvcmF0aW9uCisJCQkJODA4MSBMb3VnaGVlZCBIaWdod2F5CisJCQkJQnVybmFieSwgQkMKKwkJCQlDQU5BREEKKworMDAtMDYtRTQgICAoaGV4KQkJQ2l0ZWwgVGVjaG5vbG9naWVzIEx0ZC4KKzAwMDZFNCAgICAgKGJhc2UgMTYpCQlDaXRlbCBUZWNobm9sb2dpZXMgTHRkLgorCQkJCVdoZWF0Y3JvZnQgQnVzaW5lc3MgUGFyaworCQkJCUxhbmRtZXJlIExhbmUsIEVkd2FsdG9uCisJCQkJTm90dGlnaGFtICBORzEyIDRERworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA2LUU1ICAgKGhleCkJCUZ1amlhbiBOZXdsYW5kIENvbXB1dGVyIEx0ZC4gQ28uCiswMDA2RTUgICAgIChiYXNlIDE2KQkJRnVqaWFuIE5ld2xhbmQgQ29tcHV0ZXIgTHRkLiBDby4KKwkJCQkxNDFGIFN1bnNoaW5lIEhvbGlkYXkgSG90ZWwKKwkJCQlOby4gMjYgR2FvIFFpYW8gUmQuLCBXdVlpIFNxdWFyZQorCQkJCUZ1emhvdSBGdWppYW4gIDM1MDAwNQorCQkJCUNISU5BCisKKzAwLTA2LUU2ICAgKGhleCkJCURvbmdZYW5nIFRlbGVjb20gQ28uLCBMdGQuCiswMDA2RTYgICAgIChiYXNlIDE2KQkJRG9uZ1lhbmcgVGVsZWNvbSBDby4sIEx0ZC4KKwkJCQk2NDItNyBEZXVuZyBDaG9uLURvbmcsIEthbmdTZW8tR3UKKwkJCQlTZW91bCAxNTctODQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LUU3ICAgKGhleCkJCUJpdCBCbGl0eiBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDA2RTcgICAgIChiYXNlIDE2KQkJQml0IEJsaXR6IENvbW11bmljYXRpb25zIEluYy4KKwkJCQk4MzAgSGlsbHZpZXcgQ3QuLCAjMjkwCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUU4ICAgKGhleCkJCU9wdGljYWwgTmV0d29yayBUZXN0aW5nLCBJbmMuCiswMDA2RTggICAgIChiYXNlIDE2KQkJT3B0aWNhbCBOZXR3b3JrIFRlc3RpbmcsIEluYy4KKwkJCQk1NSBNZXJjaGFudCBTdC4KKwkJCQkyOHRoIEZsb29yCisJCQkJSG9ub2x1bHUgSEkgOTY4MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUU5ICAgKGhleCkJCUludGltZSBDb3JwLgorMDAwNkU5ICAgICAoYmFzZSAxNikJCUludGltZSBDb3JwLgorCQkJCTMyNC00LCBZYW5namFlLWRvbmcsIDJGCisJCQkJU2VvY2hvLWt1LCBTZW91bCwgMTM3LTEzMCwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtRUEgICAoaGV4KQkJRUxaRVQ4MCBNaWtyb2NvbXB1dGVyIEdtYkgmQ28uIEtHCiswMDA2RUEgICAgIChiYXNlIDE2KQkJRUxaRVQ4MCBNaWtyb2NvbXB1dGVyIEdtYkgmQ28uIEtHCisJCQkJVGhlYXRlcnBsYXR6IDkKKwkJCQlELTUyMDYyIEFhY2hlbgorCQkJCUdFUk1BTlkKKworMDAtMDYtRUIgICAoaGV4KQkJR2xvYmFsIERhdGEKKzAwMDZFQiAgICAgKGJhc2UgMTYpCQlHbG9iYWwgRGF0YQorCQkJCTIyNTAgT2Jpc3BvIEF2ZSAjMTA1CisJCQkJU2lnbmFsIEhpbGwgQ0EgOTA4MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUVDICAgKGhleCkJCUhhcnJpcyBDb3Jwb3JhdGlvbgorMDAwNkVDICAgICAoYmFzZSAxNikJCUhhcnJpcyBDb3Jwb3JhdGlvbgorCQkJCTEwMjUgV2VzdCBOQVNBIEJsdmQKKwkJCQlNUyBELTIxQgorCQkJCU1lbGJvdXJuZSBGTCAzMjkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRUQgICAoaGV4KQkJSW5hcmEgTmV0d29ya3MKKzAwMDZFRCAgICAgKGJhc2UgMTYpCQlJbmFyYSBOZXR3b3JrcworCQkJCTMwMzEgVGlzY2ggV2F5LAorCQkJCVN1aXRlIDEwMAorCQkJCVNhbiBKb3NlIENBIDk1MTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1FRSAgIChoZXgpCQlTaGVueWFuZyBOZXUtZXJhIEluZm9ybWF0aW9uICYgVGVjaG5vbG9neSBTdG9jayBDby4sIEx0ZAorMDAwNkVFICAgICAoYmFzZSAxNikJCVNoZW55YW5nIE5ldS1lcmEgSW5mb3JtYXRpb24gJiBUZWNobm9sb2d5IFN0b2NrIENvLiwgTHRkCisJCQkJOC9GLCB0aGUgMjFzdCBDZW50dXJ5IEJ1aWxkaW5nLAorCQkJCU5vLiAxIFNoaWppIFJvYWQsIEh1bm5hbiBJbmR1c3RyaWFsIERpc3QKKwkJCQlEdmxwbW50IFpvbmUgU2hlbnlhbmcsIAorCQkJCUNISU5BCisKKzAwLTA2LUVGICAgKGhleCkJCU1heHhhbiBTeXN0ZW1zLCBJbmMuCiswMDA2RUYgICAgIChiYXNlIDE2KQkJTWF4eGFuIFN5c3RlbXMsIEluYy4KKwkJCQkxMDcgQm9uYXZlbnR1cmEgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRjAgICAoaGV4KQkJRGlnZW8sIEluYy4KKzAwMDZGMCAgICAgKGJhc2UgMTYpCQlEaWdlbywgSW5jLgorCQkJCTg4MTUgMTIybmQgQXZlLiwgTkUKKwkJCQlLaXJrbGFuZCBXQSA5ODAzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRjEgICAoaGV4KQkJT3B0aWxsaW9uCiswMDA2RjEgICAgIChiYXNlIDE2KQkJT3B0aWxsaW9uCisJCQkJS3JvbmJvcmdzZ3IuOQorCQkJCVNFLTE2NDg3IEtpc3RhCisJCQkJU1dFREVOCisKKzAwLTA2LUYyICAgKGhleCkJCVBsYXR5cyBDb21tdW5pY2F0aW9ucworMDAwNkYyICAgICAoYmFzZSAxNikJCVBsYXR5cyBDb21tdW5pY2F0aW9ucworCQkJCTMxNTBBIENvcm9uYWRvIERyLgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1GMyAgIChoZXgpCQlBY2NlTGlnaHQgTmV0d29ya3MKKzAwMDZGMyAgICAgKGJhc2UgMTYpCQlBY2NlTGlnaHQgTmV0d29ya3MKKwkJCQk3MCBBYmVsZSBSb2FkLCBCdWlsZGluZyAxMjAwCisJCQkJUGl0dHNidXJnaCBQQSAxNTAxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRjQgICAoaGV4KQkJUHJpbWUgRWxlY3Ryb25pY3MgJiBTYXRlbGxpdGljcyBJbmMuCiswMDA2RjQgICAgIChiYXNlIDE2KQkJUHJpbWUgRWxlY3Ryb25pY3MgJiBTYXRlbGxpdGljcyBJbmMuCisJCQkJNjksIFR1bmctWXVhbiBSZC4sCisJCQkJQ2h1bmctTGkgQ2l0eSwgVGFveXVhbgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtRjUgICAoaGV4KQkJQUxQUyBDbywuIEx0ZC4KKzAwMDZGNSAgICAgKGJhc2UgMTYpCQlBTFBTIENvLC4gTHRkLgorCQkJCTYtMy0zNiBGdXJ1a2F3YW5ha2F6YXRvLAorCQkJCU9zYWtpIE1peWFnaS1wcmVmIDk4OS02MTgxCisJCQkJSkFQQU4KKworMDAtMDYtRjYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwNkY2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRjcgICAoaGV4KQkJQUxQUyBFbGVjdHJpYyBDbywuIEx0ZC4KKzAwMDZGNyAgICAgKGJhc2UgMTYpCQlBTFBTIEVsZWN0cmljIENvLC4gTHRkLgorCQkJCTYtMy0zNiBGdXJ1a2F3YW5ha2F6YXRvLAorCQkJCU9zYWtpIE1peWFnaS1wcmVmIDk4OS02MTgxCisJCQkJSkFQQU4KKworMDAtMDYtRjggICAoaGV4KQkJQ1BVIFRlY2hub2xvZ3ksIEluYy4KKzAwMDZGOCAgICAgKGJhc2UgMTYpCQlDUFUgVGVjaG5vbG9neSwgSW5jLgorCQkJCTU3MzEgVy4gTGFzIFBvc2l0YXMgQmx2ZC4KKwkJCQlQbGVhc2FudG9uIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1GOSAgIChoZXgpCQlNaXRzdWkgWm9zZW4gU3lzdGVtcyBSZXNlYXJjaCBJbmMuCiswMDA2RjkgICAgIChiYXNlIDE2KQkJTWl0c3VpIFpvc2VuIFN5c3RlbXMgUmVzZWFyY2ggSW5jLgorCQkJCTExLTEsIFVubyAxLWNob21lCisJCQkJVGFtYW5vLXNoaSwgT2theWFtYQorCQkJCTcwNi0wMDExCisJCQkJSkFQQU4KKworMDAtMDYtRkEgICAoaGV4KQkJSVAgU1FVQVJFIENvLCBMdGQuCiswMDA2RkEgICAgIChiYXNlIDE2KQkJSVAgU1FVQVJFIENvLCBMdGQuCisJCQkJMS05LTExLCBIYWthdGFla2loaWdhc2hpLAorCQkJCUhha2F0YS1rdSwgRnVrdW9rYS1zaGksCisJCQkJRnVrdW9rYSAgODEyLTAwMTMKKwkJCQlKQVBBTgorCiswMC0wNi1GQiAgIChoZXgpCQlIaXRhY2hpIFByaW50aW5nIFNvbHV0aW9ucywgTHRkLgorMDAwNkZCICAgICAoYmFzZSAxNikJCUhpdGFjaGkgUHJpbnRpbmcgU29sdXRpb25zLCBMdGQuCisJCQkJMTA2MCwgVGFrZWRhIEhpdGFjaGluYWthLUNpdHkKKwkJCQlJYmFyYWtpLVByZWYuCisJCQkJMzEyLTg1MDIKKwkJCQlKQVBBTgorCiswMC0wNi1GQyAgIChoZXgpCQlGbmV0IENvLiwgTHRkLgorMDAwNkZDICAgICAoYmFzZSAxNikJCUZuZXQgQ28uLCBMdGQuCisJCQkJS0ZTQiBCbGRnLiAxMHRoIEYuIDE2LTIKKwkJCQlZb2lkby1Eb25nLCBZb3VuZ2RldW5ncG8ta3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi1GRCAgIChoZXgpCQlDb21qZXQgSW5mb3JtYXRpb24gU3lzdGVtcyBDb3JwLgorMDAwNkZEICAgICAoYmFzZSAxNikJCUNvbWpldCBJbmZvcm1hdGlvbiBTeXN0ZW1zIENvcnAuCisJCQkJN0ZsLiwgTm8uIDEwMywgRmVuIExpYW8gU3RyZWV0CisJCQkJTmVpLUh1LCBUYWlwZWkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA2LUZFICAgKGhleCkJCUFtYnJhZG8sIEluYworMDAwNkZFICAgICAoYmFzZSAxNikJCUFtYnJhZG8sIEluYworCQkJCTExMzAxIFcuIFByZXNpZGVudCBHZW9yZ2UgQnVzaCBGd3kuCisJCQkJU3VpdGUxNTAKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1GRiAgIChoZXgpCQlTaGViYSBTeXN0ZW1zIENvLiwgTHRkLgorMDAwNkZGICAgICAoYmFzZSAxNikJCVNoZWJhIFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJNXRoIEZsLiBIeXVuZGFpIEphZCBCL0QKKwkJCQk0NjAtMSBTZW9uZ25hZS1Eb25nLCBLYW5nZG9uZy1LdSwKKwkJCQlTZW91bCAgMTM0LTAzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0wMCAgIChoZXgpCQlaZXR0YW1lZGlhIEtvcmVhCiswMDA3MDAgICAgIChiYXNlIDE2KQkJWmV0dGFtZWRpYSBLb3JlYQorCQkJCVN1aXRlIDEwMDgsIEt1bWthbmcgVmVudHVyZXRlbCwgMTEwOAorCQkJCUJpc2FuZG9uZywgRG9uZ2FuZ3UsIEFueWFuZ3NpCisJCQkJS3lvdW5nZ2lkbywgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0wMSAgIChoZXgpCQlSQUNBTC1EQVRBQ09NCiswMDA3MDEgICAgIChiYXNlIDE2KQkJUkFDQUwtREFUQUNPTQorCQkJCUxBTiBJTlRFUk5FVFdPUktJTkcgRElWSVNJT04KKwkJCQkxNTUgU1dBTlNPTiBST0FECisJCQkJQk9YQk9ST1VHSCBNQSAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMDIgICAoaGV4KQkJVmFyaWFuIE1lZGljYWwgU3lzdGVtcworMDAwNzAyICAgICAoYmFzZSAxNikJCVZhcmlhbiBNZWRpY2FsIFN5c3RlbXMKKwkJCQkyNTk5IEdhcmNpYSBBdmVudWUKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy0wMyAgIChoZXgpCQlDU0VFIFRyYW5zcG9ydAorMDAwNzAzICAgICAoYmFzZSAxNikJCUNTRUUgVHJhbnNwb3J0CisJCQkJNCwgYXZlbnVlIGR1IENBTkFEQQorCQkJCUIuUC4gMjQzLTkxOTQ0IExlcyBVbGlzCisJCQkJRlJBTkNFCisKKzAwLTA3LTA0ICAgKGhleCkJCUFMUFMgRWxlY3RyaWMgQ28sLiBMdGQuCiswMDA3MDQgICAgIChiYXNlIDE2KQkJQUxQUyBFbGVjdHJpYyBDbywuIEx0ZC4KKwkJCQk2LTMtMzYgRnVydWthd2FuYWthemF0bywKKwkJCQlPc2FraSBNaXlhZ2ktcHJlZiA5ODktNjE4MQorCQkJCUpBUEFOCisKKzAwLTA3LTA1ICAgKGhleCkJCUVuZHJlc3MgJiBIYXVzZXIgR21iSCAmIENvCiswMDA3MDUgICAgIChiYXNlIDE2KQkJRW5kcmVzcyAmIEhhdXNlciBHbWJIICYgQ28KKwkJCQlIYXVwdHN0cmFiZSAxIC0gUG9zdGZhY2ggMTI2MQorCQkJCUQtNzk2ODkgTWF1bGJlcmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTA2ICAgKGhleCkJCVNhbnJpdHogQ29ycG9yYXRpb24KKzAwMDcwNiAgICAgKGJhc2UgMTYpCQlTYW5yaXR6IENvcnBvcmF0aW9uCisJCQkJMTk5LTEsIFNoaW1vb2lidWt1cm8sCisJCQkJS2F3YWdvZS1jaXR5LCBTYWl0YW1hCisJCQkJMzUwLTA4NDgKKwkJCQlKQVBBTgorCiswMC0wNy0wNyAgIChoZXgpCQlJbnRlcmFsaWEgSW5jLgorMDAwNzA3ICAgICAoYmFzZSAxNikJCUludGVyYWxpYSBJbmMuCisJCQkJNDExMC03OXRoIFN0cmVldCBOLlcuCisJCQkJQ2FsZ2FyeSwgQWxiZXJ0YQorCQkJCVQzQiA1QzIKKwkJCQlDQU5BREEKKworMDAtMDctMDggICAoaGV4KQkJQml0cmFnZSBJbmMuCiswMDA3MDggICAgIChiYXNlIDE2KQkJQml0cmFnZSBJbmMuCisJCQkJMTAwIFNvdXRocGFyayBCbHZkLgorCQkJCVN1aXRlIDQwMAorCQkJCVNhaW50IEF1Z3VzdGluZSBGTCAzMjA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMDkgICAoaGV4KQkJV2VzdGVyc3RyYW5kIFVyZmFicmlrIEFCCiswMDA3MDkgICAgIChiYXNlIDE2KQkJV2VzdGVyc3RyYW5kIFVyZmFicmlrIEFCCisJCQkJQm94IDEzMworCQkJCVNFLTU0NSAyMyBUb3JlYm9kYQorCQkJCVNXRURFTgorCiswMC0wNy0wQSAgIChoZXgpCQlVbmljb20gQXV0b21hdGlvbiBDby4sIEx0ZC4KKzAwMDcwQSAgICAgKGJhc2UgMTYpCQlVbmljb20gQXV0b21hdGlvbiBDby4sIEx0ZC4KKwkJCQlTaWxrIEJsZGcgMy0zMS0xMQorCQkJCUhvbmNobywgTmFrYW5vLWt1LAorCQkJCVRva3lvICAxNjQtMDAxMgorCQkJCUpBUEFOCisKKzAwLTA3LTBCICAgKGhleCkJCU5vdmFiYXNlIFNHUFMsIFNBCiswMDA3MEIgICAgIChiYXNlIDE2KQkJTm92YWJhc2UgU0dQUywgU0EKKwkJCQlBdi4gRCBKb2FvIElJLCBMb3RlIDEuMDMuMi4zCisJCQkJUGFycXVlIGRhcyBOYWNvZXMKKwkJCQlMaXNib2EgIDE5OTgtMDMxCisJCQkJUE9SVFVHQUwKKworMDAtMDctMEMgICAoaGV4KQkJU1ZBLUludHJ1c2lvbi5jb20gQ28uIEx0ZC4KKzAwMDcwQyAgICAgKGJhc2UgMTYpCQlTVkEtSW50cnVzaW9uLmNvbSBDby4gTHRkLgorCQkJCVRoZSA0dGggRmxvb3IsIE5vLiAyOCBCdWlsZGluZworCQkJCTE0MCBUaWFuIExpbiBSb2FkCisJCQkJU2hhbmdoYWkgIDIwMjMzCisJCQkJQ0hJTkEKKworMDAtMDctMEQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcyBJbmMuCiswMDA3MEQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcyBJbmMuCisJCQkJU0otTS8xCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy0wRSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKzAwMDcwRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKwkJCQlTSi1NLzEKKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTBGICAgKGhleCkJCUZ1amFudCwgSW5jLgorMDAwNzBGICAgICAoYmFzZSAxNikJCUZ1amFudCwgSW5jLgorCQkJCTYzMDUgQ2FycGludGVyaWEgQXZlbnVlCisJCQkJU3VpdGUgMzAwCisJCQkJQ2FycGludGVyaWEgQ0EgOTMwMTMtMjkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMTAgICAoaGV4KQkJQWRheCwgSW5jLgorMDAwNzEwICAgICAoYmFzZSAxNikJCUFkYXgsIEluYy4KKwkJCQk2MTQgQmFuY3JvZnQgV2F5CisJCQkJQmVya2VsZXkgQ0EgOTQ1NTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTExICAgKGhleCkJCUFjdGVybmEKKzAwMDcxMSAgICAgKGJhc2UgMTYpCQlBY3Rlcm5hCisJCQkJNjYyMCBOZXR3b3JrIFdheQorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMTIgICAoaGV4KQkJSkFMIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kKKzAwMDcxMiAgICAgKGJhc2UgMTYpCQlKQUwgSW5mb3JtYXRpb24gVGVjaG5vbG9neQorCQkJCU5ldHdvcmsgU29sdXRpb24gRGVwLiBKQUwtVGFtYWNoaSBCbGRnLgorCQkJCTE1LTEsIFNoaWJ1cmEsIDQtY2hvbWUsIE1pbmF0by1rdSwKKwkJCQlUb2t5byAgCisJCQkJSkFQQU4KKworMDAtMDctMTMgICAoaGV4KQkJSVAgT25lLCBJbmMuCiswMDA3MTMgICAgIChiYXNlIDE2KQkJSVAgT25lLCBJbmMuCisJCQkJU2FtbWkgQmxkZy4sIDEwMDQKKwkJCQlEYWVjaGktZG9uZyBHYW5nbmFtLWd1LAorCQkJCVNlb3VsLCAgMTM1LTA4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0xNCAgIChoZXgpCQlCcmlnaHRjb20KKzAwMDcxNCAgICAgKGJhc2UgMTYpCQlCcmlnaHRjb20KKwkJCQk2IEhhbmVjaG9zaGV0IFN0LiwKKwkJCQlUZWwgQXZpdiA2OTcxMAorCQkJCUlTUkFFTAorCiswMC0wNy0xNSAgIChoZXgpCQlHZW5lcmFsIFJlc2VhcmNoIG9mIEVsZWN0cm9uaWNzLCBJbmMuCiswMDA3MTUgICAgIChiYXNlIDE2KQkJR2VuZXJhbCBSZXNlYXJjaCBvZiBFbGVjdHJvbmljcywgSW5jLgorCQkJCTMtMTItMTcsIE1pdGEsIE1pbmF0by1rdQorCQkJCVRva3lvICAxMDgtMDA3MworCQkJCUpBUEFOCisKKzAwLTA3LTE2ICAgKGhleCkJCUogJiBTIE1hcmluZSBMdGQuCiswMDA3MTYgICAgIChiYXNlIDE2KQkJSiAmIFMgTWFyaW5lIEx0ZC4KKwkJCQlQb3R0aW5ndG9uIEJ1c2luZXNzIFBhcmsKKwkJCQlCYXJuc3RhcGxlCisJCQkJRGV2b24gIEVYMzEgMUxZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDctMTcgICAoaGV4KQkJV2llbGFuZCBFbGVjdHJpYyBHbWJICiswMDA3MTcgICAgIChiYXNlIDE2KQkJV2llbGFuZCBFbGVjdHJpYyBHbWJICisJCQkJQnJlbm5lcnN0ci4gMTAtMTQKKwkJCQlELTk2MDUyIEJhbWJlcmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTE4ICAgKGhleCkJCWlDYW5UZWsgQ28uLCBMdGQuCiswMDA3MTggICAgIChiYXNlIDE2KQkJaUNhblRlayBDby4sIEx0ZC4KKwkJCQkybmQgRmwuIERLIFBsYXphIElJLCAzNzYtNSwKKwkJCQlLZXVtZ29rLWRvbmcsIEJ1bWRhZy1rdSwKKwkJCQlTdW5nbWFuLXNpLCBLeW9uZ2dpLWRvICA0NjMtODA1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTE5ICAgKGhleCkJCU1vYmlpcyBDby4sIEx0ZC4KKzAwMDcxOSAgICAgKGJhc2UgMTYpCQlNb2JpaXMgQ28uLCBMdGQuCisJCQkJMjc3LTEsIFNoaW5od2EgQmxkZy4gNEYKKwkJCQlZYW5namFlLWRvbmcsIFNlb2Noby1ndSwKKwkJCQlTZW91bCwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0xQSAgIChoZXgpCQlGaW5lZGlnaXRhbCBJbmMuCiswMDA3MUEgICAgIChiYXNlIDE2KQkJRmluZWRpZ2l0YWwgSW5jLgorCQkJCTR0aCBGbC4gQm9taSBCbGRnLiwgNjYxIERldW5nY2hvbiAzIERvbmcKKwkJCQlLYW5nc2VvIGt1LAorCQkJCVNlb3VsICAxNTctMDMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTFCICAgKGhleCkJCUNEViBBbWVyaWNhcyBMdGQKKzAwMDcxQiAgICAgKGJhc2UgMTYpCQlDRFYgQW1lcmljYXMgTHRkCisJCQkJMTY0NS1BIEF1dG9yb3V0ZSBMYXZhbCBXZXN0CisJCQkJTGF2YWwgUXVlYmVjIEg3TCAzVzMKKwkJCQlDQU5BREEKKworMDAtMDctMUMgICAoaGV4KQkJQVQmVCBGaXhlZCBXaXJlbGVzcyBTZXJ2aWNlcworMDAwNzFDICAgICAoYmFzZSAxNikJCUFUJlQgRml4ZWQgV2lyZWxlc3MgU2VydmljZXMKKwkJCQlQLk8uIEJveCA5MDc1OQorCQkJCVJlZG1vbmQgV0EgOTgwNzMtOTc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMUQgICAoaGV4KQkJU2F0ZWxzYSBTaXN0ZW1hcyBZIEFwbGljYWNpb25lcyBEZSBUZWxlY29tdW5pY2FjaW9uZXMsIFMuQS4KKzAwMDcxRCAgICAgKGJhc2UgMTYpCQlTYXRlbHNhIFNpc3RlbWFzIFkgQXBsaWNhY2lvbmVzIERlIFRlbGVjb211bmljYWNpb25lcywgUy5BLgorCQkJCWMvLCBBbGVqYW5kcm8gTW9yYW4sIDU2CisJCQkJMjgwMjUtTWFkcmlkCisJCQkJU1BBSU4KKworMDAtMDctMUUgICAoaGV4KQkJVHJpLU0gRW5naW5lZXJpbmcgLyBOdXBhayBEZXYuIENvcnAuCiswMDA3MUUgICAgIChiYXNlIDE2KQkJVHJpLU0gRW5naW5lZXJpbmcgLyBOdXBhayBEZXYuIENvcnAuCisJCQkJNi0xMzAxIEtldGNoIENvdXJ0CisJCQkJQ29xdWl0Y2F1dCBCQworCQkJCVYzSyA2WDcKKwkJCQlDQU5BREEKKworMDAtMDctMUYgICAoaGV4KQkJRXVyb3BlYW4gU3lzdGVtcyBJbnRlZ3JhdGlvbgorMDAwNzFGICAgICAoYmFzZSAxNikJCUV1cm9wZWFuIFN5c3RlbXMgSW50ZWdyYXRpb24KKwkJCQk0NTUgUHJvbWVuYWRlIERlcyBBbmdsYXMKKwkJCQlGLTA2MjAwIE5pY2UKKwkJCQlGUkFOQ0UKKworMDAtMDctMjAgICAoaGV4KQkJVHJ1dHpzY2hsZXIgR21iSCAmIENvLiBLRworMDAwNzIwICAgICAoYmFzZSAxNikJCVRydXR6c2NobGVyIEdtYkggJiBDby4gS0cKKwkJCQlEdXZlbnN0ci4gODItOTIKKwkJCQk0MTE5OSBNb25jaGVuZ2xhZGJhY2gKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTIxICAgKGhleCkJCUZvcm1hYyBFbGVrdHJvbmlrIEdtYkgKKzAwMDcyMSAgICAgKGJhc2UgMTYpCQlGb3JtYWMgRWxla3Ryb25payBHbWJICisJCQkJRG9mc3RyLiAzMworCQkJCTE1ODI3IEJsYW5rZW50ZWxkZQorCQkJCUdFUk1BTlkKKworMDAtMDctMjIgICAoaGV4KQkJVGhlIE5pZWxzZW4gQ29tcGFueQorMDAwNzIyICAgICAoYmFzZSAxNikJCVRoZSBOaWVsc2VuIENvbXBhbnkKKwkJCQk1MDEgQnJvb2tlciBDcmVlayBCbHZkLgorCQkJCU9sZHNtYXIgRkwgMzQ2NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTIzICAgKGhleCkJCUVMQ09OIFN5c3RlbXRlY2huaWsgR21iSAorMDAwNzIzICAgICAoYmFzZSAxNikJCUVMQ09OIFN5c3RlbXRlY2huaWsgR21iSAorCQkJCU9iZXJlIEhhdXB0c3RyYXNzZSAxMAorCQkJCUQtMDkyMzIgSGFydG1hbm5zZG9yZgorCQkJCUdFUk1BTlkKKworMDAtMDctMjQgICAoaGV4KQkJVGVsZW1heCBDby4sIEx0ZC4KKzAwMDcyNCAgICAgKGJhc2UgMTYpCQlUZWxlbWF4IENvLiwgTHRkLgorCQkJCTZ0aCBGbC4gU3VuZ3dvbyBCL0QsIDEwOTktMQorCQkJCVNhbmJvbi1Eb25nLCBLdW5wby1zaGkKKwkJCQlLeXVuZ2tpLURvLCAgNDM1LTA0MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0yNSAgIChoZXgpCQlCZW1hdGVjaCBJbnRlcm5hdGlvbmFsIENvcnAuCiswMDA3MjUgICAgIChiYXNlIDE2KQkJQmVtYXRlY2ggSW50ZXJuYXRpb25hbCBDb3JwLgorCQkJCTU4OTUgU2hpbG9oIFJvYWQKKwkJCQlTdWl0ZSAxMTEKKwkJCQlBbHBoYXJldHRhIEdBIDMwMDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy0yNiAgIChoZXgpCQlTaGVuemhlbiBHb25namluIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwNzI2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEdvbmdqaW4gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJQTIxMS1BMjEzICYgQjIwMS1CMjEwLCAyRiwgQmFpeWluZyBCdWlsZGluZywgMTAxOSMsIE5hbmhhaSBSRCwgU2hla291IFBhcnR5LCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDY3CisJCQkJQ0hJTkEKKworMDAtMDctMjcgICAoaGV4KQkJWmkgQ29ycG9yYXRpb24gKEhLKSBMdGQuCiswMDA3MjcgICAgIChiYXNlIDE2KQkJWmkgQ29ycG9yYXRpb24gKEhLKSBMdGQuCisJCQkJMzAvRiwgQ2hpbmEgUmVzb3VyY2VzIEJ1aWxkaW5nCisJCQkJMjYgSGFyYm91ciBSb2FkLCBXYWljaGFpLAorCQkJCUhPTkcgS09ORworCiswMC0wNy0yOCAgIChoZXgpCQlOZW8gVGVsZWNvbQorMDAwNzI4ICAgICAoYmFzZSAxNikJCU5lbyBUZWxlY29tCisJCQkJRWFzdCBCdWlsZGluZyA5RiwgMVQKKwkJCQlWZW50dXJlIFRvd2VyLCA3OCBHYXJhZy1kb25nCisJCQkJU29uZ3BhLWd1LCBTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTI5ICAgKGhleCkJCUtpc3RsZXIgSW5zdHJ1bWVudGUgQUcKKzAwMDcyOSAgICAgKGJhc2UgMTYpCQlLaXN0bGVyIEluc3RydW1lbnRlIEFHCisJCQkJRXVsYWNoc3RyYXNzZSAyMgorCQkJCUNILTg0MDggV2ludGVydGh1cgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA3LTJBICAgKGhleCkJCUlubm92YW5jZSBOZXR3b3JrcworMDAwNzJBICAgICAoYmFzZSAxNikJCUlubm92YW5jZSBOZXR3b3JrcworCQkJCTE5IEZhaXJtb250IEF2ZW51ZQorCQkJCU90dGF3YSwgT250YXJpbyBLMVkgMVg0CisJCQkJQ0FOQURBCisKKzAwLTA3LTJCICAgKGhleCkJCUp1bmcgTXl1bmcgVGVsZWNvbSBDby4sIEx0ZC4KKzAwMDcyQiAgICAgKGJhc2UgMTYpCQlKdW5nIE15dW5nIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJNUZsIFNpbGxhIFRlY2hub3ZpbC4sIDM5LTMgRGFuZy1Eb25nCisJCQkJS29vbnBvLXNoaSwgS3l1bmcgS2ktRG8KKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctMkMgICAoaGV4KQkJRmFicmljb20KKzAwMDcyQyAgICAgKGJhc2UgMTYpCQlGYWJyaWNvbQorCQkJCVJ1ZSBHYXR0aSBEZSBHYW1vbmQgMjU0CisJCQkJMTE5MCBCcnV4ZWxsZXMKKwkJCQlCRUxHSVVNCisKKzAwLTA3LTJEICAgKGhleCkJCUNOU3lzdGVtcworMDAwNzJEICAgICAoYmFzZSAxNikJCUNOU3lzdGVtcworCQkJCUJhdW1raXJjaGVyc3RyYXNzZSAxCisJCQkJQS04MDIwIEdyYXoKKwkJCQlBVVNUUklBCisKKzAwLTA3LTJFICAgKGhleCkJCU5vcnRoIE5vZGUgQUIKKzAwMDcyRSAgICAgKGJhc2UgMTYpCQlOb3J0aCBOb2RlIEFCCisJCQkJU2tlcHBzbG9yb24gNDIKKwkJCQkxMTMwIFN0b2NraG9sbQorCQkJCVNXRURFTgorCiswMC0wNy0yRiAgIChoZXgpCQlJbnRyYW5zYSwgSW5jLgorMDAwNzJGICAgICAoYmFzZSAxNikJCUludHJhbnNhLCBJbmMuCisJCQkJMjY3MCBaYW5rZXIKKwkJCQlTdWl0ZSAyMDAKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMzAgICAoaGV4KQkJSHV0Y2hpc29uIE9QVEVMIFRlbGVjb20gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDczMCAgICAgKGJhc2UgMTYpCQlIdXRjaGlzb24gT1BURUwgVGVsZWNvbSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLiAyOCBYaW53YWkgU3RyZWV0CisJCQkJQmVpamluZyAgCisJCQkJQ0hJTkEKKworMDAtMDctMzEgICAoaGV4KQkJT3BoaXItU3Bpcmljb24gSW5jCiswMDA3MzEgICAgIChiYXNlIDE2KQkJT3BoaXItU3Bpcmljb24gSW5jCisJCQkJNjAgVyAxMDAwIE4KKwkJCQlMb2dhbiBVVCA4NDMyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMzIgICAoaGV4KQkJQUFFT04gVGVjaG5vbG9neSBJbmMuCiswMDA3MzIgICAgIChiYXNlIDE2KQkJQUFFT04gVGVjaG5vbG9neSBJbmMuCisJCQkJNUYsICMxMzUsIExhbmUgMjM1LCBQYW8gQ2hpYW8gUm9hZAorCQkJCUhzaW4tVGllbiBDaXR5CisJCQkJVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA3LTMzICAgKGhleCkJCURBTkNPTlRST0wgRW5naW5lZXJpbmcKKzAwMDczMyAgICAgKGJhc2UgMTYpCQlEQU5DT05UUk9MIEVuZ2luZWVyaW5nCisJCQkJSXRhbGllbnN2ZWogMS01CisJCQkJREstODQ1MCBIYW1tZWwKKwkJCQlERU5NQVJLCisKKzAwLTA3LTM0ICAgKGhleCkJCU9OU3RvciwgSW5jLgorMDAwNzM0ICAgICAoYmFzZSAxNikJCU9OU3RvciwgSW5jLgorCQkJCTEzMC1CIEtub3dsZXMgRHJpdmUKKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTM1ICAgKGhleCkJCUZsYXJpb24gVGVjaG5vbG9naWVzLCBJbmMuCiswMDA3MzUgICAgIChiYXNlIDE2KQkJRmxhcmlvbiBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMzUgUm91dGUgMjAyLzIwNiBTb3V0aAorCQkJCUJlZG1pbnN0ZXIgTkogMDc5MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTM2ICAgKGhleCkJCURhdGEgVmlkZW8gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAwNzM2ICAgICAoYmFzZSAxNikJCURhdGEgVmlkZW8gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCTdGLCBOby4gMzUyLCBTZWMuIDIKKwkJCQlDaHVuZy1TaGFuIFJkLiwgQ2h1bmctSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNy0zNyAgIChoZXgpCQlTb3JpeWEgQ28uIEx0ZC4KKzAwMDczNyAgICAgKGJhc2UgMTYpCQlTb3JpeWEgQ28uIEx0ZC4KKwkJCQkyLCA4dGggRmxvb3IgSGFuc2hpbiBCL08sIDEzNi0xLAorCQkJCUhhcG8tZG9uZywgTWFwby1ndSwKKwkJCQlTZW91bCwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0zOCAgIChoZXgpCQlZb3VuZyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwNzM4ICAgICAoYmFzZSAxNikJCVlvdW5nIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJRC02MDQsIFNpZ21hLUlJIE9mZmljZXRlbCwKKwkJCQkjMTgsIEd1bWktZG9uZywgQnVuZGdhbmctZ3UsCisJCQkJU3VuZ25hbS1zaSwgS3llb25nZ2ktZG8gNzYzLTc0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0zOSAgIChoZXgpCQlTY290dHkgR3JvdXAgQXVzdHJpYSBHbWJoCiswMDA3MzkgICAgIChiYXNlIDE2KQkJU2NvdHR5IEdyb3VwIEF1c3RyaWEgR21iaAorCQkJCVRlc2xhc3RyYXNzZSA0CisJCQkJODA3NCBHcmFtYmFjaCAgODA3NAorCQkJCUFVU1RSSUEKKworMDAtMDctM0EgICAoaGV4KQkJSW52ZW50ZWwgU3lzdGVtZXMKKzAwMDczQSAgICAgKGJhc2UgMTYpCQlJbnZlbnRlbCBTeXN0ZW1lcworCQkJCTM1LCBydWUgVG91bWVmb3J0CisJCQkJNzUwMDUgUGFyaXMKKwkJCQlGUkFOQ0UKKworMDAtMDctM0IgICAoaGV4KQkJVGVub3ZpcyBHbWJIICYgQ28gS0cKKzAwMDczQiAgICAgKGJhc2UgMTYpCQlUZW5vdmlzIEdtYkggJiBDbyBLRworCQkJCUtsZXllcnN0cmFzc2UgOTQKKwkJCQk2MDMyNiBGcmFua2Z1cnQKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTNDICAgKGhleCkJCVRlbGVjb20gRGVzaWduCiswMDA3M0MgICAgIChiYXNlIDE2KQkJVGVsZWNvbSBEZXNpZ24KKwkJCQlWb2llIFJvbWFpbmUsIFpvbmUgZGUgUmVtb3JhCisJCQkJMzMxNzAgR3JhZGlnbmFuCisJCQkJRlJBTkNFCisKKzAwLTA3LTNEICAgKGhleCkJCU5hbmppbmcgUG9zdGVsIFRlbGVjb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMDczRCAgICAgKGJhc2UgMTYpCQlOYW5qaW5nIFBvc3RlbCBUZWxlY29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCisJCQkJTm8uIDE4NywgU2hlbmdaaG91IFJvYWQsCisJCQkJTmFuamluZyBDaXR5LCBKaWFuZ3N1CisJCQkJMjEwMDA0CisJCQkJQ0hJTkEKKworMDAtMDctM0UgICAoaGV4KQkJQ2hpbmEgR3JlYXQtV2FsbCBDb21wdXRlciBTaGVuemhlbiBDby4sIEx0ZC4KKzAwMDczRSAgICAgKGJhc2UgMTYpCQlDaGluYSBHcmVhdC1XYWxsIENvbXB1dGVyIFNoZW56aGVuIENvLiwgTHRkLgorCQkJCVJlc2VhcmNoICYgRGV2ZWxvcG1lbnQgQ2VudGVyLCBLZWZhIFJvYWQKKwkJCQlTY2llbmNlIEluZHVzdHJ5IFBhcmssIE5hbnNoYW4gRGlzY3RyaWN0CisJCQkJU2hlbnpoZW4gIDUxODA1NworCQkJCUNISU5BCisKKzAwLTA3LTNGICAgKGhleCkJCVdvb2p5dW4gU3lzdGVjIENvLiwgTHRkLgorMDAwNzNGICAgICAoYmFzZSAxNikJCVdvb2p5dW4gU3lzdGVjIENvLiwgTHRkLgorCQkJCTRGIEhhbiBZYW5nIEIvRCwgWW9pZG8tZG9uZworCQkJCVlvdW5nIERlb25nIFBvLWt1CisJCQkJU2VvdWwgIDE1MC0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctNDAgICAoaGV4KQkJQnVmZmFsbywgSW5jCiswMDA3NDAgICAgIChiYXNlIDE2KQkJQnVmZmFsbywgSW5jCisJCQkJTUVMQ08gSEktVEVDSCBDRU5URVIsCisJCQkJNC0xNSAgU2hpYmF0YSwgSG9uZG9yaSwgCisJCQkJTUlOQU1JLUtVLCBOQUdPWUEgQWljaGkgCisJCQkJSkFQQU4KKworMDAtMDctNDEgICAoaGV4KQkJU2llcnJhIEF1dG9tYXRlZCBTeXN0ZW1zCiswMDA3NDEgICAgIChiYXNlIDE2KQkJU2llcnJhIEF1dG9tYXRlZCBTeXN0ZW1zCisJCQkJMjYyNSBOb3J0aCBTYW4gRmVybmFuZG8gQmx2ZC4KKwkJCQlCdXJiYW5rIENBIDkxNTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy00MiAgIChoZXgpCQlDdXJyZW50IFRlY2hub2xvZ2llcywgTExDCiswMDA3NDIgICAgIChiYXNlIDE2KQkJQ3VycmVudCBUZWNobm9sb2dpZXMsIExMQworCQkJCTIwNDIwIENlbnR1cnkgQmx2ZAorCQkJCUdlcm1hbnRvd24gTUQgMjA4NzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTQzICAgKGhleCkJCUNoZWxzaW8gQ29tbXVuaWNhdGlvbnMKKzAwMDc0MyAgICAgKGJhc2UgMTYpCQlDaGVsc2lvIENvbW11bmljYXRpb25zCisJCQkJMTcwIFMuIFdoaXNtb24gUmQuCisJCQkJQmxkZy4gRCwgU3RlIEEKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQxLTE1MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTQ0ICAgKGhleCkJCVVuaWNvLCBJbmMuCiswMDA3NDQgICAgIChiYXNlIDE2KQkJVW5pY28sIEluYy4KKwkJCQkzNzI1IE5pY2hvbHNvbiBSZC4KKwkJCQlGcmFua3N2aWxsZSBXSSA1MzEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNDUgICAoaGV4KQkJUmFkbGFuIENvbXB1dGVyIENvbW11bmljYXRpb25zIEx0ZC4KKzAwMDc0NSAgICAgKGJhc2UgMTYpCQlSYWRsYW4gQ29tcHV0ZXIgQ29tbXVuaWNhdGlvbnMgTHRkLgorCQkJCUF0aWRpbSBUZWNobm9sb2d5IFBhcmsKKwkJCQlCbGRnLiA0CisJCQkJVGVsIEF2aXYgIDYxMTMxCisJCQkJSVNSQUVMCisKKzAwLTA3LTQ2ICAgKGhleCkJCVRVUkNLLCBJbmMuCiswMDA3NDYgICAgIChiYXNlIDE2KQkJVFVSQ0ssIEluYy4KKwkJCQkzMDAwIENhbXB1cyBEcml2ZQorCQkJCVBseW1vdXRoIE1OIDU1NDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy00NyAgIChoZXgpCQlNZWNhbGMKKzAwMDc0NyAgICAgKGJhc2UgMTYpCQlNZWNhbGMKKwkJCQlQTyBCb3ggNzk1OAorCQkJCUNlbnR1cmlvbiAwMDQ2CisJCQkJU09VVEggQUZSSUNBCisKKzAwLTA3LTQ4ICAgKGhleCkJCVRoZSBJbWFnaW5nIFNvdXJjZSBFdXJvcGUKKzAwMDc0OCAgICAgKGJhc2UgMTYpCQlUaGUgSW1hZ2luZyBTb3VyY2UgRXVyb3BlCisJCQkJU29tbWVyc3RyYXNzZSAzNC0zNgorCQkJCTI4MjE1IEJyZW1hbgorCQkJCUdFUk1BTlkKKworMDAtMDctNDkgICAoaGV4KQkJQ0VOaVggSW5jLgorMDAwNzQ5ICAgICAoYmFzZSAxNikJCUNFTmlYIEluYy4KKwkJCQk1MTQxIENhbGlmb3JuaWEgQXZlbnVlCisJCQkJSXJ2aW5lIENBIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy00QSAgIChoZXgpCQlDYXJsIFZhbGVudGluIEdtYkgKKzAwMDc0QSAgICAgKGJhc2UgMTYpCQlDYXJsIFZhbGVudGluIEdtYkgKKwkJCQlOZWNrYXJzdHJhYmUgNzgtODAKKwkJCQlELTc4MDU2IFZTLVNjaHdlbm5pbmdlbgorCQkJCUdFUk1BTlkKKworMDAtMDctNEIgICAoaGV4KQkJRGFpaGVuIENvcnBvcmF0aW9uCiswMDA3NEIgICAgIChiYXNlIDE2KQkJRGFpaGVuIENvcnBvcmF0aW9uCisJCQkJMi0xLTExIFRhZ2F3YSBZb2RvZ2F3YS1rdQorCQkJCU9zYWthIDUzMi04NTEyCisJCQkJSkFQQU4KKworMDAtMDctNEMgICAoaGV4KQkJQmVpY29tIEluYy4KKzAwMDc0QyAgICAgKGJhc2UgMTYpCQlCZWljb20gSW5jLgorCQkJCTExNCBLaW5nIFN0cmVldAorCQkJCUFsZXhhbmRyaWEgVkEgMjIzMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTREICAgKGhleCkJCVplYnJhIFRlY2hub2xvZ2llcyBDb3JwLgorMDAwNzREICAgICAoYmFzZSAxNikJCVplYnJhIFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCTMzMyBDb3Jwb3JhdGUgV29vZHMgUGFya3dheQorCQkJCVZlcm5vbiBIaWxscyBJTCA2MDA2MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNEUgICAoaGV4KQkJTmF1Z2h0eSBib3kgY28uLCBMdGQuCiswMDA3NEUgICAgIChiYXNlIDE2KQkJTmF1Z2h0eSBib3kgY28uLCBMdGQuCisJCQkJUGFybCBCbGRnLiA2RiwgMy0xNS01IFNoaWJ1eWEKKwkJCQlTaGlidXlhLWt1LCBUb2t5bworCQkJCTE1MC0wMDAyCisJCQkJSkFQQU4KKworMDAtMDctNEYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNzRGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTUwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDc1MCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy01MSAgIChoZXgpCQltP3U/dCBBRworMDAwNzUxICAgICAoYmFzZSAxNikJCW0/dT90IEFHCisJCQkJTWVzc2dlcmF0ZSBmdXIgTWVkaXppbi0gdW5kIFVtd2VsdHRlY2huaWsKKwkJCQlBbSBNYXJpZW5ob2YgMgorCQkJCVdlZGVsICAyMjg4MAorCQkJCUdFUk1BTlkKKworMDAtMDctNTIgICAoaGV4KQkJUmh5dGhtIFdhdGNoIENvLiwgTHRkLgorMDAwNzUyICAgICAoYmFzZSAxNikJCVJoeXRobSBXYXRjaCBDby4sIEx0ZC4KKwkJCQkzMjEgU2hpbnNodWt1c2hpbmRlbiwgU2hvd2EtTWFjaGksCisJCQkJS2l0YWthdHNoaWthLUd1biwgU2FpdGFtYQorCQkJCTM0NC0wMTk2CisJCQkJSkFQQU4KKworMDAtMDctNTMgICAoaGV4KQkJQmVpamluZyBReGNvbW0gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDc1MyAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFF4Y29tbSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTRGIFRvd2VyIEIsIFRvbmdUYWkgQnVpbGRpbmcgTm8uIDMzLAorCQkJCUZpbmFuY2lhbCBTdHJlZXQsIFhpY2hlbmcgRGlzdHJpY3QsCisJCQkJQmVpamluZyAxMDAwMzIgIAorCQkJCUNISU5BCisKKzAwLTA3LTU0ICAgKGhleCkJCVh5dGVycmEgQ29tcHV0aW5nLCBJbmMuCiswMDA3NTQgICAgIChiYXNlIDE2KQkJWHl0ZXJyYSBDb21wdXRpbmcsIEluYy4KKwkJCQkxNDUwNSBIYXlkZW4gUmQuLAorCQkJCVN1aXRlIEIzNDAKKwkJCQlTY290dHNkYWxlIEFaIDg1MjYwLTY5NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTU1ICAgKGhleCkJCUxhZm9uIFNBCiswMDA3NTUgICAgIChiYXNlIDE2KQkJTGFmb24gU0EKKwkJCQk0NCBBdmVudWUgVmljdG9yIE1ldW5pZXIKKwkJCQkgQmFzc2VucyAgMzM1MzAKKwkJCQlGUkFOQ0UKKworMDAtMDctNTYgICAoaGV4KQkJSnV5b3VuZyBUZWxlY29tCiswMDA3NTYgICAgIChiYXNlIDE2KQkJSnV5b3VuZyBUZWxlY29tCisJCQkJIzIwMSwgRHVuc2FuIEJ1aWxkaW5nCisJCQkJMjE4LTEgV2FscHllbmctRG9uZywgU2VvZ3UsCisJCQkJVGFlam9uICAzMDItODQ2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTU3ICAgKGhleCkJCVRvcGNhbGwgSW50ZXJuYXRpb25hbCBBRworMDAwNzU3ICAgICAoYmFzZSAxNikJCVRvcGNhbGwgSW50ZXJuYXRpb25hbCBBRworCQkJCVRhbHBhZ2Fzc2UgMQorCQkJCTEyMzAgVmllbm5hCisJCQkJQVVTVFJJQQorCiswMC0wNy01OCAgIChoZXgpCQlEcmFnb253YXZlCiswMDA3NTggICAgIChiYXNlIDE2KQkJRHJhZ29ud2F2ZQorCQkJCTYwMC00MTEgTGVnZ2V0dCBEcml2ZSwKKwkJCQlTdWl0ZSA2MDAKKwkJCQlLYW5hdGEsIE9udGFyaW8gSzJLIDNDOQorCQkJCUNBTkFEQQorCiswMC0wNy01OSAgIChoZXgpCQlCb3JpcyBNYW51ZmFjdHVyaW5nIENvcnAuCiswMDA3NTkgICAgIChiYXNlIDE2KQkJQm9yaXMgTWFudWZhY3R1cmluZyBDb3JwLgorCQkJCVBPIEJveCA2MDEKKwkJCQlDYXN0bGUgUG9pbnQgTlkgMTI1MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTVBICAgKGhleCkJCUFpciBQcm9kdWN0cyBhbmQgQ2hlbWljYWxzLCBJbmMuCiswMDA3NUEgICAgIChiYXNlIDE2KQkJQWlyIFByb2R1Y3RzIGFuZCBDaGVtaWNhbHMsIEluYy4KKwkJCQk3MjAxIEhhbWlsdG9uIEJsdmQuCisJCQkJTWFpbCBTdG9wIEMxMzA3CisJCQkJQWxsZW50b3duIFBBIDE4MTk1LTE1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTVCICAgKGhleCkJCUdpYnNvbiBHdWl0YXJzCiswMDA3NUIgICAgIChiYXNlIDE2KQkJR2lic29uIEd1aXRhcnMKKwkJCQkzMDkgUGFyayBQbHVzIEJsdmQuCisJCQkJTmFzaHZpbGxlIFROIDM3MjE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy01QyAgIChoZXgpCQlFYXN0bWFuIEtvZGFrIENvbXBhbnkKKzAwMDc1QyAgICAgKGJhc2UgMTYpCQlFYXN0bWFuIEtvZGFrIENvbXBhbnkKKwkJCQkzNDMgU3RhdGUgU3RyZWV0CisJCQkJUm9jaGVzdGVyIE5ZIDE0NjUwLTAxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTVEICAgKGhleCkJCUNlbGxlcml0YXMgSW5jLgorMDAwNzVEICAgICAoYmFzZSAxNikJCUNlbGxlcml0YXMgSW5jLgorCQkJCWMvbyBDZWxlcml0YXMgTHRkLgorCQkJCUJlemFsZWwgMjksIFJhbWF0LUdhbgorCQkJCUlTUkFFTAorCiswMC0wNy01RSAgIChoZXgpCQlBbWV0ZWsgUG93ZXIgSW5zdHJ1bWVudHMKKzAwMDc1RSAgICAgKGJhc2UgMTYpCQlBbWV0ZWsgUG93ZXIgSW5zdHJ1bWVudHMKKwkJCQk0MDUwIE5XIDEyMSBBdmVudWUKKwkJCQlDb3JhbCBTcHJpbmdzIEZMIDMzMDY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy01RiAgIChoZXgpCQlWQ1MgVmlkZW8gQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIEFHCiswMDA3NUYgICAgIChiYXNlIDE2KQkJVkNTIFZpZGVvIENvbW11bmljYXRpb24gU3lzdGVtcyBBRworCQkJCUZvcmNoaGVpbWVyIFN0ci4gNAorCQkJCTkwNDI1IE51ZXJuYmVyZworCQkJCUdFUk1BTlkKKworMDAtMDctNjAgICAoaGV4KQkJVE9NSVMgSW5mb3JtYXRpb24gJiBUZWxlY29tIENvcnAuCiswMDA3NjAgICAgIChiYXNlIDE2KQkJVE9NSVMgSW5mb3JtYXRpb24gJiBUZWxlY29tIENvcnAuCisJCQkJWW91bmdkZXVuZ3BvIHRlbGVwaG9uZSBvZmZpY2UgLSBleHRlbnNpbworCQkJCVlvdW5nZGV1bmdwb2RvbmcgMzUtMSwgWW91bmdkZXVuZ3BvLWd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy02MSAgIChoZXgpCQlMb2dpdGVjaCBTQQorMDAwNzYxICAgICAoYmFzZSAxNikJCUxvZ2l0ZWNoIFNBCisJCQkJWi5JLiBNb3VsaW4gZHUgQ2hvYyBECisJCQkJQ0gtMTEyMiBSb21hbmVsLXN1ci1Nb3JnZXMKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wNy02MiAgIChoZXgpCQlHcm91cCBTZW5zZSBMaW1pdGVkCiswMDA3NjIgICAgIChiYXNlIDE2KQkJR3JvdXAgU2Vuc2UgTGltaXRlZAorCQkJCTI3L0YsIFd1IENodW5nIEhvdXNlLAorCQkJCTIxMyBRdWVlbidzIFJvYWQgRWFzdCwKKwkJCQlXYW5jaGFpICAKKwkJCQlIT05HIEtPTkcKKworMDAtMDctNjMgICAoaGV4KQkJU3Vubml3ZWxsIEN5YmVyIFRlY2guIENvLiwgTHRkLgorMDAwNzYzICAgICAoYmFzZSAxNikJCVN1bm5pd2VsbCBDeWJlciBUZWNoLiBDby4sIEx0ZC4KKwkJCQkxN3RoIEZsb29yIEhhaXRhaSBCdWlsZGluZyAjMjI5CisJCQkJQmVpc2lodWFuIEhvbmcgUm9hZCwKKwkJCQlCZWlqaW5nICAxMDAwODMKKwkJCQlDSElOQQorCiswMC0wNy02NCAgIChoZXgpCQlZb3VuZ1dvbyBUZWxlY29tIENvLiBMdGQuCiswMDA3NjQgICAgIChiYXNlIDE2KQkJWW91bmdXb28gVGVsZWNvbSBDby4gTHRkLgorCQkJCTNGLCBTZWh3YSBCL0QsIDM1NS0xCisJCQkJWWF0YXAtRG9uZywgQnVuZGFnLWt1CisJCQkJU3VuZ25hbS1TaSBLeXVuZ2tpLURvIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy02NSAgIChoZXgpCQlKYWRlIFF1YW50dW0gVGVjaG5vbG9naWVzLCBJbmMuCiswMDA3NjUgICAgIChiYXNlIDE2KQkJSmFkZSBRdWFudHVtIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTVGLCBOby4gMTE2LCBIc2llbiBGdSBSZC4sCisJCQkJVGFveXVhbiwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA3LTY2ICAgKGhleCkJCUNob3UgQ2hpbiBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAwNzY2ICAgICAoYmFzZSAxNikJCUNob3UgQ2hpbiBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTlGLCAjMzUsIENoaWF1IEFuIFN0LiBDaHVuZyBIbyBDaXR5LAorCQkJCVRhaXBlaSBIc2llbgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDctNjcgICAoaGV4KQkJWXV4aW5nIEVsZWN0cm9uaWNzIENvbXBhbnkgTGltaXRlZAorMDAwNzY3ICAgICAoYmFzZSAxNikJCVl1eGluZyBFbGVjdHJvbmljcyBDb21wYW55IExpbWl0ZWQKKwkJCQlVbml0IDE4MDgsIDE4L0YgVG93ZXIgMywKKwkJCQlFbnRlcnByaXNlIFNxdWFyZSwgOSBTaGV1bmcgWXVldCBSb2FkCisJCQkJS293bG9vbiBCYXksIEtvd2xvb24gCisJCQkJSE9ORyBLT05HCisKKzAwLTA3LTY4ICAgKGhleCkJCURhbmZvc3MgQS9TCiswMDA3NjggICAgIChiYXNlIDE2KQkJRGFuZm9zcyBBL1MKKwkJCQlFMTYtTjEyLCBESy02NDMwIE5vcmRib3JnCisJCQkJREVOTUFSSworCiswMC0wNy02OSAgIChoZXgpCQlJdGFsaWFuYSBNYWNjaGkgU3BBCiswMDA3NjkgICAgIChiYXNlIDE2KQkJSXRhbGlhbmEgTWFjY2hpIFNwQQorCQkJCVZpYSBNYXR0ZW90dGkgMQorCQkJCTIxMDQwIE9nZ2lvbmEgUy4gU3RlZmFubyAoVkEpCisJCQkJSVRBTFkKKworMDAtMDctNkEgICAoaGV4KQkJTkVYVEVZRSBDby4sIEx0ZC4KKzAwMDc2QSAgICAgKGJhc2UgMTYpCQlORVhURVlFIENvLiwgTHRkLgorCQkJCVNoaW5zZWdpIFBsYXphIDRGLCA5MDAtOSwKKwkJCQlQeXVuZ2Nob24sIERvbmdhbiwgQW55YW5nLAorCQkJCUt5dW5nZ2kgIDQzMS0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctNkIgICAoaGV4KQkJU3RyYWxmb3JzIEFCCiswMDA3NkIgICAgIChiYXNlIDE2KQkJU3RyYWxmb3JzIEFCCisJCQkJTGFuZ2dhdGFuIDIxCisJCQkJUy0zNDEgODQgTGp1bmdieQorCQkJCVNXRURFTgorCiswMC0wNy02QyAgIChoZXgpCQlEYWVoYW5ldCwgSW5jLgorMDAwNzZDICAgICAoYmFzZSAxNikJCURhZWhhbmV0LCBJbmMuCisJCQkJIzgtMiBDaHVuZyBKdW5nIFJkIDItIEdhCisJCQkJU3VyIERhZSBNb29uLAorCQkJCVNlb3VsICAxMjAtMDEyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTZEICAgKGhleCkJCUZsZXhsaWdodCBOZXR3b3JrcworMDAwNzZEICAgICAoYmFzZSAxNikJCUZsZXhsaWdodCBOZXR3b3JrcworCQkJCTE1IEF0aXIgWWVkYSBTdC4KKwkJCQlLZmFyIFNhYmEgNDQ2NDMKKwkJCQlJU1JBRUwKKworMDAtMDctNkUgICAoaGV4KQkJU2luZXRpY2EgQ29ycG9yYXRpb24gTGltaXRlZAorMDAwNzZFICAgICAoYmFzZSAxNikJCVNpbmV0aWNhIENvcnBvcmF0aW9uIExpbWl0ZWQKKwkJCQlXaWxsb3cgSG91c2UKKwkJCQlMbGFuY2F5byBDb3VydAorCQkJCU1vbm1vdXRoc2hpcmUgVXNrIE5QMTUgMUhZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDctNkYgICAoaGV4KQkJU3lub3B0aWNzIExpbWl0ZWQKKzAwMDc2RiAgICAgKGJhc2UgMTYpCQlTeW5vcHRpY3MgTGltaXRlZAorCQkJCUZsb29kbGlnaHQgSG91c2UsIE51ZmZpZWxkIFJvYWQsCisJCQkJQ2FtYnJpZGdlIENCNCAxVEYKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy03MCAgIChoZXgpCQlMb2N1c25ldHdvcmtzIENvcnBvcmF0aW9uCiswMDA3NzAgICAgIChiYXNlIDE2KQkJTG9jdXNuZXR3b3JrcyBDb3Jwb3JhdGlvbgorCQkJCTl0aCBGbC4gQ2h1bmdqbG4KKwkJCQk1My01IFdvbmh5by1SbyAzR2EKKwkJCQlTZW91bCAgMTQwLTcxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy03MSAgIChoZXgpCQlFbWJlZGRlZCBTeXN0ZW0gQ29ycG9yYXRpb24KKzAwMDc3MSAgICAgKGJhc2UgMTYpCQlFbWJlZGRlZCBTeXN0ZW0gQ29ycG9yYXRpb24KKwkJCQkxMy01LCBUYWthZGFub2JhYmEgMy1jaG9tZSwKKwkJCQlTaGluanVrdS1rdSwgVG9reW8gMTY5LTAwNzUKKwkJCQlKQVBBTgorCiswMC0wNy03MiAgIChoZXgpCQlBbGNhdGVsIFNoYW5naGFpIEJlbGwgQ28uLCBMdGQuCiswMDA3NzIgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBTaGFuZ2hhaSBCZWxsIENvLiwgTHRkLgorCQkJCU5vLiAzODgsIE5pbmdxaWFvIFJvYWQsCisJCQkJUHVkb25nIEppbnFpYW8sIFNoYW5naGFpCisJCQkJMjAxMjA2CisJCQkJQ0hJTkEKKworMDAtMDctNzMgICAoaGV4KQkJQXNjb20gUG93ZXJsaW5lIENvbW11bmljYXRpb25zIEx0ZC4KKzAwMDc3MyAgICAgKGJhc2UgMTYpCQlBc2NvbSBQb3dlcmxpbmUgQ29tbXVuaWNhdGlvbnMgTHRkLgorCQkJCUJlbHBzdHIuIDM3CisJCQkJMzAwMCBCZXJuIDE0CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMDctNzQgICAoaGV4KQkJR3VhbmdaaG91IFRoaW5rZXIgVGVjaG5vbG9neSBDby4gTHRkLgorMDAwNzc0ICAgICAoYmFzZSAxNikJCUd1YW5nWmhvdSBUaGlua2VyIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKwkJCQkxMDkgWmhvbmdzaGFuIEF2ZS4sIFRpYW5oZSBEaXN0cmljdAorCQkJCUd1YW5nemhvdQorCQkJCTUxMDYzMAorCQkJCUNISU5BCisKKzAwLTA3LTc1ICAgKGhleCkJCVZhbGVuY2UgU2VtaWNvbmR1Y3RvciwgSW5jLgorMDAwNzc1ICAgICAoYmFzZSAxNikJCVZhbGVuY2UgU2VtaWNvbmR1Y3RvciwgSW5jLgorCQkJCTQxIERpc2NvdmVyeQorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNzYgICAoaGV4KQkJRmVkZXJhbCBBUEQKKzAwMDc3NiAgICAgKGJhc2UgMTYpCQlGZWRlcmFsIEFQRAorCQkJCTQyNzc1IE5pbmUgTWlsZSBSZC4KKwkJCQlOb3ZpIE1JIDQ4Mzc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy03NyAgIChoZXgpCQlNb3RhaCBMdGQuCiswMDA3NzcgICAgIChiYXNlIDE2KQkJTW90YWggTHRkLgorCQkJCTQtNC01IEtvaXNoaWthd2EKKwkJCQlCdW5reW8sIFRva3lvCisJCQkJMTEyLTAwMDIKKwkJCQlKQVBBTgorCiswMC0wNy03OCAgIChoZXgpCQlHRVJTVEVMIEdtYkggJiBDby4gS0cKKzAwMDc3OCAgICAgKGJhc2UgMTYpCQlHRVJTVEVMIEdtYkggJiBDby4gS0cKKwkJCQlFYmVyaGFyZC1HZXJzdGVsLVBsYXR6IDEKKwkJCQlENDU0NzMKKwkJCQlNdWxoZWltIGFuIGRlciBSdWhyICAKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTc5ICAgKGhleCkJCVN1bmdpbCBUZWxlY29tIENvLiwgTHRkLgorMDAwNzc5ICAgICAoYmFzZSAxNikJCVN1bmdpbCBUZWxlY29tIENvLiwgTHRkLgorCQkJCSMzMjEsIEdvbmdkYW4tRG9uZywKKwkJCQlHdW1pLUNpdHksIEt5b3VuZy1CdWsKKwkJCQk3MzAtMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTdBICAgKGhleCkJCUluZm93YXJlIFN5c3RlbSBDby4sIEx0ZC4KKzAwMDc3QSAgICAgKGJhc2UgMTYpCQlJbmZvd2FyZSBTeXN0ZW0gQ28uLCBMdGQuCisJCQkJTWl6b3JvZ2kgRGFpaWNoaSBCbGRnIDQgRgorCQkJCTEtNS0xMyBTaGluanVrdSwgU2hpbmp1a3Uta3UKKwkJCQlUb2t5byAgCisJCQkJSkFQQU4KKworMDAtMDctN0IgICAoaGV4KQkJTWlsbGltZXRyaXggQnJvYWRiYW5kIE5ldHdvcmtzCiswMDA3N0IgICAgIChiYXNlIDE2KQkJTWlsbGltZXRyaXggQnJvYWRiYW5kIE5ldHdvcmtzCisJCQkJS2lidXR6IEdpdmF0IEhhc2hlbG9zaGEgNDg4MDAKKwkJCQlJU1JBRUwKKworMDAtMDctN0MgICAoaGV4KQkJV2VzdGVybW8gVGVsZWluZHVzdHJpIEFCCiswMDA3N0MgICAgIChiYXNlIDE2KQkJV2VzdGVybW8gVGVsZWluZHVzdHJpIEFCCisJCQkJU0UtNjQwIDQwCisJCQkJU3RvcmEgU3VuZGJ5ICAKKwkJCQlTV0VERU4KKworMDAtMDctN0QgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwNzdEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTdFICAgKGhleCkJCUVscmVzdCBHbWJICiswMDA3N0UgICAgIChiYXNlIDE2KQkJRWxyZXN0IEdtYkgKKwkJCQlMZWlibml6c3RyLiAxMAorCQkJCUQtNzMyMzAgS2lyY2hoZWltCisJCQkJR0VSTUFOWQorCiswMC0wNy03RiAgIChoZXgpCQlKIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorMDAwNzdGICAgICAoYmFzZSAxNikJCUogQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCisJCQkJMTI0LTQgT2plb24tRG9uZywgVWx3YW5nLUNpdHkKKwkJCQlLeXVuZ2tpLURvCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTgwICAgKGhleCkJCUJsdWVnaWdhIFRlY2hub2xvZ2llcyBPWQorMDAwNzgwICAgICAoYmFzZSAxNikJCUJsdWVnaWdhIFRlY2hub2xvZ2llcyBPWQorCQkJCVAuTy4gQk9YIDEyMAorCQkJCUZJTi0wMjYzMSBFc3BvbyAKKwkJCQlGSU5MQU5ECisKKzAwLTA3LTgxICAgKGhleCkJCUl0cm9uIEluYy4KKzAwMDc4MSAgICAgKGJhc2UgMTYpCQlJdHJvbiBJbmMuCisJCQkJMjgxOCBOLiBTdWxsaXZhbiBSb2FkCisJCQkJU3Bva2FuZSBXQSA5OTIxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctODIgICAoaGV4KQkJT3JhY2xlIENvcnBvcmF0aW9uCiswMDA3ODIgICAgIChiYXNlIDE2KQkJT3JhY2xlIENvcnBvcmF0aW9uCisJCQkJMTcgTmV0d29yayBDaXJjbGUKKwkJCQlCdWlsZGluZyAxNywgVU1QSzE3LTEzMQorCQkJCU1lbmxvIFBhcmsgQ0EgOTUwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTgzICAgKGhleCkJCVN5bkNvbSBOZXR3b3JrLCBJbmMuCiswMDA3ODMgICAgIChiYXNlIDE2KQkJU3luQ29tIE5ldHdvcmssIEluYy4KKwkJCQk0RiwgTm8uIDMxLCBIc2ludGFpIFJvYWQsIENodXBlaSBDaXR5LAorCQkJCUhzaW5jaHUgSHNpZW4sCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNy04NCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKzAwMDc4NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTg1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMgSW5jLgorMDAwNzg1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctODYgICAoaGV4KQkJV2lyZWxlc3MgTmV0d29ya3MgSW5jLgorMDAwNzg2ICAgICAoYmFzZSAxNikJCVdpcmVsZXNzIE5ldHdvcmtzIEluYy4KKwkJCQkjMzAwLCAzMDE2IEZpZnRoIEF2ZS4gTkUKKwkJCQlDYWxnYXJ5LCBBbGJlcnRhCisJCQkJVDJBIDZLNAorCQkJCUNBTkFEQQorCiswMC0wNy04NyAgIChoZXgpCQlJZGVhIFN5c3RlbSBDby4sIEx0ZC4KKzAwMDc4NyAgICAgKGJhc2UgMTYpCQlJZGVhIFN5c3RlbSBDby4sIEx0ZC4KKwkJCQk0LTEtMjEgU2hpbm1laS1jaG8gT2theWEtc2hpCisJCQkJTmFnYW5vLWtlbiAzOTQtMDAwNAorCQkJCUpBUEFOCisKKzAwLTA3LTg4ICAgKGhleCkJCUNsaXBjb21tLCBJbmMuCiswMDA3ODggICAgIChiYXNlIDE2KQkJQ2xpcGNvbW0sIEluYy4KKwkJCQk1dGggRmwsIFNzYW5neWFuZyBCbGRnLgorCQkJCTkzNS0xIEJvbmdjaGVvbi1kb25nLCBLd2FtYWstZ3UsCisJCQkJU2VvdWwgIDE1MS04MjcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctODkgICAoaGV4KQkJRE9OR1dPTiBTWVNURU1TCiswMDA3ODkgICAgIChiYXNlIDE2KQkJRE9OR1dPTiBTWVNURU1TCisJCQkJODYxLTUsIEd3YW55YW5nLURvbmcsIERvbmdhbi1HdSwKKwkJCQlBbnlhbmctc2ksIEd5ZW9uZ2dpLWRvLCAgNDMwLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy04QSAgIChoZXgpCQlNZW50b3IgRGF0YSBTeXN0ZW0gSW5jLgorMDAwNzhBICAgICAoYmFzZSAxNikJCU1lbnRvciBEYXRhIFN5c3RlbSBJbmMuCisJCQkJTm8uIDI0LTEsIEluZHVzdHJ5IEVhc3QgNCBSZC4sCisJCQkJU2NpZW5jZSBCYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbi1DaHUsICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA3LThCICAgKGhleCkJCVdlZ2VuZXIgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDc4QiAgICAgKGJhc2UgMTYpCQlXZWdlbmVyIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTEzNTAgVGVjaG5vbG9neSBDaXJjbGUKKwkJCQlEdWx1dGggR0EgMzAwOTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LThDICAgKGhleCkJCUVsZWt0cm9uaWtzcGVjaWFsaXN0ZW4gaSBCb3JsYW5nZSBBQgorMDAwNzhDICAgICAoYmFzZSAxNikJCUVsZWt0cm9uaWtzcGVjaWFsaXN0ZW4gaSBCb3JsYW5nZSBBQgorCQkJCUJveCA1MAorCQkJCTQwIE1PQ0tGSkFSRAorCQkJCVNFIDc4MAorCQkJCVNXRURFTgorCiswMC0wNy04RCAgIChoZXgpCQlOZXRFbmdpbmVzIEx0ZC4KKzAwMDc4RCAgICAgKGJhc2UgMTYpCQlOZXRFbmdpbmVzIEx0ZC4KKwkJCQkxNDYgV2FsbnV0IFRyZWUgQ2xvc2UKKwkJCQlHdWlsZGZvcmQsIFN1cnJleQorCQkJCUdVSSA0VUIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy04RSAgIChoZXgpCQlHYXJ6ICYgRnJpY2hlIEdtYkgKKzAwMDc4RSAgICAgKGJhc2UgMTYpCQlHYXJ6ICYgRnJpY2hlIEdtYkgKKwkJCQlUZW1wb3dlcmh2aW5nIDQKKwkJCQlELTIxMDc5IEhhbWJ1cmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LThGICAgKGhleCkJCUVta2F5IElubm92YXRpdmUgUHJvZHVjdHMKKzAwMDc4RiAgICAgKGJhc2UgMTYpCQlFbWtheSBJbm5vdmF0aXZlIFByb2R1Y3RzCisJCQkJNTMsIFBhbyBIc2luZyBSZC4sIEhzaW50aWVuIENpdHkKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDctOTAgICAoaGV4KQkJVHJpLU0gVGVjaG5vbG9naWVzIChzKSBMaW1pdGVkCiswMDA3OTAgICAgIChiYXNlIDE2KQkJVHJpLU0gVGVjaG5vbG9naWVzIChzKSBMaW1pdGVkCisJCQkJQmxrIDI1LCBLYWxsYW5nIEF2ZW51ZSAjMDctMDEvMDQKKwkJCQlLYWxsYW5nIEJhc2luIEluZC4gRXN0CisJCQkJMzM5NDE2CisJCQkJU0lOR0FQT1JFCisKKzAwLTA3LTkxICAgKGhleCkJCUludGVybmF0aW9uYWwgRGF0YSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNzkxICAgICAoYmFzZSAxNikJCUludGVybmF0aW9uYWwgRGF0YSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTQ3ODczIEZyZW1vbnQgQmx2ZC4KKwkJCQlGcmVtb250IENBIDA0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy05MiAgIChoZXgpCQlTdWV0cm9uIEVsZWN0cm9uaWMgR21iSAorMDAwNzkyICAgICAoYmFzZSAxNikJCVN1ZXRyb24gRWxlY3Ryb25pYyBHbWJICisJCQkJS3VyemUgU3RyYXNzZSAyOQorCQkJCTcwNzk0IEZpbGRlcnN0YWR0CisJCQkJR0VSTUFOWQorCiswMC0wNy05MyAgIChoZXgpCQlTaGluIFNhdGVsbGl0ZSBQdWJsaWMgQ29tcGFueSBMaW1pdGVkCiswMDA3OTMgICAgIChiYXNlIDE2KQkJU2hpbiBTYXRlbGxpdGUgUHVibGljIENvbXBhbnkgTGltaXRlZAorCQkJCTQxLzEwMyAgUmF0dGFuYXRoaWJldCBSb2FkLAorCQkJCU5vbnRoYWJ1cmkgMTEwMDAsCisJCQkJVEhBSUxBTkQKKworMDAtMDctOTQgICAoaGV4KQkJU2ltcGxlIERldmljZXMsIEluYy4KKzAwMDc5NCAgICAgKGJhc2UgMTYpCQlTaW1wbGUgRGV2aWNlcywgSW5jLgorCQkJCTExMSBBbnphIEJsdmQuLCBTdWl0ZSAxMjAKKwkJCQlCdXJsaW5nYW1lIENBIDk0MDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy05NSAgIChoZXgpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4gKEVDUykKKzAwMDc5NSAgICAgKGJhc2UgMTYpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4gKEVDUykKKwkJCQlOby4gMjIsIEFsbGV5IDM4LCBMYW5lIDkxLAorCQkJCVNlYy4gMSwgTmVpIEh1IFJvYWQKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDctOTYgICAoaGV4KQkJTFNJIFN5c3RlbXMsIEluYy4KKzAwMDc5NiAgICAgKGJhc2UgMTYpCQlMU0kgU3lzdGVtcywgSW5jLgorCQkJCTEwLTEgTWluYW1pLWt1cm9rYXdhLAorCQkJCUFzYW8ta3UsIGthd2FzYWtpLAorCQkJCUthbmFnYXdhICAyMTUtMDAzNAorCQkJCUpBUEFOCisKKzAwLTA3LTk3ICAgKGhleCkJCU5ldHBvd2VyIENvLiwgTHRkLgorMDAwNzk3ICAgICAoYmFzZSAxNikJCU5ldHBvd2VyIENvLiwgTHRkLgorCQkJCUJhZWthbSBCbGRnLiwgNkYKKwkJCQkxMjMsIEthcmFrLURvbmcsIFNvbmctcGEgR3UKKwkJCQlTZW91bCAgMTM4LTE2MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy05OCAgIChoZXgpCQlTZWxlYSBTUkwKKzAwMDc5OCAgICAgKGJhc2UgMTYpCQlTZWxlYSBTUkwKKwkJCQlWaWEgQS4gTW9ybyBOby4gNjkKKwkJCQk0NjAxNSAtIENpY29nbmFyYQorCQkJCUlUQUxZCisKKzAwLTA3LTk5ICAgKGhleCkJCVRpcHBpbmcgUG9pbnQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA3OTkgICAgIChiYXNlIDE2KQkJVGlwcGluZyBQb2ludCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk3NTAxIEIgTi4gQ2FwaXRhbCBvZiBUWCBId3kuCisJCQkJQXVzdGluIFRYIDc4NzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy05QSAgIChoZXgpCQlWZXJpbnQgU3lzdGVtcyBJbmMKKzAwMDc5QSAgICAgKGJhc2UgMTYpCQlWZXJpbnQgU3lzdGVtcyBJbmMKKwkJCQkxODAwIEJlcmxpZXIsIFN1aXRlIDQ0MAorCQkJCUxhdmFsLCAgUXVlYmVjIEg3TCA0UzQKKwkJCQlDQU5BREEKKworMDAtMDctOUIgICAoaGV4KQkJQXVyb3JhIE5ldHdvcmtzCiswMDA3OUIgICAgIChiYXNlIDE2KQkJQXVyb3JhIE5ldHdvcmtzCisJCQkJMjgwMyBNaXNzaW9uIENvbGxlZ2UgQmx2ZC4KKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctOUMgICAoaGV4KQkJR29sZGVuIEVsZWN0cm9uaWNzIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDA3OUMgICAgIChiYXNlIDE2KQkJR29sZGVuIEVsZWN0cm9uaWNzIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uIDI5LCAyMXN0IFJvYWQsCisJCQkJVGFpY2h1bmcgSW5kdXN0cmlhbCBQYXJrLCBUYWljaHVuZworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDctOUQgICAoaGV4KQkJTXVzYXNoaSBDby4sIEx0ZC4KKzAwMDc5RCAgICAgKGJhc2UgMTYpCQlNdXNhc2hpIENvLiwgTHRkLgorCQkJCTMtMjEtMSwgU2hpbW8tb2NoaWFpLAorCQkJCVNoaW5qdWt1LWt1LAorCQkJCVRva3lvICAxNjEtMDAzMworCQkJCUpBUEFOCisKKzAwLTA3LTlFICAgKGhleCkJCUlsaW54IENvLiwgTHRkLgorMDAwNzlFICAgICAoYmFzZSAxNikJCUlsaW54IENvLiwgTHRkLgorCQkJCTR0aCBGbG9vciBLb3JlYSBUZWxlY29tLCBZYW5namFlIEJyYW5jaAorCQkJCURvZ29rLURvbmcsIEthbmduYW0ta3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy05RiAgIChoZXgpCQlBY3Rpb24gRGlnaXRhbCBJbmMuCiswMDA3OUYgICAgIChiYXNlIDE2KQkJQWN0aW9uIERpZ2l0YWwgSW5jLgorCQkJCTEwNjUwIE1haW4gU3QuCisJCQkJU3VpdGUgMTAyCisJCQkJRmFpcmZheCBWQSAyMjAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQTAgICAoaGV4KQkJZS1XYXRjaCBJbmMuCiswMDA3QTAgICAgIChiYXNlIDE2KQkJZS1XYXRjaCBJbmMuCisJCQkJNzgwMCBJSCAxMCBXZXN0CisJCQkJU3VpdGUgNzAwCisJCQkJU2FuIEFudG9uaW8gVFggNzgyMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUExICAgKGhleCkJCVZJQVNZUyBIZWFsdGhjYXJlIEdtYkgKKzAwMDdBMSAgICAgKGJhc2UgMTYpCQlWSUFTWVMgSGVhbHRoY2FyZSBHbWJICisJCQkJTGVpYm5penN0cmFzc2UgNworCQkJCUhvZWNoYmVyZyBCYXZhcmlhIDk3MjA0CisJCQkJR0VSTUFOWQorCiswMC0wNy1BMiAgIChoZXgpCQlPcHRlb24gQ29ycG9yYXRpb24KKzAwMDdBMiAgICAgKGJhc2UgMTYpCQlPcHRlb24gQ29ycG9yYXRpb24KKwkJCQk3MCBIYXN0aW5ncyBTdHJlZXQKKwkJCQlXZWxsZXNsZXkgTUEgMDI0ODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUEzICAgKGhleCkJCU9zaXRpcyBTb2Z0d2FyZSwgSW5jLgorMDAwN0EzICAgICAoYmFzZSAxNikJCU9zaXRpcyBTb2Z0d2FyZSwgSW5jLgorCQkJCTYxMjAgU3RvbmVyaWRnZSBNYWxsIFJvYWQKKwkJCQlTdWl0ZSAyMTAKKwkJCQlQbGVhc2FudG9uIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1BNCAgIChoZXgpCQlHTiBOZXRjb20gTHRkLgorMDAwN0E0ICAgICAoYmFzZSAxNikJCUdOIE5ldGNvbSBMdGQuCisJCQkJMTItMTMgU2VkbGluZyBSb2FkLCBXZWFyIEVzdC4sIERpc3RyaWN0CisJCQkJV2FzaGluZ3RvbiwgVHluZSBhbmQgV2VhcgorCQkJCUVuZ2xhbmQgTkUzOCA5QloKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy1BNSAgIChoZXgpCQlZLkQuSyBDby4gTHRkLgorMDAwN0E1ICAgICAoYmFzZSAxNikJCVkuRC5LIENvLiBMdGQuCisJCQkJMTcwNSwgT3NoaXRhdGUsIEluYWdpLUNpdHksCisJCQkJVG9reW8sCisJCQkJSkFQQU4KKworMDAtMDctQTYgICAoaGV4KQkJSG9tZSBBdXRvbWF0aW9uLCBJbmMuCiswMDA3QTYgICAgIChiYXNlIDE2KQkJSG9tZSBBdXRvbWF0aW9uLCBJbmMuCisJCQkJNDMzMCBNaWNob3VkIEJsdmQuCisJCQkJTmV3IE9ybGVhbnMgTEEgNzAxMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUE3ICAgKGhleCkJCUEtWiBJbmMuCiswMDA3QTcgICAgIChiYXNlIDE2KQkJQS1aIEluYy4KKwkJCQk1LTUtMTcgS2FtaWtvdXNoaWVuCisJCQkJTmlzaGlub21peWEgQ2l0eSwgSHlvZ28KKwkJCQlKQVBBTgorCiswMC0wNy1BOCAgIChoZXgpCQlIYWllciBHcm91cCBUZWNobm9sb2dpZXMgTHRkLgorMDAwN0E4ICAgICAoYmFzZSAxNikJCUhhaWVyIEdyb3VwIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJTm8uIDEgSGFpZXIgUm9hZCwgSGktdGVjaCBab25lCisJCQkJUWluZ2RhbywKKwkJCQlDSElOQQorCiswMC0wNy1BOSAgIChoZXgpCQlOb3Zhc29uaWNzCiswMDA3QTkgICAgIChiYXNlIDE2KQkJTm92YXNvbmljcworCQkJCTEzOTAgV2lsbG93IFJvYWQKKwkJCQlNZW5sbyBQYXJrIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1BQSAgIChoZXgpCQlRdWFudHVtIERhdGEgSW5jLgorMDAwN0FBICAgICAoYmFzZSAxNikJCVF1YW50dW0gRGF0YSBJbmMuCisJCQkJMjExMSBCaWcgVGltYmVyIFJkLgorCQkJCUVsZ2luIElMIDYwMTIzLTExMDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUFDICAgKGhleCkJCUVvbHJpbmcKKzAwMDdBQyAgICAgKGJhc2UgMTYpCQlFb2xyaW5nCisJCQkJMTAgUnVlIEFsZnJlZCBLYXN0bGVyCisJCQkJMTQwMDAgQ2FlbgorCQkJCUZSQU5DRQorCiswMC0wNy1BRCAgIChoZXgpCQlQZW50YWNvbiBHbWJIIEZvdG8tdW5kIEZlaW53ZXJrdGVjaG5paworMDAwN0FEICAgICAoYmFzZSAxNikJCVBlbnRhY29uIEdtYkggRm90by11bmQgRmVpbndlcmt0ZWNobmlrCisJCQkJRW5kZXJzdHJhYmUgOTQKKwkJCQkwMTI3NyBEcmVzZGVuCisJCQkJR0VSTUFOWQorCiswMC0wNy1BRSAgIChoZXgpCQlCcml0ZXN0cmVhbSBOZXR3b3JrcywgSW5jLgorMDAwN0FFICAgICAoYmFzZSAxNikJCUJyaXRlc3RyZWFtIE5ldHdvcmtzLCBJbmMuCisJCQkJMTI0MDEgUmVzZWFyY2ggQmx2ZC4KKwkJCQlCdWlsZGluZyBUd28sIFN1aXRlIDI3NQorCQkJCUF1c3RpbiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQUYgICAoaGV4KQkJTi1Ucm9uIENvcnAuCiswMDA3QUYgICAgIChiYXNlIDE2KQkJTi1Ucm9uIENvcnAuCisJCQkJODIwIFMuIFVuaXZlcnNpdHkgQmx2ZC4KKwkJCQlTdWl0ZSA0RQorCQkJCU1vYmlsZSBBTCAzNjYwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQjAgICAoaGV4KQkJT2ZmaWNlIERldGFpbHMsIEluYy4KKzAwMDdCMCAgICAgKGJhc2UgMTYpCQlPZmZpY2UgRGV0YWlscywgSW5jLgorCQkJCTI1IE90dGF3YQorCQkJCTR0aCBGbG9vcgorCQkJCUdyYW5kIFJhcGlkcyBNSSA0OTUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQjEgICAoaGV4KQkJRXF1YXRvciBUZWNobm9sb2dpZXMKKzAwMDdCMSAgICAgKGJhc2UgMTYpCQlFcXVhdG9yIFRlY2hub2xvZ2llcworCQkJCTEzMDAgV2hpdGUgT2FrcyBSZC4KKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQjIgICAoaGV4KQkJVHJhbnNhY2Nlc3MgUy5BLgorMDAwN0IyICAgICAoYmFzZSAxNikJCVRyYW5zYWNjZXNzIFMuQS4KKwkJCQlSLiBHYWxlbm8gRGUgQ2FzdHJvLCAxNDQ1CisJCQkJVHVydWJhdHViYSAwNDY5Ni0wNDAKKwkJCQlTYW8gUGF1bG8gU1AgIAorCQkJCUJSQVpJTAorCiswMC0wNy1CMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKzAwMDdCMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUI0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMgSW5jLgorMDAwN0I0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQjUgICAoaGV4KQkJQW55IE9uZSBXaXJlbGVzcyBMdGQuCiswMDA3QjUgICAgIChiYXNlIDE2KQkJQW55IE9uZSBXaXJlbGVzcyBMdGQuCisJCQkJTmFtc2VvdWwgQmQuLCA4RiwgMTMwNC0zCisJCQkJU2VvY2hvIDQtRG9uZywgU2VvY2hvLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy1CNiAgIChoZXgpCQlUZWxlY29tIFRlY2hub2xvZ3kgTHRkLgorMDAwN0I2ICAgICAoYmFzZSAxNikJCVRlbGVjb20gVGVjaG5vbG9neSBMdGQuCisJCQkJRG9ja2xhbmRzIElubm92YXRpb24gUGFyaworCQkJCTEyOC0xMzAgRWFzdCBXYWxsIFJvYWQKKwkJCQlEdWJsaW4gMyAgCisJCQkJSVJFTEFORAorCiswMC0wNy1CNyAgIChoZXgpCQlTYW11cmFpIEluZC4gUHJvZHMgRWxldHJvbmljb3MgTHRkYQorMDAwN0I3ICAgICAoYmFzZSAxNikJCVNhbXVyYWkgSW5kLiBQcm9kcyBFbGV0cm9uaWNvcyBMdGRhCisJCQkJUi1OZWJyYXNrYSwgNDQzIFMvMiAybyBBbmRhcgorCQkJCUJyb29rbGluIE5vdm8gLSBTYW8gUGF1bG8KKwkJCQkwNDU2MC0wMTEKKwkJCQlCUkFaSUwKKworMDAtMDctQjggICAoaGV4KQkJQ29ydmFsZW50IENvcnBvcmF0aW9uCiswMDA3QjggICAgIChiYXNlIDE2KQkJQ29ydmFsZW50IENvcnBvcmF0aW9uCisJCQkJMTEwMSBBcnJvdyBQb2ludCBEciAjNTAxCisJCQkJQ2VkYXIgUGFyayBUWCA3ODYxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQjkgICAoaGV4KQkJR2luZ2FuZXQgQ29ycG9yYXRpb24KKzAwMDdCOSAgICAgKGJhc2UgMTYpCQlHaW5nYW5ldCBDb3Jwb3JhdGlvbgorCQkJCUtpbnRldHN1IFNoaW4gTmFtYmEgQnVpbGRpbmcKKwkJCQlNaW5hdG8gTWFjaGkgMS00LTM4IE5hbml3YWt1CisJCQkJT3Nha2EgU2hpICAxNTU2LTAwMTcKKwkJCQlKQVBBTgorCiswMC0wNy1CQSAgIChoZXgpCQlVVFN0YXJjb20sIEluYy4KKzAwMDdCQSAgICAgKGJhc2UgMTYpCQlVVFN0YXJjb20sIEluYy4KKwkJCQkxMjc1IEJhcmJvciBCYXkgUEtXWQorCQkJCUFsYW1lZGEgQ0EgOTQ1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUJCICAgKGhleCkJCUNhbmRlcmEgSW5jLgorMDAwN0JCICAgICAoYmFzZSAxNikJCUNhbmRlcmEgSW5jLgorCQkJCTY3MyBTb3V0aCBNaWxwaXRhcyBCbHZkLgorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1CQyAgIChoZXgpCQlJZGVudGl4IEluYy4KKzAwMDdCQyAgICAgKGJhc2UgMTYpCQlJZGVudGl4IEluYy4KKwkJCQk2NTkxIFNpZXJyYSBMYW5lCisJCQkJRHVibGluIENBIDk0NTY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1CRCAgIChoZXgpCQlSYWRpb25ldCBMdGQuCiswMDA3QkQgICAgIChiYXNlIDE2KQkJUmFkaW9uZXQgTHRkLgorCQkJCUtlaWxhcmFudGEgNgorCQkJCTAyMTUwIEVTUDAwCisJCQkJRklOTEFORAorCiswMC0wNy1CRSAgIChoZXgpCQlEYXRhTG9naWMgU3BBCiswMDA3QkUgICAgIChiYXNlIDE2KQkJRGF0YUxvZ2ljIFNwQQorCQkJCVZpYSBDYW5kaW5pLCAyCisJCQkJNDAwMTIgTGlwcG8gZGkgQ2FsZGVyYXJhIGRpIFJlbm8KKwkJCQlCb2xvZ25hICAKKwkJCQlJVEFMWQorCiswMC0wNy1CRiAgIChoZXgpCQlBcm1pbGxhaXJlIFRlY2hub2xvZ2llcywgSW5jLgorMDAwN0JGICAgICAoYmFzZSAxNikJCUFybWlsbGFpcmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTA0MTEgTW90b3IgQ2l0eSBEcml2ZQorCQkJCUJldGhlc2RhIE1EIDIwODE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1DMCAgIChoZXgpCQlOZXRaZXJ2ZXIgSW5jLgorMDAwN0MwICAgICAoYmFzZSAxNikJCU5ldFplcnZlciBJbmMuCisJCQkJMjYgV2VzdCBMb25lIENhY3R1cyBEcml2ZQorCQkJCVBob2VuaXggQVogODUwMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUMxICAgKGhleCkJCU92ZXJ0dXJlIE5ldHdvcmtzLCBJbmMuCiswMDA3QzEgICAgIChiYXNlIDE2KQkJT3ZlcnR1cmUgTmV0d29ya3MsIEluYy4KKwkJCQk1MDcgQWlycG9ydCBCbHZkCisJCQkJU3VpdGUgMTExCisJCQkJTW9ycmlzdmlsbGUgTkMgMjc1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUMyICAgKGhleCkJCU5ldHN5cyBUZWxlY29tCiswMDA3QzIgICAgIChiYXNlIDE2KQkJTmV0c3lzIFRlbGVjb20KKwkJCQk0RiwgS3l1bmdOYW0gQi9ELCA4MzAtNDgsIFllb2tTYW0tRG9uZworCQkJCUthbmduYW0tR3UsCisJCQkJU2VvdWwgIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctQzMgICAoaGV4KQkJVGhvbXNvbgorMDAwN0MzICAgICAoYmFzZSAxNikJCVRob21zb24KKwkJCQk1LTcsIHJ1ZSBTYWxvbW9uIGRlIFJvdGhzY2hpbGQKKwkJCQlTdXJlc25lcworCQkJCTkyMTUwCisJCQkJRlJBTkNFCisKKzAwLTA3LUM0ICAgKGhleCkJCUpFQU4gQ28uIEx0ZC4KKzAwMDdDNCAgICAgKGJhc2UgMTYpCQlKRUFOIENvLiBMdGQuCisJCQkJN0YsIDIsIFJlaSBLdWFuZyBSb2FkLAorCQkJCU5laSBIdSwKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDctQzUgICAoaGV4KQkJR2NvbSwgSW5jLgorMDAwN0M1ICAgICAoYmFzZSAxNikJCUdjb20sIEluYy4KKwkJCQkxODAwIFdvb2RmaWVsZCBEci4KKwkJCQlTYXZveSBJTCA2MTg3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQzYgICAoaGV4KQkJVkRTIFZvc3NrdWhsZXIgR21iSAorMDAwN0M2ICAgICAoYmFzZSAxNikJCVZEUyBWb3Nza3VobGVyIEdtYkgKKwkJCQlXZWliZSBCcmVpdGUgNworCQkJCUQtNDkwODQgT3NuYWJydWNrCisJCQkJR0VSTUFOWQorCiswMC0wNy1DNyAgIChoZXgpCQlTeW5lY3RpY3MgU3lzdGVtcyBMaW1pdGVkCiswMDA3QzcgICAgIChiYXNlIDE2KQkJU3luZWN0aWNzIFN5c3RlbXMgTGltaXRlZAorCQkJCTMgQWNvcm4gQnVzaW5lc3MgUGFyaworCQkJCVdvb3NlYXRzIENsb3NlLCBTaGVmZmllbGQKKwkJCQlTOCBPVEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy1DOCAgIChoZXgpCQlCcmFpbjIxLCBJbmMuCiswMDA3QzggICAgIChiYXNlIDE2KQkJQnJhaW4yMSwgSW5jLgorCQkJCTE5RiBNZXNhIEIvRCwgMjA0IEhvaWh5dW4tRG9uZworCQkJCUpvb25nLUd1CisJCQkJU2VvdWwgIDEwMC0wNTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctQzkgICAoaGV4KQkJVGVjaG5vbCBTZXZlbiBDby4sIEx0ZC4KKzAwMDdDOSAgICAgKGJhc2UgMTYpCQlUZWNobm9sIFNldmVuIENvLiwgTHRkLgorCQkJCTI1LTE2IFRvYmVob24tY2hvLCBOaXNpLWt1LAorCQkJCVlva29oYW1hLCAyMjAtMDA0MQorCQkJCUpBUEFOCisKKzAwLTA3LUNBICAgKGhleCkJCUNyZWF0aXggUG9seW1lZGlhIEdlcyBGdXIgS29tbXVuaWthaXRvbnNzeXN0ZW1lCiswMDA3Q0EgICAgIChiYXNlIDE2KQkJQ3JlYXRpeCBQb2x5bWVkaWEgR2VzIEZ1ciBLb21tdW5pa2FpdG9uc3N5c3RlbWUKKwkJCQlIZWlucmljaC1CYXJ0aC1TdHIuIDMKKwkJCQk2NjExNSBTYWFyYnJ1ZWNrZW4KKwkJCQlHRVJNQU5ZCisKKzAwLTA3LUNCICAgKGhleCkJCUZyZWVib3ggU0EKKzAwMDdDQiAgICAgKGJhc2UgMTYpCQlGcmVlYm94IFNBCisJCQkJOCBydWUgZGUgbGEgVmlsbGUgbCdFdmVxdWUKKwkJCQlQYXJpcyAgNzUwMDgKKwkJCQlGUkFOQ0UKKworMDAtMDctQ0MgICAoaGV4KQkJS2FiYSBCZW56aW5nIEdtYkgKKzAwMDdDQyAgICAgKGJhc2UgMTYpCQlLYWJhIEJlbnppbmcgR21iSAorCQkJCUFsYmVydGlzdHJhYmUgMworCQkJCTc4MDU2IFZpbGxpZ2VuLVNjaHdlbm5pbmdlbgorCQkJCUdFUk1BTlkKKworMDAtMDctQ0QgICAoaGV4KQkJTk1URUwgQ28uLCBMdGQuCiswMDA3Q0QgICAgIChiYXNlIDE2KQkJTk1URUwgQ28uLCBMdGQuCisJCQkJU3VpdGUgMTMwMyAxLkIuQy4gOTE3LTYKKwkJCQlNb2stMSBkb25nIFRhbmdjaGVvbi1rdQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctQ0UgICAoaGV4KQkJQ2FibGV0aW1lIExpbWl0ZWQKKzAwMDdDRSAgICAgKGJhc2UgMTYpCQlDYWJsZXRpbWUgTGltaXRlZAorCQkJCTY0IEdyZWVuaGFtIFJvYWQKKwkJCQlOZXdidXJ5LCBCZXJrc2hpcmUsCisJCQkJUkcxNCA3SFgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy1DRiAgIChoZXgpCQlBbm90byBBQgorMDAwN0NGICAgICAoYmFzZSAxNikJCUFub3RvIEFCCisJCQkJU29sdmVnYXRhbiA0MQorCQkJCVNFLTIyMyA3MCBMdW5kCisJCQkJU1dFREVOCisKKzAwLTA3LUQwICAgKGhleCkJCUF1dG9tYXQgRW5nZW5oYXJpYSBkZSBBdXRvbWFvYSBMdGRhLgorMDAwN0QwICAgICAoYmFzZSAxNikJCUF1dG9tYXQgRW5nZW5oYXJpYSBkZSBBdXRvbWFvYSBMdGRhLgorCQkJCVJ1YSBTYW50byBBbnRvbmlvLCA5MTcgLSBSZWJvdWNhcworCQkJCUN1cml0aWJhIC0gUFIKKwkJCQk4MDIzMC0xMjAKKwkJCQlCUkFaSUwKKworMDAtMDctRDEgICAoaGV4KQkJU3BlY3RydW0gU2lnbmFsIFByb2Nlc3NpbmcgSW5jLgorMDAwN0QxICAgICAoYmFzZSAxNikJCVNwZWN0cnVtIFNpZ25hbCBQcm9jZXNzaW5nIEluYy4KKwkJCQkjMjAwLTI3MDAgUHJvZHVjdGlvbiBXYXkKKwkJCQlCdXJuYWJ5LCBCQyBWNUEgNFgxCisJCQkJQ0FOQURBCisKKzAwLTA3LUQyICAgKGhleCkJCUxvZ29wYWsgU3lzdGVtZQorMDAwN0QyICAgICAoYmFzZSAxNikJCUxvZ29wYWsgU3lzdGVtZQorCQkJCURvcmZzdHJhc3NlIDQwCisJCQkJRC0yNDYyOCBIYXJ0ZW5ob2xtCisJCQkJR0VSTUFOWQorCiswMC0wNy1EMyAgIChoZXgpCQlTdG9yayBEaWdpdGFsIEltYWdpbmcgQi5WLgorMDAwN0QzICAgICAoYmFzZSAxNikJCVN0b3JrIERpZ2l0YWwgSW1hZ2luZyBCLlYuCisJCQkJSGFuZGVsc3RyYWF0IDYKKwkJCQlQLk8uIEJveCAyMTAKKwkJCQlCb3htZWVyICA1ODMwLUFFCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDctRDQgICAoaGV4KQkJWmhlamlhbmcgWXV0b25nIE5ldHdvcmsgQ29tbXVuaWNhdGlvbiBDbyBMdGQuCiswMDA3RDQgICAgIChiYXNlIDE2KQkJWmhlamlhbmcgWXV0b25nIE5ldHdvcmsgQ29tbXVuaWNhdGlvbiBDbyBMdGQuCisJCQkJODA1IEh1YVhpbmcgVGVjaG5pY2FsIEJ1aWxkaW5nCisJCQkJNDc3IyBXZW5TYW4gUm9hZCwgSGFuZ1pob3UKKwkJCQlaaGVqaWFuZyAgCisJCQkJQ0hJTkEKKworMDAtMDctRDUgICAoaGV4KQkJM2UgVGVjaG5vbG9naWVzIEludDsuLCBJbmMuCiswMDA3RDUgICAgIChiYXNlIDE2KQkJM2UgVGVjaG5vbG9naWVzIEludDsuLCBJbmMuCisJCQkJMTU4MDAgQ3JhYmJzIEJyYW5jaCBXYXkKKwkJCQlTdWl0ZSAyOTAKKwkJCQlSb2NrdmlsbGUgTUQgMjA4NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUQ2ICAgKGhleCkJCUNvbW1pbCBMdGQuCiswMDA3RDYgICAgIChiYXNlIDE2KQkJQ29tbWlsIEx0ZC4KKwkJCQlQLk8uIEJveCAxMDA1MAorCQkJCVBldGFoIFRpa3ZhIDQ5MDAxCisJCQkJSVNSQUVMCisKKzAwLTA3LUQ3ICAgKGhleCkJCUNhcG9yaXMgTmV0d29ya3MgQUcKKzAwMDdENyAgICAgKGJhc2UgMTYpCQlDYXBvcmlzIE5ldHdvcmtzIEFHCisJCQkJU3VlZ2dlbHN0ci4gMzEKKwkJCQlELTQ0NTMyIEx1ZW5lbgorCQkJCUdFUk1BTlkKKworMDAtMDctRDggICAoaGV4KQkJSGl0cm9uIFN5c3RlbXMgSW5jLgorMDAwN0Q4ICAgICAoYmFzZSAxNikJCUhpdHJvbiBTeXN0ZW1zIEluYy4KKwkJCQkxMzUtMjIwIEhpdHJvbiBCL0QgNzI2LTUKKwkJCQlTdXNvLURvbmcsIEthbmduYW0gR3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LUQ5ICAgKGhleCkJCVNwbGljZWNvbQorMDAwN0Q5ICAgICAoYmFzZSAxNikJCVNwbGljZWNvbQorCQkJCUxpdHRsZSBHaWxsaW9ucywgVGhlIEdyZWVuCisJCQkJQ3JveGxleSBHcmVlbiwgUmlja21hbnN3b3J0aAorCQkJCUhlcnRzICBXRDMgM0hZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDctREEgICAoaGV4KQkJTmV1cm8gVGVsZWNvbSBDby4sIEx0ZC4KKzAwMDdEQSAgICAgKGJhc2UgMTYpCQlOZXVybyBUZWxlY29tIENvLiwgTHRkLgorCQkJCTJGIE1pc3VuZyBCL0QsIDkzOC03CisJCQkJSG9nZS1kb25nLCBEb25nYW4tZ3UKKwkJCQlLeXVuZ2dpLWRvICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctREIgICAoaGV4KQkJS2lyYW5hIE5ldHdvcmtzLCBJbmMuCiswMDA3REIgICAgIChiYXNlIDE2KQkJS2lyYW5hIE5ldHdvcmtzLCBJbmMuCisJCQkJMzMxIE5ld21hbiBTcHJpbmdzIFJvYWQKKwkJCQlCbGRnLiAxIDR0aCBGbG9vcgorCQkJCVJlZCBCYW5rIE5KIDA3NzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1EQyAgIChoZXgpCQlBdGVrIENvLCBMdGQuCiswMDA3REMgICAgIChiYXNlIDE2KQkJQXRlayBDbywgTHRkLgorCQkJCUIgZG9uZyAjMjA1IGhhbnlhbmcgdmVudHVyZSBwYXJrCisJCQkJNjg1LTIwIHNvbmdzdTFnYWRvbmcgc29uZyBkb25nZ3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy1ERCAgIChoZXgpCQlDcmFkbGUgVGVjaG5vbG9naWVzCiswMDA3REQgICAgIChiYXNlIDE2KQkJQ3JhZGxlIFRlY2hub2xvZ2llcworCQkJCTMxMzAgV2VzdCBXYXJyZW4gQXZlLgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LURFICAgKGhleCkJCWVDb3BpbHQgQUIKKzAwMDdERSAgICAgKGJhc2UgMTYpCQllQ29waWx0IEFCCisJCQkJVmVkZGVzdGF2YWdlbiAyNAorCQkJCVNFLTE3NSA2MiBKYXJmYWxsYQorCQkJCVNXRURFTgorCiswMC0wNy1ERiAgIChoZXgpCQlWYnJpY2sgU3lzdGVtcyBJbmMuCiswMDA3REYgICAgIChiYXNlIDE2KQkJVmJyaWNrIFN5c3RlbXMgSW5jLgorCQkJCTEyIEJlYXVtb250IFJvYWQKKwkJCQlXYWxsaW5nZm9yZCBDVCAwNjQ5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRTAgICAoaGV4KQkJUGFsbSBJbmMuCiswMDA3RTAgICAgIChiYXNlIDE2KQkJUGFsbSBJbmMuCisJCQkJOTUwIFdlc3QgTWF1ZGUgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1LTI4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUUxICAgKGhleCkJCVdJUyBDb21tdW5pY2F0aW9ucyBDby4gTHRkLgorMDAwN0UxICAgICAoYmFzZSAxNikJCVdJUyBDb21tdW5pY2F0aW9ucyBDby4gTHRkLgorCQkJCTQvRiBCdWlsZGluZyA1MzMKKwkJCQlCdWd1YSBTaXh0aCBSb2FkCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIFByb3ZpZGVuY2UgIAorCQkJCUNISU5BCisKKzAwLTA3LUUyICAgKGhleCkJCUJpdHdvcmtzLCBJbmMuCiswMDA3RTIgICAgIChiYXNlIDE2KQkJQml0d29ya3MsIEluYy4KKwkJCQkjMSBCaXR3b3JrcyBXYXkKKwkJCQlQcmFpcmllIEdyb3ZlIEFSIDcyNzUzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1FMyAgIChoZXgpCQlOYXZjb20gVGVjaG5vbG9neSwgSW5jLgorMDAwN0UzICAgICAoYmFzZSAxNikJCU5hdmNvbSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTIzIFdlc3QgVG9ycmFuY2UgQmx2ZC4sCisJCQkJU3VpdGUgMTAxCisJCQkJUmVkb25kbyBCZWFjaCBDQSA5MDI3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRTQgICAoaGV4KQkJU29mdFJhZGlvIENvLiwgTHRkLgorMDAwN0U0ICAgICAoYmFzZSAxNikJCVNvZnRSYWRpbyBDby4sIEx0ZC4KKwkJCQkyRiwgRG9uZy1Cb2sgQi9EIDY0NS0xOAorCQkJCVllb2tzYW0tRG9uZywgS2FuZ25hbS1HdQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctRTUgICAoaGV4KQkJQ291cCBDb3Jwb3JhdGlvbgorMDAwN0U1ICAgICAoYmFzZSAxNikJCUNvdXAgQ29ycG9yYXRpb24KKwkJCQkxLTI0LTQgTWFydXNlbiAybmQgQmxkLiA0RiwKKwkJCQlIaWdhc2hpLVVlbm8sIFRhaXRvLWt1CisJCQkJVG9reW8gIAorCQkJCUpBUEFOCisKKzAwLTA3LUU2ICAgKGhleCkJCWVkZ2VmbG93IENhbmFkYSBJbmMuCiswMDA3RTYgICAgIChiYXNlIDE2KQkJZWRnZWZsb3cgQ2FuYWRhIEluYy4KKwkJCQkzMjkgTWFyY2ggUm9hZAorCQkJCUthbmF0YSwgT250YXJpbworCQkJCUsySyAyRTEKKwkJCQlDQU5BREEKKworMDAtMDctRTcgICAoaGV4KQkJRnJlZVdhdmUgVGVjaG5vbG9naWVzCiswMDA3RTcgICAgIChiYXNlIDE2KQkJRnJlZVdhdmUgVGVjaG5vbG9naWVzCisJCQkJMTg4MCBTLiBGbGFpdHJvbiBDdC4KKwkJCQlTdGUuIEYKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1FOCAgIChoZXgpCQlTdC4gQmVybmFyZCBTb2Z0d2FyZQorMDAwN0U4ICAgICAoYmFzZSAxNikJCVN0LiBCZXJuYXJkIFNvZnR3YXJlCisJCQkJMTUwMTUgQXZlbnVlIG9mIFNjaWVuY2UKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUU5ICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDA3RTkgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlNUzogIEpGMy00MjAKKwkJCQkyMTExIE5FIDI1dGggQXZlLgorCQkJCUhpbGxzYm9ybyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRUEgICAoaGV4KQkJTWFzc2FuYSwgSW5jLgorMDAwN0VBICAgICAoYmFzZSAxNikJCU1hc3NhbmEsIEluYy4KKwkJCQkyOTAxIFRhc21hbiBEcml2ZQorCQkJCVN1aXRlIDEwNgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1FQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKzAwMDdFQiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUVDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMgSW5jLgorMDAwN0VDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRUQgICAoaGV4KQkJQWx0ZXJhIENvcnBvcmF0aW9uCiswMDA3RUQgICAgIChiYXNlIDE2KQkJQWx0ZXJhIENvcnBvcmF0aW9uCisJCQkJMTAxIElubm92YXRpb24gRHJpdmUKKwkJCQlNUyAyMzA1CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUVFICAgKGhleCkJCXRlbGNvIEluZm9ybWF0aW9uc3N5c3RlbWUgR21iSAorMDAwN0VFICAgICAoYmFzZSAxNikJCXRlbGNvIEluZm9ybWF0aW9uc3N5c3RlbWUgR21iSAorCQkJCVNjaHVsc3RyYXNzZSAzOAorCQkJCUQgMDkxMiBDaGVtbml0egorCQkJCUdFUk1BTlkKKworMDAtMDctRUYgICAoaGV4KQkJTG9ja2hlZWQgTWFydGluIFRhY3RpY2FsIFN5c3RlbXMKKzAwMDdFRiAgICAgKGJhc2UgMTYpCQlMb2NraGVlZCBNYXJ0aW4gVGFjdGljYWwgU3lzdGVtcworCQkJCTMzMzMgUGlsb3QgS25vYiBSb2FkCisJCQkJRWFnYW4gTU4gNTUxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUYwICAgKGhleCkJCUxvZ2lTeW5jIExMQworMDAwN0YwICAgICAoYmFzZSAxNikJCUxvZ2lTeW5jIExMQworCQkJCTEzMTMgTGVhciBJbmR1c3RyaWFsIFBhcmt3YXkKKwkJCQlBdm9uIE9IIDQ0MDExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1GMSAgIChoZXgpCQlUZXJhQnVyc3QgTmV0d29ya3MgSW5jLgorMDAwN0YxICAgICAoYmFzZSAxNikJCVRlcmFCdXJzdCBOZXR3b3JrcyBJbmMuCisJCQkJOTg1IFN0ZXdhcnQgRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUYyICAgKGhleCkJCUlPQSBDb3Jwb3JhdGlvbgorMDAwN0YyICAgICAoYmFzZSAxNikJCUlPQSBDb3Jwb3JhdGlvbgorCQkJCTM1MCBQb3RyZXJvIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUYzICAgKGhleCkJCVRoaW5rZW5naW5lIE5ldHdvcmtzCiswMDA3RjMgICAgIChiYXNlIDE2KQkJVGhpbmtlbmdpbmUgTmV0d29ya3MKKwkJCQkxMDAgTmlja2Vyc29uIFJvYWQKKwkJCQlNYXJsYm9yb3VnaCBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRjQgICAoaGV4KQkJRWxldGV4IENvLiwgTHRkLgorMDAwN0Y0ICAgICAoYmFzZSAxNikJCUVsZXRleCBDby4sIEx0ZC4KKwkJCQk4LTItNTYgTmFua291LUhpZ2FzaGkgU3VtaW5vZS1rdQorCQkJCU9zYWthIDU1OS0wMDMxCisJCQkJSkFQQU4KKworMDAtMDctRjUgICAoaGV4KQkJQnJpZGdlY28gQ28gQUcKKzAwMDdGNSAgICAgKGJhc2UgMTYpCQlCcmlkZ2VjbyBDbyBBRworCQkJCVJpbmdzdHIuIDE0CisJCQkJQ0ggODYwMCBEdWViZW5kb3JmCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMDctRjYgICAoaGV4KQkJUXFlc3QgU29mdHdhcmUgU3lzdGVtcworMDAwN0Y2ICAgICAoYmFzZSAxNikJCVFxZXN0IFNvZnR3YXJlIFN5c3RlbXMKKwkJCQk4NjAgRWFzdCA0NTAwIFNvdXRoICMyMDAKKwkJCQlNdXJyYXkgVVQgODQxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUY3ICAgKGhleCkJCUdhbHRyb25pY3MKKzAwMDdGNyAgICAgKGJhc2UgMTYpCQlHYWx0cm9uaWNzCisJCQkJNDY0NSBFYXN0IENvdHRvbiBDZW50ZXIgQmx2ZC4KKwkJCQlCbGRnLiBUd28KKwkJCQlQaG9lbml4IEFaIDg1MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1GOCAgIChoZXgpCQlJVERldmljZXMsIEluYy4KKzAwMDdGOCAgICAgKGJhc2UgMTYpCQlJVERldmljZXMsIEluYy4KKwkJCQk2MDYgMTEwdGggQXZlLiBORQorCQkJCUJlbGxldnVlIFdBIDk4MDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1GOSAgIChoZXgpCQlQaG9uZXRpY3MsIEluYy4KKzAwMDdGOSAgICAgKGJhc2UgMTYpCQlQaG9uZXRpY3MsIEluYy4KKwkJCQk5MDEgVHJ5ZW5zIFJvYWQKKwkJCQlBc3RvbiBQQSAxOTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRkEgICAoaGV4KQkJSVRUIENvLiwgTHRkLgorMDAwN0ZBICAgICAoYmFzZSAxNikJCUlUVCBDby4sIEx0ZC4KKwkJCQkxLTE0LTcsIE11a29oanl1a3UsCisJCQkJSGFtYW1hdHN1LCBTaGl6dW9rYSA0MzAKKwkJCQlKQVBBTgorCiswMC0wNy1GQiAgIChoZXgpCQlHaWdhIFN0cmVhbSBVTVRTIFRlY2hub2xvZ2llcyBHbWJICiswMDA3RkIgICAgIChiYXNlIDE2KQkJR2lnYSBTdHJlYW0gVU1UUyBUZWNobm9sb2dpZXMgR21iSAorCQkJCUtvbnJhZC1adXNlLVN0cmFiZSA3CisJCQkJRC02NjExNSBTYWFyYnJ1Y2tlbgorCQkJCUdFUk1BTlkKKworMDAtMDctRkMgICAoaGV4KQkJQWRlcHQgU3lzdGVtcyBJbmMuCiswMDA3RkMgICAgIChiYXNlIDE2KQkJQWRlcHQgU3lzdGVtcyBJbmMuCisJCQkJMjQyIEVhc3QgNjAwIE5vcnRoCisJCQkJTGluZG9uIFVUIDg0MDU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1GRCAgIChoZXgpCQlMQU5lcmd5IEx0ZC4KKzAwMDdGRCAgICAgKGJhc2UgMTYpCQlMQU5lcmd5IEx0ZC4KKwkJCQlJbXBlcmlhbCBIb3VzZSwgSW1wZXJpYWwgV2F5CisJCQkJTmV3cG9ydCwgR3dlbnQgTlAxMCA4VUgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy1GRSAgIChoZXgpCQlSaWdha3UgQ29ycG9yYXRpb24KKzAwMDdGRSAgICAgKGJhc2UgMTYpCQlSaWdha3UgQ29ycG9yYXRpb24KKwkJCQkzLTktMTIsIE1hdHN1YmFyYS1jaG8KKwkJCQlBa2lzaGltYS1zaGkKKwkJCQlUb2t5byAgMTk2LTg2NjYKKwkJCQlKQVBBTgorCiswMC0wNy1GRiAgIChoZXgpCQlHbHVvbiBOZXR3b3JrcworMDAwN0ZGICAgICAoYmFzZSAxNikJCUdsdW9uIE5ldHdvcmtzCisJCQkJNTQwMSBPbGQgUmVkd29vZCBId3kuCisJCQkJUGV0YWx1bWEgQ0EgOTQ5NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTAwICAgKGhleCkJCU1VTFRJVEVDSCBTWVNURU1TLCBJTkMuCiswMDA4MDAgICAgIChiYXNlIDE2KQkJTVVMVElURUNIIFNZU1RFTVMsIElOQy4KKwkJCQkyMjA1IFdPT0RBTEUgRFJJVkUKKwkJCQlNT1VORFMgVklFVyBNTiA1NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMDEgICAoaGV4KQkJSGlnaFNwZWVkIFN1cmZpbmcgSW5jLgorMDAwODAxICAgICAoYmFzZSAxNikJCUhpZ2hTcGVlZCBTdXJmaW5nIEluYy4KKwkJCQk0NDc5MCBTLiBHcmltbWVyIEJsdmQuCisJCQkJU3VpdGUgMTAwCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMDIgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDA4MDIgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTAzICAgKGhleCkJCUNvcyBUcm9uCiswMDA4MDMgICAgIChiYXNlIDE2KQkJQ29zIFRyb24KKwkJCQkzRiBCb29saW0gQi9ELCAxNDMxLTIyLAorCQkJCUt3YW55YW5nLURvbmcsIERvbmdvbi1HdSwKKwkJCQlBbnlhbmcgIDQzMS0wNjEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtMDQgICAoaGV4KQkJSUNBIEluYy4KKzAwMDgwNCAgICAgKGJhc2UgMTYpCQlJQ0EgSW5jLgorCQkJCTU0Mi0xIE5vZ3VraQorCQkJCUt1a2ktc2hpLCBTYWl0YW1uCisJCQkJSkFQQU4KKworMDAtMDgtMDUgICAoaGV4KQkJVGVjaG5vLUhvbG9uIENvcnBvcmF0aW9uCiswMDA4MDUgICAgIChiYXNlIDE2KQkJVGVjaG5vLUhvbG9uIENvcnBvcmF0aW9uCisJCQkJMy0xOS0yLCBUYWthbWF0c3UtY2hvCisJCQkJVGFjaGlrYXdhLXNoaQorCQkJCVRva3lvICAxOTAtMDAxMQorCQkJCUpBUEFOCisKKzAwLTA4LTA2ICAgKGhleCkJCVJhb25ldCBTeXN0ZW1zLCBJbmMuCiswMDA4MDYgICAgIChiYXNlIDE2KQkJUmFvbmV0IFN5c3RlbXMsIEluYy4KKwkJCQlXZXN0IFdpbmcgMTRGLCBJVCBWZW50dXJlIFRvd2VyIDc4CisJCQkJR2FyYWtib24tZG9uZywgU29uZ3BhLAorCQkJCVNlb3VsICAxMzgtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTA3ICAgKGhleCkJCUFjY2VzcyBEZXZpY2VzIExpbWl0ZWQKKzAwMDgwNyAgICAgKGJhc2UgMTYpCQlBY2Nlc3MgRGV2aWNlcyBMaW1pdGVkCisJCQkJU2l4dGggRmxvb3IsIDU4IE94YnJpZGdlIFJvYWQKKwkJCQlFYWxpbmcsIExvbmRvbiBXNSAyU1QKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wOC0wOCAgIChoZXgpCQlQUFQgVmlzaW9uLCBJbmMuCiswMDA4MDggICAgIChiYXNlIDE2KQkJUFBUIFZpc2lvbiwgSW5jLgorCQkJCTEyOTg4IFZhbGxleSBWaWV3IFJkLgorCQkJCUVkZW4gUHJhaXJpZSBNTiA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMDkgICAoaGV4KQkJU3lzdGVtb25pYyBBRworMDAwODA5ICAgICAoYmFzZSAxNikJCVN5c3RlbW9uaWMgQUcKKwkJCQlBbSBXYWxkc2NobG9lc3NjaGVuIDEKKwkJCQlELTAxMDk5IERyZXNkZW4KKwkJCQlHRVJNQU5ZCisKKzAwLTA4LTBBICAgKGhleCkJCUVzcGVyYS1XZXJrZSBHbWJICiswMDA4MEEgICAgIChiYXNlIDE2KQkJRXNwZXJhLVdlcmtlIEdtYkgKKwkJCQlNb2x0a2VzdHJhc3NlIDE3LSAzMworCQkJCTQ3MDU4IER1aXNidXJnCisJCQkJR0VSTUFOWQorCiswMC0wOC0wQiAgIChoZXgpCQlCaXJrYSBCUEEgSW5mb3JtYXRpb25zc3lzdGVtIEFCCiswMDA4MEIgICAgIChiYXNlIDE2KQkJQmlya2EgQlBBIEluZm9ybWF0aW9uc3N5c3RlbSBBQgorCQkJCUJveCAyMDEwMAorCQkJCTE2MSAwMiBCcm9tbWEKKwkJCQlTV0VERU4KKworMDAtMDgtMEMgICAoaGV4KQkJVkRBIEVsZXR0cm9uaWNhIHNwYQorMDAwODBDICAgICAoYmFzZSAxNikJCVZEQSBFbGV0dHJvbmljYSBzcGEKKwkJCQlWaWFsZSBMaW5vIFphbnVzc2ksIDMKKwkJCQkzMzE3MCBQb3JkZW5vbmUgCisJCQkJSVRBTFkKKworMDAtMDgtMEQgICAoaGV4KQkJVG9zaGliYQorMDAwODBEICAgICAoYmFzZSAxNikJCVRvc2hpYmEKKwkJCQkyLTksIFN1ZWhpcm8tY2hvLAorCQkJCU9tZS1jaXR5LAorCQkJCVRva3lvICAxOTgtODcxMAorCQkJCUpBUEFOCisKKzAwLTA4LTBFICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAwODBFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHIuCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0wRiAgIChoZXgpCQlQcm94aW1pb24gRmliZXIgT3B0aWNzIEFCCiswMDA4MEYgICAgIChiYXNlIDE2KQkJUHJveGltaW9uIEZpYmVyIE9wdGljcyBBQgorCQkJCUlzYWZqb3Jkc2dhdGFuIDkKKwkJCQlTRS0xNjQ0MCBLaXN0YQorCQkJCVNXRURFTgorCiswMC0wOC0xMCAgIChoZXgpCQlLZXkgVGVjaG5vbG9neSwgSW5jLgorMDAwODEwICAgICAoYmFzZSAxNikJCUtleSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTUwIEF2ZXJ5IFN0LgorCQkJCVdhbGxhIFdhbGxhIFdBIDk5MzYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0xMSAgIChoZXgpCQlWT0lYIENvcnBvcmF0aW9uCiswMDA4MTEgICAgIChiYXNlIDE2KQkJVk9JWCBDb3Jwb3JhdGlvbgorCQkJCTE5OTEtMyA0dGggRmxvb3IgVG9wJ3MgVmVudHVyZSBUb3dlcgorCQkJCVNlbyBDaG8tRG9uZywgU2VvIGNoby1ndQorCQkJCVNlb3VsICAxMzgtMDkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTEyICAgKGhleCkJCUdNLTIgQ29ycG9yYXRpb24KKzAwMDgxMiAgICAgKGJhc2UgMTYpCQlHTS0yIENvcnBvcmF0aW9uCisJCQkJU2hpYmEtTWF0dXNoaXJhLUJsZGcuCisJCQkJNkYgMy0zLTEyLFNoaWJhCisJCQkJVG9reW8gTWluYXRvLWt1IDEwNS0wMDE0CisJCQkJSkFQQU4KKworMDAtMDgtMTMgICAoaGV4KQkJRGlza2JhbmssIEluYy4KKzAwMDgxMyAgICAgKGJhc2UgMTYpCQlEaXNrYmFuaywgSW5jLgorCQkJCTNGIEZvY3VzIEJ1aWxkaW5nLCA3MjUtMjUKKwkJCQlZZW9rc2FtLWRvbmcsIEthbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC0xNCAgIChoZXgpCQlUSUwgVGVjaG5vbG9naWVzCiswMDA4MTQgICAgIChiYXNlIDE2KQkJVElMIFRlY2hub2xvZ2llcworCQkJCUV1cm9wYXJrIERlUGljaGF1cnksIEJBVCA5CisJCQkJMTM4NTYgQUlYIGVuIFByb3ZpZGVuY2UKKwkJCQlGUkFOQ0UKKworMDAtMDgtMTUgICAoaGV4KQkJQ0FUUyBDby4sIEx0ZC4KKzAwMDgxNSAgICAgKGJhc2UgMTYpCQlDQVRTIENvLiwgTHRkLgorCQkJCTc1MS0yIEthY2hpZGEtY2hvLAorCQkJCVRzdXp1a2kta3UsIFlva29oYW1hCisJCQkJMjI0LTAwMzQKKwkJCQlKQVBBTgorCiswMC0wOC0xNiAgIChoZXgpCQlCbHVldGFncyBBL1MKKzAwMDgxNiAgICAgKGJhc2UgMTYpCQlCbHVldGFncyBBL1MKKwkJCQlOeXRvcnYgMTEsIDQgRmxvb3IKKwkJCQk5MDAwIEFhbGJvcmcKKwkJCQlERU5NQVJLCisKKzAwLTA4LTE3ICAgKGhleCkJCUVtZXJnZUNvcmUgTmV0d29ya3MgTExDCiswMDA4MTcgICAgIChiYXNlIDE2KQkJRW1lcmdlQ29yZSBOZXR3b3JrcyBMTEMKKwkJCQkxMDU0MiBTLiBKb3JkYW4gR2F0ZXdheQorCQkJCVN1aXRlIDE1MAorCQkJCVNvdXRoIEpvcmRhbiBVVCA4NDA5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMTggICAoaGV4KQkJUGl4ZWx3b3JrcywgSW5jLgorMDAwODE4ICAgICAoYmFzZSAxNikJCVBpeGVsd29ya3MsIEluYy4KKwkJCQk3NzAwIFNXIE1vaGF3ayBTdHJlZXQKKwkJCQlUdWFsYXRpbiBPUiA5NzA2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMTkgICAoaGV4KQkJQmFua3N5cworMDAwODE5ICAgICAoYmFzZSAxNikJCUJhbmtzeXMKKwkJCQlIYWFjaHRzZXN0ZWVud2VnIDE0NDIKKwkJCQkxMTMwIEJydXNzZWwKKwkJCQlCRUxHSVVNCisKKzAwLTA4LTFBICAgKGhleCkJCVNhbnJhZCBJbnRlbGxpZ2VuY2UgU3RvcmFnZSBDb21tdW5pY2F0aW9ucyAoMjAwMCkgTHRkLgorMDAwODFBICAgICAoYmFzZSAxNikJCVNhbnJhZCBJbnRlbGxpZ2VuY2UgU3RvcmFnZSBDb21tdW5pY2F0aW9ucyAoMjAwMCkgTHRkLgorCQkJCTMyIEhhYmFyemVsIFN0LiwgRW50cmFjZSBCCisJCQkJVGVsLUF2aXYgNjk3MTAKKwkJCQlJU1JBRUwKKworMDAtMDgtMUIgICAoaGV4KQkJV2luZGlnbyBTeXN0ZW1zCiswMDA4MUIgICAgIChiYXNlIDE2KQkJV2luZGlnbyBTeXN0ZW1zCisJCQkJMjIxMCBPJ1Rvb2xlIEF2ZS4gIzIwMAorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0xQyAgIChoZXgpCQlAcG9zLmNvbQorMDAwODFDICAgICAoYmFzZSAxNikJCUBwb3MuY29tCisJCQkJMzA1MSBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMUQgICAoaGV4KQkJSXBzaWwsIEluY29ycG9yYXRlZAorMDAwODFEICAgICAoYmFzZSAxNikJCUlwc2lsLCBJbmNvcnBvcmF0ZWQKKwkJCQk3OTQ1IE1hY0FydGh1ciBCbHZkLgorCQkJCVN1aXRlIDIxMgorCQkJCUNhYmluIEpvaG4gTUQgMjA4MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTFFICAgKGhleCkJCVJlcGVhdGl0IEFCCiswMDA4MUUgICAgIChiYXNlIDE2KQkJUmVwZWF0aXQgQUIKKwkJCQlGYXJvZ2F0YW4gNworCQkJCVNFMTY0NDAgS2lzdGEKKwkJCQlTV0VERU4KKworMDAtMDgtMUYgICAoaGV4KQkJUG91IFl1ZW4gVGVjaCBDb3JwLiBMdGQuCiswMDA4MUYgICAgIChiYXNlIDE2KQkJUG91IFl1ZW4gVGVjaCBDb3JwLiBMdGQuCisJCQkJMTZGLCBOby4gMTA3LCBTZWN0LiAzLCBUYWljaHVuZyBLZW5nIFJkLgorCQkJCVRhaWNodW5nIENpdHkgNDA3LAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtMjAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcyBJbmMuCiswMDA4MjAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcyBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0yMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKzAwMDgyMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTIyICAgKGhleCkJCUluUHJvIENvbW0KKzAwMDgyMiAgICAgKGJhc2UgMTYpCQlJblBybyBDb21tCisJCQkJMTFGLCBOby4gOTMgU2h1ZWktWXVhbiBTdHJlZXQKKwkJCQlIc2luY2h1LCAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA4LTIzICAgKGhleCkJCVRleGEgQ29ycC4KKzAwMDgyMyAgICAgKGJhc2UgMTYpCQlUZXhhIENvcnAuCisJCQkJTmFyYSBCbGRnLiAzRiwgMi0yLTggU2hpbi1Zb2tvaGFtYSwKKwkJCQlLb2hva3Uta3UsIFlva29oYW1hCisJCQkJMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0wOC0yNCAgIChoZXgpCQlDb3BpdHJhayBJbmMKKzAwMDgyNCAgICAgKGJhc2UgMTYpCQlDb3BpdHJhayBJbmMKKwkJCQk4MzkwIE1heXJhbmQgU3RyZWV0CisJCQkJTW9udHJlYWwgIFF1ZWJlYyBINFAgMkM5CisJCQkJQ0FOQURBCisKKzAwLTA4LTI1ICAgKGhleCkJCUFjbWUgUGFja2V0CiswMDA4MjUgICAgIChiYXNlIDE2KQkJQWNtZSBQYWNrZXQKKwkJCQk3MSBUaGlyZCBBdmVudWUKKwkJCQlCdXJsbGluZ3RvbgorCQkJCVdvYnVybiBNQSAwMTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMjYgICAoaGV4KQkJQ29sb3JhZG8gTWVkIFRlY2gKKzAwMDgyNiAgICAgKGJhc2UgMTYpCQlDb2xvcmFkbyBNZWQgVGVjaAorCQkJCTYxNzUgTG9uZ2JvdyBEci4KKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0yNyAgIChoZXgpCQlQaXJlbGxpIEJyb2FkYmFuZCBTb2x1dGlvbnMKKzAwMDgyNyAgICAgKGJhc2UgMTYpCQlQaXJlbGxpIEJyb2FkYmFuZCBTb2x1dGlvbnMKKwkJCQlWaWFsZSBTYXJjYSAyMjIKKwkJCQlNaWxhbm8gMjAxMjYKKwkJCQlJVEFMWQorCiswMC0wOC0yOCAgIChoZXgpCQlLb2VpIEVuZ2luZWVyaW5nIEx0ZC4KKzAwMDgyOCAgICAgKGJhc2UgMTYpCQlLb2VpIEVuZ2luZWVyaW5nIEx0ZC4KKwkJCQkzLTQwLCA1LUNob21lCisJCQkJS2lyZS1uaXNoaSBIaXJhbm8ta3UKKwkJCQlPc2FrdSAgNTQ3LTAwMjYKKwkJCQlKQVBBTgorCiswMC0wOC0yOSAgIChoZXgpCQlBdmFsIE5hZ2FzYWtpIENvcnBvcmF0aW9uCiswMDA4MjkgICAgIChiYXNlIDE2KQkJQXZhbCBOYWdhc2FraSBDb3Jwb3JhdGlvbgorCQkJCTYtNDIgVHVrdWJhIElzYWhheWEKKwkJCQlOYWdhc2FraQorCQkJCTg1NC0wMDY1CisJCQkJSkFQQU4KKworMDAtMDgtMkEgICAoaGV4KQkJUG93ZXJ3YWxseiBOZXR3b3JrIFNlY3VyaXR5CiswMDA4MkEgICAgIChiYXNlIDE2KQkJUG93ZXJ3YWxseiBOZXR3b3JrIFNlY3VyaXR5CisJCQkJMTIwLTEzMTYwIFZhbmllciBQbGFjZSwKKwkJCQlSaWNobW9uZCwgQkMsCisJCQkJVjZWIDJKMgorCQkJCUNBTkFEQQorCiswMC0wOC0yQiAgIChoZXgpCQlXb29rc3VuZyBFbGVjdHJvbmljcywgSW5jLgorMDAwODJCICAgICAoYmFzZSAxNikJCVdvb2tzdW5nIEVsZWN0cm9uaWNzLCBJbmMuCisJCQkJSmFoby1CbGRnLiA2RiwgVGFuYmFuZy1Eb25nLAorCQkJCVNlby1HdSwgVGFlam9uLCAzMDItMjIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTJDICAgKGhleCkJCUhvbWFnIEFHCiswMDA4MkMgICAgIChiYXNlIDE2KQkJSG9tYWcgQUcKKwkJCQlBYnQuIEVzdC4sIEhvbWFnIFN0ci4gMy01CisJCQkJRC03MjI5NiBTY2hvcGZsb2NoCisJCQkJR0VSTUFOWQorCiswMC0wOC0yRCAgIChoZXgpCQlJbmR1cyBUZXFzaXRlIFByaXZhdGUgTGltaXRlZAorMDAwODJEICAgICAoYmFzZSAxNikJCUluZHVzIFRlcXNpdGUgUHJpdmF0ZSBMaW1pdGVkCisJCQkJIzcsIEFyeWEgR293ZGVyIFJvYWQsCisJCQkJV2VzdCBNYW1iYWxhbSwgQ2hlbm5haSwKKwkJCQlUYW1pbCBOYWR1ICA2MDAwMzMKKwkJCQlJTkRJQQorCiswMC0wOC0yRSAgIChoZXgpCQlNdWx0aXRvbmUgRWxlY3Ryb25pY3MgUExDCiswMDA4MkUgICAgIChiYXNlIDE2KQkJTXVsdGl0b25lIEVsZWN0cm9uaWNzIFBMQworCQkJCU11bHRpdG9uZSBIb3VzZSwgQmVnZ2Fyd29vZCBMYW5lCisJCQkJQmFzaW5nc3Rva2UgUkcyMyA3TEwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wOC00RSAgIChoZXgpCQlEaXZlcmdlTmV0LCBJbmMuCiswMDA4NEUgICAgIChiYXNlIDE2KQkJRGl2ZXJnZU5ldCwgSW5jLgorCQkJCTIxNDIgQmVyaW5nIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC00RiAgIChoZXgpCQlRdWFsc3RhciBDb3Jwb3JhdGlvbgorMDAwODRGICAgICAoYmFzZSAxNikJCVF1YWxzdGFyIENvcnBvcmF0aW9uCisJCQkJMzk5MEIgSGVyaXRhZ2UgT2FrIENvdXJ0CisJCQkJU2ltaSBWYWxsZXkgQ0EgOTMwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTUwICAgKGhleCkJCUFyaXpvbmEgSW5zdHJ1bWVudCBDb3JwLgorMDAwODUwICAgICAoYmFzZSAxNikJCUFyaXpvbmEgSW5zdHJ1bWVudCBDb3JwLgorCQkJCTE5MTIgVy4gNHRoIFN0cmVldAorCQkJCVRlbXBlIEFaIDg1MjgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC01MSAgIChoZXgpCQlDYW5hZGlhbiBCYW5rIE5vdGUgQ29tcGFueSwgTHRkLgorMDAwODUxICAgICAoYmFzZSAxNikJCUNhbmFkaWFuIEJhbmsgTm90ZSBDb21wYW55LCBMdGQuCisJCQkJMTggQXVyaWdhIERyLgorCQkJCU5lcGVhbiwgT250LgorCQkJCUsyRSA3VDkKKwkJCQlDQU5BREEKKworMDAtMDgtNTIgICAoaGV4KQkJRGF2b2xpbmsgQ28uIEluYy4KKzAwMDg1MiAgICAgKGJhc2UgMTYpCQlEYXZvbGluayBDby4gSW5jLgorCQkJCVJvb20tNjA0LCBLdW1od2EgUGxhemEsCisJCQkJMTE0Mi01LCBTYW5ib24tRG9uZywgS3VucG8tU2kKKwkJCQlLeXVuZ2dpLURvICA0MzUtMDQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTUzICAgKGhleCkJCVNjaGxlaWNoZXIgR21iSCAmIENvLiBSZWxhaXN3ZXJrZSBLRworMDAwODUzICAgICAoYmFzZSAxNikJCVNjaGxlaWNoZXIgR21iSCAmIENvLiBSZWxhaXN3ZXJrZSBLRworCQkJCVBpY2hlbHN3ZXJkZXJzdHJhc3NlIDMtNQorCQkJCUQtMTM1OTcgQmVybGluCisJCQkJR0VSTUFOWQorCiswMC0wOC01NCAgIChoZXgpCQlOZXRyb25peCwgSW5jLgorMDAwODU0ICAgICAoYmFzZSAxNikJCU5ldHJvbml4LCBJbmMuCisJCQkJM0YtMSwgTm8uIDMxLCBIc2luLVRhaSBSb2FkLAorCQkJCUNodXBlaSBDaXR5LCBIc2luY2h1IEhzaWVuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC01NSAgIChoZXgpCQlOQVNBLUdvZGRhcmQgU3BhY2UgRmxpZ2h0IENlbnRlcgorMDAwODU1ICAgICAoYmFzZSAxNikJCU5BU0EtR29kZGFyZCBTcGFjZSBGbGlnaHQgQ2VudGVyCisJCQkJQ29kZSA1NjEKKwkJCQlHcmVlbmJlbHQgTUQgMjA3NzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTU2ICAgKGhleCkJCUdhbWF0cm9uaWMgRWxlY3Ryb25pYyBJbmR1c3RyaWVzIEx0ZC4KKzAwMDg1NiAgICAgKGJhc2UgMTYpCQlHYW1hdHJvbmljIEVsZWN0cm9uaWMgSW5kdXN0cmllcyBMdGQuCisJCQkJSGFydHVtIFN0cmVldCAxNAorCQkJCUplcnVzYWxlbSA5Nzc3NAorCQkJCUlTUkFFTAorCiswMC0wOC01NyAgIChoZXgpCQlQb2xhcmlzIE5ldHdvcmtzLCBJbmMuCiswMDA4NTcgICAgIChiYXNlIDE2KQkJUG9sYXJpcyBOZXR3b3JrcywgSW5jLgorCQkJCTY4MTAgU2FudGEgVGVyZXNhIEJsdmQuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTU4ICAgKGhleCkJCU5vdmF0ZWNobm9sb2d5IEluYy4KKzAwMDg1OCAgICAgKGJhc2UgMTYpCQlOb3ZhdGVjaG5vbG9neSBJbmMuCisJCQkJTm92YSBCbGRnLiA0RiA2NDEgMDMKKwkJCQlZdWtzYW0tRG9uZyBLYW5nbmFtLWt1CisJCQkJU2VvdWwgIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtNTkgICAoaGV4KQkJU2hlblpoZW4gVW5pdG9uZSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMDg1OSAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBVbml0b25lIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTIgU291dGhlcm4gRmxvb3IgNzAyIEJ1aWxkaW5nCisJCQkJQmFHdWFMaW5nIEluZHVzdHJpYWwgWm9uZSBTaGVuemhlbgorCQkJCUNISU5BCisKKzAwLTA4LTVBICAgKGhleCkJCUludGlHYXRlIEluYy4KKzAwMDg1QSAgICAgKGJhc2UgMTYpCQlJbnRpR2F0ZSBJbmMuCisJCQkJMzA5RSBJVCBWZW50dXJlIFRvd2VyCisJCQkJNzgsIEdhcmFrYm9uLURvbmcsIFNvbmdwYS1HdQorCQkJCVNlb3VsICAxMzgtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTVCICAgKGhleCkJCUhhbmJpdCBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMDg1QiAgICAgKGJhc2UgMTYpCQlIYW5iaXQgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJNDE0LTUsIFdvbmNoZW9uLURvbmcsIFBhbGRhbC1HdQorCQkJCVN1d29uLUNpdHksIEt5b3VuZ2tpLURvLCA0NDItODIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTVDICAgKGhleCkJCVNoYW5naGFpIERhcmUgVGVjaG5vbG9naWVzIENvLiBMdGQuCiswMDA4NUMgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgRGFyZSBUZWNobm9sb2dpZXMgQ28uIEx0ZC4KKwkJCQkyM0YsIENoaW5hIE1lcmNoYW50cyBUb3dlciwKKwkJCQlOby4gMTYxLCBFYXN0IEx1amlhWnVpIFJvYWQKKwkJCQlQdWRvbmcgTmV3IEFyZWEsIFNoYW5naGFpIAorCQkJCUNISU5BCisKKzAwLTA4LTVEICAgKGhleCkJCUFhc3RyYQorMDAwODVEICAgICAoYmFzZSAxNikJCUFhc3RyYQorCQkJCTExNjAgUm91dGUgMjIgRWFzdAorCQkJCUJyaWRnZXdhdGVyIE5KIDA4ODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC01RSAgIChoZXgpCQlQQ08gQUcKKzAwMDg1RSAgICAgKGJhc2UgMTYpCQlQQ08gQUcKKwkJCQlEb25hdXBhcmsgMTEKKwkJCQk5MzMwOSBLZWxoZWltCisJCQkJR0VSTUFOWQorCiswMC0wOC01RiAgIChoZXgpCQlQaWNhbm9sIE4uVi4KKzAwMDg1RiAgICAgKGJhc2UgMTYpCQlQaWNhbm9sIE4uVi4KKwkJCQlQb2xlbmxhYW4gMy03CisJCQkJODkwMCBJZXBlcgorCQkJCUJFTEdJVU0KKworMDAtMDgtNjAgICAoaGV4KQkJTG9kZ2VOZXQgRW50ZXJ0YWlubWVudCBDb3JwLgorMDAwODYwICAgICAoYmFzZSAxNikJCUxvZGdlTmV0IEVudGVydGFpbm1lbnQgQ29ycC4KKwkJCQkzOTAwIFcuIElubm92YXRpb24gU3RyZWV0CisJCQkJU2lvdXggRmFsbHMgU0QgNTcxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTYxICAgKGhleCkJCVNvZnRFbmVyZ3kgQ28uLCBMdGQuCiswMDA4NjEgICAgIChiYXNlIDE2KQkJU29mdEVuZXJneSBDby4sIEx0ZC4KKwkJCQkzNDYgU2FuZ3dhbmdzaXBsaS1Eb25nLAorCQkJCVN1bmcgRG9uZy1HdSwgU2VvdWwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtNjIgICAoaGV4KQkJTkVDIEVsdW1pbmFudCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDg2MiAgICAgKGJhc2UgMTYpCQlORUMgRWx1bWluYW50IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE0NzAwIEF2aW9uIFBhcmt3YXkKKwkJCQlDaGFudGlsbHkgVkEgMjAxNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTYzICAgKGhleCkJCUVudHJpc3BoZXJlIEluYy4KKzAwMDg2MyAgICAgKGJhc2UgMTYpCQlFbnRyaXNwaGVyZSBJbmMuCisJCQkJMTYwMSBTLiBEZSBBbnphIEJsdmQuCisJCQkJU3VpdGUgMjUwCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC02NCAgIChoZXgpCQlGYXN5IFMucC5BLgorMDAwODY0ICAgICAoYmFzZSAxNikJCUZhc3kgUy5wLkEuCisJCQkJVmlhIFRvZ25hc2NhIDcKKwkJCQlHYWxsYXJhdGUgVmFyZXNlIDIxMDEzCisJCQkJSVRBTFkKKworMDAtMDgtNjUgICAoaGV4KQkJSkFTQ09NIENPLiwgTFRECiswMDA4NjUgICAgIChiYXNlIDE2KQkJSkFTQ09NIENPLiwgTFRECisJCQkJSlVBTiBJTkRVU1RSSUFMIENPTVBMRVggMzMwLCAxNy0xLAorCQkJCUpVQU4tRE9ORyBOQU0tR1UgSU5DSEVPTiA0MDItMjAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTY2ICAgKGhleCkJCURTWCBBY2Nlc3MgU3lzdGVtcywgSW5jLgorMDAwODY2ICAgICAoYmFzZSAxNikJCURTWCBBY2Nlc3MgU3lzdGVtcywgSW5jLgorCQkJCTEwNzMxIFJvY2t3YWxsIFJkLgorCQkJCURhbGxhcyBUWCA3NTIzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNjcgICAoaGV4KQkJVXB0aW1lIERldmljZXMKKzAwMDg2NyAgICAgKGJhc2UgMTYpCQlVcHRpbWUgRGV2aWNlcworCQkJCTMxNjAgQmVlIENhdmVzIFJkCisJCQkJU3VpdGUgMjA0CisJCQkJQXVzdGluIFRleGFzIDc4NzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC02OCAgIChoZXgpCQlQdXJPcHRpeAorMDAwODY4ICAgICAoYmFzZSAxNikJCVB1ck9wdGl4CisJCQkJMTk0NSBDYW1pbm8gVmlkYSBSb2JsZQorCQkJCVN1aXRlIEMKKwkJCQlDYXJsc2JhZCBDQSA5MjAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNjkgICAoaGV4KQkJQ29tbWFuZC1lIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMDg2OSAgICAgKGJhc2UgMTYpCQlDb21tYW5kLWUgVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCVN1aXRlIDcwOSwgWmhvbmdzaGVuZyBNYW5zaW9uLAorCQkJCU5vLjIgQmVpIEZlbmdXbyBSZC4KKwkJCQlCZWlqaW5nICAxMDAwMzgKKwkJCQlDSElOQQorCiswMC0wOC02QSAgIChoZXgpCQlTZWN1cml0b24gR21iaAorMDAwODZBICAgICAoYmFzZSAxNikJCVNlY3VyaXRvbiBHbWJoCisJCQkJVm9uLURyYWlzLVN0cmFzc2UgMzMKKwkJCQlBY2hlcm4gIEQtNzc4NTUKKwkJCQlHRVJNQU5ZCisKKzAwLTA4LTZCICAgKGhleCkJCU1JUFNZUworMDAwODZCICAgICAoYmFzZSAxNikJCU1JUFNZUworCQkJCTE5QywgQXZlbnVlIGRlcyBJbmRlcworCQkJCUxFUyBVTElTIENlZGV4ICBGUi05MTk2OQorCQkJCUZSQU5DRQorCiswMC0wOC02QyAgIChoZXgpCQlQbGFzbW9uIExNUworMDAwODZDICAgICAoYmFzZSAxNikJCVBsYXNtb24gTE1TCisJCQkJNDQyNSBBcnJvd3NXZXN0IERyaXZlCisJCQkJQ29sb3JhZG8gU3ByaW5ncyBDTyA4MDkwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNkQgICAoaGV4KQkJTWlzc291cmkgRnJlZU5ldAorMDAwODZEICAgICAoYmFzZSAxNikJCU1pc3NvdXJpIEZyZWVOZXQKKwkJCQlQTyBCb3ggNzcxMDI2CisJCQkJU3QuIExvdWlzIE1pc3NvdXJpIDYzMTc3LTEwMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTZFICAgKGhleCkJCUh5Z2xvIEFCCiswMDA4NkUgICAgIChiYXNlIDE2KQkJSHlnbG8gQUIKKwkJCQlWYXN0YmVyZ2EgYWxsZSA2MAorCQkJCVNFLTEyNiA3NSBTdG9ja2hvbG0KKwkJCQlTV0VERU4KKworMDAtMDgtNkYgICAoaGV4KQkJUmVzb3VyY2VzIENvbXB1dGVyIE5ldHdvcmsgTHRkLgorMDAwODZGICAgICAoYmFzZSAxNikJCVJlc291cmNlcyBDb21wdXRlciBOZXR3b3JrIEx0ZC4KKwkJCQlSbSAzMjQsIFRlY2ggQ2VudHJlLCA3MiBUYXQgQ2hlZSBBdmUuLAorCQkJCUtvd2xvb24gVG9uZywgS293bG9vbgorCQkJCUhPTkcgS09ORworCiswMC0wOC03MCAgIChoZXgpCQlSYXN2aWEgU3lzdGVtcywgSW5jLgorMDAwODcwICAgICAoYmFzZSAxNikJCVJhc3ZpYSBTeXN0ZW1zLCBJbmMuCisJCQkJMzI1NS0zIFNjb3R0IEJsdmQuCisJCQkJU3VpdGUgMTAyCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTcxICAgKGhleCkJCU5PUlRIREFUQSBDby4sIEx0ZC4KKzAwMDg3MSAgICAgKGJhc2UgMTYpCQlOT1JUSERBVEEgQ28uLCBMdGQuCisJCQkJIzMwMiBLYXlhbmdUZWNobm8tVG93biAxNDg3CisJCQkJS2F5YW5nMy1Eb25nCisJCQkJS2FuZ3Nlby1HdSBTZW91bCAxNTctODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTcyICAgKGhleCkJCVNvcmVuc29uIENvbW11bmljYXRpb25zCiswMDA4NzIgICAgIChiYXNlIDE2KQkJU29yZW5zb24gQ29tbXVuaWNhdGlvbnMKKwkJCQk0MTkyIFNvdXRoIFJpdmVyYm9hdCBSb2FkCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTczICAgKGhleCkJCURhcFRlY2hub2xvZ3kgQi5WLgorMDAwODczICAgICAoYmFzZSAxNikJCURhcFRlY2hub2xvZ3kgQi5WLgorCQkJCVp1dHBoZW5zdHJhYXQgNjcKKwkJCQlFSiBPbGRlbnphYWwgIDc1NzUKKwkJCQlORVRIRVJMQU5EUworCiswMC0wOC03NCAgIChoZXgpCQlEZWxsIENvbXB1dGVyIENvcnAuCiswMDA4NzQgICAgIChiYXNlIDE2KQkJRGVsbCBDb21wdXRlciBDb3JwLgorCQkJCU9uZSBEZWxsIFdheQorCQkJCVJvdW5kIFJvY2sgVFggNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTc1ICAgKGhleCkJCUFjb3JwIEVsZWN0cm9uaWNzIENvcnAuCiswMDA4NzUgICAgIChiYXNlIDE2KQkJQWNvcnAgRWxlY3Ryb25pY3MgQ29ycC4KKwkJCQk4RiwgTm8uMTExLTYsU2hpbmcgVGVoIFJkLAorCQkJCVNhbiBDaHVuZyBUYWlwZWkgSHNpZW4gMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC03NiAgIChoZXgpCQlTRFN5c3RlbQorMDAwODc2ICAgICAoYmFzZSAxNikJCVNEU3lzdGVtCisJCQkJNjEzLEh5dW5kYWkgSSBWYWxsZXksMjIzLTEyLAorCQkJCVNhbmdkYWl3b24gMS1Eb25nLEp1bmd3b24tR3UKKwkJCQlTZW9uZ25hbSBHeWVvbmdnaS1EbyA0NjItODA3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTc3ICAgKGhleCkJCUxpZWJlcnQtSGlyb3NzIFNwYQorMDAwODc3ICAgICAoYmFzZSAxNikJCUxpZWJlcnQtSGlyb3NzIFNwYQorCQkJCVZpYSBMZW9uYXJkbyBkYSBWaW5jaSA4CisJCQkJUGlvdmUgZGkgU2FjY28gWi5JLiBUb2duYW5hIDM1MDIwCisJCQkJSVRBTFkKKworMDAtMDgtNzggICAoaGV4KQkJQmVuY2htYXJrIFN0b3JhZ2UgSW5ub3ZhdGlvbnMKKzAwMDg3OCAgICAgKGJhc2UgMTYpCQlCZW5jaG1hcmsgU3RvcmFnZSBJbm5vdmF0aW9ucworCQkJCTMxMjIgU3RlcmxpbmcgQ2lyY2xlCisJCQkJQm91bGRlciBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNzkgICAoaGV4KQkJQ0VNIENvcnBvcmF0aW9uCiswMDA4NzkgICAgIChiYXNlIDE2KQkJQ0VNIENvcnBvcmF0aW9uCisJCQkJUC5PLiBCb3ggMjAwCisJCQkJTWF0dGhld3MgTkMgMjgxMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTdBICAgKGhleCkJCVdpcG90ZWMgR21iSAorMDAwODdBICAgICAoYmFzZSAxNikJCVdpcG90ZWMgR21iSAorCQkJCUFkYW0tSG9mZm1hbiBTdHIuIDI2CisJCQkJRC02NzY1NyBLYWlzZXJzbGF1dGVybQorCQkJCUdFUk1BTlkKKworMDAtMDgtN0IgICAoaGV4KQkJUlRYIFRlbGVjb20gQS9TCiswMDA4N0IgICAgIChiYXNlIDE2KQkJUlRYIFRlbGVjb20gQS9TCisJCQkJU3Ryb2VtbWVuIDYKKwkJCQlESyA5NDAwIE5vZXJyZXN1bmRieQorCQkJCURFTk1BUksKKworMDAtMDgtN0MgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwODdDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTdEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMgSW5jLgorMDAwODdEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtN0UgICAoaGV4KQkJQm9uIEVsZWN0cm8tVGVsZWNvbSBJbmMuCiswMDA4N0UgICAgIChiYXNlIDE2KQkJQm9uIEVsZWN0cm8tVGVsZWNvbSBJbmMuCisJCQkJR2F5YW5nIDFzdCBGYWN0b3J5IDcwMSwgMTQtODEKKwkJCQlHYXlhbmctRG9uZyBHYW5nc28tR3UKKwkJCQlTZW91bCAgMTU3LTgwOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC03RiAgIChoZXgpCQlTUEFVTiBlbGVjdHJvbmljIEdtYkggJiBDby4gS0cKKzAwMDg3RiAgICAgKGJhc2UgMTYpCQlTUEFVTiBlbGVjdHJvbmljIEdtYkggJiBDby4gS0cKKwkJCQlCeWstR3VsZGVuIC0gU3RyLiAyMgorCQkJCTc4MjI0IFNpbmdlbgorCQkJCUdFUk1BTlkKKworMDAtMDgtODAgICAoaGV4KQkJQnJvYWRUZWwgQ2FuYWRhIENvbW11bmljYXRpb25zIGluYy4KKzAwMDg4MCAgICAgKGJhc2UgMTYpCQlCcm9hZFRlbCBDYW5hZGEgQ29tbXVuaWNhdGlvbnMgaW5jLgorCQkJCTM3MDAgR3JpZmZpdGgsIFN1aXRlIDM4OQorCQkJCVNhaW50LUxhdXJlbnQgUXVlYmVjIEg0VCAyQjMKKwkJCQlDQU5BREEKKworMDAtMDgtODEgICAoaGV4KQkJRElHSVRBTCBIQU5EUyBDTy4sTFRELgorMDAwODgxICAgICAoYmFzZSAxNikJCURJR0lUQUwgSEFORFMgQ08uLExURC4KKwkJCQlUT1dOJ1MgU1FVQVJFIDUwMywgS0FLaVlBIEJ1aWxkaW5nIDJGCisJCQkJMi03LTE3IFNoaW55b2tvaGFtYSBLb3Vob2t1LWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0wOC04MiAgIChoZXgpCQlTSUdNQSBDT1JQT1JBVElPTgorMDAwODgyICAgICAoYmFzZSAxNikJCVNJR01BIENPUlBPUkFUSU9OCisJCQkJMi0zLTE1IEl3YXRvLW1pbmFtaQorCQkJCUtvbWFlLXNoaSBUb2t5byAyMDEtODYzMAorCQkJCUpBUEFOCisKKzAwLTA4LTgzICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDA4ODMgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMDk1NSBUYW50YXUgQXZlbnVlLCBNYWlsc3RvcCA0NVNMLUcKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTg0ICAgKGhleCkJCUluZGV4IEJyYWlsbGUgQUIKKzAwMDg4NCAgICAgKGJhc2UgMTYpCQlJbmRleCBCcmFpbGxlIEFCCisJCQkJQm94IDE1NQorCQkJCVMtOTU0MjMgR2FtbWVsc3RhZAorCQkJCVNXRURFTgorCiswMC0wOC04NSAgIChoZXgpCQlFTVMgRHIuIFRob21hcyBXdWVuc2NoZQorMDAwODg1ICAgICAoYmFzZSAxNikJCUVNUyBEci4gVGhvbWFzIFd1ZW5zY2hlCisJCQkJU29ubmVuaGFuZyAzCisJCQkJRC04NTMwNCBJbG1tdWVuc3RlcgorCQkJCUdFUk1BTlkKKworMDAtMDgtODYgICAoaGV4KQkJSGFuc3VuZyBUZWxpYW5uLCBJbmMuCiswMDA4ODYgICAgIChiYXNlIDE2KQkJSGFuc3VuZyBUZWxpYW5uLCBJbmMuCisJCQkJMTk1LTEsIE5ldW5ncHl1bmctcmksIE9wby1ldWIKKwkJCQlLd2FuZ2p1LXNpLCBLeW9nZ2ktZG8sIDQ2NC04OTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtODcgICAoaGV4KQkJTWFzY2hpbmVuZmFicmlrIFJlaW5oYXVzZW4gR21iSAorMDAwODg3ICAgICAoYmFzZSAxNikJCU1hc2NoaW5lbmZhYnJpayBSZWluaGF1c2VuIEdtYkgKKwkJCQlGYWxrZW5zdGVpbnN0ci4gOAorCQkJCVJlZ2Vuc2J1cmcgQmF2YXJpYSA5MzA1OQorCQkJCUdFUk1BTlkKKworMDAtMDgtODggICAoaGV4KQkJT1VMTElNIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgSW5jLC4KKzAwMDg4OCAgICAgKGJhc2UgMTYpCQlPVUxMSU0gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBJbmMsLgorCQkJCWEtMTB0aCBGTCwuIElUIFZlbnR1cmUgVG93ZXIsCisJCQkJNzggR2FyYWstRG9uZywgU29uZ3BhLUt1CisJCQkJU2VvdWwgIDEzOC04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtODkgICAoaGV4KQkJRWNob3N0YXIgVGVjaG5vbG9naWVzIENvcnAKKzAwMDg4OSAgICAgKGJhc2UgMTYpCQlFY2hvc3RhciBUZWNobm9sb2dpZXMgQ29ycAorCQkJCTk0IEludmVybmVzcyBDaXJjbGUKKwkJCQlFbmdsZXdvb2QgQ08gODAxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LThBICAgKGhleCkJCU1pbmRzQFdvcmsKKzAwMDg4QSAgICAgKGJhc2UgMTYpCQlNaW5kc0BXb3JrCisJCQkJMTU1NTAgUm9ja2ZpZWxkIEJsdmQuIFN1aXRlIEMKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LThCICAgKGhleCkJCVRyb3BpYyBOZXR3b3JrcyBJbmMuCiswMDA4OEIgICAgIChiYXNlIDE2KQkJVHJvcGljIE5ldHdvcmtzIEluYy4KKwkJCQkxMzUgTWljaGVhbCBDb3dwbGFuZCBEcml2ZQorCQkJCU90dGF3YSBPbnRhcmlvIEsyTTJFOQorCQkJCUNBTkFEQQorCiswMC0wOC04QyAgIChoZXgpCQlRdWFudGEgTmV0d29yayBTeXN0ZW1zIEluYy4KKzAwMDg4QyAgICAgKGJhc2UgMTYpCQlRdWFudGEgTmV0d29yayBTeXN0ZW1zIEluYy4KKwkJCQkxMywgMTNGLCBTZWMuIDIsIFBlaS1Ub3UgUmQKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtOEQgICAoaGV4KQkJU2lnbWEtTGlua3MgSW5jLgorMDAwODhEICAgICAoYmFzZSAxNikJCVNpZ21hLUxpbmtzIEluYy4KKwkJCQk1NTAtMSBIaWdhc2hpYXNha2F3YS1jaG8sCisJCQkJSGFjaGlvamktc2hpLAorCQkJCVRva3lvICAxOTMtODU1MAorCQkJCUpBUEFOCisKKzAwLTA4LThFICAgKGhleCkJCU5paG9uIENvbXB1dGVyIENvLiwgTHRkLgorMDAwODhFICAgICAoYmFzZSAxNikJCU5paG9uIENvbXB1dGVyIENvLiwgTHRkLgorCQkJCTM2LTggSGlnYXNoaXRhbWFjaGkKKwkJCQlIYW1hbWF0c3UgU2hpenVva2EgNDMwLTA5MTUKKwkJCQlKQVBBTgorCiswMC0wOC04RiAgIChoZXgpCQlBRFZBTkNFRCBESUdJVEFMIFRFQ0hOT0xPR1kKKzAwMDg4RiAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBESUdJVEFMIFRFQ0hOT0xPR1kKKwkJCQlBRFQgQkxERy4sMy0zLCBZQU5HSkFFLURPTkcsCisJCQkJU0VPQ0hPLUdVLAorCQkJCVNFT1VMICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtOTAgICAoaGV4KQkJQVZJTElOS1MgU0EKKzAwMDg5MCAgICAgKGJhc2UgMTYpCQlBVklMSU5LUyBTQQorCQkJCUV0aWMgQ2VudGVyIC0gQ1MgNzcgNzI5CisJCQkJOSBydWUgZGVzIENoYXJtaWxsZXMKKwkJCQlDZXNzb24gU2V2aWduZSBDZWRleCBGUkFOQ0UgMzU1NzcKKwkJCQlGUkFOQ0UKKworMDAtMDgtOTEgICAoaGV4KQkJTHlhbiBJbmMuCiswMDA4OTEgICAgIChiYXNlIDE2KQkJTHlhbiBJbmMuCisJCQkJNUYtMSwgTk8uNTEsIFNFQy4yLCBLRUVMVU5HIFJELgorCQkJCVRBSVBFSSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC05MiAgIChoZXgpCQlFTSBTb2x1dGlvbnMKKzAwMDg5MiAgICAgKGJhc2UgMTYpCQlFTSBTb2x1dGlvbnMKKwkJCQkxMDEgSHlkZSBSZAorCQkJCVllcm9uZ2EgQnJpc2JhbmUsIFFMRCA0MTA0CisJCQkJQVVTVFJBTElBCisKKzAwLTA4LTkzICAgKGhleCkJCUxFIElORk9STUFUSU9OIENPTU1VTklDQVRJT04gSU5DLgorMDAwODkzICAgICAoYmFzZSAxNikJCUxFIElORk9STUFUSU9OIENPTU1VTklDQVRJT04gSU5DLgorCQkJCVJtLCA0NTAxLCBEQS1Eb25nIENodW5nYW5nIENpcmN1bGF0aW9uIEMKKwkJCQkxMjU4IEt1cm8gQm9uLURvbmcsIEt1cm8tS3UsCisJCQkJU2VvdWwgIDE1Mi03MjEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtOTQgICAoaGV4KQkJSW5ub1ZJU0lPTiBNdWx0aW1lZGlhIEx0ZC4KKzAwMDg5NCAgICAgKGJhc2UgMTYpCQlJbm5vVklTSU9OIE11bHRpbWVkaWEgTHRkLgorCQkJCVJtIDYwOCwgNi9GIFRpbnMgRW50ZXJwcmlzZXMgQ2VudHJlLAorCQkJCTc3NyBMYWkgQ2hpIEtvayBSb2FkLAorCQkJCUtvd2xvb24sICAKKwkJCQlIT05HIEtPTkcKKworMDAtMDgtOTUgICAoaGV4KQkJRElSQyBUZWNobm9sb2dpZSBHbWJIICYgQ28uS0cKKzAwMDg5NSAgICAgKGJhc2UgMTYpCQlESVJDIFRlY2hub2xvZ2llIEdtYkggJiBDby5LRworCQkJCUJvcnNpZ3N0ci4gMTMKKwkJCQlSYXRpbmdlbiBOUlcgNDA4ODAKKwkJCQlHRVJNQU5ZCisKKzAwLTA4LTk2ICAgKGhleCkJCVByaW50cm9uaXgsIEluYy4KKzAwMDg5NiAgICAgKGJhc2UgMTYpCQlQcmludHJvbml4LCBJbmMuCisJCQkJMTQ2MDAgTXlmb3JkIFJkLgorCQkJCVAuTy4gQm94IDE5NTU5CisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MjMtOTU1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtOTcgICAoaGV4KQkJUXVha2UgVGVjaG5vbG9naWVzCiswMDA4OTcgICAgIChiYXNlIDE2KQkJUXVha2UgVGVjaG5vbG9naWVzCisJCQkJMjg4MCBaYW5rZXIgUm9hZAorCQkJCVN1aXRlIDEwNAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC05OCAgIChoZXgpCQlHaWdhYml0IE9wdGljcyBDb3Jwb3JhdGlvbgorMDAwODk4ICAgICAoYmFzZSAxNikJCUdpZ2FiaXQgT3B0aWNzIENvcnBvcmF0aW9uCisJCQkJMTE1NiBBc3RlciBBdmUuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2LTY4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTk5ICAgKGhleCkJCU5ldGJpbmQsIEluYy4KKzAwMDg5OSAgICAgKGJhc2UgMTYpCQlOZXRiaW5kLCBJbmMuCisJCQkJNSBNYXJpbmUgVmlldyBQbGF6YQorCQkJCUhvYm9rZW4gTkogMDcwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTlBICAgKGhleCkJCUFsY2F0ZWwgTWljcm9lbGVjdHJvbmljcworMDAwODlBICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTWljcm9lbGVjdHJvbmljcworCQkJCUV4Y2Vsc2lvcmxhYW4gNDQtNDYKKwkJCQlCLTE5MzAgWmF2YW50ZW0gIAorCQkJCUJFTEdJVU0KKworMDAtMDgtOUIgICAoaGV4KQkJSUNQIEVsZWN0cm9uaWNzIEluYy4KKzAwMDg5QiAgICAgKGJhc2UgMTYpCQlJQ1AgRWxlY3Ryb25pY3MgSW5jLgorCQkJCTRGLCBOby4gMjIsIENodW5nLUhzaW5nIFJkLiBTaGktQ2hpIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4sIDIyMSwKKwkJCQlUYWlwZWkgIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtOUMgICAoaGV4KQkJRWxlY3MgSW5kdXN0cnkgQ28uLCBMdGQuCiswMDA4OUMgICAgIChiYXNlIDE2KQkJRWxlY3MgSW5kdXN0cnkgQ28uLCBMdGQuCisJCQkJMS0yMi0yMyxTaGluc2FrdSxUYWthdHN1LUt1CisJCQkJS2F3YXNha2kgS2FuYWdhd2EgMjEzLTAwMTQKKwkJCQlKQVBBTgorCiswMC0wOC05RCAgIChoZXgpCQlVSEQtRWxla3Ryb25paworMDAwODlEICAgICAoYmFzZSAxNikJCVVIRC1FbGVrdHJvbmlrCisJCQkJWnVlcmNoZXJzdHJhc3NlIDEyCisJCQkJQmFkZW4gQUcgNTQwMAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA4LTlFICAgKGhleCkJCUJlaWppbmcgRW50ZXItTmV0IGNvLkxURAorMDAwODlFICAgICAoYmFzZSAxNikJCUJlaWppbmcgRW50ZXItTmV0IGNvLkxURAorCQkJCU5PIDEgY291cnR5YXJkLAorCQkJCXNodWFuZ3F1YW5wdSBqaWEgMSxjaGFveWEKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0wOC05RiAgIChoZXgpCQlFRk0gTmV0d29ya3MKKzAwMDg5RiAgICAgKGJhc2UgMTYpCQlFRk0gTmV0d29ya3MKKwkJCQk0MDMsIDR0aCBmbG9vciBFbGVnYW5jZSAxIEJsZGcuCisJCQkJMjUtMiBHdW1pLWRvbmcgUHVuZGFuZy1ndQorCQkJCVN1bmduYW0tc2kgS3l1bmdnaS1kbyA0NjMtODA4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUEwICAgKGhleCkJCVN0b3R6IEZlaW5tZXNzdGVjaG5payBHbWJICiswMDA4QTAgICAgIChiYXNlIDE2KQkJU3RvdHogRmVpbm1lc3N0ZWNobmlrIEdtYkgKKwkJCQlIZXJtYW5uLURyZWhlciBTdHIuIDYKKwkJCQlHZXJsaW5nZW4gIDcwODM5CisJCQkJR0VSTUFOWQorCiswMC0wOC1BMSAgIChoZXgpCQlDTmV0IFRlY2hub2xvZ3kgSW5jLgorMDAwOEExICAgICAoYmFzZSAxNikJCUNOZXQgVGVjaG5vbG9neSBJbmMuCisJCQkJTm8uMTUsIFBhcmsgQXZlbnVlIElJLCBTY2llbmNlLUJhc2VkIEluZAorCQkJCUhzaW4tQ2h1IENpdHksCisJCQkJSHNpbi1DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtQTIgICAoaGV4KQkJQURJIEVuZ2luZWVyaW5nLCBJbmMuCiswMDA4QTIgICAgIChiYXNlIDE2KQkJQURJIEVuZ2luZWVyaW5nLCBJbmMuCisJCQkJMTc2OUEgV29ydGggUGFyaworCQkJCUNoYXJsb3R0ZXN2aWxsZSBWQSAyMjkxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQTMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwOEEzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUE0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDhBNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1BNSAgIChoZXgpCQlQZW5pbnN1bGEgU3lzdGVtcyBJbmMuCiswMDA4QTUgICAgIChiYXNlIDE2KQkJUGVuaW5zdWxhIFN5c3RlbXMgSW5jLgorCQkJCTY5MDIgVmVyZGUgUmlkZ2UgUmQuCisJCQkJUmFuY2hvIFBhbG9zIFZlcmRlcyBDQSA5MDI3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQTYgICAoaGV4KQkJTXVsdGl3YXJlICYgSW1hZ2UgQ28uLCBMdGQuCiswMDA4QTYgICAgIChiYXNlIDE2KQkJTXVsdGl3YXJlICYgSW1hZ2UgQ28uLCBMdGQuCisJCQkJU2FlZG9uZyBCbGRnLiA2NS0yNSwKKwkJCQkya2EsIE5hbWhhbmcsIFlvdW5nZG8KKwkJCQlQdXNhbiAgNjA2LTAzMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1BNyAgIChoZXgpCQlpTG9naWMgSW5jLgorMDAwOEE3ICAgICAoYmFzZSAxNikJCWlMb2dpYyBJbmMuCisJCQkJUm0jMzE4LCBUZWNobm9Db21wbGV4IEJsZGcuLCAxMjYtMTYsIDUtZworCQkJCVNlb3VsICAxMzYtNzAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUE4ICAgKGhleCkJCVN5c3RlYyBDby4sIEx0ZC4KKzAwMDhBOCAgICAgKGJhc2UgMTYpCQlTeXN0ZWMgQ28uLCBMdGQuCisJCQkJMTkgTm9jaGlkb3JpLCBOYXdhCisJCQkJVG9rYWkgQWljaGkgNDc2LTAwMDIKKwkJCQlKQVBBTgorCiswMC0wOC1BOSAgIChoZXgpCQlTYW5nU2FuZyBUZWNobm9sb2d5LCBJbmMuCiswMDA4QTkgICAgIChiYXNlIDE2KQkJU2FuZ1NhbmcgVGVjaG5vbG9neSwgSW5jLgorCQkJCTY0LTgsIE5vZ29rLXJpLCBEb2NoZW9rLW15dW4sCisJCQkJR3dhbmdqdSBLeW9uZ2dpLWRvIDQ2NC04ODIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtQUEgICAoaGV4KQkJS0FSQU0KKzAwMDhBQSAgICAgKGJhc2UgMTYpCQlLQVJBTQorCQkJCTk4LTMsICBIYW5rYW5ncm8gMi1LQSwgWW9uZ3NhbgorCQkJCVNlb3VsICAxNDAtMDEyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUFCICAgKGhleCkJCUVuZXJMaW54LmNvbSwgSW5jLgorMDAwOEFCICAgICAoYmFzZSAxNikJCUVuZXJMaW54LmNvbSwgSW5jLgorCQkJCTM5NjUgU291dGggV29vZGhpbGwgTGFuZQorCQkJCU5ldyBCZXJsaW4gV0kgNTMxNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUFDICAgKGhleCkJCUVsdHJvbWF0IEdtYkgKKzAwMDhBQyAgICAgKGJhc2UgMTYpCQlFbHRyb21hdCBHbWJICisJCQkJSGVyZm9yZGVyIFN0ci4gMjQ5LTI1MQorCQkJCUxlb3BvbGRzaG9oZSBOb3JkcmhlaW4tV2VzdGZhbGVuIDMzODE4CisJCQkJR0VSTUFOWQorCiswMC0wOC1BRCAgIChoZXgpCQlUb3lvLUxpbnggQ28uLCBMdGQuCiswMDA4QUQgICAgIChiYXNlIDE2KQkJVG95by1MaW54IENvLiwgTHRkLgorCQkJCUhpcmFrYXdhLUNobywgQ2hpeWFkYS1rdSwKKwkJCQlUb2t5byAgMTAyLTAwOTMKKwkJCQlKQVBBTgorCiswMC0wOC1BRSAgIChoZXgpCQlQYWNrZXRGcm9udCBJbnRlcm5hdGlvbmFsIEFCCiswMDA4QUUgICAgIChiYXNlIDE2KQkJUGFja2V0RnJvbnQgSW50ZXJuYXRpb25hbCBBQgorCQkJCUJveCAxMjE3CisJCQkJS2lzdGEgIDE2NDI4CisJCQkJU1dFREVOCisKKzAwLTA4LUFGICAgKGhleCkJCU5vdmF0ZWMgQ29ycG9yYXRpb24KKzAwMDhBRiAgICAgKGJhc2UgMTYpCQlOb3ZhdGVjIENvcnBvcmF0aW9uCisJCQkJMi0xOS0yIE5pc2hpLUdvdGFuZGEKKwkJCQlTaGluYWdhd2Eta3UgVG9reW8gMTQxLTAwMzEKKwkJCQlKQVBBTgorCiswMC0wOC1CMCAgIChoZXgpCQlCS3RlbCBjb21tdW5pY2F0aW9ucyBHbWJICiswMDA4QjAgICAgIChiYXNlIDE2KQkJQkt0ZWwgY29tbXVuaWNhdGlvbnMgR21iSAorCQkJCUJlbnpzdHJhc3NlIDQKKwkJCQk0MTgzNiBIdWVja2VsaG92ZW4tQmFhbCBOUlcgNDE4MzYKKwkJCQlHRVJNQU5ZCisKKzAwLTA4LUIxICAgKGhleCkJCVByb1F1ZW50IFN5c3RlbXMKKzAwMDhCMSAgICAgKGJhc2UgMTYpCQlQcm9RdWVudCBTeXN0ZW1zCisJCQkJNjcgRm9yZXN0IFN0cmVldAorCQkJCU1hcmxib3JvIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1CMiAgIChoZXgpCQlTSEVOWkhFTiBDT01QQVNTIFRFQ0hOT0xPR1kgREVWRUxPUE1FTlQgQ08uLExURAorMDAwOEIyICAgICAoYmFzZSAxNikJCVNIRU5aSEVOIENPTVBBU1MgVEVDSE5PTE9HWSBERVZFTE9QTUVOVCBDTy4sTFRECisJCQkJNHRoIEZsb29yLEJ1aWxkaW5nIDIwNSxUYWlSYW4gSW5kdXN0cnkKKwkJCQkmVHJhZGUgUGFyayxGdXRpYW4gRGlzdHJpY3QsU2hlbnpoZW4KKwkJCQlTaGVuemhlbiBHVUFOR0RPTkcgNTE4MDQwCisJCQkJQ0hJTkEKKworMDAtMDgtQjMgICAoaGV4KQkJRmFzdHdlbAorMDAwOEIzICAgICAoYmFzZSAxNikJCUZhc3R3ZWwKKwkJCQlQcm9mc295dXpuYXlhIDEwOCwKKwkJCQlNb3Njb3cgIDExNzMxMworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0wOC1CNCAgIChoZXgpCQlTWVNQT0wKKzAwMDhCNCAgICAgKGJhc2UgMTYpCQlTWVNQT0wKKwkJCQk0dGggRmwsU1lTUE9MIEIvRCwgQmFuZ2JhZSA0IERvbmcsIFNlb2NoCisJCQkJU2VvdWwgIDEzNy0wNjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtQjUgICAoaGV4KQkJVEFJIEdVRU4gRU5URVJQUklTRSBDTy4sIExURAorMDAwOEI1ICAgICAoYmFzZSAxNikJCVRBSSBHVUVOIEVOVEVSUFJJU0UgQ08uLCBMVEQKKwkJCQlOMC40MDAsIDEwRi03IEhVQU5QRUkgUkQuLAorCQkJCUNIVU5HIExJIENJVFkgVFcsIFJPQy4KKwkJCQlDSFVORyBMSSAgMzIwLTYxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC1CNiAgIChoZXgpCQlSb3V0ZUZyZWUsIEluYy4KKzAwMDhCNiAgICAgKGJhc2UgMTYpCQlSb3V0ZUZyZWUsIEluYy4KKwkJCQkzNDAwIEhpbGx2aWV3IEF2ZS4gQmxkZy4gNQorCQkJCVBhbG8gQWx0byBDQSA5NDMwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQjcgICAoaGV4KQkJSElUIEluY29ycG9yYXRlZAorMDAwOEI3ICAgICAoYmFzZSAxNikJCUhJVCBJbmNvcnBvcmF0ZWQKKwkJCQk0RiwgOCwgTGFuZSAyMzUsIFBhby1DaGlhbyBSb2FkLAorCQkJCVNoaW4gVGllbiBUYWlwZWkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC1COCAgIChoZXgpCQlFLkYuIEpvaG5zb24KKzAwMDhCOCAgICAgKGJhc2UgMTYpCQlFLkYuIEpvaG5zb24KKwkJCQkyOTkgSm9obnNvbiBBdmUuCisJCQkJUC5PLiBCb3ggMTI0OQorCQkJCVdhc2VjYSBNTiA1NjA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQjkgICAoaGV4KQkJS0FPTiBNRURJQSBDby4sIEx0ZC4KKzAwMDhCOSAgICAgKGJhc2UgMTYpCQlLQU9OIE1FRElBIENvLiwgTHRkLgorCQkJCSMxMTMgSW1hZSAxLURvbmcsIEJ1bmRhbmctR3UKKwkJCQlTdW5nbmFtLUNpdHkgS3l1bmdraS1EbyA0NjMtODI5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUJBICAgKGhleCkJCUVyc2tpbmUgU3lzdGVtcyBMdGQKKzAwMDhCQSAgICAgKGJhc2UgMTYpCQlFcnNraW5lIFN5c3RlbXMgTHRkCisJCQkJU2FsdGVyIFJvYWQKKwkJCQlFYXN0ZmllbGQgSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlTY2FyYm9yb3VnaCBOb3J0aCBZb3Jrc2hpcmUgWU8xMSAzRFUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wOC1CQiAgIChoZXgpCQlOZXRFeGNlbGwKKzAwMDhCQiAgICAgKGJhc2UgMTYpCQlOZXRFeGNlbGwKKwkJCQkxNTM3NSBCYXJyYW5jYSBQa3d5LCAjRS0xMDYKKwkJCQlJcnZpbmUgQ0EgOTI2NzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUJDICAgKGhleCkJCUlsZXZvIEFCCiswMDA4QkMgICAgIChiYXNlIDE2KQkJSWxldm8gQUIKKwkJCQlCb3ggMTU2MQorCQkJCUthcmxzdGFkIFZhcm1sYW5kIFMtNjUxIDIxCisJCQkJU1dFREVOCisKKzAwLTA4LUJEICAgKGhleCkJCVRFUEctVVMKKzAwMDhCRCAgICAgKGJhc2UgMTYpCQlURVBHLVVTCisJCQkJMTAwIFNpbXBsZXggRHJpdmUKKwkJCQlXZXN0bWluc3RlciBNQSAwMTQ0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQkUgICAoaGV4KQkJWEVOUEFLIE1TQSBHcm91cAorMDAwOEJFICAgICAoYmFzZSAxNikJCVhFTlBBSyBNU0EgR3JvdXAKKwkJCQlDYXJlIG9mOiBBZ2lsZW50IFRlY2hub2xvZ2llcworCQkJCVdoaXRlIEhvdXNlIFJvYWQKKwkJCQlJcHN3aWNoIFN1ZmZvbGsgSXAxIDVQQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA4LUJGICAgKGhleCkJCUFwdHVzIEVsZWt0cm9uaWsgQUIKKzAwMDhCRiAgICAgKGJhc2UgMTYpCQlBcHR1cyBFbGVrdHJvbmlrIEFCCisJCQkJRk8gUGV0ZXJzb25zIEcgNgorCQkJCTQyMSAzMSBWLiBGcm9sdW5kYQorCQkJCVNXRURFTgorCiswMC0wOC1DMCAgIChoZXgpCQlBU0EgU1lTVEVNUworMDAwOEMwICAgICAoYmFzZSAxNikJCUFTQSBTWVNURU1TCisJCQkJUzI0NSBLb3JlYSBNYXJpdGltZSBVbml2ZXJzaXR5LCAxIERvbmdzYQorCQkJCUJ1c2FuIEJ1c2FuIE1ldHJvcG9saXRhbiBDaXR5IDYwNi03OTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtQzEgICAoaGV4KQkJQXZpc3RhciBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorMDAwOEMxICAgICAoYmFzZSAxNikJCUF2aXN0YXIgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKwkJCQkxNTg1MSBEYWxsYXMgUGt3eS4KKwkJCQlTdWl0ZSA2MDAKKwkJCQlBZGRpc29uIFRYIDc1MDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1DMiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA4QzIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUMzICAgKGhleCkJCUNvbnRleCBBL1MKKzAwMDhDMyAgICAgKGJhc2UgMTYpCQlDb250ZXggQS9TCisJCQkJU3ZhbmV2YW5nIDIKKwkJCQlBbGxlcm9kIERLIDM0NTAKKwkJCQlERU5NQVJLCisKKzAwLTA4LUM0ICAgKGhleCkJCUhpa2FyaSBDby4sTHRkLgorMDAwOEM0ICAgICAoYmFzZSAxNikJCUhpa2FyaSBDby4sTHRkLgorCQkJCTQxOC00IE1pbmFtaW5vZGEgQ2hpZ2Vub2J1LWNobworCQkJCU9uc2VuLWd1biBFaGltZSA3OTEtMDI5NworCQkJCUpBUEFOCisKKzAwLTA4LUM1ICAgKGhleCkJCUxpb250ZWNoIENvLiwgTHRkLgorMDAwOEM1ICAgICAoYmFzZSAxNikJCUxpb250ZWNoIENvLiwgTHRkLgorCQkJCTMwNiwgV29veW91bmcgVGVjaG5vIENlbnRlciwgMjczLTE1LAorCQkJCVN1bmdzdTJnYS0zZG9uZywgU3VuZ2Rvbmcta3UsCisJCQkJU2VvdWwgIDEzMy04MzEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtQzYgICAoaGV4KQkJUGhpbGlwcyBDb25zdW1lciBDb21tdW5pY2F0aW9ucworMDAwOEM2ICAgICAoYmFzZSAxNikJCVBoaWxpcHMgQ29uc3VtZXIgQ29tbXVuaWNhdGlvbnMKKwkJCQlSb3V0ZSBkJ0FuZ2VycworCQkJCTcyMDgxIExlIE1hbnMKKwkJCQlDZWRleCA5ICAKKwkJCQlGUkFOQ0UKKworMDAtMDgtQzcgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDA4QzcgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1DOCAgIChoZXgpCQlTb25ldGljb20sIEluYy4KKzAwMDhDOCAgICAgKGJhc2UgMTYpCQlTb25ldGljb20sIEluYy4KKwkJCQk0MzI1IFdvb2RsYW5kIFBhcmsgRHJpdmUsIFN1aXRlIDEwMgorCQkJCVdlc3QgTWVsYm91cm5lIEZsb3JpZGEgMzI5MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUM5ICAgKGhleCkJCVRlY2huaVNhdCBEaWdpdGFsIEdtYkgKKzAwMDhDOSAgICAgKGJhc2UgMTYpCQlUZWNobmlTYXQgRGlnaXRhbCBHbWJICisJCQkJR2V3ZXJiZXBhcmsgTWVyYml0eiBOci4gNQorCQkJCURyZXNkZW4gU2F4b255IDAxMTU2CisJCQkJR0VSTUFOWQorCiswMC0wOC1DQSAgIChoZXgpCQlUd2luSGFuIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAwOENBICAgICAoYmFzZSAxNikJCVR3aW5IYW4gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJMTNGLTYsTm8gNzksU2VjIDEsSHNpbiBUYWkgV3UgUkQuLEhzaS1DaAorCQkJCVRhaXBlaSBIc2llbiAgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC1DQiAgIChoZXgpCQlaZXRhIEJyb2FkYmFuZCBJbmMuCiswMDA4Q0IgICAgIChiYXNlIDE2KQkJWmV0YSBCcm9hZGJhbmQgSW5jLgorCQkJCTY2MCBWaXN0YSBXYXksIFN1aXRlIEIKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQ0MgICAoaGV4KQkJUmVtb3RlYywgSW5jLgorMDAwOENDICAgICAoYmFzZSAxNikJCVJlbW90ZWMsIEluYy4KKwkJCQkxMTQgVW5pb24gVmFsbGV5IFJvYWQKKwkJCQlPYWsgUmlkZ2UgVE4gMzc4MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUNEICAgKGhleCkJCVdpdGgtTmV0IEluYworMDAwOENEICAgICAoYmFzZSAxNikJCVdpdGgtTmV0IEluYworCQkJCTRGTCBCJkIgQi9EIDE0MDMtNAorCQkJCUt3YW5neWFuZzEtZG9uZyBEb25nYW4ta3UKKwkJCQlBbnlhbmcgS3lvbmdnaSA0MzEtMDYxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUNFICAgKGhleCkJCUlQTW9iaWxlTmV0IEluYy4KKzAwMDhDRSAgICAgKGJhc2UgMTYpCQlJUE1vYmlsZU5ldCBJbmMuCisJCQkJMTE5MDkgRSBUZWxlZ3JhcGggUmQuCisJCQkJU2FudGEgRmUgU3ByaW5ncyBDQSA5MDY3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQ0YgICAoaGV4KQkJTmlwcG9uIEtvZWkgUG93ZXIgU3lzdGVtcyBDby4sIEx0ZC4KKzAwMDhDRiAgICAgKGJhc2UgMTYpCQlOaXBwb24gS29laSBQb3dlciBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCTI5NDAgU2hpbnlvc2hpZGEtY2hvCisJCQkJS29ob2t1LWt1IFlva29oYW1hIDIyMy04NTA2CisJCQkJSkFQQU4KKworMDAtMDgtRDAgICAoaGV4KQkJTXVzYXNoaSBFbmdpbmVlcmluZyBDby4sIExURC4KKzAwMDhEMCAgICAgKGJhc2UgMTYpCQlNdXNhc2hpIEVuZ2luZWVyaW5nIENvLiwgTFRELgorCQkJCTMtMTEtNywgTmlzaGktc2hpbWJhc2hpCisJCQkJTWluYXRvLWt1IFRva3lvIDEwNS0wMDAzCisJCQkJSkFQQU4KKworMDAtMDgtRDEgICAoaGV4KQkJS0FSRUwgSU5DLgorMDAwOEQxICAgICAoYmFzZSAxNikJCUtBUkVMIElOQy4KKwkJCQlPUkdBTklaRSBTQU5BWUkgQk9MR0VTSQorCQkJCUdBWk5FTElMRVIgQ0FEIE5POjEwICBTSU5DQU4KKwkJCQlBTktBUkEgIDA2OTM1CisJCQkJVFVSS0VZCisKKzAwLTA4LUQyICAgKGhleCkJCVpPT00gTmV0d29ya3MgSW5jLgorMDAwOEQyICAgICAoYmFzZSAxNikJCVpPT00gTmV0d29ya3MgSW5jLgorCQkJCTEzRixYaW5MdURhbyBCdWlsZGluZyxOby4xMTc1LE5hbnNoYW4gUm8KKwkJCQlTaGVuIFpoZW4gR3VhbmdEb25nIFByb3ZpbmNlIDUxODA1MgorCQkJCUNISU5BCisKKzAwLTA4LUQzICAgKGhleCkJCUhlcmN1bGVzIFRlY2hub2xvZ2llcyBTLkEuCiswMDA4RDMgICAgIChiYXNlIDE2KQkJSGVyY3VsZXMgVGVjaG5vbG9naWVzIFMuQS4KKwkJCQlQbGFjZSBkZSBsJ2V0b2lsZQorCQkJCUNhcmVudG9pciBCcmV0YWduZSA1NjkxMAorCQkJCUZSQU5DRQorCiswMC0wOC1ENCAgIChoZXgpCQlJbmVvUXVlc3QgVGVjaG5vbG9naWVzLCBJbmMKKzAwMDhENCAgICAgKGJhc2UgMTYpCQlJbmVvUXVlc3QgVGVjaG5vbG9naWVzLCBJbmMKKwkJCQkxOTMxIFdhc2hpbmd0b24gU3QKKwkJCQlDYW50b24gTWFzc2FjaHVzZXR0cyAwMjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRDUgICAoaGV4KQkJVmFuZ3VhcmQgTmV0d29ya3MgU29sdXRpb25zLCBMTEMKKzAwMDhENSAgICAgKGJhc2UgMTYpCQlWYW5ndWFyZCBOZXR3b3JrcyBTb2x1dGlvbnMsIExMQworCQkJCTI1IEZvcmJlcyBCb3VsZXZhcmQKKwkJCQlGb3hib3JvIE1BIDAyMDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1ENiAgIChoZXgpCQlIQVNTTkVUIEluYy4KKzAwMDhENiAgICAgKGJhc2UgMTYpCQlIQVNTTkVUIEluYy4KKwkJCQkyRiBNaXNzeTIwMDAgQi9EIDcyNSwgU29vU2VvLURvbmcsCisJCQkJS2FuZ25hbS1LdQorCQkJCVNlb3VsICAxMzUtNzU3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUQ3ICAgKGhleCkJCUhPVyBDT1JQT1JBVElPTgorMDAwOEQ3ICAgICAoYmFzZSAxNikJCUhPVyBDT1JQT1JBVElPTgorCQkJCTEtMTEtMTcgQ2hpeW9kYQorCQkJCVNhZ2FtaWhhcmEgS2FuYWdhd2EgMjI5LTAwMzcKKwkJCQlKQVBBTgorCiswMC0wOC1EOCAgIChoZXgpCQlEb3drZXkgTWljcm93YXZlCiswMDA4RDggICAgIChiYXNlIDE2KQkJRG93a2V5IE1pY3Jvd2F2ZQorCQkJCTQ4MjIgTWNHcmF0aCBTdHJlZXQKKwkJCQlWZW50dXJhIENhIDkzMDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1EOSAgIChoZXgpCQlNaXRhZGVuc2hpIENvLixMVEQKKzAwMDhEOSAgICAgKGJhc2UgMTYpCQlNaXRhZGVuc2hpIENvLixMVEQKKwkJCQkxLTgtNiBGdXJ1aWNoaSBBc2FtaW5hbWlrdQorCQkJCUhpcm9zaGltYSAgNzMxLTAxMjMKKwkJCQlKQVBBTgorCiswMC0wOC1EQSAgIChoZXgpCQlTb2ZhV2FyZSBUZWNobm9sb2dpZXMgTHRkLgorMDAwOERBICAgICAoYmFzZSAxNikJCVNvZmFXYXJlIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJMyBIaWxhem9uIFN0LgorCQkJCVJhbWF0LUdhbiAgNTI1MjIKKwkJCQlJU1JBRUwKKworMDAtMDgtREIgICAoaGV4KQkJQ29ycmlnZW50IFN5c3RlbXMKKzAwMDhEQiAgICAgKGJhc2UgMTYpCQlDb3JyaWdlbnQgU3lzdGVtcworCQkJCTEyNiBZaWdhbCBBbG9uCisJCQkJVGVsIEF2aXYgIDY3NDQzCisJCQkJSVNSQUVMCisKKzAwLTA4LURDICAgKGhleCkJCVdpem5ldAorMDAwOERDICAgICAoYmFzZSAxNikJCVdpem5ldAorCQkJCTVGIFNpbW10ZWNoIGJsZGcuLCAyMjgtMywKKwkJCQlOb255aHVuLCBLYW5nbmFtCisJCQkJU2VvdWwgIDEzNS04MzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtREQgICAoaGV4KQkJVGVsZW5hIENvbW11bmljYXRpb25zLCBJbmMuCiswMDA4REQgICAgIChiYXNlIDE2KQkJVGVsZW5hIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNjcyNSBNZXNhIFJpZGdlIFJvYWQKKwkJCQlTdWl0ZSAyMjYKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LURFICAgKGhleCkJCTNVUCBTeXN0ZW1zCiswMDA4REUgICAgIChiYXNlIDE2KQkJM1VQIFN5c3RlbXMKKwkJCQk2IFJlc3VsdHMgV2F5CisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1ERiAgIChoZXgpCQlBbGlzdGVsIEluYy4KKzAwMDhERiAgICAgKGJhc2UgMTYpCQlBbGlzdGVsIEluYy4KKwkJCQlNaWRvcmkgQmxkZy4gMkYKKwkJCQkxLTUtMjAgTmFrYWdhd2EsIFRzdXp1a2kta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjItMDAwMQorCQkJCUpBUEFOCisKKzAwLTA4LUUwICAgKGhleCkJCUFUTyBUZWNobm9sb2d5IEx0ZC4KKzAwMDhFMCAgICAgKGJhc2UgMTYpCQlBVE8gVGVjaG5vbG9neSBMdGQuCisJCQkJUm0uIDEzMTQtMTM0NiwgQmxvY2sgQjEsIFlhdSBUb25nIEluZC4gQworCQkJCVlhdSBUb25nLCBLb3dsb29uLAorCQkJCUhvbmcgS29uZyAgCisJCQkJSE9ORyBLT05HCisKKzAwLTA4LUUxICAgKGhleCkJCUJhcml4IEFHCiswMDA4RTEgICAgIChiYXNlIDE2KQkJQmFyaXggQUcKKwkJCQlXaWVzZW5zdHIuIDE3CisJCQkJWnVlcmljaCBaSCA4MDA4CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMDgtRTIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwOEUyICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1CbGQgTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUUzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDhFMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otQmxkIE0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1FNCAgIChoZXgpCQlFbnZlbmVyZ3kgSW5jCiswMDA4RTQgICAgIChiYXNlIDE2KQkJRW52ZW5lcmd5IEluYworCQkJCTYzMDcgQ2FycGludGVyaWEgQXZlCisJCQkJQ2FycGludGVyaWEgQ0EgOTMwMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUU1ICAgKGhleCkJCUlESyBDb3Jwb3JhdGlvbgorMDAwOEU1ICAgICAoYmFzZSAxNikJCUlESyBDb3Jwb3JhdGlvbgorCQkJCTYtNy0xMAorCQkJCUNodW8tUmlua2FuCisJCQkJWWFtYXRvIEthbmFnYXdhIDI0Mi0wMDA3CisJCQkJSkFQQU4KKworMDAtMDgtRTYgICAoaGV4KQkJTGl0dGxlZmVldAorMDAwOEU2ICAgICAoYmFzZSAxNikJCUxpdHRsZWZlZXQKKwkJCQkxMzAwMCBHcmVnZyBTdHJlZXQKKwkJCQlQb3dheSBDYWxpZm9ybmlhIDkyMDY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1FNyAgIChoZXgpCQlTSEkgQ29udHJvbFN5c3RlbXMsTHRkLgorMDAwOEU3ICAgICAoYmFzZSAxNikJCVNISSBDb250cm9sU3lzdGVtcyxMdGQuCisJCQkJMTksTmF0dXNpbWEKKwkJCQlZb2tvc3VrYSBLYW5hZ2F3YSAyMzctODU1NQorCQkJCUpBUEFOCisKKzAwLTA4LUU4ICAgKGhleCkJCUV4Y2VsIE1hc3RlciBMdGQuCiswMDA4RTggICAgIChiYXNlIDE2KQkJRXhjZWwgTWFzdGVyIEx0ZC4KKwkJCQlSb29tIEQsIDMvRi4sIFlldW5nIFlpdSBDaHVuZyAoTm8uIDgpIEluZC4gQmxkZy4KKwkJCQkyMCBXYW5nIEhvaSBSb2FkCisJCQkJS293bG9vbiBCYXkgCisJCQkJSE9ORyBLT05HCisKKzAwLTA4LUU5ICAgKGhleCkJCU5leHRHaWcKKzAwMDhFOSAgICAgKGJhc2UgMTYpCQlOZXh0R2lnCisJCQkJOTgyMC1CIFRvd25lIENlbnRyZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRUEgICAoaGV4KQkJTW90aW9uIENvbnRyb2wgRW5naW5lZXJpbmcsIEluYworMDAwOEVBICAgICAoYmFzZSAxNikJCU1vdGlvbiBDb250cm9sIEVuZ2luZWVyaW5nLCBJbmMKKwkJCQkxMTM4MCBXaGl0ZSBSb2NrIFJvYWQKKwkJCQlSYW5jaG8gQ29yZG92YSBDQSA5NTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRUIgICAoaGV4KQkJUk9NV2luIENvLixMdGQuCiswMDA4RUIgICAgIChiYXNlIDE2KQkJUk9NV2luIENvLixMdGQuCisJCQkJNDA2IE9taXlhT2h0YWthIEJsZGcuIDEtMTAzCisJCQkJS2lzaGlraS1jaG8KKwkJCQlTYWl0YW1hICAzMzAtMDg0MworCQkJCUpBUEFOCisKKzAwLTA4LUVDICAgKGhleCkJCU9wdGljYWwgWm9udSBDb3Jwb3JhdGlvbgorMDAwOEVDICAgICAoYmFzZSAxNikJCU9wdGljYWwgWm9udSBDb3Jwb3JhdGlvbgorCQkJCTE1MDI4IERlbGFubyBTdHJlZXQKKwkJCQlWYW4gTnV5cyBDQSA5MTQxMS0yMDE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1FRCAgIChoZXgpCQlTVCZUIEluc3RydW1lbnQgQ29ycC4KKzAwMDhFRCAgICAgKGJhc2UgMTYpCQlTVCZUIEluc3RydW1lbnQgQ29ycC4KKwkJCQkxNiBTaGluZy1Hb25nIFJvYWQsIFl1bmctS3VuZyBJbmR1c3RyaWFsCisJCQkJWXVuZy1LdW5nIFRhaW5hbiA3MTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA4LUVFICAgKGhleCkJCUxvZ2ljIFByb2R1Y3QgRGV2ZWxvcG1lbnQKKzAwMDhFRSAgICAgKGJhc2UgMTYpCQlMb2dpYyBQcm9kdWN0IERldmVsb3BtZW50CisJCQkJNDExIFdhc2hpbmd0b24gQXZlIE4uIFN1aXRlIDEwMQorCQkJCU1pbm5lYXBvbGlzIE1pbm5lc290YSA1NTQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRUYgICAoaGV4KQkJRElCQUwsUy5BLgorMDAwOEVGICAgICAoYmFzZSAxNikJCURJQkFMLFMuQS4KKwkJCQlBc3RpbnR6ZSBLYWxlYSAyNAorCQkJCURlcmlvIFZpemNheWEgNDgxNjAKKwkJCQlTUEFJTgorCiswMC0wOC1GMCAgIChoZXgpCQlOZXh0IEdlbmVyYXRpb24gU3lzdGVtcywgSW5jLgorMDAwOEYwICAgICAoYmFzZSAxNikJCU5leHQgR2VuZXJhdGlvbiBTeXN0ZW1zLCBJbmMuCisJCQkJUE8gQk9YIDMxMjA1CisJCQkJRGF5dG9uIE9IIDQ1NDM3LTAyMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUYxICAgKGhleCkJCVZvbHRhaXJlCiswMDA4RjEgICAgIChiYXNlIDE2KQkJVm9sdGFpcmUKKwkJCQk5IEhhbWVub2ZpbSBzdC4KKwkJCQlIZXJ6ZWxpYSAgNDY3MjUKKwkJCQlJU1JBRUwKKworMDAtMDgtRjIgICAoaGV4KQkJQyZTIFRlY2hub2xvZ3kKKzAwMDhGMiAgICAgKGJhc2UgMTYpCQlDJlMgVGVjaG5vbG9neQorCQkJCUMmUyBWZW50dXJlIEJsZGcuLCBOb25IeXVuLURvbmcsCisJCQkJMjIxLTEsIEdhbmdOYW0tR3UKKwkJCQlTRU9VTCAgMTM1LTgyOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1GMyAgIChoZXgpCQlXQU5ZCiswMDA4RjMgICAgIChiYXNlIDE2KQkJV0FOWQorCQkJCUNFRUkgQ2FwIEFscGhhCisJCQkJQXZlbnVlIGRlIGwnRXVyb3BlLCBDbGFwaWVycworCQkJCU1vbnRwZWxsaWVyIEhlcmF1bHQgMzQ5NDAKKwkJCQlGUkFOQ0UKKworMDAtMDgtRjQgICAoaGV4KQkJQmx1ZXRha2UgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDhGNCAgICAgKGJhc2UgMTYpCQlCbHVldGFrZSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTZGLCBOby4gMzMsIExhbmUgMTU1LCBTZWMuIDMsIFBlaSBTaGVuIFIKKwkJCQlTYWVuIEtlbmcgU2hpYW5nLCBUYWlwZWkKKwkJCQlUYWlwZWkgVGFpd2FuIDIyMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtRjUgICAoaGV4KQkJWUVTVEVDSE5PTE9HWSBDby4sTHRkLgorMDAwOEY1ICAgICAoYmFzZSAxNikJCVlFU1RFQ0hOT0xPR1kgQ28uLEx0ZC4KKwkJCQk0dGggRkwgS3l1bmctQW0gQi9EIDE1Ny0yNyBTYW1zdW5nLURvbmcsCisJCQkJU2VvdWwgMTM1LTA5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1GNiAgIChoZXgpCQlTdW1pdG9tbyBFbGVjdHJpYyBTeXN0ZW0gU29sdXRpb25zIENvLixMdGQuCiswMDA4RjYgICAgIChiYXNlIDE2KQkJU3VtaXRvbW8gRWxlY3RyaWMgU3lzdGVtIFNvbHV0aW9ucyBDby4sTHRkLgorCQkJCXNoaW1heWEgMS0xLTMsIGtvbm9oYW5hLWt1CisJCQkJT3Nha2EgY2l0eSBPU0FLQSAxMTItMDAxNAorCQkJCUpBUEFOCisKKzAwLTA4LUY3ICAgKGhleCkJCUhpdGFjaGkgTHRkLCBTZW1pY29uZHVjdG9yICZhbXA7IEludGVncmF0ZWQgQ2lyY3VpdHMgR3IKKzAwMDhGNyAgICAgKGJhc2UgMTYpCQlIaXRhY2hpIEx0ZCwgU2VtaWNvbmR1Y3RvciAmYW1wOyBJbnRlZ3JhdGVkIENpcmN1aXRzIEdyCisJCQkJMjAtMSBKb3N1aWhvbi1jaG91IDVjaG9tZQorCQkJCUtvZGFpcmEtc2hpIFRva3lvIDE4Ny04NTg4CisJCQkJSkFQQU4KKworMDAtMDgtRjggICAoaGV4KQkJR3VhcmRhbGwgTHRkCiswMDA4RjggICAgIChiYXNlIDE2KQkJR3VhcmRhbGwgTHRkCisJCQkJTG9jaGVuZCBJbmR1c3RyaWFsIEVzdGF0ZSwKKwkJCQlOZXdicmlkZ2UKKwkJCQlFZGluYnVyZ2ggU2NvdGxhbmQgRUgyOCA4UEwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wOC1GOSAgIChoZXgpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIKKzAwMDhGOSAgICAgKGJhc2UgMTYpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIKKwkJCQkyOTAwIFMuIERpYWJsbyBXYXkgU3VpdGUgMTkwCisJCQkJVGVtcGUgQVogODUyODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUZBICAgKGhleCkJCUthcmwgRS5Ccmlua21hbm4gR21iSAorMDAwOEZBICAgICAoYmFzZSAxNikJCUthcmwgRS5Ccmlua21hbm4gR21iSAorCQkJCUZvZXJzdGVyd2VnIDM2LTM4CisJCQkJQmFybnRydXAgTlJXIEQtMzI2ODMKKwkJCQlHRVJNQU5ZCisKKzAwLTA4LUZCICAgKGhleCkJCVNvbm9TaXRlLCBJbmMuCiswMDA4RkIgICAgIChiYXNlIDE2KQkJU29ub1NpdGUsIEluYy4KKwkJCQkyMTkxOSAzMHRoIERyaXZlIFNFCisJCQkJQm90aGVsbCBXQSA5ODAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRkMgICAoaGV4KQkJR2lnYXBob3RvbiBJbmMuCiswMDA4RkMgICAgIChiYXNlIDE2KQkJR2lnYXBob3RvbiBJbmMuCisJCQkJWU9LT0tVUkEgU0hJTkRFTjQwMAorCQkJCU9ZQU1BIFRPVElHSSAzMjMtODU1OAorCQkJCUpBUEFOCisKKzAwLTA4LUZEICAgKGhleCkJCUJsdWVLb3JlYSBDby4sIEx0ZC4KKzAwMDhGRCAgICAgKGJhc2UgMTYpCQlCbHVlS29yZWEgQ28uLCBMdGQuCisJCQkJM0YsIHNlam9uZyBCdWlsZGluZywgMzc5LTE1LCBTZW9reW8tRG9uZworCQkJCU1hcG8tS3UsCisJCQkJU2VvdWwgIDEyMS04MzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtRkUgICAoaGV4KQkJVU5JSyBDJkMgQ28uLEx0ZC4KKzAwMDhGRSAgICAgKGJhc2UgMTYpCQlVTklLIEMmQyBDby4sTHRkLgorCQkJCTcwNi0xMyBVTklLIEJMREcgMTdGCisJCQkJWUVPSy1TQU0gS0FORy1OQU0gR1UKKwkJCQlTRU9VTCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1GRiAgIChoZXgpCQlUcmlsb2d5IENvbW11bmljYXRpb25zIEx0ZAorMDAwOEZGICAgICAoYmFzZSAxNikJCVRyaWxvZ3kgQ29tbXVuaWNhdGlvbnMgTHRkCisJCQkJMjYgRm9jdXMgV2F5CisJCQkJV2Fsd29ydGggRXN0YXRlCisJCQkJQW5kb3ZlciBIYW1wc2hpcmUgU1AxMCA1TlkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wOS0wMCAgIChoZXgpCQlUTVQKKzAwMDkwMCAgICAgKGJhc2UgMTYpCQlUTVQKKwkJCQkxMSBLaXJ5YXQgTWFkYSwgUE9CIDQ1MTk5CisJCQkJSmVydXNhbGVtICA5MTQ1MAorCQkJCUlTUkFFTAorCiswMC0wOS0wMSAgIChoZXgpCQlTaGVuemhlbiBTaGl4dW50b25nIEluZm9ybWF0aW9uICYgVGVjaG5vbGlneSBDbworMDAwOTAxICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFNoaXh1bnRvbmcgSW5mb3JtYXRpb24gJiBUZWNobm9saWd5IENvCisJCQkJUm9vbSA0MDMsNjE3IEJsZGc7QmFndWEgMSBSb2FkICxTaGVuemhlbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMjkKKwkJCQlDSElOQQorCiswMC0wOS0wMiAgIChoZXgpCQlSZWRsaW5lIENvbW11bmljYXRpb25zIEluYy4KKzAwMDkwMiAgICAgKGJhc2UgMTYpCQlSZWRsaW5lIENvbW11bmljYXRpb25zIEluYy4KKwkJCQkzMDIgVG93biBDZW50cmUgQmx2ZAorCQkJCVN1aXRlIDEwMAorCQkJCU1hcmtoYW0gT04gTDNSIDBFOAorCQkJCUNBTkFEQQorCiswMC0wOS0wMyAgIChoZXgpCQlQYW5hc2FzLCBJbmMKKzAwMDkwMyAgICAgKGJhc2UgMTYpCQlQYW5hc2FzLCBJbmMKKwkJCQkxNTMzMyBKb2huIEYgS2VubmVkeSBCbHZkLCBTdWl0ZSA0MDAKKwkJCQlIb3VzdG9uIFRYIDc3MDMyLTIzNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTA0ICAgKGhleCkJCU1PTkRJQUwgZWxlY3Ryb25pYworMDAwOTA0ICAgICAoYmFzZSAxNikJCU1PTkRJQUwgZWxlY3Ryb25pYworCQkJCUVnZ2Vsc2JlcmcgNzMKKwkJCQlFZ2dlbHNiZXJnIE9iZXJvZXN0ZXJyZWljaCA1MTQyCisJCQkJQVVTVFJJQQorCiswMC0wOS0wNSAgIChoZXgpCQlpVEVDIFRlY2hub2xvZ2llcyBMdGQuCiswMDA5MDUgICAgIChiYXNlIDE2KQkJaVRFQyBUZWNobm9sb2dpZXMgTHRkLgorCQkJCTE2MC0xLCBLYXJhay1Eb25nLCBTb25ncGEtR3UKKwkJCQlTZW91bCAgMTM4LTgwOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS0wNiAgIChoZXgpCQlFc3RlZW0gTmV0d29ya3MKKzAwMDkwNiAgICAgKGJhc2UgMTYpCQlFc3RlZW0gTmV0d29ya3MKKwkJCQk0RiwgTm8uOTAwLCBZaXNoYW4gUm9hZAorCQkJCVNoYW5naGFpICAyMDAyMzMKKwkJCQlDSElOQQorCiswMC0wOS0wNyAgIChoZXgpCQlDaHJ5c2FsaXMgRGV2ZWxvcG1lbnQKKzAwMDkwNyAgICAgKGJhc2UgMTYpCQlDaHJ5c2FsaXMgRGV2ZWxvcG1lbnQKKwkJCQk4MTI1IFJpdmVyIERyLiBTdWl0ZSAxMDAKKwkJCQlNb3J0b24gR3JvdmUgSUwgNjAwNTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTA4ICAgKGhleCkJCVZUZWNoIFRlY2hub2xvZ3kgQ29ycC4KKzAwMDkwOCAgICAgKGJhc2UgMTYpCQlWVGVjaCBUZWNobm9sb2d5IENvcnAuCisJCQkJMkYtMiwgTm8uIDEyNCwgQ2h1bmcgQ2hlbmcgUmQuLCBTaGlobGluCisJCQkJVGFpcGVpICAxMTE0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktMDkgICAoaGV4KQkJVGVsZW5vciBDb25uZWN0IEEvUworMDAwOTA5ICAgICAoYmFzZSAxNikJCVRlbGVub3IgQ29ubmVjdCBBL1MKKwkJCQlFbGxlZ2FhcmR2ZWogMjVMCisJCQkJUz9uZGVyYm9yZyBBbHMgNjQwMAorCQkJCURFTk1BUksKKworMDAtMDktMEEgICAoaGV4KQkJU25lZEZhciBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwOTBBICAgICAoYmFzZSAxNikJCVNuZWRGYXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxNUZMLiwgTm8uODY2LTIsIEp1bmcgSmVuZyBSZC4sCisJCQkJSnVuZ2hlIFRhaXBlaSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTBCICAgKGhleCkJCU1UTCAgSW5zdHJ1bWVudHMgUExDCiswMDA5MEIgICAgIChiYXNlIDE2KQkJTVRMICBJbnN0cnVtZW50cyBQTEMKKwkJCQlQb3dlciBDb3VydAorCQkJCUx1dG9uIEJlZGZvcmRzaGlyZSBMVTEgM0pKCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDktMEMgICAoaGV4KQkJTWF5ZWthd2EgTWZnLiBDby4gTHRkLgorMDAwOTBDICAgICAoYmFzZSAxNikJCU1heWVrYXdhIE1mZy4gQ28uIEx0ZC4KKwkJCQkxNjgyNSBJSCAzNSBOb3J0aAorCQkJCVNlbG1hIFRleGFzIDc4MTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS0wRCAgIChoZXgpCQlMRUFERVIgRUxFQ1RST05JQ1MgQ09SUC4KKzAwMDkwRCAgICAgKGJhc2UgMTYpCQlMRUFERVIgRUxFQ1RST05JQ1MgQ09SUC4KKwkJCQkyLTYtMzMsIFRTVU5BU0hJTUEtSElHQVNISQorCQkJCUtPSE9LVS1LVSBZT0tPSEFNQSAyMjMtODUwNQorCQkJCUpBUEFOCisKKzAwLTA5LTBFICAgKGhleCkJCUhlbGl4IFRlY2hub2xvZ3kgSW5jLgorMDAwOTBFICAgICAoYmFzZSAxNikJCUhlbGl4IFRlY2hub2xvZ3kgSW5jLgorCQkJCTVGLCBOby4gNiwgU2VjIDEsIEp1bmctU2hpbmcgUmQuLCBXdWd1LVMKKwkJCQlUYWlwZWkgIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktMEYgICAoaGV4KQkJRm9ydGluZXQgSW5jLgorMDAwOTBGICAgICAoYmFzZSAxNikJCUZvcnRpbmV0IEluYy4KKwkJCQkzMzMzIE9jdGF2aXVzIERyaXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTEwICAgKGhleCkJCVNpbXBsZSBBY2Nlc3MgSW5jLgorMDAwOTEwICAgICAoYmFzZSAxNikJCVNpbXBsZSBBY2Nlc3MgSW5jLgorCQkJCTYwMCBNY0NhZmZyZXkgU3RyZWV0CisJCQkJU3QtTGF1cmVudCBRdWViZWMgSDRUMU4xCisJCQkJQ0FOQURBCisKKzAwLTA5LTExICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDkxMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTEyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDkxMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTEzICAgKGhleCkJCVN5c3RlbUsgQ29ycG9yYXRpb24KKzAwMDkxMyAgICAgKGJhc2UgMTYpCQlTeXN0ZW1LIENvcnBvcmF0aW9uCisJCQkJMjM4LTkgSGlnYXNoaSAxLCBLaXRhIDE1LCBIaWdhc2hpLWt1CisJCQkJU2FwcG9ybyBIb2trYWlkbyAwNjUtMDAxNQorCQkJCUpBUEFOCisKKzAwLTA5LTE0ICAgKGhleCkJCUNPTVBVVFJPTFMgSU5DLgorMDAwOTE0ICAgICAoYmFzZSAxNikJCUNPTVBVVFJPTFMgSU5DLgorCQkJCTIyMSBCYXJrIERyaXZlCisJCQkJSGFydmV5IExBIDcwMDU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS0xNSAgIChoZXgpCQlDQVMgQ29ycC4KKzAwMDkxNSAgICAgKGJhc2UgMTYpCQlDQVMgQ29ycC4KKwkJCQkjMTksIEdhbmFwLVJpCisJCQkJS3dhbmdndWstTXl1bgorCQkJCVlhbmdqdS1HdW4gS3l1bmdnaS1EbyA0ODItODQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTE2ICAgKGhleCkJCUxpc3RtYW4gSG9tZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDkxNiAgICAgKGJhc2UgMTYpCQlMaXN0bWFuIEhvbWUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTEwMCBOb3J0aG1lYWRvdyBQYXJrd2F5CisJCQkJU3VpdGUgMTA4CisJCQkJUm9zd2VsbCBHZW9yZ2lhIDMwMDc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS0xNyAgIChoZXgpCQlXRU0gVGVjaG5vbG9neSBJbmMKKzAwMDkxNyAgICAgKGJhc2UgMTYpCQlXRU0gVGVjaG5vbG9neSBJbmMKKwkJCQk4Ri0yLCBObyAzODYsIFNlYyA1IE5hbmppbmcgRWFzdCBSb2FkLgorCQkJCVRhaXBlaSAgMTA1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0xOCAgIChoZXgpCQlTQU1TVU5HIFRFQ0hXSU4gQ08uLExURAorMDAwOTE4ICAgICAoYmFzZSAxNikJCVNBTVNVTkcgVEVDSFdJTiBDTy4sTFRECisJCQkJNDIKKwkJCQlTVU5HSlVET05HCisJCQkJQ0hBTkdXT04gS1lPTkdOQU0gNjQxLTcxNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS0xOSAgIChoZXgpCQlNRFMgR2F0ZXdheXMKKzAwMDkxOSAgICAgKGJhc2UgMTYpCQlNRFMgR2F0ZXdheXMKKwkJCQlDbG9uc2hhdWdoIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJQ2xvbnNoYXVnaAorCQkJCUR1YmxpbiAxNyAgCisJCQkJSVJFTEFORAorCiswMC0wOS0xQSAgIChoZXgpCQlNYWNhdCBPcHRpY3MgJiBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMDkxQSAgICAgKGJhc2UgMTYpCQlNYWNhdCBPcHRpY3MgJiBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkxNS9GLiwgTWFjYXQgQ2VudGVyLCBOby4gNjMgTWFjYXQgUm9hZAorCQkJCUh1aXpob3UgR3Vhbmdkb25nIDUxNjAwMQorCQkJCUNISU5BCisKKzAwLTA5LTFCICAgKGhleCkJCURpZ2l0YWwgR2VuZXJhdGlvbiBJbmMuCiswMDA5MUIgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBHZW5lcmF0aW9uIEluYy4KKwkJCQk1RiwgSG8tU2FtIEIvRCwgIzMwLTMsIEJvbmdjaHVuNi1Eb25nCisJCQkJS3dhbmFrLUt1LCBTZW91bCAxNTEtMDg5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTFDICAgKGhleCkJCUNhY2hlVmlzaW9uLCBJbmMKKzAwMDkxQyAgICAgKGJhc2UgMTYpCQlDYWNoZVZpc2lvbiwgSW5jCisJCQkJMTk5MCBDb25jb3Vyc2UgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktMUQgICAoaGV4KQkJUHJvdGVhbSBDb21wdXRlciBDb3Jwb3JhdGlvbgorMDAwOTFEICAgICAoYmFzZSAxNikJCVByb3RlYW0gQ29tcHV0ZXIgQ29ycG9yYXRpb24KKwkJCQk3RiwgTm8uIDE1Ny4gU2VjdGlvbiAyIFRhLVR1bmcgUmQKKwkJCQlIc2ktQ2hpaCBUYWlwZWkgSHNpZW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0xRSAgIChoZXgpCQlGaXJzdGVjaCBUZWNobm9sb2d5IENvcnAuCiswMDA5MUUgICAgIChiYXNlIDE2KQkJRmlyc3RlY2ggVGVjaG5vbG9neSBDb3JwLgorCQkJCThmbC4sTm8uMjY3LHNlY3Rpb24gNCxIc2luLVlpIFJkLiAsRGEtQW4KKwkJCQlUYWlwZWkgIDEwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktMUYgICAoaGV4KQkJQSZhbXA7RCBDby4sIEx0ZC4KKzAwMDkxRiAgICAgKGJhc2UgMTYpCQlBJmFtcDtEIENvLiwgTHRkLgorCQkJCTEtMjQzIEFzYWhpCisJCQkJS2l0YW1vdG8tc2hpIFNhaXRhbWEgMzY0LTg1ODUKKwkJCQlKQVBBTgorCiswMC0wOS0yMCAgIChoZXgpCQlFcG9YIENPTVBVVEVSIENPLixMVEQuCiswMDA5MjAgICAgIChiYXNlIDE2KQkJRXBvWCBDT01QVVRFUiBDTy4sTFRELgorCQkJCTEwdGggRmxvb3IsIE5vLjM0NixDaHVuZyBTYW4gUmQuLFNlYy4yLAorCQkJCUNodW5nIEhvIENpdHksVGFpcGVpIEhzaWVuICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTIxICAgKGhleCkJCVBsYW5tZWNhIE95CiswMDA5MjEgICAgIChiYXNlIDE2KQkJUGxhbm1lY2EgT3kKKwkJCQlBc2VudGFqYW5rYXR1IDYKKwkJCQlIRUxTSU5LSSAgMDA4MTAgSEVMU0lOCisJCQkJRklOTEFORAorCiswMC0wOS0yMiAgIChoZXgpCQlUU1QgQmlvbWV0cmljcyBHbWJICiswMDA5MjIgICAgIChiYXNlIDE2KQkJVFNUIEJpb21ldHJpY3MgR21iSAorCQkJCU1vZWhsc3RyLiAzOQorCQkJCTgxNjc1IE11bmljaCAKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LTIzICAgKGhleCkJCUhlYW1hbiBTeXN0ZW0gQ28uLCBMdGQKKzAwMDkyMyAgICAgKGJhc2UgMTYpCQlIZWFtYW4gU3lzdGVtIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgTTYsTmF0aW9uYWwgSGktdGVjaCAmIEluZHVzCisJCQkJQ2hhbmdzaGEgSHVuYW4gUHJvdmluY2UgNDEwMDEzCisJCQkJQ0hJTkEKKworMDAtMDktMjQgICAoaGV4KQkJVGVsZWJhdSBHbWJICiswMDA5MjQgICAgIChiYXNlIDE2KQkJVGVsZWJhdSBHbWJICisJCQkJQW0gS3JhZWhlbmJlcmcgMQorCQkJCVdhbGRlY2stU2FjaHNlbmhhdXNlbiBHZXJtYW55IDM0NTEzCisJCQkJR0VSTUFOWQorCiswMC0wOS0yNSAgIChoZXgpCQlWU04gU3lzdGVtZW4gQlYKKzAwMDkyNSAgICAgKGJhc2UgMTYpCQlWU04gU3lzdGVtZW4gQlYKKwkJCQlLZWl6ZXJzdmVsZCA4MworCQkJCVZlbnJheSBMaW1idXJnIDU4MDMgQVAKKwkJCQlORVRIRVJMQU5EUworCiswMC0wOS0yNiAgIChoZXgpCQlZT0RBIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDA5MjYgICAgIChiYXNlIDE2KQkJWU9EQSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTJGLCBOby4zLTEsIEluZHVzdHJ5IEVhc3QgUm9hZCBJWCwKKwkJCQlIc2luY2h1IFNjaWVuY2UgQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktMjcgICAoaGV4KQkJVE9ZT0tFSUtJIENPLixMVEQuCiswMDA5MjcgICAgIChiYXNlIDE2KQkJVE9ZT0tFSUtJIENPLixMVEQuCisJCQkJMTctMTAtMyxTaGltb3Npbmp5bworCQkJCUhpZ2FzaGl5b2RvZ2F3YS1LdQorCQkJCU9zYWthICA1MzMtMDAyMQorCQkJCUpBUEFOCisKKzAwLTA5LTI4ICAgKGhleCkJCVRlbGVjb3JlCiswMDA5MjggICAgIChiYXNlIDE2KQkJVGVsZWNvcmUKKwkJCQkxODAwIE5vcnRoIEdsZW52aWxsZQorCQkJCVN1aXRlIDExNgorCQkJCVJpY2hhcmRzb24gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTI5ICAgKGhleCkJCVNhbnlvIEluZHVzdHJpZXMgKFVLKSBMaW1pdGVkCiswMDA5MjkgICAgIChiYXNlIDE2KQkJU2FueW8gSW5kdXN0cmllcyAoVUspIExpbWl0ZWQKKwkJCQlTY2hvb2wgUm9hZAorCQkJCUxvd2VzdG9mdCBTdWZmb2xrIE5SMzMgOU5BCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDktMkEgICAoaGV4KQkJTVlURUNTIENvLixMdGQuCiswMDA5MkEgICAgIChiYXNlIDE2KQkJTVlURUNTIENvLixMdGQuCisJCQkJMS0xMi0zOSwgVGFpc2hpZG91CisJCQkJU2V0YWdheWEta3UgVG9reW8gMTU0LTAwMDQKKwkJCQlKQVBBTgorCiswMC0wOS0yQiAgIChoZXgpCQlpUXN0b3IgTmV0d29ya3MsIEluYy4KKzAwMDkyQiAgICAgKGJhc2UgMTYpCQlpUXN0b3IgTmV0d29ya3MsIEluYy4KKwkJCQkyMDAxIENvcnBvcmF0ZSBDZW50ZXIgRHJpdmUKKwkJCQlOZXdidXJ5IFBhcmsgQ0EgOTEzMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTJDICAgKGhleCkJCUhpdHBvaW50IEluYy4KKzAwMDkyQyAgICAgKGJhc2UgMTYpCQlIaXRwb2ludCBJbmMuCisJCQkJTm8uNywgRmVubGlhbywgMm5kIEluZHVzdHJpYWwgUGFyaywgTGluaworCQkJCVRhaXBlaSAgMjQ0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0yRCAgIChoZXgpCQlIVEMgQ29ycG9yYXRpb24KKzAwMDkyRCAgICAgKGJhc2UgMTYpCQlIVEMgQ29ycG9yYXRpb24KKwkJCQlOby4yMyBYaW5naHVhIFJvYWQsCisJCQkJVGFveXVhbiBDaXR5LAorCQkJCVRhb3l1YW4gQ291bnR5ICAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0yRSAgIChoZXgpCQlCJlRlY2ggU3lzdGVtIEluYy4KKzAwMDkyRSAgICAgKGJhc2UgMTYpCQlCJlRlY2ggU3lzdGVtIEluYy4KKwkJCQkjNjAxLCBTZW8tSnVuZyBCL0QsIDgzMC0yNCwgWW91a3NhbS1Eb25nCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS0yRiAgIChoZXgpCQlBa29tIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMDkyRiAgICAgKGJhc2UgMTYpCQlBa29tIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk1RiwgTm8uIDMyMywgWWFuZy1HdWFuZyBTdC4KKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktMzAgICAoaGV4KQkJQWVyb0NvbmNpZXJnZSBJbmMuCiswMDA5MzAgICAgIChiYXNlIDE2KQkJQWVyb0NvbmNpZXJnZSBJbmMuCisJCQkJMTAyNTYgWW9uZ2UgU3QuCisJCQkJUmljaG1vbmQgSGlsbCBPbnQuIEw0QyAzQjcKKwkJCQlDQU5BREEKKworMDAtMDktMzEgICAoaGV4KQkJRnV0dXJlIEludGVybmV0LCBJbmMuCiswMDA5MzEgICAgIChiYXNlIDE2KQkJRnV0dXJlIEludGVybmV0LCBJbmMuCisJCQkJMTEndGggRmxvb3IgU2FtaG9tb29sc2FuIEJsZGcsIEIvQmxkZywgMgorCQkJCVlhbmdqZWEgRG9uZywgU2VvY2hvIEt1CisJCQkJU2VvdWwgS3l1bmctS2kgMTM3LTEzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS0zMiAgIChoZXgpCQlPbW5pbHV4CiswMDA5MzIgICAgIChiYXNlIDE2KQkJT21uaWx1eAorCQkJCTEzMCBXLiBVbmlvbiBTdC4KKwkJCQlQYXNhZGVuYSBDQSA5MTEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktMzMgICAoaGV4KQkJT3BoaXQgQ28uTHRkLgorMDAwOTMzICAgICAoYmFzZSAxNikJCU9waGl0IENvLkx0ZC4KKwkJCQkzRi4gU3VudGVjaG5vdmlsLCA1LTI3ICBNYW5ncG8tRG9uZyAsCisJCQkJWWVvbmd0b25nLUd1LCBTdXdvbi1DaXR5LCAKKwkJCQlLeXVuZ2tpLURvICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTM0ICAgKGhleCkJCURyZWFtLU11bHRpbWVkaWEtVHYgR21iSAorMDAwOTM0ICAgICAoYmFzZSAxNikJCURyZWFtLU11bHRpbWVkaWEtVHYgR21iSAorCQkJCUJydWVja3N0ci4gMjkKKwkJCQlNZW5kZW4gU2F1ZXJsYW5kIDU4NzA2CisJCQkJR0VSTUFOWQorCiswMC0wOS0zNSAgIChoZXgpCQlTYW5kdmluZSBJbmNvcnBvcmF0ZWQKKzAwMDkzNSAgICAgKGJhc2UgMTYpCQlTYW5kdmluZSBJbmNvcnBvcmF0ZWQKKwkJCQkxNzAgQ29sdW1iaWEgU3QuIFcuCisJCQkJV2F0ZXJsb28gT04gTjJMIDNMMworCQkJCUNBTkFEQQorCiswMC0wOS0zNiAgIChoZXgpCQlJcGV0cm9uaWsgR21iSCAmIENvLktHCiswMDA5MzYgICAgIChiYXNlIDE2KQkJSXBldHJvbmlrIEdtYkggJiBDby5LRworCQkJCUphZWdlcndlZyAxCisJCQkJQmFkZW4tQmFkZW4gQmFkZW4tV3VlcnR0ZW1iZXJnIDc2NTMyCisJCQkJR0VSTUFOWQorCiswMC0wOS0zNyAgIChoZXgpCQlJbnZlbnRlYyBBcHBsaWFuY2UgQ29ycAorMDAwOTM3ICAgICAoYmFzZSAxNikJCUludmVudGVjIEFwcGxpYW5jZSBDb3JwCisJCQkJMTEzLCBXdWd1bmcgMSBSRC4sIFd1S3UgSW5kdXN0cmlhbCBuUGFyaworCQkJCVd1S3UgU2hpYW5nLCBUYWlwZWkgSHNpZW4gMjQ4LCBUYWl3YW4gLAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0zOCAgIChoZXgpCQlBbGxvdCBDb21tdW5pY2F0aW9ucworMDAwOTM4ICAgICAoYmFzZSAxNikJCUFsbG90IENvbW11bmljYXRpb25zCisJCQkJSGFuYWdhciAyMiBzdCcKKwkJCQlIb2QtSGFzaGFyb24gIDQ1ODAwCisJCQkJSVNSQUVMCisKKzAwLTA5LTM5ICAgKGhleCkJCVNoaWJhU29rdSBDby4sTHRkLgorMDAwOTM5ICAgICAoYmFzZSAxNikJCVNoaWJhU29rdSBDby4sTHRkLgorCQkJCTYtOCBTaGluYmFzaGkgNC1jaG9tZQorCQkJCU1pbmF0by1rdSBUb2t5byAxMDUtMDAwNAorCQkJCUpBUEFOCisKKzAwLTA5LTNBICAgKGhleCkJCU1vbGV4IEZpYmVyIE9wdGljcworMDAwOTNBICAgICAoYmFzZSAxNikJCU1vbGV4IEZpYmVyIE9wdGljcworCQkJCTUyMjQgS2F0cmluZSBBdmVudWUKKwkJCQlEb3duZXJzIEdyb3ZlIElMIDYwNTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS0zQiAgIChoZXgpCQlIWVVOREFJIE5FVFdPUktTIElOQy4KKzAwMDkzQiAgICAgKGJhc2UgMTYpCQlIWVVOREFJIE5FVFdPUktTIElOQy4KKwkJCQlTQU4gMTM2LTEgIEFNSS1SSSAgQlVCQUxfRVVQCisJCQkJSUNIT04gS1lVTkdLSS1ETyA0NjctNzAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTNDICAgKGhleCkJCUphY3F1ZXMgVGVjaG5vbG9naWVzIFAvTAorMDAwOTNDICAgICAoYmFzZSAxNikJCUphY3F1ZXMgVGVjaG5vbG9naWVzIFAvTAorCQkJCTI2OCBNb250YWd1ZSBSZAorCQkJCVdlc3QgRW5kIFF1ZWVuc2xhbmQgNDEwMQorCQkJCUFVU1RSQUxJQQorCiswMC0wOS0zRCAgIChoZXgpCQlOZXdpc3lzLEluYy4KKzAwMDkzRCAgICAgKGJhc2UgMTYpCQlOZXdpc3lzLEluYy4KKwkJCQk2MjAwIEJyaWRnZXBvaW50IFBhcmt3YXkKKwkJCQlCdWlkaW5nIElWLCBTdWl0ZSAxMDAKKwkJCQlBdXN0aW4gVFggNzg3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTNFICAgKGhleCkJCUMmSSBUZWNobm9sb2dpZXMKKzAwMDkzRSAgICAgKGJhc2UgMTYpCQlDJkkgVGVjaG5vbG9naWVzCisJCQkJIzMwMyBLd2FuYm8gUGxhemEgQi9ELCAxNDY3LTIKKwkJCQlLd2FueWFuZy1Eb25nLCBEb25nYW4tS3UKKwkJCQlBbnlhbmctU2hpIEt5dW5nZ2ktRG8gNDMxLTgwOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS0zRiAgIChoZXgpCQlEb3VibGUtV2luIEVudGVycGlyc2UgQ08uLCBMVEQKKzAwMDkzRiAgICAgKGJhc2UgMTYpCQlEb3VibGUtV2luIEVudGVycGlyc2UgQ08uLCBMVEQKKwkJCQlOTy4zMDAsIFNlYyAxLCBDaHVuZyBGZW5nIFJkLgorCQkJCVBpbmcgQ2hlbiBDaXR5IFRhb3l1YW4gSHNpZW4gMzI0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS00MCAgIChoZXgpCQlBR0ZFTyBHbWJIICYgQ28uIEtHCiswMDA5NDAgICAgIChiYXNlIDE2KQkJQUdGRU8gR21iSCAmIENvLiBLRworCQkJCVBvc3RmYWNoIDE0MDEwNworCQkJCUJpZWxlZmVsZCBSaGluZSBXZXN0ZmFsaWEgMzM2MjEKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LTQxICAgKGhleCkJCUFsbGllZCBUZWxlc2lzIEsuSy4KKzAwMDk0MSAgICAgKGJhc2UgMTYpCQlBbGxpZWQgVGVsZXNpcyBLLksuCisJCQkJVGVjaG5pY2FsIENlbnRlci9Oby4yIFRPQyBCbGRnLgorCQkJCTctMjEtMTEgTmlzaGktR290YW5kYQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAzMQorCQkJCUpBUEFOCisKKzAwLTA5LTQyICAgKGhleCkJCVdpcmVsZXNzIFRlY2hub2xvZ2llcywgSW5jCiswMDA5NDIgICAgIChiYXNlIDE2KQkJV2lyZWxlc3MgVGVjaG5vbG9naWVzLCBJbmMKKwkJCQlPaG1vcmkgTWl0c3ViaXNoaSBCbGRnLiwgN0YsIFNhbm5vaCAyLWNob21lCisJCQkJT2h0YS1rdQorCQkJCVRva3lvICAxNDMtMDAyMworCQkJCUpBUEFOCisKKzAwLTA5LTQzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDk0MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTQ0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDk0NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTQ1ICAgKGhleCkJCVBhbG1taWNybyBDb21tdW5pY2F0aW9ucyBJbmMKKzAwMDk0NSAgICAgKGJhc2UgMTYpCQlQYWxtbWljcm8gQ29tbXVuaWNhdGlvbnMgSW5jCisJCQkJNjMwIEFsZGVyIERyCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTQ2ICAgKGhleCkJCUNsdXN0ZXIgTGFicyBHbWJICiswMDA5NDYgICAgIChiYXNlIDE2KQkJQ2x1c3RlciBMYWJzIEdtYkgKKwkJCQlEYXVlcndhbGR3ZWcgMQorCQkJCTE0MDU1IEJlcmxpbgorCQkJCUJlcmxpbiBCZXJsaW4gMTQwNTUKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LTQ3ICAgKGhleCkJCUF6dGVrLCBJbmMuCiswMDA5NDcgICAgIChiYXNlIDE2KQkJQXp0ZWssIEluYy4KKwkJCQkyMyBTcGVjdHJ1bSBQb2ludGUgIzIwOQorCQkJCUxha2UgRm9yZXN0IENhbGlmb3JuaWEgOTI2MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTQ4ICAgKGhleCkJCVZpc3RhIENvbnRyb2wgU3lzdGVtcywgQ29ycC4KKzAwMDk0OCAgICAgKGJhc2UgMTYpCQlWaXN0YSBDb250cm9sIFN5c3RlbXMsIENvcnAuCisJCQkJMjAwMSBXZXN0IE1lbGluZGEgTGFuZQorCQkJCVBob2VuaXggQVogODUwMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTQ5ICAgKGhleCkJCUdseXBoIFRlY2hub2xvZ2llcyBJbmMuCiswMDA5NDkgICAgIChiYXNlIDE2KQkJR2x5cGggVGVjaG5vbG9naWVzIEluYy4KKwkJCQk3MzUgVy4gQ2xpbnRvbiBTdHJlZXQKKwkJCQlJdGhhY2EgTlkgMTQ4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTRBICAgKGhleCkJCUhvbWVuZXQgQ29tbXVuaWNhdGlvbnMKKzAwMDk0QSAgICAgKGJhc2UgMTYpCQlIb21lbmV0IENvbW11bmljYXRpb25zCisJCQkJSW5ub3ZhdGlvbiBDZW50cmUKKwkJCQlOYXRpb25hbCBUZWNobm9sb2dpY2FsIFBhcmsKKwkJCQlMaW1lcmljayAgCisJCQkJSVJFTEFORAorCiswMC0wOS00QiAgIChoZXgpCQlGaWxsRmFjdG9yeSBOVgorMDAwOTRCICAgICAoYmFzZSAxNikJCUZpbGxGYWN0b3J5IE5WCisJCQkJU2NoYWxpZW5ob2V2ZWRyZWVmIDIwQgorCQkJCUItMjgwMCBNZWNoZWxlbiAgCisJCQkJQkVMR0lVTQorCiswMC0wOS00QyAgIChoZXgpCQlDb21tdW5pY2F0aW9uIFdlYXZlciBDby4sTHRkLgorMDAwOTRDICAgICAoYmFzZSAxNikJCUNvbW11bmljYXRpb24gV2VhdmVyIENvLixMdGQuCisJCQkJMX4zIENPV0VBVkVSIEIvRCA0NDYtMTksCisJCQkJU0VPR1lPLURPTkcsIE1BUE8tR1UKKwkJCQlTRU9VTCAgMTIxLTg0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS00RCAgIChoZXgpCQlCcmFpbnRyZWUgQ29tbXVuaWNhdGlvbnMgUHR5IEx0ZAorMDAwOTREICAgICAoYmFzZSAxNikJCUJyYWludHJlZSBDb21tdW5pY2F0aW9ucyBQdHkgTHRkCisJCQkJTGV2ZWwgMSwgNiBDb3JkZWxpYSBTdAorCQkJCVNvdXRoIEJyaXNiYW5lIFFMRCA0MTAxCisJCQkJQVVTVFJBTElBCisKKzAwLTA5LTRFICAgKGhleCkJCUJBUlRFQ0ggU1lTVEVNUyBJTlRFUk5BVElPTkFMLCBJTkMKKzAwMDk0RSAgICAgKGJhc2UgMTYpCQlCQVJURUNIIFNZU1RFTVMgSU5URVJOQVRJT05BTCwgSU5DCisJCQkJMjUxIE5ham9sZXMgUmQgU3VpdGUgQQorCQkJCU1pbGxlcnN2aWxsZSBNYXJ5bGFuZCAyMTEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNEYgICAoaGV4KQkJZWxtZWd0IEdtYkggJiBDby4gS0cKKzAwMDk0RiAgICAgKGJhc2UgMTYpCQllbG1lZ3QgR21iSCAmIENvLiBLRworCQkJCUtvbW11bmlrYXRpb25zdGVjaG5paworCQkJCVZvZWhydW1lciBTdHIuIDMwCisJCQkJUGVpbmUgTmllZGVyc2FjaHNlbiBELTMxMjI4CisJCQkJR0VSTUFOWQorCiswMC0wOS01MCAgIChoZXgpCQlJbmRlcGVuZGVudCBTdG9yYWdlIENvcnBvcmF0aW9uCiswMDA5NTAgICAgIChiYXNlIDE2KQkJSW5kZXBlbmRlbnQgU3RvcmFnZSBDb3Jwb3JhdGlvbgorCQkJCTYyNzMgTW9uYXJjaCBQYXJrIFBsYWNlCisJCQkJTml3b3QgQ29sb3JhZG8gODA1MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTUxICAgKGhleCkJCUFwb2dlZSBJbWFnaW5nIFN5c3RlbXMKKzAwMDk1MSAgICAgKGJhc2UgMTYpCQlBcG9nZWUgSW1hZ2luZyBTeXN0ZW1zCisJCQkJMTUxIFN1bnJpc2UgQXZlbnVlCisJCQkJU3VpdGUgOTAyCisJCQkJUm9zZXZpbGxlIENBIDk1NjYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS01MiAgIChoZXgpCQlBdWVyc3dhbGQgR21iSCAmIENvLiBLRworMDAwOTUyICAgICAoYmFzZSAxNikJCUF1ZXJzd2FsZCBHbWJIICYgQ28uIEtHCisJCQkJVm9yIGRlbiBHcmFzaG9lZmVuIDIyCisJCQkJQ3JlbWxpbmdlbiBOaWVkZXJzYWNoc2VuIDM4MTYyCisJCQkJR0VSTUFOWQorCiswMC0wOS01MyAgIChoZXgpCQlMaW5rYWdlIFN5c3RlbSBJbnRlZ3JhdGlvbiBDby5MdGQuCiswMDA5NTMgICAgIChiYXNlIDE2KQkJTGlua2FnZSBTeXN0ZW0gSW50ZWdyYXRpb24gQ28uTHRkLgorCQkJCTQwIEdvbmdqaWFuZmFuZworCQkJCVNvdXRoIFpob25nc2hhbiBSb2FkCisJCQkJTmFuamluZyBKaWFuZ3N1IDIxMDAwNgorCQkJCUNISU5BCisKKzAwLTA5LTU0ICAgKGhleCkJCUFNaVQgc3BvbC4gcy4gci4gby4KKzAwMDk1NCAgICAgKGJhc2UgMTYpCQlBTWlUIHNwb2wuIHMuIHIuIG8uCisJCQkJTmFza292ZSAzCisJCQkJMTUwIDAwIFByYWhhIDUgCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMDktNTUgICAoaGV4KQkJWW91bmcgR2VuZXJhdGlvbiBJbnRlcm5hdGlvbmFsIENvcnAuCiswMDA5NTUgICAgIChiYXNlIDE2KQkJWW91bmcgR2VuZXJhdGlvbiBJbnRlcm5hdGlvbmFsIENvcnAuCisJCQkJNEYuLE5vLiAxODgsIE1pbmNodWFuIFJkLiwgU2hpbmRpYW4gQ2l0eQorCQkJCVNoaW5kaWFuICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTU2ICAgKGhleCkJCU5ldHdvcmsgU3lzdGVtcyBHcm91cCwgTHRkLiAoTlNHKQorMDAwOTU2ICAgICAoYmFzZSAxNikJCU5ldHdvcmsgU3lzdGVtcyBHcm91cCwgTHRkLiAoTlNHKQorCQkJCTM5IEtpcnBpY2huYXlhIFN0LiwgU3VpdGUgMTMwMgorCQkJCU1vc2NvdyAgMTA1MTg3CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTA5LTU3ICAgKGhleCkJCVN1cGVyY2FsbGVyLCBJbmMuCiswMDA5NTcgICAgIChiYXNlIDE2KQkJU3VwZXJjYWxsZXIsIEluYy4KKwkJCQkxMDEgU2FnaW5hdyBEcml2ZQorCQkJCVJlZHdvb2QgQ2l0eSBDQSA5NDA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNTggICAoaGV4KQkJSU5URUxORVQgUy5BLgorMDAwOTU4ICAgICAoYmFzZSAxNikJCUlOVEVMTkVUIFMuQS4KKwkJCQlGUkFOQ0lTQ08gT0xJVkFOIEJBWUxFLCA0CisJCQkJWkFSQUdPWkEgIDUwMDE1CisJCQkJU1BBSU4KKworMDAtMDktNTkgICAoaGV4KQkJU2l0ZWNzb2Z0CiswMDA5NTkgICAgIChiYXNlIDE2KQkJU2l0ZWNzb2Z0CisJCQkJN3RoIEd1Z3UgQkQuIDE0NS0xOCBTYW1zdW5nLURvbmcKKwkJCQlLYW5nTmFtLUd1IFNlb3VsIEtvcmVhCisJCQkJU2VvdWwgU2VvdWwgMTM1LTA5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS01QSAgIChoZXgpCQlSQUNFV09PRCBURUNITk9MT0dZCiswMDA5NUEgICAgIChiYXNlIDE2KQkJUkFDRVdPT0QgVEVDSE5PTE9HWQorCQkJCTVGLTIsTk8uNixDSFVORy1IU0lORyBSRC4sU0VDLjEsV1UtR1UKKwkJCQlUQUlQRUkgIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktNUIgICAoaGV4KQkJTmV0Z2VhciwgSW5jLgorMDAwOTVCICAgICAoYmFzZSAxNikJCU5ldGdlYXIsIEluYy4KKwkJCQk0NTAwIEdyZWF0IEFtZXJpY2EgUGFya3dheQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS01QyAgIChoZXgpCQlQaGlsaXBzIE1lZGljYWwgU3lzdGVtcyAtIENhcmRpYWMgYW5kIE1vbml0b3JpbmcgU3lzdGVtcyAoQ00KKzAwMDk1QyAgICAgKGJhc2UgMTYpCQlQaGlsaXBzIE1lZGljYWwgU3lzdGVtcyAtIENhcmRpYWMgYW5kIE1vbml0b3JpbmcgU3lzdGVtcyAoQ00KKwkJCQkzMDAwIE1pbnV0ZW1hbiBSb2FkCisJCQkJQW5kb3ZlciBNYXNzYWNodXNldHRzIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS01RCAgIChoZXgpCQlEaWFsb2d1ZSBUZWNobm9sb2d5IENvcnAuCiswMDA5NUQgICAgIChiYXNlIDE2KQkJRGlhbG9ndWUgVGVjaG5vbG9neSBDb3JwLgorCQkJCTEwRiwgTm8uIDE5NiwgU2VjLiAyLCBKdW5nc2hpbmcgUmQuCisJCQkJU2hpbmRpYW4gQ2l0eSBUYWlwZWkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS01RSAgIChoZXgpCQlNYXNzdGVjaCBHcm91cCBJbmMuCiswMDA5NUUgICAgIChiYXNlIDE2KQkJTWFzc3RlY2ggR3JvdXAgSW5jLgorCQkJCTIgRWFzdCBCZWF2ZXIgQ3JlZWsgUmQuCisJCQkJQnVpbGRpbmcgMworCQkJCVJpY2htb25kIEhpbGwgT250YXJpbyBMNEIgMk4zCisJCQkJQ0FOQURBCisKKzAwLTA5LTVGICAgKGhleCkJCVRlbGVieXRlLCBJbmMuCiswMDA5NUYgICAgIChiYXNlIDE2KQkJVGVsZWJ5dGUsIEluYy4KKwkJCQkyNzAgUHVsYXNraSBSb2FkCisJCQkJR3JlZW5sYXduIE5ZIDExNzQwLTE2MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTYwICAgKGhleCkJCVlPWkFOIEluYy4KKzAwMDk2MCAgICAgKGJhc2UgMTYpCQlZT1pBTiBJbmMuCisJCQkJWU9aQU4gQmxkLiwzLTUtMTgsIEtpdGF6YXdhCisJCQkJU2V0YWdheWEta3UgVG9reW8gMTU1LTAwMzEKKwkJCQlKQVBBTgorCiswMC0wOS02MSAgIChoZXgpCQlTd2l0Y2hnZWFyIGFuZCBJbnN0cnVtZW50YXRpb24gTHRkCiswMDA5NjEgICAgIChiYXNlIDE2KQkJU3dpdGNoZ2VhciBhbmQgSW5zdHJ1bWVudGF0aW9uIEx0ZAorCQkJCVJpcGxleSBSb2FkCisJCQkJQnJhZGZvcmQgV2VzdCBZb3Jrc2hpcmUgQkQ0IDdFSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA5LTYyICAgKGhleCkJCVNvbml0b3IgVGVjaG5vbG9naWVzIEFTCiswMDA5NjIgICAgIChiYXNlIDE2KQkJU29uaXRvciBUZWNobm9sb2dpZXMgQVMKKwkJCQlGb3Jza25pbmdzdmVpZW4gMUIKKwkJCQlQLk8uIEJveCAxMjQKKwkJCQlPc2xvIEJsaW5kZXJuIE4tMDEzNAorCQkJCU5PUldBWQorCiswMC0wOS02MyAgIChoZXgpCQlEb21pbmlvbiBMYXNlcmNvbSBJbmMuCiswMDA5NjMgICAgIChiYXNlIDE2KQkJRG9taW5pb24gTGFzZXJjb20gSW5jLgorCQkJCTE3MTYgQnJpYXJjcmVzdCBEci4gU3RlLiAyMTAKKwkJCQlCcnlhbiBUWCA3NzgwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNjQgICAoaGV4KQkJSGktVGVjaG5pcXVlcywgSW5jLgorMDAwOTY0ICAgICAoYmFzZSAxNikJCUhpLVRlY2huaXF1ZXMsIEluYy4KKwkJCQkyNTE1IEZyYXppZXIgQXZlLgorCQkJCU1hZGlzb24gV0kgNTM3MTMtMTUwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNjUgICAoaGV4KQkJSHl1bkp1IENvbXB1dGVyIENvLiwgTHRkLgorMDAwOTY1ICAgICAoYmFzZSAxNikJCUh5dW5KdSBDb21wdXRlciBDby4sIEx0ZC4KKwkJCQkyMjItMjIsIEh5dW5qdSBCL0QsIEd1cm8gMyBEb25nLCBHdXJvZ3UKKwkJCQlTZW91bCAgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS02NiAgIChoZXgpCQlUaGFsZXMgTmF2aWdhdGlvbgorMDAwOTY2ICAgICAoYmFzZSAxNikJCVRoYWxlcyBOYXZpZ2F0aW9uCisJCQkJNDcxIEVsIENhbWlubyBSZWFsCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTY3ICAgKGhleCkJCVRhY2h5b24sIEluYworMDAwOTY3ICAgICAoYmFzZSAxNikJCVRhY2h5b24sIEluYworCQkJCTkzMzkgQ2Fycm9sbCBQYXJrIERyaXZlCisJCQkJU3VpdGUgMTUwCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS02OCAgIChoZXgpCQlURUNITk9WRU5UVVJFLCBJTkMuCiswMDA5NjggICAgIChiYXNlIDE2KQkJVEVDSE5PVkVOVFVSRSwgSU5DLgorCQkJCVAuIE8uIEJveCA1NjQxCisJCQkJUGFzYWRlbmEgVGV4YXMgNzc1MDgtNTY0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNjkgICAoaGV4KQkJTWVyZXQgT3B0aWNhbCBDb21tdW5pY2F0aW9ucworMDAwOTY5ICAgICAoYmFzZSAxNikJCU1lcmV0IE9wdGljYWwgQ29tbXVuaWNhdGlvbnMKKwkJCQkxMDA3MCBNZXNhIFJpbSBSb2FkCisJCQkJU2FuIERpZWdvIENhbGlmb3JuaWEgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTZBICAgKGhleCkJCUNsb3ZlcmxlYWYgQ29tbXVuaWNhdGlvbnMgSW5jLgorMDAwOTZBICAgICAoYmFzZSAxNikJCUNsb3ZlcmxlYWYgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTIgV2lsbG93IFN0LgorCQkJCVNvdXRoYm9yb3VnaCBNQSAwMTc0NS0xMDI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS02QiAgIChoZXgpCQlJQk0gQ29ycAorMDAwOTZCICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMzAzOSBFIENvcm53YWxsaXMgUm9hZAorCQkJCVAuTy4gQk9YIDEyMTk1CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0yMTk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS02QyAgIChoZXgpCQlJbWVkaWEgU2VtaWNvbmR1Y3RvciBDb3JwLgorMDAwOTZDICAgICAoYmFzZSAxNikJCUltZWRpYSBTZW1pY29uZHVjdG9yIENvcnAuCisJCQkJNDk4OCBHcmVhdCBBbWVyaWNhIFBrd3kuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTZEICAgKGhleCkJCVBvd2VybmV0IFRlY2hub2xvZ2llcyBDb3JwLgorMDAwOTZEICAgICAoYmFzZSAxNikJCVBvd2VybmV0IFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCTM3MS01MSwgR2FzYW4tRG9uZyBLdW1jaG9uLUd1LAorCQkJCVNlb3VsICAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTZFICAgKGhleCkJCUdJQU5UIEVMRUNUUk9OSUNTIExURC4KKzAwMDk2RSAgICAgKGJhc2UgMTYpCQlHSUFOVCBFTEVDVFJPTklDUyBMVEQuCisJCQkJNy9GLiwgRUxJVEUgSU5EVVNUUklBTCBCVUlMRElORywKKwkJCQkxMzUtMTM3IEhPSSBCVU4gUk9BRCwKKwkJCQlLV1VOIFRPTkcgS09XTE9PTiAKKwkJCQlIT05HIEtPTkcKKworMDAtMDktNkYgICAoaGV4KQkJQmVpamluZyBaaG9uZ3FpbmcgRWxlZ2FudCBUZWNoLiBDb3JwLixMaW1pdGVkCiswMDA5NkYgICAgIChiYXNlIDE2KQkJQmVpamluZyBaaG9uZ3FpbmcgRWxlZ2FudCBUZWNoLiBDb3JwLixMaW1pdGVkCisJCQkJUm0uNTA4LCBBLUJ1aWxkaW5nLCBTaGFuZ2RpIERpZ2l0YWwgU2NpZQorCQkJCUJlaWppbmcgIDEwMDA4NAorCQkJCUNISU5BCisKKzAwLTA5LTcwICAgKGhleCkJCVZpYnJhdGlvbiBSZXNlYXJjaCBDb3Jwb3JhdGlvbgorMDAwOTcwICAgICAoYmFzZSAxNikJCVZpYnJhdGlvbiBSZXNlYXJjaCBDb3Jwb3JhdGlvbgorCQkJCTIzODUgV2lsc2hlcmUgRHJpdmUKKwkJCQlTdWl0ZSBBCisJCQkJSmVuaXNvbiBNSSA0OTQyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNzEgICAoaGV4KQkJVGltZSBNYW5hZ2VtZW50LCBJbmMuCiswMDA5NzEgICAgIChiYXNlIDE2KQkJVGltZSBNYW5hZ2VtZW50LCBJbmMuCisJCQkJMTEgTGFrZSBHYXRsaW4gUm9hZAorCQkJCU9ybGFuZG8gRmxvcmlkYSAzMjgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNzIgICAoaGV4KQkJU2VjdXJlYmFzZSxJbmMKKzAwMDk3MiAgICAgKGJhc2UgMTYpCQlTZWN1cmViYXNlLEluYworCQkJCTJuZCBGbCxTZXVuZ3NldW5nLUJsZGcsRG9rb2sgMi1Eb25nLEthbmcKKwkJCQlTZW91bCAgMTM1LTg1NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS03MyAgIChoZXgpCQlMZW50ZW4gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDk3MyAgICAgKGJhc2UgMTYpCQlMZW50ZW4gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxNkYsIE5vLjUxLCBTZWMuMiwgR3VuZ3lpIFJvYWQsCisJCQkJVGFpY2h1bmcgQ2l0eSAgNDA4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS03NCAgIChoZXgpCQlJbm5vcGlhIFRlY2hub2xvZ2llcywgSW5jLgorMDAwOTc0ICAgICAoYmFzZSAxNikJCUlubm9waWEgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNUYuLCBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neQorCQkJCUhhbnlhbmcgVW5pdmVyc2l0eSwgMTcgSGFlbmdkYW5nLURvbmcKKwkJCQlTZW91bCAgMTMzLTc5MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS03NSAgIChoZXgpCQlmU09OQSBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorMDAwOTc1ICAgICAoYmFzZSAxNikJCWZTT05BIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCisJCQkJIzE0MC0xMTEyMCBIb3JzZXNob2UgV2F5CisJCQkJUmljaG1vbmQgQkMgVjdBIDVINworCQkJCUNBTkFEQQorCiswMC0wOS03NiAgIChoZXgpCQlEYXRhc29mdCBJU0ROIFN5c3RlbXMgR21iSAorMDAwOTc2ICAgICAoYmFzZSAxNikJCURhdGFzb2Z0IElTRE4gU3lzdGVtcyBHbWJICisJCQkJU2NoaWxsZXJwbGF0eiAzCisJCQkJU3QuIFBvZWx0ZW4gTG93ZXIgQXVzdHJpYSAzMTAwCisJCQkJQVVTVFJJQQorCiswMC0wOS03NyAgIChoZXgpCQlCcnVubmVyIEVsZWt0cm9uaWsgQUcKKzAwMDk3NyAgICAgKGJhc2UgMTYpCQlCcnVubmVyIEVsZWt0cm9uaWsgQUcKKwkJCQlNdWxsZXJ3aXMgMQorCQkJCUhpdHRuYXUgWnVyaWNoIDgzMzUKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wOS03OCAgIChoZXgpCQlBSUpJIFN5c3RlbSBDby4sIEx0ZC4KKzAwMDk3OCAgICAgKGJhc2UgMTYpCQlBSUpJIFN5c3RlbSBDby4sIEx0ZC4KKwkJCQkjMjA4IFNhbWhvLVBhcmstVG93ZXIgQmxkZy4gMTEyMi0xMCwgSW5nCisJCQkJU3V3b24gR3llb25nZ2ktZG8gNDQyLTgzNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS03OSAgIChoZXgpCQlBZHZhbmNlZCBUZWxldmlzaW9uIFN5c3RlbXMgQ29tbWl0dGVlLCBJbmMuCiswMDA5NzkgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgVGVsZXZpc2lvbiBTeXN0ZW1zIENvbW1pdHRlZSwgSW5jLgorCQkJCTE3NTAgSyBTdHJlZXQgTlcKKwkJCQlTdWl0ZSAxMjAwCisJCQkJV2FzaGluZ3RvbiBEQyAyMDAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktN0EgICAoaGV4KQkJTG91aXMgRGVzaWduIExhYnMuCiswMDA5N0EgICAgIChiYXNlIDE2KQkJTG91aXMgRGVzaWduIExhYnMuCisJCQkJMkYsTk8gNCwgTGFuZSA0OTcsIENodW5nLUNoZW5nIFJkLixIc2luLQorCQkJCUhzaW4tVGllbiBUYWlwZWkgSHNpZW4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS03QiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA5N0IgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS03QyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA5N0MgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTdEICAgKGhleCkJCVNlY1dlbGwgTmV0d29ya3MgT3kKKzAwMDk3RCAgICAgKGJhc2UgMTYpCQlTZWNXZWxsIE5ldHdvcmtzIE95CisJCQkJUC5PLkJPWCAxNzQKKwkJCQlIYW1lZW5wdWlzdG8gMjEKKwkJCQlUYW1wZXJlICAzMzEwMQorCQkJCUZJTkxBTkQKKworMDAtMDktN0UgICAoaGV4KQkJSU1JIFRFQ0hOT0xPR1kgQ08uLCBMVEQKKzAwMDk3RSAgICAgKGJhc2UgMTYpCQlJTUkgVEVDSE5PTE9HWSBDTy4sIExURAorCQkJCTJuZCBmbG9vciwgRXVuIFNlb2sgQnVpbGRpbmcsIDcyOS0xCisJCQkJWWVva3NhbS1kb25nLAorCQkJCUdhbmduYW0tZ3UgU2VvdWwgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS03RiAgIChoZXgpCQlWc2VjdXJlIDIwMDAgTFRELgorMDAwOTdGICAgICAoYmFzZSAxNikJCVZzZWN1cmUgMjAwMCBMVEQuCisJCQkJMTEgTW9zaGUgTGV2aSBTdC4KKwkJCQlSaXNob24gTGVaaW9uICA3NTY1OAorCQkJCUlTUkFFTAorCiswMC0wOS04MCAgIChoZXgpCQlQb3dlciBaZW5pdGggSW5jLgorMDAwOTgwICAgICAoYmFzZSAxNikJCVBvd2VyIFplbml0aCBJbmMuCisJCQkJVHN1amlkbyBOaXNoaWthaWdhbiAxLTEwLTcKKwkJCQlGdWppc2F3YSBLYW5hZ2F3YSAyNTEtMDA0NgorCQkJCUpBUEFOCisKKzAwLTA5LTgxICAgKGhleCkJCU5ld3BvcnQgTmV0d29ya3MKKzAwMDk4MSAgICAgKGJhc2UgMTYpCQlOZXdwb3J0IE5ldHdvcmtzCisJCQkJRW50ZXJwcmlzZSBIb3VzZQorCQkJCVN0YXRpb24gUm9hZAorCQkJCUNoZXBzdG93IE1vbm1vdXRoc2hpcmUgTlAxNiA1UEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wOS04MiAgIChoZXgpCQlMb2V3ZSBPcHRhIEdtYkgKKzAwMDk4MiAgICAgKGJhc2UgMTYpCQlMb2V3ZSBPcHRhIEdtYkgKKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDExCisJCQkJS3JvbmFjaCBCYXZhcmlhIDk2MzE3CisJCQkJR0VSTUFOWQorCiswMC0wOS04MyAgIChoZXgpCQlHdmlzaW9uIEluY29ycG9yYXRlZAorMDAwOTgzICAgICAoYmFzZSAxNikJCUd2aXNpb24gSW5jb3Jwb3JhdGVkCisJCQkJMTFGLCBOby4xNjYsIENoaWVuLUkgUm9hZAorCQkJCUNodW5nIEhvIENpdHksIFRhaXBlaSBIc2llbiAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS04NCAgIChoZXgpCQlNeUNhc2EgTmV0d29yayBJbmMuCiswMDA5ODQgICAgIChiYXNlIDE2KQkJTXlDYXNhIE5ldHdvcmsgSW5jLgorCQkJCTIwMCBTaGVyaWRhbiBBdmUgIzEwMworCQkJCVBhbG8gQWx0byBDQSA5NDMwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktODUgICAoaGV4KQkJQXV0byBUZWxlY29tIENvbXBhbnkKKzAwMDk4NSAgICAgKGJhc2UgMTYpCQlBdXRvIFRlbGVjb20gQ29tcGFueQorCQkJCTEwRiwgTm8uMyxMYW5lIDE2LCBTZWMuMiwgU2ljaHVhbiBSZC4KKwkJCQlCYW5xaWFvIENpdHkgVGFpcGVpIENvdW50eSAyMjA2MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktODYgICAoaGV4KQkJTWV0YWxpbmsgTFRELgorMDAwOTg2ICAgICAoYmFzZSAxNikJCU1ldGFsaW5rIExURC4KKwkJCQlZYWt1bSBCdXNpbmVzcyBQYXJrCisJCQkJWWFrdW0gSE9GIEhBU0hBUk9OIDYwOTcyCisJCQkJSVNSQUVMCisKKzAwLTA5LTg3ICAgKGhleCkJCU5JU0hJIE5JUFBPTiBFTEVDVFJJQyBXSVJFICYgQ0FCTEUgQ08uLExURC4KKzAwMDk4NyAgICAgKGJhc2UgMTYpCQlOSVNISSBOSVBQT04gRUxFQ1RSSUMgV0lSRSAmIENBQkxFIENPLixMVEQuCisJCQkJS2FzdWdhdXJhCisJCQkJT2l0YS1DaXR5IE9JVEEgODcwLTg2MzIKKwkJCQlKQVBBTgorCiswMC0wOS04OCAgIChoZXgpCQlOdWRpYW4gRWxlY3Ryb24gQ28uLCBMdGQuCiswMDA5ODggICAgIChiYXNlIDE2KQkJTnVkaWFuIEVsZWN0cm9uIENvLiwgTHRkLgorCQkJCTc5Ny0yOCBCYW5nYmFlLURvbmcsIFNlb2Noby1HdQorCQkJCVNlb3VsICAxMzctMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTg5ICAgKGhleCkJCVZpdmlkTG9naWMgSW5jLgorMDAwOTg5ICAgICAoYmFzZSAxNikJCVZpdmlkTG9naWMgSW5jLgorCQkJCTQwOTk0IEVuY3ljbG9wZWRpYSBDaXJjbGUKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS04QSAgIChoZXgpCQlFcXVhbExvZ2ljIEluYworMDAwOThBICAgICAoYmFzZSAxNikJCUVxdWFsTG9naWMgSW5jCisJCQkJOSBUb3duc2VuZCBXZXN0CisJCQkJTmFzaHVhIE5IIDAzMDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS04QiAgIChoZXgpCQlFbnRyb3BpYyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwOThCICAgICAoYmFzZSAxNikJCUVudHJvcGljIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJOTI3NiBTY3JhbnRvbiBSZCAjMjAwCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS04QyAgIChoZXgpCQlPcHRpb24gV2lyZWxlc3MgU3dlZGVuCiswMDA5OEMgICAgIChiYXNlIDE2KQkJT3B0aW9uIFdpcmVsZXNzIFN3ZWRlbgorCQkJCVN0dXJlZ2F0YW4gMgorCQkJCTExdGggZmwuCisJCQkJU3VuZGJ5YmVyZyBTRS0xNzIgMjQKKwkJCQlTV0VERU4KKworMDAtMDktOEQgICAoaGV4KQkJVmVsb2NpdHkgU2VtaWNvbmR1Y3RvcgorMDAwOThEICAgICAoYmFzZSAxNikJCVZlbG9jaXR5IFNlbWljb25kdWN0b3IKKwkJCQlTdWl0ZSAzMiBXZXkgSG91c2UKKwkJCQkxNSBDaHVyY2ggU3RyZWV0CisJCQkJV2V5YnJpZGdlIFN1cnJleSBLVDEzIDhOQQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA5LThFICAgKGhleCkJCWlwY2FzIEdtYkgKKzAwMDk4RSAgICAgKGJhc2UgMTYpCQlpcGNhcyBHbWJICisJCQkJV2V0dGVya3JldXogMTcKKwkJCQlFcmxhbmdlbiBCYXZhcmlhIDkxMDU4CisJCQkJR0VSTUFOWQorCiswMC0wOS04RiAgIChoZXgpCQlDZXRhY2VhbiBOZXR3b3JrcworMDAwOThGICAgICAoYmFzZSAxNikJCUNldGFjZWFuIE5ldHdvcmtzCisJCQkJMTEwIENvcnBvcmF0ZSBEcml2ZQorCQkJCUJ1aWxkaW5nIDIKKwkJCQlQb3J0c21vdXRoIE5IIDAzODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS05MCAgIChoZXgpCQlBQ0tTWVMgQ29tbXVuaWNhdGlvbnMgJiBzeXN0ZW1zCiswMDA5OTAgICAgIChiYXNlIDE2KQkJQUNLU1lTIENvbW11bmljYXRpb25zICYgc3lzdGVtcworCQkJCVpBIGR1IFZhbCBKb3lldXgKKwkJCQkxMCBydWUgZGVzIEVudHJlcHJlbmV1cnMKKwkJCQlWSUxMRVBSRVVYICBGLTc4NDUwCisJCQkJRlJBTkNFCisKKzAwLTA5LTkxICAgKGhleCkJCUdFIEZhbnVjIEF1dG9tYXRpb24gTWFudWZhY3R1cmluZywgSW5jLgorMDAwOTkxICAgICAoYmFzZSAxNikJCUdFIEZhbnVjIEF1dG9tYXRpb24gTWFudWZhY3R1cmluZywgSW5jLgorCQkJCVJvdXRlIDYwNiAmIFJvdXRlIDI5TgorCQkJCVBPIEJveCA4MTA2CisJCQkJQ2hhcmxvdHRlc3ZpbGxlIFZpcmdpbmlhIDIyOTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS05MiAgIChoZXgpCQlJbnRlckVwb2NoIFRlY2hub2xvZ3ksSU5DLgorMDAwOTkyICAgICAoYmFzZSAxNikJCUludGVyRXBvY2ggVGVjaG5vbG9neSxJTkMuCisJCQkJN0YsTm8uMyxBbGxleSA2LExhbmUgMjM1LFBhby1DaGlhbyBSZAorCQkJCUhzaW4tVGllbiBUYWlwZWkgSHNpZW4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS05MyAgIChoZXgpCQlWaXN0ZW9uIENvcnBvcmF0aW9uCiswMDA5OTMgICAgIChiYXNlIDE2KQkJVmlzdGVvbiBDb3Jwb3JhdGlvbgorCQkJCTE2NjMwIFNvdXRoZmllbGQgUm9hZAorCQkJCVN0LiA0MUUxMAorCQkJCUFsbGVuIFBhcmsgTWljaGlnYW4gNDgxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTk0ICAgKGhleCkJCUNyb255eCBFbmdpbmVlcmluZworMDAwOTk0ICAgICAoYmFzZSAxNikJCUNyb255eCBFbmdpbmVlcmluZworCQkJCU1hcnNoYWxhIFNva29sb3Zza29nbyBzdHIuIDQKKwkJCQlNb3Njb3cgIDEyMzA2MworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0wOS05NSAgIChoZXgpCQlDYXN0bGUgVGVjaG5vbG9neSBMdGQKKzAwMDk5NSAgICAgKGJhc2UgMTYpCQlDYXN0bGUgVGVjaG5vbG9neSBMdGQKKwkJCQlPcmUgVHJhZGluZyBFc3RhdGUKKwkJCQlXb29kYnJpZGdlIFJvYWQKKwkJCQlGcmFtbGluZ2hhbSBTdWZmb2xrIElQMTMgOUxMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDktOTYgICAoaGV4KQkJUkRJCiswMDA5OTYgICAgIChiYXNlIDE2KQkJUkRJCisJCQkJMjA0MDYgRWFybCBTdC4KKwkJCQlUb3JyYW5jZSBDQSA5MDUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktOTcgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDA5OTcgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTA5LTk4ICAgKGhleCkJCUNhcGluZm8gQ29tcGFueSBMaW1pdGVkCiswMDA5OTggICAgIChiYXNlIDE2KQkJQ2FwaW5mbyBDb21wYW55IExpbWl0ZWQKKwkJCQk3dGggRmxvb3IgQSBDb3Jwb3JhdGUgU3F1YXJlLCBOTy4gMzUgRmluCisJCQkJQmVpamluZyAgMTAwMDMyCisJCQkJQ0hJTkEKKworMDAtMDktOTkgICAoaGV4KQkJQ1AgR0VPUkdFUyBSRU5BVUxUCiswMDA5OTkgICAgIChiYXNlIDE2KQkJQ1AgR0VPUkdFUyBSRU5BVUxUCisJCQkJMzggUnVlIEJvYmJ5IFNhbmRzCisJCQkJNDQ4MDAgU2FpbnQgSGVyYmxhaW4gCisJCQkJRlJBTkNFCisKKzAwLTA5LTlBICAgKGhleCkJCUVMTU8gQ09NUEFOWSwgTElNSVRFRAorMDAwOTlBICAgICAoYmFzZSAxNikJCUVMTU8gQ09NUEFOWSwgTElNSVRFRAorCQkJCTYtMTQsIE1FSVpFTi1DSE8sIE1JWlVITy1LVQorCQkJCU5BR09ZQSBBSUNISS1QcmVmLiA0NjctODU2NworCQkJCUpBUEFOCisKKzAwLTA5LTlCICAgKGhleCkJCVdlc3Rlcm4gVGVsZW1hdGljIEluYy4KKzAwMDk5QiAgICAgKGJhc2UgMTYpCQlXZXN0ZXJuIFRlbGVtYXRpYyBJbmMuCisJCQkJNSBTdGVybGluZworCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktOUMgICAoaGV4KQkJTmF2YWwgUmVzZWFyY2ggTGFib3JhdG9yeQorMDAwOTlDICAgICAoYmFzZSAxNikJCU5hdmFsIFJlc2VhcmNoIExhYm9yYXRvcnkKKwkJCQlDb2RlIDU1OTIKKwkJCQk0NTU1IE92ZXJsb29rIEF2ZW51ZQorCQkJCVdhc2hpbmd0b24gREMgMjAzNzUtNTAwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktOUQgICAoaGV4KQkJSGFsaXBsZXggQ29tbXVuaWNhdGlvbnMKKzAwMDk5RCAgICAgKGJhc2UgMTYpCQlIYWxpcGxleCBDb21tdW5pY2F0aW9ucworCQkJCVBPIEJveCAxNDcKKwkJCQlNb29yb29sYmFyayBWaWMgMzEzOAorCQkJCUFVU1RSQUxJQQorCiswMC0wOS05RSAgIChoZXgpCQlUZXN0ZWNoLCBJbmMuCiswMDA5OUUgICAgIChiYXNlIDE2KQkJVGVzdGVjaCwgSW5jLgorCQkJCUJ1bmRhbmctVGVjaG5vcGFyaywgQy1Eb25nLCA3MDItSG8sICMxNDUKKwkJCQlZYXRhcC1Eb25nLCBCdW5kYW5nLUd1LAorCQkJCVN1bmduYW0tQ2l0eSBLeXVuZ2tpLURvIDQ2My0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktOUYgICAoaGV4KQkJVklERVggSU5DLgorMDAwOTlGICAgICAoYmFzZSAxNikJCVZJREVYIElOQy4KKwkJCQkxMTA1IE5FIENpcmNsZSBCbHZkCisJCQkJQ29ydmFsbGlzIE9SIDk3MzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1BMCAgIChoZXgpCQlNaWNyb3RlY2hubyBDb3Jwb3JhdGlvbgorMDAwOUEwICAgICAoYmFzZSAxNikJCU1pY3JvdGVjaG5vIENvcnBvcmF0aW9uCisJCQkJMi0zMy0zNiBTaGltb29kYW5ha2EKKwkJCQlOYWthaGFyYS1rdQorCQkJCUthd2FzYWtpIEthbmFnYXdhIDIxMS0wMDQxCisJCQkJSkFQQU4KKworMDAtMDktQTEgICAoaGV4KQkJVGVsZXdpc2UgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDlBMSAgICAgKGJhc2UgMTYpCQlUZWxld2lzZSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTIwNTAgUmluZ3dvb2QgQXZlbnVlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUEyICAgKGhleCkJCUludGVyZmFjZSBDby4sIEx0ZC4KKzAwMDlBMiAgICAgKGJhc2UgMTYpCQlJbnRlcmZhY2UgQ28uLCBMdGQuCisJCQkJMi01LTEyLTIwMSBLeW9uYW5jaG8KKwkJCQlNdXNhc2hpbm8tY2l0eSBUb2t5byAxODAtMDAyMworCQkJCUpBUEFOCisKKzAwLTA5LUEzICAgKGhleCkJCUxlYWRmbHkgVGVjaG9sb2dpZXMgQ29ycC4gTHRkLgorMDAwOUEzICAgICAoYmFzZSAxNikJCUxlYWRmbHkgVGVjaG9sb2dpZXMgQ29ycC4gTHRkLgorCQkJCTlGbCwgTm8uMjYwLCBCYWRlIFJkLiwKKwkJCQkxMDQsIFIuTy5DLgorCQkJCVRhaXBlaSAgMTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS1BNCAgIChoZXgpCQlIQVJURUMgQ29ycG9yYXRpb24KKzAwMDlBNCAgICAgKGJhc2UgMTYpCQlIQVJURUMgQ29ycG9yYXRpb24KKwkJCQlLT1VIT0tVS1UgU0hJTi1ZT0tPSEFNQQorCQkJCTMtMTktNQorCQkJCVlPS09IQU1BLVNISSBLQU5BR0FXQS1LRU4gMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0wOS1BNSAgIChoZXgpCQlIQU5TVU5HIEVMRVRST05JQyBJTkRVU1RSSUVTIERFVkVMT1BNRU5UIENPLiwgTFRECiswMDA5QTUgICAgIChiYXNlIDE2KQkJSEFOU1VORyBFTEVUUk9OSUMgSU5EVVNUUklFUyBERVZFTE9QTUVOVCBDTy4sIExURAorCQkJCUhFVU5HSklOIEJMREcgM0YsICMyMTctMyBQT0ktRE9ORywgS0FOR04KKwkJCQlTRU9VTCAgMTM1LTk2MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1BNiAgIChoZXgpCQlJZ25pcyBPcHRpY3MsIEluYy4KKzAwMDlBNiAgICAgKGJhc2UgMTYpCQlJZ25pcyBPcHRpY3MsIEluYy4KKwkJCQk0ODIgVy4gU2FuIENhcmxvcworCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUE3ICAgKGhleCkJCUJhbmcgJiBPbHVmc2VuIEEvUworMDAwOUE3ICAgICAoYmFzZSAxNikJCUJhbmcgJiBPbHVmc2VuIEEvUworCQkJCVBldGVyIEJhbmdzIFZlaiAxNQorCQkJCVN0cnVlciAgNzYwMAorCQkJCURFTk1BUksKKworMDAtMDktQTggICAoaGV4KQkJRWFzdG1vZGUgUHRlIEx0ZAorMDAwOUE4ICAgICAoYmFzZSAxNikJCUVhc3Rtb2RlIFB0ZSBMdGQKKwkJCQkzMCBMb3lhbmcgV2F5ICMwNy0wNgorCQkJCUxveWFuZyBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCTUwODc2OQorCQkJCVNJTkdBUE9SRQorCiswMC0wOS1BOSAgIChoZXgpCQlJa2Fub3MgQ29tbXVuaWNhdGlvbnMKKzAwMDlBOSAgICAgKGJhc2UgMTYpCQlJa2Fub3MgQ29tbXVuaWNhdGlvbnMKKwkJCQk0NzcwOSBGcmVtb250IEJsdmQKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1BQSAgIChoZXgpCQlEYXRhIENvbW0gZm9yIEJ1c2luZXNzLCBJbmMuCiswMDA5QUEgICAgIChiYXNlIDE2KQkJRGF0YSBDb21tIGZvciBCdXNpbmVzcywgSW5jLgorCQkJCTI5NDkgQ291bnR5IFJvYWQgMTAwMCBFYXN0CisJCQkJRGV3ZXkgSUwgNjE4NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUFCICAgKGhleCkJCU5ldGNvbnRyb2wgT3kKKzAwMDlBQiAgICAgKGJhc2UgMTYpCQlOZXRjb250cm9sIE95CisJCQkJS2FydmFhbW9rdWphIDMKKwkJCQlIZWxzaW5raSAgRklOIDAwMzgwCisJCQkJRklOTEFORAorCiswMC0wOS1BQyAgIChoZXgpCQlMQU5WT0lDRQorMDAwOUFDICAgICAoYmFzZSAxNikJCUxBTlZPSUNFCisJCQkJMTM2NC0zOSBTZW9jaG9Eb25nLCAjMjAxIEppaHVuIEJsZGcKKwkJCQlTZW9jaG8tR3UKKwkJCQlTZW91bCAgMTM3LTA3MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1BRCAgIChoZXgpCQlIWVVOREFJIFNZU0NPTU0sIElOQy4KKzAwMDlBRCAgICAgKGJhc2UgMTYpCQlIWVVOREFJIFNZU0NPTU0sIElOQy4KKwkJCQlTQU4gMTM2LTEsIEFNSS1SSSwgQlVCQUwtRVVCCisJCQkJSUNIT04gS1lPVU5HS0ktRE8gNDY3LTcwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1BRSAgIChoZXgpCQlPS0FOTyBFTEVDVFJJQyBDTy4sTFRECiswMDA5QUUgICAgIChiYXNlIDE2KQkJT0tBTk8gRUxFQ1RSSUMgQ08uLExURAorCQkJCTItOC0xOCBLQU5BWUFNQS1DSE8KKwkJCQlISUdBU0hJS1VSVU1FIFRPS1lPIDIwMy0wMDAzCisJCQkJSkFQQU4KKworMDAtMDktQUYgICAoaGV4KQkJZS1nZW5lcmlzCiswMDA5QUYgICAgIChiYXNlIDE2KQkJZS1nZW5lcmlzCisJCQkJMTMgcnVlIGR1IGNoZW5lIGdlcm1haW4KKwkJCQljZXNzb24gc2V2aWduZSAgMzU1MTAKKwkJCQlGUkFOQ0UKKworMDAtMDktQjAgICAoaGV4KQkJT25reW8gQ29ycG9yYXRpb24KKzAwMDlCMCAgICAgKGJhc2UgMTYpCQlPbmt5byBDb3Jwb3JhdGlvbgorCQkJCTItMSBOaXNzaGluLWNobworCQkJCU5leWFnYXdhIE9zYWthIDU3Mjg1NDAKKwkJCQlKQVBBTgorCiswMC0wOS1CMSAgIChoZXgpCQlLYW5lbWF0c3UgRWxlY3Ryb25pY3MsIEx0ZC4KKzAwMDlCMSAgICAgKGJhc2UgMTYpCQlLYW5lbWF0c3UgRWxlY3Ryb25pY3MsIEx0ZC4KKwkJCQkxNy01LCBLeW9iYXNoaSAyLWNob21lCisJCQkJQ2h1by1rdSBUb2t5byAxMDQtODMzOAorCQkJCUpBUEFOCisKKzAwLTA5LUIyICAgKGhleCkJCUwmRiBJbmMuCiswMDA5QjIgICAgIChiYXNlIDE2KQkJTCZGIEluYy4KKwkJCQk0LTItOQorCQkJCVRPS1VNQVJVCisJCQkJSVRBQkFTSEktS1UgVG9reW8gMTc1LTAwODMKKwkJCQlKQVBBTgorCiswMC0wOS1CMyAgIChoZXgpCQlNQ00gU3lzdGVtcyBMdGQKKzAwMDlCMyAgICAgKGJhc2UgMTYpCQlNQ00gU3lzdGVtcyBMdGQKKwkJCQlLb2xvbWJhbiA5RgorCQkJCUFua2FyYW4gU2xvdmVuaWphIDYyODAKKwkJCQlTTE9WRU5JQQorCiswMC0wOS1CNCAgIChoZXgpCQlLSVNBTiBURUxFQ09NIENPLiwgTFRELgorMDAwOUI0ICAgICAoYmFzZSAxNikJCUtJU0FOIFRFTEVDT00gQ08uLCBMVEQuCisJCQkJOUYsIFRlYXdvbiBCbGRnLiwgNjUgQmFuZ3lpLURvbmcKKwkJCQlTb25ncGEtR3UgU2VvdWwgMTM4LTgyOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1CNSAgIChoZXgpCQkzSiBUZWNoLiBDby4sIEx0ZC4KKzAwMDlCNSAgICAgKGJhc2UgMTYpCQkzSiBUZWNoLiBDby4sIEx0ZC4KKwkJCQkzNDIgRnVzaGluZyBOLiBSZC4sIDJGLCBUYWlwZWksIFRhaXdhbgorCQkJCVRhaXBlaSAgMTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS1CNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA5QjYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENhIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1CNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA5QjcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk0MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1COCAgIChoZXgpCQlFbnRpc2UgU3lzdGVtcworMDAwOUI4ICAgICAoYmFzZSAxNikJCUVudGlzZSBTeXN0ZW1zCisJCQkJMTAwOTUgSnVkeSBBdmVudWUKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUI5ICAgKGhleCkJCUFjdGlvbiBJbWFnaW5nIFNvbHV0aW9ucworMDAwOUI5ICAgICAoYmFzZSAxNikJCUFjdGlvbiBJbWFnaW5nIFNvbHV0aW9ucworCQkJCUtpbmdzIEhhbGwsIFN0IEl2ZXMgQnVzaW5lc3MgUGFyaworCQkJCVN0IEl2ZXMKKwkJCQlIdW50aW5nZG9uIENhbWJyaWRnZXNoaXJlIFBFMjcgNFdZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDktQkEgICAoaGV4KQkJTUFLVSBJbmZvcm1hdGlvbnN0ZWNoaWsgR21iSAorMDAwOUJBICAgICAoYmFzZSAxNikJCU1BS1UgSW5mb3JtYXRpb25zdGVjaGlrIEdtYkgKKwkJCQlHZXdlcmJlaG9mc3RyLiA3CisJCQkJRXNzZW4gTlJXIDQ1MTQ1CisJCQkJR0VSTUFOWQorCiswMC0wOS1CQiAgIChoZXgpCQlNYXRoU3RhciwgSW5jLgorMDAwOUJCICAgICAoYmFzZSAxNikJCU1hdGhTdGFyLCBJbmMuCisJCQkJNTkwMCBHcmVlbiBPYWsgRHJpdmUKKwkJCQlNaW5uZWFwb2xpcyBNTiA1NTM0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktQkMgICAoaGV4KQkJRGlnaXRhbCBTYWZldHkgVGVjaG5vbG9naWVzLCBJbmMKKzAwMDlCQyAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFNhZmV0eSBUZWNobm9sb2dpZXMsIEluYworCQkJCTUxMSBEYXZpcyBEci4KKwkJCQlTdWl0ZSAzMDAKKwkJCQlNb3JyaXN2aWxsZSBOQyAyNzU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktQkQgICAoaGV4KQkJRXB5Z2kgVGVjaG5vbG9naWVzLCBMdGQuCiswMDA5QkQgICAgIChiYXNlIDE2KQkJRXB5Z2kgVGVjaG5vbG9naWVzLCBMdGQuCisJCQkJNTA0MCBBZGRpc29uIENpcmNsZQorCQkJCVN1aXRlIDIyNQorCQkJCUFkZGlzb24gVGV4YXMgNzUwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUJFICAgKGhleCkJCU1hbWl5YS1PUCBDby4sTHRkLgorMDAwOUJFICAgICAoYmFzZSAxNikJCU1hbWl5YS1PUCBDby4sTHRkLgorCQkJCTMtMjMtMTAsIE5lZ2lzaGkgTWluYW1pLWt1CisJCQkJU2FpdGFtYS1zaGkgU2FpdGFtYSAzMzYtODU4MQorCQkJCUpBUEFOCisKKzAwLTA5LUJGICAgKGhleCkJCU5pbnRlbmRvIENvLixMdGQuCiswMDA5QkYgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0wOS1DMCAgIChoZXgpCQk2V0lORAorMDAwOUMwICAgICAoYmFzZSAxNikJCTZXSU5ECisJCQkJMSwgcGxhY2UgQ2hhcmxlcyBkZSBHYXVsbGUKKwkJCQlNb250aWdueS1sZS1CcmV0b25uZXV4ICA3ODE4MAorCQkJCUZSQU5DRQorCiswMC0wOS1DMSAgIChoZXgpCQlQUk9DRVMtREFUQSBBL1MKKzAwMDlDMSAgICAgKGJhc2UgMTYpCQlQUk9DRVMtREFUQSBBL1MKKwkJCQlOYXZlcnZlaiA4CisJCQkJU2lsa2Vib3JnICBESy04NjAwCisJCQkJREVOTUFSSworCiswMC0wOS1DMiAgIChoZXgpCQlPbml0eSwgSW5jLgorMDAwOUMyICAgICAoYmFzZSAxNikJCU9uaXR5LCBJbmMuCisJCQkJMjIzMiBOb3J0aG1vbnQgUGFya3dheQorCQkJCUR1bHV0aCBHQSAzMDA5NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktQzMgICAoaGV4KQkJTkVUQVMKKzAwMDlDMyAgICAgKGJhc2UgMTYpCQlORVRBUworCQkJCUFsZW1kYWcgQ2FkLiBObyAxNzEKKwkJCQlVTVJBTklZRQorCQkJCUlTVEFOQlVMICA4MTI0NAorCQkJCVRVUktFWQorCiswMC0wOS1DNCAgIChoZXgpCQlNZWRpY29yZSBDby4sIEx0ZAorMDAwOUM0ICAgICAoYmFzZSAxNikJCU1lZGljb3JlIENvLiwgTHRkCisJCQkJNzItMyA1dGggRmwuLCBMdW5hIEJsZGcsIENodW5nZGFtLWRvbmcKKwkJCQlLYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktQzUgICAoaGV4KQkJS0lOR0VORSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDA5QzUgICAgIChiYXNlIDE2KQkJS0lOR0VORSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJN0YsIE5vLiAxNDQsIE1pbmNodWFuIEUuIFJkLiBTZWMuIDMKKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktQzYgICAoaGV4KQkJVmlzaW9uaWNzIENvcnBvcmF0aW9uCiswMDA5QzYgICAgIChiYXNlIDE2KQkJVmlzaW9uaWNzIENvcnBvcmF0aW9uCisJCQkJNTYwMCBSb3dsYW5kIFJvYWQKKwkJCQlTdWl0ZSAyMDUKKwkJCQlNaW5uZXRvbmthIE1OIDU1MzQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1DNyAgIChoZXgpCQlNb3Zpc3RlYworMDAwOUM3ICAgICAoYmFzZSAxNikJCU1vdmlzdGVjCisJCQkJMTEwLTUgTWFyeW91bmcgLXJpIFNlb3N1LW15dW4KKwkJCQlLdW5zYW4gQ2hvbmJ1ayA1NzMtOTQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LUM4ICAgKGhleCkJCVNJTkFHQVdBIFRTVVNISU4gS0VJU09VIFNFUlZJQ0UKKzAwMDlDOCAgICAgKGJhc2UgMTYpCQlTSU5BR0FXQSBUU1VTSElOIEtFSVNPVSBTRVJWSUNFCisJCQkJMTMtNSBGdWtlICwgU3VtaXlvc2hpICwgT25haGFtYQorCQkJCUl3YWtpIENpdHkgRnVrdXNoaW1hIFByZWZlY3R1cmUgOTcxLTgxMjQKKwkJCQlKQVBBTgorCiswMC0wOS1DOSAgIChoZXgpCQlCbHVlV0lOQyBDby4sIEx0ZC4KKzAwMDlDOSAgICAgKGJhc2UgMTYpCQlCbHVlV0lOQyBDby4sIEx0ZC4KKwkJCQk0MDEgS29yZWEgRGVzaWduIENlbnRlcgorCQkJCTM0NC0xIFlhdGFwMS1kb25nLCBCdW5kYW5nLWd1CisJCQkJU2VvbmduYW0gQ2l0eSBLeW9uZ2dpYT8/ZG8gNDYzLTgyOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1DQSAgIChoZXgpCQlpTWF4TmV0d29ya3MoU2hlbnpoZW4pTGltaXRlZC4KKzAwMDlDQSAgICAgKGJhc2UgMTYpCQlpTWF4TmV0d29ya3MoU2hlbnpoZW4pTGltaXRlZC4KKwkJCQk0L0IsU291dGggQmxkZyBvZiAyOXRoLFNvdXRoIERpc3RyaWN0IG9mCisJCQkJU2hlbnpoZW4gSGktVGVjaCBJbmR1c3RyaWFsIFBhcmssIFNoZW5uYQorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0wOS1DQiAgIChoZXgpCQlIQnJhaW4KKzAwMDlDQiAgICAgKGJhc2UgMTYpCQlIQnJhaW4KKwkJCQkjNzA1IEt3YW5nbGltIEJsZGcgMTc5IEt1bWlEb25nCisJCQkJQnVuZGFuZyBHdQorCQkJCVNlb25nbmFtIEd5ZW9uZ2dpRG8gNDYzLTgxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1DQyAgIChoZXgpCQlNb29nIEdtYkgKKzAwMDlDQyAgICAgKGJhc2UgMTYpCQlNb29nIEdtYkgKKwkJCQlIYW5ucy1LbGVtbS1TdHIuIDI4CisJCQkJQm9lYmxpbmdlbiAgRC03MTAzNAorCQkJCUdFUk1BTlkKKworMDAtMDktQ0QgICAoaGV4KQkJSFVEU09OIFNPRlQgQ08uLExURC4KKzAwMDlDRCAgICAgKGJhc2UgMTYpCQlIVURTT04gU09GVCBDTy4sTFRELgorCQkJCUM2MixHZWlqdXRzdS1uby1tb3JpCisJCQkJMy1jaG9tZSxNaW5hbWkta3UKKwkJCQlTYXBwb3JvIEhva2thaWRvIDAwNS0wODY0CisJCQkJSkFQQU4KKworMDAtMDktQ0UgICAoaGV4KQkJU3BhY2VCcmlkZ2UgU2VtaWNvbmR1Y3RvciBDb3JwLgorMDAwOUNFICAgICAoYmFzZSAxNikJCVNwYWNlQnJpZGdlIFNlbWljb25kdWN0b3IgQ29ycC4KKwkJCQkxMTUgcnVlIENoYW1wbGFpbgorCQkJCUh1bGwgUXVlYmVjIEo4WDNSMQorCQkJCUNBTkFEQQorCiswMC0wOS1DRiAgIChoZXgpCQlpQWQgR21iSAorMDAwOUNGICAgICAoYmFzZSAxNikJCWlBZCBHbWJICisJCQkJVW50ZXJzY2hsYXVlcnNiYWNoZXIgSGF1cHRzdHJhc3NlIDEwCisJCQkJR3Jvc3NoYWJlcnNkb3JmIEJhdmFyaWEgOTA2MTMKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LUQwICAgKGhleCkJCVNvbGFjb20gVGVjaG5vbG9naWVzIEluYy4KKzAwMDlEMCAgICAgKGJhc2UgMTYpCQlTb2xhY29tIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJODAgSmVhbi1Qcm91bHgKKwkJCQlHYXRpbmVhdSBRdWViZWMgSjhaIDFXMQorCQkJCUNBTkFEQQorCiswMC0wOS1EMSAgIChoZXgpCQlTRVJBTk9BIE5FVFdPUktTIElOQworMDAwOUQxICAgICAoYmFzZSAxNikJCVNFUkFOT0EgTkVUV09SS1MgSU5DCisJCQkJQ09OQ09SRCBPRkZJQ0UgQ0VOVEVSCisJCQkJMjM1MiBNQUlOIFNUCisJCQkJQ09OQ09SRCBNQSAwMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRDIgICAoaGV4KQkJTWFpIExvZ2ljIEluYy4KKzAwMDlEMiAgICAgKGJhc2UgMTYpCQlNYWkgTG9naWMgSW5jLgorCQkJCTQ3Njk3IFdlc3Rpbmdob3VzZSBEci4sIFN1aXRlIDIwMAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUQzICAgKGhleCkJCVdlc3Rlcm4gRGF0YUNvbSBDby4sIEluYy4KKzAwMDlEMyAgICAgKGJhc2UgMTYpCQlXZXN0ZXJuIERhdGFDb20gQ28uLCBJbmMuCisJCQkJOTI1LUQgQmFzc2V0dCBSZC4KKwkJCQlXZXN0bGFrZSBPSCA0NDE0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRDQgICAoaGV4KQkJVHJhbnN0ZWNoIE5ldHdvcmtzCiswMDA5RDQgICAgIChiYXNlIDE2KQkJVHJhbnN0ZWNoIE5ldHdvcmtzCisJCQkJMTAwIFdvb2QgQXZlbnVlCisJCQkJU3VpdGUgMjA0CisJCQkJSXNlbGluIE5KIDA4ODMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1ENSAgIChoZXgpCQlTaWduYWwgQ29tbXVuaWNhdGlvbiwgSW5jLgorMDAwOUQ1ICAgICAoYmFzZSAxNikJCVNpZ25hbCBDb21tdW5pY2F0aW9uLCBJbmMuCisJCQkJMTAwIFdvb2QgQXZlIFNvdXRoCisJCQkJU3VpdGUgMTAzCisJCQkJSXNlbGluIE5KIDA4ODMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1ENiAgIChoZXgpCQlLTkMgT25lIEdtYkgKKzAwMDlENiAgICAgKGJhc2UgMTYpCQlLTkMgT25lIEdtYkgKKwkJCQlIb2hlIFdlbGxlIDEwIEIKKwkJCQlFdmVzc2VuIE5pZWRlcnNhY2hzZW4gMzgxNzMKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LUQ3ICAgKGhleCkJCURDIFNlY3VyaXR5IFByb2R1Y3RzCiswMDA5RDcgICAgIChiYXNlIDE2KQkJREMgU2VjdXJpdHkgUHJvZHVjdHMKKwkJCQlPbmUgTGluZHNheSBDaXJjbGUKKwkJCQlTYW4gRnJhbmNpc2NvIENhbGlmb3JuaWEgOTQxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUQ4ICAgKGhleCkJCUZhbHQgQ29tbXVuaWNhdGlvbnMgQUIKKzAwMDlEOCAgICAgKGJhc2UgMTYpCQlGYWx0IENvbW11bmljYXRpb25zIEFCCisJCQkJS3lsZ3JhbmQgNkEKKwkJCQlTRSA5MDYgMjAgVW1lYSAKKwkJCQlTV0VERU4KKworMDAtMDktRDkgICAoaGV4KQkJTmVvc2NhbGUgU3lzdGVtcywgSW5jCiswMDA5RDkgICAgIChiYXNlIDE2KQkJTmVvc2NhbGUgU3lzdGVtcywgSW5jCisJCQkJMTUwMCBNYyBDYW5kbGVzcyBEcml2ZQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1EQSAgIChoZXgpCQlDb250cm9sIE1vZHVsZSBJbmMuCiswMDA5REEgICAgIChiYXNlIDE2KQkJQ29udHJvbCBNb2R1bGUgSW5jLgorCQkJCTIyNyBCcmFpbmFyZCBSb2FkCisJCQkJRW5maWVsZCBDVCAwNjA4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktREIgICAoaGV4KQkJZVNwYWNlCiswMDA5REIgICAgIChiYXNlIDE2KQkJZVNwYWNlCisJCQkJOTYyMyBTaW1zYnVyeSBDdC4KKwkJCQlUd2luc2J1cmcgT0ggNDQwODctMzIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktREMgICAoaGV4KQkJR2FsYXhpcyBUZWNobm9sb2d5IEFHCiswMDA5REMgICAgIChiYXNlIDE2KQkJR2FsYXhpcyBUZWNobm9sb2d5IEFHCisJCQkJU3RlaW5tZXR6c3RyYXNzZSA3CisJCQkJUC5PLiBCb3ggMzM2NAorCQkJCUx1YmVjayBTY2hsZXN3aWctSG9sc3RlaW4gMjM1NTYKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LUREICAgKGhleCkJCU1hdmluIFRlY2hub2xvZ3kgSW5jLgorMDAwOUREICAgICAoYmFzZSAxNikJCU1hdmluIFRlY2hub2xvZ3kgSW5jLgorCQkJCVJvb20gMzA1LCBCbGRnLiA1MiBOby4gMTk1LTI4CisJCQkJU2VjLiA0IENodW5nLUhzaW5nIFJkLgorCQkJCUNodXR1bmcsIEhzaW5jaHUgIDMxMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktREUgICAoaGV4KQkJU2FtamluIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDA5REUgICAgIChiYXNlIDE2KQkJU2FtamluIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCisJCQkJTWFqYW5nTXl1biBEdWtQeXVuZ1JpIDIzNS0yCisJCQkJSWNob24gS3lvbmdHaSA0NjctODEyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LURGICAgKGhleCkJCVZlc3RlbCBLb211bmlrYXN5b24gU2FuYXlpIHZlIFRpY2FyZXQgQS5TLgorMDAwOURGICAgICAoYmFzZSAxNikJCVZlc3RlbCBLb211bmlrYXN5b24gU2FuYXlpIHZlIFRpY2FyZXQgQS5TLgorCQkJCUVnZSBTZXJiZXN0IEJvbGdlc2kgTm86MTQ0LzEKKwkJCQlHYXppZW1pcgorCQkJCUl6bWlyIC0gMzU0MTAKKwkJCQlUVVJLRVkKKworMDAtMDktRTAgICAoaGV4KQkJWEVNSUNTIFMuQS4KKzAwMDlFMCAgICAgKGJhc2UgMTYpCQlYRU1JQ1MgUy5BLgorCQkJCVJ1ZSBkZSBsYSBNYWxhZGllcmUgNzEKKwkJCQlDSC0yMDA3IE5ldWNoYXRlbCBOZXVjaGF0ZWwgMjAwNworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA5LUUxICAgKGhleCkJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwOUUxICAgICAoYmFzZSAxNikJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLjEgSmVuIEFpIFJvYWQKKwkJCQlIdWtvdSBIc2luY2h1IDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktRTIgICAoaGV4KQkJU2luYm9uIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwOUUyICAgICAoYmFzZSAxNikJCVNpbmJvbiBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQk0Ri0xMywgTm8uIDc5LCBTZWMgMSwgSHNpbiBUYWkgV3UgUmQuCisJCQkJSHNpLUNoaWgsIFRhaXBlaSAgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS1FMyAgIChoZXgpCQlBbmdlbCBJZ2xlc2lhcyBTLkEuCiswMDA5RTMgICAgIChiYXNlIDE2KQkJQW5nZWwgSWdsZXNpYXMgUy5BLgorCQkJCVBvbGlnb25vIDI3IE1hcnR1dGVuZQorCQkJCVNhbiBTZWJhc3RpYW4gR3VpcHV6Y29hIDIwMDE0CisJCQkJU1BBSU4KKworMDAtMDktRTQgICAoaGV4KQkJSyBUZWNoIEluZm9zeXN0ZW0gSW5jLgorMDAwOUU0ICAgICAoYmFzZSAxNikJCUsgVGVjaCBJbmZvc3lzdGVtIEluYy4KKwkJCQlCLTQwNSwgQnVuZGFuZyBUZWNobm8tUGFyayAxNDgsIFlhdGFwLWRvCisJCQkJU2VvbmduYW0gS3lvbmdnaS1EbyA0NjQtMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LUU1ICAgKGhleCkJCUhvdHRpbmdlciBCYWxkd2luIE1lc3N0ZWNobmlrIEdtYkgKKzAwMDlFNSAgICAgKGJhc2UgMTYpCQlIb3R0aW5nZXIgQmFsZHdpbiBNZXNzdGVjaG5payBHbWJICisJCQkJSW0gVGllZmVuIFNlZSA0NQorCQkJCURhcm1zdGFkdCBIZXNzZW4gNjQyOTMKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LUU2ICAgKGhleCkJCUN5YmVyIFN3aXRjaGluZyBJbmMuCiswMDA5RTYgICAgIChiYXNlIDE2KQkJQ3liZXIgU3dpdGNoaW5nIEluYy4KKwkJCQkxODAwIERlIExhIENydXogQmx2ZC4KKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRTcgICAoaGV4KQkJQURDIFRlY2hvbm9sb2d5CiswMDA5RTcgICAgIChiYXNlIDE2KQkJQURDIFRlY2hvbm9sb2d5CisJCQkJU2FrYWUgTWVtYmVycyBPZmZpY2UgQmxkLiA0LTE2LTgsIFNha2FlLAorCQkJCU5hZ295YSBBaWNoaSA0NjAwMDA4CisJCQkJSkFQQU4KKworMDAtMDktRTggICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwOUU4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRTkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwOUU5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRUEgICAoaGV4KQkJWUVNIEluYy4KKzAwMDlFQSAgICAgKGJhc2UgMTYpCQlZRU0gSW5jLgorCQkJCTEtMy0zMworCQkJCU9rYXRhCisJCQkJQXRzdWdpLXNoaSBLYW5hZ2F3YSAyNDMtMDAyMQorCQkJCUpBUEFOCisKKzAwLTA5LUVCICAgKGhleCkJCUh1TUFOREFUQSBMVEQuCiswMDA5RUIgICAgIChiYXNlIDE2KQkJSHVNQU5EQVRBIExURC4KKwkJCQkxLTItNTEKKwkJCQlOYWthaG96dW1pCisJCQkJSWJhcmFraSBPc2FrYSA1NjctMDAzNAorCQkJCUpBUEFOCisKKzAwLTA5LUVDICAgKGhleCkJCURha3Ryb25pY3MsIEluYy4KKzAwMDlFQyAgICAgKGJhc2UgMTYpCQlEYWt0cm9uaWNzLCBJbmMuCisJCQkJMzE1IDMybmQgQXZlCisJCQkJQnVpbGRpbmcgIzIKKwkJCQlCcm9va2luZ3MgU0QgNTcwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUVEICAgKGhleCkJCUNpcGhlck9wdGljcworMDAwOUVEICAgICAoYmFzZSAxNikJCUNpcGhlck9wdGljcworCQkJCTcwMSBDb3Jwb3JhdGUgQ2VudGVyIERyaXZlCisJCQkJU3VpdGUgMTUwCisJCQkJUmFsZWlnaCBOb3J0aCBDYXJvbGluYSAyNzYwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRUUgICAoaGV4KQkJTUVJS1lPIEVMRUNUUklDIENPLixMVEQKKzAwMDlFRSAgICAgKGJhc2UgMTYpCQlNRUlLWU8gRUxFQ1RSSUMgQ08uLExURAorCQkJCTQtMjctMiBIaWdhc2hpb2d1CisJCQkJQXJha2F3YS1rdSBUb2t5byAxMTYtMDAxMgorCQkJCUpBUEFOCisKKzAwLTA5LUVGICAgKGhleCkJCVZvY2VyYSBDb21tdW5pY2F0aW9ucworMDAwOUVGICAgICAoYmFzZSAxNikJCVZvY2VyYSBDb21tdW5pY2F0aW9ucworCQkJCTUyNSBSYWNlIFN0LgorCQkJCVN1aXRlIDE1MAorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUYwICAgKGhleCkJCVNoaW1penUgVGVjaG5vbG9neSBJbmMuCiswMDA5RjAgICAgIChiYXNlIDE2KQkJU2hpbWl6dSBUZWNobm9sb2d5IEluYy4KKwkJCQkxNS02LCBOby4xMDcsIENodW5nIFNoYW4gUmQuLCBTZWMuMQorCQkJCUhzaW4gQ2h1YW4sIFRhaXBlaSAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LUYxICAgKGhleCkJCVlhbWFraSBFbGVjdHJpYyBDb3Jwb3JhdGlvbgorMDAwOUYxICAgICAoYmFzZSAxNikJCVlhbWFraSBFbGVjdHJpYyBDb3Jwb3JhdGlvbgorCQkJCTMtNy0yMiBTaGltb21lZ3VybworCQkJCU1lZ3Vyby1rdSBUb2t5byAxNTMtMDA2NAorCQkJCUpBUEFOCisKKzAwLTA5LUYyICAgKGhleCkJCUNvaHUsIEluYy4sIEVsZWN0cm9uaWNzIERpdmlzaW9uCiswMDA5RjIgICAgIChiYXNlIDE2KQkJQ29odSwgSW5jLiwgRWxlY3Ryb25pY3MgRGl2aXNpb24KKwkJCQkzOTEyIENhbGxlIEZvcnR1bmFkYQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRjMgICAoaGV4KQkJV0VMTCBDb21tdW5pY2F0aW9uIENvcnAuCiswMDA5RjMgICAgIChiYXNlIDE2KQkJV0VMTCBDb21tdW5pY2F0aW9uIENvcnAuCisJCQkJMTFGLCBOby43NzgsIENodW5nIENoZW5nIFJkLiwgQ2h1bmcgSG8gQworCQkJCUNodW5nIEhvICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LUY0ICAgKGhleCkJCUFsY29uIExhYm9yYXRvcmllcywgSW5jLgorMDAwOUY0ICAgICAoYmFzZSAxNikJCUFsY29uIExhYm9yYXRvcmllcywgSW5jLgorCQkJCTYyMDEgU291dGggRnJlZXdheQorCQkJCUZvcnQgV29ydGggVHggNzYxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUY1ICAgKGhleCkJCUVtZXJzb24gTmV0d29yayBQb3dlciBDby4sTHRkCiswMDA5RjUgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyIENvLixMdGQKKwkJCQkxL0YsMy9GIEVsZWN0cmljIEJ1aWxkaW5nIEh1YXdlaSBCYXNlLEJhCisJCQkJTG9uZ2dhbmcsU2hlbnpoZW4gTXVuaWNpcGFsaXR5LFBlb3BsZT8/cworCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwMjkKKwkJCQlDSElOQQorCiswMC0wOS1GNiAgIChoZXgpCQlTaGVuemhlbiBFYXN0ZXJuIERpZ2l0YWwgVGVjaCBMdGQuCiswMDA5RjYgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gRWFzdGVybiBEaWdpdGFsIFRlY2ggTHRkLgorCQkJCVNoZW56aGVuIEZ1dGlhbiBDaGVnb25nbWlhbyBUYWlyYW4KKwkJCQlUZWNobm9sb2d5IFBhcmsgMjEwIC0gM0MKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQ4CisJCQkJQ0hJTkEKKworMDAtMDktRjcgICAoaGV4KQkJU0VELCBhIGRpdmlzaW9uIG9mIENhbGlhbgorMDAwOUY3ICAgICAoYmFzZSAxNikJCVNFRCwgYSBkaXZpc2lvbiBvZiBDYWxpYW4KKwkJCQkxOCBJbm5ub3ZhdGlvbiBCb3VsZXZhcmQKKwkJCQlQLk8uIEJveCAxNDY0CisJCQkJU2Fza2F0b29uIFNhc2thdGNoZXdhbiAoU0spIFM3SyAzUDcKKwkJCQlDQU5BREEKKworMDAtMDktRjggICAoaGV4KQkJVU5JTU8gVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwMDlGOCAgICAgKGJhc2UgMTYpCQlVTklNTyBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCUJBTkdCQUUgRE9ORyA0NzktMTIKKwkJCQlTRU9DSE8tR1UsCisJCQkJU0VPVUwgIDEzNy04MjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktRjkgICAoaGV4KQkJQVJUIEpBUEFOIENPLiwgTFRELgorMDAwOUY5ICAgICAoYmFzZSAxNikJCUFSVCBKQVBBTiBDTy4sIExURC4KKwkJCQkzMjItNywgSWNoaW5vdHN1Ym8sCisJCQkJTmFrYWhhcmEta3UKKwkJCQlLYXdhc2FraSBLYW5hZ2F3YSAyMTEtMDAxNgorCQkJCUpBUEFOCisKKzAwLTA5LUZCICAgKGhleCkJCVBoaWxpcHMgUGF0aWVudCBNb25pdG9yaW5nCiswMDA5RkIgICAgIChiYXNlIDE2KQkJUGhpbGlwcyBQYXRpZW50IE1vbml0b3JpbmcKKwkJCQlIZXdsZXR0LVBhY2thcmQtU3RyLjIKKwkJCQlCb2VibGluZ2VuICA3MTAzNAorCQkJCUdFUk1BTlkKKworMDAtMDktRkMgICAoaGV4KQkJSVBGTEVYIEluYy4KKzAwMDlGQyAgICAgKGJhc2UgMTYpCQlJUEZMRVggSW5jLgorCQkJCU1vd2EtQmxkZyAzRiwgMS0xNi02CisJCQkJRWJpc3UtbmlzaGkKKwkJCQlTaGlidXlhLWt1IFRva3lvIDE1MC0wMDIxCisJCQkJSkFQQU4KKworMDAtMDktRkQgICAoaGV4KQkJVWJpbmV0aWNzIExpbWl0ZWQKKzAwMDlGRCAgICAgKGJhc2UgMTYpCQlVYmluZXRpY3MgTGltaXRlZAorCQkJCUNhbWJyaWRnZSBUZWNobm9sb2d5IENlbnRyZQorCQkJCU1lbGJvdXJuIEhlcnRmb3Jkc2hpcmUgU0c4IDZEUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA5LUZFICAgKGhleCkJCURhaXN5IFRlY2hub2xvZ2llcywgSW5jLgorMDAwOUZFICAgICAoYmFzZSAxNikJCURhaXN5IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEyMDkgT3JhbmdlIFN0cmVldAorCQkJCUNvdW50eSBvZiBOZXcgQ2FzdGxlCisJCQkJQ2l0eSBvZiBXaWxtaW5ndG9uIERFIDE5ODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1GRiAgIChoZXgpCQlYLm5ldCAyMDAwIEdtYkgKKzAwMDlGRiAgICAgKGJhc2UgMTYpCQlYLm5ldCAyMDAwIEdtYkgKKwkJCQlLb2VuaWdzYmVyZ2VyIFN0ci4gMmMKKwkJCQlSZWluaGVpbSAgNjQzNTQKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTAwICAgKGhleCkJCU1lZGlhdGVrIENvcnAuCiswMDBBMDAgICAgIChiYXNlIDE2KQkJTWVkaWF0ZWsgQ29ycC4KKwkJCQk4RiwgTm8gNjktNSwgU2VjLjIsIENodW5nIENoZW5nIEVhc3QgUmQuCisJCQkJVGFpcGVpICAyNTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTAxICAgKGhleCkJCVNPSE93YXJlLCBJbmMuCiswMDBBMDEgICAgIChiYXNlIDE2KQkJU09IT3dhcmUsIEluYy4KKwkJCQkzMDUwIENvcm9uYWRvIERyaXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTAyICAgKGhleCkJCUFOTlNPIENPLiwgTFRELgorMDAwQTAyICAgICAoYmFzZSAxNikJCUFOTlNPIENPLiwgTFRELgorCQkJCTVGLCBOby4gMTAwLCBNaW4tQ2h1YW4gUm9hZCwgU2hpbmctVGllbgorCQkJCVNoaW5nLVRpZW4gQ2l0eSBUYWlwZWkgSHNpZW4gVGFpd2FuIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtMDMgICAoaGV4KQkJRU5ERVNBIFNFUlZJQ0lPUywgUy5MLgorMDAwQTAzICAgICAoYmFzZSAxNikJCUVOREVTQSBTRVJWSUNJT1MsIFMuTC4KKwkJCQlBVkdEQSBQQVJBTC5MRUwsIDUxCisJCQkJQkFSQ0VMT05BICAwODAwNAorCQkJCVNQQUlOCisKKzAwLTBBLTA0ICAgKGhleCkJCTNDb20gTHRkCiswMDBBMDQgICAgIChiYXNlIDE2KQkJM0NvbSBMdGQKKwkJCQlQZW9wbGVidWlsZGluZyAyCisJCQkJUGVvcGxlYnVpbGRpbmcgRXN0YXRlLCBNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSGVydHMgSFAyIDROVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBBLTA1ICAgKGhleCkJCVdpZGF4IENvcnAuCiswMDBBMDUgICAgIChiYXNlIDE2KQkJV2lkYXggQ29ycC4KKwkJCQkyNjkgU3RldmVucyBTdHJlZXQKKwkJCQlIeWFubmlzIE1BIDAyNjY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0wNiAgIChoZXgpCQlUZWxlZGV4IExMQworMDAwQTA2ICAgICAoYmFzZSAxNikJCVRlbGVkZXggTExDCisJCQkJNjMxMSBTYW4gSWduYWNpbyBBdmVudWUKKwkJCQlTYW4gSm9zZSBDQSA5NTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMDcgICAoaGV4KQkJV2ViV2F5T25lIEx0ZAorMDAwQTA3ICAgICAoYmFzZSAxNikJCVdlYldheU9uZSBMdGQKKwkJCQkxMSBLaW5nZmlzaGVyIENvdXJ0LAorCQkJCUhhbWJyaWRnZSBSb2FkCisJCQkJTmV3YnVyeSBCZXJrc2hpcmUgUkcxNCA1U0oKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQS0wOCAgIChoZXgpCQlBTFBJTkUgRUxFQ1RST05JQ1MsIElOQy4KKzAwMEEwOCAgICAgKGJhc2UgMTYpCQlBTFBJTkUgRUxFQ1RST05JQ1MsIElOQy4KKwkJCQkyMC0xIFlvc2hpbWEtS29neW9kYW5jaGkKKwkJCQlpd2FraS1jaXR5IEZ1a3VzaGltYSA5NzAtMTE5MgorCQkJCUpBUEFOCisKKzAwLTBBLTA5ICAgKGhleCkJCVRhcmFDb20gSW50ZWdyYXRlZCBQcm9kdWN0cywgSW5jLgorMDAwQTA5ICAgICAoYmFzZSAxNikJCVRhcmFDb20gSW50ZWdyYXRlZCBQcm9kdWN0cywgSW5jLgorCQkJCTgzMCBTdGV3YXJ0IERyLgorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMEEgICAoaGV4KQkJU1VOSVggQ28uLCBMdGQuCiswMDBBMEEgICAgIChiYXNlIDE2KQkJU1VOSVggQ28uLCBMdGQuCisJCQkJM0ZsLiwgTm8uIDc2LCBCYXVnYXUgUmQuLAorCQkJCVNoaW5kaWFuIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTBCICAgKGhleCkJCVNlYWxldmVsIFN5c3RlbXMsIEluYy4KKzAwMEEwQiAgICAgKGJhc2UgMTYpCQlTZWFsZXZlbCBTeXN0ZW1zLCBJbmMuCisJCQkJMTU1IFRlY2hub2xvZ3kgUGxhY2UKKwkJCQlMaWJlcnR5IFNDIDI5NjU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0wQyAgIChoZXgpCQlTY2llbnRpZmljIFJlc2VhcmNoIENvcnBvcmF0aW9uCiswMDBBMEMgICAgIChiYXNlIDE2KQkJU2NpZW50aWZpYyBSZXNlYXJjaCBDb3Jwb3JhdGlvbgorCQkJCTIzMDAgV2luZHkgUmlkZ2UgUGFya3dheQorCQkJCVN1aXRlIDQwMCBTb3V0aAorCQkJCUF0bGFudGEgR0EgMzAzMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTBEICAgKGhleCkJCUZDSSBEZXV0c2NobGFuZCBHbWJICiswMDBBMEQgICAgIChiYXNlIDE2KQkJRkNJIERldXRzY2hsYW5kIEdtYkgKKwkJCQlXZXJuZXJ3ZXJrZGFtbSAxNiwKKwkJCQlCZXJsaW4gIDEzNjI5IAorCQkJCUdFUk1BTlkKKworMDAtMEEtMEUgICAoaGV4KQkJSW52aXZvIFJlc2VhcmNoIEluYy4KKzAwMEEwRSAgICAgKGJhc2UgMTYpCQlJbnZpdm8gUmVzZWFyY2ggSW5jLgorCQkJCTEyNjAxIFJlc2VhcmNoIFBhcmt3YXkKKwkJCQlPcmxhbmRvIEZsb3JpZGEgMzI4MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTBGICAgKGhleCkJCUlscnl1bmcgVGVsZXN5cywgSW5jCiswMDBBMEYgICAgIChiYXNlIDE2KQkJSWxyeXVuZyBUZWxlc3lzLCBJbmMKKwkJCQlJbHJ5dW5nIGJsZGcsIDM0LTIsIENoZW9uaG8tZG9uZworCQkJCUdhbmdkb25nLWd1CisJCQkJU0VPVUwgIDEzNC04NjEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtMTAgICAoaGV4KQkJRkFTVCBtZWRpYSBpbnRlZ3JhdGlvbnMgQUcKKzAwMEExMCAgICAgKGJhc2UgMTYpCQlGQVNUIG1lZGlhIGludGVncmF0aW9ucyBBRworCQkJCVNjaG9uZ3J1bmQgMjYKKwkJCQlSb3RrcmV1eiBDYW50b24gb2YgWnVnIDYzNDMKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wQS0xMSAgIChoZXgpCQlFeFBldCBUZWNobm9sb2dpZXMsIEluYworMDAwQTExICAgICAoYmFzZSAxNikJCUV4UGV0IFRlY2hub2xvZ2llcywgSW5jCisJCQkJNkYsIEt5b25nZ2kgU21hbGwgQnVzaW5lc3MgQ2VudGVyCisJCQkJIzExMS04LCBJdWktZG9uZywgUGFsZGFsLWd1LAorCQkJCVN1d29uLCBLeW9uZ2dpLWRvLCA0NDItMjcwICA0NDItNzcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLTEyICAgKGhleCkJCUF6eWxleCBUZWNobm9sb2d5LCBJbmMKKzAwMEExMiAgICAgKGJhc2UgMTYpCQlBenlsZXggVGVjaG5vbG9neSwgSW5jCisJCQkJNy0yRmwuLCBOby4gNzM4IENodW5nIENoZW5nIFJvYWQsCisJCQkJQ2h1bmcgSG8gQ2l0eSBUYWlwZWkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS0xMyAgIChoZXgpCQlIb25leXdlbGwgVmlkZW8gU3lzdGVtcworMDAwQTEzICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbCBWaWRlbyBTeXN0ZW1zCisJCQkJNjU1NCAxNzYgU3RyZWV0CisJCQkJU3VycmV5IEJDIFYzUyA0RzUKKwkJCQlDQU5BREEKKworMDAtMEEtMTQgICAoaGV4KQkJVEVDTyBhLnMuCiswMDBBMTQgICAgIChiYXNlIDE2KQkJVEVDTyBhLnMuCisJCQkJSGF2bGlja292YSAyNjAKKwkJCQlLT0xJTiBDWiAyODAgNTgKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0wQS0xNSAgIChoZXgpCQlTaWxpY29uIERhdGEsIEluYworMDAwQTE1ICAgICAoYmFzZSAxNikJCVNpbGljb24gRGF0YSwgSW5jCisJCQkJNDY5OSBPbGQgSXJvbnNpZGVzIERyLiwgIzE1MAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0xNiAgIChoZXgpCQlMYXNzZW4gUmVzZWFyY2gKKzAwMEExNiAgICAgKGJhc2UgMTYpCQlMYXNzZW4gUmVzZWFyY2gKKwkJCQkzMTY5NSBGb3J3YXJkIFJvYWQKKwkJCQlNYW50b24gQ0EgOTYwNTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTE3ICAgKGhleCkJCU5FU1RBUiBDT01NVU5JQ0FUSU9OUywgSU5DCiswMDBBMTcgICAgIChiYXNlIDE2KQkJTkVTVEFSIENPTU1VTklDQVRJT05TLCBJTkMKKwkJCQlOby42LDE5IExhbmUgQmFkZSBSb2FkCisJCQkJSFNJTkNIVSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS0xOCAgIChoZXgpCQlWaWNoZWwgSW5jLgorMDAwQTE4ICAgICAoYmFzZSAxNikJCVZpY2hlbCBJbmMuCisJCQkJM0YgSmFuZyBCbGRnLiA5Mi02IFlhbmdqYWUtZG9uZywgU2VjaG8tZworCQkJCVNlb3VsICAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLTE5ICAgKGhleCkJCVZhbGVyZSBQb3dlciwgSW5jLgorMDAwQTE5ICAgICAoYmFzZSAxNikJCVZhbGVyZSBQb3dlciwgSW5jLgorCQkJCTY2MSBOLiBQbGFubyBSZC4KKwkJCQlSaWNoYXJkc29uIFRleGFzIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0xQSAgIChoZXgpCQlJbWVyZ2UgTHRkCiswMDBBMUEgICAgIChiYXNlIDE2KQkJSW1lcmdlIEx0ZAorCQkJCVVuaXQgNiwgQmFyIEhpbGwgQnVzaW5lc3MgUGFyaworCQkJCVNheG9uIFdheQorCQkJCUJhciBIaWxsIENhbWJyaWRnZSBDQjMgOFNMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEEtMUIgICAoaGV4KQkJU3RyZWFtIExhYnMKKzAwMEExQiAgICAgKGJhc2UgMTYpCQlTdHJlYW0gTGFicworCQkJCUxlbmluc2tpZSBnb3JpIDEsIGJpbGQgNzcKKwkJCQlNb3Nrb3cgIDExOTk5MgorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0wQS0xQyAgIChoZXgpCQlCcmlkZ2UgSW5mb3JtYXRpb24gQ28uLCBMdGQuCiswMDBBMUMgICAgIChiYXNlIDE2KQkJQnJpZGdlIEluZm9ybWF0aW9uIENvLiwgTHRkLgorCQkJCU5vLjMsIExhbmUgMTA2LCBXdS1LdW5nIDIgUmQuLAorCQkJCVd1LUt1IEluZC4gUGFyaywKKwkJCQlUYWlwZWkgIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtMUQgICAoaGV4KQkJT3B0aWNhbCBDb21tdW5pY2F0aW9ucyBQcm9kdWN0cyBJbmMuCiswMDBBMUQgICAgIChiYXNlIDE2KQkJT3B0aWNhbCBDb21tdW5pY2F0aW9ucyBQcm9kdWN0cyBJbmMuCisJCQkJMjA5NjEgS25hcHAgU3QuCisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMUUgICAoaGV4KQkJUmVkLU0gUHJvZHVjdHMgTGltaXRlZAorMDAwQTFFICAgICAoYmFzZSAxNikJCVJlZC1NIFByb2R1Y3RzIExpbWl0ZWQKKwkJCQlOZXB0dW5lIEhvdXNlCisJCQkJTWVyY3VyeSBQYXJrLCBXeWNvbWJlIExhbmUKKwkJCQlXb29idXJuIEdyZWVuIEJ1Y2tpbmdoYW1zaGlyZSBIUDEwIDBISAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBBLTFGICAgKGhleCkJCUFSVCBXQVJFIFRlbGVjb21tdW5pY2F0aW9uIENvLiwgTHRkLgorMDAwQTFGICAgICAoYmFzZSAxNikJCUFSVCBXQVJFIFRlbGVjb21tdW5pY2F0aW9uIENvLiwgTHRkLgorCQkJCTgwNiBBY2UgVGVjaG5vIFRvd2VyICMxLCAxOTctMTcKKwkJCQlHdXJvLWRvbmcsIEd1cm8tR3UKKwkJCQlTZW91bCAgMTUyLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS0yMCAgIChoZXgpCQlTVkEgTmV0d29ya3MsIEluYy4KKzAwMEEyMCAgICAgKGJhc2UgMTYpCQlTVkEgTmV0d29ya3MsIEluYy4KKwkJCQk4NDAgRiBBdmUuLCBTdWl0ZSAxMDQKKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMjEgICAoaGV4KQkJSW50ZWdyYSBUZWxlY29tIENvLiBMdGQKKzAwMEEyMSAgICAgKGJhc2UgMTYpCQlJbnRlZ3JhIFRlbGVjb20gQ28uIEx0ZAorCQkJCTd0aCBmbG9vciBId2F5b3VuZyBCbGQuIDExMi0yCisJCQkJS2FyYWstZG9uZyBTb25wYS1ndQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtMjIgICAoaGV4KQkJQW1wZXJpb24gSW5jCiswMDBBMjIgICAgIChiYXNlIDE2KQkJQW1wZXJpb24gSW5jCisJCQkJMjUwIEFwb2xsbyBEcml2ZQorCQkJCUNoZWxtc2ZvcmQgTUEgMDE4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTIzICAgKGhleCkJCVBhcmFtYSBOZXR3b3JrcyBJbmMKKzAwMEEyMyAgICAgKGJhc2UgMTYpCQlQYXJhbWEgTmV0d29ya3MgSW5jCisJCQkJMTk1NSBUaGUgQWxhbWVkYQorCQkJCVNhbiBKb3NlIENBIDk1MTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0yNCAgIChoZXgpCQlPY3RhdmUgQ29tbXVuaWNhdGlvbnMKKzAwMEEyNCAgICAgKGJhc2UgMTYpCQlPY3RhdmUgQ29tbXVuaWNhdGlvbnMKKwkJCQk4NSBOb3J0aHdlc3QgQm91bGV2YXJkCisJCQkJTmFzaHVhIE5IIDAzMDYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0yNSAgIChoZXgpCQlDRVJBR09OIE5FVFdPUktTCiswMDBBMjUgICAgIChiYXNlIDE2KQkJQ0VSQUdPTiBORVRXT1JLUworCQkJCTI0IFJBVUVMIFdBTExFTkJFUkcgU1RSRUVUCisJCQkJVEVMLUFWSVYgIDk2NzE5CisJCQkJSVNSQUVMCisKKzAwLTBBLTI2ICAgKGhleCkJCUNFSUEgUy5wLkEuCiswMDBBMjYgICAgIChiYXNlIDE2KQkJQ0VJQSBTLnAuQS4KKwkJCQlab25hIEluZHVzdHJpYWxlIGRpIFZpY2lvbWFnZ2lvIDU0CisJCQkJQXJlenpvIEFSIDUyMDQwCisJCQkJSVRBTFkKKworMDAtMEEtMjcgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIsIEluYy4KKzAwMEEyNyAgICAgKGJhc2UgMTYpCQlBcHBsZSBDb21wdXRlciwgSW5jLgorCQkJCTIwNjUwIFZhbGxleSBHcmVlbiBEcml2ZQorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMjggICAoaGV4KQkJTW90b3JvbGEKKzAwMEEyOCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYQorCQkJCTYwMCBOLiBVUyBId3kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTI5ICAgKGhleCkJCVBhbiBEYWNvbSBOZXR3b3JraW5nIEFHCiswMDBBMjkgICAgIChiYXNlIDE2KQkJUGFuIERhY29tIE5ldHdvcmtpbmcgQUcKKwkJCQlEcmVpZWljaCBQbGF6YSAxQgorCQkJCURyZWllaWNoIEhlc3NlbiBELTYzMzAzCisJCQkJR0VSTUFOWQorCiswMC0wQS0yQSAgIChoZXgpCQlRU0kgU3lzdGVtcyBJbmMuCiswMDBBMkEgICAgIChiYXNlIDE2KQkJUVNJIFN5c3RlbXMgSW5jLgorCQkJCTcgUmF5bW9uZCBBdmVudWUKKwkJCQlCdWlsZGluZyBCLCBVbml0IDExCisJCQkJU2FsZW0gTkggMDMwNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTJCICAgKGhleCkJCUV0aGVyc3R1ZmYKKzAwMEEyQiAgICAgKGJhc2UgMTYpCQlFdGhlcnN0dWZmCisJCQkJMjA4IFcuIE1pbW9zYSBDaXJjbGUKKwkJCQlTYW4gTWFyY29zIFRYIDc4NjY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0yQyAgIChoZXgpCQlBY3RpdmUgVGNobm9sb2d5IENvcnBvcmF0aW9uCiswMDBBMkMgICAgIChiYXNlIDE2KQkJQWN0aXZlIFRjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTE2LTIzLCBTaGliYXVyYSAyLUNob21lLAorCQkJCU1pbmF0by1rdSwKKwkJCQlUb2t5byBUb2t5byAxMDgtMDAyMworCQkJCUpBUEFOCisKKzAwLTBBLTJEICAgKGhleCkJCUNhYm90IENvbW11bmljYXRpb25zIExpbWl0ZWQKKzAwMEEyRCAgICAgKGJhc2UgMTYpCQlDYWJvdCBDb21tdW5pY2F0aW9ucyBMaW1pdGVkCisJCQkJVmVyb25hIEhvdXNlCisJCQkJRmlsd29vZCBSb2FkCisJCQkJQnJpc3RvbCBHbG91Y2VzdGVyc2hpcmUgQlMxNiAzUlkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQS0yRSAgIChoZXgpCQlNQVBMRSBORVRXT1JLUyBDTy4sIExURAorMDAwQTJFICAgICAoYmFzZSAxNikJCU1BUExFIE5FVFdPUktTIENPLiwgTFRECisJCQkJNjAyLCBEb25nd2hhCisJCQkJMzQ5LTI0LCBTaGluZGFlYmFuZy1Eb25nLCBEb25namFrLUd1CisJCQkJU0VPVUwgIDE1Ni0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtMkYgICAoaGV4KQkJQXJ0bml4IEluYy4KKzAwMEEyRiAgICAgKGJhc2UgMTYpCQlBcnRuaXggSW5jLgorCQkJCUNodW5namluIEIvRCwgNDc1LTIyIEJhbmdiYWUsIFNlb2NobworCQkJCVNlb3VsICAxMzctODE5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLTMwICAgKGhleCkJCUpvaG5zb24gQ29udHJvbHMtQVNHCiswMDBBMzAgICAgIChiYXNlIDE2KQkJSm9obnNvbiBDb250cm9scy1BU0cKKwkJCQk5MTUgRWFzdCAzMm5kIFN0cmVldAorCQkJCUhvbGxhbmQgTUkgNDk0MjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTMxICAgKGhleCkJCUhDViBDb25zdWx0aW5nCiswMDBBMzEgICAgIChiYXNlIDE2KQkJSENWIENvbnN1bHRpbmcKKwkJCQlQIE8gQm94IDM2OTIKKwkJCQlIZWxlbnN2YWxlIFRvd24gQ2VudHJlIDQyMTIKKwkJCQlRdWVlbnNsYW5kICAgNDIxMgorCQkJCUFVU1RSQUxJQQorCiswMC0wQS0zMiAgIChoZXgpCQlYc2lkbyBDb3Jwb3JhdGlvbgorMDAwQTMyICAgICAoYmFzZSAxNikJCVhzaWRvIENvcnBvcmF0aW9uCisJCQkJM0YsMi04LTEzLFNoaWJhLURhaW1vbiwKKwkJCQlNaW5hdG8ta3UKKwkJCQlUb2t5byAgMTA1LTAwMTIKKwkJCQlKQVBBTgorCiswMC0wQS0zMyAgIChoZXgpCQlFbXVsZXggQ29ycG9yYXRpb24KKzAwMEEzMyAgICAgKGJhc2UgMTYpCQlFbXVsZXggQ29ycG9yYXRpb24KKwkJCQkyMDIxIE9wcG9ydHVuaXR5IERyaXZlCisJCQkJU3VpdGUgMQorCQkJCVJvc2V2aWxsZSBDQSA5NTY3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMzQgICAoaGV4KQkJSWRlbnRpY2FyZCBTeXN0ZW1zIEluY29ycG9yYXRlZAorMDAwQTM0ICAgICAoYmFzZSAxNikJCUlkZW50aWNhcmQgU3lzdGVtcyBJbmNvcnBvcmF0ZWQKKwkJCQk0MCBDaXRhdGlvbiBMYW5lCisJCQkJTGFuY2FzdGVyIFBlbm5zeWx2YW5pYSAxNzYwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMzUgICAoaGV4KQkJWGlsaW54CiswMDBBMzUgICAgIChiYXNlIDE2KQkJWGlsaW54CisJCQkJMjEwMCBMb2dpYyBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk0MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0zNiAgIChoZXgpCQlTeW5lbGVjIFRlbGVjb20gTXVsdGltZWRpYQorMDAwQTM2ICAgICAoYmFzZSAxNikJCVN5bmVsZWMgVGVsZWNvbSBNdWx0aW1lZGlhCisJCQkJWm9uZSBJbmR1c3RyaWVsbGUKKwkJCQlTYWludCBTZXJuaW4gc3VyIFJhbmNlIEF2ZXlyb24gRi0xMjM4MAorCQkJCUZSQU5DRQorCiswMC0wQS0zNyAgIChoZXgpCQlQcm9jZXJhIE5ldHdvcmtzLCBJbmMuCiswMDBBMzcgICAgIChiYXNlIDE2KQkJUHJvY2VyYSBOZXR3b3JrcywgSW5jLgorCQkJCTEyOTkgT3JsZWFucyBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMzggICAoaGV4KQkJQXBhbmkgTmV0d29ya3MKKzAwMEEzOCAgICAgKGJhc2UgMTYpCQlBcGFuaSBOZXR3b3JrcworCQkJCTE4MDAgRS4gSW1wZXJpYWwgSHd5CisJCQkJU3VpdGUgMjEwCisJCQkJQnJlYSBDQSA5MjgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMzkgICAoaGV4KQkJTG9QQSBJbmZvcm1hdGlvbiBUZWNobm9sb2d5CiswMDBBMzkgICAgIChiYXNlIDE2KQkJTG9QQSBJbmZvcm1hdGlvbiBUZWNobm9sb2d5CisJCQkJNzEwLTksIERhZSBMaW0gMy1Eb25nCisJCQkJWW91bmcgRGV1bmcgcG8tZ3UgU2VvdWwsIEtvcmVhIDE1MC04MTQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtM0EgICAoaGV4KQkJSi1USFJFRSBJTlRFUk5BVElPTkFMIEhvbGRpbmcgQ28uLCBMdGQuCiswMDBBM0EgICAgIChiYXNlIDE2KQkJSi1USFJFRSBJTlRFUk5BVElPTkFMIEhvbGRpbmcgQ28uLCBMdGQuCisJCQkJTm8uIDEsIFl1LTMgUmQuLCBZb3V0aCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlZYW5nLW1laSwgVGFveXVhbiBIc2llbiAgMzI2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS0zQiAgIChoZXgpCQlHQ1QgU2VtaWNvbmR1Y3RvciwgSW5jCiswMDBBM0IgICAgIChiYXNlIDE2KQkJR0NUIFNlbWljb25kdWN0b3IsIEluYworCQkJCTIxMjEgUmluZ3dvb2QgQXZlbnVlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTNDICAgKGhleCkJCUVuZXJwb2ludCBMdGQuCiswMDBBM0MgICAgIChiYXNlIDE2KQkJRW5lcnBvaW50IEx0ZC4KKwkJCQlLYWl2b3B1aXN0b250aWUgMzMKKwkJCQlSYXVtYSAgMjYxMDAKKwkJCQlGSU5MQU5ECisKKzAwLTBBLTNEICAgKGhleCkJCUVsbyBTaXN0ZW1hcyBFbGV0cm9uaWNvcyBTLkEuCiswMDBBM0QgICAgIChiYXNlIDE2KQkJRWxvIFNpc3RlbWFzIEVsZXRyb25pY29zIFMuQS4KKwkJCQlSdWEgRWR1IENoYXZlcywgNTQ3CisJCQkJUG9ydG8gQWxlZ3JlIFJTIDkwLjI0MC02MjAKKwkJCQlCUkFaSUwKKworMDAtMEEtM0UgICAoaGV4KQkJRUFEUyBUZWxlY29tCiswMDBBM0UgICAgIChiYXNlIDE2KQkJRUFEUyBUZWxlY29tCisJCQkJTGFuZHNodXRlciBTdHJhc3NlIDI2CisJCQkJTXVuaWNoIEJhdmFyaWEgODU3MTYKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTNGICAgKGhleCkJCURhdGEgRWFzdCBDb3Jwb3JhdGlvbgorMDAwQTNGICAgICAoYmFzZSAxNikJCURhdGEgRWFzdCBDb3Jwb3JhdGlvbgorCQkJCTQtNDEtMTAgTWluYW1pLU9naWt1Ym8KKwkJCQlTdWdpbmFtaS1rdSBUT0tZTyAxNjctMDA1MgorCQkJCUpBUEFOCisKKzAwLTBBLTQwICAgKGhleCkJCUNyb3duIEF1ZGlvIC0tIEhhcm1hbm0gSW50ZXJuYXRpb25hbAorMDAwQTQwICAgICAoYmFzZSAxNikJCUNyb3duIEF1ZGlvIC0tIEhhcm1hbm0gSW50ZXJuYXRpb25hbAorCQkJCTE3MTggVy4gTWlzaGF3YWthIFJkCisJCQkJRWxraGFydCBJTiA0NjUxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNDEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQTQxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNDIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQTQyICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNDMgICAoaGV4KQkJQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4KKzAwMEE0MyAgICAgKGJhc2UgMTYpCQlDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLgorCQkJCTEyLCBMYW5lIDU1MSwgTWluLVRzdSBSb2FkCisJCQkJU2VjLiA1IFlhbmctTWVpLAorCQkJCVRhb3l1YW4gIDMyNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtNDQgICAoaGV4KQkJQXZlcnkgRGVubmlzb24gRGV1dHNjaGxhbmQgR21iSAorMDAwQTQ0ICAgICAoYmFzZSAxNikJCUF2ZXJ5IERlbm5pc29uIERldXRzY2hsYW5kIEdtYkgKKwkJCQlPaG1zdHIuIDMKKwkJCQlFY2hpbmcgIDg1Mzg2CisJCQkJR0VSTUFOWQorCiswMC0wQS00NSAgIChoZXgpCQlBdWRpby1UZWNobmljYSBDb3JwLgorMDAwQTQ1ICAgICAoYmFzZSAxNikJCUF1ZGlvLVRlY2huaWNhIENvcnAuCisJCQkJTmFydXNlIDEsMzQ4CisJCQkJTWFjaGlkYSBUb2t5byAxOTQtODU2NgorCQkJCUpBUEFOCisKKzAwLTBBLTQ2ICAgKGhleCkJCUFSTyBXRUxESU5HIFRFQ0hOT0xPR0lFUyBTQVMKKzAwMEE0NiAgICAgKGJhc2UgMTYpCQlBUk8gV0VMRElORyBURUNITk9MT0dJRVMgU0FTCisJCQkJWkkgZGUgTW9udCBzdXIgTG9pcgorCQkJCUNoYXRlYXUgZHUgTG9pciBzYXJ0aGUgNzI1MDAKKwkJCQlGUkFOQ0UKKworMDAtMEEtNDcgICAoaGV4KQkJQWxsaWVkIFZpc2lvbiBUZWNobm9sb2dpZXMKKzAwMEE0NyAgICAgKGJhc2UgMTYpCQlBbGxpZWQgVmlzaW9uIFRlY2hub2xvZ2llcworCQkJCVRhc2NoZW53ZWcgMmEKKwkJCQlTdGFkdHJvZGEgVGh1cmluZ2VuIDA3NjQ2CisJCQkJR0VSTUFOWQorCiswMC0wQS00OCAgIChoZXgpCQlBbGJhdHJvbiBUZWNobm9sb2d5CiswMDBBNDggICAgIChiYXNlIDE2KQkJQWxiYXRyb24gVGVjaG5vbG9neQorCQkJCTZGLCBObyA3MTYsIENodW5nIENoZW5nLAorCQkJCUNodW5nLUhvIENpdHkgVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtNDkgICAoaGV4KQkJRjUgTmV0d29ya3MsIEluYy4KKzAwMEE0OSAgICAgKGJhc2UgMTYpCQlGNSBOZXR3b3JrcywgSW5jLgorCQkJCTQwMSBFbGxpb3R0IEF2ZS4gVy4KKwkJCQlTZWF0dGxlIFdBIDk4MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS00QSAgIChoZXgpCQlUYXJnYSBTeXN0ZW1zIEx0ZC4KKzAwMEE0QSAgICAgKGJhc2UgMTYpCQlUYXJnYSBTeXN0ZW1zIEx0ZC4KKwkJCQkxOTA1IEdyYW5kdGVjaCBDZW50cmUsCisJCQkJOCBPbiBQaW5nIFN0LiAgU2l1IExlayBZdWVuCisJCQkJU2hhdGluIE4uVC4gCisJCQkJSE9ORyBLT05HCisKKzAwLTBBLTRCICAgKGhleCkJCURhdGFQb3dlciBUZWNobm9sb2d5LCBJbmMuCiswMDBBNEIgICAgIChiYXNlIDE2KQkJRGF0YVBvd2VyIFRlY2hub2xvZ3ksIEluYy4KKwkJCQlPbmUgQWxld2lmZSBDZW50ZXIKKwkJCQlDYW1icmlkZ2UgTUEgMDIxNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTRDICAgKGhleCkJCU1vbGVjdWxhciBEZXZpY2VzIENvcnBvcmF0aW9uCiswMDBBNEMgICAgIChiYXNlIDE2KQkJTW9sZWN1bGFyIERldmljZXMgQ29ycG9yYXRpb24KKwkJCQkxMzExIE9ybGVhbnMgRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTREICAgKGhleCkJCU5vcml0eiBDb3Jwb3JhdGlvbgorMDAwQTREICAgICAoYmFzZSAxNikJCU5vcml0eiBDb3Jwb3JhdGlvbgorCQkJCTUgTWluYW1pLUZ1dGFtaSwKKwkJCQlGdXRhbWktY2hvLAorCQkJCUFrYXNoaS1zaGkgSHlvZ28gNjc0LTAwOTMKKwkJCQlKQVBBTgorCiswMC0wQS00RSAgIChoZXgpCQlVTklURUsgRWxlY3Ryb25pY3MgSU5DLgorMDAwQTRFICAgICAoYmFzZSAxNikJCVVOSVRFSyBFbGVjdHJvbmljcyBJTkMuCisJCQkJMS0xOC00CisJCQkJT2htb3JpLWtpdGEKKwkJCQlPaHRhLWt1IFRva3lvIDE0My0wMDE2CisJCQkJSkFQQU4KKworMDAtMEEtNEYgICAoaGV4KQkJQnJhaW4gQm94ZXMgTGltaXRlZAorMDAwQTRGICAgICAoYmFzZSAxNikJCUJyYWluIEJveGVzIExpbWl0ZWQKKwkJCQlVbml0IDNjLCBXYXZlcnRyZWUgQm91bGV2YXJkIFNvdXRoCisJCQkJV2F2ZXJ0cmVlIFRlY2hub2xvZ3kgUGFyaworCQkJCUxpdmVycG9vbCBNZXJzZXlzaWRlIEw3IDlQRgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBBLTUwICAgKGhleCkJCVJFTU9URUsgQ09SUE9SQVRJT04KKzAwMEE1MCAgICAgKGJhc2UgMTYpCQlSRU1PVEVLIENPUlBPUkFUSU9OCisJCQkJNkYtNiwgTm8gNzcsIFNlYyAxLCBIU0lOIFRBSSBXVSBST0FELAorCQkJCUhTSS1DSElIIFRBSVBFSSBIU0lFTiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTUxICAgKGhleCkJCUd5cm9TaWduYWwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMEE1MSAgICAgKGJhc2UgMTYpCQlHeXJvU2lnbmFsIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNUYsTm8uIDc3LExpZGUgU3QuCisJCQkJWmhvbmdoZSBDaXR5IFRhaXBlaSBDb3VudHkgMjM1NTYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTUyICAgKGhleCkJCUFzaWFSRiBMdGQuCiswMDBBNTIgICAgIChiYXNlIDE2KQkJQXNpYVJGIEx0ZC4KKwkJCQk0Ri4sIE5vLjIsIExhbmUgNTYwCisJCQkJWmhvbmd6aGVuZyBSZC4KKwkJCQlYaW5kaWFuIENpdHkgVGFpcGVpIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtNTMgICAoaGV4KQkJSW50cm9uaWNzLCBJbmNvcnBvcmF0ZWQKKzAwMEE1MyAgICAgKGJhc2UgMTYpCQlJbnRyb25pY3MsIEluY29ycG9yYXRlZAorCQkJCTIwMjAgTGFmYXlldHRlIEJsdmQuCisJCQkJRnJlZGVyaWNrc2J1cmcgVmlyZ2luaWEgMjI0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTU0ICAgKGhleCkJCUxhZ3VuYSBIaWxscywgSW5jLgorMDAwQTU0ICAgICAoYmFzZSAxNikJCUxhZ3VuYSBIaWxscywgSW5jLgorCQkJCTEtMjUtMSAzNUYgRmwuLCBOaXNoaXNoaW5qdWt1CisJCQkJU2hpbmp1a3Uta3UgVG9reW8gMTYzMDYzNQorCQkJCUpBUEFOCisKKzAwLTBBLTU1ICAgKGhleCkJCU1BUktFTSBDb3Jwb3JhdGlvbgorMDAwQTU1ICAgICAoYmFzZSAxNikJCU1BUktFTSBDb3Jwb3JhdGlvbgorCQkJCTE1MCBDb25ncmVzcyBTdHJlZXQKKwkJCQlLZWVuZSBOSCAwMzQzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNTYgICAoaGV4KQkJSElUQUNISSBNYXhlbGwgTHRkLgorMDAwQTU2ICAgICAoYmFzZSAxNikJCUhJVEFDSEkgTWF4ZWxsIEx0ZC4KKwkJCQk2LTIwLTEgS2ludW5vZGFpCisJCQkJWWF3YXJhLW11cmEsIFRzdWt1YmEtZ3VuIElCQVJBS0kgMzAwLTI0OTYKKwkJCQlKQVBBTgorCiswMC0wQS01NyAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueSAtIFN0YW5kYXJkcworMDAwQTU3ICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55IC0gU3RhbmRhcmRzCisJCQkJMTA5NTUgVGFudGF1IEF2ZW51ZQorCQkJCU1haWxzdG9wIDQxMzgKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTU4ICAgKGhleCkJCUluZ2VuaWV1ci1CdWVybyBGcmV5ZXIgJiBTaWVnZWwKKzAwMEE1OCAgICAgKGJhc2UgMTYpCQlJbmdlbmlldXItQnVlcm8gRnJleWVyICYgU2llZ2VsCisJCQkJTmV1ZW5kb3Jmc3RyLiAxOCBiCisJCQkJSGVubmlnc2RvcmYgQnJhbmRlbmJ1cmcgMTY3NjEKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTU5ICAgKGhleCkJCUhXIHNlcnZlcgorMDAwQTU5ICAgICAoYmFzZSAxNikJCUhXIHNlcnZlcgorCQkJCUl0YWxza2EgMTUKKwkJCQlQcmFndWUgMiBDemVjaCBSZXB1YmxpYyAxMjAgMDAKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0wQS01QSAgIChoZXgpCQlHcmVlbk5FVCBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzAwMEE1QSAgICAgKGJhc2UgMTYpCQlHcmVlbk5FVCBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKwkJCQlOby4xMCwgUWlvbmd5dSBSb2FkLFNjaWVuY2VzLWJhc2VkIEluZHVzCisJCQkJTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0wQS01QiAgIChoZXgpCQlQb3dlci1PbmUgYXMKKzAwMEE1QiAgICAgKGJhc2UgMTYpCQlQb3dlci1PbmUgYXMKKwkJCQlQLk8uIEJveCAxNTQzCisJCQkJRHJhbW1lbiAgMzAwNworCQkJCU5PUldBWQorCiswMC0wQS01QyAgIChoZXgpCQlDYXJlbCBzLnAuYS4KKzAwMEE1QyAgICAgKGJhc2UgMTYpCQlDYXJlbCBzLnAuYS4KKwkJCQlWaWEgZGVsbCcgSW5kdXN0cmlhLCAxMQorCQkJCUJydWdpbmUgUGFkb3ZhIDM1MDIwCisJCQkJSVRBTFkKKworMDAtMEEtNUQgICAoaGV4KQkJUFVDIEZvdW5kZXIgKE1TQykgQmVyaGFkCiswMDBBNUQgICAgIChiYXNlIDE2KQkJUFVDIEZvdW5kZXIgKE1TQykgQmVyaGFkCisJCQkJTG90IEctMSAmIEctMiwgSW5jdWJhdG9yIDEKKwkJCQlUZWNobm9sb2d5IFBhcmsgTWFsYXlzaWEKKwkJCQlLdWFsYSBMdW1wdXIgV1AgNTcwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0wQS01RSAgIChoZXgpCQkzQ09NIENvcnBvcmF0aW9uCiswMDBBNUUgICAgIChiYXNlIDE2KQkJM0NPTSBDb3Jwb3JhdGlvbgorCQkJCTU0MDAgQmF5ZnJvbnQgUGxhemEKKwkJCQlNL1MgNTExOQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUyLTgxNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTVGICAgKGhleCkJCWFsbWVkaW8gaW5jLgorMDAwQTVGICAgICAoYmFzZSAxNikJCWFsbWVkaW8gaW5jLgorCQkJCTMyLTEzLCBzYWthZS1jaG8gMiBjaG9tZQorCQkJCWhpZ2FzaGltdXJheWFtYS1zaGkgdG9reW8gMTg5LTAwMTMKKwkJCQlKQVBBTgorCiswMC0wQS02MCAgIChoZXgpCQlBdXRvc3RhciBUZWNobm9sb2d5IFB0ZSBMdGQKKzAwMEE2MCAgICAgKGJhc2UgMTYpCQlBdXRvc3RhciBUZWNobm9sb2d5IFB0ZSBMdGQKKwkJCQlVbml0IDA0LTEwIFRFQ0hwbGFjZSBJSQorCQkJCVNpbmdhcG9yZSBTaW5nYXBvcmUgNTY5ODc2CisJCQkJU0lOR0FQT1JFCisKKzAwLTBBLTYxICAgKGhleCkJCUNlbGxpbnggU3lzdGVtcyBJbmMuCiswMDBBNjEgICAgIChiYXNlIDE2KQkJQ2VsbGlueCBTeXN0ZW1zIEluYy4KKwkJCQk0MDggV29vc3VuZyBDaGFyYWN0ZXIxOTkgb2ZmaWNldGVsCisJCQkJNDY3LTI0IGRvZ29rLWRvbmcga2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUtODU2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLTYyICAgKGhleCkJCUNyaW5pcyBOZXR3b3JrcywgSW5jLgorMDAwQTYyICAgICAoYmFzZSAxNikJCUNyaW5pcyBOZXR3b3JrcywgSW5jLgorCQkJCTIwOTkgTi4gQ29sbGlucyBCbHZkLCBTdWl0ZSAyMDAKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS02MyAgIChoZXgpCQlESEQgR21iSAorMDAwQTYzICAgICAoYmFzZSAxNikJCURIRCBHbWJICisJCQkJSGFmZXJrb3Juc3RyYXNzZSA1CisJCQkJTGVpcHppZyBTYWNoc2VuIDA0MTI5CisJCQkJR0VSTUFOWQorCiswMC0wQS02NCAgIChoZXgpCQlFcmFjb20gVGVjaG5vbG9naWVzCiswMDBBNjQgICAgIChiYXNlIDE2KQkJRXJhY29tIFRlY2hub2xvZ2llcworCQkJCTI4IEdyZWcgQ2hhcHBlbGwgRHJpdmUKKwkJCQlCdXJsZWlnaCBIZWFkcyBRbGQgNDIyMAorCQkJCUFVU1RSQUxJQQorCiswMC0wQS02NSAgIChoZXgpCQlHZW50ZWNoTWVkaWEuY28uLGx0ZC4KKzAwMEE2NSAgICAgKGJhc2UgMTYpCQlHZW50ZWNoTWVkaWEuY28uLGx0ZC4KKwkJCQlzb2x2aXQgYmxkZyAyZiwgNDAyLTgsIHlhbmdqYWUtZG9uLAorCQkJCXNlb2Noby1ndSwgc2VvdWwgMTM3LTg5OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS02NiAgIChoZXgpCQlNSVRTVUJJU0hJIEVMRUNUUklDIFNZU1RFTSAmIFNFUlZJQ0UgQ08uLExURC4KKzAwMEE2NiAgICAgKGJhc2UgMTYpCQlNSVRTVUJJU0hJIEVMRUNUUklDIFNZU1RFTSAmIFNFUlZJQ0UgQ08uLExURC4KKwkJCQkxLTQtMTMgT09ZT0RPTkFLQSxLSVRBLUtVCisJCQkJT1NBS0EgIDUzMS0wMDc2CisJCQkJSkFQQU4KKworMDAtMEEtNjcgICAoaGV4KQkJT25nQ29ycAorMDAwQTY3ICAgICAoYmFzZSAxNikJCU9uZ0NvcnAKKwkJCQk0ODEgSGFja2Vuc2FjayBBdmUuCisJCQkJSGFja2Vuc2FjayBOSiAwNzYwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNjggICAoaGV4KQkJU29sYXJGbGFyZSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwQTY4ICAgICAoYmFzZSAxNikJCVNvbGFyRmxhcmUgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk5NTAxIEplcm9uaW1vCisJCQkJU3VpdGUgMTAwCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS02OSAgIChoZXgpCQlTVU5OWSBiZWxsIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDBBNjkgICAgIChiYXNlIDE2KQkJU1VOTlkgYmVsbCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCSM1MDIgQlVXT04gQi9EIDEwNy00NSBCQU5QTy1ET05HCisJCQkJU0VPQ0hPLUtVCisJCQkJU0VPVUwgIDEzNy04MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtNkEgICAoaGV4KQkJU1ZNIE1pY3Jvd2F2ZXMgcy5yLm8uCiswMDBBNkEgICAgIChiYXNlIDE2KQkJU1ZNIE1pY3Jvd2F2ZXMgcy5yLm8uCisJCQkJVSBNcmF6b3ZreSA1CisJCQkJUHJhaGEgNSAgMTUwMDAKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0wQS02QiAgIChoZXgpCQlUYWRpcmFuIFRlbGVjb20gQnVzaW5lc3MgU3lzdGVtcyBMVEQKKzAwMEE2QiAgICAgKGJhc2UgMTYpCQlUYWRpcmFuIFRlbGVjb20gQnVzaW5lc3MgU3lzdGVtcyBMVEQKKwkJCQkxOCBIYXNpdmltIFN0LgorCQkJCVAuTy5Cb3ggNDUwCisJCQkJUGV0YWNoIFRpa3ZhICA0OTEwNQorCQkJCUlTUkFFTAorCiswMC0wQS02QyAgIChoZXgpCQlXYWxjaGVtIENvcnBvcmF0aW9uCiswMDBBNkMgICAgIChiYXNlIDE2KQkJV2FsY2hlbSBDb3Jwb3JhdGlvbgorCQkJCTUgQm95bnRvbiBSb2FkCisJCQkJSG9sbGlzdG9uIE1BIDAxNzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS02RCAgIChoZXgpCQlFS1MgRWxla3Ryb25pa3NlcnZpY2UgR21iSAorMDAwQTZEICAgICAoYmFzZSAxNikJCUVLUyBFbGVrdHJvbmlrc2VydmljZSBHbWJICisJCQkJRW56c3RyLiA5CisJCQkJS29ybndlc3RoZWltIEJhZGVuIFd1cnRlbWJlcmcgNzA4MDYKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTZFICAgKGhleCkJCUJyb2FkY2FzdCBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMEE2RSAgICAgKGJhc2UgMTYpCQlCcm9hZGNhc3QgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJNiBTb3B3aXRoIFBhcmssIFJveWNlIENsb3NlCisJCQkJV2VzdCBQb3J0d2F5IEluZHVzdHJpYWwgRXN0YXRlCisJCQkJQW5kb3ZlciBIYW1wc2hpcmUgU1AxMCAzVEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQS02RiAgIChoZXgpCQlaeUZMRVggVGVjaG5vbG9naWVzIEluYworMDAwQTZGICAgICAoYmFzZSAxNikJCVp5RkxFWCBUZWNobm9sb2dpZXMgSW5jCisJCQkJMkZsLiBOby4gNTggUGFyayBBdmUuIElJCisJCQkJUy5CLkkuUC4sIEhzaW5jaHUgIDMwMDc3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS03MCAgIChoZXgpCQlNUExTIEZvcnVtCiswMDBBNzAgICAgIChiYXNlIDE2KQkJTVBMUyBGb3J1bQorCQkJCTM5MzU1IENhbGlmb3JuaWEgU3RyZWV0CisJCQkJU3VpdGUgMzA3CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNzEgICAoaGV4KQkJQXZyaW8gVGVjaG5vbG9naWVzLCBJbmMKKzAwMEE3MSAgICAgKGJhc2UgMTYpCQlBdnJpbyBUZWNobm9sb2dpZXMsIEluYworCQkJCTI2NTUgQSBQYXJrIENlbnRlciBEcml2ZQorCQkJCVNpbWkgVmFsbGV5IENBIDkxMzU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS03MiAgIChoZXgpCQlTVEVDLCBJTkMuCiswMDBBNzIgICAgIChiYXNlIDE2KQkJU1RFQywgSU5DLgorCQkJCTMwMDEgRGFpbWxlciBTdHJlZXQKKwkJCQlTYW50YSBBbmEgQ0EgOTI3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTczICAgKGhleCkJCVNjaWVudGlmaWMgQXRsYW50YQorMDAwQTczICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMgQXRsYW50YQorCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlNUyA1LjI0MjUKKwkJCQlMYXdyZW5jZXZpbGxlIEdhIDMwMDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS03NCAgIChoZXgpCQlNYW50aWNvbSBOZXR3b3JrcyBJbmMuCiswMDBBNzQgICAgIChiYXNlIDE2KQkJTWFudGljb20gTmV0d29ya3MgSW5jLgorCQkJCTE0MDE2LUMgU3VsbHlmaWVsZCBDaXJjbGUKKwkJCQlDaGFudGlsbHkgVkEgMjAxNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTc1ICAgKGhleCkJCUNhdGVycGlsbGFyLCBJbmMKKzAwMEE3NSAgICAgKGJhc2UgMTYpCQlDYXRlcnBpbGxhciwgSW5jCisJCQkJTWFpbHN0b3AgTG9jYXRpb24gQUM2MTMwCisJCQkJUE8gQm94IDYxMAorCQkJCU1vc3N2aWxsZSBJTCA2MTU1Mi0wNjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS03NiAgIChoZXgpCQlCZWlkYSBKYWRlIEJpcmQgSHVhZ3VhbmcgVGVjaG5vbG9neSBDby4sTHRkCiswMDBBNzYgICAgIChiYXNlIDE2KQkJQmVpZGEgSmFkZSBCaXJkIEh1YWd1YW5nIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCU5vLjIwNyBDaGVuZ2Z1IFJvYWQsIEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDA4NzEKKwkJCQlDSElOQQorCiswMC0wQS03NyAgIChoZXgpCQlCbHVld2lyZSBUZWNobm9sb2dpZXMgTExDCiswMDBBNzcgICAgIChiYXNlIDE2KQkJQmx1ZXdpcmUgVGVjaG5vbG9naWVzIExMQworCQkJCTQyMCBOLiBPIFN0LgorCQkJCVR1bGFyZSBDYSA5MzI3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNzggICAoaGV4KQkJT0xJVEVDCiswMDBBNzggICAgIChiYXNlIDE2KQkJT0xJVEVDCisJCQkJQi5QLiA1OTIKKwkJCQk4NywgcnVlIE1hYyBNYWhvbgorCQkJCU5BTkNZIGNlZGV4ICA1NDAwOQorCQkJCUZSQU5DRQorCiswMC0wQS03OSAgIChoZXgpCQlBbGxpZWQgVGVsZXNpcyBLLksuIGNvcmVnYSBkaXZpc2lvbgorMDAwQTc5ICAgICAoYmFzZSAxNikJCUFsbGllZCBUZWxlc2lzIEsuSy4gY29yZWdhIGRpdmlzaW9uCisJCQkJMS0xOS0yMCwgU2hpbnlva29oYW1hCisJCQkJS291aG9rdS1rdQorCQkJCVlva29oYW1hLWNpdHkgS2FuYWdhd2Eta2VuIDIyMi0wMDMzCisJCQkJSkFQQU4KKworMDAtMEEtN0EgICAoaGV4KQkJS3lvcml0c3UgRWxlY3RyaWMgQ28uLCBMdGQuCiswMDBBN0EgICAgIChiYXNlIDE2KQkJS3lvcml0c3UgRWxlY3RyaWMgQ28uLCBMdGQuCisJCQkJMi0zLTE3CisJCQkJSXdhdG8tbWluYW1pCisJCQkJS29tYWUtc2hpIFRva3lvIDIwMS0wMDA1CisJCQkJSkFQQU4KKworMDAtMEEtN0IgICAoaGV4KQkJQ29ybmVsaXVzIENvbnN1bHQKKzAwMEE3QiAgICAgKGJhc2UgMTYpCQlDb3JuZWxpdXMgQ29uc3VsdAorCQkJCUFtIFNpZXBlbiAxNworCQkJCUJvY2h1bSBOUlcgNDQ4MDMKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTdDICAgKGhleCkJCVRlY3RvbiBMdGQKKzAwMEE3QyAgICAgKGJhc2UgMTYpCQlUZWN0b24gTHRkCisJCQkJRmlzaGVycyBDb3VydAorCQkJCUZpc2hlcnMgUG9uZAorCQkJCUVhc3RsZWlnaCBIYW1wc2hpcmUgU081MCA3SEcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQS03RCAgIChoZXgpCQlWYWxvLCBJbmMuCiswMDBBN0QgICAgIChiYXNlIDE2KQkJVmFsbywgSW5jLgorCQkJCTEzNTEgUmVkd29vZCBXYXkKKwkJCQlQZXRhbHVtYSBDQSA5NDk1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtN0UgICAoaGV4KQkJVGhlIEFkdmFudGFnZSBHcm91cAorMDAwQTdFICAgICAoYmFzZSAxNikJCVRoZSBBZHZhbnRhZ2UgR3JvdXAKKwkJCQkxNjEwIERlcyBQZXJlcyBSb2FkCisJCQkJU3VpdGUgMzcwCisJCQkJU3QuIExvdWlzIE1PIDYzMTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS03RiAgIChoZXgpCQlUZXJhZG9uIEluZHVzdHJpZXMsIEluYworMDAwQTdGICAgICAoYmFzZSAxNikJCVRlcmFkb24gSW5kdXN0cmllcywgSW5jCisJCQkJNzUwMCAybmQgU1QgTlcKKwkJCQlBbGJ1cXVlcnF1ZSBOTSA4NzEyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtODAgICAoaGV4KQkJVGVsa29uZXQgSW5jLgorMDAwQTgwICAgICAoYmFzZSAxNikJCVRlbGtvbmV0IEluYy4KKwkJCQkyMDM3NCBTZW5lY2EgTWVhZG93cyBQa3d5CisJCQkJR2VybWFudG93biBNRCAyMDc4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtODEgICAoaGV4KQkJVEVJTUEgQXVkaW90ZXggUy5MLgorMDAwQTgxICAgICAoYmFzZSAxNikJCVRFSU1BIEF1ZGlvdGV4IFMuTC4KKwkJCQlDLyBUaXJ2aWEsIDYsIGxvY2FsIEIKKwkJCQlNYWRyaWQgIDI4MDQwCisJCQkJU1BBSU4KKworMDAtMEEtODIgICAoaGV4KQkJVEFUU1VUQSBTWVNURU0gRUxFQ1RST05JQ1MgQ08uLExURC4KKzAwMEE4MiAgICAgKGJhc2UgMTYpCQlUQVRTVVRBIFNZU1RFTSBFTEVDVFJPTklDUyBDTy4sTFRELgorCQkJCUlXQVRBVFlPVTItMy0xCisJCQkJSElHQVNISU9PU0FLQS1TSEkgT09TQUtBLUZVIDU3OC04NTg1CisJCQkJSkFQQU4KKworMDAtMEEtODMgICAoaGV4KQkJU0FMVE8gU1lTVEVNUyBTLkwuCiswMDBBODMgICAgIChiYXNlIDE2KQkJU0FMVE8gU1lTVEVNUyBTLkwuCisJCQkJQXJrb3R6LCA5CisJCQkJUG9saWdvbm8gTGFuYmFycmVuIE9pYXJ0enVuIDIwMTgwCisJCQkJU1BBSU4KKworMDAtMEEtODQgICAoaGV4KQkJUmFpbnN1biBFbnRlcnByaXNlIENvLiwgTHRkLgorMDAwQTg0ICAgICAoYmFzZSAxNikJCVJhaW5zdW4gRW50ZXJwcmlzZSBDby4sIEx0ZC4KKwkJCQlOby4xNC0zICwgTGFuZSAyMzUsIEhvLUNoZW4gUm9hZAorCQkJCUJhb0NpYW8gUm9hZAorCQkJCVNoaW5EaWFuIENpdHkgVEFJUEVJIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtODUgICAoaGV4KQkJUExBVCdDMixJbmMKKzAwMEE4NSAgICAgKGJhc2UgMTYpCQlQTEFUJ0MyLEluYworCQkJCTItMy02IFNPVE9LQU5EQQorCQkJCUNISVlPREEtS1UgVE9LWU8gMTAxLTAwMjEKKwkJCQlKQVBBTgorCiswMC0wQS04NiAgIChoZXgpCQlMZW56ZQorMDAwQTg2ICAgICAoYmFzZSAxNikJCUxlbnplCisJCQkJUE8gYm94IDEwMTM1MgorCQkJCUhhbWVsbiBMb3dlciBTYXhvbnkgMzE3NjMKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTg3ICAgKGhleCkJCUludGVncmF0ZWQgTWljcm9tYWNoaW5lcyBJbmMuCiswMDBBODcgICAgIChiYXNlIDE2KQkJSW50ZWdyYXRlZCBNaWNyb21hY2hpbmVzIEluYy4KKwkJCQkxNDAwIFMuIFNoYW1yb2NrIEF2ZS4KKwkJCQlNb25yb3ZpYSBDQSA5MTAxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtODggICAoaGV4KQkJSW5DeXBoZXIgUy5BLgorMDAwQTg4ICAgICAoYmFzZSAxNikJCUluQ3lwaGVyIFMuQS4KKwkJCQkxOCBydWUgZGUgbCdFYXUKKwkJCQlMdXhlbWJvdXJnICAxNDQ5CisJCQkJTFVYRU1CT1VSRworCiswMC0wQS04OSAgIChoZXgpCQlDcmV2YWwgU3lzdGVtcywgSW5jLgorMDAwQTg5ICAgICAoYmFzZSAxNikJCUNyZXZhbCBTeXN0ZW1zLCBJbmMuCisJCQkJMkYsMjQtNCxTYW53b2xnb2stRG9uZyxTdW5nYnVrLUt1LFNlb3VsLAorCQkJCVNlb3VsICAxMzYtMTIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLThBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEE4QSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLThCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEE4QiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRFIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLThDICAgKGhleCkJCUd1YXJkd2FyZSBTeXN0ZW1zIEx0ZC4KKzAwMEE4QyAgICAgKGJhc2UgMTYpCQlHdWFyZHdhcmUgU3lzdGVtcyBMdGQuCisJCQkJVWxsb2kgdXQgMTAyLgorCQkJCUJ1ZGFwZXN0ICBILTEwODkKKwkJCQlIVU5HQVJZCisKKzAwLTBBLThEICAgKGhleCkJCUVVUk9USEVSTSBMSU1JVEVECiswMDBBOEQgICAgIChiYXNlIDE2KQkJRVVST1RIRVJNIExJTUlURUQKKwkJCQlGQVJBREFZIENMT1NFCisJCQkJRFVSUklOR1RPTgorCQkJCVdPUlRISU5HIFdFU1QgU1VTU0VYIEJOMTMgM1BMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEEtOEUgICAoaGV4KQkJSW52YWNvbSBMdGQKKzAwMEE4RSAgICAgKGJhc2UgMTYpCQlJbnZhY29tIEx0ZAorCQkJCUJ1c2luZXNzIGFuZCBUZWNobm9sb2d5IENlbnRyZQorCQkJCUJlc3NlbWVyIERyaXZlCisJCQkJU3RldmVuYWdlIEhlcnRmb3Jkc2hpcmUgU0cxIDJEWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBBLThGICAgKGhleCkJCUFza2EgSW50ZXJuYXRpb25hbCBJbmMuCiswMDBBOEYgICAgIChiYXNlIDE2KQkJQXNrYSBJbnRlcm5hdGlvbmFsIEluYy4KKwkJCQkzMDYgUml2ZXJzZXZlbgorCQkJCTQtMTggSGFyZWdpLUhvbm1hY2hpCisJCQkJS29jaGkgIDc4MC04MDg4CisJCQkJSkFQQU4KKworMDAtMEEtOTAgICAoaGV4KQkJQmF5c2lkZSBJbnRlcmFjdGl2ZSwgSW5jLgorMDAwQTkwICAgICAoYmFzZSAxNikJCUJheXNpZGUgSW50ZXJhY3RpdmUsIEluYy4KKwkJCQkzMzAgQmlzY2F5bmUgQmx2ZC4KKwkJCQlTdWl0ZSA4MDEKKwkJCQlNaWFtaSBGTCAzMzEzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtOTEgICAoaGV4KQkJSGVtb0N1ZSBBQgorMDAwQTkxICAgICAoYmFzZSAxNikJCUhlbW9DdWUgQUIKKwkJCQlCb3ggMTIwNAorCQkJCUFuZ2VsaG9sbSBTa2FuZSAyNjIyMworCQkJCVNXRURFTgorCiswMC0wQS05MiAgIChoZXgpCQlQcmVzb251cyBDb3Jwb3JhdGlvbgorMDAwQTkyICAgICAoYmFzZSAxNikJCVByZXNvbnVzIENvcnBvcmF0aW9uCisJCQkJNzI1NyBGbG9yaWRhIEJsdmQuCisJCQkJQmF0b24gUm91Z2UgTG91aXNpYW5hIDcwODA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS05MyAgIChoZXgpCQlXMiBOZXR3b3JrcywgSW5jLgorMDAwQTkzICAgICAoYmFzZSAxNikJCVcyIE5ldHdvcmtzLCBJbmMuCisJCQkJNTgwOCBOVyBMYWMgTGVtYW4gRHJpdmUKKwkJCQlJc3NhcXVhaCBXYXNoaW5ndG9uIDk4MDI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS05NCAgIChoZXgpCQlTaGFuZ0hhaSBjZWxsaW5rIENPLiwgTFRECiswMDBBOTQgICAgIChiYXNlIDE2KQkJU2hhbmdIYWkgY2VsbGluayBDTy4sIExURAorCQkJCUMzIE1laUxvbmcgWmhvbmdYaW4gSW5kdXN0cmlhbCBQYXJrLE5vLjEKKwkJCQlTaGFuZ0hhaSAgMjAwMjM3CisJCQkJQ0hJTkEKKworMDAtMEEtOTUgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIsIEluYy4KKzAwMEE5NSAgICAgKGJhc2UgMTYpCQlBcHBsZSBDb21wdXRlciwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCU0vUyAyNi1DCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS05NiAgIChoZXgpCQlNRVdURUwgVEVDSE5PTE9HWSBJTkMuCiswMDBBOTYgICAgIChiYXNlIDE2KQkJTUVXVEVMIFRFQ0hOT0xPR1kgSU5DLgorCQkJCUUxNUZMLiBJVCBWRU5UVVJFIFRPV0VSCisJCQkJNzggS0FSQUstRE9ORywgU09OR1BBLUdVCisJCQkJU0VPVUwgIDEzOC04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtOTcgICAoaGV4KQkJU09OSUNibHVlLCBJbmMuCiswMDBBOTcgICAgIChiYXNlIDE2KQkJU09OSUNibHVlLCBJbmMuCisJCQkJMjg0MSBNaXNzaW9uIENvbGxlZ2UgQmx2ZC4KKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtOTggICAoaGV4KQkJTStGIEd3aW5uZXIgR21iSCAmIENvCiswMDBBOTggICAgIChiYXNlIDE2KQkJTStGIEd3aW5uZXIgR21iSCAmIENvCisJCQkJV2VpZGVuYmF1bXN3ZWcgOTEgYQorCQkJCUhhbWJ1cmcgIDIxMDI5CisJCQkJR0VSTUFOWQorCiswMC0wQS05OSAgIChoZXgpCQlDYWxhbXAgV2lyZWxlc3MgTmV0d29ya3MgSW5jCiswMDBBOTkgICAgIChiYXNlIDE2KQkJQ2FsYW1wIFdpcmVsZXNzIE5ldHdvcmtzIEluYworCQkJCTEwMS01NTQwIEZlcnJpZXIgU3RyZWV0CisJCQkJVG93biBvZiBNb3VudC1Sb3lhbCBRdWViZWMgSDRQIDFNMgorCQkJCUNBTkFEQQorCiswMC0wQS05QSAgIChoZXgpCQlBaXB0ZWsgSW50ZXJuYXRpb25hbCBJbmMKKzAwMEE5QSAgICAgKGJhc2UgMTYpCQlBaXB0ZWsgSW50ZXJuYXRpb25hbCBJbmMKKwkJCQlObyA1LTEgSW5ub3ZhdGlvbiBSZCAxCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS05QiAgIChoZXgpCQlUb3dhIE1lY2NzIENvcnBvcmF0aW9uCiswMDBBOUIgICAgIChiYXNlIDE2KQkJVG93YSBNZWNjcyBDb3Jwb3JhdGlvbgorCQkJCTM1LTEgS2FtaXRvZGEKKwkJCQlUb2RhIFNhaXRhbWEgMzM1LTAwMjIKKwkJCQlKQVBBTgorCiswMC0wQS05QyAgIChoZXgpCQlTZXJ2ZXIgVGVjaG5vbG9neSwgSW5jLgorMDAwQTlDICAgICAoYmFzZSAxNikJCVNlcnZlciBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTA0MCBTYW5kaGlsbCBEci4KKwkJCQlSZW5vIE5ldmFkYSA4OTUxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtOUQgICAoaGV4KQkJS2luZyBZb3VuZyBUZWNobm9sb2d5IENvLiBMdGQuCiswMDBBOUQgICAgIChiYXNlIDE2KQkJS2luZyBZb3VuZyBUZWNobm9sb2d5IENvLiBMdGQuCisJCQkJMUZsLiwgTm8uIDksIExhbmUgMjYsIEdhbmdjaGkgUmQuLCBOZWlodQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS05RSAgIChoZXgpCQlCcm9hZFdlYiBDb3Jwb3J0YXRpb24KKzAwMEE5RSAgICAgKGJhc2UgMTYpCQlCcm9hZFdlYiBDb3Jwb3J0YXRpb24KKwkJCQkzRiwgMjQtMSwgSW5kdXN0cnkgRWFzdCBSZC4sIElWLAorCQkJCVNjaWVuY2UgQmFzZWQsIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW4tQ2h1IDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtOUYgICAoaGV4KQkJUGFubmF3YXkgVGVjaG5vbG9naWVzLCBJbmMuCiswMDBBOUYgICAgIChiYXNlIDE2KQkJUGFubmF3YXkgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMjE1IENvbW1lcmNlIFdheQorCQkJCVBvcnRzbW91dGggTkggMDM4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUEwICAgKGhleCkJCUNlZGFyIFBvaW50IENvbW11bmljYXRpb25zCiswMDBBQTAgICAgIChiYXNlIDE2KQkJQ2VkYXIgUG9pbnQgQ29tbXVuaWNhdGlvbnMKKwkJCQkxNiBSb3V0ZSAxMTEsIEJsZGcgMworCQkJCURlcnJ5IE5IIDAzMDM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1BMSAgIChoZXgpCQlWIFYgUyBMaW1pdGVkCiswMDBBQTEgICAgIChiYXNlIDE2KQkJViBWIFMgTGltaXRlZAorCQkJCUhQSUMsIDEuIEFpbnNsaWUgUm9hZCAsCisJCQkJSGlsbGluZ3RvbgorCQkJCUdsYXNnb3cgU2NvdGxhbmQgRzUyIDRSVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBBLUEyICAgKGhleCkJCVNZU1RFSyBJTkMuCiswMDBBQTIgICAgIChiYXNlIDE2KQkJU1lTVEVLIElOQy4KKwkJCQlKQ09NIEJVSUxESU5HIDQwMiwgT0pFT04tRE9ORyAxMjQtNCwKKwkJCQlVSVdBTkctU0kgR1lVTkdHSS1ETyA0MzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLUEzICAgKGhleCkJCVNISU1BRlVKSSBFTEVDVFJJQyBDTy4sTFRELgorMDAwQUEzICAgICAoYmFzZSAxNikJCVNISU1BRlVKSSBFTEVDVFJJQyBDTy4sTFRELgorCQkJCURhaWh5YWt1LXNlaW1laSBLYW1hdGEgQmxkZy4zRgorCQkJCTgtMTEtMTEgTmlzaGlrYW1hdGEsT3RhLWt1CisJCQkJVG9reW8gMTQ0LTAwNTEKKwkJCQlKQVBBTgorCiswMC0wQS1BNCAgIChoZXgpCQlTSEFOR0hBSSBTVVJWRUlMTEFOQ0UgVEVDSE5PTE9HWSBDTyxMVEQKKzAwMEFBNCAgICAgKGJhc2UgMTYpCQlTSEFOR0hBSSBTVVJWRUlMTEFOQ0UgVEVDSE5PTE9HWSBDTyxMVEQKKwkJCQlGTC4yNUEsTk8uOCBDSEFOR1lBTkcgUk9BRAorCQkJCVNIQU5HSEFJICAyMDAwODIKKwkJCQlDSElOQQorCiswMC0wQS1BNSAgIChoZXgpCQlNQVhMSU5LIElORFVTVFJJRVMgTElNSVRFRAorMDAwQUE1ICAgICAoYmFzZSAxNikJCU1BWExJTksgSU5EVVNUUklFUyBMSU1JVEVECisJCQkJMjlBIFNIRU5aSEVOIFNQRUNJQUwgWk9ORQorCQkJCVBSRVNTIFRPV0VSCisJCQkJU0hFTlpIRU4gR1VBTkdET05HIDUxODAwOQorCQkJCUNISU5BCisKKzAwLTBBLUE2ICAgKGhleCkJCUhvY2hpa2kgQ29ycG9yYXRpb24KKzAwMEFBNiAgICAgKGJhc2UgMTYpCQlIb2NoaWtpIENvcnBvcmF0aW9uCisJCQkJMjQ2LCBUU1VSVU1BCisJCQkJTUFDSElEQSBUT0tZTyAxOTQtODU3NworCQkJCUpBUEFOCisKKzAwLTBBLUE3ICAgKGhleCkJCUZFSSBFbGVjdHJvbiBPcHRpY3MKKzAwMEFBNyAgICAgKGJhc2UgMTYpCQlGRUkgRWxlY3Ryb24gT3B0aWNzCisJCQkJQWNodHNld2VnIE5vb3JkIDUKKwkJCQlBQUUgMzQKKwkJCQlFaW5kaG92ZW4gIDU2NTFHRworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBBLUE4ICAgKGhleCkJCWVQaXBlIFB0eS4gTHRkLgorMDAwQUE4ICAgICAoYmFzZSAxNikJCWVQaXBlIFB0eS4gTHRkLgorCQkJCVAuTy4gQm94IDE0MjgKKwkJCQlUb293b25nCisJCQkJQnJpc2JhbmUgUXVlZW5zbGFuZCA0MDY2CisJCQkJQVVTVFJBTElBCisKKzAwLTBBLUE5ICAgKGhleCkJCUJyb29rcyBBdXRvbWF0aW9uIEdtYkgKKzAwMEFBOSAgICAgKGJhc2UgMTYpCQlCcm9va3MgQXV0b21hdGlvbiBHbWJICisJCQkJR29lc2Nod2l0emVyIFN0cmFzc2UgMjUKKwkJCQlKZW5hIFRodXJpbmdpYSAwNzc0NQorCQkJCUdFUk1BTlkKKworMDAtMEEtQUEgICAoaGV4KQkJQWx0aUdlbiBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDBBQUEgICAgIChiYXNlIDE2KQkJQWx0aUdlbiBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJNDc0MjcgRnJlbW9udCBCbHZkLgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUFCICAgKGhleCkJCVRveW90YSBUZWNobmljYWwgRGV2ZWxvcG1lbnQgQ29ycG9yYXRpb24KKzAwMEFBQiAgICAgKGJhc2UgMTYpCQlUb3lvdGEgVGVjaG5pY2FsIERldmVsb3BtZW50IENvcnBvcmF0aW9uCisJCQkJMS0yMSwgSW1hZSwgSGFuYW1vdG8tY2hvCisJCQkJVG95b3RhIEFpY2hpIDQ3MC0wMzM0CisJCQkJSkFQQU4KKworMDAtMEEtQUMgICAoaGV4KQkJVGVycmFUZWMgRWxlY3Ryb25pYyBHbWJICiswMDBBQUMgICAgIChiYXNlIDE2KQkJVGVycmFUZWMgRWxlY3Ryb25pYyBHbWJICisJCQkJSGVycmVucGZhZCAzOAorCQkJCU5ldHRldGFsIE5SVyA0MTMzNAorCQkJCUdFUk1BTlkKKworMDAtMEEtQUQgICAoaGV4KQkJU3RhcmdhbWVzIENvcnBvcmF0aW9uCiswMDBBQUQgICAgIChiYXNlIDE2KQkJU3RhcmdhbWVzIENvcnBvcmF0aW9uCisJCQkJMTMgU2hlcmlkYW4gQ2xvc2UKKwkJCQlNaWxwZXJyYSBOU1cgMjAzMQorCQkJCUFVU1RSQUxJQQorCiswMC0wQS1BRSAgIChoZXgpCQlSb3NlbW91bnQgUHJvY2VzcyBBbmFseXRpY2FsCiswMDBBQUUgICAgIChiYXNlIDE2KQkJUm9zZW1vdW50IFByb2Nlc3MgQW5hbHl0aWNhbAorCQkJCTY1NzNBIENvY2hyYW4gUmQuCisJCQkJU29sb24gT2hpbyA0NDEzOS0zOTIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1BRiAgIChoZXgpCQlQaXBhbCBTeXN0ZW1zCiswMDBBQUYgICAgIChiYXNlIDE2KQkJUGlwYWwgU3lzdGVtcworCQkJCTI5MDMgQnVua2VyIEhpbGwgTGFuZQorCQkJCVN1aXRlIDIxMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1CMCAgIChoZXgpCQlMT1lURUMgZWxlY3Ryb25pY3MgR21iSAorMDAwQUIwICAgICAoYmFzZSAxNikJCUxPWVRFQyBlbGVjdHJvbmljcyBHbWJICisJCQkJU3RvbHplbnRoYWxlcmdhc3NlIDI0LzMKKwkJCQlWaWVubmEgV2llbiAxMDgwCisJCQkJQVVTVFJJQQorCiswMC0wQS1CMSAgIChoZXgpCQlHRU5FVEVDIENvcnBvcmF0aW9uCiswMDBBQjEgICAgIChiYXNlIDE2KQkJR0VORVRFQyBDb3Jwb3JhdGlvbgorCQkJCU5pc2hpa3VyYS1MSyBCbGQuCisJCQkJVG9taWhpc2EtY2hvdSAxNi02CisJCQkJU2hpbmp1a3Uta3UgVG9reW8gMTYyLTAwNjcKKwkJCQlKQVBBTgorCiswMC0wQS1CMiAgIChoZXgpCQlGcmVzbmVsIFdpcmVsZXNzIFN5c3RlbXMKKzAwMEFCMiAgICAgKGJhc2UgMTYpCQlGcmVzbmVsIFdpcmVsZXNzIFN5c3RlbXMKKwkJCQkxMzMzIEdhdGV3YXkgRHJpdmUKKwkJCQlTdWl0ZSAxMDA3CisJCQkJTWVsYm91cm5lIEZMIDMyOTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1CMyAgIChoZXgpCQlGYS4gR0lSQQorMDAwQUIzICAgICAoYmFzZSAxNikJCUZhLiBHSVJBCisJCQkJRGFobGllbnN0cmFzc2UKKwkJCQlSYWRldm9ybXdhbGQgTm9yZHJoZWluLVdlc3RmYWxlbiA0MjQ3NworCQkJCUdFUk1BTlkKKworMDAtMEEtQjQgICAoaGV4KQkJRVRJQyBUZWxlY29tbXVuaWNhdGlvbnMKKzAwMEFCNCAgICAgKGJhc2UgMTYpCQlFVElDIFRlbGVjb21tdW5pY2F0aW9ucworCQkJCTEzLCBjaGVtaW4gZHUgdmlldXgtY2hlbmUgWklSU1QKKwkJCQlNRVlMQU4gSXNlcmUgMzgyNDAKKwkJCQlGUkFOQ0UKKworMDAtMEEtQjUgICAoaGV4KQkJRGlnaXRhbCBFbGVjdHJvbmljIE5ldHdvcmsKKzAwMEFCNSAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIEVsZWN0cm9uaWMgTmV0d29yaworCQkJCTggcnVlIGR1IHNhY3JlIGNvZXVyCisJCQkJU2FpbnQgTGF1cmVudCBzdXIgU2V2cmUgVmVuZGVlIDg1MjkwCisJCQkJRlJBTkNFCisKKzAwLTBBLUI2ICAgKGhleCkJCUNPTVBVTkVUSVgsIElOQworMDAwQUI2ICAgICAoYmFzZSAxNikJCUNPTVBVTkVUSVgsIElOQworCQkJCTI0MjAgTU9TU0lERSBCTFZELgorCQkJCU1PTlJPRVZJTExFIFBBIDE1MTQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1CNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBBQjcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1COCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBBQjggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENhIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1COSAgIChoZXgpCQlBc3RlcmEgVGVjaG5vbG9naWVzIENvcnAuCiswMDBBQjkgICAgIChiYXNlIDE2KQkJQXN0ZXJhIFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCSAyMzgwIFdhdmVybGV5IFN0cmVldAorCQkJCVBhbG8gQWx0byBDQSA5NDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtQkEgICAoaGV4KQkJQXJjb24gVGVjaG5vbG9neSBMaW1pdGVkCiswMDBBQkEgICAgIChiYXNlIDE2KQkJQXJjb24gVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJUm0uIDM3MTEtMTIsIDM3L0YuLCBDYWJsZSBUViBUb3dlciAsCisJCQkJIDkgSG9pIFNoaW5nIFJkLiwgVHN1ZW4gV2FuICwgTi5UCisJCQkJSG9uZyBLb25nICAKKwkJCQlDSElOQQorCiswMC0wQS1CQiAgIChoZXgpCQlUYWl3YW4gU2Vjb20gQ28sLiBMdGQKKzAwMEFCQiAgICAgKGJhc2UgMTYpCQlUYWl3YW4gU2Vjb20gQ28sLiBMdGQKKwkJCQkxM0YsIDEwOCwgU2VjMSwgU2hpbi1UYWkgNXRoIFJvYWQKKwkJCQlIc2ktQ2hpaCBUYWlwZWkgQ291bnR5IDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtQkMgICAoaGV4KQkJU2VhYnJpZGdlIEx0ZC4KKzAwMEFCQyAgICAgKGJhc2UgMTYpCQlTZWFicmlkZ2UgTHRkLgorCQkJCTMgSGFuYWdhciBTdC4KKwkJCQlOZXZlLU5lZW1hbiBCJworCQkJCUhvZC1IYXNoYXJvbiBJc3JhZWwgNDUyNDEKKwkJCQlJU1JBRUwKKworMDAtMEEtQkQgICAoaGV4KQkJUnVwcHJlY2h0ICYgUGF0YXNobmljayBDby4KKzAwMEFCRCAgICAgKGJhc2UgMTYpCQlSdXBwcmVjaHQgJiBQYXRhc2huaWNrIENvLgorCQkJCTI1IENvcnBvcmF0ZSBDaXJjbGUKKwkJCQlBbGJhbnkgTlkgMTIyMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUJFICAgKGhleCkJCU9QTkVUIFRlY2hub2xvZ2llcyBDTy4sIExURC4KKzAwMEFCRSAgICAgKGJhc2UgMTYpCQlPUE5FVCBUZWNobm9sb2dpZXMgQ08uLCBMVEQuCisJCQkJM0YsIE5PLjUsIEluZHVzdHJ5IEUuIFJkLiBJWCwgU2NpZW5jZS1CYQorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtQkYgICAoaGV4KQkJSElST1RBIFNTCiswMDBBQkYgICAgIChiYXNlIDE2KQkJSElST1RBIFNTCisJCQkJTWF0dWthd2EtS291Z3lvdWRhbmNoaQorCQkJCVN1emFrYS1zaGkgTmFnYW5vIDM4Mi0wMDA1CisJCQkJSkFQQU4KKworMDAtMEEtQzAgICAoaGV4KQkJRnV5b2ggVmlkZW8gSW5kdXN0cnkgQ08uLCBMVEQuCiswMDBBQzAgICAgIChiYXNlIDE2KQkJRnV5b2ggVmlkZW8gSW5kdXN0cnkgQ08uLCBMVEQuCisJCQkJNy0yNSBIaWdhc2hpIEtpYm9nYW9rYQorCQkJCUFzYWhpLWt1CisJCQkJWW9rb2hhbWEtc2hpIEthbmFnYXdhLWtlbiAyNDYtMDAwOAorCQkJCUpBUEFOCisKKzAwLTBBLUMxICAgKGhleCkJCUZ1dHVyZXRlbAorMDAwQUMxICAgICAoYmFzZSAxNikJCUZ1dHVyZXRlbAorCQkJCTIxNTgwIFN0ZXZlbnMgQ3JlZWsgQmx2ZCwgU3VpdGUgMjA4CisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1DMiAgIChoZXgpCQlGaWJlckhvbWUgVGVsZWNvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIENPLixMVEQKKzAwMEFDMiAgICAgKGJhc2UgMTYpCQlGaWJlckhvbWUgVGVsZWNvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIENPLixMVEQKKwkJCQlOby44OCBZb3VLZXl1YW4gUm9hZCxIb25nc2hhbiBEaXN0cmljdCxXCisJCQkJV3VoYW4gSHViZWkgNDMwMDc0CisJCQkJQ0hJTkEKKworMDAtMEEtQzMgICAoaGV4KQkJZU0gVGVjaG5pY3MgQ28uLCBMdGQuCiswMDBBQzMgICAgIChiYXNlIDE2KQkJZU0gVGVjaG5pY3MgQ28uLCBMdGQuCisJCQkJN0YuLCBJVCBWZW50dXJlIFRvd2VyLiwgNzgsCisJCQkJR2FyYWtib24tRG9uZywgU29uZ3BhLUd1CisJCQkJU2VvdWwgIDEzOC04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtQzQgICAoaGV4KQkJRGFld29vIFRlbGV0ZWNoIENvLiwgTHRkCiswMDBBQzQgICAgIChiYXNlIDE2KQkJRGFld29vIFRlbGV0ZWNoIENvLiwgTHRkCisJCQkJMjY1LTMsIFNlb2h5ZW9uLCBCdW5kYW5nCisJCQkJU2VvbmduYW0gR3llb25nZ2kgNDYzLTc2OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS1DNSAgIChoZXgpCQlDb2xvciBLaW5ldGljcworMDAwQUM1ICAgICAoYmFzZSAxNikJCUNvbG9yIEtpbmV0aWNzCisJCQkJMTAgTWlsayBTdHJlZXQKKwkJCQlTdWl0ZSAxMTAwCisJCQkJQm9zdG9uIE1hc2FjaHVzZXR0cyAwMjEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtQzYgICAoaGV4KQkJQ2V0ZXJ1cyBOZXR3b3JrcywgSW5jLgorMDAwQUM2ICAgICAoYmFzZSAxNikJCUNldGVydXMgTmV0d29ya3MsIEluYy4KKwkJCQlQLk8uIEJveCAyNTAzOTEKKwkJCQlQbGFubyBUWCA3NTAyNS0wMzkxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1DNyAgIChoZXgpCQlVbmljYXRpb24gR3JvdXAKKzAwMEFDNyAgICAgKGJhc2UgMTYpCQlVbmljYXRpb24gR3JvdXAKKwkJCQkzRi4sIE5vLiA2LCBXdS1LdW5nIDVSZC4sIEhzaW5jaHVhbmcgQ2l0CisJCQkJVGFpcGVpICAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLUM4ICAgKGhleCkJCVpQU1lTIENPLixMVEQuIChQbGFubmluZyZNYW5hZ2VtZW50KQorMDAwQUM4ICAgICAoYmFzZSAxNikJCVpQU1lTIENPLixMVEQuIChQbGFubmluZyZNYW5hZ2VtZW50KQorCQkJCTEwNiBBY2UgVGVjaG5vIFRvd2VyMQorCQkJCTE5Ny0xNyBLdXJvLURvbmcKKwkJCQlTZW91bCAgMTUyLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS1DOSAgIChoZXgpCQlaYW1iZWVsIEluYworMDAwQUM5ICAgICAoYmFzZSAxNikJCVphbWJlZWwgSW5jCisJCQkJNDU3MDAgTm9ydGhwb3J0IExvb3AgRWFzdAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUNBICAgKGhleCkJCVlPS09ZQU1BIFNIT0tBSSBDTy4sTHRkLgorMDAwQUNBICAgICAoYmFzZSAxNikJCVlPS09ZQU1BIFNIT0tBSSBDTy4sTHRkLgorCQkJCTYtOTYgTWF0c3VtdXJhCisJCQkJS2FuYXphd2EgSXNoaWthd2EgOTIwLTAzNDgKKwkJCQlKQVBBTgorCiswMC0wQS1DQiAgIChoZXgpCQlYUEFLIE1TQSBHcm91cAorMDAwQUNCICAgICAoYmFzZSAxNikJCVhQQUsgTVNBIEdyb3VwCisJCQkJQ2FyZSBvZjogTW9sZXggRmliZXIgT3B0aWNzCisJCQkJNTIyNCBLYXRyaW5lIEF2ZW51ZQorCQkJCURvd25lcnMgR3JvdmUgSUwgNjA1MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUNDICAgKGhleCkJCVdpbm5vdyBOZXR3b3JrcywgSW5jLgorMDAwQUNDICAgICAoYmFzZSAxNikJCVdpbm5vdyBOZXR3b3JrcywgSW5jLgorCQkJCTcwMSBFbWVyc29uIFJvYWQKKwkJCQlTdWl0ZSAyNDQKKwkJCQlTdC4gTG91aXMgTU8gNjMxNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUNEICAgKGhleCkJCVN1bnJpY2ggVGVjaG5vbG9neSBMaW1pdGVkCiswMDBBQ0QgICAgIChiYXNlIDE2KQkJU3VucmljaCBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlVbml0IDEzMDEsIEVhc3Rlcm4gQ2VudHJlLCAxMDY1IEtpbmcncyBSCisJCQkJUXVhcnJ5IEJheSAgCisJCQkJSE9ORyBLT05HCisKKzAwLTBBLUNFICAgKGhleCkJCVJBRElBTlRFQ0gsIElOQy4KKzAwMEFDRSAgICAgKGJhc2UgMTYpCQlSQURJQU5URUNILCBJTkMuCisJCQkJMi0xLCBJTkRVU1RSWSBFQVNUIFJELiAxLCBTQ0lFTkNFLUJBU0VECisJCQkJSU5EVVNUUklBTCBQQVJLCisJCQkJSFNJTiBDSFUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtQ0YgICAoaGV4KQkJUFJPVklERU8gTXVsdGltZWRpYSBDby4gTHRkLgorMDAwQUNGICAgICAoYmFzZSAxNikJCVBST1ZJREVPIE11bHRpbWVkaWEgQ28uIEx0ZC4KKwkJCQk1RiwgTk8uOCwgQUxMRVkgMiwgVFpVLVdFSSBMQU5FLAorCQkJCUNIVU5HIENIRU5HIFJELiwKKwkJCQlIU0lOIFRJRU4gQ0lUWSBUQUlQRUkgSFNJRU4sIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtRDAgICAoaGV4KQkJTmlpZ2F0YSBEZXZlbG9tZW50IENlbnRlciwgIEYuSS5ULiBDby4sIEx0ZC4KKzAwMEFEMCAgICAgKGJhc2UgMTYpCQlOaWlnYXRhIERldmVsb21lbnQgQ2VudGVyLCAgRi5JLlQuIENvLiwgTHRkLgorCQkJCUFrYW5lLU5paWdhdGEgQnVpbGRpbmcgMkYKKwkJCQkxLTYtNyBBdGFnbworCQkJCU5paWdhdGEgTmlpZ2F0YSBQcmVmZWN0dXJlIDk1MC0wOTQ0CisJCQkJSkFQQU4KKworMDAtMEEtRDEgICAoaGV4KQkJTVdTCiswMDBBRDEgICAgIChiYXNlIDE2KQkJTVdTCisJCQkJMTIsIHF1YWkgUGFwYWNpbm8KKwkJCQlOSUNFICAwNjMwMAorCQkJCUZSQU5DRQorCiswMC0wQS1EMiAgIChoZXgpCQlKRVBJQ08gQ29ycG9yYXRpb24KKzAwMEFEMiAgICAgKGJhc2UgMTYpCQlKRVBJQ08gQ29ycG9yYXRpb24KKwkJCQlOaXNoaS1zaGluanl1a3UyLTctMQorCQkJCURhaS1pY2hpIFNlaW1laSBCTERHLgorCQkJCVNoaW5qeXVrdS1rdSBUb2t5byAxNjMtMDcyOQorCQkJCUpBUEFOCisKKzAwLTBBLUQzICAgKGhleCkJCUlOSVRFQ0ggQ28uLCBMdGQKKzAwMEFEMyAgICAgKGJhc2UgMTYpCQlJTklURUNIIENvLiwgTHRkCisJCQkJM0YsIElOSVRFQ0ggQmxkZywgNTU5LTUsCisJCQkJR2VveW8tRG9uZywgU29uZ3BhLUd1CisJCQkJU2VvdWwgU29uZ3BhIDEzOC04MTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtRDQgICAoaGV4KQkJQ29yZUJlbGwgU3lzdGVtcyBJbmMuCiswMDBBRDQgICAgIChiYXNlIDE2KQkJQ29yZUJlbGwgU3lzdGVtcyBJbmMuCisJCQkJSFRWQyAyMzE3IEtBSVNUCisJCQkJMzczLTEgR3VzZW9uZy1kb25nCisJCQkJWXVzZW9uZy1HdSBEYWVqZW9uIDMwNS03MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtRDUgICAoaGV4KQkJQnJhaW5jaGlsZCBFbGVjdHJvbmljIENvLiwgTHRkLgorMDAwQUQ1ICAgICAoYmFzZSAxNikJCUJyYWluY2hpbGQgRWxlY3Ryb25pYyBDby4sIEx0ZC4KKwkJCQlOby4yMDksIENodW5nIFlhbmcgUmQuLAorCQkJCU5hbiBLYW5nIERpc3RyaWN0LAorCQkJCVRhaXBlaSAgMTE1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS1ENiAgIChoZXgpCQlCZWFtUmVhY2ggTmV0d29ya3MKKzAwMEFENiAgICAgKGJhc2UgMTYpCQlCZWFtUmVhY2ggTmV0d29ya3MKKwkJCQk3NTUgTm9ydGggTWF0aGlsZGEgQXZlCisJCQkJU3Vubnl2YWxlIENhbGlmb3JuaWEgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUQ3ICAgKGhleCkJCU9yaWdpbiBFTEVDVFJJQyBDTy4sTFRELgorMDAwQUQ3ICAgICAoYmFzZSAxNikJCU9yaWdpbiBFTEVDVFJJQyBDTy4sTFRELgorCQkJCTEtMTgtMQorCQkJCVRBS0FEQQorCQkJCVRPU0hJTUEgV0FSRCBUT0tZTyBNRVQuIDE3MS04NTU1CisJCQkJSkFQQU4KKworMDAtMEEtRDggICAoaGV4KQkJSVBDc2VydiBUZWNobm9sb2d5IENvcnAuCiswMDBBRDggICAgIChiYXNlIDE2KQkJSVBDc2VydiBUZWNobm9sb2d5IENvcnAuCisJCQkJNmYsTm8uMTA3LFBhbi1Ic2luIFJkCisJCQkJUGFuLUNoaWFvIFRhaXBlaSAyMjA0NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtRDkgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKzAwMEFEOSAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNFIDIyMSA4OAorCQkJCVNXRURFTgorCiswMC0wQS1EQSAgIChoZXgpCQlWaW5kaWNhdG9yIFRlY2hub2xvZ2llcworMDAwQURBICAgICAoYmFzZSAxNikJCVZpbmRpY2F0b3IgVGVjaG5vbG9naWVzCisJCQkJNTMwNyBJbmR1c3RyaWFsIE9ha3MgQmx2ZC4KKwkJCQlTdWl0ZSAxMzAKKwkJCQlBdXN0aW4gVGV4YXMgNzg3MzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLURCICAgKGhleCkJCVNreVBpbG90IE5ldHdvcmssIEluYworMDAwQURCICAgICAoYmFzZSAxNikJCVNreVBpbG90IE5ldHdvcmssIEluYworCQkJCTEzMDEgU2hvcmV3YXkgUm9hZAorCQkJCUJlbG1vbnQgQ0EgOTQwMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLURDICAgKGhleCkJCVJ1Z2dlZENvbSBJbmMuCiswMDBBREMgICAgIChiYXNlIDE2KQkJUnVnZ2VkQ29tIEluYy4KKwkJCQkzMCBXaGl0bW9yZSBSb2FkCisJCQkJV29vZGJyaWRnZSBPbnRhcmlvIEw0TCA3WjQKKwkJCQlDQU5BREEKKworMDAtMEEtREQgICAoaGV4KQkJQWxsd29yeCBDb3JwLgorMDAwQUREICAgICAoYmFzZSAxNikJCUFsbHdvcnggQ29ycC4KKwkJCQkzMDAgTWFpbiBTdHJlZXQKKwkJCQlTdWl0ZSAxMQorCQkJCUVhc3QgUm9jaGVzdGVyIE5ZIDE0NDQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1ERSAgIChoZXgpCQlIYXBweSBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorMDAwQURFICAgICAoYmFzZSAxNikJCUhhcHB5IENvbW11bmljYXRpb24gQ28uLCBMdGQuCisJCQkJNDItMTEgV29uTWktRG9uZworCQkJCVdvbk1pLUd1CisJCQkJQnVjaGVvbi1DaXR5IEt5dW5nR2ktRG8gNDIwLTExMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS1ERiAgIChoZXgpCQlHZW5udW0gQ29ycG9yYXRpb24KKzAwMEFERiAgICAgKGJhc2UgMTYpCQlHZW5udW0gQ29ycG9yYXRpb24KKwkJCQlQLk8gQm94IDQ4OQorCQkJCVN0YXRpb24gQQorCQkJCUJ1cmxpbmd0b24gT250YXJpbyBMN1IgM1kzCisJCQkJQ0FOQURBCisKKzAwLTBBLUUwICAgKGhleCkJCUZ1aml0c3UgU29mdGVrCiswMDBBRTAgICAgIChiYXNlIDE2KQkJRnVqaXRzdSBTb2Z0ZWsKKwkJCQkxMjUwIEVhc3QgQXJxdWVzIEF2ZQorCQkJCU1TIDcyOQorCQkJCVN1bm55dmFsZSBDYSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRTEgICAoaGV4KQkJRUcgVGVjaG5vbG9neQorMDAwQUUxICAgICAoYmFzZSAxNikJCUVHIFRlY2hub2xvZ3kKKwkJCQkyNTAgMTV0aCBTdHJlZXQKKwkJCQlTdWl0ZSA0MDA3CisJCQkJQXRsYW50YSBHQSAzMDMxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRTIgICAoaGV4KQkJQmluYXRvbmUgRWxlY3Ryb25pY3MgSW50ZXJuYXRpb25hbCwgTHRkCiswMDBBRTIgICAgIChiYXNlIDE2KQkJQmluYXRvbmUgRWxlY3Ryb25pY3MgSW50ZXJuYXRpb25hbCwgTHRkCisJCQkJRmxvb3IgMjNBLCA5IERlcyBWb2V1eCBSb2FkIFdlc3QKKwkJCQlIb25nIEtvbmcgQ2hpbmEgCisJCQkJSE9ORyBLT05HCisKKzAwLTBBLUUzICAgKGhleCkJCVlBTkcgTUVJIFRFQ0hOT0xPR1kgQ08uLCBMVEQKKzAwMEFFMyAgICAgKGJhc2UgMTYpCQlZQU5HIE1FSSBURUNITk9MT0dZIENPLiwgTFRECisJCQkJMjEsIEFsbGV5IDEsIExhbmUgMzQyCisJCQkJRnVkZSAxc3QgUm9hZCwgU2hpanIgQ2l0eQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS1FNCAgIChoZXgpCQlXaXN0cm9uIENvcnAuCiswMDBBRTQgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBDb3JwLgorCQkJCTIxRiwgTm8uIDg4LCBTZWN0aW9uIDEsIEhzaW4gVGFpICBXdSBSZC4KKwkJCQlIc2ljaGloCisJCQkJVGFpcGVpICAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLUU1ICAgKGhleCkJCVNjb3R0Q2FyZSBDb3Jwb3JhdGlvbgorMDAwQUU1ICAgICAoYmFzZSAxNikJCVNjb3R0Q2FyZSBDb3Jwb3JhdGlvbgorCQkJCTQ3OTEgV2VzdCAxNTB0aCBTdHJlZXQKKwkJCQlDbGV2ZWxhbmQgT2hpbyA0NDEzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRTYgICAoaGV4KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uIChFQ1MpCiswMDBBRTYgICAgIChiYXNlIDE2KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uIChFQ1MpCisJCQkJTm8uMjIsIEFsbGV5IDM4LCBMYW5lIDkxLCBTZWMuIDEsIE5laSBIdQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS1FNyAgIChoZXgpCQlFTElPUCBTLkEuCiswMDBBRTcgICAgIChiYXNlIDE2KQkJRUxJT1AgUy5BLgorCQkJCUF2ZW5pZGEgZGUgTWFub3RlcmFzLCAzMAorCQkJCU1hZHJpZCAgRS0yODA1MAorCQkJCVNQQUlOCisKKzAwLTBBLUU4ICAgKGhleCkJCUNhdGhheSBSb3h1cyBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLiBMVEQKKzAwMEFFOCAgICAgKGJhc2UgMTYpCQlDYXRoYXkgUm94dXMgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4gTFRECisJCQkJRnVodWEgbWFuc2lvbiBidWlsZGluZyBBL0IgNEYKKwkJCQlkb25nY2hlbmcgZGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwMjcKKwkJCQlDSElOQQorCiswMC0wQS1FOSAgIChoZXgpCQlBaXJWYXN0IFRlY2hub2xvZ3kgSW5jLgorMDAwQUU5ICAgICAoYmFzZSAxNikJCUFpclZhc3QgVGVjaG5vbG9neSBJbmMuCisJCQkJM0YuLTUsIE5vLjYsIExhbmUgNjA5LCBTZWMuIDUsIENob25nc2luIFJkLgorCQkJCVNhbmNob25nIENpdHkgVGFpcGVpIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtRUEgICAoaGV4KQkJQURBTSBFTEVLVFJPTklLIExURC5TVEkuCiswMDBBRUEgICAgIChiYXNlIDE2KQkJQURBTSBFTEVLVFJPTklLIExURC5TVEkuCisJCQkJVVpVTkFZTkEgQ0FELiBDRUxFTksgU09LLiBOTzoxIENBS01BSyAvCisJCQkJSVNUQU5CVUwgIDgxMjYwCisJCQkJVFVSS0VZCisKKzAwLTBBLUVCICAgKGhleCkJCVNoZW56aGVuIFRwLUxpbmsgVGVjaG5vbG9neSBDbzsgTHRkLgorMDAwQUVCICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFRwLUxpbmsgVGVjaG5vbG9neSBDbzsgTHRkLgorCQkJCUhpLVRlY2ggUGFyayBSMS1CMworCQkJCTMvRiwgQmxkZywgIFNoZW5uYW4gUm9hZAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0wQS1FQyAgIChoZXgpCQlLb2F0c3UgR2FzIEtvZ3lvIENvLiwgTHRkLgorMDAwQUVDICAgICAoYmFzZSAxNikJCUtvYXRzdSBHYXMgS29neW8gQ28uLCBMdGQuCisJCQkJMS01LCBEb3lhbWEtY2hvLCBLaXRhLWt1LCBPc2FrYQorCQkJCU9zYWthICA1MzAtODQxMQorCQkJCUpBUEFOCisKKzAwLTBBLUVEICAgKGhleCkJCUhBUlRJTkcgU3lzdGVtcyBHbWJIICYgQ28gS0cKKzAwMEFFRCAgICAgKGJhc2UgMTYpCQlIQVJUSU5HIFN5c3RlbXMgR21iSCAmIENvIEtHCisJCQkJV2lsaGVsbSBIYXJ0aW5nIFN0ci4xCisJCQkJRXNwZWxrYW1wIE5SVy9PV0wgMzIzMzkKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLUVFICAgKGhleCkJCUdDRCBIYXJkLSAmIFNvZnR3YXJlIEdtYkgKKzAwMEFFRSAgICAgKGJhc2UgMTYpCQlHQ0QgSGFyZC0gJiBTb2Z0d2FyZSBHbWJICisJCQkJSGVua2VzdHIuIDc5CisJCQkJRXJsYW5nZW4gQmF5ZXJuIDkxMDUyCisJCQkJR0VSTUFOWQorCiswMC0wQS1FRiAgIChoZXgpCQlPVFJVTSBBU0EKKzAwMEFFRiAgICAgKGJhc2UgMTYpCQlPVFJVTSBBU0EKKwkJCQlCcmF0dGVrbGVpdgorCQkJCUZhZXJ2aWsgIE4tNDgxOAorCQkJCU5PUldBWQorCiswMC0wQS1GMCAgIChoZXgpCQlTSElOLU9IIEVMRUNUUk9OSUNTIENPLiwgTFRELiBSJkQKKzAwMEFGMCAgICAgKGJhc2UgMTYpCQlTSElOLU9IIEVMRUNUUk9OSUNTIENPLiwgTFRELiBSJkQKKwkJCQkjNzI5LTUsIEJvbm9oLURvbmcsIEFuc2FuLUNpdHksIEt5dW5nZ2ktCisJCQkJU0hJTi1PSCBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQlBbnNhbi1DaXR5IEt5dW5nZ2ktRG8gNDI1LTE4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS1GMSAgIChoZXgpCQlDbGFyaXR5IERlc2lnbiwgSW5jLgorMDAwQUYxICAgICAoYmFzZSAxNikJCUNsYXJpdHkgRGVzaWduLCBJbmMuCisJCQkJMTMwMjkgRGFuaWVsc29uIFN0cmVldAorCQkJCVN1aXRlIDEwMAorCQkJCVBvd2F5IENBIDkyMDY0LTg4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUYyICAgKGhleCkJCU5lb0F4aW9tIENvcnAuCiswMDBBRjIgICAgIChiYXNlIDE2KQkJTmVvQXhpb20gQ29ycC4KKwkJCQkxNTIwIE1vbnRhZ3VlIEV4cHJlc3N3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRjMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQUYzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRjQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQUY0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRjUgICAoaGV4KQkJQWlyZ28gTmV0d29ya3MsIEluYy4KKzAwMEFGNSAgICAgKGJhc2UgMTYpCQlBaXJnbyBOZXR3b3JrcywgSW5jLgorCQkJCTkwMCBBcmFzdHJhZGVybyBSZAorCQkJCVBhbG8gQWx0byBDQSA5NDMwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRjYgICAoaGV4KQkJRW1lcnNvbiBDbGltYXRlIFRlY2hub2xvZ2llcyBSZXRhaWwgU29sdXRpb25zLCBJbmMuCiswMDBBRjYgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBDbGltYXRlIFRlY2hub2xvZ2llcyBSZXRhaWwgU29sdXRpb25zLCBJbmMuCisJCQkJMTY0MCBBaXJwb3J0IFJkCisJCQkJU3VpdGUgMTA0CisJCQkJS2VubmVzYXcgR0EgMzAxNDQtNzAzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRjcgICAoaGV4KQkJQnJvYWRjb20gQ29ycC4KKzAwMEFGNyAgICAgKGJhc2UgMTYpCQlCcm9hZGNvbSBDb3JwLgorCQkJCTE2MjE1IEFsdG9uIFBhcmt3YXkKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUY4ICAgKGhleCkJCUFtZXJpY2FuIFRlbGVjYXJlIEluYy4KKzAwMEFGOCAgICAgKGJhc2UgMTYpCQlBbWVyaWNhbiBUZWxlY2FyZSBJbmMuCisJCQkJNzY0MCBHb2xkZW4gVHJpYW5nbGUgRHJpdmUKKwkJCQlFZGVuIFByYWlyaWUgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUY5ICAgKGhleCkJCUhpQ29ubmVjdCwgSW5jLgorMDAwQUY5ICAgICAoYmFzZSAxNikJCUhpQ29ubmVjdCwgSW5jLgorCQkJCVJtICM5MDYsIEhha3NhbiBDb3Ntb3N0ZWwsIDExMAorCQkJCUt3YW5namFuZy1Eb25nLCBLd2FuZ2ppbi1HdSwgU2VvdWwsIEtvcmUKKwkJCQlLd2FuZ2ppbi1HdSBTZW91bCAxNDMtODAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLUZBICAgKGhleCkJCVRyYXZlcnNlIFRlY2hub2xvZ2llcyBBdXN0cmFsaWEKKzAwMEFGQSAgICAgKGJhc2UgMTYpCQlUcmF2ZXJzZSBUZWNobm9sb2dpZXMgQXVzdHJhbGlhCisJCQkJVW5pdCAxMywgMjQwIFN5ZG5leSBSZAorCQkJCUNvYnVyZyBWaWN0b3JpYSAzMDU4CisJCQkJQVVTVFJBTElBCisKKzAwLTBBLUZCICAgKGhleCkJCUFtYnJpIExpbWl0ZWQKKzAwMEFGQiAgICAgKGJhc2UgMTYpCQlBbWJyaSBMaW1pdGVkCisJCQkJMTI2IEdyZXZpbGxlIFN0cmVldAorCQkJCUNoYXRzd29vZCBOU1cgMjA2NworCQkJCUFVU1RSQUxJQQorCiswMC0wQS1GQyAgIChoZXgpCQlDb3JlIFRlYyBDb21tdW5pY2F0aW9ucywgTExDCiswMDBBRkMgICAgIChiYXNlIDE2KQkJQ29yZSBUZWMgQ29tbXVuaWNhdGlvbnMsIExMQworCQkJCTQ5IExlYXZlbndvcnRoIFN0cmVldAorCQkJCVN1aXRlIDIwMAorCQkJCVdhdGVyYnVyeSBDVCAwNjcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRkQgICAoaGV4KQkJVmlraW5nIEVsZWN0cm9uaWMgU2VydmljZXMKKzAwMEFGRCAgICAgKGJhc2UgMTYpCQlWaWtpbmcgRWxlY3Ryb25pYyBTZXJ2aWNlcworCQkJCTYyMCBBbGxlbmRhbGUgUmQKKwkJCQlTdWl0ZSAxNzUKKwkJCQlLaW5nIG9mIFBydXNzaWEgUEEgMTk0MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUZFICAgKGhleCkJCU5vdmFQYWwgTHRkCiswMDBBRkUgICAgIChiYXNlIDE2KQkJTm92YVBhbCBMdGQKKwkJCQlGbG9vciA2CisJCQkJNTggVXhicmlkZ2UgUm9hZAorCQkJCUVhbGluZyBMb25kb24gVzUgMlNUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEEtRkYgICAoaGV4KQkJS2lsY2hoZXJyIEVsZWt0cm9uaWsgQUcKKzAwMEFGRiAgICAgKGJhc2UgMTYpCQlLaWxjaGhlcnIgRWxla3Ryb25payBBRworCQkJCUFlc2NoaXN0cmFzc2UgMjUKKwkJCQlNdWVuc2luZ2VuIEJFIDMxMTAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wQi0wMCAgIChoZXgpCQlGVUpJQU4gU1RBUlQgQ09NUFVURVIgRVFVSVBNRU5UIENPLixMVEQKKzAwMEIwMCAgICAgKGJhc2UgMTYpCQlGVUpJQU4gU1RBUlQgQ09NUFVURVIgRVFVSVBNRU5UIENPLixMVEQKKwkJCQlIT05HIFNIQU4gWVVBTiBST0FEIE5PLjY4IEhPTkdTSEFOLEdVTE9VCisJCQkJRlVaSE9VIEZVSklBTiAzNTAwMDIKKwkJCQlDSElOQQorCiswMC0wQi0wMSAgIChoZXgpCQlEQUlJQ0hJIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDAwQjAxICAgICAoYmFzZSAxNikJCURBSUlDSEkgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJMS0xMS0xMworCQkJCUhpdG90c3V5YSBBZGFjaGkta3UgVG9reW8gMTIxLTg2MzkKKwkJCQlKQVBBTgorCiswMC0wQi0wMiAgIChoZXgpCQlEYWxsbWVpZXIgZWxlY3Ryb25pYworMDAwQjAyICAgICAoYmFzZSAxNikJCURhbGxtZWllciBlbGVjdHJvbmljCisJCQkJV3VlcnpidXJnZXJzdHIuNQorCQkJCVJlZ2Vuc2J1cmcgQmF2YXJpYSA5MzA1OQorCQkJCUdFUk1BTlkKKworMDAtMEItMDMgICAoaGV4KQkJVGFla3dhbmcgSW5kdXN0cmlhbCBDby4sIEx0ZAorMDAwQjAzICAgICAoYmFzZSAxNikJCVRhZWt3YW5nIEluZHVzdHJpYWwgQ28uLCBMdGQKKwkJCQkjMTkxLTEsIEFueWFuZy03RG9uZywgTWFuYW4tR3UKKwkJCQlBbnlhbmctU2kgU291dGggS29yZWEgNDMwLTAxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi0wNCAgIChoZXgpCQlWb2xrdGVrIENvcnBvcmF0aW9uCiswMDBCMDQgICAgIChiYXNlIDE2KQkJVm9sa3RlayBDb3Jwb3JhdGlvbgorCQkJCTRGLiwgTm8uMTkyLCBMaWFuLUNoYW5nIFJvYWQsIENoYW5nLUhvCisJCQkJVGFpcGVpICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTA1ICAgKGhleCkJCVBhY2lmaWMgQnJvYWRiYW5kIE5ldHdvcmtzCiswMDBCMDUgICAgIChiYXNlIDE2KQkJUGFjaWZpYyBCcm9hZGJhbmQgTmV0d29ya3MKKwkJCQk4LTEwIEtlaXRoIENhbXBiZWxsIENvdXJ0CisJCQkJU0NPUkVTQlkgVklDIDMxNzkKKwkJCQlBVVNUUkFMSUEKKworMDAtMEItMDYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMEIwNiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTA3ICAgKGhleCkJCVZveHBhdGggTmV0d29ya3MKKzAwMEIwNyAgICAgKGJhc2UgMTYpCQlWb3hwYXRoIE5ldHdvcmtzCisJCQkJNzYwMEIgQ2FwaXRhbCBvZiBUZXhhcyBIaWdod2F5ICAtIE5vcnRoCisJCQkJU3VpdGUgMjIwCisJCQkJQXVzdGluIFRleGFzIDc4NzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0wOCAgIChoZXgpCQlQaWxsYXIgRGF0YSBTeXN0ZW1zCiswMDBCMDggICAgIChiYXNlIDE2KQkJUGlsbGFyIERhdGEgU3lzdGVtcworCQkJCTEzNzEgTWNDYXJ0aHkgQmx2ZC4KKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMDkgICAoaGV4KQkJSWZvdW5kcnkgU3lzdGVtcyBTaW5nYXBvcmUKKzAwMEIwOSAgICAgKGJhc2UgMTYpCQlJZm91bmRyeSBTeXN0ZW1zIFNpbmdhcG9yZQorCQkJCUJsb2NrIDEsIFVuaXQgMTAxQiwgSW5ub3ZhdGlvbiBDZW50cmUsIDEKKwkJCQk2Mzc3MjIKKwkJCQlTSU5HQVBPUkUKKworMDAtMEItMEEgICAoaGV4KQkJZEJtIE9wdGljcworMDAwQjBBICAgICAoYmFzZSAxNikJCWRCbSBPcHRpY3MKKwkJCQkzMDAgUy4gUHVibGljIFJvYWQKKwkJCQlMYWZheWV0dGUgQ29sb3JhZG8gODAwMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTBCICAgKGhleCkJCUNvcnJlbnQgQ29ycG9yYXRpb24KKzAwMEIwQiAgICAgKGJhc2UgMTYpCQlDb3JyZW50IENvcnBvcmF0aW9uCisJCQkJMTcxMSBXLiBHcmVlbnRyZWUgRHIuCisJCQkJU3VpdGUgMjAxCisJCQkJVGVtcGUgQVogODUyODQtMjcxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMEMgICAoaGV4KQkJQWdpbGUgU3lzdGVtcyBJbmMuCiswMDBCMEMgICAgIChiYXNlIDE2KQkJQWdpbGUgU3lzdGVtcyBJbmMuCisJCQkJNTc1IEt1bXBmIERyaXZlCisJCQkJV2F0ZXJsb28gT250YXJpbyBOMlYgMUszCisJCQkJQ0FOQURBCisKKzAwLTBCLTBEICAgKGhleCkJCUFpcjJVLCBJbmMuCiswMDBCMEQgICAgIChiYXNlIDE2KQkJQWlyMlUsIEluYy4KKwkJCQlOby4gNS0xIElubm92YXRpb24gUmQgMSwgU2NpZW5jZS1iYXNlZCBQCisJCQkJSHNpbi1DaHUgVGFpd2FuIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItMEUgICAoaGV4KQkJVHJhcGV6ZSBOZXR3b3JrcworMDAwQjBFICAgICAoYmFzZSAxNikJCVRyYXBlemUgTmV0d29ya3MKKwkJCQk1NzUzIFcuIExhcyBQb3NpdGFzIEJsdmQKKwkJCQlQbGVhc2FudG9uIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0wRiAgIChoZXgpCQlOeXF1aXN0IEluZHVzdHJpYWwgQ29udHJvbCBCVgorMDAwQjBGICAgICAoYmFzZSAxNikJCU55cXVpc3QgSW5kdXN0cmlhbCBDb250cm9sIEJWCisJCQkJTHVjaHRoYXZlbndlZyAyMAorCQkJCUVpbmRob3ZlbiBOb29yZCBCcmFiYW50IE5MNTY1NyBFQgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBCLTEwICAgKGhleCkJCTExd2F2ZSBUZWNobm9ubG9neSBDby4sTHRkCiswMDBCMTAgICAgIChiYXNlIDE2KQkJMTF3YXZlIFRlY2hub25sb2d5IENvLixMdGQKKwkJCQkxMEYsbm8uMjg1IHNlYy4yICxUaS1EaW5nIEF2ZSxOYWlIdS5UYWlwCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTExICAgKGhleCkJCUhJTUVKSSBBQkMgVFJBRElORyBDTy4sTFRELgorMDAwQjExICAgICAoYmFzZSAxNikJCUhJTUVKSSBBQkMgVFJBRElORyBDTy4sTFRELgorCQkJCTEtOC0yMgorCQkJCUpZT1VIT0tVU0hJTk1BQ0hJCisJCQkJSEpNRUpJIEhZT0dPIDY3MC0wODgzCisJCQkJSkFQQU4KKworMDAtMEItMTIgICAoaGV4KQkJTlVSSSBUZWxlY29tIENvLiwgTHRkLgorMDAwQjEyICAgICAoYmFzZSAxNikJCU5VUkkgVGVsZWNvbSBDby4sIEx0ZC4KKwkJCQlXb29saW0gTGlvbidzIFZhbGxleSBCbGRnLUIgMTB0aCBGCisJCQkJIzM3MS0yOCBLYXNhbi1kb25nCisJCQkJS2V1bS1jaGV1bi1ndSBTZW91bCAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLTEzICAgKGhleCkJCVpFVFJPTiBJTkMKKzAwMEIxMyAgICAgKGJhc2UgMTYpCQlaRVRST04gSU5DCisJCQkJUE8gQm94IDk3MDA0CisJCQkJUkVETU9ORCBXQSA5ODA3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMTQgICAoaGV4KQkJVmlld1NvbmljIENvcnBvcmF0aW9uCiswMDBCMTQgICAgIChiYXNlIDE2KQkJVmlld1NvbmljIENvcnBvcmF0aW9uCisJCQkJMzgxIEJyZWEgQ2FueW9uIFJvYWQKKwkJCQlXYWxudXQgQ2FsaWZvcm5pYSA5MTc4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMTUgICAoaGV4KQkJUGxhdHlwdXMgVGVjaG5vbG9neQorMDAwQjE1ICAgICAoYmFzZSAxNikJCVBsYXR5cHVzIFRlY2hub2xvZ3kKKwkJCQk0LzEgQXRjaGlzb24gU3QKKwkJCQlTdCBMZW9uYXJkcyBOU1cgMjA2NQorCQkJCUFVU1RSQUxJQQorCiswMC0wQi0xNiAgIChoZXgpCQlDb21tdW5pY2F0aW9uIE1hY2hpbmVyeSBDb3Jwb3JhdGlvbgorMDAwQjE2ICAgICAoYmFzZSAxNikJCUNvbW11bmljYXRpb24gTWFjaGluZXJ5IENvcnBvcmF0aW9uCisJCQkJNDAyIEUuIEd1dGllcnJleiBTdC4KKwkJCQlTYW50YSBCYXJiYXJhIENBIDkzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0xNyAgIChoZXgpCQlNS1MgSW5zdHJ1bWVudHMKKzAwMEIxNyAgICAgKGJhc2UgMTYpCQlNS1MgSW5zdHJ1bWVudHMKKwkJCQk2NTEgTG93ZWxsIFN0cmVldAorCQkJCU1ldGh1ZW4gTUEgMDE4NDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTE4ICAgKGhleCkJCVBSSVZBVEUKKzAwMEIxOCAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMEItMTkgICAoaGV4KQkJVmVybmllciBOZXR3b3JrcywgSW5jLgorMDAwQjE5ICAgICAoYmFzZSAxNikJCVZlcm5pZXIgTmV0d29ya3MsIEluYy4KKwkJCQk0OTAgRS4gTWlkZGxlZmllbGQgUm9hZAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTFBICAgKGhleCkJCUluZHVzdHJpYWwgRGVmZW5kZXIsIEluYy4KKzAwMEIxQSAgICAgKGJhc2UgMTYpCQlJbmR1c3RyaWFsIERlZmVuZGVyLCBJbmMuCisJCQkJMTYgQ2hlc3RudXQgU3RyZWV0CisJCQkJU3VpdGUgMzAwCisJCQkJRm94Ym9yb3VnaCBNQSAwMjAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMUIgICAoaGV4KQkJU3lzdHJvbml4LCBJbmMuCiswMDBCMUIgICAgIChiYXNlIDE2KQkJU3lzdHJvbml4LCBJbmMuCisJCQkJOTM5IEVkaXNvbiBTdC4KKwkJCQlTYWx0IExha2UgQ2l0eSBVdGFoIDg0MTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0xQyAgIChoZXgpCQlTSUJDTyBidgorMDAwQjFDICAgICAoYmFzZSAxNikJCVNJQkNPIGJ2CisJCQkJU2Nob29uaG91dCA0NgorCQkJCUV0dGVuLUxldXIgTkIgNDg3MiBNRQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBCLTFEICAgKGhleCkJCUxheWVyWmVybyBQb3dlciBTeXN0ZW1zLCBJbmMuCiswMDBCMUQgICAgIChiYXNlIDE2KQkJTGF5ZXJaZXJvIFBvd2VyIFN5c3RlbXMsIEluYy4KKwkJCQkzNTU5IFRvd25sZXkgUm9hZAorCQkJCVNoYWtlciBIZWlnaHRzIE9IIDQ0MTIyLTUxNTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTFFICAgKGhleCkJCUtBUFBBIG9wdG8tZWxlY3Ryb25pY3MgR21iSAorMDAwQjFFICAgICAoYmFzZSAxNikJCUtBUFBBIG9wdG8tZWxlY3Ryb25pY3MgR21iSAorCQkJCUtsZWluZXMgRmVsZCA2CisJCQkJMzcxMzAKKwkJCQlHbGVpY2hlbiBOaWVkZXJzYWNoc2VuIAorCQkJCUdFUk1BTlkKKworMDAtMEItMUYgICAoaGV4KQkJSSBDT04gQ29tcHV0ZXIgQ28uCiswMDBCMUYgICAgIChiYXNlIDE2KQkJSSBDT04gQ29tcHV0ZXIgQ28uCisJCQkJM0YsIE5vLiAxNDIgLCBIc2luIE1pbmcgUm9hZAorCQkJCU5laWh1IFRhaXBlaSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTIwICAgKGhleCkJCUhpcmF0YSBjb3Jwb3JhdGlvbgorMDAwQjIwICAgICAoYmFzZSAxNikJCUhpcmF0YSBjb3Jwb3JhdGlvbgorCQkJCTExMSBIaXRvdHN1Z2ksIFVla2ksCisJCQkJS2Ftb3RvIEt1bWFtb3RvIDg2MS0wMTk4CisJCQkJSkFQQU4KKworMDAtMEItMjEgICAoaGV4KQkJRy1TdGFyIENvbW11bmljYXRpb25zIEluYy4KKzAwMEIyMSAgICAgKGJhc2UgMTYpCQlHLVN0YXIgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTVGLCA2OS0xMCwgU2VjLiAyLCBDaHVuZyBDaGVuZyBFYXN0IFJvYWQKKwkJCQlUYWlwZWkgSHNpZW4gIDI1MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItMjIgICAoaGV4KQkJRW52aXJvbm1lbnRhbCBTeXN0ZW1zIGFuZCBTZXJ2aWNlcworMDAwQjIyICAgICAoYmFzZSAxNikJCUVudmlyb25tZW50YWwgU3lzdGVtcyBhbmQgU2VydmljZXMKKwkJCQkyMCBDb3VuY2lsIFN0cmVldAorCQkJCUhhd3Rob3JuIEVhc3QgVmljdG9yaWEgMzEyMworCQkJCUFVU1RSQUxJQQorCiswMC0wQi0yMyAgIChoZXgpCQlTaWVtZW5zIFN1YnNjcmliZXIgTmV0d29ya3MKKzAwMEIyMyAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIFN1YnNjcmliZXIgTmV0d29ya3MKKwkJCQk0ODQ5IEFscGhhIFJvYWQKKwkJCQlEYWxsYXMgVGV4YXMgNzQyNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTI0ICAgKGhleCkJCUFpckxvZ2ljCiswMDBCMjQgICAgIChiYXNlIDE2KQkJQWlyTG9naWMKKwkJCQk4MDctMSwgQnVuZGFuZ3RlY2hub3BhcmsgRCwgMTUxLAorCQkJCVlhdGFwLURvbmcsIEJ1bmRhbmctS3UKKwkJCQlTdW5nbmFtLVNpIEt5dW5na2ktRG8gNDYzLTc2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi0yNSAgIChoZXgpCQlBZWx1cm9zCiswMDBCMjUgICAgIChiYXNlIDE2KQkJQWVsdXJvcworCQkJCTIwMSBTYW4gQW50b25pbyBDaXJjbGUgIzE3MgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTI2ICAgKGhleCkJCVdldGVrIENvcnBvcmF0aW9uCiswMDBCMjYgICAgIChiYXNlIDE2KQkJV2V0ZWsgQ29ycG9yYXRpb24KKwkJCQk0RiwgTk8uMTcsIEt1YW5mdSBOLiBSb2FkCisJCQkJSHNpbiBDaHUgSW5kdXN0cmlhbCBQYXJrIEhzaW4gQ2h1IDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItMjcgICAoaGV4KQkJU2Npb24gQ29ycG9yYXRpb24KKzAwMEIyNyAgICAgKGJhc2UgMTYpCQlTY2lvbiBDb3Jwb3JhdGlvbgorCQkJCTgyIFdvcm1hbidzIE1pbGwgQ291cnQKKwkJCQlTdWl0ZSBICisJCQkJRnJlZGVyaWNrIE1EIDIxNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0yOCAgIChoZXgpCQlRdWF0ZWNoIEluYy4KKzAwMEIyOCAgICAgKGJhc2UgMTYpCQlRdWF0ZWNoIEluYy4KKwkJCQk2NjIgV29sZiBMZWRnZXMgUGt3eS4KKwkJCQlBa3JvbiBPSCA0NDMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMjkgICAoaGV4KQkJTFMoTEcpIEluZHVzdHJpYWwgU3lzdGVtcyBjby4sTHRkCiswMDBCMjkgICAgIChiYXNlIDE2KQkJTFMoTEcpIEluZHVzdHJpYWwgU3lzdGVtcyBjby4sTHRkCisJCQkJNTMzIEhvZ3llLWRvbmcsIERvbmdhbi1ndQorCQkJCUFueWFuZy1zaSBHeWVvbmdnaS1kbyAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItMkEgICAoaGV4KQkJSE9XVEVMIENvLiwgTHRkLgorMDAwQjJBICAgICAoYmFzZSAxNikJCUhPV1RFTCBDby4sIEx0ZC4KKwkJCQlKLUNPTSBCZC4gNEYsIDEyNC00IE9KRU9OLURPTkcKKwkJCQlVSVdBTkctU0hJIEtZT1VOR0dJLURPIDQzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItMkIgICAoaGV4KQkJSE9TVE5FVCBDT1JQT1JBVElPTgorMDAwQjJCICAgICAoYmFzZSAxNikJCUhPU1RORVQgQ09SUE9SQVRJT04KKwkJCQkxMEYtMTIsTm8uIDEyIExhbmUgNjA5LCBTZWMuNSxDaHVuZ2hzaW4KKwkJCQlTYW5jaHVuZyBUYWlwZWkgSHNpZW4gMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi0yQyAgIChoZXgpCQlFaWtpIEluZHVzdHJpYWwgQ28uIEx0ZC4KKzAwMEIyQyAgICAgKGJhc2UgMTYpCQlFaWtpIEluZHVzdHJpYWwgQ28uIEx0ZC4KKwkJCQk0LTEyIE1hbnphaS1jaG8sIEtpdGEta3UKKwkJCQlPc2FrYSAgNTMwCisJCQkJSkFQQU4KKworMDAtMEItMkQgICAoaGV4KQkJRGFuZm9zcyBJbmMuCiswMDBCMkQgICAgIChiYXNlIDE2KQkJRGFuZm9zcyBJbmMuCisJCQkJNzk0MSBDb3Jwb3JhdGUgRHIKKwkJCQlCYWx0aW1vcmUgTUQgMjEyMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTJFICAgKGhleCkJCUNhbC1Db21wIEVsZWN0cm9uaWNzIChUaGFpbGFuZCkgUHVibGljIENvbXBhbnkgTGltaXRlZCBUYWlwZQorMDAwQjJFICAgICAoYmFzZSAxNikJCUNhbC1Db21wIEVsZWN0cm9uaWNzIChUaGFpbGFuZCkgUHVibGljIENvbXBhbnkgTGltaXRlZCBUYWlwZQorCQkJCTlGLCA5OSwgTmFuLUtpbmcgRSBSZC4sIFNlYy4gNS4KKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItMkYgICAoaGV4KQkJYnBsYW4gR21iSAorMDAwQjJGICAgICAoYmFzZSAxNikJCWJwbGFuIEdtYkgKKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDIzCisJCQkJU3RlaW5iYWNoIDYxNDQ5CisJCQkJR0VSTUFOWQorCiswMC0wQi0zMCAgIChoZXgpCQlCZWlqaW5nIEdvbmd5ZSBTY2llbmNlICYgVGVjaG5vbG9neSBDby4sTHRkCiswMDBCMzAgICAgIChiYXNlIDE2KQkJQmVpamluZyBHb25neWUgU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCVVuaXQgRC4xNy9FLFNoZW5sYW5odWF0aW5nIG1pZCBSb2FkIE5vLjYKKwkJCQlCZWlqaW5nICAxMDAwMjkKKwkJCQlDSElOQQorCiswMC0wQi0zMSAgIChoZXgpCQlZYW50YWkgWmhpWWFuZyBTY2llbnRpZmljIGFuZCB0ZWNobm9sb2d5IGluZHVzdHJ5IENPLiwgTFRECiswMDBCMzEgICAgIChiYXNlIDE2KQkJWWFudGFpIFpoaVlhbmcgU2NpZW50aWZpYyBhbmQgdGVjaG5vbG9neSBpbmR1c3RyeSBDTy4sIExURAorCQkJCTVGLTQsIE5PLiA2NCwgR29uZy1KaWFuIFJkLgorCQkJCUhzaS1DaGloIENpdHkgVGFpcGVpIENvdW50eSAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTMyICAgKGhleCkJCVZPUk1FVFJJQywgSU5DLgorMDAwQjMyICAgICAoYmFzZSAxNikJCVZPUk1FVFJJQywgSU5DLgorCQkJCTIwNjAgQ09SUE9SQVRFIENUCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTMzICAgKGhleCkJCVZpdmF0bworMDAwQjMzICAgICAoYmFzZSAxNikJCVZpdmF0bworCQkJCTEyNjEwIEVhc3QgTWlyYWJlYXUgUGFya3dheQorCQkJCVNwb2thbmUgV0EgOTkyMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTM0ICAgKGhleCkJCVNoYW5nSGFpIEJyb2FkYmFuZCBUZWNobm9sb2dpZXMgQ08uTFRECiswMDBCMzQgICAgIChiYXNlIDE2KQkJU2hhbmdIYWkgQnJvYWRiYW5kIFRlY2hub2xvZ2llcyBDTy5MVEQKKwkJCQkxN0YsTm8uMTIyLEh1YW5nWGluZyBSb2FkCisJCQkJU2hhbmdIYWkgIDIwMDA5MAorCQkJCUNISU5BCisKKzAwLTBCLTM1ICAgKGhleCkJCVF1YWQgQml0IFN5c3RlbSBjby4sIEx0ZC4KKzAwMEIzNSAgICAgKGJhc2UgMTYpCQlRdWFkIEJpdCBTeXN0ZW0gY28uLCBMdGQuCisJCQkJNDAyIEdheWFuZyBUZWNobm90b3duCisJCQkJMTQ4NyBHYXlhbmcgMyBkb25nCisJCQkJU2VvdWwgS2FuZ3Nlb2d1IDE1Ny04MTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItMzYgICAoaGV4KQkJUHJvZHVjdGl2aXR5IFN5c3RlbXMsIEluYy4KKzAwMEIzNiAgICAgKGJhc2UgMTYpCQlQcm9kdWN0aXZpdHkgU3lzdGVtcywgSW5jLgorCQkJCTE3MTEgQW5hbG9nIERyaXZlCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MS0xOTQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0zNyAgIChoZXgpCQlNQU5VRkFDVFVSRSBERVMgTU9OVFJFUyBST0xFWCBTQQorMDAwQjM3ICAgICAoYmFzZSAxNikJCU1BTlVGQUNUVVJFIERFUyBNT05UUkVTIFJPTEVYIFNBCisJCQkJTEEgSEFVVEUtUk9VVEUgODIKKwkJCQlCSUVMLUJJRU5ORSBCRSAyNTAyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEItMzggICAoaGV4KQkJS251ZXJyIEFHCiswMDBCMzggICAgIChiYXNlIDE2KQkJS251ZXJyIEFHCisJCQkJTWFyaWFraXJjaGVuZXIgU3RyYXNzZSAzOAorCQkJCUFybnN0b3JmIEJhdmFyaWEgOTQ0MjQKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLTM5ICAgKGhleCkJCUtlaXNva3UgR2lrZW4gQ28uLEx0ZC4KKzAwMEIzOSAgICAgKGJhc2UgMTYpCQlLZWlzb2t1IEdpa2VuIENvLixMdGQuCisJCQkJMi0xMi0yICwgQ2hpZ2FzYWtpLW1pbmFtaQorCQkJCVRzdXp1a2kta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjQtMDAzNworCQkJCUpBUEFOCisKKzAwLTBCLTNBICAgKGhleCkJCVF1U3RyZWFtIENvcnBvcmF0aW9uCiswMDBCM0EgICAgIChiYXNlIDE2KQkJUXVTdHJlYW0gQ29ycG9yYXRpb24KKwkJCQkzMzA1IEJyZWNraW5yaWRnZSBCbHZkLgorCQkJCVN1aXRlIDExOAorCQkJCUR1bHV0aCBHZW9yZ2lhIDMwMDk2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0zQiAgIChoZXgpCQlkZXZvbG8gQUcKKzAwMEIzQiAgICAgKGJhc2UgMTYpCQlkZXZvbG8gQUcKKwkJCQlTb25uZW53ZWcgMTEKKwkJCQlBYWNoZW4gTlJXIDUyMDcwCisJCQkJR0VSTUFOWQorCiswMC0wQi0zQyAgIChoZXgpCQlDeWduYWwgSW50ZWdyYXRlZCBQcm9kdWN0cywgSW5jLgorMDAwQjNDICAgICAoYmFzZSAxNikJCUN5Z25hbCBJbnRlZ3JhdGVkIFByb2R1Y3RzLCBJbmMuCisJCQkJNDMwMSBXZXN0YmFuayBEcml2ZQorCQkJCVN1aXRlIEItMTAwCisJCQkJQXVzdGluIFRYIDc4NzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0zRCAgIChoZXgpCQlDT05UQUwgT0sgTHRkLgorMDAwQjNEICAgICAoYmFzZSAxNikJCUNPTlRBTCBPSyBMdGQuCisJCQkJRnJhbmEgTXJhemEgMi8yODkKKwkJCQlQLk8uQm94IEItMzQKKwkJCQlaaWxpbmEgIDAxMTI0CisJCQkJU0xPVkFLSUEKKworMDAtMEItM0UgICAoaGV4KQkJQml0dFdhcmUsIEluYworMDAwQjNFICAgICAoYmFzZSAxNikJCUJpdHRXYXJlLCBJbmMKKwkJCQkzMSBCIFNvdXRoIE1haW4gU3QKKwkJCQlDb25jb3JkIE5IIDAzMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0zRiAgIChoZXgpCQlBbnRob2xvZ3kgU29sdXRpb25zIEluYy4KKzAwMEIzRiAgICAgKGJhc2UgMTYpCQlBbnRob2xvZ3kgU29sdXRpb25zIEluYy4KKwkJCQkxNzIyIFJpbmd3b29kIEF2ZS4KKwkJCQlTdWl0ZSAyNTAKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNDAgICAoaGV4KQkJT3BOZXh0IEluYy4KKzAwMEI0MCAgICAgKGJhc2UgMTYpCQlPcE5leHQgSW5jLgorCQkJCTEgQ2hyaXN0b3BoZXIgV2F5CisJCQkJRWF0b250b3duIE5ldyBKZXJzZXkgMDc3MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTQxICAgKGhleCkJCUluZy4gQnVlcm8gRHIuIEJldXRsaGF1c2VyCiswMDBCNDEgICAgIChiYXNlIDE2KQkJSW5nLiBCdWVybyBEci4gQmV1dGxoYXVzZXIKKwkJCQlSb2VtZXJ3ZWcgNAorCQkJCUdyYXNzYXUgRC04MzIyNAorCQkJCUdFUk1BTlkKKworMDAtMEItNDIgICAoaGV4KQkJY29tbWF4IENvLiwgTHRkLgorMDAwQjQyICAgICAoYmFzZSAxNikJCWNvbW1heCBDby4sIEx0ZC4KKwkJCQk1MTMtMTEsIFNhbmdkYWV3b24tRG9uZywgSnVuZ3dvbi1LdQorCQkJCVN1bmduYW0tQ2l0eSBLeXVuZ2dpLURvIDQ2Mi0xMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItNDMgICAoaGV4KQkJTWljcm9zY2FuIFN5c3RlbXMsIEluYy4KKzAwMEI0MyAgICAgKGJhc2UgMTYpCQlNaWNyb3NjYW4gU3lzdGVtcywgSW5jLgorCQkJCTEyMDEgU1cgN3RoIFN0cmVldAorCQkJCVJlbnRvbiBXQSA5ODA1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNDQgICAoaGV4KQkJQ29uY29yZCBJRGVhIENvcnAuCiswMDBCNDQgICAgIChiYXNlIDE2KQkJQ29uY29yZCBJRGVhIENvcnAuCisJCQkJNDExOCAxNHRoIEF2ZS4sIFVuaXQgNAorCQkJCU1hcmtoYW0gT250YXJpbyBMM1IgMEozCisJCQkJQ0FOQURBCisKKzAwLTBCLTQ1ICAgKGhleCkJCUNpc2NvCiswMDBCNDUgICAgIChiYXNlIDE2KQkJQ2lzY28KKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNDYgICAoaGV4KQkJQ2lzY28KKzAwMEI0NiAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi00NyAgIChoZXgpCQlBZHZhbmNlZCBFbmVyZ3kKKzAwMEI0NyAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBFbmVyZ3kKKwkJCQkxNjI1IFNoYXJwIFBvaW50IERyaXZlCisJCQkJRm9ydCBDb2xsaW5zIENvbG9yYWRvIDgwNTI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi00OCAgIChoZXgpCQlzb2ZyZWwKKzAwMEI0OCAgICAgKGJhc2UgMTYpCQlzb2ZyZWwKKwkJCQkyIHJ1ZSBkdSBwbGVzc2lzCisJCQkJdmVybiBzdXIgc2VpY2hlIGlsbGUgZXQgdmlsYWluZSAzNTc3MAorCQkJCUZSQU5DRQorCiswMC0wQi00OSAgIChoZXgpCQlSRi1MaW5rIFN5c3RlbSBJbmMuCiswMDBCNDkgICAgIChiYXNlIDE2KQkJUkYtTGluayBTeXN0ZW0gSW5jLgorCQkJCU5vLjYsIE5hbi1LZSA1dGggUmQuLCBIc2luLVNoaSwKKwkJCQlUYWluYW4gQ291bnR5ICA3NDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTRBICAgKGhleCkJCVZpc2ltZXRyaWNzIChVSykgTHRkCiswMDBCNEEgICAgIChiYXNlIDE2KQkJVmlzaW1ldHJpY3MgKFVLKSBMdGQKKwkJCQlTa3llIEhvdXNlCisJCQkJU2t5ZSBSb2FkCisJCQkJUHJlc3R3aWNrIEF5cnNoaXJlIEtBOSAyVEEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQi00QiAgIChoZXgpCQlWSVNJT1dBVkUgU0EKKzAwMEI0QiAgICAgKGJhc2UgMTYpCQlWSVNJT1dBVkUgU0EKKwkJCQlSb3V0ZSBkZSBsYSBQaWVycmUgMjIKKwkJCQlWSUNUT1JJQSBIT1VTRQorCQkJCUVDVUJMRU5TIFZBVUQgQ0gtMTAyNAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBCLTRDICAgKGhleCkJCUNsYXJpb24gKE0pIFNkbiBCaGQKKzAwMEI0QyAgICAgKGJhc2UgMTYpCQlDbGFyaW9uIChNKSBTZG4gQmhkCisJCQkJUGhhc2UgMworCQkJCUZJWgorCQkJCUJheWFuIExlcGFzIFBlbmFuZyAxMTkwMAorCQkJCU1BTEFZU0lBCisKKzAwLTBCLTREICAgKGhleCkJCUVtdXplZAorMDAwQjREICAgICAoYmFzZSAxNikJCUVtdXplZAorCQkJCTQ2NzUwIExha2V2aWV3IEJvdWxldmFyZAorCQkJCUZyZW1vbnQgQ2FsaWZvcm5pYSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNEUgICAoaGV4KQkJVmVydGV4UlNJLCBHZW5lcmFsIER5bmFtaWNzIFNhdENPTSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEI0RSAgICAgKGJhc2UgMTYpCQlWZXJ0ZXhSU0ksIEdlbmVyYWwgRHluYW1pY3MgU2F0Q09NIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE5MTUgRS4gSGFycmlzb24gUm9hZAorCQkJCUxvbmd2aWV3IFRYIDc1NjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi00RiAgIChoZXgpCQlWZXJpZm9uZSwgSU5DLgorMDAwQjRGICAgICAoYmFzZSAxNikJCVZlcmlmb25lLCBJTkMuCisJCQkJMjQ1NSBBdWd1c3RpbmUgRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDYWxpZm9ybmlhIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi01MCAgIChoZXgpCQlPeHlnbmV0CiswMDBCNTAgICAgIChiYXNlIDE2KQkJT3h5Z25ldAorCQkJCTQwMiBFLiBDYXJyaWxsbyBTdC4KKwkJCQlTdWl0ZSBDCisJCQkJU2FudGEgQmFyYmFyYSBDQSA5MzEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNTEgICAoaGV4KQkJTWljZXRlayBJbnRlcm5hdGlvbmFsIEluYy4KKzAwMEI1MSAgICAgKGJhc2UgMTYpCQlNaWNldGVrIEludGVybmF0aW9uYWwgSW5jLgorCQkJCTdGLTEsICMyMzcsIFNlYy4gMSwgd3UgQ2h1YW4gVy4gUmQuCisJCQkJVGFpY2h1bmcgIDQwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItNTIgICAoaGV4KQkJSk9ZTUFYIEVMRUNUUk9OSUNTIENPLiBMVEQuCiswMDBCNTIgICAgIChiYXNlIDE2KQkJSk9ZTUFYIEVMRUNUUk9OSUNTIENPLiBMVEQuCisJCQkJTm8uNSBEb25nLVl1YW4gUm9hZCAyLCBKaG9uZy1MaSBJbmR1c3RyaWFsIFBhcmssCisJCQkJSmhvbmctTGkgQ2l0eSwgCisJCQkJVGFvLVl1YW4gIDMyMDYzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi01MyAgIChoZXgpCQlJTklUSVVNIENvLiwgTHRkLgorMDAwQjUzICAgICAoYmFzZSAxNikJCUlOSVRJVU0gQ28uLCBMdGQuCisJCQkJOEYuIEdvbmdkdWNrIEJsZGcuIDI3Mi02IFNlb2h5dW4gQnVuZGFuZworCQkJCVN1bmduYW0gS3l1bmdnaSA0NjMtODI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLTU0ICAgKGhleCkJCUJpVE1JQ1JPIE5ldHdvcmtzLCBJbmMuCiswMDBCNTQgICAgIChiYXNlIDE2KQkJQmlUTUlDUk8gTmV0d29ya3MsIEluYy4KKwkJCQk0NTU1MCBOb3J0aHBvcnQgTG9vcCBFYXN0CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNTUgICAoaGV4KQkJQURJbnN0cnVtZW50cworMDAwQjU1ICAgICAoYmFzZSAxNikJCUFESW5zdHJ1bWVudHMKKwkJCQlQLiBPLiBCb3ggNTg3CisJCQkJRHVuZWRpbiBPdGFnbyA5MDAxCisJCQkJTkVXIFpFQUxBTkQKKworMDAtMEItNTYgICAoaGV4KQkJQ3liZXJuZXRpY3MKKzAwMEI1NiAgICAgKGJhc2UgMTYpCQlDeWJlcm5ldGljcworCQkJCTExMSBDeWJlcm5ldGljcyBXYXkKKwkJCQlZb3JrdG93biBWQSAyMzY5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNTcgICAoaGV4KQkJU2lsaWNvbiBMYWJvcmF0b3JpZXMKKzAwMEI1NyAgICAgKGJhc2UgMTYpCQlTaWxpY29uIExhYm9yYXRvcmllcworCQkJCTcwMDAgVy4gV2lsbGlhbSBDYW5ub24gRHIuCisJCQkJQmxkZy4xLCBTdWl0ZSAyMDAKKwkJCQlBdXN0aW4gVFggNzg3MzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTU4ICAgKGhleCkJCUFzdHJvbmF1dGljcyBDLkEgIExURAorMDAwQjU4ICAgICAoYmFzZSAxNikJCUFzdHJvbmF1dGljcyBDLkEgIExURAorCQkJCTIzIGhheWFya29uIHN0cmVldAorCQkJCUJuZWkgQnJhayAgNTEyNjEKKwkJCQlJU1JBRUwKKworMDAtMEItNTkgICAoaGV4KQkJU2NyaXB0UHJvLCBMTEMKKzAwMEI1OSAgICAgKGJhc2UgMTYpCQlTY3JpcHRQcm8sIExMQworCQkJCTU4MjggUmVlZHMgUmQuCisJCQkJTWlzc2lvbiBLYW5zYXMgNjYyMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTVBICAgKGhleCkJCUh5cGVyRWRnZQorMDAwQjVBICAgICAoYmFzZSAxNikJCUh5cGVyRWRnZQorCQkJCTMzMyBQaWVyY2UgUm9hZCBTdWl0ZSAjMjAwCisJCQkJSXRhc2NhIElMIDYwMTQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi01QiAgIChoZXgpCQlSaW5jb24gUmVzZWFyY2ggQ29ycG9yYXRpb24KKzAwMEI1QiAgICAgKGJhc2UgMTYpCQlSaW5jb24gUmVzZWFyY2ggQ29ycG9yYXRpb24KKwkJCQkxMDEgTi4gV2lsbW90IFJkLgorCQkJCVN1aXRlIDEwMQorCQkJCVR1Y3NvbiBBWiA4NTcxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNUMgICAoaGV4KQkJTmV3dGVjaCBDby4sTHRkCiswMDBCNUMgICAgIChiYXNlIDE2KQkJTmV3dGVjaCBDby4sTHRkCisJCQkJSy1CbGRnIDEtNy03IFNoaWJhZGFpbW9uIE1pbmF0by1rdQorCQkJCVRva3lvICAxMDUtMDAxMgorCQkJCUpBUEFOCisKKzAwLTBCLTVEICAgKGhleCkJCUZVSklUU1UgTElNSVRFRAorMDAwQjVEICAgICAoYmFzZSAxNikJCUZVSklUU1UgTElNSVRFRAorCQkJCU11c2FzaGkta29zdWdpIFRvd2VyIFBsYWNlIEJsZGcuLCA0MDMKKwkJCQlLb3N1Z2ktY2hvIDEtY2hvbWUsTmFrYWhhcmEta3UKKwkJCQlLYXdhc2FraSBLYW5hZ2F3YSAKKwkJCQlKQVBBTgorCiswMC0wQi01RSAgIChoZXgpCQlBdWRpbyBFbmdpbmVlcmluZyBTb2NpZXR5IEluYy4KKzAwMEI1RSAgICAgKGJhc2UgMTYpCQlBdWRpbyBFbmdpbmVlcmluZyBTb2NpZXR5IEluYy4KKwkJCQk2MCBFYXN0IDQybmQgU3RyZWV0LCBTdWl0ZSAjMjUyMAorCQkJCU5ldyBZb3JrIE5ZIDEwMTY1LTI1MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTVGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEI1RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTYwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEI2MCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTYxICAgKGhleCkJCUZyaWVkcmljaCBMdXR6ZSBHbWJIICZDby4KKzAwMEI2MSAgICAgKGJhc2UgMTYpCQlGcmllZHJpY2ggTHV0emUgR21iSCAmQ28uCisJCQkJQnJ1Y2t3aWVzZW5zdHJhc3NlIDE3LTE5CisJCQkJV2VpbnN0YWR0LUdyb3NzaGVwcGFjaCBCVyA3MTM4NAorCQkJCUdFUk1BTlkKKworMDAtMEItNjIgICAoaGV4KQkJSW5nZW5pZXVyYnVlcm8gZnVlciBFbGVrdHJvbmlrZGVzaWduIEluZ28gTW9obmVuCiswMDBCNjIgICAgIChiYXNlIDE2KQkJSW5nZW5pZXVyYnVlcm8gZnVlciBFbGVrdHJvbmlrZGVzaWduIEluZ28gTW9obmVuCisJCQkJU3RpY2ggMzAgZAorCQkJCTUyMjQ5IEVzY2h3ZWlsZXIgCisJCQkJR0VSTUFOWQorCiswMC0wQi02MyAgIChoZXgpCQlLYWxlaWRlc2NhcGUKKzAwMEI2MyAgICAgKGJhc2UgMTYpCQlLYWxlaWRlc2NhcGUKKwkJCQlPbmUgRmlyc3QgU3RyZWV0LCBTdWl0ZSBTaXh0ZWVuCisJCQkJTG9zIEFsdG9zIENBIDk0MDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi02NCAgIChoZXgpCQlLaWViYWNrICYgUGV0ZXIgR21iSCAmIENvIEtHCiswMDBCNjQgICAgIChiYXNlIDE2KQkJS2llYmFjayAmIFBldGVyIEdtYkggJiBDbyBLRworCQkJCVRlbXBlbGhvZmVyIFdlZyA1MAorCQkJCUJlcmxpbiAgMTIzNDcKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLTY1ICAgKGhleCkJCVN5LkEuQy4gc3JsCiswMDBCNjUgICAgIChiYXNlIDE2KQkJU3kuQS5DLiBzcmwKKwkJCQl2aWEgQ2Fib3RvIDE5LzEKKwkJCQlUcmllc3RlICAzNDE0NworCQkJCUlUQUxZCisKKzAwLTBCLTY2ICAgKGhleCkJCVRlcmFsaW5rIENvbW11bmljYXRpb25zCiswMDBCNjYgICAgIChiYXNlIDE2KQkJVGVyYWxpbmsgQ29tbXVuaWNhdGlvbnMKKwkJCQlDYXBpdGFsIFRvd2VyIDE1RiwKKwkJCQk5MzEgRG9vbnNhbi1kb25nLCBTZW8tZ3UKKwkJCQlEYWVqZW9uICAzMDIxMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItNjcgICAoaGV4KQkJVG9wdmlldyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDBCNjcgICAgIChiYXNlIDE2KQkJVG9wdmlldyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJTm8uIDgsV3UtQ2h1YW4gUm9hZCxXdSBLdSBJbmR1c3RyaWFsIFBhcgorCQkJCVd1IEt1IEhzaWFuZyxUYWlwZWkgSHNpZW4sICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTY4ICAgKGhleCkJCUFkZHZhbHVlIENvbW11bmljYXRpb25zIFB0ZSBMdGQKKzAwMEI2OCAgICAgKGJhc2UgMTYpCQlBZGR2YWx1ZSBDb21tdW5pY2F0aW9ucyBQdGUgTHRkCisJCQkJMjgsVEFJIFNFTkcgU1RSRUVUICMwNi0wMgorCQkJCVNpbmdhcG9yZSAgNTM0MTA2CisJCQkJU0lOR0FQT1JFCisKKzAwLTBCLTY5ICAgKGhleCkJCUZyYW5rZSBGaW5sYW5kIE95CiswMDBCNjkgICAgIChiYXNlIDE2KQkJRnJhbmtlIEZpbmxhbmQgT3kKKwkJCQlWYXJ0aW9rdWphIDEKKwkJCQlOQUFSQUpBUlZJIE5BQVJBSkFSVkkgRklOLTc2ODUwCisJCQkJRklOTEFORAorCiswMC0wQi02QSAgIChoZXgpCQlBc2lhcm9jayBJbmNvcnBvcmF0aW9uCiswMDBCNkEgICAgIChiYXNlIDE2KQkJQXNpYXJvY2sgSW5jb3Jwb3JhdGlvbgorCQkJCVAuTy4gQm94OTU3LCBPZmZzaG9yZSBJbmNvcnBvcmF0aW9ucyBDZW4KKwkJCQlSb2FkIFRvd24gVG9ydG9sYSAKKwkJCQlWSVJHSU4gSVNMQU5EUywgQlJJVElTSAorCiswMC0wQi02QiAgIChoZXgpCQlXaXN0cm9uIE5ld2ViIENvcnAuCiswMDBCNkIgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBOZXdlYiBDb3JwLgorCQkJCU5vLiAxMC0xLCBMaS1Ic2luIFJvYWQgSSwgU2NpZW5jZS1iYXNlZAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItNkMgICAoaGV4KQkJU3ljaGlwIEluYy4KKzAwMEI2QyAgICAgKGJhc2UgMTYpCQlTeWNoaXAgSW5jLgorCQkJCTI4MDUgTi4gRGFsbGFzIFBhcmt3YXkgU3VpdGUgNDAwCisJCQkJUGxhbm8gVGV4YXMgNzUwOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTZEICAgKGhleCkJCVNPTEVDVFJPTiBKQVBBTiBOQUtBTklJREEKKzAwMEI2RCAgICAgKGJhc2UgMTYpCQlTT0xFQ1RST04gSkFQQU4gTkFLQU5JSURBCisJCQkJMzI1IEdBTkJBUkEKKwkJCQlOQUtBTklJREFNQUNISQorCQkJCUtBTUlHVU4gTUlZQUdJS0VOIDk4MS00MjYzCisJCQkJSkFQQU4KKworMDAtMEItNkUgICAoaGV4KQkJTmVmZiBJbnN0cnVtZW50IENvcnAuCiswMDBCNkUgICAgIChiYXNlIDE2KQkJTmVmZiBJbnN0cnVtZW50IENvcnAuCisJCQkJNzAwIFNvdXRoIE15cnRsZSBBdmUuCisJCQkJTW9ucm92aWEgQ0EgOTEwMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTZGICAgKGhleCkJCU1lZGlhIFN0cmVhbWluZyBOZXR3b3JrcyBJbmMKKzAwMEI2RiAgICAgKGJhc2UgMTYpCQlNZWRpYSBTdHJlYW1pbmcgTmV0d29ya3MgSW5jCisJCQkJMTkwNSBBbmFtIFRvd2VyLCA3MDItMTAsIFllb2tzYW0gZG9uZywgSworCQkJCVNlb3VsICAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLTcwICAgKGhleCkJCUxvYWQgVGVjaG5vbG9neSwgSW5jLgorMDAwQjcwICAgICAoYmFzZSAxNikJCUxvYWQgVGVjaG5vbG9neSwgSW5jLgorCQkJCTQyMjUgUHJvZHVjdGlvbiBDb3VydAorCQkJCUxhcyBWZWdhcyBOViA4OTExNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNzEgICAoaGV4KQkJTGl0Y2hmaWVsZCBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDBCNzEgICAgIChiYXNlIDE2KQkJTGl0Y2hmaWVsZCBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJMjcgUHJpbmNldG9uIFJvYWQKKwkJCQlXYXRlcnRvd24gQ1QgMDY3OTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTcyICAgKGhleCkJCUxhd28gQUcKKzAwMEI3MiAgICAgKGJhc2UgMTYpCQlMYXdvIEFHCisJCQkJQW0gT2JlcndhbGQgOAorCQkJCVJhc3RhdHQgQmFkZW4tV3VydHRlbWJlcmcgNzY0MzcKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLTczICAgKGhleCkJCUtvZGVvcyBDb21tdW5pY2F0aW9ucworMDAwQjczICAgICAoYmFzZSAxNikJCUtvZGVvcyBDb21tdW5pY2F0aW9ucworCQkJCTExMSBDb3Jwb3JhdGUgQmx2ZAorCQkJCVN1aXRlIEEKKwkJCQlTb3V0aCBQbGFpbmZpZWxkIE5KIDA3MDgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi03NCAgIChoZXgpCQlLaW5nd2F2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwQjc0ICAgICAoYmFzZSAxNikJCUtpbmd3YXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMThGLTMsIE5vLiAxODYsIEppYW4tWWkgUmQuCisJCQkJQ2h1bmctSG8gVGFpcGVpIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItNzUgICAoaGV4KQkJSW9zb2Z0IEx0ZC4KKzAwMEI3NSAgICAgKGJhc2UgMTYpCQlJb3NvZnQgTHRkLgorCQkJCTUgV29vZGxhcmsgUm9hZAorCQkJCUNhbWJyaWRnZSBDYW1icy4gQ0IzIDBIVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBCLTc2ICAgKGhleCkJCUVUJlQgVGVjaG5vbG9neSBDby4gTHRkLgorMDAwQjc2ICAgICAoYmFzZSAxNikJCUVUJlQgVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCTZGIE5vLjEwMSwgU29uZ0ppYW5nIFJkLgorCQkJCVRhaXBlaSAgMTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi03NyAgIChoZXgpCQlDb2dlbnQgU3lzdGVtcywgSW5jLgorMDAwQjc3ICAgICAoYmFzZSAxNikJCUNvZ2VudCBTeXN0ZW1zLCBJbmMuCisJCQkJMjA5IEZhaXIgT2FrcyBBdmUuCisJCQkJU291dGggUGFzYWRlbmEgQ0EgOTEwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTc4ICAgKGhleCkJCVRBSUZBVEVDSCBJTkMuCiswMDBCNzggICAgIChiYXNlIDE2KQkJVEFJRkFURUNIIElOQy4KKwkJCQk4Ri0xIE5vLjI4OSwgU2VjLjIgIEd1YW5nZnUgUmQuCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi03OSAgIChoZXgpCQlYLUNPTSwgSW5jLgorMDAwQjc5ICAgICAoYmFzZSAxNikJCVgtQ09NLCBJbmMuCisJCQkJODgwOSBTdWRsZXkgUm9hZAorCQkJCVN1aXRlIDIwMgorCQkJCU1hbmFzc2FzIFZBIDIwMTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi03QSAgIChoZXgpCQlXYXZlIFNjaWVuY2UgSW5jLgorMDAwQjdBICAgICAoYmFzZSAxNikJCVdhdmUgU2NpZW5jZSBJbmMuCisJCQkJNzYyMCBPbW5pdGVjaCBQbGFjZQorCQkJCVZpY3RvciBOZXcgWW9yayAxNDU2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItN0IgICAoaGV4KQkJVGVzdC1VbSBJbmMuCiswMDBCN0IgICAgIChiYXNlIDE2KQkJVGVzdC1VbSBJbmMuCisJCQkJODA4IENhbGxlIFBsYW5vCisJCQkJQ2FtYXJpbGxvIENBIDkzMDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi03QyAgIChoZXgpCQlUZWxleCBDb21tdW5pY2F0aW9ucworMDAwQjdDICAgICAoYmFzZSAxNikJCVRlbGV4IENvbW11bmljYXRpb25zCisJCQkJODYwMSBFLiBDb3JuaHVza2VyIEh3eQorCQkJCUxpbmNvbG4gTkUgNjg1MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTdEICAgKGhleCkJCVNPTE9NT04gRVhUUkVNRSBJTlRFUk5BVElPTkFMIExURC4KKzAwMEI3RCAgICAgKGJhc2UgMTYpCQlTT0xPTU9OIEVYVFJFTUUgSU5URVJOQVRJT05BTCBMVEQuCisJCQkJM0YsIE5vLjIwLCBMYW5lIDE2NSwgRHVlbmh1YSBOLiBSZC4sIFN1bgorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi03RSAgIChoZXgpCQlTQUdJTk9NSVlBIFNlaXNha3VzaG8gSW5jLgorMDAwQjdFICAgICAoYmFzZSAxNikJCVNBR0lOT01JWUEgU2Vpc2FrdXNobyBJbmMuCisJCQkJNTM1IFNhc2FpCisJCQkJU2F5YW1hc2hpIFNhaXRhbWFrZW4gMzUwLTEzOTUKKwkJCQlKQVBBTgorCiswMC0wQi03RiAgIChoZXgpCQlPbW5pV2Vya3MKKzAwMEI3RiAgICAgKGJhc2UgMTYpCQlPbW5pV2Vya3MKKwkJCQk5MDAgRSBIYW1pbHRvbiBBdmVudWUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItODAgICAoaGV4KQkJTHljaXVtIE5ldHdvcmtzCiswMDBCODAgICAgIChiYXNlIDE2KQkJTHljaXVtIE5ldHdvcmtzCisJCQkJOSBIYW1lbm9maW0gU3QuCisJCQkJUC5PLkJveCAxMjI1NgorCQkJCUhlcnpsaXlhIElzcmFlbCA0NjczMworCQkJCUlTUkFFTAorCiswMC0wQi04MSAgIChoZXgpCQlLYXBhcmVsIENvcnBvcmF0aW9uCiswMDBCODEgICAgIChiYXNlIDE2KQkJS2FwYXJlbCBDb3Jwb3JhdGlvbgorCQkJCTk3IFJhbmRhbGwgRHJpdmUKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yVi0xQzUKKwkJCQlDQU5BREEKKworMDAtMEItODIgICAoaGV4KQkJR3JhbmRzdHJlYW0gTmV0d29ya3MsIEluYy4KKzAwMEI4MiAgICAgKGJhc2UgMTYpCQlHcmFuZHN0cmVhbSBOZXR3b3JrcywgSW5jLgorCQkJCTEyOTcgRmxvb2RsaWdodCBTdHJlZXQKKwkJCQkybmQgRmxvb3IKKwkJCQlCcm9va2xpbmUgTUEgMDI0NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTgzICAgKGhleCkJCURBVEFXQVRUIEIuVi4KKzAwMEI4MyAgICAgKGJhc2UgMTYpCQlEQVRBV0FUVCBCLlYuCisJCQkJSE9VVFNUUkFBVCA1CisJCQkJUC5PLiBCT1ggMTA4CisJCQkJV09MVkVHQSBGUklFU0xBTkQgTkwtODQ3MS1aWAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBCLTg0ICAgKGhleCkJCUJPREVUCiswMDBCODQgICAgIChiYXNlIDE2KQkJQk9ERVQKKwkJCQlSb3V0ZSBkZSBsYSBUb3VybGFuZHJ5CisJCQkJVFJFTUVOVElORVMgRlJBTkNFIDQ5MzQwCisJCQkJRlJBTkNFCisKKzAwLTBCLTg1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEI4NSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgVy4gVGFzbWFuIERyaXZlCisJCQkJTVMgU0pDTS8xLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItODYgICAoaGV4KQkJQXJ1YmEgTmV0d29ya3MKKzAwMEI4NiAgICAgKGJhc2UgMTYpCQlBcnViYSBOZXR3b3JrcworCQkJCTEzMjIgQ3Jvc3NtYW4gQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi04NyAgIChoZXgpCQlBbWVyaWNhbiBSZWxpYW5jZSBJbmMuCiswMDBCODcgICAgIChiYXNlIDE2KQkJQW1lcmljYW4gUmVsaWFuY2UgSW5jLgorCQkJCTExODAxIEdvbGRyaW5nIFJkCisJCQkJQXJjYWRpYSBDQSA5MTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItODggICAoaGV4KQkJVmlkaXNjbyBsdGQuCiswMDBCODggICAgIChiYXNlIDE2KQkJVmlkaXNjbyBsdGQuCisJCQkJMTcgWWVjaGllbCBEcmVzbmVyCisJCQkJUGV0YWNoLVRpa3ZhICA0OTI3NworCQkJCUlTUkFFTAorCiswMC0wQi04OSAgIChoZXgpCQlUb3AgR2xvYmFsIFRlY2hub2xvZ3ksIEx0ZC4KKzAwMEI4OSAgICAgKGJhc2UgMTYpCQlUb3AgR2xvYmFsIFRlY2hub2xvZ3ksIEx0ZC4KKwkJCQlSb29tIDMzMTAsIENoaW5hIFdvcmxkIFRvd2VyIE5vLiAxCisJCQkJSmlhbiBHdW8gTWVuIFdhaSBBdmVudWUKKwkJCQlCZWlqaW5nIEJlaWppbmcgMTAwMDA0CisJCQkJQ0hJTkEKKworMDAtMEItOEEgICAoaGV4KQkJTUlURVEgSW5jLgorMDAwQjhBICAgICAoYmFzZSAxNikJCU1JVEVRIEluYy4KKwkJCQkxMDAgRGF2aWRzIERyaXZlCisJCQkJSGF1cHBhdWdlIE5ZIDExNzg4LTIwMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLThCICAgKGhleCkJCUtFUkFKRVQsIFMuQS4KKzAwMEI4QiAgICAgKGJhc2UgMTYpCQlLRVJBSkVULCBTLkEuCisJCQkJQ3RyYS4gVmlsbGFycmVhbC1PbmRhLCBLbSAyLjUKKwkJCQlWaWxsYXJyZWFsIENhc3RlbGxvbiBFLTEyNTQwCisJCQkJU1BBSU4KKworMDAtMEItOEMgICAoaGV4KQkJRmxleHRyb25pY3MKKzAwMEI4QyAgICAgKGJhc2UgMTYpCQlGbGV4dHJvbmljcworCQkJCU1pZ2RhbCBIYUVtZWsKKwkJCQlSYW1hdCBHYXZyaWVsCisJCQkJMjMxMDggSGF0YWFzaWEgMSAKKwkJCQlJU1JBRUwKKworMDAtMEItOEQgICAoaGV4KQkJQXZ2aW8gTmV0d29ya3MKKzAwMEI4RCAgICAgKGJhc2UgMTYpCQlBdnZpbyBOZXR3b3JrcworCQkJCTExIERvbm92YW4gRHIKKwkJCQlCZWRmb3JkIE1BIDAxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi04RSAgIChoZXgpCQlBc2NlbnQgQ29ycG9yYXRpb24KKzAwMEI4RSAgICAgKGJhc2UgMTYpCQlBc2NlbnQgQ29ycG9yYXRpb24KKwkJCQkyLTE2LTE5LCBLYXdhcmF5YS1tYWNoaSwgQ2h1by1LdSwKKwkJCQlPc2FrYS1DaXR5IE9zYWthLVByZWYgNTQyLTAwNjYKKwkJCQlKQVBBTgorCiswMC0wQi04RiAgIChoZXgpCQlBS0lUQSBFTEVDVFJPTklDUyBTWVNURU1TIENPLixMVEQuCiswMDBCOEYgICAgIChiYXNlIDE2KQkJQUtJVEEgRUxFQ1RST05JQ1MgU1lTVEVNUyBDTy4sTFRELgorCQkJCTg1LEFaQSBVU0hJUk9OTyxBSUtBV0EsWVVXQS1NQUNISQorCQkJCUtBV0FCRS1HVU4gQUtJVEEtS0VOIDAxMC0xMjMxCisJCQkJSkFQQU4KKworMDAtMEItOTAgICAoaGV4KQkJQWR2YSBPcHRpY2FsIE5ldHdvcmtpbmcgSW5jLgorMDAwQjkwICAgICAoYmFzZSAxNikJCUFkdmEgT3B0aWNhbCBOZXR3b3JraW5nIEluYy4KKwkJCQlDbGlmdG9uIFRlY2hub2xvZ3kgQ2VudHJlCisJCQkJQ2xpZnRvbiBNb29yCisJCQkJWW9yayBZTzMwIDRHVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBCLTkxICAgKGhleCkJCUFnbGFpYSBHZXNlbGxzY2hhZnQgZnVyIEJpbGR2ZXJhcmJlaXR1bmcgdW5kIEtvbW11bmlrYXRpb24gbQorMDAwQjkxICAgICAoYmFzZSAxNikJCUFnbGFpYSBHZXNlbGxzY2hhZnQgZnVyIEJpbGR2ZXJhcmJlaXR1bmcgdW5kIEtvbW11bmlrYXRpb24gbQorCQkJCVRpbml1c3N0ci4gMTItMTUKKwkJCQlCZXJsaW4gIEQtMTMwODkKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLTkyICAgKGhleCkJCUFzY29tIERhbm1hcmsgQS9TCiswMDBCOTIgICAgIChiYXNlIDE2KQkJQXNjb20gRGFubWFyayBBL1MKKwkJCQlGYWJyaWtzcGFya2VuIDQyCisJCQkJR2xvc3RydXAgRGVubWFyayAyNjAwCisJCQkJREVOTUFSSworCiswMC0wQi05MyAgIChoZXgpCQlSaXR0ZXIgRWxla3Ryb25paworMDAwQjkzICAgICAoYmFzZSAxNikJCVJpdHRlciBFbGVrdHJvbmlrCisJCQkJTGV2ZXJrdXNlciBTdHIgNjUKKwkJCQlQLk8uIEJveCAxMTAyNDAKKwkJCQlSZW1zY2hlaWQgTlJXIDQyODk3CisJCQkJR0VSTUFOWQorCiswMC0wQi05NCAgIChoZXgpCQlEaWdpdGFsIE1vbml0b3JpbmcgUHJvZHVjdHMsIEluYy4KKzAwMEI5NCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIE1vbml0b3JpbmcgUHJvZHVjdHMsIEluYy4KKwkJCQkyNTAwIE4uIFBhcnRuZXJzaGlwIEJvdWxldmFyZAorCQkJCVNwcmluZ2ZpZWxkIE1pc3NvdXJpIDY1ODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi05NSAgIChoZXgpCQllQmV0IEdhbWluZyBTeXN0ZW1zIFB0eSBMdGQKKzAwMEI5NSAgICAgKGJhc2UgMTYpCQllQmV0IEdhbWluZyBTeXN0ZW1zIFB0eSBMdGQKKwkJCQlTdWl0ZSBELCAyNTUgUmF3c29uIFN0cmVldAorCQkJCUF1YnVybiBOU1cgMjE0NAorCQkJCUFVU1RSQUxJQQorCiswMC0wQi05NiAgIChoZXgpCQlJbm5vdHJhYyBEaWFnbm9zdGljcyBPeQorMDAwQjk2ICAgICAoYmFzZSAxNikJCUlubm90cmFjIERpYWdub3N0aWNzIE95CisJCQkJS2FsZXZhbnRpZSAyNQorCQkJCVR1cmt1IEFibyAyMDUyMAorCQkJCUZJTkxBTkQKKworMDAtMEItOTcgICAoaGV4KQkJTWF0c3VzaGl0YSBFbGVjdHJpYyBJbmR1c3RyaWFsIENvLixMdGQuCiswMDBCOTcgICAgIChiYXNlIDE2KQkJTWF0c3VzaGl0YSBFbGVjdHJpYyBJbmR1c3RyaWFsIENvLixMdGQuCisJCQkJMy0xLTEgWWFndW1vLU5ha2EtTWFjaGkKKwkJCQlNb3JpZ3VjaGkgQ2l0eSBPc2FrYSA1NzAtODUwMQorCQkJCUpBUEFOCisKKzAwLTBCLTk4ICAgKGhleCkJCU5pY2VUZWNoVmlzaW9uCiswMDBCOTggICAgIChiYXNlIDE2KQkJTmljZVRlY2hWaXNpb24KKwkJCQlJbnRlbFpvbmUgNzAzCisJCQkJWW9uZ0luICBHdWdhbC1yaSAgS2kgSGV1bmcgS3lvdW5nS2lEbyAzNTQtMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi05OSAgIChoZXgpCQlTZW5zQWJsZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEI5OSAgICAgKGJhc2UgMTYpCQlTZW5zQWJsZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxNSBDb25zdGl0dXRpb24gV2F5CisJCQkJV29idXJuIE1BIDAxODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi05QSAgIChoZXgpCQlTaGFuZ2hhaSBVbGluayBUZWxlY29tIEVxdWlwbWVudCBDby4gTHRkLgorMDAwQjlBICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFVsaW5rIFRlbGVjb20gRXF1aXBtZW50IENvLiBMdGQuCisJCQkJNiBGbG9vciwgQnVpbGRpbmcgMworCQkJCTIzMCBXZXN0IEppYW5nd2FuIFJvYWQKKwkJCQlTaGFuZ2hhaSAgMjAwMDgzCisJCQkJQ0hJTkEKKworMDAtMEItOUIgICAoaGV4KQkJU2lyaXVzIFN5c3RlbSBDbywgTHRkLgorMDAwQjlCICAgICAoYmFzZSAxNikJCVNpcml1cyBTeXN0ZW0gQ28sIEx0ZC4KKwkJCQkzLTI3IEZ1bmFkby1jaG8KKwkJCQlBc2hpeWEgSHlvZ28gNjU5LTAwOTMKKwkJCQlKQVBBTgorCiswMC0wQi05QyAgIChoZXgpCQlUcmlCZWFtIFRlY2hub2xvZ2llcywgSW5jLgorMDAwQjlDICAgICAoYmFzZSAxNikJCVRyaUJlYW0gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTE2IFcuIEVhc3RtYW4gU3QuLCBzdWl0ZSAyMDgKKwkJCQlBcmxpbmd0b24gSGVpZ2h0cyBJTCA2MDAwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItOUQgICAoaGV4KQkJVHdpbk1PUyBUZWNobm9sb2dpZXMgSW5jLgorMDAwQjlEICAgICAoYmFzZSAxNikJCVR3aW5NT1MgVGVjaG5vbG9naWVzIEluYy4KKwkJCQkzMDMgTm8uMywgVHp1IENoaWFuZyBSZC4sIEh1IEtvdSBYaWFuZywKKwkJCQlIc2luIENodSAgMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi05RSAgIChoZXgpCQlZYXNpbmcgVGVjaG5vbG9neSBDb3JwLgorMDAwQjlFICAgICAoYmFzZSAxNikJCVlhc2luZyBUZWNobm9sb2d5IENvcnAuCisJCQkJTm8uIDUwLCBUYSBIc3VlaCBSb2FkLCBIc2luQ2h1LCBUYWl3YW4KKwkJCQlIc2luQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTlGICAgKGhleCkJCU5ldWUgRUxTQSBHbWJICiswMDBCOUYgICAgIChiYXNlIDE2KQkJTmV1ZSBFTFNBIEdtYkgKKwkJCQlTb25uZW53ZWcgMTEKKwkJCQlBYWNoZW4gIDUyMDcwCisJCQkJR0VSTUFOWQorCiswMC0wQi1BMCAgIChoZXgpCQlUJkwgSW5mb3JtYXRpb24gSW5jLgorMDAwQkEwICAgICAoYmFzZSAxNikJCVQmTCBJbmZvcm1hdGlvbiBJbmMuCisJCQkJODk4LTQ0IEhva3llLURvbmcsIERvbmdhbi1HdQorCQkJCUFueWFuZyBLeXVuZ2tpLURvIDQzMS04MzYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItQTEgICAoaGV4KQkJU1lTQ09NIEx0ZC4KKzAwMEJBMSAgICAgKGJhc2UgMTYpCQlTWVNDT00gTHRkLgorCQkJCTQtMTAgSEFLT0RBLCBLVU1BR0FZQS1TSEkKKwkJCQlTQUlUQU1BLUtFTiAzNjAtODUxNQorCQkJCUpBUEFOCisKKzAwLTBCLUEyICAgKGhleCkJCVN1bWl0b21vIEVsZWN0cmljIE5ldHdvcmtzLCBJbmMKKzAwMEJBMiAgICAgKGJhc2UgMTYpCQlTdW1pdG9tbyBFbGVjdHJpYyBOZXR3b3JrcywgSW5jCisJCQkJMS0xLTMsIFNoaW1heWEsIEtvbm9oYW5hLWt1CisJCQkJT3Nha2EgIDU1NC0wMDI0CisJCQkJSkFQQU4KKworMDAtMEItQTMgICAoaGV4KQkJU2llbWVucyBBRywgSSZTCiswMDBCQTMgICAgIChiYXNlIDE2KQkJU2llbWVucyBBRywgSSZTCisJCQkJV2VybmVyLXZvbi1TaWVtZW5zLVN0cmFzc2UgNjUKKwkJCQlFcmxhbmdlbiBCYXZhcmlhIDkxMDUyCisJCQkJR0VSTUFOWQorCiswMC0wQi1BNCAgIChoZXgpCQlTaGlyb24gU2F0ZWxsaXRlIENvbW11bmljYXRpb25zIEx0ZC4gKDE5OTYpCiswMDBCQTQgICAgIChiYXNlIDE2KQkJU2hpcm9uIFNhdGVsbGl0ZSBDb21tdW5pY2F0aW9ucyBMdGQuICgxOTk2KQorCQkJCTIzIEhhc2l2aW0gU3QuCisJCQkJUGV0YWNoIFRpa3ZhICA0OTE3MAorCQkJCUlTUkFFTAorCiswMC0wQi1BNSAgIChoZXgpCQlRdWFzYXIgQ2lwdGEgTWFuZGlyaSwgUFQKKzAwMEJBNSAgICAgKGJhc2UgMTYpCQlRdWFzYXIgQ2lwdGEgTWFuZGlyaSwgUFQKKwkJCQlKbC4gUGFsYXNhcmkgOUEKKwkJCQlCYW5kdW5nIFdlc3QgSmF2YSA0MDI2MgorCQkJCUlORE9ORVNJQQorCiswMC0wQi1BNiAgIChoZXgpCQlNaXlha2F3YSBFbGVjdHJpYyBXb3JrcyBMdGQuCiswMDBCQTYgICAgIChiYXNlIDE2KQkJTWl5YWthd2EgRWxlY3RyaWMgV29ya3MgTHRkLgorCQkJCTItMS02LAorCQkJCUtvaGhva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjItMDAwMQorCQkJCUpBUEFOCisKKzAwLTBCLUE3ICAgKGhleCkJCU1hcmFudGkgTmV0d29ya3MKKzAwMEJBNyAgICAgKGJhc2UgMTYpCQlNYXJhbnRpIE5ldHdvcmtzCisJCQkJMzA2MS1CIFphbmtlciBSb2FkCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUE4ICAgKGhleCkJCUhBTkJBQ0sgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCiswMDBCQTggICAgIChiYXNlIDE2KQkJSEFOQkFDSyBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQkzMDYtNywgR2FsbWEtZG9uZywgU2VvLWd1CisJCQkJRGFlamVvbiAgMzAyLTE3MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi1BOSAgIChoZXgpCQlDbG91ZFNoaWVsZCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEJBOSAgICAgKGJhc2UgMTYpCQlDbG91ZFNoaWVsZCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyMTIgR2lsYnJhbHRhciBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQUEgICAoaGV4KQkJQWlwaG9uZSBjby4sTHRkCiswMDBCQUEgICAgIChiYXNlIDE2KQkJQWlwaG9uZSBjby4sTHRkCisJCQkJMi0xOCBKaW5uby1DaG8KKwkJCQlBdHN1dGEta3UKKwkJCQlOYWdveWEgQWljaGkta2VuIDQ1Ni04NjY2CisJCQkJSkFQQU4KKworMDAtMEItQUIgICAoaGV4KQkJQWR2YW50ZWNoIFRlY2hub2xvZ3kgKENISU5BKSBDby4sIEx0ZC4KKzAwMEJBQiAgICAgKGJhc2UgMTYpCQlBZHZhbnRlY2ggVGVjaG5vbG9neSAoQ0hJTkEpIENvLiwgTHRkLgorCQkJCU5vLjY2NiwgSGFuLVB1IFJkLiBZdS1TaGFuCisJCQkJS3VuLVNoYW4gSmlhbmcgU3UgMjE1MzE2CisJCQkJQ0hJTkEKKworMDAtMEItQUMgICAoaGV4KQkJM0NvbSBMdGQKKzAwMEJBQyAgICAgKGJhc2UgMTYpCQkzQ29tIEx0ZAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIsIFBlb3BsZWJ1aWxkaW5nIEVzdGF0ZQorCQkJCU1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cy4gSFAyIDROVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBCLUFEICAgKGhleCkJCVBDLVBvUyBJbmMuCiswMDBCQUQgICAgIChiYXNlIDE2KQkJUEMtUG9TIEluYy4KKwkJCQkzMDkgQ29tbWlzc2lvbmVycyBSb2FkIFdlc3QKKwkJCQlMb25kb24gT250YXJpbyBONkogMVk0CisJCQkJQ0FOQURBCisKKzAwLTBCLUFFICAgKGhleCkJCVZpdGFscyBTeXN0ZW0gSW5jLgorMDAwQkFFICAgICAoYmFzZSAxNikJCVZpdGFscyBTeXN0ZW0gSW5jLgorCQkJCUpvb2hldW5nIEIvRCA0RkwuIDEwMDUtMSwgWW91bmd0b25nLURvbmcKKwkJCQlTdXdvbiBDaXR5IEt5b25nZ2ktRG8gNDQyLTgxMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi1BRiAgIChoZXgpCQlXT09KVSBDT01NVU5JQ0FUSU9OUyBDbywuTHRkCiswMDBCQUYgICAgIChiYXNlIDE2KQkJV09PSlUgQ09NTVVOSUNBVElPTlMgQ28sLkx0ZAorCQkJCUItNzEzLCBTSyBUd2luIFRlY2ggVG93ZXIsIDM0NS05LCBHYS1TYW4KKwkJCQlTZW91bCAgMTUzLTgwMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi1CMCAgIChoZXgpCQlTeXNuZXQgVGVsZW1hdGljYSBzcmwKKzAwMEJCMCAgICAgKGJhc2UgMTYpCQlTeXNuZXQgVGVsZW1hdGljYSBzcmwKKwkJCQlWaWFsZSBCZXJiZXJhLCA0OQorCQkJCU1pbGFuICAyMDE2MgorCQkJCUlUQUxZCisKKzAwLTBCLUIxICAgKGhleCkJCVN1cGVyIFN0YXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMEJCMSAgICAgKGJhc2UgMTYpCQlTdXBlciBTdGFyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uIDcgTGFuZSAzMDYsU2VjLiAyLFRhaS1MaW4gUmQuCisJCQkJVGFpLVNoYW4gU2hpYW5nCisJCQkJVGFpcGVpIEhzaWVuICAyNDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLUIyICAgKGhleCkJCVNNQUxMQklHIFRFQ0hOT0xPR1kKKzAwMEJCMiAgICAgKGJhc2UgMTYpCQlTTUFMTEJJRyBURUNITk9MT0dZCisJCQkJM0YgRG9uZ3N1bmcgQmxkZy4gNzIwLTkgWW9rc2FtZG9uZworCQkJCUdhbmduYW1ndSBTZW91bCAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLUIzICAgKGhleCkJCVJpVCB0ZWNobm9sb2dpZXMgTHRkLgorMDAwQkIzICAgICAoYmFzZSAxNikJCVJpVCB0ZWNobm9sb2dpZXMgTHRkLgorCQkJCTI0IFJhb3VsIFdhbGVuYmVyZyAgU3QuCisJCQkJVGVsIEF2aXYgIDY5NzE5CisJCQkJSVNSQUVMCisKKzAwLTBCLUI0ICAgKGhleCkJCVJEQyBTZW1pY29uZHVjdG9yIEluYy4sCiswMDBCQjQgICAgIChiYXNlIDE2KQkJUkRDIFNlbWljb25kdWN0b3IgSW5jLiwKKwkJCQk2Ri0xICwgTm8uMi0xLCBMaWhzaW4gUmQsIFNjaWVuY2UtQmFzZWQKKwkJCQlIc2luIENodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi1CNSAgIChoZXgpCQluU3RvciBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEJCNSAgICAgKGJhc2UgMTYpCQluU3RvciBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMDAgVGVjaG5vbG9neSBQYXJrCisJCQkJU3VpdGUgMTc1CisJCQkJTGFrZSBNYXJ5IEZMIDMyNzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1CNiAgIChoZXgpCQlNb3RvdGVjaCBJbmMuCiswMDBCQjYgICAgIChiYXNlIDE2KQkJTW90b3RlY2ggSW5jLgorCQkJCTksIFBhcmsgQXZlbnVlIElJLCBTY2llbmNlLUJhc2VkIEluZHVzdHIKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLUI3ICAgKGhleCkJCU1pY3JvIFN5c3RlbXMgQ28uLEx0ZC4KKzAwMEJCNyAgICAgKGJhc2UgMTYpCQlNaWNybyBTeXN0ZW1zIENvLixMdGQuCisJCQkJMi0xNS0zNCBOaXNoaWt1Ym8KKwkJCQlNdXNhc2hpbm8tQ2l0eSBUb2t5byAxODAtMDAxMworCQkJCUpBUEFOCisKKzAwLTBCLUI4ICAgKGhleCkJCUtpaG9rdSBFbGVjdHJvbmljIENvLgorMDAwQkI4ICAgICAoYmFzZSAxNikJCUtpaG9rdSBFbGVjdHJvbmljIENvLgorCQkJCU1hcnVrYXR1YmlydSAzRiA0LTktNgorCQkJCU5paG9uYmFzaGkgTmFuaXdhLWt1CisJCQkJT3Nha2FzaGkgT3Nha2EtaHUgNTU2LTAwMDUKKwkJCQlKQVBBTgorCiswMC0wQi1COSAgIChoZXgpCQlJbXN5cyBBQgorMDAwQkI5ICAgICAoYmFzZSAxNikJCUltc3lzIEFCCisJCQkJSm9oYW5uZXNsdW5kc3ZhZ2VuIDMKKwkJCQlVcHBsYW5kcyBWYXNieSAgU0UtMTk0NjEKKwkJCQlTV0VERU4KKworMDAtMEItQkEgICAoaGV4KQkJSGFybW9uaWMgQnJvYWRiYW5kIEFjY2VzcyBOZXR3b3JrcworMDAwQkJBICAgICAoYmFzZSAxNikJCUhhcm1vbmljIEJyb2FkYmFuZCBBY2Nlc3MgTmV0d29ya3MKKwkJCQk1NDkgQmFsdGljIFdheQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQkIgICAoaGV4KQkJRXRpbiBTeXN0ZW1zIENvLiwgTHRkCiswMDBCQkIgICAgIChiYXNlIDE2KQkJRXRpbiBTeXN0ZW1zIENvLiwgTHRkCisJCQkJMTJGLCBJVCBWZW50dXJlIFRvd2VyLAorCQkJCTc4IEdhcmFrQm9uLURvbmcsIFNvbmdwYS1LdQorCQkJCVNlb3VsICAxMzgtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLUJDICAgKGhleCkJCUVuIEdhcmRlIFN5c3RlbXMsIEluYy4KKzAwMEJCQyAgICAgKGJhc2UgMTYpCQlFbiBHYXJkZSBTeXN0ZW1zLCBJbmMuCisJCQkJMjEwMSBXaGl0ZSBDbG91ZCBTdC4gTkUKKwkJCQlBbGJ1cXVlcnF1ZSBOTSA4NzExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQkQgICAoaGV4KQkJQ29ubmV4aW9ueiBMaW1pdGVkCiswMDBCQkQgICAgIChiYXNlIDE2KQkJQ29ubmV4aW9ueiBMaW1pdGVkCisJCQkJMSBTaG93IFBsYWNlCisJCQkJQ2hyaXN0Y2h1cmNoIENhbnRlcmJ1cnkgODAwNAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTBCLUJFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEJCRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUJGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEJCRiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUMwICAgKGhleCkJCUNoaW5hIElXTkNvbW0gQ28uLCBMdGQuCiswMDBCQzAgICAgIChiYXNlIDE2KQkJQ2hpbmEgSVdOQ29tbSBDby4sIEx0ZC4KKwkJCQk0Ri5DIFhpZXRvbmcgQnVpbGRpbmcsTm8uMTIgR2FveGluIDJuZCByCisJCQkJSGktdGVjaCBpbmR1c3RyaWVzIGRldmVsb3BtZW50IHpvbmUKKwkJCQlYaSdhbiBzaGFhbnhpIDcxMDA3NQorCQkJCUNISU5BCisKKzAwLTBCLUMxICAgKGhleCkJCUJheSBNaWNyb3N5c3RlbXMsIEluYy4KKzAwMEJDMSAgICAgKGJhc2UgMTYpCQlCYXkgTWljcm9zeXN0ZW1zLCBJbmMuCisJCQkJMjcwMCBBdWd1c3RpbmUgRHJpdmUKKwkJCQlTdWl0ZSAyOTgKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQzIgICAoaGV4KQkJQ29yaW5leCBDb21tdW5pY2F0aW9uIENvcnAuCiswMDBCQzIgICAgIChiYXNlIDE2KQkJQ29yaW5leCBDb21tdW5pY2F0aW9uIENvcnAuCisJCQkJIzMwOCAxMTY4IEhhbWlsdG9uIFN0cmVldAorCQkJCVZhbmNvdXZlciBCLkMuIFY2QiAyUzIKKwkJCQlDQU5BREEKKworMDAtMEItQzMgICAoaGV4KQkJTXVsdGlwbGV4LCBJbmMuCiswMDBCQzMgICAgIChiYXNlIDE2KQkJTXVsdGlwbGV4LCBJbmMuCisJCQkJNTAwMCBIYWRsZXkgUmQuCisJCQkJUy4gUGxhaW5maWVsZCBOSiAwNzA0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQzQgICAoaGV4KQkJQklPVFJPTklLIEdtYkggJiBDbworMDAwQkM0ICAgICAoYmFzZSAxNikJCUJJT1RST05JSyBHbWJIICYgQ28KKwkJCQlXb2VybWFubmtlaHJlIDEKKwkJCQlCZXJsaW4gIDEyMzU5CisJCQkJR0VSTUFOWQorCiswMC0wQi1DNSAgIChoZXgpCQlTTUMgTmV0d29ya3MsIEluYy4KKzAwMEJDNSAgICAgKGJhc2UgMTYpCQlTTUMgTmV0d29ya3MsIEluYy4KKwkJCQkzOCBUZXNsYQorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQzYgICAoaGV4KQkJSVNBQywgSW5jLgorMDAwQkM2ICAgICAoYmFzZSAxNikJCUlTQUMsIEluYy4KKwkJCQlQTyBCb3ggNzY4MgorCQkJCUF1YnVybiBDQSA5NTYwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQzcgICAoaGV4KQkJSUNFVCBTLnAuQS4KKzAwMEJDNyAgICAgKGJhc2UgMTYpCQlJQ0VUIFMucC5BLgorCQkJCVZpYSBRdWFydG8gTmVncm9uaSwgNjMKKwkJCQlDZWNjaGluYSBkaSBBcmljY2lhIFJvbWEgMDAwNDAKKwkJCQlJVEFMWQorCiswMC0wQi1DOCAgIChoZXgpCQlBaXJGbG93IE5ldHdvcmtzCiswMDBCQzggICAgIChiYXNlIDE2KQkJQWlyRmxvdyBOZXR3b3JrcworCQkJCTQ0NCBDYXN0cm8gU3QKKwkJCQlTdWl0ZSAzMjAKKwkJCQlNb3VudGFpbiBWaWV3IENhIDk0MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1DOSAgIChoZXgpCQlFbGVjdHJvbGluZSBFcXVpcG1lbnQKKzAwMEJDOSAgICAgKGJhc2UgMTYpCQlFbGVjdHJvbGluZSBFcXVpcG1lbnQKKwkJCQk4MjY1IGJvdWwuIFN0LU1pY2hlbAorCQkJCU1vbnRyZWFsIFF1ZWJlYyBIMVogM0U0CisJCQkJQ0FOQURBCisKKzAwLTBCLUNBICAgKGhleCkJCURBVEFWQU4gSW50ZXJuYXRpb25hbCBDb3Jwb3JhdGlvbgorMDAwQkNBICAgICAoYmFzZSAxNikJCURBVEFWQU4gSW50ZXJuYXRpb25hbCBDb3Jwb3JhdGlvbgorCQkJCTRGTCwjMTIwLTEyLENodW5nIFNoYW4gUmQsIFNlYy4zCisJCQkJQ2h1bmcgSG8gQ2l0eSwgVGFpcGVpIEhzaWVuICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLUNCICAgKGhleCkJCUZhZ29yIEF1dG9tYXRpb24gLCBTLiBDb29wCiswMDBCQ0IgICAgIChiYXNlIDE2KQkJRmFnb3IgQXV0b21hdGlvbiAsIFMuIENvb3AKKwkJCQlTYW4gQW5kcmVzIHMvbgorCQkJCTIwNTAwIE1vbmRyYWdvbgorCQkJCUd1aXB1emNvYSAyMDUwMAorCQkJCVNQQUlOCisKKzAwLTBCLUNDICAgKGhleCkJCUpVU0FOLCBTLkEuCiswMDBCQ0MgICAgIChiYXNlIDE2KQkJSlVTQU4sIFMuQS4KKwkJCQlWaXZlcm8sIDUKKwkJCQlNQURSSUQgIDI4MDQwCisJCQkJU1BBSU4KKworMDAtMEItQ0QgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDBCQ0QgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkgU291dGgKKwkJCQlNUzA0MDgwMQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUNFICAgKGhleCkJCUZyZWUybW92ZSBBQgorMDAwQkNFICAgICAoYmFzZSAxNikJCUZyZWUybW92ZSBBQgorCQkJCVNwZXJsaW5nc2dhdGFuIDcKKwkJCQlIYWxtc3RhZCBIYWxsYW5kIDMwMjQ4CisJCQkJU1dFREVOCisKKzAwLTBCLUNGICAgKGhleCkJCUFHRkEgTkRUIElOQy4KKzAwMEJDRiAgICAgKGJhc2UgMTYpCQlBR0ZBIE5EVCBJTkMuCisJCQkJNTAgSW5kdXN0cmlhbCBQYXJrIFJvYWQKKwkJCQlMZXdpc3Rvd24gUEEgMTcwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUQwICAgKGhleCkJCVhpTWV0YSBUZWNobm9sb2d5IEFtZXJpY2FzIEluYy4KKzAwMEJEMCAgICAgKGJhc2UgMTYpCQlYaU1ldGEgVGVjaG5vbG9neSBBbWVyaWNhcyBJbmMuCisJCQkJNTQgUmF5IFN0cmVldAorCQkJCU5ldyBCcnVuc3dpY2sgTkogMDg5MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUQxICAgKGhleCkJCUFlcm9uaXgsIEluYy4KKzAwMEJEMSAgICAgKGJhc2UgMTYpCQlBZXJvbml4LCBJbmMuCisJCQkJMTc3NSBXLiBIaWJpc2N1cyBCbHZkLAorCQkJCVN1aXRlICMzMDQKKwkJCQlNZWxib3VybmUgRkwgMzI5MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUQyICAgKGhleCkJCVJlbW9wcm8gVGVjaG5vbG9neSBJbmMuCiswMDBCRDIgICAgIChiYXNlIDE2KQkJUmVtb3BybyBUZWNobm9sb2d5IEluYy4KKwkJCQlOby4gNDQzLCBIdWFubmFuIFJELiwKKwkJCQlQaW5namVuIENpdHkgVGFveXVhbiAzMjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLUQzICAgKGhleCkJCWNkM28KKzAwMEJEMyAgICAgKGJhc2UgMTYpCQljZDNvCisJCQkJNDAyIFcgQnJvYWR3YXkKKwkJCQlTYW4gRGVpZ28gQ0EgOTIxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUQ0ICAgKGhleCkJCUJlaWppbmcgV2lzZSBUZWNobm9sb2d5ICYgU2NpZW5jZSBEZXZlbG9wbWVudCBDby5MdGQKKzAwMEJENCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFdpc2UgVGVjaG5vbG9neSAmIFNjaWVuY2UgRGV2ZWxvcG1lbnQgQ28uTHRkCisJCQkJM3JkIEZsb29yIENhaWhvbmcgQnVpbGRpbmcsIE5vLjIsMXN0IFdlcworCQkJCU1hZGlhbiwgSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4OAorCQkJCUNISU5BCisKKzAwLTBCLUQ1ICAgKGhleCkJCU52ZXJnZW5jZSwgSW5jLgorMDAwQkQ1ICAgICAoYmFzZSAxNikJCU52ZXJnZW5jZSwgSW5jLgorCQkJCUplaWwgQmxkZy4gNHRoLCBTYW1zdW5nLWRvbmcgMTY4LTI2LCBLYW4KKwkJCQlTZW91bCAgMTM1LTA5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi1ENiAgIChoZXgpCQlQYXh0b24gQWNjZXNzIEx0ZAorMDAwQkQ2ICAgICAoYmFzZSAxNikJCVBheHRvbiBBY2Nlc3MgTHRkCisJCQkJUGF4dG9uIEhvdXNlCisJCQkJSG9tZSBGYXJtIFJvYWQKKwkJCQlCcmlnaHRvbiBFYXN0IFN1c3NleCBCTjEgOUhVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEItRDcgICAoaGV4KQkJRE9STUEgVGltZSArIEFjY2VzcyBHbWJICiswMDBCRDcgICAgIChiYXNlIDE2KQkJRE9STUEgVGltZSArIEFjY2VzcyBHbWJICisJCQkJTWFpbnplciBTdHJhc3NlIDM2LTUyCisJCQkJQm9ubiBOb3JkcmhlaW53ZXN0ZmFsZW4gNTMxNzkKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLUQ4ICAgKGhleCkJCUluZHVzdHJpYWwgU2NpZW50aWZpYyBDb3JwLgorMDAwQkQ4ICAgICAoYmFzZSAxNikJCUluZHVzdHJpYWwgU2NpZW50aWZpYyBDb3JwLgorCQkJCTEwMDEgT2FrZGFsZSBSb2FkCisJCQkJT2FrZGFsZSBQQSAxNTA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRDkgICAoaGV4KQkJR2VuZXJhbCBIeWRyb2dlbgorMDAwQkQ5ICAgICAoYmFzZSAxNikJCUdlbmVyYWwgSHlkcm9nZW4KKwkJCQkxMzEyMCBWYW5pZXIgUGxhY2UKKwkJCQlSaWNobW9uZCBCcml0aXNoIENvbHVtYmlhIFY2ViAySjIKKwkJCQlDQU5BREEKKworMDAtMEItREEgICAoaGV4KQkJRXllQ3Jvc3MgQ28uLEluYy4KKzAwMEJEQSAgICAgKGJhc2UgMTYpCQlFeWVDcm9zcyBDby4sSW5jLgorCQkJCTNGICBJaW9rYS1CdWlsZGluZworCQkJCVRva3lvIFVlbm8gVGFpdG9oLWt1IDMtNC0xIDExMC0wMDA1CisJCQkJSkFQQU4KKworMDAtMEItREIgICAoaGV4KQkJRGVsbCBFU0cgUENCQSBUZXN0CiswMDBCREIgICAgIChiYXNlIDE2KQkJRGVsbCBFU0cgUENCQSBUZXN0CisJCQkJT25lIERlbGwgV2F5CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItREMgICAoaGV4KQkJQUtDUAorMDAwQkRDICAgICAoYmFzZSAxNikJCUFLQ1AKKwkJCQk2Ny8yODUgIE11YW5nYWtlIFZpbGxhZ2UgIzgKKwkJCQlNb28gMyBWaXBhd2FkZWUgUm9hZCwgVGFtYm9sIEx1Z2hvb2sKKwkJCQlBbXBodXIgTXVhbmcgUGF0b210aGFuZWUgMTIwMDAKKwkJCQlUSEFJTEFORAorCiswMC0wQi1ERCAgIChoZXgpCQlUT0hPS1UgUklDT0ggQ28uLCBMVEQuCiswMDBCREQgICAgIChiYXNlIDE2KQkJVE9IT0tVIFJJQ09IIENvLiwgTFRELgorCQkJCTMtMSBTaGlubWVpZG8KKwkJCQlTaGliYXRhIE1peWFnaSBwcmVmLiA5ODktMTY5NQorCQkJCUpBUEFOCisKKzAwLTBCLURFICAgKGhleCkJCVRFTERJWCBHbWJICiswMDBCREUgICAgIChiYXNlIDE2KQkJVEVMRElYIEdtYkgKKwkJCQlHcmVuemhvZWZlciBXZWcgMzYKKwkJCQlIZWlkZWxiZXJnICA2OTEyMworCQkJCUdFUk1BTlkKKworMDAtMEItREYgICAoaGV4KQkJU2hlbnpoZW4gUm91dGVyRCBOZXR3b3JrcyBMaW1pdGVkCiswMDBCREYgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gUm91dGVyRCBOZXR3b3JrcyBMaW1pdGVkCisJCQkJOC9GLCBCdWlsZGluZyBBLCBUc2luZ2h1YSBIaS1UZWNoIFBhcmsKKwkJCQlOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gIAorCQkJCUNISU5BCisKKzAwLTBCLUUwICAgKGhleCkJCVNlcmNvTmV0IEx0ZC4KKzAwMEJFMCAgICAgKGJhc2UgMTYpCQlTZXJjb05ldCBMdGQuCisJCQkJMTYgSGEnaGFyb3NoZXQgc3QuCisJCQkJUC5PLkIuIDIwMDkKKwkJCQlSYSdhbmFuYSAgNDM2NTcKKwkJCQlJU1JBRUwKKworMDAtMEItRTEgICAoaGV4KQkJTm9raWEgTkVUIFByb2R1Y3QgT3BlcmF0aW9ucworMDAwQkUxICAgICAoYmFzZSAxNikJCU5va2lhIE5FVCBQcm9kdWN0IE9wZXJhdGlvbnMKKwkJCQkzMTMgRmFpcmNoaWxkIERyaXZlCisJCQkJTW91bnRhaW4gVmlldyBDYWxpZm9ybmlhIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1FMiAgIChoZXgpCQlMdW1lbmVyYSBDb3Jwb3JhdGlvbgorMDAwQkUyICAgICAoYmFzZSAxNikJCUx1bWVuZXJhIENvcnBvcmF0aW9uCisJCQkJMjUyMEIgU3QuIExhdXJlbnQgQmx2ZC4KKwkJCQlPdHRhd2EgT250YXJpbyBLMUIgNFI4CisJCQkJQ0FOQURBCisKKzAwLTBCLUUzICAgKGhleCkJCUtleSBTdHJlYW0gQ28uLCBMdGQuCiswMDBCRTMgICAgIChiYXNlIDE2KQkJS2V5IFN0cmVhbSBDby4sIEx0ZC4KKwkJCQlOby4gMiBOYWdhb2thIEJsZGcuIDRGLCAgMi04LTUgSGF0Y2hvYm9yCisJCQkJQ2h1by1rdSBUb2t5byAxMDQtMDAzMgorCQkJCUpBUEFOCisKKzAwLTBCLUU0ICAgKGhleCkJCUhvc2lkZW4gQ29ycG9yYXRpb24KKzAwMEJFNCAgICAgKGJhc2UgMTYpCQlIb3NpZGVuIENvcnBvcmF0aW9uCisJCQkJNC0zMworCQkJCUtpdGFreXVob2ppIDEtY2hvbWUKKwkJCQlZYW8tY2l0eSBPc2FrYSA1ODEtMDA3MQorCQkJCUpBUEFOCisKKzAwLTBCLUU1ICAgKGhleCkJCUhJTVMgS29yZWEgQ28uLCBMdGQuCiswMDBCRTUgICAgIChiYXNlIDE2KQkJSElNUyBLb3JlYSBDby4sIEx0ZC4KKwkJCQk1MTA1LCBIaWdoIFRlY2ggVmVudHVyZSBIYWxsLAorCQkJCTUzLTMsIEVvZXVuLWRvbmcsIFl1c2Vvbmcta3UsCisJCQkJRGFlamVvbiBEYWVqZW9uIDMwNS04MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItRTYgICAoaGV4KQkJRGF0ZWwgRWxlY3Ryb25pY3MKKzAwMEJFNiAgICAgKGJhc2UgMTYpCQlEYXRlbCBFbGVjdHJvbmljcworCQkJCVN0YWZmb3JkIFJvYWQKKwkJCQlTdG9uZSBTdGFmZm9yZHNoaXJlIFNUMTUgMERHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEItRTcgICAoaGV4KQkJQ09NRkxVWCBURUNITk9MT0dZIElOQy4KKzAwMEJFNyAgICAgKGJhc2UgMTYpCQlDT01GTFVYIFRFQ0hOT0xPR1kgSU5DLgorCQkJCSBSb29tIDEzMSxCbGRnLiA1MywxOTUtNTgsU2VjLjQsCisJCQkJQ2h1bmcgSHNpbmcgUmQuLENodXR1bmcsCisJCQkJSHNpbmNodSAgMzEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi1FOCAgIChoZXgpCQlBT0lQCiswMDBCRTggICAgIChiYXNlIDE2KQkJQU9JUAorCQkJCTYgcnVlIE1hcnlzZSBCQVNUSUUKKwkJCQlaSSBkZSBTdCBHdWVuYXVsdAorCQkJCUNPVVJDT1VST05ORVMgSWRmIDkxMDgwCisJCQkJRlJBTkNFCisKKzAwLTBCLUU5ICAgKGhleCkJCUFjdGVsIENvcnBvcmF0aW9uCiswMDBCRTkgICAgIChiYXNlIDE2KQkJQWN0ZWwgQ29ycG9yYXRpb24KKwkJCQkyMDAgVmFsbGV5IFJvYWQKKwkJCQlTdWl0ZSAzMDAKKwkJCQlNdC4gQXJsaW5ndG9uIE5KIDA3ODU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1FQSAgIChoZXgpCQladWx0eXMgVGVjaG5vbG9naWVzCiswMDBCRUEgICAgIChiYXNlIDE2KQkJWnVsdHlzIFRlY2hub2xvZ2llcworCQkJCTc3MSBWYXF1ZXJvcyBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUVCICAgKGhleCkJCVN5c3RlZ3JhIEFHCiswMDBCRUIgICAgIChiYXNlIDE2KQkJU3lzdGVncmEgQUcKKwkJCQlCdXJndW5kZXJzdHJhc3NlIDE1CisJCQkJQmVsbGFjaCBTTyA0NTEyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEItRUMgICAoaGV4KQkJTklQUE9OIEVMRUNUUklDIElOU1RSVU1FTlQsIElOQy4KKzAwMEJFQyAgICAgKGJhc2UgMTYpCQlOSVBQT04gRUxFQ1RSSUMgSU5TVFJVTUVOVCwgSU5DLgorCQkJCTMtNTYtMjEgSGlyYWRvCisJCQkJVG90c3VrYS1rdSBZb2tvaGFtYS1zaGkgMjQ0LTA4MDIKKwkJCQlKQVBBTgorCiswMC0wQi1FRCAgIChoZXgpCQlFTE0gSW5jLgorMDAwQkVEICAgICAoYmFzZSAxNikJCUVMTSBJbmMuCisJCQkJMTUyNDggS2FzZWRhdGFrZWRhCisJCQkJTWluYW1pc2F0c3VtYSBLYWdvc2hpbWEgODk3LTAwMDIKKwkJCQlKQVBBTgorCiswMC0wQi1FRSAgIChoZXgpCQlpbmMuamV0LCBJbmNvcnBvcmF0ZWQKKzAwMEJFRSAgICAgKGJhc2UgMTYpCQlpbmMuamV0LCBJbmNvcnBvcmF0ZWQKKwkJCQlPbmUgV2lubmVuZGVuIFJvYWQKKwkJCQlOb3J3aWNoIENUIDA2MzYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1FRiAgIChoZXgpCQlDb2RlIENvcnBvcmF0aW9uCiswMDBCRUYgICAgIChiYXNlIDE2KQkJQ29kZSBDb3Jwb3JhdGlvbgorCQkJCTExODE0IFMuIEVsZWN0aW9uIFJkLiwgU3RlIDIwMAorCQkJCURyYXBlciBVdGFoIDg0MDIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1GMCAgIChoZXgpCQlNb1RFWCBQcm9kdWN0cyBDby4sIEx0ZC4KKzAwMEJGMCAgICAgKGJhc2UgMTYpCQlNb1RFWCBQcm9kdWN0cyBDby4sIEx0ZC4KKwkJCQlDLlAuTy5Cb3ggNjkxMgorCQkJCVllIEt3YW4tZG9uZyAxOS0xCisJCQkJQ2hvbmctZ3UgU2VvdWwgODIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItRjEgICAoaGV4KQkJTEFQIExhc2VyIEFwcGxpa2F0aW9ucworMDAwQkYxICAgICAoYmFzZSAxNikJCUxBUCBMYXNlciBBcHBsaWthdGlvbnMKKwkJCQlaZXBwZWxpbnN0cmFzc2UgMjMKKwkJCQlMdWVuZWJ1cmcgTmllZGVyc2FjaHNlbiAyMTMzNworCQkJCUdFUk1BTlkKKworMDAtMEItRjIgICAoaGV4KQkJQ2hpaC1LYW4gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMEJGMiAgICAgKGJhc2UgMTYpCQlDaGloLUthbiBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLiAyNC0xLCBQZWkgU2hpaCBDaG91LCBNaW5nIEhvIFZpbGwuCisJCQkJU2hhbiBTdW4gSHNpYW5nIFRhaW5hbiBIc2llbiAxODAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLUYzICAgKGhleCkJCUJBRSBTWVNURU1TCiswMDBCRjMgICAgIChiYXNlIDE2KQkJQkFFIFNZU1RFTVMKKwkJCQk2NTAwIFRyYWNvciBMYW5lCisJCQkJQXVzdGluIFRleGFzIDc4NzI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1GNCAgIChoZXgpCQlQUklWQVRFCiswMDBCRjQgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTBCLUY1ICAgKGhleCkJCVNoYW5naGFpIFNpYm8gVGVsZWNvbSBUZWNobm9sb2d5IENvLixMdGQKKzAwMEJGNSAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBTaWJvIFRlbGVjb20gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJRmxvb3IgNiBCdWlsZGluZyAxOCwzMDAgVGlhbmxpbiBSZC4KKwkJCQlTaGFuZ2hhaSAgMjAwMjMzCisJCQkJQ0hJTkEKKworMDAtMEItRjYgICAoaGV4KQkJTml0Z2VuIENvLiwgTHRkCiswMDBCRjYgICAgIChiYXNlIDE2KQkJTml0Z2VuIENvLiwgTHRkCisJCQkJNHRoIEZMLiAxMzM3LTMxIFNlb2Noby1kb25nLCBTZW9jaG8ta3UKKwkJCQlTZW91bCAgMTM3LTg2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi1GNyAgIChoZXgpCQlOSURFSyBDTy4sTFRECiswMDBCRjcgICAgIChiYXNlIDE2KQkJTklERUsgQ08uLExURAorCQkJCTM0LTE0IE1hZWhhbWEKKwkJCQlIaXJvaXNoaS1jaG8KKwkJCQlHYW1hZ29yaSBBaWNoIDQ0My0wMDM4CisJCQkJSkFQQU4KKworMDAtMEItRjggICAoaGV4KQkJSW5maW5lcmEKKzAwMEJGOCAgICAgKGJhc2UgMTYpCQlJbmZpbmVyYQorCQkJCTEzMjIgQm9yZGVhdXggRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUY5ICAgKGhleCkJCUdlbXN0b25lIGNvbW11bmljYXRpb25zLCBJbmMuCiswMDBCRjkgICAgIChiYXNlIDE2KQkJR2Vtc3RvbmUgY29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk2RmwuLCBOby4gMTAyLCAgSGVuZ3lhbmcgUmQuCisJCQkJVGFpcGVpICAxMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLUZBICAgKGhleCkJCUVYRU1ZUyBTUkwKKzAwMEJGQSAgICAgKGJhc2UgMTYpCQlFWEVNWVMgU1JMCisJCQkJTE9ZT0xBIDY4MAorCQkJCUNBUElUQUwgRkVERVJBTCBCUyBBUyBDMTQxNAorCQkJCUFSR0VOVElOQQorCiswMC0wQi1GQiAgIChoZXgpCQlELU5FVCBJbnRlcm5hdGlvbmFsIENvcnBvcmF0aW9uCiswMDBCRkIgICAgIChiYXNlIDE2KQkJRC1ORVQgSW50ZXJuYXRpb25hbCBDb3Jwb3JhdGlvbgorCQkJCTE1LCBXdS1DaHVhbiA1dGggUm9hZCwgV3UtS3UgSW5kdXN0cmlhbAorCQkJCVRhaXBlaSAgSHNpZWggIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItRkMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQkZDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRkQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQkZEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRkUgICAoaGV4KQkJQ0FTVEVMIEJyb2FkYmFuZCBMaW1pdGVkCiswMDBCRkUgICAgIChiYXNlIDE2KQkJQ0FTVEVMIEJyb2FkYmFuZCBMaW1pdGVkCisJCQkJOS9GLiwgU3VpIFlpbmcgSW5kdXN0cmlhbCBCdWlsZGluZy4sCisJCQkJVG9rd2F3YW4gS293bG9vbiAxNTAKKwkJCQlIT05HIEtPTkcKKworMDAtMEItRkYgICAoaGV4KQkJQmVya2VsZXkgQ2FtZXJhIEVuZ2luZWVyaW5nCiswMDBCRkYgICAgIChiYXNlIDE2KQkJQmVya2VsZXkgQ2FtZXJhIEVuZ2luZWVyaW5nCisJCQkJMTI3IE5hdGlvbmFsIFN0cmVldAorCQkJCVNhbnRhIENydXogQ0EgOTUwNjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTAwICAgKGhleCkJCUJFQiBJbmR1c3RyaWUtRWxla3Ryb25payBBRworMDAwQzAwICAgICAoYmFzZSAxNikJCUJFQiBJbmR1c3RyaWUtRWxla3Ryb25payBBRworCQkJCVByb2dyZXNzYXN0cmFzc2UgMzEKKwkJCQlPYmVyYnVyZyBCRSAzNDE0CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEMtMDEgICAoaGV4KQkJQWJhdHJvbiBBRworMDAwQzAxICAgICAoYmFzZSAxNikJCUFiYXRyb24gQUcKKwkJCQlMZXR0ZW5zdHJhc3NlIDkKKwkJCQlSb3RrcmV1eiAgQ0gtNjM0MworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBDLTAyICAgKGhleCkJCUFCQiBPeQorMDAwQzAyICAgICAoYmFzZSAxNikJCUFCQiBPeQorCQkJCVAuTy5Cb3ggODkKKwkJCQlUdXJrdSAgRklOLTIwNTIxCisJCQkJRklOTEFORAorCiswMC0wQy0wMyAgIChoZXgpCQlIRE1JIExpY2Vuc2luZywgTExDCiswMDBDMDMgICAgIChiYXNlIDE2KQkJSERNSSBMaWNlbnNpbmcsIExMQworCQkJCTEwNjAgRWFzdCBBcnF1ZXMgQXZlLgorCQkJCVN1aXRlIDEwMAorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMDQgICAoaGV4KQkJVGVjbm92YQorMDAwQzA0ICAgICAoYmFzZSAxNikJCVRlY25vdmEKKwkJCQkxNDg2IFN0LiBQYXVsIEF2ZS4KKwkJCQlHdXJuZWUgSWxsaW5vaXMgNjAwMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTA1ICAgKGhleCkJCVJQQSBSZXNlcmNoIENvLiwgTHRkLgorMDAwQzA1ICAgICAoYmFzZSAxNikJCVJQQSBSZXNlcmNoIENvLiwgTHRkLgorCQkJCTRGLCA5MC03LCBZYW5namFlLURvbmcsIFNlb2Noby1LdQorCQkJCVNlb3VsLCBLb3JlYQorCQkJCVNlb3VsICAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTA2ICAgKGhleCkJCU5peHZ1ZSBTeXN0ZW1zICBQdGUgTHRkCiswMDBDMDYgICAgIChiYXNlIDE2KQkJTml4dnVlIFN5c3RlbXMgIFB0ZSBMdGQKKwkJCQkzMCBMb3lhbmcgV2F5LCAjMDctMDIKKwkJCQlTaW5nYXBvcmUgU2luZ2Fwb3JlIFM1MDg3NjkKKwkJCQlTSU5HQVBPUkUKKworMDAtMEMtMDcgICAoaGV4KQkJSWZ0ZXN0IEFHCiswMDBDMDcgICAgIChiYXNlIDE2KQkJSWZ0ZXN0IEFHCisJCQkJU2Nod2ltbWJhZHN0cmFzc2UgNDMKKwkJCQlXZXR0aW5nZW4gQUcgNTQzMAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBDLTA4ICAgKGhleCkJCUhVTUVYIFRlY2hub2xvZ2llcyBDb3JwLgorMDAwQzA4ICAgICAoYmFzZSAxNikJCUhVTUVYIFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCTVGLCBOby41LCBMYW5lIDQ0LCBTenUgV2VpIFJkLiBUYWFuIFRhaXAKKwkJCQlUYWlwZWkgIDEwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtMDkgICAoaGV4KQkJSGl0YWNoaSBJRSBTeXN0ZW1zIENvLiwgTHRkCiswMDBDMDkgICAgIChiYXNlIDE2KQkJSGl0YWNoaSBJRSBTeXN0ZW1zIENvLiwgTHRkCisJCQkJU2Fpd2FpLWNobyAxMjAtMSxJbmF6YXdhLXNoaQorCQkJCUFpY2hpIDQ5Mi04NjIyLEphcGFuCisJCQkJSW5hemF3YS1zaGkgQWljaGkgNDkyLTg2MjIKKwkJCQlKQVBBTgorCiswMC0wQy0wQSAgIChoZXgpCQlHdWFuZ2RvbmcgUHJvdmluY2UgRWxlY3Ryb25pYyBUZWNobm9sb2d5IFJlc2VhcmNoIEluc3RpdHV0ZQorMDAwQzBBICAgICAoYmFzZSAxNikJCUd1YW5nZG9uZyBQcm92aW5jZSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgUmVzZWFyY2ggSW5zdGl0dXRlCisJCQkJRWxlY3Ryb25pYyBUZWNobm9sb2d5IEJ1aWxkaW5nLE5PLjYxLTY1LAorCQkJCVdlc3QgWmhvbmdzaGFuIEF2ZW51ZSxUaWFuaGUgRGlzdHJpY3QKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDYzMAorCQkJCUNISU5BCisKKzAwLTBDLTBCICAgKGhleCkJCUJyb2FkYnVzIFRlY2hub2xvZ2llcworMDAwQzBCICAgICAoYmFzZSAxNikJCUJyb2FkYnVzIFRlY2hub2xvZ2llcworCQkJCTgwIENlbnRyYWwgU3RyZWV0CisJCQkJQm94Ym9yb3VnaCBNYXNzYWNodXNldHRzIDAxNzE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0wQyAgIChoZXgpCQlBUFBSTyBURUNITk9MT0dZIElOQy4KKzAwMEMwQyAgICAgKGJhc2UgMTYpCQlBUFBSTyBURUNITk9MT0dZIElOQy4KKwkJCQkxM0YsIE5vLiA2NiBDaHVuZy1DaGVuZyBSZCwKKwkJCQlIc2luLUNodWFuZyBUYWlwZWkgMjQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy0wRCAgIChoZXgpCQlDb21tdW5pY2F0aW9ucyAmIFBvd2VyIEluZHVzdHJpZXMgLyBTYXRjb20gRGl2aXNpb24KKzAwMEMwRCAgICAgKGJhc2UgMTYpCQlDb21tdW5pY2F0aW9ucyAmIFBvd2VyIEluZHVzdHJpZXMgLyBTYXRjb20gRGl2aXNpb24KKwkJCQk4MTEgSGFuc2VuIFdheSBNUyBTLTYwMAorCQkJCVBhbG8gQWx0byBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMEUgICAoaGV4KQkJWHRyZW1lU3BlY3RydW0sIEluYy4KKzAwMEMwRSAgICAgKGJhc2UgMTYpCQlYdHJlbWVTcGVjdHJ1bSwgSW5jLgorCQkJCTgxMzMgTGVlc2J1cmcgUGlrZQorCQkJCVZpZW5uYSBWQSAyMjE4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMEYgICAoaGV4KQkJVGVjaG5vLU9uZSBDby4sIEx0ZAorMDAwQzBGICAgICAoYmFzZSAxNikJCVRlY2huby1PbmUgQ28uLCBMdGQKKwkJCQk5LTE3LTEgSGlnYXNoaSBTb25vZGEKKwkJCQlBbWFnYXNha2kgSHlvZ28gNjYxLTA5NTMKKwkJCQlKQVBBTgorCiswMC0wQy0xMCAgIChoZXgpCQlQTkkgQ29ycG9yYXRpb24KKzAwMEMxMCAgICAgKGJhc2UgMTYpCQlQTkkgQ29ycG9yYXRpb24KKwkJCQk1NDY0IFNreWxhbmUgQmx2ZCAjQQorCQkJCVNhbnRhIFJvc2EgQ0EgOTU0MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTExICAgKGhleCkJCU5JUFBPTiBERU1QQSBDTy4sTFRELgorMDAwQzExICAgICAoYmFzZSAxNikJCU5JUFBPTiBERU1QQSBDTy4sTFRELgorCQkJCTEtNC04CisJCQkJa2FtZW5va291CisJCQkJa2FrZWdhd2EgY2l0eSBzaGl6dW9rYSBwcmVmLiA0MzYtMDAyOAorCQkJCUpBUEFOCisKKzAwLTBDLTEyICAgKGhleCkJCU1pY3JvLU9wdHJvbmljLU1lc3N0ZWNobmlrIEdtYkgKKzAwMEMxMiAgICAgKGJhc2UgMTYpCQlNaWNyby1PcHRyb25pYy1NZXNzdGVjaG5payBHbWJICisJCQkJTGVzc2luZ3N0cmFzc2UgMTQKKwkJCQlMYW5nZWJydWVjayBTYXhvbnkgRC0wMTQ2NQorCQkJCUdFUk1BTlkKKworMDAtMEMtMTMgICAoaGV4KQkJTWVkaWFRCiswMDBDMTMgICAgIChiYXNlIDE2KQkJTWVkaWFRCisJCQkJMjk3NSBTYW4gWXNpZHJvIFdheQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0xNCAgIChoZXgpCQlEaWFnbm9zdGljIEluc3RydW1lbnRzLCBJbmMuCiswMDBDMTQgICAgIChiYXNlIDE2KQkJRGlhZ25vc3RpYyBJbnN0cnVtZW50cywgSW5jLgorCQkJCTY1NDAgQnVycm91Z2hzCisJCQkJU3RlcmxpbmcgSGVpZ2h0cyBNSSA0ODMxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMTUgICAoaGV4KQkJQ3liZXJQb3dlciBTeXN0ZW1zLCBJbmMuCiswMDBDMTUgICAgIChiYXNlIDE2KQkJQ3liZXJQb3dlciBTeXN0ZW1zLCBJbmMuCisJCQkJNkYsIE5vLiAzMiwgU2VjLiAxLCBDaGVuZ2dvbmcgUmQuCisJCQkJTmFuaGFuZyBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTE1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy0xNiAgIChoZXgpCQlDb25jb3JkZSBNaWNyb3N5c3RlbXMgSW5jLgorMDAwQzE2ICAgICAoYmFzZSAxNikJCUNvbmNvcmRlIE1pY3Jvc3lzdGVtcyBJbmMuCisJCQkJMTA0MjcgQ29nZGlsbCBSb2FkLCBTdWl0ZSA1MDAKKwkJCQlLbm94dmlsbGUgVE4gMzc5MzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTE3ICAgKGhleCkJCUFKQSBWaWRlbyBTeXN0ZW1zIEluYworMDAwQzE3ICAgICAoYmFzZSAxNikJCUFKQSBWaWRlbyBTeXN0ZW1zIEluYworCQkJCTQ0MyBDcm93biBQb2ludCBDaXJjbGUKKwkJCQlHcmFzcyBWYWxsZXkgQ2FsaWZvcm5pYSA5NTk0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMTggICAoaGV4KQkJWmVuaXN1IEtlaXNva3UgSW5jLgorMDAwQzE4ICAgICAoYmFzZSAxNikJCVplbmlzdSBLZWlzb2t1IEluYy4KKwkJCQkyLTEzLTM3CisJCQkJSG9ubWFjaGkKKwkJCQlGdWNodS1zaGkgVG9reW8gMTgzLTAwMjcKKwkJCQlKQVBBTgorCiswMC0wQy0xOSAgIChoZXgpCQlUZWxpbyBDb21tdW5pY2F0aW9ucyBHbWJICiswMDBDMTkgICAgIChiYXNlIDE2KQkJVGVsaW8gQ29tbXVuaWNhdGlvbnMgR21iSAorCQkJCUVsYmNoYXVzc2VlIDEKKwkJCQlIYW1idXJnICAyMjc2NQorCQkJCUdFUk1BTlkKKworMDAtMEMtMUEgICAoaGV4KQkJUXVlc3QgVGVjaG5pY2FsIFNvbHV0aW9ucyBJbmMuCiswMDBDMUEgICAgIChiYXNlIDE2KQkJUXVlc3QgVGVjaG5pY2FsIFNvbHV0aW9ucyBJbmMuCisJCQkJNDExMCBNb3VybmluZyBEb3ZlIENydC4KKwkJCQlNZWxib3VybmUgRkwgMzI5MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTFCICAgKGhleCkJCU9SQUNPTSBDbywgTHRkLgorMDAwQzFCICAgICAoYmFzZSAxNikJCU9SQUNPTSBDbywgTHRkLgorCQkJCTNyZCBGbCwgQS1TdW5nIEJsZGcsIDk5OS0zCisJCQkJRGVhY2hpLURvbmcsIEthbmduYW0tR3UKKwkJCQlTZW91bCAgMTM1LTI4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy0xQyAgIChoZXgpCQlNaWNyb1dlYiBDby4sIEx0ZC4KKzAwMEMxQyAgICAgKGJhc2UgMTYpCQlNaWNyb1dlYiBDby4sIEx0ZC4KKwkJCQk0MDMgVC9TL1MvQywgMjMtMTQgSmFuZy1kb25nLCBZdXNvbmctZ3UsCisJCQkJRGFlamVvbiBDaG9vbmdDaHVuZ0RvIDMwNS0zNDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtMUQgICAoaGV4KQkJTWV0dGxlciAmIEZ1Y2hzIEFHCiswMDBDMUQgICAgIChiYXNlIDE2KQkJTWV0dGxlciAmIEZ1Y2hzIEFHCisJCQkJUXVlcnN0cmFzc2UgMTcKKwkJCQlDSC04OTUxIEZhaHJ3ZWlkIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBDLTFFICAgKGhleCkJCUdsb2JhbCBDYWNoZQorMDAwQzFFICAgICAoYmFzZSAxNikJCUdsb2JhbCBDYWNoZQorCQkJCTE2MCBFYXN0IENhbGlmb3JuaWEgU3RyZWV0CisJCQkJUE9CIDE2NTkKKwkJCQlKYWNrc29udmlsbGUgT1IgOTc1MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTFGICAgKGhleCkJCUdsaW1tZXJnbGFzcyBOZXR3b3JrcworMDAwQzFGICAgICAoYmFzZSAxNikJCUdsaW1tZXJnbGFzcyBOZXR3b3JrcworCQkJCTI2MTQyIEVkZW4gTGFuZGluZyBSb2FkCisJCQkJSGF5d2FyZCBDYWxpZm9ybmlhIDk0NTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0yMCAgIChoZXgpCQlGaSBXSW4sIEluYy4KKzAwMEMyMCAgICAgKGJhc2UgMTYpCQlGaSBXSW4sIEluYy4KKwkJCQk4RiwgTm8uIDEwLCBQcm9zcGVyaXR5IFJkLiAxLAorCQkJCVNjaWVuY2UgQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbiBDaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtMjEgICAoaGV4KQkJRmFjdWx0eSBvZiBTY2llbmNlIGFuZCBUZWNobm9sb2d5LCBLZWlvIFVuaXZlcnNpdHkKKzAwMEMyMSAgICAgKGJhc2UgMTYpCQlGYWN1bHR5IG9mIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3ksIEtlaW8gVW5pdmVyc2l0eQorCQkJCTMtMTQtMSBIaXlvc2hpLCBLb2hva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjMtODUyMgorCQkJCUpBUEFOCisKKzAwLTBDLTIyICAgKGhleCkJCURvdWJsZSBEIEVsZWN0cm9uaWNzIEx0ZAorMDAwQzIyICAgICAoYmFzZSAxNikJCURvdWJsZSBEIEVsZWN0cm9uaWNzIEx0ZAorCQkJCVVuaXQgNiwgUm9iaW5zIFdoYXJmCisJCQkJR3JvdmUgUm9hZAorCQkJCU5vcnRoZmxlZXQgS2VudCBEQTExIDlBWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBDLTIzICAgKGhleCkJCUJlaWppbmcgTGFuY2h1YW4gVGVjaC4gQ28uLCBMdGQuCiswMDBDMjMgICAgIChiYXNlIDE2KQkJQmVpamluZyBMYW5jaHVhbiBUZWNoLiBDby4sIEx0ZC4KKwkJCQlSbTIyMCxOby4zMCBTaGFuZ3l1YW5jdW4sCisJCQkJR2FvbGlhbmdxaWFvbHUsSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA0NAorCQkJCUNISU5BCisKKzAwLTBDLTI0ICAgKGhleCkJCUFOQVRPUgorMDAwQzI0ICAgICAoYmFzZSAxNikJCUFOQVRPUgorCQkJCTQ0LCBydWUgZCdFc3RpZW5uZSBkJ09ydmVzCisJCQkJc2FydHJvdXZpbGxlIHl2ZWxpbmVzIDc4NTAwCisJCQkJRlJBTkNFCisKKzAwLTBDLTI1ICAgKGhleCkJCUFsbGllZCBUZWxlc3luIE5ldHdvcmtzCiswMDBDMjUgICAgIChiYXNlIDE2KQkJQWxsaWVkIFRlbGVzeW4gTmV0d29ya3MKKwkJCQlTdWl0ZSA0NTAKKwkJCQk5MjAgTWFpbiBDYW1wdXMgRHJpdmUKKwkJCQlSYWxlaWdoIE5DIDI3NjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0yNiAgIChoZXgpCQlXZWludGVrIExhYnMuIEluYy4KKzAwMEMyNiAgICAgKGJhc2UgMTYpCQlXZWludGVrIExhYnMuIEluYy4KKwkJCQkzRiwgTm8uOTEwLCBDaHVuZyBDaGVuZyBSZC4KKwkJCQlDaHVuZyBIbyBjaXR5IFRhaXBlaSBIc2llbiAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTI3ICAgKGhleCkJCVNhbW15IENvcnBvcmF0aW9uCiswMDBDMjcgICAgIChiYXNlIDE2KQkJU2FtbXkgQ29ycG9yYXRpb24KKwkJCQlTVU4gU0hJTkU2MCA0NUYsMy0xLTEsSElHQVNISS1JS0VCVUtVUk8KKwkJCQlUT1NISU1BLUtVIFRPS1lPIDE3MC02MDQ1CisJCQkJSkFQQU4KKworMDAtMEMtMjggICAoaGV4KQkJUklGQVRST04KKzAwMEMyOCAgICAgKGJhc2UgMTYpCQlSSUZBVFJPTgorCQkJCTl0aCBGTCwgU0hJTlRBRVlBTkcgQkxERworCQkJCTczNi04LCBCQU5QTy1ET05HCisJCQkJU0VPVUwgU0VPQ0hPLUdVIDEzNy0wNDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtMjkgICAoaGV4KQkJVk13YXJlLCBJbmMuCiswMDBDMjkgICAgIChiYXNlIDE2KQkJVk13YXJlLCBJbmMuCisJCQkJMzQwMSBIaWxsdmlldyBBdmVudWUKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTJBICAgKGhleCkJCU9DVFRFTCBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorMDAwQzJBICAgICAoYmFzZSAxNikJCU9DVFRFTCBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorCQkJCTdGLTEsIE5vLjMwMCwgRGFkdWVuIDEwdGggU3QuCisJCQkJVGFpY2h1bmcgQ2l0eSAgNDA4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy0yQiAgIChoZXgpCQlFTElBUyBUZWNobm9sb2d5LCBJbmMuCiswMDBDMkIgICAgIChiYXNlIDE2KQkJRUxJQVMgVGVjaG5vbG9neSwgSW5jLgorCQkJCTNGLCAxMDE1LCBZdW5nLUFuIFJvYWQsCisJCQkJVGFveXVhbiBDaXR5IFRhb3l1YW4gMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy0yQyAgIChoZXgpCQlFbndpc2VyIEluYy4KKzAwMEMyQyAgICAgKGJhc2UgMTYpCQlFbndpc2VyIEluYy4KKwkJCQk0RiwgQ2hlb25nc2VvayBCL0QKKwkJCQkxMzUtMTEsIE5vbmh5ZW9uLWRvbmcsIEthbmduYW0ta3UKKwkJCQlTZW91bCBTZW91bCAxMzUtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTJEICAgKGhleCkJCUZ1bGxXYXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDBDMkQgICAgIChiYXNlIDE2KQkJRnVsbFdhdmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk3Ri02LCBOby4yNiwgVGFpWXVhbiBTdC4sCisJCQkJSnVCZWkgSHNpbiBDaHUgMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy0yRSAgIChoZXgpCQlPcGVuZXQgaW5mb3JtYXRpb24gdGVjaG5vbG9neShzaGVuemhlbikgQ28uLCBMdGQuCiswMDBDMkUgICAgIChiYXNlIDE2KQkJT3BlbmV0IGluZm9ybWF0aW9uIHRlY2hub2xvZ3koc2hlbnpoZW4pIENvLiwgTHRkLgorCQkJCTIvRixBIHRvd2VyLGludGVybmF0aW9uYWwgdGVjaC1pbm5vdmF0aW8KKwkJCQloaWdoLXRlY2ggaW5kdXN0cmlhbCBwYXJrICxzaGVuemhlbiwgUC5SCisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTBDLTJGICAgKGhleCkJCVNlb3JpbVRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMEMyRiAgICAgKGJhc2UgMTYpCQlTZW9yaW1UZWNobm9sb2d5IENvLixMdGQuCisJCQkJMkYgRElQTE9NQVRJQyBDRU5URVIgQi9EIDEzNzYtMSBTRU9DSE8yLQorCQkJCVNFT1VMICAxMzctMDcyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTMwICAgKGhleCkJCUNpc2NvCiswMDBDMzAgICAgIChiYXNlIDE2KQkJQ2lzY28KKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMzEgICAoaGV4KQkJQ2lzY28KKzAwMEMzMSAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENhIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0zMiAgIChoZXgpCQlBdmlvbmljIERlc2lnbiBEZXZlbG9wbWVudCBHbWJICiswMDBDMzIgICAgIChiYXNlIDE2KQkJQXZpb25pYyBEZXNpZ24gRGV2ZWxvcG1lbnQgR21iSAorCQkJCVN0aGFtZXJzdHJhc3NlIDI0YQorCQkJCUhhbWJ1cmcgIDIyMzk3CisJCQkJR0VSTUFOWQorCiswMC0wQy0zMyAgIChoZXgpCQlDb21wdWNhc2UgRW50ZXJwcmlzZSBDby4gTHRkLgorMDAwQzMzICAgICAoYmFzZSAxNikJCUNvbXB1Y2FzZSBFbnRlcnByaXNlIENvLiBMdGQuCisJCQkJMjI1IExhbmUgNTQsIEFuIEhvIFJvYWQsIFNlY3Rpb24gMm5kLgorCQkJCVRhaW5hbiBDaXR5ICA3MDk0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtMzQgICAoaGV4KQkJVml4ZW4gQ28uLCBMdGQuCiswMDBDMzQgICAgIChiYXNlIDE2KQkJVml4ZW4gQ28uLCBMdGQuCisJCQkJNS0xNy0zIEhpZ2FzaGl0b2tvcm96YXdhCisJCQkJVG9rb3JvemF3YSBTYWl0YW1hIDM1OS0wMDIxCisJCQkJSkFQQU4KKworMDAtMEMtMzUgICAoaGV4KQkJS2FWbyBEZW50YWwgR21iSCAmIENvLiBLRworMDAwQzM1ICAgICAoYmFzZSAxNikJCUthVm8gRGVudGFsIEdtYkggJiBDby4gS0cKKwkJCQlCaXNtYXJrcmluZyAzOQorCQkJCUJpYmVyYWNoL1Jpc3MgQmFkZW4tV3VlcnR0ZW1iZXJnIDg4NDAwCisJCQkJR0VSTUFOWQorCiswMC0wQy0zNiAgIChoZXgpCQlTSEFSUCBUQUtBWUEgRUxFQ1RST05JQ1MgSU5EVVNUUlkgQ08uLExURC4KKzAwMEMzNiAgICAgKGJhc2UgMTYpCQlTSEFSUCBUQUtBWUEgRUxFQ1RST05JQ1MgSU5EVVNUUlkgQ08uLExURC4KKwkJCQkzMTIxLTEgU2F0b21pIFNhdG9zaG8tY2hvCisJCQkJQXNha3VjaGktZ3VuIE9rYXlhbWEgNzE5LTAzMDEKKwkJCQlKQVBBTgorCiswMC0wQy0zNyAgIChoZXgpCQlHZW9tYXRpb24sIEluYy4KKzAwMEMzNyAgICAgKGJhc2UgMTYpCQlHZW9tYXRpb24sIEluYy4KKwkJCQkyNTE4OCBHZW5lc2VlIFRyYWlsIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlHb2xkZW4gQ08gODA0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTM4ICAgKGhleCkJCVRlbGNvQnJpZGdlcyBJbmMuCiswMDBDMzggICAgIChiYXNlIDE2KQkJVGVsY29CcmlkZ2VzIEluYy4KKwkJCQk1ODYgRHUgQ2hlbmFsCisJCQkJUmVwZW50aWdueSBRdWViZWMgSjZBIDdDNQorCQkJCUNBTkFEQQorCiswMC0wQy0zOSAgIChoZXgpCQlTZW50aW5lbCBXaXJlbGVzcyBJbmMuCiswMDBDMzkgICAgIChiYXNlIDE2KQkJU2VudGluZWwgV2lyZWxlc3MgSW5jLgorCQkJCTQzOSBTLiBVbmlvbiBTdC4KKwkJCQlTb3V0aCBMYXdyZW5jZSBNQSAwMTg0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtM0EgICAoaGV4KQkJT3hhbmNlCiswMDBDM0EgICAgIChiYXNlIDE2KQkJT3hhbmNlCisJCQkJNzUtODUgcnVlIFJpY2hlbGlldQorCQkJCWxlcyBMdWNzIHN1ciBCb3Vsb2duZSAgODUxNzAKKwkJCQlGUkFOQ0UKKworMDAtMEMtM0IgICAoaGV4KQkJT3Jpb24gRWxlY3RyaWMgQ28uLCBMdGQuCiswMDBDM0IgICAgIChiYXNlIDE2KQkJT3Jpb24gRWxlY3RyaWMgQ28uLCBMdGQuCisJCQkJNDEtMSwgSWVoaXNhLWNobworCQkJCVRha2VmdS1zaGkgRnVrdWkgOTE1LTg1NTUKKwkJCQlKQVBBTgorCiswMC0wQy0zQyAgIChoZXgpCQlNZWRpYUNob3J1cywgSW5jLgorMDAwQzNDICAgICAoYmFzZSAxNikJCU1lZGlhQ2hvcnVzLCBJbmMuCisJCQkJIzIwNSwgRVRSSSBUQkkgMiBDZW50ZXIKKwkJCQlVZXVuLURvbmcsIFl1c29uZy1HdQorCQkJCURhZWpvbiBESiAzMDUtMzMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTNEICAgKGhleCkJCUdsc3lzdGVjaCBDby4sIEx0ZC4KKzAwMEMzRCAgICAgKGJhc2UgMTYpCQlHbHN5c3RlY2ggQ28uLCBMdGQuCisJCQkJU29uZyBCbyBCL0QgM0YKKwkJCQkyMTItMTAsIEt1bmctRG9uZywgS3VybyBHdQorCQkJCVNlb3VsICAxNTItODgzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTNFICAgKGhleCkJCUNyZXN0IEF1ZGlvCiswMDBDM0UgICAgIChiYXNlIDE2KQkJQ3Jlc3QgQXVkaW8KKwkJCQkxNi0wMCBQb2xsaXR0IERyaXZlCisJCQkJRmFpciBMYXduIE5KIDA3NDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0zRiAgIChoZXgpCQlDb2dlbnQgRGVmZW5jZSAmIFNlY3VyaXR5IE5ldHdvcmtzLAorMDAwQzNGICAgICAoYmFzZSAxNikJCUNvZ2VudCBEZWZlbmNlICYgU2VjdXJpdHkgTmV0d29ya3MsCisJCQkJTWVhZG93cyBSb2FkLAorCQkJCVF1ZWVuc3dheSBNZWFkb3dzIEluZCBFc3RhdGUsCisJCQkJTmV3cG9ydCwgU291dGggV2FsZXMsIE5QMTkgNFNTCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEMtNDAgICAoaGV4KQkJQWx0ZWNoIENvbnRyb2xzCiswMDBDNDAgICAgIChiYXNlIDE2KQkJQWx0ZWNoIENvbnRyb2xzCisJCQkJMTU0NSBJbmR1c3RpYWwgRHJpdmUKKwkJCQlNaXNzb3VyaSBDaXR5IFRleGFzIDc3NDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy00MSAgIChoZXgpCQlDaXNjby1MaW5rc3lzCiswMDBDNDEgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cworCQkJCTEyMSBUaGVvcnkgRHIuCisJCQkJSXJ2aW5lIENBIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy00MiAgIChoZXgpCQlSb3V0ZXJib2FyZC5jb20KKzAwMEM0MiAgICAgKGJhc2UgMTYpCQlSb3V0ZXJib2FyZC5jb20KKwkJCQlQZXJuYXZhcyA0NgorCQkJCVJpZ2EgIExWLTEwMDkKKwkJCQlMQVRWSUEKKworMDAtMEMtNDMgICAoaGV4KQkJUmFsaW5rIFRlY2hub2xvZ3ksIENvcnAuCiswMDBDNDMgICAgIChiYXNlIDE2KQkJUmFsaW5rIFRlY2hub2xvZ3ksIENvcnAuCisJCQkJNEYsIE5vLjIsIFRlY2hub2xvZ3kgNXRoIFJvYWQsCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbi1DaHUgIDIwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtNDQgICAoaGV4KQkJQXV0b21hdGVkIEludGVyZmFjZXMsIEluYy4KKzAwMEM0NCAgICAgKGJhc2UgMTYpCQlBdXRvbWF0ZWQgSW50ZXJmYWNlcywgSW5jLgorCQkJCTEyMCBDb25mZWRlcmF0ZSBMYW5lCisJCQkJR3JlZXIgU291dGggQ2Fyb2xpbmEgMjk2NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTQ1ICAgKGhleCkJCUFuaW1hdGlvbiBUZWNobm9sb2dpZXMgSW5jLgorMDAwQzQ1ICAgICAoYmFzZSAxNikJCUFuaW1hdGlvbiBUZWNobm9sb2dpZXMgSW5jLgorCQkJCThGLE5vLjEzOCxMYW5lIDIzNSxQYW9jaGlhbyBSb2FkLAorCQkJCUhzaW4gVGllbgorCQkJCVRhaXBlaSBIc2llbiAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy00NiAgIChoZXgpCQlBbGxpZWQgVGVsZXN5biBJbmMuCiswMDBDNDYgICAgIChiYXNlIDE2KQkJQWxsaWVkIFRlbGVzeW4gSW5jLgorCQkJCTk2MCBTdGV3YXJ0IERyaXZlLCBTdWl0ZSBCCisJCQkJU3Vubnl2YWxlIENhbGlmb3JuaWEgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTQ3ICAgKGhleCkJCVNLIFRlbGV0ZWNoKFImRCBQbGFubmluZyBUZWFtKQorMDAwQzQ3ICAgICAoYmFzZSAxNikJCVNLIFRlbGV0ZWNoKFImRCBQbGFubmluZyBUZWFtKQorCQkJCTIxdGggRkwgU3RhcnRvd2VyIDczNywgWWVva3NhbS1kb25nCisJCQkJS2FuZ25hbS1LdQorCQkJCVNlb3VsICAxMzUtOTg0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTQ4ICAgKGhleCkJCVFvU3RlayBDb3Jwb3JhdGlvbgorMDAwQzQ4ICAgICAoYmFzZSAxNikJCVFvU3RlayBDb3Jwb3JhdGlvbgorCQkJCTdGLCAyMiwgVGFpeXVlbiBTdHJlZXQKKwkJCQlDaHVwZWkgSHNpbmNodSBIc2llbiAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTQ5ICAgKGhleCkJCURhbmdhYXJkIFRlbGVjb20gUlRDIERpdmlzaW9uIEEvUworMDAwQzQ5ICAgICAoYmFzZSAxNikJCURhbmdhYXJkIFRlbGVjb20gUlRDIERpdmlzaW9uIEEvUworCQkJCUluZHVzdHJpdmVqIDEKKwkJCQlESyAyNjE1NDU1MworCQkJCVBhZGJvcmcgIERLLTYzMzAKKwkJCQlERU5NQVJLCisKKzAwLTBDLTRBICAgKGhleCkJCUN5Z251cyBNaWNyb3N5c3RlbXMgKFApIExpbWl0ZWQKKzAwMEM0QSAgICAgKGJhc2UgMTYpCQlDeWdudXMgTWljcm9zeXN0ZW1zIChQKSBMaW1pdGVkCisJCQkJOTMsIFBoYXNlIElJLAorCQkJCUlEQSwgQ2hlcmxhcGFsbHkKKwkJCQlIeWRlcmFiYWQgQW5kaHJhIFByYWRlc2ggNTAwMDUxCisJCQkJSU5ESUEKKworMDAtMEMtNEIgICAoaGV4KQkJQ2hlb3BzIEVsZWt0cm9uaWsKKzAwMEM0QiAgICAgKGJhc2UgMTYpCQlDaGVvcHMgRWxla3Ryb25paworCQkJCUplc2Noa2Vuc3RyYXNzZSAzMgorCQkJCUdlcmV0c3JpZWQgQmF5ZXJuIDgyNTM4CisJCQkJR0VSTUFOWQorCiswMC0wQy00QyAgIChoZXgpCQlBcmNvciBBRyZDby4KKzAwMEM0QyAgICAgKGJhc2UgMTYpCQlBcmNvciBBRyZDby4KKwkJCQlBbGZyZWQtSGVycmhhdXNlbi1BbGxlZSAxCisJCQkJRXNjaGJvcm4gSGVzc2VuIDY1NzYwCisJCQkJR0VSTUFOWQorCiswMC0wQy00RCAgIChoZXgpCQlBQ1JBIENPTlRST0wKKzAwMEM0RCAgICAgKGJhc2UgMTYpCQlBQ1JBIENPTlRST0wKKwkJCQlMYW5kc2NhcGUgSG91c2UsCisJCQkJTGFuZHNjYXBlIFJvYWQsCisJCQkJQ2h1cmNodG93biwgRHVibGluIDE0CisJCQkJSVJFTEFORAorCiswMC0wQy00RSAgIChoZXgpCQlXaW5iZXN0IFRlY2hub2xvZ3kgQ08sTFQKKzAwMEM0RSAgICAgKGJhc2UgMTYpCQlXaW5iZXN0IFRlY2hub2xvZ3kgQ08sTFQKKwkJCQk3Ri01Tm8uNzM2IENodW5nIENoZW5nUmQuLENodW5nSG8KKwkJCQlUYWlwZWkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtNEYgICAoaGV4KQkJVURUZWNoIEphcGFuIENvcnBvcmF0aW9uCiswMDBDNEYgICAgIChiYXNlIDE2KQkJVURUZWNoIEphcGFuIENvcnBvcmF0aW9uCisJCQkJSGFtYWNobyBIYW5hY2hvIEJsZGcsIDJGCisJCQkJMi0xNy04IE5paG9uYmFzaGktSGFtYWNobworCQkJCUNodW8ta3UgVG9reW8gMTAzLTAwMDcKKwkJCQlKQVBBTgorCiswMC0wQy01MCAgIChoZXgpCQlTZWFnYXRlIFRlY2hub2xvZ3kKKzAwMEM1MCAgICAgKGJhc2UgMTYpCQlTZWFnYXRlIFRlY2hub2xvZ3kKKwkJCQkxMjgwIERpc2MgRHJpdmUKKwkJCQlTaGFrb3BlZSBNTiA1NTM3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNTEgICAoaGV4KQkJU2NpZW50aWZpYyBUZWNobm9sb2dpZXMgSW5jLgorMDAwQzUxICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMgVGVjaG5vbG9naWVzIEluYy4KKwkJCQk2NTUwIER1bWJhcnRvbiBDaXJjbGUKKwkJCQlGcmVtb250IENBIDk0NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy01MiAgIChoZXgpCQlSb2xsIFN5c3RlbXMgSW5jLgorMDAwQzUyICAgICAoYmFzZSAxNikJCVJvbGwgU3lzdGVtcyBJbmMuCisJCQkJNTMgVGhpcmQgQXZlbnVlCisJCQkJQnVybGluZ3RvbiBNQSAwMTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNTMgICAoaGV4KQkJUFJJVkFURQorMDAwQzUzICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wQy01NCAgIChoZXgpCQlQZWRlc3RhbCBOZXR3b3JrcywgSW5jCiswMDBDNTQgICAgIChiYXNlIDE2KQkJUGVkZXN0YWwgTmV0d29ya3MsIEluYworCQkJCTY1MDMgRHVtYmFydG9uIENpcmNsZQorCQkJCUZyZW1vbnQgQ0EgOTQ1NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTU1ICAgKGhleCkJCU1pY3JvbGluayBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDBDNTUgICAgIChiYXNlIDE2KQkJTWljcm9saW5rIENvbW11bmljYXRpb25zIEluYy4KKwkJCQk4RiwgMzEsIEhzaW50YWkgUm9hZAorCQkJCUNodXBlaSBDaXR5CisJCQkJSHNpbmNodSAgMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy01NiAgIChoZXgpCQlNZWdhdGVsIENvbXB1dGVyICgxOTg2KSBDb3JwLgorMDAwQzU2ICAgICAoYmFzZSAxNikJCU1lZ2F0ZWwgQ29tcHV0ZXIgKDE5ODYpIENvcnAuCisJCQkJNTg2IE1haW4gU3RyZWV0CisJCQkJR2xlbiBXaWxsaWFtcyBPbnRhcmlvIEw3RyAzVDYKKwkJCQlDQU5BREEKKworMDAtMEMtNTcgICAoaGV4KQkJTUFDS0lFIEVuZ2luZWVyaW5nIFNlcnZpY2VzIEJlbGdpdW0gQlZCQQorMDAwQzU3ICAgICAoYmFzZSAxNikJCU1BQ0tJRSBFbmdpbmVlcmluZyBTZXJ2aWNlcyBCZWxnaXVtIEJWQkEKKwkJCQlJbmR1c3RyaWVwYXJrIE5vb3JkIDEwCisJCQkJU2ludCBOaWtsYWFzICBCLTkxMDAKKwkJCQlCRUxHSVVNCisKKzAwLTBDLTU4ICAgKGhleCkJCU0mUyBTeXN0ZW1zCiswMDBDNTggICAgIChiYXNlIDE2KQkJTSZTIFN5c3RlbXMKKwkJCQkyODYxIENvbmdyZXNzbWFuIExhbmUKKwkJCQlEYWxsYXMgVFggNzUyMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTU5ICAgKGhleCkJCUluZHltZSBFbGVjdHJvbmljcywgSW5jLgorMDAwQzU5ICAgICAoYmFzZSAxNikJCUluZHltZSBFbGVjdHJvbmljcywgSW5jLgorCQkJCTkwODUgQWVybyBEci4KKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTVBICAgKGhleCkJCUlCU21tIEluZHVzdHJpZWVsZWt0cm9uaWsgTXVsdGltZWRpYQorMDAwQzVBICAgICAoYmFzZSAxNikJCUlCU21tIEluZHVzdHJpZWVsZWt0cm9uaWsgTXVsdGltZWRpYQorCQkJCUF5aW5nZXIgU3RyLiAxCisJCQkJRmFpc3RlbmhhYXIKKwkJCQlCcnVubnRoYWwgQmF2YXJpYSBELTg1NjQ5CisJCQkJR0VSTUFOWQorCiswMC0wQy01QiAgIChoZXgpCQlIQU5XQU5HIFRFQ0hOT0xPR1kgQ08uLExURAorMDAwQzVCICAgICAoYmFzZSAxNikJCUhBTldBTkcgVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJOEYsQXV0b21hdGlvbiBCdWlsZGluZyw5NSBaaG9uZ2d1YW5jdW4sCisJCQkJSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4MAorCQkJCUNISU5BCisKKzAwLTBDLTVDICAgKGhleCkJCUdUTiBTeXN0ZW1zIEIuVi4KKzAwMEM1QyAgICAgKGJhc2UgMTYpCQlHVE4gU3lzdGVtcyBCLlYuCisJCQkJUG9zdGJ1cyAxMjIzNgorCQkJCTExMDAgQUUKKwkJCQlBbXN0ZXJkYW0gIAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBDLTVEICAgKGhleCkJCUNISUMgVEVDSE5PTE9HWSAoQ0hJTkEpIENPUlAuCiswMDBDNUQgICAgIChiYXNlIDE2KQkJQ0hJQyBURUNITk9MT0dZIChDSElOQSkgQ09SUC4KKwkJCQk3dGggQnVpbGRpbmcsU2hpJ2FvIEluZC5ab25lLExvbmdodWEgVG93CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwOQorCQkJCUNISU5BCisKKzAwLTBDLTVFICAgKGhleCkJCUNhbHlwc28gTWVkaWNhbAorMDAwQzVFICAgICAoYmFzZSAxNikJCUNhbHlwc28gTWVkaWNhbAorCQkJCTIxMDEgRm91cnRoIEF2ZW51ZSwgU3VpdGUgMTU1MAorCQkJCVNlYXR0bGUgV0EgOTgxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTVGICAgKGhleCkJCUF2dGVjLCBJbmMuCiswMDBDNUYgICAgIChiYXNlIDE2KQkJQXZ0ZWMsIEluYy4KKwkJCQk0MzM1IEF1Z3VzdGEgSHd5CisJCQkJR2lsYmVydCBTQyAyOTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNjAgICAoaGV4KQkJQUNNIFN5c3RlbXMKKzAwMEM2MCAgICAgKGJhc2UgMTYpCQlBQ00gU3lzdGVtcworCQkJCTMwMzQgR29sZCBDYW5hbCBEcml2ZQorCQkJCVJhbmNobyBDb3Jkb3ZhIENBIDk1NjcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy02MSAgIChoZXgpCQlBQyBUZWNoIGNvcnBvcmF0aW9uIERCQSBBZHZhbmNlZCBEaWdpdGFsCiswMDBDNjEgICAgIChiYXNlIDE2KQkJQUMgVGVjaCBjb3Jwb3JhdGlvbiBEQkEgQWR2YW5jZWQgRGlnaXRhbAorCQkJCTEyNTAtRyBBdmVuaWRhIEFjYXNvCisJCQkJQ2FtYXJpbGxvIENBIDkzMDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy02MiAgIChoZXgpCQlBQkIgQUIsIENld2UtQ29udHJvbCAKKzAwMEM2MiAgICAgKGJhc2UgMTYpCQlBQkIgQUIsIENld2UtQ29udHJvbCAKKwkJCQlEZXB0LiBMUENDL1JFIAorCQkJCU1vdG9yZ3JhbmQgMjAKKwkJCQlWYXN0ZXJhcyAgNzIxIDYxCisJCQkJU1dFREVOCisKKzAwLTBDLTYzICAgKGhleCkJCVplbml0aCBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorMDAwQzYzICAgICAoYmFzZSAxNikJCVplbml0aCBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorCQkJCTIwMDAgTWlsbGJyb29rIERyaXZlCisJCQkJTGluY29sbnNoaXJlIElsbGlub2lzIDYwMDY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy02NCAgIChoZXgpCQlYMiBNU0EgR3JvdXAKKzAwMEM2NCAgICAgKGJhc2UgMTYpCQlYMiBNU0EgR3JvdXAKKwkJCQlDYXJlIG9mOiBBZ2lsZW50IFRlY2hub2xvZ2llcworCQkJCVdoaXRlIEhvdXNlIFJvYWQKKwkJCQlJcHN3aWNoLCBTdWZmb2xrIElQMSA1UEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQy02NSAgIChoZXgpCQlTdW5pbiBUZWxlY29tCiswMDBDNjUgICAgIChiYXNlIDE2KQkJU3VuaW4gVGVsZWNvbQorCQkJCTEwMjUtNSBEb2tvay1SaSwgV2FidS1FdWIKKwkJCQlOYW15YW5nanUtQ2l0eSBLeXVuZ2dpLURvIDQ3Mi05MDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtNjYgICAoaGV4KQkJUHJvbnRvIE5ldHdvcmtzIEluYworMDAwQzY2ICAgICAoYmFzZSAxNikJCVByb250byBOZXR3b3JrcyBJbmMKKwkJCQk0NjM3IENoYWJvdCBEcgorCQkJCVN1aXRlIDMwMAorCQkJCVBsZWFzYW50b24gQ0EgOTQ1ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTY3ICAgKGhleCkJCU9ZTyBFTEVDVFJJQyBDTy4sTFRECiswMDBDNjcgICAgIChiYXNlIDE2KQkJT1lPIEVMRUNUUklDIENPLixMVEQKKwkJCQk2My0xIE5ha2FtaWNoaSBPbW90ZQorCQkJCUhpcmFrYXdhCisJCQkJSm95byBLeW90byA2MTAtMDEwMQorCQkJCUpBUEFOCisKKzAwLTBDLTY4ICAgKGhleCkJCVNpZ21hVGVsLCBJbmMuCiswMDBDNjggICAgIChiYXNlIDE2KQkJU2lnbWFUZWwsIEluYy4KKwkJCQkyMDEgSm9uZXMgUm9hZAorCQkJCVdhbHRoYW0gTUEgMDI0NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTY5ICAgKGhleCkJCU5hdGlvbmFsIFJhZGlvIEFzdHJvbm9teSBPYnNlcnZhdG9yeQorMDAwQzY5ICAgICAoYmFzZSAxNikJCU5hdGlvbmFsIFJhZGlvIEFzdHJvbm9teSBPYnNlcnZhdG9yeQorCQkJCVAuTy4gQm94IE8KKwkJCQlTb2NvcnJvIE5NIDg3ODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy02QSAgIChoZXgpCQlNQkFSSQorMDAwQzZBICAgICAoYmFzZSAxNikJCU1CQVJJCisJCQkJNzcwMCBTYW5kaG9sZHQgUm9hZAorCQkJCU1vc3MgTGFuZGluZyBDQSA5NTAzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNkIgICAoaGV4KQkJS3VyeiBJbmR1c3RyaWUtRWxla3Ryb25payBHbWJICiswMDBDNkIgICAgIChiYXNlIDE2KQkJS3VyeiBJbmR1c3RyaWUtRWxla3Ryb25payBHbWJICisJCQkJRm9laHJlbmJhY2hzdHJhc3NlIDMKKwkJCQlSZW1zaGFsZGVuIEJhZGVuLVd1cnR0ZW1iZXJnIDczNjMwCisJCQkJR0VSTUFOWQorCiswMC0wQy02QyAgIChoZXgpCQlFbGdhdG8gU3lzdGVtcyBMTEMKKzAwMEM2QyAgICAgKGJhc2UgMTYpCQlFbGdhdG8gU3lzdGVtcyBMTEMKKwkJCQk5MDAgS2Vhcm55IFN0ICM3NTAKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy02RCAgIChoZXgpCQlFZHdhcmRzIEx0ZC4KKzAwMEM2RCAgICAgKGJhc2UgMTYpCQlFZHdhcmRzIEx0ZC4KKwkJCQlNYXJzaGFsbCBSb2FkCisJCQkJRWFzdGJvdXJuZSBFYXN0IFN1c3NleCBCTjIyIDlCQQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBDLTZFICAgKGhleCkJCUFTVVNURUsgQ09NUFVURVIgSU5DLgorMDAwQzZFICAgICAoYmFzZSAxNikJCUFTVVNURUsgQ09NUFVURVIgSU5DLgorCQkJCTE1MCwgTGktVGUgUmQuLCBQZWlUb3UKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtNkYgICAoaGV4KQkJQW10ZWsgc3lzdGVtIGNvLixMVEQuCiswMDBDNkYgICAgIChiYXNlIDE2KQkJQW10ZWsgc3lzdGVtIGNvLixMVEQuCisJCQkJMTRGLTExLE5vLjc5LFNlYy4gMSAsSHNpbiBUYWkgV3UgUmQuLAorCQkJCUhzaSBDaGloIENpdHkKKwkJCQlUYWlwZWkgIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtNzAgICAoaGV4KQkJQUNDIEdtYkgKKzAwMEM3MCAgICAgKGJhc2UgMTYpCQlBQ0MgR21iSAorCQkJCUFtIFNhbmRmZWxkIDE1CisJCQkJS2FybHNydWhlIEJhZGVuIDc2MTQ5CisJCQkJR0VSTUFOWQorCiswMC0wQy03MSAgIChoZXgpCQlXeWJyb24sIEluYworMDAwQzcxICAgICAoYmFzZSAxNikJCVd5YnJvbiwgSW5jCisJCQkJNDgzMCBMSXN0IERyCisJCQkJQ29sb3JhZG8gU3ByaW5ncyBDb2xvcmFkbyA4MDkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNzIgICAoaGV4KQkJVGVtcGVhcmwgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzAwMEM3MiAgICAgKGJhc2UgMTYpCQlUZW1wZWFybCBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTMtMS00MiBPaHp1CisJCQkJTWluYW1pLWt1CisJCQkJSGlyb3NoaW1hLXNoaSBIaXJvc2hpbWEgNzMyLTA4MDIKKwkJCQlKQVBBTgorCiswMC0wQy03MyAgIChoZXgpCQlURUxTT04gRUxFQ1RST05JQ1MgQ08uLCBMVEQKKzAwMEM3MyAgICAgKGJhc2UgMTYpCQlURUxTT04gRUxFQ1RST05JQ1MgQ08uLCBMVEQKKwkJCQlUZWxzb24gVmVudHVyZSBUb3dlci4sIDk0OS0zIERvZ29rLURvbmcKKwkJCQlTZW91bCBLYW5nbmFtLUt1IDEzNS03MzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtNzQgICAoaGV4KQkJUklWRVJURUMgQ09SUE9SQVRJT04KKzAwMEM3NCAgICAgKGJhc2UgMTYpCQlSSVZFUlRFQyBDT1JQT1JBVElPTgorCQkJCTg4Mi01IE1JWUFHQVNBS0kKKwkJCQlJTUFCQVJJIEVISU1FIDc5OS0xNTM3CisJCQkJSkFQQU4KKworMDAtMEMtNzUgICAoaGV4KQkJT3JpZW50YWwgaW50ZWdyYXRlZCBlbGVjdHJvbmljcy4gTFRECiswMDBDNzUgICAgIChiYXNlIDE2KQkJT3JpZW50YWwgaW50ZWdyYXRlZCBlbGVjdHJvbmljcy4gTFRECisJCQkJMjgxLTM0IERvbmRhbmctZG9uZyBXb25taS1HdQorCQkJCUJ1Y2hlb24gS3lvdW5na2lkbyA0MjAtODA4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTc2ICAgKGhleCkJCU1JQ1JPLVNUQVIgSU5URVJOQVRJT05BTCBDTy4sIExURC4KKzAwMEM3NiAgICAgKGJhc2UgMTYpCQlNSUNSTy1TVEFSIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCisJCQkJTm8gNjksIExpLURlIFN0cmVldCwgSnVuZy1IZSBDaXR5LCBUYWlwZQorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy03NyAgIChoZXgpCQlMaWZlIFJhY2luZyBMdGQKKzAwMEM3NyAgICAgKGJhc2UgMTYpCQlMaWZlIFJhY2luZyBMdGQKKwkJCQlVbml0IDYgUmVwdG9uIENsb3NlCisJCQkJQnVybnQgTWlsbHMgSW5kIEVzdAorCQkJCUJhc2lsZG9uIEVzc2V4IFNTMTMgMUxFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEMtNzggICAoaGV4KQkJSW4tVGVjaCBFbGVjdHJvbmljcyBMaW1pdGVkCiswMDBDNzggICAgIChiYXNlIDE2KQkJSW4tVGVjaCBFbGVjdHJvbmljcyBMaW1pdGVkCisJCQkJVW5pdCBBLCAxM3RoIEZsb29yLiwgV2luZyBUYWkgQ2VudHJlCisJCQkJMTIgSGluZyBZaXAgU3RyZWV0CisJCQkJS3d1biBUb25nIEtvd2xvb24gCisJCQkJSE9ORyBLT05HCisKKzAwLTBDLTc5ICAgKGhleCkJCUV4dGVsIENvbW11bmljYXRpb25zIFAvTAorMDAwQzc5ICAgICAoYmFzZSAxNikJCUV4dGVsIENvbW11bmljYXRpb25zIFAvTAorCQkJCTM5OSBGZXJudHJlZSBHdWxseSBSb2FkCisJCQkJTXQgV2F2ZXJsZXkgVmljdG9yaWEgMzE0OQorCQkJCUFVU1RSQUxJQQorCiswMC0wQy03QSAgIChoZXgpCQlEYVRBUklVUyBUZWNobm9sb2dpZXMgR21iSAorMDAwQzdBICAgICAoYmFzZSAxNikJCURhVEFSSVVTIFRlY2hub2xvZ2llcyBHbWJICisJCQkJQW50b24gTWFyaWEgU2NoeXJsZSBTdHIuIDcKKwkJCQlSZXV0dGUgVGlyb2wgNjYwMAorCQkJCUFVU1RSSUEKKworMDAtMEMtN0IgICAoaGV4KQkJQUxQSEEgUFJPSkVDVCBDby4sTHRkLgorMDAwQzdCICAgICAoYmFzZSAxNikJCUFMUEhBIFBST0pFQ1QgQ28uLEx0ZC4KKwkJCQk4MzQgU2VraXNoaSxIaWdhc2hpLWt1LEhhbWFtYXRzdS1jaXR5CisJCQkJU2hpenVva2EgIDQzMS0zMTE0CisJCQkJSkFQQU4KKworMDAtMEMtN0MgICAoaGV4KQkJSW50ZXJuZXQgSW5mb3JtYXRpb24gSW1hZ2UgSW5jLgorMDAwQzdDICAgICAoYmFzZSAxNikJCUludGVybmV0IEluZm9ybWF0aW9uIEltYWdlIEluYy4KKwkJCQlGbC4gNiwgTm8uIDEsIEFsbGV5IDIwLCBMYW5lIDI2LCBSdWVpZ3VhCisJCQkJTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtN0QgICAoaGV4KQkJVEVJS09LVSBFTEVDVFJJQyBNRkcuIENPLiwgTFRECiswMDBDN0QgICAgIChiYXNlIDE2KQkJVEVJS09LVSBFTEVDVFJJQyBNRkcuIENPLiwgTFRECisJCQkJNjAsIEhJUkFOTworCQkJCVNISU5HVS1DSE8KKwkJCQlJQk8tR1VOIEhZT0dPIDY3OS00Mzk1CisJCQkJSkFQQU4KKworMDAtMEMtN0UgICAoaGV4KQkJVGVsbGl1bSBJbmNvcnBvcmF0ZWQKKzAwMEM3RSAgICAgKGJhc2UgMTYpCQlUZWxsaXVtIEluY29ycG9yYXRlZAorCQkJCTIgQ3Jlc2NlbnQgUGxhY2UKKwkJCQlPY2VhbnBvcnQgTmV3IEplcnNleSAwNzc1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtN0YgICAoaGV4KQkJc3luZXJ0cm9uaXh4IEdtYkgKKzAwMEM3RiAgICAgKGJhc2UgMTYpCQlzeW5lcnRyb25peHggR21iSAorCQkJCVZhaHJlbndhbGRlciBTdHJhc3NlIDcKKwkJCQlIYW5ub3ZlciBOaWVkZXJzYWNoc2VuIDMwMTY1CisJCQkJR0VSTUFOWQorCiswMC0wQy04MCAgIChoZXgpCQlPcGVsY29tbSBJbmMuCiswMDBDODAgICAgIChiYXNlIDE2KQkJT3BlbGNvbW0gSW5jLgorCQkJCTQ2NzUwIEZyZW1vbnQgQmx2ZC4gU3RlIDIxMAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTgxICAgKGhleCkJCVNjaG5laWRlciBFbGVjdHJpYyAoQXVzdHJhbGlhKSAKKzAwMEM4MSAgICAgKGJhc2UgMTYpCQlTY2huZWlkZXIgRWxlY3RyaWMgKEF1c3RyYWxpYSkgCisJCQkJODAgU2NobmVpZGVyIFJvYWQKKwkJCQlFYWdsZSBGYXJtICBRbGQgNDAwOQorCQkJCUFVU1RSQUxJQQorCiswMC0wQy04MiAgIChoZXgpCQlORVRXT1JLIFRFQ0hOT0xPR0lFUyBJTkMKKzAwMEM4MiAgICAgKGJhc2UgMTYpCQlORVRXT1JLIFRFQ0hOT0xPR0lFUyBJTkMKKwkJCQkxMjc1IERBTk5FUiBEUklWRQorCQkJCUFVUk9SQSBPSCA0NDIwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtODMgICAoaGV4KQkJTG9naWNhbCBTb2x1dGlvbnMKKzAwMEM4MyAgICAgKGJhc2UgMTYpCQlMb2dpY2FsIFNvbHV0aW9ucworCQkJCTEwMFQgV2FzaGluZ3RvbiBTdHJlZXQKKwkJCQlNaWxmb3JkIENUIDA2NDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy04NCAgIChoZXgpCQlFYXppeCwgSW5jLgorMDAwQzg0ICAgICAoYmFzZSAxNikJCUVheml4LCBJbmMuCisJCQkJVW5pdCAzMDEgUGxhemEgQnVpbGRpbmcgQgorCQkJCTY1MzAgTm9ydGhnYXRlIEF2ZW51ZSwgRmlsaW52ZXN0CisJCQkJTXVudGlubHVwYSBDaXR5IFJpemFsIDE3NzAKKwkJCQlQSElMSVBQSU5FUworCiswMC0wQy04NSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBDODUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy04NiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBDODYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLW0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy04NyAgIChoZXgpCQlBTUQKKzAwMEM4NyAgICAgKGJhc2UgMTYpCQlBTUQKKwkJCQk0NTU1IEdyZWF0IEFtZXJpY2EgUGt3eQorCQkJCVN0ZSA1MDEKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtODggICAoaGV4KQkJQXBhY2hlIE1pY3JvIFBlcmlwaGVyYWxzLCBJbmMuCiswMDBDODggICAgIChiYXNlIDE2KQkJQXBhY2hlIE1pY3JvIFBlcmlwaGVyYWxzLCBJbmMuCisJCQkJMTc1MjYgVm9uIEthcm1hbiBBdmUKKwkJCQlJcnZpbmUgQ0EgOTI2MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTg5ICAgKGhleCkJCUFDIEVsZWN0cmljIFZlaGljbGVzLCBMdGQuCiswMDBDODkgICAgIChiYXNlIDE2KQkJQUMgRWxlY3RyaWMgVmVoaWNsZXMsIEx0ZC4KKwkJCQlNYXJra2luYWt1amEgMworCQkJCUpva2VsYSAgMDU0MDAKKwkJCQlGSU5MQU5ECisKKzAwLTBDLThBICAgKGhleCkJCUJvc2UgQ29ycG9yYXRpb24KKzAwMEM4QSAgICAgKGJhc2UgMTYpCQlCb3NlIENvcnBvcmF0aW9uCisJCQkJQXV0b21vdGl2ZSBTeXN0ZW1zIERpdmlzaW9uIChBU0QpCisJCQkJNjg4IEdyZWF0IFJvYWQgKE1haWxzdG9wOiAxVzIpCisJCQkJU3RvdyBNQSAwMTc3NS05MTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy04QiAgIChoZXgpCQlDb25uZWN0IFRlY2ggSW5jCiswMDBDOEIgICAgIChiYXNlIDE2KQkJQ29ubmVjdCBUZWNoIEluYworCQkJCTQyIEFycm93IFJvYWQKKwkJCQlHdWVscGggT250YXJpbyBOMUsgMVM2CisJCQkJQ0FOQURBCisKKzAwLTBDLThDICAgKGhleCkJCUtPRElDT00gQ08uLExURC4KKzAwMEM4QyAgICAgKGJhc2UgMTYpCQlLT0RJQ09NIENPLixMVEQuCisJCQkJQS1Eb25nIDVGSS4sU0sgVHdpbiBUb3dlciAzNDUtOSwKKwkJCQlHYXNhbi1Eb25nLCBHdWVtY2h1bi1HdQorCQkJCVNlb3VsICAxNTMtMDIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLThEICAgKGhleCkJCU1BVFJJWCBWSVNJT04gR21iSAorMDAwQzhEICAgICAoYmFzZSAxNikJCU1BVFJJWCBWSVNJT04gR21iSAorCQkJCVRhbHN0cmFzc2UgMTYKKwkJCQlPcHBlbndlaWxlciBCYWRlbi1XdWVydHRlbWJlcmcgRC03MTU3MAorCQkJCUdFUk1BTlkKKworMDAtMEMtOEUgICAoaGV4KQkJTWVudG9yIEVuZ2luZWVyaW5nIEluYworMDAwQzhFICAgICAoYmFzZSAxNikJCU1lbnRvciBFbmdpbmVlcmluZyBJbmMKKwkJCQkyODkxIFN1bnJpZGdlIFdheSBORQorCQkJCVN1aXRlIDIzMAorCQkJCUNhbGdhcnkgQWxiZXJ0YSBUMVk3SzcKKwkJCQlDQU5BREEKKworMDAtMEMtOEYgICAoaGV4KQkJTmVyZ2FsIHMuci5sLgorMDAwQzhGICAgICAoYmFzZSAxNikJCU5lcmdhbCBzLnIubC4KKwkJCQlWaWFsZSBCYXJkYW56ZWxsdSw4CisJCQkJUm9tYSAgMDAxNTUKKwkJCQlJVEFMWQorCiswMC0wQy05MCAgIChoZXgpCQlPY3Rhc2ljIEluYy4KKzAwMEM5MCAgICAgKGJhc2UgMTYpCQlPY3Rhc2ljIEluYy4KKwkJCQk0MTAxIE1vbHNvbiBTdC4KKwkJCQlTdWl0ZSAzMDAKKwkJCQlNb250cmVhbCBRdWViZWMgSDFZIDNMMQorCQkJCUNBTkFEQQorCiswMC0wQy05MSAgIChoZXgpCQlSaXZlcmhlYWQgTmV0d29ya3MgSW5jLgorMDAwQzkxICAgICAoYmFzZSAxNikJCVJpdmVyaGVhZCBOZXR3b3JrcyBJbmMuCisJCQkJMjAxOTUgU3RldmVucyBDcmVlayBCbHZkLiAjIDExMAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtOTIgICAoaGV4KQkJV29sZlZpc2lvbiBHbWJoCiswMDBDOTIgICAgIChiYXNlIDE2KQkJV29sZlZpc2lvbiBHbWJoCisJCQkJT2JlcmVzIFJpZWQgMTQKKwkJCQk2ODMzIEtsYXVzIAorCQkJCUFVU1RSSUEKKworMDAtMEMtOTMgICAoaGV4KQkJWGVsaW5lIENvLiwgTHRkLgorMDAwQzkzICAgICAoYmFzZSAxNikJCVhlbGluZSBDby4sIEx0ZC4KKwkJCQk3Ri4gQ2h1bmdqaW4gQmxkZy4sIDQ3NS0yMgorCQkJCUJhbmdiYWUgMiBkb25nLCBTZW9jaG8tZ3UKKwkJCQlTZW91bCAgMTM3LTgxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy05NCAgIChoZXgpCQlVbml0ZWQgRWxlY3Ryb25pYyBJbmR1c3RyaWVzLCBJbmMuIChFVUkpCiswMDBDOTQgICAgIChiYXNlIDE2KQkJVW5pdGVkIEVsZWN0cm9uaWMgSW5kdXN0cmllcywgSW5jLiAoRVVJKQorCQkJCTI3IFJlbm1hciBBdmUKKwkJCQlXYWxwb2xlIE1BIDAyMDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy05NSAgIChoZXgpCQlQcmltZU5ldAorMDAwQzk1ICAgICAoYmFzZSAxNikJCVByaW1lTmV0CisJCQkJSG9uZ2lrIFVuaXZlcnNpdHksIDcyLTEsIFNhbmdzdS1Eb25nLCBNYQorCQkJCVNlb3VsICAxMjEtNzkxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTk2ICAgKGhleCkJCU9RTywgSW5jLgorMDAwQzk2ICAgICAoYmFzZSAxNikJCU9RTywgSW5jLgorCQkJCTE4MDAgSWxsaW5vaXMgU3RyZWV0CisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtOTcgICAoaGV4KQkJTlYgQURCIFRUViBUZWNobm9sb2dpZXMgU0EKKzAwMEM5NyAgICAgKGJhc2UgMTYpCQlOViBBREIgVFRWIFRlY2hub2xvZ2llcyBTQQorCQkJCUxFVVZFTlNFU1RFRU5XRUcsNTg1CisJCQkJWkFWRU5URU0gVmxhYW1zZSBicmFiYW50IDE5MzAKKwkJCQlCRUxHSVVNCisKKzAwLTBDLTk4ICAgKGhleCkJCUxFVEVLIENvbW11bmljYXRpb25zIEluYy4KKzAwMEM5OCAgICAgKGJhc2UgMTYpCQlMRVRFSyBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJVGFleWFuZyBCZC4gMm5kIEZsb29yLCAyNDg2CisJCQkJU29uZ05hbS1Eb25nLCBKdW5nd29uLUt1CisJCQkJU29uZ05hbSBLeXVuZ2dpLWRvIDQ2Mi04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtOTkgICAoaGV4KQkJSElURUwgTElOSyBDby4sTHRkCiswMDBDOTkgICAgIChiYXNlIDE2KQkJSElURUwgTElOSyBDby4sTHRkCisJCQkJU2Ftc3VuZyBPbW5pIFRvd2VyIDR0aCBGbC4sIDM5NS02MgorCQkJCVNoaW5kYWViYW5nLWRvbmcsIERvbmdqYWMta3UsCisJCQkJU2VvdWwgIDE1Ni0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtOUEgICAoaGV4KQkJSGl0ZWNoIEVsZWN0cm9uaWNzIENvcnAuCiswMDBDOUEgICAgIChiYXNlIDE2KQkJSGl0ZWNoIEVsZWN0cm9uaWNzIENvcnAuCisJCQkJNGYsIE5vLiA1MDEtMTUgQ2h1bmctQ2hlbmcgUmQuCisJCQkJU2hpbi10aWVuIFRhaXBlaSBTaGllbiAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTlCICAgKGhleCkJCUVFIFNvbHV0aW9ucywgSW5jCiswMDBDOUIgICAgIChiYXNlIDE2KQkJRUUgU29sdXRpb25zLCBJbmMKKwkJCQk4RiwgTm8uIDksIFBhcmsgSUkgQXZlLiwgU2NpZW5jZS1CYXNlZCBJCisJCQkJSHNpbiBDaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtOUMgICAoaGV4KQkJQ2hvbmdobyBpbmZvcm1hdGlvbiAmIGNvbW11bmljYXRpb25zCiswMDBDOUMgICAgIChiYXNlIDE2KQkJQ2hvbmdobyBpbmZvcm1hdGlvbiAmIGNvbW11bmljYXRpb25zCisJCQkJQ2hvbmdobyBCbGRnLCAjNy02MSBZYW5namFlLWRvbmcsIFNlb2NobworCQkJCVNlb3VsICAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTlEICAgKGhleCkJCUFpcldhbGsgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMEM5RCAgICAgKGJhc2UgMTYpCQlBaXJXYWxrIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTg1MCBOLiBHcmVlblZpbGxlIEF2ZS4sIFN1aXRlIDE2NAorCQkJCVJpY2hhcmRzb24gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTlFICAgKGhleCkJCU1lbW9yeUxpbmsgQ29ycC4KKzAwMEM5RSAgICAgKGJhc2UgMTYpCQlNZW1vcnlMaW5rIENvcnAuCisJCQkJMzYgSmV3ZWxlcnMgUGFyayBEcml2ZQorCQkJCVN1aXRlIDIwMAorCQkJCU5lZW5haCBXaXNjb25zaW4gNTQ5NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTlGICAgKGhleCkJCU5LRSBDb3Jwb3JhdGlvbgorMDAwQzlGICAgICAoYmFzZSAxNikJCU5LRSBDb3Jwb3JhdGlvbgorCQkJCTI3IFp1c2hvIEJhYmEKKwkJCQlOYWdhb2tha3lvLXNoaSBLeW90byA2MTctMDgyOAorCQkJCUpBUEFOCisKKzAwLTBDLUEwICAgKGhleCkJCVN0b3JDYXNlIFRlY2hub2xvZ3ksIEluYy4KKzAwMENBMCAgICAgKGJhc2UgMTYpCQlTdG9yQ2FzZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTc2MDAgTmV3aG9wZSBTdC4KKwkJCQlGb3VudGFpbiBWYWxsZXkgQ0EgOTI3MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUExICAgKGhleCkJCVNJR01BQ09NIENvLiwgTFRELgorMDAwQ0ExICAgICAoYmFzZSAxNikJCVNJR01BQ09NIENvLiwgTFRELgorCQkJCURhY29tQmxkZyA3RiAyMDAtMTIgQW55YW5nLWRvbmcKKwkJCQlNYW5hbi1LdSwgQW55YW5nLWNpdHksIEt5dW5nS2ktRG8sIEtvcmVhCisJCQkJNDMwLTgxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy1BMiAgIChoZXgpCQlTY29wdXMgTmV0d29yayBUZWNobm9sb2dpZXMgTHRkCiswMDBDQTIgICAgIChiYXNlIDE2KQkJU2NvcHVzIE5ldHdvcmsgVGVjaG5vbG9naWVzIEx0ZAorCQkJCTEwIEhhJ2FtYWwgc3QuIFBhcmsgQWZlaworCQkJCVJvc2ggSGEnYXlpbiAgNDgwOTIKKwkJCQlJU1JBRUwKKworMDAtMEMtQTMgICAoaGV4KQkJUmFuY2hvIFRlY2hub2xvZ3ksIEluYy4KKzAwMENBMyAgICAgKGJhc2UgMTYpCQlSYW5jaG8gVGVjaG5vbG9neSwgSW5jLgorCQkJCTEwNzgzIEJlbGwgQ291cnQKKwkJCQlSYW5jaG8gQ3VjYW1vbmdhIENBIDE5NzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1BNCAgIChoZXgpCQlQcm9tcHR0ZWMgUHJvZHVjdCBNYW5hZ2VtZW50IEdtYkgKKzAwMENBNCAgICAgKGJhc2UgMTYpCQlQcm9tcHR0ZWMgUHJvZHVjdCBNYW5hZ2VtZW50IEdtYkgKKwkJCQlNYXJpYXRyb3N0ZXJzdHIuIDQxCisJCQkJR3JheiBBVVNUUklBIEEtODA0MworCQkJCUFVU1RSSUEKKworMDAtMEMtQTUgICAoaGV4KQkJTmFtYW4gTlogTFRkCiswMDBDQTUgICAgIChiYXNlIDE2KQkJTmFtYW4gTlogTFRkCisJCQkJMTMvMTcgS2F3YW5hIFN0CisJCQkJTm9ydGhjb3RlCisJCQkJQXVja2xhbmQgIAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTBDLUE2ICAgKGhleCkJCU1pbnRlcmEgQ29ycG9yYXRpb24KKzAwMENBNiAgICAgKGJhc2UgMTYpCQlNaW50ZXJhIENvcnBvcmF0aW9uCisJCQkJODQ3IFJvZ2VycyBTdHJlZXQKKwkJCQlMb3dlbGwgTUEgMDE4NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUE3ICAgKGhleCkJCU1ldHJvIChTdXpob3UpIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMENBNyAgICAgKGJhc2UgMTYpCQlNZXRybyAoU3V6aG91KSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJTm8uMjIxIFhpbmdoYWkgU3RyZWV0LCBTdXpob3UgSW5kdXN0cmlhbCBQYXJrCisJCQkJU3V6aG91IEppYW5nIFN1IFByb3ZpbmNlIDIxNTAyMQorCQkJCUNISU5BCisKKzAwLTBDLUE4ICAgKGhleCkJCUdhcnVkYSBOZXR3b3JrcyBDb3Jwb3JhdGlvbgorMDAwQ0E4ICAgICAoYmFzZSAxNikJCUdhcnVkYSBOZXR3b3JrcyBDb3Jwb3JhdGlvbgorCQkJCTQ4NDk5IE1pbG1vbnQgRHJpdmUKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1BOSAgIChoZXgpCQlFYnRyb24gSW5jLgorMDAwQ0E5ICAgICAoYmFzZSAxNikJCUVidHJvbiBJbmMuCisJCQkJMTY2MyBId3kgNzAxIFNvdXRoCisJCQkJTG9yaXMgU0MgMjk1NjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUFBICAgKGhleCkJCUN1YmljIFRyYW5zcG9ydGF0aW9uIFN5c3RlbXMgSW5jCiswMDBDQUEgICAgIChiYXNlIDE2KQkJQ3ViaWMgVHJhbnNwb3J0YXRpb24gU3lzdGVtcyBJbmMKKwkJCQkxMzA4IFMuIFdhc2hpbmd0b24gU3RyZWV0CisJCQkJVHVsbGFob21hIFROIDM3Mzg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1BQiAgIChoZXgpCQlDT01NRU5EIEludGVybmF0aW9uYWwKKzAwMENBQiAgICAgKGJhc2UgMTYpCQlDT01NRU5EIEludGVybmF0aW9uYWwKKwkJCQlIb2VsemxzdHJhc3NlIDU2MQorCQkJCVdhbHMgU2FsemJ1cmcgQS01MDcxCisJCQkJQVVTVFJJQQorCiswMC0wQy1BQyAgIChoZXgpCQlDaXRpemVuIFdhdGNoIENvLiwgTHRkLgorMDAwQ0FDICAgICAoYmFzZSAxNikJCUNpdGl6ZW4gV2F0Y2ggQ28uLCBMdGQuCisJCQkJNi0xLTEyLCBUYW5hc2hpLWNobworCQkJCU5pc2hpLVRva3lvLXNoaSBUb2t5byAxODgtODUxMQorCQkJCUpBUEFOCisKKzAwLTBDLUFEICAgKGhleCkJCUJUVSBJbnRlcm5hdGlvbmFsCiswMDBDQUQgICAgIChiYXNlIDE2KQkJQlRVIEludGVybmF0aW9uYWwKKwkJCQkyMyBFc3F1aXJlIFJkCisJCQkJTm9ydGggQmlsbGVyaWNhIE1BIDAxODYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1BRSAgIChoZXgpCQlBaWxvY29tIE95CiswMDBDQUUgICAgIChiYXNlIDE2KQkJQWlsb2NvbSBPeQorCQkJCUhhdGFucGFhbiB2YWx0YXRpZSAyNAorCQkJCUR5bmFtbyBCdXNpbmVzcyBQYXJrCisJCQkJVEFNUEVSRSBGSU4gMzM5NTAKKwkJCQlGSU5MQU5ECisKKzAwLTBDLUFGICAgKGhleCkJCVRSSSBURVJNIENPLixMVEQuCiswMDBDQUYgICAgIChiYXNlIDE2KQkJVFJJIFRFUk0gQ08uLExURC4KKwkJCQkyMS01IEhJUkFJREUgS09VR0lZTyBEQU5DSEkKKwkJCQlVVFNVTk9NSVlBLVNISQorCQkJCVRPQ0hJR0kgIDMyMS0wOTA1CisJCQkJSkFQQU4KKworMDAtMEMtQjAgICAoaGV4KQkJU3RhciBTZW1pY29uZHVjdG9yIENvcnBvcmF0aW9uCiswMDBDQjAgICAgIChiYXNlIDE2KQkJU3RhciBTZW1pY29uZHVjdG9yIENvcnBvcmF0aW9uCisJCQkJNkYsIE5vLjE3LCBMaS1Ic2luIFJkCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1IENpdHkgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtQjEgICAoaGV4KQkJU2FsbGFuZCBFbmdpbmVlcmluZyAoRXVyb3BlKSBCVgorMDAwQ0IxICAgICAoYmFzZSAxNikJCVNhbGxhbmQgRW5naW5lZXJpbmcgKEV1cm9wZSkgQlYKKwkJCQlCZWRyaWp2ZW5wYXJrIEJlcmt1bQorCQkJCVNjaHJldmVud2VnIDEyCisJCQkJWndvbGxlIE9WIDgwMjQgSEEKKwkJCQlORVRIRVJMQU5EUworCiswMC0wQy1CMiAgIChoZXgpCQlDb21zdGFyIENvLiwgTHRkLgorMDAwQ0IyICAgICAoYmFzZSAxNikJCUNvbXN0YXIgQ28uLCBMdGQuCisJCQkJNzAxIE1hc2FuIFZhbGxleSAjMTEyMS05CisJCQkJQ2h1bmctcmksIE5hZXNlby1ldXAKKwkJCQlNYXNhbiBHeWVvbmduYW0gNjMwLTcyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy1CMyAgIChoZXgpCQlST1VORCBDby4sTHRkLgorMDAwQ0IzICAgICAoYmFzZSAxNikJCVJPVU5EIENvLixMdGQuCisJCQkJMy05IEdva2FzaG91LVNoaWJhaGlnYXNoaQorCQkJCVVqaSBLeW90byA2MTEtMDAxMQorCQkJCUpBUEFOCisKKzAwLTBDLUI0ICAgKGhleCkJCUF1dG9DZWxsIExhYm9yYXRvcmllcywgSW5jLgorMDAwQ0I0ICAgICAoYmFzZSAxNikJCUF1dG9DZWxsIExhYm9yYXRvcmllcywgSW5jLgorCQkJCTE3NCBDb25jb3JkIFN0cmVldAorCQkJCVN1aXRlIDMxMAorCQkJCVBldGVyYm9yb3VnaCwgTmV3IEhhbXBzaGlyZSAwMzQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtQjUgICAoaGV4KQkJUHJlbWllciBUZWNobm9sZ2llcywgSW5jCiswMDBDQjUgICAgIChiYXNlIDE2KQkJUHJlbWllciBUZWNobm9sZ2llcywgSW5jCisJCQkJUE8gQm94IDE1OQorCQkJCU9uZSBQcmVtaWVyIERyCisJCQkJTG9uZyBMYWtlIE1OIDU1MzU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1CNiAgIChoZXgpCQlOQU5KSU5HIFNFVSBNT0JJTEUgJiBJTlRFUk5FVCBURUNITk9MT0dZIENPLixMVEQKKzAwMENCNiAgICAgKGJhc2UgMTYpCQlOQU5KSU5HIFNFVSBNT0JJTEUgJiBJTlRFUk5FVCBURUNITk9MT0dZIENPLixMVEQKKwkJCQk1dGggZmxvb3IsQnVpbGRpbmcgNSxDaGFuZ0ppYW5nSG91IFN0cmVldCBOby42CisJCQkJTmFuamluZyBKaWFuZ3N1IDIxMDAxOAorCQkJCUNISU5BCisKKzAwLTBDLUI3ICAgKGhleCkJCU5hbmppbmcgSHVhemh1byBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMENCNyAgICAgKGJhc2UgMTYpCQlOYW5qaW5nIEh1YXpodW8gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJTm8uNzcgR2FvaHUgUm9hZAorCQkJCUppYW5nbmluZyBFY29ub21pYyAmIFRlY2hub2xvZ3kgRGV2ZWxvcG0KKwkJCQlOYW5qaW5nIEppYW5nc3UgMjExMTAwCisJCQkJQ0hJTkEKKworMDAtMEMtQjggICAoaGV4KQkJTUVESU9OIEFHCiswMDBDQjggICAgIChiYXNlIDE2KQkJTUVESU9OIEFHCisJCQkJQW0gWmVobnRob2YgNzcKKwkJCQlFc3NlbiBOUlcgNDUzMDcKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLUI5ICAgKGhleCkJCUxFQQorMDAwQ0I5ICAgICAoYmFzZSAxNikJCUxFQQorCQkJCUJhdCBMQSBGQVlFVFRFCisJCQkJMiBwbGFjZSBkZXMgVm9zZ2VzCisJCQkJUGFyaXMgUlAgOTI0MDUxCisJCQkJRlJBTkNFCisKKzAwLTBDLUJBICAgKGhleCkJCUphbWV4LCBJbmMuCiswMDBDQkEgICAgIChiYXNlIDE2KQkJSmFtZXgsIEluYy4KKwkJCQkyNDE1IE4gVHJpcGhhbW1lciBSZAorCQkJCUl0aGFjYSBOWSAxNDg1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtQkIgICAoaGV4KQkJSVNLUkFFTUVDTworMDAwQ0JCICAgICAoYmFzZSAxNikJCUlTS1JBRU1FQ08KKwkJCQlTYXZza2EgbG9rYSA0CisJCQkJS3JhbmogR29yZW5qc2thIDQwMDAKKwkJCQlTTE9WRU5JQQorCiswMC0wQy1CQyAgIChoZXgpCQlJc2N1dHVtCiswMDBDQkMgICAgIChiYXNlIDE2KQkJSXNjdXR1bQorCQkJCSM4OTktNiBIby1HeWUgRG9uZywgRG9uZy1BbiBHdQorCQkJCUFuLVlhbmcgQ2l0eSBLeW9uZy1HaSBEbyA0MzEtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLUJEICAgKGhleCkJCUludGVyZmFjZSBNYXN0ZXJzLCBJbmMKKzAwMENCRCAgICAgKGJhc2UgMTYpCQlJbnRlcmZhY2UgTWFzdGVycywgSW5jCisJCQkJMjM4MSBaYW5rZXIgUmQuLCBTdWl0ZSAxMzAKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1CRSAgIChoZXgpCQlJbm5vbWluYXRlIFNlY3VyaXR5IFRlY2hub2xvZ2llcyBBRworMDAwQ0JFICAgICAoYmFzZSAxNikJCUlubm9taW5hdGUgU2VjdXJpdHkgVGVjaG5vbG9naWVzIEFHCisJCQkJUnVkb3dlciBDaGF1c3NlZSAxMworCQkJCTEyNDg5IEJlcmxpbiAKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLUJGICAgKGhleCkJCUhvbHkgU3RvbmUgRW50LiBDby4sIEx0ZC4KKzAwMENCRiAgICAgKGJhc2UgMTYpCQlIb2x5IFN0b25lIEVudC4gQ28uLCBMdGQuCisJCQkJMUYsIE5vLjYyLCBTZWMuMiwgSHVhbmcgU2hhbiBSZC4sCisJCQkJTmVpIEh1IERpc3QuLCBUYWlwZWksIFRhaXdhbiwgUi5PLkMuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLUMwICAgKGhleCkJCUdlbmVyYSBPeQorMDAwQ0MwICAgICAoYmFzZSAxNikJCUdlbmVyYSBPeQorCQkJCU5paXR0eWxhbnBvbGt1IDE2CisJCQkJQm94IDE2CisJCQkJSGVsc2lua2kgIDAwNjIxCisJCQkJRklOTEFORAorCiswMC0wQy1DMSAgIChoZXgpCQlDb29wZXIgSW5kdXN0cmllcyBJbmMuCiswMDBDQzEgICAgIChiYXNlIDE2KQkJQ29vcGVyIEluZHVzdHJpZXMgSW5jLgorCQkJCTYwMCBUcmF2aXMsIFN1aXRlIDU4MDAKKwkJCQlIb3VzdG9uIFRYIDc3MDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1DMiAgIChoZXgpCQlDb250cm9sTmV0IChJbmRpYSkgUHJpdmF0ZSBMaW1pdGVkCiswMDBDQzIgICAgIChiYXNlIDE2KQkJQ29udHJvbE5ldCAoSW5kaWEpIFByaXZhdGUgTGltaXRlZAorCQkJCUwtNDQsIFVuaXQgLSBJCisJCQkJVmVybmEgSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlWZXJuYSwgU2FsY2V0ZSBHb2EgNDAzIDcyMgorCQkJCUlORElBCisKKzAwLTBDLUMzICAgKGhleCkJCUJlV0FOIHN5c3RlbXMKKzAwMENDMyAgICAgKGJhc2UgMTYpCQlCZVdBTiBzeXN0ZW1zCisJCQkJMTYgcnVlIGR1IE1vdWxpbiBkZXMgQnJ1eWVyZXMKKwkJCQlDb3VyYmV2b2llIEhhdXRzIGRlIFNlaW5lIDkyNDAwCisJCQkJRlJBTkNFCisKKzAwLTBDLUM0ICAgKGhleCkJCVRpcHRlbCBBRworMDAwQ0M0ICAgICAoYmFzZSAxNikJCVRpcHRlbCBBRworCQkJCUhhbHNrZXN0cmFzc2UgMQorCQkJCVJhdGluZ2VuIE5SVyA0MDg4MAorCQkJCUdFUk1BTlkKKworMDAtMEMtQzUgICAoaGV4KQkJTmV4dGxpbmsgQ28uLCBMdGQuCiswMDBDQzUgICAgIChiYXNlIDE2KQkJTmV4dGxpbmsgQ28uLCBMdGQuCisJCQkJQyA2MDUsIFRlY2hub3BhcmsgIzE0NSBZYXRvcC1kb25nLAorCQkJCVNlb25nbmFtLXNpIEJ1bmRhbmctZ3UsIEd5ZW9uZ2dpIDQ2My03NjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtQzYgICAoaGV4KQkJS2EtUm8gZWxlY3Ryb25pY3MgR21iSAorMDAwQ0M2ICAgICAoYmFzZSAxNikJCUthLVJvIGVsZWN0cm9uaWNzIEdtYkgKKwkJCQlQYXNjYWxzdHJhc3NlIDIyCisJCQkJQWFjaGVuIE5XIDUyMDc2CisJCQkJR0VSTUFOWQorCiswMC0wQy1DNyAgIChoZXgpCQlJbnRlbGxpZ2VudCBDb21wdXRlciBTb2x1dGlvbnMgSW5jLgorMDAwQ0M3ICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IENvbXB1dGVyIFNvbHV0aW9ucyBJbmMuCisJCQkJOTM1MCBFdG9uIFN0LgorCQkJCUNoYXRzd29ydGggQ0EgOTEzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUM4ICAgKGhleCkJCVh5dHJvbml4IFJlc2VhcmNoICYgRGVzaWduLCBJbmMuCiswMDBDQzggICAgIChiYXNlIDE2KQkJWHl0cm9uaXggUmVzZWFyY2ggJiBEZXNpZ24sIEluYy4KKwkJCQkxNDg4IEVhc3QgMjMwMCBOb3J0aAorCQkJCU5vcnRoIExvZ2FuIFVUIDg0MzQxLTE2MjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUM5ICAgKGhleCkJCUlMV09PIERBVEEgJiBURUNITk9MT0dZIENPLixMVEQKKzAwMENDOSAgICAgKGJhc2UgMTYpCQlJTFdPTyBEQVRBICYgVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJMTQ3NS0xMCxIV0EgSFlVTiBCTEQuIDJuZCBGbG9vciwKKwkJCQlTRU9DSE8tRE9ORyxTRU9DSE8tR1UsCisJCQkJU0VPVUwgIDEzNy0wNzEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtQ0EgICAoaGV4KQkJSGl0YWNoaSBHbG9iYWwgU3RvcmFnZSBUZWNobm9sb2dpZXMKKzAwMENDQSAgICAgKGJhc2UgMTYpCQlIaXRhY2hpIEdsb2JhbCBTdG9yYWdlIFRlY2hub2xvZ2llcworCQkJCTU2MDAgQ290dGxlIFJkLgorCQkJCVNhbiBKb3NlIENBIDk1MTkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1DQiAgIChoZXgpCQlEZXNpZ24gQ29tYnVzIEx0ZAorMDAwQ0NCICAgICAoYmFzZSAxNikJCURlc2lnbiBDb21idXMgTHRkCisJCQkJSGF0YW5hcGFhbiB2YWx0YXRpZSAzNEEKKwkJCQlUYW1wZXJlICBGSU4tMzMxMDAKKwkJCQlGSU5MQU5ECisKKzAwLTBDLUNDICAgKGhleCkJCUFlcm9zY291dCBMdGQuCiswMDBDQ0MgICAgIChiYXNlIDE2KQkJQWVyb3Njb3V0IEx0ZC4KKwkJCQkzIFBla2VyaXMgU3QuCisJCQkJUGFyayBUYW1hcgorCQkJCVJlaG92b3QgIDc2NzAxCisJCQkJSVNSQUVMCisKKzAwLTBDLUNEICAgKGhleCkJCUlFQyAtIFRDNTcKKzAwMENDRCAgICAgKGJhc2UgMTYpCQlJRUMgLSBUQzU3CisJCQkJMywgcnVlIGRlIFZhcmVtYmUKKwkJCQlQLk8uIEJveCAxMzEKKwkJCQlHZW5ldmEgR0UgMTIxMQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBDLUNFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMENDRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUNGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMENDRiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUQwICAgKGhleCkJCVN5bWV0cml4CiswMDBDRDAgICAgIChiYXNlIDE2KQkJU3ltZXRyaXgKKwkJCQk2NDA4IDIxNnRoIFN0IFNXCisJCQkJTW91bnRsYWtlIFRlcnJhY2UgV0EgOTgwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUQxICAgKGhleCkJCVNGT00gVGVjaG5vbG9neSBDb3JwLgorMDAwQ0QxICAgICAoYmFzZSAxNikJCVNGT00gVGVjaG5vbG9neSBDb3JwLgorCQkJCU5vLjE4LCBMYW5lIDMyLCBXdWZ1IDFzdCBSZC4sIEx1anUgc2hpYW4KKwkJCQlMdWp1IFNoaWFuZyBUYXV5dWFuIENvdW50eSAzMzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLUQyICAgKGhleCkJCVNjaGFmZm5lciBFTVYgQUcKKzAwMENEMiAgICAgKGJhc2UgMTYpCQlTY2hhZmZuZXIgRU1WIEFHCisJCQkJTm9yZHN0cmFzc2UgMQorCQkJCUx1dGVyYmFjaCAgQ0gtNDU0MgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBDLUQzICAgKGhleCkJCVByZXR0bCBFbGVrdHJvbmlrIFJhZGViZXJnIEdtYkgKKzAwMENEMyAgICAgKGJhc2UgMTYpCQlQcmV0dGwgRWxla3Ryb25payBSYWRlYmVyZyBHbWJICisJCQkJUm9iZXJ0LUJvc2NoLVN0ci4gMTAKKwkJCQlSYWRlYmVyZyBTYXhvbnkgRC0wMTQ1NAorCQkJCUdFUk1BTlkKKworMDAtMEMtRDQgICAoaGV4KQkJUG9zaXRyb24gUHVibGljIFNhZmV0eSBTeXN0ZW1zIGluYy4KKzAwMENENCAgICAgKGJhc2UgMTYpCQlQb3NpdHJvbiBQdWJsaWMgU2FmZXR5IFN5c3RlbXMgaW5jLgorCQkJCTUxMDEgQnVjaGFuCisJCQkJTW9udHJlYWwgUXVlYmVjIEg0UCAyUjkKKwkJCQlDQU5BREEKKworMDAtMEMtRDUgICAoaGV4KQkJUGFzc2F2ZSBJbmMuCiswMDBDRDUgICAgIChiYXNlIDE2KQkJUGFzc2F2ZSBJbmMuCisJCQkJMTU1NyBKYXNwZXIgRHIuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1ENiAgIChoZXgpCQlQQVJUTkVSIFRFQ0gKKzAwMENENiAgICAgKGJhc2UgMTYpCQlQQVJUTkVSIFRFQ0gKKwkJCQkxMEYsIE5PLjIzMy0yLFBBTyBDSElBTyBST0FELCBTSElOIFRJRU4KKwkJCQlUQUlQRUkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtRDcgICAoaGV4KQkJTmFsbGF0ZWNoIEx0ZAorMDAwQ0Q3ICAgICAoYmFzZSAxNikJCU5hbGxhdGVjaCBMdGQKKwkJCQlCb29sZWFuIEhvdXNlCisJCQkJMSBOYXBpZXIgUGFyaywgQ3VtYmVybmF1bGQKKwkJCQlHbGFzZ293IFNjb3RsYW5kIEc2OCAwQkgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQy1EOCAgIChoZXgpCQlNLiBLLiBKdWNoaGVpbSBHbWJIICYgQ28KKzAwMENEOCAgICAgKGJhc2UgMTYpCQlNLiBLLiBKdWNoaGVpbSBHbWJIICYgQ28KKwkJCQlNb2x0a2VzdHIuIDEzIC0gMzEKKwkJCQlGdWxkYSBIZXNzZW4gMzYwMzkKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLUQ5ICAgKGhleCkJCUl0Y2FyZSBDby4sIEx0ZAorMDAwQ0Q5ICAgICAoYmFzZSAxNikJCUl0Y2FyZSBDby4sIEx0ZAorCQkJCTQwOCBLVCBTZW9jaG8sIDEwMDEtMSBCYW5nYmFlLWRvbmcsCisJCQkJU2VvY2hvLWt1CisJCQkJU2VvdWwgIDEzNy04NTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtREEgICAoaGV4KQkJRnJlZUhhbmQgU3lzdGVtcywgSW5jLgorMDAwQ0RBICAgICAoYmFzZSAxNikJCUZyZWVIYW5kIFN5c3RlbXMsIEluYy4KKwkJCQk5NSBGaXJzdCBTdC4KKwkJCQlTdWl0ZSAyMDAKKwkJCQlMb3MgQWx0b3MgQ0EgOTQwMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLURCICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCiswMDBDREIgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtREMgICAoaGV4KQkJQkVDUyBUZWNobm9sb2d5LCBJbmMKKzAwMENEQyAgICAgKGJhc2UgMTYpCQlCRUNTIFRlY2hub2xvZ3ksIEluYworCQkJCTk0ODcgRGllbG1hbiBSb2NrIElzbGFuZCBJbmR1c3RyaWFsIERyaXYKKwkJCQlTdC4gTG91aXMgTU8gNjMxMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUREICAgKGhleCkJCUFPUyBUZWNobm9sb2dpZXMgQUcKKzAwMENERCAgICAgKGJhc2UgMTYpCQlBT1MgVGVjaG5vbG9naWVzIEFHCisJCQkJVGFlZmVybnN0cmFzc2UgMjAKKwkJCQlCYWRlbiAtIERhZXR0d2lsIEFHIENILTU0MDUKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wQy1ERSAgIChoZXgpCQlBQkIgU1RPVFotS09OVEFLVCBHbWJICiswMDBDREUgICAgIChiYXNlIDE2KQkJQUJCIFNUT1RaLUtPTlRBS1QgR21iSAorCQkJCUVwcGVsaGVpbWVyIFN0ci4gODIKKwkJCQlIZWlkZWxiZXJnIEJhZGVuLVd1cnR0ZW1iZXJnIDY5MTIzCisJCQkJR0VSTUFOWQorCiswMC0wQy1ERiAgIChoZXgpCQlQVUxOaVggQW1lcmljYSwgSW5jCiswMDBDREYgICAgIChiYXNlIDE2KQkJUFVMTmlYIEFtZXJpY2EsIEluYworCQkJCTEzMzAgT3JsZWFucyBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtRTAgICAoaGV4KQkJVHJlayBEaWFnbm9zdGljcyBJbmMuCiswMDBDRTAgICAgIChiYXNlIDE2KQkJVHJlayBEaWFnbm9zdGljcyBJbmMuCisJCQkJOTgyIEtleW5vdGUgQ2lyY2xlCisJCQkJU3VpdGUgNgorCQkJCUNsZXZlbGFuZCBPaGlvIDQ0MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FMSAgIChoZXgpCQlUaGUgT3BlbiBHcm91cAorMDAwQ0UxICAgICAoYmFzZSAxNikJCVRoZSBPcGVuIEdyb3VwCisJCQkJQXBleCBQbGF6YQorCQkJCUZvcmJ1cnkgUm9hZAorCQkJCVJlYWRpbmcgQmVya3MgUkcxIDFBWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBDLUUyICAgKGhleCkJCVJvbGxzLVJveWNlCiswMDBDRTIgICAgIChiYXNlIDE2KQkJUm9sbHMtUm95Y2UKKwkJCQkxMDUgTi4gU2FuZHVza3kgU3QuCisJCQkJTXQuIFZlcm5vbiBPaGlvIDQzMDUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FMyAgIChoZXgpCQlPcHRpb24gSW50ZXJuYXRpb25hbCBOLlYuCiswMDBDRTMgICAgIChiYXNlIDE2KQkJT3B0aW9uIEludGVybmF0aW9uYWwgTi5WLgorCQkJCUtvbG9uZWwgQmVnYXVsdGxhYW4gNDUKKwkJCQlMZXV2ZW4gQnJhYmFudCAzMDEyCisJCQkJQkVMR0lVTQorCiswMC0wQy1FNCAgIChoZXgpCQlOZXVyb0NvbSBJbnRlcm5hdGlvbmFsLCBJbmMuCiswMDBDRTQgICAgIChiYXNlIDE2KQkJTmV1cm9Db20gSW50ZXJuYXRpb25hbCwgSW5jLgorCQkJCTk1NzAgU0UgTGF3bmZpZWxkIFJkCisJCQkJQ2xhY2thbWFzIE9SIDk3MDE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FNSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAwQ0U1ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtRTYgICAoaGV4KQkJTWVydSBOZXR3b3JrcyBJbmMKKzAwMENFNiAgICAgKGJhc2UgMTYpCQlNZXJ1IE5ldHdvcmtzIEluYworCQkJCTEzMDkgU291dGggTWFyeSBBdmVudWUsCisJCQkJU3Vubnl2YWxlIENBIDk0MDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FNyAgIChoZXgpCQlNZWRpYVRlayBJbmMuCiswMDBDRTcgICAgIChiYXNlIDE2KQkJTWVkaWFUZWsgSW5jLgorCQkJCTFGLCBOby4gMTMsIElubm92YXRpb24gUm9hZCAxLAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy1FOCAgIChoZXgpCQlHdWFuZ1pob3UgQW5KdUJhbyBDby4sIEx0ZAorMDAwQ0U4ICAgICAoYmFzZSAxNikJCUd1YW5nWmhvdSBBbkp1QmFvIENvLiwgTHRkCisJCQkJSGVpUWlhb1RhbmcgVGFuZ1hpYSBUaWFuSGUKKwkJCQlHdWFuZ1pob3UgR3VhbmdEb25nIDUxMDY2NQorCQkJCUNISU5BCisKKzAwLTBDLUU5ICAgKGhleCkJCUJMT09NQkVSRyBMLlAuCiswMDBDRTkgICAgIChiYXNlIDE2KQkJQkxPT01CRVJHIEwuUC4KKwkJCQk3MzEgTGV4aW5ndG9uIEF2ZQorCQkJCU5FVyBZT1JLIE5FVyBZT1JLIDEwMDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FQSAgIChoZXgpCQlhcGhvbmEgS29tbXVuaWthdGlvbnNzeXN0ZW1lCiswMDBDRUEgICAgIChiYXNlIDE2KQkJYXBob25hIEtvbW11bmlrYXRpb25zc3lzdGVtZQorCQkJCUVudHdpY2tsdW5ncy0gdW5kIFZlcnRyaWVic2dtYkgKKwkJCQlEZXV0c2Noc3RyYXNzZSA0CisJCQkJV2llbiAgMTIzMAorCQkJCUFVU1RSSUEKKworMDAtMEMtRUIgICAoaGV4KQkJQ05NUCBOZXR3b3JrcywgSW5jLgorMDAwQ0VCICAgICAoYmFzZSAxNikJCUNOTVAgTmV0d29ya3MsIEluYy4KKwkJCQkxMjQ1IFMuIFdpbmNoZXN0ZXIgQmx2ZC4KKwkJCQlTdWl0ZSAyMDgKKwkJCQlTYW4gSm9zZSBDQSA5NTEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtRUMgICAoaGV4KQkJU3BlY3RyYWNvbSBDb3JwLgorMDAwQ0VDICAgICAoYmFzZSAxNikJCVNwZWN0cmFjb20gQ29ycC4KKwkJCQk5NSBNZXRob2Rpc3QgSGlsbCBEcml2ZQorCQkJCVN1aXRlIDUwMAorCQkJCVJvY2hlc3RlciBOWSAxNDYyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtRUQgICAoaGV4KQkJUmVhbCBEaWdpdGFsIE1lZGlhCiswMDBDRUQgICAgIChiYXNlIDE2KQkJUmVhbCBEaWdpdGFsIE1lZGlhCisJCQkJNDg1IE5vcnRoIEtlbGxlciBSb2FkCisJCQkJU3VpdGUgMTQwCisJCQkJTWFpdGxhbmQgRkwgMzI3NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUVFICAgKGhleCkJCWpwLWVtYmVkZGVkCiswMDBDRUUgICAgIChiYXNlIDE2KQkJanAtZW1iZWRkZWQKKwkJCQlCdWVuIDIxLCBOci4gRGFsYnkKKwkJCQlCb3J1cCAgNDE0MAorCQkJCURFTk1BUksKKworMDAtMEMtRUYgICAoaGV4KQkJT3BlbiBOZXR3b3JrcyBFbmdpbmVlcmluZyBMdGQKKzAwMENFRiAgICAgKGJhc2UgMTYpCQlPcGVuIE5ldHdvcmtzIEVuZ2luZWVyaW5nIEx0ZAorCQkJCUNsYXNzaWMgSG91c2UKKwkJCQlSYXluaGFtIFJvYWQKKwkJCQlCaXNob3AncyBTdG9ydGZvcmQgSGVydGZvcmRzaGlyZSBDTTIzIDVQRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBDLUYwICAgKGhleCkJCU0gJiBOIEdtYkgKKzAwMENGMCAgICAgKGJhc2UgMTYpCQlNICYgTiBHbWJICisJCQkJRGllc2Vsc3RyIDE4CisJCQkJUm9zYmFjaCB2LmQuSC4gSGVzc2VuIDYxMTkxCisJCQkJR0VSTUFOWQorCiswMC0wQy1GMSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAwQ0YxICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTVM6IEpGMy00MjAKKwkJCQkyMTExIE5FIDI1dGggQXZlbnVlCisJCQkJSGlsbHNib3JvIE9SIDk3MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1GMiAgIChoZXgpCQlHQU1FU0EgRU9MSUNBCiswMDBDRjIgICAgIChiYXNlIDE2KQkJR0FNRVNBIEVPTElDQQorCQkJCVBvbGlnb25vIEFndXN0aW5vcyBzL24KKwkJCQlQYW1wbG9uYSBOQVZBUlJBIDMxMDEzCisJCQkJU1BBSU4KKworMDAtMEMtRjMgICAoaGV4KQkJQ0FMTCBJTUFHRSBTQQorMDAwQ0YzICAgICAoYmFzZSAxNikJCUNBTEwgSU1BR0UgU0EKKwkJCQk4NjcgUm91dGUgSW1wZXJpYWxlCisJCQkJQkFJTExBUkdVRVMgIDM0NjcwCisJCQkJRlJBTkNFCisKKzAwLTBDLUY0ICAgKGhleCkJCUFLQVRTVUtJIEVMRUNUUklDIE1GRy5DTy4sTFRELgorMDAwQ0Y0ICAgICAoYmFzZSAxNikJCUFLQVRTVUtJIEVMRUNUUklDIE1GRy5DTy4sTFRELgorCQkJCTU5My0xLGFvamktIGNobworCQkJCWt1c2F0c3UtIHNoaSBzaGlnYSA1MjUtMDA0MQorCQkJCUpBUEFOCisKKzAwLTBDLUY1ICAgKGhleCkJCUluZm9FeHByZXNzCiswMDBDRjUgICAgIChiYXNlIDE2KQkJSW5mb0V4cHJlc3MKKwkJCQkxNzAgUy4gV2hpc21hbiBSb2FkLCBTdWl0ZSBCCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtRjYgICAoaGV4KQkJU2l0ZWNvbSBFdXJvcGUgQlYKKzAwMENGNiAgICAgKGJhc2UgMTYpCQlTaXRlY29tIEV1cm9wZSBCVgorCQkJCVNldmlsbGF3ZWcgMTIyCisJCQkJUm90dGVyZGFtIFpIIDMwNDcgQUwKKwkJCQlORVRIRVJMQU5EUworCiswMC0wQy1GNyAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMENGNyAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk4MjAwIERpeGllIFJkLgorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0wQy1GOCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMENGOCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCTAzNiBDQyAxMDEKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMEMtRjkgICAoaGV4KQkJSVRUIEZseWd0IEFCCiswMDBDRjkgICAgIChiYXNlIDE2KQkJSVRUIEZseWd0IEFCCisJCQkJUE8gQm94IDIwNTgKKwkJCQlJbmR1c3RyaWdhdGFuIDUwCisJCQkJS3Jpc3RpYW5zdGFkICAyOTEgMDIKKwkJCQlTV0VERU4KKworMDAtMEMtRkEgICAoaGV4KQkJRGlnaXRhbCBTeXN0ZW1zIENvcnAKKzAwMENGQSAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFN5c3RlbXMgQ29ycAorCQkJCTMgTm9ydGggTWFpbiBTdHJlZXQKKwkJCQlQTyBCb3ggMTU4CisJCQkJV2Fsa2Vyc3ZpbGxlIE1hcnlsYW5kIDIxNzkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1GQiAgIChoZXgpCQlLb3JlYSBOZXR3b3JrIFN5c3RlbXMKKzAwMENGQiAgICAgKGJhc2UgMTYpCQlLb3JlYSBOZXR3b3JrIFN5c3RlbXMKKwkJCQkyMDYgIEphbmdZb3VuZ1NpbCBCbGRnLCAxNjg4LTUKKwkJCQlTaGluaWwtRG9uZywgVGFlZGVvay1HdQorCQkJCVRhZWplb24gIDMwNi0yMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtRkMgICAoaGV4KQkJUzJpbyBUZWNobm9sb2dpZXMgQ29ycAorMDAwQ0ZDICAgICAoYmFzZSAxNikJCVMyaW8gVGVjaG5vbG9naWVzIENvcnAKKwkJCQk1MDUgTWFyY2ggUmQKKwkJCQlTdWl0ZSAxMjAKKwkJCQlPdHRhd2EgT250YXJpbyBLMksgMk01CisJCQkJQ0FOQURBCisKKzAwLTBDLUZEICAgKGhleCkJCUh5dW5kYWkgSW1hZ2VRdWVzdCBDby4sTHRkLgorMDAwQ0ZEICAgICAoYmFzZSAxNikJCUh5dW5kYWkgSW1hZ2VRdWVzdCBDby4sTHRkLgorCQkJCVNhbiAxMzYtMSwgQW1pLXJpLCBCdWJhbC1ldWIKKwkJCQlJY2hvbi1zaSBLeW91bmcga2ktZG8gNDY3LTcwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy1GRSAgIChoZXgpCQlHcmFuZCBFbGVjdHJvbmljIENvLiwgTHRkCiswMDBDRkUgICAgIChiYXNlIDE2KQkJR3JhbmQgRWxlY3Ryb25pYyBDby4sIEx0ZAorCQkJCVJvb20gMTcxMCwgQmxvY2sgQiBMdWNreSB0b3dlciwgTm8uMyBEb24KKwkJCQlCZWlqaW5nICAxMDAwMjcKKwkJCQlDSElOQQorCiswMC0wQy1GRiAgIChoZXgpCQlNUk8tVEVLIExJTUlURUQKKzAwMENGRiAgICAgKGJhc2UgMTYpCQlNUk8tVEVLIExJTUlURUQKKwkJCQkxNCwgMVNUIEQgTUFJTiBST0FELAorCQkJCUdBTkdBIE5BR0FSCisJCQkJQkFOR0FMT1JFIEtBUk5BVEFLQSA1NjAwMzIKKwkJCQlJTkRJQQorCiswMC0wRC0wMCAgIChoZXgpCQlTZWF3YXkgTmV0d29ya3MgSW5jLgorMDAwRDAwICAgICAoYmFzZSAxNikJCVNlYXdheSBOZXR3b3JrcyBJbmMuCisJCQkJMSBDaHJ5c2FsaXMgV2F5CisJCQkJT3R0YXdhIE9udGFyaW8gSzJHIDZQOQorCQkJCUNBTkFEQQorCiswMC0wRC0wMSAgIChoZXgpCQlQJkUgTWljcm9jb21wdXRlciBTeXN0ZW1zLCBJbmMuCiswMDBEMDEgICAgIChiYXNlIDE2KQkJUCZFIE1pY3JvY29tcHV0ZXIgU3lzdGVtcywgSW5jLgorCQkJCTcxMCBDb21tb253ZWFsdGggQXZlCisJCQkJQm9zdG9uIE1hIDAyMjE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0wMiAgIChoZXgpCQlORUMgQWNjZXNzVGVjaG5pY2EsIEx0ZC4KKzAwMEQwMiAgICAgKGJhc2UgMTYpCQlORUMgQWNjZXNzVGVjaG5pY2EsIEx0ZC4KKwkJCQk4MDAgU2hpbW9tYXRhCisJCQkJS2FrZWdhd2EgU2hpenVva2EgNDM2LTg1MDEKKwkJCQlKQVBBTgorCiswMC0wRC0wMyAgIChoZXgpCQlNYXRyaWNzLCBJbmMuCiswMDBEMDMgICAgIChiYXNlIDE2KQkJTWF0cmljcywgSW5jLgorCQkJCTg4NTAgU3RhbmZvcmQgQmx2ZAorCQkJCVN1aXRlIDMwMDAKKwkJCQlDb2x1bWJpYSBNRCAyMTA0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMDQgICAoaGV4KQkJRm94Ym9ybyBFY2thcmR0IERldmVsb3BtZW50IEdtYkgKKzAwMEQwNCAgICAgKGJhc2UgMTYpCQlGb3hib3JvIEVja2FyZHQgRGV2ZWxvcG1lbnQgR21iSAorCQkJCUdsb2NrZW5zdHJhc3NlIDUyCisJCQkJU3R1dHRnYXJ0IEJhZGVuLVd1cnR0ZW1iZXJnIDcwMzc2CisJCQkJR0VSTUFOWQorCiswMC0wRC0wNSAgIChoZXgpCQljeWJlcm5ldCBtYW51ZmFjdHVyaW5nIGluYy4KKzAwMEQwNSAgICAgKGJhc2UgMTYpCQljeWJlcm5ldCBtYW51ZmFjdHVyaW5nIGluYy4KKwkJCQk1MDAxIEJpcmNoIFN0cmVldAorCQkJCU5ld3BvcnQgQmVhY2ggY2EgOTI2NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTA2ICAgKGhleCkJCUNvbXB1bG9naWMgTGltaXRlZAorMDAwRDA2ICAgICAoYmFzZSAxNikJCUNvbXB1bG9naWMgTGltaXRlZAorCQkJCVVuaXQgVzMsIE1LIFRXTyBCdXNpbmVzcyBDZW50cmUKKwkJCQlCYXJ0b24gUm9hZAorCQkJCVdhdGVyIEVhdG9uIE1pbHRvbiBLZXluZXMgTUsyIDNIVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBELTA3ICAgKGhleCkJCUNhbHJlYyBBdWRpbyBMdGQKKzAwMEQwNyAgICAgKGJhc2UgMTYpCQlDYWxyZWMgQXVkaW8gTHRkCisJCQkJTnV0Y2xvdWdoIE1pbGwKKwkJCQlIZWJkZW4gQnJpZGdlIFdlc3QgWW9ya3NoaXJlIEhYNyA4RVoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC0wOCAgIChoZXgpCQlBYm92ZUNhYmxlLCBJbmMuCiswMDBEMDggICAgIChiYXNlIDE2KQkJQWJvdmVDYWJsZSwgSW5jLgorCQkJCTg0MDMgQ29sZXN2aWxsZSBSb2FkLCAjODI1CisJCQkJU2lsdmVyIFNwcmluZyBNRCAyMDkxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMDkgICAoaGV4KQkJWXVlaHVhKFpodWhhaSkgRWxlY3Ryb25pYyBDTy4gTFRECiswMDBEMDkgICAgIChiYXNlIDE2KQkJWXVlaHVhKFpodWhhaSkgRWxlY3Ryb25pYyBDTy4gTFRECisJCQkJNFJkIFBpbmdkb25nLE5hbnBpbmcgU2NpZW5jZSAmIFRlY2hub2xvZworCQkJCVpodWhhaSBHdWFuZ2RvbmcgNTE5MDcwCisJCQkJQ0hJTkEKKworMDAtMEQtMEEgICAoaGV4KQkJUHJvamVjdGlvbmRlc2lnbiBhcworMDAwRDBBICAgICAoYmFzZSAxNikJCVByb2plY3Rpb25kZXNpZ24gYXMKKwkJCQlIYWJvcm52ZWllbiA1MworCQkJCUdhbWxlIEZyZWRyaWtzdGFkIE4tMTYzMAorCQkJCU5PUldBWQorCiswMC0wRC0wQiAgIChoZXgpCQlCdWZmYWxvIEluYy4KKzAwMEQwQiAgICAgKGJhc2UgMTYpCQlCdWZmYWxvIEluYy4KKwkJCQlNRUxDTyBISS1URUNIIENFTlRFUiwKKwkJCQlTSElCQVRBIEhPTkRPUkkgNC0xNSBNSU5BTUktS1UsCisJCQkJTkFHT1lBICA0NTctODUyMAorCQkJCUpBUEFOCisKKzAwLTBELTBDICAgKGhleCkJCU1ESSBTZWN1cml0eSBTeXN0ZW1zCiswMDBEMEMgICAgIChiYXNlIDE2KQkJTURJIFNlY3VyaXR5IFN5c3RlbXMKKwkJCQk5NTE4IE5pbnRoIFN0cmVldAorCQkJCVJhbmNobyBDdWNhbW9uZ2EgQ0EgOTE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTBEICAgKGhleCkJCUlUU3VwcG9ydGVkLCBMTEMKKzAwMEQwRCAgICAgKGJhc2UgMTYpCQlJVFN1cHBvcnRlZCwgTExDCisJCQkJNDk4OSBQZWFjaHRyZWUgUGFya3dheQorCQkJCVNURSAyMDAKKwkJCQlOb3Jjcm9zcyBHQSAzMDA5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMEUgICAoaGV4KQkJSW5xbmV0IFN5c3RlbXMsIEluYy4KKzAwMEQwRSAgICAgKGJhc2UgMTYpCQlJbnFuZXQgU3lzdGVtcywgSW5jLgorCQkJCTMyMSBOS0lDIENlbnRlcgorCQkJCTQ4LTg0IEhvbmdldW4tZG9uZywgU2VvZGFlbXVuLWt1CisJCQkJU2VvdWwgIDEyMC0xMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEQtMEYgICAoaGV4KQkJRmlubHV4IEx0ZAorMDAwRDBGICAgICAoYmFzZSAxNikJCUZpbmx1eCBMdGQKKwkJCQlSYWRpb21pZWhlbmthdHUgMworCQkJCVR1cmt1ICBGSU4tMjAzMjEKKwkJCQlGSU5MQU5ECisKKzAwLTBELTEwICAgKGhleCkJCUVtYmVkdHJvbmljcyBPeQorMDAwRDEwICAgICAoYmFzZSAxNikJCUVtYmVkdHJvbmljcyBPeQorCQkJCVVua2FyaW5wb2xrdSAyMAorCQkJCUt1b3BpbyAgNzA4MjAKKwkJCQlGSU5MQU5ECisKKzAwLTBELTExICAgKGhleCkJCURFTlRTUExZIC0gR2VuZGV4CiswMDBEMTEgICAgIChiYXNlIDE2KQkJREVOVFNQTFkgLSBHZW5kZXgKKwkJCQk5MDEgV2VzdCBPYWt0b24gU3RyZWV0CisJCQkJRGVzIFBsYWluZXMgSUwgNjAwMTgtMTg4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMTIgICAoaGV4KQkJQVhFTEwgQ29ycG9yYXRpb24KKzAwMEQxMiAgICAgKGJhc2UgMTYpCQlBWEVMTCBDb3Jwb3JhdGlvbgorCQkJCUFraWhhYmFyYSBVRFggU291dGggV2luZyAxMEYKKwkJCQk0LTE0LTEgU290b2thbmRhCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtODk3MworCQkJCUpBUEFOCisKKzAwLTBELTEzICAgKGhleCkJCVdpbGhlbG0gUnV0ZW5iZWNrIEdtYkgmQ28uCiswMDBEMTMgICAgIChiYXNlIDE2KQkJV2lsaGVsbSBSdXRlbmJlY2sgR21iSCZDby4KKwkJCQlOaWVkZXJ3b3J0aCAxLTEwCisJCQkJU2NoYWxrc211aGxlIE5SVyA1ODU3OQorCQkJCUdFUk1BTlkKKworMDAtMEQtMTQgICAoaGV4KQkJVnRlY2ggSW5ub3ZhdGlvbiBMUCBkYmEgQWR2YW5jZWQgQW1lcmljYW4gVGVsZXBob25lcworMDAwRDE0ICAgICAoYmFzZSAxNikJCVZ0ZWNoIElubm92YXRpb24gTFAgZGJhIEFkdmFuY2VkIEFtZXJpY2FuIFRlbGVwaG9uZXMKKwkJCQkyMDMtNjAwIFBhcnNpcHBhbnkgUmQKKwkJCQlQYXJzaXBwYW55IE5KIDA3MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0xNSAgIChoZXgpCQlWb2lwYWMgcy5yLm8uCiswMDBEMTUgICAgIChiYXNlIDE2KQkJVm9pcGFjIHMuci5vLgorCQkJCVVsLiBKYW5rYSBLcmFsYSAzCisJCQkJVHJlbmNpbiAgOTExIDAxCisJCQkJU0xPVkFLSUEKKworMDAtMEQtMTYgICAoaGV4KQkJVUhTIFN5c3RlbXMgUHR5IEx0ZAorMDAwRDE2ICAgICAoYmFzZSAxNikJCVVIUyBTeXN0ZW1zIFB0eSBMdGQKKwkJCQlQTyBCb3ggNjI2NAorCQkJCVNvdXRoIFN5ZG5leSBCdXNpbmVzcyBIdWIKKwkJCQlBbGV4YW5kcmlhIE5TVyAyMDE1CisJCQkJQVVTVFJBTElBCisKKzAwLTBELTE3ICAgKGhleCkJCVR1cmJvIE5ldHdvcmtzIENvLkx0ZAorMDAwRDE3ICAgICAoYmFzZSAxNikJCVR1cmJvIE5ldHdvcmtzIENvLkx0ZAorCQkJCTJGLE5vIDEyMjMsIENodW5nIENoZW5nIFJkLgorCQkJCVRhbyBZdWFuICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTE4ICAgKGhleCkJCU1lZ2EtVHJlbmQgRWxlY3Ryb25pY3MgQ08uLCBMVEQuCiswMDBEMTggICAgIChiYXNlIDE2KQkJTWVnYS1UcmVuZCBFbGVjdHJvbmljcyBDTy4sIExURC4KKwkJCQlUb25nIEZ1IFl1IEluZC4sIEt1IEtlbmcgVmlsbGFnZSwgR3VhbiBMYW4KKwkJCQlTaGVuZ3poZW4gR3VhbmcgRG9uZyA1MTgxMTAKKwkJCQlDSElOQQorCiswMC0wRC0xOSAgIChoZXgpCQlST0JFIFNob3cgbGlnaHRpbmcKKzAwMEQxOSAgICAgKGJhc2UgMTYpCQlST0JFIFNob3cgbGlnaHRpbmcKKwkJCQlIYXpvdmljZSAyMDkwCisJCQkJUm96bm92IHBvZCBSYWRob3N0ZW0gIDc1NiA2MQorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTBELTFBICAgKGhleCkJCU11c3RlayBTeXN0ZW0gSW5jLgorMDAwRDFBICAgICAoYmFzZSAxNikJCU11c3RlayBTeXN0ZW0gSW5jLgorCQkJCU5vLiAyNSwgUiZEIFJvYWQsIFNjaWVuY2UtQmFzZWQgSW5kdXN0cmkKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC0xQiAgIChoZXgpCQlLeW90byBFbGVjdHJvbmljcyBNYW51ZmFjdHVyaW5nIENvLiwgTHRkLgorMDAwRDFCICAgICAoYmFzZSAxNikJCUt5b3RvIEVsZWN0cm9uaWNzIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJNTYtMiwgTmlub2Rhbi1jaG8sIFNoaW5kZW4sCisJCQkJS2lzc2hvaW4sIE1pbmFtaS1rdSwKKwkJCQlLeW90by1DaXR5IEt5b3RvIFByZWZlY3R1cmUgNjAxLTgzMTcKKwkJCQlKQVBBTgorCiswMC0wRC0xQyAgIChoZXgpCQlBbWVzeXMgRGVmZW5zZQorMDAwRDFDICAgICAoYmFzZSAxNikJCUFtZXN5cyBEZWZlbnNlCisJCQkJMTAzMCBBdiBkZSBsYSBMQVVaSUVSRQorCQkJCVpBQyBkZSBQaWNoYXVyeSBJSSBMZXMgTWlsbGVzIEJQIDIwIDE0MAorCQkJCUFJWCBlbiBQUk9WRU5DRSBDZWRleCAwMyAxMzc5NAorCQkJCUZSQU5DRQorCiswMC0wRC0xRCAgIChoZXgpCQlISUdILVRFSyBIQVJORVNTIEVOVC4gQ08uLCBMVEQuCiswMDBEMUQgICAgIChiYXNlIDE2KQkJSElHSC1URUsgSEFSTkVTUyBFTlQuIENPLiwgTFRELgorCQkJCTRGLTYsIE5vMTgsIFB1LVRpbmcgUmQuIEhzaW5jaHUsIFRhaXdhbgorCQkJCTRGLCBObzE2LCBMYW5lNTAsIFNlYzMsIE5hbi1LYW5nIFJkLCBOYW4KKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTFFICAgKGhleCkJCUNvbnRyb2wgVGVjaG5pcXVlcworMDAwRDFFICAgICAoYmFzZSAxNikJCUNvbnRyb2wgVGVjaG5pcXVlcworCQkJCVRoZSBHcm8KKwkJCQlQb29sIFJvYWQKKwkJCQlOZXd0b3duIFBvd3lzIFNZMTYgM0JFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEQtMUYgICAoaGV4KQkJQVYgRGlnaXRhbAorMDAwRDFGICAgICAoYmFzZSAxNikJCUFWIERpZ2l0YWwKKwkJCQlQb3R0ZW5kb3JmZXIgU3RyYXNzZSAyNS0yNy80LzEvMQorCQkJCVdpZW4gIDExMjAKKwkJCQlBVVNUUklBCisKKzAwLTBELTIwICAgKGhleCkJCUFTQUhJS0FTRUkgVEVDSE5PU1lTVEVNIENPLixMVEQuCiswMDBEMjAgICAgIChiYXNlIDE2KQkJQVNBSElLQVNFSSBURUNITk9TWVNURU0gQ08uLExURC4KKwkJCQlLYW5kYSBKaW5ib2NobyAxLTEwNQorCQkJCTIzLTcsTmlzaGlzaGluanVrdSAxLWNob21lCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtODEwMQorCQkJCUpBUEFOCisKKzAwLTBELTIxICAgKGhleCkJCVdJU0NPUkUgSW5jLgorMDAwRDIxICAgICAoYmFzZSAxNikJCVdJU0NPUkUgSW5jLgorCQkJCTZGLCBOby4gMTgwLCBTZWMuIDIsIER1ZW5odWEgUy4gUmQsCisJCQkJVGFpcGVpICAxMDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTIyICAgKGhleCkJCVVuaXRyb25pY3MgTFRECiswMDBEMjIgICAgIChiYXNlIDE2KQkJVW5pdHJvbmljcyBMVEQKKwkJCQlVbml0cm9uaWNzIEJ1aWxkaW5nCisJCQkJQWlycG9ydCBDaXR5LCBQLk8uQiAzMDAKKwkJCQlCZW4gR3VyaW9uIEFpcnBvcnQgIDcwMTAwCisJCQkJSVNSQUVMCisKKzAwLTBELTIzICAgKGhleCkJCVNtYXJ0IFNvbHV0aW9uLCBJbmMKKzAwMEQyMyAgICAgKGJhc2UgMTYpCQlTbWFydCBTb2x1dGlvbiwgSW5jCisJCQkJNDY1IFdlc3QgTGF3bmRhbGUgI0IKKwkJCQlTYWx0IExha2UgQ2l0eSBVVCA4NDExNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMjQgICAoaGV4KQkJU0VOVEVDIEUmRSBDTy4sIExURC4KKzAwMEQyNCAgICAgKGJhc2UgMTYpCQlTRU5URUMgRSZFIENPLiwgTFRELgorCQkJCU5vLiAzMi4gR29uZzUgUmQuCisJCQkJTHVuZ3RhbiBUYW95dWFuIDMyNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtMjUgICAoaGV4KQkJU0FOREVOIENPUlBPUkFUSU9OCiswMDBEMjUgICAgIChiYXNlIDE2KQkJU0FOREVOIENPUlBPUkFUSU9OCisJCQkJMjAgS290b2J1a2ktY2hvCisJCQkJSXNlc2FraS1zaGkgR3VubWEgMzcyLTg1MDIKKwkJCQlKQVBBTgorCiswMC0wRC0yNiAgIChoZXgpCQlQcmltYWdyYXBoaWNzIExpbWl0ZWQKKzAwMEQyNiAgICAgKGJhc2UgMTYpCQlQcmltYWdyYXBoaWNzIExpbWl0ZWQKKwkJCQlDYW1icmlkZ2UgSG91c2UsIE5vLjIgRm9jdXMgRm91cgorCQkJCUZvdXJ0aCBBdmVudWUKKwkJCQlMZXRjaHdvcnRoIEdhcmRlbiBDaXR5IEhlcnRmb3Jkc2hpcmUgU0c2IDJUVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBELTI3ICAgKGhleCkJCU1JQ1JPUExFWCBQcmludHdhcmUgQUcKKzAwMEQyNyAgICAgKGJhc2UgMTYpCQlNSUNST1BMRVggUHJpbnR3YXJlIEFHCisJCQkJUGFuemVyc3RyYXNzZSA1CisJCQkJVmFyZWwgTmllZGVyc2FjaHNlbiAyNjMxNgorCQkJCUdFUk1BTlkKKworMDAtMEQtMjggICAoaGV4KQkJQ2lzY28KKzAwMEQyOCAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0yOSAgIChoZXgpCQlDaXNjbworMDAwRDI5ICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTJBICAgKGhleCkJCVNjYW5tYXRpYyBBUworMDAwRDJBICAgICAoYmFzZSAxNikJCVNjYW5tYXRpYyBBUworCQkJCUtpbHN1bmQKKwkJCQlTdGF1Yj8gIDQ5MjAKKwkJCQlOT1JXQVkKKworMDAtMEQtMkIgICAoaGV4KQkJUmFjYWwgSW5zdHJ1bWVudHMKKzAwMEQyQiAgICAgKGJhc2UgMTYpCQlSYWNhbCBJbnN0cnVtZW50cworCQkJCTQgR29vZHllYXIgU3RyZWV0CisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0yQyAgIChoZXgpCQlQYXRhcHNjbyBEZXNpZ25zIEx0ZAorMDAwRDJDICAgICAoYmFzZSAxNikJCVBhdGFwc2NvIERlc2lnbnMgTHRkCisJCQkJVGhlIFBhc3NmaWVsZCBPYWsKKwkJCQlQYXNzZmllbGQKKwkJCQlOciBMaXBob29rIEhhbXBzaGlyZSBHVTMwIDdSTAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBELTJEICAgKGhleCkJCU5DVCBEZXV0c2NobGFuZCBHbWJICiswMDBEMkQgICAgIChiYXNlIDE2KQkJTkNUIERldXRzY2hsYW5kIEdtYkgKKwkJCQlXaWxkZW5icnVjaHN0ci4gMTUKKwkJCQlKZW5hIFRodXJpbmdlbiAwNzc0NQorCQkJCUdFUk1BTlkKKworMDAtMEQtMkUgICAoaGV4KQkJTWF0c3VzaGl0YSBBdmlvbmljcyBTeXN0ZW1zIENvcnBvcmF0aW9uCiswMDBEMkUgICAgIChiYXNlIDE2KQkJTWF0c3VzaGl0YSBBdmlvbmljcyBTeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJMjYyMDAgRW50ZXJwcmlzZSBXYXkKKwkJCQlMYWtlIEZvcmVzdCBDQSA5MjYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMkYgICAoaGV4KQkJQUlOIENvbW0uVGVjaC5Dby4sIExURAorMDAwRDJGICAgICAoYmFzZSAxNikJCUFJTiBDb21tLlRlY2guQ28uLCBMVEQKKwkJCQk0RiwgTm8uNzYsIFNlYzIgTWludHp1IFJkCisJCQkJSnVuZy1MaSBDaXR5ICAzMjAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTMwICAgKGhleCkJCUljZUZ5cmUgU2VtaWNvbmR1Y3RvcgorMDAwRDMwICAgICAoYmFzZSAxNikJCUljZUZ5cmUgU2VtaWNvbmR1Y3RvcgorCQkJCVN1aXRlIDMwMAorCQkJCTQxMSBMZWdnZXR0IERyaXZlCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLIDNDOQorCQkJCUNBTkFEQQorCiswMC0wRC0zMSAgIChoZXgpCQlDb21wZWxsZW50IFRlY2hub2xvZ2llcywgSW5jLgorMDAwRDMxICAgICAoYmFzZSAxNikJCUNvbXBlbGxlbnQgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNzYyNSBTbWV0YW5hIExhbmUKKwkJCQlFZGVuIFByYWlyaWUgTWlubmVzb3RhIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0zMiAgIChoZXgpCQlEaXNwZW5zZVNvdXJjZSwgSW5jLgorMDAwRDMyICAgICAoYmFzZSAxNikJCURpc3BlbnNlU291cmNlLCBJbmMuCisJCQkJMjk4MDEgU2FudGEgTWFyZ2FyaXRhIFBhcmt3YXkKKwkJCQlSYW5jaG8gU2FudGEgTWFyZ2FyaXRhIENBIDkyNjg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0zMyAgIChoZXgpCQlQcmVkaXdhdmUgQ29ycC4KKzAwMEQzMyAgICAgKGJhc2UgMTYpCQlQcmVkaXdhdmUgQ29ycC4KKwkJCQk0ODQzMSBNaWxtb250IERyaXZlCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMzQgICAoaGV4KQkJU2hlbGwgSW50ZXJuYXRpb25hbCBFeHBsb3JhdGlvbiBhbmQgUHJvZHVjdGlvbiwgSW5jLgorMDAwRDM0ICAgICAoYmFzZSAxNikJCVNoZWxsIEludGVybmF0aW9uYWwgRXhwbG9yYXRpb24gYW5kIFByb2R1Y3Rpb24sIEluYy4KKwkJCQlCVEMtR2FzbWVyCisJCQkJUE8gQm94IDQ4MQorCQkJCUhvdXN0b24gVFggNzcwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTM1ICAgKGhleCkJCVBBQyBJbnRlcm5hdGlvbmFsIEx0ZAorMDAwRDM1ICAgICAoYmFzZSAxNikJCVBBQyBJbnRlcm5hdGlvbmFsIEx0ZAorCQkJCTEgUGFyayBHYXRlIENsb3NlCisJCQkJQnJlZGJ1cnkKKwkJCQlTdG9ja3BvcnQgQ2hlc2hpcmUgU0s2IDJTWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBELTM2ICAgKGhleCkJCVd1IEhhbiBSb3V0b24gRWxlY3Ryb25pYyBDby4sIEx0ZAorMDAwRDM2ICAgICAoYmFzZSAxNikJCVd1IEhhbiBSb3V0b24gRWxlY3Ryb25pYyBDby4sIEx0ZAorCQkJCU1pYW8gU2hhbiBEaXN0cmljdCwgRWFzdCBMYWtlIEhpLVRlY2gKKwkJCQlEZXZlbG9wbWVudCBQYXJrCisJCQkJV3VoYW4gSHViZWkgNDMwMjIzCisJCQkJQ0hJTkEKKworMDAtMEQtMzcgICAoaGV4KQkJV0lQTFVHCiswMDBEMzcgICAgIChiYXNlIDE2KQkJV0lQTFVHCisJCQkJUlVBICBEUi4gQUdPU1RJTkhPIEdPVUxBTworCQkJCUJBSVJSTzogQ09SUkVBUworCQkJCVBFVFJPUE9MSVMgUklPIEpBTkVJUk8gMjU3MzAwNTAKKwkJCQlCUkFaSUwKKworMDAtMEQtMzggICAoaGV4KQkJTklTU0lOIElOQy4KKzAwMEQzOCAgICAgKGJhc2UgMTYpCQlOSVNTSU4gSU5DLgorCQkJCTEwLTcgS0FNRUktQ0hPCisJCQkJVEFLQVJBWlVLQSBIWU9HTyA2NjUtMDA0NworCQkJCUpBUEFOCisKKzAwLTBELTM5ICAgKGhleCkJCU5ldHdvcmsgRWxlY3Ryb25pY3MKKzAwMEQzOSAgICAgKGJhc2UgMTYpCQlOZXR3b3JrIEVsZWN0cm9uaWNzCisJCQkJQm94IDEwMjAKKwkJCQlTYW5kZWZqb3JkIFNhbmRlZmpvcmQgTjMyMDQKKwkJCQlOT1JXQVkKKworMDAtMEQtM0EgICAoaGV4KQkJTWljcm9zb2Z0IENvcnAuCiswMDBEM0EgICAgIChiYXNlIDE2KQkJTWljcm9zb2Z0IENvcnAuCisJCQkJT25lIE1pY3Jvc29mdCBXYXkKKwkJCQlSZWRtb25kIFdhLiA5ODA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtM0IgICAoaGV4KQkJTWljcm9lbGVjdHJvbmljcyBUZWNobm9sb2d5IEluYy4KKzAwMEQzQiAgICAgKGJhc2UgMTYpCQlNaWNyb2VsZWN0cm9uaWNzIFRlY2hub2xvZ3kgSW5jLgorCQkJCU5vMSwgSW5ub3ZhdGlvbiBSb2FkIElJCisJCQkJSHNpbmNodSBTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCTMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtM0MgICAoaGV4KQkJaS5UZWNoIER5bmFtaWMgTHRkCiswMDBEM0MgICAgIChiYXNlIDE2KQkJaS5UZWNoIER5bmFtaWMgTHRkCisJCQkJUm9vbSAxMTEyLCBNZXRyb3BsYXphIFRvd2VyIDIsIDIyMyBIaW5nCisJCQkJODUyCisJCQkJSE9ORyBLT05HCisKKzAwLTBELTNEICAgKGhleCkJCUhhbW1lcmhlYWQgU3lzdGVtcywgSW5jLgorMDAwRDNEICAgICAoYmFzZSAxNikJCUhhbW1lcmhlYWQgU3lzdGVtcywgSW5jLgorCQkJCTY0MCBDbHlkZSBDb3VydAorCQkJCU1vdW50YWluIFZpZXcgQ2FsaWZvcm5pYSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtM0UgICAoaGV4KQkJQVBMVVggQ29tbXVuaWNhdGlvbnMgTHRkLgorMDAwRDNFICAgICAoYmFzZSAxNikJCUFQTFVYIENvbW11bmljYXRpb25zIEx0ZC4KKwkJCQkxMEYsIE5vLiAxNjYsIERhaC1ZZWggUmQuLCBQZWl0b3UKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtM0YgICAoaGV4KQkJVlRJIEluc3RydW1lbnRzIENvcnBvcmF0aW9uCiswMDBEM0YgICAgIChiYXNlIDE2KQkJVlRJIEluc3RydW1lbnRzIENvcnBvcmF0aW9uCisJCQkJNTQyNSBXYXJuZXIgUm9hZCwgU3VpdGUgMTMKKwkJCQlWYWxsZXkgVmlldyBPSCA0NDEyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNDAgICAoaGV4KQkJVmVyaW50IExvcm9uaXggVmlkZW8gU29sdXRpb25zCiswMDBENDAgICAgIChiYXNlIDE2KQkJVmVyaW50IExvcm9uaXggVmlkZW8gU29sdXRpb25zCisJCQkJMTI1MjYgSGlnaCBCbHVmZiBEci4gIzE3MAorCQkJCVNhbiBESWVnbyBDQSA5MjEzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNDEgICAoaGV4KQkJU2llbWVucyBBRyBJQ00gTVAgVUMgUkQgSVQgS0xGMQorMDAwRDQxICAgICAoYmFzZSAxNikJCVNpZW1lbnMgQUcgSUNNIE1QIFVDIFJEIElUIEtMRjEKKwkJCQlTdWVkc3RyYXNzZSA5CisJCQkJS2FtcC1MaW50Zm9ydCBOUlcgNDc0NzUKKwkJCQlHRVJNQU5ZCisKKzAwLTBELTQyICAgKGhleCkJCU5ld2Jlc3QgRGV2ZWxvcG1lbnQgTGltaXRlZAorMDAwRDQyICAgICAoYmFzZSAxNikJCU5ld2Jlc3QgRGV2ZWxvcG1lbnQgTGltaXRlZAorCQkJCTMvRiAgVW5pdCAzMTEtMzEyCisJCQkJTm8uMSBTY2llbmNlIFBhcmsgRWFzdCBBdmVudWUKKwkJCQlTaGF0aW4gIE5UIAorCQkJCUhPTkcgS09ORworCiswMC0wRC00MyAgIChoZXgpCQlEUlMgVGFjdGljYWwgU3lzdGVtcyBJbmMuCiswMDBENDMgICAgIChiYXNlIDE2KQkJRFJTIFRhY3RpY2FsIFN5c3RlbXMgSW5jLgorCQkJCTM1MjAgVS5TLiBIaWdod2F5IDEKKwkJCQlQYWxtIEJheSBGTCAzMjkwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNDQgICAoaGV4KQkJQXVkaW8gQlUgLSBMb2dpdGVjaAorMDAwRDQ0ICAgICAoYmFzZSAxNikJCUF1ZGlvIEJVIC0gTG9naXRlY2gKKwkJCQkxNDk5IFNFIFRlY2ggQ2VudGVyIFBsYWNlCisJCQkJU3VpdGUgMzUwCisJCQkJVmFuY291dmVyIFdBIDk4NjgzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC00NSAgIChoZXgpCQlUb3R0b3JpIFNBTllPIEVsZWN0cmljIENvLiwgTHRkLgorMDAwRDQ1ICAgICAoYmFzZSAxNikJCVRvdHRvcmkgU0FOWU8gRWxlY3RyaWMgQ28uLCBMdGQuCisJCQkJMy0yMDEsIE1pbmFtaSBZb3NoaWthdGEKKwkJCQlUb3R0b3JpIENpdHkgVG90dG9yaSA2ODAtODYzNAorCQkJCUpBUEFOCisKKzAwLTBELTQ2ICAgKGhleCkJCVBhcmtlciBTU0QgRHJpdmVzCiswMDBENDYgICAgIChiYXNlIDE2KQkJUGFya2VyIFNTRCBEcml2ZXMKKwkJCQk5MjI1IEZvcnN5dGggUGFyayBEcml2ZQorCQkJCUNoYXJsb3R0ZSBOQyAyODI3My0zODg0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC00NyAgIChoZXgpCQlDb2xsZXgKKzAwMEQ0NyAgICAgKGJhc2UgMTYpCQlDb2xsZXgKKwkJCQkxM0YtMyxOby4xNDIsU2VjLjEsSHVhbWVpIFcsU3QuLFNoaSBDaGl1CisJCQkJVGFpY2h1bmcgIDQwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtNDggICAoaGV4KQkJQUVXSU4gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAwRDQ4ICAgICAoYmFzZSAxNikJCUFFV0lOIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQk3RiwgTm8uIDIsIExhbmUgNDcsIFNlYy4gMywgTmFuLUdhbmcgUmQuCisJCQkJVEFJUEVJICAxMTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTQ5ICAgKGhleCkJCVRyaXRvbiBTeXN0ZW1zIG9mIERlbGF3YXJlLCBJbmMuCiswMDBENDkgICAgIChiYXNlIDE2KQkJVHJpdG9uIFN5c3RlbXMgb2YgRGVsYXdhcmUsIEluYy4KKwkJCQk1MjIgRS4gUmFpbHJvYWQgU3QuCisJCQkJTG9uZyBCZWFjaCBNUyAzOTU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNEEgICAoaGV4KQkJU3RlYWcgRVRBLU9wdGlrCiswMDBENEEgICAgIChiYXNlIDE2KQkJU3RlYWcgRVRBLU9wdGlrCisJCQkJQm9yc2lnc3RyYXNzZSA3OC4tODAKKwkJCQlIZWluc2JlcmcgIDUyNTI1CisJCQkJR0VSTUFOWQorCiswMC0wRC00QiAgIChoZXgpCQlSb2t1LCBMTEMKKzAwMEQ0QiAgICAgKGJhc2UgMTYpCQlSb2t1LCBMTEMKKwkJCQkzOTkgU2hlcm1hbiBBdmUuICMxMgorCQkJCVBhbG8gQWx0byBDQSA5NDMwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNEMgICAoaGV4KQkJT3V0bGluZSBFbGVjdHJvbmljcyBMdGQuCiswMDBENEMgICAgIChiYXNlIDE2KQkJT3V0bGluZSBFbGVjdHJvbmljcyBMdGQuCisJCQkJNy9GIEJlbnNvbiBUb3dlcgorCQkJCTc0IEh1bmcgVG8gUm9hZAorCQkJCUt3dW4gVG9uZyBLb3dsb29uIAorCQkJCUhPTkcgS09ORworCiswMC0wRC00RCAgIChoZXgpCQlOaW5lbGFuZXMKKzAwMEQ0RCAgICAgKGJhc2UgMTYpCQlOaW5lbGFuZXMKKwkJCQkjNDA1IDRGIERpcGxvbWF0aWMgQ2VudGVyCisJCQkJU2VvY2hvLWd1LCBTZW9jaG8tZG9uZworCQkJCVNlb3VsICAxMzc2LTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEQtNEUgICAoaGV4KQkJTkRSIENvLixMVEQuCiswMDBENEUgICAgIChiYXNlIDE2KQkJTkRSIENvLixMVEQuCisJCQkJU3VtaXRvbW8gc2VpbWVpIG1pbmF0b21hY2hpIE1UIEJMREcKKwkJCQkxLTE4LTIgTWluYW1paG9yaWUgTmlzaGkta3UKKwkJCQlPc2FrIEtpbmtpIDU1MC0wMDE1CisJCQkJSkFQQU4KKworMDAtMEQtNEYgICAoaGV4KQkJS2Vud29vZCBDb3Jwb3JhdGlvbgorMDAwRDRGICAgICAoYmFzZSAxNikJCUtlbndvb2QgQ29ycG9yYXRpb24KKwkJCQkyOTY3LTMsIElzaGlrYXdhLW1hY2hpCisJCQkJSGFjaGlvamktc2hpIFRva3lvIDE5Mi04NTI1CisJCQkJSkFQQU4KKworMDAtMEQtNTAgICAoaGV4KQkJR2FsYXphciBOZXR3b3JrcworMDAwRDUwICAgICAoYmFzZSAxNikJCUdhbGF6YXIgTmV0d29ya3MKKwkJCQkzNSBGaXR6Z2VyYWxkIEF2ZQorCQkJCU90dGF3YSBPTiBLMkggMUU2CisJCQkJQ0FOQURBCisKKzAwLTBELTUxICAgKGhleCkJCURJVlIgU3lzdGVtcywgSW5jLgorMDAwRDUxICAgICAoYmFzZSAxNikJCURJVlIgU3lzdGVtcywgSW5jLgorCQkJCTIxNjEgU2F0dXJuIEN0LgorCQkJCUJha2Vyc2ZpZWxkIENBIDkzMzA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC01MiAgIChoZXgpCQlDb21hcnQgc3lzdGVtCiswMDBENTIgICAgIChiYXNlIDE2KQkJQ29tYXJ0IHN5c3RlbQorCQkJCU5vLiAyMTEsIEFjZSBUZWNobm8gVG93ZXIgSUlJLCAxOTctNDgKKwkJCQlHdS1ybyBEb25nLCBHdS1ybyBHdSwgU2VvdWwsIEtvcmVhCisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEQtNTMgICAoaGV4KQkJQmVpamluZyA1dyBDb21tdW5pY2F0aW9uIENvcnAuCiswMDBENTMgICAgIChiYXNlIDE2KQkJQmVpamluZyA1dyBDb21tdW5pY2F0aW9uIENvcnAuCisJCQkJTk8uNCxaaG9uZy1HdWFuLUN1biBTb3V0aCA0IHN0cmVldCwKKwkJCQlCZWlqaW5nICAxMDAwODAKKwkJCQlDSElOQQorCiswMC0wRC01NCAgIChoZXgpCQkzQ29tIEx0ZAorMDAwRDU0ICAgICAoYmFzZSAxNikJCTNDb20gTHRkCisJCQkJUGVvcGxlYnVpbGRpbmcgMgorCQkJCVBlb3BsZWJ1aWxkaW5nIEVzdGF0ZSwgTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC01NSAgIChoZXgpCQlTQU5ZQ09NIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAwRDU1ICAgICAoYmFzZSAxNikJCVNBTllDT00gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJNkYsQmVpamluZyBDYXBpdGFsIFRpbWVzIFNxdWFyZSw4OCMgWGljaAorCQkJCUJlaWppbmcgIDEwMDAzMQorCQkJCUNISU5BCisKKzAwLTBELTU2ICAgKGhleCkJCURlbGwgUENCQSBUZXN0CiswMDBENTYgICAgIChiYXNlIDE2KQkJRGVsbCBQQ0JBIFRlc3QKKwkJCQlPbmUgRGVsbCBXYXkKKwkJCQlSUjUgTVMtODU0NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTU3ICAgKGhleCkJCUZ1aml0c3UgSS1OZXR3b3JrIFN5c3RlbXMgTGltaXRlZC4KKzAwMEQ1NyAgICAgKGJhc2UgMTYpCQlGdWppdHN1IEktTmV0d29yayBTeXN0ZW1zIExpbWl0ZWQuCisJCQkJMS00MDMga29zdWdpLWNobyBuYWthaGFyYS1rdQorCQkJCWthd2FzYWtpIGthbmFnYXdhIDIxMS0wMDYzCisJCQkJSkFQQU4KKworMDAtMEQtNTggICAoaGV4KQkJUFJJVkFURQorMDAwRDU4ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wRC01OSAgIChoZXgpCQlBbWl0eSBTeXN0ZW1zLCBJbmMuCiswMDBENTkgICAgIChiYXNlIDE2KQkJQW1pdHkgU3lzdGVtcywgSW5jLgorCQkJCTg4OCBUYXNtYW4gRHJpdmUKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNUEgICAoaGV4KQkJVGllc3NlIFNwQQorMDAwRDVBICAgICAoYmFzZSAxNikJCVRpZXNzZSBTcEEKKwkJCQlWaWEgQXN0aQorCQkJCVpvbmEgSW5kdXN0cmlhbCBTYW4gQmVybmFyZG8KKwkJCQlJdnJlYSBUTyAxMDAxNQorCQkJCUlUQUxZCisKKzAwLTBELTVCICAgKGhleCkJCVNtYXJ0IEVtcGlyZSBJbnZlc3RtZW50cyBMaW1pdGVkCiswMDBENUIgICAgIChiYXNlIDE2KQkJU21hcnQgRW1waXJlIEludmVzdG1lbnRzIExpbWl0ZWQKKwkJCQlTdWl0ZSAyMDAxLTIwMDYsTGV2ZWwgMjAgTGFuZG1hcmsgTm9ydGgKKwkJCQlYaW4gSmllIEhvbmcgS29uZyAwMDg1MgorCQkJCUNISU5BCisKKzAwLTBELTVDICAgKGhleCkJCVJvYmVydCBCb3NjaCBHbWJILCBWVC1BVE1PCiswMDBENUMgICAgIChiYXNlIDE2KQkJUm9iZXJ0IEJvc2NoIEdtYkgsIFZULUFUTU8KKwkJCQlXZXJuZXJzdHJhc3NlIDUxCisJCQkJU3R1dHRnYXJ0IEJXIDcwNDY5CisJCQkJR0VSTUFOWQorCiswMC0wRC01RCAgIChoZXgpCQlSYXJpdGFuIENvbXB1dGVyLCBJbmMKKzAwMEQ1RCAgICAgKGJhc2UgMTYpCQlSYXJpdGFuIENvbXB1dGVyLCBJbmMKKwkJCQk0MDAgQ290dG9udGFpbCBMYW5lCisJCQkJU29tZXJzZXQgTkogMDg4NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTVFICAgKGhleCkJCU5FQyBQZXJzb25hbCBQcm9kdWN0cworMDAwRDVFICAgICAoYmFzZSAxNikJCU5FQyBQZXJzb25hbCBQcm9kdWN0cworCQkJCTYtODAsIFNoaW1vaGFuYXphd2EgMi1DaG9tZQorCQkJCVlvbmV6YXdhLXNoaSBZYW1hZ2F0YSA5OTItODUyMAorCQkJCUpBUEFOCisKKzAwLTBELTVGICAgKGhleCkJCU1pbmRzIEluYworMDAwRDVGICAgICAoYmFzZSAxNikJCU1pbmRzIEluYworCQkJCTE5MTkgYm91bCBsaW9uZWwgYmVydHJhbmQKKwkJCQkjMjAyCisJCQkJQm9pc2JyaWFuZCBRdWViZWMgSjdIIDFOOAorCQkJCUNBTkFEQQorCiswMC0wRC02MCAgIChoZXgpCQlJQk0gQ29ycAorMDAwRDYwICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMzAzOSBFIENvcm53YWxsaXMgUm9hZAorCQkJCVAuTy4gQk9YIDEyMTk1CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0yMTk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC02MSAgIChoZXgpCQlHaWdhLUJ5dGUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMEQ2MSAgICAgKGJhc2UgMTYpCQlHaWdhLUJ5dGUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlObyA2LCBCYXUgQ2hpYW5nIFJvYWQsIEhzaW4tVGllbgorCQkJCVRhaXBlaSBIc2llbiAgOTk5OQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtNjIgICAoaGV4KQkJRnVua3dlcmsgRGFiZW5kb3JmIEdtYkgKKzAwMEQ2MiAgICAgKGJhc2UgMTYpCQlGdW5rd2VyayBEYWJlbmRvcmYgR21iSAorCQkJCU1hZXJraXNjaGUgU3RyYXNzZQorCQkJCURhYmVuZG9yZiBCcmFuZGVuYnVyZyAxNTgwNgorCQkJCUdFUk1BTlkKKworMDAtMEQtNjMgICAoaGV4KQkJREVOVCBJbnN0cnVtZW50cywgSW5jLgorMDAwRDYzICAgICAoYmFzZSAxNikJCURFTlQgSW5zdHJ1bWVudHMsIEluYy4KKwkJCQk2NCBOVyBGcmFua2xpbiBBdmUKKwkJCQlCZW5kIE9SIDk3NzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC02NCAgIChoZXgpCQlDT01BRyBIYW5kZWxzIEFHCiswMDBENjQgICAgIChiYXNlIDE2KQkJQ09NQUcgSGFuZGVscyBBRworCQkJCVppbGxlbmhhcmR0c3RyLjQxCisJCQkJR29lcHBpbmdlbiBCYWRlbi1XdXJ0dGVtYmVyZyA3MzAzNworCQkJCUdFUk1BTlkKKworMDAtMEQtNjUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRDY1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNjYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRDY2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNjcgICAoaGV4KQkJQmVsQWlyIE5ldHdvcmtzIEluYy4KKzAwMEQ2NyAgICAgKGJhc2UgMTYpCQlCZWxBaXIgTmV0d29ya3MgSW5jLgorCQkJCTYwMyBNYXJjaCBSb2FkCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLIDJNNQorCQkJCUNBTkFEQQorCiswMC0wRC02OCAgIChoZXgpCQlWaW5jaSBTeXN0ZW1zLCBJbmMuCiswMDBENjggICAgIChiYXNlIDE2KQkJVmluY2kgU3lzdGVtcywgSW5jLgorCQkJCTgzMzAgQm9vbmUgQm91bGV2YXJkCisJCQkJU3VpdGUgNTAwCisJCQkJVmllbm5hIFZBIDIyMTgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC02OSAgIChoZXgpCQlUTVQmRCBDb3Jwb3JhdGlvbgorMDAwRDY5ICAgICAoYmFzZSAxNikJCVRNVCZEIENvcnBvcmF0aW9uCisJCQkJMi0yNC0xCisJCQkJSGFydW1pLWNobworCQkJCUZ1Y2h1LXNpIFRva3lvIDE4My0wMDU3CisJCQkJSkFQQU4KKworMDAtMEQtNkEgICAoaGV4KQkJUmVkd29vZCBUZWNobm9sb2dpZXMgTFRECiswMDBENkEgICAgIChiYXNlIDE2KQkJUmVkd29vZCBUZWNobm9sb2dpZXMgTFRECisJCQkJQW1iZXIgSG91c2UKKwkJCQlNYXJrZXQgU3RyZWV0CisJCQkJQnJhY2tuZWxsIEJlcmtzaGlyZSBSRzEyIDFKQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBELTZCICAgKGhleCkJCU1pdGEtVGVrbmlrIEEvUworMDAwRDZCICAgICAoYmFzZSAxNikJCU1pdGEtVGVrbmlrIEEvUworCQkJCUhhYW5kdmFlcmtlcnZlaiAxCisJCQkJUm9lZGthZXJzYnJvIERLIERLLTg4NDAKKwkJCQlERU5NQVJLCisKKzAwLTBELTZDICAgKGhleCkJCU0tQXVkaW8KKzAwMEQ2QyAgICAgKGJhc2UgMTYpCQlNLUF1ZGlvCisJCQkJNDUgRSBTVCBKb3NlcGggU3QuCisJCQkJQXJjYWRpYSBDQSA5MTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNkQgICAoaGV4KQkJSy1UZWNoIERldmljZXMgQ29ycC4KKzAwMEQ2RCAgICAgKGJhc2UgMTYpCQlLLVRlY2ggRGV2aWNlcyBDb3JwLgorCQkJCTE0MDE2LTMwCisJCQkJbmFrYW1pbm93YSBtaW5vd2FtYWNoaSBrYW1paW5hIG5hZ2FubyAzOTktNDYwMQorCQkJCUpBUEFOCisKKzAwLTBELTZFICAgKGhleCkJCUstUGF0ZW50cyBPeQorMDAwRDZFICAgICAoYmFzZSAxNikJCUstUGF0ZW50cyBPeQorCQkJCVAuTy4gQm94IDc3CisJCQkJRWxhbm5vbnRpZSA1CisJCQkJVkFOVEFBIEZJIDAxNTExCisJCQkJRklOTEFORAorCiswMC0wRC02RiAgIChoZXgpCQlFbWJlciBDb3Jwb3JhdGlvbgorMDAwRDZGICAgICAoYmFzZSAxNikJCUVtYmVyIENvcnBvcmF0aW9uCisJCQkJMzQzIENvbmdyZXNzIFN0CisJCQkJNXRoIEZsb29yCisJCQkJQm9zdG9uIE1hIDAyMjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC03MCAgIChoZXgpCQlEYXRhbWF4IENvcnBvcmF0aW9uCiswMDBENzAgICAgIChiYXNlIDE2KQkJRGF0YW1heCBDb3Jwb3JhdGlvbgorCQkJCTQ1MDEgUGFya3dheSBDb21tZXJjZSBCbHZkCisJCQkJT3JsYW5kbyBGTCAzMjgwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNzEgICAoaGV4KQkJYm9jYSBzeXN0ZW1zCiswMDBENzEgICAgIChiYXNlIDE2KQkJYm9jYSBzeXN0ZW1zCisJCQkJMTA2NSBzLiByb2dlcnMgY2lyY2xlCisJCQkJYm9jYSByYXRvbiBmbCAzMzQ4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNzIgICAoaGV4KQkJMldpcmUsIEluYworMDAwRDcyICAgICAoYmFzZSAxNikJCTJXaXJlLCBJbmMKKwkJCQkxNzA0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC03MyAgIChoZXgpCQlUZWNobmljYWwgU3VwcG9ydCwgSW5jLgorMDAwRDczICAgICAoYmFzZSAxNikJCVRlY2huaWNhbCBTdXBwb3J0LCBJbmMuCisJCQkJMTEyNTMgSm9obiBHYWx0IEJsdmQKKwkJCQlPbWFoYSBOZWJyYXNrYSA2ODEzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNzQgICAoaGV4KQkJU2FuZCBOZXR3b3JrIFN5c3RlbXMsIEluYy4KKzAwMEQ3NCAgICAgKGJhc2UgMTYpCQlTYW5kIE5ldHdvcmsgU3lzdGVtcywgSW5jLgorCQkJCTQzNCBQYXlyYW4gU3RyZWV0CisJCQkJUGV0YWx1bWEgQ0EgOTQ5NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTc1ICAgKGhleCkJCUtvYmlhbiBQdGUgTHRkIC0gVGFpd2FuIEJyYW5jaAorMDAwRDc1ICAgICAoYmFzZSAxNikJCUtvYmlhbiBQdGUgTHRkIC0gVGFpd2FuIEJyYW5jaAorCQkJCTJGLCBOby41ODAsIFJ1ZWlrdWFuZyBSZC4sTmVpIEh1LFRhaXBlaSwKKwkJCQlUYWlwZWkgTmVpIEh1IDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtNzYgICAoaGV4KQkJSG9rdXRvIERlbnNoaSBDbywuIEx0ZC4KKzAwMEQ3NiAgICAgKGJhc2UgMTYpCQlIb2t1dG8gRGVuc2hpIENvLC4gTHRkLgorCQkJCTMtNyBPZG9yaSBOaXNoaSAxNi1DaG9tZSBDaHVva3UKKwkJCQlTYXBwb3JvIEhva2thaWRvIDA2MC0wMDQyCisJCQkJSkFQQU4KKworMDAtMEQtNzcgICAoaGV4KQkJRmFsY29uU3RvciBTb2Z0d2FyZQorMDAwRDc3ICAgICAoYmFzZSAxNikJCUZhbGNvblN0b3IgU29mdHdhcmUKKwkJCQkxMjUgQmF5bGlzIFJkCisJCQkJTWVsdmlsbGUgTlkgMTE3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTc4ICAgKGhleCkJCUVuZ2luZWVyaW5nICYgU2VjdXJpdHkKKzAwMEQ3OCAgICAgKGJhc2UgMTYpCQlFbmdpbmVlcmluZyAmIFNlY3VyaXR5CisJCQkJTWFydGlyaSBkZWxsYSBMaWJlcnRhIDMyLzQKKwkJCQlHZW5vdmEgIDE2MTU1CisJCQkJSVRBTFkKKworMDAtMEQtNzkgICAoaGV4KQkJRHluYW1pYyBTb2x1dGlvbnMgQ28sLkx0ZC4KKzAwMEQ3OSAgICAgKGJhc2UgMTYpCQlEeW5hbWljIFNvbHV0aW9ucyBDbywuTHRkLgorCQkJCTE3LTggTmlob25iYXNoaSBIYWtvemFraS1jaG8KKwkJCQlDaHVvLWt1IFRva3lvIDEwMy0wMDE1CisJCQkJSkFQQU4KKworMDAtMEQtN0EgICAoaGV4KQkJRGlHQVRUTyBBc2lhIFBhY2lmaWMgUHRlIEx0ZAorMDAwRDdBICAgICAoYmFzZSAxNikJCURpR0FUVE8gQXNpYSBQYWNpZmljIFB0ZSBMdGQKKwkJCQkxOTAgTWRkbGUgUm9hZCwgIzE5LTA1IEZvcnR1bmUgQ2VudGVyCisJCQkJMTg4OTc5CisJCQkJU0lOR0FQT1JFCisKKzAwLTBELTdCICAgKGhleCkJCUNvbnNlbnN5cyBDb21wdXRlcnMgSW5jLgorMDAwRDdCICAgICAoYmFzZSAxNikJCUNvbnNlbnN5cyBDb21wdXRlcnMgSW5jLgorCQkJCTIxNSBTaGllbGRzIEN0LgorCQkJCU1hcmtoYW0gT04gTDNSIDhWMgorCQkJCUNBTkFEQQorCiswMC0wRC03QyAgIChoZXgpCQlDb2RpYW4gTHRkCiswMDBEN0MgICAgIChiYXNlIDE2KQkJQ29kaWFuIEx0ZAorCQkJCTE0IFdhdGVyc2lkZSBEcml2ZQorCQkJCUxhbmdsZXkgU2xvdWdoIFNMMyA2RVoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC03RCAgIChoZXgpCQlBZmNvIFN5c3RlbXMKKzAwMEQ3RCAgICAgKGJhc2UgMTYpCQlBZmNvIFN5c3RlbXMKKwkJCQkyMDAgRmlubiBDb3VydAorCQkJCUZhcm1pbmdkYWxlIE5ZIDExNzM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC03RSAgIChoZXgpCQlBeGlvd2F2ZSBOZXR3b3JrcywgSW5jLgorMDAwRDdFICAgICAoYmFzZSAxNikJCUF4aW93YXZlIE5ldHdvcmtzLCBJbmMuCisJCQkJMjAwIE5pY2tlcnNvbiBSb2FkCisJCQkJTWFybGJvcm91Z2ggTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTdGICAgKGhleCkJCU1JREFTICBDT01NVU5JQ0FUSU9OIFRFQ0hOT0xPR0lFUyBQVEUgTFREICggRm9yZWlnbiBCcmFuY2gpCiswMDBEN0YgICAgIChiYXNlIDE2KQkJTUlEQVMgIENPTU1VTklDQVRJT04gVEVDSE5PTE9HSUVTIFBURSBMVEQgKCBGb3JlaWduIEJyYW5jaCkKKwkJCQkwNC0xMiwgUGhhc2UgWi5SbyBUZWNobm9wcmVudWVyIFBhcmsKKwkJCQkjMTUxLCBOb3J0aCBCdW9uYSBWaXN0YSBSb2FkCisJCQkJU2luZ2Fwb3JlICAxMzkgMzQ3CisJCQkJU0lOR0FQT1JFCisKKzAwLTBELTgwICAgKGhleCkJCU9ubGluZSBEZXZlbG9wbWVudCBJbmMKKzAwMEQ4MCAgICAgKGJhc2UgMTYpCQlPbmxpbmUgRGV2ZWxvcG1lbnQgSW5jCisJCQkJNzIwOSBDaGFwbWFuIEh3eQorCQkJCUtub3h2aWxsZSBUbiAzNzkyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtODEgICAoaGV4KQkJUGVwcGVybCtGdWNocyBHbWJICiswMDBEODEgICAgIChiYXNlIDE2KQkJUGVwcGVybCtGdWNocyBHbWJICisJCQkJTGlsaWVudGhhbHN0cmFzc2UgMjAwCisJCQkJTWFubmhlaW0gIDY4MzA3CisJCQkJR0VSTUFOWQorCiswMC0wRC04MiAgIChoZXgpCQlQSFMgc3JsCiswMDBEODIgICAgIChiYXNlIDE2KQkJUEhTIHNybAorCQkJCVZpYSBQYWx1LCAxNworCQkJCUFyY3VnbmFubyBWaWNlbnphIDM2MDU3CisJCQkJSVRBTFkKKworMDAtMEQtODMgICAoaGV4KQkJU2FubWluYS1TQ0kgSHVuZ2FyeSAgTHRkLgorMDAwRDgzICAgICAoYmFzZSAxNikJCVNhbm1pbmEtU0NJIEh1bmdhcnkgIEx0ZC4KKwkJCQlLb3RhIEpvenNlZiB1LiAyLgorCQkJCVRhdGFiYW55YSBLb21hcm9tLUVzenRlcmdvbSAyODAwCisJCQkJSFVOR0FSWQorCiswMC0wRC04NCAgIChoZXgpCQlNYWt1cyBJbmMuCiswMDBEODQgICAgIChiYXNlIDE2KQkJTWFrdXMgSW5jLgorCQkJCTRGIERhZWRvIEJsZGcuLCA3NDgtMTQgWWVva3NhbS1kb25nCisJCQkJS2FuZ25hbS1ndSBTZW91bCAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELTg1ICAgKGhleCkJCVRhcHdhdmUsIEluYy4KKzAwMEQ4NSAgICAgKGJhc2UgMTYpCQlUYXB3YXZlLCBJbmMuCisJCQkJMTkwMSBMYW5kaW5ncyBEcml2ZQorCQkJCUJ1aWxkaW5nIEcKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC04NiAgIChoZXgpCQlIdWJlciArIFN1aG5lciBBRworMDAwRDg2ICAgICAoYmFzZSAxNikJCUh1YmVyICsgU3VobmVyIEFHCisJCQkJRGVnZXJzaGVpbWVyc3RyYXNzZSAxNAorCQkJCTkxMDAgSGVyaXNhdSAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRC04NyAgIChoZXgpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4gKEVDUykKKzAwMEQ4NyAgICAgKGJhc2UgMTYpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4gKEVDUykKKwkJCQlOby4yMiwgQWxsZXkgMzgsIExhbmUgOTEsIFNlYy4gMSwgTmVpIEh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTg4ICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAwRDg4ICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5vLjgsIExpLUhzaW5nIDcgUm9hZCwgU2NpZW5jZS1CYXNlZCBJbmQKKwkJCQlIc2luY2h1ICAzMDA3NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtODkgICAoaGV4KQkJQmlscyBUZWNobm9sb2d5IEluYworMDAwRDg5ICAgICAoYmFzZSAxNikJCUJpbHMgVGVjaG5vbG9neSBJbmMKKwkJCQk1MDggUyBSaXZlciBPYWtzIERyaXZlCisJCQkJSW5kaWFsYW50aWMgRkwgMzI5MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELThBICAgKGhleCkJCVdpbm5lcnMgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDBEOEEgICAgIChiYXNlIDE2KQkJV2lubmVycyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkjMzQwLTUsV29uY2h1bi1Eb25nLFBhbGRhbC1HdQorCQkJCVN1d29uLUNpdHkgS3l1bmdraS1EbyA0NDItODIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELThCICAgKGhleCkJCVQmRCBDb3Jwb3JhdGlvbgorMDAwRDhCICAgICAoYmFzZSAxNikJCVQmRCBDb3Jwb3JhdGlvbgorCQkJCTU2NTItMTY5IFNhc2FnYQorCQkJCU1hdHN1bW90byBOYWdhbm8gMzk5LTAwMzMKKwkJCQlKQVBBTgorCiswMC0wRC04QyAgIChoZXgpCQlTaGFuZ2hhaSBXZWRvbmUgRGlnaXRhbCBMdGQuIENPLgorMDAwRDhDICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFdlZG9uZSBEaWdpdGFsIEx0ZC4gQ08uCisJCQkJODkzLTg5OSBIdWFzaGFuIFJvYWQsCisJCQkJU2hhbmdoYWkgIDIwMDAzMQorCQkJCUNISU5BCisKKzAwLTBELThEICAgKGhleCkJCVByb0xpbnggQ29tbXVuaWNhdGlvbiBHYXRld2F5cywgSW5jLgorMDAwRDhEICAgICAoYmFzZSAxNikJCVByb0xpbnggQ29tbXVuaWNhdGlvbiBHYXRld2F5cywgSW5jLgorCQkJCTE2NzUgQ2hlc3RlciBBdmUuCisJCQkJRm91cnRoIEZsb29yCisJCQkJQmFrZXJzZmllbGQgQ0EgOTMzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELThFICAgKGhleCkJCUtvZGVuIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwRDhFICAgICAoYmFzZSAxNikJCUtvZGVuIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTUyNzggVWVub2hhcmEKKwkJCQlVZW5vaGFyYS1TaGkKKwkJCQlZYW1hbmFzaGktS2VuIDQwOS0wMTEyCisJCQkJSkFQQU4KKworMDAtMEQtOEYgICAoaGV4KQkJS2luZyBUc3VzaGluIEtvZ3lvIENvLiwgTFRELgorMDAwRDhGICAgICAoYmFzZSAxNikJCUtpbmcgVHN1c2hpbiBLb2d5byBDby4sIExURC4KKwkJCQkyLTYtNiBOb2dlCisJCQkJU2V0YWdheWEta3UgVG9reW8gMTU4LTAwOTIKKwkJCQlKQVBBTgorCiswMC0wRC05MCAgIChoZXgpCQlGYWN0dW0gRWxlY3Ryb25pY3MgQUIKKzAwMEQ5MCAgICAgKGJhc2UgMTYpCQlGYWN0dW0gRWxlY3Ryb25pY3MgQUIKKwkJCQlUZWtuaWtyaW5nZW4gMUgKKwkJCQlMaW5rb3BpbmcgT3N0ZXJnb3RsYW5kIDU4MyAzMAorCQkJCVNXRURFTgorCiswMC0wRC05MSAgIChoZXgpCQlFY2xpcHNlIChIUSBFc3BhbmEpIFMuTC4KKzAwMEQ5MSAgICAgKGJhc2UgMTYpCQlFY2xpcHNlIChIUSBFc3BhbmEpIFMuTC4KKwkJCQlDQyBkZSBOZWdvY2lvcworCQkJCU9mZmljaW5hIE5vLiA0Ni4gQy5OLiAzNDAsIEttIDE3NQorCQkJCVB1ZXJ0byBkZSBCYW51cyBNYXJiZWxsYSAyOTY2MAorCQkJCVNQQUlOCisKKzAwLTBELTkyICAgKGhleCkJCUFyaW1hIENvbW11bmljYXRpb24gQ29ycG9yYXRpb24KKzAwMEQ5MiAgICAgKGJhc2UgMTYpCQlBcmltYSBDb21tdW5pY2F0aW9uIENvcnBvcmF0aW9uCisJCQkJMTYsIGxhbmUgNjU4LCBZaW5nLVRhbyBSb2FkCisJCQkJWWluZ2tvIFRhaXBlaSBDb3VudHkgMjM5NDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTkzICAgKGhleCkJCUFwcGxlIENvbXB1dGVyCiswMDBEOTMgICAgIChiYXNlIDE2KQkJQXBwbGUgQ29tcHV0ZXIKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTk0ICAgKGhleCkJCUFGQVIgQ29tbXVuaWNhdGlvbnMsSW5jCiswMDBEOTQgICAgIChiYXNlIDE2KQkJQUZBUiBDb21tdW5pY2F0aW9ucyxJbmMKKwkJCQk4MSBEYXZpZCBMb3ZlIFBsYWNlCisJCQkJU3VpdGUgQQorCQkJCVNhbnRhIEJhcmJhcmEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTk1ICAgKGhleCkJCU9wdGktY2VsbCwgSW5jLgorMDAwRDk1ICAgICAoYmFzZSAxNikJCU9wdGktY2VsbCwgSW5jLgorCQkJCTEwMCBIaWdoIFRvd2VyIEJsdmQuLCAgU3VpdGUgMzAxCisJCQkJUGl0dHNidXJnaCBQQSAxNTIwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtOTYgICAoaGV4KQkJVnRlcmEgVGVjaG5vbG9neSBJbmMuCiswMDBEOTYgICAgIChiYXNlIDE2KQkJVnRlcmEgVGVjaG5vbG9neSBJbmMuCisJCQkJTm8gMzQsIEluZHVzdHJpYWwgRWFzdC4gNHRoIFJkLgorCQkJCUhzaW5DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtOTcgICAoaGV4KQkJVHJvcG9zIE5ldHdvcmtzLCBJbmMuCiswMDBEOTcgICAgIChiYXNlIDE2KQkJVHJvcG9zIE5ldHdvcmtzLCBJbmMuCisJCQkJMTcxMCBTLiBBbXBobGV0dCBCbHZkLCAgU3VpdGUgMzA0CisJCQkJU2FuIE1hdGVvIENBIDk0NDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC05OCAgIChoZXgpCQlTLlcuQS5DLiBTY2htaXR0LVdhbHRlciBBdXRvbWF0aW9uIENvbnN1bHQgR21iSAorMDAwRDk4ICAgICAoYmFzZSAxNikJCVMuVy5BLkMuIFNjaG1pdHQtV2FsdGVyIEF1dG9tYXRpb24gQ29uc3VsdCBHbWJICisJCQkJT2VkZW5wdWxsYWNoIDEKKwkJCQlPYmVyaGFjaGluZyBCYXZhcmlhIDgyMDQxCisJCQkJR0VSTUFOWQorCiswMC0wRC05OSAgIChoZXgpCQlPcmJpdGFsIFNjaWVuY2VzIENvcnAuOyBMYXVuY2ggU3lzdGVtcyBHcm91cAorMDAwRDk5ICAgICAoYmFzZSAxNikJCU9yYml0YWwgU2NpZW5jZXMgQ29ycC47IExhdW5jaCBTeXN0ZW1zIEdyb3VwCisJCQkJMzM4MCBTLiBQcmljZSBSZC4KKwkJCQlDaGFuZGxlciwgQVogODUyNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTlBICAgKGhleCkJCUlORk9URUMgTFRECiswMDBEOUEgICAgIChiYXNlIDE2KQkJSU5GT1RFQyBMVEQKKwkJCQlUaGUgTWFsdGluZ3MKKwkJCQlUYW13b3J0aCBSb2FkCisJCQkJQXNoYnktZGUtbGEtWm91Y2ggTGVpY2VzdGVyc2hpcmUgTEU2NSAyUFMKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC05QiAgIChoZXgpCQlIZXJhZXVzIEVsZWN0cm8tTml0ZSBJbnRlcm5hdGlvbmFsIE4uVi4KKzAwMEQ5QiAgICAgKGJhc2UgMTYpCQlIZXJhZXVzIEVsZWN0cm8tTml0ZSBJbnRlcm5hdGlvbmFsIE4uVi4KKwkJCQlDZW50cnVtIFp1aWQgMTEwNQorCQkJCUhvdXRoYWxlbiAgMzUzMAorCQkJCUJFTEdJVU0KKworMDAtMEQtOUMgICAoaGV4KQkJRWxhbiBHbWJIICYgQ28gS0cKKzAwMEQ5QyAgICAgKGJhc2UgMTYpCQlFbGFuIEdtYkggJiBDbyBLRworCQkJCUltIE9zdHBhcmsgMgorCQkJCVdldHRlbmJlcmcgSGVzc2VuIDM1NDM1CisJCQkJR0VSTUFOWQorCiswMC0wRC05RCAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMEQ5RCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OSBTb3V0aAorCQkJCW14MDcwNDA1CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtOUUgICAoaGV4KQkJVE9LVURFTiBPSElaVU1JIFNFSVNBS1VTWU8gQ28uLEx0ZC4KKzAwMEQ5RSAgICAgKGJhc2UgMTYpCQlUT0tVREVOIE9ISVpVTUkgU0VJU0FLVVNZTyBDby4sTHRkLgorCQkJCVlvc2hpZGEgMTIyMQorCQkJCU91cmFndW4gT2hpenVtaSBHdW5tYSAzNzAtMDUyMworCQkJCUpBUEFOCisKKzAwLTBELTlGICAgKGhleCkJCVJGIE1pY3JvIERldmljZXMKKzAwMEQ5RiAgICAgKGJhc2UgMTYpCQlSRiBNaWNybyBEZXZpY2VzCisJCQkJMjE5MSBaYW5rZXIgUm9hZAorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1BMCAgIChoZXgpCQlORURBUCBOLlYuCiswMDBEQTAgICAgIChiYXNlIDE2KQkJTkVEQVAgTi5WLgorCQkJCVAuTy5Cb3ggMTAzCisJCQkJUC5PLkJveCA2CisJCQkJR1JPRU5MTyBHTEQgNzE0MSBBQworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBELUExICAgKGhleCkJCU1JUkFFIElUUyBDby4sTFRELgorMDAwREExICAgICAoYmFzZSAxNikJCU1JUkFFIElUUyBDby4sTFRELgorCQkJCTdGLCBDaGFuZ0h5dW4gQi9ELDk2MC0xLEhvR3llMURvbmcKKwkJCQlBbllhbmcgS3lvbmdpR2lEbyA0MzEtODQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELUEyICAgKGhleCkJCUluZnJhbnQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDBEQTIgICAgIChiYXNlIDE2KQkJSW5mcmFudCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk0ODgyMCBLYXRvIFJvYWQKKwkJCQlTdGUgMTEwQgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUEzICAgKGhleCkJCUVtZXJnaW5nIFRlY2hub2xvZ2llcyBMaW1pdGVkCiswMDBEQTMgICAgIChiYXNlIDE2KQkJRW1lcmdpbmcgVGVjaG5vbG9naWVzIExpbWl0ZWQKKwkJCQlXb25nJ3MgSW5kdXN0cmlhbCBDZW50cmUsIDE4MCBXYWkgWWlwIFN0CisJCQkJS3d1biBUb25nLCBLb3dsb29uCisJCQkJTmlsIAorCQkJCUhPTkcgS09ORworCiswMC0wRC1BNCAgIChoZXgpCQlET1NDSCAmIEFNQU5EIFNZU1RFTVMgQUcKKzAwMERBNCAgICAgKGJhc2UgMTYpCQlET1NDSCAmIEFNQU5EIFNZU1RFTVMgQUcKKwkJCQlTY2hlaW5lcnN0cmFzc2UgOQorCQkJCU11bmljaCBCYXZhcmlhIDgxNjc5CisJCQkJR0VSTUFOWQorCiswMC0wRC1BNSAgIChoZXgpCQlGYWJyaWM3IFN5c3RlbXMsIEluYworMDAwREE1ICAgICAoYmFzZSAxNikJCUZhYnJpYzcgU3lzdGVtcywgSW5jCisJCQkJMTMwMCBDcml0dGVuZGVuIExhbmUKKwkJCQlTdWl0ZSAzMDIKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1BNiAgIChoZXgpCQlVbml2ZXJzYWwgU3dpdGNoaW5nIENvcnBvcmF0aW9uCiswMDBEQTYgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIFN3aXRjaGluZyBDb3Jwb3JhdGlvbgorCQkJCTc2NzEgU2FuIEZlcm5hbmRvIFJkCisJCQkJQnVyYmFuayBDQSA5MTUwNS0xMDczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1BNyAgIChoZXgpCQlQUklWQVRFCiswMDBEQTcgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTBELUE4ICAgKGhleCkJCVRlbGV0cm9uaWNzIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMERBOCAgICAgKGJhc2UgMTYpCQlUZWxldHJvbmljcyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJMjUyNSBQZWFybCBCdWNrIFJvYWQKKwkJCQlCcmlzdG9sIFBlbm5zeWx2YW5pYSAxOTAwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtQTkgICAoaGV4KQkJVC5FLkEuTS4gUy5MLgorMDAwREE5ICAgICAoYmFzZSAxNikJCVQuRS5BLk0uIFMuTC4KKwkJCQlQYXJxdWUgVGVjbm9sb2dpY28gRWRpZmljaW8gMTA4CisJCQkJWkFNVURJTyBCaXprYWlhIDQ4MTcwCisJCQkJU1BBSU4KKworMDAtMEQtQUEgICAoaGV4KQkJUy5BLlRlaG5vbG9neSBjby4sTHRkLgorMDAwREFBICAgICAoYmFzZSAxNikJCVMuQS5UZWhub2xvZ3kgY28uLEx0ZC4KKwkJCQk4MC0xMiBZYW5namFlIDEgRG9uZworCQkJCVNlb2NobyBHdQorCQkJCVNlb3VsIFNvdXRoIEtvcmVhIDEzNy04OTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEQtQUIgICAoaGV4KQkJUGFya2VyIEhhbm5pZmluIEdtYkggRWxlY3Ryb21lY2hhbmljYWwgRGl2aXNpb24gRXVyb3BlCiswMDBEQUIgICAgIChiYXNlIDE2KQkJUGFya2VyIEhhbm5pZmluIEdtYkggRWxlY3Ryb21lY2hhbmljYWwgRGl2aXNpb24gRXVyb3BlCisJCQkJUm9iZXJ0LUJvc2NoLVN0cmFzc2UgMjIKKwkJCQlPZmZlbmJ1cmcgQmFkZW4gV3VydHRlbWJlcmcgNzc2NTYKKwkJCQlHRVJNQU5ZCisKKzAwLTBELUFDICAgKGhleCkJCUphcGFuIENCTSBDb3Jwb3JhdGlvbgorMDAwREFDICAgICAoYmFzZSAxNikJCUphcGFuIENCTSBDb3Jwb3JhdGlvbgorCQkJCTUtNjgtMTAgTmFrYW5vLAorCQkJCU5ha2Fuby1LdSBUb2t5byAxNjQtMDAwMQorCQkJCUpBUEFOCisKKzAwLTBELUFEICAgKGhleCkJCURhdGFwcm9iZSBJbmMKKzAwMERBRCAgICAgKGJhc2UgMTYpCQlEYXRhcHJvYmUgSW5jCisJCQkJMSBQZWFybCBDdCBVbml0IEIKKwkJCQlBbGxlbmRhbGUgTkogMDc0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUFFICAgKGhleCkJCVNBTVNVTkcgSEVBVlkgSU5EVVNUUklFUyBDTy4sIExURC4KKzAwMERBRSAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEhFQVZZIElORFVTVFJJRVMgQ08uLCBMVEQuCisJCQkJNDkzLCBCYW53ZW9sLVJpLCBUYWVhbi1FdXAKKwkJCQlId2FzZW9uZy1DaXR5IEt5ZW9uZ2dpLURvIDQ0NS05NzMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEQtQUYgICAoaGV4KQkJUGxleHVzIENvcnAgKFVLKSBMdGQKKzAwMERBRiAgICAgKGJhc2UgMTYpCQlQbGV4dXMgQ29ycCAoVUspIEx0ZAorCQkJCVBpbm5hY2xlIEhpbGwKKwkJCQlLZWxzbyBSb3hidXJnaHNoaXJlIFRENSA4WFgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC1CMCAgIChoZXgpCQlPbHltLXRlY2ggQ28uLEx0ZC4KKzAwMERCMCAgICAgKGJhc2UgMTYpCQlPbHltLXRlY2ggQ28uLEx0ZC4KKwkJCQlSb29tIDQwMS80MDIsTm8uMSxTb25nbGluZyBSb2FkLEhpLXRlY2gKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDMxCisJCQkJQ0hJTkEKKworMDAtMEQtQjEgICAoaGV4KQkJSmFwYW4gTmV0d29yayBTZXJ2aWNlIENvLiwgTHRkLgorMDAwREIxICAgICAoYmFzZSAxNikJCUphcGFuIE5ldHdvcmsgU2VydmljZSBDby4sIEx0ZC4KKwkJCQlNYXRvYmEgQmxkZy4gNkYsCisJCQkJMy03LTcgSXJpZnVuZQorCQkJCSBDaHVvLWt1IFRva3lvIDEwNC0wMDQyCisJCQkJSkFQQU4KKworMDAtMEQtQjIgICAoaGV4KQkJQW1tYXNzbywgSW5jLgorMDAwREIyICAgICAoYmFzZSAxNikJCUFtbWFzc28sIEluYy4KKwkJCQkzNDUgU3VtbWVyIFN0cmVldAorCQkJCUJvc3RvbiBNQSAwMjIxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtQjMgICAoaGV4KQkJU0RPIENvbW11bmljYXRpb24gQ29ycGVyYXRpb24KKzAwMERCMyAgICAgKGJhc2UgMTYpCQlTRE8gQ29tbXVuaWNhdGlvbiBDb3JwZXJhdGlvbgorCQkJCTZGLCBOby4xMTIsIFNoaW4gTWluIFN0cmVldAorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtQjQgICAoaGV4KQkJTkVUQVNRCiswMDBEQjQgICAgIChiYXNlIDE2KQkJTkVUQVNRCisJCQkJMyBydWUgQXJjaGltZWRlCisJCQkJVmlsbGVuZXV2ZSBkJ0FzY3Egbm9yZCA1OTY1MAorCQkJCUZSQU5DRQorCiswMC0wRC1CNSAgIChoZXgpCQlHTE9CQUxTQVQgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorMDAwREI1ICAgICAoYmFzZSAxNikJCUdMT0JBTFNBVCBURUNITk9MT0dZIENPUlBPUkFUSU9OCisJCQkJRmFyIEVhc3QgQ2VudHVyeSBQYXJrCisJCQkJQ2h1bmcgSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC1CNiAgIChoZXgpCQlCcm9hZGNvbSBDb3Jwb3JhdGlvbgorMDAwREI2ICAgICAoYmFzZSAxNikJCUJyb2FkY29tIENvcnBvcmF0aW9uCisJCQkJMTM2MyBSZWR3b29kIFdheQorCQkJCVBldGFsdW1hIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1CNyAgIChoZXgpCQlTQU5LTyBFTEVDVFJJQyBDTywuTFRECiswMDBEQjcgICAgIChiYXNlIDE2KQkJU0FOS08gRUxFQ1RSSUMgQ08sLkxURAorCQkJCTctMjMgVGFtYW5vaS1jaG8gQXRzdXRhLWt1CisJCQkJTmFnb3lhLXNoaSBBaWNoaSA0NTYtMDAyNQorCQkJCUpBUEFOCisKKzAwLTBELUI4ICAgKGhleCkJCVNDSElMTEVSIEFHCiswMDBEQjggICAgIChiYXNlIDE2KQkJU0NISUxMRVIgQUcKKwkJCQlBbHRnYXNzZSA2OAorCQkJCUJhYXIgWnVnIDYzMDAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRC1COSAgIChoZXgpCQlQQyBFbmdpbmVzIEdtYkgKKzAwMERCOSAgICAgKGJhc2UgMTYpCQlQQyBFbmdpbmVzIEdtYkgKKwkJCQlHZXJtYW5pYXN0cmFzc2UgNjgKKwkJCQk4MDA2IFp1cmljaCAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRC1CQSAgIChoZXgpCQlPY2UgRG9jdW1lbnQgVGVjaG5vbG9naWVzIEdtYkgKKzAwMERCQSAgICAgKGJhc2UgMTYpCQlPY2UgRG9jdW1lbnQgVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlNYXgtU3Ryb21leWVyLVN0ci4gMTE2CisJCQkJS29uc3RhbnogIDc4NDY3CisJCQkJR0VSTUFOWQorCiswMC0wRC1CQiAgIChoZXgpCQlOaXBwb24gRGVudHN1IENvLixMdGQuCiswMDBEQkIgICAgIChiYXNlIDE2KQkJTmlwcG9uIERlbnRzdSBDby4sTHRkLgorCQkJCTItMjEtMSxJc29qaQorCQkJCU1pbmF0by1LdQorCQkJCU9zYWthICA1NTItMDAwMworCQkJCUpBUEFOCisKKzAwLTBELUJDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMERCQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUJEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMERCRCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUJFICAgKGhleCkJCUJlbCBGdXNlIEV1cm9wZSBMdGQuLFVLCiswMDBEQkUgICAgIChiYXNlIDE2KQkJQmVsIEZ1c2UgRXVyb3BlIEx0ZC4sVUsKKwkJCQk0NS80NiBSaXZlcnNpZGUgMgorCQkJCU1lZHdheSBDaXR5IEVzdGF0ZQorCQkJCVJvY2hlc3RlciBLZW50IE1FMiA0RFAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC1CRiAgIChoZXgpCQlUZWtUb25lIFNvdW5kICYgU2lnbmFsIE1mZy4sIEluYy4KKzAwMERCRiAgICAgKGJhc2UgMTYpCQlUZWtUb25lIFNvdW5kICYgU2lnbmFsIE1mZy4sIEluYy4KKwkJCQkyNzcgSW5kdXN0cmlhbCBQYXJrIFJkLgorCQkJCUZyYW5rbGluIE5DIDI4NzM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1DMCAgIChoZXgpCQlTcGFnYXQgQVMKKzAwMERDMCAgICAgKGJhc2UgMTYpCQlTcGFnYXQgQVMKKwkJCQlUb25uZSBIdXRpZmVsZHRwbC4gMgorCQkJCUhhbGRlbiBPc3Rmb2xkIDE3NjcKKwkJCQlOT1JXQVkKKworMDAtMEQtQzEgICAoaGV4KQkJU2FmZVdlYiBJbmMKKzAwMERDMSAgICAgKGJhc2UgMTYpCQlTYWZlV2ViIEluYworCQkJCTIyMDAgUG93ZWxsIFN0LiBTdGUgNTkwCisJCQkJRW1lcnl2aWxsZSBDQSA5NDYwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtQzIgICAoaGV4KQkJUFJJVkFURQorMDAwREMyICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wRC1DMyAgIChoZXgpCQlGaXJzdCBDb21tdW5pY2F0aW9uLCBJbmMuCiswMDBEQzMgICAgIChiYXNlIDE2KQkJRmlyc3QgQ29tbXVuaWNhdGlvbiwgSW5jLgorCQkJCTFGLCBOby4zNiwgSW5kdXN0cnkgRS4gUmQuIElWLiwKKwkJCQkgU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUM0ICAgKGhleCkJCUVtY29yZSBDb3Jwb3JhdGlvbgorMDAwREM0ICAgICAoYmFzZSAxNikJCUVtY29yZSBDb3Jwb3JhdGlvbgorCQkJCTE2MDAgRXViYW5rIEJsdmQsIFNFCisJCQkJQWxidXF1ZXJxdWUgTmV3IE1leGljbyA4NzEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtQzUgICAoaGV4KQkJRWNob1N0YXIgR2xvYmFsIEIuVi4gCiswMDBEQzUgICAgIChiYXNlIDE2KQkJRWNob1N0YXIgR2xvYmFsIEIuVi4gCisJCQkJU2NodWlsZW5idXJnbGFhbiA1YQorCQkJCUFsbWVsbyBPdmVyaWpzc2VsIDc2MDRCSgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBELUM2ICAgKGhleCkJCURpZ2lSb3NlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDBEQzYgICAgIChiYXNlIDE2KQkJRGlnaVJvc2UgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gMSwgQWxsZXkgMjAsIExhbmUgMjYgUnVlaWd1YW5nIFJvYWQsCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUM3ICAgKGhleCkJCUNPU01JQyBFTkdJTkVFUklORyBJTkMuCiswMDBEQzcgICAgIChiYXNlIDE2KQkJQ09TTUlDIEVOR0lORUVSSU5HIElOQy4KKwkJCQkxLTMtNSwgTmlzaGloaXJheWFtYQorCQkJCUhpbm8tc2hpIFRPS1lPIDE5MS0wMDU1CisJCQkJSkFQQU4KKworMDAtMEQtQzggICAoaGV4KQkJQWlyTWFnbmV0LCBJbmMKKzAwMERDOCAgICAgKGJhc2UgMTYpCQlBaXJNYWduZXQsIEluYworCQkJCTgzMCBFLiBBcnF1ZXMgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1DOSAgIChoZXgpCQlUSEFMRVMgRWxla3Ryb25payBTeXN0ZW1lIEdtYkgKKzAwMERDOSAgICAgKGJhc2UgMTYpCQlUSEFMRVMgRWxla3Ryb25payBTeXN0ZW1lIEdtYkgKKwkJCQlGcml0ei1MdWR3aWctU3RyLiAxCisJCQkJS29ibGVueiAgNTYwNzAKKwkJCQlHRVJNQU5ZCisKKzAwLTBELUNBICAgKGhleCkJCVRhaXQgRWxlY3Ryb25pY3MKKzAwMERDQSAgICAgKGJhc2UgMTYpCQlUYWl0IEVsZWN0cm9uaWNzCisJCQkJNTM1IFdhaXJha2VpIFJkCisJCQkJUE8gQm94IDE2NDUKKwkJCQlDaHJpc3RjaHVyY2ggQ2FudGVyYnVyeSA4MDA1CisJCQkJTkVXIFpFQUxBTkQKKworMDAtMEQtQ0IgICAoaGV4KQkJUGV0Y29ta29yZWEgQ28uLCBMdGQuCiswMDBEQ0IgICAgIChiYXNlIDE2KQkJUGV0Y29ta29yZWEgQ28uLCBMdGQuCisJCQkJNUYsNjg5LTQ3LEdldW1qZW9uZy1kb25nLEd1bnBvLXNpLEt5dW5nZworCQkJCUt5dW5nZ2ktZG8gZ3VucG8tc2kgNDM1LTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC1DQyAgIChoZXgpCQlORU9TTUFSVCBDb3JwLgorMDAwRENDICAgICAoYmFzZSAxNikJCU5FT1NNQVJUIENvcnAuCisJCQkJWW9vbi1CL0QgNEYsIDQ3NS0zMSwgQmFuZ2JhZSAyLWRvbmcKKwkJCQlTZW91bCBTZW9jaG8tZ3UgMTQ3LTgxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC1DRCAgIChoZXgpCQlHUk9VUEUgVFhDT00KKzAwMERDRCAgICAgKGJhc2UgMTYpCQlHUk9VUEUgVFhDT00KKwkJCQlaSSBEVSBQRVRJVCBDTEFNQVJUCisJCQkJMTAgQVZFTlVFIERFU0NBUlRFUworCQkJCUxFIFBMRVNTSVMgUk9CSU5TT04gSEFVVFMtREUtU0VJTkUgOTIzNTAKKwkJCQlGUkFOQ0UKKworMDAtMEQtQ0UgICAoaGV4KQkJRHluYXZhYyBUZWNobm9sb2d5IFB0ZSBMdGQKKzAwMERDRSAgICAgKGJhc2UgMTYpCQlEeW5hdmFjIFRlY2hub2xvZ3kgUHRlIEx0ZAorCQkJCTMwIFR1YXMgQXZlbnVlIDkKKwkJCQk2MzkxODMKKwkJCQlTSU5HQVBPUkUKKworMDAtMEQtQ0YgICAoaGV4KQkJQ2lkcmEgQ29ycC4KKzAwMERDRiAgICAgKGJhc2UgMTYpCQlDaWRyYSBDb3JwLgorCQkJCTUwIEJhcm5zIFBhcmsgTm9ydGgKKwkJCQlXYWxsaW5nZm9yZCBDVCAwNjQ5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtRDAgICAoaGV4KQkJVGV0cmFUZWMgSW5zdHJ1bWVudHMgR21iSAorMDAwREQwICAgICAoYmFzZSAxNikJCVRldHJhVGVjIEluc3RydW1lbnRzIEdtYkgKKwkJCQlHZXdlcmJlc3RyYXNzZSA4CisJCQkJU3RlaW5lbmJyb25uIEJXIDcxMTQ0CisJCQkJR0VSTUFOWQorCiswMC0wRC1EMSAgIChoZXgpCQlTdHJ5a2VyIENvcnBvcmF0aW9uCiswMDBERDEgICAgIChiYXNlIDE2KQkJU3RyeWtlciBDb3Jwb3JhdGlvbgorCQkJCTQxMDAgRSBNaWxoYW0KKwkJCQlLYWxhbWF6b28gTUkgNDkwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUQyICAgKGhleCkJCVNpbXJhZCBPcHRyb25pY3MgQVNBCiswMDBERDIgICAgIChiYXNlIDE2KQkJU2ltcmFkIE9wdHJvbmljcyBBU0EKKwkJCQlFbnNqP3ZlaWVuIDIzQgorCQkJCVBPIEJveCA2MTE0IEV0dGVyc3RhZCBOTy0wNjAyIE9zbG8gCisJCQkJTk9SV0FZCisKKzAwLTBELUQzICAgKGhleCkJCVNBTVdPTyBUZWxlY29tbXVuaWNhdGlvbiBDby4sTHRkLgorMDAwREQzICAgICAoYmFzZSAxNikJCVNBTVdPTyBUZWxlY29tbXVuaWNhdGlvbiBDby4sTHRkLgorCQkJCQorCQkJCTE3MSwgRGFuZ2p1bmctRG9uZywKKwkJCQlHdW5wbyBLeW91bmctR2kgNDM1LTgzMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC1ENCAgIChoZXgpCQlTeW1hbnRlYyBDb3Jwb3JhdGlvbgorMDAwREQ0ICAgICAoYmFzZSAxNikJCVN5bWFudGVjIENvcnBvcmF0aW9uCisJCQkJMjc1IDJuZCBBdmUKKwkJCQlXYWx0aGFtIE1BIDAyNTQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1ENSAgIChoZXgpCQlPJ1JJVEUgVEVDSE5PTE9HWSBDTy4sTFRECiswMDBERDUgICAgIChiYXNlIDE2KQkJTydSSVRFIFRFQ0hOT0xPR1kgQ08uLExURAorCQkJCTRmLTgsTk8gODAsR1VBTkdGVSBSRC5TRUMgMixTQU5DSFVORworCQkJCVRBSVBFSSBDT1VOVFkgIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtRDYgICAoaGV4KQkJSVRJICAgIExURAorMDAwREQ2ICAgICAoYmFzZSAxNikJCUlUSSAgICBMVEQKKwkJCQlSJkQsSVRJIEJhbmdhbG9yZSBDb21wbGV4CisJCQkJRi04NiBCbGRnLgorCQkJCURvb3JhdmFuaSBOYWdhciwgQmFuZ2Fsb3JlIEthcm5hdGFrYSBTdGF0ZSA1NjAwMTYKKwkJCQlJTkRJQQorCiswMC0wRC1ENyAgIChoZXgpCQlCcmlnaHQKKzAwMERENyAgICAgKGJhc2UgMTYpCQlCcmlnaHQKKwkJCQkxLTEyLTQ0IEFvYmFkYWkKKwkJCQlLYXNoaXdhLXNoaSBDaGliYS1rZW4gMjc3LTAwNTUKKwkJCQlKQVBBTgorCiswMC0wRC1EOCAgIChoZXgpCQlCQk4KKzAwMEREOCAgICAgKGJhc2UgMTYpCQlCQk4KKwkJCQk3Ri0zLE5PLjE4NiwgSmlhbiBZaSBSZCAuLCBDaHVuZyBIbyBDaXR5CisJCQkJVGFpcGVpICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUQ5ICAgKGhleCkJCUFudG9uIFBhYXIgR21iSAorMDAwREQ5ICAgICAoYmFzZSAxNikJCUFudG9uIFBhYXIgR21iSAorCQkJCUFudG9uLVBhYXItU3RyYXNzZSAyMAorCQkJCUdyYXogIDgwNTQKKwkJCQlBVVNUUklBCisKKzAwLTBELURBICAgKGhleCkJCUFMTElFRCBURUxFU0lTIEsuSy4KKzAwMEREQSAgICAgKGJhc2UgMTYpCQlBTExJRUQgVEVMRVNJUyBLLksuCisJCQkJUElBWlpBIFRJUkFOQSBOLiAyNC80IEIKKwkJCQlNSUxBTk8gIDIwMTQ3CisJCQkJSVRBTFkKKworMDAtMEQtREIgICAoaGV4KQkJQUlSV0FWRSBURUNITk9MT0dJRVMgSU5DLgorMDAwRERCICAgICAoYmFzZSAxNikJCUFJUldBVkUgVEVDSE5PTE9HSUVTIElOQy4KKwkJCQkzRixOby45LEluZHVzdHJ5IEUuIDl0aCBSb2FkCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELURDICAgKGhleCkJCVZBQworMDAwRERDICAgICAoYmFzZSAxNikJCVZBQworCQkJCTIwRiwgTjAuIDQ1NiwgU2VjLiA0LCBIc2luIFlpIFJkLiwKKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtREQgICAoaGV4KQkJUFJPRllMTyBURUxSQSBFTEVLVFJPTllLIFNBTkFZWSBWRSBUWUNBUkVUIEEuPy4KKzAwMERERCAgICAgKGJhc2UgMTYpCQlQUk9GWUxPIFRFTFJBIEVMRUtUUk9OWUsgU0FOQVlZIFZFIFRZQ0FSRVQgQS4/LgorCQkJCUNFTUFMIFNBSFlSIFNPS0FLIE5POjI2LTI4CisJCQkJTUVDWURZWUVLT1kKKwkJCQlZU1RBTkJVTCBUVVJLRVkgMzQyNTUKKwkJCQlUVVJLRVkKKworMDAtMEQtREUgICAoaGV4KQkJSm95dGVjayBDby4sIEx0ZC4KKzAwMERERSAgICAgKGJhc2UgMTYpCQlKb3l0ZWNrIENvLiwgTHRkLgorCQkJCTE5RiwgTm8uNCwgU2VjLiAzLCBNaW4gQ2h1YW4gRWFzdCBSZC4KKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtREYgICAoaGV4KQkJSmFwYW4gSW1hZ2UgJiBOZXR3b3JrIEluYy4KKzAwMERERiAgICAgKGJhc2UgMTYpCQlKYXBhbiBJbWFnZSAmIE5ldHdvcmsgSW5jLgorCQkJCTUtMjktMTIgU2hpYmEKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA4LTAwMTQKKwkJCQlKQVBBTgorCiswMC0wRC1FMCAgIChoZXgpCQlJQ1BEQVMgQ28uLExURAorMDAwREUwICAgICAoYmFzZSAxNikJCUlDUERBUyBDby4sTFRECisJCQkJIE5vLiAxMTEsIEt1YW5nLUZ1IE4uIFJkLiwgSHNpbi1DaHUgSW5kdQorCQkJCUhTSU5DSFUgIDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtRTEgICAoaGV4KQkJQ29udHJvbCBQcm9kdWN0cywgSW5jLgorMDAwREUxICAgICAoYmFzZSAxNikJCUNvbnRyb2wgUHJvZHVjdHMsIEluYy4KKwkJCQkxNzI0IExha2UgRHJpdmUgV2VzdAorCQkJCUNoYW5oYXNzZW4gTU4gNTUzMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUUyICAgKGhleCkJCUNNWiBTaXN0ZW1pIEVsZXR0cm9uaWNpCiswMDBERTIgICAgIChiYXNlIDE2KQkJQ01aIFNpc3RlbWkgRWxldHRyb25pY2kKKwkJCQlWaWEgZGVsbCdBcnRpZ2luYXRvLCAyMQorCQkJCVZhc2NvbiBkaSBDYXJib25lcmEgVHJldmlzbyAzMTA1MAorCQkJCUlUQUxZCisKKzAwLTBELUUzICAgKGhleCkJCUFUIFN3ZWRlbiBBQgorMDAwREUzICAgICAoYmFzZSAxNikJCUFUIFN3ZWRlbiBBQgorCQkJCVAuTy4gQm94IDExNjYKKwkJCQlJc2Fmam9yZHNnYXRhbiAzMEIKKwkJCQlLaXN0YSBTdG9ja2hvbG0gU0UtMTY0IDI2CisJCQkJU1dFREVOCisKKzAwLTBELUU0ICAgKGhleCkJCURJR0lOSUNTLCBJbmMuCiswMDBERTQgICAgIChiYXNlIDE2KQkJRElHSU5JQ1MsIEluYy4KKwkJCQkxNzgtNworCQkJCVBvaS1kb25nCisJCQkJS2FuZ25hbS1ndSBTZW91bCAxMzUtOTYxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELUU1ICAgKGhleCkJCVNhbXN1bmcgVGhhbGVzCiswMDBERTUgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBUaGFsZXMKKwkJCQkyNTkgR29uZ2Rhbi1Eb25nCisJCQkJR3VtaS1DaXR5IEd5ZW9uZ3NhbmdidWstZG8gNzMwLTkwNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC1FNiAgIChoZXgpCQlZT1VOR0JPIEVOR0lORUVSSU5HIENPLixMVEQKKzAwMERFNiAgICAgKGJhc2UgMTYpCQlZT1VOR0JPIEVOR0lORUVSSU5HIENPLixMVEQKKwkJCQlNdC4yMiwgSmFldW5nYS1yaSwgSmlnc2FuLUV1cCwKKwkJCQlDaGVvbmFuLXNoaSBDaHVuZ2NoZW9uZ25hbS1kbyAjMzMwLTgxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC1FNyAgIChoZXgpCQlTbmFwLW9uIE9FTSBHcm91cAorMDAwREU3ICAgICAoYmFzZSAxNikJCVNuYXAtb24gT0VNIEdyb3VwCisJCQkJMjMzMyBFYXN0IFdhbHRvbiBCbHZkLgorCQkJCUF1YnVybiBIaWxscyBNSSA0ODMyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtRTggICAoaGV4KQkJTmFzYWNvIEVsZWN0cm9uaWNzIFB0ZS4gTHRkCiswMDBERTggICAgIChiYXNlIDE2KQkJTmFzYWNvIEVsZWN0cm9uaWNzIFB0ZS4gTHRkCisJCQkJTGV2ZWwgNCwgTmFzYWNvIFRlY2ggQ2VudHJlCisJCQkJNDksIENoYW5naSBTb3V0aCBBdmVudWUgMgorCQkJCTQ4NjA1NgorCQkJCVNJTkdBUE9SRQorCiswMC0wRC1FOSAgIChoZXgpCQlOYXBhdGVjaCBBcHMKKzAwMERFOSAgICAgKGJhc2UgMTYpCQlOYXBhdGVjaCBBcHMKKwkJCQlSdW5kb2ZyYml2ZWogMjcxLCAxCisJCQkJTmFlcnVtICAyODUwCisJCQkJREVOTUFSSworCiswMC0wRC1FQSAgIChoZXgpCQlLaW5ndGVsIFRlbGVjb21tdW5pY2F0aW9uIENvcnAuCiswMDBERUEgICAgIChiYXNlIDE2KQkJS2luZ3RlbCBUZWxlY29tbXVuaWNhdGlvbiBDb3JwLgorCQkJCTE0NyBLYW5nIE5pbmcgU3QuCisJCQkJSHNpIENoaWggQ2l0eSBUYWlwZWkgSHNpZW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC1FQiAgIChoZXgpCQlDb21wWHMgTGltaXRlZAorMDAwREVCICAgICAoYmFzZSAxNikJCUNvbXBYcyBMaW1pdGVkCisJCQkJUm9iZXJ0IERlbmhvbG0gSG91c2UKKwkJCQlOdXRmaWVsZAorCQkJCVJlZGhpbGwgU3VycmV5IFJIMSA0SFcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC1FQyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBERUMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1FRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBERUQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1FRSAgIChoZXgpCQlBbmRyZXcgUkYgUG93ZXIgQW1wbGlmaWVyIEdyb3VwCiswMDBERUUgICAgIChiYXNlIDE2KQkJQW5kcmV3IFJGIFBvd2VyIEFtcGxpZmllciBHcm91cAorCQkJCTQwIFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlXYXJyZW4gTkogMDcwNTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUVGICAgKGhleCkJCVNvYy4gQ29vcC4gQmlsYW5jaWFpCiswMDBERUYgICAgIChiYXNlIDE2KQkJU29jLiBDb29wLiBCaWxhbmNpYWkKKwkJCQl2aWEgUy5GZXJyYXJpIDE2CisJCQkJQ2FtcG9nYWxsaWFubyBNb2RlbmEgNDEwMTEKKwkJCQlJVEFMWQorCiswMC0wRC1GMCAgIChoZXgpCQlRQ09NIFRFQ0hOT0xPR1kgSU5DLgorMDAwREYwICAgICAoYmFzZSAxNikJCVFDT00gVEVDSE5PTE9HWSBJTkMuCisJCQkJN0YuLCBOTyAxNzgsIE1JTkcgQ0hVQU4gRS4gUkQuLCBTRUMuIDMsCisJCQkJVEFJUEVJICAxMDUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUYxICAgKGhleCkJCUlPTklYIElOQy4KKzAwMERGMSAgICAgKGJhc2UgMTYpCQlJT05JWCBJTkMuCisJCQkJU3Nhbmd5b25nIElUIFR3aW4gVG93ZXIgNjA0LCA0NDItMTcsIFNhbmdkYWV3b24tZG9uZywgSnVuZ3dvbi1ndSwKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjItMTIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELUYyICAgKGhleCkJCVBSSVZBVEUKKzAwMERGMiAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMEQtRjMgICAoaGV4KQkJQXNtYXggU29sdXRpb25zCiswMDBERjMgICAgIChiYXNlIDE2KQkJQXNtYXggU29sdXRpb25zCisJCQkJVGF0YXJza2EgNQorCQkJCUNyYWNvdyAgMzAtMTAzCisJCQkJUE9MQU5ECisKKzAwLTBELUY0ICAgKGhleCkJCVdhdGVydGVrIENvLgorMDAwREY0ICAgICAoYmFzZSAxNikJCVdhdGVydGVrIENvLgorCQkJCVJvb20gMTAwNixIYWl0YWkgYnVpbGRpbmcsbm9ydGggc2kgSHVhbgorCQkJCVpob25nIFJvYWQsSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4MworCQkJCUNISU5BCisKKzAwLTBELUY1ICAgKGhleCkJCVRlbGV0cm9uaWNzIEludGVybmF0aW9uYWwgSW5jLgorMDAwREY1ICAgICAoYmFzZSAxNikJCVRlbGV0cm9uaWNzIEludGVybmF0aW9uYWwgSW5jLgorCQkJCTIgQ2hva2UgQ2hlcnJ5IFJvYWQKKwkJCQlTdWl0ZSAjMTAxCisJCQkJUm9ja3ZpbGxlIE1EIDIwODUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1GNiAgIChoZXgpCQlUZWNobm9sb2d5IFRoZXNhdXJ1cyBDb3JwLgorMDAwREY2ICAgICAoYmFzZSAxNikJCVRlY2hub2xvZ3kgVGhlc2F1cnVzIENvcnAuCisJCQkJTk8uIDYsIEVhc3QgNHRoIFN0LiBLRVBaCisJCQkJS0FPSFNJVU5HICA4MDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUY3ICAgKGhleCkJCVNwYWNlIER5bmFtaWNzIExhYgorMDAwREY3ICAgICAoYmFzZSAxNikJCVNwYWNlIER5bmFtaWNzIExhYgorCQkJCTE2OTUgTi4gUmVzZWFyY2ggUGFyayBXYXkKKwkJCQlOb3J0aCBMb2dhbiBVVCA4NDM0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtRjggICAoaGV4KQkJT1JHQSBLYXJ0ZW5zeXN0ZW1lIEdtYkgKKzAwMERGOCAgICAgKGJhc2UgMTYpCQlPUkdBIEthcnRlbnN5c3RlbWUgR21iSAorCQkJCUtvbnJhZC1adXNlLVJpbmcgMQorCQkJCUZsaW50YmVrIFNjaGxlc3dpZy1Ib2xzdGVpbiAyNDIyMAorCQkJCUdFUk1BTlkKKworMDAtMEQtRjkgICAoaGV4KQkJTkRTIExpbWl0ZWQKKzAwMERGOSAgICAgKGJhc2UgMTYpCQlORFMgTGltaXRlZAorCQkJCU9uZSBIZWF0aHJvdyBCb3VsZXZhcmQKKwkJCQkyODYgQmF0aCBSb2FkCisJCQkJV2VzdCBEcmF5dG9uIE1pZGRsZXNleCBVQjcgMERRCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEQtRkEgICAoaGV4KQkJTWljcm8gQ29udHJvbCBTeXN0ZW1zIEx0ZC4KKzAwMERGQSAgICAgKGJhc2UgMTYpCQlNaWNybyBDb250cm9sIFN5c3RlbXMgTHRkLgorCQkJCTgtNyBTYWt1cmFpCisJCQkJU2FrdS1zaGkgTmFnYW5vIDM4NS0wMDU2CisJCQkJSkFQQU4KKworMDAtMEQtRkIgICAoaGV4KQkJS29tYXggQUcKKzAwMERGQiAgICAgKGJhc2UgMTYpCQlLb21heCBBRworCQkJCUluZHVzdHJpZXN0cmFzc2UgNgorCQkJCURpZXJpa29uIExVIDYwMzYKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRC1GQyAgIChoZXgpCQlJVEZPUiBJbmMuCiswMDBERkMgICAgIChiYXNlIDE2KQkJSVRGT1IgSW5jLgorCQkJCUljaGliYW5jaG8gVG9reXUgQmlkZy4sCisJCQkJMjEgSWNoaWJhbm5jeW8sQ2hpeW9kYS1rdQorCQkJCVRva3lvIDEwMi0wMDgyCisJCQkJSkFQQU4KKworMDAtMEQtRkQgICAoaGV4KQkJSHVnZXMgSGktVGVjaCBJbmMuLAorMDAwREZEICAgICAoYmFzZSAxNikJCUh1Z2VzIEhpLVRlY2ggSW5jLiwKKwkJCQk3RiwgMTg4LCBTZWMuMiwgQ2h1bmcgSHNpbmcgUm9hZC4KKwkJCQlIc2luIFRpZW4gVGFpcGVpIEhzaWVuIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtRkUgICAoaGV4KQkJSGF1cHBhdWdlIENvbXB1dGVyIFdvcmtzLCBJbmMuCiswMDBERkUgICAgIChiYXNlIDE2KQkJSGF1cHBhdWdlIENvbXB1dGVyIFdvcmtzLCBJbmMuCisJCQkJOTEgQ2Fib3QgQ291cnQKKwkJCQlIYXVwcGF1Z2UgTmV3IFlvcmsgMTE3ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUZGICAgKGhleCkJCUNIRU5NSU5HIE1PTEQgSU5EVVNUUlkgQ09SUC4KKzAwMERGRiAgICAgKGJhc2UgMTYpCQlDSEVOTUlORyBNT0xEIElORFVTVFJZIENPUlAuCisJCQkJMkYgTm8uIDI2LCBMYW5lIDUxMywgUmVpIEt1YW5nIFJkLgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS0wMCAgIChoZXgpCQlBdHJpZQorMDAwRTAwICAgICAoYmFzZSAxNikJCUF0cmllCisJCQkJMTB0aCBGbG9vciwgMTQsIExhbmUgNjA5LCBTZWMuIDUsIENodW5nIEhzaW4gUmQuLCBTYW4gQ2h1bmcgQ2l0eSwKKwkJCQlUYWlwZWkgSHNpZW4gU2FuIENodW5nIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtMDEgICAoaGV4KQkJQVNJUCBUZWNobm9sb2dpZXMgSW5jLgorMDAwRTAxICAgICAoYmFzZSAxNikJCUFTSVAgVGVjaG5vbG9naWVzIEluYy4KKwkJCQkxMEYtMiwgTk8uMzIyLCBTZWMuMSwgR3VhbmdmdSBSZC4sCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS0wMiAgIChoZXgpCQlBZHZhbnRlY2ggQU1UIEluYy4KKzAwMEUwMiAgICAgKGJhc2UgMTYpCQlBZHZhbnRlY2ggQU1UIEluYy4KKwkJCQk2NTcgT3JseSBBdmUuCisJCQkJRG9ydmFsIFF1ZWJlYyBIOVAgMUcxCisJCQkJQ0FOQURBCisKKzAwLTBFLTAzICAgKGhleCkJCUVtdWxleAorMDAwRTAzICAgICAoYmFzZSAxNikJCUVtdWxleAorCQkJCTMzMzMgU3VzYW4gU3RyZWV0CisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMDQgICAoaGV4KQkJQ01BL01pY3JvZGlhbHlzaXMgQUIKKzAwMEUwNCAgICAgKGJhc2UgMTYpCQlDTUEvTWljcm9kaWFseXNpcyBBQgorCQkJCURhbHZhZ2VuIDEwIC8gQm94IDIKKwkJCQlTb2xuYSAgMTcxIDE4CisJCQkJU1dFREVOCisKKzAwLTBFLTA1ICAgKGhleCkJCVdJUkVMRVNTIE1BVFJJWCBDT1JQLgorMDAwRTA1ICAgICAoYmFzZSAxNikJCVdJUkVMRVNTIE1BVFJJWCBDT1JQLgorCQkJCVVOSVQgMUEtMzc1MSBOT1JUSCBGUkFTRVIgV0FZCisJCQkJQlVSTkFCWSBCQyBWNUogNUc0CisJCQkJQ0FOQURBCisKKzAwLTBFLTA2ICAgKGhleCkJCVRlYW0gU2ltb2NvIEx0ZAorMDAwRTA2ICAgICAoYmFzZSAxNikJCVRlYW0gU2ltb2NvIEx0ZAorCQkJCUZpZWxkIEhvdXNlCisJCQkJVXR0b3hldGVyIE9sZCBSb2FkCisJCQkJRGVyYnkgRGVyYnlzaGlyZSBERTEgMU5ICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEUtMDcgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKzAwMEUwNyAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNFIDIyMSA4OCBMdW5kCisJCQkJU1dFREVOCisKKzAwLTBFLTA4ICAgKGhleCkJCUNpc2NvIExpbmtzeXMgTExDCiswMDBFMDggICAgIChiYXNlIDE2KQkJQ2lzY28gTGlua3N5cyBMTEMKKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTA5ICAgKGhleCkJCVNoZW56aGVuIENvc2hpcCBTb2Z0d2FyZSBDby4sTFRELgorMDAwRTA5ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIENvc2hpcCBTb2Z0d2FyZSBDby4sTFRELgorCQkJCTcvRixCbG9jayBBLFcyIEJsZGcsSGktVGVjaCBJbmR1c3RyaWFsIFBhcmssU2hlbnpoZW4sQ2hpbmEKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMEUtMEEgICAoaGV4KQkJU0FLVU1BIERFU0lHTiBPRkZJQ0UKKzAwMEUwQSAgICAgKGJhc2UgMTYpCQlTQUtVTUEgREVTSUdOIE9GRklDRQorCQkJCTY3NC0xMQorCQkJCUtVS0ktU0hJIFNBSVRBTUEgMzQ2LTAwMjkKKwkJCQlKQVBBTgorCiswMC0wRS0wQiAgIChoZXgpCQlOZXRhYyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwRTBCICAgICAoYmFzZSAxNikJCU5ldGFjIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNkYsIEluY3ViYXRvciBCdWlsZGluZywgQ2hpbmEgQWNhZGVteSBvZiBTY2llbmNlICZUZWNoIERldmVsb3BtZW50LAorCQkJCU5vLjEgSGlnaC10ZWNoIFNvdXRoIFN0cmVldAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0wRS0wQyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAwRTBDICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJMjExMSBORSAgMjV0aCBBdmVudWUKKwkJCQlNUzogIEpGMy00MjAKKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTBEICAgKGhleCkJCUhFU0NIIFNjaHJvZGVyIEdtYkgKKzAwMEUwRCAgICAgKGJhc2UgMTYpCQlIRVNDSCBTY2hyb2RlciBHbWJICisJCQkJQm9zY2hzdHJhc3NlIDgKKwkJCQlOZXVzdGFkdCBOaWVkZXJzYWNoc2VuIDMxNTM1CisJCQkJR0VSTUFOWQorCiswMC0wRS0wRSAgIChoZXgpCQlFU0EgZWxldHRyb25pY2EgUy5QLkEuCiswMDBFMEUgICAgIChiYXNlIDE2KQkJRVNBIGVsZXR0cm9uaWNhIFMuUC5BLgorCQkJCVZpYSBQLiBNYXNjaWFkcmkgNC9BCisJCQkJTWFyaWFubyBDb21lbnNlIENPIDIyMDY2CisJCQkJSVRBTFkKKworMDAtMEUtMEYgICAoaGV4KQkJRVJNTUUKKzAwMEUwRiAgICAgKGJhc2UgMTYpCQlFUk1NRQorCQkJCTkgcnVlIExhdm9pc2llcgorCQkJCVZlcnQtTGUtUGV0aXQgIDkxNzEwCisJCQkJRlJBTkNFCisKKzAwLTBFLTEwICAgKGhleCkJCUMtZ3V5cywgSW5jLgorMDAwRTEwICAgICAoYmFzZSAxNikJCUMtZ3V5cywgSW5jLgorCQkJCUl6dW1pIEdhcmRlbiBXaW5nIDFGLCAxLTYtMworCQkJCVJvcHBvbmdpLCBNaW5hdG8ta3UKKwkJCQlUb2t5byAgMTA2LTAwMzIKKwkJCQlKQVBBTgorCiswMC0wRS0xMSAgIChoZXgpCQlCRFQgQnVyby0gdW5kIERhdGVudGVjaG5payBHbWJIICYgQ28uIEtHCiswMDBFMTEgICAgIChiYXNlIDE2KQkJQkRUIEJ1cm8tIHVuZCBEYXRlbnRlY2huaWsgR21iSCAmIENvLiBLRworCQkJCVNhbGluZSAyOQorCQkJCVJvdHR3ZWlsIEJhZGVuLVd1cnR0ZW1iZXJnIEQtNzg2MjgKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTEyICAgKGhleCkJCUFkYXB0aXZlIE1pY3JvIFN5c3RlbXMgSW5jLgorMDAwRTEyICAgICAoYmFzZSAxNikJCUFkYXB0aXZlIE1pY3JvIFN5c3RlbXMgSW5jLgorCQkJCTc4NDAgTm9ydGggODZ0aCBTdC4KKwkJCQlNaWx3YXVrZWUgV0kgNTMyMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTEzICAgKGhleCkJCUFjY3UtU29ydCBTeXN0ZW1zIGluYy4KKzAwMEUxMyAgICAgKGJhc2UgMTYpCQlBY2N1LVNvcnQgU3lzdGVtcyBpbmMuCisJCQkJNTExIFNjaG9vbCBIb3VzZSBSb2FkCisJCQkJVGVsZm9yZCBQQSAxODk2OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMTQgICAoaGV4KQkJVmlzaW9uYXJ5IFNvbHV0aW9ucywgSW5jLgorMDAwRTE0ICAgICAoYmFzZSAxNikJCVZpc2lvbmFyeSBTb2x1dGlvbnMsIEluYy4KKwkJCQk0MTkzIENhcnBpbnRlcmlhIEF2ZQorCQkJCVN1aXRlIDExCisJCQkJQ2FycGludGVyaWEgQ0EgOTMwMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTE1ICAgKGhleCkJCVRhZGx5cyBMVEQKKzAwMEUxNSAgICAgKGJhc2UgMTYpCQlUYWRseXMgTFRECisJCQkJSVNSQUVMSSBTSElNT04gMworCQkJCVJJU0hPTiBsRVpZWU9OIElTUkFFTCA3NTY1NAorCQkJCUlTUkFFTAorCiswMC0wRS0xNiAgIChoZXgpCQlTb3V0aFdpbmcgUy5MLgorMDAwRTE2ICAgICAoYmFzZSAxNikJCVNvdXRoV2luZyBTLkwuCisJCQkJQy9BdmlsYSwgNDgtNTAKKwkJCQkzcmQgZmxvb3IKKwkJCQlCYXJjZWxvbmEgIDA4MDA1CisJCQkJU1BBSU4KKworMDAtMEUtMTcgICAoaGV4KQkJUFJJVkFURQorMDAwRTE3ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wRS0xOCAgIChoZXgpCQlNeUEgVGVjaG5vbG9neQorMDAwRTE4ICAgICAoYmFzZSAxNikJCU15QSBUZWNobm9sb2d5CisJCQkJMjEwMCBNdWlyd29vZCBXYXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMTkgICAoaGV4KQkJTG9naWNhQ01HIFB0eSBMdGQKKzAwMEUxOSAgICAgKGJhc2UgMTYpCQlMb2dpY2FDTUcgUHR5IEx0ZAorCQkJCTE3LTE5IE9yaW9uIFJvYWQKKwkJCQlMYW5lIENvdmUgTlNXIDIwNjYKKwkJCQlBVVNUUkFMSUEKKworMDAtMEUtMUEgICAoaGV4KQkJSlBTIENvbW11bmljYXRpb25zCiswMDBFMUEgICAgIChiYXNlIDE2KQkJSlBTIENvbW11bmljYXRpb25zCisJCQkJNTgwMCBEZXBhcnR1cmUgRHJpdmUKKwkJCQlSYWxlaWdoIE5DIDI3NjE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0xQiAgIChoZXgpCQlJQVYgR21iSAorMDAwRTFCICAgICAoYmFzZSAxNikJCUlBViBHbWJICisJCQkJQ2Fybm90c3RyLiAxCisJCQkJQmVybGluICAxMDU4NworCQkJCUdFUk1BTlkKKworMDAtMEUtMUMgICAoaGV4KQkJSGFjaCBDb21wYW55CiswMDBFMUMgICAgIChiYXNlIDE2KQkJSGFjaCBDb21wYW55CisJCQkJNTYwMCBMaW5kYmVyZ2ggRHJpdmUKKwkJCQlMb3ZlbGFuZCBDTyA4MDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMUQgICAoaGV4KQkJQVJJT04gVGVjaG5vbG9neSBJbmMuCiswMDBFMUQgICAgIChiYXNlIDE2KQkJQVJJT04gVGVjaG5vbG9neSBJbmMuCisJCQkJM0YsIFBpY2EgQmxkZywgODk0LTIsIEhvZ3llIDIgRG9uZworCQkJCURvbmdhbi1HdQorCQkJCUFuLVlhbmcgQ2l0eSBHeWVvbmdnaS1EbyAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtMUUgICAoaGV4KQkJUUxvZ2ljIENvcnBvcmF0aW9uCiswMDBFMUUgICAgIChiYXNlIDE2KQkJUUxvZ2ljIENvcnBvcmF0aW9uCisJCQkJMjY2NTAgQWxpc28gVmllam8gUGFya3dheQorCQkJCUFsaXNvIFZpZWpvIENBIDkyNjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0xRiAgIChoZXgpCQlUQ0wgTmV0d29ya3MgRXF1aXBtZW50IENvLiwgTHRkLgorMDAwRTFGICAgICAoYmFzZSAxNikJCVRDTCBOZXR3b3JrcyBFcXVpcG1lbnQgQ28uLCBMdGQuCisJCQkJTm8uNSBJbmR1c3RyaWFsIFJvYWQsU2hla291CisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA2NworCQkJCUNISU5BCisKKzAwLTBFLTIwICAgKGhleCkJCUFDQ0VTUyBTeXN0ZW1zIEFtZXJpY2FzLCBJbmMuCiswMDBFMjAgICAgIChiYXNlIDE2KQkJQUNDRVNTIFN5c3RlbXMgQW1lcmljYXMsIEluYy4KKwkJCQkxMTg4IEVhc3QgQXJxdWVzIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMjEgICAoaGV4KQkJTVRVIEZyaWVkcmljaHNoYWZlbiBHbWJICiswMDBFMjEgICAgIChiYXNlIDE2KQkJTVRVIEZyaWVkcmljaHNoYWZlbiBHbWJICisJCQkJTWF5YmFjaHBsYXR6IDEKKwkJCQlGcmllZHJpY2hzaGFmZW4gQmFkZW4gV3VlcnRlbWJlcmcgODgwNDAKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTIyICAgKGhleCkJCVBSSVZBVEUKKzAwMEUyMiAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMEUtMjMgICAoaGV4KQkJSW5jaXBpZW50LCBJbmMuCiswMDBFMjMgICAgIChiYXNlIDE2KQkJSW5jaXBpZW50LCBJbmMuCisJCQkJMjMwIFRoaXJkIEF2ZS4KKwkJCQk0dGggRmxvb3IKKwkJCQlXYWx0aGFtIE1BIDAyNDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0yNCAgIChoZXgpCQlIdXdlbGwgVGVjaG5vbG9neSBJbmMuCiswMDBFMjQgICAgIChiYXNlIDE2KQkJSHV3ZWxsIFRlY2hub2xvZ3kgSW5jLgorCQkJCTFGIDgyLTIxLCBNYWppbiBCdWlsZGluZworCQkJCU5vbmh5dW4tZG9uZywgR2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTI1ICAgKGhleCkJCUhhbm5hZSBUZWNobm9sb2d5IENvLiwgTHRkCiswMDBFMjUgICAgIChiYXNlIDE2KQkJSGFubmFlIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQk0RiwgSHl1bmppbiBCbGRnLiwgIzc5OC0zMCwgWWVva3NhbS1Eb25nCisJCQkJS2FuZ25hbS1LdQorCQkJCVNFT1VMICAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTI2ICAgKGhleCkJCUdpbmNvbSBUZWNobm9sb2d5IENvcnAuCiswMDBFMjYgICAgIChiYXNlIDE2KQkJR2luY29tIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkxNUYuLCBOby4gMjg0LCBTZWMuMywgU2FubWluIFJkLiwgVGFveXVhbiBDaXR5LAorCQkJCVRhb3l1YW4sICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTI3ICAgKGhleCkJCUNyZXJlIE5ldHdvcmtzLCBJbmMuCiswMDBFMjcgICAgIChiYXNlIDE2KQkJQ3JlcmUgTmV0d29ya3MsIEluYy4KKwkJCQlSb29tIDExMCBFVFJJIFRCSSwgNTIgRW9ldW4tZG9uZworCQkJCVl1c2VvbmctZ3UKKwkJCQlEYWVqZW9uICAzMDUtMzMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTI4ICAgKGhleCkJCUR5bmFtaWMgUmF0aW5ncyBQL0wKKzAwMEUyOCAgICAgKGJhc2UgMTYpCQlEeW5hbWljIFJhdGluZ3MgUC9MCisJCQkJQy9PIFdpbHNvbiBUcmFuc2Zvcm1lciBDby4KKwkJCQlXaWxzb24gUmQuIChQTyBCb3ggNSkKKwkJCQlHbGVuIFdhdmVybGV5IFZpY3RvcmlhIDMxNTAKKwkJCQlBVVNUUkFMSUEKKworMDAtMEUtMjkgICAoaGV4KQkJU2hlc3RlciBDb21tdW5pY2F0aW9ucyBJbmMKKzAwMEUyOSAgICAgKGJhc2UgMTYpCQlTaGVzdGVyIENvbW11bmljYXRpb25zIEluYworCQkJCTE1OSBTLiBMaW5jb2xuCisJCQkJU3VpdGUgMjIxCisJCQkJU3Bva2FuZSBXQSA5OTIwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMkEgICAoaGV4KQkJUFJJVkFURQorMDAwRTJBICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wRS0yQiAgIChoZXgpCQlTYWZhcmkgVGVjaG5vbG9naWVzCiswMDBFMkIgICAgIChiYXNlIDE2KQkJU2FmYXJpIFRlY2hub2xvZ2llcworCQkJCTYzODU1IE00MCBId3kKKwkJCQlMYXd0b24gTUkgNDkwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTJDICAgKGhleCkJCU5ldGNvZGVjIGNvLgorMDAwRTJDICAgICAoYmFzZSAxNikJCU5ldGNvZGVjIGNvLgorCQkJCTQwMSBEYWVpb24gUy9XIENlbnRlciwgNDggSmFuZ2RvbmcKKwkJCQlZdXNvbmdndQorCQkJCURhZWpvbiAgMzA1LTcxNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS0yRCAgIChoZXgpCQlIeXVuZGFpIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkLgorMDAwRTJEICAgICAoYmFzZSAxNikJCUh5dW5kYWkgRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJMjIzLTIyLCBTYW5nZGFld29uLTFkb25nLCBKdW5nd29uLWd1CisJCQkJU2VvbmduYW0tc2kgS3lvdW5na2ktZG8gNDYyLTgwNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS0yRSAgIChoZXgpCQlFZGltYXggVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMEUyRSAgICAgKGJhc2UgMTYpCQlFZGltYXggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkzLCBXdS1DaHVhbiAzcmQgUm9hZCwKKwkJCQlXdS1LdSBJbmR1c3RyaWFsIFBhcmssCisJCQkJVGFpcGVpIEhzaWVuLCAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS0yRiAgIChoZXgpCQlEaXNldHJvbmljIE1lZGljYWwgU3lzdGVtcyBBRworMDAwRTJGICAgICAoYmFzZSAxNikJCURpc2V0cm9uaWMgTWVkaWNhbCBTeXN0ZW1zIEFHCisJCQkJS2lyY2hiZXJnc3RyYXNzZSAxOTAKKwkJCQlCdXJnZG9yZiBCZXJuIDM0MDEKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRS0zMCAgIChoZXgpCQlBRVJBUyBOZXR3b3JrcywgSW5jLgorMDAwRTMwICAgICAoYmFzZSAxNikJCUFFUkFTIE5ldHdvcmtzLCBJbmMuCisJCQkJUC5PLiBCb3ggNzMzMAorCQkJCUxhZ3VuYSBOaWd1ZWwgQ0EgOTI2MDctNzMzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMzEgICAoaGV4KQkJT2x5bXB1cyBTb2Z0IEltYWdpbmcgU29sdXRpb25zIEdtYkgKKzAwMEUzMSAgICAgKGJhc2UgMTYpCQlPbHltcHVzIFNvZnQgSW1hZ2luZyBTb2x1dGlvbnMgR21iSAorCQkJCUpvaGFubi1LcmFuZS1XZWcgMzkKKwkJCQlNdW5zdGVyIDQ4MTQ5CisJCQkJR0VSTUFOWQorCiswMC0wRS0zMiAgIChoZXgpCQlLb250cm9uIE1lZGljYWwKKzAwMEUzMiAgICAgKGJhc2UgMTYpCQlLb250cm9uIE1lZGljYWwKKwkJCQlSZWluYWNoZXJzdHJhc3NlIDEzMQorCQkJCUJhc2VsICA0MDAyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEUtMzMgICAoaGV4KQkJU2h1a28gRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAwRTMzICAgICAoYmFzZSAxNikJCVNodWtvIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQlUT0hTSElOIEhJR0FTSEktSUtFQlVLVVJPIEJ1aWxkaW5nIDNGCisJCQkJNS00NC0xNSxISUdBU0hJLUlLRUJVS1VSTyxUT1NISU1BLUtVCisJCQkJVE9LWU8gS0FOVE9IIDE3MC0wMDYzCisJCQkJSkFQQU4KKworMDAtMEUtMzQgICAoaGV4KQkJTmV4R2VuIENpdHksIExQCiswMDBFMzQgICAgIChiYXNlIDE2KQkJTmV4R2VuIENpdHksIExQCisJCQkJMTY4MCBHbGVudmlsbGUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlSaWNoYXJkc29uIFRleGFzIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zNSAgIChoZXgpCQlJbnRlbCBDb3JwCiswMDBFMzUgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycAorCQkJCTIxMTEgTkUgMjV0aCBBdmUKKwkJCQlKRjMtNDIwCisJCQkJSGlsbHNib3JvIE9SIDk3MTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zNiAgIChoZXgpCQlIRUlORVNZUywgSW5jLgorMDAwRTM2ICAgICAoYmFzZSAxNikJCUhFSU5FU1lTLCBJbmMuCisJCQkJM0YsIFN1bmdrd2FuZyBCbGRnLiA0NTYtMTMsIFN1bmduYWUtZG9uZworCQkJCUthbmdkb25nLWd1CisJCQkJU2VvdWwgIDEzNC04NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtMzcgICAoaGV4KQkJSGFybXMgJiBXZW5kZSBHbWJIICYgQ28uS0cKKzAwMEUzNyAgICAgKGJhc2UgMTYpCQlIYXJtcyAmIFdlbmRlIEdtYkggJiBDby5LRworCQkJCUdyb3NzbW9vcmtlaHJlIDkKKwkJCQlIYW1idXJnICBELTIxMDc5CisJCQkJR0VSTUFOWQorCiswMC0wRS0zOCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBFMzggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBFMzkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zQSAgIChoZXgpCQlDaXJydXMgTG9naWMKKzAwMEUzQSAgICAgKGJhc2UgMTYpCQlDaXJydXMgTG9naWMKKwkJCQkyOTAxIFZpYSBGb3J0dW5hCisJCQkJQXVzdGluIFRYIDc4NzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zQiAgIChoZXgpCQlIYXdraW5nIFRlY2hub2xvZ2llcywgSW5jLgorMDAwRTNCICAgICAoYmFzZSAxNikJCUhhd2tpbmcgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTUyODFBIEJhcnJhbmNhIFBhcmt3YXkKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTNDICAgKGhleCkJCVRyYW5zYWN0IFRlY2hub2xvZ2llcyBJbmMKKzAwMEUzQyAgICAgKGJhc2UgMTYpCQlUcmFuc2FjdCBUZWNobm9sb2dpZXMgSW5jCisJCQkJMjAgQm9tYXggRHJpdmUKKwkJCQlJdGhhY2EgTmV3IFlvcmsgMTQ4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTNEICAgKGhleCkJCVRlbGV2aWMgTi5WLgorMDAwRTNEICAgICAoYmFzZSAxNikJCVRlbGV2aWMgTi5WLgorCQkJCUxlbyBCZWthZXJ0bGFhbiAxCisJCQkJSXplZ2VtICA4ODcwCisJCQkJQkVMR0lVTQorCiswMC0wRS0zRSAgIChoZXgpCQlTdW4gT3B0cm9uaWNzIEluYworMDAwRTNFICAgICAoYmFzZSAxNikJCVN1biBPcHRyb25pY3MgSW5jCisJCQkJNC0zOC00IEZ1Y2hpbm9iZS1ob25jaG91CisJCQkJU2FnYW1paGFyYSBLYW5hZ2F3YSAyMjktMDAwMgorCQkJCUpBUEFOCisKKzAwLTBFLTNGICAgKGhleCkJCVNvcm9udGksIEluYy4KKzAwMEUzRiAgICAgKGJhc2UgMTYpCQlTb3JvbnRpLCBJbmMuCisJCQkJMTIxNTkgQnVzaW5lc3MgUGFyayBEciwgU3VpdGUgMTQwCisJCQkJRHJhcGVyIFV0YWggODQwMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTQwICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwRTQwICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0wRS00MSAgIChoZXgpCQlOSUhPTiBNRUNIQVRST05JQ1MgQ08uLExURC4KKzAwMEU0MSAgICAgKGJhc2UgMTYpCQlOSUhPTiBNRUNIQVRST05JQ1MgQ08uLExURC4KKwkJCQk5LTYgU0hJT01JREFJLCBNSVlBTUFFLUtVCisJCQkJS0FXQVNBS0ktU0hJIEtBTkFHQVdBLUtFTiAyMTYtMDAxMworCQkJCUpBUEFOCisKKzAwLTBFLTQyICAgKGhleCkJCU1vdGljIEluY29wb3JhdGlvbiBMdGQuCiswMDBFNDIgICAgIChiYXNlIDE2KQkJTW90aWMgSW5jb3BvcmF0aW9uIEx0ZC4KKwkJCQlSb29tIDI5MDctOCwgV2luZHNvciAgSG91c2UKKwkJCQkzMTEgR2xvdWNlc3RlciBSb2FkLCBDYXVzZXdheSBCYXkKKwkJCQlIb25nIEtvbmcgIAorCQkJCUNISU5BCisKKzAwLTBFLTQzICAgKGhleCkJCUctVGVrIEVsZWN0cm9uaWNzIFNkbi4gQmhkLgorMDAwRTQzICAgICAoYmFzZSAxNikJCUctVGVrIEVsZWN0cm9uaWNzIFNkbi4gQmhkLgorCQkJCTI0OTMgTXVraW0gMSwgTG9yb25nIFBlcnVzYWhhYW4gTGFwYW4KKwkJCQlLYXdhc2FuIFBlcmluZHVzdHJpYW4gUGVyYWkKKwkJCQlQZXJhaSBQZW5hbmcgMTM2MDAKKwkJCQlNQUxBWVNJQQorCiswMC0wRS00NCAgIChoZXgpCQlEaWdpdGFsIDUsIEluYy4KKzAwMEU0NCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIDUsIEluYy4KKwkJCQkxMDEgR3JvdmVycyBNaWxsIFJkLgorCQkJCVN1aXRlIDIwMAorCQkJCUxhd3JlbmNldmlsbGUgTkogMDg2NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTQ1ICAgKGhleCkJCUJlaWppbmcgTmV3dHJ5IEVsZWN0cm9uaWMgVGVjaG5vbG9neSBMdGQKKzAwMEU0NSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIE5ld3RyeSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgTHRkCisJCQkJUE8gQm94IDk1LCBOby4gMSBCZWkgU2hhIFRhbiwKKwkJCQlDaGFvIFlhbmcgUXUKKwkJCQlCZWlqaW5nICAxMDA4MworCQkJCUNISU5BCisKKzAwLTBFLTQ2ICAgKGhleCkJCU5paWdhdGEgU2VpbWl0c3UgQ28uLEx0ZC4KKzAwMEU0NiAgICAgKGJhc2UgMTYpCQlOaWlnYXRhIFNlaW1pdHN1IENvLixMdGQuCisJCQkJMzMzNS0yLCBTaGltb25ha2EsIFNhbndhLW11cmEKKwkJCQlOYWtha3ViaWtpLWd1biBOaWlnYXRhIDk0My0wMjIyCisJCQkJSkFQQU4KKworMDAtMEUtNDcgICAoaGV4KQkJTkNJIFN5c3RlbSBDby4sTHRkLgorMDAwRTQ3ICAgICAoYmFzZSAxNikJCU5DSSBTeXN0ZW0gQ28uLEx0ZC4KKwkJCQkjMjA2LCBLYXlhbmcgVGVjaG5vLVRvd24sIDE0ODcsIEtheWFuZyAzIGRvbmcsIEthbmdzZW8tS3UsIFNlb3VsLCBLb3JlYQorCQkJCVNlb3VsICAxNTctODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTQ4ICAgKGhleCkJCUxpcG1hbiBUcmFuc0FjdGlvbiBTb2x1dGlvbnMKKzAwMEU0OCAgICAgKGJhc2UgMTYpCQlMaXBtYW4gVHJhbnNBY3Rpb24gU29sdXRpb25zCisJCQkJMTEgSGFhbWFsIFN0LgorCQkJCSBSb3NoLUhhYXlpbiAgNDgwOTIKKwkJCQlJU1JBRUwKKworMDAtMEUtNDkgICAoaGV4KQkJRm9yc3dheSBTY2FuZGluYXZpYSBBQgorMDAwRTQ5ICAgICAoYmFzZSAxNikJCUZvcnN3YXkgU2NhbmRpbmF2aWEgQUIKKwkJCQlLYXBsYW5zZ2F0YW4gMTYgQgorCQkJCTU0MSAzNCBTa292ZGUgCisJCQkJU1dFREVOCisKKzAwLTBFLTRBICAgKGhleCkJCUNoYW5nY2h1biBIdWF5dSBXRUJQQUQgQ28uLExURAorMDAwRTRBICAgICAoYmFzZSAxNikJCUNoYW5nY2h1biBIdWF5dSBXRUJQQUQgQ28uLExURAorCQkJCTQzNzAgR2FveGluIFJvYWQsIEhpZ2gtVGVjaAorCQkJCURldmVsb3BtZW50IEFyZWEKKwkJCQlDaGFuZ2NodW4gSmlsaW4gMTMwMDEyCisJCQkJQ0hJTkEKKworMDAtMEUtNEIgICAoaGV4KQkJYXRyaXVtIGMgYW5kIGkKKzAwMEU0QiAgICAgKGJhc2UgMTYpCQlhdHJpdW0gYyBhbmQgaQorCQkJCTEyNC00LCBPamVvbi1kb25nLAorCQkJCVVpd2FuZy1jaXR5IEt5dW5nZ2ktRG8gNDM3LTgxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS00QyAgIChoZXgpCQlCZXJtYWkgSW5jLgorMDAwRTRDICAgICAoYmFzZSAxNikJCUJlcm1haSBJbmMuCisJCQkJNDEwIENhbWJyaWRnZSBBdmUKKwkJCQkybmQgRmxvb3IKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTREICAgKGhleCkJCU51bWVzYSBJbmMuCiswMDBFNEQgICAgIChiYXNlIDE2KQkJTnVtZXNhIEluYy4KKwkJCQk0NDQ0IFdlc3Rncm92ZSBTdWl0ZSAzMDAKKwkJCQlBZGRpc29uIFRYIDc1MDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS00RSAgIChoZXgpCQlXYXZlcGx1cyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwRTRFICAgICAoYmFzZSAxNikJCVdhdmVwbHVzIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMzQ3IEhzaW5IdSAybmQgUmQuLCBOZWlIdQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS00RiAgIChoZXgpCQlUcmFqZXQgR21iSAorMDAwRTRGICAgICAoYmFzZSAxNikJCVRyYWpldCBHbWJICisJCQkJUmViZW5yaW5nIDMzCisJCQkJQnJhdW5zY2h3ZWlnIE5kcy4gMzgxMDYKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTUwICAgKGhleCkJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCiswMDBFNTAgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKwkJCQlQcmlucyBCb3VkZXdpam5sYWFuIDQ3CisJCQkJRWRlZ2VtIEFudHdlcnAgQi0yNjUwCisJCQkJQkVMR0lVTQorCiswMC0wRS01MSAgIChoZXgpCQl0ZWNuYSBlbGV0dHJvbmljYSBzcmwKKzAwMEU1MSAgICAgKGJhc2UgMTYpCQl0ZWNuYSBlbGV0dHJvbmljYSBzcmwKKwkJCQl2aWEgbWlnbGlvbGkgMzAKKwkJCQljYXN0ZWwgc2FuIHBpZXRybyB0ZXJtZSBib2xvZ25hIDQwMDI0CisJCQkJSVRBTFkKKworMDAtMEUtNTIgICAoaGV4KQkJT3B0aXVtIENvcnBvcmF0aW9uCiswMDBFNTIgICAgIChiYXNlIDE2KQkJT3B0aXVtIENvcnBvcmF0aW9uCisJCQkJNTAwIEhvcml6b24gRHIKKwkJCQlTdWl0ZSA1MDUKKwkJCQlDaGFsZm9udCBQQSAxODkxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtNTMgICAoaGV4KQkJQVYgVEVDSCBDT1JQT1JBVElPTgorMDAwRTUzICAgICAoYmFzZSAxNikJCUFWIFRFQ0ggQ09SUE9SQVRJT04KKwkJCQkxMEYsRSBCdWlsZGluZyxOby4xOS0xMSBTYW4gQ2h1bmcgUmQuLE5hbkthbmcKKwkJCQlUYWlwZWkgIDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtNTQgICAoaGV4KQkJQWxwaGFDZWxsIFdpcmVsZXNzIEx0ZC4KKzAwMEU1NCAgICAgKGJhc2UgMTYpCQlBbHBoYUNlbGwgV2lyZWxlc3MgTHRkLgorCQkJCTIyIFphcmhpbiBzdHJlZXQKKwkJCQlSYWFuYW5hICA0MzY2MgorCQkJCUlTUkFFTAorCiswMC0wRS01NSAgIChoZXgpCQlBVVZJVFJBTgorMDAwRTU1ICAgICAoYmFzZSAxNikJCUFVVklUUkFOCisJCQkJN2MgY2hlbWluIGRlcyBwcmVzCisJCQkJTUVZTEFOICAzODQxMAorCQkJCUZSQU5DRQorCiswMC0wRS01NiAgIChoZXgpCQk0RyBTeXN0ZW1zIEdtYkggJiBDby4gS0cKKzAwMEU1NiAgICAgKGJhc2UgMTYpCQk0RyBTeXN0ZW1zIEdtYkggJiBDby4gS0cKKwkJCQlKYXJyZXN0cmFzc2UgMi02CisJCQkJMjIzMDMgSGFtYnVyZyAKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTU3ICAgKGhleCkJCUl3b3JsZCBOZXR3b3JraW5nLCBJbmMuCiswMDBFNTcgICAgIChiYXNlIDE2KQkJSXdvcmxkIE5ldHdvcmtpbmcsIEluYy4KKwkJCQkxMjUgSGFuanUgQmxkZywgTm9uaHl1bi1Eb25nCisJCQkJS2FuZy1OYW0gR3UKKwkJCQlTZW91bCAgMTM1MDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTU4ICAgKGhleCkJCVNvbm9zLCBJbmMuCiswMDBFNTggICAgIChiYXNlIDE2KQkJU29ub3MsIEluYy4KKwkJCQkyMjMgRS4gRGUgTGEgR3VlcnJhIFN0LgorCQkJCVNhbnRhIEJhcmJhcmEgQ0EgOTMxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTU5ICAgKGhleCkJCVNBR0VNIFNBCiswMDBFNTkgICAgIChiYXNlIDE2KQkJU0FHRU0gU0EKKwkJCQkyLCBydWUgZHUgcGV0aXQgQWxiaQorCQkJCUNFUkdZIFNBSU5UIENIUklTVE9QSEUgdmFsIGQnT2lzZSA5NTgwMAorCQkJCUZSQU5DRQorCiswMC0wRS01QSAgIChoZXgpCQlURUxFRklFTEQgaW5jLgorMDAwRTVBICAgICAoYmFzZSAxNikJCVRFTEVGSUVMRCBpbmMuCisJCQkJM0YsIEt1bWJvIEJsZGcsIDItOSwgU2Vva2Nob24tRG9uZworCQkJCVNvbmdwYS1HdQorCQkJCVNlb3VsICAxMzgtMTkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTVCICAgKGhleCkJCVBhcmtlclZpc2lvbiAtIERpcmVjdDJEYXRhCiswMDBFNUIgICAgIChiYXNlIDE2KQkJUGFya2VyVmlzaW9uIC0gRGlyZWN0MkRhdGEKKwkJCQk5NDMyIEJheW1lYWRvd3MgV2F5CisJCQkJU3VpdGUgMTUwCisJCQkJSmFja3NvbnZpbGxlIEZMIDMyMjQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS01QyAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAwRTVDICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtNUQgICAoaGV4KQkJVHJpcGxlIFBsYXkgVGVjaG5vbG9naWVzIEEvUworMDAwRTVEICAgICAoYmFzZSAxNikJCVRyaXBsZSBQbGF5IFRlY2hub2xvZ2llcyBBL1MKKwkJCQlIZXJzdGVkdmFuZyA4CisJCQkJQWxiZXJ0c2x1bmQgIERLLTI2MjAKKwkJCQlERU5NQVJLCisKKzAwLTBFLTVFICAgKGhleCkJCVJhaXNlY29tIFRlY2hub2xvZ3kKKzAwMEU1RSAgICAgKGJhc2UgMTYpCQlSYWlzZWNvbSBUZWNobm9sb2d5CisJCQkJMiBGbG9vciwgU291dGggQnVpbGRpbmcgb2YgUmFpbmJvdyBQbGF6YQorCQkJCU5vLiAxMSBTaGFuZ2RpIEluZm9ybWF0aW9uIFJvYWQKKwkJCQlIYWlkaWFuIERpc3RyaWN0IEJlaWppbmcgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMEUtNUYgICAoaGV4KQkJYWN0aXYtbmV0IEdtYkggJiBDby4gS0cKKzAwMEU1RiAgICAgKGJhc2UgMTYpCQlhY3Rpdi1uZXQgR21iSCAmIENvLiBLRworCQkJCUtvbnJhZC1adXNlLVN0ci4gNAorCQkJCUJvY2h1bSAgNDQ4MDEKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTYwICAgKGhleCkJCTM2MFNVTiBEaWdpdGFsIEJyb2FkYmFuZCBDb3Jwb3JhdGlvbgorMDAwRTYwICAgICAoYmFzZSAxNikJCTM2MFNVTiBEaWdpdGFsIEJyb2FkYmFuZCBDb3Jwb3JhdGlvbgorCQkJCTJGLTIsIE5vLjIsIEppYW5iYSBSZC4sCisJCQkJQ2h1bmcgSG8gVGFpcGVpIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtNjEgICAoaGV4KQkJTUlDUk9UUk9MIExJTUlURUQKKzAwMEU2MSAgICAgKGJhc2UgMTYpCQlNSUNST1RST0wgTElNSVRFRAorCQkJCTE2IEVMR0FSIEJVU0lORVNTIENFTlRSRQorCQkJCU1PU0VMRVkgUk9BRAorCQkJCUhBTExPVyBXT1JDRVNURVIgV1IyIDZOSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBFLTYyICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwRTYyICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTBFLTYzICAgKGhleCkJCUxlbWtlIERpYWdub3N0aWNzIEdtYkgKKzAwMEU2MyAgICAgKGJhc2UgMTYpCQlMZW1rZSBEaWFnbm9zdGljcyBHbWJICisJCQkJUmFkZWJ1cmdlciBTdHIuIDQ3CisJCQkJVm9sa2Vyc2RvcmYgU2F4b255IDAxNDY4CisJCQkJR0VSTUFOWQorCiswMC0wRS02NCAgIChoZXgpCQlFbHBoZWwsIEluYworMDAwRTY0ICAgICAoYmFzZSAxNikJCUVscGhlbCwgSW5jCisJCQkJMzIwMCBTLiBFbHBtZXIgU3QuCisJCQkJTWFnbmEgVVQgODQwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTY1ICAgKGhleCkJCVRyYW5zQ29yZQorMDAwRTY1ICAgICAoYmFzZSAxNikJCVRyYW5zQ29yZQorCQkJCTg2MDAgSmVmZmVyc29uIFN0IE5FCisJCQkJQWxidXF1ZXJxdWUgTk0gODcxMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTY2ICAgKGhleCkJCUhpdGFjaGkgQWR2YW5jZWQgRGlnaXRhbCwgSW5jLgorMDAwRTY2ICAgICAoYmFzZSAxNikJCUhpdGFjaGkgQWR2YW5jZWQgRGlnaXRhbCwgSW5jLgorCQkJCTI5MiwgWW9zaGlkYS1jaG8sIFRvdHN1a2Eta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyNDQtMDgxNworCQkJCUpBUEFOCisKKzAwLTBFLTY3ICAgKGhleCkJCUVsdGlzIE1pY3JvZWxlY3Ryb25pY3MgTHRkLgorMDAwRTY3ICAgICAoYmFzZSAxNikJCUVsdGlzIE1pY3JvZWxlY3Ryb25pY3MgTHRkLgorCQkJCVVuaXQgOTAyQiwgOS9GLiwgU3VuYmVhbSBDZW50cmUKKwkJCQkyNywgU2hpbmcgWWlwIFN0cmVldAorCQkJCUt3dW4gVG9uZyBLb3dsb29uIAorCQkJCUhPTkcgS09ORworCiswMC0wRS02OCAgIChoZXgpCQlFLVRPUCBOZXR3b3JrIFRlY2hub2xvZ3kgSW5jLgorMDAwRTY4ICAgICAoYmFzZSAxNikJCUUtVE9QIE5ldHdvcmsgVGVjaG5vbG9neSBJbmMuCisJCQkJTm8uIDcsIFNoaW4gU2hpbiBSZC4sCisJCQkJVGFpbmFuICA3MDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTY5ICAgKGhleCkJCUNoaW5hIEVsZWN0cmljIFBvd2VyIFJlc2VhcmNoIEluc3RpdHV0ZQorMDAwRTY5ICAgICAoYmFzZSAxNikJCUNoaW5hIEVsZWN0cmljIFBvd2VyIFJlc2VhcmNoIEluc3RpdHV0ZQorCQkJCU5vLjE1IFhpYW95aW5nIEVhc3QgUm9hZCxRaW5naGUsQmVpamluZyxDaGluYQorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTBFLTZBICAgKGhleCkJCTNDb20gTHRkCiswMDBFNkEgICAgIChiYXNlIDE2KQkJM0NvbSBMdGQKKwkJCQlQZW9wbGVidWlsZGluZyAyCisJCQkJUGVvcGxlYnVpbGRpbmcgRXN0YXRlLCBNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSGVydHMgSFAyIDROVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBFLTZCICAgKGhleCkJCUphbml0emEgZWxlY3Ryb25pY3MgR21iSAorMDAwRTZCICAgICAoYmFzZSAxNikJCUphbml0emEgZWxlY3Ryb25pY3MgR21iSAorCQkJCVZvciBkZW0gUG9sc3R1Y2sgMQorCQkJCUxhaG5hdSBIZXNzZW4gMzU2MzMKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTZDICAgKGhleCkJCURldmljZSBEcml2ZXJzIExpbWl0ZWQKKzAwMEU2QyAgICAgKGJhc2UgMTYpCQlEZXZpY2UgRHJpdmVycyBMaW1pdGVkCisJCQkJMS01LTEtMTAzCisJCQkJV2FrYW1hdHN1LWNobworCQkJCUZ1Y2h1LXNoaSBUb2t5byAxODMwMDA1CisJCQkJSkFQQU4KKworMDAtMEUtNkQgICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCiswMDBFNkQgICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJMjI4OCwgT2F6YS1PaHNoaW5vaGFyYSwgWWFzdS1jaG8sCisJCQkJWWFzdS1ndW4gU2hpZ2EgNTIwLTIzOTMKKwkJCQlKQVBBTgorCiswMC0wRS02RSAgIChoZXgpCQlNSUNSRUxFQyAgRUxFQ1RST05JQ1MgUy5BCiswMDBFNkUgICAgIChiYXNlIDE2KQkJTUlDUkVMRUMgIEVMRUNUUk9OSUNTIFMuQQorCQkJCTE2IElTTUlOSVMgU1RSLgorCQkJCUFUSEVOUyBBRUdBTEVPIDEyMjQxCisJCQkJR1JFRUNFCisKKzAwLTBFLTZGICAgKGhleCkJCUlSSVMgQ29ycG9yYXRpb24gQmVyaGFkCiswMDBFNkYgICAgIChiYXNlIDE2KQkJSVJJUyBDb3Jwb3JhdGlvbiBCZXJoYWQKKwkJCQlJUklTIFNtYXJ0IFRlY2hub2xvZ3kgQ29tcGxleAorCQkJCVRlY2hub2xvZ3kgUGFyayBNYWxheXNpYSwgQnVraXQgSmFsaWwKKwkJCQlLdWFsYSBMdW1wdXIgV1AgNTcwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0wRS03MCAgIChoZXgpCQlpbjIgTmV0d29ya3MKKzAwMEU3MCAgICAgKGJhc2UgMTYpCQlpbjIgTmV0d29ya3MKKwkJCQkzMjAgVyAgMjAwIFMKKwkJCQlTdWl0ZSAjMzgwCisJCQkJU0xDIFVUIDg0MTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS03MSAgIChoZXgpCQlHZW1zdGFyIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgTHRkLgorMDAwRTcxICAgICAoYmFzZSAxNikJCUdlbXN0YXIgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBMdGQuCisJCQkJVW5pdCAyMDEsIFN0dWxleCBob3VzZSwgNjk4IHByaW5jZSBlZHdhcmQgcm9hZCBlYXN0LCBzYW4gcG8ga29uZywgS29sd29vbgorCQkJCUhvbmcgS29uZyAgODUyCisJCQkJSE9ORyBLT05HCisKKzAwLTBFLTcyICAgKGhleCkJCUNUUyBlbGVjdHJvbmljcworMDAwRTcyICAgICAoYmFzZSAxNikJCUNUUyBlbGVjdHJvbmljcworCQkJCUNvcnNvIFZlcmNlbGxpIDMzMgorCQkJCUl2cmVhIFRvcmlubyAxMDAxNQorCQkJCUlUQUxZCisKKzAwLTBFLTczICAgKGhleCkJCVRwYWNrIEEvUworMDAwRTczICAgICAoYmFzZSAxNikJCVRwYWNrIEEvUworCQkJCUxhdXRydXBiamVyZyA3IC0gMTEKKwkJCQlESyAyNzUwICBCYWxsZXJ1cCAgREsgMjc1MAorCQkJCURFTk1BUksKKworMDAtMEUtNzQgICAoaGV4KQkJU29sYXIgVGVsZWNvbS4gVGVjaAorMDAwRTc0ICAgICAoYmFzZSAxNikJCVNvbGFyIFRlbGVjb20uIFRlY2gKKwkJCQlCIEIvRCwgNEYsIFNhbWhvIFZlbnR1cmUgVG93ZXIKKwkJCQkjMjc1LTYsIFlhbmdqYWUtRG9uZywgU2VjaG8tR3UKKwkJCQlTZW91bCAgMTM3LTk0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS03NSAgIChoZXgpCQlOZXcgWW9yayBBaXIgQnJha2UgQ29ycC4KKzAwMEU3NSAgICAgKGJhc2UgMTYpCQlOZXcgWW9yayBBaXIgQnJha2UgQ29ycC4KKwkJCQk3NDggU3RhcmJ1Y2sgQXZlLgorCQkJCVdhdGVydG93biBOWSAxMzYwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtNzYgICAoaGV4KQkJR0VNU09DIElOTk9WSVNJT04gSU5DLgorMDAwRTc2ICAgICAoYmFzZSAxNikJCUdFTVNPQyBJTk5PVklTSU9OIElOQy4KKwkJCQk5RixOby41MTYsU2VjLDFOZWlodSBSZC4sCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTc3ICAgKGhleCkJCURlY3J1LCBJbmMuCiswMDBFNzcgICAgIChiYXNlIDE2KQkJRGVjcnUsIEluYy4KKwkJCQkyNzUgU2hvcmVsaW5lIERyCisJCQkJU3VpdGUgNDUwCisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS03OCAgIChoZXgpCQlBbXRlbGNvCiswMDBFNzggICAgIChiYXNlIDE2KQkJQW10ZWxjbworCQkJCTQ4MDAgQ3VydGluIERyaXZlCisJCQkJTWNGYXJsYW5kIFdJIDUzNTU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS03OSAgIChoZXgpCQlBbXBsZSBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDBFNzkgICAgIChiYXNlIDE2KQkJQW1wbGUgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTQwMzQgQ2xpcHBlciBDdC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS03QSAgIChoZXgpCQlHZW1Xb24gQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDBFN0EgICAgIChiYXNlIDE2KQkJR2VtV29uIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorCQkJCTNGTC4sTk8uMzIsTGFuZSAxMzUsU2hpYW5qZW5nIDl0aCBSZC4sSnViZWkgQ2l0eQorCQkJCUhzaW5jaHUgIDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtN0IgICAoaGV4KQkJVG9zaGliYQorMDAwRTdCICAgICAoYmFzZSAxNikJCVRvc2hpYmEKKwkJCQkyLTksIFN1ZWhpcm8tQ2hvCisJCQkJT21lIFRva3lvIDE5ODg3MTAKKwkJCQlKQVBBTgorCiswMC0wRS03QyAgIChoZXgpCQlUZWxldmVzIFMuQS4KKzAwMEU3QyAgICAgKGJhc2UgMTYpCQlUZWxldmVzIFMuQS4KKwkJCQlSdWEgQmVuZWZpY2EgQ29ueG8gMTcKKwkJCQlTYW50aWFnbyBkZSBDb21wb3N0ZWxhIENvcnVuYSAxNTcwNgorCQkJCVNQQUlOCisKKzAwLTBFLTdEICAgKGhleCkJCUVsZWN0cm9uaWNzIExpbmUgMzAwMCBMdGQuCiswMDBFN0QgICAgIChiYXNlIDE2KQkJRWxlY3Ryb25pY3MgTGluZSAzMDAwIEx0ZC4KKwkJCQkyIEdyYW5pdCBTdC4KKwkJCQlQZXRhaCBUaWt2YSBLaXJ5YXIgQXJpZSA0NDkxMzAKKwkJCQlJU1JBRUwKKworMDAtMEUtN0UgICAoaGV4KQkJaW9uU2lnbiBPeQorMDAwRTdFICAgICAoYmFzZSAxNikJCWlvblNpZ24gT3kKKwkJCQlQLk8uQk9YICAyNDYKKwkJCQlGSS0yNjEwMQorCQkJCVJhdW1hICAKKwkJCQlGSU5MQU5ECisKKzAwLTBFLTdGICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAwRTdGICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5IFNvdXRoCisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS04MCAgIChoZXgpCQlUaG9tc29uIFRlY2hub2xvZ3kgSW5jCiswMDBFODAgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBUZWNobm9sb2d5IEluYworCQkJCTkwODdBIDE5OHRoIFNUCisJCQkJU3VycmV5IEJDIFYxTS0zQjEKKwkJCQlDQU5BREEKKworMDAtMEUtODEgICAoaGV4KQkJRGV2aWNlc2NhcGUgU29mdHdhcmUsIEluYy4KKzAwMEU4MSAgICAgKGJhc2UgMTYpCQlEZXZpY2VzY2FwZSBTb2Z0d2FyZSwgSW5jLgorCQkJCTEwMDAgTWFyaW5hIEJsdmQKKwkJCQlTdWl0ZSA0MDAKKwkJCQlCcmlzYmFuZSBDQSA5NDAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtODIgICAoaGV4KQkJQ29tbXRlY2ggV2lyZWxlc3MKKzAwMEU4MiAgICAgKGJhc2UgMTYpCQlDb21tdGVjaCBXaXJlbGVzcworCQkJCTExNS8zOTYgU2NhcmJvcm91Z2ggQmVhY2ggUmQKKwkJCQlPc2Jvcm5lIFBhcmsKKwkJCQlQZXJ0aCBXQSA2MDE3CisJCQkJQVVTVFJBTElBCisKKzAwLTBFLTgzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEU4MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTg0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEU4NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTg1ICAgKGhleCkJCUNhdGFseXN0IEVudGVycHJpc2VzLCBJbmMuCiswMDBFODUgICAgIChiYXNlIDE2KQkJQ2F0YWx5c3QgRW50ZXJwcmlzZXMsIEluYy4KKwkJCQkzMzg1IFNjb3R0IEJsdmQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtODYgICAoaGV4KQkJQWxjYXRlbCBOb3J0aCBBbWVyaWNhCiswMDBFODYgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBOb3J0aCBBbWVyaWNhCisJCQkJMjMwMSBTdWdhciBCdXNoIFJvYWQKKwkJCQlSYWxlaWdoIE5DIDI3NjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS04NyAgIChoZXgpCQlhZHAgR2F1c2VsbWFubiBHbWJICiswMDBFODcgICAgIChiYXNlIDE2KQkJYWRwIEdhdXNlbG1hbm4gR21iSAorCQkJCUJvc2Noc3RyLiA4CisJCQkJTHVlYmJlY2tlIE5SVyAzMjMxMgorCQkJCUdFUk1BTlkKKworMDAtMEUtODggICAoaGV4KQkJVklERU9UUk9OIENPUlAuCiswMDBFODggICAgIChiYXNlIDE2KQkJVklERU9UUk9OIENPUlAuCisJCQkJMTctMTYsMi1DSE9NRQorCQkJCUhBQ0hJT0pJIFRPS1lPIDE5My0wODM1CisJCQkJSkFQQU4KKworMDAtMEUtODkgICAoaGV4KQkJQ0xFTUFUSUMKKzAwMEU4OSAgICAgKGJhc2UgMTYpCQlDTEVNQVRJQworCQkJCTEwMSBydWUgUGllcnJlIFNFTUFSRAorCQkJCUNIQVRJTExPTiBSLlAuIDkyMzIwCisJCQkJRlJBTkNFCisKKzAwLTBFLThBICAgKGhleCkJCUF2YXJhIFRlY2hub2xvZ2llcyBQdHkuIEx0ZC4KKzAwMEU4QSAgICAgKGJhc2UgMTYpCQlBdmFyYSBUZWNobm9sb2dpZXMgUHR5LiBMdGQuCisJCQkJOSBCdXNpbmVzcyBQYXJrIERyaXZlCisJCQkJTm90dGluZyBIaWxsIFZpY3RvcmlhIDMxNjgKKwkJCQlBVVNUUkFMSUEKKworMDAtMEUtOEIgICAoaGV4KQkJQXN0YXJ0ZSBUZWNobm9sb2d5IENvLCBMdGQuCiswMDBFOEIgICAgIChiYXNlIDE2KQkJQXN0YXJ0ZSBUZWNobm9sb2d5IENvLCBMdGQuCisJCQkJMTFGLCBOby4gMTY2IERhaC1ZZWggUmQuCisJCQkJUGVpdG91LCBUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtOEMgICAoaGV4KQkJU2llbWVucyBBRyBBJkQgRVQKKzAwMEU4QyAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEFHIEEmRCBFVAorCQkJCVNpZW1lbnNzdHJhc3NlIDEwCisJCQkJUmVnZW5zYnVyZyAgOTMwNTUKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLThEICAgKGhleCkJCVN5c3RlbXMgaW4gUHJvZ3Jlc3MgSG9sZGluZyBHbWJICiswMDBFOEQgICAgIChiYXNlIDE2KQkJU3lzdGVtcyBpbiBQcm9ncmVzcyBIb2xkaW5nIEdtYkgKKwkJCQlFeGVyemllcnBsYXR6c3RyYXNzZSA4NQorCQkJCUdyYXogU3R5cmlhIDgwNTEKKwkJCQlBVVNUUklBCisKKzAwLTBFLThFICAgKGhleCkJCVNwYXJrTEFOIENvbW11bmljYXRpb25zLCBJbmMuCiswMDBFOEUgICAgIChiYXNlIDE2KQkJU3BhcmtMQU4gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkzRmwgLiAsIE5vLiAyNDYsIFNlYy4gMSwgTmVpaHUgUm9hZC4sIE5laWh1IENoaXUsCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLThGICAgKGhleCkJCVNlcmNvbW0gQ29ycC4KKzAwMEU4RiAgICAgKGJhc2UgMTYpCQlTZXJjb21tIENvcnAuCisJCQkJM0YsTm8uODEsWXUtWWloIFJkLixDaHUtTmFuIENoZW4KKwkJCQlNaWFvLUxpaCBIc3VhbiAgMzUwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS05MCAgIChoZXgpCQlQT05JQ08gQ09SUC4KKzAwMEU5MCAgICAgKGJhc2UgMTYpCQlQT05JQ08gQ09SUC4KKwkJCQk2MDIsIEFjZSBUd2luIFRvd2VyIDEsIDIxMi0xIEd1cm8tZG9uZworCQkJCUd1cm9ndSBTZW91bCAxNTItNzY2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTkxICAgKGhleCkJCU5hdmljbyBBdWNrbGFuZCBMdGQKKzAwMEU5MSAgICAgKGJhc2UgMTYpCQlOYXZpY28gQXVja2xhbmQgTHRkCisJCQkJMTctMjEgS2F3YW5hIFN0CisJCQkJTm9ydGhjb3RlIEF1Y2tsYW5kIAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTBFLTkyICAgKGhleCkJCU1pbGxpbmV0IENvLiwgTHRkLgorMDAwRTkyICAgICAoYmFzZSAxNikJCU1pbGxpbmV0IENvLiwgTHRkLgorCQkJCTJGLCBXZXN0IEJ1aWxkaW5nLCBJVCBWZW50dXJlIFRvd2VyLCA3OCwgR2FyYWtib24tZG9uZworCQkJCVNvbmdwYS1ndSBTZW91bCAxMzgtMTY5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTkzICAgKGhleCkJCU1pbGVuaW8gMyBTaXN0ZW1hcyBFbGVjdHJvbmljb3MsIExkYS4KKzAwMEU5MyAgICAgKGJhc2UgMTYpCQlNaWxlbmlvIDMgU2lzdGVtYXMgRWxlY3Ryb25pY29zLCBMZGEuCisJCQkJRWRpZmljaW8gVmlhIE5vcnRlLCBSLiBFc3BpZG8gMTY0QyBTNDAzCisJCQkJTWFpYSBNaW5obyA0NDcwLTE3NworCQkJCVBPUlRVR0FMCisKKzAwLTBFLTk0ICAgKGhleCkJCU1hYXMgSW50ZXJuYXRpb25hbCBCVgorMDAwRTk0ICAgICAoYmFzZSAxNikJCU1hYXMgSW50ZXJuYXRpb25hbCBCVgorCQkJCVNjaWVuY2UgUGFyayBFaW5kaG92ZW4gNTA1MQorCQkJCVNvbiBOb29yZCBCcmFiYW50IE5MLTU2OTIgRUIKKwkJCQlORVRIRVJMQU5EUworCiswMC0wRS05NSAgIChoZXgpCQlGdWppeWEgRGVua2kgU2Vpc2FrdXNobyBDby4sTHRkLgorMDAwRTk1ICAgICAoYmFzZSAxNikJCUZ1aml5YSBEZW5raSBTZWlzYWt1c2hvIENvLixMdGQuCisJCQkJOEYgRnVrdXNoaW1hIEJMREcuIDYtMjUtMTEsTmlzaGktR290YW5kYQorCQkJCVNoaW5hZ2F3YS1LdSBUb2t5byAxNDEtMDAzMQorCQkJCUpBUEFOCisKKzAwLTBFLTk2ICAgKGhleCkJCUN1YmljIERlZmVuc2UgQXBwbGljYXRpb25zLCBJbmMuCiswMDBFOTYgICAgIChiYXNlIDE2KQkJQ3ViaWMgRGVmZW5zZSBBcHBsaWNhdGlvbnMsIEluYy4KKwkJCQlQLk8uIEJveCA4NTU4NworCQkJCTkzMzMgQmFsYm9hIEF2ZW51ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjE4Ni01NTg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS05NyAgIChoZXgpCQlVbHRyYWNrZXIgVGVjaG5vbG9neSBDTy4sIEluYworMDAwRTk3ICAgICAoYmFzZSAxNikJCVVsdHJhY2tlciBUZWNobm9sb2d5IENPLiwgSW5jCisJCQkJMTRGLTEsIE5vLiA4ODgsIEppbmdndW8gUm9hZCwgVGFveXVhbiBDaXR5LAorCQkJCVRhb3l1YW4gIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtOTggICAoaGV4KQkJSE1FIENsZWFyLUNvbSBMVEQuCiswMDBFOTggICAgIChiYXNlIDE2KQkJSE1FIENsZWFyLUNvbSBMVEQuCisJCQkJNzQwMCBCZWFjaCBEcml2ZQorCQkJCVdhdGVyYmVhY2gKKwkJCQlDYW1icmlkZ2VzaGlyZSAgQ0IyNSA5VFAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRS05OSAgIChoZXgpCQlTcGVjdHJ1bSBEaWdpdGFsLCBJbmMKKzAwMEU5OSAgICAgKGJhc2UgMTYpCQlTcGVjdHJ1bSBEaWdpdGFsLCBJbmMKKwkJCQkxMjUwMiBFeGNoYW5nZSBEcml2ZSwgU3VpdGUgNDQwCisJCQkJU3RhZmZvcmQgVFggNzc0NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTlBICAgKGhleCkJCUJPRSBURUNITk9MT0dZIEdST1VQIENPLixMVEQKKzAwMEU5QSAgICAgKGJhc2UgMTYpCQlCT0UgVEVDSE5PTE9HWSBHUk9VUCBDTy4sTFRECisJCQkJTm8uMTAgSml1eGlhbnFpYW8gUm9hZCxDaGFveWFuZyBEaXN0cmljdCxCZWlqaW5nLFBSQworCQkJCUJlaWppbmcgIDEwMDAxNgorCQkJCUNISU5BCisKKzAwLTBFLTlCICAgKGhleCkJCUFtYml0IE1pY3Jvc3lzdGVtcyBDb3Jwb3JhdGlvbgorMDAwRTlCICAgICAoYmFzZSAxNikJCUFtYml0IE1pY3Jvc3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTVGLTEsIDUgSHNpbi1BbiBSZC4gU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTlDICAgKGhleCkJCVBlbXN0YXIKKzAwMEU5QyAgICAgKGJhc2UgMTYpCQlQZW1zdGFyCisJCQkJMzUzNSBUZWNobm9sb2d5IERyaXZlCisJCQkJUm9jaGVzdGVyIE1OIDU1OTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS05RCAgIChoZXgpCQlUaXNjYWxpIFVLIEx0ZAorMDAwRTlEICAgICAoYmFzZSAxNikJCVRpc2NhbGkgVUsgTHRkCisJCQkJMjAgQnJvYWR3aWNrIFN0cmVldAorCQkJCUxvbmRvbiAgVzFGIDhIVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBFLTlFICAgKGhleCkJCVRvcGZpZWxkIENvLiwgTHRkCiswMDBFOUUgICAgIChiYXNlIDE2KQkJVG9wZmllbGQgQ28uLCBMdGQKKwkJCQk0dGggZmxvb3IsIERlb2tzYW4gQmxkZyAyNjAtNCwgU2VvaHl1bi1kb25nCisJCQkJU2VvbmduYW0gQnVuZGFuZy1LdSA0NjMtODI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTlGICAgKGhleCkJCVRFTUlDIFNEUyBHbWJICiswMDBFOUYgICAgIChiYXNlIDE2KQkJVEVNSUMgU0RTIEdtYkgKKwkJCQlTb2VmbGluZ2VyIFN0cmFzc2UgMTAwCisJCQkJVWxtICA4OTA3NworCQkJCUdFUk1BTlkKKworMDAtMEUtQTAgICAoaGV4KQkJTmV0S2xhc3MgVGVjaG5vbG9neSBJbmMuCiswMDBFQTAgICAgIChiYXNlIDE2KQkJTmV0S2xhc3MgVGVjaG5vbG9neSBJbmMuCisJCQkJMkYtMSwgTm8uMzAsVGFpIFl1ZW4gU3RyZWV0LAorCQkJCUNodXBlaSBDaXR5LCBIc2luY2h1LCAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUExICAgKGhleCkJCUZvcm1vc2EgVGVsZXRlayBDb3Jwb3JhdGlvbgorMDAwRUExICAgICAoYmFzZSAxNikJCUZvcm1vc2EgVGVsZXRlayBDb3Jwb3JhdGlvbgorCQkJCTM1OCxIdWF5YSAybmQgUmQuCisJCQkJR3VlaXNoYW4gU2hpYW5nCisJCQkJVGFveXVhbiAgMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS1BMiAgIChoZXgpCQlNY0FmZWUsIEluYworMDAwRUEyICAgICAoYmFzZSAxNikJCU1jQWZlZSwgSW5jCisJCQkJMzUwIFNXIDEydGggQXZlbnVlCisJCQkJRGVlcmZpZWxkIEJlYWNoIEZMIDMzNDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1BMyAgIChoZXgpCQlDTkNSLUlUIENPLixMVEQsSGFuZ1pob3UgUC5SLkNISU5BCiswMDBFQTMgICAgIChiYXNlIDE2KQkJQ05DUi1JVCBDTy4sTFRELEhhbmdaaG91IFAuUi5DSElOQQorCQkJCVh1YW5UYW4gcm9hZCBOTzEuZGVwYXJ0bWVudCByb29tNTA0LAorCQkJCUhhbmdaaG91IFpoZUppYW5nIDMxMDAwMworCQkJCUNISU5BCisKKzAwLTBFLUE0ICAgKGhleCkJCUNlcnRhbmNlIEluYy4KKzAwMEVBNCAgICAgKGJhc2UgMTYpCQlDZXJ0YW5jZSBJbmMuCisJCQkJMTY1MCBTdW5mbG93ZXIgQXZlLgorCQkJCUNvc3RhIE1lc2EgQ0EgOTI2MjYtMTUxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQTUgICAoaGV4KQkJQkxJUCBTeXN0ZW1zCiswMDBFQTUgICAgIChiYXNlIDE2KQkJQkxJUCBTeXN0ZW1zCisJCQkJSGFla2tlbiAyCisJCQkJVm9kc2tvdiBWZXN0ZXIgSGFzc2luZyA5MzEwCisJCQkJREVOTUFSSworCiswMC0wRS1BNiAgIChoZXgpCQlBU1VTVEVLIENPTVBVVEVSIElOQy4KKzAwMEVBNiAgICAgKGJhc2UgMTYpCQlBU1VTVEVLIENPTVBVVEVSIElOQy4KKwkJCQlOby4gMTUwLCBMaS1UZSBSZC4sUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUE3ICAgKGhleCkJCUVuZGFjZSBUZWNobm9sb2d5CiswMDBFQTcgICAgIChiYXNlIDE2KQkJRW5kYWNlIFRlY2hub2xvZ3kKKwkJCQk4NSBBbGV4YW5kcmEgU3RyZWV0CisJCQkJSGFtaWx0b24gIDMyMDQKKwkJCQlORVcgWkVBTEFORAorCiswMC0wRS1BOCAgIChoZXgpCQlVbml0ZWQgVGVjaG5vbG9naXN0cyBFdXJvcGUgTGltaXRlZAorMDAwRUE4ICAgICAoYmFzZSAxNikJCVVuaXRlZCBUZWNobm9sb2dpc3RzIEV1cm9wZSBMaW1pdGVkCisJCQkJVVRFTCBMYWJvcmF0b3JpZXMsIFdvbHZlcyBGYXJtIExhbmUKKwkJCQlJcHN3aWNoIFJvYWQKKwkJCQlIYWRsZWlnaCBTdWZmb2xrIElQNyA2QkgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRS1BOSAgIChoZXgpCQlTaGFuZ2hhaSBYdW4gU2hpIENvbW11bmljYXRpb25zIEVxdWlwbWVudCBMdGQuIENvLgorMDAwRUE5ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFh1biBTaGkgQ29tbXVuaWNhdGlvbnMgRXF1aXBtZW50IEx0ZC4gQ28uCisJCQkJSGktVGVjaCBLaW5nIFdvcmxkLCBVbml0IEM2MDMKKwkJCQkjNjY2IEJlaWppbmcgUm9hZCAoRSkKKwkJCQlTaGFuZ2hhaSAgMjAwMDAxCisJCQkJQ0hJTkEKKworMDAtMEUtQUEgICAoaGV4KQkJU2NhbGVudCBTeXN0ZW1zLCBJbmMuCiswMDBFQUEgICAgIChiYXNlIDE2KQkJU2NhbGVudCBTeXN0ZW1zLCBJbmMuCisJCQkJNDkwIFMuIENhbGlmb3JuaWEgQXZlCisJCQkJUGFsbyBBbHRvIENBIDk0MzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1BQiAgIChoZXgpCQlDcmF5IEluYworMDAwRUFCICAgICAoYmFzZSAxNikJCUNyYXkgSW5jCisJCQkJNDExIEZpcnN0IEF2ZSBTIFN1aXRlIDYwMAorCQkJCVNlYXR0bGUgV0EgOTgxMDQKKwkJCQlDQU5BREEKKworMDAtMEUtQUMgICAoaGV4KQkJTUlOVFJPTiBFTlRFUlBSSVNFIENPLiwgTFRELgorMDAwRUFDICAgICAoYmFzZSAxNikJCU1JTlRST04gRU5URVJQUklTRSBDTy4sIExURC4KKwkJCQlOTy4zLFd1LUt1bmcgNVJkLiwgV3UtS3UgSW5kIFBhcmsKKwkJCQlUYWlwZWkgQ291bnR5ICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUFEICAgKGhleCkJCU1ldGFub2lhIFRlY2hub2xvZ2llcywgSW5jLgorMDAwRUFEICAgICAoYmFzZSAxNikJCU1ldGFub2lhIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTU5MTggVy4gY291cnR5YXJkIERyLgorCQkJCVN1aXRlIDMzMAorCQkJCUF1c3RpbiBUWCA3ODczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQUUgICAoaGV4KQkJR0FXRUxMIFRFQ0hOT0xPR0lFUyBDT1JQLgorMDAwRUFFICAgICAoYmFzZSAxNikJCUdBV0VMTCBURUNITk9MT0dJRVMgQ09SUC4KKwkJCQkyRixOTy4xMDIsU0VDLjMsSlVORyBTSEFOIFJELAorCQkJCUpVTkcgSE8gQ0lUWSwgVEFJUEVJIEhTSUVOIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtQUYgICAoaGV4KQkJQ0FTVEVMCiswMDBFQUYgICAgIChiYXNlIDE2KQkJQ0FTVEVMCisJCQkJWkkgU2FpbnQgTGFtYmVydCBkZXMgTGV2ZWVzCisJCQkJU0FVTVVSIE1haW5lIGV0IExvaXJlIDQ5NDEyCisJCQkJRlJBTkNFCisKKzAwLTBFLUIwICAgKGhleCkJCVNvbHV0aW9ucyBSYWRpbyBCVgorMDAwRUIwICAgICAoYmFzZSAxNikJCVNvbHV0aW9ucyBSYWRpbyBCVgorCQkJCVByaW5zZWdyYWNodCA4MgorCQkJCVRoZSBIYWd1ZSBaSCAyNTEyIEdDCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEUtQjEgICAoaGV4KQkJTmV3Y290ZWNoLEx0ZAorMDAwRUIxICAgICAoYmFzZSAxNikJCU5ld2NvdGVjaCxMdGQKKwkJCQlBbnlhbmcgTWVnYXZhbGx5IDcxNS0zCisJCQkJS3dhbnlhbmctRG9uZywgRG9uZ2FuLUd1LAorCQkJCUFueWFuZyBDaXR5IEd1ZW9uZ2dpLURvIDQzMS0xNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtQjIgICAoaGV4KQkJTWljcm8tUmVzZWFyY2ggRmlubGFuZCBPeQorMDAwRUIyICAgICAoYmFzZSAxNikJCU1pY3JvLVJlc2VhcmNoIEZpbmxhbmQgT3kKKwkJCQlWYWxpdGFsb250aWUgODMgQworCQkJCUhlbHNpbmtpICBGSU4tMDA2NjAKKwkJCQlGSU5MQU5ECisKKzAwLTBFLUIzICAgKGhleCkJCUhld2xldHQtUGFja2FyZAorMDAwRUIzICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZAorCQkJCTI1ODAgNTV0aCBTdHJlZXQKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1CNCAgIChoZXgpCQlHVUFOR1pIT1UgR0FPS0UgQ09NTVVOSUNBVElPTlMgVEVDSE5PTE9HWSBDTy5MVEQuCiswMDBFQjQgICAgIChiYXNlIDE2KQkJR1VBTkdaSE9VIEdBT0tFIENPTU1VTklDQVRJT05TIFRFQ0hOT0xPR1kgQ08uTFRELgorCQkJCUFWRS4gMzk4IFpIT05HU0hBTgorCQkJCUdVQU5HWkhPVSBHVUFOR0RPTkcgNTEwNjYwCisJCQkJQ0hJTkEKKworMDAtMEUtQjUgICAoaGV4KQkJRWNhc3RsZSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMEVCNSAgICAgKGJhc2UgMTYpCQlFY2FzdGxlIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCSM1MDIsIE5hbWphbmcgQi9ELCBCYW5nYmFlLWRvbmcsCisJCQkJU2VvY2hvLWt1LAorCQkJCVNlb3VsICAxMzctODE4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLUI2ICAgKGhleCkJCVJpdmVyYmVkIFRlY2hub2xvZ3ksIEluYy4KKzAwMEVCNiAgICAgKGJhc2UgMTYpCQlSaXZlcmJlZCBUZWNobm9sb2d5LCBJbmMuCisJCQkJNTAxIFNlY29uZCBTdHJlZXQKKwkJCQlTdWl0ZSA0MTAKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1CNyAgIChoZXgpCQlLbm92YXRpdmUsIEluYy4KKzAwMEVCNyAgICAgKGJhc2UgMTYpCQlLbm92YXRpdmUsIEluYy4KKwkJCQkxMTI0NSBXZXN0IEJlcm5hcmRvIENvdXJ0CisJCQkJU3VpdGUgMTAwCisJCQkJU2FuIERpZWdvIENBIDkyMTI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1COCAgIChoZXgpCQlJaWdhIGNvLixMdGQKKzAwMEVCOCAgICAgKGJhc2UgMTYpCQlJaWdhIGNvLixMdGQKKwkJCQkzRiBUS0JsZGcuIDMtNS0yIFNvdG9rYW5kYQorCQkJCUNoaXlvZGEtS3UgVG9reW8gMTAxLTAwMjEKKwkJCQlKQVBBTgorCiswMC0wRS1COSAgIChoZXgpCQlIQVNISU1PVE8gRWxlY3Ryb25pY3MgSW5kdXN0cnkgQ28uLEx0ZC4KKzAwMEVCOSAgICAgKGJhc2UgMTYpCQlIQVNISU1PVE8gRWxlY3Ryb25pY3MgSW5kdXN0cnkgQ28uLEx0ZC4KKwkJCQkzODY2LTEyIFRha2FzdS1jaG8KKwkJCQlNYXRzdXNha2EgTWllIDUxNS0wMTA0CisJCQkJSkFQQU4KKworMDAtMEUtQkEgICAoaGV4KQkJSEFOTUkgU0VNSUNPTkRVQ1RPUiBDTy4sIExURC4KKzAwMEVCQSAgICAgKGJhc2UgMTYpCQlIQU5NSSBTRU1JQ09ORFVDVE9SIENPLiwgTFRELgorCQkJCSM1MzItMiwgR2Fqd2EtRG9uZywgU2VvLUt1LAorCQkJCUluY2hlb24gIDQwNCAyNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtQkIgICAoaGV4KQkJRXZlcmJlZSBOZXR3b3JrcworMDAwRUJCICAgICAoYmFzZSAxNikJCUV2ZXJiZWUgTmV0d29ya3MKKwkJCQk0MSwgQm91bGV2YXJkIGRlcyBDYXB1Y2luZXMKKwkJCQlQYXJpcyAgNzUwMDIKKwkJCQlGUkFOQ0UKKworMDAtMEUtQkMgICAoaGV4KQkJUGFyYWdvbiBGaWRlbGl0eSBHbWJICiswMDBFQkMgICAgIChiYXNlIDE2KQkJUGFyYWdvbiBGaWRlbGl0eSBHbWJICisJCQkJU2Nod2FkZXJtdWhsc3RyYXNzZSA0YQorCQkJCUNhZG9semJ1cmcgIDkwNTU2CisJCQkJR0VSTUFOWQorCiswMC0wRS1CRCAgIChoZXgpCQlCdXJkaWNrLCBhIFF1aW50b24gQ29tcG55CiswMDBFQkQgICAgIChiYXNlIDE2KQkJQnVyZGljaywgYSBRdWludG9uIENvbXBueQorCQkJCTUwMCBCdXJkaWNrIFBhcmt3YXkKKwkJCQlEZWVyZmllbGQgV0kgNTM1MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUJFICAgKGhleCkJCUImQiBFbGVjdHJvbmljcyBNYW51ZmFjdHVyaW5nIENvLgorMDAwRUJFICAgICAoYmFzZSAxNikJCUImQiBFbGVjdHJvbmljcyBNYW51ZmFjdHVyaW5nIENvLgorCQkJCTcwNyBEYXl0b24gUm9hZAorCQkJCVAuTy4gQm94IDEwNDAKKwkJCQlPdHRhd2EgSWxpbm9pcyA2MTM1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQkYgICAoaGV4KQkJUmVtc2RhcSBMaW1pdGVkCiswMDBFQkYgICAgIChiYXNlIDE2KQkJUmVtc2RhcSBMaW1pdGVkCisJCQkJUGFya3dheQorCQkJCURlZXNpZGUgSW5kdXN0cmlhbCBQYXJrCisJCQkJRGVlc2lkZSBGbGludHNoaXJlIENINSAyTkwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRS1DMCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMEVDMCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0wRS1DMSAgIChoZXgpCQlNWU5BSCBUZWNobm9sb2dpZXMKKzAwMEVDMSAgICAgKGJhc2UgMTYpCQlNWU5BSCBUZWNobm9sb2dpZXMKKwkJCQk1MDQgVHJhZGUgQ2VudGVyIEJsdmQKKwkJCQlDaGVzdGVyZmllbGQgTU8gNjMwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUMyICAgKGhleCkJCUxvd3JhbmNlIEVsZWN0cm9uaWNzLCBJbmMuCiswMDBFQzIgICAgIChiYXNlIDE2KQkJTG93cmFuY2UgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQkxMjAwMCBFLiBTa2VsbHkgRHJpdmUKKwkJCQlUdWxzYSBPSyA3NDEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQzMgICAoaGV4KQkJTG9naWMgQ29udHJvbHMsIEluYy4KKzAwMEVDMyAgICAgKGJhc2UgMTYpCQlMb2dpYyBDb250cm9scywgSW5jLgorCQkJCTM1NSBEZW50b24gQXZlbnVlCisJCQkJTmV3IEh5ZGUgUGFyayBOWSAxMTA0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQzQgICAoaGV4KQkJSXNrcmEgVHJhbnNtaXNzaW9uIGQuZC4KKzAwMEVDNCAgICAgKGJhc2UgMTYpCQlJc2tyYSBUcmFuc21pc3Npb24gZC5kLgorCQkJCVN0ZWduZSAxMQorCQkJCUxqdWJsamFuYSAgMTAwMAorCQkJCVNMT1ZFTklBCisKKzAwLTBFLUM1ICAgKGhleCkJCURpZ2l0YWwgTXVsdGl0b29scyBJbmMKKzAwMEVDNSAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIE11bHRpdG9vbHMgSW5jCisJCQkJOTAwNSBMZXNsaWUgU3RyZWV0ICBVbml0IDIwNQorCQkJCVJpY2htb25kIEhpbGwgT250YXJpbyBMNEIgMUc3CisJCQkJQ0FOQURBCisKKzAwLTBFLUM2ICAgKGhleCkJCUFTSVggRUxFQ1RST05JQ1MgQ09SUC4KKzAwMEVDNiAgICAgKGJhc2UgMTYpCQlBU0lYIEVMRUNUUk9OSUNTIENPUlAuCisJCQkJNEYsIE5PLjgsIEhTSU4gQU5OIFJELiwKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSywKKwkJCQlIU0lOQ0hVICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUM3ICAgKGhleCkJCU1vdG9yb2xhIEtvcmVhCiswMDBFQzcgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgS29yZWEKKwkJCQlIaWJyYW5kIEIvRCAxN0YgU1cgVGVhbSBNb3Rvcm9sYSBLb3JlYQorCQkJCVlhbmdqYWVkb25nIFNlb2NobyAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtQzggICAoaGV4KQkJWm9yYW4gQ29ycG9yYXRpb24KKzAwMEVDOCAgICAgKGJhc2UgMTYpCQlab3JhbiBDb3Jwb3JhdGlvbgorCQkJCTEzOTAgS2lmZXIgUmQuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1DOSAgIChoZXgpCQlZT0tPIFRlY2hub2xvZ3kgQ29ycC4KKzAwMEVDOSAgICAgKGJhc2UgMTYpCQlZT0tPIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQk2RiwgTm8uMTAsIExhbmUxNiwgU2VjMiwgU3plLUNodWFuIFJkLiwgUGFuLQorCQkJCUNoaWFvIENpdHksCisJCQkJVGFpcGVpICA4ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUNBICAgKGhleCkJCVdUU1MgSW5jCiswMDBFQ0EgICAgIChiYXNlIDE2KQkJV1RTUyBJbmMKKwkJCQk1OTk5IEF2ZW5pZGEgRW5jaW5hcworCQkJCVN1aXRlIDE1MAorCQkJCUNhcmxzYmFkIENBIDkyMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1DQiAgIChoZXgpCQlWaW5lU3lzIFRlY2hub2xvZ3kKKzAwMEVDQiAgICAgKGJhc2UgMTYpCQlWaW5lU3lzIFRlY2hub2xvZ3kKKwkJCQkzMzUwIFNjb3R0IEJsdmQuIGJ1aWxkaW5nIDE1LTAzCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUNDICAgKGhleCkJCVRhYmxlYXUsIExMQworMDAwRUNDICAgICAoYmFzZSAxNikJCVRhYmxlYXUsIExMQworCQkJCU44IFcyMjE5NSBKb2huc29uIERyaXZlLCBTdWl0ZSAxMDAKKwkJCQlXYXVrZXNoYSBXSSA1MzE4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQ0QgICAoaGV4KQkJU0tPViBBL1MKKzAwMEVDRCAgICAgKGJhc2UgMTYpCQlTS09WIEEvUworCQkJCUhlZGVsdW5kIDQKKwkJCQlHbHluZ29lcmUKKwkJCQlSb3NsZXYgIERLLTc4NzAKKwkJCQlERU5NQVJLCisKKzAwLTBFLUNFICAgKGhleCkJCVMuSS5ULlQuSS4gUy5wLkEuCiswMDBFQ0UgICAgIChiYXNlIDE2KQkJUy5JLlQuVC5JLiBTLnAuQS4KKwkJCQlWaWEgQ2Fkb3JuYSA2OQorCQkJCVZpbW9kcm9uZSBNaWxhbiBJLTIwMDkwCisJCQkJSVRBTFkKKworMDAtMEUtQ0YgICAoaGV4KQkJUFJPRklCVVMgTnV0emVyb3JnYW5pc2F0aW9uIGUuVi4KKzAwMEVDRiAgICAgKGJhc2UgMTYpCQlQUk9GSUJVUyBOdXR6ZXJvcmdhbmlzYXRpb24gZS5WLgorCQkJCUhhaWQtdW5kLU5ldS1TdHJhc3NlIDcKKwkJCQlLYXJsc3J1aGUgQmFkZW4tV3VydHRlbWJlcmcgNzYxMzEKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLUQwICAgKGhleCkJCVByaXZhcmlzLCBJbmMuCiswMDBFRDAgICAgIChiYXNlIDE2KQkJUHJpdmFyaXMsIEluYy4KKwkJCQk2NTAgUGV0ZXIgSmVmZmVyc29uIFBrd3ksIFN0ZSAzMzAKKwkJCQlDaGFybG90dGVzdmlsbGUgVmlyZ2luaWEgMjI5MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUQxICAgKGhleCkJCU9zYWthIE1pY3JvIENvbXB1dGVyLgorMDAwRUQxICAgICAoYmFzZSAxNikJCU9zYWthIE1pY3JvIENvbXB1dGVyLgorCQkJCUlzb25va2FtaWN5byAzLTExLTcKKwkJCQlLaXNoaXdhZGEgT3Nha2EgNTk2MDAwMQorCQkJCUpBUEFOCisKKzAwLTBFLUQyICAgKGhleCkJCUZpbHRyb25pYyBwbGMKKzAwMEVEMiAgICAgKGJhc2UgMTYpCQlGaWx0cm9uaWMgcGxjCisJCQkJVGhlIFdhdGVyZnJvbnQKKwkJCQlTYWx0cyBNaWxsIFJkCisJCQkJU2FsdGFpcmUgVyBZb3JrcyBCRDE4IDNUVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBFLUQzICAgKGhleCkJCUVwaWNlbnRlciwgSW5jLgorMDAwRUQzICAgICAoYmFzZSAxNikJCUVwaWNlbnRlciwgSW5jLgorCQkJCTIxMSBCIENhbGxlIFBpbnRvcmVzY28KKwkJCQlTYW4gQ2xlbWVudGUgQ0EgOTI2NzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUQ0ICAgKGhleCkJCUNSRVNJVFQgSU5EVVNUUklFCiswMDBFRDQgICAgIChiYXNlIDE2KQkJQ1JFU0lUVCBJTkRVU1RSSUUKKwkJCQkxMiBydWUgZGUgQmxvaXMKKwkJCQlPcmxlYW5zIEJQIDY3NDQgNDUwNjcgIGNlZGV4CisJCQkJRlJBTkNFCisKKzAwLTBFLUQ1ICAgKGhleCkJCUNPUEFOIFN5c3RlbXMgSW5jLgorMDAwRUQ1ICAgICAoYmFzZSAxNikJCUNPUEFOIFN5c3RlbXMgSW5jLgorCQkJCTI2MDUgVHJhZGUgQ2VudHJlIEF2ZS4KKwkJCQlTdWl0ZSBECisJCQkJTG9uZ21vbnQgQ08gODA1MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUQ2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEVENiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUQ3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEVENyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUQ4ICAgKGhleCkJCUFrdGlubywgSW5jLgorMDAwRUQ4ICAgICAoYmFzZSAxNikJCUFrdGlubywgSW5jLgorCQkJCTE4NTUxIFZvbiBLYXJtYW4gQXZlbnVlCisJCQkJU3VpdGUgMjAxCisJCQkJSXJ2aW5lIENBIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1EOSAgIChoZXgpCQlBa3N5cywgTHRkLgorMDAwRUQ5ICAgICAoYmFzZSAxNikJCUFrc3lzLCBMdGQuCisJCQkJMiBNYXJyaW90dCBEcml2ZQorCQkJCUxpbmNvbG5zaGlyZSBJTCA2MDA2OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtREEgICAoaGV4KQkJQy1URUNIIFVOSVRFRCBDT1JQLgorMDAwRURBICAgICAoYmFzZSAxNikJCUMtVEVDSCBVTklURUQgQ09SUC4KKwkJCQk1RiwgTm8gNjY1LCBDSFVORyBDSEVOIFJELgorCQkJCUhTSU4gQ0hVQU5HIENJVFQgIG9mIFRBSVBFSSBIU0lFTiAgMjQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS1EQiAgIChoZXgpCQlYaU5DT00gQ29ycC4KKzAwMEVEQiAgICAgKGJhc2UgMTYpCQlYaU5DT00gQ29ycC4KKwkJCQkyODQwIEluZHVzdHJpYWwgQXZlLgorCQkJCUh1YmJhcmQgT1IgOTcwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLURDICAgKGhleCkJCVRlbGxpb24gSU5DLgorMDAwRURDICAgICAoYmFzZSAxNikJCVRlbGxpb24gSU5DLgorCQkJCTV0aCBGbC4gQk9OQSBWZW50dXJlIFRvd24KKwkJCQkxNTg2LTEgU2VvY2hvIDMtZG9uZywgU2VvY2hvLWd1CisJCQkJU2VvdWwgU2VvY2hvLWd1LiAxMzctNzE5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLUREICAgKGhleCkJCVNIVVJFIElOQ09SUE9SQVRFRAorMDAwRUREICAgICAoYmFzZSAxNikJCVNIVVJFIElOQ09SUE9SQVRFRAorCQkJCTU4MDAgVy4gVE9VSFkgQVZFLgorCQkJCU5JTEVTIElMIDYwNzE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1ERSAgIChoZXgpCQlSRU1FQywgSW5jLgorMDAwRURFICAgICAoYmFzZSAxNikJCVJFTUVDLCBJbmMuCisJCQkJMjE0NCBGcmFua2xpbiBEcml2ZSBORQorCQkJCVBhbG0gQmF5IEZsb3JpZGEgMzI5MDUtNDAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtREYgICAoaGV4KQkJUExYIFRlY2hub2xvZ3kKKzAwMEVERiAgICAgKGJhc2UgMTYpCQlQTFggVGVjaG5vbG9neQorCQkJCTg3MCBNYXVkZSBBdmUuLAorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRTAgICAoaGV4KQkJTWNoYXJnZQorMDAwRUUwICAgICAoYmFzZSAxNikJCU1jaGFyZ2UKKwkJCQlGaXJzdGVjIEJsZGcsLiAxNS00IFlvdWlkby1Eb25nCisJCQkJWW91bmdkZXVuZ3BvLUd1LAorCQkJCXNlb3VsIFlvdWlkbyAxNTAtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLUUxICAgKGhleCkJCUV4dHJlbWVTcGVlZCBJbmMuCiswMDBFRTEgICAgIChiYXNlIDE2KQkJRXh0cmVtZVNwZWVkIEluYy4KKwkJCQlQTyBCb3ggNjAwCisJCQkJNDYzNC00NnRoIFN0cmVldCBTdWl0ZSAyMDEKKwkJCQlNYW5udmlsbGUgQWxiZXJ0YSBUMEIgMlcwCisJCQkJQ0FOQURBCisKKzAwLTBFLUUyICAgKGhleCkJCUN1c3RvbSBFbmdpbmVlcmluZyBTLnAuQS4KKzAwMEVFMiAgICAgKGJhc2UgMTYpCQlDdXN0b20gRW5naW5lZXJpbmcgUy5wLkEuCisJCQkJVmlhIEJlcmV0dHRpbmUgMi9iCisJCQkJRm9udGV2aXZvIFBhcm1hIDQzMDEwCisJCQkJSVRBTFkKKworMDAtMEUtRTMgICAoaGV4KQkJQ2hpeXUgVGVjaG5vbG9neSBDby4sTHRkCiswMDBFRTMgICAgIChiYXNlIDE2KQkJQ2hpeXUgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJTm8uIDI4LCBSZW5haSBSb2FkLCBDaGlheWksIDYwMAorCQkJCUNoaWF5aSAgNjAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS1FNCAgIChoZXgpCQlCT0UgVEVDSE5PTE9HWSBHUk9VUCBDTy4sTFRECiswMDBFRTQgICAgIChiYXNlIDE2KQkJQk9FIFRFQ0hOT0xPR1kgR1JPVVAgQ08uLExURAorCQkJCU5vLjEwIEppdXhpYW5xaWFvIFJvYWQsQ2hhb3lhbmcgRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDE2CisJCQkJQ0hJTkEKKworMDAtMEUtRTUgICAoaGV4KQkJYml0V2FsbGV0LCBJbmMuCiswMDBFRTUgICAgIChiYXNlIDE2KQkJYml0V2FsbGV0LCBJbmMuCisJCQkJR2F0ZSBDaXR5IE9oc2FraSBXZXN0IFRvd2VyIDE4RiwgMS0xMS0xIE9zYWtpLCBTaGluYWdhd2Eta3UKKwkJCQlUb2t5byAgMTQxMDAzMgorCQkJCUpBUEFOCisKKzAwLTBFLUU2ICAgKGhleCkJCUFkaW1vcyBTeXN0ZW1zIExURAorMDAwRUU2ICAgICAoYmFzZSAxNikJCUFkaW1vcyBTeXN0ZW1zIExURAorCQkJCTE3IEF0aXJleS1ZZWRhIFN0cmVldAorCQkJCUtmYXItU2FiYSAgNDQ2NDMKKwkJCQlJU1JBRUwKKworMDAtMEUtRTcgICAoaGV4KQkJQUFDIEVMRUNUUk9OSUNTIENPUlAuCiswMDBFRTcgICAgIChiYXNlIDE2KQkJQUFDIEVMRUNUUk9OSUNTIENPUlAuCisJCQkJRkxPT1IgNyxTSVhUSCBCVUlMRElORyBPRiBOQUlBTllPVSBUTkFOIElORFVTVFJJQUwgQVJFQSxOQU5TSEFOIERJU1RSSUNUCisJCQkJU0hFTlpIRU4gUFJPVklOQ0UgR1VBTkdET05HIDUxODA1NAorCQkJCUNISU5BCisKKzAwLTBFLUU4ICAgKGhleCkJCXppb25jb20KKzAwMEVFOCAgICAgKGJhc2UgMTYpCQl6aW9uY29tCisJCQkJV2VzdCB3aW5nIDUvRiAuLCBCbG9jayAxLCBHYW9YaW4gU291dGggUmluZyBSZC9LZWppIFNvdXRoIFJkLAorCQkJCVZpc2lvbihTaGVuWmhlbilCdXNpbmVzcyBQYXJrLCBTaGVuemhlbiBIaS1UZWNoIEluZHVzdHJpYWwgUGFyaywKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMEUtRTkgICAoaGV4KQkJV2F5VGVjaCBEZXZlbG9wbWVudCwgSW5jLgorMDAwRUU5ICAgICAoYmFzZSAxNikJCVdheVRlY2ggRGV2ZWxvcG1lbnQsIEluYy4KKwkJCQkxMUZsb29yLCAyNTMgTWluLVNoZW5nIFJvYWQKKwkJCQlIc2luQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUVBICAgKGhleCkJCVNoYWRvbmcgTHVuZW5nIEppY2hlbmcgRWxlY3Ryb25pY3MsQ28uLEx0ZAorMDAwRUVBICAgICAoYmFzZSAxNikJCVNoYWRvbmcgTHVuZW5nIEppY2hlbmcgRWxlY3Ryb25pY3MsQ28uLEx0ZAorCQkJCU5vLjE4OCxlYXN0LEh1YXl1YW4gUm9hZAorCQkJCUppbmFuIFNoYW5kb25nIDI1MDEwMAorCQkJCUNISU5BCisKKzAwLTBFLUVCICAgKGhleCkJCVNhbmRtYXJ0aW4oemhvbmcgc2hhbilFbGVjdHJvbmljcyBDby4sTHRkCiswMDBFRUIgICAgIChiYXNlIDE2KQkJU2FuZG1hcnRpbih6aG9uZyBzaGFuKUVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkzc3QgSW5kdXN0cmlhbCBBcmVhLFRhbiBaaG91LAorCQkJCVpob25nc2hhbiBHdWFuZ2RvbmcgNTI4NDY3CisJCQkJQ0hJTkEKKworMDAtMEUtRUMgICAoaGV4KQkJT3JiYW4KKzAwMEVFQyAgICAgKGJhc2UgMTYpCQlPcmJhbgorCQkJCTE1MjUgQWx2YXJhZG8gU3QuCisJCQkJU2FuIExlYW5kcm8gQ0EgOTQ1NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUVEICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDBFRUQgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTBFLUVFICAgKGhleCkJCU11Y28gSW5kdXN0cmllIEJWCiswMDBFRUUgICAgIChiYXNlIDE2KQkJTXVjbyBJbmR1c3RyaWUgQlYKKwkJCQlQbGVpbXVpZGVuIDEyZQorCQkJCUFtc3RlcmRhbSBOSCAxMDQ2IEFHCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEUtRUYgICAoaGV4KQkJUFJJVkFURQorMDAwRUVGICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wRS1GMCAgIChoZXgpCQlGZXN0byBBRyAmIENvLiBLRworMDAwRUYwICAgICAoYmFzZSAxNikJCUZlc3RvIEFHICYgQ28uIEtHCisJCQkJUnVpdGVyc3RyYXNzZSA4MgorCQkJCUVzc2xpbmdlbiAgNzM3MzQKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLUYxICAgKGhleCkJCUVaUVVFU1QgSU5DLgorMDAwRUYxICAgICAoYmFzZSAxNikJCUVaUVVFU1QgSU5DLgorCQkJCTIxMTMzIEUuIExBIFBBTE1BIEFWRS4KKwkJCQlZT1JCQSBMSU5EQSBDQSA5Mjg4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRjIgICAoaGV4KQkJSW5maW5pY28gQ29ycG9yYXRpb24KKzAwMEVGMiAgICAgKGJhc2UgMTYpCQlJbmZpbmljbyBDb3Jwb3JhdGlvbgorCQkJCTRGLCBGLTEgQmxkZy4sIDEtMi0xMiwKKwkJCQlIYW1hbWF0c3VjaG8sIE1pdGFuby1rdQorCQkJCVRva3lvICAxMDUtMDAxMworCQkJCUpBUEFOCisKKzAwLTBFLUYzICAgKGhleCkJCVNtYXJ0aG9tZQorMDAwRUYzICAgICAoYmFzZSAxNikJCVNtYXJ0aG9tZQorCQkJCTE2NTQyIE1pbGxpa2FuIEF2ZS4KKwkJCQlJcnZpbmUgQ0EgOTI2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUY0ICAgKGhleCkJCUthc2RhIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkCiswMDBFRjQgICAgIChiYXNlIDE2KQkJS2FzZGEgRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQKKwkJCQkyL0YsQnVpbGRpbmcgMixCYWd1YSAyIHJvYWQsRnV0aWFuLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyBQcm92aW5jZSA1MTgwMjkKKwkJCQlDSElOQQorCiswMC0wRS1GNSAgIChoZXgpCQlpUEFDIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDBFRjUgICAgIChiYXNlIDE2KQkJaVBBQyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTZGLCBOby4gMzAsIFNoaW5nanVuZyBSb2FkLCBOZWlodQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS1GNiAgIChoZXgpCQlFLVRFTiBJbmZvcm1hdGlvbiBTeXN0ZW1zIENvLiwgTHRkLgorMDAwRUY2ICAgICAoYmFzZSAxNikJCUUtVEVOIEluZm9ybWF0aW9uIFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJTm8uIDI1NiwgWWFuZ2d1YW5nIFN0cmVldCwgTmVpaHUgQ2hpdQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS1GNyAgIChoZXgpCQlWdWxjYW4gUG9ydGFscyBJbmMKKzAwMEVGNyAgICAgKGJhc2UgMTYpCQlWdWxjYW4gUG9ydGFscyBJbmMKKwkJCQk1MDUgNXRoIEF2ZSBTb3V0aCwgU3VpdGUgOTAwCisJCQkJU2VhdHRsZSBXQSA5ODEwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRjggICAoaGV4KQkJU0JDIEFTSQorMDAwRUY4ICAgICAoYmFzZSAxNikJCVNCQyBBU0kKKwkJCQlOZXR3b3JrICYgSW5mcmFzdHJ1Y3R1cmUgVGVjaG5pY2FsIFN1cHBvcnQKKwkJCQkxMDEwIE4gU2FpbnQgTWFyeXMKKwkJCQlTYW4gQW50b25pbyBUZXhhcyA3ODIxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRjkgICAoaGV4KQkJUkVBIEVsZWt0cm9uaWsgR21iSAorMDAwRUY5ICAgICAoYmFzZSAxNikJCVJFQSBFbGVrdHJvbmlrIEdtYkgKKwkJCQlUZWljaHdpZXNlbnN0ci4gMQorCQkJCU11ZWhsdGFsIEhlc3NlbiA2NDM2NworCQkJCUdFUk1BTlkKKworMDAtMEUtRkEgICAoaGV4KQkJT3B0b3dheSBUZWNobm9sb2d5IEluY29ycG9yYXRpb24KKzAwMEVGQSAgICAgKGJhc2UgMTYpCQlPcHRvd2F5IFRlY2hub2xvZ3kgSW5jb3Jwb3JhdGlvbgorCQkJCU5vLiAzOCwgS3VhbmcgRnUgU291dGggUm9hZAorCQkJCUhzaW4gQ2h1IEluZHVzdHJpYWwgUGFyaworCQkJCUh1IEtvdSBIc2luIENodSAzMDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUZCICAgKGhleCkJCU1hY2V5IEVudGVycHJpc2VzCiswMDBFRkIgICAgIChiYXNlIDE2KQkJTWFjZXkgRW50ZXJwcmlzZXMKKwkJCQlQLk8uIEJveCA3MjY3CisJCQkJVGVtcGUgQVogODUyODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUZDICAgKGhleCkJCUpUQUcgVGVjaG5vbG9naWVzIEIuVi4KKzAwMEVGQyAgICAgKGJhc2UgMTYpCQlKVEFHIFRlY2hub2xvZ2llcyBCLlYuCisJCQkJQm9zY2hkaWprIDUwCisJCQkJRWluZGhvdmVuIE5CIDU2MTIgQU4KKwkJCQlORVRIRVJMQU5EUworCiswMC0wRS1GRCAgIChoZXgpCQlGVUpJTk9OIENPUlBPUkFUSU9OCiswMDBFRkQgICAgIChiYXNlIDE2KQkJRlVKSU5PTiBDT1JQT1JBVElPTgorCQkJCTEtMzI0IFVFVEFLRSwgS0lUQS1LVSwKKwkJCQlTQUlUQU1BIENJVFkgU0FJVEFNQSAzMzEtOTYyNAorCQkJCUpBUEFOCisKKzAwLTBFLUZFICAgKGhleCkJCUVuZFJ1biBUZWNobm9sb2dpZXMgTExDCiswMDBFRkUgICAgIChiYXNlIDE2KQkJRW5kUnVuIFRlY2hub2xvZ2llcyBMTEMKKwkJCQkyMjcwIE5vcnRocG9pbnQgUGFya3dheQorCQkJCVNhbnRhIFJvc2EgQ0EgOTU0MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUZGICAgKGhleCkJCU1lZ2Fzb2x1dGlvbixJbmMuCiswMDBFRkYgICAgIChiYXNlIDE2KQkJTWVnYXNvbHV0aW9uLEluYy4KKwkJCQkyLTctMTAgU2hpdGF5YQorCQkJCVRhaXRvIFRPS1lPIDExMC0wMDA0CisJCQkJSkFQQU4KKworMDAtMEYtMDAgICAoaGV4KQkJTGVncmEgU3lzdGVtcywgSW5jLgorMDAwRjAwICAgICAoYmFzZSAxNikJCUxlZ3JhIFN5c3RlbXMsIEluYy4KKwkJCQkzIEJ1cmxpbmd0b24gV29vZHMgRHJpdmUKKwkJCQlCdXJsaW5ndG9uIE1BIDAxODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0wMSAgIChoZXgpCQlESUdJVEFMS1MgSU5DCiswMDBGMDEgICAgIChiYXNlIDE2KQkJRElHSVRBTEtTIElOQworCQkJCTE0IE1BUlNIQUxMIExBTkUKKwkJCQlXRVNUT04gQ1QgMDY4ODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTAyICAgKGhleCkJCURpZ2ljdWJlIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMEYwMiAgICAgKGJhc2UgMTYpCQlEaWdpY3ViZSBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJOEYsTm8uIDUxLCBMYW5lICAzNSwgSmlodSBSZC4sCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLTAzICAgKGhleCkJCUNPTSZDIENPLiwgTFRECiswMDBGMDMgICAgIChiYXNlIDE2KQkJQ09NJkMgQ08uLCBMVEQKKwkJCQkyRiBXb29qaW4gQkxEIDE0NDUtMiBTZWNoby1Eb25nCisJCQkJU2VjaG8tR3UKKwkJCQlTRU9VTCAgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi0wNCAgIChoZXgpCQljaW0tdXNhIGluYworMDAwRjA0ICAgICAoYmFzZSAxNikJCWNpbS11c2EgaW5jCisJCQkJMTA4MTMgbncgMzB0aCBzdHJlZXQKKwkJCQltaWFtaSBmbG9yaWRhIDMzMTcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0wNSAgIChoZXgpCQkzQiBTWVNURU0gSU5DLgorMDAwRjA1ICAgICAoYmFzZSAxNikJCTNCIFNZU1RFTSBJTkMuCisJCQkJMTcyNywgU0FOS1lVSzItRE9ORywgQlVLLUdVCisJCQkJREFFR1UgIDcwMi04NDUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtMDYgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDBGMDYgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMEYtMDcgICAoaGV4KQkJTWFuZ3JvdmUgU3lzdGVtcywgSW5jLgorMDAwRjA3ICAgICAoYmFzZSAxNikJCU1hbmdyb3ZlIFN5c3RlbXMsIEluYy4KKwkJCQkxMCBGYWlyZmllbGQgQmx2ZC4KKwkJCQlXYWxsaW5nZm9yZCBDVCAwNjQ5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMDggICAoaGV4KQkJSW5kYWdvbiBPeQorMDAwRjA4ICAgICAoYmFzZSAxNikJCUluZGFnb24gT3kKKwkJCQlOdWlqYW1pZXN0ZW50aWUgNSBBCisJCQkJSGVsc2lua2kgLSAwMDQwMAorCQkJCUZJTkxBTkQKKworMDAtMEYtMDkgICAoaGV4KQkJUFJJVkFURQorMDAwRjA5ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wRi0wQSAgIChoZXgpCQlDbGVhciBFZGdlIE5ldHdvcmtzCiswMDBGMEEgICAgIChiYXNlIDE2KQkJQ2xlYXIgRWRnZSBOZXR3b3JrcworCQkJCTExMjUwIEVsIENhbWlubyBSZWFsCisJCQkJU2FuIERpZWdvIENBIDkyMTMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0wQiAgIChoZXgpCQlLZW50aW1hIFRlY2hub2xvZ2llcyBBQgorMDAwRjBCICAgICAoYmFzZSAxNikJCUtlbnRpbWEgVGVjaG5vbG9naWVzIEFCCisJCQkJQm94IDE3NAorCQkJCUthc3RhbmpldmFnZW4gMgorCQkJCVN0YWZmYW5zdG9ycCBTa2FuZSAyNDUgNDQKKwkJCQlTV0VERU4KKworMDAtMEYtMEMgICAoaGV4KQkJU1lOQ0hST05JQyBFTkdJTkVFUklORworMDAwRjBDICAgICAoYmFzZSAxNikJCVNZTkNIUk9OSUMgRU5HSU5FRVJJTkcKKwkJCQkyNSBDQVAgREFSTkVUQUwKKwkJCQlEQVJORVRBTCBGUkFOQ0UgNzYxNjAKKwkJCQlGUkFOQ0UKKworMDAtMEYtMEQgICAoaGV4KQkJSHVudCBFbGVjdHJvbmljIENvLiwgTHRkLgorMDAwRjBEICAgICAoYmFzZSAxNikJCUh1bnQgRWxlY3Ryb25pYyBDby4sIEx0ZC4KKwkJCQk2RkksIE5PLiA1Ny01OSwgSml1biBIIFNpZW4gUmQuLCBDaGkgVHUgRGlzdHJpY3QKKwkJCQlLZWVsdW5nIFRhaXdhbiAyMDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLTBFICAgKGhleCkJCVdhdmVTcGxpdHRlciBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEYwRSAgICAgKGJhc2UgMTYpCQlXYXZlU3BsaXR0ZXIgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMjI0OCBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMEYgICAoaGV4KQkJUmVhbCBJRCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwRjBGICAgICAoYmFzZSAxNikJCVJlYWwgSUQgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk5RiBIYW5taSBCL0QgMTkyLTE5CisJCQkJTm9uaHllb24tRG9uZworCQkJCUdhbmduYW0tR3UgU2VvdWwgMTM1LTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi0xMCAgIChoZXgpCQlSRE0gQ29ycG9yYXRpb24KKzAwMEYxMCAgICAgKGJhc2UgMTYpCQlSRE0gQ29ycG9yYXRpb24KKwkJCQk2MDggV2ViZXIgU3QuIE4KKwkJCQlXYXRlcmxvbyBPTiBOMlYgMUs0CisJCQkJQ0FOQURBCisKKzAwLTBGLTExICAgKGhleCkJCVByb2RyaXZlIEIuVi4KKzAwMEYxMSAgICAgKGJhc2UgMTYpCQlQcm9kcml2ZSBCLlYuCisJCQkJUC5PLiAyODAzMAorCQkJCUVpbmRob3ZlbiAgNTYwMiBKQQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBGLTEyICAgKGhleCkJCVBhbmFzb25pYyBFdXJvcGUgTHRkLgorMDAwRjEyICAgICAoYmFzZSAxNikJCVBhbmFzb25pYyBFdXJvcGUgTHRkLgorCQkJCUhlc2ViZXJnd2VnIDQ5LTUxCisJCQkJUGVpbmUgIEQtMzEyMjgKKwkJCQlHRVJNQU5ZCisKKzAwLTBGLTEzICAgKGhleCkJCU5pc2NhIGNvcnBvcmF0aW9uCiswMDBGMTMgICAgIChiYXNlIDE2KQkJTmlzY2EgY29ycG9yYXRpb24KKwkJCQk0MzAtMQorCQkJCUtvYmF5YXNoaQorCQkJCU1hc3Voby1DaG8gWWFtYW5hc2hpLUtlbiA0MDAtMDU5MworCQkJCUpBUEFOCisKKzAwLTBGLTE0ICAgKGhleCkJCU1pbmRyYXkgQ28uLCBMdGQuCiswMDBGMTQgICAgIChiYXNlIDE2KQkJTWluZHJheSBDby4sIEx0ZC4KKwkJCQlNaW5kcmF5IEJ1aWxkaW5nLCBLZWppIDEydGggUm9hZCBTb3V0aAorCQkJCUhpZ2gtdGVjaCBJbmR1c3RyaWFsIFBhcmssIE5hbnNoYW4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMEYtMTUgICAoaGV4KQkJS2phZXJ1bGZmMSBBL1MKKzAwMEYxNSAgICAgKGJhc2UgMTYpCQlLamFlcnVsZmYxIEEvUworCQkJCUMuRi4gVGlldGdlbnMgQm91bGV2YXJkIDE5CisJCQkJT2RlbnNlIFM/IEZ5biA1MjIwCisJCQkJREVOTUFSSworCiswMC0wRi0xNiAgIChoZXgpCQlKQVkgSE9XIFRFQ0hOT0xPR1kgQ08uLAorMDAwRjE2ICAgICAoYmFzZSAxNikJCUpBWSBIT1cgVEVDSE5PTE9HWSBDTy4sCisJCQkJTk8uNDg2LFNFQy4gMSwgV0FOIFNIT1UgUkQuLCBLVUVJCisJCQkJU0hBTiBIU0lBTkcsIFRBT1lVQU4gSFNJRU4KKwkJCQlUQU9ZVUFOIEhTSUVOICAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLTE3ICAgKGhleCkJCUluc3RhIEVsZWt0cm8gR21iSAorMDAwRjE3ICAgICAoYmFzZSAxNikJCUluc3RhIEVsZWt0cm8gR21iSAorCQkJCVRhbHN0cmFzc2UgMTA0CisJCQkJTHVlZGVuc2NoZWlkIE5SVyBELTU4NTE1CisJCQkJR0VSTUFOWQorCiswMC0wRi0xOCAgIChoZXgpCQlJbmR1c3RyaWFsIENvbnRyb2wgU3lzdGVtcworMDAwRjE4ICAgICAoYmFzZSAxNikJCUluZHVzdHJpYWwgQ29udHJvbCBTeXN0ZW1zCisJCQkJSG91dHNjaGVsZiAxCisJCQkJSGFyZGlueHZlbGQgWnVpZC1Ib2xsYW5kIE5MLTMzNzEgS0IKKwkJCQlORVRIRVJMQU5EUworCiswMC0wRi0xOSAgIChoZXgpCQlCb3N0b24gU2NpZW50aWZpYworMDAwRjE5ICAgICAoYmFzZSAxNikJCUJvc3RvbiBTY2llbnRpZmljCisJCQkJNDEwMCBIYW1saW5lIEF2ZSBOLgorCQkJCVN0LiBQYXVsIE1OIDU1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0xQSAgIChoZXgpCQlHYW1pbmcgU3VwcG9ydCBCLlYuCiswMDBGMUEgICAgIChiYXNlIDE2KQkJR2FtaW5nIFN1cHBvcnQgQi5WLgorCQkJCUluZHVzdHJpZSB3ZWcgMjkKKwkJCQlSb3R0ZXJkYW0gMzA0NCBBUworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBGLTFCICAgKGhleCkJCUVnbyBTeXN0ZW1zIEluYy4KKzAwMEYxQiAgICAgKGJhc2UgMTYpCQlFZ28gU3lzdGVtcyBJbmMuCisJCQkJMTIwNiBXb29saW0gZS1CaXogQ2VudGVyIElJCisJCQkJMTYgWWFuZ3B5b25nZG9uZzNnYSwgWW91bmdkdW5ncG8tZ3UKKwkJCQlTZW91bCAgMTUwLTgzNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi0xQyAgIChoZXgpCQlEaWdpdEFsbCBXb3JsZCBDby4sIEx0ZAorMDAwRjFDICAgICAoYmFzZSAxNikJCURpZ2l0QWxsIFdvcmxkIENvLiwgTHRkCisJCQkJU2VqaW4gQmxkIDJGLCA2ODkgaWx3b24yLWRvbmcsCisJCQkJZ2FuZ25hbS1ndSBTZW91bCAxMzUtOTQ2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTFEICAgKGhleCkJCUNvc21vIFRlY2hzIENvLiwgTHRkLgorMDAwRjFEICAgICAoYmFzZSAxNikJCUNvc21vIFRlY2hzIENvLiwgTHRkLgorCQkJCTItNi0xLCBNYXRzdWUKKwkJCQlBdHN1Z2ktc2hpIEthbmFnYXdhLWtlbiAyNDMtMDAwNQorCQkJCUpBUEFOCisKKzAwLTBGLTFFICAgKGhleCkJCUNoZW5nZHUgS1QgRWxlY3RyaWMgQ28ub2YgSGlnaCAmIE5ldyBUZWNobm9sb2d5CiswMDBGMUUgICAgIChiYXNlIDE2KQkJQ2hlbmdkdSBLVCBFbGVjdHJpYyBDby5vZiBIaWdoICYgTmV3IFRlY2hub2xvZ3kKKwkJCQlOby4yIEdhb3BlbmcgRG9uZyBSb2FkLEhpZ2ggJiBOZXcgRGV2ZWxvcG1lbnQgWm9uZSwKKwkJCQlOby45IFd1a2UgRWFzdCBOby4zIFJvYWQsV3Vob3UgWm9uZSwKKwkJCQlDaGVuZ2R1IFNpY2h1YW4gNjEwMDQxCisJCQkJQ0hJTkEKKworMDAtMEYtMUYgICAoaGV4KQkJV1cgUENCQSBUZXN0CiswMDBGMUYgICAgIChiYXNlIDE2KQkJV1cgUENCQSBUZXN0CisJCQkJT25lIERlbGwgV2F5CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMjAgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDBGMjAgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkgU291dGgKKwkJCQlNUzA3MDQwNQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTIxICAgKGhleCkJCVNjaWVudGlmaWMgQXRsYW50YSwgSW5jCiswMDBGMjEgICAgIChiYXNlIDE2KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBJbmMKKwkJCQk1MDMwIFN1Z2FybG9hZiBQYXJrd2F5CisJCQkJUE8gQm94IDQ2NTQ0NworCQkJCUxhd3JlbmNldmlsbGUgR2EgMzAwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTIyICAgKGhleCkJCUhlbGl1cywgSW5jLgorMDAwRjIyICAgICAoYmFzZSAxNikJCUhlbGl1cywgSW5jLgorCQkJCTMzMyBTb3V0aCA1MjAgV2VzdAorCQkJCVN1aXRlIDMzMAorCQkJCUxpbmRvbiBVVCA4NDA0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMjMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRjIzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMjQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRjI0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMjUgICAoaGV4KQkJQWltVmFsbGV5IEIuVi4KKzAwMEYyNSAgICAgKGJhc2UgMTYpCQlBaW1WYWxsZXkgQi5WLgorCQkJCVV0cmVjaHRzZXdlZyAzOCwKKwkJCQlIaWx2ZXJzdW0gTkggMTIyMyBUVgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBGLTI2ICAgKGhleCkJCVdvcmxkQWNjeHggIExMQworMDAwRjI2ICAgICAoYmFzZSAxNikJCVdvcmxkQWNjeHggIExMQworCQkJCTQwMzUgVGFtcGEgUmQuCisJCQkJU3VpdGUgNjAwMAorCQkJCU9sZHNtYXIgRkwgMzQ2NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTI3ICAgKGhleCkJCVRFQUwgRWxlY3Ryb25pY3MsIEluYy4KKzAwMEYyNyAgICAgKGJhc2UgMTYpCQlURUFMIEVsZWN0cm9uaWNzLCBJbmMuCisJCQkJMTAzNTAgU29ycmVudG8gVmFsbGV5IFJvYWQKKwkJCQlTYW4gRGllZ28gQ2FsaWZvcm5pYSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMjggICAoaGV4KQkJSXRyb25peCBDb3Jwb3JhdGlvbgorMDAwRjI4ICAgICAoYmFzZSAxNikJCUl0cm9uaXggQ29ycG9yYXRpb24KKwkJCQlTb3V0aCA4MDEgU3RldmVucyBTdHJlZXQKKwkJCQlTcG9rYW5lIFdBIDk5MjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0yOSAgIChoZXgpCQlBdWdtZW50aXggQ29ycG9yYXRpb24KKzAwMEYyOSAgICAgKGJhc2UgMTYpCQlBdWdtZW50aXggQ29ycG9yYXRpb24KKwkJCQk0MDMwIFcgQnJha2VyIExuCisJCQkJQnVpbGRpbmcgMiwgU3VpdGUgMTAwCisJCQkJQXVzdGluIFRleGFzIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0yQSAgIChoZXgpCQlDYWJsZXdhcmUgRWxlY3Ryb25pY3MKKzAwMEYyQSAgICAgKGJhc2UgMTYpCQlDYWJsZXdhcmUgRWxlY3Ryb25pY3MKKwkJCQkxNzAyIFdlc3Rlcm4gQXZlLgorCQkJCVN1aXRlIEcKKwkJCQlMYXMgVmVnYXMgTmV2YWRhIDg5MTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0yQiAgIChoZXgpCQlHUkVFTkJFTEwgU1lTVEVNUworMDAwRjJCICAgICAoYmFzZSAxNikJCUdSRUVOQkVMTCBTWVNURU1TCisJCQkJMlRIIEZsb29yLCBEb29uYW0gQmxkZywgMjM2LTExIE5vbmh5dW4tRG9uZywgS2FuZ25hbS1LdQorCQkJCVNlb3VsICAxMzUtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTJDICAgKGhleCkJCVVwbG9naXgsIEluYy4KKzAwMEYyQyAgICAgKGJhc2UgMTYpCQlVcGxvZ2l4LCBJbmMuCisJCQkJQmxkZyAxLCBTdWl0ZSAyMzUKKwkJCQk4NjAxIFJSIDIyMjIKKwkJCQlBdXN0aW4gVFggNzg3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTJEICAgKGhleCkJCUNIVU5HLUhTSU4gRUxFQ1RSSUMgJiBNQUNISU5FUlkgTUZHLkNPUlAuCiswMDBGMkQgICAgIChiYXNlIDE2KQkJQ0hVTkctSFNJTiBFTEVDVFJJQyAmIE1BQ0hJTkVSWSBNRkcuQ09SUC4KKwkJCQlOTy4gMjUsIFdlbi1UZSBSZC4sIExvLVNoYW4gVmlsbGFnZQorCQkJCUt3ZWkgU2hhbiBIc2lhbmcgVGFveXVhbiBIc2llbiAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLTJFICAgKGhleCkJCU1lZ2Fwb3dlciBJbnRlcm5hdGlvbmFsIENvcnAuCiswMDBGMkUgICAgIChiYXNlIDE2KQkJTWVnYXBvd2VyIEludGVybmF0aW9uYWwgQ29ycC4KKwkJCQlSbS4gNDAzLCBObyAyNCAsIFd1LUNodWFuIDJuZCBSZC4sCisJCQkJSHNpbi1DaHVhbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDI0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtMkYgICAoaGV4KQkJVy1MSU5YIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDBGMkYgICAgIChiYXNlIDE2KQkJVy1MSU5YIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJIDJGLEVMTEVOIEwuIFNLRUxUT04gQlVJTERJTkcsRklTSEVSIExBTkUgUk9BRAorCQkJCVRPUlRPTEEgIAorCQkJCVZJUkdJTiBJU0xBTkRTLCBCUklUSVNICisKKzAwLTBGLTMwICAgKGhleCkJCVJhemEgTWljcm9lbGVjdHJvbmljcyBJbmMKKzAwMEYzMCAgICAgKGJhc2UgMTYpCQlSYXphIE1pY3JvZWxlY3Ryb25pY3MgSW5jCisJCQkJMzA4MCBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQk1dGggRmxvb3IKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMzEgICAoaGV4KQkJQWxsaWVkIFZpc2lvbiBUZWNobm9sb2dpZXMgQ2FuYWRhIEluYworMDAwRjMxICAgICAoYmFzZSAxNikJCUFsbGllZCBWaXNpb24gVGVjaG5vbG9naWVzIENhbmFkYSBJbmMKKwkJCQkxMDEtMzc1MCBOb3J0aCBGcmFzZXIgV2F5CisJCQkJQnVybmFieSBCQyBWNUogNUU5CisJCQkJQ0FOQURBCisKKzAwLTBGLTMyICAgKGhleCkJCUx1VG9uZyBFbGVjdHJvbmljIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAwRjMyICAgICAoYmFzZSAxNikJCUx1VG9uZyBFbGVjdHJvbmljIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTEwNiwgTGlhbmdYaSBSb2FkCisJCQkJV3VYaSBKaWFuZ1N1IDIxNDA2MworCQkJCUNISU5BCisKKzAwLTBGLTMzICAgKGhleCkJCURVQUxpIEluYy4KKzAwMEYzMyAgICAgKGJhc2UgMTYpCQlEVUFMaSBJbmMuCisJCQkJIzUwNSBTYW1zdW5nIFRlY2hubyBQYXJrIEJsZGcgNDcxCisJCQkJV29uY2hlb24tZG9uZywgWW91bmd0b25nLWd1CisJCQkJU3V3b24gR3llb25nZ2ktZG8gNDQyLTgyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi0zNCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBGMzQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0zNSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBGMzUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0zNiAgIChoZXgpCQlBY2N1cmF0ZSBUZWNoaG5vbG9naWVzLCBJbmMuCiswMDBGMzYgICAgIChiYXNlIDE2KQkJQWNjdXJhdGUgVGVjaGhub2xvZ2llcywgSW5jLgorCQkJCTQ3MTk5IENhcnRpZXIgRHIuCisJCQkJV2l4b20gTWljaGlnYW4gNDgzOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTM3ICAgKGhleCkJCVhhbWJhbGEgSW5jb3Jwb3JhdGVkCiswMDBGMzcgICAgIChiYXNlIDE2KQkJWGFtYmFsYSBJbmNvcnBvcmF0ZWQKKwkJCQkyNjc0IE4uIDFzdCBTdHJlZXQKKwkJCQlTdWl0ZSAyMTUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMzggICAoaGV4KQkJTmV0c3RhcgorMDAwRjM4ICAgICAoYmFzZSAxNikJCU5ldHN0YXIKKwkJCQkzRixOby4zNDcsIFlhbmcta3VhbmcgU3QuLE5laS1IdSBEaXMuLAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi0zOSAgIChoZXgpCQlJUklTIFNFTlNPUlMKKzAwMEYzOSAgICAgKGJhc2UgMTYpCQlJUklTIFNFTlNPUlMKKwkJCQlaQSBsZXMgVWZlcm5ldHMKKwkJCQlUT1VMQVVEIEFyZGVjaGUgRjA3MTMwCisJCQkJRlJBTkNFCisKKzAwLTBGLTNBICAgKGhleCkJCUhJU0hBUlAKKzAwMEYzQSAgICAgKGJhc2UgMTYpCQlISVNIQVJQCisJCQkJTk8uNjczLENIQU5HIEhTSU5HIFJPQUQgUEFURSBDSVRZLFRBT1lVQU4sCisJCQkJVEFJUEVJICAzMzQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLTNCICAgKGhleCkJCUZ1amkgU3lzdGVtIE1hY2hpbmVzIENvLiwgTHRkLgorMDAwRjNCICAgICAoYmFzZSAxNikJCUZ1amkgU3lzdGVtIE1hY2hpbmVzIENvLiwgTHRkLgorCQkJCTUtOC0xMAorCQkJCUhpYmFyaWdhb2thCisJCQkJWmFtYS1TaGkgS2FuYWdhd2EtS2VuIDIyOC0wMDAzCisJCQkJSkFQQU4KKworMDAtMEYtM0MgICAoaGV4KQkJRW5kZWxlbyBMaW1pdGVkCiswMDBGM0MgICAgIChiYXNlIDE2KQkJRW5kZWxlbyBMaW1pdGVkCisJCQkJNzggQ2Fubm9uIFN0cmVldAorCQkJCUxvbmRvbiBFbmdsYW5kIEVDNE4gNk5RCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEYtM0QgICAoaGV4KQkJRC1MaW5rIENvcnBvcmF0aW9uCiswMDBGM0QgICAgIChiYXNlIDE2KQkJRC1MaW5rIENvcnBvcmF0aW9uCisJCQkJTm8uOCxMaS1zaGluZyBTZXZlbnRoIFJvYWQsU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmssSHNpbWNodSwKKwkJCQlIc2ltY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLTNFICAgKGhleCkJCUNhcmRpb05ldCwgSW5jCiswMDBGM0UgICAgIChiYXNlIDE2KQkJQ2FyZGlvTmV0LCBJbmMKKwkJCQkxMDEwIFNlY29uZCBBdmVudWUKKwkJCQlTdWl0ZSA3MDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTNGICAgKGhleCkJCUJpZyBCZWFyIE5ldHdvcmtzCiswMDBGM0YgICAgIChiYXNlIDE2KQkJQmlnIEJlYXIgTmV0d29ya3MKKwkJCQkzNDUgUG90cmVybyBBdmUKKwkJCQlTdW5ueSBWYWxlIENhbGlmb3JuaWEgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTQwICAgKGhleCkJCU9wdGljYWwgSW50ZXJuZXR3b3JraW5nIEZvcnVtCiswMDBGNDAgICAgIChiYXNlIDE2KQkJT3B0aWNhbCBJbnRlcm5ldHdvcmtpbmcgRm9ydW0KKwkJCQk0ODM3NyBGcmVtb250IEJsdmQKKwkJCQlTdGUgMTE3CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNDEgICAoaGV4KQkJWmlwaGVyIEx0ZAorMDAwRjQxICAgICAoYmFzZSAxNikJCVppcGhlciBMdGQKKwkJCQk3IEZhcmFkYXkgQnVpbGRpbmcKKwkJCQlOb3R0aW5naGFtIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgUGFyaworCQkJCU5vdHRpbmdoYW0gTm90dGluZ2hhbXNoaXJlIE5HNyAyUVAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRi00MiAgIChoZXgpCQlYYWx5byBTeXN0ZW1zCiswMDBGNDIgICAgIChiYXNlIDE2KQkJWGFseW8gU3lzdGVtcworCQkJCUdyZW5pZXIgOQorCQkJCUNvbW11Z255IFZEIDEyOTEKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRi00MyAgIChoZXgpCQlXYXNhYmkgU3lzdGVtcyBJbmMuCiswMDBGNDMgICAgIChiYXNlIDE2KQkJV2FzYWJpIFN5c3RlbXMgSW5jLgorCQkJCTUwMCBFLiBNYWluIFN0cmVldAorCQkJCVN1aXRlIDE1MjAKKwkJCQlOb3Jmb2xrIFZBIDIzNTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi00NCAgIChoZXgpCQlUaXZlbGxhIEluYy4KKzAwMEY0NCAgICAgKGJhc2UgMTYpCQlUaXZlbGxhIEluYy4KKwkJCQk3OTUgTWFpbiBTdHJlZXQKKwkJCQlIYWxmIE1vb24gQmF5IENBIDk0MDE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi00NSAgIChoZXgpCQlTdHJldGNoLCBJbmMuCiswMDBGNDUgICAgIChiYXNlIDE2KQkJU3RyZXRjaCwgSW5jLgorCQkJCTEzMjIgT3JsZWFucyBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNDYgICAoaGV4KQkJU0lOQVIgQUcKKzAwMEY0NiAgICAgKGJhc2UgMTYpCQlTSU5BUiBBRworCQkJCVN0YWR0d2VnIDI0CisJCQkJRmV1ZXJ0aGFsZW4gWkggQ0gtODI0NQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBGLTQ3ICAgKGhleCkJCVJPQk9YIFNQQQorMDAwRjQ3ICAgICAoYmFzZSAxNikJCVJPQk9YIFNQQQorCQkJCXZpYSBTZW1waW9uZSA4MgorCQkJCUNhc3RlbGxldHRvIFMuVGljaW5vIE5PIDI4MDUzCisJCQkJSVRBTFkKKworMDAtMEYtNDggICAoaGV4KQkJUG9seXBpeCBJbmMuCiswMDBGNDggICAgIChiYXNlIDE2KQkJUG9seXBpeCBJbmMuCisJCQkJMUZsLCBTdW5nZG8gVmVudHVyZSBUb3dlciwgMTY1LTIgU2Ftc3VuZy1Eb25nLCBLYW5nbmFtLUt1CisJCQkJU2VvdWwgIDEzNS04ODEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtNDkgICAoaGV4KQkJTm9ydGhvdmVyIFNvbHV0aW9ucyBMaW1pdGVkCiswMDBGNDkgICAgIChiYXNlIDE2KQkJTm9ydGhvdmVyIFNvbHV0aW9ucyBMaW1pdGVkCisJCQkJSGVhdGggQ290dGFnZQorCQkJCUlsbGluZ3RvbiBSb2FkCisJCQkJTGFybGluZyBOb3Jmb2xrIE5SMTYgMlJCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEYtNEEgICAoaGV4KQkJS3l1c2h1LWt5b2hhbiBjby4sbHRkCiswMDBGNEEgICAgIChiYXNlIDE2KQkJS3l1c2h1LWt5b2hhbiBjby4sbHRkCisJCQkJMi02LTMsS29nYW5lbWFjaGkKKwkJCQlLb2t1cmFraXRhLWt1CisJCQkJS2l0YWt5dXNodS1jaXR5IEZ1a3Vva2EgODAyLTAwNzEKKwkJCQlKQVBBTgorCiswMC0wRi00QiAgIChoZXgpCQlPcmFjbGUgQ29ycG9yYXRpb24KKzAwMEY0QiAgICAgKGJhc2UgMTYpCQlPcmFjbGUgQ29ycG9yYXRpb24KKwkJCQk5MDAgQ2hlbG1zZm9yZCBTdHJlZXQKKwkJCQlUb3dlciAxIEZsb29yIDIKKwkJCQlMb3dlbGwgTUEgMDE4NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTRDICAgKGhleCkJCUVsZXh0ZWNoIElOQworMDAwRjRDICAgICAoYmFzZSAxNikJCUVsZXh0ZWNoIElOQworCQkJCTU1NC0yLCBHYXNhbi1Eb25nLCBHdW1jaGVvbi1HdQorCQkJCVNlb3VsICAxNTMtMDIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTREICAgKGhleCkJCVRhbGtTd2l0Y2gKKzAwMEY0RCAgICAgKGJhc2UgMTYpCQlUYWxrU3dpdGNoCisJCQkJMTU0NSBDYXJsaW5nIEF2ZQorCQkJCVN1aXRlIDUxMAorCQkJCU90dGF3YSBPbnRhcmlvIEsxWiA4UDkKKwkJCQlDQU5BREEKKworMDAtMEYtNEUgICAoaGV4KQkJQ2VsbGluaworMDAwRjRFICAgICAoYmFzZSAxNikJCUNlbGxpbmsKKwkJCQlDYXRoZXJpbmFsYWFuIDM3CisJCQkJUm90c2VsYWFyIFZsYWFtcyBCcmFiYW50IEItMzExMAorCQkJCUJFTEdJVU0KKworMDAtMEYtNEYgICAoaGV4KQkJQ2FkbXVzIFRlY2hub2xvZ3kgTHRkCiswMDBGNEYgICAgIChiYXNlIDE2KQkJQ2FkbXVzIFRlY2hub2xvZ3kgTHRkCisJCQkJNjYgSGlsbHNpZGUgUmQKKwkJCQlHbGVuZmllbGQKKwkJCQlBdWNrbGFuZCAgMTMxMAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTBGLTUwICAgKGhleCkJCVN0cmVhbVNjYWxlIExpbWl0ZWQKKzAwMEY1MCAgICAgKGJhc2UgMTYpCQlTdHJlYW1TY2FsZSBMaW1pdGVkCisJCQkJVGhlIENvdXJ0LCBBbGV4YW5kcmEgUGFyaworCQkJCVByZXNjb3QgUm9hZAorCQkJCVN0IEhlbGVucyAgV0ExMCAzVFAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRi01MSAgIChoZXgpCQlBenVsIFN5c3RlbXMsIEluYy4KKzAwMEY1MSAgICAgKGJhc2UgMTYpCQlBenVsIFN5c3RlbXMsIEluYy4KKwkJCQkxNjAwIFBseW1vdXRoIFN0cmVldAorCQkJCU1vdW50YWluIFZpZXcgQ2FsaWZvcm5pYSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNTIgICAoaGV4KQkJWU9SSyBSZWZyaWdlcmF0aW9uLCBNYXJpbmUgJiBDb250cm9scworMDAwRjUyICAgICAoYmFzZSAxNikJCVlPUksgUmVmcmlnZXJhdGlvbiwgTWFyaW5lICYgQ29udHJvbHMKKwkJCQlKZW5zIEp1dWxzdmVqIDI4CisJCQkJVmlieSBKIERLIDgzNjIKKwkJCQlERU5NQVJLCisKKzAwLTBGLTUzICAgKGhleCkJCVNvbGFyZmxhcmUgQ29tbXVuaWNhdGlvbnMgSW5jCiswMDBGNTMgICAgIChiYXNlIDE2KQkJU29sYXJmbGFyZSBDb21tdW5pY2F0aW9ucyBJbmMKKwkJCQk5NTAxIEplcm9uaW1vIFJvYWQKKwkJCQlTdWl0ZSAyNTAKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTU0ICAgKGhleCkJCUVudHJlbG9naWMgQ29ycG9yYXRpb24KKzAwMEY1NCAgICAgKGJhc2UgMTYpCQlFbnRyZWxvZ2ljIENvcnBvcmF0aW9uCisJCQkJMzMgQm9zdG9uIFBvc3QgUmQuIFdlc3QuCisJCQkJU3VpdGUgMTYwCisJCQkJTWFybGJvcm91Z2ggTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTU1ICAgKGhleCkJCURhdGF3aXJlIENvbW11bmljYXRpb24gTmV0d29ya3MgSW5jLgorMDAwRjU1ICAgICAoYmFzZSAxNikJCURhdGF3aXJlIENvbW11bmljYXRpb24gTmV0d29ya3MgSW5jLgorCQkJCTEwIENhcmxzb24gQ291cnQsIFN1aXRlIDMwMAorCQkJCVRvcm9udG8gT250YXJpbyBNOVcgNkwyCisJCQkJQ0FOQURBCisKKzAwLTBGLTU2ICAgKGhleCkJCUNvbnRpbnV1bSBQaG90b25pY3MgSW5jCiswMDBGNTYgICAgIChiYXNlIDE2KQkJQ29udGludXVtIFBob3RvbmljcyBJbmMKKwkJCQk1IEZvcnR1bmUgRHJpdmUKKwkJCQlCaWxsZXJpY2EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTU3ICAgKGhleCkJCUNBQkxFTE9HSUMgQ28uLCBMdGQuCiswMDBGNTcgICAgIChiYXNlIDE2KQkJQ0FCTEVMT0dJQyBDby4sIEx0ZC4KKwkJCQkzRi4sIEh3YWluIEJsZGcuLCAxNTU5LTEyIFNlb2NobyAzLWRvbmcsCisJCQkJU2VjaG8tZ3UsCisJCQkJU2VvdWwgIDEzNy04NzMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtNTggICAoaGV4KQkJQWRkZXIgVGVjaG5vbG9neSBMaW1pdGVkCiswMDBGNTggICAgIChiYXNlIDE2KQkJQWRkZXIgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJVGVjaG5vbG9neSBIb3VzZQorCQkJCVRyYWZhbGdhciBXYXkKKwkJCQlCYXIgSGlsbCBDYW1icmlkZ2VzaGlyZSBDQjMgOFNRCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEYtNTkgICAoaGV4KQkJUGhvbmFrIENvbW11bmljYXRpb25zIEFHCiswMDBGNTkgICAgIChiYXNlIDE2KQkJUGhvbmFrIENvbW11bmljYXRpb25zIEFHCisJCQkJTGFuZ2dhc3NlIDE3CisJCQkJTXVydGVuIEZSIDMyODAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRi01QSAgIChoZXgpCQlQZXJpYml0IE5ldHdvcmtzCiswMDBGNUEgICAgIChiYXNlIDE2KQkJUGVyaWJpdCBOZXR3b3JrcworCQkJCTI4NTUgQm93ZXJzIEF2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi01QiAgIChoZXgpCQlEZWx0YSBJbmZvcm1hdGlvbiBTeXN0ZW1zLCBJbmMuCiswMDBGNUIgICAgIChiYXNlIDE2KQkJRGVsdGEgSW5mb3JtYXRpb24gU3lzdGVtcywgSW5jLgorCQkJCTMwMCBXZWxzaCBSb2FkLCBCbGRnLiAzCisJCQkJSG9yc2hhbSBQQSAxOTA0NC0yMjczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi01QyAgIChoZXgpCQlEYXkgT25lIERpZ2l0YWwgTWVkaWEgTGltaXRlZAorMDAwRjVDICAgICAoYmFzZSAxNikJCURheSBPbmUgRGlnaXRhbCBNZWRpYSBMaW1pdGVkCisJCQkJMTk3IEFyY2hlcnMgUmQKKwkJCQlHbGVuZmllbGQKKwkJCQlBdWNrbGFuZCBOb3J0aCBJc2xhbmQgMTMxMAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTBGLTVEICAgKGhleCkJCVBhY2tldEZyb250IEludGVybmF0aW9uYWwgQUIKKzAwMEY1RCAgICAgKGJhc2UgMTYpCQlQYWNrZXRGcm9udCBJbnRlcm5hdGlvbmFsIEFCCisJCQkJUE8tMTIxNworCQkJCUtpc3RhZ2FuZ2VuIDIsIElWCisJCQkJS2lzdGEgU3RvY2tob2xtIFNFLTE2NDI4CisJCQkJU1dFREVOCisKKzAwLTBGLTVFICAgKGhleCkJCVZlbworMDAwRjVFICAgICAoYmFzZSAxNikJCVZlbworCQkJCTkxMCBSaW5jb24gQ2lyY2xlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTVGICAgKGhleCkJCU5pY2V0eSBUZWNobm9sb2dpZXMgSW5jLiAoTlRTKQorMDAwRjVGICAgICAoYmFzZSAxNikJCU5pY2V0eSBUZWNobm9sb2dpZXMgSW5jLiAoTlRTKQorCQkJCTc5Mi0zIFRvbWlva2EgVG95b2RhLWNobworCQkJCUl3YXRhLWd1biBTaGl6dW9rYSA0MzgtMDgwMworCQkJCUpBUEFOCisKKzAwLTBGLTYwICAgKGhleCkJCUxpZmV0cm9uIENvLixMdGQKKzAwMEY2MCAgICAgKGJhc2UgMTYpCQlMaWZldHJvbiBDby4sTHRkCisJCQkJNi03LFRlbmppbm5pc2hpbWFjaGkKKwkJCQlLaXRhLUt1CisJCQkJT3Nha2EgT3Nha2EgUHJlZmVjdHVyZSA1MzAtMDA0NQorCQkJCUpBUEFOCisKKzAwLTBGLTYxICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAwRjYxICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNjIgICAoaGV4KQkJQWxjYXRlbCBCZWxsIFNwYWNlIE4uVi4KKzAwMEY2MiAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIEJlbGwgU3BhY2UgTi5WLgorCQkJCUJlcmtlbnJvZGVsZWkgMzMKKwkJCQlIb2Jva2VuIEFudHdlcnBlbiBCLTI2NjAKKwkJCQlCRUxHSVVNCisKKzAwLTBGLTYzICAgKGhleCkJCU9iemVydiBUZWNobm9sb2dpZXMKKzAwMEY2MyAgICAgKGJhc2UgMTYpCQlPYnplcnYgVGVjaG5vbG9naWVzCisJCQkJNDAwIEplYW4gTGVzYWdlCisJCQkJc3VpdGUgMjAxCisJCQkJUXVlYmVjIFFDIEcxSzhXMQorCQkJCUNBTkFEQQorCiswMC0wRi02NCAgIChoZXgpCQlEJlIgRWxlY3Ryb25pY2EgV2Vlc3AgQlYKKzAwMEY2NCAgICAgKGJhc2UgMTYpCQlEJlIgRWxlY3Ryb25pY2EgV2Vlc3AgQlYKKwkJCQlSaWpua2FkZSAxNUIKKwkJCQlXRUVTUCBOSCAxMzgyR1MKKwkJCQlORVRIRVJMQU5EUworCiswMC0wRi02NSAgIChoZXgpCQlpY3ViZSBDb3JwLgorMDAwRjY1ICAgICAoYmFzZSAxNikJCWljdWJlIENvcnAuCisJCQkJT2x5bXBpYSBDZW50ZXIgMkYsODI4LTEwLFllb2tzYW0tZG9uZyxLYW5nbmFtLWt1CisJCQkJU2VvdWwgU291dGggMTM1LTkzNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi02NiAgIChoZXgpCQlDaXNjby1MaW5rc3lzCiswMDBGNjYgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cworCQkJCTEyMSBUaGVvcnkgRHIuCisJCQkJSXJ2aW5lIENBIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi02NyAgIChoZXgpCQlXZXN0IEluc3RydW1lbnRzCiswMDBGNjcgICAgIChiYXNlIDE2KQkJV2VzdCBJbnN0cnVtZW50cworCQkJCVVuaXQgNSwgVGhlIEh5ZGUsIExvd2VyIEJldmVuZGVhbgorCQkJCUJyaWdodG9uIEVhc3QgU3Vzc2V4IEJOMiA0SlUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRi02OCAgIChoZXgpCQlWYXZpYyBOZXR3b3JrIFRlY2hub2xvZ3ksIEluYy4KKzAwMEY2OCAgICAgKGJhc2UgMTYpCQlWYXZpYyBOZXR3b3JrIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxc3QgRmxvb3IsIDE1IEppYW5nb25nIFJvYWQKKwkJCQlUaWFuaGUgIFMmVCBab25lCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2NjUKKwkJCQlDSElOQQorCiswMC0wRi02OSAgIChoZXgpCQlTRVcgRXVyb2RyaXZlIEdtYkggJiBDby4gS0cKKzAwMEY2OSAgICAgKGJhc2UgMTYpCQlTRVcgRXVyb2RyaXZlIEdtYkggJiBDby4gS0cKKwkJCQlFcm5zdCBCbGlja2xlIFN0ci4gNDIKKwkJCQlCcnVjaHNhbCAgNzY2NDYKKwkJCQlHRVJNQU5ZCisKKzAwLTBGLTZBICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwRjZBICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTBGLTZCICAgKGhleCkJCUdhdGVXYXJlIENvbW11bmljYXRpb25zIEdtYkgKKzAwMEY2QiAgICAgKGJhc2UgMTYpCQlHYXRlV2FyZSBDb21tdW5pY2F0aW9ucyBHbWJICisJCQkJQWxsZXJzYmVyZ2VyIFN0cmFzc2UgMTg1IEYKKwkJCQlOdWVybmJlcmcgQmF2YXJpYSBELTkwNDYxCisJCQkJR0VSTUFOWQorCiswMC0wRi02QyAgIChoZXgpCQlBRERJLURBVEEgR21iSAorMDAwRjZDICAgICAoYmFzZSAxNikJCUFEREktREFUQSBHbWJICisJCQkJRGllc2Vsc3RyYXNzZSAzCisJCQkJT1RURVJTV0VJRVIgQlcgNzc4MzMKKwkJCQlHRVJNQU5ZCisKKzAwLTBGLTZEICAgKGhleCkJCU1pZGFzIEVuZ2luZWVyaW5nCiswMDBGNkQgICAgIChiYXNlIDE2KQkJTWlkYXMgRW5naW5lZXJpbmcKKwkJCQlBY2UgVGVjaG5vLVRvd2VyIFYgIzkwNiAxOTctMjIKKwkJCQlLdXJvLURvbmcsIEt1cm8tR3UKKwkJCQlTZW91bCAgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi02RSAgIChoZXgpCQlCQm94CiswMDBGNkUgICAgIChiYXNlIDE2KQkJQkJveAorCQkJCUVwaXRvayB1LiAyLTQKKwkJCQlCdWRhb3JzICBILTIwNDAKKwkJCQlIVU5HQVJZCisKKzAwLTBGLTZGICAgKGhleCkJCUZUQSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcworMDAwRjZGICAgICAoYmFzZSAxNikJCUZUQSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcworCQkJCTExLCBydWUgUGllcnJlIFdlcm5lcgorCQkJCUJldHpkb3JmICBMLTY4MzIKKwkJCQlMVVhFTUJPVVJHCisKKzAwLTBGLTcwICAgKGhleCkJCVdpbnRlYyBJbmR1c3RyaWVzLCBpbmMuCiswMDBGNzAgICAgIChiYXNlIDE2KQkJV2ludGVjIEluZHVzdHJpZXMsIGluYy4KKwkJCQk2NzUgU3ljYW1vcmUgRHJpdmUKKwkJCQlNaWxwaXRhcywgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTcxICAgKGhleCkJCVNhbm1laSBFbGVjdHJvbmljcyBDby4sTHRkCiswMDBGNzEgICAgIChiYXNlIDE2KQkJU2FubWVpIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkyLTItMSxTZWlrYWksU2hpbWl6dQorCQkJCVNoaXp1b2thICA0MjQtMDkyNAorCQkJCUpBUEFOCisKKzAwLTBGLTcyICAgKGhleCkJCVNhbmRidXJzdAorMDAwRjcyICAgICAoYmFzZSAxNikJCVNhbmRidXJzdAorCQkJCTYwMCBGZWRlcmFsIFN0CisJCQkJMm5kIEZsb29yCisJCQkJQW5kb3ZlciBNQSAwMTgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNzMgICAoaGV4KQkJUlMgQXV0b21hdGlvbiBDby4sIEx0ZAorMDAwRjczICAgICAoYmFzZSAxNikJCVJTIEF1dG9tYXRpb24gQ28uLCBMdGQKKwkJCQk0NDctNiwgR29uZ3NlLURvbmcgLCBHaWhldW5nLUd1CisJCQkJWW91bmdpbi1DaXR5IEd5ZW9uZ2dpLURvIDQ0OS05MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtNzQgICAoaGV4KQkJUWFtY29tIFRlY2hub2xvZ3kgQUIKKzAwMEY3NCAgICAgKGJhc2UgMTYpCQlRYW1jb20gVGVjaG5vbG9neSBBQgorCQkJCUdydXZnYXRhbiA4CisJCQkJU0UtNDIxIDMwCisJCQkJVmFzdHJhIEZyb2x1bmRhIAorCQkJCVNXRURFTgorCiswMC0wRi03NSAgIChoZXgpCQlGaXJzdCBTaWxpY29uIFNvbHV0aW9ucworMDAwRjc1ICAgICAoYmFzZSAxNikJCUZpcnN0IFNpbGljb24gU29sdXRpb25zCisJCQkJMTM5MzkgRm9yZXN0IExhbmUKKwkJCQlMYXJrc3B1ciBDTyA4MDExOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNzYgICAoaGV4KQkJRGlnaXRhbCBLZXlzdG9uZSwgSW5jLgorMDAwRjc2ICAgICAoYmFzZSAxNikJCURpZ2l0YWwgS2V5c3RvbmUsIEluYy4KKwkJCQkxOTc1IEVsIENhbWlubyBSZWFsCisJCQkJIzMwNgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTc3ICAgKGhleCkJCURFTlRVTSBDTy4sTFRECiswMDBGNzcgICAgIChiYXNlIDE2KQkJREVOVFVNIENPLixMVEQKKwkJCQlXb29reXVuZyBCL0QgNjAyICM2NzgtNgorCQkJCURldW5nY2hvbi1Eb25nICxLYW5nc2VvLUd1CisJCQkJU2VvdWwgIDE1Ny0wMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtNzggICAoaGV4KQkJRGF0YWNhcCBTeXN0ZW1zIEluYworMDAwRjc4ICAgICAoYmFzZSAxNikJCURhdGFjYXAgU3lzdGVtcyBJbmMKKwkJCQkxMDAgTmV3IEJyaXRhaW4gQmx2ZAorCQkJCUNoYWxmb250IFBBIDE4OTE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi03OSAgIChoZXgpCQlCbHVldG9vdGggSW50ZXJlc3QgR3JvdXAgSW5jLgorMDAwRjc5ICAgICAoYmFzZSAxNikJCUJsdWV0b290aCBJbnRlcmVzdCBHcm91cCBJbmMuCisJCQkJNEYsIE5vLiA5LCBBbGxleSAyLCBMYW5lIDM1LCBKaS1IdSBSZC4KKwkJCQlOZWlodSBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi03QSAgIChoZXgpCQlCZWlKaW5nIE51UVggVGVjaG5vbG9neSBDTy4sTFRECiswMDBGN0EgICAgIChiYXNlIDE2KQkJQmVpSmluZyBOdVFYIFRlY2hub2xvZ3kgQ08uLExURAorCQkJCVJvb20gODEyLDhGIFRvd2VyIEIsWWluV2FuZyBDZW50ZXIsIE5vLjExMyxaaGkgQ2h1biBSb2FkLAorCQkJCUhhaURpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODYKKwkJCQlDSElOQQorCiswMC0wRi03QiAgIChoZXgpCQlBcmNlIFNpc3RlbWFzLCBTLkEuCiswMDBGN0IgICAgIChiYXNlIDE2KQkJQXJjZSBTaXN0ZW1hcywgUy5BLgorCQkJCUMvUGFkcmUgTGFycmFtZW5kaSwgMyAtIDI/CisJCQkJQmlsYmFvIFZpemNheWEgNDgwMTIKKwkJCQlTUEFJTgorCiswMC0wRi03QyAgIChoZXgpCQlBQ1RpIENvcnBvcmF0aW9uCiswMDBGN0MgICAgIChiYXNlIDE2KQkJQUNUaSBDb3Jwb3JhdGlvbgorCQkJCTdGLiwgTm8uIDEsIEFsbGV5IDIwLCBMYW5lIDQwNywgU2VjLiAyLCBUaWRpbmcgQmx2ZC4sCisJCQkJTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtN0QgICAoaGV4KQkJWGlycnVzCiswMDBGN0QgICAgIChiYXNlIDE2KQkJWGlycnVzCisJCQkJMzEwIE5vcnRoIFdlc3RsYWtlIEJsdmQuCisJCQkJV2VzdGxha2UgVmlsbGFnZSBDQSA5MTM2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtN0UgICAoaGV4KQkJQWJsZXJleCBFbGVjdHJvbmljcyBDby4sIExURAorMDAwRjdFICAgICAoYmFzZSAxNikJCUFibGVyZXggRWxlY3Ryb25pY3MgQ28uLCBMVEQKKwkJCQkxRiwgTm8uMyBMYW5lIDcsIFBhb2thbyBSZC4KKwkJCQlIc2ludGllbiBUYWlwZWkgSHNpZW4gMjMxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLTdGICAgKGhleCkJCVVCU1RPUkFHRSBDby4sTHRkLgorMDAwRjdGICAgICAoYmFzZSAxNikJCVVCU1RPUkFHRSBDby4sTHRkLgorCQkJCSNBLTEwOCwgU2VvdWxfU2FudXBfSml3b25fQ2VudGVyCisJCQkJNjQ3LTI2LCBEZXVuZ2Nob25nLWRvbmcKKwkJCQlHYW5zZW8tZ3UgU2VvdWwgMTU3LTg0MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi04MCAgIChoZXgpCQlUcmluaXR5IFNlY3VyaXR5IFN5c3RlbXMsSW5jLgorMDAwRjgwICAgICAoYmFzZSAxNikJCVRyaW5pdHkgU2VjdXJpdHkgU3lzdGVtcyxJbmMuCisJCQkJQWx0ZSBCdWlsZGluZyBIaWdhc2hpIEthbmRhIDhGCisJCQkJMS03LTggSGlnYXNoaWthbmRhCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtMDAzMQorCQkJCUpBUEFOCisKKzAwLTBGLTgxICAgKGhleCkJCVNlY3VyZSBJbmZvIEltYWdpbmcKKzAwMEY4MSAgICAgKGJhc2UgMTYpCQlTZWN1cmUgSW5mbyBJbWFnaW5nCisJCQkJUE8gQm94IDIxODcKKwkJCQlQYWxtIFNwcmluZ3MgQ0EgOTIyNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTgyICAgKGhleCkJCU1vcnRhcmEgSW5zdHJ1bWVudCwgSW5jLgorMDAwRjgyICAgICAoYmFzZSAxNikJCU1vcnRhcmEgSW5zdHJ1bWVudCwgSW5jLgorCQkJCTc4NjUgTi4gODZ0aCBTdC4KKwkJCQlNaWx3YXVrZWUgV0kgNTMyMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTgzICAgKGhleCkJCUJyYWluaXVtIFRlY2hub2xvZ2llcyBJbmMuCiswMDBGODMgICAgIChiYXNlIDE2KQkJQnJhaW5pdW0gVGVjaG5vbG9naWVzIEluYy4KKwkJCQkjMjAxIC0gMTE0OTEgS2luZ3N0b24gU3RyZWV0CisJCQkJTWFwbGUgUmlkZ2UgQkMgVjJYIDBZNgorCQkJCUNBTkFEQQorCiswMC0wRi04NCAgIChoZXgpCQlBc3R1dGUgTmV0d29ya3MsIEluYy4KKzAwMEY4NCAgICAgKGJhc2UgMTYpCQlBc3R1dGUgTmV0d29ya3MsIEluYy4KKwkJCQkxNjUxNiBWaWEgRXNwcmlsbG8KKwkJCQkjMjAwCisJCQkJU2FuIERpZWdvIENBIDkyMTI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi04NSAgIChoZXgpCQlBRERPLUphcGFuIENvcnBvcmF0aW9uCiswMDBGODUgICAgIChiYXNlIDE2KQkJQURETy1KYXBhbiBDb3Jwb3JhdGlvbgorCQkJCVNoaW4gRWRvYmFzaGkgQmxkZy4gNEYsIDgtNiBOaWhvbWJhc2hpIEtvYnVuYS1jaG8KKwkJCQlDaHVvLWt1IFRva3lvIDEwMy0wMDI0CisJCQkJSkFQQU4KKworMDAtMEYtODYgICAoaGV4KQkJUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQKKzAwMEY4NiAgICAgKGJhc2UgMTYpCQlSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZAorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCiswMC0wRi04NyAgIChoZXgpCQlNYXhjZXNzIEludGVybmF0aW9uYWwKKzAwMEY4NyAgICAgKGJhc2UgMTYpCQlNYXhjZXNzIEludGVybmF0aW9uYWwKKwkJCQkyMjIgVy4gTWVtb3JpYWwgUm9hZAorCQkJCU9rbGFob21hIENpdHkgT0sgNzMxMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTg4ICAgKGhleCkJCUFNRVRFSywgSW5jLgorMDAwRjg4ICAgICAoYmFzZSAxNikJCUFNRVRFSywgSW5jLgorCQkJCTE1MCBGcmVlcG9ydCBSb2FkCisJCQkJUGl0dHNidXJnaCBQQSAxNTIzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtODkgICAoaGV4KQkJV2lubmVydGVjIFN5c3RlbSBDby4sIEx0ZC4KKzAwMEY4OSAgICAgKGJhc2UgMTYpCQlXaW5uZXJ0ZWMgU3lzdGVtIENvLiwgTHRkLgorCQkJCSM0MDUsIDR0aCBGbG9vci4gQWNlLVRlY2hubyBUb3dlciBJSUksIDE5Ny00OCwKKwkJCQlLdXJvIDMtRG9uZywgS3Vyby1LdS4KKwkJCQlTZW91bCAgMTUyLTc2NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi04QSAgIChoZXgpCQlXaWRlVmlldworMDAwRjhBICAgICAoYmFzZSAxNikJCVdpZGVWaWV3CisJCQkJRi4gNiwgTm8uIDgsIFd1LWNodWFuIDIgUmQsIEhzaW4tQ2h1YW5nIENpdHkKKwkJCQlUYWlwZWkgQ291bnRyeSAgMjQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi04QiAgIChoZXgpCQlPcmlvbiBNdWx0aVN5c3RlbXMgSW5jCiswMDBGOEIgICAgIChiYXNlIDE2KQkJT3Jpb24gTXVsdGlTeXN0ZW1zIEluYworCQkJCTMzNzUgU2NvdHQgQmx2ZCBTdWl0ZSAzMzgKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtOEMgICAoaGV4KQkJR2lnYXdhdmV0ZWNoIFB0ZSBMdGQKKzAwMEY4QyAgICAgKGJhc2UgMTYpCQlHaWdhd2F2ZXRlY2ggUHRlIEx0ZAorCQkJCTEgSmFsYW4gS2lsYW5nIFRpbW9yCisJCQkJIzA3LTAyIFBhY2lmaWMgVGVjaCBDZW50cmUKKwkJCQkxNTkzMDMKKwkJCQlTSU5HQVBPUkUKKworMDAtMEYtOEQgICAoaGV4KQkJRkFTVCBUVi1TZXJ2ZXIgQUcKKzAwMEY4RCAgICAgKGJhc2UgMTYpCQlGQVNUIFRWLVNlcnZlciBBRworCQkJCVJ1ZWRlc2hlaW1lcnN0ci4gMTEtMTMKKwkJCQlNdW5pY2ggR2VybWFueSA4MDY4NgorCQkJCUdFUk1BTlkKKworMDAtMEYtOEUgICAoaGV4KQkJRE9OR1lBTkcgVEVMRUNPTSBDTy4sTFRELgorMDAwRjhFICAgICAoYmFzZSAxNikJCURPTkdZQU5HIFRFTEVDT00gQ08uLExURC4KKwkJCQk2NDItNywgREVVTkdDSE9OLURPTkcsIEtBTkdTRU8tR1UKKwkJCQlTRU9VTCBLQU5HU0UtR1UgMTU3LTg0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi04RiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBGOEYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi05MCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBGOTAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi05MSAgIChoZXgpCQlBZXJvdGVsZWNvbSBDby4sTHRkLgorMDAwRjkxICAgICAoYmFzZSAxNikJCUFlcm90ZWxlY29tIENvLixMdGQuCisJCQkJMTk1LTU4IEFueWFuZyA3IERvbmcKKwkJCQlBbnlhbmcgS3l1bmdnaSA0MzAtODE3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTkyICAgKGhleCkJCU1pY3JvaGFyZCBTeXN0ZW1zIEluYy4KKzAwMEY5MiAgICAgKGJhc2UgMTYpCQlNaWNyb2hhcmQgU3lzdGVtcyBJbmMuCisJCQkJIzE3LCAyMTM1LTMyQXZlIE5FCisJCQkJQ2FsZ2FyeSBBQiBUMkU2WjMKKwkJCQlDQU5BREEKKworMDAtMEYtOTMgICAoaGV4KQkJTGFuZGlzK0d5ciBMdGQuCiswMDBGOTMgICAgIChiYXNlIDE2KQkJTGFuZGlzK0d5ciBMdGQuCisJCQkJRmVsZHN0cmFzc2UgMQorCQkJCVp1ZyAgQ0gtNjMwMQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBGLTk0ICAgKGhleCkJCUdlbmV4aXMKKzAwMEY5NCAgICAgKGJhc2UgMTYpCQlHZW5leGlzCisJCQkJTG9kZXdpamtzdHJhYXQgMUEKKwkJCQlFaW5kaG92ZW4gIDU2NDZIUAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBGLTk1ICAgKGhleCkJCUVMRUNPTSBDby4sTFREIExhbmVlZCBEaXZpc2lvbgorMDAwRjk1ICAgICAoYmFzZSAxNikJCUVMRUNPTSBDby4sTFREIExhbmVlZCBEaXZpc2lvbgorCQkJCThGIEthbmRhLU11cm9tYWNoaSBCbGRnLgorCQkJCTEgS2FuZGEtT2dhd2FtYWNoaSAxIENob21lLAorCQkJCUNoaXlvZGEtS3UsIFRva3lvLiAgMTAxLTAwNTIKKwkJCQlKQVBBTgorCiswMC0wRi05NiAgIChoZXgpCQlUZWxjbyBTeXN0ZW1zLCBJbmMuIAorMDAwRjk2ICAgICAoYmFzZSAxNikJCVRlbGNvIFN5c3RlbXMsIEluYy4gCisJCQkJMTUgQmVya3NoaXJlIFJvYWQKKwkJCQlNYW5zZmllbGQgTUEgMDIwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTk3ICAgKGhleCkJCUF2YW5leCBDb3Jwb3JhdGlvbgorMDAwRjk3ICAgICAoYmFzZSAxNikJCUF2YW5leCBDb3Jwb3JhdGlvbgorCQkJCTQwOTE5IEVuY3ljbG9wZWRpYSBDaXJjbGUKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi05OCAgIChoZXgpCQlBdmFtYXggQ28uIEx0ZC4KKzAwMEY5OCAgICAgKGJhc2UgMTYpCQlBdmFtYXggQ28uIEx0ZC4KKwkJCQlCMSwgTm8uIDUxLCBTZWN0aW9uIDIsIENob25nUWluZyBTLiBSZC4KKwkJCQlUYWlwZWkgIDEwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtOTkgICAoaGV4KQkJQVBBQyBvcHRvIEVsZWN0cm9uaWNzIEluYy4KKzAwMEY5OSAgICAgKGJhc2UgMTYpCQlBUEFDIG9wdG8gRWxlY3Ryb25pY3MgSW5jLgorCQkJCTMgVHp1IENoaWFuZyBSb2FkLCBIc2luY2h1IEluZHVzdHJpYWwgUGFyaworCQkJCUh1a293LCBIc2luY2h1IEhzaWVuICAzMDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLTlBICAgKGhleCkJCVN5bmNocm9ueSwgSW5jLgorMDAwRjlBICAgICAoYmFzZSAxNikJCVN5bmNocm9ueSwgSW5jLgorCQkJCTY0MTAgQ29tbW9ud2VhbHRoIERyaXZlCisJCQkJUm9hbm9rZSBWQSAyNDAxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtOUIgICAoaGV4KQkJUm9zcyBWaWRlbyBMaW1pdGVkCiswMDBGOUIgICAgIChiYXNlIDE2KQkJUm9zcyBWaWRlbyBMaW1pdGVkCisJCQkJOCBKb2huIFN0cmVldAorCQkJCVBPIEJveCAyMjAKKwkJCQlJcm9xdW9pcyBPbnRhcmlvIEswRSAxSzAKKwkJCQlDQU5BREEKKworMDAtMEYtOUMgICAoaGV4KQkJUGFuZHVpdCBDb3JwCiswMDBGOUMgICAgIChiYXNlIDE2KQkJUGFuZHVpdCBDb3JwCisJCQkJMTczMDEgUmlkZ2VsYW5kIEF2ZQorCQkJCVRpbmxleSBQYXJrIElsbGlub2lzIDYwNDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi05RCAgIChoZXgpCQlEaXNwbGF5TGluayAoVUspIEx0ZAorMDAwRjlEICAgICAoYmFzZSAxNikJCURpc3BsYXlMaW5rIChVSykgTHRkCisJCQkJTW91bnQgUGxlYXNhbnQgSG91c2UKKwkJCQlNb3VudCBQbGVhc2FudAorCQkJCUNhbWJyaWRnZSBDYW1icmlkZ2VzaGlyZSBDQjMgMFJOCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEYtOUUgICAoaGV4KQkJTXVycmVsZWt0cm9uaWsgR21iSAorMDAwRjlFICAgICAoYmFzZSAxNikJCU11cnJlbGVrdHJvbmlrIEdtYkgKKwkJCQlGYWxrZW5zdHJhc3NlIDMKKwkJCQlPcHBlbndlaWxlciBCYWRlbiBXdXJ0dGVtYmVyZyA3MTU3MAorCQkJCUdFUk1BTlkKKworMDAtMEYtOUYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMEY5RiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUEwICAgKGhleCkJCUNBTk9OIEtPUkVBIEJVU0lORVNTIFNPTFVUSU9OUyBJTkMuCiswMDBGQTAgICAgIChiYXNlIDE2KQkJQ0FOT04gS09SRUEgQlVTSU5FU1MgU09MVVRJT05TIElOQy4KKwkJCQk3MzYgV29uc2ktRG9uZworCQkJCUFuc2FuLXNpIEt5dW5nZ2ktZG8gNDI1LTA5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi1BMSAgIChoZXgpCQlHaWdhYml0IFN5c3RlbXMgSW5jLgorMDAwRkExICAgICAoYmFzZSAxNikJCUdpZ2FiaXQgU3lzdGVtcyBJbmMuCisJCQkJRnV5b2ggVmlkZW8gQnVpbGRpbmcgM0YKKwkJCQk3LTI1IEhpZ2FzaGktS2lib3VnYW9rYSwgQXNhaGktS3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyNDEtMDgyNgorCQkJCUpBUEFOCisKKzAwLTBGLUEyICAgKGhleCkJCURpZ2l0YWwgUGF0aCBOZXR3b3JrcworMDAwRkEyICAgICAoYmFzZSAxNikJCURpZ2l0YWwgUGF0aCBOZXR3b3JrcworCQkJCTI3NSBBaXJwYXJrIEJsdmQKKwkJCQlTdWl0ZSA1MDAKKwkJCQlDaGljbyBDQSA5NTk3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtQTMgICAoaGV4KQkJQWxwaGEgTmV0d29ya3MgSW5jLgorMDAwRkEzICAgICAoYmFzZSAxNikJCUFscGhhIE5ldHdvcmtzIEluYy4KKwkJCQlOby44IExpLXNoaW5nIDd0aCBSZC4sU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLUE0ICAgKGhleCkJCVNwcmVjaGVyIEF1dG9tYXRpb24gR21iSAorMDAwRkE0ICAgICAoYmFzZSAxNikJCVNwcmVjaGVyIEF1dG9tYXRpb24gR21iSAorCQkJCUZyYW5ja3N0cmFzc2UgNTEKKwkJCQlMaW56IE9iZXJvc3RlcnJlaWNoIDQwMTgKKwkJCQlBVVNUUklBCisKKzAwLTBGLUE1ICAgKGhleCkJCUJXQSBUZWNobm9sb2d5IEdtYkgKKzAwMEZBNSAgICAgKGJhc2UgMTYpCQlCV0EgVGVjaG5vbG9neSBHbWJICisJCQkJSm9oYW5uLUtyYW5lLVdlZyAyMQorCQkJCU11ZW5zdGVyICA0ODE0OQorCQkJCUdFUk1BTlkKKworMDAtMEYtQTYgICAoaGV4KQkJUzIgU2VjdXJpdHkgQ29ycG9yYXRpb24KKzAwMEZBNiAgICAgKGJhc2UgMTYpCQlTMiBTZWN1cml0eSBDb3Jwb3JhdGlvbgorCQkJCTYgQWJib3R0IFJvYWQKKwkJCQlXZWxsZXNsZXkgTUEgMDI0ODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUE3ICAgKGhleCkJCVJhcHRvciBOZXR3b3JrcyBUZWNobm9sb2d5CiswMDBGQTcgICAgIChiYXNlIDE2KQkJUmFwdG9yIE5ldHdvcmtzIFRlY2hub2xvZ3kKKwkJCQk2NSBFbnRlcnByaXNlIFJvYWQKKwkJCQlBbGlzbyBWaWVqbyBDQSA5MjY1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtQTggICAoaGV4KQkJUGhvdG9tZXRyaWNzLCBJbmMuCiswMDBGQTggICAgIChiYXNlIDE2KQkJUGhvdG9tZXRyaWNzLCBJbmMuCisJCQkJMzQ0MCBFIEJyaXRhbm5pYSBEcml2ZQorCQkJCVR1Y3NvbiBBWiA4NTcwNi01MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1BOSAgIChoZXgpCQlQQyBGYWJyaWsKKzAwMEZBOSAgICAgKGJhc2UgMTYpCQlQQyBGYWJyaWsKKwkJCQlCdWNoZW5zdHJhc3NlIDEzLTE1CisJCQkJRHJlc2RlbiBTYWNoc2VuIDAxMDk3CisJCQkJR0VSTUFOWQorCiswMC0wRi1BQSAgIChoZXgpCQlOZXh1cyBUZWNobm9sb2dpZXMKKzAwMEZBQSAgICAgKGJhc2UgMTYpCQlOZXh1cyBUZWNobm9sb2dpZXMKKwkJCQkxMCBOYXRpb25hbCBBdmUuCisJCQkJRmxldGNoZXIgTkMgMjg3MzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUFCICAgKGhleCkJCUt5dXNodSBFbGVjdHJvbmljcyBTeXN0ZW1zIEluYy4KKzAwMEZBQiAgICAgKGJhc2UgMTYpCQlLeXVzaHUgRWxlY3Ryb25pY3MgU3lzdGVtcyBJbmMuCisJCQkJMy0zLCBLb25nbyAyLUNob21lLCBZYWhhdGFuaXNoaSBXYXJkCisJCQkJS2l0YWt5dXNodSBDaXR5IEZ1a3Vva2EgUHJlZi4gODA3LTEyNjMKKwkJCQlKQVBBTgorCiswMC0wRi1BQyAgIChoZXgpCQlJRUVFIDgwMi4xMQorMDAwRkFDICAgICAoYmFzZSAxNikJCUlFRUUgODAyLjExCisJCQkJNDEyNSBIaWdobGFuZGVyIFBhcmt3YXkKKwkJCQlSaWNoZmllbGQgT2hpbyA0NDI4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtQUQgICAoaGV4KQkJRk1OIGNvbW11bmljYXRpb25zIEdtYkgKKzAwMEZBRCAgICAgKGJhc2UgMTYpCQlGTU4gY29tbXVuaWNhdGlvbnMgR21iSAorCQkJCUdyaW1tZWxhbGxlZSA0CisJCQkJTm9yZGhhdXNlbiBUaHVyaW5nZW4gOTk3MzQKKwkJCQlHRVJNQU5ZCisKKzAwLTBGLUFFICAgKGhleCkJCUUyTyBDb21tdW5pY2F0aW9ucworMDAwRkFFICAgICAoYmFzZSAxNikJCUUyTyBDb21tdW5pY2F0aW9ucworCQkJCTUyIFNlcmFuZ29vbiBOb3J0aCBBdmUgNAorCQkJCSMwNi0wMiBFdmVyIFRlY2ggQnVpbGRpbmcKKwkJCQk1NTU4NTMKKwkJCQlTSU5HQVBPUkUKKworMDAtMEYtQUYgICAoaGV4KQkJRGlhbG9nIEluYy4KKzAwMEZBRiAgICAgKGJhc2UgMTYpCQlEaWFsb2cgSW5jLgorCQkJCTEtNDctOQorCQkJCUhpZ2FzaGlpa2VidWt1cm8KKwkJCQlUb3NoaW1hLWt1IFRva3lvIDE3MDAwMTMKKwkJCQlKQVBBTgorCiswMC0wRi1CMCAgIChoZXgpCQlDb21wYWwgRWxlY3Ryb25pY3MsSU5DLgorMDAwRkIwICAgICAoYmFzZSAxNikJCUNvbXBhbCBFbGVjdHJvbmljcyxJTkMuCisJCQkJNTgxIEp1aWt1YW5nIFJvYWQsTmVpaHUsCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLUIxICAgKGhleCkJCUNvZ25pbyBJbmMuCiswMDBGQjEgICAgIChiYXNlIDE2KQkJQ29nbmlvIEluYy4KKwkJCQkxMDEgT3JjaGFyZCBSaWRnZSBEcml2ZQorCQkJCVN1aXRlIDM1MAorCQkJCUdhaXRoZXJzYnVyZyBNRCAyMDg3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtQjIgICAoaGV4KQkJQnJvYWRiYW5kIFBhY2VuZXQgKEluZGlhKSBQdnQuIEx0ZC4KKzAwMEZCMiAgICAgKGJhc2UgMTYpCQlCcm9hZGJhbmQgUGFjZW5ldCAoSW5kaWEpIFB2dC4gTHRkLgorCQkJCTctQiwgU2hhaCBJbmR1c3RyaWFsIEVzdGF0ZSwgT2ZmIFZlZXJhIERlc2FpIFJvYWQKKwkJCQlBbmRoZXJpIFdlc3QKKwkJCQlNdW1iYWkgTWFoYXJhc2h0cmEgNDAwIDA1MworCQkJCUlORElBCisKKzAwLTBGLUIzICAgKGhleCkJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCiswMDBGQjMgICAgIChiYXNlIDE2KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMKKwkJCQk3NjAgTm9ydGggTWFyeSBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUI0ICAgKGhleCkJCVRpbWVzcGFjZSBUZWNobm9sb2d5CiswMDBGQjQgICAgIChiYXNlIDE2KQkJVGltZXNwYWNlIFRlY2hub2xvZ3kKKwkJCQlCbGFja3N0b25lIFJvYWQKKwkJCQlIdW50aW5nZG9uIENhbWJyaWRnZXNoaXJlIFBFMjkgNlRUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEYtQjUgICAoaGV4KQkJTkVUR0VBUiBJbmMKKzAwMEZCNSAgICAgKGJhc2UgMTYpCQlORVRHRUFSIEluYworCQkJCTQ1MDAgR3JlYXQgQW1lcmljYSBQYXJrd2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUI2ICAgKGhleCkJCUV1cm9wbGV4IFRlY2hub2xvZ2llcworMDAwRkI2ICAgICAoYmFzZSAxNikJCUV1cm9wbGV4IFRlY2hub2xvZ2llcworCQkJCUNsb25zaGF1Z2ggQnVzaW5lc3MgJiBUZWNoLiBQYXJrCisJCQkJQ2xvbnNoYXVnaCAgRHVibGluIDE3CisJCQkJSVJFTEFORAorCiswMC0wRi1CNyAgIChoZXgpCQlDYXZpdW0gTmV0d29ya3MKKzAwMEZCNyAgICAgKGJhc2UgMTYpCQlDYXZpdW0gTmV0d29ya3MKKwkJCQkyNjEwIEF1Z3VzdGluZSBEcml2ZQorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUI4ICAgKGhleCkJCUNhbGxVUkwgSW5jLgorMDAwRkI4ICAgICAoYmFzZSAxNikJCUNhbGxVUkwgSW5jLgorCQkJCTNGLTExLCBOby4gNTA4IFNlYy4gIDUsIENodW5nLUhzaWFvIEUuIFJkLgorCQkJCVRhaXBlaSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi1COSAgIChoZXgpCQlBZGFwdGl2ZSBJbnN0cnVtZW50cworMDAwRkI5ICAgICAoYmFzZSAxNikJCUFkYXB0aXZlIEluc3RydW1lbnRzCisJCQkJNTc3IE1haW4gU3RyZWV0CisJCQkJSHVkc29uIE1BIDAxNzQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1CQSAgIChoZXgpCQlUZXZlYm94IEFCCiswMDBGQkEgICAgIChiYXNlIDE2KQkJVGV2ZWJveCBBQgorCQkJCUJlcmdsaW5kcyB2YWcgMTMKKwkJCQl3YXJtZG8gIFMtMTM5MDAKKwkJCQlTV0VERU4KKworMDAtMEYtQkIgICAoaGV4KQkJTm9raWEgU2llbWVucyBOZXR3b3JrcyBHbWJIICYgQ28uIEtHCiswMDBGQkIgICAgIChiYXNlIDE2KQkJTm9raWEgU2llbWVucyBOZXR3b3JrcyBHbWJIICYgQ28uIEtHCisJCQkJV2VybmVyLXZvbi1TaWVtZW5zIFN0ci4gMi02CisJCQkJQnJ1Y2hzYWwgQmFkZW4tV3VydGVtYmVyZyA3NjY0NgorCQkJCUdFUk1BTlkKKworMDAtMEYtQkMgICAoaGV4KQkJT25rZXkgVGVjaG5vbG9naWVzLCBJbmMuCiswMDBGQkMgICAgIChiYXNlIDE2KQkJT25rZXkgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNzgwIE1vbnRhZ3VlIEV4cHJlc3N3YXksIEluYy4KKwkJCQlTdWl0ZSAjMzA2CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUJEICAgKGhleCkJCU1SViBDb21tdW5pY2F0aW9ucyAoTmV0d29ya3MpIExURAorMDAwRkJEICAgICAoYmFzZSAxNikJCU1SViBDb21tdW5pY2F0aW9ucyAoTmV0d29ya3MpIExURAorCQkJCVAuTyBCb3ggNjE0CisJCQkJWW9rbmVhbSAgMjA2OTIKKwkJCQlJU1JBRUwKKworMDAtMEYtQkUgICAoaGV4KQkJZS13L3lvdSBJbmMuCiswMDBGQkUgICAgIChiYXNlIDE2KQkJZS13L3lvdSBJbmMuCisJCQkJM0YgRklORSBCbGRnLiA2LTE3LTE3CisJCQkJTWluYW1pb29pLAorCQkJCVNoaW5hZ2F3YS1rdSwgVG9reW8gMTQwLTAwMTMKKwkJCQlKQVBBTgorCiswMC0wRi1CRiAgIChoZXgpCQlER1QgU3AuIHogby5vLgorMDAwRkJGICAgICAoYmFzZSAxNikJCURHVCBTcC4geiBvLm8uCisJCQkJdWwuIEphc2tvd2EgRG9saW5hIDE1CisJCQkJR2RhbnNrICA4MC0yNTIKKwkJCQlQT0xBTkQKKworMDAtMEYtQzAgICAoaGV4KQkJREVMQ09NcAorMDAwRkMwICAgICAoYmFzZSAxNikJCURFTENPTXAKKwkJCQlUZWNobm9sb2dpZWxhYW4gMworCQkJCUxldXZlbiAgQi0zMDAwCisJCQkJQkVMR0lVTQorCiswMC0wRi1DMSAgIChoZXgpCQlXQVZFIENvcnBvcmF0aW9uCiswMDBGQzEgICAgIChiYXNlIDE2KQkJV0FWRSBDb3Jwb3JhdGlvbgorCQkJCTMtMjUtNSBDaGlkb3JpCisJCQkJT2h0YS1rdSBUb2t5byAxNDYtMDA4MworCQkJCUpBUEFOCisKKzAwLTBGLUMyICAgKGhleCkJCVVuaXdlbGwgQ29ycG9yYXRpb24KKzAwMEZDMiAgICAgKGJhc2UgMTYpCQlVbml3ZWxsIENvcnBvcmF0aW9uCisJCQkJNS0yNSwgMy1jaG9tZSwgVGVubWEsIEtpdGEta3UKKwkJCQlPc2FrYSAgNTMwLTAwNDMKKwkJCQlKQVBBTgorCiswMC0wRi1DMyAgIChoZXgpCQlQYWxtUGFsbSBUZWNobm9sb2d5LCBJbmMuCiswMDBGQzMgICAgIChiYXNlIDE2KQkJUGFsbVBhbG0gVGVjaG5vbG9neSwgSW5jLgorCQkJCVNhbXN1bmctZG9uZyAxNTYtMywgR2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUtMDkxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLUM0ICAgKGhleCkJCU5TVCBjby4sTFRELgorMDAwRkM0ICAgICAoYmFzZSAxNikJCU5TVCBjby4sTFRELgorCQkJCTQtMy0xIFNISU5NSVlBS09EQQorCQkJCUhBTUFNQVRTVSBTSElaVU9LQSA0MzEtMjEwMworCQkJCUpBUEFOCisKKzAwLTBGLUM1ICAgKGhleCkJCUtleU1lZCBMdGQKKzAwMEZDNSAgICAgKGJhc2UgMTYpCQlLZXlNZWQgTHRkCisJCQkJS2V5TWVkIEhvdXNlCisJCQkJU3RvY2sgUm9hZAorCQkJCVNvdXRoZW5kIG9uIFNlYSBFc3NleCBTUzIgNVFICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEYtQzYgICAoaGV4KQkJRXVyb2NvbSBJbmR1c3RyaWVzIEEvUworMDAwRkM2ICAgICAoYmFzZSAxNikJCUV1cm9jb20gSW5kdXN0cmllcyBBL1MKKwkJCQlwb3JzdmVqIDIKKwkJCQlBYWxib3JnIE5WIERLLTkyMDAKKwkJCQlERU5NQVJLCisKKzAwLTBGLUM3ICAgKGhleCkJCURpb25pY2EgUiZEIEx0ZC4KKzAwMEZDNyAgICAgKGJhc2UgMTYpCQlEaW9uaWNhIFImRCBMdGQuCisJCQkJQm9sb2duYSBDZW50cmUsIEYxMQorCQkJCU1vc3RhIFRlY2hub3BhcmsKKwkJCQlNb3N0YSAgTVNUMTMKKwkJCQlNQUxUQQorCiswMC0wRi1DOCAgIChoZXgpCQlDaGFudHJ5IE5ldHdvcmtzCiswMDBGQzggICAgIChiYXNlIDE2KQkJQ2hhbnRyeSBOZXR3b3JrcworCQkJCTE5MDAgTWlubmVzb3RhIENvdXJ0CisJCQkJU3VpdGUgMTI1CisJCQkJTWlzc2lzc2F1Z2EgT250YXJpbyBMNU4gM0M5CisJCQkJQ0FOQURBCisKKzAwLTBGLUM5ICAgKGhleCkJCUFsbG5ldCBHbWJICiswMDBGQzkgICAgIChiYXNlIDE2KQkJQWxsbmV0IEdtYkgKKwkJCQlNYWlzdHIuIDIKKwkJCQlHZXJtZXJpbmcgQmF2YXJpYSA4MjExMAorCQkJCUdFUk1BTlkKKworMDAtMEYtQ0EgICAoaGV4KQkJQS1KSU4gVEVDSExJTkUgQ08sIExURAorMDAwRkNBICAgICAoYmFzZSAxNikJCUEtSklOIFRFQ0hMSU5FIENPLCBMVEQKKwkJCQkzMjctMzUKKwkJCQlLYXNhbi1Eb25nCisJCQkJS3VtY2h1bi1LdSBTZW91bCAxNTMtODAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLUNCICAgKGhleCkJCTNDb20gTHRkCiswMDBGQ0IgICAgIChiYXNlIDE2KQkJM0NvbSBMdGQKKwkJCQlQZW9wbGVidWlsZGluZyAyCisJCQkJUGVvcGxlYnVpbGRpbmcgRXN0YXRlLCBNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSGVydHMgSFAyIDROVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBGLUNDICAgKGhleCkJCU5ldG9waWEsIEluYy4KKzAwMEZDQyAgICAgKGJhc2UgMTYpCQlOZXRvcGlhLCBJbmMuCisJCQkJNjAwMSBTaGVsbG1vdW5kIFN0cmVldAorCQkJCTR0aCBGbG9vcgorCQkJCUVtZXJ5dmlsbGUgQ0EgOTQ2MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUNEICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwRkNEICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTBGLUNFICAgKGhleCkJCUtpa3VzdWkgRWxlY3Ryb25pY3MgQ29ycC4KKzAwMEZDRSAgICAgKGJhc2UgMTYpCQlLaWt1c3VpIEVsZWN0cm9uaWNzIENvcnAuCisJCQkJMS0xLTMsSGlnYXNoaSB5YW1hdGEKKwkJCQlUc3V6dWtpLWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjI0LTAwMjMKKwkJCQlKQVBBTgorCiswMC0wRi1DRiAgIChoZXgpCQlEYXRhd2luZCBSZXNlYXJjaAorMDAwRkNGICAgICAoYmFzZSAxNikJCURhdGF3aW5kIFJlc2VhcmNoCisJCQkJNTU1IFJlbmUtTGV2ZXNxdWUgV2VzdAorCQkJCVN1aXRlIDExMzAKKwkJCQlNb250cmVhbCBRdWViZWMgSDJaIDFCMQorCQkJCUNBTkFEQQorCiswMC0wRi1EMCAgIChoZXgpCQlBU1RSSQorMDAwRkQwICAgICAoYmFzZSAxNikJCUFTVFJJCisJCQkJMTgvRiBUb3dlciA2LCBHYXRld2F5LCA5IENhbnRvbiBSZAorCQkJCVRTVCwgS293bG9vbgorCQkJCUhPTkcgS09ORworCiswMC0wRi1EMSAgIChoZXgpCQlBcHBsaWVkIFdpcmVsZXNzIElkZW50aWZpY2F0aW9ucyBHcm91cCwgSW5jLgorMDAwRkQxICAgICAoYmFzZSAxNikJCUFwcGxpZWQgV2lyZWxlc3MgSWRlbnRpZmljYXRpb25zIEdyb3VwLCBJbmMuCisJCQkJMzgyIFJvdXRlIDU5LCBTZWN0aW9uIDI5MgorCQkJCU1vbnNleSBOZXcgWW9yayAxMDk1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtRDIgICAoaGV4KQkJRVdBIFRlY2hub2xvZ2llcywgSW5jLgorMDAwRkQyICAgICAoYmFzZSAxNikJCUVXQSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMzg3MyBQYXJrIENlbnRlciBSb2FkCisJCQkJSGVybmRvbiBWQSAyMDE3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtRDMgICAoaGV4KQkJRGlnaXVtCiswMDBGRDMgICAgIChiYXNlIDE2KQkJRGlnaXVtCisJCQkJNDQ1IEphbiBEYXZpcyBEcml2ZSBOVworCQkJCVN1aXRlIDEwMAorCQkJCUh1bnRzdmlsbGUgQUwgMzU4MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUQ0ICAgKGhleCkJCVNvdW5kY3JhZnQKKzAwMEZENCAgICAgKGJhc2UgMTYpCQlTb3VuZGNyYWZ0CisJCQkJQ3JhbmJvcm5lIEhvdXNlCisJCQkJQ3JhbmJvcm5lIFJvYWQKKwkJCQlQb3R0ZXJzIEJhciBIZXJ0Zm9yZHNoaXJlIEVONiAzSk4KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRi1ENSAgIChoZXgpCQlTY2h3ZWNoYXQgLSBSSVNFCiswMDBGRDUgICAgIChiYXNlIDE2KQkJU2Nod2VjaGF0IC0gUklTRQorCQkJCUFtIENvbmNvcmRlIFBhcmsgMkEKKwkJCQlTY2h3ZWNoYXQgIDIzMjAKKwkJCQlBVVNUUklBCisKKzAwLTBGLUQ2ICAgKGhleCkJCVNhcm90ZWNoIENvLiwgTHRkCiswMDBGRDYgICAgIChiYXNlIDE2KQkJU2Fyb3RlY2ggQ28uLCBMdGQKKwkJCQlIYW5HYW5nIEJsZGcsIDE1NDktNywgU2VvY2hvLURvbmcsCisJCQkJU2VvY2hvLWt1LAorCQkJCVNlb3VsICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLUQ3ICAgKGhleCkJCUhhcm1hbiBNdXNpYyBHcm91cAorMDAwRkQ3ICAgICAoYmFzZSAxNikJCUhhcm1hbiBNdXNpYyBHcm91cAorCQkJCTg3NjAgU2FuZHkgUGFya3dheQorCQkJCVNhbmR5IFV0YWggODQwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUQ4ICAgKGhleCkJCUZvcmNlLCBJbmMuCiswMDBGRDggICAgIChiYXNlIDE2KQkJRm9yY2UsIEluYy4KKwkJCQk4MjUgUGFyayBTdHJlZXQKKwkJCQlDaHJpc3RpYW5zYnVyZyBWYSAyNDA3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtRDkgICAoaGV4KQkJRmxleERTTCBUZWxlY29tbXVuaWNhdGlvbnMgQUcKKzAwMEZEOSAgICAgKGJhc2UgMTYpCQlGbGV4RFNMIFRlbGVjb21tdW5pY2F0aW9ucyBBRworCQkJCUhhdXMgenVtIEVuZ2VsCisJCQkJQWx0ZW5kb3JmIFNjaHd5eiA4ODUyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEYtREEgICAoaGV4KQkJWUFaQUtJIENPUlBPUkFUSU9OCiswMDBGREEgICAgIChiYXNlIDE2KQkJWUFaQUtJIENPUlBPUkFUSU9OCisJCQkJMTUwMCBNSVNIVUtVCisJCQkJU1VTT05PLUNJVFkgU0hJWlVPS0EtUFJFRiA0MTAtMTE5NAorCQkJCUpBUEFOCisKKzAwLTBGLURCICAgKGhleCkJCVdlc3RlbGwgVGVjaG5vbG9naWVzCiswMDBGREIgICAgIChiYXNlIDE2KQkJV2VzdGVsbCBUZWNobm9sb2dpZXMKKwkJCQk3NTAgTi4gQ29tbW9ucyBEci4KKwkJCQlBdXJvcmEgSUwgNjA1MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLURDICAgKGhleCkJCVVlZGEgSmFwYW4gIFJhZGlvIENvLiwgTHRkLgorMDAwRkRDICAgICAoYmFzZSAxNikJCVVlZGEgSmFwYW4gIFJhZGlvIENvLiwgTHRkLgorCQkJCUZ1bWlpcmkgMi0xMC0xOQorCQkJCVVlZGEgY2l0eSBOYWdhbm8gcHJlZmVjdHVyZSAzODYtODYwOAorCQkJCUpBUEFOCisKKzAwLTBGLUREICAgKGhleCkJCVNPUkRJTiBBQgorMDAwRkREICAgICAoYmFzZSAxNikJCVNPUkRJTiBBQgorCQkJCVJvcmxhZ2dhcnZhZ2VuIDgKKwkJCQlWYXJuYW1vIFNtYWxhbmQgUy0zMzEgMzQKKwkJCQlTV0VERU4KKworMDAtMEYtREUgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKzAwMEZERSAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNFIDIyMSA4OAorCQkJCVNXRURFTgorCiswMC0wRi1ERiAgIChoZXgpCQlTT0xPTU9OIFRlY2hub2xvZ3kgQ29ycC4KKzAwMEZERiAgICAgKGJhc2UgMTYpCQlTT0xPTU9OIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQlOby40MixTaW5nIFpob25nIFJkLixOZWkgSHUgRGlzdC4sCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLUUwICAgKGhleCkJCU5Db21wdXRpbmcgQ28uLEx0ZC4KKzAwMEZFMCAgICAgKGJhc2UgMTYpCQlOQ29tcHV0aW5nIENvLixMdGQuCisJCQkJNnRoIEZsLCBKRUktUGxhdHogQi9ECisJCQkJMTQyMy02LCBHd2FueWFuZzEtRG9uZywgRG9uZ2FuLUd1CisJCQkJU2VvdWwgR2FzYW4tZG9uZyBHZXVtY2hlb24tR3UgNDU5LTExCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLUUxICAgKGhleCkJCUlEIERJR0lUQUwgQ09SUE9SQVRJT04KKzAwMEZFMSAgICAgKGJhc2UgMTYpCQlJRCBESUdJVEFMIENPUlBPUkFUSU9OCisJCQkJNnRoIEZsLiwgTWlyYWUgQmxkZy4sIDI3MS0xLCBTZW9oeXVuLWRvbmcsIEJ1bmRhbmcta3UsIFN1bmduYW0tc2ksIEtlb25na2ktZG8sIFNvdXRoIEtvcmVhCisJCQkJU3VuZ25hbS1TaSBLZW9uZ2tpLWRvIDQ2My0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtRTIgICAoaGV4KQkJSGFuZ3pob3UgSDNDIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMEZFMiAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBIM0MgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCU9yaWVudGFsIEVsZWN0cm9uaWMgQmxkLiwgTk8uMixDaHVhbmd5ZSBSb2FkCisJCQkJU2hhbmctRGkgSW5mb3JtYWl0b24gSW5kdXN0cnkgQmFzZSwKKwkJCQlIYWktRGlhbiBEaXN0cmljdCBCZWlqaW5nIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTBGLUUzICAgKGhleCkJCURhbW0gQ2VsbHVsYXIgU3lzdGVtcyBBL1MKKzAwMEZFMyAgICAgKGJhc2UgMTYpCQlEYW1tIENlbGx1bGFyIFN5c3RlbXMgQS9TCisJCQkJTW9lbGxlZ2FkZSA2OAorCQkJCVNvZW5kZXJib3JnICBEay02NDAwCisJCQkJREVOTUFSSworCiswMC0wRi1FNCAgIChoZXgpCQlQYW50ZWNoIENvLixMdGQKKzAwMEZFNCAgICAgKGJhc2UgMTYpCQlQYW50ZWNoIENvLixMdGQKKwkJCQlTaGluc29uZyBCL0QgM0YsIDI1LTEyLAorCQkJCVllb3VpZG8tRG9uZywKKwkJCQlZb3VuZ2RldW5ncG8tR1UgU2VvdWwgMTUwLTcxMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi1FNSAgIChoZXgpCQlNRVJDVVJZIFNFQ1VSSVRZIENPUlBPUkFUSU9OCiswMDBGRTUgICAgIChiYXNlIDE2KQkJTUVSQ1VSWSBTRUNVUklUWSBDT1JQT1JBVElPTgorCQkJCTIzNTUgTUlSQSBNQVIgQVZFLgorCQkJCUxPTkcgQkVBQ0ggQ0EgOTA4MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUU2ICAgKGhleCkJCU1CVGVjaCBTeXN0ZW1zLCBJbmMuCiswMDBGRTYgICAgIChiYXNlIDE2KQkJTUJUZWNoIFN5c3RlbXMsIEluYy4KKwkJCQk0MTIgMXN0IEF2ZSBTRQorCQkJCVN1aXRlIDEwMAorCQkJCUN1bGxtYW4gQWxhYmFtYSAzNTA1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtRTcgICAoaGV4KQkJTHV0cm9uIEVsZWN0cm9uaWNzIENvLiwgSW5jLgorMDAwRkU3ICAgICAoYmFzZSAxNikJCUx1dHJvbiBFbGVjdHJvbmljcyBDby4sIEluYy4KKwkJCQk3MjAwIFN1dGVyIFJkLgorCQkJCUNvb3BlcnNidXJnIFBBIDE4MDM2LTEyOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUU4ICAgKGhleCkJCUxvYm9zLCBJbmMuCiswMDBGRTggICAgIChiYXNlIDE2KQkJTG9ib3MsIEluYy4KKwkJCQlVJlQgQmxkZyAzRiwgMS0yLTMgU2FydWdha3UtY2hvLCBDaGl5b2RhLWt1LAorCQkJCVRva3lvICAxMDEtMDA2NAorCQkJCUpBUEFOCisKKzAwLTBGLUU5ICAgKGhleCkJCUdXIFRFQ0hOT0xPR0lFUyBDTy4sTFRELgorMDAwRkU5ICAgICAoYmFzZSAxNikJCUdXIFRFQ0hOT0xPR0lFUyBDTy4sTFRELgorCQkJCU5vLjM4IFNoYW5nZGkgWGlsdSxIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMEYtRUEgICAoaGV4KQkJR2lnYS1CeXRlIFRlY2hub2xvZ3kgQ28uLExURC4KKzAwMEZFQSAgICAgKGJhc2UgMTYpCQlHaWdhLUJ5dGUgVGVjaG5vbG9neSBDby4sTFRELgorCQkJCU5vLjIxNSxOYW4tUGluZyBSb2FkLFBpbmctSmVuIENpdHksCisJCQkJUGluZy1KZW4gVGFveXVhbiAzMjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLUVCICAgKGhleCkJCUN5bG9uIENvbnRyb2xzCiswMDBGRUIgICAgIChiYXNlIDE2KQkJQ3lsb24gQ29udHJvbHMKKwkJCQlDbG9uc2hhdWdoIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJQ2xvbnNoYXVnaAorCQkJCUR1YmxpbiAxNyAgCisJCQkJSVJFTEFORAorCiswMC0wRi1FQyAgIChoZXgpCQlBcmt1cyBJbmMuCiswMDBGRUMgICAgIChiYXNlIDE2KQkJQXJrdXMgSW5jLgorCQkJCTMtOCBDaHVvLWNobworCQkJCU9rYXlhbWEgIDcwMC0wODM2CisJCQkJSkFQQU4KKworMDAtMEYtRUQgICAoaGV4KQkJQW5hbSBFbGVjdHJvbmljcyBDby4sIEx0ZAorMDAwRkVEICAgICAoYmFzZSAxNikJCUFuYW0gRWxlY3Ryb25pY3MgQ28uLCBMdGQKKwkJCQk2NDUgU3VuZ2tvay1kb25nCisJCQkJRGFud29uLWd1CisJCQkJQW5zYW4tY2l0eSBLeXVuZ2tpLWRvIDQyNS04MzQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtRUUgICAoaGV4KQkJWFRlYywgSW5jb3Jwb3JhdGVkCiswMDBGRUUgICAgIChiYXNlIDE2KQkJWFRlYywgSW5jb3Jwb3JhdGVkCisJCQkJNTc3NSBCbHVlIExhZ29vbiBEcml2ZQorCQkJCVN1aXRlIDI4MAorCQkJCU1pYW1pIEZsb3JpZGEgMzMxMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUVGICAgKGhleCkJCVRoYWxlcyBlLVRyYW5zYWN0aW9ucyBHbWJICiswMDBGRUYgICAgIChiYXNlIDE2KQkJVGhhbGVzIGUtVHJhbnNhY3Rpb25zIEdtYkgKKwkJCQlLb25yYWQtWnVzZS1TdHJhc3NlIDE5LTIxCisJCQkJQmFkIEhlcnNmZWxkIEhlc3NlbiAzNjI1MQorCQkJCUdFUk1BTlkKKworMDAtMEYtRjAgICAoaGV4KQkJU3VucmF5IENvLiBMdGQuCiswMDBGRjAgICAgIChiYXNlIDE2KQkJU3VucmF5IENvLiBMdGQuCisJCQkJT3Nhd2EyLTUtNSBNaXRha2EKKwkJCQlUb2t5byAxODEtMDAxNQorCQkJCUpBUEFOCisKKzAwLTBGLUYxICAgKGhleCkJCW5leC1HIFN5c3RlbXMgUHRlLkx0ZAorMDAwRkYxICAgICAoYmFzZSAxNikJCW5leC1HIFN5c3RlbXMgUHRlLkx0ZAorCQkJCTI1IEthbGxhbmcgQXZlCisJCQkJIzA3LTA1CisJCQkJMzM5NDE2CisJCQkJU0lOR0FQT1JFCisKKzAwLTBGLUYyICAgKGhleCkJCUxvdWQgVGVjaG5vbG9naWVzIEluYy4KKzAwMEZGMiAgICAgKGJhc2UgMTYpCQlMb3VkIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMTYyMjAgV29vZC1SZWQgUmQuIE5FCisJCQkJV29vZGludmlsbGUgV0EgOTgwNzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUYzICAgKGhleCkJCUp1bmcgTXlvdW5nIENvbW11bmljYXRpb25zJlRlY2hub2xvZ3kKKzAwMEZGMyAgICAgKGJhc2UgMTYpCQlKdW5nIE15b3VuZyBDb21tdW5pY2F0aW9ucyZUZWNobm9sb2d5CisJCQkJMXRoIEZMLiwgRG9uZyBJTCBCbGRnLjEwNyBZYW5namFlLURvbmcKKwkJCQlTZW9jaG8tS3UgU2VvdWwgMTM3LTEzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi1GNCAgIChoZXgpCQlHdW50ZXJtYW5uICYgRHJ1bmNrIEdtYkgKKzAwMEZGNCAgICAgKGJhc2UgMTYpCQlHdW50ZXJtYW5uICYgRHJ1bmNrIEdtYkgKKwkJCQlEb3J0bXVuZGVyIFN0ci4gNGEKKwkJCQlXaWxuc2RvcmYgTlJXIDU3MjM0CisJCQkJR0VSTUFOWQorCiswMC0wRi1GNSAgIChoZXgpCQlHTiZTIGNvbXBhbnkKKzAwMEZGNSAgICAgKGJhc2UgMTYpCQlHTiZTIGNvbXBhbnkKKwkJCQkzMDEgQW5zYW4gUy9XIGNlbnRlciwgNjQzLTcgd29uZ29rLWRvbmcKKwkJCQlBbnNhbiBjaXR5IEd5ZW9uZ2dpLWRvIDQyNS0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtRjYgICAoaGV4KQkJRGFyZm9uIEVsZWN0cm9uaWNzIENvcnAuCiswMDBGRjYgICAgIChiYXNlIDE2KQkJRGFyZm9uIEVsZWN0cm9uaWNzIENvcnAuCisJCQkJMzEsIExhbmUxNywgWmloY2lhbmcgTi4gUm9hZAorCQkJCUd1ZWlzaGFuCisJCQkJVGFveXVhbiAgMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi1GNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBGRjcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERSLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1GOCAgIChoZXgpCQlDaXNjbyAgU3lzdGVtcworMDAwRkY4ICAgICAoYmFzZSAxNikJCUNpc2NvICBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUY5ICAgKGhleCkJCVZhbGNyZXRlYywgSW5jLgorMDAwRkY5ICAgICAoYmFzZSAxNikJCVZhbGNyZXRlYywgSW5jLgorCQkJCUJ5dWNrc2FuIERpZ2l0YWwgVmFsbGV5IElJIDE1RgorCQkJCTQ4MS0xMCwgR2FzYW4tRG9uZywgR2V1bWNoZW9uLUd1CisJCQkJU2VvdWwgIDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtRkEgICAoaGV4KQkJT3B0aW5lbCBTeXN0ZW1zLCBJbmMuCiswMDBGRkEgICAgIChiYXNlIDE2KQkJT3B0aW5lbCBTeXN0ZW1zLCBJbmMuCisJCQkJNjgzNSBEZWVycGF0aCBSZC4KKwkJCQlFbGtyaWRnZSBNRCAyMTA3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtRkIgICAoaGV4KQkJTmlwcG9uIERlbnNvIEluZHVzdHJ5IENvLiwgTHRkLgorMDAwRkZCICAgICAoYmFzZSAxNikJCU5pcHBvbiBEZW5zbyBJbmR1c3RyeSBDby4sIEx0ZC4KKwkJCQkzLTE0LTE5CisJCQkJU2hpYmF1cmEsIE1pbmF0by1rdSBUb2t5bywgMTA4LTg1NjAKKwkJCQlKQVBBTgorCiswMC0wRi1GQyAgIChoZXgpCQlNZXJpdCBMaS1MaW4gRW50LgorMDAwRkZDICAgICAoYmFzZSAxNikJCU1lcml0IExpLUxpbiBFbnQuCisJCQkJTm8uIDIwIFd1LUxvbmcgNiBSZC4KKwkJCQlXdS1LdSBUYWlwZWkgMjQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi1GRCAgIChoZXgpCQlHbG9yeXRlayBOZXR3b3JrIEluYy4KKzAwMEZGRCAgICAgKGJhc2UgMTYpCQlHbG9yeXRlayBOZXR3b3JrIEluYy4KKwkJCQk1Ri4tMywgTm8uMTYsIFNlYy4gMSwgRG9uZ2RhIFJkLiwKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLUZFICAgKGhleCkJCUctUFJPIENPTVBVVEVSCiswMDBGRkUgICAgIChiYXNlIDE2KQkJRy1QUk8gQ09NUFVURVIKKwkJCQlmaXJzdCBhcnJhbmdlIEMgWWluZ0h1IGluZHVzdHJpYWwgZXN0YXRlIFFpbmdYaSBjb3VudHJ5IERvbmdHdWFuIGNpdHkKKwkJCQlEb25nR3VhbiBHdWFuZ0RvbmcgNTIzNjQ4CisJCQkJQ0hJTkEKKworMDAtMEYtRkYgICAoaGV4KQkJQ29udHJvbDQKKzAwMEZGRiAgICAgKGJhc2UgMTYpCQlDb250cm9sNAorCQkJCTExNzM0IFMuIEVsZWN0aW9uIERyaXZlCisJCQkJRHJhcGVyIFVUIDg0MDIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0wMCAgIChoZXgpCQlDQUJMRSBURUxFVklTSU9OIExBQk9SQVRPUklFUywgSU5DLgorMDAxMDAwICAgICAoYmFzZSAxNikJCUNBQkxFIFRFTEVWSVNJT04gTEFCT1JBVE9SSUVTLCBJTkMuCisJCQkJODU4IENvYWwgQ3JlZWsgQ2lyY2xlCisJCQkJTG91aXN2aWxsZSBDTyA4MDAyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMDEgICAoaGV4KQkJQ2l0ZWwKKzAwMTAwMSAgICAgKGJhc2UgMTYpCQlDaXRlbAorCQkJCUxvdWdoYm9yb3VnaCBJbm5vdmF0aW9uIENlbnRyZQorCQkJCUVwaW5hbCBXYXkKKwkJCQlMb3VnaGJvcm91Z2ggIExFMTEgM0VICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTAtMDIgICAoaGV4KQkJQUNUSUEKKzAwMTAwMiAgICAgKGJhc2UgMTYpCQlBQ1RJQQorCQkJCTI1IENIRU1JTiBERSBQT1VWT1VSVklMTEUKKwkJCQkzMTQzMiBUT1VMT1VTRSwgIENFREVYIDA0ICAKKwkJCQlGUkFOQ0UKKworMDAtMTAtMDMgICAoaGV4KQkJSU1BVFJPTiwgSU5DLgorMDAxMDAzICAgICAoYmFzZSAxNikJCUlNQVRST04sIElOQy4KKwkJCQkzODkgT1lTVEVSIFBPSU5UIEJMVkQuCisJCQkJU08uIFNBTiBGUkFOQ0lTQ08gQ0EgOTQwODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTA0ICAgKGhleCkJCVRIRSBCUkFOVExFWSBDT0lMRSBDT01QQU5ZLElOQworMDAxMDA0ICAgICAoYmFzZSAxNikJCVRIRSBCUkFOVExFWSBDT0lMRSBDT01QQU5ZLElOQworCQkJCTU0NSBSRVNFQVJDSCBEUklWRQorCQkJCUFUSEVOUyBHQSAzMDYwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMDUgICAoaGV4KQkJVUVDIENPTU1FUkNJQUwKKzAwMTAwNSAgICAgKGJhc2UgMTYpCQlVRUMgQ09NTUVSQ0lBTAorCQkJCVAuTy4gQk9YIDU0LAorCQkJCU1ULiBFREdFQ09NQkUKKwkJCQk0MzAwIERVUkJBTiAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTEwLTA2ICAgKGhleCkJCVRoYWxlcyBDb250YWN0IFNvbHV0aW9ucyBMdGQuCiswMDEwMDYgICAgIChiYXNlIDE2KQkJVGhhbGVzIENvbnRhY3QgU29sdXRpb25zIEx0ZC4KKwkJCQlUb2xiYXIgV2F5CisJCQkJU291dGhhbXB0b24sIFNPMzAgMlpQICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMC0wNyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDEwMDcgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUgICBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTA4ICAgKGhleCkJCVZJRU5OQSBTWVNURU1TIENPUlBPUkFUSU9OCiswMDEwMDggICAgIChiYXNlIDE2KQkJVklFTk5BIFNZU1RFTVMgQ09SUE9SQVRJT04KKwkJCQk2NjUxIEZSQVNFUldPT0QgUExBQ0UKKwkJCQlTVUlURSAjMjUwCisJCQkJUklDSE1PTkQsIEIuQy4gVjZXIDFKMyAgCisJCQkJQ0FOQURBCisKKzAwLTEwLTA5ICAgKGhleCkJCUhPUk8gUVVBUlRaCiswMDEwMDkgICAgIChiYXNlIDE2KQkJSE9STyBRVUFSVFoKKwkJCQlaLkkuIFJPVVRFIERFIE5JT1JUCisJCQkJODUyMDAgLSBGT05URU5BWSBMRSBDT01URSAgCisJCQkJRlJFTkNIIEdVSUFOQQorCiswMC0xMC0wQSAgIChoZXgpCQlXSUxMSUFNUyBDT01NVU5JQ0FUSU9OUyBHUk9VUAorMDAxMDBBICAgICAoYmFzZSAxNikJCVdJTExJQU1TIENPTU1VTklDQVRJT05TIEdST1VQCisJCQkJQURWQU5DRUQgVEVDSE5PTE9HSUVTCisJCQkJMTExIEVBU1QgRklSU1QKKwkJCQlUVUxTQSBPSyA3NDEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMEIgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAxMDBCICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFICBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTBDICAgKGhleCkJCUlUTyBDTy4sIExURC4KKzAwMTAwQyAgICAgKGJhc2UgMTYpCQlJVE8gQ08uLCBMVEQuCisJCQkJOC0yIE1JWUFOT1NISVRBLUNITworCQkJCUhJUkFLQVRBLUNJVFksIE9TQUtBICAKKwkJCQlKQVBBTgorCiswMC0xMC0wRCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDEwMEQgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFIuLVNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMEUgICAoaGV4KQkJTUlDUk8gTElORUFSIENPUE9SQVRJT04KKzAwMTAwRSAgICAgKGJhc2UgMTYpCQlNSUNSTyBMSU5FQVIgQ09QT1JBVElPTgorCQkJCTIwOTIgQ09OQ09VUlNFIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTBGICAgKGhleCkJCUlORFVTVFJJQUwgQ1BVIFNZU1RFTVMKKzAwMTAwRiAgICAgKGJhc2UgMTYpCQlJTkRVU1RSSUFMIENQVSBTWVNURU1TCisJCQkJMTExLUQgVy4gRFlFUiBST0FECisJCQkJU0FOVEEgQU5BIENBIDkyNzA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0xMCAgIChoZXgpCQlJTklUSU8gQ09SUE9SQVRJT04KKzAwMTAxMCAgICAgKGJhc2UgMTYpCQlJTklUSU8gQ09SUE9SQVRJT04KKwkJCQkyMTg4IEIgREVMIEZSQU5DTyBTVFJFRVQKKwkJCQlTQU4gSk9TRSBDQSA5NTExOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMTEgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAxMDExICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMTIgICAoaGV4KQkJUFJPQ0VTU09SIFNZU1RFTVMgKEkpIFBWVCBMVEQKKzAwMTAxMiAgICAgKGJhc2UgMTYpCQlQUk9DRVNTT1IgU1lTVEVNUyAoSSkgUFZUIExURAorCQkJCTI0IFJJQ0hNT05EIFJPQUQKKwkJCQlCQU5HQUxPUkUgNTYwIDAyNSAgCisJCQkJSU5ESUEKKworMDAtMTAtMTMgICAoaGV4KQkJS29udHJvbiBBbWVyaWNhLCBJbmMuCiswMDEwMTMgICAgIChiYXNlIDE2KQkJS29udHJvbiBBbWVyaWNhLCBJbmMuCisJCQkJMTQxMTggU3Rvd2UgRHJpdmUKKwkJCQlQb3dheSwgQ0EgOTIwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMTQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAxMDE0ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMTUgICAoaGV4KQkJT09tb24gSW5jLgorMDAxMDE1ICAgICAoYmFzZSAxNikJCU9PbW9uIEluYy4KKwkJCQlQTyBCT1ggODI0MQorCQkJCUNPQlVSRyBPUiA5NzQwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMTYgICAoaGV4KQkJVC5TUVdBUkUKKzAwMTAxNiAgICAgKGJhc2UgMTYpCQlULlNRV0FSRQorCQkJCTYsIFBBUkMgQVJJQU5FCisJCQkJSU1NRVVCTEUgTUVSQ1VSRQorCQkJCTc4Mjg0IEdVWUFOQ09VUlQgQ0VERVggIAorCQkJCUZSQU5DRQorCiswMC0xMC0xNyAgIChoZXgpCQlCb3NjaCBBY2Nlc3MgU3lzdGVtcyBHbWJICiswMDEwMTcgICAgIChiYXNlIDE2KQkJQm9zY2ggQWNjZXNzIFN5c3RlbXMgR21iSAorCQkJCUNoYXJsb3R0ZW5idXJnZXIgQWxsZWUgNTAgICAgICAgICAgICAKKwkJCQlBQUNIRU4gICAgRC01MjA2OCAKKwkJCQlHRVJNQU5ZCisKKzAwLTEwLTE4ICAgKGhleCkJCUJST0FEQ09NIENPUlBPUkFUSU9OCiswMDEwMTggICAgIChiYXNlIDE2KQkJQlJPQURDT00gQ09SUE9SQVRJT04KKwkJCQkxNjIxNSBBTFRPTiBQQVJLV0FZCisJCQkJUC5PLiBCT1ggNTcwMTMKKwkJCQlJUlZJTkUgQ0EgOTI2MTktNzAxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMTkgICAoaGV4KQkJU0lST05BIERFTlRBTCBTWVNURU1TIEdtYkggJiBDby4gS0cKKzAwMTAxOSAgICAgKGJhc2UgMTYpCQlTSVJPTkEgREVOVEFMIFNZU1RFTVMgR21iSCAmIENvLiBLRworCQkJCUZBQlJJS1NUUkFTU0UgMzEKKwkJCQk2NDYyNSBCRU5TSEVJTSAgCisJCQkJR0VSTUFOWQorCiswMC0xMC0xQSAgIChoZXgpCQlQaWN0dXJlVGVsIENvcnAuCiswMDEwMUEgICAgIChiYXNlIDE2KQkJUGljdHVyZVRlbCBDb3JwLgorCQkJCTEwMCBNSU5VVEVNQU4gUk9BRCwgTVM2NDEKKwkJCQlBTkRPVkVSIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0xQiAgIChoZXgpCQlDT1JORVQgVEVDSE5PTE9HWSwgSU5DLgorMDAxMDFCICAgICAoYmFzZSAxNikJCUNPUk5FVCBURUNITk9MT0dZLCBJTkMuCisJCQkJN0YtNCwgTk8uIDQ2IENIVU5HIFNIQU4gTi5ST0FECisJCQkJU0VDLiAyLCBUQUlQRUkgIAorCQkJCVRBSklLSVNUQU4KKworMDAtMTAtMUMgICAoaGV4KQkJT0hNIFRFQ0hOT0xPR0lFUyBJTlRMLCBMTEMKKzAwMTAxQyAgICAgKGJhc2UgMTYpCQlPSE0gVEVDSE5PTE9HSUVTIElOVEwsIExMQworCQkJCTQgRVhFQ1VUSVZFIENJUkNMRSwgU3VpdGUgMTg1CisJCQkJSVJWSU5FIENBIDkyNjE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0xRCAgIChoZXgpCQlXSU5CT05EIEVMRUNUUk9OSUNTIENPUlAuCiswMDEwMUQgICAgIChiYXNlIDE2KQkJV0lOQk9ORCBFTEVDVFJPTklDUyBDT1JQLgorCQkJCU5PLiA0LCBDUkVBVElPTiBSRC4gSUlJCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOIENIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC0xRSAgIChoZXgpCQlNQVRTVVNISVRBIEVMRUNUUk9OSUMgSU5TVFJVTUVOVFMgQ09SUC4KKzAwMTAxRSAgICAgKGJhc2UgMTYpCQlNQVRTVVNISVRBIEVMRUNUUk9OSUMgSU5TVFJVTUVOVFMgQ09SUC4KKwkJCQkyMy05IEtJWU9IQVJBIElORFVTVFJJQUwgUEFSSworCQkJCVVUU1VOT01JWUEgVG9jaGlnaSAzMjEtMzIgIAorCQkJCUpBUEFOCisKKzAwLTEwLTFGICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTAxRiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUi4KKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0yMCAgIChoZXgpCQlIYW5kIEhlbGQgUHJvZHVjdHMgSW5jCiswMDEwMjAgICAgIChiYXNlIDE2KQkJSGFuZCBIZWxkIFByb2R1Y3RzIEluYworCQkJCTcwMCBWaXNpb25zIERyaXZlCisJCQkJU2thbmVhdGVsZXMgRmFsbHMgTlkgMTMxNTMtMDIwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMjEgICAoaGV4KQkJRU5DQU5UTyBORVRXT1JLUywgSU5DLgorMDAxMDIxICAgICAoYmFzZSAxNikJCUVOQ0FOVE8gTkVUV09SS1MsIElOQy4KKwkJCQkyOTUzIEJVTktFUiBISUxMIExBTkUKKwkJCQlTVUlURSAjNDAwCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTIyICAgKGhleCkJCVNhdENvbSBNZWRpYSBDb3Jwb3JhdGlvbgorMDAxMDIyICAgICAoYmFzZSAxNikJCVNhdENvbSBNZWRpYSBDb3Jwb3JhdGlvbgorCQkJCTMyNTUtNyBTQ09UVCBCTFZELgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0yMyAgIChoZXgpCQlOZXR3b3JrIEVxdWlwbWVudCBUZWNobm9sb2dpZXMKKzAwMTAyMyAgICAgKGJhc2UgMTYpCQlOZXR3b3JrIEVxdWlwbWVudCBUZWNobm9sb2dpZXMKKwkJCQk2OTAwIFBhc2VvIFBhZHJlIFBhcmt3YXkKKwkJCQlGcmVlbW9udCBDQSA5NDU1NS0zNjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0yNCAgIChoZXgpCQlOQUdPWUEgRUxFQ1RSSUMgV09SS1MgQ08uLCBMVEQKKzAwMTAyNCAgICAgKGJhc2UgMTYpCQlOQUdPWUEgRUxFQ1RSSUMgV09SS1MgQ08uLCBMVEQKKwkJCQkyOS0xIFNISU5PREEsIE1JV0EtQ0hPCisJCQkJQU1BLUdVTiwgQUlDSEkgNDkwLTEyICAKKwkJCQlKQVBBTgorCiswMC0xMC0yNSAgIChoZXgpCQlHcmF5aGlsbCwgSW5jCiswMDEwMjUgICAgIChiYXNlIDE2KQkJR3JheWhpbGwsIEluYworCQkJCTU2MSBIaWxsZ3JvdmUgQXZlCisJCQkJTGFHcmFuZ2UgSUwgNjA1MjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTI2ICAgKGhleCkJCUFDQ0VMRVJBVEVEIE5FVFdPUktTLCBJTkMuCiswMDEwMjYgICAgIChiYXNlIDE2KQkJQUNDRUxFUkFURUQgTkVUV09SS1MsIElOQy4KKwkJCQkzMTIzOCBWSUEgQ09MSU5BUywgVU5JVAorCQkJCVdFU1RMQUtFIFZJTExBR0UgQ0EgOTEzNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTI3ICAgKGhleCkJCUwtMyBDT01NVU5JQ0FUSU9OUyBFQVNUCiswMDEwMjcgICAgIChiYXNlIDE2KQkJTC0zIENPTU1VTklDQVRJT05TIEVBU1QKKwkJCQlPTkUgRkVERVJBTCBTVFJFRVQgLSBBJkUtM0VTCisJCQkJQ0FNREVOIE5KIDA4MTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0yOCAgIChoZXgpCQlDT01QVVRFUiBURUNITklDQSwgSU5DLgorMDAxMDI4ICAgICAoYmFzZSAxNikJCUNPTVBVVEVSIFRFQ0hOSUNBLCBJTkMuCisJCQkJMy01LTE5IEhJR0FTSElOQUtBIEhBS0FUQS1LVQorCQkJCUZVS1VPS0EtU0kKKwkJCQlGVUtVT0tBICA4MTYgIAorCQkJCUpBUEFOCisKKzAwLTEwLTI5ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTAyOSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTJBICAgKGhleCkJCVpGIE1JQ1JPU1lTVEVNUywgSU5DLgorMDAxMDJBICAgICAoYmFzZSAxNikJCVpGIE1JQ1JPU1lTVEVNUywgSU5DLgorCQkJCTEwNTIgRUxXRUxMIENPVVJUCisJCQkJUEFMTyBBTFRPIENBIDk0MzAzLTQzMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTJCICAgKGhleCkJCVVNQVggREFUQSBTWVNURU1TLCBJTkMuCiswMDEwMkIgICAgIChiYXNlIDE2KQkJVU1BWCBEQVRBIFNZU1RFTVMsIElOQy4KKwkJCQlOTy4gMS0xLCBSJkQgUk9BRCAyCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEwLTJDICAgKGhleCkJCUxhc2F0IE5ldHdvcmtzIEEvUworMDAxMDJDICAgICAoYmFzZSAxNikJCUxhc2F0IE5ldHdvcmtzIEEvUworCQkJCVNrYWxodXNlIDEzCisJCQkJU0stOTI0MCBOaWJlICAKKwkJCQlERU5NQVJLCisKKzAwLTEwLTJEICAgKGhleCkJCUhJVEFDSEkgU09GVFdBUkUgRU5HSU5FRVJJTkcKKzAwMTAyRCAgICAgKGJhc2UgMTYpCQlISVRBQ0hJIFNPRlRXQVJFIEVOR0lORUVSSU5HCisJCQkJNS03OSwgT05PRUNITywgTkFLQS1LVQorCQkJCVlPS09IQU1BIDIzMSAgCisJCQkJSkFQQU4KKworMDAtMTAtMkUgICAoaGV4KQkJTkVUV09SSyBTWVNURU1TICYgVEVDSE5PTE9HSUVTIFBWVC4gTFRELgorMDAxMDJFICAgICAoYmFzZSAxNikJCU5FVFdPUksgU1lTVEVNUyAmIFRFQ0hOT0xPR0lFUyBQVlQuIExURC4KKwkJCQlQTE9UIE5PLiAyLCBDT0NISU4gRVhQT1JUIFBST0NFU1NJTkcgIFpPCisJCQkJS0FLS0FOQUQsIENPQ0hJTiA2ODIgMDMwICAKKwkJCQlJTkRJQQorCiswMC0xMC0yRiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDEwMkYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFIuCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMzAgICAoaGV4KQkJRUlPTiBJbmMuCiswMDEwMzAgICAgIChiYXNlIDE2KQkJRUlPTiBJbmMuCisJCQkJMzIwIE1hcmNoIFJvYWQKKwkJCQlTdWl0ZSA1MDAKKwkJCQlPdHRhd2EgT04gSzJLIDJFMworCQkJCUNBTkFEQQorCiswMC0xMC0zMSAgIChoZXgpCQlPQkpFQ1RJVkUgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMTAzMSAgICAgKGJhc2UgMTYpCQlPQkpFQ1RJVkUgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk3NSBST0NIRVNURVIgQVZFLgorCQkJCVVOSVQgMQorCQkJCVBPUlRTTU9VVEggTkggMDM4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTMyICAgKGhleCkJCUFMVEEgVEVDSE5PTE9HWQorMDAxMDMyICAgICAoYmFzZSAxNikJCUFMVEEgVEVDSE5PTE9HWQorCQkJCTk1MDAgU09VVEggNTAwIFdFU1QgLSBTVEUgIzIxMgorCQkJCVNBTkRZIFVUIDg0MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0zMyAgIChoZXgpCQlBQ0NFU1NMQU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMTAzMyAgICAgKGJhc2UgMTYpCQlBQ0NFU1NMQU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk0NCBBSVJQT1JUIFBBUktXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMzQgICAoaGV4KQkJR05QIENvbXB1dGVycworMDAxMDM0ICAgICAoYmFzZSAxNikJCUdOUCBDb21wdXRlcnMKKwkJCQk1NTUgRS5IdW50aW5ndG9uIERyaXZlCisJCQkJTW9ucm92aWEgQ0EgOTEwMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTM1ICAgKGhleCkJCUVMSVRFR1JPVVAgQ09NUFVURVIgU1lTVEVNUyBDTy4sIExURAorMDAxMDM1ICAgICAoYmFzZSAxNikJCUVMSVRFR1JPVVAgQ09NUFVURVIgU1lTVEVNUyBDTy4sIExURAorCQkJCTZGLCBOTy4gODgsIFNFQy4gNgorCQkJCUNIVU5HIFNIQU4gTi4gUkQuCisJCQkJU2hpaCBMaW4gVEFJUEVJIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtMzYgICAoaGV4KQkJSU5URVItVEVMIElOVEVHUkFURUQgU1lTVEVNUworMDAxMDM2ICAgICAoYmFzZSAxNikJCUlOVEVSLVRFTCBJTlRFR1JBVEVEIFNZU1RFTVMKKwkJCQk3MzAwIFcuIEJPU1RPTiBTVFJFRVQKKwkJCQlDSEFORExFUiBBWiA4NTIyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMzcgICAoaGV4KQkJQ1lRJ3ZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDEwMzcgICAgIChiYXNlIDE2KQkJQ1lRJ3ZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJQ09TTU8gQkxERy4gMTBGLCBOTy4xLTcKKwkJCQlTSElOSlVLVSAxLUNIT01FCisJCQkJU0hJTkpVS1UtS1UsICBUT0tZTyAxNjAgIAorCQkJCUpBUEFOCisKKzAwLTEwLTM4ICAgKGhleCkJCU1JQ1JPIFJFU0VBUkNIIElOU1RJVFVURSwgSU5DLgorMDAxMDM4ICAgICAoYmFzZSAxNikJCU1JQ1JPIFJFU0VBUkNIIElOU1RJVFVURSwgSU5DLgorCQkJCTJGLCAyTC0yLTUgTUlOQU1JIFNISU5BR0FXQQorCQkJCVNISU5BR0FXQS1LVQorCQkJCVRPS1lPICAKKwkJCQlKQVBBTgorCiswMC0xMC0zOSAgIChoZXgpCQlWZWN0cm9uIFN5c3RlbXMgQUcKKzAwMTAzOSAgICAgKGJhc2UgMTYpCQlWZWN0cm9uIFN5c3RlbXMgQUcKKwkJCQlXaWxseS1CcmFuZHQtV2VnIDQxCisJCQkJNDgxNTUgTXVlbnN0ZXIgIAorCQkJCUdFUk1BTlkKKworMDAtMTAtM0EgICAoaGV4KQkJRElBTU9ORCBORVRXT1JLIFRFQ0gKKzAwMTAzQSAgICAgKGJhc2UgMTYpCQlESUFNT05EIE5FVFdPUksgVEVDSAorCQkJCVAuTy4gQk9YIDg0NTI1CisJCQkJR1JFRU5TSURFIDIwMzQgIAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xMC0zQiAgIChoZXgpCQlISVBQSSBORVRXT1JLSU5HIEZPUlVNCiswMDEwM0IgICAgIChiYXNlIDE2KQkJSElQUEkgTkVUV09SS0lORyBGT1JVTQorCQkJCVBPIEJPWCAxMDE3MworCQkJCUFMQlVRVUVSUVVFIE5NIDg3MTg0LTAxNzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTNDICAgKGhleCkJCUlDIEVOU0VNQkxFLCBJTkMuCiswMDEwM0MgICAgIChiYXNlIDE2KQkJSUMgRU5TRU1CTEUsIElOQy4KKwkJCQkzMjU1LTIgU0NPVFQgQkxWRC4tLVNURS4jMTA1CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTNEICAgKGhleCkJCVBIQVNFQ09NLCBMVEQuCiswMDEwM0QgICAgIChiYXNlIDE2KQkJUEhBU0VDT00sIExURC4KKwkJCQlQLk8uIEJPWCA0NTAxNworCQkJCUpFUlVTQUxFTSA5MTQ1MCAgCisJCQkJSVNSQUVMCisKKzAwLTEwLTNFICAgKGhleCkJCU5FVFNDSE9PTFMgQ09SUE9SQVRJT04KKzAwMTAzRSAgICAgKGJhc2UgMTYpCQlORVRTQ0hPT0xTIENPUlBPUkFUSU9OCisJCQkJMjAwMyBMQU5ESU5HUyBEUklWRQorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTNGICAgKGhleCkJCVRPTExHUkFERSBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDAxMDNGICAgICAoYmFzZSAxNikJCVRPTExHUkFERSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTQ5MyBOSVhPTiBST0FECisJCQkJQ0hFU1dJQ0sgUEEgMTUwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTQwICAgKGhleCkJCUlOVEVSTUVDIENPUlBPUkFUSU9OCiswMDEwNDAgICAgIChiYXNlIDE2KQkJSU5URVJNRUMgQ09SUE9SQVRJT04KKwkJCQk2MDAxIDM2VEggQVZFIFdFU1QKKwkJCQlQLk8uIEJPWCA0MjgwCisJCQkJRVZFUkVUVCBXQSA5ODIwMy05MjgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00MSAgIChoZXgpCQlCUklTVE9MIEJBQkNPQ0ssIElOQy4KKzAwMTA0MSAgICAgKGJhc2UgMTYpCQlCUklTVE9MIEJBQkNPQ0ssIElOQy4KKwkJCQkxMTAwIEJVQ0tJTkdIQU0gU1RSRUVUCisJCQkJV0FURVJUT1dOIENUIDA2Nzk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00MiAgIChoZXgpCQlBbGFjcml0ZWNoLCBJbmMuCiswMDEwNDIgICAgIChiYXNlIDE2KQkJQWxhY3JpdGVjaCwgSW5jLgorCQkJCTE5OTUgTi4gRmlyc3QgU3RyZWV0CisJCQkJU3VpdGUgMjAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTQzICAgKGhleCkJCUEyIENPUlBPUkFUSU9OCiswMDEwNDMgICAgIChiYXNlIDE2KQkJQTIgQ09SUE9SQVRJT04KKwkJCQk2LTE0LTExIFlVVEFLQS1DSE8KKwkJCQlTSElOQUdBV0EtS1UKKwkJCQlUT0tZTyAgCisJCQkJSkFQQU4KKworMDAtMTAtNDQgICAoaGV4KQkJSW5ub0xhYnMgQ29ycG9yYXRpb24KKzAwMTA0NCAgICAgKGJhc2UgMTYpCQlJbm5vTGFicyBDb3Jwb3JhdGlvbgorCQkJCTJGLTQsIE5PLiAxNiwgTEFORSA2MDksIENIVU5HLUhTSU4gUkQuCisJCQkJU0VDLiA1IFNBTi1DSFVORyBDSVRZCisJCQkJVGFpcGVpIEhzaWVuICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEwLTQ1ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAxMDQ1ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCU9QVGVyYSBTb2x1dGlvbnMgRGl2aXNpb24KKwkJCQkzNDAgVGVycnkgRm94IERyaXZlCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLLTJYMyAKKwkJCQlDQU5BREEKKworMDAtMTAtNDYgICAoaGV4KQkJQUxDT1JOIE1DQlJJREUgSU5DLgorMDAxMDQ2ICAgICAoYmFzZSAxNikJCUFMQ09STiBNQ0JSSURFIElOQy4KKwkJCQkzMzAwIFMuIEhJQVdBU1NFRSAgIzEwNQorCQkJCU9STEFORE8gRkwgMzI4MzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTQ3ICAgKGhleCkJCUVDSE8gRUxFVFJJQyBDTy4gTFRELgorMDAxMDQ3ICAgICAoYmFzZSAxNikJCUVDSE8gRUxFVFJJQyBDTy4gTFRELgorCQkJCU5PLjE4MDAgSUNISUdBTyBDSE8KKwkJCQlNSURPUkkgV0FSRAorCQkJCVlPS09IQU1BIENJVFkgIDIyNQorCQkJCUpBUEFOCisKKzAwLTEwLTQ4ICAgKGhleCkJCUhUUkMgQVVUT01BVElPTiwgSU5DLgorMDAxMDQ4ICAgICAoYmFzZSAxNikJCUhUUkMgQVVUT01BVElPTiwgSU5DLgorCQkJCTI4NSBMQVZBTCBTVFJFRVQKKwkJCQlCUk9NUFRPTlZJTExFCisJCQkJUVVFQkVDIEowQiAxSDAgIAorCQkJCUNBTkFEQQorCiswMC0xMC00OSAgIChoZXgpCQlTaG9yZVRlbCwgSW5jCiswMDEwNDkgICAgIChiYXNlIDE2KQkJU2hvcmVUZWwsIEluYworCQkJCTk2MCBTdGV3YXJ0IERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00QSAgIChoZXgpCQlUaGUgUGFydnVzIENvcnBvcmF0aW9uCiswMDEwNEEgICAgIChiYXNlIDE2KQkJVGhlIFBhcnZ1cyBDb3Jwb3JhdGlvbgorCQkJCTMyMjIgUyBXYXNoaW5ndG9uIFN0LgorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00QiAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMDEwNEIgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQkFZRlJPTlQgUExBWkEKKwkJCQlNQUlMU1RPUDogNDIyMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00QyAgIChoZXgpCQlMZUNyb3kgQ29ycG9yYXRpb24KKzAwMTA0QyAgICAgKGJhc2UgMTYpCQlMZUNyb3kgQ29ycG9yYXRpb24KKwkJCQkzMzg1IFNjb3R0IEJsdmQuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTREICAgKGhleCkJCVNVUlRFQyBJTkRVU1RSSUVTLCBJTkMuCiswMDEwNEQgICAgIChiYXNlIDE2KQkJU1VSVEVDIElORFVTVFJJRVMsIElOQy4KKwkJCQlOTy4xMSwgQUxMRVkgMTYsIExBTkUgMzM3CisJCQkJVEEtVFVORyBST0FEIFNFQy4xLCBTSEktQ0hJSAorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC00RSAgIChoZXgpCQlDRU9MT0dJQworMDAxMDRFICAgICAoYmFzZSAxNikJCUNFT0xPR0lDCisJCQkJWkEgREUgUElTU0FMT09QCisJCQkJUlVFIEVET1VBUkQgQlJBTkxZCisJCQkJNzgxOTIgVFJBUFBFUyAgCisJCQkJRlJBTkNFCisKKzAwLTEwLTRGICAgKGhleCkJCU9yYWNsZSBDb3Jwb3JhdGlvbgorMDAxMDRGICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbgorCQkJCTE3IE5ldHdvcmsgQ2lyY2xlCisJCQkJQnVpbGRpbmcgMTcsIFVNUEsxNy0xMzEKKwkJCQlNZW5sbyBQYXJrIENBIDk1MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC01MCAgIChoZXgpCQlSSU9OIENPLiwgTFRELgorMDAxMDUwICAgICAoYmFzZSAxNikJCVJJT04gQ08uLCBMVEQuCisJCQkJMy0yMC00MSBISUdBU0hJTU9UT01BQ0hJCisJCQkJS09LVUJVTkpJLCBUT0tZTyAxODUgIAorCQkJCUpBUEFOCisKKzAwLTEwLTUxICAgKGhleCkJCUNNSUNSTyBDT1JQT1JBVElPTgorMDAxMDUxICAgICAoYmFzZSAxNikJCUNNSUNSTyBDT1JQT1JBVElPTgorCQkJCTE3LTIwLTIgS0FNSU5PLUNITworCQkJCVRBS0FNQVRTVS1TSEksIEtBR0FXQSA3NjEgIAorCQkJCUpBUEFOCisKKzAwLTEwLTUyICAgKGhleCkJCU1FVFRMRVItVE9MRURPIChBTEJTVEFEVCkgR01CSAorMDAxMDUyICAgICAoYmFzZSAxNikJCU1FVFRMRVItVE9MRURPIChBTEJTVEFEVCkgR01CSAorCQkJCVAuTy4gQk9YIDIgNTAKKwkJCQlELTcyNDIzIEFMQlNUQURUICAKKwkJCQlHRVJNQU5ZCisKKzAwLTEwLTUzICAgKGhleCkJCUNPTVBVVEVSIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMTA1MyAgICAgKGJhc2UgMTYpCQlDT01QVVRFUiBURUNITk9MT0dZIENPUlAuCisJCQkJNTAgVy4gVEVDSE5FQ0VOVEVSIERSSVZFCisJCQkJTUlMRk9SRCBPSCA0NTE1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNTQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAxMDU0ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNTUgICAoaGV4KQkJRlVKSVRTVSBNSUNST0VMRUNUUk9OSUNTLCBJTkMuCiswMDEwNTUgICAgIChiYXNlIDE2KQkJRlVKSVRTVSBNSUNST0VMRUNUUk9OSUNTLCBJTkMuCisJCQkJMzU0NSBOT1JUSCBGSVJTVCBTVFJFRVQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xODA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC01NiAgIChoZXgpCQlTT0RJQ0sgQ08uLCBMVEQuCiswMDEwNTYgICAgIChiYXNlIDE2KQkJU09ESUNLIENPLiwgTFRELgorCQkJCTMtMTItMSBOQUtBTUFDSElEQUkKKwkJCQlUU1VaVUtJLUtVLCBZT0tPSEFNQSBLQU5BR0FXQSAyMjQgCisJCQkJSkFQQU4KKworMDAtMTAtNTcgICAoaGV4KQkJUmViZWwuY29tLCBJbmMuCiswMDEwNTcgICAgIChiYXNlIDE2KQkJUmViZWwuY29tLCBJbmMuCisJCQkJMTUwIElTQUJFTExBIFNUUkVFVC0tU1RFLiAxMDAwCisJCQkJT1RUQVdBLCBPTlRBUklPIEsxUyAxVjcgIAorCQkJCUNBTkFEQQorCiswMC0xMC01OCAgIChoZXgpCQlBcnJvd1BvaW50IENvbW11bmljYXRpb25zCiswMDEwNTggICAgIChiYXNlIDE2KQkJQXJyb3dQb2ludCBDb21tdW5pY2F0aW9ucworCQkJCTIzNSBMSVRUTEVUT04gUk9BRAorCQkJCVdFU1RGT1JEIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC01OSAgIChoZXgpCQlESUFCTE8gUkVTRUFSQ0ggQ08uIExMQworMDAxMDU5ICAgICAoYmFzZSAxNikJCURJQUJMTyBSRVNFQVJDSCBDTy4gTExDCisJCQkJODI1IFNURVdBUlQgRFJJVkUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTVBICAgKGhleCkJCTNDT00gQ09SUE9SQVRJT04KKzAwMTA1QSAgICAgKGJhc2UgMTYpCQkzQ09NIENPUlBPUkFUSU9OCisJCQkJNTQwMCBCQVlGUk9OVCBQTEFaQQorCQkJCU1BSUxTVE9QOiAgNDIyMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC01QiAgIChoZXgpCQlORVQgSU5TSUdIVCBBQgorMDAxMDVCICAgICAoYmFzZSAxNikJCU5FVCBJTlNJR0hUIEFCCisJCQkJVmFzdGJlcmdhIEFsbGUgOQorCQkJCVNFLTEyNjAgMzAgSGFnZXJzdGVuIAorCQkJCVNXRURFTgorCiswMC0xMC01QyAgIChoZXgpCQlRVUFOVFVNIERFU0lHTlMgKEguSy4pIExURC4KKzAwMTA1QyAgICAgKGJhc2UgMTYpCQlRVUFOVFVNIERFU0lHTlMgKEguSy4pIExURC4KKwkJCQk1L0YuLCBTT01FUlNFVCBIT1VTRSwgVEFJS09PIFBMQUNFCisJCQkJOTc5IEtJTkcnUyBST0FELAorCQkJCVFVQVJSWSBCQVkgIAorCQkJCUhPTkcgS09ORworCiswMC0xMC01RCAgIChoZXgpCQlEcmFlZ2VyIE1lZGljYWwKKzAwMTA1RCAgICAgKGJhc2UgMTYpCQlEcmFlZ2VyIE1lZGljYWwKKwkJCQlNb2lzbGluZ2VyIEFsbGVlIDUzLTU1CisJCQkJTHVlYmVjayAgRC0yMzU0MgorCQkJCUdFUk1BTlkKKworMDAtMTAtNUUgICAoaGV4KQkJSEVLSU1JQU4gTEFCT1JBVE9SSUVTLCBJTkMuCiswMDEwNUUgICAgIChiYXNlIDE2KQkJSEVLSU1JQU4gTEFCT1JBVE9SSUVTLCBJTkMuCisJCQkJMTUyMDAgT01FR0EgRFJJVkUKKwkJCQlST0NLVklMTEUgTUQgMjA4NTAtMzI0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNUYgICAoaGV4KQkJWk9ESUFDIERBVEEgU1lTVEVNUworMDAxMDVGICAgICAoYmFzZSAxNikJCVpPRElBQyBEQVRBIFNZU1RFTVMKKwkJCQk1IEF2IERlcyBBbmRlcworCQkJCUxlcyBVbGlzICA5MTk0MAorCQkJCUZSQU5DRQorCiswMC0xMC02MCAgIChoZXgpCQlCSUxMSU9OVE9OIFNZU1RFTVMsIElOQy4KKzAwMTA2MCAgICAgKGJhc2UgMTYpCQlCSUxMSU9OVE9OIFNZU1RFTVMsIElOQy4KKwkJCQkzRi0xLCBOTy4gOCwgTEFORSA5OQorCQkJCVBVLURJTkcgUkQuCisJCQkJSFNJTi1DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtNjEgICAoaGV4KQkJSE9TVExJTksgQ09SUC4KKzAwMTA2MSAgICAgKGJhc2UgMTYpCQlIT1NUTElOSyBDT1JQLgorCQkJCTEwRi0xLCBOTy4gMTgxCisJCQkJU0VDLjEsIFRBLVRVTkcgUkQuCisJCQkJSFNJLUNISUgsIFRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC02MiAgIChoZXgpCQlOWCBTRVJWRVIsIElMTkMuCiswMDEwNjIgICAgIChiYXNlIDE2KQkJTlggU0VSVkVSLCBJTE5DLgorCQkJCTU0MDEgRS4gTEEgUEFMTUEgQVZFLgorCQkJCUFOQUhFSU0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTYzICAgKGhleCkJCVNUQVJHVUlERSBESUdJVEFMIE5FVFdPUktTCiswMDEwNjMgICAgIChiYXNlIDE2KQkJU1RBUkdVSURFIERJR0lUQUwgTkVUV09SS1MKKwkJCQk1NzU0IFBBQ0lGSUMgQ0VOVEVSIEJMVkQuCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC02NCAgIChoZXgpCQlETlBHLCBMTEMKKzAwMTA2NCAgICAgKGJhc2UgMTYpCQlETlBHLCBMTEMKKwkJCQkyMCBOb3J0aCBXZW50d29ydGggQXZlbnVlCisJCQkJTG9uZG9uZGVycnkgTkggMDMwNTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTY1ICAgKGhleCkJCVJBRFlORSBDT1JQT1JBVElPTgorMDAxMDY1ICAgICAoYmFzZSAxNikJCVJBRFlORSBDT1JQT1JBVElPTgorCQkJCTUyMjUgUy4gMzdUSCBTVFJFRVQKKwkJCQlQSE9FTklYIEFaIDg1MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC02NiAgIChoZXgpCQlBRFZBTkNFRCBDT05UUk9MIFNZU1RFTVMsIElOQy4KKzAwMTA2NiAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBDT05UUk9MIFNZU1RFTVMsIElOQy4KKwkJCQkyNzU1IE5PUlRIV09PRFMgUEFSS1dBWQorCQkJCU5PUkNST1NTIEdBIDMwMDcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC02NyAgIChoZXgpCQlSRURCQUNLIE5FVFdPUktTLCBJTkMuCiswMDEwNjcgICAgIChiYXNlIDE2KQkJUkVEQkFDSyBORVRXT1JLUywgSU5DLgorCQkJCTI1NzAgTk9SVEggMVNUIFNUUkVFVAorCQkJCVNVSVRFICM0MTAKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNjggICAoaGV4KQkJQ09NT1MgVEVMRUNPTQorMDAxMDY4ICAgICAoYmFzZSAxNikJCUNPTU9TIFRFTEVDT00KKwkJCQlTQUVIQU4gQi9ELywgMjctMSBTVVBZTy1ET05HCisJCQkJQ0hVTkctR1UsIFNFT1VMIDEwMC0yMzAgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMC02OSAgIChoZXgpCQlIRUxJT1NTIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDEwNjkgICAgIChiYXNlIDE2KQkJSEVMSU9TUyBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTM5MSBUT1RURU0gUE9ORCBSRC4tIFNURSMzMDMKKwkJCQlXQUxUSEFNIE1BIDAyMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC02QSAgIChoZXgpCQlESUdJVEFMIE1JQ1JPV0FWRSBDT1JQT1JBVElPTgorMDAxMDZBICAgICAoYmFzZSAxNikJCURJR0lUQUwgTUlDUk9XQVZFIENPUlBPUkFUSU9OCisJCQkJMTcwIFJPU0UgT1JDSEFSRCBXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNkIgICAoaGV4KQkJU09OVVMgTkVUV09SS1MsIElOQy4KKzAwMTA2QiAgICAgKGJhc2UgMTYpCQlTT05VUyBORVRXT1JLUywgSU5DLgorCQkJCTUgQ0FSTElTTEUgUk9BRAorCQkJCVdFU1RGT1JEIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC02QyAgIChoZXgpCQlJbmZyYXRlYyBBRworMDAxMDZDICAgICAoYmFzZSAxNikJCUluZnJhdGVjIEFHCisJCQkJV2VybmVyLXZvbi1TaWVtZW5zLVN0ci4gNworCQkJCTY0NjI1IEJlbnNoZWltIAorCQkJCUdFUk1BTlkKKworMDAtMTAtNkQgICAoaGV4KQkJQXh4Y2VsZXJhIEJyb2FkYmFuZCBXaXJlbGVzcworMDAxMDZEICAgICAoYmFzZSAxNikJCUF4eGNlbGVyYSBCcm9hZGJhbmQgV2lyZWxlc3MKKwkJCQkxNjAwIEVhc3QgUGFyaGFtIFJvYWQKKwkJCQlSaWNobW9uZCBWQSAyMzIyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNkUgICAoaGV4KQkJVEFESVJBTiBDT00uIExURC4KKzAwMTA2RSAgICAgKGJhc2UgMTYpCQlUQURJUkFOIENPTS4gTFRELgorCQkJCTI2IEhBU0hPRlRJTSBTVC4KKwkJCQlIT0xPTiAgNTgxMDIgIAorCQkJCUlTUkFFTAorCiswMC0xMC02RiAgIChoZXgpCQlUUkVOVE9OIFRFQ0hOT0xPR1kgSU5DLgorMDAxMDZGICAgICAoYmFzZSAxNikJCVRSRU5UT04gVEVDSE5PTE9HWSBJTkMuCisJCQkJMjM1MCBDRU5URU5OSUFMIERSSVZFCisJCQkJR0FJTkVTVklMTEUgR0EgMzA1MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTcwICAgKGhleCkJCUNBUkFET04gVFJFTkQgTFRELgorMDAxMDcwICAgICAoYmFzZSAxNikJCUNBUkFET04gVFJFTkQgTFRELgorCQkJCVAuTy4gQk9YIDM0LCBIT1JTSEFNCisJCQkJV0VTVCBTVVNTRVgsIFJIMTIgMllGIEVOR0xBTkQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTAtNzEgICAoaGV4KQkJQURWQU5FVCBJTkMuCiswMDEwNzEgICAgIChiYXNlIDE2KQkJQURWQU5FVCBJTkMuCisJCQkJMy0yMC04IE5PREEKKwkJCQlPS0FZQU1JIDcwMCAKKwkJCQlKQVBBTgorCiswMC0xMC03MiAgIChoZXgpCQlHVk4gVEVDSE5PTE9HSUVTLCBJTkMuCiswMDEwNzIgICAgIChiYXNlIDE2KQkJR1ZOIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTgyMDAgQlJZQU4gREFJUlkgUk9BRAorCQkJCVNVSVRFICMxMDAKKwkJCQlMQVJHTyBGTCAzMzc3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNzMgICAoaGV4KQkJVGVjaG5vYm94LCBJbmMuCiswMDEwNzMgICAgIChiYXNlIDE2KQkJVGVjaG5vYm94LCBJbmMuCisJCQkJMTQwIE1vdW50IEhvbGx5IEJ5cGFzcworCQkJCVVuaXQgMQorCQkJCUx1bWJlcnRvbiBOSiAwODA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNzQgICAoaGV4KQkJQVRFTiBJTlRFUk5BVElPTkFMIENPLiwgTFRELgorMDAxMDc0ICAgICAoYmFzZSAxNikJCUFURU4gSU5URVJOQVRJT05BTCBDTy4sIExURC4KKwkJCQkxMkYsIE5PLjEwMSwgU1VORyBDSElBTkcgUkQuCisJCQkJVEFJUEVJLCAxMDQyOCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC03NSAgIChoZXgpCQlNYXh0b3IgQ29ycG9yYXRpb24KKzAwMTA3NSAgICAgKGJhc2UgMTYpCQlNYXh0b3IgQ29ycG9yYXRpb24KKwkJCQkyNDUyIENsb3ZlciBCYXNpbiBEci4KKwkJCQlMb2dtb250IENPIDgwNTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC03NiAgIChoZXgpCQlFVVJFTSBHbWJICiswMDEwNzYgICAgIChiYXNlIDE2KQkJRVVSRU0gR21iSAorCQkJCUpVTElDSEVSIFNUUi4gMzM4QgorCQkJCUQtNTIwNzAgQUFDSEVOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTEwLTc3ICAgKGhleCkJCVNBRiBEUklWRSBTWVNURU1TLCBMVEQuCiswMDEwNzcgICAgIChiYXNlIDE2KQkJU0FGIERSSVZFIFNZU1RFTVMsIExURC4KKwkJCQk4OCBBUkRFTFQgQVZFLgorCQkJCUtJVENIRU5FUiwgT05UQVJJTyBOMkMgMkM5ICAKKwkJCQlDQU5BREEKKworMDAtMTAtNzggICAoaGV4KQkJTlVFUkEgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMTA3OCAgICAgKGJhc2UgMTYpCQlOVUVSQSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTEwNDQ1IFBBQ0lGSUMgQ0VOVEVSIENPVVJUCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC03OSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDEwNzkgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFIuCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtN0EgICAoaGV4KQkJQW1iaUNvbSwgSW5jLgorMDAxMDdBICAgICAoYmFzZSAxNikJCUFtYmlDb20sIEluYy4KKwkJCQkyNDUwIFNDT1RUIEJMVkQuLCAjMzA1CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTdCICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTA3QiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuVEFTTUFOIERSLi1TSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTdDICAgKGhleCkJCVAtQ09NLCBJTkMuCiswMDEwN0MgICAgIChiYXNlIDE2KQkJUC1DT00sIElOQy4KKwkJCQkzMTc1IFMuIFdJTkNIRVNURVIgQkxWRC4KKwkJCQlDQU1QQkVMTCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtN0QgICAoaGV4KQkJQVVST1JBIENPTU1VTklDQVRJT05TLCBMVEQuCiswMDEwN0QgICAgIChiYXNlIDE2KQkJQVVST1JBIENPTU1VTklDQVRJT05TLCBMVEQuCisJCQkJUC5PLiBCT1ggMTk0MgorCQkJCU1BQ1FVQVJJRSBDRU5UUkUsIE5PUlRIIFJZREUKKwkJCQlOU1cgMjExMyAgCisJCQkJQVVTVFJBTElBCisKKzAwLTEwLTdFICAgKGhleCkJCUJBQ0hNQU5OIEVMRUNUUk9OSUMgR21iSAorMDAxMDdFICAgICAoYmFzZSAxNikJCUJBQ0hNQU5OIEVMRUNUUk9OSUMgR21iSAorCQkJCUtSRVVaQUVDS0VSV0VHIDMzCisJCQkJQSA2ODA2IEZFTERLSVJDSCAgCisJCQkJQVVTVFJJQQorCiswMC0xMC03RiAgIChoZXgpCQlDUkVTVFJPTiBFTEVDVFJPTklDUywgSU5DLgorMDAxMDdGICAgICAoYmFzZSAxNikJCUNSRVNUUk9OIEVMRUNUUk9OSUNTLCBJTkMuCisJCQkJMTAxIEJST0FEV0FZCisJCQkJQ1JFU1NLSUxMIE5KIDA3NjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC04MCAgIChoZXgpCQlNRVRBV0FWRSBDT01NVU5JQ0FUSU9OUworMDAxMDgwICAgICAoYmFzZSAxNikJCU1FVEFXQVZFIENPTU1VTklDQVRJT05TCisJCQkJODcwMCAxNDhUSCBBVkVOVUUgTi5FLgorCQkJCVJFRE1PTkQgV0EgOTgwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTgxICAgKGhleCkJCURQUywgSU5DLgorMDAxMDgxICAgICAoYmFzZSAxNikJCURQUywgSU5DLgorCQkJCTQ5MjIgRUFTVCBZQUxFIEFWRU5VRQorCQkJCUZSRVNOTyBDQSA5MzcyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODIgICAoaGV4KQkJSk5BIFRFTEVDT01NVU5JQ0FUSU9OUyBMSU1JVEVECiswMDEwODIgICAgIChiYXNlIDE2KQkJSk5BIFRFTEVDT01NVU5JQ0FUSU9OUyBMSU1JVEVECisJCQkJMTYgU01JVEggU1QsIENIQVRTV09PRAorCQkJCU5TVyAyMDY3IAorCQkJCUFVU1RSQUxJQQorCiswMC0xMC04MyAgIChoZXgpCQlIRVdMRVRULVBBQ0tBUkQgQ09NUEFOWQorMDAxMDgzICAgICAoYmFzZSAxNikJCUhFV0xFVFQtUEFDS0FSRCBDT01QQU5ZCisJCQkJTUFJTCBTVE9QIDQyTEUKKwkJCQkxMTAwMDAgV09MRkUgUk9BRAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODQgICAoaGV4KQkJSy1CT1QgQ09NTVVOSUNBVElPTlMKKzAwMTA4NCAgICAgKGJhc2UgMTYpCQlLLUJPVCBDT01NVU5JQ0FUSU9OUworCQkJCVAuTy4gQk9YIDQxMAorCQkJCU5PUlRPTiBNQSAwMjc2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODUgICAoaGV4KQkJUE9MQVJJUyBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDAxMDg1ICAgICAoYmFzZSAxNikJCVBPTEFSSVMgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxMDIwMCBTVyBBTExFTiBCTFZELgorCQkJCUJFQVZFUlRPTiBPUiA5NzAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODYgICAoaGV4KQkJQVRUTyBUZWNobm9sb2d5LCBJbmMuCiswMDEwODYgICAgIChiYXNlIDE2KQkJQVRUTyBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTU1IENyb3NzcG9pbnQgUGt3eS4KKwkJCQlBbWhlcnN0IE5ZIDE0MDY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC04NyAgIChoZXgpCQlYc3RyZWFtaXMgUExDCiswMDEwODcgICAgIChiYXNlIDE2KQkJWHN0cmVhbWlzIFBMQworCQkJCU9YRk9SRCBTQ0lFTkNFIFBBUksKKwkJCQlHMTAuICAyIE1BR0RBTEVOIENFTlRSRSBST0JFUlQgUk9CSU5TT04KKwkJCQlPWEZPUkQgMFg0IDRHQSBFbmdsYW5kIAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODggICAoaGV4KQkJQU1FUklDQU4gTkVUV09SS1MgSU5DLgorMDAxMDg4ICAgICAoYmFzZSAxNikJCUFNRVJJQ0FOIE5FVFdPUktTIElOQy4KKwkJCQk2ODAwIE9SQU5HRVRIT1JQRSBBVkUuICNBCisJCQkJQlVFTkEgUEFSSyBDQSA5MDYyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODkgICAoaGV4KQkJV2ViU29uaWMKKzAwMTA4OSAgICAgKGJhc2UgMTYpCQlXZWJTb25pYworCQkJCTM0NjYgRURXQVJEIEFWRS4KKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOEEgICAoaGV4KQkJVGVyYUxvZ2ljLCBJbmMuCiswMDEwOEEgICAgIChiYXNlIDE2KQkJVGVyYUxvZ2ljLCBJbmMuCisJCQkJNzA3IENBTElGT1JOSUEgU1RSRUVUCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOEIgICAoaGV4KQkJTEFTRVJBTklNQVRJT04gU09MTElOR0VSIEdtYkgKKzAwMTA4QiAgICAgKGJhc2UgMTYpCQlMQVNFUkFOSU1BVElPTiBTT0xMSU5HRVIgR21iSAorCQkJCUNSRUxMRVNUUi4gMTkvMjAKKwkJCQlEIDEwODI3IEJFUkxJTiAgCisJCQkJR0VSTUFOWQorCiswMC0xMC04QyAgIChoZXgpCQlGVUpJVFNVIFRFTEVDT01NVU5JQ0FUSU9OUyBFVVJPUEUsIExURC4KKzAwMTA4QyAgICAgKGJhc2UgMTYpCQlGVUpJVFNVIFRFTEVDT01NVU5JQ0FUSU9OUyBFVVJPUEUsIExURC4KKwkJCQlTT0xJSFVMTCBQQVJLV0FZCisJCQkJQklSTUlOR0hBTSBCVVNJTkVTUyBQQVJLCisJCQkJQklSTUlOR0hBTSBCMzcgN1lVIEVuZ2xhbmQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTAtOEQgICAoaGV4KQkJSm9obnNvbiBDb250cm9scywgSW5jLgorMDAxMDhEICAgICAoYmFzZSAxNikJCUpvaG5zb24gQ29udHJvbHMsIEluYy4KKwkJCQk1MDcgRS4gTWljaGlnYW4gU3QuCisJCQkJUC5PLiBCb3ggNDIzIC8gTTczCisJCQkJTWlsd2F1a2VlIFdJIDUzMjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC04RSAgIChoZXgpCQlIVUdIIFNZTU9OUyBDT05DRVBUIFRlY2hub2xvZ2llcyBMdGQuCiswMDEwOEUgICAgIChiYXNlIDE2KQkJSFVHSCBTWU1PTlMgQ09OQ0VQVCBUZWNobm9sb2dpZXMgTHRkLgorCQkJCUFsZGVyIEhpbGxzIFBhcmsKKwkJCQkxNiBBbGRlciBIaWxscworCQkJCVBvb2xlLCBEb3JzZXQgQk0xMiA0QVIgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEwLThGICAgKGhleCkJCVJBUFRPUiBTWVNURU1TCiswMDEwOEYgICAgIChiYXNlIDE2KQkJUkFQVE9SIFNZU1RFTVMKKwkJCQk2OSBISUNLT1JZIEFWRS4KKwkJCQlXQUxUSEFNIE1BIDAyMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC05MCAgIChoZXgpCQlDSU1FVFJJQ1MsIElOQy4KKzAwMTA5MCAgICAgKGJhc2UgMTYpCQlDSU1FVFJJQ1MsIElOQy4KKwkJCQk1NSBURU1QTEUgUExBQ0UKKwkJCQlCT1NUT04gTUEgMDIxMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTkxICAgKGhleCkJCU5PIFdJUkVTIE5FRURFRCBCVgorMDAxMDkxICAgICAoYmFzZSAxNikJCU5PIFdJUkVTIE5FRURFRCBCVgorCQkJCVAuTy4gQk9YIDM0MworCQkJCTM3MjAgQUggQklMVEhPVkVOICAKKwkJCQlORVRIRVJMQU5EUworCiswMC0xMC05MiAgIChoZXgpCQlORVRDT1JFIElOQy4KKzAwMTA5MiAgICAgKGJhc2UgMTYpCQlORVRDT1JFIElOQy4KKwkJCQkxMkYtMiwgNTM3LCBTRUMuMgorCQkJCUtVQU5HLUZVIFJPQUQsCisJCQkJSFNJTkNIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC05MyAgIChoZXgpCQlDTVMgQ09NUFVURVJTLCBMVEQuCiswMDEwOTMgICAgIChiYXNlIDE2KQkJQ01TIENPTVBVVEVSUywgTFRELgorCQkJCTIwMSBBUkNBRElBCisJCQkJTkFSSU1BTiBQT0lOVAorCQkJCU1VTUJBSSA0MDAgMDAyMSAgCisJCQkJSU5ESUEKKworMDAtMTAtOTQgICAoaGV4KQkJUGVyZm9ybWFuY2UgQW5hbHlzaXMgQnJvYWRiYW5kLCBTcGlyZW50IHBsYworMDAxMDk0ICAgICAoYmFzZSAxNikJCVBlcmZvcm1hbmNlIEFuYWx5c2lzIEJyb2FkYmFuZCwgU3BpcmVudCBwbGMKKwkJCQkyNzM0OSBBZ291cmEgUm9hZAorCQkJCUNhbGFiYXNhcyBIaWxscyBDQSA5MTMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOTUgICAoaGV4KQkJVGhvbXNvbiBJbmMuCiswMDEwOTUgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBJbmMuCisJCQkJMTAxIFdlc3QgMTAzcmQgU3RyZWV0CisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjkwLTExMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTk2ICAgKGhleCkJCVRSQUNFV0VMTCBTWVNURU1TLCBJTkMuCiswMDEwOTYgICAgIChiYXNlIDE2KQkJVFJBQ0VXRUxMIFNZU1RFTVMsIElOQy4KKwkJCQk1NjcgRU5URVJQUklTRSBEUklWRQorCQkJCVdFU1RFUlZJTExFIE9IIDQzMDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC05NyAgIChoZXgpCQlXaW5OZXQgTWV0cm9wb2xpdGFuIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKzAwMTA5NyAgICAgKGJhc2UgMTYpCQlXaW5OZXQgTWV0cm9wb2xpdGFuIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKwkJCQk2NjEgRUFTVCBBUlFVRVMgQVZFLgorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOTggICAoaGV4KQkJU1RBUk5FVCBURUNITk9MT0dJRVMsIElOQy4KKzAwMTA5OCAgICAgKGJhc2UgMTYpCQlTVEFSTkVUIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTIyMTAgTydUT09MRSBBVkUuCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTk5ICAgKGhleCkJCUlubm9NZWRpYSwgSW5jLgorMDAxMDk5ICAgICAoYmFzZSAxNikJCUlubm9NZWRpYSwgSW5jLgorCQkJCTQ4MDAgR1JFQVQgQU1FUklDQSBQQVJLV0FZCisJCQkJU1VJVEUgIzQwMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC05QSAgIChoZXgpCQlORVRMSU5FCiswMDEwOUEgICAgIChiYXNlIDE2KQkJTkVUTElORQorCQkJCTcsIFJ1ZSBkZSBCaWV2cmVzCisJCQkJOTIxNDAgQ0xBTUFSVCAgCisJCQkJRlJBTkNFCisKKzAwLTEwLTlCICAgKGhleCkJCUVtdWxleCBDb3Jwb3JhdGlvbgorMDAxMDlCICAgICAoYmFzZSAxNikJCUVtdWxleCBDb3Jwb3JhdGlvbgorCQkJCTMzMzMgU3VzYW4gU3RyZWV0CisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOUMgICAoaGV4KQkJTS1TWVNURU0gQ08uLCBMVEQuCiswMDEwOUMgICAgIChiYXNlIDE2KQkJTS1TWVNURU0gQ08uLCBMVEQuCisJCQkJMS0xLTI1IFNISU4gVVJBU0hJTUEgQ0hPVQorCQkJCUtBTkFHQVdBLUtVCisJCQkJIFlPS09IQU1BIDIyMSAgCisJCQkJSkFQQU4KKworMDAtMTAtOUQgICAoaGV4KQkJQ0xBUklORVQgU1lTVEVNUywgSU5DLgorMDAxMDlEICAgICAoYmFzZSAxNikJCUNMQVJJTkVUIFNZU1RFTVMsIElOQy4KKwkJCQkxNDE1IEtPTEwgQ0lSQ0xFICMxMDEKKwkJCQlTQU4gSk9TRSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOUUgICAoaGV4KQkJQVdBUkUsIElOQy4KKzAwMTA5RSAgICAgKGJhc2UgMTYpCQlBV0FSRSwgSU5DLgorCQkJCU9ORSBPQUsgUEFSSworCQkJCUJFREZPUkQgTUEgMDE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTlGICAgKGhleCkJCVBBVk8sIElOQy4KKzAwMTA5RiAgICAgKGJhc2UgMTYpCQlQQVZPLCBJTkMuCisJCQkJOTUgWUVTTEVSIFdBWQorCQkJCVNFQVRUTEUgV0EgOTgxMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUEwICAgKGhleCkJCUlOTk9WRVggVEVDSE5PTE9HSUVTLCBJTkMuCiswMDEwQTAgICAgIChiYXNlIDE2KQkJSU5OT1ZFWCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQlLRVlTVE9ORSBDT01NT05TCisJCQkJNTI2IEJSQURET0NLIEFWRS4KKwkJCQlUVVJUTEUgQ1JFRUsgUEEgMTUxNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUExICAgKGhleCkJCUtFTkRJTiBTRU1JQ09ORFVDVE9SLCBJTkMuCiswMDEwQTEgICAgIChiYXNlIDE2KQkJS0VORElOIFNFTUlDT05EVUNUT1IsIElOQy4KKwkJCQkxNTUwIFMuIEJBU0NPTSBBVkUuLCBTVEUuICMyNTAKKwkJCQlDQU1QQkVMTCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQTIgICAoaGV4KQkJVE5TCiswMDEwQTIgICAgIChiYXNlIDE2KQkJVE5TCisJCQkJODAwIFRoaXJkIFN0cmVldCwgU3VpdGUgQjEwMAorCQkJCUhFUk5ET04gVkEgMjAxNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUEzICAgKGhleCkJCU9NTklUUk9OSVgsIElOQy4KKzAwMTBBMyAgICAgKGJhc2UgMTYpCQlPTU5JVFJPTklYLCBJTkMuCisJCQkJNzYwIEhBUlJJU09OIFNUUkVFVAorCQkJCVNFQVRUTEUgV0EgOTgxMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUE0ICAgKGhleCkJCVhJUkNPTQorMDAxMEE0ICAgICAoYmFzZSAxNikJCVhJUkNPTQorCQkJCTIzMDAgQ09SUE9SQVRFIENFTlRFUiBEUi4KKwkJCQlUSE9VU0FORCBPQUtTIENBIDkxMzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BNSAgIChoZXgpCQlPWEZPUkQgSU5TVFJVTUVOVFMKKzAwMTBBNSAgICAgKGJhc2UgMTYpCQlPWEZPUkQgSU5TVFJVTUVOVFMKKwkJCQlJTkRVU1RSSUFMIEFOQUxZU0lTIEdST1VQCisJCQkJMTkvMjAgTlVGRklFTEQgV0FZCisJCQkJQWJpbmdkb24sIE94b24gT1gxNCAxVFggIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEwLUE2ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTBBNiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUE3ICAgKGhleCkJCVVORVggVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorMDAxMEE3ICAgICAoYmFzZSAxNikJCVVORVggVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCThGLTUsICMxMzAsIFNaRSBXRUkgUkQuLAorCQkJCUhTSU5DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtQTggICAoaGV4KQkJUkVMSUFOQ0UgQ09NUFVURVIgQ09SUC4KKzAwMTBBOCAgICAgKGJhc2UgMTYpCQlSRUxJQU5DRSBDT01QVVRFUiBDT1JQLgorCQkJCTMwMzIgQlVOS0VSIEhJTEwgTEFORQorCQkJCVNVSVRFIDIwMQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BOSAgIChoZXgpCQlBREhPQyBURUNITk9MT0dJRVMKKzAwMTBBOSAgICAgKGJhc2UgMTYpCQlBREhPQyBURUNITk9MT0dJRVMKKwkJCQkxMTUwIEZJUlNUIFNUUkVFVAorCQkJCVNBTiBKT1NFIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BQSAgIChoZXgpCQlNRURJQTQsIElOQy4KKzAwMTBBQSAgICAgKGJhc2UgMTYpCQlNRURJQTQsIElOQy4KKwkJCQkyNTAgMTRUSCBTVC4gTlcgLSBTVEUgIzQwMDIKKwkJCQlBVExBTlRBIEdBIDMwMzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BQiAgIChoZXgpCQlLT0lUTyBJTkRVU1RSSUVTLCBMVEQuCiswMDEwQUIgICAgIChiYXNlIDE2KQkJS09JVE8gSU5EVVNUUklFUywgTFRELgorCQkJCTEwMCBNQUVEQS1DSE8sIFRPVFNVS0EtS1UKKwkJCQlZT0tPSEFNQSAyNDQgIAorCQkJCUpBUEFOCisKKzAwLTEwLUFDICAgKGhleCkJCUlNQ0kgVEVDSE5PTE9HSUVTCiswMDEwQUMgICAgIChiYXNlIDE2KQkJSU1DSSBURUNITk9MT0dJRVMKKwkJCQk4NDAxIE9MRCBDT1VSVCBIS09VU0UgUkQKKwkJCQlTVUlURSAjMjAwCisJCQkJVklFTk5BIFZBIDIyMTgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BRCAgIChoZXgpCQlTT0ZUUk9OSUNTIFVTQiwgSU5DLgorMDAxMEFEICAgICAoYmFzZSAxNikJCVNPRlRST05JQ1MgVVNCLCBJTkMuCisJCQkJNTA4NSBMSVNUIERSSVZFCisJCQkJQ09MT1JBRE8gU1BSSU5HUyBDTyA4MDkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQUUgICAoaGV4KQkJU0hJTktPIEVMRUNUUklDIElORFVTVFJJRVMgQ08uCiswMDEwQUUgICAgIChiYXNlIDE2KQkJU0hJTktPIEVMRUNUUklDIElORFVTVFJJRVMgQ08uCisJCQkJODAgT1NISU1BREEtTUFDSEkKKwkJCQlOQUdBTk8tU0hJIDM4MS0yMiAgCisJCQkJSkFQQU4KKworMDAtMTAtQUYgICAoaGV4KQkJVEFDIFNZU1RFTVMsIElOQy4KKzAwMTBBRiAgICAgKGJhc2UgMTYpCQlUQUMgU1lTVEVNUywgSU5DLgorCQkJCTEwMzUgUFVUTUFOIERSSVZFLS1TVEUuCisJCQkJSFVOVFNWSUxMRSBBTCAzNTgxNi0yMjcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1CMCAgIChoZXgpCQlNRVJJRElBTiBURUNITk9MT0dZIENPUlAuCiswMDEwQjAgICAgIChiYXNlIDE2KQkJTUVSSURJQU4gVEVDSE5PTE9HWSBDT1JQLgorCQkJCTExIE1DQlJJREUgQ09SUC4gQ0VOVEVSIERSLgorCQkJCUNIRVNURVJGSUVMRCBNRCA2MzAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQjEgICAoaGV4KQkJRk9SLUEgQ08uLCBMVEQuCiswMDEwQjEgICAgIChiYXNlIDE2KQkJRk9SLUEgQ08uLCBMVEQuCisJCQkJMi0zLTMgT09TQUtVCisJCQkJU0FLVVJBIENJVFksCisJCQkJQ0hJQkEgUFJFRi4gMjg1ICAKKwkJCQlKQVBBTgorCiswMC0xMC1CMiAgIChoZXgpCQlDT0FDVElWRSBBRVNUSEVUSUNTCiswMDEwQjIgICAgIChiYXNlIDE2KQkJQ09BQ1RJVkUgQUVTVEhFVElDUworCQkJCTQwMDAgQlJJREdFV0FZIC0gU1RFLiAjMzAzCisJCQkJU0FVU0FMSVRBIENBIDk0OTY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1CMyAgIChoZXgpCQlOT0tJQSBNVUxUSU1FRElBIFRFUk1JTkFMUworMDAxMEIzICAgICAoYmFzZSAxNikJCU5PS0lBIE1VTFRJTUVESUEgVEVSTUlOQUxTCisJCQkJTk9LSUEgSE9NRSBDT01NVU5JQ0FUSU9OUworCQkJCURJU0tFVFRHQVRBTiAxMQorCQkJCVNFLTU4MyAzNSBMSU5LT1BJTkcgIAorCQkJCVNXRURFTgorCiswMC0xMC1CNCAgIChoZXgpCQlBVE1PU1BIRVJFIE5FVFdPUktTCiswMDEwQjQgICAgIChiYXNlIDE2KQkJQVRNT1NQSEVSRSBORVRXT1JLUworCQkJCTEwNDYwIEJBTkRMRVkgRFJJVkUKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUI1ICAgKGhleCkJCUFDQ1RPTiBURUNITk9MT0dZIENPUlBPUkFUSU9OCiswMDEwQjUgICAgIChiYXNlIDE2KQkJQUNDVE9OIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKwkJCQlOTy4xLCBDUkVBVElPTiBSRC4gSUlJCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOQ0hVIDMwMCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC1CNiAgIChoZXgpCQlFTlRSQVRBIENPTU1VTklDQVRJT05TIENPUlAuCiswMDEwQjYgICAgIChiYXNlIDE2KQkJRU5UUkFUQSBDT01NVU5JQ0FUSU9OUyBDT1JQLgorCQkJCTU3NCBIRVJJVEFHRSBSRC4KKwkJCQlTT1VUSEJVUlkgQ1QgMDY0ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUI3ICAgKGhleCkJCUNPWU9URSBURUNITk9MT0dJRVMsIExMQworMDAxMEI3ICAgICAoYmFzZSAxNikJCUNPWU9URSBURUNITk9MT0dJRVMsIExMQworCQkJCTQzNjAgUEFSSyBURVJSQUNFIERSSVZFCisJCQkJV0VTVExBS0UgVklMTEFHRSBDQSA5MTM2MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQjggICAoaGV4KQkJSVNISUdBS0kgQ09NUFVURVIgU1lTVEVNIENPLgorMDAxMEI4ICAgICAoYmFzZSAxNikJCUlTSElHQUtJIENPTVBVVEVSIFNZU1RFTSBDTy4KKwkJCQkxLTEtMSwgS1lPQkFTSEksCisJCQkJQ0hVTy1LVQorCQkJCVRva3lvICAKKwkJCQlKQVBBTgorCiswMC0xMC1COSAgIChoZXgpCQlNQVhUT1IgQ09SUC4KKzAwMTBCOSAgICAgKGJhc2UgMTYpCQlNQVhUT1IgQ09SUC4KKwkJCQkyMTkwIE1JTExFUiBEUklWRQorCQkJCUxPTkdNT05UIENPIDgwNTAxLTY3NDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUJBICAgKGhleCkJCU1BUlRJTkhPLURBVklTIFNZU1RFTVMsIElOQy4KKzAwMTBCQSAgICAgKGJhc2UgMTYpCQlNQVJUSU5ITy1EQVZJUyBTWVNURU1TLCBJTkMuCisJCQkJMTI2MCBPTEQgSU5ORVMgUk9BRAorCQkJCU9UVEFXQSwgT05UQVJJTyBLMUIgM1YzICAKKwkJCQlDQU5BREEKKworMDAtMTAtQkIgICAoaGV4KQkJREFUQSAmIElORk9STUFUSU9OIFRFQ0hOT0xPR1kKKzAwMTBCQiAgICAgKGJhc2UgMTYpCQlEQVRBICYgSU5GT1JNQVRJT04gVEVDSE5PTE9HWQorCQkJCVRFQ0hOT0xPR1kgSE9VU0UKKwkJCQkxIE5PUk1BTlRPTiBMQU5FCisJCQkJQk9UVEVTRk9SRCwgTk9UVElOR0hBTSBORzEzIE9FTCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTAtQkMgICAoaGV4KQkJQWFzdHJhIFRlbGVjb20KKzAwMTBCQyAgICAgKGJhc2UgMTYpCQlBYXN0cmEgVGVsZWNvbQorCQkJCTggRmVkZXJhbCBTdHJlZXQKKwkJCQlCaWxsZXJpY2EgTUEgMDE4MjEtMzU3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQkQgICAoaGV4KQkJVEhFIFRFTEVDT01NVU5JQ0FUSU9OIFRFQ0hOT0xPR1kgQ09NTUlUVEVFIChUVEMpCiswMDEwQkQgICAgIChiYXNlIDE2KQkJVEhFIFRFTEVDT01NVU5JQ0FUSU9OIFRFQ0hOT0xPR1kgQ09NTUlUVEVFIChUVEMpCisJCQkJMS0xLTEyIFNoaWJhIEtvdWVuLCBNaW5hdG8ta3UKKwkJCQlNSU5BVE8tS1UsICAgVE9LWU8gMTA1LTAwMTEKKwkJCQlKQVBBTgorCiswMC0xMC1CRSAgIChoZXgpCQlNQVJDSCBORVRXT1JLUyBDT1JQT1JBVElPTgorMDAxMEJFICAgICAoYmFzZSAxNikJCU1BUkNIIE5FVFdPUktTIENPUlBPUkFUSU9OCisJCQkJMzAzIFRlcnJ5IEZveCBEcml2ZQorCQkJCU9UVEFXQSwgT05UQVJJTyAgIEsySyAzSjEKKwkJCQlDQU5BREEKKworMDAtMTAtQkYgICAoaGV4KQkJSW50ZXJBaXIgV2lyZWxlc3MKKzAwMTBCRiAgICAgKGJhc2UgMTYpCQlJbnRlckFpciBXaXJlbGVzcworCQkJCTQ4NSBDQVlVR0EgUk9BRAorCQkJCUJVRkZBTE8gTlkgMTQyMjUtMDIyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQzAgICAoaGV4KQkJQVJNQSwgSW5jLgorMDAxMEMwICAgICAoYmFzZSAxNikJCUFSTUEsIEluYy4KKwkJCQk0ODUxIE5vcnRoc2hvcmUgTGFuZQorCQkJCU5vcnRoIExpdHRsZSBSb2NrIEFSIDcyMTE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1DMSAgIChoZXgpCQlPSSBFTEVDVFJJQyBDTy4sIExURC4KKzAwMTBDMSAgICAgKGJhc2UgMTYpCQlPSSBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQk3LTMtMTYgS0lLVU5BCisJCQkJS09IT0tVLUtVCisJCQkJWU9LT0hBTUEgIDIyMiAgCisJCQkJSkFQQU4KKworMDAtMTAtQzIgICAoaGV4KQkJV0lMTE5FVCwgSU5DLgorMDAxMEMyICAgICAoYmFzZSAxNikJCVdJTExORVQsIElOQy4KKwkJCQlKT1dBLVRBS0FOQVdBICBCTERHLiA4RgorCQkJCVRBS0FOQVdBIDEtNS00LCBNSU5BVE8tS1UsCisJCQkJVE9LWU8gIAorCQkJCUpBUEFOCisKKzAwLTEwLUMzICAgKGhleCkJCUNTSS1DT05UUk9MIFNZU1RFTVMKKzAwMTBDMyAgICAgKGJhc2UgMTYpCQlDU0ktQ09OVFJPTCBTWVNURU1TCisJCQkJSU5URVJOQVRJT05BTAorCQkJCVBPQiA1OTQ2OQorCQkJCURBTExBUyBUWCA3NTIyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQzQgICAoaGV4KQkJTUVESUEgTElOS1MgQ08uLCBMVEQuCiswMDEwQzQgICAgIChiYXNlIDE2KQkJTUVESUEgTElOS1MgQ08uLCBMVEQuCisJCQkJS1NQIEVBU1QgQkxERy4gNjA0LCBTQUtBRE8gMy0yLTEsCisJCQkJIFRBS0FUU1UtS1UgS0FXQVNBS0ktU0hJLAorCQkJCUthbmFnYXdhLWtlbiAyMTQgIAorCQkJCUpBUEFOCisKKzAwLTEwLUM1ICAgKGhleCkJCVBST1RPQ09MIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAxMEM1ICAgICAoYmFzZSAxNikJCVBST1RPQ09MIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTQgRklSU1QgU1RSRUVUCisJCQkJQlJJREdFV0FURVIgTUEgMDIzMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUM2ICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAxMEM2ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTEFORSAzNTEsU0VDLjEsIFRBSVBJTkcgUkQuCisJCQkJVFNBT1RVRU4sIE5BTlRPVSA1NDI2MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtQzcgICAoaGV4KQkJREFUQSBUUkFOU01JU1NJT04gTkVUV09SSworMDAxMEM3ICAgICAoYmFzZSAxNikJCURBVEEgVFJBTlNNSVNTSU9OIE5FVFdPUksKKwkJCQk5MTEwIFcuIERPREdFIFJELiAtIFNURS4jMjAwCisJCQkJT01BSEEgTkUgNjgxMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUM4ICAgKGhleCkJCUNPTU1VTklDQVRJT05TIEVMRUNUUk9OSUNTIFNFQ1VSSVRZIEdST1VQCiswMDEwQzggICAgIChiYXNlIDE2KQkJQ09NTVVOSUNBVElPTlMgRUxFQ1RST05JQ1MgU0VDVVJJVFkgR1JPVVAKKwkJCQkxMC80VzIyIEZJRERMRVJTIEdSRUVOIExBTkUKKwkJCQlCZW5oYWxsLCBDaGVsdGVuaGFtIEdsb3VzdGVyIEdMNTIgNUFKIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEwLUM5ICAgKGhleCkJCU1JVFNVQklTSEkgRUxFQ1RST05JQ1MgTE9HSVNUSUMgU1VQUE9SVCBDTy4KKzAwMTBDOSAgICAgKGJhc2UgMTYpCQlNSVRTVUJJU0hJIEVMRUNUUk9OSUNTIExPR0lTVElDIFNVUFBPUlQgQ08uCisJCQkJCisJCQkJU0hPTkFOIFdvcmtzLCA3MzAtMTEsIEtBTUlNQUNISVlBCisJCQkJS2FtYWt1cmEtY2l0eSwgS2FuYWdhd2EgMjQ3ICAKKwkJCQlKQVBBTgorCiswMC0xMC1DQSAgIChoZXgpCQlUZWxjbyBTeXN0ZW1zLCBJbmMuIAorMDAxMENBICAgICAoYmFzZSAxNikJCVRlbGNvIFN5c3RlbXMsIEluYy4gCisJCQkJMTUgQmVya3NoaXJlIFJvYWQKKwkJCQlNYW5zZmllbGQsIE1BIDAyMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1DQiAgIChoZXgpCQlGQUNJVCBLLksuCiswMDEwQ0IgICAgIChiYXNlIDE2KQkJRkFDSVQgSy5LLgorCQkJCUhJTUVJIE5JSE9NQkFTSEkgQkxERy4gM0YKKwkJCQkxMi0zLU5JSE9NQkFTSEktS09CVU5BQ0hPCisJCQkJQ0hVTy1LVSwgVE9LWU8gMTAzICAKKwkJCQlKQVBBTgorCiswMC0xMC1DQyAgIChoZXgpCQlDTFAgQ09NUFVURVIgTE9HSVNUSUsgUExBTlVORyBHbWJICiswMDEwQ0MgICAgIChiYXNlIDE2KQkJQ0xQIENPTVBVVEVSIExPR0lTVElLIFBMQU5VTkcgR21iSAorCQkJCUJBU1NFUk1BTk5TVFIuIDIxCisJCQkJIEQtODEyNDUgTVVFTkNIRU4gIAorCQkJCUdFUk1BTlkKKworMDAtMTAtQ0QgICAoaGV4KQkJSU5URVJGQUNFIENPTkNFUFQKKzAwMTBDRCAgICAgKGJhc2UgMTYpCQlJTlRFUkZBQ0UgQ09OQ0VQVAorCQkJCTMgVkVORUxMRSBkZSBLRVJHT1MKKwkJCQkyOTAwMCBRVUlNUEVSICAKKwkJCQlGUkFOQ0UKKworMDAtMTAtQ0UgICAoaGV4KQkJVk9MQU1QLCBMVEQuCiswMDEwQ0UgICAgIChiYXNlIDE2KQkJVk9MQU1QLCBMVEQuCisJCQkJVU5JVCAzIFJJVkVSU0lERSBCVVNJTkVTUyBQQVJLCisJCQkJRE9HRkxVRCBXQVksCisJCQkJRkFSTkhBTSwgU1VSUkVZIEVOR0xBTkQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTAtQ0YgICAoaGV4KQkJRklCRVJMQU5FIENPTU1VTklDQVRJT05TCiswMDEwQ0YgICAgIChiYXNlIDE2KQkJRklCRVJMQU5FIENPTU1VTklDQVRJT05TCisJCQkJMTMxOCBSRURXT09EIFdBWSwgIzIwMAorCQkJCVBFVEFMVU1BIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1EMCAgIChoZXgpCQlXSVRDT00sIExURC4KKzAwMTBEMCAgICAgKGJhc2UgMTYpCQlXSVRDT00sIExURC4KKwkJCQlQLk8uQi4gMjI1MAorCQkJCUhBSUZBICAzMTAyMSAgCisJCQkJSVNSQUVMCisKKzAwLTEwLUQxICAgKGhleCkJCVRvcCBMYXllciBOZXR3b3JrcywgSW5jLgorMDAxMEQxICAgICAoYmFzZSAxNikJCVRvcCBMYXllciBOZXR3b3JrcywgSW5jLgorCQkJCTQgTUVDSEFOSUMgU1QuLSBTVEUjMjEyCisJCQkJTkFUSUNLIE1BIDAxNzYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1EMiAgIChoZXgpCQlOSVRUTyBUU1VTSElOS0kgQ08uLCBMVEQKKzAwMTBEMiAgICAgKGJhc2UgMTYpCQlOSVRUTyBUU1VTSElOS0kgQ08uLCBMVEQKKwkJCQk3LTI3LTExLCBUT0RPUk9LSSwgU0VUQUdBWUEtS1UKKwkJCQlUT0tZTyAxNTEgIAorCQkJCUpBUEFOCisKKzAwLTEwLUQzICAgKGhleCkJCUdSSVBTIEVMRUNUUk9OSUMgR01CSAorMDAxMEQzICAgICAoYmFzZSAxNikJCUdSSVBTIEVMRUNUUk9OSUMgR01CSAorCQkJCU5JRVNFTkJFUkdFUkdBU1NFIDM3CisJCQkJQS04MDIwIEdSQVogIAorCQkJCUFVU1RSSUEKKworMDAtMTAtRDQgICAoaGV4KQkJU1RPUkFHRSBDT01QVVRFUiBDT1JQT1JBVElPTgorMDAxMEQ0ICAgICAoYmFzZSAxNikJCVNUT1JBR0UgQ09NUFVURVIgQ09SUE9SQVRJT04KKwkJCQkxMSBSSVZFUlNJREUgU1RSRUVUCisJCQkJTkFTSFVBIE5IIDAzMDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1ENSAgIChoZXgpCQlJTUFTREUgQ0FOQVJJQVMsIFMuQS4KKzAwMTBENSAgICAgKGJhc2UgMTYpCQlJTUFTREUgQ0FOQVJJQVMsIFMuQS4KKwkJCQlVUkIuIEVMIENFQkFEQUwKKwkJCQlDL0RSLiBKVUFOIERHVUVaLlBFUkVaLCAzOS0yCisJCQkJMzUwMDggTEFTIFBBTE1BUyBHLkMuICAKKwkJCQlTUEFJTgorCiswMC0xMC1ENiAgIChoZXgpCQlJVFQgLSBBL0NECiswMDEwRDYgICAgIChiYXNlIDE2KQkJSVRUIC0gQS9DRAorCQkJCURFUFQuIDg1MjEKKwkJCQkxMDAgS0lOR1NMQU5EIFJPQUQKKwkJCQlDTElGVE9OIE5KIDA3MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1ENyAgIChoZXgpCQlBUkdPU1kgUkVTRUFSQ0ggSU5DLgorMDAxMEQ3ICAgICAoYmFzZSAxNikJCUFSR09TWSBSRVNFQVJDSCBJTkMuCisJCQkJTk8uIDQ0LCBMQU5FIDQxMSwgQ0hVTkcgSFVBIFJECisJCQkJU0VDLjQsIEhTSU5DSFUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEwLUQ4ICAgKGhleCkJCUNBTElTVEEKKzAwMTBEOCAgICAgKGJhc2UgMTYpCQlDQUxJU1RBCisJCQkJOTggSElHSCBTVFJFRVQsIFRIQU1FCisJCQkJT1hGT1JEU0hJUkUgT1g5IDNFSCBFTkdMQU5EIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEwLUQ5ICAgKGhleCkJCUlCTSBKQVBBTiwgRlVKSVNBV0EgTVQrRAorMDAxMEQ5ICAgICAoYmFzZSAxNikJCUlCTSBKQVBBTiwgRlVKSVNBV0EgTVQrRAorCQkJCUtJUklIQVJBLUNITyAxLCBGVUpJU0FXQSBDSVRZCisJCQkJS0FOQUdBV0EgMjUyICAKKwkJCQlKQVBBTgorCiswMC0xMC1EQSAgIChoZXgpCQlNT1RJT04gRU5HSU5FRVJJTkcsIElOQy4KKzAwMTBEQSAgICAgKGJhc2UgMTYpCQlNT1RJT04gRU5HSU5FRVJJTkcsIElOQy4KKwkJCQkzMyBTLkxBIFBBVEVSQSBMTgorCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLURCICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MsIEluYy4KKzAwMTBEQiAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzLCBJbmMuCisJCQkJMTE5NCBOLiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLURDICAgKGhleCkJCU1JQ1JPLVNUQVIgSU5URVJOQVRJT05BTCBDTy4sIExURC4KKzAwMTBEQyAgICAgKGJhc2UgMTYpCQlNSUNSTy1TVEFSIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCisJCQkJTk8uIDY5LCBMSS1ERSBTVC4sIEpVTkctSEUgQ0lUWQorCQkJCSBUQUlQRUkgSFNJRU4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtREQgICAoaGV4KQkJRU5BQkxFIFNFTUlDT05EVUNUT1IsIElOQy4KKzAwMTBERCAgICAgKGJhc2UgMTYpCQlFTkFCTEUgU0VNSUNPTkRVQ1RPUiwgSU5DLgorCQkJCTE3NDAgVEVDSE5PTE9HWSBEUklWRQorCQkJCVNVSVRFICMxMTAKKwkJCQlTQU4gSk9TRSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtREUgICAoaGV4KQkJSU5URVJOQVRJT05BTCBEQVRBQ0FTVElORyBDT1JQT1JBVElPTgorMDAxMERFICAgICAoYmFzZSAxNikJCUlOVEVSTkFUSU9OQUwgREFUQUNBU1RJTkcgQ09SUE9SQVRJT04KKwkJCQkyNjgwIFFVRUVOU1ZJRVcgRFJJVkUKKwkJCQlPVFRBV0EsIE9OVEFSSU8gSzJCIDhINgorCQkJCUNBTkFEQQorCiswMC0xMC1ERiAgIChoZXgpCQlSSVNFIENPTVBVVEVSIElOQy4KKzAwMTBERiAgICAgKGJhc2UgMTYpCQlSSVNFIENPTVBVVEVSIElOQy4KKwkJCQk5RiwgTk8uIDMwNi0zLCBUQVRVTkcgUkQuCisJCQkJU0VDLiAxLCBIU0kgQ0hJSCwKKwkJCQlUQUlQRUkgSFNJRU4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtRTAgICAoaGV4KQkJT3JhY2xlIENvcnBvcmF0aW9uCiswMDEwRTAgICAgIChiYXNlIDE2KQkJT3JhY2xlIENvcnBvcmF0aW9uCisJCQkJNTAwIE9yYWNsZSBQYXJrd2F5CisJCQkJUmVkd29vZCBTaG9yZXMgQ0EgOTQwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUUxICAgKGhleCkJCVMuSS4gVEVDSCwgSU5DLgorMDAxMEUxICAgICAoYmFzZSAxNikJCVMuSS4gVEVDSCwgSU5DLgorCQkJCVAuTy4gQk9YIDYwOQorCQkJCUdFTkVWQSBJTCA2MDEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRTIgICAoaGV4KQkJQXJyYXlDb21tLCBJbmMuCiswMDEwRTIgICAgIChiYXNlIDE2KQkJQXJyYXlDb21tLCBJbmMuCisJCQkJMzE0MSBaQU5LRVIgUk9BRAorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1FMyAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMTBFMyAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRTQgICAoaGV4KQkJTlNJIENPUlBPUkFUSU9OCiswMDEwRTQgICAgIChiYXNlIDE2KQkJTlNJIENPUlBPUkFUSU9OCisJCQkJUC5PLiBCT1ggNjM1CisJCQkJV0lMU09OVklMTEUgT1IgOTcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUU1ICAgKGhleCkJCVNPTEVDVFJPTiBURVhBUworMDAxMEU1ICAgICAoYmFzZSAxNikJCVNPTEVDVFJPTiBURVhBUworCQkJCTEyNDU1IFJFU0VBUkNIIEJMVkQuIE0vUyAyMjA1CisJCQkJQVVTVElOIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1FNiAgIChoZXgpCQlBUFBMSUVEIElOVEVMTElHRU5UIFNZU1RFTVMsIElOQy4KKzAwMTBFNiAgICAgKGJhc2UgMTYpCQlBUFBMSUVEIElOVEVMTElHRU5UIFNZU1RFTVMsIElOQy4KKwkJCQkzOTIzIFJBTkNIRVJPIERSSVZFCisJCQkJQU5OIEFSQk9SIE1JIDQ4MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1FNyAgIChoZXgpCQlCcmVlemVDb20KKzAwMTBFNyAgICAgKGJhc2UgMTYpCQlCcmVlemVDb20KKwkJCQlQTyBCb3ggMTMxMzkKKwkJCQlBdGlkaW0gVGVjaG5vbG9naWNhbCBQYXJrLCBCbGRnLiAxCisJCQkJVGVsLUF2aXYgIAorCQkJCUlTUkFFTAorCiswMC0xMC1FOCAgIChoZXgpCQlURUxPQ0lUWSwgSU5DT1JQT1JBVEVECiswMDEwRTggICAgIChiYXNlIDE2KQkJVEVMT0NJVFksIElOQ09SUE9SQVRFRAorCQkJCTk5MiBTT1VUSCBERSBBTlpBIEJMVkQKKwkJCQlTQU4gSk9TRSBDQSA5NTEyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRTkgICAoaGV4KQkJUkFJRFRFQyBMVEQuCiswMDEwRTkgICAgIChiYXNlIDE2KQkJUkFJRFRFQyBMVEQuCisJCQkJQ0FTVExFIFJPQUQKKwkJCQlMSVRUTEUgSVNMQU5EIElORFVTVFJJQUwgRVNUQVRFCisJCQkJTGl0dGxlIElzbGFuZCBDb3VudHkgQ29yayAKKwkJCQlJUkVMQU5ECisKKzAwLTEwLUVBICAgKGhleCkJCUFERVBUIFRFQ0hOT0xPR1kKKzAwMTBFQSAgICAgKGJhc2UgMTYpCQlBREVQVCBURUNITk9MT0dZCisJCQkJMTUwIFJPU0UgT1JDSEFSRCBXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRUIgICAoaGV4KQkJU0VMU0lVUyBTWVNURU1TLCBJTkMuCiswMDEwRUIgICAgIChiYXNlIDE2KQkJU0VMU0lVUyBTWVNURU1TLCBJTkMuCisJCQkJNTA1NyBLRUxMRVIgU1BSSU5HUyBSRC4KKwkJCQlEQUxMQVMgVFggNzUyNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUVDICAgKGhleCkJCVJQQ0csIExMQworMDAxMEVDICAgICAoYmFzZSAxNikJCVJQQ0csIExMQworCQkJCTc0OSBNSU5FUiBST0FECisJCQkJSElHSExBTkQgSFRTIE9IIDQ0MTQzLTIxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUVEICAgKGhleCkJCVNVTkRBTkNFIFRFQ0hOT0xPR1ksIElOQy4KKzAwMTBFRCAgICAgKGJhc2UgMTYpCQlTVU5EQU5DRSBURUNITk9MT0dZLCBJTkMuCisJCQkJMjAxMTEgU1RFVkVOUyBDUkVFSyBCTFZELgorCQkJCVNVSVRFICMxMzgKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUVFICAgKGhleCkJCUNUSSBQUk9EVUNUUywgSU5DLgorMDAxMEVFICAgICAoYmFzZSAxNikJCUNUSSBQUk9EVUNUUywgSU5DLgorCQkJCTEyMTEgVy4gU0hBUk9OIFJELgorCQkJCUNJTkNJTk5BVEkgT0ggNDUyNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUVGICAgKGhleCkJCURCVEVMIElOQ09SUE9SQVRFRAorMDAxMEVGICAgICAoYmFzZSAxNikJCURCVEVMIElOQ09SUE9SQVRFRAorCQkJCU5PLjI5IFRaVS1DSElBTkcgU1QuLAorCQkJCVRVLUNIRU5HIFRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC1GMSAgIChoZXgpCQlJLU8gQ09SUE9SQVRJT04KKzAwMTBGMSAgICAgKGJhc2UgMTYpCQlJLU8gQ09SUE9SQVRJT04KKwkJCQkyMjU2IFNPVVRIIDM2MDAgV0VTVAorCQkJCVNBTFQgTEFLRSBDSVRZIFVUIDg0MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1GMiAgIChoZXgpCQlBTlRFQworMDAxMEYyICAgICAoYmFzZSAxNikJCUFOVEVDCisJCQkJNDkyMCBBVkFMT04gUklER0UgUEtXWQorCQkJCVNVSVRFICM2MDAKKwkJCQlOT1JDUk9TUyBHQSAzMDA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRjMgICAoaGV4KQkJTmV4Y29tIEludGVybmF0aW9uYWwgQ28uLCBMdGQuCiswMDEwRjMgICAgIChiYXNlIDE2KQkJTmV4Y29tIEludGVybmF0aW9uYWwgQ28uLCBMdGQuCisJCQkJMThGLCBOby4gNzE2LCBDaHVuZy1DaGVuZyBSb2FkLAorCQkJCUNodW5nIEhvLAorCQkJCVRhaXBlaSBIc2llbiAyMzUsICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEwLUY0ICAgKGhleCkJCVZlcnRpY2FsIENvbW11bmljYXRpb25zCiswMDEwRjQgICAgIChiYXNlIDE2KQkJVmVydGljYWwgQ29tbXVuaWNhdGlvbnMKKwkJCQkzOTc5IEZyZWVkb20gQ2lyY2xlICM0MDAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NC0xMjQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1GNSAgIChoZXgpCQlBTUhFUlNUIFNZU1RFTVMsIElOQy4KKzAwMTBGNSAgICAgKGJhc2UgMTYpCQlBTUhFUlNUIFNZU1RFTVMsIElOQy4KKwkJCQkzMCBXSUxTT04gUk9BRAorCQkJCUJVRkZBTE8gTlkgMTQyMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUY2ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTBGNiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUY3ICAgKGhleCkJCUlSSUlDSEkgVEVDSE5PTE9HSUVTIEluYy4KKzAwMTBGNyAgICAgKGJhc2UgMTYpCQlJUklJQ0hJIFRFQ0hOT0xPR0lFUyBJbmMuCisJCQkJMS0yNi03IENIVU8sIE5BS0FOQS1LVQorCQkJCSBUT0tZTyAxNjQgIAorCQkJCUpBUEFOCisKKzAwLTEwLUY4ICAgKGhleCkJCU5paWtrZSBUZWNobm8gU3lzdGVtIENvLiBMdGQKKzAwMTBGOCAgICAgKGJhc2UgMTYpCQlOaWlra2UgVGVjaG5vIFN5c3RlbSBDby4gTHRkCisJCQkJMTg1MC0xIFRzdXJ1bWEsIE1hY2hpZGEtc2hpCisJCQkJVG9reW8gIDE5NC0wMDA0CisJCQkJSkFQQU4KKworMDAtMTAtRjkgICAoaGV4KQkJVU5JUVVFIFNZU1RFTVMsIElOQy4KKzAwMTBGOSAgICAgKGJhc2UgMTYpCQlVTklRVUUgU1lTVEVNUywgSU5DLgorCQkJCTE4MSBET04gUEFSSyBSRAorCQkJCU1BUktIQU0sIE9OVEFSSU8gTDNSIDFDMiAgCisJCQkJQ0FOQURBCisKKzAwLTEwLUZBICAgKGhleCkJCUFwcGxlIEluYworMDAxMEZBICAgICAoYmFzZSAxNikJCUFwcGxlIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCU1TIDM1LUdQTworCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRkIgICAoaGV4KQkJWklEQSBURUNITk9MT0dJRVMgTElNSVRFRAorMDAxMEZCICAgICAoYmFzZSAxNikJCVpJREEgVEVDSE5PTE9HSUVTIExJTUlURUQKKwkJCQk4L0YgQkxPQ0sgQSAgR09PRFZJRVcgSU5EVVNUUklBTCBCVUlMRElOCisJCQkJS0lOIEZBVCBTVFIgVE1UTCAyMTMKKwkJCQlUVUVOIE1VTiBOVCAgCisJCQkJSE9ORyBLT05HCisKKzAwLTEwLUZDICAgKGhleCkJCUJST0FEQkFORCBORVRXT1JLUywgSU5DLgorMDAxMEZDICAgICAoYmFzZSAxNikJCUJST0FEQkFORCBORVRXT1JLUywgSU5DLgorCQkJCTM3IFNURVZFTlNPTiBST0FECisJCQkJV0lOTklQRUcsIE1BTklUT0JBIFIzSCAwSDkgIAorCQkJCUNBTkFEQQorCiswMC0xMC1GRCAgIChoZXgpCQlDT0NPTSBBL1MKKzAwMTBGRCAgICAgKGJhc2UgMTYpCQlDT0NPTSBBL1MKKwkJCQlURUxFVE9OVkVKIDgKKwkJCQlESyAyODYwIFNPQk9SRyAgCisJCQkJREVOTUFSSworCiswMC0xMC1GRSAgIChoZXgpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorMDAxMEZFICAgICAoYmFzZSAxNikJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCisJCQkJMzAxIFJPQ0tSSU1NT04gQkxWRCwgU09VVEgKKwkJCQlNL1MgQ1hPMS0yL04yNgorCQkJCUNPTE9SQURPIFNQUklOR1MgQ08gODA5MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUZGICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTBGRiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTAwICAgKGhleCkJCVNjaG5laWRlciBFbGVjdHJpYworMDAxMTAwICAgICAoYmFzZSAxNikJCVNjaG5laWRlciBFbGVjdHJpYworCQkJCTU0NjAgUG90dHN2aWxsZSBQaWtlCisJCQkJTGVlc3BvcnQgUEEgMTk1MzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTAxICAgKGhleCkJCUNFVCBUZWNobm9sb2dpZXMgUHRlIEx0ZAorMDAxMTAxICAgICAoYmFzZSAxNikJCUNFVCBUZWNobm9sb2dpZXMgUHRlIEx0ZAorCQkJCTEwMCBKdXJvbmcgRWFzdCBTdHJlZXQgMjEKKwkJCQlTaW5nYXBvcmUgVGVjaG5vbG9naWVzIEJ1aWxkaW5nCisJCQkJNjA5NjAyCisJCQkJU0lOR0FQT1JFCisKKzAwLTExLTAyICAgKGhleCkJCUF1cm9yYSBNdWx0aW1lZGlhIENvcnAuCiswMDExMDIgICAgIChiYXNlIDE2KQkJQXVyb3JhIE11bHRpbWVkaWEgQ29ycC4KKwkJCQkyMDUgQ29tbWVyY2lhbCBDb3VydAorCQkJCU1vcmdhbnZpbGxlIE5ldyBKZXJzZXkgMDc3NTEtMTA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMDMgICAoaGV4KQkJa2F3YW11cmEgZWxlY3RyaWMgaW5jLgorMDAxMTAzICAgICAoYmFzZSAxNikJCWthd2FtdXJhIGVsZWN0cmljIGluYy4KKwkJCQkzLTg2IGFrYXRzdWtpLWNobworCQkJCXNldG8gYWljaGkgNDg5LTAwNzEKKwkJCQlKQVBBTgorCiswMC0xMS0wNCAgIChoZXgpCQlURUxFWFkKKzAwMTEwNCAgICAgKGJhc2UgMTYpCQlURUxFWFkKKwkJCQkxMTE2LCBIWVVOREFJIDQxIFRPV0VSLCA5MTctOQorCQkJCU1PSy1ET05HLCBZQU5HQ0hVTi1LVSwKKwkJCQlTRU9VTCAgMTU4LTcyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS0wNSAgIChoZXgpCQlTdW5wbHVzIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDExMDUgICAgIChiYXNlIDE2KQkJU3VucGx1cyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTE5LCBJbm5vdmF0aW9uIEZpcnN0IFJvYWQsIEhzaW5jaHUgU2NpZW5jZSBQYXJrCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS0wNiAgIChoZXgpCQlTaWVtZW5zIE5WIChCZWxnaXVtKQorMDAxMTA2ICAgICAoYmFzZSAxNikJCVNpZW1lbnMgTlYgKEJlbGdpdW0pCisJCQkJQXRlYWxhYW4gMzQKKwkJCQlIZXJlbnRhbHMgQW50d2VycCAyMjAwCisJCQkJQkVMR0lVTQorCiswMC0xMS0wNyAgIChoZXgpCQlSR0IgTmV0d29ya3MgSW5jLgorMDAxMTA3ICAgICAoYmFzZSAxNikJCVJHQiBOZXR3b3JrcyBJbmMuCisJCQkJMjkyOSBDYW1wdXMgRHJpdmUKKwkJCQlTdWl0ZSAxNjUKKwkJCQlTYW4gTWF0ZW8gQ0EgOTQ0MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTA4ICAgKGhleCkJCU9yYml0YWwgRGF0YSBDb3Jwb3JhdGlvbgorMDAxMTA4ICAgICAoYmFzZSAxNikJCU9yYml0YWwgRGF0YSBDb3Jwb3JhdGlvbgorCQkJCTE5MDAgUy4gTm9yZm9sayBTdC4gU3RlIDMyMAorCQkJCVNhbiBNYXRlbyBDQSA5NDQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMDkgICAoaGV4KQkJTWljcm8tU3RhciBJbnRlcm5hdGlvbmFsCiswMDExMDkgICAgIChiYXNlIDE2KQkJTWljcm8tU3RhciBJbnRlcm5hdGlvbmFsCisJCQkJTm8gNjksIExpLURlIFN0cmVldCwgSnVuZy1IZSBDaXR5LAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS0wQSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMTEwQSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDcwNDA1CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMEIgICAoaGV4KQkJRnJhbmtsaW4gVGVjaG5vbG9neSBTeXN0ZW1zCiswMDExMEIgICAgIChiYXNlIDE2KQkJRnJhbmtsaW4gVGVjaG5vbG9neSBTeXN0ZW1zCisJCQkJMjA0MDYgRWFybCBTdAorCQkJCVRvcnJhbmNlIENBIDkwNTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0wQyAgIChoZXgpCQlBdG1hcmsgVGVjaG5vLCBJbmMuCiswMDExMEMgICAgIChiYXNlIDE2KQkJQXRtYXJrIFRlY2hubywgSW5jLgorCQkJCTJGIFNEIEJMREcsIDItMi0zLTE0IEF0c3ViZXRzdS1uaXNoaSwgQXRzdWJldHN1LWt1CisJCQkJU2FwcG9ybyBIb2trYWlkbyAwMDQtMDA2MgorCQkJCUpBUEFOCisKKzAwLTExLTBEICAgKGhleCkJCVNBTkJsYXplIFRlY2hub2xvZ3ksIEluYy4KKzAwMTEwRCAgICAgKGJhc2UgMTYpCQlTQU5CbGF6ZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMiBDbG9jayBUb3dlciBQbGFjZQorCQkJCU1heW5hcmQgTUEgMDE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTBFICAgKGhleCkJCVRzdXJ1c2FraSBTZWFsYW5kIFRyYW5zcG9ydGF0aW9uIENvLiBMdGQuCiswMDExMEUgICAgIChiYXNlIDE2KQkJVHN1cnVzYWtpIFNlYWxhbmQgVHJhbnNwb3J0YXRpb24gQ28uIEx0ZC4KKwkJCQkxMDAwIE1pc2EKKwkJCQlPaXRhICA4NzAwMTk2CisJCQkJSkFQQU4KKworMDAtMTEtMEYgICAoaGV4KQkJbmV0cGxhdCxJbmMuCiswMDExMEYgICAgIChiYXNlIDE2KQkJbmV0cGxhdCxJbmMuCisJCQkJMkYgT2x5bXBpYSBDZW50ZXIsIDgyOC0xMCwgWWVva3NhbS1kb25nLCBHYW5nbmFtLWd1CisJCQkJU0VPVUwgIDEzNS05MzUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtMTAgICAoaGV4KQkJTWF4YW5uYSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxMTEwICAgICAoYmFzZSAxNikJCU1heGFubmEgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlSb29tMjAxLCBOby40Mi0zLCBMdXl1YW4gUm9hZAorCQkJCUd1YW5nemhvdSAgNTEwMDk1CisJCQkJQ0hJTkEKKworMDAtMTEtMTEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzAwMTExMSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCTIxMTEgTkUgMjV0aCBBdmVudWUKKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTEyICAgKGhleCkJCUhvbmV5d2VsbCBDTVNTCiswMDExMTIgICAgIChiYXNlIDE2KQkJSG9uZXl3ZWxsIENNU1MKKwkJCQk4MzIzIExpbmRiZXJnaCBDdAorCQkJCVNhcmFzb3RhIEZMIDM0MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0xMyAgIChoZXgpCQlGcmF1bmhvZmVyIEZPS1VTCiswMDExMTMgICAgIChiYXNlIDE2KQkJRnJhdW5ob2ZlciBGT0tVUworCQkJCUthaXNlcmluLUF1Z3VzdGEtQWxsZWUgMzEKKwkJCQlCZXJsaW4gIDEwNTg5CisJCQkJR0VSTUFOWQorCiswMC0xMS0xNCAgIChoZXgpCQlFdmVyRm9jdXMgRWxlY3Ryb25pY3MgQ29ycC4KKzAwMTExNCAgICAgKGJhc2UgMTYpCQlFdmVyRm9jdXMgRWxlY3Ryb25pY3MgQ29ycC4KKwkJCQkxMkYsIE5vLiA3OSwgU2VjLiAxLCBTaGluLVRhaSBXdSBSZC4KKwkJCQlIc2ktQ2hpIFRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTE1ICAgKGhleCkJCUVQSU4gVGVjaG5vbG9naWVzLCBJbmMuCiswMDExMTUgICAgIChiYXNlIDE2KQkJRVBJTiBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQlBY29ybiBDYW1wdXMKKwkJCQk2dGggUmVzdWx0IFdheSwgU3VpdGUgMjQ4CisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0xNiAgIChoZXgpCQlDT1RFQVUgVkVSVCBDTy4sIExURC4KKzAwMTExNiAgICAgKGJhc2UgMTYpCQlDT1RFQVUgVkVSVCBDTy4sIExURC4KKwkJCQkzLTMtMTkgS0FDSElET0tJCisJCQkJQ0hVTy1LVSBUT0tZTyAxMDQtMDA1NAorCQkJCUpBUEFOCisKKzAwLTExLTE3ICAgKGhleCkJCUNFU05FVAorMDAxMTE3ICAgICAoYmFzZSAxNikJCUNFU05FVAorCQkJCVppa292YSA0CisJCQkJUHJhaGEgNiAgMTYwIDAwCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMTEtMTggICAoaGV4KQkJQkxYIElDIERlc2lnbiBDb3JwLiwgTHRkLgorMDAxMTE4ICAgICAoYmFzZSAxNikJCUJMWCBJQyBEZXNpZ24gQ29ycC4sIEx0ZC4KKwkJCQlSbSAxMDA2LCBRdWFudHVtIFBsYXphCisJCQkJTm8uMjcsIFpoaWNodW4gUmQsIEhhaWRhbgorCQkJCUJlaWppbmcgIDEwMDA4MworCQkJCUNISU5BCisKKzAwLTExLTE5ICAgKGhleCkJCVNvbHRlcmFzLCBJbmMuCiswMDExMTkgICAgIChiYXNlIDE2KQkJU29sdGVyYXMsIEluYy4KKwkJCQk5MDAgVy4gU2FudGEgQW5pdGEgU3RyZWV0CisJCQkJU2FuIEdhYnJpZWwgQ0EgOTE3NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTFBICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDExMUEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0xQiAgIChoZXgpCQlUYXJnYSBTeXN0ZW1zIERpdiBMLTMgQ29tbXVuaWNhdGlvbnMgQ2FuYWRhCiswMDExMUIgICAgIChiYXNlIDE2KQkJVGFyZ2EgU3lzdGVtcyBEaXYgTC0zIENvbW11bmljYXRpb25zIENhbmFkYQorCQkJCTIwODEgTWVyaXZhbGUgUmQKKwkJCQlTdWl0ZSAyMDAKKwkJCQlPdHRhd2EgT250IEsyRyAxRzkKKwkJCQlDQU5BREEKKworMDAtMTEtMUMgICAoaGV4KQkJUGxlb3JhIFRlY2hub2xvZ2llcyBJbmMuCiswMDExMUMgICAgIChiYXNlIDE2KQkJUGxlb3JhIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMzU5IFRlcnJ5IEZveCBEcml2ZSwgU3VpdGUgMjMwCisJCQkJS2FuYXRhIE9OIEsySyAyRTcKKwkJCQlDQU5BREEKKworMDAtMTEtMUQgICAoaGV4KQkJSGVjdHJpeCBMaW1pdGVkCiswMDExMUQgICAgIChiYXNlIDE2KQkJSGVjdHJpeCBMaW1pdGVkCisJCQkJVW5pdCA5MDYtOTExLCA5L0YsIFN0YW5ob3BlIEhvc3VlLAorCQkJCTczNC03MzggS2luZydzIFJvYWQsCisJCQkJTm9ydGggUG9pbnQgSG9uZyBLb25nIAorCQkJCUNISU5BCisKKzAwLTExLTFFICAgKGhleCkJCUVQU0cgKEV0aGVybmV0IFBvd2VybGluayBTdGFuZGFyZGl6YXRpb24gR3JvdXApCiswMDExMUUgICAgIChiYXNlIDE2KQkJRVBTRyAoRXRoZXJuZXQgUG93ZXJsaW5rIFN0YW5kYXJkaXphdGlvbiBHcm91cCkKKwkJCQljL28gVW5pdmVyc2l0eSBvZiBBcHBsaWVkIFNjaWVuY2VzCisJCQkJUE8gQm94IDgwNQorCQkJCVdpbnRlcnRodXIgWkggQ0gtODQwMQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTExLTFGICAgKGhleCkJCURvcmVtaSBMYWJzLCBJbmMuCiswMDExMUYgICAgIChiYXNlIDE2KQkJRG9yZW1pIExhYnMsIEluYy4KKwkJCQkzMDYgRS4gQWxhbWVkYSBBdmUuCisJCQkJQnVyYmFuayBDQSA5MTUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMTIwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMTIxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjIgICAoaGV4KQkJQ0lNU1lTIEluYworMDAxMTIyICAgICAoYmFzZSAxNikJCUNJTVNZUyBJbmMKKwkJCQkjMzAxLFNpbnN1bmctY2xlYW4gQkxERywxNDAsIE5vbmdzZW8tUmksS2loZXVuZy1FdXAKKwkJCQlZb25naW4tQ2l0eSBLeXVuZ2dpLURvIDQ0OS03MTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtMjMgICAoaGV4KQkJQXBwb2ludGVjaCwgSW5jLgorMDAxMTIzICAgICAoYmFzZSAxNikJCUFwcG9pbnRlY2gsIEluYy4KKwkJCQk2Ri0yIE5vLjE5MiBUdW5nLUt1YW4gUmQuCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS0yNCAgIChoZXgpCQlBcHBsZSBDb21wdXRlcgorMDAxMTI0ICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyCisJCQkJMSBJbmlmaW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjUgICAoaGV4KQkJSUJNIENvcnAKKzAwMTEyNSAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTI2ICAgKGhleCkJCVZlbnN0YXIgSW5jLgorMDAxMTI2ICAgICAoYmFzZSAxNikJCVZlbnN0YXIgSW5jLgorCQkJCTkyNTAgT3dlbnNtb3V0aCBBdmUuCisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjcgICAoaGV4KQkJVEFTSSwgSW5jCiswMDExMjcgICAgIChiYXNlIDE2KQkJVEFTSSwgSW5jCisJCQkJNTU1MSBEcnkgRm9yayBSb2FkCisJCQkJQ2xldmVzIE9IIDQ1MDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0yOCAgIChoZXgpCQlTdHJlYW1pdAorMDAxMTI4ICAgICAoYmFzZSAxNikJCVN0cmVhbWl0CisJCQkJRmxpZ2h0IEZvcnVtIDM1NDMKKwkJCQlFaW5kaG92ZW4gNTY1NyBEVworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTExLTI5ICAgKGhleCkJCVBhcmFkaXNlIERhdGFjb20gTHRkLgorMDAxMTI5ICAgICAoYmFzZSAxNikJCVBhcmFkaXNlIERhdGFjb20gTHRkLgorCQkJCTEgV2hlYXRvbiBSb2FkCisJCQkJV2l0aGFtIEVzc2V4IFVLIENNOCAxVUoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS0yQSAgIChoZXgpCQlOaWtvIE5WCiswMDExMkEgICAgIChiYXNlIDE2KQkJTmlrbyBOVgorCQkJCUluZHVzdHJpZXBhcmsgV2VzdCA0MAorCQkJCVNpbnQtTmlrbGFhcyBPL1YgOTEwMAorCQkJCUJFTEdJVU0KKworMDAtMTEtMkIgICAoaGV4KQkJTmV0TW9kdWxlIEFHCiswMDExMkIgICAgIChiYXNlIDE2KQkJTmV0TW9kdWxlIEFHCisJCQkJTWVyaWVkd2VnIDExCisJCQkJTmllZGVyd2FuZ2VuIENIIDMxNzIKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xMS0yQyAgIChoZXgpCQlJWlQgR21iSAorMDAxMTJDICAgICAoYmFzZSAxNikJCUlaVCBHbWJICisJCQkJQW0gV2VpY2hzZWxnYXJ0ZW4gNQorCQkJCUVybGFuZ2VuIEJhdmFyaWEgOTEwNTgKKwkJCQlHRVJNQU5ZCisKKzAwLTExLTJEICAgKGhleCkJCWlQdWxzZSBTeXN0ZW1zCiswMDExMkQgICAgIChiYXNlIDE2KQkJaVB1bHNlIFN5c3RlbXMKKwkJCQkxc3QgRmxvb3IgTm92ZWxsIEhvdXNlLCBNb3JuaW5nc2lkZSBXZWRnZSBPZmZpY2UgUGFyaworCQkJCTI1NSBSaXZvbmlhIFJvYWQKKwkJCQlNb3JuaW5nc2lkZSBKb2hhbm5lc2J1cmcgMjEyOAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xMS0yRSAgIChoZXgpCQlDRUlDT00KKzAwMTEyRSAgICAgKGJhc2UgMTYpCQlDRUlDT00KKwkJCQkxNyBydWUgR2FzdG9uIEV2cmFyZAorCQkJCVRvdWxvdXNlIENlZGV4IDEgSGF1dGUtR2Fyb25uZSAzMTA5NAorCQkJCUZSQU5DRQorCiswMC0xMS0yRiAgIChoZXgpCQlBU1VTVGVrIENvbXB1dGVyIEluYy4KKzAwMTEyRiAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENvbXB1dGVyIEluYy4KKwkJCQlOby4xNTAsIExpLVRlIFJkLiwgUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTMwICAgKGhleCkJCUFsbGllZCBUZWxlc2lzIChIb25nIEtvbmcpIEx0ZC4KKzAwMTEzMCAgICAgKGJhc2UgMTYpCQlBbGxpZWQgVGVsZXNpcyAoSG9uZyBLb25nKSBMdGQuCisJCQkJUm9vbSBGLCAzL0YsIFlldW5nIFlpdSBDaG9uZyAobm8uIDgpIEluZHVzdHJpYWwgYnVpbGRpbmcsCisJCQkJMjAgV2FuZyBIb2kgUm9hZCwgS293bG9vbiBCYXksCisJCQkJSE9ORyBLT05HCisKKzAwLTExLTMxICAgKGhleCkJCVVOQVRFQ0guIENPLixMVEQKKzAwMTEzMSAgICAgKGJhc2UgMTYpCQlVTkFURUNILiBDTy4sTFRECisJCQkJQS03MjcgLEdFT1BZVU5HIFRPV04sMjAzLTEKKwkJCQlOT05IWVVORy1ET05HCisJCQkJS0FOR05BTS1HVSBTRU9VTCAxMzUtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLTMyICAgKGhleCkJCVN5bm9sb2d5IEluY29ycG9yYXRlZAorMDAxMTMyICAgICAoYmFzZSAxNikJCVN5bm9sb2d5IEluY29ycG9yYXRlZAorCQkJCTZGLTIsIE5vLjEwNiwgQ2hhbmcgQW4gVy4gUmQuLAorCQkJCVRhaXBlaSAgMTAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS0zMyAgIChoZXgpCQlTaWVtZW5zIEF1c3RyaWEgU0lNRUEKKzAwMTEzMyAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEF1c3RyaWEgU0lNRUEKKwkJCQlTaWVtZW5zc3RyYXNzZSA5MC05MgorCQkJCVZpZW5uYSAgMTIxMAorCQkJCUFVU1RSSUEKKworMDAtMTEtMzQgICAoaGV4KQkJTWVkaWFDZWxsLCBJbmMuCiswMDExMzQgICAgIChiYXNlIDE2KQkJTWVkaWFDZWxsLCBJbmMuCisJCQkJNjAwIDE3dGggU3QKKwkJCQlTdWl0ZSAyODAwIFNvdXRoCisJCQkJRGVudmVyIENPIDgwMjAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0zNSAgIChoZXgpCQlHcmFuZGV5ZSBMdGQKKzAwMTEzNSAgICAgKGJhc2UgMTYpCQlHcmFuZGV5ZSBMdGQKKwkJCQk2IEh1eGxleSBSb2FkCisJCQkJU3VycmV5IFJlc2VhcmNoIFBhcmsKKwkJCQlHdWlsZGZvcmQgU3VycmV5IEdVMiA3UkUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS0zNiAgIChoZXgpCQlHb29kcmljaCBTZW5zb3IgU3lzdGVtcworMDAxMTM2ICAgICAoYmFzZSAxNikJCUdvb2RyaWNoIFNlbnNvciBTeXN0ZW1zCisJCQkJMTQzMDAgSnVkaWNpYWwgUm9hZAorCQkJCUJ1cm5zdmlsbGUgTWlubmVzb3RhIDU1MzA2LTQ4OTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTM3ICAgKGhleCkJCUFJQ0hJIEVMRUNUUklDIENPLiwgTFRELgorMDAxMTM3ICAgICAoYmFzZSAxNikJCUFJQ0hJIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTEKKwkJCQlhaWNoaS1jaG8KKwkJCQlrYXN1Z2FpIGNpdHkgYWljaGkgcHJlZi4gNDg2LTg2NjYKKwkJCQlKQVBBTgorCiswMC0xMS0zOCAgIChoZXgpCQlUQUlTSElOIENPLiwgTFRELgorMDAxMTM4ICAgICAoYmFzZSAxNikJCVRBSVNISU4gQ08uLCBMVEQuCisJCQkJMjAwLTcgTmFrYW5vCisJCQkJTmFrYW5vIE5hZ2FubyAzODMtMDAxMworCQkJCUpBUEFOCisKKzAwLTExLTM5ICAgKGhleCkJCVNUT0VCRVIgQU5UUklFQlNURUNITklLIEdtYkggKyBDby4gS0cuCiswMDExMzkgICAgIChiYXNlIDE2KQkJU1RPRUJFUiBBTlRSSUVCU1RFQ0hOSUsgR21iSCArIENvLiBLRy4KKwkJCQlLaWVzZWxicm9ubmVyIFN0ci4gMTIKKwkJCQlQZm9yemhlaW0gIDc1MTc3CisJCQkJR0VSTUFOWQorCiswMC0xMS0zQSAgIChoZXgpCQlTSElOQk9SQU0KKzAwMTEzQSAgICAgKGJhc2UgMTYpCQlTSElOQk9SQU0KKwkJCQk0RiBEQUhOV09STEQgQlVJTERJTkcsIDE1NC0xMSBTQU1TVU5HLURPTkcKKwkJCQlLQU5HTkFNLUdVLAorCQkJCVNFT1VMICAxMzUtODc5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLTNCICAgKGhleCkJCU1pY3JvbmV0IENvbW11bmljYXRpb25zIEluYy4KKzAwMTEzQiAgICAgKGJhc2UgMTYpCQlNaWNyb25ldCBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJMTJGLTEsIE5vLiAxMDAsIE1pbi1DaHVhbiBSb2FkCisJCQkJSHNpbi1UaWVuIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTNDICAgKGhleCkJCU1pY3JvbmFzIEdtYkgKKzAwMTEzQyAgICAgKGJhc2UgMTYpCQlNaWNyb25hcyBHbWJICisJCQkJSGFucy1CdW50ZS1TdHJhc3NlIDE5CisJCQkJRnJlaWJ1cmcgQlcgRC03OTEwOAorCQkJCUdFUk1BTlkKKworMDAtMTEtM0QgICAoaGV4KQkJS04gU09MVEVDIENPLixMVEQuCiswMDExM0QgICAgIChiYXNlIDE2KQkJS04gU09MVEVDIENPLixMVEQuCisJCQkJOThCLTVMIE5BTURPTkcgSU5EVVNUUklBTCBDT01QTEVYICM2NjItNCBHT0pBTi1ET05HCisJCQkJTkFNRE9ORy1HVSBJTkNIRU9OIDQwNS04MTgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtM0UgICAoaGV4KQkJSkwgQ29ycG9yYXRpb24KKzAwMTEzRSAgICAgKGJhc2UgMTYpCQlKTCBDb3Jwb3JhdGlvbgorCQkJCTQtNC0xNyBTVUdFCisJCQkJVEFNQS1LVQorCQkJCUtBV0FTQUtJLUNJVFkgS0FOQUdBV0EtS0VOIDIxNC0wMDAxCisJCQkJSkFQQU4KKworMDAtMTEtM0YgICAoaGV4KQkJQWxjYXRlbCBESQorMDAxMTNGICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgREkKKwkJCQlaSSBsYXZvaXNpZXIKKwkJCQlFVSBOb3JtYW5kaWUgNzYyNjAKKwkJCQlGUkFOQ0UKKworMDAtMTEtNDAgICAoaGV4KQkJTmFub21ldHJpY3MgSW5jLgorMDAxMTQwICAgICAoYmFzZSAxNikJCU5hbm9tZXRyaWNzIEluYy4KKwkJCQkyNTAgSGVyemJlcmcgUmQuCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLIDJBMQorCQkJCUNBTkFEQQorCiswMC0xMS00MSAgIChoZXgpCQlHb29kTWFuIENvcnBvcmF0aW9uCiswMDExNDEgICAgIChiYXNlIDE2KQkJR29vZE1hbiBDb3Jwb3JhdGlvbgorCQkJCTJGLCBOby41NzIsIFNlYy4xLCBNaW5nLVNoZW5nIE4gUm9hZCwgS3dlaS1TaGFuIEhzaWFuZworCQkJCVRhb3l1YW4gSHNpZW4gIDMzMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS00MiAgIChoZXgpCQllLVNNQVJUQ09NICBJTkMuCiswMDExNDIgICAgIChiYXNlIDE2KQkJZS1TTUFSVENPTSAgSU5DLgorCQkJCTNGLCAyMTYsIEltb2stRG9uZworCQkJCUphbmdBbi1LdQorCQkJCVN1d29uIEt5b3VuZ2tpLURvIDQ0MC0zMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtNDMgICAoaGV4KQkJREVMTCBJTkMuCiswMDExNDMgICAgIChiYXNlIDE2KQkJREVMTCBJTkMuCisJCQkJT25lIERlbGwgV2F5CisJCQkJUlI1IE1TLTg1NDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS00NCAgIChoZXgpCQlBc3N1cmFuY2UgVGVjaG5vbG9neSBDb3JwCiswMDExNDQgICAgIChiYXNlIDE2KQkJQXNzdXJhbmNlIFRlY2hub2xvZ3kgQ29ycAorCQkJCTYzMDQgUG90b21hYyBBdmVudWUKKwkJCQlBbGV4YW5kcmlhIFZpcmdpbmlhIDIyMzA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS00NSAgIChoZXgpCQlWYWx1ZVBvaW50IE5ldHdvcmtzCiswMDExNDUgICAgIChiYXNlIDE2KQkJVmFsdWVQb2ludCBOZXR3b3JrcworCQkJCTM1MCBUb3duc2VuZCBTdCBTdGUgMzIwCisJCQkJU2FuIEZyYW5jaXNjbywgQ0EgOTQxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTQ2ICAgKGhleCkJCVRlbGVjYXJkLVByaWJvciBMdGQKKzAwMTE0NiAgICAgKGJhc2UgMTYpCQlUZWxlY2FyZC1Qcmlib3IgTHRkCisJCQkJTHVzdGRvcmZza2F5YSBkb3JvZ2EsIDE2MgorCQkJCU9kZXNzYSAgNjUxMTUKKwkJCQlVS1JBSU5FCisKKzAwLTExLTQ3ICAgKGhleCkJCVNlY29tLUluZHVzdHJ5IGNvLkxURC4KKzAwMTE0NyAgICAgKGJhc2UgMTYpCQlTZWNvbS1JbmR1c3RyeSBjby5MVEQuCisJCQkJRnVrdW8ga2FLdXJhbW90byBJY2hpaG9ua2kgMy0zCisJCQkJU2hpcm9pc2hpIE1peWFnaSA5ODktMDI5NQorCQkJCUpBUEFOCisKKzAwLTExLTQ4ICAgKGhleCkJCVByb2xvbiBDb250cm9sIFN5c3RlbXMKKzAwMTE0OCAgICAgKGJhc2UgMTYpCQlQcm9sb24gQ29udHJvbCBTeXN0ZW1zCisJCQkJSGVyc3RlZHZlc3RlcnN0cmFlZGUgNTYKKwkJCQlBbGJlcnRzbHVuZCAgREstMjYyMAorCQkJCURFTk1BUksKKworMDAtMTEtNDkgICAoaGV4KQkJUHJvbGlwaGl4IEluYy4KKzAwMTE0OSAgICAgKGJhc2UgMTYpCQlQcm9saXBoaXggSW5jLgorCQkJCTY2IFRhZG11Y2sgUmQuCisJCQkJV2VzdGZvcmQgTUEgMDE4ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTRBICAgKGhleCkJCUtBWUFCQSBJTkRVU1RSWSBDbywuTHRkLgorMDAxMTRBICAgICAoYmFzZSAxNikJCUtBWUFCQSBJTkRVU1RSWSBDbywuTHRkLgorCQkJCVdvcmxkIFRyYWRlIENlbnRlciBCbGRnLiwgNC0xCisJCQkJSGFtYW1hdHN1LWNobyAyLWNob21lLAorCQkJCU1pbmF0by1rdSwgVG9reW8gTWV0by4gMTA1LTYxMTEKKwkJCQlKQVBBTgorCiswMC0xMS00QiAgIChoZXgpCQlGcmFuY290eXAtUG9zdGFsaWEgR21iSAorMDAxMTRCICAgICAoYmFzZSAxNikJCUZyYW5jb3R5cC1Qb3N0YWxpYSBHbWJICisJCQkJVHJpZnR3ZWcgMjEtMjYKKwkJCQlCaXJrZW53ZXJkZXIgQnJhbmRlbmJ1cmcgMTY1NDcKKwkJCQlHRVJNQU5ZCisKKzAwLTExLTRDICAgKGhleCkJCWNhZmZlaW5hIGFwcGxpZWQgcmVzZWFyY2ggbHRkLgorMDAxMTRDICAgICAoYmFzZSAxNikJCWNhZmZlaW5hIGFwcGxpZWQgcmVzZWFyY2ggbHRkLgorCQkJCTEyNSBiYWlyZCBhdmUKKwkJCQljb2NocmFuZSBhbGJlcnRhIHQ0YyAxYzcKKwkJCQlDQU5BREEKKworMDAtMTEtNEQgICAoaGV4KQkJQXRzdW1pIEVsZWN0cmljIENvLixMVEQuCiswMDExNEQgICAgIChiYXNlIDE2KQkJQXRzdW1pIEVsZWN0cmljIENvLixMVEQuCisJCQkJNC0yLTIgU2hpbi1NaXlha29kYSwgS2l0YS1rdQorCQkJCUhhbWFtYXRzdSBTaGl6dW9rYSA0MzEtMjEwMworCQkJCUpBUEFOCisKKzAwLTExLTRFICAgKGhleCkJCTY5MDg4NSBPbnRhcmlvIEluYy4KKzAwMTE0RSAgICAgKGJhc2UgMTYpCQk2OTA4ODUgT250YXJpbyBJbmMuCisJCQkJMjA1IEFubmFnZW0gQmx2ZC4KKwkJCQlNaXNzaXNzYXVnYSBPbnRhcmlvIEw1VCAyVjEKKwkJCQlDQU5BREEKKworMDAtMTEtNEYgICAoaGV4KQkJVVMgRGlnaXRhbCBUZWxldmlzaW9uLCBJbmMKKzAwMTE0RiAgICAgKGJhc2UgMTYpCQlVUyBEaWdpdGFsIFRlbGV2aXNpb24sIEluYworCQkJCTU4MDcgTi4gQW5kcmV3cyBXYXkKKwkJCQlGb3J0IExhdWRlcmRhbGUgRkwgMzMzMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTUwICAgKGhleCkJCUJlbGtpbiBDb3Jwb3JhdGlvbgorMDAxMTUwICAgICAoYmFzZSAxNikJCUJlbGtpbiBDb3Jwb3JhdGlvbgorCQkJCTUwMSBXZXN0IFdhbG51dCBTdHJlZXQKKwkJCQlDb21wdG9uIENBIDkwMjIwLTUyMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTUxICAgKGhleCkJCU15a290cm9ueAorMDAxMTUxICAgICAoYmFzZSAxNikJCU15a290cm9ueAorCQkJCTM1OSBWYW4gTmVzcyBXYXkKKwkJCQlUb3JyYW5jZSBDQSA5MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNTIgICAoaGV4KQkJRWlkc3ZvbGwgRWxlY3Ryb25pY3MgQVMKKzAwMTE1MiAgICAgKGJhc2UgMTYpCQlFaWRzdm9sbCBFbGVjdHJvbmljcyBBUworCQkJCU5lZHJlIFZpbGJlcmcgdmVpIDgKKwkJCQlFaWRzdm9sbCAgTi0yMDgwCisJCQkJTk9SV0FZCisKKzAwLTExLTUzICAgKGhleCkJCVRyaWRlbnQgVGVrLCBJbmMuCiswMDExNTMgICAgIChiYXNlIDE2KQkJVHJpZGVudCBUZWssIEluYy4KKwkJCQk4MDQxIENlc3NuYSBBdmUgIzIwMAorCQkJCUdhaXRoZXJzYnVyZyBNRCAyMDg3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNTQgICAoaGV4KQkJV2VicHJvIFRlY2hub2xvZ2llcyBJbmMuCiswMDExNTQgICAgIChiYXNlIDE2KQkJV2VicHJvIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMkYtMSwgTm8uODEsIFNlYy4gNCwgQ2h1bmdjaGluZyBOLiBSZC4sCisJCQkJU2hybGluIENoaXUKKwkJCQlUYWlwZWkgIDExMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtNTUgICAoaGV4KQkJU2V2aXMgU3lzdGVtcworMDAxMTU1ICAgICAoYmFzZSAxNikJCVNldmlzIFN5c3RlbXMKKwkJCQkyODA1IE4gRGFsbGFzIFBhcmt3YXksIFNURSA1MzAKKwkJCQlQbGFubyBUZXhhcyA3NTA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNTYgICAoaGV4KQkJUGhhcm9zIFN5c3RlbXMgTloKKzAwMTE1NiAgICAgKGJhc2UgMTYpCQlQaGFyb3MgU3lzdGVtcyBOWgorCQkJCUxldmVsIDMsIDEyMyBDYXJsdG9uIEdvcmUgUm9hZAorCQkJCUdyYWZ0b24KKwkJCQlBdWNrbGFuZCBOWiAxMDAxCisJCQkJTkVXIFpFQUxBTkQKKworMDAtMTEtNTcgICAoaGV4KQkJT0YgTmV0d29ya3MgQ28uLCBMdGQuCiswMDExNTcgICAgIChiYXNlIDE2KQkJT0YgTmV0d29ya3MgQ28uLCBMdGQuCisJCQkJMS0zLUNiNCBOYWthc2UsIE1paGFtYS1rdQorCQkJCUNoaWJhIENpdHkgQ2hpYmEgMjYxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xMS01OCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMTE1OCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xMS01OSAgIChoZXgpCQlNQVRJU1NFIE5FVFdPUktTIElOQworMDAxMTU5ICAgICAoYmFzZSAxNikJCU1BVElTU0UgTkVUV09SS1MgSU5DCisJCQkJMzM5IE4gQkVSTkFSRE8gQVZFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNUEgICAoaGV4KQkJSXZvY2xhciBWaXZhZGVudCBBRworMDAxMTVBICAgICAoYmFzZSAxNikJCUl2b2NsYXIgVml2YWRlbnQgQUcKKwkJCQlCZW5kZXJlcnN0cmFzc2UgMgorCQkJCVNjaGFhbiAgOTQ5NAorCQkJCUxJRUNIVEVOU1RFSU4KKworMDAtMTEtNUIgICAoaGV4KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uIChFQ1MpCiswMDExNUIgICAgIChiYXNlIDE2KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uIChFQ1MpCisJCQkJTm8uMjIsIEFsbGV5IDM4LCBMYW5lIDkxLCBTZWMuIDEsIE5laSBIdSBSb2FkLAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS01QyAgIChoZXgpCQlDaXNjbworMDAxMTVDICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTVEICAgKGhleCkJCUNpc2NvCiswMDExNUQgICAgIChiYXNlIDE2KQkJQ2lzY28KKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNUUgICAoaGV4KQkJUHJvTWluZW50IERvc2llcnRlY2huaWsgR21iSAorMDAxMTVFICAgICAoYmFzZSAxNikJCVByb01pbmVudCBEb3NpZXJ0ZWNobmlrIEdtYkgKKwkJCQlJbSBTY2h1bWFjaGVyZ2V3YW5uIDUtMTEKKwkJCQlIZWlkZWxiZXJnIEJXIDY5MTIzCisJCQkJR0VSTUFOWQorCiswMC0xMS01RiAgIChoZXgpCQlJVFggU2VjdXJpdHkgQ28uLCBMdGQuCiswMDExNUYgICAgIChiYXNlIDE2KQkJSVRYIFNlY3VyaXR5IENvLiwgTHRkLgorCQkJCTlGIEtvbG9uIERpZ2l0YWwgVG93ZXIgQXN0b24gQmxkZy4gNTA1LTE0CisJCQkJR2FzYW4tZG9uZyBHZXVtY2hlb24tZ3UgU0VPVUwgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS02MCAgIChoZXgpCQlBUlRESU8gQ29tcGFueSBDby4sIExURAorMDAxMTYwICAgICAoYmFzZSAxNikJCUFSVERJTyBDb21wYW55IENvLiwgTFRECisJCQkJN3RoIEZMLi4sIE5vLjQ3NiwgTWluLUh1IFJELiwgSHNpbi1DaHUsCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS02MSAgIChoZXgpCQlOZXRTdHJlYW1zLCBMTEMKKzAwMTE2MSAgICAgKGJhc2UgMTYpCQlOZXRTdHJlYW1zLCBMTEMKKwkJCQkzNjAwIFcuIFBhcm1lciBMYW5lCisJCQkJU3VpdGUgMTAwCisJCQkJQXVzdGluIFRYIDc4NzI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS02MiAgIChoZXgpCQlTVEFSIE1JQ1JPTklDUyBDTy4sTFRELgorMDAxMTYyICAgICAoYmFzZSAxNikJCVNUQVIgTUlDUk9OSUNTIENPLixMVEQuCisJCQkJNTM2IFNoaW1penVuYW5hdHN1c2hpbnlhCisJCQkJU2hpenVva2EgIDQyNC0wMDY2CisJCQkJSkFQQU4KKworMDAtMTEtNjMgICAoaGV4KQkJU1lTVEVNIFNQQSBERVBULiBFTEVDVFJPTklDUworMDAxMTYzICAgICAoYmFzZSAxNikJCVNZU1RFTSBTUEEgREVQVC4gRUxFQ1RST05JQ1MKKwkJCQlWSUEgR0hJQVJPTEEgVkVDQ0hJQSA3MworCQkJCUZJT1JBTk8gTU9ERU5FU0UgTU9ERU5BIEktNDEwNDIKKwkJCQlJVEFMWQorCiswMC0xMS02NCAgIChoZXgpCQlBQ0FSRCBUZWNobm9sb2d5IENvcnAuCiswMDExNjQgICAgIChiYXNlIDE2KQkJQUNBUkQgVGVjaG5vbG9neSBDb3JwLgorCQkJCTZGIE5vLjc4IFNlYzEgS3dhbmcgRnUgUm9hZCwgU2FuY2h1bmcsCisJCQkJVGFpcGVpIEhzaWVuICAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTY1ICAgKGhleCkJCVpueXggTmV0d29ya3MKKzAwMTE2NSAgICAgKGJhc2UgMTYpCQlabnl4IE5ldHdvcmtzCisJCQkJNDg0MjEgTWlsbW9udCBEcml2ZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTY2ICAgKGhleCkJCVRhZWxpbSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMTE2NiAgICAgKGJhc2UgMTYpCQlUYWVsaW0gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJMTk2LTUsIEFOWUFORzctRE9ORyBNQU5BTi1HVQorCQkJCUFOWUFORy1TSSBLWVVHR0ktRE8gNDMwLTgxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS02NyAgIChoZXgpCQlJbnRlZ3JhdGVkIFN5c3RlbSBTb2x1dGlvbiBDb3JwLgorMDAxMTY3ICAgICAoYmFzZSAxNikJCUludGVncmF0ZWQgU3lzdGVtIFNvbHV0aW9uIENvcnAuCisJCQkJM0YsIE5vLiAyLTEsIGluZHVzdHJ5IEVhc3QgUmQuLCBJCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTY4ICAgKGhleCkJCUhvbWVMb2dpYyBMTEMKKzAwMTE2OCAgICAgKGJhc2UgMTYpCQlIb21lTG9naWMgTExDCisJCQkJMTAwIEhvb2RzIExhbmUKKwkJCQlNYXJibGVoZWFkIE1BIDAxOTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS02OSAgIChoZXgpCQlFTVMgU2F0Y29tCiswMDExNjkgICAgIChiYXNlIDE2KQkJRU1TIFNhdGNvbQorCQkJCUdyZWVuIExhbmUKKwkJCQlBc2hjaHVyY2gKKwkJCQlUZXdrZXNidXJ5IEdsb3VjZXN0ZXJzaGlyZSBHTDIwIDhIRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLTZBICAgKGhleCkJCURvbW8gTHRkCiswMDExNkEgICAgIChiYXNlIDE2KQkJRG9tbyBMdGQKKwkJCQlXZXNzZXggSG91c2UKKwkJCQlVcHBlciBNYXJrZXQgU3RyZWV0CisJCQkJRWFzdGxlaWdoIEhhbXBzaGlyZSBTTzUwIDlGRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLTZCICAgKGhleCkJCURpZ2l0YWwgRGF0YSBDb21tdW5pY2F0aW9ucyBBc2lhIENvLixMdGQKKzAwMTE2QiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIERhdGEgQ29tbXVuaWNhdGlvbnMgQXNpYSBDby4sTHRkCisJCQkJOEYsTm8uNDEsTGFuZSAyMjEsS2FuZy1DaGllbiBSRC4sTmVpLUh1IERpcy4sCisJCQkJVGFpcGVpIENpdHkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtNkMgICAoaGV4KQkJTmFud2FuZyBNdWx0aW1lZGlhIEluYy4sTHRkCiswMDExNkMgICAgIChiYXNlIDE2KQkJTmFud2FuZyBNdWx0aW1lZGlhIEluYy4sTHRkCisJCQkJRmxvb3IgMTIsVGlhbnl1YW4gQmxkZyxXZW5zYW4gUmQjNTA4CisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEzCisJCQkJQ0hJTkEKKworMDAtMTEtNkQgICAoaGV4KQkJQW1lcmljYW4gVGltZSBhbmQgU2lnbmFsCiswMDExNkQgICAgIChiYXNlIDE2KQkJQW1lcmljYW4gVGltZSBhbmQgU2lnbmFsCisJCQkJMTQwIFRoaXJkIFN0LiBTb3V0aAorCQkJCURhc3NlbCBNTiA1NTMyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNkUgICAoaGV4KQkJUGVQTGluayBMdGQuCiswMDExNkUgICAgIChiYXNlIDE2KQkJUGVQTGluayBMdGQuCisJCQkJMTcvRi4sIFBhcmsgQnVpbGRpbmcKKwkJCQk0NzYgQ2FzdGxlIFBlYWsgUm9hZAorCQkJCUNoZXVuZyBTaGEgV2FuIEtvd2xvb24gCisJCQkJSE9ORyBLT05HCisKKzAwLTExLTZGICAgKGhleCkJCU5ldGZvcnlvdSBDby4sIExURC4KKzAwMTE2RiAgICAgKGJhc2UgMTYpCQlOZXRmb3J5b3UgQ28uLCBMVEQuCisJCQkJMTEyMS00IDNGLCAgS3dhbnlhbmctZG9uZywgRG9uZ2FuLWd1CisJCQkJQW55YW5nLXNpIEt5dW5nZ2ktZG8gNDMxLTgwNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS03MCAgIChoZXgpCQlHU0MgU1JMCiswMDExNzAgICAgIChiYXNlIDE2KQkJR1NDIFNSTAorCQkJCVZJQSBQRVIgVklNRVJDQVRFCisJCQkJVVNNQVRFIFZFTEFURSBNSUxBTk8gMjAwNDAKKwkJCQlJVEFMWQorCiswMC0xMS03MSAgIChoZXgpCQlERVhURVIgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTE3MSAgICAgKGJhc2UgMTYpCQlERVhURVIgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyRiBTaGluc3VuZyBCL0QgNDA0LTEKKwkJCQlCYWNraHl1bi1Eb25nLCBCdW5kYW5nLUd1CisJCQkJU3VuZ25hbSBHeXVuZ2dpIDQ2My00MjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtNzIgICAoaGV4KQkJQ09UUk9OIENPUlBPUkFUSU9OCiswMDExNzIgICAgIChiYXNlIDE2KQkJQ09UUk9OIENPUlBPUkFUSU9OCisJCQkJMTJGTCxOby4xNTAsU2VjLjQsQ2hlbmctRGUgUmQKKwkJCQlTaGlobGluIERpc3RyaWN0CisJCQkJVGFpcGVpIENpdHkgIDExMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtNzMgICAoaGV4KQkJU01BUlQgTW9kdWxhciBUZWNobm9sb2dpZXMKKzAwMTE3MyAgICAgKGJhc2UgMTYpCQlTTUFSVCBNb2R1bGFyIFRlY2hub2xvZ2llcworCQkJCTQ0MTUgRSBDb3R0b24gQ2VudGVyIEJsdmQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlQaG9lbml4IEFaIDg1MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS03NCAgIChoZXgpCQlXaWJodSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTE3NCAgICAgKGJhc2UgMTYpCQlXaWJodSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxNTYxIEJsYWNraGF3ayBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNzUgICAoaGV4KQkJUGF0aFNjYWxlLCBJbmMuCiswMDExNzUgICAgIChiYXNlIDE2KQkJUGF0aFNjYWxlLCBJbmMuCisJCQkJNDc3IE4uIE1hdGhpbGRhIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTc2ICAgKGhleCkJCUludGVsbGFtYmRhIFN5c3RlbXMsIEluYy4KKzAwMTE3NiAgICAgKGJhc2UgMTYpCQlJbnRlbGxhbWJkYSBTeXN0ZW1zLCBJbmMuCisJCQkJNDg1MDEgV2FybSBTcHJpbmdzIEJsdmQsICMxMDcKKwkJCQlGcmVtb250IENhbGlmb3JuaWEgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTc3ICAgKGhleCkJCUNvYXhpYWwgTmV0d29ya3MsIEluYy4KKzAwMTE3NyAgICAgKGJhc2UgMTYpCQlDb2F4aWFsIE5ldHdvcmtzLCBJbmMuCisJCQkJNDYzMyBPbGQgSXJvbnNpZGVzIERyCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTc4ICAgKGhleCkJCUNoaXJvbiBUZWNobm9sb2d5IEx0ZAorMDAxMTc4ICAgICAoYmFzZSAxNikJCUNoaXJvbiBUZWNobm9sb2d5IEx0ZAorCQkJCVd5dm9scyBDb3VydAorCQkJCVN3YWxsb3dmaWVsZAorCQkJCVJlYWRpbmcgQmVya3NoaXJlIFJHNyAxV1kKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS03OSAgIChoZXgpCQlTaW5ndWxhciBUZWNobm9sb2d5IENvLiBMdGQuCiswMDExNzkgICAgIChiYXNlIDE2KQkJU2luZ3VsYXIgVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCTIxRiwgTm8uMzcsIFNlYy4yLCBTYW4gTWluIFJkLiwKKwkJCQlQYW4gQ2hpYW8gQ2l0eSwgVGFpcGVpIENvdW50eQorCQkJCVRhaXBlaSAgMjIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS03QSAgIChoZXgpCQlTaW5naW0gSW50ZXJuYXRpb25hbCBDb3JwLgorMDAxMTdBICAgICAoYmFzZSAxNikJCVNpbmdpbSBJbnRlcm5hdGlvbmFsIENvcnAuCisJCQkJNkYtMiwgTm8uIDE5MCwgU2VjLiAyIENodW5nIEhzaW4gUm9hZCwKKwkJCQlIc2luIFRpZW4gQ2l0eSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS03QiAgIChoZXgpCQlCdWNoaSBMYWJvcnRlY2huaWsgQUcKKzAwMTE3QiAgICAgKGJhc2UgMTYpCQlCdWNoaSBMYWJvcnRlY2huaWsgQUcKKwkJCQlNZWllcnNlZ2dzdHJhc3NlIDQwCisJCQkJRmxhd2lsIDkyMzAgU0cKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xMS03QyAgIChoZXgpCQllLXp5Lm5ldAorMDAxMTdDICAgICAoYmFzZSAxNikJCWUtenkubmV0CisJCQkJU21pcm5pcyAxNAorCQkJCVZlcmlhIEltYXRoaWEgNTkxMDAKKwkJCQlHUkVFQ0UKKworMDAtMTEtN0QgICAoaGV4KQkJWk1EIEFtZXJpY2EsIEluYy4KKzAwMTE3RCAgICAgKGJhc2UgMTYpCQlaTUQgQW1lcmljYSwgSW5jLgorCQkJCTE1MzczIElubm92YXRpb24gRHJpdmUKKwkJCQlTdWl0ZSAxMTUKKwkJCQlTYW4gRGllbyBDQSA5MjEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtN0UgICAoaGV4KQkJUHJvZ2VueSBJbmMuCiswMDExN0UgICAgIChiYXNlIDE2KQkJUHJvZ2VueSBJbmMuCisJCQkJMTQwNyBCYXJjbGF5IEJvdWxldmFyZAorCQkJCUJ1ZmZhbG8gR3JvdmUgSUwgNjAwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTdGICAgKGhleCkJCU5lb3R1bmUgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbiwuTFRECiswMDExN0YgICAgIChiYXNlIDE2KQkJTmVvdHVuZSBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uLC5MVEQKKwkJCQkxNzAzIyAgTm8uNzM3ICBOb3J0aCBvZiBDYW94aSBSZC4KKwkJCQlTaGFuZ2hhaSAgMjAwMDMwCisJCQkJQ0hJTkEKKworMDAtMTEtODAgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMTE4MCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTgxICAgKGhleCkJCUludGVyRW5lcmd5IENvLkx0ZCwKKzAwMTE4MSAgICAgKGJhc2UgMTYpCQlJbnRlckVuZXJneSBDby5MdGQsCisJCQkJNEYgU2hpbnlva29oYW1hIEJvc2VpIEJsZGcuCisJCQkJMy0yMC0xMyBTaGlueW9rb2hhbWEgS29oaG9rdS1rdQorCQkJCVlva29oYW1hIGNpdHkgS2FuYWdhd2EgMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0xMS04MiAgIChoZXgpCQlJTUkgTm9yZ3JlbiBMdGQKKzAwMTE4MiAgICAgKGJhc2UgMTYpCQlJTUkgTm9yZ3JlbiBMdGQKKwkJCQlQTyBCb3ggMjIKKwkJCQlFYXN0ZXJuIEF2ZW51ZQorCQkJCUxpY2hmaWVsZCBTdGFmZm9yZHNoaXJlIFdTMTMgNlNCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTEtODMgICAoaGV4KQkJRGF0YWxvZ2ljIE1vYmlsZSwgSW5jLgorMDAxMTgzICAgICAoYmFzZSAxNikJCURhdGFsb2dpYyBNb2JpbGUsIEluYy4KKwkJCQkxNTA1IFdlc3RlYyBEcml2ZQorCQkJCUV1Z2VuZSBPUiA5NzQwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtODQgICAoaGV4KQkJSHVtbyBMYWJvcmF0b3J5LEx0ZC4KKzAwMTE4NCAgICAgKGJhc2UgMTYpCQlIdW1vIExhYm9yYXRvcnksTHRkLgorCQkJCU5pc2hpb2dpLUtpdGEgNS0xOS0xMQorCQkJCVN1Z2luYW1pLWt1IFRva3lvIDE2Ny0wMDQyCisJCQkJSkFQQU4KKworMDAtMTEtODUgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDExODUgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkgU291dGgKKwkJCQlNUzA3MDQwNQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTg2ICAgKGhleCkJCVByaW1lIFN5c3RlbXMsIEluYy4KKzAwMTE4NiAgICAgKGJhc2UgMTYpCQlQcmltZSBTeXN0ZW1zLCBJbmMuCisJCQkJMTYyNjctMzMzCisJCQkJU3V3YS1ndW4gSGFyYS1tdXJhIE5hZ2FubyAzOTEtMDEwMAorCQkJCUpBUEFOCisKKzAwLTExLTg3ICAgKGhleCkJCUNhdGVnb3J5IFNvbHV0aW9ucywgSW5jCiswMDExODcgICAgIChiYXNlIDE2KQkJQ2F0ZWdvcnkgU29sdXRpb25zLCBJbmMKKwkJCQkxMDIxIFcuIEFkYW1zIFN0CisJCQkJQ2hpY2FnbyBJTCA2MDYwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtODggICAoaGV4KQkJRW50ZXJhc3lzCiswMDExODggICAgIChiYXNlIDE2KQkJRW50ZXJhc3lzCisJCQkJMzUgSW5kdXN0cmlhbCBXYXkKKwkJCQlSb2NoZXN0ZXIgTkggMDM4NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTg5ICAgKGhleCkJCUFlcm90ZWNoIEluYworMDAxMTg5ICAgICAoYmFzZSAxNikJCUFlcm90ZWNoIEluYworCQkJCTEwMSBaZXRhIERyaXZlCisJCQkJUGl0dHNidXJnaCBQQSAxNTIzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtOEEgICAoaGV4KQkJVmlld3RyYW4gVGVjaG5vbG9neSBMaW1pdGVkCiswMDExOEEgICAgIChiYXNlIDE2KQkJVmlld3RyYW4gVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJMy9GLCBSMi1BIGJ1aWxpZGluZywgSGlnaCBUZWNoIEluZHVzdHJpYWwgUGFyaywKKwkJCQlOYW5zaGFuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xMS04QiAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudCwgRW50ZXJwcmlzZSBCdXNpbmVzcyBHcm91cAorMDAxMThCICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50LCBFbnRlcnByaXNlIEJ1c2luZXNzIEdyb3VwCisJCQkJMjY4MDEgV2VzdCBBZ291cmEgUm9hZAorCQkJCUNhbGFiYXNhcyBDQSA5MTMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtOEMgICAoaGV4KQkJTWlzc291cmkgRGVwYXJ0bWVudCBvZiBUcmFuc3BvcnRhdGlvbgorMDAxMThDICAgICAoYmFzZSAxNikJCU1pc3NvdXJpIERlcGFydG1lbnQgb2YgVHJhbnNwb3J0YXRpb24KKwkJCQlQLk8uIEJveCAyNzAKKwkJCQlKZWZmZXJzb24gQ2l0eSBNaXNzb3VyaSA2NTEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtOEQgICAoaGV4KQkJSGFuY2hhbmcgU3lzdGVtIENvcnAuCiswMDExOEQgICAgIChiYXNlIDE2KQkJSGFuY2hhbmcgU3lzdGVtIENvcnAuCisJCQkJNzE1LTExIEJvZXVuLVRvd24sIEUtZG9uZywgU2FuZ3Jvay1ndSwKKwkJCQlBbnNhbi1zaGkgS3l1bmdraS1EbyA0MjUtODU3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLThFICAgKGhleCkJCUhhbHl0ZWNoIE1hY2UKKzAwMTE4RSAgICAgKGJhc2UgMTYpCQlIYWx5dGVjaCBNYWNlCisJCQkJVW5pdCAxMSwgMjIgTGV4aW5ndG9uIERyaXZlCisJCQkJTm9yd2VzdCBCdXNpbmVzcyBQYXJrCisJCQkJQmF1bGtoYW0gSGlsbHMgTlNXIDIxNTMKKwkJCQlBVVNUUkFMSUEKKworMDAtMTEtOEYgICAoaGV4KQkJRVVURUNIIElOU1RSVU1FTlRTIFBURS4gTFRELgorMDAxMThGICAgICAoYmFzZSAxNikJCUVVVEVDSCBJTlNUUlVNRU5UUyBQVEUuIExURC4KKwkJCQlCbGsgNTUsQXllciBSYWphaCBDcmVzY2VudCwgIzA0LTE2LzI0LgorCQkJCTEzOTk0OQorCQkJCVNJTkdBUE9SRQorCiswMC0xMS05MCAgIChoZXgpCQlEaWdpdGFsIERlc2lnbiBDb3Jwb3JhdGlvbgorMDAxMTkwICAgICAoYmFzZSAxNikJCURpZ2l0YWwgRGVzaWduIENvcnBvcmF0aW9uCisJCQkJMzgyMCBWZW50dXJhIERyaXZlCisJCQkJQXJsaW5ndG9uIEhlaWdodHMgSUwgNjAwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTkxICAgKGhleCkJCUNUUy1DbGltYSBUZW1wZXJhdHVyIFN5c3RlbWUgR21iSAorMDAxMTkxICAgICAoYmFzZSAxNikJCUNUUy1DbGltYSBUZW1wZXJhdHVyIFN5c3RlbWUgR21iSAorCQkJCUxvdHplbmFja2VyIDIxCisJCQkJSGVjaGluZ2VuIEJhZGVud3VydHRlbWJlcmcgNzIzNzkKKwkJCQlHRVJNQU5ZCisKKzAwLTExLTkyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTE5MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTkzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTE5MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otbS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTk0ICAgKGhleCkJCUNoaSBNZWkgQ29tbXVuaWNhdGlvbiBTeXN0ZW1zLCBJbmMuCiswMDExOTQgICAgIChiYXNlIDE2KQkJQ2hpIE1laSBDb21tdW5pY2F0aW9uIFN5c3RlbXMsIEluYy4KKwkJCQkxMUYsIE5vLjM5LCBDaHVuZyBIdWEgUkQuIFNlYyAxCisJCQkJVGFpcGVpICAxMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTk1ICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxMTk1ICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCTJGIE5vLiAyMzMtMiwgUGFvLUNoaWFvIFJvYWQKKwkJCQlIc2luLVRpZW4KKwkJCQlUYWlwZWkgVGFpd2FuIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtOTYgICAoaGV4KQkJQWN0dWFsaXR5IFN5c3RlbXMsIEluYy4KKzAwMTE5NiAgICAgKGJhc2UgMTYpCQlBY3R1YWxpdHkgU3lzdGVtcywgSW5jLgorCQkJCTI1IENvcnBvcmF0ZSBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCUJ1cmxpbmd0b24gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTk3ICAgKGhleCkJCU1vbml0b3JpbmcgVGVjaG5vbG9naWVzIExpbWl0ZWQKKzAwMTE5NyAgICAgKGJhc2UgMTYpCQlNb25pdG9yaW5nIFRlY2hub2xvZ2llcyBMaW1pdGVkCisJCQkJMTQgQXR0ZW5idXJ5cyBQYXJrIEVzdGF0ZQorCQkJCUF0dGVuYnVyeXMgTGFuZQorCQkJCVRpbXBlcmxleSBDaGVzaGlyZSBXQTE0IDVRRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLTk4ICAgKGhleCkJCVByaXNtIE1lZGlhIFByb2R1Y3RzIExpbWl0ZWQKKzAwMTE5OCAgICAgKGJhc2UgMTYpCQlQcmlzbSBNZWRpYSBQcm9kdWN0cyBMaW1pdGVkCisJCQkJV2lsbGlhbSBKYW1lcyBIb3VzZQorCQkJCUNvd2xleSBSb2FkCisJCQkJQ2FtYnJpZGdlIENhbWJyaWRnZXNoaXJlIENCNCAwV1gKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS05OSAgIChoZXgpCQkyd2NvbSBHbWJICiswMDExOTkgICAgIChiYXNlIDE2KQkJMndjb20gR21iSAorCQkJCVNjaGxlc3dpZ2VyIFN0cmFzc2UgODUKKwkJCQlGbGVuc2J1cmcgIDI0OTQxCisJCQkJR0VSTUFOWQorCiswMC0xMS05QSAgIChoZXgpCQlBbGtlcmlhIHNybAorMDAxMTlBICAgICAoYmFzZSAxNikJCUFsa2VyaWEgc3JsCisJCQkJMjUgVmlhIEdpdW50aW5pCisJCQkJTmF2YWNjaGlvIChQSSkgIEktNTYwMjMKKwkJCQlJVEFMWQorCiswMC0xMS05QiAgIChoZXgpCQlUZWxlc3luZXJneSBSZXNlYXJjaCBJbmMuCiswMDExOUIgICAgIChiYXNlIDE2KQkJVGVsZXN5bmVyZ3kgUmVzZWFyY2ggSW5jLgorCQkJCTRGLCBOby4gNDksIFR1bmcgSHNpbiBSZC4sCisJCQkJVGFpcGVpICAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTlDICAgKGhleCkJCUVQJlQgRW5lcmd5CiswMDExOUMgICAgIChiYXNlIDE2KQkJRVAmVCBFbmVyZ3kKKwkJCQkzNTggRWFzdGVybiBWYWxsZXkgV2F5CisJCQkJQ2hhdHN3b29kCisJCQkJU3lkbmV5IE5TVyAyMDY3CisJCQkJQVVTVFJBTElBCisKKzAwLTExLTlEICAgKGhleCkJCURpZ2luZm8gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxMTlEICAgICAoYmFzZSAxNikJCURpZ2luZm8gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTEwRmwuLCBOby44MiwgRnUgSHNpbmcgTm9ydGggUm9hZAorCQkJCVRhaXBlaSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS05RSAgIChoZXgpCQlTb2xlY3Ryb24gQnJhemlsCiswMDExOUUgICAgIChiYXNlIDE2KQkJU29sZWN0cm9uIEJyYXppbAorCQkJCVJvZC4gQ2FtcGluYXMgTW9naSBNaXJpbQorCQkJCUJhaXJybyBSb3NlaXJhCisJCQkJSmFndWFyaXVuYSBTUCAxMzgyMC0wMDAKKwkJCQlCUkFaSUwKKworMDAtMTEtOUYgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTE5RiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMTEtQTAgICAoaGV4KQkJVnRlY2ggRW5naW5lZXJpbmcgQ2FuYWRhIEx0ZAorMDAxMUEwICAgICAoYmFzZSAxNikJCVZ0ZWNoIEVuZ2luZWVyaW5nIENhbmFkYSBMdGQKKwkJCQkyMDAtNzY3MSBBbGRlcmJyaWRnZSBXYXkKKwkJCQlSaWNobW9uZCBCQyBWNlggMVo5CisJCQkJQ0FOQURBCisKKzAwLTExLUExICAgKGhleCkJCVZJU0lPTiBORVRXQVJFIENPLixMVEQKKzAwMTFBMSAgICAgKGJhc2UgMTYpCQlWSVNJT04gTkVUV0FSRSBDTy4sTFRECisJCQkJQWNlIFR3aW4gVG93ZXIgKDIpLCAjNzA5CisJCQkJMjEyLTMwLCBHdXJvLURvbmcKKwkJCQlTZW91bCBHdXJvLUd1IDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtQTIgICAoaGV4KQkJTWFudWZhY3R1cmluZyBUZWNobm9sb2d5IEluYworMDAxMUEyICAgICAoYmFzZSAxNikJCU1hbnVmYWN0dXJpbmcgVGVjaG5vbG9neSBJbmMKKwkJCQk3MCBSZWFkeSBBdmUgTlcKKwkJCQlGb3J0IFdhbHRvbiBCZWFjaCBGTCAzMjU0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQTMgICAoaGV4KQkJTGFuUmVhZHkgVGVjaG5vbG9naWVzIEluYy4KKzAwMTFBMyAgICAgKGJhc2UgMTYpCQlMYW5SZWFkeSBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTRGLCBOby4gMzM3LCBTaW5IdSAybmQgUm9hZC4sIE5laUh1IERpc3RyaWN0CisJCQkJVGFpcGVpIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtQTQgICAoaGV4KQkJSlN0cmVhbSBUZWNobm9sb2dpZXMgSW5jLgorMDAxMUE0ICAgICAoYmFzZSAxNikJCUpTdHJlYW0gVGVjaG5vbG9naWVzIEluYy4KKwkJCQlCbGRnLjUzLCBSNDA1LCAxOTUgU2VjLjQsIENodW5nIEhzaW5nIFJkLgorCQkJCUNodXR1bmcsICBIc2luY2h1IDMxMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtQTUgICAoaGV4KQkJRm9ydHVuYSBFbGVjdHJvbmljIENvcnAuCiswMDExQTUgICAgIChiYXNlIDE2KQkJRm9ydHVuYSBFbGVjdHJvbmljIENvcnAuCisJCQkJM0YsIE5vLjksIFNlYy4xLCBDaGFuZ0FuIEVhc3QgUmQuLAorCQkJCVRhaXBlaSAgMTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1BNiAgIChoZXgpCQlTeXBpeHggTmV0d29ya3MKKzAwMTFBNiAgICAgKGJhc2UgMTYpCQlTeXBpeHggTmV0d29ya3MKKwkJCQkxMDggQmFuayBTdHJlZXQKKwkJCQlXYXRlcmJ1cnkgQ1QgMDY3MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUE3ICAgKGhleCkJCUluZmlsY28gRGVncmVtb250IEluYy4KKzAwMTFBNyAgICAgKGJhc2UgMTYpCQlJbmZpbGNvIERlZ3JlbW9udCBJbmMuCisJCQkJODAwNyBEaXNjb3ZlcnkgRHIuCisJCQkJUE8gQm94IDcxMzkwCisJCQkJUmljaG1vbmQgVmlyZ2luaWEgMjMyNTUtMTM5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQTggICAoaGV4KQkJUXVlc3QgVGVjaG5vbG9naWVzCiswMDExQTggICAgIChiYXNlIDE2KQkJUXVlc3QgVGVjaG5vbG9naWVzCisJCQkJMTA2MCBDb3Jwb3JhdGUgQ2VudGVyIERyaXZlCisJCQkJT2Nvbm9tb3dvYyBXaXNjb25zaW4gNTMwNjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUE5ICAgKGhleCkJCU1PSU1TVE9ORSBDby4sIExURAorMDAxMUE5ICAgICAoYmFzZSAxNikJCU1PSU1TVE9ORSBDby4sIExURAorCQkJCTd0aCBGbG9vciBKb29uZ1B5dW5nIEJ1aWxkaW5nIDY0LTEKKwkJCQlXb29teXVuLURvbmcsIFNlb2Noby1HdQorCQkJCVNlb3VsICAxMzctOTAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLUFBICAgKGhleCkJCVVuaWNsYXNzIFRlY2hub2xvZ3ksIENvLiwgTFRECiswMDExQUEgICAgIChiYXNlIDE2KQkJVW5pY2xhc3MgVGVjaG5vbG9neSwgQ28uLCBMVEQKKwkJCQk0RiwgTm8uIDk4LCBNaW5nIGNodWFuIFJkCisJCQkJSHNpbnRpZW4gQ2l0eSBUYWlwZWkgSHNpZW4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1BQiAgIChoZXgpCQlUUlVTVEFCTEUgVEVDSE5PTE9HWSBDTy4sTFRELgorMDAxMUFCICAgICAoYmFzZSAxNikJCVRSVVNUQUJMRSBURUNITk9MT0dZIENPLixMVEQuCisJCQkJMTJGTC4tMSxOTy4xNjcsRnUtU2hpbmcgTi5SZC4sU3VuZy1TaGFuIGFyZWEKKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtQUMgICAoaGV4KQkJU2ltdGVjIEVsZWN0cm9uaWNzCiswMDExQUMgICAgIChiYXNlIDE2KQkJU2ltdGVjIEVsZWN0cm9uaWNzCisJCQkJQXZvbmRhbGUgRHJpdmUKKwkJCQlUYXJsZXRvbiBMYW5jYXNoaXJlIFBSNCA2QVgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS1BRCAgIChoZXgpCQlTaGFuZ2hhaSBSdWlqaWUgVGVjaG5vbG9neQorMDAxMUFEICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFJ1aWppZSBUZWNobm9sb2d5CisJCQkJMjdGLCA0MjAgSmlhbmduaW5nIFJkLgorCQkJCVNoYW5naGFpICAyMDAwNDEKKwkJCQlDSElOQQorCiswMC0xMS1BRSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxMUFFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQUYgICAoaGV4KQkJTWVkaWFsaW5rLWksSW5jCiswMDExQUYgICAgIChiYXNlIDE2KQkJTWVkaWFsaW5rLWksSW5jCisJCQkJMS05LTEwIEhhbWFtYXRzdS1DaG8KKwkJCQlCRUxJRVZFIEEgSEFNQU1BVFNVQ0hPCisJCQkJTWluYXRvLUt1IFRva3lvIDEwNS0wMDEzCisJCQkJSkFQQU4KKworMDAtMTEtQjAgICAoaGV4KQkJRm9ydGVsaW5rIEluYy4KKzAwMTFCMCAgICAgKGJhc2UgMTYpCQlGb3J0ZWxpbmsgSW5jLgorCQkJCTQyNTAxIEFsYnJhZSBzdHJlZXQgc3VpdGUgMjAyCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQjEgICAoaGV4KQkJQmx1ZUV4cGVydCBUZWNobm9sb2d5IENvcnAuCiswMDExQjEgICAgIChiYXNlIDE2KQkJQmx1ZUV4cGVydCBUZWNobm9sb2d5IENvcnAuCisJCQkJOEYsTm8uMTYsTGFuZSA3NyxYaW5nLUFpIFJkLE5laS1IdSBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTE0OTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUIyICAgKGhleCkJCTIwMDEgVGVjaG5vbG9neSBJbmMuCiswMDExQjIgICAgIChiYXNlIDE2KQkJMjAwMSBUZWNobm9sb2d5IEluYy4KKwkJCQk3Ri0xMCwgNzkgSHNpbiBUYWkgNXRoLiBSZC4gU2VjLjEKKwkJCQlIc2kgQ2hpaCBUYWlwZWkgQ291bnR5IDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtQjMgICAoaGV4KQkJWU9TSElNSVlBIENPLixMVEQuCiswMDExQjMgICAgIChiYXNlIDE2KQkJWU9TSElNSVlBIENPLixMVEQuCisJCQkJMi0zLTI0IEJhaW5hbgorCQkJCU5pc2hpbmFyaS1rdQorCQkJCU9TQUtBIE9TQUtBLVByZWYgNTU3LTAwMzMKKwkJCQlKQVBBTgorCiswMC0xMS1CNCAgIChoZXgpCQlXZXN0ZXJtbyBUZWxlaW5kdXN0cmkgQUIKKzAwMTFCNCAgICAgKGJhc2UgMTYpCQlXZXN0ZXJtbyBUZWxlaW5kdXN0cmkgQUIKKwkJCQlTdG9yYSBTdW5kYnkKKwkJCQlTRS02NDAgNDAKKwkJCQlTV0VERU4KKworMDAtMTEtQjUgICAoaGV4KQkJU2hlbnpoZW4gUG93ZXJjb20gQ28uLEx0ZAorMDAxMUI1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFBvd2VyY29tIENvLixMdGQKKwkJCQlGbG9vciAxNixUb3dlciBCLFpob25neWluIEJ1aWxkaW5nLE5vcnRoIENhaXRpYW4gUm9hZCxGdXRpYW4gRGlzdHJpY3QsU2hlbnpoZW4sUC5SLkNoaW5hCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIHByb3ZpbmNlIDUxODAyOAorCQkJCUNISU5BCisKKzAwLTExLUI2ICAgKGhleCkJCU9wZW4gU3lzdGVtcyBJbnRlcm5hdGlvbmFsCiswMDExQjYgICAgIChiYXNlIDE2KQkJT3BlbiBTeXN0ZW1zIEludGVybmF0aW9uYWwKKwkJCQkzNjAwIEhvbGx5IExhbmUgTm9ydGgKKwkJCQlTdWl0ZSA0MAorCQkJCU1pbm5lYXBvbGlzIE1OIDU1NDQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1CNyAgIChoZXgpCQlPY3RhbGl4IEIuVi4KKzAwMTFCNyAgICAgKGJhc2UgMTYpCQlPY3RhbGl4IEIuVi4KKwkJCQlNb2xlbnN0ZWlqbiA2MAorCQkJCURlIE1lZXJuICBOTC0zNDU0IFBUCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTEtQjggICAoaGV4KQkJTGllYmhlcnIgLSBFbGVrdHJvbmlrIEdtYkgKKzAwMTFCOCAgICAgKGJhc2UgMTYpCQlMaWViaGVyciAtIEVsZWt0cm9uaWsgR21iSAorCQkJCVBldGVyIC0gRG9ybmllciAtIFN0cmFzc2UgMTEKKwkJCQlMaW5kYXUgKEJvZGVuc2VlKSBCYXZhcmlhIDg4MTMxCisJCQkJR0VSTUFOWQorCiswMC0xMS1COSAgIChoZXgpCQlJbm5lciBSYW5nZSBQdHkuIEx0ZC4KKzAwMTFCOSAgICAgKGJhc2UgMTYpCQlJbm5lciBSYW5nZSBQdHkuIEx0ZC4KKwkJCQkxIE1pbGxlbml1bSBDb3VydAorCQkJCUtub3hmaWVsZCBWaWN0b3JpYSAzMTgwCisJCQkJQVVTVFJBTElBCisKKzAwLTExLUJBICAgKGhleCkJCUVsZXhvbCBQdHkgTHRkCiswMDExQkEgICAgIChiYXNlIDE2KQkJRWxleG9sIFB0eSBMdGQKKwkJCQlMZXZlbCAyIC8gMTQ2IEJ1bmRhbGwgUm9hZAorCQkJCUJ1bmRhbGwgUXVlZW5zbGFuZCA0MjE3CisJCQkJQVVTVFJBTElBCisKKzAwLTExLUJCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTFCQiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUJDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTFCQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUJEICAgKGhleCkJCUJvbWJhcmRpZXIgVHJhbnNwb3J0YXRpb24KKzAwMTFCRCAgICAgKGJhc2UgMTYpCQlCb21iYXJkaWVyIFRyYW5zcG9ydGF0aW9uCisJCQkJMTUwMSBMZWJhbm9uIENodXJjaCBSb2FkCisJCQkJUGl0dHNidXJnaCBQQSAxNTIzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQkUgICAoaGV4KQkJQUdQIFRlbGVjb20gQ28uIEx0ZAorMDAxMUJFICAgICAoYmFzZSAxNikJCUFHUCBUZWxlY29tIENvLiBMdGQKKwkJCQk5RiwgMTM0IENodW5nLUhzaWFvIEUuIFJECisJCQkJU2VjLiA0CisJCQkJVGFpcGVpICAxMDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUJGICAgKGhleCkJCUFFU1lTIFMucC5BLgorMDAxMUJGICAgICAoYmFzZSAxNikJCUFFU1lTIFMucC5BLgorCQkJCVZpYSBBcnRpZ2lhbmksIDQxCisJCQkJQnJ1c2Fwb3J0byBCZXJnYW1vIDI0MDYwCisJCQkJSVRBTFkKKworMDAtMTEtQzAgICAoaGV4KQkJQWRheSBUZWNobm9sb2d5IEluYworMDAxMUMwICAgICAoYmFzZSAxNikJCUFkYXkgVGVjaG5vbG9neSBJbmMKKwkJCQk5Ri4tMywgTm8uIDI0NywgU2VjLiAxLCBUYWljaHVuZyBQb3J0IFJkLiwKKwkJCQlUYWljaHVuZyBDaXR5IFRhaXcgNDAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1DMSAgIChoZXgpCQk0UCBNT0JJTEUgREFUQSBQUk9DRVNTSU5HCiswMDExQzEgICAgIChiYXNlIDE2KQkJNFAgTU9CSUxFIERBVEEgUFJPQ0VTU0lORworCQkJCVZJQUxFIFJFR0lPTkUgVkVORVRPIDI2CisJCQkJUEFET1ZBIFBEIDM1MTI3CisJCQkJSVRBTFkKKworMDAtMTEtQzIgICAoaGV4KQkJVW5pdGVkIEZpYmVyIE9wdGljIENvbW11bmljYXRpb24KKzAwMTFDMiAgICAgKGJhc2UgMTYpCQlVbml0ZWQgRmliZXIgT3B0aWMgQ29tbXVuaWNhdGlvbgorCQkJCTEzLTEsTk8uNzAwLEp1bmdqZW5nIFJELEp1bmdoZSBDaXR5CisJCQkJSnVuZ2hlIENpdHkgVGFpcGVpIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtQzMgICAoaGV4KQkJVHJhbnNjZWl2aW5nIFN5c3RlbSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDExQzMgICAgIChiYXNlIDE2KQkJVHJhbnNjZWl2aW5nIFN5c3RlbSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJTk8uODUsU2VjLjIsR29uZ2Rhb3d1IFJkLiwKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUM0ICAgKGhleCkJCVRlcm1pbmFsZXMgZGUgVGVsZWNvbXVuaWNhY2lvbiBUZXJyZXN0cmUsIFMuTC4KKzAwMTFDNCAgICAgKGJhc2UgMTYpCQlUZXJtaW5hbGVzIGRlIFRlbGVjb211bmljYWNpb24gVGVycmVzdHJlLCBTLkwuCisJCQkJUG9saWdvbm8gRXVyb3BvbGlzLCBDYWxsZSBDIDI2CisJCQkJTGFzIFJvemFzIE1hZHJpZCAyODIzMAorCQkJCVNQQUlOCisKKzAwLTExLUM1ICAgKGhleCkJCVRFTiBUZWNobm9sb2d5CiswMDExQzUgICAgIChiYXNlIDE2KQkJVEVOIFRlY2hub2xvZ3kKKwkJCQk1NTUgRWFzdCBPY2VhbiBCbHZkLgorCQkJCTl0aCBGbG9vcgorCQkJCUxvbmcgQmVhY2ggQ0EgOTA4MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUM2ICAgKGhleCkJCVNlYWdhdGUgVGVjaG5vbG9neSBMTEMKKzAwMTFDNiAgICAgKGJhc2UgMTYpCQlTZWFnYXRlIFRlY2hub2xvZ3kgTExDCisJCQkJMTI4MCBEaXNjIERyaXZlCisJCQkJU2hha29wZWUgTU4gNTUzNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUM3ICAgKGhleCkJCVJheW1hcmluZSBVSyBMdGQKKzAwMTFDNyAgICAgKGJhc2UgMTYpCQlSYXltYXJpbmUgVUsgTHRkCisJCQkJUXVheSBQb2ludAorCQkJCU5vcnRoYXJib3VyIFJvYWQKKwkJCQlQb3J0c21vdXRoIEhhbXBzaGlyZSBQTzYgM1RECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTEtQzggICAoaGV4KQkJUG93ZXJjb20gQ28uLCBMdGQuCiswMDExQzggICAgIChiYXNlIDE2KQkJUG93ZXJjb20gQ28uLCBMdGQuCisJCQkJOEYsIE5vLiAyNDYsIExpZW4gQ2hlbiBSZC4KKwkJCQlDaHVuZyBIbyBUYWlwZWkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1DOSAgIChoZXgpCQlNVFQgQ29ycG9yYXRpb24KKzAwMTFDOSAgICAgKGJhc2UgMTYpCQlNVFQgQ29ycG9yYXRpb24KKwkJCQkyLTctMTIKKwkJCQlNdXJvdGFuaQorCQkJCU5pc2hpLWt1IEtvYmUgNjUxLTIyNDEKKwkJCQlKQVBBTgorCiswMC0xMS1DQSAgIChoZXgpCQlMb25nIFJhbmdlIFN5c3RlbXMsIEluYy4KKzAwMTFDQSAgICAgKGJhc2UgMTYpCQlMb25nIFJhbmdlIFN5c3RlbXMsIEluYy4KKwkJCQk0NTUwIEV4Y2VsIFBhcmt3YXkKKwkJCQlTdWl0ZSAyMDAKKwkJCQlBZGRpc29uIFRleGFzIDc1MDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1DQiAgIChoZXgpCQlKYWNvYnNvbnMgQUIKKzAwMTFDQiAgICAgKGJhc2UgMTYpCQlKYWNvYnNvbnMgQUIKKwkJCQlOZWRyYWxpZCBzIDMyCisJCQkJTW90YWxhICA1OTEgOTcKKwkJCQlTV0VERU4KKworMDAtMTEtQ0MgICAoaGV4KQkJR3Vhbmd6aG91IEppbnBlbmcgR3JvdXAgQ28uLEx0ZC4KKzAwMTFDQyAgICAgKGJhc2UgMTYpCQlHdWFuZ3pob3UgSmlucGVuZyBHcm91cCBDby4sTHRkLgorCQkJCU5vLjkgU2hlbnpob3UgUm9hZCxHdWFuZ3pob3UgU2NpZW5jZSBDaXR5CisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2NjMKKwkJCQlDSElOQQorCiswMC0xMS1DRCAgIChoZXgpCQlBeHN1biBUZWNobm9sb2dpZXMKKzAwMTFDRCAgICAgKGJhc2UgMTYpCQlBeHN1biBUZWNobm9sb2dpZXMKKwkJCQkxIEZvcnR1bmUgRHJpdmUKKwkJCQlCaWxsZXJpY2EgTUEgMDI0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUNFICAgKGhleCkJCVViaXNlbnNlIExpbWl0ZWQKKzAwMTFDRSAgICAgKGJhc2UgMTYpCQlVYmlzZW5zZSBMaW1pdGVkCisJCQkJU3QuIEFuZHJld3MgSG91c2UKKwkJCQlTdC4gQW5kcmV3cyBSb2FkCisJCQkJQ2hlc3RlcnRvbiBDYW1icmlkZ2UgQ0I0IDFETAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLUNGICAgKGhleCkJCVRocmFuZSAmIFRocmFuZSBBL1MKKzAwMTFDRiAgICAgKGJhc2UgMTYpCQlUaHJhbmUgJiBUaHJhbmUgQS9TCisJCQkJTHVuZHRvZnRlZ2FhcmRzdmVqIDkzRAorCQkJCUx5bmdieSBLP2Jlbmhhdm4gMjgwMAorCQkJCURFTk1BUksKKworMDAtMTEtRDAgICAoaGV4KQkJVGFuZGJlcmcgRGF0YSBBU0EKKzAwMTFEMCAgICAgKGJhc2UgMTYpCQlUYW5kYmVyZyBEYXRhIEFTQQorCQkJCUtqZWxzYXN2ZWllbiAxNjEKKwkJCQlPc2xvICAwNDExCisJCQkJTk9SV0FZCisKKzAwLTExLUQxICAgKGhleCkJCVNvZnQgSW1hZ2luZyBTeXN0ZW0gR21iSAorMDAxMUQxICAgICAoYmFzZSAxNikJCVNvZnQgSW1hZ2luZyBTeXN0ZW0gR21iSAorCQkJCUpvaGFubi1LcmFuZS1XZWcgMzkKKwkJCQlNdWVuc3RlciAgNDgxNDkKKwkJCQlHRVJNQU5ZCisKKzAwLTExLUQyICAgKGhleCkJCVBlcmNlcHRpb24gRGlnaXRhbCBMdGQKKzAwMTFEMiAgICAgKGJhc2UgMTYpCQlQZXJjZXB0aW9uIERpZ2l0YWwgTHRkCisJCQkJRmxhdCBBLCA4L0YsIFNoYXcgSG91c2UKKwkJCQlSTSBBCisJCQkJQ2xlYXIgV2F0ZXIgQmF5IE5UIAorCQkJCUhPTkcgS09ORworCiswMC0xMS1EMyAgIChoZXgpCQlOZXh0R2VuVGVsIEhvbGRpbmcgQVNBCiswMDExRDMgICAgIChiYXNlIDE2KQkJTmV4dEdlblRlbCBIb2xkaW5nIEFTQQorCQkJCVNhbmRzbGltYXJrYSAzMQorCQkJCVNhbmRzbGkKKwkJCQlCZXJnZW4gSG9yZGFsYW5kIDU4NjEKKwkJCQlOT1JXQVkKKworMDAtMTEtRDQgICAoaGV4KQkJTmV0RW5yaWNoLCBJbmMKKzAwMTFENCAgICAgKGJhc2UgMTYpCQlOZXRFbnJpY2gsIEluYworCQkJCTg5MCBIaWxsdmlldyBDdC4KKwkJCQlTdWl0ZSAxNTAKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtRDUgICAoaGV4KQkJSGFuZ3pob3UgU3VueWFyZCBTeXN0ZW0gRW5naW5lZXJpbmcgQ28uLEx0ZC4KKzAwMTFENSAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBTdW55YXJkIFN5c3RlbSBFbmdpbmVlcmluZyBDby4sTHRkLgorCQkJCVN1bnlhcmQgU2NpZW5jZSAmIFRlY2hub2xvZ3kgQnVpbGRpbmcgSGktVGVjaCBTb2Z0d2FyZSBQYXJrKFNlY29uZCBMYW5kIENvbnNvbGlkYXRpb24pCisJCQkJSGFuZ3pob3UgSGktVGVjaCBJbmR1c3RyaWFsIERldmVsb3BtZW50IFpvbmUoQmluamlhbmcgRGlzdHJpY3QpCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDUzCisJCQkJQ0hJTkEKKworMDAtMTEtRDYgICAoaGV4KQkJSGFuZEVyYSwgSW5jLgorMDAxMUQ2ICAgICAoYmFzZSAxNikJCUhhbmRFcmEsIEluYy4KKwkJCQkyODU5IDEwNHRoIFN0LgorCQkJCURlcyBNb2luZXMgSUEgNTAzMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUQ3ICAgKGhleCkJCWVXZXJrcyBJbmMKKzAwMTFENyAgICAgKGJhc2UgMTYpCQllV2Vya3MgSW5jCisJCQkJMzUxMCBNYWlud2F5CisJCQkJQnVybGluZ3RvbiBPbnRhcmlvIEw3TTFBOAorCQkJCUNBTkFEQQorCiswMC0xMS1EOCAgIChoZXgpCQlBU1VTVGVrIENvbXB1dGVyIEluYy4KKzAwMTFEOCAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENvbXB1dGVyIEluYy4KKwkJCQlOby4gMTUsIExpLVRlIFJkLiwgUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUQ5ICAgKGhleCkJCVRpVm8KKzAwMTFEOSAgICAgKGJhc2UgMTYpCQlUaVZvCisJCQkJMjE2MCBHb2xkIEF2ZQorCQkJCUFsdmlzbyBDQSA5NTAwMi0yMTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1EQSAgIChoZXgpCQlWaXZhYXMgVGVjaG5vbG9neSBJbmMuCiswMDExREEgICAgIChiYXNlIDE2KQkJVml2YWFzIFRlY2hub2xvZ3kgSW5jLgorCQkJCTE1RiwgTm8uIDEwLCBTZWMgMSwgUGVpLUhzaW4gUmQuLAorCQkJCUhzaW4tVGllbiBjaXR5IFRhaXBlaSBIc2llbiwgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1EQiAgIChoZXgpCQlMYW5kLUNlbGx1bGFyIENvcnBvcmF0aW9uCiswMDExREIgICAgIChiYXNlIDE2KQkJTGFuZC1DZWxsdWxhciBDb3Jwb3JhdGlvbgorCQkJCTEyMDU0IE1pcmFtYXIgUGFya3dheQorCQkJCU1pcmFtYXIgRkwgMzMwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLURDICAgKGhleCkJCUdsdW56ICYgSmVuc2VuCiswMDExREMgICAgIChiYXNlIDE2KQkJR2x1bnogJiBKZW5zZW4KKwkJCQlIYXNsZXZ2ZWogMTMKKwkJCQlSaW5nc3RlZCAgNDEwMAorCQkJCURFTk1BUksKKworMDAtMTEtREQgICAoaGV4KQkJRlJPTVVTIFRFQy4gQ28uLCBMdGQuCiswMDExREQgICAgIChiYXNlIDE2KQkJRlJPTVVTIFRFQy4gQ28uLCBMdGQuCisJCQkJMkYgODk2LTggSG9neWUyLWRvbmcgRG9uZ2FuLUd1CisJCQkJQW55YW5nLUNpdHksIEd5ZW9uZ2dpLWRvLAorCQkJCTQzMS04MzYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtREUgICAoaGV4KQkJRVVSSUxPR0lDCiswMDExREUgICAgIChiYXNlIDE2KQkJRVVSSUxPR0lDCisJCQkJQ2VudHJhbGUgUGFyYyBCYXQgNworCQkJCUF2ZW51ZSBzdWxseSBwcnVkJ2hvbW1lCisJCQkJQ2hhdGVuYXkgTWFsYWJyeSAgOTIyOTgKKwkJCQlGUkFOQ0UKKworMDAtMTEtREYgICAoaGV4KQkJQ3VycmVudCBFbmVyZ3kKKzAwMTFERiAgICAgKGJhc2UgMTYpCQlDdXJyZW50IEVuZXJneQorCQkJCTU0NDAgSGFydmVzdCBIaWxsLCBTdGUgMTAwCisJCQkJRGFsbGFzIFRYIDc1MjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1FMCAgIChoZXgpCQlVLU1FRElBIENvbW11bmljYXRpb25zLCBJbmMuCiswMDExRTAgICAgIChiYXNlIDE2KQkJVS1NRURJQSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCSA5RiwgTm8uMSBKaW4tU2hhbiBTdC4KKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUUxICAgKGhleCkJCUFyY2VsaWsgQS5TCiswMDExRTEgICAgIChiYXNlIDE2KQkJQXJjZWxpayBBLlMKKwkJCQlDdW1odXJpeWV0IE1haC4sIEU1IFlhbiBZb2wsIE5vOjEsCisJCQkJQmV5bGlrZHV6dQorCQkJCUlzdGFuYnVsICAzNDUyMCAKKwkJCQlUVVJLRVkKKworMDAtMTEtRTIgICAoaGV4KQkJSHVhIEp1bmcgQ29tcG9uZW50cyBDby4sIEx0ZC4KKzAwMTFFMiAgICAgKGJhc2UgMTYpCQlIdWEgSnVuZyBDb21wb25lbnRzIENvLiwgTHRkLgorCQkJCTVGLCBOby4xMywgTGFuZSAxMjAsIFNlYy4xLCBOZWkgSHUgUm9hZAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1FMyAgIChoZXgpCQlUaG9tc29uLCBJbmMuCiswMDExRTMgICAgIChiYXNlIDE2KQkJVGhvbXNvbiwgSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtRTQgICAoaGV4KQkJRGFuZWxlYyBFbGVjdHJvbmljcyBBL1MKKzAwMTFFNCAgICAgKGJhc2UgMTYpCQlEYW5lbGVjIEVsZWN0cm9uaWNzIEEvUworCQkJCUJsb2trZW4gNDQKKwkJCQlCaXJrZXJvZWQgQ29wZW5oYWdlbiAzNDYwCisJCQkJREVOTUFSSworCiswMC0xMS1FNSAgIChoZXgpCQlLQ29kZXMgQ29ycG9yYXRpb24KKzAwMTFFNSAgICAgKGJhc2UgMTYpCQlLQ29kZXMgQ29ycG9yYXRpb24KKwkJCQlGbG9vciAyLCBOdW1iZXIgNTAxLCBTZWN0aW9uIDIKKwkJCQlUaWRpbmcgQm91bGV2YXJkCisJCQkJTmVpaHUgRGlzdHJpY3QgVGFpcGVpIENpdHkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1FNiAgIChoZXgpCQlTY2llbnRpZmljIEF0bGFudGEKKzAwMTFFNiAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIEF0bGFudGEKKwkJCQk1MDMwIFN1Z2FybG9hZiBQYXJrd2F5CisJCQkJTWFpbCBTdG9wIDUuMi40MjgKKwkJCQlMYXdyZW5jZXZpbGxlIEdhIDMwMDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1FNyAgIChoZXgpCQlXT1JMRFNBVCAtIFRleGFzIGRlIEZyYW5jZQorMDAxMUU3ICAgICAoYmFzZSAxNikJCVdPUkxEU0FUIC0gVGV4YXMgZGUgRnJhbmNlCisJCQkJMjIwLCBydWUgR3VzdGF2ZSBFaWZmZWwKKwkJCQljZWRleCAzCisJCQkJQWl4IGVuIFByb3ZlbmNlIEJvdWNoZXMgZHUgUmhvbmUgMTM4NTQKKwkJCQlGUkFOQ0UKKworMDAtMTEtRTggICAoaGV4KQkJVGl4aS5Db20KKzAwMTFFOCAgICAgKGJhc2UgMTYpCQlUaXhpLkNvbQorCQkJCUthcm1lbGl0ZXJ3ZWcgMTE0CisJCQkJQmVybGluICAxMzQ2NQorCQkJCUdFUk1BTlkKKworMDAtMTEtRTkgICAoaGV4KQkJU1RBUk5FWCBDTy4sIExURC4KKzAwMTFFOSAgICAgKGJhc2UgMTYpCQlTVEFSTkVYIENPLiwgTFRELgorCQkJCTR0aCBGbG9vciwgQyZDIEJsZGcsIDIyOC0yCisJCQkJR3V1aS1kb25nCisJCQkJS3dhbmdqaW4tZ3UgU2VvdWwgMTQzLTIwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS1FQSAgIChoZXgpCQlJV0lDUyBJbmMuCiswMDExRUEgICAgIChiYXNlIDE2KQkJSVdJQ1MgSW5jLgorCQkJCTE5MTI1IE5vcnRoIENyZWVrIFBhcmt3YXkKKwkJCQlTdWl0ZSAxMjAKKwkJCQlCb3RoZWxsIFdBIDk4MDExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1FQiAgIChoZXgpCQlJbm5vdmF0aXZlIEludGVncmF0aW9uCiswMDExRUIgICAgIChiYXNlIDE2KQkJSW5ub3ZhdGl2ZSBJbnRlZ3JhdGlvbgorCQkJCTIzOTBBIFdhcmQgQXZlbnVlCisJCQkJU2ltaSBWYWxsZXkgQ0EgOTMwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUVDICAgKGhleCkJCUFWSVggSU5DLgorMDAxMUVDICAgICAoYmFzZSAxNikJCUFWSVggSU5DLgorCQkJCTEtMSwgRnVrdXVyYSwgS2FuYXphd2Eta3UKKwkJCQlZb2tvaGFtYS1zaGkgS2FuYWdhd2EgMjM2LTAwMDQKKwkJCQlKQVBBTgorCiswMC0xMS1FRCAgIChoZXgpCQk4MDIgR2xvYmFsCiswMDExRUQgICAgIChiYXNlIDE2KQkJODAyIEdsb2JhbAorCQkJCVN0dWRpbyAxMSxJbnRlYyAyLFdhZGUgUm9hZAorCQkJCUJhc2luZ3N0b2tlLAorCQkJCUhhbXBzaGlyZSAgUkcyNCBCTkUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS1FRSAgIChoZXgpCQlFc3RhcmksIEluYy4KKzAwMTFFRSAgICAgKGJhc2UgMTYpCQlFc3RhcmksIEluYy4KKwkJCQkxODAwIFBheHRvbiBTdAorCQkJCUhhcnJpc2J1cmcgUEEgMTcxMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUVGICAgKGhleCkJCUNvbml0ZWMgRGF0ZW5zeXN0ZW1lIEdtYkgKKzAwMTFFRiAgICAgKGJhc2UgMTYpCQlDb25pdGVjIERhdGVuc3lzdGVtZSBHbWJICisJCQkJRGllc2Vsc3RyLiAxMWMKKwkJCQlEaWVidXJnIEhlc3NlbiA2NDgwNworCQkJCUdFUk1BTlkKKworMDAtMTEtRjAgICAoaGV4KQkJV2lkZWZ1bCBMaW1pdGVkCiswMDExRjAgICAgIChiYXNlIDE2KQkJV2lkZWZ1bCBMaW1pdGVkCisJCQkJM0IsIFNwZWVkeSBJbmQuIEJsZGcuLCAxMTQgSG93IE1pbmcgU3RyZWV0CisJCQkJS3d1biBUb25nCisJCQkJSG9uZyBLb25nIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xMS1GMSAgIChoZXgpCQlRaW5ldGlRIEx0ZAorMDAxMUYxICAgICAoYmFzZSAxNikJCVFpbmV0aVEgTHRkCisJCQkJUm9vbSBFNjAxCisJCQkJU3QuIEFuZHJldydzIFJvYWQKKwkJCQlNYWx2ZXJuIFdvcmNlc3RlcnNoaXJlIFdSMTQgM1BTCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTEtRjIgICAoaGV4KQkJSW5zdGl0dXRlIG9mIE5ldHdvcmsgVGVjaG5vbG9naWVzCiswMDExRjIgICAgIChiYXNlIDE2KQkJSW5zdGl0dXRlIG9mIE5ldHdvcmsgVGVjaG5vbG9naWVzCisJCQkJMTctdGggTGluZSBWYXNpbGV2c2t5IE9zdHJvdiwgNTQtMQorCQkJCVN0LlBldGVyc2J1cmcgIDE5OTE3OAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xMS1GMyAgIChoZXgpCQlOZW9NZWRpYSBFdXJvcGUgQUcKKzAwMTFGMyAgICAgKGJhc2UgMTYpCQlOZW9NZWRpYSBFdXJvcGUgQUcKKwkJCQlKZW5zLU90dG8tS3JhZy1TdHIuIDExCisJCQkJV3Vyc2VsZW4gTm9yZHJoZWluLVdlc3RmYWxlbiA1MjE0NgorCQkJCUdFUk1BTlkKKworMDAtMTEtRjQgICAoaGV4KQkJd29vcmktbmV0CiswMDExRjQgICAgIChiYXNlIDE2KQkJd29vcmktbmV0CisJCQkJIzUwOCwgSGFua29vayBNb29seXUsIDg1My0xIERvbmdjaHVuLURvbmcKKwkJCQlZb25naW4tU2kgS3l1bmdraS1EbyA0NDktODQzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLUY1ICAgKGhleCkJCUFTS0VZIENPTVBVVEVSIENPUlAuCiswMDExRjUgICAgIChiYXNlIDE2KQkJQVNLRVkgQ09NUFVURVIgQ09SUC4KKwkJCQkxMEYsIE5PLjExOSwgQ0hJRU5LQU5HICBSRC4sCisJCQkJQ0hVTkctSE8sIFRBSVBFSSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1GNiAgIChoZXgpCQlBc2lhIFBhY2lmaWMgTWljcm9zeXN0ZW1zICwgSW5jLgorMDAxMUY2ICAgICAoYmFzZSAxNikJCUFzaWEgUGFjaWZpYyBNaWNyb3N5c3RlbXMgLCBJbmMuCisJCQkJTm8uMixSJkQgUm9hZCA2ICxTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUY3ICAgKGhleCkJCVNoZW56aGVuIEZvcndhcmQgSW5kdXN0cnkgQ28uLCBMdGQKKzAwMTFGNyAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBGb3J3YXJkIEluZHVzdHJ5IENvLiwgTHRkCisJCQkJNGIxIEY1LjgsIFRpYW4gQW4gQ3liZXIgUGFyaywgQ2hlbmdvbmdtaWFvLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0xMS1GOCAgIChoZXgpCQlBSVJBWUEgQ29ycAorMDAxMUY4ICAgICAoYmFzZSAxNikJCUFJUkFZQSBDb3JwCisJCQkJNjM3IEFkYWlyIENvdXJ0CisJCQkJTW9yZ2FuIEhpbGwgQ0EgOTUwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUY5ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAxMUY5ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTExLUZBICAgKGhleCkJCVJhbmUgQ29ycG9yYXRpb24KKzAwMTFGQSAgICAgKGJhc2UgMTYpCQlSYW5lIENvcnBvcmF0aW9uCisJCQkJMTA4MDIgNDd0aCBBdmVudWUgV2VzdAorCQkJCU11a2lsdGVvIFdBIDk4Mjc1LTUwOTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUZCICAgKGhleCkJCUhlaWRlbGJlcmcgRW5naW5lZXJpbmcgR21iSAorMDAxMUZCICAgICAoYmFzZSAxNikJCUhlaWRlbGJlcmcgRW5naW5lZXJpbmcgR21iSAorCQkJCVRpZXJnYXJ0ZW5zdHIuIDE1CisJCQkJSGVpZGVsYmVyZyBCYWRlbi1XdWVydHRlbWJlcmcgNjkxMjEKKwkJCQlHRVJNQU5ZCisKKzAwLTExLUZDICAgKGhleCkJCUhBUlRJTkcgRWxlY3RyaWMgR21iaCAmIENvLktHCiswMDExRkMgICAgIChiYXNlIDE2KQkJSEFSVElORyBFbGVjdHJpYyBHbWJoICYgQ28uS0cKKwkJCQlXaWxoZWxtIEhhcnRpbmcgU3RyLiAxCisJCQkJRXNwZWxrYW1wIE5vcmRyaGVpbiBXZXN0ZmFsZW4gRC0zMjMzOQorCQkJCUdFUk1BTlkKKworMDAtMTEtRkQgICAoaGV4KQkJS09SRyBJTkMuCiswMDExRkQgICAgIChiYXNlIDE2KQkJS09SRyBJTkMuCisJCQkJNDAxNS0yLCBZYW5va3VjaGkKKwkJCQlJbmFnaS1DaXR5IFRPS1lPIDIwNi0wODEyCisJCQkJSkFQQU4KKworMDAtMTEtRkUgICAoaGV4KQkJS2VpeW8gU3lzdGVtIFJlc2VhcmNoLCBJbmMuCiswMDExRkUgICAgIChiYXNlIDE2KQkJS2VpeW8gU3lzdGVtIFJlc2VhcmNoLCBJbmMuCisJCQkJSGFtYWRhIHBhcmsgQmxkZy4gNkYKKwkJCQkxNy0zIFNoaW5tYWNoaSBDaHVvdS1rdQorCQkJCUNoaWJhLWNpdHkgQ2hpYmEtcHJlZiAyNjAtMDAyOAorCQkJCUpBUEFOCisKKzAwLTExLUZGICAgKGhleCkJCURpZ2l0cm8gVGVjbm9sb2dpYSBMdGRhCiswMDExRkYgICAgIChiYXNlIDE2KQkJRGlnaXRybyBUZWNub2xvZ2lhIEx0ZGEKKwkJCQlSdWE6IFByb2Zlc3NvcmEgU29maWEgUXVpbnQgZGUgU291emEsIDE2NworCQkJCUJhaXJybzogQ2Fwb2VpcmFzCisJCQkJRmxvcmlhbm9wb2xpcyBTYW50YSBDYXRhcmluYSA4ODA4NS0wNDAKKwkJCQlCUkFaSUwKKworMDAtMTItMDAgICAoaGV4KQkJQ2lzY28KKzAwMTIwMCAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0wMSAgIChoZXgpCQlDaXNjbworMDAxMjAxICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTAyICAgKGhleCkJCURlY3JhbmUgQWVyb3NwYWNlIC0gQXVkaW8gSW50ZXJuYXRpb25hbCBJbmMuCiswMDEyMDIgICAgIChiYXNlIDE2KQkJRGVjcmFuZSBBZXJvc3BhY2UgLSBBdWRpbyBJbnRlcm5hdGlvbmFsIEluYy4KKwkJCQk3MzAwIEluZHVzdHJ5IERyaXZlCisJCQkJTm9ydGggTGl0dGxlIFJvY2sgQVIgNzIxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTAzICAgKGhleCkJCUFjdGl2IE5ldHdvcmtzCiswMDEyMDMgICAgIChiYXNlIDE2KQkJQWN0aXYgTmV0d29ya3MKKwkJCQlCQVQgTCAtIDEgcnVlIGRlIFRlcnJlIE5ldXZlCisJCQkJQlAxMjcKKwkJCQlDT1VSVEFCT0VVRiBOL0EgOTE5NDQKKwkJCQlGUkFOQ0UKKworMDAtMTItMDQgICAoaGV4KQkJdTEwIE5ldHdvcmtzLCBJbmMuCiswMDEyMDQgICAgIChiYXNlIDE2KQkJdTEwIE5ldHdvcmtzLCBJbmMuCisJCQkJMi0yLTE0IEtha2lub2tpemFrYQorCQkJCU1lZ3VybyBUb2t5byAxNTItMDAyMgorCQkJCUpBUEFOCisKKzAwLTEyLTA1ICAgKGhleCkJCVRlcnJhc2F0IENvbW11bmljYXRpb25zLCBJbmMuCiswMDEyMDUgICAgIChiYXNlIDE2KQkJVGVycmFzYXQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyMzUgVmluZXlhcmQgQ291cnQsIHN1aXRlIDEwMAorCQkJCU1vcmdhbiBIaWxsIENhbGlmb3JuaWEgOTUwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTA2ICAgKGhleCkJCWlRdWVzdCAoTlopIEx0ZAorMDAxMjA2ICAgICAoYmFzZSAxNikJCWlRdWVzdCAoTlopIEx0ZAorCQkJCVAuTy5Cb3ggMTUxNjkKKwkJCQlEaW5zZGFsZQorCQkJCUhhbWlsdG9uIFdhaWthdG8gMjAzMQorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTEyLTA3ICAgKGhleCkJCUhlYWQgU3Ryb25nIEludGVybmF0aW9uYWwgTGltaXRlZAorMDAxMjA3ICAgICAoYmFzZSAxNikJCUhlYWQgU3Ryb25nIEludGVybmF0aW9uYWwgTGltaXRlZAorCQkJCVVuaXQgOSwgMjAvRiwgTWV0cm9wb2xlIFNxdWFyZSwKKwkJCQkyIE9uIFlpdSBTdHJlZXQsIFNoYXRpbgorCQkJCUd1YW5nZG9uZyAKKwkJCQlIT05HIEtPTkcKKworMDAtMTItMDggICAoaGV4KQkJR2FudG5lciBJbnN0cnVtZW50cyBHbWJICiswMDEyMDggICAgIChiYXNlIDE2KQkJR2FudG5lciBJbnN0cnVtZW50cyBHbWJICisJCQkJTW9udGFmb25lcnN0cmFzc2UgOAorCQkJCVNjaHJ1bnMgVm9yYXJsYmVyZyA2NzgwCisJCQkJQVVTVFJJQQorCiswMC0xMi0wOSAgIChoZXgpCQlGYXN0cmF4IEx0ZAorMDAxMjA5ICAgICAoYmFzZSAxNikJCUZhc3RyYXggTHRkCisJCQkJVmFsaW1vdGllIDcKKwkJCQlWYW50YWEgRkkgMDE1MTAKKwkJCQlGSU5MQU5ECisKKzAwLTEyLTBBICAgKGhleCkJCUVtZXJzb24gRWxlY3RyaWMgR21iSCAmIENvLiBPSEcKKzAwMTIwQSAgICAgKGJhc2UgMTYpCQlFbWVyc29uIEVsZWN0cmljIEdtYkggJiBDby4gT0hHCisJCQkJSGVlcnN0cmFzc2UgMTExCisJCQkJV2FpYmxpbmdlbiBCVyA3MTMzMgorCQkJCUdFUk1BTlkKKworMDAtMTItMEIgICAoaGV4KQkJQ2hpbmFzeXMgVGVjaG5vbG9naWVzIExpbWl0ZWQKKzAwMTIwQiAgICAgKGJhc2UgMTYpCQlDaGluYXN5cyBUZWNobm9sb2dpZXMgTGltaXRlZAorCQkJCTEwL0YsQ0FHVyBCdWlsZGluZyxOby4zMCBIYWlkaWFuIFNvdXRoIFJvYWQKKwkJCQlCZWlqaW5nICAxMDAwODAKKwkJCQlDSElOQQorCiswMC0xMi0wQyAgIChoZXgpCQlDRS1JbmZvc3lzIFB0ZSBMdGQKKzAwMTIwQyAgICAgKGJhc2UgMTYpCQlDRS1JbmZvc3lzIFB0ZSBMdGQKKwkJCQkzOTAgSGF2ZWxvY2sgUm9hZAorCQkJCSMwOC0wMiBLaW5nJ3MgQ2VudHJlCisJCQkJMTY5NjYyCisJCQkJU0lOR0FQT1JFCisKKzAwLTEyLTBEICAgKGhleCkJCUFkdmFuY2VkIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcywgSW5jLgorMDAxMjBEICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEwMzkwIFdpbHNoaXJlIEJvdWxldmFyZAorCQkJCVN1aXRlIDE4MDMKKwkJCQlMb3MgQW5nZWxlcyBDYWxpZm9ybmlhIDkwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0wRSAgIChoZXgpCQlBYm9Db20KKzAwMTIwRSAgICAgKGJhc2UgMTYpCQlBYm9Db20KKwkJCQkxRiAsIE5vLiAyMSwgWWFuZmEgMm5kIFJkLiwgU0JJUAorCQkJCUhzaW5jaHUgQ2l0eSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi0wRiAgIChoZXgpCQlJRUVFIDgwMi4zCiswMDEyMEYgICAgIChiYXNlIDE2KQkJSUVFRSA4MDIuMworCQkJCQorCQkJCTE1NTk5IEhhcnJvdyBMYW5lCisJCQkJUG93YXkgQ0EgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTEwICAgKGhleCkJCVdpZGVSYXkgQ29ycAorMDAxMjEwICAgICAoYmFzZSAxNikJCVdpZGVSYXkgQ29ycAorCQkJCTI1IEtlYXJueSBTdHJlZXQKKwkJCQk2dGggRmxvb3IKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0xMSAgIChoZXgpCQlQcm90ZWNobmEgSGVyYnN0IEdtYkggJiBDby4gS0cKKzAwMTIxMSAgICAgKGJhc2UgMTYpCQlQcm90ZWNobmEgSGVyYnN0IEdtYkggJiBDby4gS0cKKwkJCQlPdHRvIEhhaG4gU3RyLiAyNgorCQkJCU90dG9icnVubiBHZXJtYW55L0JhdmFyaWEgODU1MjEKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLTEyICAgKGhleCkJCVBMVVMgIENvcnBvcmF0aW9uCiswMDEyMTIgICAgIChiYXNlIDE2KQkJUExVUyAgQ29ycG9yYXRpb24KKwkJCQkxMDMzLTEsIE9zaGl0YXRlLCBJbmFnaS1zaGksCisJCQkJVG9reW8gU2FpdGFtYSAyMDYtMDgxMQorCQkJCUpBUEFOCisKKzAwLTEyLTEzICAgKGhleCkJCU1ldHJvaG0gQUcKKzAwMTIxMyAgICAgKGJhc2UgMTYpCQlNZXRyb2htIEFHCisJCQkJT2JlcmRvcmZzdHJhc3NlIDY4CisJCQkJSGVyaXNhdSBBUiA5MTAxCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTItMTQgICAoaGV4KQkJS29lbmlnICYgQmF1ZXIgQUcKKzAwMTIxNCAgICAgKGJhc2UgMTYpCQlLb2VuaWcgJiBCYXVlciBBRworCQkJCUZyaWVkcmljaC1Lb2VuaWctU3RyLiA0CisJCQkJV3VlcnpidXJnIEJhdmFyaWEgOTcwODAKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLTE1ICAgKGhleCkJCWlTdG9yIE5ldHdvcmtzLCBJbmMuCiswMDEyMTUgICAgIChiYXNlIDE2KQkJaVN0b3IgTmV0d29ya3MsIEluYy4KKwkJCQk3NTg1IElydmluZSBDZW50ZXIgRHJpdmUKKwkJCQlTdWl0ZSAyNTAKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTE2ICAgKGhleCkJCUlDUCBJbnRlcm5ldCBDb21tdW5pY2F0aW9uIFBheW1lbnQgQUcKKzAwMTIxNiAgICAgKGJhc2UgMTYpCQlJQ1AgSW50ZXJuZXQgQ29tbXVuaWNhdGlvbiBQYXltZW50IEFHCisJCQkJV2lsaGVsbS1TdGVpbi1XZWcgMjQKKwkJCQlIYW1idXJnICBELTIyMzM5CisJCQkJR0VSTUFOWQorCiswMC0xMi0xNyAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzAwMTIxNyAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyLgorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMTggICAoaGV4KQkJQVJVWkUgQ29ycG9yYXRpb24KKzAwMTIxOCAgICAgKGJhc2UgMTYpCQlBUlVaRSBDb3Jwb3JhdGlvbgorCQkJCUFyaWFrZSBGcm9udGllciBCdWlsZGluZyBBCisJCQkJMy0xLTI1IEFyaWFrZQorCQkJCUtvaHRvaC1rdSBUb2t5byAxMzUtMDA2MworCQkJCUpBUEFOCisKKzAwLTEyLTE5ICAgKGhleCkJCUFoZWFkIENvbW11bmljYXRpb24gU3lzdGVtcyBJbmMKKzAwMTIxOSAgICAgKGJhc2UgMTYpCQlBaGVhZCBDb21tdW5pY2F0aW9uIFN5c3RlbXMgSW5jCisJCQkJMTk5IFBhcmsgUm9hZCBFeHQKKwkJCQlQTyBCb3ggOTI5CisJCQkJTWlkZGxlYnVyeSBDVCAwNjc2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMUEgICAoaGV4KQkJVGVjaG5vIFNvZnQgU3lzdGVtbmljcyBJbmMuCiswMDEyMUEgICAgIChiYXNlIDE2KQkJVGVjaG5vIFNvZnQgU3lzdGVtbmljcyBJbmMuCisJCQkJMi01LTE3LCBFYmlzdS1uaXNoaSwgTmFuaXdhLWt1LAorCQkJCU9zYWthICA1NTYtMDAwMworCQkJCUpBUEFOCisKKzAwLTEyLTFCICAgKGhleCkJCVNvdW5kIERldmljZXMsIExMQworMDAxMjFCICAgICAoYmFzZSAxNikJCVNvdW5kIERldmljZXMsIExMQworCQkJCTMwMCBXZW5nZWwgRHJpdmUKKwkJCQlSZWVkc2J1cmcgV0kgNTM5NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTFDICAgKGhleCkJCVBBUlJPVCBTLkEuCiswMDEyMUMgICAgIChiYXNlIDE2KQkJUEFSUk9UIFMuQS4KKwkJCQkxNzQsIHF1YWkgZGUgSmVtbWFwZXMKKwkJCQlQQVJJUyAgNzUwMTAKKwkJCQlGUkFOQ0UKKworMDAtMTItMUQgICAoaGV4KQkJTmV0ZmFicmljIENvcnBvcmF0aW9uCiswMDEyMUQgICAgIChiYXNlIDE2KQkJTmV0ZmFicmljIENvcnBvcmF0aW9uCisJCQkJNjcgRmVkZXJhbCBSb2FkCisJCQkJU3VpdGUgMzAwCisJCQkJQnJvb2tmaWVsZCBDVCAwNjgwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMUUgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcywgSW5jLgorMDAxMjFFICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MsIEluYy4KKwkJCQkxMTk0IE4uIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMUYgICAoaGV4KQkJSGFyZGluZyBJbnRydW1lbnRzCiswMDEyMUYgICAgIChiYXNlIDE2KQkJSGFyZGluZyBJbnRydW1lbnRzCisJCQkJOTQzMS00MUF2ZQorCQkJCUVkbW9udG9uIEFCIFQ2RSA1WDcKKwkJCQlDQU5BREEKKworMDAtMTItMjAgICAoaGV4KQkJQ2FkY28gU3lzdGVtcworMDAxMjIwICAgICAoYmFzZSAxNikJCUNhZGNvIFN5c3RlbXMKKwkJCQkyMzYzIE1lcnJpdHQgRHIKKwkJCQlHYXJsYW5kIFRleGFzIDc1MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0yMSAgIChoZXgpCQlCLkJyYXVuIE1lbHN1bmdlbiBBRworMDAxMjIxICAgICAoYmFzZSAxNikJCUIuQnJhdW4gTWVsc3VuZ2VuIEFHCisJCQkJU2Nod2FyemVuYmVyZ2VyIFdlZyA3My03OQorCQkJCU1lbHN1bmdlbiBIZXNzZW4gMzQyMTIKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLTIyICAgKGhleCkJCVNrYXJkaW4gKFVLKSBMdGQKKzAwMTIyMiAgICAgKGJhc2UgMTYpCQlTa2FyZGluIChVSykgTHRkCisJCQkJTm8uIDUgR3JlZW53YXkgKFJPMjQpCisJCQkJSGFybG93IEJ1c2luZXNzIFBhcmsKKwkJCQlIYXJsb3cgRXNzZXggQ00xOSA1UUIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMi0yMyAgIChoZXgpCQlQaXhpbQorMDAxMjIzICAgICAoYmFzZSAxNikJCVBpeGltCisJCQkJOTE1IExpbmRhIFZpc3RhIEF2ZS4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0yNCAgIChoZXgpCQlOZXhRTCBDb3Jwb3JhdGlvbgorMDAxMjI0ICAgICAoYmFzZSAxNikJCU5leFFMIENvcnBvcmF0aW9uCisJCQkJMTIyNTAgSW53b29kIFJvYWQgIzYKKwkJCQlEYWxsYXMgVFggNzUyNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTI1ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxMjI1ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTI2ICAgKGhleCkJCUphcGFuIERpcmV4IENvcnBvcmF0aW9uCiswMDEyMjYgICAgIChiYXNlIDE2KQkJSmFwYW4gRGlyZXggQ29ycG9yYXRpb24KKwkJCQlLeW9jZXJhIEhhcmFqdWt1IEJsZGcuCisJCQkJNi0yNy04LCBKaW5ndW1hZQorCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUwLTAwMDEKKwkJCQlKQVBBTgorCiswMC0xMi0yNyAgIChoZXgpCQlGcmFua2xpbiBFbGVjdHJpYyBDby4sIEluYy4KKzAwMTIyNyAgICAgKGJhc2UgMTYpCQlGcmFua2xpbiBFbGVjdHJpYyBDby4sIEluYy4KKwkJCQk0MDAgRS4gU3ByaW5nIFN0cmVldAorCQkJCUJsdWZmdG9uIEluZGlhbmEgNDY3MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTI4ICAgKGhleCkJCURhdGEgTHRkLgorMDAxMjI4ICAgICAoYmFzZSAxNikJCURhdGEgTHRkLgorCQkJCUouIEhhZ2FydSA5CisJCQkJUC5PLiBCb3ggNworCQkJCUJyYXRpc2xhdmEgIDgzMCAwNQorCQkJCVNMT1ZBS0lBCisKKzAwLTEyLTI5ICAgKGhleCkJCUJyb2FkRWFzeSBUZWNobm9sb2dpZXMgQ28uLEx0ZAorMDAxMjI5ICAgICAoYmFzZSAxNikJCUJyb2FkRWFzeSBUZWNobm9sb2dpZXMgQ28uLEx0ZAorCQkJCTI0dGggRmxvb3IsVG93ZXIgQSxKaW5TaGFuIE1hbnNpb24sCisJCQkJTk8uOCBTaGFuWGkgUm9hZCxOYW5qaW5nLFAuUi5DLgorCQkJCU5hbmppbmcgSmlhbmdzdSAyMTAwMDkKKwkJCQlDSElOQQorCiswMC0xMi0yQSAgIChoZXgpCQlWVGVjaCBUZWxlY29tbXVuaWNhdGlvbnMgTHRkLgorMDAxMjJBICAgICAoYmFzZSAxNikJCVZUZWNoIFRlbGVjb21tdW5pY2F0aW9ucyBMdGQuCisJCQkJMjMvRiwgVGFpIFBpbmcgSW5kdXN0cmlhbCBDZW50cmUsIEJsb2NrIDEKKwkJCQk1NyBUaW5nIEtvayBSb2FkLCBUYWkgUG8KKwkJCQlIT05HIEtPTkcKKworMDAtMTItMkIgICAoaGV4KQkJVmlyYmlhZ2UgUHR5IEx0ZAorMDAxMjJCICAgICAoYmFzZSAxNikJCVZpcmJpYWdlIFB0eSBMdGQKKwkJCQlMZXZlbCA0CisJCQkJOCBNYXJrZXQgU3RyZWV0CisJCQkJTWVsYm91cm5lIFZpY3RvcmlhIDMwMDAKKwkJCQlBVVNUUkFMSUEKKworMDAtMTItMkMgICAoaGV4KQkJU29lbmVuIENvbnRyb2xzIE4uVi4KKzAwMTIyQyAgICAgKGJhc2UgMTYpCQlTb2VuZW4gQ29udHJvbHMgTi5WLgorCQkJCVdpam5lZGFsZXN0cmFhdCAxOTAKKwkJCQlSb2VzZWxhcmUgVy1WTCA4ODAwCisJCQkJQkVMR0lVTQorCiswMC0xMi0yRCAgIChoZXgpCQlTaU5ldHQgQ29ycG9yYXRpb24KKzAwMTIyRCAgICAgKGJhc2UgMTYpCQlTaU5ldHQgQ29ycG9yYXRpb24KKwkJCQk2NDAgVy4gQ2FsaWZvcm5pYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTJFICAgKGhleCkJCVNpZ25hbCBUZWNobm9sb2d5IC0gQUlTRAorMDAxMjJFICAgICAoYmFzZSAxNikJCVNpZ25hbCBUZWNobm9sb2d5IC0gQUlTRAorCQkJCTE4MjAgUHJlc3RvbiBQYXJrIEJsdmQuCisJCQkJU3VpdGUgMjgwMAorCQkJCVBsYW5vIFRYIDc1MDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0yRiAgIChoZXgpCQlTYW5laSBFbGVjdHJpYyBJbmMuCiswMDEyMkYgICAgIChiYXNlIDE2KQkJU2FuZWkgRWxlY3RyaWMgSW5jLgorCQkJCTVGIFRhaXNvdS1Ja2VidWt1cm8gQmxkZy4KKwkJCQkyLTYxLTEgSWtlYnVrdXJvCisJCQkJVG9zaGltYS1rdSBUb2t5byAxNzEtMDAxNAorCQkJCUpBUEFOCisKKzAwLTEyLTMwICAgKGhleCkJCVBpY2FzbyBJbmZvY29tbXVuaWNhdGlvbiBDTy4sIExURC4KKzAwMTIzMCAgICAgKGJhc2UgMTYpCQlQaWNhc28gSW5mb2NvbW11bmljYXRpb24gQ08uLCBMVEQuCisJCQkJM0YsIFN1bnRlY2hjaXR5LCBTYW5nZGFld29uIDEtZG9uZywKKwkJCQk1MTMtMTUsIEp1bmd3b24tZ3UKKwkJCQlTdW5nbmFtLWNpdHkgS3l1bmdnaS1kbyA0NjItNzI1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTMxICAgKGhleCkJCU1vdGlvbiBDb250cm9sIFN5c3RlbXMsIEluYy4KKzAwMTIzMSAgICAgKGJhc2UgMTYpCQlNb3Rpb24gQ29udHJvbCBTeXN0ZW1zLCBJbmMuCisJCQkJUE8gQm94IDExNQorCQkJCTY3MDEgVmlzY29lIFJvYWQKKwkJCQlOZXcgUml2ZXIgVkEgMjQxMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTMyICAgKGhleCkJCUxlV2l6IENvbW11bmljYXRpb25zIEluYy4KKzAwMTIzMiAgICAgKGJhc2UgMTYpCQlMZVdpeiBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJMTM3NiBOLiA0dGggU3QuICMzMDAKKwkJCQlTYW4gSm9zZSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMzMgICAoaGV4KQkJSlJDIFRPS0tJIENvLixMdGQuCiswMDEyMzMgICAgIChiYXNlIDE2KQkJSlJDIFRPS0tJIENvLixMdGQuCisJCQkJMy0yLTEgU2hpbnlvc2hpZGFoaWdhc2hpIEtvaG9rdS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyMy04NTcyCisJCQkJSkFQQU4KKworMDAtMTItMzQgICAoaGV4KQkJQ2FtaWxsZSBCYXVlcgorMDAxMjM0ICAgICAoYmFzZSAxNikJCUNhbWlsbGUgQmF1ZXIKKwkJCQlBYXJnYXVlcnN0ci4gNworCQkJCVdvaGxlbiBBRyA1NjEwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTItMzUgICAoaGV4KQkJQW5kcmV3IENvcnBvcmF0aW9uCiswMDEyMzUgICAgIChiYXNlIDE2KQkJQW5kcmV3IENvcnBvcmF0aW9uCisJCQkJMjYwMSBUZWxlY29tIFBrd3kKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0zNiAgIChoZXgpCQlDb25TZW50cnkgTmV0d29ya3MKKzAwMTIzNiAgICAgKGJhc2UgMTYpCQlDb25TZW50cnkgTmV0d29ya3MKKwkJCQkxNjkwIE1jQ2FuZGxlc3MgRHIKKwkJCQlNaWxpcGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTM3ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDEyMzcgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsCisJCQkJTVMgODcyMworCQkJCURhbGxhcyBUZXhhcyA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMzggICAoaGV4KQkJU2V0YUJveCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxMjM4ICAgICAoYmFzZSAxNikJCVNldGFCb3ggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk5Ri0xLCBOby4gMjkzLTMsIFNlYzIsIEZ1LUhzaW5nIFMuIFJkLgorCQkJCVRhaXBlaSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi0zOSAgIChoZXgpCQlTIE5ldCBTeXN0ZW1zIEluYy4KKzAwMTIzOSAgICAgKGJhc2UgMTYpCQlTIE5ldCBTeXN0ZW1zIEluYy4KKwkJCQkxMEYgU3VuZ3dvbiBCbGRnLiBTYW1zdW5nLWRvbmcKKwkJCQlHYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS0wOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTItM0EgICAoaGV4KQkJUG9zeXN0ZWNoIEluYy4sIENvLgorMDAxMjNBICAgICAoYmFzZSAxNikJCVBvc3lzdGVjaCBJbmMuLCBDby4KKwkJCQlSb29tIDQwNywgRGFlcnl1bmcgVGVjaG5vIFRvd24gNiwKKwkJCQk0OTMtNiwgR2FzYW4tRG9uZywgR2V1bWNoZW9uLUd1LAorCQkJCVNlb3VsICAxNTMtNzcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTNCICAgKGhleCkJCUtlUm8gU3lzdGVtcyBBcFMKKzAwMTIzQiAgICAgKGJhc2UgMTYpCQlLZVJvIFN5c3RlbXMgQXBTCisJCQkJQWxsaWtldmVqIDMKKwkJCQlIP3JzaG9sbSAgMjk3MAorCQkJCURFTk1BUksKKworMDAtMTItM0MgICAoaGV4KQkJU2Vjb25kIFJ1bGUgTExDCiswMDEyM0MgICAgIChiYXNlIDE2KQkJU2Vjb25kIFJ1bGUgTExDCisJCQkJNDExOSBXYWxudXQgU3RyZWV0CisJCQkJU3VpdGUgMjAwCisJCQkJUGhpbGFkZWxwaGlhIFBBIDE5MTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0zRCAgIChoZXgpCQlHRVMKKzAwMTIzRCAgICAgKGJhc2UgMTYpCQlHRVMKKwkJCQlSb29tIDU0MDMsIERvbmdTZW91bCBDb2xsZWdlLCA0MjMsIEJva2plb25nLURvbmcsIFN1amVvbmctR3UsIFNlb25nbmFtLVNpLCBHeWVvbmdnaS1EbywKKwkJCQlHeWVvbmdnaS1EbyBTZW9uZ25hbS1TaSA0NjEtNzE0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTNFICAgKGhleCkJCUVSVU5FIHRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDEyM0UgICAgIChiYXNlIDE2KQkJRVJVTkUgdGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gNDI5LCBDaGluLVNhbiAybmQgc3RyZWV0LAorCQkJCVlhbmctTWVpCisJCQkJVGFvIFl1YW4gIDMyNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItM0YgICAoaGV4KQkJRGVsbCBJbmMKKzAwMTIzRiAgICAgKGJhc2UgMTYpCQlEZWxsIEluYworCQkJCU9uZSBEZWxsIFdheQorCQkJCVJvdW5kIFJvY2sgIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi00MCAgIChoZXgpCQlBTU9JIEVMRUNUUk9OSUNTIENPLixMVEQKKzAwMTI0MCAgICAgKGJhc2UgMTYpCQlBTU9JIEVMRUNUUk9OSUNTIENPLixMVEQKKwkJCQkyOTUgTGFuZSxadWNob25nemhpIFJvYWQsWmhhbmcgamlhbmcsCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzAwLTEyLTQxICAgKGhleCkJCWEyaSBtYXJrZXRpbmcgY2VudGVyCiswMDEyNDEgICAgIChiYXNlIDE2KQkJYTJpIG1hcmtldGluZyBjZW50ZXIKKwkJCQkxMDI0LTQgIER1a3NhbiBCbGRnIEJhbmdiYWVkb25nIFNlb2Nob2d1IFNlb3VsIEtvcmVhCisJCQkJU0VPVUwgIDEzNy0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTItNDIgICAoaGV4KQkJTWlsbGVubmlhbCBOZXQKKzAwMTI0MiAgICAgKGJhc2UgMTYpCQlNaWxsZW5uaWFsIE5ldAorCQkJCSAyODUgQmlsbGVyaWNhIFJvYWQKKwkJCQlDaGVsbXNmb3JkIE1BIDAxODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi00MyAgIChoZXgpCQlDaXNjbworMDAxMjQzICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTQ0ICAgKGhleCkJCUNpc2NvCiswMDEyNDQgICAgIChiYXNlIDE2KQkJQ2lzY28KKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNDUgICAoaGV4KQkJWmVsbHdlZ2VyIEFuYWx5dGljcywgSW5jLgorMDAxMjQ1ICAgICAoYmFzZSAxNikJCVplbGx3ZWdlciBBbmFseXRpY3MsIEluYy4KKwkJCQk0MDUgQmFyY2xheSBCbHZkLgorCQkJCUxpbmNvbG5zaGlyZSBJbGxpbm9pcyA2MDA2OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNDYgICAoaGV4KQkJVC5PLk0gVEVDSE5PTE9HWSBJTkMuLgorMDAxMjQ2ICAgICAoYmFzZSAxNikJCVQuTy5NIFRFQ0hOT0xPR1kgSU5DLi4KKwkJCQk5MDYgV29vbGltIEUtYml6IENlbnRlciAyLAorCQkJCUd1cm8tM0RvbmcKKwkJCQlTZW91bCBHdXJvLUd1IDE4NC0xCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTQ3ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDEyNDcgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWktQ2l0eSBHeWVvbmctQnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTItNDggICAoaGV4KQkJRU1DIENvcnBvcmF0aW9uIChLYXNoeWEpCiswMDEyNDggICAgIChiYXNlIDE2KQkJRU1DIENvcnBvcmF0aW9uIChLYXNoeWEpCisJCQkJMTc2IFNvdXRoIFN0cmVldAorCQkJCUhvcGtpbnRvbiBNQSAwMTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNDkgICAoaGV4KQkJRGVsdGEgRWxldHRyb25pY2EgUy5wLkEuCiswMDEyNDkgICAgIChiYXNlIDE2KQkJRGVsdGEgRWxldHRyb25pY2EgUy5wLkEuCisJCQkJVmlhIEFzdGljbyA0MQorCQkJCVZhcmVzZSAgMjExMDAKKwkJCQlJVEFMWQorCiswMC0xMi00QSAgIChoZXgpCQlEZWRpY2F0ZWQgRGV2aWNlcywgSW5jLgorMDAxMjRBICAgICAoYmFzZSAxNikJCURlZGljYXRlZCBEZXZpY2VzLCBJbmMuCisJCQkJNTY4MCBFLiBGcmFua2xpbgorCQkJCVN1aXRlIDI1MAorCQkJCU5hbXBhIElkYWhvIDgzNjg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi00QiAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxMjRCICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJR2F1c3RhZGFsbGVlbiAyMQorCQkJCVRleGFzIEluc3RydW1lbnRzIE5vcndheSBBUworCQkJCU9zbG8gIE4tMDM0OQorCQkJCU5PUldBWQorCiswMC0xMi00QyAgIChoZXgpCQlCQldNIENvcnBvcmF0aW9uCiswMDEyNEMgICAgIChiYXNlIDE2KQkJQkJXTSBDb3Jwb3JhdGlvbgorCQkJCTZGLCBOby4gNTc4LCBSdWkgR3VhbmcgUm9hZCwgTmVpIEh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLTREICAgKGhleCkJCUluZHVjb24gQlYKKzAwMTI0RCAgICAgKGJhc2UgMTYpCQlJbmR1Y29uIEJWCisJCQkJS2Vya2xhYW4gMjYKKwkJCQlMZWltdWlkZW4gWkggMjU0MSBDRworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTEyLTRFICAgKGhleCkJCVhBQyBBVVRPTUFUSU9OIENPUlAuCiswMDEyNEUgICAgIChiYXNlIDE2KQkJWEFDIEFVVE9NQVRJT04gQ09SUC4KKwkJCQk0RiwgMzAgSW5kdXN0cnkgRS4gUm9hZCBJWAorCQkJCVNjaWVuY2UgUGFyaworCQkJCUhzaW4tQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLTRGICAgKGhleCkJCVR5Y28gVGhlcm1hbCBDb250cm9scyBMTEMuCiswMDEyNEYgICAgIChiYXNlIDE2KQkJVHljbyBUaGVybWFsIENvbnRyb2xzIExMQy4KKwkJCQkxMTAwNCAtIDE3NCBTdC4KKwkJCQlFZG1vbnRvbiBBbGJlcnRhIFQ1UyAyUDMKKwkJCQlDQU5BREEKKworMDAtMTItNTAgICAoaGV4KQkJVG9reW8gQWlyY2FmdCBJbnN0cnVtZW50IENvLiwgTHRkLgorMDAxMjUwICAgICAoYmFzZSAxNikJCVRva3lvIEFpcmNhZnQgSW5zdHJ1bWVudCBDby4sIEx0ZC4KKwkJCQkxLTM1LTEsIEl6dW1pLUhvbmNobworCQkJCUtvbWFlLVNoaSBUb2t5byAyMDEtODU1NQorCQkJCUpBUEFOCisKKzAwLTEyLTUxICAgKGhleCkJCVNJTElOSworMDAxMjUxICAgICAoYmFzZSAxNikJCVNJTElOSworCQkJCTEzIFJVRSBQT01FWVMKKwkJCQlMRSBUQUlMTEFOICAzMzMyMAorCQkJCUZSQU5DRQorCiswMC0xMi01MiAgIChoZXgpCQlDaXRyb25peCwgTExDCiswMDEyNTIgICAgIChiYXNlIDE2KQkJQ2l0cm9uaXgsIExMQworCQkJCTMwMzAgU0UgTG9vcCA4MjAKKwkJCQlGb3J0IFdvcnRoIFRleGFzIDc2MTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi01MyAgIChoZXgpCQlBdWRpb0RldiBBQgorMDAxMjUzICAgICAoYmFzZSAxNikJCUF1ZGlvRGV2IEFCCisJCQkJS2FiaW5nYXRhbiA5CisJCQkJTWFsbW8gIFNFLTIxMiAzOQorCQkJCVNXRURFTgorCiswMC0xMi01NCAgIChoZXgpCQlTcGVjdHJhIFRlY2hub2xvZ2llcyBIb2xkaW5ncyBDb21wYW55IEx0ZAorMDAxMjU0ICAgICAoYmFzZSAxNikJCVNwZWN0cmEgVGVjaG5vbG9naWVzIEhvbGRpbmdzIENvbXBhbnkgTHRkCisJCQkJVW5pdCAxMzAxLTA5LCBUb3dlciBJSQorCQkJCVBhY2lmaWMgQ2VudHVyeSBQbGFjZSwgTW9uZ2tvaworCQkJCTg1MgorCQkJCUhPTkcgS09ORworCiswMC0xMi01NSAgIChoZXgpCQlOZXRFZmZlY3QgSW5jb3Jwb3JhdGVkCiswMDEyNTUgICAgIChiYXNlIDE2KQkJTmV0RWZmZWN0IEluY29ycG9yYXRlZAorCQkJCTkyMTEgV2F0ZXJmb3JkIENlbnRyZSBCbHZkCisJCQkJU3VpdGUgMTAwCisJCQkJQXVzdGluIFRleGFzIDc4NzU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi01NiAgIChoZXgpCQlMRyBJTkZPUk1BVElPTiAmIENPTU0uCiswMDEyNTYgICAgIChiYXNlIDE2KQkJTEcgSU5GT1JNQVRJT04gJiBDT01NLgorCQkJCTQ1OS05LEtBU0FOLURPTkcsS1VNQ0hPTi1HVSwKKwkJCQlTRU9VTCAgMTUzLTAyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMi01NyAgIChoZXgpCQlMZWFwQ29tbSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBJbmMuCiswMDEyNTcgICAgIChiYXNlIDE2KQkJTGVhcENvbW0gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgSW5jLgorCQkJCVJNMTgwNC0wNSBTb3V0aCBUb3dlciBIb25nIEtvbmcgUGxhemEsIE5vLjI4MyBIdWFpaGFpIFpob25nIFJvYWQKKwkJCQlTaGFuZ2hhaSAgMjAwMDIxCisJCQkJQ0hJTkEKKworMDAtMTItNTggICAoaGV4KQkJQWN0aXZpcyBQb2xza2EKKzAwMTI1OCAgICAgKGJhc2UgMTYpCQlBY3RpdmlzIFBvbHNrYQorCQkJCVN3aWVyemF3c2thIDUKKwkJCQlQb3puYW4gV2llbGtvcG9sc2thIDYwLTMyMQorCQkJCVBPTEFORAorCiswMC0xMi01OSAgIChoZXgpCQlUSEVSTU8gRUxFQ1RST04gS0FSTFNSVUhFCiswMDEyNTkgICAgIChiYXNlIDE2KQkJVEhFUk1PIEVMRUNUUk9OIEtBUkxTUlVIRQorCQkJCURJRVNFTFNUUkFTU0UgNAorCQkJCUtBUkxTUlVIRSBCQURFTiBXVVJURU1CRVJHIDc2MjI3CisJCQkJR0VSTUFOWQorCiswMC0xMi01QSAgIChoZXgpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKzAwMTI1QSAgICAgKGJhc2UgMTYpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKwkJCQlPbmUgTWljcm9zb2Z0IFdheQorCQkJCVJlZG1vbmQgV2FzaGluZ3RvbiA5ODA1Mi02Mzk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi01QiAgIChoZXgpCQlLQUlNRUkgRUxFQ1RST05JCiswMDEyNUIgICAgIChiYXNlIDE2KQkJS0FJTUVJIEVMRUNUUk9OSQorCQkJCTE0LTNGLCBOTy44MSxTRUMuIDEsSFNJTi1UQUktV1UgUk9BRCxIU0lDSElILAorCQkJCVRBSVBFSSBIU0lFTiBIU0lDSElIIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItNUMgICAoaGV4KQkJR3JlZW4gSGlsbHMgU29mdHdhcmUsIEluYy4KKzAwMTI1QyAgICAgKGJhc2UgMTYpCQlHcmVlbiBIaWxscyBTb2Z0d2FyZSwgSW5jLgorCQkJCTMwIFdlc3QgU29sYSBTdHJlZXQKKwkJCQlTYW50YSBCYXJiYXJhIENBIDkzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi01RCAgIChoZXgpCQlDeWJlck5ldCBJbmMuCiswMDEyNUQgICAgIChiYXNlIDE2KQkJQ3liZXJOZXQgSW5jLgorCQkJCSMyMDUsIExvdHRlIFN1bnRlY2ggQ2l0eSwgNTEzLTE1CisJCQkJU2FuZ2RhZXdvbi1kb25nLCBDaHVuZ3dvbi1ndQorCQkJCVN1bmduYW0gS3l1bmdnaSA0NjItODA2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTVFICAgKGhleCkJCUNBRU4KKzAwMTI1RSAgICAgKGJhc2UgMTYpCQlDQUVOCisJCQkJdmlhIFZldHJhaWEsIDExCisJCQkJVmlhcmVnZ2lvIExVQ0NBIDU1MDQ5CisJCQkJSVRBTFkKKworMDAtMTItNUYgICAoaGV4KQkJQVdJTkQgSW5jLgorMDAxMjVGICAgICAoYmFzZSAxNikJCUFXSU5EIEluYy4KKwkJCQkxN0YuLCBOby4gODg2LTUsIEp1bmdqZW5nIFJkCisJCQkJSnVuZ2hlIENpdHkKKwkJCQlUYWlwZWkgQ291bnR5ICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLTYwICAgKGhleCkJCVN0YW50b24gTWFnbmV0aWNzLGluYy4KKzAwMTI2MCAgICAgKGJhc2UgMTYpCQlTdGFudG9uIE1hZ25ldGljcyxpbmMuCisJCQkJMzAwMCBTVyA0Mm5kIFN0cmVldAorCQkJCUhvbGx5d29vZCBGTCAzMzMxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNjEgICAoaGV4KQkJQWRhcHRpeCwgSW5jCiswMDEyNjEgICAgIChiYXNlIDE2KQkJQWRhcHRpeCwgSW5jCisJCQkJMTQwNyAxMTZ0aCBBdmUuIE5FCisJCQkJU3VpdGUgRTIxMAorCQkJCUJlbGxldnVlIFdBIDk4MDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi02MiAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxMjYyICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xMi02MyAgIChoZXgpCQlEYXRhIFZvaWNlIFRlY2hub2xvZ2llcyBHbWJICiswMDEyNjMgICAgIChiYXNlIDE2KQkJRGF0YSBWb2ljZSBUZWNobm9sb2dpZXMgR21iSAorCQkJCVN0b2NraG9sbWVyIEFsbGVlIDMyYgorCQkJCURvcnRtdW5kIE5SVyBELTQ0MjY5CisJCQkJR0VSTUFOWQorCiswMC0xMi02NCAgIChoZXgpCQlkYXVtIGVsZWN0cm9uaWMgZ21iaAorMDAxMjY0ICAgICAoYmFzZSAxNikJCWRhdW0gZWxlY3Ryb25pYyBnbWJoCisJCQkJZmx1Z3BsYXR6c3RyLiAxMDAKKwkJCQlGdWVydGggQmF2YXJpYSA5MDc2OAorCQkJCUdFUk1BTlkKKworMDAtMTItNjUgICAoaGV4KQkJRW5lcmR5bmUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDEyNjUgICAgIChiYXNlIDE2KQkJRW5lcmR5bmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTkzNSBDb3JkZWxsIENvdXJ0CisJCQkJRWwgQ2Fqb24gQ0EgOTIwMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTY2ICAgKGhleCkJCVN3aXNzY29tIEhvc3BpdGFsaXR5IFNlcnZpY2VzIFNBCiswMDEyNjYgICAgIChiYXNlIDE2KQkJU3dpc3Njb20gSG9zcGl0YWxpdHkgU2VydmljZXMgU0EKKwkJCQlDaGVtaW4gZGUgbCdFdGFuZyA2NQorCQkJCTEyMTEgR2VuZXZhIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTEyLTY3ICAgKGhleCkJCU1hdHN1c2hpdGEgRWxlY3Ryb25pYyBDb21wb25lbnRzIENvLiwgTHRkLgorMDAxMjY3ICAgICAoYmFzZSAxNikJCU1hdHN1c2hpdGEgRWxlY3Ryb25pYyBDb21wb25lbnRzIENvLiwgTHRkLgorCQkJCTEwMDYgS2Fkb21hCisJCQkJS2Fkb21hLUNpdHkgT3Nha2EgNTcxLTg1MDYKKwkJCQlKQVBBTgorCiswMC0xMi02OCAgIChoZXgpCQlJUFMgZC5vLm8uCiswMDEyNjggICAgIChiYXNlIDE2KQkJSVBTIGQuby5vLgorCQkJCUMuIExqdWJsamFuc2tlIGJyaWdhZGUgMTcKKwkJCQlManVibGphbmEgIFNJLTEwMDAKKwkJCQlTTE9WRU5JQQorCiswMC0xMi02OSAgIChoZXgpCQlWYWx1ZSBFbGVjdHJvbmljcworMDAxMjY5ICAgICAoYmFzZSAxNikJCVZhbHVlIEVsZWN0cm9uaWNzCisJCQkJRG9uZy1rd2FuIEIvRCwgNUYsIDE1NjYtMgorCQkJCVNlb2Noby1kb25nLCBTZW9jaG8tZ3UKKwkJCQlzZW91bCAgMTM3LTg3NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMi02QSAgIChoZXgpCQlPUFRPRUxFQ1RST05JQ1MgQ28uLCBMdGQuCiswMDEyNkEgICAgIChiYXNlIDE2KQkJT1BUT0VMRUNUUk9OSUNTIENvLiwgTHRkLgorCQkJCTMtMUthbWlhb2tpbmlzaGkgMS1jaG9tZQorCQkJCUthd2FndWNoaSBTYWl0YW1hIFByZWYuIDMzMy0wODQ1CisJCQkJSkFQQU4KKworMDAtMTItNkIgICAoaGV4KQkJQXNjYWxhZGUgQ29tbXVuaWNhdGlvbnMgTGltaXRlZAorMDAxMjZCICAgICAoYmFzZSAxNikJCUFzY2FsYWRlIENvbW11bmljYXRpb25zIExpbWl0ZWQKKwkJCQlVbml0IDEwLTExLCAzNS9GLCBDYWJsZSBUViBUb3dlciwKKwkJCQlOby45IEhvaSBTaGluZyBSb2FkLCBUc3VlbiBXYW4KKwkJCQlIT05HIEtPTkcKKworMDAtMTItNkMgICAoaGV4KQkJVmlzb25pYyBMdGQuCiswMDEyNkMgICAgIChiYXNlIDE2KQkJVmlzb25pYyBMdGQuCisJCQkJMjQgSGFiYXJ6ZWwgU3QuCisJCQkJVGVsIEF2aXYgIDY5NzEwCisJCQkJSVNSQUVMCisKKzAwLTEyLTZEICAgKGhleCkJCVVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgQmVya2VsZXkKKzAwMTI2RCAgICAgKGJhc2UgMTYpCQlVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIEJlcmtlbGV5CisJCQkJRUVDUyBEZXBhcnRtZW50CisJCQkJQmVya2VsZXkgQ0EgOTQ3MjAtMTc3NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNkUgICAoaGV4KQkJU2VpZGVsIEVsZWt0cm9uaWsgR21iSCBOZmcuS0cKKzAwMTI2RSAgICAgKGJhc2UgMTYpCQlTZWlkZWwgRWxla3Ryb25payBHbWJIIE5mZy5LRworCQkJCUZyYXVlbnRhbGVyc3RyYXNzZSAxMDAKKwkJCQlEZXV0c2NobGFuZHNiZXJnIFN0ZWllcm1hcmsgODUzMAorCQkJCUFVU1RSSUEKKworMDAtMTItNkYgICAoaGV4KQkJUmF5c29uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDEyNkYgICAgIChiYXNlIDE2KQkJUmF5c29uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMUYgTm8uOSBSJkQgUmQuSUksIFNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbi1DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItNzAgICAoaGV4KQkJTkdFUyBEZW5ybyBTeXN0ZW1zCiswMDEyNzAgICAgIChiYXNlIDE2KQkJTkdFUyBEZW5ybyBTeXN0ZW1zCisJCQkJOTMxOCBHYWl0aGVyIFJvYWQKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTcxICAgKGhleCkJCU1lYXN1cmVtZW50IENvbXB1dGluZyBDb3JwCiswMDEyNzEgICAgIChiYXNlIDE2KQkJTWVhc3VyZW1lbnQgQ29tcHV0aW5nIENvcnAKKwkJCQkxNiBDb21tZXJjZSBCbHZkCisJCQkJTWlkZGxlYm9ybyBNQSAwMjM0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNzIgICAoaGV4KQkJUmVkdXggQ29tbXVuaWNhdGlvbnMgTHRkLgorMDAxMjcyICAgICAoYmFzZSAxNikJCVJlZHV4IENvbW11bmljYXRpb25zIEx0ZC4KKwkJCQlQT0IgMTAxCisJCQkJTW9kaWluICA3MTcwMAorCQkJCUlTUkFFTAorCiswMC0xMi03MyAgIChoZXgpCQlTdG9rZSBJbmMKKzAwMTI3MyAgICAgKGJhc2UgMTYpCQlTdG9rZSBJbmMKKwkJCQkyMTg5IExlZ2hvcm4gU3RyZWV0CisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNzQgICAoaGV4KQkJTklUIGxhYgorMDAxMjc0ICAgICAoYmFzZSAxNikJCU5JVCBsYWIKKwkJCQlTa29yaW55IHN0ci4sIDY1LTMKKwkJCQlNaW5zayBNaW5za2F5YSBvYmwuIDIyMDAxMworCQkJCUJFTEFSVVMKKworMDAtMTItNzUgICAoaGV4KQkJU2VudGlsbGEgQ29ycG9yYXRpb24KKzAwMTI3NSAgICAgKGJhc2UgMTYpCQlTZW50aWxsYSBDb3Jwb3JhdGlvbgorCQkJCTIwMSBNYXJzaGFsbCBTdHJlZXQKKwkJCQlSZWR3b29kIENpdHkgQ0EgOTQwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTc2ICAgKGhleCkJCUNHIFBvd2VyIFN5c3RlbXMgSXJlbGFuZCBMaW1pdGVkCiswMDEyNzYgICAgIChiYXNlIDE2KQkJQ0cgUG93ZXIgU3lzdGVtcyBJcmVsYW5kIExpbWl0ZWQKKwkJCQlIZXJiZXJ0IEhvdXNlLiwgSGFybW9ueSBSb3csIAorCQkJCUR1YmxpbiAgRDIKKwkJCQlJUkVMQU5ECisKKzAwLTEyLTc3ICAgKGhleCkJCUtvcmVuaXggVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAxMjc3ICAgICAoYmFzZSAxNikJCUtvcmVuaXggVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCTExRi0xLCBOby4gMTA4LCBNaW5RdWFuIFJkLgorCQkJCVhpbmRpYW4gQ2l0eSBUYWlwZWkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi03OCAgIChoZXgpCQlJbnRlcm5hdGlvbmFsIEJhciBDb2RlCiswMDEyNzggICAgIChiYXNlIDE2KQkJSW50ZXJuYXRpb25hbCBCYXIgQ29kZQorCQkJCTE2MCBPYWsgU3RyZWV0CisJCQkJR2xhc3RvbmJ1cnkgQ1QgMDYwMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTc5ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxMjc5ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5IFNvdXRoCisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi03QSAgIChoZXgpCQlTYW55dSBJbmR1c3RyeSBDby4sTHRkLgorMDAxMjdBICAgICAoYmFzZSAxNikJCVNhbnl1IEluZHVzdHJ5IENvLixMdGQuCisJCQkJTWlkb3JpLWt1IEhha3VzYW4xLTExLTExCisJCQkJWW9rb2hhbWEtc2hpIEthbmFnYXdhLWtlbiAyMjYtMDAwNgorCQkJCUpBUEFOCisKKzAwLTEyLTdCICAgKGhleCkJCVZJQSBOZXR3b3JraW5nIFRlY2hub2xvZ2llcywgSW5jLgorMDAxMjdCICAgICAoYmFzZSAxNikJCVZJQSBOZXR3b3JraW5nIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCThGLDUzMywgQ2h1bmctQ2hlbmcgUm9hZCwgSHNpbi1UaWVuCisJCQkJVGFpcGVpICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLTdDICAgKGhleCkJCVNXRUdPTiBBQgorMDAxMjdDICAgICAoYmFzZSAxNikJCVNXRUdPTiBBQgorCQkJCUJveCAzMDAKKwkJCQlLVkFOVU0gVkFTVFJBIEdPVEFMQU5EIFNFIDUzNSAyMworCQkJCVNXRURFTgorCiswMC0xMi03RCAgIChoZXgpCQlNb2JpbGVBcmlhCiswMDEyN0QgICAgIChiYXNlIDE2KQkJTW9iaWxlQXJpYQorCQkJCTgwMCBXIEVsIENhbWlubyBSZWFsICMyNDAKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi03RSAgIChoZXgpCQlEaWdpdGFsIExpZmVzdHlsZXMgR3JvdXAsIEluYy4KKzAwMTI3RSAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIExpZmVzdHlsZXMgR3JvdXAsIEluYy4KKwkJCQk4MDEgU291dGggU2VudG91cyBBdmUuCisJCQkJQ2l0eSBvZiBJbmR1c3RyeSBDQSA5MTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItN0YgICAoaGV4KQkJQ2lzY28KKzAwMTI3RiAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi04MCAgIChoZXgpCQlDaXNjbworMDAxMjgwICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTgxICAgKGhleCkJCU1hcmNoIE5ldHdvcmtzIFMucC5BLgorMDAxMjgxICAgICAoYmFzZSAxNikJCU1hcmNoIE5ldHdvcmtzIFMucC5BLgorCQkJCVZpYSBEZWkgTGF2b3JhdG9yaSBBdXRvYmlhbmNoaSBuLiAxLAorCQkJCURlc2lvIE1pbGFubyAyMDAzMworCQkJCUlUQUxZCisKKzAwLTEyLTgyICAgKGhleCkJCVFvdmlhCiswMDEyODIgICAgIChiYXNlIDE2KQkJUW92aWEKKwkJCQk3NDcwIE5ldyBUZWNobm9sb2d5IFdheQorCQkJCVN1aXRlIEUKKwkJCQlGcmVkZXJpY2sgTUQgMjE3MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTgzICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAxMjgzICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTEyLTg0ICAgKGhleCkJCUxhYjMzIFNybAorMDAxMjg0ICAgICAoYmFzZSAxNikJCUxhYjMzIFNybAorCQkJCUMuc28gRi4gUGVycm9uZSAyNAorCQkJCUdlbm9hIEdFIDE2MTUyCisJCQkJSVRBTFkKKworMDAtMTItODUgICAoaGV4KQkJR2l6bW9uZG8gRXVyb3BlIEx0ZAorMDAxMjg1ICAgICAoYmFzZSAxNikJCUdpem1vbmRvIEV1cm9wZSBMdGQKKwkJCQkxIE1lYWRvdyBHYXRlIEF2ZW51ZQorCQkJCUZhcm5ib3JvdWdoIEJ1c2luZXNzIFBhcmsKKwkJCQlGYXJuYm9yb3VnaCBIYW1wc2hpcmUgR1UxNCA2RkcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMi04NiAgIChoZXgpCQlFTkRFVkNPIENPUlAKKzAwMTI4NiAgICAgKGJhc2UgMTYpCQlFTkRFVkNPIENPUlAKKwkJCQkzMDcwMCBSQU5DSE8gVklFSk8gUk9BRAorCQkJCVNBTiBKVUFOIENBUElTVFJBTk8gQ0EgOTI2NzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTg3ICAgKGhleCkJCURpZ2l0YWwgRXZlcnl3aGVyZSBVbnRlcmhhbHR1bmdzZWxla3Ryb25payBHbWJICiswMDEyODcgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBFdmVyeXdoZXJlIFVudGVyaGFsdHVuZ3NlbGVrdHJvbmlrIEdtYkgKKwkJCQlNYXJpYSBHYWlsZXIgU3RyYXNzZSAxNgorCQkJCVZpbGxhY2ggS2FybnRlbiA5NTAwCisJCQkJQVVTVFJJQQorCiswMC0xMi04OCAgIChoZXgpCQkyV2lyZSwgSW5jCiswMDEyODggICAgIChiYXNlIDE2KQkJMldpcmUsIEluYworCQkJCTE3MDQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTg5ICAgKGhleCkJCUFkdmFuY2UgU3RlcmlsaXphdGlvbiBQcm9kdWN0cworMDAxMjg5ICAgICAoYmFzZSAxNikJCUFkdmFuY2UgU3RlcmlsaXphdGlvbiBQcm9kdWN0cworCQkJCTMzIFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlJcnZpbmUgQ2FsaWZvcm5pYSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItOEEgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDEyOEEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjQ1IE4uIFVTIEh3eSA0NQorCQkJCVJvb20gbm8uIE1XLTExMworCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItOEIgICAoaGV4KQkJU2Vuc29yeSBOZXR3b3JrcyBJbmMKKzAwMTI4QiAgICAgKGJhc2UgMTYpCQlTZW5zb3J5IE5ldHdvcmtzIEluYworCQkJCUxldmVsIDYsIDE0MCBXaWxsaWFtIFN0CisJCQkJRWFzdCBTeWRuZXkgTlNXIDIwMTEKKwkJCQlBVVNUUkFMSUEKKworMDAtMTItOEMgICAoaGV4KQkJV29vZHdhcmQgR292ZXJub3IKKzAwMTI4QyAgICAgKGJhc2UgMTYpCQlXb29kd2FyZCBHb3Zlcm5vcgorCQkJCTEwMDAgRS4gRHJha2UgUm9hZAorCQkJCUZ0LiBDb2xsaW5zIENPIDgwNTI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi04RCAgIChoZXgpCQlTVEIgRGF0ZW5zZXJ2aWNlIEdtYkgKKzAwMTI4RCAgICAgKGJhc2UgMTYpCQlTVEIgRGF0ZW5zZXJ2aWNlIEdtYkgKKwkJCQlXZWluc2JlcmdzdHJhc3NlIDE5MAorCQkJCUtvbG4gTlJXIDUwODI1CisJCQkJR0VSTUFOWQorCiswMC0xMi04RSAgIChoZXgpCQlRLUZyZWUgQVNBCiswMDEyOEUgICAgIChiYXNlIDE2KQkJUS1GcmVlIEFTQQorCQkJCVRoLiBPd2VzZW5zZ3QuIDM1YworCQkJCVRyb25kaGVpbSBTVCA3NDQzCisJCQkJTk9SV0FZCisKKzAwLTEyLThGICAgKGhleCkJCU1vbnRpbGlvCiswMDEyOEYgICAgIChiYXNlIDE2KQkJTW9udGlsaW8KKwkJCQkxIG1hc2tpdCBzdC4KKwkJCQlIZXJ0emVsaWEgIDQ2NzYzCisJCQkJSVNSQUVMCisKKzAwLTEyLTkwICAgKGhleCkJCUtZT1dBIEVsZWN0cmljICYgTWFjaGluZXJ5IENvcnAuCiswMDEyOTAgICAgIChiYXNlIDE2KQkJS1lPV0EgRWxlY3RyaWMgJiBNYWNoaW5lcnkgQ29ycC4KKwkJCQk0LTgtMTYsTWFzdWl6dW1pCisJCQkJS2FuYXphd2EgSXNoaWthd2EgOTIxLTgwMjUKKwkJCQlKQVBBTgorCiswMC0xMi05MSAgIChoZXgpCQlLV1MgQ29tcHV0ZXJzeXN0ZW1lIEdtYkgKKzAwMTI5MSAgICAgKGJhc2UgMTYpCQlLV1MgQ29tcHV0ZXJzeXN0ZW1lIEdtYkgKKwkJCQlDYXJsIFplaXNzIFN0ci4gMQorCQkJCUV0dGxpbmdlbiBCVyA3NjI3NQorCQkJCUdFUk1BTlkKKworMDAtMTItOTIgICAoaGV4KQkJR3JpZmZpbiBUZWNobm9sb2d5CiswMDEyOTIgICAgIChiYXNlIDE2KQkJR3JpZmZpbiBUZWNobm9sb2d5CisJCQkJMTkzMCBBaXIgTGFuZSBEcml2ZQorCQkJCU5hc2h2aWxsZSBUTiAzNzIxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItOTMgICAoaGV4KQkJR0UgRW5lcmd5CiswMDEyOTMgICAgIChiYXNlIDE2KQkJR0UgRW5lcmd5CisJCQkJMTUwMSBSb2Fub2tlIEJsdmQuCisJCQkJUm9vbSAyODMKKwkJCQlTYWxlbSBWQSAyNDE1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItOTQgICAoaGV4KQkJU1VNSVRPTU8gRUxFQ1RSSUMgREVWSUNFIElOTk9WQVRJT05TLCBJTkMKKzAwMTI5NCAgICAgKGJhc2UgMTYpCQlTVU1JVE9NTyBFTEVDVFJJQyBERVZJQ0UgSU5OT1ZBVElPTlMsIElOQworCQkJCTEwMDAgS2FtaXN1a2lhd2FyYSxTaG93YS1jaG8KKwkJCQlOYWtha29tYS1ndW4gWWFtYW5hc2hpIDQwOS0zODgzCisJCQkJSkFQQU4KKworMDAtMTItOTUgICAoaGV4KQkJQWl3YXJlIEluYy4KKzAwMTI5NSAgICAgKGJhc2UgMTYpCQlBaXdhcmUgSW5jLgorCQkJCUotVG93ZXIgMkYKKwkJCQkxLTEgTmlra29jaG8KKwkJCQlGdWNodS1zaGkgVG9reW8gMTgzLTAwNDQKKwkJCQlKQVBBTgorCiswMC0xMi05NiAgIChoZXgpCQlBZGRsb2dpeAorMDAxMjk2ICAgICAoYmFzZSAxNikJCUFkZGxvZ2l4CisJCQkJNDU5IFdhbGQKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTk3ICAgKGhleCkJCU8yTWljcm8sIEluYy4KKzAwMTI5NyAgICAgKGJhc2UgMTYpCQlPMk1pY3JvLCBJbmMuCisJCQkJMzExOCBQYXRyaWNrIEhlbnJ5IERyaXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTk4ICAgKGhleCkJCU1JQ08gRUxFQ1RSSUMoU0hFTlpIRU4pIExJTUlURUQKKzAwMTI5OCAgICAgKGJhc2UgMTYpCQlNSUNPIEVMRUNUUklDKFNIRU5aSEVOKSBMSU1JVEVECisJCQkJMjEvRiBCbG9jayBBLCBIYWlscnVuIENvbXBsZXgsIDYwMjEgU2hlbk5hbiBCbHZkLiwgU2hlblpoZW4sIFBSIENoaW5hLgorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0xMi05OSAgIChoZXgpCQlLdGVjaCBUZWxlY29tbXVuaWNhdGlvbnMgSW5jCiswMDEyOTkgICAgIChiYXNlIDE2KQkJS3RlY2ggVGVsZWNvbW11bmljYXRpb25zIEluYworCQkJCTIxNTQwIFByYWlyaWUgU3RyZWV0IFVuaXQgQgorCQkJCUNoYXRzd29ydGggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTlBICAgKGhleCkJCUlSVCBFbGVjdHJvbmljcyBQdHkgTHRkCiswMDEyOUEgICAgIChiYXNlIDE2KQkJSVJUIEVsZWN0cm9uaWNzIFB0eSBMdGQKKwkJCQkyNiBIb3RoYW0gUGFyYWRlCisJCQkJQXJ0YXJtb24gTlNXIDIwNjQKKwkJCQlBVVNUUkFMSUEKKworMDAtMTItOUIgICAoaGV4KQkJRTJTIEVsZWN0cm9uaWMgRW5naW5lZXJpbmcgU29sdXRpb25zLCBTLkwuCiswMDEyOUIgICAgIChiYXNlIDE2KQkJRTJTIEVsZWN0cm9uaWMgRW5naW5lZXJpbmcgU29sdXRpb25zLCBTLkwuCisJCQkJU2FudCBGZXJyYW4gMTAKKwkJCQlCYXJjZWxvbmEgIDA4MDMxCisJCQkJU1BBSU4KKworMDAtMTItOUMgICAoaGV4KQkJWXVsaW5ldAorMDAxMjlDICAgICAoYmFzZSAxNikJCVl1bGluZXQKKwkJCQkxMUYsIFNhbWhvbW9vbHNhbiBCL0QgMjc1LTYsIFlhbmdqYWUtZG9uZworCQkJCVNlb2NobyBTZW91bCAxMzctOTQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTlEICAgKGhleCkJCUZpcnN0IEludGVybmF0aW9uYWwgQ29tcHV0ZXIgZG8gQnJhc2lsCiswMDEyOUQgICAgIChiYXNlIDE2KQkJRmlyc3QgSW50ZXJuYXRpb25hbCBDb21wdXRlciBkbyBCcmFzaWwKKwkJCQlSb2RvdmlhIEJSIDQ1OQorCQkJCWttIDEyMSAtIERpc3RyaXRvIEluZHVzdHJpYWwKKwkJCQlTYW50YSBSaXRhIGRvIFNhcHVjYWkgTWluYXMgR2VyYWlzIAorCQkJCUJSQVpJTAorCiswMC0xMi05RSAgIChoZXgpCQlTdXJmIENvbW11bmljYXRpb25zIEluYy4KKzAwMTI5RSAgICAgKGJhc2UgMTYpCQlTdXJmIENvbW11bmljYXRpb25zIEluYy4KKwkJCQlSb29tIDMxMywgM0YsIEJsZGcuNTIsIE5vLiAxOTUsIENodW5nIEhzaW5nIFJkLiwgU2VjIDQsIENodXR1bmcsIEhzaW5DaHUsIFRhaXdhbgorCQkJCUhzaW5DaHUgIDMxMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItOUYgICAoaGV4KQkJUkFFIFN5c3RlbXMsIEluYy4KKzAwMTI5RiAgICAgKGJhc2UgMTYpCQlSQUUgU3lzdGVtcywgSW5jLgorCQkJCTEzMzkgTW9mZmV0dCBQYXJrIERyaXZlCisJCQkJU3Vubnl2YWxlIENhbGlmb3JuaWEgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUEwICAgKGhleCkJCU5lb01lcmlkaWFuIFNkbiBCaGQKKzAwMTJBMCAgICAgKGJhc2UgMTYpCQlOZW9NZXJpZGlhbiBTZG4gQmhkCisJCQkJM0EtMSwgUGVyZGFuYSBUaGUgUGxhY2UKKwkJCQlKYWxhbiBQSlUgOC81RworCQkJCUJhbmRhciBEYW1hbnNhcmEgUGVyZGFuYSBTZWxhbmdvciA0NzgyMAorCQkJCU1BTEFZU0lBCisKKzAwLTEyLUExICAgKGhleCkJCUJsdWVQYWNrZXQgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDEyQTEgICAgIChiYXNlIDE2KQkJQmx1ZVBhY2tldCBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQkxMEYtMSwgTm8uIDQyMCwgU2VjLiAxLCBLZWVsdW5nIFJkLiwgMTEwLAorCQkJCVRhaXBlaSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi1BMiAgIChoZXgpCQlWSVRBCiswMDEyQTIgICAgIChiYXNlIDE2KQkJVklUQQorCQkJCVBPIEJveCAxOTY1OAorCQkJCUZvdW50YWluIEhpbGxzIEFaIDg1MjY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1BMyAgIChoZXgpCQlUcnVzdCBJbnRlcm5hdGlvbmFsIEIuVi4KKzAwMTJBMyAgICAgKGJhc2UgMTYpCQlUcnVzdCBJbnRlcm5hdGlvbmFsIEIuVi4KKwkJCQlMYWFuIHZhbiBCYXJjZWxvbmEgNjAwCisJCQkJRG9yZHJlY2h0IFp1aWQgaG9sbGFuZCAzMzE3IERECisJCQkJTkVUSEVSTEFORFMKKworMDAtMTItQTQgICAoaGV4KQkJVGhpbmdNYWdpYywgTExDCiswMDEyQTQgICAgIChiYXNlIDE2KQkJVGhpbmdNYWdpYywgTExDCisJCQkJT25lIEJyb2Fkd2F5CisJCQkJMTR0aCBGbG9vcgorCQkJCUNhbWJyaWRnZSBNQSAwMjE0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQTUgICAoaGV4KQkJU3RhcmdlbiwgSW5jLgorMDAxMkE1ICAgICAoYmFzZSAxNikJCVN0YXJnZW4sIEluYy4KKwkJCQkyMjUgQ2VkYXIgSGlsbCBTdHJlZXQKKwkJCQlNYXJsYm9yb3VnaCBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQTYgICAoaGV4KQkJRG9sYnkgQXVzdHJhbGlhCiswMDEyQTYgICAgIChiYXNlIDE2KQkJRG9sYnkgQXVzdHJhbGlhCisJCQkJTGV2ZWwgNgorCQkJCTEzNiBDaGFsbWVycyBTdHJlZXQKKwkJCQlTdXJyeSBIaWxscyBOU1cgMjAxMAorCQkJCUFVU1RSQUxJQQorCiswMC0xMi1BNyAgIChoZXgpCQlJU1IgVEVDSE5PTE9HSUVTIEluYworMDAxMkE3ICAgICAoYmFzZSAxNikJCUlTUiBURUNITk9MT0dJRVMgSW5jCisJCQkJMTEwMCwgcnVlIE5vdHJlLURhbWUgT3Vlc3QKKwkJCQlNb250cmVhbCBRdWViZWMgSDNDIDFLMworCQkJCUNBTkFEQQorCiswMC0xMi1BOCAgIChoZXgpCQlpbnRlYyBHbWJICiswMDEyQTggICAgIChiYXNlIDE2KQkJaW50ZWMgR21iSAorCQkJCVJhaG1lZGVzdHIuIDkwCisJCQkJTHVlZGVuc2NoZWlkIE5SVyA1ODUwNworCQkJCUdFUk1BTlkKKworMDAtMTItQTkgICAoaGV4KQkJM0NvbSBMdGQKKzAwMTJBOSAgICAgKGJhc2UgMTYpCQkzQ29tIEx0ZAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlQZW9wbGVidWlsZGluZyBFc3RhdGUsIE1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cyBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTItQUEgICAoaGV4KQkJSUVFLCBJbmMuCiswMDEyQUEgICAgIChiYXNlIDE2KQkJSUVFLCBJbmMuCisJCQkJNzc0MCBMZW1vbmEgQXZlbnVlCisJCQkJVmFuIE51eXMsIENBIDkxNDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1BQiAgIChoZXgpCQlXaUxpZmUsIEluYy4KKzAwMTJBQiAgICAgKGJhc2UgMTYpCQlXaUxpZmUsIEluYy4KKwkJCQkxMzIgRS4gMTMwNjUgUy4sIFN1aXRlIDE1MAorCQkJCURyYXBlciBVVCA4NDAyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQUMgICAoaGV4KQkJT05USU1FVEVLIElOQy4KKzAwMTJBQyAgICAgKGJhc2UgMTYpCQlPTlRJTUVURUsgSU5DLgorCQkJCTlGbC4sT3duZXIncyBUb3dlcgorCQkJCTE2LTUsIFN1bmFlLURvbmcsIEJ1bmRhbmctR3UKKwkJCQlTdW5nbmFtLVNpIEt5dW5nZ2ktRG8gNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMi1BRCAgIChoZXgpCQlJRFMgR21iSAorMDAxMkFEICAgICAoYmFzZSAxNikJCUlEUyBHbWJICisJCQkJTm9iZWxzdHIsIDE4CisJCQkJRXR0bGluZ2VuIEJhZGVuLVd1cnR0ZW1iZXJnIDc2Mjc1CisJCQkJR0VSTUFOWQorCiswMC0xMi1BRSAgIChoZXgpCQlITFMgSEFSRC1MSU5FIFNvbHV0aW9ucyBJbmMuCiswMDEyQUUgICAgIChiYXNlIDE2KQkJSExTIEhBUkQtTElORSBTb2x1dGlvbnMgSW5jLgorCQkJCTUzIE1haW4gU3RyZWV0CisJCQkJRG93bGluZyBPbnRhcmlvIFAwTSAxUjAKKwkJCQlDQU5BREEKKworMDAtMTItQUYgICAoaGV4KQkJRUxQUk8gVGVjaG5vbG9naWVzCiswMDEyQUYgICAgIChiYXNlIDE2KQkJRUxQUk8gVGVjaG5vbG9naWVzCisJCQkJOSAvIDEyIEJpbGxhYm9uZyBTdC4KKwkJCQlTdGFmZm9yZCBRdWVlbnNsYW5kIDQwNTMKKwkJCQlBVVNUUkFMSUEKKworMDAtMTItQjAgICAoaGV4KQkJRWZvcmUgT3lqICAgKFBsYykKKzAwMTJCMCAgICAgKGJhc2UgMTYpCQlFZm9yZSBPeWogICAoUGxjKQorCQkJCVF1YXJ0ZXR0byBCdXNpbmVzcyBQYXJrCisJCQkJTGlubm9pdHVzdGllIDQgQgorCQkJCUVzcG9vICBGSSAtIDAyNjAwCisJCQkJRklOTEFORAorCiswMC0xMi1CMSAgIChoZXgpCQlEYWkgTmlwcG9uIFByaW50aW5nIENvLiwgTHRkCiswMDEyQjEgICAgIChiYXNlIDE2KQkJRGFpIE5pcHBvbiBQcmludGluZyBDby4sIEx0ZAorCQkJCTItOC0yMSxBa2FiYW5lLW1pbmFtaQorCQkJCUtpdGEta3UgVG9reW8gMTE1LTAwNDQKKwkJCQlKQVBBTgorCiswMC0xMi1CMiAgIChoZXgpCQlBVk9MSVRFUyBMVEQuCiswMDEyQjIgICAgIChiYXNlIDE2KQkJQVZPTElURVMgTFRELgorCQkJCTE4NCBQQVJLIEFWRU5VRQorCQkJCUxPTkRPTiAgTlcxMCA3WEwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMi1CMyAgIChoZXgpCQlBZHZhbmNlIFdpcmVsZXNzIFRlY2hub2xvZ3kgQ29ycC4KKzAwMTJCMyAgICAgKGJhc2UgMTYpCQlBZHZhbmNlIFdpcmVsZXNzIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkxMkYgTm8uIDI3LTYsIFNlYy4gMiwgQ2h1bmcgQ2hlbmcgRWFzdCBSb2FkCisJCQkJVGFtc2h1aSAgMjUxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi1CNCAgIChoZXgpCQlXb3JrIE1pY3Jvd2F2ZSBHbWJICiswMDEyQjQgICAgIChiYXNlIDE2KQkJV29yayBNaWNyb3dhdmUgR21iSAorCQkJCVJhaWZmZWlzZW5zdHJhc3NlIDEyCisJCQkJSG9semtpcmNoZW4gIDgzNjA3CisJCQkJR0VSTUFOWQorCiswMC0xMi1CNSAgIChoZXgpCQlWaWFsdGEsIEluYy4KKzAwMTJCNSAgICAgKGJhc2UgMTYpCQlWaWFsdGEsIEluYy4KKwkJCQk0ODQ2MSBGcmVtb250IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQjYgICAoaGV4KQkJU2FudGEgQmFyYmFyYSBJbmZyYXJlZCwgSW5jLgorMDAxMkI2ICAgICAoYmFzZSAxNikJCVNhbnRhIEJhcmJhcmEgSW5mcmFyZWQsIEluYy4KKwkJCQkzMCBTLiBDYWxsZSBDZXNhciBDaGF2ZXoKKwkJCQlTdWl0ZSBECisJCQkJU2FudGEgQmFyYmFyYSBDQSA5MzEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQjcgICAoaGV4KQkJUFRXIEZyZWlidXJnCiswMDEyQjcgICAgIChiYXNlIDE2KQkJUFRXIEZyZWlidXJnCisJCQkJTG9lcnJhY2hlciBTdHJhc3NlIDcKKwkJCQlGcmVpYnVyZyAgNzkxMTUKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLUI4ICAgKGhleCkJCUcyIE1pY3Jvc3lzdGVtcworMDAxMkI4ICAgICAoYmFzZSAxNikJCUcyIE1pY3Jvc3lzdGVtcworCQkJCTQwOCBFdWNsaWQgQXZlCisJCQkJT2FrbGFuZCBDQSA5NDYxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQjkgICAoaGV4KQkJRnVzaW9uIERpZ2l0YWwgVGVjaG5vbG9neQorMDAxMkI5ICAgICAoYmFzZSAxNikJCUZ1c2lvbiBEaWdpdGFsIFRlY2hub2xvZ3kKKwkJCQlWaWN0b3JpYSBNZXdzLCAyMyBNaWxsZmllbGQgUm9hZAorCQkJCUNvdHRpbmdsZXkgQnVzaW5lc3MgUGFyaworCQkJCUJpbmdsZXkgV2VzdCBZb3Jrc2hpcmUgQkQxNiAxUFkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMi1CQSAgIChoZXgpCQlGU0kgU3lzdGVtcywgSW5jLgorMDAxMkJBICAgICAoYmFzZSAxNikJCUZTSSBTeXN0ZW1zLCBJbmMuCisJCQkJNTg0NyBDb3VudHkgUm9hZCA0MQorCQkJCUZhcm1pbmd0b24gTlkgMTQ0MjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUJCICAgKGhleCkJCVRlbGVjb21tdW5pY2F0aW9ucyBJbmR1c3RyeSBBc3NvY2lhdGlvbiBUUi00MSBDb21taXR0ZWUKKzAwMTJCQiAgICAgKGJhc2UgMTYpCQlUZWxlY29tbXVuaWNhdGlvbnMgSW5kdXN0cnkgQXNzb2NpYXRpb24gVFItNDEgQ29tbWl0dGVlCisJCQkJMjUwMCBXaWxzb24gQmx2ZC4sIFN1aXRlIDMwMAorCQkJCUFybGluZ3RvbiBWQSAyMjIwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQkMgICAoaGV4KQkJRWNob2xhYiBMTEMKKzAwMTJCQyAgICAgKGJhc2UgMTYpCQlFY2hvbGFiIExMQworCQkJCTI2NyBCb3N0b24gUm9hZAorCQkJCVN1aXRlIDExCisJCQkJQmlsbGVyaWNhIE1BIDAxODYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1CRCAgIChoZXgpCQlBdmFudGVjIE1hbnVmYWN0dXJpbmcgTGltaXRlZAorMDAxMkJEICAgICAoYmFzZSAxNikJCUF2YW50ZWMgTWFudWZhY3R1cmluZyBMaW1pdGVkCisJCQkJVW5pdCBMLCA3L0YsIENhbWVscGFpbnQgQmxkZywgQmxvY2sgMworCQkJCTYwIEhvaSBZdWVuIFJvYWQsIEt3dW4gVG9uZywgS293bG9vbgorCQkJCTg1MgorCQkJCUhPTkcgS09ORworCiswMC0xMi1CRSAgIChoZXgpCQlBc3RlayBDb3Jwb3JhdGlvbgorMDAxMkJFICAgICAoYmFzZSAxNikJCUFzdGVrIENvcnBvcmF0aW9uCisJCQkJNTA1NSBDb3Jwb3JhdGUgUGxhemEgRHJpdmUKKwkJCQlDb2xvcmFkbyBTcHJpbmdzIENvbG9yYWRvIDgwOTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1CRiAgIChoZXgpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDEyQkYgICAgIChiYXNlIDE2KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLCBOby4gOSwgUGFyayBBdmVudWUgSUkKKwkJCQlTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItQzAgICAoaGV4KQkJSG90TGF2YSBTeXN0ZW1zLCBJbmMuCiswMDEyQzAgICAgIChiYXNlIDE2KQkJSG90TGF2YSBTeXN0ZW1zLCBJbmMuCisJCQkJNjMyOSBDaGVsdG9uIERyaXZlCisJCQkJT2FrbGFuZCBDQSA5NDYxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQzEgICAoaGV4KQkJQ2hlY2sgUG9pbnQgU29mdHdhcmUgVGVjaG5vbG9naWVzCiswMDEyQzEgICAgIChiYXNlIDE2KQkJQ2hlY2sgUG9pbnQgU29mdHdhcmUgVGVjaG5vbG9naWVzCisJCQkJNSBIYSdzb2xlbGltIFN0LgorCQkJCVRlbCBBdml2ICA2Nzg5NworCQkJCUlTUkFFTAorCiswMC0xMi1DMiAgIChoZXgpCQlBcGV4IEVsZWN0cm9uaWNzIEZhY3RvcnkKKzAwMTJDMiAgICAgKGJhc2UgMTYpCQlBcGV4IEVsZWN0cm9uaWNzIEZhY3RvcnkKKwkJCQlOby4zIEluZHVzdHJpYWwgWm9uZSwgTm8uNCBCbG9jaywKKwkJCQlGdSd5b25nIFRvd24sIEJhbydhbiBEaXN0cmljdAorCQkJCVNoZW4gWmhlbiBHdWFuZyBEb25nIDUxODEwMworCQkJCUNISU5BCisKKzAwLTEyLUMzICAgKGhleCkJCVdJVCBTLkEuCiswMDEyQzMgICAgIChiYXNlIDE2KQkJV0lUIFMuQS4KKwkJCQkxMzggYXZlbnVlIExlb24gQmVyZW5nZXIKKwkJCQlTYWludCBMYXVyZW50IGR1IFZhciBQQUNBIDA2NzAwCisJCQkJRlJBTkNFCisKKzAwLTEyLUM0ICAgKGhleCkJCVZpc2VvbiwgSW5jLgorMDAxMkM0ICAgICAoYmFzZSAxNikJCVZpc2VvbiwgSW5jLgorCQkJCTg0NDUgRnJlZXBvcnQgUGFya3dheQorCQkJCVN1aXRlIDI0NQorCQkJCUlydmluZyBUZXhhcyA3NTA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQzUgICAoaGV4KQkJVi1TaG93ICBUZWNobm9sb2d5IChDaGluYSkgQ28uLEx0ZAorMDAxMkM1ICAgICAoYmFzZSAxNikJCVYtU2hvdyAgVGVjaG5vbG9neSAoQ2hpbmEpIENvLixMdGQKKwkJCQk3RiwgVGVuZ2RhIFBsYXphLCBOby4xNjgKKwkJCQlYaXpoaW1lbiBXYWkgU3RyZWV0LAorCQkJCUhhaURpYW4gRGlzdHJpY3QsIEJlaWppbmcgMTAwMDg5CisJCQkJQ0hJTkEKKworMDAtMTItQzYgICAoaGV4KQkJVEdDIEFtZXJpY2EsIEluYworMDAxMkM2ICAgICAoYmFzZSAxNikJCVRHQyBBbWVyaWNhLCBJbmMKKwkJCQkyOTAxIFRhc21hbiBEcml2ZSwgU3VpdGUgMTExCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUM3ICAgKGhleCkJCVNFQ1VSQVkgVGVjaG5vbG9naWVzIEx0ZC5Dby4KKzAwMTJDNyAgICAgKGJhc2UgMTYpCQlTRUNVUkFZIFRlY2hub2xvZ2llcyBMdGQuQ28uCisJCQkJVGlhbmppbiBIYWl0YWkgSW5kdXN0cmlhbCBCYXNlIEVyV2VpIFJvYWQKKwkJCQlOby4gNiBCbG9jayBGIDgtNDAxCisJCQkJVGlhbmppbiAgMzAwMzg0CisJCQkJQ0hJTkEKKworMDAtMTItQzggICAoaGV4KQkJUGVyZmVjdCB0ZWNoCiswMDEyQzggICAgIChiYXNlIDE2KQkJUGVyZmVjdCB0ZWNoCisJCQkJM0YsTm8uOSxMQU5FMTc1LE5BTktBTiBSRC4sCisJCQkJTFVKSFUgVEFPWVVBTiAzMzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLUM5ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxMkM5ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUNBICAgKGhleCkJCU1lY2hhdHJvbmljIEJyaWNrIEFwcworMDAxMkNBICAgICAoYmFzZSAxNikJCU1lY2hhdHJvbmljIEJyaWNrIEFwcworCQkJCUFsc2lvbiAyCisJCQkJNjQwMCBTb25kZXJib3JnIAorCQkJCURFTk1BUksKKworMDAtMTItQ0IgICAoaGV4KQkJQ1NTIEluYy4KKzAwMTJDQiAgICAgKGJhc2UgMTYpCQlDU1MgSW5jLgorCQkJCTE1MSBTdXBlcmlvciBCbHZkLgorCQkJCVVuaXQgMTMgJiAxNAorCQkJCU1pc3Npc3NhdWdhIE9udGFyaW8gTDVUMkwxCisJCQkJQ0FOQURBCisKKzAwLTEyLUNDICAgKGhleCkJCUJpdGF0ZWsgQ08uLCBMVEQKKzAwMTJDQyAgICAgKGJhc2UgMTYpCQlCaXRhdGVrIENPLiwgTFRECisJCQkJNkYtMSwxOTAsVGEtVHVuZyBSb2FkLFNFQy4gMywKKwkJCQlIc2ljaGloIFRhaXBlaSBjb3VudHkgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi1DRCAgIChoZXgpCQlBU0VNIFNwQQorMDAxMkNEICAgICAoYmFzZSAxNikJCUFTRU0gU3BBCisJCQkJVmlhIEJ1aWEsIDQKKwkJCQlBUlRFR05BIFVkaW5lIEktMzMwMTEKKwkJCQlJVEFMWQorCiswMC0xMi1DRSAgIChoZXgpCQlBZHZhbmNlZCBDeWJlcm5ldGljcyBHcm91cAorMDAxMkNFICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIEN5YmVybmV0aWNzIEdyb3VwCisJCQkJMjk1MyBCdW5rZXIgSGlsbCBMYW5lCisJCQkJU3VpdGUgNDAwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUNGICAgKGhleCkJCUFjY3RvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDEyQ0YgICAgIChiYXNlIDE2KQkJQWNjdG9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQlOby4gMSBDcmVhdGlvbiBSZC4gSUlJLCBTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItRDAgICAoaGV4KQkJR29zc2VuLU1ldHJhd2F0dC1HbWJICiswMDEyRDAgICAgIChiYXNlIDE2KQkJR29zc2VuLU1ldHJhd2F0dC1HbWJICisJCQkJVGhvbWFzLU1hbm4tU3RyLiAxNi0yMAorCQkJCU51cm5iZXJnIEJhdmFyaWEgOTA0NzEKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLUQxICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzIEluYworMDAxMkQxICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzIEluYworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwKKwkJCQlNUyA4NzIzCisJCQkJRGFsbGFzIFRleGFzIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1EMiAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxMkQyICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJTVMgODcyMworCQkJCURhbGxhcyBUZXhhcyA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItRDMgICAoaGV4KQkJWmV0dGEgU3lzdGVtcywgSW5jLgorMDAxMkQzICAgICAoYmFzZSAxNikJCVpldHRhIFN5c3RlbXMsIEluYy4KKwkJCQkxNzMxMSAxMzV0aCBBVkUgTkUKKwkJCQlTdWl0ZSBCOTAwCisJCQkJV29vZGludmlsbGUgV0EgOTgwNzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUQ0ICAgKGhleCkJCVByaW5jZXRvbiBUZWNobm9sb2d5LCBMdGQKKzAwMTJENCAgICAgKGJhc2UgMTYpCQlQcmluY2V0b24gVGVjaG5vbG9neSwgTHRkCisJCQkJSy5BLkkuIEJsZGcuIDNGCisJCQkJMy05LTUgSXdhbW90by1jaG8KKwkJCQlDaGl5b2Rha3UgVG9reW8gMTAxLTAwMzIKKwkJCQlKQVBBTgorCiswMC0xMi1ENSAgIChoZXgpCQlNb3Rpb24gUmVhbGl0eSBJbmMuCiswMDEyRDUgICAgIChiYXNlIDE2KQkJTW90aW9uIFJlYWxpdHkgSW5jLgorCQkJCTIwMCBOb3J0aCBDb2JiIFBhcmt3YXkKKwkJCQlTdWl0ZSAxNDAKKwkJCQlNYXJpZXR0YSBHQSAzMDA2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItRDYgICAoaGV4KQkJSmlhbmdzdSBZaXRvbmcgSGlnaC1UZWNoIENvLixMdGQKKzAwMTJENiAgICAgKGJhc2UgMTYpCQlKaWFuZ3N1IFlpdG9uZyBIaWdoLVRlY2ggQ28uLEx0ZAorCQkJCU5vIDIxNiBIdWFuZ2hlIFJvYWQKKwkJCQlDaGFuZ3NodSBKaWFuZ3N1IDIxNTUwMAorCQkJCUNISU5BCisKKzAwLTEyLUQ3ICAgKGhleCkJCUludmVudG8gTmV0d29ya3MsIEluYy4KKzAwMTJENyAgICAgKGJhc2UgMTYpCQlJbnZlbnRvIE5ldHdvcmtzLCBJbmMuCisJCQkJMzc3IFNpbWFyYW5vIERyaXZlCisJCQkJTWFybGJvcm91Z2ggTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUQ4ICAgKGhleCkJCUludGVybmF0aW9uYWwgR2FtZXMgU3lzdGVtIENvLiwgTHRkLgorMDAxMkQ4ICAgICAoYmFzZSAxNikJCUludGVybmF0aW9uYWwgR2FtZXMgU3lzdGVtIENvLiwgTHRkLgorCQkJCU5vLjEzMCwgV3UtR3VuZyBSZC4sIFd1LUd1IEluZHVzdHJpYWwgUGFyaywKKwkJCQlUYWlwZWkgIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItRDkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMkQ5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItREEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMkRBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItREIgICAoaGV4KQkJWklFSEwgaW5kdXN0cmllLWVsZWt0cm9uaWsgR21iSCArIENvIEtHCiswMDEyREIgICAgIChiYXNlIDE2KQkJWklFSEwgaW5kdXN0cmllLWVsZWt0cm9uaWsgR21iSCArIENvIEtHCisJCQkJRGFpbWxlcnN0ci4gMTMKKwkJCQlTY2h3YWViaXNjaCBIYWxsICA3NDUyMworCQkJCUdFUk1BTlkKKworMDAtMTItREMgICAoaGV4KQkJU3VuQ29ycCBJbmR1c3RyaWFsIExpbWl0ZWQKKzAwMTJEQyAgICAgKGJhc2UgMTYpCQlTdW5Db3JwIEluZHVzdHJpYWwgTGltaXRlZAorCQkJCU5vLjY4IEd1b3dlaSBSb2FkLAorCQkJCUxpYW50YW5nIEluZHVzdHJpYWwgRGlzdHJpY3QsIFNoZW56aGVuLCAKKwkJCQlDSElOQQorCiswMC0xMi1ERCAgIChoZXgpCQlTaGVuZ3F1IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKFNoYW5naGFpKSBDby4sIEx0ZC4KKzAwMTJERCAgICAgKGJhc2UgMTYpCQlTaGVuZ3F1IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKFNoYW5naGFpKSBDby4sIEx0ZC4KKwkJCQlOby4xIEJ1aWxkaW5nLE5vLiA2OTAgQmlibyBSb2FkLFB1ZG9uZyBOZXcgQXJlYQorCQkJCVNoYW5naGFpICAyMDEyMDMKKwkJCQlDSElOQQorCiswMC0xMi1ERSAgIChoZXgpCQlSYWRpbyBDb21wb25lbnRzIFN3ZWRlbiBBQgorMDAxMkRFICAgICAoYmFzZSAxNikJCVJhZGlvIENvbXBvbmVudHMgU3dlZGVuIEFCCisJCQkJVmlkZXJvZ2F0YW4gM0IKKwkJCQlLaXN0YSBTdG9ja2hvbG0gMTY0MjIKKwkJCQlTV0VERU4KKworMDAtMTItREYgICAoaGV4KQkJTm92b21hdGljIEFHCiswMDEyREYgICAgIChiYXNlIDE2KQkJTm92b21hdGljIEFHCisJCQkJV2llbmVyIFN0cmFzc2UgMTU4CisJCQkJR3VtcG9sZHNraXJjaGVuIE5pZWRlcm9zdGVycmVpY2ggQS0yMzUyCisJCQkJQVVTVFJJQQorCiswMC0xMi1FMCAgIChoZXgpCQlDb2RhbiBMaW1pdGVkCiswMDEyRTAgICAgIChiYXNlIDE2KQkJQ29kYW4gTGltaXRlZAorCQkJCTgxIEdyYXZlcyBTdHJlZXQKKwkJCQlOZXd0b24gU291dGggNTA3NAorCQkJCUFVU1RSQUxJQQorCiswMC0xMi1FMSAgIChoZXgpCQlBbGxpYW50IE5ldHdvcmtzLCBJbmMKKzAwMTJFMSAgICAgKGJhc2UgMTYpCQlBbGxpYW50IE5ldHdvcmtzLCBJbmMKKwkJCQkxMjU5IEJpcmNod29vZCBEci4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUUyICAgKGhleCkJCUFMQVhBTEEgTmV0d29ya3MgQ29ycG9yYXRpb24KKzAwMTJFMiAgICAgKGJhc2UgMTYpCQlBTEFYQUxBIE5ldHdvcmtzIENvcnBvcmF0aW9uCisJCQkJODkwIEthc2hpbWFkYSwgU2Fpd2FpLWt1CisJCQkJS2F3YXNha2ktc2hpIEthbmFnYXdhLWtlbiAyMTItMDA1OAorCQkJCUpBUEFOCisKKzAwLTEyLUUzICAgKGhleCkJCUFnYXQtUlQsIEx0ZC4KKzAwMTJFMyAgICAgKGJhc2UgMTYpCQlBZ2F0LVJULCBMdGQuCisJCQkJMTAxIHByLiBNaXJhICMxMjIwLAorCQkJCU1vc2NvdyAgMTI5MDg1CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTEyLUU0ICAgKGhleCkJCVpJRUhMIGluZHVzdHJpZS1lbGVjdHJvbmlrIEdtYkggKyBDbyBLRworMDAxMkU0ICAgICAoYmFzZSAxNikJCVpJRUhMIGluZHVzdHJpZS1lbGVjdHJvbmlrIEdtYkggKyBDbyBLRworCQkJCURhaW1sZXJzdHIuIDEzCisJCQkJU2Nod2FlYmlzY2ggSGFsbCAgNzQ1MjMKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLUU1ICAgKGhleCkJCVRpbWUgQW1lcmljYSwgSW5jLgorMDAxMkU1ICAgICAoYmFzZSAxNikJCVRpbWUgQW1lcmljYSwgSW5jLgorCQkJCTUxIFcuIDNyZCBTdHJlZXQgIzMxMAorCQkJCVRlbXBlIEFaIDg1MjgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1FNiAgIChoZXgpCQlTUEVDVEVDIENPTVBVVEVSIENPLiwgTFRELgorMDAxMkU2ICAgICAoYmFzZSAxNikJCVNQRUNURUMgQ09NUFVURVIgQ08uLCBMVEQuCisJCQkJNkYuLCBOby4gOTIsIE5hbmtpbmcgRS4gUmQuIFNlYy4gNSwKKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItRTcgICAoaGV4KQkJUHJvamVjdGVrIE5ldHdvcmtpbmcgRWxlY3Ryb25pY3MgQ29ycC4KKzAwMTJFNyAgICAgKGJhc2UgMTYpCQlQcm9qZWN0ZWsgTmV0d29ya2luZyBFbGVjdHJvbmljcyBDb3JwLgorCQkJCTVGLTksIE5vLiAxNiwgTGFuZSA2MDksIFNlYy4gNSwgQ2h1bmdzaGluIFJkLiwKKwkJCQlTYW5jaHVuZywgVGFpcGVpICAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLUU4ICAgKGhleCkJCUZyYXVuaG9mZXIgSU1TCiswMDEyRTggICAgIChiYXNlIDE2KQkJRnJhdW5ob2ZlciBJTVMKKwkJCQlGaW5rZW5zdHJhc3NlIDYxCisJCQkJRHVpc2J1cmcgTlJXIDQ3MDU3CisJCQkJR0VSTUFOWQorCiswMC0xMi1FOSAgIChoZXgpCQlBYmJleSBTeXN0ZW1zIEx0ZAorMDAxMkU5ICAgICAoYmFzZSAxNikJCUFiYmV5IFN5c3RlbXMgTHRkCisJCQkJTGV2ZWwgNCwgMjIwIFdpbGxpcyBTdAorCQkJCVBPIEJveCAyNy00OTcKKwkJCQlXZWxsaW5ndG9uICA2MDMwCisJCQkJTkVXIFpFQUxBTkQKKworMDAtMTItRUEgICAoaGV4KQkJVHJhbmUKKzAwMTJFQSAgICAgKGJhc2UgMTYpCQlUcmFuZQorCQkJCTQ4MzMgV2hpdGUgQmVhciBQYXJrd2F5CisJCQkJU3QuIFBhdWwgTU4gNTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUVCICAgKGhleCkJCVIyREksIExMQworMDAxMkVCICAgICAoYmFzZSAxNikJCVIyREksIExMQworCQkJCTI1NzUgTkUgS2F0aHJ5biBTdC4KKwkJCQlTdWl0ZSAxNAorCQkJCUhpbGxzYm9ybyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItRUMgICAoaGV4KQkJTW92YWNvbG9yIGIudi4KKzAwMTJFQyAgICAgKGJhc2UgMTYpCQlNb3ZhY29sb3IgYi52LgorCQkJCUtvcGVyc2xhZ2Vyc3N0cmFhdCAzMQorCQkJCVNuZWVrIEZyaWVzbGFuZCA4NjAxIFdMCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTItRUQgICAoaGV4KQkJQVZHIEFkdmFuY2VkIFRlY2hub2xvZ2llcworMDAxMkVEICAgICAoYmFzZSAxNikJCUFWRyBBZHZhbmNlZCBUZWNobm9sb2dpZXMKKwkJCQk0MTQwIFV0aWNhIFJpZGdlIFJvYWQKKwkJCQlCZXR0ZW5kb3JmIElBIDUyNzIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1FRSAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorMDAxMkVFICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKKzAwLTEyLUVGICAgKGhleCkJCU9uZUFjY2VzcyBTQQorMDAxMkVGICAgICAoYmFzZSAxNikJCU9uZUFjY2VzcyBTQQorCQkJCTI4IHJ1ZSBkZSBsYSBSZWRvdXRlCisJCQkJRm9udGVuYXkgYXV4IFJvc2VzICA5MjI2MAorCQkJCUZSQU5DRQorCiswMC0xMi1GMCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMTJGMCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktdGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTEyLUYxICAgKGhleCkJCUlGT1RFQworMDAxMkYxICAgICAoYmFzZSAxNikJCUlGT1RFQworCQkJCVpBQyBDaGFtcGZldWlsbGV0CisJCQkJQlAyNDcKKwkJCQlWT0lST04gIDM4NTA3CisJCQkJRlJBTkNFCisKKzAwLTEyLUYyICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCiswMDEyRjIgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItRjMgICAoaGV4KQkJY29ubmVjdEJsdWUgQUIKKzAwMTJGMyAgICAgKGJhc2UgMTYpCQljb25uZWN0Qmx1ZSBBQgorCQkJCU5vcnJhIFZhbGxnYXRhbiA2NAorCQkJCU1hbG1vZSAgU0UtMjExIDIyCisJCQkJU1dFREVOCisKKzAwLTEyLUY0ICAgKGhleCkJCUJlbGNvIEludGVybmF0aW9uYWwgQ28uLEx0ZC4KKzAwMTJGNCAgICAgKGJhc2UgMTYpCQlCZWxjbyBJbnRlcm5hdGlvbmFsIENvLixMdGQuCisJCQkJMjEyLCBZZW9rb2stRG9uZywgV29ubWktZ3UKKwkJCQlQdWNodW4tU2kgS3lvbmdraS1EbyA0MjAtMTAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLUY1ICAgKGhleCkJCUltYXJkYSBOZXcgWmVhbGFuZCBMaW1pdGVkCiswMDEyRjUgICAgIChiYXNlIDE2KQkJSW1hcmRhIE5ldyBaZWFsYW5kIExpbWl0ZWQKKwkJCQlTdWl0ZSBHMTYsIE5hdGlvbmFsIElubm92YXRpb24gQ2VudHJlLAorCQkJCUF1c3RyYWxpYW4gVGVjaG5vbG9neSBQYXJrLAorCQkJCUV2ZWxlaWdoIE5TVyAgIDIwMTUKKwkJCQlORVcgWkVBTEFORAorCiswMC0xMi1GNiAgIChoZXgpCQlNREsgQ08uLExURC4KKzAwMTJGNiAgICAgKGJhc2UgMTYpCQlNREsgQ08uLExURC4KKwkJCQkyLTYtMjcgSWJhcmFtZQorCQkJCUthc2hpd2F6YWtpIENpdHkgTmlpZ2F0YSA5NDUxMzQxCisJCQkJSkFQQU4KKworMDAtMTItRjcgICAoaGV4KQkJWGlhbWVuIFhpbmdsaWFuIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxMkY3ICAgICAoYmFzZSAxNikJCVhpYW1lbiBYaW5nbGlhbiBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQlYaW5nbGlhbiBFbGVjdHJvbmljcyAoWGluZ3RlbCkgQnVpbGRpbmcsQ2h1YW5neGluIFJvYWQsCisJCQkJVG9yY2ggSGktVGVjaCBJbmR1c3RyaWFsIERpc3RyaWN0LAorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA2CisJCQkJQ0hJTkEKKworMDAtMTItRjggICAoaGV4KQkJV05JIFJlc291cmNlcywgTExDCiswMDEyRjggICAgIChiYXNlIDE2KQkJV05JIFJlc291cmNlcywgTExDCisJCQkJMjE0NiBCZXJpbmcgRHJpdmUKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTMxLTIwMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUY5ICAgKGhleCkJCVVSWVUgU0VJU0FLVSwgTFRELgorMDAxMkY5ICAgICAoYmFzZSAxNikJCVVSWVUgU0VJU0FLVSwgTFRELgorCQkJCTEtMi0xMQorCQkJCUZVS0FFLU1JTkFNSQorCQkJCUhJR0FTSElOQVJJLUtVIE9TQUtBIDUzNy0wMDAyCisJCQkJSkFQQU4KKworMDAtMTItRkEgICAoaGV4KQkJVEhYIExURAorMDAxMkZBICAgICAoYmFzZSAxNikJCVRIWCBMVEQKKwkJCQk1MjAxIEdyZWF0IEFtZXJpY2EgUGFya3dheQorCQkJCVN1aXRlIDMyMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1GQiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCiswMDEyRkIgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCTQxNiwgTWFldGFuLTNEb25nLCBZZW9uZ3RvbmctR3UKKwkJCQlTdXdvbi1DaXR5IEd5ZW9uZ2dpLURvIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTItRkMgICAoaGV4KQkJUExBTkVUIFN5c3RlbSBDby4sTFRECiswMDEyRkMgICAgIChiYXNlIDE2KQkJUExBTkVUIFN5c3RlbSBDby4sTFRECisJCQkJNHRoIEZsb29yLCBEYWVoYW4gQi9ELCA4NzMtMjksCisJCQkJQmFuZ2JhZTQtRG9uZywgU2VvY2hvLUt1LAorCQkJCVNlb3VsICAxMzctMDY0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLUZEICAgKGhleCkJCU9QVElNVVMgSUMgUy5BLgorMDAxMkZEICAgICAoYmFzZSAxNikJCU9QVElNVVMgSUMgUy5BLgorCQkJCU5BV09KT1dTS0EgMTE4CisJCQkJTk9XWSBTQUNaIE1BTE9QT0xTS0EgMzMtMzAwCisJCQkJUE9MQU5ECisKKzAwLTEyLUZFICAgKGhleCkJCUxlbm92byBNb2JpbGUgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IEx0ZC4KKzAwMTJGRSAgICAgKGJhc2UgMTYpCQlMZW5vdm8gTW9iaWxlIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBMdGQuCisJCQkJWGlhbWVuIE92ZXJzZWFzIENoaW5lc2UgRWxlY3Ryb25pYyBTY2llbmNlIFBhcmssSHVvanUgSGlnaCBUZWNobm9sb2d5IERldmVsb3BtZW50IFpvbmUKKwkJCQlYSUEgTUVOIEZVIEpJQU4gMzYxMDA5CisJCQkJQ0hJTkEKKworMDAtMTItRkYgICAoaGV4KQkJTGVseSBJbmR1c3RyaWVzIE4uVi4KKzAwMTJGRiAgICAgKGJhc2UgMTYpCQlMZWx5IEluZHVzdHJpZXMgTi5WLgorCQkJCVdldmVyc2thZGUgMTEwCisJCQkJTWFhc3NsdWlzIFp1aWQtSG9sbGFuZCAzMTQ3UEEKKwkJCQlORVRIRVJMQU5EUworCiswMC0xMy0wMCAgIChoZXgpCQlJVC1GQUNUT1JZLCBJTkMuCiswMDEzMDAgICAgIChiYXNlIDE2KQkJSVQtRkFDVE9SWSwgSU5DLgorCQkJCTEtMTYtMjYgVEFLQUdJIE1JTkFNSS1LVQorCQkJCUZVS1VPS0EtU0hJIEZVS1VPS0EtS0VOIDgxNS0wMDA0CisJCQkJSkFQQU4KKworMDAtMTMtMDEgICAoaGV4KQkJSXJvbkdhdGUgUy5MLgorMDAxMzAxICAgICAoYmFzZSAxNikJCUlyb25HYXRlIFMuTC4KKwkJCQlDXEFsY2FsYSAyNjgsIHByaW1lcmEgcGxhbnRhCisJCQkJTWFkcmlkICAyODAyNworCQkJCVNQQUlOCisKKzAwLTEzLTAyICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxMzAyICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS10ZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTMtMDMgICAoaGV4KQkJR2F0ZUNvbm5lY3QgVGVjaG5vbG9naWVzIEdtYkgKKzAwMTMwMyAgICAgKGJhc2UgMTYpCQlHYXRlQ29ubmVjdCBUZWNobm9sb2dpZXMgR21iSAorCQkJCUFnYXN0cmFzc2UgMjQgUjIKKwkJCQkxMjQ4OSBCZXJsaW4gIDEyNDg5CisJCQkJR0VSTUFOWQorCiswMC0xMy0wNCAgIChoZXgpCQlGbGFpcmNvbW0gVGVjaG5vbG9naWVzIENvLiBMVEQKKzAwMTMwNCAgICAgKGJhc2UgMTYpCQlGbGFpcmNvbW0gVGVjaG5vbG9naWVzIENvLiBMVEQKKwkJCQkyMDg4IEh1YXNoYW4gUm9hZAorCQkJCVNvdXRoIEh1aXlpbiBCbGRnLiAjMjMwNgorCQkJCVNoYW5naGFpICAyMDAwMzAKKwkJCQlDSElOQQorCiswMC0xMy0wNSAgIChoZXgpCQlFcGljb20sIEluYy4KKzAwMTMwNSAgICAgKGJhc2UgMTYpCQlFcGljb20sIEluYy4KKwkJCQlQTyBCb3ggMTYxMzAKKwkJCQlPYWtsYW5kIENBIDk0NjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0wNiAgIChoZXgpCQlBbHdheXMgT24gV2lyZWxlc3MKKzAwMTMwNiAgICAgKGJhc2UgMTYpCQlBbHdheXMgT24gV2lyZWxlc3MKKwkJCQkzNzAxIEtpcmJ5IERyCisJCQkJU3VpdGUgMTA5MAorCQkJCUhvdXN0b24gVFggNzcwOTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTA3ICAgKGhleCkJCVBhcmF2aXJ0dWFsIENvcnBvcmF0aW9uCiswMDEzMDcgICAgIChiYXNlIDE2KQkJUGFyYXZpcnR1YWwgQ29ycG9yYXRpb24KKwkJCQkyOTUzIEJ1bmtlciBIaWxsIExhbmUKKwkJCQlTdWl0ZSA0MDYKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMDggICAoaGV4KQkJTnV2ZXJhIEZ1ZWwgQ2VsbHMKKzAwMTMwOCAgICAgKGJhc2UgMTYpCQlOdXZlcmEgRnVlbCBDZWxscworCQkJCTEyOSBDb25jb3JkIFJvYWQsICMxCisJCQkJQmlsbGVyaWNhIE1BIDAxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0wOSAgIChoZXgpCQlPY2VhbiBCcm9hZGJhbmQgTmV0d29ya3MKKzAwMTMwOSAgICAgKGJhc2UgMTYpCQlPY2VhbiBCcm9hZGJhbmQgTmV0d29ya3MKKwkJCQkyMDc4IFdhbHNoIEF2ZSwgU3VpdGUgQgorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTBBICAgKGhleCkJCU5vcnRlbAorMDAxMzBBICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTEzLTBCICAgKGhleCkJCU1leHRhbCBCLlYuCiswMDEzMEIgICAgIChiYXNlIDE2KQkJTWV4dGFsIEIuVi4KKwkJCQlEZSBUaWVuZGVuIDQ4CisJCQkJTnVlbmVuIE5vb3JkIEJyYWJhbnQgNTY3NFRCCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTMtMEMgICAoaGV4KQkJSEYgU3lzdGVtIENvcnBvcmF0aW9uCiswMDEzMEMgICAgIChiYXNlIDE2KQkJSEYgU3lzdGVtIENvcnBvcmF0aW9uCisJCQkJMTUyMC0xIEF5dWthaQorCQkJCVNoaXJhdGFrYS1NYWNoaQorCQkJCU5pc2hpb2tpdGFtYS1HdW4gWWFtYWdhdGEtS2VuIDk5Mi0wNzcxCisJCQkJSkFQQU4KKworMDAtMTMtMEQgICAoaGV4KQkJR0FMSUxFTyBBVklPTklDQQorMDAxMzBEICAgICAoYmFzZSAxNikJCUdBTElMRU8gQVZJT05JQ0EKKwkJCQlWSUFMRSBFVVJPUEEKKwkJCQkgTkVSVklBTk8gTUlMQU5PIDIwMDE0CisJCQkJSVRBTFkKKworMDAtMTMtMEUgICAoaGV4KQkJRm9jdXNyaXRlIEF1ZGlvIEVuZ2luZWVyaW5nIExpbWl0ZWQKKzAwMTMwRSAgICAgKGJhc2UgMTYpCQlGb2N1c3JpdGUgQXVkaW8gRW5naW5lZXJpbmcgTGltaXRlZAorCQkJCTE5IExpbmNvbG4gUm9hZAorCQkJCUNyZXNzZXggQnVzaW5lc3MgUGFyaworCQkJCUhpZ2ggV3ljb21iZSBCdWNrcyBIUDEyIDNGWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEzLTBGICAgKGhleCkJCUVHRU1FTiBCaWxnaXNheWFyIE11aCBTYW4gdmUgVGljIExURCBTVEkKKzAwMTMwRiAgICAgKGJhc2UgMTYpCQlFR0VNRU4gQmlsZ2lzYXlhciBNdWggU2FuIHZlIFRpYyBMVEQgU1RJCisJCQkJRmV2emkgQ2FrbWFrIDIgU29rIDMxL0EKKwkJCQlLSVpJTEFZCisJCQkJQU5LQVJBIENBTktBWUEgMDY0NDAKKwkJCQlUVVJLRVkKKworMDAtMTMtMTAgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCiswMDEzMTAgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeQorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMTEgICAoaGV4KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorMDAxMzExICAgICAoYmFzZSAxNikJCUFSUklTIEludGVybmF0aW9uYWwKKwkJCQkzODcxIExha2VmaWVsZCBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCVN1d2FuZWUgR0EgMzAwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTEyICAgKGhleCkJCUFtZWRpYSBOZXR3b3JrcyBJbmMuCiswMDEzMTIgICAgIChiYXNlIDE2KQkJQW1lZGlhIE5ldHdvcmtzIEluYy4KKwkJCQkxMDEgQ3Jhd2ZvcmRzIENvcm5lciBSZAorCQkJCUhvbG1kZWwgTkogMDc3MzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTEzICAgKGhleCkJCUd1YW5nWmhvdSBQb3N0ICYgVGVsZWNvbSBFcXVpcG1lbnQgbHRkCiswMDEzMTMgICAgIChiYXNlIDE2KQkJR3VhbmdaaG91IFBvc3QgJiBUZWxlY29tIEVxdWlwbWVudCBsdGQKKwkJCQkxMzkjIFpob25nc2hhbiBBdmUKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDYzMAorCQkJCUNISU5BCisKKzAwLTEzLTE0ICAgKGhleCkJCUFzaWFtYWpvciBJbmMuCiswMDEzMTQgICAgIChiYXNlIDE2KQkJQXNpYW1ham9yIEluYy4KKwkJCQk2Ri05LCBOby4gMjY4LCBMaWFuLUNoZW5nIFJkLiwgSnVuZ2hlIENpdHksCisJCQkJVGFpcGVpICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTE1ICAgKGhleCkJCVNPTlkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBpbmMsCiswMDEzMTUgICAgIChiYXNlIDE2KQkJU09OWSBDb21wdXRlciBFbnRlcnRhaW5tZW50IGluYywKKwkJCQkyLTYtMjEgTWluYW1pLUFveWFtYSwKKwkJCQlNaW5hdG8tS3UgVG9reW8gMTA3LTAwNjIKKwkJCQlKQVBBTgorCiswMC0xMy0xNiAgIChoZXgpCQlMLVMtQiBCcm9hZGNhc3QgVGVjaG5vbG9naWVzIEdtYkgKKzAwMTMxNiAgICAgKGJhc2UgMTYpCQlMLVMtQiBCcm9hZGNhc3QgVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlHdXN0YXYtU3RyZXNlbWFubi1TdHIuIDgKKwkJCQlCaW5nZW4gUmhlaW5sYW5kLVBmYWx6IDU1NDExCisJCQkJR0VSTUFOWQorCiswMC0xMy0xNyAgIChoZXgpCQlHTiBOZXRjb20gYXMKKzAwMTMxNyAgICAgKGJhc2UgMTYpCQlHTiBOZXRjb20gYXMKKwkJCQlNZXRhbGJ1ZW4gNjYKKwkJCQlQLk8uQm94IDIwMQorCQkJCUJhbGxlcnVwIFNrb3ZsdW5kZSBESy0yNzUwCisJCQkJREVOTUFSSworCiswMC0xMy0xOCAgIChoZXgpCQlER1NUQVRJT04gQ28uLCBMdGQuCiswMDEzMTggICAgIChiYXNlIDE2KQkJREdTVEFUSU9OIENvLiwgTHRkLgorCQkJCVJtLjQwMSwgQmxkZy5BLCBCdW5kYW5nIFRlY2hubyBQYXJrIDE1MCwgWWF0YXAtRG9uZywgQnVuZGFuZy1HdSwgU3VuZ25hbS1TaSwgR3l1bmdnaS1EbywgNDYzLTc2MCwgS29yZWEKKwkJCQlTdW5nbmFtIEd5dW5nZ2kgNDYzLTc2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy0xOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDEzMTkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0xQSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDEzMUEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0xQiAgIChoZXgpCQlCZUNlbGwgSW5ub3ZhdGlvbnMgQ29ycC4KKzAwMTMxQiAgICAgKGJhc2UgMTYpCQlCZUNlbGwgSW5ub3ZhdGlvbnMgQ29ycC4KKwkJCQkxMkYtOSwgTm8uIDc5LCBTaGluLVRhaSA1dGggUmQgU2VjIDEsCisJCQkJU2hpaC1jaGloLCBUYWlwZWkgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy0xQyAgIChoZXgpCQlMaXRlVG91Y2gsIEluYy4KKzAwMTMxQyAgICAgKGJhc2UgMTYpCQlMaXRlVG91Y2gsIEluYy4KKwkJCQkzNDAwIFNvdXRoIFdlc3QgVGVtcGxlCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTFEICAgKGhleCkJCVNjYW52YWVndCBJbnRlcm5hdGlvbmFsIEEvUworMDAxMzFEICAgICAoYmFzZSAxNikJCVNjYW52YWVndCBJbnRlcm5hdGlvbmFsIEEvUworCQkJCVAuTy5QZWRlcnNlbnMgdmVqIDE4CisJCQkJQWFyaHVzIEp5bGxhbmQgODIwMCBOCisJCQkJREVOTUFSSworCiswMC0xMy0xRSAgIChoZXgpCQlQZWlrZXIgYWN1c3RpYyBHbWJIICYgQ28uIEtHCiswMDEzMUUgICAgIChiYXNlIDE2KQkJUGVpa2VyIGFjdXN0aWMgR21iSCAmIENvLiBLRworCQkJCU1heC1QbGFuY2stU3RyYXNzZSAzMgorCQkJCUZyaWVkcmljaHNkb3JmIEhlc3NlbiA2MTM4MQorCQkJCUdFUk1BTlkKKworMDAtMTMtMUYgICAoaGV4KQkJTnh0UGhhc2UgVCZELCBDb3JwLgorMDAxMzFGICAgICAoYmFzZSAxNikJCU54dFBoYXNlIFQmRCwgQ29ycC4KKwkJCQkzMDQwIEUuIEJyb2Fkd2F5CisJCQkJVmFuY291dmVyIEJDIFY1TSAxWjQKKwkJCQlDQU5BREEKKworMDAtMTMtMjAgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDEzMjAgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLXRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xMy0yMSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMTMyMSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDcwNDA1CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMjIgICAoaGV4KQkJREFRIEVsZWN0cm9uaWNzLCBJbmMuCiswMDEzMjIgICAgIChiYXNlIDE2KQkJREFRIEVsZWN0cm9uaWNzLCBJbmMuCisJCQkJMjYyQiBPbGQgTmV3IEJydW5zd2ljayBSb2FkCisJCQkJUGlzY2F0YXdheSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMjMgICAoaGV4KQkJQ2FwIENvLiwgTHRkLgorMDAxMzIzICAgICAoYmFzZSAxNikJCUNhcCBDby4sIEx0ZC4KKwkJCQkxMUYsNjg0LTIsZGV1bmdjaG9uIDMtZG9uZyxnYW5nc2VvLWd1CisJCQkJU2VvdWwgIDE1Ny03NTQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtMjQgICAoaGV4KQkJU2NobmVpZGVyIEVsZWN0cmljIFVsdHJhIFRlcm1pbmFsCiswMDEzMjQgICAgIChiYXNlIDE2KQkJU2NobmVpZGVyIEVsZWN0cmljIFVsdHJhIFRlcm1pbmFsCisJCQkJSW5kdXN0cmlwYXJrZW4gMzIKKwkJCQlDb3BlbmhhZ2VuICAyNzUwCisJCQkJREVOTUFSSworCiswMC0xMy0yNSAgIChoZXgpCQlDb3J0aW5hIFN5c3RlbXMgSW5jCiswMDEzMjUgICAgIChiYXNlIDE2KQkJQ29ydGluYSBTeXN0ZW1zIEluYworCQkJCTg0MCBXIENhbGlmb3JuaWEgQXZlLCBTdWl0ZSAxMDAKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTI2ICAgKGhleCkJCUVDTSBTeXN0ZW1zIEx0ZAorMDAxMzI2ICAgICAoYmFzZSAxNikJCUVDTSBTeXN0ZW1zIEx0ZAorCQkJCUVsbGlmb290IFBhcmsKKwkJCQlCdXJzdHdpY2sKKwkJCQlIVUxMIEVhc3QgWW9ya3NoaXJlIEhVMTIgOURaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTMtMjcgICAoaGV4KQkJRGF0YSBBY3F1aXNpdGlvbnMgbGltaXRlZAorMDAxMzI3ICAgICAoYmFzZSAxNikJCURhdGEgQWNxdWlzaXRpb25zIGxpbWl0ZWQKKwkJCQk4NCBHYXNzb24gc3RyZWV0CisJCQkJQ2hyaXN0Y2h1cmNoICAKKwkJCQlORVcgWkVBTEFORAorCiswMC0xMy0yOCAgIChoZXgpCQlXZXN0ZWNoIEtvcmVhIEluYy4sCiswMDEzMjggICAgIChiYXNlIDE2KQkJV2VzdGVjaCBLb3JlYSBJbmMuLAorCQkJCTU0OC05LCBHYWp3YTMtRG9uZyxTZW8ta3UsCisJCQkJSW5jaGVvbiAgNDA0LTgxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy0yOSAgIChoZXgpCQlWU1NUIENvLiwgTFRECiswMDEzMjkgICAgIChiYXNlIDE2KQkJVlNTVCBDby4sIExURAorCQkJCXN1aXQgMzIwMiwgS29yZWEgV29ybGQgVHJhZGUgQ2VudGVyIDE1OS0xCisJCQkJU2Ftc3VuZy1Eb25nLCBLYW5nbmFtLUd1CisJCQkJU2VvdWwgIDEzNS03MjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtMkEgICAoaGV4KQkJU2l0cm9uaWNzIFRlbGVjb20gU29sdXRpb25zCiswMDEzMkEgICAgIChiYXNlIDE2KQkJU2l0cm9uaWNzIFRlbGVjb20gU29sdXRpb25zCisJCQkJTWljaGVsc2thIDYwCisJCQkJUHJhZ3VlIFByYWd1ZSA0IC0gTWljaGxlIDE0MCAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTEzLTJCICAgKGhleCkJCVBob2VuaXggRGlnaXRhbAorMDAxMzJCICAgICAoYmFzZSAxNikJCVBob2VuaXggRGlnaXRhbAorCQkJCTc2NTAgRWFzdCBFdmFucyBSZC4gQmxkZy4gQQorCQkJCVNjb3R0c2RhbGUgQXogODUyNjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTJDICAgKGhleCkJCU1BWiBCcmFuZGVuYnVyZyBHbWJICiswMDEzMkMgICAgIChiYXNlIDE2KQkJTUFaIEJyYW5kZW5idXJnIEdtYkgKKwkJCQlNaWVsZXN0cmFzc2UgMgorCQkJCVdlcmRlciBCcmFuZGVuYnVyZyAxNDU0MgorCQkJCUdFUk1BTlkKKworMDAtMTMtMkQgICAoaGV4KQkJaVdpc2UgQ29tbXVuaWNhdGlvbnMKKzAwMTMyRCAgICAgKGJhc2UgMTYpCQlpV2lzZSBDb21tdW5pY2F0aW9ucworCQkJCVVuaXQgM0MsIEFyZGVuIEdyb3ZlCisJCQkJUmFjZWNvdXJzZSBSZCxNb250YWd1IEdhcmRlbnMKKwkJCQlDYXBlIFRvd24gIDc0NDEKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMTMtMkUgICAoaGV4KQkJSVRpYW4gQ29wb3JhdGlvbgorMDAxMzJFICAgICAoYmFzZSAxNikJCUlUaWFuIENvcG9yYXRpb24KKwkJCQk0RiBZb3VuZ2hvIEJkLjE2MDUtMSBTZW9jaG8tZG9uZworCQkJCVNlb2Noby1ndQorCQkJCVNlb3VsICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLTJGICAgKGhleCkJCUludGVyYWN0ZWsKKzAwMTMyRiAgICAgKGJhc2UgMTYpCQlJbnRlcmFjdGVrCisJCQkJU2lnbWFsIDIgQkxERyAjQy0zMTksIDE4IEt1bWktZG9uZworCQkJCVB1bmRhbmcta3UKKwkJCQlTZW9uZ25hbSBLeXVuZy1naSA0NjMtNzQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLTMwICAgKGhleCkJCUVVUk8gUFJPVEVDVElPTiBTVVJWRUlMTEFOQ0UKKzAwMTMzMCAgICAgKGJhc2UgMTYpCQlFVVJPIFBST1RFQ1RJT04gU1VSVkVJTExBTkNFCisJCQkJMzAgUnVlIGR1IERvdWJzCisJCQkJU1RSQVNCT1VSRyAgNjcxMDAKKwkJCQlGUkFOQ0UKKworMDAtMTMtMzEgICAoaGV4KQkJQ2VsbFBvaW50IENvbm5lY3QKKzAwMTMzMSAgICAgKGJhc2UgMTYpCQlDZWxsUG9pbnQgQ29ubmVjdAorCQkJCUJpbGxlZHZlaiA0CisJCQkJQ29wZW5oYWdlbiAgMjEwMAorCQkJCURFTk1BUksKKworMDAtMTMtMzIgICAoaGV4KQkJQmVpamluZyBUb3BzZWMgTmV0d29yayBTZWN1cml0eSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxMzMyICAgICAoYmFzZSAxNikJCUJlaWppbmcgVG9wc2VjIE5ldHdvcmsgU2VjdXJpdHkgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlIdWFrb25nIFRvd2VyCisJCQkJTm8uIDEgU2hhbmdkaSBFYXN0IFJvYWQKKwkJCQlIYWlkaWFuIERpc3RyaWN0IEJlaWppbmcgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMTMtMzMgICAoaGV4KQkJQmF1ZFRlYyBDb3Jwb3JhdGlvbgorMDAxMzMzICAgICAoYmFzZSAxNikJCUJhdWRUZWMgQ29ycG9yYXRpb24KKwkJCQkxMkYsIE5PLjE4MSwgU2VjLiAgMS4gVGF0dW5nIFJkLiwKKwkJCQlIc2ljaGloIFRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTM0ICAgKGhleCkJCUFya2Fkb3MsIEluYy4KKzAwMTMzNCAgICAgKGJhc2UgMTYpCQlBcmthZG9zLCBJbmMuCisJCQkJOTQ4IFVTIEhXWSAyMgorCQkJCU5vcnRoIFBsYWluZmllbGQgTkogMDcwNjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTM1ICAgKGhleCkJCVZTIEluZHVzdHJ5IEJlcmhhZAorMDAxMzM1ICAgICAoYmFzZSAxNikJCVZTIEluZHVzdHJ5IEJlcmhhZAorCQkJCVBsbyA0NywgU2VuYWkgSW5kLiBFc3QuIElJLAorCQkJCVNlbmFpIEpvaG9yIDgxNDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTMtMzYgICAoaGV4KQkJVGlhbmppbiA3MTIgQ29tbXVuaWNhdGlvbiBCcm9hZGNhc3RpbmcgY28uLCBsdGQuCiswMDEzMzYgICAgIChiYXNlIDE2KQkJVGlhbmppbiA3MTIgQ29tbXVuaWNhdGlvbiBCcm9hZGNhc3RpbmcgY28uLCBsdGQuCisJCQkJTm8uMTg1LCBYaW5kYSBSb2FkLCBIZWJlaSBEaXN0cmljdAorCQkJCVRpYW5qaW4gIDMwMDE0MAorCQkJCUNISU5BCisKKzAwLTEzLTM3ICAgKGhleCkJCU9yaWVudCBQb3dlciBIb21lIE5ldHdvcmsgTHRkLgorMDAxMzM3ICAgICAoYmFzZSAxNikJCU9yaWVudCBQb3dlciBIb21lIE5ldHdvcmsgTHRkLgorCQkJCTMwNyBIYXJib3VyIENlbnRyZSwgVG93ZXIgMSwKKwkJCQkxIEhvayBDaGV1bmcgU3RyZWV0LCBIdW5nIEhvbQorCQkJCUhPTkcgS09ORworCiswMC0xMy0zOCAgIChoZXgpCQlGUkVTRU5JVVMtVklBTAorMDAxMzM4ICAgICAoYmFzZSAxNikJCUZSRVNFTklVUy1WSUFMCisJCQkJTGUgR3JhbmQgQ2hlbWluCisJCQkJQlJFWklOUyAgMzg1OTAKKwkJCQlGUkFOQ0UKKworMDAtMTMtMzkgICAoaGV4KQkJRUwtTUUgQUcKKzAwMTMzOSAgICAgKGJhc2UgMTYpCQlFTC1NRSBBRworCQkJCUdld2VyYmVyaW5nIDEKKwkJCQlBdSBpLiBkLiBIYWxsZXJ0YXUgQmF5ZXJuIDg0MDcyCisJCQkJR0VSTUFOWQorCiswMC0xMy0zQSAgIChoZXgpCQlWYWRhVGVjaCBJbmMuCiswMDEzM0EgICAgIChiYXNlIDE2KQkJVmFkYVRlY2ggSW5jLgorCQkJCTExNTQwIFMuIEVhc3Rlcm4gQXZlbnVlCisJCQkJSGVuZGVyc29uIE5ldmFkYSA4OTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtM0IgICAoaGV4KQkJU3BlZWQgRHJhZ29uIE11bHRpbWVkaWEgTGltaXRlZAorMDAxMzNCICAgICAoYmFzZSAxNikJCVNwZWVkIERyYWdvbiBNdWx0aW1lZGlhIExpbWl0ZWQKKwkJCQlSb29tIDEzMTIsIFZhbnRhIEluZHVzdHJpYWwgQ2VudHJlLAorCQkJCTMzIFRhaSBMaW4gUGFpIFJvYWQsCisJCQkJS3dhaSBDaHVuZyBOLlQuIAorCQkJCUhPTkcgS09ORworCiswMC0xMy0zQyAgIChoZXgpCQlRVUlOVFJPTiBTWVNURU1TIElOQy4KKzAwMTMzQyAgICAgKGJhc2UgMTYpCQlRVUlOVFJPTiBTWVNURU1TIElOQy4KKwkJCQkyMTA1IFNPLiBCTE9TU0VSIFJPQUQKKwkJCQlTQU5UQSBNQVJJQSBDQUxJRk9STklBIDkzNDU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0zRCAgIChoZXgpCQlNaWNybyBNZW1vcnkgQ3VydGlzcyBXcmlnaHQgQ28KKzAwMTMzRCAgICAgKGJhc2UgMTYpCQlNaWNybyBNZW1vcnkgQ3VydGlzcyBXcmlnaHQgQ28KKwkJCQk5NTQwIFZhc3NhciBBdmVudWUKKwkJCQlDaGF0c3dvcnRoIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0zRSAgIChoZXgpCQlNZXRhU3dpdGNoCiswMDEzM0UgICAgIChiYXNlIDE2KQkJTWV0YVN3aXRjaAorCQkJCTE0MTEgSGFyYm9yIEJheSBQYXJrd2F5CisJCQkJU3VpdGUgMTAwMworCQkJCUFsYW1lZGEgQ0EgOTQ1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTNGICAgKGhleCkJCUVwcGVuZG9yZiBJbnN0cnVtZW50ZSBHbWJICiswMDEzM0YgICAgIChiYXNlIDE2KQkJRXBwZW5kb3JmIEluc3RydW1lbnRlIEdtYkgKKwkJCQlCYXJraGF1c2Vud2VnIDEKKwkJCQlBYnRsLiBJSC1GRQorCQkJCUhhbWJ1cmcgREUgMjIzMzkKKwkJCQlHRVJNQU5ZCisKKzAwLTEzLTQwICAgKGhleCkJCUFELkVMIHMuci5sLgorMDAxMzQwICAgICAoYmFzZSAxNikJCUFELkVMIHMuci5sLgorCQkJCXZpYSBTLiBQZXJ0aW5pLDUKKwkJCQlNYXJ0ZWxsYWdvIFZFTkVaSUEgMzAwMzAKKwkJCQlJVEFMWQorCiswMC0xMy00MSAgIChoZXgpCQlTaGFuZG9uZyBOZXcgQmVpeWFuZyBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLixMdGQKKzAwMTM0MSAgICAgKGJhc2UgMTYpCQlTaGFuZG9uZyBOZXcgQmVpeWFuZyBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlOTy4xMSBYaW53ZWkgUm9hZAorCQkJCVdlaWhhaSBjaXR5IFNoYW5kb25nIDI2NDIwMAorCQkJCUNISU5BCisKKzAwLTEzLTQyICAgKGhleCkJCVZpc2lvbiBSZXNlYXJjaCwgSW5jLgorMDAxMzQyICAgICAoYmFzZSAxNikJCVZpc2lvbiBSZXNlYXJjaCwgSW5jLgorCQkJCTEwMCBEZXkgUm9hZAorCQkJCVdheW5lIE5KIDA3NDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy00MyAgIChoZXgpCQlNYXRzdXNoaXRhIEVsZWN0cm9uaWMgQ29tcG9uZW50cyAoRXVyb3BlKSBHbWJICiswMDEzNDMgICAgIChiYXNlIDE2KQkJTWF0c3VzaGl0YSBFbGVjdHJvbmljIENvbXBvbmVudHMgKEV1cm9wZSkgR21iSAorCQkJCVplcHBlbGluc3RyYXNzZSAxOQorCQkJCUx1ZW5lYnVyZyBOaWVkZXJzYWNoc2VuIDIxMzM3CisJCQkJR0VSTUFOWQorCiswMC0xMy00NCAgIChoZXgpCQlGYXJnbyBFbGVjdHJvbmljcyBJbmMuCiswMDEzNDQgICAgIChiYXNlIDE2KQkJRmFyZ28gRWxlY3Ryb25pY3MgSW5jLgorCQkJCTY1MzMgRmx5aW5nIENsb3VkIERyaXZlCisJCQkJRWRlbiBQcmFpcmllIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy00NSAgIChoZXgpCQlFYXRvbiBDb3Jwb3JhdGlvbgorMDAxMzQ1ICAgICAoYmFzZSAxNikJCUVhdG9uIENvcnBvcmF0aW9uCisJCQkJNDIwMSBOb3J0aCAyN3RoIFN0cmVldAorCQkJCU1pbHdhdWtlZSBXaXNjb25zaW4gNTMyMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTQ2ICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxMzQ2ICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCTJGLCBOby4yMzMtMiwgUGFvLUNoaWFvIFJvYWQKKwkJCQlIc2luLVRpZW4sIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTQ3ICAgKGhleCkJCUJsdWVUcmVlIFdpcmVsZXNzIERhdGEgSW5jLgorMDAxMzQ3ICAgICAoYmFzZSAxNikJCUJsdWVUcmVlIFdpcmVsZXNzIERhdGEgSW5jLgorCQkJCTI0MjUgNDZlIEF2ZW51ZQorCQkJCUxhY2hpbmUgUXVlYmVjIEg4VCAzQzkKKwkJCQlDQU5BREEKKworMDAtMTMtNDggICAoaGV4KQkJQXJ0aWxhIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxMzQ4ICAgICAoYmFzZSAxNikJCUFydGlsYSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkyRi4sIE5vLjEsIEFsbGV5IDgsIFNpd2VpIExhbmUsIFpob25nemhlbmcgUmQuLAorCQkJCVhpbmRpYW4gQ2l0eSBUYWlwZWkgQ291bnR5IDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtNDkgICAoaGV4KQkJWnlYRUwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzAwMTM0OSAgICAgKGJhc2UgMTYpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorCQkJCU5vLiA2LCBJbm5vdmF0aW9uIFJvYWQgSUkgU2NpZW5jZSBQYXJrCisJCQkJSHNpbi1DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtNEEgICAoaGV4KQkJRW5naW0sIEluYy4KKzAwMTM0QSAgICAgKGJhc2UgMTYpCQlFbmdpbSwgSW5jLgorCQkJCTQwIE5hZ29nIFBhcmsKKwkJCQlBY3RvbiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNEIgICAoaGV4KQkJVG9Hb2xkZW5OZXQgVGVjaG5vbG9neSBJbmMuCiswMDEzNEIgICAgIChiYXNlIDE2KQkJVG9Hb2xkZW5OZXQgVGVjaG5vbG9neSBJbmMuCisJCQkJNUYtMSBOby4yNSxQdS1kaW5nLiwKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy00QyAgIChoZXgpCQlZRFQgVGVjaG5vbG9neSBJbnRlcm5hdGlvbmFsCiswMDEzNEMgICAgIChiYXNlIDE2KQkJWURUIFRlY2hub2xvZ3kgSW50ZXJuYXRpb25hbAorCQkJCTJGLiwgTm8uMjE4LCBSdWVpZ3VhbmcgUmQuLAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpLCAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy00RCAgIChoZXgpCQlJUEMgc3lzdGVtcworMDAxMzREICAgICAoYmFzZSAxNikJCUlQQyBzeXN0ZW1zCisJCQkJbm9vcmRlaW5kZSA3MgorCQkJCWxlaW11aWRlbiBub29yZGhvbGxhbmQgMjQ1MSBBSAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTEzLTRFICAgKGhleCkJCVZhbG94IFN5c3RlbXMsIEluYy4KKzAwMTM0RSAgICAgKGJhc2UgMTYpCQlWYWxveCBTeXN0ZW1zLCBJbmMuCisJCQkJIzcwNCwgQWNlIFR3aW4gdG93ZXIgMiwgMjEyLTMwLCBHdXJvLTNkb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi03NzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtNEYgICAoaGV4KQkJVHJhbnplbyBXaXJlbGVzcyBUZWNobm9sb2dpZXMgSW5jLgorMDAxMzRGICAgICAoYmFzZSAxNikJCVRyYW56ZW8gV2lyZWxlc3MgVGVjaG5vbG9naWVzIEluYy4KKwkJCQkyMDE1NSBTdGV3YXJ0IENyZXMuCisJCQkJTWFwbGUgUmlkZ2UgQnJpdGlzaCBDb2x1bWJpYSBWMlggMFQ2CisJCQkJQ0FOQURBCisKKzAwLTEzLTUwICAgKGhleCkJCVNpbHZlciBTcHJpbmcgTmV0d29ya3MsIEluYworMDAxMzUwICAgICAoYmFzZSAxNikJCVNpbHZlciBTcHJpbmcgTmV0d29ya3MsIEluYworCQkJCTU3NSBCcm9hZHdheSBTdHJlZXQKKwkJCQlSZWR3b29kIENpdHkgQ0EgOTQwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTUxICAgKGhleCkJCU5pbGVzIEF1ZGlvIENvcnBvcmF0aW9uCiswMDEzNTEgICAgIChiYXNlIDE2KQkJTmlsZXMgQXVkaW8gQ29ycG9yYXRpb24KKwkJCQkxMjMzMSBTVyAxMzB0aCBTdHJlZXQKKwkJCQlNaWFtaSBGTCAzMzE4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNTIgICAoaGV4KQkJTmF6dGVjLCBJbmMuCiswMDEzNTIgICAgIChiYXNlIDE2KQkJTmF6dGVjLCBJbmMuCisJCQkJODIwIFBhcmsgVHdvIERyLgorCQkJCVN1Z2FyIExhbmQgVFggNzc0NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTUzICAgKGhleCkJCUhZREFDIEZpbHRlcnRlY2huaWsgR01CSAorMDAxMzUzICAgICAoYmFzZSAxNikJCUhZREFDIEZpbHRlcnRlY2huaWsgR01CSAorCQkJCUluZHVzdHJpZWdlYmlldAorCQkJCVN1bHpiYWNoL1NhYXIgU2FhcmxhbmQgNjYyODAKKwkJCQlHRVJNQU5ZCisKKzAwLTEzLTU0ICAgKGhleCkJCVpjb21heCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTM1NCAgICAgKGJhc2UgMTYpCQlaY29tYXggVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJOTggRm9yZCBSb2FkCisJCQkJU3VpdGUgMy1GCisJCQkJRGVudmlsbGUgTkogMDc4MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTU1ICAgKGhleCkJCVRPTUVOIEN5YmVyLWJ1c2luZXNzIFNvbHV0aW9ucywgSW5jLgorMDAxMzU1ICAgICAoYmFzZSAxNikJCVRPTUVOIEN5YmVyLWJ1c2luZXNzIFNvbHV0aW9ucywgSW5jLgorCQkJCTItMTEtMTkgS29obmFuCisJCQkJTWluYXRva3Uta3UKKwkJCQlUT0tZTyAgMTA4LTAwNzUKKwkJCQlKQVBBTgorCiswMC0xMy01NiAgIChoZXgpCQlGTElSIFJhZGlhdGlvbiBHbWJICiswMDEzNTYgICAgIChiYXNlIDE2KQkJRkxJUiBSYWRpYXRpb24gR21iSAorCQkJCVBpZXBlcnNiZXJnIDEyLAorCQkJCVNvbGluZ2VuIE5SVyA0MjY1MworCQkJCUdFUk1BTlkKKworMDAtMTMtNTcgICAoaGV4KQkJU295YWwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTM1NyAgICAgKGJhc2UgMTYpCQlTb3lhbCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTEwRiwgTm8uIDI3LCBMYW5lIDE2OSwgS2FuZ25pbmcgU3QuLCBTaGlqciBDaXR5LAorCQkJCTJGLCBOby4gMjcsIExhbmUgMTY5LCBLYW5nbmluZyBTdC4sIFNoaWpyIENpdHksCisJCQkJVGFpcGVpICAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTU4ICAgKGhleCkJCVJlYWxtIFN5c3RlbXMsIEluYy4KKzAwMTM1OCAgICAgKGJhc2UgMTYpCQlSZWFsbSBTeXN0ZW1zLCBJbmMuCisJCQkJOTM1MCBTb3V0aCA1MzUgRWFzdAorCQkJCTl0aCBGbG9vcgorCQkJCVNhbmR5IFV0YWggODQwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTU5ICAgKGhleCkJCVByb1RlbGV2aXNpb24gVGVjaG5vbG9naWVzIEEvUworMDAxMzU5ICAgICAoYmFzZSAxNikJCVByb1RlbGV2aXNpb24gVGVjaG5vbG9naWVzIEEvUworCQkJCU1hcmllbHVuZHZlaiAxNiwyCisJCQkJSGVybGV2IENvcGVuaGFnZW4gMjczMAorCQkJCURFTk1BUksKKworMDAtMTMtNUEgICAoaGV4KQkJUHJvamVjdCBUJkUgTGltaXRlZAorMDAxMzVBICAgICAoYmFzZSAxNikJCVByb2plY3QgVCZFIExpbWl0ZWQKKwkJCQlSb29tIDNDLCAyL0YuIFdhaCBTaGluZyBDZW50ZXIsCisJCQkJMTEgU2hpbmcgWWlwIFN0cmVldCwKKwkJCQlLd3VuIFRvbmcsIEtvd2xvb24sIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xMy01QiAgIChoZXgpCQlQYW5lbExpbmsgQ2luZW1hLCBMTEMKKzAwMTM1QiAgICAgKGJhc2UgMTYpCQlQYW5lbExpbmsgQ2luZW1hLCBMTEMKKwkJCQkxMDcwIEUgQXJxdWVzIEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNUMgICAoaGV4KQkJT25TaXRlIFN5c3RlbXMsIEluYy4KKzAwMTM1QyAgICAgKGJhc2UgMTYpCQlPblNpdGUgU3lzdGVtcywgSW5jLgorCQkJCTM5MDAgRnJlZWRvbSBDaXJjbGUKKwkJCQlTdWl0ZSAxMDIKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NC0xMjIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy01RCAgIChoZXgpCQlOVFRQQyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAxMzVEICAgICAoYmFzZSAxNikJCU5UVFBDIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMy0yNSBLYW5kYSBKaW5iby1jaG8KKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMS0wMDUxCisJCQkJSkFQQU4KKworMDAtMTMtNUUgICAoaGV4KQkJRUFCL1JXSS9LCiswMDEzNUUgICAgIChiYXNlIDE2KQkJRUFCL1JXSS9LCisJCQkJRmFyb2dhdGFuIDYKKwkJCQlTdG9ja2hvbG0gS2lzdGEgMTY0IDgwCisJCQkJU1dFREVOCisKKzAwLTEzLTVGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTM1RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTYwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTM2MCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTYxICAgKGhleCkJCUJpb3NwYWNlIENvLiwgTHRkLgorMDAxMzYxICAgICAoYmFzZSAxNikJCUJpb3NwYWNlIENvLiwgTHRkLgorCQkJCTEwdGggRmxvb3IsIFBvb25nbGltIEJsZGcsIDgyMyBZZW9rc2FtIDEtZG9uZworCQkJCUdhbmduYW0tZ3UgU2VvdWwgMTM1LTc4NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy02MiAgIChoZXgpCQlTaGluSGV1bmcgUHJlY2lzaW9uIENvLiwgTHRkLgorMDAxMzYyICAgICAoYmFzZSAxNikJCVNoaW5IZXVuZyBQcmVjaXNpb24gQ28uLCBMdGQuCisJCQkJRGFlSGEgQmxkZy4gNDAxCisJCQkJMTAxLTcgU2hpbmdpbERvbmcKKwkJCQlZb3VuZ0R1bmdQb0d1IFNlb3VsIDE1MC0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtNjMgICAoaGV4KQkJVmVyYXNjYXBlLCBJbmMuCiswMDEzNjMgICAgIChiYXNlIDE2KQkJVmVyYXNjYXBlLCBJbmMuCisJCQkJMTEwMSAzMXN0IFN0LiwgU3VpdGUgIzE5MAorCQkJCURvd25lcnMgR3JvdmUgSUwgNjA1MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTY0ICAgKGhleCkJCVBhcmFkaWdtIFRlY2hub2xvZ3kgSW5jLi4KKzAwMTM2NCAgICAgKGJhc2UgMTYpCQlQYXJhZGlnbSBUZWNobm9sb2d5IEluYy4uCisJCQkJM0YsIE5vLiAyODUsIFNlYy4yLCBUaS1EaW5nIEJsdmQgTmVpLUh1LAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy02NSAgIChoZXgpCQlOb3J0ZWwKKzAwMTM2NSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xMy02NiAgIChoZXgpCQlOZXR1cml0eSBUZWNobm9sb2dpZXMgSW5jLgorMDAxMzY2ICAgICAoYmFzZSAxNikJCU5ldHVyaXR5IFRlY2hub2xvZ2llcyBJbmMuCisJCQkJODMwIFN0ZXdhcnQgRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTY3ICAgKGhleCkJCU5hcmF5b24uIENvLiwgTHRkLgorMDAxMzY3ICAgICAoYmFzZSAxNikJCU5hcmF5b24uIENvLiwgTHRkLgorCQkJCSM1MDIgSHlvY2hhbmcgVC9XIDE4MS0zCisJCQkJSmFtc2lsLWRvbmcsIFNvbmdwYS1ndQorCQkJCVNlb3VsICAxMzgtMjIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLTY4ICAgKGhleCkJCU1hZXJzayBEYXRhIERlZmVuY2UKKzAwMTM2OCAgICAgKGJhc2UgMTYpCQlNYWVyc2sgRGF0YSBEZWZlbmNlCisJCQkJRWxsZWdhYXJkdmVqIDI1CisJCQkJU29lbmRlcmJvcmcgREsgNjQwMAorCQkJCURFTk1BUksKKworMDAtMTMtNjkgICAoaGV4KQkJSG9uZGEgRWxlY3Ryb24gQ28uLCBMRUQuCiswMDEzNjkgICAgIChiYXNlIDE2KQkJSG9uZGEgRWxlY3Ryb24gQ28uLCBMRUQuCisJCQkJS2FuZW1hdHN1IEJ1aWxkaW5nIDMgRmxvb3IKKwkJCQkyLTE0LTEsIEt5b2Jhc2hpICAKKwkJCQlDaHVvLWt1IFRva3lvIDEwNC0wMDMxCisJCQkJSkFQQU4KKworMDAtMTMtNkEgICAoaGV4KQkJSGFjaCBMYW5nZSBTQQorMDAxMzZBICAgICAoYmFzZSAxNikJCUhhY2ggTGFuZ2UgU0EKKwkJCQk2LCByb3V0ZSBkZSBDb21wb2lzCisJCQkJQ1AgMjEyCisJCQkJVkVTRU5BWiBHRU5FVkEgMTIyMgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTEzLTZCICAgKGhleCkJCUUtVEVDCiswMDEzNkIgICAgIChiYXNlIDE2KQkJRS1URUMKKwkJCQkyLTE3LTE0LTUwMyBIYWthdGFla2ltYWUKKwkJCQlIYWthdGFrdSBGdWt1b2thc2hpCisJCQkJRnVrdW9rYSBGdWt1b2tha2VuIDgxMi0wMDExCisJCQkJSkFQQU4KKworMDAtMTMtNkMgICAoaGV4KQkJVG9tVG9tCiswMDEzNkMgICAgIChiYXNlIDE2KQkJVG9tVG9tCisJCQkJT29zdGVyZG9rc3N0cmFhdCAxMTQKKwkJCQkxMDExIERLIEFtc3RlcmRhbSAKKwkJCQlORVRIRVJMQU5EUworCiswMC0xMy02RCAgIChoZXgpCQlUZW50YWN1bHVzIEFCCiswMDEzNkQgICAgIChiYXNlIDE2KQkJVGVudGFjdWx1cyBBQgorCQkJCVN0dWRpZWdhbmdlbiAzCisJCQkJT3N0ZXJzdW5kIEphbXRsYW5kIFNFIC0gODMxIDQwCisJCQkJU1dFREVOCisKKzAwLTEzLTZFICAgKGhleCkJCVRlY2htZXRybyBDb3JwLgorMDAxMzZFICAgICAoYmFzZSAxNikJCVRlY2htZXRybyBDb3JwLgorCQkJCTRGLiBEb25nYW0gQi9ELiwgMjY0LTUsIFlhbmdKYWUtRG9uZworCQkJCVNlb2Noby1LdQorCQkJCVNlb3VsICAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLTZGICAgKGhleCkJCVBhY2tldE1vdGlvbiwgSW5jLgorMDAxMzZGICAgICAoYmFzZSAxNikJCVBhY2tldE1vdGlvbiwgSW5jLgorCQkJCTIxMjEgRWwgQ2FtaW5vIFJlYWwKKwkJCQkxMHRoIEZsb29yCisJCQkJU2FuIE1hdGVvIENBIDk0NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy03MCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxMzcwICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xMy03MSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxMzcxICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNzIgICAoaGV4KQkJRGVsbCBJbmMuCiswMDEzNzIgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNzMgICAoaGV4KQkJQkx3YXZlIEVsZWN0cm9uaWNzIENvLiwgTHRkCiswMDEzNzMgICAgIChiYXNlIDE2KQkJQkx3YXZlIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJMjNGR0gsIEJsb2NrIEEsWmhlblllIEJ1aWxkaW5nICwgQmFvQW4gTmFuIFJvYWQgLCBMdW9IdSAsIFNoZW56aGVuICwgQ2hpbmEKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworMDAtMTMtNzQgICAoaGV4KQkJQXRoZXJvcyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAxMzc0ICAgICAoYmFzZSAxNikJCUF0aGVyb3MgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk1NDgwIEdyZWF0IEFtZXJpY2EgUGFya3dheQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy03NSAgIChoZXgpCQlBbWVyaWNhbiBTZWN1cml0eSBQcm9kdWN0cyBDby4KKzAwMTM3NSAgICAgKGJhc2UgMTYpCQlBbWVyaWNhbiBTZWN1cml0eSBQcm9kdWN0cyBDby4KKwkJCQkxMTkyNSBQYWNpZmljIGF2ZS4KKwkJCQlGb250YW5hIENBIDkyMzM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy03NiAgIChoZXgpCQlUYWJvciBFbGVjdHJvbmljcyBMdGQuCiswMDEzNzYgICAgIChiYXNlIDE2KQkJVGFib3IgRWxlY3Ryb25pY3MgTHRkLgorCQkJCTkgSGF0YXRzaWEgU3QuCisJCQkJVGVsIEhhbmFuICAyMDMwMgorCQkJCUlTUkFFTAorCiswMC0xMy03NyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENPLiwgTFRECiswMDEzNzcgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDTy4sIExURAorCQkJCTQxNiwgTWFldGFuIDNEb25nLCBZZW9uZ3RvbmctR3UKKwkJCQlTdXdvbiBDaXR5LCBHZXlvbmdnaSBEbywgS29yZWEKKwkJCQlTdXdvbiBHZXlvbmdnaSA0NDM3NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtNzggICAoaGV4KQkJUVNBTiBUZWNobm9sb2d5LCBJbmMuCiswMDEzNzggICAgIChiYXNlIDE2KQkJUVNBTiBUZWNobm9sb2d5LCBJbmMuCisJCQkJMkYuLCBOby4zMSwgTGFuZSA1ODMsIFJ1ZWlHdWFuZyBSZC4sIE5laWh1IERpc3QuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTc5ICAgKGhleCkJCVBPTkRFUiBJTkZPUk1BVElPTiBJTkRVU1RSSUVTIExURC4KKzAwMTM3OSAgICAgKGJhc2UgMTYpCQlQT05ERVIgSU5GT1JNQVRJT04gSU5EVVNUUklFUyBMVEQuCisJCQkJMTRGLE5vLjc3LGxhbmU3MDAsIENodW5nLUNoZW5nIFJvYWQKKwkJCQlIc2luLVRpZW4gQ2l0eSBUYWlwZWkgSHNpZW4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy03QSAgIChoZXgpCQlOZXR2b3ggVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTM3QSAgICAgKGJhc2UgMTYpCQlOZXR2b3ggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4yMS0xIFNlYy4gMSBDaHVuZyBIdWEgV2VzdCBSb2FkCisJCQkJVGFpbmFuICA3MDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTdCICAgKGhleCkJCU1vdm9uIENvcnBvcmF0aW9uCiswMDEzN0IgICAgIChiYXNlIDE2KQkJTW92b24gQ29ycG9yYXRpb24KKwkJCQk1dGgsIEh5dW5qdWsgQi9ECisJCQkJMTQwLTI4LCBTYW1zdW5nLWRvbmcsIEthbmduYW0ta3UKKwkJCQlTZW91bCAgMTM1LTA5MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy03QyAgIChoZXgpCQlLYWljb20gY28uLCBMdGQuCiswMDEzN0MgICAgIChiYXNlIDE2KQkJS2FpY29tIGNvLiwgTHRkLgorCQkJCSMxMDksIEdheWFuZyBUZWNobm8gVG93biAxNDg3LCBHYXlhbmctZG9uZyxLYW5nc28tZ3UKKwkJCQlTZW91bCAgMTU3LTgxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy03RCAgIChoZXgpCQlEeW5hbGFiLCBJbmMuCiswMDEzN0QgICAgIChiYXNlIDE2KQkJRHluYWxhYiwgSW5jLgorCQkJCTU1NSBMYW5jYXN0ZXIgQXZlLgorCQkJCVJleW5vbGRzYnVyZyBPSCA0MzA2OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtN0UgICAoaGV4KQkJQ29yRWRnZSBOZXR3b3JrcywgSW5jLgorMDAxMzdFICAgICAoYmFzZSAxNikJCUNvckVkZ2UgTmV0d29ya3MsIEluYy4KKwkJCQk3NjAwIEJvb25lIEF2ZSBOCisJCQkJU3VpdGUgMQorCQkJCUJyb29rbHluIFBhcmsgTU4gNTU0MjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTdGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTM3RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTgwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTM4MCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTgxICAgKGhleCkJCUNISVBTICYgU3lzdGVtcywgSW5jLgorMDAxMzgxICAgICAoYmFzZSAxNikJCUNISVBTICYgU3lzdGVtcywgSW5jLgorCQkJCTQ3NTAgUGF0cmljayBIZW5yeSBEcml2ZQorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTgyICAgKGhleCkJCUNldGFjZWEgTmV0d29ya3MgQ29ycG9yYXRpb24KKzAwMTM4MiAgICAgKGJhc2UgMTYpCQlDZXRhY2VhIE5ldHdvcmtzIENvcnBvcmF0aW9uCisJCQkJMzcwOCBXZXN0IDM2dGggQXZlbnVlCisJCQkJVmFuY291dmVyIEJyaXRpc2ggQ29sdW1iaWEgVjZOIDJTNAorCQkJCUNBTkFEQQorCiswMC0xMy04MyAgIChoZXgpCQlBcHBsaWNhdGlvbiBUZWNobm9sb2dpZXMgYW5kIEVuZ2luZWVyaW5nIFJlc2VhcmNoIExhYm9yYXRvcnkKKzAwMTM4MyAgICAgKGJhc2UgMTYpCQlBcHBsaWNhdGlvbiBUZWNobm9sb2dpZXMgYW5kIEVuZ2luZWVyaW5nIFJlc2VhcmNoIExhYm9yYXRvcnkKKwkJCQlTaGluanVrdSAxLWNob21lIEJsZGcuCisJCQkJMS0xMC00LCBTaGluanVrdQorCQkJCVNoaW5qdWt1LWt1IFRva3lvIDE2MC0wMDIyCisJCQkJSkFQQU4KKworMDAtMTMtODQgICAoaGV4KQkJQWR2YW5jZWQgTW90aW9uIENvbnRyb2xzCiswMDEzODQgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgTW90aW9uIENvbnRyb2xzCisJCQkJMzgwNSBDYWxsZSBUZWNhdGUKKwkJCQlDYW1hcmlsbG8gQ2FsaWZvcm5pYSA5MzAxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtODUgICAoaGV4KQkJQWRkLU9uIFRlY2hub2xvZ3kgQ28uLCBMVEQuCiswMDEzODUgICAgIChiYXNlIDE2KQkJQWRkLU9uIFRlY2hub2xvZ3kgQ28uLCBMVEQuCisJCQkJMUYsIE5vLjExLCBMYW5lIDIwNiwgRGEtQW4gUm9hZCBTZWMuIDEsCisJCQkJVGFpcGVpICAxMDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTg2ICAgKGhleCkJCUFCQiBJbmMuL1RvdGFsZmxvdworMDAxMzg2ICAgICAoYmFzZSAxNikJCUFCQiBJbmMuL1RvdGFsZmxvdworCQkJCTcwNTEgSW5kdXN0cmlhbCBCbHZkLgorCQkJCUJhcnRsZXN2aWxsZSBPSyA3NDAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtODcgICAoaGV4KQkJMjdNIFRlY2hub2xvZ2llcyBBQgorMDAxMzg3ICAgICAoYmFzZSAxNikJCTI3TSBUZWNobm9sb2dpZXMgQUIKKwkJCQlEaXNrZXR0Z2F0YW4gMTEKKwkJCQlMaW5rb3BpbmcgIFMtNTgzIDM1CisJCQkJU1dFREVOCisKKzAwLTEzLTg4ICAgKGhleCkJCVdpTWVkaWEgQWxsaWFuY2UKKzAwMTM4OCAgICAgKGJhc2UgMTYpCQlXaU1lZGlhIEFsbGlhbmNlCisJCQkJMjQwMCBDYW1pbm8gUmFtb24KKwkJCQlTdWl0ZSAzNzUKKwkJCQlTYW4gUmFtb24gQ0EgOTQ1ODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTg5ICAgKGhleCkJCVJlZGVzIGRlIFRlbGVmb25pYSBNb3ZpbCBTLkEuCiswMDEzODkgICAgIChiYXNlIDE2KQkJUmVkZXMgZGUgVGVsZWZvbmlhIE1vdmlsIFMuQS4KKwkJCQlDL1B1ZXJ0byBkZSBsYSBNb3JjdWVyYSAxNCBCNAorCQkJCUxlZ2FuZXMgTWFkcmlkIDI4OTE4CisJCQkJU1BBSU4KKworMDAtMTMtOEEgICAoaGV4KQkJUUlOR0RBTyBHT0VSVEVLIEVMRUNUUk9OSUNTIENPLixMVEQuCiswMDEzOEEgICAgIChiYXNlIDE2KQkJUUlOR0RBTyBHT0VSVEVLIEVMRUNUUk9OSUNTIENPLixMVEQuCisJCQkJUm9vbSA2MDUsSW5ub3ZhdGlvbiBCdWlsZGluZyxIaS10ZWNoIEluZHVzdHJpYWwgUGFyaywKKwkJCQlRSU5HREFPIFNIQU5ET05HIDI2NjA2MQorCQkJCUNISU5BCisKKzAwLTEzLThCICAgKGhleCkJCVBoYW50b20gVGVjaG5vbG9naWVzIExMQworMDAxMzhCICAgICAoYmFzZSAxNikJCVBoYW50b20gVGVjaG5vbG9naWVzIExMQworCQkJCTc4MjUgRmF5IEF2ZW51ZSwgU3VpdGUgMjAwCisJCQkJTGEgSm9sbGEgQ0EgOTIwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLThDICAgKGhleCkJCUt1bXlvdW5nLkNvLkx0ZAorMDAxMzhDICAgICAoYmFzZSAxNikJCUt1bXlvdW5nLkNvLkx0ZAorCQkJCVNlb3VsIEtZIGJ1aWxkaW5nLCA0MC0xNyBIYW5nYW5nIFJvLCAzR2EsIFlvdW5nc2FuLUd1CisJCQkJU2VvdWwgIDE0MC04ODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtOEQgICAoaGV4KQkJS2luZ2hvbGQKKzAwMTM4RCAgICAgKGJhc2UgMTYpCQlLaW5naG9sZAorCQkJCTExRiwgTm8uIDk2NSwgSnVuZ2plbmcgUmQuCisJCQkJSnVuZ2hlIFRhaXBlaSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLThFICAgKGhleCkJCUZPQUIgRWxla3Ryb25payBBQgorMDAxMzhFICAgICAoYmFzZSAxNikJCUZPQUIgRWxla3Ryb25payBBQgorCQkJCVNhbmt0IEpvcmdlbnMgVmFnIDgKKwkJCQlHb3RoZW5idXJnICA0MjIgNDkKKwkJCQlTV0VERU4KKworMDAtMTMtOEYgICAoaGV4KQkJQXNpYXJvY2sgSW5jb3Jwb3JhdGlvbgorMDAxMzhGICAgICAoYmFzZSAxNikJCUFzaWFyb2NrIEluY29ycG9yYXRpb24KKwkJCQlQLk8uIEJveDk1NywgT2Zmc2hvcmUgSW5jb3Jwb3JhdGlvbnMgQ2VudHJlCisJCQkJUm9hZCBUb3duIFRvcnRvbGEgCisJCQkJVklSR0lOIElTTEFORFMsIEJSSVRJU0gKKworMDAtMTMtOTAgICAoaGV4KQkJVGVybXRlayBDb21wdXRlciBDby4sIEx0ZAorMDAxMzkwICAgICAoYmFzZSAxNikJCVRlcm10ZWsgQ29tcHV0ZXIgQ28uLCBMdGQKKwkJCQkyRiwgTm8uIDEwMCwgTGkgRGUgU3QuLAorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtOTEgICAoaGV4KQkJT1VFTiBDTy4sTFRELgorMDAxMzkxICAgICAoYmFzZSAxNikJCU9VRU4gQ08uLExURC4KKwkJCQlHb3RhbmRhIE5UIEJsZGcuN0YsCisJCQkJNS0yIEhpZ2FzaGkgR290YW5kYSA0LWNob21lCisJCQkJU2hpbmFnYXdhLWt1IFRva3lvIDE0MS0wMDIyCisJCQkJSkFQQU4KKworMDAtMTMtOTIgICAoaGV4KQkJUnVja3VzIFdpcmVsZXNzCiswMDEzOTIgICAgIChiYXNlIDE2KQkJUnVja3VzIFdpcmVsZXNzCisJCQkJODgwIFdlc3QgTWF1ZGUgQXZlbnVlCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy05MyAgIChoZXgpCQlQYW50YSBTeXN0ZW1zLCBJbmMuCiswMDEzOTMgICAgIChiYXNlIDE2KQkJUGFudGEgU3lzdGVtcywgSW5jLgorCQkJCTIwNDUwIFN0ZXZlbnMgQ3JlZWsgQmx2ZC4KKwkJCQlTdWl0ZSA0MDAKKwkJCQlDdXBlcnRpbm8gQ2FsaWZvcm5pYSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtOTQgICAoaGV4KQkJSW5mb2hhbmQgQ28uLEx0ZAorMDAxMzk0ICAgICAoYmFzZSAxNikJCUluZm9oYW5kIENvLixMdGQKKwkJCQlLcmFuei1UZWNobm8gIzEyMDcsIDU0NDItMSwgU2FuZ2RhZXdvbi1kb25nLCBKdW5nd29uLWd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8gNDYyLTgxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy05NSAgIChoZXgpCQljb25nYXRlYyBBRworMDAxMzk1ICAgICAoYmFzZSAxNikJCWNvbmdhdGVjIEFHCisJCQkJQXV3aWVzZW5zdHJhc3NlIDUKKwkJCQlEZWdnZW5kb3JmICA5NDQ2OQorCQkJCUdFUk1BTlkKKworMDAtMTMtOTYgICAoaGV4KQkJQWNiZWwgUG9seXRlY2ggSW5jLgorMDAxMzk2ICAgICAoYmFzZSAxNikJCUFjYmVsIFBvbHl0ZWNoIEluYy4KKwkJCQlOby4xNTksU2VjLjMsIFRhbS1LaW5nIFJkLiwKKwkJCQlUYW1zdWkgVGFpcGVpIDI1MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtOTcgICAoaGV4KQkJWHNpZ28gU3lzdGVtcywgSW5jLgorMDAxMzk3ICAgICAoYmFzZSAxNikJCVhzaWdvIFN5c3RlbXMsIEluYy4KKwkJCQk5NDAgU3Rld2FydCBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtOTggICAoaGV4KQkJVHJhZmZpY1NpbSBDby4sTHRkCiswMDEzOTggICAgIChiYXNlIDE2KQkJVHJhZmZpY1NpbSBDby4sTHRkCisJCQkJMjMtOSBNaXRhLWJpcnUgMkYsIENoaXlvZGEgMy1jaG9tZQorCQkJCU5ha2Eta3UsIE5hZ295YQorCQkJCUFpY2hpIE5vbiA0NjAtMDAxMgorCQkJCUpBUEFOCisKKzAwLTEzLTk5ICAgKGhleCkJCVNUQUMgQ29ycG9yYXRpb24uCiswMDEzOTkgICAgIChiYXNlIDE2KQkJU1RBQyBDb3Jwb3JhdGlvbi4KKwkJCQkyLTE2LTM3LGZ1amltaQorCQkJCXNheWFtYS1zaGkgc2FpdGFtYSAzNTAtMTMwNgorCQkJCUpBUEFOCisKKzAwLTEzLTlBICAgKGhleCkJCUstdWJpcXVlIElEIENvcnAuCiswMDEzOUEgICAgIChiYXNlIDE2KQkJSy11YmlxdWUgSUQgQ29ycC4KKwkJCQlZYW1hc2FuIEJsZGcuOEYsCisJCQkJTmlob25iYXNoaSBIb25jaG8yLTYtMTMKKwkJCQlDaHVvLWt1IFRva3lvIDEwMy0wMDIzCisJCQkJSkFQQU4KKworMDAtMTMtOUIgICAoaGV4KQkJaW9JTUFHRSBMdGQuCiswMDEzOUIgICAgIChiYXNlIDE2KQkJaW9JTUFHRSBMdGQuCisJCQkJMyBNYXNraXQgU3RyZWV0CisJCQkJSGVyemxpeWEgUGl0dWFjaCBJTCA0NjczMworCQkJCUlTUkFFTAorCiswMC0xMy05QyAgIChoZXgpCQlFeGF2ZXJhIFRlY2hub2xvZ2llcywgSW5jLgorMDAxMzlDICAgICAoYmFzZSAxNikJCUV4YXZlcmEgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTk1IE5ldyBIYW1wc2hpcmUgQXZlbnVlCisJCQkJU3VpdGUgMTU1CisJCQkJUG9ydHNtb3V0aCBOSCAwMzgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtOUQgICAoaGV4KQkJTWFydmVsbCBIaXNwYW5hIFMuTC4gCiswMDEzOUQgICAgIChiYXNlIDE2KQkJTWFydmVsbCBIaXNwYW5hIFMuTC4gCisJCQkJQy8gQ2hhcmxlcyBSb2JlcnQgRGFyd2luLCAyCisJCQkJUGFyYyBUZWNub2xvZ2ljIFBhdGVybmEgNDY5ODAKKwkJCQlTUEFJTgorCiswMC0xMy05RSAgIChoZXgpCQlDaWFyYSBUZWNobm9sb2dpZXMgSW5jLgorMDAxMzlFICAgICAoYmFzZSAxNikJCUNpYXJhIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJOTMwMCBUcmFucyBDYW5hZGEgSGlnaHdheQorCQkJCVNhaW50LUxhdXJlbnQgUXVlYmVjIEg0UyAxSzUKKwkJCQlDQU5BREEKKworMDAtMTMtOUYgICAoaGV4KQkJRWxlY3Ryb25pY3MgRGVzaWduIFNlcnZpY2VzLCBDby4sIEx0ZC4KKzAwMTM5RiAgICAgKGJhc2UgMTYpCQlFbGVjdHJvbmljcyBEZXNpZ24gU2VydmljZXMsIENvLiwgTHRkLgorCQkJCTUtMTAtMjAgVG9rdW1hcnUKKwkJCQlJdGFiYXNoaS1rdSBUb2t5byAxNzUtMDA4MworCQkJCUpBUEFOCisKKzAwLTEzLUEwICAgKGhleCkJCUFMR09TWVNURU0gQ28uLCBMdGQuCiswMDEzQTAgICAgIChiYXNlIDE2KQkJQUxHT1NZU1RFTSBDby4sIEx0ZC4KKwkJCQk2NTYga29iaXJhbyBtaWhhcmEtY2hvCisJCQkJc2FrYWkgb3Nha2EgNTg3LTAwMjEKKwkJCQlKQVBBTgorCiswMC0xMy1BMSAgIChoZXgpCQlDcm93IEVsZWN0cm9uaWMgRW5nZW5lZXJpbmcKKzAwMTNBMSAgICAgKGJhc2UgMTYpCQlDcm93IEVsZWN0cm9uaWMgRW5nZW5lZXJpbmcKKwkJCQkxMiBLaW5uZXJldCBzdC4KKwkJCQlBaXJwb3J0IENpdHkgIAorCQkJCUlTUkFFTAorCiswMC0xMy1BMiAgIChoZXgpCQlNYXhTdHJlYW0sIEluYworMDAxM0EyICAgICAoYmFzZSAxNikJCU1heFN0cmVhbSwgSW5jCisJCQkJMzU1IFNvdXRoIDUyMCBXZXN0IFN1aXRlIDE4MAorCQkJCUxpbmRvbiBVdCA4NDA0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQTMgICAoaGV4KQkJU2llbWVucyBDb20gQ1BFIERldmljZXMKKzAwMTNBMyAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIENvbSBDUEUgRGV2aWNlcworCQkJCTQ4NDkgQWxwaGEgUm9hZAorCQkJCURhbGxhcyBUZXhhcyA3NTI0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQTQgICAoaGV4KQkJS2V5RXllIENvbW11bmljYXRpb25zCiswMDEzQTQgICAgIChiYXNlIDE2KQkJS2V5RXllIENvbW11bmljYXRpb25zCisJCQkJOTc4NSBHb2V0aGUKKwkJCQlTYWNyYW1lbnRvIENBIDk1ODI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1BNSAgIChoZXgpCQlHZW5lcmFsIFNvbHV0aW9ucywgTFRELgorMDAxM0E1ICAgICAoYmFzZSAxNikJCUdlbmVyYWwgU29sdXRpb25zLCBMVEQuCisJCQkJNTkwMiBTb3ZlcmVpZ24gRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1BNiAgIChoZXgpCQlFeHRyaWNvbSBMdGQKKzAwMTNBNiAgICAgKGJhc2UgMTYpCQlFeHRyaWNvbSBMdGQKKwkJCQlHbGlsIFlhbQorCQkJCUhlcnpsaWEgIDQ2OTA1CisJCQkJSVNSQUVMCisKKzAwLTEzLUE3ICAgKGhleCkJCUJBVFRFTExFIE1FTU9SSUFMIElOU1RJVFVURQorMDAxM0E3ICAgICAoYmFzZSAxNikJCUJBVFRFTExFIE1FTU9SSUFMIElOU1RJVFVURQorCQkJCTUwNSBLSU5HIEFWRQorCQkJCUNPTFVNQlVTIE9ISU8gNDMyMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUE4ICAgKGhleCkJCVRhbmlzeXMgVGVjaG5vbG9neQorMDAxM0E4ICAgICAoYmFzZSAxNikJCVRhbmlzeXMgVGVjaG5vbG9neQorCQkJCTEyMjAxIFRlY2hub2xvZ3kgQmx2ZC4KKwkJCQlTdWl0ZSAxMjUKKwkJCQlBdXN0aW4gVFggNzg3MjctNjYwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQTkgICAoaGV4KQkJU29ueSBDb3Jwb3JhdGlvbgorMDAxM0E5ICAgICAoYmFzZSAxNikJCVNvbnkgQ29ycG9yYXRpb24KKwkJCQlHb3RlbnlhbWEgVGVjIDUtMS0yCisJCQkJS2l0YXNoaW5hZ2F3YSwKKwkJCQlTaGluYWdhd2Eta3UgVG9reW8gMTQxLTAwMDEKKwkJCQlKQVBBTgorCiswMC0xMy1BQSAgIChoZXgpCQlBTFMgICYgVEVDIEx0ZC4KKzAwMTNBQSAgICAgKGJhc2UgMTYpCQlBTFMgICYgVEVDIEx0ZC4KKwkJCQk2IEIuIEthemFjaHlhIHN0ci4KKwkJCQlTYXJhdG92IFNhcmF0b3YgcmVnaW9uIDQxMDYwMAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xMy1BQiAgIChoZXgpCQlUZWxlbW90aXZlIEFHCiswMDEzQUIgICAgIChiYXNlIDE2KQkJVGVsZW1vdGl2ZSBBRworCQkJCUJyZWl0d2llc2VuCisJCQkJTXVlaGxoYXVzZW4gQmFkZW4gV3VlcnR0ZW1iZXJnIDczMzQ3CisJCQkJR0VSTUFOWQorCiswMC0xMy1BQyAgIChoZXgpCQlTdW5teXVuZyBFbGVjdHJvbmljcyBDby4sIExURAorMDAxM0FDICAgICAoYmFzZSAxNikJCVN1bm15dW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECisJCQkJTEFSR08tUExBWkEgOEYsIEphbmdoYW5nLURvbmcKKwkJCQk4NTctMSwgSWxzYW4tS3UKKwkJCQlLb3lhbmcgS3l1bmdraSA0MTEtODM3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLUFEICAgKGhleCkJCVNlbmRvIEx0ZAorMDAxM0FEICAgICAoYmFzZSAxNikJCVNlbmRvIEx0ZAorCQkJCUhhdGNoZm9yZCBCcm9vaworCQkJCUhhdGNoZm9yZCBXYXkKKwkJCQlCaXJtaW5naGFtIFdlc3QgTWlkbGFuZHMgQjI2IDNSWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEzLUFFICAgKGhleCkJCVJhZGlhbmNlIFRlY2hub2xvZ2llcywgSW5jLgorMDAxM0FFICAgICAoYmFzZSAxNikJCVJhZGlhbmNlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTM1MCBXeW5uIERyLgorCQkJCUh1bnRzdmlsbGUgQWxhYmFtYSAzNTgwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQUYgICAoaGV4KQkJTlVNQSBUZWNobm9sb2d5LEluYy4KKzAwMTNBRiAgICAgKGJhc2UgMTYpCQlOVU1BIFRlY2hub2xvZ3ksSW5jLgorCQkJCTRGLE5vNzc4LFNlYyA0LFBhdGNoIFJkLgorCQkJCVRhaXBlaSAgMTE1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy1CMCAgIChoZXgpCQlKYWJsb3Ryb24KKzAwMTNCMCAgICAgKGJhc2UgMTYpCQlKYWJsb3Ryb24KKwkJCQlQb2QgU2thbGtvdSAzMworCQkJCUphYmxvbmVjIG5hZCBOaXNvdSAgNDY2MDEKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0xMy1CMSAgIChoZXgpCQlJbnRlbGxpZ2VudCBDb250cm9sIFN5c3RlbXMgKEFzaWEpIFB0ZSBMdGQKKzAwMTNCMSAgICAgKGJhc2UgMTYpCQlJbnRlbGxpZ2VudCBDb250cm9sIFN5c3RlbXMgKEFzaWEpIFB0ZSBMdGQKKwkJCQk3MCBVYmkgQ3Jlc2NlbnQgIzAxLTEyCisJCQkJVWJpIFRlY2ggUGFyaworCQkJCTQwODU3MAorCQkJCVNJTkdBUE9SRQorCiswMC0xMy1CMiAgIChoZXgpCQlDYXJhbGxvbiBMaW1pdGVkCiswMDEzQjIgICAgIChiYXNlIDE2KQkJQ2FyYWxsb24gTGltaXRlZAorCQkJCVN0dWRpbyBHMjAgU2hlcGhlcmRzIEJ1aWxkaW5nCisJCQkJUm9ja2xleSBSb2FkCisJCQkJTG9uZG9uIFcxNCAwREEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMy1CMyAgIChoZXgpCQlFY29tIENvbW11bmljYXRpb25zIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDEzQjMgICAgIChiYXNlIDE2KQkJRWNvbSBDb21tdW5pY2F0aW9ucyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCUZsb29yIDcsIE1hY2hpbmVyeSBJbmR1c3RyeSBCdWlsZGluZywgTm8uMjIsCisJCQkJQmFpd2Fuemh1YW5nIFN0cmVldCwgWGljaGVuZyBEaXN0cmljdAorCQkJCUJlaWppbmcgIAorCQkJCUNISU5BCisKKzAwLTEzLUI0ICAgKGhleCkJCUFwcGVhciBUVgorMDAxM0I0ICAgICAoYmFzZSAxNikJCUFwcGVhciBUVgorCQkJCUxpbGxlYWtlcnZlaWVuIDZkCisJCQkJUC5PLiBCb3ggOCBMaWxsZWFrZXIKKwkJCQlOTy0wMjE2IE9zbG8gCisJCQkJTk9SV0FZCisKKzAwLTEzLUI1ICAgKGhleCkJCVdhdmVzYXQKKzAwMTNCNSAgICAgKGJhc2UgMTYpCQlXYXZlc2F0CisJCQkJMTM3NSwgVHJhbnMtQ2FuYWRhIEhpZ2h3YXkKKwkJCQlTdWl0ZSAzMDAKKwkJCQlEb3J2YWwgUXVlYmVjIEg5UCAyVzgKKwkJCQlDQU5BREEKKworMDAtMTMtQjYgICAoaGV4KQkJU2xpbmcgTWVkaWEsIEluYy4KKzAwMTNCNiAgICAgKGJhc2UgMTYpCQlTbGluZyBNZWRpYSwgSW5jLgorCQkJCTE4NDAgR2F0ZXdheSBDZW50ZXIKKwkJCQkybmQgRmxvb3IKKwkJCQlTYW4gTWF0ZW8gQ0EgOTQ0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUI3ICAgKGhleCkJCVNjYW50ZWNoIElECiswMDEzQjcgICAgIChiYXNlIDE2KQkJU2NhbnRlY2ggSUQKKwkJCQlBbWVyc2Zvb3J0c2VzdHJhYXQgMTI0CisJCQkJU29lc3RlcmJlcmcgVXRyZWNodCAzNzY5IEFOCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTMtQjggICAoaGV4KQkJUnlDbyBFbGVjdHJvbmljIFN5c3RlbXMgTGltaXRlZAorMDAxM0I4ICAgICAoYmFzZSAxNikJCVJ5Q28gRWxlY3Ryb25pYyBTeXN0ZW1zIExpbWl0ZWQKKwkJCQlVbml0IEUsIENhcnRlbCBCdXNpbmVzcyBFc3RhdGUKKwkJCQlFZGluYnVyZ2ggV2F5CisJCQkJSGFybG93IEVzc2V4IENNMjAgMlRUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTMtQjkgICAoaGV4KQkJQk0gU1BBCiswMDEzQjkgICAgIChiYXNlIDE2KQkJQk0gU1BBCisJCQkJVklBIE1JTEFOTyA1NC81NgorCQkJCVJvenphbm8gIDIwMDg5CisJCQkJSVRBTFkKKworMDAtMTMtQkEgICAoaGV4KQkJUmVhZHlMaW5rcyBJbmMKKzAwMTNCQSAgICAgKGJhc2UgMTYpCQlSZWFkeUxpbmtzIEluYworCQkJCTY1OTUgRWRlbnZhbGUgQm91bGV2YXJkCisJCQkJU3VpdGUgMTgwCisJCQkJRWRlbiBQcmFpcmllIE1OIDU1MzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1CQiAgIChoZXgpCQlTbWFydHZ1ZSBDb3Jwb3JhdGlvbgorMDAxM0JCICAgICAoYmFzZSAxNikJCVNtYXJ0dnVlIENvcnBvcmF0aW9uCisJCQkJMTAyIFdvb2Rtb250IEJvdWxldmFyZAorCQkJCVN1aXRlIDIwMAorCQkJCU5hc2h2aWxsZSBUTiAzNzIwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQkMgICAoaGV4KQkJQXJ0aW1pIEx0ZAorMDAxM0JDICAgICAoYmFzZSAxNikJCUFydGltaSBMdGQKKwkJCQlCZXRqZW1hbiBIb3VzZQorCQkJCTEwNCBIaWxscyBSb2FkCisJCQkJQ2FtYnJpZGdlIENhbWJyaWRnZXNoaXJlIENCMiAxTFEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMy1CRCAgIChoZXgpCQlIWU1BVE9NIFNBCiswMDEzQkQgICAgIChiYXNlIDE2KQkJSFlNQVRPTSBTQQorCQkJCVpvbmUgSW5kdXN0cmllbGxlCisJCQkJMTc1IHJ1ZSBkZSBNYXNzYWNhbgorCQkJCVZFTkRBUkdVRVMgSEVSQVVMVCAzNDc0MAorCQkJCUZSQU5DRQorCiswMC0xMy1CRSAgIChoZXgpCQlWaXJ0dWFsIENvbmV4aW9ucworMDAxM0JFICAgICAoYmFzZSAxNikJCVZpcnR1YWwgQ29uZXhpb25zCisJCQkJNDEwIHJ1ZSBTdC1OaWNvbGFzLCBzdWl0ZSA2MDAKKwkJCQlNb250cmVhbCBRdWViZWMgSDJZIDJQNQorCQkJCUNBTkFEQQorCiswMC0xMy1CRiAgIChoZXgpCQlNZWRpYSBTeXN0ZW0gUGxhbm5pbmcgQ29ycC4KKzAwMTNCRiAgICAgKGJhc2UgMTYpCQlNZWRpYSBTeXN0ZW0gUGxhbm5pbmcgQ29ycC4KKwkJCQk0RiBWZWxjby1LdXJvbW9uIEJsZGcuCisJCQkJMy0xNC01IFVlbm8sCisJCQkJVGFpdG8ta3UsIFRva3lvIDExMC0wMDA1CisJCQkJSkFQQU4KKworMDAtMTMtQzAgICAoaGV4KQkJVHJpeCBUZWNub2xvZ2lhIEx0ZGEuCiswMDEzQzAgICAgIChiYXNlIDE2KQkJVHJpeCBUZWNub2xvZ2lhIEx0ZGEuCisJCQkJUnVhIGRhIFBheiwgMTk1NyAtIENoYWNhcmEgU2FudG8gQW50b25pbworCQkJCVNhbyBQYXVsbyAgMDQ3MTMtMDAyCisJCQkJQlJBWklMCisKKzAwLTEzLUMxICAgKGhleCkJCUFzb2thIFVTQSBDb3Jwb3JhdGlvbgorMDAxM0MxICAgICAoYmFzZSAxNikJCUFzb2thIFVTQSBDb3Jwb3JhdGlvbgorCQkJCTU1OCBQaWxncmltIERyaXZlCisJCQkJVW5pdCBICisJCQkJRm9zdGVyIENpdHkgQ0EgOTQ0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUMyICAgKGhleCkJCVdBQ09NIENvLixMdGQKKzAwMTNDMiAgICAgKGJhc2UgMTYpCQlXQUNPTSBDby4sTHRkCisJCQkJMi01MTAtMSBUb3lvbm9kYWkgT3RvbmUtbWFjaGkKKwkJCQlLaXRhc2FpdGFtYS1ndW4gU2FpdGFtYSAzNDktMTE0OAorCQkJCUpBUEFOCisKKzAwLTEzLUMzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTNDMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUM0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTNDNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUM1ICAgKGhleCkJCUxJR0hUUk9OIEZJQkVSLU9QVElDIERFVklDRVMgSU5DLgorMDAxM0M1ICAgICAoYmFzZSAxNikJCUxJR0hUUk9OIEZJQkVSLU9QVElDIERFVklDRVMgSU5DLgorCQkJCTUxLTEgTW9vbnB5dW5nLURvbmcsIFRhZWR1Y2stR3UKKwkJCQlUYWVqb24gMzA2LTIyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy1DNiAgIChoZXgpCQlPcGVuR2VhciwgSW5jCiswMDEzQzYgICAgIChiYXNlIDE2KQkJT3BlbkdlYXIsIEluYworCQkJCTc5ODQgU291dGggV2VsYnkgUGFyayAjMTAxCisJCQkJU2FsdCBMYWtlIENpdHkgVVRBSCA4NDA4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQzcgICAoaGV4KQkJSU9OT1MgQ28uLEx0ZC4KKzAwMTNDNyAgICAgKGJhc2UgMTYpCQlJT05PUyBDby4sTHRkLgorCQkJCTEtMzYtMTggTWl5YXNha2EKKwkJCQlTZXRhZ2F5YS1rdSBUb2t5byAxNTYtMDA1MQorCQkJCUpBUEFOCisKKzAwLTEzLUM4ICAgKGhleCkJCVBJUkVMTEkgQlJPQURCQU5EIFNPTFVUSU9OUyBTLlAuQS4KKzAwMTNDOCAgICAgKGJhc2UgMTYpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMgUy5QLkEuCisJCQkJVklBTEUgU0FSQ0EgMjIyCisJCQkJTUlMQU5PICAyMDEyNgorCQkJCUlUQUxZCisKKzAwLTEzLUM5ICAgKGhleCkJCUJleW9uZCBBY2hpZXZlIEVudGVycHJpc2VzIEx0ZC4KKzAwMTNDOSAgICAgKGJhc2UgMTYpCQlCZXlvbmQgQWNoaWV2ZSBFbnRlcnByaXNlcyBMdGQuCisJCQkJCisJCQkJUC5PLiBCb3ggOTU3LCBPZmZzaG9yZSBJbmNvcnBvcmF0aW9ucyBDZW50cmUKKwkJCQlSb2FkIFRvd24gVG9ydG9sYSAKKwkJCQlWSVJHSU4gSVNMQU5EUywgQlJJVElTSAorCiswMC0xMy1DQSAgIChoZXgpCQlQaWNvIERpZ2l0YWwKKzAwMTNDQSAgICAgKGJhc2UgMTYpCQlQaWNvIERpZ2l0YWwKKwkJCQk2MjYwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1DQiAgIChoZXgpCQlaZW5pdGVsIE5vcndheSBBUworMDAxM0NCICAgICAoYmFzZSAxNikJCVplbml0ZWwgTm9yd2F5IEFTCisJCQkJU2FuZGFrZXIgdiAyNCBjCisJCQkJUE8gQm94IDQ0OTgKKwkJCQlPc2xvIDA0MDMKKwkJCQlOT1JXQVkKKworMDAtMTMtQ0MgICAoaGV4KQkJVGFsbCBNYXBsZSBTeXN0ZW1zCiswMDEzQ0MgICAgIChiYXNlIDE2KQkJVGFsbCBNYXBsZSBTeXN0ZW1zCisJCQkJODUgU2FyYXRvZ2EgQXZlIFN1aXRlIDEzOQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1DRCAgIChoZXgpCQlNVEkgY28uIExURAorMDAxM0NEICAgICAoYmFzZSAxNikJCU1USSBjby4gTFRECisJCQkJMTY2LTEwIEthcmFrLWRvbmcKKwkJCQlSJkQgR3JvdXAgMworCQkJCVNvbmdwYS1rdSBTZW91bCAxMzgtODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLUNFICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxM0NFICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS10ZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTMtQ0YgICAoaGV4KQkJNEFjY2VzcyBDb21tdW5pY2F0aW9ucworMDAxM0NGICAgICAoYmFzZSAxNikJCTRBY2Nlc3MgQ29tbXVuaWNhdGlvbnMKKwkJCQkxIE4uIExhU2FsbGUgU3QuCisJCQkJU3VpdGUgMjAxNQorCQkJCUNoaWNhZ28gSUwgNjA2MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUQwICAgKGhleCkJCXQrIE1lZGljYWwgTHRkCiswMDEzRDAgICAgIChiYXNlIDE2KQkJdCsgTWVkaWNhbCBMdGQKKwkJCQkxNzRFIE1pbHRvbiBQYXJrCisJCQkJQWJpbmdkb24gIE9YMTQgNFNFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTMtRDEgICAoaGV4KQkJS0lSSyB0ZWxlY29tIEEvUworMDAxM0QxICAgICAoYmFzZSAxNikJCUtJUksgdGVsZWNvbSBBL1MKKwkJCQlMYW5nbWFya3N2ZWogMzQKKwkJCQlIb3JzZW5zICA4NzAwCisJCQkJREVOTUFSSworCiswMC0xMy1EMiAgIChoZXgpCQlQQUdFIElCRVJJQ0EsIFMuQS4KKzAwMTNEMiAgICAgKGJhc2UgMTYpCQlQQUdFIElCRVJJQ0EsIFMuQS4KKwkJCQlBVi4gREUgTEEgSU5EVVNUUklBLCAyNAorCQkJCVRSRVMgQ0FOVE9TIE1BRFJJRCAyODc2MAorCQkJCVNQQUlOCisKKzAwLTEzLUQzICAgKGhleCkJCU1JQ1JPLVNUQVIgSU5URVJOQVRJT05BTCBDTy4sIExURC4KKzAwMTNEMyAgICAgKGJhc2UgMTYpCQlNSUNSTy1TVEFSIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCisJCQkJTk8uIDY5LCBMSS1ERSBTVC4KKwkJCQlKVU5HLUhFIENJVFkgVEFJUEVJIEhTSUVOIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtRDQgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCiswMDEzRDQgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJTm8uNSBTaGluZyBZZWggU3RyZWV0CisJCQkJS3dlaSBTaGFuIEhzaWFuZworCQkJCVRhbyBZdWFuIEhzaWVuICAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLUQ1ICAgKGhleCkJCVdpTmV0d29ya3MgTFRECiswMDEzRDUgICAgIChiYXNlIDE2KQkJV2lOZXR3b3JrcyBMVEQKKwkJCQkzMiBNYXNraXQgU3QuCisJCQkJSGVyemVsaXlhICA0NjczMworCQkJCUlTUkFFTAorCiswMC0xMy1ENiAgIChoZXgpCQlUSUkgTkVUV09SSyBURUNITk9MT0dJRVMsIElOQy4KKzAwMTNENiAgICAgKGJhc2UgMTYpCQlUSUkgTkVUV09SSyBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkxMzg1IEFLUk9OIFNUUkVFVAorCQkJCUNPUElBR1VFIE5ZIDExNzI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1ENyAgIChoZXgpCQlTUElEQ09NIFRlY2hub2xvZ2llcyBTQQorMDAxM0Q3ICAgICAoYmFzZSAxNikJCVNQSURDT00gVGVjaG5vbG9naWVzIFNBCisJCQkJMTM3IGF2ZW51ZSBkdSBHZW5lcmFsIExFQ0xFUkMKKwkJCQlCT1VSRyBMQSBSRUlORSAgOTIzNDAKKwkJCQlGUkFOQ0UKKworMDAtMTMtRDggICAoaGV4KQkJUHJpbmNldG9uIEluc3RydW1lbnRzCiswMDEzRDggICAgIChiYXNlIDE2KQkJUHJpbmNldG9uIEluc3RydW1lbnRzCisJCQkJMzY2MCBRdWFrZXJicmlkZ2UgUm9hZAorCQkJCVRyZW50b24gTkogMDg2MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUQ5ICAgKGhleCkJCU1hdHJpeCBQcm9kdWN0IERldmVsb3BtZW50LCBJbmMuCiswMDEzRDkgICAgIChiYXNlIDE2KQkJTWF0cml4IFByb2R1Y3QgRGV2ZWxvcG1lbnQsIEluYy4KKwkJCQkxMyBOb3J0aCBCaXJkIFN0cmVldAorCQkJCVN1biBQcmFpcmllIFdJIDUzNTkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1EQSAgIChoZXgpCQlEaXNrd2FyZSBDby4sIEx0ZAorMDAxM0RBICAgICAoYmFzZSAxNikJCURpc2t3YXJlIENvLiwgTHRkCisJCQkJMS00LTEyIEtpYmEKKwkJCQlOYWtvamlraWJhIEJsZGcuNUYKKwkJCQlLb3RvLWt1IFRva3lvIDEzNS0wMDQyCisJCQkJSkFQQU4KKworMDAtMTMtREIgICAoaGV4KQkJU0hPRUkgRWxlY3RyaWMgQ28uLEx0ZAorMDAxM0RCICAgICAoYmFzZSAxNikJCVNIT0VJIEVsZWN0cmljIENvLixMdGQKKwkJCQkxLTI5LTIsV2FrYWJheWFzaGkKKwkJCQlTZXRhZ2F5YS1rdSBUb2t5byAxNTQtMDAyMworCQkJCUpBUEFOCisKKzAwLTEzLURDICAgKGhleCkJCUlCVEVLIElOQy4KKzAwMTNEQyAgICAgKGJhc2UgMTYpCQlJQlRFSyBJTkMuCisJCQkJMTZGLCAzMCwgUGVpLVBpbmcgRWFzdCBSZC4sCisJCQkJVGFpcGVpICAxMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLUREICAgKGhleCkJCUFiYm90dCBEaWFnbm9zdGljcworMDAxM0REICAgICAoYmFzZSAxNikJCUFiYm90dCBEaWFnbm9zdGljcworCQkJCTU0NDAgUGF0cmljayBIZW5yeSBEcml2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1ERSAgIChoZXgpCQlBZGFwdDQsIExMQworMDAxM0RFICAgICAoYmFzZSAxNikJCUFkYXB0NCwgTExDCisJCQkJMTA1MCBXIE5hc2EgQmx2ZCwKKwkJCQlTdWl0ZSAxMzQKKwkJCQlNZWxib3VybmUgRkwgMzI5MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLURGICAgKGhleCkJCVJ5dm9yIENvcnAuCiswMDEzREYgICAgIChiYXNlIDE2KQkJUnl2b3IgQ29ycC4KKwkJCQkxNTE0NSBSZWQgSGlsbCBBdmUuCisJCQkJU3VpdGUgQgorCQkJCVR1c3RpbiBDQSA5Mjc4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRTAgICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCiswMDEzRTAgICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJMjI4OCwgT3NoaW5vaGFyYSwKKwkJCQlZYXN1LXNoaSBTaGlnYSA1MjAtMjM5MworCQkJCUpBUEFOCisKKzAwLTEzLUUxICAgKGhleCkJCUlwcm9iZSBBQgorMDAxM0UxICAgICAoYmFzZSAxNikJCUlwcm9iZSBBQgorCQkJCUZpbmxhbmRzZ2F0YW4gMTIKKwkJCQlLaXN0YSBTRS0xNjQ3NAorCQkJCVNXRURFTgorCiswMC0xMy1FMiAgIChoZXgpCQlHZW9WaXNpb24gSW5jLgorMDAxM0UyICAgICAoYmFzZSAxNikJCUdlb1Zpc2lvbiBJbmMuCisJCQkJMTJGLixOby4zMTYsU2VjLjEsCisJCQkJTmVpaHUgUmQsTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtRTMgICAoaGV4KQkJQ29WaSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTNFMyAgICAgKGJhc2UgMTYpCQlDb1ZpIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTYzMDAgQnJpZGdlcG9pbnQgUGFya3dheQorCQkJCVN1aXRlIDMwMCwgQmxkZy4gSUkKKwkJCQlBdXN0aW4gVGV4YXMgNzg3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUU0ICAgKGhleCkJCVlBTkdKQUUgU1lTVEVNUyBDT1JQLgorMDAxM0U0ICAgICAoYmFzZSAxNikJCVlBTkdKQUUgU1lTVEVNUyBDT1JQLgorCQkJCTEyMDIuIEhBTlNISU4gSVQgVE9XRVIgR3Vyby0zRG9uZywKKwkJCQlHdXJvLUd1CisJCQkJU2VvdWwgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy1FNSAgIChoZXgpCQlURU5PU1lTLCBJTkMuCiswMDEzRTUgICAgIChiYXNlIDE2KQkJVEVOT1NZUywgSU5DLgorCQkJCVNlb2ppbiBCL0QsIDE1NjQtMSwgU2VvY2hvLWRvbmcsCisJCQkJU2VvY2hvLWd1CisJCQkJU2VvdWwgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy1FNiAgIChoZXgpCQlUZWNobm9sdXRpb24KKzAwMTNFNiAgICAgKGJhc2UgMTYpCQlUZWNobm9sdXRpb24KKwkJCQladWlkZWxpamtoYWxmcm9uZCAxCisJCQkJR09VREEgWkggMjgwMSBERAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTEzLUU3ICAgKGhleCkJCUhhbGNybworMDAxM0U3ICAgICAoYmFzZSAxNikJCUhhbGNybworCQkJCVN1aXRlIDEsIExldmVsIDEKKwkJCQk4IEdyZWVuaGlsbCBSZAorCQkJCVdheXZpbGxlIFNvdXRoIEF1c3RyYWxpYSA1MDM0CisJCQkJQVVTVFJBTElBCisKKzAwLTEzLUU4ICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxM0U4ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS10ZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTMtRTkgICAoaGV4KQkJVmVyaVdhdmUsIEluYy4KKzAwMTNFOSAgICAgKGJhc2UgMTYpCQlWZXJpV2F2ZSwgSW5jLgorCQkJCTk2MDAgU1cgT2FrIFN0LgorCQkJCVBvcnRsYW5kIE9SIDk3MjIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1FQSAgIChoZXgpCQlLYW1zdHJ1cCBBL1MKKzAwMTNFQSAgICAgKGJhc2UgMTYpCQlLYW1zdHJ1cCBBL1MKKwkJCQlJbmR1c3RyaXZlaiAyOAorCQkJCVN0aWxsaW5nICA4NjYwCisJCQkJREVOTUFSSworCiswMC0xMy1FQiAgIChoZXgpCQlTeXNtYXN0ZXIgQ29ycG9yYXRpb24KKzAwMTNFQiAgICAgKGJhc2UgMTYpCQlTeXNtYXN0ZXIgQ29ycG9yYXRpb24KKwkJCQk1ODAxIENocmlzdGllIEF2ZS4KKwkJCQlTdWl0ZSA0MDAKKwkJCQlFbWVyeXZpbGxlIENBIDk0NjA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1FQyAgIChoZXgpCQlTdW5iYXkgU29mdHdhcmUgQUcKKzAwMTNFQyAgICAgKGJhc2UgMTYpCQlTdW5iYXkgU29mdHdhcmUgQUcKKwkJCQlTZWVzdHJhc3NlIDc4CisJCQkJUnVlc2NobGlrb24gWkggODgwMworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTEzLUVEICAgKGhleCkJCVBTSUEKKzAwMTNFRCAgICAgKGJhc2UgMTYpCQlQU0lBCisJCQkJNTE3LTEzIEluZHVzcGlzIDV0aAorCQkJCVNhbmdEYWVXb25Eb25nIEp1bmdXb25HdQorCQkJCVN1bmdOYW0gS3l1bmdHaSAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtRUUgICAoaGV4KQkJSkJYIERlc2lnbnMgSW5jLgorMDAxM0VFICAgICAoYmFzZSAxNikJCUpCWCBEZXNpZ25zIEluYy4KKwkJCQlQTyBCb3ggOTcwMTU4CisJCQkJQm9jYSBSYXRvbiBGTCAzMzQ5NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRUYgICAoaGV4KQkJS2luZ2pvbiBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAxM0VGICAgICAoYmFzZSAxNikJCUtpbmdqb24gRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlSb29tIDgyNyxIdWFuYW4gRGlhbmxpIEJ1bGRpbmcsTm8uMjA1MAorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwMzEKKwkJCQlDSElOQQorCiswMC0xMy1GMCAgIChoZXgpCQlXYXZlZnJvbnQgU2VtaWNvbmR1Y3RvcgorMDAxM0YwICAgICAoYmFzZSAxNikJCVdhdmVmcm9udCBTZW1pY29uZHVjdG9yCisJCQkJNDc0NiA0NHRoIEF2ZSBTVworCQkJCVN1aXRlIDIwMQorCQkJCVNlYXR0bGUgV0EgOTgxMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUYxICAgKGhleCkJCUFNT0QgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTNGMSAgICAgKGJhc2UgMTYpCQlBTU9EIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMkYuLCBOby4gMTYsIFByb3NwZXJpdHkgUm9hZCBJSQorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUsICAzMDA3OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtRjIgICAoaGV4KQkJS2xhcyBMdGQKKzAwMTNGMiAgICAgKGJhc2UgMTYpCQlLbGFzIEx0ZAorCQkJCUJyYWNldG93biBCdXNpbmVzcyBQYXJrCisJCQkJQ2xvbmVlIENvIE1lYXRoIAorCQkJCUlSRUxBTkQKKworMDAtMTMtRjMgICAoaGV4KQkJR2lnYS1ieXRlIENvbW11bmljYXRpb25zIEluYy4KKzAwMTNGMyAgICAgKGJhc2UgMTYpCQlHaWdhLWJ5dGUgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCThGLCBOby40MywgRnUtSHNpbiBSb2FkLiBIc2luLVRpZW4KKwkJCQlUYWlwZWkgSHNpZW4gIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtRjQgICAoaGV4KQkJUHNpdGVrIChQdHkpIEx0ZAorMDAxM0Y0ICAgICAoYmFzZSAxNikJCVBzaXRlayAoUHR5KSBMdGQKKwkJCQlUaGUgVmluZXlhcmRzIE9mZmljZSBFc3RhdGUKKwkJCQk5OSBKaXAgZGUgSmFnZXIgRHJpdmUKKwkJCQlUeWdlciBWYWxsZXkgQ2FwZSBUb3duIDc1MzAKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMTMtRjUgICAoaGV4KQkJQWtpbWJpIFN5c3RlbXMKKzAwMTNGNSAgICAgKGJhc2UgMTYpCQlBa2ltYmkgU3lzdGVtcworCQkJCTE0MDAgRmFzaGlvbiBJc2xhbmQgQmx2ZAorCQkJCVN1aXRlIDkwMAorCQkJCVNhbiBNYXRlbyBDQSA5NDQwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRjYgICAoaGV4KQkJQ2ludGVjaAorMDAxM0Y2ICAgICAoYmFzZSAxNikJCUNpbnRlY2gKKwkJCQkyMWEgcm91dGUgZGUgbGEgd2FudHplbmF1CisJCQkJSG9lbmhlaW0gIDY3ODAwCisJCQkJRlJBTkNFCisKKzAwLTEzLUY3ICAgKGhleCkJCVNNQyBOZXR3b3JrcywgSW5jLgorMDAxM0Y3ICAgICAoYmFzZSAxNikJCVNNQyBOZXR3b3JrcywgSW5jLgorCQkJCTM4IFRlc2xhCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1GOCAgIChoZXgpCQlEZXggU2VjdXJpdHkgU29sdXRpb25zCiswMDEzRjggICAgIChiYXNlIDE2KQkJRGV4IFNlY3VyaXR5IFNvbHV0aW9ucworCQkJCTEwIEp1bmN0aW9uIFJvYWQgUGFya3Rvd24KKwkJCQkybmQgRmxvb3IgQlAgSG91c2UKKwkJCQlKb2hhbm5lc2J1cmcgR3V0ZW5nIDIwMDAKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMTMtRjkgICAoaGV4KQkJQ2F2ZXJhIFN5c3RlbXMKKzAwMTNGOSAgICAgKGJhc2UgMTYpCQlDYXZlcmEgU3lzdGVtcworCQkJCTIzNTUgT2FrbGFuZCBSZCwgU3VpdGUjMzMKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRkEgICAoaGV4KQkJTGlmZVNpemUgQ29tbXVuaWNhdGlvbnMsIEluYworMDAxM0ZBICAgICAoYmFzZSAxNikJCUxpZmVTaXplIENvbW11bmljYXRpb25zLCBJbmMKKwkJCQk5MDEgUy4gTW9wYWMKKwkJCQlCbGRnIDMsIFN1aXRlIDMwMAorCQkJCUF1c3RpbiBUWCA3ODc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRkIgICAoaGV4KQkJUktDIElOU1RSVU1FTlQgSU5DLgorMDAxM0ZCICAgICAoYmFzZSAxNikJCVJLQyBJTlNUUlVNRU5UIElOQy4KKwkJCQkxNi02LCBLdWdhaGFyYSA1LWNob21lLAorCQkJCU9odGEta3UgVG9reW8gMTQ2LTg1MTUKKwkJCQlKQVBBTgorCiswMC0xMy1GQyAgIChoZXgpCQlTaUNvcnRleCwgSW5jCiswMDEzRkMgICAgIChiYXNlIDE2KQkJU2lDb3J0ZXgsIEluYworCQkJCTMgQ2xvY2t0b3dlciBQbGFjZQorCQkJCVN1aXRlIDIxMAorCQkJCU1heW5hcmQgTUEgMDE3NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUZEICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDEzRkQgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTEzLUZFICAgKGhleCkJCUdSQU5EVEVDIEVMRUNUUk9OSUMgQ09SUC4KKzAwMTNGRSAgICAgKGJhc2UgMTYpCQlHUkFORFRFQyBFTEVDVFJPTklDIENPUlAuCisJCQkJOEYsTk8uMjY4LExpYW4gQ2hlbmcgUmQuLENodW5nIEhvIENpdHksCisJCQkJSHNpZW4gMjM1CisJCQkJVGFpcGVpICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLUZGICAgKGhleCkJCURhZ2UtTVRJIG9mIE1DLCBJbmMuCiswMDEzRkYgICAgIChiYXNlIDE2KQkJRGFnZS1NVEkgb2YgTUMsIEluYy4KKwkJCQk3MDEgTi4gUm9lc2tlIEF2ZS4KKwkJCQlNaWNoaWdhbiBDaXR5IElOIDQ2MzYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0wMCAgIChoZXgpCQlNSU5FUlZBIEtPUkVBIENPLiwgTFRECiswMDE0MDAgICAgIChiYXNlIDE2KQkJTUlORVJWQSBLT1JFQSBDTy4sIExURAorCQkJCSMyMDMsIFNIIFNpZW5uZSwgU2VvaHllb24tRG9uZworCQkJCUJ1bmRhbmctR3UKKwkJCQlTZW9uZ25hbS1TaSBHeWVvbmdnaS1EbyA0NjMtODIxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTAxICAgKGhleCkJCVJpdmVydHJlZSBOZXR3b3JrcyBDb3JwLgorMDAxNDAxICAgICAoYmFzZSAxNikJCVJpdmVydHJlZSBOZXR3b3JrcyBDb3JwLgorCQkJCVIjMzA0LCBLLUNlbnRlciwgMTU5MS05CisJCQkJQnVyaW0tZG9uZywgRG9uZ2Fobi1ndQorCQkJCUFueWFuZy1zaSBLeXVuZ2dpLWRvIDQzMS04MTUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtMDIgICAoaGV4KQkJa2stZWxlY3Ryb25pYyBhL3MKKzAwMTQwMiAgICAgKGJhc2UgMTYpCQlray1lbGVjdHJvbmljIGEvcworCQkJCUN5cHJlc3ZlaiA2CisJCQkJSGVybmluZyAgNzQwMAorCQkJCURFTk1BUksKKworMDAtMTQtMDMgICAoaGV4KQkJUmVuYXNpcywgTExDCiswMDE0MDMgICAgIChiYXNlIDE2KQkJUmVuYXNpcywgTExDCisJCQkJMTUzMCBOLiBTdGF0ZSBTdC4KKwkJCQlTdWl0ZSBFCisJCQkJTGVoaSBVVCA4NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMDQgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMTQwNCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTA1ICAgKGhleCkJCU9wZW5JQiwgSW5jLgorMDAxNDA1ICAgICAoYmFzZSAxNikJCU9wZW5JQiwgSW5jLgorCQkJCU9wZW5GYWJyaWNzLCBJbmMuLCBjL28gUUxvZ2ljIENvcnBvcmF0aW9uCisJCQkJMjA3MSBTdGllcmxpbiBDb3VydCwgU3VpdGUgMjAwCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0My00NjU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0wNiAgIChoZXgpCQlHbyBOZXR3b3JrcworMDAxNDA2ICAgICAoYmFzZSAxNikJCUdvIE5ldHdvcmtzCisJCQkJMTI2IFlpZ2FsIEFsb24gc3QuCisJCQkJVGVsIEF2aXYgIDY3NDQzCisJCQkJSVNSQUVMCisKKzAwLTE0LTA3ICAgKGhleCkJCVNwZXJpYW4gUHJvdGVjdGlvbiBJbnN0cnVtZW50YXRpb24KKzAwMTQwNyAgICAgKGJhc2UgMTYpCQlTcGVyaWFuIFByb3RlY3Rpb24gSW5zdHJ1bWVudGF0aW9uCisJCQkJNjUxIFNvdXRoIE1haW4gU3RyZWV0CisJCQkJTWlkZGxldG93biBDVCAwNjQ1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMDggICAoaGV4KQkJRWthIFN5c3RlbXMgSW5jLgorMDAxNDA4ICAgICAoYmFzZSAxNikJCUVrYSBTeXN0ZW1zIEluYy4KKwkJCQkyMDI1MSBDZW50dXJ5IEJsdmQKKwkJCQlTdWl0ZSAxMjAKKwkJCQlHZXJtYW50b3duIE1EIDIwODc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0wOSAgIChoZXgpCQlNQUdORVRJIE1BUkVMTEkgICBTLkUuIFMucC5BLgorMDAxNDA5ICAgICAoYmFzZSAxNikJCU1BR05FVEkgTUFSRUxMSSAgIFMuRS4gUy5wLkEuCisJCQkJWkkgTm9yZCwgQWxsZWUgZCdBcmdlbnNvbgorCQkJCUNIQVRFTExFUkFVTFQgIDg2MTAwCisJCQkJRlJBTkNFCisKKzAwLTE0LTBBICAgKGhleCkJCVdFUElPIENvLiwgTHRkLgorMDAxNDBBICAgICAoYmFzZSAxNikJCVdFUElPIENvLiwgTHRkLgorCQkJCSMxMTI1LCBPcHVzMSwgR3Vyb2Rvbmdjb21wbGV4IGJ1aWxkaW5nCisJCQkJNjExLTI2LEd1cm8tZG9uZyxHdXJvLWd1LAorCQkJCVNlb3VsICAxNTItMDUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTBCICAgKGhleCkJCUZJUlNUIElOVEVSTkFUSU9OQUwgQ09NUFVURVIsIElOQy4KKzAwMTQwQiAgICAgKGJhc2UgMTYpCQlGSVJTVCBJTlRFUk5BVElPTkFMIENPTVBVVEVSLCBJTkMuCisJCQkJRklDIEJVSUxESU5HLCBOTy4zMDAsIFlBTkcgR1VBTkcgU1QuLAorCQkJCU5FSUhVCisJCQkJVEFJUEVJIENPVU5UWSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTBDICAgKGhleCkJCUdLQiBDQ1RWIENPLiwgTFRELgorMDAxNDBDICAgICAoYmFzZSAxNikJCUdLQiBDQ1RWIENPLiwgTFRELgorCQkJCTdGLCBOby4gMSwgTGFuZSA2NDEsCisJCQkJU2hlbiBMaW5nIFNvdXRoIFJkLiwKKwkJCQlUYSBZYSBIc2lhbmcsIFRBSUNIVU5HIDQyOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtMEQgICAoaGV4KQkJTm9ydGVsCiswMDE0MEQgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTQtMEUgICAoaGV4KQkJTm9ydGVsCiswMDE0MEUgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTQtMEYgICAoaGV4KQkJRmVkZXJhbCBTdGF0ZSBVbml0YXJ5IEVudGVycHJpc2UgTGVuaW5ncmFkIFImRCBJbnN0aXR1dGUgb2YKKzAwMTQwRiAgICAgKGJhc2UgMTYpCQlGZWRlcmFsIFN0YXRlIFVuaXRhcnkgRW50ZXJwcmlzZSBMZW5pbmdyYWQgUiZEIEluc3RpdHV0ZSBvZgorCQkJCTExIFdhcnNoYXdza2F5YSBTdC4KKwkJCQlTdC4gUGV0ZXJzYnVyZyAxOTYxMjgKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMTQtMTAgICAoaGV4KQkJU3V6aG91IEtlZGEgVGVjaG5vbG9neSBDTy4sTHRkCiswMDE0MTAgICAgIChiYXNlIDE2KQkJU3V6aG91IEtlZGEgVGVjaG5vbG9neSBDTy4sTHRkCisJCQkJMTMxLEppbnNoYW4gUm9hZAorCQkJCVN1emhvdSBKaWFuZ1N1IDIxNTAxMQorCQkJCUNISU5BCisKKzAwLTE0LTExICAgKGhleCkJCURldXRzY2htYW5uIEF1dG9tYXRpb24gR21iSCAmIENvLiBLRworMDAxNDExICAgICAoYmFzZSAxNikJCURldXRzY2htYW5uIEF1dG9tYXRpb24gR21iSCAmIENvLiBLRworCQkJCUNhcmwtWmVpc3MtU3RyLiA4CisJCQkJQmFkIENhbWJlcmcgIEQgLSA2NTUyMAorCQkJCUdFUk1BTlkKKworMDAtMTQtMTIgICAoaGV4KQkJUy1URUMgZWxlY3Ryb25pY3MgQUcKKzAwMTQxMiAgICAgKGJhc2UgMTYpCQlTLVRFQyBlbGVjdHJvbmljcyBBRworCQkJCUluZHVzdHJpZXN0cmFzc2UgNDkKKwkJCQladWcgNjMwMAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE0LTEzICAgKGhleCkJCVRyZWJpbmcgJiBIaW1zdGVkdCBQcm96ZXNzYXV0b21hdGlvbiBHbWJIICYgQ28uIEtHCiswMDE0MTMgICAgIChiYXNlIDE2KQkJVHJlYmluZyAmIEhpbXN0ZWR0IFByb3plc3NhdXRvbWF0aW9uIEdtYkggJiBDby4gS0cKKwkJCQlXaWxoZWxtLUhlbm5lbWFubi1TdHIuIDEzCisJCQkJU2Nod2VyaW4gTWVja2xlbmJ1cmctVm9ycG9tbWVybiAxOTA2MQorCQkJCUdFUk1BTlkKKworMDAtMTQtMTQgICAoaGV4KQkJSnVtcG5vZGUgU3lzdGVtcyBMTEMuCiswMDE0MTQgICAgIChiYXNlIDE2KQkJSnVtcG5vZGUgU3lzdGVtcyBMTEMuCisJCQkJODAwIFdhc2hpbmd0b24gQXZlIE4uCisJCQkJU3VpdGUgMzA5CisJCQkJTWlubmVhcG9saXMgTU4gNTUwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTE1ICAgKGhleCkJCUludGVjIEF1dG9tYXRpb24gSW5jLgorMDAxNDE1ICAgICAoYmFzZSAxNikJCUludGVjIEF1dG9tYXRpb24gSW5jLgorCQkJCTI3NTEgQXJidXR1cyBSZC4KKwkJCQlWaWN0b3JpYSBCcml0aXNoIENvbHVtYmlhIFY4TiA1WDcKKwkJCQlDQU5BREEKKworMDAtMTQtMTYgICAoaGV4KQkJU2Nvc2NoZSBJbmR1c3RyaWVzLCBJbmMuCiswMDE0MTYgICAgIChiYXNlIDE2KQkJU2Nvc2NoZSBJbmR1c3RyaWVzLCBJbmMuCisJCQkJUE8gQm94IDI5MDEKKwkJCQlPeG5hcmQgQ0EgOTMwMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTE3ICAgKGhleCkJCVJTRSBJbmZvcm1hdGlvbnMgVGVjaG5vbG9naWUgR21iSAorMDAxNDE3ICAgICAoYmFzZSAxNikJCVJTRSBJbmZvcm1hdGlvbnMgVGVjaG5vbG9naWUgR21iSAorCQkJCVNpbGJlcmJlcmdzdHJhc3NlIDkKKwkJCQlXb2xmc2JlcmcgS2FybnRlbiA5NDAwCisJCQkJQVVTVFJJQQorCiswMC0xNC0xOCAgIChoZXgpCQlDNExpbmUKKzAwMTQxOCAgICAgKGJhc2UgMTYpCQlDNExpbmUKKwkJCQkxMDAxIEh5dW5kYWkgUGFyaXNpYW4sCisJCQkJOTA3LTEwIE1vazUtRG9uZworCQkJCVlhbmdjaHVuLUd1IFNlb3VsIDE1OC0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtMTkgICAoaGV4KQkJU0lEU0EKKzAwMTQxOSAgICAgKGJhc2UgMTYpCQlTSURTQQorCQkJCVBUTSAtIFRPUlJFUyBRVUVWRURPIDEKKwkJCQlUUkVTIENBTlRPUyBNQURSSUQgMjg3NjAKKwkJCQlTUEFJTgorCiswMC0xNC0xQSAgIChoZXgpCQlERUlDWSBDT1JQT1JBVElPTgorMDAxNDFBICAgICAoYmFzZSAxNikJCURFSUNZIENPUlBPUkFUSU9OCisJCQkJMy0zLTYsU2FrYWUtY2hvLEhhbXVyYS1zaGksCisJCQkJVG9reW8gMjA1LTAwMDIKKwkJCQlKQVBBTgorCiswMC0xNC0xQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE0MUIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0xQyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE0MUMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0xRCAgIChoZXgpCQlMdXN0IEFudHJpZWJzdGVjaG5payBHbWJICiswMDE0MUQgICAgIChiYXNlIDE2KQkJTHVzdCBBbnRyaWVic3RlY2huaWsgR21iSAorCQkJCUdld2VyYmVzdHJhc3NlIDUtOQorCQkJCUxhaG5hdSBIZXNzZW4gMzU2MzMKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LTFFICAgKGhleCkJCVAuQS4gU2VtaSwgSW5jLgorMDAxNDFFICAgICAoYmFzZSAxNikJCVAuQS4gU2VtaSwgSW5jLgorCQkJCTM5NjUgRnJlZWRvbSBDaXJjbGUsIEZsIDgKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMUYgICAoaGV4KQkJU3VuS3dhbmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzAwMTQxRiAgICAgKGJhc2UgMTYpCQlTdW5Ld2FuZyBFbGVjdHJvbmljcyBDby4sIEx0ZAorCQkJCSMzNjUoVGVjaG5vLXBhcmssIDMwMSBkb25nLCA5MDEgaG8sKSBTYW1qdW5nLWRvbmcsIE9oanVuZy1rdSwKKwkJCQlCdWNoZW9uLXNoaSBLeXVuZ2dpLWRvIDQyMS04MDkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtMjAgICAoaGV4KQkJRy1MaW5rcyBuZXR3b3JraW5nIGNvbXBhbnkKKzAwMTQyMCAgICAgKGJhc2UgMTYpCQlHLUxpbmtzIG5ldHdvcmtpbmcgY29tcGFueQorCQkJCTFGTC4gTk8uMTUtNDksIE1JTkcgREVSIFNFQ09ORCBST0FELAorCQkJCUNISSBEVSBESVNUUklDVCwKKwkJCQlLZWVsdW5nICAyMDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTIxICAgKGhleCkJCVRvdGFsIFdpcmVsZXNzIFRlY2hub2xvZ2llcyBQdGUuIEx0ZC4KKzAwMTQyMSAgICAgKGJhc2UgMTYpCQlUb3RhbCBXaXJlbGVzcyBUZWNobm9sb2dpZXMgUHRlLiBMdGQuCisJCQkJQmxrIDEwMDMsIEJ1a2l0IE1lcmFoIENlbnRyYWwsICMwNC0xOAorCQkJCVRlY2hub3ByZW5ldXIgQ2VudHJlCisJCQkJMTU5ODM2CisJCQkJU0lOR0FQT1JFCisKKzAwLTE0LTIyICAgKGhleCkJCURlbGwgSW5jLgorMDAxNDIyICAgICAoYmFzZSAxNikJCURlbGwgSW5jLgorCQkJCU9uZSBEZWxsIFdheQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTIzICAgKGhleCkJCUotUyBDby4gTkVVUk9DT00KKzAwMTQyMyAgICAgKGJhc2UgMTYpCQlKLVMgQ28uIE5FVVJPQ09NCisJCQkJRW5lcmdldGljaGVza2lpIHByb2V6ZCwgNgorCQkJCU1vc2NvdyAgMTExMjUwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTE0LTI0ICAgKGhleCkJCU1lcnJ5IEVsZWN0cmljcyBDTy4sIExURC4KKzAwMTQyNCAgICAgKGJhc2UgMTYpCQlNZXJyeSBFbGVjdHJpY3MgQ08uLCBMVEQuCisJCQkJTk8uMjIsMjNyZCBST0FECisJCQkJUEFSSyBUQUlDSFVORywKKwkJCQlUQUlDSFVORyBDSVRZICA0MDg1MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtMjUgICAoaGV4KQkJR2FsYWN0aWMgQ29tcHV0aW5nIENvcnAuCiswMDE0MjUgICAgIChiYXNlIDE2KQkJR2FsYWN0aWMgQ29tcHV0aW5nIENvcnAuCisJCQkJMS9GCisJCQkJMTIgTGVlIENodW5nIFN0cmVldAorCQkJCUNoYWkgV2FuIERpc3RyaWN0ICAKKwkJCQlIT05HIEtPTkcKKworMDAtMTQtMjYgICAoaGV4KQkJTkwgVGVjaG5vbG9neQorMDAxNDI2ICAgICAoYmFzZSAxNikJCU5MIFRlY2hub2xvZ3kKKwkJCQk4MDAgVHVybnBpa2UgU3RyZWV0CisJCQkJU1RFIDEwMAorCQkJCU5vcnRoIEFuZG92ZXIgTUEgMDE4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTI3ICAgKGhleCkJCUphenpNdXRhbnQKKzAwMTQyNyAgICAgKGJhc2UgMTYpCQlKYXp6TXV0YW50CisJCQkJMiBhbGxlZSBkdSBEb3llbiBHZW9yZ2VzIEJydXMKKwkJCQlQZXNzYWMgIDMzNjAwCisJCQkJRlJBTkNFCisKKzAwLTE0LTI4ICAgKGhleCkJCVZvY29sbGVjdCwgSW5jCiswMDE0MjggICAgIChiYXNlIDE2KQkJVm9jb2xsZWN0LCBJbmMKKwkJCQk3MDMgUm9kaSBSb2FkCisJCQkJUGl0dHNidXJnaCBQQSAxNTIzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMjkgICAoaGV4KQkJViBDZW50ZXIgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAxNDI5ICAgICAoYmFzZSAxNikJCVYgQ2VudGVyIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQk3Ri03LCBOTy4zNSwgSHNpbnRhaSBSZC4KKwkJCQlKdWJlaSBDaXR5IEhzaW5jaHUgMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC0yQSAgIChoZXgpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4sIEx0ZAorMDAxNDJBICAgICAoYmFzZSAxNikJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtIENvLiwgTHRkCisJCQkJTm8uMjIsIEFsbGV5IDM4LCBMYW5lIDkxLCBTZWMuIDEsCisJCQkJTmVpIEh1IFJvYWQKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtMkIgICAoaGV4KQkJRWRhdGEgQ29tbXVuaWNhdGlvbiBJbmMuCiswMDE0MkIgICAgIChiYXNlIDE2KQkJRWRhdGEgQ29tbXVuaWNhdGlvbiBJbmMuCisJCQkJMkYtMSwgTm8uIDg3MiwgQ2h1bmctQ2hlbmcgUmQKKwkJCQlDaHVuZy1IbyBDaXR5CisJCQkJVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtMkMgICAoaGV4KQkJS29uY2VwdCBJbnRlcm5hdGlvbmFsLCBJbmMuCiswMDE0MkMgICAgIChiYXNlIDE2KQkJS29uY2VwdCBJbnRlcm5hdGlvbmFsLCBJbmMuCisJCQkJMjUwMCBFIEZvb3RoaWxsIEJsdmQuICM0MDcKKwkJCQlQYXNhZGVuYSBDQSA5MTEwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMkQgICAoaGV4KQkJVG9yYWRleCBBRworMDAxNDJEICAgICAoYmFzZSAxNikJCVRvcmFkZXggQUcKKwkJCQlBbHRzYWdlbnN0cmFzc2UgNQorCQkJCUhvcncgTFUgNjA0OAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE0LTJFICAgKGhleCkJCTc3IEVsZWt0cm9uaWthIEtmdC4KKzAwMTQyRSAgICAgKGJhc2UgMTYpCQk3NyBFbGVrdHJvbmlrYSBLZnQuCisJCQkJRmVoZXJ2YXJpIHV0IDk4LgorCQkJCUJ1ZGFwZXN0IEgtMTE2MworCQkJCUhVTkdBUlkKKworMDAtMTQtMkYgICAoaGV4KQkJV2lsZFBhY2tldHMKKzAwMTQyRiAgICAgKGJhc2UgMTYpCQlXaWxkUGFja2V0cworCQkJCTEzNDAgVHJlYXQgQm91bGV2YXJkCisJCQkJU3VpdGUgNTAwCisJCQkJV2FsbnV0IENyZWVrIENBIDk0NTk3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0zMCAgIChoZXgpCQlWaVBvd0VSLCBJbmMKKzAwMTQzMCAgICAgKGJhc2UgMTYpCQlWaVBvd0VSLCBJbmMKKwkJCQk5Ri4sIE5vLjIwNS0zLCBTZWMuIDMsIEJlaXNpbiBSZAorCQkJCVNpbmRpYW4gVGFpcGVpIENvdW50eSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTMxICAgKGhleCkJCVBETCBFbGVjdHJvbmljcyBMdGQKKzAwMTQzMSAgICAgKGJhc2UgMTYpCQlQREwgRWxlY3Ryb25pY3MgTHRkCisJCQkJODEgQXVzdGluIFN0cmVldAorCQkJCU5hcGllciBIYXdrZXMgQmF5IDQwMTUKKwkJCQlORVcgWkVBTEFORAorCiswMC0xNC0zMiAgIChoZXgpCQlUYXJhbGxheCBXaXJlbGVzcywgSW5jLgorMDAxNDMyICAgICAoYmFzZSAxNikJCVRhcmFsbGF4IFdpcmVsZXNzLCBJbmMuCisJCQkJMTAgV2VzdCAxMDAgU291dGgsCisJCQkJU3VpdGUgNjAwCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTMzICAgKGhleCkJCUVtcG93ZXIgVGVjaG5vbG9naWVzKENhbmFkYSkgSW5jLgorMDAxNDMzICAgICAoYmFzZSAxNikJCUVtcG93ZXIgVGVjaG5vbG9naWVzKENhbmFkYSkgSW5jLgorCQkJCVVuaXQgNDA1IC0gNTYwMCBQYXJrd29vZCBXYXksCisJCQkJUmljaG1vbmQgQnJpdGlzaCBDb2x1bWJpYSBWNlYgMk0yCisJCQkJQ0FOQURBCisKKzAwLTE0LTM0ICAgKGhleCkJCUtlcmkgU3lzdGVtcywgSW5jCiswMDE0MzQgICAgIChiYXNlIDE2KQkJS2VyaSBTeXN0ZW1zLCBJbmMKKwkJCQlTdWl0ZSAxMDAKKwkJCQkxNTMwIE9ha2xhbmQgUmQKKwkJCQlTYW4gSm9zZSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMzUgICAoaGV4KQkJQ2l0eUNvbSBDb3JwLgorMDAxNDM1ICAgICAoYmFzZSAxNikJCUNpdHlDb20gQ29ycC4KKwkJCQkzRi4sIE5vLjUzMiwgU2VjLiAyLAorCQkJCUpob25nc2hhbiBSZC4KKwkJCQlKaG9uZ2hlIENpdHkgVGFpcGVpIEhzaWVuIDIzNTU3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC0zNiAgIChoZXgpCQlRd2VydHkgRWxla3Ryb25payBBQgorMDAxNDM2ICAgICAoYmFzZSAxNikJCVF3ZXJ0eSBFbGVrdHJvbmlrIEFCCisJCQkJQmFsaW5nZSBLbG9ja2FyZ2FyZAorCQkJCVR5c3RiZXJnYSAgNjEwIDYwCisJCQkJU1dFREVOCisKKzAwLTE0LTM3ICAgKGhleCkJCUdTVGVsZXRlY2ggQ28uLEx0ZC4KKzAwMTQzNyAgICAgKGJhc2UgMTYpCQlHU1RlbGV0ZWNoIENvLixMdGQuCisJCQkJMTM4NS0xNCwgSnVhbi1Eb25nLCBOYW0tZ3UKKwkJCQlJbmNoZW9uIDQwMi0yMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtMzggICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDE0MzggICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkgU291dGgKKwkJCQlNUzA3MDQwNQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTM5ICAgKGhleCkJCUJsb25kZXIgVG9uZ3VlIExhYm9yYXRvcmllcywgSW5jLgorMDAxNDM5ICAgICAoYmFzZSAxNikJCUJsb25kZXIgVG9uZ3VlIExhYm9yYXRvcmllcywgSW5jLgorCQkJCU9uZSBKYWtlIEJyb3duIFJvYWQKKwkJCQlPbGQgQnJpZGdlIE5ldyBKZXJzZXkgMDg4NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTNBICAgKGhleCkJCVJBWVRBTEsgSU5URVJOQVRJT05BTCBTUkwKKzAwMTQzQSAgICAgKGJhc2UgMTYpCQlSQVlUQUxLIElOVEVSTkFUSU9OQUwgU1JMCisJCQkJU3QuIE1hcmVjY2hpYSA3OQorCQkJCVZlcnVjY2hpbyAoUk4pIDQ3ODI2CisJCQkJSVRBTFkKKworMDAtMTQtM0IgICAoaGV4KQkJU2Vuc292YXRpb24gQUcKKzAwMTQzQiAgICAgKGJhc2UgMTYpCQlTZW5zb3ZhdGlvbiBBRworCQkJCUx1ZHdpZ3NoYWZlbmVyIFN0ci4gMjkKKwkJCQlTdG9ja2FjaCBCYWRlbi1XdWVydHRlbWJlcmcgNzgzMzMKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LTNDICAgKGhleCkJCVJoZWlubWV0YWxsIENhbmFkYSBJbmMuCiswMDE0M0MgICAgIChiYXNlIDE2KQkJUmhlaW5tZXRhbGwgQ2FuYWRhIEluYy4KKwkJCQkyMjUgYm91bCBkdSBzZW1pbmFpcmUgc3VkCisJCQkJU3QtSmVhbi1zdXItUmljaGVsaWV1IFF1ZWJlYyBKM0IgOEU5CisJCQkJQ0FOQURBCisKKzAwLTE0LTNEICAgKGhleCkJCUFldm9lIEluYy4KKzAwMTQzRCAgICAgKGJhc2UgMTYpCQlBZXZvZSBJbmMuCisJCQkJMTFGLCBObyAyMywgS2VlbHVuZyBSb2FkCisJCQkJVGFpcGVpIEhzaW5ZaSBEaXN0cmljdCAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTNFICAgKGhleCkJCUFpckxpbmsgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTQzRSAgICAgKGJhc2UgMTYpCQlBaXJMaW5rIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMzE1OSBDb3Jwb3JhdGUgUGxhY2UKKwkJCQlIYXl3YXJkIENBIDk0NTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0zRiAgIChoZXgpCQlIb3R3YXkgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxNDNGICAgICAoYmFzZSAxNikJCUhvdHdheSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJTm8uIDgxLCBIc2luIFRhaSA1dGggUm9hZCBTZWN0aW9uIDEKKwkJCQkxMUYtMworCQkJCVNoaUpyIFRhaXBlaSAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTQwICAgKGhleCkJCUFUT01JQyBDb3Jwb3JhdGlvbgorMDAxNDQwICAgICAoYmFzZSAxNikJCUFUT01JQyBDb3Jwb3JhdGlvbgorCQkJCU1BTVBPIEJMREcKKwkJCQkxLTMtMTEsQVNBS1VTQUJBU0hJCisJCQkJVEFJVE8tS1UgVE9LWU8gMTExLTAwNTMKKwkJCQlKQVBBTgorCiswMC0xNC00MSAgIChoZXgpCQlJbm5vdmF0aW9uIFNvdW5kIFRlY2hub2xvZ3kgQ28uLCBMVEQuCiswMDE0NDEgICAgIChiYXNlIDE2KQkJSW5ub3ZhdGlvbiBTb3VuZCBUZWNobm9sb2d5IENvLiwgTFRELgorCQkJCUJ1aWxkaW5nIDJ0aC4sQ3VpaGFpIEluZHVzdHJpYWwgQXJlYSwKKwkJCQlIdWFpZGUsIEZ1eW9uZyBUb3duCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwMworCQkJCUNISU5BCisKKzAwLTE0LTQyICAgKGhleCkJCUFUVE8gQ09SUE9SQVRJT04KKzAwMTQ0MiAgICAgKGJhc2UgMTYpCQlBVFRPIENPUlBPUkFUSU9OCisJCQkJMS0yNS0yMyBIb25nbywKKwkJCQlCdW5reW8ta3UsCisJCQkJVG9reW8gMTEzLTg0MjUKKwkJCQlKQVBBTgorCiswMC0xNC00MyAgIChoZXgpCQlDb25zdWx0cm9uaWNzIEV1cm9wZSBMdGQKKzAwMTQ0MyAgICAgKGJhc2UgMTYpCQlDb25zdWx0cm9uaWNzIEV1cm9wZSBMdGQKKwkJCQlFbGVjdHJvbiBXYXkKKwkJCQlDaGFuZGxlcnMgRm9yZCBIYW50cyBTTzUzIDRTRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE0LTQ0ICAgKGhleCkJCUdydW5kZm9zIEVsZWN0cm9uaWNzCiswMDE0NDQgICAgIChiYXNlIDE2KQkJR3J1bmRmb3MgRWxlY3Ryb25pY3MKKwkJCQlCaXJrZXZhZW5nZXQgMi0xMAorCQkJCUJqZXJyaW5nYnJvICBESzg4NTAKKwkJCQlERU5NQVJLCisKKzAwLTE0LTQ1ICAgKGhleCkJCVRlbGVmb24tR3JhZG5qYSBkLm8uby4KKzAwMTQ0NSAgICAgKGJhc2UgMTYpCQlUZWxlZm9uLUdyYWRuamEgZC5vLm8uCisJCQkJUGxlc2l2aWNrYSAzCisJCQkJU3ZldGEgTmVkZWxqYSBadXBhbmlqYSBaYWdyZWJhY2thIDEwNDMxCisJCQkJQ1JPQVRJQQorCiswMC0xNC00NiAgIChoZXgpCQlTdXBlclZpc2lvbiBTb2x1dGlvbnMgTExDCiswMDE0NDYgICAgIChiYXNlIDE2KQkJU3VwZXJWaXNpb24gU29sdXRpb25zIExMQworCQkJCTc2MiBJbmR1c3RyaWFsIERyLgorCQkJCUVsbWh1cnN0IElMIDYwMTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC00NyAgIChoZXgpCQlCT0FaIEluYy4KKzAwMTQ0NyAgICAgKGJhc2UgMTYpCQlCT0FaIEluYy4KKwkJCQkyODIgUHVrb2stcmkgU29uZ1Nhbi1teW9uIERhbmd6aW4tZ3VuIENodW5nY2hlb25nbmFtLWRvLCAgMzQzLTgzNAorCQkJCSMzMDEsIDE0MjktNyBTZW9DaG8tZG9uZworCQkJCVNlb3VsIFNlb0Noby1ndSAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTQ4ICAgKGhleCkJCUludmVudGVjIE11bHRpbWVkaWEgJiBUZWxlY29tIENvcnBvcmF0aW9uCiswMDE0NDggICAgIChiYXNlIDE2KQkJSW52ZW50ZWMgTXVsdGltZWRpYSAmIFRlbGVjb20gQ29ycG9yYXRpb24KKwkJCQk1RixOTy4zOTYsU2VjLjEgTmVpLUh1IFJvYWQKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtNDkgICAoaGV4KQkJU2ljaHVhbiBDaGFuZ2hvbmcgRWxlY3RyaWMgTHRkLgorMDAxNDQ5ICAgICAoYmFzZSAxNikJCVNpY2h1YW4gQ2hhbmdob25nIEVsZWN0cmljIEx0ZC4KKwkJCQlOby4zNSxFYXN0IE1pYW5YaW4gUm9hZAorCQkJCU1pYW5ZYW5nIFNpQ2h1YW4gUFJDIDYyMTAwMAorCQkJCUNISU5BCisKKzAwLTE0LTRBICAgKGhleCkJCVRhaXdhbiBUaGljay1GaWxtIEluZC4gQ29ycC4KKzAwMTQ0QSAgICAgKGJhc2UgMTYpCQlUYWl3YW4gVGhpY2stRmlsbSBJbmQuIENvcnAuCisJCQkJTk8uMTI2LFd1dSBHb25nIDJuZCBSRCwKKwkJCQlXdXUgR3V1IEluZHVzdHJpYWwgWm9uZQorCQkJCVRhaXBlaSBIc2llbiAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC00QiAgIChoZXgpCQlIaWZuLCBJbmMuCiswMDE0NEIgICAgIChiYXNlIDE2KQkJSGlmbiwgSW5jLgorCQkJCTc1MCBVbml2ZXJzaXR5IEF2ZQorCQkJCVN1aXRlIDIwMAorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNEMgICAoaGV4KQkJR2VuZXJhbCBNZXRlcnMgQ29ycC4KKzAwMTQ0QyAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIE1ldGVycyBDb3JwLgorCQkJCTE5MzUgRG9taW5pb24gV2F5CisJCQkJQ29sb3JhZG8gU3ByaW5ncyBDb2xvcmFkbyA4MDkxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNEQgICAoaGV4KQkJSW50ZWxsaWdlbnQgU3lzdGVtcworMDAxNDREICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IFN5c3RlbXMKKwkJCQkxMTEwMSBKb2hucyBIb3BraW5zIFJvYWQKKwkJCQlMYXVyZWwgTUQgMjA3MjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTRFICAgKGhleCkJCVNSSVNBCiswMDE0NEUgICAgIChiYXNlIDE2KQkJU1JJU0EKKwkJCQkzNi8xLCBOYWtoaW1vdnNraXkgcHItdAorCQkJCU1vc2NvdyAxMTcyMTgKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMTQtNEYgICAoaGV4KQkJT3JhY2xlIENvcnBvcmF0aW9uCiswMDE0NEYgICAgIChiYXNlIDE2KQkJT3JhY2xlIENvcnBvcmF0aW9uCisJCQkJMTcgTmV0d29yayBDaXJjbGUKKwkJCQlCbGRnLiAxNywgVU1QSzE3LTEzMQorCQkJCU1lbmxvIFBhcmsgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTUwICAgKGhleCkJCUhlaW0gU3lzdGVtcyBHbWJICiswMDE0NTAgICAgIChiYXNlIDE2KQkJSGVpbSBTeXN0ZW1zIEdtYkgKKwkJCQlGcmllZHJpY2ggRWJlcnQgU3RyYXNzZQorCQkJCVRlY2hub2xvZ2llUGFyaworCQkJCUJlcmdpc2NoIEdsYWRiYWNoIE5SVyA1MTQyOQorCQkJCUdFUk1BTlkKKworMDAtMTQtNTEgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIgSW5jLgorMDAxNDUxICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlNUzozNUdQTworCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNTIgICAoaGV4KQkJQ0FMQ1VMRVgsSU5DLgorMDAxNDUyICAgICAoYmFzZSAxNikJCUNBTENVTEVYLElOQy4KKwkJCQkxMzIgVy4gTEFTIENSVUNFUyBBVkUuCisJCQkJTEFTIENSVUNFUyBORVcgTUVYSUNPIDg4MDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC01MyAgIChoZXgpCQlBRFZBTlRFQ0ggVEVDSE5PTE9HSUVTIENPLixMVEQKKzAwMTQ1MyAgICAgKGJhc2UgMTYpCQlBRFZBTlRFQ0ggVEVDSE5PTE9HSUVTIENPLixMVEQKKwkJCQkjMTIwMiBBQ0UgVEVDSE5PIFRPV0VSLCA2ODQtMQorCQkJCURldW5nY2hvbi0zRG9uZywgS2FuZ3Nlby1LdQorCQkJCVNlb3VsIDE1Ny03MjEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtNTQgICAoaGV4KQkJU3ltd2F2ZQorMDAxNDU0ICAgICAoYmFzZSAxNikJCVN5bXdhdmUKKwkJCQkxMDI1MSBWaXN0YSBTb3JyZW50byBQYXJrd2F5CisJCQkJU3VpdGUgMTAwCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC01NSAgIChoZXgpCQlDb2RlciBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorMDAxNDU1ICAgICAoYmFzZSAxNikJCUNvZGVyIEVsZWN0cm9uaWNzIENvcnBvcmF0aW9uCisJCQkJVGFrZWRhIEJsZGcsIDEtMzAtNiBTaGlyYXNhZ2ksCisJCQkJTmFrYW5vLWt1IFRva3lvIDE2NS0wMDM1CisJCQkJSkFQQU4KKworMDAtMTQtNTYgICAoaGV4KQkJRWRnZSBQcm9kdWN0cworMDAxNDU2ICAgICAoYmFzZSAxNikJCUVkZ2UgUHJvZHVjdHMKKwkJCQkxMDgwIFNvdXRoIERlcG90IERyaXZlCisJCQkJT2dkZW4gVXRhaCA4NDQwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNTcgICAoaGV4KQkJVC1WSVBTIEFTCiswMDE0NTcgICAgIChiYXNlIDE2KQkJVC1WSVBTIEFTCisJCQkJT3N0ZW5zam92ZWllbiAxOAorCQkJCU9zbG8gTk8tMDY2MQorCQkJCU5PUldBWQorCiswMC0xNC01OCAgIChoZXgpCQlIUyBBdXRvbWF0aWMgQXBTCiswMDE0NTggICAgIChiYXNlIDE2KQkJSFMgQXV0b21hdGljIEFwUworCQkJCUJqZXJyaW5nYnJvdmVqIDcwCisJCQkJUm9kb3ZyZSAgMjYxMAorCQkJCURFTk1BUksKKworMDAtMTQtNTkgICAoaGV4KQkJTW9yYW0gQ28uLCBMdGQuCiswMDE0NTkgICAgIChiYXNlIDE2KQkJTW9yYW0gQ28uLCBMdGQuCisJCQkJM0YsIE1hbndvbCBCbGRnLiwgMTAyMi00CisJCQkJWW91bmd0b25nLWRvbmcsIFlvdW5ndG9uZy1ndQorCQkJCVN1d29uLXNoaSBHeW91bmdnaS1kbyA0NDMtODEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTVBICAgKGhleCkJCU5lcmF0ZWMgQUcKKzAwMTQ1QSAgICAgKGJhc2UgMTYpCQlOZXJhdGVjIEFHCisJCQkJUm9zc3dpZXNzdHJhc3NlIDI5CisJCQkJQ0gtODYwOCBCdWJpa29uIFpICisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTQtNUIgICAoaGV4KQkJU2Vla2VyTmV0IEluYy4KKzAwMTQ1QiAgICAgKGJhc2UgMTYpCQlTZWVrZXJOZXQgSW5jLgorCQkJCTMwMCBTYXRlbGxpdGUgQmx2ZC4KKwkJCQlTdXdhbmVlIEdlb3JnaWEgMzAwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTVDICAgKGhleCkJCUludHJvbmljcyBCLlYuCiswMDE0NUMgICAgIChiYXNlIDE2KQkJSW50cm9uaWNzIEIuVi4KKwkJCQlIZXJtZXN3ZWcgMjIKKwkJCQlCYXJuZXZlbGQgR2VsZGVybGFuZCAzNzcxIE5ECisJCQkJTkVUSEVSTEFORFMKKworMDAtMTQtNUQgICAoaGV4KQkJV0ogQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTQ1RCAgICAgKGJhc2UgMTYpCQlXSiBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTQwMSBSaXZlciBPYWtzIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNUUgICAoaGV4KQkJSUJNIENvcnAKKzAwMTQ1RSAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNUYgICAoaGV4KQkJQURJVEVDIENPLiBMVEQKKzAwMTQ1RiAgICAgKGJhc2UgMTYpCQlBRElURUMgQ08uIExURAorCQkJCTRGIEh5b3dvbiBCL0QsIDk5LTUsCisJCQkJS2FyYWstZG9uZyxTb25ncGEtZ3UKKwkJCQlTZW91bCAxMzgtODA1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTYwICAgKGhleCkJCUt5b2NlcmEgV2lyZWxlc3MgQ29ycC4KKzAwMTQ2MCAgICAgKGJhc2UgMTYpCQlLeW9jZXJhIFdpcmVsZXNzIENvcnAuCisJCQkJMTAzMDAgQ2FtcHVzIFBvaW50IERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC02MSAgIChoZXgpCQlDT1JPTkEgQ09SUE9SQVRJT04KKzAwMTQ2MSAgICAgKGJhc2UgMTYpCQlDT1JPTkEgQ09SUE9SQVRJT04KKwkJCQk3LTcsIEhJR0FTSEktU0hJTkJPCisJCQkJU0FOSk8tU0hJIE5JSUdBVEEgOTU1LTg1MTAKKwkJCQlKQVBBTgorCiswMC0xNC02MiAgIChoZXgpCQlEaWdpd2VsbCBUZWNobm9sb2d5LCBpbmMKKzAwMTQ2MiAgICAgKGJhc2UgMTYpCQlEaWdpd2VsbCBUZWNobm9sb2d5LCBpbmMKKwkJCQk0RiwgTm8uMSwgUHJvc3Blcml0eSAxc3QgUm9hZAorCQkJCUhzaW5jaHUgU2NpZW5jZSBQYXJrIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtNjMgICAoaGV4KQkJSURDUyBOLlYuCiswMDE0NjMgICAgIChiYXNlIDE2KQkJSURDUyBOLlYuCisJCQkJSGVsbGViZWVtZGVuIDkKKwkJCQlIYXNzZWx0IExpbWJ1cmcgMzUwMAorCQkJCUJFTEdJVU0KKworMDAtMTQtNjQgICAoaGV4KQkJQ3J5cHRvc29mdAorMDAxNDY0ICAgICAoYmFzZSAxNikJCUNyeXB0b3NvZnQKKwkJCQlMZXJtb250b3ZhIHN0ciwgMworCQkJCVBlbnphIHJlZ2lvbiA0NDAwMjYKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMTQtNjUgICAoaGV4KQkJTm92byBOb3JkaXNrIEEvUworMDAxNDY1ICAgICAoYmFzZSAxNikJCU5vdm8gTm9yZGlzayBBL1MKKwkJCQlOb3ZvIEFsbGUKKwkJCQlCYWdzdmFlcmQgIDI4ODAKKwkJCQlERU5NQVJLCisKKzAwLTE0LTY2ICAgKGhleCkJCUtsZWluaGVueiBFbGVrdHJvbmlrIEdtYkgKKzAwMTQ2NiAgICAgKGJhc2UgMTYpCQlLbGVpbmhlbnogRWxla3Ryb25payBHbWJICisJCQkJR3JlaW5lcmJlcmcgMTQKKwkJCQlNdW5pY2ggIDgxMzcxCisJCQkJR0VSTUFOWQorCiswMC0xNC02NyAgIChoZXgpCQlBcnJvd1NwYW4gSW5jLgorMDAxNDY3ICAgICAoYmFzZSAxNikJCUFycm93U3BhbiBJbmMuCisJCQkJNDY5OSBPbGQgSXJvbnNpZGVzIERyLiBTdWl0ZSAxMDAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNjggICAoaGV4KQkJQ2VsUGxhbiBJbnRlcm5hdGlvbmFsLCBJbmMuCiswMDE0NjggICAgIChiYXNlIDE2KQkJQ2VsUGxhbiBJbnRlcm5hdGlvbmFsLCBJbmMuCisJCQkJMTgzNSBBbGV4YW5kZXIgQmVsbCBEcml2ZQorCQkJCXN1aXRlIDIwMAorCQkJCVJlc3RvbiBWQSAyMDE5MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNjkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNDY5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNkEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNDZBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNkIgICAoaGV4KQkJQW5hZ3JhbiwgSW5jLgorMDAxNDZCICAgICAoYmFzZSAxNikJCUFuYWdyYW4sIEluYy4KKwkJCQk1ODAgTm9ydGggUGFzdG9yaWEgQXYKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTZDICAgKGhleCkJCU5ldGdlYXIgSW5jLgorMDAxNDZDICAgICAoYmFzZSAxNikJCU5ldGdlYXIgSW5jLgorCQkJCTQ1MDAgR3JlYXQgQW1lcmljYSBQYXJrd2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTZEICAgKGhleCkJCVJGIFRlY2hub2xvZ2llcworMDAxNDZEICAgICAoYmFzZSAxNikJCVJGIFRlY2hub2xvZ2llcworCQkJCTMxMjUgTiAxMjZ0aCBTdHJlZXQKKwkJCQlCcm9va2ZpZWxkIFdJIDUzMDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC02RSAgIChoZXgpCQlILiBTdG9sbCBHbWJIICYgQ28uIEtHCiswMDE0NkUgICAgIChiYXNlIDE2KQkJSC4gU3RvbGwgR21iSCAmIENvLiBLRworCQkJCVN0b2xsd2VnCisJCQkJUmV1dGxpbmdlbiBEZXV0c2NobGFuZCA3Mjc2MAorCQkJCUdFUk1BTlkKKworMDAtMTQtNkYgICAoaGV4KQkJS29obGVyIENvCiswMDE0NkYgICAgIChiYXNlIDE2KQkJS29obGVyIENvCisJCQkJNDQ0IEhpZ2hsYW5kIERyaXZlCisJCQkJTVMgMDcyCisJCQkJS29obGVyIFdJIDUzMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC03MCAgIChoZXgpCQlQcm9rb20gU29mdHdhcmUgU0EKKzAwMTQ3MCAgICAgKGJhc2UgMTYpCQlQcm9rb20gU29mdHdhcmUgU0EKKwkJCQlBbC4gSmVyb3pvbGltc2tpZSA2NS83OQorCQkJCVdhcnN6YXdhIE1hem93aWVja2llIDAwLTY5NworCQkJCVBPTEFORAorCiswMC0xNC03MSAgIChoZXgpCQlFYXN0ZXJuIEFzaWEgVGVjaG5vbG9neSBMaW1pdGVkCiswMDE0NzEgICAgIChiYXNlIDE2KQkJRWFzdGVybiBBc2lhIFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCTEzRiwgTm8uIDk5LCBTZWMuIDEsIE5hbmthbiBSb2FkLAorCQkJCUx1Y2h1LCBUYW95dWFuIDMzOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtNzIgICAoaGV4KQkJQ2hpbmEgQnJvYWRiYW5kIFdpcmVsZXNzIElQIFN0YW5kYXJkIEdyb3VwCiswMDE0NzIgICAgIChiYXNlIDE2KQkJQ2hpbmEgQnJvYWRiYW5kIFdpcmVsZXNzIElQIFN0YW5kYXJkIEdyb3VwCisJCQkJUC5PLkJPWCA4OCxXZXN0IEhpZ2gtdGVjaAorCQkJCURldmVsb3BtZW50IENlbnRlciwKKwkJCQlYaSdhbiBTaGFhbiBYaSA3MTAwNzUKKwkJCQlDSElOQQorCiswMC0xNC03MyAgIChoZXgpCQlCb29raGFtIEluYworMDAxNDczICAgICAoYmFzZSAxNikJCUJvb2toYW0gSW5jCisJCQkJMTAgQnJld2VyIEh1bnQgV2F5CisJCQkJS2FuYXRhIE9OIEsySyAyQjUKKwkJCQlDQU5BREEKKworMDAtMTQtNzQgICAoaGV4KQkJSzQwIEVsZWN0cm9uaWNzCiswMDE0NzQgICAgIChiYXNlIDE2KQkJSzQwIEVsZWN0cm9uaWNzCisJCQkJNjAwIFRvbGxnYXRlIFJkLiBVbml0IEEKKwkJCQlFbGdpbiBJTCA2MDEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNzUgICAoaGV4KQkJV2lsaW5lIE5ldHdvcmtzLCBJbmMuCiswMDE0NzUgICAgIChiYXNlIDE2KQkJV2lsaW5lIE5ldHdvcmtzLCBJbmMuCisJCQkJNzQxIEFsZXhhbmRlciBSZAorCQkJCVByaW5jZXRvbiBOSiAwODU0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNzYgICAoaGV4KQkJTXVsdGlDb20gSW5kdXN0cmllcyBMaW1pdGVkCiswMDE0NzYgICAgIChiYXNlIDE2KQkJTXVsdGlDb20gSW5kdXN0cmllcyBMaW1pdGVkCisJCQkJUm9vbSAxMjA2LTcsIE1hbmhhdHRhbiBDZW50ZXIsCisJCQkJOCBLd2FpIENoZW9uZyBSZC4KKwkJCQlLd2FpIENodW5nLCBOLlQuICAKKwkJCQlIT05HIEtPTkcKKworMDAtMTQtNzcgICAoaGV4KQkJTmVydGVjICBJbmMuCiswMDE0NzcgICAgIChiYXNlIDE2KQkJTmVydGVjICBJbmMuCisJCQkJOTUwIENvd2llIHN0LgorCQkJCUdyYW5ieSBRdWViZWMgSjJKIDFQMgorCQkJCUNBTkFEQQorCiswMC0xNC03OCAgIChoZXgpCQlTaGVuWmhlbiBUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMTQ3OCAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQkzL0YsQmxkZy5SMS1CLEhpLXRlY2ggSW5kdXN0cmlhbCBQYXJrLAorCQkJCVNoZW5uYW4gUmQuCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTE0LTc5ICAgKGhleCkJCU5FQyBNYWdudXMgQ29tbXVuaWNhdGlvbnMsTHRkLgorMDAxNDc5ICAgICAoYmFzZSAxNikJCU5FQyBNYWdudXMgQ29tbXVuaWNhdGlvbnMsTHRkLgorCQkJCTQtMjgKKwkJCQlNaXRhIDEtQ2hvbWUKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA4LTAwNzMKKwkJCQlKQVBBTgorCiswMC0xNC03QSAgIChoZXgpCQlFdWJ1cyBHbWJICiswMDE0N0EgICAgIChiYXNlIDE2KQkJRXVidXMgR21iSAorCQkJCUdvbGxpZXJzdHIuIDcwICBBdWZnYW5nIEUgIDQuU3RvY2sKKwkJCQlNdW5pY2ggQmF2YXJpYSA4MDMzOQorCQkJCUdFUk1BTlkKKworMDAtMTQtN0IgICAoaGV4KQkJSXRlcmlzLCBJbmMuCiswMDE0N0IgICAgIChiYXNlIDE2KQkJSXRlcmlzLCBJbmMuCisJCQkJMTUxNSBTLiBNYW5jaGVzdGVyIEF2ZS4KKwkJCQlBbmFoZWltIENBIDkyODAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC03QyAgIChoZXgpCQkzQ29tIEx0ZAorMDAxNDdDICAgICAoYmFzZSAxNikJCTNDb20gTHRkCisJCQkJUGVvcGxlYnVpbGRpbmcgMgorCQkJCVBlb3BsZWJ1aWxkaW5nIEVzdGF0ZSwgTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNC03RCAgIChoZXgpCQlBZW9uIERpZ2l0YWwgSW50ZXJuYXRpb25hbAorMDAxNDdEICAgICAoYmFzZSAxNikJCUFlb24gRGlnaXRhbCBJbnRlcm5hdGlvbmFsCisJCQkJMzEtNiwgVGhlIEJ1bmQgQ2VudGVyCisJCQkJMjIyIFlhbiBBbiBFLiBSZAorCQkJCVNoYW5naGFpIFNIIDIwMDAwMgorCQkJCUNISU5BCisKKzAwLTE0LTdFICAgKGhleCkJCUlubmVyV2lyZWxlc3MKKzAwMTQ3RSAgICAgKGJhc2UgMTYpCQlJbm5lcldpcmVsZXNzCisJCQkJMTE1NSBLYXMgRHJpdmUsIFN1aXRlIDIwMAorCQkJCVJpY2hhcmRzb24gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTdGICAgKGhleCkJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCiswMDE0N0YgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKwkJCQlQcmlucyBCb3VkZXdpam5sYWFuIDQ3CisJCQkJRWRlZ2VtIEFudHdlcnAgQi0yNjUwCisJCQkJQkVMR0lVTQorCiswMC0xNC04MCAgIChoZXgpCQlIaXRhY2hpLUxHIERhdGEgU3RvcmFnZSBLb3JlYSwgSW5jCiswMDE0ODAgICAgIChiYXNlIDE2KQkJSGl0YWNoaS1MRyBEYXRhIFN0b3JhZ2UgS29yZWEsIEluYworCQkJCTE5LTEsQ2hlb25naG8tcmkKKwkJCQlKaW53dXktTXl1bgorCQkJCVB5dW5ndGFpayBLeXVuZ2dpLURvIDQ1MS03MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtODEgICAoaGV4KQkJTXVsdGlsaW5rIEluYworMDAxNDgxICAgICAoYmFzZSAxNikJCU11bHRpbGluayBJbmMKKwkJCQk1ODAgVGVybmVzIEF2ZQorCQkJCUVseXJpYSBPSCA0NDAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtODIgICAoaGV4KQkJR29CYWNrVFYsIEluYworMDAxNDgyICAgICAoYmFzZSAxNikJCUdvQmFja1RWLCBJbmMKKwkJCQk5MzcgSGFtaWx0b24gQXZlbnVlCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtODMgICAoaGV4KQkJZVhTIEluYy4KKzAwMTQ4MyAgICAgKGJhc2UgMTYpCQllWFMgSW5jLgorCQkJCTE5MDAgQWxhbWVkYSBkZSBsYXMgUHVsZ2FzCisJCQkJU3VpdGUgMTAzCisJCQkJU2FuIE1hdGVvIENBIDk0NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC04NCAgIChoZXgpCQlDZXJtYXRlIFRlY2hub2xvZ2llcyBJbmMuCiswMDE0ODQgICAgIChiYXNlIDE2KQkJQ2VybWF0ZSBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTdGLTEsIE5vIDE2OCBMaWVuLUNoZW4gUmQuCisJCQkJQ2h1bmctSG8gQ2l0eSBUYWlwZWkgQ291bnR5IAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtODUgICAoaGV4KQkJR2lnYS1CeXRlCiswMDE0ODUgICAgIChiYXNlIDE2KQkJR2lnYS1CeXRlCisJCQkJTm8uMjE1LE5hbi1QaW5nIFJvYWQsCisJCQkJUGluLUplbiBUYW95dWFuIDMyNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtODYgICAoaGV4KQkJRWNobyBEaWdpdGFsIEF1ZGlvIENvcnBvcmF0aW9uCiswMDE0ODYgICAgIChiYXNlIDE2KQkJRWNobyBEaWdpdGFsIEF1ZGlvIENvcnBvcmF0aW9uCisJCQkJNjQ1MCBWaWEgUmVhbCAjMQorCQkJCUNhcnBpbnRlcmlhIENBIDkzMDEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC04NyAgIChoZXgpCQlBbWVyaWNhbiBUZWNobm9sb2d5IEludGVncmF0b3JzCiswMDE0ODcgICAgIChiYXNlIDE2KQkJQW1lcmljYW4gVGVjaG5vbG9neSBJbnRlZ3JhdG9ycworCQkJCTEzNTggUm9zYWxpYSBBdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtODggICAoaGV4KQkJQWtvcnJpCiswMDE0ODggICAgIChiYXNlIDE2KQkJQWtvcnJpCisJCQkJMzA1IEZvc3RlciBTdHJlZXQKKwkJCQlMaXR0bGV0b24gTUEgMDE0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTg5ICAgKGhleCkJCUIxNTQwMjEwMCAtIEpBTkRFSSwgUy5MLgorMDAxNDg5ICAgICAoYmFzZSAxNikJCUIxNTQwMjEwMCAtIEpBTkRFSSwgUy5MLgorCQkJCVBPTC4gSU5ELiBQT0NPTUFDTywgRS0yOAorCQkJCUxBIENPUlVOQSAgMTUxOTAKKwkJCQlTUEFJTgorCiswMC0xNC04QSAgIChoZXgpCQlFbGluIEViZyBUcmFjdGlvbiBHbWJoCiswMDE0OEEgICAgIChiYXNlIDE2KQkJRWxpbiBFYmcgVHJhY3Rpb24gR21iaAorCQkJCUN1bWJlcmxhbmRzdHJhc3NlIDMyCisJCQkJVmllbm5hICAxMTQwCisJCQkJQVVTVFJJQQorCiswMC0xNC04QiAgIChoZXgpCQlHbG9ibyBFbGVjdHJvbmljIEdtYkggJiBDby4gS0cKKzAwMTQ4QiAgICAgKGJhc2UgMTYpCQlHbG9ibyBFbGVjdHJvbmljIEdtYkggJiBDby4gS0cKKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDRhCisJCQkJTmllZGVybGF1ZXIgQmF5ZXJuIDk3NjE4CisJCQkJR0VSTUFOWQorCiswMC0xNC04QyAgIChoZXgpCQlGb3J0cmVzcyBUZWNobm9sb2dpZXMKKzAwMTQ4QyAgICAgKGJhc2UgMTYpCQlGb3J0cmVzcyBUZWNobm9sb2dpZXMKKwkJCQkyIFRlY2hub2xvZ3kgUGFyayBEcml2ZQorCQkJCVdlc3Rmb3JkIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC04RCAgIChoZXgpCQlDdWJpYyBEZWZlbnNlIFNpbXVsYXRpb24gU3lzdGVtcworMDAxNDhEICAgICAoYmFzZSAxNikJCUN1YmljIERlZmVuc2UgU2ltdWxhdGlvbiBTeXN0ZW1zCisJCQkJMjAwMSBXLiBPYWtyaWRnZSBSb2FkCisJCQkJT3JsYW5kbyBGTCAzMjgwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtOEUgICAoaGV4KQkJVGVsZSBQb3dlciBJbmMuCiswMDE0OEUgICAgIChiYXNlIDE2KQkJVGVsZSBQb3dlciBJbmMuCisJCQkJMS00Ni0xNSNCMUYKKwkJCQlBc2FoaWdhb2thCisJCQkJTmVyaW1hLWt1IFRva3lvIDE3Ni0wMDA1CisJCQkJSkFQQU4KKworMDAtMTQtOEYgICAoaGV4KQkJUHJvdHJvbmljIChGYXIgRWFzdCkgTHRkLgorMDAxNDhGICAgICAoYmFzZSAxNikJCVByb3Ryb25pYyAoRmFyIEVhc3QpIEx0ZC4KKwkJCQlSbS4gMjUwNCwgTmFueWFuZyBQbGF6YSwKKwkJCQk1NyBIdW5nIFRvIFJvYWQKKwkJCQlLd3VuIFRvbmcgS293bG9vbiA4NTIKKwkJCQlIT05HIEtPTkcKKworMDAtMTQtOTAgICAoaGV4KQkJQVNQIENvcnBvcmF0aW9uCiswMDE0OTAgICAgIChiYXNlIDE2KQkJQVNQIENvcnBvcmF0aW9uCisJCQkJNDY1IEluZHVzdHJpYWwgUGFyayBSb2FkCisJCQkJSGFydHdlbGwgR0EgMzA2NDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTkxICAgKGhleCkJCURhbmllbHMgRWxlY3Ryb25pY3MgTHRkLgorMDAxNDkxICAgICAoYmFzZSAxNikJCURhbmllbHMgRWxlY3Ryb25pY3MgTHRkLgorCQkJCTQzIEVyaWUgU3QKKwkJCQlWaWN0b3JpYSBCQyBWOFYgMVA4CisJCQkJQ0FOQURBCisKKzAwLTE0LTkyICAgKGhleCkJCUxpdGVvbiwgTW9iaWxlIE1lZGlhIFNvbHV0aW9uIFNCVQorMDAxNDkyICAgICAoYmFzZSAxNikJCUxpdGVvbiwgTW9iaWxlIE1lZGlhIFNvbHV0aW9uIFNCVQorCQkJCTRGLCAzLCBMYW5lIDc2OCwgU2VjLiA0LAorCQkJCVBhdGVoIFJvYWQsCisJCQkJVGFpcGVpICAxMTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTkzICAgKGhleCkJCVN5c3RpbWF4IFNvbHV0aW9ucworMDAxNDkzICAgICAoYmFzZSAxNikJCVN5c3RpbWF4IFNvbHV0aW9ucworCQkJCTEzMDAgRSBMb29rb3V0IERyaXZlCisJCQkJUmljaGFyZHNvbiBUZXhhcyA3NTA4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtOTQgICAoaGV4KQkJRVNVIEFHCiswMDE0OTQgICAgIChiYXNlIDE2KQkJRVNVIEFHCisJCQkJTHVrYXNzdHJhc3NlIDI5CisJCQkJU3QuIEdhbGxlbiAgOTAwOAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE0LTk1ICAgKGhleCkJCTJXaXJlLCBJbmMuCiswMDE0OTUgICAgIChiYXNlIDE2KQkJMldpcmUsIEluYy4KKwkJCQkxNzA0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC05NiAgIChoZXgpCQlQaG9uaWMgQ29ycC4KKzAwMTQ5NiAgICAgKGJhc2UgMTYpCQlQaG9uaWMgQ29ycC4KKwkJCQkxMnRoRmwsIDU5IFR1bmcgSHNpbmcgUmQKKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtOTcgICAoaGV4KQkJWkhJWVVBTiBFbGV0cm9uaWNzIGNvLixsdGQuCiswMDE0OTcgICAgIChiYXNlIDE2KQkJWkhJWVVBTiBFbGV0cm9uaWNzIGNvLixsdGQuCisJCQkJMiBGbG9vciwgTk8uMyBCdWlsZGluZywgSHVhbmd6aG91IEluZHVzdHJpYWwgRXN0YXRlLCBDaGViZWkgUm9hZCwKKwkJCQlUaWFuaGUKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDY2MAorCQkJCUNISU5BCisKKzAwLTE0LTk4ICAgKGhleCkJCVZpa2luZyBEZXNpZ24gVGVjaG5vbG9neQorMDAxNDk4ICAgICAoYmFzZSAxNikJCVZpa2luZyBEZXNpZ24gVGVjaG5vbG9neQorCQkJCTJGLCBOby4yLCBMYW5lIDQyLAorCQkJCUhvdS1HYW5nIFN0cmVldCwgU2hpaC1MaW4gRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtOTkgICAoaGV4KQkJSGVsaWNvbW0gSW5jCiswMDE0OTkgICAgIChiYXNlIDE2KQkJSGVsaWNvbW0gSW5jCisJCQkJMTk0NyBDYW1pbm8gVmlkYSBSb2JsZQorCQkJCVN1aXRlIDEwOQorCQkJCUNhcmxzYmFkIENBIDkyMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC05QSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMTQ5QSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2MDAgTiBVcyBId3kgNDUKKwkJCQlSbSBNVzExMworCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtOUIgICAoaGV4KQkJTm9rb3RhIENvbW11bmljYXRpb25zLCBMTEMKKzAwMTQ5QiAgICAgKGJhc2UgMTYpCQlOb2tvdGEgQ29tbXVuaWNhdGlvbnMsIExMQworCQkJCTIwMCBHYWxsZXJpYSBQYXJrd2F5CisJCQkJU3VpdGUgMTgyMAorCQkJCUF0bGFudGEgR2VvcmdpYSAzMDMzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtOUMgICAoaGV4KQkJSEYgQ29tcGFueQorMDAxNDlDICAgICAoYmFzZSAxNikJCUhGIENvbXBhbnkKKwkJCQlOb2RlIFBhcmsgVG91cmFpbmUKKwkJCQlCUDEgVGF1eGlnbnkgIDM3MzEwCisJCQkJRlJBTkNFCisKKzAwLTE0LTlEICAgKGhleCkJCVNvdW5kIElEIEluYy4KKzAwMTQ5RCAgICAgKGJhc2UgMTYpCQlTb3VuZCBJRCBJbmMuCisJCQkJMzQzMCBXZXN0IEJheXNob3JlIFJvYWQKKwkJCQlQYWxvIEFsdG8gQ2FsaWZvcm5pYSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtOUUgICAoaGV4KQkJVWJPTkUgQ28uLCBMdGQKKzAwMTQ5RSAgICAgKGJhc2UgMTYpCQlVYk9ORSBDby4sIEx0ZAorCQkJCVNoaW55b3VuZyBCLkQuIDYwMiwgU2VvSHllb24yLURvbmcKKwkJCQlCdW5kYW5nLUd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZy1kbyA0NjMtODI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTlGICAgKGhleCkJCVN5c3RlbSBhbmQgQ2hpcHMsIEluYy4KKzAwMTQ5RiAgICAgKGJhc2UgMTYpCQlTeXN0ZW0gYW5kIENoaXBzLCBJbmMuCisJCQkJNEYsTm8uIDEsIExhbmUgNTAsIE5hbkthbmcgUm9hZCwgU2VjdGlvbiAzLAorCQkJCVRhaXBlaSAgMTE1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC1BMCAgIChoZXgpCQlBY2NzZW5zZSwgSW5jLgorMDAxNEEwICAgICAoYmFzZSAxNikJCUFjY3NlbnNlLCBJbmMuCisJCQkJNDYwIFdhcmQgRHJpdmUKKwkJCQlTdWl0ZSBFMgorCQkJCVNhbnRhIEJhcmJhcmEgQ2FsaWZvcm5pYSA5MzExMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQTEgICAoaGV4KQkJU3luY2hyb25vdXMgQ29tbXVuaWNhdGlvbiBDb3JwCiswMDE0QTEgICAgIChiYXNlIDE2KQkJU3luY2hyb25vdXMgQ29tbXVuaWNhdGlvbiBDb3JwCisJCQkJOSBmbG9vciwgTm8xNjgsIFJ1ZWlndWFuZyBSb2FkLCBOZWlodSBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC1BMiAgIChoZXgpCQlDb3JlIE1pY3JvIFN5c3RlbXMgSW5jLgorMDAxNEEyICAgICAoYmFzZSAxNikJCUNvcmUgTWljcm8gU3lzdGVtcyBJbmMuCisJCQkJV2FqdW4gQmxkZy4gNkYsIDItMjItMiwgS29pc2hpa2F3YQorCQkJCUJ1bmt5by1LdSBUb2t5byAxMTItMDAwMgorCQkJCUpBUEFOCisKKzAwLTE0LUEzICAgKGhleCkJCVZpdGVsZWMgQlYKKzAwMTRBMyAgICAgKGJhc2UgMTYpCQlWaXRlbGVjIEJWCisJCQkJa2FwaXR0ZWx3ZWcgMTgKKwkJCQlQLk8uQm94IDY1NDMKKwkJCQlCcmVkYSBOQiBOTCA0ODI3IEhHCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTQtQTQgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMTRBNCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCTVGLTEsIDUgSFNJTi1BTiBST0FECisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOQ0hVICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LUE1ICAgKGhleCkJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxNEE1ICAgICAoYmFzZSAxNikJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLiAxIEplbiBBaSBSb2FkCisJCQkJSHNpbmNodSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIdWtvdSwgSHNpbmNodSAgMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC1BNiAgIChoZXgpCQlUZXJhbmV0aWNzLCBJbmMuCiswMDE0QTYgICAgIChiYXNlIDE2KQkJVGVyYW5ldGljcywgSW5jLgorCQkJCTM5NjUgRnJlZWRvbSBDaXJjbGUKKwkJCQkgU2l4dGggRmxvb3IKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQTcgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTRBNyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgMTc5MFYKKwkJCQlERU5NQVJLCisKKzAwLTE0LUE4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTRBOCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUE5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTRBOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUFBICAgKGhleCkJCUFzaGx5IEF1ZGlvLCBJbmMuCiswMDE0QUEgICAgIChiYXNlIDE2KQkJQXNobHkgQXVkaW8sIEluYy4KKwkJCQk4NDcgSG9sdCBSb2FkCisJCQkJV2Vic3RlciBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQUIgICAoaGV4KQkJU2VuaGFpIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTRBQiAgICAgKGJhc2UgMTYpCQlTZW5oYWkgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCVJtLjEwQS4gMjgvRi5TRUdQbGF6YSBIdWFxaWFuZ2JlaSBSb2FkCisJCQkJU2hlbmd6aGVuIEd1YW5nZG9uZyA1MTgwMzEKKwkJCQlDSElOQQorCiswMC0xNC1BQyAgIChoZXgpCQlCb3VudGlmdWwgV2lGaQorMDAxNEFDICAgICAoYmFzZSAxNikJCUJvdW50aWZ1bCBXaUZpCisJCQkJNzA3IFdlc3QgNzAwIFNvdXRoCisJCQkJV29vZHMgQ3Jvc3MgVXRhaCA4NDA4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQUQgICAoaGV4KQkJR2Fzc25lciBXaWVnZS0gdS4gTWVBP3RlY2huaWsgR21iSAorMDAxNEFEICAgICAoYmFzZSAxNikJCUdhc3NuZXIgV2llZ2UtIHUuIE1lQT90ZWNobmlrIEdtYkgKKwkJCQlNaT9vZW5jaG5lciBCdW5kZXNzdHJhaT9vZWUgMTIzICAgCisJCQkJU2FsemJ1cmcgIEEtNTAyMAorCQkJCUFVU1RSSUEKKworMDAtMTQtQUUgICAoaGV4KQkJV2l6bG9naWNzIENvLiwgTHRkLgorMDAxNEFFICAgICAoYmFzZSAxNikJCVdpemxvZ2ljcyBDby4sIEx0ZC4KKwkJCQlSbSMxMzIxLCBTYW1jaGFuZyBQbGF6YSwgMTczLAorCQkJCURvd2hhLURvbmcgTWFwby1HdSwKKwkJCQlTZW91bCAgMTIxLTc0NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC1BRiAgIChoZXgpCQlEYXRhc3ltIEluYy4KKzAwMTRBRiAgICAgKGJhc2UgMTYpCQlEYXRhc3ltIEluYy4KKwkJCQk0MzUgRWxnaW4gU3RyZWV0CisJCQkJQnJhbnRmb3JkIE9udGFyaW8gTjNTN1A1CisJCQkJQ0FOQURBCisKKzAwLTE0LUIwICAgKGhleCkJCU5hZWlsIENvbW11bml0eQorMDAxNEIwICAgICAoYmFzZSAxNikJCU5hZWlsIENvbW11bml0eQorCQkJCSM1MDYgQWNlVHdpbiBUb3dlciAxLCBHdXJvLURvbmcKKwkJCQlTZW91bCBHdXJvLUd1IDE1Mjc3OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC1CMSAgIChoZXgpCQlBdml0ZWMgQUIKKzAwMTRCMSAgICAgKGJhc2UgMTYpCQlBdml0ZWMgQUIKKwkJCQlCb3ggNzEzOQorCQkJCVNVTkRCWUJFUkcgIFNFLTE3NCAwNworCQkJCVNXRURFTgorCiswMC0xNC1CMiAgIChoZXgpCQltQ3ViZWxvZ2ljcyBDb3Jwb3JhdGlvbgorMDAxNEIyICAgICAoYmFzZSAxNikJCW1DdWJlbG9naWNzIENvcnBvcmF0aW9uCisJCQkJNEYsIFVuaWJvb2tzIEIvRCwgNTE0LTEsIERvZ29rLURvbmcsIEthbmdOYW0KKwkJCQlTZW91bCAgMTM1LTI3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC1CMyAgIChoZXgpCQlDb3JlU3RhciBJbnRlcm5hdGlvbmFsIENvcnAKKzAwMTRCMyAgICAgKGJhc2UgMTYpCQlDb3JlU3RhciBJbnRlcm5hdGlvbmFsIENvcnAKKwkJCQkxMDQ0IFNhbmR5IEhpbGwgUmQKKwkJCQlJcndpbiBQQSAxNTY0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQjQgICAoaGV4KQkJR2VuZXJhbCBEeW5hbWljcyBVbml0ZWQgS2luZ2RvbSBMdGQKKzAwMTRCNCAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIER5bmFtaWNzIFVuaXRlZCBLaW5nZG9tIEx0ZAorCQkJCUNhc3RsZWhhbSBSb2FkCisJCQkJU3QgTGVvbmFyZHMgb24gU2VhIEVhc3QgU3Vzc2V4IFROMzggOU5KCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTQtQjUgICAoaGV4KQkJUEhZU0lPTUVUUklYLElOQworMDAxNEI1ICAgICAoYmFzZSAxNikJCVBIWVNJT01FVFJJWCxJTkMKKwkJCQkxMDEgQklMTEVSSUNBIEFWRSAjNQorCQkJCU4uIEJJTExFUklDQSBNQSAwMTg2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQjYgICAoaGV4KQkJRW5zd2VyIFRlY2hub2xvZ3kgSW5jLgorMDAxNEI2ICAgICAoYmFzZSAxNikJCUVuc3dlciBUZWNobm9sb2d5IEluYy4KKwkJCQkxRiBOby43MCBTZWMuMiBDaHVuZyBTaHVuIFN0LgorCQkJCVRhaXBlaSAgMTE2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC1CNyAgIChoZXgpCQlBUiBJbmZvdGVrIEluYy4KKzAwMTRCNyAgICAgKGJhc2UgMTYpCQlBUiBJbmZvdGVrIEluYy4KKwkJCQk5RiwgTm8uMTg1LCBHYW5nUWlhbiBSb2FkCisJCQkJTmVpSHUgVGVjaG5vbG9neSBQYXJrLAorCQkJCVRhaXBlaSAgMTE0OTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LUI4ICAgKGhleCkJCUhpbGwtUm9tCiswMDE0QjggICAgIChiYXNlIDE2KQkJSGlsbC1Sb20KKwkJCQkxMTI1IEUuIFBlYXJsIFN0cmVldAorCQkJCUJhdGVzdmlsbGUgSU4gNDcwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUI5ICAgKGhleCkJCU1TVEFSIFNFTUlDT05EVUNUT1IKKzAwMTRCOSAgICAgKGJhc2UgMTYpCQlNU1RBUiBTRU1JQ09ORFVDVE9SCisJCQkJMTEtMTMgcnVlIFJlbmUgSmFjcXVlcworCQkJCUlzc3kgbGVzIE1vdWxpbmVhdXggIDkyMTMwCisJCQkJRlJBTkNFCisKKzAwLTE0LUJBICAgKGhleCkJCUNhcnZlcnMgU0EgZGUgQ1YKKzAwMTRCQSAgICAgKGJhc2UgMTYpCQlDYXJ2ZXJzIFNBIGRlIENWCisJCQkJQWx2YXJleiBkZWwgQ2FzdGlsbG8gMTU1MAorCQkJCUNoYXB1bHRlcGVjIENvdW50cnkKKwkJCQlHdWFkYWxhamFyYSBKYWxpc2NvIDQ0NjIwCisJCQkJTUVYSUNPCisKKzAwLTE0LUJCICAgKGhleCkJCU9wZW4gSW50ZXJmYWNlIE5vcnRoIEFtZXJpY2EKKzAwMTRCQiAgICAgKGJhc2UgMTYpCQlPcGVuIEludGVyZmFjZSBOb3J0aCBBbWVyaWNhCisJCQkJNTA2IDJuZCBBdmVudWUsIFN1aXRlIDQyMAorCQkJCVNlYXR0bGUgV0EgOTgxMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUJDICAgKGhleCkJCVNZTkVDVElDIFRFTEVDT00gRVhQT1JUUyBQVlQuIExURC4KKzAwMTRCQyAgICAgKGJhc2UgMTYpCQlTWU5FQ1RJQyBURUxFQ09NIEVYUE9SVFMgUFZULiBMVEQuCisJCQkJMTk2LCAxc3QgTWFpbiwgM3JkIFN0YWdlLCA0dGggQmxvY2sKKwkJCQlCYXNhdmVzaHdhciBOYWdhcgorCQkJCUJBTkdBTE9SRSAgNTYwMDc5CisJCQkJSU5ESUEKKworMDAtMTQtQkQgICAoaGV4KQkJaW5jTkVUV09SS1MsIEluYworMDAxNEJEICAgICAoYmFzZSAxNikJCWluY05FVFdPUktTLCBJbmMKKwkJCQkxOTggQnJpZ2h0b24gQXZlCisJCQkJTG9uZyBCcmFuY2ggTkogMDc3NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUJFICAgKGhleCkJCVdpbmsgY29tbXVuaWNhdGlvbiB0ZWNobm9sb2d5IENPLkxURAorMDAxNEJFICAgICAoYmFzZSAxNikJCVdpbmsgY29tbXVuaWNhdGlvbiB0ZWNobm9sb2d5IENPLkxURAorCQkJCUh1aWppYW5nIEluZCBCbGRpbmcgRGFzaGkgVG93bgorCQkJCVBhbnl1IERpc3RyaWN0CisJCQkJR3VhbmcgemhvdSBHdWFuZyBkb25nIDUxMTQzMAorCQkJCUNISU5BCisKKzAwLTE0LUJGICAgKGhleCkJCUNpc2NvLUxpbmtzeXMgTExDCiswMDE0QkYgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cyBMTEMKKwkJCQkxMjEgVGhlb3J5IERyLgorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQzAgICAoaGV4KQkJU3ltc3RyZWFtIFRlY2hub2xvZ3kgR3JvdXAgTHRkCiswMDE0QzAgICAgIChiYXNlIDE2KQkJU3ltc3RyZWFtIFRlY2hub2xvZ3kgR3JvdXAgTHRkCisJCQkJTGV2ZWwgMSwgMyBDaGVzdGVyIFN0cmVldAorCQkJCU9ha2xlaWdoIFZpY3RvcmlhIDMxNjYKKwkJCQlBVVNUUkFMSUEKKworMDAtMTQtQzEgICAoaGV4KQkJVS5TLiBSb2JvdGljcyBDb3Jwb3JhdGlvbgorMDAxNEMxICAgICAoYmFzZSAxNikJCVUuUy4gUm9ib3RpY3MgQ29ycG9yYXRpb24KKwkJCQk5MzUgTmF0aW9uYWwgUGFya3dheQorCQkJCVNjaGF1bWJ1cmcgSUwgNjAxNzMtNTE1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQzIgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDE0QzIgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgVG9tYmFsbCBQYXJrd2F5CisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1DMyAgIChoZXgpCQlTZWFnYXRlIFRlY2hub2xvZ3kgTExDCiswMDE0QzMgICAgIChiYXNlIDE2KQkJU2VhZ2F0ZSBUZWNobm9sb2d5IExMQworCQkJCTEyODAgRGlzYyBEcml2ZQorCQkJCVNoYWtvcGVlIE1OIDU1Mzc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1DNCAgIChoZXgpCQlWaXRlbGNvbSBNb2JpbGUgVGVjaG5vbG9neQorMDAxNEM0ICAgICAoYmFzZSAxNikJCVZpdGVsY29tIE1vYmlsZSBUZWNobm9sb2d5CisJCQkJUFRBLCBBdmRhLCBKdWFuIExvcGV6IFBlbmFsdmVyLCBuPyA3CisJCQkJMjk1OTAsIENhbXBhbmlsbGFzCisJCQkJQ2FtcGFuaWxsYXMuIE1hbGFnYS4gCisJCQkJU1BBSU4KKworMDAtMTQtQzUgICAoaGV4KQkJQWxpdmUgVGVjaG5vbG9naWVzIFB0eSBMdGQKKzAwMTRDNSAgICAgKGJhc2UgMTYpCQlBbGl2ZSBUZWNobm9sb2dpZXMgUHR5IEx0ZAorCQkJCTExIFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlBcnVuZGVsIFF1ZWVuc2xhbmQgNDIxNAorCQkJCUFVU1RSQUxJQQorCiswMC0xNC1DNiAgIChoZXgpCQlRdWl4YW50IEx0ZAorMDAxNEM2ICAgICAoYmFzZSAxNikJCVF1aXhhbnQgTHRkCisJCQkJNjFBIE1vdW50IFBsZWFzYW50CisJCQkJQmlnZ2luIEhpbGwKKwkJCQlFbmdsYW5kIEtlbnQgVE4xNiAzVFAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNC1DNyAgIChoZXgpCQlOb3J0ZWwKKzAwMTRDNyAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xNC1DOCAgIChoZXgpCQlDb250ZW1wb3JhcnkgUmVzZWFyY2ggQ29ycAorMDAxNEM4ICAgICAoYmFzZSAxNikJCUNvbnRlbXBvcmFyeSBSZXNlYXJjaCBDb3JwCisJCQkJMTc2MzAgRGF2ZW5wb3J0IFJkCisJCQkJU1RFIDExMworCQkJCURhbGxhcyBUWCA3NTI1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQzkgICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCiswMDE0QzkgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJMTc0NSBUZWNobm9sb2d5IERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1DQSAgIChoZXgpCQlLZXkgUmFkaW8gU3lzdGVtcyBMaW1pdGVkCiswMDE0Q0EgICAgIChiYXNlIDE2KQkJS2V5IFJhZGlvIFN5c3RlbXMgTGltaXRlZAorCQkJCVZlbnVzIEhvdXNlCisJCQkJQ2FsbGV2YSBQYXJrCisJCQkJQWxkZXJtYXN0b24gQmVya3NoaXJlIFJHNyA4REEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNC1DQiAgIChoZXgpCQlMaWZlU3luYyBDb3Jwb3JhdGlvbgorMDAxNENCICAgICAoYmFzZSAxNikJCUxpZmVTeW5jIENvcnBvcmF0aW9uCisJCQkJMSBFIEJyb3dhcmQgQm91bGV2YXJkLCBTdWl0ZSAxNzAxCisJCQkJRm9ydCBMYXVkZXJkYWxlIEZsb3JpZGEgMzMzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUNDICAgKGhleCkJCVpldGVjLCBJbmMuCiswMDE0Q0MgICAgIChiYXNlIDE2KQkJWmV0ZWMsIEluYy4KKwkJCQk4MjI2IEJyYWNrZW4gUGxhY2UgU0UKKwkJCQlTbm9xdWFsbWllIFdBIDk4MDY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1DRCAgIChoZXgpCQlEaWdpdGFsWm9uZSBDby4sIEx0ZC4KKzAwMTRDRCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsWm9uZSBDby4sIEx0ZC4KKwkJCQlOby4gMTAwMSBFJkMgVmVudHVyZURyZWFtVG93ZXIyCisJCQkJMTk3LTEwIEd1cm8tZG9uZywgR3Vyby1ndQorCQkJCVNlb3VsICAxNTItODQ4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LUNFICAgKGhleCkJCU5GIENPUlBPUkFUSU9OCiswMDE0Q0UgICAgIChiYXNlIDE2KQkJTkYgQ09SUE9SQVRJT04KKwkJCQk2LTMtMjAsIFRzdW5hc2hpbWEtaGlnYXNoaQorCQkJCUtvaG9rdS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyMy04NTA4CisJCQkJSkFQQU4KKworMDAtMTQtQ0YgICAoaGV4KQkJSU5WSVNJTyBDb21tdW5pY2F0aW9ucworMDAxNENGICAgICAoYmFzZSAxNikJCUlOVklTSU8gQ29tbXVuaWNhdGlvbnMKKwkJCQlTdGFtaG9sbWVuIDE1NworCQkJCUh2aWRvdnJlICAyNjUwCisJCQkJREVOTUFSSworCiswMC0xNC1EMCAgIChoZXgpCQlCVEkgU3lzdGVtcyBJbmMuCiswMDE0RDAgICAgIChiYXNlIDE2KQkJQlRJIFN5c3RlbXMgSW5jLgorCQkJCTUwIE5vcnRoc2lkZSBSb2FkCisJCQkJT3R0YXdhIE9udGFyaW8gSzJIIDVaNgorCQkJCUNBTkFEQQorCiswMC0xNC1EMSAgIChoZXgpCQlUUkVORG5ldAorMDAxNEQxICAgICAoYmFzZSAxNikJCVRSRU5EbmV0CisJCQkJMjA2NzUgTWFuaGF0dGFuIFBsYWNlCisJCQkJVG9ycmFuY2UgQ0EgOTA1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUQyICAgKGhleCkJCUtZVUtJIENPUlBPUkFUSU9OCiswMDE0RDIgICAgIChiYXNlIDE2KQkJS1lVS0kgQ09SUE9SQVRJT04KKwkJCQk0LTE5LTE4IFNISU1JWlUsTUlOQU1JLUtVCisJCQkJRlVLVU9LQSAgODE1LTAwMzEKKwkJCQlKQVBBTgorCiswMC0xNC1EMyAgIChoZXgpCQlTRVBTQQorMDAxNEQzICAgICAoYmFzZSAxNikJCVNFUFNBCisJCQkJY2FsbGUgQWxiYXRyb3MsIDcgeSA5CisJCQkJUG9sLiBJbmQuIExhIEVzdGFjaW9uCisJCQkJUElOVE8gTWFkcmlkIDI4MzIwCisJCQkJU1BBSU4KKworMDAtMTQtRDQgICAoaGV4KQkJSyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDE0RDQgICAgIChiYXNlIDE2KQkJSyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJMzI1IEdhbmJhcmEKKwkJCQlLYW1pLW1hY2hpCisJCQkJS2FtaS1ndW4gTWl5YWdpLWtlbiA5ODEtNDI2MworCQkJCUpBUEFOCisKKzAwLTE0LUQ1ICAgKGhleCkJCURhdGFuZyBUZWxlY29tIFRlY2hub2xvZ3kgQ08uICwgTENELE9wdGljYWwgQ29tbXVuaWNhdGlvbiBCcgorMDAxNEQ1ICAgICAoYmFzZSAxNikJCURhdGFuZyBUZWxlY29tIFRlY2hub2xvZ3kgQ08uICwgTENELE9wdGljYWwgQ29tbXVuaWNhdGlvbiBCcgorCQkJCTNyZCBGbG9vcixCdWlsZGluZyA4LEhpLVRlY2ggSW5jdWJhdGlvbiBQYXJrLAorCQkJCU5hbnlhbnhpYW4sVGlhbmZ1IEF2ZSxjaGVuZ2R1IEhpLVRlY2ggWm9uZSwKKwkJCQlDaGVuZ0R1IFNpQ2h1YW4gNjEwMDQxCisJCQkJQ0hJTkEKKworMDAtMTQtRDYgICAoaGV4KQkJSmVvbmdtaW4gRWxlY3Ryb25pY3MgQ28uLEx0ZC4KKzAwMTRENiAgICAgKGJhc2UgMTYpCQlKZW9uZ21pbiBFbGVjdHJvbmljcyBDby4sTHRkLgorCQkJCSM3MTAsIEJ5dWtzYW4gRGlnaXRhbCBWYWxsZXkgMiwKKwkJCQlLYXNhbi1Eb25nLCBLZXVtY2hlb24tR3UsCisJCQkJU2VvdWwgIDE1MyA3ODMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtRDcgICAoaGV4KQkJRGF0YXN0b3JlIFRlY2hub2xvZ3kgQ29ycAorMDAxNEQ3ICAgICAoYmFzZSAxNikJCURhdGFzdG9yZSBUZWNobm9sb2d5IENvcnAKKwkJCQk5RiwgTk8uMTAsIFNFQy4xLCBDaHVuZyBIc2luZyBSRC4sIFd1LUt1CisJCQkJVGFpcGVpIEhzaWVuLCAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC1EOCAgIChoZXgpCQliaW8tbG9naWMgU0EKKzAwMTREOCAgICAgKGJhc2UgMTYpCQliaW8tbG9naWMgU0EKKwkJCQkxLCBydWUgZGUgbCdFdXJvcGUKKwkJCQlDTEFJWCAgMzg2NDAKKwkJCQlGUkFOQ0UKKworMDAtMTQtRDkgICAoaGV4KQkJSVAgRmFicmljcywgSW5jLgorMDAxNEQ5ICAgICAoYmFzZSAxNikJCUlQIEZhYnJpY3MsIEluYy4KKwkJCQkxNDk2NCBOVyBHcmVlbmJyaWVyIFBhcmt3YXkKKwkJCQlCZWF2ZXJ0b24gT3JlZ29uIDk3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1EQSAgIChoZXgpCQlIdW50bGVpZ2ggSGVhbHRoY2FyZQorMDAxNERBICAgICAoYmFzZSAxNikJCUh1bnRsZWlnaCBIZWFsdGhjYXJlCisJCQkJSHVudGxlaWdoIEhlYWx0aGNhcmUgLSBEaWFnbm9zdGljIFByb2R1Y3RzIERpdmlzaW9uCisJCQkJMzUgUG9ydG1hbm1vb3IgUm9hZAorCQkJCUNhcmRpZmYgIENGMjQgNUhOCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTQtREIgICAoaGV4KQkJRWxtYSBUcmVuZXcgRWxlY3Ryb25pYyBHbWJICiswMDE0REIgICAgIChiYXNlIDE2KQkJRWxtYSBUcmVuZXcgRWxlY3Ryb25pYyBHbWJICisJCQkJU3R1dHRnYXJ0ZXIgU3RyYXNzZSAxMQorCQkJCVBmb3J6aGVpbSBCVyA3NTE3OQorCQkJCUdFUk1BTlkKKworMDAtMTQtREMgICAoaGV4KQkJQ29tbXVuaWNhdGlvbiBTeXN0ZW0gRGVzaWduICYgTWFudWZhY3R1cmluZyAoQ1NETSkKKzAwMTREQyAgICAgKGJhc2UgMTYpCQlDb21tdW5pY2F0aW9uIFN5c3RlbSBEZXNpZ24gJiBNYW51ZmFjdHVyaW5nIChDU0RNKQorCQkJCVBvc3RidXMgMTgxCisJCQkJQnVzc3VtIE5IIDE0MDAgQUQKKwkJCQlORVRIRVJMQU5EUworCiswMC0xNC1ERCAgIChoZXgpCQlDb3ZlcmdlbmNlIEluYy4KKzAwMTRERCAgICAgKGJhc2UgMTYpCQlDb3ZlcmdlbmNlIEluYy4KKwkJCQlPbmUgQ2xvY2sgVG93ZXIgUGxhY2UsIFN1aXRlIDIwMAorCQkJCU1heW5hcmQgTUEgMDE3NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LURFICAgKGhleCkJCVNhZ2UgSW5zdHJ1bWVudHMgSW5jLgorMDAxNERFICAgICAoYmFzZSAxNikJCVNhZ2UgSW5zdHJ1bWVudHMgSW5jLgorCQkJCTI0MCBBaXJwb3J0IEJsdmQuCisJCQkJRnJlZWRvbSBDQSA5NTAxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtREYgICAoaGV4KQkJSEktUCBUZWNoIENvcnBvcmF0aW9uCiswMDE0REYgICAgIChiYXNlIDE2KQkJSEktUCBUZWNoIENvcnBvcmF0aW9uCisJCQkJMS0yNy0yMyBIaWdhc2hpdG9rb3JvemF3YQorCQkJCVRva29yb3phd2EgU2FpdGFtYSAzNTktMDAyMQorCQkJCUpBUEFOCisKKzAwLTE0LUUwICAgKGhleCkJCUxFVCdTIENvcnBvcmF0aW9uCiswMDE0RTAgICAgIChiYXNlIDE2KQkJTEVUJ1MgQ29ycG9yYXRpb24KKwkJCQlCYW5jaG8gQmxkZy4gNEYsIDItMTgtMjAgTWFydW5vdWNoaSwgTmFrYQorCQkJCU5hZ295YSBBaWNoaSA0NjAtMDAwMgorCQkJCUpBUEFOCisKKzAwLTE0LUUxICAgKGhleCkJCURhdGEgRGlzcGxheSBBRworMDAxNEUxICAgICAoYmFzZSAxNikJCURhdGEgRGlzcGxheSBBRworCQkJCUluZHVzdHJpZXN0cmFzc2UgMQorCQkJCUdlcm1lcmluZyBCYXllcm4gODIxMTAKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LUUyICAgKGhleCkJCWRhdGFjb20gc3lzdGVtcyBpbmMuCiswMDE0RTIgICAgIChiYXNlIDE2KQkJZGF0YWNvbSBzeXN0ZW1zIGluYy4KKwkJCQk5IGFkbGVyIGRyaXZlCisJCQkJZWFzdCBzeXJhY3VzZSBuLnkuIDEzMDU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1FMyAgIChoZXgpCQltbS1sYWIgR21iSAorMDAxNEUzICAgICAoYmFzZSAxNikJCW1tLWxhYiBHbWJICisJCQkJU3RhbW1oZWltZXIgU3RyYXNzZSAxMAorCQkJCUQtNzA4MDYKKwkJCQlLb3Jud2VzdGhlaW0gIAorCQkJCUdFUk1BTlkKKworMDAtMTQtRTQgICAoaGV4KQkJSW50ZWdyYWwgVGVjaG5vbG9naWVzCiswMDE0RTQgICAgIChiYXNlIDE2KQkJSW50ZWdyYWwgVGVjaG5vbG9naWVzCisJCQkJOTg1NSBDcm9zc3BvaW50IEJsdmQKKwkJCQlTdGUgMTI2CisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1FNSAgIChoZXgpCQlBbHRpY2FzdAorMDAxNEU1ICAgICAoYmFzZSAxNikJCUFsdGljYXN0CisJCQkJMTZ0aCBmbG9vciwgTmFyYSBCbGRnLCAxMzI4LTMKKwkJCQlTZW9jaG8tZG9uZywgU2VvY2hvLWd1LAorCQkJCVNlb3VsIDEzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtRTYgICAoaGV4KQkJQUlNIEluZnJhcm90bW9kdWxlIEdtYkgKKzAwMTRFNiAgICAgKGJhc2UgMTYpCQlBSU0gSW5mcmFyb3Rtb2R1bGUgR21iSAorCQkJCVNvZWZsaW5nZXJzdHIuIDEwMAorCQkJCVVsbSBCVyA4OTA3NworCQkJCUdFUk1BTlkKKworMDAtMTQtRTcgICAoaGV4KQkJU3RvbGlueCwuIEluYworMDAxNEU3ICAgICAoYmFzZSAxNikJCVN0b2xpbngsLiBJbmMKKwkJCQkzRiBPaGNoYW5nIEJsZGcuLCA2MSBZYW5namFlLWRvbmcKKwkJCQlTZW9jaG8tZ3UKKwkJCQlTZW91bCAgMTM3LTg4OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC1FOCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxNEU4ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRTkgICAoaGV4KQkJTm9ydGVjaCBJbnRlcm5hdGlvbmFsCiswMDE0RTkgICAgIChiYXNlIDE2KQkJTm9ydGVjaCBJbnRlcm5hdGlvbmFsCisJCQkJMzJBIFdpZ2FudGhvcnBlIFJvYWQKKwkJCQlXaWxsb3d0b24gSHViCisJCQkJUGlldGVybWFydGl6YnVyZyBLd2FadWx1IE5hdGFsIDMyMDEKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMTQtRUEgICAoaGV4KQkJUyBEaWdtIEluYy4gKFNhZmUgUGFyYWRpZ20gSW5jLikKKzAwMTRFQSAgICAgKGJhc2UgMTYpCQlTIERpZ20gSW5jLiAoU2FmZSBQYXJhZGlnbSBJbmMuKQorCQkJCTVGLCBTaGluLWFuIEJsZGcuIDg5LTgsCisJCQkJTW9vbmp1bmctRG9uZworCQkJCVNvbmdwYS1HdSBTZW91bCAxMzgtMjAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LUVCICAgKGhleCkJCUF3YXJlUG9pbnQgQ29ycG9yYXRpb24KKzAwMTRFQiAgICAgKGJhc2UgMTYpCQlBd2FyZVBvaW50IENvcnBvcmF0aW9uCisJCQkJODg5OSBVbml2ZXJzaXR5IENlbnRlciBMYW5lCisJCQkJU2FuIERpZWdvIENBIDkyMTIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1FQyAgIChoZXgpCQlBY3JvIFRlbGVjb20KKzAwMTRFQyAgICAgKGJhc2UgMTYpCQlBY3JvIFRlbGVjb20KKwkJCQk3MTQgV29vbGltIGUtQml6IENlbnRlciAxNzAtNSBHdXJvLWRvbmcKKwkJCQlHdXJvLUd1IFNlb3VsIDE1Mi03NjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtRUQgICAoaGV4KQkJQWlyYWssIEluYy4KKzAwMTRFRCAgICAgKGJhc2UgMTYpCQlBaXJhaywgSW5jLgorCQkJCTIxNjQxIEJlYXVtZWFkZSBDaXJjbGUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlBc2hidXJuIFZpcmdpbmlhIDIwMTQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1FRSAgIChoZXgpCQlXZXN0ZXJuIERpZ2l0YWwgVGVjaG5vbG9naWVzLCBJbmMuCiswMDE0RUUgICAgIChiYXNlIDE2KQkJV2VzdGVybiBEaWdpdGFsIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTIwNTExIExha2UgRm9yZXN0IERyLgorCQkJCUxha2UgRm9yZXN0IENhIDkyNjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1FRiAgIChoZXgpCQlUWmVybyBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTRFRiAgICAgKGJhc2UgMTYpCQlUWmVybyBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk0NTUgVy4gTWF1ZGUgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1GMCAgIChoZXgpCQlCdXNpbmVzcyBTZWN1cml0eSBPTCBBQgorMDAxNEYwICAgICAoYmFzZSAxNikJCUJ1c2luZXNzIFNlY3VyaXR5IE9MIEFCCisJCQkJQm94IDExMCA2NQorCQkJCVN0b3JhIFJhYnkgQnlhdmFnIDg4CisJCQkJTHVuZCAgMjIwIDExCisJCQkJU1dFREVOCisKKzAwLTE0LUYxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTRGMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUYyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTRGMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUYzICAgKGhleCkJCVZpWFMgU3lzdGVtcyBJbmMKKzAwMTRGMyAgICAgKGJhc2UgMTYpCQlWaVhTIFN5c3RlbXMgSW5jCisJCQkJMjIzNSBTaGVwcGFyZCBBdmUgRWFzdAorCQkJCVN1aXRlMTcwNQorCQkJCVRPUk9OVE8gT05UQVJJTyBNMkogNUI1CisJCQkJQ0FOQURBCisKKzAwLTE0LUY0ICAgKGhleCkJCURla1RlYyBEaWdpdGFsIFZpZGVvIEIuVi4KKzAwMTRGNCAgICAgKGJhc2UgMTYpCQlEZWtUZWMgRGlnaXRhbCBWaWRlbyBCLlYuCisJCQkJVmFuIFJpZWJlZWNrd2VnIDQzQQorCQkJCUhpbHZlcnN1bSBOSCAxMjEyQUUKKwkJCQlORVRIRVJMQU5EUworCiswMC0xNC1GNSAgIChoZXgpCQlPU0kgU2VjdXJpdHkgRGV2aWNlcworMDAxNEY1ICAgICAoYmFzZSAxNikJCU9TSSBTZWN1cml0eSBEZXZpY2VzCisJCQkJMTU4MCBKYXlrZW4gV2F5CisJCQkJQ2h1bGEgVmlzdGEgQ2FsaWZvcm5pYSA5MTkxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRjYgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcywgSW5jLgorMDAxNEY2ICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MsIEluYy4KKwkJCQkxMTk0IE4uIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRjcgICAoaGV4KQkJQ3JldmlzCiswMDE0RjcgICAgIChiYXNlIDE2KQkJQ3JldmlzCisJCQkJRC0xMUYsIERpZ2l0YWwgRW1waXJlIEJsZGcuLCA5ODAtMworCQkJCVlvdW5ndG9uZworCQkJCVN1d29uICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtRjggICAoaGV4KQkJU2NpZW50aWZpYyBBdGxhbnRhCiswMDE0RjggICAgIChiYXNlIDE2KQkJU2NpZW50aWZpYyBBdGxhbnRhCisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCU1TIDUuMi40MjgKKwkJCQlMYXdyZW5jZXZpbGxlIEdhIDMwMDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1GOSAgIChoZXgpCQlWYW50YWdlIENvbnRyb2xzCiswMDE0RjkgICAgIChiYXNlIDE2KQkJVmFudGFnZSBDb250cm9scworCQkJCTEwNjEgU291dGggODAwIEVhc3QKKwkJCQlPcmVtIFVUIDg0MDk3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1GQSAgIChoZXgpCQlBc0dhIFMuQS4KKzAwMTRGQSAgICAgKGJhc2UgMTYpCQlBc0dhIFMuQS4KKwkJCQlSb2QgUm9iZXJ0byBNb3JlaXJhIEttIDA0CisJCQkJUGF1bGluaWEgU2FvIFBhdWxvIDEzMTQwLTAwMAorCQkJCUJSQVpJTAorCiswMC0xNC1GQiAgIChoZXgpCQlUZWNobmljYWwgU29sdXRpb25zIEluYy4KKzAwMTRGQiAgICAgKGJhc2UgMTYpCQlUZWNobmljYWwgU29sdXRpb25zIEluYy4KKwkJCQkxLTcxNTcgSG9uZXltYW4gU3RyZWV0CisJCQkJRGVsdGEgQkMgVjRHIDFFMgorCQkJCUNBTkFEQQorCiswMC0xNC1GQyAgIChoZXgpCQlFeHRhbmRvbiwgSW5jLgorMDAxNEZDICAgICAoYmFzZSAxNikJCUV4dGFuZG9uLCBJbmMuCisJCQkJMzkzNTAgQ2l2aWMgQ2VudGVyIERyaXZlIFN0ZS4gMTYwCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRkQgICAoaGV4KQkJVGhlY3VzIFRlY2hub2xvZ3kgQ29ycC4KKzAwMTRGRCAgICAgKGJhc2UgMTYpCQlUaGVjdXMgVGVjaG5vbG9neSBDb3JwLgorCQkJCTE1Ri4sTm8uIDc5LFNlYy4gMSxTaW50YWkgNXRoIFJELiwKKwkJCQlTaWpoaWggQ2l0eSBUYWlwZWkgQ291bnR5IDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtRkUgICAoaGV4KQkJQXJ0ZWNoIEVsZWN0cm9uaWNzCiswMDE0RkUgICAgIChiYXNlIDE2KQkJQXJ0ZWNoIEVsZWN0cm9uaWNzCisJCQkJIzMwMSwgWWFuZ2phZSBCbGRnLiwgMjc2LTIKKwkJCQlZYW5namFlLURvbmcsIFNlb2Noby1LdQorCQkJCVNlb3VsICAxMzctODk1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LUZGICAgKGhleCkJCVByZWNpc2UgQXV0b21hdGlvbiwgSW5jLgorMDAxNEZGICAgICAoYmFzZSAxNikJCVByZWNpc2UgQXV0b21hdGlvbiwgSW5jLgorCQkJCTE0MDIgQWxleGFuZHJhIEJsdmQKKwkJCQlDcnlzdGFsIExha2UgSUwgNjAwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTAwICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxNTAwICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTUtMDEgICAoaGV4KQkJTGV4Qm94CiswMDE1MDEgICAgIChiYXNlIDE2KQkJTGV4Qm94CisJCQkJMywgYXZlbnVlIERpZGllciBEYXVyYXQKKwkJCQlUT1VMT1VTRSAgMzE0MDAKKwkJCQlGUkFOQ0UKKworMDAtMTUtMDIgICAoaGV4KQkJQkVUQSB0ZWNoCiswMDE1MDIgICAgIChiYXNlIDE2KQkJQkVUQSB0ZWNoCisJCQkJMTUgcnVlIGQnYXBvbGxvCisJCQkJTCdVTklPTiAgMzEyNDAKKwkJCQlGUkFOQ0UKKworMDAtMTUtMDMgICAoaGV4KQkJUFJPRkljb21tcyBzLnIuby4KKzAwMTUwMyAgICAgKGJhc2UgMTYpCQlQUk9GSWNvbW1zIHMuci5vLgorCQkJCVR1cmdlbmV2b3ZhIDUKKwkJCQlCcm5vIEVVL0V1cm9wZSA2MTggMDAKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0xNS0wNCAgIChoZXgpCQlHQU1FIFBMVVMgQ08uLCBMVEQuCiswMDE1MDQgICAgIChiYXNlIDE2KQkJR0FNRSBQTFVTIENPLiwgTFRELgorCQkJCTE2NC01NywgWWVvbmdod2EtZG9uZywgSmFuZ2FuLWd1CisJCQkJU3V3b24gR3llb25nZ2ktZG8gNDQwLTgxOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0wNSAgIChoZXgpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworMDAxNTA1ICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0wNiAgIChoZXgpCQlOZW8gUGhvdG9uaWNzCiswMDE1MDYgICAgIChiYXNlIDE2KQkJTmVvIFBob3RvbmljcworCQkJCTkxMCBFLiBDYWxpZm9ybmlhIFN0LgorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMDcgICAoaGV4KQkJUmVuYWlzc2FuY2UgTGVhcm5pbmcgSW5jCiswMDE1MDcgICAgIChiYXNlIDE2KQkJUmVuYWlzc2FuY2UgTGVhcm5pbmcgSW5jCisJCQkJMjkxMSBQZWFjaCBTdHJlZXQKKwkJCQlQTyBCb3ggODAzNgorCQkJCVdpc2NvbnNpbiBSYXBpZHMgV2lzY29uc2luIDU0NDk0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0wOCAgIChoZXgpCQlHbG9iYWwgVGFyZ2V0IEVudGVycHJpc2UgSW5jCiswMDE1MDggICAgIChiYXNlIDE2KQkJR2xvYmFsIFRhcmdldCBFbnRlcnByaXNlIEluYworCQkJCTVGLCBOby4gMTg2LCBTZWMuIDIsIENodW5nLUhzaW5nIFJkLiwKKwkJCQlIc2luIFRpZW4sIFRhaXBlaSBjb3VudHkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS0wOSAgIChoZXgpCQlQbHVzIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMTUwOSAgICAgKGJhc2UgMTYpCQlQbHVzIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlPZmZpY2UgIzIwNSwgIEdheWFuZyBUZWNobm8tdG93biwKKwkJCQlHYXlhbmcgMy0gZG9uZywgR2FuZ3Nlby1rdQorCQkJCVNlb3VsIDE1Ny04MTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtMEEgICAoaGV4KQkJU29ub2EgU3lzdGVtcywgSW5jCiswMDE1MEEgICAgIChiYXNlIDE2KQkJU29ub2EgU3lzdGVtcywgSW5jCisJCQkJMzkwMCBGcmVlZG9tIENpcmNsZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0wQiAgIChoZXgpCQlTQUdFIElORk9URUNIIExURC4KKzAwMTUwQiAgICAgKGJhc2UgMTYpCQlTQUdFIElORk9URUNIIExURC4KKwkJCQkzRiwgTm8zMCwgSU5EVVNUUlkgRS4gOVRIIFJELixTQ0lFTkNFLUJBU0VECisJCQkJSU5EVVNUUklBTCBQQVJLCisJCQkJSFNJTi1DSFUgVEFJV0FOIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtMEMgICAoaGV4KQkJQVZNIEdtYkgKKzAwMTUwQyAgICAgKGJhc2UgMTYpCQlBVk0gR21iSAorCQkJCUFsdC1Nb2FiaXQgOTUKKwkJCQlCZXJsaW4gIDEwNTU5CisJCQkJR0VSTUFOWQorCiswMC0xNS0wRCAgIChoZXgpCQlIb2FuYSBNZWRpY2FsLCBJbmMuCiswMDE1MEQgICAgIChiYXNlIDE2KQkJSG9hbmEgTWVkaWNhbCwgSW5jLgorCQkJCTgyOCBGb3J0IFN0cmVldCBNYWxsCisJCQkJU3VpdGUgNjIwCisJCQkJSG9ub2x1bHUgSEkgOTY4MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTBFICAgKGhleCkJCU9QRU5CUkFJTiBURUNITk9MT0dJRVMgQ08uLCBMVEQuCiswMDE1MEUgICAgIChiYXNlIDE2KQkJT1BFTkJSQUlOIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQkjODA0LEFOWUFORyBLLUNFTlRFUiwxNTkxLTkgLCBCVVJJTS1ET05HLERPTkdBTi1HVSwKKwkJCQlBTllBTkcgS1lVTkdHSS1ETyA0MzEtODE1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTBGICAgKGhleCkJCW1pbmdqb25nCiswMDE1MEYgICAgIChiYXNlIDE2KQkJbWluZ2pvbmcKKwkJCQk4RixOTy4xLExBTkUgMTYsU1pFIENIVUFOIFJPQUQsU0VDLjIsUEFOQ0hJQU8gQ0lUWS4KKwkJCQlUQUlQRUkgIDIyMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtMTAgICAoaGV4KQkJVGVjaHNwaGVyZSBDby4sIEx0ZAorMDAxNTEwICAgICAoYmFzZSAxNikJCVRlY2hzcGhlcmUgQ28uLCBMdGQKKwkJCQk0RiwgV29uaWwgQmxkZy4sIDk4MC01NCwgQmFuZ2JhZS1kb25nLCBTZW9DaG8tZ3UKKwkJCQlTZW91bCAxMzctMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTExICAgKGhleCkJCURhdGEgQ2VudGVyIFN5c3RlbXMKKzAwMTUxMSAgICAgKGJhc2UgMTYpCQlEYXRhIENlbnRlciBTeXN0ZW1zCisJCQkJMTQ4MDIgVmVudHVyZSBEcml2ZQorCQkJCURhbGxhcyBUWCA3NTIzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMTIgICAoaGV4KQkJWnVyaWNoIFVuaXZlcnNpdHkgb2YgQXBwbGllZCBTY2llbmNlcworMDAxNTEyICAgICAoYmFzZSAxNikJCVp1cmljaCBVbml2ZXJzaXR5IG9mIEFwcGxpZWQgU2NpZW5jZXMKKwkJCQlUZWNobmlrdW1zdHJhc3NlIDkKKwkJCQlXaW50ZXJ0aHVyIFpIIENILTg0MDEKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xNS0xMyAgIChoZXgpCQlFRlMgc2FzCiswMDE1MTMgICAgIChiYXNlIDE2KQkJRUZTIHNhcworCQkJCUJQIDM0CisJCQkJTUlMTEVSWSAgRi02OTM5MAorCQkJCUZSQU5DRQorCiswMC0xNS0xNCAgIChoZXgpCQlIdSBaaG91IE5BVkEgTmV0d29ya3MmRWxlY3Ryb25pY3MgTHRkLgorMDAxNTE0ICAgICAoYmFzZSAxNikJCUh1IFpob3UgTkFWQSBOZXR3b3JrcyZFbGVjdHJvbmljcyBMdGQuCisJCQkJMy9GLE5vLjMyOC00LEd1YW5nIFl1YW4gUmQuCisJCQkJSHUgWmhvdSBaaGUgSmlhbmcgMzEzMDAwCisJCQkJQ0hJTkEKKworMDAtMTUtMTUgICAoaGV4KQkJTGVpcG9sZCtDby5HbWJICiswMDE1MTUgICAgIChiYXNlIDE2KQkJTGVpcG9sZCtDby5HbWJICisJCQkJS3JldXp3aWVzZSAxMgorCQkJCVJvY2tlbmhhdXNlbiBSTFAgRC02NzgwNgorCQkJCUdFUk1BTlkKKworMDAtMTUtMTYgICAoaGV4KQkJVVJJRUwgU1lTVEVNUyBJTkMuCiswMDE1MTYgICAgIChiYXNlIDE2KQkJVVJJRUwgU1lTVEVNUyBJTkMuCisJCQkJIzIwNCBCeXVja3NhbiBEaWdpdGFsdmFsbGV5IDFzdCwgMjEyLTE2LCBHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0xNyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMTUxNyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmxuIEhpLVRlY2ggIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTUtMTggICAoaGV4KQkJU2hlbnpoZW4gMTBNT09OUyBUZWNobm9sb2d5IERldmVsb3BtZW50IENPLixMdGQKKzAwMTUxOCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiAxME1PT05TIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ08uLEx0ZAorCQkJCUFkZDozRixIdWF4aW5nIGJ1aWxkaW5nLCBRaWFvWGlhbmcgcm9hZCwKKwkJCQlzaGVuemhlbiBndWFuZ2RvbmcgNTE4MDUzCisJCQkJQ0hJTkEKKworMDAtMTUtMTkgICAoaGV4KQkJU3RvcmVBZ2UgTmV0d29ya2luZyBUZWNobm9sb2dpZXMKKzAwMTUxOSAgICAgKGJhc2UgMTYpCQlTdG9yZUFnZSBOZXR3b3JraW5nIFRlY2hub2xvZ2llcworCQkJCTYzIEJhci1ZZWh1ZGEgc3QuCisJCQkJTmVzaGVyICAzNjY1MQorCQkJCUlTUkFFTAorCiswMC0xNS0xQSAgIChoZXgpCQlIdW50ZXIgRW5naW5lZXJpbmcgQ29tcGFueQorMDAxNTFBICAgICAoYmFzZSAxNikJCUh1bnRlciBFbmdpbmVlcmluZyBDb21wYW55CisJCQkJMTEyNTAgSHVudGVyIERyaXZlCisJCQkJQnJpZGdldG9uIE1pc3NvdXJpIDYzMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0xQiAgIChoZXgpCQlJc2lsb24gU3lzdGVtcyBJbmMuCiswMDE1MUIgICAgIChiYXNlIDE2KQkJSXNpbG9uIFN5c3RlbXMgSW5jLgorCQkJCTMxMDEgV2VzdGVybiBBdmVudWUKKwkJCQlTZWF0dGxlIFdBIDk4MTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0xQyAgIChoZXgpCQlMRU5FQ08KKzAwMTUxQyAgICAgKGJhc2UgMTYpCQlMRU5FQ08KKwkJCQk2dGguLERvbmcgTW9vbiBHb29kIE1vcm5pbmcgVG93ZXIKKwkJCQkxMzIzIEJlYWtzZW9rLURvbmcgSWxzYW4tR3UKKwkJCQlLeWVvbmcgS2ktRG8gR29ZYW5nLVNpIDQxMS04MTcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtMUQgICAoaGV4KQkJTTJJIENPUlBPUkFUSU9OCiswMDE1MUQgICAgIChiYXNlIDE2KQkJTTJJIENPUlBPUkFUSU9OCisJCQkJS3lvbmdnaSBWZW50dXJlIEFueWFuZyB0ZWNobmljYWwgY2VudGVyLCAxM3RoIEZsb29yLCA1NzItNSwgQW55YW5nIDgtRG9uZywgTWFuYW4tR3UKKwkJCQlBbnlhbmctU2hpIEt5b25nZ2ktRG8gNDMwLTczMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0xRSAgIChoZXgpCQlFdGhlcm5ldCBQb3dlcmxpbmsgU3RhbmRhcmRpemF0aW9uIEdyb3VwIChFUFNHKQorMDAxNTFFICAgICAoYmFzZSAxNikJCUV0aGVybmV0IFBvd2VybGluayBTdGFuZGFyZGl6YXRpb24gR3JvdXAgKEVQU0cpCisJCQkJYy9vIFp1cmljaCBVbml2ZXJzaXR5IG9mIEFwcGxpZWQgU2NpZW5jZXMKKwkJCQlUZWNobmlrdW1zdHJhc3NlIDkKKwkJCQlDSC04NDAxIFdpbnRlcnRodXIgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTUtMUYgICAoaGV4KQkJTXVsdGl2aXNpb24gSW50ZWxsaWdlbnQgU3VydmVpbGxhbmNlIChIb25nIEtvbmcpIEx0ZAorMDAxNTFGICAgICAoYmFzZSAxNikJCU11bHRpdmlzaW9uIEludGVsbGlnZW50IFN1cnZlaWxsYW5jZSAoSG9uZyBLb25nKSBMdGQKKwkJCQkyNi9GLCBBaXRrZW4gVmFuc29uIENlbnRyZSwKKwkJCQk2MSBIb2kgWXVlbiBSb2FkLCBLd3VuIFRvbmcsIEtvd2xvb24sCisJCQkJSE9ORyBLT05HCisKKzAwLTE1LTIwICAgKGhleCkJCVJhZGlvY3JhZnRzIEFTCiswMDE1MjAgICAgIChiYXNlIDE2KQkJUmFkaW9jcmFmdHMgQVMKKwkJCQlTYW5kYWtlcnZlaWVuIDY0CisJCQkJT3NsbyAwNDg0CisJCQkJTk9SV0FZCisKKzAwLTE1LTIxICAgKGhleCkJCUhvcm9xdWFydHoKKzAwMTUyMSAgICAgKGJhc2UgMTYpCQlIb3JvcXVhcnR6CisJCQkJQlAgMjUxCisJCQkJRk9OVEVOQVkgTEUgQ09NVEUgVkVOREVFIDg1MjA1CisJCQkJRlJBTkNFCisKKzAwLTE1LTIyICAgKGhleCkJCURlYSBTZWN1cml0eQorMDAxNTIyICAgICAoYmFzZSAxNikJCURlYSBTZWN1cml0eQorCQkJCVZpYSBNYWdlbnRhIDkKKwkJCQlNYXNzYSBNUyA1NDEwMAorCQkJCUlUQUxZCisKKzAwLTE1LTIzICAgKGhleCkJCU1ldGVvciBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorMDAxNTIzICAgICAoYmFzZSAxNikJCU1ldGVvciBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorCQkJCTIyNjE0IDY2dGggQXZlbnVlIFNvdXRoCisJCQkJS2VudCBXQSA5ODAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMjQgICAoaGV4KQkJTnVtYXRpY3MsIEluYy4KKzAwMTUyNCAgICAgKGJhc2UgMTYpCQlOdW1hdGljcywgSW5jLgorCQkJCTQ2MjgwIER5bGFuIERyLgorCQkJCU5vdmkgTWljaGlnYW4gNDgzNzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTI1ICAgKGhleCkJCUNoYW1iZXJsYWluIEFjY2VzcyBTb2x1dGlvbnMKKzAwMTUyNSAgICAgKGJhc2UgMTYpCQlDaGFtYmVybGFpbiBBY2Nlc3MgU29sdXRpb25zCisJCQkJOTE2MCBFLiBCYWhpYSBEci4KKwkJCQlTY290dHNkYWxlIEFaIDg1MjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0yNiAgIChoZXgpCQlSZW1vdGUgVGVjaG5vbG9naWVzIEluYworMDAxNTI2ICAgICAoYmFzZSAxNikJCVJlbW90ZSBUZWNobm9sb2dpZXMgSW5jCisJCQkJNzY1MSBBbmFncmFtIERyaXZlCisJCQkJRWRlbiBQcmFpcmllIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0yNyAgIChoZXgpCQlCYWxib2EgSW5zdHJ1bWVudHMKKzAwMTUyNyAgICAgKGJhc2UgMTYpCQlCYWxib2EgSW5zdHJ1bWVudHMKKwkJCQkxMzgyIEJlbGwgQXZlCisJCQkJVHVzdGluIENBIDkyNzgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0yOCAgIChoZXgpCQlGbG9vZGxpZ2h0IE1lZGljYWwgUHJvZHVjdHMgTExDIGQuYi5hLiBGbG9vZGxpZ2h0TWVkYWVzCiswMDE1MjggICAgIChiYXNlIDE2KQkJRmxvb2RsaWdodCBNZWRpY2FsIFByb2R1Y3RzIExMQyBkLmIuYS4gRmxvb2RsaWdodE1lZGFlcworCQkJCTE0NDA4IFcgMTA1VEggU1QKKwkJCQlMRU5FWEEgS1MgNjYyMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTI5ICAgKGhleCkJCU4zIENvcnBvcmF0aW9uCiswMDE1MjkgICAgIChiYXNlIDE2KQkJTjMgQ29ycG9yYXRpb24KKwkJCQkjNDAyIEd3YW5nTXllb25nIFRlY2hubyBUb3duCisJCQkJNjI2LTMgQ2x1bHNhbiAxLURvbmcsIEd3YW5nTXllb25nLUNpdHkKKwkJCQlHeWVvbmdHaS1EbyAgNDIzLTAzMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0yQSAgIChoZXgpCQlOb2tpYSBHbWJICiswMDE1MkEgICAgIChiYXNlIDE2KQkJTm9raWEgR21iSAorCQkJCVJlbnNpbmdzdHIuIDE1CisJCQkJQm9jaHVtIE5SVyA0NDgwNworCQkJCUdFUk1BTlkKKworMDAtMTUtMkIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNTJCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMkMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNTJDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMkQgICAoaGV4KQkJVGVuWCBOZXR3b3JrcywgTExDCiswMDE1MkQgICAgIChiYXNlIDE2KQkJVGVuWCBOZXR3b3JrcywgTExDCisJCQkJNDg1NSBXaWxleSBQb3N0IFdheQorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0yRSAgIChoZXgpCQlQYWNrZXRIb3AsIEluYy4KKzAwMTUyRSAgICAgKGJhc2UgMTYpCQlQYWNrZXRIb3AsIEluYy4KKwkJCQkxMzAxIFNob3Jld2F5IFJvYWQKKwkJCQlTdWl0ZSAyMDAKKwkJCQlCZWxtb250IENhbGlmb3JuaWEgOTQwMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTJGICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE1MkYgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0zMCAgIChoZXgpCQlCdXMtVGVjaCwgSW5jLgorMDAxNTMwICAgICAoYmFzZSAxNikJCUJ1cy1UZWNoLCBJbmMuCisJCQkJMTI5IE1pZGRsZXNleCBUdXJucGlrZQorCQkJCUJ1cmxpbmd0b24gTWEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTMxICAgKGhleCkJCUtPQ09NCiswMDE1MzEgICAgIChiYXNlIDE2KQkJS09DT00KKwkJCQk1RiwgS09DT00gQmxkZy4sIDI2MC03CisJCQkJWXVtY2hhbmctRG9uZywgS2FuZ3Nlby1HdQorCQkJCVNFT1VMICAxNTctMDQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTMyICAgKGhleCkJCUNvbnN1bWVyIFRlY2hub2xvZ2llcyBHcm91cCwgTExDCiswMDE1MzIgICAgIChiYXNlIDE2KQkJQ29uc3VtZXIgVGVjaG5vbG9naWVzIEdyb3VwLCBMTEMKKwkJCQkzNTAwIEpvcmRhbiBPYWtzIERyLgorCQkJCUVmbGFuZCBOQyAyNzI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMzMgICAoaGV4KQkJTkFEQU0uQ08uLExURAorMDAxNTMzICAgICAoYmFzZSAxNikJCU5BREFNLkNPLixMVEQKKwkJCQkjOTEtMyBXYW5ncmltLUxpCisJCQkJQm9uZ2RhbS1FdXAKKwkJCQlId2FzZW9uZyBHeWVvbmdnaSA0NDUtODk1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTM0ICAgKGhleCkJCUEgQkVMVFJPTklDQSwgQ29tcGFuaGlhIGRlIENvbXVuaWNhY29lcywgTGRhCiswMDE1MzQgICAgIChiYXNlIDE2KQkJQSBCRUxUUk9OSUNBLCBDb21wYW5oaWEgZGUgQ29tdW5pY2Fjb2VzLCBMZGEKKwkJCQlSLiBEci4gSm9zZSBCYXB0aXN0YSBkZSBTb3VzYSwgMjcKKwkJCQlMaXNib24gIDE1NDktMDAyIExpcworCQkJCVBPUlRVR0FMCisKKzAwLTE1LTM1ICAgKGhleCkJCU9URSBTcGEKKzAwMTUzNSAgICAgKGJhc2UgMTYpCQlPVEUgU3BhCisJCQkJdmlhIEJhcnNhbnRpIDgKKwkJCQlGbG9yZW5jZSBGSSA1MDEyNworCQkJCUlUQUxZCisKKzAwLTE1LTM2ICAgKGhleCkJCVBvd2VydGVjaCBjby4sTHRkCiswMDE1MzYgICAgIChiYXNlIDE2KQkJUG93ZXJ0ZWNoIGNvLixMdGQKKwkJCQkjNzA1LCBkb25neW91bmcgVmVudHVyZXN0ZWwsIDE5OS0zMgorCQkJCUFueWFuZzctZG9uZywgTWFuYW4tZ3UKKwkJCQlBbnlhbmcgQ2l0eSBLeW91bmdraS1kbyA0MzAtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTM3ICAgKGhleCkJCVZlbnR1cyBOZXR3b3JrcworMDAxNTM3ICAgICAoYmFzZSAxNikJCVZlbnR1cyBOZXR3b3JrcworCQkJCTgwMCBDb25uZWN0aWN1dCBBdmUKKwkJCQkxc3QgZmxvb3Igd2VzdAorCQkJCU5vcndhbGsgQ1QgMDY4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTM4ICAgKGhleCkJCVJGSUQsIEluYy4KKzAwMTUzOCAgICAgKGJhc2UgMTYpCQlSRklELCBJbmMuCisJCQkJMTQxMDAgRWFzdCBKZXdlbGwgQXZlLgorCQkJCVN1aXRlIDEyCisJCQkJQXVyb3JhIENPIDgwMDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0zOSAgIChoZXgpCQlUZWNobm9kcml2ZSBTUkwKKzAwMTUzOSAgICAgKGJhc2UgMTYpCQlUZWNobm9kcml2ZSBTUkwKKwkJCQlWaWEgTGVvbmFyZG8gZGEgVmluY2kgMTYyCisJCQkJVHJlenphbm8gc3VsIE5hdmlnbGlvIE1pbGFubyAyMDA5MAorCQkJCUlUQUxZCisKKzAwLTE1LTNBICAgKGhleCkJCVNoZW56aGVuIFN5c2NhbiBUZWNobm9sb2d5IENvLixMdGQuCiswMDE1M0EgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gU3lzY2FuIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQkxM0YsIE9seW1waWMgUGxhemEsCisJCQkJU2hhbmcgYmFvIFJvYWQsIEZ1dGlhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDM0CisJCQkJQ0hJTkEKKworMDAtMTUtM0IgICAoaGV4KQkJRU1IIG1ldGVyaW5nIEdtYkggJiBDby4gS0cKKzAwMTUzQiAgICAgKGJhc2UgMTYpCQlFTUggbWV0ZXJpbmcgR21iSCAmIENvLiBLRworCQkJCVN1ZWRyaW5nIDUKKwkJCQlXaXR0ZW5idXJnIE1lY2tsZW5idXJnLVZvcnBvbW1lcm4gMTkyNDMKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LTNDICAgKGhleCkJCUtwcm90ZWNoIENvLiwgTHRkLgorMDAxNTNDICAgICAoYmFzZSAxNikJCUtwcm90ZWNoIENvLiwgTHRkLgorCQkJCTJuZCBGbG9vciwgIyAyMDIsIE15b3VuZy1qaSBlLVNwYWNlIElJCisJCQkJMjE4LCBBbi15YW5nIDcgRG9uZywgTWFuLWFuIEd1LAorCQkJCUFuLXlhbmcgQ2l0eSBHeWVvbmctZ2kgRG8gNDMwLTgxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0zRCAgIChoZXgpCQlFTElNIFBST0RVQ1QgQ08uCiswMDE1M0QgICAgIChiYXNlIDE2KQkJRUxJTSBQUk9EVUNUIENPLgorCQkJCTYwMi0yIEdBWUFORyBURUNITk8gVE9XTiwgR0FZQU5HLCAzLURPTkcKKwkJCQlLQU5HU0VPLUdVIFNFT1VMIEtPUkVBCisJCQkJU0VPVUwgMTU3LTc5MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0zRSAgIChoZXgpCQlRLU1hdGljIFN3ZWRlbiBBQgorMDAxNTNFICAgICAoYmFzZSAxNikJCVEtTWF0aWMgU3dlZGVuIEFCCisJCQkJTmVvbmdhdGFuIDgKKwkJCQlNb2xuZGFsICA0MzEgNTMKKwkJCQlTV0VERU4KKworMDAtMTUtM0YgICAoaGV4KQkJQWxjYXRlbCBBbGVuaWEgU3BhY2UgSXRhbGlhCiswMDE1M0YgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBBbGVuaWEgU3BhY2UgSXRhbGlhCisJCQkJU3RyYWRhIFBhZGFuYSBTdXBlcmlvcmUgMjkwCisJCQkJVmltb2Ryb25lIE1JIDIwMDkwCisJCQkJSVRBTFkKKworMDAtMTUtNDAgICAoaGV4KQkJTm9ydGVsCiswMDE1NDAgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTUtNDEgICAoaGV4KQkJU3RyYXRhTGlnaHQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTU0MSAgICAgKGJhc2UgMTYpCQlTdHJhdGFMaWdodCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTIxMDUgUy4gQmFzY29tIEF2ZW51ZQorCQkJCVN1aXRlIDMwMAorCQkJCUNhbXBiZWxsIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS00MiAgIChoZXgpCQlNSUNST0hBUkQgUy5SLkwuCiswMDE1NDIgICAgIChiYXNlIDE2KQkJTUlDUk9IQVJEIFMuUi5MLgorCQkJCVZpYSBQcmltbyBNYWdnaW8gMzYKKwkJCQlTYW4gVml0dG9yZSBPbG9uYSBNaWxhbm8gMjAwMjgKKwkJCQlJVEFMWQorCiswMC0xNS00MyAgIChoZXgpCQlBYmVyZGVlbiBUZXN0IENlbnRlcgorMDAxNTQzICAgICAoYmFzZSAxNikJCUFiZXJkZWVuIFRlc3QgQ2VudGVyCisJCQkJNDAwIENvbGxlcmFuIFJvYWQKKwkJCQlCbGRnLiAzNTAKKwkJCQlBYmVyZGVlbiBQcm92aW5nIEdyb3VuZHMgTUQgMjEwMDUtNTA1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNDQgICAoaGV4KQkJY29NLnMuYS50LiBBRworMDAxNTQ0ICAgICAoYmFzZSAxNikJCWNvTS5zLmEudC4gQUcKKwkJCQlCZXNzZWxzdHIuIDMKKwkJCQlNYW5uaGVpbSAgRC02ODIxOQorCQkJCUdFUk1BTlkKKworMDAtMTUtNDUgICAoaGV4KQkJU0VFQ09ERSBDby4sIEx0ZC4KKzAwMTU0NSAgICAgKGJhc2UgMTYpCQlTRUVDT0RFIENvLiwgTHRkLgorCQkJCTR0aCBGbG9vciwgQW1pbiBCbGRnLiwgMTEwLTEsIFlhbmdqYWVkb25nLCBTZW9jaG9ndQorCQkJCVNlb3VsICAxMzctODkxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTQ2ICAgKGhleCkJCUlURyBXb3JsZHdpZGUgU2RuIEJoZAorMDAxNTQ2ICAgICAoYmFzZSAxNikJCUlURyBXb3JsZHdpZGUgU2RuIEJoZAorCQkJCTIsIEphbGFuIEFzdGFrYVU4LzgzCisJCQkJU2Vrc3llbiBVOCwgQnVraXQgSmVsdXRvbmcKKwkJCQlTaGFoIEFsYW0gU2VsYW5nb3IgRGFydWwgRWhzYW4gNDAxNTAKKwkJCQlNQUxBWVNJQQorCiswMC0xNS00NyAgIChoZXgpCQlBaVplbiBTb2x1dGlvbnMgSW5jLgorMDAxNTQ3ICAgICAoYmFzZSAxNikJCUFpWmVuIFNvbHV0aW9ucyBJbmMuCisJCQkJMTBGLTEsIE5vLjI5LCBQdWRpbmcgUmQuCisJCQkJSHNpbmNodSBIc2luY2h1IENvdW50eSAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LTQ4ICAgKGhleCkJCUNVQkUgVEVDSE5PTE9HSUVTCiswMDE1NDggICAgIChiYXNlIDE2KQkJQ1VCRSBURUNITk9MT0dJRVMKKwkJCQkxMCwgcnVlIGRlcyBSb3NpZXJpc3RlcworCQkJCUNIQU1QQUdORSBBVSBNT05UIEQnT1IgRlJBTkNFIDY5NDEwCisJCQkJRlJBTkNFCisKKzAwLTE1LTQ5ICAgKGhleCkJCURpeHRhbCBCaW9tZWRpY2EgSW5kLiBDb20uIEx0ZGEKKzAwMTU0OSAgICAgKGJhc2UgMTYpCQlEaXh0YWwgQmlvbWVkaWNhIEluZC4gQ29tLiBMdGRhCisJCQkJUi4gRW5nLiBGcmFuY2lzY28gUGl0dGEgQnJpdG8sIDcwMworCQkJCVNhbyBQYXVsbyBTUCAwNDc1My0wODAKKwkJCQlCUkFaSUwKKworMDAtMTUtNEEgICAoaGV4KQkJV0FOU0hJSCBFTEVDVFJPTklDIENPLiwgTFRECiswMDE1NEEgICAgIChiYXNlIDE2KQkJV0FOU0hJSCBFTEVDVFJPTklDIENPLiwgTFRECisJCQkJM0YgNzIsIFdVIEtPTkcgNnRoIFJELiwKKwkJCQlXVSBLVSBJTkRVU1RSSUFMIERJU1RSSUNULAorCQkJCVRBSVBFSSBIU0lFTiBUQUlXQU4gMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS00QiAgIChoZXgpCQlXb25kZSBQcm91ZCBUZWNobm9sb2d5IENvLiwgTHRkCiswMDE1NEIgICAgIChiYXNlIDE2KQkJV29uZGUgUHJvdWQgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCTIxRi4sIE5vLjEwMCwgU2VjLjEsIFNoaW50YWkgNXRoIFJkCisJCQkJU2lqaGloIGNpdHkgVGFpcGVpIENvdW50eSAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LTRDICAgKGhleCkJCVNhdW5kZXJzIEVsZWN0cm9uaWNzCiswMDE1NEMgICAgIChiYXNlIDE2KQkJU2F1bmRlcnMgRWxlY3Ryb25pY3MKKwkJCQk4MiBJbmR1c3RyaWFsIFBhcmsgUmQKKwkJCQlTYWNvIE1FIDA0MDcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS00RCAgIChoZXgpCQlOZXRyb25vbWUgU3lzdGVtcywgSW5jLgorMDAxNTREICAgICAoYmFzZSAxNikJCU5ldHJvbm9tZSBTeXN0ZW1zLCBJbmMuCisJCQkJMTQ0IEVtZXJ5dmlsbGUgRHJpdmUKKwkJCQlTdWl0ZSAyMzAKKwkJCQlDcmFuYmVycnkgVHdwLiBQQSAxNjA2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNEUgICAoaGV4KQkJSUVDCiswMDE1NEUgICAgIChiYXNlIDE2KQkJSUVDCisJCQkJMywgcnVlIGRlIFZhcmVtYmUKKwkJCQlQLk8uIEJveCAxMzEKKwkJCQlDSCAtIDEyMTEgR0VORVZBIDIwCisJCQkJR0VSTUFOWQorCiswMC0xNS00RiAgIChoZXgpCQlvbmUgUkYgVGVjaG5vbG9neQorMDAxNTRGICAgICAoYmFzZSAxNikJCW9uZSBSRiBUZWNobm9sb2d5CisJCQkJMTM2MCBSb3V0ZSBkZXMgRG9saW5lcworCQkJCUJhdCBCNCBMZXMgQ2FyZG91bGluZXMKKwkJCQlWYWxib25uZSBTb3BoaWEtQW50aXBvbGlzIFBBQ0EgMDY1NjAKKwkJCQlGUkFOQ0UKKworMDAtMTUtNTAgICAoaGV4KQkJTml0cyBUZWNobm9sb2d5IEluYworMDAxNTUwICAgICAoYmFzZSAxNikJCU5pdHMgVGVjaG5vbG9neSBJbmMKKwkJCQkyRkwuIE5vLiA4IEFsbGV5IDE2LCBMYW5lIDIzNSwgQmF1Y2hpYXUgUmQuLAorCQkJCVNoaW5kaWFuIENpdHkgVGFpcGVpIEhzaWVuIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtNTEgICAoaGV4KQkJUmFkaW9QdWxzZSBJbmMuCiswMDE1NTEgICAgIChiYXNlIDE2KQkJUmFkaW9QdWxzZSBJbmMuCisJCQkJMm5kIGZsLiBIYW5zIEIvRCwgMTExLTU1CisJCQkJU2VvbmduYWUtZG9uZywgR2FuZ2RvbmctZ3UKKwkJCQlTZW91bCAgMTM0LTg4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS01MiAgIChoZXgpCQlXaS1HZWFyIEluYy4KKzAwMTU1MiAgICAgKGJhc2UgMTYpCQlXaS1HZWFyIEluYy4KKwkJCQkzNDAgQ2h1cmNoIFN0cmVldAorCQkJCVN1aXRlIDEwCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDExNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNTMgICAoaGV4KQkJQ3l0eWMgQ29ycG9yYXRpb24KKzAwMTU1MyAgICAgKGJhc2UgMTYpCQlDeXR5YyBDb3Jwb3JhdGlvbgorCQkJCTI1MCBDYW1wdXMgRGl2ZQorCQkJCU1hcmxib3JvdWdoIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS01NCAgIChoZXgpCQlBdGFsdW0gV2lyZWxlc3MgUy5BLgorMDAxNTU0ICAgICAoYmFzZSAxNikJCUF0YWx1bSBXaXJlbGVzcyBTLkEuCisJCQkJQy8gT3JlbGxhbmEgNSwgMT8gSQorCQkJCU1hZHJpZCAgMjgwMDQKKwkJCQlTUEFJTgorCiswMC0xNS01NSAgIChoZXgpCQlERk0gR21iSAorMDAxNTU1ICAgICAoYmFzZSAxNikJCURGTSBHbWJICisJCQkJTGFocmVyIFN0cmFzc2UgNgorCQkJCUxhaHIgQmFkZW4tV3VlcnR0ZW1iZXJnIDc3OTMzCisJCQkJR0VSTUFOWQorCiswMC0xNS01NiAgIChoZXgpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCiswMDE1NTYgICAgIChiYXNlIDE2KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorCQkJCUxlIFBvbm5hbnQgZGUgUGFyaXMKKwkJCQkyNyBSdWUgTGVibGFuYworCQkJCUNFREVYIFBhcmlzIDc1NTEyCisJCQkJRlJBTkNFCisKKzAwLTE1LTU3ICAgKGhleCkJCU9saXZldHRpCiswMDE1NTcgICAgIChiYXNlIDE2KQkJT2xpdmV0dGkKKwkJCQlWaWEgSmVydmlzIDc3CisJCQkJSXZyZWEgVG9yaW5vIDEwMDE1CisJCQkJSVRBTFkKKworMDAtMTUtNTggICAoaGV4KQkJRk9YQ09OTgorMDAxNTU4ICAgICAoYmFzZSAxNikJCUZPWENPTk4KKwkJCQlOby4yLDJuZCBEb25nSHVhbiBSb2FkLDEwdGggWW91U29uZworCQkJCUluZHVzdHJpYWwgRGlzdHJpY3QsTG9uZ0h1YSBTdHJlZXQsQmFvJ2FuLAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMDkKKwkJCQlDSElOQQorCiswMC0xNS01OSAgIChoZXgpCQlTZWN1cmFwbGFuZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTU1OSAgICAgKGJhc2UgMTYpCQlTZWN1cmFwbGFuZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMDgwMCBOLiBNYXZpbmVlIERyLgorCQkJCVR1Y3NvbiBBWiA4NTczNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNUEgICAoaGV4KQkJREFJTklQUE9OIFBIQVJNQUNFVVRJQ0FMIENPLiwgTFRELgorMDAxNTVBICAgICAoYmFzZSAxNikJCURBSU5JUFBPTiBQSEFSTUFDRVVUSUNBTCBDTy4sIExURC4KKwkJCQkyLTYtOCwgRE9TSE9NQUNISSwgQ0hVTy1LVQorCQkJCU9TQUtBIENJVFkgT1NBS0EgUFJFRi4gNTQxLTg1MjQKKwkJCQlKQVBBTgorCiswMC0xNS01QiAgIChoZXgpCQlTYW1wbyBDb3Jwb3JhdGlvbgorMDAxNTVCICAgICAoYmFzZSAxNikJCVNhbXBvIENvcnBvcmF0aW9uCisJCQkJMjE2IENodW5nIFNoYW4gUm9hZCwKKwkJCQlTZWMuIDEsIFBhbmNoaWFvIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4gMjIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS01QyAgIChoZXgpCQlEcmVzc2VyIFdheW5lCiswMDE1NUMgICAgIChiYXNlIDE2KQkJRHJlc3NlciBXYXluZQorCQkJCTM4MTQgSmFycmV0dCBXYXkKKwkJCQlBdXN0aW4gVGV4YXMgNzg3MjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTVEICAgKGhleCkJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorMDAxNTVEICAgICAoYmFzZSAxNikJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorCQkJCU9uZSBNaWNyb3NvZnQgV2F5CisJCQkJUmVkbW9uZCBXQSA5ODA1Mi04MzAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS01RSAgIChoZXgpCQlNb3JnYW4gU3RhbmxleQorMDAxNTVFICAgICAoYmFzZSAxNikJCU1vcmdhbiBTdGFubGV5CisJCQkJNzUwIDd0aCBBdmVudWUKKwkJCQlOZXcgWW9yayBOWSAxMDAxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNUYgICAoaGV4KQkJR3JlZW5QZWFrIFRlY2hub2xvZ2llcworMDAxNTVGICAgICAoYmFzZSAxNikJCUdyZWVuUGVhayBUZWNobm9sb2dpZXMKKwkJCQlMaW5kZXN0cmFhdCAxOQorCQkJCVplbGUgIDkyNDAKKwkJCQlCRUxHSVVNCisKKzAwLTE1LTYwICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxNTYwICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5IFNvdXRoCisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS02MSAgIChoZXgpCQlKSlBsdXMgQ29ycG9yYXRpb24KKzAwMTU2MSAgICAgKGJhc2UgMTYpCQlKSlBsdXMgQ29ycG9yYXRpb24KKwkJCQk2NzggTWFzc2FjaHVzZXR0cyBBdmUKKwkJCQlTdWl0ZSA1MDMKKwkJCQlDYW1icmlkZ2UgTUEgMDIxMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTYyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTU2MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTYzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTU2MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTY0ICAgKGhleCkJCUJFSFJJTkdFUiBTcGV6aWVsbGUgU3R1ZGlvdGVjaG5payBHbWJICiswMDE1NjQgICAgIChiYXNlIDE2KQkJQkVIUklOR0VSIFNwZXppZWxsZSBTdHVkaW90ZWNobmlrIEdtYkgKKwkJCQlIYW5ucy1NYXJ0aW4tU2NobGV5ZXItU3RyLiAzNi0zOAorCQkJCVdpbGxpY2ggIAorCQkJCUdFUk1BTlkKKworMDAtMTUtNjUgICAoaGV4KQkJWElBTUVOIFlFQUxJTksgTkVUV09SSyBURUNITk9MT0dZIENPLixMVEQKKzAwMTU2NSAgICAgKGJhc2UgMTYpCQlYSUFNRU4gWUVBTElOSyBORVRXT1JLIFRFQ0hOT0xPR1kgQ08uLExURAorCQkJCTdGIEh1YWxpYW4gRWxlY3Ryb25pYyBCTERHLjU4MCBKaWFoZSBSb2FkLFhpYW1lbiBDaGluYQorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA2CisJCQkJQ0hJTkEKKworMDAtMTUtNjYgICAoaGV4KQkJQS1GaXJzdCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxNTY2ICAgICAoYmFzZSAxNikJCUEtRmlyc3QgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk1RiwgTm8uIDExMS0yLCBTaGluLVRlaCBSZC4sCisJCQkJU2FuLUNodW5nIENpdHkgVGFpcGVpIFNoaWVuIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtNjcgICAoaGV4KQkJUkFEV0lOIEluYy4KKzAwMTU2NyAgICAgKGJhc2UgMTYpCQlSQURXSU4gSW5jLgorCQkJCTkwMCBDb3Jwb3JhdGUgRHJpdmUKKwkJCQlNYWh3YWggTkogMDc0MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTY4ICAgKGhleCkJCURpbGl0aGl1bSBOZXR3b3JrcworMDAxNTY4ICAgICAoYmFzZSAxNikJCURpbGl0aGl1bSBOZXR3b3JrcworCQkJCTU0MDEgT2xkIFJlZHdvb2QgSHd5CisJCQkJUGV0YWx1bWEgQ0EgOTQ5NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTY5ICAgKGhleCkJCVBFQ08gSUksIEluYy4KKzAwMTU2OSAgICAgKGJhc2UgMTYpCQlQRUNPIElJLCBJbmMuCisJCQkJNzA2MCBIdW50bGV5IFJvYWQKKwkJCQlDb2x1bWJ1cyBPSCA0MzIyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNkEgICAoaGV4KQkJREcyTCBUZWNobm9sb2dpZXMgUHZ0LiBMdGQuCiswMDE1NkEgICAgIChiYXNlIDE2KQkJREcyTCBUZWNobm9sb2dpZXMgUHZ0LiBMdGQuCisJCQkJQU1MIENlbnRlciAxLCBHbmQuIEZsb29yLCA4IE1haGFsIEluZGwuIEVzdC4KKwkJCQlPZmYuIE1haGFrYWxpIENhdmVzIFJvYWQsIEFuZGhlcmkgRQorCQkJCU11bWJhaSBNYWhhcmFzaHRyYSA0MDAwOTMKKwkJCQlJTkRJQQorCiswMC0xNS02QiAgIChoZXgpCQlQZXJmaXNhbnMgTmV0d29ya3MgQ29ycC4KKzAwMTU2QiAgICAgKGJhc2UgMTYpCQlQZXJmaXNhbnMgTmV0d29ya3MgQ29ycC4KKwkJCQk0MTE4IDE0dGggQXZlbnVlCisJCQkJVW5pdCA0CisJCQkJTWFya2hhbSBPbnRhcmlvIEwzUiAwSjMKKwkJCQlDQU5BREEKKworMDAtMTUtNkMgICAoaGV4KQkJU0FORSBTWVNURU0gQ08uLCBMVEQKKzAwMTU2QyAgICAgKGJhc2UgMTYpCQlTQU5FIFNZU1RFTSBDTy4sIExURAorCQkJCVBpa2EtQnVpbGRpbmcgNEYgIzg5NCBIb2d5ZS1Eb25nIERvbmdhbi1HVQorCQkJCUFueWFuZy1zaSBLeXVuZ2dpLWRvIDQzMS04MzYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtNkQgICAoaGV4KQkJVWJpcXVpdGkgTmV0d29ya3MgSW5jLgorMDAxNTZEICAgICAoYmFzZSAxNikJCVViaXF1aXRpIE5ldHdvcmtzIEluYy4KKwkJCQk0OTUgTW9udGFndWUgRXhwd3kuCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTZFICAgKGhleCkJCUEuIFcuIENvbW11bmljYXRpb24gU3lzdGVtcyBMdGQKKzAwMTU2RSAgICAgKGJhc2UgMTYpCQlBLiBXLiBDb21tdW5pY2F0aW9uIFN5c3RlbXMgTHRkCisJCQkJQ3Jvb2sgQmFybgorCQkJCVRoZSBDcm9vaywgUm93ZWx0b3duCisJCQkJQ2FybGlzbGUgQ3VtYnJpYSBDQTYgNkxICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtNkYgICAoaGV4KQkJWGlyYW5ldCBDb21tdW5pY2F0aW9ucyBHbWJICiswMDE1NkYgICAgIChiYXNlIDE2KQkJWGlyYW5ldCBDb21tdW5pY2F0aW9ucyBHbWJICisJCQkJQmVydG9sdC1CcmVjaHQtQWxsZWUgMjQKKwkJCQlEcmVzZGVuIFNheG9ueSAwMTMwOQorCQkJCUdFUk1BTlkKKworMDAtMTUtNzAgICAoaGV4KQkJU3ltYm9sIFRlY2hub2xvZ2llc1dob2xseSBvd25lZCBTdWJzaWRpYXJ5IG9mIE1vdG9yb2xhCiswMDE1NzAgICAgIChiYXNlIDE2KQkJU3ltYm9sIFRlY2hub2xvZ2llc1dob2xseSBvd25lZCBTdWJzaWRpYXJ5IG9mIE1vdG9yb2xhCisJCQkJT25lIE1vdG9yb2xhIFBsYXphCisJCQkJSG9sdHN2aWxsZSBOWSAxMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNzEgICAoaGV4KQkJTm9sYW4gU3lzdGVtcworMDAxNTcxICAgICAoYmFzZSAxNikJCU5vbGFuIFN5c3RlbXMKKwkJCQkxNTk1IENsZW8gU3ByaW5ncyBEci4KKwkJCQlTYW4gSm9zZSBDYS4gOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTcyICAgKGhleCkJCVJlZC1MZW1vbgorMDAxNTcyICAgICAoYmFzZSAxNikJCVJlZC1MZW1vbgorCQkJCVVuaXQgNCwgOS9GLCBQYXJhbW91bnQgQnVpbGRpbmcKKwkJCQlOby4gMTIsIEthIFlpcCBTdHJlZXQKKwkJCQlDaGFpIFdhbiAgCisJCQkJSE9ORyBLT05HCisKKzAwLTE1LTczICAgKGhleCkJCU5ld1NvZnQgIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMTU3MyAgICAgKGJhc2UgMTYpCQlOZXdTb2Z0ICBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJM0YsIDE5LTMsIFNhbkNob25nIFJELCBOYW5LYW5nLAorCQkJCVRhaXBlaSAgMTE1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS03NCAgIChoZXgpCQlIb3Jpem9uIFNlbWljb25kdWN0b3JzIEx0ZC4KKzAwMTU3NCAgICAgKGJhc2UgMTYpCQlIb3Jpem9uIFNlbWljb25kdWN0b3JzIEx0ZC4KKwkJCQk5IEhhbWVub2ZpbSBTdC4KKwkJCQlQT0IgMjE5MgorCQkJCUhlcnpsaXlhICA0NjEyMAorCQkJCUlTUkFFTAorCiswMC0xNS03NSAgIChoZXgpCQlOZXZpcyBOZXR3b3JrcyBJbmMuCiswMDE1NzUgICAgIChiYXNlIDE2KQkJTmV2aXMgTmV0d29ya3MgSW5jLgorCQkJCTM5NDUgRnJlZWRvbSBDaXJjbGUKKwkJCQlTdWl0ZSA3MjAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNzYgICAoaGV4KQkJc2NpbCBhbmltYWwgY2FyZSBjb21wYW55IEdtYkgKKzAwMTU3NiAgICAgKGJhc2UgMTYpCQlzY2lsIGFuaW1hbCBjYXJlIGNvbXBhbnkgR21iSAorCQkJCURpbmEtV2Vpc3NtYW5uLUFsbGVlIDYKKwkJCQlWaWVybmhlaW0gSGVzc2VuIDY4NTE5CisJCQkJR0VSTUFOWQorCiswMC0xNS03NyAgIChoZXgpCQlBbGxpZWQgVGVsZXNpcworMDAxNTc3ICAgICAoYmFzZSAxNikJCUFsbGllZCBUZWxlc2lzCisJCQkJMzIwMCBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS03OCAgIChoZXgpCQlBdWRpbyAvIFZpZGVvIElubm92YXRpb25zCiswMDE1NzggICAgIChiYXNlIDE2KQkJQXVkaW8gLyBWaWRlbyBJbm5vdmF0aW9ucworCQkJCUEzLTMzNzUgTm9ydGggU2VydmljZSBSb2FkCisJCQkJQnVybGluZ3RvbiBPTiBMN04gM0cyCisJCQkJQ0FOQURBCisKKzAwLTE1LTc5ICAgKGhleCkJCUx1bmF0b25lIEluZHVzdHJpZWxsZSBFbGVrdHJvbmlrIEdtYkgKKzAwMTU3OSAgICAgKGJhc2UgMTYpCQlMdW5hdG9uZSBJbmR1c3RyaWVsbGUgRWxla3Ryb25payBHbWJICisJCQkJUmVubmJhaG53ZWcgNTUKKwkJCQlXaWVuICAxMjIwCisJCQkJQVVTVFJJQQorCiswMC0xNS03QSAgIChoZXgpCQlUZWxlZmluIFMucC5BLgorMDAxNTdBICAgICAoYmFzZSAxNikJCVRlbGVmaW4gUy5wLkEuCisJCQkJVmlhIEFsYmVyZSA4Ny9BCisJCQkJVmVyb25hIFZSIDM3MTM4CisJCQkJSVRBTFkKKworMDAtMTUtN0IgICAoaGV4KQkJTGV1emUgZWxlY3Ryb25pYyBHbWJIICsgQ28uIEtHCiswMDE1N0IgICAgIChiYXNlIDE2KQkJTGV1emUgZWxlY3Ryb25pYyBHbWJIICsgQ28uIEtHCisJCQkJSW4gZGVyIEJyYWlrZSAxCisJCQkJT3dlbiBCYWRlbi1XdXJ0dGVtYmVyZyA3MzI3NworCQkJCUdFUk1BTlkKKworMDAtMTUtN0MgICAoaGV4KQkJRGF2ZSBOZXR3b3JrcywgSW5jLgorMDAxNTdDICAgICAoYmFzZSAxNikJCURhdmUgTmV0d29ya3MsIEluYy4KKwkJCQkyMTUxIE8ndG9vbCBBdmVudWUKKwkJCQlTdWl0ZSBICisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTdEICAgKGhleCkJCVBPU0RBVEEgQ08uLCBMVEQuCiswMDE1N0QgICAgIChiYXNlIDE2KQkJUE9TREFUQSBDTy4sIExURC4KKwkJCQkyNzYtMixTZW9oeWVvbi1kb25nLEJ1bmRhbmctZ3UsCisJCQkJU2VvbmduYW0tQ2l0eSBLeWVvbmdnaS1EbyA0NjMtNzc1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTdFICAgKGhleCkJCVdlaWRtaT9vZWxsZXIgSW50ZXJmYWNlIEdtYkggJiBDby4gS0cgICAKKzAwMTU3RSAgICAgKGJhc2UgMTYpCQlXZWlkbWk/b2VsbGVyIEludGVyZmFjZSBHbWJIICYgQ28uIEtHICAgCisJCQkJS2xpbmdlbmJlcmdzdHJhaT9vZWUgMTYKKwkJCQlEZXRtb2xkICAzMjc1OCAKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LTdGICAgKGhleCkJCUNodWFuRyBJbnRlcm5hdGlvbmFsIEhvbGRpbmcgQ08uLExURC4KKzAwMTU3RiAgICAgKGJhc2UgMTYpCQlDaHVhbkcgSW50ZXJuYXRpb25hbCBIb2xkaW5nIENPLixMVEQuCisJCQkJMUYsIE5PLjEyLCBBbGxleSAxLCBMYW5lIDEyNSwgR3VvbGlhbiBTdHJlZXQgNExpcm4sIFd1aGFuIFZpbGxhZ2UKKwkJCQlUYW95dWFuIExvbmd0YW4gMzI1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS04MCAgIChoZXgpCQlVLVdBWSBDT1JQT1JBVElPTgorMDAxNTgwICAgICAoYmFzZSAxNikJCVUtV0FZIENPUlBPUkFUSU9OCisJCQkJM0YtMiwgTk8uIDEyNSwgTEFORSAyMzUsIFBBTy1DSElBTworCQkJCUhTSU5USUVOIENJVFkgVEFJUEVJIEhTSUVOIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtODEgICAoaGV4KQkJTUFLVVMgSW5jLgorMDAxNTgxICAgICAoYmFzZSAxNikJCU1BS1VTIEluYy4KKwkJCQk0RiBEYWVkbyBCbGRnLiA3NDgtMTQgWWVva3NhbS1kb25nLCBLYW5nbmFtLWd1CisJCQkJU2VvdWwgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS04MiAgIChoZXgpCQlUVm9uaWNzIEx0ZAorMDAxNTgyICAgICAoYmFzZSAxNikJCVRWb25pY3MgTHRkCisJCQkJUGVub2NlZCBUZWNobm9sb2d5IFBhcmsKKwkJCQlQZW5jb2VkIE1pZCBHbGFtIENGMzUgNUhaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtODMgICAoaGV4KQkJSVZUIGNvcnBvcmF0aW9uCiswMDE1ODMgICAgIChiYXNlIDE2KQkJSVZUIGNvcnBvcmF0aW9uCisJCQkJU2hhbmdkaSBYaW54aSByb2FkLCBIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMTUtODQgICAoaGV4KQkJU2NoZW5jayBQcm9jZXNzIEdtYkgKKzAwMTU4NCAgICAgKGJhc2UgMTYpCQlTY2hlbmNrIFByb2Nlc3MgR21iSAorCQkJCVBhbGxhc3dpZXNlbnN0ci4gMTAwCisJCQkJRGFybXN0YWR0IEhlc3NlbiA2NDI5MworCQkJCUdFUk1BTlkKKworMDAtMTUtODUgICAoaGV4KQkJQW9udmlzaW9uIFRlY2hub2xvcHkgQ29ycC4KKzAwMTU4NSAgICAgKGJhc2UgMTYpCQlBb252aXNpb24gVGVjaG5vbG9weSBDb3JwLgorCQkJCTJGLCBOby4gNTgsIFBhcmsgMm5kIEF2ZS4gU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LTg2ICAgKGhleCkJCVhpYW1lbiBPdmVyc2VhcyBDaGluZXNlIEVsZWN0cm9uaWMgQ28uLCBMdGQuCiswMDE1ODYgICAgIChiYXNlIDE2KQkJWGlhbWVuIE92ZXJzZWFzIENoaW5lc2UgRWxlY3Ryb25pYyBDby4sIEx0ZC4KKwkJCQlOby4gMjIsIEh1bGkgU3RyZWV0LAorCQkJCUh1bGkgSW5kdXN0cmlhbCBEaXN0cmljdAorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA2CisJCQkJQ0hJTkEKKworMDAtMTUtODcgICAoaGV4KQkJVGFrZW5ha2EgU2Vpc2FrdXNobyBDby4sTHRkCiswMDE1ODcgICAgIChiYXNlIDE2KQkJVGFrZW5ha2EgU2Vpc2FrdXNobyBDby4sTHRkCisJCQkJMTc4IEhJU0hJRQorCQkJCUhJR0FTSEktT1NBS0EgQ0lUWSBPU0FLQSA1NzgtMDk4NAorCQkJCUpBUEFOCisKKzAwLTE1LTg4ICAgKGhleCkJCUJhbGRhIFNvbHV0aW9uIE1hbGF5c2lhIFNkbiBCaGQKKzAwMTU4OCAgICAgKGJhc2UgMTYpCQlCYWxkYSBTb2x1dGlvbiBNYWxheXNpYSBTZG4gQmhkCisJCQkJMyBKYWxhbiBaYXJpYiA2CisJCQkJS2F3YXNhbiBQZXJpbmR1c3RyaWFuIFphcmliCisJCQkJTGFoYXQsIElwb2ggUGVyYWsgMzE1MDAKKwkJCQlNQUxBWVNJQQorCiswMC0xNS04OSAgIChoZXgpCQlELU1BWCBUZWNobm9sb2d5IENvLixMdGQKKzAwMTU4OSAgICAgKGJhc2UgMTYpCQlELU1BWCBUZWNobm9sb2d5IENvLixMdGQKKwkJCQk3Ri02LE5PLjI2LExpYW4gQ2hlbmcgUkQuLENodW5nLUhvIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtOEEgICAoaGV4KQkJU1VSRUNPTSBUZWNobm9sb2d5IENvcnAuCiswMDE1OEEgICAgIChiYXNlIDE2KQkJU1VSRUNPTSBUZWNobm9sb2d5IENvcnAuCisJCQkJNkYsIE5vLiAxMjUsIFNlYy4gMiwgRGF0dW5nIFJkLgorCQkJCVNoaWpyIENpdHksIFRhaXBlaSBDb3VudHkgIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtOEIgICAoaGV4KQkJUGFyayBBaXIgU3lzdGVtcyBMdGQKKzAwMTU4QiAgICAgKGJhc2UgMTYpCQlQYXJrIEFpciBTeXN0ZW1zIEx0ZAorCQkJCU5vcnRoZmllbGRzCisJCQkJTWFya2V0IERlZXBpbmcKKwkJCQlQZXRlcmJvcm91Z2ggIFBFNiA4VUUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNS04QyAgIChoZXgpCQlMaWFiIEFwUworMDAxNThDICAgICAoYmFzZSAxNikJCUxpYWIgQXBTCisJCQkJT2VzdHJlIEFsbGUgNgorCQkJCVN0b2V2cmluZyAgREstOTUzMAorCQkJCURFTk1BUksKKworMDAtMTUtOEQgICAoaGV4KQkJSmVubmljIEx0ZAorMDAxNThEICAgICAoYmFzZSAxNikJCUplbm5pYyBMdGQKKwkJCQlGdXJuaXZhbCBTdHJlZXQKKwkJCQlTaGVmZmllbGQgWW9ya3NoaXJlIFMxIDRRVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE1LThFICAgKGhleCkJCVBsdXN0ZWsuSU5DCiswMDE1OEUgICAgIChiYXNlIDE2KQkJUGx1c3Rlay5JTkMKKwkJCQkxM0YtMSxObzMoQnVpbGRpbmcgRikgWXVhbiBRdSBTdHJlZXQKKwkJCQlUYWlwZWkgWXVhbiBRdSAxMTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LThGICAgKGhleCkJCU5UVCBBZHZhbmNlZCBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDE1OEYgICAgIChiYXNlIDE2KQkJTlRUIEFkdmFuY2VkIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQlTaGluanVrdSBNaXRzdWkgQmxkZy4gMi0xLTEsIE5pc2hpLXNoaW5qdWt1CisJCQkJU2hpbmp1a3Uta3UgVG9reW8gMTYzLTA0MzEKKwkJCQlKQVBBTgorCiswMC0xNS05MCAgIChoZXgpCQlIZWN0cm9uaWMgR21iSAorMDAxNTkwICAgICAoYmFzZSAxNikJCUhlY3Ryb25pYyBHbWJICisJCQkJQWxsbWVuZHN0cmFzc2UgMTUKKwkJCQlCb25uZG9yZiBCYWRlbi1XdXJ0dGVtYmVyZyA3OTg0OAorCQkJCUdFUk1BTlkKKworMDAtMTUtOTEgICAoaGV4KQkJUkxXIEluYy4KKzAwMTU5MSAgICAgKGJhc2UgMTYpCQlSTFcgSW5jLgorCQkJCTIwMjkgQ2F0byBBdmUuCisJCQkJU3RhdGUgQ29sbGVnZSBQQSAxNjgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtOTIgICAoaGV4KQkJRmFjb20gVUsgTHRkIChNZWxrc2hhbSkKKzAwMTU5MiAgICAgKGJhc2UgMTYpCQlGYWNvbSBVSyBMdGQgKE1lbGtzaGFtKQorCQkJCUxhbmNhc3RlciBIb3VzZQorCQkJCUJvd2VyaGlsbCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCU1lbGtzaGFtIFdpbHRzaGlyZSBTTjEwNEZCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtOTMgICAoaGV4KQkJVTRFQSBUZWNobm9sb2dpZXMgSW5jLgorMDAxNTkzICAgICAoYmFzZSAxNikJCVU0RUEgVGVjaG5vbG9naWVzIEluYy4KKwkJCQk0ODg2MCBNaWxtb250IERyaXZlCisJCQkJU3VpdGUxMDdDCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtOTQgICAoaGV4KQkJQklYT0xPTiBDTy4sTFRECiswMDE1OTQgICAgIChiYXNlIDE2KQkJQklYT0xPTiBDTy4sTFRECisJCQkJNTAyLTUwOCxEaWdpdGFsIEVtcGlyZSBCbGRnLgorCQkJCTk4MC0zIFllb25ndG9uZy1Eb25nCisJCQkJWWVvbmd0b25nLUd1LFN1d29uIEd5ZW9uZ2dpLURvIDQ0My04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtOTUgICAoaGV4KQkJUXVlc3RlciBUYW5nZW50IENvcnBvcmF0aW9uCiswMDE1OTUgICAgIChiYXNlIDE2KQkJUXVlc3RlciBUYW5nZW50IENvcnBvcmF0aW9uCisJCQkJMjAxIC0gOTg2NSBXZXN0IFNhYW5pY2ggUm9hZAorCQkJCVNpZG5leSBCQyBWOEwgNVk4CisJCQkJQ0FOQURBCisKKzAwLTE1LTk2ICAgKGhleCkJCUFSUklTIEludGVybmF0aW9uYWwKKzAwMTU5NiAgICAgKGJhc2UgMTYpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS05NyAgIChoZXgpCQlBRVRBIEFVRElPIFNZU1RFTVMKKzAwMTU5NyAgICAgKGJhc2UgMTYpCQlBRVRBIEFVRElPIFNZU1RFTVMKKwkJCQkxOC0yMiwgYXZlbnVlIEVkb3VhcmQgSGVycmlvdAorCQkJCUtlcGxlciA0CisJCQkJTGUgUGxlc3NpcyBSb2JpbnNvbiAgOTIzNTAKKwkJCQlGUkFOQ0UKKworMDAtMTUtOTggICAoaGV4KQkJS29sZWt0b3IgZ3JvdXAKKzAwMTU5OCAgICAgKGJhc2UgMTYpCQlLb2xla3RvciBncm91cAorCQkJCVZvamtvdmEgMTAKKwkJCQlJZHJpamEgIDUyODAKKwkJCQlTTE9WRU5JQQorCiswMC0xNS05OSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECiswMDE1OTkgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIExURAorCQkJCTQxNiwgTWFldGFuLTNEb25nLCBZZW9uZ3RvbmctR3UKKwkJCQlTdXdvbiBHeWVvbmdnaSA0NDMtNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTlBICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE1OUEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS05QiAgIChoZXgpCQlOb3J0ZWwKKzAwMTU5QiAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xNS05QyAgIChoZXgpCQlCLUtZVU5HIFNZU1RFTSBDby4sTHRkLgorMDAxNTlDICAgICAoYmFzZSAxNikJCUItS1lVTkcgU1lTVEVNIENvLixMdGQuCisJCQkJIzgxMixXT09MSU0gRS1CSVogQ0VOVEVSLDE3MC01CisJCQkJR1VSTy1ET05HIEdVUk8tR1UgMTUyLTg0NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS05RCAgIChoZXgpCQlNaW5pY29tIEFkdmFuY2VkIFN5c3RlbXMgbHRkCiswMDE1OUQgICAgIChiYXNlIDE2KQkJTWluaWNvbSBBZHZhbmNlZCBTeXN0ZW1zIGx0ZAorCQkJCTE2LCBIYXJ0b20gU3QuCisJCQkJSGFyLUhvdHp2aW0KKwkJCQlKZXJ1c2FsZW0gIDkxNDUwCisJCQkJSVNSQUVMCisKKzAwLTE1LTlFICAgKGhleCkJCU1hZCBDYXR6IEludGVyYWN0aXZlIEluYworMDAxNTlFICAgICAoYmFzZSAxNikJCU1hZCBDYXR6IEludGVyYWN0aXZlIEluYworCQkJCVVuaXRzIDMrNCBXZXN0IFBvaW50IFJvdworCQkJCUdyZWF0IFBhcmsgUmQsIEFsbW9uZHNidXJ5CisJCQkJQnJpc3RvbCBTb3V0aCBHbG91Y2VzdGVyc2hpcmUgQlMzMiA0UUcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNS05RiAgIChoZXgpCQlUZXJhc2NhbGEsIEluYy4KKzAwMTU5RiAgICAgKGJhc2UgMTYpCQlUZXJhc2NhbGEsIEluYy4KKwkJCQkxNDUgQm9kd2VsbCBTdHJlZXQKKwkJCQlBdm9uIE1BIDAyMzIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1BMCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxNUEwICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xNS1BMSAgIChoZXgpCQlFQ0EtU0lOVEVSUworMDAxNUExICAgICAoYmFzZSAxNikJCUVDQS1TSU5URVJTCisJCQkJNSwgcnVlIFBhdWwgTWVzcGxlCisJCQkJVE9VTE9VU0UgQ2VkZXggMDEgMzExMDYKKwkJCQlGUkFOQ0UKKworMDAtMTUtQTIgICAoaGV4KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorMDAxNUEyICAgICAoYmFzZSAxNikJCUFSUklTIEludGVybmF0aW9uYWwKKwkJCQkzODcxIExha2VmaWVsZCBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCVN1d2FuZWUgR0EgMzAwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUEzICAgKGhleCkJCUFSUklTIEludGVybmF0aW9uYWwKKzAwMTVBMyAgICAgKGJhc2UgMTYpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1BNCAgIChoZXgpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCiswMDE1QTQgICAgIChiYXNlIDE2KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQTUgICAoaGV4KQkJRENJIENvLiwgTHRkLgorMDAxNUE1ICAgICAoYmFzZSAxNikJCURDSSBDby4sIEx0ZC4KKwkJCQk0dGggRmwuIFN1c3VuZyBCL0QsIDg5My00CisJCQkJSmlqb2stZG9uZworCQkJCVl1c2VvbmctZ3UgRGFlamVvbiAzMDUtMzMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LUE2ICAgKGhleCkJCURpZ2l0YWwgRWxlY3Ryb25pY3MgUHJvZHVjdHMgTHRkLgorMDAxNUE2ICAgICAoYmFzZSAxNikJCURpZ2l0YWwgRWxlY3Ryb25pY3MgUHJvZHVjdHMgTHRkLgorCQkJCVJvb20gMzAxLCAzIHJkIEZsb29yLCBUc3VuIFlpcCBDZW50cmUKKwkJCQk0MSBUc3VuIFlpcCBTdHJlZXQKKwkJCQlLd3VuIFRvbmcgIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xNS1BNyAgIChoZXgpCQlSb2JhdGVjaCBBRworMDAxNUE3ICAgICAoYmFzZSAxNikJCVJvYmF0ZWNoIEFHCisJCQkJUGlsYXR1c3JpbmcgMTAKKwkJCQlNdXJpIEFHIDU2MzAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xNS1BOCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxNUE4ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4gVXMgSHd5IDQ1CisJCQkJUm0gTVcxMTMKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUE5ICAgKGhleCkJCUtXQU5HIFdPTyBJJkMgQ08uLExURAorMDAxNUE5ICAgICAoYmFzZSAxNikJCUtXQU5HIFdPTyBJJkMgQ08uLExURAorCQkJCTg5OC0yMywgSG9neWUtZG9uZyxEb25nYW4tZ3UKKwkJCQlBbnlhbmctc2ksR3llb25nZ2ktZG8KKwkJCQk0MzEtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LUFBICAgKGhleCkJCVJleHRlY2huaWsgSW50ZXJuYXRpb25hbCBDby4sCiswMDE1QUEgICAgIChiYXNlIDE2KQkJUmV4dGVjaG5payBJbnRlcm5hdGlvbmFsIENvLiwKKwkJCQlSb29tIDUtMywgTm8uNTEsIFNlY3Rpb24gMiwgS2VlbHVuZyBSb2FkCisJCQkJVGFpcGVpICAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LUFCICAgKGhleCkJCVBSTyBDTyBTT1VORCBJTkMKKzAwMTVBQiAgICAgKGJhc2UgMTYpCQlQUk8gQ08gU09VTkQgSU5DCisJCQkJMjI1IFBBUlNPTlMgU1RSRUVUCisJCQkJS0FMQU1BWk9PIE1JQ0hJR0FOIDQ5MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1BQyAgIChoZXgpCQlDYXBlbG9uIEFCCiswMDE1QUMgICAgIChiYXNlIDE2KQkJQ2FwZWxvbiBBQgorCQkJCUphZ2VyaG9ybnMgdmFnIDEKKwkJCQlLdW5nZW5zIEt1cnZhIFN0b2NraG9sbSBTLTE0MSA3NQorCQkJCVNXRURFTgorCiswMC0xNS1BRCAgIChoZXgpCQlBY2NlZGlhbiBOZXR3b3JrcworMDAxNUFEICAgICAoYmFzZSAxNikJCUFjY2VkaWFuIE5ldHdvcmtzCisJCQkJNDg3OCBMZXZ5LCBzdWl0ZSAyMDIKKwkJCQlzdWl0ZSAyMDIKKwkJCQlTdC1MYXVyZW50IFF1ZWJlYyBIOVAgMlY0CisJCQkJQ0FOQURBCisKKzAwLTE1LUFFICAgKGhleCkJCWt5dW5nIGlsCiswMDE1QUUgICAgIChiYXNlIDE2KQkJa3l1bmcgaWwKKwkJCQl3b2FyIHJvbmctbXluIHlvdWdhdGUtcmkgMTAxLTIKKwkJCQlwYWp1LWNpdHkgZ3llb25nIGdpIDQxMy04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtQUYgICAoaGV4KQkJQXp1cmVXYXZlIFRlY2hub2xvZ2llcywgSW5jLgorMDAxNUFGICAgICAoYmFzZSAxNikJCUF6dXJlV2F2ZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk4Ri4sIE5vLjk0LCBCYW96aG9uZyBSZC4sIFhpbmRpYW4KKwkJCQlUYWlwZWkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtQjAgICAoaGV4KQkJQVVUT1RFTEVORVQgQ08uLExURAorMDAxNUIwICAgICAoYmFzZSAxNikJCUFVVE9URUxFTkVUIENPLixMVEQKKwkJCQkyRiwgODk4LTI0LCBIb2d5ZTItZG9uZywgRG9uZ2FuLWd1CisJCQkJQW55YW5nLUNpdHkgS3l1bmdnaS1kbyA0MzEtODM2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LUIxICAgKGhleCkJCUFtYmllbnQgQ29ycG9yYXRpb24KKzAwMTVCMSAgICAgKGJhc2UgMTYpCQlBbWJpZW50IENvcnBvcmF0aW9uCisJCQkJNzkgQ2hhcGVsIFN0LgorCQkJCU5ld3RvbiBNQSAwMjQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQjIgICAoaGV4KQkJQWR2YW5jZWQgSW5kdXN0cmlhbCBDb21wdXRlciwgSW5jLgorMDAxNUIyICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIEluZHVzdHJpYWwgQ29tcHV0ZXIsIEluYy4KKwkJCQkxNzk3MCBFLiBBamF4IENpcmNsZQorCQkJCUNpdHkgb2YgSW5kdXN0cnkgQ0EgOTE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUIzICAgKGhleCkJCUNhcmV0ZWNoIEFCCiswMDE1QjMgICAgIChiYXNlIDE2KQkJQ2FyZXRlY2ggQUIKKwkJCQlOeWJvcmdzdmFnZW4gMTk3CisJCQkJS2FsaXggIDk1MjkxCisJCQkJU1dFREVOCisKKzAwLTE1LUI0ICAgKGhleCkJCVBvbHltYXAgIFdpcmVsZXNzIExMQworMDAxNUI0ICAgICAoYmFzZSAxNikJCVBvbHltYXAgIFdpcmVsZXNzIExMQworCQkJCTMxMCBTLiBXaWxsaWFtcyBCbHZkLiBTdGUuIDM1MAorCQkJCVR1Y3NvbiBBWiA4NTcxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQjUgICAoaGV4KQkJQ0kgTmV0d29yayBDb3JwLgorMDAxNUI1ICAgICAoYmFzZSAxNikJCUNJIE5ldHdvcmsgQ29ycC4KKwkJCQkyRiBEYWluaSBJbm91ZSBCbGRnCisJCQkJMS02LTYgQWthc2FrYSBNaW5hdG8ta3UKKwkJCQlUb2t5byAgMTA3LTAwNTIKKwkJCQlKQVBBTgorCiswMC0xNS1CNiAgIChoZXgpCQlTaGluTWF5d2EgSW5kdXN0cmllcywgTHRkLgorMDAxNUI2ICAgICAoYmFzZSAxNikJCVNoaW5NYXl3YSBJbmR1c3RyaWVzLCBMdGQuCisJCQkJMS0xIFNoaW5tZWl3YS1jaG8KKwkJCQlUYWthcmF6dWthIEh5b2dvIDY2NS04NTUwCisJCQkJSkFQQU4KKworMDAtMTUtQjcgICAoaGV4KQkJVG9zaGliYQorMDAxNUI3ICAgICAoYmFzZSAxNikJCVRvc2hpYmEKKwkJCQkyLTksU3VlaGlyby1DaG8KKwkJCQlPbWUgVG9reW8gMTk4ODcxMAorCQkJCUpBUEFOCisKKzAwLTE1LUI4ICAgKGhleCkJCVRhaG9lCiswMDE1QjggICAgIChiYXNlIDE2KQkJVGFob2UKKwkJCQl1bC4gVW5pd2Vyc3l0ZWNrYSAxCisJCQkJV3JvY2xhdyAgNTA5NTEKKwkJCQlQT0xBTkQKKworMDAtMTUtQjkgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMTVCOSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCSM5NC0xCisJCQkJSW1zb28tRG9uZworCQkJCUd1bWktQ2l0eSBHeWVvbmctQnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtQkEgICAoaGV4KQkJaWJhIEFHCiswMDE1QkEgICAgIChiYXNlIDE2KQkJaWJhIEFHCisJCQkJS29lbmlnc3dhcnRlcnN0cmFzc2UgNDQKKwkJCQlGdWVydGggQmF2YXJpYSA5MDc2MgorCQkJCUdFUk1BTlkKKworMDAtMTUtQkIgICAoaGV4KQkJU01BIFNvbGFyIFRlY2hub2xvZ3kgQUcKKzAwMTVCQiAgICAgKGJhc2UgMTYpCQlTTUEgU29sYXIgVGVjaG5vbG9neSBBRworCQkJCVNvbm5lbmFsbGVlIDEKKwkJCQlOaWVzdGV0YWwgSGVzc2VuIDM0MjY2CisJCQkJR0VSTUFOWQorCiswMC0xNS1CQyAgIChoZXgpCQlEZXZlbGNvCiswMDE1QkMgICAgIChiYXNlIDE2KQkJRGV2ZWxjbworCQkJCU9sb2YgUGFsbWVzIEFsbGUgNDAKKwkJCQlBYXJodXMgTiAgODIwMAorCQkJCURFTk1BUksKKworMDAtMTUtQkQgICAoaGV4KQkJR3JvdXAgNCBUZWNobm9sb2d5IEx0ZAorMDAxNUJEICAgICAoYmFzZSAxNikJCUdyb3VwIDQgVGVjaG5vbG9neSBMdGQKKwkJCQlDaGFsbGVuZ2UgSG91c2UKKwkJCQlJbnRlcm5hdGlvbmFsIERyaXZlCisJCQkJVGV3a2VzYnVyeSBHbG91Y2VzdGVyc2hpcmUgR0wyMCA4VVEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNS1CRSAgIChoZXgpCQlJcXVhIEx0ZC4KKzAwMTVCRSAgICAgKGJhc2UgMTYpCQlJcXVhIEx0ZC4KKwkJCQlIeXZvbmlua2F0dSAxCisJCQkJU2FsbyBWYXJzaW5haXMtU3VvbWkgMjQyNDAKKwkJCQlGSU5MQU5ECisKKzAwLTE1LUJGICAgKGhleCkJCXRlY2huaWNvYgorMDAxNUJGICAgICAoYmFzZSAxNikJCXRlY2huaWNvYgorCQkJCTQgUnVlIENhbWlsbGUgU2FpbnQtU2FlbnMKKwkJCQlMQU5FU1RFUiBNb3JiaWhhbiA1NjYwMgorCQkJCUZSQU5DRQorCiswMC0xNS1DMCAgIChoZXgpCQlESUdJVEFMIFRFTEVNRURJQSBDTy4sTFRELgorMDAxNUMwICAgICAoYmFzZSAxNikJCURJR0lUQUwgVEVMRU1FRElBIENPLixMVEQuCisJCQkJMTdUSCBGTE9PUiwgQ0hJTkEgWVVTRSBCVUlMRElORywKKwkJCQlOTyA2MDEzIFNIRU5OQU4gUk9BRCxGVVRJQU4gRElTVFJJQ1QKKwkJCQlTSEVOWkhFTiBHVUFOR0RPTkcgNTE4MDQwCisJCQkJQ0hJTkEKKworMDAtMTUtQzEgICAoaGV4KQkJU09OWSBDb21wdXRlciBFbnRlcnRhaW5tZW50IGluYywKKzAwMTVDMSAgICAgKGJhc2UgMTYpCQlTT05ZIENvbXB1dGVyIEVudGVydGFpbm1lbnQgaW5jLAorCQkJCTYtMjEsMkNob21lCisJCQkJTWluYW1pLUFveWFtYQorCQkJCU1pbmF0by1rdSBUb2t5byAxMDctMDA2MgorCQkJCUpBUEFOCisKKzAwLTE1LUMyICAgKGhleCkJCTNNIEdlcm1hbnkKKzAwMTVDMiAgICAgKGJhc2UgMTYpCQkzTSBHZXJtYW55CisJCQkJQ2FybCBTY2h1cnogU3RyLiAxCisJCQkJTmV1c3MgTlJXIDQxNDUzCisJCQkJR0VSTUFOWQorCiswMC0xNS1DMyAgIChoZXgpCQlSdWYgVGVsZW1hdGlrIEFHCiswMDE1QzMgICAgIChiYXNlIDE2KQkJUnVmIFRlbGVtYXRpayBBRworCQkJCVJ1ZXRpc3RyYXNzZSAxMworCQkJCVNjaGxpZXJlbiBaSCA4OTUyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTUtQzQgICAoaGV4KQkJRkxPVkVMIENPLiwgTFRELgorMDAxNUM0ICAgICAoYmFzZSAxNikJCUZMT1ZFTCBDTy4sIExURC4KKwkJCQlUaGUgVGFjaGloaSBidWlsZGluZyBObywzIGhhbGwsIDYtMSwgU2FrYWUtY2hvLAorCQkJCVRhY2hpa2F3YS1zaGkKKwkJCQlUb2t5byAgMTkwLTAwMDMKKwkJCQlKQVBBTgorCiswMC0xNS1DNSAgIChoZXgpCQlEZWxsIEluYworMDAxNUM1ICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQzYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNUM2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQzcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNUM3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQzggICAoaGV4KQkJRmxleGlQYW5lbCBMdGQKKzAwMTVDOCAgICAgKGJhc2UgMTYpCQlGbGV4aVBhbmVsIEx0ZAorCQkJCTcgYmlzIHJ1ZSBMYWxvCisJCQkJUGFyaXMgNzUwMTYKKwkJCQlGUkFOQ0UKKworMDAtMTUtQzkgICAoaGV4KQkJR3Vtc3RpeCwgSW5jCiswMDE1QzkgICAgIChiYXNlIDE2KQkJR3Vtc3RpeCwgSW5jCisJCQkJMzEzMCBBbHBpbmUgUm9hZAorCQkJCVN1aXRlIDI4OC02MDYKKwkJCQlQb3J0b2xhIFZhbGxleSBDQSA5NDAyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQ0EgICAoaGV4KQkJVGVyYVJlY29uLCBJbmMuCiswMDE1Q0EgICAgIChiYXNlIDE2KQkJVGVyYVJlY29uLCBJbmMuCisJCQkJMjk1NSBDYW1wdXMgRHJpdmUsIFN1aXRlIDMyNQorCQkJCVNhbiBNYXRlbyBDQSA5NDQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQ0IgICAoaGV4KQkJU3VyZiBDb21tdW5pY2F0aW9uIFNvbHV0aW9ucyBMdGQuCiswMDE1Q0IgICAgIChiYXNlIDE2KQkJU3VyZiBDb21tdW5pY2F0aW9uIFNvbHV0aW9ucyBMdGQuCisJCQkJUC5PLiBCb3ggMzQzCisJCQkJU29sdGFtIEluZHVzdHJpYWwgWm9uZQorCQkJCVlva25lYW0gIDIwMTY0CisJCQkJSVNSQUVMCisKKzAwLTE1LUNDICAgKGhleCkJCVRFUENPIFVRVUVTVCwgTFRELgorMDAxNUNDICAgICAoYmFzZSAxNikJCVRFUENPIFVRVUVTVCwgTFRELgorCQkJCVNhbm5vbWl5YSBJbnRlcyBCbGRnLiA4RgorCQkJCTctMS04IElzb2dhbWktZG9yaSwgQ2h1by1rdQorCQkJCUtvYmUgSFlPR08gNjUxLTAwODYKKwkJCQlKQVBBTgorCiswMC0xNS1DRCAgIChoZXgpCQlFeGFydGVjaCBJbnRlcm5hdGlvbmFsIENvcnAuCiswMDE1Q0QgICAgIChiYXNlIDE2KQkJRXhhcnRlY2ggSW50ZXJuYXRpb25hbCBDb3JwLgorCQkJCTMvRiwgTm8uNjIsIExhbmUgMTg4LCBSdWVpIEd1YW5nIFJkLiwgTmVpaHUKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtQ0UgICAoaGV4KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorMDAxNUNFICAgICAoYmFzZSAxNikJCUFSUklTIEludGVybmF0aW9uYWwKKwkJCQkzODcxIExha2VmaWVsZCBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCVN1d2FuZWUgR0EgMzAwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUNGICAgKGhleCkJCUFSUklTIEludGVybmF0aW9uYWwKKzAwMTVDRiAgICAgKGJhc2UgMTYpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1EMCAgIChoZXgpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCiswMDE1RDAgICAgIChiYXNlIDE2KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtRDEgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMTVEMSAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtRDIgICAoaGV4KQkJWGFudGVjaCBDb3Jwb3JhdGlvbgorMDAxNUQyICAgICAoYmFzZSAxNikJCVhhbnRlY2ggQ29ycG9yYXRpb24KKwkJCQkxMzEwMCBUZWxmYWlyIEF2ZW51ZQorCQkJCVNlY29uZCBGbG9vcgorCQkJCVN5bG1hciBDQSA5MTM0Mi0zNTczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1EMyAgIChoZXgpCQlQYW50ZWNoJkN1cml0ZWwgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTVEMyAgICAgKGJhc2UgMTYpCQlQYW50ZWNoJkN1cml0ZWwgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkxNDUxLTM0LCBTZW9jaG8tZG9uZywgU2VvY2hvLUd1CisJCQkJU2VvdWwgIDEzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtRDQgICAoaGV4KQkJRW1pdG9yIEFCCiswMDE1RDQgICAgIChiYXNlIDE2KQkJRW1pdG9yIEFCCisJCQkJU2pvdmlrc2JhY2tlbiAxNAorCQkJCVN0b2NraG9sbSAgMTE3IDQzCisJCQkJU1dFREVOCisKKzAwLTE1LUQ1ICAgKGhleCkJCU5JQ0VWVAorMDAxNUQ1ICAgICAoYmFzZSAxNikJCU5JQ0VWVAorCQkJCVdhcnNoYXdza29lIHNob3NzZSAxMjUKKwkJCQlNb3Njb3cgIDExNzQwNQorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xNS1ENiAgIChoZXgpCQlPU0xpTksgU3AuIHogby5vLgorMDAxNUQ2ICAgICAoYmFzZSAxNikJCU9TTGlOSyBTcC4geiBvLm8uCisJCQkJdWwuIE1hcnNhIDI3CisJCQkJR2RhbnNrICA4MDI5OQorCQkJCVBPTEFORAorCiswMC0xNS1ENyAgIChoZXgpCQlSZXRpIENvcnBvcmF0aW9uCiswMDE1RDcgICAgIChiYXNlIDE2KQkJUmV0aSBDb3Jwb3JhdGlvbgorCQkJCTZGLE5vIDEzLCBMYW5lIDEyMCwgU2VjIDEsIE5laWh1IFJkLiwKKwkJCQlUYWlwZWkgQ2l0eSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS1EOCAgIChoZXgpCQlJbnRlcmxpbmsgRWxlY3Ryb25pY3MKKzAwMTVEOCAgICAgKGJhc2UgMTYpCQlJbnRlcmxpbmsgRWxlY3Ryb25pY3MKKwkJCQk1NDYgRmx5bm4gUm9hZAorCQkJCUNhbWFyaWxsbyBDQSA5MzAxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtRDkgICAoaGV4KQkJUEtDIEVsZWN0cm9uaWNzIE95CiswMDE1RDkgICAgIChiYXNlIDE2KQkJUEtDIEVsZWN0cm9uaWNzIE95CisJCQkJUGFqdW5paXR5bnRpZSA0MworCQkJCVJBQUhFICA5MjEyMAorCQkJCUZJTkxBTkQKKworMDAtMTUtREEgICAoaGV4KQkJSVJJVEVMIEEuRC4KKzAwMTVEQSAgICAgKGJhc2UgMTYpCQlJUklURUwgQS5ELgorCQkJCUJhdGFqbmlja2kgcHV0IDIzCisJCQkJQmVvZ3JhZCBTZXJiaWEgMTEwODAKKwkJCQlZVUdPU0xBVklBCisKKzAwLTE1LURCICAgKGhleCkJCUNhbmVzdGEgSW5jLgorMDAxNURCICAgICAoYmFzZSAxNikJCUNhbmVzdGEgSW5jLgorCQkJCTk2NSBXZXN0IE1hdWRlIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1EQyAgIChoZXgpCQlLVCZDIENvLiwgTHRkLgorMDAxNURDICAgICAoYmFzZSAxNikJCUtUJkMgQ28uLCBMdGQuCisJCQkJNDg3LTQsIEtUJkMgQmxkZy4KKwkJCQlCYW5nSHdhLURvbmcKKwkJCQlHYW5nU2VvLUt1IFNlb3VsIDE1Ny04NDkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtREQgICAoaGV4KQkJSVAgQ29udHJvbCBTeXN0ZW1zIEx0ZC4KKzAwMTVERCAgICAgKGJhc2UgMTYpCQlJUCBDb250cm9sIFN5c3RlbXMgTHRkLgorCQkJCVVuaXQgMTUsIEhpLVRlY2ggVmlsbGFnZSwKKwkJCQlXaXRuZXkgV2F5LCBCb2xkb24gQnVzaW5lc3MgUGFyaywKKwkJCQlCb2xkb24gVHluZSAmIFdlYXIgTkUzNSA5UEUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNS1ERSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxNURFICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwIFYKKwkJCQlERU5NQVJLCisKKzAwLTE1LURGICAgKGhleCkJCUNsaXZldCBTLnAuQS4KKzAwMTVERiAgICAgKGJhc2UgMTYpCQlDbGl2ZXQgUy5wLkEuCisJCQkJdmlhIENhbXAgTG9uYyAyNQorCQkJCUZlbHRyZSBCZWxsdW5vIDMyMDMwCisJCQkJSVRBTFkKKworMDAtMTUtRTAgICAoaGV4KQkJU1QtRXJpY3Nzb24KKzAwMTVFMCAgICAgKGJhc2UgMTYpCQlTVC1Fcmljc3NvbgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kICBTRS0yMjEgODMKKwkJCQlTV0VERU4KKworMDAtMTUtRTEgICAoaGV4KQkJUGljb2NoaXAgTHRkCiswMDE1RTEgICAgIChiYXNlIDE2KQkJUGljb2NoaXAgTHRkCisJCQkJVXBwZXIgQm9yb3VnaCBDb3VydAorCQkJCVVwcGVyIEJvcm91Z2ggV2FsbHMKKwkJCQlCYXRoICBCQTEgMVJHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtRTIgICAoaGV4KQkJRHIuSW5nLiBIZXJiZXJ0IEtuYXVlciBHbWJICiswMDE1RTIgICAgIChiYXNlIDE2KQkJRHIuSW5nLiBIZXJiZXJ0IEtuYXVlciBHbWJICisJCQkJSGVnYXVlciBXZWcgMzgKKwkJCQlCZXJsaW4gIDE0MTYzCisJCQkJR0VSTUFOWQorCiswMC0xNS1FMyAgIChoZXgpCQlEcmVhbSBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24KKzAwMTVFMyAgICAgKGJhc2UgMTYpCQlEcmVhbSBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24KKwkJCQlFYmlzdSBQcmltZSBTcXVhcmUsIDEtMS0zOSBIaXJvbworCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUwLTAwMTIKKwkJCQlKQVBBTgorCiswMC0xNS1FNCAgIChoZXgpCQlaaW1tZXIgRWxla3Ryb21lZGl6aW4KKzAwMTVFNCAgICAgKGJhc2UgMTYpCQlaaW1tZXIgRWxla3Ryb21lZGl6aW4KKwkJCQlKdW5rZXJzc3RyYXNzZSA5CisJCQkJTmV1LVVsbSBCYXllcm4gODkyMzEKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LUU1ICAgKGhleCkJCUNoZWVydGVrIEluYy4KKzAwMTVFNSAgICAgKGJhc2UgMTYpCQlDaGVlcnRlayBJbmMuCisJCQkJTm8uMiwgRHUtU2luZyBGaXJzdCBSb2FkLCBTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LUU2ICAgKGhleCkJCU1PQklMRSBURUNITklLQSBJbmMuCiswMDE1RTYgICAgIChiYXNlIDE2KQkJTU9CSUxFIFRFQ0hOSUtBIEluYy4KKwkJCQlTb3RvYm9yaSBTa3kgQmxkLiA1dGggRmxvb3IKKwkJCQkyLTExIEljaGlnYXlhIEhvbm11cmEtY2hvLAorCQkJCVNoaW5qdWt1LWt1IFRva3lvIDE2Mi0wODQ1CisJCQkJSkFQQU4KKworMDAtMTUtRTcgICAoaGV4KQkJUXVhbnRlYyBQcm9BdWRpbworMDAxNUU3ICAgICAoYmFzZSAxNikJCVF1YW50ZWMgUHJvQXVkaW8KKwkJCQlMZW9wb2xkc3RyYXNzZSAxOAorCQkJCU11bmNoZW4gIEQtODA4MDIKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LUU4ICAgKGhleCkJCU5vcnRlbAorMDAxNUU4ICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTE1LUU5ICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxNUU5ICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCTJGLCBOby4yMzMtMiwgUGFvLUNoaWFvIFJvYWQKKwkJCQlIc2luLVRpZW4sIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LUVBICAgKGhleCkJCVRlbGx1bWF0IChQdHkpIEx0ZAorMDAxNUVBICAgICAoYmFzZSAxNikJCVRlbGx1bWF0IChQdHkpIEx0ZAorCQkJCTY0Lzc0IFdoaXRlIFJvYWQKKwkJCQlSZXRyZWF0CisJCQkJQ2FwZSBUb3duIFdlc3Rlcm4gUHJvdmluY2UgNzk0NQorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xNS1FQiAgIChoZXgpCQlaVEUgQ09SUE9SQVRJT04KKzAwMTVFQiAgICAgKGJhc2UgMTYpCQlaVEUgQ09SUE9SQVRJT04KKwkJCQk1L0YsQSBXaW5nLFpURSBQbGF6YSxLZWppIFJvYWQgU291dGgsSGktVGVjaCBJbmR1c3RyaWFsIFBhcmssTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xNS1FQyAgIChoZXgpCQlCb2NhIERldmljZXMgTExDCiswMDE1RUMgICAgIChiYXNlIDE2KQkJQm9jYSBEZXZpY2VzIExMQworCQkJCTYzNTMgVy4gUm9nZXJzIENpcmNsZSAjNAorCQkJCUJvY2EgUmF0b24gRmxvcmlkYSAzMzQ4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtRUQgICAoaGV4KQkJRnVsY3J1bSBNaWNyb3N5c3RlbXMsIEluYy4KKzAwMTVFRCAgICAgKGJhc2UgMTYpCQlGdWxjcnVtIE1pY3Jvc3lzdGVtcywgSW5jLgorCQkJCTI2NjMwIEFnb3VyYSBSb2FkCisJCQkJQ2FsYWJhc2FzIENBIDkxMzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1FRSAgIChoZXgpCQlPbW5leCBDb250cm9sIFN5c3RlbXMKKzAwMTVFRSAgICAgKGJhc2UgMTYpCQlPbW5leCBDb250cm9sIFN5c3RlbXMKKwkJCQkjNzQgLSAxODMzIENvYXN0IE1lcmlkaWFuIFJkLgorCQkJCVBvcnQgQ29xdWl0bGFtIEJDIFYzQyA2RzUKKwkJCQlDQU5BREEKKworMDAtMTUtRUYgICAoaGV4KQkJTkVDIFRPS0lOIENvcnBvcmF0aW9uCiswMDE1RUYgICAgIChiYXNlIDE2KQkJTkVDIFRPS0lOIENvcnBvcmF0aW9uCisJCQkJMTEyMCwgU2hpbW9rdXphd2EKKwkJCQlTYWdhbWloYXJhIEthbmFnYXdhIDIyOS0xMTk4CisJCQkJSkFQQU4KKworMDAtMTUtRjAgICAoaGV4KQkJRUdPIEJWCiswMDE1RjAgICAgIChiYXNlIDE2KQkJRUdPIEJWCisJCQkJUGFyYWRlIDE1CisJCQkJJ3MtSGVydG9nZW5ib3NjaCBOb29yZC1CcmFiYW50IDUyMTFLTAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE1LUYxICAgKGhleCkJCUtZTElOSyBDb21tdW5pY2F0aW9ucyBDb3JwLgorMDAxNUYxICAgICAoYmFzZSAxNikJCUtZTElOSyBDb21tdW5pY2F0aW9ucyBDb3JwLgorCQkJCThGLTgsIE5vLiAzNTEsIFNlYy4gMiwgWmhvbmdzaGFuIFJkLiwgWmhvbmdoZSBDaXR5CisJCQkJVGFpcGVpIENvdW50eQorCQkJCTIzNTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS1GMiAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMTVGMiAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQlOby41IFNoaW5nIFllaCBTdHJlZXQsS3dlaSBTaGFuIEhzaWFuZyxUYW95dWFuCisJCQkJVGFpcGVpICAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LUYzICAgKGhleCkJCVBFTFRPUiBBQgorMDAxNUYzICAgICAoYmFzZSAxNikJCVBFTFRPUiBBQgorCQkJCUJveCAyMzQxCisJCQkJU0UtMzMxIDAyICBWQVJOQU1PICBTRS0zMzEgMDIKKwkJCQlTV0VERU4KKworMDAtMTUtRjQgICAoaGV4KQkJRXZlbnRpZGUKKzAwMTVGNCAgICAgKGJhc2UgMTYpCQlFdmVudGlkZQorCQkJCTEgQWxzYW4gV2F5CisJCQkJTGl0dGxlIEZlcnJ5IE5KIDA3NjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1GNSAgIChoZXgpCQlTdXN0YWluYWJsZSBFbmVyZ3kgU3lzdGVtcworMDAxNUY1ICAgICAoYmFzZSAxNikJCVN1c3RhaW5hYmxlIEVuZXJneSBTeXN0ZW1zCisJCQkJIzUwMCwgNjA5IDE0dGggU3RyZWV0IE5XCisJCQkJQ2FsZ2FyeSBBYiBUMlQgMVAzCisJCQkJQ0FOQURBCisKKzAwLTE1LUY2ICAgKGhleCkJCVNDSUVOQ0UgQU5EIEVOR0lORUVSSU5HIFNFUlZJQ0VTLCBJTkMuCiswMDE1RjYgICAgIChiYXNlIDE2KQkJU0NJRU5DRSBBTkQgRU5HSU5FRVJJTkcgU0VSVklDRVMsIElOQy4KKwkJCQk0MDE1IFBVTEFTS0kgUElLRSBOVworCQkJCUhVTlRTVklMTEUgQUwgMzU4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUY3ICAgKGhleCkJCVdpbnRlY3JvbmljcyBMdGQuCiswMDE1RjcgICAgIChiYXNlIDE2KQkJV2ludGVjcm9uaWNzIEx0ZC4KKwkJCQlOby4gNzE2LCAxMUYtMywgSnVuZyBKZW5nIFJkLgorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtRjggICAoaGV4KQkJS2luZ3Ryb25pY3MgSW5kdXN0cmlhbCBDby4gTHRkLgorMDAxNUY4ICAgICAoYmFzZSAxNikJCUtpbmd0cm9uaWNzIEluZHVzdHJpYWwgQ28uIEx0ZC4KKwkJCQlQZW50aG91c2UsIENlbnR1cnkgQ2VudHJlLAorCQkJCTQ0LTQ2IEh1bmcgVG8gUm9hZCwgS3d1biBUb25nCisJCQkJS293bG9vbiAgCisJCQkJSE9ORyBLT05HCisKKzAwLTE1LUY5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTVGOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUZBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTVGQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUZCICAgKGhleCkJCXNldGV4IHNjaGVybXVseSB0ZXh0aWxlIGNvbXB1dGVyIGdtYmgKKzAwMTVGQiAgICAgKGJhc2UgMTYpCQlzZXRleCBzY2hlcm11bHkgdGV4dGlsZSBjb21wdXRlciBnbWJoCisJCQkJSGF1cHRzdHJhc3NlIDI1CisJCQkJTWVuZ2Vyc2tpcmNoZW4gSGVzc2VuIDM1Nzk0CisJCQkJR0VSTUFOWQorCiswMC0xNS1GQyAgIChoZXgpCQlMaXR0ZWxmdXNlIFN0YXJ0Y28KKzAwMTVGQyAgICAgKGJhc2UgMTYpCQlMaXR0ZWxmdXNlIFN0YXJ0Y28KKwkJCQkzNzE0IEtpbm5lYXIgUGwKKwkJCQlTYXNrYXRvb24gU0sgUzdQIDBBNgorCQkJCUNBTkFEQQorCiswMC0xNS1GRCAgIChoZXgpCQlDb21wbGV0ZSBNZWRpYSBTeXN0ZW1zCiswMDE1RkQgICAgIChiYXNlIDE2KQkJQ29tcGxldGUgTWVkaWEgU3lzdGVtcworCQkJCUdyb3ZlIFBsYWNlCisJCQkJQ3Vja2ZpZWxkIExhbmUKKwkJCQlXYXJuaW5nbGlkIFdlc3Qgc3Vzc2V4IFJIMTcgNVNOCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtRkUgICAoaGV4KQkJU0NISUxMSU5HIFJPQk9USUNTIExMQworMDAxNUZFICAgICAoYmFzZSAxNikJCVNDSElMTElORyBST0JPVElDUyBMTEMKKwkJCQkyMDEgQ09VU1RFQVUgUEwKKwkJCQlEQVZJUyBDQSA5NTYxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtRkYgICAoaGV4KQkJTm92YXRlbCBXaXJlbGVzcywgSW5jLgorMDAxNUZGICAgICAoYmFzZSAxNikJCU5vdmF0ZWwgV2lyZWxlc3MsIEluYy4KKwkJCQk5NjQ1IFNjcmFudG9uIFJvYWQKKwkJCQlTdWl0ZSAyMDUKKwkJCQlTYW4gRGllZ28gQ2FsaWZvcm5pYSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMDAgICAoaGV4KQkJQ2VsbGVCcml0ZSBNb2JpbGUgU3luY2hyb25pemF0aW9uCiswMDE2MDAgICAgIChiYXNlIDE2KQkJQ2VsbGVCcml0ZSBNb2JpbGUgU3luY2hyb25pemF0aW9uCisJCQkJMjUgQmFzZWwgU3QuCisJCQkJUE9CIDc1NjUKKwkJCQlQZXRhY2ggVGlrdmEgIDQ5MTcwCisJCQkJSVNSQUVMCisKKzAwLTE2LTAxICAgKGhleCkJCUJ1ZmZhbG8gSW5jLgorMDAxNjAxICAgICAoYmFzZSAxNikJCUJ1ZmZhbG8gSW5jLgorCQkJCTQtMTUgU2hpYmF0YSBob25kb3JpCisJCQkJTmFnb3lhIE1pbmFtaS1rdSwgQWljaGkgNDU3LTg1MjAKKwkJCQlKQVBBTgorCiswMC0xNi0wMiAgIChoZXgpCQlDRVlPTiBURUNITk9MT0dZIENPLixMVEQuCiswMDE2MDIgICAgIChiYXNlIDE2KQkJQ0VZT04gVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCTEzRiBTYW1zdW5nIEluc3VyYW5jZSBCL0QuICM5NDItOQorCQkJCUluZ3llLURvbmcsUGFsZGFsLUd1CisJCQkJU3V3b24tQ2l0eSBHeWVvbmdnaS1EbyA0NDItODMyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTAzICAgKGhleCkJCUNPT0xLU0tZIENvLiwgTFRECiswMDE2MDMgICAgIChiYXNlIDE2KQkJQ09PTEtTS1kgQ28uLCBMVEQKKwkJCQlTaGluZ3N1bmcgb2ZmY2V0ZWwgQTUxMSwgMTU4OC0xCisJCQkJU2VjaG8gU2VvdWwgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi0wNCAgIChoZXgpCQlTaWdwcm8KKzAwMTYwNCAgICAgKGJhc2UgMTYpCQlTaWdwcm8KKwkJCQk2NTUgVyBFdmVseW4gU1QKKwkJCQlTdWl0ZSAyCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMDUgICAoaGV4KQkJWU9SS1ZJTExFIFNPVU5EIElOQy4KKzAwMTYwNSAgICAgKGJhc2UgMTYpCQlZT1JLVklMTEUgU09VTkQgSU5DLgorCQkJCTQ2MjUgV0lUTUVSIElORFVTVFJJQUwgRVNUQVRFCisJCQkJTklBR0FSQSBGQUxMUyBOWSAxNDMwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMDYgICAoaGV4KQkJSWRlYWwgSW5kdXN0cmllcworMDAxNjA2ICAgICAoYmFzZSAxNikJCUlkZWFsIEluZHVzdHJpZXMKKwkJCQk5MTQ1IEJhbGJvYSBBdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTA3ICAgKGhleCkJCUN1cnZlcyBJbnRlcm5hdGlvbmFsIEluYy4KKzAwMTYwNyAgICAgKGJhc2UgMTYpCQlDdXJ2ZXMgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJMTAwIFJpdGNoaWUgUm9hZAorCQkJCVdhY28gVGV4YXMgNzY3MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTA4ICAgKGhleCkJCVNlcXVhbnMgQ29tbXVuaWNhdGlvbnMKKzAwMTYwOCAgICAgKGJhc2UgMTYpCQlTZXF1YW5zIENvbW11bmljYXRpb25zCisJCQkJMTkgTGUgUGFydmlzIGRlIGxhIERlZmVuc2UKKwkJCQlCYXRpbWVudCBDaXRpQ2VudGVyCisJCQkJUEFSSVMgTEEgREVGRU5TRSBDRURFWCA5MjA3MworCQkJCUZSQU5DRQorCiswMC0xNi0wOSAgIChoZXgpCQlVbml0ZWNoIGVsZWN0cm9uaWNzIGNvLiwgbHRkLgorMDAxNjA5ICAgICAoYmFzZSAxNikJCVVuaXRlY2ggZWxlY3Ryb25pY3MgY28uLCBsdGQuCisJCQkJNUYsTm8uMTM2LExhbmUgMjM1ICxQYW8tY2hpYW8gUmQuLAorCQkJCUhzaW4tVGllbiBjaXR5IFRhaXBlaSBIc2llbiAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTBBICAgKGhleCkJCVNXRUVYIEV1cm9wZSBCVgorMDAxNjBBICAgICAoYmFzZSAxNikJCVNXRUVYIEV1cm9wZSBCVgorCQkJCUFtcGVyZXdlZyAzCisJCQkJRGVsZnQgWnVpZC1Ib2xsYW5kIDI2MjcgQkcKKwkJCQlORVRIRVJMQU5EUworCiswMC0xNi0wQiAgIChoZXgpCQlUVldvcmtzIExMQworMDAxNjBCICAgICAoYmFzZSAxNikJCVRWV29ya3MgTExDCisJCQkJVHdvIEJlbHZlZGVyZSBQbGFjZSwgIzIwMAorCQkJCU1pbGwgVmFsbGV5IENBIDk0OTQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0wQyAgIChoZXgpCQlMUEwgIERFVkVMT1BNRU5UIFMuQS4gREUgQy5WCiswMDE2MEMgICAgIChiYXNlIDE2KQkJTFBMICBERVZFTE9QTUVOVCBTLkEuIERFIEMuVgorCQkJCUxBR08gR0lORUJSQSAzODAgUDMKKwkJCQlDT0wuIEZSQU5DSVNDTyBJIE1BREVSTworCQkJCUQuRi4gMTE0ODAKKwkJCQlNRVhJQ08KKworMDAtMTYtMEQgICAoaGV4KQkJQmUgSGVyZSBDb3Jwb3JhdGlvbgorMDAxNjBEICAgICAoYmFzZSAxNikJCUJlIEhlcmUgQ29ycG9yYXRpb24KKwkJCQkzOTMwMCBDaXZpYyBDZW50ZXIgRHIuLCBTdWl0ZSAxODAKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0wRSAgIChoZXgpCQlPcHRpY2EgVGVjaG5vbG9naWVzIEluYy4KKzAwMTYwRSAgICAgKGJhc2UgMTYpCQlPcHRpY2EgVGVjaG5vbG9naWVzIEluYy4KKwkJCQkyMDUxIERvZ3dvb2QgU3RyZWV0CisJCQkJU3VpdGUgMjEwCisJCQkJTG91aXN2aWxsZSBDTyA4MDAyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMEYgICAoaGV4KQkJQkFER0VSIE1FVEVSIElOQworMDAxNjBGICAgICAoYmFzZSAxNikJCUJBREdFUiBNRVRFUiBJTkMKKwkJCQk0NTQ1IFcgQlJPV04gREVFUiBSRAorCQkJCU1JTFdBVUtFRSBXSSA1MzIyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMTAgICAoaGV4KQkJQ2FyaW5hIFRlY2hub2xvZ3kKKzAwMTYxMCAgICAgKGJhc2UgMTYpCQlDYXJpbmEgVGVjaG5vbG9neQorCQkJCTY5MEEgRGlzY292ZXJ5IERyaXZlCisJCQkJSHVudHN2aWxsZSBBTCAzNTgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMTEgICAoaGV4KQkJQWx0ZWNvbiBTcmwKKzAwMTYxMSAgICAgKGJhc2UgMTYpCQlBbHRlY29uIFNybAorCQkJCVZpYSBGLmxsaSBDYWlyb2xpLCAxNworCQkJCUxpc3NvbmUgTWlsYW5vIDIwMDM1CisJCQkJSVRBTFkKKworMDAtMTYtMTIgICAoaGV4KQkJT3RzdWthIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxNjEyICAgICAoYmFzZSAxNikJCU90c3VrYSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkxLTEwIFNhc2FnYW9rYSwgTWluYWt1Y2hpCisJCQkJa291a2Egc2hpZ2EgNTI4LTAwNjEKKwkJCQlKQVBBTgorCiswMC0xNi0xMyAgIChoZXgpCQlMaWJyZVN0cmVhbSBUZWNobm9sb2dpZXMgSW5jLgorMDAxNjEzICAgICAoYmFzZSAxNikJCUxpYnJlU3RyZWFtIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJODk1IFdhdmVybGV5IFN0cmVldAorCQkJCVN1aXRlIDExMAorCQkJCVdpbm5pcGVnIE1hbml0b2JhIFIzVCA1UDQKKwkJCQlDQU5BREEKKworMDAtMTYtMTQgICAoaGV4KQkJUGljb3NlY29uZCBQdWxzZSBMYWJzCiswMDE2MTQgICAgIChiYXNlIDE2KQkJUGljb3NlY29uZCBQdWxzZSBMYWJzCisJCQkJMjUwMCA1NXRoIFN0cmVldAorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTE1ICAgKGhleCkJCU5pdHRhbiBDb21wYW55LCBMaW1pdGVkCiswMDE2MTUgICAgIChiYXNlIDE2KQkJTml0dGFuIENvbXBhbnksIExpbWl0ZWQKKwkJCQkxMS02LCAxLWNob21lLCBIYXRhZ2F5YQorCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUxLTg1MzUKKwkJCQlKQVBBTgorCiswMC0xNi0xNiAgIChoZXgpCQlCUk9XQU4gQ09NTVVOSUNBVElPTiBJTkMuCiswMDE2MTYgICAgIChiYXNlIDE2KQkJQlJPV0FOIENPTU1VTklDQVRJT04gSU5DLgorCQkJCU5vLjEgSmVuLUFpIFJvYWQsIEhzaW5DaHUgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUh1S291IEhzaWFuZyBIc2luQ2h1IEhzaWVuIDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtMTcgICAoaGV4KQkJTVNJCiswMDE2MTcgICAgIChiYXNlIDE2KQkJTVNJCisJCQkJTm8uNjksIExpLURlIFN0LCBKdW5nLUhvIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtMTggICAoaGV4KQkJSElWSU9OIENvLiwgTHRkLgorMDAxNjE4ICAgICAoYmFzZSAxNikJCUhJVklPTiBDby4sIEx0ZC4KKwkJCQkyRi4sIEFreXVuZyBCbGRnLiwgNTQtMTAsIE11bmplb25nLWRvbmcsCisJCQkJU29uZ3BhLUd1IFNlb3VsIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi0xOSAgIChoZXgpCQlMYSBGYWN0b3JpYSBkZSBDb211bmljYWNpb25lcyBBcGxpY2FkYXMsUy5MLgorMDAxNjE5ICAgICAoYmFzZSAxNikJCUxhIEZhY3RvcmlhIGRlIENvbXVuaWNhY2lvbmVzIEFwbGljYWRhcyxTLkwuCisJCQkJQy9BZ3JpY3VsdHVyYSwxMTEKKwkJCQlUZXJyYXNzYSBCYXJjZWxvbmEgMDgyMjMKKwkJCQlTUEFJTgorCiswMC0xNi0xQSAgIChoZXgpCQlEYW1ldHJpYyBBQgorMDAxNjFBICAgICAoYmFzZSAxNikJCURhbWV0cmljIEFCCisJCQkJQm94IDEyMAorCQkJCVNrYXJob2xtZW4gU3RvY2tob2xtIFNFLTEyNzIzCisJCQkJU1dFREVOCisKKzAwLTE2LTFCICAgKGhleCkJCU1pY3JvbmV0IENvcnBvcmF0aW9uCiswMDE2MUIgICAgIChiYXNlIDE2KQkJTWljcm9uZXQgQ29ycG9yYXRpb24KKwkJCQkxNzg4LTM4OCBOb211cmEgSGlyb29rYQorCQkJCVNoaW9qaXJpLXNoaSBOYWdhbm8ta2VuIDM5OS0wNzAyCisJCQkJSkFQQU4KKworMDAtMTYtMUMgICAoaGV4KQkJZTpjdWUKKzAwMTYxQyAgICAgKGJhc2UgMTYpCQllOmN1ZQorCQkJCUZyaWVkcmljaC1MaXN0LVN0cmFzc2UgMjMKKwkJCQlQYWRlcmJvcm4gIDMzMTAwCisJCQkJR0VSTUFOWQorCiswMC0xNi0xRCAgIChoZXgpCQlJbm5vdmF0aXZlIFdpcmVsZXNzIFRlY2hub2xvZ2llcywgSW5jLgorMDAxNjFEICAgICAoYmFzZSAxNikJCUlubm92YXRpdmUgV2lyZWxlc3MgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTA0NyBWaXN0YSBQYXJrIERyLgorCQkJCVN1aXRlIEEKKwkJCQlGb3Jlc3QgVkEgMjQ1NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTFFICAgKGhleCkJCVdvb2ppbm5ldAorMDAxNjFFICAgICAoYmFzZSAxNikJCVdvb2ppbm5ldAorCQkJCTI5MiBvc2FuIGRvbmd0YW4KKwkJCQlod2FzZW9uZyBreW9uZ2dpIDQ0NS04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtMUYgICAoaGV4KQkJU1VOV0FWRVRFQyBDby4sIEx0ZC4KKzAwMTYxRiAgICAgKGJhc2UgMTYpCQlTVU5XQVZFVEVDIENvLiwgTHRkLgorCQkJCSM4MjMsIEt3YW55YW5nLWRvbmcsIERvbmdhbi1rdQorCQkJCUFueWFuZy1zaSBLeXVuZ2tpLWRvIDQzMS0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtMjAgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKzAwMTYyMCAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNFIDIyMSA4OAorCQkJCVNXRURFTgorCiswMC0xNi0yMSAgIChoZXgpCQlDb2xvcmFkbyBWbmV0CiswMDE2MjEgICAgIChiYXNlIDE2KQkJQ29sb3JhZG8gVm5ldAorCQkJCTI1NSBFLiA2dGggU3QuCisJCQkJTG92ZWxhbmQgQ08gODA1MzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTIyICAgKGhleCkJCUJCSCBTWVNURU1TIEdNQkgKKzAwMTYyMiAgICAgKGJhc2UgMTYpCQlCQkggU1lTVEVNUyBHTUJICisJCQkJQm90dGdlcnN0cmFzc2UgNDAKKwkJCQlXZWlkZW4gaS5kLk9QZi4gQmF5ZXJuIDkyNjM3CisJCQkJR0VSTUFOWQorCiswMC0xNi0yMyAgIChoZXgpCQlJbnRlcnZhbCBNZWRpYQorMDAxNjIzICAgICAoYmFzZSAxNikJCUludGVydmFsIE1lZGlhCisJCQkJMzIwMCBBc2ggU3RyZWV0CisJCQkJUGFsbyBBbHRvIENBIDk0MzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0yNCAgIChoZXgpCQlUZW5lcm9zLCBJbmMuCiswMDE2MjQgICAgIChiYXNlIDE2KQkJVGVuZXJvcywgSW5jLgorCQkJCTIxNSBDYXN0cm8gU3QuCisJCQkJM3JkIEZsb29yCisJCQkJTXQuIFZpZXcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTI1ICAgKGhleCkJCUltcGluaiwgSW5jLgorMDAxNjI1ICAgICAoYmFzZSAxNikJCUltcGluaiwgSW5jLgorCQkJCTcwMSBOLiAzNHRoIFN0cmVldAorCQkJCVN1aXRlIDMwMAorCQkJCVNlYXR0bGUgV0EgOTgxMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTI2ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE2MjYgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0yNyAgIChoZXgpCQllbWJlZGRlZC1sb2dpYyBERVNJR04gQU5EIE1PUkUgR21iSAorMDAxNjI3ICAgICAoYmFzZSAxNikJCWVtYmVkZGVkLWxvZ2ljIERFU0lHTiBBTkQgTU9SRSBHbWJICisJCQkJSGFuc2VzdHJhc3NlIDI0CisJCQkJTXVlbnN0ZXIgTlJXIDQ4MTUzCisJCQkJR0VSTUFOWQorCiswMC0xNi0yOCAgIChoZXgpCQlVbHRyYSBFbGVjdHJvbmljcyBNYW51ZmFjdHVyaW5nIGFuZCBDYXJkIFN5c3RlbXMKKzAwMTYyOCAgICAgKGJhc2UgMTYpCQlVbHRyYSBFbGVjdHJvbmljcyBNYW51ZmFjdHVyaW5nIGFuZCBDYXJkIFN5c3RlbXMKKwkJCQlIYW1wc2hpcmUgUm9hZAorCQkJCUdyYW5ieSBFc3RhdGUKKwkJCQlXZXltb3V0aCBEb3JzZXQgRFQ0IDlYRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE2LTI5ICAgKGhleCkJCU5pdnVzIEdtYkgKKzAwMTYyOSAgICAgKGJhc2UgMTYpCQlOaXZ1cyBHbWJICisJCQkJSW0gVGFsZSAyCisJCQkJRXBwaW5nZW4gQmFkZW4tV3VlcnR0ZW1iZXJnIDc1MDMxCisJCQkJR0VSTUFOWQorCiswMC0xNi0yQSAgIChoZXgpCQlBbnRpayBjb21wdXRlcnMgJiBjb21tdW5pY2F0aW9ucyBzLnIuby4KKzAwMTYyQSAgICAgKGJhc2UgMTYpCQlBbnRpayBjb21wdXRlcnMgJiBjb21tdW5pY2F0aW9ucyBzLnIuby4KKwkJCQlSYXp1c292YSAyCisJCQkJS29zaWNlIFNLIFNLLTA0MDAxCisJCQkJU0xPVkFLSUEKKworMDAtMTYtMkIgICAoaGV4KQkJVG9nYW1pIEVsZWN0cmljIE1mZy5jby4sTHRkLgorMDAxNjJCICAgICAoYmFzZSAxNikJCVRvZ2FtaSBFbGVjdHJpYyBNZmcuY28uLEx0ZC4KKwkJCQkxLTEgT2h0YWthcmEtS2l0YW1hY2hpCisJCQkJU2FnYS5QUkYgODQwLTA4MDIKKwkJCQlKQVBBTgorCiswMC0xNi0yQyAgIChoZXgpCQlYYW5ib28KKzAwMTYyQyAgICAgKGJhc2UgMTYpCQlYYW5ib28KKwkJCQkxMTUgV2VzdCAzMHRoLCA2dGggRmwKKwkJCQlOZXcgWW9yayBOWSAxMDAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMkQgICAoaGV4KQkJU1ROZXQgQ28uLCBMdGQuCiswMDE2MkQgICAgIChiYXNlIDE2KQkJU1ROZXQgQ28uLCBMdGQuCisJCQkJU2hpbi13aGEgQnVpbGRpbmcgNEYsIDk1NC0yNQorCQkJCUt3YW55YW5nLWRvbmcsIERvbmdhbi1ndQorCQkJCUFueWFuZy1zaSBLeXVuZ2tpLWRvICA0MzEtMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTJFICAgKGhleCkJCVNwYWNlIFNodXR0bGUgSGktVGVjaCBDby4sIEx0ZC4KKzAwMTYyRSAgICAgKGJhc2UgMTYpCQlTcGFjZSBTaHV0dGxlIEhpLVRlY2ggQ28uLCBMdGQuCisJCQkJTm8uIDIyNiwgV3UtSG8gU3QuLCBXdS1MdW5nIFZpbGxhZ2UsCisJCQkJQ2hpdW5nLUxpbiBIc2lhbmcsCisJCQkJSHNpbmNodSBIc2llbiAgMzA3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi0yRiAgIChoZXgpCQlHZXV0ZWJydWNrIEdtYkgKKzAwMTYyRiAgICAgKGJhc2UgMTYpCQlHZXV0ZWJydWNrIEdtYkgKKwkJCQlJbSBOYXNzZW4gNy05CisJCQkJV2luZGhhZ2VuICA1MzU3OAorCQkJCUdFUk1BTlkKKworMDAtMTYtMzAgICAoaGV4KQkJVmF0aXYgVGVjaG5vbG9naWVzCiswMDE2MzAgICAgIChiYXNlIDE2KQkJVmF0aXYgVGVjaG5vbG9naWVzCisJCQkJOTMzOSBHZW5lc2VlIEF2ZW51ZQorCQkJCVN1aXRlIDEzMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMzEgICAoaGV4KQkJWHRlYW0KKzAwMTYzMSAgICAgKGJhc2UgMTYpCQlYdGVhbQorCQkJCXJvb20gODAxLCBOby4xMDIgaW50ZXJuYXRpb25hbCBTY2llbmNlICYgVGVjaG9sb2d5IFBhcmsKKwkJCQlOby4yIFNoYW5nRGkgSW5mbyBSb2FkLCBIYWlEaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyA4NjEwCisJCQkJQ0hJTkEKKworMDAtMTYtMzIgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPTklDUyBDTy4sIExURC4KKzAwMTYzMiAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCTQxNiwgTUVUQU4tM0RPTkcsCisJCQkJWU9VTkdUT05HLUdVCisJCQkJU1VXT04gS1lVTkdLSS1ETyA0NDItNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTMzICAgKGhleCkJCU94Zm9yZCBEaWFnbm9zdGljcyBMdGQuCiswMDE2MzMgICAgIChiYXNlIDE2KQkJT3hmb3JkIERpYWdub3N0aWNzIEx0ZC4KKwkJCQlTYW5keWJyYWUKKwkJCQlXaGl0ZWJhcm4gRHIsIEJvYXJzIEhpbGwKKwkJCQlPeGZvcmQgT3hvbi4gT1gxIDVISgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE2LTM0ICAgKGhleCkJCU1hdGh0ZWNoLCBJbmMuCiswMDE2MzQgICAgIChiYXNlIDE2KQkJTWF0aHRlY2gsIEluYy4KKwkJCQk2NDAyIEFybGluZ3RvbiBCbHZkLiwKKwkJCQlTdWl0ZSAxMjAwCisJCQkJRmFsbHMgQ2h1cmNoIFZpcmdpbmlhIDIyMDQyLTIzNTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTM1ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxNjM1ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5IFNvdXRoCisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0zNiAgIChoZXgpCQlRdWFudGEgQ29tcHV0ZXIgSW5jLgorMDAxNjM2ICAgICAoYmFzZSAxNikJCVF1YW50YSBDb21wdXRlciBJbmMuCisJCQkJTm8uIDIxMSwgV2VuIEh3YSAyUmQuLCBLdWVpIFNoYW4gSHNpYW5nCisJCQkJVGFvIFl1YW4gU2hpZW4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtMzcgICAoaGV4KQkJQ2l0ZWwgU3JsCiswMDE2MzcgICAgIChiYXNlIDE2KQkJQ2l0ZWwgU3JsCisJCQkJVmlhIEwuIEcuIENvbHVtZWxsYSwgMzYKKwkJCQlNaWxhbiBNSSAyMDEyOAorCQkJCUlUQUxZCisKKzAwLTE2LTM4ICAgKGhleCkJCVRFQ09NIENvLiwgTHRkLgorMDAxNjM4ICAgICAoYmFzZSAxNikJCVRFQ09NIENvLiwgTHRkLgorCQkJCTIzIFImRCBSb2FkIDIgU2NpZW5jZSBCYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi0zOSAgIChoZXgpCQlVQklRVUFNIENvLixMdGQKKzAwMTYzOSAgICAgKGJhc2UgMTYpCQlVQklRVUFNIENvLixMdGQKKwkJCQlUZWNobm92aWxsIDRGLDI3Mi0zIFlhdGFwMworCQkJCUJ1bmRhbmcKKwkJCQlTZW9uZ25hbSBLeWVvbmdnaSA0NjMtODM2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTNBICAgKGhleCkJCVlWRVMgVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwMTYzQSAgICAgKGJhc2UgMTYpCQlZVkVTIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJTm8uNzQsIEZ1c2luZyAybmQgUmQuCisJCQkJR3VlaXNoYW4gVGFveXVhbiAzMzM3NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtM0IgICAoaGV4KQkJVmVydGV4UlNJL0dlbmVyYWwgRHluYW1pY3MKKzAwMTYzQiAgICAgKGJhc2UgMTYpCQlWZXJ0ZXhSU0kvR2VuZXJhbCBEeW5hbWljcworCQkJCTIxMjAgT2xkIEdhdGVzYnVyZyBSZC4KKwkJCQlTdGF0ZSBjb2xsZWdlIFBBIDE2ODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0zQyAgIChoZXgpCQlSZWJveCBCLlYuCiswMDE2M0MgICAgIChiYXNlIDE2KQkJUmVib3ggQi5WLgorCQkJCUhlbmRyaWsgRmlnZWV3ZWcgMVgKKwkJCQlIYWFybGVtIE5vb3JkLUhvbGxhbmQgMjAzMSBCSgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE2LTNEICAgKGhleCkJCVRzaW5naHVhIFRvbmdmYW5nIExlZ2VuZCBTaWxpY29uIFRlY2guIENvLiwgTHRkLgorMDAxNjNEICAgICAoYmFzZSAxNikJCVRzaW5naHVhIFRvbmdmYW5nIExlZ2VuZCBTaWxpY29uIFRlY2guIENvLiwgTHRkLgorCQkJCTI2RiBUU0lOR0hVQSBUT05HRkFORyBISS1URUNIIFBMQVpBCisJCQkJQkVJSklORyAgMTAwMDgzCisJCQkJQ0hJTkEKKworMDAtMTYtM0UgICAoaGV4KQkJWGVuc291cmNlLCBJbmMuCiswMDE2M0UgICAgIChiYXNlIDE2KQkJWGVuc291cmNlLCBJbmMuCisJCQkJMjMwMCBHZW5nIFJkLgorCQkJCVN1aXRlIDI1MAorCQkJCVBhbG8gQWx0byBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtM0YgICAoaGV4KQkJQ1JlVEUgU1lTVEVNUyBJbmMuCiswMDE2M0YgICAgIChiYXNlIDE2KQkJQ1JlVEUgU1lTVEVNUyBJbmMuCisJCQkJN0YsTm8uMjUwLFNlYy4zLFBlaSBTaGVuIFJkLixTaGVuIEtlbmcgSHNpYW5nCisJCQkJVGFpcGVpIENvdW50eSAgMjIyMDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTQwICAgKGhleCkJCUFzbW9iaWxlIENvbW11bmljYXRpb24gSW5jLgorMDAxNjQwICAgICAoYmFzZSAxNikJCUFzbW9iaWxlIENvbW11bmljYXRpb24gSW5jLgorCQkJCU5vLjExIExhbmUgMTIwLCBMaS1UZSBSZC4sIFBlaXRvdSAxMTIsIFRhaXBlaSwgVGFpd2FuLCBSLk8uQworCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi00MSAgIChoZXgpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzAwMTY0MSAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKwkJCQkxNDEsIExBTkUgMzUxLCBTRUMuMSxUQUlQSU5HIFJELiAKKwkJCQlUU0FPVFVFTiBOQU5UT1UgNTQyNjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTQyICAgKGhleCkJCVBhbmdvbGluCiswMDE2NDIgICAgIChiYXNlIDE2KQkJUGFuZ29saW4KKwkJCQk5NTAxIFNhdGVsbGl0ZSBCb3VsZXZhcmQsIFN1aXRlIDEwOQorCQkJCU9ybGFuZG8gRkwgMzI4MzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTQzICAgKGhleCkJCVN1bmhpbGxvIENvcnBvcmF0aW9uCiswMDE2NDMgICAgIChiYXNlIDE2KQkJU3VuaGlsbG8gQ29ycG9yYXRpb24KKwkJCQk0NDQgS2VsbGV5IERyaXZlCisJCQkJV2VzdCBCZXJsaW4gTmV3IEplcnNleSAwODA5MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNDQgICAoaGV4KQkJTElURS1PTiBUZWNobm9sb2d5IENvcnAuCiswMDE2NDQgICAgIChiYXNlIDE2KQkJTElURS1PTiBUZWNobm9sb2d5IENvcnAuCisJCQkJMThGLCBOby4zOTIsIFJ1ZXkgS3VhbmcgUm9hZCwgTmllaHUsCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTQ1ICAgKGhleCkJCVBvd2VyIERpc3RyaWJ1dGlvbiwgSW5jLgorMDAxNjQ1ICAgICAoYmFzZSAxNikJCVBvd2VyIERpc3RyaWJ1dGlvbiwgSW5jLgorCQkJCTQyMDAgT2FrbGV5cyBDdC4KKwkJCQlSaWNobW9uZCBWQSAyMzIyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNDYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNjQ2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNDcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNjQ3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNDggICAoaGV4KQkJU1NEIENvbXBhbnkgTGltaXRlZAorMDAxNjQ4ICAgICAoYmFzZSAxNikJCVNTRCBDb21wYW55IExpbWl0ZWQKKwkJCQkzLTMtNCBIaWdhc2hpeWFndXJhCisJCQkJS3VzYXRzdS1jaXR5IFNoaWdhIDUyNS0wMDU0CisJCQkJSkFQQU4KKworMDAtMTYtNDkgICAoaGV4KQkJU2V0T25lIEdtYkgKKzAwMTY0OSAgICAgKGJhc2UgMTYpCQlTZXRPbmUgR21iSAorCQkJCUhlZ2VuaGVpbWVyIFN0ci4gMgorCQkJCVdlaWwgYW0gUmhlaW4gQmFkZW4gV3VlcnRlbWJlcmcgRC03OTU3NgorCQkJCUdFUk1BTlkKKworMDAtMTYtNEEgICAoaGV4KQkJVmlicmF0aW9uIFRlY2hub2xvZ3kgTGltaXRlZAorMDAxNjRBICAgICAoYmFzZSAxNikJCVZpYnJhdGlvbiBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlWaWJ0ZWNoIEhvdXNlLCBDZW50cmFsIEJvdWxldmFyZAorCQkJCUNlbnRyYWwgUGFyaworCQkJCUxhcmJlcnQgU2NvdGxhbmQgRks1IDRSVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE2LTRCICAgKGhleCkJCVF1b3Jpb24gRGF0YSBTeXN0ZW1zIEdtYkgKKzAwMTY0QiAgICAgKGJhc2UgMTYpCQlRdW9yaW9uIERhdGEgU3lzdGVtcyBHbWJICisJCQkJQW4gZGVyIEtsaW5nZSA2CisJCQkJRXJmdXJ0IFRodXJpbmdpYSA5OTE5NQorCQkJCUdFUk1BTlkKKworMDAtMTYtNEMgICAoaGV4KQkJUExBTkVUIElOVCBDby4sIEx0ZAorMDAxNjRDICAgICAoYmFzZSAxNikJCVBMQU5FVCBJTlQgQ28uLCBMdGQKKwkJCQk4dGggRmxvb3IsIFNhZXVtIEIvRCwgMTM2MS01CisJCQkJU2VvY2hvLURvbmcsIFNlb2Noby1LdQorCQkJCVNlb3VsICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTREICAgKGhleCkJCUFsY2F0ZWwgTm9ydGggQW1lcmljYSBJUCBEaXZpc2lvbgorMDAxNjREICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTm9ydGggQW1lcmljYSBJUCBEaXZpc2lvbgorCQkJCTcwMSBFLiBNaWRkbGVmaWVsZCBSRC4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi00RSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxNjRFICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xNi00RiAgIChoZXgpCQlXb3JsZCBFdGhuaWMgQnJvYWRjYXN0aW4gSW5jLgorMDAxNjRGICAgICAoYmFzZSAxNikJCVdvcmxkIEV0aG5pYyBCcm9hZGNhc3RpbiBJbmMuCisJCQkJNTAgQ2FsaWZvcm5pYSBTdHJlZXQsIFN1aXRlIDE1MDAKKwkJCQlTYW4gRnJhbmNpc2NvIENhbGlmb3JuaWEgOTQxMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTUwICAgKGhleCkJCUhlcmxleSBHZW5lcmFsIE1pY3Jvd2F2ZSBJc3JhZWwuIAorMDAxNjUwICAgICAoYmFzZSAxNikJCUhlcmxleSBHZW5lcmFsIE1pY3Jvd2F2ZSBJc3JhZWwuIAorCQkJCUtJQkJVVFogRVlBTAorCQkJCUQuTi4gSEFTSEFST04gSEFUSUNIT04KKwkJCQk0NTg0MAorCQkJCUlTUkFFTAorCiswMC0xNi01MSAgIChoZXgpCQlFeGVvIFN5c3RlbXMKKzAwMTY1MSAgICAgKGJhc2UgMTYpCQlFeGVvIFN5c3RlbXMKKwkJCQkxNjUwLCBydWUgTWljaGVsaW4sIHN1aXRlIDIwMQorCQkJCUxhdmFsIFF1ZWJlYyBIN0wgNFIzCisJCQkJQ0FOQURBCisKKzAwLTE2LTUyICAgKGhleCkJCUhvYXRlY2ggVGVjaG5vbG9naWVzLCBJbmMuCiswMDE2NTIgICAgIChiYXNlIDE2KQkJSG9hdGVjaCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxRi4sIE5vLjIyNCwgR3Vvc2hlbmcgU3QuCisJCQkJWmh1YmVpIEhzaW5DaHUgSHNpZW4gMzAyNDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTUzICAgKGhleCkJCUxFR08gU3lzdGVtIEEvUyBJRSBFbGVjdHJvbmljcyBEaXZpc2lvbgorMDAxNjUzICAgICAoYmFzZSAxNikJCUxFR08gU3lzdGVtIEEvUyBJRSBFbGVjdHJvbmljcyBEaXZpc2lvbgorCQkJCUFhc3R2ZWogMQorCQkJCUJpbGx1bmQgS29tbXVuZSA3MTkwCisJCQkJREVOTUFSSworCiswMC0xNi01NCAgIChoZXgpCQlGbGV4LVAgSW5kdXN0cmllcyBTZG4uIEJoZC4KKzAwMTY1NCAgICAgKGJhc2UgMTYpCQlGbGV4LVAgSW5kdXN0cmllcyBTZG4uIEJoZC4KKwkJCQlOby4xMjgtMTItMiwgTWVuYXJhIFVNTk8sCisJCQkJSmFsYW4gTWFjYWxpc3RlciwKKwkJCQlHZW9yZ2V0b3duIFBlbmFuZyAxMDQwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE2LTU1ICAgKGhleCkJCUZVSE8gVEVDSE5PTE9HWSBDby4sIExURAorMDAxNjU1ICAgICAoYmFzZSAxNikJCUZVSE8gVEVDSE5PTE9HWSBDby4sIExURAorCQkJCU5vLiAzMCwgTGFuZSA3MjYsIEppbm1hIFJkLCBTZWMuIDMKKwkJCQlDaGFuZyBIdWEgVGFpd2EgNTAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi01NiAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMTY1NiAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xNi01NyAgIChoZXgpCQlBZWdhdGUgTHRkCiswMDE2NTcgICAgIChiYXNlIDE2KQkJQWVnYXRlIEx0ZAorCQkJCVRlY2hub2xvZ3kgQ2VudHJlCisJCQkJTWVsYm91cm4gSGVydGZvcmRzaGlyZSBTRzggNkRQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTYtNTggICAoaGV4KQkJRnVzaW9udGVjaCBUZWNobm9sb2dpZXMgSW5jLgorMDAxNjU4ICAgICAoYmFzZSAxNikJCUZ1c2lvbnRlY2ggVGVjaG5vbG9naWVzIEluYy4KKwkJCQk2RiwgTm8uNzgsIENoZW5nIEt1bmcgUmQuLCBTZWMuIDEsCisJCQkJTmFuIEthbmcKKwkJCQlUYWlwZWkgIDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtNTkgICAoaGV4KQkJWi5NLlAuIFJBRFdBRworMDAxNjU5ICAgICAoYmFzZSAxNikJCVouTS5QLiBSQURXQUcKKwkJCQlCcmFja2EgMjggc3RyZWV0CisJCQkJUkFET00gTWF6b3dpZWNraWUgMjYtNjAwCisJCQkJUE9MQU5ECisKKzAwLTE2LTVBICAgKGhleCkJCUhhcm1hbiBTcGVjaWFsdHkgR3JvdXAKKzAwMTY1QSAgICAgKGJhc2UgMTYpCQlIYXJtYW4gU3BlY2lhbHR5IEdyb3VwCisJCQkJMyBPYWsgUGFyayBEcml2ZQorCQkJCUJlZGZvcmQgTUEgMDE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTVCICAgKGhleCkJCUdyaXAgQXVkaW8KKzAwMTY1QiAgICAgKGJhc2UgMTYpCQlHcmlwIEF1ZGlvCisJCQkJNjM0NSBXLiBMb3Vpc2UgRHJpdmUKKwkJCQlHbGVuZGFsZSBBcml6b25hIDg1MzEwLTQyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTVDICAgKGhleCkJCVRyYWNrZmxvdyBMdGQKKzAwMTY1QyAgICAgKGJhc2UgMTYpCQlUcmFja2Zsb3cgTHRkCisJCQkJMTY3LTE2OSBLZW5zaW5ndG9uIEhpZ2ggU3RyZWV0CisJCQkJTG9uZG9uIEVuZ2xhbmQgVzg2U0gKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi01RCAgIChoZXgpCQlBaXJEZWZlbnNlLCBJbmMuCiswMDE2NUQgICAgIChiYXNlIDE2KQkJQWlyRGVmZW5zZSwgSW5jLgorCQkJCTQ4MDAgTm9ydGggUG9pbnQgUGt3eQorCQkJCVN0ZSAxMDAKKwkJCQlBbHBoYXJldHRhIEdBIDMwMDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi01RSAgIChoZXgpCQlQcmVjaXNpb24gSS9PCiswMDE2NUUgICAgIChiYXNlIDE2KQkJUHJlY2lzaW9uIEkvTworCQkJCTQwMDUgTWlyYW5kYSBBdmUuLCBTdWl0ZSAyMTAKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDQtMTIzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNUYgICAoaGV4KQkJRmFpcm1vdW50IEF1dG9tYXRpb24KKzAwMTY1RiAgICAgKGJhc2UgMTYpCQlGYWlybW91bnQgQXV0b21hdGlvbgorCQkJCTQ2MjEgV2VzdCBDaGVzdGVyIFBpa2UKKwkJCQlOZXd0b3duIFNxdWFyZSBQQSAxOTA3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNjAgICAoaGV4KQkJTm9ydGVsCiswMDE2NjAgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTYtNjEgICAoaGV4KQkJTm92YXRpdW0gU29sdXRpb25zIChQKSBMdGQKKzAwMTY2MSAgICAgKGJhc2UgMTYpCQlOb3ZhdGl1bSBTb2x1dGlvbnMgKFApIEx0ZAorCQkJCTNyZCBGbG9vciwgVGVtcGxlIFRvd2VycywgIzY3MgorCQkJCUFubmEgU2FsYWksIE5hbmRhbmFtLAorCQkJCUNoZW5uYWkgVGFtaWwgTmFkdSA2MDAwMzUKKwkJCQlJTkRJQQorCiswMC0xNi02MiAgIChoZXgpCQlMaXl1aCBUZWNobm9sb2d5IEx0ZC4KKzAwMTY2MiAgICAgKGJhc2UgMTYpCQlMaXl1aCBUZWNobm9sb2d5IEx0ZC4KKwkJCQk3Ri0xLCBOby4gOTIsIFNlYy4gMSwgSGVpIEh1IFJkLgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi02MyAgIChoZXgpCQlLQlQgTW9iaWxlCiswMDE2NjMgICAgIChiYXNlIDE2KQkJS0JUIE1vYmlsZQorCQkJCTRGLCBQb2xhcmlzIEksIDE1LTMsIEplb25namEtZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpLCBHeWVvbmdnaS1kbyA0NjMtODExCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTY0ICAgKGhleCkJCVByb2QtRWwgU3BBCiswMDE2NjQgICAgIChiYXNlIDE2KQkJUHJvZC1FbCBTcEEKKwkJCQlWaWEgUGFsbWFub3ZhIDE4NQorCQkJCU1pbGFubyBNSSAyMDEzMgorCQkJCUlUQUxZCisKKzAwLTE2LTY1ICAgKGhleCkJCUNlbGxvbiBGcmFuY2UKKzAwMTY2NSAgICAgKGJhc2UgMTYpCQlDZWxsb24gRnJhbmNlCisJCQkJUm91dGUgZCdBbmdlcnMgTGUgTWFucyBjZWRleCA5CisJCQkJTGUgTWFucyBTYXJ0aGUgNzIwODEKKwkJCQlGUkFOQ0UKKworMDAtMTYtNjYgICAoaGV4KQkJUXVhbnRpZXIgQ29tbXVuaWNhdGlvbiBJbmMuCiswMDE2NjYgICAgIChiYXNlIDE2KQkJUXVhbnRpZXIgQ29tbXVuaWNhdGlvbiBJbmMuCisJCQkJMUYsIE5vLiAzNiwgSW5kdXN0cnkgRS4gUmQgSVYsCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIHBhcmsKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi02NyAgIChoZXgpCQlBLVRFQyBTdWJzeXN0ZW0gSU5DLgorMDAxNjY3ICAgICAoYmFzZSAxNikJCUEtVEVDIFN1YnN5c3RlbSBJTkMuCisJCQkJNEYsIE5vLiA4NiwgQ2h1bmctSHNpbmcgUm9hZCwgU2hpanIgQ2l0eSwKKwkJCQlUYWlwZWkgQ291bnR5CisJCQkJMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi02OCAgIChoZXgpCQlFaXNoaW4gRWxlY3Ryb25pY3MKKzAwMTY2OCAgICAgKGJhc2UgMTYpCQlFaXNoaW4gRWxlY3Ryb25pY3MKKwkJCQlOaXNoaWt1IE1peWFzaGl0YSAxLTE5CisJCQkJS29iZSBDaXR5IEh5b2dvIFByZWZlY3R1cmUgNjUxLTIxNDYKKwkJCQlKQVBBTgorCiswMC0xNi02OSAgIChoZXgpCQlNUlYgQ29tbXVuaWNhdGlvbiAoTmV0d29ya3MpIExURAorMDAxNjY5ICAgICAoYmFzZSAxNikJCU1SViBDb21tdW5pY2F0aW9uIChOZXR3b3JrcykgTFRECisJCQkJUC5PIEJveCA2MTQKKwkJCQlZb2tuZWFtICAyMDY5MgorCQkJCUlTUkFFTAorCiswMC0xNi02QSAgIChoZXgpCQlUUFMKKzAwMTY2QSAgICAgKGJhc2UgMTYpCQlUUFMKKwkJCQkxNDUgcXVhaSBkZSBTdGFsaW5ncmFkCisJCQkJSXNzeSBMZXMgTW91bGluZWF1eCBJbGUgZGUgRnJhbmNlIDkyMTM3CisJCQkJRlJBTkNFCisKKzAwLTE2LTZCICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzAwMTY2QiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJNDE2LE1hZXRhbi0zRG9uZyxZZW9uZ3RvbmctR3UKKwkJCQlTdXdvbi1DaXR5IEt5ZW9uZ2dpLURvIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtNkMgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdG9uaWNzIERpZ2l0YWwgVmlkZW8gU3lzdGVtIERpdmlzaW9uCiswMDE2NkMgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdG9uaWNzIERpZ2l0YWwgVmlkZW8gU3lzdGVtIERpdmlzaW9uCisJCQkJNDE2LCBNYWV0YW4tM0RvbmcsWWVvbmd0b25nLUd1CisJCQkJU3V3b24gR3llb25nZ2ktRG8gNDQzLTc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi02RCAgIChoZXgpCQlZdWxvbmcgQ29tcHV0ZXIgVGVsZWNvbW11bmljYXRpb24gU2NpZW50aWZpYyhzaGVuemhlbilDby4sTHQKKzAwMTY2RCAgICAgKGJhc2UgMTYpCQlZdWxvbmcgQ29tcHV0ZXIgVGVsZWNvbW11bmljYXRpb24gU2NpZW50aWZpYyhzaGVuemhlbilDby4sTHQKKwkJCQk4L0YuaGlnaCBUZWNoIFBsYXphLFRpYW5BbiBDeWJlcnBhcmssQ2hlZ29uZ21pYW8KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworMDAtMTYtNkUgICAoaGV4KQkJQXJiaXRyb24gSW5jLgorMDAxNjZFICAgICAoYmFzZSAxNikJCUFyYml0cm9uIEluYy4KKwkJCQk5NzA1IFBhdHV4ZW50IFdvb2RzIERyaXZlCisJCQkJQ29sdW1iaWEgTUQgMjEwNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTZGICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDE2NkYgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmxuIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTYtNzAgICAoaGV4KQkJU0tORVQgQ29ycG9yYXRpb24KKzAwMTY3MCAgICAgKGJhc2UgMTYpCQlTS05FVCBDb3Jwb3JhdGlvbgorCQkJCUZvbnRhbmEgU2hpbnlva29oYW1hCisJCQkJU2hpbnlva29oYW1hIDIsMTcsMiBrb2hva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjItMDAzMworCQkJCUpBUEFOCisKKzAwLTE2LTcxICAgKGhleCkJCVN5bXBob3ggSW5mb3JtYXRpb24gQ28uCiswMDE2NzEgICAgIChiYXNlIDE2KQkJU3ltcGhveCBJbmZvcm1hdGlvbiBDby4KKwkJCQkxNUYsIE5vLiA1MSwgU2VjLiAzLCBNaW5zaGVuZyBFLiBSb2FkCisJCQkJVGFpcGVpIENpdHkgIDEwNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtNzIgICAoaGV4KQkJWmVud2F5IGVudGVycHJpc2UgbHRkCiswMDE2NzIgICAgIChiYXNlIDE2KQkJWmVud2F5IGVudGVycHJpc2UgbHRkCisJCQkJNkYuLCBOby4yMCwgTGFuZSAxNTAsIEpob25nc2luZyBSZC4sIFNpamhpaCBDaXR5CisJCQkJVGFpcGVpICA4ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTczICAgKGhleCkJCUJ1cnkgR21iSCAmIENvLiBLRworMDAxNjczICAgICAoYmFzZSAxNikJCUJ1cnkgR21iSCAmIENvLiBLRworCQkJCVJvYmVydC1Lb2NoLVN0ci4gMS03CisJCQkJTG9laG5lIEdlcm1hbnkgMzI1ODQKKwkJCQlHRVJNQU5ZCisKKzAwLTE2LTc0ICAgKGhleCkJCUV1cm9DQiAoUGhpbHMuKSwgSW5jLgorMDAxNjc0ICAgICAoYmFzZSAxNikJCUV1cm9DQiAoUGhpbHMuKSwgSW5jLgorCQkJCVNGQiBOby4yCisJCQkJTWFjdGFuIEVjb25vbWljIFpvbmUgLSBJCisJCQkJTGFwdWxhcHUgQ2l0eSBDZWJ1IDYwMTUKKwkJCQlQSElMSVBQSU5FUworCiswMC0xNi03NSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMTY3NSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2MDAgTiBVUyBId3kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSWxsaW5vaXMgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTc2ICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDE2NzYgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmxuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xNi03NyAgIChoZXgpCQlCaWhsK1dpZWRlbWFubiBHbWJICiswMDE2NzcgICAgIChiYXNlIDE2KQkJQmlobCtXaWVkZW1hbm4gR21iSAorCQkJCUZsb3Nzd29lcnRoc3RyLiA0MQorCQkJCU1hbm5oZWltIEJhZGVuIFd1cnRlbWJlcmcgNjgxOTkKKwkJCQlHRVJNQU5ZCisKKzAwLTE2LTc4ICAgKGhleCkJCVNIRU5aSEVOIEJBT0FOIEdBT0tFIEVMRUNUUk9OSUNTIENPLiwgTFRECiswMDE2NzggICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gQkFPQU4gR0FPS0UgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKwkJCQlHQU9LRSBJTkRVU1RSSUFMIFBBUkssIE5PLjggVEFOR0tFTkcgUk9BRCwgU0hJWUFOIFRPV04KKwkJCQlTSEVOWkhFTiBHVUFOR0RPTkcgNTE4MTA4CisJCQkJQ0hJTkEKKworMDAtMTYtNzkgICAoaGV4KQkJZU9uIENvbW11bmljYXRpb25zCiswMDE2NzkgICAgIChiYXNlIDE2KQkJZU9uIENvbW11bmljYXRpb25zCisJCQkJNDEwNSBSb3lhbCBEcml2ZSwgU3VpdGUgMTAwCisJCQkJS2VubmVzYXcgR2VvcmdpYSAzMDE0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtN0EgICAoaGV4KQkJU2t5d29ydGggT3ZlcnNlYXMgRHZlbG9wbWVudCBMdGQuCiswMDE2N0EgICAgIChiYXNlIDE2KQkJU2t5d29ydGggT3ZlcnNlYXMgRHZlbG9wbWVudCBMdGQuCisJCQkJUm9vbSAxNTA1LTA2LFdlc3RsYW5kcyBDZW50cmUKKwkJCQkyMCBXZXN0bGFuZHMgUm9hZCwgUXVhcnJ5IEJheSwKKwkJCQlIT05HIEtPTkcKKworMDAtMTYtN0IgICAoaGV4KQkJSGF2ZXImQm9lY2tlcgorMDAxNjdCICAgICAoYmFzZSAxNikJCUhhdmVyJkJvZWNrZXIKKwkJCQlDYXJsLUhhdmVyLVBsYXR6IDMKKwkJCQlPZWxkZSBOUlcgNTkzMDIKKwkJCQlHRVJNQU5ZCisKKzAwLTE2LTdDICAgKGhleCkJCWlSZXggVGVjaG5vbG9naWVzIEJWCiswMDE2N0MgICAgIChiYXNlIDE2KQkJaVJleCBUZWNobm9sb2dpZXMgQlYKKwkJCQlIaWdoVGVjaCBDYW1wdXMKKwkJCQlCdWlsZGluZyA0Niwgcm9vbSBwLTAwNQorCQkJCUVpbmRob3ZlbiBCcmFiYW50IDU2NTZBRQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE2LTdEICAgKGhleCkJCVNreS1MaW5lIEluZm9ybWF0aW9uIENvLiwgTHRkLgorMDAxNjdEICAgICAoYmFzZSAxNikJCVNreS1MaW5lIEluZm9ybWF0aW9uIENvLiwgTHRkLgorCQkJCThGLixOby4zOCxTaWh5dWFuIFJkLiwKKwkJCQlTaW5paHVhbmcgVGFpcGVpIDI0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtN0UgICAoaGV4KQkJRElCT1NTLkNPLixMVEQKKzAwMTY3RSAgICAgKGJhc2UgMTYpCQlESUJPU1MuQ08uLExURAorCQkJCTEyNi0xLCBHb25nZGFuLWRvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtOTAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTdGICAgKGhleCkJCUJsdWViaXJkIFNvZnQgSW5jLgorMDAxNjdGICAgICAoYmFzZSAxNikJCUJsdWViaXJkIFNvZnQgSW5jLgorCQkJCTU2Mi0yMSBHYW5nbmFtLWd1LAorCQkJCVNlb3VsICAxMzUtODkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTgwICAgKGhleCkJCUJhbGx5IEdhbWluZyArIFN5c3RlbXMKKzAwMTY4MCAgICAgKGJhc2UgMTYpCQlCYWxseSBHYW1pbmcgKyBTeXN0ZW1zCisJCQkJOTUwIFNhbmRoaWxsIFJvYWQKKwkJCQlSZW5vIE5WIDg5NTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi04MSAgIChoZXgpCQlWZWN0b3IgSW5mb3JtYXRpayBHbWJICiswMDE2ODEgICAgIChiYXNlIDE2KQkJVmVjdG9yIEluZm9ybWF0aWsgR21iSAorCQkJCUluZ2Vyc2hlaW1lciBTdHIuIDI0CisJCQkJU3R1dHRnYXJ0IEJhZGVuLVd1ZXJ0dGVtYmVyZyA3MDQ5OQorCQkJCUdFUk1BTlkKKworMDAtMTYtODIgICAoaGV4KQkJUHJvIERleCwgSW5jCiswMDE2ODIgICAgIChiYXNlIDE2KQkJUHJvIERleCwgSW5jCisJCQkJMTgwMCBOVyAxNjl0aCBQbGFjZQorCQkJCUMxMDAKKwkJCQlCZWF2ZXJ0b24gT3JlZ29uIDk3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi04MyAgIChoZXgpCQlXRUJJTyBJbnRlcm5hdGlvbmFsIENvLiwuTHRkLgorMDAxNjgzICAgICAoYmFzZSAxNikJCVdFQklPIEludGVybmF0aW9uYWwgQ28uLC5MdGQuCisJCQkJMjFGLixOby4xNzEgU29uZ2RlIFJkLixTaW55aSBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTEwODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTg0ICAgKGhleCkJCURvbmppbiBDby4sTHRkLgorMDAxNjg0ICAgICAoYmFzZSAxNikJCURvbmppbiBDby4sTHRkLgorCQkJCTIxRixDYW5nc29uZyBCdWlsZGluZyxUYWlyYW4sRnV0aWFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA0MAorCQkJCUNISU5BCisKKzAwLTE2LTg1ICAgKGhleCkJCUVsaXNhIE95agorMDAxNjg1ICAgICAoYmFzZSAxNikJCUVsaXNhIE95agorCQkJCUVsZWt0cm9uaWlra2F0aWUgNAorCQkJCTkwNTcwIE91bHUgCisJCQkJRklOTEFORAorCiswMC0xNi04NiAgIChoZXgpCQlLYXJsIFN0b3J6IEltYWdpbmcKKzAwMTY4NiAgICAgKGJhc2UgMTYpCQlLYXJsIFN0b3J6IEltYWdpbmcKKwkJCQkxNzUgQ3JlbW9uYSBEci4KKwkJCQlHb2xldGEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTg3ICAgKGhleCkJCUNodWJiIENTQy1WZW5kb3IgQVAKKzAwMTY4NyAgICAgKGJhc2UgMTYpCQlDaHViYiBDU0MtVmVuZG9yIEFQCisJCQkJT3R0YXdhIFNUTgorCQkJCVAuTy4gQk9YIDk4MzIKKwkJCQlPdHRhd2EgIEsxRyA2VzYKKwkJCQlDQU5BREEKKworMDAtMTYtODggICAoaGV4KQkJU2VydmVyRW5naW5lcyBMTEMKKzAwMTY4OCAgICAgKGJhc2UgMTYpCQlTZXJ2ZXJFbmdpbmVzIExMQworCQkJCTIwOSBOLiBGYWlyIE9ha3MgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi04OSAgIChoZXgpCQlQaWxrb3IgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzAwMTY4OSAgICAgKGJhc2UgMTYpCQlQaWxrb3IgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKwkJCQkzODEsV29uY2h1bi1Eb25nLFllb3VuZ3RvbmctR3UKKwkJCQlTdXdvbiBLeXVuZyBLaS1EbyA0NDItMzgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LThBICAgKGhleCkJCWlkLUNvbmZpcm0gSW5jCiswMDE2OEEgICAgIChiYXNlIDE2KQkJaWQtQ29uZmlybSBJbmMKKwkJCQkxODAwIEJvdWxkZXIgU3QKKwkJCQlTdWl0ZSA0MDAKKwkJCQlEZW52ZXIgQ08gODAyMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LThCICAgKGhleCkJCVBhcmFsYW4gQ29ycG9yYXRpb24KKzAwMTY4QiAgICAgKGJhc2UgMTYpCQlQYXJhbGFuIENvcnBvcmF0aW9uCisJCQkJNDY1NSBSdWZmbmVyIFN0LgorCQkJCVNhbiBEaWVnbyBDQSA5MjExMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtOEMgICAoaGV4KQkJRFNMIFBhcnRuZXIgQVMKKzAwMTY4QyAgICAgKGJhc2UgMTYpCQlEU0wgUGFydG5lciBBUworCQkJCUhhdnJldmVpZW4gNDkKKwkJCQlPc2xvICAwNjgwCisJCQkJTk9SV0FZCisKKzAwLTE2LThEICAgKGhleCkJCUtPUldJTiBDTy4sIEx0ZC4KKzAwMTY4RCAgICAgKGJhc2UgMTYpCQlLT1JXSU4gQ08uLCBMdGQuCisJCQkJM3JkIEZsb29yLCBIYW5hIEJsZGcsIDEyMy03IE5vbmh5dW4tZG9uZworCQkJCUthbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi04RSAgIChoZXgpCQlWaW1pY3JvIGNvcnBvcmF0aW9uCiswMDE2OEUgICAgIChiYXNlIDE2KQkJVmltaWNybyBjb3Jwb3JhdGlvbgorCQkJCTE1L0YsU2hpbmluZyBUb3dlcixOby4zNSx4dWV5dWFuCisJCQkJUm9hZCxIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgzCisJCQkJQ0hJTkEKKworMDAtMTYtOEYgICAoaGV4KQkJR04gTmV0Y29tIGFzCiswMDE2OEYgICAgIChiYXNlIDE2KQkJR04gTmV0Y29tIGFzCisJCQkJTWV0YWxidWVuIDY2CisJCQkJUC5PLkJveCAyMDEKKwkJCQlCYWxsZXJ1cCBTa292bHVuZGUgREsgLSAyNzUwCisJCQkJREVOTUFSSworCiswMC0xNi05MCAgIChoZXgpCQlKLVRFSyBJTkNPUlBPUkFUSU9OCiswMDE2OTAgICAgIChiYXNlIDE2KQkJSi1URUsgSU5DT1JQT1JBVElPTgorCQkJCTJGLTEsIE5vLiA4MywgU2VjLiAyLCBHb25nRGFvV3UgUmQuLAorCQkJCUhzaW5jaHUgQ2l0eSAgMzAwNzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTkxICAgKGhleCkJCU1vc2VyLUJhZXIgQUcKKzAwMTY5MSAgICAgKGJhc2UgMTYpCQlNb3Nlci1CYWVyIEFHCisJCQkJU3BpdGFsc3RyYXNzZSA3CisJCQkJU3VtaXN3YWxkIEJFIDM0NTQKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xNi05MiAgIChoZXgpCQlTY2llbnRpZmljLUF0bGFudGEsIEluYy4KKzAwMTY5MiAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljLUF0bGFudGEsIEluYy4KKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJQVRMIDEuMy40NzMKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi05MyAgIChoZXgpCQlQb3dlckxpbmsgVGVjaG5vbG9neSBJbmMuCiswMDE2OTMgICAgIChiYXNlIDE2KQkJUG93ZXJMaW5rIFRlY2hub2xvZ3kgSW5jLgorCQkJCU4wLiAxOCwgQWxsZXkgMSwgTGFuZSAxNTEsIFNlYy4gMSwgSmhvbmdzaW5nIFJkLiwgV3VndSBUb3duc2hpcAorCQkJCVRhaXBlaSBIc2llbiAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi05NCAgIChoZXgpCQlTZW5uaGVpc2VyIENvbW11bmljYXRpb25zIEEvUworMDAxNjk0ICAgICAoYmFzZSAxNikJCVNlbm5oZWlzZXIgQ29tbXVuaWNhdGlvbnMgQS9TCisJCQkJTGFuZ2FnZXIgNgorCQkJCVNvbHI/ZCBTdHJhbmQgQ29wZW5oYWdlbiAyNjgwCisJCQkJREVOTUFSSworCiswMC0xNi05NSAgIChoZXgpCQlBVkMgVGVjaG5vbG9neSBMaW1pdGVkCiswMDE2OTUgICAgIChiYXNlIDE2KQkJQVZDIFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCTYvRiBFbnRlcnByaXNlIFNxdWFyZSBJSUkKKwkJCQkzOSBXYW5nIENoaXUgUm9hZAorCQkJCUtvd2xvb24gQmF5ICAKKwkJCQlIT05HIEtPTkcKKworMDAtMTYtOTYgICAoaGV4KQkJUURJIFRlY2hub2xvZ3kgKEguSy4pIExpbWl0ZWQKKzAwMTY5NiAgICAgKGJhc2UgMTYpCQlRREkgVGVjaG5vbG9neSAoSC5LLikgTGltaXRlZAorCQkJCTE2L0YsIFN0YW5kYXJkIENoYXJ0ZXJlZCBCYW5rIEJ1aWxkaW5nIDQtNEEKKwkJCQlEZXMgVm9ldXggUm9hZCBDZW50cmFsCisJCQkJSG9uZyBLb25nICAKKwkJCQlDSElOQQorCiswMC0xNi05NyAgIChoZXgpCQlORUMgQ29ycG9yYXRpb24KKzAwMTY5NyAgICAgKGJhc2UgMTYpCQlORUMgQ29ycG9yYXRpb24KKwkJCQk3LTEsIFNoaWJhIDUtY2hvbWUgTWluYXRvLWt1LAorCQkJCVRva3lvIDEwOC04MDAxCisJCQkJSkFQQU4KKworMDAtMTYtOTggICAoaGV4KQkJVCZBIE1vYmlsZSBQaG9uZXMKKzAwMTY5OCAgICAgKGJhc2UgMTYpCQlUJkEgTW9iaWxlIFBob25lcworCQkJCTQvRiwgU291dGggQnVpbGRpbmcsTm8uMjk2NiwgSmlua2UgUm9hZAorCQkJCVpoYW5namlhbmcgSGlnaC1UZWNrIFBhcmsKKwkJCQlQdWRvbmcgU2hhbmdoYWkgMjAxMjAzCisJCQkJQ0hJTkEKKworMDAtMTYtOTkgICAoaGV4KQkJVG9uaWMgRFZCIE1hcmtldGluZyBMdGQKKzAwMTY5OSAgICAgKGJhc2UgMTYpCQlUb25pYyBEVkIgTWFya2V0aW5nIEx0ZAorCQkJCVVuaXQgQiwgMTAvRiwgU3VtbWl0IEJ1aWxkaW5nLAorCQkJCTMwIE1hbiBZdWUgU3RyZWV0LAorCQkJCUh1bmcgSG9tIEtvd2xvb24gCisJCQkJSE9ORyBLT05HCisKKzAwLTE2LTlBICAgKGhleCkJCVF1YWRyaWNzIEx0ZAorMDAxNjlBICAgICAoYmFzZSAxNikJCVF1YWRyaWNzIEx0ZAorCQkJCTEgQnJpZGV3ZWxsIFN0cmVldAorCQkJCUJyaXN0b2wgIEJTMSAyQUEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi05QiAgIChoZXgpCQlBbHN0b20gVHJhbnNwb3J0CiswMDE2OUIgICAgIChiYXNlIDE2KQkJQWxzdG9tIFRyYW5zcG9ydAorCQkJCTExLCAxMyBhdmVudWUgZGUgQmVsIEFpcgorCQkJCVZpbGxldXJiYW5uZSBSaG9uZSA2OTEwMAorCQkJCUZSQU5DRQorCiswMC0xNi05QyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE2OUMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi05RCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE2OUQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi05RSAgIChoZXgpCQlUViBPbmUgTHRkCiswMDE2OUUgICAgIChiYXNlIDE2KQkJVFYgT25lIEx0ZAorCQkJCVVuaXQgViBDb250aW5lbnRhbCBBcHByb2FjaAorCQkJCVdlc3R3b29kIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJTWFyZ2F0ZSBLZW50IENUOSA0SkcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi05RiAgIChoZXgpCQlWaW10cm9uIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxNjlGICAgICAoYmFzZSAxNikJCVZpbXRyb24gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJN0YuLCBOby45LCBBbGxleSAyLCBMYW5lIDM1CisJCQkJSmlodSBSZC4KKwkJCQlOZWlodSBEaXN0cmljdCBUYWlwZWkgQ2l0eSAxMTQ5MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtQTAgICAoaGV4KQkJQXV0by1NYXNraW4KKzAwMTZBMCAgICAgKGJhc2UgMTYpCQlBdXRvLU1hc2tpbgorCQkJCVNvcGhpZSBSYWRpY2hzIFZlaSA3CisJCQkJTElMTEVTVFJPTSBBa2Vyc2h1cyAyMDAzCisJCQkJTk9SV0FZCisKKzAwLTE2LUExICAgKGhleCkJCTNMZWFmIE5ldHdvcmtzCiswMDE2QTEgICAgIChiYXNlIDE2KQkJM0xlYWYgTmV0d29ya3MKKwkJCQkzMjU1LTEgU2NvdHQgQmx2ZAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1BMiAgIChoZXgpCQlDZW50cmFMaXRlIFN5c3RlbXMsIEluYy4KKzAwMTZBMiAgICAgKGJhc2UgMTYpCQlDZW50cmFMaXRlIFN5c3RlbXMsIEluYy4KKwkJCQk2NDIwIFdhbGwgU3RyZWV0CisJCQkJTW9iaWxlIEFMIDM2Njk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1BMyAgIChoZXgpCQlJbmdldGVhbSBUcmFuc21pc3Npb24mRGlzdHJpYnV0aW9uLCBTLkEuCiswMDE2QTMgICAgIChiYXNlIDE2KQkJSW5nZXRlYW0gVHJhbnNtaXNzaW9uJkRpc3RyaWJ1dGlvbiwgUy5BLgorCQkJCUMvIFVzYXVzdWFnYSwgNworCQkJCVBvbC4gQXJ0dW5kdWFnYQorCQkJCUJhc2F1cmkgQml6a2FpYSA0ODk3MAorCQkJCVNQQUlOCisKKzAwLTE2LUE0ICAgKGhleCkJCUV6dXJpbyBMdGQKKzAwMTZBNCAgICAgKGJhc2UgMTYpCQlFenVyaW8gTHRkCisJCQkJVW5pdCAyCisJCQkJMTI2IENvbGluZGFsZSBBdmVudWUKKwkJCQlMb25kb24gIE5XOSA1SEQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi1BNSAgIChoZXgpCQlUYW5kYmVyZyBTdG9yYWdlIEFTQQorMDAxNkE1ICAgICAoYmFzZSAxNikJCVRhbmRiZXJnIFN0b3JhZ2UgQVNBCisJCQkJUG9zdGJva3MgMTkxCisJCQkJMTMyNSBMeXNha2VyCisJCQkJTk9SV0FZCisKKzAwLTE2LUE2ICAgKGhleCkJCURvdmFkbyBGWi1MTEMKKzAwMTZBNiAgICAgKGJhc2UgMTYpCQlEb3ZhZG8gRlotTExDCisJCQkJQWwtVGh1cmF5YSBUb3dlciAxLCBvZmZpY2UgNTA0CisJCQkJUC5PLiBCb3ggNTAwNDIyCisJCQkJRHViYWkgIAorCQkJCVVOSVRFRCBBUkFCIEVNSVJBVEVTCisKKzAwLTE2LUE3ICAgKGhleCkJCUFXRVRBIEcmUAorMDAxNkE3ICAgICAoYmFzZSAxNikJCUFXRVRBIEcmUAorCQkJCUJ1cmcuIFdpbmtlbGxhYW4gMworCQkJCU5vb3Rkb3JwICAyNjMxIEhHCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTYtQTggICAoaGV4KQkJQ1dUIENPLiwgTFRELgorMDAxNkE4ICAgICAoYmFzZSAxNikJCUNXVCBDTy4sIExURC4KKwkJCQkxMEYgTm8uIDc0IFNlYy4gMSBDaHVuZy1IdWEgUmQuCisJCQkJVGFpcGVpICAxMDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUE5ICAgKGhleCkJCTJFSQorMDAxNkE5ICAgICAoYmFzZSAxNikJCTJFSQorCQkJCVJ1YSBkb3MgUnViaXMsIDc3IC0gQXNzdW1wY2FvCisJCQkJQWd1YXMgZGUgTGluZG9pYSBTYW8gUGF1bG8gMTM5NDAtMDAwCisJCQkJQlJBWklMCisKKzAwLTE2LUFBICAgKGhleCkJCUtlaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgSW5jLgorMDAxNkFBICAgICAoYmFzZSAxNikJCUtlaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgSW5jLgorCQkJCTgtQkFOIENIVU9VCisJCQkJS09CRSBIWU9HTyA2NTAtMDAyNAorCQkJCUpBUEFOCisKKzAwLTE2LUFCICAgKGhleCkJCVBCSS1EYW5zZW5zb3IgQS9TCiswMDE2QUIgICAgIChiYXNlIDE2KQkJUEJJLURhbnNlbnNvciBBL1MKKwkJCQlSb2VubmVkZXZlaiAxOAorCQkJCVJpbmdzdGVkICBESy00MTAwCisJCQkJREVOTUFSSworCiswMC0xNi1BQyAgIChoZXgpCQlUb2hvIFRlY2hub2xvZ3kgQ29ycC4KKzAwMTZBQyAgICAgKGJhc2UgMTYpCQlUb2hvIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQlISUdBU0hJIDUtMQorCQkJCU9SSVpVU0hJTU9NQUNISQorCQkJCUlOQVpBV0EtQ0lUWSBBSUNISSA0OTItODUwMQorCQkJCUpBUEFOCisKKzAwLTE2LUFEICAgKGhleCkJCUJULUxpbmtzIENvbXBhbnkgTGltaXRlZAorMDAxNkFEICAgICAoYmFzZSAxNikJCUJULUxpbmtzIENvbXBhbnkgTGltaXRlZAorCQkJCVJtIDgwMiwgTmFuIEZ1bmcgQ2VudHJlLCAyNjQtMjk4IENhc3RsZSBQZWFrIFJkCisJCQkJVHN1ZW4gV2FuCisJCQkJSE9ORyBLT05HCisKKzAwLTE2LUFFICAgKGhleCkJCUlOVkVOVEVMCiswMDE2QUUgICAgIChiYXNlIDE2KQkJSU5WRU5URUwKKwkJCQkzNSBydWUgVG91cm5lZm9ydAorCQkJCVBBUklTICA3NTAwNQorCQkJCUZSQU5DRQorCiswMC0xNi1BRiAgIChoZXgpCQlTaGVuemhlbiBVbmlvbiBOZXR3b3JrcyBFcXVpcG1lbnQgQ28uLEx0ZC4KKzAwMTZBRiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBVbmlvbiBOZXR3b3JrcyBFcXVpcG1lbnQgQ28uLEx0ZC4KKwkJCQlZaWhhaSBTcXVhcmUgZWFzdCBidWlsZGluZyAyMzA3LCBDaHVhbmd5ZSByb2FkLCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NAorCQkJCUNISU5BCisKKzAwLTE2LUIwICAgKGhleCkJCVZLIENvcnBvcmF0aW9uCiswMDE2QjAgICAgIChiYXNlIDE2KQkJVksgQ29ycG9yYXRpb24KKwkJCQlWSyBCL0QsIDU0OC02LCBBbnlhbmcgOGRvbmcsIE1hbmFuLWd1CisJCQkJQW55YW5nIEt5b3VuZ2dpIDQzMC04OTAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LUIxICAgKGhleCkJCUtCUworMDAxNkIxICAgICAoYmFzZSAxNikJCUtCUworCQkJCTg4IHJ1ZSBQaWVycmUgU2VtYXJkCisJCQkJQlAgNTUKKwkJCQlNb2lzc3kgY2VkZXggSWxlIGRlIEZyYW5jZSA3NzU1MgorCQkJCUZSQU5DRQorCiswMC0xNi1CMiAgIChoZXgpCQlEcml2ZUNhbSBJbmMKKzAwMTZCMiAgICAgKGJhc2UgMTYpCQlEcml2ZUNhbSBJbmMKKwkJCQkzOTU0IE11cnBoeSBDYW55b24gUm9hZAorCQkJCVN1aXRlIEQyMDUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUIzICAgKGhleCkJCVBob3RvbmljYnJpZGdlcyAoQ2hpbmEpIENvLiwgTHRkLgorMDAxNkIzICAgICAoYmFzZSAxNikJCVBob3RvbmljYnJpZGdlcyAoQ2hpbmEpIENvLiwgTHRkLgorCQkJCU5vLiA5MDAsIFlpc2hhbiByb2FkLAorCQkJCVNoYW5naGFpICAyMDAyMzMKKwkJCQlDSElOQQorCiswMC0xNi1CNCAgIChoZXgpCQlQUklWQVRFCiswMDE2QjQgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTE2LUI1ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE2QjUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1CNiAgIChoZXgpCQlDaXNjby1MaW5rc3lzCiswMDE2QjYgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cworCQkJCTEyMSBUaGVvcnkKKwkJCQlJcnZpbmUgQ0EgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUI3ICAgKGhleCkJCVNlb3VsIENvbW10ZWNoCiswMDE2QjcgICAgIChiYXNlIDE2KQkJU2VvdWwgQ29tbXRlY2gKKwkJCQk0NDgtMTEsIFNlb25nbmFlIDNkb25nLiBHYW5nZG9uZyBndSwKKwkJCQlTZW91bCAgMTM0MDMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LUI4ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCiswMDE2QjggICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTa2FuZSAyMjE4OAorCQkJCVNXRURFTgorCiswMC0xNi1COSAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nCiswMDE2QjkgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZworCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQKKwkJCQlNUyA1NjYyCisJCQkJUm9zZXZpbGxlIENBIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1CQSAgIChoZXgpCQlXRUFUSEVSTkVXUyBJTkMuCiswMDE2QkEgICAgIChiYXNlIDE2KQkJV0VBVEhFUk5FV1MgSU5DLgorCQkJCU5BS0FTRSAxLTMgTVRHCisJCQkJQ0hJQkEgIDI2Mi0wMDMyCisJCQkJSkFQQU4KKworMDAtMTYtQkIgICAoaGV4KQkJTGF3LUNoYWluIENvbXB1dGVyIFRlY2hub2xvZ3kgQ28gTHRkCiswMDE2QkIgICAgIChiYXNlIDE2KQkJTGF3LUNoYWluIENvbXB1dGVyIFRlY2hub2xvZ3kgQ28gTHRkCisJCQkJN0YtMiwgMjg2LTQsIGhzaW4geWEgcm9hZCwgY2hpZW4gY2hlbiBkaXN0cmljdAorCQkJCUthb2hzaXVuZyAgODA2NzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUJDICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDE2QkMgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTE2LUJEICAgKGhleCkJCUFUSSBJbmR1c3RyaWFsIEF1dG9tYXRpb24KKzAwMTZCRCAgICAgKGJhc2UgMTYpCQlBVEkgSW5kdXN0cmlhbCBBdXRvbWF0aW9uCisJCQkJMTAzMSBHb29kd29ydGggRHJpdmUKKwkJCQlBcGV4IE5vcnRoIENhcm9saW5hIDI3NTM5LTM4NjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUJFICAgKGhleCkJCUlORlJBTkVULCBJbmMuCiswMDE2QkUgICAgIChiYXNlIDE2KQkJSU5GUkFORVQsIEluYy4KKwkJCQk4dGggRmxvb3IsIENvd2VsbCBCL0QsIDY2LTEKKwkJCQlCYW5wby1Eb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCAgMTM3LTA0MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi1CRiAgIChoZXgpCQlQYWxvREV4IEdyb3VwIE95CiswMDE2QkYgICAgIChiYXNlIDE2KQkJUGFsb0RFeCBHcm91cCBPeQorCQkJCVAuTy4gQm94IDY0CisJCQkJTmFoa2VsYW50aWUgMTYwCisJCQkJVHV1c3VsYSAgMDQzMDEKKwkJCQlGSU5MQU5ECisKKzAwLTE2LUMwICAgKGhleCkJCVNlbXRlY2ggQ29ycG9yYXRpb24KKzAwMTZDMCAgICAgKGJhc2UgMTYpCQlTZW10ZWNoIENvcnBvcmF0aW9uCisJCQkJMjAwIEZseW5uIFJkCisJCQkJQ2FtYXJpbGxvIENhbGlmb3JuaWEgOTMwMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUMxICAgKGhleCkJCUVsZWtzZW4gTHRkCiswMDE2QzEgICAgIChiYXNlIDE2KQkJRWxla3NlbiBMdGQKKwkJCQlQaW5ld29vZCBTdHVkaW9zCisJCQkJSXZlciBIZWF0aAorCQkJCUl2ZXIgQnVja3MgU0wwIDBOSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE2LUMyICAgKGhleCkJCUF2dGVjIFN5c3RlbXMgSW5jCiswMDE2QzIgICAgIChiYXNlIDE2KQkJQXZ0ZWMgU3lzdGVtcyBJbmMKKwkJCQkxNDQzMiBBbGJlbWFybGUgUG9pbnQgUGxhY2UKKwkJCQlDaGFudGlsbHkgVmlyZ2luaWEgMjAxNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUMzICAgKGhleCkJCUJBIFN5c3RlbXMgSW5jCiswMDE2QzMgICAgIChiYXNlIDE2KQkJQkEgU3lzdGVtcyBJbmMKKwkJCQk2ODk1IFZpYSBEZWwgT3JvCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUM0ICAgKGhleCkJCVNpUkYgVGVjaG5vbG9neSwgSW5jLgorMDAxNkM0ICAgICAoYmFzZSAxNikJCVNpUkYgVGVjaG5vbG9neSwgSW5jLgorCQkJCTIxNyBEZXZjb24gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUM1ICAgKGhleCkJCVNoZW56aGVuIFhpbmcgRmVuZyBJbmR1c3RyeSBDby4sTHRkCiswMDE2QzUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gWGluZyBGZW5nIEluZHVzdHJ5IENvLixMdGQKKwkJCQlGbG9vciAxIC0gNCwgQmxvY2sgMjUsIEhvbmd0aWFuIEppbnl1YW4gSW5kdXN0cmlhbCwKKwkJCQlIb25ndGlhbiBSb2FkIEh1YW5ncHUsIFNoYWppbiwgQmFvYW4sCisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDg2CisJCQkJQ0hJTkEKKworMDAtMTYtQzYgICAoaGV4KQkJTm9ydGggQXRsYW50aWMgSW5kdXN0cmllcworMDAxNkM2ICAgICAoYmFzZSAxNikJCU5vcnRoIEF0bGFudGljIEluZHVzdHJpZXMKKwkJCQkxNzAgV2lsYnVyIFBsYWNlCisJCQkJQm9oZW1pYSBOWSAxMTcxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQzcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNkM3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQzggICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNkM4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQzkgICAoaGV4KQkJTkFUIFNlYXR0bGUsIEluYy4KKzAwMTZDOSAgICAgKGJhc2UgMTYpCQlOQVQgU2VhdHRsZSwgSW5jLgorCQkJCTIyMTI1IDE3dGggQXZlIFNFCisJCQkJQm90aGVsbCBXQSA5ODAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQ0EgICAoaGV4KQkJTm9ydGVsCiswMDE2Q0EgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTYtQ0IgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIKKzAwMTZDQiAgICAgKGJhc2UgMTYpCQlBcHBsZSBDb21wdXRlcgorCQkJCTEgSW5maW5pdGUgTG9vcCBNUzozNUdQTworCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQ0MgICAoaGV4KQkJWGN1dGUgTW9iaWxlIENvcnAuCiswMDE2Q0MgICAgIChiYXNlIDE2KQkJWGN1dGUgTW9iaWxlIENvcnAuCisJCQkJM0YuIE5vLjI1LCBBbGx5MTUsIExhbmUgMTIwLCBTZWMuMSwgTmVpaHUgUmQuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUNEICAgKGhleCkJCUhJSkkgSElHSC1URUNIIENPLiwgTFRELgorMDAxNkNEICAgICAoYmFzZSAxNikJCUhJSkkgSElHSC1URUNIIENPLiwgTFRELgorCQkJCU9oZ2EgODEzMworCQkJCUhpamkKKwkJCQlIYXlhbWkgT2l0YSA4NzktMTUwNAorCQkJCUpBUEFOCisKKzAwLTE2LUNFICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCiswMDE2Q0UgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKwkJCQk2NiwgQ2h1bmcgU2hhbiBSZC4gVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtQ0YgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMTZDRiAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCTY2LCBDaHVuZyBTaGFuIFJkLiBUdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi1EMCAgIChoZXgpCQlBVGVjaCBlbGVrdHJvbmlrYSBkLm8uby4KKzAwMTZEMCAgICAgKGJhc2UgMTYpCQlBVGVjaCBlbGVrdHJvbmlrYSBkLm8uby4KKwkJCQlCYWMgcHJpIE1hdGVyaWppIDMwCisJCQkJTWF0ZXJpamEgU0kgNjI0MgorCQkJCVNMT1ZFTklBCisKKzAwLTE2LUQxICAgKGhleCkJCVpBVCBhLnMuCiswMDE2RDEgICAgIChiYXNlIDE2KQkJWkFUIGEucy4KKwkJCQlLIFBvZGxlc2kgNTQxCisJCQkJUHJpYnJhbSBWSSAgMjYxODAKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0xNi1EMiAgIChoZXgpCQlDYXNwaWFuCiswMDE2RDIgICAgIChiYXNlIDE2KQkJQ2FzcGlhbgorCQkJCTE3MCBCYXl0ZWNoIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUQzICAgKGhleCkJCVdpc3Ryb24gQ29ycG9yYXRpb24KKzAwMTZEMyAgICAgKGJhc2UgMTYpCQlXaXN0cm9uIENvcnBvcmF0aW9uCisJCQkJMjFGLCA4OCwgU2VjLjEsIEhzaW4gVGFpIFd1IFJkLiwgSHNpY2hpaCwKKwkJCQlUYWlwZWkgSHNpZW4gIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtRDQgICAoaGV4KQkJQ29tcGFsIENvbW11bmljYXRpb25zLCBJbmMuCiswMDE2RDQgICAgIChiYXNlIDE2KQkJQ29tcGFsIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJN3RoLCBGTCwgTm8uIDMxOSwgU2VjLiA0LCBQYS1UZWggcmQuCisJCQkJVGFpcGVpICA4ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUQ1ICAgKGhleCkJCVN5bmNjb20gQ28uLCBMdGQKKzAwMTZENSAgICAgKGJhc2UgMTYpCQlTeW5jY29tIENvLiwgTHRkCisJCQkJIzMwNiBNeXVuZ2kgZS1zcGFjZSAgMjE4LTIwCisJCQkJQW55YW5nNy1kb25nIE1hbmFuLWd1CisJCQkJQW55YW5nLXNpIEt5dW5na2ktZG8gNDMwLTgxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi1ENiAgIChoZXgpCQlUREEgVGVjaCBQdHkgTHRkCiswMDE2RDYgICAgIChiYXNlIDE2KQkJVERBIFRlY2ggUHR5IEx0ZAorCQkJCTIxMCAvIDU0IEN1cnJpZSBTdHJlZXQKKwkJCQlBZGVsYWlkZSBTb3V0aCBBdXN0cmFsaWEgNTAwMAorCQkJCUFVU1RSQUxJQQorCiswMC0xNi1ENyAgIChoZXgpCQlTdW53YXlzIEFHCiswMDE2RDcgICAgIChiYXNlIDE2KQkJU3Vud2F5cyBBRworCQkJCU1hY2FpcmVzdHIuMy01CisJCQkJS29uc3RhbnogQmFkZW4gV3VydHRlbWJlcmcgNzg0NjcKKwkJCQlHRVJNQU5ZCisKKzAwLTE2LUQ4ICAgKGhleCkJCVNlbmVhIEFCCiswMDE2RDggICAgIChiYXNlIDE2KQkJU2VuZWEgQUIKKwkJCQlGb3JldGFnc2FsbGVuIDEyCisJCQkJQWtlcnNiZXJnYSAgMTg0ODQKKwkJCQlTV0VERU4KKworMDAtMTYtRDkgICAoaGV4KQkJTklOR0JPIEJJUkQgQ08uLExURC4KKzAwMTZEOSAgICAgKGJhc2UgMTYpCQlOSU5HQk8gQklSRCBDTy4sTFRELgorCQkJCU5vLjk5OSBEYWNoZW5nIEVhc3QgUm9hZAorCQkJCUZlbmdodWEgWmhlamlhbmcgMzE1NTAwCisJCQkJQ0hJTkEKKworMDAtMTYtREEgICAoaGV4KQkJRnV0cm9uaWMgVGVjaG5vbG9neSBDby4gTHRkLgorMDAxNkRBICAgICAoYmFzZSAxNikJCUZ1dHJvbmljIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKwkJCQlSb29tIDEwMTZBLCAxMC9GLiwgUHJvZml0IEluZC4gQmxkZy4sCisJCQkJMS0xNSBLd2FpIEZ1bmcgQ3Jlc2NlbnQsCisJCQkJS3dhaSBDaHVuZyAgMDAwMDAKKwkJCQlIT05HIEtPTkcKKworMDAtMTYtREIgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMTZEQiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaS1DaXR5IEd5ZW9uZy1CdWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi1EQyAgIChoZXgpCQlBUkNIT1MKKzAwMTZEQyAgICAgKGJhc2UgMTYpCQlBUkNIT1MKKwkJCQkxMiBydWUgQU1QRVJFCisJCQkJSUdOWSBFU1NPTk5FUyA5MTQzMAorCQkJCUZSQU5DRQorCiswMC0xNi1ERCAgIChoZXgpCQlHaWdhYmVhbSBDb3Jwb3JhdGlvbgorMDAxNkREICAgICAoYmFzZSAxNikJCUdpZ2FiZWFtIENvcnBvcmF0aW9uCisJCQkJNDA3IFNwcmluZ3BhcmsgUGxhY2UKKwkJCQlTdGUgOTAwCisJCQkJSGVybmRvbiBWQSAyMDE3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtREUgICAoaGV4KQkJRkFTVCBJbmMKKzAwMTZERSAgICAgKGJhc2UgMTYpCQlGQVNUIEluYworCQkJCTkwNSBIb25leXNwb3QgUmQKKwkJCQlTdHJhdGZvcmQgQ1QgMDY2MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LURGICAgKGhleCkJCUx1bmRpbm92YSBBQgorMDAxNkRGICAgICAoYmFzZSAxNikJCUx1bmRpbm92YSBBQgorCQkJCURhbGJ5dmFnZW4gMQorCQkJCUx1bmQgU2thYW5lIFNFLTIyNCA2MAorCQkJCVNXRURFTgorCiswMC0xNi1FMCAgIChoZXgpCQkzQ29tIEx0ZAorMDAxNkUwICAgICAoYmFzZSAxNikJCTNDb20gTHRkCisJCQkJUGVvcGxlYnVpbGRpbmcgMgorCQkJCVBlb3BsZWJ1aWxkaW5nIEVzdGF0ZSwgTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi1FMSAgIChoZXgpCQlTaWxpY29uU3RvciwgSW5jLgorMDAxNkUxICAgICAoYmFzZSAxNikJCVNpbGljb25TdG9yLCBJbmMuCisJCQkJNDg0MzAgTGFrZXZpZXcgQmx2ZC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1FMiAgIChoZXgpCQlBbWVyaWNhbiBGaWJlcnRlaywgSW5jLgorMDAxNkUyICAgICAoYmFzZSAxNikJCUFtZXJpY2FuIEZpYmVydGVrLCBJbmMuCisJCQkJMTIwIEJlbG1vbnQgRHJpdmUKKwkJCQlTb21lcnNldCBOZXcgSmVyc2V5IDA4ODczLTEyMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUUzICAgKGhleCkJCUFTS0VZIENPTVBVVEVSIENPUlAuCiswMDE2RTMgICAgIChiYXNlIDE2KQkJQVNLRVkgQ09NUFVURVIgQ09SUC4KKwkJCQkxMEYsIE5PLjExOSwgQ0hJRU5LQU5HIFJELiwKKwkJCQlDSFVORy1ITywgVEFJUEVJICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUU0ICAgKGhleCkJCVZBTkdVQVJEIFNFQ1VSSVRZIEVOR0lORUVSSU5HIENPUlAuCiswMDE2RTQgICAgIChiYXNlIDE2KQkJVkFOR1VBUkQgU0VDVVJJVFkgRU5HSU5FRVJJTkcgQ09SUC4KKwkJCQkzLCBMQU5FIDMyLCBLU08gQ0hJTkcgUkQuCisJCQkJWUFOR01FSSBUQU9ZVUFOIDMyNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtRTUgICAoaGV4KQkJRk9SRExFWSBERVZFTE9QTUVOVCBMSU1JVEVECiswMDE2RTUgICAgIChiYXNlIDE2KQkJRk9SRExFWSBERVZFTE9QTUVOVCBMSU1JVEVECisJCQkJUk9PTSA3MDYsIDdUSCBGTE9PUiwgWVUgU1VORyBCT09OIEJVSUxESU5HLCAxMDctMTExIERFUyBWT0VVWCBST0FELCBDRU5UUkFMLAorCQkJCUhPTkcgS09ORworCiswMC0xNi1FNiAgIChoZXgpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorMDAxNkU2ICAgICAoYmFzZSAxNikJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCisJCQkJUGluLUplbiBDaXR5LCBUYW95dWFuCisJCQkJMzI0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi1FNyAgIChoZXgpCQlEeW5hbWl4IFByb21vdGlvbnMgTGltaXRlZAorMDAxNkU3ICAgICAoYmFzZSAxNikJCUR5bmFtaXggUHJvbW90aW9ucyBMaW1pdGVkCisJCQkJNzg4LTc5MCwgRmluY2hsZXkgUm9hZAorCQkJCUxvbmRvbiAgTlcxMSA3VEoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi1FOCAgIChoZXgpCQlTaWdtYSBEZXNpZ25zLCBJbmMuCiswMDE2RTggICAgIChiYXNlIDE2KQkJU2lnbWEgRGVzaWducywgSW5jLgorCQkJCTE3NzggTWNDYXJ0aHkgQmx2ZC4KKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtRTkgICAoaGV4KQkJVGliYSBNZWRpY2FsIEluYworMDAxNkU5ICAgICAoYmFzZSAxNikJCVRpYmEgTWVkaWNhbCBJbmMKKwkJCQk1MDI0IExha2V3b29kIERyaXZlCisJCQkJUGxhbm8gVFggNzUwOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUVBICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDE2RUEgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCBQYXJrIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyayBLdWxpbSAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE2LUVCICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDE2RUIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsgS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xNi1FQyAgIChoZXgpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbXMgQ28uLCBMdGQuCiswMDE2RUMgICAgIChiYXNlIDE2KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCU5vLiAyMiwgQWxsZXkgMzgsIExhbmUgOTEsIFNlYy4gMSwgTmVpIEh1IFJvYWQsCisJCQkJVGFpcGVpICAxMTQ0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtRUQgICAoaGV4KQkJRGlnaXRhbCBTYWZldHkgVGVjaG5vbG9naWVzLCBJbmMKKzAwMTZFRCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFNhZmV0eSBUZWNobm9sb2dpZXMsIEluYworCQkJCTUxMSBEYXZpcyBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCU1vcnJpc3ZpbGxlIE5DIDI3NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1FRSAgIChoZXgpCQlSb3lhbERpZ2l0YWwgSW5jLgorMDAxNkVFICAgICAoYmFzZSAxNikJCVJveWFsRGlnaXRhbCBJbmMuCisJCQkJOEYuLCBOby4zMDgsIFNlYy4xLCBOZWlodSBSZC4KKwkJCQlOZWlodSBEaXN0cmljdCwKKwkJCQlUYWlwZWkgQ2l0eSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi1FRiAgIChoZXgpCQlLb2tvIEZpdG5lc3MsIEluYy4KKzAwMTZFRiAgICAgKGJhc2UgMTYpCQlLb2tvIEZpdG5lc3MsIEluYy4KKwkJCQkxMzYgTG9uZ3dhdGVyIERyaXZlCisJCQkJTm9yd2VsbCBNQSAwMjA2MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtRjAgICAoaGV4KQkJRGVsbAorMDAxNkYwICAgICAoYmFzZSAxNikJCURlbGwKKwkJCQk5MDkgSGVybW9zYSBDdAorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtRjEgICAoaGV4KQkJT21uaVNlbnNlLCBMTEMKKzAwMTZGMSAgICAgKGJhc2UgMTYpCQlPbW5pU2Vuc2UsIExMQworCQkJCTIgUm9iaW4gRHJpdmUKKwkJCQlMYWR5cyBJc2xhbmQgU0MgMjk5MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUYyICAgKGhleCkJCURtb2JpbGUgU3lzdGVtIENvLiwgTHRkLgorMDAxNkYyICAgICAoYmFzZSAxNikJCURtb2JpbGUgU3lzdGVtIENvLiwgTHRkLgorCQkJCTJGLCBOby4xMy0yMCwgU2VjLjYsIE1pbmN5dWFuIEUuUmQsCisJCQkJTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtRjMgICAoaGV4KQkJQ0FTVCBJbmZvcm1hdGlvbiBDby4sIEx0ZAorMDAxNkYzICAgICAoYmFzZSAxNikJCUNBU1QgSW5mb3JtYXRpb24gQ28uLCBMdGQKKwkJCQk1RiBNU0EgQmxkZy4gODkxLTQzIERhY2NoaS1Eb25nLAorCQkJCWdhbmduYW0tR3UKKwkJCQlTRU9VTCAgMTM1LTI4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi1GNCAgIChoZXgpCQlFaWRpY29tIENvLiwgTHRkLgorMDAxNkY0ICAgICAoYmFzZSAxNikJCUVpZGljb20gQ28uLCBMdGQuCisJCQkJUG9seWNoZW0gQi9EIDR0aCBGbG9vciwgOTAwLTEKKwkJCQlLd2FueWFuZy1kb25nLCBEb25nYW4ta3UKKwkJCQlBbnlhbmctc2kgS3llb25nZ2ktZG8gNDMxLTA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi1GNSAgIChoZXgpCQlEYWxpYW4gR29sZGVuIEh1YWx1IERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkCiswMDE2RjUgICAgIChiYXNlIDE2KQkJRGFsaWFuIEdvbGRlbiBIdWFsdSBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCU5vLjEgSHVhIFJvYWQsUWl4aWFubGluZworCQkJCURhbGlhbiBMaWFvTmluZyAxMTYwMjMKKwkJCQlDSElOQQorCiswMC0xNi1GNiAgIChoZXgpCQlWaWRlbyBQcm9kdWN0cyBHcm91cAorMDAxNkY2ICAgICAoYmFzZSAxNikJCVZpZGVvIFByb2R1Y3RzIEdyb3VwCisJCQkJMTYwMCBFbWVyc29uIEF2ZW51ZQorCQkJCU94bmFyZCBDYWxpZm9ybmlhIDkzMDMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1GNyAgIChoZXgpCQlMLTMgQ29tbXVuaWNhdGlvbnMsIEVsZWN0cm9keW5hbWljcywgSW5jLgorMDAxNkY3ICAgICAoYmFzZSAxNikJCUwtMyBDb21tdW5pY2F0aW9ucywgRWxlY3Ryb2R5bmFtaWNzLCBJbmMuCisJCQkJMTIwMCBIaWNrcyBSZC4KKwkJCQlSb2xsaW5nIE1lYWRvd3MgSUwgNjAwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUY4ICAgKGhleCkJCUFWSVFURUNIIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDE2RjggICAgIChiYXNlIDE2KQkJQVZJUVRFQ0ggVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQk2RiAxMiwgTGktaHNpbiBSb2FkLCBTQklQCisJCQkJSHNpbi1jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtRjkgICAoaGV4KQkJQ0VUUlRBIFBPVCwgZC5vLm8uLCBLcmFuagorMDAxNkY5ICAgICAoYmFzZSAxNikJCUNFVFJUQSBQT1QsIGQuby5vLiwgS3JhbmoKKwkJCQlQbGFuaW5hIDMKKwkJCQlLcmFuaiBTSSA0MDAwCisJCQkJU0xPVkVOSUEKKworMDAtMTYtRkEgICAoaGV4KQkJRUNJIFRlbGVjb20gTHRkLgorMDAxNkZBICAgICAoYmFzZSAxNikJCUVDSSBUZWxlY29tIEx0ZC4KKwkJCQkzMCBIYXNpdmltIFN0LgorCQkJCVBldGFoIFRpa3ZhICA0OTEzMworCQkJCUlTUkFFTAorCiswMC0xNi1GQiAgIChoZXgpCQlTSEVOWkhFTiBNVEMgQ08uLExURC4KKzAwMTZGQiAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBNVEMgQ08uLExURC4KKwkJCQk1L0YgQmVuWXVhbiBCbGRnLDYwMTUgU2hlbk5hbiBSb2FkCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA0MAorCQkJCUNISU5BCisKKzAwLTE2LUZDICAgKGhleCkJCVRPSEtFTiBDTy4sTFRELgorMDAxNkZDICAgICAoYmFzZSAxNikJCVRPSEtFTiBDTy4sTFRELgorCQkJCTItMTYtMjAgVGFtYWdhd2EKKwkJCQlDaG9mdSBUb2t5byAxODItMDAyNQorCQkJCUpBUEFOCisKKzAwLTE2LUZEICAgKGhleCkJCUphdHkgRWxlY3Ryb25pY3MKKzAwMTZGRCAgICAgKGJhc2UgMTYpCQlKYXR5IEVsZWN0cm9uaWNzCisJCQkJSmF0eSBCbGRnIDEwRiwgMTY1OS01IEJvbmdjaHVuMTEtRG9uZworCQkJCUt3YW5hay1LdQorCQkJCVNlb3VsICAxNTEtODMyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LUZFICAgKGhleCkJCUFscHMgRWxlY3RyaWMgQ28uLCBMdGQKKzAwMTZGRSAgICAgKGJhc2UgMTYpCQlBbHBzIEVsZWN0cmljIENvLiwgTHRkCisJCQkJMS0yLTEsIE9raW5vdWNoaSwKKwkJCQlTb21hLWNpdHksIEZ1a3VzaGltYS1wcmVmLiwgOTc2LTg1MDEKKwkJCQlKQVBBTgorCiswMC0xNi1GRiAgIChoZXgpCQlXYW1pbiBPcHRvY29tbSBNZmcgQ29ycAorMDAxNkZGICAgICAoYmFzZSAxNikJCVdhbWluIE9wdG9jb21tIE1mZyBDb3JwCisJCQkJTm8uIDIzOSBRaWFvaGUgUm9hZAorCQkJCVpob25naGUgQ2l0eSBUYWlwZWkgQ291bnR5IDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctMDAgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMTcwMCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVUyBId3kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTAxICAgKGhleCkJCUtERSwgSW5jLgorMDAxNzAxICAgICAoYmFzZSAxNikJCUtERSwgSW5jLgorCQkJCUtERSBUT1dOLCA0Mi03LCBNYW5nd29sLWRvbmcKKwkJCQlIYW5hbSBHeWVvbmdnaS1kbyA0NjUtMTUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTAyICAgKGhleCkJCU9zdW5nIE1pZGljb20gQ28uLCBMdGQKKzAwMTcwMiAgICAgKGJhc2UgMTYpCQlPc3VuZyBNaWRpY29tIENvLiwgTHRkCisJCQkJMjMxLTE4LCBEb3JpbTItZG9uZywKKwkJCQlTZW91bCwgWW91bmdkZXVuZ3BvLWd1IDE1MC04MzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctMDMgICAoaGV4KQkJTU9TREFOIEludGVybmF0aW9uIENvLixMdGQKKzAwMTcwMyAgICAgKGJhc2UgMTYpCQlNT1NEQU4gSW50ZXJuYXRpb24gQ28uLEx0ZAorCQkJCU5vLjc0IENoZWdndW5nIFNoaW50c3VlbixTaGFuaHVhIEplbiwKKwkJCQlUYWluYW4gIDc0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctMDQgICAoaGV4KQkJU2hpbmNvIEVsZWN0cm9uaWNzIEdyb3VwIENvLixMdGQKKzAwMTcwNCAgICAgKGJhc2UgMTYpCQlTaGluY28gRWxlY3Ryb25pY3MgR3JvdXAgQ28uLEx0ZAorCQkJCU5vLjUgV2FpaHVhbiBSb2FkCisJCQkJQ2hhbmd6aG91IEppYW5nc3UgMjEzMDIyCisJCQkJQ0hJTkEKKworMDAtMTctMDUgICAoaGV4KQkJTWV0aG9kZSBFbGVjdHJvbmljcworMDAxNzA1ICAgICAoYmFzZSAxNikJCU1ldGhvZGUgRWxlY3Ryb25pY3MKKwkJCQk3NDAxIFcuIFdpbHNvbgorCQkJCUNoaWNhZ28gSUwgNjA3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTA2ICAgKGhleCkJCVRlY2hmYWl0aCBXaXJlbGVzcyBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgTGltaXRlZC4KKzAwMTcwNiAgICAgKGJhc2UgMTYpCQlUZWNoZmFpdGggV2lyZWxlc3MgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IExpbWl0ZWQuCisJCQkJMi9GIE04IFdlc3QgTm8uMSBKaXUgWGlhbiBRaWFvIERvbmcgUm9hZCwKKwkJCQlDaGFvIFlhbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwMTYKKwkJCQlDSElOQQorCiswMC0xNy0wNyAgIChoZXgpCQlJbkdyaWQsIEluYworMDAxNzA3ICAgICAoYmFzZSAxNikJCUluR3JpZCwgSW5jCisJCQkJOTIwIENhc3NhdHQgUmQKKwkJCQlTdWl0ZSAyMjAKKwkJCQlCZXJ3eW4gUGEgMTkzMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTA4ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxNzA4ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctMDkgICAoaGV4KQkJRXhhbHQgQ29tbXVuaWNhdGlvbnMKKzAwMTcwOSAgICAgKGJhc2UgMTYpCQlFeGFsdCBDb21tdW5pY2F0aW9ucworCQkJCTU4MCBEaXZpc2lvbiBTdHJlZXQKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctMEEgICAoaGV4KQkJSU5FVyBESUdJVEFMIENPTVBBTlkKKzAwMTcwQSAgICAgKGJhc2UgMTYpCQlJTkVXIERJR0lUQUwgQ09NUEFOWQorCQkJCVN1cHBseSBCdXJlYXUgM3RoIGZsb29yIEtUJkcgMjAzLTEsCisJCQkJUHlvbmcgY2hvbi1kb25nLCBEYWVkZW9nCisJCQkJRGFlamVvbiAgMzA2LTcxMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy0wQiAgIChoZXgpCQlDb250ZWxhLCBJbmMuCiswMDE3MEIgICAgIChiYXNlIDE2KQkJQ29udGVsYSwgSW5jLgorCQkJCTYtOCBTb29uYWUtZG9uZywgQnVuZGFuZy1ndSwKKwkJCQk1dGggRmxvb3IsIEtvcmVhIEZpcnN0IEJsZGcuLAorCQkJCVN1bmduYW0gS3l1bmdnaS1kbyA0NjMtODI1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTBDICAgKGhleCkJCVR3aWcgQ29tIEx0ZC4gCiswMDE3MEMgICAgIChiYXNlIDE2KQkJVHdpZyBDb20gTHRkLiAKKwkJCQlNZXJpbmlpdHlua2F0dSAxMQorCQkJCVNhbG8gMjQwMAorCQkJCUZJTkxBTkQKKworMDAtMTctMEQgICAoaGV4KQkJRHVzdCBOZXR3b3JrcyBJbmMuCiswMDE3MEQgICAgIChiYXNlIDE2KQkJRHVzdCBOZXR3b3JrcyBJbmMuCisJCQkJMzA2OTUgSHVudHdvb2QgQXZlLgorCQkJCUhheXdhcmQgQ2EuIDk0NTQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0wRSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3MEUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0wRiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3MEYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0xMCAgIChoZXgpCQlDYXNhIFN5c3RlbXMgSW5jLgorMDAxNzEwICAgICAoYmFzZSAxNikJCUNhc2EgU3lzdGVtcyBJbmMuCisJCQkJMTAsIE5ldyBFbmdsYW5kIEJ1c2luZXNzIENlbnRlciBEci4KKwkJCQlTdWl0ZSAxMTAKKwkJCQlBbmRvdmVyIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0xMSAgIChoZXgpCQlHRSBIZWFsdGhjYXJlIEJpby1TY2llbmNlcyBBQgorMDAxNzExICAgICAoYmFzZSAxNikJCUdFIEhlYWx0aGNhcmUgQmlvLVNjaWVuY2VzIEFCCisJCQkJQmpvcmtnYXRhbiAzMAorCQkJCVVwcHNhbGEgU0UgNzUxODQKKwkJCQlTV0VERU4KKworMDAtMTctMTIgICAoaGV4KQkJSVNDTyBJbnRlcm5hdGlvbmFsCiswMDE3MTIgICAgIChiYXNlIDE2KQkJSVNDTyBJbnRlcm5hdGlvbmFsCisJCQkJMTAwMSBDYW1icmlkZ2UgRHJpdmUKKwkJCQlFbGsgR3JvdmUgVmlsbGFnZSBJTCA2MDAwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctMTMgICAoaGV4KQkJVGlnZXIgTmV0Q29tCiswMDE3MTMgICAgIChiYXNlIDE2KQkJVGlnZXIgTmV0Q29tCisJCQkJSi0xNSBNdWRhbiBDdW4sIFlpamluZyBIdWF5dWFuLAorCQkJCUFpZ3VvIFJvYWQsIEx1b2h1IERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDMKKwkJCQlDSElOQQorCiswMC0xNy0xNCAgIChoZXgpCQlCUiBDb250cm9scyBOZWRlcmxhbmQgYnYKKzAwMTcxNCAgICAgKGJhc2UgMTYpCQlCUiBDb250cm9scyBOZWRlcmxhbmQgYnYKKwkJCQlCcmFuZGVyd2VnIDEKKwkJCQlad29sbGUgT3Zlcmlqc3NlbCA4MDQyIFBECisJCQkJTkVUSEVSTEFORFMKKworMDAtMTctMTUgICAoaGV4KQkJUXN0aWsKKzAwMTcxNSAgICAgKGJhc2UgMTYpCQlRc3RpaworCQkJCUNhcnRlbCBCdXNpbmVzcyBFc3RhdGUKKwkJCQlFZGluYnVyZ2ggV2F5CisJCQkJSGFybG93IEVzc2V4IENNMjAgMlRUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctMTYgICAoaGV4KQkJUW5vIFRlY2hub2xvZ3kgSW5jLgorMDAxNzE2ICAgICAoYmFzZSAxNikJCVFubyBUZWNobm9sb2d5IEluYy4KKwkJCQk2Ri0yLCBOby4yNSwgUHVkaW5nIFJvYWQKKwkJCQlIc2luY2h1IFRhaXdhbiAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTE3ICAgKGhleCkJCUxlaWNhIEdlb3N5c3RlbXMgQUcKKzAwMTcxNyAgICAgKGJhc2UgMTYpCQlMZWljYSBHZW9zeXN0ZW1zIEFHCisJCQkJSGVpbnJpY2ggV2lsZCBTdHJhc3NlCisJCQkJSGVlcmJydWdnIFN0LiBHYWxsZW4gQ0gtOTQzNQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE3LTE4ICAgKGhleCkJCVZhbnNjbyBFbGVjdHJvbmljcyBPeQorMDAxNzE4ICAgICAoYmFzZSAxNikJCVZhbnNjbyBFbGVjdHJvbmljcyBPeQorCQkJCVRpaWxlbmx5b2phbmthdHUgNQorCQkJCUZPUlNTQSAgMzAxMDEKKwkJCQlGSU5MQU5ECisKKzAwLTE3LTE5ICAgKGhleCkJCUF1ZGlvQ29kZXMgVVNBLCBJbmMKKzAwMTcxOSAgICAgKGJhc2UgMTYpCQlBdWRpb0NvZGVzIFVTQSwgSW5jCisJCQkJMjcgV29ybGQncyBGYWlyIERyaXZlCisJCQkJU29tZXJzZXQgTkogMDg4NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTFBICAgKGhleCkJCVdpbmVnYXJkIENvbXBhbnkKKzAwMTcxQSAgICAgKGJhc2UgMTYpCQlXaW5lZ2FyZCBDb21wYW55CisJCQkJMzAwMCBLaXJrd29vZCBTdHJlZXQKKwkJCQlCdXJsaW5ndG9uIElBIDUyNjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0xQiAgIChoZXgpCQlJbm5vdmF0aW9uIExhYiBDb3JwLgorMDAxNzFCICAgICAoYmFzZSAxNikJCUlubm92YXRpb24gTGFiIENvcnAuCisJCQkJMTJGTC4sIE5vLiAyODUsIFNlYy4gMiwgVGlEaW5nIEJsdmQuLAorCQkJCVRhaXBlaSAgMTE0OTMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTFDICAgKGhleCkJCU5UIE1pY3JvU3lzdGVtcywgSW5jLgorMDAxNzFDICAgICAoYmFzZSAxNikJCU5UIE1pY3JvU3lzdGVtcywgSW5jLgorCQkJCTEtNS0zLTJGIFRhbWFnYXdhZGFpCisJCQkJU2V0YWdheWEgVG9reW8gMTU4LTAwOTYKKwkJCQlKQVBBTgorCiswMC0xNy0xRCAgIChoZXgpCQlESUdJVAorMDAxNzFEICAgICAoYmFzZSAxNikJCURJR0lUCisJCQkJVmlhIFBhc3RldXIgLCAxLzMKKwkJCQlTLlBpZXRybyBNb3NlenpvIE5PVkFSQSAyODA2MAorCQkJCUlUQUxZCisKKzAwLTE3LTFFICAgKGhleCkJCVRoZW8gQmVubmluZyBHbWJIICYgQ28uIEtHCiswMDE3MUUgICAgIChiYXNlIDE2KQkJVGhlbyBCZW5uaW5nIEdtYkggJiBDby4gS0cKKwkJCQlNdWVuc3RlcnN0cmFzc2UgMTM1LTEzNworCQkJCUJvY2hvbHQgTlJXIDQ2Mzk3CisJCQkJR0VSTUFOWQorCiswMC0xNy0xRiAgIChoZXgpCQlJTVYgQ29ycG9yYXRpb24KKzAwMTcxRiAgICAgKGJhc2UgMTYpCQlJTVYgQ29ycG9yYXRpb24KKwkJCQkyLTYtMTAgVGFrZWppbWEKKwkJCQlOaXNoaXlvZG9nYXdhLWt1CisJCQkJT3Nha2EgIDU1NS0wMDExCisJCQkJSkFQQU4KKworMDAtMTctMjAgICAoaGV4KQkJSW1hZ2UgU2Vuc2luZyBTeXN0ZW1zLCBJbmMuCiswMDE3MjAgICAgIChiYXNlIDE2KQkJSW1hZ2UgU2Vuc2luZyBTeXN0ZW1zLCBJbmMuCisJCQkJMTYwMCBVbml2ZXJzaXR5IEF2ZS4gVy4KKwkJCQlTdWl0ZSA1MDAKKwkJCQlTdC4gUGF1bCBNTiA1NTEwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctMjEgICAoaGV4KQkJRklUUkUgUy5wLkEuCiswMDE3MjEgICAgIChiYXNlIDE2KQkJRklUUkUgUy5wLkEuCisJCQkJVmlhIFZhbHNvbGRhLCAxNQorCQkJCU1JTEFOIE1JTEFOTyAyMDE0MgorCQkJCUlUQUxZCisKKzAwLTE3LTIyICAgKGhleCkJCUhhbmF6ZWRlciBFbGVjdHJvbmljIEdtYkgKKzAwMTcyMiAgICAgKGJhc2UgMTYpCQlIYW5hemVkZXIgRWxlY3Ryb25pYyBHbWJICisJCQkJSi5NLiBEaW1tZWxzdHIgMTAKKwkJCQlSaWVkIGkuIEkuIE9iZXJvc3RlcnJlaWNoIDQ5MTAKKwkJCQlBVVNUUklBCisKKzAwLTE3LTIzICAgKGhleCkJCVN1bW1pdCBEYXRhIENvbW11bmljYXRpb25zCiswMDE3MjMgICAgIChiYXNlIDE2KQkJU3VtbWl0IERhdGEgQ29tbXVuaWNhdGlvbnMKKwkJCQk1MjYgU291dGggTWFpbiBTdHJlZXQKKwkJCQlTdWl0ZSA4MDUKKwkJCQlBa3JvbiBPaGlvIDQ0MzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0yNCAgIChoZXgpCQlTdHVkZXIgUHJvZmVzc2lvbmFsIEF1ZGlvIEdtYkgKKzAwMTcyNCAgICAgKGJhc2UgMTYpCQlTdHVkZXIgUHJvZmVzc2lvbmFsIEF1ZGlvIEdtYkgKKwkJCQlBbHRoYXJkc3RyYXNzZSAzMAorCQkJCVJlZ2Vuc2RvcmYgWnVyaWNoIENILTgxMDUKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xNy0yNSAgIChoZXgpCQlMaXF1aWQgQ29tcHV0aW5nCiswMDE3MjUgICAgIChiYXNlIDE2KQkJTGlxdWlkIENvbXB1dGluZworCQkJCTM0MCBUZXJyeSBGb3ggRHJpdmUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlPdHRhd2EgT250YXJpbyBLMksgM0EyCisJCQkJQ0FOQURBCisKKzAwLTE3LTI2ICAgKGhleCkJCW0yYyBFbGVjdHJvbmljIFRlY2hub2xvZ3kgTHRkLgorMDAxNzI2ICAgICAoYmFzZSAxNikJCW0yYyBFbGVjdHJvbmljIFRlY2hub2xvZ3kgTHRkLgorCQkJCTI0MDMsIDI0L0YsIE5hbnlhbmcgUGxhemEKKwkJCQk1NyBIdW5nIFRvIFJvYWQKKwkJCQlLd3VudG9uZyBIb25nIEtvbmcgOTk5IDk5OQorCQkJCUNISU5BCisKKzAwLTE3LTI3ICAgKGhleCkJCVRoZXJtbyBSYW1zZXkgSXRhbGlhIHMuci5sLgorMDAxNzI3ICAgICAoYmFzZSAxNikJCVRoZXJtbyBSYW1zZXkgSXRhbGlhIHMuci5sLgorCQkJCVN0cmFkYSBSaXZvbHRhbmEga20gNi83CisJCQkJUm9kYW5vIE1pbGFubyAyMDA5MAorCQkJCUlUQUxZCisKKzAwLTE3LTI4ICAgKGhleCkJCVNlbGV4IENvbW11bmljYXRpb25zCiswMDE3MjggICAgIChiYXNlIDE2KQkJU2VsZXggQ29tbXVuaWNhdGlvbnMKKwkJCQlWaWEgUGllcmFnb3N0aW5pIDgwCisJCQkJR2Vub3ZhICAxNjE1MQorCQkJCUlUQUxZCisKKzAwLTE3LTI5ICAgKGhleCkJCVViaWNvZCBDby5MVEQKKzAwMTcyOSAgICAgKGJhc2UgMTYpCQlVYmljb2QgQ28uTFRECisJCQkJN0YgQ2h1bi1naW4gQmxkZywgNTMtNSBXb25oeW8tcm8KKwkJCQlZb25nc2FuLWd1CisJCQkJU2VvdWwgIDE0MC03MTkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctMkEgICAoaGV4KQkJUHJvd2FyZSBUZWNobm9sb2d5IENvcnAuCiswMDE3MkEgICAgIChiYXNlIDE2KQkJUHJvd2FyZSBUZWNobm9sb2d5IENvcnAuCisJCQkJNkZsLiwgTm8uIDQsIEFsbGV5IDEsIExhbmUgMjM1LCBQYW9DaGFvIFJkLgorCQkJCUhzaW4gVGllbiBDaXR5IFRhaXBlaSBIc2llbiAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTJCICAgKGhleCkJCUdsb2JhbCBUZWNobm9sb2dpZXMgSW5jLgorMDAxNzJCICAgICAoYmFzZSAxNikJCUdsb2JhbCBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTQvRiBLaWNveCBCbGRnLiwxODgtNSxHdXJvLURvbmcsR3Vyby1ndSwKKwkJCQlTZW91bCAxNTItODQ4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTJDICAgKGhleCkJCVRBRUpJTiBJTkZPVEVDSAorMDAxNzJDICAgICAoYmFzZSAxNikJCVRBRUpJTiBJTkZPVEVDSAorCQkJCTZGIFdvb2xpbSBlLUJpeiBDZW50ZXIsIDE3MC01CisJCQkJR3Vyby1Eb25nLCBHdXJvLUd1LAorCQkJCVNlb3VsICAxNTItNzY5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTJEICAgKGhleCkJCUF4Y2VuIFBob3RvbmljcyBDb3Jwb3JhdGlvbgorMDAxNzJEICAgICAoYmFzZSAxNikJCUF4Y2VuIFBob3RvbmljcyBDb3Jwb3JhdGlvbgorCQkJCTZGLCBOby4gMTE5LCBCYXVqdW5nIFJkLiwKKwkJCQlTaGluZGlhbiBDaXR5LCBUYWlwZWkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctMkUgICAoaGV4KQkJRlhDIEluYy4KKzAwMTcyRSAgICAgKGJhc2UgMTYpCQlGWEMgSW5jLgorCQkJCTEwLTE2IDZGLCBOaWhvbmJhc2hpIFRvbWl6YXdhLUNob3UsIENodW8ta3UKKwkJCQlUb2t5byAgMTAzLTAwMDYKKwkJCQlKQVBBTgorCiswMC0xNy0yRiAgIChoZXgpCQlOZXVMaW9uIEluY29ycG9yYXRlZAorMDAxNzJGICAgICAoYmFzZSAxNikJCU5ldUxpb24gSW5jb3Jwb3JhdGVkCisJCQkJMTYwMCBPbGQgQ291bnRyeSBSb2FkCisJCQkJUGxhaW52aWV3IE5ZIDExODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0zMCAgIChoZXgpCQlBdXRvbWF0aW9uIEVsZWN0cm9uaWNzCiswMDE3MzAgICAgIChiYXNlIDE2KQkJQXV0b21hdGlvbiBFbGVjdHJvbmljcworCQkJCTExMSBCaWcgSG9ybiBSZC4KKwkJCQlDYXNwZXIgV3kgODI2MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTMxICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorMDAxNzMxICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCU5vLjUgU2hpbmcgWWVoIFN0cmVldCxLd2VpIFNoYW4gSHNpYW5nLFRhb3l1YW4KKwkJCQlUYWlwZWkgIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctMzIgICAoaGV4KQkJU2NpZW5jZS1UZWNobmljYWwgQ2VudGVyICJSSVNTQSIKKzAwMTczMiAgICAgKGJhc2UgMTYpCQlTY2llbmNlLVRlY2huaWNhbCBDZW50ZXIgIlJJU1NBIgorCQkJCXN0LiBBYnJhbXRzZXZza2FqYSwgaC45CisJCQkJTW9zY293ICAxMjg1NzIKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMTctMzMgICAoaGV4KQkJU0ZSCiswMDE3MzMgICAgIChiYXNlIDE2KQkJU0ZSCisJCQkJNDIgUXVhaSBkdSBwb2ludCBkdSBqb3VyCisJCQkJQm91bG9nbmUgQmlsbGFuY291cnQgSGF1dHMgZGUgU2VpbmUgOTI2NTkKKwkJCQlGUkFOQ0UKKworMDAtMTctMzQgICAoaGV4KQkJQURDIFRlbGVjb21tdW5pY2F0aW9ucworMDAxNzM0ICAgICAoYmFzZSAxNikJCUFEQyBUZWxlY29tbXVuaWNhdGlvbnMKKwkJCQk1NDEgRSBUcmltYmxlIFJvYWQgICAgCisJCQkJU2FuIEpvc2UgQ2FsaWZvcm5pYSA5NTEzNC0xMjI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0zNSAgIChoZXgpCQlQUklWQVRFCiswMDE3MzUgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTE3LTM2ICAgKGhleCkJCWlpVHJvbiBJbmMuCiswMDE3MzYgICAgIChiYXNlIDE2KQkJaWlUcm9uIEluYy4KKwkJCQk4OCBNZXJjeSBTdC4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0zNyAgIChoZXgpCQlJbmR1c3RyaWUgRGlhbCBGYWNlIFMucC5BLgorMDAxNzM3ICAgICAoYmFzZSAxNikJCUluZHVzdHJpZSBEaWFsIEZhY2UgUy5wLkEuCisJCQkJdmlhIENhbnpvLCA0CisJCQkJUGVzY2hpZXJhIEJvcnJvbWVvIE1pbGFubyAyMDA2OAorCQkJCUlUQUxZCisKKzAwLTE3LTM4ICAgKGhleCkJCUludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKzAwMTczOCAgICAgKGJhc2UgMTYpCQlJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCisJCQkJMSBBenJpZWxpIENlbnRlcgorCQkJCVRlbCBBdml2ICA2NzAyMQorCQkJCUlTUkFFTAorCiswMC0xNy0zOSAgIChoZXgpCQlCcmlnaHQgSGVhZHBob25lIEVsZWN0cm9uaWNzIENvbXBhbnkKKzAwMTczOSAgICAgKGJhc2UgMTYpCQlCcmlnaHQgSGVhZHBob25lIEVsZWN0cm9uaWNzIENvbXBhbnkKKwkJCQk4RiwgMTA5LCBMaSBEZSBTdHJlZXQKKwkJCQlDaHVuZyBIbyBDaXR5IFRhaXBlaSBDb3VudHkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy0zQSAgIChoZXgpCQlSZWFjaCBTeXN0ZW1zIEluYy4KKzAwMTczQSAgICAgKGJhc2UgMTYpCQlSZWFjaCBTeXN0ZW1zIEluYy4KKwkJCQkxMzMwIEJyb2Fkd2F5CisJCQkJU3VpdGUgMTIwMQorCQkJCU9ha2xhbmQgQ0EgOTQ2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTNCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMTczQiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTNDICAgKGhleCkJCUV4dHJlbWUgRW5naW5lZXJpbmcgU29sdXRpb25zCiswMDE3M0MgICAgIChiYXNlIDE2KQkJRXh0cmVtZSBFbmdpbmVlcmluZyBTb2x1dGlvbnMKKwkJCQkzMjI1IERlbWluZyBXYXkKKwkJCQlTdWl0ZSAxMjAKKwkJCQlNaWRkbGV0b24gV0kgNTM1NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTNEICAgKGhleCkJCU5lb2xvZ3kKKzAwMTczRCAgICAgKGJhc2UgMTYpCQlOZW9sb2d5CisJCQkJMTMwMDAgR3JlZ2cgU3RyZWV0IFN1aXRlIEEKKwkJCQlQb3dheSBDQSA5MjA2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctM0UgICAoaGV4KQkJTGV1Y290cm9uRXF1aXBhbWVudG9zIEx0ZGEuCiswMDE3M0UgICAgIChiYXNlIDE2KQkJTGV1Y290cm9uRXF1aXBhbWVudG9zIEx0ZGEuCisJCQkJUnVhIEpvcmdlIERpb25pc2lvIEJhcmJvc2EsIDMxMgorCQkJCVNhbnRhIFJpdGEgZG8gU2FwdWNhaSBNaW5hcyBHZXJhaXMgMzcuNTQwLTAwMAorCQkJCUJSQVpJTAorCiswMC0xNy0zRiAgIChoZXgpCQlCZWxraW4gQ29ycG9yYXRpb24KKzAwMTczRiAgICAgKGJhc2UgMTYpCQlCZWxraW4gQ29ycG9yYXRpb24KKwkJCQk1MDEgVy4gV2FsbnV0IFN0cmVldAorCQkJCUNvbXB0b24gQ0EgOTAyMjAtNTIyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctNDAgICAoaGV4KQkJQmx1YmVyaSBHYW1pbmcgVGVjaG5vbG9naWVzIEluYworMDAxNzQwICAgICAoYmFzZSAxNikJCUJsdWJlcmkgR2FtaW5nIFRlY2hub2xvZ2llcyBJbmMKKwkJCQkyMTI1LCBydWUgTGV0ZW5kcmUgU3VpdGUgNDIwCisJCQkJRHJ1bW1vbmR2aWxsZSBRdWViZWMgSjJDIDdHMQorCQkJCUNBTkFEQQorCiswMC0xNy00MSAgIChoZXgpCQlERUZJREVWCiswMDE3NDEgICAgIChiYXNlIDE2KQkJREVGSURFVgorCQkJCTI3IEF2ZW51ZSBkZSBWZXJkdW4KKwkJCQlWYW52ZXMgIDkyMTcwCisJCQkJRlJBTkNFCisKKzAwLTE3LTQyICAgKGhleCkJCUZVSklUU1UgTElNSVRFRAorMDAxNzQyICAgICAoYmFzZSAxNikJCUZVSklUU1UgTElNSVRFRAorCQkJCU11c2FzaGkta29zdWdpIFRvd2VyIFBsYWNlIEJsZGcuLDQwMworCQkJCUtvc3VnaS1jaG8gMS1jaG9tZSxOYWthaGFyYS1rdQorCQkJCUthd2FzYWtpIEthbmFnYXdhIDIxMS04NTg4CisJCQkJSkFQQU4KKworMDAtMTctNDMgICAoaGV4KQkJRGVjayBTcmwKKzAwMTc0MyAgICAgKGJhc2UgMTYpCQlEZWNrIFNybAorCQkJCVZpYSBGYWJpbyBGaWx6aSAyCisJCQkJTWlsYW4gIDIwMTI0CisJCQkJSVRBTFkKKworMDAtMTctNDQgICAoaGV4KQkJQXJhbmVvIEx0ZC4KKzAwMTc0NCAgICAgKGJhc2UgMTYpCQlBcmFuZW8gTHRkLgorCQkJCTEwMyBNZWRpbmF0IEhheWVodWRpbQorCQkJCUhlcnpsaXlhICA0NjczMworCQkJCUlTUkFFTAorCiswMC0xNy00NSAgIChoZXgpCQlJTk5PVFogQ08uLCBMdGQKKzAwMTc0NSAgICAgKGJhc2UgMTYpCQlJTk5PVFogQ08uLCBMdGQKKwkJCQkxNEYsIFByaW1lIENlbnRlciA1NDYtNCBHdXVpLURvbmcgS3dhbmdnaW4tR3UKKwkJCQlTZW91bCBTZW91bCAxNDMtMjAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTQ2ICAgKGhleCkJCUZyZWVkb205IEluYy4KKzAwMTc0NiAgICAgKGJhc2UgMTYpCQlGcmVlZG9tOSBJbmMuCisJCQkJNDE0MEIgU0xBREVWSUVXIENSRS4sCisJCQkJVU5JVCA0LAorCQkJCU1JU1NJU1NBVUdBLCBPbnRhcmlvIEw1TDZBMQorCQkJCUNBTkFEQQorCiswMC0xNy00NyAgIChoZXgpCQlUcmltYmxlCiswMDE3NDcgICAgIChiYXNlIDE2KQkJVHJpbWJsZQorCQkJCTM0NSBTVyBBdmVyeSBBdmUKKwkJCQlDb3J2YWxsaXMgT1IgOTczMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTQ4ICAgKGhleCkJCU5lb2tvcm9zIEJyYXNpbCBMdGRhCiswMDE3NDggICAgIChiYXNlIDE2KQkJTmVva29yb3MgQnJhc2lsIEx0ZGEKKwkJCQlSdWEgODYsIG51bWVybyA1MDEsIFNldG9yIFN1bAorCQkJCUdvaWFuaWEgR29pYXMgNzQwODMtMzMwCisJCQkJQlJBWklMCisKKzAwLTE3LTQ5ICAgKGhleCkJCUhZVU5EQUUgWU9ORy1PLVNBIENPLixMVEQKKzAwMTc0OSAgICAgKGJhc2UgMTYpCQlIWVVOREFFIFlPTkctTy1TQSBDTy4sTFRECisJCQkJNDQ4LTEwLCBIeXVja2phZSBCL0QgU2VvbmduYWUsIEthbmdkb25nLWd1CisJCQkJU2VvdWwgIDEzNC04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctNEEgICAoaGV4KQkJU09DT01FQworMDAxNzRBICAgICAoYmFzZSAxNikJCVNPQ09NRUMKKwkJCQlydWUgZGUgV2VzdGhvdXNlCisJCQkJQkVORkVMRCBDRURFWCAgNjcyMzUKKwkJCQlGUkFOQ0UKKworMDAtMTctNEIgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTc0QiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMTctNEMgICAoaGV4KQkJTWlsbGlwb3JlCiswMDE3NEMgICAgIChiYXNlIDE2KQkJTWlsbGlwb3JlCisJCQkJMSwgcnVlIEphY3F1ZXMgTW9ub2QKKwkJCQlSb25kLXBvaW50IGRlcyBTYW5nbGllcnMKKwkJCQlHdXlhbmNvdXJ0ICA3ODI4MAorCQkJCUZSQU5DRQorCiswMC0xNy00RCAgIChoZXgpCQlEWU5BTUlDIE5FVFdPUksgRkFDVE9SWSwgSU5DLgorMDAxNzREICAgICAoYmFzZSAxNikJCURZTkFNSUMgTkVUV09SSyBGQUNUT1JZLCBJTkMuCisJCQkJMjYyNTAgRURFTiBMQU5ESU5HIFJELgorCQkJCUhBWVdBUkQgQ0EgOTQ1NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTRFICAgKGhleCkJCVBhcmFtYS10ZWNoIENvLixMdGQuCiswMDE3NEUgICAgIChiYXNlIDE2KQkJUGFyYW1hLXRlY2ggQ28uLEx0ZC4KKwkJCQkyLTE5LTgsIFNoYXJ5bywgSGlnYXNoaS1rdQorCQkJCUZ1a3Vva2EgIDgxMi0wMDY4CisJCQkJSkFQQU4KKworMDAtMTctNEYgICAoaGV4KQkJaUNhdGNoIEluYy4KKzAwMTc0RiAgICAgKGJhc2UgMTYpCQlpQ2F0Y2ggSW5jLgorCQkJCTEwRi0yLCBOby4gMTA5LCBTZWMuIDYsIE1pbmN5dWFuIEUuIFJkLiwKKwkJCQlOZWlodSBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy01MCAgIChoZXgpCQlHU0kgR3JvdXAsIE1pY3JvRSBTeXN0ZW1zCiswMDE3NTAgICAgIChiYXNlIDE2KQkJR1NJIEdyb3VwLCBNaWNyb0UgU3lzdGVtcworCQkJCTggRXJpZSBEcml2ZQorCQkJCU5hdGljayBNQSAwMTc2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctNTEgICAoaGV4KQkJT25saW5lIENvcnBvcmF0aW9uCiswMDE3NTEgICAgIChiYXNlIDE2KQkJT25saW5lIENvcnBvcmF0aW9uCisJCQkJMjJGLTMsIE5vLiAzOTgsIEh1YW4gUGVpIFJvYWQsCisJCQkJQ2h1bmcgTGkgVGFveXVhbiAzMjAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTUyICAgKGhleCkJCURBR1MsIEluYworMDAxNzUyICAgICAoYmFzZSAxNikJCURBR1MsIEluYworCQkJCUMtNTEwLCBXb29saW0gTGlvbidzIFZhbGxleSwgMzcxLTI4LCBHYXNhbiBEb25nLCBHZXVtY2hlb24gS3UKKwkJCQlTZW91bCAgMTUzLTc4NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy01MyAgIChoZXgpCQluRm9yZSBUZWNobm9sb2d5IEluYy4KKzAwMTc1MyAgICAgKGJhc2UgMTYpCQluRm9yZSBUZWNobm9sb2d5IEluYy4KKwkJCQkxMEYsIDQxIERvbmcgWGluZyBSZCwKKwkJCQlUYWlwZWkgVGFpcGVpIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctNTQgICAoaGV4KQkJQXJraW5vIEhpVE9QIENvcnBvcmF0aW9uIExpbWl0ZWQKKzAwMTc1NCAgICAgKGJhc2UgMTYpCQlBcmtpbm8gSGlUT1AgQ29ycG9yYXRpb24gTGltaXRlZAorCQkJCTNGLiwgTm8uOCwgU2luZ2h1YSBSZC4KKwkJCQlLd2VpIFNoYW4gSW5kLiBQYXJrCisJCQkJVGFveXVhbiBDaXR5IFRhb3l1YW4gQ291bnR5ICAzMzA2OCwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTU1ICAgKGhleCkJCUdFIFNlY3VyaXR5CiswMDE3NTUgICAgIChiYXNlIDE2KQkJR0UgU2VjdXJpdHkKKwkJCQkxMjM0NSBTVyBMZXZldG9uIERyaXZlCisJCQkJVHVhbGF0aW4gT1IgOTcwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTU2ICAgKGhleCkJCVZpbmNpIExhYnMgT3kKKzAwMTc1NiAgICAgKGJhc2UgMTYpCQlWaW5jaSBMYWJzIE95CisJCQkJRmlubGF5c29uaW5rdWphIDIxIEEKKwkJCQlUYW1wZXJlIExhbnNpLVN1b21pIDMzMjEwCisJCQkJRklOTEFORAorCiswMC0xNy01NyAgIChoZXgpCQlSSVggVEVDSE5PTE9HWSBMSU1JVEVECiswMDE3NTcgICAgIChiYXNlIDE2KQkJUklYIFRFQ0hOT0xPR1kgTElNSVRFRAorCQkJCTE3IERBSSBXQU5HIFNUUkVFVAorCQkJCVRBSSBQTyBJTkRVU1RSSUFMIEVTVEFURQorCQkJCVRBSSBQTyBORVcgVEVSUklUT1JJRVMgCisJCQkJSE9ORyBLT05HCisKKzAwLTE3LTU4ICAgKGhleCkJCVRocnVWaXNpb24gTHRkCiswMDE3NTggICAgIChiYXNlIDE2KQkJVGhydVZpc2lvbiBMdGQKKwkJCQlDZW50cmFsIDEyNywgTm8uMTgKKwkJCQlNaWx0b24gUGFyaworCQkJCUFiaW5nZG9uIE94Zm9yZHNoaXJlIE9YMTQgNFNBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctNTkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNzU5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctNUEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNzVBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctNUIgICAoaGV4KQkJQUNTIFNvbHV0aW9ucyBTd2l0emVybGFuZCBMdGQuCiswMDE3NUIgICAgIChiYXNlIDE2KQkJQUNTIFNvbHV0aW9ucyBTd2l0emVybGFuZCBMdGQuCisJCQkJRnJhbmtlbnN0cmFzc2UgNzAKKwkJCQlCZXJuLSBCdWVtcGxpeiAgMzAxOAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE3LTVDICAgKGhleCkJCVNIQVJQIENPUlBPUkFUSU9OCiswMDE3NUMgICAgIChiYXNlIDE2KQkJU0hBUlAgQ09SUE9SQVRJT04KKwkJCQkyMi0yMiwgTkFHQUlLRS1DSE8sCisJCQkJQUJFTk8tS1UKKwkJCQlPU0FLQSAgNTQ1LTg1MjIKKwkJCQlKQVBBTgorCiswMC0xNy01RCAgIChoZXgpCQlEb25nc2VvIHN5c3RlbS4KKzAwMTc1RCAgICAgKGJhc2UgMTYpCQlEb25nc2VvIHN5c3RlbS4KKwkJCQk5NzQtMjEgTWFuc3UtZG9uZyBOYW1kb25nLWd1CisJCQkJSW5jaGVvbiBJbi1DaGVvbiA0MDUtODY1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTVFICAgKGhleCkJCVplZC0zCiswMDE3NUUgICAgIChiYXNlIDE2KQkJWmVkLTMKKwkJCQk1MDEgVmFsbGV5IFdheQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy01RiAgIChoZXgpCQlYRU5PTElOSyBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMTc1RiAgICAgKGJhc2UgMTYpCQlYRU5PTElOSyBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQkybmQgRmwuLCBKdW5neW91IEIvRCA3OTctMjIKKwkJCQlZZW9rc2FtLWRvbmcgR2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUtOTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTYwICAgKGhleCkJCU5haXRvIERlbnNlaSBNYWNoaWRhIE1GRy5DTy4sTFRECiswMDE3NjAgICAgIChiYXNlIDE2KQkJTmFpdG8gRGVuc2VpIE1hY2hpZGEgTUZHLkNPLixMVEQKKwkJCQkyLTE3LTI4IEZ1Y2hpbm9iZQorCQkJCVNhZ2FtaWhhcmEgS2FuYWdhd2EgMjI5LTAwMDYKKwkJCQlKQVBBTgorCiswMC0xNy02MSAgIChoZXgpCQlaS1NvZnR3YXJlIEluYy4KKzAwMTc2MSAgICAgKGJhc2UgMTYpCQlaS1NvZnR3YXJlIEluYy4KKwkJCQlYaW53ZWl6YWksIEJhbnRpYW4sIExvbmdnYW5nIGRpc3RyaWN0LFNoZW56aGVuIENoaW5hIDUxODEyOQorCQkJCUNISU5BCisKKzAwLTE3LTYyICAgKGhleCkJCVNvbGFyIFRlY2hub2xvZ3ksIEluYy4KKzAwMTc2MiAgICAgKGJhc2UgMTYpCQlTb2xhciBUZWNobm9sb2d5LCBJbmMuCisJCQkJNzYyMCBDZXRyb25pYSBSb2FkCisJCQkJQWxsZW50b3duIFBBIDE4MTA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy02MyAgIChoZXgpCQlFc3NlbnRpYSBTLnAuQS4KKzAwMTc2MyAgICAgKGJhc2UgMTYpCQlFc3NlbnRpYSBTLnAuQS4KKwkJCQlWaWEgRy5CLiBWaWNvLCAyOQorCQkJCUNlbGxhIChSRSkgUmVnZ2lvIEVtaWxpYSA0MjA0MAorCQkJCUlUQUxZCisKKzAwLTE3LTY0ICAgKGhleCkJCUFUTWVkaWEgR21iSAorMDAxNzY0ICAgICAoYmFzZSAxNikJCUFUTWVkaWEgR21iSAorCQkJCVN0dWhsc2F0emVuaGF1c3dlZyA2OQorCQkJCVNhYXJicnVlY2tlbiBTYWFybGFuZCA2NjEyMworCQkJCUdFUk1BTlkKKworMDAtMTctNjUgICAoaGV4KQkJTm9ydGVsCiswMDE3NjUgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTE3LTY2ICAgKGhleCkJCUFjY2Vuc2UgVGVjaG5vbG9neSwgSW5jLgorMDAxNzY2ICAgICAoYmFzZSAxNikJCUFjY2Vuc2UgVGVjaG5vbG9neSwgSW5jLgorCQkJCTM1IFRhbnN1bWFjaGkKKwkJCQlTaGluanl1a3Uta3UgVG9reW8gMTYyMDgzMworCQkJCUpBUEFOCisKKzAwLTE3LTY3ICAgKGhleCkJCUVhcmZvcmNlIEFTCiswMDE3NjcgICAgIChiYXNlIDE2KQkJRWFyZm9yY2UgQVMKKwkJCQlQLk8uQm94IDQKKwkJCQlCcnluZSAgNDM0OQorCQkJCU5PUldBWQorCiswMC0xNy02OCAgIChoZXgpCQlaaW53YXZlIEx0ZAorMDAxNzY4ICAgICAoYmFzZSAxNikJCVppbndhdmUgTHRkCisJCQkJWmlud2F2ZSBMdGQsIEhhcnN0b24gTWlsbAorCQkJCUhhcnN0b24KKwkJCQlDYW1icmlkZ2UgQ2FtYnJpZGdlc2hpcmUgQ0IyIDVHRworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE3LTY5ICAgKGhleCkJCUN5bXBob25peCBDb3JwCiswMDE3NjkgICAgIChiYXNlIDE2KQkJQ3ltcGhvbml4IENvcnAKKwkJCQk4ODcxIFMuIFNhbmR5IFBhcmt3YXksIFN1aXRlIDE1MAorCQkJCVNhbmR5IFVUIDg0MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy02QSAgIChoZXgpCQlBdmFnbyBUZWNobm9sb2dpZXMKKzAwMTc2QSAgICAgKGJhc2UgMTYpCQlBdmFnbyBUZWNobm9sb2dpZXMKKwkJCQkzNTAgV2VzdCBUcmltYmxlIFJkCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTZCICAgKGhleCkJCUtpeW9uLCBJbmMuCiswMDE3NkIgICAgIChiYXNlIDE2KQkJS2l5b24sIEluYy4KKwkJCQk5MzgxIEp1ZGljaWFsIERyaXZlCisJCQkJU3VpdGUgMTYwCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy02QyAgIChoZXgpCQlQaXZvdDMsIEluYy4KKzAwMTc2QyAgICAgKGJhc2UgMTYpCQlQaXZvdDMsIEluYy4KKwkJCQk2NjA1IEN5cHJlc3N3b29kIERyaXZlLCBTdGUgMzUwCisJCQkJU3ByaW5nIFRYIDc3Mzc5LTc3NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTZEICAgKGhleCkJCUNPUkUgQ09SUE9SQVRJT04KKzAwMTc2RCAgICAgKGJhc2UgMTYpCQlDT1JFIENPUlBPUkFUSU9OCisJCQkJMS0yMi0zLCBTYW5nZW5qYXlhLAorCQkJCVNldGFnYXlhLWt1IFRva3lvLXRvIDE1NC04NTUyCisJCQkJSkFQQU4KKworMDAtMTctNkUgICAoaGV4KQkJRFVDQVRJIFNJU1RFTUkKKzAwMTc2RSAgICAgKGJhc2UgMTYpCQlEVUNBVEkgU0lTVEVNSQorCQkJCVZJQSBNQVJDTyBFTUlMSU8gTEVQSURPLCAxODIKKwkJCQlCT0xPR05BICA0MDEzMgorCQkJCUlUQUxZCisKKzAwLTE3LTZGICAgKGhleCkJCVBBWCBDb21wdXRlciBUZWNobm9sb2d5KFNoZW56aGVuKSBMdGQuCiswMDE3NkYgICAgIChiYXNlIDE2KQkJUEFYIENvbXB1dGVyIFRlY2hub2xvZ3koU2hlbnpoZW4pIEx0ZC4KKwkJCQk0L0YsIE5vLjMgQnVpbGRpbmcsIFNvZnR3YXJlIFBhcmssIFNlY29uZCBDZW50cmFsIFNjaWVuY2UtVGVjaCBSb2FkLCBIaWdoLVRlY2gKKwkJCQlpbmR1c3RyaWFsIFBhcmsKKwkJCQlTaGVuemhlbiBHdWFuZ0RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMTctNzAgICAoaGV4KQkJQXJ0aSBJbmR1c3RyaWFsIEVsZWN0cm9uaWNzIEx0ZC4KKzAwMTc3MCAgICAgKGJhc2UgMTYpCQlBcnRpIEluZHVzdHJpYWwgRWxlY3Ryb25pY3MgTHRkLgorCQkJCUdlci1TYW4gU2l0ZXNpLCA2NTcuIFNva2FrCisJCQkJTm86IDgwLCBFcmdhemkKKwkJCQlBbmthcmEgVFIgMDYzNzAKKwkJCQlUVVJLRVkKKworMDAtMTctNzEgICAoaGV4KQkJQVBEIENvbW11bmljYXRpb25zIEx0ZAorMDAxNzcxICAgICAoYmFzZSAxNikJCUFQRCBDb21tdW5pY2F0aW9ucyBMdGQKKwkJCQlOZXdsYW5kcyBDZW50cmUKKwkJCQlJbmdsZW1pcmUgTGFuZQorCQkJCUhVTEwgRWFzdCBZb3Jrc2hpcmUgSFU2IDdUUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE3LTcyICAgKGhleCkJCUFTVFJPIFN0cm9iZWwgS29tbXVuaWthdGlvbnNzeXN0ZW1lIEdtYkgKKzAwMTc3MiAgICAgKGJhc2UgMTYpCQlBU1RSTyBTdHJvYmVsIEtvbW11bmlrYXRpb25zc3lzdGVtZSBHbWJICisJCQkJT2xlZmFudCAxLTMKKwkJCQlCZXJnaXNjaCBHbGFkYmFjaCBOUlcgNTE0MjcKKwkJCQlHRVJNQU5ZCisKKzAwLTE3LTczICAgKGhleCkJCUxha2V0dW5lIFRlY2hub2xvZ2llcyBDby4gTHRkCiswMDE3NzMgICAgIChiYXNlIDE2KQkJTGFrZXR1bmUgVGVjaG5vbG9naWVzIENvLiBMdGQKKwkJCQlOby4gMzggWmlqaW5naHVhIFJkLiBXZXN0bGFrZSBEaXN0cmljdAorCQkJCUd1ZGFuZyBJbmR1c3RyaWFsIFpvbmUgQnVpbGRpbmcgMTEsIDVGCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEzCisJCQkJQ0hJTkEKKworMDAtMTctNzQgICAoaGV4KQkJRWxlc3RhIEdtYkgKKzAwMTc3NCAgICAgKGJhc2UgMTYpCQlFbGVzdGEgR21iSAorCQkJCUdvdHRsaWViIERhaW1sZXIgU3RyYXNzZSAxCisJCQkJS29uc3RhbnogIDc4NDY3CisJCQkJR0VSTUFOWQorCiswMC0xNy03NSAgIChoZXgpCQlUVEUgR2VybWFueSBHbWJICiswMDE3NzUgICAgIChiYXNlIDE2KQkJVFRFIEdlcm1hbnkgR21iSAorCQkJCUhlcm1hbm4tU2Nod2VyLVN0ci4gMworCQkJCVZpbGxpbmdlbi1TY2h3ZW5uaW5nZW4gQmFkZW4tV3VydHRlbWJlcmcgNzgwNDgKKwkJCQlHRVJNQU5ZCisKKzAwLTE3LTc2ICAgKGhleCkJCU1lc28gU2NhbGUgRGlhZ25vc3RpY3MsIExMQworMDAxNzc2ICAgICAoYmFzZSAxNikJCU1lc28gU2NhbGUgRGlhZ25vc3RpY3MsIExMQworCQkJCTkyMzggR2FpdGhlciBSZC4KKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTc3ICAgKGhleCkJCU9ic2lkaWFuIFJlc2VhcmNoIENvcnBvcmF0aW9uCiswMDE3NzcgICAgIChiYXNlIDE2KQkJT2JzaWRpYW4gUmVzZWFyY2ggQ29ycG9yYXRpb24KKwkJCQlFZG1vbnRvbiBSZXNlYXJjaCBQYXJrCisJCQkJU3VpdGUgMTA2ICAgOTY1MC0yMCBBdmUKKwkJCQlFZG1vbnRvbiBBbGJlcnRhIFQ2TjFHMQorCQkJCUNBTkFEQQorCiswMC0xNy03OCAgIChoZXgpCQlDZW50cmFsIE11c2ljIENvLgorMDAxNzc4ICAgICAoYmFzZSAxNikJCUNlbnRyYWwgTXVzaWMgQ28uCisJCQkJMDcxMS0wNzEyIFRvd2VyIEQsIFNPSE8gTmV3IFRvd24KKwkJCQlOby4gODggSmlhbmd1byBSb2FkLCBDaGFveWFuZyBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDAyMgorCQkJCUNISU5BCisKKzAwLTE3LTc5ICAgKGhleCkJCVF1aWNrVGVsCiswMDE3NzkgICAgIChiYXNlIDE2KQkJUXVpY2tUZWwKKwkJCQlDb3JuaXNoZSBFbC1OaWxlLCBNYWFzYXJhCisJCQkJQ2Fpcm8gIDExNzQzCisJCQkJRUdZUFQKKworMDAtMTctN0EgICAoaGV4KQkJQVNTQSBBQkxPWSBBQgorMDAxNzdBICAgICAoYmFzZSAxNikJCUFTU0EgQUJMT1kgQUIKKwkJCQlUaGVyZXMgU3ZlbnNzb25zIGdhdGEgMTUKKwkJCQk0MTc1NSBHb3RlYm9yZworCQkJCUdvdGVib3JnICA0MTc1NQorCQkJCVNXRURFTgorCiswMC0xNy03QiAgIChoZXgpCQlBemFsZWEgTmV0d29ya3MgaW5jCiswMDE3N0IgICAgIChiYXNlIDE2KQkJQXphbGVhIE5ldHdvcmtzIGluYworCQkJCTY3MyBTIE1pbHBpdGFzIEJsdmQKKwkJCQlTdWl0ZSAxMDUKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctN0MgICAoaGV4KQkJU21hcnRsaW5rIE5ldHdvcmsgU3lzdGVtcyBMaW1pdGVkCiswMDE3N0MgICAgIChiYXNlIDE2KQkJU21hcnRsaW5rIE5ldHdvcmsgU3lzdGVtcyBMaW1pdGVkCisJCQkJTC03LCBWZXJuYSBFbGVjdHJvbmljIGNpdHkKKwkJCQlWZXJuYQorCQkJCU5hZ29hIEdvYSA0MDMgNzIyCisJCQkJSU5ESUEKKworMDAtMTctN0QgICAoaGV4KQkJSURUIEludGVybmF0aW9uYWwgTGltaXRlZAorMDAxNzdEICAgICAoYmFzZSAxNikJCUlEVCBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKwkJCQlCbG9jayBDLCA5L0YsIEthaXNlciBFc3RhdGUsIFBoYXNlIEkKKwkJCQk0MSBNYW4gWXVlIFN0cmVldCwgSHVuZ2hvbSwgS293bG9vbgorCQkJCUhPTkcgS09ORworCiswMC0xNy03RSAgIChoZXgpCQlNZXNoY29tIFRlY2hub2xvZ2llcyBJbmMuCiswMDE3N0UgICAgIChiYXNlIDE2KQkJTWVzaGNvbSBUZWNobm9sb2dpZXMgSW5jLgorCQkJCU1lcml0dWxsaW5rYXR1IDEgQworCQkJCUhlbHNpbmtpICAwMDE3MAorCQkJCUZJTkxBTkQKKworMDAtMTctN0YgICAoaGV4KQkJV29ybGRzbWFydCBSZXRlY2gKKzAwMTc3RiAgICAgKGJhc2UgMTYpCQlXb3JsZHNtYXJ0IFJldGVjaAorCQkJCTIzIEhpLVRlY2ggQ291cnQKKwkJCQlFaWdodCBNaWxlIFBsYWlucyBRTEQgNDExMworCQkJCUFVU1RSQUxJQQorCiswMC0xNy04MCAgIChoZXgpCQlBcHBsaWVkIEJpb3N5c3RlbXMgQi5WLgorMDAxNzgwICAgICAoYmFzZSAxNikJCUFwcGxpZWQgQmlvc3lzdGVtcyBCLlYuCisJCQkJQmxrIDMzLCBNYXJzaWxpbmcgSW5kdXN0cmlhbCBFc3RhdGUgUm9hZCAzLAorCQkJCSMwNS0wMworCQkJCTczOTI1NgorCQkJCVNJTkdBUE9SRQorCiswMC0xNy04MSAgIChoZXgpCQlHcmV5c3RvbmUgRGF0YSBTeXN0ZW0sIEluYy4KKzAwMTc4MSAgICAgKGJhc2UgMTYpCQlHcmV5c3RvbmUgRGF0YSBTeXN0ZW0sIEluYy4KKwkJCQk0MDgwMCBFbmN5Y29wZWRpYSBDaXJjbGUKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy04MiAgIChoZXgpCQlMb0Jlbm4gSW5jLgorMDAxNzgyICAgICAoYmFzZSAxNikJCUxvQmVubiBJbmMuCisJCQkJMTUwIEthdGltYXZpayBSb2FkCisJCQkJU3VpdGUgMjAyCisJCQkJT3R0YXdhIE9udGFyaW8gSzJMIDJOMgorCQkJCUNBTkFEQQorCiswMC0xNy04MyAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxNzgzICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy04NCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxNzg0ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4uIEh3eSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctODUgICAoaGV4KQkJU3BhcnIgRWxlY3Ryb25pY3MgTHRkCiswMDE3ODUgICAgIChiYXNlIDE2KQkJU3BhcnIgRWxlY3Ryb25pY3MgTHRkCisJCQkJU3BhcnIgRWxlY3Ryb25pY3MgTHRkCisJCQkJNDMgSE1UIE1haW4gUm9hZCBNYXRoaWtlcmUKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MDA1NAorCQkJCUlORElBCisKKzAwLTE3LTg2ICAgKGhleCkJCXdpc2VtYmVkCiswMDE3ODYgICAgIChiYXNlIDE2KQkJd2lzZW1iZWQKKwkJCQk4MDgsIGhhbnNpbiBJVCB0b3dlciwgMjM1IGd1cm8zLWRvbmcsIGd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTc2OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy04NyAgIChoZXgpCQlCcm90aGVyLCBCcm90aGVyICYgU29ucyBBcFMKKzAwMTc4NyAgICAgKGJhc2UgMTYpCQlCcm90aGVyLCBCcm90aGVyICYgU29ucyBBcFMKKwkJCQlWZWQgQW1hZ2VyYmFuZW4gOQorCQkJCUNvcGVuaGFnZW4gUyAgREstMjMwMAorCQkJCURFTk1BUksKKworMDAtMTctODggICAoaGV4KQkJUGhpbGlwcyBMaWdodGluZyBCVgorMDAxNzg4ICAgICAoYmFzZSAxNikJCVBoaWxpcHMgTGlnaHRpbmcgQlYKKwkJCQlNYXRoaWxkZWxhYW4gMQorCQkJCUVpbmRob3ZlbiBOb29yZCBCcmFiYW50IDU2MTEgQkQKKwkJCQlORVRIRVJMQU5EUworCiswMC0xNy04OSAgIChoZXgpCQlaZW5pdHJvbiBDb3Jwb3JhdGlvbgorMDAxNzg5ICAgICAoYmFzZSAxNikJCVplbml0cm9uIENvcnBvcmF0aW9uCisJCQkJTm8uIDgsIExhbmUgMjUwLCBTaW5odSAybmQgUmQuLCBOZWlodSBEaXN0cmljdCwKKwkJCQlUYWlwZWkgIDExNDk0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy04QSAgIChoZXgpCQlEQVJUUyBURUNITk9MT0dJRVMgQ09SUC4KKzAwMTc4QSAgICAgKGJhc2UgMTYpCQlEQVJUUyBURUNITk9MT0dJRVMgQ09SUC4KKwkJCQkyRixOby4xMTksQ2hpZW4gS2FuZyBSZC4sCisJCQkJQ2h1bmctSG8gVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctOEIgICAoaGV4KQkJVGVsZWR5bmUgVGVjaG5vbG9naWVzIEluY29ycG9yYXRlZAorMDAxNzhCICAgICAoYmFzZSAxNikJCVRlbGVkeW5lIFRlY2hub2xvZ2llcyBJbmNvcnBvcmF0ZWQKKwkJCQkxMjMzMyBXZXN0IE9seW1waWMgQmx2ZAorCQkJCUxvcyBBbmdlbGVzIENBIDkwMDY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy04QyAgIChoZXgpCQlJbmRlcGVuZGVudCBXaXRuZXNzLCBJbmMKKzAwMTc4QyAgICAgKGJhc2UgMTYpCQlJbmRlcGVuZGVudCBXaXRuZXNzLCBJbmMKKwkJCQkxNTE1IFdlc3QgMjIwMCBTb3V0aAorCQkJCVN1aXRlIEUKKwkJCQlTYWx0IExha2UgQ2l0eSBVVCA4NDExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctOEQgICAoaGV4KQkJQ2hlY2twb2ludCBTeXN0ZW1zLCBJbmMuCiswMDE3OEQgICAgIChiYXNlIDE2KQkJQ2hlY2twb2ludCBTeXN0ZW1zLCBJbmMuCisJCQkJMTAxIFdvbGYgRHJpdmUKKwkJCQlUaG9yb2ZhcmUgTkogMDgwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LThFICAgKGhleCkJCUd1bm5lYm8gQ2FzaCBBdXRvbWF0aW9uIEFCCiswMDE3OEUgICAgIChiYXNlIDE2KQkJR3VubmVibyBDYXNoIEF1dG9tYXRpb24gQUIKKwkJCQlGYWJyaWtzZ2F0YW4gMTAKKwkJCQlHb3RlYm9yZyAgNDAyIDI3CisJCQkJU1dFREVOCisKKzAwLTE3LThGICAgKGhleCkJCU5JTkdCTyBZSURPTkcgRUxFQ1RST05JQyBDTy4sTFRELgorMDAxNzhGICAgICAoYmFzZSAxNikJCU5JTkdCTyBZSURPTkcgRUxFQ1RST05JQyBDTy4sTFRELgorCQkJCU5vLjY1IFNpbWluZyBFYXN0IFJkCisJCQkJWXV5YW8gQ2l0eSwgWmhlamlhbmcgUHJvdmluY2UgWmhlamlhbmcgUHJvdmluY2UgQ2hpbmEgUC5DIDMxNTQwMAorCQkJCUNISU5BCisKKzAwLTE3LTkwICAgKGhleCkJCUhZVU5EQUkgRElHSVRFQ0ggQ28sIEx0ZC4KKzAwMTc5MCAgICAgKGJhc2UgMTYpCQlIWVVOREFJIERJR0lURUNIIENvLCBMdGQuCisJCQkJMTN0aCBGbCwgQ2hvdW5nLUppbiBCbGRnLCA1My01CisJCQkJV29uaHlvLXJvIDNHYSwgWW9uZ3Nhbi1HdQorCQkJCVNlb3VsICAxNDAtNzE5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTkxICAgKGhleCkJCUxpblRlY2ggR21iSAorMDAxNzkxICAgICAoYmFzZSAxNikJCUxpblRlY2ggR21iSAorCQkJCUZyaWVkcmljaC1FbmdlbHMtU3RyLiAzNQorCQkJCUJlcmxpbiAgMTMxNTYKKwkJCQlHRVJNQU5ZCisKKzAwLTE3LTkyICAgKGhleCkJCUZhbGNvbSBXaXJlbGVzcyBDb211bmljYXRpb25zIEdtYmgKKzAwMTc5MiAgICAgKGJhc2UgMTYpCQlGYWxjb20gV2lyZWxlc3MgQ29tdW5pY2F0aW9ucyBHbWJoCisJCQkJR2V3ZXJiZXJpbmcgNgorCQkJCUxhbmdld2llc2VuIFRodXJpbmdpYSA5ODcwNAorCQkJCUdFUk1BTlkKKworMDAtMTctOTMgICAoaGV4KQkJVGlnaSBDb3Jwb3JhdGlvbgorMDAxNzkzICAgICAoYmFzZSAxNikJCVRpZ2kgQ29ycG9yYXRpb24KKwkJCQkyMDcwIENoYWluIEJyaWRnZSByb2FkCisJCQkJU3VpdGUgRy0xMDAKKwkJCQlWaWVubmEgVmEgMjIxODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTk0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTc5NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTk1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTc5NSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTk2ICAgKGhleCkJCVJpdHRtZXllciBBRworMDAxNzk2ICAgICAoYmFzZSAxNikJCVJpdHRtZXllciBBRworCQkJCUlud2lsZXJyaWVkc3RyYXNzZSA1NworCQkJCVBvc3RmYWNoIDQ2NAorCQkJCUJhYXIgWkcgQ0gtNjM0MQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE3LTk3ICAgKGhleCkJCVRlbHN5IEVsZXR0cm9uaWNhIFMucC5BLgorMDAxNzk3ICAgICAoYmFzZSAxNikJCVRlbHN5IEVsZXR0cm9uaWNhIFMucC5BLgorCQkJCUNvcnNvIFN2aXp6ZXJhIDE4NQorCQkJCVRvcmlubyAgMTAxNDkKKwkJCQlJVEFMWQorCiswMC0xNy05OCAgIChoZXgpCQlBem9uaWMgVGVjaG5vbG9neSBDby4sIExURAorMDAxNzk4ICAgICAoYmFzZSAxNikJCUF6b25pYyBUZWNobm9sb2d5IENvLiwgTFRECisJCQkJMTVGLTMsIE5vLiAxNjMsIFNlYy4sIDEgS2VlbHVuZyBSZC4KKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctOTkgICAoaGV4KQkJU21hclRpcmUgU3lzdGVtcyBJbmMuCiswMDE3OTkgICAgIChiYXNlIDE2KQkJU21hclRpcmUgU3lzdGVtcyBJbmMuCisJCQkJU3VpdGUgMTUwCisJCQkJMTMxNTEgVmFuaWVyIFBsYWNlCisJCQkJUmljaG1vbmQgQkMgVjZWIDJKMQorCQkJCUNBTkFEQQorCiswMC0xNy05QSAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzAwMTc5QSAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOby4gMjg5LCBTaW5odSAzcmQgUmQuLCBOZWlodSBEaXN0cmljdCwKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctOUIgICAoaGV4KQkJQ2hhbnQgU2luY2VyZSBDTy4sIExURC4KKzAwMTc5QiAgICAgKGJhc2UgMTYpCQlDaGFudCBTaW5jZXJlIENPLiwgTFRELgorCQkJCTdGLTIsTk8uMTg4LFNlYyAzLFRhIFR1bmcgUm9vZCwKKwkJCQlIc2kgQ2hpaCBDaXR5IFRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTlDICAgKGhleCkJCURFUFJBRyBTQ0hVTFogR01CSCB1LiBDTy4KKzAwMTc5QyAgICAgKGJhc2UgMTYpCQlERVBSQUcgU0NIVUxaIEdNQkggdS4gQ08uCisJCQkJS3VyZnVyc3RlbnJpbmcgMTIuMTgKKwkJCQlBbWJlcmcgQmF5ZXJuIDkyMjI0CisJCQkJR0VSTUFOWQorCiswMC0xNy05RCAgIChoZXgpCQlLZWxtYW4gTGltaXRlZAorMDAxNzlEICAgICAoYmFzZSAxNikJCUtlbG1hbiBMaW1pdGVkCisJCQkJUmF0aGRvd24gQ2xvc2UKKwkJCQlMaXNzdWUgRWFzdCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCUxpc2J1cm4gQ28uIEFudHJpbSBCVDI4IDJSQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE3LTlFICAgKGhleCkJCVNpcml0IEluYworMDAxNzlFICAgICAoYmFzZSAxNikJCVNpcml0IEluYworCQkJCTI1MjUgTWVyaWRpYW4gUGFya3dheQorCQkJCVN1aXRlIDYwCisJCQkJRHVyaGFtIE5DIDI3NzEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy05RiAgIChoZXgpCQlBcHJpY29ybgorMDAxNzlGICAgICAoYmFzZSAxNikJCUFwcmljb3JuCisJCQkJMTIxOTEgS2lya2hhbSBSRAorCQkJCVBvd2F5IENhbGlmb3JuaWEgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUEwICAgKGhleCkJCVJvYm9UZWNoIHNybAorMDAxN0EwICAgICAoYmFzZSAxNikJCVJvYm9UZWNoIHNybAorCQkJCVZpYSBNYXp6aW5pIDgyCisJCQkJU2FyemFuYSAoU1ApICBJLTE5MDM4CisJCQkJSVRBTFkKKworMDAtMTctQTEgICAoaGV4KQkJM3NvZnQgaW5jLgorMDAxN0ExICAgICAoYmFzZSAxNikJCTNzb2Z0IGluYy4KKwkJCQlzaGlueW91bmcgYmxkZyA0ZiwgY2h1bmdkYW0tZG9uZywgZ2FuZ25hbS1ndQorCQkJCXNlb3VsICAxMzUtMTAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUEyICAgKGhleCkJCUNhbXJpdm94IEx0ZC4KKzAwMTdBMiAgICAgKGJhc2UgMTYpCQlDYW1yaXZveCBMdGQuCisJCQkJVGhlIEplZmZyZXlzIEJ1aWxkaW5nCisJCQkJQ293bGV5IFJvYWQKKwkJCQlDYW1icmlkZ2UgQ2FtYnJpZGdlc2hpcmUgQ0I0IDBXUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE3LUEzICAgKGhleCkJCU1JWCBzLnIubC4KKzAwMTdBMyAgICAgKGJhc2UgMTYpCQlNSVggcy5yLmwuCisJCQkJVmlhIENhbGRlcmEsIDIxCisJCQkJTWlsYW4gIEktMjAxNTMKKwkJCQlJVEFMWQorCiswMC0xNy1BNCAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMTdBNCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctQTUgICAoaGV4KQkJUmFsaW5rIFRlY2hub2xvZ3kgQ29ycAorMDAxN0E1ICAgICAoYmFzZSAxNikJCVJhbGluayBUZWNobm9sb2d5IENvcnAKKwkJCQlTdWl0ZSAyMTUsIEJsZGcgNTMuIDE5NS02MSBTZWMuNCwgQ2h1bmcgSHNpbmcgUmQsCisJCQkJQ2h1dHVuZyBIc2luY2h1IDMxMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctQTYgICAoaGV4KQkJWU9TSU4gRUxFQ1RST05JQ1MgQ08uLCBMVEQuCiswMDE3QTYgICAgIChiYXNlIDE2KQkJWU9TSU4gRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJNkYtMiwgTm8uMTcsIExhbiAxNzQsIFNoaW4tTWluZyBSb2FkCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LUE3ICAgKGhleCkJCU1vYmlsZSBDb21wdXRpbmcgUHJvbW90aW9uIENvbnNvcnRpdW0KKzAwMTdBNyAgICAgKGJhc2UgMTYpCQlNb2JpbGUgQ29tcHV0aW5nIFByb21vdGlvbiBDb25zb3J0aXVtCisJCQkJMy01LTEyIFNoaWJhLUtvZW4KKwkJCQlNaW5hdG8ta3UKKwkJCQlUb2t5byAgMTA1LTAwMTEKKwkJCQlKQVBBTgorCiswMC0xNy1BOCAgIChoZXgpCQlFRE0gQ29ycG9yYXRpb24KKzAwMTdBOCAgICAgKGJhc2UgMTYpCQlFRE0gQ29ycG9yYXRpb24KKwkJCQkzLTUtMiBJdGFiYXNoaQorCQkJCUl0YWJhc2hpLWt1IFRva3lvIDE3My0wMDA0CisJCQkJSkFQQU4KKworMDAtMTctQTkgICAoaGV4KQkJU2VudGl2aXNpb24KKzAwMTdBOSAgICAgKGJhc2UgMTYpCQlTZW50aXZpc2lvbgorCQkJCU1hcnluYXJza2EgMTlhCisJCQkJV2Fyc2F3IE1hem93aWVja2llIDAyLTY3NAorCQkJCVBPTEFORAorCiswMC0xNy1BQSAgIChoZXgpCQllbGFiLWV4cGVyaWVuY2UgaW5jLgorMDAxN0FBICAgICAoYmFzZSAxNikJCWVsYWItZXhwZXJpZW5jZSBpbmMuCisJCQkJMTA0IEFub3RzdXBpYQorCQkJCUFub3RzdWRhaSA0LTYtMQorCQkJCVRzdS1zaGkgbWllIHByZWZlY3R1cmUgNTE0LTAxMzEKKwkJCQlKQVBBTgorCiswMC0xNy1BQiAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMTdBQiAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xNy1BQyAgIChoZXgpCQlPJ05laWwgUHJvZHVjdCBEZXZlbG9wbWVudCBJbmMuCiswMDE3QUMgICAgIChiYXNlIDE2KQkJTydOZWlsIFByb2R1Y3QgRGV2ZWxvcG1lbnQgSW5jLgorCQkJCTggTWFzb24KKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUFEICAgKGhleCkJCUFjZU5ldCBDb3Jwb3JhdGlvbgorMDAxN0FEICAgICAoYmFzZSAxNikJCUFjZU5ldCBDb3Jwb3JhdGlvbgorCQkJCTdGLTQsIE5vLjE0NiwgV2VuLVNoaW4gUm9hZAorCQkJCUd1ZWlzaGFuIFRBT1lVQU4gCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy1BRSAgIChoZXgpCQlHQUktVHJvbmljcworMDAxN0FFICAgICAoYmFzZSAxNikJCUdBSS1Ucm9uaWNzCisJCQkJQnJ1bmVsIERyaXZlCisJCQkJU3RyZXR0b24gUGFyaworCQkJCUJ1cnRvbiBVcG9uIFRyZW50IFN0YWZmb3Jkc2hpcmUgREUxMyAwQloKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNy1BRiAgIChoZXgpCQlFbmVybWV0CiswMDE3QUYgICAgIChiYXNlIDE2KQkJRW5lcm1ldAorCQkJCVNhbHZlc2VuaW50aWUKKwkJCQlKeXNrYSAgRklOLTQwNDIwCisJCQkJRklOTEFORAorCiswMC0xNy1CMCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxN0IwICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xNy1CMSAgIChoZXgpCQlBQ0lTVCBNZWRpY2FsIFN5c3RlbXMsIEluYy4KKzAwMTdCMSAgICAgKGJhc2UgMTYpCQlBQ0lTVCBNZWRpY2FsIFN5c3RlbXMsIEluYy4KKwkJCQk3NDUwIEZseWluZyBDbG91ZCBEcml2ZQorCQkJCVN1aXRlIDE1MAorCQkJCUVkZW4gUHJhaXJpZSBNTiA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctQjIgICAoaGV4KQkJU0sgVGVsZXN5cworMDAxN0IyICAgICAoYmFzZSAxNikJCVNLIFRlbGVzeXMKKwkJCQk0RiwgS3l1bmdkb25nIGJsZGcsIDQtNCwgU3VuYWUtRG9uZywgUHVuZGFuZy1HdQorCQkJCVN1bmduYW0tQ2l0eSBLdW5nZ2ktRG8gNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy1CMyAgIChoZXgpCQlBZnRlayBJbmZvc3lzIExpbWl0ZWQKKzAwMTdCMyAgICAgKGJhc2UgMTYpCQlBZnRlayBJbmZvc3lzIExpbWl0ZWQKKwkJCQlQYXdhbiBDb21wbGV4CisJCQkJU2hlZWxhIFZpaGFyIENvbG9ueQorCQkJCVB1bmUgTWFoYXJhc2h0cmEgNDExIDAzOAorCQkJCUlORElBCisKKzAwLTE3LUI0ICAgKGhleCkJCVJlbW90ZSBTZWN1cml0eSBTeXN0ZW1zLCBMTEMKKzAwMTdCNCAgICAgKGJhc2UgMTYpCQlSZW1vdGUgU2VjdXJpdHkgU3lzdGVtcywgTExDCisJCQkJNDgwNiBVcHBlciBCcmFuZG9uIFBsYWNlCisJCQkJTWFyaWV0dGEgR2VvcmdpYSAzMDA2OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctQjUgICAoaGV4KQkJUGVlcmxlc3MgU3lzdGVtcyBDb3Jwb3JhdGlvbgorMDAxN0I1ICAgICAoYmFzZSAxNikJCVBlZXJsZXNzIFN5c3RlbXMgQ29ycG9yYXRpb24KKwkJCQkyMzgxIFJvc2VjcmFucyBBdmVudWUsIFN1aXRlIDQwMAorCQkJCUVsIFNlZ3VuZG8gQ0EgOTAyNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUI2ICAgKGhleCkJCUFxdWFudGlhCiswMDE3QjYgICAgIChiYXNlIDE2KQkJQXF1YW50aWEKKwkJCQk3MDAgVGFzbWFuIERyLgorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1CNyAgIChoZXgpCQlUb256ZSBUZWNobm9sb2d5IENvLgorMDAxN0I3ICAgICAoYmFzZSAxNikJCVRvbnplIFRlY2hub2xvZ3kgQ28uCisJCQkJNUYtMTAsIE5vLjYsIExhbmUgMTgwLAorCQkJCVNlYyA2LCBNaW5jeXVhbiBFYXN0IFJvYWQKKwkJCQlUYWlwZWkgIDExNDkwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy1COCAgIChoZXgpCQlOT1ZBVFJPTiBDTy4sIExURC4KKzAwMTdCOCAgICAgKGJhc2UgMTYpCQlOT1ZBVFJPTiBDTy4sIExURC4KKwkJCQkjNjAxIHBvbGFyaXMgYmxkZy4sIDE1LTMgamVvbmdqYS1kb25nLCBidW5kYW5nLWd1CisJCQkJU2VvbmcgTmFtIEd5ZW9uZ2dpIERvIDQ2My04MTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctQjkgICAoaGV4KQkJR2FtYnJvIEx1bmRpYSBBQgorMDAxN0I5ICAgICAoYmFzZSAxNikJCUdhbWJybyBMdW5kaWEgQUIKKwkJCQlCT1ggMTAxMDEKKwkJCQlMVU5EIFNrYW5lIDIyMDEwCisJCQkJU1dFREVOCisKKzAwLTE3LUJBICAgKGhleCkJCVNFRE8gQ08uLCBMVEQuCiswMDE3QkEgICAgIChiYXNlIDE2KQkJU0VETyBDTy4sIExURC4KKwkJCQkzMDIsIEtUIEJsZGcsIDFBTk5FWCwgMzUtMQorCQkJCVllb25nZGV1bmdwby1kb25nIDhnYSwgWWVvbmdkZXVuZ3BvLWd1CisJCQkJU2VvdWwgIDE1MC0wMzgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctQkIgICAoaGV4KQkJU3lyaW54IEluZHVzdHJpYWwgRWxlY3Ryb25pY3MKKzAwMTdCQiAgICAgKGJhc2UgMTYpCQlTeXJpbnggSW5kdXN0cmlhbCBFbGVjdHJvbmljcworCQkJCURlIEZhY3RvcmlqIDEzCisJCQkJWndhYWcgTm9vcmQgSG9sbGFuZCAxNjg5IEFLCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTctQkMgICAoaGV4KQkJVG91Y2h0dW5lcyBNdXNpYyBDb3Jwb3JhdGlvbgorMDAxN0JDICAgICAoYmFzZSAxNikJCVRvdWNodHVuZXMgTXVzaWMgQ29ycG9yYXRpb24KKwkJCQkzIFBsYWNlIGR1IENvbW1lcmNlCisJCQkJNHRoIEZsb29yCisJCQkJTW9udHJlYWwgUXVlYmVjIEgzRSAxSDcKKwkJCQlDQU5BREEKKworMDAtMTctQkQgICAoaGV4KQkJVGliZXRzeXN0ZW0KKzAwMTdCRCAgICAgKGJhc2UgMTYpCQlUaWJldHN5c3RlbQorCQkJCTZGIElUIENhc3RsZSBJSSA1NTAtMSBHYXNhbi1kb25nCisJCQkJU2VvdWwgR2V1bWNoZW9uLWd1IDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctQkUgICAoaGV4KQkJVHJhdGVjIFRlbGVjb20gQi5WLgorMDAxN0JFICAgICAoYmFzZSAxNikJCVRyYXRlYyBUZWxlY29tIEIuVi4KKwkJCQlEZSBTbWFsbGUgWmlqZGUgMTIKKwkJCQlWZWVuZW5kYWFsICBOTDAtMzkwMyBMUAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE3LUJGICAgKGhleCkJCUNvaGVyZW50IFJlc2VhcmNoIExpbWl0ZWQKKzAwMTdCRiAgICAgKGJhc2UgMTYpCQlDb2hlcmVudCBSZXNlYXJjaCBMaW1pdGVkCisJCQkJOCBQcmluY2VzcyBNZXdzCisJCQkJSG9yYWNlIFJvYWQKKwkJCQlLaW5nc3RvbiB1cG9uIFRoYW1lcyBTdXJyZXkgS1QxIDJTWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE3LUMwICAgKGhleCkJCVB1cmVUZWNoIFN5c3RlbXMsIEluYy4KKzAwMTdDMCAgICAgKGJhc2UgMTYpCQlQdXJlVGVjaCBTeXN0ZW1zLCBJbmMuCisJCQkJMjA3NSBXIFBpbm5hY2xlIFBlYWsgUm9hZCAjMTIwCisJCQkJUGhvZW5peCBBWiA4NTAyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctQzEgICAoaGV4KQkJQ00gUHJlY2lzaW9uIFRlY2hub2xvZ3kgTFRELgorMDAxN0MxICAgICAoYmFzZSAxNikJCUNNIFByZWNpc2lvbiBUZWNobm9sb2d5IExURC4KKwkJCQkyIEZsLCBOby4gMTc3LCBDaGllbi1FIFJvYWQsIENodW5nLUhvIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctQzIgICAoaGV4KQkJUGlyZWxsaSBCcm9hZGJhbmQgU29sdXRpb25zCiswMDE3QzIgICAgIChiYXNlIDE2KQkJUGlyZWxsaSBCcm9hZGJhbmQgU29sdXRpb25zCisJCQkJdi5TYXJjYSAyMjIKKwkJCQlNaWxhbm8gIDIwMTI2CisJCQkJSVRBTFkKKworMDAtMTctQzMgICAoaGV4KQkJS1RGIFRlY2hub2xvZ2llcyBJbmMuCiswMDE3QzMgICAgIChiYXNlIDE2KQkJS1RGIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNHRoIEZsLiwgQ2VudHJhbCBUb3dlciwgMjY1LTMsIFNlb2h5dW4tRG9uZworCQkJCUJ1bmRuYWctR3UKKwkJCQlTdW5nbmFtLUNpdHkgS3l1bmdnaS1EbyA0NjMtNzY5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUM0ICAgKGhleCkJCVF1YW50YSBNaWNyb3N5c3RlbXMsIElOQy4KKzAwMTdDNCAgICAgKGJhc2UgMTYpCQlRdWFudGEgTWljcm9zeXN0ZW1zLCBJTkMuCisJCQkJMTg4IFdlbmh3YSAybmQgUkQuLCBLdWVpc2hhbiBIc2lhbmcKKwkJCQlUYW95dWFuIFNoaWVuICAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LUM1ICAgKGhleCkJCVNvbmljV0FMTAorMDAxN0M1ICAgICAoYmFzZSAxNikJCVNvbmljV0FMTAorCQkJCTExNDMgQm9ycmVnYXMgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk1MTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1DNiAgIChoZXgpCQlDcm9zcyBNYXRjaCBUZWNobm9sb2dpZXMgSW5jCiswMDE3QzYgICAgIChiYXNlIDE2KQkJQ3Jvc3MgTWF0Y2ggVGVjaG5vbG9naWVzIEluYworCQkJCTQwMCwgYm91bC4gSmVhbi1MZXNhZ2UKKwkJCQlIYWxsIE91ZXN0LCBTdWl0ZSAzMAorCQkJCVF1ZWJlYywgUWMgIEcxSyA4VzEKKwkJCQlDQU5BREEKKworMDAtMTctQzcgICAoaGV4KQkJTUFSQSBTeXN0ZW1zIENvbnN1bHRpbmcgQUIKKzAwMTdDNyAgICAgKGJhc2UgMTYpCQlNQVJBIFN5c3RlbXMgQ29uc3VsdGluZyBBQgorCQkJCUluc3RydW1lbnR2YWdlbiA0NQorCQkJCVN0b2NraG9sbSAgMTI2IDUzCisJCQkJU1dFREVOCisKKzAwLTE3LUM4ICAgKGhleCkJCUt5b2NlcmEgTWl0YSBDb3Jwb3JhdGlvbgorMDAxN0M4ICAgICAoYmFzZSAxNikJCUt5b2NlcmEgTWl0YSBDb3Jwb3JhdGlvbgorCQkJCTItMTQtOSwgVGFtYWdhd2FkYWkKKwkJCQlTZXRhZ2F5YS1XYXJkCisJCQkJVG9reW8gIDE1OC04NjEwCisJCQkJSkFQQU4KKworMDAtMTctQzkgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMTdDOSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTQxNiwgTWFldGFuLTNEb25nLCBZZW9uZ3RvbmctR3UKKwkJCQlTdXdvbiBHZXlvbmdnaS1EbyA0NDMtNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUNBICAgKGhleCkJCVFpc2RhIENvcnBvcmF0aW9uCiswMDE3Q0EgICAgIChiYXNlIDE2KQkJUWlzZGEgQ29ycG9yYXRpb24KKwkJCQkxNTcgU2hhbiBZaW5nIFJvYWQsCisJCQkJR3VlaVNoYW4gVGFveXVhbiwgMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy1DQiAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCiswMDE3Q0IgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTm9ydGggTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENhbGlmb3JuaWEgOTQwODktMTIwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctQ0MgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQKKzAwMTdDQyAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudAorCQkJCTYwMSBEYXRhIERyLgorCQkJCU0vUyAzMjAKKwkJCQlQbGFubyBUWCA3NTA3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctQ0QgICAoaGV4KQkJQ0VDIFdpcmVsZXNzIFImRCBMdGQuCiswMDE3Q0QgICAgIChiYXNlIDE2KQkJQ0VDIFdpcmVsZXNzIFImRCBMdGQuCisJCQkJV2VzdCBNNSBCdWlsZGluZyxOby4xIEVhc3QgUm9hZAorCQkJCUppdXhpYW5xaWFvIENoYW8gWWFuZyBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDAxNgorCQkJCUNISU5BCisKKzAwLTE3LUNFICAgKGhleCkJCU1CIEludGVybmF0aW9uYWwgVGVsZWNvbSBMYWJzIHNybAorMDAxN0NFICAgICAoYmFzZSAxNikJCU1CIEludGVybmF0aW9uYWwgVGVsZWNvbSBMYWJzIHNybAorCQkJCVZpYSBNaWxhbm8gMjU1CisJCQkJQmFyYW56YXRlIGRpIEJvbGxhdGUgTWlsYW5vIDIwMDIxCisJCQkJSVRBTFkKKworMDAtMTctQ0YgICAoaGV4KQkJaU1DQS1HbWJICiswMDE3Q0YgICAgIChiYXNlIDE2KQkJaU1DQS1HbWJICisJCQkJRG9yZnN0cmFzc2UgMjhiCisJCQkJSXR6ZWhvZSBTY2hsZXN3aWctSG9sc3RlaW4gMjU1MjQKKwkJCQlHRVJNQU5ZCisKKzAwLTE3LUQwICAgKGhleCkJCU9wdGljb20gQ29tbXVuaWNhdGlvbnMsIExMQworMDAxN0QwICAgICAoYmFzZSAxNikJCU9wdGljb20gQ29tbXVuaWNhdGlvbnMsIExMQworCQkJCTEwNTAgQ29ubmVjdGljdXQgQXZlbnVlLCBOVworCQkJCVN1aXRlIDEwMDAKKwkJCQlXYXNoaW5ndG9uIERDIDIwMDM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1EMSAgIChoZXgpCQlOb3J0ZWwKKzAwMTdEMSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTctRDIgICAoaGV4KQkJVEhJTkxJTlggUFRZIExURAorMDAxN0QyICAgICAoYmFzZSAxNikJCVRISU5MSU5YIFBUWSBMVEQKKwkJCQkzMSBDYXJ3b29sYSBDcmVzY2VudAorCQkJCU1vb2xvb2xhYmEgUXVlZW5zbGFuZCA0NTU3CisJCQkJQVVTVFJBTElBCisKKzAwLTE3LUQzICAgKGhleCkJCUV0eW1vdGljIFJlc2VhcmNoLCBJbmMuCiswMDE3RDMgICAgIChiYXNlIDE2KQkJRXR5bW90aWMgUmVzZWFyY2gsIEluYy4KKwkJCQk2MSBNYXJ0aW4gTGFuZQorCQkJCUVsayBHcm92ZSBWaWxsYWdlIElMIDYwMDYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1ENCAgIChoZXgpCQlNb25zb29uIE11bHRpbWVkaWEsIEluYworMDAxN0Q0ICAgICAoYmFzZSAxNikJCU1vbnNvb24gTXVsdGltZWRpYSwgSW5jCisJCQkJMTczMCBTb3V0aCBBbXBobGV0dCBibHZkLiBTdWl0ZSAxMDEKKwkJCQlTYW4gTWF0ZW8gQ0EgOTQ0MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUQ1ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDE3RDUgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWktQ2l0eSBHeWVvbmctQnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctRDYgICAoaGV4KQkJQmx1ZWNoaXBzIE1pY3JvaG91c2UgQ28uLEx0ZC4KKzAwMTdENiAgICAgKGJhc2UgMTYpCQlCbHVlY2hpcHMgTWljcm9ob3VzZSBDby4sTHRkLgorCQkJCTIxMi8yIE0uMTAgVGFtYm9sIFVtb25nCisJCQkJQW1waHVyIE11YW5nCisJCQkJTGFtcGh1biAgNTExNTAKKwkJCQlUSEFJTEFORAorCiswMC0xNy1ENyAgIChoZXgpCQlJT04gR2VvcGh5c2ljYWwgQ29ycG9yYXRpb24gSW5jLgorMDAxN0Q3ICAgICAoYmFzZSAxNikJCUlPTiBHZW9waHlzaWNhbCBDb3Jwb3JhdGlvbiBJbmMuCisJCQkJODUwIERvcm90aHkKKwkJCQlTdWl0ZSA1MTAKKwkJCQlSaWNoYXJkc29uIFRleGFzIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1EOCAgIChoZXgpCQlNYWdudW0gU2VtaWNvbmR1Y3RvciwgSW5jLgorMDAxN0Q4ICAgICAoYmFzZSAxNikJCU1hZ251bSBTZW1pY29uZHVjdG9yLCBJbmMuCisJCQkJNTkxIFlvc2VtaXRlIERyaXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUQ5ICAgKGhleCkJCUFBSSBDb3Jwb3JhdGlvbgorMDAxN0Q5ICAgICAoYmFzZSAxNikJCUFBSSBDb3Jwb3JhdGlvbgorCQkJCVAuTy4gQm94IDEyNgorCQkJCUh1bnQgVmFsbGV5IE1hcnlsYW5kIDIxMDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1EQSAgIChoZXgpCQlTcGFucyBMb2dpYworMDAxN0RBICAgICAoYmFzZSAxNikJCVNwYW5zIExvZ2ljCisJCQkJMjAxIFNhbiBBbnRvbmlvIENpcmNsZQorCQkJCSMyODAKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1EQiAgIChoZXgpCQlDQU5LTyBURUNITk9MT0dJRVMgSU5DLgorMDAxN0RCICAgICAoYmFzZSAxNikJCUNBTktPIFRFQ0hOT0xPR0lFUyBJTkMuCisJCQkJNSBGTC4gRE9ORyBTVU5HIEJMREcuIDE3LTgKKwkJCQlZT0lETy1ET05HLCBZRU9OR0RFVU5HUE8tS1UKKwkJCQlTRU9VTCAgMTUwLTg3NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy1EQyAgIChoZXgpCQlEQUVNWVVORyBaRVJPMQorMDAxN0RDICAgICAoYmFzZSAxNikJCURBRU1ZVU5HIFpFUk8xCisJCQkJIzgwOSxIeW9zdW5nIEludGVsbGlhbgorCQkJCTE1OTQtMSBHd2FueWFuZy1kb25nLERvbmdhbi1ndQorCQkJCUFueWFuZy1zaSBHeWVvbmdnaS1kbyA0MzEtMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUREICAgKGhleCkJCUNsaXBzYWwgQXVzdHJhbGlhCiswMDE3REQgICAgIChiYXNlIDE2KQkJQ2xpcHNhbCBBdXN0cmFsaWEKKwkJCQkzMy0zNyBQb3J0IFdha2VmaWVsZCBSZAorCQkJCUdlcHBzIENyb3NzIFNvdXRoIEF1c3RyYWxpYSA1MDk0CisJCQkJQVVTVFJBTElBCisKKzAwLTE3LURFICAgKGhleCkJCUFkdmFudGFnZSBTaXggTHRkCiswMDE3REUgICAgIChiYXNlIDE2KQkJQWR2YW50YWdlIFNpeCBMdGQKKwkJCQkyMDggR2VvcmdlIFN0CisJCQkJU2hhdworCQkJCU9MREhBTSBMYW5jcyBPTDIgOERSCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctREYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxN0RGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxN0UwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTEgICAoaGV4KQkJREFDT1MgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAxN0UxICAgICAoYmFzZSAxNikJCURBQ09TIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQkxMDQgRGFlcnl1bmctVGVjaG5vdG93biBJSUkgNDQ4CisJCQkJR2FzYW4tRG9uZworCQkJCVNFT1VMIEtldW1jaGVvbi1HdSAxNTMtNzcyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUUyICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxN0UyICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTYwMCBOLiBId3kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUUzICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDE3RTMgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUU0ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDE3RTQgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUU1ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDE3RTUgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUU2ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDE3RTYgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUU3ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDE3RTcgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUU4ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDE3RTggICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUU5ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDE3RTkgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUVBICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDE3RUEgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUVCICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDE3RUIgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUVDICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDE3RUMgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUVEICAgKGhleCkJCVdvb0pvb0lUIEx0ZC4KKzAwMTdFRCAgICAgKGJhc2UgMTYpCQlXb29Kb29JVCBMdGQuCisJCQkJSGFua29va3RpcmUgQi9EIDR0aCBmbG9vciwgNTAxLTE5LAorCQkJCVNpbndvbDIgLWRvbmcsCisJCQkJWWFuZ2NoZW9uLWd1LCBTZW91bCAxNTgtODM5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUVFICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE3RUUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1FRiAgIChoZXgpCQlJQk0gQ29ycAorMDAxN0VGICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMjA1MSBNaXNzaW9uIENvbGxlZ2UgQmx2ZCAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRjAgICAoaGV4KQkJU1pDT00gQnJvYWRiYW5kIE5ldHdvcmsgVGVjaG5vbG9neSBDby4sTHRkCiswMDE3RjAgICAgIChiYXNlIDE2KQkJU1pDT00gQnJvYWRiYW5kIE5ldHdvcmsgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJUm9vbSA2MDIgTm8uOCBCdWlsZGluZyAsU2hlbnpoZW4gU29mdHdhcmUgUGFyaywKKwkJCQlIaS1UZWNoIEMuWm9uZSAsTmFuc2hhbiBBcmVhCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTE3LUYxICAgKGhleCkJCVJlbnUgRWxlY3Ryb25pY3MgUHZ0IEx0ZAorMDAxN0YxICAgICAoYmFzZSAxNikJCVJlbnUgRWxlY3Ryb25pY3MgUHZ0IEx0ZAorCQkJCVNyIE5vIDIvNiwgQmFuZXIgUm9hZCwKKwkJCQlCYW5lciwKKwkJCQlQdW5lIE1haGFyYXNodHJhIDQxMTA0NQorCQkJCUlORElBCisKKzAwLTE3LUYyICAgKGhleCkJCUFwcGxlIENvbXB1dGVyCiswMDE3RjIgICAgIChiYXNlIDE2KQkJQXBwbGUgQ29tcHV0ZXIKKwkJCQkxIEluZmluaXRlIExvb3AgTVM6MzVHUE8KKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUYzICAgKGhleCkJCUhhcnJpcyBDb3JwYXJhdGlvbgorMDAxN0YzICAgICAoYmFzZSAxNikJCUhhcnJpcyBDb3JwYXJhdGlvbgorCQkJCTEwMjUgV2VzdCBOQVNBIEJsdmQKKwkJCQlNZWxib3VybmUgRkwgMzI5MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUY0ICAgKGhleCkJCVpFUk9OIEFMTElBTkNFCiswMDE3RjQgICAgIChiYXNlIDE2KQkJWkVST04gQUxMSUFOQ0UKKwkJCQkgM0YgRE9PUkkgQlVJTEQuIDI0NC0xNCBidW5qaSwgUG9pLWRvbmcsIEdhbmduYW0tZ3UKKwkJCQlTRU9VTCAgMTM1LTk2NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy1GNSAgIChoZXgpCQlMSUcgTkVPUFRFSworMDAxN0Y1ICAgICAoYmFzZSAxNikJCUxJRyBORU9QVEVLCisJCQkJOTI2IEdvc2Flay1kb25nCisJCQkJR3dvbnNlb24tZ3UKKwkJCQlTdXdvbi1zaSBHeWVvbmdnaS1kbyA0NDEtODEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUY2ICAgKGhleCkJCVB5cmFtaWQgTWVyaWRlbiBJbmMuCiswMDE3RjYgICAgIChiYXNlIDE2KQkJUHlyYW1pZCBNZXJpZGVuIEluYy4KKwkJCQk0NSBHcmFjZXkgQXZlLgorCQkJCU1lcmlkZW4gQ1QgMDY0NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUY3ICAgKGhleCkJCUNFTSBTb2x1dGlvbnMgUHZ0IEx0ZAorMDAxN0Y3ICAgICAoYmFzZSAxNikJCUNFTSBTb2x1dGlvbnMgUHZ0IEx0ZAorCQkJCTQ5LEthbmlqYSBCaGF2YW4KKwkJCQlSYWNlIENvdXJzZSBSb2FkCisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAgMDAxCisJCQkJSU5ESUEKKworMDAtMTctRjggICAoaGV4KQkJTW90ZWNoIEluZHVzdHJpZXMgSW5jLgorMDAxN0Y4ICAgICAoYmFzZSAxNikJCU1vdGVjaCBJbmR1c3RyaWVzIEluYy4KKwkJCQk2RiwgTm8uIDI0OCwgU2VjLiAzLCBQZWktU2hlbiBSZC4sCisJCQkJU2hlbi1LZW5nIEhzaWFuZworCQkJCVRhaXBlaSBIc2llbiAgMjIyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy1GOSAgIChoZXgpCQlGb3Jjb20gU3AuIHogby5vLgorMDAxN0Y5ICAgICAoYmFzZSAxNikJCUZvcmNvbSBTcC4geiBvLm8uCisJCQkJR2Fqb3dhIDYKKwkJCQlQb3puYW4gV0xLUCA2MC04MTUKKwkJCQlQT0xBTkQKKworMDAtMTctRkEgICAoaGV4KQkJTWljcm9zb2Z0IENvcnBvcmF0aW9uCiswMDE3RkEgICAgIChiYXNlIDE2KQkJTWljcm9zb2Z0IENvcnBvcmF0aW9uCisJCQkJT25lIE1pY3Jvc29mdCBXYXkKKwkJCQlSRUQtQi8xMDcyCisJCQkJUmVkbW9uZCBXYXNoaW5ndG9uIDk4MDUyLTYzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUZCICAgKGhleCkJCUZBCiswMDE3RkIgICAgIChiYXNlIDE2KQkJRkEKKwkJCQk2MjgtNywgRHVuZ2Nob24tRG9uZworCQkJCVNlb3VsIEthbmdzZW8tS3UgMTU3LTgzOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy1GQyAgIChoZXgpCQlTdXByZW1hIEluYy4KKzAwMTdGQyAgICAgKGJhc2UgMTYpCQlTdXByZW1hIEluYy4KKwkJCQkxNkYgUGFya3ZpZXcgT2ZmaWNlIFRvd2VyLAorCQkJCUplb25namEtZG9uZywgQnVuZGFuZy1ndSwKKwkJCQlTZW9uZ25hbSBHeWVvbmdnaSA0NjMtODYzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUZEICAgKGhleCkJCUFtdWxldCBIb3RrZXkKKzAwMTdGRCAgICAgKGJhc2UgMTYpCQlBbXVsZXQgSG90a2V5CisJCQkJQ2F2YWxpZXIgUm9hZAorCQkJCUhlYXRoZmllbGQgSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlIZWF0aGZpZWxkIERldm9uIFRRMTIgNlRRCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctRkUgICAoaGV4KQkJVEFMT1MgU1lTVEVNIElOQy4KKzAwMTdGRSAgICAgKGJhc2UgMTYpCQlUQUxPUyBTWVNURU0gSU5DLgorCQkJCTYxOTEgQ09STkVSU1RPTkUgQ1QuIFNURSAjMTA5CisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1GRiAgIChoZXgpCQlQTEFZTElORSBDby4sTHRkLgorMDAxN0ZGICAgICAoYmFzZSAxNikJCVBMQVlMSU5FIENvLixMdGQuCisJCQkJMS00LTIxIE1PVE9BS0FTQUtBCisJCQkJTUlOQVRPS1UKKwkJCQlUT0tZTyAgMTA3LTAwNTEKKwkJCQlKQVBBTgorCiswMC0xOC0wMCAgIChoZXgpCQlVTklHUkFORCBMVEQKKzAwMTgwMCAgICAgKGJhc2UgMTYpCQlVTklHUkFORCBMVEQKKwkJCQk3Ri0yLCBOby40NSwgSmluZ2RlIFN0LiwgSmhvbmdoZSBDaXR5LAorCQkJCVRhaXBlaSBDb3VudHkKKwkJCQkyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LTAxICAgKGhleCkJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCiswMDE4MDEgICAgIChiYXNlIDE2KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMKKwkJCQk3NjAgTm9ydGggTWFyeSBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTAyICAgKGhleCkJCUFscGhhIE5ldHdvcmtzIEluYy4KKzAwMTgwMiAgICAgKGJhc2UgMTYpCQlBbHBoYSBOZXR3b3JrcyBJbmMuCisJCQkJTm8uOCBMaS1zaGluZyBTZXZlbnRoIFJvYWQsU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LTAzICAgKGhleCkJCUFyY1NvZnQgU2hhbmdoYWkgQ28uIExURAorMDAxODAzICAgICAoYmFzZSAxNikJCUFyY1NvZnQgU2hhbmdoYWkgQ28uIExURAorCQkJCTIwdGggRmxvb3IsIFN1aXRlIChFQVNUKSAyMDA4LCBDaGluYSBNZXJjaGFudHMgUGxhemEsIDMzMworCQkJCVNoYW5naGFpICAyMDAwNDEKKwkJCQlDSElOQQorCiswMC0xOC0wNCAgIChoZXgpCQlFLVRFSyBESUdJVEFMIFRFQ0hOT0xPR1kgTElNSVRFRAorMDAxODA0ICAgICAoYmFzZSAxNikJCUUtVEVLIERJR0lUQUwgVEVDSE5PTE9HWSBMSU1JVEVECisJCQkJVU5JVDE1MjAsMTUvRi4sVE9XRVIgMixHUkFORCBDRU5UVVJZIFBMQUNFLDE5MyBQUklOQ0UgRURXQVJEIFJPQUQgV0VTVCxLT1dMT09OLAorCQkJCUhPTkcgS09ORworCiswMC0xOC0wNSAgIChoZXgpCQlCZWlqaW5nIEluSGFuZCBOZXR3b3JraW5nIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMTgwNSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEluSGFuZCBOZXR3b3JraW5nIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQkzL0YsQnVpbGRpbmcgQSxHRU0gVGVjaGNoZW50ZXIKKwkJCQlObyw5IDNyZCBTdHJlZXQgb2YgU2hhbmdkaQorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTE4LTA2ICAgKGhleCkJCUhva2tlaSBJbmR1c3RyaWVzIENvLiwgTHRkLgorMDAxODA2ICAgICAoYmFzZSAxNikJCUhva2tlaSBJbmR1c3RyaWVzIENvLiwgTHRkLgorCQkJCUltYWhpcmEgNDMyCisJCQkJSGFrdXNhbiBJc2hpa2F3YSA5MjQtMDgyNworCQkJCUpBUEFOCisKKzAwLTE4LTA3ICAgKGhleCkJCUZhbnN0ZWwgQ29ycC4KKzAwMTgwNyAgICAgKGJhc2UgMTYpCQlGYW5zdGVsIENvcnAuCisJCQkJNzQ2NiBFLiBNb250ZSBDcmlzdG8gQXZlLgorCQkJCVNjb3R0c2RhbGUgQXJpem9uYSA4NTI2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMDggICAoaGV4KQkJU2lnaHRMb2dpeCwgSW5jLgorMDAxODA4ICAgICAoYmFzZSAxNikJCVNpZ2h0TG9naXgsIEluYy4KKwkJCQk3NDUgQWxleGFuZGVyIFJvYWQKKwkJCQlQcmluY2V0b24gTkogMDg1NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTA5ICAgKGhleCkJCUNSRVNZTgorMDAxODA5ICAgICAoYmFzZSAxNikJCUNSRVNZTgorCQkJCTgtMjIsSmFtd29uLWRvbmcKKwkJCQlTZW91bCBTZW9jaG8tR3UgIzEzNy05MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtMEEgICAoaGV4KQkJTWVyYWtpLCBJbmMuCiswMDE4MEEgICAgIChiYXNlIDE2KQkJTWVyYWtpLCBJbmMuCisJCQkJOTkgUmhvZGUgSXNsYW5kIFN0LgorCQkJCVNhbiBGcmFuY2lzY28sIENBIDk0MTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0wQiAgIChoZXgpCQlCcmlsbGlhbnQgVGVsZWNvbW11bmljYXRpb25zCiswMDE4MEIgICAgIChiYXNlIDE2KQkJQnJpbGxpYW50IFRlbGVjb21tdW5pY2F0aW9ucworCQkJCTMwNyBPcmNoYXJkIENpdHkgRHIuCisJCQkJU3VpdGUgMTAyCisJCQkJQ2FtcGJlbGwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTBDICAgKGhleCkJCU9wdGVsaWFuIEFjY2VzcyBOZXR3b3JrcworMDAxODBDICAgICAoYmFzZSAxNikJCU9wdGVsaWFuIEFjY2VzcyBOZXR3b3JrcworCQkJCTIyQS0xMDUxIEJheHRlciBSb2FkCisJCQkJT3R0YXdhIE9udGFyaW8gSzJDIDNQMgorCQkJCUNBTkFEQQorCiswMC0xOC0wRCAgIChoZXgpCQlUZXJhYnl0ZXMgU2VydmVyIFN0b3JhZ2UgVGVjaCBDb3JwCiswMDE4MEQgICAgIChiYXNlIDE2KQkJVGVyYWJ5dGVzIFNlcnZlciBTdG9yYWdlIFRlY2ggQ29ycAorCQkJCTE0MjU3IEUgRG9uIEp1bGlhbiBSZAorCQkJCUNpdHkgb2YgSW5kdXN0cnkgQ0EgOTE3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTBFICAgKGhleCkJCUF2ZWdhIFN5c3RlbXMKKzAwMTgwRSAgICAgKGJhc2UgMTYpCQlBdmVnYSBTeXN0ZW1zCisJCQkJNTkgVmljdG9yaWEgU3RyZWV0CisJCQkJTWNNYWhvbnMgUG9pbnQgTlNXIDIwNjAKKwkJCQlBVVNUUkFMSUEKKworMDAtMTgtMEYgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTgwRiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViBEZW5tYXJrIDE3OTBWCisJCQkJREVOTUFSSworCiswMC0xOC0xMCAgIChoZXgpCQlJUFRyYWRlIFMuQS4KKzAwMTgxMCAgICAgKGJhc2UgMTYpCQlJUFRyYWRlIFMuQS4KKwkJCQlQYXJjIFNjaWVudGlmaXF1ZQorCQkJCUF2ZW51ZSBkZXMgQ2hhc3NldXJzIEFyZGVubmFpcywgNAorCQkJCVNhcnQtVGlsbWFuIFdhbGxvbmllIDQwMzEKKwkJCQlCRUxHSVVNCisKKzAwLTE4LTExICAgKGhleCkJCU5ldXJvcyBUZWNobm9sb2d5IEludGVybmF0aW9uYWwsIExMQy4KKzAwMTgxMSAgICAgKGJhc2UgMTYpCQlOZXVyb3MgVGVjaG5vbG9neSBJbnRlcm5hdGlvbmFsLCBMTEMuCisJCQkJNjUwIFcgTGFrZSBTdAorCQkJCVN1aXRlIDMzMAorCQkJCUNoaWNhZ28gSUwgNjA2NjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTEyICAgKGhleCkJCUJlaWppbmcgWGlud2VpIFRlbGVjb20gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTgxMiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFhpbndlaSBUZWxlY29tIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJWGlud2VpIEJsZGcuLCBOby4gNyBaaG9uZ2d1YW5jdW4gU29mdHdhcmUgUGFyaywKKwkJCQlOby4gOCBEb25nYmVpd2FuZyBXZXN0IFJvYWQKKwkJCQlIYWlkaWFuIERpc3RyaWN0IEJlaWppbmcgMTAwMDk0CisJCQkJQ0hJTkEKKworMDAtMTgtMTMgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKzAwMTgxMyAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNrYW5lIDIyMTg4CisJCQkJU1dFREVOCisKKzAwLTE4LTE0ICAgKGhleCkJCU1pdHV0b3lvIENvcnBvcmF0aW9uCiswMDE4MTQgICAgIChiYXNlIDE2KQkJTWl0dXRveW8gQ29ycG9yYXRpb24KKwkJCQkyMC0xLCBTYWthZG8gMS1jaG9tZSwgVGFrYXRzdS1rdSwKKwkJCQlLYXdhc2FraS1zaGkgIDIxMy04NTMzCisJCQkJSkFQQU4KKworMDAtMTgtMTUgICAoaGV4KQkJR1ogVGVjaG5vbG9naWVzLCBJbmMuCiswMDE4MTUgICAgIChiYXNlIDE2KQkJR1ogVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJUm9vbSAxLCA1Ri4sIE5vLjk0LCBCYW9qaG9uZyBSZC4KKwkJCQlTaW5kaWFuIENpdHkKKwkJCQlUYWlwZWkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtMTYgICAoaGV4KQkJVWJpeG9uIENvLiwgTHRkLgorMDAxODE2ICAgICAoYmFzZSAxNikJCVViaXhvbiBDby4sIEx0ZC4KKwkJCQlDaGVvbmdkb25nIEJ1aWxkaW5nIDJGCisJCQkJMTM0NC0yOSBTZW9jaG8gZG9uZyBTZW9jaG8ga3UKKwkJCQlTZW91bCAgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC0xNyAgIChoZXgpCQlELiBFLiBTaGF3IFJlc2VhcmNoLCBMTEMKKzAwMTgxNyAgICAgKGJhc2UgMTYpCQlELiBFLiBTaGF3IFJlc2VhcmNoLCBMTEMKKwkJCQkxMjAgVy4gNDV0aCBTdC4sIDMzcmQgRmxvb3IKKwkJCQlOZXcgWW9yayBOWSAxMDAzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMTggICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxODE4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMTkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxODE5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMUEgICAoaGV4KQkJQVZlck1lZGlhIEluZm9ybWF0aW9uIEluYy4KKzAwMTgxQSAgICAgKGJhc2UgMTYpCQlBVmVyTWVkaWEgSW5mb3JtYXRpb24gSW5jLgorCQkJCTdGLCBOby4gMTM3LCBKaWFuIFlpIFJkLiwKKwkJCQlDaHVuZyBIbyBDaXR5IFRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LTFCICAgKGhleCkJCVRhaUppbiBNZXRhbCBDby4sIEx0ZC4KKzAwMTgxQiAgICAgKGJhc2UgMTYpCQlUYWlKaW4gTWV0YWwgQ28uLCBMdGQuCisJCQkJIzk1LTksIEhhbmdkb25nNy1HYSwgSm9vbmctR3UKKwkJCQlJbiBDaGVvbiAgNDAwLTAzNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC0xQyAgIChoZXgpCQlFeHRlcml0eSBMaW1pdGVkCiswMDE4MUMgICAgIChiYXNlIDE2KQkJRXh0ZXJpdHkgTGltaXRlZAorCQkJCVJpZGdlIFdheSwgSGlsbGVuZCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCURhbGdldHkgQmF5CisJCQkJRHVuZmVybWxpbmUgRmlmZSBLWTExIDlKRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE4LTFEICAgKGhleCkJCUFTSUEgRUxFQ1RST05JQ1MgQ08uLExURAorMDAxODFEICAgICAoYmFzZSAxNikJCUFTSUEgRUxFQ1RST05JQ1MgQ08uLExURAorCQkJCTYyMC0zIERPQ0hFT04tRE9ORworCQkJCUdXQU5HU0FOLUdVCisJCQkJR1dBTkdKVSAgNTA2LTMwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC0xRSAgIChoZXgpCQlHRFggVGVjaG5vbG9naWVzIEx0ZC4KKzAwMTgxRSAgICAgKGJhc2UgMTYpCQlHRFggVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQk2MS02MyBCYWNrIFNuZWRkb24gU3RyZWV0CisJCQkJUGFpc2xleSBSZW5mcmV3c2hpcmUgUEEzIDJERAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE4LTFGICAgKGhleCkJCVBhbG1taWNybyBDb21tdW5pY2F0aW9ucworMDAxODFGICAgICAoYmFzZSAxNikJCVBhbG1taWNybyBDb21tdW5pY2F0aW9ucworCQkJCVJvb20gMDYxMSwgQmxkZy5CIFRzaW5naHVhIFRvbmdmYW5nIFRlY2hub2xvZ3kgUGxhemEKKwkJCQkxIFdhbmd6aHVhbmcgUm9hZAorCQkJCUJlaWppbmcgIDEwMDA4MworCQkJCUNISU5BCisKKzAwLTE4LTIwICAgKGhleCkJCXc1bmV0d29ya3MKKzAwMTgyMCAgICAgKGJhc2UgMTYpCQl3NW5ldHdvcmtzCisJCQkJNDgzODkgRnJlbW9udCBCbHZkCisJCQkJU3VpdGUgMTA2CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMjEgICAoaGV4KQkJU0lORE9SSUNPSAorMDAxODIxICAgICAoYmFzZSAxNikJCVNJTkRPUklDT0gKKwkJCQkyNzctMjIsIDJnYSwgU3VuZ3N1LWRvbmcsIFN1bmdkb25nLWd1LAorCQkJCVNlb3VsICAxMzMtMTIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LTIyICAgKGhleCkJCUNFQyBURUxFQ09NIENPLixMVEQuCiswMDE4MjIgICAgIChiYXNlIDE2KQkJQ0VDIFRFTEVDT00gQ08uLExURC4KKwkJCQkxMHRoRkwuQ0VDIEJ1aWxkaW5nLDYgWmhvbmdndWFuY3VuIFNvdXRoIFN0cmVldAorCQkJCUJlaWppbmcgIDEwMDA4NgorCQkJCUNISU5BCisKKzAwLTE4LTIzICAgKGhleCkJCURlbHRhIEVsZWN0cm9uaWNzLCBJbmMuCiswMDE4MjMgICAgIChiYXNlIDE2KQkJRGVsdGEgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQkxODYgUnVleSBLdWFuZyBSb2FkLCBOZWlodSwKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtMjQgICAoaGV4KQkJS2ltYWxkaSBFbGVjdHJvbmljcywgUy5MLgorMDAxODI0ICAgICAoYmFzZSAxNikJCUtpbWFsZGkgRWxlY3Ryb25pY3MsIFMuTC4KKwkJCQlDdHJhLiBkZSBSdWJpLCAyOTIgQgorCQkJCVBvbC4gSW5kLiBDYW4gR3VpdGFyZAorCQkJCVRlcnJhc3NhIEJhcmNlbG9uYSAwODIyOAorCQkJCVNQQUlOCisKKzAwLTE4LTI1ICAgKGhleCkJCVBSSVZBVEUKKzAwMTgyNSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMTgtMjYgICAoaGV4KQkJQ2FsZSBBY2Nlc3MgQUIKKzAwMTgyNiAgICAgKGJhc2UgMTYpCQlDYWxlIEFjY2VzcyBBQgorCQkJCUJveCAxMzA3CisJCQkJU29sbmEgIFNFLTE3MSAyNQorCQkJCVNXRURFTgorCiswMC0xOC0yNyAgIChoZXgpCQlORUMgVU5JRklFRCBTT0xVVElPTlMgTkVERVJMQU5EIEIuVi4KKzAwMTgyNyAgICAgKGJhc2UgMTYpCQlORUMgVU5JRklFRCBTT0xVVElPTlMgTkVERVJMQU5EIEIuVi4KKwkJCQlBTlRPTiBQSElMSVBTV0VHIDEKKwkJCQlISUxWRVJTVU0gTkggMTIyM0taCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTgtMjggICAoaGV4KQkJZTJ2IHRlY2hub2xvZ2llcyAoVUspIGx0ZC4KKzAwMTgyOCAgICAgKGJhc2UgMTYpCQllMnYgdGVjaG5vbG9naWVzIChVSykgbHRkLgorCQkJCTEwNiBXYXRlcmhvdXNlIExhbmUKKwkJCQlDaGVsbXNmb3JkIEVzc2V4IENNMSAyUVUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOC0yOSAgIChoZXgpCQlHYXRzb21ldGVyCiswMDE4MjkgICAgIChiYXNlIDE2KQkJR2F0c29tZXRlcgorCQkJCUNsYWVzIFRpbGx5d2VnIDIKKwkJCQlIYWFybGVtIE5vb3JkLUhvbGxhbmQgMjAzMSBDVworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE4LTJBICAgKGhleCkJCVRhaXdhbiBWaWRlbyAmIE1vbml0b3IKKzAwMTgyQSAgICAgKGJhc2UgMTYpCQlUYWl3YW4gVmlkZW8gJiBNb25pdG9yCisJCQkJM0YsIDE0MSBKZW4gQWkgUmQgU2VjLiAzCisJCQkJVGFpcGVpIENpdHkgIDEwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtMkIgICAoaGV4KQkJU29mdGllcgorMDAxODJCICAgICAoYmFzZSAxNikJCVNvZnRpZXIKKwkJCQlUaWRoYXIgMworCQkJCU1pbGxlbml1bSBibGRnIGZsb29yIDExCisJCQkJUmEnYW5hbmEgbm9uZSA0MzY2NQorCQkJCUlTUkFFTAorCiswMC0xOC0yQyAgIChoZXgpCQlBc2NlbmQgTmV0d29ya3MsIEluYy4KKzAwMTgyQyAgICAgKGJhc2UgMTYpCQlBc2NlbmQgTmV0d29ya3MsIEluYy4KKwkJCQlOby4gNCAtIDQsIExhbmUgNDEzLCBDaHVuZ0NoYW4gUm9hZCwKKwkJCQlCZW5RdWFvIENpdHkgVGFpcGVpIDIyMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtMkQgICAoaGV4KQkJQXJ0ZWMgR3JvdXAgT1UKKzAwMTgyRCAgICAgKGJhc2UgMTYpCQlBcnRlYyBHcm91cCBPVQorCQkJCVR1cmkgMTBDCisJCQkJVGFsbGlubiBIYXJqdW1hYSAxMTMxMworCQkJCUVTVE9OSUEKKworMDAtMTgtMkUgICAoaGV4KQkJWFN0cmVhbUhELCBMTEMKKzAwMTgyRSAgICAgKGJhc2UgMTYpCQlYU3RyZWFtSEQsIExMQworCQkJCTc5MDBCIFdlc3RwYXJrIERyaXZlCisJCQkJU3VpdGUgMjAwVAorCQkJCU1jTGVhbiBWQSAyMjEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMkYgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTgyRiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMzAgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTgzMCAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMzEgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTgzMSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMzIgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTgzMiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMzMgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTgzMyAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMzQgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTgzNCAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMzUgICAoaGV4KQkJVGhvcmF0ZWMgLyBJVEMKKzAwMTgzNSAgICAgKGJhc2UgMTYpCQlUaG9yYXRlYyAvIElUQworCQkJCTI2NTYgUGF0dG9uIFJvYWQKKwkJCQlSb3NldmlsbGUgTU4gNTUxMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTM2ICAgKGhleCkJCVJlbGlhbmNlIEVsZWN0cmljIExpbWl0ZWQKKzAwMTgzNiAgICAgKGJhc2UgMTYpCQlSZWxpYW5jZSBFbGVjdHJpYyBMaW1pdGVkCisJCQkJMi0zLTIgRnVrdXVyYSwgS2FuYXphd2Eta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMzYtODY0MQorCQkJCUpBUEFOCisKKzAwLTE4LTM3ICAgKGhleCkJCVVuaXZlcnNhbCBBQklUIENvLiwgTHRkLgorMDAxODM3ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBBQklUIENvLiwgTHRkLgorCQkJCTdGLCBOby4gMzIzIFlhbmdndWFuZyBTdC4sCisJCQkJTmVpaHUgVGFpcGVpIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtMzggICAoaGV4KQkJUGFuQWNjZXNzIENvbW11bmljYXRpb25zLEluYy4KKzAwMTgzOCAgICAgKGJhc2UgMTYpCQlQYW5BY2Nlc3MgQ29tbXVuaWNhdGlvbnMsSW5jLgorCQkJCUZsb29yIDgsVG93ZXIgQixHbG9iYWwgVHJhZGUgQ2VudGVyLDM2IEJlaXNhbmh1YW5kb25nbHUsRG9uZ2NoZW5nIERpc3RyaWN0CisJCQkJQmVpamluZyAxMDAwMTMKKwkJCQlDSElOQQorCiswMC0xOC0zOSAgIChoZXgpCQlDaXNjby1MaW5rc3lzIExMQworMDAxODM5ICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMgTExDCisJCQkJMTIxIFRoZW9yeQorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtM0EgICAoaGV4KQkJV2VzdGVsbCBUZWNobm9sb2dpZXMKKzAwMTgzQSAgICAgKGJhc2UgMTYpCQlXZXN0ZWxsIFRlY2hub2xvZ2llcworCQkJCTc1MCBOLiBDb21tb25zIERyLgorCQkJCUF1cm9yYSBJTCA2MDUwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtM0IgICAoaGV4KQkJQ0VOSVRTIENvLiwgTHRkLgorMDAxODNCICAgICAoYmFzZSAxNikJCUNFTklUUyBDby4sIEx0ZC4KKwkJCQkzRiwgWWFuZ2phZSBCbGRnLiwgMjY0LTMKKwkJCQlZYW5namFlLURvbmcsIFNlb2Noby1HdQorCQkJCVNlb3VsICAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LTNDICAgKGhleCkJCUVuY29yZSBTb2Z0d2FyZSBMaW1pdGVkCiswMDE4M0MgICAgIChiYXNlIDE2KQkJRW5jb3JlIFNvZnR3YXJlIExpbWl0ZWQKKwkJCQk2RiBMZW8gQ29tcGxleAorCQkJCTQ0IFJlc2lkZW5jeSBDcm9zcyBSb2FkCisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAwMjUKKwkJCQlJTkRJQQorCiswMC0xOC0zRCAgIChoZXgpCQlWZXJ0ZXggTGluayBDb3Jwb3JhdGlvbgorMDAxODNEICAgICAoYmFzZSAxNikJCVZlcnRleCBMaW5rIENvcnBvcmF0aW9uCisJCQkJTWVpdGV0c3UgRnVkb3NhbiBUYWtlYmFzaGkgQmxkZyA2RgorCQkJCTMtMTUgS2FuZGEgTmlzaGlraWNobworCQkJCUNoaXlvZGEta3UgVG9reW8gMTAxLTAwNTQKKwkJCQlKQVBBTgorCiswMC0xOC0zRSAgIChoZXgpCQlEaWdpbGVudCwgSW5jCiswMDE4M0UgICAgIChiYXNlIDE2KQkJRGlnaWxlbnQsIEluYworCQkJCTIxNSBFLiBNYWluIFN0LgorCQkJCVN1aXRlIEQKKwkJCQlQdWxsbWFuIFdBIDk5MTYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zRiAgIChoZXgpCQkyV2lyZSwgSW5jCiswMDE4M0YgICAgIChiYXNlIDE2KQkJMldpcmUsIEluYworCQkJCTE3MDQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTQwICAgKGhleCkJCTMgUGhvZW5peCwgSW5jLgorMDAxODQwICAgICAoYmFzZSAxNikJCTMgUGhvZW5peCwgSW5jLgorCQkJCTEzMTM1IExlZSBKYWNrc29uIEh3eQorCQkJCVN1aXRlIDMzMAorCQkJCUZhaXJmYXggVmlyZ2luaWEgMjIwMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTQxICAgKGhleCkJCUhpZ2ggVGVjaCBDb21wdXRlciBDb3JwCiswMDE4NDEgICAgIChiYXNlIDE2KQkJSGlnaCBUZWNoIENvbXB1dGVyIENvcnAKKwkJCQkyMyBIc2luIEh1YSBSZC4KKwkJCQlUYW95dWFuICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LTQyICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDE4NDIgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAgVgorCQkJCURFTk1BUksKKworMDAtMTgtNDMgICAoaGV4KQkJRGF3ZXZpc2lvbiBMdGQKKzAwMTg0MyAgICAgKGJhc2UgMTYpCQlEYXdldmlzaW9uIEx0ZAorCQkJCTE5NyBIaWdoIFN0cmVldAorCQkJCUNvdHRlbmhhbSBDYW1icmlkZ2UgQ0I0IDhSWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE4LTQ0ICAgKGhleCkJCUhlYWRzIFVwIFRlY2hub2xvZ2llcywgSW5jLgorMDAxODQ0ICAgICAoYmFzZSAxNikJCUhlYWRzIFVwIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTIwMzMgQ2hlbm5hdWx0IERyaXZlLCBTdWl0ZSAxMDAKKwkJCQlDYXJyb2xsdG9uIFRleGFzIDc1MDA2LTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTQ1ICAgKGhleCkJCU5QTCBQdWxzYXIgTHRkLgorMDAxODQ1ICAgICAoYmFzZSAxNikJCU5QTCBQdWxzYXIgTHRkLgorCQkJCVphaGFyb3ZhLCAxOGEKKwkJCQlQZW56YSAgNDQwMDQ0CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTE4LTQ2ICAgKGhleCkJCUNyeXB0byBTLkEuCiswMDE4NDYgICAgIChiYXNlIDE2KQkJQ3J5cHRvIFMuQS4KKwkJCQlWLiBJcGlyb3UgNDUKKwkJCQlNYXJvdXNpIEF0aGVucyAxNTEyNQorCQkJCUdSRUVDRQorCiswMC0xOC00NyAgIChoZXgpCQlBY2VOZXQgVGVjaG5vbG9neSBJbmMuCiswMDE4NDcgICAgIChiYXNlIDE2KQkJQWNlTmV0IFRlY2hub2xvZ3kgSW5jLgorCQkJCTEzMyBWaWVubmEgRHIuCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTQ4ICAgKGhleCkJCVZlY2ltYSBOZXR3b3JrcyBJbmMuCiswMDE4NDggICAgIChiYXNlIDE2KQkJVmVjaW1hIE5ldHdvcmtzIEluYy4KKwkJCQkxNTAgQ2FyZGluYWwgUGxhY2UKKwkJCQlTYXNrYXRvb24gU2sgUzdMIDZINworCQkJCUNBTkFEQQorCiswMC0xOC00OSAgIChoZXgpCQlQaWdlb24gUG9pbnQgU3lzdGVtcworMDAxODQ5ICAgICAoYmFzZSAxNikJCVBpZ2VvbiBQb2ludCBTeXN0ZW1zCisJCQkJMjE5MSBTLiBFbCBDYW1pbm8gUmVhbAorCQkJCVN1aXRlIDIwOQorCQkJCU9jZWFuc2lkZSBDQSA5MjA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNEEgICAoaGV4KQkJQ2F0Y2hlciwgSW5jLgorMDAxODRBICAgICAoYmFzZSAxNikJCUNhdGNoZXIsIEluYy4KKwkJCQk1ODY0IE93ZW5zIEF2ZS4KKwkJCQlTdWl0ZSAxMDEKKwkJCQlDYXJsc2JhZCBDQSA5MjAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNEIgICAoaGV4KQkJTGFzIFZlZ2FzIEdhbWluZywgSW5jLgorMDAxODRCICAgICAoYmFzZSAxNikJCUxhcyBWZWdhcyBHYW1pbmcsIEluYy4KKwkJCQk0MDAwIFdlc3QgQWxpIEJhYmEgTGFuZSwgU3VpdGUgRAorCQkJCUxhcyBWZWdhcyBOZXZhZGEgODkxMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTRDICAgKGhleCkJCUJvZ2VuIENvbW11bmljYXRpb25zCiswMDE4NEMgICAgIChiYXNlIDE2KQkJQm9nZW4gQ29tbXVuaWNhdGlvbnMKKwkJCQk1MCBTcHJpbmcgU3QuCisJCQkJUmFtc2V5IE5KIDA3NDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC00RCAgIChoZXgpCQlOZXRnZWFyIEluYy4KKzAwMTg0RCAgICAgKGJhc2UgMTYpCQlOZXRnZWFyIEluYy4KKwkJCQk0NTAwIEdyZWF0IEFtZXJpY2EgUGFya3dheQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC00RSAgIChoZXgpCQlMaWFuaGUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDE4NEUgICAgIChiYXNlIDE2KQkJTGlhbmhlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTNGLCAjMTE5LCBEYUh1IFNoYW5aaHVhbmcgU3QuCisJCQkJTmVpaHUgRGlzdHJpY3QgVGFpcGVpIENpdHkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC00RiAgIChoZXgpCQk4IFdheXMgVGVjaG5vbG9neSBDb3JwLgorMDAxODRGICAgICAoYmFzZSAxNikJCTggV2F5cyBUZWNobm9sb2d5IENvcnAuCisJCQkJMkYtMSwgTm8uIDIxNiwgU2VjLiAzLCBSb29zZXZlbHQgUmQuCisJCQkJVGFpcGVpIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtNTAgICAoaGV4KQkJU2VjZm9uZSBLZnQKKzAwMTg1MCAgICAgKGJhc2UgMTYpCQlTZWNmb25lIEtmdAorCQkJCTUxIEJlcmNzZW55aSBzdHIKKwkJCQlKYXN6YmVyZW55ICA1MTAwCisJCQkJSFVOR0FSWQorCiswMC0xOC01MSAgIChoZXgpCQlTV3NvZnQKKzAwMTg1MSAgICAgKGJhc2UgMTYpCQlTV3NvZnQKKwkJCQkxMzc1NSBTdW5yaXNlIFZhbGxleSBEcml2ZSwgU3VpdGUgNjAwCisJCQkJSGVybmRvbiBWQSAyMDE3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNTIgICAoaGV4KQkJU3RvckxpbmsgU2VtaWNvbmR1Y3RvcnMsIEluYy4KKzAwMTg1MiAgICAgKGJhc2UgMTYpCQlTdG9yTGluayBTZW1pY29uZHVjdG9ycywgSW5jLgorCQkJCTE4MDQgTi4gU2hvcmVsaW5lIEJvdWxldmFyZAorCQkJCVN1aXRlIDI0MAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTUzICAgKGhleCkJCUF0ZXJhIE5ldHdvcmtzIExURC4KKzAwMTg1MyAgICAgKGJhc2UgMTYpCQlBdGVyYSBOZXR3b3JrcyBMVEQuCisJCQkJMzEsIEhhYmFyemVsIFN0LgorCQkJCVJhbWF0IEhhY2hheWFsCisJCQkJVGVsLUF2aXYgIDY5NzEwCisJCQkJSVNSQUVMCisKKzAwLTE4LTU0ICAgKGhleCkJCUFyZ2FyZCBDby4sIEx0ZAorMDAxODU0ICAgICAoYmFzZSAxNikJCUFyZ2FyZCBDby4sIEx0ZAorCQkJCTI1NzEgTGFyZHByYW8gUmQuCisJCQkJd2FuZ3Rob25nbGFuZyBCYW5na29rIDEwMzEwCisJCQkJVEhBSUxBTkQKKworMDAtMTgtNTUgICAoaGV4KQkJQWVyb21hcml0aW1lIFN5c3RlbWJhdSBHbWJICiswMDE4NTUgICAgIChiYXNlIDE2KQkJQWVyb21hcml0aW1lIFN5c3RlbWJhdSBHbWJICisJCQkJTHVkd2lnLUVyaGFyZC1TdHIuIDE2CisJCQkJRC04NTM3NSBOZXVmYWhybiAKKwkJCQlHRVJNQU5ZCisKKzAwLTE4LTU2ICAgKGhleCkJCUV5ZUZpLCBJbmMKKzAwMTg1NiAgICAgKGJhc2UgMTYpCQlFeWVGaSwgSW5jCisJCQkJMTQ5IENvbW1vbndlYWx0aCBEcml2ZQorCQkJCU1lbmxvIFBhcmsgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTU3ICAgKGhleCkJCVVuaWxldmVyIFImRAorMDAxODU3ICAgICAoYmFzZSAxNikJCVVuaWxldmVyIFImRAorCQkJCUJsZGcuIDUwCisJCQkJU2hhcm5icm9vaworCQkJCUJlZGZvcmQgQmVkZm9yZHNoaXJlIE1LNDQgMUxRCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTgtNTggICAoaGV4KQkJVGFnTWFzdGVyIEFCCiswMDE4NTggICAgIChiYXNlIDE2KQkJVGFnTWFzdGVyIEFCCisJCQkJS3JvbmJvcmdzZ3JhbmQgMQorCQkJCUtpc3RhIFN0b2NraG9sbSBTLTE2NDg3CisJCQkJU1dFREVOCisKKzAwLTE4LTU5ICAgKGhleCkJCVN0cmF3YmVycnkgTGludXggQ28uLEx0ZC4KKzAwMTg1OSAgICAgKGJhc2UgMTYpCQlTdHJhd2JlcnJ5IExpbnV4IENvLixMdGQuCisJCQkJMS0yOC04LTIwNCBIaWdhc2hpYXlhc2UKKwkJCQlBZGFjaGlrdSBUb2t5byAxMjAtMDAwNAorCQkJCUpBUEFOCisKKzAwLTE4LTVBICAgKGhleCkJCXVDb250cm9sLCBJbmMuCiswMDE4NUEgICAgIChiYXNlIDE2KQkJdUNvbnRyb2wsIEluYy4KKwkJCQk1OTE0IFcuIENvdXJ0eWFyZCBEcml2ZQorCQkJCVN1aXRlIDIxMAorCQkJCUF1c3RpbiBUWCA3ODczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNUIgICAoaGV4KQkJTmV0d29yayBDaGVtaXN0cnksIEluYworMDAxODVCICAgICAoYmFzZSAxNikJCU5ldHdvcmsgQ2hlbWlzdHJ5LCBJbmMKKwkJCQkxODA0IEVtYmFyY2FkZXJvIFJkCisJCQkJUGFsbyBBbHRvIENBIDk0MzAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC01QyAgIChoZXgpCQlFRFMgTGFiIFB0ZSBMdGQKKzAwMTg1QyAgICAgKGJhc2UgMTYpCQlFRFMgTGFiIFB0ZSBMdGQKKwkJCQkyMCBBeWVyIFJhamFoIENyZXNjZW50CisJCQkJIzA4LTI2CisJCQkJMTM5OTY0CisJCQkJU0lOR0FQT1JFCisKKzAwLTE4LTVEICAgKGhleCkJCVRBSUdVRU4gVEVDSE5PTE9HWSAoU0hFTi1aSEVOKSBDTy4sIExURC4KKzAwMTg1RCAgICAgKGJhc2UgMTYpCQlUQUlHVUVOIFRFQ0hOT0xPR1kgKFNIRU4tWkhFTikgQ08uLCBMVEQuCisJCQkJTm8uIDIzLCBUaGUgVGhpcmQgSW5kdXN0cmlhbCBQYXJrIG9mIFhpYSBWaWxsYWdlLAorCQkJCUdvbmdtaW5nLCBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBDaXR5LCBHdWFuZ2RvbmcsIDgxNTEwNgorCQkJCUNISU5BCisKKzAwLTE4LTVFICAgKGhleCkJCU5leHRlcm0gSW5jLgorMDAxODVFICAgICAoYmFzZSAxNikJCU5leHRlcm0gSW5jLgorCQkJCTEtMTItMywgU2hpYmF1cmEsIE1pbmF0by1rdSwKKwkJCQlUb2t5byAgMTA1LTAwMjMKKwkJCQlKQVBBTgorCiswMC0xOC01RiAgIChoZXgpCQlUQUMgSW5jLgorMDAxODVGICAgICAoYmFzZSAxNikJCVRBQyBJbmMuCisJCQkJNjYgTmlzaGlpc2hpZ2F0c3Vib2NobyBOaXNoaW5hbmFqeW8gU2hpbW9neW9rdQorCQkJCUt5b3RvICA2MDAtODg5NgorCQkJCUpBUEFOCisKKzAwLTE4LTYwICAgKGhleCkJCVNJTSBUZWNobm9sb2d5IEdyb3VwIFNoYW5naGFpIFNpbWNvbSBMdGQuLAorMDAxODYwICAgICAoYmFzZSAxNikJCVNJTSBUZWNobm9sb2d5IEdyb3VwIFNoYW5naGFpIFNpbWNvbSBMdGQuLAorCQkJCVNJTSBUZWNobm9sb2d5IGJ1aWxkaW5nLAorCQkJCTcwMCBZaXNoYW4gUmQsIFNoYW5naGFpIDIwMDIzMworCQkJCVNoYW5naGFpICAyMDAyMzMKKwkJCQlDSElOQQorCiswMC0xOC02MSAgIChoZXgpCQlPb21hLCBJbmMuCiswMDE4NjEgICAgIChiYXNlIDE2KQkJT29tYSwgSW5jLgorCQkJCTU1NSBVbml2ZXJzaXR5IEF2ZW51ZQorCQkJCVBhbG8gQWx0byBDQSA5NDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNjIgICAoaGV4KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CiswMDE4NjIgICAgIChiYXNlIDE2KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CisJCQkJMTI4MCBEaXNjIERyaXZlCisJCQkJU2hha29wZWUgTU4gNTUzNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTYzICAgKGhleCkJCVZlcml0ZWNoIEVsZWN0cm9uaWNzIExpbWl0ZWQKKzAwMTg2MyAgICAgKGJhc2UgMTYpCQlWZXJpdGVjaCBFbGVjdHJvbmljcyBMaW1pdGVkCisJCQkJOEYsIDY3LCBTZWMuIDEsIFpob25nc2hhbiBSb2FkLCBYaW56aHVhbmcsCisJCQkJVGFpcGVpICAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LTY0ICAgKGhleCkJCUN5YmVjdGVjIEluYy4KKzAwMTg2NCAgICAgKGJhc2UgMTYpCQlDeWJlY3RlYyBJbmMuCisJCQkJNzMwLCBydWUgQ29tbWVyY2lhbGUKKwkJCQlTdWl0ZSAyMDAKKwkJCQlTdC1KZWFuLUNocnlzb3N0b21lIFFDIEc2WiAyQzUKKwkJCQlDQU5BREEKKworMDAtMTgtNjUgICAoaGV4KQkJU2llbWVucyBIZWFsdGhjYXJlIERpYWdub3N0aWNzIE1hbnVmYWN0dXJpbmcgTHRkCiswMDE4NjUgICAgIChiYXNlIDE2KQkJU2llbWVucyBIZWFsdGhjYXJlIERpYWdub3N0aWNzIE1hbnVmYWN0dXJpbmcgTHRkCisJCQkJTm9ydGhlcm4gUm9hZAorCQkJCUNoaWx0b24gSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlTdWRidXJ5IFN1ZmZvbGsgQzAxMCAyWFEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOC02NiAgIChoZXgpCQlMZXV0cm9uIFZpc2lvbgorMDAxODY2ICAgICAoYmFzZSAxNikJCUxldXRyb24gVmlzaW9uCisJCQkJSW5kdXN0cmllc3RyYXNzZSA1NworCQkJCUdsYXR0YnJ1Z2cgWkggODE1MgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE4LTY3ICAgKGhleCkJCUV2b2x1dGlvbiBSb2JvdGljcyBSZXRhaWwKKzAwMTg2NyAgICAgKGJhc2UgMTYpCQlFdm9sdXRpb24gUm9ib3RpY3MgUmV0YWlsCisJCQkJNDMzIE4uIEZhaXIgT2FrcyBBdmUKKwkJCQlQYXNhZGVuYSBDQSA5MTEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNjggICAoaGV4KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBBIENpc2NvIENvbXBhbnkKKzAwMTg2OCAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIEF0bGFudGEsIEEgQ2lzY28gQ29tcGFueQorCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC02OSAgIChoZXgpCQlLSU5HSklNCiswMDE4NjkgICAgIChiYXNlIDE2KQkJS0lOR0pJTQorCQkJCU5vLjEwLTE4LDItQ2hvbWUKKwkJCQlIaWdhc2hpLUthbmRhCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtMDAzMQorCQkJCUpBUEFOCisKKzAwLTE4LTZBICAgKGhleCkJCUdsb2JhbCBMaW5rIERpZ2l0YWwgVGVjaG5vbG9neSBDbywuTFRECiswMDE4NkEgICAgIChiYXNlIDE2KQkJR2xvYmFsIExpbmsgRGlnaXRhbCBUZWNobm9sb2d5IENvLC5MVEQKKwkJCQlRaWJhb3lpZGluZyBJbmQuQXJlYQorCQkJCUxpdWNob25nd2VpIFdhbmppYW5nIHRvd24KKwkJCQlEb25nZ3VhbiBHdWFuZ2RvbmcgNTIzMDUxCisJCQkJQ0hJTkEKKworMDAtMTgtNkIgICAoaGV4KQkJU2FtYnUgQ29tbXVuaWNzIENPLiwgTFRELgorMDAxODZCICAgICAoYmFzZSAxNikJCVNhbWJ1IENvbW11bmljcyBDTy4sIExURC4KKwkJCQkzOEItMUwgTmFtZG9uZyBJbmR1c3RyaWFsIENvbXBsZXgKKwkJCQk2MjYgTmFtY2hvbi1kb25nLCBOYW1kb25nLWd1CisJCQkJSW5jaGVvbiAgNDA1LTEwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC02QyAgIChoZXgpCQlOZW9ub2RlIEFCCiswMDE4NkMgICAgIChiYXNlIDE2KQkJTmVvbm9kZSBBQgorCQkJCUJpYmxpb3Rla3NnYXRhbiAxMSwgMXN0IGZsb29yCisJCQkJU3RvY2tob2xtICBTLTExMSA0NgorCQkJCVNXRURFTgorCiswMC0xOC02RCAgIChoZXgpCQlaaGVuamlhbmcgU2FwcGhpcmUgRWxlY3Ryb25pYyBJbmR1c3RyeSBDTy4KKzAwMTg2RCAgICAgKGJhc2UgMTYpCQlaaGVuamlhbmcgU2FwcGhpcmUgRWxlY3Ryb25pYyBJbmR1c3RyeSBDTy4KKwkJCQlXZWkgU2FuIFJvYWQsRGluZ21hbyBEZXZlbG9wIEFyZWEKKwkJCQl6aGVuamlhbmcgamlhbmdzdSAyMTIwMDkKKwkJCQlDSElOQQorCiswMC0xOC02RSAgIChoZXgpCQkzQ29tIEx0ZAorMDAxODZFICAgICAoYmFzZSAxNikJCTNDb20gTHRkCisJCQkJUGVvcGxlYnVpbGRpbmcgMgorCQkJCVBlb3BsZWJ1aWxkaW5nIEVzdGF0ZSwgTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzLiBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTgtNkYgICAoaGV4KQkJU2V0aGEgSW5kdXN0cmlhIEVsZXRyb25pY2EgTFREQQorMDAxODZGICAgICAoYmFzZSAxNikJCVNldGhhIEluZHVzdHJpYSBFbGV0cm9uaWNhIExUREEKKwkJCQlSdWEgQWx2YXJvIGRlIE1hY2VkbyAxMzQKKwkJCQlQYXJhZGEgZGUgTHVjYXMKKwkJCQlSaW8gZGUgSmFuZWlybyBSSiAyMS4yNTAtNjIwCisJCQkJQlJBWklMCisKKzAwLTE4LTcwICAgKGhleCkJCUUyOCBTaGFuZ2hhaSBMaW1pdGVkCiswMDE4NzAgICAgIChiYXNlIDE2KQkJRTI4IFNoYW5naGFpIExpbWl0ZWQKKwkJCQkyL0YgRWFzdGVybiBUb3dlcgorCQkJCTY4OSBCZWlqaW5nIFJvYWQgKEVhc3QpCisJCQkJU2hhbmdoYWkgIDIwMDAwMQorCQkJCUNISU5BCisKKzAwLTE4LTcxICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxODcxICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJTVMwNDA4MDEKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC03MiAgIChoZXgpCQlFeHBlcnRpc2UgRW5naW5lZXJpbmcKKzAwMTg3MiAgICAgKGJhc2UgMTYpCQlFeHBlcnRpc2UgRW5naW5lZXJpbmcKKwkJCQk0MTg2IFNvcnJlbnRvIFZhbGxleSBCbHZkIFN1aXRlIC1KCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC03MyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE4NzMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC03NCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE4NzQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC03NSAgIChoZXgpCQlBbmFDaXNlIFRlc3Rub2xvZ3kgUHRlIEx0ZAorMDAxODc1ICAgICAoYmFzZSAxNikJCUFuYUNpc2UgVGVzdG5vbG9neSBQdGUgTHRkCisJCQkJMyBCaXNoYW4gUGxhY2UgIzAyLTA2CisJCQkJQ1BGIEJpc2hhbiBCdWlsZGluZworCQkJCTU3OTgzOAorCQkJCVNJTkdBUE9SRQorCiswMC0xOC03NiAgIChoZXgpCQlXb3dXZWUgTHRkLgorMDAxODc2ICAgICAoYmFzZSAxNikJCVdvd1dlZSBMdGQuCisJCQkJOTIgR3JhbnZpbGxlIFJkLiBTdWl0ZSAzMDFBLUMKKwkJCQlFbmVyZ3kgUGxhemEKKwkJCQlULlMuVC4gRWFzdCBLb3dsb29uIAorCQkJCUhPTkcgS09ORworCiswMC0xOC03NyAgIChoZXgpCQlBbXBsZXggQS9TCiswMDE4NzcgICAgIChiYXNlIDE2KQkJQW1wbGV4IEEvUworCQkJCVNpbGtlYm9yZ3ZlaiAyCisJCQkJQWFyaHVzIEMgIDgwMDAKKwkJCQlERU5NQVJLCisKKzAwLTE4LTc4ICAgKGhleCkJCU1hY2t3YXJlIEdtYkgKKzAwMTg3OCAgICAgKGJhc2UgMTYpCQlNYWNrd2FyZSBHbWJICisJCQkJU2NoYW56bGUgMTMKKwkJCQlXYWlibGluZ2VuIEJhZGVuLVd1cnR0ZW1iZXJnIDcxMzMyCisJCQkJR0VSTUFOWQorCiswMC0xOC03OSAgIChoZXgpCQlkU3lzCiswMDE4NzkgICAgIChiYXNlIDE2KQkJZFN5cworCQkJCVNvZWZsaW5nZXIgU3RyLiAxMDAKKwkJCQlVbG0gQlcgODkwNzcKKwkJCQlHRVJNQU5ZCisKKzAwLTE4LTdBICAgKGhleCkJCVdpcmVtb2xkCiswMDE4N0EgICAgIChiYXNlIDE2KQkJV2lyZW1vbGQKKwkJCQk2MCBXb29kbGF3biBTdC4KKwkJCQlXZXN0IEhhcnRmb3JkIENUIDA2MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC03QiAgIChoZXgpCQk0TlNZUyBDby4gTHRkLgorMDAxODdCICAgICAoYmFzZSAxNikJCTROU1lTIENvLiBMdGQuCisJCQkJM0YsIEhhbmEgQmxkZworCQkJCTExOC0yLCBPcnl1LURvbmcKKwkJCQlHdXJvLUd1IFNlb3VsIDE1Mi0xMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtN0MgICAoaGV4KQkJSU5URVJDUk9TUywgTExDCiswMDE4N0MgICAgIChiYXNlIDE2KQkJSU5URVJDUk9TUywgTExDCisJCQkJTm92b3NlbG92IHN0ci4sIDU4LzcKKwkJCQlSeWF6YW4gIDM5MDA0OQorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xOC03RCAgIChoZXgpCQlBcm1vcmxpbmsgc2hhbmdoYWkgQ28uIEx0ZAorMDAxODdEICAgICAoYmFzZSAxNikJCUFybW9ybGluayBzaGFuZ2hhaSBDby4gTHRkCisJCQkJTk8gNTE1LCBTaGVuZ2Z1IHJvYWQKKwkJCQlTaGFuZ2hhaSAgMjAxMTA4CisJCQkJQ0hJTkEKKworMDAtMTgtN0UgICAoaGV4KQkJUkdCIFNwZWN0cnVtCiswMDE4N0UgICAgIChiYXNlIDE2KQkJUkdCIFNwZWN0cnVtCisJCQkJOTUwIE1hcmluYSBWaWxsYWdlIFBrd3kKKwkJCQlBbGFtZWRhIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC03RiAgIChoZXgpCQlaT0RJQU5FVAorMDAxODdGICAgICAoYmFzZSAxNikJCVpPRElBTkVUCisJCQkJMjMsIHJ1ZSBkZXMgRnJhaXNldHRlcworCQkJCVBBTEFJU0VBVSBFU1NPTk5FIDkxMTIwCisJCQkJRlJBTkNFCisKKzAwLTE4LTgwICAgKGhleCkJCU1heGltIEludGVncmF0ZWQgQ2lyY3VpdHMKKzAwMTg4MCAgICAgKGJhc2UgMTYpCQlNYXhpbSBJbnRlZ3JhdGVkIENpcmN1aXRzCisJCQkJMjkwMCBMYWtlc2lkZSBEcml2ZQorCQkJCVN1aXRlIDEwMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC04MSAgIChoZXgpCQlCdXlhbmcgRWxlY3Ryb25pY3MgSW5kdXN0cmlhbCBDby4sIEx0ZAorMDAxODgxICAgICAoYmFzZSAxNikJCUJ1eWFuZyBFbGVjdHJvbmljcyBJbmR1c3RyaWFsIENvLiwgTHRkCisJCQkJNDM0LTE0MCwgT3J5dS1Eb25nCisJCQkJU2VvLUt1CisJCQkJSW5jaGVvbiAgNDA0LTMwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC04MiAgIChoZXgpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAxODgyICAgICAoYmFzZSAxNikJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJRjEtMjAsU2VjdGlvbiBGLEh1YXdlaSBCYXNlLEJhbnRpYW4sIExvbmdnYW5nIERpc3RyaWN0CisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODEyOQorCQkJCUNISU5BCisKKzAwLTE4LTgzICAgKGhleCkJCUZPUk1PU0EyMSBJTkMuCiswMDE4ODMgICAgIChiYXNlIDE2KQkJRk9STU9TQTIxIElOQy4KKwkJCQk4Ri02LCBOTy4zNTEsIENIVU5HIFNIQU4gUkQuLCBTRUMuMgorCQkJCUNIVU5HIEhPIENJVFkKKwkJCQlUQUlQRUkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtODQgICAoaGV4KQkJRk9OCiswMDE4ODQgICAgIChiYXNlIDE2KQkJRk9OCisJCQkJQXZkYS4gQnJ1c2VsYXMsIG4uIDcsIFBsYW50YSAzLCBBbGNvYmVuZGFzCisJCQkJTWFkcmlkIDI4MTAwCisJCQkJU1BBSU4KKworMDAtMTgtODUgICAoaGV4KQkJQXZpZ2lsb24gQ29ycG9yYXRpb24KKzAwMTg4NSAgICAgKGJhc2UgMTYpCQlBdmlnaWxvbiBDb3Jwb3JhdGlvbgorCQkJCUJveCAzNzgsIDEwMSAtIDEwMDEgV2VzdCBCcm9hZHdheQorCQkJCVZhbmNvdXZlciBCQyBWNkggNEU0CisJCQkJQ0FOQURBCisKKzAwLTE4LTg2ICAgKGhleCkJCUVMLVRFQ0gsIElOQy4KKzAwMTg4NiAgICAgKGJhc2UgMTYpCQlFTC1URUNILCBJTkMuCisJCQkJQS03MTEsIFdPT0xJTSBMSU9OJ1MgVkFMTEVZLCAzNzEtMjgKKwkJCQlHQVNBTi1ET05HLCBHRVVNQ0hFT04tR1UsCisJCQkJU0VPVUwgIDE1MC04MzQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtODcgICAoaGV4KQkJTWV0YXN5c3RlbSBTcEEKKzAwMTg4NyAgICAgKGJhc2UgMTYpCQlNZXRhc3lzdGVtIFNwQQorCQkJCVZpYSBPYmVyZGFuIDE2CisJCQkJUmVnZ2lvIEVtaWxpYSBSRSA0MjEwMAorCQkJCUlUQUxZCisKKzAwLTE4LTg4ICAgKGhleCkJCUdPVElWRSBhLnMuCiswMDE4ODggICAgIChiYXNlIDE2KQkJR09USVZFIGEucy4KKwkJCQlaYW1vY2thIDM0CisJCQkJQnJhdGlzbGF2YSAgODExMDEKKwkJCQlTTE9WQUtJQQorCiswMC0xOC04OSAgIChoZXgpCQlXaW5OZXQgU29sdXRpb25zIExpbWl0ZWQKKzAwMTg4OSAgICAgKGJhc2UgMTYpCQlXaW5OZXQgU29sdXRpb25zIExpbWl0ZWQKKwkJCQlSbTgwNCwgS29ybmhpbGwgTWV0cm8gVG93ZXIsIFF1YXJyeSBCYXkKKwkJCQlISyA4NTIKKwkJCQlIT05HIEtPTkcKKworMDAtMTgtOEEgICAoaGV4KQkJSW5maW5vdmEgTExDCiswMDE4OEEgICAgIChiYXNlIDE2KQkJSW5maW5vdmEgTExDCisJCQkJNTEgU3RvdXRzIExhbmUsIFVuaXQgMSAmIDIKKwkJCQlNb25tb3V0aCBKdW5jdGlvbiBOZXcgSmVyc2V5IDA4ODUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC04QiAgIChoZXgpCQlEZWxsCiswMDE4OEIgICAgIChiYXNlIDE2KQkJRGVsbAorCQkJCU9uZSBEZWxsIFdheQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LThDICAgKGhleCkJCU1vYmlsZSBBY3Rpb24gVGVjaG5vbG9neSBJbmMuCiswMDE4OEMgICAgIChiYXNlIDE2KQkJTW9iaWxlIEFjdGlvbiBUZWNobm9sb2d5IEluYy4KKwkJCQk1RiwgTm8uIDIwNS0zLCBTZWMuIDMsIEJlaXNoaW4gUmQuCisJCQkJU2hpbmRpYW4gQ2l0eSwgVGFpcGVpICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LThEICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDE4OEQgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIDE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTE4LThFICAgKGhleCkJCUVrYWhhdSwgSW5jLgorMDAxODhFICAgICAoYmFzZSAxNikJCUVrYWhhdSwgSW5jLgorCQkJCVRhbGxiZXJnaW5rYXR1IDIKKwkJCQlIRUxTSU5LSSBVVVNJTUFBIDAwMTgwCisJCQkJRklOTEFORAorCiswMC0xOC04RiAgIChoZXgpCQlNb250Z29tZXJ5IFRlY2hub2xvZ3ksIEluYy4KKzAwMTg4RiAgICAgKGJhc2UgMTYpCQlNb250Z29tZXJ5IFRlY2hub2xvZ3ksIEluYy4KKwkJCQk4MDAgRWFzdCBDb21tZXJjZSBTdHJlZXQKKwkJCQlHcmVlbnZpbGxlIEFMIDM2MDM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC05MCAgIChoZXgpCQlSYWRpb0NPTSwgcy5yLm8uCiswMDE4OTAgICAgIChiYXNlIDE2KQkJUmFkaW9DT00sIHMuci5vLgorCQkJCU1pc2lrb3ZhIDIyCisJCQkJQnJhdGlzbGF2YSAgODExIDA2CisJCQkJU0xPVkFLSUEKKworMDAtMTgtOTEgICAoaGV4KQkJWmhvbmdzaGFuIEdlbmVyYWwgSy1tYXRlIEVsZWN0cm9uaWNzIENvLiwgTHRkCiswMDE4OTEgICAgIChiYXNlIDE2KQkJWmhvbmdzaGFuIEdlbmVyYWwgSy1tYXRlIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJMy9GIEIxIEJ1aWxkaW5nLCBGdXdhbiBJbmQuIFpvbmUgU3VuIFdlbiBFYXN0IFJvYWQKKwkJCQlaaG9uZ3NoYW4gR3Vhbmdkb25nIDUyODQwMworCQkJCUNISU5BCisKKzAwLTE4LTkyICAgKGhleCkJCWFkcy10ZWMgR21iSAorMDAxODkyICAgICAoYmFzZSAxNikJCWFkcy10ZWMgR21iSAorCQkJCVJhaWZmZWlzZW5zdHJhc3NlIDE0CisJCQkJTGVpbmZlbGRlbi1FY2h0ZXJkaW5nZW4gQmFkZW4tV3VydHRlbWJlcmcgNzA3NzEKKwkJCQlHRVJNQU5ZCisKKzAwLTE4LTkzICAgKGhleCkJCVNIRU5aSEVOIFBIT1RPTiBCUk9BREJBTkQgVEVDSE5PTE9HWSBDTy4sTFRECiswMDE4OTMgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gUEhPVE9OIEJST0FEQkFORCBURUNITk9MT0dZIENPLixMVEQKKwkJCQkyL0YgSGl2YWMgQkxELDJ0aCBMYW5nc2hhbiBSZCxOb3J0aCBIaS1UZWNoIEluZHVzdHJpYWwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMTgtOTQgICAoaGV4KQkJemltb2NvbQorMDAxODk0ICAgICAoYmFzZSAxNikJCXppbW9jb20KKwkJCQkzfjVGLCBCb25nVWkgQmxkZywgNzYtMSwgTXVuamVvbmctZG9uZworCQkJCVNvbmdwYWd1CisJCQkJU2VvdWwgIDEzOC0yMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtOTUgICAoaGV4KQkJSGFuc3VuIFRlY2hub2xvZ2llcyBJbmMuCiswMDE4OTUgICAgIChiYXNlIDE2KQkJSGFuc3VuIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJUm9vbSAzMDEsIEJ1aWxkaW5nIDEwMywgV2FuZ2ppbmdrZWppeXVhbiwgQ2hhb3lhbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAxMDIKKwkJCQlDSElOQQorCiswMC0xOC05NiAgIChoZXgpCQlHcmVhdCBXZWxsIEVsZWN0cm9uaWMgTFRECiswMDE4OTYgICAgIChiYXNlIDE2KQkJR3JlYXQgV2VsbCBFbGVjdHJvbmljIExURAorCQkJCVRoZSBUaGlyZCBJbmR1c3RyaWFsICBBcmVhCisJCQkJR3VhbmxhbiBUb3duCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODExMAorCQkJCUNISU5BCisKKzAwLTE4LTk3ICAgKGhleCkJCUpFU1MtTElOSyBQUk9EVUNUUyBDby4sIExURAorMDAxODk3ICAgICAoYmFzZSAxNikJCUpFU1MtTElOSyBQUk9EVUNUUyBDby4sIExURAorCQkJCTlGLCBOby4gMTc2LCBKaWFuLVlpIFJkLiwgQ2h1bmcgSG8gQ2l0eQorCQkJCVRhaXBlaSBDb3VudHkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtOTggICAoaGV4KQkJS0lOR1NUQVRFIEVMRUNUUk9OSUNTIENPUlBPUkFUSU9OCiswMDE4OTggICAgIChiYXNlIDE2KQkJS0lOR1NUQVRFIEVMRUNUUk9OSUNTIENPUlBPUkFUSU9OCisJCQkJMTBGLCBOby42OS0xMSwgU2VjLjIsIENodW5nIENoZW5nIEUuIFJkLiwKKwkJCQlUYW1zaHVpIFRvd24KKwkJCQlUYWlwZWkgQ291bnR5ICAyNTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LTk5ICAgKGhleCkJCVNoZW5aaGVuIGppZXNodW4gU2NpZW5jZSZUZWNobm9sb2d5IEluZHVzdHJ5IENPLExURC4KKzAwMTg5OSAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBqaWVzaHVuIFNjaWVuY2UmVGVjaG5vbG9neSBJbmR1c3RyeSBDTyxMVEQuCisJCQkJQ2hpbmEgR3VhbmdEb25nIHN0YXRlIFNoZW56aGVuIENpdHkgRnV0aWFuIHNlY3Rpb24gTk8xNy4gTWVpbGluIFJvYWQKKwkJCQlTaGVuemhlbiBHdWFuZ0RvbmcgNTE4MDQ5CisJCQkJQ0hJTkEKKworMDAtMTgtOUEgICAoaGV4KQkJSEFOQSBNaWNyb24gSW5jLgorMDAxODlBICAgICAoYmFzZSAxNikJCUhBTkEgTWljcm9uIEluYy4KKwkJCQkjOTUtMSBXb25uYW0tTGksIFVtYm9uZy1NeWVvbgorCQkJCUNodW5nLU5hbSwgU291dGggS29yZWEuCisJCQkJQXNhbi1DaXR5IENodW5nLU5hbSAzMzYtODY0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LTlCICAgKGhleCkJCVRob21zb24gSW5jLgorMDAxODlCICAgICAoYmFzZSAxNikJCVRob21zb24gSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MC0xMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC05QyAgIChoZXgpCQlXZWxkZXggQ29ycG9yYXRpb24KKzAwMTg5QyAgICAgKGJhc2UgMTYpCQlXZWxkZXggQ29ycG9yYXRpb24KKwkJCQk2NzUxIEthdGVsbGEgQXZlbnVlCisJCQkJQ3lwcmVzcyBDQSA5MDYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtOUQgICAoaGV4KQkJTmF2Y2FzdCBJbmMuCiswMDE4OUQgICAgIChiYXNlIDE2KQkJTmF2Y2FzdCBJbmMuCisJCQkJU3VpdGUgNjEyLCA2NzExIE1pc3Npc3NhdWdhIFJvYWQKKwkJCQlNaXNzaXNzYXVnYSBPTiBtMnIgMWEzCisJCQkJQ0FOQURBCisKKzAwLTE4LTlFICAgKGhleCkJCU9NTklLRVkgR21iSC4KKzAwMTg5RSAgICAgKGJhc2UgMTYpCQlPTU5JS0VZIEdtYkguCisJCQkJRmVyaWh1bWVyc3RyYXNzZSAxMworCQkJCUxpbnogVXBwZXJhdXN0cmlhIDQwNDAKKwkJCQlBVVNUUklBCisKKzAwLTE4LTlGICAgKGhleCkJCUxlbm50ZWsgQ29ycG9yYXRpb24KKzAwMTg5RiAgICAgKGJhc2UgMTYpCQlMZW5udGVrIENvcnBvcmF0aW9uCisJCQkJNEYsIDEyNSBHdWFuZ01pbmcgM3JkLiBSb2FkCisJCQkJSmh1IEJlaSBIc2luIENodSAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LUEwICAgKGhleCkJCUNpZXJtYSBBc2NlbnNldXJzCiswMDE4QTAgICAgIChiYXNlIDE2KQkJQ2llcm1hIEFzY2Vuc2V1cnMKKwkJCQkxNyBhdmVudWUgZ3VpZ2xpb25kYSBkZSBzYWludCBhZ2F0aGUKKwkJCQlOaWNlIFBBQ0EgMDYzMDAKKwkJCQlGUkFOQ0UKKworMDAtMTgtQTEgICAoaGV4KQkJVGlxaXQgQ29tcHV0ZXJzLCBJbmMuCiswMDE4QTEgICAgIChiYXNlIDE2KQkJVGlxaXQgQ29tcHV0ZXJzLCBJbmMuCisJCQkJMjIxNSBPbGQgUGFnZSBNaWxsIFJkCisJCQkJUGFsbyBBbHRvIENBIDk0MzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1BMiAgIChoZXgpCQlYSVAgVGVjaG5vbG9neSBBQgorMDAxOEEyICAgICAoYmFzZSAxNikJCVhJUCBUZWNobm9sb2d5IEFCCisJCQkJUE8gQm94IDQzNworCQkJCUpvbmtvcGluZyBTd2VkZW4gU0UtIDU1MSAxNgorCQkJCVNXRURFTgorCiswMC0xOC1BMyAgIChoZXgpCQlaSVBQWSBURUNITk9MT0dZIENPUlAuCiswMDE4QTMgICAgIChiYXNlIDE2KQkJWklQUFkgVEVDSE5PTE9HWSBDT1JQLgorCQkJCTEwRiwgTm8uIDUwLCBNaW5jeXVhbiBSZC4sIFNpbmRpYW4gQ2l0eQorCQkJCVRhaXBlaSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC1BNCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGUgRGV2aWNlcworMDAxOEE0ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsZSBEZXZpY2VzCisJCQkJNjAwIE4uIEh3eSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtQTUgICAoaGV4KQkJQURpZ2l0IFRlY2hub2xvZ2llcyBDb3JwLgorMDAxOEE1ICAgICAoYmFzZSAxNikJCUFEaWdpdCBUZWNobm9sb2dpZXMgQ29ycC4KKwkJCQlSbSBEMzAyRSxOby4xODUgM0YtMixLdXItV29uZyBSb2FkLAorCQkJCUx1bmctVGFuZywKKwkJCQlUYW8teXVhbiwgIDMyNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtQTYgICAoaGV4KQkJUGVyc2lzdGVudCBTeXN0ZW1zLCBMTEMKKzAwMThBNiAgICAgKGJhc2UgMTYpCQlQZXJzaXN0ZW50IFN5c3RlbXMsIExMQworCQkJCTExOCBOLiBIb3dhcmQgU3QuICM3MgorCQkJCUJhbHRpbW9yZSBNRCAyMTIwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtQTcgICAoaGV4KQkJWW9nZ2llIFNlY3VyaXR5IFN5c3RlbXMgTFRELgorMDAxOEE3ICAgICAoYmFzZSAxNikJCVlvZ2dpZSBTZWN1cml0eSBTeXN0ZW1zIExURC4KKwkJCQlQLlAuQm94IDE1NgorCQkJCUJldGggSGFsZXZ5ICA0Mjg3MAorCQkJCUlTUkFFTAorCiswMC0xOC1BOCAgIChoZXgpCQlBbk5lYWwgVGVjaG5vbG9neSBJbmMuCiswMDE4QTggICAgIChiYXNlIDE2KQkJQW5OZWFsIFRlY2hub2xvZ3kgSW5jLgorCQkJCU5vLjMwLTExLCBXdW5odWEgUmQuLCBNaW5zeW9uZworCQkJCUNoaWF5aSAgNjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC1BOSAgIChoZXgpCQlFdGhlcm5ldCBEaXJlY3QgQ29ycG9yYXRpb24KKzAwMThBOSAgICAgKGJhc2UgMTYpCQlFdGhlcm5ldCBEaXJlY3QgQ29ycG9yYXRpb24KKwkJCQkxOUYsTm8uMzQ1IENodW5nIEhvIFJvYWQsIFl1bmcgSG8gQ2l0eQorCQkJCVRhaXBlaSAgMjM0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC1BQSAgIChoZXgpCQlQcm90ZWMgRmlyZSBEZXRlY3Rpb24gcGxjCiswMDE4QUEgICAgIChiYXNlIDE2KQkJUHJvdGVjIEZpcmUgRGV0ZWN0aW9uIHBsYworCQkJCVByb3RlYyBIb3VzZQorCQkJCUNodXJjaGlsbCBXYXkKKwkJCQlOZWxzb24gTGFuY2FzaGlyZSBCQjkgNlJUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTgtQUIgICAoaGV4KQkJQkVJSklORyBMSFdUIE1JQ1JPRUxFQ1RST05JQ1MgSU5DLgorMDAxOEFCICAgICAoYmFzZSAxNikJCUJFSUpJTkcgTEhXVCBNSUNST0VMRUNUUk9OSUNTIElOQy4KKwkJCQkxOC9GLFFVQU5UVU0gUExBWkEsTk8uMjcgWkhJIENIVU4gUkQuLEhBSSBESUFOIERJU1RSSUNULEJFSUpJTkcKKwkJCQlDSElOQQorCiswMC0xOC1BQyAgIChoZXgpCQlTaGFuZ2hhaSBKaWFvIERhIEhJU1lTIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKzAwMThBQyAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBKaWFvIERhIEhJU1lTIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKwkJCQk3RiBIYW9yYW4gSGlUZWNoIEJsZGcuLCBOby4xOTU0IEh1YXNoYW4gUm9hZAorCQkJCXNoYW5naGFpIHh1aHVpIDIwMDAzMAorCQkJCUNISU5BCisKKzAwLTE4LUFEICAgKGhleCkJCU5JREVDIFNBTktZTyBDT1JQT1JBVElPTgorMDAxOEFEICAgICAoYmFzZSAxNikJCU5JREVDIFNBTktZTyBDT1JQT1JBVElPTgorCQkJCTUzMjksIFNoaW1vc3V3YS1tYWNoaSwgU3V3YS1ndW4KKwkJCQlOYWdhbm8gMzkzLTg1MTEKKwkJCQlKQVBBTgorCiswMC0xOC1BRSAgIChoZXgpCQlUVlQgQ08uLExURAorMDAxOEFFICAgICAoYmFzZSAxNikJCVRWVCBDTy4sTFRECisJCQkJNS9GLE5vcnRoIEJsb2NrLENFIExpZ2h0aW5nIEhvdXNlCisJCQkJSGktdGVjaCBQYXJrLCBOYW5zaGFuIERpc3RyaWN0LAorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyA1MTgwMjYKKwkJCQlDSElOQQorCiswMC0xOC1BRiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxOEFGICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pLUNpdHkgR3llb25nLUJ1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LUIwICAgKGhleCkJCU5vcnRlbAorMDAxOEIwICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xOC1CMSAgIChoZXgpCQlJQk0gQ29ycAorMDAxOEIxICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMjA1MSBNaXNzaW9uIENvbGxlZ2UgQmx2ZCAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtQjIgICAoaGV4KQkJQURFVU5JUyBSRgorMDAxOEIyICAgICAoYmFzZSAxNikJCUFERVVOSVMgUkYKKwkJCQkyODMgUnVlIE5FRUwKKwkJCQlDUk9MTEVTIElTRVJFIDM4OTIwCisJCQkJRlJBTkNFCisKKzAwLTE4LUIzICAgKGhleCkJCVRFQyBXaXpIb21lIENvLiwgTHRkLgorMDAxOEIzICAgICAoYmFzZSAxNikJCVRFQyBXaXpIb21lIENvLiwgTHRkLgorCQkJCTE4ZmwuLCBJbi1Tb25nIGJsZGcuLCAxOTQtMTUsCisJCQkJSGVvaHl1bi1Eb25nLCAxR2EsIEp1bmctR3UKKwkJCQlTZW91bCAgMTAwLTk1MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC1CNCAgIChoZXgpCQlEYXdvbiBNZWRpYSBJbmMuCiswMDE4QjQgICAgIChiYXNlIDE2KQkJRGF3b24gTWVkaWEgSW5jLgorCQkJCVJtNTAzLiB3b29saW0gZS1iaXogY2VudGVyIDE3MC01LCBHdXJvM2RvbmcgR3Vyb2d1LAorCQkJCVNlb3VsICAxNTItNzY5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LUI1ICAgKGhleCkJCU1hZ25hIENhcnRhCiswMDE4QjUgICAgIChiYXNlIDE2KQkJTWFnbmEgQ2FydGEKKwkJCQlOYXJpdGF3ZWcgMTI2CisJCQkJQW1zdGVyZGFtIE5vb3JkIEhvbGxhbmQgMTA0MyBDQQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE4LUI2ICAgKGhleCkJCVMzQywgSW5jLgorMDAxOEI2ICAgICAoYmFzZSAxNikJCVMzQywgSW5jLgorCQkJCTEwMTAgU3Rld2FydCBEci4KKwkJCQlTdW5ueXZhbGUgQ2FsaWZvcm5pYSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtQjcgICAoaGV4KQkJRDMgTEVELCBMTEMKKzAwMThCNyAgICAgKGJhc2UgMTYpCQlEMyBMRUQsIExMQworCQkJCTM4MCBNb3VudGFpbiBSZAorCQkJCVN1aXRlIDE0MTIKKwkJCQlVbmlvbiBDaXR5IE5KIDA3MDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1COCAgIChoZXgpCQlOZXcgVm9pY2UgSW50ZXJuYXRpb25hbCBBRworMDAxOEI4ICAgICAoYmFzZSAxNikJCU5ldyBWb2ljZSBJbnRlcm5hdGlvbmFsIEFHCisJCQkJU3QuIEdhbGxlcnN0cmFzc2UgOAorCQkJCUxhY2hlbiBTWiA4ODUzCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTgtQjkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOEI5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtQkEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOEJBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtQkIgICAoaGV4KQkJRWxpd2VsbCBDb250cm9scyBzcmwKKzAwMThCQiAgICAgKGJhc2UgMTYpCQlFbGl3ZWxsIENvbnRyb2xzIHNybAorCQkJCVZpYSBkZWxsJ0luZHVzdHJpYSwgMTUKKwkJCQlQaWV2ZSBkJ0FscGFnbyBCZWxsdW5vIDMyMDEwCisJCQkJSVRBTFkKKworMDAtMTgtQkMgICAoaGV4KQkJWkFPIE5WUCBCb2xpZAorMDAxOEJDICAgICAoYmFzZSAxNikJCVpBTyBOVlAgQm9saWQKKwkJCQlQaW9uZXJza2F5YSBzdHIuLCA0CisJCQkJS29yb2x5b3YgTW9zY293IHJlZ2lvbiAxNDEwNzAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMTgtQkQgICAoaGV4KQkJU0hFTlpIRU4gRFZCV09STEQgVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwMThCRCAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBEVkJXT1JMRCBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCTJORCBGTE9PUiwgQlVJTERJTkcgQSwgUUlOR0hVIFhJTlFJQU8gSU5EVVNUUlkgQVJFQSwKKwkJCQlMT05HSFVBLCBCQU8gQU4gRElTVFJJQ1QKKwkJCQlTSEVOWkhFTiBHVUFOR0RPTkcgNTE4MDAwCisJCQkJQ0hJTkEKKworMDAtMTgtQkUgICAoaGV4KQkJQU5TQSBDb3Jwb3JhdGlvbgorMDAxOEJFICAgICAoYmFzZSAxNikJCUFOU0EgQ29ycG9yYXRpb24KKwkJCQkxN0YuLCBOby43MzgsIENodW5nIENoZW5nIFJkLgorCQkJCUNodW5nIEhvIENpdHksIFRhaXBlaSBDb3VudHkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtQkYgICAoaGV4KQkJRXNzZW5jZSBUZWNobm9sb2d5IFNvbHV0aW9uLCBJbmMuCiswMDE4QkYgICAgIChiYXNlIDE2KQkJRXNzZW5jZSBUZWNobm9sb2d5IFNvbHV0aW9uLCBJbmMuCisJCQkJQjEsIE5vLiAyMDcsIEJlaXNpbiBSZC4sIFNlYy4gMworCQkJCVNpbmRpYW4sIFRhaXBlaSBDb3VudHkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtQzAgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMThDMCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUMxICAgKGhleCkJCUFsbWl0ZWMgSW5mb3JtYXRpY2EgZSBDb21lcmNpbyBMdGRhLgorMDAxOEMxICAgICAoYmFzZSAxNikJCUFsbWl0ZWMgSW5mb3JtYXRpY2EgZSBDb21lcmNpbyBMdGRhLgorCQkJCTQ2MSwgRnJhbmNpc2NvIGRlIE1vcmFpcyBTdC4KKwkJCQlTYW8gUGF1bG8gIDA0NzE0LTAxMAorCQkJCUJSQVpJTAorCiswMC0xOC1DMiAgIChoZXgpCQlGaXJldGlkZSwgSW5jCiswMDE4QzIgICAgIChiYXNlIDE2KQkJRmlyZXRpZGUsIEluYworCQkJCTE2Nzk1IExhcmsgQXYsIFN1aXRlIDIwMAorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtQzMgICAoaGV4KQkJQyZTIE1pY3Jvd2F2ZQorMDAxOEMzICAgICAoYmFzZSAxNikJCUMmUyBNaWNyb3dhdmUKKwkJCQlTdW50ZWNoIENpdHkgOHRoIGZsb29yLCBTYW5nIERhZSBXb24tRG9uZywgSnVuZyBXb24tR3UKKwkJCQlTdW5nbmFtIEd5dW5nZ2ktRG8gODIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtQzQgICAoaGV4KQkJUmFiYSBUZWNobm9sb2dpZXMgTExDCiswMDE4QzQgICAgIChiYXNlIDE2KQkJUmFiYSBUZWNobm9sb2dpZXMgTExDCisJCQkJODgzMCBTdGFuZm9yZCBCbHZkIFN1aXRlIDIwNQorCQkJCUNvbHVtYmlhIE1hcnlsYW5kIDIxMDQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1DNSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxOEM1ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICAxNzkwCisJCQkJREVOTUFSSworCiswMC0xOC1DNiAgIChoZXgpCQlPUFcgRnVlbCBNYW5hZ2VtZW50IFN5c3RlbXMKKzAwMThDNiAgICAgKGJhc2UgMTYpCQlPUFcgRnVlbCBNYW5hZ2VtZW50IFN5c3RlbXMKKwkJCQk2OTAwIFNhbnRhIEZlIERyaXZlCisJCQkJSG9kZ2tpbnMgSWxsaW5vaXMgNjA1MjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUM3ICAgKGhleCkJCVJlYWwgVGltZSBBdXRvbWF0aW9uCiswMDE4QzcgICAgIChiYXNlIDE2KQkJUmVhbCBUaW1lIEF1dG9tYXRpb24KKwkJCQkyODI1IE4gTWF5ZmFpciBSZCBTdGUgMTEKKwkJCQlXYXV3YXRvc2EgV0kgNTMyMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUM4ICAgKGhleCkJCUlTT05BUyBJbmMuCiswMDE4QzggICAgIChiYXNlIDE2KQkJSVNPTkFTIEluYy4KKwkJCQk2MzI1IEd1bnBhcmsgRHJpdmUKKwkJCQlTdWl0ZSAxMDEKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1DOSAgIChoZXgpCQlFT3BzIFRlY2hub2xvZ3kgTGltaXRlZAorMDAxOEM5ICAgICAoYmFzZSAxNikJCUVPcHMgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJUm9vbSAyMDAxLCBGYWlybW9udCBIb3VzZSwKKwkJCQk4IENvdHRvbiBUcmVlIERyaXZlLCBDZW50cmFsLAorCQkJCUhvbmcgS29uZyAgCisJCQkJSE9ORyBLT05HCisKKzAwLTE4LUNBICAgKGhleCkJCVZpcHJpbmV0IEdtYkgKKzAwMThDQSAgICAgKGJhc2UgMTYpCQlWaXByaW5ldCBHbWJICisJCQkJQmFzaWxpa2FzdHJhc3NlIDMKKwkJCQlCaW5nZW4gYW0gUmhlaW4gIDU1NDExCisJCQkJR0VSTUFOWQorCiswMC0xOC1DQiAgIChoZXgpCQlUZWNvYmVzdCBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMThDQiAgICAgKGJhc2UgMTYpCQlUZWNvYmVzdCBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQk1My9GLixCbG9jayBBLFVuaXRlZCBQbGF6YSwKKwkJCQlOby41MDIyLEJpbiBIZSBSb2FkCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAyNgorCQkJCUNISU5BCisKKzAwLTE4LUNDICAgKGhleCkJCUFYSU9ITSBTQVMKKzAwMThDQyAgICAgKGJhc2UgMTYpCQlBWElPSE0gU0FTCisJCQkJMSBSVUUgRCdBUkNVRUlMCisJCQkJTU9OVFJPVUdFICA5MjEyMAorCQkJCUZSQU5DRQorCiswMC0xOC1DRCAgIChoZXgpCQlFcmFlIEVsZWN0cm9uaWNzIEluZHVzdHJ5IENvLiwgTHRkCiswMDE4Q0QgICAgIChiYXNlIDE2KQkJRXJhZSBFbGVjdHJvbmljcyBJbmR1c3RyeSBDby4sIEx0ZAorCQkJCSMzNzEtNTEsIEdhc2FuLWRvbmcKKwkJCQlHZXVtY2hlbi1ndSBTZW91bCAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LUNFICAgKGhleCkJCURyZWFtdGVjaCBDby4sIEx0ZAorMDAxOENFICAgICAoYmFzZSAxNikJCURyZWFtdGVjaCBDby4sIEx0ZAorCQkJCSMzNDAtNSwgWWFuZy1kYW5nIFJpLCBKaWstc2FuIE15ZW9uCisJCQkJQ2hlb24tYW4gc2kgQ2h1bmctTmFtIDMzMDgxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC1DRiAgIChoZXgpCQlCYWxkb3IgRWxlY3RyaWMgQ29tcGFueQorMDAxOENGICAgICAoYmFzZSAxNikJCUJhbGRvciBFbGVjdHJpYyBDb21wYW55CisJCQkJNjAwIFMuIFplcm8gU3QuCisJCQkJRm9ydCBTbWl0aCBBUiA3MjkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtRDAgICAoaGV4KQkJQXRSb2FkLCAgQSBUcmltYmxlIENvbXBhbnkKKzAwMThEMCAgICAgKGJhc2UgMTYpCQlBdFJvYWQsICBBIFRyaW1ibGUgQ29tcGFueQorCQkJCTQ3MDcxIEJheXNpZGUgUGFya3dheQorCQkJCUZyZW1vbnQgQ2FsaWZvcm5pYSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtRDEgICAoaGV4KQkJU2llbWVucyBIb21lICYgT2ZmaWNlIENvbW0uIERldmljZXMKKzAwMThEMSAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEhvbWUgJiBPZmZpY2UgQ29tbS4gRGV2aWNlcworCQkJCTQ4NDkgQWxwaGEgUmQuCisJCQkJRGFsbGFzIFRleGFzIDc1MjQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1EMiAgIChoZXgpCQlIaWdoLUdhaW4gQW50ZW5uYXMgTExDCiswMDE4RDIgICAgIChiYXNlIDE2KQkJSGlnaC1HYWluIEFudGVubmFzIExMQworCQkJCTExNjc5IFMuIENvcm1vcmFudCBDaXJjbGUKKwkJCQlQYXJrZXIgQ08gODAxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUQzICAgKGhleCkJCVRFQU1DQVNUCiswMDE4RDMgICAgIChiYXNlIDE2KQkJVEVBTUNBU1QKKwkJCQlDZW50cmUgRXNwYWNlIFBlcmZvcm1hbmNlCisJCQkJU2FpbnQgR3JlZ29pcmUgIDM1NzY5CisJCQkJRlJBTkNFCisKKzAwLTE4LUQ0ICAgKGhleCkJCVVuaWZpZWQgRGlzcGxheSBJbnRlcmZhY2UgU0lHCiswMDE4RDQgICAgIChiYXNlIDE2KQkJVW5pZmllZCBEaXNwbGF5IEludGVyZmFjZSBTSUcKKwkJCQkxNTIwMSBTVyBHcmVlbmJyaWVyIFBhcmt3YXkKKwkJCQlCZWF2ZXJ0b24gT3JlZ29uIDk3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1ENSAgIChoZXgpCQlSRUlHTkNPTQorMDAxOEQ1ICAgICAoYmFzZSAxNikJCVJFSUdOQ09NCisJCQkJMTRGIEthbWNvIFlhbmphZSBUb3dlciwgOTQ5LTMKKwkJCQlEb2dvayAxLWRvbmdtLCBHYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS03MzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtRDYgICAoaGV4KQkJU3dpcmxuZXQgQS9TCiswMDE4RDYgICAgIChiYXNlIDE2KQkJU3dpcmxuZXQgQS9TCisJCQkJRGlwbG9tdmVqIDM4MQorCQkJCUx5bmdieSAgREstMjgwMAorCQkJCURFTk1BUksKKworMDAtMTgtRDcgICAoaGV4KQkJSmF2YWQgTmF2aWdhdGlvbiBTeXN0ZW1zIEluYy4KKzAwMThENyAgICAgKGJhc2UgMTYpCQlKYXZhZCBOYXZpZ2F0aW9uIFN5c3RlbXMgSW5jLgorCQkJCTE3MzEgVGVjaG5vbG9neSBEcml2ZSwgU3VpdGUgNjgwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUQ4ICAgKGhleCkJCUFSQ0ggTUVURVIgQ29ycG9yYXRpb24KKzAwMThEOCAgICAgKGJhc2UgMTYpCQlBUkNIIE1FVEVSIENvcnBvcmF0aW9uCisJCQkJNEYsIE5vLjMtMiwgSW5kdXN0cnkgRS4gUmQuCisJCQkJOSxIc2luY2h1IFNjaWVuY2UgUGFyaworCQkJCUhzaW5jaHUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtRDkgICAoaGV4KQkJU2FudG9zaGEgSW50ZXJuYXRvbmFsLCBJbmMKKzAwMThEOSAgICAgKGJhc2UgMTYpCQlTYW50b3NoYSBJbnRlcm5hdG9uYWwsIEluYworCQkJCTM4NDMgUy4gQnJpc3RvbCBTdC4gIzI0MgorCQkJCVNhbnRhIEFuYSBDQSA5MjcwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtREEgICAoaGV4KQkJQU1CRVIgd2lyZWxlc3MgR21iSAorMDAxOERBICAgICAoYmFzZSAxNikJCUFNQkVSIHdpcmVsZXNzIEdtYkgKKwkJCQlBbGJpbi1Lb2ViaXMtU3RyLiAxOAorCQkJCUtvZWxuICA1MTE0NworCQkJCUdFUk1BTlkKKworMDAtMTgtREIgICAoaGV4KQkJRVBMIFRlY2hub2xvZ3kgTHRkCiswMDE4REIgICAgIChiYXNlIDE2KQkJRVBMIFRlY2hub2xvZ3kgTHRkCisJCQkJTG9uZ0RvbmcsTG9uZ2dhbmcgRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTE2CisJCQkJQ0hJTkEKKworMDAtMTgtREMgICAoaGV4KQkJUHJvc3RhciBDby4sIEx0ZC4KKzAwMThEQyAgICAgKGJhc2UgMTYpCQlQcm9zdGFyIENvLiwgTHRkLgorCQkJCUEtNzAzIFRlY2hub3Rvd24sIDI1MC0zIEhhZ3llLWRvbmcsIE5vd29uLWd1CisJCQkJU2VvdWwgIDEzOS0yMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtREQgICAoaGV4KQkJU2lsaWNvbmR1c3QgRW5naW5lZXJpbmcgTHRkCiswMDE4REQgICAgIChiYXNlIDE2KQkJU2lsaWNvbmR1c3QgRW5naW5lZXJpbmcgTHRkCisJCQkJUE8gQm94IDc0LTI5OQorCQkJCU1hcmtldCBSZAorCQkJCUF1Y2tsYW5kICAKKwkJCQlORVcgWkVBTEFORAorCiswMC0xOC1ERSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAxOERFICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xOC1ERiAgIChoZXgpCQlUaGUgTW9yZXkgQ29ycG9yYXRpb24KKzAwMThERiAgICAgKGJhc2UgMTYpCQlUaGUgTW9yZXkgQ29ycG9yYXRpb24KKwkJCQkxMDAgTW9yZXkgRHJpdmUKKwkJCQlXb29kcmlkZ2UgSUwgNjA1MTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUUwICAgKGhleCkJCUFOQVZFTworMDAxOEUwICAgICAoYmFzZSAxNikJCUFOQVZFTworCQkJCUxlcyBDYXJyZXMgZHUgcGFyYworCQkJCTEwIHJ1ZSBkZXMgUm9zaWVyaXN0ZXMKKwkJCQlDSEFNUEFHTkUgYXUgTU9OVCBEJ09SIFJob25lIEYtNjk0MTAKKwkJCQlGUkFOQ0UKKworMDAtMTgtRTEgICAoaGV4KQkJVmVya2VyayBTZXJ2aWNlIFN5c3RlbWVuCiswMDE4RTEgICAgIChiYXNlIDE2KQkJVmVya2VyayBTZXJ2aWNlIFN5c3RlbWVuCisJCQkJTW9sZW52bGlldCAxCisJCQkJWndpam5kcmVjaHQgWnVpZC1Ib2xsYW5kIE5MLTMzMzVMSAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE4LUUyICAgKGhleCkJCVRvcGRhdGEgU2lzdGVtYXMgZGUgQXV0b21hY2FvIEx0ZGEKKzAwMThFMiAgICAgKGJhc2UgMTYpCQlUb3BkYXRhIFNpc3RlbWFzIGRlIEF1dG9tYWNhbyBMdGRhCisJCQkJUnVhIERyIENhcnZhbGhvIENoYXZlcywgNjYyCisJCQkJQ3VyaXRpYmEgUFIgODAuMjIwLTAxMAorCQkJCUJSQVpJTAorCiswMC0xOC1FMyAgIChoZXgpCQlWaXN1YWxnYXRlIFN5c3RlbXMsIEluYy4KKzAwMThFMyAgICAgKGJhc2UgMTYpCQlWaXN1YWxnYXRlIFN5c3RlbXMsIEluYy4KKwkJCQk2NCBCYWtlcnNmaWVsZCBTdHJlZXQKKwkJCQlUb3JvbnRvIE9udGFyaW8gTTNKIDJXNworCQkJCUNBTkFEQQorCiswMC0xOC1FNCAgIChoZXgpCQlZSUdVQU5HCiswMDE4RTQgICAgIChiYXNlIDE2KQkJWUlHVUFORworCQkJCTMvRkwuSW5kdXN0cnkgem9uZSxGdXhpbmxpbixIYW5nY2hlbmcsWGl4aWFuZyxCYW9hbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjYKKwkJCQlDSElOQQorCiswMC0xOC1FNSAgIChoZXgpCQlBZGhvY28gQUcKKzAwMThFNSAgICAgKGJhc2UgMTYpCQlBZGhvY28gQUcKKwkJCQlUZWNobm9wYXJrCisJCQkJSmFlZ2Vyc3RyLiAyCisJCQkJV2ludGVydGh1ciBaSCBDSC04NDA2IAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE4LUU2ICAgKGhleCkJCUNvbXB1dGVyIEhhcmR3YXJlIERlc2lnbiBTSUEKKzAwMThFNiAgICAgKGJhc2UgMTYpCQlDb21wdXRlciBIYXJkd2FyZSBEZXNpZ24gU0lBCisJCQkJRHplbHphdmFzIDEyMGkKKwkJCQlSaWdhICBMVi0xMDIxCisJCQkJTEFUVklBCisKKzAwLTE4LUU3ICAgKGhleCkJCUNhbWVvIENvbW11bmljYXRpb25zLCBJTkMuCiswMDE4RTcgICAgIChiYXNlIDE2KQkJQ2FtZW8gQ29tbXVuaWNhdGlvbnMsIElOQy4KKwkJCQlOTy40MiwgU2VjLiA2LCBNaW5jeXVhbiBFLiBSZC4KKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtRTggICAoaGV4KQkJSGFjZXRyb24gQ29ycG9yYXRpb24KKzAwMThFOCAgICAgKGJhc2UgMTYpCQlIYWNldHJvbiBDb3Jwb3JhdGlvbgorCQkJCU5vLiA1NDIsCisJCQkJU2VjLjEsIFlhbmctSFUgUmQsCisJCQkJWWFuZy1NZWksIFRhby1ZdWFuLCAzMjYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LUU5ICAgKGhleCkJCU51bWF0YSBDb3Jwb3JhdGlvbgorMDAxOEU5ICAgICAoYmFzZSAxNikJCU51bWF0YSBDb3Jwb3JhdGlvbgorCQkJCTgtMi0zOSBuYW5rby1oaWdhc2hpCisJCQkJU3VtaW5vZS1rdQorCQkJCU9zYWthLXNoaSBPc2FrYS1mdSA1NTktMDAzMQorCQkJCUpBUEFOCisKKzAwLTE4LUVBICAgKGhleCkJCUFsbHRlYyBHbWJICiswMDE4RUEgICAgIChiYXNlIDE2KQkJQWxsdGVjIEdtYkgKKwkJCQlBbiBkZXIgVHJhdmUgMjctMzEKKwkJCQlTZWxtc2RvcmYgTWVja2xlbmJ1cmctVm9ycG9tbWVybiAyMzkyMworCQkJCUdFUk1BTlkKKworMDAtMTgtRUIgICAoaGV4KQkJQnJvVmlzIFdpcmVsZXNzIE5ldHdvcmtzCiswMDE4RUIgICAgIChiYXNlIDE2KQkJQnJvVmlzIFdpcmVsZXNzIE5ldHdvcmtzCisJCQkJMTk5MjUgU3RldmVucyBDcmVlayBCbHZkCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1FQyAgIChoZXgpCQlXZWxkaW5nIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMThFQyAgICAgKGJhc2UgMTYpCQlXZWxkaW5nIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQkyNDc3NSBDcmVzdHZpZXcgQ291cnQKKwkJCQlGYXJtaW5ndG9uIEhpbGxzIE1JIDQ4MzM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1FRCAgIChoZXgpCQlBY2N1dGVjaCBVbHRyYXN5c3RlbXMgQ28uLCBMdGQuCiswMDE4RUQgICAgIChiYXNlIDE2KQkJQWNjdXRlY2ggVWx0cmFzeXN0ZW1zIENvLiwgTHRkLgorCQkJCTExRi00LCBOby4gMTUwLAorCQkJCUNISUVOLVlJIFJPQUQsCisJCQkJQ0hVTkctSE8gQ0lUWSwgVEFJUEVJIEhTSUVOLCAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LUVFICAgKGhleCkJCVZpZGVvbG9neSBJbWFnaW5nIFNvbHV0aW9ucywgSW5jLgorMDAxOEVFICAgICAoYmFzZSAxNikJCVZpZGVvbG9neSBJbWFnaW5nIFNvbHV0aW9ucywgSW5jLgorCQkJCTM3IE0gTGFyayBJbmR1c3RyaWFsIFBhcmt3YXkKKwkJCQlHcmVlbnZpbGxlIFJJIDAyODI4LTMwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUVGICAgKGhleCkJCUVzY2FwZSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAxOEVGICAgICAoYmFzZSAxNikJCUVzY2FwZSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTI2MTUgUGFjaWZpYyBDb2FzdCBId3kKKwkJCQlTdGUgMzI5CisJCQkJSGVybW9zYSBCZWFjaCBDQSA5MDI1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtRjAgICAoaGV4KQkJSk9ZVE9UTyBDby4sIEx0ZC4KKzAwMThGMCAgICAgKGJhc2UgMTYpCQlKT1lUT1RPIENvLiwgTHRkLgorCQkJCTNGIFN1bmd3b28gQmxkZy4gNzE3LTMsIFNvb3Nlby1Eb25nCisJCQkJS2FuZ25hbS1HdQorCQkJCVNlb3VsICAxMzUtMjIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LUYxICAgKGhleCkJCUNodW5pY2hpIERlbnNoaSBDby4sTFRELgorMDAxOEYxICAgICAoYmFzZSAxNikJCUNodW5pY2hpIERlbnNoaSBDby4sTFRELgorCQkJCTEgRGVuaml5YW1hCisJCQkJTmFydW1pIGNobyBNaWRvcmkga3UKKwkJCQlOYWdveWEgQWljaGkgNDU4LTg1MjUKKwkJCQlKQVBBTgorCiswMC0xOC1GMiAgIChoZXgpCQlCZWlqaW5nIFRpYW55dSBDb21tdW5pY2F0aW9uIEVxdWlwbWVudCBDby4sIEx0ZAorMDAxOEYyICAgICAoYmFzZSAxNikJCUJlaWppbmcgVGlhbnl1IENvbW11bmljYXRpb24gRXF1aXBtZW50IENvLiwgTHRkCisJCQkJMjd0aCBGbG9vciwgVGVuZ2RhIFBsYXphCisJCQkJWGl6aGltZW5nd2FpIFN0cmVldCwgSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA0NAorCQkJCUNISU5BCisKKzAwLTE4LUYzICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorMDAxOEYzICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtRjQgICAoaGV4KQkJRU8gVEVDSE5JQ1MgQ28uLCBMdGQuCiswMDE4RjQgICAgIChiYXNlIDE2KQkJRU8gVEVDSE5JQ1MgQ28uLCBMdGQuCisJCQkJODY0LTQsIEt3YW55YW5nIDItRG9uZworCQkJCURvbmdhbi1HdQorCQkJCUFueWFuZyBLeWVvbmdnaS1EbyA0MzEtMDYyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LUY1ICAgKGhleCkJCVNoZW56aGVuIFN0cmVhbWluZyBWaWRlbyBUZWNobm9sb2d5IENvbXBhbnkgTGltaXRlZAorMDAxOEY1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFN0cmVhbWluZyBWaWRlbyBUZWNobm9sb2d5IENvbXBhbnkgTGltaXRlZAorCQkJCTUvRiwgQmxvY2sgMywgU29mdHdhcmUgUGFydCBOby4xLCBLZWppIE1pZGRsZSAyIFJvYWQsCisJCQkJU2hlbnpoZW4gSGktVGVjaCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTaGVuemhlbiBHYXVuZ0RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMTgtRjYgICAoaGV4KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKzAwMThGNiAgICAgKGJhc2UgMTYpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorCQkJCVByaW5zIEJvdWRld2lqbmxhYW4gNDcKKwkJCQlFZGVnZW0gQW50d2VycCBCLTI2NTAKKwkJCQlCRUxHSVVNCisKKzAwLTE4LUY3ICAgKGhleCkJCUthbWVsZW9uIFRlY2hub2xvZ2llcworMDAxOEY3ICAgICAoYmFzZSAxNikJCUthbWVsZW9uIFRlY2hub2xvZ2llcworCQkJCTIxNywgcnVlIFN0IEhvbm9yZQorCQkJCVBhcmlzICA3NTAwMQorCQkJCUZSQU5DRQorCiswMC0xOC1GOCAgIChoZXgpCQlDaXNjby1MaW5rc3lzIExMQworMDAxOEY4ICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtRjkgICAoaGV4KQkJVlZPTkQsIEluYy4KKzAwMThGOSAgICAgKGJhc2UgMTYpCQlWVk9ORCwgSW5jLgorCQkJCTMwMDAgQnJpZGdlIFBhcmt3YXkKKwkJCQlTdWl0ZSAxMDIKKwkJCQlSZWR3b29kIENpdHkgQ0EgOTQwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUZBICAgKGhleCkJCVl1c2hpbiBQcmVjaXNpb24gRXF1aXBtZW50IENvLixMdGQuCiswMDE4RkEgICAgIChiYXNlIDE2KQkJWXVzaGluIFByZWNpc2lvbiBFcXVpcG1lbnQgQ28uLEx0ZC4KKwkJCQkxMS0yNjAgS09HQUhPTk1BQ0hJCisJCQkJRlVTSElNSS1LVQorCQkJCUtZT1RPICA2MTItODQ5MiBKQVAKKwkJCQlKQVBBTgorCiswMC0xOC1GQiAgIChoZXgpCQlDb21wcm8gVGVjaG5vbG9neQorMDAxOEZCICAgICAoYmFzZSAxNikJCUNvbXBybyBUZWNobm9sb2d5CisJCQkJMy9GIE5vIDEyLCBBbGxleSA2LCBMYW5lIDQ1LCBQYW8gU2hpbiBSZAorCQkJCUhzaW50aWVuICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LUZDICAgKGhleCkJCUFsdGVjIEVsZWN0cm9uaWMgQUcKKzAwMThGQyAgICAgKGJhc2UgMTYpCQlBbHRlYyBFbGVjdHJvbmljIEFHCisJCQkJTGVuZ2dlbmJhY2hzdHJhc3NlIDMKKwkJCQlGYWhyd2VpZCBadXJpY2ggQ0gtODk1MQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE4LUZEICAgKGhleCkJCU9wdGltYWwgVGVjaG5vbG9naWVzIEludGVybmF0aW9uYWwgSW5jLgorMDAxOEZEICAgICAoYmFzZSAxNikJCU9wdGltYWwgVGVjaG5vbG9naWVzIEludGVybmF0aW9uYWwgSW5jLgorCQkJCTEyIFNwYW5pc2ggTWFpbiBEcml2ZQorCQkJCVBPIEJveCBGLTQyNDA5LzM1OQorCQkJCUZyZWVwb3J0IEdCSSAKKwkJCQlCQUhBTUFTCisKKzAwLTE4LUZFICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxOEZFICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJTVMwNjAzMDgKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1GRiAgIChoZXgpCQlQb3dlclF1YXR0cm8gQ28uCiswMDE4RkYgICAgIChiYXNlIDE2KQkJUG93ZXJRdWF0dHJvIENvLgorCQkJCUphbm9zIHUuIDE3NS4KKwkJCQlCdWRhcGVzdCAgSC0xMTYxCisJCQkJSFVOR0FSWQorCiswMC0xOS0wMCAgIChoZXgpCQlJbnRlbGxpdmVyZXNlIC0gREJBIFZvaWNlY29tCiswMDE5MDAgICAgIChiYXNlIDE2KQkJSW50ZWxsaXZlcmVzZSAtIERCQSBWb2ljZWNvbQorCQkJCTU5MDAgV2luZHdhcmQgUGFya3dheQorCQkJCVN1aXRlIDUwMAorCQkJCUFscGhhcmV0dGEgR2VvcmdpYSAzMDAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMDEgICAoaGV4KQkJRjFNRURJQQorMDAxOTAxICAgICAoYmFzZSAxNikJCUYxTUVESUEKKwkJCQk2MTAsIEtldW1rYW5nIEhpZ2h0ZWNoID8/LCAxMzgtMSBTYW5nZGFld29uLURvbmcsIEp1bmd3b24tR3UKKwkJCQlTZW9uZ25hbS1TaSBHeWVvbmdnaS1EbyA0NjItNzA3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LTAyICAgKGhleCkJCUNhbWJyaWRnZSBDb25zdWx0YW50cyBMdGQKKzAwMTkwMiAgICAgKGJhc2UgMTYpCQlDYW1icmlkZ2UgQ29uc3VsdGFudHMgTHRkCisJCQkJU2NpZW5jZSBQYXJrCisJCQkJTWlsdG9uIFJvYWQKKwkJCQlDYW1icmlkZ2UgQ2FtYnMgQ0I0IDBEVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE5LTAzICAgKGhleCkJCUJpZ2Zvb3QgTmV0d29ya3MgSW5jCiswMDE5MDMgICAgIChiYXNlIDE2KQkJQmlnZm9vdCBOZXR3b3JrcyBJbmMKKwkJCQkzOTI1IFdlc3QgQnJha2VyIExhbmUKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTA0ICAgKGhleCkJCVdCIEVsZWN0cm9uaWNzIFNwLiB6IG8uby4KKzAwMTkwNCAgICAgKGJhc2UgMTYpCQlXQiBFbGVjdHJvbmljcyBTcC4geiBvLm8uCisJCQkJdWwuIFBvem5hbnNrYSAxMjkvMTMzCisJCQkJT3phcm93IE1hem93aWVja2kgTWF6b3dpZWNraWUgMDUtODUwCisJCQkJUE9MQU5ECisKKzAwLTE5LTA1ICAgKGhleCkJCVNDSFJBQ0sgU2Vjb25ldCBBRworMDAxOTA1ICAgICAoYmFzZSAxNikJCVNDSFJBQ0sgU2Vjb25ldCBBRworCQkJCUVpYmVzYnJ1bm5lcmdhc3NlIDE4CisJCQkJV2llbiBPc3RlcnJlaWNoIDExMjIKKwkJCQlBVVNUUklBCisKKzAwLTE5LTA2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTkwNiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTA3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTkwNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTA4ICAgKGhleCkJCUR1YXhlcyBDb3Jwb3JhdGlvbgorMDAxOTA4ICAgICAoYmFzZSAxNikJCUR1YXhlcyBDb3Jwb3JhdGlvbgorCQkJCTItNSwgS2FzdW1pZ2FzZWtpIDMtY2hvbWUsIENoaXlvZGEta3UuCisJCQkJVG9reW8gRm9yZWlnbiAxMDAtNjAxNAorCQkJCUpBUEFOCisKKzAwLTE5LTA5ICAgKGhleCkJCURldmkgQS9TCiswMDE5MDkgICAgIChiYXNlIDE2KQkJRGV2aSBBL1MKKwkJCQlVbHZlaGF2ZXZlaiA2MQorCQkJCVZlamxlICA3MTAwCisJCQkJREVOTUFSSworCiswMC0xOS0wQSAgIChoZXgpCQlIQVNXQVJFIElOQy4KKzAwMTkwQSAgICAgKGJhc2UgMTYpCQlIQVNXQVJFIElOQy4KKwkJCQk0LTEyLTMgSElHQVNISQorCQkJCUtVTklUQUNISSBUT0tZTyAxODYtMDAwMgorCQkJCUpBUEFOCisKKzAwLTE5LTBCICAgKGhleCkJCVNvdXRoZXJuIFZpc2lvbiBTeXN0ZW1zLCBJbmMuCiswMDE5MEIgICAgIChiYXNlIDE2KQkJU291dGhlcm4gVmlzaW9uIFN5c3RlbXMsIEluYy4KKwkJCQk4MjE1IE1hZGlzb24gQmx2ZCwgU3VpdGUgMTUwCisJCQkJTWFkaXNvbiBBTCAzNTc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMEMgICAoaGV4KQkJRW5jb3JlIEVsZWN0cm9uaWNzLCBJbmMuCiswMDE5MEMgICAgIChiYXNlIDE2KQkJRW5jb3JlIEVsZWN0cm9uaWNzLCBJbmMuCisJCQkJMTY0ODMgT2xkIFZhbGxleSBCbHZkLgorCQkJCUxhIFB1ZW50ZSBDQSA5MTc0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMEQgICAoaGV4KQkJSUVFRSAxMzk0YworMDAxOTBEICAgICAoYmFzZSAxNikJCUlFRUUgMTM5NGMKKwkJCQljL28gMTM5NCBUcmFkZSBBc3NvY2lhdGlvbgorCQkJCTE1NjAgRWFzdCBTb3V0aGxha2UgQmx2ZC4sIFN1aXRlIDIyMAorCQkJCVNvdXRobGFrZSBUWCA3NjA5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMEUgICAoaGV4KQkJQXRlY2ggVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTkwRSAgICAgKGJhc2UgMTYpCQlBdGVjaCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTQgRmwuLCBOby4gMTAzLCBTZWMgMiwgSml1em9uZyBSZC4KKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktMEYgICAoaGV4KQkJQWR2YW5zdXMgQ29ycC4KKzAwMTkwRiAgICAgKGJhc2UgMTYpCQlBZHZhbnN1cyBDb3JwLgorCQkJCU5vLjUgU2hpbmcgWWVoIFN0cmVldCwgS3dlaSBIc2lhbmcKKwkJCQlUYW95dWFuICAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTEwICAgKGhleCkJCUtuaWNrIEVsZWt0cm9uaXNjaGUgTWVzc2dlcmFldGUgR21iSCAmIENvLiBLRworMDAxOTEwICAgICAoYmFzZSAxNikJCUtuaWNrIEVsZWt0cm9uaXNjaGUgTWVzc2dlcmFldGUgR21iSCAmIENvLiBLRworCQkJCUJldWNrZXN0ci4gMjIKKwkJCQlCZXJsaW4gIDE0MTYzCisJCQkJR0VSTUFOWQorCiswMC0xOS0xMSAgIChoZXgpCQlKdXN0IEluIE1vYmlsZSBJbmZvcm1hdGlvbiBUZWNobm9sb2dpZXMgKFNoYW5naGFpKSBDby4sIEx0ZC4KKzAwMTkxMSAgICAgKGJhc2UgMTYpCQlKdXN0IEluIE1vYmlsZSBJbmZvcm1hdGlvbiBUZWNobm9sb2dpZXMgKFNoYW5naGFpKSBDby4sIEx0ZC4KKwkJCQk1dGggRmxvb3IsIDJuZCBBcmVhLCBIYWl3YW5neGluZyBCdWlsZGluZywgNjIgWGluZ2d1YW5nIEF2ZS4sIE4uSGlnaC1UZWNoIFBhcmsKKwkJCQlDaG9uZ3FpbmcgIDQwMTEyMQorCQkJCUNISU5BCisKKzAwLTE5LTEyICAgKGhleCkJCVdlbGNhdCBJbmMKKzAwMTkxMiAgICAgKGJhc2UgMTYpCQlXZWxjYXQgSW5jCisJCQkJRWFzdCBUb3dlciA2RiwgU2hpbmFnYXdhIFNlYXNpZGUsIDQtMTItOCwgSGlnYXNoaSBTaGluYWdhd2EsIFNoaW5hZ2F3YSBTZWN0aW9uCisJCQkJVG9reW8gIDE0MC0wMDAyCisJCQkJSkFQQU4KKworMDAtMTktMTMgICAoaGV4KQkJQ2h1YW5nLVlpIE5ldHdvcmsgRXF1aXBtZW50IENvLkx0ZC4KKzAwMTkxMyAgICAgKGJhc2UgMTYpCQlDaHVhbmctWWkgTmV0d29yayBFcXVpcG1lbnQgQ28uTHRkLgorCQkJCTIzOCBUaWFuTXVTaGFuIFJkLiwgV2VzdCBMYWtlIGRpc3RyaWN0CisJCQkJSGFuZ1pob3UgWmhlSmlhbmcgMzEwMDAwCisJCQkJQ0hJTkEKKworMDAtMTktMTQgICAoaGV4KQkJV2luaXggQ28uLCBMdGQKKzAwMTkxNCAgICAgKGJhc2UgMTYpCQlXaW5peCBDby4sIEx0ZAorCQkJCTM2MyBBbmdhZGUgQmxkZy4sIFlhbmdqYWUtZG9uZworCQkJCVNlb2Noby1ndQorCQkJCVNlb3VsICAxMzctODk4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LTE1ICAgKGhleCkJCVRFQ09NIENvLiwgTHRkLgorMDAxOTE1ICAgICAoYmFzZSAxNikJCVRFQ09NIENvLiwgTHRkLgorCQkJCTIzIFImRCBSb2FkIDIgU2NpZW5jZSBCYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS0xNiAgIChoZXgpCQlQYXlUZWMgQUcKKzAwMTkxNiAgICAgKGJhc2UgMTYpCQlQYXlUZWMgQUcKKwkJCQlSb3NlbmdhcnRlbnN0cmFzc2UgMworCQkJCVpvbGxpa2VyYmVyZyBaSCA4MTI1CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTktMTcgICAoaGV4KQkJUG9zaWZsZXggSW5jLgorMDAxOTE3ICAgICAoYmFzZSAxNikJCVBvc2lmbGV4IEluYy4KKwkJCQk2LCBXdS1DaHVhbiBSb2FkCisJCQkJV3UgS3UKKwkJCQlUYWlwZWkgSHNpZW4gIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktMTggICAoaGV4KQkJSW50ZXJhY3RpdmUgV2VhciBBRworMDAxOTE4ICAgICAoYmFzZSAxNikJCUludGVyYWN0aXZlIFdlYXIgQUcKKwkJCQlQZXRlcnNicnVubmVyIFN0ci4gMworCQkJCVN0YXJuYmVyZyBCYXZhcmlhIDgyMzE5CisJCQkJR0VSTUFOWQorCiswMC0xOS0xOSAgIChoZXgpCQlBU1RFTCBJbmMuCiswMDE5MTkgICAgIChiYXNlIDE2KQkJQVNURUwgSW5jLgorCQkJCTU5LTcgSmFuZy1kb25nIFl1c3VuZy1HdQorCQkJCURhZWplb24gQ2h1bmduYW0gMzA1LTM0MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS0xQSAgIChoZXgpCQlJUkxJTksKKzAwMTkxQSAgICAgKGJhc2UgMTYpCQlJUkxJTksKKwkJCQlIYW5Zb3VuZyBCL0QgNkYsIDQtNgorCQkJCU11bmplb25nLWRvbmcsIFNvbnBhLWt1CisJCQkJU0VPVUwgIDEzOC04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktMUIgICAoaGV4KQkJU3B1dG5payBFbmdpbmVlcmluZyBBRworMDAxOTFCICAgICAoYmFzZSAxNikJCVNwdXRuaWsgRW5naW5lZXJpbmcgQUcKKwkJCQlIb2hld2VnIDg1CisJCQkJQmllbC1CaWVubmUgQkUgIDI1MDIKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xOS0xQyAgIChoZXgpCQlTZW5zaWNhc3QgU3lzdGVtcworMDAxOTFDICAgICAoYmFzZSAxNikJCVNlbnNpY2FzdCBTeXN0ZW1zCisJCQkJMjAwIFJlc2Vydm9pciBTdAorCQkJCVN1aXRlIDEwMAorCQkJCU5lZWRoYW0gTUEgMDI0OTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTFEICAgKGhleCkJCU5pbnRlbmRvIENvLixMdGQuCiswMDE5MUQgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xOS0xRSAgIChoZXgpCQlCZXlvbmR3aXogQ28uLCBMdGQuCiswMDE5MUUgICAgIChiYXNlIDE2KQkJQmV5b25kd2l6IENvLiwgTHRkLgorCQkJCTNGLCBEYWVjaGFuZyBCbGRnLiwKKwkJCQk4LTIsIFNvb25hZS1kb25nLCBCdW5kYW5nLWd1CisJCQkJU3VuZ25hbSBLeXVuZ2tpLWRvIDQ2My04MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktMUYgICAoaGV4KQkJTWljcm9saW5rIGNvbW11bmljYXRpb25zIEluYy4KKzAwMTkxRiAgICAgKGJhc2UgMTYpCQlNaWNyb2xpbmsgY29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCThGICwgMzEgLCBIc2ludGFpIFJvYWQgLCBDaHVwZWkgQ2l0eSAsIEhzaW5jaHUKKwkJCQlDaHVwZWkgVGFpd2FuIDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktMjAgICAoaGV4KQkJS1VNRSBlbGVjdHJpYyBDby4sTHRkLgorMDAxOTIwICAgICAoYmFzZSAxNikJCUtVTUUgZWxlY3RyaWMgQ28uLEx0ZC4KKwkJCQk0LTItMjQgS2l0YWthd2FyYQorCQkJCUl0YW1pLWNpdHkgSHlvdWdvIAorCQkJCUpBUEFOCisKKzAwLTE5LTIxICAgKGhleCkJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtIENvLgorMDAxOTIxICAgICAoYmFzZSAxNikJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtIENvLgorCQkJCU5vLjIyLEFsbGV5IDM4LExhbmUgOTEsIFNlYy4gMSxOZWkgSHUgUm9hZC4KKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktMjIgICAoaGV4KQkJQ00gQ29tYW5kb3MgTGluZWFyZXMKKzAwMTkyMiAgICAgKGJhc2UgMTYpCQlDTSBDb21hbmRvcyBMaW5lYXJlcworCQkJCUF2IEVuZyBBbGJlcnRvIGRlIFphZ290dGlzLCA3NjAKKwkJCQlKdXJ1YmF0dWJhCisJCQkJU2FvIFBhdWxvIFNQIDA0Njc1LTA4NQorCQkJCUJSQVpJTAorCiswMC0xOS0yMyAgIChoZXgpCQlQaG9uZXggS29yZWEgQ28uLCBMVEQuCiswMDE5MjMgICAgIChiYXNlIDE2KQkJUGhvbmV4IEtvcmVhIENvLiwgTFRELgorCQkJCTMzLTMsIEdlb3llby1Eb25nCisJCQkJU2VvdWwgU29uZ3BhLUd1IDEzOC04MTQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktMjQgICAoaGV4KQkJTEJOTCAgRW5naW5lZXJpbmcKKzAwMTkyNCAgICAgKGJhc2UgMTYpCQlMQk5MICBFbmdpbmVlcmluZworCQkJCTEgQ3ljbG90cm9uIFJkLgorCQkJCU1TNDZSMDEyNQorCQkJCUJlcmtlbGV5IENBIDk0NzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0yNSAgIChoZXgpCQlJbnRlbGljaXMgQ29ycG9yYXRpb24KKzAwMTkyNSAgICAgKGJhc2UgMTYpCQlJbnRlbGljaXMgQ29ycG9yYXRpb24KKwkJCQk0NjMzIE9sZCBJcm9uc2lkZXMgRHJpdmUsIFN1aXRlIDE1MAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0yNiAgIChoZXgpCQlCaXRzR2VuIENvLiwgTHRkLgorMDAxOTI2ICAgICAoYmFzZSAxNikJCUJpdHNHZW4gQ28uLCBMdGQuCisJCQkJIzUwMiwgT3duZXIncyBUb3dlciwgIzE2LTUsIFN1bmVhLWRvbmcKKwkJCQlCdW5kYW5nLWd1IFNlb25nbmFtLXNpIDQ2My04MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktMjcgICAoaGV4KQkJSW1Db1N5cyBMdGQKKzAwMTkyNyAgICAgKGJhc2UgMTYpCQlJbUNvU3lzIEx0ZAorCQkJCUJ1bmRlc3N0cmFzc2UgNQorCQkJCVp1ZyBaRyA2MzAwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTktMjggICAoaGV4KQkJU2llbWVucyBBRywgVHJhbnNwb3J0YXRpb24gU3lzdGVtcworMDAxOTI4ICAgICAoYmFzZSAxNikJCVNpZW1lbnMgQUcsIFRyYW5zcG9ydGF0aW9uIFN5c3RlbXMKKwkJCQlXZXJuZXItdm9uLVNpZW1lbnMtU3RyYXNzZSA2NworCQkJCUVybGFuZ2VuICA5MTA1MgorCQkJCUdFUk1BTlkKKworMDAtMTktMjkgICAoaGV4KQkJMk0yQiBNb250YWRvcmEgZGUgTWFxdWluYXMgQmFoaWEgQnJhc2lsIExUREEKKzAwMTkyOSAgICAgKGJhc2UgMTYpCQkyTTJCIE1vbnRhZG9yYSBkZSBNYXF1aW5hcyBCYWhpYSBCcmFzaWwgTFREQQorCQkJCVJ1YSBEamFsbWEgZHV0cmEsIDY2OCwgU2V0ZSBQb3J0YXMKKwkJCQlTYWx2YWRvciBCYWhpYSA0MDI0MDA4MAorCQkJCUJSQVpJTAorCiswMC0xOS0yQSAgIChoZXgpCQlBbnRpb3BlIEFzc29jaWF0ZXMKKzAwMTkyQSAgICAgKGJhc2UgMTYpCQlBbnRpb3BlIEFzc29jaWF0ZXMKKwkJCQkxOCBDbGF5IFN0cmVldAorCQkJCUZhaXIgSGF2ZW4gTmV3IEplcnNleSAwNzcwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMkIgICAoaGV4KQkJQWNsYXJhIFJGIFN5c3RlbXMgSW5jLgorMDAxOTJCICAgICAoYmFzZSAxNikJCUFjbGFyYSBSRiBTeXN0ZW1zIEluYy4KKwkJCQkzMDQwMCBTb2xvbiBSb2FkCisJCQkJU29sb24gT0ggNDQxMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTJDICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxOTJDICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTYwMCBOLiBId3kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTJEICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCiswMDE5MkQgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlSZW5zaW5nc3RyLiAxNQorCQkJCUJvY2h1bSBOUlcgNDQ4MDcKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTJFICAgKGhleCkJCVNwZWN0cmFsIEluc3RydW1lbnRzLCBJbmMuCiswMDE5MkUgICAgIChiYXNlIDE2KQkJU3BlY3RyYWwgSW5zdHJ1bWVudHMsIEluYy4KKwkJCQk0MjAgTiBCb25pdGEgQXZlCisJCQkJVHVjc29uIEFaIDg1NzQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0yRiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE5MkYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0zMCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE5MzAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0zMSAgIChoZXgpCQlCYWxsdWZmIEdtYkgKKzAwMTkzMSAgICAgKGJhc2UgMTYpCQlCYWxsdWZmIEdtYkgKKwkJCQlTY2h1cndhbGRzdHIuIDkKKwkJCQlOZXVoYXVzZW4gQlcgNzM3NjUKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTMyICAgKGhleCkJCUd1ZGUgQW5hbG9nLSB1bmQgRGlnaWFsc3lzdGVtZSBHbWJICiswMDE5MzIgICAgIChiYXNlIDE2KQkJR3VkZSBBbmFsb2ctIHVuZCBEaWdpYWxzeXN0ZW1lIEdtYkgKKwkJCQlFaW50cmFjaHN0cmFzc2UgMTEzCisJCQkJQ29sb2duZSBOUlcgNTA2NjgKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTMzICAgKGhleCkJCVN0cml4IFN5c3RlbXMsIEluYy4KKzAwMTkzMyAgICAgKGJhc2UgMTYpCQlTdHJpeCBTeXN0ZW1zLCBJbmMuCisJCQkJMjY2MTAgQWdvdXJhIFJvYWQKKwkJCQlDYWxhYmFzYXMgQ0EgOTEzMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTM0ICAgKGhleCkJCVRSRU5ET04gVE9VQ0ggVEVDSE5PTE9HWSBDT1JQLgorMDAxOTM0ICAgICAoYmFzZSAxNikJCVRSRU5ET04gVE9VQ0ggVEVDSE5PTE9HWSBDT1JQLgorCQkJCTJGIE5vLjUsIEFsbGV5IDIyLCBMYW5lIDUxMywgUnVlaWd1YW5nIFJkLiwgTmVpaHUKKwkJCQlUYWlwZWkgQ2l0eSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS0zNSAgIChoZXgpCQlEdWVyciBEZW50YWwgR21iSCAmIENvLiBLRworMDAxOTM1ICAgICAoYmFzZSAxNikJCUR1ZXJyIERlbnRhbCBHbWJIICYgQ28uIEtHCisJCQkJSG9lcGZpZ2hlaW1lciBTdHJhc3NlIDE3CisJCQkJQmlldGlnaGVpbS1CaXNzaW5nZW4gQmFkZW4tV3VlcnR0ZW1iZXJnIDc0MzIxCisJCQkJR0VSTUFOWQorCiswMC0xOS0zNiAgIChoZXgpCQlTVEVSTElURSBPUFRJQ0FMIFRFQ0hOT0xPR0lFUyBMSU1JVEVECiswMDE5MzYgICAgIChiYXNlIDE2KQkJU1RFUkxJVEUgT1BUSUNBTCBURUNITk9MT0dJRVMgTElNSVRFRAorCQkJCUUtMSxFLTIsJkUtMworCQkJCU1JREMgLCBXQUxVSgorCQkJCUFVUkFOR0FCQUQgTUFIQVJBU1RSQSA0MzExMzYKKwkJCQlJTkRJQQorCiswMC0xOS0zNyAgIChoZXgpCQlDb21tZXJjZUd1YXJkIEFCCiswMDE5MzcgICAgIChiYXNlIDE2KQkJQ29tbWVyY2VHdWFyZCBBQgorCQkJCUd1c3RhdnNsdW5kc3YgMTUxQQorCQkJCUJST01NQSAgMTY3MTQKKwkJCQlTV0VERU4KKworMDAtMTktMzggICAoaGV4KQkJVU1CIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorMDAxOTM4ICAgICAoYmFzZSAxNikJCVVNQiBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQkxMDEwLCA1LCBBQ0UgVGVjaG5vIFRvd2VyLCAxOTctMjIsIEd1cm8tZG9uZywgR3Vyby1ndQorCQkJCVNlb3VsICAxNTEtNzY2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LTM5ICAgKGhleCkJCUdpZ2FtaXBzCiswMDE5MzkgICAgIChiYXNlIDE2KQkJR2lnYW1pcHMKKwkJCQk1dGggRmxvb3IsIFlhbmdqYWUgQnVpbGRpbmcsIDI2MSwgWWFuZ2phZS1Eb25nCisJCQkJU2VvY2hvLUd1IFNlb3VsIDEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktM0EgICAoaGV4KQkJT0VTT0xVVElPTlMKKzAwMTkzQSAgICAgKGJhc2UgMTYpCQlPRVNPTFVUSU9OUworCQkJCVRlY2hub3BhcmssIDk1OC0zIERhZWNob24tRG9uZywgQnVrLUd1CisJCQkJR3dhbmdqdSBCdWstR3UgNTAwLTcwNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS0zQiAgIChoZXgpCQlXaWxpYm94IERlbGliZXJhbnQgR3JvdXAgTExDCiswMDE5M0IgICAgIChiYXNlIDE2KQkJV2lsaWJveCBEZWxpYmVyYW50IEdyb3VwIExMQworCQkJCTE0NDAgRHV0Y2ggVmFsbGV5IFBsYWNlCisJCQkJU3VpdGUgMTE1NQorCQkJCUF0bGFudGEgR0EgMzAzMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTNDICAgKGhleCkJCUhpZ2hQb2ludCBUZWNobm9sb2dpZXMgSW5jb3Jwb3JhdGVkCiswMDE5M0MgICAgIChiYXNlIDE2KQkJSGlnaFBvaW50IFRlY2hub2xvZ2llcyBJbmNvcnBvcmF0ZWQKKwkJCQkxMTYxIENhZGlsbGFjIENvdXJ0CisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTNEICAgKGhleCkJCUdNQyBHdWFyZGlhbiBNb2JpbGl0eSBDb3JwLgorMDAxOTNEICAgICAoYmFzZSAxNikJCUdNQyBHdWFyZGlhbiBNb2JpbGl0eSBDb3JwLgorCQkJCVN1aXRlIDIwMAorCQkJCTQzIEF1cmlnYSBEci4KKwkJCQlPdHRhd2EgT04gSzJFIDdZOAorCQkJCUNBTkFEQQorCiswMC0xOS0zRSAgIChoZXgpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMKKzAwMTkzRSAgICAgKGJhc2UgMTYpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMKKwkJCQlWSUFMRSBTQVJDQSAyMjIKKwkJCQlNSUxBTk8gIDIwMTI2CisJCQkJSVRBTFkKKworMDAtMTktM0YgICAoaGV4KQkJUkRJIHRlY2hub2xvZ3koU2hlbnpoZW4pIENvLixMVEQKKzAwMTkzRiAgICAgKGJhc2UgMTYpCQlSREkgdGVjaG5vbG9neShTaGVuemhlbikgQ28uLExURAorCQkJCUJ1aWxkaW5nIEMxJkMyLCAgWGluIFRhbmcgSW5kdXN0cmlhbCBab25lLEVhc3QgQmFpU2hpWGlhIFZpbGxhZ2UsIEZ1eW9uZyBUb3duLCBCYW9hbiBEaXN0cmljdAorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyBwcm92aW5jZSA1MTgxMDMKKwkJCQlDSElOQQorCiswMC0xOS00MCAgIChoZXgpCQlSYWNrYWJsZSBTeXN0ZW1zCiswMDE5NDAgICAgIChiYXNlIDE2KQkJUmFja2FibGUgU3lzdGVtcworCQkJCTE5MzMgTWlsbW9udCBEcml2ZQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS00MSAgIChoZXgpCQlQaXRuZXkgQm93ZXMsIEluYworMDAxOTQxICAgICAoYmFzZSAxNikJCVBpdG5leSBCb3dlcywgSW5jCisJCQkJMzUgV2F0ZXJ2aWV3IERyaXZlCisJCQkJTVNDIDI2LTIxCisJCQkJU2hlbHRvbiBDVCAwNjQ4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNDIgICAoaGV4KQkJT04gU09GVFdBUkUgSU5URVJOQVRJT05BTCBMSU1JVEVECiswMDE5NDIgICAgIChiYXNlIDE2KQkJT04gU09GVFdBUkUgSU5URVJOQVRJT05BTCBMSU1JVEVECisJCQkJOUYsIE5PLiAxNywgU0VDLiAxLCBDSEVORy1URSBSRC4KKwkJCQlUQUlQRUkgIDEwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktNDMgICAoaGV4KQkJQmVsZGVuCiswMDE5NDMgICAgIChiYXNlIDE2KQkJQmVsZGVuCisJCQkJNzkzIEZvcnQgTWlsbCBIaWdod2F5CisJCQkJRm9ydCBNaWxsIFNvdXRoIENhcm9saW5hIDI5NzE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS00NCAgIChoZXgpCQlGb3NzaWwgUGFydG5lcnMsIEwuUC4KKzAwMTk0NCAgICAgKGJhc2UgMTYpCQlGb3NzaWwgUGFydG5lcnMsIEwuUC4KKwkJCQkyMjgwIE4uIEdyZWVudmlsbGUgQXZlLgorCQkJCVJpY2hhcmRzb24gVFggNzUwODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTQ1ICAgKGhleCkJCVRlbi1UZWMgSW5jLgorMDAxOTQ1ICAgICAoYmFzZSAxNikJCVRlbi1UZWMgSW5jLgorCQkJCTExODUgRG9sbHkgUGFydG9uIFBrd3kKKwkJCQlTZXZpZXJ2aWxsZSBUTiAzNzg2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNDYgICAoaGV4KQkJQ2lhbmV0IEluZHVzdHJpYSBlIENvbWVyY2lvIFMvQQorMDAxOTQ2ICAgICAoYmFzZSAxNikJCUNpYW5ldCBJbmR1c3RyaWEgZSBDb21lcmNpbyBTL0EKKwkJCQlyb2QgU0M0MDEsIGttMDEgVGVjbm9wb2xpcy9BbGZhbWEgNG8uIEFuZGFyCisJCQkJRmxvcmlhbm9wb2xpcyBTYW50YSBDYXRhcmluYSA4ODAzMC05MDIKKwkJCQlCUkFaSUwKKworMDAtMTktNDcgICAoaGV4KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBBIENpc2NvIENvbXBhbnkKKzAwMTk0NyAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIEF0bGFudGEsIEEgQ2lzY28gQ29tcGFueQorCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlBVEwgMS4zLjQ3MworCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTQ4ICAgKGhleCkJCUFpcmVTcGlkZXIgTmV0d29ya3MKKzAwMTk0OCAgICAgKGJhc2UgMTYpCQlBaXJlU3BpZGVyIE5ldHdvcmtzCisJCQkJMTE3MSBNb250YWd1ZSBFeHByZXNzIFdheQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS00OSAgIChoZXgpCQlURU5URUwgIENPTVRFQ0ggQ08uLCBMVEQuCiswMDE5NDkgICAgIChiYXNlIDE2KQkJVEVOVEVMICBDT01URUNIIENPLiwgTFRELgorCQkJCTMvRi4sIE5PLiA0MiwgTEFORSA4MCwgU0VDLiAzLCBOQU4tS0FORyBSRC4sCisJCQkJVEFJUEVJICAxMTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTRBICAgKGhleCkJCVRFU1RPIEFHCiswMDE5NEEgICAgIChiYXNlIDE2KQkJVEVTVE8gQUcKKwkJCQlUZXN0byBTdHJhc3NlIDEKKwkJCQlMZW56a2lyY2ggQmFkZW4tV3VydGVtYmVyZyA3OTg1MworCQkJCUdFUk1BTlkKKworMDAtMTktNEIgICAoaGV4KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorMDAxOTRCICAgICAoYmFzZSAxNikJCVNBR0VNIENPTU1VTklDQVRJT04KKwkJCQkyNyBSVUUgTEVCTEFOQworCQkJCVBBUklTICA3NTUxMgorCQkJCUZSQU5DRQorCiswMC0xOS00QyAgIChoZXgpCQlGdWppYW4gU3RlbGNvbSBpbmZvcm1hdGlvbiAmIFRlY2hub2xvZ3kgQ08uLEx0ZAorMDAxOTRDICAgICAoYmFzZSAxNikJCUZ1amlhbiBTdGVsY29tIGluZm9ybWF0aW9uICYgVGVjaG5vbG9neSBDTy4sTHRkCisJCQkJNEYsQnVpbGRpbmcgQSxTdGFydCBTY2llbmNlIFBhcmssIE5vLjY4LEhvbmdzaGFueXVhbiBSZAorCQkJCUZ1emhvdSBGdWppYW4gMzUwMDAyCisJCQkJQ0hJTkEKKworMDAtMTktNEQgICAoaGV4KQkJQXZhZ28gVGVjaG5vbG9naWVzIFNkbiBCaGQKKzAwMTk0RCAgICAgKGJhc2UgMTYpCQlBdmFnbyBUZWNobm9sb2dpZXMgU2RuIEJoZAorCQkJCUJheWFuIExlcGFzIEZyZWUgSW5kdXN0cmlhbCBab25lCisJCQkJQmF5YW4gTGVwYXMgUGVuYW5nIDExOTAwCisJCQkJTUFMQVlTSUEKKworMDAtMTktNEUgICAoaGV4KQkJVWx0cmEgRWxlY3Ryb25pY3MgLSBUQ1MgKFRhY3RpY2FsIENvbW11bmljYXRpb24gU3lzdGVtcykKKzAwMTk0RSAgICAgKGJhc2UgMTYpCQlVbHRyYSBFbGVjdHJvbmljcyAtIFRDUyAoVGFjdGljYWwgQ29tbXVuaWNhdGlvbiBTeXN0ZW1zKQorCQkJCTU5OTAgQ290ZSBEZSBMaWVzc2UKKwkJCQlUTVIgUXVlYmVjIEg0VCAxVjcKKwkJCQlDQU5BREEKKworMDAtMTktNEYgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTk0RiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMTktNTAgICAoaGV4KQkJSGFybWFuIE11bHRpbWVkaWEKKzAwMTk1MCAgICAgKGJhc2UgMTYpCQlIYXJtYW4gTXVsdGltZWRpYQorCQkJCTg0MDAgQmFsYm9hIEJsdmQuCisJCQkJTm9ydGhyaWRnZSBDQSA5MTMyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNTEgICAoaGV4KQkJTkVUQ09OUywgcy5yLm8uCiswMDE5NTEgICAgIChiYXNlIDE2KQkJTkVUQ09OUywgcy5yLm8uCisJCQkJU3RhcmEgVmFqbm9yc2thIDM3CisJCQkJQnJhdGlzbGF2YSBTbG92YWtpYSA4MzEgMDQKKwkJCQlTTE9WQUtJQQorCiswMC0xOS01MiAgIChoZXgpCQlBQ09HSVRPIENvLiwgTHRkCiswMDE5NTIgICAgIChiYXNlIDE2KQkJQUNPR0lUTyBDby4sIEx0ZAorCQkJCSM1MDEgU2hpbnlvdW5nIFBhbGFjZSBUb3dlciwgMjQ2LTIsIFNlb2h5dW4KKwkJCQlTdW5nbmFtIEt5dW5nZ2kgNDYzLTgyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS01MyAgIChoZXgpCQlDaGFpbmxlYWRlciBDb21tdW5pY2F0aW9ucyBDb3JwLgorMDAxOTUzICAgICAoYmFzZSAxNikJCUNoYWlubGVhZGVyIENvbW11bmljYXRpb25zIENvcnAuCisJCQkJNUYsIE5vLiA0MDAsIFNlYy4gMiBCYWRlIFJkLiwKKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktNTQgICAoaGV4KQkJTGVhZiBDb3Jwb3JhdGlvbi4KKzAwMTk1NCAgICAgKGJhc2UgMTYpCQlMZWFmIENvcnBvcmF0aW9uLgorCQkJCUFtdXplIDFGCisJCQkJSGlnYXNoaSBOYXJ1c2UgMzUtMTAKKwkJCQlJc2VoYXJhIENpdHkgS2FuYWdhd2EtUHJlZi4gMjU5LTExMTcKKwkJCQlKQVBBTgorCiswMC0xOS01NSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE5NTUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS01NiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE5NTYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS01NyAgIChoZXgpCQlTYWFmbmV0IENhbmFkYSBJbmMuCiswMDE5NTcgICAgIChiYXNlIDE2KQkJU2FhZm5ldCBDYW5hZGEgSW5jLgorCQkJCTEwNy0xMDg5IEVhc3QgS2VudCBBdmUgKE4pCisJCQkJVmFuY291dmVyIEJDIFY1WCA0VjkKKwkJCQlDQU5BREEKKworMDAtMTktNTggICAoaGV4KQkJQmx1ZXRvb3RoIFNJRywgSW5jLgorMDAxOTU4ICAgICAoYmFzZSAxNikJCUJsdWV0b290aCBTSUcsIEluYy4KKwkJCQk1MDAgMTA4dGggQXZlbnVlIE5FCisJCQkJU3VpdGUgMjUwCisJCQkJQmVsbGV2dWUgV0EgOTgwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTU5ICAgKGhleCkJCVN0YWNjYXRvIENvbW11bmljYXRpb25zIEluYy4KKzAwMTk1OSAgICAgKGJhc2UgMTYpCQlTdGFjY2F0byBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJNjE5NSBMdXNrIEJsdmQuCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS01QSAgIChoZXgpCQlKZW5hZXIgQW50cmllYnN0ZWNobmlrIEdtYkgKKzAwMTk1QSAgICAgKGJhc2UgMTYpCQlKZW5hZXIgQW50cmllYnN0ZWNobmlrIEdtYkgKKwkJCQlCdWNoYWVyIFN0cmFzc2UgMQorCQkJCUplbmEgVGh1ZXJpbmdlbiAwNzc0NQorCQkJCUdFUk1BTlkKKworMDAtMTktNUIgICAoaGV4KQkJRC1MaW5rIENvcnBvcmF0aW9uCiswMDE5NUIgICAgIChiYXNlIDE2KQkJRC1MaW5rIENvcnBvcmF0aW9uCisJCQkJTk8uMjg5LCBTaW5odSAzcmQgUmQuLAorCQkJCU5laWh1IERpc3RyaWN0LCBUYWlwZWkgQ2l0eSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTVDICAgKGhleCkJCUlubm90ZWNoIENvcnBvcmF0aW9uCiswMDE5NUMgICAgIChiYXNlIDE2KQkJSW5ub3RlY2ggQ29ycG9yYXRpb24KKwkJCQkzLTE3LTYKKwkJCQlTaGluLVlva29oYW1hLCBLb2hva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjItODU4MAorCQkJCUpBUEFOCisKKzAwLTE5LTVEICAgKGhleCkJCVNoZW5aaGVuIFhpbkh1YVRvbmcgT3B0byBFbGVjdHJvbmljcyBDby4sTHRkCiswMDE5NUQgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gWGluSHVhVG9uZyBPcHRvIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQk1RixCYW9kYVpob3UsU2hhbmNoZW5nIEluZHVzdHJpYWwgWm9uZSxCYW9BbiBEaXN0cmljdAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMDgKKwkJCQlDSElOQQorCiswMC0xOS01RSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxOTVFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNUYgICAoaGV4KQkJVmFsZW1vdW50IE5ldHdvcmtzIENvcnBvcmF0aW9uCiswMDE5NUYgICAgIChiYXNlIDE2KQkJVmFsZW1vdW50IE5ldHdvcmtzIENvcnBvcmF0aW9uCisJCQkJMTIwMS0gNXRoIEF2ZQorCQkJCVBPIEJveCA2ODcKKwkJCQlWYWxlbW91bnQgQkMgVjBFMlowCisJCQkJQ0FOQURBCisKKzAwLTE5LTYwICAgKGhleCkJCURvQ29NbyBTeXN0ZW1zLCBJbmMuCiswMDE5NjAgICAgIChiYXNlIDE2KQkJRG9Db01vIFN5c3RlbXMsIEluYy4KKwkJCQlNZWd1cm8gVGVjaG5vIEJsZGcuIDJuZCBGbG9vcgorCQkJCTQtMzEtMTggTmlzaGktR290YW5kYQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAzMQorCQkJCUpBUEFOCisKKzAwLTE5LTYxICAgKGhleCkJCUJsYXVwdW5rdCBHbWJICiswMDE5NjEgICAgIChiYXNlIDE2KQkJQmxhdXB1bmt0IEdtYkgKKwkJCQlSb2JlcnQtQm9zY2gtU3RyYXNzZSAyMDAKKwkJCQlIaWxkZXNoZWltIEhlc3NlbiAzMTEzOQorCQkJCUdFUk1BTlkKKworMDAtMTktNjIgICAoaGV4KQkJQ29tbWVyY2lhbnQsIExQCiswMDE5NjIgICAgIChiYXNlIDE2KQkJQ29tbWVyY2lhbnQsIExQCisJCQkJMjkwMSBXaWxjcmVzdAorCQkJCVN1aXRlIDI1MAorCQkJCUhvdXN0b24gVGV4YXMgNzcwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTYzICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDE5NjMgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTa2FuZSAyMjEgODgKKwkJCQlTV0VERU4KKworMDAtMTktNjQgICAoaGV4KQkJRG9vcmtpbmcgSW5jLgorMDAxOTY0ICAgICAoYmFzZSAxNikJCURvb3JraW5nIEluYy4KKwkJCQkxMjAgR2xhc2dvdyBTdC4KKwkJCQlJbmdsZXdvb2QgQ0EuIDkwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS02NSAgIChoZXgpCQlZdUh1YSBUZWxUZWNoIChTaGFuZ0hhaSkgQ28uLCBMdGQuCiswMDE5NjUgICAgIChiYXNlIDE2KQkJWXVIdWEgVGVsVGVjaCAoU2hhbmdIYWkpIENvLiwgTHRkLgorCQkJCVl1SHVhIFImRCBCdWlsZGluZywyNyB4aW4gamluIHFpYW8gcm9hZCwKKwkJCQlQdWRvbmcsCisJCQkJU0hBTkdIQUkgIDIwMTIwNgorCQkJCUNISU5BCisKKzAwLTE5LTY2ICAgKGhleCkJCUFzaWFyb2NrIFRlY2hub2xvZ3kgTGltaXRlZAorMDAxOTY2ICAgICAoYmFzZSAxNikJCUFzaWFyb2NrIFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCVAuTy4gQm94OTU3LCBPZmZzaG9yZSBJbmNvcnBvcmF0aW9ucyBDZW50cmUKKwkJCQlSb2FkIFRvd24gVG9ydG9sYSAKKwkJCQlWSVJHSU4gSVNMQU5EUywgQlJJVElTSAorCiswMC0xOS02NyAgIChoZXgpCQlURUxEQVQgU3AuSi4KKzAwMTk2NyAgICAgKGJhc2UgMTYpCQlURUxEQVQgU3AuSi4KKwkJCQlLaWpvd3NrYSA0NAorCQkJCU5JUCA1NTQgMTkgMjYgMDQyCisJCQkJQnlkZ29zemN6IHdvai4ga3VqYXdza28tcG9tb3Jza2llIDg1LTcwMworCQkJCVBPTEFORAorCiswMC0xOS02OCAgIChoZXgpCQlEaWdpdGFsIFZpZGVvIE5ldHdvcmtzKFNoYW5naGFpKSBDTy4gTFRELgorMDAxOTY4ICAgICAoYmFzZSAxNikJCURpZ2l0YWwgVmlkZW8gTmV0d29ya3MoU2hhbmdoYWkpIENPLiBMVEQuCisJCQkJOXRoIEZsb29yLEhlY2h1YW4gQnVpbGRpbmcsIE5vLjEwMjYgWWlTaGFuIFJkCisJCQkJU2hhbmdoYWkgIDIwMTEwMworCQkJCUNISU5BCisKKzAwLTE5LTY5ICAgKGhleCkJCU5vcnRlbAorMDAxOTY5ICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xOS02QSAgIChoZXgpCQlNaWtyb00gR21iSAorMDAxOTZBICAgICAoYmFzZSAxNikJCU1pa3JvTSBHbWJICisJCQkJRG92ZXN0ci4gMQorCQkJCUJlcmxpbiAgMTA1ODcKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTZCICAgKGhleCkJCURhbnBleCBDb3Jwb3JhdGlvbgorMDAxOTZCICAgICAoYmFzZSAxNikJCURhbnBleCBDb3Jwb3JhdGlvbgorCQkJCTIxMTQgUmluZ3dvb2QgQXZlbnVlCisJCQkJU2FuIEpvc2UgQ2FsaWZvcm5pYSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNkMgICAoaGV4KQkJRVRST1ZJU0lPTiBURUNITk9MT0dZCiswMDE5NkMgICAgIChiYXNlIDE2KQkJRVRST1ZJU0lPTiBURUNITk9MT0dZCisJCQkJMkYsIDE5LTUgU2FuIENodW5nIFJkLiwKKwkJCQlCbG9jayBDLCBOYW4gS2FuZyBTb2Z0d2FyZSBQYXJrLCBOYW4gS2FuZyBEaXN0cmljdCwKKwkJCQlUQUlQRUkgIDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktNkQgICAoaGV4KQkJUmF5Yml0IFN5c3RlbXMgS29yZWEsIEluYworMDAxOTZEICAgICAoYmFzZSAxNikJCVJheWJpdCBTeXN0ZW1zIEtvcmVhLCBJbmMKKwkJCQlEcmVhbSBUb3dlciAxMjIxCisJCQkJOTIzLTE0LCBNb2tkb25nLCBZYW5nY2h1bmt1CisJCQkJU2VvdWwgIDE1OC03MTgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktNkUgICAoaGV4KQkJTWV0YWNvbSAoUHR5KSBMdGQuCiswMDE5NkUgICAgIChiYXNlIDE2KQkJTWV0YWNvbSAoUHR5KSBMdGQuCisJCQkJNiBOZGFiZW5pIEJ1c2luZXNzIFBhcmsKKwkJCQlJbnlvbmkgU3RyLCBOZGFiZW5pCisJCQkJQ2FwZSBUb3duIFdlc3Rlcm4gQ2FwZSA3NDA1CisJCQkJU09VVEggQUZSSUNBCisKKzAwLTE5LTZGICAgKGhleCkJCVNlbnNvUGFydCBHbWJICiswMDE5NkYgICAgIChiYXNlIDE2KQkJU2Vuc29QYXJ0IEdtYkgKKwkJCQlBbSBXaWVkZW5iYWNoIDEKKwkJCQlXaWVkZW4gQmFkZW4tV3VlcnR0ZW1iZXJnIEQtNzk2OTUKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTcwICAgKGhleCkJCVotQ29tLCBJbmMuCiswMDE5NzAgICAgIChiYXNlIDE2KQkJWi1Db20sIEluYy4KKwkJCQk3Ri0yLCBOTy45LCBQUk9TUEVSSVRZIDFTVCBSRC4KKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU5DSFUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktNzEgICAoaGV4KQkJR3Vhbmd6aG91IFVuaWNvbXAgVGVjaG5vbG9neSBDby4sTHRkCiswMDE5NzEgICAgIChiYXNlIDE2KQkJR3Vhbmd6aG91IFVuaWNvbXAgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJNy9GLE5vcnRoIFRvd2VyLEppbnNoYW4gQnVpbGRpbmcuTm8uMjQ4CisJCQkJUmQgV3VzaGFuLCBUaWFuaGUgRGlzdHJpY3QKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDYzMAorCQkJCUNISU5BCisKKzAwLTE5LTcyICAgKGhleCkJCVBsZXh1cyAoWGlhbWVuKSBDby4sbHRkCiswMDE5NzIgICAgIChiYXNlIDE2KQkJUGxleHVzIChYaWFtZW4pIENvLixsdGQKKwkJCQlOby42IFhpYW5neGluZyAyIFJvYWQKKwkJCQlYaWFuZ3l1IEZyZWUgVHJhZGUgWm9uZQorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA2CisJCQkJQ0hJTkEKKworMDAtMTktNzMgICAoaGV4KQkJWmV1Z21hIFN5c3RlbXMKKzAwMTk3MyAgICAgKGJhc2UgMTYpCQlaZXVnbWEgU3lzdGVtcworCQkJCVN1aXRlIDI1MAorCQkJCTEzNTcxIENvbW1lcmNlIFBhcmt3YXkKKwkJCQlSaWNobW9uZCBCQyBWNlYgMlIyCisJCQkJQ0FOQURBCisKKzAwLTE5LTc0ICAgKGhleCkJCUFib0NvbSBTeXN0ZW1zLCBJbmMuCiswMDE5NzQgICAgIChiYXNlIDE2KQkJQWJvQ29tIFN5c3RlbXMsIEluYy4KKwkJCQkxRiAsIE5vLiAyMSwgWWFuZmEgMm5kIFJkLiwgU0JJUAorCQkJCUhzaW5jaHUgQ2l0eSBIc2luY2h1IDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktNzUgICAoaGV4KQkJQmVpamluZyBIdWlzZW4gbmV0d29ya3MgdGVjaG5vbG9neSBJbmMKKzAwMTk3NSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEh1aXNlbiBuZXR3b3JrcyB0ZWNobm9sb2d5IEluYworCQkJCUppYSMyIG9mIFhpbGkgb2YgQmFpeXVuIHJvYWQsWGljaGVuZyBkaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA0NQorCQkJCUNISU5BCisKKzAwLTE5LTc2ICAgKGhleCkJCVhpcGhlciBUZWNobm9sb2dpZXMsIExMQworMDAxOTc2ICAgICAoYmFzZSAxNikJCVhpcGhlciBUZWNobm9sb2dpZXMsIExMQworCQkJCTE1NiBSaXZlciBSb2FkCisJCQkJV2lsbGluZ3RvbiBDVCAwNjI3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNzcgICAoaGV4KQkJQWVyb2hpdmUgTmV0d29ya3MsIEluYy4KKzAwMTk3NyAgICAgKGJhc2UgMTYpCQlBZXJvaGl2ZSBOZXR3b3JrcywgSW5jLgorCQkJCTMxNTAtQyBDb3JvbmFkbyBEcml2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS03OCAgIChoZXgpCQlEYXR1bSBTeXN0ZW1zLCBJbmMuCiswMDE5NzggICAgIChiYXNlIDE2KQkJRGF0dW0gU3lzdGVtcywgSW5jLgorCQkJCTM2NjYgVGlmZmFuaSBDdC4KKwkJCQlTYW50YSBDcnV6IENBIDk1MDY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS03OSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxOTc5ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xOS03QSAgIChoZXgpCQlNQVplVCBHbWJICiswMDE5N0EgICAgIChiYXNlIDE2KQkJTUFaZVQgR21iSAorCQkJCUdvZXNjaHdpdHplciBTdHIuIDMyCisJCQkJSmVuYSAgRC0wNzc0NQorCQkJCUdFUk1BTlkKKworMDAtMTktN0IgICAoaGV4KQkJUGljb3Rlc3QgQ29ycC4KKzAwMTk3QiAgICAgKGJhc2UgMTYpCQlQaWNvdGVzdCBDb3JwLgorCQkJCThGLTEsIDI4Ni05LCBIc2luLVlhIFJkLiwgODA2NzMKKwkJCQlLYW9oc2l1bmcgIDgwNjczCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS03QyAgIChoZXgpCQlSaWVkZWwgQ29tbXVuaWNhdGlvbnMgR21iSAorMDAxOTdDICAgICAoYmFzZSAxNikJCVJpZWRlbCBDb21tdW5pY2F0aW9ucyBHbWJICisJCQkJVWVsbGVuZGFobGVyIFN0ci4gMzUzCisJCQkJV3VwcGVydGFsIE5SVyA0MjEwOQorCQkJCUdFUk1BTlkKKworMDAtMTktN0QgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZAorMDAxOTdEICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQKKwkJCQk2NiwgQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS03RSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkCiswMDE5N0UgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZAorCQkJCTY2LCBDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTdGICAgKGhleCkJCVBMQU5UUk9OSUNTLCBJTkMuCiswMDE5N0YgICAgIChiYXNlIDE2KQkJUExBTlRST05JQ1MsIElOQy4KKwkJCQkzNDUgRU5DSU5BTCBTVFJFRVQKKwkJCQlTQU5UQSBDUlVaIENBTElGT1JOSUEgOTUwNjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTgwICAgKGhleCkJCUdyaWRwb2ludCBTeXN0ZW1zCiswMDE5ODAgICAgIChiYXNlIDE2KQkJR3JpZHBvaW50IFN5c3RlbXMKKwkJCQk0MDQzIENhcmxpbmcgQXZlbnVlLCBTdWl0ZSAyMDAKKwkJCQlPdHRhd2EgT250YXJpbyBLMksgMkEzCisJCQkJQ0FOQURBCisKKzAwLTE5LTgxICAgKGhleCkJCVZpdm94IEluYworMDAxOTgxICAgICAoYmFzZSAxNikJCVZpdm94IEluYworCQkJCTQwIFNwZWVuIFN0cmVldAorCQkJCVN1aXRlIDQwMgorCQkJCUZyYW1pbmdoYW0gTUEgMDE3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTgyICAgKGhleCkJCVNtYXJEVFYKKzAwMTk4MiAgICAgKGJhc2UgMTYpCQlTbWFyRFRWCisJCQkJNTMxIEF2ZW51ZSBkdSBTZXJwb2xldAorCQkJCVpFIEF0aGVsaWEgMgorCQkJCUxhIENpb3RhdCBGcmFuY2UgMTMgNzA0CisJCQkJRlJBTkNFCisKKzAwLTE5LTgzICAgKGhleCkJCUNDVCBSJkQgTGltaXRlZAorMDAxOTgzICAgICAoYmFzZSAxNikJCUNDVCBSJkQgTGltaXRlZAorCQkJCTE4L0YgQ0NUIFRlbGVjb20gQnVpbGRpbmcKKwkJCQkxMSBXbyBTaGluZyBTdHJlZXQKKwkJCQlGb3RhbiwgU2hhdGluIE4uVC4gMDAwMAorCQkJCUhPTkcgS09ORworCiswMC0xOS04NCAgIChoZXgpCQlFU1RJQyBDb3Jwb3JhdGlvbgorMDAxOTg0ICAgICAoYmFzZSAxNikJCUVTVElDIENvcnBvcmF0aW9uCisJCQkJMi01LTkgSGFzaGliYWhpZ2FzaGluby1jaG8KKwkJCQlNb3JpZ3VjaGkgT3Nha2EgNTcwLTAwMzEKKwkJCQlKQVBBTgorCiswMC0xOS04NSAgIChoZXgpCQlJVCBXYXRjaGRvZ3MsIEluYworMDAxOTg1ICAgICAoYmFzZSAxNikJCUlUIFdhdGNoZG9ncywgSW5jCisJCQkJMTI4ODUgUmVzZWFyY2gsIFN1aXRlIDIxMEIKKwkJCQlBdXN0aW4gVFggNzg3NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTg2ICAgKGhleCkJCUNoZW5nIEhvbmdqaWFuCiswMDE5ODYgICAgIChiYXNlIDE2KQkJQ2hlbmcgSG9uZ2ppYW4KKwkJCQlSbS4yMzA1Qi5TZWdlIFBsYXphLEh1YXFpYW5nIE5vcnRoIFJkLiwKKwkJCQlGdXRpYW4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMTktODcgICAoaGV4KQkJUGFuYXNvbmljIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMTk4NyAgICAgKGJhc2UgMTYpCQlQYW5hc29uaWMgTW9iaWxlIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorCQkJCTYwMCBTYWVkby1jaG8sIFRzdXp1a2kta3UsCisJCQkJWW9rb2hhbWEgQ2l0eSBLYW5hZ2F3YSBQcmVmZWN0dXJlIDIyNC04NTM5CisJCQkJSkFQQU4KKworMDAtMTktODggICAoaGV4KQkJV2kyV2ksIEluYworMDAxOTg4ICAgICAoYmFzZSAxNikJCVdpMldpLCBJbmMKKwkJCQkyMTA3IE4uIDFzdCBTdHJlZXQKKwkJCQlTdWl0ZSA1NDAKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktODkgICAoaGV4KQkJU29uaXRyb2wgQ29ycG9yYXRpb24KKzAwMTk4OSAgICAgKGJhc2UgMTYpCQlTb25pdHJvbCBDb3Jwb3JhdGlvbgorCQkJCTE3MDcgT3JsYW5kbyBDZW50cmFsIFBrd3kuCisJCQkJU3VpdGUgNTAwCisJCQkJT3JsYW5kbyBGTCAzMjgwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktOEEgICAoaGV4KQkJTm9ydGhyb3AgR3J1bW1hbiBTeXN0ZW1zIENvcnAuCiswMDE5OEEgICAgIChiYXNlIDE2KQkJTm9ydGhyb3AgR3J1bW1hbiBTeXN0ZW1zIENvcnAuCisJCQkJNzA1NSBUcm95IEhpbGwgRHJpdmUKKwkJCQlFbGtyaWRnZSBNYXJ5bGFuZCAyMTA3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktOEIgICAoaGV4KQkJTm92ZXJhIE9wdGljcyBLb3JlYSwgSW5jLgorMDAxOThCICAgICAoYmFzZSAxNikJCU5vdmVyYSBPcHRpY3MgS29yZWEsIEluYy4KKwkJCQk0NjMtMSBKZW9uIE1pbiBEb25nIFl1c2VvbmcgR3UKKwkJCQlEZWFqZW9uICAzMDUtODExCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LThDICAgKGhleCkJCWlYU2VhCiswMDE5OEMgICAgIChiYXNlIDE2KQkJaVhTZWEKKwkJCQk1NSBhdiBhdWd1c3RlIFJlbm9pcgorCQkJCU1hcmx5IGxlIFJvaSAgNzgxNjAKKwkJCQlGUkFOQ0UKKworMDAtMTktOEQgICAoaGV4KQkJT2NlYW4gT3B0aWNzLCBJbmMuCiswMDE5OEQgICAgIChiYXNlIDE2KQkJT2NlYW4gT3B0aWNzLCBJbmMuCisJCQkJODMwIERvdWdsYXMgQXZlCisJCQkJRHVuZWRpbiBGTCAzNDY5OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktOEUgICAoaGV4KQkJT3RpY29uIEEvUworMDAxOThFICAgICAoYmFzZSAxNikJCU90aWNvbiBBL1MKKwkJCQlLb25nZWJha2tlbiA5CisJCQkJU20/cnVtICAyNzY1CisJCQkJREVOTUFSSworCiswMC0xOS04RiAgIChoZXgpCQlBbGNhdGVsIEJlbGwgTi5WLgorMDAxOThGICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgQmVsbCBOLlYuCisJCQkJQ29wZXJuaWN1c2xhYW4gNTAKKwkJCQlBbnR3ZXJwICBCLTIwMTgKKwkJCQlCRUxHSVVNCisKKzAwLTE5LTkwICAgKGhleCkJCUVMTSBEQVRBIENvLiwgTHRkLgorMDAxOTkwICAgICAoYmFzZSAxNikJCUVMTSBEQVRBIENvLiwgTHRkLgorCQkJCTItMTUgVEVDSE5PLVBBUksgMS1DSE9NRQorCQkJCVNISU1PTk9QUE9STywgQVRTVUJFVFNVLUtVCisJCQkJU0FQUE9STyBIT0tLQUlETyAwMDQtMDAxNQorCQkJCUpBUEFOCisKKzAwLTE5LTkxICAgKGhleCkJCWF2aW5mbworMDAxOTkxICAgICAoYmFzZSAxNikJCWF2aW5mbworCQkJCUppYWh1aXl1YW4gNzAzLEh1YWFvIENlbnRlciwzMSMgWml6aHV5dWFuIFJvYWQsCisJCQkJSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4OQorCQkJCUNISU5BCisKKzAwLTE5LTkyICAgKGhleCkJCUJsdWVzb2NrZXQsIEluYworMDAxOTkyICAgICAoYmFzZSAxNikJCUJsdWVzb2NrZXQsIEluYworCQkJCTEwIE5vcnRoIEF2ZQorCQkJCUJ1cmxpbmd0b24gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTkzICAgKGhleCkJCUNoYW5nc2h1IFN3aXRjaGdlYXIgTUZHLiBDby4sTHRkLiAoRm9ybWVyIENoYW5nc2h1IFN3aXRjaGdlYQorMDAxOTkzICAgICAoYmFzZSAxNikJCUNoYW5nc2h1IFN3aXRjaGdlYXIgTUZHLiBDby4sTHRkLiAoRm9ybWVyIENoYW5nc2h1IFN3aXRjaGdlYQorCQkJCU5vLiA4IEppYW55ZSBSb2FkCisJCQkJQ2hhbmdzaHUgSmlhbmdzdSAyMTU1MDAKKwkJCQlDSElOQQorCiswMC0xOS05NCAgIChoZXgpCQlKb3JqaW4gVGVjaG5vbG9naWVzIEluYy4KKzAwMTk5NCAgICAgKGJhc2UgMTYpCQlKb3JqaW4gVGVjaG5vbG9naWVzIEluYy4KKwkJCQk1RiwgTm8uMjgsIExhbmUxNDEsIFNpbmctYWkgUmQuCisJCQkJTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktOTUgICAoaGV4KQkJSnVyb25nIEhpLVRlY2ggKFN1emhvdSlDby5sdGQKKzAwMTk5NSAgICAgKGJhc2UgMTYpCQlKdXJvbmcgSGktVGVjaCAoU3V6aG91KUNvLmx0ZAorCQkJCTI3NSxYaW5nIExvbmcgU3RyZWV0Pz9TdXpob3UgSW5kdWR0cmlhbCBQYXJrCisJCQkJU3V6aG91IEppYW5nIFN1IDIxNTAyMQorCQkJCUNISU5BCisKKzAwLTE5LTk2ICAgKGhleCkJCVR1cmJvQ2hlZiBUZWNobm9sb2dpZXMgSW5jLgorMDAxOTk2ICAgICAoYmFzZSAxNikJCVR1cmJvQ2hlZiBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTQyNDAgSW50ZXJuYXRpb25hbCBQYXJrd2F5CisJCQkJU3VpdGUgMTA1CisJCQkJQ2Fycm9sbHRvbiBUZXhhcyA3NTAwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktOTcgICAoaGV4KQkJU29mdCBEZXZpY2UgU2RuIEJoZAorMDAxOTk3ICAgICAoYmFzZSAxNikJCVNvZnQgRGV2aWNlIFNkbiBCaGQKKwkJCQk2Ny0yIEphbGFuIDIvMjdGCisJCQkJS0xTQyBXYW5nc2EgTWFqdQorCQkJCUt1YWxhIEx1bXB1ciBXUCA1MzMwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE5LTk4ICAgKGhleCkJCVNBVE8gQ09SUE9SQVRJT04KKzAwMTk5OCAgICAgKGJhc2UgMTYpCQlTQVRPIENPUlBPUkFUSU9OCisJCQkJMS0yMDcsT05BUkktQ0hPLAorCQkJCU9NSVlBLUtVCisJCQkJU0FJVEFNQS1TSEkgU0FJVEFNQSAzMzAtMDg1MgorCQkJCUpBUEFOCisKKzAwLTE5LTk5ICAgKGhleCkJCUZ1aml0c3UgVGVjaG5vbG9neSBTb2x1dGlvbnMKKzAwMTk5OSAgICAgKGJhc2UgMTYpCQlGdWppdHN1IFRlY2hub2xvZ3kgU29sdXRpb25zCisJCQkJQnVlcmdlcm1laXN0ZXItVWxyaWNoLVN0cmFzc2UgMTAwCisJCQkJQXVnc2J1cmcgIDg2MTk5CisJCQkJR0VSTUFOWQorCiswMC0xOS05QSAgIChoZXgpCQlFRE8tRVZJCiswMDE5OUEgICAgIChiYXNlIDE2KQkJRURPLUVWSQorCQkJCTcwNjUgQ29sdW1iaWEgR2F0ZXdheSBEci4KKwkJCQlDb2x1bWJpYSBNRCAyMTA0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktOUIgICAoaGV4KQkJRGl2ZXJzaWZpZWQgVGVjaG5pY2FsIFN5c3RlbXMsIEluYy4KKzAwMTk5QiAgICAgKGJhc2UgMTYpCQlEaXZlcnNpZmllZCBUZWNobmljYWwgU3lzdGVtcywgSW5jLgorCQkJCTkwOSBFbGVjdHJpYyBBdmVudWUKKwkJCQlTdWl0ZSAyMDYKKwkJCQlTZWFsIEJlYWNoIENhbGlmb3JuaWEgOTA3NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTlDICAgKGhleCkJCUNUUklORworMDAxOTlDICAgICAoYmFzZSAxNikJCUNUUklORworCQkJCSM1MTQsIFdvcmxkIE1lcmlkaWFuIFZlbnR1cmUgQ2VudGVyIElJCisJCQkJR2FzbmEtZG9uZworCQkJCUtldW1jaGVvbi1ndSBTZW91bCAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LTlEICAgKGhleCkJCVZJWklPLCBJbmMuCiswMDE5OUQgICAgIChiYXNlIDE2KQkJVklaSU8sIEluYy4KKwkJCQkzOSBUZXNsYQorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktOUUgICAoaGV4KQkJU0hPV0FERU5TSEkgRUxFQ1RST05JQ1MsSU5DLgorMDAxOTlFICAgICAoYmFzZSAxNikJCVNIT1dBREVOU0hJIEVMRUNUUk9OSUNTLElOQy4KKwkJCQkxOTc4IEhJUk9PS0EtTk9NVVJBCisJCQkJU0hJT0pJUkktQ0lUWSBOQUdBTk8tUFJFRi4gMzk5LTA3MDIKKwkJCQlKQVBBTgorCiswMC0xOS05RiAgIChoZXgpCQlES1QgQS9TCiswMDE5OUYgICAgIChiYXNlIDE2KQkJREtUIEEvUworCQkJCUZhbm9ldmVqIDYKKwkJCQlLci4gU2FhYnkgIERLLTQwNjAKKwkJCQlERU5NQVJLCisKKzAwLTE5LUEwICAgKGhleCkJCU5JSE9OIERBVEEgU1lTVEVOUywgSU5DLgorMDAxOUEwICAgICAoYmFzZSAxNikJCU5JSE9OIERBVEEgU1lTVEVOUywgSU5DLgorCQkJCTYtOSwgS295by1jaG8gbmFrYQorCQkJCUhpZ2FzaGluYWRhLWt1CisJCQkJS29iZS1zaGkgSHlvZ28gNjU4LTAwMzIKKwkJCQlKQVBBTgorCiswMC0xOS1BMSAgIChoZXgpCQlMRyBJTkZPUk1BVElPTiAmIENPTU0uCiswMDE5QTEgICAgIChiYXNlIDE2KQkJTEcgSU5GT1JNQVRJT04gJiBDT01NLgorCQkJCTYwLTM5LEthc2FuLWRvbmcsS3VtY2hvbi1rdQorCQkJCVNlb3VsICAxNTMtMDIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LUEyICAgKGhleCkJCU9SRFlOIFRFQ0hOT0xPR0lFUworMDAxOUEyICAgICAoYmFzZSAxNikJCU9SRFlOIFRFQ0hOT0xPR0lFUworCQkJCU96b25lIE1hbmF5IFRlY2ggUGFyaywgCisJCQkJMm5kIEZsb29yLCBUb3dlciBCLCBCZWd1ciBIb2JsaSwgSG9uZ2FzYW5kcmEsIEhvc3VyIFJvYWQsIAorCQkJCUJhbmdhbG9yZSAgIDU2MCAwNjgKKwkJCQlJTkRJQQorCiswMC0xOS1BMyAgIChoZXgpCQlhc3RlZWwgZWxlY3Ryb25pcXVlIGF0bGFudGlxdWUKKzAwMTlBMyAgICAgKGJhc2UgMTYpCQlhc3RlZWwgZWxlY3Ryb25pcXVlIGF0bGFudGlxdWUKKwkJCQl6YSBkZSBsYSBsYW5kZSBkZSBzYWludCBqZWFuCisJCQkJYnAgOTAxMTEKKwkJCQlzYWludGUgbWFyaWUgZGUgcmVkb24gIDM1NjAwCisJCQkJRlJBTkNFCisKKzAwLTE5LUE0ICAgKGhleCkJCUF1c3RhciBUZWNobm9sb2d5IChoYW5nIHpob3UpIENvLixMdGQKKzAwMTlBNCAgICAgKGJhc2UgMTYpCQlBdXN0YXIgVGVjaG5vbG9neSAoaGFuZyB6aG91KSBDby4sTHRkCisJCQkJNy00MDIsV2VzdCBMYWtlIFNvZnR3YXJlIFBhcnQKKwkJCQlObyAxLEppYWdvbmcgUmQuCisJCQkJSGFuZyBaaG91IFpoZSBKaWFuZyAzMTAwMTIKKwkJCQlDSElOQQorCiswMC0xOS1BNSAgIChoZXgpCQlSYWRhckZpbmQgQ29ycG9yYXRpb24KKzAwMTlBNSAgICAgKGJhc2UgMTYpCQlSYWRhckZpbmQgQ29ycG9yYXRpb24KKwkJCQkyMTAwIEdhdGV3YXkgQ2VudHJlIEJsdmQuLCBTdWl0ZSAxNTAKKwkJCQlNb3JyaXN2aWxsZSBOQyAyNzU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQTYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDE5QTYgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQTcgICAoaGV4KQkJSVRVLVQKKzAwMTlBNyAgICAgKGJhc2UgMTYpCQlJVFUtVAorCQkJCVBsYWNlIGRlcyBOYXRpb25zCisJCQkJR2VuZXZhIDIwICBDSC0xMjExCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTktQTggICAoaGV4KQkJV2lRdWVzdCBDb21tdW5pY2F0aW9ucworMDAxOUE4ICAgICAoYmFzZSAxNikJCVdpUXVlc3QgQ29tbXVuaWNhdGlvbnMKKwkJCQk5MTUgRW50ZXJwcmlzZSBCbHZkLgorCQkJCVN1aXRlIDIwMAorCQkJCUFsbGVuIFRleGFzIDc1MDEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1BOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE5QTkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1BQSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE5QUEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1BQiAgIChoZXgpCQlSYXljb20gQ08gLiwgTFRECiswMDE5QUIgICAgIChiYXNlIDE2KQkJUmF5Y29tIENPIC4sIExURAorCQkJCUEsMy00L0ZMLCBCdWlsZGluZyAxLDI3IENodWFuZ3hpbiBSb2FkLAorCQkJCUNoYW5ncGluZyBTY2llbmNlIFBhcmsKKwkJCQlCZWlqaW5nICAxMDIyMDAKKwkJCQlDSElOQQorCiswMC0xOS1BQyAgIChoZXgpCQlHU1AgU1lTVEVNUyBJbmMuCiswMDE5QUMgICAgIChiYXNlIDE2KQkJR1NQIFNZU1RFTVMgSW5jLgorCQkJCTEzRkwsIDEwMSBEb25nLCBDaHVudWkgVGVjaG5vIFBhcmsgMSwKKwkJCQkyMDAtMSwgQ2h1bnVpLURvbmcsIFdvbm1pLUdVLAorCQkJCUJ1Y2hlb24tQ2l0eSBHeWVvbmdnaS1EbyA0MjAtODU3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LUFEICAgKGhleCkJCUJPQlNUIFNBCiswMDE5QUQgICAgIChiYXNlIDE2KQkJQk9CU1QgU0EKKwkJCQlydGUgZGVzIGZsdW1lYXV4IDUwCisJCQkJQ2FzZSBQb3N0YWxlIDEwMDEgTGF1c2FubmUKKwkJCQlQUklMTFkgVkQgMTAwOAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE5LUFFICAgKGhleCkJCUhvcGxpbmcgVGVjaG5vbG9naWVzIGIudi4KKzAwMTlBRSAgICAgKGJhc2UgMTYpCQlIb3BsaW5nIFRlY2hub2xvZ2llcyBiLnYuCisJCQkJQ2FtZXJhc3RyYWF0IDEwCisJCQkJQWxtZXJlIEZsZXZvbGFuZCAxMzIyIEJDCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTktQUYgICAoaGV4KQkJUmlnb2wgVGVjaG5vbG9naWVzLCBJbmMuCiswMDE5QUYgICAgIChiYXNlIDE2KQkJUmlnb2wgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJTm8uIDE1NiBDYWkgSGUgVmlsbGFnZSwgU2hhIEhlIFRvd24KKwkJCQlDaGFuZyBQaW5nIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAyMjA2CisJCQkJQ0hJTkEKKworMDAtMTktQjAgICAoaGV4KQkJSGFuWWFuZyBTeXN0ZW0KKzAwMTlCMCAgICAgKGJhc2UgMTYpCQlIYW5ZYW5nIFN5c3RlbQorCQkJCTcwMUhvLCBLb2ZvbW8gVGVjaG5vIENlbnRlciBJSSwgMTI4OS01CisJCQkJSnVuZ3dhbmctRG9uZworCQkJCVNoaWh1bmctU2hpIEt5dW5nZ2ktRG8gNDI5LTg1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS1CMSAgIChoZXgpCQlBcnJvdzcgQ29ycG9yYXRpb24KKzAwMTlCMSAgICAgKGJhc2UgMTYpCQlBcnJvdzcgQ29ycG9yYXRpb24KKwkJCQlLYW1pamltYSAzLTI3LTcKKwkJCQlIYW1hbWF0c3UgU2hpenVva2EgNDMzLTgxMjIKKwkJCQlKQVBBTgorCiswMC0xOS1CMiAgIChoZXgpCQlYWW5ldHNvZnQgQ28uLEx0ZAorMDAxOUIyICAgICAoYmFzZSAxNikJCVhZbmV0c29mdCBDby4sTHRkCisJCQkJTk8uMTU4Wmhlbnl1IFN0cmVldCBIaWdoIEluZHVzdHJpZXMgRGV2ZWxvcG1lbnQgYXJlYQorCQkJCUNoYW5nQ2h1biBKaUxpbiAxMzAwMDAKKwkJCQlDSElOQQorCiswMC0xOS1CMyAgIChoZXgpCQlTdGFuZm9yZCBSZXNlYXJjaCBTeXN0ZW1zCiswMDE5QjMgICAgIChiYXNlIDE2KQkJU3RhbmZvcmQgUmVzZWFyY2ggU3lzdGVtcworCQkJCTEyOTAtRCBSZWFtd29vZCBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUI0ICAgKGhleCkJCVZpZGVvQ2FzdCBMdGQuCiswMDE5QjQgICAgIChiYXNlIDE2KQkJVmlkZW9DYXN0IEx0ZC4KKwkJCQlHeWFybWF0IHUuIDk5L0IKKwkJCQlCdWRhcGVzdCAgMTE0NworCQkJCUhVTkdBUlkKKworMDAtMTktQjUgICAoaGV4KQkJRmFtYXIgRnVlZ3VpbmEgUy5BLgorMDAxOUI1ICAgICAoYmFzZSAxNikJCUZhbWFyIEZ1ZWd1aW5hIFMuQS4KKwkJCQlSb2RuZXkgNzAKKwkJCQlCdWVub3MgQWlyZXMgIDE0MjcKKwkJCQlBUkdFTlRJTkEKKworMDAtMTktQjYgICAoaGV4KQkJRXVybyBFbW1lIHMuci5sLgorMDAxOUI2ICAgICAoYmFzZSAxNikJCUV1cm8gRW1tZSBzLnIubC4KKwkJCQlWaWEgQmVsdmVkZXJlLCAyNAorCQkJCUdhbGxpYXRlIExvbWJhcmRvIFZhcmVzZSAyMTAyMAorCQkJCUlUQUxZCisKKzAwLTE5LUI3ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDE5QjcgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTE5LUI4ICAgKGhleCkJCUJvdW5kYXJ5IERldmljZXMKKzAwMTlCOCAgICAgKGJhc2UgMTYpCQlCb3VuZGFyeSBEZXZpY2VzCisJCQkJNzIwMCBXLiBPYWtsYW5kCisJCQkJQ2hhbmRsZXIgQVogODUyMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUI5ICAgKGhleCkJCURlbGwgSW5jLgorMDAxOUI5ICAgICAoYmFzZSAxNikJCURlbGwgSW5jLgorCQkJCU9uZSBEZWxsIFdheQorCQkJCU1TIDg1NDUKKwkJCQlSb3VuZCBSb2NrIFRYIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1CQSAgIChoZXgpCQlQYXJhZG94IFNlY3VyaXR5IFN5c3RlbXMgTHRkCiswMDE5QkEgICAgIChiYXNlIDE2KQkJUGFyYWRveCBTZWN1cml0eSBTeXN0ZW1zIEx0ZAorCQkJCTc4MCBJbmR1c3RyaWFsIEJsdmQKKwkJCQlTdC1FdXN0YWNoZSBRdWViZWMgSjdSIDVWMworCQkJCUNBTkFEQQorCiswMC0xOS1CQiAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMTlCQiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDYwMzA4CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQkMgICAoaGV4KQkJRUxFQ1RSTyBDSEFOQ0UgU1JMCiswMDE5QkMgICAgIChiYXNlIDE2KQkJRUxFQ1RSTyBDSEFOQ0UgU1JMCisJCQkJQ0FSSFVFIDMxNzkKKwkJCQlBVi4gRVZBIFBFUk9OIDcwNDkKKwkJCQlDQVBJVEFMIEZFREVSQUwgQlVFTk9TIEFJUkVTIDE0NDAKKwkJCQlBUkdFTlRJTkEKKworMDAtMTktQkQgICAoaGV4KQkJTmV3IE1lZGlhIExpZmUKKzAwMTlCRCAgICAgKGJhc2UgMTYpCQlOZXcgTWVkaWEgTGlmZQorCQkJCUhlYSBKdSBCaWxkLCA1RiwgODM3LTcsIFllb2tzYW0tZG9uZworCQkJCUthbmduYW0tZ3UgU2VvdWwgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS1CRSAgIChoZXgpCQlBbHRhaSBUZWNobm9sb2dpZXMgTGltaXRlZAorMDAxOUJFICAgICAoYmFzZSAxNikJCUFsdGFpIFRlY2hub2xvZ2llcyBMaW1pdGVkCisJCQkJVW5pdCAxMDNCIGFuZCAxMDUsIDEvRiwgQmxvY2sgOSwKKwkJCQlIb25nIEtvbmcgU2NpZW5jZSBQYXJrCisJCQkJU2hhdGluIE5ldyBUZXJyaXRvcmllcyAKKwkJCQlIT05HIEtPTkcKKworMDAtMTktQkYgICAoaGV4KQkJQ2l0aXdheSB0ZWNobm9sb2d5IENvLixsdGQKKzAwMTlCRiAgICAgKGJhc2UgMTYpCQlDaXRpd2F5IHRlY2hub2xvZ3kgQ28uLGx0ZAorCQkJCU5vLjIgQnVpbGRpbmcsSmlhIDMyLEJlaWhleWFuIEF2ZW51ZSxFYXN0IENpdHkKKwkJCQlQZWlqaW5nICAxMDAwMDYKKwkJCQlDSElOQQorCiswMC0xOS1DMCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMTlDMCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2MDAgTi4gSHd5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1DMSAgIChoZXgpCQlBbHBzIEVsZWN0cmljIENvLiwgTHRkCiswMDE5QzEgICAgIChiYXNlIDE2KQkJQWxwcyBFbGVjdHJpYyBDby4sIEx0ZAorCQkJCTEtMi0xLCBPa2lub3VjaGksCisJCQkJU29tYS1jaXR5IEZ1a3VzaGltYS1wcmVmLiA5NzYtODUwMQorCQkJCUpBUEFOCisKKzAwLTE5LUMyICAgKGhleCkJCUVxdXVzdGVrIFNvbHV0aW9ucywgSW5jLgorMDAxOUMyICAgICAoYmFzZSAxNikJCUVxdXVzdGVrIFNvbHV0aW9ucywgSW5jLgorCQkJCSMyODYgLSA1NDg5IEJ5cm5lIFJvYWQsCisJCQkJQnVybmFieSBCQyBWNUogM0oxCisJCQkJQ0FOQURBCisKKzAwLTE5LUMzICAgKGhleCkJCVF1YWxpdHJvbAorMDAxOUMzICAgICAoYmFzZSAxNikJCVF1YWxpdHJvbAorCQkJCVdpbGRmbG93ZXIgV2F5CisJCQkJQXBvbGxvIFJvYWQKKwkJCQlCZWxmYXN0IENvLiBBbnRyaW0gQlQxMiA2VEEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOS1DNCAgIChoZXgpCQlJbmZvY3J5cHQgSW5jLgorMDAxOUM0ICAgICAoYmFzZSAxNikJCUluZm9jcnlwdCBJbmMuCisJCQkJNzExLCBCWVVDS1NBTiBESUdJVEFMIFZBTExFWSAxIDIxMi0xNiwKKwkJCQlHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktQzUgICAoaGV4KQkJU09OWSBDb21wdXRlciBFbnRlcnRhaW5tZW50IGluYywKKzAwMTlDNSAgICAgKGJhc2UgMTYpCQlTT05ZIENvbXB1dGVyIEVudGVydGFpbm1lbnQgaW5jLAorCQkJCTYtMjEsMkNob21lCisJCQkJTWluYW1pLUFveWFtYQorCQkJCU1pbmF0by1rdSBUb2t5byAxMDctMDA2MgorCQkJCUpBUEFOCisKKzAwLTE5LUM2ICAgKGhleCkJCVpURSBDb3Jwb3JhdGlvbgorMDAxOUM2ICAgICAoYmFzZSAxNikJCVpURSBDb3Jwb3JhdGlvbgorCQkJCVRlY2hub2xvZ3kgTWFuYWdlbWVudCBEZXBhcnRtZW50LCAKKwkJCQkxMi9GLiwgWlRFIFImRCBCdWlsZGluZywgS2VqaW5hbiBSb2FkCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTE5LUM3ICAgKGhleCkJCUNhbWJyaWRnZSBJbmR1c3RyaWVzKEdyb3VwKSBDby4sTHRkLgorMDAxOUM3ICAgICAoYmFzZSAxNikJCUNhbWJyaWRnZSBJbmR1c3RyaWVzKEdyb3VwKSBDby4sTHRkLgorCQkJCVJvb20gMzA5LDMzMyBIb25nIFFpYW8gUm9hZAorCQkJCVNoYW5naGFpICAyMDAwMzAKKwkJCQlDSElOQQorCiswMC0xOS1DOCAgIChoZXgpCQlBbnlEQVRBIENvcnBvcmF0aW9uCiswMDE5QzggICAgIChiYXNlIDE2KQkJQW55REFUQSBDb3Jwb3JhdGlvbgorCQkJCTE4OTAyIEJhcmRlZW4gQXZlLgorCQkJCUlydmluZSBDQSA5MTYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQzkgICAoaGV4KQkJUyZDIEVMRUNUUklDIENPTVBBTlkKKzAwMTlDOSAgICAgKGJhc2UgMTYpCQlTJkMgRUxFQ1RSSUMgQ09NUEFOWQorCQkJCTExMzUgQVRMQU5USUMgQVZFCisJCQkJQUxBTUVEQSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQ0EgICAoaGV4KQkJQnJvYWRhdGEgQ29tbXVuaWNhdGlvbnMsIEluYworMDAxOUNBICAgICAoYmFzZSAxNikJCUJyb2FkYXRhIENvbW11bmljYXRpb25zLCBJbmMKKwkJCQkyNTQ1IFcgMjM3dGggU3QgU3RlIEsKKwkJCQlUb3JyYW5jZSBDYSA5MDUwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQ0IgICAoaGV4KQkJWnlYRUwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzAwMTlDQiAgICAgKGJhc2UgMTYpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorCQkJCU5vLiA2LCBJbm5vdmF0aW9uIFJvYWQgSUkKKwkJCQlIc2luY2h1IFNjaWVuY2UgUGFyaywgSHNpbmNodSAzMDAKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LUNDICAgKGhleCkJCVJDRyAoSEspIEx0ZAorMDAxOUNDICAgICAoYmFzZSAxNikJCVJDRyAoSEspIEx0ZAorCQkJCTkvRi4sIENvcmUgQywgQ3liZXJwb3J0IDMKKwkJCQkxMDAgQ3liZXJwb3J0IFJkCisJCQkJSE9ORyBLT05HCisKKzAwLTE5LUNEICAgKGhleCkJCUNoZW5nZHUgZXRoZXJjb20gaW5mb3JtYXRpb24gdGVjaG5vbG9neSBMdGQuCiswMDE5Q0QgICAgIChiYXNlIDE2KQkJQ2hlbmdkdSBldGhlcmNvbSBpbmZvcm1hdGlvbiB0ZWNobm9sb2d5IEx0ZC4KKwkJCQlTb3V0aCBFeHRlbnNpb24gb2YgVGlhbmZ1IFdpZGUgUm9hZCBOby43IGRlcGFydG1lbnQgcm9vbSAyMDEKKwkJCQlDaGVuZ2R1IFNpY2h1YW4gNjEwMDQxCisJCQkJQ0hJTkEKKworMDAtMTktQ0UgICAoaGV4KQkJUHJvZ3Jlc3NpdmUgR2FtaW5nIEludGVybmF0aW9uYWwKKzAwMTlDRSAgICAgKGJhc2UgMTYpCQlQcm9ncmVzc2l2ZSBHYW1pbmcgSW50ZXJuYXRpb25hbAorCQkJCTkyMCBQaWxvdCBSb2FkCisJCQkJTGFzIFZlZ2FzIE5WIDg5MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1DRiAgIChoZXgpCQlTQUxJQ1JVLCBTLkEuCiswMDE5Q0YgICAgIChiYXNlIDE2KQkJU0FMSUNSVSwgUy5BLgorCQkJCUF2LiBTZXJyYSAsIDEwMAorCQkJCVN0YS5NYS5QYWxhdXRvcmRlcmEgQmFyY2Vsb25hIDA4NDYwCisJCQkJU1BBSU4KKworMDAtMTktRDAgICAoaGV4KQkJQ2F0aGV4aXMKKzAwMTlEMCAgICAgKGJhc2UgMTYpCQlDYXRoZXhpcworCQkJCVBPIEJveCAxMDkxCisJCQkJVW1obGFuZ2EgUm9ja3MKKwkJCQlEdXJiYW4gS3dhWnVsdSBOYXRhbCA0MzIwCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTE5LUQxICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDE5RDEgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE5LUQyICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDE5RDIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE5LUQzICAgKGhleCkJCVRSQUsgTWljcm93YXZlCiswMDE5RDMgICAgIChiYXNlIDE2KQkJVFJBSyBNaWNyb3dhdmUKKwkJCQk0NzI2IEVpc2VuaG93ZXIgQmx2ZAorCQkJCVRhbXBhIEZMIDMzNjM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1ENCAgIChoZXgpCQlJQ1ggVGVjaG5vbG9naWVzCiswMDE5RDQgICAgIChiYXNlIDE2KQkJSUNYIFRlY2hub2xvZ2llcworCQkJCTM0NDAgRnJhbmNpcy1IdWdoZXMKKwkJCQlTdWl0ZSAxMjAKKwkJCQlMYXZhbCBRdWViZWMgSDdMIDVBOQorCQkJCUNBTkFEQQorCiswMC0xOS1ENSAgIChoZXgpCQlJUCBJbm5vdmF0aW9ucywgSW5jLgorMDAxOUQ1ICAgICAoYmFzZSAxNikJCUlQIElubm92YXRpb25zLCBJbmMuCisJCQkJMTUxNyAxNDZ0aCBBdmUKKwkJCQlEb3JyIE1JIDQ5MzIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1ENiAgIChoZXgpCQlMUyBDYWJsZSBMdGQuCiswMDE5RDYgICAgIChiYXNlIDE2KQkJTFMgQ2FibGUgTHRkLgorCQkJCTEyRiBMUyBUb3dlciwgMTAyNi02LCBIb2dleS1kb25nCisJCQkJQW55YW5nLXNpIEd5ZW9uZ2dpLWRvIDQzMS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktRDcgICAoaGV4KQkJRk9SVFVORVRFSyBDTy4sIExURAorMDAxOUQ3ICAgICAoYmFzZSAxNikJCUZPUlRVTkVURUsgQ08uLCBMVEQKKwkJCQkxMkYsIE5vLiA3NSwgU2VjIDEsIENob25ncWluZyBTLiBSZC4sCisJCQkJWmhvbmd6aGVuZyBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS1EOCAgIChoZXgpCQlNQVhGT1IKKzAwMTlEOCAgICAgKGJhc2UgMTYpCQlNQVhGT1IKKwkJCQkjRSA4MDksIEJ1bmRhbmcsIFRlY2huby1QYXJrCisJCQkJWWF0YXAtRG9uZywgQnVuZ2RhbmctR3UKKwkJCQlTZW9uZ25hbS1DaXR5IEd5ZW9uZ2dpLURvIDQ2My03NjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktRDkgICAoaGV4KQkJWmV1dHNjaGVsIEdtYkgKKzAwMTlEOSAgICAgKGJhc2UgMTYpCQlaZXV0c2NoZWwgR21iSAorCQkJCUhlZXJ3ZWcgMgorCQkJCVR1YmluZ2VuLUhpcnNjaGF1IEJXIEQtNzIwNzAKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LURBICAgKGhleCkJCVdlbGx0cmFucyBPJkUgVGVjaG5vbG9neSBDby4gLCBMdGQuCiswMDE5REEgICAgIChiYXNlIDE2KQkJV2VsbHRyYW5zIE8mRSBUZWNobm9sb2d5IENvLiAsIEx0ZC4KKwkJCQl0aGUgM3JkIEZsb29yLCBidWlsZGluZyBDLUQsIEhpLXRlY2ggRGlnaXRhbCBIYXJib3IsIEd1YW5kb25nIEluZHVzdHJpYWwgUGFyaworCQkJCVd1aGFuIEh1YmVpIDQzMDA3NAorCQkJCUNISU5BCisKKzAwLTE5LURCICAgKGhleCkJCU1JQ1JPLVNUQVIgSU5URVJOQVRJT05BTCBDTy4sIExURC4KKzAwMTlEQiAgICAgKGJhc2UgMTYpCQlNSUNSTy1TVEFSIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCisJCQkJTk8uIDY5LCBMSS1ERSBTVC4sIEpVTkctSEUgQ0lUWQorCQkJCVRBSVBFSSBIU0lFTiAgMjM1CisJCQkJVFVWQUxVCisKKzAwLTE5LURDICAgKGhleCkJCUVORU5TWVMgVGVjaG5vbG9naWVzCiswMDE5REMgICAgIChiYXNlIDE2KQkJRU5FTlNZUyBUZWNobm9sb2dpZXMKKwkJCQlMZSBHZXJtYW5pdW0KKwkJCQk4MCBBdmVudWUgZGVzIGJ1dHRlcyBkZSBDb2VzbWVzCisJCQkJUkVOTkVTIEJyaXR0YW55IDM1NzAwCisJCQkJRlJBTkNFCisKKzAwLTE5LUREICAgKGhleCkJCUZFSS1aeWZlciwgSW5jLgorMDAxOUREICAgICAoYmFzZSAxNikJCUZFSS1aeWZlciwgSW5jLgorCQkJCTE1MTUgUy4gTWFuY2hlc3RlcgorCQkJCUFuYWhlaW0gQ0EgOTI4MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LURFICAgKGhleCkJCU1PQklURUsKKzAwMTlERSAgICAgKGJhc2UgMTYpCQlNT0JJVEVLCisJCQkJNUYsTm8uNjAsTGFuZSAzMjEsWWFuZy1Ld2FuZyBTdHJlZXQKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktREYgICAoaGV4KQkJVGhvbXNvbiBJbmMuCiswMDE5REYgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBJbmMuCisJCQkJMTAxIFdlc3QgMTAzcmQgU3RyZWV0CisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjkwLTExMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUUwICAgKGhleCkJCVRQLUxJTksgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAxOUUwICAgICAoYmFzZSAxNikJCVRQLUxJTksgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCVNvdXRoIEJ1aWxkaW5nLCBOby41IEtleXVhbiBSb2FkCisJCQkJQ2VudHJhbCBab25lLCBTY2llbmNlICYgVGVjaG5vbG9neSBQYXJrCisJCQkJTmFuc2hhbiBTaGVuemhlbiA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xOS1FMSAgIChoZXgpCQlOb3J0ZWwKKzAwMTlFMSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTktRTIgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworMDAxOUUyICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4uIE1hdGhpbGRhIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUUzICAgKGhleCkJCUFwcGxlIENvbXB1dGVyIEluYy4KKzAwMTlFMyAgICAgKGJhc2UgMTYpCQlBcHBsZSBDb21wdXRlciBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENhbGlmb3JuaWEgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUU0ICAgKGhleCkJCTJXaXJlLCBJbmMKKzAwMTlFNCAgICAgKGJhc2UgMTYpCQkyV2lyZSwgSW5jCisJCQkJMTcwNCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRTUgICAoaGV4KQkJTHlueCBTdHVkaW8gVGVjaG5vbG9neSwgSW5jLgorMDAxOUU1ICAgICAoYmFzZSAxNikJCUx5bnggU3R1ZGlvIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxNTQwIEJhcnRvbiBSZCAjIDI2OAorCQkJCVJlZGxhbmRzIENBIDkyMzczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1FNiAgIChoZXgpCQlUT1lPIE1FRElDIENPLixMVEQuCiswMDE5RTYgICAgIChiYXNlIDE2KQkJVE9ZTyBNRURJQyBDTy4sTFRELgorCQkJCTEtMTctMjIgS2l0YWhvcmllLCBOaXNoaS1rdQorCQkJCU9zYWthICA1NTAtMDAxNAorCQkJCUpBUEFOCisKKzAwLTE5LUU3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTlFNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUU4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTlFOCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUU5ICAgKGhleCkJCVMtSW5mb3JtYXRpb24gVGVjaG5vbGd5LCBDby4sIEx0ZC4KKzAwMTlFOSAgICAgKGJhc2UgMTYpCQlTLUluZm9ybWF0aW9uIFRlY2hub2xneSwgQ28uLCBMdGQuCisJCQkJU3VuZ3dvbyBCbGRnLCA3MTctMyBTdXNlby1kb25nLAorCQkJCUdhbmduYW0tZ3UsCisJCQkJU2VvdWwgIDEzNS04ODQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktRUEgICAoaGV4KQkJVGVyYU1hZ2UgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAxOUVBICAgICAoYmFzZSAxNikJCVRlcmFNYWdlIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlHb2xkZW4gTGFuZCBCdWlsZGluZyBTdWl0ZSA5MDcKKwkJCQkzMiBMaWFuZyBNYSBCcmlkZ2UgUm9hZAorCQkJCUJlaWppbmcgIDEwMDAxNgorCQkJCUNISU5BCisKKzAwLTE5LUVCICAgKGhleCkJCVB5cm9uaXggTHRkCiswMDE5RUIgICAgIChiYXNlIDE2KQkJUHlyb25peCBMdGQKKwkJCQlCcmFpdGh3ZWxsIFdheQorCQkJCUhlbGxhYnkKKwkJCQlSb3RoZXJoYW0gU291dGggWW9ya3NoaXJlIFM2NiA4UVkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOS1FQyAgIChoZXgpCQlTYWdhbW9yZSBTeXN0ZW1zLCBJbmMuCiswMDE5RUMgICAgIChiYXNlIDE2KQkJU2FnYW1vcmUgU3lzdGVtcywgSW5jLgorCQkJCTU1IE1pZGRsZXNleCBTdHJlZXQKKwkJCQlTdWl0ZSAyMTcKKwkJCQlOb3J0aCBDaGVsbXNmb3JkIE1BIDAxODYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1FRCAgIChoZXgpCQlBeGVzc3RlbCBJbmMuCiswMDE5RUQgICAgIChiYXNlIDE2KQkJQXhlc3N0ZWwgSW5jLgorCQkJCTY4MTUgRmxhbmRlcnMgU3IuCisJCQkJU3RlIDIxMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRUUgICAoaGV4KQkJQ0FSTE8gR0FWQVpaSSBDT05UUk9MUyBTUEEtQ29udHJvbHMgRGl2aXNpb24KKzAwMTlFRSAgICAgKGJhc2UgMTYpCQlDQVJMTyBHQVZBWlpJIENPTlRST0xTIFNQQS1Db250cm9scyBEaXZpc2lvbgorCQkJCVZpYSBTYWZmb3J6ZSA4CisJCQkJQkVMTFVOTyBCTCBJLTMyMTAwCisJCQkJSVRBTFkKKworMDAtMTktRUYgICAoaGV4KQkJU0hFTlpIRU4gTElOTktJTkcgRUxFQ1RST05JQ1MgQ08uLExURAorMDAxOUVGICAgICAoYmFzZSAxNikJCVNIRU5aSEVOIExJTk5LSU5HIEVMRUNUUk9OSUNTIENPLixMVEQKKwkJCQlSb29tIDkwMSxCIEJsb2NrLFFpbmdodWEgSW5mb3JtYXRpb24gQ2VudGVyIEhpLXRlYyBwYXJrIE5vcnRoIERpc3RyaWN0LE5hbnNoYW4gRGlzdHJpY3QsU2hlbnpoZW4KKwkJCQlzaGVuemhlbiBndWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMTktRjAgICAoaGV4KQkJVU5JT05NQU4gVEVDSE5PTE9HWSBDTy4sTFRECiswMDE5RjAgICAgIChiYXNlIDE2KQkJVU5JT05NQU4gVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJMThGLCBIVUFZQU5HIFRPV0VSLFlBTkRBWUkgUk9BRAorCQkJCUhVSVpIT1UgR1VBTkdET05HIDUxNjAwNworCQkJCUNISU5BCisKKzAwLTE5LUYxICAgKGhleCkJCVN0YXIgQ29tbXVuaWNhdGlvbiBOZXR3b3JrIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAxOUYxICAgICAoYmFzZSAxNikJCVN0YXIgQ29tbXVuaWNhdGlvbiBOZXR3b3JrIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTEwL0YsVG93ZXIgQixTT0hPIE5ldyBUb3duLE5vLjg4IGppYW5ndW9Sb2FkLENoYW95YW5nIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDIyCisJCQkJQ0hJTkEKKworMDAtMTktRjIgICAoaGV4KQkJVGVyYWR5bmUgSy5LLgorMDAxOUYyICAgICAoYmFzZSAxNikJCVRlcmFkeW5lIEsuSy4KKwkJCQkyNzItMTMsIEhlaXNlaSwgVGFrYW9ubworCQkJCU96dS1tYWNoaQorCQkJCUtpa3VjaGktZ3VuIEt1bWFtb3RvIDg2OS0xMjMyCisJCQkJSkFQQU4KKworMDAtMTktRjMgICAoaGV4KQkJQ2V0aXMsIEluYworMDAxOUYzICAgICAoYmFzZSAxNikJCUNldGlzLCBJbmMKKwkJCQk1MDI1IEdhbGxleSBSZAorCQkJCUNvbG9yYWRvIFNwcmluZ3MgQ08gODA5MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUY0ICAgKGhleCkJCUNvbnZlcmdlbnMgT3kgTHRkCiswMDE5RjQgICAgIChiYXNlIDE2KQkJQ29udmVyZ2VucyBPeSBMdGQKKwkJCQlXZXN0ZW5kaW50aWUgOTkgQgorCQkJCUVzcG9vIFV1c2ltYWEgRklOLTAyMTYwCisJCQkJRklOTEFORAorCiswMC0xOS1GNSAgIChoZXgpCQlJbWFnaW5hdGlvbiBUZWNobm9sb2dpZXMgTHRkCiswMDE5RjUgICAgIChiYXNlIDE2KQkJSW1hZ2luYXRpb24gVGVjaG5vbG9naWVzIEx0ZAorCQkJCVp1cmljaCBIb3VzZQorCQkJCUNhbmFsIFdoYXJmCisJCQkJTGVlZHMgV2VzdCBZb3Jrc2hpcmUgTFMxMSA1REIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOS1GNiAgIChoZXgpCQlBY2NvbmV0IChQVEUpIEx0ZAorMDAxOUY2ICAgICAoYmFzZSAxNikJCUFjY29uZXQgKFBURSkgTHRkCisJCQkJTm8uIDE2IEF5ZXIgUmFqYWggQ3Jlc2NlbnQKKwkJCQkjIDAzLTAzCisJCQkJU2luZ2Fwb3JlICAxMzk5NjUKKwkJCQlTSU5HQVBPUkUKKworMDAtMTktRjcgICAoaGV4KQkJT25zZXQgQ29tcHV0ZXIgQ29ycG9yYXRpb24KKzAwMTlGNyAgICAgKGJhc2UgMTYpCQlPbnNldCBDb21wdXRlciBDb3Jwb3JhdGlvbgorCQkJCVAuTy4gQm94IDM0NTAKKwkJCQlQb2Nhc3NldCBNQSAwMjU1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRjggICAoaGV4KQkJRW1iZWRkZWQgU3lzdGVtcyBEZXNpZ24sIEluYy4KKzAwMTlGOCAgICAgKGJhc2UgMTYpCQlFbWJlZGRlZCBTeXN0ZW1zIERlc2lnbiwgSW5jLgorCQkJCTY4MTAgRGVlcnBhdGggUm9hZAorCQkJCVN1aXRlIDMwMAorCQkJCUVsa3JpZGdlIE1EIDIxMDc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1GOSAgIChoZXgpCQlUREstTGFtYmRhCiswMDE5RjkgICAgIChiYXNlIDE2KQkJVERLLUxhbWJkYQorCQkJCTQwNSBFc3NleCBSb2FkCisJCQkJTmVwdHVuZSBOSiAwNzc1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRkEgICAoaGV4KQkJQ2FibGUgVmlzaW9uIEVsZWN0cm9uaWNzIENPLiwgTFRELgorMDAxOUZBICAgICAoYmFzZSAxNikJCUNhYmxlIFZpc2lvbiBFbGVjdHJvbmljcyBDTy4sIExURC4KKwkJCQkxMkYtMywgTm8uMTYsIENoaWVuIFBhIFJkLgorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktRkIgICAoaGV4KQkJQlNreUIgTHRkCiswMDE5RkIgICAgIChiYXNlIDE2KQkJQlNreUIgTHRkCisJCQkJMTY5IEtJTkdTIFJPQUQKKwkJCQlCUkVOVFdPT0QgRVNTRVggQ00xNCA0RUYKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOS1GQyAgIChoZXgpCQlQVC4gVWZvYWtzZXMgU3Vrc2VzIEx1YXJiaWFzYQorMDAxOUZDICAgICAoYmFzZSAxNikJCVBULiBVZm9ha3NlcyBTdWtzZXMgTHVhcmJpYXNhCisJCQkJSmwuIFN1bHRhbiBIYXNhbnVkaW4gTm8uIDQxCisJCQkJS2ViYXlvcmFuIEJhcnUKKwkJCQlKYWthcnRhIFNlbGF0YW4gREtJIEpha2FydGEgMTIxNjAKKwkJCQlJTkRPTkVTSUEKKworMDAtMTktRkQgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDE5RkQgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMTktRkUgICAoaGV4KQkJU0hFTlpIRU4gU0VFQ09NTSBURUNITk9MT0dZIENPLixMVEQuCiswMDE5RkUgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gU0VFQ09NTSBURUNITk9MT0dZIENPLixMVEQuCisJCQkJUm9vbSA2MDksNDA0WWFubmFuIFJvYWQKKwkJCQlTaGVuWmhlbiBHdWFuZ2RvbmcgNTE4MDMxCisJCQkJQ0hJTkEKKworMDAtMTktRkYgICAoaGV4KQkJRmlubnp5bWVzCiswMDE5RkYgICAgIChiYXNlIDE2KQkJRmlubnp5bWVzCisJCQkJODAwIFdlc3QgQ3VtbWluZ3MgUGFyaworCQkJCVN1aXRlIDU1NTAKKwkJCQlXb2J1cm4gTUEgMDE4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTAwICAgKGhleCkJCU1BVFJJWCBJTkMuCiswMDFBMDAgICAgIChiYXNlIDE2KQkJTUFUUklYIElOQy4KKwkJCQlBUyBibGQuMy0xMy0yMAorCQkJCU5pc2hpLVRlbW1hIEtpdGEtS3UKKwkJCQlPc2FrYSAgNTMwLTAwNDcKKwkJCQlKQVBBTgorCiswMC0xQS0wMSAgIChoZXgpCQlTbWl0aHMgTWVkaWNhbAorMDAxQTAxICAgICAoYmFzZSAxNikJCVNtaXRocyBNZWRpY2FsCisJCQkJNDM1MCBSaXZlcmdyZWVuIFBhcmt3YXkKKwkJCQlTdWl0ZSAyMDAKKwkJCQlEdWx1dGggR0EgMzAwOTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTAyICAgKGhleCkJCVNFQ1VSRSBDQVJFIFBST0RVQ1RTLCBJTkMKKzAwMUEwMiAgICAgKGJhc2UgMTYpCQlTRUNVUkUgQ0FSRSBQUk9EVUNUUywgSU5DCisJCQkJMzkgQ0hFTkVMTCBEUklWRQorCQkJCUNPTkNPUkQgTkggMDMzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTAzICAgKGhleCkJCUFuZ2VsIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxQTAzICAgICAoYmFzZSAxNikJCUFuZ2VsIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTE3LCBMYW5lIDEzNCwgU2hvdSBTaGFuIFJvYWQsIFRhaSBTaGFuLAorCQkJCVRhaXBlaSAgMjQzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS0wNCAgIChoZXgpCQlJbnRlcmF5IFNvbHV0aW9ucyBCVgorMDAxQTA0ICAgICAoYmFzZSAxNikJCUludGVyYXkgU29sdXRpb25zIEJWCisJCQkJTXIuIFcuTS4gT3BwZWRpamsgdmFuIFZlZW53ZWcgOAorCQkJCUJVUkdVTSBGcmllc2xhbmQgOTI1MSBHQQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTFBLTA1ICAgKGhleCkJCU9QVElCQVNFIExURAorMDAxQTA1ICAgICAoYmFzZSAxNikJCU9QVElCQVNFIExURAorCQkJCTcgU2hhbmthciBTdC4KKwkJCQlIZXJ6bGl5YSBJU1JBRUwgNDYxMjAKKwkJCQlJU1JBRUwKKworMDAtMUEtMDYgICAoaGV4KQkJT3BWaXN0YSwgSW5jLgorMDAxQTA2ICAgICAoYmFzZSAxNikJCU9wVmlzdGEsIEluYy4KKwkJCQk4NzAgTm9ydGggTWNDYXJ0aHkgQmx2ZC4KKwkJCQlNaWxwaXRhcyBDYWxpZm9ybmlhIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0wNyAgIChoZXgpCQlBcmVjb250IFZpc2lvbgorMDAxQTA3ICAgICAoYmFzZSAxNikJCUFyZWNvbnQgVmlzaW9uCisJCQkJMjQwMCBOLiBMaW5jb2xuIEF2ZQorCQkJCUFsdGFkZW5hIENBIDkxMDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0wOCAgIChoZXgpCQlEYWxtYW4gVGVjaG5pY2FsIFNlcnZpY2VzCiswMDFBMDggICAgIChiYXNlIDE2KQkJRGFsbWFuIFRlY2huaWNhbCBTZXJ2aWNlcworCQkJCTM2IER1a2UgQ2xvc2UKKwkJCQlXZXN0IFdheQorCQkJCUFuZG92ZXIgSGFtcHNoaXJlIFNQMTAgNUFQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUEtMDkgICAoaGV4KQkJV2F5ZmFyZXIgVHJhbnNpdCBTeXN0ZW1zIEx0ZAorMDAxQTA5ICAgICAoYmFzZSAxNikJCVdheWZhcmVyIFRyYW5zaXQgU3lzdGVtcyBMdGQKKwkJCQkxMCBXaWxsaXMgV2F5CisJCQkJRmxlZXRzIEluc2R1c3RyaWFsIEVzdAorCQkJCVBvb2xlIERvcnNldCBCSDE1IDNTUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFBLTBBICAgKGhleCkJCUFkYXB0aXZlIE1pY3JvLVdhcmUgSW5jLgorMDAxQTBBICAgICAoYmFzZSAxNikJCUFkYXB0aXZlIE1pY3JvLVdhcmUgSW5jLgorCQkJCTY5MTcgSW5ub3ZhdGlvbiBCbHZkCisJCQkJRm9ydCBXYXluZSBJTiA0NjgxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMEIgICAoaGV4KQkJQk9OQSBURUNITk9MT0dZIElOQy4KKzAwMUEwQiAgICAgKGJhc2UgMTYpCQlCT05BIFRFQ0hOT0xPR1kgSU5DLgorCQkJCTRGLCBFLVBsYWNlIEJsZGcuLCA3MTktMjQKKwkJCQlZZW9rc2FtLURvbmcsIEdhbmduYW0tR3UsCisJCQkJU2VvdWwgIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtMEMgICAoaGV4KQkJU3dlLURpc2ggU2F0ZWxsaXRlIFN5c3RlbXMgQUIKKzAwMUEwQyAgICAgKGJhc2UgMTYpCQlTd2UtRGlzaCBTYXRlbGxpdGUgU3lzdGVtcyBBQgorCQkJCVRvcmdnYXRhbiAxNQorCQkJCVNvbG5hIFN0b2NraG9sbSBTRS0xNzEgMDYKKwkJCQlTV0VERU4KKworMDAtMUEtMEQgICAoaGV4KQkJSGFuZEhlbGQgZW50ZXJ0YWlubWVudCwgSW5jLgorMDAxQTBEICAgICAoYmFzZSAxNikJCUhhbmRIZWxkIGVudGVydGFpbm1lbnQsIEluYy4KKwkJCQk1MzkgQnJ5YW50IFN0cmVldCwgU3VpdGUgNDAzCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMEUgICAoaGV4KQkJQ2hlbmcgVWVpIFByZWNpc2lvbiBJbmR1c3RyeSBDby4sTHRkCiswMDFBMEUgICAgIChiYXNlIDE2KQkJQ2hlbmcgVWVpIFByZWNpc2lvbiBJbmR1c3RyeSBDby4sTHRkCisJCQkJSnVuZGEgSW5kdXN0cnkgRGlzdHJpY3QsIERvbmdrZW5nIFRvd24sRG9uZ2d1YW4gQ2l0eQorCQkJCURvbmdHdWFuIEd1YW5nIERvbmcgNTIzNDU1CisJCQkJQ0hJTkEKKworMDAtMUEtMEYgICAoaGV4KQkJU2lzdGVtYXMgQXZhbnphZG9zIGRlIENvbnRyb2wsIFMuQS4KKzAwMUEwRiAgICAgKGJhc2UgMTYpCQlTaXN0ZW1hcyBBdmFuemFkb3MgZGUgQ29udHJvbCwgUy5BLgorCQkJCWNhbGxlIENvbHF1aWRlIDYKKwkJCQlMYXMgUm96YXMgTWFkcmlkIDI4MjMwCisJCQkJU1BBSU4KKworMDAtMUEtMTAgICAoaGV4KQkJTFVDRU5UIFRSQU5TIEVMRUNUUk9OSUNTIENPLixMVEQKKzAwMUExMCAgICAgKGJhc2UgMTYpCQlMVUNFTlQgVFJBTlMgRUxFQ1RST05JQ1MgQ08uLExURAorCQkJCTlGLTEsTm8uMTYsQ2hpZW4gUGFoIFJkLgorCQkJCUNodW5nIEhvIFRhaXBlaSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTExICAgKGhleCkJCUdvb2dsZSBJbmMuCiswMDFBMTEgICAgIChiYXNlIDE2KQkJR29vZ2xlIEluYy4KKwkJCQkxNjAwIEFtcGhpdGhlYXRlciBQYXJrd2F5CisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMTIgICAoaGV4KQkJRXNzaWxvcgorMDAxQTEyICAgICAoYmFzZSAxNikJCUVzc2lsb3IKKwkJCQk2NCBCaXMgQXZlbnVlIEF1YmVydAorCQkJCTk0MzAwIFZpbmNlbm5lcyAKKwkJCQlGUkFOQ0UKKworMDAtMUEtMTMgICAoaGV4KQkJV2FubGlkYSBHcm91cCBDby4sIExURAorMDAxQTEzICAgICAoYmFzZSAxNikJCVdhbmxpZGEgR3JvdXAgQ28uLCBMVEQKKwkJCQlKaWFoZSBSb2FkIE5vLjYxOAorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA2CisJCQkJQ0hJTkEKKworMDAtMUEtMTQgICAoaGV4KQkJWGluIEh1YSBDb250cm9sIEVuZ2luZWVyaW5nIENvLixMdGQuCiswMDFBMTQgICAgIChiYXNlIDE2KQkJWGluIEh1YSBDb250cm9sIEVuZ2luZWVyaW5nIENvLixMdGQuCisJCQkJMTYwIFdlbmppbmcgUmQuLCBNaW5oYW5nCisJCQkJU2hhbmdoYWkgIDIwMDAyNDUKKwkJCQlDSElOQQorCiswMC0xQS0xNSAgIChoZXgpCQlnZW1hbHRvIGUtUGF5bWVudAorMDAxQTE1ICAgICAoYmFzZSAxNikJCWdlbWFsdG8gZS1QYXltZW50CisJCQkJNiBydWUgZGUgbGEgVmVycmVyaWUKKwkJCQlNZXVkb24gIDkyMTk3CisJCQkJRlJBTkNFCisKKzAwLTFBLTE2ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFBMTYgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTFBLTE3ICAgKGhleCkJCVRlYWsgVGVjaG5vbG9naWVzLCBJbmMuCiswMDFBMTcgICAgIChiYXNlIDE2KQkJVGVhayBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyOTAxIFRhc21hbiBEci4sIFN0ZS4gIzIxMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0xOCAgIChoZXgpCQlBZHZhbmNlZCBTaW11bGF0aW9uIFRlY2hub2xvZ3kgaW5jLgorMDAxQTE4ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIFNpbXVsYXRpb24gVGVjaG5vbG9neSBpbmMuCisJCQkJNTAwQSBIdW50bWFyIFBhcmsgRHJpdmUKKwkJCQlIZXJuZG9uIFZBIDIwMTcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0xOSAgIChoZXgpCQlDb21wdXRlciBFbmdpbmVlcmluZyBMaW1pdGVkCiswMDFBMTkgICAgIChiYXNlIDE2KQkJQ29tcHV0ZXIgRW5naW5lZXJpbmcgTGltaXRlZAorCQkJCVBPIEJveCAyNi0yNQorCQkJCUVwc29tCisJCQkJQXVja2xhbmQgQUsgMTM0NAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTFBLTFBICAgKGhleCkJCUdlbnRleCBDb3Jwb3JhdGlvbi9FbGVjdHJvLUFjb3VzdGljIFByb2R1Y3RzCiswMDFBMUEgICAgIChiYXNlIDE2KQkJR2VudGV4IENvcnBvcmF0aW9uL0VsZWN0cm8tQWNvdXN0aWMgUHJvZHVjdHMKKwkJCQkyNDU2IEJyb3duIEF2ZW51ZQorCQkJCU1hbmNoZXN0ZXIgTkggMDMxMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTFCICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxQTFCICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTYwMCBOLiBId3kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTFDICAgKGhleCkJCUdUJlQgRW5naW5lZXJpbmcgUHRlIEx0ZAorMDAxQTFDICAgICAoYmFzZSAxNikJCUdUJlQgRW5naW5lZXJpbmcgUHRlIEx0ZAorCQkJCTIgQW5nIE1vIEtpbyBTdC42NCwgRWNvbiBCdWlsZGluZywgIzA0LTAwCisJCQkJU2luZ2Fwb3JlIDU2OTA4NAorCQkJCVNJTkdBUE9SRQorCiswMC0xQS0xRCAgIChoZXgpCQlQQ2hvbWUgT25saW5lIEluYy4KKzAwMUExRCAgICAgKGJhc2UgMTYpCQlQQ2hvbWUgT25saW5lIEluYy4KKwkJCQkxMUYsIDEwNSwgU2VjLiAyLCBUdW4tSHdhIFMuIFJkLgorCQkJCVRhaXBlaSAxMDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTFFICAgKGhleCkJCUFydWJhIE5ldHdvcmtzCiswMDFBMUUgICAgIChiYXNlIDE2KQkJQXJ1YmEgTmV0d29ya3MKKwkJCQkxMzIyIENyb3NzbWFuIEF2CisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0xRiAgIChoZXgpCQlDb2FzdGFsIEVudmlyb25tZW50YWwgU3lzdGVtcworMDAxQTFGICAgICAoYmFzZSAxNikJCUNvYXN0YWwgRW52aXJvbm1lbnRhbCBTeXN0ZW1zCisJCQkJODIwIEZpcnN0IEF2ZW51ZSBTb3V0aAorCQkJCVNlYXR0bGUgd2EgOTgxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTIwICAgKGhleCkJCUNNT1RFQ0ggQ28uIEx0ZC4KKzAwMUEyMCAgICAgKGJhc2UgMTYpCQlDTU9URUNIIENvLiBMdGQuCisJCQkJNUYgRXRyb25peCBCbGRnLiAxNy0xMAorCQkJCVlvaWRvLURvbmcKKwkJCQlZb3VuZ2R1bmdwby1HdSBTZW91bCAxNTAtODc0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTIxICAgKGhleCkJCUluZGFjIEIuVi4KKzAwMUEyMSAgICAgKGJhc2UgMTYpCQlJbmRhYyBCLlYuCisJCQkJSW5zdGl0dXRlbndlZyAxNUEKKwkJCQlFbnNjaGVkZSBPdmVyaWpzc2VsIDc1MjEgUEgKKwkJCQlORVRIRVJMQU5EUworCiswMC0xQS0yMiAgIChoZXgpCQllUS0zIEVudHdpY2tsdW5nIEdtYkgKKzAwMUEyMiAgICAgKGJhc2UgMTYpCQllUS0zIEVudHdpY2tsdW5nIEdtYkgKKwkJCQlNYWlidXJnZXIgU3RyLiAzNgorCQkJCUxlZXIgTmllZGVyc2FjaHNlbiBELTI2Nzg5CisJCQkJR0VSTUFOWQorCiswMC0xQS0yMyAgIChoZXgpCQlJY2UgUXViZSwgSW5jCiswMDFBMjMgICAgIChiYXNlIDE2KQkJSWNlIFF1YmUsIEluYworCQkJCTE0MSBXaWxzb24gQXZlCisJCQkJR3JlZW5zYnVyZyBQYSAxNTYwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMjQgICAoaGV4KQkJR2FsYXh5IFRlbGVjb20gVGVjaG5vbG9naWVzIEx0ZAorMDAxQTI0ICAgICAoYmFzZSAxNikJCUdhbGF4eSBUZWxlY29tIFRlY2hub2xvZ2llcyBMdGQKKwkJCQlOby4yNSwgVGhlIDFzdCBHYW94aW4gUm9hZAorCQkJCVhpJ2FuIENpdHkgU2hhbm54aSA3MTAwNzUKKwkJCQlDSElOQQorCiswMC0xQS0yNSAgIChoZXgpCQlERUxUQSBET1JFCiswMDFBMjUgICAgIChiYXNlIDE2KQkJREVMVEEgRE9SRQorCQkJCUJPTk5FTUFJTgorCQkJCUNPTUJPVVJHIEJSRVRBR05FIDM1IDM1MjcwCisJCQkJRlJBTkNFCisKKzAwLTFBLTI2ICAgKGhleCkJCURlbHRhbm9kZSBTb2x1dGlvbnMgQUIKKzAwMUEyNiAgICAgKGJhc2UgMTYpCQlEZWx0YW5vZGUgU29sdXRpb25zIEFCCisJCQkJQm94IDkyIDE4NAorCQkJCVN0b2NraG9sbSAgMTIwIDA5CisJCQkJU1dFREVOCisKKzAwLTFBLTI3ICAgKGhleCkJCVViaXN0YXIKKzAwMUEyNyAgICAgKGJhc2UgMTYpCQlVYmlzdGFyCisJCQkJOEYsIFNlb25nZG8gQnVpbGRpbmcsIDU4Ny0yMworCQkJCVNpbnNhLURvbmcsIEdhbmduYW0tR3UKKwkJCQlTZW91bCAgMTM1LTc0NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS0yOCAgIChoZXgpCQlBU1dUIENvLiwgTFRELiBUYWl3YW4gQnJhbmNoIEguSy4KKzAwMUEyOCAgICAgKGJhc2UgMTYpCQlBU1dUIENvLiwgTFRELiBUYWl3YW4gQnJhbmNoIEguSy4KKwkJCQk3Ri4sIE5vLjMgTGFuZSA5MSwgRG9uZ21laSBSZC4KKwkJCQlIc2luY2h1ICAzMDA3MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtMjkgICAoaGV4KQkJVGVjaHNvbmljIEluZHVzdHJpZXMgZC9iL2EgSHVtbWluYmlyZAorMDAxQTI5ICAgICAoYmFzZSAxNikJCVRlY2hzb25pYyBJbmR1c3RyaWVzIGQvYi9hIEh1bW1pbmJpcmQKKwkJCQkxMjIwIE9sZCBBbHBoYXJldHRhIFJkCisJCQkJU3VpdGUgMzQwCisJCQkJQWxwaGFyZXR0YSBHQSAzMDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMkEgICAoaGV4KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxQTJBICAgICAoYmFzZSAxNikJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Ri4sIE5vLiA5ICwgUGFyayBBdmVudWUgSUksCisJCQkJU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS0yQiAgIChoZXgpCQlBeWVjb20gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMUEyQiAgICAgKGJhc2UgMTYpCQlBeWVjb20gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gMjUsIFImRCBSb2FkIDIsIFNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS0yQyAgIChoZXgpCQlTQVRFQyBDby4sTFRECiswMDFBMkMgICAgIChiYXNlIDE2KQkJU0FURUMgQ28uLExURAorCQkJCTM1OC00LCBQYWxnb2syLURvbmcsIFNhbmdub2stR3UKKwkJCQlBbnNhbi1TaSBLeXVuZ2tpLURvIDQyNi0xOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtMkQgICAoaGV4KQkJVGhlIE5hdnZvIEdyb3VwCiswMDFBMkQgICAgIChiYXNlIDE2KQkJVGhlIE5hdnZvIEdyb3VwCisJCQkJNDQwMCBCYWtlciBSb2FkCisJCQkJTWlubmV0b25rYSBNTiA1NTM0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMkUgICAoaGV4KQkJWmlvdmEgQ29wb3JhdGlvbgorMDAxQTJFICAgICAoYmFzZSAxNikJCVppb3ZhIENvcG9yYXRpb24KKwkJCQlVbml0IDMsIDctOSBTaGVycmlmZnMgcm9hZAorCQkJCUxvbnNkYWxlIFMuQS4gNTE2MAorCQkJCUFVU1RSQUxJQQorCiswMC0xQS0yRiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFBMkYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0zMCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFBMzAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0zMSAgIChoZXgpCQlTQ0FOIENPSU4gSW5kdXN0cmllcyBBQgorMDAxQTMxICAgICAoYmFzZSAxNikJCVNDQU4gQ09JTiBJbmR1c3RyaWVzIEFCCisJCQkJSmFnZXJzaGlsbGdhdGFuIDI2CisJCQkJTWFsbW9lIFNrYW5lIDIxMzc1CisJCQkJU1dFREVOCisKKzAwLTFBLTMyICAgKGhleCkJCUFDVElWQSBNVUxUSU1FRElBCiswMDFBMzIgICAgIChiYXNlIDE2KQkJQUNUSVZBIE1VTFRJTUVESUEKKwkJCQlTSUNQIENTRQorCQkJCVNBTlQgSk9BTiBERVNQSSBCQVJDRUxPTkEgMDg5NzAKKwkJCQlTUEFJTgorCiswMC0xQS0zMyAgIChoZXgpCQlBU0kgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMUEzMyAgICAgKGJhc2UgMTYpCQlBU0kgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkxMDQyIEUgR3VhZGFsdXBlIFJkCisJCQkJVGVtcGUgQVogODUyODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTM0ICAgKGhleCkJCUtvbmthIEdyb3VwIENvLiwgTHRkLgorMDAxQTM0ICAgICAoYmFzZSAxNikJCUtvbmthIEdyb3VwIENvLiwgTHRkLgorCQkJCU92ZXJzZWEgQ2hpbmVzZSBUb3duLE5hbnNoYW4sCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1MworCQkJCUNISU5BCisKKzAwLTFBLTM1ICAgKGhleCkJCUJBUlRFQyBHbWJICiswMDFBMzUgICAgIChiYXNlIDE2KQkJQkFSVEVDIEdtYkgKKwkJCQlTY2h1bHN0ci4gMzAKKwkJCQlHb3R0ZXN6ZWxsIEJhdmFyaWEgOTQyMzkKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLTM2ICAgKGhleCkJCUFpcGVybW9uIEdtYkggJiBDby4gS0cKKzAwMUEzNiAgICAgKGJhc2UgMTYpCQlBaXBlcm1vbiBHbWJIICYgQ28uIEtHCisJCQkJWmFtZG9yZmVyIFN0ci4gMTAwCisJCQkJTXVuY2hlbgorCQkJCU11bmljaCBCYXZhcmlhIEQtODE2NzcKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLTM3ICAgKGhleCkJCUxlYXIgQ29ycG9yYXRpb24KKzAwMUEzNyAgICAgKGJhc2UgMTYpCQlMZWFyIENvcnBvcmF0aW9uCisJCQkJSW5kdXN0cmllc3RyYXNzZSA0OAorCQkJCUtyb25hY2ggQmF5ZXJuIDk2MzE3CisJCQkJR0VSTUFOWQorCiswMC0xQS0zOCAgIChoZXgpCQlTYW5taW5hLVNDSQorMDAxQTM4ICAgICAoYmFzZSAxNikJCVNhbm1pbmEtU0NJCisJCQkJMTMwMDAgU291dGggTWVtb3JpYWwgUGFya3dheQorCQkJCUh1bnRzdmlsbGUgQUwgMzU4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTM5ICAgKGhleCkJCU1lcnRlbiBHbWJIJkNvS0cKKzAwMUEzOSAgICAgKGJhc2UgMTYpCQlNZXJ0ZW4gR21iSCZDb0tHCisJCQkJRnJpdHotS290ei1TdHIuIDgKKwkJCQlXaWVobCBOUlcgNTE2NzQKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLTNBICAgKGhleCkJCURvbmdhaGVsZWNvbW0KKzAwMUEzQSAgICAgKGJhc2UgMTYpCQlEb25nYWhlbGVjb21tCisJCQkJNjc4LTMsSmVpbC1yaSxZYW5nZ2ktbXl1bixDaGVvaW4tZ3UKKwkJCQlZb25naW4tc2kgR3llb25nZ2ktZG8gNDQ5LTgyMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS0zQiAgIChoZXgpCQlEb2FoIEVsZWNvbSBJbmMuCiswMDFBM0IgICAgIChiYXNlIDE2KQkJRG9haCBFbGVjb20gSW5jLgorCQkJCTh0aCBmbC4gQ2VudHVyeSBQbGF6YSwgMjc3LTQwCisJCQkJU3VuZ3N1LTJHYSAzRG9uZworCQkJCVNlb3VsICAxMzMtMTIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTNDICAgKGhleCkJCVRlY2hub3dhdmUgTHRkLgorMDAxQTNDICAgICAoYmFzZSAxNikJCVRlY2hub3dhdmUgTHRkLgorCQkJCVNha3VyYWkgQmxkZy4xRiwKKwkJCQkxLTM1LTYgTmFrYWNobworCQkJCU11c2FzaGluby1zaGkgVG9reW8gMTgwLTAwMDYKKwkJCQlKQVBBTgorCiswMC0xQS0zRCAgIChoZXgpCQlBamluIFZpc2lvbiBDby4sTHRkCiswMDFBM0QgICAgIChiYXNlIDE2KQkJQWppbiBWaXNpb24gQ28uLEx0ZAorCQkJCTE0MDQsIE1hcmlvLVRvd2VyLCAyMjItMTIKKwkJCQlHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS0zRSAgIChoZXgpCQlGYXN0ZXIgVGVjaG5vbG9neSBMTEMKKzAwMUEzRSAgICAgKGJhc2UgMTYpCQlGYXN0ZXIgVGVjaG5vbG9neSBMTEMKKwkJCQkxODEyIEF2ZW51ZSBECisJCQkJU3VpdGUgMjAyCisJCQkJS2F0eSBUZXhhcyA3NzQ5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtM0YgICAoaGV4KQkJaW50ZWxicmFzCiswMDFBM0YgICAgIChiYXNlIDE2KQkJaW50ZWxicmFzCisJCQkJcm9kb3ZpYSBiciAxMDEga20gMjEwCisJCQkJaW50ZWxicmFzCisJCQkJc2FvIGpvc2Ugc2MgODgxMDQ4MDAKKwkJCQlCUkFaSUwKKworMDAtMUEtNDAgICAoaGV4KQkJQS1GT1VSIFRFQ0ggQ08uLCBMVEQuCiswMDFBNDAgICAgIChiYXNlIDE2KQkJQS1GT1VSIFRFQ0ggQ08uLCBMVEQuCisJCQkJNkYsIE5vLiAxMDgsIE1pbi1DaHVhbiBSZC4sCisJCQkJSHNpbi1UaWVuIFRhaXBlaSAyMzE0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNDEgICAoaGV4KQkJSU5PQ09WQSBDby4sTHRkCiswMDFBNDEgICAgIChiYXNlIDE2KQkJSU5PQ09WQSBDby4sTHRkCisJCQkJNUYgU0VPVUwgQkQuNzM2LTE3CisJCQkJWWVva3NhbS1Eb25nLCBLYW5nbmFtLUt1IFNFT1VMIDEzNS05MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtNDIgICAoaGV4KQkJVGVjaGNpdHkgVGVjaG5vbG9neSBjby4sIEx0ZC4KKzAwMUE0MiAgICAgKGJhc2UgMTYpCQlUZWNoY2l0eSBUZWNobm9sb2d5IGNvLiwgTHRkLgorCQkJCTRGLCBOby4gNCwgQWxsZXkgMSwgU3p1IFdlaSBMYW5lLCBDaHVuZyBDaGVuZyBSZC4sCisJCQkJSHNpbiBUZWluIENpdHkgVGFpcGVpIEhzaWVuIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNDMgICAoaGV4KQkJTG9naWNhbCBMaW5rIENvbW11bmljYXRpb25zCiswMDFBNDMgICAgIChiYXNlIDE2KQkJTG9naWNhbCBMaW5rIENvbW11bmljYXRpb25zCisJCQkJMTkwOSBDZW50cmFsIERyaXZlIFN1aXRlIDIwNQorCQkJCUJlZGZvcmQgVFggNzYwMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTQ0ICAgKGhleCkJCUpXVHJhZGluZyBDby4sIEx0ZAorMDAxQTQ0ICAgICAoYmFzZSAxNikJCUpXVHJhZGluZyBDby4sIEx0ZAorCQkJCTE1OTAgS3dhbnlhbmctZG9uZywgRG9uZ2FuLWt1CisJCQkJQWhueWFuZyBLeXVuZ2tpIC0gZG8gNDMxLTA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS00NSAgIChoZXgpCQlHTiBOZXRjb20gYXMKKzAwMUE0NSAgICAgKGJhc2UgMTYpCQlHTiBOZXRjb20gYXMKKwkJCQlNZXRhbGJ1ZW4gNjYKKwkJCQlQLk8uQm94IDIwMQorCQkJCUJhbGxlcnVwIFNrb3ZsdW5kZSBESyAtIDI3NTAKKwkJCQlERU5NQVJLCisKKzAwLTFBLTQ2ICAgKGhleCkJCURpZ2l0YWwgTXVsdGltZWRpYSBUZWNobm9sb2d5IENvLiwgTHRkCiswMDFBNDYgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBNdWx0aW1lZGlhIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlEb29yaW0gQmxkZywgM3JkIEZsLCAxNjQtMjEgUG9pLURvbmcsCisJCQkJU2VvdWwgS2FuZ25hbS1HdSAxMzUtOTYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTQ3ICAgKGhleCkJCUFnYW1pIFN5c3RlbXMsIEluYy4KKzAwMUE0NyAgICAgKGJhc2UgMTYpCQlBZ2FtaSBTeXN0ZW1zLCBJbmMuCisJCQkJMTI2OSBJbm5zYnJ1Y2sgRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ2FsaWZvcm5pYSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNDggICAoaGV4KQkJVGFrYWNvbSBDb3Jwb3JhdGlvbgorMDAxQTQ4ICAgICAoYmFzZSAxNikJCVRha2Fjb20gQ29ycG9yYXRpb24KKwkJCQkzMDQtNzA5IEF6YS1OaXNoaXlhbm1hCisJCQkJT3Jvc2hpLWNobworCQkJCVRva2ktc2hpIEdpZnUta2VuIDUwOS01MjAyCisJCQkJSkFQQU4KKworMDAtMUEtNDkgICAoaGV4KQkJTWljcm8gVmlzaW9uIENvLixMVEQKKzAwMUE0OSAgICAgKGJhc2UgMTYpCQlNaWNybyBWaXNpb24gQ28uLExURAorCQkJCTEtOS0xNQorCQkJCUthbmRvdWppIE1pbmFtaQorCQkJCU5paWdhdGEtY2l0eSBOaWlnYXRhLWtlbiA5NTAtMDk4NgorCQkJCUpBUEFOCisKKzAwLTFBLTRBICAgKGhleCkJCVF1bXJhbmV0IEluYy4KKzAwMUE0QSAgICAgKGJhc2UgMTYpCQlRdW1yYW5ldCBJbmMuCisJCQkJNTMwIExha2VzaWRlIERyaXZlCisJCQkJU3VpdGUgMjIwCisJCQkJU3Vubnl2YWxlIENhbGlmb3JuaWEgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTRCICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxQTRCICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJTVMwNjAzMDgKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS00QyAgIChoZXgpCQlDcm9zc2JvdyBUZWNobm9sb2d5LCBJbmMKKzAwMUE0QyAgICAgKGJhc2UgMTYpCQlDcm9zc2JvdyBUZWNobm9sb2d5LCBJbmMKKwkJCQk0MTQ1IE4uIEZpcnN0IFN0cmVldAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS00RCAgIChoZXgpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorMDAxQTREICAgICAoYmFzZSAxNikJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCisJCQkJCisJCQkJUGluLUplbiBUYW95dWFuIDMyNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNEUgICAoaGV4KQkJTlRJIEFHIC8gTGluTW90CiswMDFBNEUgICAgIChiYXNlIDE2KQkJTlRJIEFHIC8gTGluTW90CisJCQkJSGFlcmRsaXN0cmFzc2UgMTUKKwkJCQlTcHJlaXRlbmJhY2ggQUcgODk1NworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFBLTRGICAgKGhleCkJCUFWTSBHbWJICiswMDFBNEYgICAgIChiYXNlIDE2KQkJQVZNIEdtYkgKKwkJCQlBbHQtTW9hYml0IDk1CisJCQkJQmVybGluICAxMDU1OQorCQkJCUdFUk1BTlkKKworMDAtMUEtNTAgICAoaGV4KQkJUGhlZU5ldCBUZWNobm9sb2d5IENvcnAuCiswMDFBNTAgICAgIChiYXNlIDE2KQkJUGhlZU5ldCBUZWNobm9sb2d5IENvcnAuCisJCQkJUm0uIDMsIDIwRiwgTm8uIDc5LCBTZWMuIDEgSHNpbiBUYWkgV3UgUmQuCisJCQkJSHNpLUNoaWggVGFpcGVpIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNTEgICAoaGV4KQkJQWxmcmVkIE1hbm4gRm91bmRhdGlvbgorMDAxQTUxICAgICAoYmFzZSAxNikJCUFsZnJlZCBNYW5uIEZvdW5kYXRpb24KKwkJCQlQLk8uIEJveCA5MDUKKwkJCQlTYW50YSBDbGFyaXRhIENBIDkxMzgwLTkwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTUyICAgKGhleCkJCU1lc2hsaW54IFdpcmVsZXNzIEluYy4KKzAwMUE1MiAgICAgKGJhc2UgMTYpCQlNZXNobGlueCBXaXJlbGVzcyBJbmMuCisJCQkJMTQxMCBHIEF2ZW51ZSwgU3VpdGUgVAorCQkJCVBsYW5vIFRleGFzIDc1MDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS01MyAgIChoZXgpCQlaeWxheWEKKzAwMUE1MyAgICAgKGJhc2UgMTYpCQlaeWxheWEKKwkJCQk0NDQgTi4gRnJlZGVyaWNrIEF2ZS4KKwkJCQlTdWl0ZSAzMTgKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTU0ICAgKGhleCkJCUhpcCBTaGluZyBFbGVjdHJvbmljcyBMdGQuCiswMDFBNTQgICAgIChiYXNlIDE2KQkJSGlwIFNoaW5nIEVsZWN0cm9uaWNzIEx0ZC4KKwkJCQlVbml0IDEvMi8zLCAyMC9GLCBOZXcgVHJlYXN1cmUgQ2VudGVyCisJCQkJMTAgTmcgRm9uZyBTdHJlZXQsIFNhbiBQbyBLb25nLCBLb3dsb29uCisJCQkJSE9ORyBLT05HCisKKzAwLTFBLTU1ICAgKGhleCkJCUFDQS1EaWdpdGFsIENvcnBvcmF0aW9uCiswMDFBNTUgICAgIChiYXNlIDE2KQkJQUNBLURpZ2l0YWwgQ29ycG9yYXRpb24KKwkJCQkxNyBGLCBOby4gODY2LTcsIENodW5nIENoZW5nIFJkLiwKKwkJCQlDaHVuZyBIbyBDaXR5IFRhaXBlaSBDb3VudHkgMjM1ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTU2ICAgKGhleCkJCVZpZXdUZWwgQ28sLiBMdGQuCiswMDFBNTYgICAgIChiYXNlIDE2KQkJVmlld1RlbCBDbywuIEx0ZC4KKwkJCQkjQi01MDIsQnVuZGFuZyBUZWNobm8gUGFyayAxNDgKKwkJCQlZYVRhcC1Eb25nCisJCQkJQnVuRGFuZy1LdSwgU2VvbmdOYW0tU2kgR3llb25nR2ktRG8gNDYzLTc2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS01NyAgIChoZXgpCQlNYXRyaXggRGVzaWduIEdyb3VwLCBMTEMKKzAwMUE1NyAgICAgKGJhc2UgMTYpCQlNYXRyaXggRGVzaWduIEdyb3VwLCBMTEMKKwkJCQk1NzQxIFByb3NwZWN0IERyLgorCQkJCU5ld2J1cmdoIElOIDQ3NjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS01OCAgIChoZXgpCQlDQ1YgRGV1dHNjaGxhbmQgR21iSCAtIENlbGVjdHJvbmljIGVIZWFsdGggRGl2LgorMDAxQTU4ICAgICAoYmFzZSAxNikJCUNDViBEZXV0c2NobGFuZCBHbWJIIC0gQ2VsZWN0cm9uaWMgZUhlYWx0aCBEaXYuCisJCQkJTm9yZGxpY2h0c3RyYXNzZSA2MworCQkJCUJlcmxpbiAgRC0xMzQwNQorCQkJCUdFUk1BTlkKKworMDAtMUEtNTkgICAoaGV4KQkJSXJjb25hCiswMDFBNTkgICAgIChiYXNlIDE2KQkJSXJjb25hCisJCQkJVW5pdCA0Qi0xLCBDb3Jwb3JhdGUgUGFyaworCQkJCUJsYW5jaGFyZHN0b3duIER1YmxpbiAxNQorCQkJCUlSRUxBTkQKKworMDAtMUEtNUEgICAoaGV4KQkJS29yZWEgRWxlY3RyaWMgUG93ZXIgRGF0YSBOZXR3b3JrICAoS0ROKSBDby4sIEx0ZAorMDAxQTVBICAgICAoYmFzZSAxNikJCUtvcmVhIEVsZWN0cmljIFBvd2VyIERhdGEgTmV0d29yayAgKEtETikgQ28uLCBMdGQKKwkJCQk2NjUgTkFFU09OLURPTkcsCisJCQkJR1lFT05HR0ktRE8gVUlXQU5HLVNJLCBOQUVTT04tRE9ORyA0MzctMDgyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTVCICAgKGhleCkJCU5ldENhcmUgU2VydmljZSBDby4sIEx0ZC4KKzAwMUE1QiAgICAgKGJhc2UgMTYpCQlOZXRDYXJlIFNlcnZpY2UgQ28uLCBMdGQuCisJCQkJNS0xMy0xNiBTaGltaXp1LCBBc2FoaS1rdQorCQkJCU9zYWthICA1MzUtMDAyMQorCQkJCUpBUEFOCisKKzAwLTFBLTVDICAgKGhleCkJCUV1Y2huZXIgR21iSCtDby4gS0cKKzAwMUE1QyAgICAgKGJhc2UgMTYpCQlFdWNobmVyIEdtYkgrQ28uIEtHCisJCQkJS29obGhhbW1lcnN0ci4gMTYKKwkJCQlMZWluZmVsZGVuLUVjaHRlcmRpbmdlbiBCVyA3MDc3MQorCQkJCUdFUk1BTlkKKworMDAtMUEtNUQgICAoaGV4KQkJTW9iaW5ub3ZhIENvcnAuCiswMDFBNUQgICAgIChiYXNlIDE2KQkJTW9iaW5ub3ZhIENvcnAuCisJCQkJMTFGLCA4NDUsIENIVU5HIFNIQU4gUkQKKwkJCQlUQU9ZVUFOICAzMzA1OQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNUUgICAoaGV4KQkJVGhpbmNvbSBUZWNobm9sb2d5IENvLixMdGQKKzAwMUE1RSAgICAgKGJhc2UgMTYpCQlUaGluY29tIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTE3Ri0zLCBOby4zOTgsIEh1YW5iZWkgUmQuLAorCQkJCVpob25nbGkgQ2l0eSBUYW95dWFuIENvbnRyeSAzMjAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTVGICAgKGhleCkJCUtpdFdvcmtzLmZpIEx0ZC4KKzAwMUE1RiAgICAgKGJhc2UgMTYpCQlLaXRXb3Jrcy5maSBMdGQuCisJCQkJU25vd3BvbGlzCisJCQkJVnVva2F0dGkgS2FpbnV1IDg4NjEwCisJCQkJRklOTEFORAorCiswMC0xQS02MCAgIChoZXgpCQlXYXZlIEVsZWN0cm9uaWNzIENvLixMdGQuCiswMDFBNjAgICAgIChiYXNlIDE2KQkJV2F2ZSBFbGVjdHJvbmljcyBDby4sTHRkLgorCQkJCTN0aCBGbC4sRGFlU2FuIFBsYXphIEIvRCxHdXVuLURvbmcsIDEyLTEsR3dvbnNlb24tR3UKKwkJCQlTdXdvbi1zaSBLeWVvbmdnaS1EbyA0NDEtODE0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTYxICAgKGhleCkJCVBhY1N0YXIgQ29ycC4KKzAwMUE2MSAgICAgKGJhc2UgMTYpCQlQYWNTdGFyIENvcnAuCisJCQkJMTUwNTUgU1cgU2VxdW9pYSBQa3d5LCBTdWl0ZSAxMDAKKwkJCQlQb3J0bGFuZCBPUiA5NzAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNjIgICAoaGV4KQkJRGF0YSBSb2JvdGljcywgSW5jb3Jwb3JhdGVkCiswMDFBNjIgICAgIChiYXNlIDE2KQkJRGF0YSBSb2JvdGljcywgSW5jb3Jwb3JhdGVkCisJCQkJMTg4MSBMYW5kaW5ncyBEcgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTYzICAgKGhleCkJCUVsc3RlciBTb2x1dGlvbnMsIExMQywKKzAwMUE2MyAgICAgKGJhc2UgMTYpCQlFbHN0ZXIgU29sdXRpb25zLCBMTEMsCisJCQkJMjA4IFNvdXRoIFJvZ2VycyBMYW5lCisJCQkJUmFsZWlnaCBOQyAyNzYxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNjQgICAoaGV4KQkJSUJNIENvcnAKKzAwMUE2NCAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNjUgICAoaGV4KQkJU2VsdXhpdAorMDAxQTY1ICAgICAoYmFzZSAxNikJCVNlbHV4aXQKKwkJCQlOeWhhdm5zZ2FkZSA5LCAyLnNhbAorCQkJCUFhbGJvcmcgTm9yZCBKeWxsYW5kIDkwMDAKKwkJCQlERU5NQVJLCisKKzAwLTFBLTY2ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxQTY2ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTY3ICAgKGhleCkJCUluZmluaXRlIFFMIFNkbiBCaGQKKzAwMUE2NyAgICAgKGJhc2UgMTYpCQlJbmZpbml0ZSBRTCBTZG4gQmhkCisJCQkJRy4wMiwgQmxvY2sgQSwgRGF0YXJhbiBIYW1vZGFsCisJCQkJTm8uNCwgSmFsYW4gMTMvNCwgU2VjdC4gMTMsCisJCQkJUGV0YWxpbmcgSmF5YSBTZWxhbmdvciBEYXJ1bCBFaHNhbiA0NjMwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFBLTY4ICAgKGhleCkJCVdlbHRlYyBFbnRlcnByaXNlIENvLiwgTHRkLgorMDAxQTY4ICAgICAoYmFzZSAxNikJCVdlbHRlYyBFbnRlcnByaXNlIENvLiwgTHRkLgorCQkJCTJGLCBOby4gMzUxIFl1bmcgSG8gUmQuCisJCQkJVGFpcGVpIEhzaWVuCisJCQkJQ2h1bmcgSG8gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNjkgICAoaGV4KQkJV3VoYW4gWWFuZ3R6ZSBPcHRpY2FsIFRlY2hub2xvZ3kgQ08uLEx0ZC4KKzAwMUE2OSAgICAgKGJhc2UgMTYpCQlXdWhhbiBZYW5ndHplIE9wdGljYWwgVGVjaG5vbG9neSBDTy4sTHRkLgorCQkJCTQjLEd1YW5zaGFuIDIgUm9hZAorCQkJCVd1aGFuIEh1YmVpIDQzMDA3MworCQkJCUNISU5BCisKKzAwLTFBLTZBICAgKGhleCkJCVRyYW56YXMsIEluYy4KKzAwMUE2QSAgICAgKGJhc2UgMTYpCQlUcmFuemFzLCBJbmMuCisJCQkJUXVlZW5zIHRvd2VyIEMxNworCQkJCU1pbmF0b21pcmFpIDItMy01IE5pc2hpLWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2Eta2VuIDIyMC02MjE3CisJCQkJSkFQQU4KKworMDAtMUEtNkIgICAoaGV4KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCiswMDFBNkIgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJMTQxLCBMQU5FIDM1MSxTZWMuMSwgVEFJUElORyBSRC4KKwkJCQlUU0FPVFVFTiwKKwkJCQlOQU5UT1UgIDU0MjYxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS02QyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFBNkMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS02RCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFBNkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS02RSAgIChoZXgpCQlJbXBybyBUZWNobm9sb2dpZXMKKzAwMUE2RSAgICAgKGJhc2UgMTYpCQlJbXBybyBUZWNobm9sb2dpZXMKKwkJCQk0N0IgR2lsbGl0cyBSZAorCQkJCVBpbmV0b3duIEt3YVp1bHUtTmF0YWwgMzYxMAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xQS02RiAgIChoZXgpCQlNSS5URUwgcy5yLmwuCiswMDFBNkYgICAgIChiYXNlIDE2KQkJTUkuVEVMIHMuci5sLgorCQkJCVZJQSBHVUlETyBST1NTQSwgMjIKKwkJCQlDT1JOQVRFIEQnQUREQSBNSUxBTk8gMjAwNDAKKwkJCQlJVEFMWQorCiswMC0xQS03MCAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzAwMUE3MCAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTcxICAgKGhleCkJCURpb3N0ZWNoIENvLiwgTHRkLgorMDAxQTcxICAgICAoYmFzZSAxNikJCURpb3N0ZWNoIENvLiwgTHRkLgorCQkJCTE1MS0yMSwgQnVrLXJpLCBOYW1zYS1teWVvbiwKKwkJCQlDaGVvaW4tZ3UKKwkJCQlZb25naW4tY2l0eSBHeWVvbmdnaS1kbyA0NDkgODg0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTcyICAgKGhleCkJCU1vc2FydCBTZW1pY29uZHVjdG9yIENvcnAuCiswMDFBNzIgICAgIChiYXNlIDE2KQkJTW9zYXJ0IFNlbWljb25kdWN0b3IgQ29ycC4KKwkJCQkyM0YuLCBOby4zMywgU2VjLjEsCisJCQkJTWluIFNoZW5nIFJkLiwgUGFuY2hpYW8gQ2l0eQorCQkJCVRhaXBlaSAgMjIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS03MyAgIChoZXgpCQlHZW10ZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMUE3MyAgICAgKGJhc2UgMTYpCQlHZW10ZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gMSBKZW4gQWkgUm9hZCwgSHNpbmNodSBJbmR1c3RyaWFsIFBhcmssIEh1a291LAorCQkJCUhzaW5jaHUgIDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNzQgICAoaGV4KQkJUHJvY2FyZSBJbnRlcm5hdGlvbmFsIENvCiswMDFBNzQgICAgIChiYXNlIDE2KQkJUHJvY2FyZSBJbnRlcm5hdGlvbmFsIENvCisJCQkJNUYsIE5vLjg4LCBKaG91emloIFN0cmVldCwgTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNzUgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKzAwMUE3NSAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNrYW5lIDIyMTg4CisJCQkJU1dFREVOCisKKzAwLTFBLTc2ICAgKGhleCkJCVNEVCBpbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLixMVEQuCiswMDFBNzYgICAgIChiYXNlIDE2KQkJU0RUIGluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uLExURC4KKwkJCQlTYW1pbCBCL0IgMkYsIDUtNjMgSHlvY2hhbmctZG9uZworCQkJCVlvbmdzYW4tS3UsCisJCQkJU2VvdWwgIDE0MC04OTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtNzcgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDFBNzcgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjAwIE4uIEh3eSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNzggICAoaGV4KQkJdWJ0b3MKKzAwMUE3OCAgICAgKGJhc2UgMTYpCQl1YnRvcworCQkJCVJuLjIxMywgV29vbGltIExpb24/P3MgVmFsbGV5ID8/LCAjNjgwCisJCQkJc2VvdWwgR2FzYW4tZG9uZyAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTc5ICAgKGhleCkJCVRFTEVDT01VTklDQVRJT04gVEVDSE5PTE9HSUVTIExURC4KKzAwMUE3OSAgICAgKGJhc2UgMTYpCQlURUxFQ09NVU5JQ0FUSU9OIFRFQ0hOT0xPR0lFUyBMVEQuCisJCQkJNEQgWkhVS09WQSBCTFYuCisJCQkJT0RFU1NBICA2NTEyMQorCQkJCVVLUkFJTkUKKworMDAtMUEtN0EgICAoaGV4KQkJTGlzbW9yZSBJbnN0cnVtZW50cyBMaW1pdGVkCiswMDFBN0EgICAgIChiYXNlIDE2KQkJTGlzbW9yZSBJbnN0cnVtZW50cyBMaW1pdGVkCisJCQkJVW5pdCAyIFRyaXN0YXIgQ2VudHJlLCBTdGFyIFJvYWQKKwkJCQlQYXJ0cmlkZ2UgR3JlZW4KKwkJCQlIb3JzaGFtIFdlc3QgU3Vzc2V4IFJIMTMgOFJBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUEtN0IgICAoaGV4KQkJVGVsZWNvLCBJbmMuCiswMDFBN0IgICAgIChiYXNlIDE2KQkJVGVsZWNvLCBJbmMuCisJCQkJNDMwIFdvb2RydWZmIFJkLgorCQkJCVN1aXRlIDMwMAorCQkJCUdyZWVudmlsbGUgU0MgMjk2MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTdDICAgKGhleCkJCUhpcnNjaG1hbm4gTXVsdGltZWRpYSBCLlYuCiswMDFBN0MgICAgIChiYXNlIDE2KQkJSGlyc2NobWFubiBNdWx0aW1lZGlhIEIuVi4KKwkJCQlQYW1wdXNsYWFuIDE3MAorCQkJCVdlZXNwIE5vb3JkLUhvbGxhbmQgMTM4MiBKUworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTFBLTdEICAgKGhleCkJCWN5YmVyLWJsdWUoSEspTHRkCiswMDFBN0QgICAgIChiYXNlIDE2KQkJY3liZXItYmx1ZShISylMdGQKKwkJCQlSb29tIDE0MDggYmxvY2sgQyBzdGFycyBQbGF6YSBIb25nTGlSb2FkLEZ1VGlhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwMjgKKwkJCQlDSElOQQorCiswMC0xQS03RSAgIChoZXgpCQlMTiBTcml0aGFpIENvbW0gTHRkLgorMDAxQTdFICAgICAoYmFzZSAxNikJCUxOIFNyaXRoYWkgQ29tbSBMdGQuCisJCQkJNzEvMTIgTS41LCBCYW5nbmEtVHJhZCBSZCwgS00uNTIsIFRoYWthbQorCQkJCUJhbmdwYWtvbmcgQ2hhY2hvZW5nc2FvIDI0MTMwCisJCQkJVEhBSUxBTkQKKworMDAtMUEtN0YgICAoaGV4KQkJR0NJIFNjaWVuY2UmVGVjaG5vbG9neSBDby4sTHRkLgorMDAxQTdGICAgICAoYmFzZSAxNikJCUdDSSBTY2llbmNlJlRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQlOby4zODEsIFhpbmdhbmd6aG9uZyBSb2FkLAorCQkJCWd1YW5nemhvdSBndWFuZ2RvbmcgNTEwMzEwCisJCQkJQ0hJTkEKKworMDAtMUEtODAgICAoaGV4KQkJU29ueSBDb3Jwb3JhdGlvbgorMDAxQTgwICAgICAoYmFzZSAxNikJCVNvbnkgQ29ycG9yYXRpb24KKwkJCQlHb3RlbnlhbWEgVGVjIDUtMS0yCisJCQkJS2l0YXNoaW5hZ2F3YQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAwMQorCQkJCUpBUEFOCisKKzAwLTFBLTgxICAgKGhleCkJCVplbGF4CiswMDFBODEgICAgIChiYXNlIDE2KQkJWmVsYXgKKwkJCQkybmQgYnVpZC4sIDFCLCBaYXZvZHNrYXlhIHN0LiwKKwkJCQlNb3Njb3cgIDEyNDY4MQorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xQS04MiAgIChoZXgpCQlQUk9CQSBCdWlsZGluZyBBdXRvbWF0aW9uIENvLixMVEQKKzAwMUE4MiAgICAgKGJhc2UgMTYpCQlQUk9CQSBCdWlsZGluZyBBdXRvbWF0aW9uIENvLixMVEQKKwkJCQlQZW5naHVhbiBCdWlsZGluZyA1MDEsIFNoYW5nZGkgRWFzdCBSb2FkICMxLCBIYWlkaWFuIERpc3RyaWN0LAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTFBLTgzICAgKGhleCkJCVBlZ2FzdXMgVGVjaG5vbG9naWVzIEluYy4KKzAwMUE4MyAgICAgKGJhc2UgMTYpCQlQZWdhc3VzIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMTA4IFBhd25vb2sgRmFybSBSZC4KKwkJCQlMZW5vaXIgQ2l0eSBUTiAzNzc3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtODQgICAoaGV4KQkJViBPbmUgTXVsdGltZWRpYSBQdGUgTHRkCiswMDFBODQgICAgIChiYXNlIDE2KQkJViBPbmUgTXVsdGltZWRpYSBQdGUgTHRkCisJCQkJQmxrIDU0LCBLYWxsYW5nIEJhaHJ1CisJCQkJIzAyLTA0CisJCQkJMzM5MzM2CisJCQkJU0lOR0FQT1JFCisKKzAwLTFBLTg1ICAgKGhleCkJCU5WIE1pY2hlbCBWYW4gZGUgV2llbGUKKzAwMUE4NSAgICAgKGJhc2UgMTYpCQlOViBNaWNoZWwgVmFuIGRlIFdpZWxlCisJCQkJTS4gVmFuZGV3aWVsZXN0cmFhdCA3CisJCQkJTWFya2UgV2VzdC1WbGFhbmRlcmVuIDg1MTAKKwkJCQlCRUxHSVVNCisKKzAwLTFBLTg2ICAgKGhleCkJCUFkdmFuY2VkSU8gU3lzdGVtcyBJbmMKKzAwMUE4NiAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZElPIFN5c3RlbXMgSW5jCisJCQkJNTk1IEhvd2UgU3RyZWV0LCBTdWl0ZSA1MDIKKwkJCQlWYW5jb3V2ZXIgQkMgVjZDIDJUNQorCQkJCUNBTkFEQQorCiswMC0xQS04NyAgIChoZXgpCQlDYW5ob2xkIEludGVybmF0aW9uYWwgTGltaXRlZAorMDAxQTg3ICAgICAoYmFzZSAxNikJCUNhbmhvbGQgSW50ZXJuYXRpb25hbCBMaW1pdGVkCisJCQkJRmxhdCA0LCAxMy9GLiwgQmxvY2sgNCwgVGFpIFBpbmcgSW5kdXN0cmlhbCBDZW50cmUKKwkJCQk1MUEgVGluZyBLb2sgUm9hZCwgVGFpIFBvLCBOLlQuLAorCQkJCTAwODUyCisJCQkJSE9ORyBLT05HCisKKzAwLTFBLTg4ICAgKGhleCkJCVZlbmVyZ3ksQ28sTHRkCiswMDFBODggICAgIChiYXNlIDE2KQkJVmVuZXJneSxDbyxMdGQKKwkJCQlXZXN0IDZ0aCBGbG9vcixNLTggQnVpbGRpbmcgTWFxdWVsaW5nIFpvbmUsCisJCQkJU2hlbnpoZW4gSGlnaC1UZWNoIFBhcmssIE5hbnNoYW4gZGlzdHJpY3QsCisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzAwLTFBLTg5ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFBODkgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTFBLThBICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDFBOEEgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWktQ2l0eSBHeWVvbmctQnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtOEIgICAoaGV4KQkJQ0hVTklMIEVMRUNUUklDIElORC4sIENPLgorMDAxQThCICAgICAoYmFzZSAxNikJCUNIVU5JTCBFTEVDVFJJQyBJTkQuLCBDTy4KKwkJCQkzMDgsQnl1Y2tTYW4gRGlnaXRhbCBWYWxsZXksMTMyLTcsR2FtamVvbi1Eb25nLFNhc2FuZy1HdQorCQkJCUJ1c2FuIEd5ZW9uZ1NhbmdOYW1EbyA2MTctODAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLThDICAgKGhleCkJCUFzdGFybyBBRworMDAxQThDICAgICAoYmFzZSAxNikJCUFzdGFybyBBRworCQkJCUFtYWxpZW5iYWRzdHIuIDM2CisJCQkJQmF1IDMzYQorCQkJCUthcmxzcnVoZSBCVyA3NjIyNworCQkJCUdFUk1BTlkKKworMDAtMUEtOEQgICAoaGV4KQkJQVZFQ1MgQmVyZ2VuIEdtYkgKKzAwMUE4RCAgICAgKGJhc2UgMTYpCQlBVkVDUyBCZXJnZW4gR21iSAorCQkJCUJpbGxyb3Roc3RyLiAxMSBhCisJCQkJQmVyZ2VuIGF1ZiBSdWdlbiBNL1YgMTg1MjgKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLThFICAgKGhleCkJCTNXYXkgTmV0d29ya3MgTHRkCiswMDFBOEUgICAgIChiYXNlIDE2KQkJM1dheSBOZXR3b3JrcyBMdGQKKwkJCQk3MjAwIENhbWJyaWRnZSBSZXNlYXJjaCBQYXJrCisJCQkJV2F0ZXJiZWFjaAorCQkJCUNhbWJyaWRnZSBDYW1icmlkZ2VzaGlyZSBDQjUgOVRMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUEtOEYgICAoaGV4KQkJTm9ydGVsCiswMDFBOEYgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTFBLTkwICAgKGhleCkJCVRyb3BpY28gU2lzdGVtYXMgZSBUZWxlY29tdW5pY2Fjb2VzIGRhIEFtYXpvbmlhIExUREEuCiswMDFBOTAgICAgIChiYXNlIDE2KQkJVHJvcGljbyBTaXN0ZW1hcyBlIFRlbGVjb211bmljYWNvZXMgZGEgQW1hem9uaWEgTFREQS4KKwkJCQlSb2QuICBDYW1waW5hcy1Nb2dpLU1pcmltIChTUCAzNDApICBLbSAxMTgsNQorCQkJCVBvbGlzIGRlIFRlY25vbG9naWEgKENQcUQpLVByZWRpbyA5QQorCQkJCUNhbXBpbmFzIFNhbyBQYXVsbyAxMy4wODYtOTAyCisJCQkJQlJBWklMCisKKzAwLTFBLTkxICAgKGhleCkJCUZ1c2lvbkR5bmFtaWMgTHRkLgorMDAxQTkxICAgICAoYmFzZSAxNikJCUZ1c2lvbkR5bmFtaWMgTHRkLgorCQkJCTEgQi5TLlIuIHRvd2VycywgNC10aCBmbG9vcgorCQkJCTIgQmVuIEd1cmlvbiBzdHJlZXQKKwkJCQlSYW1hdCBHYW4gIDUyNTczCisJCQkJSVNSQUVMCisKKzAwLTFBLTkyICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorMDAxQTkyICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtOTMgICAoaGV4KQkJRVJDTyBMZXVjaHRlbiBHbWJICiswMDFBOTMgICAgIChiYXNlIDE2KQkJRVJDTyBMZXVjaHRlbiBHbWJICisJCQkJQnJvY2toYXVzZXIgV2VnIDgwLTgyCisJCQkJTHVkZW5zY2hlaWQgTlJXIEQtNTg1MDcKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLTk0ICAgKGhleCkJCVZvdHJvbmljIEdtYkgKKzAwMUE5NCAgICAgKGJhc2UgMTYpCQlWb3Ryb25pYyBHbWJICisJCQkJU2FhcmJydWVja2VyIFN0ci4gOAorCQkJCVN0LiBJbmdiZXJ0IFNhYXJsYW5kIDY2Mzg2CisJCQkJR0VSTUFOWQorCiswMC0xQS05NSAgIChoZXgpCQlIaXNlbnNlIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBUZWNobm9saWd5IENvLixMdGQuCiswMDFBOTUgICAgIChiYXNlIDE2KQkJSGlzZW5zZSBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgVGVjaG5vbGlneSBDby4sTHRkLgorCQkJCTExLEppYW5nWGkgUm9hZCwKKwkJCQlRaW5nRGFvIFNoYW5Eb25nIDI2NjA3MQorCQkJCUNISU5BCisKKzAwLTFBLTk2ICAgKGhleCkJCUVDTEVSIFMuQS4KKzAwMUE5NiAgICAgKGJhc2UgMTYpCQlFQ0xFUiBTLkEuCisJCQkJTW90b3JzIDE2Ni0xNjgKKwkJCQlCYXJjZWxvbmEgIDA4MDM4CisJCQkJU1BBSU4KKworMDAtMUEtOTcgICAoaGV4KQkJZml0aXZpc2lvbiB0ZWNobm9sb2d5IEluYy4KKzAwMUE5NyAgICAgKGJhc2UgMTYpCQlmaXRpdmlzaW9uIHRlY2hub2xvZ3kgSW5jLgorCQkJCThGLCBOby4gMzU2LCBTZWMuIDEsIE5laWh1IFJkCisJCQkJTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtOTggICAoaGV4KQkJQXNvdGVsIENvbW11bmljYXRpb24gTGltaXRlZCBUYWl3YW4gQnJhbmNoCiswMDFBOTggICAgIChiYXNlIDE2KQkJQXNvdGVsIENvbW11bmljYXRpb24gTGltaXRlZCBUYWl3YW4gQnJhbmNoCisJCQkJM0cxNywgTm81LCBIc2luIFlpIFJvYWQsIFNlYy4gNQorCQkJCVRhaXBlaSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS05OSAgIChoZXgpCQlTbWFydHkgKEhaKSBJbmZvcm1hdGlvbiBFbGVjdHJvbmljcyBDby4sIEx0ZAorMDAxQTk5ICAgICAoYmFzZSAxNikJCVNtYXJ0eSAoSFopIEluZm9ybWF0aW9uIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJWW9uZ2h1YSBJbmR1c3RyaWFsIERpc3RyaWN0LEh1aXNoZW4gUm9hZCxaaGVubG9uZyBUb3duCisJCQkJSHVpWmhvdSBHdWFuZ0RvbmcgNTE2MjI3CisJCQkJQ0hJTkEKKworMDAtMUEtOUEgICAoaGV4KQkJU2t5d29ydGggRGlnaXRhbCB0ZWNobm9sb2d5KHNoZW56aGVuKWNvLmx0ZC4KKzAwMUE5QSAgICAgKGJhc2UgMTYpCQlTa3l3b3J0aCBEaWdpdGFsIHRlY2hub2xvZ3koc2hlbnpoZW4pY28ubHRkLgorCQkJCTEzRixCbG9jayBBLFNreXdvcnRoIEJ1aWxkaW5nLEdhb3hpbiBBVkUuMS5TLAorCQkJCU5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTFBLTlCICAgKGhleCkJCUFERUMgJiBQYXJ0ZXIgQUcKKzAwMUE5QiAgICAgKGJhc2UgMTYpCQlBREVDICYgUGFydGVyIEFHCisJCQkJU3RhbGRlbmJhY2hzdHJhc3NlIDMwCisJCQkJUGZhZWZmaWtvbiBaSCA4ODA4CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUEtOUMgICAoaGV4KQkJUmlnaHRIYW5kIFRlY2hub2xvZ2llcywgSW5jLgorMDAxQTlDICAgICAoYmFzZSAxNikJCVJpZ2h0SGFuZCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk2NTQ1IE4gT2xtc3RlZCBBdmVudWUKKwkJCQlDaGljYWdvIElMIDYwNjMxLTE0MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTlEICAgKGhleCkJCVNraXBwZXIgV2lyZWxlc3MsIEluYy4KKzAwMUE5RCAgICAgKGJhc2UgMTYpCQlTa2lwcGVyIFdpcmVsZXNzLCBJbmMuCisJCQkJU2hpbmp1a3UtU3VtaXRvbW8gQmxkZy4gMjBGCisJCQkJMi02LTEgTmlzaGktU2hpbmp1a3UKKwkJCQlTaGluanVrdSBUb2t5byAxNjMtMDIyMAorCQkJCUpBUEFOCisKKzAwLTFBLTlFICAgKGhleCkJCUlDT04gRGlnaXRhbCBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKzAwMUE5RSAgICAgKGJhc2UgMTYpCQlJQ09OIERpZ2l0YWwgSW50ZXJuYXRpb25hbCBMaW1pdGVkCisJCQkJU3VpdGUyMjA5LCAyMi9GLiwgU2t5TGluZSBUb3dlciwKKwkJCQkzOSBXYW5nIEt3b25nIFJvYWQsIEtvd2xvb24gQmF5CisJCQkJQ0hJTkEKKworMDAtMUEtOUYgICAoaGV4KQkJQS1MaW5rIEV1cm9wZSBMdGQKKzAwMUE5RiAgICAgKGJhc2UgMTYpCQlBLUxpbmsgRXVyb3BlIEx0ZAorCQkJCVAuTy5Cb3ggMworCQkJCUVzcG9vICBGSS0wMjk0MQorCQkJCUZJTkxBTkQKKworMDAtMUEtQTAgICAoaGV4KQkJRGVsbCBJbmMKKzAwMUFBMCAgICAgKGJhc2UgMTYpCQlEZWxsIEluYworCQkJCU9uZSBEZWxsIFdheSwgIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUExICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUFBMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUEyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUFBMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUEzICAgKGhleCkJCURFTE9STUUKKzAwMUFBMyAgICAgKGJhc2UgMTYpCQlERUxPUk1FCisJCQkJMiBERUxPUk1FIERSSVZFCisJCQkJWUFSTU9VVEggTUFJTkUgMDQwOTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUE0ICAgKGhleCkJCUZ1dHVyZSBVbml2ZXJzaXR5LUhha29kYXRlCiswMDFBQTQgICAgIChiYXNlIDE2KQkJRnV0dXJlIFVuaXZlcnNpdHktSGFrb2RhdGUKKwkJCQkxMTYtMiBLYW1lZGFuYWthbm8tY2hvCisJCQkJSGFrb2RhdGUgSG9ra2FpZG8gMDQxLTg2NTUKKwkJCQlKQVBBTgorCiswMC0xQS1BNSAgIChoZXgpCQlCUk4gUGhvZW5peAorMDAxQUE1ICAgICAoYmFzZSAxNikJCUJSTiBQaG9lbml4CisJCQkJMjUwMCBBdWd1c3RpbmUgRHJpdmUsIFN1aXRlIDIwMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1BNiAgIChoZXgpCQlUZWxlZnVua2VuIFJhZGlvIENvbW11bmljYXRpb24gU3lzdGVtcyBHbWJIICZDTy5LRworMDAxQUE2ICAgICAoYmFzZSAxNikJCVRlbGVmdW5rZW4gUmFkaW8gQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIEdtYkggJkNPLktHCisJCQkJRWJlcmhhcmQtRmluY2toLVN0cmFzc2UgNTUKKwkJCQlVbG0gQmFkZW4tV3VydHRlbWJlcmcgODkwNzUKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLUE3ICAgKGhleCkJCVRvcmlhbiBXaXJlbGVzcworMDAxQUE3ICAgICAoYmFzZSAxNikJCVRvcmlhbiBXaXJlbGVzcworCQkJCTIwNCBKb2huc3RvbiBTdHJlZXQKKwkJCQlDb2xsaW5nd29vZCBWaWN0b3JpYSAzMDY2CisJCQkJQVVTVFJBTElBCisKKzAwLTFBLUE4ICAgKGhleCkJCU1hbWl5YSBEaWdpdGFsIEltYWdpbmcgQ28uLCBMdGQuCiswMDFBQTggICAgIChiYXNlIDE2KQkJTWFtaXlhIERpZ2l0YWwgSW1hZ2luZyBDby4sIEx0ZC4KKwkJCQkyLTE0LTIyIFVlbm8KKwkJCQlUYWl0by1rdSBUb2t5byAxMTAtMDAwNQorCQkJCUpBUEFOCisKKzAwLTFBLUE5ICAgKGhleCkJCUZVSklBTiBTVEFSLU5FVCBDT01NVU5JQ0FUSU9OIENPLixMVEQKKzAwMUFBOSAgICAgKGJhc2UgMTYpCQlGVUpJQU4gU1RBUi1ORVQgQ09NTVVOSUNBVElPTiBDTy4sTFRECisJCQkJMTktMjIjIEJ1aWxkaW5nLCBTdGFyLW5ldCBTY2llbmNlIFBsYXphLCBKdXl1YW56aG91LAorCQkJCTYxOCBKaW5zaGFuIFJvYWQsCisJCQkJRlVaSE9VIEZVSklBTiAzNTAwMDIKKwkJCQlDSElOQQorCiswMC0xQS1BQSAgIChoZXgpCQlBbmFsb2dpYyBDb3JwLgorMDAxQUFBICAgICAoYmFzZSAxNikJCUFuYWxvZ2ljIENvcnAuCisJCQkJOCBDZW50ZW5uaWFsIERyaXZlCisJCQkJUGVhYm9keSBNQSAwMTk2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQUIgICAoaGV4KQkJZVdpbmdzIHMuci5sLgorMDAxQUFCICAgICAoYmFzZSAxNikJCWVXaW5ncyBzLnIubC4KKwkJCQl2aWEgUy4gUXVhc2ltb2RvIDQ2CisJCQkJQ2FzdGVsIE1hZ2dpb3JlIEJvbG9nbmEgNDAwMTMKKwkJCQlJVEFMWQorCiswMC0xQS1BQyAgIChoZXgpCQlDb3JlbGF0dXMgQUIKKzAwMUFBQyAgICAgKGJhc2UgMTYpCQlDb3JlbGF0dXMgQUIKKwkJCQlUZWduZXJnYXRhbiAzNworCQkJCVN0b2NraG9sbSAgMTExNjEKKwkJCQlTV0VERU4KKworMDAtMUEtQUQgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUFBRCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUFFICAgKGhleCkJCVNhdmFudCBTeXN0ZW1zIExMQworMDAxQUFFICAgICAoYmFzZSAxNikJCVNhdmFudCBTeXN0ZW1zIExMQworCQkJCTc3MEEgTWFpbiBTdAorCQkJCU9zdGVydmlsbGUgTWFzc2FjaHVzZXR0cyAwMjY1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQUYgICAoaGV4KQkJQkxVU0VOUyBURUNITk9MT0dZCiswMDFBQUYgICAgIChiYXNlIDE2KQkJQkxVU0VOUyBURUNITk9MT0dZCisJCQkJRURJRklDSU8gQ05MLC0gQVYuCisJCQkJRkVSTkFORE8gQ0FTQVMgTk9WT0EgLE4/IDM3QiAyPworCQkJCTE1NzA3IC0gU0FOVElBR08gREUgQ09NUE9TVEVMQSBBIENPUlVOQSAKKwkJCQlTUEFJTgorCiswMC0xQS1CMCAgIChoZXgpCQlTaWduYWwgTmV0d29ya3MgUHZ0LiBMdGQuLAorMDAxQUIwICAgICAoYmFzZSAxNikJCVNpZ25hbCBOZXR3b3JrcyBQdnQuIEx0ZC4sCisJCQkJTm8uMTIsIEthbHBhdGFydSBBcGFydG1lbnRzLAorCQkJCVJhY2UgQ291cnNlIENyb3NzIFJvYWQsIE1hZGhhdm5hZ2FyLAorCQkJCUJhbmdhbG9yZSBLYXJuYXRha2EgNTYwMDAxCisJCQkJSU5ESUEKKworMDAtMUEtQjEgICAoaGV4KQkJQXNpYSBQYWNpZmljIFNhdGVsbGl0ZSBJbmR1c3RyaWVzIENvLiwgTHRkLgorMDAxQUIxICAgICAoYmFzZSAxNikJCUFzaWEgUGFjaWZpYyBTYXRlbGxpdGUgSW5kdXN0cmllcyBDby4sIEx0ZC4KKwkJCQk5dGggRkwsIElUIENhc3RsZSAyLURvbmcsICM1NTAtMSwgR2FzYW4tRG9uZywgR2V1bUNoZW9uLUd1LAorCQkJCVNlb3VsICAxNTMtNzY4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLUIyICAgKGhleCkJCUN5YmVyIFNvbHV0aW9ucyBJbmMuCiswMDFBQjIgICAgIChiYXNlIDE2KQkJQ3liZXIgU29sdXRpb25zIEluYy4KKwkJCQk2LTYtMywgTWluYW1pIFlvc2hpbmFyaQorCQkJCUFvYmEta3UKKwkJCQlTZW5kYWkgTWl5YWdpLWtlbiA5ODktMzIwNAorCQkJCUpBUEFOCisKKzAwLTFBLUIzICAgKGhleCkJCVZJU0lPTklURSBJTkMuCiswMDFBQjMgICAgIChiYXNlIDE2KQkJVklTSU9OSVRFIElOQy4KKwkJCQkjNzA3IERhZXJ5dW5nIFRlY2hub3Rvd24tMiA1NjktMjEKKwkJCQlHYXNhbi1Eb25nIEdldW1jaGVvbi1HdQorCQkJCVNlb3VsICAxNTMtNzcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLUI0ICAgKGhleCkJCUZGRUkgTHRkLgorMDAxQUI0ICAgICAoYmFzZSAxNikJCUZGRUkgTHRkLgorCQkJCUJsb2NrIDIsICBFYXRvbiBDb3VydAorCQkJCUVhdG9uIFJvYWQKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSGVydGZvcmRzaGlyZSBIUDIgN0RSCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUEtQjUgICAoaGV4KQkJSG9tZSBOZXR3b3JrIFN5c3RlbQorMDAxQUI1ICAgICAoYmFzZSAxNikJCUhvbWUgTmV0d29yayBTeXN0ZW0KKwkJCQkxMDcsIEh5dW5kYWkgSS1WYWxseQorCQkJCVNhbmdkYWV3b24gMShpbCktZG9uZywgSnVuZ3dvbi1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2Mi03MTQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtQjYgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMUFCNiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEwOCBXaWxkIEJhc2luIFN0ZSAzNTAKKwkJCQlBdXN0aW4gVFggNzg3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUI3ICAgKGhleCkJCUV0aG9zIE5ldHdvcmtzIExURC4KKzAwMUFCNyAgICAgKGJhc2UgMTYpCQlFdGhvcyBOZXR3b3JrcyBMVEQuCisJCQkJMiBNYXNraXQgU3QuCisJCQkJQnVpbGRpbmcgRCwgUE9Cb3ggNDA5MAorCQkJCUhlcnpsaWEgIDQ2NzY2CisJCQkJSVNSQUVMCisKKzAwLTFBLUI4ICAgKGhleCkJCUFuc2VyaSBDb3Jwb3JhdGlvbgorMDAxQUI4ICAgICAoYmFzZSAxNikJCUFuc2VyaSBDb3Jwb3JhdGlvbgorCQkJCTM1RSBJbmR1c3RyaWFsIFdheQorCQkJCVN1aXRlIDEwMQorCQkJCVJvY2hlc3RlciBOSCAwMzg2NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQjkgICAoaGV4KQkJUE1DCiswMDFBQjkgICAgIChiYXNlIDE2KQkJUE1DCisJCQkJNTYsIGF2ZW51ZSBSYXNwYWlsCisJCQkJU2FpbnQgTWF1ciB2YWwgZGUgbWFybmUgOTQxMDAKKwkJCQlGUkFOQ0UKKworMDAtMUEtQkEgICAoaGV4KQkJQ2F0b24gT3ZlcnNlYXMgTGltaXRlZAorMDAxQUJBICAgICAoYmFzZSAxNikJCUNhdG9uIE92ZXJzZWFzIExpbWl0ZWQKKwkJCQlSb29tIDEwMiwgTm8uIDEwMSwgTGFuZSA5MQorCQkJCUUtU2hhbiBSb2FkLCBQdWRvbmcgRGlzdHJpY3QKKwkJCQlTaGFuZ2hhaSAgMjAwMTI3CisJCQkJQ0hJTkEKKworMDAtMUEtQkIgICAoaGV4KQkJRm9udGFsIFRlY2hub2xvZ3kgSW5jb3Jwb3JhdGlvbgorMDAxQUJCICAgICAoYmFzZSAxNikJCUZvbnRhbCBUZWNobm9sb2d5IEluY29ycG9yYXRpb24KKwkJCQlSbS41MjIsIEJsZGcuIDUyLCAxOTUsIFNlYy4gNCwgQ2h1bmdIc2luZyBSZC4sIENodXR1bmcKKwkJCQlIc2luY2h1ICAzMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLUJDICAgKGhleCkJCVU0RUEgVGVjaG5vbG9naWVzIEx0ZAorMDAxQUJDICAgICAoYmFzZSAxNikJCVU0RUEgVGVjaG5vbG9naWVzIEx0ZAorCQkJCUNpdHkgUG9pbnQKKwkJCQlUZW1wbGUgR2F0ZQorCQkJCUJyaXN0b2wgIEJTMSA2UEwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQS1CRCAgIChoZXgpCQlJbXBhdGljYSBJbmMuCiswMDFBQkQgICAgIChiYXNlIDE2KQkJSW1wYXRpY2EgSW5jLgorCQkJCTIwNS0xNzI1IFN0LiBMYXVyZW50IEJsdmQuCisJCQkJT3R0YXdhIE9OIEsxRyAzVjQKKwkJCQlDQU5BREEKKworMDAtMUEtQkUgICAoaGV4KQkJQ09NUFVURVIgSEktVEVDSCBJTkMuCiswMDFBQkUgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgSEktVEVDSCBJTkMuCisJCQkJSGlnYXNoaVVlbm8zLTE4LTcKKwkJCQlUYWl0b2t1IFRva3lvIDExMC0wMDE1CisJCQkJSkFQQU4KKworMDAtMUEtQkYgICAoaGV4KQkJVFJVTVBGIExhc2VyIE1hcmtpbmcgU3lzdGVtcyBBRworMDAxQUJGICAgICAoYmFzZSAxNikJCVRSVU1QRiBMYXNlciBNYXJraW5nIFN5c3RlbXMgQUcKKwkJCQlBdXNzZXJmZWxkCisJCQkJR3J1ZXNjaCBHUiA3MjE0CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUEtQzAgICAoaGV4KQkJSk9ZQklFTiBURUNITk9MT0dJRVMgQ08uLCBMVEQuCiswMDFBQzAgICAgIChiYXNlIDE2KQkJSk9ZQklFTiBURUNITk9MT0dJRVMgQ08uLCBMVEQuCisJCQkJMThGLTEsIE5PLjcwMCwgWkhPTkdaSEVORyBSRC4sCisJCQkJWkhPTkdIRSBDSVRZICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLUMxICAgKGhleCkJCTNDb20gTHRkCiswMDFBQzEgICAgIChiYXNlIDE2KQkJM0NvbSBMdGQKKwkJCQlQZW9wbGVidWlsZGluZyAyCisJCQkJUGVvcGxlYnVpbGRpbmcgRXN0YXRlLCBNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSGVydHMgSFAyIDROVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFBLUMyICAgKGhleCkJCVlFQyBDby4sTHRkLgorMDAxQUMyICAgICAoYmFzZSAxNikJCVlFQyBDby4sTHRkLgorCQkJCTU0My05IFRzdXJ1bWEKKwkJCQlNYWNoaWRhIFRva3lvIDE5NC0wMDA0CisJCQkJSkFQQU4KKworMDAtMUEtQzMgICAoaGV4KQkJU2NpZW50aWZpYy1BdGxhbnRhLCBJbmMKKzAwMUFDMyAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljLUF0bGFudGEsIEluYworCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlBVEwgMS4zLjQ3MworCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUM0ICAgKGhleCkJCTJXaXJlLCBJbmMKKzAwMUFDNCAgICAgKGJhc2UgMTYpCQkyV2lyZSwgSW5jCisJCQkJMTcwNCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQzUgICAoaGV4KQkJQnJlYWtpbmdQb2ludCBTeXN0ZW1zLCBJbmMuCiswMDFBQzUgICAgIChiYXNlIDE2KQkJQnJlYWtpbmdQb2ludCBTeXN0ZW1zLCBJbmMuCisJCQkJMzkwMCBOLiBDYXBpdGFsIG9mIFRleGFzIEh3eQorCQkJCVN1aXRlIDE4MAorCQkJCUF1c3RpbiBUWCA3ODc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQzYgICAoaGV4KQkJTWljcm8gQ29udHJvbCBEZXNpZ25zCiswMDFBQzYgICAgIChiYXNlIDE2KQkJTWljcm8gQ29udHJvbCBEZXNpZ25zCisJCQkJMTc0OTAgQ2FyaWJvdSBEcgorCQkJCU1vbnVtZW50IENvLiA4MDEzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQzcgICAoaGV4KQkJVU5JUE9JTlQKKzAwMUFDNyAgICAgKGJhc2UgMTYpCQlVTklQT0lOVAorCQkJCTdGIEd3YW5nc3VuZyBCbGQgODMxLTQ3IFllb2tTYW0tRG9uZworCQkJCUthbmduYW0tR3UgU2VvdWwgMTM1LTkzNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS1DOCAgIChoZXgpCQlJU0wgKEluc3RydW1lbnRhdGlvbiBTY2llbnRpZmlxdWUgZGUgTGFib3JhdG9pcmUpCiswMDFBQzggICAgIChiYXNlIDE2KQkJSVNMIChJbnN0cnVtZW50YXRpb24gU2NpZW50aWZpcXVlIGRlIExhYm9yYXRvaXJlKQorCQkJCUltcGFzc2UgZGVzIDQgdmVudHMKKwkJCQlQYXJjIGQnQWN0aXZpdGUgZGUgbGEgTWVzbmlsbGllcmUKKwkJCQlWRVJTT04gQ0FMVkFET1MgMTQ3OTAKKwkJCQlGUkFOQ0UKKworMDAtMUEtQzkgICAoaGV4KQkJU1VaVUtFTiBDTy4sTFRECiswMDFBQzkgICAgIChiYXNlIDE2KQkJU1VaVUtFTiBDTy4sTFRECisJCQkJU1VaVUtFTiBUT01FSSBCTERHLgorCQkJCTI2IEhJTUVXQUtBLUNITyBNRUlUTy1LVQorCQkJCU5BR09ZQS1TSSBBSUNISS1LRU4gNDY1LTAwNDUKKwkJCQlKQVBBTgorCiswMC0xQS1DQSAgIChoZXgpCQlUaWxlcmEgQ29ycG9yYXRpb24KKzAwMUFDQSAgICAgKGJhc2UgMTYpCQlUaWxlcmEgQ29ycG9yYXRpb24KKwkJCQkxOTAwIFdlc3QgUGFyayBEcml2ZQorCQkJCVN1aXRlIDI5MAorCQkJCVdlc3Rib3JvdWdoIE1BIDAxNTgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1DQiAgIChoZXgpCQlBdXRvY29tIFByb2R1Y3RzIEx0ZAorMDAxQUNCICAgICAoYmFzZSAxNikJCUF1dG9jb20gUHJvZHVjdHMgTHRkCisJCQkJVW5pdCA0IFRhY2hicm9vayBMaW5rLCBUYWNoYnJvb2sgUGFyayBEcml2ZQorCQkJCVdhcndpY2sgV2Fyd2lja3NoaXJlIENWMzQgNlJICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUEtQ0MgICAoaGV4KQkJQ2VsZXN0aWFsIFNlbWljb25kdWN0b3IsIEx0ZAorMDAxQUNDICAgICAoYmFzZSAxNikJCUNlbGVzdGlhbCBTZW1pY29uZHVjdG9yLCBMdGQKKwkJCQlVZ2xhbmQgSG91c2UsIFNvdXRoIENodXJjaCBTdHJlZXQsCisJCQkJIENheW1hbiBJc2xhbmRzCisJCQkJR2VvcmdlIFRvd24sICBDYXltYW4gSXNsYW5kcyAwMDAwMAorCQkJCUNBWU1BTiBJU0xBTkRTCisKKzAwLTFBLUNEICAgKGhleCkJCVRpZGVsIEVuZ2luZWVyaW5nIExQCiswMDFBQ0QgICAgIChiYXNlIDE2KQkJVGlkZWwgRW5naW5lZXJpbmcgTFAKKwkJCQkyMDI1IFcgQmVsdCBMaW5lIFJvYWQgU3VpdGUgMTE0CisJCQkJQ2Fycm9sbHRvbiBUWCA3NTAxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQ0UgICAoaGV4KQkJWVVQSVRFUlUgQ09SUE9SQVRJT04KKzAwMUFDRSAgICAgKGJhc2UgMTYpCQlZVVBJVEVSVSBDT1JQT1JBVElPTgorCQkJCTMsIERhbm5vdWUsIEl3YXp1LWNobywgT2themFraS1jaXR5LCBBaWNoaQorCQkJCU9rYXpha2kgQWljaGkgNDQ0LTIxNDQKKwkJCQlKQVBBTgorCiswMC0xQS1DRiAgIChoZXgpCQlDLlQuIEVMRVRUUk9OSUNBCiswMDFBQ0YgICAgIChiYXNlIDE2KQkJQy5ULiBFTEVUVFJPTklDQQorCQkJCVZpYSBDYWR1dGkgZGkgTmFzc2lyaXlhIDUgQgorCQkJCUJhcmJlcmlubyBWYWwgRCdFbHNhIChGSSkgIDUwMDIxCisJCQkJSVRBTFkKKworMDAtMUEtRDAgICAoaGV4KQkJQWxiaXMgVGVjaG5vbG9naWVzIEFHCiswMDFBRDAgICAgIChiYXNlIDE2KQkJQWxiaXMgVGVjaG5vbG9naWVzIEFHCisJCQkJQWxiaXNyaWVkZXJzdHJhc3NlIDE5OQorCQkJCUNIIDgwNDcgWnVlcmljaCAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xQS1EMSAgIChoZXgpCQlGQVJHTyBDTy4sIExURC4KKzAwMUFEMSAgICAgKGJhc2UgMTYpCQlGQVJHTyBDTy4sIExURC4KKwkJCQk0Ri4gS1lFTVlVTkcgQi9ECisJCQkJMTY1LTQgU0FNU1VORy1ET05HLCBLQU5HTkFNLUtVCisJCQkJU0VPVUwgIDEzNSA4ODUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtRDIgICAoaGV4KQkJRWxldHJvbmljYSBOaXRyb24gTHRkYQorMDAxQUQyICAgICAoYmFzZSAxNikJCUVsZXRyb25pY2EgTml0cm9uIEx0ZGEKKwkJCQlSdWEgRHIuIFVsaXNzZXMgRXNjb2JhciA0MTUKKwkJCQlKYXJkaW0gVmlzdGEgQWxlZ3JlCisJCQkJQ2FtYW5kdWNhaWEgTWluYXMgR2VyYWlzIDM3NjUwLTAwMAorCQkJCUJSQVpJTAorCiswMC0xQS1EMyAgIChoZXgpCQlWYW1wIEx0ZC4KKzAwMUFEMyAgICAgKGJhc2UgMTYpCQlWYW1wIEx0ZC4KKwkJCQlQTyBCb3ggODEwCisJCQkJVmFhc2EgIDY1MTAxCisJCQkJRklOTEFORAorCiswMC0xQS1ENCAgIChoZXgpCQlpUE9YIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFBRDQgICAgIChiYXNlIDE2KQkJaVBPWCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTE1Ri0xLCBOby4xODYsIEppYW4tWWkgUmQuLCBDaHVuZy1IbyBDaXR5LAorCQkJCVRhaXBlaSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS1ENSAgIChoZXgpCQlLTUMgQ0hBSU4gSU5EVVNUUklBTCBDTy4sIExURC4KKzAwMUFENSAgICAgKGJhc2UgMTYpCQlLTUMgQ0hBSU4gSU5EVVNUUklBTCBDTy4sIExURC4KKwkJCQk3Ri04LCBOby4gODEsIFN1aS1MaWggUmQuLCBIc2luY2h1CisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS1ENiAgIChoZXgpCQlKSUFHTlNVIEFFVE5BIEVMRUNUUklDIENPLixMVEQKKzAwMUFENiAgICAgKGJhc2UgMTYpCQlKSUFHTlNVIEFFVE5BIEVMRUNUUklDIENPLixMVEQKKwkJCQlOTy41NzEgUUlBTkhVIFJPQUQsUUlBTlFJQU8gSU5EVVNUUlkgUEFSSyxXVVhJLEpJQU5HU1UsQ0hJTkEKKwkJCQlXVVhJIEpJQU5HU1UgMjE0MTUxCisJCQkJQ0hJTkEKKworMDAtMUEtRDcgICAoaGV4KQkJQ2hyaXN0aWUgRGlnaXRhbCBTeXN0ZW1zLCBJbmMuCiswMDFBRDcgICAgIChiYXNlIDE2KQkJQ2hyaXN0aWUgRGlnaXRhbCBTeXN0ZW1zLCBJbmMuCisJCQkJODA5IFdlbGxpbmd0b24gU3RyZWV0IE5vcnRoCisJCQkJS2l0Y2hlbmVyIE9udGFyaW8gTjJHIDRZNworCQkJCUNBTkFEQQorCiswMC0xQS1EOCAgIChoZXgpCQlBbHN0ZXJBZXJvIEdtYkgKKzAwMUFEOCAgICAgKGJhc2UgMTYpCQlBbHN0ZXJBZXJvIEdtYkgKKwkJCQlMdWJlY2tlciBTdHJhc3NlIDEKKwkJCQlIYW1idXJnICAyMjA4NworCQkJCUdFUk1BTlkKKworMDAtMUEtRDkgICAoaGV4KQkJSW50ZXJuYXRpb25hbCBCcm9hZGJhbmQgRWxlY3RyaWMgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMUFEOSAgICAgKGJhc2UgMTYpCQlJbnRlcm5hdGlvbmFsIEJyb2FkYmFuZCBFbGVjdHJpYyBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTI4NSBEdW5sb3AgQmx2ZC4gU1cKKwkJCQlTdWl0ZSBLCisJCQkJSHVudHN2aWxsZSBBTCAzNTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtREEgICAoaGV4KQkJQml6LTItTWUgSW5jLgorMDAxQURBICAgICAoYmFzZSAxNikJCUJpei0yLU1lIEluYy4KKwkJCQkxMzAxIFdlc3QgRWF1IEdhbGxpZSBCbHZkCisJCQkJU3VpdGUgMTA2CisJCQkJTWVsYm91cm5lIEZMIDMyOTM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1EQiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxQURCICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4uIEh3eSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtREMgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUFEQyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUEtREQgICAoaGV4KQkJUGVQV2F2ZSBMdGQKKzAwMUFERCAgICAgKGJhc2UgMTYpCQlQZVBXYXZlIEx0ZAorCQkJCTE3L0YuLCBQYXJrIEJ1aWxkaW5nLAorCQkJCTQ3NiBDYXN0bGUgUGVhayBSb2FkCisJCQkJQ2hldW5nIFNoYSBXYW4gS293bG9vbiAKKwkJCQlIT05HIEtPTkcKKworMDAtMUEtREUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUFERSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLURGICAgKGhleCkJCUludGVyYWN0aXZldHYgUHR5IExpbWl0ZWQKKzAwMUFERiAgICAgKGJhc2UgMTYpCQlJbnRlcmFjdGl2ZXR2IFB0eSBMaW1pdGVkCisJCQkJU3VpdGUgMTAgTGV2ZWwgMworCQkJCTU2IEJvd21hbiBTdHJlZXQKKwkJCQlQeXJtb250LCBTeWRuZXkgTlNXIDIwMDkKKwkJCQlBVVNUUkFMSUEKKworMDAtMUEtRTAgICAoaGV4KQkJTXl0aG9sb2d5IFRlY2ggRXhwcmVzcyBJbmMuCiswMDFBRTAgICAgIChiYXNlIDE2KQkJTXl0aG9sb2d5IFRlY2ggRXhwcmVzcyBJbmMuCisJCQkJMkYsIE5vLjEwLCBMYW5lIDIzNSwgQmFvIENoaWFvIHJvYWQsCisJCQkJSHNpbi1UaWVuLgorCQkJCVRhaXBlaSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS1FMSAgIChoZXgpCQlFREdFIEFDQ0VTUyBJTkMKKzAwMUFFMSAgICAgKGJhc2UgMTYpCQlFREdFIEFDQ0VTUyBJTkMKKwkJCQk1NDQwIEJFQVVNT05UIENFTlRFUiBCTFZECisJCQkJU1VJVEUgNDkwCisJCQkJVEFNUEEgRkwgMzM2MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUUyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUFFMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUUzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUFFMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUU0ICAgKGhleCkJCU1lZGljaXMgVGVjaG5vbG9naWVzIENvcnBvcmF0aW9uCiswMDFBRTQgICAgIChiYXNlIDE2KQkJTWVkaWNpcyBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24KKwkJCQkxMTgxOCBOb3J0aCBDcmVlayBQYXJrd2F5IE4uCisJCQkJQm90aGVsbCBXQSA5ODAxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRTUgICAoaGV4KQkJTXZveCBUZWNobm9sb2dpZXMgSW5jLgorMDAxQUU1ICAgICAoYmFzZSAxNikJCU12b3ggVGVjaG5vbG9naWVzIEluYy4KKwkJCQkxOTA1MCBQcnVuZXJpZGdlIEF2ZQorCQkJCVN0ZS4gMTI4CisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1FNiAgIChoZXgpCQlBdGxhbnRhIEFkdmFuY2VkIENvbW11bmljYXRpb25zIEhvbGRpbmdzIExpbWl0ZWQKKzAwMUFFNiAgICAgKGJhc2UgMTYpCQlBdGxhbnRhIEFkdmFuY2VkIENvbW11bmljYXRpb25zIEhvbGRpbmdzIExpbWl0ZWQKKwkJCQkxOTAwIFdlc3QgT2FrIENpcmNsZSwgTWFyaWV0dGEKKwkJCQlBdGxhbnRhIEdlb3JnaWEgMzAwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUU3ICAgKGhleCkJCUF6dGVrIE5ldHdvcmtzLCBJbmMuCiswMDFBRTcgICAgIChiYXNlIDE2KQkJQXp0ZWsgTmV0d29ya3MsIEluYy4KKwkJCQkyNDc3IDU1dGggU3QuICMyMDIKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1FOCAgIChoZXgpCQlTaWVtZW5zIEVudGVycHJpc2UgQ29tbXVuaWNhdGlvbnMgR21iSCAmIENvLiBLRworMDAxQUU4ICAgICAoYmFzZSAxNikJCVNpZW1lbnMgRW50ZXJwcmlzZSBDb21tdW5pY2F0aW9ucyBHbWJIICYgQ28uIEtHCisJCQkJU0VOIFNDIE1DCisJCQkJSG9mbWFubnN0cmFzc2UgNTEKKwkJCQlNdW5pY2ggODEzNzkKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLUU5ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAxQUU5ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFBLUVBICAgKGhleCkJCVJhZGlvIFRlcm1pbmFsIFN5c3RlbXMgUHR5IEx0ZAorMDAxQUVBICAgICAoYmFzZSAxNikJCVJhZGlvIFRlcm1pbmFsIFN5c3RlbXMgUHR5IEx0ZAorCQkJCTFzdCBGbG9vcgorCQkJCTEwOCBEb2hlcnR5cyBSb2FkCisJCQkJTGF2ZXJ0b24gTm9ydGggVmljdG9yaWEgMzAyNgorCQkJCUFVU1RSQUxJQQorCiswMC0xQS1FQiAgIChoZXgpCQlBbGxpZWQgVGVsZXNpcyBLLksuCiswMDFBRUIgICAgIChiYXNlIDE2KQkJQWxsaWVkIFRlbGVzaXMgSy5LLgorCQkJCU5vLjIgVE9DIEJsZGcuCisJCQkJNy0yMS0xMSBOaXNoaS1Hb3RhbmRhCisJCQkJU2hpbmFnYXdhLWt1IFRva3lvIDE0MS0wMDMxCisJCQkJSkFQQU4KKworMDAtMUEtRUMgICAoaGV4KQkJS2V1bWJlZSBFbGVjdHJvbmljcyBDby4sTHRkLgorMDAxQUVDICAgICAoYmFzZSAxNikJCUtldW1iZWUgRWxlY3Ryb25pY3MgQ28uLEx0ZC4KKwkJCQkzLTI2LCBKYW5nc2FuZy1kb25nLCBTYW5ncm9rLWd1CisJCQkJQW5zYW4tc2kgS3l1bmdraS1kbyA0MjYtNDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLUVEICAgKGhleCkJCUlOQ09URUMgR21iSAorMDAxQUVEICAgICAoYmFzZSAxNikJCUlOQ09URUMgR21iSAorCQkJCUJsb21lc3RyYXNzZSAyNSAtIDI3CisJCQkJQmllbGVmZWxkIE5SVyAzMzYwOQorCQkJCUdFUk1BTlkKKworMDAtMUEtRUUgICAoaGV4KQkJU2hlbnp0ZWNoIEx0ZAorMDAxQUVFICAgICAoYmFzZSAxNikJCVNoZW56dGVjaCBMdGQKKwkJCQk4MTMsIDhGLCBIT0xMWVdPT0QgUExBWkEsIDYxMCBOQVRIQU4gUk9BRCwKKwkJCQlLT1dMT09OICA4NTIKKwkJCQlIT05HIEtPTkcKKworMDAtMUEtRUYgICAoaGV4KQkJTG9vcGNvbW0gVGVjaG5vbG9neSwgSW5jLgorMDAxQUVGICAgICAoYmFzZSAxNikJCUxvb3Bjb21tIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxOEYtMSwgTm8uIDE1MCwgSmlhbiBZaSBSZC4sCisJCQkJQ2h1bmctSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS1GMCAgIChoZXgpCQlBbGNhdGVsIC0gSVBECiswMDFBRjAgICAgIChiYXNlIDE2KQkJQWxjYXRlbCAtIElQRAorCQkJCTcwMSBFLiBNaWRkbGVmaWVsZCBSZC4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1GMSAgIChoZXgpCQlFbWJlZGRlZCBBcnRpc3RzIEFCCiswMDFBRjEgICAgIChiYXNlIDE2KQkJRW1iZWRkZWQgQXJ0aXN0cyBBQgorCQkJCVNvZHJhIFByb21lbmFkZW4gNTEKKwkJCQlNYWxtb2UgIDIxMSAzOAorCQkJCVNXRURFTgorCiswMC0xQS1GMiAgIChoZXgpCQlEeW5hdmlzaW9ucyBTY2h3ZWl6IEFHCiswMDFBRjIgICAgIChiYXNlIDE2KQkJRHluYXZpc2lvbnMgU2Nod2VpeiBBRworCQkJCUZyZWlzaW5nZXIgTGFuZHN0cmFzc2UgMjEKKwkJCQlELTgwOTM5IE11ZW5jaGVuIAorCQkJCUdFUk1BTlkKKworMDAtMUEtRjMgICAoaGV4KQkJU2FteW91bmcgRWxlY3Ryb25pY3MKKzAwMUFGMyAgICAgKGJhc2UgMTYpCQlTYW15b3VuZyBFbGVjdHJvbmljcworCQkJCTE0Ni0xLCBzYW5nZGFld29uLWRvbmcsIGpvb25nd29uLWd1CisJCQkJc3VuZ25hbS1zaGkgR3l1bmdnaS1kbyA0NjItODA3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLUY0ICAgKGhleCkJCUhhbmRyZWFtbmV0CiswMDFBRjQgICAgIChiYXNlIDE2KQkJSGFuZHJlYW1uZXQKKwkJCQkjMTIwOSBNYXJpb1Rvd2VyLCAyMjItMTIKKwkJCQlHdXJvLURvbmcsIEd1cm8tR3UKKwkJCQlTZW91bCAgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS1GNSAgIChoZXgpCQlQRU5UQU9ORS4gQ08uLCBMVEQuCiswMDFBRjUgICAgIChiYXNlIDE2KQkJUEVOVEFPTkUuIENPLiwgTFRELgorCQkJCUh5byBDaGFuZyBCbGRnLCAzRiwgMTAxMy02LCBJbmt5ZS1kb25nIFBhbGRhbC1HdSwKKwkJCQlTdXdvbiBDaXR5IEd5dW5nZ2ktRG8gNDIyLTgzMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS1GNiAgIChoZXgpCQlXb3ZlbiBTeXN0ZW1zLCBJbmMuCiswMDFBRjYgICAgIChiYXNlIDE2KQkJV292ZW4gU3lzdGVtcywgSW5jLgorCQkJCTI0NTUgQXVndXN0aW5lIERyaXZlCisJCQkJU3VpdGUgMjExCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUY3ICAgKGhleCkJCWRhdGFzY2hhbHQgZSthIEdtYkgKKzAwMUFGNyAgICAgKGJhc2UgMTYpCQlkYXRhc2NoYWx0IGUrYSBHbWJICisJCQkJQW4gZGVyIEh1bHNob3JzdCA3LTkKKwkJCQlMdWJlY2sgIDIzNTY4CisJCQkJR0VSTUFOWQorCiswMC0xQS1GOCAgIChoZXgpCQlDb3BsZXkgQ29udHJvbHMgQ29ycG9yYXRpb24KKzAwMUFGOCAgICAgKGJhc2UgMTYpCQlDb3BsZXkgQ29udHJvbHMgQ29ycG9yYXRpb24KKwkJCQkyMCBEYW4gUm9hZAorCQkJCUNhbnRvbiBNQSAwMjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRjkgICAoaGV4KQkJQWVyb1ZJcm9ubWVudCAoQVYgSW5jKQorMDAxQUY5ICAgICAoYmFzZSAxNikJCUFlcm9WSXJvbm1lbnQgKEFWIEluYykKKwkJCQk0Njg1IEluZHVzdHJpYWwgU3QKKwkJCQlQTyBBMTgyNzEKKwkJCQlTaW1pIFZhbGxleSBDQSA5MzA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRkEgICAoaGV4KQkJV2VsY2ggQWxseW4sIEluYy4KKzAwMUFGQSAgICAgKGJhc2UgMTYpCQlXZWxjaCBBbGx5biwgSW5jLgorCQkJCTQ2MTkgSm9yZGFuIFJvYWQKKwkJCQlQTyBCb3ggMTg3CisJCQkJU2thbmVhdGVsZXMgRmFsbHMgTlkgMTMxNTMtMDE4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRkIgICAoaGV4KQkJSm9ieSBJbmMuCiswMDFBRkIgICAgIChiYXNlIDE2KQkJSm9ieSBJbmMuCisJCQkJMTUzNSBNaXNzaW9uIFN0LgorCQkJCUZsb29yIDIKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1GQyAgIChoZXgpCQlNb2R1c0xpbmsgQ29ycG9yYXRpb24KKzAwMUFGQyAgICAgKGJhc2UgMTYpCQlNb2R1c0xpbmsgQ29ycG9yYXRpb24KKwkJCQkyOTA1IFByZXN0b253b29kIERyaXZlCisJCQkJUGxhbm8gVGV4YXMgNzUwOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUZEICAgKGhleCkJCUVWT0xJUworMDAxQUZEICAgICAoYmFzZSAxNikJCUVWT0xJUworCQkJCTI5IGF2ZW51ZSBkZSBsYSBmb250YWluZQorCQkJCVpJIEFuZ2VycyBiZWF1Y291emUKKwkJCQlCZWF1Y291emUgIDQ5MDcwCisJCQkJRlJBTkNFCisKKzAwLTFBLUZFICAgKGhleCkJCVNPRkFDUkVBTAorMDAxQUZFICAgICAoYmFzZSAxNikJCVNPRkFDUkVBTAorCQkJCTE0OSBhdmVudWUgZHUgTUFJTkUKKwkJCQlQQVJJUyBSZWdpb24gUGFyaXNpZW5uZSA3NTAxNAorCQkJCUZSQU5DRQorCiswMC0xQS1GRiAgIChoZXgpCQlXaXp5b3VuZyBUZWNoLgorMDAxQUZGICAgICAoYmFzZSAxNikJCVdpenlvdW5nIFRlY2guCisJCQkJOUYsIE5vLiAyNSwgU2VjLiAxLCBOYW5qaW5nIEUuIFJkLgorCQkJCVRhaXBlaSAgMTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi0wMCAgIChoZXgpCQlOZW9wb3N0IFRlY2hub2xvZ2llcworMDAxQjAwICAgICAoYmFzZSAxNikJCU5lb3Bvc3QgVGVjaG5vbG9naWVzCisJCQkJMTEzIHJ1ZSBKZWFuLU1hcmluIE5hdWRpbgorCQkJCUJhZ25ldXggIDkyMjIwCisJCQkJRlJBTkNFCisKKzAwLTFCLTAxICAgKGhleCkJCUFwcGxpZWQgUmFkaW8gVGVjaG5vbG9naWVzCiswMDFCMDEgICAgIChiYXNlIDE2KQkJQXBwbGllZCBSYWRpbyBUZWNobm9sb2dpZXMKKwkJCQkxMTI0IFNvdXRoIFNlcnZpY2UgUm9hZCBXZXN0CisJCQkJT2FrdmlsbGUgT250YXJpbyBMNkwgNVQ3CisJCQkJQ0FOQURBCisKKzAwLTFCLTAyICAgKGhleCkJCUVEIENvLkx0ZAorMDAxQjAyICAgICAoYmFzZSAxNikJCUVEIENvLkx0ZAorCQkJCTUxNy0xNSBTYW5nRGFlV29uLURvbmcKKwkJCQlTZW9uZ05hbS1DaXR5IEd5ZW9uZ0dpLURvIDQ2Mi04MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItMDMgICAoaGV4KQkJQWN0aW9uIFRlY2hub2xvZ3kgKFNaKSBDby4sIEx0ZAorMDAxQjAzICAgICAoYmFzZSAxNikJCUFjdGlvbiBUZWNobm9sb2d5IChTWikgQ28uLCBMdGQKKwkJCQlBY3Rpb24gVGVjaG5vbG9neSBCdWlsZGluZyBCYW95dWFuIFJvYWQsIFhpeGlhbmcsIEJhbydhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDIKKwkJCQlDSElOQQorCiswMC0xQi0wNCAgIChoZXgpCQlBZmZpbml0eSBJbnRlcm5hdGlvbmFsIFMucC5hCiswMDFCMDQgICAgIChiYXNlIDE2KQkJQWZmaW5pdHkgSW50ZXJuYXRpb25hbCBTLnAuYQorCQkJCUMuc28gU2F2b25hIDUxCisJCQkJVmlsbGFzdGVsbG9uZSBUb3Jpbm8gSTEwMDI5CisJCQkJSVRBTFkKKworMDAtMUItMDUgICAoaGV4KQkJWU1DIEFHCiswMDFCMDUgICAgIChiYXNlIDE2KQkJWU1DIEFHCisJCQkJU29ubmVuc3RyYXNzZSA0CisJCQkJS3JldXpsaW5nZW4gVGh1cmdhdSA4MjgwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUItMDYgICAoaGV4KQkJQXRlbGllcnMgUi4gTEFVTU9OSUVSCiswMDFCMDYgICAgIChiYXNlIDE2KQkJQXRlbGllcnMgUi4gTEFVTU9OSUVSCisJCQkJMTEsIHJ1ZSBkdSBDaGVuaXZhbAorCQkJCUJQIDEKKwkJCQlOZXNsZXMgbGEgVmFsbGVlIFZhbCBkJ09pc2UgOTU2OTAKKwkJCQlGUkFOQ0UKKworMDAtMUItMDcgICAoaGV4KQkJTWVuZG9jaW5vIFNvZnR3YXJlCiswMDFCMDcgICAgIChiYXNlIDE2KQkJTWVuZG9jaW5vIFNvZnR3YXJlCisJCQkJNDcwMDEgQmVuZWNpYSBTdC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0wOCAgIChoZXgpCQlEYW5mb3NzIERyaXZlcyBBL1MKKzAwMUIwOCAgICAgKGJhc2UgMTYpCQlEYW5mb3NzIERyaXZlcyBBL1MKKwkJCQlVbHNuYWVzIDEKKwkJCQlHcmFhc3RlbiA2MzAwIAorCQkJCURFTk1BUksKKworMDAtMUItMDkgICAoaGV4KQkJTWF0cml4IFRlbGVjb20gUHZ0LiBMdGQuCiswMDFCMDkgICAgIChiYXNlIDE2KQkJTWF0cml4IFRlbGVjb20gUHZ0LiBMdGQuCisJCQkJMzk0LCBHSURDLCBNYWthcnB1cmEsCisJCQkJVmFkb2RhcmEgR3VqYXJhdCAzOTAwMTAKKwkJCQlJTkRJQQorCiswMC0xQi0wQSAgIChoZXgpCQlJbnRlbGxpZ2VudCBEaXN0cmlidXRlZCBDb250cm9scyBMdGQKKzAwMUIwQSAgICAgKGJhc2UgMTYpCQlJbnRlbGxpZ2VudCBEaXN0cmlidXRlZCBDb250cm9scyBMdGQKKwkJCQlLZXluZXMgSG91c2UsIENoZXN0ZXIgUGFyaworCQkJCUFsZnJldG9uIFJvYWQKKwkJCQlEZXJieSBEZXJieXNoaXJlIERFMjEgNEFTCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUItMEIgICAoaGV4KQkJUGhpZGdldHMgSW5jLgorMDAxQjBCICAgICAoYmFzZSAxNikJCVBoaWRnZXRzIEluYy4KKwkJCQkyNzE1QSAxNkEgU3RyZWV0IE4uVy4KKwkJCQlDYWxnYXJ5IEFsYmVydGEgVDJNIDNSNworCQkJCUNBTkFEQQorCiswMC0xQi0wQyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFCMEMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0wRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFCMEQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0wRSAgIChoZXgpCQlJbm9UZWMgR21iSCBPcmdhbmlzYXRpb25zc3lzdGVtZQorMDAxQjBFICAgICAoYmFzZSAxNikJCUlub1RlYyBHbWJIIE9yZ2FuaXNhdGlvbnNzeXN0ZW1lCisJCQkJQmllZHJpY2hzdHJhc3NlIDExCisJCQkJV29lbGZlcnNoZWltIEhlc3NlbiBELTYxMjAwCisJCQkJR0VSTUFOWQorCiswMC0xQi0wRiAgIChoZXgpCQlQZXRyYXRlYworMDAxQjBGICAgICAoYmFzZSAxNikJCVBldHJhdGVjCisJCQkJRGVyZWNoIEhhLVNoYXJvbiAxMgorCQkJCUtmYXIgU2FiYSBTaGFyb24gNDQyNzEKKwkJCQlJU1JBRUwKKworMDAtMUItMTAgICAoaGV4KQkJU2hlblpoZW4gS2FuZyBIdWkgVGVjaG5vbG9neSBDby4sbHRkCiswMDFCMTAgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gS2FuZyBIdWkgVGVjaG5vbG9neSBDby4sbHRkCisJCQkJQ2hpbmEgIEd1YW5nRG9uZworCQkJCVR3byBzLGZsb29yIEJhb0FuIERpc3RyaWN0IExvbmdIdWEKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTA5CisJCQkJQ0hJTkEKKworMDAtMUItMTEgICAoaGV4KQkJRC1MaW5rIENvcnBvcmF0aW9uCiswMDFCMTEgICAgIChiYXNlIDE2KQkJRC1MaW5rIENvcnBvcmF0aW9uCisJCQkJTk8uMjg5LCBTaW5odSAzcmQgUmQuLAorCQkJCU5laWh1IERpc3RyaWN0LCBUYWlwZWkgQ2l0eSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTEyICAgKGhleCkJCUFwcHJpb24KKzAwMUIxMiAgICAgKGJhc2UgMTYpCQlBcHByaW9uCisJCQkJTmFzYSBBbWVzIFJlcmVhcmNoIENlbnRlcgorCQkJCVAuTy4gQm94IDk1IEJ1aWxkaW5nIDE5IFN1aXRlIDEwMDAKKwkJCQlNb2ZmZXR0IEZpZWxkIENhbGlmb3JuaWEgOTQwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTEzICAgKGhleCkJCUljcm9uIFRlY2hub2xvZ2llcyBDb3Jwb3JhdGlvbgorMDAxQjEzICAgICAoYmFzZSAxNikJCUljcm9uIFRlY2hub2xvZ2llcyBDb3Jwb3JhdGlvbgorCQkJCTIyMSAtIDQ2NjQgTG91Z2hlZWQgSGlnaHdheQorCQkJCUJ1cm5hYnkgQkMgVjVDIDVUNQorCQkJCUNBTkFEQQorCiswMC0xQi0xNCAgIChoZXgpCQlDYXJleCBMaWdodGluZyBFcXVpcG1lbnQgRmFjdG9yeQorMDAxQjE0ICAgICAoYmFzZSAxNikJCUNhcmV4IExpZ2h0aW5nIEVxdWlwbWVudCBGYWN0b3J5CisJCQkJNTAgQ2hhbmcgVGFuZyBSZC4sIFlhbiBUaWFuIERpc3RyaWN0LAorCQkJCUZ1bmdrb25nLCBEb25nR3VhbgorCQkJCUd1YW5nZG9uZyBwcm92aW5jZSAKKwkJCQlDSElOQQorCiswMC0xQi0xNSAgIChoZXgpCQlWb3h0ZWwsIEluYy4KKzAwMUIxNSAgICAgKGJhc2UgMTYpCQlWb3h0ZWwsIEluYy4KKwkJCQkxMjcyNSBTVyBNaWxsaWthbiBXYXkKKwkJCQlTdWl0ZSAyMzAKKwkJCQlCZWF2ZXJ0b24gT1IgOTcwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTE2ICAgKGhleCkJCUNlbHRybyBMdGQuCiswMDFCMTYgICAgIChiYXNlIDE2KQkJQ2VsdHJvIEx0ZC4KKwkJCQlBem9yaW0gQnVzaW5lc3MgUGFyaworCQkJCTk0IEVtIEhtb3NoYXZvdCBSb2FkLgorCQkJCVBldGFjaCBUaWt2YSAgNDk1MjcKKwkJCQlJU1JBRUwKKworMDAtMUItMTcgICAoaGV4KQkJUGFsbyBBbHRvIE5ldHdvcmtzCiswMDFCMTcgICAgIChiYXNlIDE2KQkJUGFsbyBBbHRvIE5ldHdvcmtzCisJCQkJMjEzMCBHb2xkIFN0cmVldCBTdWl0ZSAyMDAKKwkJCQlBbHZpc28gQ0EgOTUwMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTE4ICAgKGhleCkJCVRzdWtlbiBFbGVjdHJpYyBJbmQuIENvLixMdGQKKzAwMUIxOCAgICAgKGJhc2UgMTYpCQlUc3VrZW4gRWxlY3RyaWMgSW5kLiBDby4sTHRkCisJCQkJMy05IEFrZWRvdXJpIEl6dW1pLWt1CisJCQkJU2VuZGFpIENpdHkgTWl5YWdpIDk4MS0zMjA2CisJCQkJSkFQQU4KKworMDAtMUItMTkgICAoaGV4KQkJSUVFRSBJJk0gU29jaWV0eSBUQzkgCiswMDFCMTkgICAgIChiYXNlIDE2KQkJSUVFRSBJJk0gU29jaWV0eSBUQzkgCisJCQkJMTAwIEJ1cmVhdSBEci4sIE1haWwgU3RvcCA4MjIwCisJCQkJR2FpdGhlcnNidXJnIE1EIDIwODk5LTgyMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTFBICAgKGhleCkJCWUtdHJlZXMgSmFwYW4sIEluYy4KKzAwMUIxQSAgICAgKGJhc2UgMTYpCQllLXRyZWVzIEphcGFuLCBJbmMuCisJCQkJT293YWRhLWNobyAyLTktMgorCQkJCURhaXdhdW55dSBibGRnIDNGCisJCQkJSGFjaGlvamktY2l0eSBUb2t5byAxNTAtMDAwMQorCQkJCUpBUEFOCisKKzAwLTFCLTFCICAgKGhleCkJCVNpZW1lbnMgQUcsCiswMDFCMUIgICAgIChiYXNlIDE2KQkJU2llbWVucyBBRywKKwkJCQlJIElBIFNDIEVXSyBQVTEsIE9lc3RsaWNoZSBSaGVpbmJydWVja2Vuc3RyYXNzZSA1MAorCQkJCTc2MTgxLCBLYXJsc3J1aGUgQmFkZW4gV3VlcnR0ZW1iZXJnIAorCQkJCUdFUk1BTlkKKworMDAtMUItMUMgICAoaGV4KQkJQ29oZXJlbnQKKzAwMUIxQyAgICAgKGJhc2UgMTYpCQlDb2hlcmVudAorCQkJCTEyODAgQmx1ZXMgSGlsbHMgQXZlLgorCQkJCUJsb29tZmllbGQgQ1QgMDYwMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTFEICAgKGhleCkJCVBob2VuaXggSW50ZXJuYXRpb25hbCBDby4sIEx0ZAorMDAxQjFEICAgICAoYmFzZSAxNikJCVBob2VuaXggSW50ZXJuYXRpb25hbCBDby4sIEx0ZAorCQkJCTExRi4gTm8uNDItMSwgU2VjLjEsIFpob25neWFuZyBOLiBSZC4gQmVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTFFICAgKGhleCkJCUhBUlQgQ29tbXVuaWNhdGlvbiBGb3VuZGF0aW9uCiswMDFCMUUgICAgIChiYXNlIDE2KQkJSEFSVCBDb21tdW5pY2F0aW9uIEZvdW5kYXRpb24KKwkJCQlTVEUgMS0zNTAKKwkJCQk5MzkwIFJlc2VhcmNoIEJsdmQKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTFGICAgKGhleCkJCURFTFRBIC0gRGFuaXNoIEVsZWN0cm9uaWNzLCBMaWdodCAmIEFjb3VzdGljcworMDAxQjFGICAgICAoYmFzZSAxNikJCURFTFRBIC0gRGFuaXNoIEVsZWN0cm9uaWNzLCBMaWdodCAmIEFjb3VzdGljcworCQkJCVZlbmxpZ2hlZHN2ZWogNAorCQkJCUg/cnNob2xtICBESy0yOTcwCisJCQkJREVOTUFSSworCiswMC0xQi0yMCAgIChoZXgpCQlUUGluZSBUZWNobm9sb2d5CiswMDFCMjAgICAgIChiYXNlIDE2KQkJVFBpbmUgVGVjaG5vbG9neQorCQkJCTNGLCBOby4xLCBBTi1JIFJkLAorCQkJCUtlZWx1bmcgIDExMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItMjEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDFCMjEgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xQi0yMiAgIChoZXgpCQlQYWxpdCBNaWNyb3N5c3RlbXMgKCBILksuKSBMdGQuCiswMDFCMjIgICAgIChiYXNlIDE2KQkJUGFsaXQgTWljcm9zeXN0ZW1zICggSC5LLikgTHRkLgorCQkJCVJvb20gNC02LDExRixOYW4gRnVuZyBDb21tZXJjaWFsIENlbnRlcgorCQkJCTE5IExhbSBMb2sgUm9hZCxLb3dsb29uIEJheQorCQkJCUtvd2xvb24gIDExMQorCQkJCUhPTkcgS09ORworCiswMC0xQi0yMyAgIChoZXgpCQlTaW1wbGVDb21Ub29scworMDAxQjIzICAgICAoYmFzZSAxNikJCVNpbXBsZUNvbVRvb2xzCisJCQkJNTk4IEluZGlhbiBUcmFpbCBSZCBTLgorCQkJCVN1aXRlICMxMDIKKwkJCQlJbmRpYW4gVHJhaWwgTkMgMjgwNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTI0ICAgKGhleCkJCVF1YW50YSBDb21wdXRlciBJbmMuCiswMDFCMjQgICAgIChiYXNlIDE2KQkJUXVhbnRhIENvbXB1dGVyIEluYy4KKwkJCQlOby4gMjExLCBXZW4gSHdhIDJuZCBSZC4sCisJCQkJS3VlaSBTaGFuIEhzaWFuZyBUYW8gWXVhbiBTaGllbiAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTI1ICAgKGhleCkJCU5vcnRlbAorMDAxQjI1ICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xQi0yNiAgIChoZXgpCQlST04tVGVsZWNvbSBaQU8KKzAwMUIyNiAgICAgKGJhc2UgMTYpCQlST04tVGVsZWNvbSBaQU8KKwkJCQkxNSBBLCBaYXJlY2huYXlhIHN0LgorCQkJCVRyZWhnb3JueSBDaGVseWFiaW5zayByZWdpb24gNDU2MDgwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFCLTI3ICAgKGhleCkJCU1lcmxpbiBDU0kKKzAwMUIyNyAgICAgKGJhc2UgMTYpCQlNZXJsaW4gQ1NJCisJCQkJMTI2MjUgRGFuaWVsc29uIENvdXJ0CisJCQkJU3VpdGUgMTA5CisJCQkJUG93YXkgQ0EgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTI4ICAgKGhleCkJCVBPTFlHT04sIEpTQworMDAxQjI4ICAgICAoYmFzZSAxNikJCVBPTFlHT04sIEpTQworCQkJCTM3LzEsIEthcmwgTWFyeCBzdHIuLCBmbG9vciA1CisJCQkJVWZhIEJhc2hrb3J0b3N0YW4gNDUwMDc3CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFCLTI5ICAgKGhleCkJCUF2YW50aXMuQ28uLEx0ZAorMDAxQjI5ICAgICAoYmFzZSAxNikJCUF2YW50aXMuQ28uLEx0ZAorCQkJCTUwMiBTRU9JTCBCTERHLgorCQkJCTE1NDMtOCBTRU9DSE8tRE9ORywgU0VPQ0hPLUdVCisJCQkJU0VPVUwgIDEzMi04NzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItMkEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQjJBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMkIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQjJCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMkMgICAoaGV4KQkJQVRST04gZWxlY3Ryb25pYyBHbWJICiswMDFCMkMgICAgIChiYXNlIDE2KQkJQVRST04gZWxlY3Ryb25pYyBHbWJICisJCQkJQW0gWmllZ2Vsc3RhZGVsIDEyICsgMTQKKwkJCQlNYXJrdCBTY2h3YWJlbiAgODU1NzAKKwkJCQlHRVJNQU5ZCisKKzAwLTFCLTJEICAgKGhleCkJCU1lZC1FbmcgU3lzdGVtcyBJbmMuCiswMDFCMkQgICAgIChiYXNlIDE2KQkJTWVkLUVuZyBTeXN0ZW1zIEluYy4KKwkJCQkyNDAwIFN0LiBMYXVyZW50IEJsdmQuCisJCQkJT3R0YXdhIE9udGFyaW8gSzFHIDZDNAorCQkJCUNBTkFEQQorCiswMC0xQi0yRSAgIChoZXgpCQlTaW5reW8gRWxlY3Ryb24gSW5jCiswMDFCMkUgICAgIChiYXNlIDE2KQkJU2lua3lvIEVsZWN0cm9uIEluYworCQkJCTMtMy0yMSBhc2FoaWdhb2thCisJCQkJaGluby1jaXR5IFRva3lvIDE5MS0wMDY1CisJCQkJSkFQQU4KKworMDAtMUItMkYgICAoaGV4KQkJTkVUR0VBUiBJbmMuCiswMDFCMkYgICAgIChiYXNlIDE2KQkJTkVUR0VBUiBJbmMuCisJCQkJNDUwMCBHcmVhdCBBbWVyaWNhIFBhcmt3YXkKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMzAgICAoaGV4KQkJU29saXRlY2ggSW5jLgorMDAxQjMwICAgICAoYmFzZSAxNikJCVNvbGl0ZWNoIEluYy4KKwkJCQkxODM4IE1haW4gU3RyZWV0CisJCQkJU3RldmVuc3ZpbGxlIE1EIDIxNjY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0zMSAgIChoZXgpCQlOZXVyYWwgSW1hZ2UuIENvLiBMdGQuCiswMDFCMzEgICAgIChiYXNlIDE2KQkJTmV1cmFsIEltYWdlLiBDby4gTHRkLgorCQkJCUEzMDcsIENBU0ksIE9zYWthIFVuaXYuCisJCQkJMi0xLCBZYW1hZGEtb2thCisJCQkJU3VpdGEgY2l0eSBPc2FrYSA1NjUtMDg3MQorCQkJCUpBUEFOCisKKzAwLTFCLTMyICAgKGhleCkJCVFMb2dpYyBDb3Jwb3JhdGlvbgorMDAxQjMyICAgICAoYmFzZSAxNikJCVFMb2dpYyBDb3Jwb3JhdGlvbgorCQkJCTI2NjUwIEFsaXNvIFZpZWpvIFBhcmt3YXkKKwkJCQlBbGlzbyBWaWVqbyBDYWxpZm9ybmlhIDkyNjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0zMyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxQjMzICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xQi0zNCAgIChoZXgpCQlGb2N1cyBTeXN0ZW0gSW5jLgorMDAxQjM0ICAgICAoYmFzZSAxNikJCUZvY3VzIFN5c3RlbSBJbmMuCisJCQkJMTlGLTEsIE5vLiAyNjYgV2VuIEh3YSAybmQgUmQuLCBTZWMuIDEKKwkJCQlMaW5rb3UgVGFpcGVpIENvdW50eSAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTM1ICAgKGhleCkJCUNob25nUWluZyBKSU5PVSBTY2llbmNlICYgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDTy4sTHRkCiswMDFCMzUgICAgIChiYXNlIDE2KQkJQ2hvbmdRaW5nIEpJTk9VIFNjaWVuY2UgJiBUZWNobm9sb2d5IERldmVsb3BtZW50IENPLixMdGQKKwkJCQlDaHVhbmd5ZXl1YW4gMjA4IyBLZXl1YW4gM3JkIFJvYWQgMTA2IworCQkJCSBIaS1UZWNoIERldmVsb3BtZW50IFpvbmUKKwkJCQlDaG9uZ3FpbmcgIDQwMDAzMAorCQkJCUNISU5BCisKKzAwLTFCLTM2ICAgKGhleCkJCVRzdWJhdGEgRW5naW5lZXJpbmcgQ28uLEx0ZC4gKEhlYWQgT2ZmaWNlKQorMDAxQjM2ICAgICAoYmFzZSAxNikJCVRzdWJhdGEgRW5naW5lZXJpbmcgQ28uLEx0ZC4gKEhlYWQgT2ZmaWNlKQorCQkJCUtveWFuYWdpIDEtMgorCQkJCVNlbmp1IGJsZC4KKwkJCQlJYmFyYWtpIE9zYWthIDU2Ny0wODUyCisJCQkJSkFQQU4KKworMDAtMUItMzcgICAoaGV4KQkJQ29tcHV0ZWMgT3kKKzAwMUIzNyAgICAgKGJhc2UgMTYpCQlDb21wdXRlYyBPeQorCQkJCUp1aG9sYW5rYXR1IDgKKwkJCQlQTCA2NgorCQkJCUtvdXZvbGEgS3ltaSA0NTIwMAorCQkJCUZJTkxBTkQKKworMDAtMUItMzggICAoaGV4KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIExURC4KKzAwMUIzOCAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELgorCQkJCU5PLiAyNSwgVEhFIDNSRCBBVkVOVUUKKwkJCQlLVU5TSEFOIEVYUE9SVCBQUk9DRVNTSU5HIFpPTkUKKwkJCQlLVU5TSEFOIENJVFkgU1VaSE9VIFBST1ZJTkNFIDIxNTMwMAorCQkJCUNISU5BCisKKzAwLTFCLTM5ICAgKGhleCkJCVByb3hpY2FzdAorMDAxQjM5ICAgICAoYmFzZSAxNikJCVByb3hpY2FzdAorCQkJCTMxMiBTdW5ueWZpZWxkIERyaXZlCisJCQkJU3VpdGUgMjAwCisJCQkJR2xlbnNoYXcgUEEgMTUxMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTNBICAgKGhleCkJCVNJTVMgQ29ycC4KKzAwMUIzQSAgICAgKGJhc2UgMTYpCQlTSU1TIENvcnAuCisJCQkJUkFPTiBCbGRnLCA5RiwgOTItOCwgV29uaHlvcm8tMmdhLCBZb25nc2FuLWd1CisJCQkJU2VvdWwgIDE0MC04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItM0IgICAoaGV4KQkJWWktUWluZyBDTy4sIExURAorMDAxQjNCICAgICAoYmFzZSAxNikJCVlpLVFpbmcgQ08uLCBMVEQKKwkJCQkzMTAgUk9PTSwxMkYKKwkJCQlOTy41LTEgSEVORyBZQU5HIFJELgorCQkJCVRBSVBFSSAgMTAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi0zQyAgIChoZXgpCQlTb2Z0d2FyZSBUZWNobm9sb2dpZXMgR3JvdXAsSW5jLgorMDAxQjNDICAgICAoYmFzZSAxNikJCVNvZnR3YXJlIFRlY2hub2xvZ2llcyBHcm91cCxJbmMuCisJCQkJMTAzMzAgVy4gUm9vc2V2ZWx0IFJvYWQKKwkJCQlTdWl0ZSAzMTAKKwkJCQlXZXNjaGVzdGVyIElMIDYwMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0zRCAgIChoZXgpCQlFdXJvVGVsIFNwYQorMDAxQjNEICAgICAoYmFzZSAxNikJCUV1cm9UZWwgU3BhCisJCQkJdmlhbGUgTWFydGlyaSBkZWxsYSBMaWJlcnRhLDQKKwkJCQlMaXNzb25lIE1pbGFuIDIwMDM1CisJCQkJSVRBTFkKKworMDAtMUItM0UgICAoaGV4KQkJQ3VydGlzLCBJbmMuCiswMDFCM0UgICAgIChiYXNlIDE2KQkJQ3VydGlzLCBJbmMuCisJCQkJMjQwNSBBbm5hcG9saXMgTGFuZQorCQkJCVN1aXRlIDIyMAorCQkJCU1pbm5lYXBvbGlzIE1OIDU1NDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0zRiAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCiswMDFCM0YgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQuCisJCQkJUm9zZXZpbGxlIENhbGlmb3JuaWEgOTU3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTQwICAgKGhleCkJCU5ldHdvcmsgQXV0b21hdGlvbiBteGMgQUIKKzAwMUI0MCAgICAgKGJhc2UgMTYpCQlOZXR3b3JrIEF1dG9tYXRpb24gbXhjIEFCCisJCQkJQm94IDcyOTQKKwkJCQlTdG9ja2hvbG0gIDEwMzkwCisJCQkJU1dFREVOCisKKzAwLTFCLTQxICAgKGhleCkJCUdlbmVyYWwgSW5maW5pdHkgQ28uLEx0ZC4KKzAwMUI0MSAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIEluZmluaXR5IENvLixMdGQuCisJCQkJM0YsTm8uMTY5LCBYaW5nLWFpIFJkLAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTQyICAgKGhleCkJCVdpc2UgJiBCbHVlCiswMDFCNDIgICAgIChiYXNlIDE2KQkJV2lzZSAmIEJsdWUKKwkJCQkjNzE1LTMgQW55YW5nIE1lZ2F2YWxsZXkKKwkJCQk3OTkgR3dhbnlhbmctRG9uZywgRG9uZ2FuLUd1CisJCQkJQW55YW5nLVNpIEd5dW5nZ2ktRG8gNDMxLTc2NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi00MyAgIChoZXgpCQlCZWlqaW5nIERHIFRlbGVjb21tdW5pY2F0aW9ucyBlcXVpcG1lbnQgQ28uLEx0ZAorMDAxQjQzICAgICAoYmFzZSAxNikJCUJlaWppbmcgREcgVGVsZWNvbW11bmljYXRpb25zIGVxdWlwbWVudCBDby4sTHRkCisJCQkJTm8uNSBKaWFuZ3RhaSBSb2FkLCBDaGFveWFuZyBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDAxNgorCQkJCUNISU5BCisKKzAwLTFCLTQ0ICAgKGhleCkJCVNhbkRpc2sgQ29ycG9yYXRpb24KKzAwMUI0NCAgICAgKGJhc2UgMTYpCQlTYW5EaXNrIENvcnBvcmF0aW9uCisJCQkJNjAxIE1jQ2FydGh5IEJvdWxldmFyZAorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi00NSAgIChoZXgpCQlBQkIgQVMsIERpdmlzaW9uIEF1dG9tYXRpb24gUHJvZHVjdHMKKzAwMUI0NSAgICAgKGJhc2UgMTYpCQlBQkIgQVMsIERpdmlzaW9uIEF1dG9tYXRpb24gUHJvZHVjdHMKKwkJCQlCZXJnZXJ2ZWllbiAxMgorCQkJCVBPQiA5MAorCQkJCUJpbGxpbmdzdGFkICBOTy0xMzc1CisJCQkJTk9SV0FZCisKKzAwLTFCLTQ2ICAgKGhleCkJCUJsdWVvbmUgVGVjaG5vbG9neSBDby4sTHRkCiswMDFCNDYgICAgIChiYXNlIDE2KQkJQmx1ZW9uZSBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlSb29tIDMwOSwzIEZsb29yLCA0MDQgQnVpbGRpbmcsIFNoYW5nQnUgaW5kdXN0cmlhbAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMjgKKwkJCQlDSElOQQorCiswMC0xQi00NyAgIChoZXgpCQlGdXRhcnF1ZSBBL1MKKzAwMUI0NyAgICAgKGJhc2UgMTYpCQlGdXRhcnF1ZSBBL1MKKwkJCQlBYWdhZGUgMTVCCisJCQkJQWFsYm9yZyAgOTAwMAorCQkJCURFTk1BUksKKworMDAtMUItNDggICAoaGV4KQkJU2hlbnpoZW4gTGFudGVjaCBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMUI0OCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBMYW50ZWNoIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTMwNiBSb29tLCBOYW5zaGFuIFdhdGVyIEJ1aWxkaW5nLAorCQkJCU5hbmhhaSBSb2FkLCBOYW5zaGFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1MgorCQkJCUNISU5BCisKKzAwLTFCLTQ5ICAgKGhleCkJCVJvYmVydHMgUmFkaW8gbGltaXRlZAorMDAxQjQ5ICAgICAoYmFzZSAxNikJCVJvYmVydHMgUmFkaW8gbGltaXRlZAorCQkJCVN3aW50b24gV29ya3MKKwkJCQlUYWxib3QgUm9hZAorCQkJCU1leGJvcm91Z2ggU291dGggWW9ya3NoaXJlIFM2NCA4QUoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQi00QSAgIChoZXgpCQlXJlcgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMUI0QSAgICAgKGJhc2UgMTYpCQlXJlcgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyOTAzIEJ1bmtlciBIaWxsIExhbmUKKwkJCQlTdWl0ZSAxMDcKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNEIgICAoaGV4KQkJU0FOSU9OIENvLiwgTHRkLgorMDAxQjRCICAgICAoYmFzZSAxNikJCVNBTklPTiBDby4sIEx0ZC4KKwkJCQkjMjA4IEFDRVRFQ0hOTyBUT1dFUiwgNTUtNywgTVVMTEFFLURPTkcgM0dBLAorCQkJCVlFT05HREVVTkdQTy1HVSBTRU9VTCAxNTAtOTkyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLTRDICAgKGhleCkJCVNpZ250ZWNoCiswMDFCNEMgICAgIChiYXNlIDE2KQkJU2lnbnRlY2gKKwkJCQk2MDkgU2VvbmlsIFRlY2hub3BpYSA2MDkKKwkJCQlTYW5nZGFld29uIDFEb25nIEp1bmd3b24gZ3UKKwkJCQlTdW5nbmFtc2kgS3l1bmdnaWRvIDQ2Mi0xMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItNEQgICAoaGV4KQkJQXJlY2EgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxQjREICAgICAoYmFzZSAxNikJCUFyZWNhIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk4Ri4sIE5vLiAyMiwgTGFuZSAzNSwgSmktSHUgUmQuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTRFICAgKGhleCkJCU5hdm1hbiBOZXcgWmVhbGFuZAorMDAxQjRFICAgICAoYmFzZSAxNikJCU5hdm1hbiBOZXcgWmVhbGFuZAorCQkJCTctMjEgS2F3YW5hIFN0cmVldAorCQkJCU5vcnRoY290ZQorCQkJCUF1Y2tsYW5kICAwNjI3CisJCQkJTkVXIFpFQUxBTkQKKworMDAtMUItNEYgICAoaGV4KQkJQXZheWEgSW5jLgorMDAxQjRGICAgICAoYmFzZSAxNikJCUF2YXlhIEluYy4KKwkJCQlSb29tIDFBIDMwOQorCQkJCTMwNyBNaWRkbGV0b3duIExpbmNyb2Z0IFJkCisJCQkJTGluY3JvZnQgTkogMDc3MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTUwICAgKGhleCkJCU5pemhueSBOb3Znb3JvZCBGYWN0b3J5IG5hbWVkIGFmdGVyIE0uRnJ1bnplLCBGU1VFIChOWmlGKQorMDAxQjUwICAgICAoYmFzZSAxNikJCU5pemhueSBOb3Znb3JvZCBGYWN0b3J5IG5hbWVkIGFmdGVyIE0uRnJ1bnplLCBGU1VFIChOWmlGKQorCQkJCTE3NCwgR2FnYXJpbmEgQXZlbnVlCisJCQkJTml6aG55IE5vdmdvcm9kICA2MDM5NTAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUItNTEgICAoaGV4KQkJVmVjdG9yIFRlY2hub2xvZ3kgQ29ycC4KKzAwMUI1MSAgICAgKGJhc2UgMTYpCQlWZWN0b3IgVGVjaG5vbG9neSBDb3JwLgorCQkJCU5vLjcsIExhbmUxMiwgWWFqb3UgUm9hZC4KKwkJCQlUdWNoZW5nIFRhaXBlaSAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTUyICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxQjUyICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTYwMCBOLiBId3kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTUzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUI1MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTU0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUI1NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTU1ICAgKGhleCkJCUh1cmNvIEF1dG9tYXRpb24gTHRkLgorMDAxQjU1ICAgICAoYmFzZSAxNikJCUh1cmNvIEF1dG9tYXRpb24gTHRkLgorCQkJCTZGLCBOby4gMzEsIFNoaW50YWkgUmQuCisJCQkJSnViZWkgQ2l0eSwgSHNpbmNodSBIc2llbiAzMDI0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItNTYgICAoaGV4KQkJVGVodXRpIE5ldHdvcmtzIEx0ZC4KKzAwMUI1NiAgICAgKGJhc2UgMTYpCQlUZWh1dGkgTmV0d29ya3MgTHRkLgorCQkJCTEsIFNoZW5rYXIgU3QuCisJCQkJSGVydHpsaXlhICA0NjEwNQorCQkJCUlTUkFFTAorCiswMC0xQi01NyAgIChoZXgpCQlTRU1JTkRJQSBTWVNURU1TIFBSSVZBVEUgTElNSVRFRAorMDAxQjU3ICAgICAoYmFzZSAxNikJCVNFTUlORElBIFNZU1RFTVMgUFJJVkFURSBMSU1JVEVECisJCQkJIzExMDYvOSxBLk0uSW5kdXN0cmlhbCBFc3RhdGUsR2FydmViaGFpIHBhbHlhLAorCQkJCTd0aCBNaWxlLCBIb3N1ciBSb2FkLAorCQkJCUJBTkdBTE9SRSBLQVJOQVRBS0EgNTYwMDY4CisJCQkJSU5ESUEKKworMDAtMUItNTggICAoaGV4KQkJQUNFIENBRCBFbnRlcnByaXNlIENvLiwgTHRkLgorMDAxQjU4ICAgICAoYmFzZSAxNikJCUFDRSBDQUQgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKwkJCQkyRiwgTm8uIDk0LCBCYW8gQ2h1bmcgUm9hZCwKKwkJCQlIc2luIFRpZW4gQ2l0eSwgVGFpcGVpIEhzaWVuIDIzMTQ0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi01OSAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorMDAxQjU5ICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKKzAwLTFCLTVBICAgKGhleCkJCUFwb2xsbyBJbWFnaW5nIFRlY2hub2xvZ2llcywgSW5jLgorMDAxQjVBICAgICAoYmFzZSAxNikJCUFwb2xsbyBJbWFnaW5nIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE4NTQ1IFJhbmdlbGFuZCBSZAorCQkJCVJhbW9uYSBDQSA5MjA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNUIgICAoaGV4KQkJMldpcmUsIEluYy4KKzAwMUI1QiAgICAgKGJhc2UgMTYpCQkyV2lyZSwgSW5jLgorCQkJCTE3MDQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTVDICAgKGhleCkJCUF6dXJldGVjIENvLiwgTHRkLgorMDAxQjVDICAgICAoYmFzZSAxNikJCUF6dXJldGVjIENvLiwgTHRkLgorCQkJCTNGLCBOby44LCBBbGxleSA4LCBMYW5lIDQ1LCBCYW94aW5nIFJkLiwKKwkJCQlYaW5kaWFuIENpdHkgVGFpcGVpIENvdW50eSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTVEICAgKGhleCkJCVZvbG9saW5rIFB0eSBMdGQKKzAwMUI1RCAgICAgKGJhc2UgMTYpCQlWb2xvbGluayBQdHkgTHRkCisJCQkJTGV2ZWwgMiwgNTQxIEJsYWNrYnVybiBSb2FkCisJCQkJTW91bnQgV2F2ZXJsZXkgVmljdG9yaWEgMzE0OQorCQkJCUFVU1RSQUxJQQorCiswMC0xQi01RSAgIChoZXgpCQlCUEwgTGltaXRlZAorMDAxQjVFICAgICAoYmFzZSAxNikJCUJQTCBMaW1pdGVkCisJCQkJQlBMIFRvd2VycworCQkJCTEzLCBLYXN0dXJiYSBSb2FkCisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAwMDEKKwkJCQlJTkRJQQorCiswMC0xQi01RiAgIChoZXgpCQlBbGllbiBUZWNobm9sb2d5CiswMDFCNUYgICAgIChiYXNlIDE2KQkJQWxpZW4gVGVjaG5vbG9neQorCQkJCTE4MjIwIEJ1dHRlcmZpZWxkIEJsdmQuCisJCQkJTW9yZ2FuIEhpbGwgQ0EgOTUwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTYwICAgKGhleCkJCU5BVklHT04gQUcKKzAwMUI2MCAgICAgKGJhc2UgMTYpCQlOQVZJR09OIEFHCisJCQkJQmVybGluZXIgUGxhdHogMTEKKwkJCQlXdWVyemJ1cmcgQmF2YXJpYSA5NzA4MAorCQkJCUdFUk1BTlkKKworMDAtMUItNjEgICAoaGV4KQkJRGlnaXRhbCBBY291c3RpY3MsIExMQworMDAxQjYxICAgICAoYmFzZSAxNikJCURpZ2l0YWwgQWNvdXN0aWNzLCBMTEMKKwkJCQkzNyBTaGVyd29vZCBUZXJyYWNlCisJCQkJTGFrZSBCbHVmZiBJTCA2MDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNjIgICAoaGV4KQkJSkhUIE9wdG9lbGVjdHJvbmljcyBDby4sTHRkLgorMDAxQjYyICAgICAoYmFzZSAxNikJCUpIVCBPcHRvZWxlY3Ryb25pY3MgQ28uLEx0ZC4KKwkJCQlIZXRpYW4gSW5kdXN0cmlhbCBQYXJrIDJyZCxIb3VqaWUgVG93biwgRG9uZ3VhbiwKKwkJCQlEb25nZ3VhbiBHdWFuZ2RvbmcgNTIzOTQ1CisJCQkJQ0hJTkEKKworMDAtMUItNjMgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIgSW5jLgorMDAxQjYzICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ2FsaWZvcm5pYSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNjQgICAoaGV4KQkJSXNhYWNMYW5kS29yZWEgQ28uLCBMdGQsCiswMDFCNjQgICAgIChiYXNlIDE2KQkJSXNhYWNMYW5kS29yZWEgQ28uLCBMdGQsCisJCQkJUm0gNjA4LCBIYW5nYW5nLUh5dW5kYWktSHllbCBCbGRnLiAyLTM2LAorCQkJCUhhbmdhbmdubyAyLWdhLCBZb25nc2FuLWd1LAorCQkJCVNlb3VsICAxNDAtODcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLTY1ICAgKGhleCkJCUNoaW5hIEdyaWRjb20gQ28uLCBMdGQKKzAwMUI2NSAgICAgKGJhc2UgMTYpCQlDaGluYSBHcmlkY29tIENvLiwgTHRkCisJCQkJMjEvRiwgSHVhbmVuZyBCdWlsZGluZywgTm8uIDIwNjggU2hlbm5hbiBNYWluIFJvYWQKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgMDA4NgorCQkJCUNISU5BCisKKzAwLTFCLTY2ICAgKGhleCkJCVNlbm5oZWlzZXIgZWxlY3Ryb25pYyBHbWJIICYgQ28uIEtHCiswMDFCNjYgICAgIChiYXNlIDE2KQkJU2VubmhlaXNlciBlbGVjdHJvbmljIEdtYkggJiBDby4gS0cKKwkJCQlBbSBMYWJvciAxCisJCQkJV2VkZW1hcmsgTmllZGVyc2FjaHNlbiAzMDkwMAorCQkJCUdFUk1BTlkKKworMDAtMUItNjcgICAoaGV4KQkJVWJpcXVpc3lzIEx0ZAorMDAxQjY3ICAgICAoYmFzZSAxNikJCVViaXF1aXN5cyBMdGQKKwkJCQlUaGUgU3RlbGxhIEJ1aWxkaW5nCisJCQkJV2luZG1pbGwgSGlsbCBCdXNpbmVzcyBQYXJrCisJCQkJU3dpbmRvbiBXaWx0c2hpcmUgU041IDZOWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFCLTY4ICAgKGhleCkJCU1vZG5uZXQgQ28uLCBMdGQKKzAwMUI2OCAgICAgKGJhc2UgMTYpCQlNb2RubmV0IENvLiwgTHRkCisJCQkJMjEzOSBEYWVteXVuZy1Eb25nIERJUCBtYWluIEIvRCBSb29tIzUwNSwgTmFtZ3UKKwkJCQlEYWVndSBLeXVuZ3NhbmcgQm9va2RvIDcwNS03MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItNjkgICAoaGV4KQkJRXF1YWxpbmUgQ29ycG9yYXRpb24KKzAwMUI2OSAgICAgKGJhc2UgMTYpCQlFcXVhbGluZSBDb3Jwb3JhdGlvbgorCQkJCTlGLCBOby4gMjM0LCBTZWN0aW9uIDQsIENoZW5nLURlIFJvYWQsCisJCQkJVGFpcGVpIEhzaWVuIDI1MTYyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi02QSAgIChoZXgpCQlQb3dlcndhdmUgVGVjaG5vbG9naWVzIFN3ZWRlbiBBQgorMDAxQjZBICAgICAoYmFzZSAxNikJCVBvd2Vyd2F2ZSBUZWNobm9sb2dpZXMgU3dlZGVuIEFCCisJCQkJMTY0IDI2CisJCQkJS2lzdGEKKwkJCQlLbmFycmFybmFzZ2F0YW4gNywgS2lzdGEgIAorCQkJCVNXRURFTgorCiswMC0xQi02QiAgIChoZXgpCQlTd3l4IFNvbHV0aW9ucyBBRworMDAxQjZCICAgICAoYmFzZSAxNikJCVN3eXggU29sdXRpb25zIEFHCisJCQkJSm9zZXBoLXZvbi1GcmF1bmhvZmVyLXN0ci4xM2EKKwkJCQlEb3J0bXVuZCBOUlcgNDQyMjcKKwkJCQlHRVJNQU5ZCisKKzAwLTFCLTZDICAgKGhleCkJCUxvb2tYIERpZ2l0YWwgTWVkaWEgQlYKKzAwMUI2QyAgICAgKGJhc2UgMTYpCQlMb29rWCBEaWdpdGFsIE1lZGlhIEJWCisJCQkJUm9la2VudmVsZHdlZyAxCisJCQkJQnJ1bnNzdW0gTGltYnVyZyA2NDQ2REsKKwkJCQlORVRIRVJMQU5EUworCiswMC0xQi02RCAgIChoZXgpCQlNaWR0cm9uaWNzLCBJbmMuCiswMDFCNkQgICAgIChiYXNlIDE2KQkJTWlkdHJvbmljcywgSW5jLgorCQkJCTcwMDAgTW9ucm9lIFN0LgorCQkJCVdpbGxvd2Jyb29rIElMIDYwNTI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi02RSAgIChoZXgpCQlBbnVlIFN5c3RlbXMsIEluYy4KKzAwMUI2RSAgICAgKGJhc2UgMTYpCQlBbnVlIFN5c3RlbXMsIEluYy4KKwkJCQk5MTExIEpvbGx5dmlsbGUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUF1c3RpbiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNkYgICAoaGV4KQkJVGVsZXRyYWsgTHRkCiswMDFCNkYgICAgIChiYXNlIDE2KQkJVGVsZXRyYWsgTHRkCisJCQkJMjE0IEtlcGEgUm9hZAorCQkJCU1pc3Npb24gQmF5CisJCQkJQXVja2xhbmQgIDEwNzEKKwkJCQlORVcgWkVBTEFORAorCiswMC0xQi03MCAgIChoZXgpCQlJUkkgVWJpdGVxLCBJTkMuCiswMDFCNzAgICAgIChiYXNlIDE2KQkJSVJJIFViaXRlcSwgSU5DLgorCQkJCVNoaW5qdWt1LU5vbXVyYSBCbGRnLiA0N0YsCisJCQkJMS0yNi0yIE5pc2hpLXNoaW5qdWt1LAorCQkJCVNoaW5qdWt1LWt1IFRva3lvIDE2My0wNTQ3CisJCQkJSkFQQU4KKworMDAtMUItNzEgICAoaGV4KQkJVGVsdWxhciBDb3JwLgorMDAxQjcxICAgICAoYmFzZSAxNikJCVRlbHVsYXIgQ29ycC4KKwkJCQkzMTEgU291dGggV2Fja2VyIERyaXZlCisJCQkJU3VpdGUgNDMwMAorCQkJCUNoaWNhZ28gSUwgNjA2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTcyICAgKGhleCkJCVNpY2VwIHMucC5hLgorMDAxQjcyICAgICAoYmFzZSAxNikJCVNpY2VwIHMucC5hLgorCQkJCVZpYSBjYWxhYnJpYSwgMTQKKwkJCQlDZXJ0YWxkbyAgNTAwNTIKKwkJCQlJVEFMWQorCiswMC0xQi03MyAgIChoZXgpCQlEVEwgQnJvYWRjYXN0IEx0ZAorMDAxQjczICAgICAoYmFzZSAxNikJCURUTCBCcm9hZGNhc3QgTHRkCisJCQkJSm9obnNvbidzIEVzdGF0ZQorCQkJCVNpbHZlcmRhbGUgUm9hZAorCQkJCUhBWUVTIE1pZGRsZXNleCBVQjMgM0JBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUItNzQgICAoaGV4KQkJTWlyYUxpbmsgQ29ycG9yYXRpb24KKzAwMUI3NCAgICAgKGJhc2UgMTYpCQlNaXJhTGluayBDb3Jwb3JhdGlvbgorCQkJCTExMSBTVyA1dGggQXZlLgorCQkJCVN0ZS4gMTAwMAorCQkJCVBvcnRsYW5kIE9SIDk3MjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi03NSAgIChoZXgpCQlIeXBlcm1lZGlhIFN5c3RlbXMKKzAwMUI3NSAgICAgKGJhc2UgMTYpCQlIeXBlcm1lZGlhIFN5c3RlbXMKKwkJCQkyQiBCZXJnbWFuIFN0LgorCQkJCVJhYmJpbiBJbmR1c3RyaWFsIFBhcmsKKwkJCQlSZWhvdm90ICA3NjcwNQorCQkJCUlTUkFFTAorCiswMC0xQi03NiAgIChoZXgpCQlSaXBjb2RlLCBJbmMuCiswMDFCNzYgICAgIChiYXNlIDE2KQkJUmlwY29kZSwgSW5jLgorCQkJCTExMzAgRS4gQXJhcGFobyBSb2FkCisJCQkJU3VpdGUgNDM1CisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNzcgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDFCNzcgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xQi03OCAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMUI3OCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCW1zMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNzkgICAoaGV4KQkJRkFJVkVMRVkgVFJBTlNQT1JUCiswMDFCNzkgICAgIChiYXNlIDE2KQkJRkFJVkVMRVkgVFJBTlNQT1JUCisJCQkJWkkgZHUgYm9pcyBkZSBwbGFudGUKKwkJCQlydWUgYW1lbGlhIGVhcmhhcnQKKwkJCQlMQSBWSUxMRSBBVVggREFNRVMgIDM3NzAwCisJCQkJRlJBTkNFCisKKzAwLTFCLTdBICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAxQjdBICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFCLTdCICAgKGhleCkJCVRoZSBUaW50b21ldGVyIEx0ZAorMDAxQjdCICAgICAoYmFzZSAxNikJCVRoZSBUaW50b21ldGVyIEx0ZAorCQkJCVNvbGFyIFdheQorCQkJCVNvbHN0aWNlIFBhcmsKKwkJCQlBbWVzYnVyeSBXaWx0c2hpcmUgU1A0IDdTWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFCLTdDICAgKGhleCkJCUEgJiBSIENhbWJyaWRnZQorMDAxQjdDICAgICAoYmFzZSAxNikJCUEgJiBSIENhbWJyaWRnZQorCQkJCVBlbWJyb2tlIEF2ZW51ZQorCQkJCVdhdGVyYmVhY2gKKwkJCQlDYW1icmlkZ2UgQ0FNQlMgQ0IyNSA5UVIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQi03RCAgIChoZXgpCQlDWFIgQW5kZXJzb24gSmFjb2Jzb24KKzAwMUI3RCAgICAgKGJhc2UgMTYpCQlDWFIgQW5kZXJzb24gSmFjb2Jzb24KKwkJCQlSdWUgZGUgbCdvcm5ldHRlCisJCQkJQWJvbmRhbnQgIDI4NDEwCisJCQkJRlJBTkNFCisKKzAwLTFCLTdFICAgKGhleCkJCUJlY2ttYW5uIEdtYkgKKzAwMUI3RSAgICAgKGJhc2UgMTYpCQlCZWNrbWFubiBHbWJICisJCQkJQnJhbmR0c3RyLiAxCisJCQkJSG9ldmVsaG9mIE5SVyAzMzE2MQorCQkJCUdFUk1BTlkKKworMDAtMUItN0YgICAoaGV4KQkJVE1OIFRlY2hub2xvZ2llcyBUZWxlY29tdW5pY2Fjb2VzIEx0ZGEKKzAwMUI3RiAgICAgKGJhc2UgMTYpCQlUTU4gVGVjaG5vbG9naWVzIFRlbGVjb211bmljYWNvZXMgTHRkYQorCQkJCVJ1YSBOaWx6YSwgNDIyCisJCQkJU2FvIFBhdWxvIFNQIDAzNjUxLTEyMAorCQkJCUJSQVpJTAorCiswMC0xQi04MCAgIChoZXgpCQlMT1JEIENvcnBvcmF0aW9uCiswMDFCODAgICAgIChiYXNlIDE2KQkJTE9SRCBDb3Jwb3JhdGlvbgorCQkJCTIwMDAgV2VzdCBHcmFuZHZpZXcgQmx2ZAorCQkJCUVyaWUgUGEgMTY1MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTgxICAgKGhleCkJCURBVEFRIEluc3RydW1lbnRzLCBJbmMuCiswMDFCODEgICAgIChiYXNlIDE2KQkJREFUQVEgSW5zdHJ1bWVudHMsIEluYy4KKwkJCQkyNDEgU3ByaW5nc2lkZSBEcml2ZQorCQkJCUFrcm9uIE9oaW8gNDQzMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTgyICAgKGhleCkJCVRhaXdhbiBTZW1pY29uZHVjdG9yIENvLiwgTHRkLgorMDAxQjgyICAgICAoYmFzZSAxNikJCVRhaXdhbiBTZW1pY29uZHVjdG9yIENvLiwgTHRkLgorCQkJCTExRiwgTm8uIDIwNSwgU2VjLiAzLCBCZWlzaGluIFJkLAorCQkJCVNoaW5kaWFuIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTgzICAgKGhleCkJCUZpbnNvZnQgTHRkCiswMDFCODMgICAgIChiYXNlIDE2KQkJRmluc29mdCBMdGQKKwkJCQkxNi0xOCBIYXR0b24gR2FyZGVuCisJCQkJTG9uZG9uICBFQzFOIDhBVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFCLTg0ICAgKGhleCkJCVNjYW4gRW5naW5lZXJpbmcgVGVsZWNvbQorMDAxQjg0ICAgICAoYmFzZSAxNikJCVNjYW4gRW5naW5lZXJpbmcgVGVsZWNvbQorCQkJCVN2b2JvZHkgc3RyLiA3NQorCQkJCVZvcm9uZXpoICAzOTQwMzAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUItODUgICAoaGV4KQkJTUFOIERpZXNlbCBTRQorMDAxQjg1ICAgICAoYmFzZSAxNikJCU1BTiBEaWVzZWwgU0UKKwkJCQlUZWdsaG9sbXNnYWRlIDQxCisJCQkJQ29wZW5oYWdlbiAgMjQ1MAorCQkJCURFTk1BUksKKworMDAtMUItODYgICAoaGV4KQkJQm9zY2ggQWNjZXNzIFN5c3RlbXMgR21iSAorMDAxQjg2ICAgICAoYmFzZSAxNikJCUJvc2NoIEFjY2VzcyBTeXN0ZW1zIEdtYkgKKwkJCQlDaGFybG90dGVuYnVyZ2VyIEFsbGVlIDUwICAgICAgICAgICAgCisJCQkJQUFDSEVOICAgIEQtNTIwNjggCisJCQkJR0VSTUFOWQorCiswMC0xQi04NyAgIChoZXgpCQlEZWVwc291bmQgVGVjaC4gQ28uLCBMdGQKKzAwMUI4NyAgICAgKGJhc2UgMTYpCQlEZWVwc291bmQgVGVjaC4gQ28uLCBMdGQKKwkJCQkzRiBOby4gNTc2IFNlYy4gMSwgTWluc2hlbmcgTi4gUmQuLCBHdWVpc2hhbiBUb3duc2hpcCwKKwkJCQlUYW95dWFuICAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTg4ICAgKGhleCkJCURpdmluZXQgQWNjZXNzIFRlY2hub2xvZ2llcyBMdGQKKzAwMUI4OCAgICAgKGJhc2UgMTYpCQlEaXZpbmV0IEFjY2VzcyBUZWNobm9sb2dpZXMgTHRkCisJCQkJNHRoIEZsb29yLCBNZWRpYSBDZW50ZXIsCisJCQkJU2FrYWFsIE5hZ2FyLCBCYW5lciBSb2FkCisJCQkJUHVuZSBNYWhhcmFzaHRyYSA0MTEwMDcKKwkJCQlJTkRJQQorCiswMC0xQi04OSAgIChoZXgpCQlFTVpBIFZpc3VhbCBTZW5zZSBMdGQuCiswMDFCODkgICAgIChiYXNlIDE2KQkJRU1aQSBWaXN1YWwgU2Vuc2UgTHRkLgorCQkJCTIwIEhhJ3RhJ2FzIFN0LiwgQmVpdGggSGFwYW1vbgorCQkJCXN1aXRlIDM5MQorCQkJCUtmYXIgU2FiYSAgNDQ0MjUKKwkJCQlJU1JBRUwKKworMDAtMUItOEEgICAoaGV4KQkJMk0gRWxlY3Ryb25pYyBBL1MKKzAwMUI4QSAgICAgKGJhc2UgMTYpCQkyTSBFbGVjdHJvbmljIEEvUworCQkJCU1hbGVydmVqIDEwCisJCQkJVGFhc3RydXAgIDI2MzAKKwkJCQlERU5NQVJLCisKKzAwLTFCLThCICAgKGhleCkJCU5FQyBBY2Nlc3NUZWNobmljYSwgTHRkLgorMDAxQjhCICAgICAoYmFzZSAxNikJCU5FQyBBY2Nlc3NUZWNobmljYSwgTHRkLgorCQkJCTgwMCBTaGltb21hdGEKKwkJCQlLYWtlZ2F3YSBTaGl6dW9rYSA0MzYtODUwMQorCQkJCUpBUEFOCisKKzAwLTFCLThDICAgKGhleCkJCUpNaWNyb24gVGVjaG5vbG9neSBDb3JwLgorMDAxQjhDICAgICAoYmFzZSAxNikJCUpNaWNyb24gVGVjaG5vbG9neSBDb3JwLgorCQkJCTFGLCBOby4xMywgSW5ub3ZhdGlvbiBSb2FkIDEKKwkJCQlIc2luY2h1IFNjaWVuY2UgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItOEQgICAoaGV4KQkJRWxlY3Ryb25pYyBDb21wdXRlciBTeXN0ZW1zLCBJbmMuCiswMDFCOEQgICAgIChiYXNlIDE2KQkJRWxlY3Ryb25pYyBDb21wdXRlciBTeXN0ZW1zLCBJbmMuCisJCQkJNDE4IERvbmVnYWwgRHJpdmUKKwkJCQlUb3dzb24gTUQgMjEyODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLThFICAgKGhleCkJCUh1bHUgU3dlZGVuIEFCCiswMDFCOEUgICAgIChiYXNlIDE2KQkJSHVsdSBTd2VkZW4gQUIKKwkJCQlCb3ggMTIzMjgsIDEwMjI4CisJCQkJS2lzdGEgU3RvY2tob2xtIDE2NCA0MAorCQkJCVNXRURFTgorCiswMC0xQi04RiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFCOEYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi05MCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFCOTAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi05MSAgIChoZXgpCQlFRktPTiBBRworMDAxQjkxICAgICAoYmFzZSAxNikJCUVGS09OIEFHCisJCQkJQW5kcml0emVyIFJlaWNoc3N0cmFzc2UgNjYKKwkJCQlHcmF6IFN0eXJpYSA4MDQ1CisJCQkJQVVTVFJJQQorCiswMC0xQi05MiAgIChoZXgpCQlsLWFjb3VzdGljcworMDAxQjkyICAgICAoYmFzZSAxNikJCWwtYWNvdXN0aWNzCisJCQkJcGFyYyBkZSBsYSBmb250YWluZSBkZSBqb3V2ZW5jZQorCQkJCW1hcmNvdXNzaXMgZXNzb25uZSA5MTQ2MgorCQkJCUZSQU5DRQorCiswMC0xQi05MyAgIChoZXgpCQlKQyBEZWNhdXggU0EgRE5UCiswMDFCOTMgICAgIChiYXNlIDE2KQkJSkMgRGVjYXV4IFNBIEROVAorCQkJCTIxIHJ1ZSBjbGF1ZGUgQmVybmFyZAorCQkJCU1BVVJFUEFTICA3ODMxMAorCQkJCUZSQU5DRQorCiswMC0xQi05NCAgIChoZXgpCQlULkUuTS5BLiBTLnAuQS4KKzAwMUI5NCAgICAgKGJhc2UgMTYpCQlULkUuTS5BLiBTLnAuQS4KKwkJCQl2aWEgZGVsbGEgU2NpZW56YSAyMSBBL0MKKwkJCQlDYXN0ZWxudW92byBSYW5nb25lIE1vZGVuYSA0MTA1MQorCQkJCUlUQUxZCisKKzAwLTFCLTk1ICAgKGhleCkJCVZJREVPIFNZU1RFTVMgU1JMCiswMDFCOTUgICAgIChiYXNlIDE2KQkJVklERU8gU1lTVEVNUyBTUkwKKwkJCQlMb2MuIEdvcml6em8sIDE2CisJCQkJMzMwMzAKKwkJCQlDQU1JTk8gQUwgVEFHTElBTUVOVE8gVUQgCisJCQkJSVRBTFkKKworMDAtMUItOTYgICAoaGV4KQkJR2VuZXJhbCBTZW5zaW5nCiswMDFCOTYgICAgIChiYXNlIDE2KQkJR2VuZXJhbCBTZW5zaW5nCisJCQkJMTA4IExpbmNvbG4gU3QuCisJCQkJQm9zdG9uIE1BIDAyMTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi05NyAgIChoZXgpCQlWaW9saW4gVGVjaG5vbG9naWVzCiswMDFCOTcgICAgIChiYXNlIDE2KQkJVmlvbGluIFRlY2hub2xvZ2llcworCQkJCTMzIFdvb2QgQXZlIFNvdXRoCisJCQkJSXNlbGluIE5KIDA4ODMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi05OCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxQjk4ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHVU1JIEd5ZW9uZy1CdWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi05OSAgIChoZXgpCQlLUyBTeXN0ZW0gR21iSAorMDAxQjk5ICAgICAoYmFzZSAxNikJCUtTIFN5c3RlbSBHbWJICisJCQkJQWxleGFuZGVyc3RyLiAzNworCQkJCU11ZWxoZWltIE5SVyA0NTQ3MgorCQkJCUdFUk1BTlkKKworMDAtMUItOUEgICAoaGV4KQkJQXBvbGxvIEZpcmUgRGV0ZWN0b3JzIEx0ZAorMDAxQjlBICAgICAoYmFzZSAxNikJCUFwb2xsbyBGaXJlIERldGVjdG9ycyBMdGQKKwkJCQkzNiBCcm9va3NpZGUgUm9hZAorCQkJCUhhdmFudCBIYW1wc2hpcmUgUDA5IDFKUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFCLTlCICAgKGhleCkJCUhvc2UtTWNDYW5uIENvbW11bmljYXRpb25zCiswMDFCOUIgICAgIChiYXNlIDE2KQkJSG9zZS1NY0Nhbm4gQ29tbXVuaWNhdGlvbnMKKwkJCQkxMjQxIFdlc3QgTmV3cG9ydCBDZW50ZXIgRHJpdmUKKwkJCQlEZWVyZmllbGQgQmVhY2ggRkwgMzM0NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTlDICAgKGhleCkJCVNBVEVMIHNwLiB6IG8uby4KKzAwMUI5QyAgICAgKGJhc2UgMTYpCQlTQVRFTCBzcC4geiBvLm8uCisJCQkJU2NodWJlcnRhIDc5CisJCQkJR2RhbnNrIHBvbW9yc2tpZSA4MC0xNzIKKwkJCQlQT0xBTkQKKworMDAtMUItOUQgICAoaGV4KQkJTm92dXMgU2VjdXJpdHkgU3AuIHogby5vLgorMDAxQjlEICAgICAoYmFzZSAxNikJCU5vdnVzIFNlY3VyaXR5IFNwLiB6IG8uby4KKwkJCQl1bC4gUHU/YXdza2EgNDMxCisJCQkJV2Fyc2F3IHdvai4gbWF6b3dpZWNraWUgMDItODAxCisJCQkJUE9MQU5ECisKKzAwLTFCLTlFICAgKGhleCkJCUFTS0VZICBDT01QVVRFUiAgQ09SUAorMDAxQjlFICAgICAoYmFzZSAxNikJCUFTS0VZICBDT01QVVRFUiAgQ09SUAorCQkJCTEwRixOTy4xMTksQ0hJRU5LQU5HIFJELAorCQkJCUNIVU5HLUhPLFRQSVBFSSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi05RiAgIChoZXgpCQlDYWx5cHRlY2ggUHR5IEx0ZAorMDAxQjlGICAgICAoYmFzZSAxNikJCUNhbHlwdGVjaCBQdHkgTHRkCisJCQkJNS80ODYgTG93ZXIgSGVpZGVsYmVyZyBSb2FkCisJCQkJSGVpZGVsYmVyZyBWaWN0b3JpYSAzMDg0CisJCQkJQVVTVFJBTElBCisKKzAwLTFCLUEwICAgKGhleCkJCUF3b3gKKzAwMUJBMCAgICAgKGJhc2UgMTYpCQlBd294CisJCQkJOTMsIFBsYWNlIFBpZXJyZSBEdWhlbSwKKwkJCQlMZXMgQ2VudHVyaWVzCisJCQkJMzQwMDAgTW9udHBlbGxpZXIgCisJCQkJRlJBTkNFCisKKzAwLTFCLUExICAgKGhleCkJCUFtaWMgQUIKKzAwMUJBMSAgICAgKGJhc2UgMTYpCQlBbWljIEFCCisJCQkJVXBwc2FsYSBzY2llbmNlIHBhcmsKKwkJCQlEYWcgSGFtbXJza2pvbGRzIHZhZyA1MiBCCisJCQkJVXBwc2FsYSAgNzUxODMKKwkJCQlTV0VERU4KKworMDAtMUItQTIgICAoaGV4KQkJSURTIEltYWdpbmcgRGV2ZWxvcG1lbnQgU3lzdGVtcyBHbWJICiswMDFCQTIgICAgIChiYXNlIDE2KQkJSURTIEltYWdpbmcgRGV2ZWxvcG1lbnQgU3lzdGVtcyBHbWJICisJCQkJRGltYmFjaGVyIFN0ci4gNgorCQkJCU9iZXJzdWxtIEJXIDc0MTgyCisJCQkJR0VSTUFOWQorCiswMC0xQi1BMyAgIChoZXgpCQlGbGV4aXQgR3JvdXAgR21iSAorMDAxQkEzICAgICAoYmFzZSAxNikJCUZsZXhpdCBHcm91cCBHbWJICisJCQkJQnJhdWhhdXNzdHJhc3NlIDE0CisJCQkJU2FsemJ1cmcgU2FsemJ1cmcgNTAyMAorCQkJCUFVU1RSSUEKKworMDAtMUItQTQgICAoaGV4KQkJUy5BLkUgQWZpa2ltCiswMDFCQTQgICAgIChiYXNlIDE2KQkJUy5BLkUgQWZpa2ltCisJCQkJS2lidXR6IEFmaWtpbQorCQkJCUtpYnV0eiBBZmlraW0gIDE1MTQ4CisJCQkJSVNSQUVMCisKKzAwLTFCLUE1ICAgKGhleCkJCU15dW5nTWluIFN5c3RlbXMsIEluYy4KKzAwMUJBNSAgICAgKGJhc2UgMTYpCQlNeXVuZ01pbiBTeXN0ZW1zLCBJbmMuCisJCQkJIzQxMCxEb29zYW4gVmVudHVyZSBEaW1lIDItY2hhLDEzMDctMzcKKwkJCQlLd2FueWFuZy1Eb25nLAorCQkJCUt5dW5na2ktZG8gIDQzMS0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItQTYgICAoaGV4KQkJaW50b3RlY2ggaW5jLgorMDAxQkE2ICAgICAoYmFzZSAxNikJCWludG90ZWNoIGluYy4KKwkJCQkgMTNGIERNQyBSJkQgQ2VudGVyIEUzLTIgQnVpbGRpbmcgTGFuZCBEZXZlbG9wbWVudCBEaXN0cmljdCBTYW5nYW0tRG9uZworCQkJCU1hcG9ndSBTZW91bCAxMjEtMjcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLUE3ICAgKGhleCkJCUxvcmljYSBTb2x1dGlvbnMKKzAwMUJBNyAgICAgKGJhc2UgMTYpCQlMb3JpY2EgU29sdXRpb25zCisJCQkJMjc1IE5vcnRocG9pbnRlIFBhcmt3YXkKKwkJCQlBbWhlcnN0IE5ZIDE0MjI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1BOCAgIChoZXgpCQlVQkkmTU9CSSwuSW5jCiswMDFCQTggICAgIChiYXNlIDE2KQkJVUJJJk1PQkksLkluYworCQkJCTNGLCBEdWlkbyBCbGRnLCAjMjg4LTUsIFlhbmdqYWUtRG9uZworCQkJCVNlb2Noby1HdSBTZW91bCAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLUE5ICAgKGhleCkJCUJST1RIRVIgSU5EVVNUUklFUywgTFRELgorMDAxQkE5ICAgICAoYmFzZSAxNikJCUJST1RIRVIgSU5EVVNUUklFUywgTFRELgorCQkJCVByaW50aW5nICYgU29sdXRpb25zIENvbXBhbnksIERldmVsb3BtZW50IE1hbmFnZW1lbnQgRGVwdC4KKwkJCQkxNS0xIE5hZXNoaXJvLWNobywgTWl6dWhvLWt1CisJCQkJTmFnb3lhIEFpY2hpIDQ2Ny04NTYxCisJCQkJSkFQQU4KKworMDAtMUItQUEgICAoaGV4KQkJWGVuSUNzIG52CiswMDFCQUEgICAgIChiYXNlIDE2KQkJWGVuSUNzIG52CisJCQkJQW1iYWNodGVubGFhbiA0NAorCQkJCUxldXZlbiBWbGFhbXMtQnJhYmFudCBCLTMwMDEKKwkJCQlCRUxHSVVNCisKKzAwLTFCLUFCICAgKGhleCkJCVRlbGNoZW15LCBJbmNvcnBvcmF0ZWQKKzAwMUJBQiAgICAgKGJhc2UgMTYpCQlUZWxjaGVteSwgSW5jb3Jwb3JhdGVkCisJCQkJMjkwNSBQcmVtaWVyZSBQYXJrd2F5CisJCQkJU3VpdGUgMjgwCisJCQkJRHVsdXRoIEdBIDMwMDk3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1BQyAgIChoZXgpCQlDdXJ0aXNzIFdyaWdodCBDb250cm9scyBFbWJlZGRlZCBDb21wdXRpbmcKKzAwMUJBQyAgICAgKGJhc2UgMTYpCQlDdXJ0aXNzIFdyaWdodCBDb250cm9scyBFbWJlZGRlZCBDb21wdXRpbmcKKwkJCQkxMDIwMSBXYXRlcmlkZ2UgQ2lyY2xlCisJCQkJU3VpdGUgMzAwCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1BRCAgIChoZXgpCQlpQ29udHJvbCBJbmNvcnBvcmF0ZWQKKzAwMUJBRCAgICAgKGJhc2UgMTYpCQlpQ29udHJvbCBJbmNvcnBvcmF0ZWQKKwkJCQkzMjM1IEtpZmVyIFJvYWQKKwkJCQlTdWl0ZSAyNjAKKwkJCQlTYW50YSBDbGFyYSBDYWxpZm9ybmlhIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1BRSAgIChoZXgpCQlNaWNybyBDb250cm9sIFN5c3RlbXMsIEluYworMDAxQkFFICAgICAoYmFzZSAxNikJCU1pY3JvIENvbnRyb2wgU3lzdGVtcywgSW5jCisJCQkJNTg3NyBFbnRlcnByaXNlIFBhcmt3YXkKKwkJCQlGb3J0IE15ZXJzIEZsb3JpZGEgMzM5MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUFGICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFCQUYgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTFCLUIwICAgKGhleCkJCUJIQVJBVCBFTEVDVFJPTklDUworMDAxQkIwICAgICAoYmFzZSAxNikJCUJIQVJBVCBFTEVDVFJPTklDUworCQkJCUpBTEFIQUxMSSBQT1NUCisJCQkJQkFOR0FMT1JFIEtBUk5BVEFLQSA1NjAwMTMKKwkJCQlJTkRJQQorCiswMC0xQi1CMSAgIChoZXgpCQlXaXN0cm9uIE5ld2ViIENvcnAuCiswMDFCQjEgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBOZXdlYiBDb3JwLgorCQkJCU5vLiAxMC0xLCBMaS1oc2luIFJvYWQgSSwgSHNpbmNodSBTY2llbmNlIFBhcmssCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1CMiAgIChoZXgpCQlJbnRlbGxlY3QgSW50ZXJuYXRpb25hbCBOVgorMDAxQkIyICAgICAoYmFzZSAxNikJCUludGVsbGVjdCBJbnRlcm5hdGlvbmFsIE5WCisJCQkJS2xlaW5lIEtsb29zdGVyc3RyYWF0IDIzCisJCQkJWmF2ZW50ZW0gVmxhYW1zZSBicmFiYW50IDE5MzIKKwkJCQlCRUxHSVVNCisKKzAwLTFCLUIzICAgKGhleCkJCUNvbmRhbG8gR21iSAorMDAxQkIzICAgICAoYmFzZSAxNikJCUNvbmRhbG8gR21iSAorCQkJCUtvaGxzdGF0dCAzCisJCQkJTGljaHRlbmF1IEJhdmFyaWEgODY3MDYKKwkJCQlHRVJNQU5ZCisKKzAwLTFCLUI0ICAgKGhleCkJCUFpcnZvZCBMaW1pdGVkCiswMDFCQjQgICAgIChiYXNlIDE2KQkJQWlydm9kIExpbWl0ZWQKKwkJCQlIZWF0aGVyIEhvdXNlCisJCQkJSGVhdGhlciBSb2FkCisJCQkJU2FuZHlmb3JkIEluZCBFc3QgRHVibGluIDE4IEQxOAorCQkJCUlSRUxBTkQKKworMDAtMUItQjUgICAoaGV4KQkJWkYgRWxlY3Ryb25pY3MgR21iSAorMDAxQkI1ICAgICAoYmFzZSAxNikJCVpGIEVsZWN0cm9uaWNzIEdtYkgKKwkJCQlDaGVycnlzdHJhc3NlIDEKKwkJCQlBdWVyYmFjaCBpLiBkLiBPcGYuIEJheWVybiBELTkxMjc1CisJCQkJR0VSTUFOWQorCiswMC0xQi1CNiAgIChoZXgpCQlCaXJkIEVsZWN0cm9uaWMgQ29ycC4KKzAwMUJCNiAgICAgKGJhc2UgMTYpCQlCaXJkIEVsZWN0cm9uaWMgQ29ycC4KKwkJCQkzMDMwMyBBdXJvcmEgUm9hZAorCQkJCVNvbG9uIE9oaW8gNDQxMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUI3ICAgKGhleCkJCUFsdGEgSGVpZ2h0cyBUZWNobm9sb2d5IENvcnAuCiswMDFCQjcgICAgIChiYXNlIDE2KQkJQWx0YSBIZWlnaHRzIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkxMDggQWx0YSBIZWlnaHRzIENvdXJ0CisJCQkJTG9zIEdhdG9zIENhbGlmb3JuaWEgOTUwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUI4ICAgKGhleCkJCUJMVUVXQVkgRUxFQ1RST05JQyBDTztMVEQKKzAwMUJCOCAgICAgKGJhc2UgMTYpCQlCTFVFV0FZIEVMRUNUUk9OSUMgQ087TFRECisJCQkJV29ya3Nob3AgQixEb25nIEZlbmcgVmlsbGFnZSwKKwkJCQlGcm9udCBCYWl5dW4sR3UgVGFuZyBBbworCQkJCUh1aVpob3UgR3VhbmdEb25nIDUxNjAwOAorCQkJCUNISU5BCisKKzAwLTFCLUI5ICAgKGhleCkJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtIENvLgorMDAxQkI5ICAgICAoYmFzZSAxNikJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtIENvLgorCQkJCU5vLjIyLCBBbGxleSAzOCwgTGFuZSA5MSAsIFNlYy4gMSAsIE5laSBIdSBSb2FkCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLUJBICAgKGhleCkJCU5vcnRlbAorMDAxQkJBICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xQi1CQiAgIChoZXgpCQlSRlRlY2ggQ28uLEx0ZAorMDAxQkJCICAgICAoYmFzZSAxNikJCVJGVGVjaCBDby4sTHRkCisJCQkJMzM5LTE3IEp3YWhhbmctUmksV29uc2FtLU15dW4sCisJCQkJQ2hlb2luLUd1CisJCQkJWW9uZ2luLVNpIEt5dW5na2ktRG8gNDQ5LTg3MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi1CQyAgIChoZXgpCQlTaWx2ZXIgUGVhayBTeXN0ZW1zLCBJbmMuCiswMDFCQkMgICAgIChiYXNlIDE2KQkJU2lsdmVyIFBlYWsgU3lzdGVtcywgSW5jLgorCQkJCTQ3MSBFbCBDYW1pbm8gUmVhbAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1CRCAgIChoZXgpCQlGTUMgS29uZ3NiZXJnIFN1YnNlYSBBUworMDAxQkJEICAgICAoYmFzZSAxNikJCUZNQyBLb25nc2JlcmcgU3Vic2VhIEFTCisJCQkJS2lya2VnYWFyZHN2ZWllbiA0NQorCQkJCUtvbmdzYmVyZyBCdXNrZXJ1ZCAzNjAxCisJCQkJTk9SV0FZCisKKzAwLTFCLUJFICAgKGhleCkJCUlDT1AgRGlnaXRhbAorMDAxQkJFICAgICAoYmFzZSAxNikJCUlDT1AgRGlnaXRhbAorCQkJCTE2ODAxIFcuIDExNnRoIFN0LgorCQkJCUxlbmV4YSBLUyA2NjIxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItQkYgICAoaGV4KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorMDAxQkJGICAgICAoYmFzZSAxNikJCVNBR0VNIENPTU1VTklDQVRJT04KKwkJCQkxNCBSdWUgUGF1bCBEYXV0aWVyCisJCQkJVmVsaXp5ICA3ODQ1NworCQkJCUZSQU5DRQorCiswMC0xQi1DMCAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCiswMDFCQzAgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUMxICAgKGhleCkJCUhPTFVYIFRlY2hub2xvZ3ksIEluYy4KKzAwMUJDMSAgICAgKGJhc2UgMTYpCQlIT0xVWCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMUYsIE5vLiAzMCwgUiZEIFJkLiBJSSwKKwkJCQlTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItQzIgICAoaGV4KQkJSW50ZWdyYXRlZCBDb250cm9sIFRlY2hub2xvZ3kgTGltaXRpZWQKKzAwMUJDMiAgICAgKGJhc2UgMTYpCQlJbnRlZ3JhdGVkIENvbnRyb2wgVGVjaG5vbG9neSBMaW1pdGllZAorCQkJCTZDIEFzY2Vuc2lvbiBQbGFjZQorCQkJCU1haXJhbmdpIEJheQorCQkJCUF1Y2tsYW5kIEF1Y2tsYW5kIDA3MzUKKwkJCQlORVcgWkVBTEFORAorCiswMC0xQi1DMyAgIChoZXgpCQlNb2Jpc29sdXRpb24gQ28uLEx0ZAorMDAxQkMzICAgICAoYmFzZSAxNikJCU1vYmlzb2x1dGlvbiBDby4sTHRkCisJCQkJODQ4LTE2CisJCQkJR3V5ZW9uZy1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTMwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi1DNCAgIChoZXgpCQlVbHRyYXRlYywgSW5jLgorMDAxQkM0ICAgICAoYmFzZSAxNikJCVVsdHJhdGVjLCBJbmMuCisJCQkJNDUwIFNjaWVuY2UgRHJpdmUKKwkJCQlNYWRpc29uIFdJIDUzNzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1DNSAgIChoZXgpCQlJRUVFIFJlZ2lzdHJhdGlvbiBBdXRob3JpdHkKKzAwMUJDNSAgICAgKGJhc2UgMTYpCQlJRUVFIFJlZ2lzdHJhdGlvbiBBdXRob3JpdHkKKwkJCQk0NDUgSG9lcyBMYW5lCisJCQkJUGlzY2F0YXdheSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItQzYgICAoaGV4KQkJU3RyYXRvIFJlY2hlbnplbnRydW0gQUcKKzAwMUJDNiAgICAgKGJhc2UgMTYpCQlTdHJhdG8gUmVjaGVuemVudHJ1bSBBRworCQkJCVBhc2NhbHN0cmFzc2UgMTAKKwkJCQlELTEwNTg3IEJlcmxpbiAKKwkJCQlHRVJNQU5ZCisKKzAwLTFCLUM3ICAgKGhleCkJCVN0YXJWZWRpYSBUZWNobm9sb2d5IEluYy4KKzAwMUJDNyAgICAgKGJhc2UgMTYpCQlTdGFyVmVkaWEgVGVjaG5vbG9neSBJbmMuCisJCQkJM0YsIE5vLiAyNDcsIERvbmUgU2VjLiAxLCBHdWFuZ21pbmcgNnRoIFJkLgorCQkJCUpodWJlaSBIc2luLUNodSBDb3VudHkgMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1DOCAgIChoZXgpCQlNSVVSQSBDTy4sTFRECiswMDFCQzggICAgIChiYXNlIDE2KQkJTUlVUkEgQ08uLExURAorCQkJCTg2NC0xLEhvanlvdHN1amkKKwkJCQlNYXRzdXlhbWEgRWhpbWUgNzk5LTI0MzAKKwkJCQlKQVBBTgorCiswMC0xQi1DOSAgIChoZXgpCQlGU04gRElTUExBWSBJTkMKKzAwMUJDOSAgICAgKGJhc2UgMTYpCQlGU04gRElTUExBWSBJTkMKKwkJCQlCYWVrc3VrLURvbmcgMTE0MS0xLCBJbHNhbiBUZWNobm8gVG93biAxMDA5CisJCQkJS295YW5nLVNpLCBJbHNhbi1HdSwgS3llb25nZ2ktRG8sIFJlcHVibGljIG9mIEtvcmVhCisJCQkJS295YW5nLXNpIEt5ZW9uZ2dpLURvIDQxMDcyMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi1DQSAgIChoZXgpCQlCZWlqaW5nIFJ1biBUZWNobm9sb2d5IExURC4gQ29tcGFueQorMDAxQkNBICAgICAoYmFzZSAxNikJCUJlaWppbmcgUnVuIFRlY2hub2xvZ3kgTFRELiBDb21wYW55CisJCQkJNC9GLCBIYW5ndGlhbiBUZWNobm9sb2d5IEJ1aWxkaW5nCisJCQkJQmVpamluZyAxMDAwMzcKKwkJCQlDSElOQQorCiswMC0xQi1DQiAgIChoZXgpCQlQRU1QRUsgU1lTVEVNUyBQVFkgTFRECiswMDFCQ0IgICAgIChiYXNlIDE2KQkJUEVNUEVLIFNZU1RFTVMgUFRZIExURAorCQkJCVVOSVQgMyAvIDEzIEhPWUxFIEFWRU5VRQorCQkJCUNBU1RMRSBISUxMIE5TVyAyMTU0CisJCQkJQVVTVFJBTElBCisKKzAwLTFCLUNDICAgKGhleCkJCUtJTkdURUsgQ0NUViBBTExJQU5DRSBDTy4sIExURC4KKzAwMUJDQyAgICAgKGJhc2UgMTYpCQlLSU5HVEVLIENDVFYgQUxMSUFOQ0UgQ08uLCBMVEQuCisJCQkJNUYtMywgTk8uIDEwNiwgU0VDLiAzLCBIU0lOIFlJIFJPQUQKKwkJCQlUQUlQRUkgIDEwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItQ0QgICAoaGV4KQkJREFWSVNDT01NUyAoUykgUFRFIExURAorMDAxQkNEICAgICAoYmFzZSAxNikJCURBVklTQ09NTVMgKFMpIFBURSBMVEQKKwkJCQlCbGsgNzAgVWJpIENyZXNjZW50ICMwMS0wNworCQkJCVViaSBUZWNocGFyaworCQkJCTQwODU3MAorCQkJCVNJTkdBUE9SRQorCiswMC0xQi1DRSAgIChoZXgpCQlNZWFzdXJlbWVudCBEZXZpY2VzIEx0ZAorMDAxQkNFICAgICAoYmFzZSAxNikJCU1lYXN1cmVtZW50IERldmljZXMgTHRkCisJCQkJU2lsdmVyYnVybiBDcmVzY2VudAorCQkJCUJyaWRnZSBvZiBEb24KKwkJCQlBYmVyZGVlbiBBYmVyZGVlbnNoaXJlIEFCMjMgOEVXCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUItQ0YgICAoaGV4KQkJRGF0YXVwaWEgQ29ycG9yYXRpb24KKzAwMUJDRiAgICAgKGJhc2UgMTYpCQlEYXRhdXBpYSBDb3Jwb3JhdGlvbgorCQkJCU9uZSBBbGV3aWZlIENlbnRlcgorCQkJCUNhbWJyaWRnZSBNQSAwMjE0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItRDAgICAoaGV4KQkJSURFTlRFQyBTT0xVVElPTlMKKzAwMUJEMCAgICAgKGJhc2UgMTYpCQlJREVOVEVDIFNPTFVUSU9OUworCQkJCUhlcnR6c3RyLiAxMAorCQkJCVdlaW5oZWltICA2OTQ2OQorCQkJCUdFUk1BTlkKKworMDAtMUItRDEgICAoaGV4KQkJU09HRVNUTUFUSUMKKzAwMUJEMSAgICAgKGJhc2UgMTYpCQlTT0dFU1RNQVRJQworCQkJCTQwOSBSb3V0ZSBkZSBsYSBHYXJlCisJCQkJQ0hBVEVBVU5FVUYgREUgR0FEQUdORSBQQUNBIDg0NDcwCisJCQkJRlJBTkNFCisKKzAwLTFCLUQyICAgKGhleCkJCVVMVFJBLVggQVNJQSBQQUNJRklDIEluYy4KKzAwMUJEMiAgICAgKGJhc2UgMTYpCQlVTFRSQS1YIEFTSUEgUEFDSUZJQyBJbmMuCisJCQkJNS0xLTE1IFNvdG9rYW5kYQorCQkJCVRva3lvIENoaXlvZGEta3UgMTAxLTAwMjEKKwkJCQlKQVBBTgorCiswMC0xQi1EMyAgIChoZXgpCQlNYXRzdXNoaXRhIEVsZWN0cmljIFBhbmFzb25pYyBBVkMKKzAwMUJEMyAgICAgKGJhc2UgMTYpCQlNYXRzdXNoaXRhIEVsZWN0cmljIFBhbmFzb25pYyBBVkMKKwkJCQkxLTE1IE1hdHN1by1jaG8KKwkJCQk2NzgtNTE4CisJCQkJS2Fkb21hIE9zYWthIDU3MS04NTA0CisJCQkJSkFQQU4KKworMDAtMUItRDQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQkQ0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUQ1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUJENSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1ENiAgIChoZXgpCQlLZWx2aW4gSHVnaGVzIEx0ZAorMDAxQkQ2ICAgICAoYmFzZSAxNikJCUtlbHZpbiBIdWdoZXMgTHRkCisJCQkJTmV3IE5vcnRoIFJvYWQKKwkJCQlIYWluYXVsdAorCQkJCUlsZm9yZCBFc3NleCBJRzYgMlVSCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUItRDcgICAoaGV4KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBBIENpc2NvIENvbXBhbnkKKzAwMUJENyAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIEF0bGFudGEsIEEgQ2lzY28gQ29tcGFueQorCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlBVEwgMS4zLjQ3MworCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUQ4ICAgKGhleCkJCURWVGVsIExURAorMDAxQkQ4ICAgICAoYmFzZSAxNikJCURWVGVsIExURAorCQkJCTUgU2FwaXIKKwkJCQk0Njg1MiBIZXJ6ZWxpYSAKKwkJCQlJU1JBRUwKKworMDAtMUItRDkgICAoaGV4KQkJRWRnZXdhdGVyIENvbXB1dGVyIFN5c3RlbXMKKzAwMUJEOSAgICAgKGJhc2UgMTYpCQlFZGdld2F0ZXIgQ29tcHV0ZXIgU3lzdGVtcworCQkJCTExMjUgSW5ub3ZhdGlvbiBEcml2ZQorCQkJCU90dGF3YSBPbnRhcmlvIEsySy0zRzYKKwkJCQlDQU5BREEKKworMDAtMUItREEgICAoaGV4KQkJVVRTdGFyY29tIEluYworMDAxQkRBICAgICAoYmFzZSAxNikJCVVUU3RhcmNvbSBJbmMKKwkJCQkxMjc1IEhhcmJvciBCYXkgUEtXWQorCQkJCUFsYW1lZGEgQ0EgOTQ1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLURCICAgKGhleCkJCVZhbGVvIFZFQ1MKKzAwMUJEQiAgICAgKGJhc2UgMTYpCQlWYWxlbyBWRUNTCisJCQkJMiBBdmVudWUgRmVybmFuZCBQb3VpbGxvbgorCQkJCUV1cm9wYXJjCisJCQkJQ1JFVEVJTCBJbGUgZGUgRnJhbmNlIDk0MDQyCisJCQkJRlJBTkNFCisKKzAwLTFCLURDICAgKGhleCkJCVZlbmNlciBDby4sIEx0ZC4KKzAwMUJEQyAgICAgKGJhc2UgMTYpCQlWZW5jZXIgQ28uLCBMdGQuCisJCQkJMjBGLTEsIE5vLjc3LCBTZWMuMSwgSHNpbiBUYWkgV3UgUmQuLAorCQkJCUhzaSBDaGloIFRhaXBlaSAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLUREICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxQkREICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLURFICAgKGhleCkJCVJlbmt1cy1IZWlueiwgSW5jLgorMDAxQkRFICAgICAoYmFzZSAxNikJCVJlbmt1cy1IZWlueiwgSW5jLgorCQkJCTE5MjAxIENvb2sgU3QuCisJCQkJRm9vdGhpbGwgUmFuY2ggQ0EgOTI2MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLURGICAgKGhleCkJCUlza3JhIE1JUworMDAxQkRGICAgICAoYmFzZSAxNikJCUlza3JhIE1JUworCQkJCUxqdWJsamFuc2thIGNlc3RhIDI0YQorCQkJCUtyYW5qIFNsb3ZlbmlhIDQwMDAKKwkJCQlTTE9WRU5JQQorCiswMC0xQi1FMCAgIChoZXgpCQlURUxFTk9UIEVMRUNUUk9OSUMgR21iSAorMDAxQkUwICAgICAoYmFzZSAxNikJCVRFTEVOT1QgRUxFQ1RST05JQyBHbWJICisJCQkJV2llc2VudGFsc3RyYXNzZSA0MgorCQkJCUFhbGVuIEJhZGVuLVd1cnR0ZW1iZXJnIDczNDM0CisJCQkJR0VSTUFOWQorCiswMC0xQi1FMSAgIChoZXgpCQlWaWFMb2d5CiswMDFCRTEgICAgIChiYXNlIDE2KQkJVmlhTG9neQorCQkJCTI0MDAgTGluY29sbiBBdmUKKwkJCQlBbHRhZGVuYSBDQSA5MTAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItRTIgICAoaGV4KQkJQWhuTGFiLEluYy4KKzAwMUJFMiAgICAgKGJhc2UgMTYpCQlBaG5MYWIsSW5jLgorCQkJCTZ0aCBGbCwgQ0NNTSBCbGRnLCAxMiBZZW91aWRvLWRvbmcKKwkJCQlTZW91bCAgMTUwODY5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLUUzICAgKGhleCkJCUhlYWx0aCBIZXJvIE5ldHdvcmssIEluYy4KKzAwMUJFMyAgICAgKGJhc2UgMTYpCQlIZWFsdGggSGVybyBOZXR3b3JrLCBJbmMuCisJCQkJMjAwMCBTZWFwb3J0IEJsdmQuCisJCQkJU3VpdGUgNDAwCisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1FNCAgIChoZXgpCQlUT1dORVQgU1JMCiswMDFCRTQgICAgIChiYXNlIDE2KQkJVE9XTkVUIFNSTAorCQkJCVZJQSBERUkgRklOQUxFLCAyMAorCQkJCTYxMDQzIENBR0xJIChQVSkgCisJCQkJSVRBTFkKKworMDAtMUItRTUgICAoaGV4KQkJODAyYXV0b21hdGlvbiBMaW1pdGVkCiswMDFCRTUgICAgIChiYXNlIDE2KQkJODAyYXV0b21hdGlvbiBMaW1pdGVkCisJCQkJMTggRmlyc3QgQXZlbnVlCisJCQkJV29ydGhpbmcgV2VzdCBTdXNzZXggQk4xNCA5TkoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQi1FNiAgIChoZXgpCQlWUiBBRworMDAxQkU2ICAgICAoYmFzZSAxNikJCVZSIEFHCisJCQkJUnV0aXN0cmFzc2UgMTgKKwkJCQlTY2hsaWVyZW4gIENILTg5NTIKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xQi1FNyAgIChoZXgpCQlQb3N0ZWsgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDFCRTcgICAgIChiYXNlIDE2KQkJUG9zdGVrIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCVN1aXRlIDUxMCwgU2hhbmdoYW5nIEJ1aWxkaW5nCisJCQkJSG9uZ2xpIFJvYWQKKwkJCQlTaGVuIFpoZW4gR3VhbmcgRG9uZyA1MTgwMjgKKwkJCQlDSElOQQorCiswMC0xQi1FOCAgIChoZXgpCQlVbHRyYXRyb25payBHbWJICiswMDFCRTggICAgIChiYXNlIDE2KQkJVWx0cmF0cm9uaWsgR21iSAorCQkJCUdld2VyYmVzdHIuIDUyCisJCQkJSGVycnNjaGluZyBCYXZhcmlhIEQtODIyMTEKKwkJCQlHRVJNQU5ZCisKKzAwLTFCLUU5ICAgKGhleCkJCUJyb2FkY29tIENvcnBvcmF0aW9uCiswMDFCRTkgICAgIChiYXNlIDE2KQkJQnJvYWRjb20gQ29ycG9yYXRpb24KKwkJCQkxNjIxNSBBbHRvbiBQYXJrd2F5CisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1FQSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMUJFQSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xQi1FQiAgIChoZXgpCQlETVAgRWxlY3Ryb25pY3MgSU5DLgorMDAxQkVCICAgICAoYmFzZSAxNikJCURNUCBFbGVjdHJvbmljcyBJTkMuCisJCQkJOEYuLCBOby4xMiwgV3VjeXVhbiA3dGggUmQuCisJCQkJV3VndSBUb3duc2hpcAorCQkJCVRhaXBlaSBDb3VudHkgIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItRUMgICAoaGV4KQkJTmV0aW8gVGVjaG5vbG9naWVzIENvLiwgTHRkCiswMDFCRUMgICAgIChiYXNlIDE2KQkJTmV0aW8gVGVjaG5vbG9naWVzIENvLiwgTHRkCisJCQkJNEYtMSwgTm8uIDU4MiwgUnVlaWd1YW5nIFJkLiwgTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNDkyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1FRCAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworMDAxQkVEICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCisJCQkJMTc0NSBUZWNobm9sb2d5IERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUVFICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFCRUUgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTFCLUVGICAgKGhleCkJCUJsb3Nzb21zIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkLgorMDAxQkVGICAgICAoYmFzZSAxNikJCUJsb3Nzb21zIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCUJMSzI1LEhlbmdmZW5nIEluZC5DaXR5LEhlemhvdQorCQkJCVhpeGlhbmcgVG93bgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjYKKwkJCQlDSElOQQorCiswMC0xQi1GMCAgIChoZXgpCQlWYWx1ZSBQbGF0Zm9ybXMgTGltaXRlZAorMDAxQkYwICAgICAoYmFzZSAxNikJCVZhbHVlIFBsYXRmb3JtcyBMaW1pdGVkCisJCQkJUm0gNzEyLTcxMywgQnVpbGRpbmcgOSwgNSwgU2NpZW5jZSBQYXJrIFdlc3QgQXZlLiwKKwkJCQlIb25nIEtvbmcgU2NpZW5jZSBQYXJrLAorCQkJCVNoYXRpbiwgIAorCQkJCUhPTkcgS09ORworCiswMC0xQi1GMSAgIChoZXgpCQlOYW5qaW5nIFNpbHZlck5ldCBTb2Z0d2FyZSBDby4sIEx0ZC4KKzAwMUJGMSAgICAgKGJhc2UgMTYpCQlOYW5qaW5nIFNpbHZlck5ldCBTb2Z0d2FyZSBDby4sIEx0ZC4KKwkJCQkzL0YsIDEwIGJ1aWxkaW5nLCBOYW5qaW5nIFdvcmxkIFdpbmRvdyBUZWNobm9sb2d5ICYgU29mdHdhcmUgUGFyaworCQkJCTEyIERpbmdIdWFpTWVuLCBHdWxvdSBEaXN0cmljdCwgTmFuamluZworCQkJCU5hbmppbmcgSmlhbmdzdSAyMTAwMTMKKwkJCQlDSElOQQorCiswMC0xQi1GMiAgIChoZXgpCQlLV09STEQgQ09NUFVURVIgQ08uLCBMVEQKKzAwMUJGMiAgICAgKGJhc2UgMTYpCQlLV09STEQgQ09NUFVURVIgQ08uLCBMVEQKKwkJCQlOby4gMTEzLCBKaWFuIDJuZCBSZC4sCisJCQkJSmhvbmdoZSBUYWlwZWkgY291bnR5IDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItRjMgICAoaGV4KQkJVFJBTlNSQURJTyBTZW5kZXJTeXN0ZW1lIEJlcmxpbiBBRworMDAxQkYzICAgICAoYmFzZSAxNikJCVRSQU5TUkFESU8gU2VuZGVyU3lzdGVtZSBCZXJsaW4gQUcKKwkJCQlNZXJ0ZW5zc3RyYXNzZSA2MworCQkJCUJlcmxpbiAxMzU4NworCQkJCUdFUk1BTlkKKworMDAtMUItRjQgICAoaGV4KQkJS0VOV0lOIElORFVTVFJJQUwoSEspIExURC4KKzAwMUJGNCAgICAgKGJhc2UgMTYpCQlLRU5XSU4gSU5EVVNUUklBTChISykgTFRELgorCQkJCVJNLjE1MTIgMTUvRiBTSEFUSU4gR0FMTEVSSUEKKwkJCQkxOC0yNCBTSEFOIE1FSSBTVCwgRk9UQU4KKwkJCQlIT05HIEtPTkcKKworMDAtMUItRjUgICAoaGV4KQkJVGVsbGluayBTaXN0ZW1hcyBkZSBUZWxlY29tdW5pY2FjaW9uIFMuTC4KKzAwMUJGNSAgICAgKGJhc2UgMTYpCQlUZWxsaW5rIFNpc3RlbWFzIGRlIFRlbGVjb211bmljYWNpb24gUy5MLgorCQkJCUMvIE1hcmlhIFR1YmF1IE4/IDUgQmFqbyBCCisJCQkJTWFkcmlkICAyODA1MAorCQkJCVNQQUlOCisKKzAwLTFCLUY2ICAgKGhleCkJCUNPTldJU0UgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbiBMdGQuCiswMDFCRjYgICAgIChiYXNlIDE2KQkJQ09OV0lTRSBUZWNobm9sb2d5IENvcnBvcmF0aW9uIEx0ZC4KKwkJCQkyRiBOby40NCwgUGFyayBBdmUuIDIsIEhzaW5jaHUgU2NpZW5jZSBQYXJrCisJCQkJSHNpbmNodSBDaXR5ICAzMDA3NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItRjcgICAoaGV4KQkJTHVuZCBJUCBQcm9kdWN0cyBBQgorMDAxQkY3ICAgICAoYmFzZSAxNikJCUx1bmQgSVAgUHJvZHVjdHMgQUIKKwkJCQlEYWxieXYuIDEKKwkJCQlMdW5kIFNrYW5lIDIyNCA2MAorCQkJCVNXRURFTgorCiswMC0xQi1GOCAgIChoZXgpCQlEaWdpdHJheCBJbmMuCiswMDFCRjggICAgIChiYXNlIDE2KQkJRGlnaXRyYXggSW5jLgorCQkJCTI0NDMgVHJhbnNtaXR0ZXIgUmQsCisJCQkJU3VpdGUgMjA2CisJCQkJUGFuYW1hIENpdHkgRkwgMzI0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUY5ICAgKGhleCkJCUludGVsbGl0ZWN0IFdhdGVyIEx0ZAorMDAxQkY5ICAgICAoYmFzZSAxNikJCUludGVsbGl0ZWN0IFdhdGVyIEx0ZAorCQkJCVN1aXRlIDE5LCBCYXNlcG9pbnQgQnVzaW5lc3MgQ2VudHJlCisJCQkJQXZpYXRpb24gUGFyayBXZXN0CisJCQkJQ2hyaXN0Y2h1cmNoIERvcnNldCBCSDIzIF5OVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFCLUZBICAgKGhleCkJCUcuaS5OLiBtYkgKKzAwMUJGQSAgICAgKGJhc2UgMTYpCQlHLmkuTi4gbWJICisJCQkJUmFpZmZlaXNlbnN0ci4gMTUKKwkJCQlHcmllc2hlaW0gSGVzc2VuIDY0MzQ3CisJCQkJR0VSTUFOWQorCiswMC0xQi1GQiAgIChoZXgpCQlBbHBzIEVsZWN0cmljIENvLiwgTHRkCiswMDFCRkIgICAgIChiYXNlIDE2KQkJQWxwcyBFbGVjdHJpYyBDby4sIEx0ZAorCQkJCTEtMi0xLCBPa2lub3VjaGkKKwkJCQlTb21hLWNpdHkgRnVrdXNoaW1hLS1wcmVmIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMUItRkMgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCiswMDFCRkMgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdQorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1GRCAgIChoZXgpCQlEaWduc3lzIEluYy4KKzAwMUJGRCAgICAgKGJhc2UgMTYpCQlEaWduc3lzIEluYy4KKwkJCQkxNEYsIERpZ2l0YWwgRW1waXJlIEJsZGcuLCBCLTE0MDgKKwkJCQlZZW9uZ3RvbmctZ3UsCisJCQkJU3V3b24gR3llb25nZ2ktZG8gNDQzLTgxMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi1GRSAgIChoZXgpCQlaYXZpbyBJbmMuCiswMDFCRkUgICAgIChiYXNlIDE2KQkJWmF2aW8gSW5jLgorCQkJCU5vLjEsTGlzaW5nIDFzdCBSZC4gU2NpZW5jZSBCYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1GRiAgIChoZXgpCQlNaWxsZW5uaWEgTWVkaWEgaW5jLgorMDAxQkZGICAgICAoYmFzZSAxNikJCU1pbGxlbm5pYSBNZWRpYSBpbmMuCisJCQkJNDIwMCBEYXkgU3ByaW5nIENUCisJCQkJUGxhY2VydmlsbGUgQ0EgOTU2NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTAwICAgKGhleCkJCUVudHJ5IFBvaW50LCBMTEMKKzAwMUMwMCAgICAgKGJhc2UgMTYpCQlFbnRyeSBQb2ludCwgTExDCisJCQkJUC5PLiBCb3ggMzM1NAorCQkJCTkzMCBFYXN0IExpbmNvbG4gUm9hZAorCQkJCUlkYWhvIEZhbGxzIElkYWhvIDgzNDAzLTMzNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTAxICAgKGhleCkJCUFCQiBPeSBEcml2ZXMKKzAwMUMwMSAgICAgKGJhc2UgMTYpCQlBQkIgT3kgRHJpdmVzCisJCQkJSGlvbW90aWUgMTMKKwkJCQlIZWxzaW5raSAgRkktMDAzODAKKwkJCQlGSU5MQU5ECisKKzAwLTFDLTAyICAgKGhleCkJCVBhbm8gTG9naWMKKzAwMUMwMiAgICAgKGJhc2UgMTYpCQlQYW5vIExvZ2ljCisJCQkJMjAwMCBTZWFwb3J0IERyaXZlLCBTdWl0ZSAyMDAKKwkJCQlTdWl0ZSAyMDAKKwkJCQlSZWR3b29kIENpdHkgQ0EgOTQwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTAzICAgKGhleCkJCUJldHR5IFRWIFRlY2hub2xvZ3kgQUcKKzAwMUMwMyAgICAgKGJhc2UgMTYpCQlCZXR0eSBUViBUZWNobm9sb2d5IEFHCisJCQkJSGFyZHR1cm1zdHJhc3NlIDIKKwkJCQladXJpY2ggIDgwMDA1CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUMtMDQgICAoaGV4KQkJQWlyZ2FpbiwgSW5jLgorMDAxQzA0ICAgICAoYmFzZSAxNikJCUFpcmdhaW4sIEluYy4KKwkJCQkxOTMwIFBhbG9tYXIgUG9pbnQgV2F5CisJCQkJU3VpdGUgMTA3CisJCQkJQ2FybHNiYWQgQ0EgOTIwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTA1ICAgKGhleCkJCU5vbmluIE1lZGljYWwgSW5jLgorMDAxQzA1ICAgICAoYmFzZSAxNikJCU5vbmluIE1lZGljYWwgSW5jLgorCQkJCTEzNzAwIDFzdCBBdmVudWUgTm9ydGgKKwkJCQlQbHltb3V0aCBNTiA1NTQ0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMDYgICAoaGV4KQkJU2llbWVucyBOdW1lcmljYWwgQ29udHJvbCBMdGQuLCBOYW5qaW5nCiswMDFDMDYgICAgIChiYXNlIDE2KQkJU2llbWVucyBOdW1lcmljYWwgQ29udHJvbCBMdGQuLCBOYW5qaW5nCisJCQkJTm8uIDE4IFNpZW1lbnMgUm9hZCwgSmlhbmduaW5nIERldmVsb3BtZW50IFpvbmUKKwkJCQlOYW5qaW5nIEppYW5nU3UgMjExMTAwCisJCQkJQ0hJTkEKKworMDAtMUMtMDcgICAoaGV4KQkJQ3dsaW51eCBMaW1pdGVkCiswMDFDMDcgICAgIChiYXNlIDE2KQkJQ3dsaW51eCBMaW1pdGVkCisJCQkJVW5pdCAxMzgsIDEzL0YsIFdlc3dpY2sgQ29tbWVyY2lhbCBCdWlsZGluZywKKwkJCQkxNDctMTUxIFF1ZWVuJ3MgUm9hZCBFYXN0LAorCQkJCVdhbiBDaGFpICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUMtMDggICAoaGV4KQkJRWNobzM2MCwgSW5jLgorMDAxQzA4ICAgICAoYmFzZSAxNikJCUVjaG8zNjAsIEluYy4KKwkJCQkyMTAwMCBBdGxhbnRpYyBCbHZkCisJCQkJU3VpdGUgNjAwCisJCQkJRHVsbGVzIFZBIDIwMTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0wOSAgIChoZXgpCQlTQUUgRWxlY3Ryb25pYyBDby4sTHRkLgorMDAxQzA5ICAgICAoYmFzZSAxNikJCVNBRSBFbGVjdHJvbmljIENvLixMdGQuCisJCQkJMjMvRixZaW5nIExvbmcgWmhhbiBZZSBCdWlsZGluZywKKwkJCQlOby42MDI1LCBTaGVuIE5hbiBSb2FkLEZ1dGlhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nIERvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworMDAtMUMtMEEgICAoaGV4KQkJU2hlbnpoZW4gQUVFIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMUMwQSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBBRUUgVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTFzdCBGbG9vciBCIEJ1aWxkaW5nLCBTaGVuemhlbiwKKwkJCQlUc2luZ2h1YSBIaS1UZWNoIFBhcmssIE5hbnNoYW4gSGktVGVjaCBQYXJrIE5vcnRoLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xQy0wQiAgIChoZXgpCQlTbWFydEFudCBUZWxlY29tCiswMDFDMEIgICAgIChiYXNlIDE2KQkJU21hcnRBbnQgVGVsZWNvbQorCQkJCTJGLCBOby4gNjY5LCBTZWMuIDQsIENodW5nIEhzaW5nIFJkLiwgQ2h1dHVuZworCQkJCUhzaW5jaHUgIDMxMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtMEMgICAoaGV4KQkJVEFOSVRBIENvcnBvcmF0aW9uCiswMDFDMEMgICAgIChiYXNlIDE2KQkJVEFOSVRBIENvcnBvcmF0aW9uCisJCQkJMS0xNC0yLE1hZW5vLWNobworCQkJCUl0YWJhc2hpLWt1CisJCQkJVG9reW8gIDE3NC04NjMwCisJCQkJSkFQQU4KKworMDAtMUMtMEQgICAoaGV4KQkJRy1UZWNobm9sb2d5LCBJbmMuCiswMDFDMEQgICAgIChiYXNlIDE2KQkJRy1UZWNobm9sb2d5LCBJbmMuCisJCQkJMTY1MyBTdGFuZm9yZCBTdHJlZXQKKwkJCQlTYW50YSBNb25pY2EgQ0EgOTA0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTBFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUMwRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0wRiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFDMEYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMTAgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCiswMDFDMTAgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0xMSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxQzExICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMTIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUMxMiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVUyA0NQorCQkJCUxpYmVydHl2aWxsZSBJbGxpbm9pcyA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMTMgICAoaGV4KQkJT1BUU1lTIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDFDMTMgICAgIChiYXNlIDE2KQkJT1BUU1lTIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJU1VJVEUgQi04MDIgQlVOREFORyBURUNITk8gUEFSSworCQkJCVlBVEFQLURPTkcsIEJVTkRBTkctS1UKKwkJCQlTRU9OR05BTS1TSSBHWUVPTkdHSS1ETyA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTE0ICAgKGhleCkJCVZNd2FyZSwgSW5jCiswMDFDMTQgICAgIChiYXNlIDE2KQkJVk13YXJlLCBJbmMKKwkJCQkzNDAxIEhpbGx2aWV3IEF2ZW51ZQorCQkJCVBhbG8gQWx0byBDQSA5NDMwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMTUgICAoaGV4KQkJVFhQIENvcnBvcmF0aW9uCiswMDFDMTUgICAgIChiYXNlIDE2KQkJVFhQIENvcnBvcmF0aW9uCisJCQkJMTI5OSBDb21tZXJjZSBEci4KKwkJCQlSaWNoYXJkc29uIFRleGFzIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0xNiAgIChoZXgpCQlUaHlzc2VuS3J1cHAgRWxldmF0b3IKKzAwMUMxNiAgICAgKGJhc2UgMTYpCQlUaHlzc2VuS3J1cHAgRWxldmF0b3IKKwkJCQk5MjgwIENyZXN0d3luIEhpbGxzIERyaXZlCisJCQkJTWVtcGhpcyBUTiAzODEyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMTcgICAoaGV4KQkJTm9ydGVsCiswMDFDMTcgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTFDLTE4ICAgKGhleCkJCVNpY2VydCBTLnIuTC4KKzAwMUMxOCAgICAgKGJhc2UgMTYpCQlTaWNlcnQgUy5yLkwuCisJCQkJVmlhIEJlcm5hcmRpbm8gQWxpbWVuYSwgMTI4CisJCQkJUm9tZSAgMDAxNzMKKwkJCQlJVEFMWQorCiswMC0xQy0xOSAgIChoZXgpCQlzZWN1bmV0IFNlY3VyaXR5IE5ldHdvcmtzIEFHCiswMDFDMTkgICAgIChiYXNlIDE2KQkJc2VjdW5ldCBTZWN1cml0eSBOZXR3b3JrcyBBRworCQkJCUtyb25wcmluemVuc3RyYXNzZSAzMAorCQkJCUVzc2VuIE5SVyA0NTEyOAorCQkJCUdFUk1BTlkKKworMDAtMUMtMUEgICAoaGV4KQkJVGhvbWFzIEluc3RydW1lbnRhdGlvbiwgSW5jCiswMDFDMUEgICAgIChiYXNlIDE2KQkJVGhvbWFzIEluc3RydW1lbnRhdGlvbiwgSW5jCisJCQkJMTMzIExhbmRpbmcgUmQKKwkJCQlDYXBlIE1heSBDb3VydCBIb3VzZSBOSiAwODIxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMUIgICAoaGV4KQkJSHlwZXJzdG9uZSBHbWJICiswMDFDMUIgICAgIChiYXNlIDE2KQkJSHlwZXJzdG9uZSBHbWJICisJCQkJTGluZS1FaWQtU3RyLiAzCisJCQkJS29uc3RhbnogQmFkZW4tV3VydHRlbWJlcmcgNzg0NjcKKwkJCQlHRVJNQU5ZCisKKzAwLTFDLTFDICAgKGhleCkJCUNlbnRlciBDb21tdW5pY2F0aW9uIFN5c3RlbXMgR21iSAorMDAxQzFDICAgICAoYmFzZSAxNikJCUNlbnRlciBDb21tdW5pY2F0aW9uIFN5c3RlbXMgR21iSAorCQkJCUlnbmF6LUtvZWNrLVN0cmFzc2UgMTkKKwkJCQlWaWVubmEgIEEtMTIxMAorCQkJCUFVU1RSSUEKKworMDAtMUMtMUQgICAoaGV4KQkJQ0hFTlpIT1UgR09TUEVMTCBESUdJVEFMIFRFQ0hOT0xPR1kgQ08uLExURAorMDAxQzFEICAgICAoYmFzZSAxNikJCUNIRU5aSE9VIEdPU1BFTEwgRElHSVRBTCBURUNITk9MT0dZIENPLixMVEQKKwkJCQlCQUlMVVRBTkcsU1VYSUFOIERJU1RSSUNULAorCQkJCUNIRU5aSE9VIEhVTkFOIDQyMzAyNQorCQkJCUNISU5BCisKKzAwLTFDLTFFICAgKGhleCkJCWVtdHJpb24gR21iSAorMDAxQzFFICAgICAoYmFzZSAxNikJCWVtdHJpb24gR21iSAorCQkJCUdyZXNjaGJhY2hzdHJhc3NlIDEyCisJCQkJS2FybHNydWhlIEJhZGVuIFd1ZXJ0dGVtYmVyZyA3NjIyOQorCQkJCUdFUk1BTlkKKworMDAtMUMtMUYgICAoaGV4KQkJUXVlc3QgUmV0YWlsIFRlY2hub2xvZ3kgUHR5IEx0ZAorMDAxQzFGICAgICAoYmFzZSAxNikJCVF1ZXN0IFJldGFpbCBUZWNobm9sb2d5IFB0eSBMdGQKKwkJCQkzNy0zOSBXYWxzaCBTdHJlZXQKKwkJCQlUaGViYXJ0b24gU0EgNTAzMQorCQkJCUFVU1RSQUxJQQorCiswMC0xQy0yMCAgIChoZXgpCQlDTEIgQmVuZWx1eAorMDAxQzIwICAgICAoYmFzZSAxNikJCUNMQiBCZW5lbHV4CisJCQkJUmFtZ2F0c2V3ZWcgMTcKKwkJCQlSYWFtc2RvbmtzdmVlciBOQlIgNDk0MSBWTgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTFDLTIxICAgKGhleCkJCU51Y3NhZmUgSW5jLgorMDAxQzIxICAgICAoYmFzZSAxNikJCU51Y3NhZmUgSW5jLgorCQkJCTYwMSBPYWsgUmlkZ2UgVHVybnBpa2UKKwkJCQlPYWsgUmlkZ2UgVGVubmVzc2VlIDM3ODMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0yMiAgIChoZXgpCQlBZXJpcyBFbGV0dHJvbmljYSBzLnIubC4KKzAwMUMyMiAgICAgKGJhc2UgMTYpCQlBZXJpcyBFbGV0dHJvbmljYSBzLnIubC4KKwkJCQlab25hIEluZC5sZSBWYWxsZWN1cGEKKwkJCQlDb2xvbm5lbGxhIFRlcmFtbyA2NDAxMAorCQkJCUlUQUxZCisKKzAwLTFDLTIzICAgKGhleCkJCURlbGwgSW5jCiswMDFDMjMgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksICBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0yNCAgIChoZXgpCQlGb3Jtb3NhIFdpcmVsZXNzIFN5c3RlbXMgQ29ycC4KKzAwMUMyNCAgICAgKGJhc2UgMTYpCQlGb3Jtb3NhIFdpcmVsZXNzIFN5c3RlbXMgQ29ycC4KKwkJCQlOby4gNDA4LCBHdWFuZG9uZyBSZC4sCisJCQkJSHNpbkNodSBDaXR5ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLTI1ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzAwMUMyNSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJNjYsQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy0yNiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCiswMDFDMjYgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCTY2LENodW5nIFNoYW4gUmQuVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtMjcgICAoaGV4KQkJU3VuZWxsIEVsZWN0cm9uaWNzIENvLgorMDAxQzI3ICAgICAoYmFzZSAxNikJCVN1bmVsbCBFbGVjdHJvbmljcyBDby4KKwkJCQkzcmQgRmxvb3IsQmxkZy41MTQsQmFHdWEgUmQKKwkJCQlGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ2RvbmcgNTE4MDI5CisJCQkJQ0hJTkEKKworMDAtMUMtMjggICAoaGV4KQkJU3BoYWlyb24gVGVjaG5vbG9naWVzIEdtYkggCiswMDFDMjggICAgIChiYXNlIDE2KQkJU3BoYWlyb24gVGVjaG5vbG9naWVzIEdtYkggCisJCQkJUGhpbGlwcC1SZWlzLVN0cmFzc2UgMQorCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisJCQkJQmF1dHplbiBTYXhvbnkgMDI2MjUgICAgCisJCQkJR0VSTUFOWQorCiswMC0xQy0yOSAgIChoZXgpCQlDT1JFIERJR0lUQUwgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKzAwMUMyOSAgICAgKGJhc2UgMTYpCQlDT1JFIERJR0lUQUwgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKwkJCQkxMDA2IyAxMDIgQ0hVTlVJVEVDSE5PUEFSSyAyMDAtMQorCQkJCUNIVU5VSS1ET05HLCBXT05NSS1HVQorCQkJCUJVQ0hFT04tQ0lUWSBHWVVOR0dJLURPIDQyMC04NTcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtMkEgICAoaGV4KQkJRW52aXNhY29yIFRlY2hub2xvZ2llcyBJbmMuCiswMDFDMkEgICAgIChiYXNlIDE2KQkJRW52aXNhY29yIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMTQ4NDUtNiBZb25nZSBTdHJlZXQsIFN1aXRlIDMxMAorCQkJCUF1cm9yYSBPTiBMNEcgNkg4CisJCQkJQ0FOQURBCisKKzAwLTFDLTJCICAgKGhleCkJCUFsZXJ0bWUuY29tIExpbWl0ZWQKKzAwMUMyQiAgICAgKGJhc2UgMTYpCQlBbGVydG1lLmNvbSBMaW1pdGVkCisJCQkJMjctMjggQnJpZGdlIFN0cmVldAorCQkJCUNhbWJyaWRnZSBDYW1icmlkZ2VzaGlyZSBDQjIgMVVKCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUMtMkMgICAoaGV4KQkJU3luYXBzZQorMDAxQzJDICAgICAoYmFzZSAxNikJCVN5bmFwc2UKKwkJCQkxMzIgRXhwb3J0IENpcmNsZQorCQkJCUh1bnRzdmlsbGUgQUwgMzU4MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTJEICAgKGhleCkJCUZsZXhSYWRpbyBTeXN0ZW1zCiswMDFDMkQgICAgIChiYXNlIDE2KQkJRmxleFJhZGlvIFN5c3RlbXMKKwkJCQk4OTAwIE1hcnliYW5rIERyLgorCQkJCUF1c3RpbiBUWCA3ODc1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMkUgICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorMDAxQzJFICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkCisJCQkJUm9zZXZpbGxlIENBIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0yRiAgIChoZXgpCQlQZmlzdGVyIEdtYkgKKzAwMUMyRiAgICAgKGJhc2UgMTYpCQlQZmlzdGVyIEdtYkgKKwkJCQlTdGF0emxpbmdlciBTdHJhc3NlIDcwCisJCQkJQXVnc2J1cmcgQmF2YXJpYSA4NjE2NQorCQkJCUdFUk1BTlkKKworMDAtMUMtMzAgICAoaGV4KQkJTW9kZSBMaWdodGluZyAoVUsgKSBMdGQuCiswMDFDMzAgICAgIChiYXNlIDE2KQkJTW9kZSBMaWdodGluZyAoVUsgKSBMdGQuCisJCQkJVGhlIE1hbHRpbmdzCisJCQkJNjMgSGlnaCBTdHJlZXQKKwkJCQlXYXJlIEhlcnRmb3Jkc2hpcmUgU0cxMiA5QUQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQy0zMSAgIChoZXgpCQlNb2JpbGUgWFAgVGVjaG5vbG9neSBDby4sIExURAorMDAxQzMxICAgICAoYmFzZSAxNikJCU1vYmlsZSBYUCBUZWNobm9sb2d5IENvLiwgTFRECisJCQkJUm9vbSBOby4yNTA2LFRyaS10b3dlciBDIGJ1aWxkaW5nLE5vLjY2Pz9aaG9uZ2d1YW5jdW4gRWFzdCBSb2FkLEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODAKKwkJCQlDSElOQQorCiswMC0xQy0zMiAgIChoZXgpCQlUZWxpYW4gQ29ycG9yYXRpb24KKzAwMUMzMiAgICAgKGJhc2UgMTYpCQlUZWxpYW4gQ29ycG9yYXRpb24KKwkJCQk0RkwuIE5hbWplb24gQmxkZy4gNTMtMyBIYWFuZG9uZworCQkJCUt3YW5nbXl1bmdzaSBLeW91bmdraWRvIDQyMzA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy0zMyAgIChoZXgpCQlTdXRyb24KKzAwMUMzMyAgICAgKGJhc2UgMTYpCQlTdXRyb24KKwkJCQkyMTMwMCBSaWRnZXRvcCBDaXIKKwkJCQlTdGVybGluZyBWQSAyMDE2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMzQgICAoaGV4KQkJSFVFWSBDSElBTyBJTlRFUk5BVElPTkFMIENPLiwgTFRELgorMDAxQzM0ICAgICAoYmFzZSAxNikJCUhVRVkgQ0hJQU8gSU5URVJOQVRJT05BTCBDTy4sIExURC4KKwkJCQk1RiwgTk8uIDY0OS0xLAorCQkJCUNIVU5HIENIRU5HIFJELiwKKwkJCQlIU0lOIENIVUFORyBDSVRZIFRBSVBFSSAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLTM1ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFDMzUgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTBWCisJCQkJREVOTUFSSworCiswMC0xQy0zNiAgIChoZXgpCQlpTkVXaVQgTlYKKzAwMUMzNiAgICAgKGJhc2UgMTYpCQlpTkVXaVQgTlYKKwkJCQlTY2hhbGllbmhvZXZlZHJlZWYgMjBECisJCQkJTWVjaGVsZW4gQW50d2VycCAyODAwCisJCQkJQkVMR0lVTQorCiswMC0xQy0zNyAgIChoZXgpCQlDYWxscG9kLCBJbmMuCiswMDFDMzcgICAgIChiYXNlIDE2KQkJQ2FsbHBvZCwgSW5jLgorCQkJCTg1MCBXLiBKYWNrc29uCisJCQkJU3VpdGUgMjYwCisJCQkJQ2hpY2FnbyBJTCA2MDYwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMzggICAoaGV4KQkJQmlvLVJhZCBMYWJvcmF0b3JpZXMsIEluYy4KKzAwMUMzOCAgICAgKGJhc2UgMTYpCQlCaW8tUmFkIExhYm9yYXRvcmllcywgSW5jLgorCQkJCTI0NSBXaW50ZXIgU3QuCisJCQkJU3VpdGUgMTAwCisJCQkJV2FsdGhhbSBNQSAwMjQ1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMzkgICAoaGV4KQkJUyBOZXRzeXN0ZW1zIEluYy4KKzAwMUMzOSAgICAgKGJhc2UgMTYpCQlTIE5ldHN5c3RlbXMgSW5jLgorCQkJCTEwRiBTdW5nd29uIEJsZGcuLCAxNDEgU2Ftc3VuZy1Eb25nCisJCQkJS2FuZ25hbS1LdQorCQkJCVNlb3VsICAxMzUtNzE2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTNBICAgKGhleCkJCUVsZW1lbnQgTGFicywgSW5jLgorMDAxQzNBICAgICAoYmFzZSAxNikJCUVsZW1lbnQgTGFicywgSW5jLgorCQkJCTMzNTAgU2NvdHQgQm91bGV2YXJkCisJCQkJQnVpbGRpbmcgIzIKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtM0IgICAoaGV4KQkJQW1Sb2FkIFRlY2hub2xvZ3kgSW5jLgorMDAxQzNCICAgICAoYmFzZSAxNikJCUFtUm9hZCBUZWNobm9sb2d5IEluYy4KKwkJCQkxOEYtMyBOby4gMTUwICwgQ2hpZW4gSSBSZAorCQkJCUNodW5nIEhvIFRhaXBlaSBIc2llbiAyMzUxMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtM0MgICAoaGV4KQkJU2VvbiBEZXNpZ24gSW5jLgorMDAxQzNDICAgICAoYmFzZSAxNikJCVNlb24gRGVzaWduIEluYy4KKwkJCQkxMTEtM0IgQnVyYmlkZ2UgU3RyZWV0CisJCQkJQ29xdWl0bGFtIEJDIFYzSyA3QjIKKwkJCQlDQU5BREEKKworMDAtMUMtM0QgICAoaGV4KQkJV2F2ZVN0b3JtCiswMDFDM0QgICAgIChiYXNlIDE2KQkJV2F2ZVN0b3JtCisJCQkJNDAgcnVlIGQnT3JhZG91ci1zdXItR2xhbmUKKwkJCQlQYXJpcyBJbGUtZGUtRnJhbmNlIDc1MDE1CisJCQkJRlJBTkNFCisKKzAwLTFDLTNFICAgKGhleCkJCUVDS2V5IExpbWl0ZWQKKzAwMUMzRSAgICAgKGJhc2UgMTYpCQlFQ0tleSBMaW1pdGVkCisJCQkJUE8gQm94IDEyOCAwNTcKKwkJCQlSZW11ZXJhCisJCQkJQXVja2xhbmQgIDEwNTAKKwkJCQlORVcgWkVBTEFORAorCiswMC0xQy0zRiAgIChoZXgpCQlJbnRlcm5hdGlvbmFsIFBvbGljZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMUMzRiAgICAgKGJhc2UgMTYpCQlJbnRlcm5hdGlvbmFsIFBvbGljZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk0MTUwIFMuIDg3dGggRS4gQXZlbnVlCisJCQkJVHVsc2EgT0sgNzQxNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTQwICAgKGhleCkJCVZERy1TZWN1cml0eSBidgorMDAxQzQwICAgICAoYmFzZSAxNikJCVZERy1TZWN1cml0eSBidgorCQkJCVJhZG9uc3RyYWF0IDEwLTE0CisJCQkJWm9ldGVybWVlciBaSCAyNzE4IFRBCisJCQkJTkVUSEVSTEFORFMKKworMDAtMUMtNDEgICAoaGV4KQkJc2NlbXRlYyBUcmFuc3BvbmRlciBUZWNobm9sb2d5IEdtYkgKKzAwMUM0MSAgICAgKGJhc2UgMTYpCQlzY2VtdGVjIFRyYW5zcG9uZGVyIFRlY2hub2xvZ3kgR21iSAorCQkJCUdld2VyYmVwYXJrc3RyLiAyMAorCQkJCVJlaWNoc2hvZiBOUlcgNTE1ODAKKwkJCQlHRVJNQU5ZCisKKzAwLTFDLTQyICAgKGhleCkJCVBhcmFsbGVscywgSW5jLgorMDAxQzQyICAgICAoYmFzZSAxNikJCVBhcmFsbGVscywgSW5jLgorCQkJCTY2MCBTVyAzOWggU3RyZWV0CisJCQkJU3VpdGUgMjA1CisJCQkJUmVudG9uIFdBIDk4MDU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy00MyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzAwMUM0MyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtNDQgICAoaGV4KQkJQm9zY2ggU2VjdXJpdHkgU3lzdGVtcyBCVgorMDAxQzQ0ICAgICAoYmFzZSAxNikJCUJvc2NoIFNlY3VyaXR5IFN5c3RlbXMgQlYKKwkJCQlLYXBpdHRlbHdlZyAxMAorCQkJCTQ4MjcgSEcgIEJyZWRhIEJyYWJhbnQgNDgyNworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTFDLTQ1ICAgKGhleCkJCUNoZW5icm8gTWljb20gQ28uLCBMdGQuCiswMDFDNDUgICAgIChiYXNlIDE2KQkJQ2hlbmJybyBNaWNvbSBDby4sIEx0ZC4KKwkJCQkxNUZsLiwgTm8uIDE1MCwgSmlhbiBZaSBSb2FkCisJCQkJQ2h1bmcgSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy00NiAgIChoZXgpCQlRVFVNCiswMDFDNDYgICAgIChiYXNlIDE2KQkJUVRVTQorCQkJCSM1MDcgQnl1Y2tzYW4vS3l1bmdpbiBEaWdpdGFsIFZhbGxleSAyIDQ4MS0xMAorCQkJCUdhc2FuLWRvbmcgR2V1bWNoZW9uLWd1CisJCQkJU2VvdWwgIDE1My03ODMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtNDcgICAoaGV4KQkJSGFuZ3pob3UgSG9sbHlzeXMgQXV0b21hdGlvbiBDby4sIEx0ZAorMDAxQzQ3ICAgICAoYmFzZSAxNikJCUhhbmd6aG91IEhvbGx5c3lzIEF1dG9tYXRpb24gQ28uLCBMdGQKKwkJCQlOby4xMCBNaWRkbGUgUm9hZCwgSmlhbmNhaWNoZW5nLCBIYWlkaWFuIERpc3RyaWN0LAorCQkJCUJlaWppbmcgIDEwMDA5NgorCQkJCUNISU5BCisKKzAwLTFDLTQ4ICAgKGhleCkJCVdpRGVGaSwgSW5jLgorMDAxQzQ4ICAgICAoYmFzZSAxNikJCVdpRGVGaSwgSW5jLgorCQkJCTEzMzMgR2F0ZXdheSBCbHZkCisJCQkJU3VpdGUgMTAxMgorCQkJCU1lbGJvdXJuZSBGTCAzMjkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNDkgICAoaGV4KQkJWm9sdGFuIFRlY2hub2xvZ3kgSW5jLgorMDAxQzQ5ICAgICAoYmFzZSAxNikJCVpvbHRhbiBUZWNobm9sb2d5IEluYy4KKwkJCQk0RiwgTm8uMzAsIFd1bnNpIFN0LgorCQkJCUpodWJlaSBIc2luY2h1IDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtNEEgICAoaGV4KQkJQVZNIEdtYkgKKzAwMUM0QSAgICAgKGJhc2UgMTYpCQlBVk0gR21iSAorCQkJCUFsdC1Nb2FiaXQgOTUKKwkJCQlCZXJsaW4gIDEwNTU5CisJCQkJR0VSTUFOWQorCiswMC0xQy00QiAgIChoZXgpCQlHZW5lcjgsIEluYy4KKzAwMUM0QiAgICAgKGJhc2UgMTYpCQlHZW5lcjgsIEluYy4KKwkJCQk4OTcgSW5kZXBlbmRlbmNlIEF2ZQorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTRDICAgKGhleCkJCVBldHJvdGVzdCBJbnN0cnVtZW50cworMDAxQzRDICAgICAoYmFzZSAxNikJCVBldHJvdGVzdCBJbnN0cnVtZW50cworCQkJCUx1ZHdpZy1FcmhhcmQtUmluZyAxMworCQkJCURhaGxld2l0eiBCQkcgMTU4MjcKKwkJCQlHRVJNQU5ZCisKKzAwLTFDLTREICAgKGhleCkJCVplZXRvbywgSW5jLgorMDAxQzREICAgICAoYmFzZSAxNikJCVplZXRvbywgSW5jLgorCQkJCTEyOCBHcmVhdCBSb2FkCisJCQkJQmVkZm9yZCBNQSAwMTczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNEUgICAoaGV4KQkJVEFTQSBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKzAwMUM0RSAgICAgKGJhc2UgMTYpCQlUQVNBIEludGVybmF0aW9uYWwgTGltaXRlZAorCQkJCTVGPz9CdWlsZGluZzI/P05vLjEyOTUgLFhpbiBKaW5xaWFvIFJvYWQsCisJCQkJU2hhbmdoYWkgIDIwMTIwNgorCQkJCUNISU5BCisKKzAwLTFDLTRGICAgKGhleCkJCU1BQ0FCIEFCCiswMDFDNEYgICAgIChiYXNlIDE2KQkJTUFDQUIgQUIKKwkJCQlWYW5uaG9nc2dhdGFuIDcKKwkJCQlUcmVsbGVib3JnICAyMzE2NgorCQkJCVNXRURFTgorCiswMC0xQy01MCAgIChoZXgpCQlUQ0wgVGVjaG5vbHkgRWxlY3Ryb25pY3MoSHVpemhvdSlDby4sTHRkCiswMDFDNTAgICAgIChiYXNlIDE2KQkJVENMIFRlY2hub2x5IEVsZWN0cm9uaWNzKEh1aXpob3UpQ28uLEx0ZAorCQkJCTEwL0YsIEJsb2NrIEEgLCBUQ0wgVG93ZXIKKwkJCQkxIEdhb3hpbiBOYW4gUm9hZCwgTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xQy01MSAgIChoZXgpCQlDZWxlbm8gQ29tbXVuaWNhdGlvbnMKKzAwMUM1MSAgICAgKGJhc2UgMTYpCQlDZWxlbm8gQ29tbXVuaWNhdGlvbnMKKwkJCQkyMiBaYXJoaW4gU3RyZWV0CisJCQkJUmEnYW5hbmEgIDQzNjY1CisJCQkJSVNSQUVMCisKKzAwLTFDLTUyICAgKGhleCkJCVZJU0lPTkVFIFNSTAorMDAxQzUyICAgICAoYmFzZSAxNikJCVZJU0lPTkVFIFNSTAorCQkJCVZJQUxFIERFTExBIFJFUFVCQkxJQ0EsIDIyCisJCQkJVklMTE9SQkEgVFJFVklTTyAzMTA1MAorCQkJCUlUQUxZCisKKzAwLTFDLTUzICAgKGhleCkJCVN5bmVyZ3kgTGlnaHRpbmcgQ29udHJvbHMKKzAwMUM1MyAgICAgKGJhc2UgMTYpCQlTeW5lcmd5IExpZ2h0aW5nIENvbnRyb2xzCisJCQkJT25lIExpdGhvbmlhIFdheQorCQkJCUNvbnllcnMgR0EgMzAwMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTU0ICAgKGhleCkJCUhpbGxzdG9uZSBOZXR3b3JrcyBJbmMKKzAwMUM1NCAgICAgKGJhc2UgMTYpCQlIaWxsc3RvbmUgTmV0d29ya3MgSW5jCisJCQkJQS0xOTA1IGUtV2luZyBDZW50ZXIKKwkJCQlaaGljaHVuIFJvYWQsIEhhaWRpYW4KKwkJCQlCZWlqaW5nICAxMDAwODYKKwkJCQlDSElOQQorCiswMC0xQy01NSAgIChoZXgpCQlTaGVuemhlbiBLYWlmYSBUZWNobm9sb2d5IENvLgorMDAxQzU1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEthaWZhIFRlY2hub2xvZ3kgQ28uCisJCQkJNzAwNiBDYWl0aWFuIFJvYWQsIEZ1dGlhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDM1CisJCQkJQ0hJTkEKKworMDAtMUMtNTYgICAoaGV4KQkJUGFkbyBTeXN0ZW1zLCBJbmMuCiswMDFDNTYgICAgIChiYXNlIDE2KQkJUGFkbyBTeXN0ZW1zLCBJbmMuCisJCQkJIzcwNiBMb2FkbGFuZCBFWiBUb3dlciAxNTMKKwkJCQlHdW1pLURvbmcsIEJ1bmRhbmctR3UKKwkJCQlTdW5nTmFtIEd5dW5nIGdpLURvIDQ2My04MTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtNTcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQzU3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTU4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUM1OCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy01OSAgIChoZXgpCQlERVZPTiBJVAorMDAxQzU5ICAgICAoYmFzZSAxNikJCURFVk9OIElUCisJCQkJMTEwMCBGSVJTVCBBVkVOVUUKKwkJCQlTVUlURSAxMDAKKwkJCQlLSU5HIE9GIFBSVVNTSUEgUEEgMTk0MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTVBICAgKGhleCkJCUFkdmFuY2VkIFJlbGF5IENvcnBvcmF0aW9uCiswMDFDNUEgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgUmVsYXkgQ29ycG9yYXRpb24KKwkJCQkxODk2IENvbHVtYmlhIFN0CisJCQkJRXVnZW5lIE9SIDk3NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy01QiAgIChoZXgpCQlDaHViYiBFbGVjdHJvbmljIFNlY3VyaXR5IFN5c3RlbXMgTHRkCiswMDFDNUIgICAgIChiYXNlIDE2KQkJQ2h1YmIgRWxlY3Ryb25pYyBTZWN1cml0eSBTeXN0ZW1zIEx0ZAorCQkJCVNoYWRzd29ydGggUm9hZAorCQkJCUJsYWNrYnVybiBMYW5jYXNoaXJlIEJCMSAyUFIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQy01QyAgIChoZXgpCQlJbnRlZ3JhdGVkIE1lZGljYWwgU3lzdGVtcywgSW5jLgorMDAxQzVDICAgICAoYmFzZSAxNikJCUludGVncmF0ZWQgTWVkaWNhbCBTeXN0ZW1zLCBJbmMuCisJCQkJMTk4NCBPYmlzcG8gQXZlbnVlCisJCQkJU2lnbmFsIEhpbGwgQ0EgOTA3NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTVEICAgKGhleCkJCUxlaWNhIE1pY3Jvc3lzdGVtcworMDAxQzVEICAgICAoYmFzZSAxNikJCUxlaWNhIE1pY3Jvc3lzdGVtcworCQkJCVBPQm94IDgwCisJCQkJNTE1IENvbGRoYW1zIExhbmUKKwkJCQlDYW1icmlkZ2UgIENCMSAzWVoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQy01RSAgIChoZXgpCQlBU1RPTiBGcmFuY2UKKzAwMUM1RSAgICAgKGJhc2UgMTYpCQlBU1RPTiBGcmFuY2UKKwkJCQkxNTEgQXZlbnVlIEdhbGxpZW5pCisJCQkJQkFHTk9MRVQgaWxlIGRlIGZyYW5jZSA5MzE3NworCQkJCUZSQU5DRQorCiswMC0xQy01RiAgIChoZXgpCQlXaW5sYW5kIEVsZWN0cm9uaWNzLCBJbmMuCiswMDFDNUYgICAgIChiYXNlIDE2KQkJV2lubGFuZCBFbGVjdHJvbmljcywgSW5jLgorCQkJCTE5NTAgRXhjZWwgRHJpdmUKKwkJCQlNYW5rYXRvIE1OIDU2MDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy02MCAgIChoZXgpCQlDU1AgRnJvbnRpZXIgVGVjaG5vbG9naWVzLEluYy4KKzAwMUM2MCAgICAgKGJhc2UgMTYpCQlDU1AgRnJvbnRpZXIgVGVjaG5vbG9naWVzLEluYy4KKwkJCQkzLTItMyxTYXNhenVrYQorCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUxLTAwNzMKKwkJCQlKQVBBTgorCiswMC0xQy02MSAgIChoZXgpCQlHYWxheHkgVGVjaG5vbG9neSAoSEspIEx0ZC4KKzAwMUM2MSAgICAgKGJhc2UgMTYpCQlHYWxheHkgVGVjaG5vbG9neSAoSEspIEx0ZC4KKwkJCQlVbml0IDgwMiwgOC9GLCBTaHVpIEhpbmcgQ2VudHJlLCAxMyBTaGV1bmcgWXVldCBSb2FkLAorCQkJCUtvd2xvb24gQmF5ICBLbG4uLCAKKwkJCQlIT05HIEtPTkcKKworMDAtMUMtNjIgICAoaGV4KQkJTEcgRWxlY3Ryb25pY3MgSW5jCiswMDFDNjIgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MgSW5jCisJCQkJNjAtMzksIEdhc2FuLURvbmcKKwkJCQlLdW1jaG9uLUd1CisJCQkJU2VvdWwgIDE1My0wMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtNjMgICAoaGV4KQkJVFJVRU4KKzAwMUM2MyAgICAgKGJhc2UgMTYpCQlUUlVFTgorCQkJCTRGIFNBTVdPTiBCTERHLiwgNDUxLTcKKwkJCQkgQkFOR0JBRS1ET05HLCBTRU9DSE8tR1UKKwkJCQlTRU9VTCAgMTM3LTgxOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy02NCAgIChoZXgpCQlDZWxsbmV0K0h1bnQKKzAwMUM2NCAgICAgKGJhc2UgMTYpCQlDZWxsbmV0K0h1bnQKKwkJCQk2NDM2IENvdW50eSBSb2FkIDExCisJCQkJUGVxdW90IExha2VzIE1pbm5lc290YSA1NjQ3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNjUgICAoaGV4KQkJSm9lU2NhbiwgSW5jLgorMDAxQzY1ICAgICAoYmFzZSAxNikJCUpvZVNjYW4sIEluYy4KKwkJCQkxMTkgRSA4dGggU3QuCisJCQkJVmFuY291dmVyIFdBIDk4NjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy02NiAgIChoZXgpCQlVQ0FNUCBDTy4sTFRECiswMDFDNjYgICAgIChiYXNlIDE2KQkJVUNBTVAgQ08uLExURAorCQkJCSMxMDE1LCBLb2xvbiBTY2llbmNlIFZhbGxleSA/PworCQkJCVNlb3VsIEd1cm8tRG9uZyxHdXJvLWd1LCAxNTItODQ4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTY3ICAgKGhleCkJCVB1bXBraW4gTmV0d29ya3MsIEluYy4KKzAwMUM2NyAgICAgKGJhc2UgMTYpCQlQdW1wa2luIE5ldHdvcmtzLCBJbmMuCisJCQkJM0ZMIEp1bmdIbyBCbGRnLCAxMDgtNCBTYW5nZG8tRG9uZywgRG9uZ2phay1HdQorCQkJCVNFT1VMICAxNTYtMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTY4ICAgKGhleCkJCUFuaHVpIFN1biBDcmVhdGUgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzAwMUM2OCAgICAgKGJhc2UgMTYpCQlBbmh1aSBTdW4gQ3JlYXRlIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJTk8uMTk5IFhpYW5nemhhbmcgUm9hZAorCQkJCUhlZmVpIEFuaHVpIDIzMDA4OAorCQkJCUNISU5BCisKKzAwLTFDLTY5ICAgKGhleCkJCVBhY2tldCBWaXNpb24gTHRkCiswMDFDNjkgICAgIChiYXNlIDE2KQkJUGFja2V0IFZpc2lvbiBMdGQKKwkJCQlTQyBIb3VzZQorCQkJCVZhbndhbGwgUm9hZAorCQkJCU1haWRlbmhlYWQgQmVya3MgU0w2IDRVQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFDLTZBICAgKGhleCkJCVdlaXNzIEVuZ2luZWVyaW5nIEx0ZC4KKzAwMUM2QSAgICAgKGJhc2UgMTYpCQlXZWlzcyBFbmdpbmVlcmluZyBMdGQuCisJCQkJRmxvcmFzdHJhc3NlIDQyCisJCQkJVXN0ZXIgWkggODYxMAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFDLTZCICAgKGhleCkJCUNPVkFYICBDby4gTHRkCiswMDFDNkIgICAgIChiYXNlIDE2KQkJQ09WQVggIENvLiBMdGQKKwkJCQkzLTI3LTIyIGtpdGFoYW5hZGEtY2hvIGtpdGFrdQorCQkJCXNha2FpLXNoaSBvb3Nha2EgNTkxLTgwMDIKKwkJCQlKQVBBTgorCiswMC0xQy02QyAgIChoZXgpCQlKYWJpbCBDaXJjdWl0IChHdWFuZ3pob3UpIExpbWl0ZWQKKzAwMUM2QyAgICAgKGJhc2UgMTYpCQlKYWJpbCBDaXJjdWl0IChHdWFuZ3pob3UpIExpbWl0ZWQKKwkJCQkxMjgsIEp1biBDaGVuZyBSb2FkLHVhbmd6aG91IEVjb25vbWljIGFuZCBUZWNobm9sb2dpY2FsIERldmVsb3BtZW50IERpc3RyaWN0CisJCQkJR3Vhbmdkb25nIFByb3ZpbmNlCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA1MzAKKwkJCQlDSElOQQorCiswMC0xQy02RCAgIChoZXgpCQlLWU9IUklUU1UgRUxFQ1RST05JQyBJTkRVU1RSWSBDTy4sIExURC4KKzAwMUM2RCAgICAgKGJhc2UgMTYpCQlLWU9IUklUU1UgRUxFQ1RST05JQyBJTkRVU1RSWSBDTy4sIExURC4KKwkJCQkyLTUtMSwgTklQUE9OQkFTSEktTklTSEksCisJCQkJTkFOSVdBLUtVCisJCQkJT1NBS0EgIDU1Ni0wMDA0CisJCQkJSkFQQU4KKworMDAtMUMtNkUgICAoaGV4KQkJTmV3YnVyeSBOZXR3b3JrcywgSW5jLgorMDAxQzZFICAgICAoYmFzZSAxNikJCU5ld2J1cnkgTmV0d29ya3MsIEluYy4KKwkJCQk0MTkgQm95bHN0b24gU3RyZWV0CisJCQkJQm9zdG9uIE1BIDAyMTE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy02RiAgIChoZXgpCQlFbWZpdCBMdGQKKzAwMUM2RiAgICAgKGJhc2UgMTYpCQlFbWZpdCBMdGQKKwkJCQlLb250dGlzZW50aWUgOCBCCisJCQkJVmFhamFrb3NraSAgNDA4MDAKKwkJCQlGSU5MQU5ECisKKzAwLTFDLTcwICAgKGhleCkJCU5PVkFDT01NIExUREEKKzAwMUM3MCAgICAgKGJhc2UgMTYpCQlOT1ZBQ09NTSBMVERBCisJCQkJUlVBIEJFSUpVSSwgNzAKKwkJCQlTQU5UTyBBTUFSTworCQkJCVNBTyBQQVVMTyAgMDQ2ODktMDAwCisJCQkJQlJBWklMCisKKzAwLTFDLTcxICAgKGhleCkJCUVtZXJnZW50IEVsZWN0cm9uaWNzCiswMDFDNzEgICAgIChiYXNlIDE2KQkJRW1lcmdlbnQgRWxlY3Ryb25pY3MKKwkJCQlCbGRnIDIgTGV2ZWwgMyBTdWl0ZSAzMDUKKwkJCQkyNTkxIFdleGZvcmQtQmF5bmUgUm9hZAorCQkJCVNld2lja2xleSBQQSAxNTE0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNzIgICAoaGV4KQkJTWF5ZXIgJiBDaWUgR21iSCAmIENvIEtHCiswMDFDNzIgICAgIChiYXNlIDE2KQkJTWF5ZXIgJiBDaWUgR21iSCAmIENvIEtHCisJCQkJRW1pbCBNYXllciBTdHJhc3NlIDEwCisJCQkJQWxic3RhZHQgQmFkZW4gV3VydHRlbWJlcmcgNzI0NjEKKwkJCQlHRVJNQU5ZCisKKzAwLTFDLTczICAgKGhleCkJCUFyaXN0YSBOZXR3b3JrcywgSW5jLgorMDAxQzczICAgICAoYmFzZSAxNikJCUFyaXN0YSBOZXR3b3JrcywgSW5jLgorCQkJCTI3NSBNaWRkbGVmaWVsZCBSb2FkLCBTdGUgNTAKKwkJCQlNZW5sbyBQYXJrIENhbGlmb3JuaWEgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTc0ICAgKGhleCkJCVN5c3dhbiBUZWNobm9sb2dpZXMgSW5jLgorMDAxQzc0ICAgICAoYmFzZSAxNikJCVN5c3dhbiBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTIwNTAgQmVhdmVyY3JlZWsgUm9hZAorCQkJCVN1aXRlIDEwMSAjMzg4CisJCQkJT3JlZ29uIENpdHkgT3JlZ29uIDk3MDQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy03NSAgIChoZXgpCQlSRiBTeXN0ZW1zIEdtYkgKKzAwMUM3NSAgICAgKGJhc2UgMTYpCQlSRiBTeXN0ZW1zIEdtYkgKKwkJCQlFaW5zdGVpbnN0cmFzc2UgMTEKKwkJCQlWaWVybmhlaW0gSGVzc2VuIEQgNjg1MTkKKwkJCQlHRVJNQU5ZCisKKzAwLTFDLTc2ICAgKGhleCkJCVRoZSBXYW5kc3dvcnRoIEdyb3VwIEx0ZAorMDAxQzc2ICAgICAoYmFzZSAxNikJCVRoZSBXYW5kc3dvcnRoIEdyb3VwIEx0ZAorCQkJCUFsYmVydCBEcml2ZQorCQkJCVNoZWVyd2F0ZXIKKwkJCQlXb2tpbmcgU3VycmV5IEdVMjEgNVNFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUMtNzcgICAoaGV4KQkJUHJvZHlzCiswMDFDNzcgICAgIChiYXNlIDE2KQkJUHJvZHlzCisJCQkJQy9UcmlnbyA1NCBQb2wuIEluZC4gUG9sdm9yYW5jYQorCQkJCUxlZ2FuZXMgTUFEUklEIDI4OTE0CisJCQkJU1BBSU4KKworMDAtMUMtNzggICAoaGV4KQkJV1lQTEFZIFNBUworMDAxQzc4ICAgICAoYmFzZSAxNikJCVdZUExBWSBTQVMKKwkJCQkyMDAgYXZlbnVlIGRlIFByb3ZlbmNlCisJCQkJQUxMQVVDSCBCZFIgMTMxOTAKKwkJCQlGUkFOQ0UKKworMDAtMUMtNzkgICAoaGV4KQkJQ29oZXNpdmUgRmluYW5jaWFsIFRlY2hub2xvZ2llcyBMTEMKKzAwMUM3OSAgICAgKGJhc2UgMTYpCQlDb2hlc2l2ZSBGaW5hbmNpYWwgVGVjaG5vbG9naWVzIExMQworCQkJCTIwMCBTb3V0aCBXYWNrZXIgRHIuCisJCQkJU3VpdGUgMTUwMAorCQkJCUNoaWNhZ28gSUwgNjA2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTdBICAgKGhleCkJCVBlcmZlY3RvbmUgTmV0d2FyZSBDb21wYW55IEx0ZAorMDAxQzdBICAgICAoYmFzZSAxNikJCVBlcmZlY3RvbmUgTmV0d2FyZSBDb21wYW55IEx0ZAorCQkJCVVuaXQgODE1LCBTdW4gRnVuZyBDZW50cmUsCisJCQkJS3dvayBTaHVpIFJkLAorCQkJCUt3YWkgQ2h1bmcgIAorCQkJCUhPTkcgS09ORworCiswMC0xQy03QiAgIChoZXgpCQlDYXN0bGVuZXQgVGVjaG5vbG9neSBJbmMuCiswMDFDN0IgICAgIChiYXNlIDE2KQkJQ2FzdGxlbmV0IFRlY2hub2xvZ3kgSW5jLgorCQkJCU5vLjY0LCBDaHVuZy1TaGFuIFJkLgorCQkJCVR1LUNoZW5nIENpdHkgVGFpcGVpIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtN0MgICAoaGV4KQkJUEVSUSBTWVNURU1TIENPUlBPUkFUSU9OCiswMDFDN0MgICAgIChiYXNlIDE2KQkJUEVSUSBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJMjYwMCBMSUJFUkVUWSBBVkVOVUUKKwkJCQlQLk8uIEJPWCAyNjAwCisJCQkJUElUVFNCVVJHSCBQQSAxNTIzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtN0QgICAoaGV4KQkJRXhjZWxwb2ludCBNYW51ZmFjdHVyaW5nIFB0ZSBMdGQKKzAwMUM3RCAgICAgKGJhc2UgMTYpCQlFeGNlbHBvaW50IE1hbnVmYWN0dXJpbmcgUHRlIEx0ZAorCQkJCTE1LCBDaGFuZ2kgQnVzaW5lc3MgUGFyaworCQkJCUNlbnRyYWwgMSwgNXRoIExldmVsCisJCQkJNDg2MDU3CisJCQkJU0lOR0FQT1JFCisKKzAwLTFDLTdFICAgKGhleCkJCVRvc2hpYmEKKzAwMUM3RSAgICAgKGJhc2UgMTYpCQlUb3NoaWJhCisJCQkJMi05LFN1ZWhpcm8tQ2hvCisJCQkJT21lIFRva3lvIDE5ODg3MTAKKwkJCQlKQVBBTgorCiswMC0xQy03RiAgIChoZXgpCQlDaGVjayBQb2ludCBTb2Z0d2FyZSBUZWNobm9sb2dpZXMKKzAwMUM3RiAgICAgKGJhc2UgMTYpCQlDaGVjayBQb2ludCBTb2Z0d2FyZSBUZWNobm9sb2dpZXMKKwkJCQkzQSBKYWJvdGluc2t5IFN0LgorCQkJCURpYW1vbmQgVG93ZXIKKwkJCQlSYW1hdCBHYW4gIDUyNTIwCisJCQkJSVNSQUVMCisKKzAwLTFDLTgwICAgKGhleCkJCU5ldyBCdXNpbmVzcyBEaXZpc2lvbi9SaGVhLUluZm9ybWF0aW9uIENPLiwgTFRELgorMDAxQzgwICAgICAoYmFzZSAxNikJCU5ldyBCdXNpbmVzcyBEaXZpc2lvbi9SaGVhLUluZm9ybWF0aW9uIENPLiwgTFRELgorCQkJCTRGIDU5NCBZZW9uZyBQdW5nIEJsZGcsIEd1ZXVpLURvbmcKKwkJCQlTZW91bCBHd2FuZ2ppbi1HdSAxNDMtMjAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTgxICAgKGhleCkJCU5leHRHZW4gVmVudHVyaSBMVEQKKzAwMUM4MSAgICAgKGJhc2UgMTYpCQlOZXh0R2VuIFZlbnR1cmkgTFRECisJCQkJVGVjaG5pdW0gMgorCQkJCUtpbmdzIFJvYWQKKwkJCQlTd2Fuc2VhIFdlc3QgR2xhbW9yZ2FuIFNBMThQSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFDLTgyICAgKGhleCkJCUdlbmV3IFRlY2hub2xvZ2llcworMDAxQzgyICAgICAoYmFzZSAxNikJCUdlbmV3IFRlY2hub2xvZ2llcworCQkJCTNBMyBCdWlsZGluZyBCMSwgQ3liZXItdGVjaCBab25lLAorCQkJCUdhb3hpbiBBdmUuIDdTLCBIaS10ZWNoIEluZHVzdHJpYWwgUGFyaywKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMUMtODMgICAoaGV4KQkJTmV3IExldmVsIFRlbGVjb20gQ28uLCBMdGQuCiswMDFDODMgICAgIChiYXNlIDE2KQkJTmV3IExldmVsIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJSU5OT1BMRVggMS03MDMKKwkJCQkzNzEtNDcsICBHYXNhbi1Eb25nLCBHZXVtY2hlb24tR3UKKwkJCQlTZW91bCAgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy04NCAgIChoZXgpCQlTVEwgU29sdXRpb24gQ28uLEx0ZC4KKzAwMUM4NCAgICAgKGJhc2UgMTYpCQlTVEwgU29sdXRpb24gQ28uLEx0ZC4KKwkJCQkjNzEwLCBXb3JsZCBNZXJpZGlhbiBWZW50dXJlIENlbnRlciBJCisJCQkJNjAtMjQsIEdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTI3ODEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtODUgICAoaGV4KQkJRXVuaWNvcm4KKzAwMUM4NSAgICAgKGJhc2UgMTYpCQlFdW5pY29ybgorCQkJCTIyNi0xNiB1bmJvIGIvZCBzdWNrY2hvbi1kb25nIHNvbmdwYS1ndQorCQkJCXNlb3VsICAxMzg4NDUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtODYgICAoaGV4KQkJQ3Jhbml0ZSBTeXN0ZW1zLCBJbmMuCiswMDFDODYgICAgIChiYXNlIDE2KQkJQ3Jhbml0ZSBTeXN0ZW1zLCBJbmMuCisJCQkJMTIxIEFsYnJpZ2h0IFdheQorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtODcgICAoaGV4KQkJVXJpdmVyIEluYy4KKzAwMUM4NyAgICAgKGJhc2UgMTYpCQlVcml2ZXIgSW5jLgorCQkJCTNyZC4sIEZsLiwgQm9nd2FuZyBCbGRnLiwgUG9pLWRvbmcsIDIzOC03IEdhbmduYW0tZ3UsCisJCQkJU2VvdWwgIDEzNS05NjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtODggICAoaGV4KQkJVFJBTlNZU1RFTSBJTkMuCiswMDFDODggICAgIChiYXNlIDE2KQkJVFJBTlNZU1RFTSBJTkMuCisJCQkJTm8uIDEtMiwgTGktSHNpbiBSZCAxLCBTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtODkgICAoaGV4KQkJRm9yY2UgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMUM4OSAgICAgKGJhc2UgMTYpCQlGb3JjZSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCVBPIEJveCAyNTAyODYKKwkJCQlQbGFubyBUWCA3NTAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtOEEgICAoaGV4KQkJQ2lycmFzY2FsZSBDb3Jwb3JhdGlvbgorMDAxQzhBICAgICAoYmFzZSAxNikJCUNpcnJhc2NhbGUgQ29ycG9yYXRpb24KKwkJCQk5NDQ5IENhcnJvbGwgUGFyayBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtOEIgICAoaGV4KQkJTUogSW5ub3ZhdGlvbnMgTHRkLgorMDAxQzhCICAgICAoYmFzZSAxNikJCU1KIElubm92YXRpb25zIEx0ZC4KKwkJCQkzMzMgV3llY3JvZnQgUm9hZAorCQkJCVVuaXQgMworCQkJCU9ha3ZpbGxlIE9udGFyaW8gTDZLIDJIMgorCQkJCUNBTkFEQQorCiswMC0xQy04QyAgIChoZXgpCQlESUFMIFRFQ0hOT0xPR1kgTFRELgorMDAxQzhDICAgICAoYmFzZSAxNikJCURJQUwgVEVDSE5PTE9HWSBMVEQuCisJCQkJNkYtNCwgTk8uMTgsIExBTkUuNjA5LCBTRUMuNSwgQ0hPTkdTSU4gUkQuLAorCQkJCVNBTkNIT05HIENJVFkgVEFJUEVJIENPVU5UWSAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLThEICAgKGhleCkJCU1lc2EgSW1hZ2luZworMDAxQzhEICAgICAoYmFzZSAxNikJCU1lc2EgSW1hZ2luZworCQkJCUJhZGVuZXJzdHJhc3NlIDU2OQorCQkJCVp1cmljaCBaSCA4MDQ4CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUMtOEUgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQgSVBECiswMDFDOEUgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQgSVBECisJCQkJNzAxIEUuIE1pZGRsZWZpZWxkIFJkLgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLThGICAgKGhleCkJCUFkdmFuY2VkIEVsZWN0cm9uaWMgRGVzaWduLCBJbmMuCiswMDFDOEYgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgRWxlY3Ryb25pYyBEZXNpZ24sIEluYy4KKwkJCQkzNDQgSm9obiBMIERpZXRzY2ggQmx2ZC4sIFVuaXQgIzIKKwkJCQlOb3J0aCBBdHRsZWJvcm8gTUEgMDI3NjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTkwICAgKGhleCkJCUVtcGFja2V0IENvcnBvcmF0aW9uCiswMDFDOTAgICAgIChiYXNlIDE2KQkJRW1wYWNrZXQgQ29ycG9yYXRpb24KKwkJCQlPc2FraSBLSSBibGRnLgorCQkJCTEtMTktMTAgT3Nha2kKKwkJCQlTaGluYWdhd2EgVG9reW8gMTQxLTAwMzIKKwkJCQlKQVBBTgorCiswMC0xQy05MSAgIChoZXgpCQlHZWZlbiBJbmMuCiswMDFDOTEgICAgIChiYXNlIDE2KQkJR2VmZW4gSW5jLgorCQkJCTIwNjAwIE5vcmRob2ZmIFN0cmVldAorCQkJCUNoYXRzd29ydGggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTkyICAgKGhleCkJCVRlcnZlbGEKKzAwMUM5MiAgICAgKGJhc2UgMTYpCQlUZXJ2ZWxhCisJCQkJNDMgTmFnb2cgUGFyaworCQkJCVN1aXRlIDIwMQorCQkJCUFjdG9uIE1BIDAxNzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy05MyAgIChoZXgpCQlFeGFEaWdtIEluYworMDAxQzkzICAgICAoYmFzZSAxNikJCUV4YURpZ20gSW5jCisJCQkJMjg3MSBQdWxsbWFuIFN0CisJCQkJU2FudGEgQW5hIENBIDkyNzA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy05NCAgIChoZXgpCQlMSS1DT1IgQmlvc2NpZW5jZXMKKzAwMUM5NCAgICAgKGJhc2UgMTYpCQlMSS1DT1IgQmlvc2NpZW5jZXMKKwkJCQk0NjQ3IFN1cGVyaW9yIFN0cmVldAorCQkJCUxpbmNvbG4gTkUgNjg1MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTk1ICAgKGhleCkJCU9wdGljb21tIENvcnBvcmF0aW9uCiswMDFDOTUgICAgIChiYXNlIDE2KQkJT3B0aWNvbW0gQ29ycG9yYXRpb24KKwkJCQk2ODI3IE5hbmN5IFJpZGdlIERyCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy05NiAgIChoZXgpCQlMaW5rd2lzZSBUZWNobm9sb2d5IFB0ZSBMdGQKKzAwMUM5NiAgICAgKGJhc2UgMTYpCQlMaW5rd2lzZSBUZWNobm9sb2d5IFB0ZSBMdGQKKwkJCQlCbGsgMywgQW5nIE1vIEtpbyBJbmR1c3RyaWFsIFBhcmsgMkEKKwkJCQkjMDYtMDMuIEFNSyBUZWNoIEkKKwkJCQk1NjgwNTAKKwkJCQlTSU5HQVBPUkUKKworMDAtMUMtOTcgICAoaGV4KQkJRW56eXRlayBUZWNobm9sb2d5IEluYy4sCiswMDFDOTcgICAgIChiYXNlIDE2KQkJRW56eXRlayBUZWNobm9sb2d5IEluYy4sCisJCQkJN0YsIE5vLjM1LCBIc3VlaCBGdSBSZC4sCisJCQkJSHNpbmNodSAgMzAwLAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtOTggICAoaGV4KQkJTFVDS1kgVEVDSE5PTE9HWSAoSEspIENPTVBBTlkgTElNSVRFRAorMDAxQzk4ICAgICAoYmFzZSAxNikJCUxVQ0tZIFRFQ0hOT0xPR1kgKEhLKSBDT01QQU5ZIExJTUlURUQKKwkJCQlGTEFUL1JNIDE1MDMgMTUvRiBJU0xBTkQgQkVWRVJMRVkgTk8gMSBHUkVBVCBHRU9SR0UgU1RSRUVUIENBVVNFV0FZIEJBWQorCQkJCTk5OTA3NworCQkJCUhPTkcgS09ORworCiswMC0xQy05OSAgIChoZXgpCQlTaHVucmEgU29mdHdhcmUgTHRkLgorMDAxQzk5ICAgICAoYmFzZSAxNikJCVNodW5yYSBTb2Z0d2FyZSBMdGQuCisJCQkJMjAgSGF0YSdhcyBTdC4KKwkJCQlLZWZhci1TYWJhICA0NDQyNQorCQkJCUlTUkFFTAorCiswMC0xQy05QSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxQzlBICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xQy05QiAgIChoZXgpCQlGRUlHIEVMRUNUUk9OSUMgR21iSAorMDAxQzlCICAgICAoYmFzZSAxNikJCUZFSUcgRUxFQ1RST05JQyBHbWJICisJCQkJTGFuZ2UgU3RyYXNzZSA0CisJCQkJV2VpbGJ1cmcgSGVzc2VuIDM1NzgxCisJCQkJR0VSTUFOWQorCiswMC0xQy05QyAgIChoZXgpCQlOb3J0ZWwKKzAwMUM5QyAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMUMtOUQgICAoaGV4KQkJTGllY3RoaSBBRworMDAxQzlEICAgICAoYmFzZSAxNikJCUxpZWN0aGkgQUcKKwkJCQkxMCBVbnRlcmhvbHogU3RyZWV0CisJCQkJS3JpZWdzdGV0dGVuIFNvbG90aHVybiA0NTY2CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUMtOUUgICAoaGV4KQkJRHVhbHRlY2ggSVQgQUIKKzAwMUM5RSAgICAgKGJhc2UgMTYpCQlEdWFsdGVjaCBJVCBBQgorCQkJCUJhbmVoYWdzZ2F0YW4gMUYKKwkJCQlHT1RIRU5CVVJHIFZhc3RyYSBHb3RhbGFuZCA0MTQ1MQorCQkJCVNXRURFTgorCiswMC0xQy05RiAgIChoZXgpCQlSYXpvcnN0cmVhbSwgTExDCiswMDFDOUYgICAgIChiYXNlIDE2KQkJUmF6b3JzdHJlYW0sIExMQworCQkJCTIzODEtQyBSZW5haXNzYW5jZSBEcml2ZQorCQkJCUxhcyBWZWdhcyBOViA4OTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtQTAgICAoaGV4KQkJUHJvZHVjdGlvbiBSZXNvdXJjZSBHcm91cCwgTExDCiswMDFDQTAgICAgIChiYXNlIDE2KQkJUHJvZHVjdGlvbiBSZXNvdXJjZSBHcm91cCwgTExDCisJCQkJNTM5IFRlbXBsZSBIaWxsIFJvYWQKKwkJCQlOZXcgV2luZHNvciBOWSAxMjU1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtQTEgICAoaGV4KQkJQUtBTUFJIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAxQ0ExICAgICAoYmFzZSAxNikJCUFLQU1BSSBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk4IENBTUJSSURHRSBDRU5URVIKKwkJCQlDQU1CUklER0UgTUEgMDIxNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUEyICAgKGhleCkJCVBJUkVMTEkgQlJPQURCQU5EIFNPTFVUSU9OUworMDAxQ0EyICAgICAoYmFzZSAxNikJCVBJUkVMTEkgQlJPQURCQU5EIFNPTFVUSU9OUworCQkJCVZJQUxFIFNBUkNBIDIyMgorCQkJCU1JTEFOTyAgMjAxMjYKKwkJCQlJVEFMWQorCiswMC0xQy1BMyAgIChoZXgpCQlUZXJyYQorMDAxQ0EzICAgICAoYmFzZSAxNikJCVRlcnJhCisJCQkJRHJhdWd5c3RlcyBzdHIuIDIyCisJCQkJS2F1bmFzICBMVC01MTI1NgorCQkJCUxJVEhVQU5JQQorCiswMC0xQy1BNCAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworMDAxQ0E0ICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU2thbmUgMjIxODgKKwkJCQlTV0VERU4KKworMDAtMUMtQTUgICAoaGV4KQkJWnlnbyBDb3Jwb3JhdGlvbgorMDAxQ0E1ICAgICAoYmFzZSAxNikJCVp5Z28gQ29ycG9yYXRpb24KKwkJCQkyMSBMYXVyZWwgQnJvb2sgUmQuCisJCQkJTWlkZGxlZmllbGQgQ1QgMDY0NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUE2ICAgKGhleCkJCVdpbjRORVQKKzAwMUNBNiAgICAgKGJhc2UgMTYpCQlXaW40TkVUCisJCQkJMTMwMSBLT0xPTiBEaWdpdGFsIFRvd2VyLAorCQkJCTIyMi03IEt1cm8tZG9uZworCQkJCUt1cm8tZ3UgU2VvdWwgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy1BNyAgIChoZXgpCQlJbnRlcm5hdGlvbmFsIFF1YXJ0eiBMaW1pdGVkCiswMDFDQTcgICAgIChiYXNlIDE2KQkJSW50ZXJuYXRpb25hbCBRdWFydHogTGltaXRlZAorCQkJCTJuZCBGbG9vciwgMiwgRGFpIFdhbmcgU3RyZWV0LAorCQkJCVRhaSBQbyBJbmR1c3RyaWFsIEVzdGF0ZSwgVGFpIFBvLCBOLlQuCisJCQkJSG9uZyBLb25nIDg1MgorCQkJCUNISU5BCisKKzAwLTFDLUE4ICAgKGhleCkJCUFpclRpZXMgV2lyZWxlc3MgTmV0d29ya3MKKzAwMUNBOCAgICAgKGJhc2UgMTYpCQlBaXJUaWVzIFdpcmVsZXNzIE5ldHdvcmtzCisJCQkJQnV5dWtkZXJlIENhZCBObyAxMDMgS2F0IDUKKwkJCQlNZWNpZGl5ZWtveSwgSXN0YW5idWwgMzQ0NjAKKwkJCQlUVVJLRVkKKworMDAtMUMtQTkgICAoaGV4KQkJQXVkaW9tYXRpY2EgU3JsCiswMDFDQTkgICAgIChiYXNlIDE2KQkJQXVkaW9tYXRpY2EgU3JsCisJCQkJVmlhIE1hbmZyZWRpIDEyCisJCQkJRmxvcmVuY2UgSXRhbHkgNTAxMzYKKwkJCQlJVEFMWQorCiswMC0xQy1BQSAgIChoZXgpCQlCZWxsb24gUHR5IEx0ZAorMDAxQ0FBICAgICAoYmFzZSAxNikJCUJlbGxvbiBQdHkgTHRkCisJCQkJVW5pdCAxMi8xMi0xOCBWaWN0b3JpYSBTdCBFYXN0CisJCQkJTGlkY29tYmUgTlNXIDIwMDAKKwkJCQlBVVNUUkFMSUEKKworMDAtMUMtQUIgICAoaGV4KQkJTWV5ZXIgU291bmQgTGFib3JhdG9yaWVzLCBJbmMuCiswMDFDQUIgICAgIChiYXNlIDE2KQkJTWV5ZXIgU291bmQgTGFib3JhdG9yaWVzLCBJbmMuCisJCQkJMjgzMiBTYW4gUGFibG8gQXZlLgorCQkJCUJlcmtlbGV5IENBIDk0NzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1BQyAgIChoZXgpCQlRbmlxIFRlY2hub2xvZ3kgQ29ycC4KKzAwMUNBQyAgICAgKGJhc2UgMTYpCQlRbmlxIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQk1RiwgTm8uMTMzLCBTZWMuNCwgTWluc2hlbmcgRS4gUmQuLAorCQkJCVNvbmdzaGFuIERpc3RyaWN0LAorCQkJCVRhaXBlaSAgMTA1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy1BRCAgIChoZXgpCQlXdWhhbiBUZWxlY29tbXVuaWNhdGlvbiBEZXZpY2VzIENvLixMdGQKKzAwMUNBRCAgICAgKGJhc2UgMTYpCQlXdWhhbiBUZWxlY29tbXVuaWNhdGlvbiBEZXZpY2VzIENvLixMdGQKKwkJCQk4OCBZb3VrZXl1YW4gUm9hZCxIb25nc2hhbiBEaXN0cmljdAorCQkJCVd1aGFuIEh1YmVpIDQzMDA3NAorCQkJCUNISU5BCisKKzAwLTFDLUFFICAgKGhleCkJCVdpQ2hvcnVzLCBJbmMuCiswMDFDQUUgICAgIChiYXNlIDE2KQkJV2lDaG9ydXMsIEluYy4KKwkJCQkzNTkwIE4gMXN0IFN0cmVldCwgU3VpdGUgMzAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUFGICAgKGhleCkJCVBsYXRvIE5ldHdvcmtzIEluYy4KKzAwMUNBRiAgICAgKGJhc2UgMTYpCQlQbGF0byBOZXR3b3JrcyBJbmMuCisJCQkJMjg1NSBLaWZlciBSb2FkCisJCQkJU3VpdGUgMjA0CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUIwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUNCMCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1CMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFDQjEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtQjIgICAoaGV4KQkJQlBUIFNQQQorMDAxQ0IyICAgICAoYmFzZSAxNikJCUJQVCBTUEEKKwkJCQlWaWEgU3RhemlvbmUsNDgKKwkJCQlTZXN0byBhbCBSZWdoZW5hIFBvcmRlbm9uZSAzMzA3OQorCQkJCUlUQUxZCisKKzAwLTFDLUIzICAgKGhleCkJCUFQUExFLCBJTkMKKzAwMUNCMyAgICAgKGJhc2UgMTYpCQlBUFBMRSwgSU5DCisJCQkJMSBJTkZJTklURSBMT09QCisJCQkJQ1VQRVJUSU5PIENBTElGT1JOSUEgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUI0ICAgKGhleCkJCUlyaWRpdW0gU2F0ZWxsaXRlIExMQworMDAxQ0I0ICAgICAoYmFzZSAxNikJCUlyaWRpdW0gU2F0ZWxsaXRlIExMQworCQkJCTg0NDAgUy4gUml2ZXIgUGFya3dheQorCQkJCVRlbXBlIEFaIDg1Mjg0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1CNSAgIChoZXgpCQlOZWlodWEgTmV0d29yayBUZWNobm9sb2d5IENvLixMVEQuKE5ITikKKzAwMUNCNSAgICAgKGJhc2UgMTYpCQlOZWlodWEgTmV0d29yayBUZWNobm9sb2d5IENvLixMVEQuKE5ITikKKwkJCQlQbG90IFhpbm1laSBSb2FkIDEwMi1RLE5ldyBEaXN0cmljdAorCQkJCVd1WGkgSmlhbmdzdSAyMTQwMjgKKwkJCQlDSElOQQorCiswMC0xQy1CNiAgIChoZXgpCQlEdXpvbiBDTlQgQ28uLCBMdGQuCiswMDFDQjYgICAgIChiYXNlIDE2KQkJRHV6b24gQ05UIENvLiwgTHRkLgorCQkJCTE0dGggRmxvb3IsIElSRSBidWlsZGluZyAyCisJCQkJWWFuZ3B5dW5nLWRvbmcgNGdhLCBZb3VuZ2R1bmdwby1ndQorCQkJCVNlb3VsICAxNTAtOTY3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLUI3ICAgKGhleCkJCVVTQyBEaWdpQXJrIENvcnBvcmF0aW9uCiswMDFDQjcgICAgIChiYXNlIDE2KQkJVVNDIERpZ2lBcmsgQ29ycG9yYXRpb24KKwkJCQk2RiBUZW5ub3ogQ2VudHJhbCBUb3dlciAyLTItMjQgSGlnYXNoaXNoaW5hZ2F3YQorCQkJCVRva3lvIFNoaW5hZ2F3YS1rdSAxNDAtMDAwMgorCQkJCUpBUEFOCisKKzAwLTFDLUI4ICAgKGhleCkJCUNCQyBDby4sIEx0ZAorMDAxQ0I4ICAgICAoYmFzZSAxNikJCUNCQyBDby4sIEx0ZAorCQkJCTItMTUtMTMsIFRzdWtpc2hpbWEsIENodW8ta3UKKwkJCQlUb2t5byAgMTA0LTAwNTIKKwkJCQlKQVBBTgorCiswMC0xQy1COSAgIChoZXgpCQlLV0FORyBTVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDAxQ0I5ICAgICAoYmFzZSAxNikJCUtXQU5HIFNVTkcgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJMjAxLCBXT1JMRCBWRU5UVVJFIFRPV04gNjAtMjQsIEdBU0FOLURPTkcgR0VVTUNIVU4tR1UsCisJCQkJU0VPVUwgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtQkEgICAoaGV4KQkJVmVyU2NpZW50LCBJbmMuCiswMDFDQkEgICAgIChiYXNlIDE2KQkJVmVyU2NpZW50LCBJbmMuCisJCQkJNzcwMCBFcXVpdGFibGUgRHJpdmUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlFZGVuIFByYWlyaWUgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUJCICAgKGhleCkJCU11c2ljaWFuTGluaworMDAxQ0JCICAgICAoYmFzZSAxNikJCU11c2ljaWFuTGluaworCQkJCTI0MDEgQ29yeSBBdmUuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUJDICAgKGhleCkJCUNhc3RHcmFiYmVyLCBMTEMKKzAwMUNCQyAgICAgKGJhc2UgMTYpCQlDYXN0R3JhYmJlciwgTExDCisJCQkJNjUwNyBXaWxraW5zIEF2ZW51ZQorCQkJCVBpdHRzYnVyZ2ggUEEgMTUyMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUJEICAgKGhleCkJCUV6emUgTW9iaWxlIFRlY2guLCBJbmMuCiswMDFDQkQgICAgIChiYXNlIDE2KQkJRXp6ZSBNb2JpbGUgVGVjaC4sIEluYy4KKwkJCQkzRiwgQnVibXVzYSBCbGRnLiwgMTUxLTMxCisJCQkJTm9uaHl1bi1kb25nLCBLYW5nbmFtLWt1CisJCQkJU2VvdWwgMTM1LTgyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy1CRSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMUNCRSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyBLWU9UTyA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFDLUJGICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxQ0JGICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMUMtQzAgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDFDQzAgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xQy1DMSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMUNDMSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2MDAgTi4gVVMgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSWxsaW5vaXMgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUMyICAgKGhleCkJCVBhcnQgSUkgUmVzZWFyY2gsIEluYy4KKzAwMUNDMiAgICAgKGJhc2UgMTYpCQlQYXJ0IElJIFJlc2VhcmNoLCBJbmMuCisJCQkJNDYwMSBFLiBBaXJwb3J0IERyLgorCQkJCU9udGFyaW8gQ0EgOTE3NjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUMzICAgKGhleCkJCVBhY2UgcGxjCiswMDFDQzMgICAgIChiYXNlIDE2KQkJUGFjZSBwbGMKKwkJCQlTYWx0cyBNaWxsCisJCQkJVmljdG9yaWEgUm9hZAorCQkJCUJyYWRmb3JkIFdlc3QgWW9ya3NoaXJlIEJEMTggM0xGCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUMtQzQgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDFDQzQgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQltczA0MDgwMQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUM1ICAgKGhleCkJCTNDT00gTFRECiswMDFDQzUgICAgIChiYXNlIDE2KQkJM0NPTSBMVEQKKwkJCQkzQ29tIEV1cm9wZSBMdGQsIFBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlQZW9wbGVidWlsZGluZyBFc3RhdGUsIE1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cyBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUMtQzYgICAoaGV4KQkJUHJvU3RvciBTeXN0ZW1zCiswMDFDQzYgICAgIChiYXNlIDE2KQkJUHJvU3RvciBTeXN0ZW1zCisJCQkJNTU1NSBDZW50cmFsIEF2ZW51ZQorCQkJCVN1aXRlIDEwMAorCQkJCUJvdWxkZXIgQ29sb3JhZG8gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUM3ICAgKGhleCkJCVJlbWJyYW5kdCBUZWNobm9sb2dpZXMsIExMQyBkL2IvYSBSRU1TVFJFQU0KKzAwMUNDNyAgICAgKGJhc2UgMTYpCQlSZW1icmFuZHQgVGVjaG5vbG9naWVzLCBMTEMgZC9iL2EgUkVNU1RSRUFNCisJCQkJMTQwIFNvdXRoIEJldmVybHkgRHJpdmUKKwkJCQlTdWl0ZSAyMDMKKwkJCQlCZXZlcmx5IEhpbGxzIENBIDkwMjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1DOCAgIChoZXgpCQlJTkRVU1RST05JQyBJbmR1c3RyaWUtRWxlY3Ryb25pYyBHbWJIICYgQ28uIEtHCiswMDFDQzggICAgIChiYXNlIDE2KQkJSU5EVVNUUk9OSUMgSW5kdXN0cmllLUVsZWN0cm9uaWMgR21iSCAmIENvLiBLRworCQkJCUNhcmwtSmFjb2ItS29sYi1XZWcgMQorCQkJCVdlcnRoZWltIEJhZGVuLVd1ZXJ0dGVtYmVyZyA5Nzg3NworCQkJCUdFUk1BTlkKKworMDAtMUMtQzkgICAoaGV4KQkJS2Fpc2UgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxQ0M5ICAgICAoYmFzZSAxNikJCUthaXNlIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby42NzgsIFd1bnN5dWUgUmQuLCBadW95aW5nIERpc3RyaWN0LAorCQkJCUthb2hzaXVuZyAgODEzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy1DQSAgIChoZXgpCQlTaGFuZ2hhaSBHYW96aGkgU2NpZW5jZSAmIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ28uCiswMDFDQ0EgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgR2FvemhpIFNjaWVuY2UgJiBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLgorCQkJCU5vLjI4MyBRaW4gSmlhbmcgUmQuIFNoYW5naGFpLENoaW5hCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTFDLUNCICAgKGhleCkJCUZvcnRoIENvcnBvcmF0aW9uIFB1YmxpYyBDb21wYW55IExpbWl0ZWQKKzAwMUNDQiAgICAgKGJhc2UgMTYpCQlGb3J0aCBDb3Jwb3JhdGlvbiBQdWJsaWMgQ29tcGFueSBMaW1pdGVkCisJCQkJMjI2LzEyLDEzLDE2IFBhaG9seW90aGluIFJvYWQKKwkJCQlTYW1zZW5uYWksIFBheWF0aGFpCisJCQkJQmFuZ2tvayAgMTA0MDAKKwkJCQlUSEFJTEFORAorCiswMC0xQy1DQyAgIChoZXgpCQlSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZAorMDAxQ0NDICAgICAoYmFzZSAxNikJCVJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkCisJCQkJMzA1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzAwLTFDLUNEICAgKGhleCkJCUFsZWt0cm9uYSBDb3Jwb3JhdGlvbgorMDAxQ0NEICAgICAoYmFzZSAxNikJCUFsZWt0cm9uYSBDb3Jwb3JhdGlvbgorCQkJCTk1IEhhdGhhd2F5IFN0cmVldCwgU3VpdGUgMTAKKwkJCQlQcm92aWRlbmNlIFJJIDAyOTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1DRSAgIChoZXgpCQlCeSBUZWNoZGVzaWduCiswMDFDQ0UgICAgIChiYXNlIDE2KQkJQnkgVGVjaGRlc2lnbgorCQkJCUMvIE1hcnF1ZXMgZGUgQWh1bWFkYSAxMQorCQkJCU1hZHJpZCAgMjgwMjgKKwkJCQlTUEFJTgorCiswMC0xQy1DRiAgIChoZXgpCQlMSU1FVEVLCiswMDFDQ0YgICAgIChiYXNlIDE2KQkJTElNRVRFSworCQkJCSMyMTMtMSwgQnl1Y2tzYW4gRGlnaXRhbCBWYWxsZXkgSUksIDQ4MC0xMCwgR2FzYW4tZG9uZywKKwkJCQlHZXVtY2hlbi1ndQorCQkJCVNlb3VsICAxNTMtNzgzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLUQwICAgKGhleCkJCUNpcmNsZW9uZSBDby4sTHRkLgorMDAxQ0QwICAgICAoYmFzZSAxNikJCUNpcmNsZW9uZSBDby4sTHRkLgorCQkJCTg2MC0xLE5vZGEKKwkJCQlCZXBwdS1zaGkgT29pdGEta2VuIDg3NC0wMDE2CisJCQkJSkFQQU4KKworMDAtMUMtRDEgICAoaGV4KQkJV2F2ZXMgQXVkaW8gTFRECiswMDFDRDEgICAgIChiYXNlIDE2KQkJV2F2ZXMgQXVkaW8gTFRECisJCQkJQXpyaWxlaSBDZW50ZXIgMywgVHJpYW5nbGUgdG93ZXIKKwkJCQkzMm5kIGZsb29yCisJCQkJVGVsIEF2aXYgQ2VudHJhbCA2NzAyMworCQkJCUlTUkFFTAorCiswMC0xQy1EMiAgIChoZXgpCQlLaW5nIENoYW1waW9uIChIb25nIEtvbmcpIExpbWl0ZWQKKzAwMUNEMiAgICAgKGJhc2UgMTYpCQlLaW5nIENoYW1waW9uIChIb25nIEtvbmcpIExpbWl0ZWQKKwkJCQlVbml0IDE1MjAsIDE1L0YsIFBoYXNlIDEsIE1ldHJvIENlbnRyZSwKKwkJCQkzMiBMYW0gSGluZyBTdHJlZXQsIEtvd2xvb24gQmF5LAorCQkJCUtvd2xvb24gIAorCQkJCUhPTkcgS09ORworCiswMC0xQy1EMyAgIChoZXgpCQlaUCBFbmdpbmVlcmluZyBTRUwKKzAwMUNEMyAgICAgKGJhc2UgMTYpCQlaUCBFbmdpbmVlcmluZyBTRUwKKwkJCQl2aWEgQXJkaXRvIERlc2lvLCA2MAorCQkJCVRlY25vcG9sbyBUaWJ1cnRpbm8KKwkJCQlST01FICAwMDEzMQorCQkJCUlUQUxZCisKKzAwLTFDLUQ0ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFDRDQgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTFDLUQ1ICAgKGhleCkJCVplZVZlZSwgSW5jLgorMDAxQ0Q1ICAgICAoYmFzZSAxNikJCVplZVZlZSwgSW5jLgorCQkJCTEgTW9uYXJjaCBEcml2ZQorCQkJCVN1aXRlIDIwMAorCQkJCUxpdHRsZXRvbiBNQSAwMTQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRDYgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUNENiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUMtRDcgICAoaGV4KQkJSGFybWFuL0JlY2tlciBBdXRvbW90aXZlIFN5c3RlbXMgR21iSAorMDAxQ0Q3ICAgICAoYmFzZSAxNikJCUhhcm1hbi9CZWNrZXIgQXV0b21vdGl2ZSBTeXN0ZW1zIEdtYkgKKwkJCQlCZWNrZXItR29yaW5nLVN0ci4gMTYKKwkJCQlLYXJsc2JhZCBCYWRlbiAtIFd1cnR0ZW1iZXJnIDc2MzA3CisJCQkJR0VSTUFOWQorCiswMC0xQy1EOCAgIChoZXgpCQlCbHVlQW50IFdpcmVsZXNzCiswMDFDRDggICAgIChiYXNlIDE2KQkJQmx1ZUFudCBXaXJlbGVzcworCQkJCTI0NSBTdC5LaWxkYSBSZCwgU3QgS2lsZGEKKwkJCQlNZWxib3VybmUgVmljdG9yaWEgMzE4MgorCQkJCUFVU1RSQUxJQQorCiswMC0xQy1EOSAgIChoZXgpCQlHbG9iYWxUb3AgVGVjaG5vbG9neSBJbmMuCiswMDFDRDkgICAgIChiYXNlIDE2KQkJR2xvYmFsVG9wIFRlY2hub2xvZ3kgSW5jLgorCQkJCTE2IE5hbi1rZSA5dGggUmQuIFNjaWVuY2UtYmFzZSBJbmR1c3RyaWFsIFBhcmssCisJCQkJU2hhbkh1YSBUYWluYW4gY291bnR5IDc0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtREEgICAoaGV4KQkJRXhlZ2luIFRlY2hub2xvZ2llcyBMaW1pdGVkCiswMDFDREEgICAgIChiYXNlIDE2KQkJRXhlZ2luIFRlY2hub2xvZ2llcyBMaW1pdGVkCisJCQkJMjA0IC0gMjA3MSBLaW5nc3dheSBBdmVudWUKKwkJCQlQb3J0IENvcXVpdGxhbSBCQyBWM0MgNk4yCisJCQkJQ0FOQURBCisKKzAwLTFDLURCICAgKGhleCkJCUNBUlBPSU5UIENPLixMVEQKKzAwMUNEQiAgICAgKGJhc2UgMTYpCQlDQVJQT0lOVCBDTy4sTFRECisJCQkJMTM0MC02LCBOYW1nYW5nIEJsZCA3RiwgU2VvY2hvLURvbmcKKwkJCQlTZW9jaG8tS3UsCisJCQkJU0VPVUwgIDEzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtREMgICAoaGV4KQkJQ3VzdG9tIENvbXB1dGVyIFNlcnZpY2VzLCBJbmMuCiswMDFDREMgICAgIChiYXNlIDE2KQkJQ3VzdG9tIENvbXB1dGVyIFNlcnZpY2VzLCBJbmMuCisJCQkJMTAyMCBTcHJpbmcgQ2l0eSBEcml2ZQorCQkJCVdhdWtlc2hhIFdJIDUzMTg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1ERCAgIChoZXgpCQlDT1dCRUxMIEVOR0lORUVSSU5HIENPLiwgTFRELgorMDAxQ0REICAgICAoYmFzZSAxNikJCUNPV0JFTEwgRU5HSU5FRVJJTkcgQ08uLCBMVEQuCisJCQkJMTczOS0xIE5hZ2F0b3JvCisJCQkJU0FLVSBOYWdhbm8gMzg1LTAwMjEKKwkJCQlKQVBBTgorCiswMC0xQy1ERSAgIChoZXgpCQlJbnRlcmFjdGl2ZSBNdWx0aW1lZGlhIGVYY2hhbmdlIEluYy4KKzAwMUNERSAgICAgKGJhc2UgMTYpCQlJbnRlcmFjdGl2ZSBNdWx0aW1lZGlhIGVYY2hhbmdlIEluYy4KKwkJCQlOTy4gMTY1IFdlbmxpbiBSb2FkLgorCQkJCVRhaXBlaSBUYWl3YW4gMTExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy1ERiAgIChoZXgpCQlCZWxraW4gSW50ZXJuYXRpb25hbCBJbmMuCiswMDFDREYgICAgIChiYXNlIDE2KQkJQmVsa2luIEludGVybmF0aW9uYWwgSW5jLgorCQkJCTUwMSBXLiBXYWxudXQgU3QuCisJCQkJQ29tcHRvbiBDYSA5MDIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRTAgICAoaGV4KQkJREFTQU4gVFBTCiswMDFDRTAgICAgIChiYXNlIDE2KQkJREFTQU4gVFBTCisJCQkJSFVNQVggVmlsbGFnZSA2RiwgMTEtNCBTdW5hZS1kb25nLCBCdW5kYW5nLWd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8gNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy1FMSAgIChoZXgpCQlJTkRSQSBTSVNURU1BUywgUy5BLgorMDAxQ0UxICAgICAoYmFzZSAxNikJCUlORFJBIFNJU1RFTUFTLCBTLkEuCisJCQkJQ3RyYS4gZGUgTG9lY2hlcywgbi4/IDkKKwkJCQlUT1JSRUpPTiBERSBBUkRPWiBNQURSSUQgMjg4NTAKKwkJCQlTUEFJTgorCiswMC0xQy1FMiAgIChoZXgpCQlBdHRlcm8gVGVjaCwgTExDLgorMDAxQ0UyICAgICAoYmFzZSAxNikJCUF0dGVybyBUZWNoLCBMTEMuCisJCQkJMTMxNSBEaXJlY3RvcnMgUm93IC0gU3VpdGUgMTA3CisJCQkJRm9ydCBXYXluZSBJbmRpYW5hIDQ2ODA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1FMyAgIChoZXgpCQlPcHRpbWVkaWNhbCBTeXN0ZW1zCiswMDFDRTMgICAgIChiYXNlIDE2KQkJT3B0aW1lZGljYWwgU3lzdGVtcworCQkJCTIzNSBIZW1icmVlIFBhcmsgRHJpdmUKKwkJCQlSb3N3ZWxsIEdBIDMwMDc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1FNCAgIChoZXgpCQlFbGVTeSBKU0MKKzAwMUNFNCAgICAgKGJhc2UgMTYpCQlFbGVTeSBKU0MKKwkJCQlBbHRheXNrYXlhIHN0cmVldCwgMTYxYQorCQkJCVRvbXNrIG9ibGFzdCA2MzQwMjEKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUMtRTUgICAoaGV4KQkJTUJTIEVsZWN0cm9uaWMgU3lzdGVtcyBHbWJICiswMDFDRTUgICAgIChiYXNlIDE2KQkJTUJTIEVsZWN0cm9uaWMgU3lzdGVtcyBHbWJICisJCQkJUmluZ3N0cmFzc2UgMworCQkJCTgyMzE5IFN0YXJuYmVyZyBCYXZhcmlhIDgyMzE5CisJCQkJR0VSTUFOWQorCiswMC0xQy1FNiAgIChoZXgpCQlJTk5FUworMDAxQ0U2ICAgICAoYmFzZSAxNikJCUlOTkVTCisJCQkJODAgYXZlbnVlIGRlcyBCdXR0ZXMgZGUgQ29lc21lcworCQkJCVJFTk5FUyAgMzU3MDAKKwkJCQlGUkFOQ0UKKworMDAtMUMtRTcgICAoaGV4KQkJUm9jb24gUExDIFJlc2VhcmNoIENlbnRyZQorMDAxQ0U3ICAgICAoYmFzZSAxNikJCVJvY29uIFBMQyBSZXNlYXJjaCBDZW50cmUKKwkJCQkyMSBWZWsgNTZBIHN0ci4KKwkJCQlTb2ZpYSAgMTcwMAorCQkJCUJVTEdBUklBCisKKzAwLTFDLUU4ICAgKGhleCkJCUN1bW1pbnMgSW5jCiswMDFDRTggICAgIChiYXNlIDE2KQkJQ3VtbWlucyBJbmMKKwkJCQkxNDAwIDczcmQgQXZlIE5FCisJCQkJRnJpZGxleSBNTiA1NTQzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRTkgICAoaGV4KQkJR2FsYXh5IFRlY2hub2xvZ3kgTGltaXRlZAorMDAxQ0U5ICAgICAoYmFzZSAxNikJCUdhbGF4eSBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQk5L0YgV2luIEZ1bGwgQ29tbWVyaWNhbCBCdWlsZGluZywgMTcyLTE3NiBXaW5nIExvayBTdHJlZXQsCisJCQkJU2hldW5nIFdhbiwgIAorCQkJCUhPTkcgS09ORworCiswMC0xQy1FQSAgIChoZXgpCQlTY2llbnRpZmljLUF0bGFudGEsIEluYworMDAxQ0VBICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMtQXRsYW50YSwgSW5jCisJCQkJNTAzMCBTdWdhcmxvYWYgUGt3eQorCQkJCUFUTCAyLlQuNjAzCisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRUIgICAoaGV4KQkJTm9ydGVsCiswMDFDRUIgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTFDLUVDICAgKGhleCkJCU1vYmlsZXNvZnQgKEF1c3QuKSBQdHkgTHRkCiswMDFDRUMgICAgIChiYXNlIDE2KQkJTW9iaWxlc29mdCAoQXVzdC4pIFB0eSBMdGQKKwkJCQlTdWl0ZSAyLCAyNy0zNSBHcm9zdmVub3IgU3RyZWV0CisJCQkJTmV1dHJhbCBCYXkKKwkJCQlTeWRuZXkgTlNXIDIwODkKKwkJCQlBVVNUUkFMSUEKKworMDAtMUMtRUQgICAoaGV4KQkJRU5WSVJPTk5FTUVOVCBTQQorMDAxQ0VEICAgICAoYmFzZSAxNikJCUVOVklST05ORU1FTlQgU0EKKwkJCQkxMTEgYmQuIFJvYmVzcGllcnJlCisJCQkJUE9JU1NZIFl2ZWxpbmVzIDc4MzAwCisJCQkJRlJBTkNFCisKKzAwLTFDLUVFICAgKGhleCkJCVNIQVJQIENvcnBvcmF0aW9uCiswMDFDRUUgICAgIChiYXNlIDE2KQkJU0hBUlAgQ29ycG9yYXRpb24KKwkJCQkyMi0yMixOYWdhaWtlLWNobyxBYmVuby1rdQorCQkJCU9zYWthICA1NDUtODUyMgorCQkJCUpBUEFOCisKKzAwLTFDLUVGICAgKGhleCkJCVByaW1heCBFbGVjdHJvbmljcyBMVEQKKzAwMUNFRiAgICAgKGJhc2UgMTYpCQlQcmltYXggRWxlY3Ryb25pY3MgTFRECisJCQkJNjY5LCBSdWV5IEt1YW5nIFJvYWQsIE5laWh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLUYwICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxQ0YwICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5PLjI4OSwgU2luaHUgM3JkIFJkLiwKKwkJCQlOZWlodSBEaXN0cmljdCwgVGFpcGVpIENpdHkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy1GMSAgIChoZXgpCQlTVVBvWCBUZWNobm9sb2d5IENvLiAsIExURC4KKzAwMUNGMSAgICAgKGJhc2UgMTYpCQlTVVBvWCBUZWNobm9sb2d5IENvLiAsIExURC4KKwkJCQk3RiwgNDE5ICwgQ2h1bmcgU2FuIFJkLiAsIFNlYyAyCisJCQkJQ2h1bmcgSG8gVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtRjIgICAoaGV4KQkJVGVubG9uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMUNGMiAgICAgKGJhc2UgMTYpCQlUZW5sb24gVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTQvRi4sU2hlbmh1YSBCbGRnLE5vLjMxNTUsQmluaGUgUm9hZCxGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDMzCisJCQkJQ0hJTkEKKworMDAtMUMtRjMgICAoaGV4KQkJRVZTIEJST0FEQ0FTVCBFUVVJUE1FTlQKKzAwMUNGMyAgICAgKGJhc2UgMTYpCQlFVlMgQlJPQURDQVNUIEVRVUlQTUVOVAorCQkJCUxpZWdlIFNjaWVuY2UgUGFyaworCQkJCXJ1ZSBCb2lzIFN0IEplYW4gMTYKKwkJCQlPdWdyZWUgTGllZ2UgNDEwMgorCQkJCUJFTEdJVU0KKworMDAtMUMtRjQgICAoaGV4KQkJTWVkaWEgVGVjaG5vbG9neSBTeXN0ZW1zIEluYworMDAxQ0Y0ICAgICAoYmFzZSAxNikJCU1lZGlhIFRlY2hub2xvZ3kgU3lzdGVtcyBJbmMKKwkJCQk3NjYgTGFrZWZpZWxkIFJvYWQKKwkJCQlVbml0IEYKKwkJCQlXZXN0bGFrZSBWaWxsYWdlIENBIDkxMzc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1GNSAgIChoZXgpCQlXaXNlYmx1ZSBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMUNGNSAgICAgKGJhc2UgMTYpCQlXaXNlYmx1ZSBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlSbSBHNSwgNS9GLCBLaW5nc2ZvcmQgSW5kdXN0cmlhbCBCdWlsZGluZyBQaGFzZSBJSSwgMjYtMzIgS3dhaSBIZWkgU3RyZWV0LAorCQkJCUt3YWkgQ2h1bmcgTi5ULiAKKwkJCQlIT05HIEtPTkcKKworMDAtMUMtRjYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQ0Y2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUY3ICAgKGhleCkJCUF1ZGlvU2NpZW5jZQorMDAxQ0Y3ICAgICAoYmFzZSAxNikJCUF1ZGlvU2NpZW5jZQorCQkJCTcyOSB3ZXN0IDE2dGggc3QKKwkJCQlTdWl0ZSBDMgorCQkJCUNvc3RhIE1lc2EgQ2FsaWZvcm5pYSA5MjYyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRjggICAoaGV4KQkJUGFyYWRlIFRlY2hub2xvZ2llcywgTHRkLgorMDAxQ0Y4ICAgICAoYmFzZSAxNikJCVBhcmFkZSBUZWNobm9sb2dpZXMsIEx0ZC4KKwkJCQlDL08gUGFyYWRlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTUzMCBMYWtlc2lkZSBEci4gU3VpdGUgMjMwCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1GOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFDRjkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRkEgICAoaGV4KQkJQWxhcm0uY29tCiswMDFDRkEgICAgIChiYXNlIDE2KQkJQWxhcm0uY29tCisJCQkJODE1MCBMZWVzYnVyZyBQaWtlCisJCQkJU3VpdGUgMTQwMAorCQkJCVZpZW5uYSBWQSAyMjE4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRkIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUNGQiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUZDICAgKGhleCkJCVN1bWluZXQgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgKFNoYW5naGFpKSBDby4sIEx0ZC4KKzAwMUNGQyAgICAgKGJhc2UgMTYpCQlTdW1pbmV0IENvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIChTaGFuZ2hhaSkgQ28uLCBMdGQuCisJCQkJNEYsIDNCbGQuIDY0NyBMb25nLCBTb25nVGFvIFJvYWQsIFpoYW5nSmlhbmcgSGktVGVjaCBQYXJrCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzAwLTFDLUZEICAgKGhleCkJCVVuaXZlcnNhbCBFbGVjdHJvbmljcworMDAxQ0ZEICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBFbGVjdHJvbmljcworCQkJCTYxMDEgR2F0ZXdheSBEcml2ZQorCQkJCUN5cHJlc3MgQ2FsaWZvcm5pYSA5MDYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRkUgICAoaGV4KQkJUXVhcnRpY3MgSW5jCiswMDFDRkUgICAgIChiYXNlIDE2KQkJUXVhcnRpY3MgSW5jCisJCQkJMTUyNDEgTGFndW5hIENhbnlvbiBSb2FkCisJCQkJU3RlIDIwMAorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRkYgICAoaGV4KQkJTmFwZXJhIE5ldHdvcmtzIEluYworMDAxQ0ZGICAgICAoYmFzZSAxNikJCU5hcGVyYSBOZXR3b3JrcyBJbmMKKwkJCQk3NjgzIFNFIDI3dGgKKwkJCQlTdWl0ZSAxMjAKKwkJCQlNZXJjZXIgSXNsYW5kIFdBIDk4MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0wMCAgIChoZXgpCQlCcml2byBTeXN0ZW1zLCBMTEMKKzAwMUQwMCAgICAgKGJhc2UgMTYpCQlCcml2byBTeXN0ZW1zLCBMTEMKKwkJCQk0MzMwIEVhc3QgV2VzdCBIaWdod2F5CisJCQkJU3VpdGUgMjUwCisJCQkJQmV0aGVzZGEgTUQgMjA4MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTAxICAgKGhleCkJCU5lcHR1bmUgRGlnaXRhbAorMDAxRDAxICAgICAoYmFzZSAxNikJCU5lcHR1bmUgRGlnaXRhbAorCQkJCU1lZG5hcm9kbmkgbWVqbmkgcHJlaG9kIDYKKwkJCQlWcnRvamJhIE5vdmEgR29yaWNhIDUyOTAKKwkJCQlTTE9WRU5JQQorCiswMC0xRC0wMiAgIChoZXgpCQlDeWJlcnRlY2ggVGVsZWNvbSBEZXZlbG9wbWVudAorMDAxRDAyICAgICAoYmFzZSAxNikJCUN5YmVydGVjaCBUZWxlY29tIERldmVsb3BtZW50CisJCQkJSGF6ZW5rb29nIDI1CisJCQkJQWxrbWFhciBOb29yZCBIb2xsYW5kIDE4MjIgQlMKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRC0wMyAgIChoZXgpCQlEZXNpZ24gU29sdXRpb25zIEluYy4KKzAwMUQwMyAgICAgKGJhc2UgMTYpCQlEZXNpZ24gU29sdXRpb25zIEluYy4KKwkJCQk4MSBEYXZpZCBMb3ZlIFBsYWNlCisJCQkJR29sZXRhIENhIDkzMTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0wNCAgIChoZXgpCQlaaXBpdCBXaXJlbGVzcywgSW5jLgorMDAxRDA0ICAgICAoYmFzZSAxNikJCVppcGl0IFdpcmVsZXNzLCBJbmMuCisJCQkJNDkgU2FsdGVycyBSb2FkLgorCQkJCVN1aXRlIDYKKwkJCQlHcmVlbnZpbGxlIFNDIDI5NjA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0wNSAgIChoZXgpCQlpTGlnaHQKKzAwMUQwNSAgICAgKGJhc2UgMTYpCQlpTGlnaHQKKwkJCQlVbml0IDQgRW50ZXJwcmlzZSBDZW50cmUKKwkJCQlSb2d1ZXMgSGlsbAorCQkJCVBlbnNodXJzdCBLZW50IFROMTEgOEJHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUQtMDYgICAoaGV4KQkJSE0gRWxlY3Ryb25pY3MsIEluYy4KKzAwMUQwNiAgICAgKGJhc2UgMTYpCQlITSBFbGVjdHJvbmljcywgSW5jLgorCQkJCTE0MTEwIFN0b3dlIERyaXZlCisJCQkJUG93YXkgQ0EgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTA3ICAgKGhleCkJCVNoZW56aGVuIFNhbmcgRmVpIENvbnN1bWVyIENvbW11bmljYXRpb25zIENvLixMdGQKKzAwMUQwNyAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBTYW5nIEZlaSBDb25zdW1lciBDb21tdW5pY2F0aW9ucyBDby4sTHRkCisJCQkJMTEgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSBSb2FkLAorCQkJCVNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgSW5kdXN0cmlhbCBQYXJrIE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTFELTA4ICAgKGhleCkJCUpJQU5HU1UgWUlOSEUgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKzAwMUQwOCAgICAgKGJhc2UgMTYpCQlKSUFOR1NVIFlJTkhFIEVMRUNUUk9OSUNTIENPLiwgTFRECisJCQkJMTg4IE5BTkhVQU4gUk9BRAorCQkJCVRBTkdRSUFPCisJCQkJWkhBTkdKSUFHQU5HIEpJQU5HU1UgMjE1NjExCisJCQkJQ0hJTkEKKworMDAtMUQtMDkgICAoaGV4KQkJRGVsbCBJbmMKKzAwMUQwOSAgICAgKGJhc2UgMTYpCQlEZWxsIEluYworCQkJCU9uZSBEZWxsIFdheSwgTVMgUlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtMEEgICAoaGV4KQkJRGF2aXMgSW5zdHJ1bWVudHMsIEluYy4KKzAwMUQwQSAgICAgKGJhc2UgMTYpCQlEYXZpcyBJbnN0cnVtZW50cywgSW5jLgorCQkJCTM0NjUgRGlhYmxvIEF2ZS4KKwkJCQlIYXl3YXJkIENBIDk0NTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0wQiAgIChoZXgpCQlQb3dlciBTdGFuZGFyZHMgTGFiCiswMDFEMEIgICAgIChiYXNlIDE2KQkJUG93ZXIgU3RhbmRhcmRzIExhYgorCQkJCTEyMDEgTWFyaW5hIFZpbGxhZ2UgUGFya3dheSAjMTAxCisJCQkJQWxhbWVkYSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtMEMgICAoaGV4KQkJTW9iaWxlQ29tcGlhCiswMDFEMEMgICAgIChiYXNlIDE2KQkJTW9iaWxlQ29tcGlhCisJCQkJRG9uZ3dvbiBCbGRnLCA3MjUtMzAsIFllb2tzYW0tZG9uZywgR2FuZ25hbS1ndSwKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRC0wRCAgIChoZXgpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgaW5jLgorMDAxRDBEICAgICAoYmFzZSAxNikJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBpbmMuCisJCQkJNi0yMSwyQ2hvbWUKKwkJCQlNaW5hbWktQW95YW1hCisJCQkJTWluYXRvLUt1IFRva3lvIDEwNy0wMDYyCisJCQkJSkFQQU4KKworMDAtMUQtMEUgICAoaGV4KQkJQWdhcGhhIFRlY2hub2xvZ3kgY28uLCBMdGQuCiswMDFEMEUgICAgIChiYXNlIDE2KQkJQWdhcGhhIFRlY2hub2xvZ3kgY28uLCBMdGQuCisJCQkJOUYgTm8uMTIxLCBTaGluZ2RlIFJkLiwKKwkJCQlTYW5jaHVuZyBDaXR5IFRhaXBlaSBDb3VudHkgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC0wRiAgIChoZXgpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMUQwRiAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQkzL0YsIEJsZGcuIFIxLUIsCisJCQkJSGktdGVjaCBJbmR1c3RyaWFsIFBhcmssIFNoZW5uYW4gUmQuLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xRC0xMCAgIChoZXgpCQlMaWdodEhhdXMgTG9naWMsIEluYy4KKzAwMUQxMCAgICAgKGJhc2UgMTYpCQlMaWdodEhhdXMgTG9naWMsIEluYy4KKwkJCQkxMjYtMTAyMCBNYWlubGFuZCBTdHJlZXQKKwkJCQlWYW5jb3V2ZXIgQkMgVjZCIDJUNAorCQkJCUNBTkFEQQorCiswMC0xRC0xMSAgIChoZXgpCQlBbmFsb2d1ZSAmIE1pY3JvIEx0ZAorMDAxRDExICAgICAoYmFzZSAxNikJCUFuYWxvZ3VlICYgTWljcm8gTHRkCisJCQkJTGFrZXNpZGUgSG91c2UKKwkJCQlMYWtlc2lkZQorCQkJCUxsYW50YXJuYW0gSW5kdXN0cmlhbCBQYXJrIEN3bWJyYW4gTlA0NCAzWFMKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRC0xMiAgIChoZXgpCQlST0hNIENPLiwgTFRELgorMDAxRDEyICAgICAoYmFzZSAxNikJCVJPSE0gQ08uLCBMVEQuCisJCQkJMjEgU2FpaW4tTWl6b3Nha2ktY2hvLAorCQkJCVVreW8ta3UsCisJCQkJS3lvdG8tc2hpIEtZT1RPIDYxNS04NTg1CisJCQkJSkFQQU4KKworMDAtMUQtMTMgICAoaGV4KQkJTmV4dEdUVgorMDAxRDEzICAgICAoYmFzZSAxNikJCU5leHRHVFYKKwkJCQkxM0YgQnl1Y2tzYW4vS3l1bmdpbiBEaWdpdGFsIFZhbGxleSBsbAorCQkJCUdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELTE0ICAgKGhleCkJCVNQRVJBRFRPTkUgSU5GT1JNQVRJT04gVEVDSE5PTE9HWSBMSU1JVEVECiswMDFEMTQgICAgIChiYXNlIDE2KQkJU1BFUkFEVE9ORSBJTkZPUk1BVElPTiBURUNITk9MT0dZIExJTUlURUQKKwkJCQlSb29tIDEwMDEgTk8uNDE4IEd1aSBQaW5nIFJvYWQsCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTFELTE1ICAgKGhleCkJCVNoZW56aGVuIERvbHBoaW4gRWxlY3Ryb25pYyBDby4sIEx0ZAorMDAxRDE1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIERvbHBoaW4gRWxlY3Ryb25pYyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nMjEsQmFveXVhbiwgTm8uMSBJbmR1c3RyaWFsIFpvbmUsCisJCQkJWGl4aWFuZywgQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwMworCQkJCUNISU5BCisKKzAwLTFELTE2ICAgKGhleCkJCUVmaXhvCiswMDFEMTYgICAgIChiYXNlIDE2KQkJRWZpeG8KKwkJCQk1IGF2ZW51ZSBkZSBTYWludCBNZW5ldAorCQkJCUltbWV1YmxlIEF4aW9tZSwgQmF0IEIKKwkJCQlNQVJTRUlMTEUgUEFDQSAxMzAxMQorCQkJCUZSQU5DRQorCiswMC0xRC0xNyAgIChoZXgpCQlEaWdpdGFsIFNreSBDb3Jwb3JhdGlvbgorMDAxRDE3ICAgICAoYmFzZSAxNikJCURpZ2l0YWwgU2t5IENvcnBvcmF0aW9uCisJCQkJNS01LTE1IFNvdG9rYW5kYSwKKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMS0wMDIxCisJCQkJSkFQQU4KKworMDAtMUQtMTggICAoaGV4KQkJUG93ZXIgSW5ub3ZhdGlvbiBHbWJICiswMDFEMTggICAgIChiYXNlIDE2KQkJUG93ZXIgSW5ub3ZhdGlvbiBHbWJICisJCQkJUmVobGFuZCAyCisJCQkJQWNoaW0gTmllZGVyc2FjaHNlbiAyODgzMgorCQkJCUdFUk1BTlkKKworMDAtMUQtMTkgICAoaGV4KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxRDE5ICAgICAoYmFzZSAxNikJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Ri4sIE5vLiA5ICwgUGFyayBBdmVudWUgSUksCisJCQkJU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC0xQSAgIChoZXgpCQlPdmlzTGluayBTLkEuCiswMDFEMUEgICAgIChiYXNlIDE2KQkJT3Zpc0xpbmsgUy5BLgorCQkJCUMvQW5kcmVzIE9iaXNwbywgMzcuIFBsLiA0LgorCQkJCU1hZHJpZCAgMjgwNDMKKwkJCQlTUEFJTgorCiswMC0xRC0xQiAgIChoZXgpCQlTYW5nZWFuIEVsZWN0cm9uaWNzIEluYy4KKzAwMUQxQiAgICAgKGJhc2UgMTYpCQlTYW5nZWFuIEVsZWN0cm9uaWNzIEluYy4KKwkJCQlOby4gMTgsIExhbmUgNywgTGktRGUgc3RyZWV0CisJCQkJQ2h1bmcgSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC0xQyAgIChoZXgpCQlHZW5uZXQgcy5hLgorMDAxRDFDICAgICAoYmFzZSAxNikJCUdlbm5ldCBzLmEuCisJCQkJMiBNZXNvZ2Vpb24gYXZlLgorCQkJCVBpcmdvcyBBdGhpbm9uCisJCQkJQXRoZW5zIEF0dGlraSAxMTUyNworCQkJCUdSRUVDRQorCiswMC0xRC0xRCAgIChoZXgpCQlJbnRlci1NIENvcnBvcmF0aW9uCiswMDFEMUQgICAgIChiYXNlIDE2KQkJSW50ZXItTSBDb3Jwb3JhdGlvbgorCQkJCTY1My01IEJhbmdoYWstRG9uZywgRG9ib25nLUt1CisJCQkJU2VvdWwgIDEzMi04NDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUQtMUUgICAoaGV4KQkJS1lVU0hVIFRFTiBDTy4sTFRECiswMDFEMUUgICAgIChiYXNlIDE2KQkJS1lVU0hVIFRFTiBDTy4sTFRECisJCQkJMjM2MCBZVU5PS0lNT1RPTUFDSEkKKwkJCQlTQVNFQk8tQ2l0eSBOQUdBU0FLSSBQcmVmZWN0dXJlIDg1Ny0wMTE1CisJCQkJSkFQQU4KKworMDAtMUQtMUYgICAoaGV4KQkJU2lhdWxpdSBUYXVybyBUZWxldml6b3JpYWksIEpTQworMDAxRDFGICAgICAoYmFzZSAxNikJCVNpYXVsaXUgVGF1cm8gVGVsZXZpem9yaWFpLCBKU0MKKwkJCQlQcmFtb25lcywxNQorCQkJCVNpYXVsaWFpICBMVC01NzMxOAorCQkJCUxJVEhVQU5JQQorCiswMC0xRC0yMCAgIChoZXgpCQlDT01UUkVORCBDTy4KKzAwMUQyMCAgICAgKGJhc2UgMTYpCQlDT01UUkVORCBDTy4KKwkJCQkzRi0xIDEwIExBTkUgNjA5IENIVU5HIEhTSU4gUk9BRCwgU0VDIDUsIFNBTiBDSFVORyBDSVRZLCBUQUlQRUkgVEFJV0FOIDI0MQorCQkJCVRBSVBFSSAgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC0yMSAgIChoZXgpCQlBbGNhZCBTTAorMDAxRDIxICAgICAoYmFzZSAxNikJCUFsY2FkIFNMCisJCQkJUG9sLiBJbmQuIEFycmVjaGUtVWdhbGRlLCAxCisJCQkJSXJ1biBHdWlwdXpjb2EgRS0yMDMwNQorCQkJCVNQQUlOCisKKzAwLTFELTIyICAgKGhleCkJCUZvc3MgQW5hbHl0aWNhbCBBL1MKKzAwMUQyMiAgICAgKGJhc2UgMTYpCQlGb3NzIEFuYWx5dGljYWwgQS9TCisJCQkJU2xhbmdlcnVwZ2FkZSA2OQorCQkJCUhpbGxlcj9kIFNlZWxhbmQgMzQwMAorCQkJCURFTk1BUksKKworMDAtMUQtMjMgICAoaGV4KQkJU0VOU1VTIAorMDAxRDIzICAgICAoYmFzZSAxNikJCVNFTlNVUyAKKwkJCQk0NCBDQVNUSUxJQU4gRFJJVkUKKwkJCQlHT0xFVEEgQ0FMSUZPUk5JQSA5MzExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtMjQgICAoaGV4KQkJQWNsYXJhIFBvd2VyLUxpbmUgU3lzdGVtcyBJbmMuCiswMDFEMjQgICAgIChiYXNlIDE2KQkJQWNsYXJhIFBvd2VyLUxpbmUgU3lzdGVtcyBJbmMuCisJCQkJOTQ1IEhvcm5ldCBEcml2ZQorCQkJCUhhemVsd29vZCBNTyA2MzA0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtMjUgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswMDFEMjUgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELTI2ICAgKGhleCkJCVJvY2tyaWRnZXNvdW5kIFRlY2hub2xvZ3kgQ28uCiswMDFEMjYgICAgIChiYXNlIDE2KQkJUm9ja3JpZGdlc291bmQgVGVjaG5vbG9neSBDby4KKwkJCQlGdW1pbiBJbmR1c3RyaWFsIFBhcmssIEhvdWppZSBUb3duCisJCQkJRG9uZyBHdWFuIEd1YW5nIERvbmcgNTIzOTU2CisJCQkJQ0hJTkEKKworMDAtMUQtMjcgICAoaGV4KQkJTkFDLUlOVEVSQ09NCiswMDFEMjcgICAgIChiYXNlIDE2KQkJTkFDLUlOVEVSQ09NCisJCQkJQy4gUVVJTlRFTEEsIDI3IFBPUlRBTCA0IExPQ0FMCisJCQkJVklHTyBQT05URVZFRFJBIDM2MjA5CisJCQkJU1BBSU4KKworMDAtMUQtMjggICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKzAwMUQyOCAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNFIDIyMSA4OAorCQkJCVNXRURFTgorCiswMC0xRC0yOSAgIChoZXgpCQlEb3JvIEFCCiswMDFEMjkgICAgIChiYXNlIDE2KQkJRG9ybyBBQgorCQkJCU1hZ2lzdHJhdHN2YWdlbiAxMAorCQkJCUx1bmQgIDIyNiA0MworCQkJCVNXRURFTgorCiswMC0xRC0yQSAgIChoZXgpCQlUaWRld2F5IEVsZWN0cm9uaWMgTFRECiswMDFEMkEgICAgIChiYXNlIDE2KQkJVGlkZXdheSBFbGVjdHJvbmljIExURAorCQkJCVpoaUppIEluZHVzdHJpYWwgIEFyZWEgLEppblllIFJvYWQKKwkJCQlCNCBEb25nLiBrdWl5b25nIFRvd24KKwkJCQlzaGVuZ3poZW4gbG9uZ2dhbmcgZ3Vhbmdkb25nIDUxODExOQorCQkJCUNISU5BCisKKzAwLTFELTJCICAgKGhleCkJCVd1aGFuIFBvbnQgVGVjaG5vbG9neSBDTy4gLCBMVEQKKzAwMUQyQiAgICAgKGJhc2UgMTYpCQlXdWhhbiBQb250IFRlY2hub2xvZ3kgQ08uICwgTFRECisJCQkJQnVpbGRpbmcgRSwgR3VhbmRvbmcgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSBJbmR1c3RyeSAgUGFyaywKKwkJCQlFYXN0IExha2UgSGlnaCBUZWNobm9sb2d5IERldmVsb3BtZW50IFpvbmUsCisJCQkJV3VoYW4gSHViZWkgNDMwMDc0CisJCQkJQ0hJTkEKKworMDAtMUQtMkMgICAoaGV4KQkJV2F2ZXRyZW5kIFRlY2hub2xvZ2llcyAoUHR5KSBMaW1pdGVkCiswMDFEMkMgICAgIChiYXNlIDE2KQkJV2F2ZXRyZW5kIFRlY2hub2xvZ2llcyAoUHR5KSBMaW1pdGVkCisJCQkJV2F2ZXRyZW5kIEhvdXNlLCBCdWlsZGluZyA4MTYvMworCQkJCUhhbW1ldHMgQ3Jvc3NpbmcgT2ZmaWNlIFBhcmssU2VsYm91cm5lIHJvYWQsIGZvdXJ3YXlzCisJCQkJR2F1dGVuZyAgMjAyMQorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xRC0yRCAgIChoZXgpCQlQeWxvbmUsIEluYy4KKzAwMUQyRCAgICAgKGJhc2UgMTYpCQlQeWxvbmUsIEluYy4KKwkJCQk0RiBOYWthbm8gQmxkZy4gNC0zMC04IEtpdGEtU2hpbmp1a3UKKwkJCQlTaGluanVrdS1rdSwgVG9reW8gMTY5LTAwNzQKKwkJCQlKQVBBTgorCiswMC0xRC0yRSAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzAwMUQyRSAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0yRiAgIChoZXgpCQlRdWFudHVtVmlzaW9uIENvcnBvcmF0aW9uCiswMDFEMkYgICAgIChiYXNlIDE2KQkJUXVhbnR1bVZpc2lvbiBDb3Jwb3JhdGlvbgorCQkJCTMzNSBQbGFudGF0aW9uIFdheQorCQkJCVJvc3dlbGwgR2EgMzAwNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTMwICAgKGhleCkJCVlYIFdpcmVsZXNzIFMuQS4KKzAwMUQzMCAgICAgKGJhc2UgMTYpCQlZWCBXaXJlbGVzcyBTLkEuCisJCQkJQXYuIFZpY3VuYSBNYWNrZW5uYSAjNDg2MAorCQkJCUVkaWZpY2lvIDUxMiwgcGlzbyAzLiBNYWN1bAorCQkJCVNhbnRpYWdvICA4NTgwNzEwCisJCQkJQ0hJTEUKKworMDAtMUQtMzEgICAoaGV4KQkJSElHSFBSTyBJTlRFUk5BVElPTkFMIFImRCBDTywuTFRELgorMDAxRDMxICAgICAoYmFzZSAxNikJCUhJR0hQUk8gSU5URVJOQVRJT05BTCBSJkQgQ08sLkxURC4KKwkJCQkzRixOby4yOTUsUnVpR3VhbmcgUmQsTmVpIEh1LAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC0zMiAgIChoZXgpCQlMb25na2F5IENvbW11bmljYXRpb24gJiBUZWNobm9sb2d5IChTaGFuZ2hhaSkgQ28uIEx0ZAorMDAxRDMyICAgICAoYmFzZSAxNikJCUxvbmdrYXkgQ29tbXVuaWNhdGlvbiAmIFRlY2hub2xvZ3kgKFNoYW5naGFpKSBDby4gTHRkCisJCQkJTm8uNSBCdWlsZGluZywgVW5pdCAyLCBMYW5lIDI5OSBCaXNoZW5nIFJkLAorCQkJCVNoYW5naGFpICAyMDEyMDQKKwkJCQlDSElOQQorCiswMC0xRC0zMyAgIChoZXgpCQlNYXZlcmljayBTeXN0ZW1zIEluYy4KKzAwMUQzMyAgICAgKGJhc2UgMTYpCQlNYXZlcmljayBTeXN0ZW1zIEluYy4KKwkJCQk5MDgsIERhZXJ1bmdwb3N0dG93ZXIgMi1jaGEsIDE4Mi0xMworCQkJCUd1cm8tZG9uZywgR3Vyby1ndQorCQkJCVNlb3VsICAxNTItNzkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELTM0ICAgKGhleCkJCVNZUklTIFRlY2hub2xvZ3kgQ29ycAorMDAxRDM0ICAgICAoYmFzZSAxNikJCVNZUklTIFRlY2hub2xvZ3kgQ29ycAorCQkJCTIxIEYtMiwgIE5PLiAxMiwgIFNFQy4gMSwgIFRhaWp1bmdnYW5nIFJkLgorCQkJCVRhaWNodW5nICA0MDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTM1ICAgKGhleCkJCVZpY29uaWNzIEVsZWN0cm9uaWNzIEluYy4KKzAwMUQzNSAgICAgKGJhc2UgMTYpCQlWaWNvbmljcyBFbGVjdHJvbmljcyBJbmMuCisJCQkJOTI0NSBMYW5nZWxpZXIKKwkJCQlTYWludCBMZW9uYXJkIFF1ZWJlYyBIMVAzSzkKKwkJCQlDQU5BREEKKworMDAtMUQtMzYgICAoaGV4KQkJRUxFQ1RST05JQ1MgQ09SUE9SQVRJT04gT0YgSU5ESUEgTElNSVRFRAorMDAxRDM2ICAgICAoYmFzZSAxNikJCUVMRUNUUk9OSUNTIENPUlBPUkFUSU9OIE9GIElORElBIExJTUlURUQKKwkJCQlDT05UUk9MIEFORCBBVVRPTUFUSU9OIERJVklTSU9OLTMKKwkJCQlFQ0lMIFBPU1QKKwkJCQlIWURFUkFCQUQgQU5ESFJBIFBSQURFU0ggNTAwIDA2MgorCQkJCUlORElBCisKKzAwLTFELTM3ICAgKGhleCkJCVRoYWxlcy1QYW5kYSBUcmFuc3BvcnRhdGlvbiBTeXN0ZW0KKzAwMUQzNyAgICAgKGJhc2UgMTYpCQlUaGFsZXMtUGFuZGEgVHJhbnNwb3J0YXRpb24gU3lzdGVtCisJCQkJNnRoIGZsb29yLCBIVUlKSUUgUGxhemEsIDI2OCBaaG9uZ3NoYW4gUmQuCisJCQkJbmFuamluZyBqaWFuZ3N1IDIxMDAwOAorCQkJCUNISU5BCisKKzAwLTFELTM4ICAgKGhleCkJCVNlYWdhdGUgVGVjaG5vbG9neQorMDAxRDM4ICAgICAoYmFzZSAxNikJCVNlYWdhdGUgVGVjaG5vbG9neQorCQkJCTEyODAgRGlzYyBEcml2ZQorCQkJCVNoYWtvcGVlIE1OIDU1Mzc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0zOSAgIChoZXgpCQlNT09IQURJR0lUQUwgQ08uLCBMVEQKKzAwMUQzOSAgICAgKGJhc2UgMTYpCQlNT09IQURJR0lUQUwgQ08uLCBMVEQKKwkJCQlTZW91bCBIaWdodGVjaCBWZW50dXJlIENlbnRlciBDLTMwNyA2NDctMjYKKwkJCQlEZXVuZ2Nob24tRG9uZyBHYW5nc2VvLUd1CisJCQkJU0VPVUwgIDE1Ny0wMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUQtM0EgICAoaGV4KQkJbWggYWNvdXN0aWNzIExMQworMDAxRDNBICAgICAoYmFzZSAxNikJCW1oIGFjb3VzdGljcyBMTEMKKwkJCQkyNUEgU3VtbWl0IEF2ZQorCQkJCVN1bW1pdCBOSiAwNzkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtM0IgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUQzQiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUQtM0MgICAoaGV4KQkJTXVzY2xlIENvcnBvcmF0aW9uCiswMDFEM0MgICAgIChiYXNlIDE2KQkJTXVzY2xlIENvcnBvcmF0aW9uCisJCQkJMi01LTM1LCBLaWthd2EtaGlnYXNoaQorCQkJCU9zYWthICA1MzItMDAxMgorCQkJCUpBUEFOCisKKzAwLTFELTNEICAgKGhleCkJCUF2aWR5bmUgQ29ycG9yYXRpb24KKzAwMUQzRCAgICAgKGJhc2UgMTYpCQlBdmlkeW5lIENvcnBvcmF0aW9uCisJCQkJMjAyIFdlc3QgRHIKKwkJCQlNZWxib3VybmUgRkwgMzI5MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTNFICAgKGhleCkJCVNBS0EgVEVDSE5PIFNDSUVOQ0UgQ08uLExURAorMDAxRDNFICAgICAoYmFzZSAxNikJCVNBS0EgVEVDSE5PIFNDSUVOQ0UgQ08uLExURAorCQkJCU5pc2hpIDEwNS0xCisJCQkJS2l0YXp1a2EtbWFjaGkKKwkJCQlLYW5hemF3YSBJc2hpa2F3YSA5MjAtMDM2NworCQkJCUpBUEFOCisKKzAwLTFELTNGICAgKGhleCkJCU1pdHJvbiBQdHkgTHRkCiswMDFEM0YgICAgIChiYXNlIDE2KQkJTWl0cm9uIFB0eSBMdGQKKwkJCQlVbml0IDExCisJCQkJMTItMTggQ2xhcmVuZG9uIFN0cmVldAorCQkJCUFydGFybW9uIE5TVyAyMDY1CisJCQkJQVVTVFJBTElBCisKKzAwLTFELTQwICAgKGhleCkJCUxpdmluZyBJbmRlcGVuZGVudGx5IEdyb3VwLCBJbmMuCiswMDFENDAgICAgIChiYXNlIDE2KQkJTGl2aW5nIEluZGVwZW5kZW50bHkgR3JvdXAsIEluYy4KKwkJCQk3NjcgVGhpcmQgQXZlLCAxNHRoIEZsb29yCisJCQkJTmV3IFlvcmsgTlkgMTAwMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTQxICAgKGhleCkJCUhhcmR5IEluc3RydW1lbnRzCiswMDFENDEgICAgIChiYXNlIDE2KQkJSGFyZHkgSW5zdHJ1bWVudHMKKwkJCQkzODYwIENhbGxlIEZvcnR1bmFkYQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNDIgICAoaGV4KQkJTm9ydGVsCiswMDFENDIgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTFELTQzICAgKGhleCkJCVNoZW56aGVuIEctbGluayBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFENDMgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gRy1saW5rIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk0RiwgRSBCdWlsZGluZyxIdWFjaHVhbmcgRGEgVGVjaG5vbG9neSBab25lICxIYW5nY2hlbmcgSGlnaHdheSxHdXNodSxYaXhpYW5nICwKKwkJCQlzaGVuemhlbiBHdWFuZ0RvbmcgNTE4MTI2CisJCQkJQ0hJTkEKKworMDAtMUQtNDQgICAoaGV4KQkJS3JvaG5lCiswMDFENDQgICAgIChiYXNlIDE2KQkJS3JvaG5lCisJCQkJS2Vya2VwbGFhdCAxMgorCQkJCURvcmRyZWNodCBaSCAzMzEzIExDCisJCQkJTkVUSEVSTEFORFMKKworMDAtMUQtNDUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRDQ1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTQ2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUQ0NiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC00NyAgIChoZXgpCQlDb3ZvdGUgR21iSCAmIENvIEtHCiswMDFENDcgICAgIChiYXNlIDE2KQkJQ292b3RlIEdtYkggJiBDbyBLRworCQkJCVJpdHRlcmh1ZmVuIDMwCisJCQkJQmVybGluICAxNDE2NQorCQkJCUdFUk1BTlkKKworMDAtMUQtNDggICAoaGV4KQkJU2Vuc29yLVRlY2huaWsgV2llZGVtYW5uIEdtYkgKKzAwMUQ0OCAgICAgKGJhc2UgMTYpCQlTZW5zb3ItVGVjaG5payBXaWVkZW1hbm4gR21iSAorCQkJCUFtIEJhcmVud2FsZCA2CisJCQkJS2F1ZmJldXJlbiBCYXllcm4gODc2MDAKKwkJCQlHRVJNQU5ZCisKKzAwLTFELTQ5ICAgKGhleCkJCUlubm92YXRpb24gV2lyZWxlc3MgSW5jLgorMDAxRDQ5ICAgICAoYmFzZSAxNikJCUlubm92YXRpb24gV2lyZWxlc3MgSW5jLgorCQkJCTRGLTEsIE5PLjgxLCBTSFVFSUxJIFJELgorCQkJCUhTSU5DSFUgIDMwMDU5CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC00QSAgIChoZXgpCQlDYXJlc3RyZWFtIEhlYWx0aCwgSW5jLgorMDAxRDRBICAgICAoYmFzZSAxNikJCUNhcmVzdHJlYW0gSGVhbHRoLCBJbmMuCisJCQkJMTUwIFZlcm9uYSBTdHJlZXQKKwkJCQlSb2NoZXN0c2VyIE5ZIDE0NjA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC00QiAgIChoZXgpCQlHcmlkIENvbm5lY3QgSW5jLgorMDAxRDRCICAgICAoYmFzZSAxNikJCUdyaWQgQ29ubmVjdCBJbmMuCisJCQkJMTYzMCBXLiBEaWVobCBSZAorCQkJCU5hcGVydmlsbGUgSUwgNjA1NjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTRDICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50CiswMDFENEMgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQKKwkJCQk2MDEgRGF0YSBEcml2ZQorCQkJCU0vUyAzMjAKKwkJCQlQbGFubyBUWCA3NTA3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNEQgICAoaGV4KQkJQWRhcHRpdmUgUmVjb2duaXRpb24gSHVuZ2FyeSwgSW5jCiswMDFENEQgICAgIChiYXNlIDE2KQkJQWRhcHRpdmUgUmVjb2duaXRpb24gSHVuZ2FyeSwgSW5jCisJCQkJS2lyYWx5aGFnbyB0ZXIgOC05CisJCQkJQnVkYXBlc3QgRXVyb3BlIDExMjYKKwkJCQlIVU5HQVJZCisKKzAwLTFELTRFICAgKGhleCkJCVRDTSBNb2JpbGUgTExDCiswMDFENEUgICAgIChiYXNlIDE2KQkJVENNIE1vYmlsZSBMTEMKKwkJCQk5MjE4IE1ldGNhbGYsCisJCQkJU3VpdGUgIzI5MworCQkJCU92ZXJsYW5kIFBhcmsgS2Fuc2FzIDY2MjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC00RiAgIChoZXgpCQlBcHBsZSBDb21wdXRlciBJbmMuCiswMDFENEYgICAgIChiYXNlIDE2KQkJQXBwbGUgQ29tcHV0ZXIgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDYWxpZm9ybmlhIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC01MCAgIChoZXgpCQlTUElORVRJWCBTQQorMDAxRDUwICAgICAoYmFzZSAxNikJCVNQSU5FVElYIFNBCisJCQkJUGFyYyBTY2llbnRpZmlxdWUgZGUgbCdFUEZMLCBCYXRpbWVudCBDCisJCQkJTGF1c2FubmUgVkQgMTAxNQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFELTUxICAgKGhleCkJCUJhYmNvY2sgJiBXaWxjb3ggUG93ZXIgR2VuZXJhdGlvbiBHcm91cCwgSW5jCiswMDFENTEgICAgIChiYXNlIDE2KQkJQmFiY29jayAmIFdpbGNveCBQb3dlciBHZW5lcmF0aW9uIEdyb3VwLCBJbmMKKwkJCQkxMTg2NCBDYW5vbiBCbHZkLCBTdWl0ZSAxMDUKKwkJCQlOZXdwb3J0IE5ld3MgVkEgMjM2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTUyICAgKGhleCkJCURlZnpvbmUgQi5WLgorMDAxRDUyICAgICAoYmFzZSAxNikJCURlZnpvbmUgQi5WLgorCQkJCVRyYW5zcG9ydGNlbnRydW0gMTAKKwkJCQlFbnNjaGVkZSBPdmVyaWpzc2VsIDc1NDcgUlcKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRC01MyAgIChoZXgpCQlTJk8gRWxlY3Ryb25pY3MgKE1hbGF5c2lhKSBTZG4uIEJoZC4KKzAwMUQ1MyAgICAgKGJhc2UgMTYpCQlTJk8gRWxlY3Ryb25pY3MgKE1hbGF5c2lhKSBTZG4uIEJoZC4KKwkJCQlMb3QgMjAyLCBCYWthciBBcmFuZworCQkJCUluZHVzdHJpYWwgRXN0YXRlCisJCQkJMDgwMDAgU3VuZ2FpIFBldGFuaSBLZWRhaCAKKwkJCQlNQUxBWVNJQQorCiswMC0xRC01NCAgIChoZXgpCQlTdW5uaWMgVGVjaG5vbG9neSAmIE1lcmNoYW5kaXNlIElOQy4KKzAwMUQ1NCAgICAgKGJhc2UgMTYpCQlTdW5uaWMgVGVjaG5vbG9neSAmIE1lcmNoYW5kaXNlIElOQy4KKwkJCQk2RiwgTk8uNzQsWkhPVS1aIFNULiwKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtNTUgICAoaGV4KQkJWkFOVEFaLCBJbmMKKzAwMUQ1NSAgICAgKGJhc2UgMTYpCQlaQU5UQVosIEluYworCQkJCTU3NTggVy4gTGFzIFBvc2l0YXMgQXZlbnVlCisJCQkJUGxlYXNhbnRvbiBDQSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNTYgICAoaGV4KQkJS3JhbWVyIEVsZWN0cm9uaWNzIEx0ZC4KKzAwMUQ1NiAgICAgKGJhc2UgMTYpCQlLcmFtZXIgRWxlY3Ryb25pY3MgTHRkLgorCQkJCTMgQW0gVmVPbGFtbyBTdHJlZXQKKwkJCQlKZXJ1c2FsZW0gIDk1NDYzCisJCQkJSVNSQUVMCisKKzAwLTFELTU3ICAgKGhleCkJCUNBRVRFQyBNZXNzdGVjaG5paworMDAxRDU3ICAgICAoYmFzZSAxNikJCUNBRVRFQyBNZXNzdGVjaG5paworCQkJCVNjaGxvc3NzdHJhc3NlIDk1YQorCQkJCU9sY2hpbmcgQmF5ZXJuIDgyMTQwCisJCQkJR0VSTUFOWQorCiswMC0xRC01OCAgIChoZXgpCQlDUSBJbmMKKzAwMUQ1OCAgICAgKGJhc2UgMTYpCQlDUSBJbmMKKwkJCQk1RiwgTm8uIDQzLCBMYW5lIDc2LCBSdWkgR3VhbmcgUm9hZAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC01OSAgIChoZXgpCQlNaXRyYSBFbmVyZ3kgJiBJbmZyYXN0cnVjdHVyZQorMDAxRDU5ICAgICAoYmFzZSAxNikJCU1pdHJhIEVuZXJneSAmIEluZnJhc3RydWN0dXJlCisJCQkJQm91bGV2YXJkIGRlIGwnRXVyb3BlIDEzMQorCQkJCTEzMDEgV2F2cmUgCisJCQkJQkVMR0lVTQorCiswMC0xRC01QSAgIChoZXgpCQkyV2lyZSBJbmMuCiswMDFENUEgICAgIChiYXNlIDE2KQkJMldpcmUgSW5jLgorCQkJCTE3MDQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuICBKb3NlIENhbGlmb3JuaWEgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTVCICAgKGhleCkJCVRlY3ZhbiBJbmZvcm1hdGljYSBMdGRhCiswMDFENUIgICAgIChiYXNlIDE2KQkJVGVjdmFuIEluZm9ybWF0aWNhIEx0ZGEKKwkJCQlSdWEgR3VhaWN1cnVzLCAxNDUKKwkJCQlWaWxhIENvbmNlaWNhbworCQkJCURpYWRlbWEgU2FvIFBhdWxvIDA5OTExLTYzMAorCQkJCUJSQVpJTAorCiswMC0xRC01QyAgIChoZXgpCQlUb20gQ29tbXVuaWNhdGlvbiBJbmR1c3RyaWFsIENvLixMdGQuCiswMDFENUMgICAgIChiYXNlIDE2KQkJVG9tIENvbW11bmljYXRpb24gSW5kdXN0cmlhbCBDby4sTHRkLgorCQkJCTExNzMgTmlwcGEtY2hvaCBLb2hva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjMtMDA1NworCQkJCUpBUEFOCisKKzAwLTFELTVEICAgKGhleCkJCUNvbnRyb2wgRHluYW1pY3MgUHR5LiBMdGQuCiswMDFENUQgICAgIChiYXNlIDE2KQkJQ29udHJvbCBEeW5hbWljcyBQdHkuIEx0ZC4KKwkJCQlQTyBCb3ggNjM2CisJCQkJTU9STEVZIFdlc3Rlcm4gQXVzdHJhbGlhIDY5NDMKKwkJCQlBVVNUUkFMSUEKKworMDAtMUQtNUUgICAoaGV4KQkJQ09NSU5HIE1FRElBIENPUlAuCiswMDFENUUgICAgIChiYXNlIDE2KQkJQ09NSU5HIE1FRElBIENPUlAuCisJCQkJQk9OQSBCbGQuIDR0aCBGbC4sIDU0OC0xOAorCQkJCURvZ29rLTFEb25nLCBLYW5nbmFtLUt1LAorCQkJCVNlb3VsICAxMzUtMTU4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELTVGICAgKGhleCkJCU92ZXJTcGVlZCBTQVJMCiswMDFENUYgICAgIChiYXNlIDE2KQkJT3ZlclNwZWVkIFNBUkwKKwkJCQkxNSwgYWxsZWUgZHUgQm9pcyBDYWlsbGV5CisJCQkJTGUgVGh1aXQtU2lnbm9sIE5vcm1hbmRpZSAyNzM3MAorCQkJCUZSQU5DRQorCiswMC0xRC02MCAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMUQ2MCAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTYxICAgKGhleCkJCUJJSiBDb3Jwb3JhdGlvbgorMDAxRDYxICAgICAoYmFzZSAxNikJCUJJSiBDb3Jwb3JhdGlvbgorCQkJCTdGIFRha2FtaXphd2EgQnVpbGRpbmcsMi03LTEwLAorCQkJCUtpdGFzYWl3YWksTmlzaGkKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjAtMDAwNAorCQkJCUpBUEFOCisKKzAwLTFELTYyICAgKGhleCkJCUluUGhhc2UgVGVjaG5vbG9naWVzCiswMDFENjIgICAgIChiYXNlIDE2KQkJSW5QaGFzZSBUZWNobm9sb2dpZXMKKwkJCQkyMDAwIFBpa2UgUm9hZAorCQkJCUxvbmdtb250IENvbG9yYWRvIDgwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC02MyAgIChoZXgpCQlNaWVsZSAmIENpZS4gS0cKKzAwMUQ2MyAgICAgKGJhc2UgMTYpCQlNaWVsZSAmIENpZS4gS0cKKwkJCQlDYXJsLU1pZWxlLVN0ci4gMjkKKwkJCQlHdXRlcnNsb2ggIDMzMzMyCisJCQkJR0VSTUFOWQorCiswMC0xRC02NCAgIChoZXgpCQlBZGFtIENvbW11bmljYXRpb25zIFN5c3RlbXMgSW50IEx0ZAorMDAxRDY0ICAgICAoYmFzZSAxNikJCUFkYW0gQ29tbXVuaWNhdGlvbnMgU3lzdGVtcyBJbnQgTHRkCisJCQkJVGhlIE1pc3Npb24KKwkJCQlXZWxsaW5ndG9uIFN0cmVldAorCQkJCVN0b2NrcG9ydCBDaGVzaGlyZSBTSzEgM0FICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUQtNjUgICAoaGV4KQkJTWljcm93YXZlIFJhZGlvIENvbW11bmljYXRpb25zCiswMDFENjUgICAgIChiYXNlIDE2KQkJTWljcm93YXZlIFJhZGlvIENvbW11bmljYXRpb25zCisJCQkJMTAxIEJpbGxlcmljYSBBdmVtdWUsIEJsZGcgNgorCQkJCU4uIEJpbGxlcmljYSBNQSAwMTg2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNjYgICAoaGV4KQkJSHl1bmRhaSBUZWxlY29tCiswMDFENjYgICAgIChiYXNlIDE2KQkJSHl1bmRhaSBUZWxlY29tCisJCQkJSHl1bmRhaSBUZWxlY29tIEJsZGcuLCA0MjczLTEyLCBTaGluZ2lsLURvbmcsIFlvdW5nZHVuZ3BvLUd1LAorCQkJCVNlb3VsICAxNTAtODU5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELTY3ICAgKGhleCkJCUFNRUMKKzAwMUQ2NyAgICAgKGJhc2UgMTYpCQlBTUVDCisJCQkJOUYsTm8uMzYwLFJ1ZWwgR3VhbmcgUmQsTmVpaHUKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtNjggICAoaGV4KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKzAwMUQ2OCAgICAgKGJhc2UgMTYpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorCQkJCVByaW5zIEJvdWRld2lqbmxhYW4gNDcgQgorCQkJCUVkZWdlbSBBbnR3ZXJwIEItMjY1MAorCQkJCUJFTEdJVU0KKworMDAtMUQtNjkgICAoaGV4KQkJS25vcnItQnJlbXNlIEFHCiswMDFENjkgICAgIChiYXNlIDE2KQkJS25vcnItQnJlbXNlIEFHCisJCQkJTW9vc2FjaGVyIFN0ci4gODAKKwkJCQlNdWVuY2hlbiBCWSA4MDgwOQorCQkJCUdFUk1BTlkKKworMDAtMUQtNkEgICAoaGV4KQkJQWxwaGEgTmV0d29ya3MgSW5jLgorMDAxRDZBICAgICAoYmFzZSAxNikJCUFscGhhIE5ldHdvcmtzIEluYy4KKwkJCQlOby44IExpLXNoaW5nIFNldmVudGggUm9hZCxTY2llbmNlLWJhc2VkCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC02QiAgIChoZXgpCQlNb3Rvcm9sYSAoZm9ybWVybHkgTmV0b3BpYSwgSW5jCiswMDFENkIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgKGZvcm1lcmx5IE5ldG9waWEsIEluYworCQkJCTYwMDEgU2hlbGxtb3VuZCBTdAorCQkJCTR0aCBGbG9vcgorCQkJCUVtZXJ5dmlsbGUgQ0EgOTQ2MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTZDICAgKGhleCkJCUNsYXJpUGh5IENvbW11bmljYXRpb25zLCBJbmMuCiswMDFENkMgICAgIChiYXNlIDE2KQkJQ2xhcmlQaHkgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkxNiBUZWNobm9sb2d5IERyLiwgU3VpdGUgMTY1CisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC02RCAgIChoZXgpCQlDb25maWRhbnQgSW50ZXJuYXRpb25hbCBMTEMKKzAwMUQ2RCAgICAgKGJhc2UgMTYpCQlDb25maWRhbnQgSW50ZXJuYXRpb25hbCBMTEMKKwkJCQkyNTMwIE1lcmlkaWFuIFBrd3kKKwkJCQlEdXJoYW0gTm9ydGggQ2Fyb2xpbmEgMjc3MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTZFICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFENkUgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUQtNkYgICAoaGV4KQkJQ2hhaW56b25lIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMUQ2RiAgICAgKGJhc2UgMTYpCQlDaGFpbnpvbmUgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCUNoYWluem9uZSBUZWNoLiBJbmQgUGFyaywgTmFueGluIDFzdCBSZC4KKwkJCQlHdWljaGVuZyBOYW5oYWkKKwkJCQlGb3NoYW4gR3Vhbmdkb25nIDUyODIwMAorCQkJCUNISU5BCisKKzAwLTFELTcwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUQ3MCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC03MSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFENzEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNzIgICAoaGV4KQkJV2lzdHJvbiBDb3Jwb3JhdGlvbgorMDAxRDcyICAgICAoYmFzZSAxNikJCVdpc3Ryb24gQ29ycG9yYXRpb24KKwkJCQkyMUYsIDg4LCBTZWMuMSwgSHNpbiBUYWkgV3UgUmQuLCBIc2ljaGloLAorCQkJCVRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTczICAgKGhleCkJCUJ1ZmZhbG8gSW5jLgorMDAxRDczICAgICAoYmFzZSAxNikJCUJ1ZmZhbG8gSW5jLgorCQkJCTE1LFNoaWJhdGEgSG9uZG9yaSA0LWNob21lLAorCQkJCU1pbmFtaS1rdQorCQkJCU5hZ295YSBBaWNoaSBQcmVmLiA0NTctODUyMAorCQkJCUpBUEFOCisKKzAwLTFELTc0ICAgKGhleCkJCVRpYW5qaW4gQ2hpbmEtU2lsaWNvbiBNaWNyb2VsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxRDc0ICAgICAoYmFzZSAxNikJCVRpYW5qaW4gQ2hpbmEtU2lsaWNvbiBNaWNyb2VsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTMwMSwzRiBCdWlsZGluZyAyMTEsTm8uMjE0IEhvbmdxaSBSb2FkLCBOYW5rYWkgRGlzdHJpY3QsIFRpYW5qaW4gQ2hpbmEKKwkJCQlUaWFuamluICAzMDAxOTAKKwkJCQlDSElOQQorCiswMC0xRC03NSAgIChoZXgpCQlSYWRpb3NjYXBlIFBMQworMDAxRDc1ICAgICAoYmFzZSAxNikJCVJhZGlvc2NhcGUgUExDCisJCQkJMSBBbGJhbnkgVGVycmFjZQorCQkJCVJlZ2VudCdzIFBhcmsgTG9uZG9uIE5XMSA0RFMKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRC03NiAgIChoZXgpCQlFeWVoZWlnaHQgTHRkLgorMDAxRDc2ICAgICAoYmFzZSAxNikJCUV5ZWhlaWdodCBMdGQuCisJCQkJVW5pdCAzNCwgUGFyayBIb3VzZQorCQkJCTE1LTE5IEdyZWVuaGlsbCBDcmVzY2VudAorCQkJCVdhdGZvcmQgSGVydHMgV0QxOCA4UEgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRC03NyAgIChoZXgpCQlOU0dhdGUKKzAwMUQ3NyAgICAgKGJhc2UgMTYpCQlOU0dhdGUKKwkJCQlSbSAxMzA0LCAzOSBLaXJwaWNobmF5YSBTdHJlZXQKKwkJCQlNb3Njb3cgIDEwNTE4NworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRC03OCAgIChoZXgpCQlJbnZlbmdvIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAxRDc4ICAgICAoYmFzZSAxNikJCUludmVuZ28gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJMy9GLE5vLlQyLUIsSGlnaC1UZWNoIEluZHVzdHJpYWwgUGFyayBTb3V0aAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xRC03OSAgIChoZXgpCQlTSUdOQU1BWCBMTEMKKzAwMUQ3OSAgICAgKGJhc2UgMTYpCQlTSUdOQU1BWCBMTEMKKwkJCQkxMDkwIFZlcm1vbnQgQXZlbnVlCisJCQkJV2FzaGluZ3RvbiBXYXNoaW5ndG9uIEQuQy4gMjAwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTdBICAgKGhleCkJCVdpZGViYW5kIFNlbWljb25kdWN0b3IsIEluYy4KKzAwMUQ3QSAgICAgKGJhc2UgMTYpCQlXaWRlYmFuZCBTZW1pY29uZHVjdG9yLCBJbmMuCisJCQkJMTM1MCBQZWFyIEF2ZQorCQkJCVN1aXRlIEMKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC03QiAgIChoZXgpCQlJY2UgRW5lcmd5LCBJbmMuCiswMDFEN0IgICAgIChiYXNlIDE2KQkJSWNlIEVuZXJneSwgSW5jLgorCQkJCTkzNTEgRWFzdG1hbiBQYXJrIERyaXZlCisJCQkJU3VpdGUgQgorCQkJCVdpbmRzb3IgQ29sb3JhZG8gODA1NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTdDICAgKGhleCkJCUFCRSBFbGV0dHJvbmljYSBTLnAuQS4KKzAwMUQ3QyAgICAgKGJhc2UgMTYpCQlBQkUgRWxldHRyb25pY2EgUy5wLkEuCisJCQkJVmlhIExlb25hcmRvIGRhIFZpbmNpLCA5MgorCQkJCUNBUkFWQUdHSU8gQkcgMjQwNDMKKwkJCQlJVEFMWQorCiswMC0xRC03RCAgIChoZXgpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorMDAxRDdEICAgICAoYmFzZSAxNikJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCisJCQkJUGluLUplbiBDaXR5LCBUYW95dWFuLAorCQkJCVBpbi1KZW4gVGFveXVhbiAzMjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTdFICAgKGhleCkJCUNpc2NvLUxpbmtzeXMsIExMQworMDAxRDdFICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMsIExMQworCQkJCTEyMSBUaGVvcnkgRHJpdmUKKwkJCQlJcnZpbmUgQ2FsaWZvcm5pYSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtN0YgICAoaGV4KQkJVGVrcm9uIEludGVybmF0aW9uYWwgTHRkCiswMDFEN0YgICAgIChiYXNlIDE2KQkJVGVrcm9uIEludGVybmF0aW9uYWwgTHRkCisJCQkJNDA5IEN1YmEgU3RyZWV0LCBBbGljZXRvd24KKwkJCQlQTyBCb3ggMzEtMjg1CisJCQkJTG93ZXIgSHV0dCBXZWxsaW5ndG9uIDUwMTAKKwkJCQlORVcgWkVBTEFORAorCiswMC0xRC04MCAgIChoZXgpCQlCZWlqaW5nIEh1YWh1YW4gRWxldHJvbmljcyBDby4sTHRkCiswMDFEODAgICAgIChiYXNlIDE2KQkJQmVpamluZyBIdWFodWFuIEVsZXRyb25pY3MgQ28uLEx0ZAorCQkJCU5vLjI2LFNoYW5nZGkgNnRoIFN0LkhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMUQtODEgICAoaGV4KQkJR1VBTkdaSE9VIEdBVEVXQVkgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKzAwMUQ4MSAgICAgKGJhc2UgMTYpCQlHVUFOR1pIT1UgR0FURVdBWSBFTEVDVFJPTklDUyBDTy4sIExURAorCQkJCUIyMCMsNEYsTm8uOSBKaWFuZ29uZyBSb2FkLFRpYW5oZSBTb2Z0d2FyZSBQYXJrLFRpYW5oZSBEaXN0cmljdCwKKwkJCQlHVUFOR1pIT1UgR3Vhbmdkb25nIDUxMDY2NQorCQkJCUNISU5BCisKKzAwLTFELTgyICAgKGhleCkJCUdOIEEvUyAoR04gTmV0Y29tIEEvUykKKzAwMUQ4MiAgICAgKGJhc2UgMTYpCQlHTiBBL1MgKEdOIE5ldGNvbSBBL1MpCisJCQkJTGF1dHJ1cGJqZXJnIDcKKwkJCQlQLk8uQm94IDk5CisJCQkJQmFsbGVydXAgIERLIC0gMjc1MAorCQkJCURFTk1BUksKKworMDAtMUQtODMgICAoaGV4KQkJRW1pdGVjaCBDb3Jwb3JhdGlvbgorMDAxRDgzICAgICAoYmFzZSAxNikJCUVtaXRlY2ggQ29ycG9yYXRpb24KKwkJCQkyRixOby43LTEsSW5kdXN0cnkgRSxSZC45CisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgMzA4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC04NCAgIChoZXgpCQlHYXRld2F5LCBJbmMuCiswMDFEODQgICAgIChiYXNlIDE2KQkJR2F0ZXdheSwgSW5jLgorCQkJCTYxMCBHYXRld2F5IERyaXZlCisJCQkJUC5PLiBCb3ggMjAwMAorCQkJCU5vcnRoIFNpb3V4IENpdHkgU291dGggRGFrb3RhIDU3MDQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC04NSAgIChoZXgpCQlDYWxsIERpcmVjdCBDZWxsdWxhciBTb2x1dGlvbnMKKzAwMUQ4NSAgICAgKGJhc2UgMTYpCQlDYWxsIERpcmVjdCBDZWxsdWxhciBTb2x1dGlvbnMKKwkJCQlTdWl0ZSAxNDUsIE5hdGlvbmFsIElubm92YXRpb24gQ2VudHJlCisJCQkJQXVzdHJhbGlhbiBUZWNobm9sb2d5IFBhcmsKKwkJCQlFdmVsZWlnaCBOU1cgMTQzMAorCQkJCUFVU1RSQUxJQQorCiswMC0xRC04NiAgIChoZXgpCQlTaGlud2EgSW5kdXN0cmllcyhDaGluYSkgTHRkLgorMDAxRDg2ICAgICAoYmFzZSAxNikJCVNoaW53YSBJbmR1c3RyaWVzKENoaW5hKSBMdGQuCisJCQkJOCBQaW5nbmFuemhvbmcgUm9hZCwgUGluZ25hbiBJbmR1c3RyaWFsIFBhcmssIFpob25na2FpIE5vLjQgUm9hZCwKKwkJCQlIdWl6aG91IENpdHkgR3Vhbmdkb25nIFByb3ZpbmNlIDUxNjAwNgorCQkJCUNISU5BCisKKzAwLTFELTg3ICAgKGhleCkJCVZpZ1RlY2ggTGFicyBTZG4gQmhkCiswMDFEODcgICAgIChiYXNlIDE2KQkJVmlnVGVjaCBMYWJzIFNkbiBCaGQKKwkJCQk0NS0xMSBUaGUgQm91bGV2YXJkIE1pZCBWYWxsZXkgQ2l0eQorCQkJCUxpbmdrYXJhbiBTeWVkIFB1dHJhCisJCQkJS3VhbGEgTHVtcHVyIFNlbGFuZ29yIDU5MjAwCisJCQkJTUFMQVlTSUEKKworMDAtMUQtODggICAoaGV4KQkJQ2xlYXJ3aXJlCiswMDFEODggICAgIChiYXNlIDE2KQkJQ2xlYXJ3aXJlCisJCQkJNDQwMCBDYXJpbGxvbiBQb2ludAorCQkJCUtpcmtsYW5kIFdhc2hpbmd0b24gOTgwMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTg5ICAgKGhleCkJCVZhdWx0U3RvciBDb3Jwb3JhdGlvbgorMDAxRDg5ICAgICAoYmFzZSAxNikJCVZhdWx0U3RvciBDb3Jwb3JhdGlvbgorCQkJCTEwMTAgQnJpb3NvIERyaXZlCisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtOEEgICAoaGV4KQkJVGVjaFRyZXggSW5jCiswMDFEOEEgICAgIChiYXNlIDE2KQkJVGVjaFRyZXggSW5jCisJCQkJNjIyMSBIaWdod2F5IDcsIFVuaXQgMTIKKwkJCQlXb29kYnJpZGdlIE9udGFsaW8gTDRIIDBLOAorCQkJCUNBTkFEQQorCiswMC0xRC04QiAgIChoZXgpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMKKzAwMUQ4QiAgICAgKGJhc2UgMTYpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMKKwkJCQlWSUFMRSBTQVJDQSAyMjIKKwkJCQlNSUxBTk8gIDIwMTI2CisJCQkJSVRBTFkKKworMDAtMUQtOEMgICAoaGV4KQkJTGEgQ3Jvc3NlIFRlY2hub2xvZ3kgTFRECiswMDFEOEMgICAgIChiYXNlIDE2KQkJTGEgQ3Jvc3NlIFRlY2hub2xvZ3kgTFRECisJCQkJMjgwOSBMb3NleSBCbHZkLiBTby4KKwkJCQlMYSBDcm9zc2UgV0kgNTQ2MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELThEICAgKGhleCkJCVJheXRlayBHbWJICiswMDFEOEQgICAgIChiYXNlIDE2KQkJUmF5dGVrIEdtYkgKKwkJCQlCbGFua2VuYnVyZ2VyIFN0ci4gMTM1CisJCQkJQmVybGluICAxMzEyNworCQkJCUdFUk1BTlkKKworMDAtMUQtOEUgICAoaGV4KQkJQWxlcmVvbiwgSW5jLgorMDAxRDhFICAgICAoYmFzZSAxNikJCUFsZXJlb24sIEluYy4KKwkJCQk3NjAwIE4uIENhcGl0YWwgb2YgVGV4YXMgSHd5CisJCQkJQmxkZyBDLCAjMjAwCisJCQkJQXVzdGluIFRYIDc4NzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC04RiAgIChoZXgpCQlQdXJlV2F2ZSBOZXR3b3JrcworMDAxRDhGICAgICAoYmFzZSAxNikJCVB1cmVXYXZlIE5ldHdvcmtzCisJCQkJMjY2MC1DIE1hcmluZSBXYXkKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC05MCAgIChoZXgpCQlFTUNPIEZsb3cgU3lzdGVtcworMDAxRDkwICAgICAoYmFzZSAxNikJCUVNQ08gRmxvdyBTeXN0ZW1zCisJCQkJMjE1MCBNaWxsZXIgRHJpdmUKKwkJCQlMb25nbW9udCBDTyA4MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtOTEgICAoaGV4KQkJRGlnaXRpemUsIEluYworMDAxRDkxICAgICAoYmFzZSAxNikJCURpZ2l0aXplLCBJbmMKKwkJCQkxNTggRWRpc29uIFJvYWQKKwkJCQlMYWtlIEhvcGF0Y29uZyBOZXcgSmVyc2V5IDA3ODQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC05MiAgIChoZXgpCQlNSUNSTy1TVEFSIElOVCdMIENPLixMVEQuCiswMDFEOTIgICAgIChiYXNlIDE2KQkJTUlDUk8tU1RBUiBJTlQnTCBDTy4sTFRELgorCQkJCU5vLjY5LExpLURlIFN0LEp1bmctSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTkzICAgKGhleCkJCU1vZGFjb20KKzAwMUQ5MyAgICAgKGJhc2UgMTYpCQlNb2RhY29tCisJCQkJSmluc3VrIEJ1aWxkaW5nIDE1MzYtNworCQkJCVNlb2Noby1Eb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCAgMTM3LTA3MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRC05NCAgIChoZXgpCQlDbGltYXggVGVjaG5vbG9neSBDby4sIEx0ZAorMDAxRDk0ICAgICAoYmFzZSAxNikJCUNsaW1heCBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJTm8uIDI1OCwgSHNpbiBIdSAybmQgUm9hZAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpIENpdHkgVGFpcGVpIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtOTUgICAoaGV4KQkJRmxhc2gsIEluYy4KKzAwMUQ5NSAgICAgKGJhc2UgMTYpCQlGbGFzaCwgSW5jLgorCQkJCTM3MDMgTi4gMjAwdGggU3QuCisJCQkJRWxraG9ybiBORSA2ODAyMi0yOTIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC05NiAgIChoZXgpCQlXYXRjaEd1YXJkIFZpZGVvCiswMDFEOTYgICAgIChiYXNlIDE2KQkJV2F0Y2hHdWFyZCBWaWRlbworCQkJCTMwMDEgU3VtbWl0IEF2ZS4KKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtOTcgICAoaGV4KQkJQWxlcnR1cyBUZWNobm9sb2dpZXMgTExDCiswMDFEOTcgICAgIChiYXNlIDE2KQkJQWxlcnR1cyBUZWNobm9sb2dpZXMgTExDCisJCQkJMTE3ODUgQmVsdHN2aWxsZSBEcml2ZQorCQkJCVN1aXRlIDEzMjUKKwkJCQlCZWx0c3ZpbGxlIE1EIDIwNzA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC05OCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRDk4ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRC05OSAgIChoZXgpCQlDeWFuIE9wdGljLCBJbmMuCiswMDFEOTkgICAgIChiYXNlIDE2KQkJQ3lhbiBPcHRpYywgSW5jLgorCQkJCTEzOTAgTi4gTWNEb3dlbGwgQmx2ZAorCQkJCVN1aXRlIEctMzI3CisJCQkJUGV0YWx1bWEgQ0EgOTQ5NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTlBICAgKGhleCkJCUdPREVYIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQKKzAwMUQ5QSAgICAgKGJhc2UgMTYpCQlHT0RFWCBJTlRFUk5BVElPTkFMIENPLiwgTFRECisJCQkJNEYuIE5PLjE2OCwgTGlhbi1DaGVuZyBSb2FkIENodW5nLUhvIENpdHksCisJCQkJVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtOUIgICAoaGV4KQkJSG9rdXlvIEF1dG9tYXRpYyBDby4sIEx0ZC4KKzAwMUQ5QiAgICAgKGJhc2UgMTYpCQlIb2t1eW8gQXV0b21hdGljIENvLiwgTHRkLgorCQkJCU5paXRha2EgMS0xMC05CisJCQkJWW9kb2dhd2EtS3UKKwkJCQlPc2FrYSAgNTMyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0xRC05QyAgIChoZXgpCQlSb2Nrd2VsbCBBdXRvbWF0aW9uCiswMDFEOUMgICAgIChiYXNlIDE2KQkJUm9ja3dlbGwgQXV0b21hdGlvbgorCQkJCTEgQWxsZW4tQnJhZGxleSBEcml2ZQorCQkJCUNTLUMyMzkKKwkJCQlNYXlmaWVsZCBIZWlnaHRzIE9oaW8gNDQxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTlEICAgKGhleCkJCUFSVEpPWSBJTlRFUk5BVElPTkFMIExJTUlURUQKKzAwMUQ5RCAgICAgKGJhc2UgMTYpCQlBUlRKT1kgSU5URVJOQVRJT05BTCBMSU1JVEVECisJCQkJUm9vbSAxNjAxLE5vLjIzOSBaaG9uZ1hpbmcgUm9hZCxMdW9IdSBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDEKKwkJCQlDSElOQQorCiswMC0xRC05RSAgIChoZXgpCQlBWElPTiBURUNITk9MT0dJRVMKKzAwMUQ5RSAgICAgKGJhc2UgMTYpCQlBWElPTiBURUNITk9MT0dJRVMKKwkJCQkxNTEgUlVFIFBBUkMgSU5OT1ZBVElPTgorCQkJCUxBIFBPQ0FUSUVSRSBRVUVCRUMgRzBSMVowCisJCQkJQ0FOQURBCisKKzAwLTFELTlGICAgKGhleCkJCU1BVFQgICBSLlAuVHJhY3p5bnNjeSBTcC5KLgorMDAxRDlGICAgICAoYmFzZSAxNikJCU1BVFQgICBSLlAuVHJhY3p5bnNjeSBTcC5KLgorCQkJCVBvbG5vY25hIDQ0CisJCQkJS29zY2lhbiB3aWVsa29wb2xza2llIFBMLTY0MDAwCisJCQkJUE9MQU5ECisKKzAwLTFELUEwICAgKGhleCkJCUhlbmcgWXUgRWxlY3Ryb25pYyBNYW51ZmFjdHVyaW5nIENvbXBhbnkgTGltaXRlZAorMDAxREEwICAgICAoYmFzZSAxNikJCUhlbmcgWXUgRWxlY3Ryb25pYyBNYW51ZmFjdHVyaW5nIENvbXBhbnkgTGltaXRlZAorCQkJCVJvb20gMTAwNCwgSFNIIE1vbmdrb2sgUGxhemEsCisJCQkJNzk0LTgwMiBOYXRoYW4gUm9hZCwKKwkJCQlLb3dsb29uICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUQtQTEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxREExICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUEyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMURBMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1BMyAgIChoZXgpCQlTYWJpT3NvCiswMDFEQTMgICAgIChiYXNlIDE2KQkJU2FiaU9zbworCQkJCTE4OSBTIFN0YXRlIFN1aXRlICMyNTAKKwkJCQlDbGVhcmZpZWxkIFV0YWggODQwMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUE0ICAgKGhleCkJCUhhbmd6aG91IFN5c3RlbSBUZWNobm9sb2d5IENPLiwgTFRECiswMDFEQTQgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgU3lzdGVtIFRlY2hub2xvZ3kgQ08uLCBMVEQKKwkJCQlST09NIEExNTA1IEh1YVhpbmcgdGltZXMgcGxhemEsTk8gNDc4IFdlbnNhbiBSb2FkCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworMDAtMUQtQTUgICAoaGV4KQkJV0IgRWxlY3Ryb25pY3MKKzAwMURBNSAgICAgKGJhc2UgMTYpCQlXQiBFbGVjdHJvbmljcworCQkJCUxhbmdlbGFuZHN2ZWogMUEKKwkJCQlIZXJuaW5nIEhlcm5pbmcgNzQwMAorCQkJCURFTk1BUksKKworMDAtMUQtQTYgICAoaGV4KQkJTWVkaWEgTnVtZXJpY3MgTGltaXRlZAorMDAxREE2ICAgICAoYmFzZSAxNikJCU1lZGlhIE51bWVyaWNzIExpbWl0ZWQKKwkJCQlSb2RlbmJhY2hlciBDaGF1c3NlZSA2CisJCQkJSGFuYXUgSGVzc2VuIDYzNDU3CisJCQkJR0VSTUFOWQorCiswMC0xRC1BNyAgIChoZXgpCQlTZWFtbGVzcyBJbnRlcm5ldAorMDAxREE3ICAgICAoYmFzZSAxNikJCVNlYW1sZXNzIEludGVybmV0CisJCQkJMjA1MCBSdXNzZXR0IFdheSBTdWl0ZSAzMzgKKwkJCQlDYXJzb24gQ2l0eSBOZXZhZGEgODk3MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUE4ICAgKGhleCkJCVRha2FoYXRhIEVsZWN0cm9uaWNzIENvLixMdGQKKzAwMURBOCAgICAgKGJhc2UgMTYpCQlUYWthaGF0YSBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJMTE4OCxLdWJvdGEsS3Vib3RhLW1hY2hpCisJCQkJWW9uZXphd2Etc2hpIFlhbWFnYXRhLVByZWYuIDk5Mi0wMDAzCisJCQkJSkFQQU4KKworMDAtMUQtQTkgICAoaGV4KQkJQ2FzdGxlcyBUZWNobm9sb2d5LCBDby4sIExURAorMDAxREE5ICAgICAoYmFzZSAxNikJCUNhc3RsZXMgVGVjaG5vbG9neSwgQ28uLCBMVEQKKwkJCQkyRiwgTm8uMjA1LCBTZWMgMyBCZWlzaGluIFJkLiwKKwkJCQlIc2luLVRpZW4gQ2l0eSBUYWlwZWkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC1BQSAgIChoZXgpCQlEcmF5VGVrIENvcnAuCiswMDFEQUEgICAgIChiYXNlIDE2KQkJRHJheVRlayBDb3JwLgorCQkJCU5vLiAyNiwgRnUtU2hpbmcgUm9hZAorCQkJCUh1S291IENvdW50eSwgSHNpbi1DaHUgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbi1DaHUgIDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtQUIgICAoaGV4KQkJU3dpc3NRdWFsIExpY2Vuc2UgQUcKKzAwMURBQiAgICAgKGJhc2UgMTYpCQlTd2lzc1F1YWwgTGljZW5zZSBBRworCQkJCUJhYXJlcnN0cmFzc2UgNzgKKwkJCQladWcgUG9zdGZhY2ggMTE3CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUQtQUMgICAoaGV4KQkJR2lnYW1vbiBTeXN0ZW1zIExMQworMDAxREFDICAgICAoYmFzZSAxNikJCUdpZ2Ftb24gU3lzdGVtcyBMTEMKKwkJCQk1OTggR2licmFsdGFyIERyaXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUFEICAgKGhleCkJCVNpbm90ZWNoIEVuZ2luZWVyaW5nIENvbnN1bHRhbnRzLCBJbmMuICBHZW90ZWNobmljYWwgRW5naW5lZQorMDAxREFEICAgICAoYmFzZSAxNikJCVNpbm90ZWNoIEVuZ2luZWVyaW5nIENvbnN1bHRhbnRzLCBJbmMuICBHZW90ZWNobmljYWwgRW5naW5lZQorCQkJCUJhc2VtZW50IE5vLjcgTGFuZSAyNiwgWWF0LVNlbiBSZC4KKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtQUUgICAoaGV4KQkJQ0hBTkcgVFNFTkcgVEVDSE5PTE9HWSBDTy4sIExURAorMDAxREFFICAgICAoYmFzZSAxNikJCUNIQU5HIFRTRU5HIFRFQ0hOT0xPR1kgQ08uLCBMVEQKKwkJCQkyRiBOTy4xNjAgQkFDSyBCVUlMRElORywgTEVOIENIRU5HIFJELiwgQ0hVTkcgSE8gQ0lUWQorCQkJCVRBSVBFSSBIU0lFTiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELUFGICAgKGhleCkJCU5vcnRlbAorMDAxREFGICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xRC1CMCAgIChoZXgpCQlGdUppYW4gSGVuZ1RvbmcgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkCiswMDFEQjAgICAgIChiYXNlIDE2KQkJRnVKaWFuIEhlbmdUb25nIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCU5vLjE0LTgwNCxCdWlsZGluZyAyLEppblhpdUZ1Q2hlbmcsTm8uMzM4LEh1YUxpbiBSb2FkCisJCQkJRnVaaG91IENpdHkgRnVKaWFuIFByb3ZpbmNlIDM1MDAwMQorCQkJCUNISU5BCisKKzAwLTFELUIxICAgKGhleCkJCUNyZXNjZW5kbyBOZXR3b3JrcworMDAxREIxICAgICAoYmFzZSAxNikJCUNyZXNjZW5kbyBOZXR3b3JrcworCQkJCTYgWW9uaSBOZXRhbnlhaHUgU3QuCisJCQkJT3ItWWVodWRhICA2MDM3NgorCQkJCUlTUkFFTAorCiswMC0xRC1CMiAgIChoZXgpCQlIT0tLQUlETyBFTEVDVFJJQyBFTkdJTkVFUklORyBDTy4sTFRELgorMDAxREIyICAgICAoYmFzZSAxNikJCUhPS0tBSURPIEVMRUNUUklDIEVOR0lORUVSSU5HIENPLixMVEQuCisJCQkJU291dGgxNS1XZXN0MjMKKwkJCQlOYW5wb3JvLUNobyBIb2trYWlkbyAwNjktMDIxNQorCQkJCUpBUEFOCisKKzAwLTFELUIzICAgKGhleCkJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKzAwMURCMyAgICAgKGJhc2UgMTYpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCisJCQkJODAwMCBGb290aGlsbHMgQmx2ZAorCQkJCVJvc2V2aWxsZSBDQSA5NTc0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQjQgICAoaGV4KQkJS1VNSE8gRU5HIENPLixMVEQKKzAwMURCNCAgICAgKGJhc2UgMTYpCQlLVU1ITyBFTkcgQ08uLExURAorCQkJCTQ5OC0xMywgSFlVTkRBSSBCL0QgNUYKKwkJCQlQWUVPTkdSSSAzLURPTkcsIFNFTy1HVQorCQkJCURBRUdVICA3MDMtODM1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELUI1ICAgKGhleCkJCUp1bmlwZXIgbmV0d29ya3MKKzAwMURCNSAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIG5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUI2ICAgKGhleCkJCUJlc3RDb21tIE5ldHdvcmtzLCBJbmMuCiswMDFEQjYgICAgIChiYXNlIDE2KQkJQmVzdENvbW0gTmV0d29ya3MsIEluYy4KKwkJCQk0NDAwIEUuIEJyb2Fkd2F5IEJsdmQuCisJCQkJU3VpdGUgMjAxCisJCQkJVHVjc29uIEFaIDg1NzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1CNyAgIChoZXgpCQlUZW5kcmlsIE5ldHdvcmtzLCBJbmMuCiswMDFEQjcgICAgIChiYXNlIDE2KQkJVGVuZHJpbCBOZXR3b3JrcywgSW5jLgorCQkJCTU3MDAtRCBGbGF0aXJvbiBQYXJrd2F5CisJCQkJU3VpdGUgNTcwMC1ECisJCQkJQm91bGRlciBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQjggICAoaGV4KQkJSW50b3RvIEluYy4KKzAwMURCOCAgICAgKGJhc2UgMTYpCQlJbnRvdG8gSW5jLgorCQkJCTMxMDAgRGUgTGEgQ3J1eiBCbHZkLiAgIzMwMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1COSAgIChoZXgpCQlXZWxsc3ByaW5nIFdpcmVsZXNzCiswMDFEQjkgICAgIChiYXNlIDE2KQkJV2VsbHNwcmluZyBXaXJlbGVzcworCQkJCTEwNyBNYWdlbGxhIENvdXJ0CisJCQkJTm9ydGggV2FsZXMgUGEgMTk0NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUJBICAgKGhleCkJCVNvbnkgQ29ycG9yYXRpb24KKzAwMURCQSAgICAgKGJhc2UgMTYpCQlTb255IENvcnBvcmF0aW9uCisJCQkJR290ZW55YW1hIFRlYyw1LTEtMTIsCisJCQkJS2l0YXNoaW5hZ2F3YQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAwMQorCQkJCUpBUEFOCisKKzAwLTFELUJCICAgKGhleCkJCUR5bmFtaWMgU3lzdGVtIEVsZWN0cm9uaWNzIENvcnAuCiswMDFEQkIgICAgIChiYXNlIDE2KQkJRHluYW1pYyBTeXN0ZW0gRWxlY3Ryb25pY3MgQ29ycC4KKwkJCQk1RixOTyw5LExBTkUgMTMwLFNFQyAxLEtVQU5HRyBGVSBSRC5TQU4gQ0hVTkcgQ0lUWSwKKwkJCQlUYWlwZWkgSHNpZW4gMjQxNTgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELUJDICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAxREJDICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFELUJEICAgKGhleCkJCVZlcnNhbWVkIEluYy4KKzAwMURCRCAgICAgKGJhc2UgMTYpCQlWZXJzYW1lZCBJbmMuCisJCQkJMiBCbHVlIEhpbGwgUGxhemEKKwkJCQlQZWFybCBSaXZlciBOWSAxMDk2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQkUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDFEQkUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjAwIE4uIFVTIDQ1CisJCQkJTGliZXJ0eXZpbGxlIElsbGlub2lzIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1CRiAgIChoZXgpCQlSYWRpaWVudCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMURCRiAgICAgKGJhc2UgMTYpCQlSYWRpaWVudCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyMDg0LUEgV2Fsc2ggQXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUMwICAgKGhleCkJCUVucGhhc2UgRW5lcmd5CiswMDFEQzAgICAgIChiYXNlIDE2KQkJRW5waGFzZSBFbmVyZ3kKKwkJCQkyMDEgMXN0IFN0cmVldCwgU3VpdGUgMTExCisJCQkJUGV0YWx1bWEgQ0EgOTQ5NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUMxICAgKGhleCkJCUF1ZGluYXRlIFB0eSBMCiswMDFEQzEgICAgIChiYXNlIDE2KQkJQXVkaW5hdGUgUHR5IEwKKwkJCQlMZXZlbCAxLCA0NTggV2F0dGxlIFN0CisJCQkJVWx0aW1vIE5TVyAyMDA3CisJCQkJQVVTVFJBTElBCisKKzAwLTFELUMyICAgKGhleCkJCVhPUlRFQyBPWQorMDAxREMyICAgICAoYmFzZSAxNikJCVhPUlRFQyBPWQorCQkJCUhveXRhbW9udGllIDYKKwkJCQlMZW1wYWFsYSBQaXJrYW5tYWEgMzM4ODAKKwkJCQlGSU5MQU5ECisKKzAwLTFELUMzICAgKGhleCkJCVJJS09SIFRWLCBMdGQKKzAwMURDMyAgICAgKGJhc2UgMTYpCQlSSUtPUiBUViwgTHRkCisJCQkJS29zdG9tYXJvdnNreSBwZXIuLDMKKwkJCQlNb3Njb3cgIDEwNTEyMAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRC1DNCAgIChoZXgpCQlBSU9JIFN5c3RlbXMgQ28uLCBMdGQuCiswMDFEQzQgICAgIChiYXNlIDE2KQkJQUlPSSBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCUtEWCBPbW9yaSwgQmxkZy4gOEYKKwkJCQkxLTYtOCBPbW9yaSBLaXRhLCBPdGEta3UKKwkJCQlUb2t5byAgMTQzLTAwMTYKKwkJCQlKQVBBTgorCiswMC0xRC1DNSAgIChoZXgpCQlCZWlqaW5nIEppYXh1biBGZWlob25nIEVsZWN0cmljaWFsIENvLiwgTHRkLgorMDAxREM1ICAgICAoYmFzZSAxNikJCUJlaWppbmcgSmlheHVuIEZlaWhvbmcgRWxlY3RyaWNpYWwgQ28uLCBMdGQuCisJCQkJRWxlY3RyaWNhbCBCdWlsZGluZyxOby4gMzEgSmlhb2RhIEVhc3QgUm9hZCwKKwkJCQlCZWlqaW5nIEhhaWRpYW4gRGlzdHJpY3QsIDEwMDA0NAorCQkJCUNISU5BCisKKzAwLTFELUM2ICAgKGhleCkJCVNOUiBJbmMuCiswMDFEQzYgICAgIChiYXNlIDE2KQkJU05SIEluYy4KKwkJCQlWQklDIFQyMjNobywgSUNVLCAxMDMtNiBNdW5qaS1kb25nLCBZb3VzZW9uZy1ndQorCQkJCURhZWplb24gIDMwNS03MzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUQtQzcgICAoaGV4KQkJTC0zIENvbW11bmljYXRpb25zIEdlbmV2YSBBZXJvc3BhY2UKKzAwMURDNyAgICAgKGJhc2UgMTYpCQlMLTMgQ29tbXVuaWNhdGlvbnMgR2VuZXZhIEFlcm9zcGFjZQorCQkJCTQyNDAgSW50ZXJuYXRpb25hbCBQYXJrd2F5CisJCQkJU3VpdGUgMTAwCisJCQkJQ2Fycm9sbHRvbiBUZXhhcyA3NTAwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQzggICAoaGV4KQkJU2NhZGFNZXRyY3MsIExMQy4KKzAwMURDOCAgICAgKGJhc2UgMTYpCQlTY2FkYU1ldHJjcywgTExDLgorCQkJCTU5NSBWaXN0YSBIaWxscyBDb3VydAorCQkJCUV1cmVrYSBNaXNzb3VyaSA2MzAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQzkgICAoaGV4KQkJR2FpblNwYW4gQ29ycC4KKzAwMURDOSAgICAgKGJhc2UgMTYpCQlHYWluU3BhbiBDb3JwLgorCQkJCVAuTy4gQm94IDIyMzU4MAorCQkJCUNhcm1lbCBDQSA5MzkyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQ0EgICAoaGV4KQkJUEFWIEVsZWN0cm9uaWNzIExpbWl0ZWQKKzAwMURDQSAgICAgKGJhc2UgMTYpCQlQQVYgRWxlY3Ryb25pY3MgTGltaXRlZAorCQkJCTcgTGF2ZXJvY2sgUm9hZAorCQkJCVN0aXJsaW5nIFJvYWQgSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlBaXJkcmllIExhbmFya3NoaXJlIE1MNiA3VUQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRC1DQiAgIChoZXgpCQlFeGVucyBEZXZlbG9wbWVudCBPeQorMDAxRENCICAgICAoYmFzZSAxNikJCUV4ZW5zIERldmVsb3BtZW50IE95CisJCQkJS2F1cHBha2F0dSAzNgorCQkJCUthamFhbmkgS2FpbnV1IDg3MTAwCisJCQkJRklOTEFORAorCiswMC0xRC1DQyAgIChoZXgpCQlIZXRyYSBTZWN1cmUgU29sdXRpb25zCiswMDFEQ0MgICAgIChiYXNlIDE2KQkJSGV0cmEgU2VjdXJlIFNvbHV0aW9ucworCQkJCTIzNTAgQ29tbWVyY2UgUGFyayBEci4KKwkJCQlQYWxtIEJheSBGTCAzMjkwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQ0QgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMURDRCAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQ0UgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMURDRSAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQ0YgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMURDRiAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDAgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMUREMCAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDEgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMUREMSAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDIgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMUREMiAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDMgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMUREMyAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDQgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMURENCAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDUgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMURENSAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDYgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMURENiAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDcgICAoaGV4KQkJQWxnb2xpdGgKKzAwMURENyAgICAgKGJhc2UgMTYpCQlBbGdvbGl0aAorCQkJCTQwMCBJc2FiZXkKKwkJCQlTYWludC1MYXVyZW50IFFjIEg0VCAxVjMKKwkJCQlDQU5BREEKKworMDAtMUQtRDggICAoaGV4KQkJTWljcm9zb2Z0IENvcnBvcmF0aW9uCiswMDFERDggICAgIChiYXNlIDE2KQkJTWljcm9zb2Z0IENvcnBvcmF0aW9uCisJCQkJT25lIE1pY3Jvc29mdCBXYXkKKwkJCQlSZWRtb25kIFdhc2hpbmd0b24gOTgwNTItNjM5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDkgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLixMdGQuCiswMDFERDkgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLixMdGQuCisJCQkJNjYsQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELURBICAgKGhleCkJCU1pa3JvZWxla3Ryb25pa2Egc3BvbC4gcyByLiBvLgorMDAxRERBICAgICAoYmFzZSAxNikJCU1pa3JvZWxla3Ryb25pa2Egc3BvbC4gcyByLiBvLgorCQkJCURyYWJ5IDg0OQorCQkJCVZ5c29rZSBNeXRvIENaIDU2NiAwMQorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTFELURCICAgKGhleCkJCUMtQkVMIENvcnBvcmF0aW9uCiswMDFEREIgICAgIChiYXNlIDE2KQkJQy1CRUwgQ29ycG9yYXRpb24KKwkJCQlGdXRhYmFjaG8gMzUtMTIKKwkJCQk2RiBPa2FkYSBCaWxkZworCQkJCUl0YWJhc2hpLWt1IFRva3lvIDE3My0wMDExCisJCQkJSkFQQU4KKworMDAtMUQtREMgICAoaGV4KQkJSGFuZ1pob3UgRGVDaGFuZ0xvbmcgVGVjaCZJbmZvIENvLixMdGQKKzAwMUREQyAgICAgKGJhc2UgMTYpCQlIYW5nWmhvdSBEZUNoYW5nTG9uZyBUZWNoJkluZm8gQ28uLEx0ZAorCQkJCVJvb20gMTEwMixLZUppIE1hbnNpb24sCisJCQkJRWFzdCBTb2Z0d2FyZSBQYXJrLDkwIFdlblNhbiBSb2FkLgorCQkJCUhhbmdaaG91IFpoZUppYW5nIDMxMDAxMgorCQkJCUNISU5BCisKKzAwLTFELUREICAgKGhleCkJCURBVCBILksuIExJTUlURUQKKzAwMURERCAgICAgKGJhc2UgMTYpCQlEQVQgSC5LLiBMSU1JVEVECisJCQkJU3VpdGUgMTQwNSAxNC9GLiwgQ2l0eSBQbGF6YSA0LCBUYWkgS29vIFdhbiBSZCwKKwkJCQlUYWkgS29vIFNoaW5nIEhvbmcgS29uZyBJc2xhbmQgMDY0ODI4CisJCQkJSE9ORyBLT05HCisKKzAwLTFELURFICAgKGhleCkJCVpoZWppYW5nIEJyb2FkY2FzdCZUZWxldmlzaW9uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMURERSAgICAgKGJhc2UgMTYpCQlaaGVqaWFuZyBCcm9hZGNhc3QmVGVsZXZpc2lvbiBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJQnVpbGRpbmcgTm8uMTYsWGlkb3VtZW4gSW5kdXN0cnkgUGFyayxXZW55aSBSb2FkLAorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDAxMgorCQkJCUNISU5BCisKKzAwLTFELURGICAgKGhleCkJCVN1bml0ZWMgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKzAwMURERiAgICAgKGJhc2UgMTYpCQlTdW5pdGVjIEVudGVycHJpc2UgQ28uLCBMdGQuCisJCQkJM0YuLCBOby4gOTgtMSwgTWluY3l1YW4gUmQuCisJCQkJU2luZGlhbiBDaXR5IFRhaXBlaSBDb3VudHkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC1FMCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMURFMCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFELUUxICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxREUxICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMUQtRTIgICAoaGV4KQkJUmFkaW9ub3IgQ29tbXVuaWNhdGlvbnMKKzAwMURFMiAgICAgKGJhc2UgMTYpCQlSYWRpb25vciBDb21tdW5pY2F0aW9ucworCQkJCUluZ3ZhbGQgWXN0Z2FhcmRzIHZlZyAyMworCQkJCVRyb25kaGVpbSBUUkQgNzA0NgorCQkJCU5PUldBWQorCiswMC0xRC1FMyAgIChoZXgpCQlJbnR1aWNvbQorMDAxREUzICAgICAoYmFzZSAxNikJCUludHVpY29tCisJCQkJMTg4MCBTLiBGbGF0aXJvbiBDdC4KKwkJCQlTdWl0ZSBSCisJCQkJQm91bGRlciBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRTQgICAoaGV4KQkJVmlzaW9uZWVyZWQgSW1hZ2UgU3lzdGVtcworMDAxREU0ICAgICAoYmFzZSAxNikJCVZpc2lvbmVlcmVkIEltYWdlIFN5c3RlbXMKKwkJCQkxMDU2MSBHYXJkZW4gR3JvdmUgQmx2ZAorCQkJCUdhcmRlbiBHcm92ZSBDYWxpZm9ybmlhIDkyODQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1FNSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFERTUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRTYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxREU2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUU3ICAgKGhleCkJCU1hcmluZSBTb25pYyBUZWNobm9sb2d5LCBMdGQuCiswMDFERTcgICAgIChiYXNlIDE2KQkJTWFyaW5lIFNvbmljIFRlY2hub2xvZ3ksIEx0ZC4KKwkJCQk1NTA4IEdlb3JnZSBXYXNoaW5ndG9uIE1lbW9yaWFsIEhpZ2h3YXkKKwkJCQlQLk8uIEJveCA3MzAKKwkJCQlXaGl0ZSBNYXJzaCBWaXJnaW5pYSAyMzE4MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRTggICAoaGV4KQkJTmlra28gRGVua2kgVHN1c2hpbiBDb21wYW55KE5EVEMpCiswMDFERTggICAgIChiYXNlIDE2KQkJTmlra28gRGVua2kgVHN1c2hpbiBDb21wYW55KE5EVEMpCisJCQkJNDQwIEthbW9zaGlkYS10b3duLCBBb2JhLWt1CisJCQkJWW9rb2hhbWEgIDIyNy0wMDMzCisJCQkJSkFQQU4KKworMDAtMUQtRTkgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMURFOSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUQtRUEgICAoaGV4KQkJQ29tbXRlc3QgSW5zdHJ1bWVudHMgTHRkCiswMDFERUEgICAgIChiYXNlIDE2KQkJQ29tbXRlc3QgSW5zdHJ1bWVudHMgTHRkCisJCQkJTGV2ZWwgMiwgMjIgTW9vcmhvdXNlIEF2ZQorCQkJCUNocmlzdGNodXJjaCBDYW50ZXJidXJ5IDgyNDMKKwkJCQlORVcgWkVBTEFORAorCiswMC0xRC1FQiAgIChoZXgpCQlESU5FQyBJbnRlcm5hdGlvbmFsCiswMDFERUIgICAgIChiYXNlIDE2KQkJRElORUMgSW50ZXJuYXRpb25hbAorCQkJCVJ1ZSBkZSBsYSBHYXJlLCAzMAorCQkJCUJSQUlORSBMJ0FMTEVVRCBCUkFCQU5UIFdBTExPTiAxNDIwCisJCQkJQkVMR0lVTQorCiswMC0xRC1FQyAgIChoZXgpCQlNYXJ1c3lzCiswMDFERUMgICAgIChiYXNlIDE2KQkJTWFydXN5cworCQkJCUV1bnN1bmcgQmxkZy4gNUYKKwkJCQk1My04IENodW5nRGFtLURvbmcgS2FuZ05hbS1LdQorCQkJCVNlb3VsICAxMzUtNzYzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELUVEICAgKGhleCkJCUdyaWQgTmV0LCBJbmMuCiswMDFERUQgICAgIChiYXNlIDE2KQkJR3JpZCBOZXQsIEluYy4KKwkJCQkzNDAgQnJhbm5hbiBTdHJlZXQKKwkJCQlTdWl0ZSA1MDEKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1FRSAgIChoZXgpCQlORVhUVklTSU9OIFNJU1RFTUFTIERJR0lUQUlTIERFIFRFTEVWSVNBTyBMVERBLgorMDAxREVFICAgICAoYmFzZSAxNikJCU5FWFRWSVNJT04gU0lTVEVNQVMgRElHSVRBSVMgREUgVEVMRVZJU0FPIExUREEuCisJCQkJQWxhbWVkYSBSaW8gTmVncm8sIDEwMzAgLSAxOW8uIGFuZGFyIGNvbmouIDE5MDQKKwkJCQlCYXJ1ZXJpIFNhbyBQYXVsbyAwNjQ1NC0wMDAKKwkJCQlCUkFaSUwKKworMDAtMUQtRUYgICAoaGV4KQkJVFJJTU0sIElOQy4KKzAwMURFRiAgICAgKGJhc2UgMTYpCQlUUklNTSwgSU5DLgorCQkJCTQwNyBSQUlMUk9BRCBTVFJFRVQKKwkJCQlCVVRORVIgTkMgMjc1MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUYwICAgKGhleCkJCVZpZGllbnQgU3lzdGVtcywgSW5jLgorMDAxREYwICAgICAoYmFzZSAxNikJCVZpZGllbnQgU3lzdGVtcywgSW5jLgorCQkJCTQwMDAgQnVydG9uIERyaXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTQwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUYxICAgKGhleCkJCUludGVnbyBTeXN0ZW1zLCBJbmMuCiswMDFERjEgICAgIChiYXNlIDE2KQkJSW50ZWdvIFN5c3RlbXMsIEluYy4KKwkJCQk1MzQzIEJvd2RlbiBSb2FkCisJCQkJSmFja3NvbnZpbGxlIEZMIDMyMjE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1GMiAgIChoZXgpCQlOZXRmbGl4LCBJbmMuCiswMDFERjIgICAgIChiYXNlIDE2KQkJTmV0ZmxpeCwgSW5jLgorCQkJCTEwMCBXaW5jaGVzdGVyIENpcmNsZQorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRjMgICAoaGV4KQkJU0JTIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLiwgTHRkCiswMDFERjMgICAgIChiYXNlIDE2KQkJU0JTIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJVzItQjUvNiBIaWdoLXRlY2ggaW5kdXN0cmlhbCBwYXJrCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTFELUY0ICAgKGhleCkJCU1hZ2VsbGFuIFRlY2hub2xvZ3kgUHR5IExpbWl0ZWQKKzAwMURGNCAgICAgKGJhc2UgMTYpCQlNYWdlbGxhbiBUZWNobm9sb2d5IFB0eSBMaW1pdGVkCisJCQkJNjUgSm9obnN0b24gU3RyZWV0CisJCQkJQW5uYW5kYWxlIE5TVyAyMDAwCisJCQkJQVVTVFJBTElBCisKKzAwLTFELUY1ICAgKGhleCkJCVN1bnNoaW5lIENvLExURAorMDAxREY1ICAgICAoYmFzZSAxNikJCVN1bnNoaW5lIENvLExURAorCQkJCTEtMy01IEtvamltYWNoaQorCQkJCUNoaXlvZGEta3UKKwkJCQlUT0tZTyBLYW50byByZWdpb24gMTAyLTAwODMKKwkJCQlKQVBBTgorCiswMC0xRC1GNiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzAwMURGNiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUQtRjcgICAoaGV4KQkJUi4gU1RBSEwgU2NoYWx0Z2VyYXRlIEdtYkgKKzAwMURGNyAgICAgKGJhc2UgMTYpCQlSLiBTVEFITCBTY2hhbHRnZXJhdGUgR21iSAorCQkJCWFtIEJhaG5ob2YgMzAKKwkJCQlXYWxkZW5idXJnIEJhZGVuIFd1cnR0ZW1iZXJnIDc0NjM4CisJCQkJR0VSTUFOWQorCiswMC0xRC1GOCAgIChoZXgpCQlXZWJwcm8gVmlzaW9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMURGOCAgICAgKGJhc2UgMTYpCQlXZWJwcm8gVmlzaW9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Ri4sIE5vLjU3MywgQ2luZ3BpbmcgUmQuCisJCQkJQW5waW5nIERpc3RyaWN0ICA3MDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELUY5ICAgKGhleCkJCUN5YmlvdHJvbmljcyAoRmFyIEVhc3QpIExpbWl0ZWQKKzAwMURGOSAgICAgKGJhc2UgMTYpCQlDeWJpb3Ryb25pY3MgKEZhciBFYXN0KSBMaW1pdGVkCisJCQkJVW5pdCAxOTA2LCBFYXN0ZXJuIENlbnRyZSwKKwkJCQkxMDY1IEtpbmcncyBSb2FkLAorCQkJCVF1YXJyeSBCYXkgIAorCQkJCUhPTkcgS09ORworCiswMC0xRC1GQSAgIChoZXgpCQlGdWppYW4gTEFOREkgQ29tbWVyY2lhbCBFcXVpcG1lbnQgQ28uLEx0ZAorMDAxREZBICAgICAoYmFzZSAxNikJCUZ1amlhbiBMQU5ESSBDb21tZXJjaWFsIEVxdWlwbWVudCBDby4sTHRkCisJCQkJQnVpbGRpbmcgMjMsdGhlIDFzdCBzZWN0aW9uLFNvZnR3YXJlIEdhcmRlbgorCQkJCU5vLjg5IFNvZnR3YXJlIFJvYWQsCisJCQkJRnV6aG91IEZ1amlhbiAzNTAwMDMKKwkJCQlDSElOQQorCiswMC0xRC1GQiAgIChoZXgpCQlORVRDTEVVUyBTeXN0ZW1zIENvcnBvcmF0aW9uCiswMDFERkIgICAgIChiYXNlIDE2KQkJTkVUQ0xFVVMgU3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTNGLCBEYWlpY2hpLW1hZWRhIEJsZGcuCisJCQkJMy01LTMsIFlhbWF0by1oaWdhc2hpCisJCQkJWWFtYXRvLXNoaSAgMjQyLTAwMTcKKwkJCQlKQVBBTgorCiswMC0xRC1GQyAgIChoZXgpCQlLU0lDCiswMDFERkMgICAgIChiYXNlIDE2KQkJS1NJQworCQkJCSM2RiwgS29yZWEgRmVkZXJhdGlvbiBvZiBUZWFjaGVyJ3MgQXNzb2NpYXRpb25zLCAxMTQtMSwgVGFlQm9uZy1SbywKKwkJCQlTZW91bCBTZW9jaG8tS3UgMTM3LTcxNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRC1GRCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxREZEICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRC1GRSAgIChoZXgpCQlQYWxtLCBJbmMKKzAwMURGRSAgICAgKGJhc2UgMTYpCQlQYWxtLCBJbmMKKwkJCQk5NTAgV2VzdCBNYXVkZSBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUZGICAgKGhleCkJCU5ldHdvcmsgQ3JpdGljYWwgU29sdXRpb25zIEx0ZAorMDAxREZGICAgICAoYmFzZSAxNikJCU5ldHdvcmsgQ3JpdGljYWwgU29sdXRpb25zIEx0ZAorCQkJCTEyQiBTb3V0aHZpZXcgUGFyaworCQkJCUNhdmVyc2hhbQorCQkJCVJlYWRpbmcgQmVya3NoaXJlIFJHNDVBRgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFFLTAwICAgKGhleCkJCVNoYW50b3UgSW5zdGl0dXRlIG9mIFVsdHJhc29uaWMgSW5zdHJ1bWVudHMKKzAwMUUwMCAgICAgKGJhc2UgMTYpCQlTaGFudG91IEluc3RpdHV0ZSBvZiBVbHRyYXNvbmljIEluc3RydW1lbnRzCisJCQkJTm8uNzcsIEppbnNoYSBSb2FkLAorCQkJCVNoYW50b3UgR3Vhbmdkb25nIDUxNTA0MQorCQkJCUNISU5BCisKKzAwLTFFLTAxICAgKGhleCkJCVJlbmVzYXMgVGVjaG5vbG9neSBTYWxlcyBDby4sIEx0ZC4KKzAwMUUwMSAgICAgKGJhc2UgMTYpCQlSZW5lc2FzIFRlY2hub2xvZ3kgU2FsZXMgQ28uLCBMdGQuCisJCQkJMi02LTIKKwkJCQlPdGVtYWNoaQorCQkJCUNoaXlvZGEta3UgVG9reW8gMTAwLTAwMDQKKwkJCQlKQVBBTgorCiswMC0xRS0wMiAgIChoZXgpCQlTb3Vnb3UgS2Vpa2FrdSBLb3VneW91IENvLixMdGQuCiswMDFFMDIgICAgIChiYXNlIDE2KQkJU291Z291IEtlaWtha3UgS291Z3lvdSBDby4sTHRkLgorCQkJCUhLMiBibGQuIDItMjEtMTAKKwkJCQlOaXNoaW9naW1pbmFtaQorCQkJCVN1Z2luYW1pa3UgVG9reW8gMTY3LTAwNTMKKwkJCQlKQVBBTgorCiswMC0xRS0wMyAgIChoZXgpCQlMaUNvbW0gQ28uLCBMdGQuCiswMDFFMDMgICAgIChiYXNlIDE2KQkJTGlDb21tIENvLiwgTHRkLgorCQkJCTkwOC0xIFNFTy1SSSwgSURPTkctTVlFT04KKwkJCQlZT05HSU4tU0kgR1lFT05HR0ktRE8gNDQ5LTgzNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS0wNCAgIChoZXgpCQlIYW5zb24gUmVzZWFyY2ggQ29ycG9yYXRpb24KKzAwMUUwNCAgICAgKGJhc2UgMTYpCQlIYW5zb24gUmVzZWFyY2ggQ29ycG9yYXRpb24KKwkJCQk5ODEwIFZhcmllbCBBdmUuCisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMDUgICAoaGV4KQkJWHNlZWQgVGVjaG5vbG9naWVzICYgQ29tcHV0aW5nCiswMDFFMDUgICAgIChiYXNlIDE2KQkJWHNlZWQgVGVjaG5vbG9naWVzICYgQ29tcHV0aW5nCisJCQkJVG9wYXogSG91c2UsIE1BVEFNCisJCQkJNSBOYWh1bSBIYXQgU3QuCisJCQkJSGFpZmEgIDM5MTAwCisJCQkJSVNSQUVMCisKKzAwLTFFLTA2ICAgKGhleCkJCVdJQlJBSU4KKzAwMUUwNiAgICAgKGJhc2UgMTYpCQlXSUJSQUlOCisJCQkJMzA2IEpFSSBQbGF0cyBCL0QgNDU5LTExIEdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNFT1VMICAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTA3ICAgKGhleCkJCVdpbnkgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMUUwNyAgICAgKGJhc2UgMTYpCQlXaW55IFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMzA1LTMwMywgQnVjaGVvbiBUZWNobm8tcGFyaywgIzM2NQorCQkJCVNhbWplb25nLWRvbmcsIE9qZW9uZy1ndQorCQkJCUJ1Y2hlb24gR3llb25nZ2ktZG8gNDIxLTc0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS0wOCAgIChoZXgpCQlDZW50ZWMgTmV0d29ya3MgSW5jCiswMDFFMDggICAgIChiYXNlIDE2KQkJQ2VudGVjIE5ldHdvcmtzIEluYworCQkJCVNjaWVuY2UgUGxhemEgMTBGICwgMzI4IEFpcnBvcnQgUmQKKwkJCQlTdXpob3UgSW5kdXN0cmlhbCBQYXJrCisJCQkJU3V6aG91IEppYW5nc3UgMjE1MDIxCisJCQkJQ0hJTkEKKworMDAtMUUtMDkgICAoaGV4KQkJWkVGQVRFSyBDby4sTFRECiswMDFFMDkgICAgIChiYXNlIDE2KQkJWkVGQVRFSyBDby4sTFRECisJCQkJMzI2LTQgR2FzYW5kb25nLCBHZXVtY2hlb25ndQorCQkJCVNlb3VsICAxNTMtODAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTBBICAgKGhleCkJCVN5YmEgVGVjaCBMaW1pdGVkCiswMDFFMEEgICAgIChiYXNlIDE2KQkJU3liYSBUZWNoIExpbWl0ZWQKKwkJCQlSTTEzMDEsIFZhbnRhIEluZHVzdHJpYWwgQ2VudHJlLAorCQkJCTIxLTMzIFRhaSBMaW4gUGFpIFJkLgorCQkJCUt3YWkgQ2h1bmcgIAorCQkJCUhPTkcgS09ORworCiswMC0xRS0wQiAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMUUwQiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMEMgICAoaGV4KQkJU2hlcndvb2QgSW5mb3JtYXRpb24gUGFydG5lcnMsIEluYy4KKzAwMUUwQyAgICAgKGJhc2UgMTYpCQlTaGVyd29vZCBJbmZvcm1hdGlvbiBQYXJ0bmVycywgSW5jLgorCQkJCTExMjAgVywgMTIybmQgQXZlLCBTdGUgMzAwCisJCQkJV2VzdG1pbnN0ZXIgQ08gODAyMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTBEICAgKGhleCkJCU1pY3JhbiBMdGQuCiswMDFFMEQgICAgIChiYXNlIDE2KQkJTWljcmFuIEx0ZC4KKwkJCQlWZXJzaGluaW5hIHN0LiA0NworCQkJCVRvbXNrIFRvbXNrIFJlZ2lvbiA2MzQwMzQKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUUtMEUgICAoaGV4KQkJTUFYSSBWSUVXIEhPTERJTkdTIExJTUlURUQKKzAwMUUwRSAgICAgKGJhc2UgMTYpCQlNQVhJIFZJRVcgSE9MRElOR1MgTElNSVRFRAorCQkJCVN1aXRlIDIzMDIsMjMvRiBHcmVhdCBFYWdsZSBDZW50cmUsIDIzIEhhcmJvdXIgUm9hZCwgV2FuY2hhaQorCQkJCUhvbmcgS29uZyAgCisJCQkJQ0hJTkEKKworMDAtMUUtMEYgICAoaGV4KQkJQnJpb3QgSW50ZXJuYXRpb25hbAorMDAxRTBGICAgICAoYmFzZSAxNikJCUJyaW90IEludGVybmF0aW9uYWwKKwkJCQkyIHJ1ZSByb2dlciBCb25uZXQKKwkJCQlQb250IGRlIGwnQXJjaGUgRXVyZSAyNzM0MAorCQkJCUZSQU5DRQorCiswMC0xRS0xMCAgIChoZXgpCQlTaGVuWmhlbiBIdWF3ZWkgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzAwMUUxMCAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBIdWF3ZWkgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKwkJCQlIVUFXRUkgSU5EVVNUUklBTCBQSyBCQU5USUFOLCBMT05HR0FORyBESVNUIFNIRU5aSEVOCisJCQkJU0hFTlpIRU4gR1VBTkdET05HIDUxODA3NworCQkJCUNISU5BCisKKzAwLTFFLTExICAgKGhleCkJCUVMRUxVWCBJTlRFUk5BVElPTkFMIExURAorMDAxRTExICAgICAoYmFzZSAxNikJCUVMRUxVWCBJTlRFUk5BVElPTkFMIExURAorCQkJCTNGLiwgTk8uMTAzIENIT1cgVFpFIFNUUkVFVAorCQkJCU5FSS1IVSBESVNUUklDVCAoMTE0KQorCQkJCVRBSVBFSSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS0xMiAgIChoZXgpCQlFY29sYWIKKzAwMUUxMiAgICAgKGJhc2UgMTYpCQlFY29sYWIKKwkJCQk2NTUgTG9uZSBPYWsgRHJpdmUKKwkJCQlSZXNlYXJjaCBDZW50ZXIgRG9jayAtLSBGNDQxNgorCQkJCUVhZ2FuIE1OIDU1MTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS0xMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFFMTMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMTQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRTE0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTE1ICAgKGhleCkJCUJlZWNoIEhpbGwgRWxlY3Ryb25pY3MKKzAwMUUxNSAgICAgKGJhc2UgMTYpCQlCZWVjaCBIaWxsIEVsZWN0cm9uaWNzCisJCQkJQmVlY2hjcm9mdCwgQmVlY2ggSGlsbCBSb2FkCisJCQkJQmVlY2ggSGlsbAorCQkJCVJlYWRpbmcgQmVya3NoaXJlIFJHNyAyQVUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRS0xNiAgIChoZXgpCQlLZXl0cm9uaXgKKzAwMUUxNiAgICAgKGJhc2UgMTYpCQlLZXl0cm9uaXgKKwkJCQlVbmdhcmdhc3NlIDY0LTY2LzEvMTA5CisJCQkJVmllbm5hICAxMDMwCisJCQkJQVVTVFJJQQorCiswMC0xRS0xNyAgIChoZXgpCQlTVE4gQlYKKzAwMUUxNyAgICAgKGJhc2UgMTYpCQlTVE4gQlYKKwkJCQlBbWVyaWthd2VnIDQKKwkJCQlIdWxzdCBaZWVsYW5kIDQ1NjEgUEIKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRS0xOCAgIChoZXgpCQlSYWRpbyBBY3Rpdml0eSBzcmwKKzAwMUUxOCAgICAgKGJhc2UgMTYpCQlSYWRpbyBBY3Rpdml0eSBzcmwKKwkJCQlWaWEgUG9udGUgTnVvdm8gOAorCQkJCU1pbGFubyBNSSAyMDEyOAorCQkJCUlUQUxZCisKKzAwLTFFLTE5ICAgKGhleCkJCUdUUkkKKzAwMUUxOSAgICAgKGJhc2UgMTYpCQlHVFJJCisJCQkJTS9TIDA4MjEKKwkJCQlBdGxhbnRhIEdBIDMwMzMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS0xQSAgIChoZXgpCQlCZXN0IFNvdXJjZSBUYWl3YW4gSW5jLgorMDAxRTFBICAgICAoYmFzZSAxNikJCUJlc3QgU291cmNlIFRhaXdhbiBJbmMuCisJCQkJMkYsIE5vLjE2LCBMYW5lIDU2LCBKaG9uZ2poZW5nIFcuIFJkLiwKKwkJCQlKaHViZWkgQ2l0eSwgSHNpbmNodSBDb3VudHkgMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS0xQiAgIChoZXgpCQlEaWdpdGFsIFN0cmVhbSBUZWNobm9sb2d5LCBJbmMuCiswMDFFMUIgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBTdHJlYW0gVGVjaG5vbG9neSwgSW5jLgorCQkJCTQsNSw2dGggRmwuLCBUYWVDaGFuZyBCL0QsIDQ1MS0xCisJCQkJU3VuZ05hZS1Eb25nLCBHYW5nRG9uZy1LdQorCQkJCVNlb3VsICAxMzQtMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTFDICAgKGhleCkJCVNXUyBBdXN0cmFsaWEgUHR5IExpbWl0ZWQKKzAwMUUxQyAgICAgKGJhc2UgMTYpCQlTV1MgQXVzdHJhbGlhIFB0eSBMaW1pdGVkCisJCQkJMjMgU2NhbmxvbiBEcml2ZQorCQkJCUVwcGluZyBWaWN0b3JpYSAzMDc2CisJCQkJQVVTVFJBTElBCisKKzAwLTFFLTFEICAgKGhleCkJCUVhc3QgQ29hc3QgRGF0YWNvbSwgSW5jLgorMDAxRTFEICAgICAoYmFzZSAxNikJCUVhc3QgQ29hc3QgRGF0YWNvbSwgSW5jLgorCQkJCTI0NSBHdXMgSGlwcCBCbHZkLiwgU1RFIDMKKwkJCQlSb2NrbGVkZ2UgRkwgMzI5NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTFFICAgKGhleCkJCUhvbmV5d2VsbCBMaWZlIFNhZmV0eQorMDAxRTFFICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbCBMaWZlIFNhZmV0eQorCQkJCTEyIENsaW50b252aWxsZSBSb2FkCisJCQkJTm9ydGhmb3JkIENUIDA0MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTFGICAgKGhleCkJCU5vcnRlbAorMDAxRTFGICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xRS0yMCAgIChoZXgpCQlJbnRlcnRhaW4gSW5jLgorMDAxRTIwICAgICAoYmFzZSAxNikJCUludGVydGFpbiBJbmMuCisJCQkJU3VpdGUgNjA4IExHIEVjbGF0LTIsIDI0NS00IFNlb2h5dW4tZG9uZywgQnVuZGFuZy1ndQorCQkJCVN1bmduZ20tc2hpIEt5dW5nZ2ktZG8gNDYzLTgyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS0yMSAgIChoZXgpCQlRaXNkYSBDby4KKzAwMUUyMSAgICAgKGJhc2UgMTYpCQlRaXNkYSBDby4KKwkJCQkxNTcgU2hhbi1ZaW5nIFJvYWQsIEd1ZWlzaGFuCisJCQkJVGFveXVhbiAgMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS0yMiAgIChoZXgpCQlBUlZPTyBJbWFnaW5nIFByb2R1Y3RzIEJWCiswMDFFMjIgICAgIChiYXNlIDE2KQkJQVJWT08gSW1hZ2luZyBQcm9kdWN0cyBCVgorCQkJCVBPIEJveCA0MzkKKwkJCQlXb2VyZGVuIFVUIDM0NDAgQUsKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRS0yMyAgIChoZXgpCQlFbGVjdHJvbmljIEVkdWNhdGlvbmFsIERldmljZXMsIEluYworMDAxRTIzICAgICAoYmFzZSAxNikJCUVsZWN0cm9uaWMgRWR1Y2F0aW9uYWwgRGV2aWNlcywgSW5jCisJCQkJMTkwMyBTIEdyYW50IFN0CisJCQkJRGVudmVyIENPIDgwMjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS0yNCAgIChoZXgpCQlaaGVqaWFuZyBCZWxsIFRlY2hub2xvZ3kgQ28uLGx0ZAorMDAxRTI0ICAgICAoYmFzZSAxNikJCVpoZWppYW5nIEJlbGwgVGVjaG5vbG9neSBDby4sbHRkCisJCQkJNiBYaWRvdW1lbiBSZC4gV2VzdCBMYWtlIGRpc3RyaWN0CisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworMDAtMUUtMjUgICAoaGV4KQkJSW50ZWsgRGlnaXRhbCBJbmMKKzAwMUUyNSAgICAgKGJhc2UgMTYpCQlJbnRlayBEaWdpdGFsIEluYworCQkJCTExMDEsIDExdGggRmwuLCBBbnlhbmcgSy1jZW50ZXIgYnVpbGRpbmcsIDE1OTEtOQorCQkJCUd3YW55YW5nLWRvbmcsIERvbmdhbi1ndQorCQkJCUFueWFuZyBHeWVvbmdnaS1kbyA0MzEtODE1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTI2ICAgKGhleCkJCURpZ2lmcmllbmRzIENvLiBMdGQKKzAwMUUyNiAgICAgKGJhc2UgMTYpCQlEaWdpZnJpZW5kcyBDby4gTHRkCisJCQkJSm95YW5nIEIvRCA2dGggRmxvb3IKKwkJCQkxMTMgU2Ftc3VuZy1kb25nLCBLYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS0wOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtMjcgICAoaGV4KQkJU0JOIFRFQ0ggQ28uLEx0ZC4KKzAwMUUyNyAgICAgKGJhc2UgMTYpCQlTQk4gVEVDSCBDby4sTHRkLgorCQkJCSM3MDYgSW5kdXN0cmlhbCBBY2FkZW1pYyBDZW50ZXIsIEtvbmt1ayBVbml2ZXJzaXR5LCBId2F5YW5nLWRvbmcsIEd3YW5namluLWd1CisJCQkJU2VvdWwgIDE0My03MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtMjggICAoaGV4KQkJTHVtZXhpcyBDb3Jwb3JhdGlvbgorMDAxRTI4ICAgICAoYmFzZSAxNikJCUx1bWV4aXMgQ29ycG9yYXRpb24KKwkJCQkzMTg0IEFpcndheSBBdmUgQmxkZyBECisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMjkgICAoaGV4KQkJSHlwZXJ0aGVybSBJbmMKKzAwMUUyOSAgICAgKGJhc2UgMTYpCQlIeXBlcnRoZXJtIEluYworCQkJCTE1IEdyZWF0IEhvbGxvdyBSZAorCQkJCVBPIEJveCA1MDEwCisJCQkJSGFub3ZlciBOSCAwMzc1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMkEgICAoaGV4KQkJTmV0Z2VhciBJbmMuCiswMDFFMkEgICAgIChiYXNlIDE2KQkJTmV0Z2VhciBJbmMuCisJCQkJNDUwMCBHcmVhdCBBbWVyaWNhIFBhcmt3YXkKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMkIgICAoaGV4KQkJUmFkaW8gU3lzdGVtcyBEZXNpZ24sIEluYy4KKzAwMUUyQiAgICAgKGJhc2UgMTYpCQlSYWRpbyBTeXN0ZW1zIERlc2lnbiwgSW5jLgorCQkJCTYwMSBIZXJvbiBEcml2ZQorCQkJCUxvZ2FuIFR3cCBOZXcgSmVyc2V5IDA4MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS0yQyAgIChoZXgpCQlDeVZlcnNlIENvcnBvcmF0aW9uCiswMDFFMkMgICAgIChiYXNlIDE2KQkJQ3lWZXJzZSBDb3Jwb3JhdGlvbgorCQkJCVNob3V0b3UgUm91a3ViYW5rYW4gQmxkZy4gNEYKKwkJCQkxLTI4LTQsIFNob3V0b3UKKwkJCQlTaGlidXlhLWt1IFRva3lvIDE1MC0wMDQ2CisJCQkJSkFQQU4KKworMDAtMUUtMkQgICAoaGV4KQkJU1RJTQorMDAxRTJEICAgICAoYmFzZSAxNikJCVNUSU0KKwkJCQlaQUMgbGVzIENPVVNURUxMSUVSUworCQkJCTYgUnVlIGRlIEwnQUJSSVZBRE8KKwkJCQlDQVNUUklFUyBIRVJBVUxUIDM0MTYwCisJCQkJRlJBTkNFCisKKzAwLTFFLTJFICAgKGhleCkJCVNJUlRJIFMucC5BLgorMDAxRTJFICAgICAoYmFzZSAxNikJCVNJUlRJIFMucC5BLgorCQkJCVZpYSBTdGFtaXJhIGQnQW5jb25hIDkKKwkJCQlNSUxBTiAgMjAxMjcKKwkJCQlJVEFMWQorCiswMC0xRS0yRiAgIChoZXgpCQlEaU1vdG8gUHR5IEx0ZAorMDAxRTJGICAgICAoYmFzZSAxNikJCURpTW90byBQdHkgTHRkCisJCQkJNyBNZWxqYXJlbiBQbGFjZQorCQkJCUJ1ZGVyaW0gUXVlZW5zbGFuZCA0NTU2CisJCQkJQVVTVFJBTElBCisKKzAwLTFFLTMwICAgKGhleCkJCVNoaXJlZW4gSW5jCiswMDFFMzAgICAgIChiYXNlIDE2KQkJU2hpcmVlbiBJbmMKKwkJCQk4NTMxIFppZ2d5IExhbmUKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTMxICAgKGhleCkJCUlORk9NQVJLIENPLixMVEQuCiswMDFFMzEgICAgIChiYXNlIDE2KQkJSU5GT01BUksgQ08uLExURC4KKwkJCQk1Ri4sR2Vvd24gQmxkZy4sMTM2MC01MworCQkJCVNlb3VsIFNlb2Noby1kb25nLFNlb2Noby1ndSAxMzctODYzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTMyICAgKGhleCkJCVplbnN5cworMDAxRTMyICAgICAoYmFzZSAxNikJCVplbnN5cworCQkJCUVtZHJ1cHZlaiAyNgorCQkJCUNvcGVuaGFnZW4gTyAgREstMjEwMAorCQkJCURFTk1BUksKKworMDAtMUUtMzMgICAoaGV4KQkJSW52ZW50ZWMgQ29ycG9yYXRpb24KKzAwMUUzMyAgICAgKGJhc2UgMTYpCQlJbnZlbnRlYyBDb3Jwb3JhdGlvbgorCQkJCUludmVudGVjIEJ1aWxkaW5nLCA2NiBIb3UtS2FuZyBTdHJlZXQKKwkJCQlTaGluLUxpbiBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS0zNCAgIChoZXgpCQlDcnlwdG9NZXRyaWNzCiswMDFFMzQgICAgIChiYXNlIDE2KQkJQ3J5cHRvTWV0cmljcworCQkJCTE2MCBNaWNoYWVsIENvd3BsYW5kIERyCisJCQkJT3R0YXdhIE9udGFyaW8gSzJNIDFQNgorCQkJCUNBTkFEQQorCiswMC0xRS0zNSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMUUzNSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyBLWU9UTyA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFFLTM2ICAgKGhleCkJCUlQVEUKKzAwMUUzNiAgICAgKGJhc2UgMTYpCQlJUFRFCisJCQkJR2VsZWVubGFhbiA1CisJCQkJR2VuayBMaW1idXJnIDM2MDAKKwkJCQlCRUxHSVVNCisKKzAwLTFFLTM3ICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAxRTM3ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTEFORSAzNTEsIFNFQy4xLFRBSVBJTkcgUkQuCisJCQkJVFNBT1RVRU4KKwkJCQlOQU5UT1UgNTQyNjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLTM4ICAgKGhleCkJCUJsdWVjYXJkIFNvZnR3YXJlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFFMzggICAgIChiYXNlIDE2KQkJQmx1ZWNhcmQgU29mdHdhcmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlELTgwMSBTaGFuZ2RpIFNjaWVuY2UgQnVpbGRpbmcKKwkJCQlOby44IFNoYW5nZGkgV2VzdCBSb2FkCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMUUtMzkgICAoaGV4KQkJQ29tc3lzIENvbW11bmljYXRpb24gTHRkLgorMDAxRTM5ICAgICAoYmFzZSAxNikJCUNvbXN5cyBDb21tdW5pY2F0aW9uIEx0ZC4KKwkJCQk5IEhhbWVub2ZpbSBzdC4KKwkJCQlIZXJ6ZWxpYSAgNDY3MjUKKwkJCQlJU1JBRUwKKworMDAtMUUtM0EgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUUzQSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRS0zQiAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRTNCICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRS0zQyAgIChoZXgpCQlMeW5nYm94IE1lZGlhIEFCCiswMDFFM0MgICAgIChiYXNlIDE2KQkJTHluZ2JveCBNZWRpYSBBQgorCQkJCURpc2tldHRnYXRhbiAxMUIKKwkJCQlMaW5rb3BpbmcgIFNFLTU4MzM1CisJCQkJU1dFREVOCisKKzAwLTFFLTNEICAgKGhleCkJCUFscHMgRWxlY3RyaWMgQ28uLCBMdGQKKzAwMUUzRCAgICAgKGJhc2UgMTYpCQlBbHBzIEVsZWN0cmljIENvLiwgTHRkCisJCQkJMS0yLTEsIE9raW5vdWNoaQorCQkJCVNvbWEgY2l0eSBGdWt1c2hpbS1wcmVmIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMUUtM0UgICAoaGV4KQkJS01XIEluYy4KKzAwMUUzRSAgICAgKGJhc2UgMTYpCQlLTVcgSW5jLgorCQkJCTY1IFlvdW5nY2h1bi1yaSwgRG9uZ3Rhbi1teXVuCisJCQkJSHdhc3VuZy1zaSBLeXVuZ2tpLWRvIDQ0NS04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtM0YgICAoaGV4KQkJVHJlbGxpc1dhcmUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDFFM0YgICAgIChiYXNlIDE2KQkJVHJlbGxpc1dhcmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTY1MTYgVmlhIEVzcHJpbGxvLCBTdWl0ZSAzMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTQwICAgKGhleCkJCVNoYW5naGFpIERhcmVHbG9iYWwgVGVjaG5vbG9naWVzICBDby4sTHRkLgorMDAxRTQwICAgICAoYmFzZSAxNikJCVNoYW5naGFpIERhcmVHbG9iYWwgVGVjaG5vbG9naWVzICBDby4sTHRkLgorCQkJCTIyRiwgbG5mbyBUZWNoIEJ1aWxkaW5nLCBOTy4xNTU1IEtvbmdqaWFuZyBSb2FkLAorCQkJCVNoYW5naGFpICAyMDAwOTIKKwkJCQlDSElOQQorCiswMC0xRS00MSAgIChoZXgpCQlNaWNyb3dhdmUgQ29tbXVuaWNhdGlvbiAmIENvbXBvbmVudCwgSW5jLgorMDAxRTQxICAgICAoYmFzZSAxNikJCU1pY3Jvd2F2ZSBDb21tdW5pY2F0aW9uICYgQ29tcG9uZW50LCBJbmMuCisJCQkJIzIwNCwgV09PTElNIExJT05gUyBWQUxMRVkgMiwgNjgwCisJCQkJR2FzYW4tRG9uZywgR2V1bWNob24tR1UKKwkJCQlTZW91bCAgMTUwLTc4NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS00MiAgIChoZXgpCQlUZWx0b25pa2EKKzAwMUU0MiAgICAgKGJhc2UgMTYpCQlUZWx0b25pa2EKKwkJCQlaaXJtdW51IDI3CisJCQkJVmlsbml1cyAgTFQgLSAwOTEwNQorCQkJCUxJVEhVQU5JQQorCiswMC0xRS00MyAgIChoZXgpCQlBSVNJTiBBVyBDTy4sTFRELgorMDAxRTQzICAgICAoYmFzZSAxNikJCUFJU0lOIEFXIENPLixMVEQuCisJCQkJNi0xOCBIQVJBWUFNQQorCQkJCU9LQS1DSE8KKwkJCQlPS0FaQUtJIEFJQ0hJIDQ0NC04NTY0CisJCQkJSkFQQU4KKworMDAtMUUtNDQgICAoaGV4KQkJU0FOVEVDCiswMDFFNDQgICAgIChiYXNlIDE2KQkJU0FOVEVDCisJCQkJQW4gZGVyIFN0cnVzYmVrIDMxCisJCQkJQWhyZW5zYnVyZyBTY2hsZXN3aWcgSG9sc3RlaW4gMjI5MjYKKwkJCQlHRVJNQU5ZCisKKzAwLTFFLTQ1ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDFFNDUgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworMDAtMUUtNDYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUU0NiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTQ3ICAgKGhleCkJCVBULiBIYXJpZmYgRGF5YSBUdW5nZ2FsIEVuZ2luZWVyaW5nCiswMDFFNDcgICAgIChiYXNlIDE2KQkJUFQuIEhhcmlmZiBEYXlhIFR1bmdnYWwgRW5naW5lZXJpbmcKKwkJCQlKbC4gU29la2Fybm8gSGF0dGEgTm8uIDQ1MAorCQkJCUJhbmR1bmcgSmF3YSBCYXJhdCA0MDI2NgorCQkJCUlORE9ORVNJQQorCiswMC0xRS00OCAgIChoZXgpCQlXaS1MaW5rcworMDAxRTQ4ICAgICAoYmFzZSAxNikJCVdpLUxpbmtzCisJCQkJMzMyIEF5aW91IHN0cmVldAorCQkJCUxpbWFzc29sICAzNzI1CisJCQkJQ1lQUlVTCisKKzAwLTFFLTQ5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUU0OSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS00QSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFFNEEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNEIgICAoaGV4KQkJQ2l0eSBUaGVhdHJpY2FsCiswMDFFNEIgICAgIChiYXNlIDE2KQkJQ2l0eSBUaGVhdHJpY2FsCisJCQkJNDc1IEJhcmVsbCBBdmUKKwkJCQlDYXJsc3RhZHQgTmV3IEplcnNleSAwNzA3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNEMgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLiwgTHRkLgorMDAxRTRDICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC5Dby4sIEx0ZC4KKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtNEQgICAoaGV4KQkJV2Vsa2luIFNjaWVuY2VzLCBMTEMKKzAwMUU0RCAgICAgKGJhc2UgMTYpCQlXZWxraW4gU2NpZW5jZXMsIExMQworCQkJCTEwMiBTLiBUZWpvbiBTdCwgU3VpdGUgMjAwCisJCQkJQ29sb3JhZG8gU3ByaW5ncyBDTyA4MDkwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNEUgICAoaGV4KQkJREFLTyBFRFYtSW5nZW5pZXVyLSB1bmQgU3lzdGVtaGF1cyBHbWJICiswMDFFNEUgICAgIChiYXNlIDE2KQkJREFLTyBFRFYtSW5nZW5pZXVyLSB1bmQgU3lzdGVtaGF1cyBHbWJICisJCQkJRXJuc3QtSGFlY2tlbC1QbGF0eiA1LzYKKwkJCQlKZW5hIFRodXJpbmdpYSAwNzc0NQorCQkJCUdFUk1BTlkKKworMDAtMUUtNEYgICAoaGV4KQkJRGVsbCBJbmMuCiswMDFFNEYgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS01MCAgIChoZXgpCQlCQVRUSVNUT05JIFJFU0VBUkNICiswMDFFNTAgICAgIChiYXNlIDE2KQkJQkFUVElTVE9OSSBSRVNFQVJDSAorCQkJCVBBUkNPIERPTklDQSA1NgorCQkJCUZJU0NJQU5PIFNBTEVSTk8gODQwODQKKwkJCQlJVEFMWQorCiswMC0xRS01MSAgIChoZXgpCQlDb252ZXJ0ZXIgSW5kdXN0cnkgU3JsCiswMDFFNTEgICAgIChiYXNlIDE2KQkJQ29udmVydGVyIEluZHVzdHJ5IFNybAorCQkJCVZpYSBFdWNsaWRlLCAxMgorCQkJCUZvcmxpJyBGQyA0NzEwMAorCQkJCUlUQUxZCisKKzAwLTFFLTUyICAgKGhleCkJCUFwcGxlIENvbXB1dGVyIEluYworMDAxRTUyICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDYWxpZm9ybmlhIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS01MyAgIChoZXgpCQlGdXJ0aGVyIFRlY2ggQ28uLCBMVEQKKzAwMUU1MyAgICAgKGJhc2UgMTYpCQlGdXJ0aGVyIFRlY2ggQ28uLCBMVEQKKwkJCQk4RixOTyA0MjEsIFN1bmdzaGFuIFJELixUYWlwZWksIFRhaXduLFIuTy5DLgorCQkJCVRhaXBlaSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS01NCAgIChoZXgpCQlUT1lPIEVMRUNUUklDIENvcnBvcmF0aW9uCiswMDFFNTQgICAgIChiYXNlIDE2KQkJVE9ZTyBFTEVDVFJJQyBDb3Jwb3JhdGlvbgorCQkJCTEtMzkgSElLSVNBV0EKKwkJCQlLQUdJWUEtQ0hPCisJCQkJS0FTVUdBSSBBSUNISSA0ODAtMDM5MworCQkJCUpBUEFOCisKKzAwLTFFLTU1ICAgKGhleCkJCUNPV09OIFNZU1RFTVMsSW5jLgorMDAxRTU1ICAgICAoYmFzZSAxNikJCUNPV09OIFNZU1RFTVMsSW5jLgorCQkJCTZ0aCBGbC4gQ09XT04gVE9XRVIsNjg5LTMsCisJCQkJWWVva3NhbS1Eb25nLEdhbmduYW0tR3UsCisJCQkJU2VvdWwgIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtNTYgICAoaGV4KQkJQmFsbHkgV3VsZmYgRW50ZXJ0YWlubWVudCBHbWJICiswMDFFNTYgICAgIChiYXNlIDE2KQkJQmFsbHkgV3VsZmYgRW50ZXJ0YWlubWVudCBHbWJICisJCQkJTWF5YmFjaHVmZXIgNDgtNTEKKwkJCQlCZXJsaW4gIDEyMDQ1CisJCQkJR0VSTUFOWQorCiswMC0xRS01NyAgIChoZXgpCQlBTENPTUEsIHNwb2wuIHMgci5vLgorMDAxRTU3ICAgICAoYmFzZSAxNikJCUFMQ09NQSwgc3BvbC4gcyByLm8uCisJCQkJS2x1a292aWNlIDMxMywgUHJhaGEgLSA1CisJCQkJUHJhaGEgIDE1MiAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTFFLTU4ICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxRTU4ICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5PLjI4OSwgU2luaHUgM3JkIFJkLiwKKwkJCQlOZWlodSBEaXN0cmljdCwgVGFpcGVpIENpdHkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS01OSAgIChoZXgpCQlTaWxpY29uIFR1cm5rZXkgRXhwcmVzcywgTExDCiswMDFFNTkgICAgIChiYXNlIDE2KQkJU2lsaWNvbiBUdXJua2V5IEV4cHJlc3MsIExMQworCQkJCTc0OSBNaW5lciBSb2FkCisJCQkJSGlnaGxhbmQgSGVpZ2h0cyBPaGlvIDQ0MTQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS01QSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxRTVBICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNUIgICAoaGV4KQkJVW5pdHJvbiBDb21wYW55LCBJbmMuCiswMDFFNUIgICAgIChiYXNlIDE2KQkJVW5pdHJvbiBDb21wYW55LCBJbmMuCisJCQkJMTA5MjUgTWlsbGVyIFJvYWQKKwkJCQlEYWxsYXMgVFggNzUyMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTVDICAgKGhleCkJCVJCIEdlbmVyYWxFa29ub21paworMDAxRTVDICAgICAoYmFzZSAxNikJCVJCIEdlbmVyYWxFa29ub21paworCQkJCUJ1bGV2YXIgZGVzcG90YSBzdGVmYW5hIDU5YQorCQkJCUJlb2dyYWQgU2VyYmlhIDExMDAwCisJCQkJWVVHT1NMQVZJQQorCiswMC0xRS01RCAgIChoZXgpCQlIb2xvc3lzIGQuby5vLgorMDAxRTVEICAgICAoYmFzZSAxNikJCUhvbG9zeXMgZC5vLm8uCisJCQkJTWF0aWplIEd1cGNhIDcKKwkJCQlPcm9zbGF2amUgIDQ5MjQzCisJCQkJQ1JPQVRJQQorCiswMC0xRS01RSAgIChoZXgpCQlDT21wdXRpbWUgTHRkLgorMDAxRTVFICAgICAoYmFzZSAxNikJCUNPbXB1dGltZSBMdGQuCisJCQkJMTcvRiBHcmVhdCBFYWdsZSBDZW50cmUKKwkJCQkyMyBIYXJib3VyIFJvYWQKKwkJCQlXYW5jaGFpICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUUtNUYgICAoaGV4KQkJS3dpa0J5dGUsIExMQworMDAxRTVGICAgICAoYmFzZSAxNikJCUt3aWtCeXRlLCBMTEMKKwkJCQkyNDMwIFcuIDEydGggU3RyZWV0CisJCQkJVGVtcGUgQVogODUyODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTYwICAgKGhleCkJCURpZ2l0YWwgTGlnaHRpbmcgU3lzdGVtcywgSW5jCiswMDFFNjAgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBMaWdodGluZyBTeXN0ZW1zLCBJbmMKKwkJCQkxMjMwMiBTdyAxMjh0aCBjdCwgICAjMTA1CisJCQkJTWlhbWkgRkwgMzMxODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTYxICAgKGhleCkJCUlURUMgR21iSAorMDAxRTYxICAgICAoYmFzZSAxNikJCUlURUMgR21iSAorCQkJCUxhc3NuaXR6dGhhbCAzMDAKKwkJCQlBLTgyMDAgIEdsZWlzZG9yZgorCQkJCUFVU1RSSUEKKworMDAtMUUtNjIgICAoaGV4KQkJU2llbW9uCiswMDFFNjIgICAgIChiYXNlIDE2KQkJU2llbW9uCisJCQkJMjcgU2llbW9uIENvbXBhbnkgRHJpdmUKKwkJCQlXYXRlcnRvd24gQ1QgMDY3OTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTYzICAgKGhleCkJCVZpYnJvLU1ldGVyIFNBCiswMDFFNjMgICAgIChiYXNlIDE2KQkJVmlicm8tTWV0ZXIgU0EKKwkJCQlSb3V0ZSBkZSBNb25jb3IgNAorCQkJCUZyaWJvdXJnICBDSC0xNzAxCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUUtNjQgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDFFNjQgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xRS02NSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMUU2NSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFFLTY2ICAgKGhleCkJCVJFU09MIEVsZWt0cm9uaXNjaGUgUmVnZWx1bmdlbiBHbWJICiswMDFFNjYgICAgIChiYXNlIDE2KQkJUkVTT0wgRWxla3Ryb25pc2NoZSBSZWdlbHVuZ2VuIEdtYkgKKwkJCQlIZWlza2FtcHN0ci4gMTAKKwkJCQlIYXR0aW5nZW4gTlJXIDQ1NTI3CisJCQkJR0VSTUFOWQorCiswMC0xRS02NyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMUU2NyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFFLTY4ICAgKGhleCkJCVF1YW50YSBDb21wdXRlcgorMDAxRTY4ICAgICAoYmFzZSAxNikJCVF1YW50YSBDb21wdXRlcgorCQkJCU5PLiAyMTEsIFdFTiBIV0EgMlJELiwgS1VFSSBTSEFOIEhTSUFORworCQkJCVRBSVBFSSBUQU8gWVVBTiBTSElFTiAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLTY5ICAgKGhleCkJCVRob21zb24gSW5jLgorMDAxRTY5ICAgICAoYmFzZSAxNikJCVRob21zb24gSW5jLgorCQkJCTEwMSBXZXN0LiAxMDNyZCBTdHJlZXQKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTZBICAgKGhleCkJCUJlaWppbmcgQmx1ZXhvbiBUZWNobm9sb2d5IENvLixMdGQKKzAwMUU2QSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEJsdWV4b24gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJSmlucWl1emhpY2h1biA3LTMwMSxaaGljaHVuIFJkLiwKKwkJCQlIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg4CisJCQkJQ0hJTkEKKworMDAtMUUtNkIgICAoaGV4KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBBIENpc2NvIENvbXBhbnkKKzAwMUU2QiAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIEF0bGFudGEsIEEgQ2lzY28gQ29tcGFueQorCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS02QyAgIChoZXgpCQlDYXJib24gTW91bnRhaW4gTExDCiswMDFFNkMgICAgIChiYXNlIDE2KQkJQ2FyYm9uIE1vdW50YWluIExMQworCQkJCTQ4MjAgRmlzaGVyIFJvYWQKKwkJCQlBdGhlbnMgT0ggNDU3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTZEICAgKGhleCkJCUlUIFImRCBDZW50ZXIKKzAwMUU2RCAgICAgKGJhc2UgMTYpCQlJVCBSJkQgQ2VudGVyCisJCQkJNDYxLTI1LCBKZW9ubWluLWRvbmcsWXVzZW9uZy1HdQorCQkJCURhZWplb24gIDMwNS04MTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtNkUgICAoaGV4KQkJU2hlbnpoZW4gRmlyc3QgTWlsZSBDb21tdW5pY2F0aW9ucyBMdGQKKzAwMUU2RSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBGaXJzdCBNaWxlIENvbW11bmljYXRpb25zIEx0ZAorCQkJCTV0aCBGbG9vciwgQmxvY2sgUjMtQQorCQkJCUhpZ2gtVGVjaCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMUUtNkYgICAoaGV4KQkJTWFnbmEtUG93ZXIgRWxlY3Ryb25pY3MsIEluYy4KKzAwMUU2RiAgICAgKGJhc2UgMTYpCQlNYWduYS1Qb3dlciBFbGVjdHJvbmljcywgSW5jLgorCQkJCTM5IFJveWFsIFJvYWQKKwkJCQlGbGVtaW5ndG9uIE5KIDA4ODIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS03MCAgIChoZXgpCQlDb2JoYW0gRGVmZW5jZSBDb21tdW5pY2F0aW9ucyBMdGQKKzAwMUU3MCAgICAgKGJhc2UgMTYpCQlDb2JoYW0gRGVmZW5jZSBDb21tdW5pY2F0aW9ucyBMdGQKKwkJCQlIYXNsaW5nZGVuIFJvYWQKKwkJCQlCbGFja2J1cm4gTGFuY2FzaGlyZSBCQjEgMkVFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUUtNzEgICAoaGV4KQkJSWdlYUNhcmUgU3lzdGVtcyBJbmMuCiswMDFFNzEgICAgIChiYXNlIDE2KQkJSWdlYUNhcmUgU3lzdGVtcyBJbmMuCisJCQkJOTEgR3JhbnRvbiBEcml2ZQorCQkJCVJpY2htb25kIEhpbGwgT250YXJpbyBMNEIgMk41CisJCQkJQ0FOQURBCisKKzAwLTFFLTcyICAgKGhleCkJCVBDUworMDAxRTcyICAgICAoYmFzZSAxNikJCVBDUworCQkJCVJVRSBTQUlOVCBFWFVQRVJZCisJCQkJQlA3MDMyMgorCQkJCUxFU0NBUiBQWVJFTkVFUyBBVExBTlRJUVVFUyA2NDIzMAorCQkJCUZSQU5DRQorCiswMC0xRS03MyAgIChoZXgpCQlaVEUgQ09SUE9SQVRJT04KKzAwMUU3MyAgICAgKGJhc2UgMTYpCQlaVEUgQ09SUE9SQVRJT04KKwkJCQkxMi9GIFpURSBQbGF6YSxLZWppIFJvYWQgU291dGgsSGktVGVjaCBJbmR1c3RyaWFsIFBhcmssTmFuc2hhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHVUFOR0RPTkcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMUUtNzQgICAoaGV4KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorMDAxRTc0ICAgICAoYmFzZSAxNikJCVNBR0VNIENPTU1VTklDQVRJT04KKwkJCQkxNCBSdWUgUGF1bCBEYXV0aWVyCisJCQkJVmVsaXp5ICA3ODQ1NworCQkJCUZSQU5DRQorCiswMC0xRS03NSAgIChoZXgpCQlMRyBFbGVjdHJvbmljcworMDAxRTc1ICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzCisJCQkJNjAtMzksS2FzYW4tZG9uZyxLdW1jaG9uLWt1CisJCQkJU2VvdWwgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtNzYgICAoaGV4KQkJVGhlcm1vIEZpc2hlciBTY2llbnRpZmljCiswMDFFNzYgICAgIChiYXNlIDE2KQkJVGhlcm1vIEZpc2hlciBTY2llbnRpZmljCisJCQkJMjIxNSBHcmFuZCBBdmVudWUgUGFya3dheQorCQkJCUF1c3RpbiBUZXhhcyA3ODcyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNzcgICAoaGV4KQkJQWlyMkFwcAorMDAxRTc3ICAgICAoYmFzZSAxNikJCUFpcjJBcHAKKwkJCQk1MCBPbGQgRm9yZ2UgUmQKKwkJCQlIYW5vdmVyIE1BIDAyMzM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS03OCAgIChoZXgpCQlPd2l0ZWsgVGVjaG5vbG9neSBMdGQuLAorMDAxRTc4ICAgICAoYmFzZSAxNikJCU93aXRlayBUZWNobm9sb2d5IEx0ZC4sCisJCQkJTm8uMiwgTGFuZSA3OCwgQ2luZ3NoYW4gNnRoIFN0LiwKKwkJCQlZYW5nbWVpIFRvd25zaGlwLAorCQkJCVRhb3l1YW4gQ291bnR5ICAzMjY1NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtNzkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRTc5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTdBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUU3QSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS03QiAgIChoZXgpCQlSLkkuQ08uIFMuci5sLgorMDAxRTdCICAgICAoYmFzZSAxNikJCVIuSS5DTy4gUy5yLmwuCisJCQkJdmlhIEFkcmlhdGljYSwgMTcKKwkJCQlDYXN0ZWxmaWRhcmRvIEFOIDYwMDIyCisJCQkJSVRBTFkKKworMDAtMUUtN0MgICAoaGV4KQkJVGFpd2ljayBMaW1pdGVkCiswMDFFN0MgICAgIChiYXNlIDE2KQkJVGFpd2ljayBMaW1pdGVkCisJCQkJNS9GLiwgQmxvY2sgRSwgSGluZyBZaXAgRmFjdG9yeSBCbGRnLiwKKwkJCQkzMSBIaW5nIFlpcCBTdHJlZXQuLCBLd3VuIFRvbmcsIEtsbi4sIEhLLgorCQkJCUNoaW5hIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xRS03RCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzAwMUU3RCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtN0UgICAoaGV4KQkJTm9ydGVsCiswMDFFN0UgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTFFLTdGICAgKGhleCkJCUNCTSBvZiBBbWVyaWNhCiswMDFFN0YgICAgIChiYXNlIDE2KQkJQ0JNIG9mIEFtZXJpY2EKKwkJCQkxNDU1IFdlc3QgTmV3cG9ydCBDZW50ZXIgRHJpdmUKKwkJCQlEZWVyZmllbGQgQmVhY2ggRmxvcmlkYSAzMzQ0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtODAgICAoaGV4KQkJTGFzdCBNaWxlIEx0ZC4KKzAwMUU4MCAgICAgKGJhc2UgMTYpCQlMYXN0IE1pbGUgTHRkLgorCQkJCTEyL0YgVklQIENvbW1lcmNpYWwgQ2VudHJlCisJCQkJMTIwIENhbnRvbiBSb2FkCisJCQkJVHNpbXNoYXRzdWkgIAorCQkJCUhPTkcgS09ORworCiswMC0xRS04MSAgIChoZXgpCQlDTkIgVGVjaG5vbG9neSBJbmMuCiswMDFFODEgICAgIChiYXNlIDE2KQkJQ05CIFRlY2hub2xvZ3kgSW5jLgorCQkJCSM3MDEgU3RhciBWYWxsZXksIDYwLTExIEdhc2FuLURvbmcsCisJCQkJR2V1bWNoZW9uLUd1CisJCQkJU2VvdWwgIDE1Mzc3NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS04MiAgIChoZXgpCQlQbGlhbnQgVGVjaG5vbG9neSwgSW5jLgorMDAxRTgyICAgICAoYmFzZSAxNikJCVBsaWFudCBUZWNobm9sb2d5LCBJbmMuCisJCQkJNjMwIEFsZGVyIERyaXZlLAorCQkJCVN1aXRlIDIwMgorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS04MyAgIChoZXgpCQlMQU4vTUFOIFN0YW5kYXJkcyBBc3NvY2lhdGlvbiAoTE1TQykKKzAwMUU4MyAgICAgKGJhc2UgMTYpCQlMQU4vTUFOIFN0YW5kYXJkcyBBc3NvY2lhdGlvbiAoTE1TQykKKwkJCQlDL08gSUVFRSBTdGFuZGFyZHMgQXNzb2NpYXRpb24KKwkJCQk0NDUgSG9lcyBMYW5lLAorCQkJCVBpc2NhdGF3YXkgTkogMDg4NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTg0ICAgKGhleCkJCVBpa2EgVGVjaG5vbG9naWVzIEluYy4KKzAwMUU4NCAgICAgKGJhc2UgMTYpCQlQaWthIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNTM1IExlZ2dldCBEcml2ZQorCQkJCVN1aXRlIDQwMAorCQkJCU90dGF3YSBPbnRhcmlvIEsySyAzQjgKKwkJCQlDQU5BREEKKworMDAtMUUtODUgICAoaGV4KQkJTGFnb3RlayBDb3Jwb3JhdGlvbgorMDAxRTg1ICAgICAoYmFzZSAxNikJCUxhZ290ZWsgQ29ycG9yYXRpb24KKwkJCQkxMTY2MSBTRSAxc3QgU3QuICMyMDgKKwkJCQlCZWxsZXZ1ZSBXQSA5ODAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtODYgICAoaGV4KQkJTUVMIENvLixMdGQuCiswMDFFODYgICAgIChiYXNlIDE2KQkJTUVMIENvLixMdGQuCisJCQkJVHN1a2Fnb3NoaSA1LTUtMSxXYXJhYmktc2hpLFNhaXRhbWEsSmFwbmEKKwkJCQlXYXJhYmkgU2FpdGFtYSAzMzUtMDAwMgorCQkJCUpBUEFOCisKKzAwLTFFLTg3ICAgKGhleCkJCVJlYWxlYXNlIExpbWl0ZWQKKzAwMUU4NyAgICAgKGJhc2UgMTYpCQlSZWFsZWFzZSBMaW1pdGVkCisJCQkJMTUvRiwgTW9ycmlzb24gQ29tbWVyY2lhbCBCdWlsZGluZworCQkJCTMxIE1vcnJpc29uIEhpbGwgUm9hZAorCQkJCVdhbkNoYWkgIAorCQkJCUhPTkcgS09ORworCiswMC0xRS04OCAgIChoZXgpCQlBTkRPUiBTWVNURU0gU1VQUE9SVCBDTy4sIExURC4KKzAwMUU4OCAgICAgKGJhc2UgMTYpCQlBTkRPUiBTWVNURU0gU1VQUE9SVCBDTy4sIExURC4KKwkJCQlNaW5hbWktU2hpbmFnYXdhIDItMTUtOAorCQkJCVNpbmFnYXdhIFRva3lvIDE0MC0wMDA0CisJCQkJSkFQQU4KKworMDAtMUUtODkgICAoaGV4KQkJQ1JGUyBMaW1pdGVkCiswMDFFODkgICAgIChiYXNlIDE2KQkJQ1JGUyBMaW1pdGVkCisJCQkJQnVpbGRpbmcgNzIwMAorCQkJCUNhbWJyaWRnZSBSZXNlYXJjaCBQYXJrCisJCQkJV2F0ZXJiZWFjaCBDYW1icmlkZ2VzaGlyZSBDQjI1IDlUTAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFFLThBICAgKGhleCkJCWVDb3B5LCBJbmMKKzAwMUU4QSAgICAgKGJhc2UgMTYpCQllQ29weSwgSW5jCisJCQkJMSBPcmFjbGUgRHIKKwkJCQlOYXNodWEgTkggMDMwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLThCICAgKGhleCkJCUluZnJhIEFjY2VzcyBLb3JlYSBDby4sIEx0ZC4KKzAwMUU4QiAgICAgKGJhc2UgMTYpCQlJbmZyYSBBY2Nlc3MgS29yZWEgQ28uLCBMdGQuCisJCQkJOUYgRGFleWFuZyBCL0QsCisJCQkJNzM1LTExIEJvbmdjaHVuIDFkb25nLAorCQkJCUt3YW5hay1ndSwgU2VvdWwgMTUxLTgzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS04QyAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMUU4QyAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLThEICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDFFOEQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gVVMgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSWxsaW5vaXMgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLThFICAgKGhleCkJCUh1bmtlbGVyIEFHCiswMDFFOEUgICAgIChiYXNlIDE2KQkJSHVua2VsZXIgQUcKKwkJCQlCYWhuaG9mc3RyYXNzZSAzMQorCQkJCVdpa29uIENIIDQ4MDYKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xRS04RiAgIChoZXgpCQlDQU5PTiBJTkMuCiswMDFFOEYgICAgIChiYXNlIDE2KQkJQ0FOT04gSU5DLgorCQkJCTMtMzAtMgorCQkJCVNoaW1vbWFydWtvCisJCQkJT2h0YS1LdSBUb2t5byAxNDYtODUwMQorCQkJCUpBUEFOCisKKzAwLTFFLTkwICAgKGhleCkJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtcyBDbworMDAxRTkwICAgICAoYmFzZSAxNikJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtcyBDbworCQkJCU5vLjIzOSwgU2VjLiAyLCBUaSBEaW5nIEJsdmQKKwkJCQlUYWlwZWkgIDExNDkzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS05MSAgIChoZXgpCQlLSU1JTiBFbGVjdHJvbmljIENvLiwgTHRkLgorMDAxRTkxICAgICAoYmFzZSAxNikJCUtJTUlOIEVsZWN0cm9uaWMgQ28uLCBMdGQuCisJCQkJMjkzLTQsIERvbmdkYW4tRG9uZworCQkJCUd1bWktY2l0eSBHeWVvbmdCdWsgNzMwLTkwNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS05MiAgIChoZXgpCQlKRVVMSU4gUy5BLgorMDAxRTkyICAgICAoYmFzZSAxNikJCUpFVUxJTiBTLkEuCisJCQkJWkkgTj8xCisJCQkJcnVlIEphY3F1ZXMgTW9ub2QKKwkJCQlFdnJldXggIEYyNzAxOQorCQkJCUZSQU5DRQorCiswMC0xRS05MyAgIChoZXgpCQlDaXJpVGVjaCBTeXN0ZW1zIEluYworMDAxRTkzICAgICAoYmFzZSAxNikJCUNpcmlUZWNoIFN5c3RlbXMgSW5jCisJCQkJOTIwIEhpbGx2aWV3IEN0CisJCQkJIzE3MAorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS05NCAgIChoZXgpCQlTVVBFUkNPTSBURUNITk9MT0dZIENPUlBPUkFUSU9OCiswMDFFOTQgICAgIChiYXNlIDE2KQkJU1VQRVJDT00gVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCThGLCBOTyAxMDAtMSwgTWluZy1DaHVhbiBSZC4KKwkJCQlTaGluZyBUaWVuIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLTk1ICAgKGhleCkJCVNJR01BTElOSworMDAxRTk1ICAgICAoYmFzZSAxNikJCVNJR01BTElOSworCQkJCURvb1NhbiBWZW50dXJlRGlnbSAxMDI4LAorCQkJCTEyNi0xIFB5dW5nY2hvbi1kb25nLCBEb25nYW4tS3UKKwkJCQlBbnlhbmctQ2l0eSBLeXVuZ2dpLWRvIDQzMS0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtOTYgICAoaGV4KQkJU2VwdXJhIFBsYworMDAxRTk2ICAgICAoYmFzZSAxNikJCVNlcHVyYSBQbGMKKwkJCQlSYWRpbyBIb3VzZQorCQkJCVN0IEFuZHJld3MgUm9hZAorCQkJCUNhbWJyaWRnZSBDQU1CUklER0VTSElSRSBDQjQgMUdSCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUUtOTcgICAoaGV4KQkJTWVkaXVtIExpbmsgU3lzdGVtIFRlY2hub2xvZ3kgQ08uLCBMVEQsCiswMDFFOTcgICAgIChiYXNlIDE2KQkJTWVkaXVtIExpbmsgU3lzdGVtIFRlY2hub2xvZ3kgQ08uLCBMVEQsCisJCQkJMTFGLi0yLCBOby43LCBBbGxleSA5MiwgTGFuZSA3NywgU2VjLiA0LCBTaW5oYWkgUmQuLAorCQkJCVd1bnNoYW4gRGlzdHJpY3QsIFRhaXBlaSAxMTY5MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtOTggICAoaGV4KQkJR3JlZW5MaW5lIENvbW11bmljYXRpb25zCiswMDFFOTggICAgIChiYXNlIDE2KQkJR3JlZW5MaW5lIENvbW11bmljYXRpb25zCisJCQkJQWxyYWJpYWgsIEFscmFiZWVhIHN0cmVldAorCQkJCUJ1aWxkaW5nIDgsIFAuTy4gQm94IDkyMQorCQkJCUFtbWFuIENlbnRyYWwgUmVnaW9uIDExOTUzCisJCQkJSk9SREFOCisKKzAwLTFFLTk5ICAgKGhleCkJCVZhbnRhbm9sIEluZHVzdHJpYWwgQ29ycG9yYXRpb24KKzAwMUU5OSAgICAgKGJhc2UgMTYpCQlWYW50YW5vbCBJbmR1c3RyaWFsIENvcnBvcmF0aW9uCisJCQkJOUYsIE5PIDMxIC4gU2hpbi1UYWkgUm9hZAorCQkJCUp1YmVpIENpdHkgU2hpbmNodSAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLTlBICAgKGhleCkJCUhBTUlMVE9OIEJvbmFkdXogQUcKKzAwMUU5QSAgICAgKGJhc2UgMTYpCQlIQU1JTFRPTiBCb25hZHV6IEFHCisJCQkJVmlhIENydXNjaCA4CisJCQkJQm9uYWR1eiBHcmF1YnVlbmRlbiA3NDAyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUUtOUIgICAoaGV4KQkJU2FuLUVpc2hhLCBMdGQuCiswMDFFOUIgICAgIChiYXNlIDE2KQkJU2FuLUVpc2hhLCBMdGQuCisJCQkJMi0xIEViYXJhIDUtY2hvbWUKKwkJCQlTaGluYWdhd2Eta3UgVG9reW8gMTQyLTg2MTEKKwkJCQlKQVBBTgorCiswMC0xRS05QyAgIChoZXgpCQlGaWR1c3Ryb24gSU5DCiswMDFFOUMgICAgIChiYXNlIDE2KQkJRmlkdXN0cm9uIElOQworCQkJCU5PLjc3MC02LCBKaG9uZ2loZW5nIFJkLgorCQkJCUpob25naGUgQ2l0eSBUYWlwZWkgQ291bnR5IDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtOUQgICAoaGV4KQkJUmVjYWxsIFRlY2hub2xvZ2llcywgSW5jLgorMDAxRTlEICAgICAoYmFzZSAxNikJCVJlY2FsbCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMzAgRW50ZXJwcmlzZSBBdmUuCisJCQkJU3VpdGUgRgorCQkJCVBhbG0gQmF5IEZMIDMyOTA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS05RSAgIChoZXgpCQlkZG0gaG9wdCArIHNjaHVsZXIgR21iaCArIENvLiBLRworMDAxRTlFICAgICAoYmFzZSAxNikJCWRkbSBob3B0ICsgc2NodWxlciBHbWJoICsgQ28uIEtHCisJCQkJS29lbmlnc2JlcmdlciBTdHJhc3NlIDEyCisJCQkJUm90dHdlaWwgQmFkZW4tV3VlcnR0ZW1iZXJnIDc4NjI2CisJCQkJR0VSTUFOWQorCiswMC0xRS05RiAgIChoZXgpCQlWaXNpb25lZXJpbmcgU3lzdGVtcywgSW5jLgorMDAxRTlGICAgICAoYmFzZSAxNikJCVZpc2lvbmVlcmluZyBTeXN0ZW1zLCBJbmMuCisJCQkJNTkzMSBTZWEgTGlvbiBQbGFjZQorCQkJCVN1aXRlIDEwOQorCQkJCUNhcmxzYmFkIENhbGlmb3JuaWEgOTIwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUEwICAgKGhleCkJCVhMTi10CiswMDFFQTAgICAgIChiYXNlIDE2KQkJWExOLXQKKwkJCQlIb29nc3RyYWF0IDUyCisJCQkJUHV0dGUgQW50d2VycCBCMjU4MAorCQkJCUJFTEdJVU0KKworMDAtMUUtQTEgICAoaGV4KQkJQnJ1bmF0YSBhL3MKKzAwMUVBMSAgICAgKGJhc2UgMTYpCQlCcnVuYXRhIGEvcworCQkJCVZlc3Rlcmx1bmR2ZWogMTQKKwkJCQlIZXJsZXYgIDI3MzAKKwkJCQlERU5NQVJLCisKKzAwLTFFLUEyICAgKGhleCkJCVN5bXggU3lzdGVtcywgSW5jLgorMDAxRUEyICAgICAoYmFzZSAxNikJCVN5bXggU3lzdGVtcywgSW5jLgorCQkJCTYzMjAgTlcgODR0aCBBdmVudWUKKwkJCQlNaWFtaSBGbG9yaWRhIDMzMTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1BMyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRUEzICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRS1BNCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRUE0ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRS1BNSAgIChoZXgpCQlST0JPVE9VUywgSW5jLgorMDAxRUE1ICAgICAoYmFzZSAxNikJCVJPQk9UT1VTLCBJbmMuCisJCQkJTmV4IENlbnRlci0yMDEoTGFiLiksIFNLIG4gVGVjaG5vcGFyaworCQkJCVNhbmdkYWV3b24tZG9uZywgSnVuZ3dvbi1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2Mi0xMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtQTYgICAoaGV4KQkJQmVzdCBJVCBXb3JsZCAoSW5kaWEpIFB2dC4gTHRkLgorMDAxRUE2ICAgICAoYmFzZSAxNikJCUJlc3QgSVQgV29ybGQgKEluZGlhKSBQdnQuIEx0ZC4KKwkJCQk4Ny83MC85MyBNaXN0cnkgSW5kdXN0cmlhbCBDb21wbGV4LAorCQkJCU1JREMgQ3Jvc3MgUm9hZCAnQScsIEFuZGhlcmkgKEVhc3QpCisJCQkJTXVtYmFpIE1haGFyYXNodHJhIDQwMDA5MworCQkJCUlORElBCisKKzAwLTFFLUE3ICAgKGhleCkJCUFjdGlvblRlYyBFbGVjdHJvbmljcywgSW5jCiswMDFFQTcgICAgIChiYXNlIDE2KQkJQWN0aW9uVGVjIEVsZWN0cm9uaWNzLCBJbmMKKwkJCQk3NjAgTm9ydGggTWFyeSBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUE4ICAgKGhleCkJCURhdGFuZyBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgRXF1aXBtZW50IENPLixMVEQKKzAwMUVBOCAgICAgKGJhc2UgMTYpCQlEYXRhbmcgTW9iaWxlIENvbW11bmljYXRpb25zIEVxdWlwbWVudCBDTy4sTFRECisJCQkJTm8uMjksWHVleXVhbiBSZC4sSGFpZGlhbiBEaXN0cmljdCxCZWlqaW5nLDEwMDA4MyBQLlIuQ2hpbmEKKwkJCQlCZWlqaW5nICAxMDAwODMKKwkJCQlDSElOQQorCiswMC0xRS1BOSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMUVBOSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyBLWU9UTyA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFFLUFBICAgKGhleCkJCUUtU2VuemEgVGVjaG5vbG9naWVzIEdtYkgKKzAwMUVBQSAgICAgKGJhc2UgMTYpCQlFLVNlbnphIFRlY2hub2xvZ2llcyBHbWJICisJCQkJQmxhcmVyc3RyYXNzZSA1NgorCQkJCUtvbnN0YW56IEJXIDc4NDYyCisJCQkJR0VSTUFOWQorCiswMC0xRS1BQiAgIChoZXgpCQlUZWxlV2VsbCBPeQorMDAxRUFCICAgICAoYmFzZSAxNikJCVRlbGVXZWxsIE95CisJCQkJQWxhaG90aWUgMTQgYgorCQkJCUphcnZlbnBhYSBVdXNpbWFhIDA0NDMwCisJCQkJRklOTEFORAorCiswMC0xRS1BQyAgIChoZXgpCQlBcm1hZGV1cyBTeXN0ZW1zCiswMDFFQUMgICAgIChiYXNlIDE2KQkJQXJtYWRldXMgU3lzdGVtcworCQkJCVRlY2hub3BvbGUgLSAgNDAsIHJ1ZSBNYXJjIFNlZ3VpbgorCQkJCUJQIDIxMTgKKwkJCQlNVUxIT1VTRSBjZWRleCBIYXV0LVJoaW4gNjgwNjAKKwkJCQlGUkFOQ0UKKworMDAtMUUtQUQgICAoaGV4KQkJV2luZ3RlY2ggR3JvdXAgTGltaXRlZAorMDAxRUFEICAgICAoYmFzZSAxNikJCVdpbmd0ZWNoIEdyb3VwIExpbWl0ZWQKKwkJCQk2dGggZmxvb3IsIFVuaXQgRywgTm8uNjY4LCBFYXN0IEJlaWppbmcgUm9hZCwKKwkJCQlTaGFuZ2hhaSAgMjAwMDAxCisJCQkJQ0hJTkEKKworMDAtMUUtQUUgICAoaGV4KQkJQ29udGluZW50YWwgQXV0b21vdGl2ZSBTeXN0ZW1zCiswMDFFQUUgICAgIChiYXNlIDE2KQkJQ29udGluZW50YWwgQXV0b21vdGl2ZSBTeXN0ZW1zCisJCQkJMjE0NDAgV2VzdCBMYWtlIENvb2sgUm9hZAorCQkJCURlZXIgUGFyayBJTCA2MDAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtQUYgICAoaGV4KQkJT3BoaXIgT3B0cm9uaWNzIEx0ZAorMDAxRUFGICAgICAoYmFzZSAxNikJCU9waGlyIE9wdHJvbmljcyBMdGQKKwkJCQlQT0IgNDUwMjEKKwkJCQlKZXJ1c2FsZW0gIDkxNDUwCisJCQkJSVNSQUVMCisKKzAwLTFFLUIwICAgKGhleCkJCUltZXNEIEVsZWN0cm9uaWNhIFMuTC4KKzAwMUVCMCAgICAgKGJhc2UgMTYpCQlJbWVzRCBFbGVjdHJvbmljYSBTLkwuCisJCQkJRW50ZW5jYSA4MQorCQkJCUJhcmNlbG9uYSAgMDgwMTUKKwkJCQlTUEFJTgorCiswMC0xRS1CMSAgIChoZXgpCQlDcnlwdHNvZnQgUHR5IEx0ZAorMDAxRUIxICAgICAoYmFzZSAxNikJCUNyeXB0c29mdCBQdHkgTHRkCisJCQkJUC5PLiBCb3ggNjM4OQorCQkJCUZhaXJmaWVsZCBHYXJkZW5zIFF1ZWVuc2xhbmQgNDEwMworCQkJCUFVU1RSQUxJQQorCiswMC0xRS1CMiAgIChoZXgpCQlMRyBpbm5vdGVrCiswMDFFQjIgICAgIChiYXNlIDE2KQkJTEcgaW5ub3RlaworCQkJCUhhbnlhbmcgVW5pdi4gMTI3MSwgU2EtZG9uZywgU2FuZ3Jvay1ndQorCQkJCUFuc2FuLXNpIEd5ZW9uZ2dpLWRvIDQyNi03OTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtQjMgICAoaGV4KQkJUHJpbWV4IFdpcmVsZXNzCiswMDFFQjMgICAgIChiYXNlIDE2KQkJUHJpbWV4IFdpcmVsZXNzCisJCQkJOTY1IFdlbGxzIFN0cmVldAorCQkJCUxha2UgR2VuZXZhIFdJIDUzMTQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1CNCAgIChoZXgpCQlVTklGQVQgVEVDSE5PTE9HWSBMVEQuCiswMDFFQjQgICAgIChiYXNlIDE2KQkJVU5JRkFUIFRFQ0hOT0xPR1kgTFRELgorCQkJCTcvRkxPT1IgU1VJIEhPTkcgSU5ELiBCTERHLiwKKwkJCQk1NDctNTQ5IENBU1RMRSBQRUFLIFJPQUQKKwkJCQlLV0FJIENIVU5HLCBOLlQuIAorCQkJCUhPTkcgS09ORworCiswMC0xRS1CNSAgIChoZXgpCQlFdmVyIFNwYXJrbGUgVGVjaG5vbG9naWVzIEx0ZAorMDAxRUI1ICAgICAoYmFzZSAxNikJCUV2ZXIgU3BhcmtsZSBUZWNobm9sb2dpZXMgTHRkCisJCQkJVW5pdCA0MDMsIE5hbiBGdW5nIENvbW1lcmNpYWwgQ2VudHJlCisJCQkJMTksIExhbSBMb2sgU3QuCisJCQkJS293bG9vbiBCYXkgS293bG9vbiAKKwkJCQlIT05HIEtPTkcKKworMDAtMUUtQjYgICAoaGV4KQkJVEFHIEhldWVyIFNBCiswMDFFQjYgICAgIChiYXNlIDE2KQkJVEFHIEhldWVyIFNBCisJCQkJUnVlIExvdWlzLUpvc2VwaCBDaGV2cm9sZXQgNkEKKwkJCQlsYSBDaGF1eC1kZS1Gb25kcyBORSAyMzAwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUUtQjcgICAoaGV4KQkJVEJUZWNoLCBDby4sIEx0ZC4KKzAwMUVCNyAgICAgKGJhc2UgMTYpCQlUQlRlY2gsIENvLiwgTHRkLgorCQkJCTExMDksIEh5dW5kYWkgS3JpbSwgMTMzMC0xOCwgU2VvY2hvLWRvbmcsCisJCQkJU2VvY2hvLUd1LAorCQkJCVNlb3VsICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLUI4ICAgKGhleCkJCUZvcnRpcywgSW5jLgorMDAxRUI4ICAgICAoYmFzZSAxNikJCUZvcnRpcywgSW5jLgorCQkJCSM1MDIgVGVjaG5vIHBsYXphLCAxNDktMTAgWWF0YXAtZG9uZywKKwkJCQlCdW5kYW5nLWd1LAorCQkJCVNlb25nbmFtLXNpLCBHeWVvbmdnaS1kbywgNDYzLTgxNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS1COSAgIChoZXgpCQlTaW5nIEZhaSBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMUVCOSAgICAgKGJhc2UgMTYpCQlTaW5nIEZhaSBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlOby43MDAsIEthb2hzaXVuZyBVbml2ZXJzaXR5IFJkLiwgTmFuLVR6dSBEaXN0LgorCQkJCU5VSyBBZHZhbmNlZCBCdXNpbmVzcyBJbmN1YmF0aW9uIENlbnRlcgorCQkJCUthb2hzaXVuZyAgODExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS1CQSAgIChoZXgpCQlIaWdoIERlbnNpdHkgRGV2aWNlcyBBUworMDAxRUJBICAgICAoYmFzZSAxNikJCUhpZ2ggRGVuc2l0eSBEZXZpY2VzIEFTCisJCQkJVmVzdHJlIFN0cmFuZGdhdGUgMjYKKwkJCQlLcmlzdGlhbnNhbmQgIDQ2MTEKKwkJCQlOT1JXQVkKKworMDAtMUUtQkIgICAoaGV4KQkJQkxVRUxJR0hUIFRFQ0hOT0xPR1kgSU5DLgorMDAxRUJCICAgICAoYmFzZSAxNikJCUJMVUVMSUdIVCBURUNITk9MT0dZIElOQy4KKwkJCQk2NDcyIENBTURFTiBBVkUuLCBTVUlURSAxMDJCCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUJDICAgKGhleCkJCVdJTlRFQ0ggQVVUT01BVElPTiBDTy4sTFRELgorMDAxRUJDICAgICAoYmFzZSAxNikJCVdJTlRFQ0ggQVVUT01BVElPTiBDTy4sTFRELgorCQkJCSMxMTE1LCBUQUVLV0FORyBCTFZELgorCQkJCVlPVU5HUk9ORy1ET05HLCBZT1VOR1RPTkctR1UKKwkJCQlTVVdPTi1TSSBLWVVOR0dJIDQ0My04MTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtQkQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRUJEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUJFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUVCRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1CRiAgIChoZXgpCQlIYWFzIEF1dG9tYXRpb24gSW5jLgorMDAxRUJGICAgICAoYmFzZSAxNikJCUhhYXMgQXV0b21hdGlvbiBJbmMuCisJCQkJMjgwMCBTdHVyZ2lzIFJkCisJCQkJT3huYXJkIENBIDkzMDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1DMCAgIChoZXgpCQlNaWNyb2NoaXAgVGVjaG5vbG9neSBJbmMuCiswMDFFQzAgICAgIChiYXNlIDE2KQkJTWljcm9jaGlwIFRlY2hub2xvZ3kgSW5jLgorCQkJCTIzNTUgVy4gQ2hhbmRsZXIgQmx2ZC4sCisJCQkJQ2hhbmRsZXIgQVogODUyMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUMxICAgKGhleCkJCTNDT00gRVVST1BFIExURAorMDAxRUMxICAgICAoYmFzZSAxNikJCTNDT00gRVVST1BFIExURAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSEVSVFMuIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRS1DMiAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDFFQzIgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5pZmludGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtQzMgICAoaGV4KQkJS296aW8sIEluYy4KKzAwMUVDMyAgICAgKGJhc2UgMTYpCQlLb3ppbywgSW5jLgorCQkJCTI0MDAgVHJhZGUgQ2VudHJlIEF2ZQorCQkJCUxvbmdtb250IENPIDgwNTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1DNCAgIChoZXgpCQlDZWxpbyBDb3JwCiswMDFFQzQgICAgIChiYXNlIDE2KQkJQ2VsaW8gQ29ycAorCQkJCTI2NSBFIDEwMCBTICAjIDI4MAorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1DNSAgIChoZXgpCQlNaWRkbGUgQXRsYW50aWMgUHJvZHVjdHMgSW5jCiswMDFFQzUgICAgIChiYXNlIDE2KQkJTWlkZGxlIEF0bGFudGljIFByb2R1Y3RzIEluYworCQkJCTMwMCBGYWlyZmllbGQgUm9hZAorCQkJCUZhaXJmaWVsZCBOSiAwNzAwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtQzYgICAoaGV4KQkJT2J2aXVzIEhvbGRpbmdzIExMQworMDAxRUM2ICAgICAoYmFzZSAxNikJCU9idml1cyBIb2xkaW5ncyBMTEMKKwkJCQkyMDgxMSBOVyBDb3JuZWxsIFJvYWQKKwkJCQlTdWl0ZSA3MDAKKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUM3ICAgKGhleCkJCTJXaXJlCiswMDFFQzcgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzA0IEF1dG9tYXRpb24gUHJrd3kKKwkJCQlTYW4gSm9zZSBDYSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtQzggICAoaGV4KQkJUmFwaWQgTW9iaWxlIChQdHkpIEx0ZAorMDAxRUM4ICAgICAoYmFzZSAxNikJCVJhcGlkIE1vYmlsZSAoUHR5KSBMdGQKKwkJCQlCdWlsZGluZyBDLEQsRSBBcGV4IENvcnBvcmF0ZSBQYXJrCisJCQkJUXVpbnRpbiBCcmFuZCBTdHJlZXQsIFBlcnNlcXVvciBUZWNobm9wYXJrCisJCQkJUHJldG9yaWEgR2F1dGVuZyAwMDIwCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTFFLUM5ICAgKGhleCkJCURlbGwgSW5jCiswMDFFQzkgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUNBICAgKGhleCkJCU5vcnRlbAorMDAxRUNBICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xRS1DQiAgIChoZXgpCQkiUlBDICJFbmVyZ29hdXRvbWF0aWthIiBMdGQKKzAwMUVDQiAgICAgKGJhc2UgMTYpCQkiUlBDICJFbmVyZ29hdXRvbWF0aWthIiBMdGQKKwkJCQlLcmFzbm9rYXphcm1lbm5heWEgc3QuLCAxMy8xCisJCQkJTW9zY293ICAxMTEyNTAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUUtQ0MgICAoaGV4KQkJQ0RWSQorMDAxRUNDICAgICAoYmFzZSAxNikJCUNEVkkKKwkJCQkzMSBBdmVudWUgZHUgR2VuZXJhbCBMZWNsZXJjCisJCQkJUEFOVElOIElsZSBkZSBGcmFuY2UgOTM1MDAKKwkJCQlGUkFOQ0UKKworMDAtMUUtQ0QgICAoaGV4KQkJS1lMQU5ECiswMDFFQ0QgICAgIChiYXNlIDE2KQkJS1lMQU5ECisJCQkJTm85NSBCdWlsZGluZywKKwkJCQlTb3V0aGVhc3QgQ29ybmVyIG9mIFhpc2FucWkgQnJpZGdlLAorCQkJCUhhaWRpYW4gQmVpamluZyAxMDAwOTYKKwkJCQlDSElOQQorCiswMC0xRS1DRSAgIChoZXgpCQlCSVNBIFRlY2hub2xvZ2llcyAoSG9uZyBLb25nKSBMaW1pdGVkCiswMDFFQ0UgICAgIChiYXNlIDE2KQkJQklTQSBUZWNobm9sb2dpZXMgKEhvbmcgS29uZykgTGltaXRlZAorCQkJCTExMDIsIFRyYW5zIEFzaWEgQ2VudHJlLAorCQkJCTE4IEtpbiBIb25nIFN0cmVldCwKKwkJCQlLd2FpIENodW5nICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUUtQ0YgICAoaGV4KQkJUEhJTElQUyBFTEVDVFJPTklDUyBVSyBMVEQKKzAwMUVDRiAgICAgKGJhc2UgMTYpCQlQSElMSVBTIEVMRUNUUk9OSUNTIFVLIExURAorCQkJCVBISUxJUFMgQ0VOVFJFCisJCQkJR1VJTERGT1JEIEJVU0lORVNTIFBBUksKKwkJCQlHVUlMREZPUkQgU1VSUkVZIEdVMiA4WEgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRS1EMCAgIChoZXgpCQlDT05ORVhJVU0KKzAwMUVEMCAgICAgKGJhc2UgMTYpCQlDT05ORVhJVU0KKwkJCQkzOSBMJ0FMQkFSRURFCisJCQkJQVVaSUVMTEUgIDMxNjUwCisJCQkJRlJBTkNFCisKKzAwLTFFLUQxICAgKGhleCkJCUtleXByb2Nlc3NvciBCLlYuCiswMDFFRDEgICAgIChiYXNlIDE2KQkJS2V5cHJvY2Vzc29yIEIuVi4KKwkJCQlQYWFzaGV1dmVsd2VnIDIwCisJCQkJQW1zdGVyZGFtIE5IIDExMDUgQkoKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRS1EMiAgIChoZXgpCQlSYXkgU2hpbmUgVmlkZW8gVGVjaG5vbG9neSBJbmMKKzAwMUVEMiAgICAgKGJhc2UgMTYpCQlSYXkgU2hpbmUgVmlkZW8gVGVjaG5vbG9neSBJbmMKKwkJCQk2RixOby45OCxTZWMuMSxYaW50YWkgNXRoIFJkLgorCQkJCVhpemhpIENpdHkgVGFpcGVpIENvdW50eSAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLUQzICAgKGhleCkJCURvdCBUZWNobm9sb2d5IEludCdsIENvLiwgTHRkLgorMDAxRUQzICAgICAoYmFzZSAxNikJCURvdCBUZWNobm9sb2d5IEludCdsIENvLiwgTHRkLgorCQkJCVVuaXQgMTAwMSwgRm91cnNlYXMgQnVpbGRpbmcgMjA4LTIxMiwgTmF0aGFuIFJvYWQKKwkJCQlLb3dsb29uICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUUtRDQgICAoaGV4KQkJRG9ibGUgRW5naW5lZXJpbmcKKzAwMUVENCAgICAgKGJhc2UgMTYpCQlEb2JsZSBFbmdpbmVlcmluZworCQkJCTg1IFdhbG51dCBTdHJlZXQKKwkJCQlXYXRlcnRvd24gTWFzc2FjaHVzZXR0cyAwMjQ3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtRDUgICAoaGV4KQkJVGVrb24tQXV0b21hdGljcworMDAxRUQ1ICAgICAoYmFzZSAxNikJCVRla29uLUF1dG9tYXRpY3MKKwkJCQlaZWxlbm9ncmFkLCA1MTItMjkKKwkJCQlNb3Njb3cgIDEyNDQ4MgorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRS1ENiAgIChoZXgpCQlBbGVudGVjICYgT3Jpb24gQUIKKzAwMUVENiAgICAgKGJhc2UgMTYpCQlBbGVudGVjICYgT3Jpb24gQUIKKwkJCQlCb3ggMTA4CisJCQkJMTMyIDIzIFNhbHRzam8tQm9vIAorCQkJCVNXRURFTgorCiswMC0xRS1ENyAgIChoZXgpCQlILVN0cmVhbSBXaXJlbGVzcywgSW5jLgorMDAxRUQ3ICAgICAoYmFzZSAxNikJCUgtU3RyZWFtIFdpcmVsZXNzLCBJbmMuCisJCQkJMjU5NSBFYXN0IEJheXNob3JlIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUQ4ICAgKGhleCkJCURpZ2l0YWwgVW5pdGVkIEluYy4KKzAwMUVEOCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFVuaXRlZCBJbmMuCisJCQkJOUYsIE5vLjIyMCwgR2FuZ2NpYW4gUmQuCisJCQkJVGFpcGVpICAxMTQ0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtRDkgICAoaGV4KQkJTWl0c3ViaXNoaSBQcmVjaXNpb24gQ28uLExUZC4KKzAwMUVEOSAgICAgKGJhc2UgMTYpCQlNaXRzdWJpc2hpIFByZWNpc2lvbiBDby4sTFRkLgorCQkJCTM0NSBLQU1JTUFDSElZQQorCQkJCUtBTUFLVVJBLUNpdHkgS0FOQUdBV0EtUHJlZmVjdHVyZSAyNDctODUwNQorCQkJCUpBUEFOCisKKzAwLTFFLURBICAgKGhleCkJCVdlc2VtYW5uIEVsZWt0cm90ZWNobmllayBCLlYuCiswMDFFREEgICAgIChiYXNlIDE2KQkJV2VzZW1hbm4gRWxla3Ryb3RlY2huaWVrIEIuVi4KKwkJCQlEcm9vZ2Jsb2VtIDMxCisJCQkJUm90dGVyZGFtIFp1aWQtSG9sbGFuZCAzMDY4IEFXCisJCQkJTkVUSEVSTEFORFMKKworMDAtMUUtREIgICAoaGV4KQkJR2lrZW4gVHJhc3RlbSBDby4sIEx0ZC4KKzAwMUVEQiAgICAgKGJhc2UgMTYpCQlHaWtlbiBUcmFzdGVtIENvLiwgTHRkLgorCQkJCTQtMSBUYWtlZGEgRGFua2F3YXJhY2hvIEZ1c2hpbWlrdQorCQkJCUt5b3RvICA2MTItODQxNAorCQkJCUpBUEFOCisKKzAwLTFFLURDICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDFFREMgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworMDAtMUUtREQgICAoaGV4KQkJV0FTS08gUy5BLgorMDAxRUREICAgICAoYmFzZSAxNikJCVdBU0tPIFMuQS4KKwkJCQlCZXJiZWNraWVnbyA2CisJCQkJR2xpd2ljZSBTaWxlc2lhIDQ0LTEwMAorCQkJCVBPTEFORAorCiswMC0xRS1ERSAgIChoZXgpCQlCWUQgQ09NUEFOWSBMSU1JVEVECiswMDFFREUgICAgIChiYXNlIDE2KQkJQllEIENPTVBBTlkgTElNSVRFRAorCQkJCU5PLjEsQmFvcGluZyBSb2FkLEJhb2xvbmcgSW5kdXN0cmlhbCBUb3duLExvbmdnYW5nCisJCQkJU0hFTiBaSEVOIEd1YW5nZG9uZyA1MTgxMTYKKwkJCQlDSElOQQorCiswMC0xRS1ERiAgIChoZXgpCQlNYXN0ZXIgSW5kdXN0cmlhbGl6YXRpb24gQ2VudGVyIEtpc3RhCiswMDFFREYgICAgIChiYXNlIDE2KQkJTWFzdGVyIEluZHVzdHJpYWxpemF0aW9uIENlbnRlciBLaXN0YQorCQkJCVRvcnNoYW1uc2dhdGFuIDM2CisJCQkJS2lzdGEKKwkJCQlTdG9ja2hvbG0gIFNFLTE2NCA4MAorCQkJCVNXRURFTgorCiswMC0xRS1FMCAgIChoZXgpCQlVcm1ldCBEb211cyBTcEEKKzAwMUVFMCAgICAgKGJhc2UgMTYpCQlVcm1ldCBEb211cyBTcEEKKwkJCQlWaWEgQm9sb2duYSAxODgvQworCQkJCVRvcmlubyBUTyBJLTEwMTU0CisJCQkJSVRBTFkKKworMDAtMUUtRTEgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswMDFFRTEgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLUUyICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAxRUUyICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS1FMyAgIChoZXgpCQlUJlcgRWxlY3Ryb25pY3MgKFNoZW5aaGVuKSBDby4sTHRkCiswMDFFRTMgICAgIChiYXNlIDE2KQkJVCZXIEVsZWN0cm9uaWNzIChTaGVuWmhlbikgQ28uLEx0ZAorCQkJCTJGIEJhaXlpbmcgQnVpbGRpbmcsIE5vLjE5LCBOYW5oYWlSZC4sIE5hbnNoYW4gRGlzdAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNTIKKwkJCQlDSElOQQorCiswMC0xRS1FNCAgIChoZXgpCQlBQ1MgU29sdXRpb25zIEZyYW5jZQorMDAxRUU0ICAgICAoYmFzZSAxNikJCUFDUyBTb2x1dGlvbnMgRnJhbmNlCisJCQkJUnVlIENsYXVkZSBDaGFwcGUKKwkJCQlHdWlsaGVyYW5kIEdyYW5nZXMgQXJkZWNoZSAwNzUwMworCQkJCUZSQU5DRQorCiswMC0xRS1FNSAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzAwMUVFNSAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUU2ICAgKGhleCkJCVNoZW56aGVuIEFkdmFuY2VkIFZpZGVvIEluZm8tVGVjaCBDby4sIEx0ZC4KKzAwMUVFNiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBBZHZhbmNlZCBWaWRlbyBJbmZvLVRlY2ggQ28uLCBMdGQuCisJCQkJVGlhbnhpYW5nIDExQSwgIFRpYW4nYW4gQ3liZXIgUGFyayAsIEZ1dGlhbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNDgKKwkJCQlDSElOQQorCiswMC0xRS1FNyAgIChoZXgpCQlFcGljIFN5c3RlbXMgSW5jCiswMDFFRTcgICAgIChiYXNlIDE2KQkJRXBpYyBTeXN0ZW1zIEluYworCQkJCTM5MCBTLiBBYmJvdHQgQXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUU4ICAgKGhleCkJCU15dGVrCiswMDFFRTggICAgIChiYXNlIDE2KQkJTXl0ZWsKKwkJCQkxNTEgTGFmYXlldHRlIFN0ciAzIEZsCisJCQkJTmV3IFlvcmsgTlkgMTAwMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUU5ICAgKGhleCkJCVN0b25lcmlkZ2UgRWxlY3Ryb25pY3MgQUIKKzAwMUVFOSAgICAgKGJhc2UgMTYpCQlTdG9uZXJpZGdlIEVsZWN0cm9uaWNzIEFCCisJCQkJR2FyZHNmb2dkZXZhZ2VuIDE4QQorCQkJCUJyb21tYSBTdG9ja2hvbG0gMTY4IDY2CisJCQkJU1dFREVOCisKKzAwLTFFLUVBICAgKGhleCkJCVNlbnNvciBTd2l0Y2gsIEluYy4KKzAwMUVFQSAgICAgKGJhc2UgMTYpCQlTZW5zb3IgU3dpdGNoLCBJbmMuCisJCQkJOTAwIE5vcnRocm9wIFJvYWQKKwkJCQlXYWxsaW5nZm9yZCBDVCAwNjQ5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtRUIgICAoaGV4KQkJVGFsay1BLVBob25lIENvLgorMDAxRUVCICAgICAoYmFzZSAxNikJCVRhbGstQS1QaG9uZSBDby4KKwkJCQk1MDEzIE4uIEtlZHppZSBBdmUuCisJCQkJQ2hpY2FnbyBJTCA2MDYyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtRUMgICAoaGV4KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIExURC4KKzAwMUVFQyAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELgorCQkJCU5PLiAyNSwgVEhFIDNSRCBTdHJlZXQKKwkJCQlLVU5TSEFOIEVYUE9SVCBQUk9DRVNTSU5HIFpPTkUKKwkJCQlLVU5TSEFOIENJVFkgU1VaSE9VIFBST1ZJTkNFIDIxNTMwMAorCQkJCUNISU5BCisKKzAwLTFFLUVEICAgKGhleCkJCUFkdmVudGlxIEx0ZC4KKzAwMUVFRCAgICAgKGJhc2UgMTYpCQlBZHZlbnRpcSBMdGQuCisJCQkJVGVjaG5vbG9neSBIb3VzZQorCQkJCVRyYWZhbGdhciBXYXkKKwkJCQlCYXIgSGlsbCBDYW1icy4gQ0IzIDhTUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFFLUVFICAgKGhleCkJCUVUTCBTeXN0ZW1zIEx0ZAorMDAxRUVFICAgICAoYmFzZSAxNikJCUVUTCBTeXN0ZW1zIEx0ZAorCQkJCUNvbGR3ZWxsIFJhZGlvIFN0YXRpb24KKwkJCQlNYWRsZXkKKwkJCQlIZXJlZm9yZCBIZXJlZm9yZHNoaXJlIEhSMiA5TkUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRS1FRiAgIChoZXgpCQlDYW50cm9uaWMgSW50ZXJuYXRpb25hbCBMaW1pdGVkCiswMDFFRUYgICAgIChiYXNlIDE2KQkJQ2FudHJvbmljIEludGVybmF0aW9uYWwgTGltaXRlZAorCQkJCVVuaXQgNTE1LTUxNiwgQnVpbGRpbmcgMTUsIEVhc3QgV2luZywgTm8gOCBTY2llbmNlIFBhcmsgV2VzdCBBdmVudWUsIEhvbmcgS29uZyBTY2llbmNlIFBhcmsgUGhhc2UgSUkKKwkJCQlTaGF0aW4gTmV3IFRlcnJpdG9yaWVzIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xRS1GMCAgIChoZXgpCQlHaWdhZmluIE5ldHdvcmtzCiswMDFFRjAgICAgIChiYXNlIDE2KQkJR2lnYWZpbiBOZXR3b3JrcworCQkJCTE5MDUwIFBydW5lcmlkZ2UKKwkJCQlTdWl0ZSAyMDAKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUYxICAgKGhleCkJCVNlcnZpbWF0CiswMDFFRjEgICAgIChiYXNlIDE2KQkJU2VydmltYXQKKwkJCQlaQUVUIExlcyBIYWllcworCQkJCVJ1ZSBCZW5vaXQgRnJhY2hvbgorCQkJCVN0IE1heGltaW4gT2lzZSA2MDc0MAorCQkJCUZSQU5DRQorCiswMC0xRS1GMiAgIChoZXgpCQlNaWNybyBNb3Rpb24gSW5jCiswMDFFRjIgICAgIChiYXNlIDE2KQkJTWljcm8gTW90aW9uIEluYworCQkJCTcwNzAgV2luY2hlc3RlciBDaXJjbGUKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1GMyAgIChoZXgpCQlGcm9tMgorMDAxRUYzICAgICAoYmFzZSAxNikJCUZyb20yCisJCQkJMkYsIE1lc3RlciBpbmMKKwkJCQkxNjg3LTMsIFNpbmlsLWRvbmcKKwkJCQlEYWVqZW9uICAzMDYtMjMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLUY0ICAgKGhleCkJCUwtMyBDb21tdW5pY2F0aW9ucyBEaXNwbGF5IFN5c3RlbXMKKzAwMUVGNCAgICAgKGJhc2UgMTYpCQlMLTMgQ29tbXVuaWNhdGlvbnMgRGlzcGxheSBTeXN0ZW1zCisJCQkJMTM1NSBCbHVlZ3Jhc3MgTGFrZXMgUGFya3dheQorCQkJCUFscGhhcmV0dGEgR0EgMzAwMDQtODQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtRjUgICAoaGV4KQkJSGl0ZWsgQXV0b21hdGVkIEluYy4KKzAwMUVGNSAgICAgKGJhc2UgMTYpCQlIaXRlayBBdXRvbWF0ZWQgSW5jLgorCQkJCVJvb20gQzMtOTAxLCBOby4zODMsIEh1YW1lbiBTaGlqaWEKKwkJCQlXZW5zYW5sdSBSb2FkLAorCQkJCUhhbmd6aG91ICAzMTAwMTIKKwkJCQlDSElOQQorCiswMC0xRS1GNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFFRjYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtRjcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRUY3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUY4ICAgKGhleCkJCUVtZmluaXR5IEluYy4KKzAwMUVGOCAgICAgKGJhc2UgMTYpCQlFbWZpbml0eSBJbmMuCisJCQkJMTExIEVsbSBTdHJlZXQKKwkJCQlTdWl0ZSAyMDEKKwkJCQlTdWRidXJ5IE9udGFyaW8gUDNDMVQzCisJCQkJQ0FOQURBCisKKzAwLTFFLUY5ICAgKGhleCkJCVBhc2NvbSBLb21tdW5pa2F0aW9ucyBzeXN0ZW1lIEdtYkguCiswMDFFRjkgICAgIChiYXNlIDE2KQkJUGFzY29tIEtvbW11bmlrYXRpb25zIHN5c3RlbWUgR21iSC4KKwkJCQlUZWNobm9sb2dpZXN0ci4gNAorCQkJCUFyYmluZyBVcHBlciBBdXN0cmlhIDQzMzIKKwkJCQlBVVNUUklBCisKKzAwLTFFLUZBICAgKGhleCkJCVBST1RFSSBMdGQuCiswMDFFRkEgICAgIChiYXNlIDE2KQkJUFJPVEVJIEx0ZC4KKwkJCQk2MEEgQi5TYW1wc29uaWV2c2t5LCAgQnVzaW5lc3MgQ2VudGVyCisJCQkJU3QuUGV0ZXJzYnVyZyBSVSAxOTQwNDQKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUUtRkIgICAoaGV4KQkJVHJpbyBNb3Rpb24gVGVjaG5vbG9neSBMdGQKKzAwMUVGQiAgICAgKGJhc2UgMTYpCQlUcmlvIE1vdGlvbiBUZWNobm9sb2d5IEx0ZAorCQkJCVNoYW5ub24gV2F5CisJCQkJVGV3a2VzYnVyeSBHbG91Y2VzdGVyc2hpcmUgR0wyMCA4TkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRS1GQyAgIChoZXgpCQlKU0MgIk1BU1NBLUsiCiswMDFFRkMgICAgIChiYXNlIDE2KQkJSlNDICJNQVNTQS1LIgorCQkJCTE1LCBBLCBQaXJvZ292c2theWEgbmFiLgorCQkJCVNhaW50LVBldGVyc2J1cmcgTGVuaW5ncmFkc2tpeSByZWcuIDE5NDA0NAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRS1GRCAgIChoZXgpCQlNaWNyb2JpdCAyLjAgQUIKKzAwMUVGRCAgICAgKGJhc2UgMTYpCQlNaWNyb2JpdCAyLjAgQUIKKwkJCQlOeXN0YWRlbiAxCisJCQkJS0FMSVggIDk1MjYxCisJCQkJU1dFREVOCisKKzAwLTFFLUZFICAgKGhleCkJCUxFVkVMIHMuci5vLgorMDAxRUZFICAgICAoYmFzZSAxNikJCUxFVkVMIHMuci5vLgorCQkJCVBsaG92c2thIDE5OTcKKwkJCQlOYWNob2QgIDU0NyAwMQorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTFFLUZGICAgKGhleCkJCU11ZWxsZXItRWxla3Ryb25payBHbWJIICYgQ28uIEtHCiswMDFFRkYgICAgIChiYXNlIDE2KQkJTXVlbGxlci1FbGVrdHJvbmlrIEdtYkggJiBDby4gS0cKKwkJCQlGcmFuei1LbGVpbmUtU3RyLiAxOAorCQkJCVNhbHprb3R0ZW4gTlJXIDMzMTU0CisJCQkJR0VSTUFOWQorCiswMC0xRi0wMCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRjAwICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwVgorCQkJCURFTk1BUksKKworMDAtMUYtMDEgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUYwMSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MHYKKwkJCQlERU5NQVJLCisKKzAwLTFGLTAyICAgKGhleCkJCVBpeGVsbWV0cml4IENvcnBvcmF0aW9uIFB0ZSBMdGQKKzAwMUYwMiAgICAgKGJhc2UgMTYpCQlQaXhlbG1ldHJpeCBDb3Jwb3JhdGlvbiBQdGUgTHRkCisJCQkJMzEgS2FraSBCdWtpdCBSb2FkIDMKKwkJCQkjMDctMDMsIFRlY2hsaW5rCisJCQkJNDE3ODE4CisJCQkJU0lOR0FQT1JFCisKKzAwLTFGLTAzICAgKGhleCkJCU5VTSBBRworMDAxRjAzICAgICAoYmFzZSAxNikJCU5VTSBBRworCQkJCUJhdHRlbmh1c3N0cmFzc2UgMTYKKwkJCQlUZXVmZW4gQVIgOTA1MworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFGLTA0ICAgKGhleCkJCUdyYW5jaCBMdGQuCiswMDFGMDQgICAgIChiYXNlIDE2KQkJR3JhbmNoIEx0ZC4KKwkJCQk0MCBLb3JvbGV2YSBzdHIuCisJCQkJNTMgUGlzYXJldmEgc3RyLgorCQkJCU5vdm9zaWJpcnNrIE5TTyA2MzAwMTUKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUYtMDUgICAoaGV4KQkJaVRBUyBUZWNobm9sb2d5IENvcnAuCiswMDFGMDUgICAgIChiYXNlIDE2KQkJaVRBUyBUZWNobm9sb2d5IENvcnAuCisJCQkJTm8uIDc1LCBTaHVpeXVhbiBTdC4KKwkJCQlIc2luY2h1IENpdHkgIDMwMDY5CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi0wNiAgIChoZXgpCQlJbnRlZ3JhdGVkIERpc3BhdGNoIFNvbHV0aW9ucworMDAxRjA2ICAgICAoYmFzZSAxNikJCUludGVncmF0ZWQgRGlzcGF0Y2ggU29sdXRpb25zCisJCQkJNjQ1IE1vdW50YWluIEF2ZQorCQkJCVd5Y2tvZmYgTkogMDc0ODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTA3ICAgKGhleCkJCUFaVEVRIE1vYmlsZQorMDAxRjA3ICAgICAoYmFzZSAxNikJCUFaVEVRIE1vYmlsZQorCQkJCVN1aXRlIDIxMCwgNTI1IFVuaXZlcnNpdHkgQXZlCisJCQkJUGFsbyBBbHRvIENBIDk0MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi0wOCAgIChoZXgpCQlSSVNDTyBMVEQKKzAwMUYwOCAgICAgKGJhc2UgMTYpCQlSSVNDTyBMVEQKKwkJCQkzMiBIYWNoYXJvc2hldCBTdAorCQkJCUtpcmlhdCBNYWxhY2hpICA4MzEwMQorCQkJCUlTUkFFTAorCiswMC0xRi0wOSAgIChoZXgpCQlKQVNURUMgQ08uLCBMVEQuCiswMDFGMDkgICAgIChiYXNlIDE2KQkJSkFTVEVDIENPLiwgTFRELgorCQkJCUphc3RlYyBCL0QsIDkyLTcKKwkJCQlLdW0tZ29rIERvbmcsIEJvb24tRGFuZyBHdQorCQkJCVNlb25nLW5hbSBTaSAgS3l1bmctZ2kgRG8gNDYzLTgwNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi0wQSAgIChoZXgpCQlOb3J0ZWwKKzAwMUYwQSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQkxODMwIE1hdGhlc29uIEJvdWxldmFyZAorCQkJCVN1aXRlIDEKKwkJCQlNaXNzaXNzYXVnYSBPbnRhcmlvIEw0VyAwQjMKKwkJCQlDQU5BREEKKworMDAtMUYtMEIgICAoaGV4KQkJRmVkZXJhbCBTdGF0ZSBVbml0YXJ5IEVudGVycHJpc2UgSW5kdXN0cmlhbCBVbmlvbiJFbGVjdHJvcHJpYm9yIgorMDAxRjBCICAgICAoYmFzZSAxNikJCUZlZGVyYWwgU3RhdGUgVW5pdGFyeSBFbnRlcnByaXNlIEluZHVzdHJpYWwgVW5pb24iRWxlY3Ryb3ByaWJvciIKKwkJCQkKKwkJCQlQZW56YSAgNDQwMDExCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFGLTBDICAgKGhleCkJCUludGVsbGlnZW50IERpZ2l0YWwgU2VydmljZXMgR21iSAorMDAxRjBDICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IERpZ2l0YWwgU2VydmljZXMgR21iSAorCQkJCUdyZXZlc211ZWhsZW5lciBTdHJhc3NlIDgKKwkJCQlNYWxsZW50aW4gTWVja2xlbmJ1cmctVm9ycG9tbWVybiAyMzYzOQorCQkJCUdFUk1BTlkKKworMDAtMUYtMEQgICAoaGV4KQkJTDMgQ29tbXVuaWNhdGlvbnMgLSBUZWxlbWV0cnkgV2VzdAorMDAxRjBEICAgICAoYmFzZSAxNikJCUwzIENvbW11bmljYXRpb25zIC0gVGVsZW1ldHJ5IFdlc3QKKwkJCQk5MDIwIEJhbGJvYSBBdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTBFICAgKGhleCkJCUphcGFuIEt5YXN0ZW0gQ28uLCBMdGQKKzAwMUYwRSAgICAgKGJhc2UgMTYpCQlKYXBhbiBLeWFzdGVtIENvLiwgTHRkCisJCQkJMS00LTQKKwkJCQlOaXNoaWtpLWNobworCQkJCVRhY2hpa2F3YSBUb2t5byAxOTAtMDAyMgorCQkJCUpBUEFOCisKKzAwLTFGLTBGICAgKGhleCkJCVNlbGVjdCBFbmdpbmVlcmVkIFN5c3RlbXMKKzAwMUYwRiAgICAgKGJhc2UgMTYpCQlTZWxlY3QgRW5naW5lZXJlZCBTeXN0ZW1zCisJCQkJNzk5MSBXLiAyNiBBdmUKKwkJCQlIaWFsZWFoIEZsb3JpZGEgMzMwMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTEwICAgKGhleCkJCVRPTEVETyBETyBCUkFTSUwgSU5EVVNUUklBIERFIEJBTEFOQ0FTICBMVERBCiswMDFGMTAgICAgIChiYXNlIDE2KQkJVE9MRURPIERPIEJSQVNJTCBJTkRVU1RSSUEgREUgQkFMQU5DQVMgIExUREEKKwkJCQlSVUEgTUFOT0VMIENSRU1PTkVTSSwgMQorCQkJCUVTVFJBREEgU0FNVUVMIEFJWkVNQkVSRywgMzQ1CisJCQkJU0FPIEJFUk5BUkRPIERPIENBTVBPIFNQIDA5ODUxLTkwMAorCQkJCUJSQVpJTAorCiswMC0xRi0xMSAgIChoZXgpCQlPUEVOTU9LTywgSU5DLgorMDAxRjExICAgICAoYmFzZSAxNikJCU9QRU5NT0tPLCBJTkMuCisJCQkJN0YsIE5vIDMwMCwgWWFuZyBHdWFuZyBTdHJlZXQKKwkJCQlOZWlIdQorCQkJCVRhaXBlaSAgMTE0OTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTEyICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzAwMUYxMiAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMTMgICAoaGV4KQkJUy4mIEEuUy4gTHRkLgorMDAxRjEzICAgICAoYmFzZSAxNikJCVMuJiBBLlMuIEx0ZC4KKwkJCQlCb3V0cm9zIEJsZGcuIDFzdCBic210CisJCQkJR2hhYmkgU3RyZWV0CisJCQkJQmVpcnV0ICAyMDY3IDc4MDgKKwkJCQlMRUJBTk9OCisKKzAwLTFGLTE0ICAgKGhleCkJCU5leEcKKzAwMUYxNCAgICAgKGJhc2UgMTYpCQlOZXhHCisJCQkJNUYgU2VvdWwgQWNhZGVteSBCbGRnLCBEYWVjaGktRG9uZywgR2FuZ25hbS1HdSwKKwkJCQlTZW91bCAgMTM1LTI4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi0xNSAgIChoZXgpCQlCaW9zY3J5cHQgSW5jCiswMDFGMTUgICAgIChiYXNlIDE2KQkJQmlvc2NyeXB0IEluYworCQkJCTUwNSBDb2NocmFuZSBEcml2ZQorCQkJCU1hcmtoYW0gT250YXJpbyBMM1IgOEUzCisJCQkJQ0FOQURBCisKKzAwLTFGLTE2ICAgKGhleCkJCVdpc3Ryb24gQ29ycG9yYXRpb24KKzAwMUYxNiAgICAgKGJhc2UgMTYpCQlXaXN0cm9uIENvcnBvcmF0aW9uCisJCQkJMjFGLCA4OCwgU2VjLjEsSHNpbiBUYWkgV3UgUmQuLCBIc2ljaGloLAorCQkJCVRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTE3ICAgKGhleCkJCUlEWCBDb21wYW55LCBMdGQuCiswMDFGMTcgICAgIChiYXNlIDE2KQkJSURYIENvbXBhbnksIEx0ZC4KKwkJCQk2LTI4LTExIFNodWt1Z2F3YXJhLCBUYW5hLWt1CisJCQkJS2F3YXNha2ktU2hpIEthbmFnYXdhLUtlbiAyMTQwMDIxCisJCQkJSkFQQU4KKworMDAtMUYtMTggICAoaGV4KQkJSGFrdXNhbi5NZmcuQ28sLkx0ZAorMDAxRjE4ICAgICAoYmFzZSAxNikJCUhha3VzYW4uTWZnLkNvLC5MdGQKKwkJCQlUb21pbi1Lb3VneW91LUlrZWJ1a3VybyBCTEQuNUYKKwkJCQkyLTI2LTUgIE1pbmFtaS1Ja2VidWt1cm8KKwkJCQlUb3NpbWEgV2FyZCBUb2t5by1NZXQuIDE3MS0wMDIyCisJCQkJSkFQQU4KKworMDAtMUYtMTkgICAoaGV4KQkJQkVOLVJJIEVMRUNUUk9OSUNBIFMuQS4KKzAwMUYxOSAgICAgKGJhc2UgMTYpCQlCRU4tUkkgRUxFQ1RST05JQ0EgUy5BLgorCQkJCVBPTC4gSU5ELiBWRU5UT1JSTyBERUwgQ0FOTworCQkJCUMvLiBMT1pPWUEgOAorCQkJCUFMQ09SQ09OIE1BRFJJRCAyODkyNQorCQkJCVNQQUlOCisKKzAwLTFGLTFBICAgKGhleCkJCVByb21pbnZlc3QKKzAwMUYxQSAgICAgKGJhc2UgMTYpCQlQcm9taW52ZXN0CisJCQkJNywgQm9icnVpc2theWEgdWxpY2EKKwkJCQlTYWludC1QZXRlcnNidXJnIE5vcnRoLVdlc3QgRmVkZXJhbCBEaXN0cmljdCAxOTUwMDkKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUYtMUIgICAoaGV4KQkJUm95YWxUZWsgQ29tcGFueSBMdGQuCiswMDFGMUIgICAgIChiYXNlIDE2KQkJUm95YWxUZWsgQ29tcGFueSBMdGQuCisJCQkJU3VpdGUgOUYtMSwgTm8uIDEwNzEsIENodW5nIENoZW5nIFJkLgorCQkJCVRhb3l1YW4gU2hpZW4gVGFveXVhbiAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTFDICAgKGhleCkJCUtPQklTSEkgRUxFQ1RSSUMgQ28uLEx0ZC4KKzAwMUYxQyAgICAgKGJhc2UgMTYpCQlLT0JJU0hJIEVMRUNUUklDIENvLixMdGQuCisJCQkJMTgwNS0xCisJCQkJS2FtaXlhCisJCQkJS291bm9zdS1zaGkgU2FpdGFtYS1rZW4gMzY1LTAwMjcKKwkJCQlKQVBBTgorCiswMC0xRi0xRCAgIChoZXgpCQlBdGxhcyBNYXRlcmlhbCBUZXN0aW5nIFRlY2hub2xvZ3kgTExDCiswMDFGMUQgICAgIChiYXNlIDE2KQkJQXRsYXMgTWF0ZXJpYWwgVGVzdGluZyBUZWNobm9sb2d5IExMQworCQkJCTQxMTQgTi4gUmF2ZW5zd29vZCBBdmUuCisJCQkJQ2hpY2FnbyBJTCA2MDYxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMUUgICAoaGV4KQkJQXN0ZWMgVGVjaG5vbG9neSBDby4sIEx0ZAorMDAxRjFFICAgICAoYmFzZSAxNikJCUFzdGVjIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQkxMkYsIE5vLjIsIEppYW4gQmEgUmQuCisJCQkJQ2h1bmcgSG8gVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtMUYgICAoaGV4KQkJRWRpbWF4IFRlY2hub2xvZ3kgQ28uIEx0ZC4KKzAwMUYxRiAgICAgKGJhc2UgMTYpCQlFZGltYXggVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCU5vLiAzLCBXdS1DaHVhbiAzcmQgUm9hZCwgV3UtS3UgSW5kdXN0cmlhbCBQYXJrLAorCQkJCVRhaXBlaSBIc2llbiAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTIwICAgKGhleCkJCUxvZ2l0ZWNoIEV1cm9wZSBTQQorMDAxRjIwICAgICAoYmFzZSAxNikJCUxvZ2l0ZWNoIEV1cm9wZSBTQQorCQkJCU1vdWxpbiBkdSBDaG9jIEQKKwkJCQlSb21hbmVsIHN1ciBNb3JnZXMgQ0ggMTEyMgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFGLTIxICAgKGhleCkJCUlubmVyIE1vbmdvbGlhIFlpbiBBbiBTY2llbmNlICYgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby4sTAorMDAxRjIxICAgICAoYmFzZSAxNikJCUlubmVyIE1vbmdvbGlhIFlpbiBBbiBTY2llbmNlICYgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby4sTAorCQkJCVlpbkFuIEJ1aWxkaW5nIFlpd2VpIFJvYWQuUnVZaQorCQkJCURldmVsb3BtZW50IFpvbmUsSG9oaG90CisJCQkJQmVpamluZyAgMDEwMDEwCisJCQkJQ0hJTkEKKworMDAtMUYtMjIgICAoaGV4KQkJRmliZXJ4b24sIEluYy4KKzAwMUYyMiAgICAgKGJhc2UgMTYpCQlGaWJlcnhvbiwgSW5jLgorCQkJCTUyMDEgR3JlYXQgQW1lcmljYSBQYXJrd2F5CisJCQkJU3VpdGUgMzQwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTIzICAgKGhleCkJCUludGVyYWNvdXN0aWNzCiswMDFGMjMgICAgIChiYXNlIDE2KQkJSW50ZXJhY291c3RpY3MKKwkJCQlEcmVqZXJ2YWVuZ2V0IDgKKwkJCQlBc3NlbnMgREsgNTYxMAorCQkJCURFTk1BUksKKworMDAtMUYtMjQgICAoaGV4KQkJRElHSVRWSUVXIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDFGMjQgICAgIChiYXNlIDE2KQkJRElHSVRWSUVXIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJTk8uIDE0LTIyLCBUSUFOLUZVICwKKwkJCQlTQU5TSUEgVE9XTlNISVAsCisJCQkJVEFJUEVJIENPVU5UWSAgMjM3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi0yNSAgIChoZXgpCQlNQlMgR21iSAorMDAxRjI1ICAgICAoYmFzZSAxNikJCU1CUyBHbWJICisJCQkJUm9tZXJzdHJhc3NlIDE1CisJCQkJS3JlZmVsZCBOb3JkcmhlaW4tV2VzdGZhbGVuIDQ3ODA5CisJCQkJR0VSTUFOWQorCiswMC0xRi0yNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFGMjYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMjcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRjI3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTI4ICAgKGhleCkJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKzAwMUYyOCAgICAgKGJhc2UgMTYpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCisJCQkJODAwMCBGb290aGlsbHMgQmx2ZAorCQkJCVJvc2V2aWxsZSBDQSA5NTc0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMjkgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDFGMjkgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMgorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTJBICAgKGhleCkJCUFDQ00KKzAwMUYyQSAgICAgKGJhc2UgMTYpCQlBQ0NNCisJCQkJT2JvdXIgSW5kdXN0cmlhbCBDaXR5LCBJbmR1c3RyaWFsIHpvbmUgQSwgbG90MTQsIGJsb2NrIDEyMDA2LgorCQkJCUNhaXJvICAKKwkJCQlFR1lQVAorCiswMC0xRi0yQiAgIChoZXgpCQlPcmFuZ2UgTG9naWMKKzAwMUYyQiAgICAgKGJhc2UgMTYpCQlPcmFuZ2UgTG9naWMKKwkJCQkjNzA2IEFjZVRlY2hub1Rvd2VyIDEwLWNoYSw0NzAtNQorCQkJCUdhc2FuLWRvbmcgR2V1bWNoZW9uLWd1CisJCQkJU0VPVUwgIDE1My03ODkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtMkMgICAoaGV4KQkJU3RhcmJyaWRnZSBOZXR3b3JrcworMDAxRjJDICAgICAoYmFzZSAxNikJCVN0YXJicmlkZ2UgTmV0d29ya3MKKwkJCQkzMjY1IE1lcmlkaWFuIFBhcmt3YXkKKwkJCQlTdWl0ZSAxMzQKKwkJCQlXZXN0b24gRkwgMzMzMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTJEICAgKGhleCkJCUVsZWN0cm8tT3B0aWNhbCBJbWFnaW5nLCBJbmMuCiswMDFGMkQgICAgIChiYXNlIDE2KQkJRWxlY3Ryby1PcHRpY2FsIEltYWdpbmcsIEluYy4KKwkJCQk0MzAwIEZvcnR1bmUgUGxhY2UsIFN1aXRlIEMKKwkJCQlXZXN0IE1lbGJvdXJuZSBGTCAzMjkwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMkUgICAoaGV4KQkJVHJpYW5nbGUgUmVzZWFyY2ggSW50J2wgUHRlIEx0ZAorMDAxRjJFICAgICAoYmFzZSAxNikJCVRyaWFuZ2xlIFJlc2VhcmNoIEludCdsIFB0ZSBMdGQKKwkJCQkxMCBVYmkgQ3Jlc2NlbnQgIzA1LTgzCisJCQkJVWJpIFRlY2hwYXJrIFNHIDQwODY2NAorCQkJCVNJTkdBUE9SRQorCiswMC0xRi0yRiAgIChoZXgpCQlCZXJrZXIgR21iSCAmIENvLiBLRworMDAxRjJGICAgICAoYmFzZSAxNikJCUJlcmtlciBHbWJIICYgQ28uIEtHCisJCQkJS2xhZ2ViYWNoIDM4CisJCQkJU2NoYWxrc211ZWhsZSBOUlcgNTg1NzkKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLTMwICAgKGhleCkJCVRyYXZlbHBpbmcKKzAwMUYzMCAgICAgKGJhc2UgMTYpCQlUcmF2ZWxwaW5nCisJCQkJCisJCQkJTGVpcHppZ2VyIFN0ci4gNDYKKwkJCQlDaGVtbml0eiBTYXhvbnkgMDkxMTMKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLTMxICAgKGhleCkJCVJhZGlvY29tcAorMDAxRjMxICAgICAoYmFzZSAxNikJCVJhZGlvY29tcAorCQkJCUtyYWtlc3ZlaiAxNworCQkJCUhpbGxlcm9lZCBDb3BlbmhhZ2VuIDM0MDAKKwkJCQlERU5NQVJLCisKKzAwLTFGLTMyICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAxRjMyICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPIEtZT1RPIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMUYtMzMgICAoaGV4KQkJTmV0Z2VhciBJbmMuCiswMDFGMzMgICAgIChiYXNlIDE2KQkJTmV0Z2VhciBJbmMuCisJCQkJNDUwMCBHcmVhdCBBbWVyaWNhIFBrd3kKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMzQgICAoaGV4KQkJTHVuZyBId2EgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDFGMzQgICAgIChiYXNlIDE2KQkJTHVuZyBId2EgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJM0YsIDI0OCwgUGVpIFNoZW5nIFJkLiBTZWMuIDMsCisJCQkJU2hlbmcgS2VuZworCQkJCVRhaXBlaSBIc2llbiAyMjIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTM1ICAgKGhleCkJCUFJUjgwMiBMTEMKKzAwMUYzNSAgICAgKGJhc2UgMTYpCQlBSVI4MDIgTExDCisJCQkJMTE2OSBCYW55b24gQ291cnQKKwkJCQlOYXBlcnZpbGxlIElMIDYwNTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi0zNiAgIChoZXgpCQlCZWxsd2luIEluZm9ybWF0aW9uIENvLiBMdGQuLAorMDAxRjM2ICAgICAoYmFzZSAxNikJCUJlbGx3aW4gSW5mb3JtYXRpb24gQ28uIEx0ZC4sCisJCQkJMTdGLTEsTm8uMTI4LENodW5nIERlIFJkLgorCQkJCVRhaWNodW5nICA0MDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTM3ICAgKGhleCkJCUdlbmVzaXMgSSZDCiswMDFGMzcgICAgIChiYXNlIDE2KQkJR2VuZXNpcyBJJkMKKwkJCQkjNTE1IGxpc2FudGVrZXVub3RhdW4KKwkJCQkxMTQxLTEgQmFla3Nlb2stRG9uZywgbGlzYW5kb25nLUd1CisJCQkJR295YW5nIEd5ZW9uZ2dpIDQxMC03MjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtMzggICAoaGV4KQkJUE9TSVRST04KKzAwMUYzOCAgICAgKGJhc2UgMTYpCQlQT1NJVFJPTgorCQkJCUVTVFJBREEgVEVMRUJSQVMtVU5JQ0FNUCwgS00wLDk3IC0gQ0ouMDEKKwkJCQlCQUlSUk86IENJREFERSBVTklWRVJTSVRBUklBCisJCQkJQ0FNUElOQVMgU0FPIFBBVUxPIDEzMDg0LTk3MQorCQkJCUJSQVpJTAorCiswMC0xRi0zOSAgIChoZXgpCQlDb25zdHJ1Y2Npb25lcyB5IEF1eGlsaWFyIGRlIEZlcnJvY2FycmlsZXMsIFMuQS4KKzAwMUYzOSAgICAgKGJhc2UgMTYpCQlDb25zdHJ1Y2Npb25lcyB5IEF1eGlsaWFyIGRlIEZlcnJvY2FycmlsZXMsIFMuQS4KKwkJCQlDLyBKLk0uIEl0dXJyaW96LCAyNgorCQkJCUJlYXNhaW4gR3VpcHV6Y29hIEUtMjAyMDAKKwkJCQlTUEFJTgorCiswMC0xRi0zQSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uLCBMdGQuCiswMDFGM0EgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLiwgTHRkLgorCQkJCTY2LCBDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtM0IgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDFGM0IgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xRi0zQyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMUYzQyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFGLTNEICAgKGhleCkJCVFiaXQgR21iSAorMDAxRjNEICAgICAoYmFzZSAxNikJCVFiaXQgR21iSAorCQkJCVN0ZWd3aWVzZW5zdHJhc3NlIDMyCisJCQkJQnJ1Y2hzYWwgR2VybWFueSA3NjY0NgorCQkJCUdFUk1BTlkKKworMDAtMUYtM0UgICAoaGV4KQkJUlAtVGVjaG5payBlLksuCiswMDFGM0UgICAgIChiYXNlIDE2KQkJUlAtVGVjaG5payBlLksuCisJCQkJSGVybWFubi1TdGF1ZGluZ2VyLVN0ci4gMTAtMTYKKwkJCQlSb2RnYXUgSGVzc2VuIDYzMTEwCisJCQkJR0VSTUFOWQorCiswMC0xRi0zRiAgIChoZXgpCQlBVk0gR21iSAorMDAxRjNGICAgICAoYmFzZSAxNikJCUFWTSBHbWJICisJCQkJQWx0LU1vYWJpdCA5NQorCQkJCUJlcmxpbiAgMTA1NTkKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLTQwICAgKGhleCkJCVNwZWFrZXJjcmFmdCBJbmMuCiswMDFGNDAgICAgIChiYXNlIDE2KQkJU3BlYWtlcmNyYWZ0IEluYy4KKwkJCQk5NDAgQ29sdW1iaWEgQXZlLiwKKwkJCQlSaXZlcnNpZGUgQ0EgOTI1MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTQxICAgKGhleCkJCVJ1Y2t1cyBXaXJlbGVzcworMDAxRjQxICAgICAoYmFzZSAxNikJCVJ1Y2t1cyBXaXJlbGVzcworCQkJCTg4MCBXZXN0IE1hdWRlIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTQyICAgKGhleCkJCUV0aGVyc3RhY2sgUHR5IEx0ZAorMDAxRjQyICAgICAoYmFzZSAxNikJCUV0aGVyc3RhY2sgUHR5IEx0ZAorCQkJCTIwMSBOYXRpb25hbCBJbm5vdmF0aW9uIENlbnRyZQorCQkJCUF1c3RyYWxpYW4gVGVjaG5vbG9neSBQYXJrIE5TVyAyMjM0CisJCQkJQVVTVFJBTElBCisKKzAwLTFGLTQzICAgKGhleCkJCUVOVEVTIEVMRUtUUk9OSUsKKzAwMUY0MyAgICAgKGJhc2UgMTYpCQlFTlRFUyBFTEVLVFJPTklLCisJCQkJWS4gRHVkdWxsdSBPcmcuIFNhbi4gQm9sLiBBbmQgU2FuYXlpIFNpdC4gTm8uNgorCQkJCVVtcmFuaXllCisJCQkJSXN0YW5idWwgRHVkdWxsdSAzNDc3NQorCQkJCVRVUktFWQorCiswMC0xRi00NCAgIChoZXgpCQlHRSBUcmFuc3BvcnRhdGlvbiBTeXN0ZW1zCiswMDFGNDQgICAgIChiYXNlIDE2KQkJR0UgVHJhbnNwb3J0YXRpb24gU3lzdGVtcworCQkJCTI5MDEgRWFzdCBMYWtlIFJvYWQKKwkJCQlFcmllIFBBIDE2NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi00NSAgIChoZXgpCQlFbnRlcmFzeXMKKzAwMUY0NSAgICAgKGJhc2UgMTYpCQlFbnRlcmFzeXMKKwkJCQk1MCBNaW51dGVtYW4gUm9hZAorCQkJCUFuZG92ZXIgTUEgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTQ2ICAgKGhleCkJCU5vcnRlbAorMDAxRjQ2ICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTIyMjEgTGFrZXNpZGUgQmx2ZAorCQkJCVJpY2hhcmRzb24gVGV4YXMgNzUwODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTQ3ICAgKGhleCkJCU1DUyBMb2dpYyBJbmMuCiswMDFGNDcgICAgIChiYXNlIDE2KQkJTUNTIExvZ2ljIEluYy4KKwkJCQk2Ri4gU2FtaG8gQ2VudGVyIEIgQmxkZy4sIDI3NS02CisJCQkJWWFuZ2phZS1Eb25nLCBTZWNoby1LdQorCQkJCVNlb3VsICAxMzctOTQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLTQ4ICAgKGhleCkJCU1vaml4IEluYy4KKzAwMUY0OCAgICAgKGJhc2UgMTYpCQlNb2ppeCBJbmMuCisJCQkJMTEwNzUgU2FudGEgTW9uaWNhIEJsdmQuCisJCQkJU3VpdGUgMzUwCisJCQkJTG9zIEFuZ2VsZXMgQ2EgOTAwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTQ5ICAgKGhleCkJCUV1cm9zYXQgRGlzdHJpYnV0aW9uIEx0ZAorMDAxRjQ5ICAgICAoYmFzZSAxNikJCUV1cm9zYXQgRGlzdHJpYnV0aW9uIEx0ZAorCQkJCTUgT3hnYXRlIENlbnRyZQorCQkJCU94Z2F0ZSBMYW5lCisJCQkJTG9uZG9uICBOVzIgN0pBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUYtNEEgICAoaGV4KQkJQWxiZW50aWEgU3lzdGVtcyBTLkEuCiswMDFGNEEgICAgIChiYXNlIDE2KQkJQWxiZW50aWEgU3lzdGVtcyBTLkEuCisJCQkJQWxiYWxhIDEzCisJCQkJTWFkcmlkICAyODAzNworCQkJCVNQQUlOCisKKzAwLTFGLTRCICAgKGhleCkJCUxpbmVhZ2UgUG93ZXIKKzAwMUY0QiAgICAgKGJhc2UgMTYpCQlMaW5lYWdlIFBvd2VyCisJCQkJMzAwMCBTa3lsaW5lIERyLgorCQkJCU1lc3F1aXRlIFRYIDc1MTQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi00QyAgIChoZXgpCQlSb3NlbWFuIEVuZ2luZWVyaW5nIEx0ZAorMDAxRjRDICAgICAoYmFzZSAxNikJCVJvc2VtYW4gRW5naW5lZXJpbmcgTHRkCisJCQkJNjUgV2Vpem1hbiBTdHJlZXQKKwkJCQlHaXZhdGFpbSBJc3JhZWwgNTM0NjgKKwkJCQlJU1JBRUwKKworMDAtMUYtNEQgICAoaGV4KQkJU2VnbmV0aWNzIExMQworMDAxRjREICAgICAoYmFzZSAxNikJCVNlZ25ldGljcyBMTEMKKwkJCQlTaGtpcGVyc2tpIHByb3RvayAxNAorCQkJCVNhaW50LVBldGVyc2J1cmcgIDE5OTEwNgorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRi00RSAgIChoZXgpCQlDb25NZWQgTGludmF0ZWMKKzAwMUY0RSAgICAgKGJhc2UgMTYpCQlDb25NZWQgTGludmF0ZWMKKwkJCQkxMTMxMSBDb25jZXB0IEJsdmQuCisJCQkJTGFyZ28gRkwgMzM3NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTRGICAgKGhleCkJCVRoaW5rd2FyZSBDby4gTHRkLgorMDAxRjRGICAgICAoYmFzZSAxNikJCVRoaW5rd2FyZSBDby4gTHRkLgorCQkJCTE1RkwsIEhhbm1pIFRvd2VyLCA0NSwKKwkJCQlCYW5naS1Eb25nLCBTb25ncGEtZ3UKKwkJCQlTZW91bCAgMTM4LTcyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi01MCAgIChoZXgpCQlTd2lzc2RpcyBBRworMDAxRjUwICAgICAoYmFzZSAxNikJCVN3aXNzZGlzIEFHCisJCQkJR3Jhc3dlZyA3CisJCQkJU2Nod2FyemhhZXVzZXJuIEJFIDQ5MTEKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xRi01MSAgIChoZXgpCQlIRCBDb21tdW5pY2F0aW9ucyBDb3JwCiswMDFGNTEgICAgIChiYXNlIDE2KQkJSEQgQ29tbXVuaWNhdGlvbnMgQ29ycAorCQkJCTIxODAgRmlmdGggQXZlCisJCQkJUm9ua29ua29tYSBOWSAxMTc3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNTIgICAoaGV4KQkJVVZUIFVudGVybmVobWVuc2JlcmF0dW5nIGZ1ciBWZXJrZWhyIHVuZCBUZWNobmlrIEdtYkgKKzAwMUY1MiAgICAgKGJhc2UgMTYpCQlVVlQgVW50ZXJuZWhtZW5zYmVyYXR1bmcgZnVyIFZlcmtlaHIgdW5kIFRlY2huaWsgR21iSAorCQkJCUpvc2Vmc3N0ci41NC01NgorCQkJCU1haW56IFJMUCA1NTExOAorCQkJCUdFUk1BTlkKKworMDAtMUYtNTMgICAoaGV4KQkJR0VNQUMgR2VzZWxsc2NoYWZ0IGZ1ciBNaWtyb2VsZWt0cm9uaWthbndlbmR1bmcgQ2hlbW5pdHogbWJICiswMDFGNTMgICAgIChiYXNlIDE2KQkJR0VNQUMgR2VzZWxsc2NoYWZ0IGZ1ciBNaWtyb2VsZWt0cm9uaWthbndlbmR1bmcgQ2hlbW5pdHogbWJICisJCQkJWndpY2thdWVyIFN0ci4gMjI3CisJCQkJQ2hlbW5pdHogU2FjaHNlbiAwOTExNgorCQkJCUdFUk1BTlkKKworMDAtMUYtNTQgICAoaGV4KQkJTG9yZXggVGVjaG5vbG9neSBJbmMuCiswMDFGNTQgICAgIChiYXNlIDE2KQkJTG9yZXggVGVjaG5vbG9neSBJbmMuCisJCQkJMzAwIEFsZGVuIFJvYWQKKwkJCQlNYXJraGFtIE9udGFyaW8gTDNSNEMxCisJCQkJQ0FOQURBCisKKzAwLTFGLTU1ICAgKGhleCkJCUhvbmV5d2VsbCBTZWN1cml0eSAoQ2hpbmEpIENvLiwgTHRkLgorMDAxRjU1ICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbCBTZWN1cml0eSAoQ2hpbmEpIENvLiwgTHRkLgorCQkJCUJsb2NrIDI4LCBTZWN0aW9uIDIsIEh1YWkgIERlIEN1aSBHYW5nIEluZHVzdHJpYWwgIEVzdGF0ZSwgRnUgWW9uZywgQmFvIEFuLCBTaGVuWmhlbiwgUC5SLiBDaGluYQorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMDMKKwkJCQlDSElOQQorCiswMC0xRi01NiAgIChoZXgpCQlESUdJVEFMIEZPUkVDQVNUCiswMDFGNTYgICAgIChiYXNlIDE2KQkJRElHSVRBTCBGT1JFQ0FTVAorCQkJCTV0aCBGbC4sIDUwNywgRSZDIFZlbnR1cmUgRHJlYW0gVG93ZXIgSUlJLCAxOTctMzMKKwkJCQlHdXJvIDMtZG9uZywgR3Vyby1ndQorCQkJCVNlb3VsIEd5dW5nZ2ktZG8gMTUyLTcxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi01NyAgIChoZXgpCQlQaG9uaWsgSW5ub3ZhdGlvbiBDby4sTFRECiswMDFGNTcgICAgIChiYXNlIDE2KQkJUGhvbmlrIElubm92YXRpb24gQ28uLExURAorCQkJCTI5LzE2NyBNb28yLCAzNDUgUmQsIExhbXBvLAorCQkJCUJhbmdidWF0aG9uZworCQkJCU5vbnRoYWJ1cmkgIDExMTEwCisJCQkJVEhBSUxBTkQKKworMDAtMUYtNTggICAoaGV4KQkJRU1IIEVuZXJnaWVtZXNzdGVjaG5payBHbWJICiswMDFGNTggICAgIChiYXNlIDE2KQkJRU1IIEVuZXJnaWVtZXNzdGVjaG5payBHbWJICisJCQkJVm9yIGRlbSBIYXNzZWwgMgorCQkJCUJyYWNrZWwgTmllZGVyc2FjaHNlbiAyMTQzOAorCQkJCUdFUk1BTlkKKworMDAtMUYtNTkgICAoaGV4KQkJS3JvbmJhY2sgVHJhY2VycworMDAxRjU5ICAgICAoYmFzZSAxNikJCUtyb25iYWNrIFRyYWNlcnMKKwkJCQljL28gSUhLLCBNMTQ2CisJCQkJTGF1dHJ1cHZhbmcgMTUKKwkJCQlCYWxsZXJ1cCBDb3BlbmhhZ2VuIDI3NTAKKwkJCQlERU5NQVJLCisKKzAwLTFGLTVBICAgKGhleCkJCUJlY2t3aXRoIEVsZWN0cmljIENvLgorMDAxRjVBICAgICAoYmFzZSAxNikJCUJlY2t3aXRoIEVsZWN0cmljIENvLgorCQkJCTYxOTAgMTE4dGggQXZlIE5vCisJCQkJTGFyZ28gRmxvcmlkYSAzMzc3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNUIgICAoaGV4KQkJQXBwbGUsIEluYy4KKzAwMUY1QiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCU1TIDM1LUdQTworCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNUMgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUY1QyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUYtNUQgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUY1RCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUYtNUUgICAoaGV4KQkJRHluYSBUZWNobm9sb2d5IENvLixMdGQuCiswMDFGNUUgICAgIChiYXNlIDE2KQkJRHluYSBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJSGFvSGFpIEJ1aWxkaW5nIDFGLE5vLjcsNXRoIFN0cmVldCxTaGFuZ2RpLAorCQkJCUhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0xRi01RiAgIChoZXgpCQlCbGF0YW5kIEdtYkgKKzAwMUY1RiAgICAgKGJhc2UgMTYpCQlCbGF0YW5kIEdtYkgKKwkJCQlMaWNodGVuYmVyZ3N0cmFzc2UgOAorCQkJCUdhcmNoaW5nIEJhdmFyaWEgODU3NDgKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLTYwICAgKGhleCkJCUNPTVBBU1MgU1lTVEVNUyBDT1JQLgorMDAxRjYwICAgICAoYmFzZSAxNikJCUNPTVBBU1MgU1lTVEVNUyBDT1JQLgorCQkJCTZGLCBOby4gNDEzLCBTZWMuIDIsIFRpLURpbmcgQmx2ZC4sCisJCQkJVGFpcGVpIE5laWh1RGlzdCAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTYxICAgKGhleCkJCVRhbGVudCBDb21tdW5pY2F0aW9uIE5ldHdvcmtzIEluYy4KKzAwMUY2MSAgICAgKGJhc2UgMTYpCQlUYWxlbnQgQ29tbXVuaWNhdGlvbiBOZXR3b3JrcyBJbmMuCisJCQkJUm0uIDkxMCBSJkYgUGxhemEsICM3NiwgSHVhbmdwdSBBdmUuIFdlc3QsCisJCQkJR3Vhbmd6aG91IChDYW50b24pIEd1YW5nZG9uZyBQcm92aW5jZSA1MTAzNjAKKwkJCQlDSElOQQorCiswMC0xRi02MiAgIChoZXgpCQlKU0MgIlN0aWxzb2Z0IgorMDAxRjYyICAgICAoYmFzZSAxNikJCUpTQyAiU3RpbHNvZnQiCisJCQkJTWF5YWtvdnNrb2dvIDE1CisJCQkJU3RhdnJvcG9sICAzNTUwMDAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUYtNjMgICAoaGV4KQkJSlNDIEdvb2R3aW4tRXVyb3BhCiswMDFGNjMgICAgIChiYXNlIDE2KQkJSlNDIEdvb2R3aW4tRXVyb3BhCisJCQkJMjAvNSBNYXJrc2lzdHNrYXlhIHN0LgorCQkJCU1vc2NvdyAgMTA5MTQ3CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFGLTY0ICAgKGhleCkJCUJlaWppbmcgQXV0ZWxhbiBUZWNobm9sb2d5IEluYy4KKzAwMUY2NCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEF1dGVsYW4gVGVjaG5vbG9neSBJbmMuCisJCQkJUm9vbSBCLTEyQjAxLCBLZXNoaSBQbGF6YSwgWGlueGkgcm9hZCwKKwkJCQlTaGFuZ2RpIHBhcmssSGFpZGlhbiwKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0xRi02NSAgIChoZXgpCQlLT1JFQSBFTEVDVFJJQyBURVJNSU5BTCBDTy4sIExURC4KKzAwMUY2NSAgICAgKGJhc2UgMTYpCQlLT1JFQSBFTEVDVFJJQyBURVJNSU5BTCBDTy4sIExURC4KKwkJCQkjNy0zOCBTT05HRE8tRE9ORworCQkJCVlFT05TVS1HVSBJTkNIRU9OIDQwNi04NDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtNjYgICAoaGV4KQkJUExBTkFSIExMQworMDAxRjY2ICAgICAoYmFzZSAxNikJCVBMQU5BUiBMTEMKKwkJCQkzMiwgRWxraW5hIHN0cgorCQkJCUNoZWx5YWJpbnNrIFNVIDQ1NDA5MQorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRi02NyAgIChoZXgpCQlIaXRhY2hpLEx0ZC4KKzAwMUY2NyAgICAgKGJhc2UgMTYpCQlIaXRhY2hpLEx0ZC4KKwkJCQlNaW5hbWlvaSA2LTI3LTE4LCBTaGluYWdhd2Eta3UKKwkJCQlUb2t5byAxNDAtODU3MgorCQkJCUpBUEFOCisKKzAwLTFGLTY4ICAgKGhleCkJCU1hcnRpbnNzb24gRWxla3Ryb25payBBQgorMDAxRjY4ICAgICAoYmFzZSAxNikJCU1hcnRpbnNzb24gRWxla3Ryb25payBBQgorCQkJCUJveCA5MDYwCisJCQkJSGFnZXJzdGVuIFN0b2NraG9sbSAxMjYgMDkKKwkJCQlTV0VERU4KKworMDAtMUYtNjkgICAoaGV4KQkJUGluZ29vZCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxRjY5ICAgICAoYmFzZSAxNikJCVBpbmdvb2QgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlSbTE5MTcsIFNvdXRoIEJsb2NrLCBDYW5nc29uZyBCbGRnLiwgVGFpcmFuIEluZHVzdHJpYWwgWm9uZSwgRnV0aWFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA0MAorCQkJCUNISU5BCisKKzAwLTFGLTZBICAgKGhleCkJCVBhY2tldEZsdXggVGVjaG5vbG9naWVzLCBJbmMuCiswMDFGNkEgICAgIChiYXNlIDE2KQkJUGFja2V0Rmx1eCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk1MCAxMXRoIEF2ZW51ZQorCQkJCUhlbGVuYSBNVCA1OTYwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNkIgICAoaGV4KQkJTEcgRWxlY3Ryb25pY3MKKzAwMUY2QiAgICAgKGJhc2UgMTYpCQlMRyBFbGVjdHJvbmljcworCQkJCTYwLTM5LEthc2FuLWRvbmcsS3VtY2hvbi1rdQorCQkJCVNlb3VsICAxNTMtMDIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLTZDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUY2QyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi02RCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFGNkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNkUgICAoaGV4KQkJVnRlY2ggRW5naW5lZXJpbmcgQ29ycG9yYXRpb24KKzAwMUY2RSAgICAgKGJhc2UgMTYpCQlWdGVjaCBFbmdpbmVlcmluZyBDb3Jwb3JhdGlvbgorCQkJCTIwIE5ldyBFbmdsYW5kIEJ1c2luZXNzIENlbnRlcgorCQkJCUFuZG92ZXIgTUEgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTZGICAgKGhleCkJCUZ1amlhbiBTdW5uYWRhIENvbW11bmljYXRpb24gQ28uLEx0ZC4KKzAwMUY2RiAgICAgKGJhc2UgMTYpCQlGdWppYW4gU3VubmFkYSBDb21tdW5pY2F0aW9uIENvLixMdGQuCisJCQkJNy9GPz9NYWluIEJ1aWxkaW5nPz9GdWppYW4gVG9yY2ggSGktVGVjaCBJbm5vdmF0aW9uIFBhcms/PyM2MTEgSW5kdXN0cmlhbCBSb2FkPz8gRnV6aG91Pz9QUkMgMzUwMDAyCisJCQkJNyMgQnVpbGRpbmcgQiBEaXN0cmljdCwgU29mdHdhcmUgUGFyaywgVG9uZ1BhbiBSb2FkIEZ1emhvdSwgUFJDIDM1MDAwMworCQkJCUZ1emhvdSBGdWppYW4gMzUwMDAyCisJCQkJQ0hJTkEKKworMDAtMUYtNzAgICAoaGV4KQkJQm90aWsgVGVjaG5vbG9naWVzIExURAorMDAxRjcwICAgICAoYmFzZSAxNikJCUJvdGlrIFRlY2hub2xvZ2llcyBMVEQKKwkJCQlUcnVkb3ZheWEsIDEKKwkJCQlQZXJlc2xhdmwtWmFsZXNza3kgWWFyb3NsYXZza2F5YSAxNTIwMjAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUYtNzEgICAoaGV4KQkJeEcgVGVjaG5vbG9neSwgSW5jLgorMDAxRjcxICAgICAoYmFzZSAxNikJCXhHIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyNDAgUy4gUGluZWFwcGxlIEF2ZW51ZQorCQkJCVN1aXRlIDcwMQorCQkJCVNhcmFzb3RhIEZMIDM0MjM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi03MiAgIChoZXgpCQlRaW5nRGFvIEhpcGhvbmUgVGVjaG5vbG9neSBDbywuTHRkCiswMDFGNzIgICAgIChiYXNlIDE2KQkJUWluZ0RhbyBIaXBob25lIFRlY2hub2xvZ3kgQ28sLkx0ZAorCQkJCU5PLjEwNixKaWFuZ1hpIFJvYWQKKwkJCQlRaW5nRGFvIFNoYW5Eb25nIDI2NjA3MQorCQkJCUNISU5BCisKKzAwLTFGLTczICAgKGhleCkJCVRlcmF2aWV3IFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFGNzMgICAgIChiYXNlIDE2KQkJVGVyYXZpZXcgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkyM0YsIE5vLiAyOS01LCBTZWMuIDIsIEpob25namhlbmcgRS4gUm9hZCwKKwkJCQlEYW5zaHVpIFRvd25zaGlwLAorCQkJCVRhaXBlaSBDb3VudHkgIDI1MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtNzQgICAoaGV4KQkJRWlnZW4gRGV2ZWxvcG1lbnQKKzAwMUY3NCAgICAgKGJhc2UgMTYpCQlFaWdlbiBEZXZlbG9wbWVudAorCQkJCTE4MDcgVzEwdGggQXZlCisJCQkJVmFuY291dmVyIEJDIFY2SiAyQTkKKwkJCQlDQU5BREEKKworMDAtMUYtNzUgICAoaGV4KQkJR2lCYWhuIE1lZGlhCiswMDFGNzUgICAgIChiYXNlIDE2KQkJR2lCYWhuIE1lZGlhCisJCQkJMTgxNiBSb3NlZGFsZSBTdXNlby1kb25nCisJCQkJS2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUtODg1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLTc2ICAgKGhleCkJCUFpckxvZ2ljIFN5c3RlbXMgSW5jLgorMDAxRjc2ICAgICAoYmFzZSAxNikJCUFpckxvZ2ljIFN5c3RlbXMgSW5jLgorCQkJCTMwMjIgUGVsZWtlIFN0LlN1aXRlIDEKKwkJCQlMaWh1J2UgSEkgOTY3NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTc3ICAgKGhleCkJCUhFT0wgREVTSUdOCiswMDFGNzcgICAgIChiYXNlIDE2KQkJSEVPTCBERVNJR04KKwkJCQkxIGJkIGQnYXJtb3IKKwkJCQlMQU5OSU9OIEJSRVRBR05FIDIyMzAwCisJCQkJRlJBTkNFCisKKzAwLTFGLTc4ICAgKGhleCkJCUJsdWUgRm94IFBvcmluaSBUZXh0aWxlCiswMDFGNzggICAgIChiYXNlIDE2KQkJQmx1ZSBGb3ggUG9yaW5pIFRleHRpbGUKKwkJCQkxMjA4IFBvaW50ZSBDZW50cmUgRHJpdmUKKwkJCQlTVEUgMjAwCisJCQkJQ2hhdHRhbm9vZ2EgVE4gMzc0MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTc5ICAgKGhleCkJCUxvZGFtIEVsZWN0cm9uaWNzIEEvUworMDAxRjc5ICAgICAoYmFzZSAxNikJCUxvZGFtIEVsZWN0cm9uaWNzIEEvUworCQkJCUthZXJ2ZWogNzcKKwkJCQlTP25kZXJib3JnIEFscyBESy02NDAwCisJCQkJREVOTUFSSworCiswMC0xRi03QSAgIChoZXgpCQlXaVdpZGUgSW5jLgorMDAxRjdBICAgICAoYmFzZSAxNikJCVdpV2lkZSBJbmMuCisJCQkJMTBCMTAsIEh1YSBKaWUgUGxhemEKKwkJCQkjMTMgRGEgWmhvbmcgU2ksIEhhaWRpYW4KKwkJCQlCZWlqaW5nICAxMDAwODkKKwkJCQlDSElOQQorCiswMC0xRi03QiAgIChoZXgpCQlUZWNoTmV4aW9uIEx0ZC4KKzAwMUY3QiAgICAgKGJhc2UgMTYpCQlUZWNoTmV4aW9uIEx0ZC4KKwkJCQkxN0YtMSwgTm8uIDE2LCBKaWFuIEJhIFJvYWQsCisJCQkJQ2h1bmcgSG8gIFRhaXBlaSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTdDICAgKGhleCkJCVdpdGVsY29tIEFTCiswMDFGN0MgICAgIChiYXNlIDE2KQkJV2l0ZWxjb20gQVMKKwkJCQlWZXJmdHNndCAxMAorCQkJCU1vc3MgT3N0Zm9sZCAxNTExCisJCQkJTk9SV0FZCisKKzAwLTFGLTdEICAgKGhleCkJCWVtYmVkZGVkIHdpcmVsZXNzIEdtYkgKKzAwMUY3RCAgICAgKGJhc2UgMTYpCQllbWJlZGRlZCB3aXJlbGVzcyBHbWJICisJCQkJU29mbGluZ2VyIFN0ci4gMTAwCisJCQkJVWxtIEJXIDg5MDc3CisJCQkJR0VSTUFOWQorCiswMC0xRi03RSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxRjdFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4uIFVTIDQ1CisJCQkJTGliZXJ0eXZpbGxlIElsbGlub2lzIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi03RiAgIChoZXgpCQlQaGFicml4IExpbWl0ZWQKKzAwMUY3RiAgICAgKGJhc2UgMTYpCQlQaGFicml4IExpbWl0ZWQKKwkJCQlCbGluZG1hbnMgR2F0ZSBDb3R0YWdlCisJCQkJV29vbHRvbiBIaWxsCisJCQkJTmV3YnVyeSBIYW1wc2hpcmUgUkcyMCA5WEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRi04MCAgIChoZXgpCQlMdWNhcyBIb2xkaW5nIGJ2CiswMDFGODAgICAgIChiYXNlIDE2KQkJTHVjYXMgSG9sZGluZyBidgorCQkJCURvbWVpbiAyOAorCQkJCUdlbWVydCBOQiA1NDIxQVIKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRi04MSAgIChoZXgpCQlBY2NlbCBTZW1pY29uZHVjdG9yIENvcnAKKzAwMUY4MSAgICAgKGJhc2UgMTYpCQlBY2NlbCBTZW1pY29uZHVjdG9yIENvcnAKKwkJCQkxRixNYWluYmxkZywxNDkgQ2h1biBYaWFvIFJvYWQsCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzAwLTFGLTgyICAgKGhleCkJCUNhbC1Db21wIEVsZWN0cm9uaWNzICYgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQKKzAwMUY4MiAgICAgKGJhc2UgMTYpCQlDYWwtQ29tcCBFbGVjdHJvbmljcyAmIENvbW11bmljYXRpb25zIENvLiwgTHRkCisJCQkJM0YsICMyMDUsIFNlYy4zIFBlaWhzaW4gUmQuCisJCQkJSHNpbnRlaW4gVGFpcGVpIENvdW50eSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTgzICAgKGhleCkJCVRlbGVwbGFuIFRlY2hub2xvZ3kgU2VydmljZXMgU2RuIEJoZAorMDAxRjgzICAgICAoYmFzZSAxNikJCVRlbGVwbGFuIFRlY2hub2xvZ3kgU2VydmljZXMgU2RuIEJoZAorCQkJCTI1ODAsIFRpbmdrYXQgUGVydXNhaGFhbiA0QgorCQkJCVpvbiBQZXJkYWdhbmdhbiBCZWJhcyBEdWEKKwkJCQlQZXJhaSBQZW5hbmcgMTM2MDAKKwkJCQlNQUxBWVNJQQorCiswMC0xRi04NCAgIChoZXgpCQlHaWdsZSBTZW1pY29uZHVjdG9yCiswMDFGODQgICAgIChiYXNlIDE2KQkJR2lnbGUgU2VtaWNvbmR1Y3RvcgorCQkJCUJhcmNlbG9uYSBBY3RpdmEgLSBWaXZlcm8gR2xvcmlhcworCQkJCUxsYWN1bmEgMTYyCisJCQkJQmFyY2Vsb25hICAwODAxOAorCQkJCVNQQUlOCisKKzAwLTFGLTg1ICAgKGhleCkJCUFwcml2YSBJU1MsIExMQworMDAxRjg1ICAgICAoYmFzZSAxNikJCUFwcml2YSBJU1MsIExMQworCQkJCTY5MDAgRSBDYW1lbGJhY2sgUmQKKwkJCQlTdWl0ZSA3MDAKKwkJCQlTY290dHNkYWxlIEFaIDg1MjUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi04NiAgIChoZXgpCQlkaWdFY29yCiswMDFGODYgICAgIChiYXNlIDE2KQkJZGlnRWNvcgorCQkJCTE2MjUgTi4gMTEwMCBXLgorCQkJCVNwcmluZ3ZpbGxlIFVUIDg0NjYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi04NyAgIChoZXgpCQlTa3lkaWdpdGFsIEluYy4KKzAwMUY4NyAgICAgKGJhc2UgMTYpCQlTa3lkaWdpdGFsIEluYy4KKwkJCQkjMjgtOSBXb25oeW9ybzEtZ2EsIFlvbmdzYW4tZ3UsCisJCQkJU2VvdWwgIDE0MC04NDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtODggICAoaGV4KQkJRk1TIEZvcmNlIE1lYXN1cmluZyBTeXN0ZW1zIEFHCiswMDFGODggICAgIChiYXNlIDE2KQkJRk1TIEZvcmNlIE1lYXN1cmluZyBTeXN0ZW1zIEFHCisJCQkJQXNwc3RyYXNzZSA2CisJCQkJT2JlcmdsYXR0IFp1cmljaCA4MTU0CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUYtODkgICAoaGV4KQkJU2lnbmFsaW9uIEdtYkgKKzAwMUY4OSAgICAgKGJhc2UgMTYpCQlTaWduYWxpb24gR21iSAorCQkJCVN1ZGhhdXN3ZWcgNQorCQkJCURyZXNkZW4gU2F4b255IDAxMDk5CisJCQkJR0VSTUFOWQorCiswMC0xRi04QSAgIChoZXgpCQlFbGxpb24gRGlnaXRhbCBJbmMuCiswMDFGOEEgICAgIChiYXNlIDE2KQkJRWxsaW9uIERpZ2l0YWwgSW5jLgorCQkJCVN1aXRlIDgwOSwgU2ljb3ggVG93ZXIsIDUxMy0xNCwgU2FuZ2RhZXdvbi1kb25nLCBKdW5nd29uLWd1CisJCQkJU3VuZ25hbS1jaXR5IEt5b25nZ2ktZG8gNDI2LTcyNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi04QiAgIChoZXgpCQlDYWNoZSBJUQorMDAxRjhCICAgICAoYmFzZSAxNikJCUNhY2hlIElRCisJCQkJODgzNCBOb3J0aCBDYXBpdGFsIG9mIFRleGFzIEh3eQorCQkJCUF1c3RpbiBUZXhhcyA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOEMgICAoaGV4KQkJQ0NTIEluYy4KKzAwMUY4QyAgICAgKGJhc2UgMTYpCQlDQ1MgSW5jLgorCQkJCVNoaW1vZGFjaGl1cmktYWdhcnUKKwkJCQlLYXJhc3VtYS1kb3JpLCBLYW1pZ3lvLWt1CisJCQkJS3lvdG8gS3lvdG8gNjAyLTgwMTEKKwkJCQlKQVBBTgorCiswMC0xRi04RCAgIChoZXgpCQlJbmdlbmlldXJidWVybyBTdGFyayBHbWJIIHVuZCBLby4gS0cKKzAwMUY4RCAgICAgKGJhc2UgMTYpCQlJbmdlbmlldXJidWVybyBTdGFyayBHbWJIIHVuZCBLby4gS0cKKwkJCQlSdWRvbGYtRGllc2VsLVN0cmFzc2UgNDQKKwkJCQlMYWljaGluZ2VuIEJXIDg5MTUwCisJCQkJR0VSTUFOWQorCiswMC0xRi04RSAgIChoZXgpCQlNZXRyaXMgVVNBIEluYy4KKzAwMUY4RSAgICAgKGJhc2UgMTYpCQlNZXRyaXMgVVNBIEluYy4KKwkJCQkxMjcwMSBHcmFuZCBSaXZlcgorCQkJCUJyaWdodG9uIE1JIDQ4MTE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi04RiAgIChoZXgpCQlTaGFuZ2hhaSBCZWxsbWFubiBEaWdpdGFsIFNvdXJjZSBDby4sTHRkLgorMDAxRjhGICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEJlbGxtYW5uIERpZ2l0YWwgU291cmNlIENvLixMdGQuCisJCQkJNDA0LTQwOCBNYWluIEJkLCBGRFVTUCwgTm8uMTEgR3VvdGFpIFJkLgorCQkJCVNoYW5naGFpICAyMDA0MzMKKwkJCQlDSElOQQorCiswMC0xRi05MCAgIChoZXgpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworMDAxRjkwICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi05MSAgIChoZXgpCQlEQlMgTG9kZ2luZyBUZWNobm9sb2dpZXMsIExMQworMDAxRjkxICAgICAoYmFzZSAxNikJCURCUyBMb2RnaW5nIFRlY2hub2xvZ2llcywgTExDCisJCQkJMjExOTYgTGltYmVyCisJCQkJTWlzc2lvbiBWaWVqbyBDQSA5MjY5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOTIgICAoaGV4KQkJVmlkZW9JUSwgSW5jLgorMDAxRjkyICAgICAoYmFzZSAxNikJCVZpZGVvSVEsIEluYy4KKwkJCQkyMTMgQnVybGluZ3RvbiBSb2FkCisJCQkJU3VpdGUgMTA0CisJCQkJQmVkZm9yZCBNQSAwMTczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOTMgICAoaGV4KQkJWGlvdGVjaCBDb3Jwb3JhdGlvbgorMDAxRjkzICAgICAoYmFzZSAxNikJCVhpb3RlY2ggQ29ycG9yYXRpb24KKwkJCQk2NDU1IEZseWluZyBDbG91ZCBEcml2ZQorCQkJCUVkZW4gUHJhaXJpZSBNTiA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOTQgICAoaGV4KQkJTGFzY2FyIEVsZWN0cm9uaWNzIEx0ZAorMDAxRjk0ICAgICAoYmFzZSAxNikJCUxhc2NhciBFbGVjdHJvbmljcyBMdGQKKwkJCQlNb2R1bGUgSG91c2UKKwkJCQlXaGl0ZXBhcmlzaAorCQkJCU5yIFNhbGlzYnVyeSBXaWx0c2hpcmUgU1A1IDJTSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFGLTk1ICAgKGhleCkJCVNBR0VNIENPTU1VTklDQVRJT04KKzAwMUY5NSAgICAgKGJhc2UgMTYpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCisJCQkJMTQgUnVlIFBhdWwgRGF1dGllcgorCQkJCVZlbGl6eSAgNzg0NTcKKwkJCQlGUkFOQ0UKKworMDAtMUYtOTYgICAoaGV4KQkJQVBST1RFQ0ggQ08uTFRECiswMDFGOTYgICAgIChiYXNlIDE2KQkJQVBST1RFQ0ggQ08uTFRECisJCQkJS09MT05ESUdJVEFMIFRPV0VSIEFTVE9OIDIwMSwgNTA1LTE0CisJCQkJR0FTQU4tRE9ORyxLVU1DSE9OLUdVCisJCQkJU0VPVUwgIEtTWFggMDAyMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi05NyAgIChoZXgpCQlCRVJUQU5BIFNSTAorMDAxRjk3ICAgICAoYmFzZSAxNikJCUJFUlRBTkEgU1JMCisJCQkJVklBTEUgR0FMSUxFTyBGRVJSQVJJUyAyNworCQkJCUJSVUlOTyBUT1JJTk8gMTAwOTAKKwkJCQlJVEFMWQorCiswMC0xRi05OCAgIChoZXgpCQlEQUlJQ0hJLURFTlRTVSBMVEQuCiswMDFGOTggICAgIChiYXNlIDE2KQkJREFJSUNISS1ERU5UU1UgTFRELgorCQkJCU9PTU9SSSA2OTAtMQorCQkJCUtBTkkgR0lGVSA1MDktMDIzOAorCQkJCUpBUEFOCisKKzAwLTFGLTk5ICAgKGhleCkJCVNFUk9OSUNTIGNvLmx0ZAorMDAxRjk5ICAgICAoYmFzZSAxNikJCVNFUk9OSUNTIGNvLmx0ZAorCQkJCSM0MDEgVGVjaG5vcG9saXMsCisJCQkJNzExSG9zYW4tZG9uZywgRGFsc2VvLWd1CisJCQkJRGFlZ3UgR3llb25nLWJ1ayA3MDQtMjMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLTlBICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAxRjlBICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTIyMjEgTGFrZXNpZGUgQmx2ZAorCQkJCVJpY2hhcmRzb24gVFggNzUwODItNDM5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOUIgICAoaGV4KQkJUE9TQlJPCiswMDFGOUIgICAgIChiYXNlIDE2KQkJUE9TQlJPCisJCQkJU2hpbnlvdW5nR3Rvd2VyIDZGLCAyNzEtMQorCQkJCVNlb2h5dW4tZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpIEt5dW5nZ2ktZG8gNDYzLTgyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi05QyAgIChoZXgpCQlMRURDTworMDAxRjlDICAgICAoYmFzZSAxNikJCUxFRENPCisJCQkJNDc4MDEgVyBBbmNob3IgQ291cnQKKwkJCQlQbHltb3V0aCBNSSA0ODE3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOUQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRjlEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTlFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUY5RSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi05RiAgIChoZXgpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorMDAxRjlGICAgICAoYmFzZSAxNikJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCisJCQkJUHJpbnMgQm91ZGV3aWpubGFhbiA0NworCQkJCUVkZWdlbSBBbnR3ZXJwIEItMjY1MAorCQkJCUJFTEdJVU0KKworMDAtMUYtQTAgICAoaGV4KQkJQTEwIE5ldHdvcmtzCiswMDFGQTAgICAgIChiYXNlIDE2KQkJQTEwIE5ldHdvcmtzCisJCQkJMjMwOSBCZXJpbmcgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQTEgICAoaGV4KQkJR3RyYW4gSW5jCiswMDFGQTEgICAgIChiYXNlIDE2KQkJR3RyYW4gSW5jCisJCQkJMjY1MSBMYXZlcnkgQ291cnQKKwkJCQlOZXdidXJ5IFBhcmsgQ0EgOTEzMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUEyICAgKGhleCkJCURhdHJvbiBXb3JsZCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAxRkEyICAgICAoYmFzZSAxNikJCURhdHJvbiBXb3JsZCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTMwMzAgRW50ZXJwcmlzZSBDb3VydAorCQkJCVZpc3RhIENhbGlmb3JuaWEgOTIwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUEzICAgKGhleCkJCVQmVyBFbGVjdHJvbmljcyhTaGVuemhlbilDby4sTHRkLgorMDAxRkEzICAgICAoYmFzZSAxNikJCVQmVyBFbGVjdHJvbmljcyhTaGVuemhlbilDby4sTHRkLgorCQkJCTJGLEJhaXlpbmcgQnVpbGRpbmcsIE5vLjEwMTksCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA2NworCQkJCUNISU5BCisKKzAwLTFGLUE0ICAgKGhleCkJCVNoZW5aaGVuIEdvbmdqaW4gRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAxRkE0ICAgICAoYmFzZSAxNikJCVNoZW5aaGVuIEdvbmdqaW4gRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCTRGLEJhaXlpbmcgQnVpbGRpbmcsIE5vLjEwMTksTmFuaGFpIFJELFNoZWtvdSwKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDY3CisJCQkJQ0hJTkEKKworMDAtMUYtQTUgICAoaGV4KQkJQmx1ZS1XaGl0ZSBJbmR1c3RyaWVzCiswMDFGQTUgICAgIChiYXNlIDE2KQkJQmx1ZS1XaGl0ZSBJbmR1c3RyaWVzCisJCQkJNTMwMCBCdXNpbmVzcyBEcml2ZQorCQkJCUh1bnRpbmd0b24gQmVhY2ggQ0EgOTI2NDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUE2ICAgKGhleCkJCVN0aWxvIHNybAorMDAxRkE2ICAgICAoYmFzZSAxNikJCVN0aWxvIHNybAorCQkJCVZpYSBCZXNhbmEsIDQKKwkJCQkyMDEyMiBNaWxhbm8gCisJCQkJSVRBTFkKKworMDAtMUYtQTcgICAoaGV4KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50IEluYy4KKzAwMUZBNyAgICAgKGJhc2UgMTYpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgSW5jLgorCQkJCTItNi0yMSBNaW5hbWktQW95YW1hLAorCQkJCU1pbmF0by1rdSBUb2t5byAxMDctMDA2MgorCQkJCUpBUEFOCisKKzAwLTFGLUE4ICAgKGhleCkJCVNtYXJ0IEVuZXJneSBJbnN0cnVtZW50cyBJbmMuCiswMDFGQTggICAgIChiYXNlIDE2KQkJU21hcnQgRW5lcmd5IEluc3RydW1lbnRzIEluYy4KKwkJCQkyOTcgTGFrZXNob3JlIFJvYWQgRWFzdAorCQkJCVVuaXQgMQorCQkJCU9ha3ZpbGxlIE9udGFyaW8gTDZKIDFKMworCQkJCUNBTkFEQQorCiswMC0xRi1BOSAgIChoZXgpCQlBdGxhbnRhIERUSCwgSW5jLgorMDAxRkE5ICAgICAoYmFzZSAxNikJCUF0bGFudGEgRFRILCBJbmMuCisJCQkJNTM4OCBOZXcgUGVhY2h0cmVlIFJkCisJCQkJQ2hhbWJsZWUgR0EgMzAzNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUFBICAgKGhleCkJCVRhc2VvbiwgSW5jLgorMDAxRkFBICAgICAoYmFzZSAxNikJCVRhc2VvbiwgSW5jLgorCQkJCSAzMDk5IE4uIEZpcnN0IFN0cmVldAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1BQiAgIChoZXgpCQlJLlMgSElHSCBURUNILklOQworMDAxRkFCICAgICAoYmFzZSAxNikJCUkuUyBISUdIIFRFQ0guSU5DCisJCQkJNjAzLTEsU3VuZ2Jvbi1yaSxEYWVzby1teXVuCisJCQkJRXVtc3VuZy1ndW4gQ2h1bmdjaGVvbmdidWstZG8gMzY5LTgyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi1BQyAgIChoZXgpCQlHb29kbWlsbCBTeXN0ZW1zIEx0ZAorMDAxRkFDICAgICAoYmFzZSAxNikJCUdvb2RtaWxsIFN5c3RlbXMgTHRkCisJCQkJU2luaWthbGxpb250aWUgMTAKKwkJCQlFc3BvbyBVdXNpbWFhIDAyNjMwCisJCQkJRklOTEFORAorCiswMC0xRi1BRCAgIChoZXgpCQlCcm93biBJbm5vdmF0aW9ucywgSW5jCiswMDFGQUQgICAgIChiYXNlIDE2KQkJQnJvd24gSW5ub3ZhdGlvbnMsIEluYworCQkJCTM2OSBDb25ncmVzcyBTdHJlZXQKKwkJCQlGb3VydGggRmxvb3IKKwkJCQlCb3N0b24gTUEgMDIyMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUFFICAgKGhleCkJCUJsaWNrIFNvdXRoIEFmcmljYSAoUHR5KSBMdGQKKzAwMUZBRSAgICAgKGJhc2UgMTYpCQlCbGljayBTb3V0aCBBZnJpY2EgKFB0eSkgTHRkCisJCQkJUE8gQm94IDE5MDgKKwkJCQlSaXZvbmlhCisJCQkJSm9oYW5uZXNidXJnIEdhdXRlbmcgMjEwOAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xRi1BRiAgIChoZXgpCQlOZXh0SU8sIEluYy4KKzAwMUZBRiAgICAgKGJhc2UgMTYpCQlOZXh0SU8sIEluYy4KKwkJCQkxMjQwMSBSZXNlYXJjaCBCbHZkLgorCQkJCUJsZGcuIDIgU3VpdGUgMjAwCisJCQkJQXVzdGluIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1CMCAgIChoZXgpCQlUaW1lSVBTLCBJbmMuCiswMDFGQjAgICAgIChiYXNlIDE2KQkJVGltZUlQUywgSW5jLgorCQkJCTM1MjIgTiBDb21vdGFyYSBTdAorCQkJCVdpY2hpdGEgS1MgNjcyMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUIxICAgKGhleCkJCUN5YmVydGVjaCBJbmMuCiswMDFGQjEgICAgIChiYXNlIDE2KQkJQ3liZXJ0ZWNoIEluYy4KKwkJCQk5MzUgSG9yc2hhbSBSZAorCQkJCVVuaXQgSQorCQkJCUhvcnNoYW0gUEEgMTkwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUIyICAgKGhleCkJCVNvbnRoZWltIEluZHVzdHJpZSBFbGVrdHJvbmlrIEdtYkgKKzAwMUZCMiAgICAgKGJhc2UgMTYpCQlTb250aGVpbSBJbmR1c3RyaWUgRWxla3Ryb25payBHbWJICisJCQkJRGllc2Vsc3RyYXNzZSA3CisJCQkJS2VtcHRlbiBBbGxnYWV1IEJhdmFyaWEgRC04NzQzNworCQkJCUdFUk1BTlkKKworMDAtMUYtQjMgICAoaGV4KQkJMldpcmUKKzAwMUZCMyAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUI0ICAgKGhleCkJCVNtYXJ0U2hhcmUgU3lzdGVtcworMDAxRkI0ICAgICAoYmFzZSAxNikJCVNtYXJ0U2hhcmUgU3lzdGVtcworCQkJCVRvYmFrc3ZlamVuIDI1LCAxLiB0aC4KKwkJCQlTb2Vib3JnICBESy0yODYwCisJCQkJREVOTUFSSworCiswMC0xRi1CNSAgIChoZXgpCQlJL08gSW50ZXJjb25uZWN0IEluYy4KKzAwMUZCNSAgICAgKGJhc2UgMTYpCQlJL08gSW50ZXJjb25uZWN0IEluYy4KKwkJCQkxMjAyIEUgV2FrZWhhbSBBdmUKKwkJCQlTYW50YSBBbmEgQ0EgOTI3MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUI2ICAgKGhleCkJCUNoaSBMaW4gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMUZCNiAgICAgKGJhc2UgMTYpCQlDaGkgTGluIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uMTgsIFNoZW5nIExpIDFzdCBTdC4sIEplbiBUZSBIc2lhbmcsCisJCQkJVGFpbmFuIFRhaXdhbiA3MTc1OAorCQkJCUNISU5BCisKKzAwLTFGLUI3ICAgKGhleCkJCVdpTWF0ZSBUZWNobm9sb2dpZXMgQ29ycC4KKzAwMUZCNyAgICAgKGJhc2UgMTYpCQlXaU1hdGUgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJMTRBIEJ1aWxkaW5nIDIsIEd1aW1pYW8gR2FyZGVuLCBOYW5ndWFuZ2x1LCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NAorCQkJCUNISU5BCisKKzAwLTFGLUI4ICAgKGhleCkJCVVuaXZlcnNhbCBSZW1vdGUgQ29udHJvbCwgSW5jLgorMDAxRkI4ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBSZW1vdGUgQ29udHJvbCwgSW5jLgorCQkJCTUwMCBNYW1hcm9uZWNrIEF2ZW51ZQorCQkJCVN1aXRlIDUwMgorCQkJCUhhcnJpc29uIE5ZIDEwNTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1COSAgIChoZXgpCQlQYWx0cm9uaWNzCiswMDFGQjkgICAgIChiYXNlIDE2KQkJUGFsdHJvbmljcworCQkJCTExNDUgUGFsdHJvbmljcyBDdAorCQkJCUNyeXN0YWwgTGFrZSBJTCA2MDAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQkEgICAoaGV4KQkJQm9Zb3VuZyBUZWNoLiAmIE1hcmtldGluZywgSW5jLgorMDAxRkJBICAgICAoYmFzZSAxNikJCUJvWW91bmcgVGVjaC4gJiBNYXJrZXRpbmcsIEluYy4KKwkJCQlZb3VuZ2RldW5ncG8tR3UgTXVucmFlM2dhIDg0LTIKKwkJCQlEb25nZ3VrIE1lcnRpYW4gNjAyCisJCQkJU2VvdWwgIDE1MC0wOTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtQkIgICAoaGV4KQkJWGVuYXRlY2ggQ28uLExURAorMDAxRkJCICAgICAoYmFzZSAxNikJCVhlbmF0ZWNoIENvLixMVEQKKwkJCQkgNTE0LTIgWWEgVGFiLURvbmcgQnVuIERhbmcgR3UKKwkJCQlTZW9uZyBuYW1zaSBHeW9uZyBnaS1kbyA0NjMtODM5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLUJDICAgKGhleCkJCUVWR0EgQ29ycG9yYXRpb24KKzAwMUZCQyAgICAgKGJhc2UgMTYpCQlFVkdBIENvcnBvcmF0aW9uCisJCQkJMjkwMCBTYXR1cm4gU3QuCisJCQkJU3VpdGUgQgorCQkJCUJyZWEgQ0EgOTI4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUJEICAgKGhleCkJCUt5b2NlcmEgV2lyZWxlc3MgQ29ycC4KKzAwMUZCRCAgICAgKGJhc2UgMTYpCQlLeW9jZXJhIFdpcmVsZXNzIENvcnAuCisJCQkJMTAzMDAgQ2FtcHVzIFBvaW50IERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1CRSAgIChoZXgpCQlTaGVuemhlbiBNb3BuZXQgSW5kdXN0cmlhbCBDby4sTHRkCiswMDFGQkUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gTW9wbmV0IEluZHVzdHJpYWwgQ28uLEx0ZAorCQkJCUYgMy5Oby4zIEtleXVhbiBSZC4KKwkJCQlTaGVuemhlbiBOYW5zaGFuIFNjaWVuY2UmSW5kdXN0cnkgUGFyaworCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xRi1CRiAgIChoZXgpCQlGdWxodWEgTWljcm9lbGVjdHJvbmljcyBDb3JwLiBUYWl3YW4gQnJhbmNoCiswMDFGQkYgICAgIChiYXNlIDE2KQkJRnVsaHVhIE1pY3JvZWxlY3Ryb25pY3MgQ29ycC4gVGFpd2FuIEJyYW5jaAorCQkJCTFGLCBOby4xMiwgUiZEIFJvYWQsCisJCQkJU2NpZW5jZS1iYXNlZCBJbmQuIFBhcmssCisJCQkJSHNpbi1DaHUsIDMwMCAgODg2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi1DMCAgIChoZXgpCQlDb250cm9sIEV4cHJlc3MgRmlubGFuZCBPeQorMDAxRkMwICAgICAoYmFzZSAxNikJCUNvbnRyb2wgRXhwcmVzcyBGaW5sYW5kIE95CisJCQkJTGFpdGFhdHNpbGxhbnRpZSAzCisJCQkJU2F2b25saW5uYSAgNTcxNzAKKwkJCQlGSU5MQU5ECisKKzAwLTFGLUMxICAgKGhleCkJCUhhbmxvbmcgVGVjaG5vbG9neSBDby4sTFRECiswMDFGQzEgICAgIChiYXNlIDE2KQkJSGFubG9uZyBUZWNobm9sb2d5IENvLixMVEQKKwkJCQlSTS4yMjIwLEJsb2NrIEIsTmV3IENlbnR1cnkgUGxhemEsMSBUYWkgUGluZyBOYW4gUm9hZCwKKwkJCQlOYW5qaW5nIEppYW5nc3UgMjEwMDAyCisJCQkJQ0hJTkEKKworMDAtMUYtQzIgICAoaGV4KQkJSm93IFRvbmcgVGVjaG5vbG9neSBDbyBMdGQKKzAwMUZDMiAgICAgKGJhc2UgMTYpCQlKb3cgVG9uZyBUZWNobm9sb2d5IENvIEx0ZAorCQkJCTQ2IExhbmUgMzM3IENodW5nIENoZW5nIFJkCisJCQkJWXVuZyBLYW5nIENpdHkgVGFpbmFuIENvdW50eSA3MTA2NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtQzMgICAoaGV4KQkJU21hcnRTeW5jaCwgSW5jCiswMDFGQzMgICAgIChiYXNlIDE2KQkJU21hcnRTeW5jaCwgSW5jCisJCQkJNDQwMCBPbGQgQ2FudG9uIFJkCisJCQkJU3VpdGUgMzAwCisJCQkJSmFja3NvbiBNUyAzOTIxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQzQgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDFGQzQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQzUgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDFGQzUgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gS1lPVE8gNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xRi1DNiAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMUZDNiAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91LFRhaXBlaSAxMTIKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtQzcgICAoaGV4KQkJQ2FzaW8gSGl0YWNoaSBNb2JpbGUgQ29tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMUZDNyAgICAgKGJhc2UgMTYpCQlDYXNpbyBIaXRhY2hpIE1vYmlsZSBDb211bmljYXRpb25zIENvLiwgTHRkLgorCQkJCTItMjI5LTEsIFNha3VyYWdhb2thCisJCQkJSGlnYXNoaXlhbWF0by1zaGkgVG9reW8gMjA3LTg1MDEKKwkJCQlKQVBBTgorCiswMC0xRi1DOCAgIChoZXgpCQlVcC1Ub2RheSBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAxRkM4ICAgICAoYmFzZSAxNikJCVVwLVRvZGF5IEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJNy9GLiwgVW5pZnkgQ29tbWVyY2lhbCAmIEluZHVzdHJpYWwgQnVpbGRpbmcKKwkJCQkzMSBUYWkgWWlwIFN0cmVldCwgS3d1biBUb25nLAorCQkJCUtvd2xvb24gIAorCQkJCUhPTkcgS09ORworCiswMC0xRi1DOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFGQzkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQ0EgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRkNBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUNCICAgKGhleCkJCU5JVyBTb2x1dGlvbnMKKzAwMUZDQiAgICAgKGJhc2UgMTYpCQlOSVcgU29sdXRpb25zCisJCQkJUC5PLiBCb3ggNjIKKwkJCQlPbmUgVHJlZSBIaWxsIFNvdXRoIEF1c3RyYWxpYSA1MTE0CisJCQkJQVVTVFJBTElBCisKKzAwLTFGLUNDICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAxRkNDICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi1DRCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCiswMDFGQ0QgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi1DRSAgIChoZXgpCQlRVEVDSCBMTEMKKzAwMUZDRSAgICAgKGJhc2UgMTYpCQlRVEVDSCBMTEMKKwkJCQlOb3ZvemF2b2Rza2F5YSBzdC4gMTggYnVpbGQuIDEKKwkJCQlNb3Njb3cgTW9zY293IHJlZ2lvbiAxMjEzMDkKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUYtQ0YgICAoaGV4KQkJTVNJIFRlY2hub2xvZ3kgR21iSAorMDAxRkNGICAgICAoYmFzZSAxNikJCU1TSSBUZWNobm9sb2d5IEdtYkgKKwkJCQlIYW5hdWVyIExhbmRzdHJhc3NlIDMyOC0zMzAKKwkJCQlGcmFua2Z1cnQgYW0gTWFpbiBIZXNzZW4gNjAzMTQKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLUQwICAgKGhleCkJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCiswMDFGRDAgICAgIChiYXNlIDE2KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQlOby4yMTUsTmFuLVBpbmcgUm9hZCwKKwkJCQlQaW4tSmVuIFRhb3l1YW4gMzI0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi1EMSAgIChoZXgpCQlPUFRFWCBDTy4sTFRELgorMDAxRkQxICAgICAoYmFzZSAxNikJCU9QVEVYIENPLixMVEQuCisJCQkJNS04LTEyCisJCQkJT2dvdG8KKwkJCQlPdHN1IFNoaWdhIDUyMC0wMTAxCisJCQkJSkFQQU4KKworMDAtMUYtRDIgICAoaGV4KQkJQ09NTVRFQ0ggVEVDSE5PTE9HWSBNQUNBTyBDT01NRVJDSUFMIE9GRlNIT1JFIExURC4KKzAwMUZEMiAgICAgKGJhc2UgMTYpCQlDT01NVEVDSCBURUNITk9MT0dZIE1BQ0FPIENPTU1FUkNJQUwgT0ZGU0hPUkUgTFRELgorCQkJCTMxLFRBSSBZSVAgU1RSRUVULCA3L0YgS1dVTiBUT05HLAorCQkJCUtPV0xPT04sIEhPTkdLT05HIAorCQkJCUNISU5BCisKKzAwLTFGLUQzICAgKGhleCkJCVJJVkEgTmV0d29ya3MgSW5jLgorMDAxRkQzICAgICAoYmFzZSAxNikJCVJJVkEgTmV0d29ya3MgSW5jLgorCQkJCTU1NSBSaXZhIEF2ZQorCQkJCUVhc3QgQnJ1bnN3aWNrIE5KIDA4ODE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1ENCAgIChoZXgpCQk0SVBORVQsIElOQy4KKzAwMUZENCAgICAgKGJhc2UgMTYpCQk0SVBORVQsIElOQy4KKwkJCQkzODEyOSBDQU1CUklER0UgQ09VUlQKKwkJCQlGUkVNT05UIENBIDk0NTM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1ENSAgIChoZXgpCQlNSUNST1JJU0Mgcy5yLm8uCiswMDFGRDUgICAgIChiYXNlIDE2KQkJTUlDUk9SSVNDIHMuci5vLgorCQkJCURlbG5pY2thIDIyMgorCQkJCUppY2luIGtyYWxvdmVocmFkZWNreSBrcmFqIDUwNjAxCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMUYtRDYgICAoaGV4KQkJU2hlbnpoZW4gQWxseXdsbAorMDAxRkQ2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEFsbHl3bGwKKwkJCQlLZWppeXVhbiBOYW5zaGFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTFGLUQ3ICAgKGhleCkJCVRFTEVSQUQgU0EKKzAwMUZENyAgICAgKGJhc2UgMTYpCQlURUxFUkFEIFNBCisJCQkJMiwgYXZlbnVlIGRlIGxhIGJ1dHRlIGF1eCBjYWlsbGVzCisJCQkJQU5HTEVUICA2NDYwMAorCQkJCUZSQU5DRQorCiswMC0xRi1EOCAgIChoZXgpCQlBLVRSVVNUIENPTVBVVEVSIENPUlBPUkFUSU9OCiswMDFGRDggICAgIChiYXNlIDE2KQkJQS1UUlVTVCBDT01QVVRFUiBDT1JQT1JBVElPTgorCQkJCTNGLiwgTk8uMzYxLCBGVVNJTkcgMVNUIFJELiwgR1VFSVNIQU4gVE9XTlNISVAsCisJCQkJVEFPWVVBTiAgMzMzNzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLUQ5ICAgKGhleCkJCVJTRCBDb21tdW5pY2F0aW9ucyBMdGQKKzAwMUZEOSAgICAgKGJhc2UgMTYpCQlSU0QgQ29tbXVuaWNhdGlvbnMgTHRkCisJCQkJOCBCb3Jyb3dtZWFkb3cgUm9hZAorCQkJCVNwcmluZ2tlcnNlIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJU3RpcmxpbmcgU2NvdGxhbmQgRks3IDdVVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFGLURBICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAxRkRBICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTIyMjEgTGFrZXNpZGUgQmx2ZAorCQkJCVJpY2hhcmRzb24gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLURCICAgKGhleCkJCU5ldHdvcmsgU3VwcGx5IENvcnAuLAorMDAxRkRCICAgICAoYmFzZSAxNikJCU5ldHdvcmsgU3VwcGx5IENvcnAuLAorCQkJCTE5MzggTkFLQURBSVJBIEtBTkFFCisJCQkJSUlEQSBOQUdBTk8gMzk1LTA4MDEKKwkJCQlKQVBBTgorCiswMC0xRi1EQyAgIChoZXgpCQlNb2JpbGUgU2FmZSBUcmFjayBMdGQKKzAwMUZEQyAgICAgKGJhc2UgMTYpCQlNb2JpbGUgU2FmZSBUcmFjayBMdGQKKwkJCQlOaWVtZW5rYXR1IDczCisJCQkJMTUxNDkgTGFodGkgCisJCQkJRklOTEFORAorCiswMC0xRi1ERCAgIChoZXgpCQlHREkgTExDCiswMDFGREQgICAgIChiYXNlIDE2KQkJR0RJIExMQworCQkJCU9uZSBNaWRBbWVyaWNhIFBsYXphCisJCQkJU3VpdGUgMTAxMAorCQkJCU9ha2Jyb29rIFRlcnJhY2UgSUwgNjAxODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLURFICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFGREUgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTFGLURGICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFGREYgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTFGLUUwICAgKGhleCkJCUVkZ2VWZWxvY2l0eSBDb3JwCiswMDFGRTAgICAgIChiYXNlIDE2KQkJRWRnZVZlbG9jaXR5IENvcnAKKwkJCQkzIEJvdXJib24gU3RyZWV0CisJCQkJUGVhYm9keSBNQSAwMTk2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtRTEgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMUZFMSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCTY2LCBDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLUUyICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCiswMDFGRTIgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKwkJCQk2NiwgQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi1FMyAgIChoZXgpCQlMRyBFbGVjdHJvbmljcworMDAxRkUzICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzCisJCQkJNjAtMzksS2FzYW4tZG9uZyxLdW1jaG9uLWt1LAorCQkJCVNlb3VsICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLUU0ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCiswMDFGRTQgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTa2FuZSAyMjE4OAorCQkJCVNXRURFTgorCiswMC0xRi1FNSAgIChoZXgpCQlJbi1DaXJjdWl0IEdtYkgKKzAwMUZFNSAgICAgKGJhc2UgMTYpCQlJbi1DaXJjdWl0IEdtYkgKKwkJCQlLb25pZ3NicnVja2VyIFN0cmFzc2UgNjkKKwkJCQlEcmVzZGVuICAwMTA5OQorCQkJCUdFUk1BTlkKKworMDAtMUYtRTYgICAoaGV4KQkJQWxwaGlvbiBDb3Jwb3JhdGlvbgorMDAxRkU2ICAgICAoYmFzZSAxNikJCUFscGhpb24gQ29ycG9yYXRpb24KKwkJCQkxOTYgUHJpbmNldG9uIEhpZ2h0c3Rvd24gUm9hZAorCQkJCVN1aXRlIDFBCisJCQkJUHJpbmNldG9uIEp1bmN0aW9uIE5ldyBKZXJzZXkgMDg1NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUU3ICAgKGhleCkJCVNpbWV0CiswMDFGRTcgICAgIChiYXNlIDE2KQkJU2ltZXQKKwkJCQlTdHJhZGEgZGVsIFBvcnRvbmUgMTI5CisJCQkJR3J1Z2xpYXNjbyBUb3Jpbm8gMTAwOTUKKwkJCQlJVEFMWQorCiswMC0xRi1FOCAgIChoZXgpCQlLVVJVU1VHQVdBIEVsZWN0cm9uaWNzIEluZHVzdHJ5IEluYywuCiswMDFGRTggICAgIChiYXNlIDE2KQkJS1VSVVNVR0FXQSBFbGVjdHJvbmljcyBJbmR1c3RyeSBJbmMsLgorCQkJCTJGLCA1Mi01LCBOb2dhdGEgNmNob21lCisJCQkJTmFrYW5vLUt1IFRPS1lPIDE2NS0wMDI3CisJCQkJSkFQQU4KKworMDAtMUYtRTkgICAoaGV4KQkJUHJpbnRyZXgsIEluYy4KKzAwMUZFOSAgICAgKGJhc2UgMTYpCQlQcmludHJleCwgSW5jLgorCQkJCTI3NiBFYXN0IEdpc2ggUm9hZAorCQkJCVNhbiBKb3NlIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1FQSAgIChoZXgpCQlBcHBsaWVkIE1lZGlhIFRlY2hub2xvZ2llcyBDb3Jwb3JhdGlvbgorMDAxRkVBICAgICAoYmFzZSAxNikJCUFwcGxpZWQgTWVkaWEgVGVjaG5vbG9naWVzIENvcnBvcmF0aW9uCisJCQkJNDA5MSBBTVRDIENlbnRlciBEcml2ZQorCQkJCUNsZWFyd2F0ZXIgRkwgMzM3NjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUVCICAgKGhleCkJCVRyaW8gRGF0YWNvbSBQdHkgTHRkCiswMDFGRUIgICAgIChiYXNlIDE2KQkJVHJpbyBEYXRhY29tIFB0eSBMdGQKKwkJCQk0MSBBc3RlciBBdmVudWUKKwkJCQlDYXJydW0gRG93bnMgVmljdG9yaWEgMzIwMQorCQkJCUFVU1RSQUxJQQorCiswMC0xRi1FQyAgIChoZXgpCQlTeW5hcHNlIGVsZWN0cm9uaXF1ZQorMDAxRkVDICAgICAoYmFzZSAxNikJCVN5bmFwc2UgZWxlY3Ryb25pcXVlCisJCQkJMTAxMCwgN2UgQXZlbnVlCisJCQkJR3JhbmQtTWVyZSBRdWViZWMgRzlUIDJCOAorCQkJCUNBTkFEQQorCiswMC0xRi1FRCAgIChoZXgpCQlUZWNhbiBTeXN0ZW1zIEluYy4KKzAwMUZFRCAgICAgKGJhc2UgMTYpCQlUZWNhbiBTeXN0ZW1zIEluYy4KKwkJCQkyNDUwIFphbmtlciBSb2FkCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUVFICAgKGhleCkJCXViaXN5cyB0ZWNobm9sb2dpZXMgR21iSAorMDAxRkVFICAgICAoYmFzZSAxNikJCXViaXN5cyB0ZWNobm9sb2dpZXMgR21iSAorCQkJCUFtIFdlaHJoYWhuIDQ1CisJCQkJRHVzc2VsZG9yZiBOUlcgNDAyMTEKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLUVGICAgKGhleCkJCVNISU5TRUkgSU5EVVNUUklFUyBDTy4sTFRECiswMDFGRUYgICAgIChiYXNlIDE2KQkJU0hJTlNFSSBJTkRVU1RSSUVTIENPLixMVEQKKwkJCQk0LTEyLTE1LEhPUklGVU5FLCBLSVRBLUtVLAorCQkJCVRPS09ZTyAgMTE0LTAwMDQKKwkJCQlKQVBBTgorCiswMC0xRi1GMCAgIChoZXgpCQlBdWRpbyBQYXJ0bmVyc2hpcAorMDAxRkYwICAgICAoYmFzZSAxNikJCUF1ZGlvIFBhcnRuZXJzaGlwCisJCQkJR2FsbGVyeSBDb3VydAorCQkJCUhhbmtleSBQbGFjZQorCQkJCUxvbmRvbiAgU0UxIDRCQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFGLUYxICAgKGhleCkJCVBhcmFkb3ggSGVsbGFzIFMuQS4KKzAwMUZGMSAgICAgKGJhc2UgMTYpCQlQYXJhZG94IEhlbGxhcyBTLkEuCisJCQkJMyBLb3JpbnRob3kgU3QKKwkJCQlNZXRhbW9yZm9zaQorCQkJCUF0aGVucyBBdHRpa2kgMTQ0NTEKKwkJCQlHUkVFQ0UKKworMDAtMUYtRjIgICAoaGV4KQkJVklBIFRlY2hub2xvZ2llcywgSW5jLgorMDAxRkYyICAgICAoYmFzZSAxNikJCVZJQSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxRiwgNTMxLCBDaHVuZy1DaGVuZyBSb2FkCisJCQkJSHNpbi1UaWVuIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLUYzICAgKGhleCkJCUFwcGxlLCBJbmMKKzAwMUZGMyAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1GNCAgIChoZXgpCQlQb3dlciBNb25pdG9ycywgSW5jLgorMDAxRkY0ICAgICAoYmFzZSAxNikJCVBvd2VyIE1vbml0b3JzLCBJbmMuCisJCQkJODAwIE5vcnRoIE1haW4gU3RyZWV0CisJCQkJTXQuIENyYXdmb3JkIFZpcmdpbmlhIDIyODQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1GNSAgIChoZXgpCQlLb25nc2JlcmcgRGVmZW5jZSAmIEFlcm9zcGFjZQorMDAxRkY1ICAgICAoYmFzZSAxNikJCUtvbmdzYmVyZyBEZWZlbmNlICYgQWVyb3NwYWNlCisJCQkJT2xhdiBCcnVuYm9yZ3MgdmVpIDYKKwkJCQlCaWxsaW5nc3RhZCAgMTM5NgorCQkJCU5PUldBWQorCiswMC0xRi1GNiAgIChoZXgpCQlQUyBBdWRpbyBJbnRlcm5hdGlvbmFsCiswMDFGRjYgICAgIChiYXNlIDE2KQkJUFMgQXVkaW8gSW50ZXJuYXRpb25hbAorCQkJCTQ4MjYgU3RlcmxpbmcgRHJpdmUKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1GNyAgIChoZXgpCQlOYWthamltYSBBbGwgUHJlY2lzaW9uIENvLiwgTHRkLgorMDAxRkY3ICAgICAoYmFzZSAxNikJCU5ha2FqaW1hIEFsbCBQcmVjaXNpb24gQ28uLCBMdGQuCisJCQkJS2FtaS1Hb215bzE0ODAKKwkJCQlTYWtha2ktTWFjaGkKKwkJCQlIYW5pc2hpbmEtR3VuIE5hZ2Fuby1LZW4gMzg5LTA2MDYKKwkJCQlKQVBBTgorCiswMC0xRi1GOCAgIChoZXgpCQlTaWVtZW5zIEFHLCBTZWN0b3IgSW5kdXN0cnksIERyaXZlIFRlY2hub2xvZ2llcywgTW90aW9uIENvbnRyb2wgU3lzdGVtcworMDAxRkY4ICAgICAoYmFzZSAxNikJCVNpZW1lbnMgQUcsIFNlY3RvciBJbmR1c3RyeSwgRHJpdmUgVGVjaG5vbG9naWVzLCBNb3Rpb24gQ29udHJvbCBTeXN0ZW1zCisJCQkJRnJhdWVuYXVyYWNoZXJzdHJhc3NlIDgwCisJCQkJRXJsYW5nZW4gQmF2YXJpYSA5MTA1NgorCQkJCUdFUk1BTlkKKworMDAtMUYtRjkgICAoaGV4KQkJQWR2YW5jZWQgS25vd2xlZGdlIEFzc29jaWF0ZXMKKzAwMUZGOSAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBLbm93bGVkZ2UgQXNzb2NpYXRlcworCQkJCTMzNTAgU2NvdHQgQmx2ZCwgU3VpdGUgNDAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NC0zMTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1GQSAgIChoZXgpCQlDb3JldHJlZSwgQ28sIEx0ZAorMDAxRkZBICAgICAoYmFzZSAxNikJCUNvcmV0cmVlLCBDbywgTHRkCisJCQkJIzUwMiBJVCBWZW50dXJlIFRvd24sIDY5NAorCQkJCVRhcHJpYi1kb25nLCBZdXN1bmctR3UKKwkJCQlEYWVqZW9uICAzMDUtNTEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLUZCICAgKGhleCkJCUdyZWVuIFBhY2tldCBCaGQKKzAwMUZGQiAgICAgKGJhc2UgMTYpCQlHcmVlbiBQYWNrZXQgQmhkCisJCQkJTG90IDEtNCwgSW5jdWJhdG9yIDIsIFRlY2hub2xvZ3kgUGFyayBNYWxheXNpYQorCQkJCUxlYnVocmF5YSBQdWNob25nIC0gU2cgQmVzaSwgQnVraXQgSmFsaWwKKwkJCQlLdWFsYSBMdW1wdXIgV2lsYXlhaCBQZXJzZWt1dHVhbiA1NzAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFGLUZDICAgKGhleCkJCVJpY2NpdXMrU29obiBHbWJICiswMDFGRkMgICAgIChiYXNlIDE2KQkJUmljY2l1cytTb2huIEdtYkgKKwkJCQlIYXluYXVlciBTdHIuIDQ5CisJCQkJQmVybGluICAxMjI0OQorCQkJCUdFUk1BTlkKKworMDAtMUYtRkQgICAoaGV4KQkJSW5kaWdvIE1vYmlsZSBUZWNobm9sb2dpZXMgQ29ycC4KKzAwMUZGRCAgICAgKGJhc2UgMTYpCQlJbmRpZ28gTW9iaWxlIFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCTExRiwgTm8yMiwgTGFuNDA3LFRpRGluZyBCbHZkIFNlY3Rpb24yLCBOZWlodSBUZWNobm9sb2d5IFBhcmsKKwkJCQlUYWlwZWkgQ2l0eSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi1GRSAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCiswMDFGRkUgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQKKwkJCQlSb3NldmlsbGUgQ0EgOTU3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUZGICAgKGhleCkJCVJlc3Bpcm9uaWNzLCBJbmMuCiswMDFGRkYgICAgIChiYXNlIDE2KQkJUmVzcGlyb25pY3MsIEluYy4KKwkJCQkxNzQwIEdvbGRlbiBNaWxlIEhpZ2h3YXkKKwkJCQlNb25yb2V2aWxsZSBQQSAxNTE0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMDAgICAoaGV4KQkJTEVYTUFSSyBJTlRFUk5BVElPTkFMLCBJTkMuCiswMDIwMDAgICAgIChiYXNlIDE2KQkJTEVYTUFSSyBJTlRFUk5BVElPTkFMLCBJTkMuCisJCQkJNzQwIE5FVyBDSVJDTEUgUk9BRAorCQkJCUJMREcuIDM1CisJCQkJTEVYSU5HVE9OIEtZIDQwNTUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0wMSAgIChoZXgpCQlEU1AgU09MVVRJT05TLCBJTkMuCiswMDIwMDEgICAgIChiYXNlIDE2KQkJRFNQIFNPTFVUSU9OUywgSU5DLgorCQkJCTI0NjQgRU1CQVJDQURFUk8gV0FZCisJCQkJUEFMTyBBTFRPIENBIDk0MzAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0wMiAgIChoZXgpCQlTRVJJVEVDSCBFTlRFUlBSSVNFIENPLiwgTFRELgorMDAyMDAyICAgICAoYmFzZSAxNikJCVNFUklURUNIIEVOVEVSUFJJU0UgQ08uLCBMVEQuCisJCQkJRkwuIDE4MiwgTk8uIDUzMS0xCisJCQkJQ0hVTkcgQ0hFTkcgUk9BRCBIU0lOIFRJRU4gQ0lUWQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMC0wMyAgIChoZXgpCQlQSVhFTCBQT1dFUiBMVEQuCiswMDIwMDMgICAgIChiYXNlIDE2KQkJUElYRUwgUE9XRVIgTFRELgorCQkJCVVuaXQgNSBDb2xsZWdlIEJ1c2luZXNzIFBhcmsKKwkJCQlDb2xkaGFtcyBMYW5lCisJCQkJQ0FNQlJJREdFICBDQjEgM0hECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtMDQgICAoaGV4KQkJWUFNQVRBS0UtSE9ORVlXRUxMIENPLiwgTFRELgorMDAyMDA0ICAgICAoYmFzZSAxNikJCVlBTUFUQUtFLUhPTkVZV0VMTCBDTy4sIExURC4KKwkJCQk1NCBTVVpVS0FXQSwgSVNFSEFSQQorCQkJCUtBTkFHQVdBIDI1OS0xMSAgCisJCQkJSkFQQU4KKworMDAtMjAtMDUgICAoaGV4KQkJU0lNUExFIFRFQ0hOT0xPR1kKKzAwMjAwNSAgICAgKGJhc2UgMTYpCQlTSU1QTEUgVEVDSE5PTE9HWQorCQkJCTMwMDEgREFJTUxFUiBST0FECisJCQkJU0FOVEEgQU5BIENBIDkyNzA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0wNiAgIChoZXgpCQlHQVJSRVRUIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDIwMDYgICAgIChiYXNlIDE2KQkJR0FSUkVUVCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTQ4NTMxIFdBUk1TUFJJTkdTIEJMVkQuCisJCQkJRlJFTU9OVCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMDcgICAoaGV4KQkJU0ZBLCBJTkMuCiswMDIwMDcgICAgIChiYXNlIDE2KQkJU0ZBLCBJTkMuCisJCQkJMTQwMSBNQ0NPUk1JQ0sgRFJJVkUKKwkJCQlMQU5ET1ZFUiBNRCAyMDc4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMDggICAoaGV4KQkJQ0FCTEUgJiBDT01QVVRFUiBURUNITk9MT0dZCiswMDIwMDggICAgIChiYXNlIDE2KQkJQ0FCTEUgJiBDT01QVVRFUiBURUNITk9MT0dZCisJCQkJMTU1NSBTTy4gU0lOQ0xBSVIgU1RSRUVUCisJCQkJQU5BSEVJTSBDQSA5MjgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMDkgICAoaGV4KQkJUEFDS0FSRCBCRUxMIEVMRUMuLCBJTkMuCiswMDIwMDkgICAgIChiYXNlIDE2KQkJUEFDS0FSRCBCRUxMIEVMRUMuLCBJTkMuCisJCQkJOTQyNSBDQU5PR0EgQVZFTlVFCisJCQkJQ0hBVFNXT1JUSCBDQSA5MTMyMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTBBICAgKGhleCkJCVNPVVJDRS1DT01NIENPUlAuCiswMDIwMEEgICAgIChiYXNlIDE2KQkJU09VUkNFLUNPTU0gQ09SUC4KKwkJCQkyNTAyMCBXLiBBVkVOVUUgU1RBTkZPUkQKKwkJCQlVTklUIDE4MAorCQkJCVZBTEVOQ0lBIENBIDkxMzU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0wQiAgIChoZXgpCQlPQ1RBR09OIFNZU1RFTVMgQ09SUC4KKzAwMjAwQiAgICAgKGJhc2UgMTYpCQlPQ1RBR09OIFNZU1RFTVMgQ09SUC4KKwkJCQk2NTEwIFcuIDkxU1QgQVZFTlVFCisJCQkJV0VTVE1JTlNURVIgQ08gODAwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTBDICAgKGhleCkJCUFEQVNUUkEgU1lTVEVNUyBDT1JQLgorMDAyMDBDICAgICAoYmFzZSAxNikJCUFEQVNUUkEgU1lTVEVNUyBDT1JQLgorCQkJCTI4MzEwIElORFVTVFJJQUwgQkxWRC4tU1RFLUsKKwkJCQlIQVlXQVJEIENBIDk0NTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0wRCAgIChoZXgpCQlDQVJMIFpFSVNTCiswMDIwMEQgICAgIChiYXNlIDE2KQkJQ0FSTCBaRUlTUworCQkJCVBPU1RGQUNIIDEzODAKKwkJCQlBQlQuICAxLUVMIDczNDQ0IE9CRVJLT0NIRU4KKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTBFICAgKGhleCkJCVNBVEVMTElURSBURUNITk9MT0dZIE1HTVQsIElOQworMDAyMDBFICAgICAoYmFzZSAxNikJCVNBVEVMTElURSBURUNITk9MT0dZIE1HTVQsIElOQworCQkJCTM1MzAgSFlMQU5EIEFWRU5VRQorCQkJCUNPU1RBIE1FU0EgQ0EgOTI2MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTBGICAgKGhleCkJCVRBTkJBQyBDTy4sIExURC4KKzAwMjAwRiAgICAgKGJhc2UgMTYpCQlUQU5CQUMgQ08uLCBMVEQuCisJCQkJU0FLVVJBSSBEQUkgMiBCRworCQkJCTI3LTQgSVJJWUEgMS1DSE9NRSBUQUlUTy1LVSBUT0tZTyAxMTAKKwkJCQlKQVBBTgorCiswMC0yMC0xMCAgIChoZXgpCQlKRU9MIFNZU1RFTSBURUNITk9MT0dZIENPLiBMVEQKKzAwMjAxMCAgICAgKGJhc2UgMTYpCQlKRU9MIFNZU1RFTSBURUNITk9MT0dZIENPLiBMVEQKKwkJCQkzLTEtMiBNdXNhc2hpbm8KKwkJCQlBa2lzaGltYS1zaGkgVG9reW8gMTk2LTg1NTgKKwkJCQlKQVBBTgorCiswMC0yMC0xMSAgIChoZXgpCQlDQU5PUFVTIENPLiwgTFRELgorMDAyMDExICAgICAoYmFzZSAxNikJCUNBTk9QVVMgQ08uLCBMVEQuCisJCQkJS09CRSBISS1URUNIIFBBUksKKwkJCQkxLTItMiBNVVJPVEFOSSBOSVNISS1LVSBLT0JFCisJCQkJNjUxLTIyIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMjAtMTIgICAoaGV4KQkJQ0FNVFJPTklDUyBNRURJQ0FMIFNZU1RFTVMKKzAwMjAxMiAgICAgKGJhc2UgMTYpCQlDQU1UUk9OSUNTIE1FRElDQUwgU1lTVEVNUworCQkJCVAuTy4gQk9YIDk1MAorCQkJCUhBUlRMQU5EIFdJIDUzMDI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0xMyAgIChoZXgpCQlESVZFUlNJRklFRCBURUNITk9MT0dZLCBJTkMuCiswMDIwMTMgICAgIChiYXNlIDE2KQkJRElWRVJTSUZJRUQgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTExMiBFLiBTVEFURSBTVFJFRVQKKwkJCQlSSURHRUxBTkQgTVMgMzkxNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTE0ICAgKGhleCkJCUdMT0JBTCBWSUVXIENPLiwgTFRELgorMDAyMDE0ICAgICAoYmFzZSAxNikJCUdMT0JBTCBWSUVXIENPLiwgTFRELgorCQkJCTRGLCBOTy4gMjMsIExBTkUgMzA2CisJCQkJRlUtVEVIIDEgUkQuIEhTSS1DSElILCBUQUlQRUksIEhTSUVOCisJCQkJVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjAtMTUgICAoaGV4KQkJQUNUSVMgQ09NUFVURVIgU0EKKzAwMjAxNSAgICAgKGJhc2UgMTYpCQlBQ1RJUyBDT01QVVRFUiBTQQorCQkJCTE2IENIRU1JTiBERVMgQVVMWAorCQkJCTEyMjggUExBTiBMRVMgT1ZBVEVTCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC0yMC0xNiAgIChoZXgpCQlTSE9XQSBFTEVDVFJJQyBXSVJFICYgQ0FCTEUgQ08KKzAwMjAxNiAgICAgKGJhc2UgMTYpCQlTSE9XQSBFTEVDVFJJQyBXSVJFICYgQ0FCTEUgQ08KKwkJCQlOTy4gMjAtMjUsIFNFSVNISU4gOC1DSE9NRQorCQkJCVNBR0FNSUhBUkEsIEtBTkFHQVdBCisJCQkJMjI5IEpBUEFOCisJCQkJSkFQQU4KKworMDAtMjAtMTcgICAoaGV4KQkJT1JCT1RFQ0gKKzAwMjAxNyAgICAgKGJhc2UgMTYpCQlPUkJPVEVDSAorCQkJCUlORFVTVFJJQUwgWk9ORQorCQkJCVAuTy4gQk9YIDIxNSA3MDY1MSAgWUFWTkUKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMjAtMTggICAoaGV4KQkJQ0lTIFRFQ0hOT0xPR1kgSU5DLgorMDAyMDE4ICAgICAoYmFzZSAxNikJCUNJUyBURUNITk9MT0dZIElOQy4KKwkJCQlGTC4gOS0xLCBOTy4gOTQsIFBBTyBDSFVORyBSRC4KKwkJCQlIU0lOIFRJRU4gQ0lUWQorCQkJCVRBSVBFSSBIU0lFTiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMC0xOSAgIChoZXgpCQlPSExFUiBHbWJICiswMDIwMTkgICAgIChiYXNlIDE2KQkJT0hMRVIgR21iSAorCQkJCU1BWUJBQ0hTVFJBU0UgMzAKKwkJCQk3MTMzMiBXQUlCTElOR0VOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTFBICAgKGhleCkJCU1SViBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAyMDFBICAgICAoYmFzZSAxNikJCU1SViBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTIwNDE1IE5vcmRob2ZmIFN0LgorCQkJCUNoYXRzd29ydGggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTFCICAgKGhleCkJCU5PUlRIRVJOIFRFTEVDT00vTkVUV09SSworMDAyMDFCICAgICAoYmFzZSAxNikJCU5PUlRIRVJOIFRFTEVDT00vTkVUV09SSworCQkJCVNZU1RFTVMgQ09SUE9SQVRJT04KKwkJCQkyNTAgU0lETkVZIFNUUkVFVCBCRUxMRVZJTExFLCBPTlRBUklPCisJCQkJSzhOIDVCNworCQkJCUNBTkFEQQorCiswMC0yMC0xQyAgIChoZXgpCQlFWENFTCwgSU5DLgorMDAyMDFDICAgICAoYmFzZSAxNikJCUVYQ0VMLCBJTkMuCisJCQkJMzU1IE9MRCBQTFlNT1VUSCBST0FECisJCQkJU0FHQU1PUkUgQkVBQ0ggTUEgMDI1NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTFEICAgKGhleCkJCUtBVEFOQSBQUk9EVUNUUworMDAyMDFEICAgICAoYmFzZSAxNikJCUtBVEFOQSBQUk9EVUNUUworCQkJCVRIRSBTVFVESU8sIFFVQVJSWSBISUxMIEJPWCwKKwkJCQlXSUxUU0hJUkUgU04xNCA5SFQgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLTFFICAgKGhleCkJCU5FVFFVRVNUIENPUlBPUkFUSU9OCiswMDIwMUUgICAgIChiYXNlIDE2KQkJTkVUUVVFU1QgQ09SUE9SQVRJT04KKwkJCQk1MjMgRkVMTE9XU0hJUCBST0FELVNURS4jMjA1CisJCQkJTVQuIExBVVJFTCBOSiAwODA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMUYgICAoaGV4KQkJQkVTVCBQT1dFUiBURUNITk9MT0dZLCBJTkMuCiswMDIwMUYgICAgIChiYXNlIDE2KQkJQkVTVCBQT1dFUiBURUNITk9MT0dZLCBJTkMuCisJCQkJUC5PLiBCT1ggMjgwCisJCQkJTkVDRURBSCBXSSA1NDY0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMjAgICAoaGV4KQkJTUVHQVRST04gQ09NUFVURVIgSU5EVVNUUklFUyBQVFksIExURC4KKzAwMjAyMCAgICAgKGJhc2UgMTYpCQlNRUdBVFJPTiBDT01QVVRFUiBJTkRVU1RSSUVTIFBUWSwgTFRELgorCQkJCQorCQkJCVVOSVQgMiwgIDYyLTY0IENIQVJURVIgU1RSRUVUIFJJTkdXT09EIFYKKwkJCQlBVVNUUkFMSUEKKworMDAtMjAtMjEgICAoaGV4KQkJQUxHT1JJVEhNUyBTT0ZUV0FSRSBQVlQuIExURC4KKzAwMjAyMSAgICAgKGJhc2UgMTYpCQlBTEdPUklUSE1TIFNPRlRXQVJFIFBWVC4gTFRELgorCQkJCTgzIEpPTExZIE1BS0VSIENIQU1CRVJTIElJCisJCQkJTkFSSU1BTiBQT0lOVCBCT01CQVkgIDQwMDAyMQorCQkJCUlORElBCisJCQkJSU5ESUEKKworMDAtMjAtMjIgICAoaGV4KQkJTk1TIENvbW11bmljYXRpb25zCiswMDIwMjIgICAgIChiYXNlIDE2KQkJTk1TIENvbW11bmljYXRpb25zCisJCQkJMTAwIENyb3NzaW5nIEJvdWxldmFyZAorCQkJCUZyYW1pbmdoYW0gTUEgMDE3MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTIzICAgKGhleCkJCVQuQy4gVEVDSE5PTE9HSUVTIFBUWS4gTFRECiswMDIwMjMgICAgIChiYXNlIDE2KQkJVC5DLiBURUNITk9MT0dJRVMgUFRZLiBMVEQKKwkJCQk2LzYwIEZBSVJGT1JEIFJELgorCQkJCVBBRFNUT1cgIE5TVzIyMTEKKwkJCQlBVVNUUkFMSUEKKworMDAtMjAtMjQgICAoaGV4KQkJUEFDSUZJQyBDT01NVU5JQ0FUSU9OIFNDSUVOQ0VTCiswMDIwMjQgICAgIChiYXNlIDE2KQkJUEFDSUZJQyBDT01NVU5JQ0FUSU9OIFNDSUVOQ0VTCisJCQkJOTY0NSBTQ1JBTlRPTiBST0FECisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0yNSAgIChoZXgpCQlDT05UUk9MIFRFQ0hOT0xPR1ksIElOQy4KKzAwMjAyNSAgICAgKGJhc2UgMTYpCQlDT05UUk9MIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk1NzM0IE1JRERMRUJST09LIFBJS0UKKwkJCQlLTk9YVklMTEUgVE4gMzc5MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTI2ICAgKGhleCkJCUFNS0xZIFNZU1RFTVMsIElOQy4KKzAwMjAyNiAgICAgKGJhc2UgMTYpCQlBTUtMWSBTWVNURU1TLCBJTkMuCisJCQkJMTU4MDEgUk9DS0ZJRUxEIEJMVkQuLCAjUAorCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMjcgICAoaGV4KQkJTUlORyBGT1JUVU5FIElORFVTVFJZIENPLiwgTFRECiswMDIwMjcgICAgIChiYXNlIDE2KQkJTUlORyBGT1JUVU5FIElORFVTVFJZIENPLiwgTFRECisJCQkJNEYsIE5PLiA4MDAgQ0hVTkcgQ0hFTkcgUkQsCisJCQkJQ0hVTkcgSE8gQ0lUWSwgVEFJUEVJIEhTSUVOCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLTI4ICAgKGhleCkJCVdFU1QgRUdHIFNZU1RFTVMsIElOQy4KKzAwMjAyOCAgICAgKGJhc2UgMTYpCQlXRVNUIEVHRyBTWVNURU1TLCBJTkMuCisJCQkJNjUgSElHSCBSSURHRSBST0FELVNURS4jMjg2CisJCQkJU1RBTUZPUkQgQ1QgMDY5MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTI5ICAgKGhleCkJCVRFTEVQUk9DRVNTSU5HIFBST0RVQ1RTLCBJTkMuCiswMDIwMjkgICAgIChiYXNlIDE2KQkJVEVMRVBST0NFU1NJTkcgUFJPRFVDVFMsIElOQy4KKwkJCQk0NTY1IEUuIElORFVTVFJJQUwgU1RSRUVUCisJCQkJQlVJTERJTkcgIzdLCisJCQkJU0lNSSBWQUxMRVkgQ0EgOTMwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTJBICAgKGhleCkJCU4uVi4gRFpJTkUKKzAwMjAyQSAgICAgKGJhc2UgMTYpCQlOLlYuIERaSU5FCisJCQkJS09OSU5HIExFT1BPTEQgSUlJIExBQU4gMgorCQkJCUIgLSA4NTAwIEtPUlRSSUpLCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtMjAtMkIgICAoaGV4KQkJQURWQU5DRUQgVEVMRUNPTU1VTklDQVRJT05TIE1PRFVMRVMsIExURC4KKzAwMjAyQiAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBURUxFQ09NTVVOSUNBVElPTlMgTU9EVUxFUywgTFRELgorCQkJCQorCQkJCU1PVU5UIFBMRUFTQU5UIEhPVVNFIEhVTlRJTkdET04gUk9BRCwKKwkJCQlDYW1icmlkZ2UgQ0IzIE9CTCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtMkMgICAoaGV4KQkJV0VMTFRST05JWCBDTy4sIExURC4KKzAwMjAyQyAgICAgKGJhc2UgMTYpCQlXRUxMVFJPTklYIENPLiwgTFRELgorCQkJCTNGLCBOTy4gMzYtMSwgSFdBTkcgSFNJIFNUUkVFVAorCQkJCVNISU4tTElOIFRBSVBFSQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMC0yRCAgIChoZXgpCQlUQUlZTyBDT1JQT1JBVElPTgorMDAyMDJEICAgICAoYmFzZSAxNikJCVRBSVlPIENPUlBPUkFUSU9OCisJCQkJMS0yLTYgU0FOTk9ILCBPSFRBLUtVCisJCQkJVE9LWU8KKwkJCQkxNDMgCisJCQkJSkFQQU4KKworMDAtMjAtMkUgICAoaGV4KQkJREFZU1RBUiBESUdJVEFMCiswMDIwMkUgICAgIChiYXNlIDE2KQkJREFZU1RBUiBESUdJVEFMCisJCQkJNTU1NiBBVExBTlRBIEhJR0hXQVkKKwkJCQlGTE9XRVJZIEJSQU5DSCBHQSAzMDU0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMkYgICAoaGV4KQkJWkVUQSBDT01NVU5JQ0FUSU9OUywgTFRELgorMDAyMDJGICAgICAoYmFzZSAxNikJCVpFVEEgQ09NTVVOSUNBVElPTlMsIExURC4KKwkJCQlaRU5JVEggSE9VU0UKKwkJCQlHUkVTRk9SRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlXUkVYSEFNLCBDTFdZRCwgTEwxMiA4TFggIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLTMwICAgKGhleCkJCUFOQUxPRyAmIERJR0lUQUwgU1lTVEVNUworMDAyMDMwICAgICAoYmFzZSAxNikJCUFOQUxPRyAmIERJR0lUQUwgU1lTVEVNUworCQkJCTEvMiBMQVZFTExFIFJPQUQKKwkJCQlCQU5HQUxPUkUgLSA1NjAwMDEKKwkJCQlJTkRJQQorCQkJCUlORElBCisKKzAwLTIwLTMxICAgKGhleCkJCUVSVEVDIEdtYkgKKzAwMjAzMSAgICAgKGJhc2UgMTYpCQlFUlRFQyBHbWJICisJCQkJQU0gUEVTVEFMT1paSVJJTkcgMjQKKwkJCQlELTkxMDU4IEVSTEFOR0VOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTMyICAgKGhleCkJCUFMQ0FURUwgVEFJU0VMCiswMDIwMzIgICAgIChiYXNlIDE2KQkJQUxDQVRFTCBUQUlTRUwKKwkJCQk0LCBNSU5HIFNIRU5HIFNUUkVFVCBUVS1DSEVORworCQkJCUlORFVTVFJJQUwgRElTVFJJQ1QgVEFJUEVJIEhTSUVICisJCQkJVEFJV0FOIFJPQworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjAtMzMgICAoaGV4KQkJU1lOQVBTRSBURUNITk9MT0dJRVMsIElOQy4KKzAwMjAzMyAgICAgKGJhc2UgMTYpCQlTWU5BUFNFIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTQ4MjIgQUxCRU1BUkxFIFJPQUQsICMxMDQKKwkJCQlDSEFSTE9UVEUgTkMgMjgyMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTM0ICAgKGhleCkJCVJPVEVDIElORFVTVFJJRUFVVE9NQVRJT04gR01CSAorMDAyMDM0ICAgICAoYmFzZSAxNikJCVJPVEVDIElORFVTVFJJRUFVVE9NQVRJT04gR01CSAorCQkJCUdVVEVOQkVSR1NUUi4gMTUKKwkJCQk3NjQzNyBSQVNUQVRUCisJCQkJR0VSTUFOWQorCiswMC0yMC0zNSAgIChoZXgpCQlJQk0gQ29ycAorMDAyMDM1ICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMzAzOSBFIENvcm53YWxsaXMgUm9hZAorCQkJCVAuTy4gQk9YIDEyMTk1CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0yMTk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0zNiAgIChoZXgpCQlCTUMgU09GVFdBUkUKKzAwMjAzNiAgICAgKGJhc2UgMTYpCQlCTUMgU09GVFdBUkUKKwkJCQkxNjAwIENJVFkgV0VTVCBCTFZELiwgIzE2MDAKKwkJCQlIT1VTVE9OIFRYIDc3MDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0zNyAgIChoZXgpCQlTRUFHQVRFIFRFQ0hOT0xPR1kKKzAwMjAzNyAgICAgKGJhc2UgMTYpCQlTRUFHQVRFIFRFQ0hOT0xPR1kKKwkJCQk4MDAxIEUuIEJMT09NSU5HVE9OIEZXWQorCQkJCU0vUyAtIE1QUzA0MworCQkJCUJMT09NSU5HVE9OIE1OIDU1NDIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0zOCAgIChoZXgpCQlWTUUgTUlDUk9TWVNURU1TIElOVEVSTkFUSU9OQUwgQ09SUE9SQVRJT04KKzAwMjAzOCAgICAgKGJhc2UgMTYpCQlWTUUgTUlDUk9TWVNURU1TIElOVEVSTkFUSU9OQUwgQ09SUE9SQVRJT04KKwkJCQkxMjA5MCBTLiBNRU1PUklBTCBQQVJLV0FZCisJCQkJSFVOVFNWSUxMRSBBTCAzNTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMzkgICAoaGV4KQkJU0NJTkVUUworMDAyMDM5ICAgICAoYmFzZSAxNikJCVNDSU5FVFMKKwkJCQkxNTc1IFRFTkFLQSAtIFNURSMgTjgKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTNBICAgKGhleCkJCURJR0lUQUwgQkkwTUVUUklDUyBJTkMuCiswMDIwM0EgICAgIChiYXNlIDE2KQkJRElHSVRBTCBCSTBNRVRSSUNTIElOQy4KKwkJCQk1NjAwIFJPV0xBTkQgUk9BRC0gU1RFLiMyMDUKKwkJCQlNSU5ORVRPTktBIE1OIDU1MzY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0zQiAgIChoZXgpCQlXSVNETSBMVEQuCiswMDIwM0IgICAgIChiYXNlIDE2KQkJV0lTRE0gTFRELgorCQkJCVNULiBKT0hOUyBJTk5PVkFUSU9OIENFTlRSRQorCQkJCUNPV0xFWSBST0FEIENBTUJSSURHRSAgQ0I0IDRXUworCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC0zQyAgIChoZXgpCQlFVVJPVElNRSBBQgorMDAyMDNDICAgICAoYmFzZSAxNikJCUVVUk9USU1FIEFCCisJCQkJQk9YIDI3NworCQkJCVMtNTMyMjQgU0tBUkEKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtMjAtM0QgICAoaGV4KQkJSG9uZXl3ZWxsIEVDQworMDAyMDNEICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbCBFQ0MKKwkJCQkxOTg1IERvdWdsYXMgRHJpdmUKKwkJCQlNTjEwLTEyMUEKKwkJCQlHb2xkZW4gVmFsbGV5IE1OIDU1NDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0zRSAgIChoZXgpCQlMb2dpQ2FuIFRlY2hub2xvZ2llcywgSW5jLgorMDAyMDNFICAgICAoYmFzZSAxNikJCUxvZ2lDYW4gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTUwIEtBUkwgQ0xBUksgUk9BRAorCQkJCUVETU9OVE9OLCBBTEJFUlRBIFQ2TiAxRTIgIAorCQkJCUNBTkFEQQorCiswMC0yMC0zRiAgIChoZXgpCQlKVUtJIENPUlBPUkFUSU9OCiswMDIwM0YgICAgIChiYXNlIDE2KQkJSlVLSSBDT1JQT1JBVElPTgorCQkJCTgtMi0xIEtPS1VSWU8tQ0hPCisJCQkJQ0hPRlUtU0hJIFRPS1lPICAxODIKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTIwLTQwICAgKGhleCkJCU1vdG9yb2xhIEJyb2FkYmFuZCBDb21tdW5pY2F0aW9ucyBTZWN0b3IKKzAwMjA0MCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBCcm9hZGJhbmQgQ29tbXVuaWNhdGlvbnMgU2VjdG9yCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNDEgICAoaGV4KQkJREFUQSBORVQKKzAwMjA0MSAgICAgKGJhc2UgMTYpCQlEQVRBIE5FVAorCQkJCVNVV09OIFAuTy4gQk9YIDEwNiwgU1VXT04KKwkJCQlLWVVOR0dJLURPCisJCQkJS09SRUEgNDQwLTYwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMC00MiAgIChoZXgpCQlEQVRBTUVUUklDUyBDT1JQLgorMDAyMDQyICAgICAoYmFzZSAxNikJCURBVEFNRVRSSUNTIENPUlAuCisJCQkJODk2NiBDT01BTkNIRSBBVkUuCisJCQkJQ0hBVFNXT1JUSCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNDMgICAoaGV4KQkJTkVVUk9OIENPTVBBTlkgTElNSVRFRAorMDAyMDQzICAgICAoYmFzZSAxNikJCU5FVVJPTiBDT01QQU5ZIExJTUlURUQKKwkJCQkxNSBLV0FJIFlJIFJPQUQsICBCTE9DSyAyLAorCQkJCTIxU1QgRkxPT1IsIEZMQVQgQgorCQkJCUtXQUkgQ0hVTkcsICAgTi5ULiAgCisJCQkJSE9ORyBLT05HCisKKzAwLTIwLTQ0ICAgKGhleCkJCUdFTklURUNIIFBUWSBMVEQKKzAwMjA0NCAgICAgKGJhc2UgMTYpCQlHRU5JVEVDSCBQVFkgTFRECisJCQkJUC5PLiBCT1ggMTk2CisJCQkJQVNRVUlUSCBOU1cgMjA3NworCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC0yMC00NSAgIChoZXgpCQlJT04gTmV0d29ya3MsIEluYy4KKzAwMjA0NSAgICAgKGJhc2UgMTYpCQlJT04gTmV0d29ya3MsIEluYy4KKwkJCQkxNTUxIFNvdXRoIFdhc2hpbmd0b24gQXZlLgorCQkJCVBpc2NhdGF3YXkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTQ2ICAgKGhleCkJCUNJUFJJQ08sIElOQy4KKzAwMjA0NiAgICAgKGJhc2UgMTYpCQlDSVBSSUNPLCBJTkMuCisJCQkJMjgwMCBDQU1QVVMgRFJJVkUtLVNVSVRFICM2MAorCQkJCVBMWU1PVVRIIE1OIDU1NDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC00NyAgIChoZXgpCQlTVEVJTkJSRUNIRVIgQ09SUC4KKzAwMjA0NyAgICAgKGJhc2UgMTYpCQlTVEVJTkJSRUNIRVIgQ09SUC4KKwkJCQkzMCBOT1JUSCBBVkVOVUUKKwkJCQlCVVJMSU5HVE9OIE1BIDAxODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC00OCAgIChoZXgpCQlNYXJjb25pIENvbW11bmljYXRpb25zCiswMDIwNDggICAgIChiYXNlIDE2KQkJTWFyY29uaSBDb21tdW5pY2F0aW9ucworCQkJCTEwMDAgRm9yZSBEcml2ZQorCQkJCVdhcnJlbmRhbGUgUEEgMTUwODYtNzUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNDkgICAoaGV4KQkJQ09NVFJPTiwgSU5DLgorMDAyMDQ5ICAgICAoYmFzZSAxNikJCUNPTVRST04sIElOQy4KKwkJCQlTQU5DQVRIRVJJTkEgQkxERy4KKwkJCQkzNi0xMiBTSElOSlVLVSAxLUNIT01FIFNISU5KVUtVLUtVCisJCQkJVE9LWU8gMTYwIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMjAtNEEgICAoaGV4KQkJUFJPTkVUIEdNQkgKKzAwMjA0QSAgICAgKGJhc2UgMTYpCQlQUk9ORVQgR01CSAorCQkJCUtBUkxTVFJBU1NFIDQ5CisJCQkJRC03ODA1IEYgVklMTElOR0VOLVNDSFdFTk5JTkdFTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTRCICAgKGhleCkJCUFVVE9DT01QVVRFUiBDTy4sIExURC4KKzAwMjA0QiAgICAgKGJhc2UgMTYpCQlBVVRPQ09NUFVURVIgQ08uLCBMVEQuCisJCQkJTk8uIDE4LCBQRUkgWVVBTiBST0FECisJCQkJQ0hVTkctTEkgQ0lUWSwgVEFPLVlVQU4gSFNJRU4KKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjAtNEMgICAoaGV4KQkJTUlUUk9OIENPTVBVVEVSIFBURSBMVEQuCiswMDIwNEMgICAgIChiYXNlIDE2KQkJTUlUUk9OIENPTVBVVEVSIFBURSBMVEQuCisJCQkJMTAyMCBIT1VHQU5HIEFWRU5VRSAxICMwMy0zNTA0CisJCQkJU0lOR0FQT1JFIDE5NTMKKwkJCQlTSU5HQVBPUkUKKworMDAtMjAtNEQgICAoaGV4KQkJSU5PVklTIEdNQkgKKzAwMjA0RCAgICAgKGJhc2UgMTYpCQlJTk9WSVMgR01CSAorCQkJCUhBTk5TLUJSQVVOIFNUUkFTU0UgNTAKKwkJCQk4NTM3NSBORVVGQUhSTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTRFICAgKGhleCkJCU5FVFdPUksgU0VDVVJJVFkgU1lTVEVNUywgSU5DLgorMDAyMDRFICAgICAoYmFzZSAxNikJCU5FVFdPUksgU0VDVVJJVFkgU1lTVEVNUywgSU5DLgorCQkJCTk0MDEgV0FQTEVTIFNUUkVFVCxTVEUuICMxMDAKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTRGICAgKGhleCkJCURFVVRTQ0hFIEFFUk9TUEFDRSBBRworMDAyMDRGICAgICAoYmFzZSAxNikJCURFVVRTQ0hFIEFFUk9TUEFDRSBBRworCQkJCUdFU0NIQUVGVFNGRUxECisJCQkJVkVSVEVJRElHVU5HIFVORCBaSVZJTEUgU1lTVEVNIDgxNjYzIE1VRQorCQkJCUJVTkRFU1JFUFVCTElLIERFVVRTQ0hMQU5ECisJCQkJR0VSTUFOWQorCiswMC0yMC01MCAgIChoZXgpCQlLT1JFQSBDT01QVVRFUiBJTkMuCiswMDIwNTAgICAgIChiYXNlIDE2KQkJS09SRUEgQ09NUFVURVIgSU5DLgorCQkJCTQ2OSwgREFFSEVVTkctRE9ORworCQkJCU1BUE8tR1UsIFNFT1VMCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjAtNTEgICAoaGV4KQkJVmVyaWxpbmsgQ29ycG9yYXRpb24KKzAwMjA1MSAgICAgKGJhc2UgMTYpCQlWZXJpbGluayBDb3Jwb3JhdGlvbgorCQkJCTEyNyBKZXRwbGV4IENpcmNsZQorCQkJCU1hZGlzb24gQUwgMzU3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTUyICAgKGhleCkJCVJBR1VMQSBTWVNURU1TCiswMDIwNTIgICAgIChiYXNlIDE2KQkJUkFHVUxBIFNZU1RFTVMKKwkJCQk0NTQwIFMuIEpVUElURVIgRFJJVkUKKwkJCQlTQUxUIExBS0UgQ0lUWSBVVCA4NDEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNTMgICAoaGV4KQkJSFVOVFNWSUxMRSBNSUNST1NZU1RFTVMsIElOQy4KKzAwMjA1MyAgICAgKGJhc2UgMTYpCQlIVU5UU1ZJTExFIE1JQ1JPU1lTVEVNUywgSU5DLgorCQkJCVAuTy4gQk9YIDEyNDE1CisJCQkJSFVOVFNWSUxMRSBBTCAzNTgxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNTQgICAoaGV4KQkJU3ljYW1vcmUgTmV0d29ya3MKKzAwMjA1NCAgICAgKGJhc2UgMTYpCQlTeWNhbW9yZSBOZXR3b3JrcworCQkJCTIyMCBNaWxsIFJkCisJCQkJQ2hlbG1zZm9yZCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNTUgICAoaGV4KQkJQUxURUNIIENPLiwgTFRELgorMDAyMDU1ICAgICAoYmFzZSAxNikJCUFMVEVDSCBDTy4sIExURC4KKwkJCQlPSElTSEkgQkxERy4sIDItMjMtMTEKKwkJCQlOSVNISS1OSVBQT1JJLCBBUkFLQVdBLUtVCisJCQkJIFRPS1lPIDExNiAgCisJCQkJSkFQQU4KKworMDAtMjAtNTYgICAoaGV4KQkJTkVPUFJPRFVDVFMKKzAwMjA1NiAgICAgKGJhc2UgMTYpCQlORU9QUk9EVUNUUworCQkJCTI1IENIQVBNQU4gU1RSRUVUCisJCQkJQkxBQ0tCVVJOIE5PUlRIIFZJQ1RPUklBIDMxMzAKKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtMjAtNTcgICAoaGV4KQkJVElUWkUgREFURU5URUNITklLIEdtYkgKKzAwMjA1NyAgICAgKGJhc2UgMTYpCQlUSVRaRSBEQVRFTlRFQ0hOSUsgR21iSAorCQkJCURJRVNFTFNUUkFTU0UgMTAKKwkJCQlEUy03MTI3MiBSRU5OSU5HRU4tMiAgCisJCQkJR0VSTUFOWQorCiswMC0yMC01OCAgIChoZXgpCQlBTExJRUQgU0lHTkFMIElOQy4KKzAwMjA1OCAgICAgKGJhc2UgMTYpCQlBTExJRUQgU0lHTkFMIElOQy4KKwkJCQlST1VURSA0NgorCQkJCVRFVEVSQk9STyBOSiAwNzYwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNTkgICAoaGV4KQkJTUlSTyBDT01QVVRFUiBQUk9EVUNUUyBBRworMDAyMDU5ICAgICAoYmFzZSAxNikJCU1JUk8gQ09NUFVURVIgUFJPRFVDVFMgQUcKKwkJCQlDQVJMIE1JRUxFIFNUUi4gNAorCQkJCUQtMzgxMTIgQlJBVU5TQ0hXRUlHICAKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTVBICAgKGhleCkJCUNPTVBVVEVSIElERU5USUNTCiswMDIwNUEgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgSURFTlRJQ1MKKwkJCQk1IFNIQVdNVVQgUk9BRAorCQkJCUNBTlRPTiBNQSAwMjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNUIgICAoaGV4KQkJS2VudHJveCwgTExDCiswMDIwNUIgICAgIChiYXNlIDE2KQkJS2VudHJveCwgTExDCisJCQkJMjAwMTAgTlcgVGFuYXNib3VybmUgRHIuCisJCQkJSGlsbHNib3JvIE9SIDk3MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC01QyAgIChoZXgpCQlJbnRlck5ldCBTeXN0ZW1zIG9mIEZsb3JpZGEsIEluYy4KKzAwMjA1QyAgICAgKGJhc2UgMTYpCQlJbnRlck5ldCBTeXN0ZW1zIG9mIEZsb3JpZGEsIEluYy4KKwkJCQlQLk8uIEJPWCA1NzgKKwkJCQlDUkVTVFZJRVcgRkwgMzI1MzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTVEICAgKGhleCkJCU5BTk9NQVRJQyBPWQorMDAyMDVEICAgICAoYmFzZSAxNikJCU5BTk9NQVRJQyBPWQorCQkJCVBVSVNUT0xBTiBSQUlUVEkgNAorCQkJCTAwNzYwIEhFTFNJTktJCisJCQkJRklOTEFORAorCQkJCUZJTkxBTkQKKworMDAtMjAtNUUgICAoaGV4KQkJQ0FTVExFIFJPQ0ssIElOQy4KKzAwMjA1RSAgICAgKGJhc2UgMTYpCQlDQVNUTEUgUk9DSywgSU5DLgorCQkJCTIwIFNPVVRIIFNBTlRBIENSVVogQVZFLgorCQkJCVNVSVRFICMzMTAKKwkJCQlMT1MgR0FUT1MgQ0EgOTUwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTVGICAgKGhleCkJCUdBTU1BREFUQSBDT01QVVRFUiBHTUJICiswMDIwNUYgICAgIChiYXNlIDE2KQkJR0FNTUFEQVRBIENPTVBVVEVSIEdNQkgKKwkJCQlHVVRFTkJFUkdTVFIuIDEzCisJCQkJODIxNjggUFVDSEhFSU0KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0yMC02MCAgIChoZXgpCQlBTENBVEVMIElUQUxJQSBTLnAuQS4KKzAwMjA2MCAgICAgKGJhc2UgMTYpCQlBTENBVEVMIElUQUxJQSBTLnAuQS4KKwkJCQlWSUEgVFJFTlRPLCAzMAorCQkJCTIwMDU5IFZJTUVSQ0FURSAoTUkpICAKKwkJCQlJVEFMWQorCiswMC0yMC02MSAgIChoZXgpCQlHYXJyZXR0Q29tLCBJbmMuCiswMDIwNjEgICAgIChiYXNlIDE2KQkJR2FycmV0dENvbSwgSW5jLgorCQkJCTk5MSBBTk5BUE9MSVMgV0FZCisJCQkJTm9ydGggQW5kb3ZlciBNQSAwMTg0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNjIgICAoaGV4KQkJU0NPUlBJT04gTE9HSUMsIExURC4KKzAwMjA2MiAgICAgKGJhc2UgMTYpCQlTQ09SUElPTiBMT0dJQywgTFRELgorCQkJCTE5IEJST09LU0lERSBST0FECisJCQkJT1hIRVksIFdBVEZPUkQKKwkJCQlIRVJUUyBXRDEgNEJXICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC02MyAgIChoZXgpCQlXSVBSTyBJTkZPVEVDSCBMVEQuCiswMDIwNjMgICAgIChiYXNlIDE2KQkJV0lQUk8gSU5GT1RFQ0ggTFRELgorCQkJCVVOSVRTIDQ3LTQ4LCBTREYgQkxPQ0sgVklJCisJCQkJTUVQWiwgS0FEQVBQRVJJIE1BRFJBUy02MDAwNDUKKwkJCQlJTkRJQQorCiswMC0yMC02NCAgIChoZXgpCQlQUk9URUMgTUlDUk9TWVNURU1TLCBJTkMuCiswMDIwNjQgICAgIChiYXNlIDE2KQkJUFJPVEVDIE1JQ1JPU1lTVEVNUywgSU5DLgorCQkJCTI5NyBMQUJST1NTRQorCQkJCVBPSU5URS1DTEFJUkUsIFFVRUJFQyBIOVIgMUEzICAKKwkJCQlDQU5BREEKKworMDAtMjAtNjUgICAoaGV4KQkJU1VQRVJORVQgTkVUV09SS0lORyBJTkMuCiswMDIwNjUgICAgIChiYXNlIDE2KQkJU1VQRVJORVQgTkVUV09SS0lORyBJTkMuCisJCQkJMTYgVE9aRVJFVCBIQSdBUkVUWiBTVC4KKwkJCQlURUwtQVZJViA2Nzg5MSAgCisJCQkJSVNSQUVMCisKKzAwLTIwLTY2ICAgKGhleCkJCUdFTkVSQUwgTUFHSUMsIElOQy4KKzAwMjA2NiAgICAgKGJhc2UgMTYpCQlHRU5FUkFMIE1BR0lDLCBJTkMuCisJCQkJMjQ2NSBMQVRIQU0gU1RSRUVUCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNjcgICAoaGV4KQkJUFJJVkFURQorMDAyMDY3ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0yMC02OCAgIChoZXgpCQlJU0RZTkUKKzAwMjA2OCAgICAgKGJhc2UgMTYpCQlJU0RZTkUKKwkJCQkxMSBST1hCVVJZIEFWRU5VRQorCQkJCU5BVElDSyBNQSAwMTc2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNjkgICAoaGV4KQkJSVNETiBTWVNURU1TIENPUlBPUkFUSU9OCiswMDIwNjkgICAgIChiYXNlIDE2KQkJSVNETiBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJODMyMCBPTEQgQ09VUlRIT1VTRSBSRC4KKwkJCQlTVUlURSAjMjAzCisJCQkJVklFTk5BIFZBIDIyMTgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC02QSAgIChoZXgpCQlPU0FLQSBDT01QVVRFUiBDT1JQLgorMDAyMDZBICAgICAoYmFzZSAxNikJCU9TQUtBIENPTVBVVEVSIENPUlAuCisJCQkJMi04IEtPWUFDSE9VIE5FWUFHQVctU0hJCisJCQkJT1NBS0EgNTcyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0yMC02QiAgIChoZXgpCQlLT05JQ0EgTUlOT0xUQSBIT0xESU5HUywgSU5DLgorMDAyMDZCICAgICAoYmFzZSAxNikJCUtPTklDQSBNSU5PTFRBIEhPTERJTkdTLCBJTkMuCisJCQkJMS02LTEsIE1hcnVub3VjaGksCisJCQkJQ2hpeW9kYS1rdQorCQkJCVRva3lvICAxMDAtMDAwNQorCQkJCUpBUEFOCisKKzAwLTIwLTZDICAgKGhleCkJCUVWRVJHUkVFTiBURUNITk9MT0dZIENPUlAuCiswMDIwNkMgICAgIChiYXNlIDE2KQkJRVZFUkdSRUVOIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkyMzEgRU1FUlNPTiBTVFJFRVQKKwkJCQlQQUxPIEFMVE8gQ0EgOTQzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTZEICAgKGhleCkJCURBVEEgUkFDRSwgSU5DLgorMDAyMDZEICAgICAoYmFzZSAxNikJCURBVEEgUkFDRSwgSU5DLgorCQkJCTExNTUwIElILTEwV0VTVCAgU1RFIzM5NQorCQkJCVNBTiBBTlRPTklPIFRYIDc4MjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC02RSAgIChoZXgpCQlYQUNULCBJTkMuCiswMDIwNkUgICAgIChiYXNlIDE2KQkJWEFDVCwgSU5DLgorCQkJCVAuTy4gQk9YIDU1CisJCQkJQVJHWUxFIFRYIDc2MjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC02RiAgIChoZXgpCQlGTE9XUE9JTlQgQ09SUE9SQVRJT04KKzAwMjA2RiAgICAgKGJhc2UgMTYpCQlGTE9XUE9JTlQgQ09SUE9SQVRJT04KKwkJCQk3MjkxIENPUk9OQURPIERSSVZFLCBTVEUjIDQKKwkJCQlTQU4gSk9TRSBDQSA5NTEyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNzAgICAoaGV4KQkJSFlORVQsIExURC4KKzAwMjA3MCAgICAgKGJhc2UgMTYpCQlIWU5FVCwgTFRELgorCQkJCTEwMiBKQUJPVElOU0tZIFNULgorCQkJCVBPIEJPWCAzNjM4CisJCQkJUEVUQUNIIFRJS1ZBIDQ5MTMwICAKKwkJCQlJU1JBRUwKKworMDAtMjAtNzEgICAoaGV4KQkJSUJSIEdNQkgKKzAwMjA3MSAgICAgKGJhc2UgMTYpCQlJQlIgR01CSAorCQkJCUtPSExFUlNUUi4gNDUKKwkJCQlELTQ2Mjg2IERPUlNURU4gIAorCQkJCUdFUk1BTlkKKworMDAtMjAtNzIgICAoaGV4KQkJV09SS0xJTksgSU5OT1ZBVElPTlMKKzAwMjA3MiAgICAgKGJhc2UgMTYpCQlXT1JLTElOSyBJTk5PVkFUSU9OUworCQkJCTI0NTIgQVJNU1RST05HIFNUUkVFVAorCQkJCUxJVkVSTU9SRSBDQSA5NDU1TworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNzMgICAoaGV4KQkJRlVTSU9OIFNZU1RFTVMgQ09SUE9SQVRJT04KKzAwMjA3MyAgICAgKGJhc2UgMTYpCQlGVVNJT04gU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCTc2MDAgU1RBTkRJU0ggUExBQ0UKKwkJCQlST0NLVklMTEUgTUQgMjA4NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTc0ICAgKGhleCkJCVNVTkdXT09OIFNZU1RFTVMKKzAwMjA3NCAgICAgKGJhc2UgMTYpCQlTVU5HV09PTiBTWVNURU1TCisJCQkJWVVTVU4gQkxERy40NC00CisJCQkJU0FNU1VORy1ET05HIEtBTkdOQU0tS1UsIFNFT1VMIDEzNS0wOTAKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMC03NSAgIChoZXgpCQlNT1RPUk9MQSBDT01NVU5JQ0FUSU9OIElTUkFFTAorMDAyMDc1ICAgICAoYmFzZSAxNikJCU1PVE9ST0xBIENPTU1VTklDQVRJT04gSVNSQUVMCisJCQkJMyBLUkVNRU5FVFNLSSBTVFJFRVQKKwkJCQlQT0IgMjUwMTYKKwkJCQlURUwtQVZJViAgNjEyNTAgIAorCQkJCUlTUkFFTAorCiswMC0yMC03NiAgIChoZXgpCQlSRVVETyBDT1JQT1JBVElPTgorMDAyMDc2ICAgICAoYmFzZSAxNikJCVJFVURPIENPUlBPUkFUSU9OCisJCQkJNC0xLTEwIFNISU5TQU4KKwkJCQlOQUdBT0tBIENJVFksIE5JSUdBVEEgOTQwLTIxCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0yMC03NyAgIChoZXgpCQlLQVJESU9TIFNZU1RFTVMgQ09SUC4KKzAwMjA3NyAgICAgKGJhc2UgMTYpCQlLQVJESU9TIFNZU1RFTVMgQ09SUC4KKwkJCQkyNiBOIFNVTU1JVCBBVkUuCisJCQkJR0FJVEhFUlNCVVJHIE1EIDIwODc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC03OCAgIChoZXgpCQlSVU5UT1AsIElOQy4KKzAwMjA3OCAgICAgKGJhc2UgMTYpCQlSVU5UT1AsIElOQy4KKwkJCQk1L0YsIE5PLiAxMCwgQUxMRVkgOCwgTEFORSA0NQorCQkJCVBBTyBTSElOIFJPQUQsIEhTSU5USUVOIFRBSVBFSSBIU0lFTgorCQkJCVRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLTc5ICAgKGhleCkJCU1JS1JPTiBHTUJICiswMDIwNzkgICAgIChiYXNlIDE2KQkJTUlLUk9OIEdNQkgKKwkJCQlCUkVTTEFVRVJTVFIuIDEtMworCQkJCTg1Mzg2IEVDSElORyAgCisJCQkJR0VSTUFOWQorCiswMC0yMC03QSAgIChoZXgpCQlXaVNFIENvbW11bmljYXRpb25zLCBJbmMuCiswMDIwN0EgICAgIChiYXNlIDE2KQkJV2lTRSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTEzMCBLTk9XTEVTIERSSVZFCisJCQkJTE9TIEdBVE9TIENBIDk1MDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC03QiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAyMDdCICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJMjExMSBORSAyNXRoIEF2ZW51ZQorCQkJCUpGMy00MjAKKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTdDICAgKGhleCkJCUFVVEVDIEdtYkgKKzAwMjA3QyAgICAgKGJhc2UgMTYpCQlBVVRFQyBHbWJICisJCQkJQkFITkhPRlNUUi4gNTcKKwkJCQk1NTIzNCBGUkFNRVJTSEVJTSAgCisJCQkJR0VSTUFOWQorCiswMC0yMC03RCAgIChoZXgpCQlBRFZBTkNFRCBDT01QVVRFUiBBUFBMSUNBVElPTlMKKzAwMjA3RCAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBDT01QVVRFUiBBUFBMSUNBVElPTlMKKwkJCQkxMDcgUEVOTlMgVFJBSUwKKwkJCQlORVdUT1dOIFBBIDE4OTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC03RSAgIChoZXgpCQlGSU5FQ09NIENvLiwgTHRkLgorMDAyMDdFICAgICAoYmFzZSAxNikJCUZJTkVDT00gQ28uLCBMdGQuCisJCQkJMTEwOCBIV0FLT0stRE9ORywgS0FOR1NFTy1LVQorCQkJCVNFT1VMICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjAtN0YgICAoaGV4KQkJS1lPRUkgU0FOR1lPIENPLiwgTFRELgorMDAyMDdGICAgICAoYmFzZSAxNikJCUtZT0VJIFNBTkdZTyBDTy4sIExURC4KKwkJCQlESVIuICYgR0VOJ0wgTUdSLklORC4gU1lTVEVNUworCQkJCTIwLTQsIFNIT1RPIDItQ0hPTUUgU0hJQlVZQS1LVQorCQkJCVRPS1lPCisJCQkJSkFQQU4KKworMDAtMjAtODAgICAoaGV4KQkJU1lORVJHWSAoVUspIExURC4KKzAwMjA4MCAgICAgKGJhc2UgMTYpCQlTWU5FUkdZIChVSykgTFRELgorCQkJCUhBUlRDUkFOIEhPVVNFCisJCQkJQ0FSUEVOREVSUyBQQVJLLAorCQkJCVdBVEZPUkQgSEVSVFMuICBXRDEgNUVaICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC04MSAgIChoZXgpCQlUSVRBTiBFTEVDVFJPTklDUworMDAyMDgxICAgICAoYmFzZSAxNikJCVRJVEFOIEVMRUNUUk9OSUNTCisJCQkJMzAzMyBTQ0lFTkNFIFBBUksgUk9BRAorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtODIgICAoaGV4KQkJT05FQUMgQ09SUE9SQVRJT04KKzAwMjA4MiAgICAgKGJhc2UgMTYpCQlPTkVBQyBDT1JQT1JBVElPTgorCQkJCTI3OTQ0IE4uIEJSQURMRVkgUkQuCisJCQkJTElCRVJUWVZJTExFIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC04MyAgIChoZXgpCQlQUkVTVElDT00gSU5DT1JQT1JBVEVECiswMDIwODMgICAgIChiYXNlIDE2KQkJUFJFU1RJQ09NIElOQ09SUE9SQVRFRAorCQkJCTMyNzUsIDFTVCBTVFJFRVQsIFNURS4gIzEKKwkJCQlTVC1IVUJFUlQgKFFVRUJFQykKKwkJCQlDQU5BREEgSjNZIDhZNgorCQkJCUNBTkFEQQorCiswMC0yMC04NCAgIChoZXgpCQlPQ0UgUFJJTlRJTkcgU1lTVEVNUywgR01CSAorMDAyMDg0ICAgICAoYmFzZSAxNikJCU9DRSBQUklOVElORyBTWVNURU1TLCBHTUJICisJCQkJU0lFTUVOU0FMTEVFIDIKKwkJCQlELTg1NTg2IFBPSU5HCisJCQkJR0VSTUFOWQorCiswMC0yMC04NSAgIChoZXgpCQlFWElERSBFTEVDVFJPTklDUworMDAyMDg1ICAgICAoYmFzZSAxNikJCUVYSURFIEVMRUNUUk9OSUNTCisJCQkJUC5PLiBCT1ggIDU4MTg5CisJCQkJUkFMRUlHSCBOQyAyNzY1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtODYgICAoaGV4KQkJTUlDUk9URUNIIEVMRUNUUk9OSUNTIExJTUlURUQKKzAwMjA4NiAgICAgKGJhc2UgMTYpCQlNSUNST1RFQ0ggRUxFQ1RST05JQ1MgTElNSVRFRAorCQkJCUxBTkNBU1RFUiBST0FECisJCQkJQ1JFU1NFWCBJTkRVU1RSSUFMIEVTVEFURSBISUdIIFdZQ09NQkUsCisJCQkJS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLTg3ICAgKGhleCkJCU1FTU9URUMsIElOQy4KKzAwMjA4NyAgICAgKGJhc2UgMTYpCQlNRU1PVEVDLCBJTkMuCisJCQkJNzc1NSBIZW5yaS1Cb3VyYXNzYQorCQkJCU1PTlRSRUFMLCBRVUVCRUMgICBINFMgMVA3CisJCQkJQ0FOQURBCisKKzAwLTIwLTg4ICAgKGhleCkJCUdMT0JBTCBWSUxMQUdFIENPTU1VTklDQVRJT04KKzAwMjA4OCAgICAgKGJhc2UgMTYpCQlHTE9CQUwgVklMTEFHRSBDT01NVU5JQ0FUSU9OCisJCQkJMTE0NCBFQVNUIEFSUVVFUyBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTg5ICAgKGhleCkJCVQzUExVUyBORVRXT1JLSU5HLCBJTkMuCiswMDIwODkgICAgIChiYXNlIDE2KQkJVDNQTFVTIE5FVFdPUktJTkcsIElOQy4KKwkJCQkyODQwIFNBTiBUT01BUyBFWFBSRVNTV0FZCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLThBICAgKGhleCkJCVNPTklYIENPTU1VTklDQVRJT05TLCBMVEQuCiswMDIwOEEgICAgIChiYXNlIDE2KQkJU09OSVggQ09NTVVOSUNBVElPTlMsIExURC4KKwkJCQlXSUxLSU5TT04gUk9BRAorCQkJCUNJUkVOQ0VTVEVSLCBHTE9TLiBHTDcgMVlUCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLThCICAgKGhleCkJCUxBUElTIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAyMDhCICAgICAoYmFzZSAxNikJCUxBUElTIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTExMDAgTUFSSU5BIFZJTExBR0UgUEtXWQorCQkJCVNVSVRFICMxMDAKKwkJCQlBTEFNRURBIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC04QyAgIChoZXgpCQlHQUxBWFkgTkVUV09SS1MsIElOQy4KKzAwMjA4QyAgICAgKGJhc2UgMTYpCQlHQUxBWFkgTkVUV09SS1MsIElOQy4KKwkJCQk5MzQ4IERFIFNPVE8gQVZFTlVFCisJCQkJQ0hBVFNXT1JUSCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtOEQgICAoaGV4KQkJQ01EIFRFQ0hOT0xPR1kKKzAwMjA4RCAgICAgKGJhc2UgMTYpCQlDTUQgVEVDSE5PTE9HWQorCQkJCTEgVkFOREVSQklMVAorCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtOEUgICAoaGV4KQkJQ0hFVklOIFNPRlRXQVJFIEVORy4gTFRELgorMDAyMDhFICAgICAoYmFzZSAxNikJCUNIRVZJTiBTT0ZUV0FSRSBFTkcuIExURC4KKwkJCQkyIEJPUk9VR0hHQVRFLCBPVExFWSwKKwkJCQlMRUVEUywgV0VTVCwgWU9SS1NISVJFCisJCQkJTFMyMSAzQUwgVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC04RiAgIChoZXgpCQlFQ0kgVEVMRUNPTSBMVEQuCiswMDIwOEYgICAgIChiYXNlIDE2KQkJRUNJIFRFTEVDT00gTFRELgorCQkJCUhBU0lWSU0gU1QuIDMwLAorCQkJCVBFVEFDSC1USUtWQSA0OTEzMyAgCisJCQkJSVNSQUVMCisKKzAwLTIwLTkwICAgKGhleCkJCUFEVkFOQ0VEIENPTVBSRVNTSU9OIFRFQ0hOT0xPR1ksIElOQy4KKzAwMjA5MCAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBDT01QUkVTU0lPTiBURUNITk9MT0dZLCBJTkMuCisJCQkJODIwIEZMWU5OIFJPQUQKKwkJCQlDQU1BUklMTE8gQ0EgOTMwMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTkxICAgKGhleCkJCUoxMjUsIE5BVElPTkFMIFNFQ1VSSVRZIEFHRU5DWQorMDAyMDkxICAgICAoYmFzZSAxNikJCUoxMjUsIE5BVElPTkFMIFNFQ1VSSVRZIEFHRU5DWQorCQkJCTk4MDAgU0FWQUdFIFJPQUQKKwkJCQlGVC4gTUVBREUgTUQgMjA3NTUtNjAwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtOTIgICAoaGV4KQkJQ0hFU1MgRU5HSU5FRVJJTkcgQi5WLgorMDAyMDkyICAgICAoYmFzZSAxNikJCUNIRVNTIEVOR0lORUVSSU5HIEIuVi4KKwkJCQlOSUVVV0UgR1JBQ0hUIDc0CisJCQkJMjAxMSBOSiBIQUFSTEVNCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjAtOTMgICAoaGV4KQkJTEFORElOR1MgVEVDSE5PTE9HWSBDT1JQLgorMDAyMDkzICAgICAoYmFzZSAxNikJCUxBTkRJTkdTIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkxNjMgV0FURVIgU1RSRUVUCisJCQkJTUVSUklMTCBCTE9DSyBVTklUIEEyCisJCQkJRVhFVEVSIE5IIDAzODMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC05NCAgIChoZXgpCQlDVUJJWCBDT1JQT1JBVElPTgorMDAyMDk0ICAgICAoYmFzZSAxNikJCUNVQklYIENPUlBPUkFUSU9OCisJCQkJMjgwMCBMT0NLSEVFRCBXQVkKKwkJCQlDQVJTT04gQ0lUWSBOViA4OTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtOTUgICAoaGV4KQkJUklWQSBFTEVDVFJPTklDUworMDAyMDk1ICAgICAoYmFzZSAxNikJCVJJVkEgRUxFQ1RST05JQ1MKKwkJCQlVTklUIDE3LCBCQVJSU0ZPTEQgUkQuCisJCQkJV0lOR0FURVMgSU5EVVNUUklBTCBQQVJLIFdFU1RIT1VHSFRPTiwgQgorCQkJCUxBTkNBU0hJUkUgRU5HTEFORCBCTDUgM1hXCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtOTYgICAoaGV4KQkJSW52ZW5zeXMKKzAwMjA5NiAgICAgKGJhc2UgMTYpCQlJbnZlbnN5cworCQkJCTEzNTQgQ2xpZmZvcmQgQXZlbnVlCisJCQkJTG92ZXMgUGFyayBJTCA2MTExMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtOTcgICAoaGV4KQkJQVBQTElFRCBTSUdOQUwgVEVDSE5PTE9HWQorMDAyMDk3ICAgICAoYmFzZSAxNikJCUFQUExJRUQgU0lHTkFMIFRFQ0hOT0xPR1kKKwkJCQkxNjAgU09CUkFOVEUgV0FZCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC05OCAgIChoZXgpCQlIRUNUUk9OSUMgQUIKKzAwMjA5OCAgICAgKGJhc2UgMTYpCQlIRUNUUk9OSUMgQUIKKwkJCQlCT1ggMzAwMgorCQkJCVMtNzUwMDMgVVBQU0FMQSAgCisJCQkJU1dFREVOCisKKzAwLTIwLTk5ICAgKGhleCkJCUJPTiBFTEVDVFJJQyBDTy4sIExURC4KKzAwMjA5OSAgICAgKGJhc2UgMTYpCQlCT04gRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJNC00IDI4LCBNSVpVRE8tQ0hPCisJCQkJQU1BR0FTQUtJLCA2NjEKKwkJCQlIWU9HTyBIWU9HTyBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTIwLTlBICAgKGhleCkJCVRIRSAzRE8gQ09NUEFOWQorMDAyMDlBICAgICAoYmFzZSAxNikJCVRIRSAzRE8gQ09NUEFOWQorCQkJCTYwMCBHQUxWRVNUT04gRFJJVkUKKwkJCQlSRURXT09EIENJVFkgQ0EgOTQwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTlCICAgKGhleCkJCUVSU0FUIEVMRUNUUk9OSUMgR01CSAorMDAyMDlCICAgICAoYmFzZSAxNikJCUVSU0FUIEVMRUNUUk9OSUMgR01CSAorCQkJCUhBQVJCRVJHU1RSLiA2MQorCQkJCUQtOTkwOTcgRVJGVVJUCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMjAtOUMgICAoaGV4KQkJUFJJTUFSWSBBQ0NFU1MgQ09SUC4KKzAwMjA5QyAgICAgKGJhc2UgMTYpCQlQUklNQVJZIEFDQ0VTUyBDT1JQLgorCQkJCTEwMDgwIENBUlJPTEwgQ0FOWU9OIFJECisJCQkJU0FOIERJRUdPIENBIDkyMTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC05RCAgIChoZXgpCQlMSVBQRVJUIEFVVE9NQVRJT05TVEVDSE5JSworMDAyMDlEICAgICAoYmFzZSAxNikJCUxJUFBFUlQgQVVUT01BVElPTlNURUNITklLCisJCQkJRC02ODE2NSBNQU5OSEVJTQorCQkJCUtSQVBQTVVFSExTVFIuIDM0CisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMjAtOUUgICAoaGV4KQkJQlJPV04nUyBPUEVSQVRJTkcgU1lTVEVNIFNFUlZJQ0VTLCBMVEQuCiswMDIwOUUgICAgIChiYXNlIDE2KQkJQlJPV04nUyBPUEVSQVRJTkcgU1lTVEVNIFNFUlZJQ0VTLCBMVEQuCisJCQkJU1QuIEFHTkVTIEhPVVNFLCBDUkVTU1dFTEwgUEssCisJCQkJQkxBQ0tIRUFUSCwgTG9uZG9uIFNFMyA5UkQgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLTlGICAgKGhleCkJCU1FUkNVUlkgQ09NUFVURVIgU1lTVEVNUywgSU5DLgorMDAyMDlGICAgICAoYmFzZSAxNikJCU1FUkNVUlkgQ09NUFVURVIgU1lTVEVNUywgSU5DLgorCQkJCTE5OSBSSVZFUk5FQ0sgUk9BRAorCQkJCUNIRUxNU0ZPUkQgTUEgMDE4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUEwICAgKGhleCkJCU9BIExBQk9SQVRPUlkgQ08uLCBMVEQuCiswMDIwQTAgICAgIChiYXNlIDE2KQkJT0EgTEFCT1JBVE9SWSBDTy4sIExURC4KKwkJCQkyMjggS0FNSU1BQ0hJWUEgS0FNQUtVUkEKKwkJCQlLQU5BR0FXQSAyNDcKKwkJCQlKQVBBTgorCiswMC0yMC1BMSAgIChoZXgpCQlET1ZBVFJPTgorMDAyMEExICAgICAoYmFzZSAxNikJCURPVkFUUk9OCisJCQkJUFJPRFVDVFMgRElWSVNJT04KKwkJCQkxMTk4IEJPU1RPTiBBVkVOVUUKKwkJCQlMT05HTU9OVCBDTyA4MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQTIgICAoaGV4KQkJR0FMQ09NIE5FVFdPUktJTkcgTFRELgorMDAyMEEyICAgICAoYmFzZSAxNikJCUdBTENPTSBORVRXT1JLSU5HIExURC4KKwkJCQlQLk8uIEJPWCAxNTY4CisJCQkJUkFNQVQgSEFTSEFST04gNDcxMTMgIAorCQkJCUlTUkFFTAorCiswMC0yMC1BMyAgIChoZXgpCQlESVZJQ09NIElOQy4KKzAwMjBBMyAgICAgKGJhc2UgMTYpCQlESVZJQ09NIElOQy4KKwkJCQk1ODAgQ09UVE9OV09PRCBEUklWRQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1BNCAgIChoZXgpCQlNVUxUSVBPSU5UIE5FVFdPUktTCiswMDIwQTQgICAgIChiYXNlIDE2KQkJTVVMVElQT0lOVCBORVRXT1JLUworCQkJCTE5IERBVklTIERSSVZFCisJCQkJQkVMTU9OVCBDQSA5NDAwMi0zMDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1BNSAgIChoZXgpCQlBUEkgRU5HSU5FRVJJTkcKKzAwMjBBNSAgICAgKGJhc2UgMTYpCQlBUEkgRU5HSU5FRVJJTkcKKwkJCQkyNjg5IFBPUExBUldPT0QgV0FZCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUE2ICAgKGhleCkJCVByb3hpbSBXaXJlbGVzcworMDAyMEE2ICAgICAoYmFzZSAxNikJCVByb3hpbSBXaXJlbGVzcworCQkJCTE1NjEgQnVja2V5ZSBEcml2ZQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1BNyAgIChoZXgpCQlQQUlSR0FJTiBURUNITk9MT0dJRVMsIElOQy4KKzAwMjBBNyAgICAgKGJhc2UgMTYpCQlQQUlSR0FJTiBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkxNDQwMiBGUkFOS0xJTiBBVkVOVUUKKwkJCQlUVVNUSU4gQ0EgOTI2ODAtNzAxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQTggICAoaGV4KQkJU0FTVCBURUNITk9MT0dZIENPUlAuCiswMDIwQTggICAgIChiYXNlIDE2KQkJU0FTVCBURUNITk9MT0dZIENPUlAuCisJCQkJMjI1IE9MRCBORVcgQlJVTlNXSUNLIFJELgorCQkJCVNVSVRFICMxMDEKKwkJCQlQSVNDQVRBV0FZIE5KIDA4ODU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1BOSAgIChoZXgpCQlXSElURSBIT1JTRSBJTkRVU1RSSUFMCiswMDIwQTkgICAgIChiYXNlIDE2KQkJV0hJVEUgSE9SU0UgSU5EVVNUUklBTAorCQkJCTRGLiBOTy4xNiwgQUxMRVkgNTYsIExBTkUgMTgxCisJCQkJU0VDLjQsIENIVU5HIEhTSUFPIEVBU1QgUk9BRCBUQUlQRUkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLUFBICAgKGhleCkJCURJR0lNRURJQSBWSVNJT04gTFRELgorMDAyMEFBICAgICAoYmFzZSAxNikJCURJR0lNRURJQSBWSVNJT04gTFRELgorCQkJCUNSQVdMRVkgQ09VUlQKKwkJCQlXSU5DSEVTVEVSLCBIQU1QU0hJUkUKKwkJCQlTTzIxIDJRQSBVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLUFCICAgKGhleCkJCU1JQ1JPIElORFVTVFJJRVMgQ09SUC4KKzAwMjBBQiAgICAgKGJhc2UgMTYpCQlNSUNSTyBJTkRVU1RSSUVTIENPUlAuCisJCQkJODM5OSBHUkVFTiBNRUFET1dTIERSLiBOLgorCQkJCVdFU1RFUlZJTExFIE9IIDQzMDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1BQyAgIChoZXgpCQlJTlRFUkZMRVggREFURU5TWVNURU1FIEdNQkgKKzAwMjBBQyAgICAgKGJhc2UgMTYpCQlJTlRFUkZMRVggREFURU5TWVNURU1FIEdNQkgKKwkJCQlHUk9CV0lFU0VOU1RSQVNFIDI0CisJCQkJVy03MjAxIERVUkNISEFVU0VOCisJCQkJV0VTVEdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLUFEICAgKGhleCkJCUxJTlEgU1lTVEVNUworMDAyMEFEICAgICAoYmFzZSAxNikJCUxJTlEgU1lTVEVNUworCQkJCVAuTy4gQk9YIDExMDQwCisJCQkJVFVDU09OIEFaIDg1NzM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1BRSAgIChoZXgpCQlPUk5FVCBEQVRBIENPTU1VTklDQVRJT04gVEVDSC4KKzAwMjBBRSAgICAgKGJhc2UgMTYpCQlPUk5FVCBEQVRBIENPTU1VTklDQVRJT04gVEVDSC4KKwkJCQlQLk8uIEJPWCAzMjMKKwkJCQlDQVJNSUVMICAyMDEwMAorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0yMC1BRiAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMDIwQUYgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQkFZRlJPTlQgUExBWkEKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQjAgICAoaGV4KQkJR0FURVdBWSBERVZJQ0VTLCBJTkMuCiswMDIwQjAgICAgIChiYXNlIDE2KQkJR0FURVdBWSBERVZJQ0VTLCBJTkMuCisJCQkJMjQ0MCBTVEFOV0VMTCBEUklWRQorCQkJCUNPTkNPUkQgQ0EgOTQ1MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUIxICAgKGhleCkJCUNPTVRFQ0ggUkVTRUFSQ0ggSU5DLgorMDAyMEIxICAgICAoYmFzZSAxNikJCUNPTVRFQ0ggUkVTRUFSQ0ggSU5DLgorCQkJCTI0MjcxIFRBSE9FCisJCQkJTEFHVU5BIE5JR1VFTCBDQSA5MjY1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQjIgICAoaGV4KQkJR0tEIEdlc2VsbHNjaGFmdCBGdXIgS29tbXVuaWthdGlvbiBVbmQgRGF0ZW50ZWNobmlrCiswMDIwQjIgICAgIChiYXNlIDE2KQkJR0tEIEdlc2VsbHNjaGFmdCBGdXIgS29tbXVuaWthdGlvbiBVbmQgRGF0ZW50ZWNobmlrCisJCQkJCisJCQkJU0FBUkJVUkdFUiBSSU5HIDEwLTEyCisJCQkJNjgyMjkgTUFOTkhFSU0gIAorCQkJCUdFUk1BTlkKKworMDAtMjAtQjMgICAoaGV4KQkJU0NMVEVDIENPTU1VTklDQVRJT05TIFNZU1RFTVMKKzAwMjBCMyAgICAgKGJhc2UgMTYpCQlTQ0xURUMgQ09NTVVOSUNBVElPTlMgU1lTVEVNUworCQkJCTMgQVBPTExPIFBMQUNFCisJCQkJTEFORSBDT1ZFIE4uUy5XLiAyMDY2CisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLTIwLUI0ICAgKGhleCkJCVRFUk1BIEVMRUtUUk9OSUsgQVMKKzAwMjBCNCAgICAgKGJhc2UgMTYpCQlURVJNQSBFTEVLVFJPTklLIEFTCisJCQkJSE9WTUFSS0VOIDQsCisJCQkJREstODUyMCBMWVNUUlVQICAKKwkJCQlERU5NQVJLCisKKzAwLTIwLUI1ICAgKGhleCkJCVlBU0tBV0EgRUxFQ1RSSUMgQ09SUE9SQVRJT04KKzAwMjBCNSAgICAgKGJhc2UgMTYpCQlZQVNLQVdBIEVMRUNUUklDIENPUlBPUkFUSU9OCisJCQkJMi0xIEtVUk9TQUtJLVNISVJPSVNISQorCQkJCVlBSEFUQU5JU0hJLUtVIEtJVEFLWVVTSFUtQ0lUWQorCQkJCUpBUEFOCisKKzAwLTIwLUI2ICAgKGhleCkJCUFHSUxFIE5FVFdPUktTLCBJTkMuCiswMDIwQjYgICAgIChiYXNlIDE2KQkJQUdJTEUgTkVUV09SS1MsIElOQy4KKwkJCQkyMDAgQkFLRVIgQVZFTlVFCisJCQkJQ09OQ09SRCBNQSAwMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQjcgICAoaGV4KQkJTkFNQVFVQSBDT01QVVRFUldBUkUKKzAwMjBCNyAgICAgKGJhc2UgMTYpCQlOQU1BUVVBIENPTVBVVEVSV0FSRQorCQkJCVAuTy4gQk9YIDcxNTUKKwkJCQlTVEVMTEVOIEJPU0NIIDc1OTkKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMjAtQjggICAoaGV4KQkJUFJJTUUgT1BUSU9OLCBJTkMuCiswMDIwQjggICAgIChiYXNlIDE2KQkJUFJJTUUgT1BUSU9OLCBJTkMuCisJCQkJMjM0MSBXLiAyMDVUSCBTVFJFRVQgIzExNgorCQkJCVRPUlJBTkNFIENBIDkwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1COSAgIChoZXgpCQlNRVRSSUNPTSwgSU5DLgorMDAyMEI5ICAgICAoYmFzZSAxNikJCU1FVFJJQ09NLCBJTkMuCisJCQkJOTgwIFVOSVZFUlNJVFkgQVZFTlVFCisJCQkJTE9TIEdBVE9TIENBIDk1MDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1CQSAgIChoZXgpCQlDRU5URVIgRk9SIEhJR0ggUEVSRk9STUFOQ0UKKzAwMjBCQSAgICAgKGJhc2UgMTYpCQlDRU5URVIgRk9SIEhJR0ggUEVSRk9STUFOQ0UKKwkJCQlDT01QVVRJTkcgT0YgV1BJCisJCQkJU1VJVEUgIzE3MCAyOTMgQk9TVE9OIFBPU1QgUk9BRCBXLgorCQkJCU1BUkxCT1JPIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1CQiAgIChoZXgpCQlaQVggQ09SUE9SQVRJT04KKzAwMjBCQiAgICAgKGJhc2UgMTYpCQlaQVggQ09SUE9SQVRJT04KKwkJCQkyMC0xMiBPR0lLVUJPIDUtQ0hPTUUKKwkJCQlTVUdJTkFNSS1LVSBUT0tZTworCQkJCTE2NyBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTIwLUJDICAgKGhleCkJCUxvbmcgUmVhY2ggTmV0d29ya3MgUHR5IEx0ZAorMDAyMEJDICAgICAoYmFzZSAxNikJCUxvbmcgUmVhY2ggTmV0d29ya3MgUHR5IEx0ZAorCQkJCVVuaXQgMywgMTE4LTEyMiBCb3dkZW4gU3QKKwkJCQlNRUFET1dCQU5LIE5TVyAyMTE0ICAKKwkJCQlBVVNUUkFMSUEKKworMDAtMjAtQkQgICAoaGV4KQkJTklPQlJBUkEgUiAmIEQgQ09SUE9SQVRJT04KKzAwMjBCRCAgICAgKGJhc2UgMTYpCQlOSU9CUkFSQSBSICYgRCBDT1JQT1JBVElPTgorCQkJCVBPIEJPWCAzNDE4CisJCQkJSk9QTElOIE1PIDY0ODAzLTM0MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUJFICAgKGhleCkJCUxBTiBBQ0NFU1MgQ09SUC4KKzAwMjBCRSAgICAgKGJhc2UgMTYpCQlMQU4gQUNDRVNTIENPUlAuCisJCQkJMjczMCBNT05URVJFWSBTVFJFRVQsIFNURS4jMTAyCisJCQkJVE9SUkFOQ0UgQ0EgOTA1MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUJGICAgKGhleCkJCUFFSFIgVEVTVCBTWVNURU1TCiswMDIwQkYgICAgIChiYXNlIDE2KQkJQUVIUiBURVNUIFNZU1RFTVMKKwkJCQkxNjY3IFBMWU1PVVRIIFNUUkVFVAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUMwICAgKGhleCkJCVBVTFNFIEVMRUNUUk9OSUNTLCBJTkMuCiswMDIwQzAgICAgIChiYXNlIDE2KQkJUFVMU0UgRUxFQ1RST05JQ1MsIElOQy4KKwkJCQk1NzA2IEZSRURFUklDSyBBVkVOVUUKKwkJCQlST0NLVklMTEUgTUQgMjA4NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUMxICAgKGhleCkJCVNBWEEsIEluYy4KKzAwMjBDMSAgICAgKGJhc2UgMTYpCQlTQVhBLCBJbmMuCisJCQkJTkJGIFBsYXRpbnVtIFRvd2VyIDEtMTctMyBTaGlyb2thbmUKKwkJCQlNaW5hdG8ta3UKKwkJCQlUb2t5byAgMTA4LTgwNTAKKwkJCQlKQVBBTgorCiswMC0yMC1DMiAgIChoZXgpCQlURVhBUyBNRU1PUlkgU1lTVEVNUywgSU5DLgorMDAyMEMyICAgICAoYmFzZSAxNikJCVRFWEFTIE1FTU9SWSBTWVNURU1TLCBJTkMuCisJCQkJMTEyMDAgV0VTVEhFSU1FUiBSRC1TVEUjMTAwMAorCQkJCUhPVVNUT04gVFggNzcwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUMzICAgKGhleCkJCUNPVU5URVIgU09MVVRJT05TIExURC4KKzAwMjBDMyAgICAgKGJhc2UgMTYpCQlDT1VOVEVSIFNPTFVUSU9OUyBMVEQuCisJCQkJMjYzIEhFQUdFIFJPQUQKKwkJCQlSSVBMRVksIERFUkJZUyBERTUgM0dIICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC1DNCAgIChoZXgpCQlJTkVULElOQy4KKzAwMjBDNCAgICAgKGJhc2UgMTYpCQlJTkVULElOQy4KKwkJCQk4MDEgRS4gQ0FNUEJFTEwtU1RFLiMzMzAKKwkJCQlSSUNIQVJEU09OIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1DNSAgIChoZXgpCQlFQUdMRSBURUNITk9MT0dZCiswMDIwQzUgICAgIChiYXNlIDE2KQkJRUFHTEUgVEVDSE5PTE9HWQorCQkJCTI4NjUgWkFOS0VSIFJPQUQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQzYgICAoaGV4KQkJTkVDVEVDCiswMDIwQzYgICAgIChiYXNlIDE2KQkJTkVDVEVDCisJCQkJUkFNQSBWSSBST0FECisJCQkJUkFKVEhFVkkgQkFOR0tPSyAgMTA0MDAKKwkJCQlUSEFJTEFORAorCQkJCVRIQUlMQU5ECisKKzAwLTIwLUM3ICAgKGhleCkJCUFLQUkgUHJvZmVzc2lvbmFsIE0uSS4gQ29ycC4KKzAwMjBDNyAgICAgKGJhc2UgMTYpCQlBS0FJIFByb2Zlc3Npb25hbCBNLkkuIENvcnAuCisJCQkJMS0zLCBIaXJhbnVtYSAxLUNob21lLAorCQkJCU5pc2hpLWt1LCBZb2tvaGFtYSwKKwkJCQkyMjAtMDAyMyAKKwkJCQlKQVBBTgorCiswMC0yMC1DOCAgIChoZXgpCQlMQVJTQ09NIElOQ09SUE9SQVRFRAorMDAyMEM4ICAgICAoYmFzZSAxNikJCUxBUlNDT00gSU5DT1JQT1JBVEVECisJCQkJNDYwMCBQQVRSSUNLIEhFTlJZIERSSVZFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUM5ICAgKGhleCkJCVZJQ1RST04gQlYKKzAwMjBDOSAgICAgKGJhc2UgMTYpCQlWSUNUUk9OIEJWCisJCQkJUE9CIDMxCisJCQkJTkwgOTcwMCBBQSBHUk9OSU5HRU4KKwkJCQlUSEUgTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMC1DQSAgIChoZXgpCQlESUdJVEFMIE9DRUFOCiswMDIwQ0EgICAgIChiYXNlIDE2KQkJRElHSVRBTCBPQ0VBTgorCQkJCTExMjA2IFRIT01QU09OIEFWRU5VRQorCQkJCUxFTkVYQSBLUyA2NjIxOS0yMzAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1DQiAgIChoZXgpCQlQUkVURUMgRUxFQ1RST05JQ1MgQ09SUC4KKzAwMjBDQiAgICAgKGJhc2UgMTYpCQlQUkVURUMgRUxFQ1RST05JQ1MgQ09SUC4KKwkJCQkzOTg5OSBCQUxFTlRJTkUgRFIuCisJCQkJU1VJVEUgIzMwNQorCQkJCU5FV0FSSyBDQSA5NDU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQ0MgICAoaGV4KQkJRElHSVRBTCBTRVJWSUNFUywgTFRELgorMDAyMENDICAgICAoYmFzZSAxNikJCURJR0lUQUwgU0VSVklDRVMsIExURC4KKwkJCQk5IFdBWVRFIFNUUkVFVAorCQkJCUNPU0hBTSBIQU1QU0hJUkUKKwkJCQlFTkdMQU5EIFBPNiAzQlMKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC1DRCAgIChoZXgpCQlIWUJSSUQgTkVUV09SS1MsIElOQy4KKzAwMjBDRCAgICAgKGJhc2UgMTYpCQlIWUJSSUQgTkVUV09SS1MsIElOQy4KKwkJCQkxMDIwMSBCVUJCIFJPQUQKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQtNDE2NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQ0UgICAoaGV4KQkJTE9HSUNBTCBERVNJR04gR1JPVVAsIElOQy4KKzAwMjBDRSAgICAgKGJhc2UgMTYpCQlMT0dJQ0FMIERFU0lHTiBHUk9VUCwgSU5DLgorCQkJCTYzMDEgQ0hBUEVMIEhJTEwgUk9BRAorCQkJCVJBTEVJR0ggTkMgMjc2MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUNGICAgKGhleCkJCVRFU1QgJiBNRUFTVVJFTUVOVCBTWVNURU1TIElOQworMDAyMENGICAgICAoYmFzZSAxNikJCVRFU1QgJiBNRUFTVVJFTUVOVCBTWVNURU1TIElOQworCQkJCTIwNDUgU0lUS0EgQ09VUlQKKwkJCQlMT1ZFTEFORCBDTyA4MDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRDAgICAoaGV4KQkJVkVSU0FMWU5YIENPUlBPUkFUSU9OCiswMDIwRDAgICAgIChiYXNlIDE2KQkJVkVSU0FMWU5YIENPUlBPUkFUSU9OCisJCQkJODk1MCBDQVJMRVkgQ0lSQ0xFCisJCQkJU0FOIERJRUdPIENBIDkyMTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1EMSAgIChoZXgpCQlNSUNST0NPTVBVVEVSIFNZU1RFTVMgKE0pIFNETi4KKzAwMjBEMSAgICAgKGJhc2UgMTYpCQlNSUNST0NPTVBVVEVSIFNZU1RFTVMgKE0pIFNETi4KKwkJCQkyMy0yNSwgSkFMQU4gSkVKQUtBIFRVSlVICisJCQkJVEFNQU4gTUFMVVJJLCBDSEVSQVMgNTUxMDAgS1VBTEEgTFVNUFVSCisJCQkJTUFMQVlTSUEKKwkJCQlNQUxBWVNJQQorCiswMC0yMC1EMiAgIChoZXgpCQlSQUQgREFUQSBDT01NVU5JQ0FUSU9OUywgTFRELgorMDAyMEQyICAgICAoYmFzZSAxNikJCVJBRCBEQVRBIENPTU1VTklDQVRJT05TLCBMVEQuCisJCQkJOCBIQU5FQ0hPU0hFVCBTVFJFRVQKKwkJCQlURUwtQVZJViAgNjk3MTAKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMjAtRDMgICAoaGV4KQkJT1NUIChPVUVTVCBTVEFOREFSRCBURUxFTUFUSVFVCiswMDIwRDMgICAgIChiYXNlIDE2KQkJT1NUIChPVUVTVCBTVEFOREFSRCBURUxFTUFUSVFVCisJCQkJUlVFIERVIEJBUyBWSUxMQUdFCisJCQkJQlAgMTU4LCBaLkkuIFNVRC1FU1QgMzU1MTUgQ0VTU09OLVNFVklHTgorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0yMC1ENCAgIChoZXgpCQlDQUJMRVRST04gLSBaRUlUVE5FVCBJTkMuCiswMDIwRDQgICAgIChiYXNlIDE2KQkJQ0FCTEVUUk9OIC0gWkVJVFRORVQgSU5DLgorCQkJCTM1IElORFVTVFJJQUwgV0FZCisJCQkJUC5PLiBCT1ggNTAwNQorCQkJCVJPSEVTVEVSIE5IIDAzODY2LTUwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUQ1ICAgKGhleCkJCVZJUEEgR01CSAorMDAyMEQ1ICAgICAoYmFzZSAxNikJCVZJUEEgR01CSAorCQkJCVdFVFRFUktSRVVaIDI3CisJCQkJRC05MTA1OCBFUkxBTkdFTgorCQkJCUdFUk1BTlkKKworMDAtMjAtRDYgICAoaGV4KQkJQlJFRVpFQ09NCiswMDIwRDYgICAgIChiYXNlIDE2KQkJQlJFRVpFQ09NCisJCQkJQVRJRElNIFRFQ0hOT0xPR0lDQUwgUEstQkxERy4zCisJCQkJVEVMLUFWSVYgIDYxMTMxCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTIwLUQ3ICAgKGhleCkJCUpBUEFOIE1JTklDT01QVVRFUiBTWVNURU1TIENPLiwgTHRkLgorMDAyMEQ3ICAgICAoYmFzZSAxNikJCUpBUEFOIE1JTklDT01QVVRFUiBTWVNURU1TIENPLiwgTHRkLgorCQkJCTMtMzMtMTggVEFLQUlET0hJR0FTSEkKKwkJCQlTVUdJTkFNSS1LVQorCQkJCVRPS1lPIDE2OCAgCisJCQkJSkFQQU4KKworMDAtMjAtRDggICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDIwRDggICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJNDQwMSBHcmVhdCBBbWVyaWNhIFBrd3kuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTQ1ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUQ5ICAgKGhleCkJCVBBTkFTT05JQyBURUNITk9MT0dJRVMsIElOQy4vTUlFQ08tVVMKKzAwMjBEOSAgICAgKGJhc2UgMTYpCQlQQU5BU09OSUMgVEVDSE5PTE9HSUVTLCBJTkMuL01JRUNPLVVTCisJCQkJMTcwMyBOLiBSQU5EQUxMIFJELgorCQkJCUVMR0lOIElMIDYwMTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1EQSAgIChoZXgpCQlBbGNhdGVsIE5vcnRoIEFtZXJpY2EgRVNECiswMDIwREEgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBOb3J0aCBBbWVyaWNhIEVTRAorCQkJCTI2ODAxIFdlc3QgQWdvdXJhIFJvYWQKKwkJCQlDQUxBQkFTQVMgQ0EgOTEzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLURCICAgKGhleCkJCVhORVQgVEVDSE5PTE9HWSwgSU5DLgorMDAyMERCICAgICAoYmFzZSAxNikJCVhORVQgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTQyNiBTLiBISUxMVklFVyBEUklWRQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1EQyAgIChoZXgpCQlERU5TSVRST04gVEFJV0FOIExURC4KKzAwMjBEQyAgICAgKGJhc2UgMTYpCQlERU5TSVRST04gVEFJV0FOIExURC4KKwkJCQlLWU9XQSBOQU5BQkFOS0FOIDVGCisJCQkJMS0xMS01IE9NT1JJLUtJVEEgT1RBLUtVLCAgVE9LWU8gMTQzCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0yMC1ERCAgIChoZXgpCQlDeWJlcnRlYyBQdHkgTHRkCiswMDIwREQgICAgIChiYXNlIDE2KQkJQ3liZXJ0ZWMgUHR5IEx0ZAorCQkJCVVuaXQgMTEsIDQxIEhpZ2dpbmJvdGhhbSBSb2FkCisJCQkJR2xhZGVzdmlsbGUgTlNXIDIxMTEKKwkJCQlBVVNUUkFMSUEKKworMDAtMjAtREUgICAoaGV4KQkJSkFQQU4gRElHSVRBTCBMQUJPUkFUJ1kgQ08uTFRECiswMDIwREUgICAgIChiYXNlIDE2KQkJSkFQQU4gRElHSVRBTCBMQUJPUkFUJ1kgQ08uTFRECisJCQkJSkRMIEtBV0FTQUtJIFIgJiBEIENFTlRFUgorCQkJCTEwLTEgTUlOQU1JLUtVUk9LQVdBIEFTQU8tS1UsIEtBV0FTS0FLSS0KKwkJCQlLQU5BR0FXQS1LRU4gIDIxNQorCQkJCUpBUEFOCisKKzAwLTIwLURGICAgKGhleCkJCUtZT1NBTiBFTEVDVFJJQyBNRkcuIENPLiwgTFRELgorMDAyMERGICAgICAoYmFzZSAxNikJCUtZT1NBTiBFTEVDVFJJQyBNRkcuIENPLiwgTFRELgorCQkJCTItMjksIEhFSUFOLUNITywgVFNVUlVNSS1LVQorCQkJCVlPS09IQU1BLCAyMzAKKwkJCQlKQVBBTgorCiswMC0yMC1FMCAgIChoZXgpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYy4KKzAwMjBFMCAgICAgKGJhc2UgMTYpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQk3NjAgTm9ydGggTWFyeSBBdmUuCisJCQkJU3Vubnl2YWxlLiBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRTEgICAoaGV4KQkJQUxBTUFSIEVMRUNUUk9OSUNTCiswMDIwRTEgICAgIChiYXNlIDE2KQkJQUxBTUFSIEVMRUNUUk9OSUNTCisJCQkJNDg5IERJVklTSU9OIFNUUkVFVAorCQkJCUNBTVBCRUxMIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1FMiAgIChoZXgpCQlJTkZPUk1BVElPTiBSRVNPVVJDRSBFTkdJTkVFUklORworMDAyMEUyICAgICAoYmFzZSAxNikJCUlORk9STUFUSU9OIFJFU09VUkNFIEVOR0lORUVSSU5HCisJCQkJODAyOSBDT1JQT1JBVEUgRFJJVkUKKwkJCQlCQUxUSU1PUkUgTUQgMjEyMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUUzICAgKGhleCkJCU1DRCBLRU5DT00gQ09SUE9SQVRJT04KKzAwMjBFMyAgICAgKGJhc2UgMTYpCQlNQ0QgS0VOQ09NIENPUlBPUkFUSU9OCisJCQkJMjA5NTAgQ0FTVExFIFJPQ0sgUk9BRAorCQkJCUxBR1VOQSBCRUFDSCBDQSA5MjY1MS0xMTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1FNCAgIChoZXgpCQlIU0lORyBURUNIIEVOVEVSUFJJU0UgQ08uLCBMVEQKKzAwMjBFNCAgICAgKGJhc2UgMTYpCQlIU0lORyBURUNIIEVOVEVSUFJJU0UgQ08uLCBMVEQKKwkJCQlOTy4gMiwgTEFORSAxMjgsIFNFQy4gMgorCQkJCUNIVU5HIFNIQU4gTi4gUkQuCisJCQkJVEVJUEVJLCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMC1FNSAgIChoZXgpCQlBUEVYIERBVEEsIElOQy4KKzAwMjBFNSAgICAgKGJhc2UgMTYpCQlBUEVYIERBVEEsIElOQy4KKwkJCQk2NjI0IE9XRU5TIERSSVZFCisJCQkJUExFQVNBTlRPTiBDQSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRTYgICAoaGV4KQkJTElES09QSU5HIE1BQ0hJTkUgVE9PTFMgQUIKKzAwMjBFNiAgICAgKGJhc2UgMTYpCQlMSURLT1BJTkcgTUFDSElORSBUT09MUyBBQgorCQkJCUJPWCA5MTAKKwkJCQk1MzEgMTkgTElES09QSU5HCisJCQkJU1dFREVOCisKKzAwLTIwLUU3ICAgKGhleCkJCUImVyBOVUNMRUFSIFNFUlZJQ0UgQ09NUEFOWQorMDAyMEU3ICAgICAoYmFzZSAxNikJCUImVyBOVUNMRUFSIFNFUlZJQ0UgQ09NUEFOWQorCQkJCVNQRUNJQUwgUFJPRFVDVFMgJiBJTlRFRy5TVkNTLgorCQkJCTE1NSBNSUxMIFJJREdFIFJPQUQKKwkJCQlMWU5DSEJVUkcgVkEgMjQ1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUU4ICAgKGhleCkJCURBVEFUUkVLIENPUlBPUkFUSU9OCiswMDIwRTggICAgIChiYXNlIDE2KQkJREFUQVRSRUsgQ09SUE9SQVRJT04KKwkJCQk0NTA1IFdZTEFORCBEUklWRQorCQkJCUVMS0hBUlQgSU4gNDY1MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUU5ICAgKGhleCkJCURBTlRFTAorMDAyMEU5ICAgICAoYmFzZSAxNikJCURBTlRFTAorCQkJCVAuTy4gQk9YIDU1MDEzCisJCQkJMjk5MSBOT1JUSCBBUkdZTEUgQVZFLgorCQkJCUZSRVNOTyBDQSA5MzcyNy0xMzg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1FQSAgIChoZXgpCQlFRkZJQ0lFTlQgTkVUV09SS1MsIElOQy4KKzAwMjBFQSAgICAgKGJhc2UgMTYpCQlFRkZJQ0lFTlQgTkVUV09SS1MsIElOQy4KKwkJCQk0MjAxIFNQUklORyBWQUxMRVkgUk9BRAorCQkJCVNVSVRFICMxMjAwCisJCQkJREFMTEFTIFRYIDc1MjQ0LTM2NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUVCICAgKGhleCkJCUNJTkNJTk5BVEkgTUlDUk9XQVZFLCBJTkMuCiswMDIwRUIgICAgIChiYXNlIDE2KQkJQ0lOQ0lOTkFUSSBNSUNST1dBVkUsIElOQy4KKwkJCQlPTkUgTUlDUk9XQVZFIFBMQVpBCisJCQkJQ0lOQ0lOTkFUSSBPSCA0NTI0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRUMgICAoaGV4KQkJVEVDSFdBUkUgU1lTVEVNUyBDT1JQLgorMDAyMEVDICAgICAoYmFzZSAxNikJCVRFQ0hXQVJFIFNZU1RFTVMgQ09SUC4KKwkJCQkjMTAwIC0gMTIwNTEgSE9SU0VTSE9FIFdBWQorCQkJCVJJQ0hNT05ELCBCLkMuIENBTkFEQQorCQkJCVY3QSA0VjQKKwkJCQlDQU5BREEKKworMDAtMjAtRUQgICAoaGV4KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDIwRUQgICAgIChiYXNlIDE2KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJMzY1IENMT1ZFUkxFQUYKKwkJCQlCQUxEV0lOIFBBUksgQ0EgOTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUVFICAgKGhleCkJCUdURUNIIENPUlBPUkFUSU9OCiswMDIwRUUgICAgIChiYXNlIDE2KQkJR1RFQ0ggQ09SUE9SQVRJT04KKwkJCQk1NSBURUNITk9MT0dZIFdBWQorCQkJCVdFU1QgR1JFRU5XSUNIIFJJIDAyODE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1FRiAgIChoZXgpCQlVU0MgQ09SUE9SQVRJT04KKzAwMjBFRiAgICAgKGJhc2UgMTYpCQlVU0MgQ09SUE9SQVRJT04KKwkJCQk2LTQsIE9TQUtJIDEtQ0hPTUUKKwkJCQlTSElOQUdBV0EtS1UgVE9LWU8sCisJCQkJMTQxIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMjAtRjAgICAoaGV4KQkJVU5JVkVSU0FMIE1JQ1JPRUxFQ1RST05JQ1MgQ08uCiswMDIwRjAgICAgIChiYXNlIDE2KQkJVU5JVkVSU0FMIE1JQ1JPRUxFQ1RST05JQ1MgQ08uCisJCQkJMywgMjdUSCBSRC4sIFRBSUNIVU5HIElORC5QQVJLCisJCQkJVEFJQ0hVTgorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMC1GMSAgIChoZXgpCQlBTFRPUyBJTkRJQSBMSU1JVEVECiswMDIwRjEgICAgIChiYXNlIDE2KQkJQUxUT1MgSU5ESUEgTElNSVRFRAorCQkJCUQtNjAsIE9LTEhMQSBJTkRVU1RSSUFMCisJCQkJQVJFQSwgUEhBU0UgMSBORVcgREVMSEkgLTExMDAyMAorCQkJCUlORElBCisJCQkJSU5ESUEKKworMDAtMjAtRjIgICAoaGV4KQkJT3JhY2xlIENvcnBvcmF0aW9uIAorMDAyMEYyICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbiAKKwkJCQk1MDAgT3JhY2xlIFBhcmt3YXkKKwkJCQlSZWR3b29kIFNob3JlcyBDQSA5NTA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRjMgICAoaGV4KQkJUkFZTkVUIENPUlBPUkFUSU9OCiswMDIwRjMgICAgIChiYXNlIDE2KQkJUkFZTkVUIENPUlBPUkFUSU9OCisJCQkJMTU1IENPTlNUSVRVVElPTiBEUklWRQorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUY0ICAgKGhleCkJCVNQRUNUUklYIENPUlBPUkFUSU9OCiswMDIwRjQgICAgIChiYXNlIDE2KQkJU1BFQ1RSSVggQ09SUE9SQVRJT04KKwkJCQkxMDYgV0lMTU9UIFJPQUQsIFNVSVRFIDI1MAorCQkJCURFRVJGSUVMRCBJTCA2MDAxNS01MTUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1GNSAgIChoZXgpCQlQQU5EQVRFTCBBRworMDAyMEY1ICAgICAoYmFzZSAxNikJCVBBTkRBVEVMIEFHCisJCQkJRkFTQU5FTldFRyAyNQorCQkJCUQtMjIxNDUgIEhBTUJVUkcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0yMC1GNiAgIChoZXgpCQlORVQgVEVLICBBTkQgS0FSTE5FVCwgSU5DLgorMDAyMEY2ICAgICAoYmFzZSAxNikJCU5FVCBURUsgIEFORCBLQVJMTkVULCBJTkMuCisJCQkJTElUVExFIFNUUkVBTVMKKwkJCQlUSEUgQUJCT1RTQlJPT0ssIEJPVVJORSBFTkQgQlVDS1MsIFNMOCA1CisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC1GNyAgIChoZXgpCQlDWUJFUkRBVEEgQ09SUE9SQVRJT04KKzAwMjBGNyAgICAgKGJhc2UgMTYpCQlDWUJFUkRBVEEgQ09SUE9SQVRJT04KKwkJCQkzIEp1c3RpbiBDb3VydAorCQkJCU1PTlRFUkVZIENBIDkzOTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1GOCAgIChoZXgpCQlDQVJSRVJBIENPTVBVVEVSUywgSU5DLgorMDAyMEY4ICAgICAoYmFzZSAxNikJCUNBUlJFUkEgQ09NUFVURVJTLCBJTkMuCisJCQkJMjMxODEgVkVSRFVHTyBEUklWRS1TVEUuIzEwNUEKKwkJCQlMQUdVTkEgSElMTFMgQ0EgOTI2NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUY5ICAgKGhleCkJCVBBUkFMSU5LIE5FVFdPUktTLCBJTkMuCiswMDIwRjkgICAgIChiYXNlIDE2KQkJUEFSQUxJTksgTkVUV09SS1MsIElOQy4KKwkJCQk0RiwgTk8uIDI3LCBTRUMuMywgUEFURUggUkQuCisJCQkJVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLUZBICAgKGhleCkJCUdERSBTWVNURU1TLCBJTkMuCiswMDIwRkEgICAgIChiYXNlIDE2KQkJR0RFIFNZU1RFTVMsIElOQy4KKwkJCQlQLk8uIEJPWCA4NTQ2OCAtIEJMREcuIzYxCisJCQkJU0FOIERJRUdPIENBIDkyMTg2LTU0NjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUZCICAgKGhleCkJCU9DVEVMIENPTU1VTklDQVRJT05TIENPUlAuCiswMDIwRkIgICAgIChiYXNlIDE2KQkJT0NURUwgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQkxMDAxIE1VUlBIWSBSQU5DSCBSRAorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1GQyAgIChoZXgpCQlNQVRST1gKKzAwMjBGQyAgICAgKGJhc2UgMTYpCQlNQVRST1gKKwkJCQkxMDU1IFNULiBSRUdJUywKKwkJCQlET1JWQUwsIFFVRUJFQyAgSDlQLTJUNCAgCisJCQkJQ0FOQURBCisKKzAwLTIwLUZEICAgKGhleCkJCUlUViBURUNITk9MT0dJRVMsIElOQy4KKzAwMjBGRCAgICAgKGJhc2UgMTYpCQlJVFYgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNjgwMCBPV0VOU01PVVRIIEFWRS4gICMyMzAKKwkJCQlDQU5PR0EgUEFSSyBDQSA5MTMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRkUgICAoaGV4KQkJVE9QV0FSRSBJTkMuIC8gR1JBTkQgQ09NUFVURVIKKzAwMjBGRSAgICAgKGJhc2UgMTYpCQlUT1BXQVJFIElOQy4gLyBHUkFORCBDT01QVVRFUgorCQkJCUNPUlBPUkFUSU9OCisJCQkJQjEsIE5PLiA5LCBMQU5FIDUwIFNFQ1RJT04gMywgTkFOIEtBTkcgUgorCQkJCVRBSVBFSSAgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMC1GRiAgIChoZXgpCQlTWU1NRVRSSUNBTCBURUNITk9MT0dJRVMKKzAwMjBGRiAgICAgKGJhc2UgMTYpCQlTWU1NRVRSSUNBTCBURUNITk9MT0dJRVMKKwkJCQk1MDAgSFVOVE1BUiBQQVJLIERSSVZFCisJCQkJSEVSTkRPTiBWQSAyMjA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMDAgICAoaGV4KQkJR2VtVGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDIxMDAgICAgIChiYXNlIDE2KQkJR2VtVGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uMSBKZW4gQWkgUm9hZCwgSHNpbmNodSBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHVrb3UsIEhzaW5jaHUgMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMS0wMSAgIChoZXgpCQlBcGxpY2FjaW9uZXMgRWxlY3Ryb25pY2FzIFF1YXNhciAoQUVRKQorMDAyMTAxICAgICAoYmFzZSAxNikJCUFwbGljYWNpb25lcyBFbGVjdHJvbmljYXMgUXVhc2FyIChBRVEpCisJCQkJQy9SZXkgUGFzdG9yIDQwCisJCQkJUG9saWdvbm8gSW5kdXN0cmlhbCBCdXRhcnF1ZQorCQkJCUxlZ2FuZXMgTWFkcmlkIDI4OTE0CisJCQkJU1BBSU4KKworMDAtMjEtMDIgICAoaGV4KQkJVXBkYXRlTG9naWMgSW5jLgorMDAyMTAyICAgICAoYmFzZSAxNikJCVVwZGF0ZUxvZ2ljIEluYy4KKwkJCQkyIFdpbGxvdyBTdHJlZXQsIFN1aXRlIDEwMQorCQkJCVNvdXRoYm9yb3VnaCBNQSAwMTc0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMDMgICAoaGV4KQkJR0hJIEVsZWN0cm9uaWNzLCBMTEMKKzAwMjEwMyAgICAgKGJhc2UgMTYpCQlHSEkgRWxlY3Ryb25pY3MsIExMQworCQkJCTM1NTU1IEdhcmZpZWxkIFJkLgorCQkJCVN1aXRlIDRCCisJCQkJQ2xpbnRvbiBUb3duc2hpcCBNSSA0ODAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMDQgICAoaGV4KQkJR2lnYXNldCBDb21tdW5pY2F0aW9ucyBHbWJICiswMDIxMDQgICAgIChiYXNlIDE2KQkJR2lnYXNldCBDb21tdW5pY2F0aW9ucyBHbWJICisJCQkJRnJhbmtlbnN0cmFzc2UgMgorCQkJCTQ2Mzk1IEJvY2hvbHQgCisJCQkJR0VSTUFOWQorCiswMC0yMS0wNSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudAorMDAyMTA1ICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50CisJCQkJNzAxIEUuIE1pZGRsZWZpZWxkIFJkLgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTA2ICAgKGhleCkJCVJJTSBUZXN0aW5nIFNlcnZpY2VzCiswMDIxMDYgICAgIChiYXNlIDE2KQkJUklNIFRlc3RpbmcgU2VydmljZXMKKwkJCQk0NDAgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPTiBOMkwgNVI5CisJCQkJQ0FOQURBCisKKzAwLTIxLTA3ICAgKGhleCkJCVNlb3dvbmludGVjaCBDbyBMdGQuCiswMDIxMDcgICAgIChiYXNlIDE2KQkJU2Vvd29uaW50ZWNoIENvIEx0ZC4KKwkJCQk2ODktNDcgR2V1bWplb25nZG9uZworCQkJCUd1bnBvc2kgS3lvdW5na2lkbyA0MzYtODYyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTA4ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDIxMDggICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTIxLTA5ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDIxMDkgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTIxLTBBICAgKGhleCkJCWJ5ZDpzaWduIENvcnBvcmF0aW9uCiswMDIxMEEgICAgIChiYXNlIDE2KQkJYnlkOnNpZ24gQ29ycG9yYXRpb24KKwkJCQkyLTEwLTYgVHN1a2lqaQorCQkJCUJQUyBTUVVBUkUgMkYKKwkJCQlDaHVvLWt1IFRva3lvIDEwNC0wMDQ1CisJCQkJSkFQQU4KKworMDAtMjEtMEIgICAoaGV4KQkJR0VNSU5JIFRSQVpFIFJGSUQgUFZULiBMVEQuCiswMDIxMEIgICAgIChiYXNlIDE2KQkJR0VNSU5JIFRSQVpFIFJGSUQgUFZULiBMVEQuCisJCQkJMSwgRFIuIFJBTkdBIFJPQUQKKwkJCQlBTFdBUlBFVAorCQkJCUNIRU5OQUkgVEFNSUxOQURVIDYwMDAxOAorCQkJCUlORElBCisKKzAwLTIxLTBDICAgKGhleCkJCUN5bXRlYyBTeXN0ZW1zLCBJbmMuCiswMDIxMEMgICAgIChiYXNlIDE2KQkJQ3ltdGVjIFN5c3RlbXMsIEluYy4KKwkJCQkxMDg0NSBPbGl2ZSBCb3VsZXZlYXJkCisJCQkJU3VpdGUgMzA2CisJCQkJU3QgTG91aXMgTU8gNjMxNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTBEICAgKGhleCkJCVNBTVNJTiBJTk5PVEVDCiswMDIxMEQgICAgIChiYXNlIDE2KQkJU0FNU0lOIElOTk9URUMKKwkJCQlTQVJJWVVORE9ORyBJTFNBTkRPTkctR1UKKwkJCQkyNTItMjMKKwkJCQlHT1lBTkcgS1lVTkdHSSA0MTE1MzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtMEUgICAoaGV4KQkJT3JwYWsgU3lzdGVtcyBMLlQuRC4KKzAwMjEwRSAgICAgKGJhc2UgMTYpCQlPcnBhayBTeXN0ZW1zIEwuVC5ELgorCQkJCTMxIExlY2hpIFN0CisJCQkJQm5laSAtIEJyYWsgIDUxMTE0CisJCQkJSVNSQUVMCisKKzAwLTIxLTBGICAgKGhleCkJCUNlcm5pdW0gQ29ycAorMDAyMTBGICAgICAoYmFzZSAxNikJCUNlcm5pdW0gQ29ycAorCQkJCTE5NDMgSXNhYWMgTmV3dG9uIFNxCisJCQkJU3VpdGUgMjAwCisJCQkJUmVzdG9uIFZBIDIwMTkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0xMCAgIChoZXgpCQlDbGVhcmJveCBTeXN0ZW1zCiswMDIxMTAgICAgIChiYXNlIDE2KQkJQ2xlYXJib3ggU3lzdGVtcworCQkJCVVuaXQgMTEsIDEyLTE0IEJlYXVtb250IFJvYWQKKwkJCQlNdCBLdXJpbmctR2FpIE5TVyAyMDgwCisJCQkJQVVTVFJBTElBCisKKzAwLTIxLTExICAgKGhleCkJCVVuaXBob25lIEluYy4KKzAwMjExMSAgICAgKGJhc2UgMTYpCQlVbmlwaG9uZSBJbmMuCisJCQkJNzk1IE1haW4gU3RyZWV0CisJCQkJSGFsZiBNb29uIEJheSBDQSA5NDAxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMTIgICAoaGV4KQkJV0lTQ09NIFNZU1RFTSBDTy4sTFRECiswMDIxMTIgICAgIChiYXNlIDE2KQkJV0lTQ09NIFNZU1RFTSBDTy4sTFRECisJCQkJMTAwIEppYW5nanVuIFJvYWQsSmlhbmduaW5nLAorCQkJCU5hbmppbmcgIDIxMTEwMAorCQkJCUNISU5BCisKKzAwLTIxLTEzICAgKGhleCkJCVBhZHRlYyBTL0EKKzAwMjExMyAgICAgKGJhc2UgMTYpCQlQYWR0ZWMgUy9BCisJCQkJUm9hZCBDYW1waW5hcyBNb2dpLU1pcmltIGttIDExOCw1CisJCQkJQ2FtcGluYXMgU2FvIFBhdWxvIDEzMDg2LTkwMgorCQkJCUJSQVpJTAorCiswMC0yMS0xNCAgIChoZXgpCQlIeWxhYiBUZWNobm9sb2d5IEluYy4KKzAwMjExNCAgICAgKGJhc2UgMTYpCQlIeWxhYiBUZWNobm9sb2d5IEluYy4KKwkJCQkxNUYtMi4sTm8uODcyLEpob25namhlbmcgUmQuCisJCQkJSmhvbmdoZSBDaXR5LCBUYWlwZWkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMS0xNSAgIChoZXgpCQlQSFlXRSBTeXN0ZW1lIEdtYkggJiBDby4gS0cKKzAwMjExNSAgICAgKGJhc2UgMTYpCQlQSFlXRSBTeXN0ZW1lIEdtYkggJiBDby4gS0cKKwkJCQlSb2JlcnQtQm9zY2gtQnJlaXRlIDEwCisJCQkJR29ldHRpbmdlbiBOaWVkZXJzYWNoc2VuIDM3MDc5CisJCQkJR0VSTUFOWQorCiswMC0yMS0xNiAgIChoZXgpCQlUcmFuc2NvbiBFbGVjdHJvbmljIFN5c3RlbXMsIHNwb2wuIHMgci4gby4KKzAwMjExNiAgICAgKGJhc2UgMTYpCQlUcmFuc2NvbiBFbGVjdHJvbmljIFN5c3RlbXMsIHNwb2wuIHMgci4gby4KKwkJCQlLdmFwaWxvdmEgMjEzMworCQkJCUZyeWRlay1NaXN0ZWsgIDczODAyCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMjEtMTcgICAoaGV4KQkJVGVsbG9yZAorMDAyMTE3ICAgICAoYmFzZSAxNikJCVRlbGxvcmQKKwkJCQlHdXJvZ3UgR3Vyb2RvbmcgMTcwLTUgV29vbGltIGUtQml6IENlbnRlciA3MDkKKwkJCQlTZW91bCAgMTUyLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS0xOCAgIChoZXgpCQlBdGhlbmEgVGVjaCwgSW5jLgorMDAyMTE4ICAgICAoYmFzZSAxNikJCUF0aGVuYSBUZWNoLCBJbmMuCisJCQkJMzcyMSBNYWNpbnRvc2ggRHIKKwkJCQlWaW50IEhpbGwgVGVjaCBQYXJrCisJCQkJV2FycmVudG9uIFZBIDIwMTg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0xOSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm8tTWVjaGFuaWNzCiswMDIxMTkgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvLU1lY2hhbmljcworCQkJCTMxNCwgTWV0YW4gMyBkb25nCisJCQkJU3V3b24gS3l1bmctZ2kgZG8gNDQzLTc0MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS0xQSAgIChoZXgpCQlMSW5UZWNoIENvcnBvcmF0aW9uCiswMDIxMUEgICAgIChiYXNlIDE2KQkJTEluVGVjaCBDb3Jwb3JhdGlvbgorCQkJCUtyYXNub2themFybWVubmF5YSBzdC4sIDEyCisJCQkJTW9zY293ICAxMTEyNTAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjEtMUIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMTFCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTFDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjExQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0xRCAgIChoZXgpCQlEYXRhbGluZSBBQgorMDAyMTFEICAgICAoYmFzZSAxNikJCURhdGFsaW5lIEFCCisJCQkJS2F0cmluZWRhbHNnYXRhbiA1MworCQkJCUJPUkFTICBTLTUwNDUxCisJCQkJU1dFREVOCisKKzAwLTIxLTFFICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIxMUUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0xRiAgIChoZXgpCQlTSElOU1VORyBERUxUQVRFQ0ggQ08uLExURC4KKzAwMjExRiAgICAgKGJhc2UgMTYpCQlTSElOU1VORyBERUxUQVRFQ0ggQ08uLExURC4KKwkJCQk0NC0xMAorCQkJCVVOR05BTS1ET05HCisJCQkJQ0hBTkdXT04tQ0lUWSBLWVVOR05BTS1ETyA2NDEtMjkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTIwICAgKGhleCkJCVNlcXVlbCBUZWNobm9sb2dpZXMKKzAwMjEyMCAgICAgKGJhc2UgMTYpCQlTZXF1ZWwgVGVjaG5vbG9naWVzCisJCQkJMjk1MSBDbGV2ZWxhbmQgQXZlIE4KKwkJCQlSb3NldmlsbGUgTU4gNTUxMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTIxICAgKGhleCkJCVZSbWFnaWMgR21iSAorMDAyMTIxICAgICAoYmFzZSAxNikJCVZSbWFnaWMgR21iSAorCQkJCUF1Z3VzdGFhbmxhZ2UgMzIKKwkJCQlNYW5uaGVpbSBCVyA2ODE2NQorCQkJCUdFUk1BTlkKKworMDAtMjEtMjIgICAoaGV4KQkJQ2hpcC1wcm8gTHRkLgorMDAyMTIyICAgICAoYmFzZSAxNikJCUNoaXAtcHJvIEx0ZC4KKwkJCQk1Ri4tNCwgTm8uNjMsIFNpd2VpIFJkLiwgTm9ydGggRGlzdHJpY3QsCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMS0yMyAgIChoZXgpCQlBZXJvc2F0IEF2aW9uaWNzCiswMDIxMjMgICAgIChiYXNlIDE2KQkJQWVyb3NhdCBBdmlvbmljcworCQkJCTYyIFN0YXRlIFJkLgorCQkJCTEwMUEgU3VpdGUgMkIKKwkJCQlBbWhlcnN0IE5IIDAzMDMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0yNCAgIChoZXgpCQlPcHRvcyBQbGMKKzAwMjEyNCAgICAgKGJhc2UgMTYpCQlPcHRvcyBQbGMKKwkJCQlRdWVlbnNmZXJyeSBIb3VzZQorCQkJCUNhcm5lZ2llIEJ1c2luZXNzIENhbXB1cworCQkJCUR1bmZlcm1saW5lIEZpZmUgS1kxMSA4R1IKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMS0yNSAgIChoZXgpCQlLVUsgSkUgVE9ORyBTSElOIENvLixMVEQKKzAwMjEyNSAgICAgKGJhc2UgMTYpCQlLVUsgSkUgVE9ORyBTSElOIENvLixMVEQKKwkJCQk0NzYtMworCQkJCUpha0plb24tRG9uZywKKwkJCQlJbmNoZW9uIEt3YW5neW91ay1TaSA0MDctMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTI2ICAgKGhleCkJCVNoZW56aGVuIFRvcmNoIEVxdWlwbWVudCBDby4sIEx0ZC4KKzAwMjEyNiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBUb3JjaCBFcXVpcG1lbnQgQ28uLCBMdGQuCisJCQkJRmxvb3IgNSwgQmxvY2sgMywgTGltaW5nIEluZHVzdHJpYWwgRGlzdHJpY3QsIFpob25nc2hhbnl1YW4gUm9hZCwgTmFuc2hhbiwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDUyCisJCQkJQ0hJTkEKKworMDAtMjEtMjcgICAoaGV4KQkJVFAtTElOSyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAyMTI3ICAgICAoYmFzZSAxNikJCVRQLUxJTksgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlTb3V0aCBCdWlsZGluZywgTm8uNSBLZXl1YW4gUm9hZCwgQ2VudHJhbCBab25lLAorCQkJCVNjaWVuY2UgJiBUZWNobm9sb2d5IFBhcmssTmFuc2hhbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCiswMC0yMS0yOCAgIChoZXgpCQlPcmFjbGUgQ29ycG9yYXRpb24KKzAwMjEyOCAgICAgKGJhc2UgMTYpCQlPcmFjbGUgQ29ycG9yYXRpb24KKwkJCQkxNyBOZXR3b3JrIENpcmNsZQorCQkJCUJ1aWxkaW5nIDE3LCBVTVBLMTctMTMxCisJCQkJTWVubG8gUGFyayBDQSA5NTAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMjkgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCiswMDIxMjkgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0yQSAgIChoZXgpCQlBdWRpb3ZveCBDb3Jwb3JhdGlvbgorMDAyMTJBICAgICAoYmFzZSAxNikJCUF1ZGlvdm94IENvcnBvcmF0aW9uCisJCQkJMTUwIE1hcmN1cyBCbHZkCisJCQkJSGF1cHBhdWdlIE5ZIDExNzg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0yQiAgIChoZXgpCQlNU0EgQXVlcgorMDAyMTJCICAgICAoYmFzZSAxNikJCU1TQSBBdWVyCisJCQkJVGhpZW1hbm5zdHIuIDEKKwkJCQlCZXJsaW4gIDEyMDU5CisJCQkJR0VSTUFOWQorCiswMC0yMS0yQyAgIChoZXgpCQlTZW1JbmRpYSBTeXN0ZW0gUHJpdmF0ZSBMaW1pdGVkCiswMDIxMkMgICAgIChiYXNlIDE2KQkJU2VtSW5kaWEgU3lzdGVtIFByaXZhdGUgTGltaXRlZAorCQkJCU5vLiAxMTA2LzksIEEuTSBJbmR1c3RyaWFsIEVzdGF0ZSwgR2FydmViaGF2aXBhbHlhCisJCQkJN3RoIG1pbGUsIEhvc3VyIFJvYWQKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MCAwNjgKKwkJCQlJTkRJQQorCiswMC0yMS0yRCAgIChoZXgpCQlTQ0lNT0xFWCBDT1JQT1JBVElPTgorMDAyMTJEICAgICAoYmFzZSAxNikJCVNDSU1PTEVYIENPUlBPUkFUSU9OCisJCQkJMjQzMCwgU2Fpam91LCBTaG93YS1jaG8KKwkJCQlOYWtha29tYS1ndW4sIFlhbWFuYXNoaSAgNDA5LTM4NjYKKwkJCQlKQVBBTgorCiswMC0yMS0yRSAgIChoZXgpCQlkcmVzZGVuLWVsZWt0cm9uaWsKKzAwMjEyRSAgICAgKGJhc2UgMTYpCQlkcmVzZGVuLWVsZWt0cm9uaWsKKwkJCQlHbGFzZXdhbGR0c3RyYXNzZSAyMgorCQkJCURyZXNkZW4gU2F4b255IEQtMDEyNzcKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLTJGICAgKGhleCkJCVBob2ViZSBNaWNybyBJbmMuCiswMDIxMkYgICAgIChiYXNlIDE2KQkJUGhvZWJlIE1pY3JvIEluYy4KKwkJCQk0NzYwNiBLYXRvIFJkCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMzAgICAoaGV4KQkJS2VpY28gSGlnaHRlY2ggSW5jLgorMDAyMTMwICAgICAoYmFzZSAxNikJCUtlaWNvIEhpZ2h0ZWNoIEluYy4KKwkJCQlBY2UgdHdpbiB0b3dlciBJLCAxMnRoIEZsLgorCQkJCTIxMi0xLCBHdXJvLWRvbmcsIGd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS0zMSAgIChoZXgpCQlCbHlua2UgSW5jLgorMDAyMTMxICAgICAoYmFzZSAxNikJCUJseW5rZSBJbmMuCisJCQkJMTMzIFJpY2htb25kIFN0LiBXZXN0CisJCQkJU3VpdGUgNjAwCisJCQkJVG9yb250byBPbnRhcmlvIE01SCAyTDMKKwkJCQlDQU5BREEKKworMDAtMjEtMzIgICAoaGV4KQkJTWFzdGVyY2xvY2ssIEluYy4KKzAwMjEzMiAgICAgKGJhc2UgMTYpCQlNYXN0ZXJjbG9jaywgSW5jLgorCQkJCTI0ODQgV2VzdCBDbGF5IFN0LgorCQkJCVN0LiBDaGFybGVzIE1PIDYzMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0zMyAgIChoZXgpCQlCdWlsZGluZyBCLCBJbmMKKzAwMjEzMyAgICAgKGJhc2UgMTYpCQlCdWlsZGluZyBCLCBJbmMKKwkJCQkxMDAwIE5XIDY1dGggU3RyZWV0LCBTdWl0ZSAzMDAKKwkJCQlGdC4gTGF1ZGVyZGFsZSBGTCAzMzMwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMzQgICAoaGV4KQkJQnJhbmR5d2luZSBDb21tdW5pY2F0aW9ucworMDAyMTM0ICAgICAoYmFzZSAxNikJCUJyYW5keXdpbmUgQ29tbXVuaWNhdGlvbnMKKwkJCQkxMTUzIFdhcm5lciBBdmUKKwkJCQlUdXN0aW4gQ0EgOTI3ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTM1ICAgKGhleCkJCUFMQ0FURUwtTFVDRU5UCiswMDIxMzUgICAgIChiYXNlIDE2KQkJQUxDQVRFTC1MVUNFTlQKKwkJCQlSYW1pcmV6IGRlIFByYWRvIDUKKwkJCQlNYWRyaWQgIDI4MDQ1CisJCQkJU1BBSU4KKworMDAtMjEtMzYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjEzNiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVUyBIaWdod2F5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0zNyAgIChoZXgpCQlCYXkgQ29udHJvbHMsIExMQworMDAyMTM3ICAgICAoYmFzZSAxNikJCUJheSBDb250cm9scywgTExDCisJCQkJNjUyOCBXZWF0aGVyZmllbGQgQ3QKKwkJCQlNYXVtZWUgT0ggNDM1MzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTM4ICAgKGhleCkJCUNlcGhlaWQKKzAwMjEzOCAgICAgKGJhc2UgMTYpCQlDZXBoZWlkCisJCQkJOTA0IENhcmliYmVhbiBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMzkgICAoaGV4KQkJRXNjaGVybG9naWMgSW5jLgorMDAyMTM5ICAgICAoYmFzZSAxNikJCUVzY2hlcmxvZ2ljIEluYy4KKwkJCQkxNDgxIFJvc2ViYW5rIFJkLgorCQkJCVBpY2tlcmluZyBPbnRhcmlvIEwxViAxUDMKKwkJCQlDQU5BREEKKworMDAtMjEtM0EgICAoaGV4KQkJV2luY2hlc3RlciBTeXN0ZW1zIEluYy4KKzAwMjEzQSAgICAgKGJhc2UgMTYpCQlXaW5jaGVzdGVyIFN5c3RlbXMgSW5jLgorCQkJCTEwMSBCaWxsZXJpY2EgQXZlbnVlCisJCQkJQmxkZyA1IHN1aXRlIDEwMQorCQkJCUJpbGxlcmljYSwgTUEgMDE4NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTNCICAgKGhleCkJCUJlcmtzaGlyZSBQcm9kdWN0cywgSW5jCiswMDIxM0IgICAgIChiYXNlIDE2KQkJQmVya3NoaXJlIFByb2R1Y3RzLCBJbmMKKwkJCQlQTyBCb3ggMjgxOQorCQkJCUN1bW1pbmcgR0EgMzAwMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTNDICAgKGhleCkJCUFsaXBoQ29tCiswMDIxM0MgICAgIChiYXNlIDE2KQkJQWxpcGhDb20KKwkJCQkxNTAgRXhlY3V0aXZlIFBhcmsgQmx2ZAorCQkJCVN1aXRlIDQ1NTAKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0zRCAgIChoZXgpCQlDZXJtZXRlayBNaWNyb2VsZWN0cm9uaWNzLCBJbmMuCiswMDIxM0QgICAgIChiYXNlIDE2KQkJQ2VybWV0ZWsgTWljcm9lbGVjdHJvbmljcywgSW5jLgorCQkJCTM3NCBUdXJxdW9pc2UgU3RyZWV0CisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTNFICAgKGhleCkJCVRvbVRvbQorMDAyMTNFICAgICAoYmFzZSAxNikJCVRvbVRvbQorCQkJCU9vc3RlcmRva3NzdHJhYXQgMTE0CisJCQkJQW1zdGVyZGFtIE5vcnRoIEhvbGxhbmQgMTAxMSBESworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIxLTNGICAgKGhleCkJCUEtVGVhbSBUZWNobm9sb2d5IEx0ZC4KKzAwMjEzRiAgICAgKGJhc2UgMTYpCQlBLVRlYW0gVGVjaG5vbG9neSBMdGQuCisJCQkJUm0uIDE2MDgsIDE2L0YuLCBNZXRyb3BvbGUgU3F1YXJlLAorCQkJCTIgT24gWWl1IFN0LiwgU2hhdGluLAorCQkJCU5ldyBUZXJyaXRvcmllcywgIAorCQkJCUhPTkcgS09ORworCiswMC0yMS00MCAgIChoZXgpCQlFTiBUZWNobm9sb2dpZXMgSW5jLgorMDAyMTQwICAgICAoYmFzZSAxNikJCUVOIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJR2V1bWJvayBCbGRnLiA5RiwgQmFuZC15aS1kb25nIDQ1LTIsIFNvbmdwYS1ndQorCQkJCVNlb3VsICAxMzgtODI4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTQxICAgKGhleCkJCVJBRExJVkUKKzAwMjE0MSAgICAgKGJhc2UgMTYpCQlSQURMSVZFCisJCQkJNCBIYW5lY2hvc2hldCBTdC4KKwkJCQlUZWwgQXZpdiAgNjk3MTAKKwkJCQlJU1JBRUwKKworMDAtMjEtNDIgICAoaGV4KQkJQWR2YW5jZWQgQ29udHJvbCBTeXN0ZW1zIGRvbworMDAyMTQyICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIENvbnRyb2wgU3lzdGVtcyBkb28KKwkJCQlCdWxldmFyIFpvcmFuYSBEamluZGppY2EgOGEKKwkJCQlCZWxncmFkZSBTZXJiaWEgMTEwNzAKKworMDAtMjEtNDMgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjE0MyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTQ0ICAgKGhleCkJCVNTIFRlbGVjb21zCiswMDIxNDQgICAgIChiYXNlIDE2KQkJU1MgVGVsZWNvbXMKKwkJCQkyMyBCb3RoYSBBdmVudWUKKwkJCQlMeXR0ZWx0b24gTWFub3IKKwkJCQlDZW50dXJpb24gR2F1dGVuZyAwMTQwCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTIxLTQ1ICAgKGhleCkJCVNlbXB0aWFuIFRlY2hub2xvZ2llcyBMdGQuCiswMDIxNDUgICAgIChiYXNlIDE2KQkJU2VtcHRpYW4gVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQlOby4gODA5LCAgVG93ZXIgQiwgU2hpIEppIEtlIE1hbworCQkJCU5vLiA2NiBSZC4gWmhvbmdndWFuIEN1biBEb25nCisJCQkJQmVpamluZyAgMTAwMTkwCisJCQkJQ0hJTkEKKworMDAtMjEtNDYgICAoaGV4KQkJU0NJIFRlY2hub2xvZ3kKKzAwMjE0NiAgICAgKGJhc2UgMTYpCQlTQ0kgVGVjaG5vbG9neQorCQkJCVBPQiAxMDAwCisJCQkJSHVudHN2aWxsZSBBTCAzNTgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNDcgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDIxNDcgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMjEtNDggICAoaGV4KQkJS2FjbyBTb2xhciBLb3JlYQorMDAyMTQ4ICAgICAoYmFzZSAxNikJCUthY28gU29sYXIgS29yZWEKKwkJCQlDaHVuZy13b24ta3UgU2FuZy1kZWEtd29uLWRvbmcgMzMzLTEKKwkJCQlTb25nbmFtIEt5dW5nLWtpZG8gNDYyLTgwNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS00OSAgIChoZXgpCQlDaGluYSBEYWhlbmcgR3JvdXAgLEluYy4KKzAwMjE0OSAgICAgKGJhc2UgMTYpCQlDaGluYSBEYWhlbmcgR3JvdXAgLEluYy4KKwkJCQkxMkYgRGFoZW5nIFNjaWVuY2UgJiBUZWNobm9sb2d5IFRvd2VyICxOTy4zIFN1emhvdSBTdHIuCisJCQkJQmVpamluZyAgMTAwMDgwCisJCQkJQ0hJTkEKKworMDAtMjEtNEEgICAoaGV4KQkJUGl4ZWwgVmVsb2NpdHksIEluYworMDAyMTRBICAgICAoYmFzZSAxNikJCVBpeGVsIFZlbG9jaXR5LCBJbmMKKwkJCQkzOTE3IFJlc2VhcmNoIFBhcmsgRHIuCisJCQkJU3VpdGUgQjcKKwkJCQlBbm4gQXJib3IgTUkgNDgxMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTRCICAgKGhleCkJCVNoZW56aGVuIEhBTVAgU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAyMTRCICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEhBTVAgU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCU5vLjMwMi0zMDMsMyBGbG9vcixEaXN0cmljdCBBLFRDTCBUb3dlcixHYW94aW4gTmFuIFlpIFJvYWQsTmFuU2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0yMS00QyAgIChoZXgpCQlTQU1TVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDAyMTRDICAgICAoYmFzZSAxNikJCVNBTVNVTkcgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJNDE2LCBNRVRBTi0zRE9ORywKKwkJCQlZT1VOR1RPTkctR1UKKwkJCQlTVVdPTiBLWVVOR0tJLURPIDQ0Mi03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtNEQgICAoaGV4KQkJR3Vhbmd6aG91IFNreXRvbmUgVHJhbnNtaXNzaW9uIFRlY2hub2xvZ3kgQ29tLiBMdGQuCiswMDIxNEQgICAgIChiYXNlIDE2KQkJR3Vhbmd6aG91IFNreXRvbmUgVHJhbnNtaXNzaW9uIFRlY2hub2xvZ3kgQ29tLiBMdGQuCisJCQkJMy9GIFdlc3QsIEJsb2NrIDQsIEh1YW5nemhvdQorCQkJCUluZHVzdHJpYWwgUGFyaywgQ2hlYmVpIFJvYWQuCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2NjAKKwkJCQlDSElOQQorCiswMC0yMS00RSAgIChoZXgpCQlHUyBZdWFzYSBQb3dlciBTdXBwbHkgTHRkLgorMDAyMTRFICAgICAoYmFzZSAxNikJCUdTIFl1YXNhIFBvd2VyIFN1cHBseSBMdGQuCisJCQkJMSwgSW5vYmFuYmEtY2hvLCBOaXNoaW5vc2hvLCBLaXNzaG9pbiwgTWluYW1pLWt1LAorCQkJCUt5b3RvICA2MDEtODUyMAorCQkJCUpBUEFOCisKKzAwLTIxLTRGICAgKGhleCkJCUFMUFMgRWxlY3RyaWMgQ28uLCBMdGQKKzAwMjE0RiAgICAgKGJhc2UgMTYpCQlBTFBTIEVsZWN0cmljIENvLiwgTHRkCisJCQkJMS0yLTEsIE9raW5vdWNoaQorCQkJCVNvbWEgY2l0eSBGdWt1c2hpbWEgOTc2LTg1MDEKKwkJCQlKQVBBTgorCiswMC0yMS01MCAgIChoZXgpCQlFWUVWSUVXIEVMRUNUUk9OSUNTCiswMDIxNTAgICAgIChiYXNlIDE2KQkJRVlFVklFVyBFTEVDVFJPTklDUworCQkJCTMgRmxvb3IsIE5vLiA4NiwgS3VuZyBZZWggMzIgUm9hZAorCQkJCVRBSUNIVU5HICA0MDcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIxLTUxICAgKGhleCkJCU1pbGxpbmV0IENvLiwgTHRkLgorMDAyMTUxICAgICAoYmFzZSAxNikJCU1pbGxpbmV0IENvLiwgTHRkLgorCQkJCTJGLCBXZXN0IEJ1aWxkaW5nLCBJVCBWZW50dXJlIFRvd2VyLCA3OCwgR2FyYWtib24tRG9uZworCQkJCVNvbmdwYS1ndSBTZW91bCAxMzgtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTUyICAgKGhleCkJCUdlbmVyYWwgU2F0ZWxsaXRlIFJlc2VhcmNoICYgRGV2ZWxvcG1lbnQgTGltaXRlZAorMDAyMTUyICAgICAoYmFzZSAxNikJCUdlbmVyYWwgU2F0ZWxsaXRlIFJlc2VhcmNoICYgRGV2ZWxvcG1lbnQgTGltaXRlZAorCQkJCUxpdC4gIkUiLCBidWlsZGluZyAyLCA0IE5vdm9sYWRvemhza2F5YSBzdHIKKwkJCQlTYWludCBQZXRlcnNidXJnICAxOTcxMTAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjEtNTMgICAoaGV4KQkJU2VhTWljcm8gSW5jLgorMDAyMTUzICAgICAoYmFzZSAxNikJCVNlYU1pY3JvIEluYy4KKwkJCQkzMjUwIEpheSBTdHJlZXQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNTQgICAoaGV4KQkJRC1UQUNRIFNvbHV0aW9ucyBMdGQKKzAwMjE1NCAgICAgKGJhc2UgMTYpCQlELVRBQ1EgU29sdXRpb25zIEx0ZAorCQkJCUphbWVzIFdhdHQgQnVpbGRpbmcKKwkJCQlTRVRQCisJCQkJRWFzdCBLaWxicmlkZSBMYW5hcmtzaGlyZSBHNzUgMFFECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjEtNTUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMTU1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTU2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjE1NiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS01NyAgIChoZXgpCQlOYXRpb25hbCBEYXRhY2FzdCwgSW5jLgorMDAyMTU3ICAgICAoYmFzZSAxNikJCU5hdGlvbmFsIERhdGFjYXN0LCBJbmMuCisJCQkJMjEwMCBDcnlzdGFsIERyaXZlLCBTdWl0ZSA3NTAKKwkJCQlBcmxpbmd0b24gVkEgMjIyMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTU4ICAgKGhleCkJCVN0eWxlIEZseWluZyBUZWNobm9sb2d5IENvLgorMDAyMTU4ICAgICAoYmFzZSAxNikJCVN0eWxlIEZseWluZyBUZWNobm9sb2d5IENvLgorCQkJCTIyL0YsQ3liZXIgVG93ZXIgQixOby4yIFpob25nIEd1YW4gQ3VuIFNvdXRoIFN0cmVldCxIYWlkaWFuIERpc3RyaWN0LAorCQkJCUJlaWppbmcgIDEwMDA4NgorCQkJCUNISU5BCisKKzAwLTIxLTU5ICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzAwMjE1OSAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOLiBNYXRoaWxkYSBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTVBICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAyMTVBICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJTVMwNDA4MDIKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS01QiAgIChoZXgpCQlJbm90aXZlCiswMDIxNUIgICAgIChiYXNlIDE2KQkJSW5vdGl2ZQorCQkJCURlIFBpbmNrYXJ0IDU0CisJCQkJTnVlbmVuIE5vb3JkIEJyYWJhbnQgNTY3NCBDQworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIxLTVDICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAyMTVDICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMjEtNUQgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDIxNUQgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yMS01RSAgIChoZXgpCQlJQk0gQ29ycAorMDAyMTVFICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMzAzOSBFIENvcm53YWxsaXMgUm9hZAorCQkJCVAuTy4gQk9YIDEyMTk1CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0yMTk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS01RiAgIChoZXgpCQlJSFNFIEdtYkgKKzAwMjE1RiAgICAgKGJhc2UgMTYpCQlJSFNFIEdtYkgKKwkJCQlNYXliYWNoc3RyYXNzZSAxMQorCQkJCU9iZXJ0ZXVyaW5nZW4gQmFkZW4tV3VydHRlbWJlcmcgODgwOTQKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLTYwICAgKGhleCkJCUhpZGVhIFNvbHV0aW9ucyBDby4gTHRkLgorMDAyMTYwICAgICAoYmFzZSAxNikJCUhpZGVhIFNvbHV0aW9ucyBDby4gTHRkLgorCQkJCTRGLCBEbyZDYW4gaG91c2UgRGxkZy4sICM2NTYtMTY4MywgU2VvbmdzdSAxLWdhIDItZG9uZywgU2Vvbmdkb25nLWd1CisJCQkJU2VvdWwgIDY1Ni0xNjgzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTYxICAgKGhleCkJCVlvdXJuZXQgSW5jLgorMDAyMTYxICAgICAoYmFzZSAxNikJCVlvdXJuZXQgSW5jLgorCQkJCUtUIFImRCBDZW50ZXIKKwkJCQkxNyBVbXllb24tZG9uZywgU2VvY2hvLWd1CisJCQkJU2VvdWwgIDEzNy03OTIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtNjIgICAoaGV4KQkJTm9ydGVsCiswMDIxNjIgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJMTgzMCBNYXRoZXNvbiBCb3VsZXZhcmQKKwkJCQlTdWl0ZSAxCisJCQkJTWlzc2lzc2F1Z2EgT250YXJpbyBMNFcgMEIzCisJCQkJQ0FOQURBCisKKzAwLTIxLTYzICAgKGhleCkJCUFTS0VZIENPTVBVVEVSIENPUlAKKzAwMjE2MyAgICAgKGJhc2UgMTYpCQlBU0tFWSBDT01QVVRFUiBDT1JQCisJCQkJMTBGLE5PLjExOS5DSElFTktBTkcgUkQsQ0hVTkctSE8sCisJCQkJVEFJUEVJIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjEtNjQgICAoaGV4KQkJU3BlY2lhbCBEZXNpZ24gQnVyZWF1IGZvciBTZWlzbWljIEluc3RydW1lbnRhdGlvbgorMDAyMTY0ICAgICAoYmFzZSAxNikJCVNwZWNpYWwgRGVzaWduIEJ1cmVhdSBmb3IgU2Vpc21pYyBJbnN0cnVtZW50YXRpb24KKwkJCQkxMjksIEtyYWlueWF5YSBTdHIuCisJCQkJU2FyYXRvdiBTYXJhdG92IHJlZ2lvbiA0MTAwMTkKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjEtNjUgICAoaGV4KQkJUHJlc3N0ZWsgSW5jLgorMDAyMTY1ICAgICAoYmFzZSAxNikJCVByZXNzdGVrIEluYy4KKwkJCQk1NSBFeGVjdXRpdmUgRHJpdmUKKwkJCQlIdWRzb24gTmV3IEhhbXBzaGlyZSAwMzA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNjYgICAoaGV4KQkJTm92QXRlbCBJbmMuCiswMDIxNjYgICAgIChiYXNlIDE2KQkJTm92QXRlbCBJbmMuCisJCQkJMTEyMCAtIDY4IEF2ZSBORQorCQkJCUNhbGdhcnkgQWxiZXJ0YSBUMkUgOFM1CisJCQkJQ0FOQURBCisKKzAwLTIxLTY3ICAgKGhleCkJCUhXQSBKSU4gVCZJIENvcnAuCiswMDIxNjcgICAgIChiYXNlIDE2KQkJSFdBIEpJTiBUJkkgQ29ycC4KKwkJCQk1Ri4sIFNFSFdBIEJsZGcgMTY0LTI0LCBQb2ktZG9uZywgR2FuZ25hbS1ndSwgU2VvdWwsIEtvcmVhCisJCQkJR2FuZ25hbS1ndSBTZW91bCAxMzUtOTYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTY4ICAgKGhleCkJCWlWZWlhLCBMTEMKKzAwMjE2OCAgICAgKGJhc2UgMTYpCQlpVmVpYSwgTExDCisJCQkJNTEgRnJhbmtsaW4gU3RyZWV0CisJCQkJU3VpdGUgMzAxCisJCQkJQW5uYXBvbGlzIE1EIDIxNDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS02OSAgIChoZXgpCQlQcm9sb2dpeCwgTExDLgorMDAyMTY5ICAgICAoYmFzZSAxNikJCVByb2xvZ2l4LCBMTEMuCisJCQkJMTcyMTcgTkUgMTMzcmQgUGxhY2UKKwkJCQlSZWRtb25kIFdhc2hpbmd0b24gOTgwNTItMjE1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNkEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDIxNkEgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yMS02QiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjE2QiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTIxLTZDICAgKGhleCkJCU9EVkEKKzAwMjE2QyAgICAgKGJhc2UgMTYpCQlPRFZBCisJCQkJNDIyMCBWYXJzaXR5IERyaXZlCisJCQkJU3VpdGUgQQorCQkJCUFubiBBcmJvciBNSSA0ODEwOC01MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS02RCAgIChoZXgpCQlTb2x0ZWNoIENvLiwgTHRkLgorMDAyMTZEICAgICAoYmFzZSAxNikJCVNvbHRlY2ggQ28uLCBMdGQuCisJCQkJIzMwLTMsM0YKKwkJCQlXb25oeW9ybzItS2EKKwkJCQlZb25nc2FuIEt1IFNlb3VsIDE0MDgzNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS02RSAgIChoZXgpCQlGdW5jdGlvbiBBVEkgKEh1aXpob3UpIFRlbGVjb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMjE2RSAgICAgKGJhc2UgMTYpCQlGdW5jdGlvbiBBVEkgKEh1aXpob3UpIFRlbGVjb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQlOby4gOCwgSHVpdGFpIFJvYWQsIEh1aXRhaSBJbmR1c3RyaWFsIFpvbmUKKwkJCQlIdWl6aG91IENpdHkgR3Vhbmdkb25nIFByb3ZpbmNlIDUxNjAwNgorCQkJCUNISU5BCisKKzAwLTIxLTZGICAgKGhleCkJCVN5bUNvbSwgSW5jLgorMDAyMTZGICAgICAoYmFzZSAxNikJCVN5bUNvbSwgSW5jLgorCQkJCTI4ODAgTm9ydGggUGxhemEgRHJpdmUKKwkJCQlSYXBpZCBDaXR5IFNEIDU3NzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS03MCAgIChoZXgpCQlEZWxsIEluYworMDAyMTcwICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS03MSAgIChoZXgpCQlXZXN1bmcgVE5DIENvLiwgTHRkLgorMDAyMTcxICAgICAoYmFzZSAxNikJCVdlc3VuZyBUTkMgQ28uLCBMdGQuCisJCQkJMTAyLTE0MDksIEJ1Y2hlb24gQ2h1bnVpIFRlY2hub3BhcmsgMXN0LAorCQkJCTIwMC0xLCBDaHVudWktZG9uZywgV29ubWktR3UKKwkJCQlCdWNoZW9uLUNpdHksIEd5ZW9uZ2dnaS1EbyA0MjAtODU3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTcyICAgKGhleCkJCVNlb3VsdGVrIFZhbGxleQorMDAyMTcyICAgICAoYmFzZSAxNikJCVNlb3VsdGVrIFZhbGxleQorCQkJCUJhbmctaSBEb25nIDUxLTUsIFNvbmdwYQorCQkJCVNlb3VsICAxMzgtMDUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTczICAgKGhleCkJCUlvbiBUb3JyZW50IFN5c3RlbXMsIEluYy4KKzAwMjE3MyAgICAgKGJhc2UgMTYpCQlJb24gVG9ycmVudCBTeXN0ZW1zLCBJbmMuCisJCQkJMzcgU291bmR2aWV3IFJkCisJCQkJU3VpdGUgIDIKKwkJCQlHdWlsZm9yZCBDVCAwNjQzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNzQgICAoaGV4KQkJQXZhTEFOIFdpcmVsZXNzCiswMDIxNzQgICAgIChiYXNlIDE2KQkJQXZhTEFOIFdpcmVsZXNzCisJCQkJOTU4IFNhbiBMZWFuZHJvIEF2ZSwgU3VpdGUgOTAwCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNzUgICAoaGV4KQkJUGFjaWZpYyBTYXRlbGxpdGUgSW50ZXJuYXRpb25hbCBMdGQuCiswMDIxNzUgICAgIChiYXNlIDE2KQkJUGFjaWZpYyBTYXRlbGxpdGUgSW50ZXJuYXRpb25hbCBMdGQuCisJCQkJMjAvRiBUYWkgVHVuZyBCdWlsZGluZywKKwkJCQk4IEZsZW1pbmcgUm9hZCwKKwkJCQlXYW5jaGFpICAxMDAwMDAKKwkJCQlIT05HIEtPTkcKKworMDAtMjEtNzYgICAoaGV4KQkJWU1heCBUZWxlY29tIEx0ZC4KKzAwMjE3NiAgICAgKGJhc2UgMTYpCQlZTWF4IFRlbGVjb20gTHRkLgorCQkJCTExIE1vc2hlIExldmkgc3RyLgorCQkJCVVNSSBCdWlsZGluZworCQkJCVJpc2hvbiBMZSBaaW9uICA3NTY1OAorCQkJCUlTUkFFTAorCiswMC0yMS03NyAgIChoZXgpCQlXLiBMLiBHb3JlICYgQXNzb2NpYXRlcworMDAyMTc3ICAgICAoYmFzZSAxNikJCVcuIEwuIEdvcmUgJiBBc3NvY2lhdGVzCisJCQkJNDAyIFZpZXZlcyBXYXkKKwkJCQlFbGt0b24gTUQgMjE5MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTc4ICAgKGhleCkJCU1hdHVzY2hlayBNZXNzdGVjaG5payBHbWJICiswMDIxNzggICAgIChiYXNlIDE2KQkJTWF0dXNjaGVrIE1lc3N0ZWNobmlrIEdtYkgKKwkJCQlXZXJuZXIgSGVpc2VuYmVyZyBTdHJhc3NlIDE0CisJCQkJQWxzZG9yZiBOUlcgNTI0NzcKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLTc5ICAgKGhleCkJCUlPR0VBUiwgSW5jLgorMDAyMTc5ICAgICAoYmFzZSAxNikJCUlPR0VBUiwgSW5jLgorCQkJCTIzIEh1YmJsZQorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtN0EgICAoaGV4KQkJU2VqaW4gRWxlY3Ryb24sIEluYy4KKzAwMjE3QSAgICAgKGJhc2UgMTYpCQlTZWppbiBFbGVjdHJvbiwgSW5jLgorCQkJCVNKIFRlY2hub3ZpbGxlCisJCQkJNHRoIEZsb29yIFJvb20gNDEyLCA2MC0xOSBLYVNhbi1Eb25nLCBLZXVtQ2hvbi1LdQorCQkJCVNlb3VsICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTdCICAgKGhleCkJCUJhc3RlYyBBQgorMDAyMTdCICAgICAoYmFzZSAxNikJCUJhc3RlYyBBQgorCQkJCUhhc3R2YWdlbiA0QQorCQkJCU1hbG1vIE0gMjEyIDM1CisJCQkJU1dFREVOCisKKzAwLTIxLTdDICAgKGhleCkJCTJXaXJlCiswMDIxN0MgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS03RCAgIChoZXgpCQlQWVhJUyBTLlIuTC4KKzAwMjE3RCAgICAgKGJhc2UgMTYpCQlQWVhJUyBTLlIuTC4KKwkJCQlDL08gRElQLiBJTkZPUk1BVElDQSBFIFNJU1RFTUlTVElDQSAtIFVOSVZFUlNJVFkgT0YgUEFWSUEKKwkJCQlWSUEgRkVSUkFUQSAxCisJCQkJUEFWSUEgIDI3MTAwCisJCQkJSVRBTFkKKworMDAtMjEtN0UgICAoaGV4KQkJVGVsaXQgQ29tbXVuaWNhdGlvbiBzLnAuYQorMDAyMTdFICAgICAoYmFzZSAxNikJCVRlbGl0IENvbW11bmljYXRpb24gcy5wLmEKKwkJCQlWaWEgc3RhemlvbmUgZGkgcHJvc2VjY28gNUIKKwkJCQlTR09OSUNPIFRyaWVzdGUgMzQwMTAKKwkJCQlJVEFMWQorCiswMC0yMS03RiAgIChoZXgpCQlJbnRyYWNvIFRlY2hub2xvZ3kgUHRlIEx0ZAorMDAyMTdGICAgICAoYmFzZSAxNikJCUludHJhY28gVGVjaG5vbG9neSBQdGUgTHRkCisJCQkJNzUwZSBDaGFpIENoZWUgUm9hZCAjMDUtMDEKKwkJCQlTaW5nYXBvcmUgIDQ2OTAwMDUKKwkJCQlTSU5HQVBPUkUKKworMDAtMjEtODAgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjE4MCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTgxICAgKGhleCkJCVNpMiBNaWNyb3N5c3RlbXMgTGltaXRlZAorMDAyMTgxICAgICAoYmFzZSAxNikJCVNpMiBNaWNyb3N5c3RlbXMgTGltaXRlZAorCQkJCU5vIDg0LCBTeSBObyAxNTAsIEVQSVAsIFdoaXRlZmllbGQgSW5kdXN0cmlhbCBBcmVhCisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAwNjYKKwkJCQlJTkRJQQorCiswMC0yMS04MiAgIChoZXgpCQlTYW5kTGlua3MgU3lzdGVtcywgTHRkLgorMDAyMTgyICAgICAoYmFzZSAxNikJCVNhbmRMaW5rcyBTeXN0ZW1zLCBMdGQuCisJCQkJUC5PLkJveCA0NjI5CisJCQkJUGV0YWgtVGlxd2EgSXNyYWVsIDQ5Mjc3CisJCQkJSVNSQUVMCisKKzAwLTIxLTgzICAgKGhleCkJCVZBVEVDSCBIWURSTworMDAyMTgzICAgICAoYmFzZSAxNikJCVZBVEVDSCBIWURSTworCQkJCVdpZW5lcmJlcmdzdHJhc3NlIDQxCisJCQkJT2JqZWN0IEQKKwkJCQlWaWVubmEgIEEtMTEyMAorCQkJCUFVU1RSSUEKKworMDAtMjEtODQgICAoaGV4KQkJUE9XRVJTT0ZUIFNSTAorMDAyMTg0ICAgICAoYmFzZSAxNikJCVBPV0VSU09GVCBTUkwKKwkJCQlWSUEgRU5SSUNPIENPTlRJLCA1CisJCQkJU0NBTkRJQ0NJIEZJIDUwMDE4CisJCQkJSVRBTFkKKworMDAtMjEtODUgICAoaGV4KQkJTUlDUk8tU1RBUiBJTlQnTCBDTy4sTFRELgorMDAyMTg1ICAgICAoYmFzZSAxNikJCU1JQ1JPLVNUQVIgSU5UJ0wgQ08uLExURC4KKwkJCQlOby42OSxMaS1EZSBTdCxKdW5nLUhvIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjEtODYgICAoaGV4KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQKKzAwMjE4NiAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZAorCQkJCTE0MSwgTGFuZSAzNTEsIFNlYy4xLCBUYWlwaW5nIFJvYWQsCisJCQkJVFNBT1RVRU4gCisJCQkJTkFOVE9VICA1NDI2MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjEtODcgICAoaGV4KQkJSW1hY3MgR21iSAorMDAyMTg3ICAgICAoYmFzZSAxNikJCUltYWNzIEdtYkgKKwkJCQlNaXR0ZWxmZWxkc3RyYXNzZSAyNQorCQkJCUtvcm53ZXN0aGVpbSBHZXJtYW55IEQtNzA4MDYKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLTg4ICAgKGhleCkJCUVNQyBDb3Jwb3JhdGlvbgorMDAyMTg4ICAgICAoYmFzZSAxNikJCUVNQyBDb3Jwb3JhdGlvbgorCQkJCTI0MjEgTWlzc2lvbiBDb2xsZWdlIEJsdmQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtODkgICAoaGV4KQkJQXBwVGVjaCwgSW5jLgorMDAyMTg5ICAgICAoYmFzZSAxNikJCUFwcFRlY2gsIEluYy4KKwkJCQkzNjMgR3JleWhvdW5kIFBhc3MKKwkJCQlDYXJtZWwgSW5kaWFuYSA0NjAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtOEEgICAoaGV4KQkJRWxlY3Ryb25pYyBEZXNpZ24gYW5kIE1hbnVmYWN0dXJpbmcgQ29tcGFueQorMDAyMThBICAgICAoYmFzZSAxNikJCUVsZWN0cm9uaWMgRGVzaWduIGFuZCBNYW51ZmFjdHVyaW5nIENvbXBhbnkKKwkJCQkzMSBNaWxscmFjZSBEcgorCQkJCUx5bmNoYnVyZyBWQSAyNDUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtOEIgICAoaGV4KQkJV2VzY29uIFRlY2hub2xvZ3ksIEluYy4KKzAwMjE4QiAgICAgKGJhc2UgMTYpCQlXZXNjb24gVGVjaG5vbG9neSwgSW5jLgorCQkJCTQ2NTUtMTcwIE9sZCBJcm9uc2lkZXMgRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDYWxpZm9ybmlhIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS04QyAgIChoZXgpCQlUb3BDb250cm9sIEdNQkgKKzAwMjE4QyAgICAgKGJhc2UgMTYpCQlUb3BDb250cm9sIEdNQkgKKwkJCQlFbnplbmJlcmd3ZWcgMjQvQQorCQkJCVRlcmxhbiAoQlopICAzOTAxOAorCQkJCUlUQUxZCisKKzAwLTIxLThEICAgKGhleCkJCUFQIFJvdXRlciBJbmQuIEVsZXRyb25pY2EgTFREQQorMDAyMThEICAgICAoYmFzZSAxNikJCUFQIFJvdXRlciBJbmQuIEVsZXRyb25pY2EgTFREQQorCQkJCUF2LiBMb21hbnRvIEp1bmlvciwgMTAwMAorCQkJCUJhaXJybyBQb250YWwKKwkJCQlJbGhldXMgQmFoaWEgNDU2NTQtMDAwCisJCQkJQlJBWklMCisKKzAwLTIxLThFICAgKGhleCkJCU1FS0lDUyBDTy4sIExURC4KKzAwMjE4RSAgICAgKGJhc2UgMTYpCQlNRUtJQ1MgQ08uLCBMVEQuCisJCQkJSW5kdXN0cmlhbCBab25lIDg2MS0xMCwgVGFlZ3llLURvbmcKKwkJCQlDaHVuY2hvbiBLYW5nd29uIDIwMC05NDQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtOEYgICAoaGV4KQkJQXZhbnRnYXJkZSBBY291c3RpYyBMYXV0c3ByZWNoZXJzeXN0ZW1lIEdtYkgKKzAwMjE4RiAgICAgKGJhc2UgMTYpCQlBdmFudGdhcmRlIEFjb3VzdGljIExhdXRzcHJlY2hlcnN5c3RlbWUgR21iSAorCQkJCU5pYmVsdW5nZW5zdHIuIDM0OQorCQkJCUxhdXRlcnRhbCAtIFJlaWNoZW5iYWNoIEhlc3NlbiBELTY0Njg2CisJCQkJR0VSTUFOWQorCiswMC0yMS05MCAgIChoZXgpCQlHb2xpYXRoIFNvbHV0aW9ucworMDAyMTkwICAgICAoYmFzZSAxNikJCUdvbGlhdGggU29sdXRpb25zCisJCQkJMzA4MiBTdGVybGluZyBDaXJjbGUKKwkJCQlCb3VsZGVyIENvbG9yYWRvIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS05MSAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzAwMjE5MSAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOTy4yODksIFNpbmh1IDNyZCBSRC4KKwkJCQlOZWlodSBEaXN0cmljdCBUYWlwZWkgQ2l0eSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIxLTkyICAgKGhleCkJCUJhb2RpbmcgR2FsYXh5IEVsZWN0cm9uaWMgVGVjaG5vbG9neSAgQ28uLEx0ZAorMDAyMTkyICAgICAoYmFzZSAxNikJCUJhb2RpbmcgR2FsYXh5IEVsZWN0cm9uaWMgVGVjaG5vbG9neSAgQ28uLEx0ZAorCQkJCU5PLjkxIEZlbmdmYW4gUmQuLEdhb0thaSBEaXN0cmljdCxCYW9kaW5nIENpdHksSGViZWkgUHJvdi5DaGluYSAwNzEwNTEKKwkJCQlCYW9kaW5nIENpdHkgSGViZWkgUHJvdi4gMDcxMDUxCisJCQkJQ0hJTkEKKworMDAtMjEtOTMgICAoaGV4KQkJVmlkZW9mb24gTVYKKzAwMjE5MyAgICAgKGJhc2UgMTYpCQlWaWRlb2ZvbiBNVgorCQkJCTYgQmxhY2tvYWsgTWV3cworCQkJCU5ld3Rvd24gUEEgMTg5NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTk0ICAgKGhleCkJCVBpbmcgQ29tbXVuaWNhdGlvbgorMDAyMTk0ICAgICAoYmFzZSAxNikJCVBpbmcgQ29tbXVuaWNhdGlvbgorCQkJCVNhbmRha2VydmVpZW4gMjRDCisJCQkJT3NsbyAgMDQ3MworCQkJCU5PUldBWQorCiswMC0yMS05NSAgIChoZXgpCQlHV0QgTWVkaWEgTGltaXRlZAorMDAyMTk1ICAgICAoYmFzZSAxNikJCUdXRCBNZWRpYSBMaW1pdGVkCisJCQkJMTAgTGVlZHMgUm9hZAorCQkJCVNoZWZmaWVsZCBTb3V0aCBZb3Jrc2hpcmUgUzkgM1RZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjEtOTYgICAoaGV4KQkJVGVsc2V5ICBTLnAuQS4KKzAwMjE5NiAgICAgKGJhc2UgMTYpCQlUZWxzZXkgIFMucC5BLgorCQkJCVZpYWxlIGRlbGwnSW5kdXN0cmlhLCAxCisJCQkJUXVpbnRvIERpVHJldmlzbyAzMTA1NQorCQkJCUlUQUxZCisKKzAwLTIxLTk3ICAgKGhleCkJCUVMSVRFR1JPVVAgQ09NUFVURVIgU1lTVEVNCiswMDIxOTcgICAgIChiYXNlIDE2KQkJRUxJVEVHUk9VUCBDT01QVVRFUiBTWVNURU0KKwkJCQlOTy4yMzksIFNlYy4gMiwgVGkgRGluZyBCbHZkLiwKKwkJCQlUYWlwZWkgIDExNDkzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMS05OCAgIChoZXgpCQlUaGFpIFJhZGlvIENvLCBMVEQKKzAwMjE5OCAgICAgKGJhc2UgMTYpCQlUaGFpIFJhZGlvIENvLCBMVEQKKwkJCQlIaS1UZWNoIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJNzg3IE0wMCAxIEJhYW5sYW5lIFN1YiBEaXN0cmljdCBCYW5nIFBhLUluIERpc3RyaWN0CisJCQkJQXl1dHRoYXlhICAxMzE2MAorCQkJCVRIQUlMQU5ECisKKzAwLTIxLTk5ICAgKGhleCkJCVZhY29uIFBsYworMDAyMTk5ICAgICAoYmFzZSAxNikJCVZhY29uIFBsYworCQkJCVAuTy5Cb3ggMjUKKwkJCQlWYWFzYSAgNjUzODAKKwkJCQlGSU5MQU5ECisKKzAwLTIxLTlBICAgKGhleCkJCUNhbWJyaWRnZSBWaXN1YWwgTmV0d29ya3MgTHRkCiswMDIxOUEgICAgIChiYXNlIDE2KQkJQ2FtYnJpZGdlIFZpc3VhbCBOZXR3b3JrcyBMdGQKKwkJCQk2MSBTZWx3eW4gUm9hZAorCQkJCUNhbWJyaWRnZSBDYW1icmlkZ2VzaGlyZSBDQjMgOUVBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjEtOUIgICAoaGV4KQkJRGVsbCBJbmMKKzAwMjE5QiAgICAgKGJhc2UgMTYpCQlEZWxsIEluYworCQkJCU9uZSBEZWxsIFdheSwgTVMgUlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtOUMgICAoaGV4KQkJSG9uZXl3bGQgVGVjaG5vbG9neSBDb3JwLgorMDAyMTlDICAgICAoYmFzZSAxNikJCUhvbmV5d2xkIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQlOby40MCxIc3VlaC1GdSBSZC4KKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIxLTlEICAgKGhleCkJCUFkZXN5cyBCVgorMDAyMTlEICAgICAoYmFzZSAxNikJCUFkZXN5cyBCVgorCQkJCU1vbGVud2VlciA0CisJCQkJV2F0ZXJpbmdlbiBadWlkIEhvbGxhbmQgMjI5MSBOUgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIxLTlFICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCiswMDIxOUUgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTa2FuZSAyMjE4OAorCQkJCVNXRURFTgorCiswMC0yMS05RiAgIChoZXgpCQlTQVRFTCBPWQorMDAyMTlGICAgICAoYmFzZSAxNikJCVNBVEVMIE9ZCisJCQkJTWVyaW5paXR5bmthdHUgMTcKKwkJCQlTQUxPIExhbnNpLVN1b21lbiBMYWFuaSAyNDEwMAorCQkJCUZJTkxBTkQKKworMDAtMjEtQTAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMUEwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUExICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjFBMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1BMiAgIChoZXgpCQlFS0UtRWxlY3Ryb25pY3MgTHRkLgorMDAyMUEyICAgICAoYmFzZSAxNikJCUVLRS1FbGVjdHJvbmljcyBMdGQuCisJCQkJUGlpc3BhbnBvcnR0aSA3CisJCQkJRVNQT08gIDAyMjQwCisJCQkJRklOTEFORAorCiswMC0yMS1BMyAgIChoZXgpCQlNaWNyb21pbnQKKzAwMjFBMyAgICAgKGJhc2UgMTYpCQlNaWNyb21pbnQKKwkJCQkxMTEgQ29tbWVyY2UgU3QKKwkJCQlMYWtlIE1hcnkgRkwgMzI3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUE0ICAgKGhleCkJCURiaWkgTmV0d29ya3MKKzAwMjFBNCAgICAgKGJhc2UgMTYpCQlEYmlpIE5ldHdvcmtzCisJCQkJMjIxNyBWaWEgQmxhbmNhCisJCQkJT2NlYW5zaWRlIENBIDkyMDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1BNSAgIChoZXgpCQlFUkxQaGFzZSBQb3dlciBUZWNobm9sb2dpZXMgTHRkLgorMDAyMUE1ICAgICAoYmFzZSAxNikJCUVSTFBoYXNlIFBvd2VyIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJNzQgU2N1cmZpZWxkIEJsdmQuCisJCQkJV2lubmlwZWcgTWFuaXRvYmEgUjNZIDFHNAorCQkJCUNBTkFEQQorCiswMC0yMS1BNiAgIChoZXgpCQlWaWRlb3RlYyBTcGEKKzAwMjFBNiAgICAgKGJhc2UgMTYpCQlWaWRlb3RlYyBTcGEKKwkJCQlWaWEgRnJpdWxpLDYKKwkJCQlTY2hpbyBWaWNlbnphIDM2MDE1CisJCQkJSVRBTFkKKworMDAtMjEtQTcgICAoaGV4KQkJSGFudGxlIFN5c3RlbSBDby4sIEx0ZC4KKzAwMjFBNyAgICAgKGJhc2UgMTYpCQlIYW50bGUgU3lzdGVtIENvLiwgTHRkLgorCQkJCTQ4MS0xMCBCeXVja3NhbiBEaWdpdGFsIFZhbGx5IElJLCBSTSAxNTExCisJCQkJR2FzYW4tRG9uZywgR3VtY2hvbi1HdQorCQkJCVNlb3VsIENpdHkgU2VvdWwgMTUzLTc4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS1BOCAgIChoZXgpCQlUZWxlcGhvbmljcyBDb3Jwb3JhdGlvbgorMDAyMUE4ICAgICAoYmFzZSAxNikJCVRlbGVwaG9uaWNzIENvcnBvcmF0aW9uCisJCQkJODE1IEJyb2FkIEhvbGxvdyBSb2FkCisJCQkJRmFybWluZ2RhbGUgTmV3IFlvcmsgMTE3OTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUE5ICAgKGhleCkJCU1vYmlsaW5rIFRlbGVjb20gQ28uLEx0ZAorMDAyMUE5ICAgICAoYmFzZSAxNikJCU1vYmlsaW5rIFRlbGVjb20gQ28uLEx0ZAorCQkJCTI5Mi0zIFNpbmRhbmctcmksIFNhbmRvbmctbXl1bgorCQkJCUd1bWkgR3llb25nYnVrIDczMC04NTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtQUEgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjFBQSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjEtQUIgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjFBQiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MCBWCisJCQkJREVOTUFSSworCiswMC0yMS1BQyAgIChoZXgpCQlJbmZyYXJlZCBJbnRlZ3JhdGVkIFN5c3RlbXMgTHRkCiswMDIxQUMgICAgIChiYXNlIDE2KQkJSW5mcmFyZWQgSW50ZWdyYXRlZCBTeXN0ZW1zIEx0ZAorCQkJCVBhcmsgQ2lyY2xlLCBUaXRoZSBCYXJuIFdheQorCQkJCVN3YW4gVmFsbGV5CisJCQkJTm9ydGhhbXB0b24gTm9ydGhhbnRzIE5ONCA5QkcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMS1BRCAgIChoZXgpCQlOb3JkaWMgSUQgT3kKKzAwMjFBRCAgICAgKGJhc2UgMTYpCQlOb3JkaWMgSUQgT3kKKwkJCQlNeWxseW9qYW5rYXR1IDJBCisJCQkJU0FMTyAgRklOLTI0MTAwCisJCQkJRklOTEFORAorCiswMC0yMS1BRSAgIChoZXgpCQlBTENBVEVMLUxVQ0VOVCBGUkFOQ0UgLSBXVEQKKzAwMjFBRSAgICAgKGJhc2UgMTYpCQlBTENBVEVMLUxVQ0VOVCBGUkFOQ0UgLSBXVEQKKwkJCQk3LTksIEF2ZW51ZSBNb3JhbmUgU2F1bG5pZXIKKwkJCQlCUCA1NworCQkJCVZFTElaWSAgNzgxNDEKKwkJCQlGUkFOQ0UKKworMDAtMjEtQUYgICAoaGV4KQkJUmFkaW8gRnJlcXVlbmN5IFN5c3RlbXMKKzAwMjFBRiAgICAgKGJhc2UgMTYpCQlSYWRpbyBGcmVxdWVuY3kgU3lzdGVtcworCQkJCUthYmVsa2FtcCAyMAorCQkJCUhhbm5vdmVyICAzMDE3OQorCQkJCUdFUk1BTlkKKworMDAtMjEtQjAgICAoaGV4KQkJVHljbyBUZWxlY29tbXVuaWNhdGlvbnMKKzAwMjFCMCAgICAgKGJhc2UgMTYpCQlUeWNvIFRlbGVjb21tdW5pY2F0aW9ucworCQkJCTEwMTEgUGF3dHVja2V0IEJsdmQKKwkJCQlMb3dlbGwgTWFzc2FjaHVzZXR0cyAwMTg1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtQjEgICAoaGV4KQkJRElHSVRBTCBTT0xVVElPTlMgTFRECiswMDIxQjEgICAgIChiYXNlIDE2KQkJRElHSVRBTCBTT0xVVElPTlMgTFRECisJCQkJVHNhcmlncmFkc2tvIFNob3NlIDdrbSBCTFZECisJCQkJSGkgVGVjaCBQYXJrIEl6b3QsCisJCQkJU29maWEgU29maWEgMTc4NAorCQkJCUJVTEdBUklBCisKKzAwLTIxLUIyICAgKGhleCkJCUZpYmVyYmxhemUgQS9TCiswMDIxQjIgICAgIChiYXNlIDE2KQkJRmliZXJibGF6ZSBBL1MKKwkJCQlLaWxkZXZhbmdzdmVqIDkKKwkJCQlHb2VkZXJ1cAorCQkJCVJvc2tpbGRlICA0MDAwCisJCQkJREVOTUFSSworCiswMC0yMS1CMyAgIChoZXgpCQlSb3NzIENvbnRyb2xzCiswMDIxQjMgICAgIChiYXNlIDE2KQkJUm9zcyBDb250cm9scworCQkJCU9uZSBSb3NzIFdheQorCQkJCUxhdm9uaWEgR0EgMzA1NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUI0ICAgKGhleCkJCUFQUk8gTUVESUEgQ08uLCBMVEQKKzAwMjFCNCAgICAgKGJhc2UgMTYpCQlBUFJPIE1FRElBIENPLiwgTFRECisJCQkJIzEzLTUsRG9kYW5nLURvbmcsV29ubWktR3UsCisJCQkJQnVjaGVvbi1DaXR5IEt5dW5nZ2ktRG8gNDIwLTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS1CNSAgIChoZXgpCQlWeXJvIEdhbWVzIExpbWl0ZWQKKzAwMjFCNSAgICAgKGJhc2UgMTYpCQlWeXJvIEdhbWVzIExpbWl0ZWQKKwkJCQkxNCBTdC4gU3RlcGhlbidzIEdyZWVuCisJCQkJRHVibGluICAyCisJCQkJSVJFTEFORAorCiswMC0yMS1CNiAgIChoZXgpCQlUcmlhY3RhIFBvd2VyIFRlY2hub2xvZ2llcyBJbmMuCiswMDIxQjYgICAgIChiYXNlIDE2KQkJVHJpYWN0YSBQb3dlciBUZWNobm9sb2dpZXMgSW5jLgorCQkJCUJveCA1ODIsIDcgTWlsbCBTdHJlZXQKKwkJCQlBbG1vbnRlIE9udGFyaW8gSzBBIDFBMAorCQkJCUNBTkFEQQorCiswMC0yMS1CNyAgIChoZXgpCQlMZXhtYXJrIEludGVybmF0aW9uYWwgSW5jLgorMDAyMUI3ICAgICAoYmFzZSAxNikJCUxleG1hcmsgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJNzQwIFdlc3QgTmV3IENpcmNsZSBSb2FkCisJCQkJTGV4aW5ndG9uIEtZIDQwNTUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1COCAgIChoZXgpCQlJbnBoaSBDb3Jwb3JhdGlvbgorMDAyMUI4ICAgICAoYmFzZSAxNikJCUlucGhpIENvcnBvcmF0aW9uCisJCQkJMjM5MyBUb3duc0dhdGUgUmQuLCBTdWl0ZSAxMDEKKwkJCQlXZXN0bGFrZSBWaWxsYWdlIENBIDkxMzYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1COSAgIChoZXgpCQlVbml2ZXJzYWwgRGV2aWNlcyBJbmMuCiswMDIxQjkgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIERldmljZXMgSW5jLgorCQkJCTUzNTMgWWFybW91dGggQXZlLiAjMjA5CisJCQkJRW5jaW5vIENBIDkxMzE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1CQSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAyMUJBICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1CQiAgIChoZXgpCQlSaWtlbiBLZWlraSBDby4sIEx0ZC4KKzAwMjFCQiAgICAgKGJhc2UgMTYpCQlSaWtlbiBLZWlraSBDby4sIEx0ZC4KKwkJCQkgMi03LTYgQXp1c2F3YQorCQkJCUl0YWJhc2hpLUt1IFRva3lvIDE3NC04NzQ0CisJCQkJSkFQQU4KKworMDAtMjEtQkMgICAoaGV4KQkJWkFMQSBDT01QVVRFUgorMDAyMUJDICAgICAoYmFzZSAxNikJCVpBTEEgQ09NUFVURVIKKwkJCQlFTCBCT1VOSQorCQkJCUFOTkFCQSAgMjMwMDAKKwkJCQlBTEdFUklBCisKKzAwLTIxLUJEICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyMUJEICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTIxLUJFICAgKGhleCkJCUNpc2NvLCBTZXJ2aWNlIFByb3ZpZGVyIFZpZGVvIFRlY2hub2xvZ3kgR3JvdXAKKzAwMjFCRSAgICAgKGJhc2UgMTYpCQlDaXNjbywgU2VydmljZSBQcm92aWRlciBWaWRlbyBUZWNobm9sb2d5IEdyb3VwCisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCU1haWwgU3RvcCAyLlQuNjAzCisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtQkYgICAoaGV4KQkJSGl0YWNoaSBIaWdoLVRlY2ggQ29udHJvbCBTeXN0ZW1zIENvcnBvcmF0aW9uCiswMDIxQkYgICAgIChiYXNlIDE2KQkJSGl0YWNoaSBIaWdoLVRlY2ggQ29udHJvbCBTeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJNTAwLE1peXUtY2hvCisJCQkJTWl0by1zaGkgSWJhcmFraS1rZW4gMzE5LTAzMTYKKwkJCQlKQVBBTgorCiswMC0yMS1DMCAgIChoZXgpCQlNb2JpbGUgQXBwbGlhbmNlLCBJbmMuCiswMDIxQzAgICAgIChiYXNlIDE2KQkJTW9iaWxlIEFwcGxpYW5jZSwgSW5jLgorCQkJCSM4MTkgS3JhbnogVGVjaG5vLAorCQkJCVNhbmdkYWV3b24tMSBEb25nLCBKdW5nd29uLUd1CisJCQkJU2VvbmcgbmFtIEd5ZW9uZ2dpLURvIDQ2Mi03MjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtQzEgICAoaGV4KQkJQUJCIE95IC8gRGlzdHJpYnV0aW9uIEF1dG9tYXRpb24KKzAwMjFDMSAgICAgKGJhc2UgMTYpCQlBQkIgT3kgLyBEaXN0cmlidXRpb24gQXV0b21hdGlvbgorCQkJCVBPIEJveCA2OTkKKwkJCQlWYWFzYSAgRkktNjUxMDEKKwkJCQlGSU5MQU5ECisKKzAwLTIxLUMyICAgKGhleCkJCUdMIENvbW11bmljYXRpb25zIEluYworMDAyMUMyICAgICAoYmFzZSAxNikJCUdMIENvbW11bmljYXRpb25zIEluYworCQkJCTgxOCBXZXN0IERpYW1vbmQgQXZlCisJCQkJVGhpcmQgRmxvb3IKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUMzICAgKGhleCkJCUNPUk5FTEwgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMjFDMyAgICAgKGJhc2UgMTYpCQlDT1JORUxMIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNzkxNSBOLiA4MXN0IFN0cmVldAorCQkJCU1pbHdhdWtlZSBXaXNjb25zaW4gNTMyMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUM0ICAgKGhleCkJCUNvbnNpbGl1bSBBQgorMDAyMUM0ICAgICAoYmFzZSAxNikJCUNvbnNpbGl1bSBBQgorCQkJCVZhc3RyYSBGaW5uYm9kYXZhZ2VuIDItNAorCQkJCU5hY2thIFN0b2NraG9sbSAxMzEzMQorCQkJCVNXRURFTgorCiswMC0yMS1DNSAgIChoZXgpCQkzRFNQIENvcnAKKzAwMjFDNSAgICAgKGJhc2UgMTYpCQkzRFNQIENvcnAKKwkJCQkxNjI3MSBMYWd1bmEgQ2FueW9uIFJvYWQKKwkJCQlTdWl0ZSAyMDAKKwkJCQlJcnZpbmUsIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1DNiAgIChoZXgpCQlDU0ogR2xvYmFsLCBJbmMuCiswMDIxQzYgICAgIChiYXNlIDE2KQkJQ1NKIEdsb2JhbCwgSW5jLgorCQkJCTl0aCBGbC4gU2Ftd2hhbiBCbGRnLiBBbm5leCwgMTctMjYgWWVvdWlkby1kb25nLAorCQkJCVlvdW5nZGV1bmdwby1HdQorCQkJCVNlb3VsICAxNTAtODc0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLUM3ICAgKGhleCkJCVJ1c3NvdW5kCiswMDIxQzcgICAgIChiYXNlIDE2KQkJUnVzc291bmQKKwkJCQk1IEZvcmJlcyBSb2FkCisJCQkJTmV3bWFya2V0IE5IIDAzODU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1DOCAgIChoZXgpCQlMT0hVSVMgTmV0d29ya3MKKzAwMjFDOCAgICAgKGJhc2UgMTYpCQlMT0hVSVMgTmV0d29ya3MKKwkJCQkyNjgxIFRWIE1vbnN0ZXIKKwkJCQlWb3RsYWFuIDQwOCBWb3RsYWFuIDMxCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjEtQzkgICAoaGV4KQkJV2F2ZWNvbSBBc2lhIFBhY2lmaWMgTGltaXRlZAorMDAyMUM5ICAgICAoYmFzZSAxNikJCVdhdmVjb20gQXNpYSBQYWNpZmljIExpbWl0ZWQKKwkJCQkyMDEgQmlvLUluZm9ybWF0aWNzIENlbnRyZSwgIE5vLjIgU2NpZW5jZSBQYXJrIFdlc3QgQXZlCisJCQkJSG9uZyBLb25nIFNjaWVuY2UgUGFyaywgU2hhdGluLCBOVAorCQkJCUhPTkcgS09ORworCiswMC0yMS1DQSAgIChoZXgpCQlBUlQgU3lzdGVtIENvLiwgTHRkLgorMDAyMUNBICAgICAoYmFzZSAxNikJCUFSVCBTeXN0ZW0gQ28uLCBMdGQuCisJCQkJTW9iaWxlIFRlY2hubyBCbGRnIFJvb20gOTEwCisJCQkJNTczLTEzLCBCb2toeWVvbi1kb25nLCBCdWstZ3UKKwkJCQlEYWUtR3UgIDcwMi0wMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtQ0IgICAoaGV4KQkJU01TIFRFQ05PTE9HSUEgRUxFVFJPTklDQSBMVERBCiswMDIxQ0IgICAgIChiYXNlIDE2KQkJU01TIFRFQ05PTE9HSUEgRUxFVFJPTklDQSBMVERBCisJCQkJQXYuIFBpcmFtaWRlLCA2NjEKKwkJCQlESUFERU1BIFNBTyBQQVVMTyAwOTk3MDMzMAorCQkJCUJSQVpJTAorCiswMC0yMS1DQyAgIChoZXgpCQlGbGV4dHJvbmljcyBJbnRlcm5hdGlvbmFsCiswMDIxQ0MgICAgIChiYXNlIDE2KQkJRmxleHRyb25pY3MgSW50ZXJuYXRpb25hbAorCQkJCTIyNDEgTHVuZHkgQXZlLgorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1DRCAgIChoZXgpCQlMaXZlVFYKKzAwMjFDRCAgICAgKGJhc2UgMTYpCQlMaXZlVFYKKwkJCQkxMzMzIEdhdGV3YXkgRHJpdmUsIFN1aXRlIDEwMDcKKwkJCQlNZWxib3VybmUgRmxvcmlkYSAzMjkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtQ0UgICAoaGV4KQkJTlRDLU1ldHJvdGVrCiswMDIxQ0UgICAgIChiYXNlIDE2KQkJTlRDLU1ldHJvdGVrCisJCQkJOSwgTmV2em9yb3ZveSBzdHJlZXQKKwkJCQlTYWludC1QZXRlcnNidXJnICAxOTIxNDgKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjEtQ0YgICAoaGV4KQkJVGhlIENyeXB0byBHcm91cAorMDAyMUNGICAgICAoYmFzZSAxNikJCVRoZSBDcnlwdG8gR3JvdXAKKwkJCQladWdlcnN0cmFzc2UgNDIKKwkJCQlTdGVpbmhhdXNlbiBadWcgNjMxMgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTIxLUQwICAgKGhleCkJCUdsb2JhbCBEaXNwbGF5IFNvbHV0aW9ucyBTcGEKKzAwMjFEMCAgICAgKGJhc2UgMTYpCQlHbG9iYWwgRGlzcGxheSBTb2x1dGlvbnMgU3BhCisJCQkJVmlhIFRlenplLCAyMC9BCisJCQkJVkFUIElUMDI5NDAxODAyNDkKKwkJCQlDb3JuZWRvIFZpY2VudGlubyBWaWNlbnphIDM2MDczCisJCQkJSVRBTFkKKworMDAtMjEtRDEgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswMDIxRDEgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLUQyICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAyMUQyICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS1EMyAgIChoZXgpCQlCT0NPTSBTRUNVUklUWShBU0lBIFBBQ0lGSUMpIExJTUlURUQKKzAwMjFEMyAgICAgKGJhc2UgMTYpCQlCT0NPTSBTRUNVUklUWShBU0lBIFBBQ0lGSUMpIExJTUlURUQKKwkJCQlGbHIuMyxOTy4yOSwjNjkgR3VpcWluZyBSRAorCQkJCUNoaW5hCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTIxLUQ0ICAgKGhleCkJCVZvbGxtZXIgV2Vya2UgR21iSAorMDAyMUQ0ICAgICAoYmFzZSAxNikJCVZvbGxtZXIgV2Vya2UgR21iSAorCQkJCU1hc2NoaW5lbmZhYnJpaworCQkJCUJpYmVyYWNoIEJhZGVuLVd1cnR0ZW1iZXJnIDg4NDAwCisJCQkJR0VSTUFOWQorCiswMC0yMS1ENSAgIChoZXgpCQlYMkUgR21iSAorMDAyMUQ1ICAgICAoYmFzZSAxNikJCVgyRSBHbWJICisJCQkJUmFpZmZlaXNlbnN0cmFzc2UgOQorCQkJCVdpbmRlbiBSaGVpbmxhbmQtUGZhbHogNzY4NzIKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLUQ2ICAgKGhleCkJCUxYSSBDb25zb3J0aXVtCiswMDIxRDYgICAgIChiYXNlIDE2KQkJTFhJIENvbnNvcnRpdW0KKwkJCQlQLk8uIEJveCAxMDE2CisJCQkJTml3b3QgQ08gODA1NDQtMTAxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRDcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMUQ3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUQ4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjFEOCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1EOSAgIChoZXgpCQlTRUtPTklDIENPUlBPUkFUSU9OCiswMDIxRDkgICAgIChiYXNlIDE2KQkJU0VLT05JQyBDT1JQT1JBVElPTgorCQkJCTctMjQtMTQKKwkJCQlPSVpVTUktR0FLVUVOLUNITworCQkJCU5FUklNQS1LVSBUT0tZTyAxNzgtODY4NgorCQkJCUpBUEFOCisKKzAwLTIxLURBICAgKGhleCkJCUF1dG9tYXRpb24gUHJvZHVjdHMgR3JvdXAgSW5jLgorMDAyMURBICAgICAoYmFzZSAxNikJCUF1dG9tYXRpb24gUHJvZHVjdHMgR3JvdXAgSW5jLgorCQkJCTEwMjUgV2VzdCAxNzAwIE5vcnRoCisJCQkJTG9nYW4gVXRhaCA4NDMyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtREIgICAoaGV4KQkJU2FudGFjaGkgVmlkZW8gVGVjaG5vbG9neSAoU2hlbnpoZW4pIENvLiwgTHRkLgorMDAyMURCICAgICAoYmFzZSAxNikJCVNhbnRhY2hpIFZpZGVvIFRlY2hub2xvZ3kgKFNoZW56aGVuKSBDby4sIEx0ZC4KKwkJCQlTYW50YWNoaSBCdWlsZGluZywjMTQgS2FpZmVuZyBSb2FkLE1laWxpbiwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQ5CisJCQkJQ0hJTkEKKworMDAtMjEtREMgICAoaGV4KQkJVEVDTk9BTEFSTSBTLnIubC4KKzAwMjFEQyAgICAgKGJhc2UgMTYpCQlURUNOT0FMQVJNIFMuci5sLgorCQkJCVZpYSBDaXJpZScKKwkJCQlTYW4gTWF1cm8gVG9yaW5lc2UgVG9yaW5vIDEwMDk5CisJCQkJSVRBTFkKKworMDAtMjEtREQgICAoaGV4KQkJTm9ydGhzdGFyIFN5c3RlbXMgQ29ycAorMDAyMUREICAgICAoYmFzZSAxNikJCU5vcnRoc3RhciBTeXN0ZW1zIENvcnAKKwkJCQk1RiwgTm8uMjAwIEdhbmcgUWlhbiBSZAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMS1ERSAgIChoZXgpCQlGaXJlcHJvIFdpcmVsZXNzCiswMDIxREUgICAgIChiYXNlIDE2KQkJRmlyZXBybyBXaXJlbGVzcworCQkJCTI3LCBaYW1ydWRwdXIgQ29tbXVuaXR5IENlbnRlciwKKwkJCQlLYWlsYXNoIENvbG9ueQorCQkJCU5ldyBEZWxoaSBIYXJ5YW5hIDExMDAyMAorCQkJCUlORElBCisKKzAwLTIxLURGICAgKGhleCkJCU1hcnRpbiBDaHJpc3QgR21iSAorMDAyMURGICAgICAoYmFzZSAxNikJCU1hcnRpbiBDaHJpc3QgR21iSAorCQkJCUFuIGRlciBVbnRlcmVuIFNvZXNlIDUwCisJCQkJT3N0ZXJvZGUgTmllZGVyc2FjaHNlbiAzNzUyMAorCQkJCUdFUk1BTlkKKworMDAtMjEtRTAgICAoaGV4KQkJQ29tbUFnaWxpdHkgTHRkCiswMDIxRTAgICAgIChiYXNlIDE2KQkJQ29tbUFnaWxpdHkgTHRkCisJCQkJSW5ub3ZhdGlvbiBDZW50cmUKKwkJCQlFcGluYWwgV2F5CisJCQkJTG91Z2hib3JvdWdoIExlaWNzIExFMTEgM0VICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjEtRTEgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDIxRTEgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJMjIyMSBMYWtlc2lkZSBCbHZkCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4Mi00Mzk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1FMiAgIChoZXgpCQlDcmVhdGl2ZSBFbGVjdHJvbmljIEdtYkgKKzAwMjFFMiAgICAgKGJhc2UgMTYpCQlDcmVhdGl2ZSBFbGVjdHJvbmljIEdtYkgKKwkJCQlMb3JjaGVyIFN0cmFzc2UgNTIKKwkJCQlCaXJlbmJhY2ggQmFkZW4tV3VydHRlbWJlcmcgNzMxMDIKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLUUzICAgKGhleCkJCVNlcmlhbFRlayBMTEMKKzAwMjFFMyAgICAgKGJhc2UgMTYpCQlTZXJpYWxUZWsgTExDCisJCQkJMTYzMCBPYWtsYW5kIFJkCisJCQkJU3VpdGUgQTExNworCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1FNCAgIChoZXgpCQlJLVdJTgorMDAyMUU0ICAgICAoYmFzZSAxNikJCUktV0lOCisJCQkJMjcgUnVlIGRlcyBFY29uZGVhdXgKKwkJCQlFUElOQVkgU1VSIFNFSU5FIFNlaW5lIFNhaW50IERlbmlzIDkzODAwCisJCQkJRlJBTkNFCisKKzAwLTIxLUU1ICAgKGhleCkJCURpc3BsYXkgU29sdXRpb24gQUcKKzAwMjFFNSAgICAgKGJhc2UgMTYpCQlEaXNwbGF5IFNvbHV0aW9uIEFHCisJCQkJVGFsaG9mc3RyLiAzMmEKKwkJCQlHaWxjaGluZyBEIDgyMjA1CisJCQkJR0VSTUFOWQorCiswMC0yMS1FNiAgIChoZXgpCQlTdGFybGlnaHQgVmlkZW8gTGltaXRlZAorMDAyMUU2ICAgICAoYmFzZSAxNikJCVN0YXJsaWdodCBWaWRlbyBMaW1pdGVkCisJCQkJNS9GLiwgU2hpbmcgRGFvIEluZHVzdHJpYWwgQnVpbGRpbmcsCisJCQkJMjMyIEFiZXJkZWVuIE1haW4gUm9hZCwKKwkJCQlIT05HIEtPTkcKKworMDAtMjEtRTcgICAoaGV4KQkJSW5mb3JtYXRpY3MgU2VydmljZXMgQ29ycG9yYXRpb24KKzAwMjFFNyAgICAgKGJhc2UgMTYpCQlJbmZvcm1hdGljcyBTZXJ2aWNlcyBDb3Jwb3JhdGlvbgorCQkJCTE0MCwgTmVnaW4gQmxkZy4sCisJCQkJTWlyZGFtYWQgQmx2ZAorCQkJCVRlaHJhbiAgMTU0OTUzNDUxMQorCQkJCUlSQU4sIElTTEFNSUMgUkVQVUJMSUMgT0YKKworMDAtMjEtRTggICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCiswMDIxRTggICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJMTAtMSwgSGlnYXNoaWtvdGFyaSAxLWNob21lCisJCQkJTmFnYW9rYWt5by1zaGkgS3lvdG8gNjE3LTg1NTUKKwkJCQlKQVBBTgorCiswMC0yMS1FOSAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDIxRTkgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRUEgICAoaGV4KQkJQnlzdHJvbmljIExhc2VyIEFHCiswMDIxRUEgICAgIChiYXNlIDE2KQkJQnlzdHJvbmljIExhc2VyIEFHCisJCQkJSW5kdXN0cmllc3RyLiAyMQorCQkJCTMzNjIgTmllZGVyb256IAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTIxLUVCICAgKGhleCkJCUVTUCBTWVNURU1TLCBMTEMKKzAwMjFFQiAgICAgKGJhc2UgMTYpCQlFU1AgU1lTVEVNUywgTExDCisJCQkJMTQyMiBFYXN0IEZvdXJ0aCBTdHJlZXQKKwkJCQlDaGFybG90dGUgTkMgMjgyMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUVDICAgKGhleCkJCVNvbHV0cm9uaWMgR21iSAorMDAyMUVDICAgICAoYmFzZSAxNikJCVNvbHV0cm9uaWMgR21iSAorCQkJCUt1ZWZlcnN0cmFzc2UgMTgKKwkJCQlLb2VuZ2VuICA3MzI1NworCQkJCUdFUk1BTlkKKworMDAtMjEtRUQgICAoaGV4KQkJVGVsZWdlc2lzCiswMDIxRUQgICAgIChiYXNlIDE2KQkJVGVsZWdlc2lzCisJCQkJODQgU3RhdGlvbiBSb2FkCisJCQkJTWFybG93IEJ1Y2tzIFNMNyAxTlgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMS1FRSAgIChoZXgpCQlGdWxsIFNwZWN0cnVtIEluYy4KKzAwMjFFRSAgICAgKGJhc2UgMTYpCQlGdWxsIFNwZWN0cnVtIEluYy4KKwkJCQkxMTQ5IENoZXN0bnV0IFN0cmVldCwgU3VpdGUgMTAwCisJCQkJTWVubG8gUGFyayBDYWxpZm9ybmlhIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1FRiAgIChoZXgpCQlLYXBzeXMKKzAwMjFFRiAgICAgKGJhc2UgMTYpCQlLYXBzeXMKKwkJCQk3OTAgQXYgZHUgRG9jdGV1ciBNYXVyaWNlIERvbmF0CisJCQkJTGUgTWFyY28gUG9sbyBBMQorCQkJCTA2MjUwIE1vdWdpbnMgU29waGlhIEFudGlwb2xpcyAKKwkJCQlGUkFOQ0UKKworMDAtMjEtRjAgICAoaGV4KQkJRVczIFRlY2hub2xvZ2llcyBMTEMKKzAwMjFGMCAgICAgKGJhc2UgMTYpCQlFVzMgVGVjaG5vbG9naWVzIExMQworCQkJCTIwIEhvbWVzdGVhZCBWaWxsYWdlIERyaXZlCisJCQkJV2Fyd2ljayBOWSAxMDk5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRjEgICAoaGV4KQkJVHV0dXMgRGF0YSBBQgorMDAyMUYxICAgICAoYmFzZSAxNikJCVR1dHVzIERhdGEgQUIKKwkJCQlTdmFyZHZhZ2VuIDExCisJCQkJRGFuZGVyeWQgU3RvY2tob2xtIDE4MjMzCisJCQkJU1dFREVOCisKKzAwLTIxLUYyICAgKGhleCkJCUVBU1kzQ0FMTCBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMjFGMiAgICAgKGJhc2UgMTYpCQlFQVNZM0NBTEwgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJUm9vbSAxOTAzLTYsIDE5L0YuLCBISU5HIFlJUCBDb21tZXJjaWFsIENlbnRyZQorCQkJCTI3Mi0yODQgREVTIFZPRVVYIFJvYWQgQ2VudHJhbAorCQkJCUhvbmcgS29uZyAgOTk5MDc3CisJCQkJQ0hJTkEKKworMDAtMjEtRjMgICAoaGV4KQkJU2kxNCBTcEEKKzAwMjFGMyAgICAgKGJhc2UgMTYpCQlTaTE0IFNwQQorCQkJCVZpYSBUb21tYXNlbyA3NworCQkJCVBhZG92YSBQRCAzNTEzMQorCQkJCUlUQUxZCisKKzAwLTIxLUY0ICAgKGhleCkJCUlOUmFuZ2UgU3lzdGVtcywgSW5jCiswMDIxRjQgICAgIChiYXNlIDE2KQkJSU5SYW5nZSBTeXN0ZW1zLCBJbmMKKwkJCQkyMjAgTGFrZW1vbnQgUGFyayBCbHZkCisJCQkJQWx0b29uYSBQQSAxNjYwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRjUgICAoaGV4KQkJV2VzdGVybiBFbmdyYXZlcnMgU3VwcGx5LCBJbmMuCiswMDIxRjUgICAgIChiYXNlIDE2KQkJV2VzdGVybiBFbmdyYXZlcnMgU3VwcGx5LCBJbmMuCisJCQkJMTc2MjEgTiBCbGFjayBDYW55b24gSGlnaHdheQorCQkJCVBob2VuaXggQVogODUwMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUY2ICAgKGhleCkJCU9yYWNsZSBDb3Jwb3JhdGlvbgorMDAyMUY2ICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbgorCQkJCTkwMCBDaGVsbXNmb3JkIFN0cmVldAorCQkJCUxvd2VsbCBNQSAwMTg1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRjcgICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorMDAyMUY3ICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkCisJCQkJUm9zZXZpbGxlIENBIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1GOCAgIChoZXgpCQlFbnNlbywgSW5jLgorMDAyMUY4ICAgICAoYmFzZSAxNikJCUVuc2VvLCBJbmMuCisJCQkJNDAxIEludGVybmF0aW9uYWwgUGFya3dheQorCQkJCVN1aXRlIDEwMAorCQkJCVJpY2hhcmRzb24gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUY5ICAgKGhleCkJCVdJUkVDT00gVGVjaG5vbG9naWVzCiswMDIxRjkgICAgIChiYXNlIDE2KQkJV0lSRUNPTSBUZWNobm9sb2dpZXMKKwkJCQkxMzUsIHJ1ZSBKYWNxdWVzIENoYXJsZXMKKwkJCQlPTElWRVQgTG9pcmV0IDQ1MTY2CisJCQkJRlJBTkNFCisKKzAwLTIxLUZBICAgKGhleCkJCUE0U1AgVGVjaG5vbG9naWVzIEx0ZC4KKzAwMjFGQSAgICAgKGJhc2UgMTYpCQlBNFNQIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJS2VpbGFyYW50YSAxOSBECisJCQkJRXNwb28gVXVzaW1hYSAwMjE1MAorCQkJCUZJTkxBTkQKKworMDAtMjEtRkIgICAoaGV4KQkJTEcgRWxlY3Ryb25pY3MKKzAwMjFGQiAgICAgKGJhc2UgMTYpCQlMRyBFbGVjdHJvbmljcworCQkJCTYwLTM5LEthc2FuLWRvbmcsS3VtY2hvbi1rdSwKKwkJCQlTZW91bCAgMTUzLTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS1GQyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyMUZDICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yMS1GRCAgIChoZXgpCQlEU1RBIFMuTC4KKzAwMjFGRCAgICAgKGJhc2UgMTYpCQlEU1RBIFMuTC4KKwkJCQlNYWphZGEgNAorCQkJCVRyZXMgQ2FudG9zIE1hZHJpZCAyODc2MAorCQkJCVNQQUlOCisKKzAwLTIxLUZFICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDIxRkUgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTIxLUZGICAgKGhleCkJCUN5ZnJvd3kgUG9sc2F0IFNBCiswMDIxRkYgICAgIChiYXNlIDE2KQkJQ3lmcm93eSBQb2xzYXQgU0EKKwkJCQk/dWJpbm93YSA0QQorCQkJCVdhcnNhdyBNYXpvd2llY2tpZSAwMy04NzgKKwkJCQlQT0xBTkQKKworMDAtMjItMDAgICAoaGV4KQkJSUJNIENvcnAKKzAwMjIwMCAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTIwNTEgTWlzc2lvbiBDb2xsZWdlIEJsdmQgCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTAxICAgKGhleCkJCUFrc3lzIE5ldHdvcmtzIEluYworMDAyMjAxICAgICAoYmFzZSAxNikJCUFrc3lzIE5ldHdvcmtzIEluYworCQkJCTQyOCwgMzU1MyAtIDMxIFN0cmVldCBOVworCQkJCUNhbGdhcnkgIFQyTCAySzcKKwkJCQlDQU5BREEKKworMDAtMjItMDIgICAoaGV4KQkJRXhjaXRvIEVsZWt0cm9uaWsgaSBTa2FuZSBBQgorMDAyMjAyICAgICAoYmFzZSAxNikJCUV4Y2l0byBFbGVrdHJvbmlrIGkgU2thbmUgQUIKKwkJCQlCb3ggMTI2CisJCQkJTG9kZGVrb3BpbmdlICAyNDYgMjIKKwkJCQlTV0VERU4KKworMDAtMjItMDMgICAoaGV4KQkJR2xlbnNvdW5kIEVsZWN0cm9uaWNzIEx0ZAorMDAyMjAzICAgICAoYmFzZSAxNikJCUdsZW5zb3VuZCBFbGVjdHJvbmljcyBMdGQKKwkJCQkxIC0gNiBCcm9va3MgUGxhY2UKKwkJCQlNYWlkc3RvbmUgS2VudCBNRTE3IDFVTgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIyLTA0ICAgKGhleCkJCUtPUkFURUsKKzAwMjIwNCAgICAgKGJhc2UgMTYpCQlLT1JBVEVLCisJCQkJR2V1bWplb25nLWRvbmcKKwkJCQlHdW5wby1zaSBHeWVvbmdnaS1kbyA0MzUtODI1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIyLTA1ICAgKGhleCkJCVdlTGluayBTb2x1dGlvbnMsIEluYy4KKzAwMjIwNSAgICAgKGJhc2UgMTYpCQlXZUxpbmsgU29sdXRpb25zLCBJbmMuCisJCQkJM0YsIE5vLiA4OCwgU2VjLiAxLCBOZWktSHUgUmQuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLTA2ICAgKGhleCkJCUN5YmVyZHluZSBJbmMuCiswMDIyMDYgICAgIChiYXNlIDE2KQkJQ3liZXJkeW5lIEluYy4KKwkJCQk1MDQ/QEM0OS0yCisJCQkJVHN1a3ViYS1zaGkgSWJhcmFraS1rZW4gMzA1LTA4MTcKKwkJCQlKQVBBTgorCiswMC0yMi0wNyAgIChoZXgpCQlJbnRlbm8gQnJvYWRiYW5kIFRlY2hub2xvZ3kgQUIKKzAwMjIwNyAgICAgKGJhc2UgMTYpCQlJbnRlbm8gQnJvYWRiYW5kIFRlY2hub2xvZ3kgQUIKKwkJCQlEcml2aGp1bHN2YWdlbiAyMgorCQkJCVN0b2NraG9sbSBTRSAxMjYzMAorCQkJCVNXRURFTgorCiswMC0yMi0wOCAgIChoZXgpCQlDZXJ0aWNvbSBDb3JwCiswMDIyMDggICAgIChiYXNlIDE2KQkJQ2VydGljb20gQ29ycAorCQkJCTU1MjAgRXhwbG9yZXIgRHJpdmUsIDR0aCBGbG9vcgorCQkJCU1pc3Npc3NhdWdhIE9OIEw0VyA1TDEKKwkJCQlDQU5BREEKKworMDAtMjItMDkgICAoaGV4KQkJT21yb24gSGVhbHRoY2FyZSBDby4sIEx0ZAorMDAyMjA5ICAgICAoYmFzZSAxNikJCU9tcm9uIEhlYWx0aGNhcmUgQ28uLCBMdGQKKwkJCQkyNCBZYW1hbm9zaGl0YS1jaG8gWWFtYW5vdWNoaQorCQkJCVVreW9rdQorCQkJCUt5b3RvICA2MTUwMDg0CisJCQkJSkFQQU4KKworMDAtMjItMEEgICAoaGV4KQkJT25MaXZlLCBJbmMKKzAwMjIwQSAgICAgKGJhc2UgMTYpCQlPbkxpdmUsIEluYworCQkJCTE4MSBMeXR0b24gQXZlCisJCQkJUGFsbyBBbHRvIENhbGlmb3JuaWEgOTQzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTBCICAgKGhleCkJCU5hdGlvbmFsIFNvdXJjZSBDb2RpbmcgQ2VudGVyCiswMDIyMEIgICAgIChiYXNlIDE2KQkJTmF0aW9uYWwgU291cmNlIENvZGluZyBDZW50ZXIKKwkJCQlTdWl0ZSA3MDEsUG93ZXIgQ3JlYXRpdmUgQSxOby4xCisJCQkJU2hhbmdkaSBFYXN0IFJvYWQsSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTIyLTBDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjIwQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0wRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIyMEQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMEUgICAoaGV4KQkJSW5kaWdvIFNlY3VyaXR5IENvLiwgTHRkLgorMDAyMjBFICAgICAoYmFzZSAxNikJCUluZGlnbyBTZWN1cml0eSBDby4sIEx0ZC4KKwkJCQkybmQgRmxvb3IsIDI3Ny0xNjkgU3VuZ3NvbzItR2EsIFN1bmdkb25nLUd1CisJCQkJU2VvdWwgIDEzMy04MzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItMEYgICAoaGV4KQkJTW9DQSAoTXVsdGltZWRpYSBvdmVyIENvYXggQWxsaWFuY2UpCiswMDIyMEYgICAgIChiYXNlIDE2KQkJTW9DQSAoTXVsdGltZWRpYSBvdmVyIENvYXggQWxsaWFuY2UpCisJCQkJOTAgSW52ZXJuZXNzIENpcmNsZSBFYXN0CisJCQkJRW5nbGV3b29kIENBIDk0NTgzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0xMCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyMjEwICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMTEgICAoaGV4KQkJUm9oYXRpIFN5c3RlbXMKKzAwMjIxMSAgICAgKGJhc2UgMTYpCQlSb2hhdGkgU3lzdGVtcworCQkJCTExOTIgQm9ycmVnYXMgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0xMiAgIChoZXgpCQlDQUkgTmV0d29ya3MsIEluYy4KKzAwMjIxMiAgICAgKGJhc2UgMTYpCQlDQUkgTmV0d29ya3MsIEluYy4KKwkJCQkxNzE1IEUuIFdpbHNoaXJlIEF2ZW51ZQorCQkJCVNURSA3MTkKKwkJCQlTYW50YSBBbmEgQ2FsaWZvcm5pYSA5MjcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMTMgICAoaGV4KQkJUENJIENPUlBPUkFUSU9OCiswMDIyMTMgICAgIChiYXNlIDE2KQkJUENJIENPUlBPUkFUSU9OCisJCQkJTm8uMjUsIExhbmUgNjYsIEhlYmVpIDFzdCBTdC4sICBCZWl0dW4gRGlzdHJpY3QKKwkJCQlUYWljaHVuZyAgNDA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi0xNCAgIChoZXgpCQlSSU5OQUkgS09SRUEKKzAwMjIxNCAgICAgKGJhc2UgMTYpCQlSSU5OQUkgS09SRUEKKwkJCQk1NjAtMiwgU2hpYmpvbmctMWRvbmcsIFB1cHlvdW5nLWd1CisJCQkJNXRoIFJlc2VhcmNoIFRlYW0KKwkJCQlQdXB5b3VuZy1ndSBJbmNoZW9uIDQwMy04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItMTUgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCiswMDIyMTUgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdSwKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItMTYgICAoaGV4KQkJU0hJQkFVUkEgVkVORElORyBNQUNISU5FIENPUlBPUkFUSU9OCiswMDIyMTYgICAgIChiYXNlIDE2KQkJU0hJQkFVUkEgVkVORElORyBNQUNISU5FIENPUlBPUkFUSU9OCisJCQkJRWtpbWFlLWNobzEzLTEwCisJCQkJT2JhbWEtc2hpIEZ1a3VpLWtlbiA5MTctMDA3NworCQkJCUpBUEFOCisKKzAwLTIyLTE3ICAgKGhleCkJCU5lYXQgRWxlY3Ryb25pY3MKKzAwMjIxNyAgICAgKGJhc2UgMTYpCQlOZWF0IEVsZWN0cm9uaWNzCisJCQkJVmFydXZhZ2VuIDIKKwkJCQlMb2RkZWtvcGluZ2UgU2thbmUgU0UtMjQ2NDIKKwkJCQlTV0VERU4KKworMDAtMjItMTggICAoaGV4KQkJVmVyaXZ1ZSBJbmMuCiswMDIyMTggICAgIChiYXNlIDE2KQkJVmVyaXZ1ZSBJbmMuCisJCQkJMyBDYXJsaXNsZSBSb2FkCisJCQkJV2VzdGZvcmQgTUEgMDE4ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTE5ICAgKGhleCkJCURlbGwgSW5jCiswMDIyMTkgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTFBICAgKGhleCkJCUF1ZGlvIFByZWNpc2lvbgorMDAyMjFBICAgICAoYmFzZSAxNikJCUF1ZGlvIFByZWNpc2lvbgorCQkJCTU3NTAgU1cgQXJjdGljIERyaXZlCisJCQkJQmVhdmVydG9uIE9SIDk3MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0xQiAgIChoZXgpCQlNb3JlZ2EgU3lzdGVtcworMDAyMjFCICAgICAoYmFzZSAxNikJCU1vcmVnYSBTeXN0ZW1zCisJCQkJNTc3MCBIdXJvbnRhcmlvIFN0cmVldAorCQkJCVN1aXRlIDUwMQorCQkJCU1pc3Npc3NhdWdhIE9udGFyaW8gTDVSIDNHNQorCQkJCUNBTkFEQQorCiswMC0yMi0xQyAgIChoZXgpCQlQUklWQVRFCiswMDIyMUMgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTIyLTFEICAgKGhleCkJCUZyZWVnZW5lIFRlY2hub2xvZ3kgTFRECiswMDIyMUQgICAgIChiYXNlIDE2KQkJRnJlZWdlbmUgVGVjaG5vbG9neSBMVEQKKwkJCQkzL0YgLEMgQkxERyxXZWlwZW5nZGEgSW5kdXN0cmlhbCBQYXJrCisJCQkJbG9uZ2tvdSBpbmR1c3RyaWFsIGFyZWEsYmFvLWFuIGRpc3RyaWN0CisJCQkJU2hlbnpoZW4gR29uZ2RvbmcgNTE4MTA5CisJCQkJQ0hJTkEKKworMDAtMjItMUUgICAoaGV4KQkJTWVkaWEgRGV2aWNlcyBDby4sIEx0ZC4KKzAwMjIxRSAgICAgKGJhc2UgMTYpCQlNZWRpYSBEZXZpY2VzIENvLiwgTHRkLgorCQkJCVJtMTAwMiBBY2UgVGVjaG5vVG93ZXIoOXRoKSAzNDUtMzAKKwkJCQlLYXNhbi1kb25nLCBLdW1jaG9uLWt1CisJCQkJU2VvdWwgIDE1My04MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItMUYgICAoaGV4KQkJZVNhbmcgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAyMjFGICAgICAoYmFzZSAxNikJCWVTYW5nIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQkjMS04MTcsIElUIENhc3RsZSA1NTAtMSwgR2FzYW4tRG9uZywKKwkJCQlHZXVtY2hlb24tR3UsCisJCQkJU2VvdWwgIDE1My03NjgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItMjAgICAoaGV4KQkJTWl0YWMgVGVjaG5vbG9neSBDb3JwCiswMDIyMjAgICAgIChiYXNlIDE2KQkJTWl0YWMgVGVjaG5vbG9neSBDb3JwCisJCQkJOXRoIEZsLiwgIzc1LCBNaW4tc2hlbmcgRS4gUm9hZCwgU2VjLiAzLAorCQkJCVRhaXBlaSAgMTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi0yMSAgIChoZXgpCQlJVE9IIERFTktJIENPLExURC4KKzAwMjIyMSAgICAgKGJhc2UgMTYpCQlJVE9IIERFTktJIENPLExURC4KKwkJCQkxMTQ2LTIsIEFzYXp1bWEtY2hvCisJCQkJS2FzYWkgSHlvZ28gNjc5LTAxODAKKwkJCQlKQVBBTgorCiswMC0yMi0yMiAgIChoZXgpCQlTY2hhZmZuZXIgRGV1dHNjaGxhbmQgR21iSCAKKzAwMjIyMiAgICAgKGJhc2UgMTYpCQlTY2hhZmZuZXIgRGV1dHNjaGxhbmQgR21iSCAKKwkJCQlOaT9vZXJ0aW5nZW4gQnJhbmNoCisJCQkJUmFpZHdhbmdlciBTdHIuIDEyIAorCQkJCU5pP29lcnRpbmdlbiBCVyBELTcyNjIyIAorCQkJCUdFUk1BTlkKKworMDAtMjItMjMgICAoaGV4KQkJVGltZUtlZXBpbmcgU3lzdGVtcywgSW5jLgorMDAyMjIzICAgICAoYmFzZSAxNikJCVRpbWVLZWVwaW5nIFN5c3RlbXMsIEluYy4KKwkJCQkzMDcwMCBCYWluYnJpZGdlIFJvYWQKKwkJCQlTdWl0ZSBICisJCQkJU29sb24gT0ggNDQxMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTI0ICAgKGhleCkJCUdvb2QgV2lsbCBJbnN0cnVtZW50IENvLiwgTHRkLgorMDAyMjI0ICAgICAoYmFzZSAxNikJCUdvb2QgV2lsbCBJbnN0cnVtZW50IENvLiwgTHRkLgorCQkJCU5vLiA3LTEgSmhvbmdzaW5nIFJvYWQsCisJCQkJVHVjaGVuZyBDaXR5CisJCQkJVGFpcGVpICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLTI1ICAgKGhleCkJCVRoYWxlcyBBdmlvbmljcyBMdGQKKzAwMjIyNSAgICAgKGJhc2UgMTYpCQlUaGFsZXMgQXZpb25pY3MgTHRkCisJCQkJODYgQnVzaGV5IFJvYWQKKwkJCQlSYXluZXMgUGFyaworCQkJCUxvbmRvbiAgU1cyMCAwSlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMi0yNiAgIChoZXgpCQlBdmFhaywgSW5jLgorMDAyMjI2ICAgICAoYmFzZSAxNikJCUF2YWFrLCBJbmMuCisJCQkJOTY0NSBTY3JhbnRvbiBSZC4sIFN1aXRlIDExMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMjcgICAoaGV4KQkJdXYtZWxlY3Ryb25pYyBHbWJICiswMDIyMjcgICAgIChiYXNlIDE2KQkJdXYtZWxlY3Ryb25pYyBHbWJICisJCQkJR3Jvc3N3aWVzZW5zdHJhc3NlIDIwCisJCQkJRHVyY2hoYXVzZW4gQmFkZW4tV3VydHRlbWJlcmcgNzg1OTEKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLTI4ICAgKGhleCkJCUJyZWV6ZSBJbm5vdmF0aW9ucyBMdGQuCiswMDIyMjggICAgIChiYXNlIDE2KQkJQnJlZXplIElubm92YXRpb25zIEx0ZC4KKwkJCQlIYXIgSG90enZpbSwgUC5PLiBCb3ggNDUzOTcKKwkJCQlKZXJ1c2FsZW0gSXNyYWVsIDkxNDUxCisJCQkJSVNSQUVMCisKKzAwLTIyLTI5ICAgKGhleCkJCUNvbXB1bWVkaWNzIEx0ZAorMDAyMjI5ICAgICAoYmFzZSAxNikJCUNvbXB1bWVkaWNzIEx0ZAorCQkJCTMwIC0gNDAgRmxvY2toYXJ0IFN0cmVldAorCQkJCUFiYm90c2ZvcmQgVmljdG9yaWEgMzA2NworCQkJCUFVU1RSQUxJQQorCiswMC0yMi0yQSAgIChoZXgpCQlTb3VuZEVhciBBL1MKKzAwMjIyQSAgICAgKGJhc2UgMTYpCQlTb3VuZEVhciBBL1MKKwkJCQlSZW50ZW1lc3RlcnZlaiA4MAorCQkJCUNvcGVuaGFnZW4gTlYgRGVubWFyayBESy0yNDAwCisJCQkJREVOTUFSSworCiswMC0yMi0yQiAgIChoZXgpCQlOdWNvbW0sIEluYy4KKzAwMjIyQiAgICAgKGJhc2UgMTYpCQlOdWNvbW0sIEluYy4KKwkJCQkxMDEgQmlsYnkgUm9hZAorCQkJCUhhY2tldHRzdG93biBOSiAwNzg0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMkMgICAoaGV4KQkJQ2V0b24gQ29ycAorMDAyMjJDICAgICAoYmFzZSAxNikJCUNldG9uIENvcnAKKwkJCQk4MjU5IDEyMm5kIEF2ZSBORSwgU3VpdGUgMjc1CisJCQkJS2lya2xhbmQgV2FzaGluZ3RvbiA5ODAzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMkQgICAoaGV4KQkJU01DIE5ldHdvcmtzIEluYy4KKzAwMjIyRCAgICAgKGJhc2UgMTYpCQlTTUMgTmV0d29ya3MgSW5jLgorCQkJCTIwIE1hc29uCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0yRSAgIChoZXgpCQltYWludGVjaCBHbWJICiswMDIyMkUgICAgIChiYXNlIDE2KQkJbWFpbnRlY2ggR21iSAorCQkJCVNlZXdlZyA2MAorCQkJCUhvY2hiZXJnIEJhdmFyaWEgOTcyMDQKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLTJGICAgKGhleCkJCU9wZW4gR3JpZCBDb21wdXRpbmcsIEluYy4KKzAwMjIyRiAgICAgKGJhc2UgMTYpCQlPcGVuIEdyaWQgQ29tcHV0aW5nLCBJbmMuCisJCQkJNDAzMC0xIFdlc3QgQnJha2VyIExhbmUgU1RFMTMwCisJCQkJQXVzdGluIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0zMCAgIChoZXgpCQlGdXR1cmVMb2dpYyBJbmMuCiswMDIyMzAgICAgIChiYXNlIDE2KQkJRnV0dXJlTG9naWMgSW5jLgorCQkJCTQyNSBFLiBDb2xvcmFkbyBTdC4sIFN0ZS4gMTAwCisJCQkJR2xlbmRhbGUgQ0EgOTEyMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTMxICAgKGhleCkJCVNNVCZDIENvLiwgTHRkLgorMDAyMjMxICAgICAoYmFzZSAxNikJCVNNVCZDIENvLiwgTHRkLgorCQkJCTJGci4gSGFrc2FuIEJsZGcuIDExMCwgR3dhbmdqYW5nLWRvbmcsIEd3YW5namluLWd1CisJCQkJU2VvdWwgIDE0My04MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItMzIgICAoaGV4KQkJRGVzaWduIERlc2lnbiBUZWNobm9sb2d5IEx0ZAorMDAyMjMyICAgICAoYmFzZSAxNikJCURlc2lnbiBEZXNpZ24gVGVjaG5vbG9neSBMdGQKKwkJCQlVbml0IDksIEFzaCBSb2FkIFNvdXRoCisJCQkJV3JleGhhbSBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCVdyZXhoYW0gTm9ydGggV2FsZXMgTEwxMyA5VUcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMi0zMyAgIChoZXgpCQlQaXJlbGxpIEJyb2FkYmFuZCBTb2x1dGlvbnMKKzAwMjIzMyAgICAgKGJhc2UgMTYpCQlQaXJlbGxpIEJyb2FkYmFuZCBTb2x1dGlvbnMKKwkJCQlWSUFMRSBTQVJDQSAyMjIKKwkJCQlNSUxBTk8gIDIwMTI2CisJCQkJSVRBTFkKKworMDAtMjItMzQgICAoaGV4KQkJQ29ydmVudGlzIEluYy4KKzAwMjIzNCAgICAgKGJhc2UgMTYpCQlDb3J2ZW50aXMgSW5jLgorCQkJCTE0MTAgRW5lcmd5IFBhcmsgRHIuIFN1aXRlICMxCisJCQkJU3QuIFBhdWwgTWlubmVzb3RhIDU1MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0zNSAgIChoZXgpCQlTdHJ1a3RvbiBTeXN0ZW1zIGJ2CiswMDIyMzUgICAgIChiYXNlIDE2KQkJU3RydWt0b24gU3lzdGVtcyBidgorCQkJCVdlc3RrYW5hYWxkaWprIDIKKwkJCQlVdHJlY2h0ICAzNTQyIERBCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjItMzYgICAoaGV4KQkJVkVDVE9SIFNQLiBaIE8uTy4KKzAwMjIzNiAgICAgKGJhc2UgMTYpCQlWRUNUT1IgU1AuIFogTy5PLgorCQkJCUtSWkVNT1dBIDYKKwkJCQlHRFlOSUEgIDgxLTU3NworCQkJCVBPTEFORAorCiswMC0yMi0zNyAgIChoZXgpCQlTaGluaGludCBHcm91cAorMDAyMjM3ICAgICAoYmFzZSAxNikJCVNoaW5oaW50IEdyb3VwCisJCQkJVW5pdCAxNTA2LCAxNS9GLCBOYW55YW5nIFBsYXphLCwgNTcgSHVuZyBUbyBSb2FkLAorCQkJCUt3dW4gVG9uZywgS2xuCisJCQkJSE9ORyBLT05HCisKKzAwLTIyLTM4ICAgKGhleCkJCUxPR0lQTFVTCiswMDIyMzggICAgIChiYXNlIDE2KQkJTE9HSVBMVVMKKwkJCQkxLCBSVUUgQ0xFTUVOVCBBREVSCisJCQkJQi02MDQxIEdPU1NFTEVJRVMKKwkJCQlHT1NTRUxJRVMgSEFJTkFVVCBCLTYwNDEKKwkJCQlCRUxHSVVNCisKKzAwLTIyLTM5ICAgKGhleCkJCUluZGlhbmEgTGlmZSBTY2llbmNlcyBJbmNvcnBvcmF0ZWQKKzAwMjIzOSAgICAgKGJhc2UgMTYpCQlJbmRpYW5hIExpZmUgU2NpZW5jZXMgSW5jb3Jwb3JhdGVkCisJCQkJODg3NSBCYXNoIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJbmRpYW5hIDQ2MjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0zQSAgIChoZXgpCQlTY2llbnRpZmljIEF0bGFudGEsIENpc2NvIFNQVlQgR3JvdXAKKzAwMjIzQSAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIEF0bGFudGEsIENpc2NvIFNQVlQgR3JvdXAKKwkJCQk1MDMwIFN1Z2FybG9hZiBQYXJrd2F5CisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItM0IgICAoaGV4KQkJQ29tbXVuaWNhdGlvbiBOZXR3b3JrcywgTExDCiswMDIyM0IgICAgIChiYXNlIDE2KQkJQ29tbXVuaWNhdGlvbiBOZXR3b3JrcywgTExDCisJCQkJMyBDb3Jwb3JhdGUgRHJpdmUKKwkJCQlEYW5idXJ5IENUIDA2ODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0zQyAgIChoZXgpCQlSQVRJTyBFbnR3aWNrbHVuZ2VuIEdtYkgKKzAwMjIzQyAgICAgKGJhc2UgMTYpCQlSQVRJTyBFbnR3aWNrbHVuZ2VuIEdtYkgKKwkJCQlMdWR3aWctRXJoYXJkLVN0cmFzc2UgMjIKKwkJCQlIYW1idXJnICAyMDQ1OQorCQkJCUdFUk1BTlkKKworMDAtMjItM0QgICAoaGV4KQkJSnVtcEdlbiBTeXN0ZW1zLCBMTEMKKzAwMjIzRCAgICAgKGJhc2UgMTYpCQlKdW1wR2VuIFN5c3RlbXMsIExMQworCQkJCTIxMTEgUGFsb21hciBBaXJwb3J0IFJkLCBTdGUgMTQwCisJCQkJQ2FybHNiYWQgQ0EgOTIwMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTNFICAgKGhleCkJCUlSVHJhbnMgR21iSAorMDAyMjNFICAgICAoYmFzZSAxNikJCUlSVHJhbnMgR21iSAorCQkJCUVpbnN0ZWluc3RyYXNzZSAxNAorCQkJCVVudGVyc2NobGVpc3NoZWltIEJBWUVSTiA4NTcxNgorCQkJCUdFUk1BTlkKKworMDAtMjItM0YgICAoaGV4KQkJTmV0Z2VhciBJbmMuCiswMDIyM0YgICAgIChiYXNlIDE2KQkJTmV0Z2VhciBJbmMuCisJCQkJNDUwMCBHcmVhdCBBbWVyaWNhIFBreQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi00MCAgIChoZXgpCQlVbml2ZXJzYWwgVGVsZWNvbSBTL0EKKzAwMjI0MCAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgVGVsZWNvbSBTL0EKKwkJCQlBdmVuaWRhIFBhdWxpc3RhLCAyNDQ0IC0gMTcgYW5kYXIKKwkJCQlTYW8gUGF1bG8gIDAxMzEwLTMwMAorCQkJCUJSQVpJTAorCiswMC0yMi00MSAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDIyNDEgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNDIgICAoaGV4KQkJQWxhY3JvbiBJbmMuCiswMDIyNDIgICAgIChiYXNlIDE2KQkJQWxhY3JvbiBJbmMuCisJCQkJNzEgU3BpdCBCcm9vayBSZC4KKwkJCQlTdWl0ZSAyMDQKKwkJCQlOYXNodWEgTkggMDMwNjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTQzICAgKGhleCkJCUF6dXJlV2F2ZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMjI0MyAgICAgKGJhc2UgMTYpCQlBenVyZVdhdmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJOEYuLCBOby4gOTQsIEJhb3pob25nIFJkLiwgWGluZGlhbgorCQkJCVRhaXBlaSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi00NCAgIChoZXgpCQlDaGVuZ2R1IExpbmtvbiBDb21tdW5pY2F0aW9ucyBEZXZpY2UgQ28uLCBMdGQKKzAwMjI0NCAgICAgKGJhc2UgMTYpCQlDaGVuZ2R1IExpbmtvbiBDb21tdW5pY2F0aW9ucyBEZXZpY2UgQ28uLCBMdGQKKwkJCQk1Zi0wMiwgSnVudG9uZyBCdWlsZGluZywgTm8uIDUzLFNodWFuZ2ZlbmcgUm9hZCwgV3Vob3UgRGlzdHJpY3QsCisJCQkJQ2hlbmdkdSBTaWNodWFuIDYxMDA0MQorCQkJCUNISU5BCisKKzAwLTIyLTQ1ICAgKGhleCkJCUxlaW5lICYgTGluZGUgQUIKKzAwMjI0NSAgICAgKGJhc2UgMTYpCQlMZWluZSAmIExpbmRlIEFCCisJCQkJQm94IDgKKwkJCQlTdHJhbmduYXMgU29kZXJtYW5sYW5kIFNFLTY0NSAyMQorCQkJCVNXRURFTgorCiswMC0yMi00NiAgIChoZXgpCQlFdm9jIEludGVsbGlnZW50IFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMjI0NiAgICAgKGJhc2UgMTYpCQlFdm9jIEludGVsbGlnZW50IFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQlOby4zMSBHYW94aW4gQ2VudGVyYWwgQXZlbnVlIDR0aCBSb2FkLE5hbnNoYW4gRGlzdHJpY3QgU2hlbnpoZW4gQ2l0eQorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0yMi00NyAgIChoZXgpCQlEQUMgRU5HSU5FRVJJTkcgQ08uLCBMVEQuCiswMDIyNDcgICAgIChiYXNlIDE2KQkJREFDIEVOR0lORUVSSU5HIENPLiwgTFRELgorCQkJCTEtNSBPeWFuYWdpLWNobworCQkJCUthbWl0b2JhLCBNaW5hbWkta3UKKwkJCQlLeW90byAgNjAxLTgxMjgKKwkJCQlKQVBBTgorCiswMC0yMi00OCAgIChoZXgpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKzAwMjI0OCAgICAgKGJhc2UgMTYpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKwkJCQlPbmUgTWljcm9zb2Z0IFdheQorCQkJCVJlZG1vbmQgV2FzaGluZ3RvbiA5ODA1Mi02Mzk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi00OSAgIChoZXgpCQlIT01FIE1VTFRJRU5FUkdZIFNMCiswMDIyNDkgICAgIChiYXNlIDE2KQkJSE9NRSBNVUxUSUVORVJHWSBTTAorCQkJCUNBUElUQU4gSEFZQSAxCisJCQkJRURJRklDSU8gRVVDT0NFTlRSTyBCQUpPCisJCQkJTUFEUklEICAyODAyMAorCQkJCVNQQUlOCisKKzAwLTIyLTRBICAgKGhleCkJCVJBWUxBU0UgQUcKKzAwMjI0QSAgICAgKGJhc2UgMTYpCQlSQVlMQVNFIEFHCisJCQkJQXJnZWxzcmllZGVyIEZlbGQgMi00CisJCQkJV2Vzc2xpbmcgQmF2YXJpYSA4MjIzNAorCQkJCUdFUk1BTlkKKworMDAtMjItNEIgICAoaGV4KQkJQUlSVEVDSCBURUNITk9MT0dJRVMsIElOQy4KKzAwMjI0QiAgICAgKGJhc2UgMTYpCQlBSVJURUNIIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTE5ZmwtNCwgbm8uNzcsIEhzaW4gVGFpIFd1IFJkLiwgc2VjLjEsIEhzaW4tQ2hpaAorCQkJCVRhaXBlaSAgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi00QyAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMjI0QyAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yMi00RCAgIChoZXgpCQlNSVRBQyBJTlRFUk5BVElPTkFMIENPUlAuCiswMDIyNEQgICAgIChiYXNlIDE2KQkJTUlUQUMgSU5URVJOQVRJT05BTCBDT1JQLgorCQkJCTZUSCBGTC4sIE5PMTg3LCBUSURJTkcgQkxWRC4sIFNFQy4gMgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi00RSAgIChoZXgpCQlTRUVuZXJneSBDb3JwLgorMDAyMjRFICAgICAoYmFzZSAxNikJCVNFRW5lcmd5IENvcnAuCisJCQkJNEYsIE5vLjYxLCBEb25nc2luZyBSRC4KKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItNEYgICAoaGV4KQkJQnl6b3JvIE5ldHdvcmtzIEx0ZC4KKzAwMjI0RiAgICAgKGJhc2UgMTYpCQlCeXpvcm8gTmV0d29ya3MgTHRkLgorCQkJCVJvb20gNUExLEJsb2NrIEEsIEtlc2hpIFBsYXphLE5vLiAyOEEgSW5mby4gUm9hZCwKKwkJCQlIYWlEaWFuIERpc3RyaWN0LAorCQkJCUJlaWppbmcgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMjItNTAgICAoaGV4KQkJUG9pbnQgU2l4IFdpcmVsZXNzLCBMTEMKKzAwMjI1MCAgICAgKGJhc2UgMTYpCQlQb2ludCBTaXggV2lyZWxlc3MsIExMQworCQkJCTIzMzMgQWx1bW5pIFBhcmsgUGxhemEKKwkJCQlTdWl0ZSAzMDUKKwkJCQlMZXhpbmd0b24gS1kgNDA1MTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTUxICAgKGhleCkJCUx1bWFzZW5zZSBUZWNobm9sb2dpZXMKKzAwMjI1MSAgICAgKGJhc2UgMTYpCQlMdW1hc2Vuc2UgVGVjaG5vbG9naWVzCisJCQkJMzAzMyBTY290dCBCbHZkLgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi01MiAgIChoZXgpCQlaT0xMIExpZmVjb3IgQ29ycG9yYXRpb24KKzAwMjI1MiAgICAgKGJhc2UgMTYpCQlaT0xMIExpZmVjb3IgQ29ycG9yYXRpb24KKwkJCQkxMjEgRnJlZXBvcnQgUm9hZAorCQkJCVBpdHRzYnVyZ2ggUEEgMTUyMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTUzICAgKGhleCkJCUVudG9yaWFuIFRlY2hub2xvZ2llcworMDAyMjUzICAgICAoYmFzZSAxNikJCUVudG9yaWFuIFRlY2hub2xvZ2llcworCQkJCTg5MDAgU2hvYWwgQ3JlZWsgQmx2ZAorCQkJCUF1c3RpbiBUWCA3ODc1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNTQgICAoaGV4KQkJQmlnZWxvdyBBZXJvc3BhY2UKKzAwMjI1NCAgICAgKGJhc2UgMTYpCQlCaWdlbG93IEFlcm9zcGFjZQorCQkJCTE4OTkgVy4gQnJvb2tzIEF2ZQorCQkJCU5vcnRoIExhcyBWZWdhcyBOViA4OTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNTUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMjU1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTU2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjI1NiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi01NyAgIChoZXgpCQkzQ29tIEV1cm9wZSBMdGQKKzAwMjI1NyAgICAgKGJhc2UgMTYpCQkzQ29tIEV1cm9wZSBMdGQKKwkJCQlQZW9wbGVidWlsZGluZyAyCisJCQkJTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzLiBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjItNTggICAoaGV4KQkJVGFpeW8gWXVkZW4gQ28uLCBMdGQuCiswMDIyNTggICAgIChiYXNlIDE2KQkJVGFpeW8gWXVkZW4gQ28uLCBMdGQuCisJCQkJOC0xLCBTYWthZS1jaG8KKwkJCQlUYWthc2FraS1zaGkgR3VubWEta2VuIDM3MC04NTIyCisJCQkJSkFQQU4KKworMDAtMjItNTkgICAoaGV4KQkJR3Vhbmd6aG91IE5ldyBQb3N0Y29tIEVxdWlwbWVudCBDby4sTHRkLgorMDAyMjU5ICAgICAoYmFzZSAxNikJCUd1YW5nemhvdSBOZXcgUG9zdGNvbSBFcXVpcG1lbnQgQ28uLEx0ZC4KKwkJCQlOby4zPz9HdWFuZ3B1eGkgUm9hZCxHdWFuZ3pob3UgU2NpZW5jZSBDaXR5LAorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgNTEwNjYzCisJCQkJQ0hJTkEKKworMDAtMjItNUEgICAoaGV4KQkJR2FyZGUgU2VjdXJpdHkgQUIKKzAwMjI1QSAgICAgKGJhc2UgMTYpCQlHYXJkZSBTZWN1cml0eSBBQgorCQkJCUJveCA3OAorCQkJCVNvZGVyaGFtbiAgUy04MjYgMjIKKwkJCQlTV0VERU4KKworMDAtMjItNUIgICAoaGV4KQkJVGVyYWRpY2kgQ29ycG9yYXRpb24KKzAwMjI1QiAgICAgKGJhc2UgMTYpCQlUZXJhZGljaSBDb3Jwb3JhdGlvbgorCQkJCSM1MDAgLSA0NDAwIERvbWluaW9uIFN0LgorCQkJCUJ1cm5hYnkgQkMgVjVHICRHMworCQkJCUNBTkFEQQorCiswMC0yMi01QyAgIChoZXgpCQlNdWx0aW1lZGlhICYgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5CiswMDIyNUMgICAgIChiYXNlIDE2KQkJTXVsdGltZWRpYSAmIENvbW11bmljYXRpb24gVGVjaG5vbG9neQorCQkJCURpZ2l0YWwgRW1waXJlIEQtODAxICM5ODAtMworCQkJCVllb25nVG9uZy1Eb25nCisJCQkJU3V3b24tQ2l0eSBLeWVvbmdHaS1EbyA0NDMtODEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIyLTVEICAgKGhleCkJCURpZ2ljYWJsZSBOZXR3b3JrIEluZGlhIFB2dC4gTHRkLgorMDAyMjVEICAgICAoYmFzZSAxNikJCURpZ2ljYWJsZSBOZXR3b3JrIEluZGlhIFB2dC4gTHRkLgorCQkJCTdCLCBTaGFoIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJT2ZmLiBWZWVyYSBEZXNhaSBSb2FkLAorCQkJCUFuZGhlcmkgLSBXZXN0LCBNdW1iYWkuIE1haGFyYXNodHJhIDQwMCAwNTMKKwkJCQlJTkRJQQorCiswMC0yMi01RSAgIChoZXgpCQlVd2luIFRlY2hub2xvZ2llcyBDby4sTFRECiswMDIyNUUgICAgIChiYXNlIDE2KQkJVXdpbiBUZWNobm9sb2dpZXMgQ28uLExURAorCQkJCTJGLE5vLjIyLlImRCBSRCBJSSxTQklQCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi01RiAgIChoZXgpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAyMjVGICAgICAoYmFzZSAxNikJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYsOTAsQ2hpZW4gMSBSb2FkLENodW5nSG8sCisJCQkJVGFpcGVpIEhzaWVuLCAyMzU4NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItNjAgICAoaGV4KQkJQUZSRUVZIEluYy4KKzAwMjI2MCAgICAgKGJhc2UgMTYpCQlBRlJFRVkgSW5jLgorCQkJCTZGLCBOby4yNDksIENoaWVuIEkgUm9hZAorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIENvdW50eSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLTYxICAgKGhleCkJCUZyb250aWVyIFNpbGljb24gTHRkCiswMDIyNjEgICAgIChiYXNlIDE2KQkJRnJvbnRpZXIgU2lsaWNvbiBMdGQKKwkJCQlHbGVuZWFnbGVzLCBUaGUgQmVsZnJ5CisJCQkJQ29sb25pYWwgV2F5CisJCQkJV2F0Zm9yZCBIZXJ0Zm9yZHNoaXJlIFdEMjQgNFdICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjItNjIgICAoaGV4KQkJQkVQIE1hcmluZQorMDAyMjYyICAgICAoYmFzZSAxNikJCUJFUCBNYXJpbmUKKwkJCQkxMyBUYXJuZGFsZSBHcm92ZSBBbGJhbnkKKwkJCQlOb3J0aCBTaG9yZQorCQkJCUF1Y2tsYW5kICAwNjMyCisJCQkJTkVXIFpFQUxBTkQKKworMDAtMjItNjMgICAoaGV4KQkJS29vcyBUZWNobmljYWwgU2VydmljZXMsIEluYy4KKzAwMjI2MyAgICAgKGJhc2UgMTYpCQlLb29zIFRlY2huaWNhbCBTZXJ2aWNlcywgSW5jLgorCQkJCTEwMjUgR3JlZW53b29kIEJsdmQuCisJCQkJU3VpdGUgMzkxCisJCQkJTGFrZSBNYXJ5IEZMIDMyNzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi02NCAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMjI2NCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAyCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNjUgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjI2NSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjItNjYgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjI2NiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjItNjcgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDIyNjcgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJMjIyMSBMYWtlc2lkZSBCbHZkCisJCQkJUmljaGFyZHNvbiBUZXhhcyA3NTA4Mi00Mzk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi02OCAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorMDAyMjY4ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCisJCQkJNjYsIENodW5nIFNoYW4gUmQuVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItNjkgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMjI2OSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCTY2LCBDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLTZBICAgKGhleCkJCUhvbmV5d2VsbAorMDAyMjZBICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbAorCQkJCTg4NDAgRXZlcmdyZWVuIEJsdmQuCisJCQkJTWlubmVhcG9saXMgTU4gNTU0MzMtNjA0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNkIgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCiswMDIyNkIgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi02QyAgIChoZXgpCQlMaW5rU3ByaXRlIFRlY2hub2xvZ2llcywgSW5jLgorMDAyMjZDICAgICAoYmFzZSAxNikJCUxpbmtTcHJpdGUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTQxMCBDYW5ub24gTW91bnRhaW4gRHIKKwkJCQlMb25nbW9udCBDTyA4MDUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNkQgICAoaGV4KQkJU2hlbnpoZW4gR0lFQyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMjI2RCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBHSUVDIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTI0L0YsIFhpTmlhbiBDZW50ZXIsIFNoZW5OYW4gUm9hZCA2MDIxIywgRnV0aWFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIFByb3ZpbmNlIDUxODA0MAorCQkJCUNISU5BCisKKzAwLTIyLTZFICAgKGhleCkJCUdvd2VsbCBFbGVjdHJvbmljIExpbWl0ZWQKKzAwMjI2RSAgICAgKGJhc2UgMTYpCQlHb3dlbGwgRWxlY3Ryb25pYyBMaW1pdGVkCisJCQkJUm9vbSAzNjAxICwzNiBGbG9vcixHb2xkZW4gQ2VudHJhbCBUb3dlcixKaW50aWFuIFJvYWQsRnV0aWFuIENlbnRyYWwgRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDUxODA0OAorCQkJCUNISU5BCisKKzAwLTIyLTZGICAgKGhleCkJCTNvbmVkYXRhIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKzAwMjI2RiAgICAgKGJhc2UgMTYpCQkzb25lZGF0YSBUZWNobm9sb2d5IENvLiBMdGQuCisJCQkJMy9GLCBCLzIsIEppdXhpYW5nbGluZyBJbmR1c3RyaWFsIERpc3RyaWN0LCBYaWxpIFRvd24sIE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NQorCQkJCUNISU5BCisKKzAwLTIyLTcwICAgKGhleCkJCUFCSyBOb3J0aCBBbWVyaWNhLCBMTEMKKzAwMjI3MCAgICAgKGJhc2UgMTYpCQlBQksgTm9ydGggQW1lcmljYSwgTExDCisJCQkJNDQwIE5vcnRoIFdvbGZlIFJkLgorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNzEgICAoaGV4KQkJSmFnZXIgQ29tcHV0ZXJnZXN0ZXVlcnRlIE1lc3N0ZWNobmlrIEdtYkgKKzAwMjI3MSAgICAgKGJhc2UgMTYpCQlKYWdlciBDb21wdXRlcmdlc3RldWVydGUgTWVzc3RlY2huaWsgR21iSAorCQkJCVJoZWluc3RyYXNzZSAyLTQKKwkJCQlMb3JzY2ggSGVzc2VuIDY0NjUzCisJCQkJR0VSTUFOWQorCiswMC0yMi03MiAgIChoZXgpCQlBbWVyaWNhbiBNaWNyby1GdWVsIERldmljZSBDb3JwLgorMDAyMjcyICAgICAoYmFzZSAxNikJCUFtZXJpY2FuIE1pY3JvLUZ1ZWwgRGV2aWNlIENvcnAuCisJCQkJMjE4MSBCdWNoYW5hbiBMb29wCisJCQkJRmVybmRhbGUgV0EgOTgyNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTczICAgKGhleCkJCVRlY2h3YXkKKzAwMjI3MyAgICAgKGJhc2UgMTYpCQlUZWNod2F5CisJCQkJUm0gMTAwMiwgRGFlaHl1biBUZWNobm8gV29ybGQgQmQsCisJCQkJMTc0LCBPanVuLURvbmcsCisJCQkJVWl3YW5nLVNpLCBLeXVuZ2tpLURvIDQzNy04MjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItNzQgICAoaGV4KQkJRmFtaWx5UGhvbmUgQUIKKzAwMjI3NCAgICAgKGJhc2UgMTYpCQlGYW1pbHlQaG9uZSBBQgorCQkJCUFuY2thcmdyaXBzZ2F0YW4gMworCQkJCU1hbG1vICAyMTExOQorCQkJCVNXRURFTgorCiswMC0yMi03NSAgIChoZXgpCQlCZWxraW4gSW50ZXJuYXRpb25hbCwgSW5jLgorMDAyMjc1ICAgICAoYmFzZSAxNikJCUJlbGtpbiBJbnRlcm5hdGlvbmFsLCBJbmMuCisJCQkJNTAxIFcuIFdhbG51dCBTdC4KKwkJCQlDb21wdG9uIENBLiA5MDIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNzYgICAoaGV4KQkJVHJpcGxlIEVZRSBCLlYuCiswMDIyNzYgICAgIChiYXNlIDE2KQkJVHJpcGxlIEVZRSBCLlYuCisJCQkJVmFhc3NlbnNld2VnIDcxCisJCQkJRW1zdCAgODE2NiBBVAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIyLTc3ICAgKGhleCkJCU5FQyBBdXN0cmFsaWEgUHR5IEx0ZAorMDAyMjc3ICAgICAoYmFzZSAxNikJCU5FQyBBdXN0cmFsaWEgUHR5IEx0ZAorCQkJCTY0OS02NTUgU3ByaW5ndmFsZSBSZAorCQkJCU11bGdyYXZlIFZpY3RvcmlhIDMxNzAKKwkJCQlBVVNUUkFMSUEKKworMDAtMjItNzggICAoaGV4KQkJU2hlbnpoZW4gIFRvbmdmYW5nIE11bHRpbWVkaWEgIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMjI3OCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiAgVG9uZ2ZhbmcgTXVsdGltZWRpYSAgVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTl0aCBGbG9vcixCdWlsZGluZyAjRCxUb25nZmFuZyBJbmZvcm1hdGlvbiBIYXJib3VyLEhpZ2gtdGVjaCBJbmR1c3RyaWFsIFBhcmssTGFuZ3NoYW4gUkQsIE5hblNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW5nIEd1YW5nRG9uZyA1MTgwNTgKKwkJCQlDSElOQQorCiswMC0yMi03OSAgIChoZXgpCQlOaXBwb24gQ29ubHV4IENvLiwgTHRkLgorMDAyMjc5ICAgICAoYmFzZSAxNikJCU5pcHBvbiBDb25sdXggQ28uLCBMdGQuCisJCQkJNS0zLTgsIENoaXlvZGEKKwkJCQlTYWthZG8tc2hpIFNhaXRhbWEgMzUwLTAyMTQKKwkJCQlKQVBBTgorCiswMC0yMi03QSAgIChoZXgpCQlUZWxlY29tIERlc2lnbgorMDAyMjdBICAgICAoYmFzZSAxNikJCVRlbGVjb20gRGVzaWduCisJCQkJWmEgUmVtb3JhCisJCQkJVm9pZSBSb21haW5lCisJCQkJMzMxNzAgR3JhZGlnbmFuIAorCQkJCUZSQU5DRQorCiswMC0yMi03QiAgIChoZXgpCQlBcG9nZWUgTGFicywgSW5jLgorMDAyMjdCICAgICAoYmFzZSAxNikJCUFwb2dlZSBMYWJzLCBJbmMuCisJCQkJMjEwIFMuIDNyZCBTdC4KKwkJCQlOb3J0aCBXYWxlcyBQQSAxOTQ1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItN0MgICAoaGV4KQkJV29vcmkgU01UIENvLixsdGQKKzAwMjI3QyAgICAgKGJhc2UgMTYpCQlXb29yaSBTTVQgQ28uLGx0ZAorCQkJCTY0OS0yLFN1d29sYW0tcmksU2VvdGFuLU15dW4KKwkJCQlQeW9uZ3RhZWsgS3lvbmdnaS1EbyA0NTEtODUyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIyLTdEICAgKGhleCkJCVlFIERBVEEgSU5DLgorMDAyMjdEICAgICAoYmFzZSAxNikJCVlFIERBVEEgSU5DLgorCQkJCTE4MiBTaGlua28KKwkJCQlJcnVtYSBTYWl0YW1hIDM1OC0wMDU1CisJCQkJSkFQQU4KKworMDAtMjItN0UgICAoaGV4KQkJQ2hlbmdkdSAzMEthaXRpYW4gQ29tbXVuaWNhdGlvbiBJbmR1c3RyeSBDby5MdGQKKzAwMjI3RSAgICAgKGJhc2UgMTYpCQlDaGVuZ2R1IDMwS2FpdGlhbiBDb21tdW5pY2F0aW9uIEluZHVzdHJ5IENvLkx0ZAorCQkJCU5vLjYgQ2h1YW5neWUgUm9hZAorCQkJCUNoZW5nZHUgU2ljaHVhbiA2MTAwNDEKKwkJCQlDSElOQQorCiswMC0yMi03RiAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzAwMjI3RiAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi04MCAgIChoZXgpCQlBMkIgRWxlY3Ryb25pY3MgQUIKKzAwMjI4MCAgICAgKGJhc2UgMTYpCQlBMkIgRWxlY3Ryb25pY3MgQUIKKwkJCQlCb3ggMTQKKwkJCQlNb3RhbGEgIFMtNTkxIDIxCisJCQkJU1dFREVOCisKKzAwLTIyLTgxICAgKGhleCkJCURhaW50cmVlIE5ldHdvcmtzIEluYworMDAyMjgxICAgICAoYmFzZSAxNikJCURhaW50cmVlIE5ldHdvcmtzIEluYworCQkJCTMzNDAgV2FsbnV0IEF2ZQorCQkJCVN1aXRlIDI3NQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTgyICAgKGhleCkJCTgwODYgTGltaXRlZAorMDAyMjgyICAgICAoYmFzZSAxNikJCTgwODYgTGltaXRlZAorCQkJCTE3IExvd2ZpZWxkIExhbmUKKwkJCQlCYWxkZXJ0b24KKwkJCQlOZXdhcmsgTm90dHMgTkcyNCAzSEoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMi04MyAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCiswMDIyODMgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTg0ICAgKGhleCkJCURFU0FZIEEmViBTQ0lFTkNFIEFORCBURUNITk9MT0dZIENPLixMVEQKKzAwMjI4NCAgICAgKGJhc2UgMTYpCQlERVNBWSBBJlYgU0NJRU5DRSBBTkQgVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJREVTQVkgM3JkIFpvbmUsQ2hlbmppYW5nLAorCQkJCUh1aXpob3UgR3Vhbmdkb25nIDUxNjIyOQorCQkJCUNISU5BCisKKzAwLTIyLTg1ICAgKGhleCkJCU5PTVVTIENPTU0gU1lTVEVNUworMDAyMjg1ICAgICAoYmFzZSAxNikJCU5PTVVTIENPTU0gU1lTVEVNUworCQkJCTYwMSwgR3VuamFuIFRvd2VyLAorCQkJCU9mZi4gQWxlbWJpYyBHb3J3YSBSb2FkCisJCQkJQmFyb2RhIEd1amFyYXQgMzkwMDIzCisJCQkJSU5ESUEKKworMDAtMjItODYgICAoaGV4KQkJQVNUUk9OCiswMDIyODYgICAgIChiYXNlIDE2KQkJQVNUUk9OCisJCQkJT3VkZWhvb2dldmVlbnNlZGlqayA0CisJCQkJRHdpbmdlbG9vIERyZW50aGUgNzk5MVBECisJCQkJTkVUSEVSTEFORFMKKworMDAtMjItODcgICAoaGV4KQkJVGl0YW4gV2lyZWxlc3MgTExDCiswMDIyODcgICAgIChiYXNlIDE2KQkJVGl0YW4gV2lyZWxlc3MgTExDCisJCQkJMzkxNCBHYXR0aXMgU2Nob29sIFJkCisJCQkJU3VpdGUgMTAyCisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItODggICAoaGV4KQkJU2FncmFkLCBJbmMuCiswMDIyODggICAgIChiYXNlIDE2KQkJU2FncmFkLCBJbmMuCisJCQkJNzUxIE5vcnRoIERyaXZlCisJCQkJTWVsYm91cm5lIEZMIDMyOTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi04OSAgIChoZXgpCQlPcHRvc2VjdXJpdHkgSW5jLgorMDAyMjg5ICAgICAoYmFzZSAxNikJCU9wdG9zZWN1cml0eSBJbmMuCisJCQkJNTA1LCBCb3VsLiBkdSBQYXJjIFRlY2hub2xvZ2lxdWUKKwkJCQlRdWViZWMgIEcxUCA0UzkKKwkJCQlDQU5BREEKKworMDAtMjItOEEgICAoaGV4KQkJVGVyYXRyb25payBlbGVrdHJvbmlzY2hlIHN5c3RlbWUgZ21iaAorMDAyMjhBICAgICAoYmFzZSAxNikJCVRlcmF0cm9uaWsgZWxla3Ryb25pc2NoZSBzeXN0ZW1lIGdtYmgKKwkJCQlLYXJsLVVscmljaC1TdHJhc3NlIDEKKwkJCQlHcm9zcy1VbXN0YWR0ICBELTY0ODIzCisJCQkJR0VSTUFOWQorCiswMC0yMi04QiAgIChoZXgpCQlLZW5zaW5ndG9uIENvbXB1dGVyIFByb2R1Y3RzIEdyb3VwCiswMDIyOEIgICAgIChiYXNlIDE2KQkJS2Vuc2luZ3RvbiBDb21wdXRlciBQcm9kdWN0cyBHcm91cAorCQkJCTMzMyBUd2luIERvbHBoaW4gRHIuCisJCQkJU2l4dGggRmxvb3IKKwkJCQlSZWR3b29kIFNob3JlcyBDQSA5NDA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItOEMgICAoaGV4KQkJUGhvdG9uIEV1cm9wZSBHbWJICiswMDIyOEMgICAgIChiYXNlIDE2KQkJUGhvdG9uIEV1cm9wZSBHbWJICisJCQkJSnVsaWNoZXIgU3RyYXNzZSAzNzYKKwkJCQlBYWNoZW4gTm9yZHJoZWluLVdlc3RmYWxlbiA1MjA3MAorCQkJCUdFUk1BTlkKKworMDAtMjItOEQgICAoaGV4KQkJR0JTIExhYm9yYXRvcmllcyBMTEMKKzAwMjI4RCAgICAgKGJhc2UgMTYpCQlHQlMgTGFib3JhdG9yaWVzIExMQworCQkJCTIzMjUgRHVsbGVzIENvcm5lciBCbHZkCisJCQkJSGVybmRvbiBWQSAyMDE3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItOEUgICAoaGV4KQkJVFYtTlVNRVJJQworMDAyMjhFICAgICAoYmFzZSAxNikJCVRWLU5VTUVSSUMKKwkJCQkyNC0yNiBydWUgTG91aXMgQXJtYW5kCisJCQkJUGFyaXMgIDc1MDE1CisJCQkJRlJBTkNFCisKKzAwLTIyLThGICAgKGhleCkJCUNOUlMKKzAwMjI4RiAgICAgKGJhc2UgMTYpCQlDTlJTCisJCQkJTVJDVAorCQkJCTEgcGxhY2UgQXJpc3RpZGUgQnJpYW5kCisJCQkJTWV1ZG9uIElsZSBkZSBGcmFuY2UgOTIxOTUKKwkJCQlGUkFOQ0UKKworMDAtMjItOTAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMjkwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTkxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjI5MSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi05MiAgIChoZXgpCQlDaW5ldGFsCiswMDIyOTIgICAgIChiYXNlIDE2KQkJQ2luZXRhbAorCQkJCTg2NTEgQ2FzdGxlIFBhcmsKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyNTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTkzICAgKGhleCkJCVpURSBDb3Jwb3JhdGlvbgorMDAyMjkzICAgICAoYmFzZSAxNikJCVpURSBDb3Jwb3JhdGlvbgorCQkJCTEyL0YgenRlIHBsYXphLGtlamkgUm9hZCBTb3V0aCxIaS1UZWNoIEluZHVzdHJpYWwgUGFyayxOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTIyLTk0ICAgKGhleCkJCUt5b2NlcmEgQ29ycG9yYXRpb24KKzAwMjI5NCAgICAgKGJhc2UgMTYpCQlLeW9jZXJhIENvcnBvcmF0aW9uCisJCQkJMi0xLTEsS2FnYWhhcmEKKwkJCQlUc3V6dWtpLWt1CisJCQkJWW9rb2hhbWEtc2hpIEthbmFnYXdhIDIyNC04NTAyCisJCQkJSkFQQU4KKworMDAtMjItOTUgICAoaGV4KQkJU0dNIFRlY2hub2xvZ3kgZm9yIGxpZ2h0aW5nIHNwYQorMDAyMjk1ICAgICAoYmFzZSAxNikJCVNHTSBUZWNobm9sb2d5IGZvciBsaWdodGluZyBzcGEKKwkJCQlWaWEgUGlvIExhIFRvcnJlIDEKKwkJCQlUYXZ1bGxpYSBQVSA2MTAxMAorCQkJCUlUQUxZCisKKzAwLTIyLTk2ICAgKGhleCkJCUxpbm9XYXZlIENvcnBvcmF0aW9uCiswMDIyOTYgICAgIChiYXNlIDE2KQkJTGlub1dhdmUgQ29ycG9yYXRpb24KKwkJCQkxMDAxLTEwMSBDaGFtcGxhaW4gQXZlbnVlCisJCQkJQnVybGluZ3RvbiBPbmF0YXJpbyBMN0wgNVo0CisJCQkJQ0FOQURBCisKKzAwLTIyLTk3ICAgKGhleCkJCVhNT1MgU2VtaWNvbmR1Y3RvcgorMDAyMjk3ICAgICAoYmFzZSAxNikJCVhNT1MgU2VtaWNvbmR1Y3RvcgorCQkJCVZlbnR1cmVycyBIb3VzZQorCQkJCUtpbmcgU3RyZWV0CisJCQkJQnJpc3RvbCAgQlMxIDRQQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIyLTk4ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCiswMDIyOTggICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTa2FuZSAyMjE4OAorCQkJCVNXRURFTgorCiswMC0yMi05OSAgIChoZXgpCQlTZWFNaWNybyBJbmMuCiswMDIyOTkgICAgIChiYXNlIDE2KQkJU2VhTWljcm8gSW5jLgorCQkJCTQ2NzcgT2xkIElyb25zaWRlcyBEci4sCisJCQkJU3VpdGUgMzEwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTlBICAgKGhleCkJCUxhc3RhciwgSW5jLgorMDAyMjlBICAgICAoYmFzZSAxNikJCUxhc3RhciwgSW5jLgorCQkJCTM1NTUgS2V0dGVyaW5nIEJMVkQuCisJCQkJTW9yYWluZSBPaGlvIDQ1NDM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi05QiAgIChoZXgpCQlBdmVyTG9naWMgVGVjaG5vbG9naWVzLCBJbmMuCiswMDIyOUIgICAgIChiYXNlIDE2KQkJQXZlckxvZ2ljIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTdGLTIsIE5vLjIsIExhbmUgMjU4LCBSdWkgR3VhbmcgUmQuLCBOZWktSHUgRGlzdC4sCisJCQkJVGFpcGVpIFRhaXdhbiAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLTlDICAgKGhleCkJCVZlcmlzbW8gTmV0d29ya3MgSW5jCiswMDIyOUMgICAgIChiYXNlIDE2KQkJVmVyaXNtbyBOZXR3b3JrcyBJbmMKKwkJCQkyOTUgQmVybmFuZG8gQXZlbnVlCisJCQkJU3RlICMgMzAwCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItOUQgICAoaGV4KQkJUFlVTkctSFdBIElORC5DTy4sTFRECiswMDIyOUQgICAgIChiYXNlIDE2KQkJUFlVTkctSFdBIElORC5DTy4sTFRECisJCQkJMjMwLTEKKwkJCQlEdWNrd29vLVJJLCBQYWx0YW4tTVlVTgorCQkJCUhXQVNVTkctU0kgS1lVTkdHSS1ETyA0NDUtOTEyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIyLTlFICAgKGhleCkJCVNvY2lhbCBBaWQgUmVzZWFyY2ggQ28uLCBMdGQuCiswMDIyOUUgICAgIChiYXNlIDE2KQkJU29jaWFsIEFpZCBSZXNlYXJjaCBDby4sIEx0ZC4KKwkJCQlTb3V0aCAzLCBXZXN0IDEwLCBDaHVvLWt1CisJCQkJN0YsIEZ1a3V5YW1hLU1pbmFtaS0zanlvdSBCdWlsZC4KKwkJCQlTYXBwb3JvIEhva2thaWRvIDA2MC0wMDYzCisJCQkJSkFQQU4KKworMDAtMjItOUYgICAoaGV4KQkJU2Vuc3lzIFRyYWZmaWMgQUIKKzAwMjI5RiAgICAgKGJhc2UgMTYpCQlTZW5zeXMgVHJhZmZpYyBBQgorCQkJCVNsb3R0c2dhdGFuIDE0CisJCQkJQm94IDIxNzQKKwkJCQlKb25rb3BpbmcgU21hbGFuZCA1NTMyMgorCQkJCVNXRURFTgorCiswMC0yMi1BMCAgIChoZXgpCQlEZWxwaGkgQ29ycG9yYXRpb24KKzAwMjJBMCAgICAgKGJhc2UgMTYpCQlEZWxwaGkgQ29ycG9yYXRpb24KKwkJCQlNL0MtNDgwLTQwNS0yNTUKKwkJCQk1ODIwIERlbHBoaSBEcml2ZQorCQkJCVRyb3kgTUkgNDg0NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUExICAgKGhleCkJCUh1YXdlaSBTeW1hbnRlYyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzAwMjJBMSAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgU3ltYW50ZWMgVGVjaG5vbG9naWVzIENvLixMdGQuCisJCQkJQnVpbGRpbmcgMSxUaGUgV2VzdCBab25lIFNjaWVuY2UgUGFyayBvZiBVRVNUQyxOby44OCxUaWFuY2hlbiBSb2FkCisJCQkJQ2hlbmdkdSBTaWNodWFuIDYxMTczMQorCQkJCUNISU5BCisKKzAwLTIyLUEyICAgKGhleCkJCVh0cmFtdXMgVGVjaG5vbG9naWVzCiswMDIyQTIgICAgIChiYXNlIDE2KQkJWHRyYW11cyBUZWNobm9sb2dpZXMKKwkJCQk1dGggRmwuLCBOby4gMTAyLCBMaWRlIFN0LiwKKwkJCQlaaG9uZ2hlIENpdHkgVGFpcGVpIENvdW50eSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLUEzICAgKGhleCkJCUNhbGlmb3JuaWEgRWFzdGVybiBMYWJvcmF0b3JpZXMKKzAwMjJBMyAgICAgKGJhc2UgMTYpCQlDYWxpZm9ybmlhIEVhc3Rlcm4gTGFib3JhdG9yaWVzCisJCQkJNDU5MCBQYXRyaWNrIEhlbnJ5IERyLgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1BNCAgIChoZXgpCQkyV2lyZQorMDAyMkE0ICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQTUgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMjJBNSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQTYgICAoaGV4KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50IEFtZXJpY2EKKzAwMjJBNiAgICAgKGJhc2UgMTYpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgQW1lcmljYQorCQkJCTkxOSBFYXN0IEhpbGxzZGFsZSBCbHZkCisJCQkJRm9zdGVyIENpdHkgQ2FsaWZvcm5pYSA5NDQwNC0yMTc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1BNyAgIChoZXgpCQlUeWNvIEVsZWN0cm9uaWNzIEFNUCBHbWJICiswMDIyQTcgICAgIChiYXNlIDE2KQkJVHljbyBFbGVjdHJvbmljcyBBTVAgR21iSAorCQkJCUFtcGVyZXN0ci4gMTItMTQKKwkJCQlCZW5zaGVpbSBIZXNzZW4gNjQ2MjUKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLUE4ICAgKGhleCkJCU91bWFuIEZpbmxhbmQgT3kKKzAwMjJBOCAgICAgKGJhc2UgMTYpCQlPdW1hbiBGaW5sYW5kIE95CisJCQkJVm9pbWF0aWUgNgorCQkJCUtlbXBlbGUgIEZJTi05MDQ0MAorCQkJCUZJTkxBTkQKKworMDAtMjItQTkgICAoaGV4KQkJTEcgRWxlY3Ryb25pY3MgSW5jCiswMDIyQTkgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MgSW5jCisJCQkJNjAtMzksR2FzYW4tZG9uZworCQkJCUd1bWNob24tZ3UKKwkJCQlTZW91bCAgMTUzLTAyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMi1BQSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMjJBQSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yMi1BQiAgIChoZXgpCQlTaGVuemhlbiBUdXJib3NpZ2h0IFRlY2hub2xvZ3kgTHRkCiswMDIyQUIgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gVHVyYm9zaWdodCBUZWNobm9sb2d5IEx0ZAorCQkJCVVuaXQgQy04QSxTaGVubmFuIEdhcmRlbiBCbGRnLEhpZ2h0ZWNoIFBhcmssTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0yMi1BQyAgIChoZXgpCQlIYW5nemhvdSBTaXl1YW4gVGVjaC4gQ28uLCBMdGQKKzAwMjJBQyAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBTaXl1YW4gVGVjaC4gQ28uLCBMdGQKKwkJCQk1IEYsIFRvd2VyIEIsIE5vLiAzNywgWGlhbmcgWXVhbiBSb2FkCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworMDAtMjItQUQgICAoaGV4KQkJVEVMRVNJUyBURUNITk9MT0dJRVMsIElOQy4KKzAwMjJBRCAgICAgKGJhc2UgMTYpCQlURUxFU0lTIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTI4MTgxIFJpdmVyIERyaXZlCisJCQkJQ2lyY2xldmlsbGUgT2hpbyA0MzExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQUUgICAoaGV4KQkJTWF0dGVsIEluYy4KKzAwMjJBRSAgICAgKGJhc2UgMTYpCQlNYXR0ZWwgSW5jLgorCQkJCTMzMyBDb250aW5lbnRhbCBCbHZkLgorCQkJCUVsIFNlZ3VuZG8gQ0EgOTAyNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUFGICAgKGhleCkJCVNhZmV0eSBWaXNpb24KKzAwMjJBRiAgICAgKGJhc2UgMTYpCQlTYWZldHkgVmlzaW9uCisJCQkJNjEwMCBXLiBTYW0gSG91c3RvbiBQa3d5LiBOb3J0aAorCQkJCUhvdXN0b24gVGV4YXMgNzcwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUIwICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAyMkIwICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5vLjI4OSwgU2luaHUgM3JkIFJELiwKKwkJCQlOZWlodSBEaXN0cmljdCwgVGFpcGVpIENpdHkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi1CMSAgIChoZXgpCQlFbGJpdCBTeXN0ZW1zCiswMDIyQjEgICAgIChiYXNlIDE2KQkJRWxiaXQgU3lzdGVtcworCQkJCVBPQiA1MzkKKwkJCQlIYWlmYSAgMzEwNTMKKwkJCQlJU1JBRUwKKworMDAtMjItQjIgICAoaGV4KQkJNFJGIENvbW11bmljYXRpb25zIEx0ZAorMDAyMkIyICAgICAoYmFzZSAxNikJCTRSRiBDb21tdW5pY2F0aW9ucyBMdGQKKwkJCQkyNiBHbG92ZXIgU3RyZWV0CisJCQkJTmdhdXJhbmdhIFdlbGxpbmd0b24gNjAzNQorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTIyLUIzICAgKGhleCkJCVNlaSBTLnAuQS4KKzAwMjJCMyAgICAgKGJhc2UgMTYpCQlTZWkgUy5wLkEuCisJCQkJVmlhIFJ1ZmZpbGxpLCAxCisJCQkJQ3Vybm8gQmVyZ2FtbyAyNDAzNQorCQkJCUlUQUxZCisKKzAwLTIyLUI0ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIyQjQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gVS5TLiBIaWdod2F5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElsbGlub2lzIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1CNSAgIChoZXgpCQlOT1ZJVEEKKzAwMjJCNSAgICAgKGJhc2UgMTYpCQlOT1ZJVEEKKwkJCQkzRjMwMSxOYW1zdW5nIEIvRCAzNDAtMzAKKwkJCQlHYXNhbi1Eb25nCisJCQkJR2V1bWNoZW9uLUd1IFNlb3VsIDE1My03ODIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItQjYgICAoaGV4KQkJU3VwZXJmbG93IFRlY2hub2xvZ2llcyBHcm91cAorMDAyMkI2ICAgICAoYmFzZSAxNikJCVN1cGVyZmxvdyBUZWNobm9sb2dpZXMgR3JvdXAKKwkJCQk0MDYwIERpeG9uIFN0cmVldAorCQkJCURlcyBNb2luZXMgSUEgNTAyNjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUI3ICAgKGhleCkJCUdTUyBHcnVuZGlnIFNBVC1TeXN0ZW1zIEdtYkgKKzAwMjJCNyAgICAgKGJhc2UgMTYpCQlHU1MgR3J1bmRpZyBTQVQtU3lzdGVtcyBHbWJICisJCQkJQmV1dGhlcm5lciBTdHJhc3NlIDQzCisJCQkJTnVlcm5iZXJnIEJheWVybiA5MDQ3MQorCQkJCUdFUk1BTlkKKworMDAtMjItQjggICAoaGV4KQkJTm9yY290dAorMDAyMkI4ICAgICAoYmFzZSAxNikJCU5vcmNvdHQKKwkJCQlCcm9va2ZpZWxkIEhvdXNlCisJCQkJR3JpbXNkaXRjaCBMYW5lIG9mZiBUYXJwb3JsZXkgUm9hZAorCQkJCU5vcmNvdHQgQnJvb2sgQ2hlc2hpcmUgV0E0IDRFQQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIyLUI5ICAgKGhleCkJCUFuYWxvZ2l4IFNlbWluY29uZHVjdG9yLCBJbmMKKzAwMjJCOSAgICAgKGJhc2UgMTYpCQlBbmFsb2dpeCBTZW1pbmNvbmR1Y3RvciwgSW5jCisJCQkJMzIxMSBTY290dCBCbHZkLiwgU3VpdGUgMTAwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUJBICAgKGhleCkJCUhVVEggRWxla3Ryb25payBTeXN0ZW1lIEdtYkgKKzAwMjJCQSAgICAgKGJhc2UgMTYpCQlIVVRIIEVsZWt0cm9uaWsgU3lzdGVtZSBHbWJICisJCQkJRWNodGVybmFjaGVyIFN0ci4gMTAKKwkJCQlUcm9pc2RvcmYtU3BpY2ggTlJXIDUzODQyCisJCQkJR0VSTUFOWQorCiswMC0yMi1CQiAgIChoZXgpCQliZXllcmR5bmFtaWMgR21iSCAmIENvLiBLRworMDAyMkJCICAgICAoYmFzZSAxNikJCWJleWVyZHluYW1pYyBHbWJIICYgQ28uIEtHCisJCQkJVGhlcmVzaWVuc3RyLiA4CisJCQkJSGVpbGJyb25uICA3NDA3MgorCQkJCUdFUk1BTlkKKworMDAtMjItQkMgICAoaGV4KQkJSkRTVSBGcmFuY2UgU0FTCiswMDIyQkMgICAgIChiYXNlIDE2KQkJSkRTVSBGcmFuY2UgU0FTCisJCQkJMzQgcnVlIE5lY2tlcgorCQkJCVNBSU5UIEVUSUVOTkUgTE9JUkUgNDIwMDAKKwkJCQlGUkFOQ0UKKworMDAtMjItQkQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMkJEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUJFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjJCRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1CRiAgIChoZXgpCQlTaWVBbXAgR3JvdXAgb2YgQ29tcGFuaWVzCiswMDIyQkYgICAgIChiYXNlIDE2KQkJU2llQW1wIEdyb3VwIG9mIENvbXBhbmllcworCQkJCTIgQW5nIE1vIEtpbyBTdHJlZXQgNjQKKwkJCQlBbmcgTW8gS2lvIEluZHVzdHJpYWwgUGFyayAzLCBVbml0IDAyLTAxRCBFY29uIEJ1aWxkaW5nCisJCQkJU2luZ2Fwb3JlICA1NjkwODQKKwkJCQlTSU5HQVBPUkUKKworMDAtMjItQzAgICAoaGV4KQkJU2hlbnpoZW4gRm9yY2VsaW5rIEVsZWN0cm9uaWMgQ28sIEx0ZAorMDAyMkMwICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEZvcmNlbGluayBFbGVjdHJvbmljIENvLCBMdGQKKwkJCQkybmQgYW5kIDNyZCBmbG9vciwgSGFzc2UgbWFudWZhY3R1cmUgYnVpbGRpbmcsIEhhc2VlIGluZHVzdHJpYWwgcGFyaworCQkJCUJhbnh1ZWdhbmcgaW5kdXN0cmlhbCBhcmVhLCBMb25nZ2FuZyBkaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMTIKKwkJCQlDSElOQQorCiswMC0yMi1DMSAgIChoZXgpCQlBY3RpdmUgU3RvcmFnZSBJbmMuCiswMDIyQzEgICAgIChiYXNlIDE2KQkJQWN0aXZlIFN0b3JhZ2UgSW5jLgorCQkJCTIyOTUgSmVmZmVyc29uIFN0cmVldAorCQkJCVRvcnJhbmNlIENBIDkwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1DMiAgIChoZXgpCQlQcm92aWV3IEVsZXRyb25pY2EgZG8gQnJhc2lsIExUREEKKzAwMjJDMiAgICAgKGJhc2UgMTYpCQlQcm92aWV3IEVsZXRyb25pY2EgZG8gQnJhc2lsIExUREEKKwkJCQlSLiBBY2FyYSwgMjAzIC0gRGlzdHJpdG8gSW5kdXN0cmlhbAorCQkJCU1hbmF1cyBBbWF6b25hcyA2OTA3NS0wMzAKKwkJCQlCUkFaSUwKKworMDAtMjItQzMgICAoaGV4KQkJWmVlcG9ydCBUZWNobm9sb2d5IEluYy4KKzAwMjJDMyAgICAgKGJhc2UgMTYpCQlaZWVwb3J0IFRlY2hub2xvZ3kgSW5jLgorCQkJCTFGLE5vMjMxLFhpYW56aGVuZyAybmQgUmQuCisJCQkJSHNpbkNodSBUYWl3YW4gMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi1DNCAgIChoZXgpCQllcHJvIEdtYkgKKzAwMjJDNCAgICAgKGJhc2UgMTYpCQllcHJvIEdtYkgKKwkJCQlKb2Via2Vzd2VnIDMKKwkJCQlHcm9uYXUgTlJXIDQ4NTk5CisJCQkJR0VSTUFOWQorCiswMC0yMi1DNSAgIChoZXgpCQlJTkZPUlNPTiBDbyxMdGQuCiswMDIyQzUgICAgIChiYXNlIDE2KQkJSU5GT1JTT04gQ28sTHRkLgorCQkJCVJvb20gNzA0LFRvd2VyIEIxLCBDaGFuZ1l1YW5UaWFuRGkgUGxhemEKKwkJCQlTdVpob3UgU3RyZWV0LCBIYWlEaWFuIERpc3RyaWN0CisJCQkJQmVpSmluZyBDaXR5ICAxMDAwODAKKwkJCQlDSElOQQorCiswMC0yMi1DNiAgIChoZXgpCQlTdXR1cyBJbmMKKzAwMjJDNiAgICAgKGJhc2UgMTYpCQlTdXR1cyBJbmMKKwkJCQkzMDEtMzk5OSBIZW5uaW5nIERyaXZlCisJCQkJQnVybmFieSBCcml0aXNoIENvbHVtYmlhIFY1QyA2UDkKKwkJCQlDQU5BREEKKworMDAtMjItQzcgICAoaGV4KQkJU0VHR0VSIE1pY3JvY29udHJvbGxlciBHbWJIICYgQ28uIEtHCiswMDIyQzcgICAgIChiYXNlIDE2KQkJU0VHR0VSIE1pY3JvY29udHJvbGxlciBHbWJIICYgQ28uIEtHCisJCQkJSW4gZGVuIFdlaWRlbiAxMQorCQkJCUhpbGRlbiBOUlcgNDA3MjEKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLUM4ICAgKGhleCkJCUFwcGxpZWQgSW5zdHJ1bWVudHMKKzAwMjJDOCAgICAgKGJhc2UgMTYpCQlBcHBsaWVkIEluc3RydW1lbnRzCisJCQkJRWRpc29ud2VnIDM5ZAorCQkJCVZsaXNzaW5nZW4gWmVlbGFuZCBOTC00MzgyTlYKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMi1DOSAgIChoZXgpCQlMZW5vcmQsIEJhdWVyICYgQ28gR21iSAorMDAyMkM5ICAgICAoYmFzZSAxNikJCUxlbm9yZCwgQmF1ZXIgJiBDbyBHbWJICisJCQkJRG9obGVuc3RyIDMyCisJCQkJT2JlcmhhdXNlbiBOUlcgNDYxNDUKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLUNBICAgKGhleCkJCUFudml6IEJpb21ldHJpYyBUZWNoLiBDby4sIEx0ZC4KKzAwMjJDQSAgICAgKGJhc2UgMTYpCQlBbnZpeiBCaW9tZXRyaWMgVGVjaC4gQ28uLCBMdGQuCisJCQkJNXRoIEZsb29yLCA0Mjk5IEppbmR1IFJvYWQsCisJCQkJU2hhbmdoYWkgIDIwMTEwOAorCQkJCUNISU5BCisKKzAwLTIyLUNCICAgKGhleCkJCUlPTk9ERVMgSW5jLgorMDAyMkNCICAgICAoYmFzZSAxNikJCUlPTk9ERVMgSW5jLgorCQkJCTE1NTUgQXZlbmlyCisJCQkJU3VpdGUgMTAzCisJCQkJTGF2YWwgUXVlYmVjIEg3UzJONQorCQkJCUNBTkFEQQorCiswMC0yMi1DQyAgIChoZXgpCQlTY2lMb2csIEluYy4KKzAwMjJDQyAgICAgKGJhc2UgMTYpCQlTY2lMb2csIEluYy4KKwkJCQk4ODQ1IFNvdXRoIEdyZWVudmlldyBEcml2ZQorCQkJCVN1aXRlIDQKKwkJCQlNaWRkbGV0b24gV2lzY29uc2luIDUzNTYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1DRCAgIChoZXgpCQlBcmVkIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDIyQ0QgICAgIChiYXNlIDE2KQkJQXJlZCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTZGLTggTm8uODMgU2VjLjEsIE5hbmthbiBSZC4gTHV6aHUgU2hpYW5nCisJCQkJVGFveXVhbiBDb3VudHkgVGFpd2FuIDMzODU5CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi1DRSAgIChoZXgpCQlDaXNjbywgU2VydmljZSBQcm92aWRlciBWaWRlbyBUZWNobm9sb2d5IEdyb3VwCiswMDIyQ0UgICAgIChiYXNlIDE2KQkJQ2lzY28sIFNlcnZpY2UgUHJvdmlkZXIgVmlkZW8gVGVjaG5vbG9neSBHcm91cAorCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1DRiAgIChoZXgpCQlQTEFORVggQ29tbXVuaWNhdGlvbnMgSU5DCiswMDIyQ0YgICAgIChiYXNlIDE2KQkJUExBTkVYIENvbW11bmljYXRpb25zIElOQworCQkJCTJGIEY/RU5JU1NBWSBFYmlzdSBCbGRnMy0xNi0zCisJCQkJU2hpYnV5YS1rdSBUb2t5byAxNTAtMDAxMQorCQkJCUpBUEFOCisKKzAwLTIyLUQwICAgKGhleCkJCVBvbGFyIEVsZWN0cm8gT3kKKzAwMjJEMCAgICAgKGJhc2UgMTYpCQlQb2xhciBFbGVjdHJvIE95CisJCQkJUHJvZmVzc29yaW50aWUgNQorCQkJCUtlbXBlbGUgT3VsdSA5MDQ0MAorCQkJCUZJTkxBTkQKKworMDAtMjItRDEgICAoaGV4KQkJQWxicmVjaHQgSnVuZyBHbWJIICYgQ28uIEtHCiswMDIyRDEgICAgIChiYXNlIDE2KQkJQWxicmVjaHQgSnVuZyBHbWJIICYgQ28uIEtHCisJCQkJVm9sbWVzdHJhc3NlIDEKKwkJCQlTY2hhbGtzbXVobGUgTlJXIDU4NTc5CisJCQkJR0VSTUFOWQorCiswMC0yMi1EMiAgIChoZXgpCQlBbGwgRWFydGggQ29tZXJjaW8gZGUgRWxldHJvbmljb3MgTFREQS4KKzAwMjJEMiAgICAgKGJhc2UgMTYpCQlBbGwgRWFydGggQ29tZXJjaW8gZGUgRWxldHJvbmljb3MgTFREQS4KKwkJCQlSdWEgQmVudG8gZGUgQXJydWRhIENhbWFyZ28KKwkJCQkyNzAgLSBKZC4gU2FudGFuYQorCQkJCUNhbXBpbmFzIFNhbyBQYXVsbyAxMzA4OC02NTAKKwkJCQlCUkFaSUwKKworMDAtMjItRDMgICAoaGV4KQkJSHViLVRlY2gKKzAwMjJEMyAgICAgKGJhc2UgMTYpCQlIdWItVGVjaAorCQkJCTc3LCBJbWFlLWRvbmcKKwkJCQlCdW5kYW5nLWd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8gNDYzLTgyOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMi1ENCAgIChoZXgpCQlDb21Xb3J0aCBDby4sIEx0ZC4KKzAwMjJENCAgICAgKGJhc2UgMTYpCQlDb21Xb3J0aCBDby4sIEx0ZC4KKwkJCQkyLTM1LTcgTmlzaGltYWdvbWUKKwkJCQlPaHRhLWt1IFRva3lvIDE0My0wMDI2CisJCQkJSkFQQU4KKworMDAtMjItRDUgICAoaGV4KQkJRWF0b24gQ29ycC4gRWxlY3RyaWNhbCBHcm91cCBEYXRhIENlbnRlciBTb2x1dGlvbnMgLSBQdWxpenppCiswMDIyRDUgICAgIChiYXNlIDE2KQkJRWF0b24gQ29ycC4gRWxlY3RyaWNhbCBHcm91cCBEYXRhIENlbnRlciBTb2x1dGlvbnMgLSBQdWxpenppCisJCQkJMzIwMCBTLiBTdXNhbiBTdC4KKwkJCQlTYW50YSBBbmEgQ0EgOTI3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUQ2ICAgKGhleCkJCUN5cGFrIEFCCiswMDIyRDYgICAgIChiYXNlIDE2KQkJQ3lwYWsgQUIKKwkJCQlQLk8uIEJPWCAyMzMyCisJCQkJRnVuY2tlbnMgR3JhbmQgMQorCQkJCVN0b2NraG9sbSAgMTAzIDE4CisJCQkJU1dFREVOCisKKzAwLTIyLUQ3ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyMkQ3ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTIyLUQ4ICAgKGhleCkJCVNoZW56aGVuIEdTVCBTZWN1cml0eSBhbmQgU2FmZXR5IFRlY2hub2xvZ3kgTGltaXRlZAorMDAyMkQ4ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEdTVCBTZWN1cml0eSBhbmQgU2FmZXR5IFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCVJvb20gNTAyLEJ1aWxkaW5nIDYgb2YgS3VwYWkgSW5mb21hdGlvbiBIYXJib3VyLAorCQkJCU5vLjIgTWVuZ3hpIFJvYWQsIEhOVElBKE5vcnRoIGFyZWEpLE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworMDAtMjItRDkgICAoaGV4KQkJRm9ydGV4IEluZHVzdHJpYWwgTHRkLgorMDAyMkQ5ICAgICAoYmFzZSAxNikJCUZvcnRleCBJbmR1c3RyaWFsIEx0ZC4KKwkJCQlGbGF0IDE2LCAxMiAvRi4sUGFjaWZpYyBUcmFkZSBDZW50cmUKKwkJCQkyIEthaSBIaW5nIFJvYWQsS293bG9vbiBCYXksCisJCQkJS293bG9vbiBIb25nIEtvbmcgODUyCisJCQkJQ0hJTkEKKworMDAtMjItREEgICAoaGV4KQkJQU5BVEVLLCBMTEMKKzAwMjJEQSAgICAgKGJhc2UgMTYpCQlBTkFURUssIExMQworCQkJCTMyMTkgRWFzdCBDYW1lbGJhY2sgUm9hZAorCQkJCVN1aXRlIDUwMgorCQkJCVBob2VuaXggQVogODUwMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLURCICAgKGhleCkJCVRyYW5zbG9naWMgQ29ycG9yYXRpb24KKzAwMjJEQiAgICAgKGJhc2UgMTYpCQlUcmFuc2xvZ2ljIENvcnBvcmF0aW9uCisJCQkJMTA4MjUgRS4gNDd0aCBBdmVudWUKKwkJCQlEZW52ZXIgQ29sb3JhZG8gODAyMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLURDICAgKGhleCkJCVZpZ2lsIEhlYWx0aCBTb2x1dGlvbnMgSW5jLgorMDAyMkRDICAgICAoYmFzZSAxNikJCVZpZ2lsIEhlYWx0aCBTb2x1dGlvbnMgSW5jLgorCQkJCTIxMDItNDQ2NCBNYXJraGFtIFN0CisJCQkJVmljdG9yaWEgQkMgVjhaIDdYOAorCQkJCUNBTkFEQQorCiswMC0yMi1ERCAgIChoZXgpCQlQcm90ZWN0YSBFbGVjdHJvbmljcyBMdGQKKzAwMjJERCAgICAgKGJhc2UgMTYpCQlQcm90ZWN0YSBFbGVjdHJvbmljcyBMdGQKKwkJCQlLZXNtYXJrIHN0ciA3L0EKKwkJCQlCdWRhcGVzdCBIdW5nYXJ5IDExNTgKKwkJCQlIVU5HQVJZCisKKzAwLTIyLURFICAgKGhleCkJCU9QUE8gRGlnaXRhbCwgSW5jLgorMDAyMkRFICAgICAoYmFzZSAxNikJCU9QUE8gRGlnaXRhbCwgSW5jLgorCQkJCTI2MjlCIFRlcm1pbmFsIEJsdmQKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1ERiAgIChoZXgpCQlUQU1VWiBNb25pdG9ycworMDAyMkRGICAgICAoYmFzZSAxNikJCVRBTVVaIE1vbml0b3JzCisJCQkJVGllZGVua2FtcCAxNgorCQkJCUhlbnN0ZWR0LVVsemJ1cmcgU0ggMjQ1NTgKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLUUwICAgKGhleCkJCUF0bGFudGljIFNvZnR3YXJlIFRlY2hub2xvZ2llcyBTLnIuTC4KKzAwMjJFMCAgICAgKGJhc2UgMTYpCQlBdGxhbnRpYyBTb2Z0d2FyZSBUZWNobm9sb2dpZXMgUy5yLkwuCisJCQkJVmlhIE1hcnRpbm8gQmFzc2ksIDkKKwkJCQlNaWxhbm8gIDIwMTQ4CisJCQkJSVRBTFkKKworMDAtMjItRTEgICAoaGV4KQkJWk9SVCBMYWJzLCBMTEMuCiswMDIyRTEgICAgIChiYXNlIDE2KQkJWk9SVCBMYWJzLCBMTEMuCisJCQkJNDRIIERvdmVyIFBvaW50IFJvYWQKKwkJCQlEb3ZlciBOSCAwMzgyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItRTIgICAoaGV4KQkJV0FCVEVDIFRyYW5zaXQgRGl2aXNpb24KKzAwMjJFMiAgICAgKGJhc2UgMTYpCQlXQUJURUMgVHJhbnNpdCBEaXZpc2lvbgorCQkJCTEzMCBSaWRnZXZpZXcgQ2lyY2xlCisJCQkJRHVuY2FuIFNDIDI5MzM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1FMyAgIChoZXgpCQlBbWVyaWdvbgorMDAyMkUzICAgICAoYmFzZSAxNikJCUFtZXJpZ29uCisJCQkJMjE2ODAgSGFnZ2VydHkgUm9hZAorCQkJCVN1aXRlIDEwMQorCQkJCU5vcnRodmlsbGUgTWljaGlnYW4gNDgxNjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUU0ICAgKGhleCkJCUFQQVNTIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDIyRTQgICAgIChiYXNlIDE2KQkJQVBBU1MgVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQkyRiwgTm8uIDI2NywgU2VjLiAzLCBDaGVuZ2RlIFJkLiwKKwkJCQlEYXRvbmcgRGlzdHJpY3QKKwkJCQlURUlQRUkgIDExMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItRTUgICAoaGV4KQkJRmlzaGVyLVJvc2Vtb3VudCBTeXN0ZW1zIEluYy4KKzAwMjJFNSAgICAgKGJhc2UgMTYpCQlGaXNoZXItUm9zZW1vdW50IFN5c3RlbXMgSW5jLgorCQkJCTEyMzAxIFJlc2VhcmNoIEJsdmQKKwkJCQlCdWlsZGluZyAzCisJCQkJQXVzdGluIFRleGFzIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1FNiAgIChoZXgpCQlJbnRlbGxpZ2VudCBEYXRhCiswMDIyRTYgICAgIChiYXNlIDE2KQkJSW50ZWxsaWdlbnQgRGF0YQorCQkJCUVkZi4gSW52ZXJpbm5vdmEgYT8/IEF2ZGEuIFB1bnRvIE1vYmksIDQuIFBhcnF1ZSBDaWVudEEtZmljbyBUZWNub2xBP2dpY28KKwkJCQlURUNOT0FMQ0FMQT8uIENydGEuIE5hY2lvbmFsIElJIE1hZHJpZC1CYXJjZWxvbmEgS20uIDMxLDYwMAorCQkJCUFsY2FsQT8gZGUgSGVuYXJlcyBNYWRyaWQgMjg4MDUKKwkJCQlTUEFJTgorCiswMC0yMi1FNyAgIChoZXgpCQlXUFMgUGFya2luZyBTeXN0ZW1zCiswMDIyRTcgICAgIChiYXNlIDE2KQkJV1BTIFBhcmtpbmcgU3lzdGVtcworCQkJCUhvZXZlbndlZyAxMQorCQkJCUVpbmRob3ZlbiBOb29yZC1CcmFiYW50IDU2NTIgQVcKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMi1FOCAgIChoZXgpCQlBcHBsaXRpb24gQ28uLCBMdGQuCiswMDIyRTggICAgIChiYXNlIDE2KQkJQXBwbGl0aW9uIENvLiwgTHRkLgorCQkJCTUwOS0xLCBCdW5kYW5nIFRlY2hubyBQYXJrIEQtZG9uZywKKwkJCQkxNTEgWWF0YXAtZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nTmFtIEt5dW5nZ2ktZG8gNDYzLTc2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMi1FOSAgIChoZXgpCQlQcm9WaXNpb24gQ29tbXVuaWNhdGlvbnMKKzAwMjJFOSAgICAgKGJhc2UgMTYpCQlQcm9WaXNpb24gQ29tbXVuaWNhdGlvbnMKKwkJCQkxIFBvcnRsYW5kIFNxdWFyZQorCQkJCUJyaXN0b2wgIEJTMiA4UlIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMi1FQSAgIChoZXgpCQlSdXN0ZWxjb20gSW5jLgorMDAyMkVBICAgICAoYmFzZSAxNikJCVJ1c3RlbGNvbSBJbmMuCisJCQkJR2FyYWduaXkgcHJvZXpkLCAxCisJCQkJU3QuLVBldGVyc2J1cmcgIDE5MjI4OAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yMi1FQiAgIChoZXgpCQlEYXRhIFJlc3BvbnMgQS9TCiswMDIyRUIgICAgIChiYXNlIDE2KQkJRGF0YSBSZXNwb25zIEEvUworCQkJCUVsbGVrYWVyIDYKKwkJCQlIZXJsZXYgIDI3MzAKKwkJCQlERU5NQVJLCisKKzAwLTIyLUVDICAgKGhleCkJCUlERUFMQlQgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorMDAyMkVDICAgICAoYmFzZSAxNikJCUlERUFMQlQgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCTZGLiwgTk8uOCwgTEFORSAzNDUsIFlBTkdHVUFORyBTVC4sIE5FSUhVIERJU1RSSUNUCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLUVEICAgKGhleCkJCVRTSSBQb3dlciBDb3Jwb3JhdGlvbgorMDAyMkVEICAgICAoYmFzZSAxNikJCVRTSSBQb3dlciBDb3Jwb3JhdGlvbgorCQkJCTExMDMgV2VzdCBQaWVyY2UgQXZlbnVlCisJCQkJQW50aWdvIFdJIDU0NDA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1FRSAgIChoZXgpCQlBbGdvIENvbW11bmljYXRpb24gUHJvZHVjdHMgTHRkCiswMDIyRUUgICAgIChiYXNlIDE2KQkJQWxnbyBDb21tdW5pY2F0aW9uIFByb2R1Y3RzIEx0ZAorCQkJCTQ1MDAgQmVlZGllIFN0cmVldAorCQkJCUJ1cm5hYnkgQkMgVjVKIDVMMgorCQkJCUNBTkFEQQorCiswMC0yMi1FRiAgIChoZXgpCQlJYmlzIFRlaywgTExDCiswMDIyRUYgICAgIChiYXNlIDE2KQkJSWJpcyBUZWssIExMQworCQkJCTkxMiBQaXR0c2J1cmdoIFJvYWQKKwkJCQlCdXRsZXIgUEEgMTYwMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUYwICAgKGhleCkJCTMgR3JlZW5zIEF2aWF0aW9uIExpbWl0ZWQKKzAwMjJGMCAgICAgKGJhc2UgMTYpCQkzIEdyZWVucyBBdmlhdGlvbiBMaW1pdGVkCisJCQkJMTAgSGVkaW5naGFtIENsb3NlCisJCQkJTWFjY2xlc2ZpZWxkICBTSzEwIDNMWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIyLUYxICAgKGhleCkJCVBSSVZBVEUKKzAwMjJGMSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMjItRjIgICAoaGV4KQkJU3VuUG93ZXIgQ29ycAorMDAyMkYyICAgICAoYmFzZSAxNikJCVN1blBvd2VyIENvcnAKKwkJCQkxNDE0IEhhcmJvdXIgV2F5IFNvdXRoCisJCQkJUmljaG1vbmQgQ0EgOTQ4MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUYzICAgKGhleCkJCVNIQVJQIENPUlBPUkFUSU9OCiswMDIyRjMgICAgIChiYXNlIDE2KQkJU0hBUlAgQ09SUE9SQVRJT04KKwkJCQkyMi0yMixOYWdhaWtlLWNobywKKwkJCQlBYmVuby1LVSwKKwkJCQlPc2FrYSwgNTQ1LTg1MjIsCisJCQkJSkFQQU4KKworMDAtMjItRjQgICAoaGV4KQkJQU1QQUsgVGVjaG5vbG9neSwgSW5jLgorMDAyMkY0ICAgICAoYmFzZSAxNikJCUFNUEFLIFRlY2hub2xvZ3ksIEluYy4KKwkJCQlOby4gOC0xLCBOYW55dWFuIDJuZCBSZC4KKwkJCQlKaG9uZ2xpIFRhb3l1YW4gMzIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi1GNSAgIChoZXgpCQlBZHZhbmNlZCBSZWFsdGltZSBUcmFja2luZyBHbWJICiswMDIyRjUgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgUmVhbHRpbWUgVHJhY2tpbmcgR21iSAorCQkJCUFtIE9lZmVybCA2CisJCQkJV2VpbGhlaW0gQmF5ZXJuIEQtODIzNjIKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLUY2ICAgKGhleCkJCVN5cmFjdXNlIFJlc2VhcmNoIENvcnBvcmF0aW9uCiswMDIyRjYgICAgIChiYXNlIDE2KQkJU3lyYWN1c2UgUmVzZWFyY2ggQ29ycG9yYXRpb24KKwkJCQk2MjI1IFJ1bm5pbmcgUmlkZ2UgUm9hZAorCQkJCU5vcnRoIFN5cmFjdXNlIE5ZIDEzMjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1GNyAgIChoZXgpCQlDb25jZXB0cm9uaWMKKzAwMjJGNyAgICAgKGJhc2UgMTYpCQlDb25jZXB0cm9uaWMKKwkJCQlEYXRhYmFua3dlZyA3CisJCQkJQU1FUlNGT09SVCB1dHJlY2h0IDM4MjEgQUwKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMi1GOCAgIChoZXgpCQlQSU1BIEVsZWN0cm9uaWMgU3lzdGVtcyBMdGQuCiswMDIyRjggICAgIChiYXNlIDE2KQkJUElNQSBFbGVjdHJvbmljIFN5c3RlbXMgTHRkLgorCQkJCTUgSGF0em9yZWYgU3QuCisJCQkJSG9sb24gIDU4ODU2CisJCQkJSVNSQUVMCisKKzAwLTIyLUY5ICAgKGhleCkJCVBvbGxpbiBFbGVjdHJvbmljIEdtYkgKKzAwMjJGOSAgICAgKGJhc2UgMTYpCQlQb2xsaW4gRWxlY3Ryb25pYyBHbWJICisJCQkJTWF4LVBvbGxpbi1TdHIuIDEKKwkJCQlQZm9lcnJpbmcgIDg1MTA0CisJCQkJR0VSTUFOWQorCiswMC0yMi1GQSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjJGQSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTIyLUZCICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAyMkZCICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMjItRkMgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjJGQyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjItRkQgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjJGRCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjItRkUgICAoaGV4KQkJTWljcm9wcm9jZXNzb3IgRGVzaWducyBJbmMKKzAwMjJGRSAgICAgKGJhc2UgMTYpCQlNaWNyb3Byb2Nlc3NvciBEZXNpZ25zIEluYworCQkJCTY1IExvbmdtZWFkb3cgRHJpdmUKKwkJCQlQTyBCb3ggMTYwCisJCQkJU2hlbGJ1cm5lIFZlcm1vbnQgMDU0ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUZGICAgKGhleCkJCU5JVklTIExMQworMDAyMkZGICAgICAoYmFzZSAxNikJCU5JVklTIExMQworCQkJCTEwMDAgQ2lyY2xlIDc1CisJCQkJU3VpdGUgMzAwCisJCQkJQXRsYW50YSBHQSAzMDMzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMDAgICAoaGV4KQkJQ2F5ZWUgQ29tcHV0ZXIgTHRkLgorMDAyMzAwICAgICAoYmFzZSAxNikJCUNheWVlIENvbXB1dGVyIEx0ZC4KKwkJCQlVbml0cyAxMDAyLTEwMDMsIDEwL0YsIEpvaW4tSW4gSGFuZyBTaW5nIENlbnRyZQorCQkJCTcxLTc1IENvbnRhaW5lciBQb3J0IFJvYWQKKwkJCQlLd2FpIENodW5nIE4uVCAKKwkJCQlIT05HIEtPTkcKKworMDAtMjMtMDEgICAoaGV4KQkJV2l0cm9uIFRlY2hub2xvZ3kgTGltaXRlZAorMDAyMzAxICAgICAoYmFzZSAxNikJCVdpdHJvbiBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQk2L0YsIFhpbiBSdWkgQnVpbGRpbmcsIDMyIFRhbyBIdWEgUm9hZCwgRnV0aWFuIEZyZWUgVHJhZGUgWm9uZSwKKwkJCQlTaGVuemhlbiA4NgorCQkJCUNISU5BCisKKzAwLTIzLTAyICAgKGhleCkJCUNvYmFsdCBEaWdpdGFsLCBJbmMuCiswMDIzMDIgICAgIChiYXNlIDE2KQkJQ29iYWx0IERpZ2l0YWwsIEluYy4KKwkJCQkyNDA2IEVhc3QgVW5pdmVyc2l0eSBBdmVudWUKKwkJCQlVcmJhbmEgSUwgNjE4MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTAzICAgKGhleCkJCUxJVEUtT04gSVQgQ29ycG9yYXRpb24KKzAwMjMwMyAgICAgKGJhc2UgMTYpCQlMSVRFLU9OIElUIENvcnBvcmF0aW9uCisJCQkJMTRGLCBOby4gMzkyLCBSdWV5IEt1YW5nIFJvYWQsIE5laWh1CisJCQkJVGFpcGVpIENpdHkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjMtMDQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMzA0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTA1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjMwNSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0wNiAgIChoZXgpCQlBTFBTIEVsZWN0cmljIENvLiwgTHRkCiswMDIzMDYgICAgIChiYXNlIDE2KQkJQUxQUyBFbGVjdHJpYyBDby4sIEx0ZAorCQkJCTEtMi0xLCBPa2lub3VjaGkKKwkJCQlTb21hIGNpdHkgRnVrdXNoaW1hIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMjMtMDcgICAoaGV4KQkJRlVUVVJFIElOTk9WQVRJT04gVEVDSCBDTy4sTFRECiswMDIzMDcgICAgIChiYXNlIDE2KQkJRlVUVVJFIElOTk9WQVRJT04gVEVDSCBDTy4sTFRECisJCQkJMzEyIDMtRE9ORywgR1dBTkdNWVVORyBJTkRVU1RSSUFMIENPTVBMRVggMjAxCisJCQkJSEFBTi1ET05HCisJCQkJR1dBTkdNWVVORyBHWVVOR0dJIDQyMzA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy0wOCAgIChoZXgpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDIzMDggICAgIChiYXNlIDE2KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLiwgTm8uIDkgLCBQYXJrIEF2ZW51ZSBJSSwKKwkJCQlTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1IFRhaXdhbiAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTA5ICAgKGhleCkJCUphbmFtIFRlY2hub2xvZ2llcyBMTEMKKzAwMjMwOSAgICAgKGJhc2UgMTYpCQlKYW5hbSBUZWNobm9sb2dpZXMgTExDCisJCQkJMTAwIENyb3Nzd2F5cyBQYXJrIFdlc3QKKwkJCQlTdWl0ZSAxMDUKKwkJCQlXb29kYnVyeSBOWSAxMTc5NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMEEgICAoaGV4KQkJQVJCVVJHIEdtYkggJiBDbyBLRworMDAyMzBBICAgICAoYmFzZSAxNikJCUFSQlVSRyBHbWJIICYgQ28gS0cKKwkJCQlBcnRodXIgSGVobCBTdHJhc3NlCisJCQkJTG9zc2J1cmcgIEQtNzIyOTAKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLTBCICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIzMEIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0wQyAgIChoZXgpCQlDTE9WRVIgRUxFQ1RST05JQ1MgQ08uLExURC4KKzAwMjMwQyAgICAgKGJhc2UgMTYpCQlDTE9WRVIgRUxFQ1RST05JQ1MgQ08uLExURC4KKwkJCQlBS0VOTyAzMDYtMQorCQkJCU9CQVRBIENoeW91CisJCQkJSVNFIENpdHkgTUlFIFByZWZlY3R1cmUgNTE5LTA1MDEKKwkJCQlKQVBBTgorCiswMC0yMy0wRCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMjMwRCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQkyMjIxIExha2VzaWRlIEJsdmQKKwkJCQlSaWNoYXJkc29uIFRleGFzIDc1MDgyLTQzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTBFICAgKGhleCkJCUdvcmJhIEFHCiswMDIzMEUgICAgIChiYXNlIDE2KQkJR29yYmEgQUcKKwkJCQlTYW5kYWNrZXJzdHJhc3NlCisJCQkJT2JlcmJ1cmVuIFNHIENIIC0gOTI0NQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTIzLTBGICAgKGhleCkJCUhpcnNjaCBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorMDAyMzBGICAgICAoYmFzZSAxNikJCUhpcnNjaCBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorCQkJCTE5MDAgQ2FybmVnaWUsIEJsZGcgQgorCQkJCVNhbnRhIEFuYSBDQSA5MjcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMTAgICAoaGV4KQkJTE5DIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDIzMTAgICAgIChiYXNlIDE2KQkJTE5DIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMTlGLCBOby4gNzgtMiwgU2VjLiAzLCBUYWljaHVuZyBLYW5nIFJkLgorCQkJCVRhaWNodW5nICA0MDc2NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjMtMTEgICAoaGV4KQkJR2xvc2NvbSBDby4sIEx0ZC4KKzAwMjMxMSAgICAgKGJhc2UgMTYpCQlHbG9zY29tIENvLiwgTHRkLgorCQkJCSM1MDcgQ2hhbmdoeXVuIEJsZGcuCisJCQkJOTYwLTEgSG9neWUtZG9uZworCQkJCUFueWFuZyBDaXR5IEt5dW5nZ28tZG8gNDMxLTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy0xMiAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDIzMTIgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMTMgICAoaGV4KQkJUW9vbCBUZWNobm9sb2dpZXMgTHRkLgorMDAyMzEzICAgICAoYmFzZSAxNikJCVFvb2wgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQlHb3RhbmRhIE5vLjMgSGFuYXRhbmkgQmxkZyAzRiwKKwkJCQk1LTI4LTksSGlnYXNoaS1nb3RhbmRhCisJCQkJU2hpbmFnYXdhLWt1IFRva3lvIDE0MS0wMDIyCisJCQkJSkFQQU4KKworMDAtMjMtMTQgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDIzMTQgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yMy0xNSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjMxNSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTIzLTE2ICAgKGhleCkJCUtJU0FOIEVMRUNUUk9OSUNTIENPCiswMDIzMTYgICAgIChiYXNlIDE2KQkJS0lTQU4gRUxFQ1RST05JQ1MgQ08KKwkJCQkzMTctMTUKKwkJCQlTVU5HIFNVIDJHQSAzRE9ORworCQkJCVNFT1VORy1ET05HIEdVIFNFT1VMIDEzMy0xMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtMTcgICAoaGV4KQkJTGFzZXJjcmFmdCBJbmMKKzAwMjMxNyAgICAgKGJhc2UgMTYpCQlMYXNlcmNyYWZ0IEluYworCQkJCTE0NTAgT2FrYnJvb2sgRHJpdmUKKwkJCQlTdWl0ZSA5MDAKKwkJCQlOb3Jjcm9zcyBHQSAzMDA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMTggICAoaGV4KQkJVG9zaGliYQorMDAyMzE4ICAgICAoYmFzZSAxNikJCVRvc2hpYmEKKwkJCQkyLTksU3VlaGlyby1DaG8KKwkJCQlPbWUgVG9reW8gMTk4ODcxMAorCQkJCUpBUEFOCisKKzAwLTIzLTE5ICAgKGhleCkJCVNpZWxveCBMTEMKKzAwMjMxOSAgICAgKGJhc2UgMTYpCQlTaWVsb3ggTExDCisJCQkJMTcwIEVhc3QgTmludGggQXZlLgorCQkJCVJ1bm5lbWVkZSBOSiAwODA3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMUEgICAoaGV4KQkJSVRGIENvLiwgTHRkLgorMDAyMzFBICAgICAoYmFzZSAxNikJCUlURiBDby4sIEx0ZC4KKwkJCQkyLTItMTEgTmlzaGlraS1jaG8KKwkJCQlUYWNoaWthd2Etc2hpIFRva3lvIDE5MC0wMDIyCisJCQkJSkFQQU4KKworMDAtMjMtMUIgICAoaGV4KQkJRGFuYWhlciBNb3Rpb24gLSBLb2xsbW9yZ2VuCiswMDIzMUIgICAgIChiYXNlIDE2KQkJRGFuYWhlciBNb3Rpb24gLSBLb2xsbW9yZ2VuCisJCQkJMjAxIFcuIFJvY2sgUm9hZAorCQkJCVJhZGZvcmQgVkEgMjQxNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTFDICAgKGhleCkJCUZvdXJpZXIgU3lzdGVtcyBMdGQuCiswMDIzMUMgICAgIChiYXNlIDE2KQkJRm91cmllciBTeXN0ZW1zIEx0ZC4KKwkJCQkxNiBIYW1lbGFjaGEgU3QKKwkJCQlSb3NoIEhhYXlpbiAgNDgwOTEKKwkJCQlJU1JBRUwKKworMDAtMjMtMUQgICAoaGV4KQkJRGVsdGFjb20gRWxlY3Ryb25pY3MgTHRkCiswMDIzMUQgICAgIChiYXNlIDE2KQkJRGVsdGFjb20gRWxlY3Ryb25pY3MgTHRkCisJCQkJMkYsWklULDdrbSBUemFyaWdyYWRza28gU2hvc2UKKwkJCQlTb2ZpYSBTb2ZpYS1ncmFkIDE3ODQKKwkJCQlCVUxHQVJJQQorCiswMC0yMy0xRSAgIChoZXgpCQlDZXp6ZXIgTXVsdGltZWRpYSBUZWNobm9sb2dpZXMKKzAwMjMxRSAgICAgKGJhc2UgMTYpCQlDZXp6ZXIgTXVsdGltZWRpYSBUZWNobm9sb2dpZXMKKwkJCQlQZXBpbmllcmUgZCdlbnRyZXByaXNlcyBDUkVBVElDCisJCQkJMTE1IHJ1ZSBDbGF1ZGUgQ2hhcHBlCisJCQkJUGxvdXphbmUgIDI5MjgwCisJCQkJRlJBTkNFCisKKzAwLTIzLTFGICAgKGhleCkJCUd1YW5nZGEgRWxlY3Ryb25pYyAmIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ28uLCBMdGQuCiswMDIzMUYgICAgIChiYXNlIDE2KQkJR3VhbmdkYSBFbGVjdHJvbmljICYgVGVsZWNvbW11bmljYXRpb24gVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKwkJCQkjOCBHYW9wZW5nZG9uZyBSb2FkLCBHYW94aW4gRGlzdHJpY3QKKwkJCQlDaGVuZ2R1IFNpY2h1YW4gNjEwMDQxCisJCQkJQ0hJTkEKKworMDAtMjMtMjAgICAoaGV4KQkJTmljaXJhIE5ldHdvcmtzCiswMDIzMjAgICAgIChiYXNlIDE2KQkJTmljaXJhIE5ldHdvcmtzCisJCQkJMzYwMCBXLiBCYXlzaG9yZSBSZC4sIAorCQkJCVN1aXRlIDIwNQorCQkJCVBhbG8gQWx0byBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMjEgICAoaGV4KQkJQXZpdGVjaCBJbnRlcm5hdGlvbmFsIENvcnAKKzAwMjMyMSAgICAgKGJhc2UgMTYpCQlBdml0ZWNoIEludGVybmF0aW9uYWwgQ29ycAorCQkJCTE1MzMzIE5FIDkwdGggU3RyZWV0CisJCQkJUmVkbW9uZCBXQSA5ODA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMjIgICAoaGV4KQkJS0lTUyBUZWtuaWNhbCBTb2x1dGlvbnMsIEluYy4KKzAwMjMyMiAgICAgKGJhc2UgMTYpCQlLSVNTIFRla25pY2FsIFNvbHV0aW9ucywgSW5jLgorCQkJCTE1ODMgUy4gTmF2YWpvIFdheQorCQkJCUNoYW5kbGVyIEFyaXpvbmEgODUyODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTIzICAgKGhleCkJCVp5bGluIEFTCiswMDIzMjMgICAgIChiYXNlIDE2KQkJWnlsaW4gQVMKKwkJCQlBdWdsZW5kc2RhbGVuIDc4CisJCQkJU3RhdmFuZ2VyICA0MDE3CisJCQkJTk9SV0FZCisKKzAwLTIzLTI0ICAgKGhleCkJCUctUFJPIENPTVBVVEVSCiswMDIzMjQgICAgIChiYXNlIDE2KQkJRy1QUk8gQ09NUFVURVIKKwkJCQlmaXJzdCBhcnJhbmdlIEMsIFlpbmdIdSBpbmR1c3RyaWFsIGVzdGF0ZQorCQkJCVFpbmdYaSBDb3VudHJ5CisJCQkJRG9uZ0d1YW4gQ2l0eSBHdWFuZ0RvbmcgUHJvdmluY2UgNTIzNjQ4CisJCQkJQ0hJTkEKKworMDAtMjMtMjUgICAoaGV4KQkJSU9MQU4gSG9sZGluZworMDAyMzI1ICAgICAoYmFzZSAxNikJCUlPTEFOIEhvbGRpbmcKKwkJCQlNb24gUGxhaXNpciAyNgorCQkJCUV0dGVuIExldXIgIDQ4NzlBTgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIzLTI2ICAgKGhleCkJCUZ1aml0c3UgTGltaXRlZAorMDAyMzI2ICAgICAoYmFzZSAxNikJCUZ1aml0c3UgTGltaXRlZAorCQkJCU11c2FzaGkta29zdWdpIFRvd2VyIFBsYWNlIEJsZGcuLAorCQkJCTQwMywgS29zdWdpLWNobyAxLWNob21lLE5ha2FoYXJhLWt1CisJCQkJS2F3YXNha2kgS2FuYWdhd2EgMjExLTAwNjMKKwkJCQlKQVBBTgorCiswMC0yMy0yNyAgIChoZXgpCQlTaG91eW8gRWxlY3Ryb25pY3MgQ08uLCBMVEQKKzAwMjMyNyAgICAgKGJhc2UgMTYpCQlTaG91eW8gRWxlY3Ryb25pY3MgQ08uLCBMVEQKKwkJCQk0Ri4sIE5vLjgsIExhbmUgMzQ1LCBZYW5nIEt1bmcgU3QuCisJCQkJVGFpcGVpICAxMTQ5MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjMtMjggICAoaGV4KQkJQUxDT04gVEVMRUNPTU1VTklDQVRJT05TIENPLiwgTFRELgorMDAyMzI4ICAgICAoYmFzZSAxNikJCUFMQ09OIFRFTEVDT01NVU5JQ0FUSU9OUyBDTy4sIExURC4KKwkJCQkybmQgRkwsIE5PIDQ4MC01LCBTRUMuIDYsIFlFTi1QSU5HIE4uIFJELiwKKwkJCQlTSElILUxJTgorCQkJCVRBSVBFSSBUQUlXQU4gMTExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy0yOSAgIChoZXgpCQlERFJkcml2ZSBMTEMKKzAwMjMyOSAgICAgKGJhc2UgMTYpCQlERFJkcml2ZSBMTEMKKwkJCQkxMTA3NiBFbGF0aSBTdAorCQkJCU5vcnRoZ2xlbm4gQ08gODAyMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTJBICAgKGhleCkJCWVvbmFzIElULUJlcmF0dW5nIHVuZCAtRW50d2lja2x1bmcgR21iSAorMDAyMzJBICAgICAoYmFzZSAxNikJCWVvbmFzIElULUJlcmF0dW5nIHVuZCAtRW50d2lja2x1bmcgR21iSAorCQkJCUdyZWlmZW5oYWdlbmVyIFN0ci4gNTQKKwkJCQlCZXJsaW4gIDEwNDM3CisJCQkJR0VSTUFOWQorCiswMC0yMy0yQiAgIChoZXgpCQlJUkQgQS9TCiswMDIzMkIgICAgIChiYXNlIDE2KQkJSVJEIEEvUworCQkJCUt1bGxpbmdnYWRlIDMxCisJCQkJU3ZlbmRib3JnIEZ5biA1NzAwCisJCQkJREVOTUFSSworCiswMC0yMy0yQyAgIChoZXgpCQlTZW50aWNhcmUKKzAwMjMyQyAgICAgKGJhc2UgMTYpCQlTZW50aWNhcmUKKwkJCQkxNjEgV29yY2VzdGVyIFJkCisJCQkJU3VpdGUgMzA1CisJCQkJRnJhbWluZ2hhbSBNQSAwMTcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMkQgICAoaGV4KQkJU2FuZEZvcmNlCiswMDIzMkQgICAgIChiYXNlIDE2KQkJU2FuZEZvcmNlCisJCQkJMTI5NTAgU2FyYXRvZ2EgQXZlLgorCQkJCVNhcmF0b2dhIENhbGlmb3JuaWEgOTUwNzAtNDY1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMkUgICAoaGV4KQkJS2VkYWggRWxlY3Ryb25pY3MgRW5naW5lZXJpbmcsIExMQworMDAyMzJFICAgICAoYmFzZSAxNikJCUtlZGFoIEVsZWN0cm9uaWNzIEVuZ2luZWVyaW5nLCBMTEMKKwkJCQlaZWxlbm9ncmFkLCA0NDUKKwkJCQlNb3Njb3cgIDEyNDQ5OAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yMy0yRiAgIChoZXgpCQlBZHZhbmNlZCBDYXJkIFN5c3RlbXMgTHRkLgorMDAyMzJGICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIENhcmQgU3lzdGVtcyBMdGQuCisJCQkJVW5pdCAyMDEwLTEzLCBDaGV2YWxpZXIgQ29tbWVyY2lhbCBDZW50cmUsCisJCQkJOCBXYW5nIEhvaSBSb2FkLAorCQkJCUtvd2xvb24gQmF5LCBTQVIgCisJCQkJSE9ORyBLT05HCisKKzAwLTIzLTMwICAgKGhleCkJCURJWklQSUEsIElOQy4KKzAwMjMzMCAgICAgKGJhc2UgMTYpCQlESVpJUElBLCBJTkMuCisJCQkJMTV0aCBGbG9vciwgRWFzdCBXaW5nLCBJVCBWZW50dXJlIFRvd2VyCisJCQkJNzggR2FyYWstZG9uZywgU29uZ3BhLUd1LAorCQkJCVNlb3VsICAxMzgxNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtMzEgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDIzMzEgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gS1lPVE8gNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yMy0zMiAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDIzMzIgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMzMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMzMzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTM0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjMzNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0zNSAgIChoZXgpCQlMaW5rZmxleCBDby4sTHRkCiswMDIzMzUgICAgIChiYXNlIDE2KQkJTGlua2ZsZXggQ28uLEx0ZAorCQkJCTVGLiBNaW4gWW91bmcgQmxkZy4gMTc1LTIKKwkJCQlOb25oeWVvbi1Eb25nLCBHYW5nbmFtLUd1CisJCQkJU2VvdWwgIDEzNS0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtMzYgICAoaGV4KQkJTUVURUwgcy5yLm8uCiswMDIzMzYgICAgIChiYXNlIDE2KQkJTUVURUwgcy5yLm8uCisJCQkJVmVsa2EgSmVzZW5pY2UgMTI1CisJCQkJVmVsa2EgSmVzZW5pY2UgTmFjaG9kIDU1MjI0CisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMjMtMzcgICAoaGV4KQkJR2xvYmFsIFN0YXIgU29sdXRpb25zIFVMQworMDAyMzM3ICAgICAoYmFzZSAxNikJCUdsb2JhbCBTdGFyIFNvbHV0aW9ucyBVTEMKKwkJCQk0NjAwIEphY29tYnMgUm9hZAorCQkJCVJpY2htb25kIEJDIFY2ViAzQjEKKwkJCQlDQU5BREEKKworMDAtMjMtMzggICAoaGV4KQkJT0otRWxlY3Ryb25pY3MgQS9TCiswMDIzMzggICAgIChiYXNlIDE2KQkJT0otRWxlY3Ryb25pY3MgQS9TCisJCQkJU3RlbmFnZXIgMTNCCisJCQkJUz9uZGVyYm9yZyAgNjQwMAorCQkJCURFTk1BUksKKworMDAtMjMtMzkgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworMDAyMzM5ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtM0EgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswMDIzM0EgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLTNCICAgKGhleCkJCUMtTWF0aWMgU3lzdGVtcyBMdGQKKzAwMjMzQiAgICAgKGJhc2UgMTYpCQlDLU1hdGljIFN5c3RlbXMgTHRkCisJCQkJV2FycmVuIENvdXJ0CisJCQkJUGFyayBSb2FkCisJCQkJQ3Jvd2Jvcm91Z2ggRWFzdCBTdXNzZXggVE42IDJRWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIzLTNDICAgKGhleCkJCUFsZmxleAorMDAyMzNDICAgICAoYmFzZSAxNikJCUFsZmxleAorCQkJCUJsYXV3LXJvb2RsYWFuIDMwMAorCQkJCVpPRVRFUk1FRVIgIDI3MTggU0sKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMy0zRCAgIChoZXgpCQlub3Zlcm8gR21iSAorMDAyMzNEICAgICAoYmFzZSAxNikJCW5vdmVybyBHbWJICisJCQkJUmVuc2luZ3N0cmFzc2UgMTUKKwkJCQlCb2NodW0gIDQ0ODA3CisJCQkJR0VSTUFOWQorCiswMC0yMy0zRSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudC1JUEQKKzAwMjMzRSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudC1JUEQKKwkJCQk3MDEgRS4gTWlkZGxlZmllbGQgUmQuCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtM0YgICAoaGV4KQkJUHVyZWNob2ljZSBJbmMKKzAwMjMzRiAgICAgKGJhc2UgMTYpCQlQdXJlY2hvaWNlIEluYworCQkJCTExNDgxIFJ1cHAgRHJpdmUKKwkJCQlCdXJuc3ZpbGxlIE1OIDU1MzM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy00MCAgIChoZXgpCQlNaVggVGVsZW1hdGljcworMDAyMzQwICAgICAoYmFzZSAxNikJCU1pWCBUZWxlbWF0aWNzCisJCQkJQmxhYXV3a2xpcCBPZmZpY2UgUGFyayAyCisJCQkJQ25yIFN0cmFuZCAmIFdlYmVyc3ZhbGxlaSBSZAorCQkJCVN0ZWxsZW5ib3NjaCBXZXN0ZXJuIENhcGUgNzYwMAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0yMy00MSAgIChoZXgpCQlTaWVtZW5zIEFHCiswMDIzNDEgICAgIChiYXNlIDE2KQkJU2llbWVucyBBRworCQkJCUluZHVzdHJ5IFNlY3RvciwgQnVpbGRpbmcgVGVjaG5vbG9naWVzIERpdmlzaW9uCisJCQkJSSBCVCBERSBTUCwgU2llbWVuc2FsbGVlIDg0CisJCQkJS2FybHNydWhlIERldXRzY2hsYW5kIEQtNzYxODcKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLTQyICAgKGhleCkJCUNvZmZlZSBFcXVpcG1lbnQgQ29tcGFueQorMDAyMzQyICAgICAoYmFzZSAxNikJCUNvZmZlZSBFcXVpcG1lbnQgQ29tcGFueQorCQkJCTQyMTYgNnRoIEF2ZSBOVworCQkJCVNlYXR0bGUgV0EgOTgxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTQzICAgKGhleCkJCVRFTSBBRworMDAyMzQzICAgICAoYmFzZSAxNikJCVRFTSBBRworCQkJCVRyaXN0c3RyYXNzZSA4CisJCQkJQ2h1ciAgNzAwNworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTIzLTQ0ICAgKGhleCkJCU9iamVjdGl2ZSBJbnRlcmZhY2UgU3lzdGVtcworMDAyMzQ0ICAgICAoYmFzZSAxNikJCU9iamVjdGl2ZSBJbnRlcmZhY2UgU3lzdGVtcworCQkJCTEzODczIFBhcmsgQ2VudGVyIFJkCisJCQkJU3VpdGUgMzYwCisJCQkJSGVybmRvbiBWQSAyMDE3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNDUgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKzAwMjM0NSAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNrYW5lIDIyMTg4CisJCQkJU1dFREVOCisKKzAwLTIzLTQ2ICAgKGhleCkJCVZlc3RhYworMDAyMzQ2ICAgICAoYmFzZSAxNikJCVZlc3RhYworCQkJCVAuTy4gQm94IDczNTgKKwkJCQlTaHJld3NidXJ5IE5KIDA3NzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy00NyAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCiswMDIzNDcgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQKKwkJCQlSb3NldmlsbGUgQ2FsaWZvcm5pYSA5NTc0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNDggICAoaGV4KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorMDAyMzQ4ICAgICAoYmFzZSAxNikJCVNBR0VNIENPTU1VTklDQVRJT04KKwkJCQkxNCBSdWUgUGF1bCBEYXV0aWVyCisJCQkJVmVsaXp5ICA3ODQ1NworCQkJCUZSQU5DRQorCiswMC0yMy00OSAgIChoZXgpCQlIZWxtaG9sdHogQ2VudHJlIEJlcmxpbiBmb3IgTWF0ZXJpYWwgYW5kIEVuZXJneQorMDAyMzQ5ICAgICAoYmFzZSAxNikJCUhlbG1ob2x0eiBDZW50cmUgQmVybGluIGZvciBNYXRlcmlhbCBhbmQgRW5lcmd5CisJCQkJRGVwYXJ0bWVudCBGTUQKKwkJCQlHbGllbmlja2VyIFN0cmFzc2UgMTAwCisJCQkJQmVybGluICAxNDEwOQorCQkJCUdFUk1BTlkKKworMDAtMjMtNEEgICAoaGV4KQkJUFJJVkFURQorMDAyMzRBICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0yMy00QiAgIChoZXgpCQlJbnl1YW4gVGVjaG5vbG9neSBJbmMuCiswMDIzNEIgICAgIChiYXNlIDE2KQkJSW55dWFuIFRlY2hub2xvZ3kgSW5jLgorCQkJCU5vLiAzLCBTaW5neWUgU3QuLAorCQkJCUd1ZWlzaGFuIFRvd25zaGlwCisJCQkJVGFveXVhbiBDb3VudHkgIDMzMzQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy00QyAgIChoZXgpCQlLVEMgQUIKKzAwMjM0QyAgICAgKGJhc2UgMTYpCQlLVEMgQUIKKwkJCQlGIE8gUGV0ZXJzb25zIGdhdGEgNgorCQkJCVZhc3RyYSBGcm9sdW5kYSBHb3RoZW5idXJnIFNFLTQyMTMxCisJCQkJU1dFREVOCisKKzAwLTIzLTREICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCiswMDIzNEQgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKwkJCQk2NiwgQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiBUYWl3YW4gMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy00RSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorMDAyMzRFICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCisJCQkJNjYsQ2h1bmcgU2hhbiBSZC5UdS1jaGVuZworCQkJCVRhaXBlaSBIc2llbiBUYWl3YW4gMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy00RiAgIChoZXgpCQlMdW1pbm91cyBQb3dlciBUZWNobm9sb2dpZXMgUHZ0LiBMdGQuCiswMDIzNEYgICAgIChiYXNlIDE2KQkJTHVtaW5vdXMgUG93ZXIgVGVjaG5vbG9naWVzIFB2dC4gTHRkLgorCQkJCUM4LUM5LCBDb21tdW5pdHkgQ2VudGVyLAorCQkJCUJlaGluZCBKYW5hayBDaW5lbWEsIEphbmFrcHVyaSwKKwkJCQlOZXcgRGVsaGkgIDExMDA1OAorCQkJCUlORElBCisKKzAwLTIzLTUwICAgKGhleCkJCUx5blRlYworMDAyMzUwICAgICAoYmFzZSAxNikJCUx5blRlYworCQkJCTg0MDEgTWVscm9zZSBEcml2ZQorCQkJCUxlbmV4YSBLUyA2NjIxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNTEgICAoaGV4KQkJMldpcmUKKzAwMjM1MSAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTUyICAgKGhleCkJCURBVEFTRU5TT1IgUy5wLkEuCiswMDIzNTIgICAgIChiYXNlIDE2KQkJREFUQVNFTlNPUiBTLnAuQS4KKwkJCQlWaWEgTGF2aW5vLCAyNjUKKwkJCQlNb250ZSBTYW4gUGlldHJvIChCTykgIDQwMDUwCisJCQkJSVRBTFkKKworMDAtMjMtNTMgICAoaGV4KQkJRiBFIFQgRWxldHRyb25pY2Egc25jCiswMDIzNTMgICAgIChiYXNlIDE2KQkJRiBFIFQgRWxldHRyb25pY2Egc25jCisJCQkJVmlhIEEuTWFuem9uaSAxNC9hCisJCQkJQ1AzMDMgUFBUVCBQb2dnaWJvbnNpIENlbnRybworCQkJCVBvZ2dpYm9uc2kgU2llbmEgNTMwMzYKKwkJCQlJVEFMWQorCiswMC0yMy01NCAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMjM1NCAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91LAorCQkJCVRhaXBlaSBUYWl3YW4gMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy01NSAgIChoZXgpCQlLaW5jbyBBdXRvbWF0aW9uKFNoYW5naGFpKSBMdGQuCiswMDIzNTUgICAgIChiYXNlIDE2KQkJS2luY28gQXV0b21hdGlvbihTaGFuZ2hhaSkgTHRkLgorCQkJCUJsZGcxLCBOby4xMzg3LCBaaGFuZ2RvbmcgUm9hZCwKKwkJCQlaaGFuZ2ppYW5nIEhpLXRlY2ggUGFyaywgUHVkb25nLgorCQkJCVNoYW5naGFpIDIwMTIwMworCQkJCUNISU5BCisKKzAwLTIzLTU2ICAgKGhleCkJCVBhY2tldCBGb3JlbnNpY3MgTExDCiswMDIzNTYgICAgIChiYXNlIDE2KQkJUGFja2V0IEZvcmVuc2ljcyBMTEMKKwkJCQk0MjAgUyBTbWl0aCBSZAorCQkJCVRlbXBlIEFaIDg1MjgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy01NyAgIChoZXgpCQlQaXRyb25vdCBUZWNobm9sb2dpZXMgYW5kIEVuZ2luZWVyaW5nIFAuVC5FLiBMdGQuCiswMDIzNTcgICAgIChiYXNlIDE2KQkJUGl0cm9ub3QgVGVjaG5vbG9naWVzIGFuZCBFbmdpbmVlcmluZyBQLlQuRS4gTHRkLgorCQkJCTggSGF0dXQgc3QKKwkJCQlQYXJkZXNpeWEgIDQyODE1CisJCQkJSVNSQUVMCisKKzAwLTIzLTU4ICAgKGhleCkJCVNZU1RFTCBTQQorMDAyMzU4ICAgICAoYmFzZSAxNikJCVNZU1RFTCBTQQorCQkJCVpJIERFIEJFTExFIEFJUkUKKwkJCQlCUCAzMQorCQkJCUFZVFJFICAxNzQ0MAorCQkJCUZSQU5DRQorCiswMC0yMy01OSAgIChoZXgpCQlCZW5jaG1hcmsgRWxlY3Ryb25pY3MgKCBUaGFpbGFuZCApIFB1YmxpYyBDb21wYW55IExpbWl0ZWQKKzAwMjM1OSAgICAgKGJhc2UgMTYpCQlCZW5jaG1hcmsgRWxlY3Ryb25pY3MgKCBUaGFpbGFuZCApIFB1YmxpYyBDb21wYW55IExpbWl0ZWQKKwkJCQk5NCBNb28gMSwgSGktVGVjaCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCUJhbmxhbmUKKwkJCQlCYW5nIFBhLWluIEF5dWRoYXlhIDEzMTYwCisJCQkJVEhBSUxBTkQKKworMDAtMjMtNUEgICAoaGV4KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIEx0ZC4KKzAwMjM1QSAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTHRkLgorCQkJCU5PIDI1LCBUaGUgM3JkIHN0cmVldCwKKwkJCQlLdWFuU2hhbiBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJS3VhblNoYW4gU1VaSE9VIDIxNTMwMAorCQkJCUNISU5BCisKKzAwLTIzLTVCICAgKGhleCkJCUd1bGZzdHJlYW0KKzAwMjM1QiAgICAgKGJhc2UgMTYpCQlHdWxmc3RyZWFtCisJCQkJMzIgTHVtbXVzIERyaXZlCisJCQkJUkRDIExhYiBSLTA4CisJCQkJU2F2YW5uYWggR0EgMzE0MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTVDICAgKGhleCkJCUFwcml1cywgSW5jLgorMDAyMzVDICAgICAoYmFzZSAxNikJCUFwcml1cywgSW5jLgorCQkJCTQ0MCBOLiBXb2xmZSBSZAorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNUQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMzVEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTVFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjM1RSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy01RiAgIChoZXgpCQlTaWxpY29uIE1pY3JvIFNlbnNvcnMgR21iSAorMDAyMzVGICAgICAoYmFzZSAxNikJCVNpbGljb24gTWljcm8gU2Vuc29ycyBHbWJICisJCQkJR3JlbnpzdHJhc3NlIDI4IC8gR2ViYXVkZSAzMgorCQkJCURyZXNkZW4gU2F4b255IDAxMTA5CisJCQkJR0VSTUFOWQorCiswMC0yMy02MCAgIChoZXgpCQlMb29raXQgVGVjaG5vbG9neSBDby4sIEx0ZAorMDAyMzYwICAgICAoYmFzZSAxNikJCUxvb2tpdCBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJRkwgOCBTZWFzaG9yZSBNYW5zaW9uCisJCQkJQmFvJ2FuIENCRCBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDAKKwkJCQlDSElOQQorCiswMC0yMy02MSAgIChoZXgpCQlVbmlnZW4gQ29ycG9yYXRpb24KKzAwMjM2MSAgICAgKGJhc2UgMTYpCQlVbmlnZW4gQ29ycG9yYXRpb24KKwkJCQk0NTM4OCBXYXJtIFNwcmluZ3MgQmx2ZAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTYyICAgKGhleCkJCUdvbGRsaW5lIENvbnRyb2xzCiswMDIzNjIgICAgIChiYXNlIDE2KQkJR29sZGxpbmUgQ29udHJvbHMKKwkJCQk2MSBXaGl0ZWNhcCBEcgorCQkJCU5vcnRoIEtpbmdzdG93biBSSSAwMjg1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNjMgICAoaGV4KQkJWmh1aGFpIFJheVNoYXJwIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDIzNjMgICAgIChiYXNlIDE2KQkJWmh1aGFpIFJheVNoYXJwIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uMTE5IG9mIEh1YXdlaSBSb2FkLCBRaWFuc2hhbiBTY2llbmNlICYgVGVjaG5vbG9neSBQYXJrLAorCQkJCVpodWhhaSBHdWFuZ2RvbmcgNTE5MDcwCisJCQkJQ0hJTkEKKworMDAtMjMtNjQgICAoaGV4KQkJUG93ZXIgSW5zdHJ1bWVudHMgUHRlIEx0ZAorMDAyMzY0ICAgICAoYmFzZSAxNikJCVBvd2VyIEluc3RydW1lbnRzIFB0ZSBMdGQKKwkJCQlCTEsgNDAgVE9IIEdVQU4gUkQgRUFTVCwgIzAxLTYyIEVOVEVSUFJJU0UgSFVCCisJCQkJNjA4NTgyCisJCQkJU0lOR0FQT1JFCisKKzAwLTIzLTY1ICAgKGhleCkJCUVMS0EtRWxla3Ryb25payBHbWJICiswMDIzNjUgICAgIChiYXNlIDE2KQkJRUxLQS1FbGVrdHJvbmlrIEdtYkgKKwkJCQlUYWxzdHJhc3NlIDEwNAorCQkJCUx1ZGVuc2NoZWlkIE5SVyA1ODUxNQorCQkJCUdFUk1BTlkKKworMDAtMjMtNjYgICAoaGV4KQkJQmVpamluZyBTaWFzdW4gRWxlY3Ryb25pYyBTeXN0ZW0gQ28uLEx0ZC4KKzAwMjM2NiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFNpYXN1biBFbGVjdHJvbmljIFN5c3RlbSBDby4sTHRkLgorCQkJCVJtLjEwMTggSHVhdGlhbiBCbGRnLCBOby42IEJlaSBYaWFvbWFjaGFuZworCQkJCUhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwMzgKKwkJCQlDSElOQQorCiswMC0yMy02NyAgIChoZXgpCQlVbmlDb250cm9scyBhLnMuCiswMDIzNjcgICAgIChiYXNlIDE2KQkJVW5pQ29udHJvbHMgYS5zLgorCQkJCUtyZW5pY2thIDIyNTcKKwkJCQlQcmFndWUgMTAgIDEwMCAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTIzLTY4ICAgKGhleCkJCU1vdG9yb2xhCiswMDIzNjggICAgIChiYXNlIDE2KQkJTW90b3JvbGEKKwkJCQkxIE1vdG9yb2xhIFBsYXphCisJCQkJSG9sdHN2aWxsZSBOWSAxMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNjkgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCiswMDIzNjkgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy02QSAgIChoZXgpCQlDbGVhckFjY2VzcywgSW5jLgorMDAyMzZBICAgICAoYmFzZSAxNikJCUNsZWFyQWNjZXNzLCBJbmMuCisJCQkJMTMwMSBORSAxNDR0aCBTdHJlZXQKKwkJCQlTdWl0ZSAxMTkKKwkJCQlWYW5jb3V2ZXIgV0EgOTg2ODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTZCICAgKGhleCkJCVhlbWJlZGRlZCwgSW5jLgorMDAyMzZCICAgICAoYmFzZSAxNikJCVhlbWJlZGRlZCwgSW5jLgorCQkJCTEwNTAgSGlnaGxhbmQgRHIKKwkJCQlTdWl0ZSBFCisJCQkJQW5uIEFyYm9yIE1JIDQ4MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy02QyAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDIzNkMgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNkQgICAoaGV4KQkJUmVzTWVkIEx0ZAorMDAyMzZEICAgICAoYmFzZSAxNikJCVJlc01lZCBMdGQKKwkJCQkxLCBFbGl6YWJldGggTWFjYXJ0aHVyIERyaXZlCisJCQkJQmVsbGEgVmlzdGEgTlNXIDIxNTMKKwkJCQlBVVNUUkFMSUEKKworMDAtMjMtNkUgICAoaGV4KQkJQnVyc3RlciBHbWJIICYgQ28gS0cKKzAwMjM2RSAgICAgKGJhc2UgMTYpCQlCdXJzdGVyIEdtYkggJiBDbyBLRworCQkJCVRhbHN0cmFzc2UgMS01CisJCQkJR2VybnNiYWNoIEJhZGVuLVd1cnR0ZW1iZXJnIDc2NTkzCisJCQkJR0VSTUFOWQorCiswMC0yMy02RiAgIChoZXgpCQlEQVEgU3lzdGVtCiswMDIzNkYgICAgIChiYXNlIDE2KQkJREFRIFN5c3RlbQorCQkJCTcwOS0xLCBCdW5kYW5nIFRlY2hubyBQYXJrIEEtRG9uZywKKwkJCQlZYXRhcC1Eb25nLCBCdW5kYW5nLUd1CisJCQkJU3VuZ25hbS1TaSBLeXVuZ2dpLURvLCA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLTcwICAgKGhleCkJCVNuZWxsCiswMDIzNzAgICAgIChiYXNlIDE2KQkJU25lbGwKKwkJCQlIYXJ0bWFuIEhvdXNlCisJCQkJRGFuZWhpbGwKKwkJCQlSZWFkaW5nIEJlcmtzIFJHNiA0UEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMy03MSAgIChoZXgpCQlTT0FNIFN5c3RlbAorMDAyMzcxICAgICAoYmFzZSAxNikJCVNPQU0gU3lzdGVsCisJCQkJMTgyLTEzLCBEYWVydW5nIFBvc3QgVG93ZXIgSUksIDE1MDQKKwkJCQlTZW91bCBHdXJvLWRvbmcsIEd1cm8tZ3UgMTUyLTg0NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy03MiAgIChoZXgpCQlNT1JFIFNUQVIgSU5EVVNUUklBTCBHUk9VUCBMSU1JVEVECiswMDIzNzIgICAgIChiYXNlIDE2KQkJTU9SRSBTVEFSIElORFVTVFJJQUwgR1JPVVAgTElNSVRFRAorCQkJCVJtMTIyMS0xMjI1LCBGMTIgU2FuZ2RhIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgQnVpbGRpbmcgLAorCQkJCUtlamkgUm9hZCAsIEhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0yMy03MyAgIChoZXgpCQlHcmlkSXJvbiBTeXN0ZW1zLCBJbmMuCiswMDIzNzMgICAgIChiYXNlIDE2KQkJR3JpZElyb24gU3lzdGVtcywgSW5jLgorCQkJCTcyNiBQYWxvbWFyIEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNzQgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjM3NCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTc1ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIzNzUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy03NiAgIChoZXgpCQlIVEMgQ29ycG9yYXRpb24KKzAwMjM3NiAgICAgKGJhc2UgMTYpCQlIVEMgQ29ycG9yYXRpb24KKwkJCQlOby4yMyBYaW5naHVhIFJvYWQKKwkJCQlUYW95dWFuIENpdHkKKwkJCQlUYW95dWFuIENvdW50eSAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy03NyAgIChoZXgpCQlJc290ZWsgRWxlY3Ryb25pY3MgTHRkCiswMDIzNzcgICAgIChiYXNlIDE2KQkJSXNvdGVrIEVsZWN0cm9uaWNzIEx0ZAorCQkJCTkgQ2xheXRvbiBXb29kIEJhbmsKKwkJCQlXZXN0IFBhcmsgUmluZyBSb2FkCisJCQkJTGVlZHMgIExTMTYgNlFaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjMtNzggICAoaGV4KQkJR04gTmV0Y29tIEEvUworMDAyMzc4ICAgICAoYmFzZSAxNikJCUdOIE5ldGNvbSBBL1MKKwkJCQlMYXV0cnVwYmplcmcgNworCQkJCVAuTy5Cb3ggOTkKKwkJCQlCYWxsZXJ1cCAgREsgLSAyNzUwCisJCQkJREVOTUFSSworCiswMC0yMy03OSAgIChoZXgpCQlVbmlvbiBCdXNpbmVzcyBNYWNoaW5lcyBDby4gTHRkLgorMDAyMzc5ICAgICAoYmFzZSAxNikJCVVuaW9uIEJ1c2luZXNzIE1hY2hpbmVzIENvLiBMdGQuCisJCQkJVW5pdCAyLCAyL0YsIEJsb2NrIEEsIEhvbmcgS29uZyBJbmR1c3RyaWFsIENlbnRyZSwKKwkJCQk0ODktNDkxIENhc3RsZSBQZWFrIFJvYWQsCisJCQkJTGFpIENoaSBLb2sgS293bG9vbiAKKwkJCQlIT05HIEtPTkcKKworMDAtMjMtN0EgICAoaGV4KQkJUklNCiswMDIzN0EgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzAwLTIzLTdCICAgKGhleCkJCVdIREkgTExDCiswMDIzN0IgICAgIChiYXNlIDE2KQkJV0hESSBMTEMKKwkJCQkyMzUwIE1pc3Npb24gQ29sbGVnZSBCbHZkLgorCQkJCVN1aXRlIDUwMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy03QyAgIChoZXgpCQlORU9USU9OCiswMDIzN0MgICAgIChiYXNlIDE2KQkJTkVPVElPTgorCQkJCVpJIGxlcyBQYWx1ZHMKKwkJCQkxNjUsIGF2ZW51ZSBkdSBNYXJpbiBCbGFuYworCQkJCUFVQkFHTkUgIEYtMTM0MDAKKwkJCQlGUkFOQ0UKKworMDAtMjMtN0QgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDIzN0QgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMgorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTdFICAgKGhleCkJCUVMU1RFUiBHTUJICiswMDIzN0UgICAgIChiYXNlIDE2KQkJRUxTVEVSIEdNQkgKKwkJCQlLVUhCUlVFQ0tFTlNUUkFTU0UgMi00CisJCQkJSEFNRUxOICAzMTc4NQorCQkJCUdFUk1BTlkKKworMDAtMjMtN0YgICAoaGV4KQkJUExBTlRST05JQ1MKKzAwMjM3RiAgICAgKGJhc2UgMTYpCQlQTEFOVFJPTklDUworCQkJCTM0NSBFTkNJTkFMIFNUCisJCQkJU0FOVEEgQ1JVWiBDQSA5NTA2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtODAgICAoaGV4KQkJTmFub3RlcQorMDAyMzgwICAgICAoYmFzZSAxNikJCU5hbm90ZXEKKwkJCQkgUE8gQm94IDc5OTEKKwkJCQkxIFBpZXRlciBTdHJlZXQsIEhpZ2h2ZWxkIFBhcmsKKwkJCQlDZW50dXJpb24gR2F1dGVuZyAwMDQ2CisJCQkJU09VVEggQUZSSUNBCisKKzAwLTIzLTgxICAgKGhleCkJCUxlbmdkYSBUZWNobm9sb2d5KFhpYW1lbikgQ28uLEx0ZC4KKzAwMjM4MSAgICAgKGJhc2UgMTYpCQlMZW5nZGEgVGVjaG5vbG9neShYaWFtZW4pIENvLixMdGQuCisJCQkJNS9GLCA0NyBIYWlqaW5nIFNvdXRoIDJuZCBSb2FkLFhpYW1lbiBFeHBvcnQgUHJvY2Vzc2luZyBab25lLCBIYWljYW5nIERpc3RyaWN0LAorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDI2CisJCQkJQ0hJTkEKKworMDAtMjMtODIgICAoaGV4KQkJTGloIFJvbmcgRWxlY3Ryb25pYyBFbnRlcnByaXNlIENvLiwgTHRkLgorMDAyMzgyICAgICAoYmFzZSAxNikJCUxpaCBSb25nIEVsZWN0cm9uaWMgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKwkJCQlOby4gMiwgTGFuZSAzODcsIEhzaW4gU2h1IFJkLgorCQkJCUhzaW4gQ2h1YW5nIENpdHksIFRhaXBlaSAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTgzICAgKGhleCkJCUluTWFnZSBTeXN0ZW1zIEluYworMDAyMzgzICAgICAoYmFzZSAxNikJCUluTWFnZSBTeXN0ZW1zIEluYworCQkJCTMyNTUtMSBTY290dCBCbHZkLCAjMTA0CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTg0ICAgKGhleCkJCUdHSCBFbmdpbmVlcmluZyBzLnIubC4KKzAwMjM4NCAgICAgKGJhc2UgMTYpCQlHR0ggRW5naW5lZXJpbmcgcy5yLmwuCisJCQkJVmlhIEFndWNjaGkgODQvMgorCQkJCUJvbG9nbmEgIDQwMTMzCisJCQkJSVRBTFkKKworMDAtMjMtODUgICAoaGV4KQkJQU5USVBPREUKKzAwMjM4NSAgICAgKGJhc2UgMTYpCQlBTlRJUE9ERQorCQkJCTUgUlVFIERFIERPVUFJCisJCQkJUEFSSVMgSUxFIERFIEZSQU5DRSA3NTAwOQorCQkJCUZSQU5DRQorCiswMC0yMy04NiAgIChoZXgpCQlUb3VyICYgQW5kZXJzc29uIEFCCiswMDIzODYgICAgIChiYXNlIDE2KQkJVG91ciAmIEFuZGVyc3NvbiBBQgorCQkJCUFubmVsdW5kCisJCQkJTGp1bmcgIDUyNCA4MAorCQkJCVNXRURFTgorCiswMC0yMy04NyAgIChoZXgpCQlUaGlua0Zsb29kLCBJbmMuCiswMDIzODcgICAgIChiYXNlIDE2KQkJVGhpbmtGbG9vZCwgSW5jLgorCQkJCTEzOCBDbGFmbGluIFN0CisJCQkJQmVsbW9udCBNQSAwMjQ3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtODggICAoaGV4KQkJVi5ULiBUZWxlbWF0aWNhIFMucC5hLgorMDAyMzg4ICAgICAoYmFzZSAxNikJCVYuVC4gVGVsZW1hdGljYSBTLnAuYS4KKwkJCQlWaWEgR29ya3ksIDIxCisJCQkJU2FuIEdpdWxpYW5vIE1pbGFuZXNlIE1pbGFubyAyMDA5OAorCQkJCUlUQUxZCisKKzAwLTIzLTg5ICAgKGhleCkJCUhBTkdaSE9VIEgzQyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDIzODkgICAgIChiYXNlIDE2KQkJSEFOR1pIT1UgSDNDIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlPcmllbnRhbCBFbGVjdHJvbmljcyBCbGRnLiwgIzIsIENodWFuZ3llIFJvYWQ/P1NoYW5nZGkgSW5mb3JtYXRpb24gSW5kdXN0cnkgQmFzZSwKKwkJCQlIYWlkaWFuIERpc3RyaWN0LCBCZWlqaW5nLCBQLlIuQ2hpbmEKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0yMy04QSAgIChoZXgpCQlDaWVuYSBDb3Jwb3JhdGlvbgorMDAyMzhBICAgICAoYmFzZSAxNikJCUNpZW5hIENvcnBvcmF0aW9uCisJCQkJOTIwIEVsa3JpZGdlIExhbmRpbmcKKwkJCQlMaW50aGljdW0gTUQgMjEwOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLThCICAgKGhleCkJCVF1YW50YSBDb21wdXRlciBJbmMuCiswMDIzOEIgICAgIChiYXNlIDE2KQkJUXVhbnRhIENvbXB1dGVyIEluYy4KKwkJCQlOTy4gMjExLCBXRU4gSFdBIDJSRC4sS1VFSSBTSEFOIEhTSUFORywgVEFPIFlVQU4gU0hJRU4sCisJCQkJVEFJUEVJIFRBSVdBTiAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLThDICAgKGhleCkJCVBSSVZBVEUKKzAwMjM4QyAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMjMtOEQgICAoaGV4KQkJVGVjaG5vIERlc2lnbiBDby4sIEx0ZC4KKzAwMjM4RCAgICAgKGJhc2UgMTYpCQlUZWNobm8gRGVzaWduIENvLiwgTHRkLgorCQkJCTMxMi0yCisJCQkJVG9yaWtvLCBOaXNoaWhhcmEtbXVyYQorCQkJCUFzby1ndW4gS3VtYW1vdG8ta2VuIDg2MS0yNDAxCisJCQkJSkFQQU4KKworMDAtMjMtOEUgICAoaGV4KQkJUElSRUxMSSBCUk9BREJBTkQgU09MVVRJT05TCiswMDIzOEUgICAgIChiYXNlIDE2KQkJUElSRUxMSSBCUk9BREJBTkQgU09MVVRJT05TCisJCQkJVklBTEUgU0FSQ0EgMjIyCisJCQkJTUlMQU5PICAyMDEyNgorCQkJCUlUQUxZCisKKzAwLTIzLThGICAgKGhleCkJCU5JREVDIENPUEFMIENPUlBPUkFUSU9OCiswMDIzOEYgICAgIChiYXNlIDE2KQkJTklERUMgQ09QQUwgQ09SUE9SQVRJT04KKwkJCQkyLTE4LTEwLFNISU1VUkEKKwkJCQlJVEFCQVNISS1LVSBUT0tZTyAxNzQtODU1MAorCQkJCUpBUEFOCisKKzAwLTIzLTkwICAgKGhleCkJCUFsZ29sd2FyZSBDb3Jwb3JhdGlvbgorMDAyMzkwICAgICAoYmFzZSAxNikJCUFsZ29sd2FyZSBDb3Jwb3JhdGlvbgorCQkJCTEzRi01LCBOby4gNzcsIFNlYy4gMSwgU2ludGFpIDV0aCBSZC4sCisJCQkJU2lqaGloIENpdHksCisJCQkJVGFpcGVpIENvdW50eSBUYWl3YW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy05MSAgIChoZXgpCQlNYXhpYW4KKzAwMjM5MSAgICAgKGJhc2UgMTYpCQlNYXhpYW4KKwkJCQkyMXRoIEZsLiBLSU5TIHRvd2VyLCAyNS0xCisJCQkJSmVvbmphLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbS1jaXR5IEd5ZW9uZ2dpLWRvIDQ2My04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtOTIgICAoaGV4KQkJUHJvdGV1cyBJbmR1c3RyaWVzIEluYy4KKzAwMjM5MiAgICAgKGJhc2UgMTYpCQlQcm90ZXVzIEluZHVzdHJpZXMgSW5jLgorCQkJCTM0MCBQaW9uZWVyIFdheQorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTkzICAgKGhleCkJCUFKSU5FWFRFSworMDAyMzkzICAgICAoYmFzZSAxNikJCUFKSU5FWFRFSworCQkJCTktMywgSG9saW1kb25nLCBEYWxzZW9ndQorCQkJCURhZWd1ICA3MDQtMjQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLTk0ICAgKGhleCkJCVNhbWplb24KKzAwMjM5NCAgICAgKGJhc2UgMTYpCQlTYW1qZW9uCisJCQkJIzEzMTMtMSBKb2lsLVJpLCBTYW1kb25nLU15ZXVuLFVsanUtR3VuCisJCQkJVWxzYW4gQ2l0eSBTb3V0aCBLb3JlYSA2ODktOTM0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLTk1ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIzOTUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy05NiAgIChoZXgpCQlBTkRFUyBURUNITk9MT0dZIENPUlBPUkFUSU9OCiswMDIzOTYgICAgIChiYXNlIDE2KQkJQU5ERVMgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCTJGLE5vLiAxLCBMaS1Ic2luIEZpcnN0IFJvYWQsCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luLUNodSBUYWl3YW4gMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy05NyAgIChoZXgpCQlXZXN0ZWxsIFRlY2hub2xvZ2llcyBJbmMuCiswMDIzOTcgICAgIChiYXNlIDE2KQkJV2VzdGVsbCBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTExODUyIFByZXNsZXkgQ3IKKwkJCQlQbGFpbmZpZWxkIElMIDYwNTg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy05OCAgIChoZXgpCQlTa3kgQ29udHJvbAorMDAyMzk4ICAgICAoYmFzZSAxNikJCVNreSBDb250cm9sCisJCQkJdWwuIFN2b3Jub3N0aSA0MQorCQkJCUJyYXRpc2xhdmEgQkEgODIgMTA3CisJCQkJU0xPVkFLSUEKKworMDAtMjMtOTkgICAoaGV4KQkJVkQgRGl2aXNpb24sIFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uCiswMDIzOTkgICAgIChiYXNlIDE2KQkJVkQgRGl2aXNpb24sIFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uCisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIHllb25ndG9uZy1ndSwgU3V3b24tY2l0eQorCQkJCUtvcmVhCisJCQkJU3V3b24gIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtOUEgICAoaGV4KQkJRWFzeURhdGEgU29mdHdhcmUgR21iSAorMDAyMzlBICAgICAoYmFzZSAxNikJCUVhc3lEYXRhIFNvZnR3YXJlIEdtYkgKKwkJCQlTdGVpbmJhY2hlciBTdHJhc3NlIDE0LTI0CisJCQkJRXNjaGJvcm4gLyBUcy4gSGVzc2VuIEQtNjU3NjAKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLTlCICAgKGhleCkJCUVsc3RlciBTb2x1dGlvbnMsIExMQworMDAyMzlCICAgICAoYmFzZSAxNikJCUVsc3RlciBTb2x1dGlvbnMsIExMQworCQkJCTIwOCBTb3V0aCBSb2dlcnMgTGFuZQorCQkJCVJhbGVpZ2ggTm9ydGggQ2Fyb2xpbmEgMjc2MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTlDICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzAwMjM5QyAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtOUQgICAoaGV4KQkJTWFwb3dlciBFbGVjdHJvbmljcyBDby4sIEx0ZAorMDAyMzlEICAgICAoYmFzZSAxNikJCU1hcG93ZXIgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKwkJCQlOby4gNTAgTWlucXVhbiBSb2FkCisJCQkJTHV6aHUgU2hpYW5nCisJCQkJVGFveXVhbiBDb3VudHkgIDMzODQ2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy05RSAgIChoZXgpCQlKaWFuZ3N1IExlbW90ZSBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWQKKzAwMjM5RSAgICAgKGJhc2UgMTYpCQlKaWFuZ3N1IExlbW90ZSBUZWNobm9sb2d5IENvcnBvcmF0aW9uIExpbWl0ZWQKKwkJCQlNZW5nbGFuIEluZHVzdHJpYWwgUGFyayxZdXNoYW4KKwkJCQlDaGFuZ3NodSBKaWFuZ3N1IDIxNTUwMAorCQkJCUNISU5BCisKKzAwLTIzLTlGICAgKGhleCkJCUluc3RpdHV0IGZ1ciBQcnVmdGVjaG5paworMDAyMzlGICAgICAoYmFzZSAxNikJCUluc3RpdHV0IGZ1ciBQcnVmdGVjaG5paworCQkJCVNjaHVsc3RyLiAzCisJCQkJVG9kdGVud2VpcyBCYXllcm4gODY0NDcKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLUEwICAgKGhleCkJCUhhbmEgQ05TIENvLiwgTFRELgorMDAyM0EwICAgICAoYmFzZSAxNikJCUhhbmEgQ05TIENvLiwgTFRELgorCQkJCVRhZWphbmctZG9uZyAxNzIwLTUyIFRhZWphbmctTm9uZ0dvbmctRGFuamkKKwkJCQlXb25qdSBHYW5nd29uLWRvIDIyMC05NjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtQTEgICAoaGV4KQkJVHJlbmQgRWxlY3Ryb25pY3MgTHRkCiswMDIzQTEgICAgIChiYXNlIDE2KQkJVHJlbmQgRWxlY3Ryb25pY3MgTHRkCisJCQkJR3V0IE5vLiAzNTAKKwkJCQlWaWxsYWdlIC0gQmhhbGdhb24KKwkJCQlBdXJhbmFnYWJhZCBNYWhhcmFzaHRyYSA0MzEyMTAKKwkJCQlJTkRJQQorCiswMC0yMy1BMiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyM0EyICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQTMgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjNBMyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUE0ICAgKGhleCkJCU5ldyBDb25jZXB0cyBEZXZlbG9wbWVudCBDb3JwLgorMDAyM0E0ICAgICAoYmFzZSAxNikJCU5ldyBDb25jZXB0cyBEZXZlbG9wbWVudCBDb3JwLgorCQkJCTI2NTAgQnJpZGdlIExhbmUKKwkJCQlXb29kc3RvY2sgSUwgNjAwOTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUE1ICAgKGhleCkJCVNhZ2VUViwgTExDCiswMDIzQTUgICAgIChiYXNlIDE2KQkJU2FnZVRWLCBMTEMKKwkJCQk5ODAwIFMuIExhIENpZW5lZ2EgQmx2ZAorCQkJCVN1aXRlIDkwNQorCQkJCUluZ2xld29vZCBDQSA5MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQTYgICAoaGV4KQkJRS1Nb24KKzAwMjNBNiAgICAgKGJhc2UgMTYpCQlFLU1vbgorCQkJCU9uZSBPeGZvcmQgVmFsbGV5LCBTdWl0ZSA0MTgKKwkJCQlMYW5naG9ybmUgUEEgMTkwNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUE3ICAgKGhleCkJCVJlZHBpbmUgU2lnbmFscywgSW5jLgorMDAyM0E3ICAgICAoYmFzZSAxNikJCVJlZHBpbmUgU2lnbmFscywgSW5jLgorCQkJCVBsb3QgODcsIFNhZ2FyIFNvY2lldHkKKwkJCQlCYW5qYXJhIEhpbGxzIFJvYWQgTm8uIDIKKwkJCQlIeWRlcmFiYWQgQVAgNTAwMDM0CisJCQkJSU5ESUEKKworMDAtMjMtQTggICAoaGV4KQkJTWFyc2hhbGwgRWxlY3Ryb25pY3MKKzAwMjNBOCAgICAgKGJhc2UgMTYpCQlNYXJzaGFsbCBFbGVjdHJvbmljcworCQkJCTE5MTAgRSBNYXBsZSBBdmUKKwkJCQlFbCBTZWd1bmRvIENhIDkwMjQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1BOSAgIChoZXgpCQlCZWlqaW5nIERldGlhbnF1YW4gRWxlY3Ryb21lY2hhbmljYWwgRXF1aXBtZW50IENvLiwgTHRkCiswMDIzQTkgICAgIChiYXNlIDE2KQkJQmVpamluZyBEZXRpYW5xdWFuIEVsZWN0cm9tZWNoYW5pY2FsIEVxdWlwbWVudCBDby4sIEx0ZAorCQkJCU5vLiAyIENoYXBlbmcgUm9hZCwgSGFpZGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwOTEKKwkJCQlDSElOQQorCiswMC0yMy1BQSAgIChoZXgpCQlIRlIsIEluYy4KKzAwMjNBQSAgICAgKGJhc2UgMTYpCQlIRlIsIEluYy4KKwkJCQk1RiwgSGFuYSBFWiBUb3dlcgorCQkJCTE1OCwgR3VtaS1kb25nLCBCdW5kYW5nLWd1CisJCQkJU3VuZ25hbS1zaSBLeXVuZ2dpLWRvIDQ2My04NzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtQUIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyM0FCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUFDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjNBQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1BRCAgIChoZXgpCQlYbWFyayBDb3Jwb3JhdGlvbgorMDAyM0FEICAgICAoYmFzZSAxNikJCVhtYXJrIENvcnBvcmF0aW9uCisJCQkJMzA5IExlZ2dldCAgRHJpdmUKKwkJCQlPdHRhd2EgT250YXJpbyBLMksgM0EzCisJCQkJQ0FOQURBCisKKzAwLTIzLUFFICAgKGhleCkJCURlbGwgSW5jLgorMDAyM0FFICAgICAoYmFzZSAxNikJCURlbGwgSW5jLgorCQkJCU9uZSBEZWxsIFdheSwgTVMgUlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQUYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjNBRiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVLlMuIEhpZ2h3YXkgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSWxsaW5vaXMgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUIwICAgKGhleCkJCUNPTVhJT04gVGVjaG5vbG9neSBJbmMuCiswMDIzQjAgICAgIChiYXNlIDE2KQkJQ09NWElPTiBUZWNobm9sb2d5IEluYy4KKwkJCQkxMUYsIE5vLiAxMTEsIFNlYyAyLCBLZWVsdW5nIFJkLiwgU2lueWkgRGlzdHJpYworCQkJCVRhaXBlaSBUYWl3YW4gMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy1CMSAgIChoZXgpCQlMb25nY2hlZXIgVGVjaG5vbG9neSAoU2luZ2Fwb3JlKSBQdGUgTHRkCiswMDIzQjEgICAgIChiYXNlIDE2KQkJTG9uZ2NoZWVyIFRlY2hub2xvZ3kgKFNpbmdhcG9yZSkgUHRlIEx0ZAorCQkJCTQzIEtha2kgQnVraXQgVmlldywgICMwNC0wMSAgLAorCQkJCUtha2kgQnVraXQgVGVjaCBQYXJrIElJLAorCQkJCTQxNTk3MAorCQkJCVNJTkdBUE9SRQorCiswMC0yMy1CMiAgIChoZXgpCQlJbnRlbGxpZ2VudCBNZWNoYXRyb25pYyBTeXN0ZW1zIEluYworMDAyM0IyICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IE1lY2hhdHJvbmljIFN5c3RlbXMgSW5jCisJCQkJMTYxIFJvZ2VyIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJKIDFCMQorCQkJCUNBTkFEQQorCiswMC0yMy1CMyAgIChoZXgpCQlMeXluIEFCCiswMDIzQjMgICAgIChiYXNlIDE2KQkJTHl5biBBQgorCQkJCUlERU9OIFNjaWVuY2UgUGFyaworCQkJCVNjaGVlbGV2YWdlbiAxNworCQkJCUx1bmQgIDIyMyA3MAorCQkJCVNXRURFTgorCiswMC0yMy1CNCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyM0I0ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiB2ICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yMy1CNSAgIChoZXgpCQlPUlRBTkEgTFRECiswMDIzQjUgICAgIChiYXNlIDE2KQkJT1JUQU5BIExURAorCQkJCU9TVElNIEtPQ0FTSU5BTiBTQU5BWUkgU0lURVNJCisJCQkJMTMuIFNPS0FLIE5POjM3LTM5IFkuIE1BSEFMTEUKKwkJCQlBTktBUkEgIDA2MzcwCisJCQkJVFVSS0VZCisKKzAwLTIzLUI2ICAgKGhleCkJCVNFQ1VSSVRFIENPTU1VTklDQVRJT05TIC8gSE9ORVlXRUxMCiswMDIzQjYgICAgIChiYXNlIDE2KQkJU0VDVVJJVEUgQ09NTVVOSUNBVElPTlMgLyBIT05FWVdFTEwKKwkJCQlGT05UIERFIEwnT1JNRQorCQkJCTExOTggQVYgRFUgRE9DVEVVUiBET05BVAorCQkJCU1PVUdJTlMgRlJBTkNFIDA2MjUwCisJCQkJRlJBTkNFCisKKzAwLTIzLUI3ICAgKGhleCkJCVEtTGlnaHQgQ28uLCBMdGQuCiswMDIzQjcgICAgIChiYXNlIDE2KQkJUS1MaWdodCBDby4sIEx0ZC4KKwkJCQkxNzgtMSBXb29neWUtUmksIFNhbmdkb25nLU15dW4sCisJCQkJR2ltaGFlLVNpIEd5dW5nc2FuZ05hbS1EbyA2MjEtODEyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLUI4ICAgKGhleCkJCVNpY2h1YW4gSml1emhvdSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAyM0I4ICAgICAoYmFzZSAxNikJCVNpY2h1YW4gSml1emhvdSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCU5vLjI1OSBKaXV6aG91IFJvYWQsCisJCQkJTWlhbnlhbmcgU2ljaHVhbiA2MjEwMDAKKwkJCQlDSElOQQorCiswMC0yMy1COSAgIChoZXgpCQlFQURTIERldXRzY2hsYW5kIEdtYkgKKzAwMjNCOSAgICAgKGJhc2UgMTYpCQlFQURTIERldXRzY2hsYW5kIEdtYkgKKwkJCQlXaWxseSBNZXNzZXJzY2htaXR0IFN0ci4KKwkJCQlPdHRvYnJ1bm4gQmF2YXJpYSA4NTUyMQorCQkJCUdFUk1BTlkKKworMDAtMjMtQkEgICAoaGV4KQkJQ2hyb21hCiswMDIzQkEgICAgIChiYXNlIDE2KQkJQ2hyb21hCisJCQkJNjgsIEh3YS1ZYSAxc3QgUmQuLCBId2EtWWEgVGVjaG5pY2FsIFBhcmssCisJCQkJS3VlaS1TaGFuIEhzaWFuZywKKwkJCQlUYW95dWFuIEhzaWVuIFRhaXdhbiAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLUJCICAgKGhleCkJCVNjaG1pdHQgSW5kdXN0cmllcworMDAyM0JCICAgICAoYmFzZSAxNikJCVNjaG1pdHQgSW5kdXN0cmllcworCQkJCTI3NjUgTlcgTmljb2xhaSBTdAorCQkJCVBvcnRsYW5kIE9yZWdvbiA5NzIxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQkMgICAoaGV4KQkJRVEtU1lTIEdtYkgKKzAwMjNCQyAgICAgKGJhc2UgMTYpCQlFUS1TWVMgR21iSAorCQkJCUhpbnRlciBkZW4gR2FydGVuIDE1YgorCQkJCVRyZXVlbmJyaWV0emVuIE9UIEZlbGRoZWltIEJyYW5kZW5idXJnIDE0OTI5CisJCQkJR0VSTUFOWQorCiswMC0yMy1CRCAgIChoZXgpCQlEaWdpdGFsIEFsbHksIEluYy4KKzAwMjNCRCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIEFsbHksIEluYy4KKwkJCQkxMjE4IFZhbGxleSBSaWRnZSBEcml2ZQorCQkJCUdyYWluIFZhbGxleSBNTyA2NDAyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQkUgICAoaGV4KQkJQ2lzY28gU1BWVEcKKzAwMjNCRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1CRiAgIChoZXgpCQlNYWlucGluZSwgSW5jLgorMDAyM0JGICAgICAoYmFzZSAxNikJCU1haW5waW5lLCBJbmMuCisJCQkJUE8gQm94IDI0MQorCQkJCVdpbHNvbnZpbGxlIE9yZWdvbiA5NzA3MC0wMjQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1DMCAgIChoZXgpCQlCcm9hZHdheSBOZXR3b3JrcworMDAyM0MwICAgICAoYmFzZSAxNikJCUJyb2Fkd2F5IE5ldHdvcmtzCisJCQkJMTc1NCBUZWNobm9sb2d5IERyaXZlLCBTdWl0ZSAyMDgKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1DMSAgIChoZXgpCQlTZWN1cml0YXMgRGlyZWN0IEFCCiswMDIzQzEgICAgIChiYXNlIDE2KQkJU2VjdXJpdGFzIERpcmVjdCBBQgorCQkJCUthbGVuZGVnYXRhbiAyNgorCQkJCU1hbG1vICAyMDMyMAorCQkJCVNXRURFTgorCiswMC0yMy1DMiAgIChoZXgpCQlTQU1TVU5HIEVsZWN0cm9uaWNzLiBDby4gTFRECiswMDIzQzIgICAgIChiYXNlIDE2KQkJU0FNU1VORyBFbGVjdHJvbmljcy4gQ28uIExURAorCQkJCTE5dGggRmwuLCBLb3JlYSBMaWZlIEJsZGcuIDEzMzgtMTIKKwkJCQlTZW9jaG8gMiBEb25nIFNlb2Noby1ndSBEb21hc3RpYyBTYWxlcyYgTWFya2V0aW5nIERpdmlzaW9uCisJCQkJU2VvdWwgIDEzNy04NjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtQzMgICAoaGV4KQkJTG9nTWVJbiwgSW5jLgorMDAyM0MzICAgICAoYmFzZSAxNikJCUxvZ01lSW4sIEluYy4KKwkJCQk1MDAgVW5pY29ybiBQYXJrIERyaXZlCisJCQkJV29idXJuIE1hc3NhY2h1c2V0dHMgMDE4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUM0ICAgKGhleCkJCUx1eCBMdW1lbgorMDAyM0M0ICAgICAoYmFzZSAxNikJCUx1eCBMdW1lbgorCQkJCUtlcm5lbmVyZ2llc3RyYWF0IDUzQQorCQkJCVdpbHJpamsgQW50d2VycCAyNjEwCisJCQkJQkVMR0lVTQorCiswMC0yMy1DNSAgIChoZXgpCQlSYWRpYXRpb24gU2FmZXR5IGFuZCBDb250cm9sIFNlcnZpY2VzIEluYworMDAyM0M1ICAgICAoYmFzZSAxNikJCVJhZGlhdGlvbiBTYWZldHkgYW5kIENvbnRyb2wgU2VydmljZXMgSW5jCisJCQkJOTEgUG9ydHNtb3V0aCBBdmUKKwkJCQlTdHJhdGhhbSBOZXcgSGFtcHNoaXJlIDAzODg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1DNiAgIChoZXgpCQlTTUMgQ29ycG9yYXRpb24KKzAwMjNDNiAgICAgKGJhc2UgMTYpCQlTTUMgQ29ycG9yYXRpb24KKwkJCQk0LTItMiwgS2ludW5vZGFpCisJCQkJVHN1a3ViYSBNaXJhaS1zaGkgSWJhcmFraS1rZW4gMzAwLTI0OTMKKwkJCQlKQVBBTgorCiswMC0yMy1DNyAgIChoZXgpCQlBVlN5c3RlbQorMDAyM0M3ICAgICAoYmFzZSAxNikJCUFWU3lzdGVtCisJCQkJdWwuIEZyaWVkbGVpbmEgNAorCQkJCUtyYWtvdyBtYT9vcG9sc2tpZSAzMC0wMDkKKwkJCQlQT0xBTkQKKworMDAtMjMtQzggICAoaGV4KQkJVEVBTS1SCiswMDIzQzggICAgIChiYXNlIDE2KQkJVEVBTS1SCisJCQkJR3JhZ2RhbnNraSBzdHIuMTExLCBBLCA5LU4KKwkJCQlTdC4gUGV0ZXJzYnVyZyAgMTk1MjY1CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTIzLUM5ICAgKGhleCkJCVNpY2h1YW4gVGlhbnlpIEluZm9ybWF0aW9uIFNjaWVuY2UgJiBUZWNobm9sb2d5IFN0b2NrIENPLixMVEQKKzAwMjNDOSAgICAgKGJhc2UgMTYpCQlTaWNodWFuIFRpYW55aSBJbmZvcm1hdGlvbiBTY2llbmNlICYgVGVjaG5vbG9neSBTdG9jayBDTy4sTFRECisJCQkJTm8uMSxIb3QgU3ByaW5nIEhpZ2h3YXksRGF5aSBDb3VudHkKKwkJCQlDaGVuZ2R1IFNpY2h1YW4gNjExMzMwCisJCQkJQ0hJTkEKKworMDAtMjMtQ0EgICAoaGV4KQkJQmVoaW5kIFRoZSBTZXQsIExMQworMDAyM0NBICAgICAoYmFzZSAxNikJCUJlaGluZCBUaGUgU2V0LCBMTEMKKwkJCQkyMTg1IEtub2xsd29vZCBEci4KKwkJCQlCb3VsZGVyIENPIDgwMzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1DQiAgIChoZXgpCQlTaGVuemhlbiBGdWxsLWpvaW4gVGVjaG5vbG9neSBDby4sTHRkCiswMDIzQ0IgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gRnVsbC1qb2luIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTkvRixOby4xLFhpbnJ1aSBSb2FkLEhvdXJ1aSAsWGl4aWFuZyBUb3duLCBCYW8nYW4gRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworMDAtMjMtQ0MgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDIzQ0MgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMjMtQ0QgICAoaGV4KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCiswMDIzQ0QgICAgIChiYXNlIDE2KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCisJCQkJU291dGggQnVpbGRpbmcsIE5vLjUgS2V5dWFuIFJvYWQsIENlbnRyYWwgWm9uZSwKKwkJCQlTY2llbmNlICYgVGVjaG5vbG9neSBQYXJrIE5hbnNoYW4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworMDAtMjMtQ0UgICAoaGV4KQkJS0lUQSBERU5TSEkgQ09SUE9SQVRJT04KKzAwMjNDRSAgICAgKGJhc2UgMTYpCQlLSVRBIERFTlNISSBDT1JQT1JBVElPTgorCQkJCTEyRiBUT0tZTy1OSVNISUlLRUJVS1VSTyBCaWxnLiwKKwkJCQkxLTctNywgTmlzaGktaWtlYnVrdXJvCisJCQkJVG9zaGltYS1rdSwgVG9reW8gMTcxLTAwMjEKKwkJCQlKQVBBTgorCiswMC0yMy1DRiAgIChoZXgpCQlDVU1NSU5TLUFMTElTT04gQ09SUC4KKzAwMjNDRiAgICAgKGJhc2UgMTYpCQlDVU1NSU5TLUFMTElTT04gQ09SUC4KKwkJCQk4OTEgRkVFSEFOVklMTEUgRFJJVkUKKwkJCQlNVC4gUFJPU1BFQ1QgSUwgNjAwNTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUQwICAgKGhleCkJCVVuaWxvYyBVU0EgSW5jLgorMDAyM0QwICAgICAoYmFzZSAxNikJCVVuaWxvYyBVU0EgSW5jLgorCQkJCTMzMzMgTWljaGVsc29uIERyaXZlCisJCQkJU3VpdGUgNjAwCisJCQkJSXJ2aW5lIENBIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1EMSAgIChoZXgpCQlUUkcKKzAwMjNEMSAgICAgKGJhc2UgMTYpCQlUUkcKKwkJCQlXaXNtYSBLb3Nnb3JvIDEzdGggRmxvb3IKKwkJCQlKbC4gTUguIFRoYW1yaW4gNTMKKwkJCQlKYWthcnRhIFB1c2F0ICAxMDM1MAorCQkJCUlORE9ORVNJQQorCiswMC0yMy1EMiAgIChoZXgpCQlJbmhhbmQgRWxlY3Ryb25pY3MsIEluYy4KKzAwMjNEMiAgICAgKGJhc2UgMTYpCQlJbmhhbmQgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQkzMCBXZXN0IEd1ZGUgRHJpdmUKKwkJCQlTdWl0ZSA1NTAKKwkJCQlSb2NrdmlsbGUgTWFyeWxhbmQgMjA4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUQzICAgKGhleCkJCUFpckxpbmsgV2lGaSBOZXR3b3JraW5nIENvcnAuCiswMDIzRDMgICAgIChiYXNlIDE2KQkJQWlyTGluayBXaUZpIE5ldHdvcmtpbmcgQ29ycC4KKwkJCQkxOUYtMSBSb29tIEEgLCBOby45NywgU2VjIDQsIENodW5nIEhzaW4gUmQuLAorCQkJCVNhbiBDaHVuZyBDaXR5LCBUYWlwZWkgSHNpZW4gMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy1ENCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAyM0Q0ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1ENSAgIChoZXgpCQlXQVJFTUEgZWxlY3Ryb25pYyBHbWJICiswMDIzRDUgICAgIChiYXNlIDE2KQkJV0FSRU1BIGVsZWN0cm9uaWMgR21iSAorCQkJCURpbGxiZXJnIDMzCisJCQkJTWFya3RoZWlkZW5mZWxkIEJhdmFyaWEgOTc4MjgKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLUQ2ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLExURAorMDAyM0Q2ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLExURAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy1ENyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCiswMDIzRDcgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy1EOCAgIChoZXgpCQlCYWxsLUl0IE95CiswMDIzRDggICAgIChiYXNlIDE2KQkJQmFsbC1JdCBPeQorCQkJCVV1c2lrYXR1IDI0IEcgNzYKKwkJCQlPdWx1ICA5MDEwMAorCQkJCUZJTkxBTkQKKworMDAtMjMtRDkgICAoaGV4KQkJQmFubmVyIEVuZ2luZWVyaW5nCiswMDIzRDkgICAgIChiYXNlIDE2KQkJQmFubmVyIEVuZ2luZWVyaW5nCisJCQkJOTcxNCAxMHRoIEF2ZS4gTi4KKwkJCQlQbHltb3V0aCBNTiA1NTQ0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtREEgICAoaGV4KQkJSW5kdXN0cmlhbCBDb21wdXRlciBTb3VyY2UgKERldXRzY2hsYW5kKUdtYkgKKzAwMjNEQSAgICAgKGJhc2UgMTYpCQlJbmR1c3RyaWFsIENvbXB1dGVyIFNvdXJjZSAoRGV1dHNjaGxhbmQpR21iSAorCQkJCU1hcmllLUN1cmllLVN0cmFzc2UgOQorCQkJCVB1bGhlaW0gTlJXIDUwMjU5CisJCQkJR0VSTUFOWQorCiswMC0yMy1EQiAgIChoZXgpCQlzYXhuZXQgZ21iaAorMDAyM0RCICAgICAoYmFzZSAxNikJCXNheG5ldCBnbWJoCisJCQkJV2lsbHktQnJhbmR0LVJpbmcgMQorCQkJCU9lbHNuaXR6IFNhY2hzZW4gMDg2MDYKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLURDICAgKGhleCkJCUJlbmVpbiwgSW5jCiswMDIzREMgICAgIChiYXNlIDE2KQkJQmVuZWluLCBJbmMKKwkJCQlIeW9qYWNob25qZXNhbmdnYTIyOCBCOSwgMjk3LAorCQkJCXNlb2h5dW4tZG9uZywgYnVuZGFuZy1ndQorCQkJCVNlbmduYW0tc2kgS3l1bmdnaS1kbyA0NjMtODE4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLUREICAgKGhleCkJCUVMR0lOIFMuQS4KKzAwMjNERCAgICAgKGJhc2UgMTYpCQlFTEdJTiBTLkEuCisJCQkJUlVBIEJBUkFPIERFIENBTVBJTkFTLCAzMDUKKwkJCQlDQU1QT1MgRUxJU0VPUworCQkJCVNBTyBQQVVMTyAgMDEyMDEtOTAxCisJCQkJQlJBWklMCisKKzAwLTIzLURFICAgKGhleCkJCUFuc3luYyBJbmMuCiswMDIzREUgICAgIChiYXNlIDE2KQkJQW5zeW5jIEluYy4KKwkJCQk0OTcwIFJvYmVydCBKIE1hdHRoZXdzIFBreQorCQkJCVN1aXRlIDE2MAorCQkJCUVsIERvcmFkbyBIaWxscyBDQSA5NTc2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtREYgICAoaGV4KQkJQXBwbGUsIEluYworMDAyM0RGICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUUwICAgKGhleCkJCUlOTyBUaGVyYXBldXRpY3MgTExDCiswMDIzRTAgICAgIChiYXNlIDE2KQkJSU5PIFRoZXJhcGV1dGljcyBMTEMKKwkJCQkyOTAyIERhaXJ5IERyaXZlCisJCQkJTWFkaXNvbiBXSSA1MzcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRTEgICAoaGV4KQkJQ2F2ZW5hIEltYWdlIFByb2R1Y3RzIEFCCiswMDIzRTEgICAgIChiYXNlIDE2KQkJQ2F2ZW5hIEltYWdlIFByb2R1Y3RzIEFCCisJCQkJTnl0b3Jwc3ZhZ2VuIDI2CisJCQkJVGFieSBTdG9ja2hvbG0gc2UtMTgzIDUzCisJCQkJU1dFREVOCisKKzAwLTIzLUUyICAgKGhleCkJCVNFQSBTaWduYWxpc2F0aW9uCiswMDIzRTIgICAgIChiYXNlIDE2KQkJU0VBIFNpZ25hbGlzYXRpb24KKwkJCQkyMC0yMiBSdWUgUGllcnJlIE1lbmRlcyBGcmFuY2UKKwkJCQlCUCAyMzEKKwkJCQlWYXVseCBlbiBWZWxpbiBDRURFWCAgNjk1MTUKKwkJCQlGUkFOQ0UKKworMDAtMjMtRTMgICAoaGV4KQkJTWljcm90cm9uaWMgQUcKKzAwMjNFMyAgICAgKGJhc2UgMTYpCQlNaWNyb3Ryb25pYyBBRworCQkJCUR1ZW5uZXJuc3RyYXNzZSAzMgorCQkJCU9lbnNpbmdlbiBTb2xvdGh1cm4gNDcwMgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTIzLUU0ICAgKGhleCkJCUlQbmVjdCBjby4gbHRkLgorMDAyM0U0ICAgICAoYmFzZSAxNikJCUlQbmVjdCBjby4gbHRkLgorCQkJCTgwOCBhbGJhdHJvc3MgQi9EIDIzNy0xOAorCQkJCUdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLUU1ICAgKGhleCkJCUlQYVhpb20gTmV0d29ya3MKKzAwMjNFNSAgICAgKGJhc2UgMTYpCQlJUGFYaW9tIE5ldHdvcmtzCisJCQkJQXN0b24gQ291cnQKKwkJCQlLaW5nc21lYWQgQnVzaW5lc3MgUGFyaywgRnJlZGVyaWNrIFBsYWNlCisJCQkJSGlnaCBXeWNvbWJlIEJ1Y2tpbmdoYW1zaGlyZSBIUDExIDFMQQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIzLUU2ICAgKGhleCkJCVBpcmt1cywgSW5jLgorMDAyM0U2ICAgICAoYmFzZSAxNikJCVBpcmt1cywgSW5jLgorCQkJCTJGLDEtMS0yCisJCQkJU2hpbXVyYQorCQkJCUl0YWJhc2hpLWt1IFRva3lvIDE3NC0wMDU2CisJCQkJSkFQQU4KKworMDAtMjMtRTcgICAoaGV4KQkJSGlua2UgQS9TCiswMDIzRTcgICAgIChiYXNlIDE2KQkJSGlua2UgQS9TCisJCQkJVGluZ2JqZXJndmVqIDIKKwkJCQlCamFldmVyc2tvdiAgREstNDYzMgorCQkJCURFTk1BUksKKworMDAtMjMtRTggICAoaGV4KQkJRGVtY28gQ29ycC4KKzAwMjNFOCAgICAgKGJhc2UgMTYpCQlEZW1jbyBDb3JwLgorCQkJCSM5MTksIERvb3NhbiBWZW50dXJlZGlnbSwgMTI2LTEKKwkJCQlQeXVuZ2Nob24tRG9uZywgRG9uZ2FuLUt1CisJCQkJQW55YW5nLVNpIEt5dW5na2ktRG8gNDMxLTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy1FOSAgIChoZXgpCQlGNSBOZXR3b3JrcywgSW5jLgorMDAyM0U5ICAgICAoYmFzZSAxNikJCUY1IE5ldHdvcmtzLCBJbmMuCisJCQkJNDAxIEVsbGlvdHQgQXZlLiBXLgorCQkJCVNlYXR0bGUgV0EgOTgxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUVBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjNFQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1FQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIzRUIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRUMgICAoaGV4KQkJQWxnb3JpdGhtaXggR21iSAorMDAyM0VDICAgICAoYmFzZSAxNikJCUFsZ29yaXRobWl4IEdtYkgKKwkJCQlLbGV0dGdhdXN0cmFzc2UgMjEKKwkJCQlXYWxkc2h1dC1UaWVuZ2VuIEJXIDc5NzYxCisJCQkJR0VSTUFOWQorCiswMC0yMy1FRCAgIChoZXgpCQlNb3Rvcm9sYSBDSFMKKzAwMjNFRCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBDSFMKKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1FRSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyM0VFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRUYgICAoaGV4KQkJWnVlbmQgU3lzdGVtdGVjaG5payBBRworMDAyM0VGICAgICAoYmFzZSAxNikJCVp1ZW5kIFN5c3RlbXRlY2huaWsgQUcKKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDgKKwkJCQlBbHRzdGFldHRlbiBTRyA5NDUwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMjMtRjAgICAoaGV4KQkJU2hhbmdoYWkgSmluZ2hhbiBXZWlnaGluZyBBcHBhcmF0dXMgQ28uIEx0ZC4KKzAwMjNGMCAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBKaW5naGFuIFdlaWdoaW5nIEFwcGFyYXR1cyBDby4gTHRkLgorCQkJCUJ1aWxkaW5nIDU4LCBOby45OSBDaHVuZ3VhbmcgUm9hZCwgWGluemh1YW5nIEluZHVzdHJpYWwgWm9uZSxNaW5oYW5nLAorCQkJCVNoYW5naGFpICAyMDExMDgKKwkJCQlDSElOQQorCiswMC0yMy1GMSAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworMDAyM0YxICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU2thbmUgMjIxODgKKwkJCQlTV0VERU4KKworMDAtMjMtRjIgICAoaGV4KQkJVFZMb2dpYworMDAyM0YyICAgICAoYmFzZSAxNikJCVRWTG9naWMKKwkJCQlzdWl0ZSA5MTQgQUNFIFRlY2hubyBUb3dlci05dGgKKwkJCQlHYXNhbi1kb25nCisJCQkJR2V1bWNoZW9uLWd1IFNFT1VMIDE1My03ODIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtRjMgICAoaGV4KQkJR2xvY29tLCBJbmMuCiswMDIzRjMgICAgIChiYXNlIDE2KQkJR2xvY29tLCBJbmMuCisJCQkJMjIgRmlyc3RmaWVsZCBSb2FkCisJCQkJU3VpdGUgMTI1CisJCQkJR2FpdGhlcnNidXJnIE1hcnlsYW5kIDIwODc4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1GNCAgIChoZXgpCQlNYXN0ZXJuYXV0CiswMDIzRjQgICAgIChiYXNlIDE2KQkJTWFzdGVybmF1dAorCQkJCTQsIHJ1ZSBDaGFybGVzIENyb3MKKwkJCQlMb3V2aWVycyAgMjc0MDcKKwkJCQlGUkFOQ0UKKworMDAtMjMtRjUgICAoaGV4KQkJV0lMTyBTRQorMDAyM0Y1ICAgICAoYmFzZSAxNikJCVdJTE8gU0UKKwkJCQlOb3J0a2lyY2hlbnN0ci4gMTAwCisJCQkJRCAtIDQ0MjYzIERvcnRtdW5kIE5SVyA0NDI2MworCQkJCUdFUk1BTlkKKworMDAtMjMtRjYgICAoaGV4KQkJU29mdHdlbGwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMjNGNiAgICAgKGJhc2UgMTYpCQlTb2Z0d2VsbCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTRGLCBOby4gNDE5LCBKaG9uZ2hlIFJkLiwgWW9uZ2hlIENpdHksCisJCQkJVGFpcGVpIENvdW50eSAgMjM0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy1GNyAgIChoZXgpCQlQUklWQVRFCiswMDIzRjcgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTIzLUY4ICAgKGhleCkJCVp5WEVMIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCiswMDIzRjggICAgIChiYXNlIDE2KQkJWnlYRUwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKwkJCQlOTy42IElubm92YXRpb24gUm9hZCBJSSwKKwkJCQlTY2llbmNlIFBhcmssCisJCQkJSHNpbi1DaHUsIFRhaXdhbiAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLUY5ICAgKGhleCkJCURvdWJsZS1UYWtlIFNvZnR3YXJlLCBJTkMuCiswMDIzRjkgICAgIChiYXNlIDE2KQkJRG91YmxlLVRha2UgU29mdHdhcmUsIElOQy4KKwkJCQk4NDcwIEFsbGlzb24gUG9pbnRlIEJsdmQKKwkJCQlTdWl0ZSAzMDAKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUZBICAgKGhleCkJCVJHIE5ldHMsIEluYy4KKzAwMjNGQSAgICAgKGJhc2UgMTYpCQlSRyBOZXRzLCBJbmMuCisJCQkJMTAwMCBFLiBXaWxsaWFtIFN0cmVldAorCQkJCVN1aXRlIDIwNAorCQkJCUNhcnNvbiBDaXR5IE5WIDg5NzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1GQiAgIChoZXgpCQlJUCBEYXRhdGVsLCBJbmMuCiswMDIzRkIgICAgIChiYXNlIDE2KQkJSVAgRGF0YXRlbCwgSW5jLgorCQkJCTEzMTEwIFNvdXRod2VzdCBGcmVld2F5CisJCQkJU3VnYXIgTGFuZCBUZXhhcyA3NzQ3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRkMgICAoaGV4KQkJVWx0cmEgU3RlcmVvIExhYnMsIEluYworMDAyM0ZDICAgICAoYmFzZSAxNikJCVVsdHJhIFN0ZXJlbyBMYWJzLCBJbmMKKwkJCQkxODEgQm9uZXR0aSBEcml2ZQorCQkJCVNhbiBMdWlzIE9iaXNwbyBDQSA5MzQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRkQgICAoaGV4KQkJQUZUIEF0bGFzIEZhaHJ6ZXVndGVjaG5payBHbWJICiswMDIzRkQgICAgIChiYXNlIDE2KQkJQUZUIEF0bGFzIEZhaHJ6ZXVndGVjaG5payBHbWJICisJCQkJR2V3ZXJiZXN0ci4gMTQKKwkJCQlXZXJkb2hsICA1ODc5MQorCQkJCUdFUk1BTlkKKworMDAtMjMtRkUgICAoaGV4KQkJQmlvZGV2aWNlcywgU0EKKzAwMjNGRSAgICAgKGJhc2UgMTYpCQlCaW9kZXZpY2VzLCBTQQorCQkJCVJ1YSA1IGRlIE91dHVicm8gMzA5CisJCQkJUG9ydG8gIDQxMDAtMTc1CisJCQkJUE9SVFVHQUwKKworMDAtMjMtRkYgICAoaGV4KQkJQmVpamluZyBIVFRDIFRlY2hub2xvZ3kgTHRkLgorMDAyM0ZGICAgICAoYmFzZSAxNikJCUJlaWppbmcgSFRUQyBUZWNobm9sb2d5IEx0ZC4KKwkJCQlCLTEzRC0zIEtlc2hpIEJ1aWxkaW5nLEppYSBOby4yOCBYaW54aSBSb2FkLFNIQU5HREkgSVQgSW5kdXN0cnkgQmFzZQorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTI0LTAwICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAyNDAwICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTIyMjEgTGFrZXNpZGUgQmx2ZAorCQkJCVJpY2hhcmRzb24gVFggNzUwODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTAxICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAyNDAxICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5vLjI4OSwgWGluaHUgM3JkLgorCQkJCU5laWh1IERpc3RyaWN0IFRhaXBlaSBDaXR5IDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtMDIgICAoaGV4KQkJT3AtVGVjdGlvbiBHbWJICiswMDI0MDIgICAgIChiYXNlIDE2KQkJT3AtVGVjdGlvbiBHbWJICisJCQkJQm9yc2lnc3RyYXNzZSA4MAorCQkJCUhlaW5zYmVyZyBHZXJtYW55IDUyNTI1CisJCQkJR0VSTUFOWQorCiswMC0yNC0wMyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNDAzICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yNC0wNCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNDA0ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yNC0wNSAgIChoZXgpCQlEaWxvZyBOb3JkaWMgQUIKKzAwMjQwNSAgICAgKGJhc2UgMTYpCQlEaWxvZyBOb3JkaWMgQUIKKwkJCQlGYWt0b3J2YWdlbiA5CisJCQkJS3VuZ3NiYWNrYSBIYWxsYW5kIDQzOSAzNAorCQkJCVNXRURFTgorCiswMC0yNC0wNiAgIChoZXgpCQlQb2ludG1vYmlsZQorMDAyNDA2ICAgICAoYmFzZSAxNikJCVBvaW50bW9iaWxlCisJCQkJMzAxLFdvcmxkIE1lcmlkaWFuIFZlcnR1cmUgQ2VudGVyLTEgNjAtMjQKKwkJCQlHYXNhbi1kb25nCisJCQkJU2VvdWwgR2V1bWNoZW9uLWd1IDE1Mzc4MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC0wNyAgIChoZXgpCQlURUxFTSBTQVMKKzAwMjQwNyAgICAgKGJhc2UgMTYpCQlURUxFTSBTQVMKKwkJCQkxNiwgUlVFIERFIEwnRVRBTkcKKwkJCQlHSUVSRVMgUkhPTkUgQUxQRVMgMzg2MTAKKwkJCQlGUkFOQ0UKKworMDAtMjQtMDggICAoaGV4KQkJUGFjaWZpYyBCaW9zY2llbmNlcworMDAyNDA4ICAgICAoYmFzZSAxNikJCVBhY2lmaWMgQmlvc2NpZW5jZXMKKwkJCQkxNTA1IEFkYW1zIERyaXZlCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMDkgICAoaGV4KQkJVGhlIFRvcm8gQ29tcGFueQorMDAyNDA5ICAgICAoYmFzZSAxNikJCVRoZSBUb3JvIENvbXBhbnkKKwkJCQk1ODI1IEphc21pbmUgU3RyZWV0CisJCQkJUml2ZXJzaWRlIENBIDkyNTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0wQSAgIChoZXgpCQlVUyBCZXZlcmFnZSBOZXQKKzAwMjQwQSAgICAgKGJhc2UgMTYpCQlVUyBCZXZlcmFnZSBOZXQKKwkJCQkxMDAxIFcuIEZheWV0dGUgU3RyZWV0CisJCQkJM0EKKwkJCQlTeXJhY3VzZSBOWSAxMzIwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMEIgICAoaGV4KQkJVmlydHVhbCBDb21wdXRlciBJbmMuCiswMDI0MEIgICAgIChiYXNlIDE2KQkJVmlydHVhbCBDb21wdXRlciBJbmMuCisJCQkJMyBMQU4gRHJpdmUKKwkJCQlXZXN0Zm9yZCBNQSAwMTg4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMEMgICAoaGV4KQkJREVMRUMgR21iSAorMDAyNDBDICAgICAoYmFzZSAxNikJCURFTEVDIEdtYkgKKwkJCQlSdWhld2VnIDE3LTIxCisJCQkJR29sbGhlaW0gUmhlaW5sYW5kLVBmYWx6IDY3MzA3CisJCQkJR0VSTUFOWQorCiswMC0yNC0wRCAgIChoZXgpCQlPbmVQYXRoIE5ldHdvcmtzIExURC4KKzAwMjQwRCAgICAgKGJhc2UgMTYpCQlPbmVQYXRoIE5ldHdvcmtzIExURC4KKwkJCQk4IEhhcnRvbSBTdAorCQkJCUplcnVzYWxlbSAgOTE0NTAKKwkJCQlJU1JBRUwKKworMDAtMjQtMEUgICAoaGV4KQkJSW52ZW50ZWMgQmVzdGEgQ28uLCBMdGQuCiswMDI0MEUgICAgIChiYXNlIDE2KQkJSW52ZW50ZWMgQmVzdGEgQ28uLCBMdGQuCisJCQkJMTBGTCwgTm8uMzYsIExhbmUgNTEzLCBSdWkgR3VhbmcgUm9hZCwgTmVpIEh1IERpc3QuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTBGICAgKGhleCkJCUlzaGlpIFRvb2wgJiBFbmdpbmVlcmluZyBDb3Jwb3JhdGlvbgorMDAyNDBGICAgICAoYmFzZSAxNikJCUlzaGlpIFRvb2wgJiBFbmdpbmVlcmluZyBDb3Jwb3JhdGlvbgorCQkJCTItNS02MCBIaWdhc2hpLU9taWNoaQorCQkJCU9pdGEgIDg3MC0wODIzCisJCQkJSkFQQU4KKworMDAtMjQtMTAgICAoaGV4KQkJTlVFVEVRIFRlY2hub2xvZ3ksSW5jLgorMDAyNDEwICAgICAoYmFzZSAxNikJCU5VRVRFUSBUZWNobm9sb2d5LEluYy4KKwkJCQkxMUYsIE5vLiAxMTIsIFNlYy4gMSwgWmhvbmctWGlhbyBFIFJkLgorCQkJCVRhaXBlaSAgMTAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC0xMSAgIChoZXgpCQlQaGFybWFTbWFydCBMTEMKKzAwMjQxMSAgICAgKGJhc2UgMTYpCQlQaGFybWFTbWFydCBMTEMKKwkJCQkzNDk1IFdpbnRvbiBQbGFjZQorCQkJCUJsZGcgQSwgU3VpdGUgMQorCQkJCVJvY2hlc3RlciBOWSAxNDYyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMTIgICAoaGV4KQkJQmVuaWduIFRlY2hub2xvZ2llcyBDbywgTHRkLgorMDAyNDEyICAgICAoYmFzZSAxNikJCUJlbmlnbiBUZWNobm9sb2dpZXMgQ28sIEx0ZC4KKwkJCQk1MDQgcm9vbSwgNUYsIFNvdXRoIGJ1aWxkaW5nLCBGb3JzYWZlIFRvd2VyLAorCQkJCVNvdXRoIE9uZSBTdHJlZXQsIEhpLVRlY2ggWm9uZSwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjQtMTMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNDEzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTE0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjQxNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0xNSAgIChoZXgpCQlNYWduZXRpYyBBdXRvY29udHJvbCBHbWJICiswMDI0MTUgICAgIChiYXNlIDE2KQkJTWFnbmV0aWMgQXV0b2NvbnRyb2wgR21iSAorCQkJCUdyaWVubWF0dCAyMAorCQkJCVNjaG9wZmhlaW0gIEQtNzk2NTAKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LTE2ICAgKGhleCkJCUFueSBVc2UKKzAwMjQxNiAgICAgKGJhc2UgMTYpCQlBbnkgVXNlCisJCQkJTEcgQVBUIDIxMS0xODA1LAorCQkJCVNoaW5ib25nLURvbmcsIFN1amktR3UsCisJCQkJWW9uZ2luIENpdHkgR3llb25nLUdpIFByb3ZpbmNlIDQ0OC0xNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtMTcgICAoaGV4KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKzAwMjQxNyAgICAgKGJhc2UgMTYpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorCQkJCVByaW5zIEJvdWRld2lqbmxhYW4gNDcKKwkJCQlFZGVnZW0gLSBBbnR3ZXJwICBCLTI2NTAKKwkJCQlCRUxHSVVNCisKKzAwLTI0LTE4ICAgKGhleCkJCU5leHR3YXZlIFNlbWljb25kdWN0b3IKKzAwMjQxOCAgICAgKGJhc2UgMTYpCQlOZXh0d2F2ZSBTZW1pY29uZHVjdG9yCisJCQkJMzYxMSBWYWxsZXkgQ2VudHJlIERyCisJCQkJU2FuIERpZWdvIENBIDkyMTMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0xOSAgIChoZXgpCQlQUklWQVRFCiswMDI0MTkgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTI0LTFBICAgKGhleCkJCVJlZCBCZWV0bGUgSW5jLgorMDAyNDFBICAgICAoYmFzZSAxNikJCVJlZCBCZWV0bGUgSW5jLgorCQkJCTg5OCBTaWxhcyBEZWFuZSBIaWdod2F5CisJCQkJV2V0aGVyc2ZpZWxkIENUIDA2MTA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0xQiAgIChoZXgpCQlpV09XIENvbW11bmljYXRpb25zIFB0ZSBMdGQKKzAwMjQxQiAgICAgKGJhc2UgMTYpCQlpV09XIENvbW11bmljYXRpb25zIFB0ZSBMdGQKKwkJCQkxIExvcm9uZyAyIFRvYSBQYXlvaCAjMDQtMDEKKwkJCQlZZWxsb3cgUGFnZXMgQnVpbGRpbmcKKwkJCQkzMTk2MzcKKwkJCQlTSU5HQVBPUkUKKworMDAtMjQtMUMgICAoaGV4KQkJRnVHYW5nIEVsZWN0cm9uaWMgKERHKSBDby4sTHRkCiswMDI0MUMgICAgIChiYXNlIDE2KQkJRnVHYW5nIEVsZWN0cm9uaWMgKERHKSBDby4sTHRkCisJCQkJSW5kdXN0cnkgU3RyZWV0LCBEb25nLUtlbmcKKwkJCQlHdWFuZyBEb25nIFByb3ZpbmNlCisJCQkJRG9uZyBHdWFuIENpdHkgIDUyMzQ0OAorCQkJCUNISU5BCisKKzAwLTI0LTFEICAgKGhleCkJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCiswMDI0MUQgICAgIChiYXNlIDE2KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQlOby4yMTUsTmFuLVBpbmcgUm9hZCwKKwkJCQlQaW4tSmVuIFRhb3l1YW4gMzI0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC0xRSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMjQxRSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yNC0xRiAgIChoZXgpCQlEQ1QtRGVsdGEgR21iSAorMDAyNDFGICAgICAoYmFzZSAxNikJCURDVC1EZWx0YSBHbWJICisJCQkJQm9kYW5ydWVja3N0cmFzc2UgMQorCQkJCUJvZG1hbiAtIEx1ZHdpZ3NoYWZlbiBCYWRlbiAtIFd1cnR0ZW1iZXJnIDc4MzUxCisJCQkJR0VSTUFOWQorCiswMC0yNC0yMCAgIChoZXgpCQlOZXRVUCBJbmMuCiswMDI0MjAgICAgIChiYXNlIDE2KQkJTmV0VVAgSW5jLgorCQkJCU9sb2YgUGFsbWUgc3QuLCAxLCBzZWN0LiA3CisJCQkJTW9zY293ICAxMTkzMTEKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjQtMjEgICAoaGV4KQkJTUlDUk8tU1RBUiBJTlQnTCBDTy4sIExURC4KKzAwMjQyMSAgICAgKGJhc2UgMTYpCQlNSUNSTy1TVEFSIElOVCdMIENPLiwgTFRELgorCQkJCU5vLjY5LCBMaS1EZSBTdAorCQkJCUp1bmctSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC0yMiAgIChoZXgpCQlLbmFwcCBMb2dpc3RpayBBdXRvbWF0aW9uIEdtYkgKKzAwMjQyMiAgICAgKGJhc2UgMTYpCQlLbmFwcCBMb2dpc3RpayBBdXRvbWF0aW9uIEdtYkgKKwkJCQlHdW50ZXItS25hcHAtU3RyYXNzZSA1LTcKKwkJCQlIYXJ0IGJlaSBHcmF6IFN0eXJpYSA4MDc1CisJCQkJQVVTVFJJQQorCiswMC0yNC0yMyAgIChoZXgpCQlBenVyZVdhdmUgVGVjaG5vbG9naWVzIChTaGFuZ2hhaSkgSW5jLgorMDAyNDIzICAgICAoYmFzZSAxNikJCUF6dXJlV2F2ZSBUZWNobm9sb2dpZXMgKFNoYW5naGFpKSBJbmMuCisJCQkJTk8uIDgsIExBTkUgNjYsIENIRU5HQkFPIFJELgorCQkJCU1BTFUgQ09VTlRZLCBKSUFESU5HIERJU1RSSUNULAorCQkJCVNIQU5HSEFJICAyMDE4MDEKKwkJCQlDSElOQQorCiswMC0yNC0yNCAgIChoZXgpCQlBeGlzIE5ldHdvcmsgVGVjaG5vbG9neQorMDAyNDI0ICAgICAoYmFzZSAxNikJCUF4aXMgTmV0d29yayBUZWNobm9sb2d5CisJCQkJVW5pdCAxMCwgTWlkc2hpcmVzIEJ1cyBQYXJrCisJCQkJU21lYXRvbiBDbG9zZQorCQkJCUF5bGVzYnVyeSBCdWNrcyBIUDE5IDhITAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI0LTI1ICAgKGhleCkJCVNoZW56aGVuc2hpIGNodWFuZ3poaWNoZW5nIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAyNDI1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuc2hpIGNodWFuZ3poaWNoZW5nIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTV0aCBGbG9vcixCbG9jazIsMjV0aCBCdWlsZGluZyxJbmR1c3RyaWFsIFpvbmUgV2VzdCBLZXl1YW4gU2NpLXRlY2ggR2FyZGVuIE5hbnNoYW4gRGlzdHJpY2gsU2hlbnpoZW4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjQtMjYgICAoaGV4KQkJTk9ITUkgQk9TQUkgTFRELgorMDAyNDI2ICAgICAoYmFzZSAxNikJCU5PSE1JIEJPU0FJIExURC4KKwkJCQk3LTMsS3VkYW4tTWluYW1pIDQtQ2hvbWUsCisJCQkJQ2hpeW9kYS1rdQorCQkJCVRva3lvICAxMDItODI3NworCQkJCUpBUEFOCisKKzAwLTI0LTI3ICAgKGhleCkJCVNTSSBDT01QVVRFUiBDT1JQCiswMDI0MjcgICAgIChiYXNlIDE2KQkJU1NJIENPTVBVVEVSIENPUlAKKwkJCQk0RiwgTk80LCBMQU5FIDIzNSwgQkFPIENISUFPIFJPQUQKKwkJCQlIU0lOIFRJRU4gVEFJUEVJIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtMjggICAoaGV4KQkJRW5lcmd5SUNUCiswMDI0MjggICAgIChiYXNlIDE2KQkJRW5lcmd5SUNUCisJCQkJVGhlb2Rvb3IgU2V2ZW5zbGFhbiAxMDRhCisJCQkJS29ydHJpamsgIDg1MDAKKwkJCQlCRUxHSVVNCisKKzAwLTI0LTI5ICAgKGhleCkJCU1LIE1BU1RFUiBJTkMuCiswMDI0MjkgICAgIChiYXNlIDE2KQkJTUsgTUFTVEVSIElOQy4KKwkJCQk2RiwgLTEsIE5PLiAxMTAsU0VDLiAzLCBKSE9OR1NIQU4gUkQuLAorCQkJCUpIT05HLUhFIENJVFksIFRBSVBFSSBDT1VOVFkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC0yQSAgIChoZXgpCQlIaXR0aXRlIE1pY3Jvd2F2ZSBDb3Jwb3JhdGlvbgorMDAyNDJBICAgICAoYmFzZSAxNikJCUhpdHRpdGUgTWljcm93YXZlIENvcnBvcmF0aW9uCisJCQkJMjAgQWxwaGEgUmQKKwkJCQlDaGVsbXNmb3JkIE1BIDAxODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0yQiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uLEx0ZC4KKzAwMjQyQiAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uLEx0ZC4KKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuIFRhaXdhbiAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTJDICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCiswMDI0MkMgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTJFICAgKGhleCkJCURhdGFzdHJpcCBJbmMuCiswMDI0MkUgICAgIChiYXNlIDE2KQkJRGF0YXN0cmlwIEluYy4KKwkJCQkxIFdhdGVydmlldyBEcml2ZQorCQkJCVN1aXRlIDEwMworCQkJCVNoZWx0b24gQ1QgMDY0ODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTJGICAgKGhleCkJCVZpcnRlblN5cyBJbmMKKzAwMjQyRiAgICAgKGJhc2UgMTYpCQlWaXJ0ZW5TeXMgSW5jCisJCQkJODcwNSBOaW1idXMgQXZlIFN0ZSAxMDAKKwkJCQlCZWF2ZXJ0b24gT1IgOTcwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTMwICAgKGhleCkJCVJ1YnkgVGVjaCBDb3JwLgorMDAyNDMwICAgICAoYmFzZSAxNikJCVJ1YnkgVGVjaCBDb3JwLgorCQkJCTNGLCBOTy4gMSwgTGFuZSA1MCwgTmFuIEthbmcgUm9hZCwgU2VjLiAzLAorCQkJCVRhaXBlaSAgMTE1MTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTMxICAgKGhleCkJCVVuaS12IGNvLixsdGQKKzAwMjQzMSAgICAgKGJhc2UgMTYpCQlVbmktdiBjby4sbHRkCisJCQkJNS9GLENPRkNPIFByb3BlcnR5IFRvd2VyLAorCQkJCXRoZSAzcmQgQXJlYSwgQmFvJ2FuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyNgorCQkJCUNISU5BCisKKzAwLTI0LTMyICAgKGhleCkJCU5lb3N0YXIgVGVjaG5vbG9neSBDby4sTFRECiswMDI0MzIgICAgIChiYXNlIDE2KQkJTmVvc3RhciBUZWNobm9sb2d5IENvLixMVEQKKwkJCQk4Ri4sIE5vLjEwMiwgU2VjLiAxLCBTaW50YWkgNXRoIFJkLgorCQkJCVNpamhpaCBDaXR5IFRhaXBlaSAyMjE2MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtMzMgICAoaGV4KQkJQWxwcyBFbGVjdHJpYyBDby4sIEx0ZAorMDAyNDMzICAgICAoYmFzZSAxNikJCUFscHMgRWxlY3RyaWMgQ28uLCBMdGQKKwkJCQkxLTItMSwgT2tpbm91Y2hpCisJCQkJU29tYSBjaXR5IEZ1a3VzaGltYS1rZW4gOTc2LTg1MDEKKwkJCQlKQVBBTgorCiswMC0yNC0zNCAgIChoZXgpCQlMZWN0cm9zb25pY3MsIEluYy4KKzAwMjQzNCAgICAgKGJhc2UgMTYpCQlMZWN0cm9zb25pY3MsIEluYy4KKwkJCQk1ODEgTGFzZXIgUmQuCisJCQkJUmlvIFJhbmNobyBOTSA4NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMzUgICAoaGV4KQkJV0lERSBDT1JQT1JBVElPTgorMDAyNDM1ICAgICAoYmFzZSAxNikJCVdJREUgQ09SUE9SQVRJT04KKwkJCQlMRUFERVJTIFRPV0VSIDdUSCBGTC4sIEdPTUFFLURPTkcsIEdJSEVVTkctR1UKKwkJCQlZT05HSU4gR1lFT05HR0kgNDQ2LTkwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC0zNiAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDI0MzYgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMzcgICAoaGV4KQkJTW90b3JvbGEgLSBCU0cKKzAwMjQzNyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSAtIEJTRworCQkJCTExMDEgTWFyaW5hIFZpbGxhZ2UgUGt3eQorCQkJCVN0ZSAyMDAKKwkJCQlBbGFtZWRhIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0zOCAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworMDAyNDM4ICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCisJCQkJMTc0NSBUZWNobm9sb2d5IERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTM5ICAgKGhleCkJCUVzc2VudGlhbCBWaWV3aW5nIFN5c3RlbXMgTGltaXRlZAorMDAyNDM5ICAgICAoYmFzZSAxNikJCUVzc2VudGlhbCBWaWV3aW5nIFN5c3RlbXMgTGltaXRlZAorCQkJCUhpbGxpbmd0b24gUGFyayBJbm5vdmF0aW9uIENlbnRyZQorCQkJCTEgQWluc2xpZSBSb2FkCisJCQkJR2xhc2dvdyBSZW5mcmV3c2hpcmUgRzUyIDRSVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI0LTNBICAgKGhleCkJCUx1ZGwgRWxlY3Ryb25pYyBQcm9kdWN0cworMDAyNDNBICAgICAoYmFzZSAxNikJCUx1ZGwgRWxlY3Ryb25pYyBQcm9kdWN0cworCQkJCTE3MSBCcmFkeSBBdmUKKwkJCQlIYXd0aG9ybmUgTlkgMTA1MzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTNCICAgKGhleCkJCUNTU0kgKFMpIFB0ZSBMdGQKKzAwMjQzQiAgICAgKGJhc2UgMTYpCQlDU1NJIChTKSBQdGUgTHRkCisJCQkJNzAgQmVuZGVtZWVyIFJvYWQgVW5pdCAwNC0wNAorCQkJCTMzOTk0MAorCQkJCVNJTkdBUE9SRQorCiswMC0yNC0zQyAgIChoZXgpCQlTLkEuQS5BLgorMDAyNDNDICAgICAoYmFzZSAxNikJCVMuQS5BLkEuCisJCQkJWi5BLiBDcm9peCBTYWludCBNYXRoaWV1CisJCQkJR0FMTEFSRE9OIEV1cmUgZXQgTG9pciAyODMyMAorCQkJCUZSQU5DRQorCiswMC0yNC0zRCAgIChoZXgpCQlFbWVyc29uIEFwcGxpYW5jZSBNb3RvcnMgYW5kIENvbnRyb2xzCiswMDI0M0QgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBBcHBsaWFuY2UgTW90b3JzIGFuZCBDb250cm9scworCQkJCTE5MDEgU291dGggU3QuCisJCQkJRWxnaW4gSUwgNjAxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTNGICAgKGhleCkJCVN0b3J3aXplLCBJbmMuCiswMDI0M0YgICAgIChiYXNlIDE2KQkJU3RvcndpemUsIEluYy4KKwkJCQkxMSBBbGF0bGVmIFN0LgorCQkJCVllaHVkICA1NjIxNgorCQkJCUlTUkFFTAorCiswMC0yNC00MCAgIChoZXgpCQlIYWxvIE1vbml0b3JpbmcsIEluYy4KKzAwMjQ0MCAgICAgKGJhc2UgMTYpCQlIYWxvIE1vbml0b3JpbmcsIEluYy4KKwkJCQk1MTUgU3BhcmttYW4gRHIuCisJCQkJSHVudHN2aWxsZSBBTCAzNTgxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNDEgICAoaGV4KQkJV2FuemwgTWV0YWxsd2FyZW5mYWJyaWsgR21iSAorMDAyNDQxICAgICAoYmFzZSAxNikJCVdhbnpsIE1ldGFsbHdhcmVuZmFicmlrIEdtYkgKKwkJCQlCdWJlc2hlaW1lciBTdHJhc3NlIDQKKwkJCQlMZWlwaGVpbSBCYXZhcmlhIDg5MzQwCisJCQkJR0VSTUFOWQorCiswMC0yNC00MiAgIChoZXgpCQlBeG9uYSBMaW1pdGVkCiswMDI0NDIgICAgIChiYXNlIDE2KQkJQXhvbmEgTGltaXRlZAorCQkJCTE0OCBHcmVlbiBMYW5lCisJCQkJU3QuIEFsYmFucyBIZXJ0cyBBTDMgNkVVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjQtNDMgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDI0NDMgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJMjIyMSBMYWtlc2lkZSBCbHZkCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNDQgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDI0NDQgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gS1lPVE8gNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yNC00NSAgIChoZXgpCQlMaXF1aWR4U3RyZWFtIFN5c3RlbXMgSW5jLgorMDAyNDQ1ICAgICAoYmFzZSAxNikJCUxpcXVpZHhTdHJlYW0gU3lzdGVtcyBJbmMuCisJCQkJODQ4MCBCb3VsLiBEdSBHb2xmCisJCQkJTW9udHJlYWwgUXVlYmVjIEgxSiAzQTEKKwkJCQlDQU5BREEKKworMDAtMjQtNDYgICAoaGV4KQkJTU1CIFJlc2VhcmNoIEluYy4KKzAwMjQ0NiAgICAgKGJhc2UgMTYpCQlNTUIgUmVzZWFyY2ggSW5jLgorCQkJCTM1IFByaW5jZSBBcnRodXIgQXZlLgorCQkJCVRvcm9udG8gT250YXJpbyBNNVIgMUIyCisJCQkJQ0FOQURBCisKKzAwLTI0LTQ3ICAgKGhleCkJCUthenRlayBTeXN0ZW1zCiswMDI0NDcgICAgIChiYXNlIDE2KQkJS2F6dGVrIFN5c3RlbXMKKwkJCQkxNyBCcm9tZmllbGQgUm9hZAorCQkJCUFjdG9uIE1BIDAxNzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC00OCAgIChoZXgpCQlTcGlkZXJDbG91ZCBXaXJlbGVzcywgSW5jCiswMDI0NDggICAgIChiYXNlIDE2KQkJU3BpZGVyQ2xvdWQgV2lyZWxlc3MsIEluYworCQkJCTM5MDAgRnJlZWRvbSBDaXJjbGUsIFN1aXRlIDEwNAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC00OSAgIChoZXgpCQlTaGVuIFpoZW4gTGl0ZSBTdGFyIEVsZWN0cm9uaWNzIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMjQ0OSAgICAgKGJhc2UgMTYpCQlTaGVuIFpoZW4gTGl0ZSBTdGFyIEVsZWN0cm9uaWNzIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlYaW5naG9uZyBTY2llbmNlIFBhcmssMXN0IEluZC5BcmVhLAorCQkJCUZlbmdodWFuZ2d1YW5nLCBYaXhpYW5nLEJhb2FuIEFyZWEKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTAyCisJCQkJQ0hJTkEKKworMDAtMjQtNEEgICAoaGV4KQkJVm95YW50IEludGVybmF0aW9uYWwKKzAwMjQ0QSAgICAgKGJhc2UgMTYpCQlWb3lhbnQgSW50ZXJuYXRpb25hbAorCQkJCTQ0NCBDYXN0cm8gU3QKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC00QiAgIChoZXgpCQlQRVJDRVBUUk9OIElOQworMDAyNDRCICAgICAoYmFzZSAxNikJCVBFUkNFUFRST04gSU5DCisJCQkJNDc4MjcgSEFMWUFSRCBEUgorCQkJCVBPICNDQzY3MzQ4CisJCQkJUExZTU9VVEggTUkgNDgxNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTRDICAgKGhleCkJCVNvbGFydHJvbiBNZXRyb2xvZ3kgTHRkCiswMDI0NEMgICAgIChiYXNlIDE2KQkJU29sYXJ0cm9uIE1ldHJvbG9neSBMdGQKKwkJCQlTdGV5bmluZyBXYXkKKwkJCQlCb2dub3IgUmVnaXMgV2VzdCBTdXNzZXggUE8yMCA5U1QKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yNC00RCAgIChoZXgpCQlIb2trYWlkbyBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorMDAyNDREICAgICAoYmFzZSAxNikJCUhva2thaWRvIEVsZWN0cm9uaWNzIENvcnBvcmF0aW9uCisJCQkJMS0xIEVhc3QgMTAgTm9ydGggMTAKKwkJCQlIaWdhc2hpLWt1CisJCQkJU2FwcG9ybyBIb2trYWlkbyAwNjUtMDAxMAorCQkJCUpBUEFOCisKKzAwLTI0LTRFICAgKGhleCkJCVJhZENoaXBzLCBJbmMuCiswMDI0NEUgICAgIChiYXNlIDE2KQkJUmFkQ2hpcHMsIEluYy4KKwkJCQk0MjIgRWFzdCBWZXJtaWpvIEF2ZS4KKwkJCQlTdWl0ZSA0MDEKKwkJCQlDb2xvcmFkbyBTcHJpbmdzIENPIDgwOTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC00RiAgIChoZXgpCQlBc2FudHJvbiBUZWNobm9sb2dpZXMgTHRkLgorMDAyNDRGICAgICAoYmFzZSAxNikJCUFzYW50cm9uIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJM0YtMSwgTm8uMzAgSmloZSBSZC4sIDExMQorCQkJCVNoaWhsaW4gRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExMTY2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC01MCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI0NTAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNTEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNDUxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTUyICAgKGhleCkJCVNpbGljb24gU29mdHdhcmUgR21iSAorMDAyNDUyICAgICAoYmFzZSAxNikJCVNpbGljb24gU29mdHdhcmUgR21iSAorCQkJCVN0ZXViZW5zdHIuIDQ2CisJCQkJTWFubmhlaW0gQmFkZW4tV3VydHRlbWJlcmcgNjgxNjMKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LTUzICAgKGhleCkJCUluaXRyYSBkLm8uby4KKzAwMjQ1MyAgICAgKGJhc2UgMTYpCQlJbml0cmEgZC5vLm8uCisJCQkJU2xvbXNrb3ZhIDMzCisJCQkJTGp1YmxqYW5hICAxMDAwCisJCQkJU0xPVkVOSUEKKworMDAtMjQtNTQgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIExURAorMDAyNDU0ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMVEQKKwkJCQk0MTYsIE1hZXRhbiAzRG9uZywgWWVvbmd0b25nLUd1LAorCQkJCVN1d29uIEd5ZW9uZ2dpLURvIDQ0Mzc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC01NSAgIChoZXgpCQlNdUxvZ2ljIEJWCiswMDI0NTUgICAgIChiYXNlIDE2KQkJTXVMb2dpYyBCVgorCQkJCU9saXZpZXIgdmFuIE5vb3J0c3RyYWF0IDQKKwkJCQlTY2hpZWRhbSBaSCAzMTI0TEEKKwkJCQlORVRIRVJMQU5EUworCiswMC0yNC01NiAgIChoZXgpCQkyV2lyZQorMDAyNDU2ICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNTggICAoaGV4KQkJUEEgQmFzdGlvbiBDQworMDAyNDU4ICAgICAoYmFzZSAxNikJCVBBIEJhc3Rpb24gQ0MKKwkJCQk5NywgbGl0ZXIgSywgQnVkZHlvbm5vdnNreSBhdmUuCisJCQkJUm9zdG92LW9uLURvbiAgMzQ0MDExCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTI0LTU5ICAgKGhleCkJCUFCQiBTVE9UWi1LT05UQUtUIEdtYkgKKzAwMjQ1OSAgICAgKGJhc2UgMTYpCQlBQkIgU1RPVFotS09OVEFLVCBHbWJICisJCQkJRXBwZWxoZWltZXIgU3RyYXNzZSA4MgorCQkJCVNUTy9LRTEKKwkJCQlIZWlkZWxiZXJnICA2OTEyMworCQkJCUdFUk1BTlkKKworMDAtMjQtNUEgICAoaGV4KQkJTmFuamluZyBQYW5kYSBFbGVjdHJvbmljcyBDb21wYW55IExpbWl0ZWQKKzAwMjQ1QSAgICAgKGJhc2UgMTYpCQlOYW5qaW5nIFBhbmRhIEVsZWN0cm9uaWNzIENvbXBhbnkgTGltaXRlZAorCQkJCVpob25nc2hhbiBFYXN0Um9hZCAzMDEsCisJCQkJTkFOSklORyBKSUFOR1NVIDIxMDAxNgorCQkJCUNISU5BCisKKzAwLTI0LTVCICAgKGhleCkJCVJBSURPTiBURUNITk9MT0dZLCBJTkMuCiswMDI0NUIgICAgIChiYXNlIDE2KQkJUkFJRE9OIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk0Ri04LCBOTy4xNiwgTGFuZSA2MDksIFNlYy41LCBDaHVuZy1Ic2luIFJkLiwKKwkJCQlTYW4tQ2h1bmcgQ2l0eSBUYWlwZWkgY291bnR5LCAyNDE1OQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtNUMgICAoaGV4KQkJRGVzaWduLUNvbSBUZWNobm9sb2dpZXMgUHR5LiBMdGQuCiswMDI0NUMgICAgIChiYXNlIDE2KQkJRGVzaWduLUNvbSBUZWNobm9sb2dpZXMgUHR5LiBMdGQuCisJCQkJMTQgUmVkbGFuZCBEcml2ZQorCQkJCU1pdGNoYW0gVmljdG9yaWEgMzEzMgorCQkJCUFVU1RSQUxJQQorCiswMC0yNC01RCAgIChoZXgpCQlUZXJiZXJnIGJlc3R1cmluZ3N0ZWNobmllayBCLlYuCiswMDI0NUQgICAgIChiYXNlIDE2KQkJVGVyYmVyZyBiZXN0dXJpbmdzdGVjaG5pZWsgQi5WLgorCQkJCUxhZ2UgRGlqay1Ob29yZCAzCisJCQkJSUpzc2Vsc3RlaW4gVXRyZWNodCAzNDAxIFZBCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjQtNUUgICAoaGV4KQkJSGl2aXNpb24gQ28uLGx0ZAorMDAyNDVFICAgICAoYmFzZSAxNikJCUhpdmlzaW9uIENvLixsdGQKKwkJCQkyMjAxLTIyMDIsIENPRkNPIFByb3BlcnR5IFRvd2VyLAorCQkJCTNyZCBCYW8nYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTAxCisJCQkJQ0hJTkEKKworMDAtMjQtNUYgICAoaGV4KQkJVmluZSBUZWxlY29tIENPLixMdGQuCiswMDI0NUYgICAgIChiYXNlIDE2KQkJVmluZSBUZWxlY29tIENPLixMdGQuCisJCQkJMTkxLTQsIDRGLCBBbnlhbmctZG9uZywgTWFuYW4tZ3UKKwkJCQlBbnlhbmctc2kgR3llb25nZ2ktZG8gNDMwLTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC02MCAgIChoZXgpCQlHaWF2YWwgU2NpZW5jZSBEZXZlbG9wbWVudCBDby4gTHRkLgorMDAyNDYwICAgICAoYmFzZSAxNikJCUdpYXZhbCBTY2llbmNlIERldmVsb3BtZW50IENvLiBMdGQuCisJCQkJNTggQmVpIFNpIEh1YW4gWGkgUmQKKwkJCQlJZGVhbCBQbGF6YSwgU3VpdGUgNDEzCisJCQkJQmVpamluZyAxMDAwODAKKwkJCQlDSElOQQorCiswMC0yNC02MSAgIChoZXgpCQlTaGluIFdhbmcgVGVjaC4KKzAwMjQ2MSAgICAgKGJhc2UgMTYpCQlTaGluIFdhbmcgVGVjaC4KKwkJCQk2MzItNjIsIEd1cm8tRG9uZywgR3Vyby1HdQorCQkJCTEwNS1IbywgQy1Eb25nLCBHdXJvY3VsYXRpb24gRGVwdC4KKwkJCQlTZW91bCAgMTUyLTg2NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC02MiAgIChoZXgpCQlSYXl6b25lIENvcnBvcmF0aW9uCiswMDI0NjIgICAgIChiYXNlIDE2KQkJUmF5em9uZSBDb3Jwb3JhdGlvbgorCQkJCSMyMDA4LCBCLURvbmcsIFNhbWhvIEJMREcKKwkJCQlZYW5namFlMi1Eb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCAgMTM3LTk0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC02MyAgIChoZXgpCQlQaHlicmlkZ2UgSW5jCiswMDI0NjMgICAgIChiYXNlIDE2KQkJUGh5YnJpZGdlIEluYworCQkJCTEyMDAgU3BlZXJzIFJvYWQKKwkJCQlVbml0IDM3CisJCQkJT2FrdmlsbGUgT250YXJpbyBMNkwyWDQKKwkJCQlDQU5BREEKKworMDAtMjQtNjQgICAoaGV4KQkJQnJpZGdlIFRlY2hub2xvZ2llcyBDbyBBUworMDAyNDY0ICAgICAoYmFzZSAxNikJCUJyaWRnZSBUZWNobm9sb2dpZXMgQ28gQVMKKwkJCQlNP2xsZXBhcmtlbiA0CisJCQkJT3NsbyAgMDQ1OQorCQkJCU5PUldBWQorCiswMC0yNC02NSAgIChoZXgpCQlFbGVudGVjCiswMDI0NjUgICAgIChiYXNlIDE2KQkJRWxlbnRlYworCQkJCTQwMS0xMyBDaHVuZ2d5ZS1SaSxEb25ndGFuLU15dW4KKwkJCQlId2FzdW5nIEt5dW5nZ2kgNDQ1LTgxMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC02NiAgIChoZXgpCQlVbml0cm9uIG52CiswMDI0NjYgICAgIChiYXNlIDE2KQkJVW5pdHJvbiBudgorCQkJCUZyYW5ya2lqa2xhYW4gMjcKKwkJCQlQb3BlcmluZ2UgVy12bCA4OTcwCisJCQkJQkVMR0lVTQorCiswMC0yNC02NyAgIChoZXgpCQlBT0MgSW50ZXJuYXRpb25hbCAoRXVyb3BlKSBHbWJICiswMDI0NjcgICAgIChiYXNlIDE2KQkJQU9DIEludGVybmF0aW9uYWwgKEV1cm9wZSkgR21iSAorCQkJCUxhaG5zdHJhc3NlIDg2QQorCQkJCUJlcmxpbiAgMTIwNTUKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LTY4ICAgKGhleCkJCVN1bWF2aXNpb24gVGVjaG5vbG9naWVzIENvLixMdGQKKzAwMjQ2OCAgICAgKGJhc2UgMTYpCQlTdW1hdmlzaW9uIFRlY2hub2xvZ2llcyBDby4sTHRkCisJCQkJNkYsIEJsb2NrIEEyLCBQb3dlciBDcmVhdGl2ZSBCdWlsZGluZyxOby4xIFNoYW5nZGkgRWFzdCBSb2FkLCBIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMjQtNjkgICAoaGV4KQkJU21hcnQgRG9vcnBob25lcworMDAyNDY5ICAgICAoYmFzZSAxNikJCVNtYXJ0IERvb3JwaG9uZXMKKwkJCQlTcGlldmVsZHN0cmFhdCAyNAorCQkJCUxva2VyZW4gIDkxNjAKKwkJCQlCRUxHSVVNCisKKzAwLTI0LTZBICAgKGhleCkJCVNvbGlkIFllYXIgQ28uLCBMdGQuCiswMDI0NkEgICAgIChiYXNlIDE2KQkJU29saWQgWWVhciBDby4sIEx0ZC4KKwkJCQkyRi0xLCBOby4gOTQsIEJhby1jaHVuZyBSb2FkLAorCQkJCUhzaW4tdGllbiBDaXR5IFRhaXBlaSBIc2llbiAyMzE0NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtNkIgICAoaGV4KQkJQ292aWEsIEluYy4KKzAwMjQ2QiAgICAgKGJhc2UgMTYpCQlDb3ZpYSwgSW5jLgorCQkJCUJlbmV4IFMtMyBCbGRnLiwgMy0yMC04LCBTaGlueW9rb2hhbWEsS29ob2t1LWt1LAorCQkJCVlva29oYW1hLWNpdHkgS2FuYWdhd2EtcHJlZi4gMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0yNC02QyAgIChoZXgpCQlBUlVCQSBORVRXT1JLUywgSU5DLgorMDAyNDZDICAgICAoYmFzZSAxNikJCUFSVUJBIE5FVFdPUktTLCBJTkMuCisJCQkJMTM0NCBDcm9zc21hbiBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTZEICAgKGhleCkJCVdlaW56aWVybCBFbmdpbmVlcmluZyBHbWJICiswMDI0NkQgICAgIChiYXNlIDE2KQkJV2VpbnppZXJsIEVuZ2luZWVyaW5nIEdtYkgKKwkJCQlCYWhuaG9mc3RyLiA2CisJCQkJVHlybGFjaGluZyBCYXZhcmlhIDg0NTU4CisJCQkJR0VSTUFOWQorCiswMC0yNC02RSAgIChoZXgpCQlQaGlob25nIFVTQSBDb3JwLgorMDAyNDZFICAgICAoYmFzZSAxNikJCVBoaWhvbmcgVVNBIENvcnAuCisJCQkJNDc4MDAgRnJlbW9udCBCbHZkLgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTZGICAgKGhleCkJCU9uZGEgQ29tbXVuaWNhdGlvbiBzcGEKKzAwMjQ2RiAgICAgKGJhc2UgMTYpCQlPbmRhIENvbW11bmljYXRpb24gc3BhCisJCQkJdmlhIGRlbCBsYXZvcm8gOQorCQkJCXBvcmRlbm9uZSAgMzMxNzAKKwkJCQlJVEFMWQorCiswMC0yNC03MCAgIChoZXgpCQlBVVJPVEVDSCB1bHRyYXNvdW5kIEFTLgorMDAyNDcwICAgICAoYmFzZSAxNikJCUFVUk9URUNIIHVsdHJhc291bmQgQVMuCisJCQkJU3ZpbmdlbiAxCisJCQkJVHlkYWwgU3ItVHIgTi03NTkwCisJCQkJTk9SV0FZCisKKzAwLTI0LTcxICAgKGhleCkJCUZ1c2lvbiBNdWx0aVN5c3RlbXMgZGJhIEZ1c2lvbi1pbworMDAyNDcxICAgICAoYmFzZSAxNikJCUZ1c2lvbiBNdWx0aVN5c3RlbXMgZGJhIEZ1c2lvbi1pbworCQkJCTYzNTAgUy4gMzAwMCBFLiwgNnRoIGZsb29yCisJCQkJU2FsdCBsYWtlIENpdHkgVVQgODQxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTcyICAgKGhleCkJCVJlRHJpdmVuIFBvd2VyIEluYy4KKzAwMjQ3MiAgICAgKGJhc2UgMTYpCQlSZURyaXZlbiBQb3dlciBJbmMuCisJCQkJMjRBIEJhdGggUmQuCisJCQkJSXJvcXVvaXMgT250YXJpbyBLMEUgMUswCisJCQkJQ0FOQURBCisKKzAwLTI0LTczICAgKGhleCkJCTNDb20gRXVyb3BlIEx0ZAorMDAyNDczICAgICAoYmFzZSAxNikJCTNDb20gRXVyb3BlIEx0ZAorCQkJCVBlb3BsZSBCdWlsZGluZyAyCisJCQkJTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzLiBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjQtNzQgICAoaGV4KQkJQXV0cm9uaWNhIEZpcmUgQW5kIFNlY3VyaXJ0eQorMDAyNDc0ICAgICAoYmFzZSAxNikJCUF1dHJvbmljYSBGaXJlIEFuZCBTZWN1cmlydHkKKwkJCQlIYWFrb24gVklJJ3MgZy40CisJCQkJVHJvbmRoZWltIE4tNzQ4MworCQkJCU5PUldBWQorCiswMC0yNC03NSAgIChoZXgpCQlDb21wYXNzIFN5c3RlbShFbWJlZGRlZCBEZXB0LikKKzAwMjQ3NSAgICAgKGJhc2UgMTYpCQlDb21wYXNzIFN5c3RlbShFbWJlZGRlZCBEZXB0LikKKwkJCQkxNDAzIEFDRSBUZWNobm9Ub3dlciA4dGgKKwkJCQkxOTEtNywgR3Vyby1kb25nLCBHdXJvLUd1CisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtNzYgICAoaGV4KQkJVEFQLnR2CiswMDI0NzYgICAgIChiYXNlIDE2KQkJVEFQLnR2CisJCQkJMTZ3MzYxIFNvdXRoIEZyb250YWdlIFJvYWQKKwkJCQlTdWl0ZSAxMjgKKwkJCQlCdXJyIFJpZGdlIElMIDYwNTI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC03NyAgIChoZXgpCQlUaWJibyBUZWNobm9sb2d5CiswMDI0NzcgICAgIChiYXNlIDE2KQkJVGliYm8gVGVjaG5vbG9neQorCQkJCTlGLTMsIE5vIDMxLCBMYW5lIDE2OSwgS2FuZy1OaW5nIFN0LiwKKwkJCQlIc2ktQ2hpaCBUYWlwZWkgSHNpZW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC03OCAgIChoZXgpCQlNYWcgVGVjaCBFbGVjdHJvbmljcyBDbyBMaW1pdGVkCiswMDI0NzggICAgIChiYXNlIDE2KQkJTWFnIFRlY2ggRWxlY3Ryb25pY3MgQ28gTGltaXRlZAorCQkJCUZsYXQgLyBSb29tIFQ3OCBHT0YgQmFuZ2tvayBCdWlsZGluZworCQkJCTE4IEJvbmhhbSBTdHJhbmQgV2VzdAorCQkJCVNoZXVuZyBXYW4gSEsgCisJCQkJSE9ORyBLT05HCisKKzAwLTI0LTc5ICAgKGhleCkJCU9wdGVjIERpc3BsYXlzLCBJbmMuCiswMDI0NzkgICAgIChiYXNlIDE2KQkJT3B0ZWMgRGlzcGxheXMsIEluYy4KKwkJCQk1MjggUy4gNnRoIEF2ZW51ZQorCQkJCUNpdHkgb2YgSW5kdXN0cnkgQ2FsaWZvcm5pYSA5MTc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtN0EgICAoaGV4KQkJRlUgWUkgQ0hFTkcgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMjQ3QSAgICAgKGJhc2UgMTYpCQlGVSBZSSBDSEVORyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTEzRiwgTm8uIDEwNS0xLCBKaWxpbiBSZC4sIEx1anUgU2hpYW5nLAorCQkJCVRhb3l1YW4gIDMzOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtN0IgICAoaGV4KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMKKzAwMjQ3QiAgICAgKGJhc2UgMTYpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworCQkJCTc2MCBOb3J0aCBNYXJ5IEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtN0MgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjQ3QyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MFYKKwkJCQlERU5NQVJLCisKKzAwLTI0LTdEICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDI0N0QgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTI0LTdFICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkCiswMDI0N0UgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQKKwkJCQkxNDEsIExBTkUgMzUxLFNFQy4xLCAgVEFJUElORyBSRC4KKwkJCQlUU0FPVFVFTgorCQkJCU5BTlRPVSA1NDI2MQorCQkJCVRBTlpBTklBLCBVTklURUQgUkVQVUJMSUMgT0YKKworMDAtMjQtN0YgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDI0N0YgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJMjIyMSBMYWtlc2lkZSBCbHZkCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4Mi00Mzk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC04MCAgIChoZXgpCQlNZXRlb2NvbnRyb2wgR21iSAorMDAyNDgwICAgICAoYmFzZSAxNikJCU1ldGVvY29udHJvbCBHbWJICisJCQkJU3BpY2hlcmVyc3RyYXNzZSA0OAorCQkJCUF1Z3NidXJnIEJhdmFyaWEgODYxNTIKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LTgxICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAyNDgxICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJTVMwNDA4MDIKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC04MiAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzAwMjQ4MiAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC04MyAgIChoZXgpCQlMRyBFbGVjdHJvbmljcworMDAyNDgzICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzCisJCQkJNjAtMzksS2FzYW4tZG9uZyxLdW1jaG9uLWt1LAorCQkJCVNlb3VsICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LTg0ICAgKGhleCkJCUJhbmcgYW5kIE9sdWZzZW4gTWVkaWNvbSBhL3MKKzAwMjQ4NCAgICAgKGJhc2UgMTYpCQlCYW5nIGFuZCBPbHVmc2VuIE1lZGljb20gYS9zCisJCQkJR2ltc2luZ2x1bmR2ZWogMjAKKwkJCQlTdHJ1ZXIgREsgREs3NjAwCisJCQkJREVOTUFSSworCiswMC0yNC04NSAgIChoZXgpCQlDb250ZVh0cmVhbSBMdGQKKzAwMjQ4NSAgICAgKGJhc2UgMTYpCQlDb250ZVh0cmVhbSBMdGQKKwkJCQk5NCBFbS1IYU1vc2hhdm90CisJCQkJUE9CIDMyNDYKKwkJCQlQZXRhY2gtVGlrdmEgIDQ5NTI3CisJCQkJSVNSQUVMCisKKzAwLTI0LTg2ICAgKGhleCkJCURlc2lnbkFydCBOZXR3b3JrcworMDAyNDg2ICAgICAoYmFzZSAxNikJCURlc2lnbkFydCBOZXR3b3JrcworCQkJCTQgSGEnaGFyb3NoZXQgU3QKKwkJCQlQLk8uIEJveCAyMjc4CisJCQkJUmEnYW5hbmEgIDQzMTAxCisJCQkJSVNSQUVMCisKKzAwLTI0LTg3ICAgKGhleCkJCUJsYWNrYm9hcmQgSW5jLgorMDAyNDg3ICAgICAoYmFzZSAxNikJCUJsYWNrYm9hcmQgSW5jLgorCQkJCTIyNjAxIE5vcnRoIDE5dGggQXZlbnVlCisJCQkJU3VpdGUgMjAwCisJCQkJUGhvZW5peCBBWiA4NTAyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtODggICAoaGV4KQkJQ2VudHJlIEZvciBEZXZlbG9wbWVudCBPZiBUZWxlbWF0aWNzCiswMDI0ODggICAgIChiYXNlIDE2KQkJQ2VudHJlIEZvciBEZXZlbG9wbWVudCBPZiBUZWxlbWF0aWNzCisJCQkJQjAxLCBFbGVjdHJvbmljIENpdHksIFBoYXNlIDEKKwkJCQlIb3N1ciBSb2FkCisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAxMDAKKwkJCQlJTkRJQQorCiswMC0yNC04OSAgIChoZXgpCQlWb2RhZm9uZSBPbW5pdGVsIE4uVi4KKzAwMjQ4OSAgICAgKGJhc2UgMTYpCQlWb2RhZm9uZSBPbW5pdGVsIE4uVi4KKwkJCQlWaWEgSmVydmlzIDEzCisJCQkJMTAwMTUgSXZyZWEgVG9yaW5vCisJCQkJSVRBTFkKKworMDAtMjQtOEEgICAoaGV4KQkJS2FnYSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMjQ4QSAgICAgKGJhc2UgMTYpCQlLYWdhIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCUhvbmdvIDItMi05CisJCQkJQnVua3lvLWt1CisJCQkJVG9reW8gMTEzLTg1MDMKKwkJCQlKQVBBTgorCiswMC0yNC04QiAgIChoZXgpCQlIWUJVUyBDTy4sIExURC4KKzAwMjQ4QiAgICAgKGJhc2UgMTYpCQlIWUJVUyBDTy4sIExURC4KKwkJCQlSbSMgNzAxLCBEYWVydW5nIFBvc3QgVG93ZXIgMXN0CisJCQkJMjEyLTgsIEd1cm8tM2RvbmcsIEd1cm8tZ3UKKwkJCQlTRU9VTCAgMTUyLTc5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC04QyAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMjQ4QyAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91LAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC04RCAgIChoZXgpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgSW5jLgorMDAyNDhEICAgICAoYmFzZSAxNikJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBJbmMuCisJCQkJMi02LTIxIE1pbmFtaS1Bb3lhbWEsCisJCQkJTWluYXRvLWt1IFRva3lvIDEwNy0wMDYyCisJCQkJSkFQQU4KKworMDAtMjQtOEUgICAoaGV4KQkJSW5mb3dhcmUgWlJ0LgorMDAyNDhFICAgICAoYmFzZSAxNikJCUluZm93YXJlIFpSdC4KKwkJCQlIdXNlZyB1LiAxMC9hCisJCQkJQnVkYXBlc3QgIDEyMjMKKwkJCQlIVU5HQVJZCisKKzAwLTI0LThGICAgKGhleCkJCURPLU1PTklYCiswMDI0OEYgICAgIChiYXNlIDE2KQkJRE8tTU9OSVgKKwkJCQkjNTAxLCBLb3JlYW5hIEIvRAorCQkJCTctNSwgU3VuYWUtZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDgyCisJCQkJS09SRUEsIERFTU9DUkFUSUMgUEVPUExFJ1MgUkVQVUJMSQorCiswMC0yNC05MCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMVEQKKzAwMjQ5MCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMVEQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtOTEgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworMDAyNDkxICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtOTIgICAoaGV4KQkJTW90b3JvbGEsIEJyb2FkYmFuZCBTb2x1dGlvbnMgR3JvdXAKKzAwMjQ5MiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSwgQnJvYWRiYW5kIFNvbHV0aW9ucyBHcm91cAorCQkJCTExMDEgTWFyaW5hIFZpbGxhZ2UgUGFya3dheQorCQkJCVN1aXRlIDIwMAorCQkJCUFsYW1lZGEgQ0EgOTQ1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTkzICAgKGhleCkJCU1vdG9yb2xhLCBJbmMKKzAwMjQ5MyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSwgSW5jCisJCQkJMTEwMSBNYXJpbmEgVmlsbGFnZSBQYXJrd2F5CisJCQkJU3VpdGUgMjAwCisJCQkJQWxhbWVkYSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtOTQgICAoaGV4KQkJU2hlbnpoZW4gQmFveGluIFRlY2ggQ08uLCBMdGQuCiswMDI0OTQgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQmFveGluIFRlY2ggQ08uLCBMdGQuCisJCQkJNkYgSHVhbGUgQkxERy4sIFpob25naGFuZ2JlaSBSZC4sCisJCQkJRnV0aWFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDUxODAyOAorCQkJCUNISU5BCisKKzAwLTI0LTk1ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDI0OTUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gVS5TLiBIaWdod2F5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElsbGlub2lzIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC05NiAgIChoZXgpCQlHaW56aW5nZXIgZWxlY3Ryb25pYyBzeXN0ZW1zCiswMDI0OTYgICAgIChiYXNlIDE2KQkJR2luemluZ2VyIGVsZWN0cm9uaWMgc3lzdGVtcworCQkJCUdld2VyYmVnZWJpZXQgUGlyYXRoIDE2CisJCQkJV2VuZyBVcHBlciBBdXN0cmlhIDQ5NTIKKwkJCQlBVVNUUklBCisKKzAwLTI0LTk3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjQ5NyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC05OCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI0OTggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtOTkgICAoaGV4KQkJQXF1aWxhIFRlY2hub2xvZ2llcworMDAyNDk5ICAgICAoYmFzZSAxNikJCUFxdWlsYSBUZWNobm9sb2dpZXMKKwkJCQk4NDI5QSBXYXNoaW5ndG9uIFBsYWNlIE5FCisJCQkJQWxidXF1ZXJxdWUgTk0gODcxMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTlBICAgKGhleCkJCUJlaWppbmcgWmhvbmdjaHVhbmcgVGVsZWNvbW11bmljYXRpb24gVGVzdCBDby4sIEx0ZC4KKzAwMjQ5QSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFpob25nY2h1YW5nIFRlbGVjb21tdW5pY2F0aW9uIFRlc3QgQ28uLCBMdGQuCisJCQkJMTItMTQsQmxvY2sgQyxCZWlqaW5nIEludGVybmF0aW9uYWwgQnVpbGRpbmcsIzE4LFpob25nIEd1YW4gQ3VuIE5hbiBSb2FkLAorCQkJCUhhaSBEaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgxCisJCQkJQ0hJTkEKKworMDAtMjQtOUIgICAoaGV4KQkJQWN0aW9uIFN0YXIgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKzAwMjQ5QiAgICAgKGJhc2UgMTYpCQlBY3Rpb24gU3RhciBFbnRlcnByaXNlIENvLiwgTHRkLgorCQkJCTEwRiwgTm8uMTU5LCBUYS1UdW5nIFJkLiwgU2VjLjIKKwkJCQlIc2ljaGloIFRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTlDICAgKGhleCkJCUJpbWVuZyBDb211bmljYXRpb24gU3lzdGVtIENvLiBMdGQKKzAwMjQ5QyAgICAgKGJhc2UgMTYpCQlCaW1lbmcgQ29tdW5pY2F0aW9uIFN5c3RlbSBDby4gTHRkCisJCQkJTGV2ZWwgMTYvZiwgVG93ZXIgQixTaW5vdHJhbnMgUGxhemEsTm8uNDMsIFhpIFpoaSBNZW4gTm9ydGhlcm4gUm9hZCxIYWkgZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA0NAorCQkJCUNISU5BCisKKzAwLTI0LTlEICAgKGhleCkJCU5FUyBUZWNobm9sb2d5IEluYy4KKzAwMjQ5RCAgICAgKGJhc2UgMTYpCQlORVMgVGVjaG5vbG9neSBJbmMuCisJCQkJIzIwNSBBQ0UgVGVjaG5vdG93ZXIgMTAsIDQ3MC01IEdhc2FuLWRvbmcKKwkJCQlHZXVtY2hlb24tZ3UKKwkJCQlTZW91bCAgMTUzLTc4OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC05RSAgIChoZXgpCQlBREMtRWxla3Ryb25payBHbWJICiswMDI0OUUgICAgIChiYXNlIDE2KQkJQURDLUVsZWt0cm9uaWsgR21iSAorCQkJCU9zdGluZ3N0cmFzc2UgMTNiCisJCQkJSGFtbSBOUlcgRC01OTA2MworCQkJCUdFUk1BTlkKKworMDAtMjQtOUYgICAoaGV4KQkJUklNIFRlc3RpbmcgU2VydmljZXMKKzAwMjQ5RiAgICAgKGJhc2UgMTYpCQlSSU0gVGVzdGluZyBTZXJ2aWNlcworCQkJCTQ0MCBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDVSOQorCQkJCUNBTkFEQQorCiswMC0yNC1BMCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyNEEwICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQTEgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjRBMSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUEyICAgKGhleCkJCUhvbmcgS29uZyBNaWRkbGV3YXJlIFRlY2hub2xvZ3kgTGltaXRlZAorMDAyNEEyICAgICAoYmFzZSAxNikJCUhvbmcgS29uZyBNaWRkbGV3YXJlIFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCVJvb20gMTMxNSAsTGVpZ2h0b24gQ2VudHJlLDc3IExlaWdodG9uIFJvYWQKKwkJCQlDYXVzZXdheSBCYXkgIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0yNC1BMyAgIChoZXgpCQlTb25pbSBUZWNobm9sb2dpZXMgSW5jCiswMDI0QTMgICAgIChiYXNlIDE2KQkJU29uaW0gVGVjaG5vbG9naWVzIEluYworCQkJCTE4NzUgUy5HcmFudCBTdHJlZXQKKwkJCQlTdGUjNjIwCisJCQkJU2FubWF0ZW8gQ0EgOTQ0MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUE0ICAgKGhleCkJCVNpa2x1IENvbW11bmljYXRpb24KKzAwMjRBNCAgICAgKGJhc2UgMTYpCQlTaWtsdSBDb21tdW5pY2F0aW9uCisJCQkJNyBTaG9oYW0gU3QuLCAsIDNyZCBGbG9vcgorCQkJCVBldGFoIFRpa3ZhICA0OTUxNworCQkJCUlTUkFFTAorCiswMC0yNC1BNSAgIChoZXgpCQlCdWZmYWxvIEluYy4KKzAwMjRBNSAgICAgKGJhc2UgMTYpCQlCdWZmYWxvIEluYy4KKwkJCQkxNSwgU2hpYmF0YSBIb25kb3JpIDQtY2hvbWUKKwkJCQlNaW5hbWkta3UsTmFnb3lhIEFpY2hpIFByZWYuIDQ1Ny04NTIwCisJCQkJSkFQQU4KKworMDAtMjQtQTYgICAoaGV4KQkJVEVMRVNUQVIgRElHSVRBTCBHbWJICiswMDI0QTYgICAgIChiYXNlIDE2KQkJVEVMRVNUQVIgRElHSVRBTCBHbWJICisJCQkJVnVsa2FuaG9oZSAvIEI0MTAKKwkJCQlEcmVpcyAtIEJydWNrICA1NDU1MgorCQkJCUdFUk1BTlkKKworMDAtMjQtQTcgICAoaGV4KQkJQWR2YW5jZWQgVmlkZW8gQ29tbXVuaWNhdGlvbnMgSW5jLgorMDAyNEE3ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIFZpZGVvIENvbW11bmljYXRpb25zIEluYy4KKwkJCQk2MzMgVyA1dGggU3RyZWV0CisJCQkJNjgwMAorCQkJCUxvcyBBbmdlbGVzIENBIDkwMDE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1BOCAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCiswMDI0QTggICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQKKwkJCQlSb3NldmlsbGUgQ2FsaWZvcm5pYSA5NTc0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQTkgICAoaGV4KQkJQWcgTGVhZGVyIFRlY2hub2xvZ3kKKzAwMjRBOSAgICAgKGJhc2UgMTYpCQlBZyBMZWFkZXIgVGVjaG5vbG9neQorCQkJCTIyMDIgUyBSaXZlcnNpZGUgRHIuCisJCQkJUE8gQm94IDIzNDgKKwkJCQlBbWVzIElBIDUwMDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1BQSAgIChoZXgpCQlEeWNvciBUZWNobm9sb2dpZXMgTHRkLgorMDAyNEFBICAgICAoYmFzZSAxNikJCUR5Y29yIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJMTg1MSA5NCBTdHJlZXQKKwkJCQlFZG1vbnRvbiBBbGJlcnRhIFQ2TiAxRTYKKwkJCQlDQU5BREEKKworMDAtMjQtQUIgICAoaGV4KQkJQTcgRW5naW5lZXJpbmcsIEluYy4KKzAwMjRBQiAgICAgKGJhc2UgMTYpCQlBNyBFbmdpbmVlcmluZywgSW5jLgorCQkJCTEyMTI3IEtpcmtoYW0gUm9hZCBTdWl0ZSAxMDEKKwkJCQlQb3dheSBDQSA5MjA2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQUMgICAoaGV4KQkJSGFuZ3pob3UgRFB0ZWNoIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMjRBQyAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBEUHRlY2ggVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCUh1YXJvbmcgU2hpZGFpIEJsZC4sIE5PLjM4ODAsSmlhbmctTmFuIEF2ZW51ZSwgQmluamlhbmcgRGlzdHJpY3QKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwNTEKKwkJCQlDSElOQQorCiswMC0yNC1BRCAgIChoZXgpCQlBZG9sZiBUaGllcyBHbWJoICYgQ28uIEtHCiswMDI0QUQgICAgIChiYXNlIDE2KQkJQWRvbGYgVGhpZXMgR21iaCAmIENvLiBLRworCQkJCUhhdXB0c3RyLiA3NgorCQkJCUdvdHRpbmdlbiAgMzcwODMKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LUFFICAgKGhleCkJCU1vcnBobworMDAyNEFFICAgICAoYmFzZSAxNikJCU1vcnBobworCQkJCTE4IGNoYXVzc2VlIEp1bGVzIENlc2FyCisJCQkJT1NOWSAgOTU1MjAKKwkJCQlGUkFOQ0UKKworMDAtMjQtQUYgICAoaGV4KQkJRWNob1N0YXIgVGVjaG5vbG9naWVzCiswMDI0QUYgICAgIChiYXNlIDE2KQkJRWNob1N0YXIgVGVjaG5vbG9naWVzCisJCQkJOTQgSW52ZXJuZXNzIENpcmNsZQorCQkJCUVuZ2xld29vZCBDTyA4MDExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQjAgICAoaGV4KQkJRVNBQiBBQgorMDAyNEIwICAgICAoYmFzZSAxNikJCUVTQUIgQUIKKwkJCQlCb3ggODAwNAorCQkJCUxpbmRob2xtc2FsbGVuIDkKKwkJCQlHb3RoZW5idXJnICBTRS00MDIgNzcKKwkJCQlTV0VERU4KKworMDAtMjQtQjEgICAoaGV4KQkJQ291bG9tYiBUZWNobm9sb2dpZXMKKzAwMjRCMSAgICAgKGJhc2UgMTYpCQlDb3Vsb21iIFRlY2hub2xvZ2llcworCQkJCTE2OTIgRGVsbCBBdmUKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQjIgICAoaGV4KQkJTmV0Z2VhcgorMDAyNEIyICAgICAoYmFzZSAxNikJCU5ldGdlYXIKKwkJCQkzNTAgRWFzdCBQbHVtZXJpYSBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1CMyAgIChoZXgpCQlHcmFmLVN5dGVjbyBHbWJIICYgQ28uIEtHCiswMDI0QjMgICAgIChiYXNlIDE2KQkJR3JhZi1TeXRlY28gR21iSCAmIENvLiBLRworCQkJCUthaXNlcnN0ci4gMTgKKwkJCQlUdW5pbmdlbiBCYWRlbi1XdXJ0dGVtYmVyZyA3ODYwOQorCQkJCUdFUk1BTlkKKworMDAtMjQtQjQgICAoaGV4KQkJRVNDQVRST05JQyBHbWJICiswMDI0QjQgICAgIChiYXNlIDE2KQkJRVNDQVRST05JQyBHbWJICisJCQkJV3VlcnpidXJnZXIgU3RyLiA4CisJCQkJTGFhdHplbiBMb3dlciBTYXhvbnkgMzA4ODAKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LUI1ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAyNEI1ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTIyMjEgTGFrZXNpZGUgQmx2ZAorCQkJCVJpY2hhcmRzb24gVFggNzUwODItNDM5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQjYgICAoaGV4KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CiswMDI0QjYgICAgIChiYXNlIDE2KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CisJCQkJMTI4MCBEaXNjIERyaXZlCisJCQkJU2hha29wZWUgTU4gNTUzNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUI3ICAgKGhleCkJCUdyaWRQb2ludCwgSW5jLgorMDAyNEI3ICAgICAoYmFzZSAxNikJCUdyaWRQb2ludCwgSW5jLgorCQkJCTI4MDEgQ2xhcmVuZG9uIEJsdmQuCisJCQkJU3VpdGUgMTAwCisJCQkJQXJsaW5ndG9uIFZBIDIyMjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1COCAgIChoZXgpCQlmcmVlIGFsbGlhbmNlIHNkbiBiaGQKKzAwMjRCOCAgICAgKGJhc2UgMTYpCQlmcmVlIGFsbGlhbmNlIHNkbiBiaGQKKwkJCQlCLTMtMiBQbGF6YSBEYW1hcworCQkJCVNyaSBIYXJ0YW1hcworCQkJCUt1YWxhIEx1bXB1ciBXUCA1MDQ4MAorCQkJCU1BTEFZU0lBCisKKzAwLTI0LUI5ICAgKGhleCkJCVd1aGFuIEhpZ2hlYXN5IEVsZWN0cm9uaWMgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby5MdGQKKzAwMjRCOSAgICAgKGJhc2UgMTYpCQlXdWhhbiBIaWdoZWFzeSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ28uTHRkCisJCQkJQmxkZyBBMiBPcHRpY3MgVmFsbGV5IFNvZnR3YXJlIFBhcmssR3VhbnNoYW4gMXN0IFJkLAorCQkJCVd1aGFuIEh1YmVpIDQzMDAzMworCQkJCUNISU5BCisKKzAwLTI0LUJBICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDI0QkEgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUJCICAgKGhleCkJCUNFTlRSQUwgQ29ycG9yYXRpb24KKzAwMjRCQiAgICAgKGJhc2UgMTYpCQlDRU5UUkFMIENvcnBvcmF0aW9uCisJCQkJTklTU08gMTcgQmxkZy43RiAyLTE0LTMwCisJCQkJU2hpbnlva29oYW1hIEtvdWhva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjItMDAzMworCQkJCUpBUEFOCisKKzAwLTI0LUJDICAgKGhleCkJCUh1Um9iIENvLixMdGQKKzAwMjRCQyAgICAgKGJhc2UgMTYpCQlIdVJvYiBDby4sTHRkCisJCQkJMjEyMSwgSmVvbmd3YW5nLURvbmcKKwkJCQlTaWhldW5nLVNpIEd5ZW9uZ2dpLURvIDQyOS03OTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtQkQgICAoaGV4KQkJSGFpbnpsIEluZHVzdHJpZXN5c3RlbWUgR21iSAorMDAyNEJEICAgICAoYmFzZSAxNikJCUhhaW56bCBJbmR1c3RyaWVzeXN0ZW1lIEdtYkgKKwkJCQlJbmR1c3RyaWV6ZWlsZSA1NgorCQkJCVBvc3RmYWNoIDEwMAorCQkJCUxpbnogVXBwZXIgQXVzdHJpYSA0MDIxCisJCQkJQVVTVFJJQQorCiswMC0yNC1CRSAgIChoZXgpCQlTb255IENvcnBvcmF0aW9uCiswMDI0QkUgICAgIChiYXNlIDE2KQkJU29ueSBDb3Jwb3JhdGlvbgorCQkJCUdvdGVueWFtYSBUZWMuIDUtMS0xMgorCQkJCUtpdGFzaGluYWdhd2EKKwkJCQlTaGluYWdhd2Eta3UgVG9reW8gMTQxLTAwMDEKKwkJCQlKQVBBTgorCiswMC0yNC1CRiAgIChoZXgpCQlDSUFUCiswMDI0QkYgICAgIChiYXNlIDE2KQkJQ0lBVAorCQkJCTMwLCBBdmVudWUgSmVhbiBGYWxjb25uaWVyCisJCQkJQ3Vsb3ogIDAxMzUwCisJCQkJRlJBTkNFCisKKzAwLTI0LUMwICAgKGhleCkJCU5USSBDT01PRE8gSU5DCiswMDI0QzAgICAgIChiYXNlIDE2KQkJTlRJIENPTU9ETyBJTkMKKwkJCQlSbSM1MDIsIEthbmd5b25nIEJsZGcsIFN1bmduYW0tZG9uZworCQkJCUNoZXVuZ3dvbi1ndQorCQkJCVN1bmduYW0tc2kgS3l1bmdnaS1kbyA0NjItODI3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LUMxICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDI0QzEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQlOby4xMTg3IEJpbkFuIFJvYWQsIEJpbmppYW5nIERpc3RyaWN0LAorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDA1MworCQkJCUNISU5BCisKKzAwLTI0LUMyICAgKGhleCkJCUFzdW1vIENvLixMdGQuCiswMDI0QzIgICAgIChiYXNlIDE2KQkJQXN1bW8gQ28uLEx0ZC4KKwkJCQlPeWEtS2l0YSAxLTMtMQorCQkJCUVCSU5BLUNJVFkgS0FOQUdBV0EtUFJFRi4gMjQzLTA0MTkKKwkJCQlKQVBBTgorCiswMC0yNC1DMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI0QzMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQzQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNEM0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUM1ICAgKGhleCkJCU1lcmlkaWFuIEF1ZGlvIExpbWl0ZWQKKzAwMjRDNSAgICAgKGJhc2UgMTYpCQlNZXJpZGlhbiBBdWRpbyBMaW1pdGVkCisJCQkJMTEgTGF0aGFtIFJvYWQKKwkJCQlIdW50aW5nZG9uIENhbWJzIFBFMjkgNllFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjQtQzYgICAoaGV4KQkJSGFnZXIgRWxlY3RybyBTQVMKKzAwMjRDNiAgICAgKGJhc2UgMTYpCQlIYWdlciBFbGVjdHJvIFNBUworCQkJCTEzMiwgYm91bGV2YXJkIGQnRXVyb3BlCisJCQkJT2Jlcm5haSBCYXMtUmhpbiA2NzIxNQorCQkJCUZSQU5DRQorCiswMC0yNC1DNyAgIChoZXgpCQlNb2JpbGFybSBMdGQKKzAwMjRDNyAgICAgKGJhc2UgMTYpCQlNb2JpbGFybSBMdGQKKwkJCQk3NjggQ2FubmluZyBIaWdod2F5CisJCQkJQXBwbGVjcm9zcworCQkJCVdlc3Rlcm4gQXVzdHJhbGlhIDYxNTMKKwkJCQlBVVNUUkFMSUEKKworMDAtMjQtQzggICAoaGV4KQkJQnJvYWRiYW5kIFNvbHV0aW9ucyBHcm91cAorMDAyNEM4ICAgICAoYmFzZSAxNikJCUJyb2FkYmFuZCBTb2x1dGlvbnMgR3JvdXAKKwkJCQkxMTAxIE1hcmluYSBWaWxsYWdlIFBhcmt3YXkKKwkJCQlBbGFtZWRhIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1DOSAgIChoZXgpCQlCcm9hZGJhbmQgU29sdXRpb25zIEdyb3VwCiswMDI0QzkgICAgIChiYXNlIDE2KQkJQnJvYWRiYW5kIFNvbHV0aW9ucyBHcm91cAorCQkJCTExMDEgTWFyaW5hIFZpbGxhZ2UgUGFya3dheQorCQkJCUFsYW1lZGEgQ0EgOTQ1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUNBICAgKGhleCkJCVRvYmlpIFRlY2hub2xvZ3kgQUIKKzAwMjRDQSAgICAgKGJhc2UgMTYpCQlUb2JpaSBUZWNobm9sb2d5IEFCCisJCQkJS2FybHNyb3ZhZ2VuIDJECisJCQkJRGFuZGVyeWQgIDE4MjUzCisJCQkJU1dFREVOCisKKzAwLTI0LUNCICAgKGhleCkJCUF1dG9uZXQgTW9iaWxlCiswMDI0Q0IgICAgIChiYXNlIDE2KQkJQXV0b25ldCBNb2JpbGUKKwkJCQkyMjM1IE1lcmN1cnkgV2F5IFN0ZS4gMTQ1CisJCQkJU2FudGEgUm9zYSBDQSA5NTQwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQ0MgICAoaGV4KQkJRmFzY2luYXRpb25zIFRveXMgYW5kIEdpZnRzLCBJbmMuCiswMDI0Q0MgICAgIChiYXNlIDE2KQkJRmFzY2luYXRpb25zIFRveXMgYW5kIEdpZnRzLCBJbmMuCisJCQkJMTkyMjQgRGVzIE1vaW5lcyBXYXkgUworCQkJCVN0ZSAxMDAKKwkJCQlTZWF0dGxlIFdhc2hpbmd0b24gOTgxNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUNEICAgKGhleCkJCVdpbGxvdyBHYXJhZ2UsIEluYy4KKzAwMjRDRCAgICAgKGJhc2UgMTYpCQlXaWxsb3cgR2FyYWdlLCBJbmMuCisJCQkJNjggV2lsbG93IFJkLgorCQkJCU1lbmxvIFBhcmsgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUNFICAgKGhleCkJCUV4ZWx0ZWNoIEluYworMDAyNENFICAgICAoYmFzZSAxNikJCUV4ZWx0ZWNoIEluYworCQkJCTczMTcgSmFjayBOZXdlbGwgQmx2ZCBOb3J0aAorCQkJCUZvcnQgV29ydGggVFggNzYxMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUNGICAgKGhleCkJCUluc2NhcGUgRGF0YSBDb3Jwb3JhdGlvbgorMDAyNENGICAgICAoYmFzZSAxNikJCUluc2NhcGUgRGF0YSBDb3Jwb3JhdGlvbgorCQkJCTE2MTEgU291dGggTWFpbiBTdHJlZXQKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRDAgICAoaGV4KQkJU2hlbnpoZW4gU09HT09EIEluZHVzdHJ5IENPLixMVEQuCiswMDI0RDAgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gU09HT09EIEluZHVzdHJ5IENPLixMVEQuCisJCQkJU09HT09EIFNjaWVuY2UgUGFyayxBdmlhdGlvbiBSb2FkLFhpWGlhbmcgVG93bixCYW8nYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmd6aG91IDUxODEwMgorCQkJCUNISU5BCisKKzAwLTI0LUQxICAgKGhleCkJCVRob21zb24gSW5jLgorMDAyNEQxICAgICAoYmFzZSAxNikJCVRob21zb24gSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRDIgICAoaGV4KQkJQXNrZXkgQ29tcHV0ZXIKKzAwMjREMiAgICAgKGJhc2UgMTYpCQlBc2tleSBDb21wdXRlcgorCQkJCTEwRixOTy4xMTksQ0hJRU5LQU5HIFJELENIVU5HLUhPLFRBSVBFSSwKKwkJCQlUQUlXQU4gVEFJUEVJIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtRDMgICAoaGV4KQkJUVVBTElDQSBJbmMuCiswMDI0RDMgICAgIChiYXNlIDE2KQkJUVVBTElDQSBJbmMuCisJCQkJNS0yOS0xNSxUb3lvLAorCQkJCUtvdG8ta3UsCisJCQkJVG9reW8gIDEzNS0wMDE2CisJCQkJSkFQQU4KKworMDAtMjQtRDQgICAoaGV4KQkJRlJFRUJPWCBTQQorMDAyNEQ0ICAgICAoYmFzZSAxNikJCUZSRUVCT1ggU0EKKwkJCQk4IHJ1ZSBkZSBsYSBWaWxsZSBsJ0V2ZXF1ZQorCQkJCVBBUklTIElkRiA3NTAwOAorCQkJCUZSQU5DRQorCiswMC0yNC1ENSAgIChoZXgpCQlXaW53YXJkIEluZHVzdHJpYWwgTGltaXRlZAorMDAyNEQ1ICAgICAoYmFzZSAxNikJCVdpbndhcmQgSW5kdXN0cmlhbCBMaW1pdGVkCisJCQkJUm0uNywgUCBGbG9vciwgVG93ZXIgQSwKKwkJCQlIdW5nIEhvbSBDb21tZXJjaWFsIENlbnRyZSwKKwkJCQlIb25nS29uZyAgODUyCisJCQkJQ0hJTkEKKworMDAtMjQtRDYgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDI0RDYgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yNC1ENyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjRENyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTI0LUQ4ICAgKGhleCkJCUlsU3VuZyBQcmVjaXNpb24KKzAwMjREOCAgICAgKGJhc2UgMTYpCQlJbFN1bmcgUHJlY2lzaW9uCisJCQkJMTgyLTIsIEplZ2ktcmksIEplb25nbmFtLW15ZW9uCisJCQkJSHdhbnNlb25nLXNpIEd5ZW9uZ2dpLWRvIDQ0NS05NjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtRDkgICAoaGV4KQkJQklDT00sIEluYy4KKzAwMjREOSAgICAgKGJhc2UgMTYpCQlCSUNPTSwgSW5jLgorCQkJCTc1NSBNYWluIFN0cmVldAorCQkJCUJ1aWxkaW5nIDMKKwkJCQlNb25yb2UgQ1QgMDY0NjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LURBICAgKGhleCkJCUlubm92YXIgU3lzdGVtcyBMaW1pdGVkCiswMDI0REEgICAgIChiYXNlIDE2KQkJSW5ub3ZhciBTeXN0ZW1zIExpbWl0ZWQKKwkJCQkxMjE1NSBDb21taXNzaW9uZXIgRHJpdmUKKwkJCQlQTyBCb3ggNjY4CisJCQkJTm9ydGggSmFja3NvbiBPaGlvIDQ0NDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1EQiAgIChoZXgpCQlBbGNvaG9sIE1vbml0b3JpbmcgU3lzdGVtcworMDAyNERCICAgICAoYmFzZSAxNikJCUFsY29ob2wgTW9uaXRvcmluZyBTeXN0ZW1zCisJCQkJMTI0MSBXLiBNaW5lcmFsIEF2ZW51ZQorCQkJCVN1aXRlIDIwMAorCQkJCUxpdHRsZXRvbiBDTyA4MDEyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtREMgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworMDAyNERDICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1ERCAgIChoZXgpCQlDZW50cmFrLCBJbmMuCiswMDI0REQgICAgIChiYXNlIDE2KQkJQ2VudHJhaywgSW5jLgorCQkJCTIwNyBQZW5ucyBUcmFpbAorCQkJCU5ld3Rvd24gUEEgMTg5NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LURFICAgKGhleCkJCUdMT0JBTCBUZWNobm9sb2d5IEluYy4KKzAwMjRERSAgICAgKGJhc2UgMTYpCQlHTE9CQUwgVGVjaG5vbG9neSBJbmMuCisJCQkJTm8uMTY4LFNoYW5zaGFuIFJkLiwgV2FuZ2NodW4gSW5kdXN0cmlhbCBQYXJrLAorCQkJCU5pbmdibyAgMzE1MTc2CisJCQkJQ0hJTkEKKworMDAtMjQtREYgICAoaGV4KQkJRGlnaXRhbGJveCBFdXJvcGUgR21iSAorMDAyNERGICAgICAoYmFzZSAxNikJCURpZ2l0YWxib3ggRXVyb3BlIEdtYkgKKwkJCQlTYW5kc3RyYXNzZSA2NQorCQkJCVJhdGluZ2VuICA0MDg3OAorCQkJCUdFUk1BTlkKKworMDAtMjQtRTAgICAoaGV4KQkJRFMgVGVjaCwgTExDCiswMDI0RTAgICAgIChiYXNlIDE2KQkJRFMgVGVjaCwgTExDCisJCQkJMjIxMCBIdXR0b24gRHJpdmUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlDYXJyb2xsdG9uIFRYIDc1MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1FMSAgIChoZXgpCQlDb252ZXkgQ29tcHV0ZXIgQ29ycC4KKzAwMjRFMSAgICAgKGJhc2UgMTYpCQlDb252ZXkgQ29tcHV0ZXIgQ29ycC4KKwkJCQkxMzAyIEUuIENvbGxpbnMgQmx2ZC4KKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1FMiAgIChoZXgpCQlIQVNFR0FXQSBFTEVDVFJJQyBDTy4sTFRELgorMDAyNEUyICAgICAoYmFzZSAxNikJCUhBU0VHQVdBIEVMRUNUUklDIENPLixMVEQuCisJCQkJNS02LTIwIFNISU9FCisJCQkJTElHSFROSU5HIFRFQ0hOT0xPR1kgQ0VOVEVSCisJCQkJQU1BR0FTQUtJIEhZT0dPIDY2MS0wOTc2CisJCQkJSkFQQU4KKworMDAtMjQtRTMgICAoaGV4KQkJQ0FPIEdyb3VwCiswMDI0RTMgICAgIChiYXNlIDE2KQkJQ0FPIEdyb3VwCisJCQkJNDYyOCBXZXN0IFNreWhhd2sgRHJpdmUKKwkJCQlXZXN0IEpvcmRhbiBVVCA4NDA4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRTQgICAoaGV4KQkJV2l0aGluZ3MKKzAwMjRFNCAgICAgKGJhc2UgMTYpCQlXaXRoaW5ncworCQkJCTM3YmlzIHJ1ZSBkdSBHZW5lcmFsIExlY2xlcmMKKwkJCQlJc3N5IGxlcyBNb3VsaW5lYXV4ICA5MjQ0MgorCQkJCUZSQU5DRQorCiswMC0yNC1FNSAgIChoZXgpCQlTZWVyIFRlY2hub2xvZ3ksIEluYworMDAyNEU1ICAgICAoYmFzZSAxNikJCVNlZXIgVGVjaG5vbG9neSwgSW5jCisJCQkJMjY4MSBQYXJsZXlzIFdheQorCQkJCVN1aXRlIDIwMQorCQkJCVNhbHQgTGFrZSBDaXR5IFV0YWggODQxMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUU2ICAgKGhleCkJCUluIE1vdGlvbiBUZWNobm9sb2d5IEluYy4KKzAwMjRFNiAgICAgKGJhc2UgMTYpCQlJbiBNb3Rpb24gVGVjaG5vbG9neSBJbmMuCisJCQkJIzM1MCwgNjI1IEFnbmVzIFN0cmVldAorCQkJCU5ldyBXZXN0bWluc3RlciBCQyBWM00gNVk0CisJCQkJQ0FOQURBCisKKzAwLTI0LUU3ICAgKGhleCkJCVBsYXN0ZXIgTmV0d29ya3MKKzAwMjRFNyAgICAgKGJhc2UgMTYpCQlQbGFzdGVyIE5ldHdvcmtzCisJCQkJOTM1IEhhbWlsdG9uIEF2ZW51ZQorCQkJCU1lbmxvIFBhcmsgQ0EgOTQwMjUtMTQzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRTggICAoaGV4KQkJRGVsbCBJbmMuCiswMDI0RTggICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1FOSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLiwgU3RvcmFnZSBTeXN0ZW0gRGl2aXNpb24KKzAwMjRFOSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLiwgU3RvcmFnZSBTeXN0ZW0gRGl2aXNpb24KKwkJCQk0MTYsIE1hZXRhbiAzRG9uZywgWWVvbmd0b25nLUd1CisJCQkJU3V3b24gQ2l0eSBHZXlvbmdnaSBEbyA0NDMtNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LUVBICAgKGhleCkJCWlyaXMtR21iSCBpbmZyYXJlZCAmIGludGVsbGlnZW50IHNlbnNvcnMKKzAwMjRFQSAgICAgKGJhc2UgMTYpCQlpcmlzLUdtYkggaW5mcmFyZWQgJiBpbnRlbGxpZ2VudCBzZW5zb3JzCisJCQkJT3N0ZW5kc3RyYXNzZSAxLTE0CisJCQkJQmVybGluICAxMjQ1OQorCQkJCUdFUk1BTlkKKworMDAtMjQtRUIgICAoaGV4KQkJQ2xlYXJQYXRoIE5ldHdvcmtzLCBJbmMuCiswMDI0RUIgICAgIChiYXNlIDE2KQkJQ2xlYXJQYXRoIE5ldHdvcmtzLCBJbmMuCisJCQkJMTk0MCBFLiBNYXJpcG9zYSBBdmUuCisJCQkJU3VpdGUgMTUwCisJCQkJRWwgU2VndW5kbyBDQSA5MDI0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRUMgICAoaGV4KQkJVW5pdGVkIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMjRFQyAgICAgKGJhc2UgMTYpCQlVbml0ZWQgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTUvRiw5dGggQnVpbGRpbmcsU29mdHdhcmUgUGFyaywybmQgS2VqaS16aG9uZyBSb2FkLEhpZ2gtVGVjaCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjQtRUQgICAoaGV4KQkJWVQgRWxlYy4gQ28sLkx0ZC4KKzAwMjRFRCAgICAgKGJhc2UgMTYpCQlZVCBFbGVjLiBDbywuTHRkLgorCQkJCUJsb2NrIEIsMiBGbG9vciAsQmFvIFlpbmcgSW5kdXN0cmlhbCBEaXN0cmljdCwKKwkJCQlMb25nIEdhbmcgTG9uZ1hpLAorCQkJCVd1IExpYW4gTHUgU2hlbnpoZW4gNTE4MTE2CisJCQkJQ0hJTkEKKworMDAtMjQtRUUgICAoaGV4KQkJV3lubWF4IEluYy4KKzAwMjRFRSAgICAgKGJhc2UgMTYpCQlXeW5tYXggSW5jLgorCQkJCTE4Ri4sIE5vLiA3NSwgU2VjLiAxLCBYaW5UYWkgNXRoICBSZC4sCisJCQkJWGl6aGkgIENpdHksIFRhaXBlaSBDb3VudHkgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC1FRiAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworMDAyNEVGICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgIDIyMTg4CisJCQkJU1dFREVOCisKKzAwLTI0LUYwICAgKGhleCkJCVNlYW5vZGVzCiswMDI0RjAgICAgIChiYXNlIDE2KQkJU2Vhbm9kZXMKKwkJCQlCYXRpbWVudCBQbGF0b24KKwkJCQkyNSBCdmQgVmljdG9yIEh1Z28KKwkJCQlDb2xvbWllcnMgIDMxNzcwCisJCQkJRlJBTkNFCisKKzAwLTI0LUYxICAgKGhleCkJCVNoZW56aGVuIEZhbmhhaSBTYW5qaWFuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMjRGMSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBGYW5oYWkgU2FuamlhbmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJM0Y/P0d1YW5nY2FpIFhpbnRpYW5kaSBCdWlsZGluZyxOYW5zaGFuIFJkLE5hbnNoYW4sCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NAorCQkJCUNISU5BCisKKzAwLTI0LUYyICAgKGhleCkJCVVuaXBob25lIFRlbGVjb21tdW5pY2F0aW9uIENvLiwgTHRkLgorMDAyNEYyICAgICAoYmFzZSAxNikJCVVuaXBob25lIFRlbGVjb21tdW5pY2F0aW9uIENvLiwgTHRkLgorCQkJCU5vLiAyNSwgQ2h1LUt1bmcgM3JkIExhbmUsIENodS1Ib3UgVHN1bmcsIEplbi1XdSBIc2lhbmcsCisJCQkJS2FvaHNpdW5nIEhzaWVuICA4MTQ0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtRjMgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDI0RjMgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gS1lPVE8gNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yNC1GNCAgIChoZXgpCQlLYW1pbmFyaW8gVGVjaG5vbG9naWVzIEx0ZC4KKzAwMjRGNCAgICAgKGJhc2UgMTYpCQlLYW1pbmFyaW8gVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQlZYXRhbSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlDUEMgQnVpbGRpbmcKKwkJCQlZb2tuZWFtIElTUkFFTCAyMDY5MgorCQkJCUlTUkFFTAorCiswMC0yNC1GNSAgIChoZXgpCQlORFMgU3VyZ2ljYWwgSW1hZ2luZworMDAyNEY1ICAgICAoYmFzZSAxNikJCU5EUyBTdXJnaWNhbCBJbWFnaW5nCisJCQkJNTc1MCBIZWxseWVyIEF2ZS4KKwkJCQlTYW4gSm9zZSBDQS4gOTUxMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUY2ICAgKGhleCkJCU1JWU9TSEkgRUxFQ1RST05JQ1MgQ09SUE9SQVRJT04KKzAwMjRGNiAgICAgKGJhc2UgMTYpCQlNSVlPU0hJIEVMRUNUUk9OSUNTIENPUlBPUkFUSU9OCisJCQkJMy0xMy0yMSBLVVNISVJPCisJCQkJS0FXQU5JU0hJLUNJVFkgSFlPR08tUFJFRi4gNjY2LTAwMjQKKwkJCQlKQVBBTgorCiswMC0yNC1GNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI0RjcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRjggICAoaGV4KQkJVGVjaG5pY2FsIFNvbHV0aW9ucyBDb21wYW55IEx0ZC4KKzAwMjRGOCAgICAgKGJhc2UgMTYpCQlUZWNobmljYWwgU29sdXRpb25zIENvbXBhbnkgTHRkLgorCQkJCUJveCAzMTc1MAorCQkJCVdoaXRlaG9yc2UgWXVrb24gWTFBIDZMMworCQkJCUNBTkFEQQorCiswMC0yNC1GOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI0RjkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRkEgICAoaGV4KQkJSGlsZ2VyIHUuIEtlcm4gR01CSAorMDAyNEZBICAgICAoYmFzZSAxNikJCUhpbGdlciB1LiBLZXJuIEdNQkgKKwkJCQlLYWVmZXJ0YWxlciBTdHJhc3NlIDI1My0yNTUKKwkJCQlNYW5uaGVpbSBCYWRlbi1XdWVydHRlbWJlcmcgNjgxNjcKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LUZCICAgKGhleCkJCVBSSVZBVEUKKzAwMjRGQiAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMjQtRkMgICAoaGV4KQkJUXVvUGluIENvLiwgTHRkLgorMDAyNEZDICAgICAoYmFzZSAxNikJCVF1b1BpbiBDby4sIEx0ZC4KKwkJCQkjMTA5LCBSJkQgQ2VudGVyIGZvciBBZHZhbmNlZCBUZWNobm9sb2d5IDY4IFlhdGFwLWRvbmcgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtIEt5dW5na2ktZG8gNDYzLTgxNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC1GRCAgIChoZXgpCQlQcm9zaWxpZW50IFRlY2hub2xvZ2llcyBBQgorMDAyNEZEICAgICAoYmFzZSAxNikJCVByb3NpbGllbnQgVGVjaG5vbG9naWVzIEFCCisJCQkJQXJzdGFhbmdzdmFnZW4gMjUgKDNyZCBmbG9vciksIChCb3ggNDcyMzEpCisJCQkJU3RvY2tob2xtICBTRS0xMDA3NAorCQkJCVNXRURFTgorCiswMC0yNC1GRSAgIChoZXgpCQlBVk0gR21iSAorMDAyNEZFICAgICAoYmFzZSAxNikJCUFWTSBHbWJICisJCQkJQWx0LU1vYWJpdCA5NQorCQkJCUJlcmxpbiAgMTA1NTkKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LUZGICAgKGhleCkJCVFMb2dpYyBDb3Jwb3JhdGlvbgorMDAyNEZGICAgICAoYmFzZSAxNikJCVFMb2dpYyBDb3Jwb3JhdGlvbgorCQkJCTI2NjUwIEFsaXNvIFZpZWpvIFBhcmt3YXkKKwkJCQlBbGlzbyBWaWVqbyBDQSA5MjY1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMDAgICAoaGV4KQkJQXBwbGUsIEluYworMDAyNTAwICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTAxICAgKGhleCkJCUpTQyAiU3VwZXJ0ZWwiCiswMDI1MDEgICAgIChiYXNlIDE2KQkJSlNDICJTdXBlcnRlbCIKKwkJCQkzOEEgUGV0cm9ncmFkc2theWEgZW1iLgorCQkJCVN0LlBldGVyc2J1cmcgIDE5NzEwMQorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yNS0wMiAgIChoZXgpCQlOYXR1cmFsUG9pbnQKKzAwMjUwMiAgICAgKGJhc2UgMTYpCQlOYXR1cmFsUG9pbnQKKwkJCQlQTyBCb3ggMjMxNworCQkJCUNvcnZhbGxpcyBPUiA5NzMzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMDMgICAoaGV4KQkJSUJNIENvcnAKKzAwMjUwMyAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTIwNTEgTWlzc2lvbiBDb2xsZWdlIEJsdmQgCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTA0ICAgKGhleCkJCVZhbGlhbnQgQ29tbXVuaWNhdGlvbnMgTGltaXRlZAorMDAyNTA0ICAgICAoYmFzZSAxNikJCVZhbGlhbnQgQ29tbXVuaWNhdGlvbnMgTGltaXRlZAorCQkJCTcxLTEgU2hpdmFqaSBNYXJnCisJCQkJTmV3IERlbGhpIERlbGhpIDExMDAxNQorCQkJCUlORElBCisKKzAwLTI1LTA1ICAgKGhleCkJCWVrcyBFbmdlbCBHbWJIICYgQ28uIEtHCiswMDI1MDUgICAgIChiYXNlIDE2KQkJZWtzIEVuZ2VsIEdtYkggJiBDby4gS0cKKwkJCQlTY2h1ZXR6ZW5zdHJhc3NlIDIKKwkJCQlXZW5kZW4tSGlsbG1pY2tlIE5SVyA1NzQ4MgorCQkJCUdFUk1BTlkKKworMDAtMjUtMDYgICAoaGV4KQkJQS5JLiBBTlRJVEFDQ0hFR0dJTyBJVEFMSUEgU1JMCiswMDI1MDYgICAgIChiYXNlIDE2KQkJQS5JLiBBTlRJVEFDQ0hFR0dJTyBJVEFMSUEgU1JMCisJCQkJVklDT0xPIERFTExFIERBTUUgNAorCQkJCUJPTE9HTkEgIDQwMTI0CisJCQkJSVRBTFkKKworMDAtMjUtMDcgICAoaGV4KQkJQVNUQUsgSW5jLgorMDAyNTA3ICAgICAoYmFzZSAxNikJCUFTVEFLIEluYy4KKwkJCQkxOTExIEhhcnRvZyBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0wOCAgIChoZXgpCQlNYXF1ZXQgQ2FyZGlvcHVsbW9uYXJ5IEFHCiswMDI1MDggICAgIChiYXNlIDE2KQkJTWFxdWV0IENhcmRpb3B1bG1vbmFyeSBBRworCQkJCUhlY2hpbmdlciBTdHJhc3NlIDM4CisJCQkJSGlycmxpbmdlbiAgNzIxNDUKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTA5ICAgKGhleCkJCVNIQVJFVFJPTklDIEdyb3VwIExURAorMDAyNTA5ICAgICAoYmFzZSAxNikJCVNIQVJFVFJPTklDIEdyb3VwIExURAorCQkJCVNoYUppbmcsQmFvJ2FuIFpvbmUsCisJCQkJU2hlblpoZW4gR3Vhbmdkb25nIDUxODEwNAorCQkJCUNISU5BCisKKzAwLTI1LTBBICAgKGhleCkJCVNlY3VyaXR5IEV4cGVydCBDby4gTHRkCiswMDI1MEEgICAgIChiYXNlIDE2KQkJU2VjdXJpdHkgRXhwZXJ0IENvLiBMdGQKKwkJCQk4Ri0zLCBOby4yLCBKaWFuIDh0aCBSZC4sCisJCQkJSmhvbmdoZSBUYWlwZWkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNS0wQiAgIChoZXgpCQlDRU5UUk9GQUNUT1IgIElOQworMDAyNTBCICAgICAoYmFzZSAxNikJCUNFTlRST0ZBQ1RPUiAgSU5DCisJCQkJUm9hZCBUb3duLCBUb3J0b2xhLCBQLk8uQm94IDMxNjEsCisJCQkJVG9ydG9sYSAgMTk0Mjk1CisJCQkJVklSR0lOIElTTEFORFMsIEJSSVRJU0gKKworMDAtMjUtMEMgICAoaGV4KQkJRW5lcnRyYWMKKzAwMjUwQyAgICAgKGJhc2UgMTYpCQlFbmVydHJhYworCQkJCTk0IFJpdmVyIFJkCisJCQkJU3VpdGUgMTAwCisJCQkJSHVkc29uIE5IIDAzMDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0wRCAgIChoZXgpCQlHWlQgVGVsa29tLVRlbG1vciBzcC4geiBvLm8uCiswMDI1MEQgICAgIChiYXNlIDE2KQkJR1pUIFRlbGtvbS1UZWxtb3Igc3AuIHogby5vLgorCQkJCU1pY2tpZXdpY3phIDUvNworCQkJCUdkYW5zayBwb21vcnNraWUgODAtNDI1CisJCQkJUE9MQU5ECisKKzAwLTI1LTBFICAgKGhleCkJCWd0IGdlcm1hbiB0ZWxlbWF0aWNzIGdtYmgKKzAwMjUwRSAgICAgKGJhc2UgMTYpCQlndCBnZXJtYW4gdGVsZW1hdGljcyBnbWJoCisJCQkJUmFua2VzdHJhc3NlIDI2CisJCQkJQmVybGluICBELTEwNzg5CisJCQkJR0VSTUFOWQorCiswMC0yNS0wRiAgIChoZXgpCQlPbi1SYW1wIFdpcmVsZXNzLCBJbmMuCiswMDI1MEYgICAgIChiYXNlIDE2KQkJT24tUmFtcCBXaXJlbGVzcywgSW5jLgorCQkJCTE2ODg1IFdlc3QgQmVybmFyZG8gRHJpdmUKKwkJCQlTdWl0ZSAyNTUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTEwICAgKGhleCkJCVBpY28tVGVzbGEgTWFnbmV0aWMgVGhlcmFwaWVzCiswMDI1MTAgICAgIChiYXNlIDE2KQkJUGljby1UZXNsYSBNYWduZXRpYyBUaGVyYXBpZXMKKwkJCQk3ODUyIFNvdXRoIEVsYXRpCisJCQkJIzIwMgorCQkJCUxpdHRsZXRvbiBDTyA4MDEyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMTEgICAoaGV4KQkJRUxJVEVHUk9VUCBDT01QVVRFUiBTWVNURU0gQ08uLCBMVEQuCiswMDI1MTEgICAgIChiYXNlIDE2KQkJRUxJVEVHUk9VUCBDT01QVVRFUiBTWVNURU0gQ08uLCBMVEQuCisJCQkJTk8uIDIzOSwgU2VjLiAyLCBUaSBEaW5nIEJsdmQuCisJCQkJVGFpcGVpIFRhaXdhbiAxMTQ5MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtMTIgICAoaGV4KQkJWlRFIENvcnBvcmF0aW9uCiswMDI1MTIgICAgIChiYXNlIDE2KQkJWlRFIENvcnBvcmF0aW9uCisJCQkJMTJGLCBSJkQgQnVpbGRpbmcsIFp0ZSwgSGktVGVjaCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjUtMTMgICAoaGV4KQkJQ1hQIERJR0lUQUwgQlYKKzAwMjUxMyAgICAgKGJhc2UgMTYpCQlDWFAgRElHSVRBTCBCVgorCQkJCURlIFJldWx2ZXIgOTdBCisJCQkJRW5zY2hlZGUgIDc1NDRSVAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTI1LTE0ICAgKGhleCkJCVBDIFdvcnRoIEludCdsIENvLiwgTHRkLgorMDAyNTE0ICAgICAoYmFzZSAxNikJCVBDIFdvcnRoIEludCdsIENvLiwgTHRkLgorCQkJCTE4RiwgTm8uMTAwLCBIc2luLVRhaS1XdSBSZC4sIFNlYy4gMSwKKwkJCQlIc2ktQ2hpaCwgVGFpcGVpIDIyMTAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNS0xNSAgIChoZXgpCQlTRlIKKzAwMjUxNSAgICAgKGJhc2UgMTYpCQlTRlIKKwkJCQk0MiBRdWFpIGR1IHBvaW50IGR1IGpvdXIKKwkJCQlCb3Vsb2duZSBiaWxsYW5jb3VydCAuIDkyNjU5CisJCQkJRlJBTkNFCisKKzAwLTI1LTE2ICAgKGhleCkJCUludGVncmF0ZWQgRGVzaWduIFRvb2xzLCBJbmMuCiswMDI1MTYgICAgIChiYXNlIDE2KQkJSW50ZWdyYXRlZCBEZXNpZ24gVG9vbHMsIEluYy4KKwkJCQkxMjAyIEUgUGFyayBBdmVudWUKKwkJCQlUYWxsYWhhc3NlZSBGTCAzMjMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMTcgICAoaGV4KQkJVmVubnRpcywgTExDCiswMDI1MTcgICAgIChiYXNlIDE2KQkJVmVubnRpcywgTExDCisJCQkJMTEzMDEgSmFtZXMgU3RyZWV0CisJCQkJSG9sbGFuZCBNSSA0OTQyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMTggICAoaGV4KQkJUG93ZXIgUExVUyBDb21tdW5pY2F0aW9ucyBBRworMDAyNTE4ICAgICAoYmFzZSAxNikJCVBvd2VyIFBMVVMgQ29tbXVuaWNhdGlvbnMgQUcKKwkJCQlBbSBFeGVyemllcnBsYXR6IDIKKwkJCQlNYW5uaGVpbSBCYWRlbiBXdWVydHRlbWJlcmcgNjgxNjcKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTE5ICAgKGhleCkJCVZpYWFzIEluYworMDAyNTE5ICAgICAoYmFzZSAxNikJCVZpYWFzIEluYworCQkJCTMxNzUgU291dGggV2luY2hlc3RlciBCbHZkCisJCQkJQ2FtcGJlbGwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTFBICAgKGhleCkJCVBzaWJlciBEYXRhIFN5c3RlbXMgSW5jLgorMDAyNTFBICAgICAoYmFzZSAxNikJCVBzaWJlciBEYXRhIFN5c3RlbXMgSW5jLgorCQkJCTcwNzUtSyBNaXNzaW9uIEdvcmdlIFJkCisJCQkJU2FuIERpZWdvIENBIDkyMTIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0xQiAgIChoZXgpCQlQaGlsaXBzIENhcmVTZXJ2YW50CiswMDI1MUIgICAgIChiYXNlIDE2KQkJUGhpbGlwcyBDYXJlU2VydmFudAorCQkJCUhpZ2ggVGVjaCBDYW1wdXMgMjcKKwkJCQlFaW5kaG92ZW4gTm9vcmQtQnJhYmFudCA1NjU2IEFFCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjUtMUMgICAoaGV4KQkJRURUCiswMDI1MUMgICAgIChiYXNlIDE2KQkJRURUCisJCQkJMTQwMCBTVyBDb21wdG9uCisJCQkJU3VpdGUgMzE1CisJCQkJQmVhdmVydG9uIE9SIDk3MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0xRCAgIChoZXgpCQlEU0EgRW5jb3JlLCBMTEMKKzAwMjUxRCAgICAgKGJhc2UgMTYpCQlEU0EgRW5jb3JlLCBMTEMKKwkJCQk1MCBQb2Nvbm8gUmQKKwkJCQlCcm9va2ZpZWxkIENUIDA2ODA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0xRSAgIChoZXgpCQlST1RFTCBURUNITk9MT0dJRVMKKzAwMjUxRSAgICAgKGJhc2UgMTYpCQlST1RFTCBURUNITk9MT0dJRVMKKwkJCQlDRVZJWkxJREVSRSAxNC5DRCBOTzoyLzE5IEJBTEdBVAorCQkJCUFOS0FSQSAgMDY1MjAKKwkJCQlUVVJLRVkKKworMDAtMjUtMUYgICAoaGV4KQkJWllOVVMgVklTSU9OIElOQy4KKzAwMjUxRiAgICAgKGJhc2UgMTYpCQlaWU5VUyBWSVNJT04gSU5DLgorCQkJCTEtMS03LTFBCisJCQkJU0FHQU1JSEFSQSBLQU5BR0FXQSAyMjktMDAzOQorCQkJCUpBUEFOCisKKzAwLTI1LTIwICAgKGhleCkJCVNNQSBSYWlsd2F5IFRlY2hub2xvZ3kgR21iSAorMDAyNTIwICAgICAoYmFzZSAxNikJCVNNQSBSYWlsd2F5IFRlY2hub2xvZ3kgR21iSAorCQkJCU1pcmFtc3RyLiA4NworCQkJCUthc3NlbCBIZXNzZSAzNDEyMworCQkJCUdFUk1BTlkKKworMDAtMjUtMjEgICAoaGV4KQkJTG9naXRlayBFbGVjdHJvbmljIFN5c3RlbXMsIEluYy4KKzAwMjUyMSAgICAgKGJhc2UgMTYpCQlMb2dpdGVrIEVsZWN0cm9uaWMgU3lzdGVtcywgSW5jLgorCQkJCTU2MjIgRWRnZW1vb3IgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0yMiAgIChoZXgpCQlBU1JvY2sgSW5jb3Jwb3JhdGlvbgorMDAyNTIyICAgICAoYmFzZSAxNikJCUFTUm9jayBJbmNvcnBvcmF0aW9uCisJCQkJMkYuLCBOby4gMzcsIFNlYy4gMiwgSmhvbmd5YW5nIFMuIFJkLiwgQmVpdG91IERpc3RyaWN0LAorCQkJCVRhaXBlaSBUYWl3YW4gMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNS0yMyAgIChoZXgpCQlPQ1AgSW5jLgorMDAyNTIzICAgICAoYmFzZSAxNikJCU9DUCBJbmMuCisJCQkJMTg0OTUgUyBEaXhpZSBId3kgICAgUE1CIDEwNworCQkJCU1pYW1pIEZsb3JpZGEgMzMxNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTI0ICAgKGhleCkJCUxpZ2h0Y29tbSBUZWNobm9sb2d5IENvLiwgTHRkCiswMDI1MjQgICAgIChiYXNlIDE2KQkJTGlnaHRjb21tIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQk5L0YuLEhpLVRlY2ggVmVudHVyZSBQYXJrIFRvd2VyIEEsCisJCQkJVGlhbiBhbiBDeWJlciBQYXJrLEZ1dGlhbgorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0yNS0yNSAgIChoZXgpCQlDVEVSQSBOZXR3b3JrcyBMdGQuCiswMDI1MjUgICAgIChiYXNlIDE2KQkJQ1RFUkEgTmV0d29ya3MgTHRkLgorCQkJCTI0IEltYmVyIFN0LgorCQkJCVBldGFjaC1UaWt2YSAgNDk1MTExCisJCQkJSVNSQUVMCisKKzAwLTI1LTI2ICAgKGhleCkJCUdlbnVpbmUgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAyNTI2ICAgICAoYmFzZSAxNikJCUdlbnVpbmUgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCUtsaW5nZWxuYmVyZyBCbGRnLgorCQkJCTEtMTMtMTIgU2hpbi1Zb2tvaGFtYSBLb3Vob2t1LWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0yNS0yNyAgIChoZXgpCQlCaXRyb2RlIENvcnAuCiswMDI1MjcgICAgIChiYXNlIDE2KQkJQml0cm9kZSBDb3JwLgorCQkJCTE2NDIgTWFudWZhY3R1cmVycyBEci4KKwkJCQlGZW50b24gTU8gNjMwMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTI4ICAgKGhleCkJCURhaWRvIFNpZ25hbCBDby4sIEx0ZC4KKzAwMjUyOCAgICAgKGJhc2UgMTYpCQlEYWlkbyBTaWduYWwgQ28uLCBMdGQuCisJCQkJMi0yMC0yCisJCQkJTmFrYWlrZWdhbWkKKwkJCQlPaHRhLWt1IFRPS1lPIDE0Ni04Njc4CisJCQkJSkFQQU4KKworMDAtMjUtMjkgICAoaGV4KQkJQ09NRUxJVCBHUk9VUCBTLlAuQQorMDAyNTI5ICAgICAoYmFzZSAxNikJCUNPTUVMSVQgR1JPVVAgUy5QLkEKKwkJCQlET04gQVJSSUdPTkkgTi4gNQorCQkJCVNBTiBMT1JFTlpPLCBST1ZFVFRBIEJFUkdBTU8gMjQwMjAKKwkJCQlJVEFMWQorCiswMC0yNS0yQSAgIChoZXgpCQlDaGVuZ2R1IEdlZVlhIFRlY2hub2xvZ3kgQ28uLExURAorMDAyNTJBICAgICAoYmFzZSAxNikJCUNoZW5nZHUgR2VlWWEgVGVjaG5vbG9neSBDby4sTFRECisJCQkJNTAgU2h1eGkgUm9hZCwKKwkJCQlDaGVuZ2R1IFNpQ2h1YW4gNjEwMDkxCisJCQkJQ0hJTkEKKworMDAtMjUtMkIgICAoaGV4KQkJU3RpcmxpbmcgRW5lcmd5IFN5c3RlbXMKKzAwMjUyQiAgICAgKGJhc2UgMTYpCQlTdGlybGluZyBFbmVyZ3kgU3lzdGVtcworCQkJCVNhbmRpYSBOYXRpb25hbCBMYWJzIC0gTlNUVEYKKwkJCQlQTyBCb3ggNTgwMCBNUyAxMTI3CisJCQkJQWxidXF1ZXJxdWUgTk0gODcxODUtMTEyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMkMgICAoaGV4KQkJRW50b3VyYWdlIFN5c3RlbXMsIEluYy4KKzAwMjUyQyAgICAgKGJhc2UgMTYpCQlFbnRvdXJhZ2UgU3lzdGVtcywgSW5jLgorCQkJCTc5MDEgSm9uZXMgQnJhbmNoIERyaXZlCisJCQkJU3VpdGUgNzAwCisJCQkJTWNMZWFuIFZpcmdpbmlhIDIyMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0yRCAgIChoZXgpCQlLaXJ5dW5nIEVsZWN0cm9uaWNzCiswMDI1MkQgICAgIChiYXNlIDE2KQkJS2lyeXVuZyBFbGVjdHJvbmljcworCQkJCUtpcnl1bmcgQmxkZy4gNjg2LTcwLCBTaW5kYWViYW5nLWRvbmcKKwkJCQlEb25namFrLWd1LAorCQkJCVNlb3VsICAxNTYtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LTJFICAgKGhleCkJCUNpc2NvIFNQVlRHCiswMDI1MkUgICAgIChiYXNlIDE2KQkJQ2lzY28gU1BWVEcKKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMkYgICAoaGV4KQkJRW5lcmd5LCBJbmMuCiswMDI1MkYgICAgIChiYXNlIDE2KQkJRW5lcmd5LCBJbmMuCisJCQkJMzI5NyBQYWNpZmljIFN0cmVldAorCQkJCUNoYXJsZXN0b24gU0MgMjk0MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTMwICAgKGhleCkJCUFldGFzIFN5c3RlbXMgSW5jLgorMDAyNTMwICAgICAoYmFzZSAxNikJCUFldGFzIFN5c3RlbXMgSW5jLgorCQkJCTNBMywgTm8uIDEsIExpSHNpbiBSb2FkIEkKKwkJCQlIc2luQ2h1IFRhaXdhbiAzMDA3OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtMzEgICAoaGV4KQkJQ2xvdWQgRW5naW5lcywgSW5jLgorMDAyNTMxICAgICAoYmFzZSAxNikJCUNsb3VkIEVuZ2luZXMsIEluYy4KKwkJCQk4NTcgTW9udGdvbWVyeSBTdHJlZXQKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0zMiAgIChoZXgpCQlEaWdpdGFsIFJlY29yZGVycworMDAyNTMyICAgICAoYmFzZSAxNikJCURpZ2l0YWwgUmVjb3JkZXJzCisJCQkJNDAxOCBQYXRyaW90IERyaXZlCisJCQkJU3VpdGUgMTAwCisJCQkJRHVyaGFtIE5DIDI3NzA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0zMyAgIChoZXgpCQlXSVRURU5TVEVJTiBBRworMDAyNTMzICAgICAoYmFzZSAxNikJCVdJVFRFTlNURUlOIEFHCisJCQkJV2FsdGVyLVdpdHRlbnN0ZWluLVN0ci4gMQorCQkJCUlnZXJzaGVpbSAgOTc5OTkKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTM1ICAgKGhleCkJCU1pbmltYXggR21iSCAmIENvIEtHCiswMDI1MzUgICAgIChiYXNlIDE2KQkJTWluaW1heCBHbWJIICYgQ28gS0cKKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDEwLzEyCisJCQkJQmFkIE9sZGVzbG9lIFNIIDIzODQwCisJCQkJR0VSTUFOWQorCiswMC0yNS0zNiAgIChoZXgpCQlPa2kgRWxlY3RyaWMgSW5kdXN0cnkgQ28uLCBMdGQuCiswMDI1MzYgICAgIChiYXNlIDE2KQkJT2tpIEVsZWN0cmljIEluZHVzdHJ5IENvLiwgTHRkLgorCQkJCTEtMTYtOCBDaHVvdQorCQkJCVdhcmFiaS1zaGkgU2FpdGFtYSAzMzUtODUxMAorCQkJCUpBUEFOCisKKzAwLTI1LTM3ICAgKGhleCkJCVJ1bmNvbSBUZWNobm9sb2dpZXMgTHRkLgorMDAyNTM3ICAgICAoYmFzZSAxNikJCVJ1bmNvbSBUZWNobm9sb2dpZXMgTHRkLgorCQkJCTExIE1vc2hlIExldmkgU3RyLiAxMXRoIEZsci4KKwkJCQlVTUkgQnVpbGRpbmcKKwkJCQlSaXNob24gTGUgWmlvbiAgNzU2NTgKKwkJCQlJU1JBRUwKKworMDAtMjUtMzggICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4sIE1lbW9yeSBEaXZpc2lvbgorMDAyNTM4ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuLCBNZW1vcnkgRGl2aXNpb24KKwkJCQlTYW4gIzE2IEJhbndvbC1Eb25nLCBUYWVhbi1HdQorCQkJCUh3YXN1bmcgQ2l0eSBHeWVvbmdnaSBEbyA0NDUtNzAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LTM5ICAgKGhleCkJCUlmVEEgR21iSAorMDAyNTM5ICAgICAoYmFzZSAxNikJCUlmVEEgR21iSAorCQkJCUluZHVzdHJpZXN0cmFzc2UgMzMKKwkJCQlHcm9lYmVuemVsbCBCYXZhcmlhIDgyMTk0CisJCQkJR0VSTUFOWQorCiswMC0yNS0zQSAgIChoZXgpCQlDRVZBLCBMdGQuCiswMDI1M0EgICAgIChiYXNlIDE2KQkJQ0VWQSwgTHRkLgorCQkJCTIgTWFza2l0IFN0cmVldC4KKwkJCQlQLk8uIEJveCAyMDY4CisJCQkJSGVyemVsaWEgIDQ2MTIwCisJCQkJSVNSQUVMCisKKzAwLTI1LTNCICAgKGhleCkJCWRpbiBEaWV0bWFyIE5vY2tlciBGYWNpbGl0eW1hbmFnZW1lbnQgR21iSAorMDAyNTNCICAgICAoYmFzZSAxNikJCWRpbiBEaWV0bWFyIE5vY2tlciBGYWNpbGl0eW1hbmFnZW1lbnQgR21iSAorCQkJCUtvdHppbmFzdHJhc3NlIDUKKwkJCQlMaW56IFVwcGVyIEF1c3RyaWEgNDAzMAorCQkJCUFVU1RSSUEKKworMDAtMjUtM0MgICAoaGV4KQkJMldpcmUKKzAwMjUzQyAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTNEICAgKGhleCkJCURSUyBDb25zb2xpZGF0ZWQgQ29udHJvbHMKKzAwMjUzRCAgICAgKGJhc2UgMTYpCQlEUlMgQ29uc29saWRhdGVkIENvbnRyb2xzCisJCQkJMjEgU291dGggU3RyZWV0CisJCQkJRGFuYnVyeSBDVCAwNjgxMC04MTQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0zRSAgIChoZXgpCQlTZW5zdXMgTWV0ZXJpbmcgU3lzdGVtcworMDAyNTNFICAgICAoYmFzZSAxNikJCVNlbnN1cyBNZXRlcmluZyBTeXN0ZW1zCisJCQkJOTk0MSBXLiBFbWVyYWxkIFN0cmVldAorCQkJCUJvaXNlIElkYWhvIDgzNzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS00MCAgIChoZXgpCQlRdWFzYXIgVGVjaG5vbG9naWVzLCBJbmMuCiswMDI1NDAgICAgIChiYXNlIDE2KQkJUXVhc2FyIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE3MDEgQmFycmV0dCBMYWtlcyBCb3VsZXZhcmQKKwkJCQlTdWl0ZSAxNjAKKwkJCQlLZW5uZXNhdyBHQSAzMDE0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNDEgICAoaGV4KQkJTWFxdWV0IENyaXRpY2FsIENhcmUgQUIKKzAwMjU0MSAgICAgKGJhc2UgMTYpCQlNYXF1ZXQgQ3JpdGljYWwgQ2FyZSBBQgorCQkJCVJvbnRnZW52YWdlbiAyCisJCQkJU29sbmEgIFNFLTE3MSA5NQorCQkJCVNXRURFTgorCiswMC0yNS00MiAgIChoZXgpCQlQaXR0YXNvZnQKKzAwMjU0MiAgICAgKGJhc2UgMTYpCQlQaXR0YXNvZnQKKwkJCQkjOTEzIERhZXJ5dW5nIFRlY2hubyBUb3duIDh0aCA0ODEtMTFnYQorCQkJCUdhc2FuLWRvbmcKKwkJCQlHZXVtY2hlb24tZ3UgU2VvdWwgMTUzLTc3NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS00MyAgIChoZXgpCQlNT05FWVRFQ0gKKzAwMjU0MyAgICAgKGJhc2UgMTYpCQlNT05FWVRFQ0gKKwkJCQlSdWEgR3VpcmF0aW5nYSA5MzEgdW4uIDEwMworCQkJCUNoYWNhcmEgSW5nbGVzYQorCQkJCVNhbyBQYXVsbyBTUCAwNDE0MS0wMDEKKwkJCQlCUkFaSUwKKworMDAtMjUtNDQgICAoaGV4KQkJTG9KYWNrIENvcnBvcmF0aW9uCiswMDI1NDQgICAgIChiYXNlIDE2KQkJTG9KYWNrIENvcnBvcmF0aW9uCisJCQkJNzgwIERlZGhhbSBTdHJlZXQKKwkJCQlNQSAwMjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNDUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNTQ1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTQ2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjU0NiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS00NyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNTQ3ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yNS00OCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNTQ4ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yNS00OSAgIChoZXgpCQlKZW9yaWNoIFRlY2guIENvLixMdGQuCiswMDI1NDkgICAgIChiYXNlIDE2KQkJSmVvcmljaCBUZWNoLiBDby4sTHRkLgorCQkJCTRGLiwgTm8uNiwgTG4uIDcwLCBTZWMuIDIsIEFjYWRlbWlhIFJkLiwgTmFuZ2FuZyBEaXN0cmljdCwgVGFpcGVpIENpdHkgMTE1LCBUYWl3YW4gKFIuTy5DLikKKwkJCQlUYWlwZWkgVGFpd2FuIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtNEEgICAoaGV4KQkJUmluZ0N1YmUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDI1NEEgICAgIChiYXNlIDE2KQkJUmluZ0N1YmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTAwIFdlc3QgRXZlbHluIEF2ZSwgU3VpdGUgMjEwCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNEIgICAoaGV4KQkJQXBwbGUsIEluYworMDAyNTRCICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQljdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTRDICAgKGhleCkJCVZpZGVvbiBDZW50cmFsLCBJbmMuCiswMDI1NEMgICAgIChiYXNlIDE2KQkJVmlkZW9uIENlbnRyYWwsIEluYy4KKwkJCQkyMTcxIFNhbmR5IERyaXZlCisJCQkJU3RhdGUgQ29sbGVnZSBQQSAxNjgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNEQgICAoaGV4KQkJU2luZ2Fwb3JlIFRlY2hub2xvZ2llcyBFbGVjdHJvbmljcyBMaW1pdGVkCiswMDI1NEQgICAgIChiYXNlIDE2KQkJU2luZ2Fwb3JlIFRlY2hub2xvZ2llcyBFbGVjdHJvbmljcyBMaW1pdGVkCisJCQkJMjQgQW5nIE1vIEtpbworCQkJCVN0cmVldCA2NQorCQkJCTU2OTA2MQorCQkJCVNJTkdBUE9SRQorCiswMC0yNS00RSAgIChoZXgpCQlWZXJ0ZXggV2lyZWxlc3MgQ28uLCBMdGQuCiswMDI1NEUgICAgIChiYXNlIDE2KQkJVmVydGV4IFdpcmVsZXNzIENvLiwgTHRkLgorCQkJCTVGLCBTZW9oeWVvbiBQbGF6YSwgMjU0LTUsIFNlb2h5ZW9uLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjMtODI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LTRGICAgKGhleCkJCUVMRVRUUk9MQUIgU3JsCiswMDI1NEYgICAgIChiYXNlIDE2KQkJRUxFVFRST0xBQiBTcmwKKwkJCQlWaWEgRGVsbCdJbmR1c3RyaWEgMjUKKwkJCQlTYW4gVmVuZGVtaWFubyBUcmV2aXNvIDMxMDIwCisJCQkJSVRBTFkKKworMDAtMjUtNTAgICAoaGV4KQkJUml2ZXJiZWQgVGVjaG5vbG9neQorMDAyNTUwICAgICAoYmFzZSAxNikJCVJpdmVyYmVkIFRlY2hub2xvZ3kKKwkJCQkxMjUgQ2FtYnJpZGdlIFBhcmsgRHJpdmUKKwkJCQlDYW1icmlkZ2UgTUEgMDIxNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTUxICAgKGhleCkJCVNFLUVsZWt0cm9uaWMgR21iSAorMDAyNTUxICAgICAoYmFzZSAxNikJCVNFLUVsZWt0cm9uaWMgR21iSAorCQkJCUV5dGhzdHIuIDE2CisJCQkJR29lcHBpbmdlbiAgNzMwMzcKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTUyICAgKGhleCkJCVZYSSBDT1JQT1JBVElPTgorMDAyNTUyICAgICAoYmFzZSAxNikJCVZYSSBDT1JQT1JBVElPTgorCQkJCU9uZSBGcm9udCBTcmVldAorCQkJCVJvbGxpbnNmb3JkIE5IIDAzODY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS01MyAgIChoZXgpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMKKzAwMjU1MyAgICAgKGJhc2UgMTYpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMKKwkJCQlWSUFMRSBTQVJDQSAyMjIKKwkJCQlNSUxBTk8gSVRBTFkgMjAxMjYKKwkJCQlJVEFMWQorCiswMC0yNS01NCAgIChoZXgpCQlQaXhlbDggTmV0d29ya3MKKzAwMjU1NCAgICAgKGJhc2UgMTYpCQlQaXhlbDggTmV0d29ya3MKKwkJCQkyMiBHcmVhdCBPYWtzIEJsdmQsIFN1aXRlIDE1MAorCQkJCVNhbiBKb3NlIENBIDk1MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS01NSAgIChoZXgpCQlWaXNvbmljIFRlY2hub2xvZ2llcyAxOTkzIEx0ZAorMDAyNTU1ICAgICAoYmFzZSAxNikJCVZpc29uaWMgVGVjaG5vbG9naWVzIDE5OTMgTHRkCisJCQkJMjMgSGFiYXJ6ZWwgc3QnCisJCQkJVGVsIC0gQXZpdiAgNjk3MTAKKwkJCQlJU1JBRUwKKworMDAtMjUtNTYgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMjU1NiAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCU5vLjE5MjUsIE5hbmxlIFJvYWQKKwkJCQlTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZQorCQkJCVNoYW5nSGFpICAyMDE2MTMKKwkJCQlDSElOQQorCiswMC0yNS01NyAgIChoZXgpCQlSZXNlYXJjaCBJbiBNb3Rpb24KKzAwMjU1NyAgICAgKGJhc2UgMTYpCQlSZXNlYXJjaCBJbiBNb3Rpb24KKwkJCQk0NDAgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCA1VzkKKwkJCQlDQU5BREEKKworMDAtMjUtNTggICAoaGV4KQkJTVBFRElBCiswMDI1NTggICAgIChiYXNlIDE2KQkJTVBFRElBCisJCQkJU2hpbnlvdW5nIFRvd2VyIDEyRiAyNDYtMgorCQkJCVNlb2h5ZW9uLWRpbmcgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtIEd5ZW9uZ2dpLWRvIDQ2My04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtNTkgICAoaGV4KQkJU3lwaGFuIFRlY2hub2xvZ2llcyBMdGQKKzAwMjU1OSAgICAgKGJhc2UgMTYpCQlTeXBoYW4gVGVjaG5vbG9naWVzIEx0ZAorCQkJCVRoZSBXYXRlcm1pbGwKKwkJCQlCcm91Z2h0b24gSGFsbAorCQkJCVNraXB0b24gTm9ydGggWW9ya3NoaXJlIEJEMjMgM0FHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjUtNUEgICAoaGV4KQkJVGFudGFsdXMgU3lzdGVtcyBDb3JwLgorMDAyNTVBICAgICAoYmFzZSAxNikJCVRhbnRhbHVzIFN5c3RlbXMgQ29ycC4KKwkJCQkzMDEtMzQ4MCBHaWxtb3JlIFdheQorCQkJCUJ1cm5hYnkgQkMgVjVHIDRZMQorCQkJCUNBTkFEQQorCiswMC0yNS01QiAgIChoZXgpCQlDb2FjaENvbW0sIExMQworMDAyNTVCICAgICAoYmFzZSAxNikJCUNvYWNoQ29tbSwgTExDCisJCQkJMjA1IFRlY2hub2xvZ3kgUGFya3dheQorCQkJCUF1YnVybiBBTCAzNjgzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNUMgICAoaGV4KQkJTkVDIENvcnBvcmF0aW9uCiswMDI1NUMgICAgIChiYXNlIDE2KQkJTkVDIENvcnBvcmF0aW9uCisJCQkJMTc1MywgU2hpbW9udW1hYmUsIE5ha2FoYXJhLUt1LCBLYXdhc2FraQorCQkJCUthbmFnYXdhICAyMTEtODY2NgorCQkJCUpBUEFOCisKKzAwLTI1LTVEICAgKGhleCkJCU1vcm5pbmdzdGFyIENvcnBvcmF0aW9uCiswMDI1NUQgICAgIChiYXNlIDE2KQkJTW9ybmluZ3N0YXIgQ29ycG9yYXRpb24KKwkJCQk5MDU1IEd1aWxmb3JkIFJkLgorCQkJCVN1aXRlIEcKKwkJCQlDb2x1bWJpYSBNRCAyMTA0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNUUgICAoaGV4KQkJU2hhbmdoYWkgRGFyZSBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzAwMjU1RSAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBEYXJlIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCTIyRixJbmZvIFRlY2ggQnVpbGRpbmcsIE5vLjE1NTUsS29uZ2ppYW5nIFJvYWQsCisJCQkJU2hhbmdoYWkgMjAwMDkyCisJCQkJQ0hJTkEKKworMDAtMjUtNUYgICAoaGV4KQkJU2VuVGVjIEFHCiswMDI1NUYgICAgIChiYXNlIDE2KQkJU2VuVGVjIEFHCisJCQkJUmluZ3N0cmFzc2UgMzkKKwkJCQlUaGVyd2lsICA0MTA2CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMjUtNjAgICAoaGV4KQkJSWJyaWRnZSBOZXR3b3JrcyAmIENvbW11bmljYXRpb25zIEx0ZC4KKzAwMjU2MCAgICAgKGJhc2UgMTYpCQlJYnJpZGdlIE5ldHdvcmtzICYgQ29tbXVuaWNhdGlvbnMgTHRkLgorCQkJCTI4LEJlZGZvcmQgUm9hZCBFYXN0IEhhbQorCQkJCUxvbmRvbiAgRTYgMk5OCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjUtNjEgICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorMDAyNTYxICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkLgorCQkJCVJvc2V2aWxsZSBDYWxpZm9ybmlhIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS02MiAgIChoZXgpCQlpbnRlcmJybyBDby4gTHRkLgorMDAyNTYyICAgICAoYmFzZSAxNikJCWludGVyYnJvIENvLiBMdGQuCisJCQkJNkYgSm95YW5nIEIvRCwgMTEzIFNhbXNlb25nLURvbmcsIEdhbmduYW0tR3UKKwkJCQlTZW91bCAgMTM1LTA5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS02MyAgIChoZXgpCQlMdXh0ZXJhIEluYworMDAyNTYzICAgICAoYmFzZSAxNikJCUx1eHRlcmEgSW5jCisJCQkJMjMyMC4gQ2FtaW5vIFZpZGEgUm9ibGUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlDYXJsc2JhZCBDQSA5MjAxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNjQgICAoaGV4KQkJRGVsbCBJbmMuCiswMDI1NjQgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS02NSAgIChoZXgpCQlWaXppbWF4IEluYy4KKzAwMjU2NSAgICAgKGJhc2UgMTYpCQlWaXppbWF4IEluYy4KKwkJCQkyMjg0LCBydWUgZGUgbGEgUHJvdmluY2UKKwkJCQlMb25ndWV1aWwgUXVlYmVjIEo0RyAxRzEKKwkJCQlDQU5BREEKKworMDAtMjUtNjYgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswMDI1NjYgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LTY3ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzAwMjU2NyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LTY4ICAgKGhleCkJCVNoZW56aGVuIEh1YXdlaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorMDAyNTY4ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEh1YXdlaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwOAorCQkJCUNISU5BCisKKzAwLTI1LTY5ICAgKGhleCkJCVNBR0VNIENPTU1VTklDQVRJT04KKzAwMjU2OSAgICAgKGJhc2UgMTYpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCisJCQkJMTQgUnVlIFBhdWwgRGF1dGllcgorCQkJCVZlbGl6eSAgNzg0NTcKKwkJCQlGUkFOQ0UKKworMDAtMjUtNkEgICAoaGV4KQkJaW5JVCAtIEluc3RpdHV0IEluZHVzdHJpYWwgSVQKKzAwMjU2QSAgICAgKGJhc2UgMTYpCQlpbklUIC0gSW5zdGl0dXQgSW5kdXN0cmlhbCBJVAorCQkJCUxpZWJpZ3N0cmFzc2UgODcKKwkJCQlMZW1nbyBOb3J0aHJoaW5lLVdlc3RmYWxpYSAzMjY1NworCQkJCUdFUk1BTlkKKworMDAtMjUtNkIgICAoaGV4KQkJQVRFTklYIEUuRS4gcy5yLmwuCiswMDI1NkIgICAgIChiYXNlIDE2KQkJQVRFTklYIEUuRS4gcy5yLmwuCisJCQkJVmlhIFRvcnJpY2VsbGksIDE1L2IKKwkJCQlWRVJPTkEgVlIgMzcxMzUKKwkJCQlJVEFMWQorCiswMC0yNS02QyAgIChoZXgpCQkiQXppbXV0IiBQcm9kdWN0aW9uIEFzc29jaWF0aW9uIEpTQworMDAyNTZDICAgICAoYmFzZSAxNikJCSJBemltdXQiIFByb2R1Y3Rpb24gQXNzb2NpYXRpb24gSlNDCisJCQkJMi1CIEF0YWV2YSBTdHJlZXQKKwkJCQlNYWtoYWNoa2FsYSBEYWdlc3RhbiAzNjcwMDUKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjUtNkQgICAoaGV4KQkJQnJvYWRiYW5kIEZvcnVtCiswMDI1NkQgICAgIChiYXNlIDE2KQkJQnJvYWRiYW5kIEZvcnVtCisJCQkJNDgzNzcgRnJlbW9udCBCb3VsZXZhcmQKKwkJCQlTdWl0ZSAxMTcKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS02RSAgIChoZXgpCQlWYW4gQnJlZGEgQi5WLgorMDAyNTZFICAgICAoYmFzZSAxNikJCVZhbiBCcmVkYSBCLlYuCisJCQkJTWVyY3VyaXVzd2VnIDIxCisJCQkJQnJ1bW1lbiBHZWxkZXJsYW5kIDY5NzEgR1YKKwkJCQlORVRIRVJMQU5EUworCiswMC0yNS02RiAgIChoZXgpCQlEYW50aGVybSBQb3dlcgorMDAyNTZGICAgICAoYmFzZSAxNikJCURhbnRoZXJtIFBvd2VyCisJCQkJTWFyaWVubHlzdHZlaiA2NQorCQkJCVNraXZlICA3ODAwCisJCQkJREVOTUFSSworCiswMC0yNS03MCAgIChoZXgpCQlFYXN0ZXJuIENvbW11bmljYXRpb25zIENvbXBhbnkgTGltaXRlZAorMDAyNTcwICAgICAoYmFzZSAxNikJCUVhc3Rlcm4gQ29tbXVuaWNhdGlvbnMgQ29tcGFueSBMaW1pdGVkCisJCQkJTm8uMzk4IFdlbnNhbiBSb2FkLAorCQkJCU5vLjY2IERvbmd4aW4gUm9hZCxSJkQgYnVpbGRpbmcsQjMxMQorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDAxMworCQkJCUNISU5BCisKKzAwLTI1LTcxICAgKGhleCkJCVpoZWppYW5nIFRpYW5sZSBEaWdpdGFsIEVsZWN0cmljIENvLixMdGQKKzAwMjU3MSAgICAgKGJhc2UgMTYpCQlaaGVqaWFuZyBUaWFubGUgRGlnaXRhbCBFbGVjdHJpYyBDby4sTHRkCisJCQkJTm8uOCBUaWFubGUgUmQsRWNvbm9taWMgRGV2ZWxvcG1lbnQgWm9uZQorCQkJCVNoZW5nemhvdSBaaGVqaWFuZyAzMTI0MDAKKwkJCQlDSElOQQorCiswMC0yNS03MiAgIChoZXgpCQlOZW1vLVEgSW50ZXJuYXRpb25hbCBBQgorMDAyNTcyICAgICAoYmFzZSAxNikJCU5lbW8tUSBJbnRlcm5hdGlvbmFsIEFCCisJCQkJQm94IDIxMAorCQkJCVNvbGxlbnR1bmEgIDE5MTIzCisJCQkJU1dFREVOCisKKzAwLTI1LTczICAgKGhleCkJCVNUIEVsZWN0cm9uaWNzIChJbmZvLVNlY3VyaXR5KSBQdGUgTHRkCiswMDI1NzMgICAgIChiYXNlIDE2KQkJU1QgRWxlY3Ryb25pY3MgKEluZm8tU2VjdXJpdHkpIFB0ZSBMdGQKKwkJCQkxMDAsIEp1cm9uZyBFYXN0IFN0cmVldCAyMSwgU1QgRWxlY3Ryb25pY3MgSnVyb25nIEVhc3QgQmxkZworCQkJCTYwOTYwMgorCQkJCVNJTkdBUE9SRQorCiswMC0yNS03NCAgIChoZXgpCQlLVU5JTUkgTUVESUEgREVWSUNFIENvLiwgTHRkLgorMDAyNTc0ICAgICAoYmFzZSAxNikJCUtVTklNSSBNRURJQSBERVZJQ0UgQ28uLCBMdGQuCisJCQkJMyBLSVRBTUFDSElEQSBZQU1BWkFLSQorCQkJCUtVTklNSSwgREFURSBGVUtVU0hJTUEgOTY5LTE3NzEKKwkJCQlKQVBBTgorCiswMC0yNS03NSAgIChoZXgpCQlGaWJlclBsZXggSW5jCiswMDI1NzUgICAgIChiYXNlIDE2KQkJRmliZXJQbGV4IEluYworCQkJCTEwODQwLTQxMiBHdWlsZm9yZCBSZAorCQkJCUFubmFwb2xpcyBKdW5jdGlvbiBNRCAyMDcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNzYgICAoaGV4KQkJTkVMSSBURUNITk9MT0dJRVMKKzAwMjU3NiAgICAgKGJhc2UgMTYpCQlORUxJIFRFQ0hOT0xPR0lFUworCQkJCVJvdXRlIE5hdGlvbmFsZQorCQkJCUltbWV1YmxlIE9yY2hpcworCQkJCUxFIFJIRVUgIDM1NjUwCisJCQkJRlJBTkNFCisKKzAwLTI1LTc3ICAgKGhleCkJCUQtQk9YIFRlY2hub2xvZ2llcworMDAyNTc3ICAgICAoYmFzZSAxNikJCUQtQk9YIFRlY2hub2xvZ2llcworCQkJCTIxNzIgZGUgbGEgUHJvdmluY2UKKwkJCQlMb25ndWV1aWwgUXVlYmVjIEo0RyAxUjcKKwkJCQlDQU5BREEKKworMDAtMjUtNzggICAoaGV4KQkJSlNDICJDb25jZXJuICJTb3p2ZXpkaWUiCiswMDI1NzggICAgIChiYXNlIDE2KQkJSlNDICJDb25jZXJuICJTb3p2ZXpkaWUiCisJCQkJUGxla2hhbm92c2theWEgc3QuLCAxNAorCQkJCVZvcm9uZXpoICAzOTQwMTgKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjUtNzkgICAoaGV4KQkJSiAmIEYgTGFicworMDAyNTc5ICAgICAoYmFzZSAxNikJCUogJiBGIExhYnMKKwkJCQkxMjE0IFcuIEJvc3RvbiBQb3N0IFJvYWQKKwkJCQlNYW1hcm9uZWNrIE5ZIDEwNTQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS03QSAgIChoZXgpCQlDQU1DTyBQcm9kdWt0aW9ucy0gdW5kIFZlcnRyaWVicy1HbWJIIGZ1ciBCZXNjaGFsbHVuZ3MtIHVuZCBCZWxldWNodHVuZ3NhbmxhZ2VuCiswMDI1N0EgICAgIChiYXNlIDE2KQkJQ0FNQ08gUHJvZHVrdGlvbnMtIHVuZCBWZXJ0cmllYnMtR21iSCBmdXIgQmVzY2hhbGx1bmdzLSB1bmQgQmVsZXVjaHR1bmdzYW5sYWdlbgorCQkJCUZpc2NocGlja2UgNQorCQkJCVdlbmRlbiBOUlcgNTc0ODIKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTdCICAgKGhleCkJCVNUSiAgRUxFQ1RST05JQ1MgIFBWVCAgTFRECiswMDI1N0IgICAgIChiYXNlIDE2KQkJU1RKICBFTEVDVFJPTklDUyAgUFZUICBMVEQKKwkJCQlYLTI0IE9LSExBICBJTkRVU1RSSUFMICBBUkVBCisJCQkJUEhBU0UgLSAyCisJCQkJTkVXICBERUxISSBERUxISSAxMTAgMDIwCisJCQkJSU5ESUEKKworMDAtMjUtN0MgICAoaGV4KQkJSHVhY2hlbnRlbCBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLiwgTHRkCiswMDI1N0MgICAgIChiYXNlIDE2KQkJSHVhY2hlbnRlbCBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLiwgTHRkCisJCQkJNzQ3IFhpbll1IFJkLiBIaWdoLVRlY2ggWm9uZQorCQkJCUppbmFuIFNoYW5kb25nIFByb3ZpbmNlIDI1MDEwMQorCQkJCUNISU5BCisKKzAwLTI1LTdEICAgKGhleCkJCVBvaW50UmVkIFRlbGVjb20gUHJpdmF0ZSBMdGQuCiswMDI1N0QgICAgIChiYXNlIDE2KQkJUG9pbnRSZWQgVGVsZWNvbSBQcml2YXRlIEx0ZC4KKwkJCQkxNUYgLSA1LiwgTm8uIDEwNzEsIFpob25nemhlbmcgUm9hZCwKKwkJCQlUYW95dWFuIENpdHkgMzMwICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LTdFICAgKGhleCkJCU5FVyBQT1MgVGVjaG5vbG9neSBMaW1pdGVkCiswMDI1N0UgICAgIChiYXNlIDE2KQkJTkVXIFBPUyBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQk2RlJNLCA2RiwgQ2hpbmEgRWNvbm9taWMgVHJhZGUgQnVpbGRpbmcKKwkJCQk3UmQgWml6aHUsIFpodXppbGluLCBGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworMDAtMjUtN0YgICAoaGV4KQkJQ2FsbFRlY2hTb2x1dGlvbiBDby4sTHRkCiswMDI1N0YgICAgIChiYXNlIDE2KQkJQ2FsbFRlY2hTb2x1dGlvbiBDby4sTHRkCisJCQkJIzEyMyxEYWV3b29wcnVnaW8gQi9ELDM0NC0xLCBTZW9neW8tRG9uZyxNYXBvLWd1CisJCQkJU2VvdWwgIDEyMS04MzcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtODAgICAoaGV4KQkJRXF1aXBzb24gUy5BLgorMDAyNTgwICAgICAoYmFzZSAxNikJCUVxdWlwc29uIFMuQS4KKwkJCQlQb2xpZ29ubyBJbmQuIExaQWx0ZXJvCisJCQkJQXZkYS4gU2FsZXIsIDE0CisJCQkJU2lsbGEgVmFsZW5jaWEgNDY0NjAKKwkJCQlTUEFJTgorCiswMC0yNS04MSAgIChoZXgpCQl4LXN0YXIgbmV0d29ya3MgSW5jLgorMDAyNTgxICAgICAoYmFzZSAxNikJCXgtc3RhciBuZXR3b3JrcyBJbmMuCisJCQkJMUYsTk8xLTIsQ2h1bmdjaGluZyBTLlJkLlNlYyAzCisJCQkJVGFpcGVpICAxMDA3NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtODIgICAoaGV4KQkJTWFrc2F0IFRlY2hub2xvZ2llcyAoUCkgTHRkCiswMDI1ODIgICAgIChiYXNlIDE2KQkJTWFrc2F0IFRlY2hub2xvZ2llcyAoUCkgTHRkCisJCQkJRC0xMC82LCBPa2hsYSwgUGhhc2UtSQorCQkJCU5ldyBEZWxoaSAgMTEwMDIwCisJCQkJSU5ESUEKKworMDAtMjUtODMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNTgzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTg0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjU4NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS04NSAgIChoZXgpCQlLT0tVWU8gUyZUIENvLiwgTHRkLgorMDAyNTg1ICAgICAoYmFzZSAxNikJCUtPS1VZTyBTJlQgQ28uLCBMdGQuCisJCQkJMS04LTM1CisJCQkJS29uYW4KKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA4LTg3MTAKKwkJCQlKQVBBTgorCiswMC0yNS04NiAgIChoZXgpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMjU4NiAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlCdWlsZGluZyA3LCBTZWNvbmQgUGFydCwgSG9uZ2h1YWxpbmcgSW5kdXN0cmlhbCBab25lCisJCQkJWGlsaSB0b3duLCBOYW5zaGFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTI1LTg3ICAgKGhleCkJCVZpdGFsaXR5LCBJbmMuCiswMDI1ODcgICAgIChiYXNlIDE2KQkJVml0YWxpdHksIEluYy4KKwkJCQlPbmUgQnJvYWR3YXkKKwkJCQkxNHRoIEZsb29yCisJCQkJQ2FtYnJpZGdlIE1BIDAyMTQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS04OCAgIChoZXgpCQlHZW5pZSBJbmR1c3RyaWVzLCBJbmMuCiswMDI1ODggICAgIChiYXNlIDE2KQkJR2VuaWUgSW5kdXN0cmllcywgSW5jLgorCQkJCTE4NjIwIE5FIDY3dGggQ3QKKwkJCQlSZWRtb25kIFdBIDk4MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS04OSAgIChoZXgpCQlIaWxscyBJbmR1c3RyaWVzIExpbWl0ZWQKKzAwMjU4OSAgICAgKGJhc2UgMTYpCQlIaWxscyBJbmR1c3RyaWVzIExpbWl0ZWQKKwkJCQk1IENhbWJyaWEgUm9hZAorCQkJCUtleXNib3JvdWdoCisJCQkJTWVsYm91cm5lIFZJQyAzMTczCisJCQkJQVVTVFJBTElBCisKKzAwLTI1LThBICAgKGhleCkJCVBvbGUvWmVybyBDb3Jwb3JhdGlvbgorMDAyNThBICAgICAoYmFzZSAxNikJCVBvbGUvWmVybyBDb3Jwb3JhdGlvbgorCQkJCTU1MzAgVW5pb24gQ2VudHJlIERyaXZlCisJCQkJV2VzdCBDaGVzdGVyIE9IIDQ1MDY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS04QiAgIChoZXgpCQlNZWxsYW5veCBUZWNobm9sb2dpZXMgTHRkCiswMDI1OEIgICAgIChiYXNlIDE2KQkJTWVsbGFub3ggVGVjaG5vbG9naWVzIEx0ZAorCQkJCTM1MCBPYWttZWFkIFBhcmt3YXkKKwkJCQlTdW5ueXZhbGUsIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS04QyAgIChoZXgpCQlFU1VTIEVMRUtUUk9OSUsgU0FOLiBWRSBESVMuIFRJQy4gTFRELiBTVEkuCiswMDI1OEMgICAgIChiYXNlIDE2KQkJRVNVUyBFTEVLVFJPTklLIFNBTi4gVkUgRElTLiBUSUMuIExURC4gU1RJLgorCQkJCUVTRU5TRUhJUiBNQUhBTExFU0kgS1VSS0NVTEVSIENBRERFU0kKKwkJCQlTQUZJUiBTT0tBSyBOTzoxMS8xIERVRFVMTFUgVU1SQU5JWUUKKwkJCQlJU1RBTkJVTCAgMzQ3NzYKKwkJCQlUVVJLRVkKKworMDAtMjUtOEQgICAoaGV4KQkJSGFpZXIKKzAwMjU4RCAgICAgKGJhc2UgMTYpCQlIYWllcgorCQkJCU5vLjEsSGFpZXIgUm9hZAorCQkJCVFpbmdkYW8gU2hhbmRvbmcgMjY2MTAxCisJCQkJQ0hJTkEKKworMDAtMjUtOEUgICAoaGV4KQkJVGhlIFdlYXRoZXIgQ2hhbm5lbAorMDAyNThFICAgICAoYmFzZSAxNikJCVRoZSBXZWF0aGVyIENoYW5uZWwKKwkJCQlNYWlsIFN0b3AgNTAwCisJCQkJMzAwIEludGVyc3RhdGUgTm9ydGggUGt3eQorCQkJCUF0bGFudGEgR0EgMzAzMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LThGICAgKGhleCkJCVRyaWRlbnQgTWljcm9zeXN0ZW1zLCBJbmMuCiswMDI1OEYgICAgIChiYXNlIDE2KQkJVHJpZGVudCBNaWNyb3N5c3RlbXMsIEluYy4KKwkJCQkzNDA4IEdhcnJldHQgRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtOTAgICAoaGV4KQkJU3VwZXIgTWljcm8gQ29tcHV0ZXIsIEluYy4KKzAwMjU5MCAgICAgKGJhc2UgMTYpCQlTdXBlciBNaWNybyBDb21wdXRlciwgSW5jLgorCQkJCTk4MCBSb2NrIEF2ZW51ZQorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTkxICAgKGhleCkJCU5FWFRFSywgSW5jLgorMDAyNTkxICAgICAoYmFzZSAxNikJCU5FWFRFSywgSW5jLgorCQkJCTQxMCBEb3VnbGFzcyBTdHJlZXQKKwkJCQlSZWFkaW5nIFBBIDE5NjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS05MiAgIChoZXgpCQlHdWFuZ3pob3UgU2hpcnVpIEVsZWN0cm9uaWMgQ28uLCBMdGQKKzAwMjU5MiAgICAgKGJhc2UgMTYpCQlHdWFuZ3pob3UgU2hpcnVpIEVsZWN0cm9uaWMgQ28uLCBMdGQKKwkJCQkzMDFELCBOby45LCBDYWlwaW4gUm9hZCwKKwkJCQlHdWFuZ3pob3UgU2NpZW5jZSBQYXJrCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2NjMKKwkJCQlDSElOQQorCiswMC0yNS05MyAgIChoZXgpCQlEYXROZXQgSW5mb3JtYXRpa2FpIEtmdC4KKzAwMjU5MyAgICAgKGJhc2UgMTYpCQlEYXROZXQgSW5mb3JtYXRpa2FpIEtmdC4KKwkJCQlIZXR2ZXplciB1LiA1LgorCQkJCVN6aWdldHN6ZW50bWlrbG9zIFBlc3QgbWVneWUgMjMxMAorCQkJCUhVTkdBUlkKKworMDAtMjUtOTQgICAoaGV4KQkJRXVyb2Rlc2lnbiBCRyBMVEQKKzAwMjU5NCAgICAgKGJhc2UgMTYpCQlFdXJvZGVzaWduIEJHIExURAorCQkJCTE1LTE3IFRpbnRpYXZhIFN0ci4sCisJCQkJU29maWEgIDExMTMKKwkJCQlCVUxHQVJJQQorCiswMC0yNS05NSAgIChoZXgpCQlOb3J0aHdlc3QgU2lnbmFsIFN1cHBseSwgSW5jCiswMDI1OTUgICAgIChiYXNlIDE2KQkJTm9ydGh3ZXN0IFNpZ25hbCBTdXBwbHksIEluYworCQkJCTEyOTY1IFNXIEhlcm1hbiBSZAorCQkJCVR1YWxhdGluIE9SIDk3MDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS05NiAgIChoZXgpCQlHSUdBVklTSU9OIHNybAorMDAyNTk2ICAgICAoYmFzZSAxNikJCUdJR0FWSVNJT04gc3JsCisJCQkJVmlhIEZpZ2luaSwgMTYKKwkJCQlNdWdnaW8gTWlsYW5vIDIwMDUzCisJCQkJSVRBTFkKKworMDAtMjUtOTcgICAoaGV4KQkJS2Fsa2kgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMKKzAwMjU5NyAgICAgKGJhc2UgMTYpCQlLYWxraSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcworCQkJCSMxNDcsMm5kIEZsb29yLCBBbmFudGFQdXNocGEgQnVpbGRpbmcsCisJCQkJNXRoIE1haW4gUm9hZCw3dGggU2VjdG9yLEhTUiBMYXlvdXQKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MDAzNAorCQkJCUlORElBCisKKzAwLTI1LTk4ICAgKGhleCkJCVpob25nIFNoYW4gQ2l0eSBMaXRhaSBFbGVjdHJvbmljIEluZHVzdHJpYWwgQ28uIEx0ZAorMDAyNTk4ICAgICAoYmFzZSAxNikJCVpob25nIFNoYW4gQ2l0eSBMaXRhaSBFbGVjdHJvbmljIEluZHVzdHJpYWwgQ28uIEx0ZAorCQkJCU5vLjMgSW5kdXN0cmlhbCBEaXN0cmljdCwgV3VndWlzaGFuLCBDaGVuZyBndWkgUm9hZAorCQkJCVpob25nIHNoYW4gQ2l0eSBHdWFuZyBkb25nIFByb3ZpbmNlIDUyODQ1OAorCQkJCUNISU5BCisKKzAwLTI1LTk5ICAgKGhleCkJCUhlZG9uIGUuZC4gQi5WLgorMDAyNTk5ICAgICAoYmFzZSAxNikJCUhlZG9uIGUuZC4gQi5WLgorCQkJCUVsZWt0cm9uaWNhd2VnIDE1CisJCQkJRGVsZnQgWnVpZCBIb2xsYW5kIDI2MjggWEcKKwkJCQlORVRIRVJMQU5EUworCiswMC0yNS05QSAgIChoZXgpCQlDRVN0cm9uaWNzIEdtYkgKKzAwMjU5QSAgICAgKGJhc2UgMTYpCQlDRVN0cm9uaWNzIEdtYkgKKwkJCQlGcmllZHJpY2hzdHIuIDI0MworCQkJCVZlbGJlcnQgIDQyNTUxCisJCQkJR0VSTUFOWQorCiswMC0yNS05QiAgIChoZXgpCQlCZWlqaW5nIFBLVU5JVFkgTWljcm9zeXN0ZW1zIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMjU5QiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFBLVU5JVFkgTWljcm9zeXN0ZW1zIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQkxMXRoIEZsb29yLCBSZXNvdXJjZSBQbGF6YSwgTm8uMTUxIE5vcnRoIFpob25nZ3VhbmN1biBTdHJlZXQKKwkJCQlIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgwCisJCQkJQ0hJTkEKKworMDAtMjUtOUMgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCiswMDI1OUMgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS05RCAgIChoZXgpCQlQUklWQVRFCiswMDI1OUQgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTI1LTlFICAgKGhleCkJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDI1OUUgICAgIChiYXNlIDE2KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlCMS03LEh1YXdlaSBCYXNlLEJhbnRpYW4sIExvbmdnYW5nIERpc3RyaWN0LFNoZW5aaGVuLEd1YW5nRG9uZyxDSElOQQorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCiswMC0yNS05RiAgIChoZXgpCQlUZWNobm9EaWdpdGFsIFRlY2hub2xvZ2llcyBHbWJICiswMDI1OUYgICAgIChiYXNlIDE2KQkJVGVjaG5vRGlnaXRhbCBUZWNobm9sb2dpZXMgR21iSAorCQkJCUhhZXNzbGVyc3RyLiA4CisJCQkJRXJmdXJ0IFRodXJpbmdpYSA5OTA5NgorCQkJCUdFUk1BTlkKKworMDAtMjUtQTAgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDI1QTAgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMjUtQTEgICAoaGV4KQkJRW5hbGFzeXMKKzAwMjVBMSAgICAgKGJhc2UgMTYpCQlFbmFsYXN5cworCQkJCTI1MCBBdmVuaWRhIENhbXBpbGxvCisJCQkJQ2FsZXhpY28gQ2FsaWZvcm5pYSA5MjIzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQTIgICAoaGV4KQkJQWx0YSBEZWZpbmljaW9uIExJTkNFTyBTLkwuCiswMDI1QTIgICAgIChiYXNlIDE2KQkJQWx0YSBEZWZpbmljaW9uIExJTkNFTyBTLkwuCisJCQkJTWFyaWEgZGUgTHVuYSAxMSwgbmF2ZSA0CisJCQkJWmFyYWdvemEgIEVzLTUwMDE4CisJCQkJU1BBSU4KKworMDAtMjUtQTMgICAoaGV4KQkJVHJpbWF4IFdpcmVsZXNzLCBJbmMuCiswMDI1QTMgICAgIChiYXNlIDE2KQkJVHJpbWF4IFdpcmVsZXNzLCBJbmMuCisJCQkJMjY3NSBTIEhvcnNlc2hvZSBEcgorCQkJCVN1aXRlIDQwMQorCQkJCU5hcGxlcyBGTCAzNDEwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQTQgICAoaGV4KQkJRXVyb0Rlc2lnbiBlbWJlZGRlZCB0ZWNobm9sb2dpZXMgR21iSAorMDAyNUE0ICAgICAoYmFzZSAxNikJCUV1cm9EZXNpZ24gZW1iZWRkZWQgdGVjaG5vbG9naWVzIEdtYkgKKwkJCQlXYWxkc3RyYXNzZSA0QQorCQkJCUtpcmNoZG9yZiBhLmQuIEFtcGVyIEJheWVybiA4NTQxNAorCQkJCUdFUk1BTlkKKworMDAtMjUtQTUgICAoaGV4KQkJV2FsbnV0IE1lZGlhIE5ldHdvcmsKKzAwMjVBNSAgICAgKGJhc2UgMTYpCQlXYWxudXQgTWVkaWEgTmV0d29yaworCQkJCTQ0MCBOIFdvbGZlIFJkCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1BNiAgIChoZXgpCQlDZW50cmFsIE5ldHdvcmsgU29sdXRpb24gQ28uLCBMdGQuCiswMDI1QTYgICAgIChiYXNlIDE2KQkJQ2VudHJhbCBOZXR3b3JrIFNvbHV0aW9uIENvLiwgTHRkLgorCQkJCTU4NC0xLCBQYWphbmctRG9uZywgSmFuZ0FuLUd1CisJCQkJU3V3b24tU2ksIEt5dW5nZ2ktRG8gNDQwLTg1NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS1BNyAgIChoZXgpCQlDb212ZXJnZSwgSW5jLgorMDAyNUE3ICAgICAoYmFzZSAxNikJCUNvbXZlcmdlLCBJbmMuCisJCQkJNTM5MCBUcmlhbmdsZSBQYXJrd2F5CisJCQkJU3VpdGUgMzAwCisJCQkJTm9yY3Jvc3MgR0EgMzAwOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUE4ICAgKGhleCkJCUtvbnRyb24gKEJlaUppbmcpIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAyNUE4ICAgICAoYmFzZSAxNikJCUtvbnRyb24gKEJlaUppbmcpIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTE3IEJ1aWxkaW5nLCBCbG9jayAjMSxBQlAuICAxODggV2VzdGVybiBTb3V0aCA0dGggUmluZyBSb2FkCisJCQkJQmVpSmluZyAgMTAwMDcwCisJCQkJQ0hJTkEKKworMDAtMjUtQTkgICAoaGV4KQkJU2hhbmdoYWkgRW1iZWR3YXkgSW5mb3JtYXRpb24gVGVjaG5vbG9naWVzIENvLixMdGQKKzAwMjVBOSAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBFbWJlZHdheSBJbmZvcm1hdGlvbiBUZWNobm9sb2dpZXMgQ28uLEx0ZAorCQkJCTJGLEJ1aWxkaW5nIDksTHVqaWF6dWkgU29mdHdhcmUgUGFyaywgTm8uMjAsTGFuZSA5MSxFJ1NoYW4gUm9hZAorCQkJCVNoYW5naGFpICAyMDAxMjcKKwkJCQlDSElOQQorCiswMC0yNS1BQSAgIChoZXgpCQlCZWlqaW5nIFNvdWwgVGVjaG5vbG9neSBDby4sTHRkLgorMDAyNUFBICAgICAoYmFzZSAxNikJCUJlaWppbmcgU291bCBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJUm9vbSA2MDYsWGluemhlbmcgT2ZmaWNlIEJ1aWxkaW5nCisJCQkJTm8uMSBDaGFuZ3dhIE1pZGRsZSBTdHJlZXQsSGFpZGlhbiBEaXN0cmljdC4KKwkJCQlCRUlKSU5HICAxMDAwODkKKwkJCQlDSElOQQorCiswMC0yNS1BQiAgIChoZXgpCQlBSU8gTENEIFBDIEJVIC8gVFBWCiswMDI1QUIgICAgIChiYXNlIDE2KQkJQUlPIExDRCBQQyBCVSAvIFRQVgorCQkJCTEwRi4sIE5vLiwgMjMwLCBMaWFuY2hlbmcgUmQuCisJCQkJWmhvbmdoZSBDaXR5IFRhaXBlaSBUYWl3YW4gMjM1NTMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LUFDICAgKGhleCkJCUktVGVjaCBjb3Jwb3JhdGlvbgorMDAyNUFDICAgICAoYmFzZSAxNikJCUktVGVjaCBjb3Jwb3JhdGlvbgorCQkJCTEtMTUgU2hpbi1vZ2F3YSBtYWNoaQorCQkJCVNoaW5qeXVrdS1rdSBUb2t5byAxNjItMDgxNAorCQkJCUpBUEFOCisKKzAwLTI1LUFEICAgKGhleCkJCU1hbnVmYWN0dXJpbmcgUmVzb3VyY2VzIEludGVybmF0aW9uYWwKKzAwMjVBRCAgICAgKGJhc2UgMTYpCQlNYW51ZmFjdHVyaW5nIFJlc291cmNlcyBJbnRlcm5hdGlvbmFsCisJCQkJMTYwMCBVbmlvbiBIaWxsIFJvYWQKKwkJCQlBbHBoYXJldHRhIEdBIDMwMDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1BRSAgIChoZXgpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKzAwMjVBRSAgICAgKGJhc2UgMTYpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKwkJCQlPbmUgTWljcm9zb2Z0IFdheQorCQkJCVJlZG1vbmQgV2FzaGluZ3RvbiA5ODA1Mi02Mzk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1BRiAgIChoZXgpCQlDT01GSUxFIFRlY2hub2xvZ3kKKzAwMjVBRiAgICAgKGJhc2UgMTYpCQlDT01GSUxFIFRlY2hub2xvZ3kKKwkJCQlHdXJvIDUgZG9uZywgR3Vyby1ndQorCQkJCTEwNC01CisJCQkJU2VvdWwgIDE1Mi04NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtQjAgICAoaGV4KQkJU2NobWFydHogSW5jCiswMDI1QjAgICAgIChiYXNlIDE2KQkJU2NobWFydHogSW5jCisJCQkJMjMwNyBWYWxlcmlhbiBUcmwKKwkJCQlSb3VuZCBSb2NrIFRYIDc4NjY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1CMSAgIChoZXgpCQlNYXlhLUNyZWF0aW9uIENvcnBvcmF0aW9uCiswMDI1QjEgICAgIChiYXNlIDE2KQkJTWF5YS1DcmVhdGlvbiBDb3Jwb3JhdGlvbgorCQkJCTNGLCBCdWlsZGluZyBNLTEwLCBDZW50cmUgb2QgSGktVGVjaCBJbmQuIERpc3QuCisJCQkJU2hlbnpoZW4gIDUxODA1NworCQkJCUNISU5BCisKKzAwLTI1LUIyICAgKGhleCkJCUxGSy1MZW5rZmx1Z2tvcnBlcnN5c3RlbWUgR21iSAorMDAyNUIyICAgICAoYmFzZSAxNikJCUxGSy1MZW5rZmx1Z2tvcnBlcnN5c3RlbWUgR21iSAorCQkJCUxhbmRzaHV0ZXIgU3RyYXNzZSAgMjYKKwkJCQlVbnRlcnNjaGxlaXNzaGVpbSBCYXZhcmlhIDg1NzE2CisJCQkJR0VSTUFOWQorCiswMC0yNS1CMyAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMjVCMyAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTVMgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUI0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjVCNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1CNSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI1QjUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQjYgICAoaGV4KQkJVGVsZWNvbSBGTQorMDAyNUI2ICAgICAoYmFzZSAxNikJCVRlbGVjb20gRk0KKwkJCQk4OTUgUGx5bW91dGggUm9hZAorCQkJCVNsb3VnaCBCZXJrcyBTTDEgNExQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjUtQjcgICAoaGV4KQkJQ29zdGFyICBlbGVjdHJvbmljcywgaW5jLiwKKzAwMjVCNyAgICAgKGJhc2UgMTYpCQlDb3N0YXIgIGVsZWN0cm9uaWNzLCBpbmMuLAorCQkJCTNmbCwtMSBubyAxMyxsYW5lIDEyMCxuZWktaHUgcm9hZCBzZWMuMSwKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtQjggICAoaGV4KQkJQWdpbGUgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMjVCOCAgICAgKGJhc2UgMTYpCQlBZ2lsZSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTEyNDI3IFJlbndpY2sgRHIKKwkJCQlSYW5jaG8gQ3VjYW1vbmdhIENhbGlmb3JuaWEgOTE3MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUI5ICAgKGhleCkJCUFnaWxpbmsgU3lzdGVtcyBDb3JwLgorMDAyNUI5ICAgICAoYmFzZSAxNikJCUFnaWxpbmsgU3lzdGVtcyBDb3JwLgorCQkJCSMzMDAtMTI3NSBXZXN0IDZ0aCBBdmUKKwkJCQlWYW5jb3V2ZXIgQkMgVjZIIDFBNgorCQkJCUNBTkFEQQorCiswMC0yNS1CQSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudCBJUEQKKzAwMjVCQSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudCBJUEQKKwkJCQk3MDEgRS4gTWlkZGxlZmllbGQgUmQuCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQkIgICAoaGV4KQkJSU5ORVJJTlQgQ28uLCBMdGQuCiswMDI1QkIgICAgIChiYXNlIDE2KQkJSU5ORVJJTlQgQ28uLCBMdGQuCisJCQkJRG9uZ3lvdW5nIENlbnRyYWxUb3dlciAjMjAyLCBHZXVtanVuZy1kb25nLAorCQkJCUd1bnBvLXNpLEt5dW5nZ2ktZG8sNDM1LTA1MCBTb3V0aCBLT1JFQS4KKwkJCQlHdW5wby1zaSBLeXVuZ2dpLWRvIDQzMDA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS1CQyAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDI1QkMgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQkQgICAoaGV4KQkJSXRhbGRhdGEgSW5nZWduZXJpYSBkZWxsJ0lkZWEgUy5wLkEuCiswMDI1QkQgICAgIChiYXNlIDE2KQkJSXRhbGRhdGEgSW5nZWduZXJpYSBkZWxsJ0lkZWEgUy5wLkEuCisJCQkJdmlhbGUgRXJvaSBkaSBDZWZhbG9uaWEgMTIzCisJCQkJUm9tYSAgMDAxMjgKKwkJCQlJVEFMWQorCiswMC0yNS1CRSAgIChoZXgpCQlUZWt0cmFwIFN5c3RlbXMgSW5jLgorMDAyNUJFICAgICAoYmFzZSAxNikJCVRla3RyYXAgU3lzdGVtcyBJbmMuCisJCQkJMTUgQnV0ZWF1IFN0LgorCQkJCVN1aXRlIDIzMC05CisJCQkJR2F0aW5lYXUgUXVlYmVjIEo4WiAxVjQKKwkJCQlDQU5BREEKKworMDAtMjUtQkYgICAoaGV4KQkJV2lyZWxlc3MgQ2FibGVzIEluYy4KKzAwMjVCRiAgICAgKGJhc2UgMTYpCQlXaXJlbGVzcyBDYWJsZXMgSW5jLgorCQkJCTI4ODAgWmFua2VyIFJkLCBTdGUgMjAzCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUMwICAgKGhleCkJCVppbGxpb25UViBDb3Jwb3JhdGlvbgorMDAyNUMwICAgICAoYmFzZSAxNikJCVppbGxpb25UViBDb3Jwb3JhdGlvbgorCQkJCTExNzAgS2lmZXIgUm9hZAorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQzEgICAoaGV4KQkJTmF3b28gS29yZWEgQ29ycC4KKzAwMjVDMSAgICAgKGJhc2UgMTYpCQlOYXdvbyBLb3JlYSBDb3JwLgorCQkJCTRGbC4sIEhhbndvbiBCbGRnLiwgNi0xLCBTdW5hZS1kb25nLCBCdW5kYW5nLWd1LAorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2My04MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtQzIgICAoaGV4KQkJUmluZ0JlbGwgQ28uLEx0ZC4KKzAwMjVDMiAgICAgKGJhc2UgMTYpCQlSaW5nQmVsbCBDby4sTHRkLgorCQkJCTEwNTg2IEtpbmdHZW9yZ2UgSHd5CisJCQkJU3VycmV5IEIuQyBWM1QgMlgzCisJCQkJQ0FOQURBCisKKzAwLTI1LUMzICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAyNUMzICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCUNBUlJFVEVSQSBCQVNFIEFFUkVBICMgNTg1MAorCQkJCVphcG9wYW4gSmFsaXNjbyA0NDEzMAorCQkJCU1FWElDTworCiswMC0yNS1DNCAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzAwMjVDNCAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1DNSAgIChoZXgpCQlTdGFyIExpbmsgQ29tbXVuaWNhdGlvbiBQdnQuIEx0ZC4KKzAwMjVDNSAgICAgKGJhc2UgMTYpCQlTdGFyIExpbmsgQ29tbXVuaWNhdGlvbiBQdnQuIEx0ZC4KKwkJCQlIUjExNC82ICYgSHIxMzIvNiwgUHVscHJlaGxhZHB1ciwKKwkJCQlTdXJhaiBrdW5kIFJvYWQsIE5lYXIgQmFkYXJwdXIsCisJCQkJTmV3IERlbGhpICAxMTAwNDQKKwkJCQlJTkRJQQorCiswMC0yNS1DNiAgIChoZXgpCQlrYXNlcmNvcnAsIGx0ZAorMDAyNUM2ICAgICAoYmFzZSAxNikJCWthc2VyY29ycCwgbHRkCisJCQkJU291dGggMjAsR2FvYnUgUm9hZCxHYW9idSBUb3duCisJCQkJRG9uZ3dhbiBHdWFuZ2RvbmcgNTIzMDAwCisJCQkJQ0hJTkEKKworMDAtMjUtQzcgICAoaGV4KQkJYWx0ZWsgQ29ycG9yYXRpb24KKzAwMjVDNyAgICAgKGJhc2UgMTYpCQlhbHRlayBDb3Jwb3JhdGlvbgorCQkJCTNGLCBOby4gMTAsIExpLUhzaW4gUm9hZCwgU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNS1DOCAgIChoZXgpCQlTLUFjY2VzcyBHbWJICiswMDI1QzggICAgIChiYXNlIDE2KQkJUy1BY2Nlc3MgR21iSAorCQkJCU9iZXJoYXVzZW5zdHJhc3NlIDQ3CisJCQkJV2V0dHN3aWwgYS9BIFp1ZXJpY2ggODkwNworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTI1LUM5ICAgKGhleCkJCVNIRU5aSEVOIEhVQVBVIERJR0lUQUwgQ08uLCBMVEQKKzAwMjVDOSAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBIVUFQVSBESUdJVEFMIENPLiwgTFRECisJCQkJRnV0aWFuIERpc3RyaWN0LENoZWdvbmdtaWFvLFRpYW5BbiBDeWJlcnBhcmsKKwkJCQkxNy9GIEVhc3QsSGlnaC1UZWNoIFBsYXphLCBQaGFzZSA/bworCQkJCVNoZW5aaGVuIEd1YW5nZG9uZyBQcm92aW5jZSA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0yNS1DQSAgIChoZXgpCQlMUyBSZXNlYXJjaCwgTExDCiswMDI1Q0EgICAgIChiYXNlIDE2KQkJTFMgUmVzZWFyY2gsIExMQworCQkJCVc2NiBOMjIwIENvbW1lcmNlIENvdXJ0CisJCQkJQ2VkYXJidXJnIFdJIDUzMDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1DQiAgIChoZXgpCQlSZWluZXIgU0NUCiswMDI1Q0IgICAgIChiYXNlIDE2KQkJUmVpbmVyIFNDVAorCQkJCVJlaW5lciBLYXJ0ZW5nZXJhdGUgR21iSCAmIENvLiBLRy4KKwkJCQlHb2V0aGVzdHIuIDE0CisJCQkJRnVydHdhbmdlbiAgNzgxMjAKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LUNDICAgKGhleCkJCU1vYmlsZSBDb21tdW5pY2F0aW9ucyBLb3JlYSBJbmNvcnBvcmF0ZWQKKzAwMjVDQyAgICAgKGJhc2UgMTYpCQlNb2JpbGUgQ29tbXVuaWNhdGlvbnMgS29yZWEgSW5jb3Jwb3JhdGVkCisJCQkJMTAxMS0xMDEyLCBTdXdvbiBIaWdoIFZlbnR1cmUgVmFsbGV5LAorCQkJCTk1OCBHb3NhZWstZG9uZywgR3dvbnNlb24tZ3UsCisJCQkJU3V3b24tc2ksIEd5ZW9uZ2dpLWRvLCA0NDEtMzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LUNEICAgKGhleCkJCVNreWxhbmUgT3B0aWNzCiswMDI1Q0QgICAgIChiYXNlIDE2KQkJU2t5bGFuZSBPcHRpY3MKKwkJCQlSdWUgZCdBcmxvbiwgNgorCQkJCVdpbmRob2YgIDgzOTkKKwkJCQlMVVhFTUJPVVJHCisKKzAwLTI1LUNFICAgKGhleCkJCUlubmVyU3BhY2UKKzAwMjVDRSAgICAgKGJhc2UgMTYpCQlJbm5lclNwYWNlCisJCQkJUE8gQm94IDIxODYKKwkJCQlHcmFuZCBSYXBpZHMgTUkgNDk1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUNGICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDI1Q0YgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTI1LUQwICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDI1RDAgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQkgQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yNS1EMSAgIChoZXgpCQlFYXN0ZWNoIEVsZWN0cm9uaWNzIChUYWl3YW4pIEluYy4KKzAwMjVEMSAgICAgKGJhc2UgMTYpCQlFYXN0ZWNoIEVsZWN0cm9uaWNzIChUYWl3YW4pIEluYy4KKwkJCQkxM0YsIE5vLiA5OSwgU2VjLiAxLCBOYW5rYW4gUm9hZCwgTHVjaHUgU2hpYW5nCisJCQkJVGFveXVhbiBIc2llbiAzMzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LUQyICAgKGhleCkJCUlucGVnVmlzaW9uIENvLiwgTHRkCiswMDI1RDIgICAgIChiYXNlIDE2KQkJSW5wZWdWaXNpb24gQ28uLCBMdGQKKwkJCQkyMjYtMywgQnVnb2stZG9uZywgR2V1bWplb25nLWd1LAorCQkJCUJ1c2FuICA2MDktMzIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LUQzICAgKGhleCkJCUF6dXJlV2F2ZSBUZWNobm9sb2dpZXMsIEluYworMDAyNUQzICAgICAoYmFzZSAxNikJCUF6dXJlV2F2ZSBUZWNobm9sb2dpZXMsIEluYworCQkJCThGIC4sIE5vLjk0LCBCYW96aG9uZyBSZC4KKwkJCQlYaW5kaWFuIENpdHkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtRDQgICAoaGV4KQkJRm9ydHJlc3MgVGVjaG5vbG9naWVzCiswMDI1RDQgICAgIChiYXNlIDE2KQkJRm9ydHJlc3MgVGVjaG5vbG9naWVzCisJCQkJMiBUZWNobm9sb2d5IFBhcmsgRHIKKwkJCQlXZXN0Zm9yZCBNQSAwMTg4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtRDUgICAoaGV4KQkJUm9ib25pY2EgKFB0eSkgTHRkCiswMDI1RDUgICAgIChiYXNlIDE2KQkJUm9ib25pY2EgKFB0eSkgTHRkCisJCQkJNDEgUGFyayBBdmVudWUgTm9ydGgKKwkJCQlIaWdod2F5IEJ1c2luZXNzIFBhcmsKKwkJCQlDZW50dXJpb24gR2F1dGVuZyAwMDQ2CisJCQkJU09VVEggQUZSSUNBCisKKzAwLTI1LUQ2ICAgKGhleCkJCVRoZSBLcm9nZXIgQ28uCiswMDI1RDYgICAgIChiYXNlIDE2KQkJVGhlIEtyb2dlciBDby4KKwkJCQkxMTQ1MCBHcm9vbXMgUm9hZAorCQkJCUJsdWUgQXNoIE9IIDQ1MjQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1ENyAgIChoZXgpCQlDRURPCiswMDI1RDcgICAgIChiYXNlIDE2KQkJQ0VETworCQkJCVZpZGVuc2thIDEyNworCQkJCUJSTk8gIDYxOTAwCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMjUtRDggICAoaGV4KQkJS09SRUEgTUFJTlRFTkFOQ0UKKzAwMjVEOCAgICAgKGJhc2UgMTYpCQlLT1JFQSBNQUlOVEVOQU5DRQorCQkJCTNGIEhBRUxJTSBCVUlESU5HIDEwMy03LCBHVVJPLTVET05HCisJCQkJR1VSTy1HVSwKKwkJCQlTRU9VTCAgMTUyLTg0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS1EOSAgIChoZXgpCQlEYXRhRmFiIFN5c3RlbXMgSW5jLgorMDAyNUQ5ICAgICAoYmFzZSAxNikJCURhdGFGYWIgU3lzdGVtcyBJbmMuCisJCQkJMzg1LTMgSG9uZ3p1biBSb2FkCisJCQkJUGluZ3poZW4gQ2l0eSBUYW95dWFuIENvdW50eSAzMjQ2NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtREEgICAoaGV4KQkJU2VjdXJhIEtleQorMDAyNURBICAgICAoYmFzZSAxNikJCVNlY3VyYSBLZXkKKwkJCQkyMDMwMSBOb3JkaG9mZiBTdC4KKwkJCQlDaGF0c3dvcnRoIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1EQiAgIChoZXgpCQlBVEkgRWxlY3Ryb25pY3MoU2hlbnpoZW4pIENvLiwgTFRECiswMDI1REIgICAgIChiYXNlIDE2KQkJQVRJIEVsZWN0cm9uaWNzKFNoZW56aGVuKSBDby4sIExURAorCQkJCTJGLDFzdCBCdWxpZGluZyxUYW5neWFuc2hhbiBJbmR1c3RyaWFsIFBhcmssCisJCQkJVGFuZ2tlbmcgVmlsbGFnZSxTaGl5YW4gVG93biwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTA4CisJCQkJQ0hJTkEKKworMDAtMjUtREMgICAoaGV4KQkJU3VtaXRvbW8gRWxlY3RyaWMgTmV0d29ya3MsIEluYworMDAyNURDICAgICAoYmFzZSAxNikJCVN1bWl0b21vIEVsZWN0cmljIE5ldHdvcmtzLCBJbmMKKwkJCQkxLTEtMywgU2hpbWF5YSwgS29ub2hhbmEta3UKKwkJCQlPc2FrYSBPc2FrYSBQcmVmZWN0dXJlIDU1NC0wMDI0CisJCQkJSkFQQU4KKworMDAtMjUtREQgICAoaGV4KQkJU1VOTllURUsgSU5GT1JNQVRJT04gQ08uLCBMVEQuCiswMDI1REQgICAgIChiYXNlIDE2KQkJU1VOTllURUsgSU5GT1JNQVRJT04gQ08uLCBMVEQuCisJCQkJMTJGLCBOTy4gODgsIEhTSU4tVEUgUk9BRAorCQkJCVNBTiBDSFVORyBDSVRZCisJCQkJVEFJUEVJIEhTSUVOICAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LURFICAgKGhleCkJCVByb2JpdHMgQ28uLCBMVEQuCiswMDI1REUgICAgIChiYXNlIDE2KQkJUHJvYml0cyBDby4sIExURC4KKwkJCQkjMTUwMiwgS29sb24gU2NpZW5jZSBWYWxsZXkgSUksIDgxMQorCQkJCUd1cm8tRG9uZywgR3Vyby1HdSwKKwkJCQlTZW91bCAgMTUyLTg3OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS1ERiAgIChoZXgpCQlQUklWQVRFCiswMDI1REYgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTI1LUUwICAgKGhleCkJCUNlZWRUZWMgU2RuIEJoZAorMDAyNUUwICAgICAoYmFzZSAxNikJCUNlZWRUZWMgU2RuIEJoZAorCQkJCTMwMy00LTUsIEtyeXN0YWwgUG9pbnQgQnVzaW5lc3MgQ2VudGVyCisJCQkJQmF5YW4gTGVwYXMgUGVuYW5nIDExOTAwCisJCQkJTUFMQVlTSUEKKworMDAtMjUtRTEgICAoaGV4KQkJU0hBTkdIQUkgU0VFWU9PIEVMRUNUUk9OSUMgJiBURUNITk9MT0dZIENPLiwgTFRECiswMDI1RTEgICAgIChiYXNlIDE2KQkJU0hBTkdIQUkgU0VFWU9PIEVMRUNUUk9OSUMgJiBURUNITk9MT0dZIENPLiwgTFRECisJCQkJUk03MDEsWElOJ0FOIEJVSUxESU5HLDk5IFRJQU5aSE9VIFJELFhVSFVJIERJU1RSSUNULFNIQU5HSEFJCisJCQkJU0hBTkdIQUkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTI1LUUyICAgKGhleCkJCUV2ZXJzcHJpbmcgSW5kdXN0cnkgQ28uLCBMdGQuCiswMDI1RTIgICAgIChiYXNlIDE2KQkJRXZlcnNwcmluZyBJbmR1c3RyeSBDby4sIEx0ZC4KKwkJCQk3Ri4sIE5vLiA2MDksIFNlYyAxLCBXYW5zaG91IFJkLgorCQkJCUd1ZWlzaGFuIFRvd25zaGlwIFRhb3l1YW4gQ291bnR5IDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtRTMgICAoaGV4KQkJSGFuc2hpbml0IEluYy4KKzAwMjVFMyAgICAgKGJhc2UgMTYpCQlIYW5zaGluaXQgSW5jLgorCQkJCURvbmctV29uIEJsZCAzRiwgMzk1LTEzLCBHYWwtTWEgMiwgU2VvLUd1CisJCQkJRGFlamVvbiAgMzAyLTgwOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS1FNCAgIChoZXgpCQlPTU5JLVdpRmksIExMQworMDAyNUU0ICAgICAoYmFzZSAxNikJCU9NTkktV2lGaSwgTExDCisJCQkJMTA3IFBpbmUgSGlsbCBSb2FkCisJCQkJQmVyd2ljayBNYWluZSAwMzkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtRTUgICAoaGV4KQkJTEcgRWxlY3Ryb25pY3MgSW5jCiswMDI1RTUgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MgSW5jCisJCQkJNjAtMzkgLEdhc2FuLURvbmcKKwkJCQlHdW1jaG9uLWd1CisJCQkJU2VvdWwgIDE1My0wMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtRTYgICAoaGV4KQkJQmVsZ2lhbiBNb25pdG9yaW5nIFN5c3RlbXMgYnZiYQorMDAyNUU2ICAgICAoYmFzZSAxNikJCUJlbGdpYW4gTW9uaXRvcmluZyBTeXN0ZW1zIGJ2YmEKKwkJCQlUaC4gU2V2ZW5zbGFhbiAxMDYKKwkJCQlLb3J0cmlqayBXVkwgODUwMAorCQkJCUJFTEdJVU0KKworMDAtMjUtRTcgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKzAwMjVFNyAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kICAyMjE4OAorCQkJCVNXRURFTgorCiswMC0yNS1FOCAgIChoZXgpCQlJZGFobyBUZWNobm9sb2d5CiswMDI1RTggICAgIChiYXNlIDE2KQkJSWRhaG8gVGVjaG5vbG9neQorCQkJCTM5MCBXYWthcmEgd2F5CisJCQkJU2FsdCBsYWtlIENpdHkgVVQgODQxMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUU5ICAgKGhleCkJCWktbWF0ZSBEZXZlbG9wbWVudCwgSW5jLgorMDAyNUU5ICAgICAoYmFzZSAxNikJCWktbWF0ZSBEZXZlbG9wbWVudCwgSW5jLgorCQkJCTgzODMgMTU4dGggQXZlLiBOLkUuLCBTdWl0ZSAzMDAsIFJlZG1vbmQsCisJCQkJV0EgOTgwNTItMzg3MQorCQkJCVdhc2hpbmd0b24gV0EgOTgwNTItMzg3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtRUEgICAoaGV4KQkJSXBoaW9uIEJWCiswMDI1RUEgICAgIChiYXNlIDE2KQkJSXBoaW9uIEJWCisJCQkJV2lsbGVtc3RyYWF0IDEwNgorCQkJCUVpbmRob3ZlbiAgNTYxNkdFCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjUtRUIgICAoaGV4KQkJUmV1dGVjaCBSYWRhciBTeXN0ZW1zIChQVFkpIEx0ZAorMDAyNUVCICAgICAoYmFzZSAxNikJCVJldXRlY2ggUmFkYXIgU3lzdGVtcyAoUFRZKSBMdGQKKwkJCQkzNSBFbGVjdHJvbiBBdmVudWUKKwkJCQlUZWNobm9wYXJrCisJCQkJU3RlbGxlbmJvc2NoIFdlc3Rlcm4gQ2FwZSA3NjAwCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTI1LUVDICAgKGhleCkJCUh1bWFud2FyZQorMDAyNUVDICAgICAoYmFzZSAxNikJCUh1bWFud2FyZQorCQkJCTQ0NSBydWUgZHUgUGFyYyBJbmR1c3RyaWVsCisJCQkJTG9uZ3VldWlsIFF1ZWJlYyBKNEggM1Y3CisJCQkJQ0FOQURBCisKKzAwLTI1LUVEICAgKGhleCkJCU51Vm8gVGVjaG5vbG9naWVzIExMQworMDAyNUVEICAgICAoYmFzZSAxNikJCU51Vm8gVGVjaG5vbG9naWVzIExMQworCQkJCTMwMTUgS3VzdG9tIERyaXZlCisJCQkJSGVicm9uIEtZIDQxMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1FRSAgIChoZXgpCQlBdnRleCBMdGQKKzAwMjVFRSAgICAgKGJhc2UgMTYpCQlBdnRleCBMdGQKKwkJCQlVbml0IEc1IENhcGl0YWwgQnVzaW5lc3MgUGFyaworCQkJCVBhcmt3YXkKKwkJCQlDYXJkaWZmICBDRjMgMlBYCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjUtRUYgICAoaGV4KQkJSS1URUMgQ28uLCBMdGQuCiswMDI1RUYgICAgIChiYXNlIDE2KQkJSS1URUMgQ28uLCBMdGQuCisJCQkJNy9GLEtBV0FSQU1BQ0hJIEtPWU8gQkxERy4zLTQtMyxLQVdBUkFNQ0hJLENIVU8tS1UsCisJCQkJT1NBS0EgIDU0MS0wMDQ4CisJCQkJSkFQQU4KKworMDAtMjUtRjAgICAoaGV4KQkJU3VnYSBFbGVjdHJvbmljcyBMaW1pdGVkCiswMDI1RjAgICAgIChiYXNlIDE2KQkJU3VnYSBFbGVjdHJvbmljcyBMaW1pdGVkCisJCQkJVW5pdHMgMTkwNC0xOTA3LCBDaGV2YWxpZXIgQ29tbWVyY2lhbCBDZW50cmUsCisJCQkJOCBXYW5nIEhvaSBSb2FkLCAsCisJCQkJS293bG9vbiBCYXkgSG9uZyBLb25nIAorCQkJCUNISU5BCisKKzAwLTI1LUYxICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDI1RjEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1GMiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyNUYyICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtRjMgICAoaGV4KQkJTm9yZHdlc3RkZXV0c2NoZSBaYWhsZXJyZXZpc2lvbgorMDAyNUYzICAgICAoYmFzZSAxNikJCU5vcmR3ZXN0ZGV1dHNjaGUgWmFobGVycmV2aXNpb24KKwkJCQlJbmcuIEF1Zy4gS25lbWV5ZXIgR21iSCAmIENvLiBLRworCQkJCUhlaWRld2VnIDMzCisJCQkJQmFkIExhZXIgTmllZGVyc2FjaHNlbiA0OTE5NgorCQkJCUdFUk1BTlkKKworMDAtMjUtRjQgICAoaGV4KQkJS29DbyBDb25uZWN0b3IgQUcKKzAwMjVGNCAgICAgKGJhc2UgMTYpCQlLb0NvIENvbm5lY3RvciBBRworCQkJCU1hcmllbnN0cmFzc2UgMTIKKwkJCQlCZXJsaW4gIDEwMTE3CisJCQkJR0VSTUFOWQorCiswMC0yNS1GNSAgIChoZXgpCQlEVlMgS29yZWEsIENvLiwgTHRkCiswMDI1RjUgICAgIChiYXNlIDE2KQkJRFZTIEtvcmVhLCBDby4sIEx0ZAorCQkJCTQ5Ny0zLCBTYW5nSGEtRG9uZywgR2loZXVuZy1ndQorCQkJCVImRCBIYXJkd2FyZSAyVGVhbQorCQkJCVlvbmctSW4gY2l0eSBHeWVvbmdnaS1kbyA0NDYtOTE0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LUY2ICAgKGhleCkJCW5ldFRBTEsuY29tLCBJbmMuCiswMDI1RjYgICAgIChiYXNlIDE2KQkJbmV0VEFMSy5jb20sIEluYy4KKwkJCQkxMTAwIE5XIDE2M1JEIERSSVZFCisJCQkJU1VJVEUgQi00CisJCQkJTk9SVEggTUlBTUkgQkVBQ0ggRkwgMzMxNjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUY3ICAgKGhleCkJCUFuc2FsZG8gU1RTIFVTQQorMDAyNUY3ICAgICAoYmFzZSAxNikJCUFuc2FsZG8gU1RTIFVTQQorCQkJCTEwMDAgVGVjaG5vbG9neSBEcml2ZQorCQkJCVVuaW9uIFN3aXRjaCAmIFNpZ25hbCBCdWlsZGluZworCQkJCVBpdHRzYnVyZ2ggUEEgMTUyMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUY5ICAgKGhleCkJCUdNSyBlbGVjdHJvbmljIGRlc2lnbiBHbWJICiswMDI1RjkgICAgIChiYXNlIDE2KQkJR01LIGVsZWN0cm9uaWMgZGVzaWduIEdtYkgKKwkJCQlEYWltbGVyc3RyLiA4CisJCQkJV2VybmJlcmctS29lYmxpdHogQmF2YXJpYSBELTkyNTMzCisJCQkJR0VSTUFOWQorCiswMC0yNS1GQSAgIChoZXgpCQlKJk0gQW5hbHl0aWsgQUcKKzAwMjVGQSAgICAgKGJhc2UgMTYpCQlKJk0gQW5hbHl0aWsgQUcKKwkJCQlXaWxseS1NZXNzZXJzY2htaXR0LVN0cmFzc2UgOAorCQkJCUVzc2luZ2VuIEJXIDczNDU3CisJCQkJR0VSTUFOWQorCiswMC0yNS1GQiAgIChoZXgpCQlUdW5zdGFsbCBIZWFsdGhjYXJlIEEvUworMDAyNUZCICAgICAoYmFzZSAxNikJCVR1bnN0YWxsIEhlYWx0aGNhcmUgQS9TCisJCQkJU3Ryb2VtbWVuIDYKKwkJCQlOb2VycmVzdW5kYnkgIDk0MDAKKwkJCQlERU5NQVJLCisKKzAwLTI1LUZDICAgKGhleCkJCUVOREEgRU5EVVNUUklZRUwgRUxFS1RST05JSyBMVEQuIFNUSS4KKzAwMjVGQyAgICAgKGJhc2UgMTYpCQlFTkRBIEVORFVTVFJJWUVMIEVMRUtUUk9OSUsgTFRELiBTVEkuCisJCQkJWS4gRHVkdWxsdSBCYXJiYXJvcyBDLiBLdXR1cCBTLiBOby4gMjAKKwkJCQlVbXJhbml5ZQorCQkJCUlzdGFuYnVsICAzNDc3NQorCQkJCVRVUktFWQorCiswMC0yNS1GRCAgIChoZXgpCQlPQlIgQ2VudHJ1bSBUZWNobmlraSBNb3Jza2llaiBTLkEuCiswMDI1RkQgICAgIChiYXNlIDE2KQkJT0JSIENlbnRydW0gVGVjaG5pa2kgTW9yc2tpZWogUy5BLgorCQkJCURpY2ttYW5hIDYyCisJCQkJR2R5bmlhICA4MS0xMDkKKwkJCQlQT0xBTkQKKworMDAtMjUtRkUgICAoaGV4KQkJUGlsb3QgRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KKzAwMjVGRSAgICAgKGJhc2UgMTYpCQlQaWxvdCBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorCQkJCU5vLiAyLCBUenUtQ2hpYW5nIDNyZCBSb2FkLCBDaHVuZy1MaSBJbmR1c3RyaWFsIFpvbmUsCisJCQkJVGFveXVhbiAgSHNpZW4gMzIwNjMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LUZGICAgKGhleCkJCUNyZU5vdmEgVGVjaG5vbG9neSBHbWJICiswMDI1RkYgICAgIChiYXNlIDE2KQkJQ3JlTm92YSBUZWNobm9sb2d5IEdtYkgKKwkJCQlBbiBkZXIgU2NoaW5kaG9obCA3CisJCQkJU3VsemJhY2ggSGVzc2VuIDY1ODQzCisJCQkJR0VSTUFOWQorCiswMC0yNi0wMCAgIChoZXgpCQlURUFDIEF1c3RyYWxpYSBQdHkgTHRkLgorMDAyNjAwICAgICAoYmFzZSAxNikJCVRFQUMgQXVzdHJhbGlhIFB0eSBMdGQuCisJCQkJNzUgTm9ydGhnYXRlIERyaXZlCisJCQkJVGhvbWFzdG93biBWaWN0b3JpYSAzMDc0CisJCQkJQVVTVFJBTElBCisKKzAwLTI2LTAxICAgKGhleCkJCVBSSVZBVEUKKzAwMjYwMSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMjYtMDIgICAoaGV4KQkJU01BUlQgVGVtcHMgTExDCiswMDI2MDIgICAgIChiYXNlIDE2KQkJU01BUlQgVGVtcHMgTExDCisJCQkJMzAzIFMgQnlya2l0IFN0CisJCQkJTWlzaGF3YWthIElOIDQ2NTQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0wMyAgIChoZXgpCQlTaGVuemhlbiBXaXN0YXIgVGVjaG5vbG9neSBDby4sIEx0ZAorMDAyNjAzICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFdpc3RhciBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJUm05MTksIFNjaWVuY2UgJlRlY2hub2xvZ3kgU2VydmljZSBDZW50ZXIKKwkJCQlOby4xIFFpbGluIFJkCisJCQkJU2hlbnpoZW4gR3VhbmcgRG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCiswMC0yNi0wNCAgIChoZXgpCQlBdWRpbyBQcm9jZXNzaW5nIFRlY2hub2xvZ3kgTHRkCiswMDI2MDQgICAgIChiYXNlIDE2KQkJQXVkaW8gUHJvY2Vzc2luZyBUZWNobm9sb2d5IEx0ZAorCQkJCVdoaXRlcm9jayBCdXNpbmVzcyBQYXJrCisJCQkJNzI5IFNwcmluZ2ZpZWxkIFJvYWQKKwkJCQlCZWxmYXN0IENvdW50eSBBbnRyaW0gQlQxMiA3RlAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yNi0wNSAgIChoZXgpCQlDQyBTeXN0ZW1zIEFCCiswMDI2MDUgICAgIChiYXNlIDE2KQkJQ0MgU3lzdGVtcyBBQgorCQkJCUJveCA4MworCQkJCUFsZnRhIFN3ZWRlbiA4MjIyMgorCQkJCVNXRURFTgorCiswMC0yNi0wNiAgIChoZXgpCQlSQVVNRkVMRCBHbWJICiswMDI2MDYgICAgIChiYXNlIDE2KQkJUkFVTUZFTEQgR21iSAorCQkJCVJlaWNoZW5iZXJnZXIgU3RyLiAxMjQKKwkJCQlCZXJsaW4gIDEwOTk5CisJCQkJR0VSTUFOWQorCiswMC0yNi0wNyAgIChoZXgpCQlFbmFibGluZyBUZWNobm9sb2d5IFB0eSBMdGQKKzAwMjYwNyAgICAgKGJhc2UgMTYpCQlFbmFibGluZyBUZWNobm9sb2d5IFB0eSBMdGQKKwkJCQkyMy80NCBLaW5ncyBQYXJrIFJvYWQKKwkJCQlXZXN0IFBlcnRoIFdlc3Rlcm4gQXVzdHJhbGlhIDYwMDUKKwkJCQlBVVNUUkFMSUEKKworMDAtMjYtMDggICAoaGV4KQkJQXBwbGUsIEluYworMDAyNjA4ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTA5ICAgKGhleCkJCVBoeWxsaXMgQ28uLCBMdGQuCiswMDI2MDkgICAgIChiYXNlIDE2KQkJUGh5bGxpcyBDby4sIEx0ZC4KKwkJCQk5dGggRmwuLCBSb29tIDMvNCwgTm8uIDUyLCBTZWMuIDIsIENodW5nIFNoYW4gTm9ydGggUm9hZCwKKwkJCQlUYWlwZWkgIDEwNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtMEEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNjBBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTBCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjYwQiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0wQyAgIChoZXgpCQlEYXRhcmFtCiswMDI2MEMgICAgIChiYXNlIDE2KQkJRGF0YXJhbQorCQkJCTE4NiBQcmluY2V0b24gUmQuCisJCQkJQmxkZy4gM0EKKwkJCQlXZXN0IFdpbmRzb3IgTkogMDg1NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTBEICAgKGhleCkJCU1pY3JvbmV0aWNzLCBJbmMuCiswMDI2MEQgICAgIChiYXNlIDE2KQkJTWljcm9uZXRpY3MsIEluYy4KKwkJCQkyNiBIYW1wc2hpcmUgRHIKKwkJCQlIdWRzb24gTkggMDMwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTBFICAgKGhleCkJCUFibGF6ZSBTeXN0ZW1zLCBMTEMKKzAwMjYwRSAgICAgKGJhc2UgMTYpCQlBYmxhemUgU3lzdGVtcywgTExDCisJCQkJNTIzIFdlc3QgVmFsbGV5IFJvYWQKKwkJCQlXYXluZSBQZW5uc3lsdmFuaWEgMTkwODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTBGICAgKGhleCkJCUxpbm4gUHJvZHVjdHMgTHRkCiswMDI2MEYgICAgIChiYXNlIDE2KQkJTGlubiBQcm9kdWN0cyBMdGQKKwkJCQlHbGFzZ293IFJvYWQKKwkJCQlXYXRlcmZvb3QKKwkJCQlHbGFzZ293ICBHNzYgMEVRCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjYtMTAgICAoaGV4KQkJQXBhY2V3YXZlIFRlY2hub2xvZ2llcworMDAyNjEwICAgICAoYmFzZSAxNikJCUFwYWNld2F2ZSBUZWNobm9sb2dpZXMKKwkJCQk0ODM4OSBGcmVtb250IEJsdmQsIFNURSMxMDAKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0xMSAgIChoZXgpCQlMaWNlcmEgQUIKKzAwMjYxMSAgICAgKGJhc2UgMTYpCQlMaWNlcmEgQUIKKwkJCQlUZWtuaWtyaW5nZW4gMUMKKwkJCQlMaW5rb3BpbmcgIDU4MzMwCisJCQkJU1dFREVOCisKKzAwLTI2LTEyICAgKGhleCkJCVNwYWNlIEV4cGxvcmF0aW9uIFRlY2hub2xvZ2llcworMDAyNjEyICAgICAoYmFzZSAxNikJCVNwYWNlIEV4cGxvcmF0aW9uIFRlY2hub2xvZ2llcworCQkJCTEgUm9ja2V0IFJvYWQKKwkJCQlIYXd0aG9ybmUgQ0EgOTAyNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTEzICAgKGhleCkJCUVuZ2VsIEF4aWwgUy5MLgorMDAyNjEzICAgICAoYmFzZSAxNikJCUVuZ2VsIEF4aWwgUy5MLgorCQkJCVB1aWcgZGVscyBUdWRvbnMsIDYKKwkJCQlQb2wuIEluZHVzdHJpYWwgU2FudGlnYQorCQkJCUJhcmJlcmEgZGVsIFZhbGxlcyBCYXJjZWxvbmEgMDgyMTAKKwkJCQlTUEFJTgorCiswMC0yNi0xNCAgIChoZXgpCQlLVE5GCiswMDI2MTQgICAgIChiYXNlIDE2KQkJS1RORgorCQkJCTIwNCxEYWVyeXVuZ3RlY2hub3Rvd24xLDMyNyxHYXNhbi1Eb25nLAorCQkJCUdldW1jaGVvbi1HdSwKKwkJCQlTZW91bCAgMTUzLTc3MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi0xNSAgIChoZXgpCQlUZXJhY29tIExpbWl0ZWQKKzAwMjYxNSAgICAgKGJhc2UgMTYpCQlUZXJhY29tIExpbWl0ZWQKKwkJCQlCLTg0CisJCQkJU2VjdG9yIC0gNjAKKwkJCQlOb2lkYSBVdHRhciBQcmFkZXNoIDIwMTMwMQorCQkJCUlORElBCisKKzAwLTI2LTE2ICAgKGhleCkJCVJvc2Vtb3VudCBJbmMuCiswMDI2MTYgICAgIChiYXNlIDE2KQkJUm9zZW1vdW50IEluYy4KKwkJCQk4MjAwIE1hcmtldCBCb3VsZXZhcmQKKwkJCQlDaGFuaGFzc2VuIE1OIDU1MzE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0xNyAgIChoZXgpCQlPRU0gV29ybGR3aWRlCiswMDI2MTcgICAgIChiYXNlIDE2KQkJT0VNIFdvcmxkd2lkZQorCQkJCTI5MjAgS2VsbHkgQXZlCisJCQkJV2F0ZXJ0b3duIFNEIDU3MjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0xOCAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMjYxOCAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91CisJCQkJVGFpcGVpIFRhaXdhbiAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTE5ICAgKGhleCkJCUZSQworMDAyNjE5ICAgICAoYmFzZSAxNikJCUZSQworCQkJCTE1MTEgU291dGggQmVuamFtaW4gQXZlbnVlCisJCQkJTWFzb24gQ2l0eSBJQSA1MDQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMUEgICAoaGV4KQkJRmVtdG9jb21tIFN5c3RlbSBUZWNobm9sb2d5IENvcnAuCiswMDI2MUEgICAgIChiYXNlIDE2KQkJRmVtdG9jb21tIFN5c3RlbSBUZWNobm9sb2d5IENvcnAuCisJCQkJMkYuLTIsTm8uMjgsIFRhaXl1YW4gU3QuLAorCQkJCUpodWJlaSBDaXR5LCBIc2luY2h1IENvdW50cnksIDMwMjg4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi0xQiAgIChoZXgpCQlMQVVSRUwgQkFOSyBNQUNISU5FUyBDTy4sIExURC4KKzAwMjYxQiAgICAgKGJhc2UgMTYpCQlMQVVSRUwgQkFOSyBNQUNISU5FUyBDTy4sIExURC4KKwkJCQkxMi02CisJCQkJaGlnYXNoaXRhYmF0YSAxLUNob21lCisJCQkJS2l0YS1LdSBUb2t5byAxMTQtMDAxMworCQkJCUpBUEFOCisKKzAwLTI2LTFDICAgKGhleCkJCU5FT1ZJQSBJTkMuCiswMDI2MUMgICAgIChiYXNlIDE2KQkJTkVPVklBIElOQy4KKwkJCQk1MDMgTE9UVEUgSVQgQ0FTVExFIDFET05HLDU1MC0xCisJCQkJR0FTQU4tRE9ORywgR0VVTUNIRU9OLUdVCisJCQkJU0VPVUwgIDE1My03NjgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtMUQgICAoaGV4KQkJQ09QIFNFQ1VSSVRZIFNZU1RFTSBDT1JQLgorMDAyNjFEICAgICAoYmFzZSAxNikJCUNPUCBTRUNVUklUWSBTWVNURU0gQ09SUC4KKwkJCQk0fjdGLCBOby41LCBMYW5lIDEzMCwgTWluLUNodW5nIFJkLiwKKwkJCQlIc2luIFRpZW4gQ2l0eQorCQkJCVRhaXBlaSAgMjMxNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTFFICAgKGhleCkJCVFJTkdCQU5HIEVMRUMoU1opIENPLiwgTFRECiswMDI2MUUgICAgIChiYXNlIDE2KQkJUUlOR0JBTkcgRUxFQyhTWikgQ08uLCBMVEQKKwkJCQlOby4gMiwgcWltaW4gUmQuIE5vcnRoIERpc3RyaWN0LCBIaWdoLXRlY2ggSW5kdXN0cmlhbCBQYXJrLCBOYW5zaGFuLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCiswMC0yNi0xRiAgIChoZXgpCQlTQUUgTWFnbmV0aWNzIChILksuKSBMdGQuCiswMDI2MUYgICAgIChiYXNlIDE2KQkJU0FFIE1hZ25ldGljcyAoSC5LLikgTHRkLgorCQkJCVNBRSBUZWNobm9sb2d5IENlbnRyZQorCQkJCTYgU2NpZW5jZSBQYXJrIEVhc3QgQXZlbnVlCisJCQkJSG9uZyBLb25nIFNjaWVuY2UgUGFyayBTaGF0aW4sIE5ldyBUZXJyaXRvcmllcyAKKwkJCQlIT05HIEtPTkcKKworMDAtMjYtMjAgICAoaGV4KQkJSVNHVVMgR21iSAorMDAyNjIwICAgICAoYmFzZSAxNikJCUlTR1VTIEdtYkgKKwkJCQlPYmVyZG9yZnN0cmFzc2UgMTggLSAyMgorCQkJCVZTIC0gU2Nod2VubmluZ2VuIEJXIDc4MDU0CisJCQkJR0VSTUFOWQorCiswMC0yNi0yMSAgIChoZXgpCQlJbnRlbGlDbG91ZCBUZWNobm9sb2d5IEluYy4KKzAwMjYyMSAgICAgKGJhc2UgMTYpCQlJbnRlbGlDbG91ZCBUZWNobm9sb2d5IEluYy4KKwkJCQk4OTUgRG92ZSBTdC4KKwkJCQlTdGUuIDMwMAorCQkJCU5ld3BvcnQgQmVhY2ggQ0EgOTI2NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTIyICAgKGhleCkJCUNPTVBBTCBJTkZPUk1BVElPTiAoS1VOU0hBTikgQ08uLCBMVEQuCiswMDI2MjIgICAgIChiYXNlIDE2KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIExURC4KKwkJCQlOTy4gMjUsIFRIRSAzUkQgU3RyZWV0IEtVTlNIQU4gRVhQT1JUIFBST0NFU1NJTkcgWk9ORQorCQkJCUtVTlNIQU4gU1VaSE9VIDIxNTMwMAorCQkJCUNISU5BCisKKzAwLTI2LTIzICAgKGhleCkJCUpSRCBDb21tdW5pY2F0aW9uIEluYworMDAyNjIzICAgICAoYmFzZSAxNikJCUpSRCBDb21tdW5pY2F0aW9uIEluYworCQkJCTE2L0YsIFRDTCBUb3dlciwgR2FveGluIE5hbnlpIFJvYWQsIE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjYtMjQgICAoaGV4KQkJVGhvbXNvbiBJbmMuCiswMDI2MjQgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBJbmMuCisJCQkJMTAxIFdlc3QgMTAzcmQgU3RyZWV0CisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0yNSAgIChoZXgpCQlNZWRpYVNwdXRuaWsKKzAwMjYyNSAgICAgKGJhc2UgMTYpCQlNZWRpYVNwdXRuaWsKKwkJCQlZYXJvc2xhdnNrb2Ugc2hvc3NlLCAxOSwKKwkJCQlNb3Njb3cgIDEyOTMzNworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yNi0yNiAgIChoZXgpCQlHZW9waHlzaWNhbCBTdXJ2ZXkgU3lzdGVtcywgSW5jLgorMDAyNjI2ICAgICAoYmFzZSAxNikJCUdlb3BoeXNpY2FsIFN1cnZleSBTeXN0ZW1zLCBJbmMuCisJCQkJMTIgSW5kdXN0cmlhbCBXYXkKKwkJCQlTYWxlbSBOSCAwMzA3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMjcgICAoaGV4KQkJVHJ1ZXNlbGwKKzAwMjYyNyAgICAgKGJhc2UgMTYpCQlUcnVlc2VsbAorCQkJCTMwMSBTdW5neXVuIEJsZGcsIDg5LTIKKwkJCQlZYW5namFlLWRvbmcsCisJCQkJU2VvY2hvLWd1LCBTZW91bCAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LTI4ICAgKGhleCkJCWNvbXBhbnl0ZWMgYXV0b21hY2FvIGUgY29udHJvbGUgbHRkYQorMDAyNjI4ICAgICAoYmFzZSAxNikJCWNvbXBhbnl0ZWMgYXV0b21hY2FvIGUgY29udHJvbGUgbHRkYQorCQkJCVJ1YSBNYXJjaWxpbyBEaWFzIDMwMDUKKwkJCQlQZWxvdGFzIFJpbyBHcmFuZGUgZG8gU3VsIDk2MDIwLTQ4MAorCQkJCUJSQVpJTAorCiswMC0yNi0yOSAgIChoZXgpCQlKdXBob29uIFN5c3RlbSBTb2Z0d2FyZSBJbmMuCiswMDI2MjkgICAgIChiYXNlIDE2KQkJSnVwaG9vbiBTeXN0ZW0gU29mdHdhcmUgSW5jLgorCQkJCVJvb20gOTEwLEJ1aWxkaW5nIDIKKwkJCQlTaGFuZ2RvbmcgSW50ZXJuYXRpb24gQnVpbGRpbmcsSmlhbmdkb25nIERpc3RyaWN0CisJCQkJTmluZ2JvIFpoZWppYW5nIDMxNTA0MQorCQkJCUNISU5BCisKKzAwLTI2LTJBICAgKGhleCkJCVByb3hlbnNlLCBMTEMKKzAwMjYyQSAgICAgKGJhc2UgMTYpCQlQcm94ZW5zZSwgTExDCisJCQkJNjg5IE5XIFN0b25lcGluZSBEcgorCQkJCUJlbmQgT3JlZ29uIDk3NzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0yQiAgIChoZXgpCQlXb25ncyBFbGVjdHJvbmljcyBDby4gTHRkLgorMDAyNjJCICAgICAoYmFzZSAxNikJCVdvbmdzIEVsZWN0cm9uaWNzIENvLiBMdGQuCisJCQkJV2FuZmVuZyBJbmQuIEVzYXRhLCBTaGFqaW5nLCBCYW9hbiwKKwkJCQlTaGVuemhlbiBHdWFuZyBEb25nIDUxODEwNAorCQkJCUNISU5BCisKKzAwLTI2LTJDICAgKGhleCkJCUlLVCBBZHZhbmNlZCBUZWNobm9sb2dpZXMgcy5yLm8uCiswMDI2MkMgICAgIChiYXNlIDE2KQkJSUtUIEFkdmFuY2VkIFRlY2hub2xvZ2llcyBzLnIuby4KKwkJCQlQaXNlY2tlaG8gMzM0LzE5CisJCQkJUHJhaGEgNSAgMTUwMDAKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0yNi0yRCAgIChoZXgpCQlXaXN0cm9uIENvcnBvcmF0aW9uCiswMDI2MkQgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBDb3Jwb3JhdGlvbgorCQkJCTIxRiwgODgsIFNlYy4xLCBIc2luIFRhaSBXdSBSZC4sIEhzaWNoaWgsCisJCQkJVGFpcGVpIEhzaWVuIFRhaXdhbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTJFICAgKGhleCkJCUNoZW5nZHUgSml1emhvdSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgSW5jCiswMDI2MkUgICAgIChiYXNlIDE2KQkJQ2hlbmdkdSBKaXV6aG91IEVsZWN0cm9uaWMgVGVjaG5vbG9neSBJbmMKKwkJCQlBMiBCdWlsZGluZyxUaWFuZnUgU29mdHdhcmUgUGFyaworCQkJCU5vLjc2NSxNaWQgVGlhbmZ1IEF2ZW51ZSxIaWdoLXRlY2ggaW5kdXN0cmlhbCBEZXZlbG9wbWVudCBab25lCisJCQkJQ2hlbmdkdSBTaWNodWFuIDYxMDA0MQorCQkJCUNISU5BCisKKzAwLTI2LTJGICAgKGhleCkJCUhBTUFNQVRTVSBUT0EgRUxFQ1RST05JQ1MKKzAwMjYyRiAgICAgKGJhc2UgMTYpCQlIQU1BTUFUU1UgVE9BIEVMRUNUUk9OSUNTCisJCQkJOTE2Mi0xCisJCQkJTUlZQUtPREEtQ0hPCisJCQkJSEFNQU1BVFNVIFNJWlVPS0EgNDMxLTIxMDIKKwkJCQlKQVBBTgorCiswMC0yNi0zMCAgIChoZXgpCQlBQ09SRUwgUy5BLlMKKzAwMjYzMCAgICAgKGJhc2UgMTYpCQlBQ09SRUwgUy5BLlMKKwkJCQkzLCBSdWUgUGF1bCBMQU5HRVZJTgorCQkJCVNBSU5ULVBFUkFZICBGLTA3MTMwCisJCQkJRlJBTkNFCisKKzAwLTI2LTMxICAgKGhleCkJCUNPTU1UQUNUIExURAorMDAyNjMxICAgICAoYmFzZSAxNikJCUNPTU1UQUNUIExURAorCQkJCU5haGFsIFNuaXIgMTAKKwkJCQlQTyBCb3ggMTY5CisJCQkJWWF6bmUgIDgxMTAxCisJCQkJSVNSQUVMCisKKzAwLTI2LTMyICAgKGhleCkJCUluc3RydW1lbnRhdGlvbiBUZWNobm9sb2dpZXMgZC5kLgorMDAyNjMyICAgICAoYmFzZSAxNikJCUluc3RydW1lbnRhdGlvbiBUZWNobm9sb2dpZXMgZC5kLgorCQkJCVZlbGlrYSBwb3QgMjIKKwkJCQlTb2xrYW4gTm92YSBHb3JpY2EgNTI1MAorCQkJCVNMT1ZFTklBCisKKzAwLTI2LTMzICAgKGhleCkJCU1JUiAtIE1lZGljYWwgSW50ZXJuYXRpb25hbCBSZXNlYXJjaAorMDAyNjMzICAgICAoYmFzZSAxNikJCU1JUiAtIE1lZGljYWwgSW50ZXJuYXRpb25hbCBSZXNlYXJjaAorCQkJCVZpYSBkZWwgTWFnZ2lvbGlubyAxMjUKKwkJCQlSb21lIFJNIDAwMTU1CisJCQkJSVRBTFkKKworMDAtMjYtMzQgICAoaGV4KQkJSW5maW5ldGEgU3lzdGVtcywgSW5jCiswMDI2MzQgICAgIChiYXNlIDE2KQkJSW5maW5ldGEgU3lzdGVtcywgSW5jCisJCQkJMjg3MCBaYW5rZXIgUmQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMzUgICAoaGV4KQkJQmx1ZXRlY2huaXggR21iSAorMDAyNjM1ICAgICAoYmFzZSAxNikJCUJsdWV0ZWNobml4IEdtYkgKKwkJCQlXYWlkaGF1c2Vuc3RyLiAzLzE5CisJCQkJVmllbm5hICAxMTQwCisJCQkJQVVTVFJJQQorCiswMC0yNi0zNiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyNjM2ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4uIFVTIDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0zNyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm8tTWVjaGFuaWNzCiswMDI2MzcgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvLU1lY2hhbmljcworCQkJCTMxNCwgTWV0YW4gZG9uZworCQkJCVN1d29uIEt5dW5nLWtpIGRvIDQ0My03NDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtMzggICAoaGV4KQkJWGlhIE1lbiBKb3lhdGVjaCBDby4sIEx0ZC4KKzAwMjYzOCAgICAgKGJhc2UgMTYpCQlYaWEgTWVuIEpveWF0ZWNoIENvLiwgTHRkLgorCQkJCVJvb20gMzA0LCAyOHRoIEJ1aWxkaW5nLCBHdWFucmkgUm9hZCwgWGlhbWVuIFNvZnR3YXJlIFBhcmsKKwkJCQlYaWFtZW4gRnVqaWFuIFByb3ZpbmNlIDM2MTAwOAorCQkJCUNISU5BCisKKzAwLTI2LTM5ICAgKGhleCkJCVQuTS4gRWxlY3Ryb25pY3MsIEluYy4KKzAwMjYzOSAgICAgKGJhc2UgMTYpCQlULk0uIEVsZWN0cm9uaWNzLCBJbmMuCisJCQkJNDUgTWFpbiBTdAorCQkJCUJveWxzdG9uIE1BIDAxNTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0zQSAgIChoZXgpCQlEaWdpdGVjIFN5c3RlbXMKKzAwMjYzQSAgICAgKGJhc2UgMTYpCQlEaWdpdGVjIFN5c3RlbXMKKwkJCQlDNUEvMjU3LCAxc3QgRmxvb3IKKwkJCQlKYW5ha3B1cmkKKwkJCQlOZXcgRGVsaGkgRGVsaGkgMTEwMDU4CisJCQkJSU5ESUEKKworMDAtMjYtM0IgICAoaGV4KQkJT25ibmV0ZWNoCiswMDI2M0IgICAgIChiYXNlIDE2KQkJT25ibmV0ZWNoCisJCQkJNTA2LCBTYW1zdW5nIElUIFZhbGxleSwgMTk3LTUKKwkJCQlHdXJvLURvbmcKKwkJCQlHdXJvLUd1IFNlb3VsIDE1Mi04NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtM0MgICAoaGV4KQkJQmFjaG1hbm4gR21iSCAmIENvLiBLRworMDAyNjNDICAgICAoYmFzZSAxNikJCUJhY2htYW5uIEdtYkggJiBDby4gS0cKKwkJCQlFcm5zdGhhbGRlbnN0cmFzc2UgMzMKKwkJCQlTdHV0dGdhcnQgQlcgNzA1NjUKKwkJCQlHRVJNQU5ZCisKKzAwLTI2LTNEICAgKGhleCkJCU1JQSBDb3Jwb3JhdGlvbgorMDAyNjNEICAgICAoYmFzZSAxNikJCU1JQSBDb3Jwb3JhdGlvbgorCQkJCTEtMy0xNSBZb3NoaW5vLWNobywgTWluYW1pLWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjMyLTAwMTQKKwkJCQlKQVBBTgorCiswMC0yNi0zRSAgIChoZXgpCQlUcmFwZXplIE5ldHdvcmtzCiswMDI2M0UgICAgIChiYXNlIDE2KQkJVHJhcGV6ZSBOZXR3b3JrcworCQkJCTU3NTMgV2VzdCBMYXMgUG9zaXRhcyBCbHZkLgorCQkJCVBsZWFzYW50b24gQ2FsaWZvcm5pYSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtM0YgICAoaGV4KQkJTElPUyBUZWNobm9sb2d5IEdtYkgKKzAwMjYzRiAgICAgKGJhc2UgMTYpCQlMSU9TIFRlY2hub2xvZ3kgR21iSAorCQkJCVNjaGFuemVuc3RyYXNzZSAzOQorCQkJCUJ1aWxkaW5nIEQ5LUQxMworCQkJCUtvbG4gR2VybWFueSBELTUxMDYzCisJCQkJR0VSTUFOWQorCiswMC0yNi00MCAgIChoZXgpCQlCYXVzdGVtIEJyb2FkYmFuZCBUZWNobm9sb2dpZXMsIEx0ZC4KKzAwMjY0MCAgICAgKGJhc2UgMTYpCQlCYXVzdGVtIEJyb2FkYmFuZCBUZWNobm9sb2dpZXMsIEx0ZC4KKwkJCQk5MTAgUXVhbnR1bSBQbGF6YQorCQkJCU5vLjIzIFpoaWNodW4gUm9hZAorCQkJCUJlaWppbmcgIDEwMDE5MQorCQkJCUNISU5BCisKKzAwLTI2LTQxICAgKGhleCkJCU1vdG9yb2xhLCBJbmMKKzAwMjY0MSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSwgSW5jCisJCQkJMTEwMSBNYXJpbmEgVmlsbGFnZSBQYXJrd2F5CisJCQkJU3VpdGUgMjAwCisJCQkJQWxhbWVkYSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNDIgICAoaGV4KQkJTW90b3JvbGEsIEluYworMDAyNjQyICAgICAoYmFzZSAxNikJCU1vdG9yb2xhLCBJbmMKKwkJCQkxMTAxIE1hcmluYSBWaWxsYWdlIFBhcmt3YXkKKwkJCQlTdWl0ZSAyMDAKKwkJCQlBbGFtZWRhIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi00MyAgIChoZXgpCQlBbHBzIEVsZWN0cmljIENvLiwgTHRkCiswMDI2NDMgICAgIChiYXNlIDE2KQkJQWxwcyBFbGVjdHJpYyBDby4sIEx0ZAorCQkJCTEtMi0xLE9raW5vdWNoaQorCQkJCVNvbWEtY2l0eSBGdWt1c2hpbWEta2VuIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMjYtNDQgICAoaGV4KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKzAwMjY0NCAgICAgKGJhc2UgMTYpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorCQkJCVByaW5zIEJvdWRld2lqbmxhYW4gNDcKKwkJCQlFZGVnZW0gQW50d2VycCBCLTI2NTAKKwkJCQlCRUxHSVVNCisKKzAwLTI2LTQ1ICAgKGhleCkJCUNpcmNvbnRyb2wgUy5BLgorMDAyNjQ1ICAgICAoYmFzZSAxNikJCUNpcmNvbnRyb2wgUy5BLgorCQkJCUxlcGFudCA0MworCQkJCVRlcnJhc3NhIEJhcmNlbG9uYSAwODIyMworCQkJCVNQQUlOCisKKzAwLTI2LTQ2ICAgKGhleCkJCVNIRU5ZQU5HIFRPTkdGQU5HIE1VTFRJTUVESUEgVEVDSE5PTE9HWSBDT01QQU5ZIExJTUlURUQKKzAwMjY0NiAgICAgKGJhc2UgMTYpCQlTSEVOWUFORyBUT05HRkFORyBNVUxUSU1FRElBIFRFQ0hOT0xPR1kgQ09NUEFOWSBMSU1JVEVECisJCQkJTm8uMTAgUGluZyBOYW4gRWFzdCBSb2FkCisJCQkJSHVubmFuIE5ldyBEaXN0cmljdC4KKwkJCQlTaGVueWFuZyBMaWFvIE5pbmcgMTEwMDE0CisJCQkJQ0hJTkEKKworMDAtMjYtNDcgICAoaGV4KQkJV0ZFIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMjY0NyAgICAgKGJhc2UgMTYpCQlXRkUgVEVDSE5PTE9HWSBDT1JQLgorCQkJCTE3RiBOTy4yMzgsQ2hpbi1IdWEgTiBSZCwKKwkJCQlUYWljaHVuZyAgNDA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi00OCAgIChoZXgpCQlFbWl0ZWNoIENvcnAuCiswMDI2NDggICAgIChiYXNlIDE2KQkJRW1pdGVjaCBDb3JwLgorCQkJCU5vLiAxNTYtNUEsIENoZW5nR29uZyAxc3QgU3QuLAorCQkJCUpodWJlaSBDaXR5IEhzaW5jaHUgQ291bnR5IDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtNEEgICAoaGV4KQkJQXBwbGUsIEluYworMDAyNjRBICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi00QyAgIChoZXgpCQlTaGFuZ2hhaSBEaWdpVmlzaW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDI2NEMgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgRGlnaVZpc2lvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLiAzMzMgR3VhbmdqaSBSZC4KKwkJCQlTaGFuZ2hhaSAgMjAwMDgzCisJCQkJQ0hJTkEKKworMDAtMjYtNEQgICAoaGV4KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAyNjREICAgICAoYmFzZSAxNikJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Ri4sIE5vLiA5ICwgUGFyayBBdmVudWUgSUkgLAorCQkJCUhzaW5jaHUgU2NpZW5jZSBQYXJrICwKKwkJCQlIc2luY2h1IFRhaXdhbiAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTRFICAgKGhleCkJCVJhaWwgJiBSb2FkIFByb3RlYyBHbWJICiswMDI2NEUgICAgIChiYXNlIDE2KQkJUmFpbCAmIFJvYWQgUHJvdGVjIEdtYkgKKwkJCQlOb3JkZXJob2ZlbmRlbiAxMi0xMworCQkJCUZsZW5zYnVyZyAgMjQ5MzcKKwkJCQlHRVJNQU5ZCisKKzAwLTI2LTRGICAgKGhleCkJCUtydWdlciZHb3RoZSBHbWJICiswMDI2NEYgICAgIChiYXNlIDE2KQkJS3J1Z2VyJkdvdGhlIEdtYkgKKwkJCQlBdHplbmRvcmZlciBTdHJhc3NlIDE5CisJCQkJU3Rhc3NmdXJ0IFNhY2hzZW4gQW5oYWx0IDM5NDE4CisJCQkJR0VSTUFOWQorCiswMC0yNi01MCAgIChoZXgpCQkyV2lyZQorMDAyNjUwICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNTEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNjUxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTUyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjY1MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi01MyAgIChoZXgpCQlEYXlTZXF1ZXJyYSBDb3Jwb3JhdGlvbgorMDAyNjUzICAgICAoYmFzZSAxNikJCURheVNlcXVlcnJhIENvcnBvcmF0aW9uCisJCQkJMTU0IENvb3BlciBSb2FkCisJCQkJU3VpdGUgIzkwMgorCQkJCVdlc3QgQmVybGluIE5KIDA4MDkxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi01NCAgIChoZXgpCQkzQ29tIENvcnBvcmF0aW9uCiswMDI2NTQgICAgIChiYXNlIDE2KQkJM0NvbSBDb3Jwb3JhdGlvbgorCQkJCTUzNTMgQmV0c3kgUm9zcyBEcml2ZQorCQkJCUJsZGcgMTQsIE0vUyAxNDI1CisJCQkJU2FudGEgQ2xhcmEgQ2FsaWZvcm5pYSA5NTA1NC0xMTYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi01NSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMjY1NSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTXMgMDYwMzAyCisJCQkJSG91c3RvbiBUZXhhcyA3NzA5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNTYgICAoaGV4KQkJU2Fuc29uaWMgRWxlY3Ryb25pY3MgVVNBCiswMDI2NTYgICAgIChiYXNlIDE2KQkJU2Fuc29uaWMgRWxlY3Ryb25pY3MgVVNBCisJCQkJOTk1MCBCYWxkd2luIFBsYWNlCisJCQkJRWwgTW9udGUgQ2FpbGZvcm5pYSA5MTczMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNTcgICAoaGV4KQkJT09PIE5QUCBFS1JBCiswMDI2NTcgICAgIChiYXNlIDE2KQkJT09PIE5QUCBFS1JBCisJCQkJSS5ZYWtvdmxldmEgU3QuLCAzCisJCQkJQ2hlYm9rc2FyeSBDaHV2YXNoIFJlcHVibGljIDQyODAwMworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yNi01OCAgIChoZXgpCQlULVBsYXRmb3JtcyAoQ3lwcnVzKSBMaW1pdGVkCiswMDI2NTggICAgIChiYXNlIDE2KQkJVC1QbGF0Zm9ybXMgKEN5cHJ1cykgTGltaXRlZAorCQkJCVRoZW1pc3Rva2xpIERlcnZpIDMsIEp1bGlhIEhvdXNlCisJCQkJTmljb3NpYSAgUC5DLi0xMDY2CisJCQkJQ1lQUlVTCisKKzAwLTI2LTU5ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyNjU5ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTI2LTVBICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAyNjVBICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5vLjI4OSwgU2luaHUgM3JkIFJkLiwKKwkJCQlOZWlodSBEaXN0cmljdCAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi01QiAgIChoZXgpCQlIaXRyb24gVGVjaG5vbG9naWVzLiBJbmMKKzAwMjY1QiAgICAgKGJhc2UgMTYpCQlIaXRyb24gVGVjaG5vbG9naWVzLiBJbmMKKwkJCQlOby4gMS04LCBMaXNpbmcgMXN0IFJkLiBIc2luY2h1IFNjaWVuY2UgUGFyaywKKwkJCQlIc2luLWNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi01QyAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCiswMDI2NUMgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUKKwkJCQlTaGFuZ2hhaSAgMjAxNjEzCisJCQkJQ0hJTkEKKworMDAtMjYtNUQgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworMDAyNjVEICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtNUUgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorMDAyNjVFICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKKzAwLTI2LTVGICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAyNjVGICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi02MCAgIChoZXgpCQlMb2dpd2F5cworMDAyNjYwICAgICAoYmFzZSAxNikJCUxvZ2l3YXlzCisJCQkJMjQvMjYgcnVlIExvdWlzIEFSTUFORAorCQkJCVBBUklTICA3NTAxNQorCQkJCUZSQU5DRQorCiswMC0yNi02MSAgIChoZXgpCQlJcnVtdGVrIENvLiwgTHRkLgorMDAyNjYxICAgICAoYmFzZSAxNikJCUlydW10ZWsgQ28uLCBMdGQuCisJCQkJQXB0IDcwOCAgNTEzLTIyIEpvb25naWwgRWluZXMgUGxhdHoKKwkJCQlTYW5nZGFld29uLWRvbmcsIEp1bmd3b24tR3UKKwkJCQlTZW9uZ25hbS1DaXR5IEd5dW5nZ2ktZG8gNDYyLTEyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi02MiAgIChoZXgpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworMDAyNjYyICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi02MyAgIChoZXgpCQlTaGVuemhlbiBIdWl0YWl3ZWkgVGVjaC4gTHRkLCBjby4KKzAwMjY2MyAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBIdWl0YWl3ZWkgVGVjaC4gTHRkLCBjby4KKwkJCQlKaWFuRGEgQnVpbGRpbmcsNTAxLTUwMgorCQkJCUtld2VpIE5vLiAxCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzAwLTI2LTY0ICAgKGhleCkJCUNvcmUgU3lzdGVtIEphcGFuCiswMDI2NjQgICAgIChiYXNlIDE2KQkJQ29yZSBTeXN0ZW0gSmFwYW4KKwkJCQlCdW5zaHUgQmxkZywyLTI3LTYsTXlvamluCisJCQkJSGFjaGlvamkgVG9reW8gMTkyMDA0NgorCQkJCUpBUEFOCisKKzAwLTI2LTY1ICAgKGhleCkJCVByb3RlY3RlZExvZ2ljIENvcnBvcmF0aW9uCiswMDI2NjUgICAgIChiYXNlIDE2KQkJUHJvdGVjdGVkTG9naWMgQ29ycG9yYXRpb24KKwkJCQlQTyBCb3ggNjc3MDcKKwkJCQlBbGJ1cXVlcnF1ZSBOTSA4NzE5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNjYgICAoaGV4KQkJRUZNIE5ldHdvcmtzCiswMDI2NjYgICAgIChiYXNlIDE2KQkJRUZNIE5ldHdvcmtzCisJCQkJNkYgQmVucG9zcmEgSUkgQi9EIDE4MDItMQorCQkJCUJvamVvbmctZG9uZyBHaWhldW5nLWd1LAorCQkJCVlvbmcgSW4gS3l1bmdnaS1kbyA0NDYtOTEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LTY3ICAgKGhleCkJCUNBUkVDT00gQ08uLExURC4KKzAwMjY2NyAgICAgKGJhc2UgMTYpCQlDQVJFQ09NIENPLixMVEQuCisJCQkJMy0zNS00CisJCQkJVGFtYWdhd2EKKwkJCQlDaG9mdSBUb2t5byAxODItMDAyNQorCQkJCUpBUEFOCisKKzAwLTI2LTY4ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDI2NjggICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTI2LTY5ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDI2NjkgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTI2LTZBICAgKGhleCkJCUVTU0VOU0lVTSBOVgorMDAyNjZBICAgICAoYmFzZSAxNikJCUVTU0VOU0lVTSBOVgorCQkJCUdhc3RvbiBHZWVuc2xhYW4gOQorCQkJCUxFVVZFTiBWTCBCUkFCQU5UIDMwMDEKKwkJCQlCRUxHSVVNCisKKzAwLTI2LTZCICAgKGhleCkJCVNISU5FIFVOSU9OIEVOVEVSUFJJU0UgTElNSVRFRAorMDAyNjZCICAgICAoYmFzZSAxNikJCVNISU5FIFVOSU9OIEVOVEVSUFJJU0UgTElNSVRFRAorCQkJCVVOSVQgMTIxMSwgMTJGTC4sIENIRVZBTElFUiBDT01NRVJDSUFMIENFTlRFUiwKKwkJCQlOTy44IFdBTkcgSE9JIFJPQUQsIEtPV0xPT05CQVkKKwkJCQlLT1dMT09OICBOSUwKKwkJCQlIT05HIEtPTkcKKworMDAtMjYtNkMgICAoaGV4KQkJSW52ZW50ZWMKKzAwMjY2QyAgICAgKGJhc2UgMTYpCQlJbnZlbnRlYworCQkJCUludmVudGVjIEJ1aWxkaW5nLCA2NiBIb3UtS2FuZyBTdHJlZXQgU2hpaC1MaW4gRGlzdHJpY3QsCisJCQkJVGFpcGVpICAxMTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTZEICAgKGhleCkJCU1vYmlsZUFjY2VzcyBOZXR3b3JrcworMDAyNjZEICAgICAoYmFzZSAxNikJCU1vYmlsZUFjY2VzcyBOZXR3b3JrcworCQkJCTgzOTEgT2xkIENvdXJ0aG91c2UgUmQuCisJCQkJU3VpdGUgMzAwCisJCQkJVmllbm5hIFZBIDIyMTgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi02RSAgIChoZXgpCQlOaXNzaG8tZGVua2kgQ28uLExURC4KKzAwMjY2RSAgICAgKGJhc2UgMTYpCQlOaXNzaG8tZGVua2kgQ28uLExURC4KKwkJCQkzLTctNixjaGlkb3JpCisJCQkJb2h0YSBUb2t5byAxNDYtMDA4MworCQkJCUpBUEFOCisKKzAwLTI2LTZGICAgKGhleCkJCUNvb3JkaXdpc2UgVGVjaG5vbG9neSBDb3JwLgorMDAyNjZGICAgICAoYmFzZSAxNikJCUNvb3JkaXdpc2UgVGVjaG5vbG9neSBDb3JwLgorCQkJCTJGLiwgTm8uMTIzLCBTZWMuIDEsIExpb3VqaWEgNXRoIFJkLgorCQkJCUpodWJlaSBDaXR5LCBIc2luY2h1IENvdW50eSAgMzAyNzIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTcwICAgKGhleCkJCUNpbmNoIENvbm5lY3RvcnMKKzAwMjY3MCAgICAgKGJhc2UgMTYpCQlDaW5jaCBDb25uZWN0b3JzCisJCQkJMTcwMCBGaW5sZXkgUm9hZAorCQkJCUxvbWJhcmQgSUwgNjAxNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTcxICAgKGhleCkJCUFVVE9WSVNJT04gQ28uLCBMdGQKKzAwMjY3MSAgICAgKGJhc2UgMTYpCQlBVVRPVklTSU9OIENvLiwgTHRkCisJCQkJU2hpbnNlZ2FlIFlCUyBCbGRnLiAxMDIKKwkJCQkyMjctMSwgWW9uZ2RhcC1Eb25nCisJCQkJU2Vvbmdkb25nLWd1IFNlb3VsIDEzMy04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtNzIgICAoaGV4KQkJQUFNUCBvZiBBbWVyaWNhCiswMDI2NzIgICAgIChiYXNlIDE2KQkJQUFNUCBvZiBBbWVyaWNhCisJCQkJMTMxOTAgNTZ0aCBDb3VydAorCQkJCVN1aXRlIDQwMQorCQkJCUNsZWFyd2F0ZXIgRmxvcmlkYSAzMzc2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNzMgICAoaGV4KQkJUklDT0ggQ09NUEFOWSBMVEQuCiswMDI2NzMgICAgIChiYXNlIDE2KQkJUklDT0ggQ09NUEFOWSBMVEQuCisJCQkJODEwIFNISU1PSU1BSVpVTUkKKwkJCQlFYmluYSBDaXR5IEtBTkFHQVdBIFBSRUYgMjQzLTA0NjAKKwkJCQlKQVBBTgorCiswMC0yNi03NCAgIChoZXgpCQlFbGVjdHJvbmljIFNvbHV0aW9ucywgSW5jLgorMDAyNjc0ICAgICAoYmFzZSAxNikJCUVsZWN0cm9uaWMgU29sdXRpb25zLCBJbmMuCisJCQkJMTM1NSBIb3Jpem9uIEF2ZW51ZQorCQkJCUxhZmF5ZXR0ZSBDTyA4MDAyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNzUgICAoaGV4KQkJQXp0ZWNoIEVsZWN0cm9uaWNzIFB0ZSBMdGQKKzAwMjY3NSAgICAgKGJhc2UgMTYpCQlBenRlY2ggRWxlY3Ryb25pY3MgUHRlIEx0ZAorCQkJCTMxIFViaSBSb2FkIDEKKwkJCQlBenRlY2ggQnVpbGRpbmcKKwkJCQlTaW5nYXBvcmUgIDQwODY5NAorCQkJCVNJTkdBUE9SRQorCiswMC0yNi03NiAgIChoZXgpCQlDT01NaWR0IEFTCiswMDI2NzYgICAgIChiYXNlIDE2KQkJQ09NTWlkdCBBUworCQkJCUtpa3JlZ2F0YSA1Ny01OQorCQkJCUxldmFuZ2VyIE5vcmQtVHJvZW5kZWxhZyA3NjAwCisJCQkJTk9SV0FZCisKKzAwLTI2LTc3ICAgKGhleCkJCURFSUYgQS9TCiswMDI2NzcgICAgIChiYXNlIDE2KQkJREVJRiBBL1MKKwkJCQlGcmlzZW5ib3JndmVqIDMzCisJCQkJU2tpdmUgIDc4MDAKKwkJCQlERU5NQVJLCisKKzAwLTI2LTc4ICAgKGhleCkJCUxvZ2ljIEluc3RydW1lbnQgU0EKKzAwMjY3OCAgICAgKGJhc2UgMTYpCQlMb2dpYyBJbnN0cnVtZW50IFNBCisJCQkJNDMsIEF2ZW51ZSBkZSBsJ0V1cm9wZQorCQkJCUJQIDYwMDEyCisJCQkJRG9tb250ICA5NTMzMAorCQkJCUZSQU5DRQorCiswMC0yNi03OSAgIChoZXgpCQlFdXBob25pYyBUZWNobm9sb2dpZXMsIEluYy4KKzAwMjY3OSAgICAgKGJhc2UgMTYpCQlFdXBob25pYyBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyLTUtMTAgU2hpbi15b2tvaGFtYSwgS291aG9rdS1rdQorCQkJCVlva29oYW1hICAyMjItMDAzMworCQkJCUpBUEFOCisKKzAwLTI2LTdBICAgKGhleCkJCXd1aGFuIGhvbmd4aW4gdGVsZWNvbW11bmljYXRpb24gdGVjaG5vbG9naWVzIGNvLixsdGQKKzAwMjY3QSAgICAgKGJhc2UgMTYpCQl3dWhhbiBob25neGluIHRlbGVjb21tdW5pY2F0aW9uIHRlY2hub2xvZ2llcyBjby4sbHRkCisJCQkJTm8uNSBEb254aW4gUm9hZCxXdWhhbiBFYXN0IExha2UgSGlnaC1UZWNoIERldmVsb3BtZW50IFpvbmUKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzMKKwkJCQlDSElOQQorCiswMC0yNi03QiAgIChoZXgpCQlHU0kgSGVsbWhvbHR6emVudHJ1bSBmdXIgU2Nod2VyaW9uZW5mb3JzY2h1bmcgR21iSAorMDAyNjdCICAgICAoYmFzZSAxNikJCUdTSSBIZWxtaG9sdHp6ZW50cnVtIGZ1ciBTY2h3ZXJpb25lbmZvcnNjaHVuZyBHbWJICisJCQkJUGxhbmNrc3RyYXNzZSAxCisJCQkJRGFybXN0YWR0IEhlc3NlbiA2NDI5MQorCQkJCUdFUk1BTlkKKworMDAtMjYtN0MgICAoaGV4KQkJTWV0ei1XZXJrZSBHbWJIICYgQ28gS0cKKzAwMjY3QyAgICAgKGJhc2UgMTYpCQlNZXR6LVdlcmtlIEdtYkggJiBDbyBLRworCQkJCU9obXN0cmFzc2UgNTUKKwkJCQlaaXJuZG9yZiAgOTA1MTMKKwkJCQlHRVJNQU5ZCisKKzAwLTI2LTdEICAgKGhleCkJCUEtTWF4IFRlY2hub2xvZ3kgTWFjYW8gQ29tbWVyY2lhbCBPZmZzaG9yZSBDb21wYW55IExpbWl0ZWQKKzAwMjY3RCAgICAgKGJhc2UgMTYpCQlBLU1heCBUZWNobm9sb2d5IE1hY2FvIENvbW1lcmNpYWwgT2Zmc2hvcmUgQ29tcGFueSBMaW1pdGVkCisJCQkJQXZlbmlkYSBEYSBQcmFpYSBHcmFuZGUgTm8uIDQwOQorCQkJCUVkaWZpY2lvIERvcyBTZXJ2aWNvcyBKdXJpZGljb3MgRGEgQ2hpbmEgNUEKKwkJCQlNYWNhdSAgCisJCQkJQ0hJTkEKKworMDAtMjYtN0UgICAoaGV4KQkJUGFycm90IFNBCiswMDI2N0UgICAgIChiYXNlIDE2KQkJUGFycm90IFNBCisJCQkJMTc0IHF1YWkgZGUgSmVtbWFwZXMKKwkJCQlQYXJpcyAgNzgxMDAKKwkJCQlGUkFOQ0UKKworMDAtMjYtN0YgICAoaGV4KQkJWmVudGVyaW8gQUIKKzAwMjY3RiAgICAgKGJhc2UgMTYpCQlaZW50ZXJpbyBBQgorCQkJCURpc2tldHRnYXRhbiAxMUIKKwkJCQlMaW5rb3BpbmcgIDU4MzM1CisJCQkJU1dFREVOCisKKzAwLTI2LTgwICAgKGhleCkJCUxvY2tpZSBJbm5vdmF0aW9uIFB0eSBMdGQKKzAwMjY4MCAgICAgKGJhc2UgMTYpCQlMb2NraWUgSW5ub3ZhdGlvbiBQdHkgTHRkCisJCQkJVW5pdCAyNAorCQkJCTItMTIgVGVtcGxlIFN0cmVldAorCQkJCUFzaHdvb2QgVklDVE9SSUEgMzE0NworCQkJCUFVU1RSQUxJQQorCiswMC0yNi04MSAgIChoZXgpCQlJbnRlcnNwaXJvIEFCCiswMDI2ODEgICAgIChiYXNlIDE2KQkJSW50ZXJzcGlybyBBQgorCQkJCUJveCAxMDA2MAorCQkJCUxpZGluZ28gIDE4MTEwCisJCQkJU1dFREVOCisKKzAwLTI2LTgyICAgKGhleCkJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAyNjgyICAgICAoYmFzZSAxNikJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLjEgSmVuIEFpIFJvYWQsIEhzaW5jaHUgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgVGFpd2FuIDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtODMgICAoaGV4KQkJQWpvaG8gRW50ZXJwcmlzZSBDby4sIEx0ZC4KKzAwMjY4MyAgICAgKGJhc2UgMTYpCQlBam9obyBFbnRlcnByaXNlIENvLiwgTHRkLgorCQkJCTFGLiwgTm8uMzAwLTMsIFNlYy4gMywgSG9waW5nIFcuIFJkLiwgV2FuLUh1YSAxMDgKKwkJCQlUYWlwZWkgVGFpd2FuIDEwOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtODQgICAoaGV4KQkJS0lTQU4gU1lTVEVNCiswMDI2ODQgICAgIChiYXNlIDE2KQkJS0lTQU4gU1lTVEVNCisJCQkJWVVDSEVPTiBQQUNUT1BJQSA2MjMsIEFOWUFORzcKKwkJCQlBTllBTkcgR1lFT05HR0kgNDMwLTcyNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi04NSAgIChoZXgpCQlEaWdpdGFsIElubm92YXRpb24KKzAwMjY4NSAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIElubm92YXRpb24KKwkJCQlUcmF2YmFuZXZlaWVuIDYKKwkJCQlUcm9uZGhlaW0gIDcwNDQKKwkJCQlOT1JXQVkKKworMDAtMjYtODYgICAoaGV4KQkJUXVhbnRlbm5hIENvbW11bmNhdGlvbnMsIEluYy4KKzAwMjY4NiAgICAgKGJhc2UgMTYpCQlRdWFudGVubmEgQ29tbXVuY2F0aW9ucywgSW5jLgorCQkJCTM0NTAgVy4gV2FycmVuIEF2ZS4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi04NyAgIChoZXgpCQlBTExJRUQgVEVMRVNJUywgSy5LIGNvcmVnYSBkaXZpc2lvbi4KKzAwMjY4NyAgICAgKGJhc2UgMTYpCQlBTExJRUQgVEVMRVNJUywgSy5LIGNvcmVnYSBkaXZpc2lvbi4KKwkJCQkxLTE5LTIwLCBTaGlueW9rb2hhbWEKKwkJCQlLb3Vob2t1LWt1CisJCQkJWW9rb2hhbWEtY2l0eSBLYW5hZ2F3YS1rZW4gMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0yNi04OCAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCiswMDI2ODggICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTg5ICAgKGhleCkJCUdlbmVyYWwgRHluYW1pY3MgUm9ib3RpYyBTeXN0ZW1zCiswMDI2ODkgICAgIChiYXNlIDE2KQkJR2VuZXJhbCBEeW5hbWljcyBSb2JvdGljIFN5c3RlbXMKKwkJCQkxMjMxIFRlY2ggQ291cnQKKwkJCQlXZXN0bWluc3RlciBNRCAyMTE1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtOEEgICAoaGV4KQkJVGVycmllciBTQyBMdGQKKzAwMjY4QSAgICAgKGJhc2UgMTYpCQlUZXJyaWVyIFNDIEx0ZAorCQkJCVN0cmV0dGl0IEZhcm0KKwkJCQlTbm9sbCBIYXRjaCBSb2FkCisJCQkJRWFzdCBQZWNraGFtIEtlbnQgVE4xMiA1RUUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yNi04QiAgIChoZXgpCQlHdWFuZ3pob3UgRXNjZW5lIENvbXB1dGVyIFRlY2hub2xvZ3kgTGltaXRlZAorMDAyNjhCICAgICAoYmFzZSAxNikJCUd1YW5nemhvdSBFc2NlbmUgQ29tcHV0ZXIgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJUm9vbSAyMDksIE5vLjU0LTU2IFl1ZWhlIEJ1aWxkaW5nLCBIdWFjdWkgU3RyZWV0LCBUaWFuaGUgSW5kdXN0cmlhbCBQYXJrCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyBQcm92aW5jZSA1MTAwNjUKKwkJCQlDSElOQQorCiswMC0yNi04QyAgIChoZXgpCQlTdGFyTGVhZiBMdGQuCiswMDI2OEMgICAgIChiYXNlIDE2KQkJU3RhckxlYWYgTHRkLgorCQkJCUNoYXN0b24gSG91c2UsIE1pbGwgQ291cnQKKwkJCQlHcmVhdCBTaGVsZm9yZAorCQkJCUNhbWJyaWRnZSAgQ0IyMiA1TEQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yNi04RCAgIChoZXgpCQlDZWxsVGVsIFMucC5BLgorMDAyNjhEICAgICAoYmFzZSAxNikJCUNlbGxUZWwgUy5wLkEuCisJCQkJVmlhIFJvbWFubyA3MgorCQkJCVNjYXJtYWdubyBUb3Jpbm8gMTAwMTAKKwkJCQlJVEFMWQorCiswMC0yNi04RSAgIChoZXgpCQlBbHRhIFNvbHV0aW9ucywgSW5jLgorMDAyNjhFICAgICAoYmFzZSAxNikJCUFsdGEgU29sdXRpb25zLCBJbmMuCisJCQkJMTEzMDUgUmFuY2hvIEJlcm5hcmRvIFJvYWQKKwkJCQlTdWl0ZSAxMDQKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LThGICAgKGhleCkJCU1UQSBTcEEKKzAwMjY4RiAgICAgKGJhc2UgMTYpCQlNVEEgU3BBCisJCQkJVmlhbGUgZGVsbCBJbmR1c3RyaWEgMTIKKwkJCQlDb2RvZ25vIExPREkgMjY4NDUKKwkJCQlJVEFMWQorCiswMC0yNi05MCAgIChoZXgpCQlJIERPIElUCiswMDI2OTAgICAgIChiYXNlIDE2KQkJSSBETyBJVAorCQkJCTEzMDgsIFdvb2xpbUxpb25zMm5kIERva3NhbiBTdGF0aW9uCisJCQkJU2VvdWwgIDE1My03ODcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtOTEgICAoaGV4KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorMDAyNjkxICAgICAoYmFzZSAxNikJCVNBR0VNIENPTU1VTklDQVRJT04KKwkJCQkxNCBSdWUgUGF1bCBEYXV0aWVyCisJCQkJVmVsaXp5ICA3ODQ1NworCQkJCUZSQU5DRQorCiswMC0yNi05MiAgIChoZXgpCQlNaXRzdWJpc2hpIEVsZWN0cmljIENvLgorMDAyNjkyICAgICAoYmFzZSAxNikJCU1pdHN1YmlzaGkgRWxlY3RyaWMgQ28uCisJCQkJMi03LTMgTWFydW5vdWNoaQorCQkJCUNoaXlvZGEta3UgVG9reW8gMTAwLTgzMTAKKwkJCQlKQVBBTgorCiswMC0yNi05MyAgIChoZXgpCQlRVmlkaXVtIFRlY2hub2xvZ2llcywgSW5jLgorMDAyNjkzICAgICAoYmFzZSAxNikJCVFWaWRpdW0gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTI5ODkgQ2hhcGFycmFsIFJpZGdlIFJkCisJCQkJU2FuIERpZWdvIENBIDkyMTMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi05NCAgIChoZXgpCQlTZW5zY2llbnQgTHRkCiswMDI2OTQgICAgIChiYXNlIDE2KQkJU2Vuc2NpZW50IEx0ZAorCQkJCVVuaXQgMiwgQmxvY2sgQSwgQXJlbmEgQnVzaW5lc3MgQ2VudHJlCisJCQkJSG9seSBSb29kIENsb3NlCisJCQkJUG9vbGUgRG9yc2V0IEJIMTcgN0ZKCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjYtOTUgICAoaGV4KQkJWlQgR3JvdXAgSW50J2wgSW5jCiswMDI2OTUgICAgIChiYXNlIDE2KQkJWlQgR3JvdXAgSW50J2wgSW5jCisJCQkJMzUwIE1lYWRvd2xhbmRzIFBhcmt3YXkKKwkJCQlTZWNhdWN1cyBOSiAwNzA5NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtOTYgICAoaGV4KQkJTk9PTElYIENvLiwgTHRkCiswMDI2OTYgICAgIChiYXNlIDE2KQkJTk9PTElYIENvLiwgTHRkCisJCQkJREFFQ0hBTkcgQi9EIDNGLCA4LTIgU1VOQUUtRE9ORworCQkJCUJVREFORy1HVQorCQkJCVNVTkdOQU0tU0kgS1lVTkdHSS1ETyA0NjMtODI1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LTk3ICAgKGhleCkJCUNoZWV0YWggVGVjaG5vbG9naWVzLCBMLlAuCiswMDI2OTcgICAgIChiYXNlIDE2KQkJQ2hlZXRhaCBUZWNobm9sb2dpZXMsIEwuUC4KKwkJCQkzODEgTWFuc2ZpZWxkIEF2ZW51ZQorCQkJCVN1aXRlIDIwMAorCQkJCVBpdHRzYnVyZ2ggUEEgMTUyMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTk4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjY5OCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi05OSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI2OTkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtOUEgICAoaGV4KQkJY2FyaW5hIHN5c3RlbSBjby4sIGx0ZC4KKzAwMjY5QSAgICAgKGJhc2UgMTYpCQljYXJpbmEgc3lzdGVtIGNvLiwgbHRkLgorCQkJCTEtNS0yIE1pbmF0b2ppbWEtbWluYW1pbWFjaGkKKwkJCQlDaHVvLWt1CisJCQkJS29iZSBIeW9nbyA2NTAtMDA0NworCQkJCUpBUEFOCisKKzAwLTI2LTlCICAgKGhleCkJCVNPS1JBVCBMdGQuCiswMDI2OUIgICAgIChiYXNlIDE2KQkJU09LUkFUIEx0ZC4KKwkJCQlWb2xrb25za29nbyAyCisJCQkJSXJrdXRzayAgNjY0MDA3CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTI2LTlDICAgKGhleCkJCUlUVVMgSkFQQU4gQ08uIExURAorMDAyNjlDICAgICAoYmFzZSAxNikJCUlUVVMgSkFQQU4gQ08uIExURAorCQkJCTdGIFNoaW5rYXdhIEIvRAorCQkJCTEtMS03IFNoaW5rYXdhCisJCQkJQ2h1b2t1IFRva3lvIDEwNDAwMzMKKwkJCQlKQVBBTgorCiswMC0yNi05RCAgIChoZXgpCQlNMk1uZXQgQ28uLCBMdGQuCiswMDI2OUQgICAgIChiYXNlIDE2KQkJTTJNbmV0IENvLiwgTHRkLgorCQkJCTYwNyBEb3dudG93biBCbGQuIDEwNDMtMSBIb2d5ZS1Eb25nIERvbmdhbi1HdQorCQkJCUFueWFuZy1DaXR5IEt5dW5nZ2ktRG8gNDMxLTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi05RSAgIChoZXgpCQlRdWFudGEgQ29tcHV0ZXIgSW5jCiswMDI2OUUgICAgIChiYXNlIDE2KQkJUXVhbnRhIENvbXB1dGVyIEluYworCQkJCU5PLiAyMTEsIFdFTiBIV0EgMlJELiwgS1VFSSBTSEFOIEhTSUFORywgVEFJUEVJLCBTSElFTgorCQkJCVRBTyBZVUFOICAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTlGICAgKGhleCkJCVBSSVZBVEUKKzAwMjY5RiAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMjYtQTAgICAoaGV4KQkJbW9ibGljCiswMDI2QTAgICAgIChiYXNlIDE2KQkJbW9ibGljCisJCQkJN0YsIDI3MS0xLCBTZW9oeWVvbi1kb25nLCBCdW5kYW5nLWd1CisJCQkJU2VvbmduYW0tc2kgS3llb25nZ2ktZG8gNDYzLTgyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1BMSAgIChoZXgpCQlNZWdnZXIKKzAwMjZBMSAgICAgKGJhc2UgMTYpCQlNZWdnZXIKKwkJCQk0MjcxIEJyb256ZSBXYXkKKwkJCQlEYWxsYXMgVGV4YXMgNzUyMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUEyICAgKGhleCkJCUluc3RydW1lbnRhdGlvbiBUZWNobm9sb2d5IFN5c3RlbXMKKzAwMjZBMiAgICAgKGJhc2UgMTYpCQlJbnN0cnVtZW50YXRpb24gVGVjaG5vbG9neSBTeXN0ZW1zCisJCQkJMTkzNjAgQnVzaW5lc3MgQ2VudGVyIERyaXZlCisJCQkJTm9ydGhyaWRnZSBDQSA5MTMyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQTMgICAoaGV4KQkJRlEgSW5nZW5pZXJpYSBFbGVjdHJvbmljYSBTLkEuCiswMDI2QTMgICAgIChiYXNlIDE2KQkJRlEgSW5nZW5pZXJpYSBFbGVjdHJvbmljYSBTLkEuCisJCQkJQ29yc2VnYSAzNzIgMSAyCisJCQkJQmFyY2Vsb25hICAwODAzNworCQkJCVNQQUlOCisKKzAwLTI2LUE0ICAgKGhleCkJCU5vdnVzIFByb2R1dG9zIEVsZXRyb25pY29zIEx0ZGEKKzAwMjZBNCAgICAgKGJhc2UgMTYpCQlOb3Z1cyBQcm9kdXRvcyBFbGV0cm9uaWNvcyBMdGRhCisJCQkJUnVhIEFsdmFybyBDaGF2ZXMsIDE1NQorCQkJCUJhaXJybyBGbG9yZXN0YQorCQkJCVBvcnRvIEFsZWdyZSBSUyA5MDIyMC0wNDAKKwkJCQlCUkFaSUwKKworMDAtMjYtQTUgICAoaGV4KQkJTUlDUk9ST0JPVC5DTy4sTFRECiswMDI2QTUgICAgIChiYXNlIDE2KQkJTUlDUk9ST0JPVC5DTy4sTFRECisJCQkJMTY3LTMgR3VuZ3B5ZW9uZy1yaQorCQkJCURvY2hlb2stbXllb24KKwkJCQlHd2FuZ2p1LXNpIEd5ZW9uZ2dpLURvIDQ2NC04ODEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtQTYgICAoaGV4KQkJVFJJWEVMTAorMDAyNkE2ICAgICAoYmFzZSAxNikJCVRSSVhFTEwKKwkJCQk0NjAsIFJ1ZSBkdSBwb21tYXJpbgorCQkJCU1PSVJBTlMgIDM4MjEwCisJCQkJRlJBTkNFCisKKzAwLTI2LUE3ICAgKGhleCkJCUNPTk5FQ1QgU1JMCiswMDI2QTcgICAgIChiYXNlIDE2KQkJQ09OTkVDVCBTUkwKKwkJCQlWaWEgQ2VybmFpYSwgMTEKKwkJCQlNaWxhbiAgMjAxMjEKKwkJCQlJVEFMWQorCiswMC0yNi1BOCAgIChoZXgpCQlEQUVIQVAgSFlQRVItVEVDSAorMDAyNkE4ICAgICAoYmFzZSAxNikJCURBRUhBUCBIWVBFUi1URUNICisJCQkJTWVnYSBjZW50ZXIgIzExMDgsIFNLIFRlY2huby1QYXJrLCAjMTkwLTEsIFNhbmdkYWV3b24tRG9uZywgSnVuZ3dvbi1HdQorCQkJCVNlb25nbmFtIEd5ZW9uZ2dpLURvIDQ2Mi04MDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtQTkgICAoaGV4KQkJU3Ryb25nIFRlY2hub2xvZ2llcyBQdHkgTHRkCiswMDI2QTkgICAgIChiYXNlIDE2KQkJU3Ryb25nIFRlY2hub2xvZ2llcyBQdHkgTHRkCisJCQkJNjAgV2VkZ2V3b29kIFJvYWQKKwkJCQlIYWxsYW0gVmljdG9yaWEgMzgwMworCQkJCUFVU1RSQUxJQQorCiswMC0yNi1BQSAgIChoZXgpCQlLZW5tZWMgTWVjaGFuaWNhbCBFbmdpbmVlcmluZyBDby4sIEx0ZC4KKzAwMjZBQSAgICAgKGJhc2UgMTYpCQlLZW5tZWMgTWVjaGFuaWNhbCBFbmdpbmVlcmluZyBDby4sIEx0ZC4KKwkJCQkzRiwgTm8uIDk3LCBTZWMuMiBOYW4tS2FuZyBSZC4sCisJCQkJVGFpcGVpICAxMTU3OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtQUIgICAoaGV4KQkJU0VJS08gRVBTT04gQ09SUE9SQVRJT04KKzAwMjZBQiAgICAgKGJhc2UgMTYpCQlTRUlLTyBFUFNPTiBDT1JQT1JBVElPTgorCQkJCTMtMy01IE9XQQorCQkJCVNVV0EtU0hJIE5BR0FOTy1LRU4gMzkyLTg1MDIKKwkJCQlKQVBBTgorCiswMC0yNi1BQyAgIChoZXgpCQlTaGFuZ2hhaSBMVVNURVIgVGVyYWJhbmQgcGhvdG9uaWMgQ28uLCBMdGQuCiswMDI2QUMgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgTFVTVEVSIFRlcmFiYW5kIHBob3RvbmljIENvLiwgTHRkLgorCQkJCUY0LCBOby4zOSBDaGVuZ1pob25nIFJkLgorCQkJCUppYURpbmcgRGlzdHJpY3QKKwkJCQlTaGFuZ2hhaSAgMjAxODAwCisJCQkJQ0hJTkEKKworMDAtMjYtQUQgICAoaGV4KQkJQXJhZGEgU3lzdGVtcywgSW5jLgorMDAyNkFEICAgICAoYmFzZSAxNikJCUFyYWRhIFN5c3RlbXMsIEluYy4KKwkJCQkxMDI0IE1vcnNlIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQUUgICAoaGV4KQkJV2lyZWxlc3MgTWVhc3VyZW1lbnQgTHRkCiswMDI2QUUgICAgIChiYXNlIDE2KQkJV2lyZWxlc3MgTWVhc3VyZW1lbnQgTHRkCisJCQkJVGhlIENyZXNjZW50CisJCQkJRU1TV09SVEggIFBPMTAgOEpTCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjYtQUYgICAoaGV4KQkJRHVlbGNvIEEvUworMDAyNkFGICAgICAoYmFzZSAxNikJCUR1ZWxjbyBBL1MKKwkJCQlNb21tYXJrdmVqIDUKKwkJCQlWb2xsZXJ1cAorCQkJCVNvZW5kZXJib3JnIFNvZW5kZXJqeWxsYW5kIERLNjQwMAorCQkJCURFTk1BUksKKworMDAtMjYtQjAgICAoaGV4KQkJQXBwbGUsIEluYworMDAyNkIwICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUIxICAgKGhleCkJCU5hdmlzIEF1dG8gTW90aXZlIFN5c3RlbXMsIEluYy4KKzAwMjZCMSAgICAgKGJhc2UgMTYpCQlOYXZpcyBBdXRvIE1vdGl2ZSBTeXN0ZW1zLCBJbmMuCisJCQkJM3JkIEZMT09SLCBIWVVOREFJIEFRVUEgUEFMQUNFIDc4NSwgV09PIDEtRE9ORywgSEFFVU5EQUVHVQorCQkJCUJVU0FOICA2MTItODIyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LUIyICAgKGhleCkJCVNldHJpeCBBRworMDAyNkIyICAgICAoYmFzZSAxNikJCVNldHJpeCBBRworCQkJCVRoZXJlc2llbnN0cmFzc2UgNi04CisJCQkJTXVlbmNoZW4gQmF5ZXJuIDgwMzMzCisJCQkJR0VSTUFOWQorCiswMC0yNi1CMyAgIChoZXgpCQlUaGFsZXMgQ29tbXVuaWNhdGlvbnMgSW5jCiswMDI2QjMgICAgIChiYXNlIDE2KQkJVGhhbGVzIENvbW11bmljYXRpb25zIEluYworCQkJCTIyNjA1IEdhdGV3YXkgQ2VudGVyIERyaXZlCisJCQkJQ2xhcmtzYnVyZyBNRCAyMDg3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQjQgICAoaGV4KQkJRm9yZCBNb3RvciBDb21wYW55CiswMDI2QjQgICAgIChiYXNlIDE2KQkJRm9yZCBNb3RvciBDb21wYW55CisJCQkJMjAzMDAgUm90dW5kYSBEcml2ZQorCQkJCUJ1aWxkaW5nICM1LCAyRTA5OQorCQkJCURlYXJib3JuIE1JIDQ4MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1CNSAgIChoZXgpCQlJQ09NTSBUZWxlIEx0ZAorMDAyNkI1ICAgICAoYmFzZSAxNikJCUlDT01NIFRlbGUgTHRkCisJCQkJMzA0LCBUcmVuZHNldCBUb3dlcnMsCisJCQkJUmFvZCAjIDIsIEJhbmphcmEgSGlsbHMKKwkJCQlIeWRlcmFiYWQgQVAgNTAwMDM0CisJCQkJSU5ESUEKKworMDAtMjYtQjYgICAoaGV4KQkJQXNrZXkgQ29tcHV0ZXIKKzAwMjZCNiAgICAgKGJhc2UgMTYpCQlBc2tleSBDb21wdXRlcgorCQkJCTEwRixOTy4xMTksQ0hJRU5LQU5HIFJELENIVU5HLUhPCisJCQkJVEFJUEVJICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LUI3ICAgKGhleCkJCUtpbmdzdG9uIFRlY2hub2xvZ3kgQ29tcGFueSwgSW5jLgorMDAyNkI3ICAgICAoYmFzZSAxNikJCUtpbmdzdG9uIFRlY2hub2xvZ3kgQ29tcGFueSwgSW5jLgorCQkJCTE3NjAwIE5ld2hvcGUgU3QuCisJCQkJRm91bnRhaW4gVmFsbGV5IENBIDkyNzA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1COCAgIChoZXgpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworMDAyNkI4ICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1COSAgIChoZXgpCQlEZWxsIEluYworMDAyNkI5ICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1CQSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyNkJBICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4sIFVTIDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1CQiAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDI2QkIgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyAgQ0EKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUJDICAgKGhleCkJCUdlbmVyYWwgSmFjayBUZWNobm9sb2d5IEx0ZC4KKzAwMjZCQyAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIEphY2sgVGVjaG5vbG9neSBMdGQuCisJCQkJVGhlIEFyZWEgb2YgQWRtaW5pc3RyYXRpb24gb2YgTGlhbiBCZWksCisJCQkJQ2hhbmcgUGluZworCQkJCURvbmcgR3VhbiBHdWFuZyBEb25nIDUyMzU4MAorCQkJCUNISU5BCisKKzAwLTI2LUJEICAgKGhleCkJCUpURUMgQ2FyZCAmIENvbW11bmljYXRpb24gQ28uLCBMdGQuCiswMDI2QkQgICAgIChiYXNlIDE2KQkJSlRFQyBDYXJkICYgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKwkJCQlEYWJvIEJsZGcsIDRGLCA2MS0xLCBHeWVzdS1kb25nLCBTb3NhLWd1CisJCQkJQnVjaGVvbiBHeXVuZ2dpLWRvIDQyMi0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtQkUgICAoaGV4KQkJU2Nob29uZGVyYmVlayBFbGVrdHJvbmljYSBTeXN0ZW1lbiBCLlYuCiswMDI2QkUgICAgIChiYXNlIDE2KQkJU2Nob29uZGVyYmVlayBFbGVrdHJvbmljYSBTeXN0ZW1lbiBCLlYuCisJCQkJUm9nZ2VzdHJhYXQgMy01CisJCQkJTmlldXcgVmVubmVwIE5vb3JkIEhvbGxhbmQgMjE1M0dDCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjYtQkYgICAoaGV4KQkJU2hlblpoZW4gVGVtb2JpIFNjaWVuY2UmVGVjaCBEZXZlbG9wbWVudCBDby4sTHRkCiswMDI2QkYgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gVGVtb2JpIFNjaWVuY2UmVGVjaCBEZXZlbG9wbWVudCBDby4sTHRkCisJCQkJNEZsb29yRywgSmlucnVuIFRvd2VyLCA2MDE5IFNoZW5uYW4gUm9hZAorCQkJCUZ1VGlhbiBEaXN0cmljdAorCQkJCVNoZW5aaGVuICA1MTgwMDAKKwkJCQlDSElOQQorCiswMC0yNi1DMCAgIChoZXgpCQlFbmVyZ3lIdWIKKzAwMjZDMCAgICAgKGJhc2UgMTYpCQlFbmVyZ3lIdWIKKwkJCQkyMzIgM3JkIFN0IEMyMDEKKwkJCQlCcm9va2x5biBOWSAxMTIxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQzEgICAoaGV4KQkJQVJUUkFZIENPLiwgTFRELgorMDAyNkMxICAgICAoYmFzZSAxNikJCUFSVFJBWSBDTy4sIExURC4KKwkJCQk1RiBVZW5vIEJsZGcsIDEtMTctNSBLb3Vlbmppa2l0YSwKKwkJCQlTdWdpbmFtaS1rdSwKKwkJCQlUb2t5byAgMTY2LTAwMDIKKwkJCQlKQVBBTgorCiswMC0yNi1DMiAgIChoZXgpCQlTQ0RJIENvLiBMVEQKKzAwMjZDMiAgICAgKGJhc2UgMTYpCQlTQ0RJIENvLiBMVEQKKwkJCQkjNDUxLCBIYWdhbC1Eb25nLCBHaWhldW5nLUd1LAorCQkJCVlvbmdpbi1TaSBHeWVvbmdnaS1EbyA0NDYtOTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LUMzICAgKGhleCkJCUluc2lnaHRlayBDb3JwLgorMDAyNkMzICAgICAoYmFzZSAxNikJCUluc2lnaHRlayBDb3JwLgorCQkJCTVGLE5PLjc1NSxDaHVuZyBDaGVuZyBSZC4sCisJCQkJQ2h1bmcgSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi1DNCAgIChoZXgpCQlDYWRtb3MgbWljcm9zeXN0ZW1zIFMuci5sLgorMDAyNkM0ICAgICAoYmFzZSAxNikJCUNhZG1vcyBtaWNyb3N5c3RlbXMgUy5yLmwuCisJCQkJVmlhIFBpZXRybyBGcmF0dGluaSwgMjU1CisJCQkJUm9tYSAgMDAxNDkKKwkJCQlJVEFMWQorCiswMC0yNi1DNSAgIChoZXgpCQlHdWFuZ2RvbmcgR29zdW4gVGVsZWNvbW11bmljYXRpb25zIENvLixMdGQKKzAwMjZDNSAgICAgKGJhc2UgMTYpCQlHdWFuZ2RvbmcgR29zdW4gVGVsZWNvbW11bmljYXRpb25zIENvLixMdGQKKwkJCQlHdWFuZ2Rvbmcgc29mdHdhcmUgcGFyayBELCBOby4xMSwgQ2FpUGluZyByb2FkICwgR3Vhbmd6aG91IHNjaWVuY2UgY2l0eQorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgNTEwNjYzCisJCQkJQ0hJTkEKKworMDAtMjYtQzYgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDI2QzYgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yNi1DNyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjZDNyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTI2LUM4ICAgKGhleCkJCVN5c3RlbSBTZW5zb3IKKzAwMjZDOCAgICAgKGJhc2UgMTYpCQlTeXN0ZW0gU2Vuc29yCisJCQkJMzgyNSBPaGlvIEF2ZW51ZQorCQkJCVNhaW50IENoYXJsZXMgSUwgNjAxNzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUM5ICAgKGhleCkJCVByb3ZlbnRpeCBTeXN0ZW1zLCBJbmMuCiswMDI2QzkgICAgIChiYXNlIDE2KQkJUHJvdmVudGl4IFN5c3RlbXMsIEluYy4KKwkJCQk0NTE4IFZhbGxleWRhbGUgUm9hZAorCQkJCVN1aXRlIDIwMgorCQkJCUJpcm1pbmdoYW0gQUwgMzUyNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUNBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjZDQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1DQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI2Q0IgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQ0MgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjZDQyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MCBWCisJCQkJREVOTUFSSworCiswMC0yNi1DRCAgIChoZXgpCQlQdXJwbGVDb21tLCBJbmMuCiswMDI2Q0QgICAgIChiYXNlIDE2KQkJUHVycGxlQ29tbSwgSW5jLgorCQkJCTI2MjAgQXVndXN0aW5lIERyLiwgU3RlLiAxMDAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQ0UgICAoaGV4KQkJS296dW1pIFVTQSBDb3JwLgorMDAyNkNFICAgICAoYmFzZSAxNikJCUtvenVtaSBVU0EgQ29ycC4KKwkJCQkzMDA1IEhhcnRyaWRnZSBUZXJyYWNlCisJCQkJV2VsbGluZ3RvbiBGTCAzMzQxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQ0YgICAoaGV4KQkJREVLQSBSJkQKKzAwMjZDRiAgICAgKGJhc2UgMTYpCQlERUtBIFImRAorCQkJCTM0MCBDb21tZXJjaWFsIFN0cmVldAorCQkJCU1hbmNoZXN0ZXIgTkggMDMxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUQwICAgKGhleCkJCVNlbWloYWxmCiswMDI2RDAgICAgIChiYXNlIDE2KQkJU2VtaWhhbGYKKwkJCQl1bC4gUmFjaWJvcnNrYSAxNUQvMzIKKwkJCQlLcmFrb3cgIDMwLTM4NAorCQkJCVBPTEFORAorCiswMC0yNi1EMSAgIChoZXgpCQlTIFNxdWFyZWQgSW5ub3ZhdGlvbnMgSW5jLgorMDAyNkQxICAgICAoYmFzZSAxNikJCVMgU3F1YXJlZCBJbm5vdmF0aW9ucyBJbmMuCisJCQkJNjgwNy0xMDQgU3RyZWV0CisJCQkJRWRtb250b24gQUIgVDZIIDJMNQorCQkJCUNBTkFEQQorCiswMC0yNi1EMiAgIChoZXgpCQlQY3ViZSBTeXN0ZW1zLCBJbmMuCiswMDI2RDIgICAgIChiYXNlIDE2KQkJUGN1YmUgU3lzdGVtcywgSW5jLgorCQkJCTE4NTcgTydUb29sZSBMYW5lCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUQzICAgKGhleCkJCVplbm8gSW5mb3JtYXRpb24gU3lzdGVtCiswMDI2RDMgICAgIChiYXNlIDE2KQkJWmVubyBJbmZvcm1hdGlvbiBTeXN0ZW0KKwkJCQkjMTQwNCBBLURvbmcgRGlnaXRhbCBFbXBpcmUgQmxkZywgOTgwLTMsIFlvdW5ndG9uZy1kb25nLCBZb3VuZ3RvbmctZ3UKKwkJCQlTdXdvbiBDaXR5IEd5ZW9uZ2dpLURvIDQ0My03MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtRDQgICAoaGV4KQkJSVJDQSBTcEEKKzAwMjZENCAgICAgKGJhc2UgMTYpCQlJUkNBIFNwQQorCQkJCVZpYWxlIFZlbmV6aWEgMzEgLSBDLlAuIDI0OAorCQkJCVNhbiBWZW5kZW1pYW5vIChUcmV2aXNvKSBJdGFseSAzMTAyMAorCQkJCUlUQUxZCisKKzAwLTI2LUQ1ICAgKGhleCkJCU9yeSBTb2x1Y29lcyBlbSBDb21lcmNpbyBkZSBJbmZvcm1hdGljYSBMdGRhLgorMDAyNkQ1ICAgICAoYmFzZSAxNikJCU9yeSBTb2x1Y29lcyBlbSBDb21lcmNpbyBkZSBJbmZvcm1hdGljYSBMdGRhLgorCQkJCUF2LiBVbmlzaW5vcywgNjE1CisJCQkJU2FvIExlb3BvbGRvIFJTIDkzMDIyMDAwCisJCQkJQlJBWklMCisKKzAwLTI2LUQ2ICAgKGhleCkJCU5pbmdibyBBbmR5IE9wdG9lbGVjdHJvbmljIENvLiwgTHRkLgorMDAyNkQ2ICAgICAoYmFzZSAxNikJCU5pbmdibyBBbmR5IE9wdG9lbGVjdHJvbmljIENvLiwgTHRkLgorCQkJCUxhbmppYW5nIFN0cmVldCBJbmR1c3RyaWFsIFpvbmUKKwkJCQlZdXlhbyBaaGVqaWFuZyAzMTU0MDAKKwkJCQlDSElOQQorCiswMC0yNi1ENyAgIChoZXgpCQlYaWFtZW4gQkIgRWxlY3Ryb24gJiBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAyNkQ3ICAgICAoYmFzZSAxNikJCVhpYW1lbiBCQiBFbGVjdHJvbiAmIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMzAzLCBBbmd5ZSBCdWlsZGluZywgVG9yY2ggSGlnaC10ZWNoIERldmVsb3BtZW50IFpvbmUKKwkJCQlYaWFtZW4gRnVqaWFuIDM2MTAwOQorCQkJCUNISU5BCisKKzAwLTI2LUQ4ICAgKGhleCkJCU1hZ2ljIFBvaW50IEluYy4KKzAwMjZEOCAgICAgKGJhc2UgMTYpCQlNYWdpYyBQb2ludCBJbmMuCisJCQkJU3VpdGUgMjAzLCBCdWlsZGluZyAxNywgTm8uIDI5NSBMaW4gTmFuIFJvYWQsIFB1ZG9uZyBTb2Z0d2FyZSBQYXJrIFNhbmxpbiBXb3JsZCBFeHBvIEJsb2NrCisJCQkJU2hhbmdoYWkgIDIwMDAxMjYKKwkJCQlDSElOQQorCiswMC0yNi1EOSAgIChoZXgpCQlQYWNlIHBsYworMDAyNkQ5ICAgICAoYmFzZSAxNikJCVBhY2UgcGxjCisJCQkJU2FsdHMgTWlsbAorCQkJCVZpY3RvcmlhIFJvYWQKKwkJCQlCcmFkZm9yZCBXZXN0IFlvcmtzaGlyZSBCRDE4IDNMRgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI2LURBICAgKGhleCkJCVVuaXZlcnNhbCBNZWRpYSBDb3Jwb3JhdGlvbiAvU2xvdmFraWEvIHMuci5vLgorMDAyNkRBICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBNZWRpYSBDb3Jwb3JhdGlvbiAvU2xvdmFraWEvIHMuci5vLgorCQkJCU1pY2tpZXdpY3pvdmEgNzEwNC8xNAorCQkJCUJyYXRpc2xhdmEgIDgxMSAwNworCQkJCVNMT1ZBS0lBCisKKzAwLTI2LURCICAgKGhleCkJCUlvbmljcyBFTVMgSW5jLgorMDAyNkRCICAgICAoYmFzZSAxNikJCUlvbmljcyBFTVMgSW5jLgorCQkJCUNhcm1lbHJheSBJbmR1c3RyaWFsIFBhcmsgMiwgQnJneS4gVHVsbworCQkJCUNhbGFtYmEgTGFndW5hIDQwMjcKKwkJCQlQSElMSVBQSU5FUworCiswMC0yNi1EQyAgIChoZXgpCQlPcHRpY2FsIFN5c3RlbXMgRGVzaWduCiswMDI2REMgICAgIChiYXNlIDE2KQkJT3B0aWNhbCBTeXN0ZW1zIERlc2lnbgorCQkJCTcvMSBWdWtvIFBsYWNlCisJCQkJV2Fycmlld29vZCBOU1cgMjEwMgorCQkJCUFVU1RSQUxJQQorCiswMC0yNi1ERCAgIChoZXgpCQlGaXZhbCBDb3Jwb3JhdGlvbgorMDAyNkREICAgICAoYmFzZSAxNikJCUZpdmFsIENvcnBvcmF0aW9uCisJCQkJcm9vbSAyMDEtNyBzYWdpdHRhcml1cyBCCisJCQkJd3V4aSBzb2Z0d2FyZSBwYXJrCisJCQkJamlhbmdzdSBwcm92aW5jZSAyMTQwMjgKKwkJCQlDSElOQQorCiswMC0yNi1ERSAgIChoZXgpCQlGREkgTUFURUxFQworMDAyNkRFICAgICAoYmFzZSAxNikJCUZESSBNQVRFTEVDCisJCQkJUm91dGUgZGUgc2FpbnQgc3ltcGhvcmllbgorCQkJCUJQIDY5CisJCQkJTGVzIGxhbmRlcyBHZW51c3NvbiAgODUxMzAKKwkJCQlGUkFOQ0UKKworMDAtMjYtREYgICAoaGV4KQkJVGFpRG9jIFRlY2hub2xvZ3kgQ29ycC4KKzAwMjZERiAgICAgKGJhc2UgMTYpCQlUYWlEb2MgVGVjaG5vbG9neSBDb3JwLgorCQkJCTdGLCBOby4gMTI3LCBXdWdvbmcgMm5kIFJkLiwgMjQ4ODggV3VndSBUb3duc2hpcAorCQkJCVRhaXBlaSBDb3VudHkgVGFpd2FuIDI0ODg4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi1FMCAgIChoZXgpCQlBU0lURVEKKzAwMjZFMCAgICAgKGJhc2UgMTYpCQlBU0lURVEKKwkJCQk1RiwgRE9OR1lPVU5HIEJsZGcsMzgyLTYsWWF0YXAgZG9uZworCQkJCUJ1bmRhbmcgR3UsCisJCQkJU3VuZyBOYW0gc2kgS3lvdW5nZ2ktZG8gNDYzLTgyNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1FMSAgIChoZXgpCQlTdGFuZm9yZCBVbml2ZXJzaXR5LCBPcGVuRmxvdyBHcm91cAorMDAyNkUxICAgICAoYmFzZSAxNikJCVN0YW5mb3JkIFVuaXZlcnNpdHksIE9wZW5GbG93IEdyb3VwCisJCQkJMzUzIFNlcnJhIE1hbGwKKwkJCQlFRSAtIENvbXB1dGVyIFN5c3RlbXMgTGFib3JhdG9yeQorCQkJCVN0YW5mb3JkIENBIDk0MzA1LTkwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUUyICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzCiswMDI2RTIgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MKKwkJCQk2MC0zOSxHYXNhbi1kb25nLEd1bWNoZW9uLWd1CisJCQkJU2VvdWwgIDE1My0wMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtRTMgICAoaGV4KQkJRFRJCiswMDI2RTMgICAgIChiYXNlIDE2KQkJRFRJCisJCQkJUnVlIGRlIGxhIGdhcmUsIDM1CisJCQkJTkFOSU5ORSBOQU1VUiA1MTAwCisJCQkJQkVMR0lVTQorCiswMC0yNi1FNCAgIChoZXgpCQlDQU5BTCBPVkVSU0VBUworMDAyNkU0ICAgICAoYmFzZSAxNikJCUNBTkFMIE9WRVJTRUFTCisJCQkJNDggcXVhaSBkdSBwb2ludCBkdSBqb3VyCisJCQkJQm91bG9nbmUtQmlsbGFuY291cnQgIDkyNjU5CisJCQkJRlJBTkNFCisKKzAwLTI2LUU1ICAgKGhleCkJCUFFRyBQb3dlciBTb2x1dGlvbnMKKzAwMjZFNSAgICAgKGJhc2UgMTYpCQlBRUcgUG93ZXIgU29sdXRpb25zCisJCQkJRW1pbCBTaWVwbWFubnN0ci4gMzIKKwkJCQlXYXJzdGVpbiBOUlcgNTk1ODEKKwkJCQlHRVJNQU5ZCisKKzAwLTI2LUU2ICAgKGhleCkJCVZpc2lvbmhpdGVjaCBDby4sIEx0ZC4KKzAwMjZFNiAgICAgKGJhc2UgMTYpCQlWaXNpb25oaXRlY2ggQ28uLCBMdGQuCisJCQkJVmlzaW9uIGJsZGcuIDE1MC0zCisJCQkJU2ltZ29rLURvbmcsIFdvbm1pLUt1CisJCQkJQnVjaG9uIEt5dW5nZ2ktRG8gNDIwLTgyMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1FNyAgIChoZXgpCQlTaGFuZ2hhaSBPTkxBTiBDb21tdW5pY2F0aW9uIFRlY2guIENvLiwgTHRkLgorMDAyNkU3ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIE9OTEFOIENvbW11bmljYXRpb24gVGVjaC4gQ28uLCBMdGQuCisJCQkJM0YsIDZDLCBOby4gMTY1OCwgR3VtZWkgUm9hZCwgWHVodWkgRGlzdHJpY3QKKwkJCQlTaGFuZ2hhaSAgMjAwMjMzCisJCQkJQ0hJTkEKKworMDAtMjYtRTggICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCiswMDI2RTggICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJMTAtMSwgSGlnYXNoaWtvdGFyaSAxLWNob21lCisJCQkJTmFnYW9rYWt5by1zaGkgS3lvdG8gNjE3LTg1NTUKKwkJCQlKQVBBTgorCiswMC0yNi1FOSAgIChoZXgpCQlTUCBDb3JwCiswMDI2RTkgICAgIChiYXNlIDE2KQkJU1AgQ29ycAorCQkJCUd1cm8gMy1kb25nICxHdXJvLWd1CisJCQkJQWNlIFRlY2hubyA4IENoYSAxMzA1CisJCQkJU2VvdWwgIDE1Mi03ODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtRUEgICAoaGV4KQkJQ2hlZXJjaGlwIEVsZWN0cm9uaWMgVGVjaG5vbG9neSAoU2hhbmdIYWkpIENvLiwgTHRkLgorMDAyNkVBICAgICAoYmFzZSAxNikJCUNoZWVyY2hpcCBFbGVjdHJvbmljIFRlY2hub2xvZ3kgKFNoYW5nSGFpKSBDby4sIEx0ZC4KKwkJCQlST09NIDEyMDIsIE5PLiA1MSwgNyBBcmVhLCBOTy4gMTQ2NyBDQU9CQU8gUk9BRDsKKwkJCQlNSU5IQU5HIEFSRUEKKwkJCQlTSEFOR0hBSSAgMjAxMTAxCisJCQkJQ0hJTkEKKworMDAtMjYtRUIgICAoaGV4KQkJQWR2YW5jZWQgU3BlY3RydW0gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMjZFQiAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBTcGVjdHJ1bSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTFGLiwgTm8uNjcgSmhvbmdqaGVuZyBSZC4KKwkJCQlTaW5qaHVhbmcgVGFpd2FuIDI0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtRUMgICAoaGV4KQkJTGVncmFuZCBIb21lIFN5c3RlbXMsIEluYworMDAyNkVDICAgICAoYmFzZSAxNikJCUxlZ3JhbmQgSG9tZSBTeXN0ZW1zLCBJbmMKKwkJCQkzMDEgRnVsbGluZyBNaWxsIFJkCisJCQkJU3VpdGUgRworCQkJCU1pZGRsZXRvd24gUEEgMTcwNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUVEICAgKGhleCkJCXp0ZSBjb3Jwb3JhdGlvbgorMDAyNkVEICAgICAoYmFzZSAxNikJCXp0ZSBjb3Jwb3JhdGlvbgorCQkJCTEyL0YgenRlIHBsYXphLGtlamkgUm9hZCBTb3V0aCxISS1UZWNoIEluZHVzdHJpYWwgUGFyayxOYW5zaGFuIERpc3RyaWN0CisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTI2LUVFICAgKGhleCkJCVRLTSBHbWJICiswMDI2RUUgICAgIChiYXNlIDE2KQkJVEtNIEdtYkgKKwkJCQlTY2hsb3Nzc3RyYXNzZSAxMjMKKwkJCQlNb25jaGVuZ2xhZGJhY2ggTlJXIDQxMjM4CisJCQkJR0VSTUFOWQorCiswMC0yNi1FRiAgIChoZXgpCQlUZWNobm9sb2d5IEFkdmFuY2VtZW50IEdyb3VwLCBJbmMuCiswMDI2RUYgICAgIChiYXNlIDE2KQkJVGVjaG5vbG9neSBBZHZhbmNlbWVudCBHcm91cCwgSW5jLgorCQkJCTIyMzU1IFRhZyBXYXkKKwkJCQlEdWxsZXMgVkEgMjAxNjYtOTMxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtRjAgICAoaGV4KQkJY1RyaXhzIEludGVybmF0aW9uYWwgR21iSC4KKzAwMjZGMCAgICAgKGJhc2UgMTYpCQljVHJpeHMgSW50ZXJuYXRpb25hbCBHbWJILgorCQkJCUxpZWZlcmluZ2VyIEhhdXB0c3RyLiAxNDAKKwkJCQlTYWx6YnVyZyBTYWx6YnVyZyA1MDIwCisJCQkJQVVTVFJJQQorCiswMC0yNi1GMSAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCiswMDI2RjEgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQuCisJCQkJUm9zZXZpbGxlIENhbGlmb3JuaWEgOTU3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUYyICAgKGhleCkJCU5ldGdlYXIKKzAwMjZGMiAgICAgKGJhc2UgMTYpCQlOZXRnZWFyCisJCQkJMzUwIEVhc3QgUGx1bWVyaWEgRHJpdmUKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1GMyAgIChoZXgpCQlTTUMgTmV0d29ya3MKKzAwMjZGMyAgICAgKGJhc2UgMTYpCQlTTUMgTmV0d29ya3MKKwkJCQkyMCBNYXNvbgorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtRjQgICAoaGV4KQkJTmVzc2xhYgorMDAyNkY0ICAgICAoYmFzZSAxNikJCU5lc3NsYWIKKwkJCQk0ODktMiBNYWV0YW4gMy1kb25nLCBZZW9uZyBUb25nLWd1CisJCQkJU3V3b24tc2kgR3llb25nZ2ktZG8gNDQzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1GNSAgIChoZXgpCQlYUlBMVVMgSW5jLgorMDAyNkY1ICAgICAoYmFzZSAxNikJCVhSUExVUyBJbmMuCisJCQkJIzgwNSBBY2UgVGVjaG5vIFRvd2VyIDJuZCAxOTctMTcKKwkJCQlHdXJvM0RvbmcsIEd1cm8tR3UKKwkJCQlTZW91bCAgMTUyLTc2NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1GNiAgIChoZXgpCQlNaWxpdGFyeSBDb21tdW5pY2F0aW9uIEluc3RpdHV0ZQorMDAyNkY2ICAgICAoYmFzZSAxNikJCU1pbGl0YXJ5IENvbW11bmljYXRpb24gSW5zdGl0dXRlCisJCQkJdWwuIFdhcnN6YXdza2EgMjJBCisJCQkJWmVncnplICAwNS0xMzAKKwkJCQlQT0xBTkQKKworMDAtMjYtRjcgICAoaGV4KQkJSW5mb3N5cyBUZWNobm9sb2dpZXMgTHRkLgorMDAyNkY3ICAgICAoYmFzZSAxNikJCUluZm9zeXMgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQk0NCwgRWxlY3Ryb25pY3MgQ2l0eQorCQkJCUhvc3VyIFJvYWQKKwkJCQlCYW5nYWxvcmUgS2FybmFrYXRhIDU2MDEwMAorCQkJCUlORElBCisKKzAwLTI2LUY4ICAgKGhleCkJCUdvbGRlbiBIaWdod2F5IEluZHVzdHJ5IERldmVsb3BtZW50IENvLiwgTHRkLgorMDAyNkY4ICAgICAoYmFzZSAxNikJCUdvbGRlbiBIaWdod2F5IEluZHVzdHJ5IERldmVsb3BtZW50IENvLiwgTHRkLgorCQkJCUZsb29yIDcsIEJsb2NrIDgsIFZpc2lvbiBTaGVuemhlbiBCdXNpbmVzcyBQYXJrLCBOby45IEdhb3hpbiA5dGggU291dGggUm9hZAorCQkJCVNoZW56aGVuIEhpLXRlY2ggSW5kdXN0cmlhbCBQYXJrLCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gQ2l0eSBHdWFuZ2RvbmcgUHJvdmluY2UgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjYtRjkgICAoaGV4KQkJUy5FLk0uIHNybAorMDAyNkY5ICAgICAoYmFzZSAxNikJCVMuRS5NLiBzcmwKKwkJCQl2aWEgTGVjY28sIDYxCisJCQkJVmltZXJjYXRlIE1vbnphIEJyaWFuemEgMjAwNTkKKwkJCQlJVEFMWQorCiswMC0yNi1GQSAgIChoZXgpCQlCYW5kUmljaCBJbmMuCiswMDI2RkEgICAgIChiYXNlIDE2KQkJQmFuZFJpY2ggSW5jLgorCQkJCTdGLiwgTm8uMTg4LCBCYW9jaWFvIFJvYWQKKwkJCQlTaW5kaWFuIENpdHkgVGFpcGVpIDIzMTQ1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi1GQiAgIChoZXgpCQlBaXJEaW8gV2lyZWxlc3MsIEluYy4KKzAwMjZGQiAgICAgKGJhc2UgMTYpCQlBaXJEaW8gV2lyZWxlc3MsIEluYy4KKwkJCQkxMy01LCBOby4gNzksIFNlYy4gMSwgSHNpbiBUYWkgV3UgUm9hZAorCQkJCUhzaWNoaWggQ2l0eSwgVGFpcGVpIENvdW50eSBUYWl3YW4gMjIxMDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LUZDICAgKGhleCkJCUFjU2lQIFRlY2hub2xvZ3kgQ29ycC4KKzAwMjZGQyAgICAgKGJhc2UgMTYpCQlBY1NpUCBUZWNobm9sb2d5IENvcnAuCisJCQkJM0YuLCBOby4yMiwgRGFsaW4gUmQuLAorCQkJCVRhb3l1YW4gQ2l0eSwgVGFveXVhbiBDb3VudHkgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi1GRCAgIChoZXgpCQlJbnRlcmFjdGl2ZSBJbnRlbGxpZ2VuY2UKKzAwMjZGRCAgICAgKGJhc2UgMTYpCQlJbnRlcmFjdGl2ZSBJbnRlbGxpZ2VuY2UKKwkJCQk3NjAxIEludGVyYWN0aXZlIFdheQorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtRkUgICAoaGV4KQkJTUtEIFRlY2hub2xvZ3kgSW5jLgorMDAyNkZFICAgICAoYmFzZSAxNikJCU1LRCBUZWNobm9sb2d5IEluYy4KKwkJCQkgUi5COCwgTm8uMSBMaXNpbmcgMXN0ICBSZC4sCisJCQkJSHNpbmNodSAgMzAwNzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LUZGICAgKGhleCkJCVJlc2VhcmNoIEluIE1vdGlvbgorMDAyNkZGICAgICAoYmFzZSAxNikJCVJlc2VhcmNoIEluIE1vdGlvbgorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCiswMC0yNy0wMCAgIChoZXgpCQlTaGVuemhlbiBTaWdsZW50IFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDI3MDAgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gU2lnbGVudCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCUJVSUxESU5HIEE4LFRBTkdMQU5HIElORFVTVFJJQUwgWk9ORSxYSUxJLE5BTlNIQU4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworMDAtMjctMDEgICAoaGV4KQkJSU5DT3N0YXJ0ZWMgR21iSAorMDAyNzAxICAgICAoYmFzZSAxNikJCUlOQ09zdGFydGVjIEdtYkgKKwkJCQlSaGVpbnN0ci4gMTcKKwkJCQlUZWx0b3cgR2VybWFueSAxNDUxMworCQkJCUdFUk1BTlkKKworMDAtMjctMDIgICAoaGV4KQkJU29sYXJFZGdlIFRlY2hub2xvZ2llcworMDAyNzAyICAgICAoYmFzZSAxNikJCVNvbGFyRWRnZSBUZWNobm9sb2dpZXMKKwkJCQkxIEFiYmEgRWJhbiBTdC4KKwkJCQlQT0IgMTI3NjYKKwkJCQlIZXJ6ZWxpYSAgNDY3MjUKKwkJCQlJU1JBRUwKKworMDAtMjctMDMgICAoaGV4KQkJVGVzdGVjaCBFbGVjdHJvbmljcyBQdGUgTHRkCiswMDI3MDMgICAgIChiYXNlIDE2KQkJVGVzdGVjaCBFbGVjdHJvbmljcyBQdGUgTHRkCisJCQkJQmxvY2sgMTE4LCAjMDUtMTEwLAorCQkJCUFsanVuaWVkIEF2ZSAyCisJCQkJU2luZ2Fwb3JlICAzODAxMTgKKwkJCQlTSU5HQVBPUkUKKworMDAtMjctMDQgICAoaGV4KQkJQWNjZWxlcmF0ZWQgQ29uY2VwdHMsIExMQworMDAyNzA0ICAgICAoYmFzZSAxNikJCUFjY2VsZXJhdGVkIENvbmNlcHRzLCBMTEMKKwkJCQk0MDE3IFcgRHIgTWFydGluIEx1dGhlciBLaW5nIEpyIEJsdmQKKwkJCQlUYW1wYSBGTCAzMzYxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjctMDUgICAoaGV4KQkJU2VjdHJvbmljCiswMDI3MDUgICAgIChiYXNlIDE2KQkJU2VjdHJvbmljCisJCQkJWi5JLiBMZXMgU2F1bG5pZXJzCisJCQkJU2FpbnRlLU1hdXJlIGRlIFRvdXJhaW5lICAzNzgwMAorCQkJCUZSQU5DRQorCiswMC0yNy0wNiAgIChoZXgpCQlZT0lTWVMKKzAwMjcwNiAgICAgKGJhc2UgMTYpCQlZT0lTWVMKKwkJCQkzMDktNTIgU1VOR1NVLTJHQSwgMURPTkcsIFNVTkdET05HLUdVCisJCQkJU0VPVUwgIDEzMy04MjcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjctMDcgICAoaGV4KQkJTGlmdCBDb21wbGV4IERTLCBKU0MKKzAwMjcwNyAgICAgKGJhc2UgMTYpCQlMaWZ0IENvbXBsZXggRFMsIEpTQworCQkJCW1pa3JvcmF5b24gR29yc2t5LCA2CisJCQkJTm92b3NpYmlyc2sgIDYzMDA3MworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yNy0wOCAgIChoZXgpCQlOb3JkaWFnIEFTQQorMDAyNzA4ICAgICAoYmFzZSAxNikJCU5vcmRpYWcgQVNBCisJCQkJRnJ5c2phdmVpZW4gNDAKKwkJCQlPc2xvICAwODg0CisJCQkJTk9SV0FZCisKKzAwLTI3LTA5ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyNzA5ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTI3LTBBICAgKGhleCkJCUlFRSBTLkEuCiswMDI3MEEgICAgIChiYXNlIDE2KQkJSUVFIFMuQS4KKwkJCQlaQUUgV2VpZXJnZXdhbgorCQkJCTExLCBydWUgRWRtb25kIFJldXRlcgorCQkJCUNvbnRlcm4gIEwtNTMyNgorCQkJCUxVWEVNQk9VUkcKKworMDAtMjctMEIgICAoaGV4KQkJQWR1cmEgVGVjaG5vbG9naWVzCiswMDI3MEIgICAgIChiYXNlIDE2KQkJQWR1cmEgVGVjaG5vbG9naWVzCisJCQkJMjggU2Vjb25kIFN0cmVldAorCQkJCTR0aCBGbG9vcgorCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI3LTBDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjcwQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNy0wRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI3MEQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjctMEUgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDI3MEUgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yNy0wRiAgIChoZXgpCQlFbnZpc2lvbm5vdmF0aW9uIEluYworMDAyNzBGICAgICAoYmFzZSAxNikJCUVudmlzaW9ubm92YXRpb24gSW5jCisJCQkJNCBXYXJlaGFtIERyaXZlCisJCQkJTWlzc2lzc2F1Z2EgT250YXJpbyBMNU0gMUI2CisJCQkJQ0FOQURBCisKKzAwLTI3LTEwICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAyNzEwICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMjctMTEgICAoaGV4KQkJTGFuUHJvIEluYworMDAyNzExICAgICAoYmFzZSAxNikJCUxhblBybyBJbmMKKwkJCQkxODgwIE5XIDkzQXYKKwkJCQlNaWFtaSBGbG9yaWRhIDMzMTcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNy0xMiAgIChoZXgpCQlNYXhWaXNpb24gTExDCiswMDI3MTIgICAgIChiYXNlIDE2KQkJTWF4VmlzaW9uIExMQworCQkJCTQ5NSBQcm9kdWN0aW9uIEF2ZQorCQkJCU1hZGlzb24gQUwgMzU3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI3LTEzICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAyNzEzICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTEFORSAzNTEsIFNFQy4xLCBUQUlQSU5HIFJELgorCQkJCVRTQU9UVUVOCisJCQkJTkFOVE9VIDU0MjYxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNy0xNCAgIChoZXgpCQlHcmFpbm11c3RhcmRzLCBDbyxsdGQuCiswMDI3MTQgICAgIChiYXNlIDE2KQkJR3JhaW5tdXN0YXJkcywgQ28sbHRkLgorCQkJCUhFSVdBIE1LIEJsZGcsMi00OC00LE5paG9uYmFzaGktSGFtYS1jaG8KKwkJCQlDaHVvLWt1LAorCQkJCVRva3lvICAxMDMtMDAwNworCQkJCUpBUEFOCisKKzAwLTI3LTE1ICAgKGhleCkJCVJlYm91bmQgVGVsZWNvbS4gQ28uLCBMdGQKKzAwMjcxNSAgICAgKGJhc2UgMTYpCQlSZWJvdW5kIFRlbGVjb20uIENvLiwgTHRkCisJCQkJMTJGLEJ1aWxkaW5nIE5vLjgyLE5vLjExOTgsTm9ydGggUWluemhvdSBSZCwKKwkJCQlTaGFuZ2hhaSAgMjAwMjMzCisJCQkJQ0hJTkEKKworMDAtMjctMTYgICAoaGV4KQkJQWRhY2hpLVN5b2thaSBDby4sIEx0ZC4KKzAwMjcxNiAgICAgKGJhc2UgMTYpCQlBZGFjaGktU3lva2FpIENvLiwgTHRkLgorCQkJCTIyOC0yIEhhemFtYSBNYWtpCisJCQkJRnVrdWNoaXlhbWEtc2hpIEt5b3RvIDYyMC0wOTEzCisJCQkJSkFQQU4KKworMDAtMjctMTcgICAoaGV4KQkJQ0UgRGlnaXRhbChaaGVuamlhbmcpQ28uLEx0ZAorMDAyNzE3ICAgICAoYmFzZSAxNikJCUNFIERpZ2l0YWwoWmhlbmppYW5nKUNvLixMdGQKKwkJCQlXZWkgMyBSb2FkLCBEaW5nbWFvLCBFY28uRGV2LlpvbmUsCisJCQkJSmlhbmdzdQorCQkJCVpoZW5qaWFuZyAgMjEyMDA5CisJCQkJQ0hJTkEKKworMDAtMjctMTggICAoaGV4KQkJU3V6aG91IE5FVyBTRUFVTklPTiBWaWRlbyBUZWNobm9sb2d5IENvLixMdGQKKzAwMjcxOCAgICAgKGJhc2UgMTYpCQlTdXpob3UgTkVXIFNFQVVOSU9OIFZpZGVvIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTM4MyBKaW5nbWFvIFJvYWQsIEluZHVzdHJ5IFBhcmsKKwkJCQlTdXpob3UgSmlhbmdzdSAyMTUwMjEKKwkJCQlDSElOQQorCiswMC0yNy0xOSAgIChoZXgpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKzAwMjcxOSAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQlCdWlsZGluZyA3LCBTZWNvbmQgUGFydCwgSG9uZ2h1YWxpbmcgSW5kdXN0cmlhbCBab25lLCBYaWxpIHRvd24KKwkJCQlOYW5zaGFuCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTI3LTFBICAgKGhleCkJCUdlZW5vdm8gVGVjaG5vbG9neSBMdGQuCiswMDI3MUEgICAgIChiYXNlIDE2KQkJR2Vlbm92byBUZWNobm9sb2d5IEx0ZC4KKwkJCQlVbml0IDQwMiwgNC9GLiwgVG93ZXIgSSxTSFVJIFFJTkcgTVUgSFVBIFlVQU4sCisJCQkJSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4MAorCQkJCUNISU5BCisKKzAwLTI3LTFCICAgKGhleCkJCUFsZWMgU2ljaGVyaGVpdHNzeXN0ZW1lIEdtYkgKKzAwMjcxQiAgICAgKGJhc2UgMTYpCQlBbGVjIFNpY2hlcmhlaXRzc3lzdGVtZSBHbWJICisJCQkJRnJpZWRyaWNoLUhvZWxzY2hlci1TdHJhc3NlIDM2NworCQkJCURvcnRtdW5kICA0NDMyOAorCQkJCUdFUk1BTlkKKworMDAtMjctMUMgICAoaGV4KQkJTUVSQ1VSWSBDT1JQT1JBVElPTgorMDAyNzFDICAgICAoYmFzZSAxNikJCU1FUkNVUlkgQ09SUE9SQVRJT04KKwkJCQk1MzEtNiwgR2Fqd2Fkb25nLAorCQkJCVNlb2d1CisJCQkJSW5jaGVvbiAgNDA0LTI1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNy0xRCAgIChoZXgpCQlDb21iYSBUZWxlY29tIFN5c3RlbXMgKENoaW5hKSBMdGQuCiswMDI3MUQgICAgIChiYXNlIDE2KQkJQ29tYmEgVGVsZWNvbSBTeXN0ZW1zIChDaGluYSkgTHRkLgorCQkJCTEwIFNoZW56aG91IFJvYWQKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDY2MworCQkJCUNISU5BCisKKzAwLTI3LTFFICAgKGhleCkJCVhhZ3lsIENvbW11bmljYXRpb25zCiswMDI3MUUgICAgIChiYXNlIDE2KQkJWGFneWwgQ29tbXVuaWNhdGlvbnMKKwkJCQkxNjY3IE1hcnJvbmllciBDcnQKKwkJCQlDdW1iZXJsYW5kIE9udGFyaW8gSzRDIDFDMgorCQkJCUNBTkFEQQorCiswMC0yNy0xRiAgIChoZXgpCQlNSVBSTyBFbGVjdHJvbmljcyBDby4sIEx0ZAorMDAyNzFGICAgICAoYmFzZSAxNikJCU1JUFJPIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJODE0LFBlaWthbmcgUm9hZAorCQkJCUNoaWF5aSAgNjAwOTYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI3LTIwICAgKGhleCkJCU5FVy1TT0wgQ09NCiswMDI3MjAgICAgIChiYXNlIDE2KQkJTkVXLVNPTCBDT00KKwkJCQlCdWNoZW9uIFRlY25vcGFyayA0MDMtNjAyCisJCQkJWWFrZGFlLWRvbmcgV29ubWktZ3UKKwkJCQlCdWNoZW9uIGNpdHkgS3lvdW5na2ktZG8gNDIwLTczNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNy0yMSAgIChoZXgpCQlTaGVuemhlbiBCYW9hbiBGZW5kYSBJbmR1c3RyaWFsIENvLiwgTHRkCiswMDI3MjEgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQmFvYW4gRmVuZGEgSW5kdXN0cmlhbCBDby4sIEx0ZAorCQkJCUZlbmRhIEhpLVRlY2ggUGFyaworCQkJCVpob3VzaGkgUm9hZCwgU2hpeWFuCisJCQkJQmFvYW4gU2hlbnpoZW4gNTE4MTA4CisJCQkJQ0hJTkEKKworMDAtMjctMjIgICAoaGV4KQkJVWJpcXVpdGkgTmV0d29ya3MKKzAwMjcyMiAgICAgKGJhc2UgMTYpCQlVYmlxdWl0aSBOZXR3b3JrcworCQkJCTkxIEUuIFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjctRjggICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKzAwMjdGOCAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworCQkJCTE3NDUgVGVjaG5vbG9neSBEcgorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0wMCAgIChoZXgpCQlBTExXRUxMIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMzAwMCAgICAgKGJhc2UgMTYpCQlBTExXRUxMIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQk0RiwgIzE1LCBMQU5FMywgU0VDLjIKKwkJCQlDSElFTiBLV08gTi4gUk9BRCBUQUlQRUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtMDEgICAoaGV4KQkJU01QCiswMDMwMDEgICAgIChiYXNlIDE2KQkJU01QCisJCQkJMjIsIFJVRSBERVMgQ09TTU9OQVVURVMKKwkJCQkzMTQwMCBUT1VMT1VTRQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0zMC0wMiAgIChoZXgpCQlFeHBhbmQgTmV0d29ya3MKKzAwMzAwMiAgICAgKGJhc2UgMTYpCQlFeHBhbmQgTmV0d29ya3MKKwkJCQlBdGlkaW0gVGVjaCBQYXJrLCBCbGRnLiA0CisJCQkJUC5PLiBCb3ggNTgxNDIKKwkJCQlUZWwtQXZpdiA2MTU4MCAgCisJCQkJSVNSQUVMCisKKzAwLTMwLTAzICAgKGhleCkJCVBoYXN5cyBMdGQuCiswMDMwMDMgICAgIChiYXNlIDE2KQkJUGhhc3lzIEx0ZC4KKwkJCQkjMTAwLTk0MDQgNDFzdCBBdmVudWUKKwkJCQlFZG1vbnRvbiBBbGJlcnRhIFQ2WCAxUjIgCisJCQkJQ0FOQURBCisKKzAwLTMwLTA0ICAgKGhleCkJCUxFQURURUsgUkVTRUFSQ0ggSU5DLgorMDAzMDA0ICAgICAoYmFzZSAxNikJCUxFQURURUsgUkVTRUFSQ0ggSU5DLgorCQkJCTE4RiwgTm8uMTY2LCBDaGllbi1ZaSBSb2FkCisJCQkJQ2h1bmctSG8gVGFpcGVpLAorCQkJCUhzaWVuICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTA1ICAgKGhleCkJCUZ1aml0c3UgU2llbWVucyBDb21wdXRlcnMKKzAwMzAwNSAgICAgKGJhc2UgMTYpCQlGdWppdHN1IFNpZW1lbnMgQ29tcHV0ZXJzCisJCQkJQnVlcmdlcm1laXN0ZXIgdWxyaWNoIDEwMAorCQkJCTg2MTk5IEF1Z3NidXJnICAKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLTA2ICAgKGhleCkJCVNVUEVSUE9XRVIgQ09NUFVURVIKKzAwMzAwNiAgICAgKGJhc2UgMTYpCQlTVVBFUlBPV0VSIENPTVBVVEVSCisJCQkJRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJTk8uIDIwIFdVLUdPTkcgNlRIIFJPQUQgV1UtS1UgSU5EVVNUUidMCisJCQkJVGFpcGVpIDI0OCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC0wNyAgIChoZXgpCQlPUFRJLCBJTkMuCiswMDMwMDcgICAgIChiYXNlIDE2KQkJT1BUSSwgSU5DLgorCQkJCTE0NDAgTUNDQVJUSFkgQkxWRC4KKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMDggICAoaGV4KQkJQVZJTyBESUdJVEFMLCBJTkMuCiswMDMwMDggICAgIChiYXNlIDE2KQkJQVZJTyBESUdJVEFMLCBJTkMuCisJCQkJOTU3IElORFVTVFJJQUwgUk9BRAorCQkJCVNBTiBDQVJMT1MgQ0EgOTQwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTA5ICAgKGhleCkJCVRhY2hpb24gTmV0d29ya3MsIEluYy4KKzAwMzAwOSAgICAgKGJhc2UgMTYpCQlUYWNoaW9uIE5ldHdvcmtzLCBJbmMuCisJCQkJMiBNZXJpZGlhbiBSb2FkCisJCQkJRWF0b250b3duIE5KIDA3NzI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0wQSAgIChoZXgpCQlBWlRFQ0ggRWxlY3Ryb25pY3MgUHRlIEx0ZAorMDAzMDBBICAgICAoYmFzZSAxNikJCUFaVEVDSCBFbGVjdHJvbmljcyBQdGUgTHRkCisJCQkJMzEgVUJJIFJPQUQgMQorCQkJCUFaVEVDSCBCVUlMRElORworCQkJCTQwODY5NAorCQkJCVNJTkdBUE9SRQorCiswMC0zMC0wQiAgIChoZXgpCQltUEhBU0UgVGVjaG5vbG9naWVzLCBJbmMuCiswMDMwMEIgICAgIChiYXNlIDE2KQkJbVBIQVNFIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTI1MCAxNHRoIFN0cmVldAorCQkJCUdDQVRUIEJsZGcuIC0gUm9vbSAjMjQ4QQorCQkJCUF0bGFudGEgR0EgMzAzMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTBDICAgKGhleCkJCUNPTkdSVUVOQ1ksIExURC4KKzAwMzAwQyAgICAgKGJhc2UgMTYpCQlDT05HUlVFTkNZLCBMVEQuCisJCQkJMjMgSEFTSVZJTSBTVFJFRVQKKwkJCQlQT0IgNzgxMworCQkJCVBFVEFILVRJS1ZBIDQ5MTcwICAKKwkJCQlJU1JBRUwKKworMDAtMzAtMEQgICAoaGV4KQkJTU1DIFRlY2hub2xvZ3ksIEluYy4KKzAwMzAwRCAgICAgKGJhc2UgMTYpCQlNTUMgVGVjaG5vbG9neSwgSW5jLgorCQkJCSMxNTAyLCBTZW91bCBWZW50dXJlIFRvd24sIEFqdSBCbGRnCisJCQkJNjc5LTUsIFllb2tzYW0tRG9uZywgS2FuZ25hbS1HdQorCQkJCVNlb3VsIDEzNS0wODAgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC0wRSAgIChoZXgpCQlLbG90eiBEaWdpdGFsIEFHCiswMDMwMEUgICAgIChiYXNlIDE2KQkJS2xvdHogRGlnaXRhbCBBRworCQkJCUhhbnMtU3RpZXNzYmVyZ2Vyc3RyLiAyQQorCQkJCUQtODU1NDAgSGFhciAgCisJCQkJR0VSTUFOWQorCiswMC0zMC0wRiAgIChoZXgpCQlJTVQgLSBJbmZvcm1hdGlvbiBNYW5hZ2VtZW50IFQKKzAwMzAwRiAgICAgKGJhc2UgMTYpCQlJTVQgLSBJbmZvcm1hdGlvbiBNYW5hZ2VtZW50IFQKKwkJCQlHZXdlcmJlc3RyYXNzZSA4CisJCQkJQ0gtOTQ3MCBCdWNocyAgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMzAtMTAgICAoaGV4KQkJVklTSU9ORVRJQ1MgSU5URVJOQVRJT05BTAorMDAzMDEwICAgICAoYmFzZSAxNikJCVZJU0lPTkVUSUNTIElOVEVSTkFUSU9OQUwKKwkJCQkzRiwgTk8uIDMsIFBST1NQRVJJVFkgUk9BRCAxCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksgSFNJTkNIVQorCQkJCVRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTExICAgKGhleCkJCUhNUyBGSUVMREJVUyBTWVNURU1TIEFCCiswMDMwMTEgICAgIChiYXNlIDE2KQkJSE1TIEZJRUxEQlVTIFNZU1RFTVMgQUIKKwkJCQlQSUxFRkVMVFNHQVRBTiA5My05NQorCQkJCTMwMjUwIEhBTE1TU1RBRAorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC0zMC0xMiAgIChoZXgpCQlESUdJVEFMIEVOR0lORUVSSU5HIExURC4KKzAwMzAxMiAgICAgKGJhc2UgMTYpCQlESUdJVEFMIEVOR0lORUVSSU5HIExURC4KKwkJCQkyIFRSRU5DSCBST0FELCBNQUxMVVNLCisJCQkJQkVMRkFTVCBCVDM2IDRUWQorCQkJCU5PUlRIRVJOIElSRUxBTkQKKwkJCQlJUkVMQU5ECisKKzAwLTMwLTEzICAgKGhleCkJCU5FQyBDb3Jwb3JhdGlvbgorMDAzMDEzICAgICAoYmFzZSAxNikJCU5FQyBDb3Jwb3JhdGlvbgorCQkJCTEtMTAgTmlzc2hpbmNobywgRnVjaHUKKwkJCQlUb2t5byAxODMtODUwMSAgCisJCQkJSkFQQU4KKworMDAtMzAtMTQgICAoaGV4KQkJRElWSU8sIElOQy4KKzAwMzAxNCAgICAgKGJhc2UgMTYpCQlESVZJTywgSU5DLgorCQkJCTk5NyBFLiBBUlFVRVMgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0xNSAgIChoZXgpCQlDUCBDTEFSRSBDT1JQLgorMDAzMDE1ICAgICAoYmFzZSAxNikJCUNQIENMQVJFIENPUlAuCisJCQkJNzggQ0hFUlJZIEhJTEwgRFJJVkUKKwkJCQlCRVZFUkxZIE1BIDAxOTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0xNiAgIChoZXgpCQlJU0hJREEgQ08uLCBMVEQuCiswMDMwMTYgICAgIChiYXNlIDE2KQkJSVNISURBIENPLiwgTFRELgorCQkJCTk1OS0xIFNISU1PTUFHQVJJCisJCQkJUklUVE8tQ0hPIEtVUklUQS1HVU4gU0hJR0EgIDUyMC0zMDI2CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0zMC0xNyAgIChoZXgpCQlCbHVlQXJjIFVLIEx0ZAorMDAzMDE3ICAgICAoYmFzZSAxNikJCUJsdWVBcmMgVUsgTHRkCisJCQkJUXVlZW5zZ2F0ZSBIb3VzZQorCQkJCUNvb2toYW0gUm9hZAorCQkJCUJyYWNrbmVsbCAgUkcxMiAxUkIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0zMC0xOCAgIChoZXgpCQlKZXR3YXkgSW5mb3JtYXRpb24gQ28uLCBMdGQuCiswMDMwMTggICAgIChiYXNlIDE2KQkJSmV0d2F5IEluZm9ybWF0aW9uIENvLiwgTHRkLgorCQkJCTRGLCBOby4gMTY4LCBMSSBUSEUgU1QuCisJCQkJQ2h1bmcgSG8gQ2l0eSAyMzUgVGFpcGVpIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtMTkgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAzMDE5ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUgLSBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0xQSAgIChoZXgpCQlTTUFSVEJSSURHRVMgUFRFLiBMVEQuCiswMDMwMUEgICAgIChiYXNlIDE2KQkJU01BUlRCUklER0VTIFBURS4gTFRELgorCQkJCTc0NSBUb2EgUGF5b2ggTG9yb25nIDUKKwkJCQkjMDQtMDEKKwkJCQkzMTk0NTUKKwkJCQlTSU5HQVBPUkUKKworMDAtMzAtMUIgICAoaGV4KQkJU0hVVFRMRSwgSU5DLgorMDAzMDFCICAgICAoYmFzZSAxNikJCVNIVVRUTEUsIElOQy4KKwkJCQk1RiwgTm8uIDM0LCBMYW5lIDYwCisJCQkJV2VuLUh1IFN0LiwgTmVpLUh1IERpc3QuLAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC0xQyAgIChoZXgpCQlBTFRWQVRFUiBBSVJEQVRBIFNZU1RFTVMKKzAwMzAxQyAgICAgKGJhc2UgMTYpCQlBTFRWQVRFUiBBSVJEQVRBIFNZU1RFTVMKKwkJCQlHTUJIICYgQ08uIEtHCisJCQkJUklFTUVOU1RSQVNTRSAzMCA3NDkwNiBCQUQgUkFQUEVOQVUKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0zMC0xRCAgIChoZXgpCQlTS1lTVFJFQU0sIElOQy4KKzAwMzAxRCAgICAgKGJhc2UgMTYpCQlTS1lTVFJFQU0sIElOQy4KKwkJCQk0NTUgRGVHdWlnbmUgRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYtMzgzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMUUgICAoaGV4KQkJM0NPTSBFdXJvcGUgTHRkLgorMDAzMDFFICAgICAoYmFzZSAxNikJCTNDT00gRXVyb3BlIEx0ZC4KKwkJCQkzQ09NIENlbnRyZQorCQkJCUJvdW5kYXJ5IFdheSwgSGVtZWwgSGVtcHN0ZWFkCisJCQkJSGVydHMuICBIUDIgN1lVICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0zMC0xRiAgIChoZXgpCQlPUFRJQ0FMIE5FVFdPUktTLCBJTkMuCiswMDMwMUYgICAgIChiYXNlIDE2KQkJT1BUSUNBTCBORVRXT1JLUywgSU5DLgorCQkJCTE2NiBCQVlQT0lOVEUgUEFSS1dBWQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0yMCAgIChoZXgpCQlUU0ksIEluYy4uCiswMDMwMjAgICAgIChiYXNlIDE2KQkJVFNJLCBJbmMuLgorCQkJCTUwMCBDYXJkaWdhbiBSb2FkCisJCQkJU2hvcmV2aWV3IE1OIDU1MTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0yMSAgIChoZXgpCQlIU0lORyBURUNILiBFTlRFUlBSSVNFIENPLixMVEQKKzAwMzAyMSAgICAgKGJhc2UgMTYpCQlIU0lORyBURUNILiBFTlRFUlBSSVNFIENPLixMVEQKKwkJCQkyRiwgTk8uIDIyLCBBTExMRVkgMzgsIExBTkUgOTEKKwkJCQlTRUMuIDEsIE5FSSBIVSBST0FECisJCQkJVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTIyICAgKGhleCkJCUZvbmcgS2FpIEluZHVzdHJpYWwgQ28uLCBMdGQuCiswMDMwMjIgICAgIChiYXNlIDE2KQkJRm9uZyBLYWkgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKwkJCQk0Ri0zLCBOby4gMTMsIFd1IENodWFuIDFzdCBSb2FkCisJCQkJSHNpbiBDaHVhbmcgQ2l0eSwgVGFpcGVpIEhzaWVuICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTIzICAgKGhleCkJCUNPR0VOVCBDT01QVVRFUiBTWVNURU1TLCBJTkMuCiswMDMwMjMgICAgIChiYXNlIDE2KQkJQ09HRU5UIENPTVBVVEVSIFNZU1RFTVMsIElOQy4KKwkJCQkxMCBSSVZFUiBST0FEIC0gU1RFLiAjMjA1CisJCQkJVVhCUklER0UgTUEgMDE1NjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTI0ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMzAyNCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFIC1TSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0yNSAgIChoZXgpCQlDSEVDS09VVCBDT01QVVRFUiBTWVNURU1TLCBMVEQKKzAwMzAyNSAgICAgKGJhc2UgMTYpCQlDSEVDS09VVCBDT01QVVRFUiBTWVNURU1TLCBMVEQKKwkJCQlUT1dOU0VORCBGQVJNIFJPQUQKKwkJCQlIT1VHSFRPTiBSRUdJUywgRFVOU1RBQkxFIEJFREZPUkRTSElSRQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMzAtMjYgICAoaGV4KQkJSGVpVGVsIERpZ2l0YWwgVmlkZW8gR21iSAorMDAzMDI2ICAgICAoYmFzZSAxNikJCUhlaVRlbCBEaWdpdGFsIFZpZGVvIEdtYkgKKwkJCQlTdHV0aGFnZW4gMjUKKwkJCQkyNDExMyBNb2xmc2VlCisJCQkJR0VSTUFOWQorCiswMC0zMC0yNyAgIChoZXgpCQlLRVJCQU5HTywgSU5DLgorMDAzMDI3ICAgICAoYmFzZSAxNikJCUtFUkJBTkdPLCBJTkMuCisJCQkJMjE3NzEgU1RFVkVOUyBDUkVFSyBCTFZELiAjMTAwCisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0yOCAgIChoZXgpCQlGQVNFIFNhbGRhdHVyYSBzcmwKKzAwMzAyOCAgICAgKGJhc2UgMTYpCQlGQVNFIFNhbGRhdHVyYSBzcmwKKwkJCQlWLlIuIEJlcm5hcmRpIDUKKwkJCQkxMDA0MiBTdHVwaW5pcWktTmljaGVsaW5vCisJCQkJVE9SSU5PICAKKwkJCQlJVEFMWQorCiswMC0zMC0yOSAgIChoZXgpCQlPUElDT00KKzAwMzAyOSAgICAgKGJhc2UgMTYpCQlPUElDT00KKwkJCQlST09NICMzMDIsIFNUWUxFIEZBQ1RPUlkgMTUxCisJCQkJWUFUQUItRE9ORywgQlVOREFORy1HVSBTVU5HTkFNLVNJLCBLWVVORworCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTMwLTJBICAgKGhleCkJCVNPVVRIRVJOIElORk9STUFUSU9OCiswMDMwMkEgICAgIChiYXNlIDE2KQkJU09VVEhFUk4gSU5GT1JNQVRJT04KKwkJCQlTWVNURU0sIElOQy4KKwkJCQlOTy44LCBSJkQgUkQuIElWIFNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBCisJCQkJSFNJTkNIVSBUQUlXQU4sIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtMkIgICAoaGV4KQkJSU5BTFAgTkVUV09SS1MsIElOQy4KKzAwMzAyQiAgICAgKGJhc2UgMTYpCQlJTkFMUCBORVRXT1JLUywgSU5DLgorCQkJCU1FUklFRFdFRyA3CisJCQkJQ0gtMzE3MiBOSUVERVJXQU5HRU4KKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTMwLTJDICAgKGhleCkJCVNZTEFOVFJPIFNZU1RFTVMgQ09SUE9SQVRJT04KKzAwMzAyQyAgICAgKGJhc2UgMTYpCQlTWUxBTlRSTyBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJMTY4NiBERUxMIEFWRU5VRQorCQkJCUNBTVBCRUxMIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0yRCAgIChoZXgpCQlRVUFOVFVNIEJSSURHRSBDT01NVU5JQ0FUSU9OUworMDAzMDJEICAgICAoYmFzZSAxNikJCVFVQU5UVU0gQlJJREdFIENPTU1VTklDQVRJT05TCisJCQkJT05FIEhJR0ggU1RSRUVUCisJCQkJTk9SVEggQU5ET1ZFUiBNQSAwMTg0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMkUgICAoaGV4KQkJSG9mdCAmIFdlc3NlbCBBRworMDAzMDJFICAgICAoYmFzZSAxNikJCUhvZnQgJiBXZXNzZWwgQUcKKwkJCQlSb3RlbmJ1cmdlciBTdHJhc3NlIDIwCisJCQkJMzA2NTkgSGFubm92ZXIgIAorCQkJCUdFUk1BTlkKKworMDAtMzAtMkYgICAoaGV4KQkJR0UgQXZpYXRpb24gU3lzdGVtCiswMDMwMkYgICAgIChiYXNlIDE2KQkJR0UgQXZpYXRpb24gU3lzdGVtCisJCQkJMzI5MCBQYXR0ZXJzb24gQXZlLiwgUy5FLgorCQkJCUdyYW5kIFJhcGlkcyBNSSA0OTUxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMzAgICAoaGV4KQkJSEFSTU9OSVggQ09SUE9SQVRJT04KKzAwMzAzMCAgICAgKGJhc2UgMTYpCQlIQVJNT05JWCBDT1JQT1JBVElPTgorCQkJCTE3NTUgT1NHT09EIFNUUkVFVAorCQkJCU5PUlRIIEFORE9WRVIgTUEgMDE4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTMxICAgKGhleCkJCUxJR0hUV0FWRSBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDAzMDMxICAgICAoYmFzZSAxNikJCUxJR0hUV0FWRSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTI2MSBQRVBFJ1MgRkFSTSBST0FECisJCQkJTUlMRk9SRCBDVCAwNjQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMzIgICAoaGV4KQkJTWFnaWNSYW0sIEluYy4KKzAwMzAzMiAgICAgKGJhc2UgMTYpCQlNYWdpY1JhbSwgSW5jLgorCQkJCTE4NTAgQmV2ZXJseSBCbHZkLgorCQkJCUxvcyBBbmdlbGVzIENBIDkwMDU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0zMyAgIChoZXgpCQlPUklFTlQgVEVMRUNPTSBDTy4sIExURC4KKzAwMzAzMyAgICAgKGJhc2UgMTYpCQlPUklFTlQgVEVMRUNPTSBDTy4sIExURC4KKwkJCQlNSVNVTkcgQlVMRElORyAxMTUtNworCQkJCU5PTkhZVU4tRE9ORywgS0FOR01BTi1LVSBTRU9VTAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTMwLTM0ICAgKGhleCkJCVNFVCBFTkdJTkVFUklORworMDAzMDM0ICAgICAoYmFzZSAxNikJCVNFVCBFTkdJTkVFUklORworCQkJCTE1NzUwIFZJTkVZQVJEIEJMVkQuIFNURS4gIzEwMAorCQkJCU1PUkdBTiBISUxMIENBIDk1MDM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0zNSAgIChoZXgpCQlDb3JuaW5nIEluY29ycG9yYXRlZAorMDAzMDM1ICAgICAoYmFzZSAxNikJCUNvcm5pbmcgSW5jb3Jwb3JhdGVkCisJCQkJRGF0YSBDZW50ZXIKKwkJCQlNL1MgLSBTUC1XVy0wMQorCQkJCUNvcm5pbmcgTlkgMTQ4MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTM2ICAgKGhleCkJCVJNUCBFTEVLVFJPTklLU1lTVEVNRSBHTUJICiswMDMwMzYgICAgIChiYXNlIDE2KQkJUk1QIEVMRUtUUk9OSUtTWVNURU1FIEdNQkgKKwkJCQlIQU5OUy1NQVJUSU4tU0NITEUnUi1TVFIuMTItMTQKKwkJCQlELTQ3ODc3IFdJTExJQ0gtTVVOQ0hIRUlERQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLTM3ICAgKGhleCkJCVBhY2thcmQgQmVsbCBOZWMgU2VydmljZXMKKzAwMzAzNyAgICAgKGJhc2UgMTYpCQlQYWNrYXJkIEJlbGwgTmVjIFNlcnZpY2VzCisJCQkJMjk5IGF2ZW51ZSBQYXR0b24sIEJQIDY0NQorCQkJCTQ5MDA2IEFuZ2VycyBDZWRleCAwMSAgCisJCQkJRlJBTkNFCisKKzAwLTMwLTM4ICAgKGhleCkJCVhDUCwgSU5DLgorMDAzMDM4ICAgICAoYmFzZSAxNikJCVhDUCwgSU5DLgorCQkJCTQwIEVMTSBTVFJFRVQKKwkJCQlEUllERU4gTlkgMTMwNTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTM5ICAgKGhleCkJCVNPRlRCT09LIFBSRVNTCiswMDMwMzkgICAgIChiYXNlIDE2KQkJU09GVEJPT0sgUFJFU1MKKwkJCQk3NzQ1IEhFUlNDSEVMIEFWRU5VRQorCQkJCUxBIEpPTExBIENBIDkyMDM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0zQSAgIChoZXgpCQlNQUFURUwKKzAwMzAzQSAgICAgKGJhc2UgMTYpCQlNQUFURUwKKwkJCQk0OTUgUlVFIERFIFBPTU1BUklOCisJCQkJMzgzNjAgVk9SRVBQRSAgCisJCQkJRlJBTkNFCisKKzAwLTMwLTNCICAgKGhleCkJCVBvd2VyQ29tIFRlY2hub2xvZ3kKKzAwMzAzQiAgICAgKGJhc2UgMTYpCQlQb3dlckNvbSBUZWNobm9sb2d5CisJCQkJMkYsIE5vLiAzNCwgSW5kdXN0cnkgRS4gUm9hZCBJVgorCQkJCUhzaW5jaHUgU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1IDMwMCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC0zQyAgIChoZXgpCQlPTk5UTyBDT1JQLgorMDAzMDNDICAgICAoYmFzZSAxNikJCU9OTlRPIENPUlAuCisJCQkJMTJGLTIsICBOTy4gMTYxCisJCQkJU1VORyBURUggUkQuLCBUQUlQRUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtM0QgICAoaGV4KQkJSVZBIENPUlBPUkFUSU9OCiswMDMwM0QgICAgIChiYXNlIDE2KQkJSVZBIENPUlBPUkFUSU9OCisJCQkJMjkgSFVEU09OIFJPQUQKKwkJCQlTVURCVVJZIE1BIDAxNzc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0zRSAgIChoZXgpCQlSYWRjb20gTHRkLgorMDAzMDNFICAgICAoYmFzZSAxNikJCVJhZGNvbSBMdGQuCisJCQkJMTIgSGFuZWNob3NoZXQgU3RyZWV0CisJCQkJVGVsLUF2aXYgNjk3MTAgIAorCQkJCUlTUkFFTAorCiswMC0zMC0zRiAgIChoZXgpCQlUdXJib0NvbW0gVGVjaCBJbmMuCiswMDMwM0YgICAgIChiYXNlIDE2KQkJVHVyYm9Db21tIFRlY2ggSW5jLgorCQkJCTRGLTIsIE5vIDE3MSwgU3VuZy1UY2ggUm9hZAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC00MCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDMwNDAgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRSAtU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNDEgICAoaGV4KQkJU0FFSklOIFQgJiBNIENPLiwgTFRELgorMDAzMDQxICAgICAoYmFzZSAxNikJCVNBRUpJTiBUICYgTSBDTy4sIExURC4KKwkJCQkyTkQgRkwuLCBTQUVKSU4gQkxERy4gNjg5CisJCQkJSUxXT04tRE9ORywgS0FOR05BTS1HVSwgU0VPVUwKKwkJCQkxMzUtMjMwIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTMwLTQyICAgKGhleCkJCURlVGVXZS1EZXV0c2NoZSBUZWxlcGhvbndlcmtlCiswMDMwNDIgICAgIChiYXNlIDE2KQkJRGVUZVdlLURldXRzY2hlIFRlbGVwaG9ud2Vya2UKKwkJCQlaZXVnaG9mc3RyYXNzZSAxCisJCQkJRC0xMDk5NyBCZXJsaW4gIAorCQkJCUdFUk1BTlkKKworMDAtMzAtNDMgICAoaGV4KQkJSURSRUFNIFRFQ0hOT0xPR0lFUywgUFRFLiBMVEQuCiswMDMwNDMgICAgIChiYXNlIDE2KQkJSURSRUFNIFRFQ0hOT0xPR0lFUywgUFRFLiBMVEQuCisJCQkJNTQgS0FMTEFORyBCQUhSVSwgIzAyLTE0CisJCQkJU0lOR0FQT1JFIDMzOTMzNgorCQkJCVNJTkdBUE9SRQorCQkJCVNJTkdBUE9SRQorCiswMC0zMC00NCAgIChoZXgpCQlDcmFkbGVQb2ludCwgSW5jCiswMDMwNDQgICAgIChiYXNlIDE2KQkJQ3JhZGxlUG9pbnQsIEluYworCQkJCTgwNSBXLiBGcmFua2xpbiBTdC4KKwkJCQlCb2lzZSBJRCA4MzcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNDUgICAoaGV4KQkJVmlsbGFnZSBOZXR3b3JrcywgSW5jLiAoVk5JKQorMDAzMDQ1ICAgICAoYmFzZSAxNikJCVZpbGxhZ2UgTmV0d29ya3MsIEluYy4gKFZOSSkKKwkJCQkxMDAgVmlsbGFnZSBDb3VydCAtIFN0ZS4gIzMwMQorCQkJCUhhemxldCBOSiAwNzczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNDYgICAoaGV4KQkJQ29udHJvbGxlZCBFbGVjdHJvbmljIE1hbmFnZW1lCiswMDMwNDYgICAgIChiYXNlIDE2KQkJQ29udHJvbGxlZCBFbGVjdHJvbmljIE1hbmFnZW1lCisJCQkJVW5pdCA0IFJhdmVuaGlsbCBCdXNpbmVzcyBQYXJrCisJCQkJUmF2ZW5oaWxsIFJvYWQKKwkJCQlCZWxmYXN0ICAKKwkJCQlJUkVMQU5ECisKKzAwLTMwLTQ3ICAgKGhleCkJCU5JU1NFSSBFTEVDVFJJQyBDTy4sIExURC4KKzAwMzA0NyAgICAgKGJhc2UgMTYpCQlOSVNTRUkgRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJMzIgTUlZQVdBS0UsIFNISU1PTk9JU0hJS0ktQ0hPCisJCQkJTkFLQUdBV0EtS1UsIE5BR09ZQSA0NTQtMDk0NQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMzAtNDggICAoaGV4KQkJU3VwZXJtaWNybyBDb21wdXRlciwgSW5jLgorMDAzMDQ4ICAgICAoYmFzZSAxNikJCVN1cGVybWljcm8gQ29tcHV0ZXIsIEluYy4KKwkJCQkyMDUxIEp1bmN0aW9uIEF2ZW51ZQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC00OSAgIChoZXgpCQlCUllBTlQgVEVDSE5PTE9HWSwgTFRELgorMDAzMDQ5ICAgICAoYmFzZSAxNikJCUJSWUFOVCBURUNITk9MT0dZLCBMVEQuCisJCQkJUC5PLiBCT1ggNjk1NTcKKwkJCQlCUllBTlNUT04sIDIwMjEKKwkJCQlTT1VUSCBBRlJJQ0EKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMzAtNEEgICAoaGV4KQkJRnJhdW5ob2ZlciBJUE1TCiswMDMwNEEgICAgIChiYXNlIDE2KQkJRnJhdW5ob2ZlciBJUE1TCisJCQkJTWFyaWEtUmVpY2hlLVN0cmFzc2UgMgorCQkJCTAxMTA5CisJCQkJR0VSTUFOWQorCiswMC0zMC00QiAgIChoZXgpCQlPUkJBQ09NIFNZU1RFTVMsIElOQy4KKzAwMzA0QiAgICAgKGJhc2UgMTYpCQlPUkJBQ09NIFNZU1RFTVMsIElOQy4KKwkJCQkxNzA0IFRBWUxPUlMgTEFORQorCQkJCUNJTk5BTUlOU09OIE5KIDA4MDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC00QyAgIChoZXgpCQlBUFBJQU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMzA0QyAgICAgKGJhc2UgMTYpCQlBUFBJQU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk4MCBDRU5UUkFMIFNUUkVFVAorCQkJCUJPWEJPUk9VR0ggTUEgMDE3MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTREICAgKGhleCkJCUVTSQorMDAzMDREICAgICAoYmFzZSAxNikJCUVTSQorCQkJCTI2MDEgU3VtbWl0IEF2ZW51ZQorCQkJCVBsYW5vIFRYIDc1MDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC00RSAgIChoZXgpCQlCVVNURUMgUFJPRFVDVElPTiBMVEQuCiswMDMwNEUgICAgIChiYXNlIDE2KQkJQlVTVEVDIFBST0RVQ1RJT04gTFRELgorCQkJCVdPUkxEIEFWSUFUSU9OIFBBUksKKwkJCQlTaGFubm9uIENvdW50eSBDbGFyZSAKKwkJCQlJUkVMQU5ECisKKzAwLTMwLTRGICAgKGhleCkJCVBMQU5FVCBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDMwNEYgICAgIChiYXNlIDE2KQkJUExBTkVUIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQkxMUYsIE5vLiA5NiwgTWluLUNodWFuIFJvYWQKKwkJCQlIc2luLVRpZW4gVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTUwICAgKGhleCkJCVZlcnNhIFRlY2hub2xvZ3kKKzAwMzA1MCAgICAgKGJhc2UgMTYpCQlWZXJzYSBUZWNobm9sb2d5CisJCQkJNDQzMCBFLiBNaXJhbG9tYSBBdmUuLCAtIFN0ZS4KKwkJCQlBbmFoZWltIENBIDkyODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC01MSAgIChoZXgpCQlPUkJJVCBBVklPTklDICYgQ09NTVVOSUNBVElPTgorMDAzMDUxICAgICAoYmFzZSAxNikJCU9SQklUIEFWSU9OSUMgJiBDT01NVU5JQ0FUSU9OCisJCQkJU1lTVEVNUywgTFRELgorCQkJCVAuTy4gQk9YIDMxNzEgSU5EVVNUUklBTCBaT05FLCBORVRBTllBIDQKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMzAtNTIgICAoaGV4KQkJRUxBU1RJQyBORVRXT1JLUworMDAzMDUyICAgICAoYmFzZSAxNikJCUVMQVNUSUMgTkVUV09SS1MKKwkJCQk2MTIwIFdJTkRXQVJEIFBBUktXQVkgLVNURSMxMDAKKwkJCQlBTFBIQVJFVFRBIEdBIDMwMDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC01MyAgIChoZXgpCQlCYXNsZXIgQUcKKzAwMzA1MyAgICAgKGJhc2UgMTYpCQlCYXNsZXIgQUcKKwkJCQlBbiBEZXIgU3RydXNiZWsgNjAtNjIKKwkJCQkyMjkyNiBBaHJlbnNidXJnICAKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLTU0ICAgKGhleCkJCUNBU1RMRU5FVCBURUNITk9MT0dZLCBJTkMuCiswMDMwNTQgICAgIChiYXNlIDE2KQkJQ0FTVExFTkVUIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQlOTy4gMTMwIFdVLUtVTkcgUkQuLAorCQkJCVdVLUtVIEhTSUFORyBUQUlQRUkgSFNJRU4KKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtNTUgICAoaGV4KQkJUmVuZXNhcyBUZWNobm9sb2d5IEFtZXJpY2EsIEluYy4KKzAwMzA1NSAgICAgKGJhc2UgMTYpCQlSZW5lc2FzIFRlY2hub2xvZ3kgQW1lcmljYSwgSW5jLgorCQkJCTQ1MCBIb2xnZXIgV2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTU2ICAgKGhleCkJCUJlY2sgSVBDIEdtYkgKKzAwMzA1NiAgICAgKGJhc2UgMTYpCQlCZWNrIElQQyBHbWJICisJCQkJR3J1bmluZ2VyIFdlZyAyNAorCQkJCUQtMzU0MTUgUG9obGhlaW0gCisJCQkJR0VSTUFOWQorCiswMC0zMC01NyAgIChoZXgpCQlRVGVsTmV0LCBJbmMuCiswMDMwNTcgICAgIChiYXNlIDE2KQkJUVRlbE5ldCwgSW5jLgorCQkJCTQwMCAtIDMxMTUgMTJ0aCBTdHJlZXQgTkUKKwkJCQlDYWxnYXJ5IEFsYmVydGEgVDJFIDdKMgorCQkJCUNBTkFEQQorCiswMC0zMC01OCAgIChoZXgpCQlBUEkgTU9USU9OCiswMDMwNTggICAgIChiYXNlIDE2KQkJQVBJIE1PVElPTgorCQkJCTQ1IEhBWkVMV09PRCBEUklWRQorCQkJCUFNSEVSU1QgTlkgMTQyMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTU5ICAgKGhleCkJCUtPTlRST04gQ09NUEFDVCBDT01QVVRFUlMgQUcKKzAwMzA1OSAgICAgKGJhc2UgMTYpCQlLT05UUk9OIENPTVBBQ1QgQ09NUFVURVJTIEFHCisJCQkJTm9yZHN0cmFzc2UgMTEvRgorCQkJCSBMVVRFUkJBQ0ggIDQ1NDIKKwkJCQlTV0lUWkVSTEFORAorCiswMC0zMC01QSAgIChoZXgpCQlURUxHRU4gQ09SUE9SQVRJT04KKzAwMzA1QSAgICAgKGJhc2UgMTYpCQlURUxHRU4gQ09SUE9SQVRJT04KKwkJCQkzMTAxIFNPVkVSRUlHTiBEUi4gLSBTVEUuCisJCQkJTEFOU0lORyBNSSA0ODkxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNUIgICAoaGV4KQkJVG9rbyBJbmMuCiswMDMwNUIgICAgIChiYXNlIDE2KQkJVG9rbyBJbmMuCisJCQkJMTggQ09NSUdBWUEsIFRTVVJVR0FTSElNQS1TSEkKKwkJCQlTQUlUQU1BLUtFTgorCQkJCUpBUEFOIDM1MC0yMjgxCisJCQkJSkFQQU4KKworMDAtMzAtNUMgICAoaGV4KQkJU01BUiBMYWJvcmF0b3JpZXMgQ29ycC4KKzAwMzA1QyAgICAgKGJhc2UgMTYpCQlTTUFSIExhYm9yYXRvcmllcyBDb3JwLgorCQkJCTEwOTYwIE1pbGxyaWRnZSBOb3J0aCAtIFN0ZS4gIzEwNworCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTVEICAgKGhleCkJCURJR0lUUkEgU1lTVEVNUywgSU5DLgorMDAzMDVEICAgICAoYmFzZSAxNikJCURJR0lUUkEgU1lTVEVNUywgSU5DLgorCQkJCTgtNjEsIEdBV09MLURPTkcKKwkJCQlZT05HU0FOLUtVIFNFT1VMCisJCQkJS09SRUEgMTQwLTE1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC01RSAgIChoZXgpCQlBYmVsa28gSW5ub3ZhdGlvbgorMDAzMDVFICAgICAoYmFzZSAxNikJCUFiZWxrbyBJbm5vdmF0aW9uCisJCQkJQm94IDgwOAorCQkJCVMtOTcxMjUgTHVsZWEgIAorCQkJCVNXRURFTgorCiswMC0zMC01RiAgIChoZXgpCQlIYXNzZWxibGFkCiswMDMwNUYgICAgIChiYXNlIDE2KQkJSGFzc2VsYmxhZAorCQkJCUhlanJldmVqIDMwCisJCQkJQ29wZW5oYWdlbiBOViBESy0yNDAwCisJCQkJREVOTUFSSworCiswMC0zMC02MCAgIChoZXgpCQlQb3dlcmZpbGUsIEluYy4KKzAwMzA2MCAgICAgKGJhc2UgMTYpCQlQb3dlcmZpbGUsIEluYy4KKwkJCQkzMzUwIFRob21hcyBSb2FkCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQtMjA2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNjEgICAoaGV4KQkJTW9ieVRFTAorMDAzMDYxICAgICAoYmFzZSAxNikJCU1vYnlURUwKKwkJCQk0MzAxIENvbm5lY3RpY3V0IEF2ZS4gTlcKKwkJCQlTdGUuICM0NTQKKwkJCQlXYXNoaW5ndG9uIERDIDIwMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC02MiAgIChoZXgpCQlQQVRIIDEgTkVUV09SSyBURUNITk9MJ1MgSU5DLgorMDAzMDYyICAgICAoYmFzZSAxNikJCVBBVEggMSBORVRXT1JLIFRFQ0hOT0wnUyBJTkMuCisJCQkJMzYzNiBOT0JFTCBEUklWRSAtIFNURS4gIzI3NQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNjMgICAoaGV4KQkJU0FOVEVSQSBTWVNURU1TLCBJTkMuCiswMDMwNjMgICAgIChiYXNlIDE2KQkJU0FOVEVSQSBTWVNURU1TLCBJTkMuCisJCQkJMjkwMSBTVU1NSVQgQVZFTlVFIC0gU1RFLiAjMTAwCisJCQkJUExBTk8gVFggNzUwNzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTY0ICAgKGhleCkJCUFETElOSyBURUNITk9MT0dZLCBJTkMuCiswMDMwNjQgICAgIChiYXNlIDE2KQkJQURMSU5LIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk5RiwgTk8uIDE2NiwgSklFTi1ZSSBSLkQuCisJCQkJQ0hVTkctSE8gQ0lUWSBUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtNjUgICAoaGV4KQkJQVBQTEUgQ09NUFVURVIsIElOQy4KKzAwMzA2NSAgICAgKGJhc2UgMTYpCQlBUFBMRSBDT01QVVRFUiwgSU5DLgorCQkJCTIwNjUwIFZBTExFWSBHUkVFTiBEUklWRQorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNjYgICAoaGV4KQkJUkZNCiswMDMwNjYgICAgIChiYXNlIDE2KQkJUkZNCisJCQkJMzA3OSBQcmVtaWVyZSBQa3d5CisJCQkJU3VpdGUgMTQwCisJCQkJRHVsdXRoIEdBIDMwMDk3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC02NyAgIChoZXgpCQlCSU9TVEFSIE1JQ1JPVEVDSCBJTlQnTCBDT1JQLgorMDAzMDY3ICAgICAoYmFzZSAxNikJCUJJT1NUQVIgTUlDUk9URUNIIElOVCdMIENPUlAuCisJCQkJMkZMLiBOTy4gMTA4LTIgTUlOIENIVUFOIFJPQUQKKwkJCQlIU0lOIFRJRU4gQ0lUWSwgVEFJUEVJIEhTSUVOICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTY4ICAgKGhleCkJCUNZQkVSTkVUSUNTIFRFQ0guIENPLiwgTFRELgorMDAzMDY4ICAgICAoYmFzZSAxNikJCUNZQkVSTkVUSUNTIFRFQ0guIENPLiwgTFRELgorCQkJCURBSVRPSCBCTERHLiA0RiAzLTMyLTEKKwkJCQlUQUtBREEsIFRPU0hJTUEtS1UsIFRPS1lPCisJCQkJSkFQQU4gMTcxLTAwMzMKKwkJCQlKQVBBTgorCiswMC0zMC02OSAgIChoZXgpCQlJTVBBQ0NUIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMzA2OSAgICAgKGJhc2UgMTYpCQlJTVBBQ0NUIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkyRiwgTk8uIDEyLCBSJkQgUkQuIElJCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksgSFNJTi1DSFUKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtNkEgICAoaGV4KQkJUEVOVEEgTUVESUEgQ08uLCBMVEQuCiswMDMwNkEgICAgIChiYXNlIDE2KQkJUEVOVEEgTUVESUEgQ08uLCBMVEQuCisJCQkJRS01MDQgQnVuZGFuZyBUZWNobm9wYXJrLDE1MQorCQkJCVlhdG9wLWRvbmcgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtIEd5ZW9uZ2dpLWRvIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC02QiAgIChoZXgpCQlDTU9TIFNZU1RFTVMsIElOQy4KKzAwMzA2QiAgICAgKGJhc2UgMTYpCQlDTU9TIFNZU1RFTVMsIElOQy4KKwkJCQkyMzQ0MCBIQVdUSE9STkUgQkxWRC1TVEUgIzI5MAorCQkJCVRPUlJBTkNFIENBIDkwNTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC02QyAgIChoZXgpCQlIaXRleCBIb2xkaW5nIEdtYkgKKzAwMzA2QyAgICAgKGJhc2UgMTYpCQlIaXRleCBIb2xkaW5nIEdtYkgKKwkJCQlHcmVzY2hiYWNoc3RyLiAxMgorCQkJCTc2MjI5IEthcmxzcnVoZSAgCisJCQkJR0VSTUFOWQorCiswMC0zMC02RCAgIChoZXgpCQlMVUNFTlQgVEVDSE5PTE9HSUVTCiswMDMwNkQgICAgIChiYXNlIDE2KQkJTFVDRU5UIFRFQ0hOT0xPR0lFUworCQkJCTMwMCBCQUtFUiBBVkVOVUUgLSBTVEUuICMxMDAKKwkJCQlDT05DT1JEIE1BIDAxNzQyLTIxNjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTZFICAgKGhleCkJCUhFV0xFVFQgUEFDS0FSRAorMDAzMDZFICAgICAoYmFzZSAxNikJCUhFV0xFVFQgUEFDS0FSRAorCQkJCTExMDAwIFdPTEZFIFJPQUQKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTZGICAgKGhleCkJCVNFWUVPTiBURUNILiBDTy4sIExURC4KKzAwMzA2RiAgICAgKGJhc2UgMTYpCQlTRVlFT04gVEVDSC4gQ08uLCBMVEQuCisJCQkJTkFNQ0hFT04gQkxERy4gNkYsCisJCQkJREFFQ0hJLURPTkcsIDk1Ny0wMTMgS0FOR05BTS1HVSwgU0VPVUwKKwkJCQlLT1JFQSAxMzUtMjgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTMwLTcwICAgKGhleCkJCTFOZXQgQ29ycG9yYXRpb24KKzAwMzA3MCAgICAgKGJhc2UgMTYpCQkxTmV0IENvcnBvcmF0aW9uCisJCQkJMzQ3IEVsaXphYmV0aCBBdmVudWUgLSBTdGUuICMxMDAKKwkJCQlTb21lcnNldCBOSiAwODg3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNzEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAzMDcxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdiAtIFNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTcyICAgKGhleCkJCUludGVsbGlieXRlIEluYy4KKzAwMzA3MiAgICAgKGJhc2UgMTYpCQlJbnRlbGxpYnl0ZSBJbmMuCisJCQkJQ2FuYWRhIFRydXN0IFRvd2VyIC0gQkNFIFBsYWNlCisJCQkJMTYxIEJheSBTdC4gMjd0aCBGbG9vciwKKwkJCQlUb3JvbnRvIE9udGFyaW8gTTVKIDJTMQorCQkJCUNBTkFEQQorCiswMC0zMC03MyAgIChoZXgpCQlJbnRlcm5hdGlvbmFsIE1pY3Jvc3lzdGVtcywgSW4KKzAwMzA3MyAgICAgKGJhc2UgMTYpCQlJbnRlcm5hdGlvbmFsIE1pY3Jvc3lzdGVtcywgSW4KKwkJCQk1MjEgVmFsbGV5IFdheQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC03NCAgIChoZXgpCQlFUVVJSU5FVCBMVEQuCiswMDMwNzQgICAgIChiYXNlIDE2KQkJRVFVSUlORVQgTFRELgorCQkJCUVESVNPTiBIT1VTRQorCQkJCUVESVNPTiBST0FECisJCQkJIFNXSU5ET04sIFNOMyA1SkEgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTMwLTc1ICAgKGhleCkJCUFEVEVDSAorMDAzMDc1ICAgICAoYmFzZSAxNikJCUFEVEVDSAorCQkJCVJVRSBEVSBWQUwgU1QgTEFNQkVSVCAxOTEgLyBpCisJCQkJIFNFUkFJTkcgIDQxMDAKKwkJCQlCRUxHSVVNCisKKzAwLTMwLTc2ICAgKGhleCkJCUFrYW1iYSBDb3Jwb3JhdGlvbgorMDAzMDc2ICAgICAoYmFzZSAxNikJCUFrYW1iYSBDb3Jwb3JhdGlvbgorCQkJCTE1NTk1IExvcyBHYXRvcyBCbHZkLgorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNzcgICAoaGV4KQkJT05QUkVNIE5FVFdPUktTCiswMDMwNzcgICAgIChiYXNlIDE2KQkJT05QUkVNIE5FVFdPUktTCisJCQkJNDI1MDEgQUxCUkFFIFNUUkVFVAorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTc4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMzA3OCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlIC0gU0pBLTIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNzkgICAoaGV4KQkJQ1FPUywgSU5DLgorMDAzMDc5ICAgICAoYmFzZSAxNikJCUNRT1MsIElOQy4KKwkJCQkyNSBNQVVDSExZICAtIFNURS4gIzMyOQorCQkJCUlSVklORSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtN0EgICAoaGV4KQkJQWR2YW5jZWQgVGVjaG5vbG9neSAmIFN5c3RlbXMKKzAwMzA3QSAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBUZWNobm9sb2d5ICYgU3lzdGVtcworCQkJCVlva29oYW1hIEJ1c2luZXNzIFBhcmsgRWFzdCBUb3dlciA5RiwKKwkJCQkxMzQgR291ZG8tY2hvLCBIb2RvZ2F5YS1rdSwgWW9rb2hhbWEsIEthCisJCQkJMjQwLTAwMDUKKwkJCQlKQVBBTgorCiswMC0zMC03QiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDMwN0IgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZSAtIFNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTdDICAgKGhleCkJCUFESUQgU0EKKzAwMzA3QyAgICAgKGJhc2UgMTYpCQlBRElEIFNBCisJCQkJNzAgUlUgQU5BVE9MRSBGUkFOQ0UKKwkJCQk5MiAzMDAgTEVWQUxMT0lTLVBFUlJFVCBDRURFWCAgCisJCQkJRlJBTkNFCisKKzAwLTMwLTdEICAgKGhleCkJCUdSRSBBTUVSSUNBLCBJTkMuCiswMDMwN0QgICAgIChiYXNlIDE2KQkJR1JFIEFNRVJJQ0EsIElOQy4KKwkJCQk0MjUgSEFSQk9SIEJMVkQuCisJCQkJQkVMTU9OVCBDQSA5NDAwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtN0UgICAoaGV4KQkJUmVkZmxleCBDb21tdW5pY2F0aW9uIFN5c3RlbXMKKzAwMzA3RSAgICAgKGJhc2UgMTYpCQlSZWRmbGV4IENvbW11bmljYXRpb24gU3lzdGVtcworCQkJCTExLTI5IEVhc3Rlcm4gUm9hZAorCQkJCVNvdXRoIE1lbGJvdXJuZSBWaWN0b3JpYSAzMjA1IAorCQkJCUFVU1RSQUxJQQorCiswMC0zMC03RiAgIChoZXgpCQlJUkxBTiBMVEQuCiswMDMwN0YgICAgIChiYXNlIDE2KQkJSVJMQU4gTFRELgorCQkJCTEgSEFUQU1BUiBTVFJFRVQKKwkJCQlQLk8uIEJPWCAyODggWU9LTkVBTSAyMDY5MgorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0zMC04MCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDMwODAgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRSAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTgxICAgKGhleCkJCUFMVE9TIEMmQworMDAzMDgxICAgICAoYmFzZSAxNikJCUFMVE9TIEMmQworCQkJCTE1MC0wMTAgUk0uIDEwMTIsIDQ0LTEKKwkJCQlEQUUgWU9VTkcgQi9ELCBZT1ZJRE8tRE9ORyBZT1VOR0NIVU5HUE8tCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMzAtODIgICAoaGV4KQkJVEFJSEFOIEVMRUNUUklDIFdJUkUgQ08uLCBMVEQuCiswMDMwODIgICAgIChiYXNlIDE2KQkJVEFJSEFOIEVMRUNUUklDIFdJUkUgQ08uLCBMVEQuCisJCQkJQ29tbXVuaWNhdGlvbiBFbmdpbmVlcmluZyBUZWFtCisJCQkJOTk2IFNpaGV1bmctRG9uZyBLZXltIENoZW9uLWt1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC04MyAgIChoZXgpCQlJdnJvbiBTeXN0ZW1zCiswMDMwODMgICAgIChiYXNlIDE2KQkJSXZyb24gU3lzdGVtcworCQkJCTE5LTIwIFlPUksgUk9BRAorCQkJCURVTiBMQU9HSEFJUkUgQ09VTlRZIERVQkxJTgorCQkJCUlSRUxBTkQKKwkJCQlJUkVMQU5ECisKKzAwLTMwLTg0ICAgKGhleCkJCUFMTElFRCBURUxFU1lOIElOVEVSTkFJT05BTAorMDAzMDg0ICAgICAoYmFzZSAxNikJCUFMTElFRCBURUxFU1lOIElOVEVSTkFJT05BTAorCQkJCUNPUlBPUkFUSU9OCisJCQkJOTYwIFNURVdBUlQgRFJJVkUsICBTVEUuCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC04NSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDMwODUgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC04NiAgIChoZXgpCQlUcmFuc2lzdG9yIERldmljZXMsIEluYy4KKzAwMzA4NiAgICAgKGJhc2UgMTYpCQlUcmFuc2lzdG9yIERldmljZXMsIEluYy4KKwkJCQkzNkEgTmV3YnVyZ2ggUm9hZAorCQkJCUhhY2tldHRzdG93biBOSiAwNzg0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtODcgICAoaGV4KQkJVkVHQSBHUklFU0hBQkVSIEtHCiswMDMwODcgICAgIChiYXNlIDE2KQkJVkVHQSBHUklFU0hBQkVSIEtHCisJCQkJQU0gSE9IRU5TVEVJTiAxMTMKKwkJCQk3Nzc2MSBTQ0hVTFRBQ0gKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0zMC04OCAgIChoZXgpCQlTaWFyYSBTeXN0ZW1zLCBJbmMuCiswMDMwODggICAgIChiYXNlIDE2KQkJU2lhcmEgU3lzdGVtcywgSW5jLgorCQkJCTMwMCBGZXJndXNvbiBEcml2ZSAtIDJuZCBGbG9vcgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTg5ICAgKGhleCkJCVNwZWN0cmFwb2ludCBXaXJlbGVzcywgTExDCiswMDMwODkgICAgIChiYXNlIDE2KQkJU3BlY3RyYXBvaW50IFdpcmVsZXNzLCBMTEMKKwkJCQkxMTI1IEUuIENvbGxpbnMgQmx2ZC4KKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC04QSAgIChoZXgpCQlOSUNPVFJBIFNJU1RFTUkgUy5QLkEKKzAwMzA4QSAgICAgKGJhc2UgMTYpCQlOSUNPVFJBIFNJU1RFTUkgUy5QLkEKKwkJCQk0MSBWaWEgUHJpbW8gTWFnZ2lvCisJCQkJQmFyYW56YXRlIChNSSkgMjAwMjEKKwkJCQlJVEFMWQorCiswMC0zMC04QiAgIChoZXgpCQlCcml4IE5ldHdvcmtzCiswMDMwOEIgICAgIChiYXNlIDE2KQkJQnJpeCBOZXR3b3JrcworCQkJCTMwMCBDb25jb3JkIFJvYWQKKwkJCQlCaWxsZXJpY2EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLThDICAgKGhleCkJCVF1YW50dW0gQ29ycG9yYXRpb24KKzAwMzA4QyAgICAgKGJhc2UgMTYpCQlRdWFudHVtIENvcnBvcmF0aW9uCisJCQkJMTAxMjUgRmVkZXJhbCBEcml2ZQorCQkJCUNvbG9yYWRvIFNwcmluZ3MgQ08gODA5MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLThEICAgKGhleCkJCVBpbm5hY2xlIFN5c3RlbXMsIEluYy4KKzAwMzA4RCAgICAgKGJhc2UgMTYpCQlQaW5uYWNsZSBTeXN0ZW1zLCBJbmMuCisJCQkJRnJhbmtmdXJ0ZXIgU3RyLiAzYworCQkJCUQtMzgxMjIgQnJhdW5zY2h3ZWlnIAorCQkJCUdFUk1BTlkKKworMDAtMzAtOEUgICAoaGV4KQkJQ1JPU1MgTUFUQ0ggVEVDSE5PTE9HSUVTLCBJTkMuCiswMDMwOEUgICAgIChiYXNlIDE2KQkJQ1JPU1MgTUFUQ0ggVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMzk2MCBSQ0EgQmx2ZC4sIFN1aXRlIDYwMDEKKwkJCQlQYWxtIEJlYWNoIEZMIDMzNDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC04RiAgIChoZXgpCQlNSUNSSUxPUiwgSW5jLgorMDAzMDhGICAgICAoYmFzZSAxNikJCU1JQ1JJTE9SLCBJbmMuCisJCQkJMTcgTGFrZXNpZGUgT2ZmaWNlIFBhcmsKKwkJCQk2MDcgTm9ydGggQXZlbnVlCisJCQkJV2FrZWZpZWxkIE1BIDAxODgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05MCAgIChoZXgpCQlDWVJBIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAzMDkwICAgICAoYmFzZSAxNikJCUNZUkEgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJODAwMCBDQVBXRUxMIERSSVZFCisJCQkJT0FLTEFORCBDQSA5NDYyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtOTEgICAoaGV4KQkJVEFJV0FOIEZJUlNUIExJTkUgRUxFQy4gQ09SUC4KKzAwMzA5MSAgICAgKGJhc2UgMTYpCQlUQUlXQU4gRklSU1QgTElORSBFTEVDLiBDT1JQLgorCQkJCTQwIENodW5nLVNoYW4gUm9hZAorCQkJCVR1LUNoZW5nIEluZHVzdHJpYWwgUGFyaworCQkJCVRhaXBlaSBDb3VudHkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtOTIgICAoaGV4KQkJTW9kdU5PUk0gR21iSAorMDAzMDkyICAgICAoYmFzZSAxNikJCU1vZHVOT1JNIEdtYkgKKwkJCQlMYW5ncnV0aXN0cmFzc2UgMzMKKwkJCQlDSC04ODQwIEVpbnNsZWRlbG4gIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTMwLTkzICAgKGhleCkJCVNvbm5ldCBUZWNobm9sb2dpZXMsIEluYworMDAzMDkzICAgICAoYmFzZSAxNikJCVNvbm5ldCBUZWNobm9sb2dpZXMsIEluYworCQkJCTggQXV0cnkKKwkJCQlJcnZpbmUsIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05NCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDMwOTQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZSAtIFNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTk1ICAgKGhleCkJCVByb2NvbXAgSW5mb3JtYXRpY3MsIEx0ZC4KKzAwMzA5NSAgICAgKGJhc2UgMTYpCQlQcm9jb21wIEluZm9ybWF0aWNzLCBMdGQuCisJCQkJNUYsIDY5LTEwLCBTZWMuIDIsCisJCQkJQ2h1bmcgQ2hlbmcgRS4gUm9hZAorCQkJCVRhbXNodWksIFRhaXBlaSwgSHNpZW4gIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtOTYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAzMDk2ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUgLSBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05NyAgIChoZXgpCQlBQiBSZWdpbgorMDAzMDk3ICAgICAoYmFzZSAxNikJCUFCIFJlZ2luCisJCQkJQm94IDM2NgorCQkJCVNFLTI2MTIzIExhbmRza3JvbmEgCisJCQkJU1dFREVOCisKKzAwLTMwLTk4ICAgKGhleCkJCUdsb2JhbCBDb252ZXJnaW5nIFRlY2hub2xvZ2llcworMDAzMDk4ICAgICAoYmFzZSAxNikJCUdsb2JhbCBDb252ZXJnaW5nIFRlY2hub2xvZ2llcworCQkJCTE4MDAgUHJlc3RvbiBQYXJrIEJsdmQuCisJCQkJU3VpdGUgIzI1MAorCQkJCVBsYW5vIFRYIDc1MDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05OSAgIChoZXgpCQlCT0VOSUcgVU5EIEtBTExFTkJBQ0ggT0hHCiswMDMwOTkgICAgIChiYXNlIDE2KQkJQk9FTklHIFVORCBLQUxMRU5CQUNIIE9IRworCQkJCUFNIFNQT0VSS0VMIDEwMAorCQkJCTQ0MjI3IERPUlRNVU5ECisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMzAtOUEgICAoaGV4KQkJQVNUUk8gVEVSUkEgQ09SUC4KKzAwMzA5QSAgICAgKGJhc2UgMTYpCQlBU1RSTyBURVJSQSBDT1JQLgorCQkJCTExNTI2IFNPUlJFTlRPIFZBTExFWSBST0FECisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05QiAgIChoZXgpCQlTbWFydHdhcmUKKzAwMzA5QiAgICAgKGJhc2UgMTYpCQlTbWFydHdhcmUKKwkJCQk0OSBBViBBcmlzdGlkZQorCQkJCUJyaWFuZAorCQkJCTkyMTYwIEFudG9ueSAgCisJCQkJRlJBTkNFCisKKzAwLTMwLTlDICAgKGhleCkJCVRpbWluZyBBcHBsaWNhdGlvbnMsIEluYy4KKzAwMzA5QyAgICAgKGJhc2UgMTYpCQlUaW1pbmcgQXBwbGljYXRpb25zLCBJbmMuCisJCQkJNDc3NSBXYWxudXQgU3QuCisJCQkJU3VpdGUgMUIKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05RCAgIChoZXgpCQlOaW1ibGUgTWljcm9zeXN0ZW1zLCBJbmMuCiswMDMwOUQgICAgIChiYXNlIDE2KQkJTmltYmxlIE1pY3Jvc3lzdGVtcywgSW5jLgorCQkJCTUwIENodXJjaCBTdHJlZXQgLSA1dGggRmxvb3IKKwkJCQlDYW1icmlkZ2UgTUEgMDIxMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTlFICAgKGhleCkJCVdPUktCSVQgQ09SUE9SQVRJT04uCiswMDMwOUUgICAgIChiYXNlIDE2KQkJV09SS0JJVCBDT1JQT1JBVElPTi4KKwkJCQkxLTItMiBDaHVvdSwgWWFtYXRvCisJCQkJS2FuYWdhd2EgIDI0Mi0wMDIxICAKKwkJCQlKQVBBTgorCiswMC0zMC05RiAgIChoZXgpCQlBTUJFUiBORVRXT1JLUworMDAzMDlGICAgICAoYmFzZSAxNikJCUFNQkVSIE5FVFdPUktTCisJCQkJMjQ3NSBBVUdVU1RJTkUgRFIuCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUEwICAgKGhleCkJCVRZQ08gU1VCTUFSSU5FIFNZU1RFTVMsIExURC4KKzAwMzBBMCAgICAgKGJhc2UgMTYpCQlUWUNPIFNVQk1BUklORSBTWVNURU1TLCBMVEQuCisJCQkJMjUwIElORFVTVFJJQUwgV0FZIFdFU1QKKwkJCQlFQVRPTlRPV04gTkogMDc3MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUExICAgKGhleCkJCVdFQkdBVEUgSW5jLgorMDAzMEExICAgICAoYmFzZSAxNikJCVdFQkdBVEUgSW5jLgorCQkJCTRGLCBQaWthIEJsZGcuLCA4OTQtMjAsIEhveWtlIDItZG9uZworCQkJCURvbmdhbi1LdSwKKwkJCQlBbnlhbmctU2kgS3l1bmdnaS1EbyAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMzAtQTIgICAoaGV4KQkJTGlnaHRuZXIgRW5naW5lZXJpbmcKKzAwMzBBMiAgICAgKGJhc2UgMTYpCQlMaWdodG5lciBFbmdpbmVlcmluZworCQkJCTg1NTEgTGEgSm9sbGEgU2hvcmVzIERyCisJCQkJTGEgSm9sbGEgQ0EgOTIwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUEzICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMzBBMyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFIC1TSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1BNCAgIChoZXgpCQlXb29kd2luZCBDb21tdW5pY2F0aW9ucyBTeXN0ZW0KKzAwMzBBNCAgICAgKGJhc2UgMTYpCQlXb29kd2luZCBDb21tdW5pY2F0aW9ucyBTeXN0ZW0KKwkJCQkyMDMwMCBDZW50dXJ5IEJsdmQuLCBTdWl0ZSAyMDBCCisJCQkJR2VybWFudG93biBNRCAyMDg3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQTUgICAoaGV4KQkJQUNUSVZFIFBPV0VSCiswMDMwQTUgICAgIChiYXNlIDE2KQkJQUNUSVZFIFBPV0VSCisJCQkJMTE1MjUgU1RPTkVIT0xMT1cgLSBTVEUuIzI1NQorCQkJCUFVU1RJTiBUWCA3ODc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQTYgICAoaGV4KQkJVklBTkVUIFRFQ0hOT0xPR0lFUywgTFRELgorMDAzMEE2ICAgICAoYmFzZSAxNikJCVZJQU5FVCBURUNITk9MT0dJRVMsIExURC4KKwkJCQk4IEhBQ0hBUkFTSCBTVFJFRVQKKwkJCQlSQU1BVCBIQVNIQVJPTiA0NzI2MgorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0zMC1BNyAgIChoZXgpCQlTQ0hXRUlUWkVSIEVOR0lORUVSSU5HCiswMDMwQTcgICAgIChiYXNlIDE2KQkJU0NIV0VJVFpFUiBFTkdJTkVFUklORworCQkJCUxBQk9SQVRPUklFUywgSU5DLgorCQkJCTIzNTAgTkUgSE9QS0lOUyBDT1VSVAorCQkJCVBVTExNQU4gV0EgOTkxNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUE4ICAgKGhleCkJCU9MJ0UgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMzBBOCAgICAgKGJhc2UgMTYpCQlPTCdFIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTk2MiBaQU5LRVIgUk9BRAorCQkJCVNBTiBKT1NFIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1BOSAgIChoZXgpCQlOZXRpdmVyc2UsIEluYy4KKzAwMzBBOSAgICAgKGJhc2UgMTYpCQlOZXRpdmVyc2UsIEluYy4KKwkJCQkxMDAgQ2VudHVyeSBDZW50ZXIgQ291cnQKKwkJCQlTdWl0ZSAjNjAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUFBICAgKGhleCkJCUFYVVMgTUlDUk9TWVNURU1TLCBJTkMuCiswMDMwQUEgICAgIChiYXNlIDE2KQkJQVhVUyBNSUNST1NZU1RFTVMsIElOQy4KKwkJCQkyRi00LCBOTy4xOC9OLiA2MDksIFNFQy4gNQorCQkJCUNIVU4tSFNJTiBST0FELCBTQU4gQ0hVTkcgVEFJUEVJIENPVU5UWQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC1BQiAgIChoZXgpCQlERUxUQSBORVRXT1JLUywgSU5DLgorMDAzMEFCICAgICAoYmFzZSAxNikJCURFTFRBIE5FVFdPUktTLCBJTkMuCisJCQkJOCwgS09OIEpBTiBXRVNUIFJPQUQKKwkJCQlMSVVUVSBJTkRVU1RSSUFMIFpPTkUgS0VFTFVORworCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC1BQyAgIChoZXgpCQlTeXN0ZW1lIExhdWVyIEdtYkggJiBDby4sIEx0ZC4KKzAwMzBBQyAgICAgKGJhc2UgMTYpCQlTeXN0ZW1lIExhdWVyIEdtYkggJiBDby4sIEx0ZC4KKwkJCQlLZWx0ZXJzdHJhc3NlIDU5CisJCQkJNzI2NjkgVW50ZXJlbnNpbmdlbiAgCisJCQkJR0VSTUFOWQorCiswMC0zMC1BRCAgIChoZXgpCQlTSEFOR0hBSSBDT01NVU5JQ0FUSU9OCiswMDMwQUQgICAgIChiYXNlIDE2KQkJU0hBTkdIQUkgQ09NTVVOSUNBVElPTgorCQkJCVRFQ0hOT0xPR0lFUyBDRU5URVIKKwkJCQkxNSBHVUktUUlORyBST0FEIFNIQU5HSEFJIDIwMDIzMworCQkJCVAuUi4gQ0hJTkEKKwkJCQlDSElOQQorCiswMC0zMC1BRSAgIChoZXgpCQlUaW1lcyBOIFN5c3RlbSwgSW5jLgorMDAzMEFFICAgICAoYmFzZSAxNikJCVRpbWVzIE4gU3lzdGVtLCBJbmMuCisJCQkJMTgyNiBLcmFtZXIgTGFuZSAtIFN0ZS4KKwkJCQlBdXN0aW4gVFggNzg3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUFGICAgKGhleCkJCUhvbmV5d2VsbCBHbWJICiswMDMwQUYgICAgIChiYXNlIDE2KQkJSG9uZXl3ZWxsIEdtYkgKKwkJCQlCb2VibGluZ2VyIFN0ci4gMTcKKwkJCQlQLk8uIEJveCAxMTY0CisJCQkJRC03MTA5OCBTY2hvZW5haWNoICAKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLUIwICAgKGhleCkJCUNvbnZlcmdlbmV0IFRlY2hub2xvZ2llcworMDAzMEIwICAgICAoYmFzZSAxNikJCUNvbnZlcmdlbmV0IFRlY2hub2xvZ2llcworCQkJCTIyMjIgVHJhZGUgWm9uZSBCb3VsZXZhcmQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQjEgICAoaGV4KQkJVHJ1bmtOZXQKKzAwMzBCMSAgICAgKGJhc2UgMTYpCQlUcnVua05ldAorCQkJCUF1YmVyZ2VudmlsbGVyIEFsbGVlIDUxCisJCQkJRGllYnVyZyAgRC02NDgwNworCQkJCUdFUk1BTlkKKworMDAtMzAtQjIgICAoaGV4KQkJTC0zIFNvbm9tYSBFTworMDAzMEIyICAgICAoYmFzZSAxNikJCUwtMyBTb25vbWEgRU8KKwkJCQk0MjggQXZpYXRpb24gQmx2ZAorCQkJCVNhbnRhIFJvc2EgQ0EgOTU0MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUIzICAgKGhleCkJCVNhbiBWYWxsZXkgU3lzdGVtcywgSW5jLgorMDAzMEIzICAgICAoYmFzZSAxNikJCVNhbiBWYWxsZXkgU3lzdGVtcywgSW5jLgorCQkJCTIxMDUgUy4gQmFzY29tIEF2ZS4gLSBTdGUuICMzOTAKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQjQgICAoaGV4KQkJSU5URVJTSUwgQ09SUC4KKzAwMzBCNCAgICAgKGJhc2UgMTYpCQlJTlRFUlNJTCBDT1JQLgorCQkJCVAuTy4gQk9YIDg4MworCQkJCTI0MDEgUEFMTSBCQVkgUk9BRAorCQkJCU1FTEJPVVJORSBGTCAzMjkwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQjUgICAoaGV4KQkJVGFkaXJhbiBNaWNyb3dhdmUgTmV0d29ya3MKKzAwMzBCNSAgICAgKGJhc2UgMTYpCQlUYWRpcmFuIE1pY3Jvd2F2ZSBOZXR3b3JrcworCQkJCTQwMDAgR3JlZW5icmlhciBEcml2ZQorCQkJCVN0YWZmb3JkIFRYIDc3NDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1CNiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDMwQjYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRSAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUI3ICAgKGhleCkJCVRlbGV0cm9sIFN5c3RlbXMsIEluYy4KKzAwMzBCNyAgICAgKGJhc2UgMTYpCQlUZWxldHJvbCBTeXN0ZW1zLCBJbmMuCisJCQkJVGVjaG5vbG9neSBDZW50ZXIKKwkJCQkyODYgQ29tbWVyY2lhbCBTdHJlZXQKKwkJCQlNYW5jaGVzdGVyIE5IIDAzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1COCAgIChoZXgpCQlSaXZlckRlbHRhIE5ldHdvcmtzCiswMDMwQjggICAgIChiYXNlIDE2KQkJUml2ZXJEZWx0YSBOZXR3b3JrcworCQkJCVRocmVlIEhpZ2h3b29kIERyaXZlIEVhc3QKKwkJCQlUZXdrc2J1cnkgTUEgMDE4NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUI5ICAgKGhleCkJCUVDVEVMCiswMDMwQjkgICAgIChiYXNlIDE2KQkJRUNURUwKKwkJCQkyMjI0MCBDT01TQVQgRFJJVkUKKwkJCQlDTEFSS1NCVVJHIE1EIDIwODcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1CQSAgIChoZXgpCQlBQyZUIFNZU1RFTSBDTy4sIExURC4KKzAwMzBCQSAgICAgKGJhc2UgMTYpCQlBQyZUIFNZU1RFTSBDTy4sIExURC4KKwkJCQlST09NIDcwMiwgS0VVTS1XSEEgUExBWkEKKwkJCQkxMTQyLTUsIFNBTkJPTi1ET05HIEtPT05QTy1TSEksIEtZT05HS0ktCisJCQkJNDM1LTA0MCBTT1VUSCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC1CQiAgIChoZXgpCQlDYWNoZUZsb3csIEluYy4KKzAwMzBCQiAgICAgKGJhc2UgMTYpCQlDYWNoZUZsb3csIEluYy4KKwkJCQk2NTAgQWxtYW5vciBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQkMgICAoaGV4KQkJT3B0cm9uaWMgQUcKKzAwMzBCQyAgICAgKGJhc2UgMTYpCQlPcHRyb25pYyBBRworCQkJCXVudGVyZWdnZXJzdHJhc3NlIDUzCisJCQkJOTQwMyBHb2xkYWNoICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0zMC1CRCAgIChoZXgpCQlCRUxLSU4gQ09NUE9ORU5UUworMDAzMEJEICAgICAoYmFzZSAxNikJCUJFTEtJTiBDT01QT05FTlRTCisJCQkJNTAxIFdFU1QgV0FMTlVUIFNUUkVFVAorCQkJCUNPTVBUT04gQ0EgOTAyMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUJFICAgKGhleCkJCUNpdHktTmV0IFRlY2hub2xvZ3ksIEluYy4KKzAwMzBCRSAgICAgKGJhc2UgMTYpCQlDaXR5LU5ldCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTM1IEUuIENoZXNudXQgQXZlLiwgU3RlLgorCQkJCU1vbnJvdmlhIENBIDkxMDE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1CRiAgIChoZXgpCQlNVUxUSURBVEEgR01CSAorMDAzMEJGICAgICAoYmFzZSAxNikJCU1VTFRJREFUQSBHTUJICisJCQkJQUxTRkVMREVSIFNUUi4gMworCQkJCUQtNjQyODkgREFSTVNUQURUCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMzAtQzAgICAoaGV4KQkJTGFyYSBUZWNobm9sb2d5LCBJbmMuCiswMDMwQzAgICAgIChiYXNlIDE2KQkJTGFyYSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjM0NSBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQzEgICAoaGV4KQkJSEVXTEVUVC1QQUNLQVJECiswMDMwQzEgICAgIChiYXNlIDE2KQkJSEVXTEVUVC1QQUNLQVJECisJCQkJMTEwMDAgV09MRkUgUk9BRAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQzIgICAoaGV4KQkJQ09NT05FCiswMDMwQzIgICAgIChiYXNlIDE2KQkJQ09NT05FCisJCQkJUGFyYyBEZSBNYXJ0aWNvdAorCQkJCTMzNjEwIENlc3RhcyAgCisJCQkJRlJBTkNFCisKKzAwLTMwLUMzICAgKGhleCkJCUZMVUVDS0lHRVIgRUxFS1RST05JSyBBRworMDAzMEMzICAgICAoYmFzZSAxNikJCUZMVUVDS0lHRVIgRUxFS1RST05JSyBBRworCQkJCUtJUkNIQkFSR1NUUkFTU0UgMjAxCisJCQkJQ0gtMzQwMCBCVVJHRE9SRgorCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDAtMzAtQzQgICAoaGV4KQkJQ2Fub24gSW1hZ2luZyBTeXN0ZW1zIEluYy4KKzAwMzBDNCAgICAgKGJhc2UgMTYpCQlDYW5vbiBJbWFnaW5nIFN5c3RlbXMgSW5jLgorCQkJCTEtMjQgWW9uZXlhbWEsIENodW8ta3UKKwkJCQlOaWlnYXRhLXNoaSBOaWlnYXRhIDk1MC0wOTE2CisJCQkJSkFQQU4KKworMDAtMzAtQzUgICAoaGV4KQkJQ0FERU5DRSBERVNJR04gU1lTVEVNUworMDAzMEM1ICAgICAoYmFzZSAxNikJCUNBREVOQ0UgREVTSUdOIFNZU1RFTVMKKwkJCQlDQU5BREEsIExURC4KKwkJCQkyNDAtMTEzMCBNT1JSSVNPTiBEUklWRSBPVFRBV0EsIE9OVEFSSU8KKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMzAtQzYgICAoaGV4KQkJQ09OVFJPTCBTT0xVVElPTlMsIElOQy4KKzAwMzBDNiAgICAgKGJhc2UgMTYpCQlDT05UUk9MIFNPTFVUSU9OUywgSU5DLgorCQkJCTIwMSA4NVRIIEFWRU5VRSBOVworCQkJCU1JTk5FQVBPTElTIE1OIDU1NDMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1DNyAgIChoZXgpCQlNYWNyb21hdGUgQ29ycC4KKzAwMzBDNyAgICAgKGJhc2UgMTYpCQlNYWNyb21hdGUgQ29ycC4KKwkJCQk4RixVbml2ZXJzYWwgQ2VudGVyLE51bWJlciAxNzkKKwkJCQlTZWMuMSxUYS1UdW5nIFJvYWQsIEhzaS1DaGloCisJCQkJVGFpcGVpIEhzaWVuIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtQzggICAoaGV4KQkJR0FEIExJTkUsIExURC4KKzAwMzBDOCAgICAgKGJhc2UgMTYpCQlHQUQgTElORSwgTFRELgorCQkJCUJFSVQgUk9LQVIgSEFSIEhPVFpWSU0KKwkJCQlKRVJVU0FMRU0KKwkJCQlJU1JBRUwKKworMDAtMzAtQzkgICAoaGV4KQkJTHV4TiwgTgorMDAzMEM5ICAgICAoYmFzZSAxNikJCUx1eE4sIE4KKwkJCQk1NzAgTWF1ZGUgQ291cnQKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUNBICAgKGhleCkJCURpc2NvdmVyeSBDb20KKzAwMzBDQSAgICAgKGJhc2UgMTYpCQlEaXNjb3ZlcnkgQ29tCisJCQkJNDkzNSBDZW50dXJ5IFN0cmVldAorCQkJCUh1bnRzdmlsbGUgQUwgMzU4MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUNCICAgKGhleCkJCU9NTkkgRkxPVyBDT01QVVRFUlMsIElOQy4KKzAwMzBDQiAgICAgKGJhc2UgMTYpCQlPTU5JIEZMT1cgQ09NUFVURVJTLCBJTkMuCisJCQkJMTA3MDEgQ09SUE9SQVRFIERSSVZFLVNURS4jMzAwCisJCQkJU1RBRkZPUkQgVFggNzc0NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUNDICAgKGhleCkJCVRlbm9yIE5ldHdvcmtzLCBJbmMuCiswMDMwQ0MgICAgIChiYXNlIDE2KQkJVGVub3IgTmV0d29ya3MsIEluYy4KKwkJCQk1MCBOYWdvZyBQYXJrCisJCQkJQWN0b24gTUEgMDE3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUNEICAgKGhleCkJCUNPTkVYQU5UIFNZU1RFTVMsIElOQy4KKzAwMzBDRCAgICAgKGJhc2UgMTYpCQlDT05FWEFOVCBTWVNURU1TLCBJTkMuCisJCQkJNDMxMSBKQU1CT1JFRSBST0FECisJCQkJTkVXUE9SVCBCRUFDSCBDQSA5MjY2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQ0UgICAoaGV4KQkJWmFmZmlyZQorMDAzMENFICAgICAoYmFzZSAxNikJCVphZmZpcmUKKwkJCQkyNjMwIE9yY2hhcmQgUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTM0LTIwMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUNGICAgKGhleCkJCVRXTyBURUNITk9MT0dJRVMsIElOQy4KKzAwMzBDRiAgICAgKGJhc2UgMTYpCQlUV08gVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNDE5IFNBUkdPTiBXQVkKKwkJCQlIT1JTSEFNIFBBIDE5MDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1EMCAgIChoZXgpCQlUZWxsYWJzCiswMDMwRDAgICAgIChiYXNlIDE2KQkJVGVsbGFicworCQkJCTE3NTAgRm91bmRlcidzIFBhcmt3YXkKKwkJCQlTdWl0ZSAxMDAKKwkJCQlBbHBoYXJldHRhIEdBIDMwMDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1EMSAgIChoZXgpCQlJTk9WQSBDT1JQT1JBVElPTgorMDAzMEQxICAgICAoYmFzZSAxNikJCUlOT1ZBIENPUlBPUkFUSU9OCisJCQkJMTEwIEFWT04gU1RSRUVUCisJCQkJQ0hBUkxPVFRFU1ZJTEUgVkEgMjI5MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUQyICAgKGhleCkJCVdJTiBURUNITk9MT0dJRVMsIENPLiwgTFRELgorMDAzMEQyICAgICAoYmFzZSAxNikJCVdJTiBURUNITk9MT0dJRVMsIENPLiwgTFRELgorCQkJCTRGLTYsIE5vLiA4MSwgU2VjLiAxCisJCQkJSHNpbiBUYWkgV3UgUm9hZCwgSHNpLUNoaQorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC1EMyAgIChoZXgpCQlBZ2lsZW50IFRlY2hub2xvZ2llcworMDAzMEQzICAgICAoYmFzZSAxNikJCUFnaWxlbnQgVGVjaG5vbG9naWVzCisJCQkJMTUwMSBQYWdlIE1pbGwgUm9hZAorCQkJCVBhbG8gQWx0byBDQSA5NDMwNC0xMTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1ENCAgIChoZXgpCQlBQUUgU3lzdGVtcywgSW5jCiswMDMwRDQgICAgIChiYXNlIDE2KQkJQUFFIFN5c3RlbXMsIEluYworCQkJCTY0MiBOb3J0aCBQYXN0b3JpYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUQ1ICAgKGhleCkJCURSZXNlYXJjaCBHbWJICiswMDMwRDUgICAgIChiYXNlIDE2KQkJRFJlc2VhcmNoIEdtYkgKKwkJCQlPdHRvLVNjaG1pcmdhbC1TdHIuMworCQkJCTEwMzE5IEJlcmxpbiAgCisJCQkJR0VSTUFOWQorCiswMC0zMC1ENiAgIChoZXgpCQlNU0MgVkVSVFJJRUJTIEdNQkgKKzAwMzBENiAgICAgKGJhc2UgMTYpCQlNU0MgVkVSVFJJRUJTIEdNQkgKKwkJCQlJTkRVU1RSSUVTVFIuIDE2CisJCQkJRC03NjI5NyBTVFVURU5TRUUKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0zMC1ENyAgIChoZXgpCQlJbm5vdmF0aXZlIFN5c3RlbXMsIEwuTC5DLgorMDAzMEQ3ICAgICAoYmFzZSAxNikJCUlubm92YXRpdmUgU3lzdGVtcywgTC5MLkMuCisJCQkJMTAwMCBJbm5vdmF0aXZlIERyaXZlCisJCQkJTWl0Y2hlbGwgU0QgNTczMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUQ4ICAgKGhleCkJCVNJVEVLCiswMDMwRDggICAgIChiYXNlIDE2KQkJU0lURUsKKwkJCQlWSUEgTU9OVEUgRklPUklOTyA5CisJCQkJMzcwNTcgLSBTLiBHSU9WQU5OSSBMVVAuIFZFUk9OQQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtMzAtRDkgICAoaGV4KQkJREFUQUNPUkUgU09GVFdBUkUgQ09SUC4KKzAwMzBEOSAgICAgKGJhc2UgMTYpCQlEQVRBQ09SRSBTT0ZUV0FSRSBDT1JQLgorCQkJCUNPUlBPUkFURSBQQVJLCisJCQkJNjI2MSBOVyA2VEggV0FZICMxMTAKKwkJCQlGT1JUIExBVURFUkRBTEUgRkwgMzMzMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLURBICAgKGhleCkJCUNPTVRSRU5EIENPLgorMDAzMERBICAgICAoYmFzZSAxNikJCUNPTVRSRU5EIENPLgorCQkJCTNGLTEgMTAgTEFORSA2MDkgQ0hVTkcKKwkJCQlIU0lOIFJPQUQsIFNFQyA1LCBTQU4gQ0hVTkcgQ0lUWSwgVEFJUEVJCisJCQkJVEFJV0FOIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtREIgICAoaGV4KQkJTWluZHJlYWR5IFNvbHV0aW9ucywgSW5jLgorMDAzMERCICAgICAoYmFzZSAxNikJCU1pbmRyZWFkeSBTb2x1dGlvbnMsIEluYy4KKwkJCQkyODAwIE1hcmllLUN1cmllIEF2ZW51ZQorCQkJCVNhaW50LUxhdXJlbnQKKwkJCQlRdWViZWMgIEg0UyAyQzIKKwkJCQlDQU5BREEKKworMDAtMzAtREMgICAoaGV4KQkJUklHSFRFQ0ggQ09SUE9SQVRJT04KKzAwMzBEQyAgICAgKGJhc2UgMTYpCQlSSUdIVEVDSCBDT1JQT1JBVElPTgorCQkJCTRGLCBOTy4gMzUxLCBDSFVORy1TSFVOIFJELgorCQkJCVNFQy4gMiwgQ0hVTkctSE8gQ0lUWSBUQUlQRUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtREQgICAoaGV4KQkJSU5ESUdJVEEgQ09SUE9SQVRJT04KKzAwMzBERCAgICAgKGJhc2UgMTYpCQlJTkRJR0lUQSBDT1JQT1JBVElPTgorCQkJCTMwIENvcnBvcmF0ZSBQYXJrIERyaXZlCisJCQkJU3VpdGUgMzEwCisJCQkJSXJ2aW5lIENBIDkyNjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1ERSAgIChoZXgpCQlXQUdPIEtvbnRha3R0ZWNobmlrIEdtYkgKKzAwMzBERSAgICAgKGJhc2UgMTYpCQlXQUdPIEtvbnRha3R0ZWNobmlrIEdtYkgKKwkJCQlIYW5zYXN0cmFzc2UgMjcKKwkJCQkzMjQyMyBNaW5kZW4gIAorCQkJCUdFUk1BTlkKKworMDAtMzAtREYgICAoaGV4KQkJS0IvVEVMIFRFTEVDT01VTklDQUNJT05FUworMDAzMERGICAgICAoYmFzZSAxNikJCUtCL1RFTCBURUxFQ09NVU5JQ0FDSU9ORVMKKwkJCQlTLkEuIERFIEMuVi4KKwkJCQlUT1JSRSBURUxNRVggNCAgUElTTywgUExBWkEgQ1VJQ1VJTENPCisJCQkJTWV4aWNvIENpdHkgMTQwNjAgIAorCQkJCU1FWElDTworCiswMC0zMC1FMCAgIChoZXgpCQlPWEZPUkQgU0VNSUNPTkRVQ1RPUiBMVEQuCiswMDMwRTAgICAgIChiYXNlIDE2KQkJT1hGT1JEIFNFTUlDT05EVUNUT1IgTFRELgorCQkJCTI1IE1JTFRPTiBQQVJLCisJCQkJQWJpbmdkb24gT3hvbiBPWDE0IDRTSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTMwLUUxICAgKGhleCkJCU5ldHdvcmsgRXF1aXBtZW50IFRlY2hub2xvZ2llcywgSW5jLgorMDAzMEUxICAgICAoYmFzZSAxNikJCU5ldHdvcmsgRXF1aXBtZW50IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTY5MDAgUGFzZW8gUGFkcmUgUGFya3dheQorCQkJCUZyZW1vbnQgQ0EgOTQ1NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUUyICAgKGhleCkJCUdBUk5FVCBTWVNURU1TIENPLiwgTFRELgorMDAzMEUyICAgICAoYmFzZSAxNikJCUdBUk5FVCBTWVNURU1TIENPLiwgTFRELgorCQkJCVN1bmd3b24gQmxkZy4gNTQ1LTcKKwkJCQlEb2dvay1Eb25nLCBLYW5nbmFtLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC1FMyAgIChoZXgpCQlTRURPTkEgTkVUV09SS1MgQ09SUC4KKzAwMzBFMyAgICAgKGJhc2UgMTYpCQlTRURPTkEgTkVUV09SS1MgQ09SUC4KKwkJCQkxMEEgSEVBUlNUIFdBWQorCQkJCUtBTkFUQSwgIE9OVEFSSU8KKwkJCQlDQU5BREEgSzJMIDJQNAorCQkJCUNBTkFEQQorCiswMC0zMC1FNCAgIChoZXgpCQlDSElZT0RBIFNZU1RFTSBSSUtFTgorMDAzMEU0ICAgICAoYmFzZSAxNikJCUNISVlPREEgU1lTVEVNIFJJS0VOCisJCQkJMi03LCBLQU5EQS1OSVNISUtJLUNITworCQkJCUNISVlPREEtS1UgVE9LWU8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTMwLUU1ICAgKGhleCkJCUFtcGVyIERhdG9zIFMuQS4KKzAwMzBFNSAgICAgKGJhc2UgMTYpCQlBbXBlciBEYXRvcyBTLkEuCisJCQkJQy9NYXJjb25pIG4qMyAgKFBUTSkKKwkJCQlUcmVzIENhbnRvcworCQkJCTI4NzYwIE1hZHJpZCAgCisJCQkJU1BBSU4KKworMDAtMzAtRTYgICAoaGV4KQkJRHJhZWdlciBNZWRpY2FsIFN5c3RlbXMsIEluYy4KKzAwMzBFNiAgICAgKGJhc2UgMTYpCQlEcmFlZ2VyIE1lZGljYWwgU3lzdGVtcywgSW5jLgorCQkJCTYgVGVjaCBEcml2ZQorCQkJCUFuZG92ZXIgTUEgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUU3ICAgKGhleCkJCUNORiBNT0JJTEUgU09MVVRJT05TLCBJTkMuCiswMDMwRTcgICAgIChiYXNlIDE2KQkJQ05GIE1PQklMRSBTT0xVVElPTlMsIElOQy4KKwkJCQk3NzIyIEUuIEdSQVkgUk9BRAorCQkJCVNDT1RUU0RBTEUgQVogODUyNjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUU4ICAgKGhleCkJCUVOU0lNIENPUlAuCiswMDMwRTggICAgIChiYXNlIDE2KQkJRU5TSU0gQ09SUC4KKwkJCQkxMjE1IFRlcnJhIEJlbGxhIEF2ZS4KKwkJCQlNb3VudGFpbnZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUU5ICAgKGhleCkJCUdNQSBDT01NVU5JQ0FUSU9OIE1BTlVGQUNUJ0cKKzAwMzBFOSAgICAgKGJhc2UgMTYpCQlHTUEgQ09NTVVOSUNBVElPTiBNQU5VRkFDVCdHCisJCQkJTUFSS0VUSU5HLCAoMTk5MSkgTFRELgorCQkJCTEwMiBKQUJVVElOU0tJIFNUUkVFVCBLSVJZQVQgQVJJRSwgUEVUQUMKKwkJCQlJU1JBRUwgSVNSQUVMIDQ5MTMwCisJCQkJSVNSQUVMCisKKzAwLTMwLUVBICAgKGhleCkJCVRlcmFGb3JjZSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDMwRUEgICAgIChiYXNlIDE2KQkJVGVyYUZvcmNlIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQkxMTAwIEVYRUNVVElWRSBEUklWRQorCQkJCVJJQ0hBUkRTT04gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUVCICAgKGhleCkJCVRVUkJPTkVUIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDMwRUIgICAgIChiYXNlIDE2KQkJVFVSQk9ORVQgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxOUYtMSwgTk8uIDE3MSwgU1VORy1URUggUk9BRAorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC1FQyAgIChoZXgpCQlCT1JHQVJEVAorMDAzMEVDICAgICAoYmFzZSAxNikJCUJPUkdBUkRUCisJCQkJRElFU0VMU1RSLiAxNQorCQkJCUQ3MTY2NSBWQUlISU5HRU4vRU5aCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMzAtRUQgICAoaGV4KQkJRXhwZXJ0IE1hZ25ldGljcyBDb3JwLgorMDAzMEVEICAgICAoYmFzZSAxNikJCUV4cGVydCBNYWduZXRpY3MgQ29ycC4KKwkJCQkxMi9GLiwgVW5pdCBELCBNVEcgQmxkZy4sIDEtMywgTmFrYXNlCisJCQkJTWloYW1hLWt1LCBDaGliYS1jaXR5LCAyNjEtODUwMSAgCisJCQkJSkFQQU4KKworMDAtMzAtRUUgICAoaGV4KQkJRFNHIFRlY2hub2xvZ3ksIEluYy4KKzAwMzBFRSAgICAgKGJhc2UgMTYpCQlEU0cgVGVjaG5vbG9neSwgSW5jLgorCQkJCTZGLTQgTm8uIDI3MCwgQ2h3aWcgSHNpYW8KKwkJCQlFYXN0IFJvYWQsIFNlYy4gNAorCQkJCSBUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtRUYgICAoaGV4KQkJTkVPTiBURUNITk9MT0dZLCBJTkMuCiswMDMwRUYgICAgIChiYXNlIDE2KQkJTkVPTiBURUNITk9MT0dZLCBJTkMuCisJCQkJODUgV0VTVCBNT05UQUdVRSBFWFBSRVNTV0FZCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUYwICAgKGhleCkJCVVuaWZvcm0gSW5kdXN0cmlhbCBDb3JwLgorMDAzMEYwICAgICAoYmFzZSAxNikJCVVuaWZvcm0gSW5kdXN0cmlhbCBDb3JwLgorCQkJCTE4RiwgMTcxLCBTaHVuZyBUZWggUm9hZAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC1GMSAgIChoZXgpCQlBY2N0b24gVGVjaG5vbG9neSBDb3JwLgorMDAzMEYxICAgICAoYmFzZSAxNikJCUFjY3RvbiBUZWNobm9sb2d5IENvcnAuCisJCQkJTm8uIDEsIENyZWF0aW9uIFJkLiBJVgorCQkJCVMuRy5aLlAKKwkJCQlIc2luY2h1ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLUYyICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMzBGMiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA4NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRjMgICAoaGV4KQkJQXQgV29yayBDb21wdXRlcnMKKzAwMzBGMyAgICAgKGJhc2UgMTYpCQlBdCBXb3JrIENvbXB1dGVycworCQkJCVAuTy4gQm94IDk0NworCQkJCUNvcnZhbGxpcyBPUiA5NzMzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRjQgICAoaGV4KQkJU1RBUkRPVCBURUNITk9MT0dJRVMKKzAwMzBGNCAgICAgKGJhc2UgMTYpCQlTVEFSRE9UIFRFQ0hOT0xPR0lFUworCQkJCTY4MjAtSCBPUkFOR0UgVEhPUlBFIEFWRS4KKwkJCQlCVUVOQSBQQVJLIENBIDkwNjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1GNSAgIChoZXgpCQlXaWxkIExhYi4gTHRkLgorMDAzMEY1ICAgICAoYmFzZSAxNikJCVdpbGQgTGFiLiBMdGQuCisJCQkJMS0zMy0xNy02MDQgSGFyYXlhbWEKKwkJCQlVcmF3YSBDaXR5IFNhaXRhbWEgcHJpZi4gMzM2LTA5MzEgCisJCQkJSkFQQU4KKworMDAtMzAtRjYgICAoaGV4KQkJU0VDVVJFTE9HSVggQ09SUE9SQVRJT04KKzAwMzBGNiAgICAgKGJhc2UgMTYpCQlTRUNVUkVMT0dJWCBDT1JQT1JBVElPTgorCQkJCTEzNzUwIFNBTiBQRURSTworCQkJCVNBTiBBTlRPTklPIFRYIDc4MjMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1GNyAgIChoZXgpCQlSQU1JWCBJTkMuCiswMDMwRjcgICAgIChiYXNlIDE2KQkJUkFNSVggSU5DLgorCQkJCTE2NzIgRE9OTE9OIFNUUkVFVAorCQkJCVZFTlRVUkEgQ0EgOTMwMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUY4ICAgKGhleCkJCUR5bmFwcm8gU3lzdGVtcywgSW5jLgorMDAzMEY4ICAgICAoYmFzZSAxNikJCUR5bmFwcm8gU3lzdGVtcywgSW5jLgorCQkJCTgwMCBDYXJsZXRvbiBDb3VydAorCQkJCUFubmFjaXMgSXNsYW5kCisJCQkJTmV3IFdlc3RtaW5zdGVyIEJyaXRpc2ggQ29sdW1iaWEgVjNNIDZMMyAKKwkJCQlDQU5BREEKKworMDAtMzAtRjkgICAoaGV4KQkJU29sbGFlIFN5c3RlbXMgQ28uLCBMdGQuCiswMDMwRjkgICAgIChiYXNlIDE2KQkJU29sbGFlIFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJNjA3IEluY2hlbyBJVCBUb3dlcgorCQkJCTU5Mi01LCBEb2h3YS0xLWRvbmcKKwkJCQlOYW0tZ3UgSW5jaGVvbiAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMzAtRkEgICAoaGV4KQkJVEVMSUNBLCBJTkMuCiswMDMwRkEgICAgIChiYXNlIDE2KQkJVEVMSUNBLCBJTkMuCisJCQkJNzM0IEZPUkVTVCBTVFJFRVQsIEJMREcuCisJCQkJU1VJVEUgIzEwMAorCQkJCU1BUkxCT1JPIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1GQiAgIChoZXgpCQlBWlMgVGVjaG5vbG9neSBBRworMDAzMEZCICAgICAoYmFzZSAxNikJCUFaUyBUZWNobm9sb2d5IEFHCisJCQkJU3RlaW5iZWlzc3RyYXNzZSAyLTQKKwkJCQk3MjUxMCBTdGV0dGVuIEEuSy5NLiAgCisJCQkJR0VSTUFOWQorCiswMC0zMC1GQyAgIChoZXgpCQlUZXJhd2F2ZSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAzMEZDICAgICAoYmFzZSAxNikJCVRlcmF3YXZlIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMzA2OTUgSHVudHdvb2QgQXZlbnVlCisJCQkJSGF5d2FyZCBDQSA5NDU0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRkQgICAoaGV4KQkJSU5URUdSQVRFRCBTWVNURU1TIERFU0lHTgorMDAzMEZEICAgICAoYmFzZSAxNikJCUlOVEVHUkFURUQgU1lTVEVNUyBERVNJR04KKwkJCQkzNjUwLUcgQ0VOVFJFIENJUkNMRSBEUklWRQorCQkJCUZPUlQgTUlMTCBTQyAyOTcxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRkUgICAoaGV4KQkJRFNBIEdtYkgKKzAwMzBGRSAgICAgKGJhc2UgMTYpCQlEU0EgR21iSAorCQkJCVBhc2NhbHN0ci4gMjgKKwkJCQk1MjA3NiBBYWNoZW4gIAorCQkJCUdFUk1BTlkKKworMDAtMzAtRkYgICAoaGV4KQkJREFUQUZBQiBTWVNURU1TLCBJTkMuCiswMDMwRkYgICAgIChiYXNlIDE2KQkJREFUQUZBQiBTWVNURU1TLCBJTkMuCisJCQkJUk9PTSAjMTkxMCwgMTlGLCBOTy4gMzMzCisJCQkJS0VFTFVORyBST0FEIFNFQy4gMSwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMzLTZDICAgKGhleCkJCVN5bmFwU2Vuc2UgQ29ycG9yYXRpb24KKzAwMzM2QyAgICAgKGJhc2UgMTYpCQlTeW5hcFNlbnNlIENvcnBvcmF0aW9uCisJCQkJMjM2NSBJcm9uIFBvaW50IFJvYWQsIFN1aXRlIDEwMAorCQkJCUZvbHNvbSBDQSA5NTYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzQtRjEgICAoaGV4KQkJUmFkaWNvbSBSZXNlYXJjaCwgSW5jLgorMDAzNEYxICAgICAoYmFzZSAxNikJCVJhZGljb20gUmVzZWFyY2gsIEluYy4KKwkJCQkyMTQ4IEJlcmluZyBEcml2ZQorCQkJCVNhbiBKb3NlIENhIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zNS0zMiAgIChoZXgpCQlFbGVjdHJvLU1ldHJpY3MgQ29ycG9yYXRpb24KKzAwMzUzMiAgICAgKGJhc2UgMTYpCQlFbGVjdHJvLU1ldHJpY3MgQ29ycG9yYXRpb24KKwkJCQkyMzEgRW50ZXJwcmlzZSBSb2FkCisJCQkJSm9obnN0b3duIE5ldyBZb3JrIDEyMDk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zQS05OCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDNBOTggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zQS05OSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDNBOTkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zQS05QSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDNBOUEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zQS05QiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDNBOUIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zQS05QyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDNBOUMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zQS05RCAgIChoZXgpCQlORUMgQWNjZXNzVGVjaG5pY2EsIEx0ZC4KKzAwM0E5RCAgICAgKGJhc2UgMTYpCQlORUMgQWNjZXNzVGVjaG5pY2EsIEx0ZC4KKwkJCQk4MDAgU2hpbW9tYXRhCisJCQkJS2FrZWdhd2EgU2hpenVva2EgNDM2LTg1MDEKKwkJCQlKQVBBTgorCiswMC0zQS1BRiAgIChoZXgpCQlCbHVlQml0IEx0ZC4KKzAwM0FBRiAgICAgKGJhc2UgMTYpCQlCbHVlQml0IEx0ZC4KKwkJCQlVbml0IEIsIDIxL0YuLCA3OCBIdW5nIFRvIFJvYWQsCisJCQkJS3d1biBUb25nLCAKKwkJCQlLb3dsb29uLCAgIAorCQkJCUhPTkcgS09ORworCiswMC0zQy1DNSAgIChoZXgpCQlXT05XT08gRW5naW5lZXJpbmcgQ28uLCBMdGQKKzAwM0NDNSAgICAgKGJhc2UgMTYpCQlXT05XT08gRW5naW5lZXJpbmcgQ28uLCBMdGQKKwkJCQk3RiAyMDEsIFRlY2huby1QYXJrIFNzYW5nWW9uZyBJSUksIAorCQkJCTM2LTEgU2FtamVvbmctZG9uZyBPamVvbmctZ3UsCisJCQkJQnVjaGVvbiBDaXR5IEd5ZW9uZ2dpLURvIDQyMS04MDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtM0QtNDEgICAoaGV4KQkJSGF0dGVsYW5kIENvbXB1dGVyIEFTCiswMDNENDEgICAgIChiYXNlIDE2KQkJSGF0dGVsYW5kIENvbXB1dGVyIEFTCisJCQkJQWFtc29zZW4KKwkJCQlOZWRyZSBWYXRzIFJvZ2FsYW5kIDU1NzgKKwkJCQlOT1JXQVkKKworMDAtNDAtMDAgICAoaGV4KQkJUENJIENPTVBPTkVOVEVTIERBIEFNWk9OSUEgTFRECiswMDQwMDAgICAgIChiYXNlIDE2KQkJUENJIENPTVBPTkVOVEVTIERBIEFNWk9OSUEgTFRECisJCQkJUlVBIEpPU0VGIEtSWVNTCisJCQkJMTI5IC0gU0FPIFBBVUxPIC0gU1AKKwkJCQkwMTE0MCBCUkFTSUwKKwkJCQlCUkFaSUwKKworMDAtNDAtMDEgICAoaGV4KQkJWllYRUwgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwNDAwMSAgICAgKGJhc2UgMTYpCQlaWVhFTCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTRGLCAxMTEsIENIVU5HIFNIQU4gTi4gUk9BRAorCQkJCVNFQyAyLCAgVEFJUEVJCisJCQkJVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNDAtMDIgICAoaGV4KQkJUEVSTEUgU1lTVEVNUyBMSU1JVEVECiswMDQwMDIgICAgIChiYXNlIDE2KQkJUEVSTEUgU1lTVEVNUyBMSU1JVEVECisJCQkJNjAgUkVORlJFVyBEUklWRQorCQkJCU1BUktIQU0gT05UQVJJTworCQkJCUNBTkFEQSBMM1IgMEUxCisJCQkJQ0FOQURBCisKKzAwLTQwLTAzICAgKGhleCkJCUVtZXJzb24gUHJvY2VzcyBNYW5hZ2VtZW50IFBvd2VyICYgV2F0ZXIgU29sdXRpb25zLCBJbmMuCiswMDQwMDMgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBQcm9jZXNzIE1hbmFnZW1lbnQgUG93ZXIgJiBXYXRlciBTb2x1dGlvbnMsIEluYy4KKwkJCQkyMDAgQmV0YSBEcml2ZQorCQkJCVBJVFRTQlVSR0ggUEEgMTUyMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTA0ICAgKGhleCkJCUlDTSBDTy4gTFRELgorMDA0MDA0ICAgICAoYmFzZSAxNikJCUlDTSBDTy4gTFRELgorCQkJCTQtMi05IE5JSE9OQkFTSEkgTkFOSVdBLUtVCisJCQkJT1NBS0EsICg1NTYpCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC0wNSAgIChoZXgpCQlBTkkgQ09NTVVOSUNBVElPTlMgSU5DLgorMDA0MDA1ICAgICAoYmFzZSAxNikJCUFOSSBDT01NVU5JQ0FUSU9OUyBJTkMuCisJCQkJOCBBTlpJTworCQkJCUlSVklORSBDQSA5MjcxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMDYgICAoaGV4KQkJU0FNUE8gVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorMDA0MDA2ICAgICAoYmFzZSAxNikJCVNBTVBPIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKwkJCQkyNi0yIFRJTkctSFUsCisJCQkJVEEtS0FORyBUU1VOIEtVRUktU0hBTiBIU0lBTkcsIFRBT1lVQU4gSAorCQkJCTMzMzM0IFRBSVdBTiAzMzMzNCBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC00MC0wNyAgIChoZXgpCQlURUxNQVQgSU5GT1JNQVRJUVVFCiswMDQwMDcgICAgIChiYXNlIDE2KQkJVEVMTUFUIElORk9STUFUSVFVRQorCQkJCTYgUlVFIERFIEwnSU5EVVNUUklFCisJCQkJQlAgMTIgIDY4MzYwIFNPVUxUWgorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC00MC0wOCAgIChoZXgpCQlBIFBMVVMgSU5GTyBDT1JQT1JBVElPTgorMDA0MDA4ICAgICAoYmFzZSAxNikJCUEgUExVUyBJTkZPIENPUlBPUkFUSU9OCisJCQkJNUYsIE5PLjIsIExBTkUgMjM1CisJCQkJQkFPIENISUFPIFJPQUQgSFNJTiBUSUVOLCBUQUlQRUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNDAtMDkgICAoaGV4KQkJVEFDSElCQU5BIFRFQ1RST04gQ08uLCBMVEQuCiswMDQwMDkgICAgIChiYXNlIDE2KQkJVEFDSElCQU5BIFRFQ1RST04gQ08uLCBMVEQuCisJCQkJU1lTVEVNQVRJQyBFUVVJUE1FTlQgRElWSVNJT04KKwkJCQkyLTItNSBISUdBU0hJWUFNQSwgTUVHVVJPS1UgVE9LWU8sIDE1MworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtMEEgICAoaGV4KQkJUElWT1RBTCBURUNITk9MT0dJRVMsIElOQy4KKzAwNDAwQSAgICAgKGJhc2UgMTYpCQlQSVZPVEFMIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTEwMCBXLiBSSU5DT04gQVZFTlVFLVNURSAjMjExCisJCQkJQ0FNUEJFTEwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTBCICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNDAwQiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMEMgICAoaGV4KQkJR0VORVJBTCBNSUNSTyBTWVNURU1TLCBJTkMuCiswMDQwMEMgICAgIChiYXNlIDE2KQkJR0VORVJBTCBNSUNSTyBTWVNURU1TLCBJTkMuCisJCQkJUC5PLiBCT1ggMzY4OQorCQkJCVJBTkNITyBDVUNBTU9OR0EgQ0EgOTE3MjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTBEICAgKGhleCkJCUxBTk5FVCBEQVRBIENPTU1VTklDQVRJT05TLExURAorMDA0MDBEICAgICAoYmFzZSAxNikJCUxBTk5FVCBEQVRBIENPTU1VTklDQVRJT05TLExURAorCQkJCUFUSURJTSBURUNITk9MT0cnTCBQQVJLLCBCRy4jMworCQkJCVRFTCBBVklWIDYxMTMxCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTQwLTBFICAgKGhleCkJCU1FTU9URUMsIElOQy4KKzAwNDAwRSAgICAgKGJhc2UgMTYpCQlNRU1PVEVDLCBJTkMuCisJCQkJNzc1NSBIZW5yaS1Cb3VyYXNzYQorCQkJCU1PTlRSRUFMLCBRVUVCRUMgICBINFMgMVA3CisJCQkJQ0FOQURBCisKKzAwLTQwLTBGICAgKGhleCkJCURBVEFDT00gVEVDSE5PTE9HSUVTCiswMDQwMEYgICAgIChiYXNlIDE2KQkJREFUQUNPTSBURUNITk9MT0dJRVMKKwkJCQkxMTAwMSAzMVNUIFBMQUNFIFdFU1QKKwkJCQlFVkVSRVRUIFdBIDk4MjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0xMCAgIChoZXgpCQlTT05JQyBTWVNURU1TLCBJTkMuCiswMDQwMTAgICAgIChiYXNlIDE2KQkJU09OSUMgU1lTVEVNUywgSU5DLgorCQkJCTU3NSBQQVNUT1JJQSBOT1JUSCBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0xMSAgIChoZXgpCQlBTkRPVkVSIENPTlRST0xTIENPUlBPUkFUSU9OCiswMDQwMTEgICAgIChiYXNlIDE2KQkJQU5ET1ZFUiBDT05UUk9MUyBDT1JQT1JBVElPTgorCQkJCTMwMCBCUklDS1NUT05FIFNRVUFSRQorCQkJCUFORE9WRVIgTUEgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTEyICAgKGhleCkJCVdJTkRBVEEsIElOQy4KKzAwNDAxMiAgICAgKGJhc2UgMTYpCQlXSU5EQVRBLCBJTkMuCisJCQkJMTAgQkVBUkZPT1QgUk9BRAorCQkJCU5PUlRIQk9STyBNQSAwMTUzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMTMgICAoaGV4KQkJTlRUIERBVEEgQ09NTS4gU1lTVEVNUyBDT1JQLgorMDA0MDEzICAgICAoYmFzZSAxNikJCU5UVCBEQVRBIENPTU0uIFNZU1RFTVMgQ09SUC4KKwkJCQlERVZFTE9QTUVOVCBIRUFEUVVBUlRFUlMKKwkJCQlUT1lPU1UgQ0VOVEVSIEJMREcuLCAzLTMtMyBUT1lPU1UsIEtPVE8tCisJCQkJVE9LWU8gMTM1IFRPS1lPIDEzNSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLTE0ICAgKGhleCkJCUNPTVNPRlQgR01CSAorMDA0MDE0ICAgICAoYmFzZSAxNikJCUNPTVNPRlQgR01CSAorCQkJCVdBQ0hIQVVTU1RSLiA1QQorCQkJCTc1MDAgS0FSTFNSVUhFIDQxCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtMTUgICAoaGV4KQkJQVNDT00gSU5GUkFTWVMgQUcKKzAwNDAxNSAgICAgKGJhc2UgMTYpCQlBU0NPTSBJTkZSQVNZUyBBRworCQkJCURQVC4gRUFTTyAzNzI2CisJCQkJR0xVVFotQkxPVFpIRUlNU1RSLiAxIENILTQ1MDMgIFNPTE9USFVSTgorCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDAtNDAtMTYgICAoaGV4KQkJQURDIC0gR2xvYmFsIENvbm5lY3Rpdml0eSBTb2x1dGlvbnMgRGl2aXNpb24KKzAwNDAxNiAgICAgKGJhc2UgMTYpCQlBREMgLSBHbG9iYWwgQ29ubmVjdGl2aXR5IFNvbHV0aW9ucyBEaXZpc2lvbgorCQkJCVAuTy4gQm94IDExMDEKKwkJCQlNaW5uZWFwb2xpcyBNTiA1NTQ0MC0xMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0xNyAgIChoZXgpCQlTaWxleCBUZWNobm9sb2d5IEFtZXJpY2EKKzAwNDAxNyAgICAgKGJhc2UgMTYpCQlTaWxleCBUZWNobm9sb2d5IEFtZXJpY2EKKwkJCQkxNTcgV2VzdCA3MDY1IFNvdXRoCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQwNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTE4ICAgKGhleCkJCUFET0JFIFNZU1RFTVMsIElOQy4KKzAwNDAxOCAgICAgKGJhc2UgMTYpCQlBRE9CRSBTWVNURU1TLCBJTkMuCisJCQkJMTU4NSBDSEFSTEVTVE9OIFJPQUQKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0xOSAgIChoZXgpCQlBRU9OIFNZU1RFTVMsIElOQy4KKzAwNDAxOSAgICAgKGJhc2UgMTYpCQlBRU9OIFNZU1RFTVMsIElOQy4KKwkJCQk4NDAxIFdBU0hJTkdUT04gUExBQ0UgTkUKKwkJCQlBTEJVUVVFUlFVRSBOTSA4NzExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMUEgICAoaGV4KQkJRlVKSSBFTEVDVFJJQyBDTy4sIExURC4KKzAwNDAxQSAgICAgKGJhc2UgMTYpCQlGVUpJIEVMRUNUUklDIENPLiwgTFRELgorCQkJCU5FVyBZVVJBS1VDSE8gQkxERworCQkJCTEyLTEgWVVSQUtVQ0hPIDEtQ0hPTUUgQ0hJWU9EQS1LVSwgVE9LWU8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLTFCICAgKGhleCkJCVBSSU5URVIgU1lTVEVNUyBDT1JQLgorMDA0MDFCICAgICAoYmFzZSAxNikJCVBSSU5URVIgU1lTVEVNUyBDT1JQLgorCQkJCTIwNyBQRVJSWSBQQVJLV0FZCisJCQkJR0FJVEhFUlNCVVJHIE1EIDIwODc3LTIxNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTFDICAgKGhleCkJCUFTVCBSRVNFQVJDSCwgSU5DLgorMDA0MDFDICAgICAoYmFzZSAxNikJCUFTVCBSRVNFQVJDSCwgSU5DLgorCQkJCU1TIDItNzgKKwkJCQkxNjE1IEFMVE9OIFBBUktXQVkKKwkJCQlJUlZJTkUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTFEICAgKGhleCkJCUlOVklTSUJMRSBTT0ZUV0FSRSwgSU5DLgorMDA0MDFEICAgICAoYmFzZSAxNikJCUlOVklTSUJMRSBTT0ZUV0FSRSwgSU5DLgorCQkJCTExNDIgQ0hFU1MgRFJJVkUKKwkJCQlGT1NURVIgQ0lUWSBDQSA5NDQwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMUUgICAoaGV4KQkJSUNDCiswMDQwMUUgICAgIChiYXNlIDE2KQkJSUNDCisJCQkJODIzMCBNT05UR09NRVJZIFJPQUQKKwkJCQlDSU5DSU5OQVRJIE9IIDQ1MjM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0xRiAgIChoZXgpCQlDT0xPUkdSQVBIIExURAorMDA0MDFGICAgICAoYmFzZSAxNikJCUNPTE9SR1JBUEggTFRECisJCQkJVU5JVCAyLCBNQVJTIEhPVVNFCisJCQkJQ0FMTEVWQSBQQVJLLCBBTERFUk1BU1RPTiBOUi4gUkVBRElORywgQgorCQkJCVJHNyA0UVcgLSBVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLTIwICAgKGhleCkJCVRFIENvbm5lY3Rpdml0eSBMdGQuCiswMDQwMjAgICAgIChiYXNlIDE2KQkJVEUgQ29ubmVjdGl2aXR5IEx0ZC4KKwkJCQlLaW5tZWwgUGFyaworCQkJCUJvZGVsd3lkZGFuIFJIWUwgTEwxOCA1VFoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC00MC0yMSAgIChoZXgpCQlSQVNURVIgR1JBUEhJQ1MKKzAwNDAyMSAgICAgKGJhc2UgMTYpCQlSQVNURVIgR1JBUEhJQ1MKKwkJCQkyODUgTi4gV09MRkUgUk9BRAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMjIgICAoaGV4KQkJS0xFVkVSIENPTVBVVEVSUywgSU5DLgorMDA0MDIyICAgICAoYmFzZSAxNikJCUtMRVZFUiBDT01QVVRFUlMsIElOQy4KKwkJCQkxMDI4IFcuIE1BVURFIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMjMgICAoaGV4KQkJTE9HSUMgQ09SUE9SQVRJT04KKzAwNDAyMyAgICAgKGJhc2UgMTYpCQlMT0dJQyBDT1JQT1JBVElPTgorCQkJCTMtMTQtMTAgTUVJSkktU0VJTUVJIEJVSUxESU5HCisJCQkJTUlUQSBNSU5BVE8tS1UgVE9LWU8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLTI0ICAgKGhleCkJCUNPTVBBQyBJTkMuCiswMDQwMjQgICAgIChiYXNlIDE2KQkJQ09NUEFDIElOQy4KKwkJCQkxNi03IE5JSE9OQkFTSSBIQU1BQ0hPIDMtQ0hPCisJCQkJQ0hVTy1LVSwgVE9LWU8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLTI1ICAgKGhleCkJCU1PTEVDVUxBUiBEWU5BTUlDUworMDA0MDI1ICAgICAoYmFzZSAxNikJCU1PTEVDVUxBUiBEWU5BTUlDUworCQkJCTg4MCBFQVNUIEFSUVVFUyBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYtNDUzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMjYgICAoaGV4KQkJQnVmZmFsbywgSW5jCiswMDQwMjYgICAgIChiYXNlIDE2KQkJQnVmZmFsbywgSW5jCisJCQkJTUVMQ08gSEktVEVDSCBDRU5URVIsCisJCQkJNC0xNSAgU2hpYmF0YSwgSG9uZG9yaSwgCisJCQkJTUlOQU1JLUtVLCBOQUdPWUEgQWljaGkgNDU3LTg1MjAKKwkJCQlKQVBBTgorCiswMC00MC0yNyAgIChoZXgpCQlTTUMgTUFTU0FDSFVTRVRUUywgSU5DLgorMDA0MDI3ICAgICAoYmFzZSAxNikJCVNNQyBNQVNTQUNIVVNFVFRTLCBJTkMuCisJCQkJMjUgV0FMS0VSUyBCUk9PSyBEUklWRQorCQkJCVJFQURJTkcgTUEgMDE4NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTI4ICAgKGhleCkJCU5FVENPTU0gTElNSVRFRAorMDA0MDI4ICAgICAoYmFzZSAxNikJCU5FVENPTU0gTElNSVRFRAorCQkJCTMgT0xZTVBJQyBCVVNJTkVTUyBDRU5UUkUKKwkJCQlQQVlDT0NLRSBST0FEIEJBU0lMRE9OLCBFU1NFWCBTUzE0IDNFWAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtMjkgICAoaGV4KQkJQ09NUEVYCiswMDQwMjkgICAgIChiYXNlIDE2KQkJQ09NUEVYCisJCQkJQi5QLiAzNQorCQkJCTc0MzcxIFBSSU5HWS1GUkFOQ0UKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtNDAtMkEgICAoaGV4KQkJQ0FOT0dBLVBFUktJTlMKKzAwNDAyQSAgICAgKGJhc2UgMTYpCQlDQU5PR0EtUEVSS0lOUworCQkJCTIxMDEyIExBU1NFTiBTVFJFRVQKKwkJCQlDSEFUU1dPUlRIIENBIDkxMzExLTQyNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTJCICAgKGhleCkJCVRSSUdFTSBDT01QVVRFUiwgSU5DLgorMDA0MDJCICAgICAoYmFzZSAxNikJCVRSSUdFTSBDT01QVVRFUiwgSU5DLgorCQkJCUtJU1VORyBCL0QgNEYsIDc4NC02CisJCQkJWUVPS1NBTS1ET05HLCBLQU5HTkFNLUdVCisJCQkJU0VPVUwgS09SRUEgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC00MC0yQyAgIChoZXgpCQlJU0lTIERJU1RSSUJVVEVEIFNZU1RFTVMsIElOQy4KKzAwNDAyQyAgICAgKGJhc2UgMTYpCQlJU0lTIERJU1RSSUJVVEVEIFNZU1RFTVMsIElOQy4KKwkJCQkxMTEgU09VVEggQ0FZVUdBIFNUUkVFVAorCQkJCVNVSVRFICMyMDAKKwkJCQlJVEhBQ0EgTlkgMTQ4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTJEICAgKGhleCkJCUhBUlJJUyBBREFDT00gQ09SUE9SQVRJT04KKzAwNDAyRCAgICAgKGJhc2UgMTYpCQlIQVJSSVMgQURBQ09NIENPUlBPUkFUSU9OCisJCQkJMTEwMCBWRU5UVVJFIENPVVJUCisJCQkJQ0FSUk9MTFRPTiBUWCA3NTAwNi01NDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0yRSAgIChoZXgpCQlQUkVDSVNJT04gU09GVFdBUkUsIElOQy4KKzAwNDAyRSAgICAgKGJhc2UgMTYpCQlQUkVDSVNJT04gU09GVFdBUkUsIElOQy4KKwkJCQk2MDAgUyBGRURFUkFMIEhXWSBTVEUKKwkJCQlERUVSRklFTEQgQkVBQ0ggRkwgMzM0NDEtNDE5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMkYgICAoaGV4KQkJWExOVCBERVNJR05TIElOQy4KKzAwNDAyRiAgICAgKGJhc2UgMTYpCQlYTE5UIERFU0lHTlMgSU5DLgorCQkJCTE1MDUwIEFWRU5VRSBPRiBTQ0lFTkNFCisJCQkJU1VJVEUgMjAwCisJCQkJU0FOIERJRUdPIENBIDkyMTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0zMCAgIChoZXgpCQlHSyBDT01QVVRFUgorMDA0MDMwICAgICAoYmFzZSAxNikJCUdLIENPTVBVVEVSCisJCQkJQkFTTEVSIFNUUkFTU0UgMTAzCisJCQkJRC03ODAwIEZSRUlCVVJHCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtMzEgICAoaGV4KQkJS09LVVNBSSBFTEVDVFJJQyBDTy4sIExURAorMDA0MDMxICAgICAoYmFzZSAxNikJCUtPS1VTQUkgRUxFQ1RSSUMgQ08uLCBMVEQKKwkJCQkyLTEgWUFTVVVDSEkKKwkJCQlZQVRTVU8tTUFDSEkgTkVJR1VOCisJCQkJVE9ZQU1BIDkzOS0yMyBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLTMyICAgKGhleCkJCURJR0lUQUwgQ09NTVVOSUNBVElPTlMKKzAwNDAzMiAgICAgKGJhc2UgMTYpCQlESUdJVEFMIENPTU1VTklDQVRJT05TCisJCQkJQVNTT0NJQVRFUywgSU5DLgorCQkJCTIwMTAgRk9SVFVORSBEUklWRSwgIzEwMQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0zMyAgIChoZXgpCQlBRERUUk9OIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDQwMzMgICAgIChiYXNlIDE2KQkJQUREVFJPTiBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCTQ2NTYwIEZSRU1PTlQgQkxWRC4gIzMwMworCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTM0ICAgKGhleCkJCUJVU1RFSyBDT1JQT1JBVElPTgorMDA0MDM0ICAgICAoYmFzZSAxNikJCUJVU1RFSyBDT1JQT1JBVElPTgorCQkJCTQxNTEgQlVSVE9OIERSSVZFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTM1ICAgKGhleCkJCU9QQ09NCiswMDQwMzUgICAgIChiYXNlIDE2KQkJT1BDT00KKwkJCQkxMjE1IFcuIENST1NCWSBSRC4KKwkJCQlDQVJST0xMVE9OIFRYIDc1MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0zNiAgIChoZXgpCQlUUklCRSBDT01QVVRFUiBXT1JLUywgSU5DLgorMDA0MDM2ICAgICAoYmFzZSAxNikJCVRSSUJFIENPTVBVVEVSIFdPUktTLCBJTkMuCisJCQkJMTE5NSBQQVJLIEFWRU5VRS1TVEUgIzIxMQorCQkJCUVNRVJZVklMTEUgQ0EgOTQ2MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTM3ICAgKGhleCkJCVNFQS1JTEFOLCBJTkMuCiswMDQwMzcgICAgIChiYXNlIDE2KQkJU0VBLUlMQU4sIElOQy4KKwkJCQkxNDYwMiBOT1JUSCBVUyBISUdIV0FZICMzMQorCQkJCUNBUk1FTCBJTiA0NjAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMzggICAoaGV4KQkJVEFMRU5UIEVMRUNUUklDIElOQ09SUE9SQVRFRAorMDA0MDM4ICAgICAoYmFzZSAxNikJCVRBTEVOVCBFTEVDVFJJQyBJTkNPUlBPUkFURUQKKwkJCQkzUkQgRkwuLCBOTy4gMjYwLCBQQSBURUggUk9BRAorCQkJCVNFQy4gMiBUQUlQRUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNDAtMzkgICAoaGV4KQkJT1BURUMgREFJSUNISSBERU5LTyBDTy4sIExURC4KKzAwNDAzOSAgICAgKGJhc2UgMTYpCQlPUFRFQyBEQUlJQ0hJIERFTktPIENPLiwgTFRELgorCQkJCUZJQkVSIE9QVElDUyAmIFRFTEVDT00uIERJVi4KKwkJCQkzLTEtMSBNQVJVTk9VQ0hJIENISVlPREFLVSBUT0tZTyAxMDAKKwkJCQlKQVBBTgorCiswMC00MC0zQSAgIChoZXgpCQlJTVBBQ1QgVEVDSE5PTE9HSUVTCiswMDQwM0EgICAgIChiYXNlIDE2KQkJSU1QQUNUIFRFQ0hOT0xPR0lFUworCQkJCTYgUlVFIERFIEwnQUNBRElFCisJCQkJWi5BLiBDT1VSVEFCT0VVRiA5MTk1MyBMRVMgVUxJUyBDRURFWAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC00MC0zQiAgIChoZXgpCQlTWU5FUkpFVCBJTlRFUk5BVElPTkFMIENPUlAuCiswMDQwM0IgICAgIChiYXNlIDE2KQkJU1lORVJKRVQgSU5URVJOQVRJT05BTCBDT1JQLgorCQkJCTVGLCBOTyAzNSwgS1VBTkcgRlUgUy4gUk9BRAorCQkJCVRBSVBFSSwKKwkJCQlUQUlXQU4gUi4gTy4gQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLTNDICAgKGhleCkJCUZPUktTLCBJTkMuCiswMDQwM0MgICAgIChiYXNlIDE2KQkJRk9SS1MsIElOQy4KKwkJCQkxLTI3LTQgSVJJWUEsCisJCQkJSVJJWUEgMS0yNy00IFRBSVRPLAorCQkJCTExMCBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLTNEICAgKGhleCkJCVRFUkFEQVRBCiswMDQwM0QgICAgIChiYXNlIDE2KQkJVEVSQURBVEEKKwkJCQkxMDAgTi4gU0VQVUxWRURBIEJMVkQuCisJCQkJRUwgU0VHVU5ETyBDQSA5MDI0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtM0UgICAoaGV4KQkJUkFTVEVSIE9QUyBDT1JQT1JBVElPTgorMDA0MDNFICAgICAoYmFzZSAxNikJCVJBU1RFUiBPUFMgQ09SUE9SQVRJT04KKwkJCQkyNTAwIFdBTFNIIEFWRU5VRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0zRiAgIChoZXgpCQlTU0FOR1lPTkcgQ09NUFVURVIgU1lTVEVNUworMDA0MDNGICAgICAoYmFzZSAxNikJCVNTQU5HWU9ORyBDT01QVVRFUiBTWVNURU1TCisJCQkJQ09SUE9SQVRJT04KKwkJCQk2MC0xLCAzR0EsIENIVU5HTVUtUk8sIEpVTkctR1UgU0VPVUwKKwkJCQlLT1JFQSAxMDAtNzA1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTQwLTQwICAgKGhleCkJCVJJTkcgQUNDRVNTLCBJTkMuCiswMDQwNDAgICAgIChiYXNlIDE2KQkJUklORyBBQ0NFU1MsIElOQy4KKwkJCQk5NTctUiBJTkRVU1RSSUFMIFJPQUQKKwkJCQlTQU4gQ0FSTE9TIENBIDk0MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC00MSAgIChoZXgpCQlGVUpJS1VSQSBMVEQuCiswMDQwNDEgICAgIChiYXNlIDE2KQkJRlVKSUtVUkEgTFRELgorCQkJCTEtNS0xLCBLSUJBLCBLT1RPLUtVCisJCQkJVE9LWU8gMTM1CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC00MiAgIChoZXgpCQlOLkEuVC4gR01CSAorMDA0MDQyICAgICAoYmFzZSAxNikJCU4uQS5ULiBHTUJICisJCQkJR09FVEhFU1RSLiAyCisJCQkJNTIxMCBUUk9JU0RPUkYtU0lFR0xBUgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLTQzICAgKGhleCkJCU5va2lhIFNpZW1lbnMgTmV0d29ya3MgR21iSCAmIENvLiBLRy4KKzAwNDA0MyAgICAgKGJhc2UgMTYpCQlOb2tpYSBTaWVtZW5zIE5ldHdvcmtzIEdtYkggJiBDby4gS0cuCisJCQkJV2VybmVyLXZvbi1TaWVtZW5zIFN0ci4gMi02CisJCQkJQnJ1Y2hzYWwgQmFkZW4tV3VydGVtYmVyZyA3NjY0NgorCQkJCUZJTkxBTkQKKworMDAtNDAtNDQgICAoaGV4KQkJUU5JWCBDT01QVVRFUiBDTy4sIExURC4KKzAwNDA0NCAgICAgKGJhc2UgMTYpCQlRTklYIENPTVBVVEVSIENPLiwgTFRELgorCQkJCTgsOUYgS09SRUFOIFRFQUNIRVInUyBNVVQuQkxERworCQkJCTM1LTMsIFlFT1VJRE9fRE9ORywgWUVPTkdERVVOR1BPX0dVCisJCQkJU0VPVUwgS09SRUEgMTUwLTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC00MC00NSAgIChoZXgpCQlUV0lOSEVBRCBDT1JQT1JBVElPTgorMDA0MDQ1ICAgICAoYmFzZSAxNikJCVRXSU5IRUFEIENPUlBPUkFUSU9OCisJCQkJMTUzNyBDRU5UUkUgUE9JTlRFIERSSVZFCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTQ2ICAgKGhleCkJCVVEQyBSRVNFQVJDSCBMSU1JVEVECiswMDQwNDYgICAgIChiYXNlIDE2KQkJVURDIFJFU0VBUkNIIExJTUlURUQKKwkJCQk4QSBLSU5HIFdBTiBJTkRVU1RSSUFMIEJMREcuCisJCQkJNTQgSFVORyBUTyBST0FELCBLV1VOIFRPTkcKKwkJCQlIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtNDAtNDcgICAoaGV4KQkJV0lORCBSSVZFUiBTWVNURU1TCiswMDQwNDcgICAgIChiYXNlIDE2KQkJV0lORCBSSVZFUiBTWVNURU1TCisJCQkJMTAxMCBBVExBTlRJQyBBVkVOVUUKKwkJCQlBTEFNRURBIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC00OCAgIChoZXgpCQlTTUQgSU5GT1JNQVRJQ0EgUy5BLgorMDA0MDQ4ICAgICAoYmFzZSAxNikJCVNNRCBJTkZPUk1BVElDQSBTLkEuCisJCQkJTEFSR08gTU9WSU1FTlRPIERBUyBGT1JDQVMKKwkJCQlBUk1BREFTLCA0IEFMRlJBR0lERSwgIDI3MDAgQU1BRE9SQQorCQkJCVBPUlRVR0FMCisJCQkJUE9SVFVHQUwKKworMDAtNDAtNDkgICAoaGV4KQkJVEVHSU1FTlRBIEFHCiswMDQwNDkgICAgIChiYXNlIDE2KQkJVEVHSU1FTlRBIEFHCisJCQkJRk9SUkVOU1RSQVNTRQorCQkJCUNILTYzNDMgUk9US1JFVVoKKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTQwLTRBICAgKGhleCkJCVdFU1QgQVVTVFJBTElBTiBERVBBUlRNRU5UCiswMDQwNEEgICAgIChiYXNlIDE2KQkJV0VTVCBBVVNUUkFMSUFOIERFUEFSVE1FTlQKKwkJCQlPRiBFTVBMT1lNRU5UIChERVZFVCkKKwkJCQlMRVZFUiAyLCAxNTEgUk9ZQUwgU1QuIEVBU1QgUEVSVEggIDYwMDEKKwkJCQlXRVNURVJOIEFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC00MC00QiAgIChoZXgpCQlNQVBMRSBDT01QVVRFUiBTWVNURU1TCiswMDQwNEIgICAgIChiYXNlIDE2KQkJTUFQTEUgQ09NUFVURVIgU1lTVEVNUworCQkJCVAuTy4gQk9YIDEwMDUwCisJCQkJU1QuIEpPSE4nUywgTkYKKwkJCQlDQU5BREEgQUxBIDRMNQorCQkJCUNBTkFEQQorCiswMC00MC00QyAgIChoZXgpCQlIWVBFUlRFQyBQVFkgTFRELgorMDA0MDRDICAgICAoYmFzZSAxNikJCUhZUEVSVEVDIFBUWSBMVEQuCisJCQkJUC5PLiBCT1ggMTc4MgorCQkJCU1BQ1FVQVJJRSBDRU5UUkUgTlNXLCAyMTEzCisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLTQwLTREICAgKGhleCkJCVRFTEVDT01NVU5JQ0FUSU9OUyBURUNITklRVUVTCiswMDQwNEQgICAgIChiYXNlIDE2KQkJVEVMRUNPTU1VTklDQVRJT05TIFRFQ0hOSVFVRVMKKwkJCQlNL1MKKwkJCQkyMDQwMCBPQlNFUlZBVElPTiBEUklWRQorCQkJCUdFUk1BTlRPV04gTUQgMjA4NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTRFICAgKGhleCkJCUZMVUVOVCwgSU5DLgorMDA0MDRFICAgICAoYmFzZSAxNikJCUZMVUVOVCwgSU5DLgorCQkJCTU5NCBXT1JDRVNURVIgUk9BRC1TVEUuIzMwOAorCQkJCU5BVElDSyBNQSAwMTc2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNEYgICAoaGV4KQkJU1BBQ0UgJiBOQVZBTCBXQVJGQVJFIFNZU1RFTVMKKzAwNDA0RiAgICAgKGJhc2UgMTYpCQlTUEFDRSAmIE5BVkFMIFdBUkZBUkUgU1lTVEVNUworCQkJCU5VV0MKKwkJCQlDT0RFIDIyMjIsICBCTERHIDExNzEtMworCQkJCU5FV1BPUlQgUkkgMDI4NDEtNTA0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNTAgICAoaGV4KQkJSVJPTklDUywgSU5DT1JQT1JBVEVECiswMDQwNTAgICAgIChiYXNlIDE2KQkJSVJPTklDUywgSU5DT1JQT1JBVEVECisJCQkJNzY3IFdBUlJFTiBSRAorCQkJCUlUSEFDQSBOLlkuIDE0ODUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC01MSAgIChoZXgpCQlHUkFDSUxJUywgSU5DLgorMDA0MDUxICAgICAoYmFzZSAxNikJCUdSQUNJTElTLCBJTkMuCisJCQkJNjIzIFBBTEFDRSBTVFJFRVQKKwkJCQlBVVJPUkEgSUwgNjA1MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTUyICAgKGhleCkJCVNUQVIgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDQwNTIgICAgIChiYXNlIDE2KQkJU1RBUiBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk1MTUgU0hBVyBST0FECisJCQkJU1RFUkxJTkcgVkEgMjIwNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTUzICAgKGhleCkJCUFNUFJPIENPTVBVVEVSUworMDA0MDUzICAgICAoYmFzZSAxNikJCUFNUFJPIENPTVBVVEVSUworCQkJCTk5MCBBTE1PTkRPUiBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTU0ICAgKGhleCkJCUNPTk5FQ1RJT04gTUFDSElORVMgU0VSVklDRVMKKzAwNDA1NCAgICAgKGJhc2UgMTYpCQlDT05ORUNUSU9OIE1BQ0hJTkVTIFNFUlZJQ0VTCisJCQkJMTIgSEVOU0hBVyBTVFJFRVQKKwkJCQlXT0JVUk4gTUEgMDE4MDEtNDY2NjY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC01NSAgIChoZXgpCQlNRVRST05JWCBHTUJICiswMDQwNTUgICAgIChiYXNlIDE2KQkJTUVUUk9OSVggR01CSAorCQkJCU5FVUUgS05PQ0hFTkhBVUVSU1RSQUJFIDUKKwkJCQlELTMzMDAgQlJBVU5TQ0hXRUlHCisJCQkJV0VTVCBHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC01NiAgIChoZXgpCQlNQ00gSkFQQU4gTFRELgorMDA0MDU2ICAgICAoYmFzZSAxNikJCU1DTSBKQVBBTiBMVEQuCisJCQkJU1lVVUtBRU4gQkxELiAyLTExLTEKKwkJCQlLT01BWkFXQSBTRVRBR0FZQS1LVSBUT0tZTyAxNTQKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLTU3ICAgKGhleCkJCUxPQ0tIRUVEIC0gU0FOREVSUworMDA0MDU3ICAgICAoYmFzZSAxNikJCUxPQ0tIRUVEIC0gU0FOREVSUworCQkJCURBTklFTCBXRUJTVEVSIEhJR0hXQVkgU09VVEgKKwkJCQlQLk8uIEJPWCA4NjgKKwkJCQlOQVNIVUEgTkggMDMwNjEtMDg2OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNTggICAoaGV4KQkJS1JPTk9TLCBJTkMuCiswMDQwNTggICAgIChiYXNlIDE2KQkJS1JPTk9TLCBJTkMuCisJCQkJNDAwIEZJRlRIIEFWRU5VRQorCQkJCVdBTFRIQU0gTUEgMDIxNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTU5ICAgKGhleCkJCVlPU0hJREEgS09HWU8gSy4gSy4KKzAwNDA1OSAgICAgKGJhc2UgMTYpCQlZT1NISURBIEtPR1lPIEsuIEsuCisJCQkJVEVDSE5JQ0FMIFJFU0VBUkNIIERFUFQuCisJCQkJMjAwIFlPU0hJREEgS1VST0JFIENJVFkgVE9ZQU1BIFBSRUYuCisJCQkJOTM5IEpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtNUEgICAoaGV4KQkJR09MRFNUQVIgSU5GT1JNQVRJT04gJiBDT01NLgorMDA0MDVBICAgICAoYmFzZSAxNikJCUdPTERTVEFSIElORk9STUFUSU9OICYgQ09NTS4KKwkJCQk1MzMsIEhPR0FFLURPTkcsIEFOWUFORy1TSEkKKwkJCQlLWU9OR0tJLURPIDQzMC0wODAKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC00MC01QiAgIChoZXgpCQlGVU5BU1NFVCBMSU1JVEVECiswMDQwNUIgICAgIChiYXNlIDE2KQkJRlVOQVNTRVQgTElNSVRFRAorCQkJCU9SQ0hBUkRTLCAxNCBUT1dOU0VORAorCQkJCVNPTUVSU0VUIFRBMTkgT0FVIElMTUlOU1RFUgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtNUMgICAoaGV4KQkJRlVUVVJFIFNZU1RFTVMsIElOQy4KKzAwNDA1QyAgICAgKGJhc2UgMTYpCQlGVVRVUkUgU1lTVEVNUywgSU5DLgorCQkJCVJPT00gMTAyIERPTkcgQkFORyBCL0QsCisJCQkJWUVPRyBTQU0tRE9ORyA3NDAtNSwgS0FORyBOQU0tS1UKKwkJCQlTRU9VTCAxMzAtMDgwIFNFT1VMIDEzMC0wODAgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNDAtNUQgICAoaGV4KQkJU1RBUi1URUssIElOQy4KKzAwNDA1RCAgICAgKGJhc2UgMTYpCQlTVEFSLVRFSywgSU5DLgorCQkJCTcxIExZTUFOIFNUUkVFVAorCQkJCU5PUlRIQk9STyBNQSAwMTUzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNUUgICAoaGV4KQkJTk9SVEggSElMTFMgSVNSQUVMCiswMDQwNUUgICAgIChiYXNlIDE2KQkJTk9SVEggSElMTFMgSVNSQUVMCisJCQkJUC5PLiBCT1ggMTI4MAorCQkJCVlPS05FQU0gMjA2OTIKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtNDAtNUYgICAoaGV4KQkJQUZFIENPTVBVVEVSUyBMVEQuCiswMDQwNUYgICAgIChiYXNlIDE2KQkJQUZFIENPTVBVVEVSUyBMVEQuCisJCQkJNjIgQU5DSE9SQUdFIFJPQUQKKwkJCQlTVVRUT04gQ09MREZJRUxEIFdFU1QgTUlETEFORFMgQjc0IDJQRworCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtNjAgICAoaGV4KQkJQ09NRU5ERUMgTFRECiswMDQwNjAgICAgIChiYXNlIDE2KQkJQ09NRU5ERUMgTFRECisJCQkJRU5URVJQUklTRSBXQVksCisJCQkJQVNUT04gU0NJRU5DRSBQQVJLLCBBU1RPTiBUUklBTkdMRQorCQkJCUJJUk1JTkdIQU0gQklSTUlOR0hBTSBFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtNjEgICAoaGV4KQkJREFUQVRFQ0ggRU5URVJQUklTRVMgQ08uLCBMVEQuCiswMDQwNjEgICAgIChiYXNlIDE2KQkJREFUQVRFQ0ggRU5URVJQUklTRVMgQ08uLCBMVEQuCisJCQkJKExJTiBLT1UgSU5EVVNUUklBTCBaT05FIFNFQyw0CisJCQkJMjcsIEhTSS1TSElIIExBS0UgUk9BRCBLVUVJLVNIQU4gSFNJQU5HCisJCQkJVEFPWVVBTiBDT1VOVFkgVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNDAtNjIgICAoaGV4KQkJRS1TWVNURU1TLCBJTkMuL0dBUkxBTkQgRElWLgorMDA0MDYyICAgICAoYmFzZSAxNikJCUUtU1lTVEVNUywgSU5DLi9HQVJMQU5EIERJVi4KKwkJCQlQLk8uIEJPWCA2NjAwMjMKKwkJCQlNQUlMIFNUT1AgNjMwMDAKKwkJCQlEQUxMQVMgVFggNzUyNjYtMDAyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNjMgICAoaGV4KQkJVklBIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA0MDYzICAgICAoYmFzZSAxNikJCVZJQSBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk1MDIwIEJSQU5ESU4gQ09VUlQKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC02NCAgIChoZXgpCQlLTEEgSU5TVFJVTUVOVFMgQ09SUE9SQVRJT04KKzAwNDA2NCAgICAgKGJhc2UgMTYpCQlLTEEgSU5TVFJVTUVOVFMgQ09SUE9SQVRJT04KKwkJCQkxNjAgUklPIFJPQkxFUworCQkJCVNBTiBKT1NFIENBIDk1MTYxLTkwNTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTY1ICAgKGhleCkJCUdURSBTUEFDRU5FVAorMDA0MDY1ICAgICAoYmFzZSAxNikJCUdURSBTUEFDRU5FVAorCQkJCTE3MDAgT0xEIE1FQURPVyBST0FECisJCQkJTUNMRUFOIFZBIDIyMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC02NiAgIChoZXgpCQlISVRBQ0hJIENBQkxFLCBMVEQuCiswMDQwNjYgICAgIChiYXNlIDE2KQkJSElUQUNISSBDQUJMRSwgTFRELgorCQkJCU9QVE8gRUxFQ1RST05JQyBTWVNURU0gTEFCCisJCQkJODgwIElTQUdPWkFXLUNITywgSElUQUNISS1TSEkgSUJBUkFLSS1LRQorCQkJCTMxOS0xNCBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLTY3ICAgKGhleCkJCU9NTklCWVRFIENPUlBPUkFUSU9OCiswMDQwNjcgICAgIChiYXNlIDE2KQkJT01OSUJZVEUgQ09SUE9SQVRJT04KKwkJCQkyNDUgV0VTVCBST09TRVZFTFQgUk9BRAorCQkJCVdFU1QgQ0hJQ0FHTyBJTCA2MDE4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNjggICAoaGV4KQkJRVhURU5ERUQgU1lTVEVNUworMDA0MDY4ICAgICAoYmFzZSAxNikJCUVYVEVOREVEIFNZU1RFTVMKKwkJCQk2MTIzIE5PUlRIIE1FRUtFUiBBVkVOVUUKKwkJCQlCT0lTRSBJRCA4MzcwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNjkgICAoaGV4KQkJTEVNQ09NIFNZU1RFTVMsIElOQy4KKzAwNDA2OSAgICAgKGJhc2UgMTYpCQlMRU1DT00gU1lTVEVNUywgSU5DLgorCQkJCTIxMDQgV0VTVCBQRU9SSUEgQVZFTlVFCisJCQkJUEhPRU5JWCBBWiA4NTAyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNkEgICAoaGV4KQkJS0VOVEVLIElORk9STUFUSU9OIFNZU1RFTVMsSU5DCiswMDQwNkEgICAgIChiYXNlIDE2KQkJS0VOVEVLIElORk9STUFUSU9OIFNZU1RFTVMsSU5DCisJCQkJMjk0NSBXSUxERVJORVNTIFBMQUNFCisJCQkJQk9VTERFUiBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNkIgICAoaGV4KQkJU1lTR0VOCiswMDQwNkIgICAgIChiYXNlIDE2KQkJU1lTR0VOCisJCQkJNTU2IEdJQlJBTFRBUiBEUklWRQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC02QyAgIChoZXgpCQlDT1BFUk5JUVVFCiswMDQwNkMgICAgIChiYXNlIDE2KQkJQ09QRVJOSVFVRQorCQkJCTYsIE1BSUwgREUgTCdFVVJPUEUgQlAgMjUKKwkJCQk3ODE3MCBMQSBDRUxMRS1TQUlOVC1DTE9VRAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC00MC02RCAgIChoZXgpCQlMQU5DTywgSU5DLgorMDA0MDZEICAgICAoYmFzZSAxNikJCUxBTkNPLCBJTkMuCisJCQkJODAwIFdFU1QgQUlSUE9SVCBGUkVFV0FZCisJCQkJU1VJVEUgIzExMDAKKwkJCQlJUlZJTkcgVFggNzUwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTZFICAgKGhleCkJCUNPUk9MTEFSWSwgSU5DLgorMDA0MDZFICAgICAoYmFzZSAxNikJCUNPUk9MTEFSWSwgSU5DLgorCQkJCTI4MDIgS0VMVklOCisJCQkJSVJWSU5FIENBIDkyNzE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC02RiAgIChoZXgpCQlTWU5DIFJFU0VBUkNIIElOQy4KKzAwNDA2RiAgICAgKGJhc2UgMTYpCQlTWU5DIFJFU0VBUkNIIElOQy4KKwkJCQk3IFNUVURFQkFLRVIKKwkJCQlJUlZJTkUgQ0EgOTI3MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTcwICAgKGhleCkJCUlOVEVSV0FSRSBDTy4sIExURC4KKzAwNDA3MCAgICAgKGJhc2UgMTYpCQlJTlRFUldBUkUgQ08uLCBMVEQuCisJCQkJN0YgS1VEQU4gTkVXIENFTlRSQUwgQkxERy4sCisJCQkJMS00LTUgS1VEQU4tS0lUQSwgQ0hJWU9EQS1LVQorCQkJCVRPS1lPIDEwMiBUT0tZTyAxMDIgSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC03MSAgIChoZXgpCQlBVE0gQ09NUFVURVIgR01CSAorMDA0MDcxICAgICAoYmFzZSAxNikJCUFUTSBDT01QVVRFUiBHTUJICisJCQkJQlVDS0xFU1RSLiAxLTUsUE9TVEZBQ0ggMTAxMDQzCisJCQkJRDc3NTAgS09OU1RBTloKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC03MiAgIChoZXgpCQlBcHBsaWVkIElubm92YXRpb24gSW5jLgorMDA0MDcyICAgICAoYmFzZSAxNikJCUFwcGxpZWQgSW5ub3ZhdGlvbiBJbmMuCisJCQkJNTgwMCBJbm5vdmF0aW9uIERyaXZlCisJCQkJRHVibGluIE9IIDQzMDE2LTMyNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTczICAgKGhleCkJCUJBU1MgQVNTT0NJQVRFUworMDA0MDczICAgICAoYmFzZSAxNikJCUJBU1MgQVNTT0NJQVRFUworCQkJCTQzNSBUQVNTTyBTVFJFRVQsIFNURS4gIzMyNQorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNzQgICAoaGV4KQkJQ0FCTEUgQU5EIFdJUkVMRVNTCiswMDQwNzQgICAgIChiYXNlIDE2KQkJQ0FCTEUgQU5EIFdJUkVMRVNTCisJCQkJQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxOTE5IEdBTExPV1MgUk9BRAorCQkJCVZJRU5OQSBWQSAyMjE4Mi0zOTY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC03NSAgIChoZXgpCQlNLVRSQURFIChVSykgTFRECiswMDQwNzUgICAgIChiYXNlIDE2KQkJTS1UUkFERSAoVUspIExURAorCQkJCTExLTEyIE5PUlRIRklFTEQgUFJPU1BFQ1QKKwkJCQlQVVRORVkgQlJJREdFIFJPQUQgTE9ORE9OIFNXMTggMUhSCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC00MC03NiAgIChoZXgpCQlTdW4gQ29udmVyc2lvbiBUZWNobm9sb2dpZXMKKzAwNDA3NiAgICAgKGJhc2UgMTYpCQlTdW4gQ29udmVyc2lvbiBUZWNobm9sb2dpZXMKKwkJCQkxMDAgQ29tbWVyY2UgQm91bGV2YXJkCisJCQkJUXVha2VydG93biBQQSA3ODk1MS0yMjM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC03NyAgIChoZXgpCQlNQVhUT04gVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorMDA0MDc3ICAgICAoYmFzZSAxNikJCU1BWFRPTiBURUNITk9MT0dZIENPUlBPUkFUSU9OCisJCQkJNEZLLCAyNDksIFNFQy4gMywKKwkJCQlDSFVORyBIU0lBTyBFLiBSRC4sIFRBSVBFSQorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNDAtNzggICAoaGV4KQkJV0VBUk5FUyBBVVRPTUFUSU9OIFBURSBMVEQKKzAwNDA3OCAgICAgKGJhc2UgMTYpCQlXRUFSTkVTIEFVVE9NQVRJT04gUFRFIExURAorCQkJCTgwMSBMT1JPTkcgNywgVE9BIFBBWU9ICisJCQkJU0lOR0FQT1JFIDEyMzEKKwkJCQlTSU5HQVBPUkUKKworMDAtNDAtNzkgICAoaGV4KQkJSlVLTyBNQU5VRkFDVFVSRSBDT01QQU5ZLCBMVEQuCiswMDQwNzkgICAgIChiYXNlIDE2KQkJSlVLTyBNQU5VRkFDVFVSRSBDT01QQU5ZLCBMVEQuCisJCQkJRkxBVCBDLCAzUkQgRkxPT1IsIENEVyBCTERHLgorCQkJCTM4OCBDQVNUTEUgUEVBSyBST0FELCBUU1VFTiBXQU4sIE4uVC4KKwkJCQlIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtNDAtN0EgICAoaGV4KQkJU09DSUVURSBEJ0VYUExPSVRBVElPTiBEVSBDTklUCiswMDQwN0EgICAgIChiYXNlIDE2KQkJU09DSUVURSBEJ0VYUExPSVRBVElPTiBEVSBDTklUCisJCQkJMiBHTEFDRSBERSBMQSBERUZFTlNFIDkyMDUzCisJCQkJUEFSSVMtTEEtREVGRU5TRQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC00MC03QiAgIChoZXgpCQlTQ0lFTlRJRklDIEFUTEFOVEEKKzAwNDA3QiAgICAgKGJhc2UgMTYpCQlTQ0lFTlRJRklDIEFUTEFOVEEKKwkJCQlJbmZvcm1hdGlvbiBUZWNobm9sb2d5CisJCQkJNDMxMSBDb21tdW5pY2F0aW9ucyBEcml2ZSBNYWlsIENvZGU6ICAzMAorCQkJCU5vcmNyb3NzIEdBIDMwMDkxLTY4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTdDICAgKGhleCkJCVFVTUUgQ09SUE9SQVRJT04KKzAwNDA3QyAgICAgKGJhc2UgMTYpCQlRVU1FIENPUlBPUkFUSU9OCisJCQkJNTAwIFlPU0VNSVRFIERSSVZFLCBNL1MtMjkKKwkJCQlNSUxQSVRBUyBDQSA5NTAzNS01NDI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC03RCAgIChoZXgpCQlFWFRFTlNJT04gVEVDSE5PTE9HWSBDT1JQLgorMDA0MDdEICAgICAoYmFzZSAxNikJCUVYVEVOU0lPTiBURUNITk9MT0dZIENPUlAuCisJCQkJMzAgSE9MTElTIFNUUkVFVAorCQkJCUZSQU1JTkdIQU0gTUEgMDE3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTdFICAgKGhleCkJCUVWRVJHUkVFTiBTWVNURU1TLCBJTkMuCiswMDQwN0UgICAgIChiYXNlIDE2KQkJRVZFUkdSRUVOIFNZU1RFTVMsIElOQy4KKwkJCQkxMjAgTEFORElORyBDT1VSVC1TVUlURQorCQkJCU5PVkFUTyBDQSA5NDk0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtN0YgICAoaGV4KQkJRkxJUiBTeXN0ZW1zCiswMDQwN0YgICAgIChiYXNlIDE2KQkJRkxJUiBTeXN0ZW1zCisJCQkJQk9YIDMKKwkJCQkxODItMTEgIERBTkRFUllECisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLTQwLTgwICAgKGhleCkJCUFUSEVOSVggQ09SUE9SQVRJT04KKzAwNDA4MCAgICAgKGJhc2UgMTYpCQlBVEhFTklYIENPUlBPUkFUSU9OCisJCQkJNjc1IEFMTUFOT1IgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC04MSAgIChoZXgpCQlNQU5ORVNNQU5OIFNDQU5HUkFQSElDIEdNQkgKKzAwNDA4MSAgICAgKGJhc2UgMTYpCQlNQU5ORVNNQU5OIFNDQU5HUkFQSElDIEdNQkgKKwkJCQlSSVNTRU5FUiBTVFJBU1NFIDExMi0xMTQKKwkJCQlXLTIwMDAgV0VERUwKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC04MiAgIChoZXgpCQlMQUJPUkFUT1JZIEVRVUlQTUVOVCBDT1JQLgorMDA0MDgyICAgICAoYmFzZSAxNikJCUxBQk9SQVRPUlkgRVFVSVBNRU5UIENPUlAuCisJCQkJMS03LTMgTUlOQVRPTUFDSEkKKwkJCQlUVUNISVVSQS1DSVRZIElCQVJBR0ktS0VOLAorCQkJCTMwMCBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLTgzICAgKGhleCkJCVREQSBJTkRVU1RSSUEgREUgUFJPRFVUT1MKKzAwNDA4MyAgICAgKGJhc2UgMTYpCQlUREEgSU5EVVNUUklBIERFIFBST0RVVE9TCisJCQkJRUxFVFJPTklDT1MgUy5BLgorCQkJCVJVRSBBR09TVElOTyBUT0dORVJJLCA5MiAwNDY5MCAtIFNBTyBQQVUKKwkJCQlCUkFaSUwKKwkJCQlCUkFaSUwKKworMDAtNDAtODQgICAoaGV4KQkJSE9ORVlXRUxMIEFDUworMDA0MDg0ICAgICAoYmFzZSAxNikJCUhPTkVZV0VMTCBBQ1MKKwkJCQkKKwkJCQk1MTIgVmlyZ2luaWEgRHJpdmUKKwkJCQlGb3J0IFdhc2hpbmd0b24gUEEgMTkwMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTg1ICAgKGhleCkJCVNBQUIgSU5TVFJVTUVOVFMgQUIKKzAwNDA4NSAgICAgKGJhc2UgMTYpCQlTQUFCIElOU1RSVU1FTlRTIEFCCisJCQkJUC5PLiBCT1ggMTAxNworCQkJCVMtNTUxIDExIEpPTktPUElORworCQkJCVNXRURFTgorCiswMC00MC04NiAgIChoZXgpCQlNSUNIRUxTICYgS0xFQkVSSE9GRiBDT01QVVRFUgorMDA0MDg2ICAgICAoYmFzZSAxNikJCU1JQ0hFTFMgJiBLTEVCRVJIT0ZGIENPTVBVVEVSCisJCQkJR0FUSEUgMTE3CisJCQkJNTYwMCBXVVBQRVJUQUwgMQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLTg3ICAgKGhleCkJCVVCSVRSRVggQ09SUE9SQVRJT04KKzAwNDA4NyAgICAgKGJhc2UgMTYpCQlVQklUUkVYIENPUlBPUkFUSU9OCisJCQkJMTlUSCBGTE9PUiwgMTU1IENBUkxUT04gU1RSRUVUCisJCQkJV0lOTklQRUcsIE1BTklUT0JBCisJCQkJQ0FOQURBIFIzQyAzSDgKKwkJCQlDQU5BREEKKworMDAtNDAtODggICAoaGV4KQkJTU9CSVVTIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA0MDg4ICAgICAoYmFzZSAxNikJCU1PQklVUyBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk1ODM1IERPWUxFIFNUUkVFVAorCQkJCUVNRVJZVklMTEUgQ0EgOTQ2MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTg5ICAgKGhleCkJCU1FSURFTlNIQSBDT1JQT1JBVElPTgorMDA0MDg5ICAgICAoYmFzZSAxNikJCU1FSURFTlNIQSBDT1JQT1JBVElPTgorCQkJCUZBQ1RPUlkgTk8uNCwgNTE1IEtBTUlOQUtBTUlaTworCQkJCUhJR0FTSEkgTUFLQURPIE5VTUFaVS1DSVRZIFNISVpVT0tBLVBSRUYKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLThBICAgKGhleCkJCVRQUyBURUxFUFJPQ0VTU0lORyBTWVMuIEdNQkgKKzAwNDA4QSAgICAgKGJhc2UgMTYpCQlUUFMgVEVMRVBST0NFU1NJTkcgU1lTLiBHTUJICisJCQkJU0NIV0FERVJNVUNITFNUUkFTU0UgNC04CisJCQkJVy04NTAxIENBRE9MWkJVUkcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC04QiAgIChoZXgpCQlSQVlMQU4gQ09SUE9SQVRJT04KKzAwNDA4QiAgICAgKGJhc2UgMTYpCQlSQVlMQU4gQ09SUE9SQVRJT04KKwkJCQkxMjAgSU5ERVBFTkRFTkNFIERSSVZFCisJCQkJTUVOTE8gUEFSSyBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtOEMgICAoaGV4KQkJQVhJUyBDT01NVU5JQ0FUSU9OUyBBQgorMDA0MDhDICAgICAoYmFzZSAxNikJCUFYSVMgQ09NTVVOSUNBVElPTlMgQUIKKwkJCQlTQ0hFRUxFVkFHRU4gMTYKKwkJCQlTLTIyMyA3MCBMVU5ECisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLTQwLThEICAgKGhleCkJCVRIRSBHT09EWUVBUiBUSVJFICYgUlVCQkVSIENPLgorMDA0MDhEICAgICAoYmFzZSAxNikJCVRIRSBHT09EWUVBUiBUSVJFICYgUlVCQkVSIENPLgorCQkJCTExNDQgRUFTVCBNQVJLRVQgU1RSRUVUCisJCQkJQUtST04gT0ggNDQzMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLThFICAgKGhleCkJCURJR0lMT0csIElOQy4KKzAwNDA4RSAgICAgKGJhc2UgMTYpCQlESUdJTE9HLCBJTkMuCisJCQkJMjM2MCBNQVJZTEFORCBST0FECisJCQkJV0lMTE9XIEdST1ZFIFBBIDE5MDkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC04RiAgIChoZXgpCQlXTS1EQVRBIE1JTkZPIEFCCiswMDQwOEYgICAgIChiYXNlIDE2KQkJV00tREFUQSBNSU5GTyBBQgorCQkJCU9MT0YgQVNLTFVORFMgR0FUQSAxNAorCQkJCUJPWCAyMDY1IDQyMSAwMiBHT1RFQk9SRworCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC00MC05MCAgIChoZXgpCQlBTlNFTCBDT01NVU5JQ0FUSU9OUworMDA0MDkwICAgICAoYmFzZSAxNikJCUFOU0VMIENPTU1VTklDQVRJT05TCisJCQkJMTcwMSBKVU5DVElPTiBDT1VSVAorCQkJCVNBTiBKT1NFIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC05MSAgIChoZXgpCQlQUk9DT01QIElORFVTVFJJQSBFTEVUUk9OSUNBCiswMDQwOTEgICAgIChiYXNlIDE2KQkJUFJPQ09NUCBJTkRVU1RSSUEgRUxFVFJPTklDQQorCQkJCUFWLiBLRU5LSVRJIFNJTU9NT1RPLCA3NjcKKwkJCQkwNTM0NyAtIFNBTyBQQVVMTyAvIFNQCisJCQkJQlJBWklMCisJCQkJQlJBWklMCisKKzAwLTQwLTkyICAgKGhleCkJCUFTUCBDT01QVVRFUiBQUk9EVUNUUywgSU5DLgorMDA0MDkyICAgICAoYmFzZSAxNikJCUFTUCBDT01QVVRFUiBQUk9EVUNUUywgSU5DLgorCQkJCTE2MCBTQU4gR0FCUklFTCBEUklWRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtOTMgICAoaGV4KQkJUEFYREFUQSBORVRXT1JLUyBMVEQuCiswMDQwOTMgICAgIChiYXNlIDE2KQkJUEFYREFUQSBORVRXT1JLUyBMVEQuCisJCQkJQ09NTVVOSUNBVElPTlMgSE9VU0UsCisJCQkJRlJPR01PUkUgUk9BRCBIRU1FTCBIRU1QU1RFQUQsIEhFUlRTIEhQMworCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC00MC05NCAgIChoZXgpCQlTSE9HUkFQSElDUywgSU5DLgorMDA0MDk0ICAgICAoYmFzZSAxNikJCVNIT0dSQVBISUNTLCBJTkMuCisJCQkJMTg5MCBOLiBTSE9SRUxJTkUgQkxWRC4KKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC05NSAgIChoZXgpCQlSLlAuVC4gSU5URVJHUk9VUFMgSU5UJ0wgTFRELgorMDA0MDk1ICAgICAoYmFzZSAxNikJCVIuUC5ULiBJTlRFUkdST1VQUyBJTlQnTCBMVEQuCisJCQkJOUYsIDUwIE1JTiBDSFVBTiBSRAorCQkJCUhTSU4gVElFTiwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLTk2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwNDA5NiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC05NyAgIChoZXgpCQlEQVRFWCBESVZJU0lPTiBPRgorMDA0MDk3ICAgICAoYmFzZSAxNikJCURBVEVYIERJVklTSU9OIE9GCisJCQkJSU5TVFJVTUVOVEFSSVVNIENPUlAuCisJCQkJUC5PLiBCT1ggNDQ2LCBTRi0wMDEwMSBIRUxTSU5LSQorCQkJCUZJTkxBTkQKKwkJCQlGSU5MQU5ECisKKzAwLTQwLTk4ICAgKGhleCkJCURSRVNTTEVSIEdNQkggJiBDTy4KKzAwNDA5OCAgICAgKGJhc2UgMTYpCQlEUkVTU0xFUiBHTUJIICYgQ08uCisJCQkJS0FDS0VSVFNUUkFTU0UgMTAKKwkJCQlELTUyMDcyIEFBQ0hFTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLTk5ICAgKGhleCkJCU5FV0dFTiBTWVNURU1TIENPUlAuCiswMDQwOTkgICAgIChiYXNlIDE2KQkJTkVXR0VOIFNZU1RFTVMgQ09SUC4KKwkJCQkxNzU4MCBORVdIT1BFIFNUUkVFVAorCQkJCUZPVU5UQUlOIFZBTExFWSBDQSA5MjcwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtOUEgICAoaGV4KQkJTkVUV09SSyBFWFBSRVNTLCBJTkMuCiswMDQwOUEgICAgIChiYXNlIDE2KQkJTkVUV09SSyBFWFBSRVNTLCBJTkMuCisJCQkJMjIwMCBHUkVFTiBST0FEIC0gU1RFCisJCQkJQU5OIEFSQk9SIE1JIDQ4MTcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC05QiAgIChoZXgpCQlIQUwgQ09NUFVURVIgU1lTVEVNUyBJTkMuCiswMDQwOUIgICAgIChiYXNlIDE2KQkJSEFMIENPTVBVVEVSIFNZU1RFTVMgSU5DLgorCQkJCTEzMTUgREVMTCBBVkVOVUUKKwkJCQlDQU1QQkVMTCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtOUMgICAoaGV4KQkJVFJBTlNXQVJFCiswMDQwOUMgICAgIChiYXNlIDE2KQkJVFJBTlNXQVJFCisJCQkJMjEsIFJVRSBEVSA4IE1BSSAxOTQ1CisJCQkJOTQxMTA3IEFSQ1VFSUwKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtNDAtOUQgICAoaGV4KQkJRElHSUJPQVJELCBJTkMuCiswMDQwOUQgICAgIChiYXNlIDE2KQkJRElHSUJPQVJELCBJTkMuCisJCQkJNjQwMCBGTFlJTkcgQ0xPVUQgRFJJVkUKKwkJCQlFREVOIFBSQUlSSUUgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTlFICAgKGhleCkJCUNPTkNVUlJFTlQgVEVDSE5PTE9HSUVTICBMVEQuCiswMDQwOUUgICAgIChiYXNlIDE2KQkJQ09OQ1VSUkVOVCBURUNITk9MT0dJRVMgIExURC4KKwkJCQk2NTQgVEhFIENSRVNDRU5UCisJCQkJQ09MQ0hFU1RFUiBCVVNJTkVTUyBQQVJLIENPTENIRVNURVIsIEVTUworCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtOUYgICAoaGV4KQkJVGVsY28gU3lzdGVtcywgSW5jLiAKKzAwNDA5RiAgICAgKGJhc2UgMTYpCQlUZWxjbyBTeXN0ZW1zLCBJbmMuIAorCQkJCTE1IEJlcmtzaGlyZSBSb2FkCisJCQkJTWFuc2ZpZWxkLCBNQSAwMjA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQTAgICAoaGV4KQkJR09MRFNUQVIgQ08uLCBMVEQuCiswMDQwQTAgICAgIChiYXNlIDE2KQkJR09MRFNUQVIgQ08uLCBMVEQuCisJCQkJNiBHQSAzQiBNVU5MQUUgWUVPTkdERVVOR1BPCisJCQkJU0VPVUwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC00MC1BMSAgIChoZXgpCQlFUkdPIENPTVBVVElORworMDA0MEExICAgICAoYmFzZSAxNikJCUVSR08gQ09NUFVUSU5HCisJCQkJT05FIElOVEVSQ09OVElORU5UQUwgV0FZCisJCQkJUEVBQk9EWSBNQSAwMTk2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQTIgICAoaGV4KQkJS0lOR1NUQVIgVEVDSE5PTE9HWSBJTkMuCiswMDQwQTIgICAgIChiYXNlIDE2KQkJS0lOR1NUQVIgVEVDSE5PTE9HWSBJTkMuCisJCQkJMS0zRiwgTk8uIDE4NSwgU0VDLiAzLAorCQkJCUNIRU5HIFRFSCBST0FECisJCQkJVEFJUEVJIFRBSVdBTiwgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC00MC1BMyAgIChoZXgpCQlNSUNST1VOSVRZIFNZU1RFTVMgRU5HSU5FRVJJTkcKKzAwNDBBMyAgICAgKGJhc2UgMTYpCQlNSUNST1VOSVRZIFNZU1RFTVMgRU5HSU5FRVJJTkcKKwkJCQkyNTUgQ0FTUElBTiBEUklWRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OS0xMDE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1BNCAgIChoZXgpCQlST1NFIEVMRUNUUk9OSUNTCiswMDQwQTQgICAgIChiYXNlIDE2KQkJUk9TRSBFTEVDVFJPTklDUworCQkJCVAuTy4gQk9YIDc0MjU3MQorCQkJCUhPVVNUT04gVFggNzcyNzQtMjU3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQTUgICAoaGV4KQkJQ0xJTklDT01QIElOVEwuCiswMDQwQTUgICAgIChiYXNlIDE2KQkJQ0xJTklDT01QIElOVEwuCisJCQkJNDUxMCBFWEVDQ1VUSVZFIERSSVZFLVNURS4jMjAwCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1BNiAgIChoZXgpCQlDcmF5LCBJbmMuCiswMDQwQTYgICAgIChiYXNlIDE2KQkJQ3JheSwgSW5jLgorCQkJCTY1NUYgTE9ORSBPQUsgRFJJVkUKKwkJCQlFQUdBTiBNTiA1NTEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQTcgICAoaGV4KQkJSVRBVVRFQyBQSElMQ08gUy5BLgorMDA0MEE3ICAgICAoYmFzZSAxNikJCUlUQVVURUMgUEhJTENPIFMuQS4KKwkJCQlHUlVQTyBJVEFVVEVDIFBISUxDTworCQkJCVJVQSBTQU5UQSBDQVRBUklOQSwgMSAwMzA4Ni0wMjAgU0FPIFBBVUwKKwkJCQlCUkFaSUwKKwkJCQlCUkFaSUwKKworMDAtNDAtQTggICAoaGV4KQkJSU1GIElOVEVSTkFUSU9OQUwgTFRELgorMDA0MEE4ICAgICAoYmFzZSAxNikJCUlNRiBJTlRFUk5BVElPTkFMIExURC4KKwkJCQlOTy41IDIvRiBLSU5HU0ZPUkQgSU5ELiBDRU5UUkUKKwkJCQkxMyBXQU5HIEhPSSBST0FEIEtPV0xPT04gQkFZLCBLT1dMT09OCisJCQkJSE9ORyBLT05HCisJCQkJSE9ORyBLT05HCisKKzAwLTQwLUE5ICAgKGhleCkJCURBVEFDT00gSU5DLgorMDA0MEE5ICAgICAoYmFzZSAxNikJCURBVEFDT00gSU5DLgorCQkJCTE0NiBISUdIV0FZIFJPVVRFIDM0IC0gU1RFIDI1MAorCQkJCUhPTE1ERUwgTkogMDc3MzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUFBICAgKGhleCkJCVZBTE1FVCBBVVRPTUFUSU9OIElOQy4KKzAwNDBBQSAgICAgKGJhc2UgMTYpCQlWQUxNRVQgQVVUT01BVElPTiBJTkMuCisJCQkJUC5PLiBCT1ggMjM3CisJCQkJU0YtMzMxMDEgVEFNUEVSRQorCQkJCUZJTkxBTkQKKwkJCQlGSU5MQU5ECisKKzAwLTQwLUFCICAgKGhleCkJCVJPTEFORCBERyBDT1JQT1JBVElPTgorMDA0MEFCICAgICAoYmFzZSAxNikJCVJPTEFORCBERyBDT1JQT1JBVElPTgorCQkJCTEyMjcgT0tVQk8tQ0hPLCBIQU1BTUFUU1UtU0hJCisJCQkJU0hJWlVPS0EtS0VOCisJCQkJNDMyIEpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtQUMgICAoaGV4KQkJU1VQRVIgV09SS1NUQVRJT04sIElOQy4KKzAwNDBBQyAgICAgKGJhc2UgMTYpCQlTVVBFUiBXT1JLU1RBVElPTiwgSU5DLgorCQkJCTIxOTAgUEFSQUdPTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1BRCAgIChoZXgpCQlTTUEgUkVHRUxTWVNURU1FIEdNQkgKKzAwNDBBRCAgICAgKGJhc2UgMTYpCQlTTUEgUkVHRUxTWVNURU1FIEdNQkgKKwkJCQlIQU5OT1ZFUlNDSEUgU1RSLiAxLTUKKwkJCQlEIDM1MDEgTklFU1RFVEFMCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtQUUgICAoaGV4KQkJREVMVEEgQ09OVFJPTFMsIElOQy4KKzAwNDBBRSAgICAgKGJhc2UgMTYpCQlERUxUQSBDT05UUk9MUywgSU5DLgorCQkJCTEzNTIwIDc4VEggQVZFTlVFCisJCQkJU1VSUkVZLCBCLkMuCisJCQkJQ0FOQURBIFYzVyA4SjYKKwkJCQlDQU5BREEKKworMDAtNDAtQUYgICAoaGV4KQkJRElHSVRBTCBQUk9EVUNUUywgSU5DLgorMDA0MEFGICAgICAoYmFzZSAxNikJCURJR0lUQUwgUFJPRFVDVFMsIElOQy4KKwkJCQk0MTEgV0FWRVJMWSBPQUtTIFJPQUQKKwkJCQlXQUxUSEFNIE1BIDAyMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1CMCAgIChoZXgpCQlCWVRFWCBDT1JQT1JBVElPTiwgRU5HSU5FRVJJTkcKKzAwNDBCMCAgICAgKGJhc2UgMTYpCQlCWVRFWCBDT1JQT1JBVElPTiwgRU5HSU5FRVJJTkcKKwkJCQkxMzg3MyBQQVJLIENFTlRFUiBST0FECisJCQkJSEVSTkRPTiBWQSAyMjA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQjEgICAoaGV4KQkJQ09ET05JQ1MgSU5DLgorMDA0MEIxICAgICAoYmFzZSAxNikJCUNPRE9OSUNTIElOQy4KKwkJCQkxNzk5MSBFTkdMRVdPT0QgRFJJVkUKKwkJCQlNSURETEVCVVJHIEhUUyBPSCA0NDEzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQjIgICAoaGV4KQkJU1lTVEVNRk9SU0NIVU5HCiswMDQwQjIgICAgIChiYXNlIDE2KQkJU1lTVEVNRk9SU0NIVU5HCisJCQkJS09OSUdTVFJBU1NFIDMzQQorCQkJCTUzMDAgQk9OTiAxCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtQjMgICAoaGV4KQkJUGFyVGVjaCBJbmMuCiswMDQwQjMgICAgIChiYXNlIDE2KQkJUGFyVGVjaCBJbmMuCisJCQkJODM4MyBTZW5lY2EgVHVybnBpa2UKKwkJCQlORVcgSEFSVEZPUkQgTlkgMTM0MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUI0ICAgKGhleCkJCU5FWFRDT00gSy5LLgorMDA0MEI0ICAgICAoYmFzZSAxNikJCU5FWFRDT00gSy5LLgorCQkJCTEtMTItMSBTSElCVVlBCisJCQkJU0hJQlVZQS1LVSwgVE9LWU8sIDE1MAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtQjUgICAoaGV4KQkJVklERU8gVEVDSE5PTE9HWSBDT01QVVRFUlMgTFRECiswMDQwQjUgICAgIChiYXNlIDE2KQkJVklERU8gVEVDSE5PTE9HWSBDT01QVVRFUlMgTFRECisJCQkJMzMvRi4sIEJMT0NLICMxLAorCQkJCVRBSSBQSU5HIElORFVTVFJJQUwgQ0VOVEVSIDU3IFRJTkcgS09LIFIKKwkJCQlOLlQuIEhPTkcgS09ORworCQkJCUhPTkcgS09ORworCiswMC00MC1CNiAgIChoZXgpCQlDT01QVVRFUk0gIENPUlBPUkFUSU9OCiswMDQwQjYgICAgIChiYXNlIDE2KQkJQ09NUFVURVJNICBDT1JQT1JBVElPTgorCQkJCTExMSBXT09EIFNUUkVFVAorCQkJCVBJVFRTQlVSR0ggUEEgMTUyMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUI3ICAgKGhleCkJCVNURUFMVEggQ09NUFVURVIgU1lTVEVNUworMDA0MEI3ICAgICAoYmFzZSAxNikJCVNURUFMVEggQ09NUFVURVIgU1lTVEVNUworCQkJCTIzNDEgUkVHSU5BIENULgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1COCAgIChoZXgpCQlJREVBIEFTU09DSUFURVMKKzAwNDBCOCAgICAgKGJhc2UgMTYpCQlJREVBIEFTU09DSUFURVMKKwkJCQkyOSBEVU5IQU0gUk9BRAorCQkJCUJJTExFUklDQSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQjkgICAoaGV4KQkJTUFDUSBFTEVDVFJPTklRVUUgU0EKKzAwNDBCOSAgICAgKGJhc2UgMTYpCQlNQUNRIEVMRUNUUk9OSVFVRSBTQQorCQkJCVJVRSBERSBMJ0FFUk9ORUYgMgorCQkJCUIgLSAxMTQwIEJSVVNTRUxTCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtNDAtQkEgICAoaGV4KQkJQUxMSUFOVCBDT01QVVRFUiBTWVNURU1TIENPUlAuCiswMDQwQkEgICAgIChiYXNlIDE2KQkJQUxMSUFOVCBDT01QVVRFUiBTWVNURU1TIENPUlAuCisJCQkJT05FIE1PTkFSQ0ggRFJJVkUKKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUJCICAgKGhleCkJCUdPTERTVEFSIENBQkxFIENPLiwgTFRELgorMDA0MEJCICAgICAoYmFzZSAxNikJCUdPTERTVEFSIENBQkxFIENPLiwgTFRELgorCQkJCTU1NSwgSE9HWUUtRE9ORywgQU5ZQU5HLVNISQorCQkJCUtZVU5HS0ktRE8sIDQzMC0wODAKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC00MC1CQyAgIChoZXgpCQlBTEdPUklUSE1JQ1MgTFRELgorMDA0MEJDICAgICAoYmFzZSAxNikJCUFMR09SSVRITUlDUyBMVEQuCisJCQkJMyBEUkFZVE9OIFBBUksKKwkJCQlMT05ET04gTjUgMU5VCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLUJEICAgKGhleCkJCVNUQVJMSUdIVCBORVRXT1JLUywgSU5DLgorMDA0MEJEICAgICAoYmFzZSAxNikJCVNUQVJMSUdIVCBORVRXT1JLUywgSU5DLgorCQkJCTQ0NCBDQVNUUk8gU1RSRUVUIFNURQorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUJFICAgKGhleCkJCUJPRUlORyBERUZFTlNFICYgU1BBQ0UKKzAwNDBCRSAgICAgKGJhc2UgMTYpCQlCT0VJTkcgREVGRU5TRSAmIFNQQUNFCisJCQkJUC5PLiBCT1ggMzk5OQorCQkJCU1BSUwgU1RPUCA4OC0xMgorCQkJCVNFQVRUTEUgV0EgOTgxMjQtMjQ5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQkYgICAoaGV4KQkJQ0hBTk5FTCBTWVNURU1TIElOVEVSTidMIElOQy4KKzAwNDBCRiAgICAgKGJhc2UgMTYpCQlDSEFOTkVMIFNZU1RFTVMgSU5URVJOJ0wgSU5DLgorCQkJCTkzIFNPLiBMQSBQQVRFUkEgTEFORQorCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUMwICAgKGhleCkJCVZJU1RBIENPTlRST0xTIENPUlBPUkFUSU9OCiswMDQwQzAgICAgIChiYXNlIDE2KQkJVklTVEEgQ09OVFJPTFMgQ09SUE9SQVRJT04KKwkJCQkyNzgyNSBGUkVNT05UIENPVVJUCisJCQkJVkFMRU5DSUEgQ0EgOTEzNTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUMxICAgKGhleCkJCUJJWkVSQkEtV0VSS0UgV0lMSEVJTSBLUkFVVAorMDA0MEMxICAgICAoYmFzZSAxNikJCUJJWkVSQkEtV0VSS0UgV0lMSEVJTSBLUkFVVAorCQkJCUdNQkggJiBDTy4gS0csCisJCQkJV0lMSEVMTS1LUkFVVC1TVFIuIDY1IFAuTy4gQk9YIDEwMDE2NAorCQkJCUQtNzQ2MCBCQUxJTkdFTiBELTc0NjAgQkFMSU5HRU4gR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtQzIgICAoaGV4KQkJQVBQTElFRCBDT01QVVRJTkcgREVWSUNFUworMDA0MEMyICAgICAoYmFzZSAxNikJCUFQUExJRUQgQ09NUFVUSU5HIERFVklDRVMKKwkJCQlBTEVQSCBQQVJLCisJCQkJMTAwIFNPVVRIIENBTVBVUyBEUklWRQorCQkJCVRFUlJFIEhBVVRFIElOIDQ3ODAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1DMyAgIChoZXgpCQlGSVNDSEVSIEFORCBQT1JURVIgQ08uCiswMDQwQzMgICAgIChiYXNlIDE2KQkJRklTQ0hFUiBBTkQgUE9SVEVSIENPLgorCQkJCTEyNSBFLiBDT1VOVFkgTElORSBST0FECisJCQkJV0FSTUlOU1RFUiBQQSAxODk3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQzQgICAoaGV4KQkJS0lOS0VJIFNZU1RFTSBDT1JQT1JBVElPTgorMDA0MEM0ICAgICAoYmFzZSAxNikJCUtJTktFSSBTWVNURU0gQ09SUE9SQVRJT04KKwkJCQkxLTIyLTE3LCBLQU1JS0lUQSwgSElSQU5PS1UKKwkJCQlPU0FLQSwgNTQ3CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC1DNSAgIChoZXgpCQlNSUNPTSBDT01NVU5JQ0FUSU9OUyBJTkMuCiswMDQwQzUgICAgIChiYXNlIDE2KQkJTUlDT00gQ09NTVVOSUNBVElPTlMgSU5DLgorCQkJCTQxMDAgTE9TIEFOR0VMRVMgQVZFTlVFCisJCQkJU0lNSSBWQUxMRVkgQ0EgOTMwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUM2ICAgKGhleCkJCUZJQkVSTkVUIFJFU0VBUkNILCBJTkMuCiswMDQwQzYgICAgIChiYXNlIDE2KQkJRklCRVJORVQgUkVTRUFSQ0gsIElOQy4KKwkJCQkxIFRBUkEgQk9VTEVWQVJELSM0MDUKKwkJCQlOQVNIVUEgTkggMDMwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUM3ICAgKGhleCkJCVJVQlkgVEVDSCBDT1JQT1JBVElPTgorMDA0MEM3ICAgICAoYmFzZSAxNikJCVJVQlkgVEVDSCBDT1JQT1JBVElPTgorCQkJCTZGLTEsIE5PLjMsIExBTkUgMjUwLAorCQkJCVNFQy4gNSBOQU5LSU5HIEUuUk9BRAorCQkJCVRBSVBFSSBUQUlXQU4sIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNDAtQzggICAoaGV4KQkJTUlMQU4gVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorMDA0MEM4ICAgICAoYmFzZSAxNikJCU1JTEFOIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKwkJCQk4OTQgUk9TUyBEUklWRS0tU1RFICMxMDUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUM5ICAgKGhleCkJCU5DVUJFCiswMDQwQzkgICAgIChiYXNlIDE2KQkJTkNVQkUKKwkJCQk5MTkgRUFTVCBISUxMU0RBTEUgQkxWRC4KKwkJCQlTVUlURSAyMDAKKwkJCQlGT1NURVIgQ0lUWSBDQSA5NDQwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQ0EgICAoaGV4KQkJRklSU1QgSU5URVJOQVQnTCBDT01QVVRFUiwgSU5DCiswMDQwQ0EgICAgIChiYXNlIDE2KQkJRklSU1QgSU5URVJOQVQnTCBDT01QVVRFUiwgSU5DCisJCQkJRklDIEJ1aWxkaW5nCisJCQkJTm8gMzAwIFlhbmcgR3VhbmcgU3RyZWV0CisJCQkJTmVpaHUgVGFpcGVpIDExNCBUYWlwZWkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC00MC1DQiAgIChoZXgpCQlMQU5XQU4gVEVDSE5PTE9HSUVTCiswMDQwQ0IgICAgIChiYXNlIDE2KQkJTEFOV0FOIFRFQ0hOT0xPR0lFUworCQkJCTE1NjYgTEEgUFJBREVSQSBEUklWRQorCQkJCUNBTVBCRUxMIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1DQyAgIChoZXgpCQlTSUxDT00gTUFOVUYnRyBURUNITk9MT0dZIElOQy4KKzAwNDBDQyAgICAgKGJhc2UgMTYpCQlTSUxDT00gTUFOVUYnRyBURUNITk9MT0dZIElOQy4KKwkJCQk1NjIwIFRJTUJFUkxFQSBCT1VMRVZBUkQKKwkJCQlNSVNTSVNTQVVHQSwgT05UQVJJTworCQkJCUNBTkFEQSBMNFcgNE02CisJCQkJQ0FOQURBCisKKzAwLTQwLUNEICAgKGhleCkJCVRFUkEgTUlDUk9TWVNURU1TLCBJTkMuCiswMDQwQ0QgICAgIChiYXNlIDE2KQkJVEVSQSBNSUNST1NZU1RFTVMsIElOQy4KKwkJCQkyNTAwIEdSRUFUIEFNRVJJQ0EgUEFSS1dBWQorCQkJCVNURS4gIzI1MAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1DRSAgIChoZXgpCQlORVQtU09VUkNFLCBJTkMuCiswMDQwQ0UgICAgIChiYXNlIDE2KQkJTkVULVNPVVJDRSwgSU5DLgorCQkJCTEyNjUgRUwgQ0FNSU5PIFJFQUwKKwkJCQlTVUlURSAxMDEKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQ0YgICAoaGV4KQkJU1RSQVdCRVJSWSBUUkVFLCBJTkMuCiswMDQwQ0YgICAgIChiYXNlIDE2KQkJU1RSQVdCRVJSWSBUUkVFLCBJTkMuCisJCQkJMTYwIFNPVVRIIFdPTEZFIFJPQUQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUQwICAgKGhleCkJCU1JVEFDIElOVEVSTkFUSU9OQUwgQ09SUC4KKzAwNDBEMCAgICAgKGJhc2UgMTYpCQlNSVRBQyBJTlRFUk5BVElPTkFMIENPUlAuCisJCQkJOFRIIEZMLiA1ODUgTUlORyBTSEVORyBFLiBSRC4KKwkJCQlUQUlQRUkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLUQxICAgKGhleCkJCUZVS1VEQSBERU5TSEkgQ08uLCBMVEQuCiswMDQwRDEgICAgIChiYXNlIDE2KQkJRlVLVURBIERFTlNISSBDTy4sIExURC4KKwkJCQlSICYgRCBERVBBUlRNRU5UIE5PLiAxCisJCQkJMzUtOCwgSE9OR08gMi1DSE9NRSwgQlVOS1lPLUtVIFRPS1lPIDExMworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtRDIgICAoaGV4KQkJUEFHSU5FIENPUlBPUkFUSU9OCiswMDQwRDIgICAgIChiYXNlIDE2KQkJUEFHSU5FIENPUlBPUkFUSU9OCisJCQkJMTk2MS1BIENPTkNPVVJTRSBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1EMyAgIChoZXgpCQlLSU1QU0lPTiBJTlRFUk5BVElPTkFMIENPUlAuCiswMDQwRDMgICAgIChiYXNlIDE2KQkJS0lNUFNJT04gSU5URVJOQVRJT05BTCBDT1JQLgorCQkJCTQ3MDEgUEFUUklDSyBIRU5SWSBEUklWRQorCQkJCVNVSVRFIDQwMQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1ENCAgIChoZXgpCQlHQUdFIFRBTEtFUiBDT1JQLgorMDA0MEQ0ICAgICAoYmFzZSAxNikJCUdBR0UgVEFMS0VSIENPUlAuCisJCQkJMTM2ODAgTkUgMTZUSCBTVFJFRVQKKwkJCQlCRUxMRVZVRSBXQSA5ODAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRDUgICAoaGV4KQkJU2FydG9yaXVzIE1lY2hhdHJvbmljcyBUJkggR21iSCAKKzAwNDBENSAgICAgKGJhc2UgMTYpCQlTYXJ0b3JpdXMgTWVjaGF0cm9uaWNzIFQmSCBHbWJIIAorCQkJCVdFRU5ERVIgTEFORFNUUjogOTQgLSAxMDgKKwkJCQkzNDAwIEdPVFRJTkdFTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLUQ2ICAgKGhleCkJCUxPQ0FNQVRJT04gQi5WLgorMDA0MEQ2ICAgICAoYmFzZSAxNikJCUxPQ0FNQVRJT04gQi5WLgorCQkJCVBPU1RCT1ggMzYwCisJCQkJNzUwMCBBSiBFTlNDSEVERQorCQkJCUhPTExBTkQKKwkJCQlORVRIRVJMQU5EUworCiswMC00MC1ENyAgIChoZXgpCQlTVFVESU8gR0VOIElOQy4KKzAwNDBENyAgICAgKGJhc2UgMTYpCQlTVFVESU8gR0VOIElOQy4KKwkJCQkzLTEyLTggVEFLQU5BV0EgIzIwMgorCQkJCU1JTkFUT0tVLCBUT0tZTyAxMDgKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLUQ4ICAgKGhleCkJCU9DRUFOIE9GRklDRSBBVVRPTUFUSU9OIExURC4KKzAwNDBEOCAgICAgKGJhc2UgMTYpCQlPQ0VBTiBPRkZJQ0UgQVVUT01BVElPTiBMVEQuCisJCQkJNFRIICYgNVRIIEZMT09SLCBLQURFUiBCTERHLgorCQkJCTIyIEtBSSBDSEVVTkcgUk9BRCBLT1dMT09OIEJBWSwgS09XTE9PTgorCQkJCUhPTkcgS09ORworCQkJCUhPTkcgS09ORworCiswMC00MC1EOSAgIChoZXgpCQlBTUVSSUNBTiBNRUdBVFJFTkRTIElOQy4KKzAwNDBEOSAgICAgKGJhc2UgMTYpCQlBTUVSSUNBTiBNRUdBVFJFTkRTIElOQy4KKwkJCQk2MTQ1RiBOIEJFTFQgUEFSS1dBWQorCQkJCU5PUkNST1NTIEdBIDMwMDcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1EQSAgIChoZXgpCQlURUxTUEVDIExURAorMDA0MERBICAgICAoYmFzZSAxNikJCVRFTFNQRUMgTFRECisJCQkJTEFOQ0FTVEVSIFBBUktFUiBST0FECisJCQkJUk9DSEVTVEVSIEFJUlBPUlQsIFJPQ0hFU1RFUiBLRU5UIE1FMSAzUQorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC00MC1EQiAgIChoZXgpCQlBRFZBTkNFRCBURUNITklDQUwgU09MVVRJT05TCiswMDQwREIgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgVEVDSE5JQ0FMIFNPTFVUSU9OUworCQkJCTgwNTAgU0VNSU5PTEUgT0ZGSUNFIENFTlRFUgorCQkJCVNVSVRFIDIxMAorCQkJCVNFTUlOT0xFIEZMIDM0NjQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1EQyAgIChoZXgpCQlUUklURUMgRUxFQ1RST05JQyBHTUJICiswMDQwREMgICAgIChiYXNlIDE2KQkJVFJJVEVDIEVMRUNUUk9OSUMgR01CSAorCQkJCVJPQkVSVCBLT0NIIFNUUi4gMzUKKwkJCQlENjUwMCBNQUlOWiA0MgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLUREICAgKGhleCkJCUhPTkcgVEVDSE5PTE9HSUVTCiswMDQwREQgICAgIChiYXNlIDE2KQkJSE9ORyBURUNITk9MT0dJRVMKKwkJCQk1MzIgV0VEREVMTCBEUklWRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtREUgICAoaGV4KQkJRWxzYWcgRGF0YW1hdCBzcGEKKzAwNDBERSAgICAgKGJhc2UgMTYpCQlFbHNhZyBEYXRhbWF0IHNwYQorCQkJCUVMU0FHIFMuUC5BLgorCQkJCVZJQSBHLiBQVUNDSU5JLCAyCisJCQkJR0VOT1ZBICAxNjE1NAorCQkJCUlUQUxZCisKKzAwLTQwLURGICAgKGhleCkJCURJR0FMT0cgU1lTVEVNUywgSU5DLgorMDA0MERGICAgICAoYmFzZSAxNikJCURJR0FMT0cgU1lTVEVNUywgSU5DLgorCQkJCTMxODAgU09VVEggMTY2VEggU1RSRUVUCisJCQkJTkVXIEJFUkxJTiBXSSA1MzE1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRTAgICAoaGV4KQkJQVRPTVdJREUgTFRELgorMDA0MEUwICAgICAoYmFzZSAxNikJCUFUT01XSURFIExURC4KKwkJCQkyMyBUSEUgR1JFRU5XQVkKKwkJCQlPUlBJTkdUT04gQlI1IDJBWQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtRTEgICAoaGV4KQkJTUFSTkVSIElOVEVSTkFUSU9OQUwsIElOQy4KKzAwNDBFMSAgICAgKGJhc2UgMTYpCQlNQVJORVIgSU5URVJOQVRJT05BTCwgSU5DLgorCQkJCTE2MTcgOTNSRCBMQU5FIE5FCisJCQkJQkxBSU5FIE1OIDU1NDQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1FMiAgIChoZXgpCQlNRVNBIFJJREdFIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA0MEUyICAgICAoYmFzZSAxNikJCU1FU0EgUklER0UgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNjcyNSBNRVNBIFJJREdFIFJPQUQtU1RFIzEwMAorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRTMgICAoaGV4KQkJUVVJTiBTWVNURU1TIExURAorMDA0MEUzICAgICAoYmFzZSAxNikJCVFVSU4gU1lTVEVNUyBMVEQKKwkJCQlPQUtMQU5EUyBCVVNJTkVTUyBDRU5UUkUKKwkJCQlPQUtMQU5EUyBQQVJLLCBXT0tJTkdIQU0gQkVSS1MgIFJHMTEgMkZECisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC00MC1FNCAgIChoZXgpCQlFLU0gVEVDSE5PTE9HWSwgSU5DLgorMDA0MEU0ICAgICAoYmFzZSAxNikJCUUtTSBURUNITk9MT0dZLCBJTkMuCisJCQkJOTI0NSBTT1VUSFdFU1QgTklNQlVTIEFWRS4KKwkJCQlCRUFWRVJUT04gT1IgOTcwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUU1ICAgKGhleCkJCVNZQlVTIENPUlBPUkFUSU9OCiswMDQwRTUgICAgIChiYXNlIDE2KQkJU1lCVVMgQ09SUE9SQVRJT04KKwkJCQkyMzAwIFRBTEwgUElORSBEUklWRS1TVEUuICMxMDAKKwkJCQlMQVJHTyBGTCAzNDY0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRTYgICAoaGV4KQkJQy5BLkUuTi4KKzAwNDBFNiAgICAgKGJhc2UgMTYpCQlDLkEuRS5OLgorCQkJCTIsIENIRU1JTiBMQVRFUkFMCisJCQkJRjk0MjkwIFZJTExFTkVVVkUgTEUgUk9JCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTQwLUU3ICAgKGhleCkJCUFSTk9TIElOU1RSVU1FTlRTICYgQ09NUFVURVIKKzAwNDBFNyAgICAgKGJhc2UgMTYpCQlBUk5PUyBJTlNUUlVNRU5UUyAmIENPTVBVVEVSCisJCQkJU1lTVEVNUyAoR1JPVVApIENPLiwgTFRELgorCQkJCTQvRi4sIEVVUkVLQSBJTkQuIEJMREcuLCAxLTE3IFNBSSBMQVUgS08KKwkJCQlUU1VFTiBXQU4gTi5ULiBIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtNDAtRTggICAoaGV4KQkJQ0hBUkxFUyBSSVZFUiBEQVRBIFNZU1RFTVMsSU5DCiswMDQwRTggICAgIChiYXNlIDE2KQkJQ0hBUkxFUyBSSVZFUiBEQVRBIFNZU1RFTVMsSU5DCisJCQkJOTgzIENPTkNPUkQgU1RSRUVUCisJCQkJRlJBTUlOR0hBTSBNQSAwMTcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRTkgICAoaGV4KQkJQUNDT1JEIFNZU1RFTVMsIElOQy4KKzAwNDBFOSAgICAgKGJhc2UgMTYpCQlBQ0NPUkQgU1lTVEVNUywgSU5DLgorCQkJCTU3MiBWQUxMRVkgV0FZCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUVBICAgKGhleCkJCVBMQUlOIFRSRUUgU1lTVEVNUyBJTkMKKzAwNDBFQSAgICAgKGJhc2UgMTYpCQlQTEFJTiBUUkVFIFNZU1RFTVMgSU5DCisJCQkJQ0hJRUYgRVhFQ1RVVklFIE9GRklDRVIKKwkJCQk1OSBJQkVSIFJPQUQsIFNUSVRUU1ZJTExFIE9OVEFSSU8gSzJTIDFFCisJCQkJQ0FOQURBCisJCQkJQ0FOQURBCisKKzAwLTQwLUVCICAgKGhleCkJCU1BUlRJTiBNQVJJRVRUQSBDT1JQT1JBVElPTgorMDA0MEVCICAgICAoYmFzZSAxNikJCU1BUlRJTiBNQVJJRVRUQSBDT1JQT1JBVElPTgorCQkJCTEyNTA2IExBS0UgVU5ERVJISUxMCisJCQkJT1JMQU5ETyBGTCAzMjgyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRUMgICAoaGV4KQkJTUlLQVNBIFNZU1RFTSBFTkdJTkVFUklORworMDA0MEVDICAgICAoYmFzZSAxNikJCU1JS0FTQSBTWVNURU0gRU5HSU5FRVJJTkcKKwkJCQlDTy4sIExURC4KKwkJCQkxLTMtMTAsIE1JTkFNSS1TSElOTUFDSEksIENIVU8tS1UsIE9TQUtBCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC1FRCAgIChoZXgpCQlORVRXT1JLIENPTlRST0xTIElOVCdOQVRMIElOQy4KKzAwNDBFRCAgICAgKGJhc2UgMTYpCQlORVRXT1JLIENPTlRST0xTIElOVCdOQVRMIElOQy4KKwkJCQk5IFdPT0RMQVdOIEdSRUVOCisJCQkJQ0hBUkxPVFRFIE5DIDI4MjE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1FRSAgIChoZXgpCQlPUFRJTUVNCiswMDQwRUUgICAgIChiYXNlIDE2KQkJT1BUSU1FTQorCQkJCTI5NyBOLiBCRVJOQVJETyBBVkVOVUUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzLTUyMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUVGICAgKGhleCkJCUhZUEVSQ09NLCBJTkMuCiswMDQwRUYgICAgIChiYXNlIDE2KQkJSFlQRVJDT00sIElOQy4KKwkJCQkyODUxIFdFU1QgS0FUSExFRU4gUk9BRAorCQkJCVBIT0VOSVggQVogODUwMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUYwICAgKGhleCkJCU1pY3JvQnJhaW4sSW5jLgorMDA0MEYwICAgICAoYmFzZSAxNikJCU1pY3JvQnJhaW4sSW5jLgorCQkJCVl1emFuIEJsZGcuIDRGLAorCQkJCTIwNSxLaWJ1dGFrZSxOYWdha3V0ZSYjODIwODsgQ2hvLAorCQkJCUFpY2hpLWd1biBBSUNISSAgNDgwLTExMTcKKwkJCQlKQVBBTgorCiswMC00MC1GMSAgIChoZXgpCQlDSFVPIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDA0MEYxICAgICAoYmFzZSAxNikJCUNIVU8gRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJMS05LTksIE1PVE9IT05HTy1DSE8KKwkJCQlIQUNISU9KSS1TSEkgVE9LWU8gMTkyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC1GMiAgIChoZXgpCQlKQU5JQ0ggJiBLTEFTUyBDT01QVVRFUlRFQ0hOSUsKKzAwNDBGMiAgICAgKGJhc2UgMTYpCQlKQU5JQ0ggJiBLTEFTUyBDT01QVVRFUlRFQ0hOSUsKKwkJCQlaVU0gQUxURU4gWk9MTEhBVVMgMjAKKwkJCQlXLTU2MDAgV1VQUEVSVEFMIDIKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC1GMyAgIChoZXgpCQlORVRDT1IKKzAwNDBGMyAgICAgKGJhc2UgMTYpCQlORVRDT1IKKwkJCQk4NTAgQVVCVVJOIENPVVJUCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRjQgICAoaGV4KQkJQ0FNRU8gQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwNDBGNCAgICAgKGJhc2UgMTYpCQlDQU1FTyBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTcxIFNQSVRCUk9PSyBST0FELCBTVEUgIzQxMAorCQkJCU5BU0hVQSBOSCAwMzA2MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUY1ICAgKGhleCkJCU9FTSBFTkdJTkVTCiswMDQwRjUgICAgIChiYXNlIDE2KQkJT0VNIEVOR0lORVMKKwkJCQkxMTkwIERFTEwgQVZFTlVFLCBTVEUuCisJCQkJQ0FNUEJFTEwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUY2ICAgKGhleCkJCUtBVFJPTiBDT01QVVRFUlMgSU5DLgorMDA0MEY2ICAgICAoYmFzZSAxNikJCUtBVFJPTiBDT01QVVRFUlMgSU5DLgorCQkJCTQgRkwuIE5PLiAyLCBBTExFWSAyMworCQkJCUxBTkUgOTEgU0VDLiAxIE5FSSBIVSBST0FECisJCQkJVEFJUEVJIFRBSVBFSSBUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLUY3ICAgKGhleCkJCVBvbGFyb2lkIENvcnBvcmF0aW9uCiswMDQwRjcgICAgIChiYXNlIDE2KQkJUG9sYXJvaWQgQ29ycG9yYXRpb24KKwkJCQkzMDAgQmFrZXIgQXZlbnVlCisJCQkJQ29uY29yZCBNQSAwMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRjggICAoaGV4KQkJU1lTVEVNSEFVUyBESVNDT00KKzAwNDBGOCAgICAgKGJhc2UgMTYpCQlTWVNURU1IQVVTIERJU0NPTQorCQkJCURJU1RSSUJVVEVEIENPTVBVVElORyBHTUJICisJCQkJUk9FUk1PTkRFUlNUUi4gNjE1IEQtNTEwMCBBQUNIRU4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC1GOSAgIChoZXgpCQlDT01CSU5FVAorMDA0MEY5ICAgICAoYmFzZSAxNikJCUNPTUJJTkVUCisJCQkJMzMzIFcuIEVMIENBTUlOTyBSRUFMLVNURSMzMTAKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUZBICAgKGhleCkJCU1JQ1JPQk9BUkRTLCBJTkMuCiswMDQwRkEgICAgIChiYXNlIDE2KQkJTUlDUk9CT0FSRFMsIElOQy4KKwkJCQkzMS04LCBUQUtBU0VDSE8sRlVOQUJBU0hJLUNJVFkKKwkJCQlDSElCQSAyNzMgQ0hJQkEgMjczIEpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtRkIgICAoaGV4KQkJQ0FTQ0FERSBDT01NVU5JQ0FUSU9OUyBDT1JQLgorMDA0MEZCICAgICAoYmFzZSAxNikJCUNBU0NBREUgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQlQUk9EVUNUSU9OIFFVQUxJVFkgRU5HSU5FRVIKKwkJCQkyMzkgTElUVExFVE9OIFJPQUQtVU5JVCA0QQorCQkJCVdFU1RGT1JEIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1GQyAgIChoZXgpCQlJQlIgQ09NUFVURVIgVEVDSE5JSyBHTUJICiswMDQwRkMgICAgIChiYXNlIDE2KQkJSUJSIENPTVBVVEVSIFRFQ0hOSUsgR01CSAorCQkJCUZSQU5LRlVSVEVSIFNUUi4gMTE0CisJCQkJRCA2MDU2IEhFVVNFTlNUQU1NCisJCQkJV0VTVCBHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC1GRCAgIChoZXgpCQlMWEUKKzAwNDBGRCAgICAgKGJhc2UgMTYpCQlMWEUKKwkJCQkzMDMgUkVTRUFSQ0ggRFJJVkUKKwkJCQlOT1JDUk9TUyBHQSAzMDA5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRkUgICAoaGV4KQkJU1lNUExFWCBDT01NVU5JQ0FUSU9OUworMDA0MEZFICAgICAoYmFzZSAxNikJCVNZTVBMRVggQ09NTVVOSUNBVElPTlMKKwkJCQk1IFJFU0VBUkNIIERSSVZFCisJCQkJQU5OIEFSQk9SIE1JIDQ4MTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1GRiAgIChoZXgpCQlURUxFQklUIENPUlBPUkFUSU9OCiswMDQwRkYgICAgIChiYXNlIDE2KQkJVEVMRUJJVCBDT1JQT1JBVElPTgorCQkJCTEzMTUgQ0hFU0FQRUFLRSBURVJSQUNFCisJCQkJU1VOTllWQUxFIENBIDk0MDg5LTExMDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQyLTUyICAgKGhleCkJCVJMWCBUZWNobm9sb2dpZXMKKzAwNDI1MiAgICAgKGJhc2UgMTYpCQlSTFggVGVjaG5vbG9naWVzCisJCQkJMjUyMzEgR3JvZ3JhbnMgTWlsbCBSZAorCQkJCVN1aXRlIDYwMAorCQkJCVRoZSBXb29kbGFuZHMgVHggNzczODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQ1LTAxICAgKGhleCkJCVZlcnN1cyBUZWNobm9sb2d5LCBJbmMuCiswMDQ1MDEgICAgIChiYXNlIDE2KQkJVmVyc3VzIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyNjAwIE1pbGxlciBDcmVlayBSb2FkCisJCQkJVHJhdmVyc2UgQ2l0eSBNSSA0OTY4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMDAgICAoaGV4KQkJTkVYTyBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDA1MDAwICAgICAoYmFzZSAxNikJCU5FWE8gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkyTkQgRkwuLCAxNjAsIE1JTkdDSFUgUk9BRAorCQkJCUhTSU5DSFUgQ0lUWSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC0wMSAgIChoZXgpCQlZQU1BU0hJVEEgU1lTVEVNUyBDT1JQLgorMDA1MDAxICAgICAoYmFzZSAxNikJCVlBTUFTSElUQSBTWVNURU1TIENPUlAuCisJCQkJNS03LTEyIElLRUdBTUkKKwkJCQlPVEEtS1UgVE9LWU8gIAorCQkJCUpBUEFOCisKKzAwLTUwLTAyICAgKGhleCkJCU9NTklTRUMgQUcKKzAwNTAwMiAgICAgKGJhc2UgMTYpCQlPTU5JU0VDIEFHCisJCQkJUklFVFNUUkFTU0UgMTQKKwkJCQlDSC04MTA4IERBRUxMSUtPTiAgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtNTAtMDMgICAoaGV4KQkJR1JFVEFHIE1BQ0JFVEggQUcKKzAwNTAwMyAgICAgKGJhc2UgMTYpCQlHUkVUQUcgTUFDQkVUSCBBRworCQkJCUFMVEhBUkRTVFJBU1NFIDcwCisJCQkJQ0gtODEwNSBSRUdFTlNET1JGICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC01MC0wNCAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMDUwMDQgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQkFZRlJPTlQgUExBWkEKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMDYgICAoaGV4KQkJVEFDIEFCCiswMDUwMDYgICAgIChiYXNlIDE2KQkJVEFDIEFCCisJCQkJSkFHRVJTSElMTEdBVE9OIDE4CisJCQkJMjEzNzUgTUFMTU8gIAorCQkJCVNXRURFTgorCiswMC01MC0wNyAgIChoZXgpCQlTSUVNRU5TIFRFTEVDT01NVU5JQ0FUSU9OIFNZU1RFTVMgTElNSVRFRAorMDA1MDA3ICAgICAoYmFzZSAxNikJCVNJRU1FTlMgVEVMRUNPTU1VTklDQVRJT04gU1lTVEVNUyBMSU1JVEVECisJCQkJTk8uIDkwLCBTRUMuIDEsIENISUVOIEtVTyBOT1JUSCBST0FECisJCQkJVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLTA4ICAgKGhleCkJCVRJVkEgTUlDUk9DT01QVVRFUiBDT1JQLiAoVE1DKQorMDA1MDA4ICAgICAoYmFzZSAxNikJCVRJVkEgTUlDUk9DT01QVVRFUiBDT1JQLiAoVE1DKQorCQkJCTQ4NTUwIEZSRU1PTlQgQkxWRC4KKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0wOSAgIChoZXgpCQlQSElMSVBTIEJST0FEQkFORCBORVRXT1JLUworMDA1MDA5ICAgICAoYmFzZSAxNikJCVBISUxJUFMgQlJPQURCQU5EIE5FVFdPUktTCisJCQkJNjQgUEVSSU1FVEVSIENFTlRSRSBFQVNUCisJCQkJQVRMQU5UQSBHQSAzMDM0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMEEgICAoaGV4KQkJSVJJUyBURUNITk9MT0dJRVMsIElOQy4KKzAwNTAwQSAgICAgKGJhc2UgMTYpCQlJUklTIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCVdFU1RNT1JFTEFORCBJTkRVU1JJQUwgUEFSSworCQkJCVIuUi4gMTIgIEJPWCAzNgorCQkJCUdSRUVOU0JVUkcgUEEgMTU2MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTBCICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNTAwQiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCU0vUyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTBDICAgKGhleCkJCWUtVGVrIExhYnMsIEluYy4KKzAwNTAwQyAgICAgKGJhc2UgMTYpCQllLVRlayBMYWJzLCBJbmMuCisJCQkJMTA1NyBFQVNUIEhFTlJJRVRUQSBSRC4KKwkJCQlST0NIRVNURVIgTlkgMTQ2MjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTBEICAgKGhleCkJCVNBVE9SSSBFTEVDVE9SSUMgQ08uLCBMVEQuCiswMDUwMEQgICAgIChiYXNlIDE2KQkJU0FUT1JJIEVMRUNUT1JJQyBDTy4sIExURC4KKwkJCQlUSUdVU0FEQUkgMzgtOCAgTUlET1JJLUtVCisJCQkJWU9LT0hBTUEsIEtBTkFHQVdBICAKKwkJCQlKQVBBTgorCiswMC01MC0wRSAgIChoZXgpCQlDSFJPTUFUSVMgTkVUV09SS1MsIElOQy4KKzAwNTAwRSAgICAgKGJhc2UgMTYpCQlDSFJPTUFUSVMgTkVUV09SS1MsIElOQy4KKwkJCQkzIEJFVEhFU0RBIE1FVFJPIENFTlRFUgorCQkJCUJFVEhFU0RBIE1EIDIwODE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0wRiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwMEYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUgLSBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTEwICAgKGhleCkJCU5vdmFORVQgTGVhcm5pbmcsIEluYy4KKzAwNTAxMCAgICAgKGJhc2UgMTYpCQlOb3ZhTkVUIExlYXJuaW5nLCBJbmMuCisJCQkJMTI1IFcuIENIVVJDSCBTVFJFRVQtU1RFLiAjMzAwCisJCQkJQ0hBTVBBSUdOIElMIDYxODIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0xMiAgIChoZXgpCQlDQkwgLSBHTUJICiswMDUwMTIgICAgIChiYXNlIDE2KQkJQ0JMIC0gR01CSAorCQkJCURBUk1TVEFFRFRFUiBTVFIuIDgxCisJCQkJRC02NDgzOSBNVUVOU1RFUiAgCisJCQkJR0VSTUFOWQorCiswMC01MC0xMyAgIChoZXgpCQlDaGFwYXJyYWwgTmV0d29yayBTdG9yYWdlCiswMDUwMTMgICAgIChiYXNlIDE2KQkJQ2hhcGFycmFsIE5ldHdvcmsgU3RvcmFnZQorCQkJCTc0MjAgRS4gRHJ5IENyZWVrIFBhcmt3YXkKKwkJCQlMb25nbW9udCBDTyA4MDUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMTQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MDE0ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQlNL1MvIFNKQS0yCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTE1ICAgKGhleCkJCUJSSUdIVCBTVEFSIEVOR0lORUVSSU5HCiswMDUwMTUgICAgIChiYXNlIDE2KQkJQlJJR0hUIFNUQVIgRU5HSU5FRVJJTkcKKwkJCQkxOSBFTkZJRUxEIERSSVZFCisJCQkJQU5ET1ZFUiBNQSAwMTgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMTYgICAoaGV4KQkJU1NUL1dPT0RIRUFEIElORFVTVFJJRVMKKzAwNTAxNiAgICAgKGJhc2UgMTYpCQlTU1QvV09PREhFQUQgSU5EVVNUUklFUworCQkJCTUwIE5PUlRITEFORCBST0FECisJCQkJV0FURVJMT08KKwkJCQlPTlRBUklPIE4yViAxTjMgIAorCQkJCUNBTkFEQQorCiswMC01MC0xNyAgIChoZXgpCQlSU1IgUy5SLkwuCiswMDUwMTcgICAgIChiYXNlIDE2KQkJUlNSIFMuUi5MLgorCQkJCVZJQSBTSU5JR0FHTElBLCAzOAorCQkJCUxVUkFURSBDQUNDSVZJTyAoQ08pCisJCQkJMjIwNzUgSVRBTFkKKwkJCQlJVEFMWQorCiswMC01MC0xOCAgIChoZXgpCQlBTUlULCBJbmMuCiswMDUwMTggICAgIChiYXNlIDE2KQkJQU1JVCwgSW5jLgorCQkJCU5vLjMyLCBIdWFuZ29uZyBSZC4sCisJCQkJWW9uZ2thbmcgQ2l0eSwgVGFpbmFuIENvdW50eSA3MTA0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtMTkgICAoaGV4KQkJU1BSSU5HIFRJREUgTkVUV09SS1MsIElOQy4KKzAwNTAxOSAgICAgKGJhc2UgMTYpCQlTUFJJTkcgVElERSBORVRXT1JLUywgSU5DLgorCQkJCTg1IFNXQU5TT04gUk9BRAorCQkJCUJPWEJPUk9VR0ggTUEgMDE3MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTFBICAgKGhleCkJCUlRaW5WaXNpb24KKzAwNTAxQSAgICAgKGJhc2UgMTYpCQlJUWluVmlzaW9uCisJCQkJMzMxMjIgVmFsbGUgUm9hZAorCQkJCVNhbiBKdWFuIENhcGlzdHJhbm8gQ0EgOTI2NzUtNDg1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMUIgICAoaGV4KQkJQUJMIENBTkFEQSwgSU5DLgorMDA1MDFCICAgICAoYmFzZSAxNikJCUFCTCBDQU5BREEsIElOQy4KKwkJCQk4NTUwIENPVEUgREUgTElFU1NFCisJCQkJU1QtTEFVUkVOVCAoUVVFQkVDKSBINFQgMUgyICAKKwkJCQlDQU5BREEKKworMDAtNTAtMUMgICAoaGV4KQkJSkFUT00gU1lTVEVNUywgSU5DLgorMDA1MDFDICAgICAoYmFzZSAxNikJCUpBVE9NIFNZU1RFTVMsIElOQy4KKwkJCQk5OSBNSUNIQUVMIENPV1BMQU5EIERSSVZFCisJCQkJS0FOQVRBCisJCQkJT05UQVJJTywgSzJNIDFYMyAgCisJCQkJQ0FOQURBCisKKzAwLTUwLTFFICAgKGhleCkJCU1pcmFuZGEgVGVjaG5vbG9naWVzLCBJbmMuCiswMDUwMUUgICAgIChiYXNlIDE2KQkJTWlyYW5kYSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkzNDk5LCBEb3VnbGFzIEIuIEZsb3JlYW5pCisJCQkJU2FuaXQtTGF1cmVudCwgUUMKKwkJCQlINFMgMkM2IAorCQkJCUNBTkFEQQorCiswMC01MC0xRiAgIChoZXgpCQlNUkcgU1lTVEVNUywgTFRELgorMDA1MDFGICAgICAoYmFzZSAxNikJCU1SRyBTWVNURU1TLCBMVEQuCisJCQkJV0lMTE9XIEhPVVNFLCBTTEFEIFJPQUQKKwkJCQlTVFJPVUQKKwkJCQlHTE9TLiAgR0w1IDFRRyBFbmdsYW5kICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC01MC0yMCAgIChoZXgpCQlNRURJQVNUQVIgQ08uLCBMVEQuCiswMDUwMjAgICAgIChiYXNlIDE2KQkJTUVESUFTVEFSIENPLiwgTFRELgorCQkJCTNGTCwgU09IVU4gQkxERy4KKwkJCQk5NTEtMzMgRE9HT0stRE9ORywgS0FOR05BTS1LVSBTRU9VTAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTUwLTIxICAgKGhleCkJCUVJUyBJTlRFUk5BVElPTkFMLCBJTkMuCiswMDUwMjEgICAgIChiYXNlIDE2KQkJRUlTIElOVEVSTkFUSU9OQUwsIElOQy4KKwkJCQkxMzUxIFdBU0hJTkdUT04gQkxWRC4KKwkJCQlTVEFNRk9SRCBDVCAwNjkwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMjIgICAoaGV4KQkJWk9ORVQgVEVDSE5PTE9HWSwgSU5DLgorMDA1MDIyICAgICAoYmFzZSAxNikJCVpPTkVUIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk4MzAgUk9PTSwgQkxERy4gNTMsIDE5NSwgU0VDLjQKKwkJCQlDSFVORyBIU0lVTkcgUkQsIENIVVRVTkcKKwkJCQlIU0lOQ0hBICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLTIzICAgKGhleCkJCVBHIERFU0lHTiBFTEVDVFJPTklDUywgSU5DLgorMDA1MDIzICAgICAoYmFzZSAxNikJCVBHIERFU0lHTiBFTEVDVFJPTklDUywgSU5DLgorCQkJCTQ4NzAwIFNUUlVDVFVSQUwgRFJJVkUKKwkJCQlDSEVTVEVSRklFTEQgTUkgNDgwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTI0ICAgKGhleCkJCU5BVklDIFNZU1RFTVMsIElOQy4KKzAwNTAyNCAgICAgKGJhc2UgMTYpCQlOQVZJQyBTWVNURU1TLCBJTkMuCisJCQkJNzQgQ1JFU0NFTlQgU1RSRUVUCisJCQkJTkVFREhBTSBNQQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMjYgICAoaGV4KQkJQ09TWVNURU1TLCBJTkMuCiswMDUwMjYgICAgIChiYXNlIDE2KQkJQ09TWVNURU1TLCBJTkMuCisJCQkJMTI2MyBPQUtNRUFEIFBBUktXQVkKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTI3ICAgKGhleCkJCUdFTklDT00gQ09SUE9SQVRJT04KKzAwNTAyNyAgICAgKGJhc2UgMTYpCQlHRU5JQ09NIENPUlBPUkFUSU9OCisJCQkJOTAwIENMT1BQRVIgUk9BRCAtIFNURS4gIzExMAorCQkJCUdBSVRIRVJTQlVSRyBNRCAyMDg3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMjggICAoaGV4KQkJQVZBTCBDT01NVU5JQ0FUSU9OUworMDA1MDI4ICAgICAoYmFzZSAxNikJCUFWQUwgQ09NTVVOSUNBVElPTlMKKwkJCQkxNzc3IE5PUlRIIENBTElGT1JOSUEgQkxWRC4KKwkJCQlXQUxOVVQgQ1JFRUsgQ0EgOTQ1OTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTI5ICAgKGhleCkJCTEzOTQgUFJJTlRFUiBXT1JLSU5HIEdST1VQCiswMDUwMjkgICAgIChiYXNlIDE2KQkJMTM5NCBQUklOVEVSIFdPUktJTkcgR1JPVVAKKwkJCQlQLk8uIEJPWCAyMzE1OAorCQkJCVNBTiBKT1NFIENBIDk1MTUzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0yQSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwMkEgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCU0vUyBTSkEtMgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0yQiAgIChoZXgpCQlHRU5SQUQgTFRELgorMDA1MDJCICAgICAoYmFzZSAxNikJCUdFTlJBRCBMVEQuCisJCQkJT1JJT04gQlVTSU5FU1MgUEFSSworCQkJCUJJUkRIQUxMIExBTkUgU1RPQ0tQT1JULCBDSEVTSElSRQorCQkJCVVOSVRFRCBLSU5HRE9NIFNLMyBPWEcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC01MC0yQyAgIChoZXgpCQlTT1lPIENPTVBVVEVSLCBJTkMuCiswMDUwMkMgICAgIChiYXNlIDE2KQkJU09ZTyBDT01QVVRFUiwgSU5DLgorCQkJCU5PLiAyMSBXVS1LVU5HIDUgUkQuCisJCQkJSFNJTkcgQ0hVQU5HIENJVFkgVEFJUEVJIEhTSUVOCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLTJEICAgKGhleCkJCUFDQ0VMLCBJTkMuCiswMDUwMkQgICAgIChiYXNlIDE2KQkJQUNDRUwsIElOQy4KKwkJCQkxRiwgTk8uIDcsIFImRCAxU1QgUk9BRAorCQkJCVNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLCisJCQkJSFNJTkNIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC0yRSAgIChoZXgpCQlDQU1CRVggQ09SUE9SQVRJT04KKzAwNTAyRSAgICAgKGJhc2UgMTYpCQlDQU1CRVggQ09SUE9SQVRJT04KKwkJCQkxMTUgRmxhbmRlcnMgUm9hZAorCQkJCVdlc3Rib3JvdWdoIE1BIDAxNTgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0yRiAgIChoZXgpCQlUb2xsQnJpZGdlIFRlY2hub2xvZ2llcywgSW5jLgorMDA1MDJGICAgICAoYmFzZSAxNikJCVRvbGxCcmlkZ2UgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJODcyIEhFUk1PU0EgRFJJVkUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTMwICAgKGhleCkJCUZVVFVSRSBQTFVTIFNZU1RFTVMKKzAwNTAzMCAgICAgKGJhc2UgMTYpCQlGVVRVUkUgUExVUyBTWVNURU1TCisJCQkJMzYgT0xERSBFTkdMSVNIIFJELgorCQkJCUJFREZPUkQgTkggMDMxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTMxICAgKGhleCkJCUFFUk9GTEVYIExBQk9SQVRPUklFUywgSU5DLgorMDA1MDMxICAgICAoYmFzZSAxNikJCUFFUk9GTEVYIExBQk9SQVRPUklFUywgSU5DLgorCQkJCTM1IFNPVVRIIFNFUlZJQ0UgUk9BRAorCQkJCVBMQUlOVklFVyBOWSAxMTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMzIgICAoaGV4KQkJUElDQVpPIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDUwMzIgICAgIChiYXNlIDE2KQkJUElDQVpPIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJNjEgREFHR0VUVCBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0zMyAgIChoZXgpCQlNQVlBTiBORVRXT1JLUworMDA1MDMzICAgICAoYmFzZSAxNikJCU1BWUFOIE5FVFdPUktTCisJCQkJMzM1MCBTQ09UVCBCTFZELiAtIEJMREcuICM5CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTM2ICAgKGhleCkJCU5FVENBTSwgTFRELgorMDA1MDM2ICAgICAoYmFzZSAxNikJCU5FVENBTSwgTFRELgorCQkJCTYwNzEgTi4gUEFTRU8gWkFMRElWQVIKKwkJCQlUVUNTT04gQVogODU3NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTM3ICAgKGhleCkJCUtPR0EgRUxFQ1RST05JQ1MgQ08uCiswMDUwMzcgICAgIChiYXNlIDE2KQkJS09HQSBFTEVDVFJPTklDUyBDTy4KKwkJCQk1LTgtMTAsIFRFSEFSQSwgUklUVE8tQ0hPCisJCQkJS1VSSVRBIEdVTgorCQkJCVNISUdBLCA0MjAtMzA0NyAgCisJCQkJSkFQQU4KKworMDAtNTAtMzggICAoaGV4KQkJREFJTiBURUxFQ09NIENPLiwgTFRELgorMDA1MDM4ICAgICAoYmFzZSAxNikJCURBSU4gVEVMRUNPTSBDTy4sIExURC4KKwkJCQkyTkQgRmxyLiwgT0gtU1VORyBCTERHLiAjMi0yOAorCQkJCVlBTkdKQUUtRE9ORywgU0VPQ0hPLUdVIFNFT1VMIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC01MC0zOSAgIChoZXgpCQlNQVJJTkVSIE5FVFdPUktTCiswMDUwMzkgICAgIChiYXNlIDE2KQkJTUFSSU5FUiBORVRXT1JLUworCQkJCTE1ODUgUy4gTUFOQ0hFU1RFUiBBVkUuCisJCQkJQU5BSEVJTSBDQSA5MjgwMi0yOTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0zQSAgIChoZXgpCQlEQVRPTkcgRUxFQ1RST05JQ1MgTFRELgorMDA1MDNBICAgICAoYmFzZSAxNikJCURBVE9ORyBFTEVDVFJPTklDUyBMVEQuCisJCQkJQ0xBWVRPTiBXT09EIENMT1NFCisJCQkJV0VTVCBQQVJLCisJCQkJTGVlZHMgTFMxNiA2UUUgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTUwLTNCICAgKGhleCkJCU1FRElBRklSRSBDT1JQT1JBVElPTgorMDA1MDNCICAgICAoYmFzZSAxNikJCU1FRElBRklSRSBDT1JQT1JBVElPTgorCQkJCTExMzE3IEZSRURFUklDSyBBVkVOVUUKKwkJCQlCRUxUU1ZJTExFIE1EIDIwNzA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0zQyAgIChoZXgpCQlUU0lOR0hVQSBOT1ZFTCBFTEVDVFJPTklDUworMDA1MDNDICAgICAoYmFzZSAxNikJCVRTSU5HSFVBIE5PVkVMIEVMRUNUUk9OSUNTCisJCQkJQ08uLCBMVEQuCisJCQkJUk9PTSAxMjA1LCBIVUFZRSBCVUlMRElORyBUU0lOR0hVQSBVTklWRQorCQkJCTEwMDA4NCAxMDAwODQgQ0hJTkEKKwkJCQlDSElOQQorCiswMC01MC0zRSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwM0UgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlNL1MvIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtM0YgICAoaGV4KQkJQU5DSE9SIEdBTUVTCiswMDUwM0YgICAgIChiYXNlIDE2KQkJQU5DSE9SIEdBTUVTCisJCQkJODE1IFBJTE9UIFJPQUQsIFN1aXRlIEcKKwkJCQlMQVMgVkVHQVMgTlYgODkxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTQwICAgKGhleCkJCVBhbmFzb25pYyBFbGVjdHJpYyBXb3JrcyBDby4sIEx0ZC4KKzAwNTA0MCAgICAgKGJhc2UgMTYpCQlQYW5hc29uaWMgRWxlY3RyaWMgV29ya3MgQ28uLCBMdGQuCisJCQkJVHN1LUZhY3RvcnksIDE2NjgsIEZ1amlrYXRhCisJCQkJVHN1LXNoaSBNaWUta2VuIDUxNC04NTU1CisJCQkJSkFQQU4KKworMDAtNTAtNDEgICAoaGV4KQkJQ29yZXRyb25pYyBDb3Jwb3JhdGlvbgorMDA1MDQxICAgICAoYmFzZSAxNikJCUNvcmV0cm9uaWMgQ29ycG9yYXRpb24KKwkJCQlOTy4xMSwgTEkgSFNJTiBSRC4KKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSyBISVNOQ0hVCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC00MiAgIChoZXgpCQlTQ0kgTUFOVUZBQ1RVUklORyBTSU5HQVBPUkUgUFRFLCBMVEQuCiswMDUwNDIgICAgIChiYXNlIDE2KQkJU0NJIE1BTlVGQUNUVVJJTkcgU0lOR0FQT1JFIFBURSwgTFRELgorCQkJCTMgREVQT1QgQ0xPU0UKKwkJCQlTSU5HQVBPUkUgMTA5ODQwIAorCQkJCVNJTkdBUE9SRQorCiswMC01MC00MyAgIChoZXgpCQlNQVJWRUxMIFNFTUlDT05EVUNUT1IsIElOQy4KKzAwNTA0MyAgICAgKGJhc2UgMTYpCQlNQVJWRUxMIFNFTUlDT05EVUNUT1IsIElOQy4KKwkJCQk2NDUgQUxNQU5PUiBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTQ0ICAgKGhleCkJCUFTQUNBIENPUlBPUkFUSU9OCiswMDUwNDQgICAgIChiYXNlIDE2KQkJQVNBQ0EgQ09SUE9SQVRJT04KKwkJCQk0MjAgQ09SUE9SQVRFIENJUkNMRSwgVW5pdCBICisJCQkJR09MREVOIENPIDgwNDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC00NSAgIChoZXgpCQlSSU9XT1JLUyBTT0xVVElPTlMsIElOQy4KKzAwNTA0NSAgICAgKGJhc2UgMTYpCQlSSU9XT1JLUyBTT0xVVElPTlMsIElOQy4KKwkJCQk0RiwgTk8uMjgsIExBTkUgNTgzCisJCQkJSlVJLUtXQU5HIFJPQUQgVEFJUEVJLCAgMTE0NTcKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtNDYgICAoaGV4KQkJTUVOSUNYIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCiswMDUwNDYgICAgIChiYXNlIDE2KQkJTUVOSUNYIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCisJCQkJTk8uOSwgTUlORyBUU1VOIFJPQUQKKwkJCQlDSFVUVU5HLCBIU0lOQ0hVCisJCQkJVEFJV0FOIDMxMCBUQUlXQU4gMzEwIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtNDcgICAoaGV4KQkJUFJJVkFURQorMDA1MDQ3ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC01MC00OCAgIChoZXgpCQlJTkZPTElCUklBCiswMDUwNDggICAgIChiYXNlIDE2KQkJSU5GT0xJQlJJQQorCQkJCTQxMSBXQVZFUkxZIE9BS1MgUkQtU1RFICMzMjMKKwkJCQlXQUxUSEFNIE1BIDAyMTU0LTg0MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTQ5ICAgKGhleCkJCUFyYm9yIE5ldHdvcmtzIEluYworMDA1MDQ5ICAgICAoYmFzZSAxNikJCUFyYm9yIE5ldHdvcmtzIEluYworCQkJCTYgT21uaSBXYXkKKwkJCQlDaGVsbXNmb3JkIE1BIDAxODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC00QSAgIChoZXgpCQlFTFRFQ08gQS5TLgorMDA1MDRBICAgICAoYmFzZSAxNikJCUVMVEVDTyBBLlMuCisJCQkJUk9TSU5TS0EgQ0VTVEEgIFAuTy4gQk9YIEMtOQorCQkJCTAxMDAxIFpJTElOQQorCQkJCVNMT1ZBS0lBCisJCQkJU0xPVkFLSUEKKworMDAtNTAtNEIgICAoaGV4KQkJQkFSQ09ORVQgTi5WLgorMDA1MDRCICAgICAoYmFzZSAxNikJCUJBUkNPTkVUIE4uVi4KKwkJCQlMVUlQQUFSRFNUUkFBVCAxMgorCQkJCTg1MDAgS09SVFJJSksKKwkJCQlCRUxHSVVNCisJCQkJQkVMR0lVTQorCiswMC01MC00QyAgIChoZXgpCQlHYWxpbCBNb3Rpb24gQ29udHJvbAorMDA1MDRDICAgICAoYmFzZSAxNikJCUdhbGlsIE1vdGlvbiBDb250cm9sCisJCQkJMjcwIFRlY2hub2xvZ3kgV2F5CisJCQkJUm9ja2xpbiBDQSA5NTc2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNEQgICAoaGV4KQkJVG9reW8gRWxlY3Ryb24gRGV2aWNlIExpbWl0ZWQKKzAwNTA0RCAgICAgKGJhc2UgMTYpCQlUb2t5byBFbGVjdHJvbiBEZXZpY2UgTGltaXRlZAorCQkJCTEsIEhpZ2FzaGlrYXRhLW1hY2hpLCBUc3V6dWtpLWt1LAorCQkJCVlva29oYW1hLXNoaSBLYW5hZ2F3YS1rZW4gCisJCQkJSkFQQU4KKworMDAtNTAtNEUgICAoaGV4KQkJU0lFUlJBIE1PTklUT1IgQ09SUC4KKzAwNTA0RSAgICAgKGJhc2UgMTYpCQlTSUVSUkEgTU9OSVRPUiBDT1JQLgorCQkJCTE5OTEgVEFST0IgQ09VUlQKKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNEYgICAoaGV4KQkJT0xFTkNPTSBFTEVDVFJPTklDUworMDA1MDRGICAgICAoYmFzZSAxNikJCU9MRU5DT00gRUxFQ1RST05JQ1MKKwkJCQlTT0xUQU0gSU5EVVNUUklBTCBQQVJLCisJCQkJUC5PLiBCT1ggMTk2CisJCQkJWU9LTkVBTSAyMDY5MiAgCisJCQkJSVNSQUVMCisKKzAwLTUwLTUwICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNTA1MCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRS0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC01MSAgIChoZXgpCQlJV0FUU1UgRUxFQ1RSSUMgQ08uLCBMVEQuCiswMDUwNTEgICAgIChiYXNlIDE2KQkJSVdBVFNVIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTctNDEsIEtVR0FZQU1BIDEtQ0hPTUUKKwkJCQlTVUdJTkFNSS1LVSwgVE9LWU8gMTY4LTg1MDEgIAorCQkJCUpBUEFOCisKKzAwLTUwLTUyICAgKGhleCkJCVRJQVJBIE5FVFdPUktTLCBJTkMuCiswMDUwNTIgICAgIChiYXNlIDE2KQkJVElBUkEgTkVUV09SS1MsIElOQy4KKwkJCQkxMTMgRk9PUklFUiBBVkVOVUUKKwkJCQlGUkVNT05UIENBIDk0NTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC01MyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwNTMgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUtU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC01NCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwNTQgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCU0vUyBTSkEtMgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC01NSAgIChoZXgpCQlET01TIEEvUworMDA1MDU1ICAgICAoYmFzZSAxNikJCURPTVMgQS9TCisJCQkJRk9STUVSVkFOR0VOIDI4CisJCQkJREstMjYwMCBHTE9TVFJVUAorCQkJCURFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLTUwLTU2ICAgKGhleCkJCVZNd2FyZSwgSW5jLgorMDA1MDU2ICAgICAoYmFzZSAxNikJCVZNd2FyZSwgSW5jLgorCQkJCTM0MDEgSGlsbHZpZXcgQXZlbnVlCisJCQkJUEFMTyBBTFRPIENBIDk0MzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC01NyAgIChoZXgpCQlCUk9BREJBTkQgQUNDRVNTIFNZU1RFTVMKKzAwNTA1NyAgICAgKGJhc2UgMTYpCQlCUk9BREJBTkQgQUNDRVNTIFNZU1RFTVMKKwkJCQkyMDEgRk9SRVNUIFNUUkVFVAorCQkJCU1BUkxCT1JPVUdIIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC01OCAgIChoZXgpCQlWZWdhU3RyZWFtIEdyb3VwIExpbXRlZAorMDA1MDU4ICAgICAoYmFzZSAxNikJCVZlZ2FTdHJlYW0gR3JvdXAgTGltdGVkCisJCQkJQXNtZWMgQ2VudHJlLCBFYWdsZSBIb3VzZQorCQkJCVRoZSBSaW5nCisJCQkJQnJhY2tuZWxsIEJlcmtzaGlyZSBSRzEyIDFIQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTUwLTU5ICAgKGhleCkJCWlCQUhOCiswMDUwNTkgICAgIChiYXNlIDE2KQkJaUJBSE4KKwkJCQkxMDc1NyBTLiBSaXZlciBGcm9udCBQYXJrd2F5CisJCQkJU3VpdGUgMzAwCisJCQkJU291dGggSm9yZGFuIFVUIDg0MDk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC01QSAgIChoZXgpCQlORVRXT1JLIEFMQ0hFTVksIElOQy4KKzAwNTA1QSAgICAgKGJhc2UgMTYpCQlORVRXT1JLIEFMQ0hFTVksIElOQy4KKwkJCQkxNTIxLjUgUEFDSUZJQyBBVkVOVUUKKwkJCQlTQU5UQSBDUlVaIENBIDk1MDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC01QiAgIChoZXgpCQlLQVdBU0FLSSBMU0kgVS5TLkEuLCBJTkMuCiswMDUwNUIgICAgIChiYXNlIDE2KQkJS0FXQVNBS0kgTFNJIFUuUy5BLiwgSU5DLgorCQkJCTI1NzAgTk9SVEhGSVJTVCBTVFJFRVQKKwkJCQlTVUlURSAjMzAxCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTVDICAgKGhleCkJCVRVTkRPIENPUlBPUkFUSU9OCiswMDUwNUMgICAgIChiYXNlIDE2KQkJVFVORE8gQ09SUE9SQVRJT04KKwkJCQk3IEdJQk9SRUkgSVNSQUVMIFNUUkVFVAorCQkJCU5BVEFOWUEgNDI1MDQgIAorCQkJCUlTUkFFTAorCiswMC01MC01RSAgIChoZXgpCQlESUdJVEVLIE1JQ1JPTE9HSUMgUy5BLgorMDA1MDVFICAgICAoYmFzZSAxNikJCURJR0lURUsgTUlDUk9MT0dJQyBTLkEuCisJCQkJU0FOVCBKT0FOIERFIExBIFNBTExFIDYKKwkJCQlFMDgwMjIgQkFSQ0VMT05BCisJCQkJU1BBSU4KKwkJCQlTUEFJTgorCiswMC01MC01RiAgIChoZXgpCQlCUkFORCBJTk5PVkFUT1JTCiswMDUwNUYgICAgIChiYXNlIDE2KQkJQlJBTkQgSU5OT1ZBVE9SUworCQkJCURFIFBJTkNLIEFSVCA1NAorCQkJCTU2NzQgQ0MgTlVFTkVOICAKKwkJCQlORVRIRVJMQU5EUworCiswMC01MC02MCAgIChoZXgpCQlUQU5EQkVSRyBURUxFQ09NIEFTCiswMDUwNjAgICAgIChiYXNlIDE2KQkJVEFOREJFUkcgVEVMRUNPTSBBUworCQkJCVBoaWxpcCBQZWRlcnNlbnMgdmVpIDIwCisJCQkJMTM2MSBMeXNha2VyIAorCQkJCU5PUldBWQorCiswMC01MC02MiAgIChoZXgpCQlLT1VXRUxMIEVMRUNUUk9OSUNTIENPUlAuICAqKgorMDA1MDYyICAgICAoYmFzZSAxNikJCUtPVVdFTEwgRUxFQ1RST05JQ1MgQ09SUC4gICoqCisJCQkJN0YsIE5PLjk5LCBOQU4tS0FORyBST0FECisJCQkJU0VDLiAzLCBUQUlQRUkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLTYzICAgKGhleCkJCU9ZIENPTVNFTCBTWVNURU0gQUIKKzAwNTA2MyAgICAgKGJhc2UgMTYpCQlPWSBDT01TRUwgU1lTVEVNIEFCCisJCQkJVEVHRUxCUlVLU0dBVEFOIDUtNworCQkJCUZJTi02NTEwMCBWQVNBICAKKwkJCQlGSU5MQU5ECisKKzAwLTUwLTY0ICAgKGhleCkJCUNBRSBFTEVDVFJPTklDUworMDA1MDY0ICAgICAoYmFzZSAxNikJCUNBRSBFTEVDVFJPTklDUworCQkJCVAuTy4gQk9YIDE4MDAKKwkJCQlTVC4gTEFVUkVOVCwgUVVFQkVDIEg0TCA0WDQgIAorCQkJCUNBTkFEQQorCiswMC01MC02NSAgIChoZXgpCQlUREstTGFtYmRhIENvcnBvcmF0aW9uCiswMDUwNjUgICAgIChiYXNlIDE2KQkJVERLLUxhbWJkYSBDb3Jwb3JhdGlvbgorCQkJCTM2LTEgS2FzdW1pbm9zYXRvCisJCQkJQW1pLU1hY2hpIEluYXNoaWtpLUd1biBJYmFyYWtpLCAzMDAtMDM5NgorCQkJCUpBUEFOCisKKzAwLTUwLTY2ICAgKGhleCkJCUF0ZWNvTSBHbWJIIGFkdmFuY2VkIHRlbGVjb211bmljYXRpb24gbW9kdWxlcworMDA1MDY2ICAgICAoYmFzZSAxNikJCUF0ZWNvTSBHbWJIIGFkdmFuY2VkIHRlbGVjb211bmljYXRpb24gbW9kdWxlcworCQkJCUtBSVNFUlNUUi4gMTAwCisJCQkJRC01MjEzNCBIRVJaT0dFTlJBVEggIAorCQkJCUdFUk1BTlkKKworMDAtNTAtNjcgICAoaGV4KQkJQUVST0NPTU0sIElOQy4KKzAwNTA2NyAgICAgKGJhc2UgMTYpCQlBRVJPQ09NTSwgSU5DLgorCQkJCTEzMjU2IFcuIDk4VEggU1RSRUVUCisJCQkJTEVORVhBIEtTIDY2MjE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC02OCAgIChoZXgpCQlFTEVDVFJPTklDIElORFVTVFJJRVMgQVNTT0NJQVRJT04KKzAwNTA2OCAgICAgKGJhc2UgMTYpCQlFTEVDVFJPTklDIElORFVTVFJJRVMgQVNTT0NJQVRJT04KKwkJCQkyNTAwIFdJTFNPTiBCTFZELgorCQkJCUFSTElOR1RPTiBWQSAyMjIwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNjkgICAoaGV4KQkJUGl4U3RyZWFtIEluY29ycG9yYXRlZAorMDA1MDY5ICAgICAoYmFzZSAxNikJCVBpeFN0cmVhbSBJbmNvcnBvcmF0ZWQKKwkJCQkxODAgQ09MVU1CSUEgU1QuIFcuCisJCQkJV0FURVJMT08KKwkJCQlPbnRhcmlvIE4yTCAzTDMgIAorCQkJCUNBTkFEQQorCiswMC01MC02QSAgIChoZXgpCQlFREVWQSwgSU5DLgorMDA1MDZBICAgICAoYmFzZSAxNikJCUVERVZBLCBJTkMuCisJCQkJMjk4IFMuIFNVTk5ZVkFMRSBBVkUuIC0gIzIwOAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNkIgICAoaGV4KQkJU1BYLUFURUcKKzAwNTA2QiAgICAgKGJhc2UgMTYpCQlTUFgtQVRFRworCQkJCTgwMiBTLiBNQUlOIFNUUkVFVAorCQkJCVdBWUxBTkQgTUkgNDkzNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTZDICAgKGhleCkJCUJlaWplciBFbGVjdHJvbmljcyBQcm9kdWN0cyBBQgorMDA1MDZDICAgICAoYmFzZSAxNikJCUJlaWplciBFbGVjdHJvbmljcyBQcm9kdWN0cyBBQgorCQkJCUJveCA0MjYKKwkJCQlTRS0yMDEgMjQgTWFsbW9lIAorCQkJCVNXRURFTgorCiswMC01MC02RCAgIChoZXgpCQlWSURFT0pFVCBTWVNURU1TCiswMDUwNkQgICAgIChiYXNlIDE2KQkJVklERU9KRVQgU1lTVEVNUworCQkJCUlOVEVSTkFUSU9OQUwgSU5DLgorCQkJCTE1MDAgTUlUVEVMIEJMVkQuCisJCQkJV09PRERBTEUgSUwgNjAwOTEtMTA3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNkUgICAoaGV4KQkJQ09SREVSIEVOR0lORUVSSU5HIENPUlBPUkFUSU9OCiswMDUwNkUgICAgIChiYXNlIDE2KQkJQ09SREVSIEVOR0lORUVSSU5HIENPUlBPUkFUSU9OCisJCQkJMTUxIEtBTE1VUyBEUklWRSAtIFNURSAjQTEwMworCQkJCUNPU1RBIE1FU0EgQ0EgOTI2MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTZGICAgKGhleCkJCUctQ09OTkVDVAorMDA1MDZGICAgICAoYmFzZSAxNikJCUctQ09OTkVDVAorCQkJCVAuTy4gQk9YIDIyMDAKKwkJCQlIRVJaTElZQSA0NjEyMCAgCisJCQkJSVNSQUVMCisKKzAwLTUwLTcwICAgKGhleCkJCUNIQUlOVEVDSCBDT01QVVRFUiBDTy4sIExURC4KKzAwNTA3MCAgICAgKGJhc2UgMTYpCQlDSEFJTlRFQ0ggQ09NUFVURVIgQ08uLCBMVEQuCisJCQkJNVRIIEYsIEFMTEVZIDIsIExBTkUgMjIyCisJCQkJTElFTi1DSEVORyBSRC4sIENIVU5HLUhPIFRBSVBFSS1IU0lFTgorCQkJCVRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLTcxICAgKGhleCkJCUFJV0EgQ08uLCBMVEQuCiswMDUwNzEgICAgIChiYXNlIDE2KQkJQUlXQSBDTy4sIExURC4KKwkJCQkxLTExLCBLQU1JVE9NQVRTVVJJIDQtQ0hPTUUKKwkJCQlVVFNVTk9NSVlBLVNISSwgVE9DSElHSS1LRU4gMzIwLTg1ICAKKwkJCQlKQVBBTgorCiswMC01MC03MiAgIChoZXgpCQlDT1JWSVMgQ09SUE9SQVRJT04KKzAwNTA3MiAgICAgKGJhc2UgMTYpCQlDT1JWSVMgQ09SUE9SQVRJT04KKwkJCQk4MzIwIEdVSUxGT1JEIFJPQUQKKwkJCQlDT0xVTUJJQSBNRCAyMTA0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNzMgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MDczICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJTS9TIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNzQgICAoaGV4KQkJQURWQU5DRUQgSEktVEVDSCBDT1JQLgorMDA1MDc0ICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIEhJLVRFQ0ggQ09SUC4KKwkJCQkxOTkwIEVBU1QgR1JBTkQgQVZFLgorCQkJCUVMIFNFR1VORE8gQ0EgOTA1MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTc1ICAgKGhleCkJCUtFU1RSRUwgU09MVVRJT05TCiswMDUwNzUgICAgIChiYXNlIDE2KQkJS0VTVFJFTCBTT0xVVElPTlMKKwkJCQkyMzcwIENIQVJMRVNUT04gUk9BRAorCQkJCU1ULiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC03NiAgIChoZXgpCQlJQk0gQ29ycAorMDA1MDc2ICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMzAzOSBFIENvcm53YWxsaXMgUm9hZAorCQkJCVAgTyBCb3ggMTIxOTUKKwkJCQlSZWVhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNzcgICAoaGV4KQkJUFJPTElGSUMgVEVDSE5PTE9HWSwgSU5DLgorMDA1MDc3ICAgICAoYmFzZSAxNikJCVBST0xJRklDIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk2RiAxLCBMQU5FIDUxLCBTRUMgMQorCQkJCU5BTi1DSEFOIFJPQUQgVEFJUEVJCisJCQkJMTAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC03OCAgIChoZXgpCQlNRUdBVE9OIEhPVVNFLCBMVEQuCiswMDUwNzggICAgIChiYXNlIDE2KQkJTUVHQVRPTiBIT1VTRSwgTFRELgorCQkJCVpJUDogMjI0IE5PLjEtMy01IE5BS0FNQUNISUJBSQorCQkJCVRTVURVS0kgV0FSRAorCQkJCVlPS09IQU1BICAKKwkJCQlKQVBBTgorCiswMC01MC03OSAgIChoZXgpCQlQUklWQVRFCiswMDUwNzkgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTUwLTdBICAgKGhleCkJCVhQRUVELCBJTkMuCiswMDUwN0EgICAgIChiYXNlIDE2KQkJWFBFRUQsIElOQy4KKwkJCQk0Njk5IE9MRCBJUk9OU0lERVMgRFJJVkUKKwkJCQlTVUlURSAjMzAwCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTdCICAgKGhleCkJCU1FUkxPVCBDT01NVU5JQ0FUSU9OUworMDA1MDdCICAgICAoYmFzZSAxNikJCU1FUkxPVCBDT01NVU5JQ0FUSU9OUworCQkJCUJFUktTSElSRSBDT1JQT1JBVEUgUEFSSworCQkJCTQgQkVSS1NISVJFIEJMVkQuCisJCQkJQkVUSEVMIENUIDA2ODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC03QyAgIChoZXgpCQlWSURFT0NPTiBBRworMDA1MDdDICAgICAoYmFzZSAxNikJCVZJREVPQ09OIEFHCisJCQkJQUxCRVJULVNDSFdFSVRaRVItU1RSLiA2NAorCQkJCUQtODE3MzUgTVVOSUNICisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNTAtN0QgICAoaGV4KQkJSUZQCiswMDUwN0QgICAgIChiYXNlIDE2KQkJSUZQCisJCQkJTEVTU0lOR1NUUi4gNAorCQkJCUQtNzgzMTUgUkFET0xGWkVMTCAgCisJCQkJR0VSTUFOWQorCiswMC01MC03RSAgIChoZXgpCQlORVdFUiBURUNITk9MT0dZCiswMDUwN0UgICAgIChiYXNlIDE2KQkJTkVXRVIgVEVDSE5PTE9HWQorCQkJCTQ4NDggV0VTVCBJUlZJTkcgU1QuCisJCQkJV0lDSElUQSBLUyA2NzIwOS0yNjIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC03RiAgIChoZXgpCQlEcmF5VGVrIENvcnAuCiswMDUwN0YgICAgIChiYXNlIDE2KQkJRHJheVRlayBDb3JwLgorCQkJCTI2LCBGdXNoaW5nIFJkLgorCQkJCUhzaW5jaHUgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSBIdWtvdSAzMDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLTgwICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNTA4MCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJTS9TIFNKQS0yCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTgxICAgKGhleCkJCU1VUkFUQSBNQUNISU5FUlksIExURC4KKzAwNTA4MSAgICAgKGJhc2UgMTYpCQlNVVJBVEEgTUFDSElORVJZLCBMVEQuCisJCQkJMTM2LCBUQUtFREEtTVVLQUlTSElSTy1DSE8KKwkJCQlGVVNISU1JLUtVLCBLWU9UTyA2MTItODY4NiAgCisJCQkJSkFQQU4KKworMDAtNTAtODIgICAoaGV4KQkJRk9SRVNTT04gQ09SUE9SQVRJT04KKzAwNTA4MiAgICAgKGJhc2UgMTYpCQlGT1JFU1NPTiBDT1JQT1JBVElPTgorCQkJCTNGLCBOTy45IFNFQy4xCisJCQkJQ0hBTkcgQU4gRUFTVCBST0FECisJCQkJVEFJUEVJIDEwNDA0ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLTgzICAgKGhleCkJCUdJTEJBUkNPLCBJTkMuCiswMDUwODMgICAgIChiYXNlIDE2KQkJR0lMQkFSQ08sIElOQy4KKwkJCQlQT0IgMjIwODcKKwkJCQlHUkVFTlNCT1JPIE5DIDI3NDIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC04NCAgIChoZXgpCQlBVEwgUFJPRFVDVFMKKzAwNTA4NCAgICAgKGJhc2UgMTYpCQlBVEwgUFJPRFVDVFMKKwkJCQkyODAxIEtFTFZJTiBBVkVOVUUKKwkJCQlJUlZJTkUgQ0EgOTI2MTQtNTg3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtODYgICAoaGV4KQkJVEVMS09NIFNBLCBMVEQuCiswMDUwODYgICAgIChiYXNlIDE2KQkJVEVMS09NIFNBLCBMVEQuCisJCQkJVEVMS09NIExBQk9SQVRPUlkKKwkJCQlQLiBCQUcgWDc0CisJCQkJUFJFVE9SSUEgIAorCQkJCVNPVVRIIEFGUklDQQorCiswMC01MC04NyAgIChoZXgpCQlURVJBU0FLSSBFTEVDVFJJQyBDTy4sIExURC4KKzAwNTA4NyAgICAgKGJhc2UgMTYpCQlURVJBU0FLSSBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQk3LTItMTAgSEFOTkFOLUNITyBBQkVOTy1LVQorCQkJCU9TQUtBLCA1NDUtMDAyMSAgCisJCQkJSkFQQU4KKworMDAtNTAtODggICAoaGV4KQkJQU1BTk8gQ09SUE9SQVRJT04KKzAwNTA4OCAgICAgKGJhc2UgMTYpCQlBTUFOTyBDT1JQT1JBVElPTgorCQkJCTI3NSwgTUFNRURPLUNITworCQkJCUtPVUhPS1UtS1UsIFlPS09IQU1BCisJCQkJMjIyLTg1NTggIAorCQkJCUpBUEFOCisKKzAwLTUwLTg5ICAgKGhleCkJCVNBRkVUWSBNQU5BR0VNRU5UIFNZU1RFTVMKKzAwNTA4OSAgICAgKGJhc2UgMTYpCQlTQUZFVFkgTUFOQUdFTUVOVCBTWVNURU1TCisJCQkJQlJBTkRFUklKU1RSQUFUIDYKKwkJCQk1MjIzIEFTICdTLUhFUlRPR0VOQk9TQ0gnICBORVRIRVJMQU5EUworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTUwLThCICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDA1MDhCICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJTVMwNDA4MDEKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC04QyAgIChoZXgpCQlSU0kgU1lTVEVNUworMDA1MDhDICAgICAoYmFzZSAxNikJCVJTSSBTWVNURU1TCisJCQkJNTU1NSBXLiA3OFRIIFNUUkVFVCwgU3VpdGUgRgorCQkJCUVESU5BIE1OIDU1NDM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC04RCAgIChoZXgpCQlBQklUIENPTVBVVEVSIENPUlBPUkFUSU9OCiswMDUwOEQgICAgIChiYXNlIDE2KQkJQUJJVCBDT01QVVRFUiBDT1JQT1JBVElPTgorCQkJCTNGLTcsIE5PLiA3OSwgU0VDLjEKKwkJCQlIU0lOIFRBSSBXVSBST0FELCBIU0kgQ0hJCisJCQkJVEFJUEVJIEhTSUVOICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLThFICAgKGhleCkJCU9QVElNQVRJT04sIElOQy4KKzAwNTA4RSAgICAgKGJhc2UgMTYpCQlPUFRJTUFUSU9OLCBJTkMuCisJCQkJUC5PLiBCT1ggMTQzNTcKKwkJCQlIVU5UU1ZJTExFIEFMIDM1ODE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC04RiAgIChoZXgpCQlBU0lUQSBURUNITk9MT0dJRVMgSU5UJ0wgTFRELgorMDA1MDhGICAgICAoYmFzZSAxNikJCUFTSVRBIFRFQ0hOT0xPR0lFUyBJTlQnTCBMVEQuCisJCQkJVU5JVCAyIEJBTExZQlJJVCBCVVNJTkVTUyBQQVJLCisJCQkJR0FMV0FZCisJCQkJSVJFTEFORAorCiswMC01MC05MCAgIChoZXgpCQlEQ1RSSQorMDA1MDkwICAgICAoYmFzZSAxNikJCURDVFJJCisJCQkJTk8uNDAgWFVFIFlVQU4gUkQKKwkJCQlIQUlESUFOIERJU1RSSUNUIEJFSUpJTkcsIDEwMDA4MywgUC5SLgorCQkJCUNISU5BCisJCQkJQ0hJTkEKKworMDAtNTAtOTEgICAoaGV4KQkJTkVUQUNDRVNTLCBJTkMuCiswMDUwOTEgICAgIChiYXNlIDE2KQkJTkVUQUNDRVNTLCBJTkMuCisJCQkJMTggS0VFV0FZRElOIERSSVZFCisJCQkJU0FMRU0gTkggMDMwNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTkyICAgKGhleCkJCVJJR0FLVSBJTkRVU1RSSUFMIENPUlBPUkFUSU9OCiswMDUwOTIgICAgIChiYXNlIDE2KQkJUklHQUtVIElORFVTVFJJQUwgQ09SUE9SQVRJT04KKwkJCQkxNC04IEFLQU9KSS1DSE8KKwkJCQlUQUtBVFNVS0ktU0hJLCBPU0FLQSA1NjktMTE0NiAgCisJCQkJSkFQQU4KKworMDAtNTAtOTMgICAoaGV4KQkJQk9FSU5HCiswMDUwOTMgICAgIChiYXNlIDE2KQkJQk9FSU5HCisJCQkJMzM3MCBNaXJhbG9tYSBBdmVudWUKKwkJCQlBbmFoZWltIENBIDkyODAzLTMxMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTk0ICAgKGhleCkJCVBBQ0UgcGxjCiswMDUwOTQgICAgIChiYXNlIDE2KQkJUEFDRSBwbGMKKwkJCQlWSUNUT1JJQSBSRCwgU0FMVEFJUkUKKwkJCQlTSElQTEVZLCBXLiBZT1JLU0hJUkUgQlJBREZPUkQgIEJEMjggM0xGCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTUwLTk1ICAgKGhleCkJCVBFUkFDT00gTkVUV09SS1MKKzAwNTA5NSAgICAgKGJhc2UgMTYpCQlQRVJBQ09NIE5FVFdPUktTCisJCQkJMTMwMDAgV0VTVE9OIFBBUktXQVkKKwkJCQlTVUlURSAjMTA1CisJCQkJQ0FSWSBOQyAyNzUxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtOTYgICAoaGV4KQkJU0FMSVggVEVDSE5PTE9HSUVTLCBJTkMuCiswMDUwOTYgICAgIChiYXNlIDE2KQkJU0FMSVggVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJOTA0IFdJTkQgUklWRVIgTEFORS0gU1RFLiAjMTAxCisJCQkJR0FJVEhFUlNCVVJHIE1EIDIwODc4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC05NyAgIChoZXgpCQlNTUMtRU1CRURERUQgQ09NUFVURVJURUNITklLIEdtYkgKKzAwNTA5NyAgICAgKGJhc2UgMTYpCQlNTUMtRU1CRURERUQgQ09NUFVURVJURUNITklLIEdtYkgKKwkJCQlVTFJJQ0hTQkVSR0VSU1RSLiAxNworCQkJCUQtOTQ0NjkgREVHR0VORE9SRiAgCisJCQkJR0VSTUFOWQorCiswMC01MC05OCAgIChoZXgpCQlHTE9CQUxPT1AsIExURC4KKzAwNTA5OCAgICAgKGJhc2UgMTYpCQlHTE9CQUxPT1AsIExURC4KKwkJCQkxMiBIQVNIQVJPTiBST0FECisJCQkJS0ZBUiBTQUJBIDQ0MjY5ICAKKwkJCQlJU1JBRUwKKworMDAtNTAtOTkgICAoaGV4KQkJM0NPTSBFVVJPUEUsIExURC4KKzAwNTA5OSAgICAgKGJhc2UgMTYpCQkzQ09NIEVVUk9QRSwgTFRELgorCQkJCUJPVU5EQVJZIFdBWQorCQkJCUhFTUVMIEhFTVBTVEVBRAorCQkJCUhFUlRTLiBIUDIgN1lVICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC01MC05QSAgIChoZXgpCQlUQUcgRUxFQ1RST05JQyBTWVNURU1TCiswMDUwOUEgICAgIChiYXNlIDE2KQkJVEFHIEVMRUNUUk9OSUMgU1lTVEVNUworCQkJCUdFTkVTSVMgQlVTSU5FU1MgUEFSSworCQkJCUFsYmVydCBEcml2ZQorCQkJCVdPS0lORywgU1VSUkVZIEdVMjEgNVJXICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC01MC05QiAgIChoZXgpCQlTV0lUQ0hDT1JFIEFCCiswMDUwOUIgICAgIChiYXNlIDE2KQkJU1dJVENIQ09SRSBBQgorCQkJCVBPU0lUSU9ORU4gMTUzCisJCQkJMTE1IDc0IFNUT0NLSE9MTQorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC01MC05QyAgIChoZXgpCQlCRVRBIFJFU0VBUkNICiswMDUwOUMgICAgIChiYXNlIDE2KQkJQkVUQSBSRVNFQVJDSAorCQkJCUJFVEFTVFIuIDEKKwkJCQk4NTc3NCBVTlRFUkZPRUhSSU5HICAKKwkJCQlHRVJNQU5ZCisKKzAwLTUwLTlEICAgKGhleCkJCVRIRSBJTkRVU1RSRUUgQi5WLgorMDA1MDlEICAgICAoYmFzZSAxNikJCVRIRSBJTkRVU1RSRUUgQi5WLgorCQkJCVAuTy4gQk9YIDQ2MgorCQkJCTU2MDAgQUwgRUlOREhPVkVOCisJCQkJVEhFIE5FVEhFUkxBTkRTCisJCQkJTkVUSEVSTEFORFMKKworMDAtNTAtOUUgICAoaGV4KQkJTGVzIFRlY2hub2xvZ2llcyBTb2Z0QWNvdXN0aWsgSW5jLgorMDA1MDlFICAgICAoYmFzZSAxNikJCUxlcyBUZWNobm9sb2dpZXMgU29mdEFjb3VzdGlrIEluYy4KKwkJCQkKKwkJCQkzOTAsIFJVRSBTQUlOVC1WQUxMSUVSIEVTVCwgNHRoIGZsb29yCisJCQkJUXVlYmVjIEcxSyAgM1A2ICAKKwkJCQlDQU5BREEKKworMDAtNTAtOUYgICAoaGV4KQkJSE9SSVpPTiBDT01QVVRFUgorMDA1MDlGICAgICAoYmFzZSAxNikJCUhPUklaT04gQ09NUFVURVIKKwkJCQlUUklOSVRZIEJMREcuIDQtMjItNworCQkJCU5JU0hJLUFaQUJVLCBNSU5BVE8tS1UKKwkJCQkgVE9LWU8gMTA2ICAKKwkJCQlKQVBBTgorCiswMC01MC1BMCAgIChoZXgpCQlERUxUQSBDT01QVVRFUiBTWVNURU1TLCBJTkMuCiswMDUwQTAgICAgIChiYXNlIDE2KQkJREVMVEEgQ09NUFVURVIgU1lTVEVNUywgSU5DLgorCQkJCTExNzE5IE5FIDk1VEggU1RSRUVUIC0gU1RFLgorCQkJCVZBTkNPVVZFUiBXQSA5ODY4Mi0yNDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1BMSAgIChoZXgpCQlDQVJMTyBHQVZBWlpJLCBJTkMuCiswMDUwQTEgICAgIChiYXNlIDE2KQkJQ0FSTE8gR0FWQVpaSSwgSU5DLgorCQkJCTIyMiBQRU5OQlJJR0hUIERSLiAtIFNURS4jMjEwCisJCQkJSE9VU1RPTiBUWCA3NzA5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQTIgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MEEyICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1BMyAgIChoZXgpCQlUcmFuc01lZGlhIENvbW11bmljYXRpb25zLCBJbmMuCiswMDUwQTMgICAgIChiYXNlIDE2KQkJVHJhbnNNZWRpYSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTIwIEdSRUFUIE9BS1MgQkxWRC4sICMyMTAKKwkJCQlTQU4gSk9TRSBDQSA5NTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQTQgICAoaGV4KQkJSU8gVEVDSCwgSU5DLgorMDA1MEE0ICAgICAoYmFzZSAxNikJCUlPIFRFQ0gsIElOQy4KKwkJCQkyNTk3MSBDQU5OT04gUk9BRAorCQkJCUNMRVZFTEFORCBPSCA0NDE0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQTUgICAoaGV4KQkJQ0FQSVRPTCBCVVNJTkVTUyBTWVNURU1TLCBMVEQuCiswMDUwQTUgICAgIChiYXNlIDE2KQkJQ0FQSVRPTCBCVVNJTkVTUyBTWVNURU1TLCBMVEQuCisJCQkJNDMvNDQgUklWRVJTSURFCisJCQkJU0lSIFRIT01BUyBMT05HTEVZIFJPQUQKKwkJCQlST0NIRVNURVIsIEtFTlQgRW5nbGFuZCBNRTIgNERQIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTUwLUE2ICAgKGhleCkJCU9QVFJPTklDUworMDA1MEE2ICAgICAoYmFzZSAxNikJCU9QVFJPTklDUworCQkJCTE3NSBDUkVNT05BIERSSVZFCisJCQkJR09MRVRBIENBIDkzMTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1BNyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwQTcgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlNL1MgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1BOCAgIChoZXgpCQlPcGVuQ29uIFN5c3RlbXMsIEluYy4KKzAwNTBBOCAgICAgKGJhc2UgMTYpCQlPcGVuQ29uIFN5c3RlbXMsIEluYy4KKwkJCQkzNzcgSE9FUyBMQU5FCisJCQkJUElTQ0FUQVdBWSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQTkgICAoaGV4KQkJTU9MREFUIFdJUkVMRVNTIFRFQ0hOT0xHSUVTCiswMDUwQTkgICAgIChiYXNlIDE2KQkJTU9MREFUIFdJUkVMRVNTIFRFQ0hOT0xHSUVTCisJCQkJMyBTSElNT04gSVNSQUVMSSBTVFJFRVQKKwkJCQlSSVNIT04gTEUgWklPTiA3NTY1NAorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC01MC1BQSAgIChoZXgpCQlLT05JQ0EgTUlOT0xUQSBIT0xESU5HUywgSU5DLgorMDA1MEFBICAgICAoYmFzZSAxNikJCUtPTklDQSBNSU5PTFRBIEhPTERJTkdTLCBJTkMuCisJCQkJMS02LTEsIE1hcnVub3VjaGksCisJCQkJQ2hpeW9kYS1rdQorCQkJCVRva3lvICAxMDAtMDAwNQorCQkJCUpBUEFOCisKKzAwLTUwLUFCICAgKGhleCkJCU5BTFRFQywgSW5jLgorMDA1MEFCICAgICAoYmFzZSAxNikJCU5BTFRFQywgSW5jLgorCQkJCTEtMS0xNSwgTmFrYW5vZ28sIFNoaW1penUta3UKKwkJCQlTaGl6dW9rYS1zaGkgU2hpenVva2EgNDI0LTA4ODgKKwkJCQlKQVBBTgorCiswMC01MC1BQyAgIChoZXgpCQlNQVBMRSBDT01QVVRFUiBDT1JQT1JBVElPTgorMDA1MEFDICAgICAoYmFzZSAxNikJCU1BUExFIENPTVBVVEVSIENPUlBPUkFUSU9OCisJCQkJMkYsIE5PLiAxODQsIFNFQy4gMgorCQkJCUNIQU5HLUFOIEUuIFJELgorCQkJCVRhaXBlaSAgCisJCQkJVEFKSUtJU1RBTgorCiswMC01MC1BRCAgIChoZXgpCQlDb21tVW5pcXVlIFdpcmVsZXNzIENvcnAuCiswMDUwQUQgICAgIChiYXNlIDE2KQkJQ29tbVVuaXF1ZSBXaXJlbGVzcyBDb3JwLgorCQkJCTEwNzAgTUFSSU5BIFZJTExBR0UgUEFSS1dBWQorCQkJCVNVSVRFICMyMDYKKwkJCQlBTEFNRURBIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1BRSAgIChoZXgpCQlJV0FLSSBFTEVDVFJPTklDUyBDTy4sIExURC4KKzAwNTBBRSAgICAgKGJhc2UgMTYpCQlJV0FLSSBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQkxLCBLQU1BTk9NQUUKKwkJCQlKT0JBTi1LQU1JWVVOQUdBWUEtTUFDSEkKKwkJCQlJV0FLSS1DSVRZLCBGVUtVU0hJTUEgOTcyLTgzMjIgOTcyLTgzMjIgCisJCQkJSkFQQU4KKworMDAtNTAtQUYgICAoaGV4KQkJSU5URVJHT04sIElOQy4KKzAwNTBBRiAgICAgKGJhc2UgMTYpCQlJTlRFUkdPTiwgSU5DLgorCQkJCTU4MDAgUkFOQ0hFU1RFUiBEUklWRQorCQkJCUhPVVNUT04gVFggNzcwMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUIwICAgKGhleCkJCVRFQ0hOT0xPR1kgQVRMQU5UQSBDT1JQT1JBVElPTgorMDA1MEIwICAgICAoYmFzZSAxNikJCVRFQ0hOT0xPR1kgQVRMQU5UQSBDT1JQT1JBVElPTgorCQkJCTUwMCBTdWdhciBNaWxsIFJvYWQKKwkJCQlTdWl0ZSAyMDJBCisJCQkJQXRsYW50YSBHQSAzMDM1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQjEgICAoaGV4KQkJR0lERElOR1MgJiBMRVdJUworMDA1MEIxICAgICAoYmFzZSAxNikJCUdJRERJTkdTICYgTEVXSVMKKwkJCQk2NjAgUy4gTUlMSVRBUlkgUkQuCisJCQkJRk9ORCBEVSBMQUMgV0kgNTQ5MzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUIyICAgKGhleCkJCUJST0RFTCBBVVRPTUFUSU9OCiswMDUwQjIgICAgIChiYXNlIDE2KQkJQlJPREVMIEFVVE9NQVRJT04KKwkJCQlEaXN0ZWxidXNjaCAyNAorCQkJCTQyNTQ5IFZlbGJlcnQgCisJCQkJR0VSTUFOWQorCiswMC01MC1CMyAgIChoZXgpCQlWT0lDRUJPQVJEIENPUlBPUkFUSU9OCiswMDUwQjMgICAgIChiYXNlIDE2KQkJVk9JQ0VCT0FSRCBDT1JQT1JBVElPTgorCQkJCTMxNTEgV0VTVCBGSUZUSCBTVFJFRVQKKwkJCQlPWE5BUkQgQ0EgOTMwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUI0ICAgKGhleCkJCVNBVENIV0VMTCBDT05UUk9MIFNZU1RFTVMsIExURAorMDA1MEI0ICAgICAoYmFzZSAxNikJCVNBVENIV0VMTCBDT05UUk9MIFNZU1RFTVMsIExURAorCQkJCVAuTy4gQk9YIDU3LCAgOTQgRkFSTkhBTSBST0FECisJCQkJU0xPVUdILAorCQkJCUJFUktTSElSRSBTTDEgNFVIICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC01MC1CNSAgIChoZXgpCQlGSUNIRVQtQkFVQ0hFCiswMDUwQjUgICAgIChiYXNlIDE2KQkJRklDSEVULUJBVUNIRQorCQkJCTE1LTE3IEFWRS4gTU9SQU5FLVNBVUxOSUVSCisJCQkJNzgxNDAgVkVMSVpZCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTUwLUI2ICAgKGhleCkJCUdPT0QgV0FZIElORC4gQ08uLCBMVEQuCiswMDUwQjYgICAgIChiYXNlIDE2KQkJR09PRCBXQVkgSU5ELiBDTy4sIExURC4KKwkJCQk1RiwgTk8uOCwgQUxMRVkgNiwKKwkJCQlMQU5FIDQ1IFBBTy1IU0lOIFJELi1IU0lOIFRJRU4gVEFJUEVJIEhTCisJCQkJVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtQjcgICAoaGV4KQkJQk9TRVIgVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwNTBCNyAgICAgKGJhc2UgMTYpCQlCT1NFUiBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCTE1Ri02LCA3NyBIU0lOIFRBSSBXVSBST0FECisJCQkJU0VDLiAxLCBIU0ktQ0hJCisJCQkJVEFJUEVJIEhTSUVOICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLUI4ICAgKGhleCkJCUlOT1ZBIENPTVBVVEVSUyBHTUJIICYgQ08uIEtHCiswMDUwQjggICAgIChiYXNlIDE2KQkJSU5PVkEgQ09NUFVURVJTIEdNQkggJiBDTy4gS0cKKwkJCQlTVURFVEVOU1RSQVNTRSA1CisJCQkJODc2MDAgS0FVRkJFVVJFTiAgCisJCQkJR0VSTUFOWQorCiswMC01MC1COSAgIChoZXgpCQlYSVRST04gVEVDSE5PTE9HSUVTLCBJTkMuCiswMDUwQjkgICAgIChiYXNlIDE2KQkJWElUUk9OIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTYyOTUtRCBGRVJSSVMgU1FVQVJFCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1CQSAgIChoZXgpCQlELUxJTksKKzAwNTBCQSAgICAgKGJhc2UgMTYpCQlELUxJTksKKwkJCQkyRiwgTk8uIDIzM0wtMiwgUEFPLUNISUFPIFJELgorCQkJCUhzaW4tVGllbiAyMzEKKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtQkIgICAoaGV4KQkJQ01TIFRFQ0hOT0xPR0lFUworMDA1MEJCICAgICAoYmFzZSAxNikJCUNNUyBURUNITk9MT0dJRVMKKwkJCQkxMzk1NSBGQVJNSU5HVE9OIFJBT0QKKwkJCQlMSVZPTklBIE1JIDQ4MTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1CQyAgIChoZXgpCQlIQU1NRVIgU1RPUkFHRSBTT0xVVElPTlMKKzAwNTBCQyAgICAgKGJhc2UgMTYpCQlIQU1NRVIgU1RPUkFHRSBTT0xVVElPTlMKKwkJCQk4NDUwIENFTlRSQUwgQVZFTlVFCisJCQkJTkVXQVJLIENBIDk0NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1CRCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwQkQgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUgLSBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUJFICAgKGhleCkJCUZBU1QgTVVMVElNRURJQSBBRworMDA1MEJFICAgICAoYmFzZSAxNikJCUZBU1QgTVVMVElNRURJQSBBRworCQkJCVJVRURFU0hFSU1FUlNUUi4gMTEtMTMKKwkJCQk4MDY4NiBNVU5JQ0ggIAorCQkJCUdFUk1BTlkKKworMDAtNTAtQkYgICAoaGV4KQkJTWV0YWxsaWdlbmNlIFRlY2hub2xvZ3kgQ29ycC4KKzAwNTBCRiAgICAgKGJhc2UgMTYpCQlNZXRhbGxpZ2VuY2UgVGVjaG5vbG9neSBDb3JwLgorCQkJCU5PLjksIFBBUksgQVZFTlVFIElJCisJCQkJU0NJRU5DRS1CQVNFIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU4tQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLUMwICAgKGhleCkJCUdBVEFOLCBJTkMuCiswMDUwQzAgICAgIChiYXNlIDE2KQkJR0FUQU4sIElOQy4KKwkJCQk1OTMzIENPUk9OQURPIExBTkUKKwkJCQlQTEVBU0FOVE9OIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1DMSAgIChoZXgpCQlHRU1GTEVYIE5FVFdPUktTLCBMVEQuCiswMDUwQzEgICAgIChiYXNlIDE2KQkJR0VNRkxFWCBORVRXT1JLUywgTFRELgorCQkJCTIzMC02NjUxIEZSQVNFUldPT0QgUEwuCisJCQkJUklDSE1PTkQsIEIuQy4KKwkJCQlDQU5BREEgVjZXIDFKMworCQkJCUNBTkFEQQorCiswMC01MC1DMiAgIChoZXgpCQlJRUVFIFJFR0lTVFJBVElPTiBBVVRIT1JJVFkKKzAwNTBDMiAgICAgKGJhc2UgMTYpCQlJRUVFIFJFR0lTVFJBVElPTiBBVVRIT1JJVFkKKwkJCQk0NDUgSE9FUyBMQU5FCisJCQkJUElTQ0FUQVdBWSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQzQgICAoaGV4KQkJSU1ECiswMDUwQzQgICAgIChiYXNlIDE2KQkJSU1ECisJCQkJSEVSQlNUUkFTU0UgOAorCQkJCUQtODIxNzggUFVDSEhFSU0gIAorCQkJCUdFUk1BTlkKKworMDAtNTAtQzUgICAoaGV4KQkJQURTIFRlY2hub2xvZ2llcywgSW5jCiswMDUwQzUgICAgIChiYXNlIDE2KQkJQURTIFRlY2hub2xvZ2llcywgSW5jCisJCQkJMTI2MjcgSGlkZGVuY3JlZWsgV2F5CisJCQkJQ2Vycml0b3MgQ0EgOTA3MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUM2ICAgKGhleCkJCUxPT1AgVEVMRUNPTU1VTklDQVRJT04gSU5URVJOQVRJT05BTCwgSU5DLgorMDA1MEM2ICAgICAoYmFzZSAxNikJCUxPT1AgVEVMRUNPTU1VTklDQVRJT04gSU5URVJOQVRJT05BTCwgSU5DLgorCQkJCTJGLCBOTy4gMjIsIFBST1NQRVJJVFkgUkQuIDIKKwkJCQlTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhTSU5DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtQzggICAoaGV4KQkJIEFkZG9uaWNzIFRlY2hub2xvZ2llcywgSW5jLgorMDA1MEM4ICAgICAoYmFzZSAxNikJCSBBZGRvbmljcyBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxOTE4IEp1bmN0aW9uIEF2ZS4sCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUM5ICAgKGhleCkJCU1BU1BSTyBERU5LT0ggQ09SUC4KKzAwNTBDOSAgICAgKGJhc2UgMTYpCQlNQVNQUk8gREVOS09IIENPUlAuCisJCQkJQVNBREEgTklTU0hJTiBBSUNISQorCQkJCTQ3MC0wMTk0CisJCQkJSkFQQU4KKworMDAtNTAtQ0EgICAoaGV4KQkJTkVUIFRPIE5FVCBURUNITk9MT0dJRVMKKzAwNTBDQSAgICAgKGJhc2UgMTYpCQlORVQgVE8gTkVUIFRFQ0hOT0xPR0lFUworCQkJCTY4MCBDRU5UUkFMIEFWRU5VRSAtIFNURS4gIzMwMQorCQkJCURPVkVSIE5IIDAzODIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1DQiAgIChoZXgpCQlKRVRURVIKKzAwNTBDQiAgICAgKGJhc2UgMTYpCQlKRVRURVIKKwkJCQlHUkFFVEVSU1RSQVNTRSAyCisJCQkJRDcxNjQyICBMVURXSUdTQlVSRworCQkJCUdFUk1BTlkKKworMDAtNTAtQ0MgICAoaGV4KQkJWFlSQVRFWAorMDA1MENDICAgICAoYmFzZSAxNikJCVhZUkFURVgKKwkJCQlNQUlMIFBPSU5UOiAyNi8xMzsgREVQVDogIFNUT1JBR0UgU1lTVEVNCisJCQkJTGFuZ3N0b25lIFJvYWQKKwkJCQlIYXZhbnQgUE85IDFTQSAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNTAtQ0QgICAoaGV4KQkJRElHSUFOU1dFUiBBL1MKKzAwNTBDRCAgICAgKGJhc2UgMTYpCQlESUdJQU5TV0VSIEEvUworCQkJCVNLQUxIVVNFIDUKKwkJCQk5MjQwIE5JQkUKKwkJCQlERU5NQVJLCisKKzAwLTUwLUNFICAgKGhleCkJCUxHIElOVEVSTkFUSU9OQUwgQ09SUC4KKzAwNTBDRSAgICAgKGJhc2UgMTYpCQlMRyBJTlRFUk5BVElPTkFMIENPUlAuCisJCQkJTEcgVFdJTiBUT1dFUlMKKwkJCQkyMCBZT0lETy1ET05HLCBZT1VOR0RVTkdQTy1HVQorCQkJCVNFT1VMLCAgMTUwLTYwNiAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTUwLUNGICAgKGhleCkJCVZBTkxJTksgQ09NTVVOSUNBVElPTiBURUNITk9MT0dZIFJFU0VBUkNIIElOU1RJVFVURQorMDA1MENGICAgICAoYmFzZSAxNikJCVZBTkxJTksgQ09NTVVOSUNBVElPTiBURUNITk9MT0dZIFJFU0VBUkNIIElOU1RJVFVURQorCQkJCTIxMCBZQURJIE9GRklDRSBCVUlMRElORworCQkJCSBOTy4gNDggQkVJIFNBTiBIdWFuIFpob25nIEx1CisJCQkJQkVJSklORyAxMDAwODggIAorCQkJCUNISU5BCisKKzAwLTUwLUQwICAgKGhleCkJCU1JTkVSVkEgU1lTVEVNUworMDA1MEQwICAgICAoYmFzZSAxNikJCU1JTkVSVkEgU1lTVEVNUworCQkJCTE1ODUgQ0hBUkxFU1RPTiBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA4NDk0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRDEgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MEQxICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJTS9TIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRDIgICAoaGV4KQkJQ01DIEVsZWN0cm9uaWNzIEluYworMDA1MEQyICAgICAoYmFzZSAxNikJCUNNQyBFbGVjdHJvbmljcyBJbmMKKwkJCQk2MDAgRHIuRnJlZGVyaWstUGhpbGlwcyBCbHZkCisJCQkJTW9udHJlYWwgIFFDIEg0TSAyUzkKKwkJCQlDQU5BREEKKworMDAtNTAtRDMgICAoaGV4KQkJRElHSVRBTCBBVURJTyBQUk9DRVNTSU5HIFBUWS4gTFRELgorMDA1MEQzICAgICAoYmFzZSAxNikJCURJR0lUQUwgQVVESU8gUFJPQ0VTU0lORyBQVFkuIExURC4KKwkJCQlQTyBCT1ggNDAKKwkJCQlDT05DT1JEIFdFU1QKKwkJCQlOU1cgMjEzOCAgCisJCQkJQVVTVFJBTElBCisKKzAwLTUwLUQ0ICAgKGhleCkJCUpPT0hPTkcgSU5GT1JNQVRJT04gJgorMDA1MEQ0ICAgICAoYmFzZSAxNikJCUpPT0hPTkcgSU5GT1JNQVRJT04gJgorCQkJCUNPTU1VTklDQVRJT05TLCBMVEQuCisJCQkJSlVOR05BTSBCL0QsIDcyMS0zOSBZRU9LU0FNLURPTkcsIEtBTkdOQQorCQkJCVNFT1VMIFNFT1VMIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTUwLUQ1ICAgKGhleCkJCUFEIFNZU1RFTVMgQ09SUC4KKzAwNTBENSAgICAgKGJhc2UgMTYpCQlBRCBTWVNURU1TIENPUlAuCisJCQkJMS00LTEsIE5BS0FDSE8sIE1VU0FTSElOTyBDSVRZCisJCQkJVE9LWU8gMTgwLTAwMDYgIAorCQkJCUpBUEFOCisKKzAwLTUwLUQ2ICAgKGhleCkJCUFUTEFTIENPUENPIFRPT0xTIEFCCiswMDUwRDYgICAgIChiYXNlIDE2KQkJQVRMQVMgQ09QQ08gVE9PTFMgQUIKKwkJCQkKKwkJCQlTLTEwNSAyMyBTVE9DS0hPTE0gIAorCQkJCVNXRURFTgorCiswMC01MC1ENyAgIChoZXgpCQlURUxTVFJBVAorMDA1MEQ3ICAgICAoYmFzZSAxNikJCVRFTFNUUkFUCisJCQkJMzYwMCBBVkVOVUUKKwkJCQlQTEFOTyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRDggICAoaGV4KQkJVU5JQ09STiBDT01QVVRFUiBDT1JQLgorMDA1MEQ4ICAgICAoYmFzZSAxNikJCVVOSUNPUk4gQ09NUFVURVIgQ09SUC4KKwkJCQk3IEZMLiwgIE5PLiA5NiBLV0FORyBGVSBOT1JUSCBST0FECisJCQkJVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLUQ5ICAgKGhleCkJCUVOR0VUUk9OLUVOR0VOSEFSSUEgRUxFVFJPTklDQSBJTkQuIGUgQ09NLiBMVERBCiswMDUwRDkgICAgIChiYXNlIDE2KQkJRU5HRVRST04tRU5HRU5IQVJJQSBFTEVUUk9OSUNBIElORC4gZSBDT00uIExUREEKKwkJCQlWSUEgU09DUkFURVMgTS4gQklUVEVOQ09VUlQsIDEwOTkKKwkJCQkzMjAxMC0wMTAgQ29udGFnZW0gTUcgIAorCQkJCUJSQVpJTAorCiswMC01MC1EQSAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMDUwREEgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQkFZRlJPTlQgUExBWkEKKwkJCQlNUzogNDIyMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1EQiAgIChoZXgpCQlDT05URU1QT1JBUlkgQ09OVFJPTAorMDA1MERCICAgICAoYmFzZSAxNikJCUNPTlRFTVBPUkFSWSBDT05UUk9MCisJCQkJU1lTVEVNUywgSU5DLgorCQkJCTI0MzEgQ1VSVElTUyBTVFJFRVQKKwkJCQlET1dORVJTIEdST1ZFIElMIDYwNTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1EQyAgIChoZXgpCQlUQVMgVEVMRUZPTkJBVSBBLiBTQ0hXQUJFIEdNQkggJiBDTy4gS0cKKzAwNTBEQyAgICAgKGJhc2UgMTYpCQlUQVMgVEVMRUZPTkJBVSBBLiBTQ0hXQUJFIEdNQkggJiBDTy4gS0cKKwkJCQkKKwkJCQlMQU5HTUFBUiAyNQorCQkJCUQtNDEyMzggTU9OQ0hFTkdMQURCQUNIICAKKwkJCQlHRVJNQU5ZCisKKzAwLTUwLUREICAgKGhleCkJCVNFUlJBIFNPTERBRFVSQSwgUy5BLgorMDA1MEREICAgICAoYmFzZSAxNikJCVNFUlJBIFNPTERBRFVSQSwgUy5BLgorCQkJCVBPTC4gSU5ELiBaT05BIEZSQU5DQSwKKwkJCQlTRUNUT1IgQywgQ0FMTEUgRCwgTi4gMjkgMDgwNDAgQkFSQ0VMT05BCisJCQkJU1BBSU4KKwkJCQlTUEFJTgorCiswMC01MC1ERSAgIChoZXgpCQlTSUdOVU0gU1lTVEVNUyBDT1JQLgorMDA1MERFICAgICAoYmFzZSAxNikJCVNJR05VTSBTWVNURU1TIENPUlAuCisJCQkJMTIxMSBGbHlubiBSZCwKKwkJCQkjMTA0CisJCQkJQ2FtYXJpbGxvIENBIDkzMDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1ERiAgIChoZXgpCQlBaXJGaWJlciwgSW5jLgorMDA1MERGICAgICAoYmFzZSAxNikJCUFpckZpYmVyLCBJbmMuCisJCQkJUC5PLiBCT1ggNTAyMTQ4CisJCQkJU0FOIERJRUdPIENBIDkyMTUwLTIxNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUUxICAgKGhleCkJCU5TIFRFQ0ggRUxFQ1RST05JQ1MgU0ROIEJIRAorMDA1MEUxICAgICAoYmFzZSAxNikJCU5TIFRFQ0ggRUxFQ1RST05JQ1MgU0ROIEJIRAorCQkJCU5PLiAyMSAmIDIzIEpBTEFOIENBTkdHSUggMTAKKwkJCQlUQU1BTiBQRVJJTkRVU1RSSUFOIENFTUVSTEFORworCQkJCTgxODAwIFVsdSBUaXJhbS1Kb2hvciBCYWhydSAgCisJCQkJTUFMQVlTSUEKKworMDAtNTAtRTIgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MEUyICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1FMyAgIChoZXgpCQlNb3Rvcm9sYSwgSW5jLgorMDA1MEUzICAgICAoYmFzZSAxNikJCU1vdG9yb2xhLCBJbmMuCisJCQkJMjQ1MCBXYWxzaCBBdmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRTQgICAoaGV4KQkJQVBQTEUgQ09NUFVURVIsIElOQy4KKzAwNTBFNCAgICAgKGJhc2UgMTYpCQlBUFBMRSBDT01QVVRFUiwgSU5DLgorCQkJCTIwNjUwIFZBTExFWSBHUkVFTiBEUi4KKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUU2ICAgKGhleCkJCUhBS1VTQU4gQ09SUE9SQVRJT04KKzAwNTBFNiAgICAgKGJhc2UgMTYpCQlIQUtVU0FOIENPUlBPUkFUSU9OCisJCQkJSiBUT1dFUiwgMS0xLCBOSUtLT1UtQ0hPCisJCQkJRlVDSFUtU0hJIFRPS1lPIDE4My0wMDQ0CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC01MC1FNyAgIChoZXgpCQlQQVJBRElTRSBJTk5PVkFUSU9OUyAoQVNJQSkKKzAwNTBFNyAgICAgKGJhc2UgMTYpCQlQQVJBRElTRSBJTk5PVkFUSU9OUyAoQVNJQSkKKwkJCQlQVEUuIExURC4KKwkJCQkyNSBTRVJBTkdPT04gTk9SVEggQVZFLiA1IDZUSCBGTE9PUiBVUkFDCisJCQkJU0lOR0FQT1JFIDU1NDkxNAorCQkJCVNJTkdBUE9SRQorCiswMC01MC1FOCAgIChoZXgpCQlOT01BRElYIElOQy4KKzAwNTBFOCAgICAgKGJhc2UgMTYpCQlOT01BRElYIElOQy4KKwkJCQkyNzAxIE9DRUFOIFBBUksgQkxWRC4tU1RFLiMyMzEKKwkJCQlTQU5UQSBNT05JQ0EgQ0EgOTA0MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUVBICAgKGhleCkJCVhFTCBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDA1MEVBICAgICAoYmFzZSAxNikJCVhFTCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTE3MTAxIEUuIE9ISU8gRFJJVkUKKwkJCQlBVVJPUkEgQ08gODAwMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUVCICAgKGhleCkJCUFMUEhBLVRPUCBDT1JQT1JBVElPTgorMDA1MEVCICAgICAoYmFzZSAxNikJCUFMUEhBLVRPUCBDT1JQT1JBVElPTgorCQkJCTE5Ri4sIE5PLiAyLCBMQU5FIDE1MAorCQkJCVNFQy4gNSwgSFNJTi1ZSSBST0FECisJCQkJVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLUVDICAgKGhleCkJCU9MSUNPTSBBL1MKKzAwNTBFQyAgICAgKGJhc2UgMTYpCQlPTElDT00gQS9TCisJCQkJTllCUk9WRUogMTE0CisJCQkJREstMjgwMCBMWU5HQlkKKwkJCQlERU5NQVJLCisKKzAwLTUwLUVEICAgKGhleCkJCUFOREEgTkVUV09SS1MKKzAwNTBFRCAgICAgKGJhc2UgMTYpCQlBTkRBIE5FVFdPUktTCisJCQkJMjkyMSBDT1BQRVIgUk9BRAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1FRSAgIChoZXgpCQlURUsgRElHSVRFTCBDT1JQT1JBVElPTgorMDA1MEVFICAgICAoYmFzZSAxNikJCVRFSyBESUdJVEVMIENPUlBPUkFUSU9OCisJCQkJMjAwMTAgQ0VOVFVSWSBCTFZELiAjMzAwCisJCQkJR0VSTUFOVE9XTiBNRCAyMDg3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRUYgICAoaGV4KQkJU1BFIFN5c3RlbWhhdXMgR21iSAorMDA1MEVGICAgICAoYmFzZSAxNikJCVNQRSBTeXN0ZW1oYXVzIEdtYkgKKwkJCQlXQUxEU1RSQVNTRSA3CisJCQkJNjMxNTAgSEVVU0VOU1RBTU0gIAorCQkJCUdFUk1BTlkKKworMDAtNTAtRjAgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MEYwICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJTS9TIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRjEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzAwNTBGMSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCTk0IEVtLUhhbW9zaGF2b3QgV2F5LgorCQkJCVBhcmsgQXpvcmltLFAuTy4gQm94IDEwMDk3CisJCQkJUGV0YWNoLVRpa3ZhICAKKwkJCQlJU1JBRUwKKworMDAtNTAtRjIgICAoaGV4KQkJTUlDUk9TT0ZUIENPUlAuCiswMDUwRjIgICAgIChiYXNlIDE2KQkJTUlDUk9TT0ZUIENPUlAuCisJCQkJT05FIE1JQ1JPU09GVCBXQVkKKwkJCQlSRURNT05EIFdBIDk4MDUyLTYzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUYzICAgKGhleCkJCUdMT0JBTCBORVQgSU5GT1JNQVRJT04gQ08uLCBMdGQuCiswMDUwRjMgICAgIChiYXNlIDE2KQkJR0xPQkFMIE5FVCBJTkZPUk1BVElPTiBDTy4sIEx0ZC4KKwkJCQlOT1JUSCBUT1dFUi0gUk0gMTMwNQorCQkJCVdPUkxEIFRSQURFIENFTlRSRSBDT01QTEVYIE5PLjM3MS0zNzUsIEgKKwkJCQlHVUFORyBaSE9VIDUxMDA5NSAgCisJCQkJQ0hJTkEKKworMDAtNTAtRjQgICAoaGV4KQkJU0lHTUFURUsgR01CSCAmIENPLiBLRworMDA1MEY0ICAgICAoYmFzZSAxNikJCVNJR01BVEVLIEdNQkggJiBDTy4gS0cKKwkJCQlBLTUxMTIgTEFNUFJFQ0hUU0hBVVNFTiwKKwkJCQlCVVJNT09TRVIgU1RSQVNTRSAxMAorCQkJCUFVU1RSSUEKKwkJCQlBVVNUUklBCisKKzAwLTUwLUY2ICAgKGhleCkJCVBBTi1JTlRFUk5BVElPTkFMIElORFVTVFJJQUwgQ09SUC4KKzAwNTBGNiAgICAgKGJhc2UgMTYpCQlQQU4tSU5URVJOQVRJT05BTCBJTkRVU1RSSUFMIENPUlAuCisJCQkJR0YsIE5PLiAxNzYsIENIQU5HIENIVU4gUkQuCisJCQkJVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLUY3ICAgKGhleCkJCVZFTlRVUkUgTUFOVUZBQ1RVUklORyAoU0lOR0FQT1JFKSBMVEQuCiswMDUwRjcgICAgIChiYXNlIDE2KQkJVkVOVFVSRSBNQU5VRkFDVFVSSU5HIChTSU5HQVBPUkUpIExURC4KKwkJCQkKKwkJCQk1MDA2IEFORyBNTyBLSU8gQVZFTlVFCisJCQkJIzA1LTAxIFRlY2hwbGFjZSBJSSAgNTY5ODczCisJCQkJU0lOR0FQT1JFCisKKzAwLTUwLUY4ICAgKGhleCkJCUVOVFJFR0EgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDUwRjggICAgIChiYXNlIDE2KQkJRU5UUkVHQSBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkyNTY5MSBBVExBTlRJQyBPQ0VBTiBEUklWRQorCQkJCVNVSVRFICMxOAorCQkJCUxBS0UgRk9SRVNUIENBIDkyNjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1GOSAgIChoZXgpCQlTRU5TT1JNQVRJQyBBQ0QKKzAwNTBGOSAgICAgKGJhc2UgMTYpCQlTRU5TT1JNQVRJQyBBQ0QKKwkJCQk3MCBXRVNUVklFVyBTVFJFRVQKKwkJCQlMRVhJTkdUT04gTUEgMDIxNzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUZBICAgKGhleCkJCU9YVEVMLCBMVEQuCiswMDUwRkEgICAgIChiYXNlIDE2KQkJT1hURUwsIExURC4KKwkJCQlUSEUgTUFSS0VUIFBMQUNFCisJCQkJRElEQ09UCisJCQkJMFgxMSA3TEUgRW5nbGFuZCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNTAtRkIgICAoaGV4KQkJVlNLIEVMRUNUUk9OSUNTCiswMDUwRkIgICAgIChiYXNlIDE2KQkJVlNLIEVMRUNUUk9OSUNTCisJCQkJVkVORVRJRUxBQU4gMzkKKwkJCQk4NTMwIEhBUkVMQkVLRQorCQkJCUJFTEdJVU0KKwkJCQlCRUxHSVVNCisKKzAwLTUwLUZDICAgKGhleCkJCUVESU1BWCBURUNITk9MT0dZIENPLiwgTFRELgorMDA1MEZDICAgICAoYmFzZSAxNikJCUVESU1BWCBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCTMgV1UtQ0hVTiAzcmQgUk9BRAorCQkJCVd1LUt1IEluZHVzdHJpYWwgUGFyaworCQkJCVRBSVBFSSBIc2llbiAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC1GRCAgIChoZXgpCQlWSVNJT05DT01NIENPLiwgTFRELgorMDA1MEZEICAgICAoYmFzZSAxNikJCVZJU0lPTkNPTU0gQ08uLCBMVEQuCisJCQkJNCwgNUYsIERBRVdPTiBCL0QKKwkJCQkxOTgtOCwgU0VPQklOR0dPLURPTkcKKwkJCQlZT05HU0FOLUdVLCBTRU9VTCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTUwLUZFICAgKGhleCkJCVBDVFZuZXQgQVNBCiswMDUwRkUgICAgIChiYXNlIDE2KQkJUENUVm5ldCBBU0EKKwkJCQlTVFJBTkRWRUlMRU4gNTAKKwkJCQlOLTEzMjQgTFlTQUtFUiAgCisJCQkJTk9SV0FZCisKKzAwLTUwLUZGICAgKGhleCkJCUhBS0tPIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDA1MEZGICAgICAoYmFzZSAxNikJCUhBS0tPIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCTIzOCwgS0FNSUtBU0hJV0FOTy1NQUNISQorCQkJCU1BVFRPLVNISSwgSVNISUtBV0EgOTI0LTAwMzUgIAorCQkJCUpBUEFOCisKKzAwLTUyLTE4ICAgKGhleCkJCVd1eGkgS2Vib2RhIEVsZWN0cm9uIENvLkx0ZAorMDA1MjE4ICAgICAoYmFzZSAxNikJCVd1eGkgS2Vib2RhIEVsZWN0cm9uIENvLkx0ZAorCQkJCU5vLjE1NSBDaHVuaHVpIFJvYWQsIFhpc2hhbiBEaXN0cmljdCwgCisJCQkJV3V4aSBKaWFuZ3N1IDIxNDEwMQorCQkJCUNISU5BCisKKzAwLTU0LUFGICAgKGhleCkJCUNvbnRpbmVudGFsIEF1dG9tb3RpdmUgU3lzdGVtcyBJbmMuCiswMDU0QUYgICAgIChiYXNlIDE2KQkJQ29udGluZW50YWwgQXV0b21vdGl2ZSBTeXN0ZW1zIEluYy4KKwkJCQkyMTQ0MCBXLiBMYWtlIENvb2sgUmQuCisJCQkJRGVlciBQYXJrIElMIDYwMDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0wMCAgIChoZXgpCQlYWUNPTSBJTkMuCiswMDYwMDAgICAgIChiYXNlIDE2KQkJWFlDT00gSU5DLgorCQkJCTc1MCBOLiBNQVBMRQorCQkJCVNBTElORSBNSSA0ODE3NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMDEgICAoaGV4KQkJSW5ub1N5cywgSW5jLgorMDA2MDAxICAgICAoYmFzZSAxNikJCUlubm9TeXMsIEluYy4KKwkJCQkzMDk1IFJJQ0hNT05EIFBLV1kgIzIwNworCQkJCVJJQ0hNT05EIENBIDk0ODA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0wMiAgIChoZXgpCQlTQ1JFRU4gU1VCVElUTElORyBTWVNURU1TLCBMVEQKKzAwNjAwMiAgICAgKGJhc2UgMTYpCQlTQ1JFRU4gU1VCVElUTElORyBTWVNURU1TLCBMVEQKKwkJCQlUSEUgT0xEIFJFQ1RPUlkKKwkJCQlDSFVSQ0ggTEFORQorCQkJCUNMQVlET04gSVBTV0lDSCAgSVA2IE9FUSAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC02MC0wMyAgIChoZXgpCQlURVJBT0tBIFdFSUdIIFNZU1RFTSBQVEUsIExURC4KKzAwNjAwMyAgICAgKGJhc2UgMTYpCQlURVJBT0tBIFdFSUdIIFNZU1RFTSBQVEUsIExURC4KKwkJCQkzQSBUVUFTIEFWRU5VRSA4CisJCQkJU0lOR0FQT1JFIDYzOTEyOCAKKwkJCQlTSU5HQVBPUkUKKworMDAtNjAtMDQgICAoaGV4KQkJQ09NUFVUQURPUkVTIE1PRFVMQVJFUyBTQQorMDA2MDA0ICAgICAoYmFzZSAxNikJCUNPTVBVVEFET1JFUyBNT0RVTEFSRVMgU0EKKwkJCQlBVkRBIE1PTlRFU0lFUlJBIFMvTgorCQkJCUVESUZJQ0lPIENPTkdSRVNPUyAzMTQKKwkJCQk0MTAyMC1TRVZJTExBICAKKwkJCQlTUEFJTgorCiswMC02MC0wNSAgIChoZXgpCQlGRUVEQkFDSyBEQVRBIExURC4KKzAwNjAwNSAgICAgKGJhc2UgMTYpCQlGRUVEQkFDSyBEQVRBIExURC4KKwkJCQlQQVJLIFJPQUQKKwkJCQlDUk9XQk9ST1VHSAorCQkJCUVBU1QgU1VTU0VYLCBUTjYgMlFSICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC02MC0wNiAgIChoZXgpCQlTT1RFQyBDTy4sIExURAorMDA2MDA2ICAgICAoYmFzZSAxNikJCVNPVEVDIENPLiwgTFRECisJCQkJWU9LT0hBTUEgQkFTSEFNSUNISSBCTERHLiwKKwkJCQk0LTU1IE9IVEEtQ0hPIE5BS0EtS1UKKwkJCQlZT0tPSEFNQSAgMjMxICAKKwkJCQlKQVBBTgorCiswMC02MC0wNyAgIChoZXgpCQlBQ1JFUyBHQU1JTkcsIElOQy4KKzAwNjAwNyAgICAgKGJhc2UgMTYpCQlBQ1JFUyBHQU1JTkcsIElOQy4KKwkJCQk4MTUgTlcgOVRIIFNUUkVFVAorCQkJCUNPUlZBTExJUyBPUiA5NzMzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMDggICAoaGV4KQkJM0NPTSBDT1JQT1JBVElPTgorMDA2MDA4ICAgICAoYmFzZSAxNikJCTNDT00gQ09SUE9SQVRJT04KKwkJCQk1NDAwIEJBWUZST05UIFBMQVpBCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTA5ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNjAwOSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTBBICAgKGhleCkJCVNPUkQgQ09NUFVURVIgQ09SUE9SQVRJT04KKzAwNjAwQSAgICAgKGJhc2UgMTYpCQlTT1JEIENPTVBVVEVSIENPUlBPUkFUSU9OCisJCQkJMjAtNywgTUFTQUdPIDUtQ0hPTUUKKwkJCQlNSUhBTUEtS1UsIENISUJBLVNISQorCQkJCUNISUJBIDI2MSAgCisJCQkJSkFQQU4KKworMDAtNjAtMEIgICAoaGV4KQkJTE9HV0FSRSBHbWJICiswMDYwMEIgICAgIChiYXNlIDE2KQkJTE9HV0FSRSBHbWJICisJCQkJU0NIV0VERU5TVFIuIDkKKwkJCQlELTEzMzU5IEJFUkxJTiAgCisJCQkJR0VSTUFOWQorCiswMC02MC0wQyAgIChoZXgpCQlFdXJvdGVjaCBJbmMuCiswMDYwMEMgICAgIChiYXNlIDE2KQkJRXVyb3RlY2ggSW5jLgorCQkJCTEwMjYwIE9sZCBDb2x1bWJpYSBSb2FkCisJCQkJQ09MVU1CSUEgTUQgMjEwNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTBEICAgKGhleCkJCURpZ2l0YWwgTG9naWMgR21iSAorMDA2MDBEICAgICAoYmFzZSAxNikJCURpZ2l0YWwgTG9naWMgR21iSAorCQkJCVN0YWhsd2Vya3N0ci4gMjUKKwkJCQlNdWRlcnNiYWNoICA1NzU1NQorCQkJCUdFUk1BTlkKKworMDAtNjAtMEUgICAoaGV4KQkJV0FWRU5FVCBJTlRFUk5BVElPTkFMLCBJTkMuCiswMDYwMEUgICAgIChiYXNlIDE2KQkJV0FWRU5FVCBJTlRFUk5BVElPTkFMLCBJTkMuCisJCQkJNTgyNSBLRU5ORURZIFJPQUQKKwkJCQlNSVNTSVNTQVVHQSwgT05UQVJJTyBMNFogMkczICAKKwkJCQlDQU5BREEKKworMDAtNjAtMEYgICAoaGV4KQkJV0VTVEVMTCwgSU5DLgorMDA2MDBGICAgICAoYmFzZSAxNikJCVdFU1RFTEwsIElOQy4KKwkJCQk3NSBFWEVDVVRJVkUgRFJJVkUKKwkJCQlBVVJPUkEgSUwgNjA1MDQtNDEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMTAgICAoaGV4KQkJTkVUV09SSyBNQUNISU5FUywgSU5DLgorMDA2MDEwICAgICAoYmFzZSAxNikJCU5FVFdPUksgTUFDSElORVMsIElOQy4KKwkJCQkyNTUgT0xEIE5FVyBCUlVOU1dJQ0sgUkQuLCAjIE4zMjAKKwkJCQlQSVNDQVRBV0FZIE5KIDA4ODU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0xMSAgIChoZXgpCQlDUllTVEFMIFNFTUlDT05EVUNUT1IgQ09SUC4KKzAwNjAxMSAgICAgKGJhc2UgMTYpCQlDUllTVEFMIFNFTUlDT05EVUNUT1IgQ09SUC4KKwkJCQlQLk8uIEJPWCAxNzg0NworCQkJCUFVU1RJTiBUWCA3ODc2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMTIgICAoaGV4KQkJUE9XRVIgQ09NUFVUSU5HIENPUlBPUkFUSU9OCiswMDYwMTIgICAgIChiYXNlIDE2KQkJUE9XRVIgQ09NUFVUSU5HIENPUlBPUkFUSU9OCisJCQkJMTAyNjEgQlVCQiBST0FECisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0xMyAgIChoZXgpCQlORVRTVEFMIE1BU0NISU5FTiBBRworMDA2MDEzICAgICAoYmFzZSAxNikJCU5FVFNUQUwgTUFTQ0hJTkVOIEFHCisJCQkJSU5EVVNUUklFU1RSQVNTRQorCQkJCUNILTg3NTIgTkFFRkVMUyAgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtNjAtMTQgICAoaGV4KQkJRURFQyBDTy4sIExURC4KKzAwNjAxNCAgICAgKGJhc2UgMTYpCQlFREVDIENPLiwgTFRELgorCQkJCTlGIE9GIFQuTy5DLiBCVUlMRElORworCQkJCTctMjItMTcgTklTSElHT1RBTkRBCisJCQkJU0hJTkFHQVdBS1UsICBUT0tZTyAgCisJCQkJSkFQQU4KKworMDAtNjAtMTUgICAoaGV4KQkJTkVUMk5FVCBDT1JQT1JBVElPTgorMDA2MDE1ICAgICAoYmFzZSAxNikJCU5FVDJORVQgQ09SUE9SQVRJT04KKwkJCQkxMzEgQ09PTElER0UgU1RSRUVUCisJCQkJSFVEU09OIE1BIDAxNzQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0xNiAgIChoZXgpCQlDTEFSSUlPTgorMDA2MDE2ICAgICAoYmFzZSAxNikJCUNMQVJJSU9OCisJCQkJQ09TTElOIERSSVZFCisJCQkJTWFpbCBTdG9wIEMyNQorCQkJCVNPVVRIQk9STyBNQSAwMTc3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMTcgICAoaGV4KQkJVE9LSU1FQyBJTkMuCiswMDYwMTcgICAgIChiYXNlIDE2KQkJVE9LSU1FQyBJTkMuCisJCQkJMi0xNiwgTUlOQU1JLUtBTUFUQSwgT0hUQS1LVQorCQkJCVRPS1lPIDE0NCAgCisJCQkJSkFQQU4KKworMDAtNjAtMTggICAoaGV4KQkJU1RFTExBUiBPTkUgQ09SUE9SQVRJT04KKzAwNjAxOCAgICAgKGJhc2UgMTYpCQlTVEVMTEFSIE9ORSBDT1JQT1JBVElPTgorCQkJCTUwMCAxMDhUSCBBVkUuIE5FLS1TVEUuICMyMjAwCisJCQkJQkVMTEVWVUUgV0EgOTgwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTE5ICAgKGhleCkJCVJvY2hlIERpYWdub3N0aWNzCiswMDYwMTkgICAgIChiYXNlIDE2KQkJUm9jaGUgRGlhZ25vc3RpY3MKKwkJCQk5MTE1IEhhZ3VlIFJvYWQKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyNTAtMDQ1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMUEgICAoaGV4KQkJS0VJVEhMRVkgSU5TVFJVTUVOVFMKKzAwNjAxQSAgICAgKGJhc2UgMTYpCQlLRUlUSExFWSBJTlNUUlVNRU5UUworCQkJCTMwNTAwIEJBSU5CUklER0UgUkQuCisJCQkJU09MT04gT0ggNDQxMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTFCICAgKGhleCkJCU1FU0EgRUxFQ1RST05JQ1MKKzAwNjAxQiAgICAgKGJhc2UgMTYpCQlNRVNBIEVMRUNUUk9OSUNTCisJCQkJMTMyMyA2MVNUIFNUUkVFVAorCQkJCUVNRVJZVklMTEUgQ0EgOTQ2MDgtMjExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMUMgICAoaGV4KQkJVEVMWE9OIENPUlBPUkFUSU9OCiswMDYwMUMgICAgIChiYXNlIDE2KQkJVEVMWE9OIENPUlBPUkFUSU9OCisJCQkJMzMzMCBXLiBNQVJLRVQgU1RSRUVUCisJCQkJUE8gQk9YIDU1ODIKKwkJCQlBS1JPTiBPSCA0NDMzNC0wNTgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0xRCAgIChoZXgpCQlMVUNFTlQgVEVDSE5PTE9HSUVTCiswMDYwMUQgICAgIChiYXNlIDE2KQkJTFVDRU5UIFRFQ0hOT0xPR0lFUworCQkJCTEwMSBDUkFXRk9SRFMgQ09STkVSIFJELgorCQkJCVJPT00gIDRLLTMyMQorCQkJCUhPTE1ERUwgTkogMDc3MzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTFFICAgKGhleCkJCVNPRlRMQUIsIElOQy4KKzAwNjAxRSAgICAgKGJhc2UgMTYpCQlTT0ZUTEFCLCBJTkMuCisJCQkJUC5PLiBCT1ggOAorCQkJCUNISU1ORVkgUk9DSyBDTyA4MTEyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMUYgICAoaGV4KQkJU1RBTExJT04gVEVDSE5PTE9HSUVTCiswMDYwMUYgICAgIChiYXNlIDE2KQkJU1RBTExJT04gVEVDSE5PTE9HSUVTCisJCQkJMzMgV09PRFNUT0NLIFJPQUQKKwkJCQlUT09XT05HIFEtTC1ELSA0MDY2ICAKKwkJCQlBVVNUUkFMSUEKKworMDAtNjAtMjAgICAoaGV4KQkJUElWT1RBTCBORVRXT1JLSU5HLCBJTkMuCiswMDYwMjAgICAgIChiYXNlIDE2KQkJUElWT1RBTCBORVRXT1JLSU5HLCBJTkMuCisJCQkJNzI0NiBTSEFST04gRFIuLCBTVEUKKwkJCQlTQU4gSk9TRSBDQSA5NTEyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMjEgICAoaGV4KQkJRFNDIENPUlBPUkFUSU9OCiswMDYwMjEgICAgIChiYXNlIDE2KQkJRFNDIENPUlBPUkFUSU9OCisJCQkJUkVDUlVJVC1TSElOT0hUU1VLQSBCTERHLiwKKwkJCQkyLTI1LTE1IE1JTkFNSU9IVFNVS0EsIFRPU0hJTUEtS1UsCisJCQkJVE9LWU8gMTcwICAKKwkJCQlKQVBBTgorCiswMC02MC0yMiAgIChoZXgpCQlWSUNPTSBTWVNURU1TLCBJTkMuCiswMDYwMjIgICAgIChiYXNlIDE2KQkJVklDT00gU1lTVEVNUywgSU5DLgorCQkJCTE5NjEgTEFORElOR1MgRFJJVkUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0yMyAgIChoZXgpCQlQRVJJQ09NIFNFTUlDT05EVUNUT1IgQ09SUC4KKzAwNjAyMyAgICAgKGJhc2UgMTYpCQlQRVJJQ09NIFNFTUlDT05EVUNUT1IgQ09SUC4KKwkJCQkyMzgwIEJFUklORyBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0yNCAgIChoZXgpCQlHUkFESUVOVCBURUNITk9MT0dJRVMsIElOQy4KKzAwNjAyNCAgICAgKGJhc2UgMTYpCQlHUkFESUVOVCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkyIE1PVU5UIFJPWUFMIEFWRU5VRQorCQkJCU1BUkxCT1JPIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0yNSAgIChoZXgpCQlBQ1RJVkUgSU1BR0lORyBQTEMKKzAwNjAyNSAgICAgKGJhc2UgMTYpCQlBQ1RJVkUgSU1BR0lORyBQTEMKKwkJCQlIQVRUT1JJIEhPVVNFCisJCQkJVkFOV0FMTCBCVVNJTkVTUyBQQVJLCisJCQkJTUFJREVOSEVBRCBCZXJrc2hpcmUgU0w2IDRVQiAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC02MC0yNiAgIChoZXgpCQlWSUtJTkcgTW9kdWxhciBTb2x1dGlvbnMKKzAwNjAyNiAgICAgKGJhc2UgMTYpCQlWSUtJTkcgTW9kdWxhciBTb2x1dGlvbnMKKwkJCQkxMSBDT0xVTUJJQQorCQkJCUxBR1VOQSBISUxMUyBDQSA5MjY1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMjcgICAoaGV4KQkJU3VwZXJpb3IgTW9kdWxhciBQcm9kdWN0cworMDA2MDI3ICAgICAoYmFzZSAxNikJCVN1cGVyaW9yIE1vZHVsYXIgUHJvZHVjdHMKKwkJCQlHZW5lcmFsIFRlY2hub2xvZ3kgRGl2aXNpb24KKwkJCQk0MTUgUElORURBIENPVVJUCisJCQkJTUVMQk9VUk5FIEZMIDMyOTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0yOCAgIChoZXgpCQlNQUNST1ZJU0lPTiBDT1JQT1JBVElPTgorMDA2MDI4ICAgICAoYmFzZSAxNikJCU1BQ1JPVklTSU9OIENPUlBPUkFUSU9OCisJCQkJMjgzMCBEZSBMYSBDcnV6IEJvdWxldmFyZAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0yOSAgIChoZXgpCQlDQVJZIFBFUklQSEVSQUxTIElOQy4KKzAwNjAyOSAgICAgKGJhc2UgMTYpCQlDQVJZIFBFUklQSEVSQUxTIElOQy4KKwkJCQkxOTAgQ09MT05OQURFIFJPQUQgUywgVU5JVCA5CisJCQkJTkVQRUFOLCBPTlRBUklPIEsyRSA3SjUgIAorCQkJCUNBTkFEQQorCiswMC02MC0yQSAgIChoZXgpCQlTWU1JQ1JPTiBDT01QVVRFUiBDT01NVU5JQ0FUSU9OUywgTFRELgorMDA2MDJBICAgICAoYmFzZSAxNikJCVNZTUlDUk9OIENPTVBVVEVSIENPTU1VTklDQVRJT05TLCBMVEQuCisJCQkJVU5JVCA0IEdSRUVOIExBTkUgQlVTSU5FU1MgUEFSSworCQkJCTIzOCBHcmVlbiBsYW5lCisJCQkJTG9uZG9uIFNFOSAzVEwgIAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMkIgICAoaGV4KQkJUEVBSyBBVURJTworMDA2MDJCICAgICAoYmFzZSAxNikJCVBFQUsgQVVESU8KKwkJCQkxNzkwIDMwVEggU1RSRUVUIFNURSAjNDE0CisJCQkJQk9VTERFUiBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMkMgICAoaGV4KQkJTElOWCBEYXRhIFRlcm1pbmFscywgSW5jLgorMDA2MDJDICAgICAoYmFzZSAxNikJCUxJTlggRGF0YSBUZXJtaW5hbHMsIEluYy4KKwkJCQk2MjUgRElHSVRBTCBEUklWRS1TVEUgIzEwMAorCQkJCVBMQU5PIFRYIDc1MDc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0yRCAgIChoZXgpCQlBTEVSVE9OIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA2MDJEICAgICAoYmFzZSAxNikJCUFMRVJUT04gVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNjY3MCAxODVUSCBBVkUuIE4uRS4KKwkJCQlSRURNT05EIFdBIDk4MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0yRSAgIChoZXgpCQlDWUNMQURFUyBDT1JQT1JBVElPTgorMDA2MDJFICAgICAoYmFzZSAxNikJCUNZQ0xBREVTIENPUlBPUkFUSU9OCisJCQkJNDE5MzQgQ0hSSVNUWSBTVFJFRVQKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0yRiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDYwMkYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0zMCAgIChoZXgpCQlWSUxMQUdFIFRST05JQyBFTlRXSUNLTFVORworMDA2MDMwICAgICAoYmFzZSAxNikJCVZJTExBR0UgVFJPTklDIEVOVFdJQ0tMVU5HCisJCQkJV0VMTFdFRyA5NQorCQkJCTMxMTU3IFNBUlNURURUICAKKwkJCQlHRVJNQU5ZCisKKzAwLTYwLTMxICAgKGhleCkJCUhSSyBTWVNURU1TCiswMDYwMzEgICAgIChiYXNlIDE2KQkJSFJLIFNZU1RFTVMKKwkJCQlQLk8uIEJPWCA1MTQKKwkJCQlXRVNUVklMTEUgMzYzMCAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTYwLTMyICAgKGhleCkJCUktQ1VCRSwgSU5DLgorMDA2MDMyICAgICAoYmFzZSAxNikJCUktQ1VCRSwgSU5DLgorCQkJCTIzMjgtQyBXQUxTSCBBVkVOVUUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMzMgICAoaGV4KQkJQUNVSVRZIElNQUdJTkcsIElOQy4KKzAwNjAzMyAgICAgKGJhc2UgMTYpCQlBQ1VJVFkgSU1BR0lORywgSU5DLgorCQkJCTkgVE9XTlNFTkQgV0VTVAorCQkJCU5BU0hVQSBOSCAwMzA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMzQgICAoaGV4KQkJUk9CRVJUIEJPU0NIIEdtYkgKKzAwNjAzNCAgICAgKGJhc2UgMTYpCQlST0JFUlQgQk9TQ0ggR21iSAorCQkJCVBPU1RCT1ggMTEgNjIKKwkJCQlELTY0NzAxIEVSQkFDSCAgCisJCQkJR0VSTUFOWQorCiswMC02MC0zNSAgIChoZXgpCQlEQUxMQVMgU0VNSUNPTkRVQ1RPUiwgSU5DLgorMDA2MDM1ICAgICAoYmFzZSAxNikJCURBTExBUyBTRU1JQ09ORFVDVE9SLCBJTkMuCisJCQkJNDQwMSBTT1VUSCBCRUxUV09PRCBQQVJLV0FZCisJCQkJREFMTEFTIFRYIDc1MjQ0LTMyOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTM2ICAgKGhleCkJCUFJVCBBdXN0cmlhbiBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSBHbWJICiswMDYwMzYgICAgIChiYXNlIDE2KQkJQUlUIEF1c3RyaWFuIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5IEdtYkgKKwkJCQlEb25hdS1DaXR5LVN0cmFzc2UgMQorCQkJCVZpZW5uYSAgMTIyMAorCQkJCUFVU1RSSUEKKworMDAtNjAtMzcgICAoaGV4KQkJTlhQIFNlbWljb25kdWN0b3JzCiswMDYwMzcgICAgIChiYXNlIDE2KQkJTlhQIFNlbWljb25kdWN0b3JzCisJCQkJTWlsbGJyb29rIFRlY2hub2xvZ3kgQ2FtcHVzCisJCQkJTWlsbGJyb29rIFNvdXRoYW1wdG9uIFNPMTUgMERKCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNjAtMzggICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDYwMzggICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJR2xvYmFsIE9wZXJhdGlvbnMgRW5naW5lZXJpbmcKKwkJCQlEZXAgNjgwMCBQcm9ncmFtIE1hbmFnZXIgODIwMCBEaXhpZSBSb2FkCisJCQkJQnJhbXB0b24gT250YXJpbyAxNlQgNVA2IAorCQkJCUNBTkFEQQorCiswMC02MC0zOSAgIChoZXgpCQlTYW5Db20gVGVjaG5vbG9neSwgSW5jLgorMDA2MDM5ICAgICAoYmFzZSAxNikJCVNhbkNvbSBUZWNobm9sb2d5LCBJbmMuCisJCQkJNzcxOSBXT09EIEhPTExPVyBEUklWRQorCQkJCVNVSVRFICMxNTYKKwkJCQlBVVNUSU4gVFggNzg3MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTNBICAgKGhleCkJCVFVSUNLIENPTlRST0xTIExURC4KKzAwNjAzQSAgICAgKGJhc2UgMTYpCQlRVUlDSyBDT05UUk9MUyBMVEQuCisJCQkJRFVSSEFNIEhPVVNFLCBXQVJXSUNLIENPVVJUCisJCQkJUEFSSyBST0FELCBNSURETEVUT04KKwkJCQlNQU5DSEVTVEVSICBNMjQgMUFFICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC02MC0zQiAgIChoZXgpCQlBTVRFQyBzcGEKKzAwNjAzQiAgICAgKGJhc2UgMTYpCQlBTVRFQyBzcGEKKwkJCQlMT0MuIFMuIE1BUlRJTk8KKwkJCQk1MzAyNSBQSUFOQ0FTVEFHTkFJTyAoU0lFTkEpICAKKwkJCQlJVEFMWQorCiswMC02MC0zQyAgIChoZXgpCQlIQUdJV0FSQSBTWVMtQ09NIENPLiwgTFRELgorMDA2MDNDICAgICAoYmFzZSAxNikJCUhBR0lXQVJBIFNZUy1DT00gQ08uLCBMVEQuCisJCQkJMi00LTMgTklTSElLSSBOQUtBLUtVCisJCQkJTkFHT1lBCisJCQkJQUlDSEkgNDYwICAKKwkJCQlKQVBBTgorCiswMC02MC0zRCAgIChoZXgpCQkzQ1gKKzAwNjAzRCAgICAgKGJhc2UgMTYpCQkzQ1gKKwkJCQkyMDg1IEhBTUlMVE9OIEFWRS4sIC1TVEUuIzIyMAorCQkJCVNBTiBKT1NFIENBIDk1MTI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0zRSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDYwM0UgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0zRiAgIChoZXgpCQlQQVRBUFNDTyBERVNJR05TCiswMDYwM0YgICAgIChiYXNlIDE2KQkJUEFUQVBTQ08gREVTSUdOUworCQkJCTUzNTAgUEFSVE5FUlMgQ09VUlQKKwkJCQlGUkVERVJJQ0sgTUQgMjE3MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTQwICAgKGhleCkJCU5FVFJPIENPUlAuCiswMDYwNDAgICAgIChiYXNlIDE2KQkJTkVUUk8gQ09SUC4KKwkJCQkzMTIwIFNDT1RUIEJMVkQuCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTQxICAgKGhleCkJCVlva29nYXdhIEVsZWN0cmljIENvcnBvcmF0aW9uCiswMDYwNDEgICAgIChiYXNlIDE2KQkJWW9rb2dhd2EgRWxlY3RyaWMgQ29ycG9yYXRpb24KKwkJCQkyLTktMzEgTmFrYWNobywgTXVzYXNoaW5vLXNoaQorCQkJCVRva3lvIDE4MC04NzUwICAKKwkJCQlKQVBBTgorCiswMC02MC00MiAgIChoZXgpCQlUS1MgKFVTQSksIElOQy4KKzAwNjA0MiAgICAgKGJhc2UgMTYpCQlUS1MgKFVTQSksIElOQy4KKwkJCQkxMjAxIENPTU1FUkNFCisJCQkJUklDSEFSRFNPTiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNDMgICAoaGV4KQkJaURpcmVjdCwgSU5DLgorMDA2MDQzICAgICAoYmFzZSAxNikJCWlEaXJlY3QsIElOQy4KKwkJCQkxMzg2NSBTdW5yaXNlIFZhbGx5IERyaXZlCisJCQkJU3VpdGUgMTAwCisJCQkJSGVybmRvbiBWQSAyMDE3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNDQgICAoaGV4KQkJTElUVE9OL1BPTFktU0NJRU5USUZJQworMDA2MDQ0ICAgICAoYmFzZSAxNikJCUxJVFRPTi9QT0xZLVNDSUVOVElGSUMKKwkJCQkyMjAwIFNPVVRIIE1BSU4gU1RSRUVUCisJCQkJQkxBQ0tTQlVSRyBWQSAyNDA2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNDUgICAoaGV4KQkJUEFUSExJR0hUIFRFQ0hOT0xPR0lFUworMDA2MDQ1ICAgICAoYmFzZSAxNikJCVBBVEhMSUdIVCBURUNITk9MT0dJRVMKKwkJCQk3NjcgV0FSUkVOIFJPQUQKKwkJCQlJVEhBQ0EgTlkgMTQ4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTQ2ICAgKGhleCkJCVZNRVRSTywgSU5DLgorMDA2MDQ2ICAgICAoYmFzZSAxNikJCVZNRVRSTywgSU5DLgorCQkJCTE4ODAgREFJUlkgQVNIRk9SRC0gU1RFICM1MzUKKwkJCQlIT1VTVE9OIFRYIDc3MDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC00NyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDYwNDcgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC00OCAgIChoZXgpCQlFTUMgQ09SUE9SQVRJT04KKzAwNjA0OCAgICAgKGJhc2UgMTYpCQlFTUMgQ09SUE9SQVRJT04KKwkJCQkxNzEgU09VVEggU1QuLAorCQkJCUhPUEtJTlRPTiBNQSAwMTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNDkgICAoaGV4KQkJVklOQSBURUNITk9MT0dJRVMKKzAwNjA0OSAgICAgKGJhc2UgMTYpCQlWSU5BIFRFQ0hOT0xPR0lFUworCQkJCTYgVU5JT04gU1FVQVJFIC0gU1RFIEYKKwkJCQlVTklPTiBDSVRZIENBIDk0NTg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC00QSAgIChoZXgpCQlTQUlDIElERUFTIEdST1VQCiswMDYwNEEgICAgIChiYXNlIDE2KQkJU0FJQyBJREVBUyBHUk9VUAorCQkJCTcxMjAgQ09MVU1CSUEgR0FURVdBWSBEUklWRQorCQkJCUNPTFVNQklBIE1EIDIxMDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC00QiAgIChoZXgpCQlTYWZlLWNvbSBHbWJIICYgQ28uIEtHCiswMDYwNEIgICAgIChiYXNlIDE2KQkJU2FmZS1jb20gR21iSCAmIENvLiBLRworCQkJCUJ1cmcgTGljaHRlbmZlbHMKKwkJCQkzNTEwNCBMaWNodGVuZmVscyAgCisJCQkJR0VSTUFOWQorCiswMC02MC00QyAgIChoZXgpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCiswMDYwNEMgICAgIChiYXNlIDE2KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorCQkJCTI3IFJVRSBMRUJMQU5DCisJCQkJQ0VERVggMTUgUEFSSVMgNzU1MTIKKwkJCQlGUkFOQ0UKKworMDAtNjAtNEQgICAoaGV4KQkJTU1DIE5FVFdPUktTLCBJTkMuCiswMDYwNEQgICAgIChiYXNlIDE2KQkJTU1DIE5FVFdPUktTLCBJTkMuCisJCQkJMTEzNCBFQVNUIEFSUVVFUyBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYtNDYwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNEUgICAoaGV4KQkJQ1lDTEUgQ09NUFVURVIgQ09SUE9SQVRJT04sIElOQy4KKzAwNjA0RSAgICAgKGJhc2UgMTYpCQlDWUNMRSBDT01QVVRFUiBDT1JQT1JBVElPTiwgSU5DLgorCQkJCTIwMjQ1IFNURVZFTlMgQ1JFRUsgQkxWRC4KKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTRGICAgKGhleCkJCVNVWlVLSSBNRkcuIENPLiwgTFRELgorMDA2MDRGICAgICAoYmFzZSAxNikJCVNVWlVLSSBNRkcuIENPLiwgTFRELgorCQkJCTU1Mi01MSBBSklHQVVSQQorCQkJCUhJVEFDSElOQUtBCisJCQkJSUJBUkFLSSwgMzExLTEyICAKKwkJCQlKQVBBTgorCiswMC02MC01MCAgIChoZXgpCQlJTlRFUk5JWCBJTkMuCiswMDYwNTAgICAgIChiYXNlIDE2KQkJSU5URVJOSVggSU5DLgorCQkJCTU5LTEwIFRBS0FLVVJBLUNITworCQkJCUhBQ0hJT0pJCisJCQkJVE9LWU8gMTkyIAorCQkJCUpBUEFOCisKKzAwLTYwLTUxICAgKGhleCkJCVFVQUxJVFkgU0VNSUNPTkRVQ1RPUgorMDA2MDUxICAgICAoYmFzZSAxNikJCVFVQUxJVFkgU0VNSUNPTkRVQ1RPUgorCQkJCTg1MSBNQVJUSU4gQVZFTlVFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTUyICAgKGhleCkJCVBFUklQSEVSQUxTIEVOVEVSUFJJU0UgQ08uLCBMdGQuCiswMDYwNTIgICAgIChiYXNlIDE2KQkJUEVSSVBIRVJBTFMgRU5URVJQUklTRSBDTy4sIEx0ZC4KKwkJCQkzRiwgTk8uMTAsIEFMTEVZIDYsIExBTkUgNDUKKwkJCQlQQU8gU0hJTiBST0FELCBIU0lOIFRJRU4gQ0lUWQorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC02MC01MyAgIChoZXgpCQlUT1lPREEgTUFDSElORSBXT1JLUywgTFRELgorMDA2MDUzICAgICAoYmFzZSAxNikJCVRPWU9EQSBNQUNISU5FIFdPUktTLCBMVEQuCisJCQkJMS03IEtJVEFKSVpPWUFNQSBOT0RBQ0hPVQorCQkJCUtBUklZQSBDSVRZLCBBSUNISSAgCisJCQkJSkFQQU4KKworMDAtNjAtNTQgICAoaGV4KQkJQ09OVFJPTFdBUkUgR01CSAorMDA2MDU0ICAgICAoYmFzZSAxNikJCUNPTlRST0xXQVJFIEdNQkgKKwkJCQlXQUxEU1RSQVNTRSA5MgorCQkJCTYzMTI4IERJRVRaRU5CQUNIICAKKwkJCQlHRVJNQU5ZCisKKzAwLTYwLTU1ICAgKGhleCkJCUNPUk5FTEwgVU5JVkVSU0lUWQorMDA2MDU1ICAgICAoYmFzZSAxNikJCUNPUk5FTEwgVU5JVkVSU0lUWQorCQkJCTExMCBNQVBMRSBBVkVOVUUKKwkJCQlJVEhBQ0EgTlkgMTQ4NTAtNDkwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNTYgICAoaGV4KQkJTkVUV09SSyBUT09MUywgSU5DLgorMDA2MDU2ICAgICAoYmFzZSAxNikJCU5FVFdPUksgVE9PTFMsIElOQy4KKwkJCQkyOTc1IEJPV0VSUyBBVkVOVUUsICMyMDIKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MS0wOTU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC01NyAgIChoZXgpCQlNVVJBVEEgTUFOVUZBQ1RVUklORyBDTy4sIExURC4KKzAwNjA1NyAgICAgKGJhc2UgMTYpCQlNVVJBVEEgTUFOVUZBQ1RVUklORyBDTy4sIExURC4KKwkJCQkxLTE4LTEgSEFLVVNBTiBNSURPUkktS1UKKwkJCQlZT0tPSEFNQSAgMjI2ICAKKwkJCQlKQVBBTgorCiswMC02MC01OCAgIChoZXgpCQlDT1BQRVIgTU9VTlRBSU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwNjA1OCAgICAgKGJhc2UgMTYpCQlDT1BQRVIgTU9VTlRBSU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk2NjUwIExVU0sgQkxWRC4tU1RFICNCMTAzCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC01OSAgIChoZXgpCQlURUNITklDQUwgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwNjA1OSAgICAgKGJhc2UgMTYpCQlURUNITklDQUwgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQkxMDAgRE9NSU5PIERSSVZFCisJCQkJQ09OQ09SRCBNQSAwMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNUEgICAoaGV4KQkJQ0VMQ09SRSwgSU5DLgorMDA2MDVBICAgICAoYmFzZSAxNikJCUNFTENPUkUsIElOQy4KKwkJCQk4MDAxIENFTlRFUlZJRVcgUEFSS1dBWQorCQkJCVNVSVRFICMyMDEKKwkJCQlNRU1QSElTIFROIDM4MDE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC01QiAgIChoZXgpCQlJbnRyYVNlcnZlciBUZWNobm9sb2d5LCBJbmMuCiswMDYwNUIgICAgIChiYXNlIDE2KQkJSW50cmFTZXJ2ZXIgVGVjaG5vbG9neSwgSW5jLgorCQkJCTEyNSBIT1BQSU5HIEJST09LIFBBUksKKwkJCQlIT0xMSVNUT04gTUEgMDE3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTVDICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNjA1QyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTVEICAgKGhleCkJCVNDQU5JVkFMVkUgQ09SUC4KKzAwNjA1RCAgICAgKGJhc2UgMTYpCQlTQ0FOSVZBTFZFIENPUlAuCisJCQkJMTcyMiBOLiBNQURTT04gU1RSRUVUCisJCQkJTElCRVJUWSBMQUtFIFdBIDk5MDE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC01RSAgIChoZXgpCQlMSUJFUlRZIFRFQ0hOT0xPR1kgTkVUV09SS0lORworMDA2MDVFICAgICAoYmFzZSAxNikJCUxJQkVSVFkgVEVDSE5PTE9HWSBORVRXT1JLSU5HCisJCQkJUC5PLiBCT1ggMTE1NjYKKwkJCQlIQVRGSUVMRCwgUFJFVE9SSUEgMDAyOCAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTYwLTVGICAgKGhleCkJCU5JUFBPTiBVTklTT0ZUIENPUlBPUkFUSU9OCiswMDYwNUYgICAgIChiYXNlIDE2KQkJTklQUE9OIFVOSVNPRlQgQ09SUE9SQVRJT04KKwkJCQlCUiBOSU5HWU9DSE8gMSwyLTEzLTkKKwkJCQlOSUhPTkJBU0hJLU5JTkdZT0NITywgQ0hVTy1LVQorCQkJCVRPS1lPIDEwMyAgCisJCQkJSkFQQU4KKworMDAtNjAtNjAgICAoaGV4KQkJREFXTklORyBURUNITk9MT0dJRVMsIElOQy4KKzAwNjA2MCAgICAgKGJhc2UgMTYpCQlEQVdOSU5HIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTQwOSBNQVNPTiBST0FECisJCQkJRkFJUlBPUlQgTlkgMTQ0NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTYxICAgKGhleCkJCVdISVNUTEUgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwNjA2MSAgICAgKGJhc2UgMTYpCQlXSElTVExFIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJMTEwIE1BUlNIIERSSVZFLVNURSAjMTAwCisJCQkJRk9TVEVSIENJVFkgQ0EgOTQ0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTYyICAgKGhleCkJCVRFTEVTWU5DLCBJTkMuCiswMDYwNjIgICAgIChiYXNlIDE2KQkJVEVMRVNZTkMsIElOQy4KKwkJCQk1NTU1IE9BS0JST09LIFBLV1ktU1RFICMxMTAKKwkJCQlOT1JDUk9TUyBHQSAzMDA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNjMgICAoaGV4KQkJUFNJT04gREFDT00gUExDLgorMDA2MDYzICAgICAoYmFzZSAxNikJCVBTSU9OIERBQ09NIFBMQy4KKwkJCQlQU0lPTiBEQUNPTSBIT1VTRQorCQkJCVBSRVNMRVkgV0FZLAorCQkJCUNST1dOSElMTCBNSUxUT04gS0VZTkVTICBNSzggMEVGIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTYwLTY0ICAgKGhleCkJCU5FVENPTU0gTElNSVRFRAorMDA2MDY0ICAgICAoYmFzZSAxNikJCU5FVENPTU0gTElNSVRFRAorCQkJCVBPIEJPWCAzNzkKKwkJCQlOT1JUSCBSWURFLCBOU1csIDIxMTMgIAorCQkJCUFVU1RSQUxJQQorCiswMC02MC02NSAgIChoZXgpCQlCRVJORUNLRVIgJiBSQUlORVIgSU5EVVNUUklFLUVMRUtUUk9OSUMgR21iSAorMDA2MDY1ICAgICAoYmFzZSAxNikJCUJFUk5FQ0tFUiAmIFJBSU5FUiBJTkRVU1RSSUUtRUxFS1RST05JQyBHbWJICisJCQkJRUdHRUxTQkVSRyAxMjAKKwkJCQk1MTQyIEVHR0VMU0JFUkcgIAorCQkJCUFVU1RSSUEKKworMDAtNjAtNjYgICAoaGV4KQkJTEFDUk9JWCBUcmFmaWMKKzAwNjA2NiAgICAgKGJhc2UgMTYpCQlMQUNST0lYIFRyYWZpYworCQkJCTEgZXJlIEF2ZW51ZSwgMTEgZW1lIHJ1ZQorCQkJCTA2NTE2IENBUlJPUyAgCisJCQkJRlJBTkNFCisKKzAwLTYwLTY3ICAgKGhleCkJCUFDRVIgTkVUWFVTIElOQy4KKzAwNjA2NyAgICAgKGJhc2UgMTYpCQlBQ0VSIE5FVFhVUyBJTkMuCisJCQkJNUYtMywgNSBIU0lOIEFOTiBST0FEICBTQklQCisJCQkJSFNJTkNIVSAzMDAgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNjAtNjggICAoaGV4KQkJRGlhbG9naWMgQ29ycG9yYXRpb24KKzAwNjA2OCAgICAgKGJhc2UgMTYpCQlEaWFsb2dpYyBDb3Jwb3JhdGlvbgorCQkJCTk4MDAgQ2F2ZW5kaXNoIEJsdmQsIDV0aCBGbG9vcgorCQkJCU1vbnRyZWFsIFF1ZWJlYyBINE0gMlY5CisJCQkJQ0FOQURBCisKKzAwLTYwLTY5ICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorMDA2MDY5ICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorCQkJCTE3NDUgVGVjaG5vbG9neSBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC02QSAgIChoZXgpCQlNSVRTVUJJU0hJIFdJUkVMRVNTIENPTU1VTklDQVRJT05TLiBJTkMuCiswMDYwNkEgICAgIChiYXNlIDE2KQkJTUlUU1VCSVNISSBXSVJFTEVTUyBDT01NVU5JQ0FUSU9OUy4gSU5DLgorCQkJCTIwMDEgQ0hFUlJZIERSSVZFCisJCQkJQlJBU0VMVE9OIEdBIDMwNTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC02QiAgIChoZXgpCQlTeW5jbGF5ZXIgSW5jLgorMDA2MDZCICAgICAoYmFzZSAxNikJCVN5bmNsYXllciBJbmMuCisJCQkJMS0yMCBIaW1lZ2Fva2EKKwkJCQlLYW5pLUNpdHkKKwkJCQlHSUZVIDUwOS0wMjQ5ICAKKwkJCQlKQVBBTgorCiswMC02MC02QyAgIChoZXgpCQlBUkVTQ09NCiswMDYwNkMgICAgIChiYXNlIDE2KQkJQVJFU0NPTQorCQkJCTI4MzMgSlVOQ1RJT04gQVZFLiAtIFNURSAjMjA2CisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTZEICAgKGhleCkJCURJR0lUQUwgRVFVSVBNRU5UIENPUlAuCiswMDYwNkQgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUC4KKwkJCQk1NTAgS0lORyBTVFJFRVQKKwkJCQlNL1MgTEtHMS0zL0ExMAorCQkJCUxJVFRMRVRPTiBNQSAwMTQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNkUgICAoaGV4KQkJREFWSUNPTSBTRU1JQ09ORFVDVE9SLCBJTkMuCiswMDYwNkUgICAgIChiYXNlIDE2KQkJREFWSUNPTSBTRU1JQ09ORFVDVE9SLCBJTkMuCisJCQkJMjQ1NyBBVUdVU1RJTkUgRFJJVkUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNkYgICAoaGV4KQkJQ0xBUklPTiBDT1JQT1JBVElPTiBPRiBBTUVSSUNBCiswMDYwNkYgICAgIChiYXNlIDE2KQkJQ0xBUklPTiBDT1JQT1JBVElPTiBPRiBBTUVSSUNBCisJCQkJMTcgTEFLRVNJREUgT0ZGSUNFIFBBUksKKwkJCQk2MDcgTk9SVEggQVZFTlVFCisJCQkJV0FLRUZJRUxEIE1BIDAxODgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC03MCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDYwNzAgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC03MSAgIChoZXgpCQlNSURBUyBMQUIsIElOQy4KKzAwNjA3MSAgICAgKGJhc2UgMTYpCQlNSURBUyBMQUIsIElOQy4KKwkJCQk0IEtBVEFNQUNISSwKKwkJCQlTSElOSlVLVS1LVQorCQkJCVRPS1lPIDE2MCAKKwkJCQlKQVBBTgorCiswMC02MC03MiAgIChoZXgpCQlWWEwgSU5TVFJVTUVOVFMsIExJTUlURUQKKzAwNjA3MiAgICAgKGJhc2UgMTYpCQlWWEwgSU5TVFJVTUVOVFMsIExJTUlURUQKKwkJCQlQTE9UIE5PLiAxNywgS09OQVBQQU5BIEFHUkFIQVJBCisJCQkJRUxFQ1RST05JQyBDSVRZCisJCQkJQkFOR0FMT1JFIC0gIDU2MSAyMjkgIAorCQkJCUlORElBCisKKzAwLTYwLTczICAgKGhleCkJCVJFRENSRUVLIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDYwNzMgICAgIChiYXNlIDE2KQkJUkVEQ1JFRUsgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkzOTAwIE5FV1BBUksgTUFMTCBST0FECisJCQkJTkVXQVJLIENBIDk0NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC03NCAgIChoZXgpCQlRU0MgQVVESU8gUFJPRFVDVFMKKzAwNjA3NCAgICAgKGJhc2UgMTYpCQlRU0MgQVVESU8gUFJPRFVDVFMKKwkJCQkxNjc1IE1BQ0FSVEhVUiBCTFZELgorCQkJCUNPU1RBIE1FU0EgQ0EgOTI2MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTc1ICAgKGhleCkJCVBFTlRFSywgSU5DLgorMDA2MDc1ICAgICAoYmFzZSAxNikJCVBFTlRFSywgSU5DLgorCQkJCTEgUEFSSyBXQVkKKwkJCQlVUFBFUiBTQURETEUgUklWRVIgTkogMDc0NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTc2ICAgKGhleCkJCVNDSExVTUJFUkdFUiBURUNITk9MT0dJRVMgUkVUQUlMIFBFVFJPTEVVTSBTWVNURU1TCiswMDYwNzYgICAgIChiYXNlIDE2KQkJU0NITFVNQkVSR0VSIFRFQ0hOT0xPR0lFUyBSRVRBSUwgUEVUUk9MRVVNIFNZU1RFTVMKKwkJCQk4MjUtTSBHUkVFTkJSSUVSIENJUkNMRQorCQkJCUNIRVNBUEVBS0UgVkEgMjMzMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTc3ICAgKGhleCkJCVBSSVNBIE5FVFdPUktTCiswMDYwNzcgICAgIChiYXNlIDE2KQkJUFJJU0EgTkVUV09SS1MKKwkJCQk2NjIwIE1lc2EgUmlkZ2UgUm9hZCwKKwkJCQlTdWl0ZSAyMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTc4ICAgKGhleCkJCVBPV0VSIE1FQVNVUkVNRU5UIExURC4KKzAwNjA3OCAgICAgKGJhc2UgMTYpCQlQT1dFUiBNRUFTVVJFTUVOVCBMVEQuCisJCQkJMjE5NSBLRUFUSU5HIENST1NTIFJPQUQKKwkJCQlTQUFOSUNIVE9OLCBCLkMuIFY4TSAyQTUgIAorCQkJCUNBTkFEQQorCiswMC02MC03OSAgIChoZXgpCQlNYWluc3RyZWFtIERhdGEsIEluYy4KKzAwNjA3OSAgICAgKGJhc2UgMTYpCQlNYWluc3RyZWFtIERhdGEsIEluYy4KKwkJCQkzNzUgQ2hpcGV0YSBXYXksIFN1aXRlIEIKKwkJCQlTYWx0IExha2UgQ2l0eSBVVCA4NDEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtN0EgICAoaGV4KQkJRFZTIEdtYkgKKzAwNjA3QSAgICAgKGJhc2UgMTYpCQlEVlMgR21iSAorCQkJCUtSRVBFTlNUUkFTU0UgOAorCQkJCUQtMzAxNjUgSEFOTk9WRVIgIAorCQkJCUdFUk1BTlkKKworMDAtNjAtN0IgICAoaGV4KQkJRk9SRSBTWVNURU1TLCBJTkMuCiswMDYwN0IgICAgIChiYXNlIDE2KQkJRk9SRSBTWVNURU1TLCBJTkMuCisJCQkJMTAwMCBGT1JFIERSSVZFCisJCQkJV0FSUkVOREFMRSBQQSAxNTA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtN0MgICAoaGV4KQkJV2F2ZUFjY2VzcywgTHRkLgorMDA2MDdDICAgICAoYmFzZSAxNikJCVdhdmVBY2Nlc3MsIEx0ZC4KKwkJCQlQLk8uIEJPWCAyNDczCisJCQkJMTAgSEFZRVpJUkEgU1RSRUVUCisJCQkJUkEnQU5BTkEgNDM2NjMgIAorCQkJCUlTUkFFTAorCiswMC02MC03RCAgIChoZXgpCQlTRU5USUVOVCBORVRXT1JLUyBJTkMuCiswMDYwN0QgICAgIChiYXNlIDE2KQkJU0VOVElFTlQgTkVUV09SS1MgSU5DLgorCQkJCTIyMDEgQ0FOVFUgQ09VUlQtU1RFICMyMDUKKwkJCQlTQVJBU09UQSBGTCAzNDIzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtN0UgICAoaGV4KQkJR0lHQUxBQlMsIElOQy4KKzAwNjA3RSAgICAgKGJhc2UgMTYpCQlHSUdBTEFCUywgSU5DLgorCQkJCTI5MCBTQU5UQSBBTkEgQ09VUlQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTdGICAgKGhleCkJCUFVUk9SQSBURUNITk9MT0dJRVMsIElOQy4KKzAwNjA3RiAgICAgKGJhc2UgMTYpCQlBVVJPUkEgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTc2IFNFQ09ORCBBVkVOVUUKKwkJCQlXQUxUSEFNIE1BIDAyMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04MCAgIChoZXgpCQlNSUNST1RST05JWCBEQVRBQ09NIExURC4KKzAwNjA4MCAgICAgKGJhc2UgMTYpCQlNSUNST1RST05JWCBEQVRBQ09NIExURC4KKwkJCQkyMDAgQUJFUkRFRU4gRFJJVkUKKwkJCQlMT05ET04sIE9OVEFSSU8gTjVWIDROMiAgCisJCQkJQ0FOQURBCisKKzAwLTYwLTgxICAgKGhleCkJCVRWL0NPTSBJTlRFUk5BVElPTkFMCiswMDYwODEgICAgIChiYXNlIDE2KQkJVFYvQ09NIElOVEVSTkFUSU9OQUwKKwkJCQkxNjUxNiBWSUEgRVNQUklMTE8KKwkJCQlTQU4gRElFR08gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTgyICAgKGhleCkJCU5PVkFMSU5LIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA2MDgyICAgICAoYmFzZSAxNikJCU5PVkFMSU5LIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTQ4NTExIFdBUk0gU1BSSU5HUyBCTFZELiAjMjA4CisJCQkJRlJFTU9OVCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtODMgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA2MDgzICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtODQgICAoaGV4KQkJRElHSVRBTCBWSURFTworMDA2MDg0ICAgICAoYmFzZSAxNikJCURJR0lUQUwgVklERU8KKwkJCQk0OTIwIEFWQUxPTiBSSURHRSBQS1dZCisJCQkJU1VJVEUgIzYwMAorCQkJCU5PUkNST1NTIEdBIDMwMDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04NSAgIChoZXgpCQlTdG9yYWdlIENvbmNlcHRzCiswMDYwODUgICAgIChiYXNlIDE2KQkJU3RvcmFnZSBDb25jZXB0cworCQkJCTE0MzUyIENoYW1iZXIgUm9hZAorCQkJCVR1c3RpbiBDQSA5Mjc4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtODYgICAoaGV4KQkJTE9HSUMgUkVQTEFDRU1FTlQgVEVDSC4gTFRELgorMDA2MDg2ICAgICAoYmFzZSAxNikJCUxPR0lDIFJFUExBQ0VNRU5UIFRFQ0guIExURC4KKwkJCQkxNCBBUktXUklHSFQgUk9BRAorCQkJCVJFQURJTkcgQkVSS1MgUkcyMExTCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC02MC04NyAgIChoZXgpCQlLQU5TQUkgRUxFQ1RSSUMgQ08uLCBMVEQuCiswMDYwODcgICAgIChiYXNlIDE2KQkJS0FOU0FJIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTYtMTQtOSBNSURPUklJLCBBU0FNSU5BTUktS1UKKwkJCQlISVJPU0hJTUEgNzMxLTAxICAKKwkJCQlKQVBBTgorCiswMC02MC04OCAgIChoZXgpCQlXSElURSBNT1VOVEFJTiBEU1AsIElOQy4KKzAwNjA4OCAgICAgKGJhc2UgMTYpCQlXSElURSBNT1VOVEFJTiBEU1AsIElOQy4KKwkJCQk0MTAgQU1IRVJTVCBTVFJFRVQtU1RFICMzMjUKKwkJCQlOQVNIVUEgTkggMDMwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTg5ICAgKGhleCkJCVhBVEEKKzAwNjA4OSAgICAgKGJhc2UgMTYpCQlYQVRBCisJCQkJMTUxIEVBU1QgQ0xJRkYgUk9BRC1TVEUuIzEwCisJCQkJQlVSTlNWSUxMRSBNTiA1NTMzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtOEEgICAoaGV4KQkJQ0lUQURFTCBDT01QVVRFUgorMDA2MDhBICAgICAoYmFzZSAxNikJCUNJVEFERUwgQ09NUFVURVIKKwkJCQkyOSBBUk1PUlkgUkQKKwkJCQlNSUxGT1JEIE1BIDAzMDU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04QiAgIChoZXgpCQlDb25mZXJUZWNoIEludGVybmF0aW9uYWwKKzAwNjA4QiAgICAgKGJhc2UgMTYpCQlDb25mZXJUZWNoIEludGVybmF0aW9uYWwKKwkJCQkxMjExMCBOLiBQRUNPUyBTVFJFRVQKKwkJCQlXRVNUTUlOU1RFUiBDTyA4MDIzNC0yMDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04QyAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMDYwOEMgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQkFZRlJPTlQgUExBWkEKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1Mi04MTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04RCAgIChoZXgpCQlVTklQVUxTRSBDT1JQLgorMDA2MDhEICAgICAoYmFzZSAxNikJCVVOSVBVTFNFIENPUlAuCisJCQkJMi03LCBTRU5HRU5EQUktTklTSEkKKwkJCQlLT1NISUdBWUEtQ0lUWQorCQkJCVNBSVRBTUEgMzQzICAKKwkJCQlKT1JEQU4KKworMDAtNjAtOEUgICAoaGV4KQkJSEUgRUxFQ1RST05JQ1MsIFRFQ0hOT0xPR0lFICYgU1lTVEVNVEVDSE5JSyBHbWJICiswMDYwOEUgICAgIChiYXNlIDE2KQkJSEUgRUxFQ1RST05JQ1MsIFRFQ0hOT0xPR0lFICYgU1lTVEVNVEVDSE5JSyBHbWJICisJCQkJQU0gR05FSVNFTkFVRkxPVCA4CisJCQkJIEQtNjY1MzggTkVVTkhJUkNIRU4gIAorCQkJCUdFUk1BTlkKKworMDAtNjAtOEYgICAoaGV4KQkJVEVLUkFNIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDYwOEYgICAgIChiYXNlIDE2KQkJVEVLUkFNIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJQjEsIE5PLiAxNywgTEFORSAxNTksIFNFQy4gNgorCQkJCVJPT1NFVkVMVCBSRCwKKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNjAtOTAgICAoaGV4KQkJQXJ0aXphIE5ldHdvcmtzIEluYworMDA2MDkwICAgICAoYmFzZSAxNikJCUFydGl6YSBOZXR3b3JrcyBJbmMKKwkJCQlGYXJldCBUYWNoaWthd2EgQ2VudGVyIFNxdWFyZSwgMi0zNi0yIEFrZWJvbm8tY2hvLCAKKwkJCQlUYWNoaWthd2Etc2hpLCBUb2t5byAgMTkwLTAwMTIKKwkJCQlKQVBBTgorCiswMC02MC05MSAgIChoZXgpCQlGSVJTVCBQQUNJRklDIE5FVFdPUktTLCBJTkMuCiswMDYwOTEgICAgIChiYXNlIDE2KQkJRklSU1QgUEFDSUZJQyBORVRXT1JLUywgSU5DLgorCQkJCTg3MSBGT1ggTEFORQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC05MiAgIChoZXgpCQlNSUNSTy9TWVMsIElOQy4KKzAwNjA5MiAgICAgKGJhc2UgMTYpCQlNSUNSTy9TWVMsIElOQy4KKwkJCQkzNDQ3IE9DRUFOIFZJRVcgQkxWRC4KKwkJCQlHTEVOREFMRSBDQSA5MTIwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtOTMgICAoaGV4KQkJVkFSSUFOCiswMDYwOTMgICAgIChiYXNlIDE2KQkJVkFSSUFOCisJCQkJMjcwMCBNSVRDSEVMTCBEUi4KKwkJCQlXQUxOVVQgR1JFRUsgQ0EgOTQ1OTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTk0ICAgKGhleCkJCUlCTSBDb3JwCiswMDYwOTQgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUE8gQk9YIDEyMTk1CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0yMTk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC05NSAgIChoZXgpCQlBQ0NVLVRJTUUgU1lTVEVNUywgSU5DLgorMDA2MDk1ICAgICAoYmFzZSAxNikJCUFDQ1UtVElNRSBTWVNURU1TLCBJTkMuCisJCQkJNDIwIFNPTUVSUyBST0FECisJCQkJRUxMSU5HVE9OIENUIDA2MDI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC05NiAgIChoZXgpCQlULlMuIE1JQ1JPVEVDSCBJTkMuCiswMDYwOTYgICAgIChiYXNlIDE2KQkJVC5TLiBNSUNST1RFQ0ggSU5DLgorCQkJCTIwODE4IEhJR0dJTlMgQ09VUlQKKwkJCQlUT1JSQU5DRSBDQSA5MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtOTcgICAoaGV4KQkJM0NPTSBDT1JQT1JBVElPTgorMDA2MDk3ICAgICAoYmFzZSAxNikJCTNDT00gQ09SUE9SQVRJT04KKwkJCQk1NDAwIEJBWUZST05UIFBMQVpBCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTk4ICAgKGhleCkJCUhUIENPTU1VTklDQVRJT05TCiswMDYwOTggICAgIChiYXNlIDE2KQkJSFQgQ09NTVVOSUNBVElPTlMKKwkJCQk0NDgwIFNIT1BQSU5HIExBTkUKKwkJCQlTSU1JIFZBTExFWSBDQSA5MzA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtOTkgICAoaGV4KQkJU0JFLCBJbmMuCiswMDYwOTkgICAgIChiYXNlIDE2KQkJU0JFLCBJbmMuCisJCQkJMjMwNSBDYW1pbm8gUmFtb24KKwkJCQlTdWl0ZSAyMDAKKwkJCQlTYW4gUmFtb24gQ0EgOTQ1ODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTlBICAgKGhleCkJCU5KSyBURUNITk8gQ08uCiswMDYwOUEgICAgIChiYXNlIDE2KQkJTkpLIFRFQ0hOTyBDTy4KKwkJCQlOMS0yNSBLQU1JWUFTQVRPCisJCQkJS09NQVRTVSAgIzkyMyAgCisJCQkJSkFQQU4KKworMDAtNjAtOUIgICAoaGV4KQkJQVNUUk8tTUVELCBJTkMuCiswMDYwOUIgICAgIChiYXNlIDE2KQkJQVNUUk8tTUVELCBJTkMuCisJCQkJNjAwIEVBU1QgR1JFRU5XSUNIIEFWRS4KKwkJCQlXRVNUIFdBUldJQ0sgUkkgMDI4OTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTlDICAgKGhleCkJCVBlcmtpbi1FbG1lciBJbmNvcnBvcmF0ZWQKKzAwNjA5QyAgICAgKGJhc2UgMTYpCQlQZXJraW4tRWxtZXIgSW5jb3Jwb3JhdGVkCisJCQkJNzEwIEJyaWRnZXBvcnQgQXZlLgorCQkJCVNoZWx0b24gQ1QgMDY0ODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTlEICAgKGhleCkJCVBNSSBGT09EIEVRVUlQTUVOVCBHUk9VUAorMDA2MDlEICAgICAoYmFzZSAxNikJCVBNSSBGT09EIEVRVUlQTUVOVCBHUk9VUAorCQkJCTcwMSBSSURHRSBBVkVOVUUKKwkJCQlUUk9ZIE9IIDQ1Mzc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC05RSAgIChoZXgpCQlBU0MgWDMgLSBJTkZPUk1BVElPTiBURUNITk9MT0dZIFNUQU5EQVJEUyBTRUNSRVRBUklBVFMKKzAwNjA5RSAgICAgKGJhc2UgMTYpCQlBU0MgWDMgLSBJTkZPUk1BVElPTiBURUNITk9MT0dZIFNUQU5EQVJEUyBTRUNSRVRBUklBVFMKKwkJCQkxMjUwIEVZRSBTVFJFRVQgTlcgLSBTVEUgIzIwMAorCQkJCVdBU0hJTkdUT04gREMgMjAwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTlGICAgKGhleCkJCVBIQVNUIENPUlBPUkFUSU9OCiswMDYwOUYgICAgIChiYXNlIDE2KQkJUEhBU1QgQ09SUE9SQVRJT04KKwkJCQk3OSBXRVNUIDQ1MDAgU09VVEggLSBCTERHLiMxNAorCQkJCVNBTFQgTEFLRSBDSVRZIFVUIDg0MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1BMCAgIChoZXgpCQlTV0lUQ0hFRCBORVRXT1JLIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA2MEEwICAgICAoYmFzZSAxNikJCVNXSVRDSEVEIE5FVFdPUksgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTM4MDUgMVNUIEFWRU5VRSBOT1JUSAorCQkJCVBMWU1PVVRIIE1OIDU1NDQxLTU0NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUExICAgKGhleCkJCVZQTmV0LCBJbmMuCiswMDYwQTEgICAgIChiYXNlIDE2KQkJVlBOZXQsIEluYy4KKwkJCQk1NTUgTi4gTUFUSElMREEgQVZFLiwtU1RFICMxMTAKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUEyICAgKGhleCkJCU5JSE9OIFVOSVNZUyBMSU1JVEVEIENPLgorMDA2MEEyICAgICAoYmFzZSAxNikJCU5JSE9OIFVOSVNZUyBMSU1JVEVEIENPLgorCQkJCVAuTy4gQk9YIDEzNQorCQkJCVRPS1lPLVRPLCAgS09VVE9VLUtVCisJCQkJU0hJTk9OT01FIDEtMTAtOSAgCisJCQkJSkFQQU4KKworMDAtNjAtQTMgICAoaGV4KQkJQ09OVElOVVVNIFRFQ0hOT0xPR1kgQ09SUC4KKzAwNjBBMyAgICAgKGJhc2UgMTYpCQlDT05USU5VVU0gVEVDSE5PTE9HWSBDT1JQLgorCQkJCTIyMCBDT05USU5VVU0gRFJJVkUKKwkJCQlGTEVUQ0hFUiBOQyAyODczMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQTQgICAoaGV4KQkJR1JJTkFLRVIgU1lTVEVNIFRFQ0hOT0xPR0lFUworMDA2MEE0ICAgICAoYmFzZSAxNikJCUdSSU5BS0VSIFNZU1RFTSBURUNITk9MT0dJRVMKKwkJCQlCT1ggOTEyLTU2MQorCQkJCVNJTFZFUlRPTiAgMDEyNyAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTYwLUE1ICAgKGhleCkJCVBFUkZPUk1BTkNFIFRFTEVDT00gQ09SUC4KKzAwNjBBNSAgICAgKGJhc2UgMTYpCQlQRVJGT1JNQU5DRSBURUxFQ09NIENPUlAuCisJCQkJMTAgQ0FSTFNPTiBST0FECisJCQkJUk9DSEVTVEVSIE5ZIDE0NjEwLTEwMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUE2ICAgKGhleCkJCVBBUlRJQ0xFIE1FQVNVUklORyBTWVNURU1TCiswMDYwQTYgICAgIChiYXNlIDE2KQkJUEFSVElDTEUgTUVBU1VSSU5HIFNZU1RFTVMKKwkJCQk1NDc1IEFJUlBPUlQgQkxWRC4KKwkJCQlCT1VMREVSIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1BNyAgIChoZXgpCQlNSUNST1NFTlMgR21iSCAmIENPLiBLRworMDA2MEE3ICAgICAoYmFzZSAxNikJCU1JQ1JPU0VOUyBHbWJIICYgQ08uIEtHCisJCQkJS3VlZmVyc3RyYXNzZSAxNgorCQkJCUQtNTkwNjcgSGFtbSAgCisJCQkJR0VSTUFOWQorCiswMC02MC1BOCAgIChoZXgpCQlUSURPTUFUIEFCCiswMDYwQTggICAgIChiYXNlIDE2KQkJVElET01BVCBBQgorCQkJCQorCQkJCVMtMTIwODkgU1RPQ0tIT0xNICAKKwkJCQlTV0VERU4KKworMDAtNjAtQTkgICAoaGV4KQkJR0VTWVRFQyBNYkgKKzAwNjBBOSAgICAgKGJhc2UgMTYpCQlHRVNZVEVDIE1iSAorCQkJCVBBU0NBTFNUUkFTU0UgNgorCQkJCUQgNTIwNzYgQUFDSEVOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTYwLUFBICAgKGhleCkJCUlOVEVMTElHRU5UIERFVklDRVMgSU5DLiAoSURJKQorMDA2MEFBICAgICAoYmFzZSAxNikJCUlOVEVMTElHRU5UIERFVklDRVMgSU5DLiAoSURJKQorCQkJCTE3MTgtTCBCRUxNT05UIEFWRU5VRQorCQkJCUJBTFRJTU9SRSBNRCAyMTI0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQUIgICAoaGV4KQkJTEFSU0NPTSBJTkNPUlBPUkFURUQKKzAwNjBBQiAgICAgKGJhc2UgMTYpCQlMQVJTQ09NIElOQ09SUE9SQVRFRAorCQkJCTE4NDUgTUNDQU5ETEVTUyBEUklWRQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1BQyAgIChoZXgpCQlSRVNJTElFTkNFIENPUlBPUkFUSU9OCiswMDYwQUMgICAgIChiYXNlIDE2KQkJUkVTSUxJRU5DRSBDT1JQT1JBVElPTgorCQkJCTE3NTUgRU1CQVJDQURFUk8gUk9BRC1TVEUgIzEyMAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQUQgICAoaGV4KQkJTWVnYUNoaXBzIENvcnBvcmF0aW9uCiswMDYwQUQgICAgIChiYXNlIDE2KQkJTWVnYUNoaXBzIENvcnBvcmF0aW9uCisJCQkJNC0xLTYsTWl5YWhhcmEKKwkJCQlZb2RvZ2F3YS1rdQorCQkJCU9zYWthIDUzMi0wMDAzCisJCQkJSkFQQU4KKworMDAtNjAtQUUgICAoaGV4KQkJVFJJTyBJTkZPUk1BVElPTiBTWVNURU1TIEFCCiswMDYwQUUgICAgIChiYXNlIDE2KQkJVFJJTyBJTkZPUk1BVElPTiBTWVNURU1TIEFCCisJCQkJRk9HREVWQUdFTiA0QgorCQkJCVMtMTgzIDY0IFRBQlkgCisJCQkJU1dFREVOCisKKzAwLTYwLUFGICAgKGhleCkJCVBBQ0lGSUMgTUlDUk8gREFUQSwgSU5DLgorMDA2MEFGICAgICAoYmFzZSAxNikJCVBBQ0lGSUMgTUlDUk8gREFUQSwgSU5DLgorCQkJCTE2NzUxIE1JTExJS0FOIEFWRU5VRQorCQkJCUlSVklORSBDQSA5MjcxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQjAgICAoaGV4KQkJSEVXTEVUVC1QQUNLQVJEIENPLgorMDA2MEIwICAgICAoYmFzZSAxNikJCUhFV0xFVFQtUEFDS0FSRCBDTy4KKwkJCQlNUyA0MkxFCisJCQkJMTAwMDAgV09MRkUgUk9BRAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQjEgICAoaGV4KQkJSU5QVVQvT1VUUFVULCBJTkMuCiswMDYwQjEgICAgIChiYXNlIDE2KQkJSU5QVVQvT1VUUFVULCBJTkMuCisJCQkJMTIzMDAgUEFSQyBDUkVTVCBEUklWRQorCQkJCVNUQUZGT1JEIFRYIDc3NDc3LTI0MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUIyICAgKGhleCkJCVBST0NFU1MgQ09OVFJPTCBDT1JQLgorMDA2MEIyICAgICAoYmFzZSAxNikJCVBST0NFU1MgQ09OVFJPTCBDT1JQLgorCQkJCTY4NzUgTUlNTVMgRFJJVkUKKwkJCQlBVExBTlRBIEdBIDMwMzQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1CMyAgIChoZXgpCQlaLUNPTSwgSU5DLgorMDA2MEIzICAgICAoYmFzZSAxNikJCVotQ09NLCBJTkMuCisJCQkJN0YtMiwgTk8uOSwgUFJPU1BFUklUWSAxU1QgUkQuCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTYwLUI0ICAgKGhleCkJCUdMRU5BWVJFIFImRCBJTkMuCiswMDYwQjQgICAgIChiYXNlIDE2KQkJR0xFTkFZUkUgUiZEIElOQy4KKwkJCQkxNTcwIEtPT1RFTkFZIFNUUkVFVAorCQkJCVZBTkNPVVZFUiwgQkMgVjVLIDVCOCAgCisJCQkJQ0FOQURBCisKKzAwLTYwLUI1ICAgKGhleCkJCUtFQkEgR21iSAorMDA2MEI1ICAgICAoYmFzZSAxNikJCUtFQkEgR21iSAorCQkJCUdFV0VSQkVQQVJLIFVSRkFIUgorCQkJCUEtNDA0MSBMSU5aICAKKwkJCQlBVVNUUklBCisKKzAwLTYwLUI2ICAgKGhleCkJCUxBTkQgQ09NUFVURVIgQ08uLCBMVEQuCiswMDYwQjYgICAgIChiYXNlIDE2KQkJTEFORCBDT01QVVRFUiBDTy4sIExURC4KKwkJCQk3LTQtMTcgTklTSElOQUtBSklNQQorCQkJCVlPRE9HQVdBS1UgNTMyICAKKwkJCQlKQVBBTgorCiswMC02MC1CNyAgIChoZXgpCQlDSEFOTkVMTUFUSUMsIElOQy4KKzAwNjBCNyAgICAgKGJhc2UgMTYpCQlDSEFOTkVMTUFUSUMsIElOQy4KKwkJCQkxNzAwIEdJTExFU1BJRSBXQVkKKwkJCQlFTCBDQUpPTiBDQSA5MjAyMC0wOTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1COCAgIChoZXgpCQlDT1JFTElTIEluYy4KKzAwNjBCOCAgICAgKGJhc2UgMTYpCQlDT1JFTElTIEluYy4KKwkJCQkxMjYwNyBIaWRkZW5jcmVlayBXYXkKKwkJCQlDZXJyaXRvcyBDQSA5MDcwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQjkgICAoaGV4KQkJTkVDIEluZnJvbnRpYSBDb3Jwb3JhdGlvbgorMDA2MEI5ICAgICAoYmFzZSAxNikJCU5FQyBJbmZyb250aWEgQ29ycG9yYXRpb24KKwkJCQkyLTYtMSxLaXRhbWlrYXRhLFRha2F0c3Uta3UKKwkJCQlLYXdhc2FraSAgMjEzLTg1MTEKKwkJCQlKQVBBTgorCiswMC02MC1CQSAgIChoZXgpCQlTQUhBUkEgTkVUV09SS1MsIElOQy4KKzAwNjBCQSAgICAgKGJhc2UgMTYpCQlTQUhBUkEgTkVUV09SS1MsIElOQy4KKwkJCQkzMzUgSElHSExBTkQgQVZFLgorCQkJCUNIRVNISVJFIENUIDA2NDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1CQiAgIChoZXgpCQlDQUJMRVRST04gLSBORVRMSU5LLCBJTkMuCiswMDYwQkIgICAgIChiYXNlIDE2KQkJQ0FCTEVUUk9OIC0gTkVUTElOSywgSU5DLgorCQkJCTM1IElORFVTVFJJQUwgV0FZCisJCQkJUC5PLiBCT1ggNTAwNQorCQkJCVJPQ0hFU1RFUiBOSCAwMzg2Ni01MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1CQyAgIChoZXgpCQlLZXVuWW91bmcgRWxlY3Ryb25pY3MgJiBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorMDA2MEJDICAgICAoYmFzZSAxNikJCUtldW5Zb3VuZyBFbGVjdHJvbmljcyAmIENvbW11bmljYXRpb24gQ28uLCBMdGQuCisJCQkJMzI1LTc2LCBEQUVIRVVORy1ET05HLCBNQVBPLUdVLAorCQkJCVNFT1VMICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNjAtQkQgICAoaGV4KQkJSFVCQkVMTC1QVUxTRUNPTQorMDA2MEJEICAgICAoYmFzZSAxNikJCUhVQkJFTEwtUFVMU0VDT00KKwkJCQkyOTAwIFRPV0VSVklFVyBST0FECisJCQkJSEVSTkRPTiBWQSAyMTA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQkUgICAoaGV4KQkJV0VCVFJPTklDUworMDA2MEJFICAgICAoYmFzZSAxNikJCVdFQlRST05JQ1MKKwkJCQkzQi0xICA4LTItMTIKKwkJCQlOSVNISS1HT1RBTkRBCisJCQkJU0hJTkFHQVdBLUtVIFRPS1lPIDE0MSAgCisJCQkJSkFQQU4KKworMDAtNjAtQkYgICAoaGV4KQkJTUFDUkFJR09SIFNZU1RFTVMsIElOQy4KKzAwNjBCRiAgICAgKGJhc2UgMTYpCQlNQUNSQUlHT1IgU1lTVEVNUywgSU5DLgorCQkJCVBPIEJPWCAxMDA4CisJCQkJQlJPT0tMSU5FIFZJTExBR0UgTUEgMDIxNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUMwICAgKGhleCkJCU5lcmEgTmV0d29ya3MgQVMKKzAwNjBDMCAgICAgKGJhc2UgMTYpCQlOZXJhIE5ldHdvcmtzIEFTCisJCQkJS29rc3RhZHZlaWVuIDIzCisJCQkJQmVyZ2VuICA1MDIwCisJCQkJTk9SV0FZCisKKzAwLTYwLUMxICAgKGhleCkJCVdhdmVTcGFuIENvcnBvcmF0aW9uCiswMDYwQzEgICAgIChiYXNlIDE2KQkJV2F2ZVNwYW4gQ29ycG9yYXRpb24KKwkJCQk1MDAgTi4gQkVSTkFSRE8gQVZFLgorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUMyICAgKGhleCkJCU1QTCBBRworMDA2MEMyICAgICAoYmFzZSAxNikJCU1QTCBBRworCQkJCVRhZWZlcm5zdHJhc3NlIDIwCisJCQkJQ0gtNTQwNSBEYWV0dHdpbCAKKwkJCQlTV0lUWkVSTEFORAorCiswMC02MC1DMyAgIChoZXgpCQlORVRWSVNJT04gQ09SUE9SQVRJT04KKzAwNjBDMyAgICAgKGJhc2UgMTYpCQlORVRWSVNJT04gQ09SUE9SQVRJT04KKwkJCQlNUyMgMUEKKwkJCQlPTkUgQ09NQUMgTE9PUAorCQkJCVJPTktPTktPTUEgTlkgMTE3NzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUM0ICAgKGhleCkJCVNPTElUT04gU1lTVEVNUyBLLksuCiswMDYwQzQgICAgIChiYXNlIDE2KQkJU09MSVRPTiBTWVNURU1TIEsuSy4KKwkJCQkyLTQtMyBTSElOSlVLVSwgU0hJTkpVS1UtS1UKKwkJCQlUT0tZTyAxNjAgIAorCQkJCUpBUEFOCisKKzAwLTYwLUM1ICAgKGhleCkJCUFOQ09UIENPUlAuCiswMDYwQzUgICAgIChiYXNlIDE2KQkJQU5DT1QgQ09SUC4KKwkJCQkxMTUgQ09OU1RJVFVUSU9OIERSLgorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUM2ICAgKGhleCkJCURDUyBBRworMDA2MEM2ICAgICAoYmFzZSAxNikJCURDUyBBRworCQkJCVNBTFpBQ0hTVFJBU1MgMzEKKwkJCQlELTE0MTI5ICBCRVJMSU4gIAorCQkJCUdFUk1BTlkKKworMDAtNjAtQzcgICAoaGV4KQkJQU1BVEkgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwNjBDNyAgICAgKGJhc2UgMTYpCQlBTUFUSSBDT01NVU5JQ0FUSU9OUyBDT1JQLgorCQkJCTIwNDMgU0FNQVJJVEFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUM4ICAgKGhleCkJCUtVS0EgV0VMRElORyBTWVNURU1TICYgUk9CT1RTCiswMDYwQzggICAgIChiYXNlIDE2KQkJS1VLQSBXRUxESU5HIFNZU1RFTVMgJiBST0JPVFMKKwkJCQlCTFVFQ0hFUlNUUkFTU0UgMTQ0CisJCQkJREVQVC4gUkUtU0gKKwkJCQlELTg2MTY1IEFVR1NCVVJHICAKKwkJCQlHRVJNQU5ZCisKKzAwLTYwLUM5ICAgKGhleCkJCUNvbnRyb2xOZXQsIEluYy4KKzAwNjBDOSAgICAgKGJhc2UgMTYpCQlDb250cm9sTmV0LCBJbmMuCisJCQkJNzQ3IENBTURFTiwgU1RFLiBBCisJCQkJQ0FNUEJFTEwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUNBICAgKGhleCkJCUhBUk1PTklDIFNZU1RFTVMgSU5DT1JQT1JBVEVECiswMDYwQ0EgICAgIChiYXNlIDE2KQkJSEFSTU9OSUMgU1lTVEVNUyBJTkNPUlBPUkFURUQKKwkJCQkxOTkgMVNUIFNUUkVFVCAtIFNURSAjMzAyCisJCQkJTE9TIEFMVE9TIENBIDk0MDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1DQiAgIChoZXgpCQlISVRBQ0hJIFpPU0VOIENPUlBPUkFUSU9OCiswMDYwQ0IgICAgIChiYXNlIDE2KQkJSElUQUNISSBaT1NFTiBDT1JQT1JBVElPTgorCQkJCTMtNCwgU0FLVVJBSklNQSAxLUNIT01FCisJCQkJS09OT0hBTkEtS1UsIE9TQUtBIDU1NCAgCisJCQkJSkFQQU4KKworMDAtNjAtQ0MgICAoaGV4KQkJRU1UUkFLLCBJTkNPUlBPUkFURUQKKzAwNjBDQyAgICAgKGJhc2UgMTYpCQlFTVRSQUssIElOQ09SUE9SQVRFRAorCQkJCTcxNTAgQ0FNUFVTIERSSVZFLCBTVEUgIzE4MAorCQkJCUNPTE9SQURPIFNQUklOR1MgQ08gODA5MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUNEICAgKGhleCkJCVZpZGVvU2VydmVyLCBJbmMuCiswMDYwQ0QgICAgIChiYXNlIDE2KQkJVmlkZW9TZXJ2ZXIsIEluYy4KKwkJCQk1IEZPUkJFUyBST0FECisJCQkJTEVYSU5HVE9OIE1BIDAyMTczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1DRSAgIChoZXgpCQlBQ0NMQUlNIENPTU1VTklDQVRJT05TCiswMDYwQ0UgICAgIChiYXNlIDE2KQkJQUNDTEFJTSBDT01NVU5JQ0FUSU9OUworCQkJCTUwMDAgT0xEIElST05TSURFUyBEUklWRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1DRiAgIChoZXgpCQlBTFRFT04gTkVUV09SS1MsIElOQy4KKzAwNjBDRiAgICAgKGJhc2UgMTYpCQlBTFRFT04gTkVUV09SS1MsIElOQy4KKwkJCQk1MCBHUkVBVCBPQUtTIEJMVkQuCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUQwICAgKGhleCkJCVNOTVAgUkVTRUFSQ0ggSU5DT1JQT1JBVEVECiswMDYwRDAgICAgIChiYXNlIDE2KQkJU05NUCBSRVNFQVJDSCBJTkNPUlBPUkFURUQKKwkJCQkzMDAxIEtJTUJFUkxJTiBIRUlHSFRTIFJPQUQKKwkJCQlLTk9YVklMTEUgVE4gMzc5MjAtOTcxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRDEgICAoaGV4KQkJQ0FTQ0FERSBDT01NVU5JQ0FUSU9OUworMDA2MEQxICAgICAoYmFzZSAxNikJCUNBU0NBREUgQ09NTVVOSUNBVElPTlMKKwkJCQk2IFRFQ0hOT0xPR1kgUEFSSyBEUklWRQorCQkJCVdFU1RGT1JEIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1EMiAgIChoZXgpCQlMVUNFTlQgVEVDSE5PTE9HSUVTIFRBSVdBTiBURUxFQ09NTVVOSUNBVElPTlMgQ08uLCBMVEQuCiswMDYwRDIgICAgIChiYXNlIDE2KQkJTFVDRU5UIFRFQ0hOT0xPR0lFUyBUQUlXQU4gVEVMRUNPTU1VTklDQVRJT05TIENPLiwgTFRELgorCQkJCSMyLCBJTk5PVkFUSU9OIFJPQUQgSUkKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU4gQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTYwLUQzICAgKGhleCkJCUFUJlQKKzAwNjBEMyAgICAgKGJhc2UgMTYpCQlBVCZUCisJCQkJMTAxIENSQVdGT1JEUyBDT1JORVIgUk9BRCwgUmQuIDFKMzIxCisJCQkJUC5PLiBCT1ggMzAzMAorCQkJCUhPTE1ERUwgTkogMDc3MzMtMzAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRDQgICAoaGV4KQkJRUxEQVQgQ09NTVVOSUNBVElPTiBMVEQuCiswMDYwRDQgICAgIChiYXNlIDE2KQkJRUxEQVQgQ09NTVVOSUNBVElPTiBMVEQuCisJCQkJMTAgSEFLSVNIT04gU1RSRUVUCisJCQkJQk5FSS1CUkFLICA1MTIwMyAgCisJCQkJSVNSQUVMCisKKzAwLTYwLUQ1ICAgKGhleCkJCU1JWUFDSEkgVEVDSE5PUyBDT1JQLgorMDA2MEQ1ICAgICAoYmFzZSAxNikJCU1JWUFDSEkgVEVDSE5PUyBDT1JQLgorCQkJCTk1LTMsIEZVVEFTVVpVS0EKKwkJCQlOT0RBIENJVFksIENISUJBLCAyNzggIAorCQkJCUpBUEFOCisKKzAwLTYwLUQ2ICAgKGhleCkJCU5vdkF0ZWwgV2lyZWxlc3MgVGVjaG5vbG9naWVzIEx0ZC4KKzAwNjBENiAgICAgKGJhc2UgMTYpCQlOb3ZBdGVsIFdpcmVsZXNzIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJU1VJVEUgMjAwLCA2NzE1LThUSCBTVFJFRVQgTkUKKwkJCQlDQUxHQVJZLCBBTEJFUlRBIFQyRSA4TTQgIAorCQkJCUNBTkFEQQorCiswMC02MC1ENyAgIChoZXgpCQlFQ09MRSBQT0xZVEVDSE5JUVVFIEZFREVSQUxFIERFIExBVVNBTk5FIChFUEZMKQorMDA2MEQ3ICAgICAoYmFzZSAxNikJCUVDT0xFIFBPTFlURUNITklRVUUgRkVERVJBTEUgREUgTEFVU0FOTkUgKEVQRkwpCisJCQkJRUNVQkxFTlMKKwkJCQlDSC0xMDE1IExBVVNBTk5FICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC02MC1EOCAgIChoZXgpCQlFTE1JQyBTWVNURU1TLCBJTkMuCiswMDYwRDggICAgIChiYXNlIDE2KQkJRUxNSUMgU1lTVEVNUywgSU5DLgorCQkJCURBSS1JQ0hJIFNFSU1FSSBCTERHLgorCQkJCTQtNTkgQkVOVEVOLURPUkksIE5BS0EtS1UKKwkJCQlZT0tPSEFNQSAyMzEgIAorCQkJCUpBUEFOCisKKzAwLTYwLUQ5ICAgKGhleCkJCVRSQU5TWVMgTkVUV09SS1MgSU5DLgorMDA2MEQ5ICAgICAoYmFzZSAxNikJCVRSQU5TWVMgTkVUV09SS1MgSU5DLgorCQkJCTM0MDMgR1JJRkZJVEgKKwkJCQlTVC4gTEFVUkVOVCwgUVVFQkVDIEg0VCAxVzUgIAorCQkJCUNBTkFEQQorCiswMC02MC1EQSAgIChoZXgpCQlKQk0gRUxFQ1RST05JQ1MgQ08uCiswMDYwREEgICAgIChiYXNlIDE2KQkJSkJNIEVMRUNUUk9OSUNTIENPLgorCQkJCTQ2NDUgTGFHdWFyZGlhbiBEcml2ZQorCQkJCVNULiBMT1VJUyBNTyA2MzEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtREIgICAoaGV4KQkJTlRQIEVMRUtUUk9OSUsgQS9TCiswMDYwREIgICAgIChiYXNlIDE2KQkJTlRQIEVMRUtUUk9OSUsgQS9TCisJCQkJS05BUEhPTE0gNworCQkJCURLLTI3MzAgSEVSTEVWICAKKwkJCQlERU5NQVJLCisKKzAwLTYwLURDICAgKGhleCkJCVRveW8gTmV0d29yayBTeXN0ZW1zICAmIFN5c3RlbSBJbnRlZ3JhdGlvbiBDby4gTFRECiswMDYwREMgICAgIChiYXNlIDE2KQkJVG95byBOZXR3b3JrIFN5c3RlbXMgICYgU3lzdGVtIEludGVncmF0aW9uIENvLiBMVEQKKwkJCQkxOCBOaWhvbi1vZG9yaSxOYWthLWt1CisJCQkJWW9rb2hhbWEsIEthbmFnYXdhICAyMzEtMDAyMQorCQkJCUpBUEFOCisKKzAwLTYwLUREICAgKGhleCkJCU1ZUklDT00sIElOQy4KKzAwNjBERCAgICAgKGJhc2UgMTYpCQlNWVJJQ09NLCBJTkMuCisJCQkJMzI1QiBOLiBTQU5UQSBBTklUQSBBVkUuCisJCQkJQVJDQURJQSBDQSA5MTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtREUgICAoaGV4KQkJS2F5c2VyLVRocmVkZSBHbWJICiswMDYwREUgICAgIChiYXNlIDE2KQkJS2F5c2VyLVRocmVkZSBHbWJICisJCQkJV29sZnJhdHNoYXVzZXIgU3RyLiA0OAorCQkJCUQtODEzNzkgTXVuaWNoIAorCQkJCUdFUk1BTlkKKworMDAtNjAtREYgICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCiswMDYwREYgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJMTc0NSBUZWNobm9sb2d5IERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1FMCAgIChoZXgpCQlBWElPTSBURUNITk9MT0dZIENPLiwgTFRELgorMDA2MEUwICAgICAoYmFzZSAxNikJCUFYSU9NIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJM0YsIDE0LCBMQU5FIDIzNQorCQkJCVBBTyBDSElBTyBST0FELCBIU0lOIFRJRU4KKwkJCQlUQUlQRUkgSFNJRU4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNjAtRTEgICAoaGV4KQkJT1JDS0lUIENPTU1VTklDQVRJT05TIExURC4KKzAwNjBFMSAgICAgKGJhc2UgMTYpCQlPUkNLSVQgQ09NTVVOSUNBVElPTlMgTFRELgorCQkJCTM4IE5BSEFMQVQgWUlaSEFLIFNUUkVFVAorCQkJCVRFTC1BVklWICA2NzQ0OCAgCisJCQkJSVNSQUVMCisKKzAwLTYwLUUyICAgKGhleCkJCVFVRVNUIEVOR0lORUVSSU5HICYgREVWRUxPUE1FTlQKKzAwNjBFMiAgICAgKGJhc2UgMTYpCQlRVUVTVCBFTkdJTkVFUklORyAmIERFVkVMT1BNRU5UCisJCQkJMTM0NSBFQVNUIFJPQ0sgV1JFTiBST0FECisJCQkJUEhPRU5JWCBBWiA4NTA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRTMgICAoaGV4KQkJQVJCSU4gSU5TVFJVTUVOVFMKKzAwNjBFMyAgICAgKGJhc2UgMTYpCQlBUkJJTiBJTlNUUlVNRU5UUworCQkJCTMyMDYgTE9OR01JUkUgRFJJVkUKKwkJCQlDT0xMRUdFIFNUQVRJT04gVFggNzc4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUU0ICAgKGhleCkJCUNPTVBVU0VSVkUsIElOQy4KKzAwNjBFNCAgICAgKGJhc2UgMTYpCQlDT01QVVNFUlZFLCBJTkMuCisJCQkJNTAwMCBBUkxJTkdUT04gQ0VOVFJFIEJMVkQuCisJCQkJUC5PLiBCT1ggMjAyMTIKKwkJCQlDT0xVTUJVUyBPSCA0MzIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRTUgICAoaGV4KQkJRlVKSSBBVVRPTUFUSU9OIENPLiwgTFRELgorMDA2MEU1ICAgICAoYmFzZSAxNikJCUZVSkkgQVVUT01BVElPTiBDTy4sIExURC4KKwkJCQkzLTIzLTEwLCBORUdJU0hJCisJCQkJVVJBV0EtU0hJLCAzMzYgU0FJVEFNQSAgCisJCQkJSkFQQU4KKworMDAtNjAtRTYgICAoaGV4KQkJU0hPTUlUSSBTWVNURU1TIElOQ09SUE9SQVRFRAorMDA2MEU2ICAgICAoYmFzZSAxNikJCVNIT01JVEkgU1lTVEVNUyBJTkNPUlBPUkFURUQKKwkJCQkyMDk5IEdBVEVXQVkgUExBQ0UgLSBTVEUuIzIyMAorCQkJCVNBTiBKT1NFIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1FNyAgIChoZXgpCQlSQU5EQVRBCiswMDYwRTcgICAgIChiYXNlIDE2KQkJUkFOREFUQQorCQkJCVBPIEJPWCAyMDkKKwkJCQlIQVdUSE9STiAgVklDICAzMTIyICAKKwkJCQlBVVNUUkFMSUEKKworMDAtNjAtRTggICAoaGV4KQkJSElUQUNISSBDT01QVVRFUiBQUk9EVUNUUyAoQU1FUklDQSksIElOQy4KKzAwNjBFOCAgICAgKGJhc2UgMTYpCQlISVRBQ0hJIENPTVBVVEVSIFBST0RVQ1RTIChBTUVSSUNBKSwgSU5DLgorCQkJCTMxMDEgVEFTTUFOIERSSVZFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUU5ICAgKGhleCkJCUFUT1AgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDYwRTkgICAgIChiYXNlIDE2KQkJQVRPUCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQlTVUlURSAzMDUsIE5PLiA0NywgUEFSSyBBVkVOVUUgSUksCisJCQkJIFNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLCisJCQkJSFNJTkNIVSAzMDA0NyAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC02MC1FQSAgIChoZXgpCQlTdHJlYW1Mb2dpYworMDA2MEVBICAgICAoYmFzZSAxNikJCVN0cmVhbUxvZ2ljCisJCQkJMjEzMjkgTk9SREhPRkYgU1RSRUVUCisJCQkJQ0hBVFNXT1JUSCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRUIgICAoaGV4KQkJRk9VUlRIVFJBQ0sgU1lTVEVNUworMDA2MEVCICAgICAoYmFzZSAxNikJCUZPVVJUSFRSQUNLIFNZU1RFTVMKKwkJCQlVTklUIDMgVEhFIFNZQ0FNT1JFUworCQkJCTI3IE1JTEwgUk9BRAorCQkJCU1BUkxPVyAtIFNMNyAxUUIgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTYwLUVDICAgKGhleCkJCUhFUk1BUlkgT1BUTyBFTEVDVFJPTklDUyBJTkMuCiswMDYwRUMgICAgIChiYXNlIDE2KQkJSEVSTUFSWSBPUFRPIEVMRUNUUk9OSUNTIElOQy4KKwkJCQkyMDEtNDA1MCBHUkFWRUxFWSBTVAorCQkJCUJVUk5BQlksIEJDIFY1Qy0zVDYgIAorCQkJCUNBTkFEQQorCiswMC02MC1FRCAgIChoZXgpCQlSSUNBUkRPIFRFU1QgQVVUT01BVElPTiBMVEQuCiswMDYwRUQgICAgIChiYXNlIDE2KQkJUklDQVJETyBURVNUIEFVVE9NQVRJT04gTFRELgorCQkJCUxPV0VTTU9PUiBXSEFSRgorCQkJCVdPUkNFU1RFUiwgV1IxMlJTICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC02MC1FRSAgIChoZXgpCQlBUE9MTE8KKzAwNjBFRSAgICAgKGJhc2UgMTYpCQlBUE9MTE8KKwkJCQkzNjEwIEJJUkNIIFNUUkVFVC0tU1RFICMxMDAKKwkJCQlORVdQT1JUIEJFQUNIIENBIDkyNjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1FRiAgIChoZXgpCQlGTFlURUNIIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDYwRUYgICAgIChiYXNlIDE2KQkJRkxZVEVDSCBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCU5vLjE2OCBTaW5nLWFpIFJkLiwgTmVpaHUgRGlzdHJpY3QKKwkJCQlUQUlQRUkgQ0lUWSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC02MC1GMCAgIChoZXgpCQlKT0hOU09OICYgSk9ITlNPTiBNRURJQ0FMLCBJTkMKKzAwNjBGMCAgICAgKGJhc2UgMTYpCQlKT0hOU09OICYgSk9ITlNPTiBNRURJQ0FMLCBJTkMKKwkJCQk0MTEwIEdFT1JHRSBSRC4KKwkJCQlUQU1QQSBGTCAzMzYzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRjEgICAoaGV4KQkJRVhQIENPTVBVVEVSLCBJTkMuCiswMDYwRjEgICAgIChiYXNlIDE2KQkJRVhQIENPTVBVVEVSLCBJTkMuCisJCQkJMTQxIEVJTEVFTiBXQVkKKwkJCQlTWU9TU0VUIE5ZIDExNzkxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1GMiAgIChoZXgpCQlMQVNFUkdSQVBISUNTLCBJTkMuCiswMDYwRjIgICAgIChiYXNlIDE2KQkJTEFTRVJHUkFQSElDUywgSU5DLgorCQkJCTIwIEFEQQorCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRjMgICAoaGV4KQkJUGVyZm9ybWFuY2UgQW5hbHlzaXMgQnJvYWRiYW5kLCBTcGlyZW50IHBsYworMDA2MEYzICAgICAoYmFzZSAxNikJCVBlcmZvcm1hbmNlIEFuYWx5c2lzIEJyb2FkYmFuZCwgU3BpcmVudCBwbGMKKwkJCQkyNzM0OSBBZ291cmEgUm9hZAorCQkJCUNhbGFiYXNhcyBIaWxscyBDQSA5MTMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRjQgICAoaGV4KQkJQURWQU5DRUQgQ09NUFVURVIgU09MVVRJT05TLCBJbmMuCiswMDYwRjQgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgQ09NUFVURVIgU09MVVRJT05TLCBJbmMuCisJCQkJMTI2NzUgREFOSUVMU09OIENPVVJUCisJCQkJU1VJVEUgIzQwNworCQkJCVBPV0FZIENBIDkyMDY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1GNSAgIChoZXgpCQlJQ09OIFdFU1QsIElOQy4KKzAwNjBGNSAgICAgKGJhc2UgMTYpCQlJQ09OIFdFU1QsIElOQy4KKwkJCQkzMzQyIFNPVVRIIDMwMCBFQVNUCisJCQkJU0FMVCBMQUtFIENJVFkgVVQgODQxMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUY2ICAgKGhleCkJCU5FWFRFU1QgQ09NTVVOSUNBVElPTlMgUFJPRFVDVFMsIElOQy4KKzAwNjBGNiAgICAgKGJhc2UgMTYpCQlORVhURVNUIENPTU1VTklDQVRJT05TIFBST0RVQ1RTLCBJTkMuCisJCQkJVFdPIE1JRCBBTUVSSUNBIFBMQVpBLCBTVEUuNTAwCisJCQkJT0FLQlJPT0sgVEVSUkFDRSBJTCA2MDE4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRjcgICAoaGV4KQkJREFUQUZVU0lPTiBTWVNURU1TCiswMDYwRjcgICAgIChiYXNlIDE2KQkJREFUQUZVU0lPTiBTWVNURU1TCisJCQkJUC5PLiBCT1ggNTgyCisJCQkJU1RFTExFTkJPU0NILCAgNzU5OSAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTYwLUY4ICAgKGhleCkJCUxvcmFuIEludGVybmF0aW9uYWwgVGVjaG5vbG9naWVzIEluYy4KKzAwNjBGOCAgICAgKGJhc2UgMTYpCQlMb3JhbiBJbnRlcm5hdGlvbmFsIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJOTU1IEdSRUVOIFZBTExFWSBDUkVTQ0VOVAorCQkJCVNVSVRFICMxNjUKKwkJCQlPVFRBV0EsIE9OVEFSSU8gSzJDIDNWNCAgCisJCQkJQ0FOQURBCisKKzAwLTYwLUY5ICAgKGhleCkJCURJQU1PTkQgTEFORSBDT01NVU5JQ0FUSU9OUworMDA2MEY5ICAgICAoYmFzZSAxNikJCURJQU1PTkQgTEFORSBDT01NVU5JQ0FUSU9OUworCQkJCTEzMTAgUkVEV09PRCBXQVkgLSBTVEUuCisJCQkJUEVUQUxVTUEgQ0EgOTQ5NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUZBICAgKGhleCkJCUVEVUNBVElPTkFMIFRFQ0hOT0xPR1kgUkVTT1VSQ0VTLCBJTkMuCiswMDYwRkEgICAgIChiYXNlIDE2KQkJRURVQ0FUSU9OQUwgVEVDSE5PTE9HWSBSRVNPVVJDRVMsIElOQy4KKwkJCQkxNzQyIENIVVJDSCBTVFJFRVQKKwkJCQlIT0xCUk9PSyBOWSAxMTc0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRkIgICAoaGV4KQkJUEFDS0VURUVSLCBJTkMuCiswMDYwRkIgICAgIChiYXNlIDE2KQkJUEFDS0VURUVSLCBJTkMuCisJCQkJMTAyMDEgTi4gREUgQU5aQSBCT1VMRVZBUkQKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUZDICAgKGhleCkJCUNPTlNFUlZBVElPTiBUSFJPVUdIIElOTk9WQVRJT04gTFRELgorMDA2MEZDICAgICAoYmFzZSAxNikJCUNPTlNFUlZBVElPTiBUSFJPVUdIIElOTk9WQVRJT04gTFRELgorCQkJCTEwNDAgV0hJUFBMRSBTVC4tIFNURS4gIzIyNQorCQkJCVBSRVNDT1RUIEFaIDg2MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1GRCAgIChoZXgpCQlOZXRJQ3MsIEluYy4KKzAwNjBGRCAgICAgKGJhc2UgMTYpCQlOZXRJQ3MsIEluYy4KKwkJCQk0MiBOQUdPRyBQQVJLCisJCQkJQUNUT04gTUEgMDE3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUZFICAgKGhleCkJCUxZTlggU1lTVEVNIERFVkVMT1BFUlMsIElOQy4KKzAwNjBGRSAgICAgKGJhc2UgMTYpCQlMWU5YIFNZU1RFTSBERVZFTE9QRVJTLCBJTkMuCisJCQkJMTc1TiBORVcgQk9TVE9OIFNUUkVFVAorCQkJCVdPQlVSTiBNQSAwMTgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRkYgICAoaGV4KQkJUXVWaXMsIEluYy4KKzAwNjBGRiAgICAgKGJhc2UgMTYpCQlRdVZpcywgSW5jLgorCQkJCTI5MjEgU1cgV0FOQU1BS0VSIERSSVZFCisJCQkJU1VJVEUgIzEwNworCQkJCVRPUEVLQSBLUyA2NjYxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjQtNDAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDA2NDQwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNkQtRkIgICAoaGV4KQkJVnV0cml4IChVSykgTHRkCiswMDZERkIgICAgIChiYXNlIDE2KQkJVnV0cml4IChVSykgTHRkCisJCQkJVW5pdCAxIFJlZCBMb2RnZSBCdXNpbmVzcyBQYXJrCisJCQkJV2FybGV5cyBMYW5lCisJCQkJV2VzdG9uLXN1cGVyLW1hcmUgTm9ydGggU29tZXJzZXQgQlMyNCA3VE4KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC03MC1CMCAgIChoZXgpCQlNL0EtQ09NIElOQy4gQ09NUEFOSUVTCiswMDcwQjAgICAgIChiYXNlIDE2KQkJTS9BLUNPTSBJTkMuIENPTVBBTklFUworCQkJCTExNzE3IEVYUExPUkFUSU9OIExBTkUKKwkJCQlHRVJNQU5UT1dOIE1EIDIwNzY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC03MC1CMyAgIChoZXgpCQlEQVRBIFJFQ0FMTCBMVEQuCiswMDcwQjMgICAgIChiYXNlIDE2KQkJREFUQSBSRUNBTEwgTFRELgorCQkJCVNPTkRFUyBQTEFDRQorCQkJCURPUktJTkcgU1VSUkVZIFJINCAzRUYKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTcyLTk4ICAgKGhleCkJCUtBT04gTUVESUEgQ28uLCBMdGQuCiswMDcyOTggICAgIChiYXNlIDE2KQkJS0FPTiBNRURJQSBDby4sIEx0ZC4KKwkJCQlLYW9ubWVkaWEgQnVpbGRpbmcsIDUxMy00CisJCQkJWWF0YXAtRG9uZywgQnVuZGFuZy1HdQorCQkJCVN1bmduYW0tQ2l0eSBLeW9uZ2dpLURvIDQ2My04MzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNzgtOUUgICAoaGV4KQkJU0FHRU1DT00KKzAwNzg5RSAgICAgKGJhc2UgMTYpCQlTQUdFTUNPTQorCQkJCTI1MCByb3V0ZSBkZSBsJ0VtcGVyZXVyCisJCQkJUlVFSUwgTUFMTUFJU09OICA5Mjg0OAorCQkJCUZSQU5DRQorCiswMC03Ri0yOCAgIChoZXgpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworMDA3RjI4ICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0wMCAgIChoZXgpCQlNVUxUSVRFQ0ggU1lTVEVNUywgSU5DLgorMDA4MDAwICAgICAoYmFzZSAxNikJCU1VTFRJVEVDSCBTWVNURU1TLCBJTkMuCisJCQkJMjIwNSBXT09EQUxFIERSSVZFCisJCQkJTU9VTkRTIFZJRVcgTU4gNTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTAxICAgKGhleCkJCVBFUklQSE9OSUNTIENPUlBPUkFUSU9OCiswMDgwMDEgICAgIChiYXNlIDE2KQkJUEVSSVBIT05JQ1MgQ09SUE9SQVRJT04KKwkJCQk0MDAwIFZFVEVSQU5TIE1FTU9SSUFMIEhJR0hXQVkKKwkJCQlCT0hFTUlBIE5FVyBZT1JLIDExNzE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0wMiAgIChoZXgpCQlTQVRFTENPTSAoVUspIExURAorMDA4MDAyICAgICAoYmFzZSAxNikJCVNBVEVMQ09NIChVSykgTFRECisJCQkJVEVDSE5PTE9HWSBUUkFOU0ZFUiBDRU5UUkUKKwkJCQlTSUxXT09EIFBBUkssIEJVQ0tIVVJTVCBST0FEIEFTQ09ULCBCRVJLCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTAzICAgKGhleCkJCUhZVEVDIEVMRUNUUk9OSUNTIExURC4KKzAwODAwMyAgICAgKGJhc2UgMTYpCQlIWVRFQyBFTEVDVFJPTklDUyBMVEQuCisJCQkJNSBDUkFET0NLIFJPQUQKKwkJCQlSRUFESU5HIEJFUktTIFJHNSA0RFgKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtMDQgICAoaGV4KQkJQU5UTE9XIENPTU1VTklDQVRJT05TLCBMVEQuCiswMDgwMDQgICAgIChiYXNlIDE2KQkJQU5UTE9XIENPTU1VTklDQVRJT05TLCBMVEQuCisJCQkJNCBDT0xUSFJPUCBXQVkKKwkJCQlUSEFUQ0hBTSBSRzE5IDRMVworCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC0wNSAgIChoZXgpCQlDQUNUVVMgQ09NUFVURVIgSU5DLgorMDA4MDA1ICAgICAoYmFzZSAxNikJCUNBQ1RVUyBDT01QVVRFUiBJTkMuCisJCQkJMTEyMCBNRVRST0NSRVNUIERSSVZFCisJCQkJU1VJVEUgMTAzCisJCQkJQ0FSUk9MTFRPTiBUWCA3NTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMDYgICAoaGV4KQkJQ09NUFVBREQgQ09SUE9SQVRJT04KKzAwODAwNiAgICAgKGJhc2UgMTYpCQlDT01QVUFERCBDT1JQT1JBVElPTgorCQkJCUVOR0lORUVSSU5HCisJCQkJMTIzMDMgVEVDSE5PTE9HWSBCTFZELgorCQkJCUFVU1RJTiBUWCA3ODcyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMDcgICAoaGV4KQkJRExPRyBOQy1TWVNURU1FCiswMDgwMDcgICAgIChiYXNlIDE2KQkJRExPRyBOQy1TWVNURU1FCisJCQkJV0VSTkVSLVZPTi1TSUVNRU5TIFNUUkFTU0UgMTMKKwkJCQlELTgwMzcsIE9MQ0hJTkcKKwkJCQlHRVJNQU5ZCisKKzAwLTgwLTA4ICAgKGhleCkJCURZTkFURUNIIENPTVBVVEVSIFNZU1RFTVMKKzAwODAwOCAgICAgKGJhc2UgMTYpCQlEWU5BVEVDSCBDT01QVVRFUiBTWVNURU1TCisJCQkJMjgwIEJFUk5BUkRPIEFWRU5VRQorCQkJCVAuTy4gQk9YIDc0MDAKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDM5LTc0MDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTA5ICAgKGhleCkJCUpVUElURVIgU1lTVEVNUywgSU5DLgorMDA4MDA5ICAgICAoYmFzZSAxNikJCUpVUElURVIgU1lTVEVNUywgSU5DLgorCQkJCTMwNzMgVEVBR0FSREVOIFNUUkVFVAorCQkJCVNBTiBMRUFORFJPIENBIDk0NTc3LTU3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTBBICAgKGhleCkJCUpBUEFOIENPTVBVVEVSIENPUlAuCiswMDgwMEEgICAgIChiYXNlIDE2KQkJSkFQQU4gQ09NUFVURVIgQ09SUC4KKwkJCQlMLiBLLiBCTERHLiBISUdBU0hJIEtBTkRBCisJCQkJMi02LTkgQ0hJWU9EQS1LVSBUT0tZTyAxMDEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTBCICAgKGhleCkJCUNTSyBDT1JQT1JBVElPTgorMDA4MDBCICAgICAoYmFzZSAxNikJCUNTSyBDT1JQT1JBVElPTgorCQkJCTE4RiBNQVRTVVNISVRBIElNUCBCTERHLAorCQkJCTEtMy03IFNISVJPTUkgQ0hVTy1LVSBPU0FLQQorCQkJCUpBUEFOIDU0MAorCQkJCUpBUEFOCisKKzAwLTgwLTBDICAgKGhleCkJCVZJREVDT00gTElNSVRFRAorMDA4MDBDICAgICAoYmFzZSAxNikJCVZJREVDT00gTElNSVRFRAorCQkJCU5FV1RPV04gRVNUQVRFCisJCQkJSEVOTEVZLU9OLVRIQU1FUyBPWE9OICBSRzkgMUhHCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTBEICAgKGhleCkJCVZPU1NXSU5LRUwgRi5VLgorMDA4MDBEICAgICAoYmFzZSAxNikJCVZPU1NXSU5LRUwgRi5VLgorCQkJCUFNIEpPU1RFTkhPRiAxNQorCQkJCUQtNDEzMCBNT0VSUworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTgwLTBFICAgKGhleCkJCUFUTEFOVElYIENPUlBPUkFUSU9OCiswMDgwMEUgICAgIChiYXNlIDE2KQkJQVRMQU5USVggQ09SUE9SQVRJT04KKwkJCQk1NDAxIE5XIEJST0tFTlNPVU5EIEJMVkQuCisJCQkJQk9DQSBSQVRPTiBGTCAzMzQzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMEYgICAoaGV4KQkJU1RBTkRBUkQgTUlDUk9TWVNURU1TCiswMDgwMEYgICAgIChiYXNlIDE2KQkJU1RBTkRBUkQgTUlDUk9TWVNURU1TCisJCQkJMzAwIEtFTk5FRFkgRFJJVkUKKwkJCQlIQVVQUEFVR0UgTlkgMTE3ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTEwICAgKGhleCkJCUNPTU1PRE9SRSBJTlRFUk5BVElPTkFMCiswMDgwMTAgICAgIChiYXNlIDE2KQkJQ09NTU9ET1JFIElOVEVSTkFUSU9OQUwKKwkJCQkxMjAwIFdJTFNPTiBEUklWRQorCQkJCVdFU1QgQ0hFU1RFUiBQQSAxOTM4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMTEgICAoaGV4KQkJRElHSVRBTCBTWVNURU1TIElOVCdMLiBJTkMuCiswMDgwMTEgICAgIChiYXNlIDE2KQkJRElHSVRBTCBTWVNURU1TIElOVCdMLiBJTkMuCisJCQkJNzY1OSAxNzhUSCBQTC4gTkUKKwkJCQlQLk8uIEJPWCA5MDgKKwkJCQlSRURNT05EIFdBIDk4MDczLTA5MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTEyICAgKGhleCkJCUlOVEVHUkFURUQgTUVBU1VSRU1FTlQgU1lTVEVNUworMDA4MDEyICAgICAoYmFzZSAxNikJCUlOVEVHUkFURUQgTUVBU1VSRU1FTlQgU1lTVEVNUworCQkJCTk1MjUgU1cgR0VNSU5JIERSSVZFCisJCQkJQkVBVkVSVE9OIE9SIDk3MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0xMyAgIChoZXgpCQlUSE9NQVMtQ09OUkFEIENPUlBPUkFUSU9OCiswMDgwMTMgICAgIChiYXNlIDE2KQkJVEhPTUFTLUNPTlJBRCBDT1JQT1JBVElPTgorCQkJCTE5MDgtUiBLUkFNRVIgTEFORQorCQkJCUFVU1RJTiBUWCA3ODc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMTQgICAoaGV4KQkJRVNQUklUIFNZU1RFTVMKKzAwODAxNCAgICAgKGJhc2UgMTYpCQlFU1BSSVQgU1lTVEVNUworCQkJCTE0RiwgTk8uIDEsIFNFQy4gNAorCQkJCU5BTiBLSU5HIEVBU1QgUk9BRCAxMDU2OSBUQUlQRUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtODAtMTUgICAoaGV4KQkJU0VJS08gU1lTVEVNUywgSU5DLgorMDA4MDE1ICAgICAoYmFzZSAxNikJCVNFSUtPIFNZU1RFTVMsIElOQy4KKwkJCQlTWVNURU1TIERFVkVMT1BNRU5UIERJVklTSU9OCisJCQkJNS00IEhBQ0NIT0JPUkkgNC1DSE9VTUUgQ0hVVU9VLUtVIFRPS09ZTworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtMTYgICAoaGV4KQkJV0FOREVMIEFORCBHT0xURVJNQU5OCiswMDgwMTYgICAgIChiYXNlIDE2KQkJV0FOREVMIEFORCBHT0xURVJNQU5OCisJCQkJMTAzMCBTV0FCSUEgQ09VUlQKKwkJCQlSRVNFQVJDSCBUUklBTkdMRSBQQVJLCisJCQkJTkMgMjc3MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTE3ICAgKGhleCkJCVBGVSBMSU1JVEVECiswMDgwMTcgICAgIChiYXNlIDE2KQkJUEZVIExJTUlURUQKKwkJCQlORVRXT1JLIFNFQy4KKwkJCQk2NTgtMSwgVFNVUlVNQSBNQUNISURBLVNISSwgVE9LWU8gMTk0LTAwCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC0xOCAgIChoZXgpCQlLT0JFIFNURUVMLCBMVEQuCiswMDgwMTggICAgIChiYXNlIDE2KQkJS09CRSBTVEVFTCwgTFRELgorCQkJCUtPQkUgSVNVWlUgUkVDUlVJVCBCTERHLgorCQkJCTdUSCBGTE9PUiAyLTIsIDQtQ0hPTUUsIEtVTU9JLURPUkksIENIVU8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTE5ICAgKGhleCkJCURBWU5BIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDgwMTkgICAgIChiYXNlIDE2KQkJREFZTkEgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk1MCBTT1VUSCBNQUlOIFNUUkVFVC0jNTMwCisJCQkJU0FMVCBMQUtFIENJVFkgVVRBSCA4NDE0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMUEgICAoaGV4KQkJQkVMTCBBVExBTlRJQworMDA4MDFBICAgICAoYmFzZSAxNikJCUJFTEwgQVRMQU5USUMKKwkJCQlOOTIgVzE0NjEyICBBTlRIT05ZIEFWRU5VRQorCQkJCU1FTk9NT05FRSBGQUxMUyBXSSA1MzA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMUIgICAoaGV4KQkJS09ESUFLIFRFQ0hOT0xPR1kKKzAwODAxQiAgICAgKGJhc2UgMTYpCQlLT0RJQUsgVEVDSE5PTE9HWQorCQkJCTIzNDAgSEFSUklTIFdBWQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0xQyAgIChoZXgpCQlORVdQT1JUIFNZU1RFTVMgU09MVVRJT05TCiswMDgwMUMgICAgIChiYXNlIDE2KQkJTkVXUE9SVCBTWVNURU1TIFNPTFVUSU9OUworCQkJCTQwMTkgV0VTVEVSTFkgQVZFTlVFCisJCQkJU1VJVEUgMTAzCisJCQkJTkVXUE9SVCBCRUFDSCBDQSA5MjY2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMUQgICAoaGV4KQkJSU5URUdSQVRFRCBJTkZFUkVOQ0UgTUFDSElORVMKKzAwODAxRCAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIElORkVSRU5DRSBNQUNISU5FUworCQkJCTE0NjggRUFTVCBLQVRFTExBCisJCQkJQU5BSEVJTSBDQSA5MjgwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMUUgICAoaGV4KQkJWElORVRST04sIElOQy4KKzAwODAxRSAgICAgKGJhc2UgMTYpCQlYSU5FVFJPTiwgSU5DLgorCQkJCTIzMzAgQi4gV0FMU0ggQVZFLgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0xRiAgIChoZXgpCQlLUlVQUCBBVExBUyBFTEVDVFJPTklLIEdNQkgKKzAwODAxRiAgICAgKGJhc2UgMTYpCQlLUlVQUCBBVExBUyBFTEVDVFJPTklLIEdNQkgKKwkJCQlQLk8uIEJPWCA0NDg1NDUKKwkJCQlELTI4MDAgQlJFTUVOIDQ0CisJCQkJR0VSTUFOWQorCiswMC04MC0yMCAgIChoZXgpCQlORVRXT1JLIFBST0RVQ1RTCiswMDgwMjAgICAgIChiYXNlIDE2KQkJTkVUV09SSyBQUk9EVUNUUworCQkJCURJVklTSU9OIE9GIEFORFJFVyBDT1JQT1JBVElPTgorCQkJCTI3NzEgUExBWkEgREVMIEFNTzMKKwkJCQlUT1JSQU5DRSBDQSA5MDUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMjEgICAoaGV4KQkJQWxjYXRlbCBDYW5hZGEgSW5jLgorMDA4MDIxICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgQ2FuYWRhIEluYy4KKwkJCQkzNDkgVGVycnkgRm94IERyaXZlCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLIDJWNgorCQkJCUNBTkFEQQorCiswMC04MC0yMiAgIChoZXgpCQlTQ0FOLU9QVElDUworMDA4MDIyICAgICAoYmFzZSAxNikJCVNDQU4tT1BUSUNTCisJCQkJMjAxIFRFQ0hOT0xPR1kgRFJJVkUKKwkJCQlJUlZJTkUgQ0EgOTI3MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTIzICAgKGhleCkJCUlOVEVHUkFURUQgQlVTSU5FU1MgTkVUV09SS1MKKzAwODAyMyAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIEJVU0lORVNTIE5FVFdPUktTCisJCQkJMUJOIFRIRSBTWVNURU1TIENFTlRSRQorCQkJCTE0LCBCUklER0VHQVRFIEJVU0lORVNTIFBBUkssIEdBVEVIT1VTRQorCQkJCUJVQ0tTIEhQMTkgM1hOIC0gRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTI0ICAgKGhleCkJCUtBTFBBTkEsIElOQy4KKzAwODAyNCAgICAgKGJhc2UgMTYpCQlLQUxQQU5BLCBJTkMuCisJCQkJMTE1NCBFQVNUIEFSUVVFUyBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTI1ICAgKGhleCkJCVNUT0xMTUFOTiBHTUJICiswMDgwMjUgICAgIChiYXNlIDE2KQkJU1RPTExNQU5OIEdNQkgKKwkJCQlNQVgtQlJBVUVSLUFMTEVFIDgxCisJCQkJRC0yMDAwIEhBTUJVUkcgNTAKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC04MC0yNiAgIChoZXgpCQlORVRXT1JLIFBST0RVQ1RTIENPUlBPUkFUSU9OCiswMDgwMjYgICAgIChiYXNlIDE2KQkJTkVUV09SSyBQUk9EVUNUUyBDT1JQT1JBVElPTgorCQkJCTE0NDAgV0VTVCBDT0xPUkFETyBCTFZELgorCQkJCVBBU0FERU5BIENBIDkxMTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0yNyAgIChoZXgpCQlBREFQVElWRSBTWVNURU1TLCBJTkMuCiswMDgwMjcgICAgIChiYXNlIDE2KQkJQURBUFRJVkUgU1lTVEVNUywgSU5DLgorCQkJCTE0MDAgTi5XLiBDT01QVE9OIERSSVZFCisJCQkJU1VJVEUgMzQwCisJCQkJQkVBVkVSVE9OIE9SIDk3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0yOCAgIChoZXgpCQlUUkFEUE9TVCAoSEspIExURAorMDA4MDI4ICAgICAoYmFzZSAxNikJCVRSQURQT1NUIChISykgTFRECisJCQkJNS9GLCBTVEFSIENFTlRSRQorCQkJCTQ0My00NTEgQ0FTVExFIFBFQUsgUk9BRCBLV0FJIENIVU5HLCBOLlQKKwkJCQlIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtODAtMjkgICAoaGV4KQkJRUFHTEUgVEVDSE5PTE9HWSwgSU5DLgorMDA4MDI5ICAgICAoYmFzZSAxNikJCUVBR0xFIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk2ODAwIE9SQU5HRVRIT1JQRSBBVkUuVU5JVAorCQkJCUJVRU5BIFBBUksgQ0EgOTA2MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTJBICAgKGhleCkJCVRFU1QgU1lTVEVNUyAmIFNJTVVMQVRJT05TIElOQworMDA4MDJBICAgICAoYmFzZSAxNikJCVRFU1QgU1lTVEVNUyAmIFNJTVVMQVRJT05TIElOQworCQkJCTMyNDI5IElORFVTVFJJQUwgRFJJVkUKKwkJCQlNQURJU09OIEhFSUdIVFMgTUkgNDgwNzEtMTUyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMkIgICAoaGV4KQkJSU5URUdSQVRFRCBNQVJLRVRJTkcgQ08KKzAwODAyQiAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIE1BUktFVElORyBDTworCQkJCTEzNjAgQk9SREVBVVggRFJJVkUKKwkJCQlCTERHLiAjNAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMkMgICAoaGV4KQkJVEhFIFNBR0UgR1JPVVAgUExDCiswMDgwMkMgICAgIChiYXNlIDE2KQkJVEhFIFNBR0UgR1JPVVAgUExDCisJCQkJU0FHRSBIT1VTRSwgQkVOVE9OIFBBUksgUk9BRAorCQkJCU5FV0NBU1RMRSBVUE9OIFRZTkUgTkU3IDdMWgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtMkQgICAoaGV4KQkJWFlMT0dJQ1MgSU5DCiswMDgwMkQgICAgIChiYXNlIDE2KQkJWFlMT0dJQ1MgSU5DCisJCQkJNTMgVEhJUkQgQVZFTlVFCisJCQkJQlVSTElOR1RPTiBNQSAwMTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMkUgICAoaGV4KQkJQ0FTVExFIFJPQ0sgQ09NUFVUSU5HCiswMDgwMkUgICAgIChiYXNlIDE2KQkJQ0FTVExFIFJPQ0sgQ09NUFVUSU5HCisJCQkJMjA4MzcgQk9ZQ0UgTEFORQorCQkJCVNBUkFUT0dBIENBIDk1MDcwLTQ4MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTJGICAgKGhleCkJCU5BVElPTkFMIElOU1RSVU1FTlRTIENPUlAuCiswMDgwMkYgICAgIChiYXNlIDE2KQkJTkFUSU9OQUwgSU5TVFJVTUVOVFMgQ09SUC4KKwkJCQkxMTUwMCBOb3J0aCBNb3BhYyBFeHByZXNzd2F5CisJCQkJQVVTVElOIFRYIDc4NzU5LTM1MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTMwICAgKGhleCkJCU5FWFVTIEVMRUNUUk9OSUNTCiswMDgwMzAgICAgIChiYXNlIDE2KQkJTkVYVVMgRUxFQ1RST05JQ1MKKwkJCQkzOSBTUFJJTkdGSUVMRCBST0FECisJCQkJQ0FNQlJJREdFIENCNCAxQUQKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTMxICAgKGhleCkJCUJBU1lTLCBDT1JQLgorMDA4MDMxICAgICAoYmFzZSAxNikJCUJBU1lTLCBDT1JQLgorCQkJCTUwMSBNQUNBUkEgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0zMiAgIChoZXgpCQlBQ0NFU1MgQ08uLCBMVEQuCiswMDgwMzIgICAgIChiYXNlIDE2KQkJQUNDRVNTIENPLiwgTFRELgorCQkJCUhJRUktS1VEQU4gQkxERy4gQjEKKwkJCQkzLTgtMTEgS1VEQU4tTUlOQU1JLCBDSElZT0RBLUtVLCBUT0tZTyAxCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC0zMyAgIChoZXgpCQlFTVMgQXZpYXRpb24sIEluYy4KKzAwODAzMyAgICAgKGJhc2UgMTYpCQlFTVMgQXZpYXRpb24sIEluYy4KKwkJCQkxMjEgV0hJVFRFTkRBTEUgRFJJVkUKKwkJCQlTdWl0ZSBBCisJCQkJTU9PUkVTVE9XTiBOSiAwODA1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMzQgICAoaGV4KQkJU01UIEdPVVBJTAorMDA4MDM0ICAgICAoYmFzZSAxNikJCVNNVCBHT1VQSUwKKwkJCQkzIFJVRSBERVMgQVJDSElWRVMKKwkJCQk5NDAwMCBDUkVURUlMCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTgwLTM1ICAgKGhleCkJCVRFQ0hOT0xPR1kgV09SS1MsIElOQy4KKzAwODAzNSAgICAgKGJhc2UgMTYpCQlURUNITk9MT0dZIFdPUktTLCBJTkMuCisJCQkJNDAzMCBCUkFLRVIgTEFORSAjMzUwCisJCQkJQVVTVElOIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0zNiAgIChoZXgpCQlSRUZMRVggTUFOVUZBQ1RVUklORyBTWVNURU1TCiswMDgwMzYgICAgIChiYXNlIDE2KQkJUkVGTEVYIE1BTlVGQUNUVVJJTkcgU1lTVEVNUworCQkJCVVOSVQgRCwgVEhFIEZMRU1JTkcgQ0VOVFJFLAorCQkJCUZMRU1JTkcgV0FZLCBDUkFXTEVZIFdFU1QgU1VTU0VYIFJIMTAgMk4KKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtMzcgICAoaGV4KQkJRXJpY3Nzb24gR3JvdXAKKzAwODAzNyAgICAgKGJhc2UgMTYpCQlFcmljc3NvbiBHcm91cAorCQkJCVRlbGVmb25ha3RpZWJvbGFnZXQKKwkJCQlMTSBFcmljc3NvbiBDb3JwLiAxMjYgMjUgU1RPQ0tIT0xNCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLTgwLTM4ICAgKGhleCkJCURBVEEgUkVTRUFSQ0ggJiBBUFBMSUNBVElPTlMKKzAwODAzOCAgICAgKGJhc2UgMTYpCQlEQVRBIFJFU0VBUkNIICYgQVBQTElDQVRJT05TCisJCQkJOTA0MSBFWEVDVVRJVkUgUEFSSyBEUi4KKwkJCQlTVUlURSAyMDAKKwkJCQlLTk9YVklMTEUgVE4gMzc5MjMtNDYwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMzkgICAoaGV4KQkJQUxDQVRFTCBTVEMgQVVTVFJBTElBCiswMDgwMzkgICAgIChiYXNlIDE2KQkJQUxDQVRFTCBTVEMgQVVTVFJBTElBCisJCQkJMjUyLTI4MCBCT1RBTlkgUk9BRAorCQkJCUFMRVhBTkRSSUEsIE5TVyAyMDE1CisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLTgwLTNBICAgKGhleCkJCVZBUklUWVBFUiwgSU5DLgorMDA4MDNBICAgICAoYmFzZSAxNikJCVZBUklUWVBFUiwgSU5DLgorCQkJCTkwMCBNSURETEVTRVggVFVSTlBJS0UKKwkJCQlCSUxMRVJJQ0EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTNCICAgKGhleCkJCUFQVCBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDA4MDNCICAgICAoYmFzZSAxNikJCUFQVCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTk2MDcgRFIuIFBFUlJZIFJPQUQKKwkJCQlJSkFNU1ZJTExFIE1EIDIxNzU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0zQyAgIChoZXgpCQlUVlMgRUxFQ1RST05JQ1MgTFRECiswMDgwM0MgICAgIChiYXNlIDE2KQkJVFZTIEVMRUNUUk9OSUNTIExURAorCQkJCTQ0LCBNSUxMRVIgUk9BRAorCQkJCUJBTkdBTE9SRSA1NjAgMDUyCisJCQkJSU5ESUEKKwkJCQlJTkRJQQorCiswMC04MC0zRCAgIChoZXgpCQlTVVJJR0lLRU4gQ08uLCAgTFRELgorMDA4MDNEICAgICAoYmFzZSAxNikJCVNVUklHSUtFTiBDTy4sICBMVEQuCisJCQkJWU9VVEggQkxERywgNC0xLTkgU0hJTkpVS1UKKwkJCQlTSElOSlVLVS1LVSwgVE9LWU8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTNFICAgKGhleCkJCVNZTkVSTkVUSUNTCiswMDgwM0UgICAgIChiYXNlIDE2KQkJU1lORVJORVRJQ1MKKwkJCQk4NSBSQU5HRVdBWSBST0FECisJCQkJTk9SVEggQklMTEVSSUNBIE1BIDAxODYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0zRiAgIChoZXgpCQlUQVRVTkcgQ09NUEFOWQorMDA4MDNGICAgICAoYmFzZSAxNikJCVRBVFVORyBDT01QQU5ZCisJCQkJMjIgQ0hVTkdTSEFORyBOLiBSRC4gM1JEIFNFQy4KKwkJCQlUQUlQRUkgVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtODAtNDAgICAoaGV4KQkJSk9ITiBGTFVLRSBNQU5VRkFDVFVSSU5HIENPLgorMDA4MDQwICAgICAoYmFzZSAxNikJCUpPSE4gRkxVS0UgTUFOVUZBQ1RVUklORyBDTy4KKwkJCQlQLk8uIEJPWCBDOTA5MC1NL1MgMjQ0RgorCQkJCUVWRVJFVFQgV0EgOTgyMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTQxICAgKGhleCkJCVZFQiBLT01CSU5BVCBST0JPVFJPTgorMDA4MDQxICAgICAoYmFzZSAxNikJCVZFQiBLT01CSU5BVCBST0JPVFJPTgorCQkJCUdSVU5BRVIgU1RSQUJFIDIsIERSRVNERU4gODAxMAorCQkJCUdEUiBFQVNUIEdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTgwLTQyICAgKGhleCkJCUVtZXJzb24gTmV0d29yayBQb3dlcgorMDA4MDQyICAgICAoYmFzZSAxNikJCUVtZXJzb24gTmV0d29yayBQb3dlcgorCQkJCTI5MDAgUy4gRGlhYmxvIFdheQorCQkJCVRlbXBlIEFaIDg1MjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC00MyAgIChoZXgpCQlORVRXT1JMRCwgSU5DLgorMDA4MDQzICAgICAoYmFzZSAxNikJCU5FVFdPUkxELCBJTkMuCisJCQkJS0FOREEgMyBBTUVSRVggQkxERy4KKwkJCQkzLTEwIEtBTkRBSklOQk9DSE8gQ0hJWU9EQS1LVSAgICBUT0tZTyAxCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC00NCAgIChoZXgpCQlTWVNURUNIIENPTVBVVEVSIENPUlAuCiswMDgwNDQgICAgIChiYXNlIDE2KQkJU1lTVEVDSCBDT01QVVRFUiBDT1JQLgorCQkJCTY0NjUgTkFOQ1kgUklER0UgRFJJVkUKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTQ1ICAgKGhleCkJCU1BVFNVU0hJVEEgRUxFQ1RSSUMgSU5ELiBDTworMDA4MDQ1ICAgICAoYmFzZSAxNikJCU1BVFNVU0hJVEEgRUxFQ1RSSUMgSU5ELiBDTworCQkJCUNPTVBVVEVSIERJVklTSU9OCisJCQkJMTAwNiwgS0FET01BLAorCQkJCU9TQUtBIDU3MSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTQ2ICAgKGhleCkJCVVOSVZFUlNJVFkgT0YgVE9ST05UTworMDA4MDQ2ICAgICAoYmFzZSAxNikJCVVOSVZFUlNJVFkgT0YgVE9ST05UTworCQkJCURFUFQuIE9GIEVMRUNUUklDQUwgRU5HSU4nSU5HCisJCQkJMTAgS0lOR1MgQ09MTEVHRSBSRC4gVE9ST05UTywgT05UQVJJTyBNNQorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC04MC00NyAgIChoZXgpCQlJTi1ORVQgQ09SUC4KKzAwODA0NyAgICAgKGJhc2UgMTYpCQlJTi1ORVQgQ09SUC4KKwkJCQkxNjcyMCBXRVNUIEJFUk5BUkRPIERSSVZFCisJCQkJU0FOIERJRUdPIENBIDkyMTI3LTE5MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTQ4ICAgKGhleCkJCUNPTVBFWCBJTkNPUlBPUkFURUQKKzAwODA0OCAgICAgKGJhc2UgMTYpCQlDT01QRVggSU5DT1JQT1JBVEVECisJCQkJNDA1NSBFQVNUIExBIFBBTE1BCisJCQkJVU5JVAorCQkJCUFOQUhFSU0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTQ5ICAgKGhleCkJCU5JU1NJTiBFTEVDVFJJQyBDTy4sIExURC4KKzAwODA0OSAgICAgKGJhc2UgMTYpCQlOSVNTSU4gRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJNDcsIFVNRVpVIC0gVEFLQVNFIC0gQ0hPCisJCQkJVUtZTy1LVSwgS1lPVE8sIDYxNQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtNEEgICAoaGV4KQkJUFJPLUxPRworMDA4MDRBICAgICAoYmFzZSAxNikJCVBSTy1MT0cKKwkJCQkxMiBVUFBFUiBSQUdTREFMRSBEUklWRQorCQkJCU1PTlRFUkVZIENBIDkzOTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC00QiAgIChoZXgpCQlFQUdMRSBURUNITk9MT0dJRVMgUFRZLkxURC4KKzAwODA0QiAgICAgKGJhc2UgMTYpCQlFQUdMRSBURUNITk9MT0dJRVMgUFRZLkxURC4KKwkJCQk3MCBLRVlTIFJPQUQKKwkJCQlNT09SQUJCSU4gIFZJQy4gMzE4OQorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC04MC00QyAgIChoZXgpCQlDT05URUMgQ08uLCBMVEQuCiswMDgwNEMgICAgIChiYXNlIDE2KQkJQ09OVEVDIENPLiwgTFRELgorCQkJCTMtOS0zMSwgSElNRVNBVE8KKwkJCQlOSVNISVlPRE9HQVdBLUtVIE9TQUtBLCA1NTUKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTREICAgKGhleCkJCUNZQ0xPTkUgTUlDUk9TWVNURU1TLCBJTkMuCiswMDgwNEQgICAgIChiYXNlIDE2KQkJQ1lDTE9ORSBNSUNST1NZU1RFTVMsIElOQy4KKwkJCQkyNSBTQ0lFTkNFIFBBUksKKwkJCQlORVcgSEFWRU4gQ1QgMDY1MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTRFICAgKGhleCkJCUFQRVggQ09NUFVURVIgQ09NUEFOWQorMDA4MDRFICAgICAoYmFzZSAxNikJCUFQRVggQ09NUFVURVIgQ09NUEFOWQorCQkJCTQ1MDAgMTUwVEggQVZFTlVFLCBORQorCQkJCVJFRE1PTkQgV0EgOTgwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTRGICAgKGhleCkJCURBSUtJTiBJTkRVU1RSSUVTLCBMVEQuCiswMDgwNEYgICAgIChiYXNlIDE2KQkJREFJS0lOIElORFVTVFJJRVMsIExURC4KKwkJCQlFTEVDVFJPTklDUyBESVZJU0lPTgorCQkJCVNISUdBIFBMQU5UIDEwMDAtMiBPSFRBTkkgT0tBTU9UTy1DSE8sIEsKKwkJCQlKQVBBTiA1MjUKKwkJCQlKQVBBTgorCiswMC04MC01MCAgIChoZXgpCQlaSUFURUNIIENPUlBPUkFUSU9OCiswMDgwNTAgICAgIChiYXNlIDE2KQkJWklBVEVDSCBDT1JQT1JBVElPTgorCQkJCTM0MzMgUk9CRVJUTyBDT1VSVAorCQkJCVNBTiBMVUlTIE9CSVNQTyBDQSA5MzQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNTEgICAoaGV4KQkJRklCRVJNVVgKKzAwODA1MSAgICAgKGJhc2UgMTYpCQlGSUJFUk1VWAorCQkJCTkzMTAgVE9QQU5HQSBDQU5ZT04gQkxWRC4KKwkJCQlDSEFUU1dPUlRIIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC01MiAgIChoZXgpCQlURUNITklDQUxMWSBFTElURSBDT05DRVBUUworMDA4MDUyICAgICAoYmFzZSAxNikJCVRFQ0hOSUNBTExZIEVMSVRFIENPTkNFUFRTCisJCQkJMjYxNSBQQUNJRklDIENPQVNUIEhJR0hXQVkKKwkJCQlIRVJNT1NBIEJFQUNIIENBIDkwMjUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC01MyAgIChoZXgpCQlJTlRFTExJQ09NLCBJTkMuCiswMDgwNTMgICAgIChiYXNlIDE2KQkJSU5URUxMSUNPTSwgSU5DLgorCQkJCTIwNDE1IE5PUkRIT0ZGIFNUUkVFVAorCQkJCUNIQVRTV09SVEggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTU0ICAgKGhleCkJCUZST05USUVSIFRFQ0hOT0xPR0lFUyBDT1JQLgorMDA4MDU0ICAgICAoYmFzZSAxNikJCUZST05USUVSIFRFQ0hOT0xPR0lFUyBDT1JQLgorCQkJCTEwMjAxIE5PLiBQVC4gV0FTSElOR1RPTiBST0FECisJCQkJTUVRVU9OIFdJIDUzMDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC01NSAgIChoZXgpCQlGRVJNSUxBQgorMDA4MDU1ICAgICAoYmFzZSAxNikJCUZFUk1JTEFCCisJCQkJUC5PLiBCT1ggNTAwLCBNUy0yMzQKKwkJCQlCQVRBVklBIElMIDYwNTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC01NiAgIChoZXgpCQlTUEhJTlggRUxFS1RST05JSyBHTUJICiswMDgwNTYgICAgIChiYXNlIDE2KQkJU1BISU5YIEVMRUtUUk9OSUsgR01CSAorCQkJCVdBTERNQVRURU5TVFIsIDEzCisJCQkJNzgwOCBXQUxES0lSQ0ggMyBSQVBQRU5FQ0tTVFJBQkUgMQorCQkJCVdFU1QgR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtODAtNTcgICAoaGV4KQkJQURTT0ZULCBMVEQuCiswMDgwNTcgICAgIChiYXNlIDE2KQkJQURTT0ZULCBMVEQuCisJCQkJSW0gQmF1bWdhcnRlbiA2CisJCQkJTU9ITElOIENILTQzMTMgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtODAtNTggICAoaGV4KQkJUFJJTlRFUiBTWVNURU1TIENPUlBPUkFUSU9OCiswMDgwNTggICAgIChiYXNlIDE2KQkJUFJJTlRFUiBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJMjA3IFBBUlJZIFBBUktXQVkKKwkJCQlHQUlUSEVSU0JVUkcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTU5ICAgKGhleCkJCVNUQU5MRVkgRUxFQ1RSSUMgQ08uLCBMVEQKKzAwODA1OSAgICAgKGJhc2UgMTYpCQlTVEFOTEVZIEVMRUNUUklDIENPLiwgTFRECisJCQkJUiZEIExBQk9SQVRPUlkKKwkJCQkxLTMtMSBFREEtTklTSEksIE1JRE9SSS1LVSwgWU9LT0hBTUEtU0hJCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC01QSAgIChoZXgpCQlUVUxJUCBDT01QVVRFUlMgSU5URVJOQVQnTCBCLlYKKzAwODA1QSAgICAgKGJhc2UgMTYpCQlUVUxJUCBDT01QVVRFUlMgSU5URVJOQVQnTCBCLlYKKwkJCQlQLk8uIEJPWCAzMzMzCisJCQkJNTIwMyBESCAnUy1IRVJUT0dFTkJPU0NICisJCQkJVEhFIE5FVEhFUkxBTkRTCisJCQkJTkVUSEVSTEFORFMKKworMDAtODAtNUIgICAoaGV4KQkJQ09ORE9SIFNZU1RFTVMsIElOQy4KKzAwODA1QiAgICAgKGJhc2UgMTYpCQlDT05ET1IgU1lTVEVNUywgSU5DLgorCQkJCTIxMzMgU0FNQVJJTFRBTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC01QyAgIChoZXgpCQlBR0lMSVMgQ09SUE9SQVRJT04KKzAwODA1QyAgICAgKGJhc2UgMTYpCQlBR0lMSVMgQ09SUE9SQVRJT04KKwkJCQkxMTAxIFNBTiBBTlRPTklPIFJPQUQKKwkJCQlTVUlURSAxMDEKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzLTEwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTVEICAgKGhleCkJCUNBTlNUQVIKKzAwODA1RCAgICAgKGJhc2UgMTYpCQlDQU5TVEFSCisJCQkJMzkwMCBWSUNUT1JJQSBQQVJLIEFWRU5VRQorCQkJCU5PUlRIIFlPUksgT05UQVJJTywgQ0FOQURBCisJCQkJTTJIIDNINworCQkJCUNBTkFEQQorCiswMC04MC01RSAgIChoZXgpCQlMU0kgTE9HSUMgQ09SUE9SQVRJT04KKzAwODA1RSAgICAgKGJhc2UgMTYpCQlMU0kgTE9HSUMgQ09SUE9SQVRJT04KKwkJCQkxNTUxIE1DQ0FSVEhZIEJPVUxFVkFSRAorCQkJCU1TIEc4MTMKKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNUYgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDgwNUYgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTYwICAgKGhleCkJCU5FVFdPUksgSU5URVJGQUNFIENPUlBPUkFUSU9OCiswMDgwNjAgICAgIChiYXNlIDE2KQkJTkVUV09SSyBJTlRFUkZBQ0UgQ09SUE9SQVRJT04KKwkJCQkxNTAxOSBXRVNUIDk1IFNUUkVFVAorCQkJCUxFTkVYQSBLUyA2NjIxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNjEgICAoaGV4KQkJTElUVE9OIFNZU1RFTVMsIElOQy4KKzAwODA2MSAgICAgKGJhc2UgMTYpCQlMSVRUT04gU1lTVEVNUywgSU5DLgorCQkJCU0vUyA0NC0yMAorCQkJCTI5ODUxIEFHT1VSQSBST0FECisJCQkJQUdPVVJBIEhJTExTIENBIDkxMzAxLTA1MDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTYyICAgKGhleCkJCUlOVEVSRkFDRSAgQ08uCiswMDgwNjIgICAgIChiYXNlIDE2KQkJSU5URVJGQUNFICBDTy4KKwkJCQk4LTI2IE9aVSA1LUNIT01FIE1JTkFNSS1LVQorCQkJCUhJUk9TSElNQSA3MzIKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTYzICAgKGhleCkJCUhpcnNjaG1hbm4gQXV0b21hdGlvbiBhbmQgQ29udHJvbCBHbWJICiswMDgwNjMgICAgIChiYXNlIDE2KQkJSGlyc2NobWFubiBBdXRvbWF0aW9uIGFuZCBDb250cm9sIEdtYkgKKwkJCQlTdHV0dGdhcnRlciBTdHJhc3NlIDQ1LTUxIAorCQkJCU5lY2thcnRlbnpsaW5nZW4gICBELTcyNjU0IAorCQkJCUdFUk1BTlkKKworMDAtODAtNjQgICAoaGV4KQkJV1lTRSBURUNITk9MT0dZCiswMDgwNjQgICAgIChiYXNlIDE2KQkJV1lTRSBURUNITk9MT0dZCisJCQkJMzQ3MSBOT1JUSCBGSVJTVCBTVFJFRVQgTS9TCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTY1ICAgKGhleCkJCUNZQkVSR1JBUEhJQyBTWVNURU1TIFBUWSBMVEQuCiswMDgwNjUgICAgIChiYXNlIDE2KQkJQ1lCRVJHUkFQSElDIFNZU1RFTVMgUFRZIExURC4KKwkJCQkyOTAgQlVSV09PRCBST0FECisJCQkJSEFXVEhPUk4sIFZJQ1RPUklBIDMxMjIKKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtODAtNjYgICAoaGV4KQkJQVJDT00gQ09OVFJPTCBTWVNURU1TLCBMVEQuCiswMDgwNjYgICAgIChiYXNlIDE2KQkJQVJDT00gQ09OVFJPTCBTWVNURU1TLCBMVEQuCisJCQkJVU5JVCA4LCBDTElGVE9OIFJPQUQKKwkJCQlDQU1CUklER0UgQ0JJIDRXSAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtNjcgICAoaGV4KQkJU1FVQVJFIEQgQ09NUEFOWQorMDA4MDY3ICAgICAoYmFzZSAxNikJCVNRVUFSRSBEIENPTVBBTlkKKwkJCQk0MDQxIE5PUlRIIFJJQ0hBUkQgU1RSRUVUCisJCQkJUC5PLiBCT1ggNDcyCisJCQkJTUlMV0FVS0VFIFdJIDUzMjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC02OCAgIChoZXgpCQlZQU1BVEVDSCBTQ0lFTlRJRklDIExURC4KKzAwODA2OCAgICAgKGJhc2UgMTYpCQlZQU1BVEVDSCBTQ0lFTlRJRklDIExURC4KKwkJCQkxMjU1IExBSVJELCBTVUlURSAyNjAKKwkJCQlNT05UUkVBTCwgUVVFQkVDIEgzUCAyVDEKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtODAtNjkgICAoaGV4KQkJQ09NUFVUT05FIFNZU1RFTVMKKzAwODA2OSAgICAgKGJhc2UgMTYpCQlDT01QVVRPTkUgU1lTVEVNUworCQkJCTExMDAgTk9SVEhNRUFET1cgUEFSS1dBWQorCQkJCVNVSVRFIDE1MAorCQkJCVJPU1dFTEwgR0EgMzAwNzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTZBICAgKGhleCkJCUVSSSAoRU1QQUMgUkVTRUFSQ0ggSU5DLikKKzAwODA2QSAgICAgKGJhc2UgMTYpCQlFUkkgKEVNUEFDIFJFU0VBUkNIIElOQy4pCisJCQkJNDc1NjAgU0VBQlJJREdFIERSSVZFCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNkIgICAoaGV4KQkJU0NITUlEIFRFTEVDT01NVU5JQ0FUSU9OCiswMDgwNkIgICAgIChiYXNlIDE2KQkJU0NITUlEIFRFTEVDT01NVU5JQ0FUSU9OCisJCQkJQklOWlNUUkFTU0UgMzUsCisJCQkJQ0gtODA0NSBaVVJJQ0gKKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTgwLTZDICAgKGhleCkJCUNFR0VMRUMgUFJPSkVDVFMgTFRECiswMDgwNkMgICAgIChiYXNlIDE2KQkJQ0VHRUxFQyBQUk9KRUNUUyBMVEQKKwkJCQlERVBULiBNREQsCisJCQkJQk9VR0hUT04gUkQsICBSVUdCWSBXQVJLUywgQ08yMSAxQlUKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtNkQgICAoaGV4KQkJQ0VOVFVSWSBTWVNURU1TIENPUlAuCiswMDgwNkQgICAgIChiYXNlIDE2KQkJQ0VOVFVSWSBTWVNURU1TIENPUlAuCisJCQkJMi04LTEyIE1JTkFNSS1DSE8KKwkJCQlLT0tVQlVOSkktU0hJLCBUT0tZTworCQkJCTE4NSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTZFICAgKGhleCkJCU5JUFBPTiBTVEVFTCBDT1JQT1JBVElPTgorMDA4MDZFICAgICAoYmFzZSAxNikJCU5JUFBPTiBTVEVFTCBDT1JQT1JBVElPTgorCQkJCTMxLTEgU0hJTktBV0EgMi1DSE9VTUUKKwkJCQlDSFVPLUtVIFRPS1lPIDEwNAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtNkYgICAoaGV4KQkJT05FTEFOIExURC4KKzAwODA2RiAgICAgKGJhc2UgMTYpCQlPTkVMQU4gTFRELgorCQkJCVAuTy4gQk9YIDEwNworCQkJCUhFTkxFWSBPTiBUSEFNRVMgT1hGT1JEU0hJUkUgUkc5IDNOT1EKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTcwICAgKGhleCkJCUNPTVBVVEFET1JBUyBNSUNST04KKzAwODA3MCAgICAgKGJhc2UgMTYpCQlDT01QVVRBRE9SQVMgTUlDUk9OCisJCQkJR1VFUlJFUk8gMjAwMSAtIDE5CisJCQkJSVJBUFVBVE8gR1RPICAzNjY2MAorCQkJCU1FWElDTworCQkJCU1FWElDTworCiswMC04MC03MSAgIChoZXgpCQlTQUkgVEVDSE5PTE9HWQorMDA4MDcxICAgICAoYmFzZSAxNikJCVNBSSBURUNITk9MT0dZCisJCQkJNDIyNCBDQU1QVVMgUE9JTlQgQ09VUlQKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEtMTUxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNzIgICAoaGV4KQkJTUlDUk9QTEVYIFNZU1RFTVMgTFRELgorMDA4MDcyICAgICAoYmFzZSAxNikJCU1JQ1JPUExFWCBTWVNURU1TIExURC4KKwkJCQkxMDQtMjA3MSBLaW5nc3dheQorCQkJCVBvcnQgQ29xdWl0bGFtLCAgQkMgVjNDIDZOMgorCQkJCUNBTkFEQQorCiswMC04MC03MyAgIChoZXgpCQlEV0IgQVNTT0NJQVRFUworMDA4MDczICAgICAoYmFzZSAxNikJCURXQiBBU1NPQ0lBVEVTCisJCQkJOTM2MCBTVyBHRU1JTkkgRFJJVkUKKwkJCQlCRUFWRVJUT04gT1IgOTcwMDUtNzE1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNzQgICAoaGV4KQkJRklTSEVSIENPTlRST0xTCiswMDgwNzQgICAgIChiYXNlIDE2KQkJRklTSEVSIENPTlRST0xTCisJCQkJMTcxMiBDRU5UUkUgQ1JFRUsgRFJJVkUKKwkJCQlBVVNUSU4gVFggNzg3NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTc1ICAgKGhleCkJCVBBUlNZVEVDIEdNQkgKKzAwODA3NSAgICAgKGJhc2UgMTYpCQlQQVJTWVRFQyBHTUJICisJCQkJSlVFTElDSEVSIFNUUi4gMzM4CisJCQkJRDUxMDAgQUFDSEVOCisJCQkJRi5SLiBHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC04MC03NiAgIChoZXgpCQlNQ05DCiswMDgwNzYgICAgIChiYXNlIDE2KQkJTUNOQworCQkJCVAuTy4gQk9YIDEyODg5CisJCQkJUlRQIE5DIDI3NzA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC03NyAgIChoZXgpCQlCUk9USEVSIElORFVTVFJJRVMsIExURC4KKzAwODA3NyAgICAgKGJhc2UgMTYpCQlCUk9USEVSIElORFVTVFJJRVMsIExURC4KKwkJCQlSRVNFQVJDSCBMQUJPUkFUT1JZCisJCQkJOS0zNSBIT1JJVEEtRE9SSSwgTUlaVUhPLUtVIE5BR09ZQSwgNDY3CisJCQkJSkFQQU4KKworMDAtODAtNzggICAoaGV4KQkJUFJBQ1RJQ0FMIFBFUklQSEVSQUxTLCBJTkMuCiswMDgwNzggICAgIChiYXNlIDE2KQkJUFJBQ1RJQ0FMIFBFUklQSEVSQUxTLCBJTkMuCisJCQkJMzc1IENPTkVKTyBSSURHRSBBVkVOVUUKKwkJCQlUSE9VU0FORCBPQUtTIENBIDkxMzYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC03OSAgIChoZXgpCQlNSUNST0JVUyBERVNJR05TIExURC4KKzAwODA3OSAgICAgKGJhc2UgMTYpCQlNSUNST0JVUyBERVNJR05TIExURC4KKwkJCQlUUkVBREFXQVkgSElMTAorCQkJCUxPVURXQVRFUiBISUdIIFdZQ09NQkUgQlVDS1MgSFAxMCA5UUwKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTdBICAgKGhleCkJCUFJVEVDSCBTWVNURU1TIExURC4KKzAwODA3QSAgICAgKGJhc2UgMTYpCQlBSVRFQ0ggU1lTVEVNUyBMVEQuCisJCQkJMzA4MCBPTENPVFQgU1RSRUVUCisJCQkJU1VJVEUgMTA1QQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC03QiAgIChoZXgpCQlBUlRFTCBDT01NVU5JQ0FUSU9OUyBDT1JQLgorMDA4MDdCICAgICAoYmFzZSAxNikJCUFSVEVMIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJMjIgS0FORSBJTkRVU1RSSUFMIERSSVZFCisJCQkJSFVEU09OIE1BIDAxNzQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC03QyAgIChoZXgpCQlGSUJFUkNPTSwgSU5DLgorMDA4MDdDICAgICAoYmFzZSAxNikJCUZJQkVSQ09NLCBJTkMuCisJCQkJMzM1MyBPUkFOR0UgQVZFTlVFIE5FCisJCQkJUk9BTk9LRSBWQSAyNDAxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtN0QgICAoaGV4KQkJRVFVSU5PWCBTWVNURU1TIElOQy4KKzAwODA3RCAgICAgKGJhc2UgMTYpCQlFUVVJTk9YIFNZU1RFTVMgSU5DLgorCQkJCTE0MjYwIFNXIDExOVRIIEFWRU5VRQorCQkJCU1JQU1JIEZMIDMzMTg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC03RSAgIChoZXgpCQlTT1VUSEVSTiBQQUNJRklDIExURC4KKzAwODA3RSAgICAgKGJhc2UgMTYpCQlTT1VUSEVSTiBQQUNJRklDIExURC4KKwkJCQlTQU5XQSBCTERHLiwgMi0xNi0yMAorCQkJCU1JTkFNSVNBSVdBSSBOSVNISSBZT0tPSEFNQQorCQkJCUpBUEFOIEpBUEFOIDIyMAorCQkJCUpBUEFOCisKKzAwLTgwLTdGICAgKGhleCkJCURZLTQgSU5DT1JQT1JBVEVECiswMDgwN0YgICAgIChiYXNlIDE2KQkJRFktNCBJTkNPUlBPUkFURUQKKwkJCQkzMzMgUEFMTEFESVVNIERSSVZFLCBNUyAzMTIKKwkJCQlLQU5BVEEsIE9OVEFSSU8sIEsyViAxQTYKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtODAtODAgICAoaGV4KQkJREFUQU1FRElBIENPUlBPUkFUSU9OCiswMDgwODAgICAgIChiYXNlIDE2KQkJREFUQU1FRElBIENPUlBPUkFUSU9OCisJCQkJNzQwMSBDRU5UUkFMIEhJR0hXQVkKKwkJCQlQRU5OU0FVS0VOIE5KIDA4MTA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC04MSAgIChoZXgpCQlLRU5EQUxMIFNRVUFSRSBSRVNFQVJDSCBDT1JQLgorMDA4MDgxICAgICAoYmFzZSAxNikJCUtFTkRBTEwgU1FVQVJFIFJFU0VBUkNIIENPUlAuCisJCQkJMTcwIFRSQUNFUiBMQU5FCisJCQkJV0FMVEhBTSBNQSAwMjE1NC0xMzc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC04MiAgIChoZXgpCQlQRVAgTU9EVUxBUiBDT01QVVRFUlMgR01CSAorMDA4MDgyICAgICAoYmFzZSAxNikJCVBFUCBNT0RVTEFSIENPTVBVVEVSUyBHTUJICisJCQkJQVBGRUxTVFJBTkdFUiBTVFIuIDE2CisJCQkJRCAtIDg5NTAgS0FVRkJFVVJFTgorCQkJCVdFU1QgR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtODAtODMgICAoaGV4KQkJQU1EQUhMCiswMDgwODMgICAgIChiYXNlIDE2KQkJQU1EQUhMCisJCQkJMTI1MCBFQVNUIEFSUVVFUyBBVkVOVUUKKwkJCQlNL1MgMjg2IFAuTy4gQk9YIDM0NzAKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODgtMzQ3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtODQgICAoaGV4KQkJVEhFIENMT1VEIElOQy4KKzAwODA4NCAgICAgKGJhc2UgMTYpCQlUSEUgQ0xPVUQgSU5DLgorCQkJCUNMT1VEIEJMREcuCisJCQkJNzEtMSwgQ0hFT05HLURBTSBET05HIEtBTkctTkFNIEtVLCBTRU9VTAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTgwLTg1ICAgKGhleCkJCUgtVEhSRUUgU1lTVEVNUyBDT1JQT1JBVElPTgorMDA4MDg1ICAgICAoYmFzZSAxNikJCUgtVEhSRUUgU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCTEwMCBQQVJLIERSSVZFLCBTVUlURSAyMDQKKwkJCQlSRVNFQVJDSCBUUklBTkdMRSBQQVJLCisJCQkJTkMgMjc3MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTg2ICAgKGhleCkJCUNPTVBVVEVSIEdFTkVSQVRJT04gSU5DLgorMDA4MDg2ICAgICAoYmFzZSAxNikJCUNPTVBVVEVSIEdFTkVSQVRJT04gSU5DLgorCQkJCTM4NTUgUFJFU0lERU5USUFMIFBBUktXQVkKKwkJCQlBVExBTlRBIEdBIDMwMzQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC04NyAgIChoZXgpCQlPS0kgRUxFQ1RSSUMgSU5EVVNUUlkgQ08uLCBMVEQKKzAwODA4NyAgICAgKGJhc2UgMTYpCQlPS0kgRUxFQ1RSSUMgSU5EVVNUUlkgQ08uLCBMVEQKKwkJCQkxMC0zIFNISUJBVVJBIDQtQ0hPTUUKKwkJCQlNSU5BVE8tS1UsIFRPS1lPIDEwOAorCQkJCUpBUEFOCisKKzAwLTgwLTg4ICAgKGhleCkJCVZJQ1RPUiBDT01QQU5ZIE9GIEpBUEFOLCBMVEQuCiswMDgwODggICAgIChiYXNlIDE2KQkJVklDVE9SIENPTVBBTlkgT0YgSkFQQU4sIExURC4KKwkJCQk1OC03IFNISU5NRUktQ0hPLCBZT0tPU1VLQQorCQkJCUtBTkFHQVdBICAgMjM5CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC04OSAgIChoZXgpCQlURUNORVRJQ1MgKFBUWSkgTFRELgorMDA4MDg5ICAgICAoYmFzZSAxNikJCVRFQ05FVElDUyAoUFRZKSBMVEQuCisJCQkJUC5PLiBCT1gvUE9TQlVTIDU2NDEyCisJCQkJUElORUdPV1JJRSwgMjEyMworCQkJCVNPVVRIIEFGUklDQQorCQkJCVNPVVRIIEFGUklDQQorCiswMC04MC04QSAgIChoZXgpCQlTVU1NSVQgTUlDUk9TWVNURU1TIENPUlAuCiswMDgwOEEgICAgIChiYXNlIDE2KQkJU1VNTUlUIE1JQ1JPU1lTVEVNUyBDT1JQLgorCQkJCTcxMCBMQUtFV0FZLVNURS4jMTUwCisJCQkJU1VOTllWQUxFIENBIDk0MDg2NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtOEIgICAoaGV4KQkJREFDT0xMIExJTUlURUQKKzAwODA4QiAgICAgKGJhc2UgMTYpCQlEQUNPTEwgTElNSVRFRAorCQkJCURBQ09MTCBIT1VTRSwgR0FSRE5FUlMgTEFORQorCQkJCUJBVEhHQVRFIFdFU1QgTE9USElBTgorCQkJCVNDT1RMQU5EIEVINDggMVRQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtOEMgICAoaGV4KQkJTmV0U2NvdXQgU3lzdGVtcywgSW5jLgorMDA4MDhDICAgICAoYmFzZSAxNikJCU5ldFNjb3V0IFN5c3RlbXMsIEluYy4KKwkJCQkxNTAxIE1BSU4gU1RSRUVUCisJCQkJU1VJVEUgIzQwCisJCQkJVEVXS1NCVVJZIE1BIDAxODc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC04RCAgIChoZXgpCQlXRVNUQ09BU1QgVEVDSE5PTE9HWSBCLlYuCiswMDgwOEQgICAgIChiYXNlIDE2KQkJV0VTVENPQVNUIFRFQ0hOT0xPR1kgQi5WLgorCQkJCVAuTy4gQk9YIDMzMTcKKwkJCQkyNjAxIERIIERFTEZUCisJCQkJTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC04MC04RSAgIChoZXgpCQlSQURTVE9ORSBURUNITk9MT0dZCiswMDgwOEUgICAgIChiYXNlIDE2KQkJUkFEU1RPTkUgVEVDSE5PTE9HWQorCQkJCVdBVEVSIExBTkUsIFRPV0NFU1RFUgorCQkJCU5PUlRIQU5UUyBOTjEyIDdKTgorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC04RiAgIChoZXgpCQlDLiBJVE9IIEVMRUNUUk9OSUNTLCBJTkMuCiswMDgwOEYgICAgIChiYXNlIDE2KQkJQy4gSVRPSCBFTEVDVFJPTklDUywgSU5DLgorCQkJCTI1MDUgTUNDQUJFIFdBWQorCQkJCUlSVklORSBDQSA5MjcxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtOTAgICAoaGV4KQkJTUlDUk9URUsgSU5URVJOQVRJT05BTCwgSU5DLgorMDA4MDkwICAgICAoYmFzZSAxNikJCU1JQ1JPVEVLIElOVEVSTkFUSU9OQUwsIElOQy4KKwkJCQkzMzAwIE5XIDIxMVRIIFRFUlJBQ0UKKwkJCQlISUxMU0JPUiBPUiA5NzEyNC03MTM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC05MSAgIChoZXgpCQlUT0tZTyBFTEVDVFJJQyBDTy4sTFRECiswMDgwOTEgICAgIChiYXNlIDE2KQkJVE9LWU8gRUxFQ1RSSUMgQ08uLExURAorCQkJCTEwLTE0IFVDSElLQU5EQQorCQkJCTEtQ0hPTUUgQ0hJWU9EQS1LVQorCQkJCVRPS1lPIEpBUEFOIDEwMQorCQkJCUpBUEFOCisKKzAwLTgwLTkyICAgKGhleCkJCVNpbGV4IFRlY2hub2xvZ3ksIEluYy4KKzAwODA5MiAgICAgKGJhc2UgMTYpCQlTaWxleCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMi0zLTEgSGlrYXJpZGFpLAorCQkJCVNlaWthLWNobworCQkJCUt5b3RvICA2MTktMDIzNworCQkJCUpBUEFOCisKKzAwLTgwLTkzICAgKGhleCkJCVhZUk9OIENPUlBPUkFUSU9OCiswMDgwOTMgICAgIChiYXNlIDE2KQkJWFlST04gQ09SUE9SQVRJT04KKwkJCQk3ODY0IExJTFkgQ09VUlQKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTk0ICAgKGhleCkJCUFMRkEgTEFWQUwgQVVUT01BVElPTiBBQgorMDA4MDk0ICAgICAoYmFzZSAxNikJCUFMRkEgTEFWQUwgQVVUT01BVElPTiBBQgorCQkJCUFETgorCQkJCVMtMjA1IDIyIE1BTE1PCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLTgwLTk1ICAgKGhleCkJCUJBU0lDIE1FUlRPTiBIQU5ERUxTR0VTLk0uQi5ILgorMDA4MDk1ICAgICAoYmFzZSAxNikJCUJBU0lDIE1FUlRPTiBIQU5ERUxTR0VTLk0uQi5ILgorCQkJCURVUkNITEFTUy1TVFJBU1NFIDQyCisJCQkJQSAtIDkwMjAgS0xBR0VORlVSVAorCQkJCUFVU1RSSUEKKwkJCQlBVVNUUklBCisKKzAwLTgwLTk2ICAgKGhleCkJCUhVTUFOIERFU0lHTkVEIFNZU1RFTVMsIElOQy4KKzAwODA5NiAgICAgKGJhc2UgMTYpCQlIVU1BTiBERVNJR05FRCBTWVNURU1TLCBJTkMuCisJCQkJNDIxIEZFSEVMRVkgRFJJVkUKKwkJCQlLSU5HIE9GIFBSVVNTSUEgUEEgMTk0MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTk3ICAgKGhleCkJCUNFTlRSQUxQIEFVVE9NQVRJU01FUworMDA4MDk3ICAgICAoYmFzZSAxNikJCUNFTlRSQUxQIEFVVE9NQVRJU01FUworCQkJCTIxLCBSVUUgTUFSQ0VMIFBBR05PTCA2OTY5NAorCQkJCVZFTklTU0lFVVggQ0VERVgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtODAtOTggICAoaGV4KQkJVERLIENPUlBPUkFUSU9OCiswMDgwOTggICAgIChiYXNlIDE2KQkJVERLIENPUlBPUkFUSU9OCisJCQkJQ09SUC4gUiZEIERFUFQuIFRFQ0guIEhEUVRFUlMuCisJCQkJMi0xNS03LCBISUdBU0hJLU9XQURBLCBJQ0hJS0FXQS1TSEkKKwkJCQlDSElCQS1LRU4gMjcyLCBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTk5ICAgKGhleCkJCUtMT0NLTkVSIE1PRUxMRVIgSVBDCiswMDgwOTkgICAgIChiYXNlIDE2KQkJS0xPQ0tORVIgTU9FTExFUiBJUEMKKwkJCQlGUklUWi1LT1RaLVNUUi4gOAorCQkJCVAuTy4gQk9YIDEzIDgwIEQtNTI3NiBXSUVITCAxLUJPTUlHCisJCQkJV0VTVCBHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC04MC05QSAgIChoZXgpCQlOT1ZVUyBORVRXT1JLUyBMVEQKKzAwODA5QSAgICAgKGJhc2UgMTYpCQlOT1ZVUyBORVRXT1JLUyBMVEQKKwkJCQlKT0hOIFNDT1RUIEhPVVNFCisJCQkJTUFSS0VUIFNUUkVFVCBCUkFDS05FTEwsIEJFUktXICBSRzEyIDFKQgorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC05QiAgIChoZXgpCQlKVVNUU1lTVEVNIENPUlBPUkFUSU9OCiswMDgwOUIgICAgIChiYXNlIDE2KQkJSlVTVFNZU1RFTSBDT1JQT1JBVElPTgorCQkJCTMtNDYgT0tJTk9IQU1BSElHQVNISQorCQkJCVRPS1VTSU1BU0hJIDc3MAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtOUMgICAoaGV4KQkJTFVYQ09NLCBJTkMuCiswMDgwOUMgICAgIChiYXNlIDE2KQkJTFVYQ09NLCBJTkMuCisJCQkJMzI0OSBMQVVSRUxWSUVXIENPVVJUCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtOUQgICAoaGV4KQkJQ29tbXNjcmFmdCBMdGQuCiswMDgwOUQgICAgIChiYXNlIDE2KQkJQ29tbXNjcmFmdCBMdGQuCisJCQkJUE8gQk9YIDE2MAorCQkJCUJFTlRMRVksIFcuQS4gNjEwMgorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC04MC05RSAgIChoZXgpCQlEQVRVUyBHTUJICiswMDgwOUUgICAgIChiYXNlIDE2KQkJREFUVVMgR01CSAorCQkJCUlORFVTVFJJRVNUUi4gMgorCQkJCUQtNTEwMiBXVVJTRUxFTi9BQUNIRU4KKwkJCQlXRVNUIEdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTgwLTlGICAgKGhleCkJCUFMQ0FURUwgQlVTSU5FU1MgU1lTVEVNUworMDA4MDlGICAgICAoYmFzZSAxNikJCUFMQ0FURUwgQlVTSU5FU1MgU1lTVEVNUworCQkJCTU0LCBBVkVOVUUgSkVBTiBKQVVSRVMKKwkJCQk5MjcwNyBDT0xPTUJFUyBDRURFWAorCQkJCUZSQU5DRQorCiswMC04MC1BMCAgIChoZXgpCQlFRElTQSBIRVdMRVRUIFBBQ0tBUkQgUy9BCiswMDgwQTAgICAgIChiYXNlIDE2KQkJRURJU0EgSEVXTEVUVCBQQUNLQVJEIFMvQQorCQkJCUFMQU1FREEgUklPIE5FR1JPLAorCQkJCTc1MC1BTFBIQVZJTExFIDA2NDU0LTAwMCAgQkFSVUVSSSBTUAorCQkJCUJSQVpJTAorCQkJCUJSQVpJTAorCiswMC04MC1BMSAgIChoZXgpCQlNSUNST1RFU1QsIElOQy4KKzAwODBBMSAgICAgKGJhc2UgMTYpCQlNSUNST1RFU1QsIElOQy4KKwkJCQk0NzQ3IE4uIDIyTkQgU1RSRUVUCisJCQkJUEhPRU5JWCBBWiA4NTAxNi00NzA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1BMiAgIChoZXgpCQlDUkVBVElWRSBFTEVDVFJPTklDIFNZU1RFTVMKKzAwODBBMiAgICAgKGJhc2UgMTYpCQlDUkVBVElWRSBFTEVDVFJPTklDIFNZU1RFTVMKKwkJCQk3MCBST1VURSBEVSBQT05UIC0gQlVUSU4KKwkJCQlDSC0xMjEzIFBFVElULUxBTkNZIEdFTkVWQQorCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDAtODAtQTMgICAoaGV4KQkJTGFudHJvbml4CiswMDgwQTMgICAgIChiYXNlIDE2KQkJTGFudHJvbml4CisJCQkJMTUzNTMgQmFycmFuY2EgUGFya3dheQorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQTQgICAoaGV4KQkJTElCRVJUWSBFTEVDVFJPTklDUworMDA4MEE0ICAgICAoYmFzZSAxNikJCUxJQkVSVFkgRUxFQ1RST05JQ1MKKwkJCQkzMzIgSEFSQk9SIFdBWQorCQkJCVNPVVRIIFNBTiBGUkFOQ0lTQ08gQ0EgOTQwODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUE1ICAgKGhleCkJCVNQRUVEIElOVEVSTkFUSU9OQUwKKzAwODBBNSAgICAgKGJhc2UgMTYpCQlTUEVFRCBJTlRFUk5BVElPTkFMCisJCQkJMTMyMCBBUkJPTElUQSBEUi4KKwkJCQlMQSBIQUJSQSBDQSA5MDYzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQTYgICAoaGV4KQkJUkVQVUJMSUMgVEVDSE5PTE9HWSwgSU5DLgorMDA4MEE2ICAgICAoYmFzZSAxNikJCVJFUFVCTElDIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQlQLk8uIEJPWCAxNDEwMDYKKwkJCQlBVVNUSU4gVFggNzg3MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUE3ICAgKGhleCkJCUhvbmV5d2VsbCBJbnRlcm5hdGlvbmFsIEluYworMDA4MEE3ICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbCBJbnRlcm5hdGlvbmFsIEluYworCQkJCVZhbmNvdXZlciBDZW50ZXIgb2YgRXhjZWxsZW5jZSAKKwkJCQk1MDAgQnJvb2tzYmFuayBBdmVudWUgCisJCQkJTm9ydGggVmFuY291dmVyICBWN0ogM1M0IAorCQkJCUNBTkFEQQorCiswMC04MC1BOCAgIChoZXgpCQlWSVRBQ09NIENPUlBPUkFUSU9OCiswMDgwQTggICAgIChiYXNlIDE2KQkJVklUQUNPTSBDT1JQT1JBVElPTgorCQkJCTEzMzAgQ0hBUkxFU1RPTiBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQTkgICAoaGV4KQkJQ0xFQVJQT0lOVCBSRVNFQVJDSAorMDA4MEE5ICAgICAoYmFzZSAxNikJCUNMRUFSUE9JTlQgUkVTRUFSQ0gKKwkJCQkxOTAgTk9SVEggTUFJTiBTVFJFRVQKKwkJCQlOQVRJQ0sgTUEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUFBICAgKGhleCkJCU1BWFBFRUQKKzAwODBBQSAgICAgKGJhc2UgMTYpCQlNQVhQRUVECisJCQkJMTEyMCBDSEVTUyBEUklWRQorCQkJCUZPU1RFUiBDSVRZIENBIDk0NDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1BQiAgIChoZXgpCQlEVUtBTkUgTkVUV09SSyBJTlRFR1JBVElPTgorMDA4MEFCICAgICAoYmFzZSAxNikJCURVS0FORSBORVRXT1JLIElOVEVHUkFUSU9OCisJCQkJMjkwMCBEVUtBTkUgRFJJVkUKKwkJCQlTVC4gQ0hBUkxFUyBJTCA2MDE3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQUMgICAoaGV4KQkJSU1MT0dJWCwgRElWSVNJT04gT0YgR0VORVNZUworMDA4MEFDICAgICAoYmFzZSAxNikJCUlNTE9HSVgsIERJVklTSU9OIE9GIEdFTkVTWVMKKwkJCQkxOTAwIFNVTU1JVCBUT1dFUiBCTFZELlNURSM3NzAKKwkJCQlPUkxBTkRPIEZMIDMyODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1BRCAgIChoZXgpCQlDTkVUIFRFQ0hOT0xPR1ksIElOQy4KKzAwODBBRCAgICAgKGJhc2UgMTYpCQlDTkVUIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkyMTk5IFpBTktFUiBST0FECisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUFFICAgKGhleCkJCUhVR0hFUyBORVRXT1JLIFNZU1RFTVMKKzAwODBBRSAgICAgKGJhc2UgMTYpCQlIVUdIRVMgTkVUV09SSyBTWVNURU1TCisJCQkJMTE3MTcgRVhQTE9SQVRJT04gTEFORQorCQkJCUdFUk1BTlRPV04gTUQgMjA4NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUFGICAgKGhleCkJCUFMTFVNRVIgQ08uLCBMVEQuCiswMDgwQUYgICAgIChiYXNlIDE2KQkJQUxMVU1FUiBDTy4sIExURC4KKwkJCQkyLTgtOCBDSFVPLUNITywgTUVHVVJPLUtVCisJCQkJVE9LWU8gMTUyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC1CMCAgIChoZXgpCQlBRFZBTkNFRCBJTkZPUk1BVElPTgorMDA4MEIwICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIElORk9STUFUSU9OCisJCQkJVEVDSE5PTE9HWSwgSU5DLgorCQkJCTVGIDEtMi02IE5JSE9OQkFTSEktSE9OQ0hPIENIVU8tS1UsICBUT0sKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLUIxICAgKGhleCkJCVNPRlRDT00gQS9TCiswMDgwQjEgICAgIChiYXNlIDE2KQkJU09GVENPTSBBL1MKKwkJCQlTVFVESUVTVFJBRURFIDIxCisJCQkJREsgMTQ1NSBDT1BFTk5IQUdFTiBLLgorCQkJCURFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLTgwLUIyICAgKGhleCkJCU5FVFdPUksgRVFVSVBNRU5UIFRFQ0hOT0xPR0lFUworMDA4MEIyICAgICAoYmFzZSAxNikJCU5FVFdPUksgRVFVSVBNRU5UIFRFQ0hOT0xPR0lFUworCQkJCTY5MDAgUEFTRU8gUEFEUkUgUEFSS1dBWQorCQkJCUZSRU1PTlQgQ0EgOTQ1NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUIzICAgKGhleCkJCUFWQUwgREFUQSBDT1JQT1JBVElPTgorMDA4MEIzICAgICAoYmFzZSAxNikJCUFWQUwgREFUQSBDT1JQT1JBVElPTgorCQkJCU1BQ0hJREEgRU5HSU5FRVJJTkcgQ0VOVEVSCisJCQkJMTc1Ny0xIEtBTkFJLUNITyBNQUNISURBIENJVFkgVE9LWU8gSkFQQQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtQjQgICAoaGV4KQkJU09QSElBIFNZU1RFTVMKKzAwODBCNCAgICAgKGJhc2UgMTYpCQlTT1BISUEgU1lTVEVNUworCQkJCTMzMzcgS0lGRVIgUk9BRAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1CNSAgIChoZXgpCQlVTklURUQgTkVUV09SS1MgSU5DLgorMDA4MEI1ICAgICAoYmFzZSAxNikJCVVOSVRFRCBORVRXT1JLUyBJTkMuCisJCQkJMjE3OCBQQVJBR09OIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUI2ICAgKGhleCkJCVRIRU1JUyBDT01QVVRFUgorMDA4MEI2ICAgICAoYmFzZSAxNikJCVRIRU1JUyBDT01QVVRFUgorCQkJCTY2ODEgT1dFTlMgRFJJVkUKKwkJCQlQTEVBU09OVE9OIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1CNyAgIChoZXgpCQlTVEVMTEFSIENPTVBVVEVSCiswMDgwQjcgICAgIChiYXNlIDE2KQkJU1RFTExBUiBDT01QVVRFUgorCQkJCTk1IFdFTExTIEFWRU5VRQorCQkJCU5FV1RPTiBNQSAwMjE1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQjggICAoaGV4KQkJQlVHLCBJTkNPUlBPUkFURUQKKzAwODBCOCAgICAgKGJhc2UgMTYpCQlCVUcsIElOQ09SUE9SQVRFRAorCQkJCTEtMTQgVEVDSE5PLVBBUksgIDEtQ0hPTUUKKwkJCQlTSElNT05PUFBPUk8sIEFUU1VCRVRTVS1LVSBTQVBQT1JPIDAwNCwKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLUI5ICAgKGhleCkJCUFSQ0hFIFRFQ0hOT0xJR0lFUyBJTkMuCiswMDgwQjkgICAgIChiYXNlIDE2KQkJQVJDSEUgVEVDSE5PTElHSUVTIElOQy4KKwkJCQk0ODUwMiBLQVRPIFJPQUQKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUyBNSU5PUiBPVVRMWUlORyBJU0xBTgorCiswMC04MC1CQSAgIChoZXgpCQlTUEVDSUFMSVggKEFTSUEpIFBURSwgTFRECiswMDgwQkEgICAgIChiYXNlIDE2KQkJU1BFQ0lBTElYIChBU0lBKSBQVEUsIExURAorCQkJCTMgV0lOVEVSU0VMTFMgUk9BRAorCQkJCUJZRkxFRVQgU1VSUkVZICBLVDE0N0xGCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC1CQiAgIChoZXgpCQlIVUdIRVMgTEFOIFNZU1RFTVMKKzAwODBCQiAgICAgKGJhc2UgMTYpCQlIVUdIRVMgTEFOIFNZU1RFTVMKKwkJCQkxMjI1IENIQVJMRVNUT04gUk9BRAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUJDICAgKGhleCkJCUhJVEFDSEkgRU5HSU5FRVJJTkcgQ08uLCBMVEQKKzAwODBCQyAgICAgKGJhc2UgMTYpCQlISVRBQ0hJIEVOR0lORUVSSU5HIENPLiwgTFRECisJCQkJNC04LTI2LCBPTUlLQUNITworCQkJCUhJVEFDSEkgQ0lUWSBJQkFSQUtJIFBSRUZFQ1RVUkUgMzE5LTEyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC1CRCAgIChoZXgpCQlUSEUgRlVSVUtBV0EgRUxFQ1RSSUMgQ08uLCBMVEQKKzAwODBCRCAgICAgKGJhc2UgMTYpCQlUSEUgRlVSVUtBV0EgRUxFQ1RSSUMgQ08uLCBMVEQKKwkJCQk2LTEsIE1BUlVOT1VDSEkgMi1DSE9NRQorCQkJCUNISVlPREEtS1UsIFRPS1lPCisJCQkJMTAwIEpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtQkUgICAoaGV4KQkJQVJJRVMgUkVTRUFSQ0gKKzAwODBCRSAgICAgKGJhc2UgMTYpCQlBUklFUyBSRVNFQVJDSAorCQkJCTQ2NzkxIEZSRU1PTkQgQkxWRC4KKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1CRiAgIChoZXgpCQlUQUtBT0tBIEVMRUNUUklDIE1GRy4gQ08uIExURC4KKzAwODBCRiAgICAgKGJhc2UgMTYpCQlUQUtBT0tBIEVMRUNUUklDIE1GRy4gQ08uIExURC4KKwkJCQlLQU5EQSBCUkFOQ0ggT0ZGSUNFIFRPTkVOCisJCQkJMi0xLTExLCBTQVJVR0FLVS1DSE8gQ0hJWU9EQS1LVSwgVE9LWU8sCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC1DMCAgIChoZXgpCQlQRU5SSUwgREFUQUNPTU0KKzAwODBDMCAgICAgKGJhc2UgMTYpCQlQRU5SSUwgREFUQUNPTU0KKwkJCQkxMzAwIFFVSU5DRSBPUkNIQVJEIEJMVkQuCisJCQkJR0FJVEhFUlNCVVJHIE1EIDIwODc4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1DMSAgIChoZXgpCQlMQU5FWCBDT1JQT1JBVElPTgorMDA4MEMxICAgICAoYmFzZSAxNikJCUxBTkVYIENPUlBPUkFUSU9OCisJCQkJMTA3MjcgVFVDS0VSIFNUUkVFVAorCQkJCUJFTFRTVklMTEUgTUQgMjA3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUMyICAgKGhleCkJCUlFRUUgODAyLjEgQ09NTUlUVEVFCiswMDgwQzIgICAgIChiYXNlIDE2KQkJSUVFRSA4MDIuMSBDT01NSVRURUUKKwkJCQk4MDIuMSBDaGFpciwgYy9vIElFRUUgU3RhbmRhcmRzIEFzc29jaWF0aW9uCisJCQkJNDQ1IEhvZXMgTGFuZQorCQkJCVBpc2NhdGF3YXkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUMzICAgKGhleCkJCUJJQ0MgSU5GT1JNQVRJT04gU1lTVEVNUyAmIFNWQworMDA4MEMzICAgICAoYmFzZSAxNikJCUJJQ0MgSU5GT1JNQVRJT04gU1lTVEVNUyAmIFNWQworCQkJCTUwMCBDQVBBQklMSVRZIEdSRUVOLCBMVVRPTgorCQkJCUJFREZPUkRTSElSRQorCQkJCUVOR0xBTkQgTFUxIDNMVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLUM0ICAgKGhleCkJCURPQ1VNRU5UIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA4MEM0ICAgICAoYmFzZSAxNikJCURPQ1VNRU5UIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTEzMDAgQ0hBUkxFU1RPTiBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQzUgICAoaGV4KQkJTk9WRUxMQ08gREUgTUVYSUNPCiswMDgwQzUgICAgIChiYXNlIDE2KQkJTk9WRUxMQ08gREUgTUVYSUNPCisJCQkJQ09OU1RJVFVZRU5URVMgTk8uIDkwNworCQkJCUNPTC4gTE9NQVMgQUxUQVMKKwkJCQkxMTk1MCBNRVhJQ08gMTE5NTAgTUVYSUNPIEQuRi4KKwkJCQlNRVhJQ08KKworMDAtODAtQzYgICAoaGV4KQkJTkFUSU9OQUwgREFUQUNPTU0gQ09SUE9SQVRJT04KKzAwODBDNiAgICAgKGJhc2UgMTYpCQlOQVRJT05BTCBEQVRBQ09NTSBDT1JQT1JBVElPTgorCQkJCTJGLCAyOCwgSU5EVVNUUlkgRUFTVCA5VEggUkQuCisJCQkJU0NJRU5DRSBQQVJLLCBIU0lOLUNIVQorCQkJCVRBSVdBTiAgMzAwNzcgVEFJV0FOICAzMDA3NyBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTgwLUM3ICAgKGhleCkJCVhJUkNPTQorMDA4MEM3ICAgICAoYmFzZSAxNikJCVhJUkNPTQorCQkJCTI2MDI1IE1VUkVBVSBST0FECisJCQkJQ0FMQUJBU0FTIENBIDkxMzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1DOCAgIChoZXgpCQlELUxJTksgU1lTVEVNUywgSU5DLgorMDA4MEM4ICAgICAoYmFzZSAxNikJCUQtTElOSyBTWVNURU1TLCBJTkMuCisJCQkJNTMgRGlzY292ZXIgRHIuCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1DOSAgIChoZXgpCQlBTEJFUlRBIE1JQ1JPRUxFQ1RST05JQyBDRU5UUkUKKzAwODBDOSAgICAgKGJhc2UgMTYpCQlBTEJFUlRBIE1JQ1JPRUxFQ1RST05JQyBDRU5UUkUKKwkJCQkzMTgsIDExMzE1IC0gODcgQVZFTlVFCisJCQkJRURNT05UT04sIEFCIFQ2RyAyQzIKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtODAtQ0EgICAoaGV4KQkJTkVUQ09NIFJFU0VBUkNIIElOQ09SUE9SQVRFRAorMDA4MENBICAgICAoYmFzZSAxNikJCU5FVENPTSBSRVNFQVJDSCBJTkNPUlBPUkFURUQKKwkJCQkyMDEgVEVDSE5PTE9HWSBEUklWRQorCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQ0IgICAoaGV4KQkJRkFMQ08gREFUQSBQUk9EVUNUUworMDA4MENCICAgICAoYmFzZSAxNikJCUZBTENPIERBVEEgUFJPRFVDVFMKKwkJCQk0NDAgUE9UUkVSTyBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYtNDE5NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQ0MgICAoaGV4KQkJTUlDUk9XQVZFIEJZUEFTUyBTWVNURU1TCiswMDgwQ0MgICAgIChiYXNlIDE2KQkJTUlDUk9XQVZFIEJZUEFTUyBTWVNURU1TCisJCQkJMjUgQlJBSU5UUkVFIEhJTEwgT0ZGSUNFIFBBUksKKwkJCQlCUkFJTlRSRUUgTUEgMDIxODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUNEICAgKGhleCkJCU1JQ1JPTklDUyBDT01QVVRFUiwgSU5DLgorMDA4MENEICAgICAoYmFzZSAxNikJCU1JQ1JPTklDUyBDT01QVVRFUiwgSU5DLgorCQkJCTQ1MzY1IE5PUlRIUE9SVCBMT09QIFdFU1QKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1DRSAgIChoZXgpCQlCUk9BRENBU1QgVEVMRVZJU0lPTiBTWVNURU1TCiswMDgwQ0UgICAgIChiYXNlIDE2KQkJQlJPQURDQVNUIFRFTEVWSVNJT04gU1lTVEVNUworCQkJCVAuTy4gQk9YIDMwODE2CisJCQkJU0FMVCBMQUtFIENJVFksIFVUQUgKKwkJCQlVdGFoIDg0MTMwLTA4MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUNGICAgKGhleCkJCUVNQkVEREVEIFBFUkZPUk1BTkNFIElOQy4KKzAwODBDRiAgICAgKGJhc2UgMTYpCQlFTUJFRERFRCBQRVJGT1JNQU5DRSBJTkMuCisJCQkJMzM4NSBTQ09UVCBCTFZELgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0LTMxMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUQwICAgKGhleCkJCUNPTVBVVEVSIFBFUklQSEVSQUxTLCBJTkMuCiswMDgwRDAgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgUEVSSVBIRVJBTFMsIElOQy4KKwkJCQk2NjcgUkFOQ0hPIENPTkVKTyBCTFZELgorCQkJCU5FV0JVUlkgUEFSSyBDQSA5MTMyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRDEgICAoaGV4KQkJS0lNVFJPTiBDT1JQT1JBVElPTgorMDA4MEQxICAgICAoYmFzZSAxNikJCUtJTVRST04gQ09SUE9SQVRJT04KKwkJCQkxNzA5IEpVTkNUSU9OIENPVVJUCisJCQkJQlVJTERJTkcgMzgwCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUQyICAgKGhleCkJCVNISU5OSUhPTkRFTktPIENPLiwgTFRELgorMDA4MEQyICAgICAoYmFzZSAxNikJCVNISU5OSUhPTkRFTktPIENPLiwgTFRELgorCQkJCTYtOCBOSVNISVRFTk1BIDIgQ0hPTUUKKwkJCQlLSVRBLUtVLCBPU0FLQSA1MzAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLUQzICAgKGhleCkJCVNISVZBIENPUlAuCiswMDgwRDMgICAgIChiYXNlIDE2KQkJU0hJVkEgQ09SUC4KKwkJCQkyMDUgQlVSTElOR1RPTiBST0FECisJCQkJQkVERk9SRCBNQSAwMTczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRDQgICAoaGV4KQkJQ0hBU0UgUkVTRUFSQ0ggTFRELgorMDA4MEQ0ICAgICAoYmFzZSAxNikJCUNIQVNFIFJFU0VBUkNIIExURC4KKwkJCQk3IENISU5FSEFNIEJVU0lORVNTIFBBUksKKwkJCQlCQVNJTkdTVE9LRSwgUkcgMjQgT1dECisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLUQ1ICAgKGhleCkJCUNBRFJFIFRFQ0hOT0xPR0lFUworMDA4MEQ1ICAgICAoYmFzZSAxNikJCUNBRFJFIFRFQ0hOT0xPR0lFUworCQkJCTE5NTQ1IE5XIFZPTiBORVVNQU5OIERSSVZFCisJCQkJQkVBVkVSVE9OIE9SIDk3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1ENiAgIChoZXgpCQlOVVZPVEVDSCwgSU5DLgorMDA4MEQ2ICAgICAoYmFzZSAxNikJCU5VVk9URUNILCBJTkMuCisJCQkJMjAxNSBCUklER0VXQVksIFNVSVRFIDIwNAorCQkJCVNBVVNBTElUTyBDQSA5NDk2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRDcgICAoaGV4KQkJRmFudHVtIEVuZ2luZWVyaW5nCiswMDgwRDcgICAgIChiYXNlIDE2KQkJRmFudHVtIEVuZ2luZWVyaW5nCisJCQkJCisJCQkJUC5PLiBCb3ggMTUwOQorCQkJCVJvY2t3YWxsIFRYIDc1MDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1EOCAgIChoZXgpCQlORVRXT1JLIFBFUklQSEVSQUxTIElOQy4KKzAwODBEOCAgICAgKGJhc2UgMTYpCQlORVRXT1JLIFBFUklQSEVSQUxTIElOQy4KKwkJCQkyODkwIFpPTktFUiBST0FEIFNVSVRFIDIwOQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1EOSAgIChoZXgpCQlFTUsgRWxla3Ryb25payBHbWJIICYgQ28uIEtHCiswMDgwRDkgICAgIChiYXNlIDE2KQkJRU1LIEVsZWt0cm9uaWsgR21iSCAmIENvLiBLRworCQkJCU9iZXJlIEJlcmdzdHJhc3NlIDE2CisJCQkJNzUzMzUgRG9iZWwgCisJCQkJR0VSTUFOWQorCiswMC04MC1EQSAgIChoZXgpCQlCUlVFTCAmIEtKQUVSCiswMDgwREEgICAgIChiYXNlIDE2KQkJQlJVRUwgJiBLSkFFUgorCQkJCTE4LCBOQUVSVU0gSE9WRURHQURFCisJCQkJREstMjg1MCBOQUVSVU0KKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswMC04MC1EQiAgIChoZXgpCQlHUkFQSE9OIENPUlBPUkFUSU9OCiswMDgwREIgICAgIChiYXNlIDE2KQkJR1JBUEhPTiBDT1JQT1JBVElPTgorCQkJCTE1MDYgREVMTCBBVkUgLSAjCisJCQkJQ0FNUEJFTEwgQ0EgOTUwMDgtNjkxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtREMgICAoaGV4KQkJUElDS0VSIElOVEVSTkFUSU9OQUwKKzAwODBEQyAgICAgKGJhc2UgMTYpCQlQSUNLRVIgSU5URVJOQVRJT05BTAorCQkJCTU5NSBNSU5FUiBST0FECisJCQkJQ0xFVkVMQU5EIE9IIDQ0MTQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1ERCAgIChoZXgpCQlHTVggSU5DL0dJTUlYCiswMDgwREQgICAgIChiYXNlIDE2KQkJR01YIElOQy9HSU1JWAorCQkJCTMyMjMgQVJOT0xEIExBTkUKKwkJCQlOT1JUSEJST09LIElMIDYwMDYyLTI0MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLURFICAgKGhleCkJCUdJUFNJIFMuQS4KKzAwODBERSAgICAgKGJhc2UgMTYpCQlHSVBTSSBTLkEuCisJCQkJMixCRCBWQVVCQU4gLSBCLlAuIDI2OAorCQkJCTc4MDUzIFNULiBRVUVOVElOIEVOIFlWRUxJTkVTIENFREVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTgwLURGICAgKGhleCkJCUFEQyBDT0RFTk9MTCBURUNITk9MT0dZIENPUlAuCiswMDgwREYgICAgIChiYXNlIDE2KQkJQURDIENPREVOT0xMIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkyMDAgQ09SUE9SQVRFIEJMVkQuIFNPLgorCQkJCVlPTktFUlMgTlkgMTA3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUUwICAgKGhleCkJCVhUUCBTWVNURU1TLCBJTkMuCiswMDgwRTAgICAgIChiYXNlIDE2KQkJWFRQIFNZU1RFTVMsIElOQy4KKwkJCQkxOTAwIFNUQVRFIFNUUkVFVCAsIFNURQorCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUUxICAgKGhleCkJCVNUTUlDUk9FTEVDVFJPTklDUworMDA4MEUxICAgICAoYmFzZSAxNikJCVNUTUlDUk9FTEVDVFJPTklDUworCQkJCTEwMDAgQVpURUMgV0VTVAorCQkJCUFMTU9ORFNCVVJZIEJSSVNUT0wgQlMzMiA0U1EKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC1FMiAgIChoZXgpCQlULkQuSS4gQ08uLCBMVEQuCiswMDgwRTIgICAgIChiYXNlIDE2KQkJVC5ELkkuIENPLiwgTFRELgorCQkJCURFVkVMT1BNRU5UIERJVi4gICMzIEZVSkkgQkxERworCQkJCTEtMy0xMyBJVEFDSElCT1JJIE5JU0hJLUtVIE9TQUtBIDU1MAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtRTMgICAoaGV4KQkJQ09SQUwgTkVUV09SSyBDT1JQT1JBVElPTgorMDA4MEUzICAgICAoYmFzZSAxNikJCUNPUkFMIE5FVFdPUksgQ09SUE9SQVRJT04KKwkJCQkoTk9XIEJBWSBORVRXT1JLUykKKwkJCQk0NDAxIEdSRUFUIEFNRVJJQ0FOIFBLV1kgTS9TOiBTQzAxLTA1CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTItODE4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRTQgICAoaGV4KQkJTk9SVEhXRVNUIERJR0lUQUwgU1lTVEVNUywgSU5DCiswMDgwRTQgICAgIChiYXNlIDE2KQkJTk9SVEhXRVNUIERJR0lUQUwgU1lTVEVNUywgSU5DCisJCQkJUC5PLiBCT1ggMTUyODgKKwkJCQlTRUFUVExFIFdBIDk4MTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1FNSAgIChoZXgpCQlMU0kgTG9naWMgQ29ycG9yYXRpb24KKzAwODBFNSAgICAgKGJhc2UgMTYpCQlMU0kgTG9naWMgQ29ycG9yYXRpb24KKwkJCQkzNzE4IE4uIFJvY2sgUm9hZAorCQkJCVdpY2hpdGEgS1MgNjcyMjYtMTM5NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRTYgICAoaGV4KQkJUEVFUiBORVRXT1JLUywgSU5DLgorMDA4MEU2ICAgICAoYmFzZSAxNikJCVBFRVIgTkVUV09SS1MsIElOQy4KKwkJCQkzMzUwIFNDT1RUIEJMVkQuIEJMREcuIDE0CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUU3ICAgKGhleCkJCUxZTldPT0QgU0NJRU5USUZJQyBERVYuIExURC4KKzAwODBFNyAgICAgKGJhc2UgMTYpCQlMWU5XT09EIFNDSUVOVElGSUMgREVWLiBMVEQuCisJCQkJRkFSTkhBTSBUUkFESU5HIEVTVEFURQorCQkJCUZBUk5IQU0sIFNVUlJFWSwgR1U5IDlOTgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtRTggICAoaGV4KQkJQ1VNVUxVUyBDT1JQT1JBVElJT04KKzAwODBFOCAgICAgKGJhc2UgMTYpCQlDVU1VTFVTIENPUlBPUkFUSUlPTgorCQkJCTIzNTAwIE1FUkNBTlRJTEUgUk9BRAorCQkJCUNMRVZFTEFORCBPSCA0NDEyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRTkgICAoaGV4KQkJTWFkZ2UgTHRkLgorMDA4MEU5ICAgICAoYmFzZSAxNikJCU1hZGdlIEx0ZC4KKwkJCQlNYWRnZSBIb3VzZQorCQkJCVByaW9ycyBXYXkKKwkJCQlNYWluZGVuaGVhZCBCZXJrc2hpcmUgU0w2IDJIUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLUVBICAgKGhleCkJCUFEVkEgT3B0aWNhbCBOZXR3b3JraW5nIEx0ZC4KKzAwODBFQSAgICAgKGJhc2UgMTYpCQlBRFZBIE9wdGljYWwgTmV0d29ya2luZyBMdGQuCisJCQkJT25lIFRlY2hub2xvZ3kgUGFya3dheSBTb3V0aAorCQkJCU5vcmNyb3NzIEdBIDMwMDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1FQiAgIChoZXgpCQlDT01QQ09OVFJPTCBCLlYuCiswMDgwRUIgICAgIChiYXNlIDE2KQkJQ09NUENPTlRST0wgQi5WLgorCQkJCVNUUkFUVU1TRUQgSzMxCisJCQkJNTYxMSBOQiBFSU5ESE9WRU4KKwkJCQlUSEUgTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC04MC1FQyAgIChoZXgpCQlTVVBFUkNPTVBVVElORyBTT0xVVElPTlMsIElOQy4KKzAwODBFQyAgICAgKGJhc2UgMTYpCQlTVVBFUkNPTVBVVElORyBTT0xVVElPTlMsIElOQy4KKwkJCQk2MTc1IE5BTkNZIFJJREdFIEJMVkQuCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1FRCAgIChoZXgpCQlJUSBURUNITk9MT0dJRVMsIElOQy4KKzAwODBFRCAgICAgKGJhc2UgMTYpCQlJUSBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkxMTgxMSBORSBGSVJTVCBTVFJFRVQKKwkJCQlTVUlURSAyMDEKKwkJCQlCRUxMRVZVRSBXQSA5ODAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRUUgICAoaGV4KQkJVEhPTVNPTiBDU0YKKzAwODBFRSAgICAgKGJhc2UgMTYpCQlUSE9NU09OIENTRgorCQkJCTUxIEVTUExBTkFERSBEVSBHRU5FUkFMCisJCQkJREUgR0FVTExFIDkyMDQ1IC0gUEFSSVMgTEEgIERFRkVOU0UgLSBDRQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC04MC1FRiAgIChoZXgpCQlSQVRJT05BTAorMDA4MEVGICAgICAoYmFzZSAxNikJCVJBVElPTkFMCisJCQkJMzMyMCBTQ09UVCBCT1VMRVZBUkQKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRjAgICAoaGV4KQkJUGFuYXNvbmljIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorMDA4MEYwICAgICAoYmFzZSAxNikJCVBhbmFzb25pYyBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQk0LTEtNjIgTWlub3NoaW1hIEhha2F0YSBGdWt1b2thCisJCQkJODEyLTg1MzEKKwkJCQlKQVBBTgorCiswMC04MC1GMSAgIChoZXgpCQlPUFVTIFNZU1RFTVMKKzAwODBGMSAgICAgKGJhc2UgMTYpCQlPUFVTIFNZU1RFTVMKKwkJCQkzMDAwIENPUk9OQURPIERSSVZFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUYyICAgKGhleCkJCVJBWUNPTSBTWVNURU1TIElOQworMDA4MEYyICAgICAoYmFzZSAxNikJCVJBWUNPTSBTWVNURU1TIElOQworCQkJCTE2NTI1IFNIRVJNQU4gV0FZICNDLTgKKwkJCQlWQU4gTlVZUyBDQSA5MTQwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRjMgICAoaGV4KQkJU1VOIEVMRUNUUk9OSUNTIENPUlAuCiswMDgwRjMgICAgIChiYXNlIDE2KQkJU1VOIEVMRUNUUk9OSUNTIENPUlAuCisJCQkJMjUwIEFTQUhJIEtPQ0hJTk8tQ0hPCisJCQkJS09OQU4tQ0lUWSBBSUNISQorCQkJCTQ4MyBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLUY0ICAgKGhleCkJCVRFTEVNRUNBTklRVUUgRUxFQ1RSSVFVRQorMDA4MEY0ICAgICAoYmFzZSAxNikJCVRFTEVNRUNBTklRVUUgRUxFQ1RSSVFVRQorCQkJCTMzIEJJUyBBVkVOVUUsCisJCQkJRFUgTUFSRUNIQUwgSk9GRlJFIDkyMDAyIE5BTlRFUlJFIENFREVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTgwLUY1ICAgKGhleCkJCVF1YW50ZWwgTHRkCiswMDgwRjUgICAgIChiYXNlIDE2KQkJUXVhbnRlbCBMdGQKKwkJCQlUdXJucGlrZSBSb2FkCisJCQkJTmV3YnVyeSBCZXJrc2hpcmUgUkcxNCAyTlgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC1GNiAgIChoZXgpCQlTWU5FUkdZIE1JQ1JPU1lTVEVNUworMDA4MEY2ICAgICAoYmFzZSAxNikJCVNZTkVSR1kgTUlDUk9TWVNURU1TCisJCQkJOTYwNSBTQ1JBTlRPTiBST0FELVNURSAjNzAwCisJCQkJU0FOIERJRUdPIENBIDkyMTIxLTE3NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUY3ICAgKGhleCkJCVpFTklUSCBFTEVDVFJPTklDUworMDA4MEY3ICAgICAoYmFzZSAxNikJCVpFTklUSCBFTEVDVFJPTklDUworCQkJCTEwMDAgTUlMV0FVS0VFIEFWRU5VRQorCQkJCUdMRU5WSUVXIElMIDYwMDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1GOCAgIChoZXgpCQlNSVpBUiwgSU5DLgorMDA4MEY4ICAgICAoYmFzZSAxNikJCU1JWkFSLCBJTkMuCisJCQkJMTQxOSBEVU5OIERSSVZFCisJCQkJQ0FSUk9MTFRPTiBUWCA3NTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRjkgICAoaGV4KQkJSEVVUklLT04gQ09SUE9SQVRJT04KKzAwODBGOSAgICAgKGJhc2UgMTYpCQlIRVVSSUtPTiBDT1JQT1JBVElPTgorCQkJCTgzMTAgRVhDRUxTSU9SIERSSVZFCisJCQkJTUFESVNPTiBXSSA1MzcxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRkEgICAoaGV4KQkJUldUIEdNQkgKKzAwODBGQSAgICAgKGJhc2UgMTYpCQlSV1QgR01CSAorCQkJCVRBTEFOR0VSU1RSLiA1LTcKKwkJCQlEIC0gODAzMyBLUkFJTExJTkcKKwkJCQlXRVNUIEdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTgwLUZCICAgKGhleCkJCUJWTSBMSU1JVEVECiswMDgwRkIgICAgIChiYXNlIDE2KQkJQlZNIExJTUlURUQKKwkJCQlIT0JCIExBTkUKKwkJCQlIRURHRSBFTkQgU09VVEhBTVBUT04KKwkJCQlFTkdMQU5EIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLUZDICAgKGhleCkJCUFWQVRBUiBDT1JQT1JBVElPTgorMDA4MEZDICAgICAoYmFzZSAxNikJCUFWQVRBUiBDT1JQT1JBVElPTgorCQkJCTY1IFNPVVRIIFNUUkVFVAorCQkJCUhPUEtJTlRPTiBNQSAwMTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRkQgICAoaGV4KQkJRVhTQ0VFRCBDT1JQUkFUSU9OCiswMDgwRkQgICAgIChiYXNlIDE2KQkJRVhTQ0VFRCBDT1JQUkFUSU9OCisJCQkJMS0xNS0xMiwgS0lUQUtBU0UsIFNBSVdBSS1LVQorCQkJCUtBV0FTQUtJLUNJVFksIDIxMSBLQU5BR0FXQQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtRkUgICAoaGV4KQkJQVpVUkUgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDgwRkUgICAgIChiYXNlIDE2KQkJQVpVUkUgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNjMgU09VVEggU1RSRUVUCisJCQkJSE9QS0lOVE9OIE1BIDAxNzQ4LTIyMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUZGICAgKGhleCkJCVNPQy4gREUgVEVMRUlORk9STUFUSVFVRSBSVEMKKzAwODBGRiAgICAgKGJhc2UgMTYpCQlTT0MuIERFIFRFTEVJTkZPUk1BVElRVUUgUlRDCisJCQkJUC5PLiBCT1ggOTU1IFBMQUNFIERVIFBBUkMKKwkJCQkzMDAgTEVPLVBBUklTVEFVICAgIFNVSVRFIDcyNSBNT05UUkVBTCAoCisJCQkJQ0FOQURBIEgyVyAyTjEKKwkJCQlDQU5BREEKKworMDAtOEMtMTAgICAoaGV4KQkJQmxhY2sgQm94IENvcnAuCiswMDhDMTAgICAgIChiYXNlIDE2KQkJQmxhY2sgQm94IENvcnAuCisJCQkJMTAwMCBQYXJrIERyaXZlCisJCQkJTGF3cmVuY2UgUEEgMTUwNTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLThDLUZBICAgKGhleCkJCUludmVudGVjIENvcnBvcmF0aW9uCiswMDhDRkEgICAgIChiYXNlIDE2KQkJSW52ZW50ZWMgQ29ycG9yYXRpb24KKwkJCQlOby4gMjU1LCBKZW4tSG8gUm9hZCBTZWMuIDIsIDMzNTQ3LAorCQkJCVRhY2hpIFRhb3l1YW4gMzM1NDcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLThELTRFICAgKGhleCkJCUNKU0MgTklJIFNUVAorMDA4RDRFICAgICAoYmFzZSAxNikJCUNKU0MgTklJIFNUVAorCQkJCU4uTGVuaW5ncmFkc2theWEgc3RyLCAxMAorCQkJCVNtb2xlbnNrICAyMTQwMTIKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtOTAtMDAgICAoaGV4KQkJRElBTU9ORCBNVUxUSU1FRElBCiswMDkwMDAgICAgIChiYXNlIDE2KQkJRElBTU9ORCBNVUxUSU1FRElBCisJCQkJMzEyIFNFIFNUT05FTUlMTCBEUklWRQorCQkJCVNVSVRFICMxNTAKKwkJCQlWQU5DT1VWRVIgV0EgOTg2ODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTAxICAgKGhleCkJCU5JU0hJTVUgRUxFQ1RST05JQ1MgSU5EVVNUUklFUyBDTy4sIExURC4KKzAwOTAwMSAgICAgKGJhc2UgMTYpCQlOSVNISU1VIEVMRUNUUk9OSUNTIElORFVTVFJJRVMgQ08uLCBMVEQuCisJCQkJNzAwIFRBVEVOTyBNSVRBR0FXQS1DSE8KKwkJCQlLQU5aQUtJLUdVTiBTQUdBIFBSRUYuICAKKwkJCQlKQVBBTgorCiswMC05MC0wMiAgIChoZXgpCQlBTExHT04gQUIKKzAwOTAwMiAgICAgKGJhc2UgMTYpCQlBTExHT04gQUIKKwkJCQlHQVJEQVRPUkdFVCAxCisJCQkJNDEyIDUwIEdPVEVCT1JHIAorCQkJCVNXRURFTgorCiswMC05MC0wMyAgIChoZXgpCQlBUExJTworMDA5MDAzICAgICAoYmFzZSAxNikJCUFQTElPCisJCQkJMTggQXZlbnVlIER1IDggTWFpIDE5NDUKKwkJCQk5NTIwMCBTQVJDRUxMRVMKKwkJCQlGUkFOQ0UKKworMDAtOTAtMDQgICAoaGV4KQkJM0NPTSBFVVJPUEUgTFRELgorMDA5MDA0ICAgICAoYmFzZSAxNikJCTNDT00gRVVST1BFIExURC4KKwkJCQkzQ09NIENFTlRSRSwgQk9VTkRBUlkgV0FZCisJCQkJSEVNRUwgSEVNUFNURUFECisJCQkJSEVSVFMuICBIUDIgN1lVICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC05MC0wNSAgIChoZXgpCQlQUk9URUNIIFNZU1RFTVMgQ08uLCBMVEQuCiswMDkwMDUgICAgIChiYXNlIDE2KQkJUFJPVEVDSCBTWVNURU1TIENPLiwgTFRELgorCQkJCTVGLCBOTy4gMzQsIExBTkUgODAsIFNFQy4gMworCQkJCU5BTktBTkcgUk9BRAorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC0wNiAgIChoZXgpCQlIQU1BTUFUU1UgUEhPVE9OSUNTIEsuSy4KKzAwOTAwNiAgICAgKGJhc2UgMTYpCQlIQU1BTUFUU1UgUEhPVE9OSUNTIEsuSy4KKwkJCQk4MTIgSk9LTy1DSE8KKwkJCQlIQU1BTUFUU1UgIDQzMS0zMTk2CisJCQkJSkFQQU4KKworMDAtOTAtMDcgICAoaGV4KQkJRE9NRVggVEVDSE5PTE9HWSBDT1JQLgorMDA5MDA3ICAgICAoYmFzZSAxNikJCURPTUVYIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQlOTy4gMiwgVEVDSE5PTE9HWSBSRC4gMQorCQkJCVNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLCisJCQkJIEhTSU5DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtMDggICAoaGV4KQkJSGFuQSBTeXN0ZW1zIEluYy4KKzAwOTAwOCAgICAgKGJhc2UgMTYpCQlIYW5BIFN5c3RlbXMgSW5jLgorCQkJCUVBSE8gQi9EIDc0MC0xCisJCQkJWUVPSyBTQU0tRE9ORywgS0FOR05BTS1LVQorCQkJCVNFT1VMICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtOTAtMDkgICAoaGV4KQkJaSBDb250cm9scywgSW5jLgorMDA5MDA5ICAgICAoYmFzZSAxNikJCWkgQ29udHJvbHMsIEluYy4KKwkJCQkybmQgRmwsIEknUGFyayAzMDIsIDExIEplb25namEtRG9uZywKKwkJCQlCdW5kYW5nLUdVLCBTZW9uZ25hbSwKKwkJCQlHeWVvbmdnaS1EbyA0NjMtODU5IAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC05MC0wQSAgIChoZXgpCQlQUk9UT04gRUxFQ1RST05JQyBJTkRVU1RSSUFMIENPLiwgTFRELgorMDA5MDBBICAgICAoYmFzZSAxNikJCVBST1RPTiBFTEVDVFJPTklDIElORFVTVFJJQUwgQ08uLCBMVEQuCisJCQkJCisJCQkJNEYsIDQ1LCBTRUNUSU9OIDEsIFNBTi1NSU4gUkQKKwkJCQlQYW5jaGlhbywgVGFpcGVpIENvdW50eSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC0wQiAgIChoZXgpCQlMQU5ORVIgRUxFQ1RST05JQ1MsIElOQy4KKzAwOTAwQiAgICAgKGJhc2UgMTYpCQlMQU5ORVIgRUxFQ1RST05JQ1MsIElOQy4KKwkJCQk4Ri00LCBOTy4gNzcsIFNFQy4gMQorCQkJCUhTSU4gVEFJIFdVIFJELiwgSFNJQ0hJSAorCQkJCVRBSVBFSSBIU0lFTiAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLTBDICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwOTAwQyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRSAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMEQgICAoaGV4KQkJT3ZlcmxhbmQgU3RvcmFnZSBJbmMuCiswMDkwMEQgICAgIChiYXNlIDE2KQkJT3ZlcmxhbmQgU3RvcmFnZSBJbmMuCisJCQkJNDgyMCBPdmVybGFuZCBBdmVudWUKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTBFICAgKGhleCkJCUhBTkRMSU5LIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA5MDBFICAgICAoYmFzZSAxNikJCUhBTkRMSU5LIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTVGLCAyNC0yLCBJbmR1c3RyeSBFLiBSb2FkIElWLAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgMzAwNzcgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtMEYgICAoaGV4KQkJS0FXQVNBS0kgSEVBVlkgSU5EVVNUUklFUywgTFRECiswMDkwMEYgICAgIChiYXNlIDE2KQkJS0FXQVNBS0kgSEVBVlkgSU5EVVNUUklFUywgTFRECisJCQkJRUxFQy4gJiBDT05UUk9MIFRFQ0ggQ0VOVEVSCisJCQkJMS0xIEtBV0FTQUtJLUNITyBBS0FTSEkgNjczLTg2NjYKKwkJCQlKQVBBTgorCiswMC05MC0xMCAgIChoZXgpCQlTSU1VTEFUSU9OIExBQk9SQVRPUklFUywgSU5DLgorMDA5MDEwICAgICAoYmFzZSAxNikJCVNJTVVMQVRJT04gTEFCT1JBVE9SSUVTLCBJTkMuCisJCQkJMTAwNzggVFlMRVIgUExBQ0UgI0EKKwkJCQlJSkFNU1ZJTExFIE1EIDIxNzU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0xMSAgIChoZXgpCQlXQVZUcmFjZSwgSW5jLgorMDA5MDExICAgICAoYmFzZSAxNikJCVdBVlRyYWNlLCBJbmMuCisJCQkJMTU1NSAxMzJORCBBVkUuIE5FCisJCQkJQkVMTEVWVUUgV0EgOTgwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTEyICAgKGhleCkJCUdMT0JFU1BBTiBTRU1JQ09ORFVDVE9SLCBJTkMuCiswMDkwMTIgICAgIChiYXNlIDE2KQkJR0xPQkVTUEFOIFNFTUlDT05EVUNUT1IsIElOQy4KKwkJCQkxMDAgU0NIVUxaIERSSVZFCisJCQkJUkVEIEJBTksgTkogMDc3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTEzICAgKGhleCkJCVNBTVNBTiBDT1JQLgorMDA5MDEzICAgICAoYmFzZSAxNikJCVNBTVNBTiBDT1JQLgorCQkJCUVMRUNUUk9OSUNTICYgQ09NTSBESVZJU0lPTgorCQkJCVNBTVNBTiBCTERHLiwgNTA2LTcsIEFNU0EtRE9ORworCQkJCUthbmdkb25nLUd1IFNlb3VsIDEzNC0wNTAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTkwLTE0ICAgKGhleCkJCVJPVE9SSyBJTlNUUlVNRU5UUywgTFRELgorMDA5MDE0ICAgICAoYmFzZSAxNikJCVJPVE9SSyBJTlNUUlVNRU5UUywgTFRELgorCQkJCUNIQVVMIEVORCBMQU5FCisJCQkJTFVUT04gQkVERk9SRFNISVJFCisJCQkJTFU0IDhFWiBFbmdsYW5kIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTkwLTE1ICAgKGhleCkJCUNFTlRJR1JBTSBDT01NVU5JQ0FUSU9OUyBDT1JQLgorMDA5MDE1ICAgICAoYmFzZSAxNikJCUNFTlRJR1JBTSBDT01NVU5JQ0FUSU9OUyBDT1JQLgorCQkJCTkxIEVBU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTE2ICAgKGhleCkJCVpBQworMDA5MDE2ICAgICAoYmFzZSAxNikJCVpBQworCQkJCVN0aT9vZXZlc3RyLiA5CisJCQkJRC0zMTE0MSBIaWxkZXNoZWltICAKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLTE3ICAgKGhleCkJCVp5cGNvbSwgSW5jCiswMDkwMTcgICAgIChiYXNlIDE2KQkJWnlwY29tLCBJbmMKKwkJCQkyODQwMCBLb2hvdXRlayBXYXkKKwkJCQlTdWl0ZSAxNzAKKwkJCQlVbmlvbiBDaXR5IENBIDk0NTg3LTEyMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTE4ICAgKGhleCkJCUlUTyBFTEVDVFJJQyBJTkRVU1RSWSBDTywgTFRELgorMDA5MDE4ICAgICAoYmFzZSAxNikJCUlUTyBFTEVDVFJJQyBJTkRVU1RSWSBDTywgTFRELgorCQkJCTQtMjYtMTIgTUVJRUtJIE5BS0FNVVJBLUtVCisJCQkJTkFHT1lBLUNJVFkgQUlDSEkgNDUwLTAwMDIgIAorCQkJCUpBUEFOCisKKzAwLTkwLTE5ICAgKGhleCkJCUhFUk1FUyBFTEVDVFJPTklDUyBDTy4sIExURC4KKzAwOTAxOSAgICAgKGJhc2UgMTYpCQlIRVJNRVMgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJMy0yLTEyIFlVU0hJTUEsIEJVTktZTy1LVQorCQkJCVRPS1lPLCAxMTMtMDAzNCAgCisJCQkJSkFQQU4KKworMDAtOTAtMUEgICAoaGV4KQkJVU5JU1BIRVJFIFNPTFVUSU9OUworMDA5MDFBICAgICAoYmFzZSAxNikJCVVOSVNQSEVSRSBTT0xVVElPTlMKKwkJCQk1IENBUkxJU0xFIFJPQUQKKwkJCQlXRVNURk9SRCBNQSAwMTg4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMUIgICAoaGV4KQkJRElHSVRBTCBDT05UUk9MUworMDA5MDFCICAgICAoYmFzZSAxNikJCURJR0lUQUwgQ09OVFJPTFMKKwkJCQkzMDUgUElPTkVFUiBCTFZELgorCQkJCVNQUklOR0JPUk8gT0ggNDUwNjYtMTEwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMUMgICAoaGV4KQkJbXBzIFNvZnR3YXJlIEdtYmgKKzAwOTAxQyAgICAgKGJhc2UgMTYpCQltcHMgU29mdHdhcmUgR21iaAorCQkJCUxVRFdJR1NUUiAzNgorCQkJCTg1NTUxIEtJUkNISEVJTSAgCisJCQkJR0VSTUFOWQorCiswMC05MC0xRCAgIChoZXgpCQlQRUMgKE5aKSBMVEQuCiswMDkwMUQgICAgIChiYXNlIDE2KQkJUEVDIChOWikgTFRELgorCQkJCTIgU1RBVElPTiBST0FECisJCQkJUC5PLiBCT1ggMzA4CisJCQkJTUFSVE9OICAKKwkJCQlORVcgWkVBTEFORAorCiswMC05MC0xRSAgIChoZXgpCQlTZWxlc3RhIEluZ2VnbmVyaWEgUy5wLkEuCiswMDkwMUUgICAgIChiYXNlIDE2KQkJU2VsZXN0YSBJbmdlZ25lcmlhIFMucC5BLgorCQkJCXZpYSBkaSBGcmFuY2lhLCAyOAorCQkJCUdlbm92YSAgMTYxNDkKKwkJCQlJVEFMWQorCiswMC05MC0xRiAgIChoZXgpCQlBRFRFQyBQUk9EVUNUSU9OUywgSU5DLgorMDA5MDFGICAgICAoYmFzZSAxNikJCUFEVEVDIFBST0RVQ1RJT05TLCBJTkMuCisJCQkJNDA4IFJVU1NFTEwgU1RSRUVUCisJCQkJTkFTSFZJTExFIFROIDM3MjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0yMCAgIChoZXgpCQlQSElMSVBTIEFOQUxZVElDQUwgWC1SQVkgQi5WLgorMDA5MDIwICAgICAoYmFzZSAxNikJCVBISUxJUFMgQU5BTFlUSUNBTCBYLVJBWSBCLlYuCisJCQkJTEVMWVdFRyAxCisJCQkJNzYwMiBFQSBBTE1FTE8gIAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTkwLTIxICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwOTAyMSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUi4gLSBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTIyICAgKGhleCkJCUlWRVgKKzAwOTAyMiAgICAgKGJhc2UgMTYpCQlJVkVYCisJCQkJNDI5NSBJTlRFUk5BVElPTkFMIEJMVkQuCisJCQkJU1VJVEUKKwkJCQlOT1JDUk9TUyBHQSAzMDA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMjMgICAoaGV4KQkJWklMT0cgSU5DLgorMDA5MDIzICAgICAoYmFzZSAxNikJCVpJTE9HIElOQy4KKwkJCQk5MTAgRWFzdCBIYW1pbHRvbiBBdmUuCisJCQkJQ2FtcGJlbGwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTI0ICAgKGhleCkJCVBJUEVMSU5LUywgSU5DLgorMDA5MDI0ICAgICAoYmFzZSAxNikJCVBJUEVMSU5LUywgSU5DLgorCQkJCTI3MTAgV0FMU0ggQVZFLiwgU1RFICMzMDAKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMjUgICAoaGV4KQkJQkFFIFN5c3RlbXMgQXVzdHJhbGlhIChFbGVjdHJvbmljIFN5c3RlbXMpIFB0eSBMdGQKKzAwOTAyNSAgICAgKGJhc2UgMTYpCQlCQUUgU3lzdGVtcyBBdXN0cmFsaWEgKEVsZWN0cm9uaWMgU3lzdGVtcykgUHR5IEx0ZAorCQkJCTMgU2Vjb25kIEF2ZQorCQkJCU1hd3NvbiBMYWtlcyBTb3V0aCBBdXN0cmFsaWEgNTA5NQorCQkJCUFVU1RSQUxJQQorCiswMC05MC0yNiAgIChoZXgpCQlBRFZBTkNFRCBTV0lUQ0hJTkcgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwOTAyNiAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBTV0lUQ0hJTkcgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk4MzMwIEJPT05FIEJPVUxFVkFSRC0tNVRIIEZMLgorCQkJCVZJRU5OQSBWQSAyMjE4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMjcgICAoaGV4KQkJSU5URUwgQ09SUE9SQVRJT04KKzAwOTAyNyAgICAgKGJhc2UgMTYpCQlJTlRFTCBDT1JQT1JBVElPTgorCQkJCUhGMS0wNgorCQkJCTUyMDAgTi5FLiBFTEFNIFlPVU5HIFBBUktXQVkKKwkJCQlISUxMU0JPUk8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTI4ICAgKGhleCkJCU5JUFBPTiBTSUdOQUwgQ08uLCBMVEQuCiswMDkwMjggICAgIChiYXNlIDE2KQkJTklQUE9OIFNJR05BTCBDTy4sIExURC4KKwkJCQkxMSBISVJBSURFLUtPR0lPLURBTkNISQorCQkJCVVJU1VOT01JWUEgVE9DSElHSSAzMjEtODY1MSAgCisJCQkJSkFQQU4KKworMDAtOTAtMjkgICAoaGV4KQkJQ1JZUFRPIEFHCiswMDkwMjkgICAgIChiYXNlIDE2KQkJQ1JZUFRPIEFHCisJCQkJUC5PLiBCT1gKKwkJCQlDSC02MzAxIFp1ZyAgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtOTAtMkEgICAoaGV4KQkJQ09NTVVOSUNBVElPTiBERVZJQ0VTLCBJTkMuCiswMDkwMkEgICAgIChiYXNlIDE2KQkJQ09NTVVOSUNBVElPTiBERVZJQ0VTLCBJTkMuCisJCQkJODUgRnVsdG9uIFN0cmVldAorCQkJCUJvb250b24gTkogMDcwMDUtMTkxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMkIgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MDJCICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQlTSkEtMgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0yQyAgIChoZXgpCQlEQVRBICYgQ09OVFJPTCBFUVVJUE1FTlQgTFRELgorMDA5MDJDICAgICAoYmFzZSAxNikJCURBVEEgJiBDT05UUk9MIEVRVUlQTUVOVCBMVEQuCisJCQkJQ09VTlRZIEZBUk0sIFdFTkRPVkVSIFJELgorCQkJCVNUT0tFIE1BTkRFVklMTEUKKwkJCQlCVUNLUy4gSFAyMiBTVEEgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTkwLTJEICAgKGhleCkJCURBVEEgRUxFQ1RST05JQ1MgKEFVU1QuKSBQVFksIExURC4KKzAwOTAyRCAgICAgKGJhc2UgMTYpCQlEQVRBIEVMRUNUUk9OSUNTIChBVVNULikgUFRZLCBMVEQuCisJCQkJNyBTRUlTTUlDIENPVVJUCisJCQkJUk9XVklMTEUKKwkJCQlWSUNUT1JJQSAzMTc4ICAKKwkJCQlBVVNUUkFMSUEKKworMDAtOTAtMkUgICAoaGV4KQkJTkFNQ08gTElNSVRFRAorMDA5MDJFICAgICAoYmFzZSAxNikJCU5BTUNPIExJTUlURUQKKwkJCQkxLTEtMzIgU0hJTi1VUkFTSElNQS1DSE8KKwkJCQlLQU5BR0FXQS1LVSwgWU9LT0hBTUEKKwkJCQlLQU5BR0FXQSAyMjEtMDAzMSAgCisJCQkJSkFQQU4KKworMDAtOTAtMkYgICAoaGV4KQkJTkVUQ09SRSBTWVNURU1TLCBJTkMuCiswMDkwMkYgICAgIChiYXNlIDE2KQkJTkVUQ09SRSBTWVNURU1TLCBJTkMuCisJCQkJMTg3IEJBTExBUkRWQUxFIFNUUkVFVAorCQkJCVdJTE1JTkdUT04gTUEgMDE4ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTMwICAgKGhleCkJCUhPTkVZV0VMTC1EQVRJTkcKKzAwOTAzMCAgICAgKGJhc2UgMTYpCQlIT05FWVdFTEwtREFUSU5HCisJCQkJVklBIFRJTlRPUkVUVE8sIDE1CisJCQkJMjEwMTIgQ0FTU0FOTyBNQUdOQUdPIChWQSkgIAorCQkJCUlUQUxZCisKKzAwLTkwLTMxICAgKGhleCkJCU1ZU1RJQ09NLCBMVEQuCiswMDkwMzEgICAgIChiYXNlIDE2KQkJTVlTVElDT00sIExURC4KKwkJCQlQLk8uIDgzNjQKKwkJCQlOQVRBTklBIDQyNTA0ICAKKwkJCQlJU1JBRUwKKworMDAtOTAtMzIgICAoaGV4KQkJUEVMQ09NQkUgR1JPVVAgTFRELgorMDA5MDMyICAgICAoYmFzZSAxNikJCVBFTENPTUJFIEdST1VQIExURC4KKwkJCQlNQUlOIFJPQUQKKwkJCQlET1ZFUkNPVVJULCBIQVJXSUNICisJCQkJRVNTRVggQzAxMiA0TFAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtOTAtMzMgICAoaGV4KQkJSU5OT1ZBUEhPTkUgQUcKKzAwOTAzMyAgICAgKGJhc2UgMTYpCQlJTk5PVkFQSE9ORSBBRworCQkJCUJvZWJsaW5nZXIgU3RyLiA3NgorCQkJCVNJTkRFTEZJTkdFTiAgRDcxMDY1CisJCQkJR0VSTUFOWQorCiswMC05MC0zNCAgIChoZXgpCQlJTUFHSUMsIElOQy4KKzAwOTAzNCAgICAgKGJhc2UgMTYpCQlJTUFHSUMsIElOQy4KKwkJCQkyMzUgV2VzdCBSb2FkICM3CisJCQkJUG9ydHNtb3V0aCBOSCAwMzgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMzUgICAoaGV4KQkJQUxQSEEgVEVMRUNPTSwgSU5DLgorMDA5MDM1ICAgICAoYmFzZSAxNikJCUFMUEhBIFRFTEVDT00sIElOQy4KKwkJCQkyRiwgTk8uMiwgTEkgSFNJTiBST0FECisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOLUNIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC0zNiAgIChoZXgpCQllbnMsIGluYy4KKzAwOTAzNiAgICAgKGJhc2UgMTYpCQllbnMsIGluYy4KKwkJCQlQLk8uIEJPWCAxOTIwNworCQkJCVJBTEVJR0ggTkMgMjc2MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTM3ICAgKGhleCkJCUFDVUNPTU0sIElOQy4KKzAwOTAzNyAgICAgKGJhc2UgMTYpCQlBQ1VDT01NLCBJTkMuCisJCQkJNDYzMyBPTEQgSVJPTlNJREVTIC0gU1RFICMzMTAKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMzggICAoaGV4KQkJRk9VTlRBSU4gVEVDSE5PTE9HSUVTLCBJTkMuCiswMDkwMzggICAgIChiYXNlIDE2KQkJRk9VTlRBSU4gVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNTAgUkFORE9MUEggUk9BRAorCQkJCVNPTUVSU0VUIE5KIDA4ODczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0zOSAgIChoZXgpCQlTSEFTVEEgTkVUV09SS1MKKzAwOTAzOSAgICAgKGJhc2UgMTYpCQlTSEFTVEEgTkVUV09SS1MKKwkJCQkyNDkgSFVNQk9MRFQgQ09VUlQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODktMTMwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtM0EgICAoaGV4KQkJTklIT04gTUVESUEgVE9PTCBJTkMuCiswMDkwM0EgICAgIChiYXNlIDE2KQkJTklIT04gTUVESUEgVE9PTCBJTkMuCisJCQkJMTg3NSBPWUFNQS1DSE8KKwkJCQlZT0tLQUlDSEktQ0lUWQorCQkJCU1JRSA1MTItMTEwMiAgCisJCQkJSkFQQU4KKworMDAtOTAtM0IgICAoaGV4KQkJVHJpRU1TIFJlc2VhcmNoIExhYiwgSW5jLgorMDA5MDNCICAgICAoYmFzZSAxNikJCVRyaUVNUyBSZXNlYXJjaCBMYWIsIEluYy4KKwkJCQkxMjc1IE4uIFRVU1RJTiBBVkVOVUUKKwkJCQlBTkFIRUlNIENBIDkyODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0zQyAgIChoZXgpCQlBVExBTlRJQyBORVRXT1JLIFNZU1RFTVMKKzAwOTAzQyAgICAgKGJhc2UgMTYpCQlBVExBTlRJQyBORVRXT1JLIFNZU1RFTVMKKwkJCQlJTU1FVUJMRSAiS2VubmVkeSIKKwkJCQlaSVRFUiBBVkVOVUUgSkYgS0VOTkVEWQorCQkJCTMzNzAwIE1FUklHTkFDIAorCQkJCUZSQU5DRQorCiswMC05MC0zRCAgIChoZXgpCQlCSU9QQUMgU1lTVEVNUywgSU5DLgorMDA5MDNEICAgICAoYmFzZSAxNikJCUJJT1BBQyBTWVNURU1TLCBJTkMuCisJCQkJNDIgQUVSTyBDQU1JTk8KKwkJCQlTQU5UQSBCQVJCQVJBIENBIDkzMTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0zRSAgIChoZXgpCQlOLlYuIFBISUxJUFMgSU5EVVNUUklBTCBBQ1RJVklUSUVTCiswMDkwM0UgICAgIChiYXNlIDE2KQkJTi5WLiBQSElMSVBTIElORFVTVFJJQUwgQUNUSVZJVElFUworCQkJCQorCQkJCUlOVEVSTEVVVkVOTEFBTiA3NC03NgorCQkJCUItMzAwMSBMRVVWRU4gIAorCQkJCUJFTEdJVU0KKworMDAtOTAtM0YgICAoaGV4KQkJQVpURUMgUkFESU9NRURJQQorMDA5MDNGICAgICAoYmFzZSAxNikJCUFaVEVDIFJBRElPTUVESUEKKwkJCQkzMSwgUlVFIERVIENIRU1JTkRFRkVSCisJCQkJNjcyMDAgU1RSQVNCT1VSRyAgCisJCQkJRlJBTkNFCisKKzAwLTkwLTQwICAgKGhleCkJCVNpZW1lbnMgTmV0d29yayBDb252ZXJnZW5jZSBMTEMKKzAwOTA0MCAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIE5ldHdvcmsgQ29udmVyZ2VuY2UgTExDCisJCQkJVGVuIFRlY2hub2xvZ3kgUGFyayBEcml2ZQorCQkJCVdlc3Rmb3JkIE1BIDAxODg2LTMxNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTQxICAgKGhleCkJCUFQUExJRUQgRElHSVRBTCBBQ0NFU1MKKzAwOTA0MSAgICAgKGJhc2UgMTYpCQlBUFBMSUVEIERJR0lUQUwgQUNDRVNTCisJCQkJOTg1NSBTQ1JBTlRPTiBST0FECisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC00MiAgIChoZXgpCQlFQ0NTLCBJbmMuCiswMDkwNDIgICAgIChiYXNlIDE2KQkJRUNDUywgSW5jLgorCQkJCU9ORSBTSEVJTEEgRFJJVkUKKwkJCQlUSU5UT04gRkFMTFMgTkogMDc3MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTQzICAgKGhleCkJCU5JQ0hJQkVJIERFTlNISSBDTy4sIExURC4KKzAwOTA0MyAgICAgKGJhc2UgMTYpCQlOSUNISUJFSSBERU5TSEkgQ08uLCBMVEQuCisJCQkJMS0xMy0xMCBTSElST0dBTkUgIENIVU8tS1UKKwkJCQlGVUtVT0tBLUNJVFkgIAorCQkJCUpBUEFOCisKKzAwLTkwLTQ0ICAgKGhleCkJCUFTU1VSRUQgRElHSVRBTCwgSU5DLgorMDA5MDQ0ICAgICAoYmFzZSAxNikJCUFTU1VSRUQgRElHSVRBTCwgSU5DLgorCQkJCTktMTEgR09MRFNNSVRIIFNULgorCQkJCUxJVFRMRVRPTiBNQSAwMTQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNDUgICAoaGV4KQkJTWFyY29uaSBDb21tdW5pY2F0aW9ucworMDA5MDQ1ICAgICAoYmFzZSAxNikJCU1hcmNvbmkgQ29tbXVuaWNhdGlvbnMKKwkJCQkxMDAwIEZvcmUgRHJpdmUKKwkJCQlXYXJyZW5kYWxlIFBBIDE1MDg2LTc1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTQ2ICAgKGhleCkJCURFWERZTkUsIExURC4KKzAwOTA0NiAgICAgKGJhc2UgMTYpCQlERVhEWU5FLCBMVEQuCisJCQkJMTUgTUFSS0VUIFBMLgorCQkJCUNJUkVOQ0VTVEVSCisJCQkJR0xPQ0VTVEVSU0hJUkUgR0w3IDJQQiAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtOTAtNDcgICAoaGV4KQkJR0lHQSBGQVNUIEUuIExURC4KKzAwOTA0NyAgICAgKGJhc2UgMTYpCQlHSUdBIEZBU1QgRS4gTFRELgorCQkJCTE0RiwgTk8uMTEyLCBTRUMuIDEKKwkJCQlIU0lOLVRBSSBXVSBSRC4KKwkJCQlIc2ktQ2hpaCBUYWlwZWkgSHNpZW4gCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC00OCAgIChoZXgpCQlaRUFMIENPUlBPUkFUSU9OCiswMDkwNDggICAgIChiYXNlIDE2KQkJWkVBTCBDT1JQT1JBVElPTgorCQkJCTMwMSwgSElSQUlLRQorCQkJCU5BR0FLVVRFLUNITywgQUlDSEktUFJFRi4gNDgwLTExNTUgIAorCQkJCUpBUEFOCisKKzAwLTkwLTQ5ICAgKGhleCkJCUVOVFJJRElBIENPUlBPUkFUSU9OCiswMDkwNDkgICAgIChiYXNlIDE2KQkJRU5UUklESUEgQ09SUE9SQVRJT04KKwkJCQkxMDEgUEFSSyBDRU5URVIgUExBWkEKKwkJCQlTVUlURSAjNTAwCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTMtMjIxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNEEgICAoaGV4KQkJQ09OQ1VSIFNZU1RFTSBURUNITk9MT0dJRVMKKzAwOTA0QSAgICAgKGJhc2UgMTYpCQlDT05DVVIgU1lTVEVNIFRFQ0hOT0xPR0lFUworCQkJCTI1MjUgV0FMTElOR1dPT0QgRFIuLVNURS4gIzgwNAorCQkJCUFVU1RJTiBUWCA3ODc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNEIgICAoaGV4KQkJR2VtVGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDkwNEIgICAgIChiYXNlIDE2KQkJR2VtVGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uIDEgSmVuIEFpIFJvYWQsCisJCQkJSHNpbmNodSBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHVrb3UsIEhzaW5jaHUsIFRhaXdhbiAzMDM1MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtNEMgICAoaGV4KQkJRVBJR1JBTSwgSU5DLgorMDA5MDRDICAgICAoYmFzZSAxNikJCUVQSUdSQU0sIElOQy4KKwkJCQk4NzAgV0VTVCBNQVVERSBBVkUuCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC00RCAgIChoZXgpCQlTUEVDIFMuQS4KKzAwOTA0RCAgICAgKGJhc2UgMTYpCQlTUEVDIFMuQS4KKwkJCQlDQVNQIDE3MiAzLUIKKwkJCQkwODAxMyBCQVJDRUxPTkEgIAorCQkJCVNQQUlOCisKKzAwLTkwLTRFICAgKGhleCkJCURFTEVNIEJWCiswMDkwNEUgICAgIChiYXNlIDE2KQkJREVMRU0gQlYKKwkJCQlMVUNIVEhBVkVOIFdFRyA0MgorCQkJCTU2NTcgRUIgRUlOREhPVkVOICAKKwkJCQlORVRIRVJMQU5EUworCiswMC05MC00RiAgIChoZXgpCQlBQkIgUE9XRVIgVCZEIENPTVBBTlksIElOQy4KKzAwOTA0RiAgICAgKGJhc2UgMTYpCQlBQkIgUE9XRVIgVCZEIENPTVBBTlksIElOQy4KKwkJCQk3MDM2IFNOT1dEUklGVCBST0FECisJCQkJQUxMRU5UT1dOIFBBIDE4MTA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC01MCAgIChoZXgpCQlURUxFU1RFIE9ZCiswMDkwNTAgICAgIChiYXNlIDE2KQkJVEVMRVNURSBPWQorCQkJCVNFUE9OS0FUVSAxCisJCQkJTElUVE9JTkVOICBGSU4tMjA2NjAKKwkJCQlGSU5MQU5ECisKKzAwLTkwLTUxICAgKGhleCkJCVVMVElNQVRFIFRFQ0hOT0xPR1kgQ09SUC4KKzAwOTA1MSAgICAgKGJhc2UgMTYpCQlVTFRJTUFURSBURUNITk9MT0dZIENPUlAuCisJCQkJMTAwIFJBV1NPTiBST0FECisJCQkJVklDVE9SIE5ZIDE0NTY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC01MiAgIChoZXgpCQlTRUxDT00gRUxFVFRST05JQ0EgUy5SLkwuCiswMDkwNTIgICAgIChiYXNlIDE2KQkJU0VMQ09NIEVMRVRUUk9OSUNBIFMuUi5MLgorCQkJCVZJQSBHUkFOREksIDUKKwkJCQk0MDAxMyBDQVNURUxNQUdHSU9SRSBCTyAgCisJCQkJSVRBTFkKKworMDAtOTAtNTMgICAoaGV4KQkJREFFV09PIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDA5MDUzICAgICAoYmFzZSAxNikJCURBRVdPTyBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQlESVQgUkVTRUFSQ0ggQ0VOVEVSCisJCQkJREFFV09PIENFTlRFUiA1NDEgTkFNREFFTVVOTk8gNS1HQQorCQkJCUNIVU5HLUdVIFNFT1VMIDEwMC03MTQgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTkwLTU0ICAgKGhleCkJCUlOTk9WQVRJVkUgU0VNSUNPTkRVQ1RPUlMsIElOQworMDA5MDU0ICAgICAoYmFzZSAxNikJCUlOTk9WQVRJVkUgU0VNSUNPTkRVQ1RPUlMsIElOQworCQkJCTI1NzAgVy4gRUwgQ0FNSU5PIFJFQUwKKwkJCQlTVUlURSAjMjA1CisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNTUgICAoaGV4KQkJUEFSS0VSIEhBTk5JRklOIENPUlBPUkFUSU9OIENPTVBVTU9UT1IgRElWSVNJT04KKzAwOTA1NSAgICAgKGJhc2UgMTYpCQlQQVJLRVIgSEFOTklGSU4gQ09SUE9SQVRJT04gQ09NUFVNT1RPUiBESVZJU0lPTgorCQkJCTU1MDAgQlVTSU5FU1MgUEFSSyBEUklWRQorCQkJCVJPSE5FUlQgUEFSSyBDQSA5NDkyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNTYgICAoaGV4KQkJVEVMRVNUUkVBTSwgSU5DLgorMDA5MDU2ICAgICAoYmFzZSAxNikJCVRFTEVTVFJFQU0sIElOQy4KKwkJCQk4NDggR09MRCBGTEFUIFJELiwgU1VJVEUgMQorCQkJCU5FVkFEQSBDSVRZIENBIDk1OTU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC01NyAgIChoZXgpCQlBQU5ldGNvbSwgSW5jLgorMDA5MDU3ICAgICAoYmFzZSAxNikJCUFBTmV0Y29tLCBJbmMuCisJCQkJNDk0OSBMSUJFUlRZIExBTkUgLSBTVEUuICMyMDAKKwkJCQlBTExFTlRPV04gUEEgMTgxMDYtOTAxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNTggICAoaGV4KQkJVWx0cmEgRWxlY3Ryb25pY3MgTHRkLiwgQ29tbWFuZCBhbmQgQ29udHJvbCBTeXN0ZW1zCiswMDkwNTggICAgIChiYXNlIDE2KQkJVWx0cmEgRWxlY3Ryb25pY3MgTHRkLiwgQ29tbWFuZCBhbmQgQ29udHJvbCBTeXN0ZW1zCisJCQkJS05BVkVTIEJFRUNIIEJVU0lORVNTIENFTlRSRQorCQkJCUxPVURXQVRFUiwgSElHSCBXWUNPTUJFCisJCQkJQlVDS0lOR0hBTVNISVJFIEhQMTAgOVVUIEVuZ2xhbmQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtOTAtNTkgICAoaGV4KQkJVEVMRUNPTSBERVZJQ0UgSy5LLgorMDA5MDU5ICAgICAoYmFzZSAxNikJCVRFTEVDT00gREVWSUNFIEsuSy4KKwkJCQlTQU5NSVlBTkFHQSBCTERHLiAzRiwgMS01LTEyCisJCQkJTU9UT0FLQVNBS0EsIE1JTkFUTy1LVQorCQkJCVRPS1lPIDEwNyAKKwkJCQlKQVBBTgorCiswMC05MC01QSAgIChoZXgpCQlERUFSQk9STiBHUk9VUCwgSU5DLgorMDA5MDVBICAgICAoYmFzZSAxNikJCURFQVJCT1JOIEdST1VQLCBJTkMuCisJCQkJMjcwMDcgSElMTFMgVEVDSCBDVC4KKwkJCQlGQVJNSU5HVE9OIEhJTExTIE1JIDQ4MzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC01QiAgIChoZXgpCQlSQVlNT05EIEFORCBMQUUgRU5HSU5FRVJJTkcKKzAwOTA1QiAgICAgKGJhc2UgMTYpCQlSQVlNT05EIEFORCBMQUUgRU5HSU5FRVJJTkcKKwkJCQkyMDggQ09NTUVSQ0UgRFIuLCAgVU5JVCAjM0MKKwkJCQlGT1JUIENPTExJTlMgQ08gODA1MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTVDICAgKGhleCkJCUVETUkKKzAwOTA1QyAgICAgKGJhc2UgMTYpCQlFRE1JCisJCQkJNjI2IE9MRCBHWU1QSUUgUk9BRAorCQkJCU5BUkFOR0JBIFFMRCA0NTA0IAorCQkJCUFVU1RSQUxJQQorCiswMC05MC01RCAgIChoZXgpCQlORVRDT00gU0lDSEVSSEVJVFNURUNITklLIEdtYkgKKzAwOTA1RCAgICAgKGJhc2UgMTYpCQlORVRDT00gU0lDSEVSSEVJVFNURUNITklLIEdtYkgKKwkJCQlCT1BQU1RSQVNTRSAzOAorCQkJCTU1MTE4IE1BSU5aCisJCQkJR0VSTUFOWQorCiswMC05MC01RSAgIChoZXgpCQlSQVVMQU5ELUJPUkcgQ09SUE9SQVRJT04KKzAwOTA1RSAgICAgKGJhc2UgMTYpCQlSQVVMQU5ELUJPUkcgQ09SUE9SQVRJT04KKwkJCQkzNDUwIFcuIE9BS1RPTiBTVC4KKwkJCQlTS09LSUUgSUwgNjAwNzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTVGICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwOTA1RiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJU0pBLTIKKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNjAgICAoaGV4KQkJU1lTVEVNIENSRUFURSBDT1JQLgorMDA5MDYwICAgICAoYmFzZSAxNikJCVNZU1RFTSBDUkVBVEUgQ09SUC4KKwkJCQkzLTEzLTYgWU9TSElLQVdBIEJMRC4KKwkJCQlLSW1zaGkgU1VNSURBLUtVCisJCQkJVE9LWU8gIAorCQkJCUpBUEFOCisKKzAwLTkwLTYxICAgKGhleCkJCVBBQ0lGSUMgUkVTRUFSQ0ggJiBFTkdJTkVFUklORyBDT1JQT1JBVElPTgorMDA5MDYxICAgICAoYmFzZSAxNikJCVBBQ0lGSUMgUkVTRUFSQ0ggJiBFTkdJTkVFUklORyBDT1JQT1JBVElPTgorCQkJCTIwNzAgTEFTIFBBTE1BUyBEUklWRQorCQkJCUNBUkxTQkFEIENBIDkyMDA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02MiAgIChoZXgpCQlJQ1AgVk9SVEVYIENPTVBVVEVSU1lTVEVNRSBHbWJICiswMDkwNjIgICAgIChiYXNlIDE2KQkJSUNQIFZPUlRFWCBDT01QVVRFUlNZU1RFTUUgR21iSAorCQkJCUZBTFRFUlNUUkFTU0UgNTEtNTMKKwkJCQlEIDc0MjIzIEZMRUlOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLTYzICAgKGhleCkJCUNPSEVSRU5UIENPTU1VTklDQVRJT05TIFNZU1RFTVMgQ09SUE9SQVRJT04KKzAwOTA2MyAgICAgKGJhc2UgMTYpCQlDT0hFUkVOVCBDT01NVU5JQ0FUSU9OUyBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJNDUwODUgVU5JVkVSU0lUWSBEUklWRQorCQkJCUFTSEJVUk4gVkEgMjAxNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTY0ICAgKGhleCkJCVRob21zb24gSW5jLgorMDA5MDY0ICAgICAoYmFzZSAxNikJCVRob21zb24gSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MC0xMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02NSAgIChoZXgpCQlGSU5JU0FSIENPUlBPUkFUSU9OCiswMDkwNjUgICAgIChiYXNlIDE2KQkJRklOSVNBUiBDT1JQT1JBVElPTgorCQkJCTEzODkgTW9mZmV0dCBQYXJrIERyCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02NiAgIChoZXgpCQlUcm9pa2EgTmV0d29ya3MsIEluYy4KKzAwOTA2NiAgICAgKGJhc2UgMTYpCQlUcm9pa2EgTmV0d29ya3MsIEluYy4KKwkJCQkyODI5IFRvd25zZ2F0ZSBSb2FkLAorCQkJCVN1aXRlIDIwMAorCQkJCVdlc3RsYWtlIFZpbGxhZ2UgQ0EgOTEzNjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTY3ICAgKGhleCkJCVdhbGtBYm91dCBDb21wdXRlcnMsIEluYy4KKzAwOTA2NyAgICAgKGJhc2UgMTYpCQlXYWxrQWJvdXQgQ29tcHV0ZXJzLCBJbmMuCisJCQkJMjY1NSBOLiBPQ0VBTiBEUklWRS0tU1RFLiAjNTEwCisJCQkJU0lOR0VSIElTTEFORCBGTCAzMzQwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNjggICAoaGV4KQkJRFZUIENPUlAuCiswMDkwNjggICAgIChiYXNlIDE2KQkJRFZUIENPUlAuCisJCQkJMTY3MCBPQUtCUk9PSyBEUi4gLSBTVEUuICMzMzAKKwkJCQlOT1JDUk9TUyBHQSAzMDA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNjkgICAoaGV4KQkJSlVOSVBFUiBORVRXT1JLUywgSU5DLgorMDA5MDY5ICAgICAoYmFzZSAxNikJCUpVTklQRVIgTkVUV09SS1MsIElOQy4KKwkJCQkxMTk0IE4uIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OS0xMjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02QSAgIChoZXgpCQlUVVJOU1RPTkUgU1lTVEVNUywgSU5DLgorMDA5MDZBICAgICAoYmFzZSAxNikJCVRVUk5TVE9ORSBTWVNURU1TLCBJTkMuCisJCQkJMjc0IEZlcmd1c29uIERyaXZlCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNkIgICAoaGV4KQkJQVBQTElFRCBSRVNPVVJDRVMsIElOQy4KKzAwOTA2QiAgICAgKGJhc2UgMTYpCQlBUFBMSUVEIFJFU09VUkNFUywgSU5DLgorCQkJCTk4MjEgV0lETUVSIFJPQUQKKwkJCQlMRU5FWEEgS1MgNjYyMTUtMTIzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNkMgICAoaGV4KQkJU2FydG9yaXVzIEhhbWJ1cmcgR21iSAorMDA5MDZDICAgICAoYmFzZSAxNikJCVNhcnRvcml1cyBIYW1idXJnIEdtYkgKKwkJCQlNZWllbmRvcmZlcnN0ci4gMjA1CisJCQkJSGFtYnVyZyAgRC0yMjE0NQorCQkJCUdFUk1BTlkKKworMDAtOTAtNkQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MDZEICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSLiAtICBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTZFICAgKGhleCkJCVBSQVhPTiwgSU5DLgorMDA5MDZFICAgICAoYmFzZSAxNikJCVBSQVhPTiwgSU5DLgorCQkJCTE3MDAgREVMTCBBVkVOVUUKKwkJCQlDQU1QQkVMTCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNkYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MDZGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSLiAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNzAgICAoaGV4KQkJTkVPIE5FVFdPUktTLCBJTkMuCiswMDkwNzAgICAgIChiYXNlIDE2KQkJTkVPIE5FVFdPUktTLCBJTkMuCisJCQkJMTAzMDAgQlJFTiBST0FEIEVBU1QKKwkJCQlNSU5ORVRPTktBIE1OIDU1MzQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC03MSAgIChoZXgpCQlBcHBsaWVkIElubm92YXRpb24gSW5jLgorMDA5MDcxICAgICAoYmFzZSAxNikJCUFwcGxpZWQgSW5ub3ZhdGlvbiBJbmMuCisJCQkJNTgwMCBJbm5vdmF0aW9uIERyaXZlCisJCQkJRHVibGluIE9IIDQzMDE2LTMyNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTcyICAgKGhleCkJCVNJTVJBRCBBUworMDA5MDcyICAgICAoYmFzZSAxNikJCVNJTVJBRCBBUworCQkJCVAuTy4gQk9YIDExMQorCQkJCTMxOTEgSE9SVEVOIAorCQkJCU5PUldBWQorCiswMC05MC03MyAgIChoZXgpCQlHQUlPIFRFQ0hOT0xPR1kKKzAwOTA3MyAgICAgKGJhc2UgMTYpCQlHQUlPIFRFQ0hOT0xPR1kKKwkJCQlPQUstWU9LT0hBTUEgQkxERy4KKwkJCQkyLTE1LTEwIEtJVEEtU0FJV0FJLAorCQkJCU5JU0hJLUtVIFlPS09IQU1BLUNJVFkgS2FuYWdhd2EgCisJCQkJSkFQQU4KKworMDAtOTAtNzQgICAoaGV4KQkJQVJHT04gTkVUV09SS1MsIElOQy4KKzAwOTA3NCAgICAgKGJhc2UgMTYpCQlBUkdPTiBORVRXT1JLUywgSU5DLgorCQkJCTI1IFBPUlRFUiBST0FECisJCQkJTElUVExFVE9OIE1BIDAxNDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC03NSAgIChoZXgpCQlORUMgRE8gQlJBU0lMIFMuQS4KKzAwOTA3NSAgICAgKGJhc2UgMTYpCQlORUMgRE8gQlJBU0lMIFMuQS4KKwkJCQlST0RPVklBIFBSRVNJREVOVEUgRFVUUkEsIEtNIDIxOAorCQkJCUNVTUJJQ0EtR1VBUlVMSE9TCisJCQkJU0FPIFBBVUxPLVNQIENFUCAtIDA3MjEwLTkwMiAKKwkJCQlCUkFaSUwKKworMDAtOTAtNzYgICAoaGV4KQkJRk1UIEFJUkNSQUZUIEdBVEUgU1VQUE9SVCBTWVNURU1TIEFCCiswMDkwNzYgICAgIChiYXNlIDE2KQkJRk1UIEFJUkNSQUZUIEdBVEUgU1VQUE9SVCBTWVNURU1TIEFCCisJCQkJCisJCQkJREFMQVNMSU5HQU4gOAorCQkJCVNFLTIzMSAzMiBUUkVMTEVCT1JHICAKKwkJCQlTV0VERU4KKworMDAtOTAtNzcgICAoaGV4KQkJQURWQU5DRUQgRklCUkUgQ09NTVVOSUNBVElPTlMKKzAwOTA3NyAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBGSUJSRSBDT01NVU5JQ0FUSU9OUworCQkJCVBPIEJPWCAjNzUxMjM5CisJCQkJMSBXSUxMT1dCUk9PSyBDVAorCQkJCVBFVEFMVU1BIENBIDk0OTc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC03OCAgIChoZXgpCQlNRVIgVEVMRU1BTkFHRU1FTlQgU09MVVRJT05TLCBMVEQuCiswMDkwNzggICAgIChiYXNlIDE2KQkJTUVSIFRFTEVNQU5BR0VNRU5UIFNPTFVUSU9OUywgTFRELgorCQkJCTUgSEFUU09SRUYgU1RSLgorCQkJCUlORC4gQVJFQQorCQkJCUhPTE9OICAKKwkJCQlJU1JBRUwKKworMDAtOTAtNzkgICAoaGV4KQkJQ2xlYXJPbmUsIEluYy4KKzAwOTA3OSAgICAgKGJhc2UgMTYpCQlDbGVhck9uZSwgSW5jLgorCQkJCTI5OSBXQVNISU5HVE9OIFNUUkVFVAorCQkJCVdPQlVSTiBNQSAwMTgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtN0EgICAoaGV4KQkJUG9seWNvbSwgSW5jLgorMDA5MDdBICAgICAoYmFzZSAxNikJCVBvbHljb20sIEluYy4KKwkJCQk1NzU1IENFTlRSQUwgQVZFTlVFCisJCQkJQk9VTERFUiBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtN0IgICAoaGV4KQkJRS1URUNILCBJTkMuCiswMDkwN0IgICAgIChiYXNlIDE2KQkJRS1URUNILCBJTkMuCisJCQkJMzAsIFImRCBST0FEIDIKKwkJCQlTQ0lFTkNFIFBBUksKKwkJCQlIU0lOQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLTdDICAgKGhleCkJCURJR0lUQUxDQVNULCBJTkMuCiswMDkwN0MgICAgIChiYXNlIDE2KQkJRElHSVRBTENBU1QsIElOQy4KKwkJCQk1MDMsIElMS1dBTkcgQkxERy4sIDE2NTYtMgorCQkJCVNFT0NITy1ET05HCisJCQkJU0VPQ0hPLUtVICBTRU9VTCAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtOTAtN0QgICAoaGV4KQkJTGFrZSBDb21tdW5pY2F0aW9ucworMDA5MDdEICAgICAoYmFzZSAxNikJCUxha2UgQ29tbXVuaWNhdGlvbnMKKwkJCQlCZWVjaCBIb3VzZSwgR3JlZW5oaWxscyBSb2FkCisJCQkJRHVibGluIDI0CisJCQkJSVJFTEFORAorCiswMC05MC03RSAgIChoZXgpCQlWRVRST05JWCBDT1JQLgorMDA5MDdFICAgICAoYmFzZSAxNikJCVZFVFJPTklYIENPUlAuCisJCQkJMjAzMCBBTEFNRURFIFBBRFJFIFNFUlJBCisJCQkJU0FOVEEgQkFSQkFSQSBDQSA5MzEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtN0YgICAoaGV4KQkJV2F0Y2hHdWFyZCBUZWNobm9sb2dpZXMsIEluYy4KKzAwOTA3RiAgICAgKGJhc2UgMTYpCQlXYXRjaEd1YXJkIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTUwNSBGaWZ0aCBBdmUgU291dGgKKwkJCQlTdWl0ZSA1MDAKKwkJCQlTZWF0dGxlIFdBIDk4MTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC04MCAgIChoZXgpCQlOT1QgTElNSVRFRCwgSU5DLgorMDA5MDgwICAgICAoYmFzZSAxNikJCU5PVCBMSU1JVEVELCBJTkMuCisJCQkJNTAwIEFMTEVSVE9OIFNUUkVFVCwgU1RFICMxMDIKKwkJCQlSRURXT09EIENJVFkgQ0EgOTQwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTgxICAgKGhleCkJCUFMT0hBIE5FVFdPUktTLCBJTkMuCiswMDkwODEgICAgIChiYXNlIDE2KQkJQUxPSEEgTkVUV09SS1MsIElOQy4KKwkJCQkxMDAxQSBPJ1JFSUxMWSBBVkVOVUUKKwkJCQlQLk8uIEJPWCAyOTQ3MgorCQkJCVNBTiBGUkFOQ0lTQ08gQ0EgOTQxMjktMDQ3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtODIgICAoaGV4KQkJRk9SQ0UgSU5TVElUVVRFCiswMDkwODIgICAgIChiYXNlIDE2KQkJRk9SQ0UgSU5TVElUVVRFCisJCQkJUEFSSyBBTExFIDM0NQorCQkJCURLLTI2MDUgQlJPRU5EQlkgIAorCQkJCURFTk1BUksKKworMDAtOTAtODMgICAoaGV4KQkJVFVSQk8gQ09NTVVOSUNBVElPTiwgSU5DLgorMDA5MDgzICAgICAoYmFzZSAxNikJCVRVUkJPIENPTU1VTklDQVRJT04sIElOQy4KKwkJCQk0Ri0yLCBOTy4gMTcxLCBTVU5HLVRFSCBST0FECisJCQkJVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLTg0ICAgKGhleCkJCUFURUNIIFNZU1RFTQorMDA5MDg0ICAgICAoYmFzZSAxNikJCUFURUNIIFNZU1RFTQorCQkJCTRGIERBRUJPT05HIEJMREcuIDE0NTEtNzgKKwkJCQlTRU9DSE8tRE9ORyBTRU9DSE8tS1UKKwkJCQkgU0VPVUwgIDEzNy0wNzAgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC05MC04NSAgIChoZXgpCQlHT0xERU4gRU5URVJQUklTRVMsIElOQy4KKzAwOTA4NSAgICAgKGJhc2UgMTYpCQlHT0xERU4gRU5URVJQUklTRVMsIElOQy4KKwkJCQk0NDUwIFdFU1QgRUFVIEdBTExJRSBCTFZELgorCQkJCTI1MCBQRVJJTUVURVIgQ0VOVEVSCisJCQkJTUVMQk9VUk5FIEZMIDMyOTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC04NiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDkwODYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFIuIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC04NyAgIChoZXgpCQlJVElTCiswMDkwODcgICAgIChiYXNlIDE2KQkJSVRJUworCQkJCUNFTlRSRSBFU1BBQ0UgUEVSRk9STUFOQ0UKKwkJCQlBTFBIQVNJUy1CQVRJTUVOVCBDMQorCQkJCTM1NzY5IFNBSU5ULUdSRUdPSVJFIENFREVYICAKKwkJCQlGUkFOQ0UKKworMDAtOTAtODggICAoaGV4KQkJQkFYQUxMIFNFQ1VSSVRZIExURC4KKzAwOTA4OCAgICAgKGJhc2UgMTYpCQlCQVhBTEwgU0VDVVJJVFkgTFRELgorCQkJCVVOSVQgMSBDQVNUTEVISUxMCisJCQkJSE9SU0VGSUVMRCBXQVksIEJSRURCVVJZIFBBUksgSU5ELiBFc3RhdAorCQkJCVNUT0NLUE9SVCBHcmVhdCBCcml0YWluIFNLNiAyU1YgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtOTAtODkgICAoaGV4KQkJU09GVENPTSBNSUNST1NZU1RFTVMsIElOQy4KKzAwOTA4OSAgICAgKGJhc2UgMTYpCQlTT0ZUQ09NIE1JQ1JPU1lTVEVNUywgSU5DLgorCQkJCTQ3NTA5IFNFQUJSSURHRSBEUklWRQorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLThBICAgKGhleCkJCUJBWUxZIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDkwOEEgICAgIChiYXNlIDE2KQkJQkFZTFkgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxMDUgR1JFRU4gQ09VUlQKKwkJCQlBSkFYIE9udGFyaW8gIEwxUyA2VzkgCisJCQkJQ0FOQURBCisKKzAwLTkwLThCICAgKGhleCkJCVBGVSBTeXN0ZW1zLCBJbmMuCiswMDkwOEIgICAgIChiYXNlIDE2KQkJUEZVIFN5c3RlbXMsIEluYy4KKwkJCQkyNjAwIEZlcm5icm9vayBMYW5lCisJCQkJU3VpdGUgMTMwCisJCQkJUGx5bW91dGggTU4gNTU0NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLThDICAgKGhleCkJCUVUUkVORCBFTEVDVFJPTklDUywgSU5DLgorMDA5MDhDICAgICAoYmFzZSAxNikJCUVUUkVORCBFTEVDVFJPTklDUywgSU5DLgorCQkJCTJGLCAyMiBJTkRVU1RSWSBFLiA5VEggUk9BRAorCQkJCUhTSU5DSFUgU0NJRU5DRSBQQVJLCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC04RCAgIChoZXgpCQlWSUNLRVJTIEVMRUNUUk9OSUNTIFNZU1RFTVMKKzAwOTA4RCAgICAgKGJhc2UgMTYpCQlWSUNLRVJTIEVMRUNUUk9OSUNTIFNZU1RFTVMKKwkJCQkxMTUxIFcuIE1BU09OLU1PUlJPVyBSRC4KKwkJCQlMRUJBTk9OIE9IIDQ1MDM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC04RSAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MgQnJvYWRiYW5kIEFjY2VzcworMDA5MDhFICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcyBCcm9hZGJhbmQgQWNjZXNzCisJCQkJMzk2NjAgRXVyZWthIERyaXZlCisJCQkJTmV3YXJrIENBIDk0NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC04RiAgIChoZXgpCQlBVURJTyBDT0RFUyBMVEQuCiswMDkwOEYgICAgIChiYXNlIDE2KQkJQVVESU8gQ09ERVMgTFRELgorCQkJCTNBIE5FVEFOWUFIVSBTVFJFRVQKKwkJCQlPUiBZRUhVREEgNjAyNTYgIAorCQkJCUlTUkFFTAorCiswMC05MC05MCAgIChoZXgpCQlJLUJVUworMDA5MDkwICAgICAoYmFzZSAxNikJCUktQlVTCisJCQkJOTE3NCBTS1kgUEFSSyBDT1VSVAorCQkJCVNBTiBESUVHTyBDQSA5MjEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOTEgICAoaGV4KQkJRGlnaXRhbFNjYXBlLCBJbmMuCiswMDkwOTEgICAgIChiYXNlIDE2KQkJRGlnaXRhbFNjYXBlLCBJbmMuCisJCQkJNiBNT1JHQU4gIC0gU1RFLiMxMDAKKwkJCQlJUlZJTkUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTkyICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwOTA5MiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCU0vUyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTkzICAgKGhleCkJCU5BTkFPIENPUlBPUkFUSU9OCiswMDkwOTMgICAgIChiYXNlIDE2KQkJTkFOQU8gQ09SUE9SQVRJT04KKwkJCQkxNTMgU0hJTU9LQVNISVdBTk8sIE1BVFRPCisJCQkJSVNISUtBV0EgOTI0LTg1NjYgIAorCQkJCUpBUEFOCisKKzAwLTkwLTk0ICAgKGhleCkJCU9TUFJFWSBURUNITk9MT0dJRVMsIElOQy4KKzAwOTA5NCAgICAgKGJhc2UgMTYpCQlPU1BSRVkgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNjAwIEFJUlBPUlQgQkxWRC4gLSBTVEUuICM5MDAKKwkJCQlNT1JSSVNWSUxMRSBOQyAyNzU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOTUgICAoaGV4KQkJVU5JVkVSU0FMIEFWSU9OSUNTCiswMDkwOTUgICAgIChiYXNlIDE2KQkJVU5JVkVSU0FMIEFWSU9OSUNTCisJCQkJMTEzNTEgV0lMTE9XUyBST0FEIE5FCisJCQkJUkVETU9ORCBXQSA5ODA1Mi0yNTUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05NiAgIChoZXgpCQlBU0tFWSBDT01QVVRFUiBDT1JQLgorMDA5MDk2ICAgICAoYmFzZSAxNikJCUFTS0VZIENPTVBVVEVSIENPUlAuCisJCQkJMkYsIE5PLiAyLCBMQU5FIDQ5NworCQkJCUNIVU5HLUNIRU5HIFJELiwgSFNJTi1USUVOCisJCQkJVEFJUEVJICAyMzEzNiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC05NyAgIChoZXgpCQlTeWNhbW9yZSBOZXR3b3JrcworMDA5MDk3ICAgICAoYmFzZSAxNikJCVN5Y2Ftb3JlIE5ldHdvcmtzCisJCQkJMjIwIE1pbGwgUmQKKwkJCQlDaGVsbXNmb3JkIE1BIDAxODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05OCAgIChoZXgpCQlTQkMgREVTSUdOUywgSU5DLgorMDA5MDk4ICAgICAoYmFzZSAxNikJCVNCQyBERVNJR05TLCBJTkMuCisJCQkJMzA3Ny1IIExFRU1BTiBGRVJSWSBST0FECisJCQkJSFVOVFNWSUxMRSBBTCAzNTgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOTkgICAoaGV4KQkJQUxMSUVEIFRFTEVTSVMsIEsuSy4KKzAwOTA5OSAgICAgKGJhc2UgMTYpCQlBTExJRUQgVEVMRVNJUywgSy5LLgorCQkJCU5PLiAyICBUT0MgQlVJTERJTkcsIDctMjEtMTFOaXNoaS1Hb3RhbmQKKwkJCQlTaGluYWdhd2EtS3UgVG9reW8gMTQxIAorCQkJCUpBUEFOCisKKzAwLTkwLTlBICAgKGhleCkJCU9ORSBXT1JMRCBTWVNURU1TLCBJTkMuCiswMDkwOUEgICAgIChiYXNlIDE2KQkJT05FIFdPUkxEIFNZU1RFTVMsIElOQy4KKwkJCQkxMTQ0IEVBU1QgQVJRVUVTIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOUIgICAoaGV4KQkJSU1BSkUKKzAwOTA5QiAgICAgKGJhc2UgMTYpCQlJTUFKRQorCQkJCUdvdGF2ZXJrc2dhdGFuIDZBCisJCQkJR290aGVuYnVyZyAgNDE3IDU1CisJCQkJU1dFREVOCisKKzAwLTkwLTlDICAgKGhleCkJCU1vdG9yb2xhLCBJbmMuCiswMDkwOUMgICAgIChiYXNlIDE2KQkJTW90b3JvbGEsIEluYy4KKwkJCQkyNDUwIFdhbHNoIEF2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05RCAgIChoZXgpCQlOb3ZhVGVjaCBQcm9jZXNzIFNvbHV0aW9ucywgTExDCiswMDkwOUQgICAgIChiYXNlIDE2KQkJTm92YVRlY2ggUHJvY2VzcyBTb2x1dGlvbnMsIExMQworCQkJCTExNTAwIENyb25yaWRnZSBEcml2ZQorCQkJCVN1aXRlIDExMAorCQkJCU93aW5ncyBNaWxscyBNRCAyMTExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOUUgICAoaGV4KQkJQ3JpdGljYWwgSU8sIExMQworMDA5MDlFICAgICAoYmFzZSAxNikJCUNyaXRpY2FsIElPLCBMTEMKKwkJCQk0ODUgRS4gMTd0aCBTdHJlZXQKKwkJCQlTdWl0ZSAyMDEwCisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOUYgICAoaGV4KQkJRElHSS1EQVRBIENPUlBPUkFUSU9OCiswMDkwOUYgICAgIChiYXNlIDE2KQkJRElHSS1EQVRBIENPUlBPUkFUSU9OCisJCQkJODkyMC1EIFJvdXRlIDEwOAorCQkJCUNvbHVtYmlhIE1EIDIxMDQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BMCAgIChoZXgpCQk4WDggSU5DLgorMDA5MEEwICAgICAoYmFzZSAxNikJCThYOCBJTkMuCisJCQkJMjQ0NSBNSVNTSU9OIENPTExFR0UgQkxWRC4KKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQTEgICAoaGV4KQkJRmx5aW5nIFBpZyBTeXN0ZW1zL0hpZ2ggRW5kIFN5c3RlbXMgSW5jLgorMDA5MEExICAgICAoYmFzZSAxNikJCUZseWluZyBQaWcgU3lzdGVtcy9IaWdoIEVuZCBTeXN0ZW1zIEluYy4KKwkJCQkyMTA1IEdyYWN5IEZhcm1zIExhbmUKKwkJCQlBdXN0aW4gVFggNzg3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUEyICAgKGhleCkJCUNZQkVSVEFOIFRFQ0hOT0xPR1ksIElOQy4KKzAwOTBBMiAgICAgKGJhc2UgMTYpCQlDWUJFUlRBTiBURUNITk9MT0dZLCBJTkMuCisJCQkJQkxERy41MywgMTk1LTU2IFNFQy4gNCwKKwkJCQlDSFVORyBIU0lORyBST0FELAorCQkJCUNIVVRVTkcgSFNJTkNIVSAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLUEzICAgKGhleCkJCUNvcmVjZXNzIEluYy4KKzAwOTBBMyAgICAgKGJhc2UgMTYpCQlDb3JlY2VzcyBJbmMuCisJCQkJMTM1LTcyNiwgS2VvcHl1bmcgQi1Ub3duIDFGLCAyMDMsIE5vbmh5dQorCQkJCUthbmduYW0tZ3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC05MC1BNCAgIChoZXgpCQlBTFRJR0EgTkVUV09SS1MKKzAwOTBBNCAgICAgKGJhc2UgMTYpCQlBTFRJR0EgTkVUV09SS1MKKwkJCQkxMjQgR1JPVkUgU1RSRUVUCisJCQkJRlJBTktMSU4gTUEgMDIwMzgtMzIwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQTUgICAoaGV4KQkJU1BFQ1RSQSBMT0dJQworMDA5MEE1ICAgICAoYmFzZSAxNikJCVNQRUNUUkEgTE9HSUMKKwkJCQkxNzAwIE4uIDU1VEggU1RSRUVUCisJCQkJQk9VTERFUiBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQTYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MEE2ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSLiAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQTcgICAoaGV4KQkJQ0xJRU5URUMgQ09SUE9SQVRJT04KKzAwOTBBNyAgICAgKGJhc2UgMTYpCQlDTElFTlRFQyBDT1JQT1JBVElPTgorCQkJCTgxNzUgUy4gVklSR0lOSUEgU1QuCisJCQkJU1VJVEUgIzg1MC0yNDkKKwkJCQlSRU5PIE5WIDg5NTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BOCAgIChoZXgpCQlOaW5lVGlsZXMgTmV0d29ya3MsIEx0ZC4KKzAwOTBBOCAgICAgKGJhc2UgMTYpCQlOaW5lVGlsZXMgTmV0d29ya3MsIEx0ZC4KKwkJCQk5IFN0YXRpb24gUm9hZAorCQkJCVdhdGVyYmVhY2ggQ2FtYnJpZGdlIENCNSA5SFQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC05MC1BOSAgIChoZXgpCQlXRVNURVJOIERJR0lUQUwKKzAwOTBBOSAgICAgKGJhc2UgMTYpCQlXRVNURVJOIERJR0lUQUwKKwkJCQkxNTk5IE5PUlRIIEJST0FEV0FZCisJCQkJUk9DSEVTVEVSIE1OIDU1OTA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BQSAgIChoZXgpCQlJTkRJR08gQUNUSVZFIFZJU0lPTiBTWVNURU1TIExJTUlURUQKKzAwOTBBQSAgICAgKGJhc2UgMTYpCQlJTkRJR08gQUNUSVZFIFZJU0lPTiBTWVNURU1TIExJTUlURUQKKwkJCQlUSEUgRURJTkJVUkdIIFRFQ0hOT1BPTEUKKwkJCQlCQVNIIExPQU4KKwkJCQlFZGluYnVyZ2ggRUgyNiBPUEogIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTkwLUFCICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwOTBBQiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRSAgIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQUMgICAoaGV4KQkJT1BUSVZJU0lPTiwgSU5DLgorMDA5MEFDICAgICAoYmFzZSAxNikJCU9QVElWSVNJT04sIElOQy4KKwkJCQkzNDUwIEhJTExWSUVXIEFWRU5VRQorCQkJCVBBTE8gQUxUTyBDQSA5NDMwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQUQgICAoaGV4KQkJQVNQRUNUIEVMRUNUUk9OSUNTLCBJTkMuCiswMDkwQUQgICAgIChiYXNlIDE2KQkJQVNQRUNUIEVMRUNUUk9OSUNTLCBJTkMuCisJCQkJMTI3NDAgRUFSSEFSVCBBVkUuCisJCQkJQVVCVVJOIENBIDk1NjAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BRSAgIChoZXgpCQlJVEFMVEVMIFMucC5BLgorMDA5MEFFICAgICAoYmFzZSAxNikJCUlUQUxURUwgUy5wLkEuCisJCQkJTE9DQUxJVEEnIEJPU0NIRVRUTworCQkJCTY3MTAwIEwnQVFVSUxBICAKKwkJCQlJVEFMWQorCiswMC05MC1BRiAgIChoZXgpCQlKLiBNT1JJVEEgTUZHLiBDT1JQLgorMDA5MEFGICAgICAoYmFzZSAxNikJCUouIE1PUklUQSBNRkcuIENPUlAuCisJCQkJNjgwIEhJR0FTSElIQU1BIE1JTkFNSS1DSE8KKwkJCQlGVVNISU1JLUtVLCBLWU9UTyA2MTItODIxMyAKKwkJCQlKQVBBTgorCiswMC05MC1CMCAgIChoZXgpCQlWQURFTQorMDA5MEIwICAgICAoYmFzZSAxNikJCVZBREVNCisJCQkJMTk2MCBaQU5LRVIgUkQKKwkJCQlTQU4gSk9TRSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQjEgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MEIxICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSLiAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQjIgICAoaGV4KQkJQVZJQ0kgU1lTVEVNUyBJTkMuCiswMDkwQjIgICAgIChiYXNlIDE2KQkJQVZJQ0kgU1lTVEVNUyBJTkMuCisJCQkJMTIgRUxJWkFCRVRIIERSSVZFCisJCQkJQ0hFTE1TRk9SRCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQjMgICAoaGV4KQkJQUdSQU5BVCBTWVNURU1TCiswMDkwQjMgICAgIChiYXNlIDE2KQkJQUdSQU5BVCBTWVNURU1TCisJCQkJMTM0NSBNQUlOIFNUUkVFVAorCQkJCVdBTFRIQU0gTUEgMDIxNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUI0ICAgKGhleCkJCVdJTExPV0JST09LIFRFQ0hOT0xPR0lFUworMDA5MEI0ICAgICAoYmFzZSAxNikJCVdJTExPV0JST09LIFRFQ0hOT0xPR0lFUworCQkJCTcxMjAgSEFZVkVOSFVSU1QgQVZFLi1TVEUuIzQwMQorCQkJCVZBTiBOVVlTIENBIDkxNDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1CNSAgIChoZXgpCQlOSUtPTiBDT1JQT1JBVElPTgorMDA5MEI1ICAgICAoYmFzZSAxNikJCU5JS09OIENPUlBPUkFUSU9OCisJCQkJRWxlY3Ryb25pYyBJbWFnaW5nIERpdmlzaW9uLCBEZXNpZ25pbmcgRAorCQkJCTEtNi0zLCBOSVNISS1PSEksIFNISU5BR0FXQS1LVQorCQkJCVRPS1lPIDE0MC04NjAxICAKKwkJCQlKQVBBTgorCiswMC05MC1CNiAgIChoZXgpCQlGSUJFWCBTWVNURU1TCiswMDkwQjYgICAgIChiYXNlIDE2KQkJRklCRVggU1lTVEVNUworCQkJCTUzNTAgT0xEIFJFRFdPT0QgSElHSFdBWQorCQkJCVBFVEFMVU1BIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1CNyAgIChoZXgpCQlESUdJVEFMIExJR0hUV0FWRSwgSU5DLgorMDA5MEI3ICAgICAoYmFzZSAxNikJCURJR0lUQUwgTElHSFRXQVZFLCBJTkMuCisJCQkJNjAxIENMRVZFTEFORCBTVFJFRVQtIDVUSCBGTC4KKwkJCQlDTEVBUldBVEVSIEZMIDMzNzU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1COCAgIChoZXgpCQlST0hERSAmIFNDSFdBUlogR01CSCAmIENPLiBLRworMDA5MEI4ICAgICAoYmFzZSAxNikJCVJPSERFICYgU0NIV0FSWiBHTUJIICYgQ08uIEtHCisJCQkJUE9TVEZBQ0g6IDgwIDE0IDY5L0FCVC46IDNDSworCQkJCUQtODE2MTQgTVVOQ0hFTiAgCisJCQkJR0VSTUFOWQorCiswMC05MC1COSAgIChoZXgpCQlCRVJBTiBJTlNUUlVNRU5UUyBMVEQuCiswMDkwQjkgICAgIChiYXNlIDE2KQkJQkVSQU4gSU5TVFJVTUVOVFMgTFRELgorCQkJCUhBVENITU9PUiBJTkRVU1RSSUFMIEVTVEFURQorCQkJCVRPUlJJTkdUT04KKwkJCQlOIERFVk9OIEVYMzggN0hQICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC05MC1CQSAgIChoZXgpCQlWQUxJRCBORVRXT1JLUywgSU5DLgorMDA5MEJBICAgICAoYmFzZSAxNikJCVZBTElEIE5FVFdPUktTLCBJTkMuCisJCQkJNiBDUk9NV0VMTCAjMTAyCisJCQkJSVJWSU5FIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1CQiAgIChoZXgpCQlUQUlORVQgQ09NTVVOSUNBVElPTiBTWVNURU0gQ29ycC4KKzAwOTBCQiAgICAgKGJhc2UgMTYpCQlUQUlORVQgQ09NTVVOSUNBVElPTiBTWVNURU0gQ29ycC4KKwkJCQkzIEZMLCBOTy4gNiwgQUxMRVkgMjMsIExBTkUgOTEgU0VDLiAxCisJCQkJTmVpLUh1IFJvYWQKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtQkMgICAoaGV4KQkJVEVMRU1BTk4gQ08uLCBMVEQuCiswMDkwQkMgICAgIChiYXNlIDE2KQkJVEVMRU1BTk4gQ08uLCBMVEQuCisJCQkJNkYgRE9OR1NJTiBCTERHLgorCQkJCTU0MywgRE9HT0stRE9ORywgS0FOR05BTS1LVQorCQkJCVNFT1VMLCAxMzUtMjcwICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtOTAtQkQgICAoaGV4KQkJT01OSUEgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwOTBCRCAgICAgKGJhc2UgMTYpCQlPTU5JQSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTEwMCBOSUNLRVJTT04gUk9BRAorCQkJCU1BUkxCT1JPVUdIIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1CRSAgIChoZXgpCQlJQkMvSU5URUdSQVRFRCBCVVNJTkVTUyBDT01QVVRFUlMKKzAwOTBCRSAgICAgKGJhc2UgMTYpCQlJQkMvSU5URUdSQVRFRCBCVVNJTkVTUyBDT01QVVRFUlMKKwkJCQkyNjg1IEMgUEFSSyBDRU5URVIgRFJJVkUKKwkJCQlTSU1JIFZBTExFWSBDQSA5MzA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQkYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MEJGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFICAgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1DMCAgIChoZXgpCQlLLkouIExBVyBFTkdJTkVFUlMsIElOQy4KKzAwOTBDMCAgICAgKGJhc2UgMTYpCQlLLkouIExBVyBFTkdJTkVFUlMsIElOQy4KKwkJCQk0MjMwMCBXLiBOSU5FIE1JTEUgUk9BRAorCQkJCU5PVkkgTUkgNDgzNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUMxICAgKGhleCkJCVBlY28gSUksIEluYy4KKzAwOTBDMSAgICAgKGJhc2UgMTYpCQlQZWNvIElJLCBJbmMuCisJCQkJNzA2MCBIdW50bGV5IFJvYWQKKwkJCQlDb2x1bWJ1cyBPSCA0MzIyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQzIgICAoaGV4KQkJSksgbWljcm9zeXN0ZW1zLCBJbmMuCiswMDkwQzIgICAgIChiYXNlIDE2KQkJSksgbWljcm9zeXN0ZW1zLCBJbmMuCisJCQkJMTI3NSBZVUJBIEFWRU5VRQorCQkJCVNBTiBQQUJMTyBDQSA5NDgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQzMgICAoaGV4KQkJVE9QSUMgU0VNSUNPTkRVQ1RPUiBDT1JQLgorMDA5MEMzICAgICAoYmFzZSAxNikJCVRPUElDIFNFTUlDT05EVUNUT1IgQ09SUC4KKwkJCQkxMUYtMSwgTk8uIDIsIFdVLUxJTiBSRC4KKwkJCQlIU0lOLUNIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC1DNCAgIChoZXgpCQlKQVZFTElOIFNZU1RFTVMsIElOQy4KKzAwOTBDNCAgICAgKGJhc2UgMTYpCQlKQVZFTElOIFNZU1RFTVMsIElOQy4KKwkJCQkxODgxIExBTkdMRVkgQVZFLgorCQkJCUlSVklORSBDQSA5MjYxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQzUgICAoaGV4KQkJSU5URVJORVQgTUFHSUMsIElOQy4KKzAwOTBDNSAgICAgKGJhc2UgMTYpCQlJTlRFUk5FVCBNQUdJQywgSU5DLgorCQkJCTY0NTAgTFVTSyBCTFZELi1TVEUuICNFLTIwMQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQzYgICAoaGV4KQkJT1BUSU0gU1lTVEVNUywgSU5DLgorMDA5MEM2ICAgICAoYmFzZSAxNikJCU9QVElNIFNZU1RFTVMsIElOQy4KKwkJCQk4MjAxIEdSRUVOU0JPUk8gRFIuLVNURS4gIzEwMDAKKwkJCQlNQ0xFQU4gVkEgMjIxMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUM3ICAgKGhleCkJCUlDT00gSU5DLgorMDA5MEM3ICAgICAoYmFzZSAxNikJCUlDT00gSU5DLgorCQkJCTYtOS0xNiBLQU1JSElHQVNISQorCQkJCUhJUkFOTy1LVSwgT1NBS0EgIAorCQkJCUpBUEFOCisKKzAwLTkwLUM4ICAgKGhleCkJCVdBVkVSSURFUiBDT01NVU5JQ0FUSU9OUyAoQ0FOQURBKSBJTkMuCiswMDkwQzggICAgIChiYXNlIDE2KQkJV0FWRVJJREVSIENPTU1VTklDQVRJT05TIChDQU5BREEpIElOQy4KKwkJCQkKKwkJCQlCcml0aXNoIENvbHVtYmlhIFYxRSA0UjkgCisJCQkJQ0FOQURBCisKKzAwLTkwLUM5ICAgKGhleCkJCURQQUMgVGVjaG5vbG9naWVzCiswMDkwQzkgICAgIChiYXNlIDE2KQkJRFBBQyBUZWNobm9sb2dpZXMKKwkJCQk3MzIxIExpbmNvbG4gV2F5CisJCQkJR2FyZGVuIEdyb3ZlIENBIDkyODQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1DQSAgIChoZXgpCQlBQ0NPUkQgVklERU8gVEVMRUNPTU1VTklDQVRJT05TLCBMVEQuCiswMDkwQ0EgICAgIChiYXNlIDE2KQkJQUNDT1JEIFZJREVPIFRFTEVDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCTEwLCBNQVJUSU4gR0VITCBTVFIsIFBPIEJPWCAzNTY0CisJCQkJUGV0YWNoLVRpa3ZhIDQ5MTMwICAKKwkJCQlJU1JBRUwKKworMDAtOTAtQ0IgICAoaGV4KQkJV2lyZWxlc3MgT25MaW5lLCBJbmMuCiswMDkwQ0IgICAgIChiYXNlIDE2KQkJV2lyZWxlc3MgT25MaW5lLCBJbmMuCisJCQkJNDQxMCBFTCBDQU1JTk8gUkVBTCwgIFNURSAjMTAxCisJCQkJTE9TIEFMVE9TIENBIDk0MDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1DQyAgIChoZXgpCQlQbGFuZXggQ29tbXVuaWNhdGlvbnMKKzAwOTBDQyAgICAgKGJhc2UgMTYpCQlQbGFuZXggQ29tbXVuaWNhdGlvbnMKKwkJCQkyRiBGRU5JU1NBWSBFYmlzdSBCbGRnCisJCQkJMy0xNi0zIEhpZ2FzaGksCisJCQkJU2hpYnV5YS1rdSwgVG9reW8gMTUwLTAwMTEKKwkJCQlKQVBBTgorCiswMC05MC1DRCAgIChoZXgpCQlFTlQtRU1QUkVTQSBOQUNJT05BTCBERSBURUxFQ09NTVVOSUNBQ09FUywgUy5BLgorMDA5MENEICAgICAoYmFzZSAxNikJCUVOVC1FTVBSRVNBIE5BQ0lPTkFMIERFIFRFTEVDT01NVU5JQ0FDT0VTLCBTLkEuCisJCQkJUi4gRU5HIEZSRURFUklDTyBVTFJJQ0ggLSAgQVBBUlRBRE8gMzA4MQorCQkJCUd1YXJkZWlyYXMgLSA0NDcwIE1vcmVpcmEgTWFpYSAgCisJCQkJUE9SVFVHQUwKKworMDAtOTAtQ0UgICAoaGV4KQkJVEVUUkEgR21iSAorMDA5MENFICAgICAoYmFzZSAxNikJCVRFVFJBIEdtYkgKKwkJCQlHRVdFUkJFUEFSSyAiQW1XYWxkIiA0CisJCQkJRC05ODY5MyBJTE1FTkFVICAKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLUNGICAgKGhleCkJCU5PUlRFTAorMDA5MENGICAgICAoYmFzZSAxNikJCU5PUlRFTAorCQkJCTI1MCBTSURORVkgU1RSRUVUCisJCQkJQmVsbGV2aWxsZSBPbnRhcmlvIEs4TiA1QjcgCisJCQkJQ0FOQURBCisKKzAwLTkwLUQwICAgKGhleCkJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCiswMDkwRDAgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKwkJCQlQcmlucyBCb3VkZXdpam5sYWFuIDQ3CisJCQkJQi0yNjUwIEVERUdFTSAgCisJCQkJQkVMR0lVTQorCiswMC05MC1EMSAgIChoZXgpCQlMRUlDSFUgRU5URVJQUklTRSBDTy4sIExURC4KKzAwOTBEMSAgICAgKGJhc2UgMTYpCQlMRUlDSFUgRU5URVJQUklTRSBDTy4sIExURC4KKwkJCQk4RiwgTk8uIDIwMywgUEEtVEVIIFJPQUQsIFNFQy4yCisJCQkJVEFJUEVJIENJVFkKKwkJCQlUQUlXQU4gCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC1EMiAgIChoZXgpCQlBUlRFTCBWSURFTyBTWVNURU1TCiswMDkwRDIgICAgIChiYXNlIDE2KQkJQVJURUwgVklERU8gU1lTVEVNUworCQkJCTIzNyBDRURBUiBISUxMIFNULgorCQkJCU1BUkxCT1JPIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1EMyAgIChoZXgpCQlHSUVTRUNLRSAmIERFVlJJRU5UIEdtYkgKKzAwOTBEMyAgICAgKGJhc2UgMTYpCQlHSUVTRUNLRSAmIERFVlJJRU5UIEdtYkgKKwkJCQlQUklOWlJFR0VOVEVOU1RSQVNTRSAxNTkKKwkJCQlELTgxNjc3ICBNVU5DSEVOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLUQ0ICAgKGhleCkJCUJpbmRWaWV3IERldmVsb3BtZW50IENvcnAuCiswMDkwRDQgICAgIChiYXNlIDE2KQkJQmluZFZpZXcgRGV2ZWxvcG1lbnQgQ29ycC4KKwkJCQkzMzU1IFdFU1QgQUxBQkFNQSAjMTIwMAorCQkJCUhPVVNUT04gVFggNzcwOTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUQ1ICAgKGhleCkJCUVVUEhPTklYLCBJTkMuCiswMDkwRDUgICAgIChiYXNlIDE2KQkJRVVQSE9OSVgsIElOQy4KKwkJCQkyMjAgUE9SVEFHRSBBVkUuCisJCQkJUEFMTyBBTFRPIENBIDk0MzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1ENiAgIChoZXgpCQlDUllTVEFMIEdST1VQCiswMDkwRDYgICAgIChiYXNlIDE2KQkJQ1JZU1RBTCBHUk9VUAorCQkJCTg1MCBLQUNFTkEgUkQuCisJCQkJSElBV0FUSEEgSUEgNTIyMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUQ3ICAgKGhleCkJCU5ldEJvb3N0IENvcnAuCiswMDkwRDcgICAgIChiYXNlIDE2KQkJTmV0Qm9vc3QgQ29ycC4KKwkJCQkzOTAgQ0FNQlJJREdFIEFWRU5VRQorCQkJCVBBTE8gQUxUTyBDQSA5NDMwNi0xNTA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1EOCAgIChoZXgpCQlXSElURUNST1NTIFNZU1RFTVMKKzAwOTBEOCAgICAgKGJhc2UgMTYpCQlXSElURUNST1NTIFNZU1RFTVMKKwkJCQkzQSBXQVRFUlNJREUgUEFSSywgQ09PS0hBTSBSRAorCQkJCUJSQUNLTkVMTAorCQkJCUJFUktTSElSRSBSRzEyIDFSQiAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtOTAtRDkgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MEQ5ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJTS9TLyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLURBICAgKGhleCkJCURZTkFSQywgSU5DLgorMDA5MERBICAgICAoYmFzZSAxNikJCURZTkFSQywgSU5DLgorCQkJCTE4ODcgTEFORElOR1MgRFJJVkUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1EQiAgIChoZXgpCQlORVhUIExFVkVMIENPTU1VTklDQVRJT05TCiswMDkwREIgICAgIChiYXNlIDE2KQkJTkVYVCBMRVZFTCBDT01NVU5JQ0FUSU9OUworCQkJCTYwODUgU1RBVEUgRkFSTSBEUklWRQorCQkJCVJPSE5FUlQgUEFSSyBDQSA5NDkyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtREMgICAoaGV4KQkJVEVDTyBJTkZPUk1BVElPTiBTWVNURU1TCiswMDkwREMgICAgIChiYXNlIDE2KQkJVEVDTyBJTkZPUk1BVElPTiBTWVNURU1TCisJCQkJQ08uLCBMVEQuCisJCQkJMjg0MSBKVU5DVElPTiBBVkUuLCBTVEUuICMxMTYKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtREQgICAoaGV4KQkJVEhFIE1JSEFSVSBDT01NVU5JQ0FUSU9OUyBDTy4sIExURC4KKzAwOTBERCAgICAgKGJhc2UgMTYpCQlUSEUgTUlIQVJVIENPTU1VTklDQVRJT05TIENPLiwgTFRELgorCQkJCQorCQkJCTEyODUsIElXQVNFLCBLQU1BS1VSQS1DSVRZCisJCQkJS0FOQUdBV0EgIAorCQkJCUpBUEFOCisKKzAwLTkwLURFICAgKGhleCkJCUNBUkRLRVkgU1lTVEVNUywgSU5DLgorMDA5MERFICAgICAoYmFzZSAxNikJCUNBUkRLRVkgU1lTVEVNUywgSU5DLgorCQkJCTE3NTcgVEFQTyBDQU5ZT04gUk9BRAorCQkJCVNJTUkgVkFMTEVZIENBIDkzMDYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1ERiAgIChoZXgpCQlNSVRTVUJJU0hJIENIRU1JQ0FMIEFNRVJJQ0EsIElOQy4KKzAwOTBERiAgICAgKGJhc2UgMTYpCQlNSVRTVUJJU0hJIENIRU1JQ0FMIEFNRVJJQ0EsIElOQy4KKwkJCQk0NDUgSU5ESU8gV0FZCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1FMCAgIChoZXgpCQlTWVNUUkFOIENPUlAuCiswMDkwRTAgICAgIChiYXNlIDE2KQkJU1lTVFJBTiBDT1JQLgorCQkJCTQxMjYgTElOREVOIEFWRU5VRQorCQkJCURBWVRPTiBPSCA0NTQzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRTEgICAoaGV4KQkJVEVMRU5BIFMuUC5BLgorMDA5MEUxICAgICAoYmFzZSAxNikJCVRFTEVOQSBTLlAuQS4KKwkJCQlWSUEgU0FWT05BLCAxNDYKKwkJCQkyMDE0NCBNSUxBTk8gIAorCQkJCUlUQUxZCisKKzAwLTkwLUUyICAgKGhleCkJCURJU1RSSUJVVEVEIFBST0NFU1NJTkcgVEVDSE5PTE9HWQorMDA5MEUyICAgICAoYmFzZSAxNikJCURJU1RSSUJVVEVEIFBST0NFU1NJTkcgVEVDSE5PTE9HWQorCQkJCTE0MCBDQU5EQUNFIERSSVZFCisJCQkJT1JMQU5ETyBGTCAzMjc1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRTMgICAoaGV4KQkJQVZFWCBFTEVDVFJPTklDUyBJTkMuCiswMDkwRTMgICAgIChiYXNlIDE2KQkJQVZFWCBFTEVDVFJPTklDUyBJTkMuCisJCQkJNDgwNyBCUkFERk9SRCBEUklWRQorCQkJCUhVTlRTVklMTEUgQUwgMzU4MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUU0ICAgKGhleCkJCU5FQyBBTUVSSUNBLCBJTkMuCiswMDkwRTQgICAgIChiYXNlIDE2KQkJTkVDIEFNRVJJQ0EsIElOQy4KKwkJCQkzMTAwIE4uRS4gU0hVVEUgUk9BRAorCQkJCUhJTExTQk9STyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRTUgICAoaGV4KQkJVEVLTkVNQSwgSU5DLgorMDA5MEU1ICAgICAoYmFzZSAxNikJCVRFS05FTUEsIElOQy4KKwkJCQkyNjU2IEUuIEJBWVNIT1JFIFJPQUQKKwkJCQlQQUxPIEFMVE8gQ0EgOTQzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUU2ICAgKGhleCkJCUFMaSBDb3Jwb3JhdGlvbgorMDA5MEU2ICAgICAoYmFzZSAxNikJCUFMaSBDb3Jwb3JhdGlvbgorCQkJCTZGLCAyNDYgTmVpSHUgUm9hZCwgU2VjLiAxCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLUU3ICAgKGhleCkJCUhPUlNDSCBFTEVLVFJPTklLIEFHCiswMDkwRTcgICAgIChiYXNlIDE2KQkJSE9SU0NIIEVMRUtUUk9OSUsgQUcKKwkJCQlIQUFHRVJTVFJBU1NFCisJCQkJUE9TVEZBQ0gKKwkJCQlDSC05NDczIEdBTVMgIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTkwLUU4ICAgKGhleCkJCU1PWEEgVEVDSE5PTE9HSUVTIENPUlAuLCBMVEQuCiswMDkwRTggICAgIChiYXNlIDE2KQkJTU9YQSBURUNITk9MT0dJRVMgQ09SUC4sIExURC4KKwkJCQk3RiwgTk8uIDIsIEFMWTYsIExOIDIzNQorCQkJCVBBTy1DSElBTyBSRCwKKwkJCQlTSElFTkctVElFTiBDSVRZIFRBSVBFSSAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLUU5ICAgKGhleCkJCUpBTlogQ09NUFVURVIgQUcKKzAwOTBFOSAgICAgKGJhc2UgMTYpCQlKQU5aIENPTVBVVEVSIEFHCisJCQkJSW0gRG9yZW5lciBGZWxkIDgKKwkJCQlELTMzMTAwIFBhZGVyYm9ybiAKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLUVBICAgKGhleCkJCUFMUEhBIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA5MEVBICAgICAoYmFzZSAxNikJCUFMUEhBIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTM3NjcgQUxQSEEgV0FZCisJCQkJQkVMTElOR0hBTSBXQSA5ODIyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRUIgICAoaGV4KQkJU0VOVFJZIFRFTEVDT00gU1lTVEVNUworMDA5MEVCICAgICAoYmFzZSAxNikJCVNFTlRSWSBURUxFQ09NIFNZU1RFTVMKKwkJCQk4NjY0IENPTU1FUkNFIENPVVJUCisJCQkJQlVSTkFCWSBCQyBWNUEgNE43IAorCQkJCUNBTkFEQQorCiswMC05MC1FQyAgIChoZXgpCQlQWVJFU0NPTQorMDA5MEVDICAgICAoYmFzZSAxNikJCVBZUkVTQ09NCisJCQkJMyBBTExFRSBEVSBNT1VMSU4KKwkJCQk2NjY4MCBDQU5PSEVTICAKKwkJCQlGUkFOQ0UKKworMDAtOTAtRUQgICAoaGV4KQkJQ0VOVFJBTCBTWVNURU0gUkVTRUFSQ0ggQ08uLCBMVEQuCiswMDkwRUQgICAgIChiYXNlIDE2KQkJQ0VOVFJBTCBTWVNURU0gUkVTRUFSQ0ggQ08uLCBMVEQuCisJCQkJNC0xMy0yIEhJWU9TSElDSE8KKwkJCQlLT0tVQlVOSkktQ0lUWSBUT0tZTyAxODUwMDAzMiAKKwkJCQlKQVBBTgorCiswMC05MC1FRSAgIChoZXgpCQlQRVJTT05BTCBDT01NVU5JQ0FUSU9OUyBURUNITk9MT0dJRVMKKzAwOTBFRSAgICAgKGJhc2UgMTYpCQlQRVJTT05BTCBDT01NVU5JQ0FUSU9OUyBURUNITk9MT0dJRVMKKwkJCQk1MCBTVElMRVMgUk9BRAorCQkJCVNBTEVNIE5IIDAzMDc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1FRiAgIChoZXgpCQlJTlRFR1JJWCwgSU5DLgorMDA5MEVGICAgICAoYmFzZSAxNikJCUlOVEVHUklYLCBJTkMuCisJCQkJMjAwMSBDT1JQT1JBVEUgQ0VOVEVSIERSSVZFCisJCQkJTkVXQlVSWSBQQVJLIENBIDkxMzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1GMCAgIChoZXgpCQlIYXJtb25pYyBWaWRlbyBTeXN0ZW1zIEx0ZC4KKzAwOTBGMCAgICAgKGJhc2UgMTYpCQlIYXJtb25pYyBWaWRlbyBTeXN0ZW1zIEx0ZC4KKwkJCQkxOSBBTE9OIEhBVEFWT1IgU1RSRUVUCisJCQkJWm9uZSAzLCBQTyBCb3ggMzYwMAorCQkJCUNBRVNBUkVBICBJbmR1c3RyaWFsIFBhcmsgIDM4OTAwCisJCQkJSVNSQUVMCisKKzAwLTkwLUYxICAgKGhleCkJCURPVCBISUxMIFNZU1RFTVMgQ09SUE9SQVRJT04KKzAwOTBGMSAgICAgKGJhc2UgMTYpCQlET1QgSElMTCBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJNjMwNSBFbCBDYW1pbm8gUmVhbAorCQkJCUNhcmxzYmFkIENBIDkyMDA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1GMiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDkwRjIgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUgLSBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUYzICAgKGhleCkJCUFTUEVDVCBDT01NVU5JQ0FUSU9OUworMDA5MEYzICAgICAoYmFzZSAxNikJCUFTUEVDVCBDT01NVU5JQ0FUSU9OUworCQkJCTEzMTAgUmlkZGVyIFBhcmsgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMS0yMzEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1GNCAgIChoZXgpCQlMSUdIVE5JTkcgSU5TVFJVTUVOVEFUSU9OCiswMDkwRjQgICAgIChiYXNlIDE2KQkJTElHSFROSU5HIElOU1RSVU1FTlRBVElPTgorCQkJCUJPVkVSRVNTRVMgNTAKKwkJCQkxMDEwIExBVVNBTk5FICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC05MC1GNSAgIChoZXgpCQlDTEVWTyBDTy4KKzAwOTBGNSAgICAgKGJhc2UgMTYpCQlDTEVWTyBDTy4KKwkJCQkzNSwgV1UtR09OIDZUSCBST0FECisJCQkJV1UtS1UgSU5EVVNUUklBTCBQQVJLCisJCQkJVEFJUEVJIEhTSUVOICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLUY2ICAgKGhleCkJCUVTQ0FMQVRFIE5FVFdPUktTLCBJTkMuCiswMDkwRjYgICAgIChiYXNlIDE2KQkJRVNDQUxBVEUgTkVUV09SS1MsIElOQy4KKwkJCQk2IEhVR0hFUworCQkJCUlSVklORSBDQSA5MjYxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRjcgICAoaGV4KQkJTkJBU0UgQ09NTVVOSUNBVElPTlMgTFRELgorMDA5MEY3ICAgICAoYmFzZSAxNikJCU5CQVNFIENPTU1VTklDQVRJT05TIExURC4KKwkJCQlJTkRVU1RSSUFMIFBBUksKKwkJCQlZT1FORUFNIElMSVQgUC5PLiBCT1ggMTE0CisJCQkJSVNSQUVMCisKKzAwLTkwLUY4ICAgKGhleCkJCU1FRElBVFJJWCBURUxFQ09NCiswMDkwRjggICAgIChiYXNlIDE2KQkJTUVESUFUUklYIFRFTEVDT00KKwkJCQk0MjI5IEdBUkxPQ0sKKwkJCQlTSEVSQlJPT0tFCisJCQkJUVVFQkVDIEoxTCAyQzggIAorCQkJCUNBTkFEQQorCiswMC05MC1GOSAgIChoZXgpCQlMRUlUQ0gKKzAwOTBGOSAgICAgKGJhc2UgMTYpCQlMRUlUQ0gKKwkJCQkxMCBEWUFTIFJPQUQKKwkJCQlET04gTUlMTFMKKwkJCQlPTlRBUklPIE0zQiAxVjUgIAorCQkJCUNBTkFEQQorCiswMC05MC1GQSAgIChoZXgpCQlFTVVMRVggQ29ycAorMDA5MEZBICAgICAoYmFzZSAxNikJCUVNVUxFWCBDb3JwCisJCQkJMzMzMyBTdXNhbiBTdHJlZXQKKwkJCQlDb3N0YSBNZXNhIENBIDkyNjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1GQiAgIChoZXgpCQlQT1JUV0VMTCwgSU5DLgorMDA5MEZCICAgICAoYmFzZSAxNikJCVBPUlRXRUxMLCBJTkMuCisJCQkJN0YtNCwgTk8uIDE2MCwgU0VDLiA2CisJCQkJTUlORy1DSFVBTkcgRS4gUkQuCisJCQkJVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLUZDICAgKGhleCkJCU5FVFdPUksgQ09NUFVUSU5HIERFVklDRVMKKzAwOTBGQyAgICAgKGJhc2UgMTYpCQlORVRXT1JLIENPTVBVVElORyBERVZJQ0VTCisJCQkJMzAxIFJBVkVOREFMRSBEUklWRQorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUZEICAgKGhleCkJCUNvcHBlckNvbSwgSW5jLgorMDA5MEZEICAgICAoYmFzZSAxNikJCUNvcHBlckNvbSwgSW5jLgorCQkJCTMyNTUtMSBTQ09UVCBCTFZELiwtLVNURS4jMTAzCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUZFICAgKGhleCkJCUVMRUNPTSBDTy4sIExURC4gIChMQU5FRUQgRElWLikKKzAwOTBGRSAgICAgKGJhc2UgMTYpCQlFTEVDT00gQ08uLCBMVEQuICAoTEFORUVEIERJVi4pCisJCQkJU1VNSVRPTU8gRlVET1NBTgorCQkJCUhJR0FTSEkgSUtFQlVLVVJPIEJMREcuIDZGLCAzLTEzLTIgSElHQVMKKwkJCQlUT1NISU1BLUtVIFRPS1lPIDE3MC0wMDEzIAorCQkJCUpBUEFOCisKKzAwLTkwLUZGICAgKGhleCkJCVRFTExVUyBURUNITk9MT0dZIElOQy4KKzAwOTBGRiAgICAgKGJhc2UgMTYpCQlURUxMVVMgVEVDSE5PTE9HWSBJTkMuCisJCQkJNDA5OTAgRU5DWUNMT1BFRElBIENJUi4KKwkJCQlGUkVNT05UIENBIDk0NTM4LTI0NzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkxLUQ2ICAgKGhleCkJCUNyeXN0YWwgR3JvdXAsIEluYy4KKzAwOTFENiAgICAgKGJhc2UgMTYpCQlDcnlzdGFsIEdyb3VwLCBJbmMuCisJCQkJODUwIEthY2VuYSBSZC4KKwkJCQlIaWF3YXRoYSBJQSA1MjIzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTMtNjMgICAoaGV4KQkJVW5pLUxpbmsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwOTM2MyAgICAgKGJhc2UgMTYpCQlVbmktTGluayBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTctNSwgTm8uNjYsIFNlYy4yLCBOYW4tS2FuIFJkLiwgTHUtQ2h1IEhzaWFuZywKKwkJCQlUYW95dWFuICAzMzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTk3LUZGICAgKGhleCkJCUhlaW1hbm4gU2Vuc29yIEdtYkgKKzAwOTdGRiAgICAgKGJhc2UgMTYpCQlIZWltYW5uIFNlbnNvciBHbWJICisJCQkJR3JlbnpzdHJhc3NlIDIyCisJCQkJRHJlc2RlbiBTYWNoc2VuIDAxMTA5CisJCQkJR0VSTUFOWQorCiswMC05RC04RSAgIChoZXgpCQlDQVJESUFDIFJFQ09SREVSUywgSU5DLgorMDA5RDhFICAgICAoYmFzZSAxNikJCUNBUkRJQUMgUkVDT1JERVJTLCBJTkMuCisJCQkJMzQgU0NBUkJPUk8gUk9BRAorCQkJCUxPTkRPTiAgTjQgNEwgVQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtMDAgICAoaGV4KQkJQ0VOVElMTElPTiBORVRXT1JLUywgSU5DLgorMDBBMDAwICAgICAoYmFzZSAxNikJCUNFTlRJTExJT04gTkVUV09SS1MsIElOQy4KKwkJCQkzNTkgUkFWRU5EQUxFIERSSVZFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMDEgICAoaGV4KQkJRFJTIFNpZ25hbCBTb2x1dGlvbnMKKzAwQTAwMSAgICAgKGJhc2UgMTYpCQlEUlMgU2lnbmFsIFNvbHV0aW9ucworCQkJCTcwMCBRdWluY2UgT3JjaGFyZCBSb2FkCisJCQkJR2FpdGhlcnNidXJnIE1EIDIwODc4LTE3OTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTAyICAgKGhleCkJCUxFRURTICYgTk9SVEhSVVAgQVVTVFJBTElBIFBUWSBMVEQKKzAwQTAwMiAgICAgKGJhc2UgMTYpCQlMRUVEUyAmIE5PUlRIUlVQIEFVU1RSQUxJQSBQVFkgTFRECisJCQkJUE8gQk9YIDQwMDkKKwkJCQlFSUdIVCBNSUxFIFBMQUlOUyAgUUxEIDQxMTMgIAorCQkJCUFVU1RSQUxJQQorCiswMC1BMC0wMyAgIChoZXgpCQlTaWVtZW5zIFN3aXR6ZXJsYW5kIEx0ZC4sIEkgQiBUIEhWUAorMDBBMDAzICAgICAoYmFzZSAxNikJCVNpZW1lbnMgU3dpdHplcmxhbmQgTHRkLiwgSSBCIFQgSFZQCisJCQkJQnVpbGRpbmcgVGVjaG5vbG9naWVzIERpdmlzaW9uLCBJbnRlcm5hdGlvbmFsIEhlYWRxdWFydGVycworCQkJCUkgQlQgSFZQIFNZUyBSRCBFVSBHdWJlbHN0cmFzc2UgMjIKKwkJCQladWcgIDYzMDEKKwkJCQlTV0lUWkVSTEFORAorCiswMC1BMC0wNCAgIChoZXgpCQlORVRQT1dFUiwgSU5DLgorMDBBMDA0ICAgICAoYmFzZSAxNikJCU5FVFBPV0VSLCBJTkMuCisJCQkJNTQ1IE9BS01FQUQgUEFSS1dBWQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMDUgICAoaGV4KQkJREFOSUVMIElOU1RSVU1FTlRTLCBMVEQuCiswMEEwMDUgICAgIChiYXNlIDE2KQkJREFOSUVMIElOU1RSVU1FTlRTLCBMVEQuCisJCQkJVFJPTExTVFJBU1NFIDMzCisJCQkJQ0gtODQwMCBXSU5URVJUSFVSICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC1BMC0wNiAgIChoZXgpCQlJTUFHRSBEQVRBIFBST0NFU1NJTkcgU1lTVEVNIEdST1VQCiswMEEwMDYgICAgIChiYXNlIDE2KQkJSU1BR0UgREFUQSBQUk9DRVNTSU5HIFNZU1RFTSBHUk9VUAorCQkJCVNISU5UT1lPRlVUQSAyLTEKKwkJCQlLQVNISVdBLUNJVFksIENISUJBIDI3NyAgCisJCQkJSkFQQU4KKworMDAtQTAtMDcgICAoaGV4KQkJQVBFWFggVEVDSE5PTE9HWSwgSU5DLgorMDBBMDA3ICAgICAoYmFzZSAxNikJCUFQRVhYIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk1MDYgUy4gMTFUSAorCQkJCVBPIEJPWCA5MjkxCisJCQkJQk9JU0UgSUQgODM3MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTA4ICAgKGhleCkJCU5FVENPUlAKKzAwQTAwOCAgICAgKGJhc2UgMTYpCQlORVRDT1JQCisJCQkJOCBQTEFDRSBPRiBDT01NRVJDRS0tU1RFICMyMDAKKwkJCQlCUk9TU0FSRCwgUVVFQkVDCisJCQkJQ0FOQURBIEo0VyAzSDIKKwkJCQlDQU5BREEKKworMDAtQTAtMDkgICAoaGV4KQkJV0hJVEVUUkVFIE5FVFdPUksKKzAwQTAwOSAgICAgKGJhc2UgMTYpCQlXSElURVRSRUUgTkVUV09SSworCQkJCVRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTMyMDAgQVNIIFNUUkVFVAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMEEgICAoaGV4KQkJQWlyc3BhbgorMDBBMDBBICAgICAoYmFzZSAxNikJCUFpcnNwYW4KKwkJCQlVbml0cm9uaWNzIEJ1aWxkaW5nLCBBcmF2YSBTdHJlZXQsIEFpcnBvcnQgQ2l0eQorCQkJCVBPQiAxOTkKKwkJCQk3MDEwMAorCQkJCUlTUkFFTAorCiswMC1BMC0wQiAgIChoZXgpCQlDT01QVVRFWCBDTy4sIExURC4KKzAwQTAwQiAgICAgKGJhc2UgMTYpCQlDT01QVVRFWCBDTy4sIExURC4KKwkJCQk0MzItMTMgR09KWU9CQVNISS1ISUdBU0hJIDQtQ0hZT01FCisJCQkJIEhJR0FTSElZQU1BS1UsIEtZT1RPLUNJVFkgNjA1ICAKKwkJCQlKQVBBTgorCiswMC1BMC0wQyAgIChoZXgpCQlLSU5HTUFYIFRFQ0hOT0xPR1ksIElOQy4KKzAwQTAwQyAgICAgKGJhc2UgMTYpCQlLSU5HTUFYIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkyRkwuLCBOTy4gNCwgTEFORSA5MDIsIFNFQy4yCisJCQkJS1VBTkcgRlUgUkQuLCBIU0lOLUNIVSBDSVRZCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1BMC0wRCAgIChoZXgpCQlUSEUgUEFOREEgUFJPSkVDVAorMDBBMDBEICAgICAoYmFzZSAxNikJCVRIRSBQQU5EQSBQUk9KRUNUCisJCQkJNTIwMSBDT05HUkVTUyBBVkUuIC0gQy0xMDAKKwkJCQlCT0NBIFJBVE9OIEZMIDMzNDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0wRSAgIChoZXgpCQlWSVNVQUwgTkVUV09SS1MsIElOQy4KKzAwQTAwRSAgICAgKGJhc2UgMTYpCQlWSVNVQUwgTkVUV09SS1MsIElOQy4KKwkJCQkyMDkyIEdBSVRIRVIgUk9BRC0gU1RFICMyMjAKKwkJCQlST0NLVklMTEUgTUQgMjA4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTBGICAgKGhleCkJCUJyb2FkYmFuZCBUZWNobm9sb2dpZXMKKzAwQTAwRiAgICAgKGJhc2UgMTYpCQlCcm9hZGJhbmQgVGVjaG5vbG9naWVzCisJCQkJUC5PLiBCb3ggMTM3MzcKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrLCBOQyAyNzcwOS0zNzM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0xMCAgIChoZXgpCQlTWVNMT0dJQyBEQVRFTlRFQ0hOSUsgQUcKKzAwQTAxMCAgICAgKGJhc2UgMTYpCQlTWVNMT0dJQyBEQVRFTlRFQ0hOSUsgQUcKKwkJCQlCcnVnZ2Vyc3RyYXNzZSA2OQorCQkJCUNILTU0MDAgQmFkZW4gIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLUEwLTExICAgKGhleCkJCU1VVE9IIElORFVTVFJJRVMgTFRELgorMDBBMDExICAgICAoYmFzZSAxNikJCU1VVE9IIElORFVTVFJJRVMgTFRELgorCQkJCTI1MyBLQU5BR0FXQS1LRU4sCisJCQkJQ0hJR0FTQUtJLVNISSBTSElNT01BQ0hJWUEgMS0zLTEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUEwLTEyICAgKGhleCkJCVRlbGNvIFN5c3RlbXMsIEluYy4gCiswMEEwMTIgICAgIChiYXNlIDE2KQkJVGVsY28gU3lzdGVtcywgSW5jLiAKKwkJCQkxNSBCZXJrc2hpcmUgUm9hZAorCQkJCU1hbnNmaWVsZCwgTUEgMDIwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTEzICAgKGhleCkJCVRFTFRSRU5EIExURC4KKzAwQTAxMyAgICAgKGJhc2UgMTYpCQlURUxUUkVORCBMVEQuCisJCQkJUklOR1dBWSBIT1VTRSwgQkVMTCBST0FECisJCQkJREFORVNISUxMLAorCQkJCUJBU0lOR1NUT0tFIEhBTVBTSElSRSBSRzI0IDhGICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC0xNCAgIChoZXgpCQlDU0lSCiswMEEwMTQgICAgIChiYXNlIDE2KQkJQ1NJUgorCQkJCVAuTy4gQk9YIDM5NQorCQkJCVBSRVRPUklBIDAwMDEKKwkJCQlTT1VUSCBBRlJJQ0EKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtQTAtMTUgICAoaGV4KQkJV1lMRQorMDBBMDE1ICAgICAoYmFzZSAxNikJCVdZTEUKKwkJCQkzMDAwIEJPV0VSUyBBVkVOVUUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMTYgICAoaGV4KQkJTUlDUk9QT0xJUyBDT1JQLgorMDBBMDE2ICAgICAoYmFzZSAxNikJCU1JQ1JPUE9MSVMgQ09SUC4KKwkJCQkyMTIxMSBOT1JESE9GRiBTVFJFRVQKKwkJCQlDSEFUU1dPUlRIIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0xNyAgIChoZXgpCQlKIEIgTSBDT1JQT1JBVElPTgorMDBBMDE3ICAgICAoYmFzZSAxNikJCUogQiBNIENPUlBPUkFUSU9OCisJCQkJMTAtMSwgQVJBTU9UT1NISU4gTUFDSEkKKwkJCQlISUdBU0hJIE9TQUtBCisJCQkJNTc3CisJCQkJSkFQQU4KKworMDAtQTAtMTggICAoaGV4KQkJQ1JFQVRJVkUgQ09OVFJPTExFUlMsIElOQy4KKzAwQTAxOCAgICAgKGJhc2UgMTYpCQlDUkVBVElWRSBDT05UUk9MTEVSUywgSU5DLgorCQkJCTEyOCBLRU5EUklDSyBMQU5FCisJCQkJUElDQVlVTkUgTVMgMzk0NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTE5ICAgKGhleCkJCU5FQlVMQSBDT05TVUxUQU5UUywgSU5DLgorMDBBMDE5ICAgICAoYmFzZSAxNikJCU5FQlVMQSBDT05TVUxUQU5UUywgSU5DLgorCQkJCTE0NDkgRFVOQ0FOIERSSVZFCisJCQkJREVMVEEsIEJDIFY0TCAxUjUgIAorCQkJCUNBTkFEQQorCiswMC1BMC0xQSAgIChoZXgpCQlCSU5BUiBFTEVLVFJPTklLIEFCCiswMEEwMUEgICAgIChiYXNlIDE2KQkJQklOQVIgRUxFS1RST05JSyBBQgorCQkJCU1BR05FVFVBR0VOIDE4CisJCQkJUy00NjEzOCBUUk9MTEhBVFRBTgorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC1BMC0xQiAgIChoZXgpCQlQUkVNSVNZUyBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBBMDFCICAgICAoYmFzZSAxNikJCVBSRU1JU1lTIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJNDg2NjQgTUlMTU9OVCBEUklWRQorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTFDICAgKGhleCkJCU5BU0NFTlQgTkVUV09SS1MgQ09SUE9SQVRJT04KKzAwQTAxQyAgICAgKGJhc2UgMTYpCQlOQVNDRU5UIE5FVFdPUktTIENPUlBPUkFUSU9OCisJCQkJMjc3IE1BSU4gU1RSRUVULCAgM1JEIEZMUi4KKwkJCQlNQVJMQk9STyBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMUQgICAoaGV4KQkJU0lYTkVUCiswMEEwMUQgICAgIChiYXNlIDE2KQkJU0lYTkVUCisJCQkJUC5PLiBCT1ggNzY3CisJCQkJQ0xJRlRPTiBQQVJLIE5ZIDEyMDY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0xRSAgIChoZXgpCQlFU1QgQ09SUE9SQVRJT04KKzAwQTAxRSAgICAgKGJhc2UgMTYpCQlFU1QgQ09SUE9SQVRJT04KKwkJCQkxMjAgUk9ZQUxMIFNUUkVFVAorCQkJCUNBTlRPTiBNQSAwMjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMUYgICAoaGV4KQkJVFJJQ09SRCBTWVNURU1TLCBJTkMuCiswMEEwMUYgICAgIChiYXNlIDE2KQkJVFJJQ09SRCBTWVNURU1TLCBJTkMuCisJCQkJMjgwMCBOT1JUSFdFU1QgQk9VTEVWQVJECisJCQkJUExZTU9VVEggTU4gNTU0NDEtMjYyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMjAgICAoaGV4KQkJQ0lUSUNPUlAvVFRJCiswMEEwMjAgICAgIChiYXNlIDE2KQkJQ0lUSUNPUlAvVFRJCisJCQkJMzEwMCBPQ0VBTiBQQVJLIEJMVkQuCisJCQkJU0FOVEEgTU9OSUNBIENBIDkwNDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0yMSAgIChoZXgpCQlHZW5lcmFsIER5bmFtaWNzCiswMEEwMjEgICAgIChiYXNlIDE2KQkJR2VuZXJhbCBEeW5hbWljcworCQkJCUNvbW11bmljYXRpb24gU3lzdGVtcworCQkJCTc3QSBTdHJlZXQKKwkJCQlOZWVkaGFtIEhlaWdodHMgTUEgMDI0OTQtMjg5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMjIgICAoaGV4KQkJQ0VOVFJFIEZPUiBERVZFTE9QTUVOVCBPRiBBRFZBTkNFRCBDT01QVVRJTkcKKzAwQTAyMiAgICAgKGJhc2UgMTYpCQlDRU5UUkUgRk9SIERFVkVMT1BNRU5UIE9GIEFEVkFOQ0VEIENPTVBVVElORworCQkJCVVOSVZFUlNJVFkgT0YgUE9PTkEgQ0FNUFVTCisJCQkJR0FORVNIIEtISU5ELCBQdW5lIC0gNDExIDAwOCAgCisJCQkJSU5ESUEKKworMDAtQTAtMjMgICAoaGV4KQkJQVBQTElFRCBDUkVBVElWRSBURUNITk9MT0dZLCBJTkMuCiswMEEwMjMgICAgIChiYXNlIDE2KQkJQVBQTElFRCBDUkVBVElWRSBURUNITk9MT0dZLCBJTkMuCisJCQkJMjYyNiBMT01CQVJEWSBMQU5FLS1TVEUuIzEwNworCQkJCURBTExBUyBUWCA3NTIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMjQgICAoaGV4KQkJM0NPTSBDT1JQT1JBVElPTgorMDBBMDI0ICAgICAoYmFzZSAxNikJCTNDT00gQ09SUE9SQVRJT04KKwkJCQk1NDAwIEJBWUZST05UIFBMQVpBCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTI1ICAgKGhleCkJCVJFRENPTSBMQUJTIElOQy4KKzAwQTAyNSAgICAgKGJhc2UgMTYpCQlSRURDT00gTEFCUyBJTkMuCisJCQkJT05FIFJFRENPTSBDRU5URVIKKwkJCQlWSUNUT1IgTlkgMTQ1NjQtMDk5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMjYgICAoaGV4KQkJVEVMREFULCBTLkEuCiswMEEwMjYgICAgIChiYXNlIDE2KQkJVEVMREFULCBTLkEuCisJCQkJUEFSUVVFIFRFQ05PTE9HSUNPIE1BRFJJRAorCQkJCTI4NzYwIFRBQ1MgQ0FOIFRPUyAoTUFEUklEKSAgCisJCQkJU1BBSU4KKworMDAtQTAtMjcgICAoaGV4KQkJRklSRVBPV0VSIFNZU1RFTVMsIElOQy4KKzAwQTAyNyAgICAgKGJhc2UgMTYpCQlGSVJFUE9XRVIgU1lTVEVNUywgSU5DLgorCQkJCTE5MCBJTkRFUEVOREVOQ0UgRFJJVkUKKwkJCQlNRU5MTyBQQVJLIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0yOCAgIChoZXgpCQlDT05ORVIgUEVSSVBIRVJBTFMKKzAwQTAyOCAgICAgKGJhc2UgMTYpCQlDT05ORVIgUEVSSVBIRVJBTFMKKwkJCQkzMDYxIFpBTktFUiBST0FECisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMjEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMjkgICAoaGV4KQkJQ09VTFRFUiBDT1JQT1JBVElPTgorMDBBMDI5ICAgICAoYmFzZSAxNikJCUNPVUxURVIgQ09SUE9SQVRJT04KKwkJCQkxMTgwMCBTLlcuIDE0N1RIIEFWRS4KKwkJCQlNSUFNSSBGTCAzMzE5NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMkEgICAoaGV4KQkJVFJBTkNFTEwgU1lTVEVNUworMDBBMDJBICAgICAoYmFzZSAxNikJCVRSQU5DRUxMIFNZU1RFTVMKKwkJCQkzMTgwIERFIExBIENSVVogQkxWRC4tU1RFIzIwMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0LTI0MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTJCICAgKGhleCkJCVRSQU5TSVRJT05TIFJFU0VBUkNIIENPUlAuCiswMEEwMkIgICAgIChiYXNlIDE2KQkJVFJBTlNJVElPTlMgUkVTRUFSQ0ggQ09SUC4KKwkJCQlTSEVMVEVSIFJPQ0sgTEFORQorCQkJCURBTkJVUlkgQ1QgMDY4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTJDICAgKGhleCkJCWludGVyV0FWRSBDb21tdW5pY2F0aW9ucworMDBBMDJDICAgICAoYmFzZSAxNikJCWludGVyV0FWRSBDb21tdW5pY2F0aW9ucworCQkJCTY1NiBCQUlSIElTTEFORCBCTFZELi1TVEUuIzEwOAorCQkJCVJFRFdPT0QgQ0lUWSBDQSA5NDA2My0yNzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0yRCAgIChoZXgpCQkxMzk0IFRyYWRlIEFzc29jaWF0aW9uCiswMEEwMkQgICAgIChiYXNlIDE2KQkJMTM5NCBUcmFkZSBBc3NvY2lhdGlvbgorCQkJCTM5MjUgV0VTVCBCUkFLRVIgTEFORQorCQkJCUFVU1RJTiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMkUgICAoaGV4KQkJQlJBTkQgQ09NTVVOSUNBVElPTlMsIExURC4KKzAwQTAyRSAgICAgKGJhc2UgMTYpCQlCUkFORCBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCUVOVEVSUFJJU0UgSE9VU0UsIENISVZFUlMgV0FZLAorCQkJCUhJU1RPTiwgQ0FNQlJJREdFIENCNCA0WlIgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLTJGICAgKGhleCkJCVBJUkVMTEkgQ0FWSQorMDBBMDJGICAgICAoYmFzZSAxNikJCVBJUkVMTEkgQ0FWSQorCQkJCVZJQUxFIFNBUkNBIDIyMgorCQkJCTIwMTI2IE1JTEFOICAKKwkJCQlJVEFMWQorCiswMC1BMC0zMCAgIChoZXgpCQlDQVBUT1IgTlYvU0EKKzAwQTAzMCAgICAgKGJhc2UgMTYpCQlDQVBUT1IgTlYvU0EKKwkJCQlERSBIRU5FIDEzCisJCQkJQi0xNzgwIFdFTU1FTAorCQkJCUJFTEdJVU0KKworMDAtQTAtMzEgICAoaGV4KQkJSEFaRUxUSU5FIENPUlBPUkFUSU9OLCBNUyAxLTE3CiswMEEwMzEgICAgIChiYXNlIDE2KQkJSEFaRUxUSU5FIENPUlBPUkFUSU9OLCBNUyAxLTE3CisJCQkJNDUwIEUuIFBVTEFTS0kgUk9BRAorCQkJCUdSRUVOTEFXTiBOWSAxMTc0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMzIgICAoaGV4KQkJR0VTIFNJTkdBUE9SRSBQVEUuIExURC4KKzAwQTAzMiAgICAgKGJhc2UgMTYpCQlHRVMgU0lOR0FQT1JFIFBURS4gTFRELgorCQkJCTE0IFNVTkdFSSBLQURVVCBBVkVOVUUKKwkJCQlTSU5HQVBPUkUgMjU3MgorCQkJCVNJTkdBUE9SRQorCiswMC1BMC0zMyAgIChoZXgpCQlpbWMgTWVCc3lzdGVtZSBHbWJICiswMEEwMzMgICAgIChiYXNlIDE2KQkJaW1jIE1lQnN5c3RlbWUgR21iSAorCQkJCVZPTFRBU1RSQVNTRSA1CisJCQkJRC0xMzM1NSBCRVJMSU4gIAorCQkJCUdFUk1BTlkKKworMDAtQTAtMzQgICAoaGV4KQkJQVhFTAorMDBBMDM0ICAgICAoYmFzZSAxNikJCUFYRUwKKwkJCQkxNiwgQVZFTlVFIERVIFFVRUJFQworCQkJCVouQS4gQ09VUlRBQk9FVUYgOTE5NjIgTEVTIFVMSVMKKwkJCQlGUkFOQ0UKKworMDAtQTAtMzUgICAoaGV4KQkJQ1lMSU5LIENPUlBPUkFUSU9OCiswMEEwMzUgICAgIChiYXNlIDE2KQkJQ1lMSU5LIENPUlBPUkFUSU9OCisJCQkJMzEzMSBKQVkgU1RSRUVUCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTM2ICAgKGhleCkJCUFQUExJRUQgTkVUV09SSyBURUNITk9MT0dZCiswMEEwMzYgICAgIChiYXNlIDE2KQkJQVBQTElFRCBORVRXT1JLIFRFQ0hOT0xPR1kKKwkJCQkzMTkgTElUVExFVE9OIFJPQUQtLVNURSAjMTAxCisJCQkJV0VTVEZPUkQgTUEgMDE4ODYtNDEzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMzcgICAoaGV4KQkJTWluZHJheSBEUyBVU0EsIEluYy4KKzAwQTAzNyAgICAgKGJhc2UgMTYpCQlNaW5kcmF5IERTIFVTQSwgSW5jLgorCQkJCTgwMCBNYWNhcnRodXIgQmx2ZC4KKwkJCQlNYWh3YWggTkogMDc0MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTM4ICAgKGhleCkJCUVNQUlMIEVMRUNUUk9OSUNTCiswMEEwMzggICAgIChiYXNlIDE2KQkJRU1BSUwgRUxFQ1RST05JQ1MKKwkJCQlQLk8uIEJPWCAxNTQKKwkJCQlNT09ST09MQkFSSywgMzEzOCAgCisJCQkJQVVTVFJBTElBCisKKzAwLUEwLTM5ICAgKGhleCkJCVJPU1MgVEVDSE5PTE9HWSwgSU5DLgorMDBBMDM5ICAgICAoYmFzZSAxNikJCVJPU1MgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTUzMTYgSFdZIDI5MCBXRVNUIC0gU1RFLiAjNTAwCisJCQkJQVVTVElOIFRYIDc4NzM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0zQSAgIChoZXgpCQlLVUJPVEVLIENPUlBPUkFUSU9OCiswMEEwM0EgICAgIChiYXNlIDE2KQkJS1VCT1RFSyBDT1JQT1JBVElPTgorCQkJCTU2IE5JU0hJQUtFVEEtQ0hPLCBISUdBU0hJS1VKTworCQkJCU1JTkFNSS1LVSwgS1lPVE8gNjAxCisJCQkJSkFQQU4KKworMDAtQTAtM0IgICAoaGV4KQkJVE9TSElOIEVMRUNUUklDIENPLiwgTFRELgorMDBBMDNCICAgICAoYmFzZSAxNikJCVRPU0hJTiBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQkzRkwuIFJJVkVSLVNUT05FIDNSRC4gQkxHLjIzNAorCQkJCU1JWk9OT0tVQ0hJLCBUQUtBVFNVLUtWLCBLQVdBU0FLSS1TSEksCisJCQkJMjEzIEpBUEFOCisJCQkJSkFQQU4KKworMDAtQTAtM0MgICAoaGV4KQkJRUcmRyBOVUNMRUFSIElOU1RSVU1FTlRTCiswMEEwM0MgICAgIChiYXNlIDE2KQkJRUcmRyBOVUNMRUFSIElOU1RSVU1FTlRTCisJCQkJMTAwIE1JRExBTkQgUk9BRAorCQkJCU9BSyBSSURHRSBUTiAzNzgzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtM0QgICAoaGV4KQkJT1BUTy0yMgorMDBBMDNEICAgICAoYmFzZSAxNikJCU9QVE8tMjIKKwkJCQk0MzA0NCBCVVNJTkVTUyBQQVJLIERSLgorCQkJCVRFTUVDVUxBIENBIDkyNTkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0zRSAgIChoZXgpCQlBVE0gRk9SVU0KKzAwQTAzRSAgICAgKGJhc2UgMTYpCQlBVE0gRk9SVU0KKwkJCQlXT1JMRFdJREUgSEVBRFFVQVJURVJTCisJCQkJMzAzIFZJTlRBR0UgUEFSSyBEUklWRQorCQkJCUZPU1RFUiBDSVRZIENBIDk0NDA0LTExMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTNGICAgKGhleCkJCUNPTVBVVEVSIFNPQ0lFVFkgTUlDUk9QUk9DRVNTT1IgJiBNSUNST1BST0NFU1NPUiBTVEFOREFSRFMgQworMDBBMDNGICAgICAoYmFzZSAxNikJCUNPTVBVVEVSIFNPQ0lFVFkgTUlDUk9QUk9DRVNTT1IgJiBNSUNST1BST0NFU1NPUiBTVEFOREFSRFMgQworCQkJCSUgQVBQTEUgQ09NUFVURVIsIElOQy4KKwkJCQkgMSBJTkZJTklURSBMT09QLAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNDAgICAoaGV4KQkJQVBQTEUgQ09NUFVURVIKKzAwQTA0MCAgICAgKGJhc2UgMTYpCQlBUFBMRSBDT01QVVRFUgorCQkJCTIwNjUwIFZBTExFWSBHUkVFTiBEUklWRQorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNDEgICAoaGV4KQkJSU5GSUNPTgorMDBBMDQxICAgICAoYmFzZSAxNikJCUlORklDT04KKwkJCQkyIFRlY2hub2xvZ3kgUGxhY2UKKwkJCQlFLiBTeXJhY3VzZSBOWSAxMzA1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNDIgICAoaGV4KQkJU1BVUiBQUk9EVUNUUyBDT1JQLgorMDBBMDQyICAgICAoYmFzZSAxNikJCVNQVVIgUFJPRFVDVFMgQ09SUC4KKwkJCQk5Mjg4IFcuIEVNRVJBTEQgU1RSRUVUCisJCQkJQk9JU0UgSUQgODM3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTQzICAgKGhleCkJCUFNRVJJQ0FOIFRFQ0hOT0xPR1kgTEFCUywgSU5DLgorMDBBMDQzICAgICAoYmFzZSAxNikJCUFNRVJJQ0FOIFRFQ0hOT0xPR1kgTEFCUywgSU5DLgorCQkJCTExNSBXRVNUIDNSRCBTVFJFRVQKKwkJCQlMT1dFUiBMRVZFTAorCQkJCVNURVZFTlNWSUxMRSBNVCA1OTg3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNDQgICAoaGV4KQkJTlRUIElUIENPLiwgTFRELgorMDBBMDQ0ICAgICAoYmFzZSAxNikJCU5UVCBJVCBDTy4sIExURC4KKwkJCQkKKwkJCQlLQU5OQUktV0lTRSBCTERHLiwgMi05LTEgRlVST1UtQ0hPLCBOQUtBCisJCQkJMjMxIAorCQkJCUpBUEFOCisKKzAwLUEwLTQ1ICAgKGhleCkJCVBIT0VOSVggQ09OVEFDVCBHTUJIICYgQ08uCiswMEEwNDUgICAgIChiYXNlIDE2KQkJUEhPRU5JWCBDT05UQUNUIEdNQkggJiBDTy4KKwkJCQlQT1NURkFDSCAxMzQxCisJCQkJRC0zMjgxOSBCTE9NQkVSRworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUEwLTQ2ICAgKGhleCkJCVNDSVRFWCBDT1JQLiBMVEQuCiswMEEwNDYgICAgIChiYXNlIDE2KQkJU0NJVEVYIENPUlAuIExURC4KKwkJCQlQLk8uQk9YIDMzMAorCQkJCUhFUlpMSUEgQiA0NjEwMworCQkJCUlTUkFFTAorCiswMC1BMC00NyAgIChoZXgpCQlJTlRFR1JBVEVEIEZJVE5FU1MgQ09SUC4KKzAwQTA0NyAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIEZJVE5FU1MgQ09SUC4KKwkJCQkyNiA2VEggU1RSRUVUCisJCQkJU1RBTUZPUkQgQ1QgMDY5MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTQ4ICAgKGhleCkJCVFVRVNURUNILCBMVEQuCiswMEEwNDggICAgIChiYXNlIDE2KQkJUVVFU1RFQ0gsIExURC4KKwkJCQlFQVNUSEVBVEggQVZFTlVFCisJCQkJV09LSU5HSEFNCisJCQkJQkVSS1MsIFJHMTEgMlBQICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC00OSAgIChoZXgpCQlESUdJVEVDSCBJTkRVU1RSSUVTLCBJTkMuCiswMEEwNDkgICAgIChiYXNlIDE2KQkJRElHSVRFQ0ggSU5EVVNUUklFUywgSU5DLgorCQkJCVBPIEJPWCAyMjY3CisJCQkJNTUgS0VOT1NJQSBBVkVOVUUKKwkJCQlEQU5CVVJZIENUIDA2ODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC00QSAgIChoZXgpCQlOSVNTSElOIEVMRUNUUklDIENPLiwgTFRELgorMDBBMDRBICAgICAoYmFzZSAxNikJCU5JU1NISU4gRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJNSwgTUVPVE9HT1NISSwgTVVUU1VTSEksCisJCQkJU0hJS0FUU1UtQ1lPLCBOSVNISUtBU1VHQUksCisJCQkJQUlDSEkgNDgxICAKKwkJCQlKQVBBTgorCiswMC1BMC00QiAgIChoZXgpCQlURkwgTEFOIElOQy4KKzAwQTA0QiAgICAgKGJhc2UgMTYpCQlURkwgTEFOIElOQy4KKwkJCQk5RiwgTk8uIDQ5OSBDSFVORyBDSEVORyBST0FECisJCQkJU0hJSC1MSU4gRElTVFJJQ1QsIFRBSVBFSQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1BMC00QyAgIChoZXgpCQlJTk5PVkFUSVZFIFNZU1RFTVMgJiBURUNITk9MT0dJRVMsIElOQy4KKzAwQTA0QyAgICAgKGJhc2UgMTYpCQlJTk5PVkFUSVZFIFNZU1RFTVMgJiBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk0ODUxMSBXQVJNIFNQUklOR1MgQkxWRC4KKwkJCQlTVUlURSAgIyAyMTFDCisJCQkJRlJFTU9OVCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNEQgICAoaGV4KQkJRURBIElOU1RSVU1FTlRTLCBJTkMuCiswMEEwNEQgICAgIChiYXNlIDE2KQkJRURBIElOU1RSVU1FTlRTLCBJTkMuCisJCQkJNCBUSE9STkNMSUZGRSBQQVJLIERSSVZFCisJCQkJVE9ST05UTywgT05UQVJJTworCQkJCU00SCAxSDEKKwkJCQlDQU5BREEKKworMDAtQTAtNEUgICAoaGV4KQkJVk9FTEtFUiBURUNITk9MT0dJRVMsIElOQy4KKzAwQTA0RSAgICAgKGJhc2UgMTYpCQlWT0VMS0VSIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTIyIE5FVyBCT1NUT04gQ09VUlQKKwkJCQlEQU5WSUxMRSBDQSA5NDUyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNEYgICAoaGV4KQkJQU1FUklURUMgQ09SUC4KKzAwQTA0RiAgICAgKGJhc2UgMTYpCQlBTUVSSVRFQyBDT1JQLgorCQkJCTc2MCBBUlJPVyBHUkFORCBDSVJDTEUKKwkJCQlDT1ZJTkEgQ0EgOTE3MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTUwICAgKGhleCkJCUNZUFJFU1MgU0VNSUNPTkRVQ1RPUgorMDBBMDUwICAgICAoYmFzZSAxNikJCUNZUFJFU1MgU0VNSUNPTkRVQ1RPUgorCQkJCTM5MDEgTk9SVEggRklSU1QgU1RSRUVUCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTUxICAgKGhleCkJCUFOR0lBIENPTU1VTklDQVRJT05TLiBJTkMuCiswMEEwNTEgICAgIChiYXNlIDE2KQkJQU5HSUEgQ09NTVVOSUNBVElPTlMuIElOQy4KKwkJCQk0NDEgRUFTVCBCQVkgQkxWRC4KKwkJCQlQUk9WTyBVVEFIIDg0NjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC01MiAgIChoZXgpCQlTVEFOSUxJVEUgRUxFQ1RST05JQ1MgUFRZLiBMVEQKKzAwQTA1MiAgICAgKGJhc2UgMTYpCQlTVEFOSUxJVEUgRUxFQ1RST05JQ1MgUFRZLiBMVEQKKwkJCQk0MjQsIExBTkUgQ09WRSBST0FECisJCQkJTk9SVEggUllERSBOU1cgMjExMyAgCisJCQkJQVVTVFJBTElBCisKKzAwLUEwLTUzICAgKGhleCkJCUNPTVBBQ1QgREVWSUNFUywgSU5DLgorMDBBMDUzICAgICAoYmFzZSAxNikJCUNPTVBBQ1QgREVWSUNFUywgSU5DLgorCQkJCTE2Nzk1IExBUksgQVZFTlVFCisJCQkJTE9TIEdBVE9TIENBIDk1MDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC01NCAgIChoZXgpCQlQUklWQVRFCiswMEEwNTQgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLUEwLTU1ICAgKGhleCkJCURhdGEgRGV2aWNlIENvcnBvcmF0aW9uCiswMEEwNTUgICAgIChiYXNlIDE2KQkJRGF0YSBEZXZpY2UgQ29ycG9yYXRpb24KKwkJCQkxMDUgV2lsYnVyIFBsYWNlCisJCQkJQm9oZW1pYSBOWSAxMTcxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNTYgICAoaGV4KQkJTUlDUk9QUk9TUworMDBBMDU2ICAgICAoYmFzZSAxNikJCU1JQ1JPUFJPU1MKKwkJCQkzMywgUlVFIEdBTlRPSVMKKwkJCQk1OTAwMCBMSUxMRSAgCisJCQkJRlJBTkNFCisKKzAwLUEwLTU3ICAgKGhleCkJCUxBTkNPTSBTeXN0ZW1zIEdtYkgKKzAwQTA1NyAgICAgKGJhc2UgMTYpCQlMQU5DT00gU3lzdGVtcyBHbWJICisJCQkJQWRlbmF1ZXIgU3RyLjIwIC9CMgorCQkJCUQtNTIwNzAgQUFDSEVOCisJCQkJV3Vyc2VsZW4gIDUyMTQ2CisJCQkJR0VSTUFOWQorCiswMC1BMC01OCAgIChoZXgpCQlHTE9SWSwgTFRELgorMDBBMDU4ICAgICAoYmFzZSAxNikJCUdMT1JZLCBMVEQuCisJCQkJMS0zLTEgU0hJTU9URU5PLCBISU1FSkkKKwkJCQlIWU9HTyBQUkVGLiA2NzAgIAorCQkJCUpBUEFOCisKKzAwLUEwLTU5ICAgKGhleCkJCUhBTUlMVE9OIEhBTExNQVJLCiswMEEwNTkgICAgIChiYXNlIDE2KQkJSEFNSUxUT04gSEFMTE1BUksKKwkJCQkyMTA1IExVTkRZIEFWRU5VRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC01QSAgIChoZXgpCQlLT0ZBWCBJTUFHRSBQUk9EVUNUUworMDBBMDVBICAgICAoYmFzZSAxNikJCUtPRkFYIElNQUdFIFBST0RVQ1RTCisJCQkJMyBKRU5ORVIgU1RSRUVUCisJCQkJSVJWSU5FIENBIDkyNzE4LTM4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTVCICAgKGhleCkJCU1BUlFVSVAsIElOQy4KKzAwQTA1QiAgICAgKGJhc2UgMTYpCQlNQVJRVUlQLCBJTkMuCisJCQkJMTI0NSBFLiBXQVNISU5HVE9OIEFWRS4KKwkJCQlNQURJU09OIFdJIDUzNzAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC01QyAgIChoZXgpCQlJTlZFTlRPUlkgQ09OVkVSU0lPTiwgSU5DLi8KKzAwQTA1QyAgICAgKGJhc2UgMTYpCQlJTlZFTlRPUlkgQ09OVkVSU0lPTiwgSU5DLi8KKwkJCQlORUtPVEVDSCBESVZJU0lPTgorCQkJCTEwMiBUSURFIE1JTEwgUk9BRCAtU1VJVEUgIyA2CisJCQkJSEFNUFRPTiBOSCAwMzg0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNUQgICAoaGV4KQkJQ1MgQ09NUFVURVIgU1lTVEVNRSBHbWJICiswMEEwNUQgICAgIChiYXNlIDE2KQkJQ1MgQ09NUFVURVIgU1lTVEVNRSBHbWJICisJCQkJSVNBUlNUUkFTU0UgMywKKwkJCQk4MjA2NSBCQUlFUkJSVU5OICAKKwkJCQlHRVJNQU5ZCisKKzAwLUEwLTVFICAgKGhleCkJCU1ZUklBRCBMT0dJQyBJTkMuCiswMEEwNUUgICAgIChiYXNlIDE2KQkJTVlSSUFEIExPR0lDIElOQy4KKwkJCQkxMTA5IFNQUklORyBTVFJFRVQKKwkJCQlTSUxWRVIgU1BSSU5HIE1EIDIwOTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC01RiAgIChoZXgpCQlCVEcgRWxlY3Ryb25pY3MgRGVzaWduIEJWCiswMEEwNUYgICAgIChiYXNlIDE2KQkJQlRHIEVsZWN0cm9uaWNzIERlc2lnbiBCVgorCQkJCVAuTy4gQm94IDE1NDMKKwkJCQkzMjYwCisJCQkJQkEgT3VkIEJlaWplcmxhbmQgIAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLUEwLTYwICAgKGhleCkJCUFDRVIgUEVSSVBIRVJBTFMsIElOQy4KKzAwQTA2MCAgICAgKGJhc2UgMTYpCQlBQ0VSIFBFUklQSEVSQUxTLCBJTkMuCisJCQkJOUYsIDEzNSBDSElBTiBLVU8gTi4gUkQuIFNFQyAyCisJCQkJVEFJUEVJLCAgMTA0NzkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUEwLTYxICAgKGhleCkJCVBVUklUQU4gQkVOTkVUVAorMDBBMDYxICAgICAoYmFzZSAxNikJCVBVUklUQU4gQkVOTkVUVAorCQkJCTIyMDAgRkFSQURBWSBBVkVOVUUKKwkJCQlDQVJMU0JBRCBDQSA5MjAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNjIgICAoaGV4KQkJQUVTIFBST0RBVEEKKzAwQTA2MiAgICAgKGJhc2UgMTYpCQlBRVMgUFJPREFUQQorCQkJCTI0OSBCQUxDQVRUQSBST0FECisJCQkJQkFMQ0FUVEEKKwkJCQlXRVNURVJOIEFVU1RSQUxJQSA2MDIxCisJCQkJQVVTVFJBTElBCisKKzAwLUEwLTYzICAgKGhleCkJCUpSTCBTWVNURU1TLCBJTkMuCiswMEEwNjMgICAgIChiYXNlIDE2KQkJSlJMIFNZU1RFTVMsIElOQy4KKwkJCQk4MzA1IEhXWSA3MSBXRVNUCisJCQkJQVVTVElOIFRYIDc4NzM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC02NCAgIChoZXgpCQlLVkIvQU5BTEVDVAorMDBBMDY0ICAgICAoYmFzZSAxNikJCUtWQi9BTkFMRUNUCisJCQkJOTQyMCBKRVJPTklNTyBST0FECisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC02NSAgIChoZXgpCQlTeW1hbnRlYyBDb3Jwb3JhdGlvbgorMDBBMDY1ICAgICAoYmFzZSAxNikJCVN5bWFudGVjIENvcnBvcmF0aW9uCisJCQkJMjAzMzAgU3RldmVucyBDcmVlayBCbHZkLgorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNjYgICAoaGV4KQkJSVNBIENPLiwgTFRELgorMDBBMDY2ICAgICAoYmFzZSAxNikJCUlTQSBDTy4sIExURC4KKwkJCQlTSElOSlVLVSBMQU1CREFYIEJMREcuIDVGLiwKKwkJCQkyLTQtMTIgT0tVQk8sIFNISU5KVUtVLUtVIFRPS1lPCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1BMC02NyAgIChoZXgpCQlORVRXT1JLIFNFUlZJQ0VTIEdST1VQCiswMEEwNjcgICAgIChiYXNlIDE2KQkJTkVUV09SSyBTRVJWSUNFUyBHUk9VUAorCQkJCTM0MjEgQ09NTUlTU0lPTiBDT1VSVC1TVEUgIzIwMgorCQkJCVdPT0RCUklER0UgVkEgMjIxOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTY4ICAgKGhleCkJCUJIUCBMSU1JVEVECiswMEEwNjggICAgIChiYXNlIDE2KQkJQkhQIExJTUlURUQKKwkJCQlHUE8gQk9YIDg2QQorCQkJCU1FTEJPVVJORSAzMDAxIFZJQ1RPUklBCisJCQkJQVVTVFJBTElBCisKKzAwLUEwLTY5ICAgKGhleCkJCVN5bW1ldHJpY29tLCBJbmMuCiswMEEwNjkgICAgIChiYXNlIDE2KQkJU3ltbWV0cmljb20sIEluYy4KKwkJCQkzNzUwIFdlc3R3aW5kIEJsdmQuCisJCQkJU2FudGEgUm9zYSBDQSA5NTQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNkEgICAoaGV4KQkJVmVyaWxpbmsgQ29ycG9yYXRpb24KKzAwQTA2QSAgICAgKGJhc2UgMTYpCQlWZXJpbGluayBDb3Jwb3JhdGlvbgorCQkJCTEyNyBKZXRwbGV4IENpcmNsZQorCQkJCU1hZGlzb24gQUwgMzU3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTZCICAgKGhleCkJCURNUyBET1JTQ0ggTUlLUk9TWVNURU0gR01CSAorMDBBMDZCICAgICAoYmFzZSAxNikJCURNUyBET1JTQ0ggTUlLUk9TWVNURU0gR01CSAorCQkJCUhPTE1MVUVDSyAxMy0xNQorCQkJCUQtMjQ5NzIgU1RFSU5CRVJRS0lSQ0hFCisJCQkJR0VSTUFOWQorCiswMC1BMC02QyAgIChoZXgpCQlTSElOREVOR0VOIEVMRUNUUklDIE1GRy4gQ08uLCBMVEQuCiswMEEwNkMgICAgIChiYXNlIDE2KQkJU0hJTkRFTkdFTiBFTEVDVFJJQyBNRkcuIENPLiwgTFRELgorCQkJCTEwLTEzLCBNSU5BTUktQ0hPLCBIQU5OT1UtQ0lUWQorCQkJCVNBSVRBTUEgMzU3ICAKKwkJCQlKT1JEQU4KKworMDAtQTAtNkQgICAoaGV4KQkJTUFOTkVTTUFOTiBUQUxMWSBDT1JQT1JBVElPTgorMDBBMDZEICAgICAoYmFzZSAxNikJCU1BTk5FU01BTk4gVEFMTFkgQ09SUE9SQVRJT04KKwkJCQlQLk8uIEJPWCA5NzAxOAorCQkJCUtFTlQgV0EgOTgwNjQtOTcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNkUgICAoaGV4KQkJQVVTVFJPTiwgSU5DLgorMDBBMDZFICAgICAoYmFzZSAxNikJCUFVU1RST04sIElOQy4KKwkJCQlQLk8uIEJPWCAxNDc2NgorCQkJCUFVU1RJTiBUWCA3ODc2MS00NzY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC02RiAgIChoZXgpCQlUSEUgQVBQQ09OIEdST1VQLCBJTkMuCiswMEEwNkYgICAgIChiYXNlIDE2KQkJVEhFIEFQUENPTiBHUk9VUCwgSU5DLgorCQkJCTIzIFJJQ0hNT05EIFNUUkVFVAorCQkJCVJPQ0hFU1RFUiBOWSAxNDYwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNzAgICAoaGV4KQkJQ09BU1RDT00KKzAwQTA3MCAgICAgKGJhc2UgMTYpCQlDT0FTVENPTQorCQkJCTExNTEgSEFSQk9SIEJBWSBQQVJLV0FZCisJCQkJQUxBTUVEQSBDQSA5NDUwMi02NTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC03MSAgIChoZXgpCQlWSURFTyBMT1RURVJZIFRFQ0hOT0xPR0lFUyxJTkMKKzAwQTA3MSAgICAgKGJhc2UgMTYpCQlWSURFTyBMT1RURVJZIFRFQ0hOT0xPR0lFUyxJTkMKKwkJCQkyMzExIFNPVVRIIDdUSCBBVkVOVUUKKwkJCQlCT1pFTUFOIE1UIDU5NzE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC03MiAgIChoZXgpCQlPVkFUSU9OIFNZU1RFTVMgTFRELgorMDBBMDcyICAgICAoYmFzZSAxNikJCU9WQVRJT04gU1lTVEVNUyBMVEQuCisJCQkJR1JFQVQgSEFTRUxFWSBUUkFELiBFU1QuCisJCQkJR1JFQVQgSEFTRUxFWSwgIE9YRk9SRFNISVJFIE9YOSA3UEYKKwkJCQlFTkdMQU5EIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLTczICAgKGhleCkJCUNPTTIxLCBJTkMuCiswMEEwNzMgICAgIChiYXNlIDE2KQkJQ09NMjEsIElOQy4KKwkJCQkyMTEzIExBTkRJTkdTIERSSVZFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNzQgICAoaGV4KQkJUEVSQ0VQVElPTiBURUNITk9MT0dZCiswMEEwNzQgICAgIChiYXNlIDE2KQkJUEVSQ0VQVElPTiBURUNITk9MT0dZCisJCQkJNDAgU0hBV01VVCBST0FECisJCQkJQ0FOVE9OIE1BIDAyMDIxLTE0MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTc1ICAgKGhleCkJCU1JQ1JPTiBURUNITk9MT0dZLCBJTkMuCiswMEEwNzUgICAgIChiYXNlIDE2KQkJTUlDUk9OIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk4MDAwIFMuIEZlZGVyYWwgV2F5CisJCQkJUC5PLiBCb3ggNgorCQkJCUJvaXNlIElEIDgzNzA3LTAwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTc2ICAgKGhleCkJCUNBUkRXQVJFIExBQiwgSU5DLgorMDBBMDc2ICAgICAoYmFzZSAxNikJCUNBUkRXQVJFIExBQiwgSU5DLgorCQkJCTI4NSBTT0JSQU5URSBXQVksIFNURS4KKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTc3ICAgKGhleCkJCUZVSklUU1UgTkVYSU9OLCBJTkMuCiswMEEwNzcgICAgIChiYXNlIDE2KQkJRlVKSVRTVSBORVhJT04sIElOQy4KKwkJCQkyODkgR1JFQVQgUk9BRAorCQkJCUFDVE9OIE1BIDAxNzIwLTQ3MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTc4ICAgKGhleCkJCU1hcmNvbmkgQ29tbXVuaWNhdGlvbnMKKzAwQTA3OCAgICAgKGJhc2UgMTYpCQlNYXJjb25pIENvbW11bmljYXRpb25zCisJCQkJMTAwMCBGb3JlIERyaXZlCisJCQkJV2FycmVuZGFsZSBQQSAxNTA4Ni03NTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC03OSAgIChoZXgpCQlBTFBTIEVMRUNUUklDIChVU0EpLCBJTkMuCiswMEEwNzkgICAgIChiYXNlIDE2KQkJQUxQUyBFTEVDVFJJQyAoVVNBKSwgSU5DLgorCQkJCTM1NTMgTk9SVEggMVNUIFNUUkVFVAorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC03QSAgIChoZXgpCQlBRFZBTkNFRCBQRVJJUEhFUkFMUyBURUNITk9MT0dJRVMsIElOQy4KKzAwQTA3QSAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBQRVJJUEhFUkFMUyBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkKKwkJCQlLT0pJTUEgQlVJTERJTkcsIDEwMzEgRlVKSVNBV0EKKwkJCQlGVUpJU0FXQS1TSEksIEtBTkFHQVdBLUtFTiAyNTEgIAorCQkJCUpBUEFOCisKKzAwLUEwLTdCICAgKGhleCkJCURBV04gQ09NUFVURVIgSU5DT1JQT1JBVElPTgorMDBBMDdCICAgICAoYmFzZSAxNikJCURBV04gQ09NUFVURVIgSU5DT1JQT1JBVElPTgorCQkJCTYgS0VYVUVZVUFOIFNPVVRIIFJPQUQKKwkJCQlaSE9ORyBHVUFOIENVTiBCRUlKSU5HIDEwMDA4MAorCQkJCUNISU5BCisKKzAwLUEwLTdDICAgKGhleCkJCVRPTllBTkcgTllMT04gQ08uLCBMVEQuCiswMEEwN0MgICAgIChiYXNlIDE2KQkJVE9OWUFORyBOWUxPTiBDTy4sIExURC4KKwkJCQlFTEVDVFJPTklDIFJFU0VBUkNIIExBQgorCQkJCTE4MywgSE9HRS1ET05HLCBET05HQU4tR1UKKwkJCQlBTllBTkctQ0lUWSwgS1lVTkdLSS1ETyA0MzAtMDgwICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtQTAtN0QgICAoaGV4KQkJU0VFUSBURUNITk9MT0dZLCBJTkMuCiswMEEwN0QgICAgIChiYXNlIDE2KQkJU0VFUSBURUNITk9MT0dZLCBJTkMuCisJCQkJNDcxMzEgQkFZU0lERSBQQVJLV0FZCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtN0UgICAoaGV4KQkJQVZJRCBURUNITk9MT0dZLCBJTkMuCiswMEEwN0UgICAgIChiYXNlIDE2KQkJQVZJRCBURUNITk9MT0dZLCBJTkMuCisJCQkJTUVUUk9QT0xJVEFOIFRFQ0hOT0xPR1kgUEFSSworCQkJCU9ORSBQQVJLIFdFU1QKKwkJCQlURVdLU0JVUlkgTUEgMDE4NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTdGICAgKGhleCkJCUdTTS1TWU5URUwsIExURC4KKzAwQTA3RiAgICAgKGJhc2UgMTYpCQlHU00tU1lOVEVMLCBMVEQuCisJCQkJVklDVE9SSUEgV09SS1MsIFFVRUVOUyBNSUxMIFJECisJCQkJSFVEREVSU0ZJRUxEIFdFU1QgWU9SS1NISVJFCisJCQkJSEQxIDNQRyBFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtODAgICAoaGV4KQkJU0JFLCBJbmMuCiswMEEwODAgICAgIChiYXNlIDE2KQkJU0JFLCBJbmMuCisJCQkJNDAwMCBFeGVjdXRpdmUgUGFya3dheQorCQkJCVN1aXRlIDIwMAorCQkJCVNhbiBSYW1vbiBDQSA5NDU4MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtODEgICAoaGV4KQkJQUxDQVRFTCBEQVRBIE5FVFdPUktTCiswMEEwODEgICAgIChiYXNlIDE2KQkJQUxDQVRFTCBEQVRBIE5FVFdPUktTCisJCQkJMTI1MDIgU1VOUklTRSBWQUxMRVkgRFJJVkUKKwkJCQlSRVNUT04gVkEgMjIwOTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTgyICAgKGhleCkJCU5LVCBFTEVLVFJPTklLIEEvUworMDBBMDgyICAgICAoYmFzZSAxNikJCU5LVCBFTEVLVFJPTklLIEEvUworCQkJCU5LVCBBTExFIDg1CisJCQkJREstMjYwNSBCUk9OREJZCisJCQkJREVOTUFSSworCiswMC1BMC04MyAgIChoZXgpCQlBU0lNTVBIT05ZIFRVUktFWQorMDBBMDgzICAgICAoYmFzZSAxNikJCUFTSU1NUEhPTlkgVFVSS0VZCisJCQkJRUxFQ1RST05JQ1MsIExURC4KKwkJCQkjMTYwLjI2MCAtIDY2NTEgRUxNQlJJREdFIFdBWSBSSUNITU9ORCBCCisJCQkJVjdDIDROMQorCQkJCUNBTkFEQQorCiswMC1BMC04NCAgIChoZXgpCQlEYXRhcGxleCBQdHkgTHRkCiswMEEwODQgICAgIChiYXNlIDE2KQkJRGF0YXBsZXggUHR5IEx0ZAorCQkJCUxldmVsIDIsIDcxIEVwcGluZyBSZCwKKwkJCQlOT1JUSCAgUllERSBOU1cgMjExMworCQkJCUFVU1RSQUxJQQorCiswMC1BMC04NSAgIChoZXgpCQlQUklWQVRFCiswMEEwODUgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLUEwLTg2ICAgKGhleCkJCUFNQkVSIFdBVkUgU1lTVEVNUywgSU5DLgorMDBBMDg2ICAgICAoYmFzZSAxNikJCUFNQkVSIFdBVkUgU1lTVEVNUywgSU5DLgorCQkJCTQwMyBNQVNTQUNIVVNFVFRTIEFWRU5VRQorCQkJCVNVSVRFICMyMDIKKwkJCQlBQ1RPTiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtODcgICAoaGV4KQkJWmFybGluayBTZW1pY29uZHVjdG9yIEx0ZC4KKzAwQTA4NyAgICAgKGJhc2UgMTYpCQlaYXJsaW5rIFNlbWljb25kdWN0b3IgTHRkLgorCQkJCUNoZW5leSBNYW5vciwgU3dpbmRvbgorCQkJCVdpbHRzaGlyZSBTTjIgMlFXICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC04OCAgIChoZXgpCQlFU1NFTlRJQUwgQ09NTVVOSUNBVElPTlMKKzAwQTA4OCAgICAgKGJhc2UgMTYpCQlFU1NFTlRJQUwgQ09NTVVOSUNBVElPTlMKKwkJCQk0Mzc0IEFMRVhBTkRFUiBCTFZELiBORS1TVEUKKwkJCQlBTEJVUVVFUlFVRSBOTSA4NzEwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtODkgICAoaGV4KQkJWFBPSU5UIFRFQ0hOT0xPR0lFUywgSU5DLgorMDBBMDg5ICAgICAoYmFzZSAxNikJCVhQT0lOVCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk5MDIgQ0xJTlQgTU9PUkUgUkQuLVNURSMxMzIKKwkJCQlCT0NBIFJBVE9OIEZMIDMzNDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC04QSAgIChoZXgpCQlCUk9PS1RST1VUIFRFQ0hOT0xPR1ksIElOQy4KKzAwQTA4QSAgICAgKGJhc2UgMTYpCQlCUk9PS1RST1VUIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkxNDQgR09VTEQgU1RSRUVULSBTVUlURSAjMjAwCisJCQkJTkVFREhBTSBNQSAwMjE5NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOEIgICAoaGV4KQkJQVNUT04gRUxFQ1RST05JQyBERVNJR05TIExURC4KKzAwQTA4QiAgICAgKGJhc2UgMTYpCQlBU1RPTiBFTEVDVFJPTklDIERFU0lHTlMgTFRELgorCQkJCTEyMy8xMjcgREVFUENVVCBCUklER0UgUk9BRAorCQkJCURFRVBDVVQsICBDQU1CRVJMRVkgU1VSUkVZLCBHVTE2IDZTRAorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC04QyAgIChoZXgpCQlNdWx0aU1lZGlhIExBTnMsIEluYy4KKzAwQTA4QyAgICAgKGJhc2UgMTYpCQlNdWx0aU1lZGlhIExBTnMsIEluYy4KKwkJCQk1NjAwIEVYRUNVVElWRSBDRU5URVIgRFJJVkUKKwkJCQlTVUlURSAjMzEyCisJCQkJQ0hBUkxPVFRFIE5DIDI4MjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC04RCAgIChoZXgpCQlKQUNPTU8gQ09SUE9SQVRJT04KKzAwQTA4RCAgICAgKGJhc2UgMTYpCQlKQUNPTU8gQ09SUE9SQVRJT04KKwkJCQkyNjkwMCBFLiBQSU5LIEhJTEwgUk9BRAorCQkJCUlOREVQRU5ERU5DRSBNTyA2NDA1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOEUgICAoaGV4KQkJQ2hlY2sgUG9pbnQgU29mdHdhcmUgVGVjaG5vbG9naWVzCiswMEEwOEUgICAgIChiYXNlIDE2KQkJQ2hlY2sgUG9pbnQgU29mdHdhcmUgVGVjaG5vbG9naWVzCisJCQkJODMzMyBSaWRnZXBvaW50IERyLgorCQkJCVN1aXRlIDE1MAorCQkJCUlydmluZyBUWCA3NTA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOEYgICAoaGV4KQkJREVTS05FVCBTWVNURU1TLCBJTkMuCiswMEEwOEYgICAgIChiYXNlIDE2KQkJREVTS05FVCBTWVNURU1TLCBJTkMuCisJCQkJODAgQlVTSU5FU1MgUEFSSyBEUklWRQorCQkJCUFSTU9OSyBOWSAxMDUwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOTAgICAoaGV4KQkJVGltZVN0ZXAgQ29ycG9yYXRpb24KKzAwQTA5MCAgICAgKGJhc2UgMTYpCQlUaW1lU3RlcCBDb3Jwb3JhdGlvbgorCQkJCTM1OSBURVJSWSBGT1ggRFJJVkUKKwkJCQlLQU5BVEEsIE9OVEFSSU8gSzJLIDJFNyAgCisJCQkJQ0FOQURBCisKKzAwLUEwLTkxICAgKGhleCkJCUFQUExJQ09NIElOVEVSTkFUSU9OQUwKKzAwQTA5MSAgICAgKGJhc2UgMTYpCQlBUFBMSUNPTSBJTlRFUk5BVElPTkFMCisJCQkJNDMsIFJVRSBNQVpBR1JBTgorCQkJCTc2MzIwIENBVURFQkVDLUxFUy1FTEJFVUYKKwkJCQlGUkFOQ0UKKworMDAtQTAtOTIgICAoaGV4KQkJSC4gQk9MTE1BTk4gTUFOVUZBQ1RVUkVSUywgTFRECiswMEEwOTIgICAgIChiYXNlIDE2KQkJSC4gQk9MTE1BTk4gTUFOVUZBQ1RVUkVSUywgTFRECisJCQkJMjYgVklDVE9SSUEgV0FZCisJCQkJQlVSR0VTUyBISUxMIFcuIFNVU1NFWCBSSCAxNSA5TkYKKwkJCQlFTkdMQU5EIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLTkzICAgKGhleCkJCUIvRSBBRVJPU1BBQ0UsIEluYy4KKzAwQTA5MyAgICAgKGJhc2UgMTYpCQlCL0UgQUVST1NQQUNFLCBJbmMuCisJCQkJMTc0ODEgUkVEIEhJTEwKKwkJCQlJUlZJTkUgQ0EgOTI3MTQtNTYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOTQgICAoaGV4KQkJQ09NU0FUIENPUlBPUkFUSU9OCiswMEEwOTQgICAgIChiYXNlIDE2KQkJQ09NU0FUIENPUlBPUkFUSU9OCisJCQkJMjIzMDAgQ09NU0FUIERSSVZFCisJCQkJQ0xBUktTQlVSRyBNRCAyMDg3MS05NDc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC05NSAgIChoZXgpCQlBQ0FDSUEgTkVUV09SS1MsIElOQy4KKzAwQTA5NSAgICAgKGJhc2UgMTYpCQlBQ0FDSUEgTkVUV09SS1MsIElOQy4KKwkJCQk4MzEgV09CVVJOIFNUUkVFVAorCQkJCVdJTE1JTkdUT04gTUEgMDE4ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTk2ICAgKGhleCkJCU1JVFVNSSBFTEVDVFJJQyBDTy4sIExURC4KKzAwQTA5NiAgICAgKGJhc2UgMTYpCQlNSVRVTUkgRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJOC04LTIsICBLT0tVUllPLUNITworCQkJCUNIT0ZVLVNISSBUT0tZTyAxODIgIAorCQkJCUpBUEFOCisKKzAwLUEwLTk3ICAgKGhleCkJCUpDIElORk9STUFUSU9OIFNZU1RFTVMKKzAwQTA5NyAgICAgKGJhc2UgMTYpCQlKQyBJTkZPUk1BVElPTiBTWVNURU1TCisJCQkJNDQ4NyBURUNITk9MT0dZIERSSVZFCisJCQkJRlJFTU9OVCBDQSA5NDUzOC02MzQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC05OCAgIChoZXgpCQlOZXRBcHAKKzAwQTA5OCAgICAgKGJhc2UgMTYpCQlOZXRBcHAKKwkJCQk0OTUgRWFzdCBKYXZhIERyaXZlCisJCQkJU3Vubnl2YWxlLCBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOTkgICAoaGV4KQkJSy1ORVQgTFRELgorMDBBMDk5ICAgICAoYmFzZSAxNikJCUstTkVUIExURC4KKwkJCQlTQURETEVSUyBIT1VTRQorCQkJCTEwMCBSRUFESU5HIFJELgorCQkJCVlBVEVMRVksIFNVUlJFWSBHVTE3IDdSWCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtOUEgICAoaGV4KQkJTklIT04gS09IREVOIEFNRVJJQ0EKKzAwQTA5QSAgICAgKGJhc2UgMTYpCQlOSUhPTiBLT0hERU4gQU1FUklDQQorCQkJCTI0NDYgRFVQT05UIERSSVZFCisJCQkJSVJWSU5FIENBIDkyNzE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC05QiAgIChoZXgpCQlRUFNYIENPTU1VTklDQVRJT05TLCBMVEQuCiswMEEwOUIgICAgIChiYXNlIDE2KQkJUVBTWCBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCTMzIFJJQ0hBUkRTT04gU1RSRUVUCisJCQkJV0VTVCBQRVJUSCA2MDA1CisJCQkJQVVTVFJBTElBCisKKzAwLUEwLTlDICAgKGhleCkJCVh5cGxleCwgSW5jLgorMDBBMDlDICAgICAoYmFzZSAxNikJCVh5cGxleCwgSW5jLgorCQkJCTI1IEZPU1RFUiBTVFJFRVQKKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTlEICAgKGhleCkJCUpPSE5BVEhPTiBGUkVFTUFOIFRFQ0hOT0xPR0lFUworMDBBMDlEICAgICAoYmFzZSAxNikJCUpPSE5BVEhPTiBGUkVFTUFOIFRFQ0hOT0xPR0lFUworCQkJCVAuTy4gQk9YIDg4MDExNAorCQkJCVNBTiBGUkFOQ0lTQ08gQ0EgOTQxODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTlFICAgKGhleCkJCUlDVFYKKzAwQTA5RSAgICAgKGJhc2UgMTYpCQlJQ1RWCisJCQkJMTQ2MDAgV0lOQ0hFU1RFUiBCTFZELgorCQkJCUxPUyBHQVRPUyBDQSA5NTAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOUYgICAoaGV4KQkJQ09NTVZJU0lPTiBDT1JQLgorMDBBMDlGICAgICAoYmFzZSAxNikJCUNPTU1WSVNJT04gQ09SUC4KKwkJCQk1MTAgTE9HVUUgQVZFLgorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUEwICAgKGhleCkJCUNPTVBBQ1QgREFUQSwgTFRELgorMDBBMEEwICAgICAoYmFzZSAxNikJCUNPTVBBQ1QgREFUQSwgTFRELgorCQkJCTU4IERJVFRPTiBXQUxLCisJCQkJQ0FNQlJJREdFIENCNSA4UUUgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLUExICAgKGhleCkJCUVQSUMgREFUQSBJTkMuCiswMEEwQTEgICAgIChiYXNlIDE2KQkJRVBJQyBEQVRBIElOQy4KKwkJCQk3MjgwIFJJVkVSIFJPQUQKKwkJCQlSSUNITU9ORCwgIEIuQy4KKwkJCQlDQU5BREEgVjZYIDFYNQorCQkJCUNBTkFEQQorCiswMC1BMC1BMiAgIChoZXgpCQlESUdJQ09NIFMuUC5BLgorMDBBMEEyICAgICAoYmFzZSAxNikJCURJR0lDT00gUy5QLkEuCisJCQkJVklBIFZPTFRBIDM5CisJCQkJMjEwMTAgQ0FSREFOTyBBTCBDQU1QTyAoVkEpCisJCQkJSVRBTFkKKworMDAtQTAtQTMgICAoaGV4KQkJUkVMSUFCTEUgUE9XRVIgTUVURVJTCiswMEEwQTMgICAgIChiYXNlIDE2KQkJUkVMSUFCTEUgUE9XRVIgTUVURVJTCisJCQkJNDAwIEJMT1NTT00gSElMTCBST0FECisJCQkJTE9TIEdBVE9TIENBIDk1MDMyLTQ1MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUE0ICAgKGhleCkJCU1JQ1JPUyBTWVNURU1TLCBJTkMuCiswMEEwQTQgICAgIChiYXNlIDE2KQkJTUlDUk9TIFNZU1RFTVMsIElOQy4KKwkJCQkxMjAwMCBCQUxUSU1PUkUgQVZFTlVFCisJCQkJQkVMVFNWSUxMRSBNRCAyMDcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQTUgICAoaGV4KQkJVEVLTk9SIE1JQ1JPU1lTVEVNRSwgSU5DLgorMDBBMEE1ICAgICAoYmFzZSAxNikJCVRFS05PUiBNSUNST1NZU1RFTUUsIElOQy4KKwkJCQk2MTYgQ1VSRSBCT0lWSU4KKwkJCQlCT0lTQlJJQU5EIFFVRUJFQworCQkJCUo3RyAyQTcKKwkJCQlDQU5BREEKKworMDAtQTAtQTYgICAoaGV4KQkJTS5JLiBTWVNURU1TLCBLLksuCiswMEEwQTYgICAgIChiYXNlIDE2KQkJTS5JLiBTWVNURU1TLCBLLksuCisJCQkJMi03LTEyLTMwOCBTYXRzdWtpZ2Fva2EKKwkJCQlJa2VkYS1TaGkgT3Nha2EgNTYzLTAwMjkKKwkJCQlKQVBBTgorCiswMC1BMC1BNyAgIChoZXgpCQlWT1JBWCBDT1JQT1JBVElPTgorMDBBMEE3ICAgICAoYmFzZSAxNikJCVZPUkFYIENPUlBPUkFUSU9OCisJCQkJMTAzMSBFQVNUIERVQU5FIEFWRU5VRSwgU1RFIEgKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUE4ICAgKGhleCkJCVJFTkVYIENPUlBPUkFUSU9OCiswMEEwQTggICAgIChiYXNlIDE2KQkJUkVORVggQ09SUE9SQVRJT04KKwkJCQkyNzUwIEtJTExBUk5FWSBEUklWRQorCQkJCVdPT0RCUklER0UgVkEgMjIxOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUE5ICAgKGhleCkJCU5BVlRFTCBDT01NVU5JQ0FUSU9OUyBJTkMuCiswMEEwQTkgICAgIChiYXNlIDE2KQkJTkFWVEVMIENPTU1VTklDQVRJT05TIElOQy4KKwkJCQk1NSBSRU5GUkVXIERSSVZFCisJCQkJTUFSS0hBTSwgT05UQVJJTyBMM1IgOEgzICAKKwkJCQlDQU5BREEKKworMDAtQTAtQUEgICAoaGV4KQkJU1BBQ0VMQUJTIE1FRElDQUwKKzAwQTBBQSAgICAgKGJhc2UgMTYpCQlTUEFDRUxBQlMgTUVESUNBTAorCQkJCTUxNTAgMjIwIEF2ZSBTRQorCQkJCUlzc2FxdWFoIFdBIDk4MDI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1BQiAgIChoZXgpCQlORVRDUyBJTkZPUk1BVElPTlNURUNITklLIEdNQkgKKzAwQTBBQiAgICAgKGJhc2UgMTYpCQlORVRDUyBJTkZPUk1BVElPTlNURUNITklLIEdNQkgKKwkJCQlLQVRIQVJJTkVOU1RSQVNTRSAxNy0xOAorCQkJCUQtMTA3MTEgQkVSTElOLAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUEwLUFDICAgKGhleCkJCUdJTEFUIFNBVEVMTElURSBORVRXT1JLUywgTFRELgorMDBBMEFDICAgICAoYmFzZSAxNikJCUdJTEFUIFNBVEVMTElURSBORVRXT1JLUywgTFRELgorCQkJCTI0QSBIQUJBUlpFTCBTVFJFRVQKKwkJCQlURUwgQVZJViAgNjk3MTAKKwkJCQlJU1JBRUwKKworMDAtQTAtQUQgICAoaGV4KQkJTUFSQ09OSSBTUEEKKzAwQTBBRCAgICAgKGJhc2UgMTYpCQlNQVJDT05JIFNQQQorCQkJCVZJQSBORUdST05FLCAxQQorCQkJCTE2MTUzIEdFTk9WQSBDT1JOSUdMSUFOTyAgCisJCQkJSVRBTFkKKworMDAtQTAtQUUgICAoaGV4KQkJTlVDT00gU1lTVEVNUywgSU5DLgorMDBBMEFFICAgICAoYmFzZSAxNikJCU5VQ09NIFNZU1RFTVMsIElOQy4KKwkJCQk5Ri02LCBOTyA0LCBMQU5FCisJCQkJNjA5IENIVU5HIEhTSU4gUk9BRCwgU0VDLiA1LCBTQU4gQ0hVTkcgQworCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1BMC1BRiAgIChoZXgpCQlXTVMgSU5EVVNUUklFUworMDBBMEFGICAgICAoYmFzZSAxNikJCVdNUyBJTkRVU1RSSUVTCisJCQkJMzQwMSBOLiBDQUxJRk9STklBCisJCQkJQ0hJQ0FHTyBJTCA2MDYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQjAgICAoaGV4KQkJSS1PIERBVEEgREVWSUNFLCBJTkMuCiswMEEwQjAgICAgIChiYXNlIDE2KQkJSS1PIERBVEEgREVWSUNFLCBJTkMuCisJCQkJMjQtMSwgU0FLVVJBREEtTUFDSEkKKwkJCQlLQU5BWkFXQSwgSVNISUtBV0EgOTIwICAKKwkJCQlKQVBBTgorCiswMC1BMC1CMSAgIChoZXgpCQlGSVJTVCBWSVJUVUFMIENPUlBPUkFUSU9OCiswMEEwQjEgICAgIChiYXNlIDE2KQkJRklSU1QgVklSVFVBTCBDT1JQT1JBVElPTgorCQkJCTMzOTMgT0NUQVZJVVMgRFIuLVNURS4jIDEwMgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CMiAgIChoZXgpCQlTSElNQSBTRUlLSQorMDBBMEIyICAgICAoYmFzZSAxNikJCVNISU1BIFNFSUtJCisJCQkJODUsIFNBS0FUQSBXQUtBWUFNQS1DSVRZCisJCQkJV0FLQVlBTUEgNjQxCisJCQkJSkFQQU4KKworMDAtQTAtQjMgICAoaGV4KQkJWllLUk9OSVgKKzAwQTBCMyAgICAgKGJhc2UgMTYpCQlaWUtST05JWAorCQkJCTcyNDggU09VVEggVFVDU09OIFdBWQorCQkJCUVOR0xFV09PRCBDTyA4MDExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQjQgICAoaGV4KQkJVEVYQVMgTUlDUk9TWVNURU1TLCBJTkMuCiswMEEwQjQgICAgIChiYXNlIDE2KQkJVEVYQVMgTUlDUk9TWVNURU1TLCBJTkMuCisJCQkJNTk1OSBDT1JQT1JBVEUgRFJJVkUKKwkJCQlIT1VTVE9OIFRYIDc3MDM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CNSAgIChoZXgpCQkzSCBURUNITk9MT0dZCiswMEEwQjUgICAgIChiYXNlIDE2KQkJM0ggVEVDSE5PTE9HWQorCQkJCTMzNzUgU0NPVFQgQkxWRC4gIzMzNgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CNiAgIChoZXgpCQlTQU5SSVRaIEFVVE9NQVRJT04gQ08uLCBMVEQuCiswMEEwQjYgICAgIChiYXNlIDE2KQkJU0FOUklUWiBBVVRPTUFUSU9OIENPLiwgTFRELgorCQkJCTQtMjEgTUlOQU1JIE5BUlVTRQorCQkJCU1BQ0hJREEgQ0lUWSBUT0tZTyAgMTk0CisJCQkJSkFQQU4KKworMDAtQTAtQjcgICAoaGV4KQkJQ09SREFOVCwgSU5DLgorMDBBMEI3ICAgICAoYmFzZSAxNikJCUNPUkRBTlQsIElOQy4KKwkJCQkxMTQwMCBDT01NRVJDRSBQQVJLIERSLgorCQkJCVJFU1RPTiBWQSAyMjA5MS0xNTA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1COCAgIChoZXgpCQlTWU1CSU9TIExPR0lDIElOQy4KKzAwQTBCOCAgICAgKGJhc2UgMTYpCQlTWU1CSU9TIExPR0lDIElOQy4KKwkJCQkyMDAxIERhbmZpZWxkIEN0LgorCQkJCUZvcnQgQ29sbGlucyBDTyA4MDUyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQjkgICAoaGV4KQkJRUFHTEUgVEVDSE5PTE9HWSwgSU5DLgorMDBBMEI5ICAgICAoYmFzZSAxNikJCUVBR0xFIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk2ODAwIE9SQU5HRVRIT1JQRSBBVkUuLCBVTklUIEEKKwkJCQlCVUVOQSBQQVJLIENBIDkwNjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CQSAgIChoZXgpCQlQQVRUT04gRUxFQ1RST05JQ1MgQ08uCiswMEEwQkEgICAgIChiYXNlIDE2KQkJUEFUVE9OIEVMRUNUUk9OSUNTIENPLgorCQkJCTc2MjIgUklDS0VOQkFDS0VSIERSSVZFCisJCQkJR0FJVEhFUlNCVVJHIE1EIDIwODc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CQiAgIChoZXgpCQlISUxBTiBHTUJICiswMEEwQkIgICAgIChiYXNlIDE2KQkJSElMQU4gR01CSAorCQkJCUhBSUQtVU5ELU5FVS1TVFJBU1NFIDcKKwkJCQlELTc2MTMxIEtBUkxTUlVIRQorCQkJCUdFUk1BTlkKKworMDAtQTAtQkMgICAoaGV4KQkJVklBU0FULCBJTkNPUlBPUkFURUQKKzAwQTBCQyAgICAgKGJhc2UgMTYpCQlWSUFTQVQsIElOQ09SUE9SQVRFRAorCQkJCTYxNTUgRWwgQ2FtaW5vIFJlYWwKKwkJCQlDYXJsc2JhZCBDYSA5MjAwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQkQgICAoaGV4KQkJSS1URUNIIENPUlAuCiswMEEwQkQgICAgIChiYXNlIDE2KQkJSS1URUNIIENPUlAuCisJCQkJMTAyMDAgVkFMTEVZIFZJRVcgUk9BRAorCQkJCUVERU4gUFJBSVJJRSBNTiA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQkUgICAoaGV4KQkJSU5URUdSQVRFRCBDSVJDVUlUIFNZU1RFTVMsIElOQy4gQ09NTVVOSUNBVElPTlMgR1JPVVAKKzAwQTBCRSAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIENJUkNVSVQgU1lTVEVNUywgSU5DLiBDT01NVU5JQ0FUSU9OUyBHUk9VUAorCQkJCTEyNzEgUEFSS01PT1IgQVZFTlVFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjYtMzQ0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQkYgICAoaGV4KQkJV0lSRUxFU1MgREFUQSBHUk9VUCBNT1RPUk9MQQorMDBBMEJGICAgICAoYmFzZSAxNikJCVdJUkVMRVNTIERBVEEgR1JPVVAgTU9UT1JPTEEKKwkJCQkxMjAxIEUuIFdJTEVZIFJPQUQKKwkJCQlTQ0hBVU1CVVJHIElMIDYwMTczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1DMCAgIChoZXgpCQlESUdJVEFMIExJTksgQ09SUC4KKzAwQTBDMCAgICAgKGJhc2UgMTYpCQlESUdJVEFMIExJTksgQ09SUC4KKwkJCQkyMTcgSFVNQk9MRFQgQ09VUlQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUMxICAgKGhleCkJCU9SVElWVVMgTUVESUNBTCBBQgorMDBBMEMxICAgICAoYmFzZSAxNikJCU9SVElWVVMgTUVESUNBTCBBQgorCQkJCUJPWCA1MTMKKwkJCQlTLTE4MzI1IFRBQlkKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtQTAtQzIgICAoaGV4KQkJUi5BLiBTWVNURU1TIENPLiwgTFRELgorMDBBMEMyICAgICAoYmFzZSAxNikJCVIuQS4gU1lTVEVNUyBDTy4sIExURC4KKwkJCQkxODUwLTMgSElST09LQU5PTVVSQQorCQkJCVNISU9KSVJJLVNISSwgTkFHQU1PIDM5OS0wNworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQTAtQzMgICAoaGV4KQkJVU5JQ09NUFVURVIgR01CSAorMDBBMEMzICAgICAoYmFzZSAxNikJCVVOSUNPTVBVVEVSIEdNQkgKKwkJCQlMSU1CVVJHRVIgU1RSQVNTRSA0OAorCQkJCUQtNjE0NzYgS1JPTkJFUkcgSS5ULlMuCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQTAtQzQgICAoaGV4KQkJQ1JJU1RJRSBFTEVDVFJPTklDUyBMVEQuCiswMEEwQzQgICAgIChiYXNlIDE2KQkJQ1JJU1RJRSBFTEVDVFJPTklDUyBMVEQuCisJCQkJQk9ORCdTIE1JTEwKKwkJCQlTVE9ORUhPVVNFCisJCQkJR0xPVUNFU1RFUlNISVJFIEdMMTAgM1JHICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC1DNSAgIChoZXgpCQlaWVhFTCBDT01NVU5JQ0FUSU9OCiswMEEwQzUgICAgIChiYXNlIDE2KQkJWllYRUwgQ09NTVVOSUNBVElPTgorCQkJCTJORCBGTFIuLCAgNTggUEFSSyBBVkVOVUUgSUkKKwkJCQlTQ0lFTkNFIEJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU5DSFUgMzAwNzcgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQTAtQzYgICAoaGV4KQkJUVVBTENPTU0gSU5DT1JQT1JBVEVECiswMEEwQzYgICAgIChiYXNlIDE2KQkJUVVBTENPTU0gSU5DT1JQT1JBVEVECisJCQkJIDU3NzUgTW9yZWhvdXNlIERyCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1DNyAgIChoZXgpCQlUQURJUkFOIFRFTEVDT01NVU5JQ0FUSU9OUworMDBBMEM3ICAgICAoYmFzZSAxNikJCVRBRElSQU4gVEVMRUNPTU1VTklDQVRJT05TCisJCQkJUC5PLiBCT1ggNTAwCisJCQkJUEVUQUgtVElLVkEgNDkxMDQgIAorCQkJCUlTUkFFTAorCiswMC1BMC1DOCAgIChoZXgpCQlBRFRSQU4gSU5DLgorMDBBMEM4ICAgICAoYmFzZSAxNikJCUFEVFJBTiBJTkMuCisJCQkJOTAxIEVYUExPUkVSIEJMVkQuCisJCQkJSFVOVFNWSUxMRSBBTCAzNTgwNi0yODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1DOSAgIChoZXgpCQlJTlRFTCBDT1JQT1JBVElPTiAtIEhGMS0wNgorMDBBMEM5ICAgICAoYmFzZSAxNikJCUlOVEVMIENPUlBPUkFUSU9OIC0gSEYxLTA2CisJCQkJNTIwMCBORSBFTEFNIFlPVU5HIFBBUktXQVkKKwkJCQlISUxMU0JPUk8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUNBICAgKGhleCkJCUZVSklUU1UgREVOU08gTFRELgorMDBBMENBICAgICAoYmFzZSAxNikJCUZVSklUU1UgREVOU08gTFRELgorCQkJCTMwNTUgT1JDSEFSRCBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1DQiAgIChoZXgpCQlBUksgVEVMRUNPTU1VTklDQVRJT05TLCBJTkMuCiswMEEwQ0IgICAgIChiYXNlIDE2KQkJQVJLIFRFTEVDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTEyNCBDQVJNRU4gTEFORS0tU1VJVEUKKwkJCQlTQU5UQSBNQVJJQSBDQSA5MzQ1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQ0MgICAoaGV4KQkJTElURS1PTiBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBBMENDICAgICAoYmFzZSAxNikJCUxJVEUtT04gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk3MjAgUy4gSElMTFZJRVcgRFJJVkUKKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQ0QgICAoaGV4KQkJRFIuIEpPSEFOTkVTIEhFSURFTkhBSU4gR21iSAorMDBBMENEICAgICAoYmFzZSAxNikJCURSLiBKT0hBTk5FUyBIRUlERU5IQUlOIEdtYkgKKwkJCQlEUi4tSk9IQU5ORVMtSEVJREVOSEFJTiBTVFIuCisJCQkJODMzMDEgVFJBVU5SRVVUICAKKwkJCQlHRVJNQU5ZCisKKzAwLUEwLUNFICAgKGhleCkJCUVjZXNzYQorMDBBMENFICAgICAoYmFzZSAxNikJCUVjZXNzYQorCQkJCTI4MDAgQ2FtcHVzIERyaXZlIAorCQkJCVN1aXRlIDE0MAorCQkJCVBseW1vdXRoIE1OIDU1NDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1DRiAgIChoZXgpCQlTT1RBUywgSU5DLgorMDBBMENGICAgICAoYmFzZSAxNikJCVNPVEFTLCBJTkMuCisJCQkJMiBSRVNFQVJDSCBQTEFDRSwgU1RFLgorCQkJCVJPQ0tWSUxMRSBNRCAyMDg1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRDAgICAoaGV4KQkJVEVOIFggVEVDSE5PTE9HWSwgSU5DLgorMDBBMEQwICAgICAoYmFzZSAxNikJCVRFTiBYIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkxMzA5MSBQT05EIFNQUklOR1MgUk9BRCwgU3VpdGUgQi0yMDAKKwkJCQlBVVNUSU4gVFggNzg3MjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUQxICAgKGhleCkJCUlOVkVOVEVDIENPUlBPUkFUSU9OCiswMEEwRDEgICAgIChiYXNlIDE2KQkJSU5WRU5URUMgQ09SUE9SQVRJT04KKwkJCQlJTlZFTlRFQyBCVUlMRElORworCQkJCTY2IEhPVS1LQU5HIFNUUkVFVCBTSEktTElOIERJU1RSSUNULCBUQUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQTAtRDIgICAoaGV4KQkJQUxMSUVEIFRFTEVTSVMgSU5URVJOQVRJT05BTCBDT1JQT1JBVElPTgorMDBBMEQyICAgICAoYmFzZSAxNikJCUFMTElFRCBURUxFU0lTIElOVEVSTkFUSU9OQUwgQ09SUE9SQVRJT04KKwkJCQk5NTAgS0lGRVIgUk9BRAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRDMgICAoaGV4KQkJSU5TVEVNIENPTVBVVEVSIFNZU1RFTVMsIExURC4KKzAwQTBEMyAgICAgKGJhc2UgMTYpCQlJTlNURU0gQ09NUFVURVIgU1lTVEVNUywgTFRELgorCQkJCVdBTFRPTiBJTkRVU1RSSUFMIEVTVEFURQorCQkJCVNUT05FLCBTVEFGRk9SRFNISVJFIFNUMTUgT0xUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtRDQgICAoaGV4KQkJUkFESU9MQU4sICBJTkMuCiswMEEwRDQgICAgIChiYXNlIDE2KQkJUkFESU9MQU4sICBJTkMuCisJCQkJNDU0IERFR1VJR05FIERSSVZFIC0gU1RFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1ENSAgIChoZXgpCQlTSUVSUkEgV0lSRUxFU1MgSU5DLgorMDBBMEQ1ICAgICAoYmFzZSAxNikJCVNJRVJSQSBXSVJFTEVTUyBJTkMuCisJCQkJMTM4MTEgV2lyZWxlc3MgV2F5CisJCQkJUklDSE1PTkQgQi5DLiBWNlYgM0E0CisJCQkJQ0FOQURBCisKKzAwLUEwLUQ2ICAgKGhleCkJCVNCRSwgSU5DLgorMDBBMEQ2ICAgICAoYmFzZSAxNikJCVNCRSwgSU5DLgorCQkJCTIzMDUgQ2FtaW5vIFJhbW9uCisJCQkJU0FOIFJBTU9OIENBIDk0NTgzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1ENyAgIChoZXgpCQlLQVNURU4gQ0hBU0UgQVBQTElFRCBSRVNFQVJDSAorMDBBMEQ3ICAgICAoYmFzZSAxNikJCUtBU1RFTiBDSEFTRSBBUFBMSUVEIFJFU0VBUkNICisJCQkJNTEwMCBPUkJJVE9SIERSSVZFCisJCQkJTUlTU0lTU0FVR0EsIE9OVEFSSU8KKwkJCQlMNFcgNFo0CisJCQkJQ0FOQURBCisKKzAwLUEwLUQ4ICAgKGhleCkJCVNQRUNUUkEgLSBURUsKKzAwQTBEOCAgICAgKGJhc2UgMTYpCQlTUEVDVFJBIC0gVEVLCisJCQkJT1VUR0FORyBMQU5FCisJCQkJUElDS0VSSU5HIE5PUlRIIFlPUktTSElSRQorCQkJCUVOR0xBTkQgWTAxOCBGSkEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC1EOSAgIChoZXgpCQlDT05WRVggQ09NUFVURVIgQ09SUE9SQVRJT04KKzAwQTBEOSAgICAgKGJhc2UgMTYpCQlDT05WRVggQ09NUFVURVIgQ09SUE9SQVRJT04KKwkJCQkzMDAwIFdBVEVSVklFVyBQQVJLV0FZCisJCQkJUC5PLiBCT1ggODMzODUxCisJCQkJUklDSEFSRFNPTiBUWCA3NTA4My0zODUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1EQSAgIChoZXgpCQlJTlRFR1JBVEVEIFNZU1RFTVMgVGVjaG5vbG9neSwgSW5jLgorMDBBMERBICAgICAoYmFzZSAxNikJCUlOVEVHUkFURUQgU1lTVEVNUyBUZWNobm9sb2d5LCBJbmMuCisJCQkJNDYwMSBQUkVTSURFTlRTIERSSVZFCisJCQkJU1VJVEUgIzIxMAorCQkJCUxBTkhBTSBNRCAyMDcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtREIgICAoaGV4KQkJRklTSEVSICYgUEFZS0VMIFBST0RVQ1RJT04KKzAwQTBEQiAgICAgKGJhc2UgMTYpCQlGSVNIRVIgJiBQQVlLRUwgUFJPRFVDVElPTgorCQkJCU1BQ0hJTkVSWSBMSU1JVEVECisJCQkJUC5PLiBCT1ggNTgtMjIzLCBHUkVFTk1PVU5UIEFVQ0tMQU5ECisJCQkJTkVXIFpFQUxBTkQKKworMDAtQTAtREMgICAoaGV4KQkJTy5OLiBFTEVDVFJPTklDIENPLiwgTFRELgorMDBBMERDICAgICAoYmFzZSAxNikJCU8uTi4gRUxFQ1RST05JQyBDTy4sIExURC4KKwkJCQkzLTIwLTI3LCBUQVJVTUkKKwkJCQlTVUlUQSwgT1NBS0EgNTY0ICAKKwkJCQlKQVBBTgorCiswMC1BMC1ERCAgIChoZXgpCQlBWk9OSVggQ09SUE9SQVRJT04KKzAwQTBERCAgICAgKGJhc2UgMTYpCQlBWk9OSVggQ09SUE9SQVRJT04KKwkJCQk5MDAgTUlERExFU0VYIFRVUk5QSUtFCisJCQkJQkxERy4KKwkJCQlCSUxMRVJJQ0EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLURFICAgKGhleCkJCVlBTUFIQSBDT1JQT1JBVElPTgorMDBBMERFICAgICAoYmFzZSAxNikJCVlBTUFIQSBDT1JQT1JBVElPTgorCQkJCUVMRUNUUk9OSUMgREVWSUNFUyBESVZJU0lPTgorCQkJCTIwMyBNQVRTVU5PS0lKSU1BIFRPWU9PS0EtTVVSQSBJV0FUQS1HVU4KKwkJCQk0MzgtMDEKKwkJCQlKQVBBTgorCiswMC1BMC1ERiAgIChoZXgpCQlTVFMgVEVDSE5PTE9HSUVTLCBJTkMuCiswMEEwREYgICAgIChiYXNlIDE2KQkJU1RTIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTEzNzY1IFNULiBDSEFSTEVTIFJPQ0sgUkQuCisJCQkJU1VJVEUgIzEwOAorCQkJCUJSSURHRVRPTiBNTyA2MzA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRTAgICAoaGV4KQkJVEVOTllTT04gVEVDSE5PTE9HSUVTIFBUWSBMVEQKKzAwQTBFMCAgICAgKGJhc2UgMTYpCQlURU5OWVNPTiBURUNITk9MT0dJRVMgUFRZIExURAorCQkJCTE0IEJVU0lORVNTIFBBUksgRFJJVkUKKwkJCQlOT1RUSU5HIEhJTEwKKwkJCQlWSUNUT1JJQSAtIDMxNjggIAorCQkJCUFVU1RSQUxJQQorCiswMC1BMC1FMSAgIChoZXgpCQlXRVNUUE9SVCBSRVNFQVJDSCBBU1NPQ0lBVEVTLCBJTkMuCiswMEEwRTEgICAgIChiYXNlIDE2KQkJV0VTVFBPUlQgUkVTRUFSQ0ggQVNTT0NJQVRFUywgSU5DLgorCQkJCTYxMDIgQVJMSU5HVE9OCisJCQkJUkFZVE9XTiBNTyA2NDEzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRTIgICAoaGV4KQkJS2Vpc29rdWdpa2VuIENvcnBvcmF0aW9uCiswMEEwRTIgICAgIChiYXNlIDE2KQkJS2Vpc29rdWdpa2VuIENvcnBvcmF0aW9uCisJCQkJMjAyMS01IEhvdXNoYWt1amkKKwkJCQlUYWthbmV6YXdhLW1hY2hpCisJCQkJU2hpb3lhLWd1biBUb2NoaWdpIDMyOS0xMjMzCisJCQkJSkFQQU4KKworMDAtQTAtRTMgICAoaGV4KQkJWEtMIFNZU1RFTVMgQ09SUC4KKzAwQTBFMyAgICAgKGJhc2UgMTYpCQlYS0wgU1lTVEVNUyBDT1JQLgorCQkJCTg0MjAgMTU0VEggQVZFLiBORQorCQkJCVJFRE1PTkQgV0EgOTgwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUU0ICAgKGhleCkJCU9QVElRVUVTVAorMDBBMEU0ICAgICAoYmFzZSAxNikJCU9QVElRVUVTVAorCQkJCTIwNDkwIEJVU0lORVNTIFBBUktXQVkKKwkJCQlXQUxOVVQgQ0EgOTE3ODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUU1ICAgKGhleCkJCU5IQyBDT01NVU5JQ0FUSU9OUworMDBBMEU1ICAgICAoYmFzZSAxNikJCU5IQyBDT01NVU5JQ0FUSU9OUworCQkJCTU0NTAgQ09URSBERSBMSUVTU0UKKwkJCQlNT05UUkVBTCwgUVVFQkVDIEg0UCAxQTUKKwkJCQlDQU5BREEKKworMDAtQTAtRTYgICAoaGV4KQkJRElBTE9HSUMgQ09SUE9SQVRJT04KKzAwQTBFNiAgICAgKGJhc2UgMTYpCQlESUFMT0dJQyBDT1JQT1JBVElPTgorCQkJCTE1MTUgUk9VVEUgMTAKKwkJCQlQQVJTSVBQQU5ZIE5KIDA3MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1FNyAgIChoZXgpCQlDRU5UUkFMIERBVEEgQ09SUE9SQVRJT04KKzAwQTBFNyAgICAgKGJhc2UgMTYpCQlDRU5UUkFMIERBVEEgQ09SUE9SQVRJT04KKwkJCQkxNjAyIE5FV1RPTiBEUklWRQorCQkJCUNIQU1QQUlHTiBJTCA2MTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRTggICAoaGV4KQkJUkVVVEVSUyBIT0xESU5HUyBQTEMKKzAwQTBFOCAgICAgKGJhc2UgMTYpCQlSRVVURVJTIEhPTERJTkdTIFBMQworCQkJCTg1LCBGTEVFVCBTVFJFRVQKKwkJCQlMT05ET04gIEVDNFAgNEFKCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLUU5ICAgKGhleCkJCUVMRUNUUk9OSUMgUkVUQUlMSU5HIFNZU1RFTVMgSU5URVJOQVRJT05BTAorMDBBMEU5ICAgICAoYmFzZSAxNikJCUVMRUNUUk9OSUMgUkVUQUlMSU5HIFNZU1RFTVMgSU5URVJOQVRJT05BTAorCQkJCTM3MiBEQU5CVVJZIFJPQUQKKwkJCQlXSUxUT04gQ1QgMDY4OTctMjUyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRUEgICAoaGV4KQkJRVRIRVJDT00gQ09SUC4KKzAwQTBFQSAgICAgKGJhc2UgMTYpCQlFVEhFUkNPTSBDT1JQLgorCQkJCTQ1OTkwIEhPVENIS0lTUyBTVC4KKwkJCQlGUkVFTU9OVCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRUIgICAoaGV4KQkJRW5jb3JlIE5ldHdvcmtzLCBJbmMuCiswMEEwRUIgICAgIChiYXNlIDE2KQkJRW5jb3JlIE5ldHdvcmtzLCBJbmMuCisJCQkJMzgwMCBDb25jb3JkZSBQYXJrd2F5LAorCQkJCVN1aXRlIDE1MDAKKwkJCQlDaGFudGlsbHksIFZBIDIwMTUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1FQyAgIChoZXgpCQlUUkFOU01JVFRPTiBMVEQuCiswMEEwRUMgICAgIChiYXNlIDE2KQkJVFJBTlNNSVRUT04gTFRELgorCQkJCVNNSVNCWSBST0FECisJCQkJQVNIQlkgREUgTEEgWk9VQ0gKKwkJCQlMRUlDRVNURVJTSElSRSBMRTY1IDJVRyAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtRUQgICAoaGV4KQkJQnJvb2tzIEF1dG9tYXRpb24sIEluYy4KKzAwQTBFRCAgICAgKGJhc2UgMTYpCQlCcm9va3MgQXV0b21hdGlvbiwgSW5jLgorCQkJCTE1IEVsaXphYmV0aCBEcml2ZQorCQkJCUNoZWxtc2ZvcmQgTUEgMDE4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUVFICAgKGhleCkJCU5BU0hPQkEgTkVUV09SS1MKKzAwQTBFRSAgICAgKGJhc2UgMTYpCQlOQVNIT0JBIE5FVFdPUktTCisJCQkJOS0xMSBHT0xEU01JVEggU1QuCisJCQkJTElUVExFVE9OIE1BIDAxNDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1FRiAgIChoZXgpCQlMVUNJREFUQSBMVEQuCiswMEEwRUYgICAgIChiYXNlIDE2KQkJTFVDSURBVEEgTFRELgorCQkJCUxVQ0lEQVRBIEhPVVNFCisJCQkJU0VMV1lOIENMT1NFLAorCQkJCUdSRUFUIFNIRUxGT1JEIENBTUJSSURHRSAgQ0IyIDVIQSAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC1GMCAgIChoZXgpCQlUT1JPTlRPIE1JQ1JPRUxFQ1RST05JQ1MgSU5DLgorMDBBMEYwICAgICAoYmFzZSAxNikJCVRPUk9OVE8gTUlDUk9FTEVDVFJPTklDUyBJTkMuCisJCQkJNTE0OSBCUkFEQ08gQk9VTEVWQVJECisJCQkJTUlTU0lTU0FVR0EsIE9OVEFSSU8KKwkJCQlMNFcgMkE2CisJCQkJQ0FOQURBCisKKzAwLUEwLUYxICAgKGhleCkJCU1USQorMDBBMEYxICAgICAoYmFzZSAxNikJCU1USQorCQkJCTQ5MDUgRS4gTEEgUEFMTUEgQVZFTlVFCisJCQkJQU5BSEVJTSBDQSA5MjgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRjIgICAoaGV4KQkJSU5GT1RFSyBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBBMEYyICAgICAoYmFzZSAxNikJCUlORk9URUsgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxMTEgQU5aQSBCTFZELiwgIzIwMworCQkJCUJVUkxJTkdBTUUgQ0EgOTQwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUYzICAgKGhleCkJCVNUQVVCTEkKKzAwQTBGMyAgICAgKGJhc2UgMTYpCQlTVEFVQkxJCisJCQkJMTgzIFJVRSBERVMgVVNJTkVTCisJCQkJQlAgNzAgRjc0MjEwIEZBVkVSR0VTCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLUEwLUY0ICAgKGhleCkJCUdFCiswMEEwRjQgICAgIChiYXNlIDE2KQkJR0UKKwkJCQlXLTY1NworCQkJCTMwMDAgTi4gR1JBTkRWSUVXIEJMVkQuCisJCQkJV0FVS0VTSEEgV0kgNTMxODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUY1ICAgKGhleCkJCVJBREdVQVJEIExURC4KKzAwQTBGNSAgICAgKGJhc2UgMTYpCQlSQURHVUFSRCBMVEQuCisJCQkJOCBIQU5FQ0hPU0hFVCBTVFJFRVQKKwkJCQlURUwtQVZJViAgNjk3MTAgIAorCQkJCUlTUkFFTAorCiswMC1BMC1GNiAgIChoZXgpCQlBdXRvR2FzIFN5c3RlbXMgSW5jLgorMDBBMEY2ICAgICAoYmFzZSAxNikJCUF1dG9HYXMgU3lzdGVtcyBJbmMuCisJCQkJUC5PLiBCT1ggNjk1NworCQkJCUFCSU9MRU5FIFRYIDc5NjA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1GNyAgIChoZXgpCQlWLkkgQ09NUFVURVIgQ09SUC4KKzAwQTBGNyAgICAgKGJhc2UgMTYpCQlWLkkgQ09NUFVURVIgQ09SUC4KKwkJCQk1MzEgRU5DSU5JVEFTIEJMVkQtLSMxMTQKKwkJCQlFTkNJTklUQVMgQ0EgOTIwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUY4ICAgKGhleCkJCVNZTUJPTCBURUNITk9MT0dJRVMsIElOQy4KKzAwQTBGOCAgICAgKGJhc2UgMTYpCQlTWU1CT0wgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTEwMSBTT1VUSCBXSU5DSEVTVEVSIEJMVkQuCisJCQkJU1VJVEUgICMgQi0xMTAKKwkJCQlTQU4gSk9TRSBDQSA5NTEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRjkgICAoaGV4KQkJQklOVEVDIENPTU1VTklDQVRJT05TIEdNQkgKKzAwQTBGOSAgICAgKGJhc2UgMTYpCQlCSU5URUMgQ09NTVVOSUNBVElPTlMgR01CSAorCQkJCVNVRURXRVNUUEFSSyA5NAorCQkJCTkwNDQ5IE5VRVJOQkVSRyAgCisJCQkJR0VSTUFOWQorCiswMC1BMC1GQSAgIChoZXgpCQlNYXJjb25pIENvbW11bmljYXRpb24gR21iSAorMDBBMEZBICAgICAoYmFzZSAxNikJCU1hcmNvbmkgQ29tbXVuaWNhdGlvbiBHbWJICisJCQkJR2VyYmVyc3RyYXNzZSAzMworCQkJCUQtNzE1MjIgQmFjbmtuYW5nCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQTAtRkIgICAoaGV4KQkJVE9SQVkgRU5HSU5FRVJJTkcgQ08uLCBMVEQuCiswMEEwRkIgICAgIChiYXNlIDE2KQkJVE9SQVkgRU5HSU5FRVJJTkcgQ08uLCBMVEQuCisJCQkJMS00NSwgT0UgMS1DSE9NRSwgT1RTVSBDSVRZCisJCQkJU0hJR0EsCisJCQkJNTIwLTIxIEpBUEFOCisJCQkJSkFQQU4KKworMDAtQTAtRkMgICAoaGV4KQkJSU1BR0UgU0NJRU5DRVMsIElOQy4KKzAwQTBGQyAgICAgKGJhc2UgMTYpCQlJTUFHRSBTQ0lFTkNFUywgSU5DLgorCQkJCTc1MDAgSU5OT1ZBVElPTiBXQVkKKwkJCQlNQVNPTiBPSCA0NTA0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRkQgICAoaGV4KQkJU0NJVEVYIERJR0lUQUwgUFJJTlRJTkcsIElOQy4KKzAwQTBGRCAgICAgKGJhc2UgMTYpCQlTQ0lURVggRElHSVRBTCBQUklOVElORywgSU5DLgorCQkJCTMxMDAgUkVTRUFSQ0ggQkxWRC4KKwkJCQlEQVlUT04gT0ggNDU0MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUZFICAgKGhleCkJCUJPU1RPTiBURUNITk9MT0dZLCBJTkMuCiswMEEwRkUgICAgIChiYXNlIDE2KQkJQk9TVE9OIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkxMDAgUVVBTk5BUE9XSVRUIFBBUktXQVkKKwkJCQlXQUtFRklFTEQgTUEgMDE4ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUZGICAgKGhleCkJCVRFTExBQlMgT1BFUkFUSU9OUywgSU5DLgorMDBBMEZGICAgICAoYmFzZSAxNikJCVRFTExBQlMgT1BFUkFUSU9OUywgSU5DLgorCQkJCTEwMDAgUkVNSU5HVE9OIEJMVkQuCisJCQkJQk9MSU5HQlJPT0sgIElMICA2MDQ0MAorCQkJCTYwNDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMS1ERSAgIChoZXgpCQlTaGVuWmhlbiBTaGlIdWEgVGVjaG5vbG9neSBDTy4sTFRECiswMEExREUgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gU2hpSHVhIFRlY2hub2xvZ3kgQ08uLExURAorCQkJCVJvb201MDUsNS9GIFRzaW5nWWkgQnVpbGRpbmcsTGFuZ1NoYW4gMmVkIFJvYWQsSGlnaC1UZWNoIEluZHVzdHJpYWwgUGFyaywKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDUyCisJCQkJQ0hJTkEKKworMDAtQTItREEgICAoaGV4KQkJSU5BVCBHbWJICiswMEEyREEgICAgIChiYXNlIDE2KQkJSU5BVCBHbWJICisJCQkJT3N0ZW5kc3RyLiA1MEEKKwkJCQlOdXJlbWJlcmcgQmF2YXJpYSA5MDQ4MgorCQkJCUdFUk1BTlkKKworMDAtQUEtMDAgICAoaGV4KQkJSU5URUwgQ09SUE9SQVRJT04KKzAwQUEwMCAgICAgKGJhc2UgMTYpCQlJTlRFTCBDT1JQT1JBVElPTgorCQkJCTUyMDAgTkUgRUxBTSBZT1VORyBQQVJLV0FZCisJCQkJSElMTFNCT1JPIE9SIDk3MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BQS0wMSAgIChoZXgpCQlJTlRFTCBDT1JQT1JBVElPTgorMDBBQTAxICAgICAoYmFzZSAxNikJCUlOVEVMIENPUlBPUkFUSU9OCisJCQkJCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BQS0wMiAgIChoZXgpCQlJTlRFTCBDT1JQT1JBVElPTgorMDBBQTAyICAgICAoYmFzZSAxNikJCUlOVEVMIENPUlBPUkFUSU9OCisJCQkJCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BQS0zQyAgIChoZXgpCQlPTElWRVRUSSBURUxFQ09NIFNQQSAoT0xURUNPKQorMDBBQTNDICAgICAoYmFzZSAxNikJCU9MSVZFVFRJIFRFTEVDT00gU1BBIChPTFRFQ08pCisJCQkJMTAwNjIgTUlMTEVSIEFWRS4tU1RFLiMyMDQKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTA5ICAgKGhleCkJCUdyYXNzIFZhbGxleSBHcm91cAorMDBCMDA5ICAgICAoYmFzZSAxNikJCUdyYXNzIFZhbGxleSBHcm91cAorCQkJCVAuTy4gQm94IDU5OTAwMAorCQkJCU5ldmFkYSBDaXR5IENBIDk1OTU5LTc5MDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTE3ICAgKGhleCkJCUluZm9HZWFyIFRlY2hub2xvZ3kgQ29ycC4KKzAwQjAxNyAgICAgKGJhc2UgMTYpCQlJbmZvR2VhciBUZWNobm9sb2d5IENvcnAuCisJCQkJMjA1NSBXb29kc2lkZSBSb2FkCisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC0xOSAgIChoZXgpCQlDYXNpLVJ1c2NvCiswMEIwMTkgICAgIChiYXNlIDE2KQkJQ2FzaS1SdXNjbworCQkJCTExNTUgQnJva2VuIFNvdW5kIFBrd3kKKwkJCQlCb2NhIFJhdG9uIEZMIDMzNDk4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC0xQyAgIChoZXgpCQlXZXN0cG9ydCBUZWNobm9sb2dpZXMKKzAwQjAxQyAgICAgKGJhc2UgMTYpCQlXZXN0cG9ydCBUZWNobm9sb2dpZXMKKwkJCQkxNSBDYXBlbGxhIENvdXJ0LCBVbml0IDExNgorCQkJCU5lcGVhbiBPbnRhcmlvIAorCQkJCUNBTkFEQQorCiswMC1CMC0xRSAgIChoZXgpCQlSYW50aWMgTGFicywgSW5jLgorMDBCMDFFICAgICAoYmFzZSAxNikJCVJhbnRpYyBMYWJzLCBJbmMuCisJCQkJNzAyIEJyYXpvcywgIFN1aXRlICM1MDAKKwkJCQlBdXN0aW4gVFggNzg3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTJBICAgKGhleCkJCU9SU1lTIEdtYkgKKzAwQjAyQSAgICAgKGJhc2UgMTYpCQlPUlNZUyBHbWJICisJCQkJQW0gU3RhZHRncmFiZW4gMjUKKwkJCQlELTg4Njc3IE1hcmtkb3JmICAKKwkJCQlHRVJNQU5ZCisKKzAwLUIwLTJEICAgKGhleCkJCVZpYUdhdGUgVGVjaG5vbG9naWVzLCBJbmMuCiswMEIwMkQgICAgIChiYXNlIDE2KQkJVmlhR2F0ZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk3NDUgUm91dGUgMjAyLzIwNgorCQkJCVN1aXRlIDUKKwkJCQlCcmlkZ2V3YXRlciBOSiAwODgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtMzMgICAoaGV4KQkJT0FPICJJemhldnNraXkgcmFkaW96YXZvZCIKKzAwQjAzMyAgICAgKGJhc2UgMTYpCQlPQU8gIkl6aGV2c2tpeSByYWRpb3phdm9kIgorCQkJCTE5IEJhemlzbmF5YSBzdHJlZXQKKwkJCQlJemhldnNrIFVkbXVydCBSZXB1YmxpYyA0MjYwMzQKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtQjAtM0IgICAoaGV4KQkJSGlRIE5ldHdvcmtzCiswMEIwM0IgICAgIChiYXNlIDE2KQkJSGlRIE5ldHdvcmtzCisJCQkJMjQ3NSBBdWd1c3RpbmUgRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtNDggICAoaGV4KQkJTWFyY29uaSBDb21tdW5pY2F0aW9ucyBJbmMuCiswMEIwNDggICAgIChiYXNlIDE2KQkJTWFyY29uaSBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJODYxNiBGcmVlcG9ydCBQYXJrd2F5CisJCQkJTVMgQTIKKwkJCQlJcnZpbmcgVFggNzUwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTRBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwQjA0QSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlIC0gU0pBLTIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtNTIgICAoaGV4KQkJQXRoZXJvcyBDb21tdW5pY2F0aW9ucworMDBCMDUyICAgICAoYmFzZSAxNikJCUF0aGVyb3MgQ29tbXVuaWNhdGlvbnMKKwkJCQk1OTU1IFQuRy4gTGVlIEJsdmQsIFN0ZS4gNjAwCisJCQkJT2NhbGEgRkwgMzI4MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTY0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwQjA2NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlIC0gU0pBLTIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtNjkgICAoaGV4KQkJSG9uZXdlbGwgT3kKKzAwQjA2OSAgICAgKGJhc2UgMTYpCQlIb25ld2VsbCBPeQorCQkJCVAuTy4gQm94IDE2OCwgRklOLTc4MjAxCisJCQkJVmFya2F1cworCQkJCUZJTkxBTkQKKworMDAtQjAtNkQgICAoaGV4KQkJSm9uZXMgRnV0dXJleCBJbmMuCiswMEIwNkQgICAgIChiYXNlIDE2KQkJSm9uZXMgRnV0dXJleCBJbmMuCisJCQkJMzcxNSBBdGhlcnRvbiBSb2FkCisJCQkJUm9ja2xpbiBDQSA5NTc2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtODAgICAoaGV4KQkJTWFubmVzbWFubiBJcHVsc3lzIEIuVi4KKzAwQjA4MCAgICAgKGJhc2UgMTYpCQlNYW5uZXNtYW5uIElwdWxzeXMgQi5WLgorCQkJCUJvcmRld2lqa2xhYW4gMTgKKwkJCQkyNTkxIFhSIFRoZSBIYWd1ZSAgCisJCQkJTkVUSEVSTEFORFMKKworMDAtQjAtODYgICAoaGV4KQkJTG9jU29mdCBMaW1pdGVkCiswMEIwODYgICAgIChiYXNlIDE2KQkJTG9jU29mdCBMaW1pdGVkCisJCQkJNyBCcmlnaHQgU3RyZWV0CisJCQkJQ2xpdGhlcm9lIExhbmNhc2hpcmUgQkI3IDFOVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUIwLThFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwQjA4RSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlIC1TSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC05MSAgIChoZXgpCQlUcmFuc21ldGEgQ29ycC4KKzAwQjA5MSAgICAgKGJhc2UgMTYpCQlUcmFuc21ldGEgQ29ycC4KKwkJCQkzOTQwIEZyZWVkb20gQ2lyY2xlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTk0ICAgKGhleCkJCUFsYXJpcywgSW5jLgorMDBCMDk0ICAgICAoYmFzZSAxNikJCUFsYXJpcywgSW5jLgorCQkJCTQ3MzM4IEZyZW1vbnQgQm91bGV2YXJkCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtOUEgICAoaGV4KQkJTW9ycm93IFRlY2hub2xvZ2llcyBDb3JwLgorMDBCMDlBICAgICAoYmFzZSAxNikJCU1vcnJvdyBUZWNobm9sb2dpZXMgQ29ycC4KKwkJCQkyMzAwIFRhbGwgUGluZXMgRHJpdmUKKwkJCQlMYXJnbyBGTCAzMzc3MS01MzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC05RCAgIChoZXgpCQlQb2ludCBHcmV5IFJlc2VhcmNoIEluYy4KKzAwQjA5RCAgICAgKGJhc2UgMTYpCQlQb2ludCBHcmV5IFJlc2VhcmNoIEluYy4KKwkJCQkzMDUtMTg0NyBXZXN0IEJyb2Fkd2F5CisJCQkJVmFuY291dmVyIEJyaXRpc2ggQ29sdW1iaWEgVjZKIDFZNiAKKwkJCQlDQU5BREEKKworMDAtQjAtQUMgICAoaGV4KQkJU0lBRS1NaWNyb2VsZXR0cm9uaWNhIFMucC5BLgorMDBCMEFDICAgICAoYmFzZSAxNikJCVNJQUUtTWljcm9lbGV0dHJvbmljYSBTLnAuQS4KKwkJCQlWaWEgTWljaGVsYW5nZWxvIEJ1b25hcnJvdGksIDIxCisJCQkJMjAwOTMgQ29sb2dubyBNLiAoTWwpICAKKwkJCQlJVEFMWQorCiswMC1CMC1BRSAgIChoZXgpCQlTeW1tZXRyaWNvbQorMDBCMEFFICAgICAoYmFzZSAxNikJCVN5bW1ldHJpY29tCisJCQkJMjMwMCBPcmNoYXJkIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtQjMgICAoaGV4KQkJWHN0cmVhbWlzIFBMQworMDBCMEIzICAgICAoYmFzZSAxNikJCVhzdHJlYW1pcyBQTEMKKwkJCQlNYWdkYWxlbiBDZW50cmUKKwkJCQlPeGZvcmQgU2NpZW5jZSBQYXJrCisJCQkJT3hmb3JkIDBYNCA0R0EgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUIwLUMyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwQjBDMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlIC0gU0pBLTIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtQzcgICAoaGV4KQkJVGVsbGFicyBPcGVyYXRpb25zLCBJbmMuCiswMEIwQzcgICAgIChiYXNlIDE2KQkJVGVsbGFicyBPcGVyYXRpb25zLCBJbmMuCisJCQkJT25lIFRlbGxhYnMgQ2VudGVyCisJCQkJMTQxNSBXZXN0IERpZWhsIFJvYWQKKwkJCQlOYXBlcnZpbGxlIElMIDYwNTYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC1DRSAgIChoZXgpCQlURUNITk9MT0dZIFJFU0NVRQorMDBCMENFICAgICAoYmFzZSAxNikJCVRFQ0hOT0xPR1kgUkVTQ1VFCisJCQkJNDYgQXZlbnVlIGRlcyBTcGVyZXMgTHVtaWVyZQorCQkJCTc4MTkgVHJvcHBlcyAgCisJCQkJRlJBTkNFCisKKzAwLUIwLUQwICAgKGhleCkJCURlbGwgQ29tcHV0ZXIgQ29ycC4KKzAwQjBEMCAgICAgKGJhc2UgMTYpCQlEZWxsIENvbXB1dGVyIENvcnAuCisJCQkJT25lIERlbGwgV2F5CisJCQkJUm91bmQgUm9jayBUWCA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtREIgICAoaGV4KQkJTmV4dGNlbGwsIEluYy4KKzAwQjBEQiAgICAgKGJhc2UgMTYpCQlOZXh0Y2VsbCwgSW5jLgorCQkJCTY1MSBFYXN0IDE4dGggU3RyZWV0CisJCQkJUGxhbm8gVFggNzUwNzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLURGICAgKGhleCkJCVJFTERBVEEgSW5jCiswMEIwREYgICAgIChiYXNlIDE2KQkJUkVMREFUQSBJbmMKKwkJCQkxNzE5IFJvdXRlIDEwICAtICBTdWl0ZSAjMjA5CisJCQkJUGFyc2lwcGFueSBOSiAwNzA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtRTcgICAoaGV4KQkJQnJpdGlzaCBGZWRlcmFsIEx0ZC4KKzAwQjBFNyAgICAgKGJhc2UgMTYpCQlCcml0aXNoIEZlZGVyYWwgTHRkLgorCQkJCUNhc3RsZSBNaWxsIFdvcmtzCisJCQkJRHVkbGV5IERZMSA0REEgRW5nbGFuZCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1CMC1FQyAgIChoZXgpCQlFQUNFTQorMDBCMEVDICAgICAoYmFzZSAxNikJCUVBQ0VNCisJCQkJQXZlbnVlIExvdWlzZSAxNDAsIEJ0ZSA2CisJCQkJQi0xMDUwIEJSVVNTRUxTICAKKwkJCQlCRUxHSVVNCisKKzAwLUIwLUVFICAgKGhleCkJCUFqaWxlIFN5c3RlbXMsIEluYy4KKzAwQjBFRSAgICAgKGJhc2UgMTYpCQlBamlsZSBTeXN0ZW1zLCBJbmMuCisJCQkJMjA0IENvbGxpbnMgUmQgTkUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlDZWRhciBSYXBpZHMgSUEgNTI0MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLUYwICAgKGhleCkJCUNBTFkgTkVUV09SS1MKKzAwQjBGMCAgICAgKGJhc2UgMTYpCQlDQUxZIE5FVFdPUktTCisJCQkJMjk1IFNhbnRhIEFubmEgQ291cnQKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLUY1ICAgKGhleCkJCU5ldFdvcnRoIFRlY2hub2xvZ2llcywgSW5jLgorMDBCMEY1ICAgICAoYmFzZSAxNikJCU5ldFdvcnRoIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEwMDAgR2VybWFudG93biBQaWtlCisJCQkJbGRnLiBKLTEKKwkJCQlQbHltb3V0aCBNZXR0aW5nIFBBIDE5NDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMy00MiAgIChoZXgpCQlNYWNyb1NBTiBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMEIzNDIgICAgIChiYXNlIDE2KQkJTWFjcm9TQU4gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCVJvb20gMTAyLCBOby4yIEJ1aWxkaW5nCisJCQkJMzAxIEJpbiBYaW5nIFJvYWQsQmluamlhbmcgRGlzdHJpY3QKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwNTIKKwkJCQlDSElOQQorCiswMC1CNS1ENiAgIChoZXgpCQlPbW5pYml0IEluYy4KKzAwQjVENiAgICAgKGJhc2UgMTYpCQlPbW5pYml0IEluYy4KKwkJCQkyLTctOSwgU290by1LYW5kYQorCQkJCUNoaXlvZGEta3UgVG9reW8gMTAxLTAwMjEKKwkJCQlKQVBBTgorCiswMC1CQS1DMCAgIChoZXgpCQlCaW9tZXRyaWMgQWNjZXNzIENvbXBhbnkKKzAwQkFDMCAgICAgKGJhc2UgMTYpCQlCaW9tZXRyaWMgQWNjZXNzIENvbXBhbnkKKwkJCQkyNTU1IE5vcnRoIElIIDM1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQkItMDEgICAoaGV4KQkJT0NUT1RIT1JQRSBDT1JQLgorMDBCQjAxICAgICAoYmFzZSAxNikJCU9DVE9USE9SUEUgQ09SUC4KKwkJCQkyODUgV0VTVCBHUkVFTiBTVFJFRVQKKwkJCQlQQVNBREVOQSBDQSA5MTEwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQkItOEUgICAoaGV4KQkJSE1FIENvLiwgTHRkLgorMDBCQjhFICAgICAoYmFzZSAxNikJCUhNRSBDby4sIEx0ZC4KKwkJCQlOby4yMDAgLCBMaWFvIEJlaSBTdHIuLFNhbiBNaW4gRGlzdC4sCisJCQkJS2FvaHNpdW5nICA4MDcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUJCLUYwICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwQkJGMCAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CRC0yNyAgIChoZXgpCQlFeGFyIENvcnAuCiswMEJEMjcgICAgIChiYXNlIDE2KQkJRXhhciBDb3JwLgorCQkJCTQ4NzIwIEthdG8gUmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQkQtM0EgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzAwQkQzQSAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU3MAorCQkJCUZJTkxBTkQKKworMDAtQzAtMDAgICAoaGV4KQkJTEFOT1BUSUNTLCBMVEQuCiswMEMwMDAgICAgIChiYXNlIDE2KQkJTEFOT1BUSUNTLCBMVEQuCisJCQkJUC5PLiBCT1ggMTg0CisJCQkJTUlHREFMIEhBLUVNRUsKKwkJCQlJU1JBRUwgSVNSQUVMIDEwNTUxCisJCQkJSVNSQUVMCisKKzAwLUMwLTAxICAgKGhleCkJCURJQVRFSyBQQVRJRU5UIE1BTkFHTUVOVAorMDBDMDAxICAgICAoYmFzZSAxNikJCURJQVRFSyBQQVRJRU5UIE1BTkFHTUVOVAorCQkJCVNZU1RFTVMsIElOQy4KKwkJCQk1NzIwIE9CRVJMSU4gRFJJVkUKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEtMTcyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMDIgICAoaGV4KQkJU0VSQ09NTSBDT1JQT1JBVElPTgorMDBDMDAyICAgICAoYmFzZSAxNikJCVNFUkNPTU0gQ09SUE9SQVRJT04KKwkJCQkzRixOTy44MSxZVS1ZSUggUk9BRCxDSFUtTkFOIENIRU4KKwkJCQlNSUFPLUxJSCBIU1VBTiAzNTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUMwLTAzICAgKGhleCkJCUdMT0JBTE5FVCBDT01NVU5JQ0FUSU9OUworMDBDMDAzICAgICAoYmFzZSAxNikJCUdMT0JBTE5FVCBDT01NVU5JQ0FUSU9OUworCQkJCTkxMiwgUExBQ0UgVFJBTlMgQ0FOQURBCisJCQkJTE9OR1VFVUlMLCBRQworCQkJCUNBTkFEQSBKNEcgMk0xCisJCQkJQ0FOQURBCisKKzAwLUMwLTA0ICAgKGhleCkJCUpBUEFOIEJVU0lORVNTIENPTVBVVEVSIENPLkxURAorMDBDMDA0ICAgICAoYmFzZSAxNikJCUpBUEFOIEJVU0lORVNTIENPTVBVVEVSIENPLkxURAorCQkJCTEzNjggRlVUT08tQ0hPLCBLT0hPS1UtS1UKKwkJCQlZT0tPSEFNQS1DSVRZCisJCQkJMjIyIEpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtMDUgICAoaGV4KQkJTElWSU5HU1RPTiBFTlRFUlBSSVNFUywgSU5DLgorMDBDMDA1ICAgICAoYmFzZSAxNikJCUxJVklOR1NUT04gRU5URVJQUklTRVMsIElOQy4KKwkJCQk2OTIwIEtPTEwgQ0VOVEVSIFBBUktXQVkgIzIyMAorCQkJCVBMRUFTQU5UT04gQ0EgOTQ1NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTA2ICAgKGhleCkJCU5JUFBPTiBBVklPTklDUyBDTy4sIExURC4KKzAwQzAwNiAgICAgKGJhc2UgMTYpCQlOSVBQT04gQVZJT05JQ1MgQ08uLCBMVEQuCisJCQkJSU5EVVNUUklBTCBTWVNURU0gRElWSVNJT04KKwkJCQkyOC0yLCBIT05HT0ggMi1DSE9NRSwgU0VZQS1LVSBZT0tPSEFNQQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtMDcgICAoaGV4KQkJUElOTkFDTEUgREFUQSBTWVNURU1TLCBJTkMuCiswMEMwMDcgICAgIChiYXNlIDE2KQkJUElOTkFDTEUgREFUQSBTWVNURU1TLCBJTkMuCisJCQkJMTM1MCBXRVNUIEZJRlRIIEFWRU5VRQorCQkJCUNPTFVNQlVTIE9IIDQzMjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0wOCAgIChoZXgpCQlTRUNPIFNSTAorMDBDMDA4ICAgICAoYmFzZSAxNikJCVNFQ08gU1JMCisJCQkJVklBIENBTEFNQU5EUkVJIDkxCisJCQkJNTIxMDAgQVJFWlpPCisJCQkJSVRBTFkKKwkJCQlJVEFMWQorCiswMC1DMC0wOSAgIChoZXgpCQlLVCBURUNITk9MT0dZIChTKSBQVEUgTFRECiswMEMwMDkgICAgIChiYXNlIDE2KQkJS1QgVEVDSE5PTE9HWSAoUykgUFRFIExURAorCQkJCUtUIEJVSUxESU5HCisJCQkJMTAwRSBQQVNJUiBQQU5KQU5HIFJPQUQKKwkJCQlTSU5HQVBPUkUgMDUxMQorCQkJCVNJTkdBUE9SRQorCiswMC1DMC0wQSAgIChoZXgpCQlNSUNSTyBDUkFGVAorMDBDMDBBICAgICAoYmFzZSAxNikJCU1JQ1JPIENSQUZUCisJCQkJMi00LTMgTklTSElGVVJVTUFUU1UKKwkJCQlPS0FZQU1BIENJVFkgT0tBWUFNQSBQUkVGLiA3MDAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLTBCICAgKGhleCkJCU5PUkNPTlRST0wgQS5TLgorMDBDMDBCICAgICAoYmFzZSAxNikJCU5PUkNPTlRST0wgQS5TLgorCQkJCVAuTy4gQk9YIDEwMjQKKwkJCQlOLTMxOTQgSE9SVEVOCisJCQkJTk9SV0FZCisJCQkJTk9SV0FZCisKKzAwLUMwLTBDICAgKGhleCkJCVJFTElBIFRFQ0hOT0xHSUVTCiswMEMwMEMgICAgIChiYXNlIDE2KQkJUkVMSUEgVEVDSE5PTEdJRVMKKwkJCQkxRi4sIE5PLiAyNCwgSU5EVVNUUlkgRS4gOVRICisJCQkJUkQuLCBTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSyBIU0lOLQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1DMC0wRCAgIChoZXgpCQlBRFZBTkNFRCBMT0dJQyBSRVNFQVJDSCwgSU5DLgorMDBDMDBEICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIExPR0lDIFJFU0VBUkNILCBJTkMuCisJCQkJOTQwMSBKRVJPTklNTworCQkJCUlSVklORSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMEUgICAoaGV4KQkJUFNJVEVDSCwgSU5DLgorMDBDMDBFICAgICAoYmFzZSAxNikJCVBTSVRFQ0gsIElOQy4KKwkJCQkxODM2OCBCQU5ESUxJRVIgQ0lSQ0xFCisJCQkJRk9VTlRBSU4gVkFMTEVZIENBIDkyNzA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0wRiAgIChoZXgpCQlRVUFOVFVNIFNPRlRXQVJFIFNZU1RFTVMgTFRELgorMDBDMDBGICAgICAoYmFzZSAxNikJCVFVQU5UVU0gU09GVFdBUkUgU1lTVEVNUyBMVEQuCisJCQkJMTc1IFRFUlJFTkNFIE1BVFRIRVdTIENSRVNDRU5UCisJCQkJS0FOQVRBLCBPTlRBUklPIENBTkFEQQorCQkJCUsyTCAzVDUKKwkJCQlDQU5BREEKKworMDAtQzAtMTAgICAoaGV4KQkJSElSQUtBV0EgSEVXVEVDSCBDT1JQLgorMDBDMDEwICAgICAoYmFzZSAxNikJCUhJUkFLQVdBIEhFV1RFQ0ggQ09SUC4KKwkJCQk3RiwgQkxERy5CLCBPTU9SSSBCRUxMUE9SVAorCQkJCTYtMjYtMiwgTUlOQU1JLU9JLFNISU5BR0FXQS1LVSBUT0tZTyAxNDAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLTExICAgKGhleCkJCUlOVEVSQUNUSVZFIENPTVBVVElORyBERVZJQ0VTCiswMEMwMTEgICAgIChiYXNlIDE2KQkJSU5URVJBQ1RJVkUgQ09NUFVUSU5HIERFVklDRVMKKwkJCQkxNzM1IFRFQ0hOT0xPR1kgRFJJVkUtU1RFICM3MjAKKwkJCQlTQU4gSk9TRSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMTIgICAoaGV4KQkJTkVUU1BBTiBDT1JQT1JBVElPTgorMDBDMDEyICAgICAoYmFzZSAxNikJCU5FVFNQQU4gQ09SUE9SQVRJT04KKwkJCQkxNDExIEUuIENBTVBCRUxMIFJECisJCQkJU1VJVEUgIzEwMDAKKwkJCQlSSUNIQVJEU09OIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0xMyAgIChoZXgpCQlORVRSSVgKKzAwQzAxMyAgICAgKGJhc2UgMTYpCQlORVRSSVgKKwkJCQkxMzU5NSBEVUxMRVMgVEVDSE5PTE9HWSBEUklWRQorCQkJCUhFUk5ET04gVkEgMjIwNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTE0ICAgKGhleCkJCVRFTEVNQVRJQ1MgQ0FMQUJBU0FTIElOVCdMLElOQworMDBDMDE0ICAgICAoYmFzZSAxNikJCVRFTEVNQVRJQ1MgQ0FMQUJBU0FTIElOVCdMLElOQworCQkJCTI2NjMwIEFHT1VSQSBST0FECisJCQkJQ0FMQUJBU0FTIENBIDkxMzAyLTE5ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTE1ICAgKGhleCkJCU5FVyBNRURJQSBDT1JQT1JBVElPTgorMDBDMDE1ICAgICAoYmFzZSAxNikJCU5FVyBNRURJQSBDT1JQT1JBVElPTgorCQkJCTE1Mzc1IEJBUlJBTkNBIFBBUktXQVkKKwkJCQlCVUlMRElORworCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMTYgICAoaGV4KQkJRUxFQ1RST05JQyBUSEVBVFJFIENPTlRST0xTCiswMEMwMTYgICAgIChiYXNlIDE2KQkJRUxFQ1RST05JQyBUSEVBVFJFIENPTlRST0xTCisJCQkJMzAzMCBMQVVSQSBMQU5FCisJCQkJTUlERExFVE9OIFdJIDUzNTYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0xNyAgIChoZXgpCQlGbHVrZSBDb3Jwb3JhdGlvbgorMDBDMDE3ICAgICAoYmFzZSAxNikJCUZsdWtlIENvcnBvcmF0aW9uCisJCQkJNjkyMCBTZWF3YXkgQmx2ZC4KKwkJCQlFdmVyZXR0IFdBIDk4MjAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0xOCAgIChoZXgpCQlMQU5BUlQgQ09SUE9SQVRJT04KKzAwQzAxOCAgICAgKGJhc2UgMTYpCQlMQU5BUlQgQ09SUE9SQVRJT04KKwkJCQkxNDUgUk9TRU1BUlkgU1RSRUVUCisJCQkJTkVFREhBTSBNQSAwMjE5NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMTkgICAoaGV4KQkJTEVBUCBURUNITk9MT0dZLCBJTkMuCiswMEMwMTkgICAgIChiYXNlIDE2KQkJTEVBUCBURUNITk9MT0dZLCBJTkMuCisJCQkJMjAKKwkJCQlCVVJMSU5HVE9OIE1BIDAxODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0xQSAgIChoZXgpCQlDT1JPTUVUUklDUyBNRURJQ0FMIFNZU1RFTVMKKzAwQzAxQSAgICAgKGJhc2UgMTYpCQlDT1JPTUVUUklDUyBNRURJQ0FMIFNZU1RFTVMKKwkJCQk2MSBCQVJORVMgUEFSSyBST0FEIE5PUlRICisJCQkJV0FMTElOR0ZPUkQgQ1QgMDY0OTItMDMzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMUIgICAoaGV4KQkJU09DS0VUIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEMwMUIgICAgIChiYXNlIDE2KQkJU09DS0VUIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMjgyMyBXSElQUExFIFJELgorCQkJCVVOSU9OIENJVFkgQ0EgOTQ1ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTFDICAgKGhleCkJCUlOVEVSTElOSyBDT01NVU5JQ0FUSU9OUyBMVEQuCiswMEMwMUMgICAgIChiYXNlIDE2KQkJSU5URVJMSU5LIENPTU1VTklDQVRJT05TIExURC4KKwkJCQlCUlVORUwgUk9BRCwKKwkJCQlHT1JTRSBMQU5FIElORFVTVFJJQUwgRVNUQVRFIENMQUNUT04tT04tCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLTFEICAgKGhleCkJCUdSQU5EIEpVTkNUSU9OIE5FVFdPUktTLCBJTkMuCiswMEMwMUQgICAgIChiYXNlIDE2KQkJR1JBTkQgSlVOQ1RJT04gTkVUV09SS1MsIElOQy4KKwkJCQkzMTAxIFdISVBQTEUgUkQuLCAjMjcKKwkJCQlVTklPTiBDSVRZIENBIDk0NTg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0xRSAgIChoZXgpCQlMQSBGUkFOQ0FJU0UgREVTIEpFVVgKKzAwQzAxRSAgICAgKGJhc2UgMTYpCQlMQSBGUkFOQ0FJU0UgREVTIEpFVVgKKwkJCQlDRU5UUkUgREUgUk9VU1NZL0RUSQorCQkJCTc3MjMwIFJPVVNTWS1MRS1WSUVVWAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC1DMC0xRiAgIChoZXgpCQlTLkUuUi5DLkUuTC4KKzAwQzAxRiAgICAgKGJhc2UgMTYpCQlTLkUuUi5DLkUuTC4KKwkJCQlCLlAuIDQzOQorCQkJCTQ0NDc0IENBUlFVRUZPVSBDRURFWAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC1DMC0yMCAgIChoZXgpCQlBUkNPIEVMRUNUUk9OSUMsIENPTlRST0wgTFRELgorMDBDMDIwICAgICAoYmFzZSAxNikJCUFSQ08gRUxFQ1RST05JQywgQ09OVFJPTCBMVEQuCisJCQkJMjc1MCBOT1JUSCAyOVRIIEFWRS4tU1RFLiMzMTYKKwkJCQlIT0xMWVdPT0QgRkwgMzMwMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTIxICAgKGhleCkJCU5FVEVYUFJFU1MKKzAwQzAyMSAgICAgKGJhc2UgMTYpCQlORVRFWFBSRVNTCisJCQkJOTg5IEVBU1QgSElMTFNEQUxFIEJMVkQuCisJCQkJU1VJVEUgIzI5MAorCQkJCUZPU1RFUiBDSVRZIENBIDk0NDA0LTIxMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTIyICAgKGhleCkJCUxBU0VSTUFTVEVSIFRFQ0hOT0xPR0lFUywgSU5DLgorMDBDMDIyICAgICAoYmFzZSAxNikJCUxBU0VSTUFTVEVSIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTcxNTYgU0hBRFkgT0FLIFJPQUQKKwkJCQlFREVOIFBSQUlSSUUgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTIzICAgKGhleCkJCVRVVEFOS0hBTU9OIEVMRUNUUk9OSUNTCiswMEMwMjMgICAgIChiYXNlIDE2KQkJVFVUQU5LSEFNT04gRUxFQ1RST05JQ1MKKwkJCQkyNDQ2IEVTVEFORCBXQVkKKwkJCQlQTEVBU0FOVCBISUxMIENBIDk0NTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0yNCAgIChoZXgpCQlFREVOIFNJU1RFTUFTIERFIENPTVBVVEFDQU8gU0EKKzAwQzAyNCAgICAgKGJhc2UgMTYpCQlFREVOIFNJU1RFTUFTIERFIENPTVBVVEFDQU8gU0EKKwkJCQlSVUEgRE8gT1VWSURPUiAxMjEgNSBBTkRBUgorCQkJCVJJTyBERSBKQU5FSVJPCisJCQkJQlJBWklMCisJCQkJQlJBWklMCisKKzAwLUMwLTI1ICAgKGhleCkJCURBVEFQUk9EVUNUUyBDT1JQT1JBVElPTgorMDBDMDI1ICAgICAoYmFzZSAxNikJCURBVEFQUk9EVUNUUyBDT1JQT1JBVElPTgorCQkJCTYyMTkgREVTT1RPIEFWRU5VRQorCQkJCVdPT0RMQU5EIEhJTExTIENBIDkxMzY1LTA3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTI2ICAgKGhleCkJCUxBTlMgVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwQzAyNiAgICAgKGJhc2UgMTYpCQlMQU5TIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJMTUzIE1JTlRTVSBSRC4gMkYsIFRBT1lVQU4sCisJCQkJVEFJV0FOIFIuIE8uIEMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1DMC0yNyAgIChoZXgpCQlDSVBIRVIgU1lTVEVNUywgSU5DLgorMDBDMDI3ICAgICAoYmFzZSAxNikJCUNJUEhFUiBTWVNURU1TLCBJTkMuCisJCQkJMTgwMCBOVyAxNjl0aCBQbGFjZQorCQkJCVN1aXRlIEItMTAwCisJCQkJQmVhdmVydG9uIE9SIDk3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0yOCAgIChoZXgpCQlKQVNDTyBDT1JQT1JBVElPTgorMDBDMDI4ICAgICAoYmFzZSAxNikJCUpBU0NPIENPUlBPUkFUSU9OCisJCQkJMjk2Ny01IElTSElLQVdBLUNITywKKwkJCQlIQUNISU9KSS1TSEkgVE9LWU8gMTkyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC0yOSAgIChoZXgpCQlOZXhhbnMgRGV1dHNjaGxhbmQgR21iSCAtIEFOUworMDBDMDI5ICAgICAoYmFzZSAxNikJCU5leGFucyBEZXV0c2NobGFuZCBHbWJIIC0gQU5TCisJCQkJQm9ubmVuYnJvaWNoZXIgU3RyLiAxMDAKKwkJCQk0MTIzOCBNb2VuY2hlbmdsYWRiYWNoCisJCQkJR0VSTUFOWQorCiswMC1DMC0yQSAgIChoZXgpCQlPSEtVUkEgRUxFQ1RSSUMgQ08uLCBMVEQuCiswMEMwMkEgICAgIChiYXNlIDE2KQkJT0hLVVJBIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTItOTAtMjAgU0hJUkFLTyBXQUtPIENJVFkKKwkJCQlTQUlUQU1BIFBSRUYuCisJCQkJMzUxLTAxIEpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtMkIgICAoaGV4KQkJR0VSTE9GRiBHRVNFTExTQ0hBRlQgRlVSCiswMEMwMkIgICAgIChiYXNlIDE2KQkJR0VSTE9GRiBHRVNFTExTQ0hBRlQgRlVSCisJCQkJRUxFS1JPTklTQ0hFIFNZU1RFTUVOVFdJQ0tMVU5HCisJCQkJRkFTQU5FTldFRyAyNSBXLTIwMDAgSEFNQlVSRyA3MworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUMwLTJDICAgKGhleCkJCUNFTlRSVU0gQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwQzAyQyAgICAgKGJhc2UgMTYpCQlDRU5UUlVNIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMjg4MCBaQU5LRVIgUk9BRC1TVEUgIzEwOAorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0yRCAgIChoZXgpCQlGVUpJIFBIT1RPIEZJTE0gQ08uLCBMVEQuCiswMEMwMkQgICAgIChiYXNlIDE2KQkJRlVKSSBQSE9UTyBGSUxNIENPLiwgTFRELgorCQkJCTc5OCBNSVlBTk9EQUkgS0FJU0VJLU1BQ0hJCisJCQkJQVNISUdBUkEtS0FNSS1HVU4gS0FOQUdBV0EKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLTJFICAgKGhleCkJCU5FVFdJWgorMDBDMDJFICAgICAoYmFzZSAxNikJCU5FVFdJWgorCQkJCTI2IEdPTE9NQiBTVFJFRVQKKwkJCQlIQUlGQSAgMzMzOTEKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtQzAtMkYgICAoaGV4KQkJT0tVTUEgQ09SUE9SQVRJT04KKzAwQzAyRiAgICAgKGJhc2UgMTYpCQlPS1VNQSBDT1JQT1JBVElPTgorCQkJCU9HVUNISS1DSE8sIE5JV0EtR1VOCisJCQkJQUlDSEkgNDgwLTAxCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC0zMCAgIChoZXgpCQlJTlRFR1JBVEVEIEVOR0lORUVSSU5HIEIuIFYuCiswMEMwMzAgICAgIChiYXNlIDE2KQkJSU5URUdSQVRFRCBFTkdJTkVFUklORyBCLiBWLgorCQkJCUVMTEVSTUFOU1RSQUFUIDE1CisJCQkJMTA5OSBCVyBBTVNURVJEQU0KKwkJCQlUSEUgTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC1DMC0zMSAgIChoZXgpCQlERVNJR04gUkVTRUFSQ0ggU1lTVEVNUywgSU5DLgorMDBDMDMxICAgICAoYmFzZSAxNikJCURFU0lHTiBSRVNFQVJDSCBTWVNURU1TLCBJTkMuCisJCQkJOTI1IEUuIEVYRUNVVElWRSBQQVJLIERSLgorCQkJCVNVSVRFCisJCQkJU0FMVCBMQUtFIENJVFkgVVQgODQxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTMyICAgKGhleCkJCUktQ1VCRUQgTElNSVRFRAorMDBDMDMyICAgICAoYmFzZSAxNikJCUktQ1VCRUQgTElNSVRFRAorCQkJCVVOSVQgSjEsIFRIRSBQT0FERE9DS1MKKwkJCQkzNDcgQ0hFUlJZIEhJTlRPTiBST0FEIENBTUJSSURHRQorCQkJCUNCMSA0REggQ0IxIDRESCBFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtMzMgICAoaGV4KQkJVEVMRUJJVCBDT01NVU5JQ0FUSU9OUyBBUFMKKzAwQzAzMyAgICAgKGJhc2UgMTYpCQlURUxFQklUIENPTU1VTklDQVRJT05TIEFQUworCQkJCVNLQU5ERVJCT1JHVkVKIDIzNAorCQkJCURLLTgyNjAgVklCWQorCQkJCURFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLUMwLTM0ICAgKGhleCkJCVRSQU5TQUNUSU9OIE5FVFdPUksKKzAwQzAzNCAgICAgKGJhc2UgMTYpCQlUUkFOU0FDVElPTiBORVRXT1JLCisJCQkJU0VSVklDRVMsIElOQy4KKwkJCQlPTU5JTElOSyBDT01NVU5JQ0FUSU9OUyBESVYuIDMxMDEgVEVDSE5PCisJCQkJTEFOU0lORyBNSSA0ODkxMC04MzU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0zNSAgIChoZXgpCQlRVUlOVEFSIENPTVBBTlkKKzAwQzAzNSAgICAgKGJhc2UgMTYpCQlRVUlOVEFSIENPTVBBTlkKKwkJCQkzNzAgQU1BUE9MQSBBVkUuLCBTVEUuIzEwNgorCQkJCVRPUlJBTkNFIENBIDkwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0zNiAgIChoZXgpCQlSQVlURUNIIEVMRUNUUk9OSUMgQ09SUC4KKzAwQzAzNiAgICAgKGJhc2UgMTYpCQlSQVlURUNIIEVMRUNUUk9OSUMgQ09SUC4KKwkJCQkyRiwgTk8uNiwgTEFORSA0OTcKKwkJCQlDSFVORyBDSEVORyBSRCwgSFNJTiBUSUVOIENJVFkgVEFJUEVJIEhTCisJCQkJVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQzAtMzcgICAoaGV4KQkJRFlOQVRFTQorMDBDMDM3ICAgICAoYmFzZSAxNikJCURZTkFURU0KKwkJCQkxNTc5NSBST0NLRklFTEQgQkxWRC4KKwkJCQlTVUlURQorCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMzggICAoaGV4KQkJUkFTVEVSIElNQUdFIFBST0NFU1NJTkcgU1lTVEVNCiswMEMwMzggICAgIChiYXNlIDE2KQkJUkFTVEVSIElNQUdFIFBST0NFU1NJTkcgU1lTVEVNCisJCQkJNDY2NSBOQVVUSUxVUyBDT1VSVCBTT1VUSAorCQkJCUJPVUxERVIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTM5ICAgKGhleCkJCVRlcmlkaWFuIFNlbWljb25kdWN0b3IgQ29ycG9yYXRpb24KKzAwQzAzOSAgICAgKGJhc2UgMTYpCQlUZXJpZGlhbiBTZW1pY29uZHVjdG9yIENvcnBvcmF0aW9uCisJCQkJNjQ0MCBPYWsgQ2FueW9uCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0zQSAgIChoZXgpCQlNRU4tTUlLUk8gRUxFS1RST05JSyBHTUJICiswMEMwM0EgICAgIChiYXNlIDE2KQkJTUVOLU1JS1JPIEVMRUtUUk9OSUsgR01CSAorCQkJCVdJRVNFTlRBTFNUUkFTU0UgNDAKKwkJCQlXLTg1MDAgTlVFUk5CRVJHIDkwCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQzAtM0IgICAoaGV4KQkJTVVMVElBQ0NFU1MgQ09NUFVUSU5HIENPUlAuCiswMEMwM0IgICAgIChiYXNlIDE2KQkJTVVMVElBQ0NFU1MgQ09NUFVUSU5HIENPUlAuCisJCQkJNTM1MCBIT0xMSVNURVIgQVZFLiwgU1RFLgorCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTNDICAgKGhleCkJCVRPV0VSIFRFQ0ggUy5SLkwuCiswMEMwM0MgICAgIChiYXNlIDE2KQkJVE9XRVIgVEVDSCBTLlIuTC4KKwkJCQlWSUEgUklET0xGSSA2LDgKKwkJCQk1NjEyNCBQSVNBCisJCQkJSVRBTFkKKwkJCQlJVEFMWQorCiswMC1DMC0zRCAgIChoZXgpCQlXSUVTRU1BTk4gJiBUSEVJUyBHTUJICiswMEMwM0QgICAgIChiYXNlIDE2KQkJV0lFU0VNQU5OICYgVEhFSVMgR01CSAorCQkJCVdJVFRFTkVSIFNUUi4gMzEyCisJCQkJNTYwMCBXVVBQRVJUQUwgMgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUMwLTNFICAgKGhleCkJCUZBLiBHRUJSLiBIRUxMRVIgR01CSAorMDBDMDNFICAgICAoYmFzZSAxNikJCUZBLiBHRUJSLiBIRUxMRVIgR01CSAorCQkJCVAuTy4gQk9YIDE0MjgsIERFUC4gRUU3CisJCQkJNzQ0MCBOVVJUSU5HRU4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1DMC0zRiAgIChoZXgpCQlTVE9SRVMgQVVUT01BVEVEIFNZU1RFTVMsIElOQy4KKzAwQzAzRiAgICAgKGJhc2UgMTYpCQlTVE9SRVMgQVVUT01BVEVEIFNZU1RFTVMsIElOQy4KKwkJCQkxMzYwIEFEQU1TIFJPQUQKKwkJCQlCRU5TQUxFTSBQQSAxOTAyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNDAgICAoaGV4KQkJRUNDSQorMDBDMDQwICAgICAoYmFzZSAxNikJCUVDQ0kKKwkJCQkxNTA3MC1CIEFWRU5VRSBPRiBTQ0lFTkNFCisJCQkJU0FOIERJRUdPIENBIDkyMTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC00MSAgIChoZXgpCQlESUdJVEFMIFRSQU5TTUlTU0lPTiBTWVNURU1TCiswMEMwNDEgICAgIChiYXNlIDE2KQkJRElHSVRBTCBUUkFOU01JU1NJT04gU1lTVEVNUworCQkJCTQ4MzAgUklWRVIgR1JFRU4gUEFSS1dBWQorCQkJCURVTFVUSCBHQSAzMDEzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNDIgICAoaGV4KQkJREFUQUxVWCBDT1JQLgorMDBDMDQyICAgICAoYmFzZSAxNikJCURBVEFMVVggQ09SUC4KKwkJCQkyODM2IENFU1NOQSBEUklWRQorCQkJCVdJTkNIRVNURVIgVkEgMjI2MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTQzICAgKGhleCkJCVNUUkFUQUNPTQorMDBDMDQzICAgICAoYmFzZSAxNikJCVNUUkFUQUNPTQorCQkJCTE0MDAgUEFSS01PT1IgQVZFTlVFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTQ0ICAgKGhleCkJCUVNQ09NIENPUlBPUkFUSU9OCiswMEMwNDQgICAgIChiYXNlIDE2KQkJRU1DT00gQ09SUE9SQVRJT04KKwkJCQk4NDAgQVZFTlVFCisJCQkJUExBTk8gVFggNzUwNzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTQ1ICAgKGhleCkJCUlTT0xBVElPTiBTWVNURU1TLCBMVEQuCiswMEMwNDUgICAgIChiYXNlIDE2KQkJSVNPTEFUSU9OIFNZU1RFTVMsIExURC4KKwkJCQkyNiBTSVggUE9JTlQgUk9BRAorCQkJCVRPUk9OVE8sIE9OVEFSSU8KKwkJCQlDQU5BREEgTThaIDJXOQorCQkJCUNBTkFEQQorCiswMC1DMC00NiAgIChoZXgpCQlCbHVlIENoaXAgVGVjaG5vbG9neSBMdGQKKzAwQzA0NiAgICAgKGJhc2UgMTYpCQlCbHVlIENoaXAgVGVjaG5vbG9neSBMdGQKKwkJCQlDaG93bGV5IE9hayBMYW5lCisJCQkJVGF0dGVuaGFsbAorCQkJCUNoZXN0ZXIgQ2hlc2hpcmUgQ0gzIDlFWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLTQ3ICAgKGhleCkJCVVOSU1JQ1JPIFNZU1RFTVMsIElOQy4KKzAwQzA0NyAgICAgKGJhc2UgMTYpCQlVTklNSUNSTyBTWVNURU1TLCBJTkMuCisJCQkJNDQzODIgUy4gR1JJTU1FUiBCTFZELgorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTQ4ICAgKGhleCkJCUJBWSBURUNITklDQUwgQVNTT0NJQVRFUworMDBDMDQ4ICAgICAoYmFzZSAxNikJCUJBWSBURUNITklDQUwgQVNTT0NJQVRFUworCQkJCTIwMCBOLiBTRUNPTkQgU1RSRUVUCisJCQkJUC5PLiBCT1ggMzg3CisJCQkJQkFZIFNULiBMT1VJUyBNUyAzOTUyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNDkgICAoaGV4KQkJVS5TLiBST0JPVElDUywgSU5DLgorMDBDMDQ5ICAgICAoYmFzZSAxNikJCVUuUy4gUk9CT1RJQ1MsIElOQy4KKwkJCQk4MTAwIE5PUlRIIE1DQ09STUlDSyBCTFZELgorCQkJCVNLT0tJRSBJTCA2MDA3Ni0yOTk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC00QSAgIChoZXgpCQlHUk9VUCAyMDAwIEFHCiswMEMwNEEgICAgIChiYXNlIDE2KQkJR1JPVVAgMjAwMCBBRworCQkJCVAuTy4gQk9YIDMzMQorCQkJCVRBTk5BR0VSVEVOU1RSLiA5IENILTg2MzUgRFVSTlRFTgorCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDAtQzAtNEIgICAoaGV4KQkJQ1JFQVRJVkUgTUlDUk9TWVNURU1TCiswMEMwNEIgICAgIChiYXNlIDE2KQkJQ1JFQVRJVkUgTUlDUk9TWVNURU1TCisJCQkJOSwgQVZFTlVFIERVIENBTkFEQQorCQkJCVBBUkMgSElHSFRFQyA2IFouQS4gREUgQ09VUlRBQk9FVUYKKwkJCQk5MTk2NiBMRVMgVUxJUy0tLUZSQU5DCisJCQkJRlJBTkNFCisKKzAwLUMwLTRDICAgKGhleCkJCURFUEFSVE1FTlQgT0YgRk9SRUlHTiBBRkZBSVJTCiswMEMwNEMgICAgIChiYXNlIDE2KQkJREVQQVJUTUVOVCBPRiBGT1JFSUdOIEFGRkFJUlMKKwkJCQkmIFRSQURFCisJCQkJQURNSU5JU1RSQVRJVkUgQlVJTERJTkcgUEFSS0VTIFBMQUNFLCAgUAorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC1DMC00RCAgIChoZXgpCQlNSVRFQywgSU5DLgorMDBDMDREICAgICAoYmFzZSAxNikJCU1JVEVDLCBJTkMuCisJCQkJQlItS0FNRUlETyAxIEJVSUxESU5HCisJCQkJWi0zMy0xLCBLQU1FSURPLCBLT1VUT1UtS1UgVE9LWU8sIDEzNgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtNEUgICAoaGV4KQkJQ09NVFJPTCBDT1JQT1JBVElPTgorMDBDMDRFICAgICAoYmFzZSAxNikJCUNPTVRST0wgQ09SUE9SQVRJT04KKwkJCQkyNjc1IFBBVFRPTiBST0FECisJCQkJU1QuIFBBVUwgTU4gNTUxMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTRGICAgKGhleCkJCURFTEwgQ09NUFVURVIgQ09SUE9SQVRJT04KKzAwQzA0RiAgICAgKGJhc2UgMTYpCQlERUxMIENPTVBVVEVSIENPUlBPUkFUSU9OCisJCQkJMTgwNyBXRVNUIEJSQUtFUiBMQU5FLUJMREcuCisJCQkJQVVTVElOIFRYIDc4NzU4LTM2MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTUwICAgKGhleCkJCVRPWU8gREVOS0kgU0VJWk8gSy5LLgorMDBDMDUwICAgICAoYmFzZSAxNikJCVRPWU8gREVOS0kgU0VJWk8gSy5LLgorCQkJCTQtNi0zMiBISUdBU0hJS0FTSElXQUdBWUEKKwkJCQlFQklOQVNISQorCQkJCUtBTkFHQVdBIEpBUEFOIDI0My0wNAorCQkJCUpBUEFOCisKKzAwLUMwLTUxICAgKGhleCkJCUFEVkFOQ0VEIElOVEVHUkFUSU9OIFJFU0VBUkNICiswMEMwNTEgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgSU5URUdSQVRJT04gUkVTRUFSQ0gKKwkJCQkyMTg4IERFTCBGUkFOQ08gU1RSRUVUCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTUyICAgKGhleCkJCUJVUlItQlJPV04KKzAwQzA1MiAgICAgKGJhc2UgMTYpCQlCVVJSLUJST1dOCisJCQkJUC5PLiBCT1ggMTE0MDAKKwkJCQlUVUNTT04gQVogODU3MzQtMTQwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNTMgICAoaGV4KQkJQXNwZWN0IFNvZnR3YXJlIEluYy4KKzAwQzA1MyAgICAgKGJhc2UgMTYpCQlBc3BlY3QgU29mdHdhcmUgSW5jLgorCQkJCTYgVGVjaG5vbG9neSBQYXJrIERyaXZlCisJCQkJV2VzdGZvcmQgTUEgMDE4ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTU0ICAgKGhleCkJCU5FVFdPUksgUEVSSVBIRVJBTFMsIExURC4KKzAwQzA1NCAgICAgKGJhc2UgMTYpCQlORVRXT1JLIFBFUklQSEVSQUxTLCBMVEQuCisJCQkJNFRIIEZMT09SLCAxNyBCT1dBVEVSIFJELgorCQkJCVdFU1RNSU5TVEVSIElORFVTVFJJQUwgRVNUQVRFIExPTkRPTiBTRQorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1DMC01NSAgIChoZXgpCQlNT0RVTEFSIENPTVBVVElORyBURUNITk9MT0dJRVMKKzAwQzA1NSAgICAgKGJhc2UgMTYpCQlNT0RVTEFSIENPTVBVVElORyBURUNITk9MT0dJRVMKKwkJCQkyMzUyIE1BSU4gU1RSRUVUCisJCQkJQ09OQ09SRCBNQSAwMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNTYgICAoaGV4KQkJU09NRUxFQworMDBDMDU2ICAgICAoYmFzZSAxNikJCVNPTUVMRUMKKwkJCQlCUCA3MDEwIC0gOTUwNTAKKwkJCQlDRVJHWSBQT05UT0lTRSBDRURFWAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC1DMC01NyAgIChoZXgpCQlNWUNPIEVMRUNUUk9OSUNTCiswMEMwNTcgICAgIChiYXNlIDE2KQkJTVlDTyBFTEVDVFJPTklDUworCQkJCU1VU1NFUk9OR1JBTkQgMUcKKwkJCQlTLTc1NiBVUFBTQUxBCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLUMwLTU4ICAgKGhleCkJCURBVEFFWFBFUlQgQ09SUC4KKzAwQzA1OCAgICAgKGJhc2UgMTYpCQlEQVRBRVhQRVJUIENPUlAuCisJCQkJMTE1NiBTT05PUFJBIENPVVJUTi1LQU5HIFJELgorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNTkgICAoaGV4KQkJREVOU08gQ09SUE9SQVRJT04KKzAwQzA1OSAgICAgKGJhc2UgMTYpCQlERU5TTyBDT1JQT1JBVElPTgorCQkJCTEtMSwgU2hvd2EtY2hvLAorCQkJCUthcml5YS1zaGksIEFpY2hpIDQ0OC04NjYxCisJCQkJSkFQQU4KKworMDAtQzAtNUEgICAoaGV4KQkJU0VNQVBIT1JFIENPTU1VTklDQVRJT05TIENPUlAuCiswMEMwNUEgICAgIChiYXNlIDE2KQkJU0VNQVBIT1JFIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJMjE3IEhVTUJPTERUIENPVVJUCisJCQkJU1VOTllWQUxFIENBIDk0MDg5LTEzMDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTVCICAgKGhleCkJCU5FVFdPUktTIE5PUlRIV0VTVCwgSU5DLgorMDBDMDVCICAgICAoYmFzZSAxNikJCU5FVFdPUktTIE5PUlRIV0VTVCwgSU5DLgorCQkJCVAuTy4gQk9YIDExODgKKwkJCQlJU1NBUVVBSCBXQSA5ODAyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNUMgICAoaGV4KQkJRUxPTkVYIFBMQworMDBDMDVDICAgICAoYmFzZSAxNikJCUVMT05FWCBQTEMKKwkJCQkyIEFQU0xFWSBXQVkKKwkJCQlMT05ET04sIE5XMiA3SEYKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLTVEICAgKGhleCkJCUwmTiBURUNITk9MT0dJRVMKKzAwQzA1RCAgICAgKGJhc2UgMTYpCQlMJk4gVEVDSE5PTE9HSUVTCisJCQkJMjg5OSBBR09VUkEgUk9BRCAjMTk2CisJCQkJV0VTVExBS0UgVklMTEFHRSBDQSA5MTM2MS0zMjAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC01RSAgIChoZXgpCQlWQVJJLUxJVEUsIElOQy4KKzAwQzA1RSAgICAgKGJhc2UgMTYpCQlWQVJJLUxJVEUsIElOQy4KKwkJCQkyMDEgUkVHQUwgUk9XCisJCQkJREFMTEFTIFRYIDc1MjQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC01RiAgIChoZXgpCQlGSU5FLVBBTCBDT01QQU5ZIExJTUlURUQKKzAwQzA1RiAgICAgKGJhc2UgMTYpCQlGSU5FLVBBTCBDT01QQU5ZIExJTUlURUQKKwkJCQlSTS4gOSwgMTFGLCBLSU5HU0ZPUkQgSU5ELiBDVFIKKwkJCQkxMywgV0FORyBIT0kgUk9BRCBLT1dMT09OIEJBWSwgS0xOCisJCQkJSE9ORyBLT05HCisJCQkJSE9ORyBLT05HCisKKzAwLUMwLTYwICAgKGhleCkJCUlEIFNDQU5ESU5BVklBIEFTCiswMEMwNjAgICAgIChiYXNlIDE2KQkJSUQgU0NBTkRJTkFWSUEgQVMKKwkJCQlQLk8uIEJPWCA0MjI3CisJCQkJTi01MDI4IEJFUkdFTgorCQkJCU5PUldBWQorCQkJCU5PUldBWQorCiswMC1DMC02MSAgIChoZXgpCQlTT0xFQ1RFSyBDT1JQT1JBVElPTgorMDBDMDYxICAgICAoYmFzZSAxNikJCVNPTEVDVEVLIENPUlBPUkFUSU9OCisJCQkJNjM3MCBOQU5DWSBSSURHRSBEUi4tU1RFLiMxMDkKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTYyICAgKGhleCkJCUlNUFVMU0UgVEVDSE5PTE9HWQorMDBDMDYyICAgICAoYmFzZSAxNikJCUlNUFVMU0UgVEVDSE5PTE9HWQorCQkJCTIxMCBEQUhMT05FR0EgU1QuIzIwNAorCQkJCUNVTU1JTkcgR0EgMzAxMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTYzICAgKGhleCkJCU1PUk5JTkcgU1RBUiBURUNITk9MT0dJRVMsIElOQworMDBDMDYzICAgICAoYmFzZSAxNikJCU1PUk5JTkcgU1RBUiBURUNITk9MT0dJRVMsIElOQworCQkJCTE3NjAgWk9MTElOR0VSIFJPQUQKKwkJCQlDT0xVTUJVUyBPSCA0MzIyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNjQgICAoaGV4KQkJR0VORVJBTCBEQVRBQ09NTSBJTkQuIElOQy4KKzAwQzA2NCAgICAgKGJhc2UgMTYpCQlHRU5FUkFMIERBVEFDT01NIElORC4gSU5DLgorCQkJCVBBUksgUk9BRCBFWFRFTlNJT04KKwkJCQlQLk8uIEJPWCAxMjk5CisJCQkJTUlERExFQlVSWSBDVCAwNjc2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNjUgICAoaGV4KQkJU0NPUEUgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwQzA2NSAgICAgKGJhc2UgMTYpCQlTQ09QRSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTEwMCBPVElTIFNUUkVFVAorCQkJCU5PUlRIQk9STyBNQSAwMTUzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNjYgICAoaGV4KQkJRE9DVVBPSU5ULCBJTkMuCiswMEMwNjYgICAgIChiYXNlIDE2KQkJRE9DVVBPSU5ULCBJTkMuCisJCQkJMjcwMSBCQVlWSUVXIERSSVZFCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNjcgICAoaGV4KQkJVU5JVEVEIEJBUkNPREUgSU5EVVNUUklFUworMDBDMDY3ICAgICAoYmFzZSAxNikJCVVOSVRFRCBCQVJDT0RFIElORFVTVFJJRVMKKwkJCQkxMjI0MCBJTkRJQU4gQ1JFRUsgQ09VUlQKKwkJCQlCRUxUU1ZJTExFIE1EIDIwNzA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC02OCAgIChoZXgpCQlITUUgQ2xlYXItQ29tIExURC4KKzAwQzA2OCAgICAgKGJhc2UgMTYpCQlITUUgQ2xlYXItQ29tIExURC4KKwkJCQk3NDAwIEJlYWNoIERyaXZlCisJCQkJV2F0ZXJiZWFjaAorCQkJCUNhbWJyaWRnZXNoaXJlICBDQjI1IDlUUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLTY5ICAgKGhleCkJCUF4eGNlbGVyYSBCcm9hZGJhbmQgV2lyZWxlc3MKKzAwQzA2OSAgICAgKGJhc2UgMTYpCQlBeHhjZWxlcmEgQnJvYWRiYW5kIFdpcmVsZXNzCisJCQkJMTExIENhc3RpbGlhbiBEcml2ZQorCQkJCVNhbnRhIEJhcmJhcmEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTZBICAgKGhleCkJCVpBSE5FUi1FTEVLVFJJSyBHTUJIICYgQ08uIEtHCiswMEMwNkEgICAgIChiYXNlIDE2KQkJWkFITkVSLUVMRUtUUklLIEdNQkggJiBDTy4gS0cKKwkJCQlQLk8uIEJPWCAxODQ2CisJCQkJVEhVRVJJTkdFUiBTVFJBU1NFIDEyIERXLTg2NDAgS1JPTkFDSC1HVQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUMwLTZCICAgKGhleCkJCU9TSSBQTFVTIENPUlBPUkFUSU9OCiswMEMwNkIgICAgIChiYXNlIDE2KQkJT1NJIFBMVVMgQ09SUE9SQVRJT04KKwkJCQkyLTEtMjMgTkFLQU1FR1VSTworCQkJCU1FR1VSTy1LVSwgVE9LWU8gIDE1MworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtNkMgICAoaGV4KQkJU1ZFQyBDT01QVVRFUiBDT1JQLgorMDBDMDZDICAgICAoYmFzZSAxNikJCVNWRUMgQ09NUFVURVIgQ09SUC4KKwkJCQkzRiwgNTMxLTEgQ0hVTkcgQ0hFTkcgUkQuCisJCQkJSFNJTi1USUVOIENJVFksIFRBSVBFSQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1DMC02RCAgIChoZXgpCQlCT0NBIFJFU0VBUkNILCBJTkMuCiswMEMwNkQgICAgIChiYXNlIDE2KQkJQk9DQSBSRVNFQVJDSCwgSU5DLgorCQkJCTY0MDEgQ09OR1JFU1MgQVZFTlVFCisJCQkJQk9DQSBSQVRPTiBGTCAzMzQ4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNkUgICAoaGV4KQkJSEFGVCBURUNITk9MT0dZLCBJTkMuCiswMEMwNkUgICAgIChiYXNlIDE2KQkJSEFGVCBURUNITk9MT0dZLCBJTkMuCisJCQkJREFJTkktRE9ITyBCTERHLgorCQkJCTMtQ0hPTUUgMjQtNyBOSU5PTUlZQSBUU1VLVUJBIElCQVJBR0kKKwkJCQkzMDUgSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC02RiAgIChoZXgpCQlLT01BVFNVIExURC4KKzAwQzA2RiAgICAgKGJhc2UgMTYpCQlLT01BVFNVIExURC4KKwkJCQkyNTk3IFNISU5PTUlZQSBISVJBVFNVS0EtU0hJCisJCQkJS0FOQUdBV0EgMjU0CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC03MCAgIChoZXgpCQlTRUNUUkEgU0VDVVJFLVRSQU5TTUlTU0lPTiBBQgorMDBDMDcwICAgICAoYmFzZSAxNikJCVNFQ1RSQSBTRUNVUkUtVFJBTlNNSVNTSU9OIEFCCisJCQkJVEVLTklLUklOR0VOIDIKKwkJCQlTLTU4MyAzMCBMSU5LT1BJTkcKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtQzAtNzEgICAoaGV4KQkJQVJFQU5FWCBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBDMDcxICAgICAoYmFzZSAxNikJCUFSRUFORVggQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkzMzMzIE9DVEFWSVVTIERSSVZFIFVOSVQgQworCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC03MiAgIChoZXgpCQlLTlggTFRELgorMDBDMDcyICAgICAoYmFzZSAxNikJCUtOWCBMVEQuCisJCQkJSE9MTElOR1dPT0QgSE9VU0UKKwkJCQlXRVNUIENIRVZJTiBST0FEIE9UTEVZLCBXLiBZT1JLU0hJUkUKKwkJCQlMUzIxIDNIQSBVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLTczICAgKGhleCkJCVhFRElBIENPUlBPUkFUSU9OCiswMEMwNzMgICAgIChiYXNlIDE2KQkJWEVESUEgQ09SUE9SQVRJT04KKwkJCQkzMDEgQkFMTEFSRFZBTEUgU1RSRUVUCisJCQkJV0lMTUlOR1RPTiBNQSAwMTg4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNzQgICAoaGV4KQkJVE9ZT0RBIEFVVE9NQVRJQyBMT09NCiswMEMwNzQgICAgIChiYXNlIDE2KQkJVE9ZT0RBIEFVVE9NQVRJQyBMT09NCisJCQkJV09SS1MsIExURC4KKwkJCQkyLTEsIFRPWU9EQS1DSE8sIEtBUklZQS1TSEkgQUlDSEktS0VOCisJCQkJNDQ4IEpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtNzUgICAoaGV4KQkJWEFOVEUgQ09SUE9SQVRJT04KKzAwQzA3NSAgICAgKGJhc2UgMTYpCQlYQU5URSBDT1JQT1JBVElPTgorCQkJCTI1NTkgRU1PR0VORSBTVFJFRVQKKwkJCQlNT0JJTEUgQUwgMzY2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTc2ICAgKGhleCkJCUktREFUQSBJTlRFUk5BVElPTkFMIEEtUworMDBDMDc2ICAgICAoYmFzZSAxNikJCUktREFUQSBJTlRFUk5BVElPTkFMIEEtUworCQkJCTM1LTQzIFZBRFNUUlVQVkVKCisJCQkJREstMjg4MCBCQUdTVkFFUkQKKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswMC1DMC03NyAgIChoZXgpCQlEQUVXT08gVEVMRUNPTSBMVEQuCiswMEMwNzcgICAgIChiYXNlIDE2KQkJREFFV09PIFRFTEVDT00gTFRELgorCQkJCVBST0RVQ1RTIERFU0lHTiBERVBULiAxCisJCQkJUFJPRFVDVFMgREVTSUdOIENFTlRFUiBTT0NITy4gUC5PLiBCT1ggMQorCQkJCVNFT1VMIFNFT1VMIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUMwLTc4ICAgKGhleCkJCUNPTVBVVEVSIFNZU1RFTVMgRU5HSU5FRVJJTkcKKzAwQzA3OCAgICAgKGJhc2UgMTYpCQlDT01QVVRFUiBTWVNURU1TIEVOR0lORUVSSU5HCisJCQkJNDY3OTEgRlJFTU9OVCBCTFZELgorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTc5ICAgKGhleCkJCUZPTlNZUyBDTy4sTFRELgorMDBDMDc5ICAgICAoYmFzZSAxNikJCUZPTlNZUyBDTy4sTFRELgorCQkJCTIwOS01LCBZQU5HSkFFLCBTRU9DSE8KKwkJCQlTRU9VTCAgQTM3MTMwCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtQzAtN0EgICAoaGV4KQkJUFJJVkEgQi5WLgorMDBDMDdBICAgICAoYmFzZSAxNikJCVBSSVZBIEIuVi4KKwkJCQlQLk8uIEJPWCAxOAorCQkJCTI2NzggIFpHIERFIExJRVIgKFotSCkKKwkJCQlORVRIRVJMQU5EUworCiswMC1DMC03QiAgIChoZXgpCQlBU0NFTkQgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwQzA3QiAgICAgKGJhc2UgMTYpCQlBU0NFTkQgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxNzAxIEhBUkJPUiBCQVkgUEFSS1dBWQorCQkJCUFMQU1FREEgQ0EgOTQ1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTdDICAgKGhleCkJCUhJR0hURUNIIElORk9STUFUSU9OCiswMEMwN0MgICAgIChiYXNlIDE2KQkJSElHSFRFQ0ggSU5GT1JNQVRJT04KKwkJCQlTWVNURU0gTFRELgorCQkJCVVOSVQgNywgMi9GLCBQTyBMVU5HIENFTlRSRSAxMSBXQU5HIENISVUKKwkJCQlIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtQzAtN0QgICAoaGV4KQkJUklTQyBERVZFTE9QTUVOVFMgTFRELgorMDBDMDdEICAgICAoYmFzZSAxNikJCVJJU0MgREVWRUxPUE1FTlRTIExURC4KKwkJCQkxMTcgSEFURklFTEQgUk9BRAorCQkJCVNULiBBTEJBTlMsIEhFUlRTIEFMMTRKNQorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1DMC03RSAgIChoZXgpCQlLVUJPVEEgQ09SUE9SQVRJT04gRUxFQ1RST05JQworMDBDMDdFICAgICAoYmFzZSAxNikJCUtVQk9UQSBDT1JQT1JBVElPTiBFTEVDVFJPTklDCisJCQkJREVWSUNFIERFUFQuCisJCQkJMi0zNSwgSklOTVUtQ0hPLCBZQU8tQ0lUWSBPU0FLQSBQUkVGLgorCQkJCUpBUEFOICM1ODEKKwkJCQlKQVBBTgorCiswMC1DMC03RiAgIChoZXgpCQlOVVBPTiBDT01QVVRJTkcgQ09SUC4KKzAwQzA3RiAgICAgKGJhc2UgMTYpCQlOVVBPTiBDT01QVVRJTkcgQ09SUC4KKwkJCQkxMzkxIFdBUk5FUiBBVkUuLCAtU1VJVEUKKwkJCQlUVVNUSU4gQ0EgOTI2ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTgwICAgKGhleCkJCU5FVFNUQVIsIElOQy4KKzAwQzA4MCAgICAgKGJhc2UgMTYpCQlORVRTVEFSLCBJTkMuCisJCQkJQ0VEQVIgQlVTSU5FU1MgQ0VOVEVSCisJCQkJMTgwMSBFLiA3OVRIIFNUUkVFVAorCQkJCU1JTk5FQVBPTElTIE1OIDU1NDI1LTEyMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTgxICAgKGhleCkJCU1FVFJPREFUQSBMVEQuCiswMEMwODEgICAgIChiYXNlIDE2KQkJTUVUUk9EQVRBIExURC4KKwkJCQlCTEVOSEVJTSBIT1VTRQorCQkJCUNSQUJUUkVFIE9GRklDRSBWSUxMQUdFIEVWRVJTTEVZIFdBWSwgRUcKKwkJCQlUVzIwIDhSWSBUVzIwIDhSWSBFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtODIgICAoaGV4KQkJTU9PUkUgUFJPRFVDVFMgQ08uCiswMEMwODIgICAgIChiYXNlIDE2KQkJTU9PUkUgUFJPRFVDVFMgQ08uCisJCQkJU1VNTkVZVE9XTiBQSUtFCisJCQkJU1BSSU5HIEhPVVNFIFBBIDE5NDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC04MyAgIChoZXgpCQlUUkFDRSBNT1VOVEFJTiBQUk9EVUNUUywgSU5DLgorMDBDMDgzICAgICAoYmFzZSAxNikJCVRSQUNFIE1PVU5UQUlOIFBST0RVQ1RTLCBJTkMuCisJCQkJMTA0MCBFQVNUIEJST0tBVyBST0FECisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTg0ICAgKGhleCkJCURBVEEgTElOSyBDT1JQLiBMVEQuCiswMEMwODQgICAgIChiYXNlIDE2KQkJREFUQSBMSU5LIENPUlAuIExURC4KKwkJCQkzLTE1LTMgTUlET1JJQ0hPCisJCQkJVE9LT1JPWkFXQS1DSVRZIFNBSVRBTUEgIDM1OQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtODUgICAoaGV4KQkJRUxFQ1RST05JQ1MgRk9SIElNQUdJTkcsIElOQy4KKzAwQzA4NSAgICAgKGJhc2UgMTYpCQlFTEVDVFJPTklDUyBGT1IgSU1BR0lORywgSU5DLgorCQkJCTI4NTUgQ0FNUFVTIERSSVZFCisJCQkJU0FOIE1BVEVPIENBIDk0NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC04NiAgIChoZXgpCQlUSEUgTFlOSyBDT1JQT1JBVElPTgorMDBDMDg2ICAgICAoYmFzZSAxNikJCVRIRSBMWU5LIENPUlBPUkFUSU9OCisJCQkJMTAxIFFVRUVOUyBEUklWRQorCQkJCUtJTkcgT0YgUFJVU1NJQSBQQSAxOTQwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtODcgICAoaGV4KQkJVVVORVQgVEVDSE5PTE9HSUVTLCBJTkMuCiswMEMwODcgICAgIChiYXNlIDE2KQkJVVVORVQgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMzExMCBGQUlSVklFVyBQQVJLIERSLiAjNTcwCisJCQkJRkFMTFMgQ0hVUkNIIFZBIDIyMDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC04OCAgIChoZXgpCQlFS0YgRUxFS1RST05JSyBHTUJICiswMEMwODggICAgIChiYXNlIDE2KQkJRUtGIEVMRUtUUk9OSUsgR01CSAorCQkJCVBISUxJUFAtUkVJUy1TVFIuIDQKKwkJCQk0NzAwIEhBTU0KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1DMC04OSAgIChoZXgpCQlURUxJTkRVUyBESVNUUklCVVRJT04KKzAwQzA4OSAgICAgKGJhc2UgMTYpCQlURUxJTkRVUyBESVNUUklCVVRJT04KKwkJCQlHRUxERU5BQUtTRUJBQU4gMzM1CisJCQkJMzAwMSBIRVZFUkxFRQorCQkJCUJFTEdJVU0KKwkJCQlCRUxHSVVNCisKKzAwLUMwLThBICAgKGhleCkJCUxhdXRlcmJhY2ggR21iSAorMDBDMDhBICAgICAoYmFzZSAxNikJCUxhdXRlcmJhY2ggR21iSAorCQkJCUFsdGxhdWZzdHIuIDQwLAorCQkJCUhpP29laGVua2lyY2hlbi1TaWVnZXJ0c2JydW5uLCA4NTYzNQorCQkJCUdFUk1BTlkKKworMDAtQzAtOEIgICAoaGV4KQkJUklTUSBNT0RVTEFSIFNZU1RFTVMsIElOQy4KKzAwQzA4QiAgICAgKGJhc2UgMTYpCQlSSVNRIE1PRFVMQVIgU1lTVEVNUywgSU5DLgorCQkJCTM5ODk5IEJBTEVOVElORSBEUklWRS1TVEUgIzM3NQorCQkJCU5FV0FSSyBDQSA5NDU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtOEMgICAoaGV4KQkJUEVSRk9STUFOQ0UgVEVDSE5PTE9HSUVTLCBJTkMuCiswMEMwOEMgICAgIChiYXNlIDE2KQkJUEVSRk9STUFOQ0UgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMzE1IFNDSUVOQ0UgUEFSS1dBWQorCQkJCVJPQ0hFU1RFUiBOWSAxNDYyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtOEQgICAoaGV4KQkJVFJPTklYIFBST0RVQ1QgREVWRUxPUE1FTlQKKzAwQzA4RCAgICAgKGJhc2UgMTYpCQlUUk9OSVggUFJPRFVDVCBERVZFTE9QTUVOVAorCQkJCTQ5MDggRS4gTUNET1dFTEwgUkQuIFNURS4jMTAwCisJCQkJUEhPRU5JWCBBWiA4NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtOEUgICAoaGV4KQkJTkVUV09SSyBJTkZPUk1BVElPTiBURUNITk9MT0dZCiswMEMwOEUgICAgIChiYXNlIDE2KQkJTkVUV09SSyBJTkZPUk1BVElPTiBURUNITk9MT0dZCisJCQkJMTA0MzAgUy4gREUgQU5aQSBCTFZELgorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtOEYgICAoaGV4KQkJUGFuYXNvbmljIEVsZWN0cmljIFdvcmtzIENvLiwgTHRkLgorMDBDMDhGICAgICAoYmFzZSAxNikJCVBhbmFzb25pYyBFbGVjdHJpYyBXb3JrcyBDby4sIEx0ZC4KKwkJCQlUc3UtRmFjdG9yeQorCQkJCTE2NjggRnVqaWthdGEgVHN1LXNoaQorCQkJCU1pZS1rZW4gNTE0LTg1NTUgCisJCQkJSkFQQU4KKworMDAtQzAtOTAgICAoaGV4KQkJUFJBSU0gUy5SLkwuCiswMEMwOTAgICAgIChiYXNlIDE2KQkJUFJBSU0gUy5SLkwuCisJCQkJVklBIE1BQ0NBTkksIDE2OQorCQkJCTM4MTAwIFRSRU5UTyAoVE4pCisJCQkJSVRBTFkKKworMDAtQzAtOTEgICAoaGV4KQkJSkFCSUwgQ0lSQ1VJVCwgSU5DLgorMDBDMDkxICAgICAoYmFzZSAxNikJCUpBQklMIENJUkNVSVQsIElOQy4KKwkJCQkzMjI3NSBNQUxMWSBST0FECisJCQkJTUFESVNPTiBIRUlHSFRTIE1JIDQ4MDcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC05MiAgIChoZXgpCQlNRU5ORU4gTUVESUNBTCBJTkMuCiswMEMwOTIgICAgIChiYXNlIDE2KQkJTUVOTkVOIE1FRElDQUwgSU5DLgorCQkJCTEwMTIzIE1BSU4gU1RSRUVUCisJCQkJQ0xBUkVOQ0UgTlkgMTQwMzEtMjA5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtOTMgICAoaGV4KQkJQUxUQSBSRVNFQVJDSCBDT1JQLgorMDBDMDkzICAgICAoYmFzZSAxNikJCUFMVEEgUkVTRUFSQ0ggQ09SUC4KKwkJCQk2MTQgU09VVEggRkVERVJBTCBISUdIV0FZCisJCQkJREVFUkZJRUxEIEJFQUNIIEZMIDMzNDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC05NCAgIChoZXgpCQlWTVggSU5DLgorMDBDMDk0ICAgICAoYmFzZSAxNikJCVZNWCBJTkMuCisJCQkJMjExNSBPJ05FTCBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC05NSAgIChoZXgpCQlaTllYCiswMEMwOTUgICAgIChiYXNlIDE2KQkJWk5ZWAorCQkJCTQ4NDIxIE1pbG1vbnQgRHJpdmUKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC05NiAgIChoZXgpCQlUQU1VUkEgQ09SUE9SQVRJT04KKzAwQzA5NiAgICAgKGJhc2UgMTYpCQlUQU1VUkEgQ09SUE9SQVRJT04KKwkJCQlDT01NVU5JQ0FUSU9OIFNZU1RFTVMgRElWLgorCQkJCTE5LTQzIEhJR0FTSEkgT0laVU1JIDEgQ0hPTUUgTkVSSU1BLUtVLAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtOTcgICAoaGV4KQkJQVJDSElQRUwgU0EKKzAwQzA5NyAgICAgKGJhc2UgMTYpCQlBUkNISVBFTCBTQQorCQkJCTEgUlVFIERVIEJVTExPWgorCQkJCUYgNzQ5NDAgQU5ORUNZLUxFLVZJRVVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLUMwLTk4ICAgKGhleCkJCUNIVU5URVggRUxFQ1RST05JQyBDTy4sIExURC4KKzAwQzA5OCAgICAgKGJhc2UgMTYpCQlDSFVOVEVYIEVMRUNUUk9OSUMgQ08uLCBMVEQuCisJCQkJNkYuLCBOTy4yLCBBTExFWSA2LCBMQU5FIDIzNQorCQkJCVBBTyBDSElBTyBSRC4sIEhTSU4gVElFTiwgVEFJUEVJIEhTSUVOCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUMwLTk5ICAgKGhleCkJCVlPU0hJS0kgSU5EVVNUUklBTCBDTy4sTFRELgorMDBDMDk5ICAgICAoYmFzZSAxNikJCVlPU0hJS0kgSU5EVVNUUklBTCBDTy4sTFRELgorCQkJCTEtMzggTUFUU1VHQVNBS0kgMi1DSE9NRQorCQkJCVlPTkVaQVdBIFlBTUFHQVRBCisJCQkJOTkyIEpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtOUEgICAoaGV4KQkJUEhPVE9OSUNTIENPUlBPUkFUSU9OCiswMEMwOUEgICAgIChiYXNlIDE2KQkJUEhPVE9OSUNTIENPUlBPUkFUSU9OCisJCQkJMjk0MCBOT1JUSCBGSVJTVCBTVFJFRVQKKwkJCQlTQU4gSk9TRSBDQSA5NTEyMy0yMDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC05QiAgIChoZXgpCQlSRUxJQU5DRSBDT01NL1RFQywgUi1URUMKKzAwQzA5QiAgICAgKGJhc2UgMTYpCQlSRUxJQU5DRSBDT01NL1RFQywgUi1URUMKKwkJCQlTWVNURU1TIElOQy4KKwkJCQkyMTAwIFJFTElBTkNFIFBBUktXQVksICBNUyAyMgorCQkJCUJFREZPUkQgVFggNzYwMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTlDICAgKGhleCkJCUhJT0tJIEUuRS4gQ09SUE9SQVRJT04KKzAwQzA5QyAgICAgKGJhc2UgMTYpCQlISU9LSSBFLkUuIENPUlBPUkFUSU9OCisJCQkJODEgS29penVtaSwgVWVkYSwgTmFnYW5vCisJCQkJQ2hpeW9kYS1rdQorCQkJCVRva3lvICAzODYtMTE5MgorCQkJCUpBUEFOCisKKzAwLUMwLTlEICAgKGhleCkJCURJU1RSSUJVVEVEIFNZU1RFTVMgSU5UJ0wsIElOQworMDBDMDlEICAgICAoYmFzZSAxNikJCURJU1RSSUJVVEVEIFNZU1RFTVMgSU5UJ0wsIElOQworCQkJCTUzMSBXRVNUIFJPT1NFVkxFVCBSRCwgU1RFICMyCisJCQkJV0hFQVRPTiBJTCA2MDE4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtOUUgICAoaGV4KQkJQ0FDSEUgQ09NUFVURVJTLCBJTkMuCiswMEMwOUUgICAgIChiYXNlIDE2KQkJQ0FDSEUgQ09NUFVURVJTLCBJTkMuCisJCQkJNDY2MDAgTEFORElORyBQQVJLV0FZCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtOUYgICAoaGV4KQkJUVVBTlRBIENPTVBVVEVSLCBJTkMuCiswMEMwOUYgICAgIChiYXNlIDE2KQkJUVVBTlRBIENPTVBVVEVSLCBJTkMuCisJCQkJN0YuLCAxMTYsIEhPVS1LQU5HIFNULiwKKwkJCQlTSElILUxJTiBESVNULiBUQUlQRUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQzAtQTAgICAoaGV4KQkJQURWQU5DRSBNSUNSTyBSRVNFQVJDSCwgSU5DLgorMDBDMEEwICAgICAoYmFzZSAxNikJCUFEVkFOQ0UgTUlDUk8gUkVTRUFSQ0gsIElOQy4KKwkJCQkyMDQ1IENPUlBPUkFURSBDT1VSVAorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1BMSAgIChoZXgpCQlUT0tZTyBERU5TSEkgU0VLRUkgQ08uCiswMEMwQTEgICAgIChiYXNlIDE2KQkJVE9LWU8gREVOU0hJIFNFS0VJIENPLgorCQkJCTI1NS0xIFJFTktPSkksIFRBTUEtU0hJCisJCQkJVE9LWU8KKwkJCQlKQVBBTiAyMDYKKwkJCQlKQVBBTgorCiswMC1DMC1BMiAgIChoZXgpCQlJTlRFUk1FRElVTSBBL1MKKzAwQzBBMiAgICAgKGJhc2UgMTYpCQlJTlRFUk1FRElVTSBBL1MKKwkJCQlPRElOU1ZFSiAxOQorCQkJCURLLTI2MDAgR0xPU1RSVVAKKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswMC1DMC1BMyAgIChoZXgpCQlEVUFMIEVOVEVSUFJJU0VTIENPUlBPUkFUSU9OCiswMEMwQTMgICAgIChiYXNlIDE2KQkJRFVBTCBFTlRFUlBSSVNFUyBDT1JQT1JBVElPTgorCQkJCTlUSCBGTE9PUiA0OCBOQU4tS0FORyBST0FECisJCQkJU0VDLjMsIFRBSVBFSQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1DMC1BNCAgIChoZXgpCQlVTklHUkFGIE9ZCiswMEMwQTQgICAgIChiYXNlIDE2KQkJVU5JR1JBRiBPWQorCQkJCVJVVUtJTlRJRSAxOAorCQkJCTAyMzIwIEVTUDAwCisJCQkJRklOTEFORAorCQkJCUZJTkxBTkQKKworMDAtQzAtQTUgICAoaGV4KQkJRElDS0VOUyBEQVRBIFNZU1RFTVMKKzAwQzBBNSAgICAgKGJhc2UgMTYpCQlESUNLRU5TIERBVEEgU1lTVEVNUworCQkJCTExNzUgTk9SVEhNRUFET1cgUEtXWS1TVEUgIzE1MAorCQkJCVJPU1dFTEwgR0EgMzAwNzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUE2ICAgKGhleCkJCUVYSUNPTSBBVVNUUkFMSUEgUFRZLiBMVEQKKzAwQzBBNiAgICAgKGJhc2UgMTYpCQlFWElDT00gQVVTVFJBTElBIFBUWS4gTFRECisJCQkJNDQtNDYgTUFOREFSSU4gU1RSRUVUCisJCQkJVklMTEFXT09EIE5TVyAyMTYzCisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLUMwLUE3ICAgKGhleCkJCVNFRUwgTFRELgorMDBDMEE3ICAgICAoYmFzZSAxNikJCVNFRUwgTFRELgorCQkJCTMgWU9VTkcgU1FVQVJFCisJCQkJTElWSU5HU1RPTiAgRUg1NCAgOUJKCisJCQkJU0NPVExBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1DMC1BOCAgIChoZXgpCQlHVkMgQ09SUE9SQVRJT04KKzAwQzBBOCAgICAgKGJhc2UgMTYpCQlHVkMgQ09SUE9SQVRJT04KKwkJCQkxOTYxIENPTkNPVVJTRSBEUklWRS1TVEUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQTkgICAoaGV4KQkJQkFSUk9OIE1DQ0FOTiBMVEQuCiswMEMwQTkgICAgIChiYXNlIDE2KQkJQkFSUk9OIE1DQ0FOTiBMVEQuCisJCQkJQkVNQUMgSE9VU0UKKwkJCQlGSUZUSCBBVkVOVUUsIExFVENIV09SVEggSEVSVFMuLCBTRzYgMkhGCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1DMC1BQSAgIChoZXgpCQlTSUxJQ09OIFZBTExFWSBDT01QVVRFUgorMDBDMEFBICAgICAoYmFzZSAxNikJCVNJTElDT04gVkFMTEVZIENPTVBVVEVSCisJCQkJNDQxIE4uIFdISVNNQU4gUkQuLCBCTERHLiMxMworCQkJCU1ULiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1BQiAgIChoZXgpCQlUZWxjbyBTeXN0ZW1zLCBJbmMuCiswMEMwQUIgICAgIChiYXNlIDE2KQkJVGVsY28gU3lzdGVtcywgSW5jLgorCQkJCTE1IEJlcmtzaGlyZSBSb2FkCisJCQkJTWFuc2ZpZWxkLCBNQSAwMjA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQUMgICAoaGV4KQkJR0FNQklUIENPTVBVVEVSIENPTU1VTklDQVRJT05TCiswMEMwQUMgICAgIChiYXNlIDE2KQkJR0FNQklUIENPTVBVVEVSIENPTU1VTklDQVRJT05TCisJCQkJU09MVEFNIElORFVTVFJJQUwgUEFSSworCQkJCVAuTy4gQk9YIDEwNyBZT0tORUFNIDIwNjkyCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLUMwLUFEICAgKGhleCkJCU1BUkJFTiBDT01NVU5JQ0FUSU9OIFNZU1RFTVMKKzAwQzBBRCAgICAgKGJhc2UgMTYpCQlNQVJCRU4gQ09NTVVOSUNBVElPTiBTWVNURU1TCisJCQkJMSBSVUUgRFUgQk9JUyBDSEFMQU5ECisJCQkJTElTU0VTIDkxMDI5IEVWUlkgQ0VERVgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtQzAtQUUgICAoaGV4KQkJVE9XRVJDT00gQ08uIElOQy4gREJBIFBDIEhPVVNFCiswMEMwQUUgICAgIChiYXNlIDE2KQkJVE9XRVJDT00gQ08uIElOQy4gREJBIFBDIEhPVVNFCisJCQkJODQxIEUuIEFSVEVTSUEgQkxWRC4KKwkJCQlDQVJTT04gQ0EgOTA3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUFGICAgKGhleCkJCVRFS0xPR0lYIElOQy4KKzAwQzBBRiAgICAgKGJhc2UgMTYpCQlURUtMT0dJWCBJTkMuCisJCQkJMjEwMCBNRUFET1dWQUxFIEJPVUxFVkFSRAorCQkJCU1JU1NJU1NBVUdBLCBPTlRBUklPLAorCQkJCUNBTkFEQSBMNU4gN0o5CisJCQkJQ0FOQURBCisKKzAwLUMwLUIwICAgKGhleCkJCUdDQyBURUNITk9MT0dJRVMsSU5DLgorMDBDMEIwICAgICAoYmFzZSAxNikJCUdDQyBURUNITk9MT0dJRVMsSU5DLgorCQkJCTU4MCBXSU5URVIgU1RSRUVUCisJCQkJV0FMVEhBTSBNQSAwMjE1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQjEgICAoaGV4KQkJR0VOSVVTIE5FVCBDTy4KKzAwQzBCMSAgICAgKGJhc2UgMTYpCQlHRU5JVVMgTkVUIENPLgorCQkJCTRGLCBIQU5TT08gQi9EIDIxMC01CisJCQkJWUFOR0pBRS1ET05HLCBTRU9DSE8tR1UgU0VPVUwKKwkJCQlTT1VUSCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1DMC1CMiAgIChoZXgpCQlOT1JBTkQgQ09SUE9SQVRJT04KKzAwQzBCMiAgICAgKGJhc2UgMTYpCQlOT1JBTkQgQ09SUE9SQVRJT04KKwkJCQk1NTAgMk5EIFNUUkVFVCBTRQorCQkJCUNFREFSIFJBUElEUyBJQSA1MjQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQjMgICAoaGV4KQkJQ09NU1RBVCBEQVRBQ09NTSBDT1JQT1JBVElPTgorMDBDMEIzICAgICAoYmFzZSAxNikJCUNPTVNUQVQgREFUQUNPTU0gQ09SUE9SQVRJT04KKwkJCQkxNzIwIFNQRUNUUlVNIERSSVZFCisJCQkJTEFXUkVOQ0VWSUxMRSBHQSAzMDI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQjQgICAoaGV4KQkJTVlTT04gVEVDSE5PTE9HWSwgSU5DLgorMDBDMEI0ICAgICAoYmFzZSAxNikJCU1ZU09OIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkyRiwgTk8uIDMsIElORFVTVFJZIEUuIFJELklWCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksgSFNJTkNIVSwgKAorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQzAtQjUgICAoaGV4KQkJQ09SUE9SQVRFIE5FVFdPUksgU1lTVEVNUyxJTkMuCiswMEMwQjUgICAgIChiYXNlIDE2KQkJQ09SUE9SQVRFIE5FVFdPUksgU1lTVEVNUyxJTkMuCisJCQkJNTcxMSBTSVggRk9SS1MgUk9BRC0tU1RFICMzMDYKKwkJCQlSQUxFSUdIIE5DIDI3NjA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1CNiAgIChoZXgpCQlPdmVybGFuZCBTdG9yYWdlLCBJbmMuCiswMEMwQjYgICAgIChiYXNlIDE2KQkJT3ZlcmxhbmQgU3RvcmFnZSwgSW5jLgorCQkJCTQ4MjAgT3ZlcmxhbmQgQXZlbnVlCisJCQkJU2FuIERpZWdvIENBIDkyMTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1CNyAgIChoZXgpCQlBTUVSSUNBTiBQT1dFUiBDT05WRVJTSU9OIENPUlAKKzAwQzBCNyAgICAgKGJhc2UgMTYpCQlBTUVSSUNBTiBQT1dFUiBDT05WRVJTSU9OIENPUlAKKwkJCQkyNjcgQk9TVE9OIFJPQUQgIzIKKwkJCQlOT1JUSCBCSUxMRVJJQ0EgTUEgMDE4NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUI4ICAgKGhleCkJCUZSQVNFUidTIEhJTEwgTFRELgorMDBDMEI4ICAgICAoYmFzZSAxNikJCUZSQVNFUidTIEhJTEwgTFRELgorCQkJCTI3NTAyIFcuIEdJTEwgUk9BRAorCQkJCVAuTy4gQk9YIDE4OQorCQkJCU1PUlJJU1RPV04gQVogODUzNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUI5ICAgKGhleCkJCUZVTksgU09GVFdBUkUsIElOQy4KKzAwQzBCOSAgICAgKGJhc2UgMTYpCQlGVU5LIFNPRlRXQVJFLCBJTkMuCisJCQkJMjIyIFRISVJEIFNUUkVFVAorCQkJCUNBTUJSSURHRSBNQSAwMjE0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQkEgICAoaGV4KQkJTkVUVkFOVEFHRQorMDBDMEJBICAgICAoYmFzZSAxNikJCU5FVFZBTlRBR0UKKwkJCQkyMDEgQ09OVElORU5UQUwgQkxWRC4tU1RFLiMyMDEKKwkJCQlFTCBTRUNVTkRPIENBIDkwMjQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1CQiAgIChoZXgpCQlGT1JWQUwgQ1JFQVRJVkUsIElOQy4KKzAwQzBCQiAgICAgKGJhc2UgMTYpCQlGT1JWQUwgQ1JFQVRJVkUsIElOQy4KKwkJCQkzLTI3LTEyIEhPTkdPCisJCQkJQlVOS1lPLUtVIFRPS1lPICAxMTMKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLUJDICAgKGhleCkJCVRFTEVDT00gQVVTVFJBTElBL0NTU0MKKzAwQzBCQyAgICAgKGJhc2UgMTYpCQlURUxFQ09NIEFVU1RSQUxJQS9DU1NDCisJCQkJTE9DS0VEIEJBRyA4ODEyCisJCQkJU09VVEhDT0FTVCBNQUlMIENFTlRSRSAyNTIxIE4uUy5XLgorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC1DMC1CRCAgIChoZXgpCQlJTkVYIFRFQ0hOT0xPR0lFUywgSU5DLgorMDBDMEJEICAgICAoYmFzZSAxNikJCUlORVggVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMzM1MCBTQ09UVCBCTFZELgorCQkJCUJMREcuIzI5CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUJFICAgKGhleCkJCUFMQ0FURUwgLSBTRUwKKzAwQzBCRSAgICAgKGJhc2UgMTYpCQlBTENBVEVMIC0gU0VMCisJCQkJTE9SRU5aIFNUUi4KKwkJCQk3MDAwIFNUVVRUR0FSVCA0MAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUMwLUJGICAgKGhleCkJCVRFQ0hOT0xPR1kgQ09OQ0VQVFMsIExURC4KKzAwQzBCRiAgICAgKGJhc2UgMTYpCQlURUNITk9MT0dZIENPTkNFUFRTLCBMVEQuCisJCQkJR1JBTkdFIEVTVEFURQorCQkJCUNXTUJSQU4sIEdXRU5ULCBOUDQ0IDNYUgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtQzAgICAoaGV4KQkJU0hPUkUgTUlDUk9TWVNURU1TLCBJTkMuCiswMEMwQzAgICAgIChiYXNlIDE2KQkJU0hPUkUgTUlDUk9TWVNURU1TLCBJTkMuCisJCQkJMjMgUE9DQUhPTlRBUyBBVkVOVUUKKwkJCQlPQ0VBTlBPUlQgTkogMDc3NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUMxICAgKGhleCkJCVFVQUQvR1JBUEhJQ1MsIElOQy4KKzAwQzBDMSAgICAgKGJhc2UgMTYpCQlRVUFEL0dSQVBISUNTLCBJTkMuCisJCQkJTjYzIFcyMzA3NSBIV1kgNzQKKwkJCQlTVVNTRVggV0kgNTMwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUMyICAgKGhleCkJCUlORklOSVRFIE5FVFdPUktTIExURC4KKzAwQzBDMiAgICAgKGJhc2UgMTYpCQlJTkZJTklURSBORVRXT1JLUyBMVEQuCisJCQkJMTkgQlJPT0tTSURFIFJPQUQsIE9YSEVZCisJCQkJV0FURk9SRCwgSEVSVFMgIFdEMSA0QlcgRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtQzMgICAoaGV4KQkJQUNVU09OIENPTVBVVEVEIFNPTk9HUkFQSFkKKzAwQzBDMyAgICAgKGJhc2UgMTYpCQlBQ1VTT04gQ09NUFVURUQgU09OT0dSQVBIWQorCQkJCTEyMjAgQ0hBUkxFU1RPTiBST0FECisJCQkJUC5PLiBCT1ggNzM5MworCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwMzktNzM5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQzQgICAoaGV4KQkJQ09NUFVURVIgT1BFUkFUSU9OQUwKKzAwQzBDNCAgICAgKGJhc2UgMTYpCQlDT01QVVRFUiBPUEVSQVRJT05BTAorCQkJCVJFUVVJUkVNRU5UIEFOQUxZU1RTIExURAorCQkJCUNPUkFMIEhPVVNFLCAyNzRBIEhJR0ggU1RSRUVUIEFMREVSU0hPVCwKKwkJCQlHVTEyIDRMWiBHVTEyIDRMWiBFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtQzUgICAoaGV4KQkJU0lEIElORk9STUFUSUNBCiswMEMwQzUgICAgIChiYXNlIDE2KQkJU0lEIElORk9STUFUSUNBCisJCQkJUlVBIERSLiBHRVJBTERPIENBTVBPUyBNT1JFSVJBCisJCQkJMjQwIC0gNSBBTkRBUiBDRVAgMDQ1NzEtMDIwIFNBTyBQQVVMTyAtCisJCQkJQlJBWklMCisJCQkJQlJBWklMCisKKzAwLUMwLUM2ICAgKGhleCkJCVBFUlNPTkFMIE1FRElBIENPUlAuCiswMEMwQzYgICAgIChiYXNlIDE2KQkJUEVSU09OQUwgTUVESUEgQ09SUC4KKwkJCQkxLTctNyBNWSBCTERHLiBISVJBVFNVS0EKKwkJCQlTSElOQUdBV0EsICBUT0tZTyAxNDIKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLUM3ICAgKGhleCkJCVNQQVJLVFJVTSBNSUNST1NZU1RFTVMsIElOQy4KKzAwQzBDNyAgICAgKGJhc2UgMTYpCQlTUEFSS1RSVU0gTUlDUk9TWVNURU1TLCBJTkMuCisJCQkJMjg2MCBaQU5LRVIgUk9BRCwgIFNURS4jMjEwCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUM4ICAgKGhleCkJCU1JQ1JPIEJZVEUgUFRZLiBMVEQuCiswMEMwQzggICAgIChiYXNlIDE2KQkJTUlDUk8gQllURSBQVFkuIExURC4KKwkJCQkxOTcgU0hFUkJPVVJORSBSRC4KKwkJCQlNT05UTU9SRU5DWSBNRUxCT1VSTkUgVklDCisJCQkJQVVTVFJBTElBIDMwOTQKKwkJCQlBVVNUUkFMSUEKKworMDAtQzAtQzkgICAoaGV4KQkJRUxTQUcgQkFJTEVZIFBST0NFU1MKKzAwQzBDOSAgICAgKGJhc2UgMTYpCQlFTFNBRyBCQUlMRVkgUFJPQ0VTUworCQkJCUFVVE9NQVRJT04KKwkJCQkyOTgwMSBFVUNMSUQgQVZFTlVFIE1TLTNTMQorCQkJCVdJQ0tMSUZGRSBPSCA0NDA5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQ0EgICAoaGV4KQkJQUxGQSwgSU5DLgorMDBDMENBICAgICAoYmFzZSAxNikJCUFMRkEsIElOQy4KKwkJCQkxMS0xLCBJTkRVU1RSWSBFQVNUIFJPQUQgSVYKKwkJCQlTQ0lFTkNFIEJBU0VEIElORFVTVFJJQUwgUEFSSyBIU0lOQ0hVCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1DMC1DQiAgIChoZXgpCQlDT05UUk9MIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKzAwQzBDQiAgICAgKGJhc2UgMTYpCQlDT05UUk9MIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKwkJCQkyNSBTT1VUSCBTVFJFRVQKKwkJCQlIT1BLSU5UT04gTUEgMDE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUNDICAgKGhleCkJCVRFTEVTQ0lFTkNFUyBDTyBTWVNURU1TLCBJTkMuCiswMEMwQ0MgICAgIChiYXNlIDE2KQkJVEVMRVNDSUVOQ0VTIENPIFNZU1RFTVMsIElOQy4KKwkJCQkzNTEgTkVXIEFMQkFOWSBSRC4KKwkJCQlNT09SRVNUT1dOIE5KIDA4MDU3LTExNzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUNEICAgKGhleCkJCUNPTUVMVEEsIFMuQS4KKzAwQzBDRCAgICAgKGJhc2UgMTYpCQlDT01FTFRBLCBTLkEuCisJCQkJQVZEQS4gUEFSQyBURUNOT0xPR0lDLCA0CisJCQkJMDgyOTAgQ0VSREFOWU9MQSBERUwgVkFMTEVTIEJBUkNFTE9OQQorCQkJCVNQQUlOCisJCQkJU1BBSU4KKworMDAtQzAtQ0UgICAoaGV4KQkJQ0VJIFNZU1RFTVMgJiBFTkdJTkVFUklORyBQVEUKKzAwQzBDRSAgICAgKGJhc2UgMTYpCQlDRUkgU1lTVEVNUyAmIEVOR0lORUVSSU5HIFBURQorCQkJCUJMSyA3MyAjMDItMTggQVlFUiBSQUpBSCBDUkVTQworCQkJCUFZRVIgUkFKQUggSU5EVVNUUklBTCBFU1RBVEUKKwkJCQlTSU5HQVBPUkUgMDUxMworCQkJCVNJTkdBUE9SRQorCiswMC1DMC1DRiAgIChoZXgpCQlJTUFUUkFOIFZPSU1BIE9ZCiswMEMwQ0YgICAgIChiYXNlIDE2KQkJSU1BVFJBTiBWT0lNQSBPWQorCQkJCUlWTworCQkJCVAuTy4gQk9YIDM0MCAwMjE1MSBFU1BPTworCQkJCUZJTkxBTkQKKwkJCQlGSU5MQU5ECisKKzAwLUMwLUQwICAgKGhleCkJCVJBVE9DIFNZU1RFTSBJTkMuCiswMEMwRDAgICAgIChiYXNlIDE2KQkJUkFUT0MgU1lTVEVNIElOQy4KKwkJCQlBU0FISSBOQU1CQSBCTERHLgorCQkJCTEtNi0xNCBTSElLSVRTVSBISUdBU0hJIE5BTklXQUtVIE9TQUtBIEMKKwkJCQk1NTYgSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC1EMSAgIChoZXgpCQlDT01UUkVFIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKzAwQzBEMSAgICAgKGJhc2UgMTYpCQlDT01UUkVFIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKwkJCQk1Ri03LCBOTy4gMSwgRlUtSFNJTkcgTk9SVEggUkQKKwkJCQlUQUlQRUkKKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJQ0hJTkEKKworMDAtQzAtRDIgICAoaGV4KQkJU1lOVEVMTEVDVCwgSU5DLgorMDBDMEQyICAgICAoYmFzZSAxNikJCVNZTlRFTExFQ1QsIElOQy4KKwkJCQkxNTgxMCBOLiAyOFRIIEFWRU5VRQorCQkJCVBIT0VOSVggQVogODUwMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUQzICAgKGhleCkJCU9MWU1QVVMgSU1BR0UgU1lTVEVNUywgSU5DLgorMDBDMEQzICAgICAoYmFzZSAxNikJCU9MWU1QVVMgSU1BR0UgU1lTVEVNUywgSU5DLgorCQkJCTE1MjcxIEJBUlJBTkNBIFBBUktXQVkKKwkJCQlJUlZJTkUgQ0EgOTI3MTgtMjIwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRDQgICAoaGV4KQkJQVhPTiBORVRXT1JLUywgSU5DLgorMDBDMEQ0ICAgICAoYmFzZSAxNikJCUFYT04gTkVUV09SS1MsIElOQy4KKwkJCQkxMDQgU1BSVUNFIFNUUkVFVAorCQkJCVdBVEVSVE9XTiBNQSAwMjE3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRDUgICAoaGV4KQkJV2VyYmVhZ2VudHVyIEp1cmdlbiBTaWViZXJ0CiswMEMwRDUgICAgIChiYXNlIDE2KQkJV2VyYmVhZ2VudHVyIEp1cmdlbiBTaWViZXJ0CisJCQkJSW0gS2xvc3RlcmdhcnRlbiA4CisJCQkJRC01MDMyMSBCcnVobCAgCisJCQkJR0VSTUFOWQorCiswMC1DMC1ENiAgIChoZXgpCQlKMSBTWVNURU1TLCBJTkMuCiswMEMwRDYgICAgIChiYXNlIDE2KQkJSjEgU1lTVEVNUywgSU5DLgorCQkJCTMgRFVOV09PRFkgUEFSSy1TVEUuIzEwMworCQkJCUFUTEFOVEEgR0EgMzAzMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUQ3ICAgKGhleCkJCVRBSVdBTiBUUkFESU5HIENFTlRFUiBEQkEKKzAwQzBENyAgICAgKGJhc2UgMTYpCQlUQUlXQU4gVFJBRElORyBDRU5URVIgREJBCisJCQkJVFRDIENPTVBVVEVSIFBST0RVQ1RTCisJCQkJMzI0NCBOLiBTS1lXQVkgQ0lSQ0xFICMxMDIKKwkJCQlJUlZJTkcgVFggNzUwMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUQ4ICAgKGhleCkJCVVOSVZFUlNBTCBEQVRBIFNZU1RFTVMKKzAwQzBEOCAgICAgKGJhc2UgMTYpCQlVTklWRVJTQUwgREFUQSBTWVNURU1TCisJCQkJNTAwMCBCUkFERk9SRCBEUklWRQorCQkJCUhVTlRTVklMTEUgQUwgMzU4MDUtMTk5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRDkgICAoaGV4KQkJUVVJTlRFIE5FVFdPUksgQ09ORklERU5USUFMSVRZCiswMEMwRDkgICAgIChiYXNlIDE2KQkJUVVJTlRFIE5FVFdPUksgQ09ORklERU5USUFMSVRZCisJCQkJRVFVSVBNRU5UIElOQy4KKwkJCQkyMDcgLSAxMjEgRElNREFTIFNUUkVFVCBFQVNUIEJFTExFVklMTEUsCisJCQkJQ0FOQURBIEs4TiAxQzMKKwkJCQlDQU5BREEKKworMDAtQzAtREEgICAoaGV4KQkJTklDRSBTWVNURU1TIExURC4KKzAwQzBEQSAgICAgKGJhc2UgMTYpCQlOSUNFIFNZU1RFTVMgTFRELgorCQkJCTMgVEVWVU9UIEhBJ0FSRVRaIFNUCisJCQkJVEVMIEFWSVYgIDY5NTQ2CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLUMwLURCICAgKGhleCkJCUlQQyBDT1JQT1JBVElPTiAoUFRFKSBMVEQuCiswMEMwREIgICAgIChiYXNlIDE2KQkJSVBDIENPUlBPUkFUSU9OIChQVEUpIExURC4KKwkJCQkxMjIgRVVOT1MgQVZFLiwgNyAjMDUtMTAKKwkJCQlTSU5HQVBPUkUgMTQ0MAorCQkJCVNJTkdBUE9SRQorCiswMC1DMC1EQyAgIChoZXgpCQlFT1MgVEVDSE5PTE9HSUVTLCBJTkMuCiswMEMwREMgICAgIChiYXNlIDE2KQkJRU9TIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTM5NDUgRlJFRURPTSBDSVJDTEUsIFNURS4jNzcwCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUREICAgKGhleCkJCVFMb2dpYyBDb3Jwb3JhdGlvbgorMDBDMEREICAgICAoYmFzZSAxNikJCVFMb2dpYyBDb3Jwb3JhdGlvbgorCQkJCTYzMjEgQnVyeSBEci4KKwkJCQlFZGVuIFByYXJpZSBNTiA1NTM0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtREUgICAoaGV4KQkJWkNPTU0sIElOQy4KKzAwQzBERSAgICAgKGJhc2UgMTYpCQlaQ09NTSwgSU5DLgorCQkJCTEwNTAgQyBFQVNUIERVQU5FIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtREYgICAoaGV4KQkJS1lFIFN5c3RlbXMgQ29ycC4KKzAwQzBERiAgICAgKGJhc2UgMTYpCQlLWUUgU3lzdGVtcyBDb3JwLgorCQkJCU5vLiA0OTIgU2VjIDUsIENodW5nIEhzaW4gUm9hZAorCQkJCVRhaXBlaSBIc2llbiAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUMwLUUwICAgKGhleCkJCURTQyBDT01NVU5JQ0FUSU9OIENPUlAuCiswMEMwRTAgICAgIChiYXNlIDE2KQkJRFNDIENPTU1VTklDQVRJT04gQ09SUC4KKwkJCQkxMDAwIENPSVQgUk9BRCwgIE1TI0FEVlAgMworCQkJCVBMQU5PIFRYIDc1MDc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1FMSAgIChoZXgpCQlTT05JQyBTT0xVVElPTlMKKzAwQzBFMSAgICAgKGJhc2UgMTYpCQlTT05JQyBTT0xVVElPTlMKKwkJCQkxODkxIEUuIEZSQU5DSVNDTyBCTFZELgorCQkJCVNBTiBSQUZBRUwgQ0EgOTQ5MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUUyICAgKGhleCkJCUNBTENPTVAsIElOQy4KKzAwQzBFMiAgICAgKGJhc2UgMTYpCQlDQUxDT01QLCBJTkMuCisJCQkJMjQxMSBXLiBMQVBBTE1BIEFWRU5VRQorCQkJCVAuTy4gQk9YIDMyNTAsIE1TMjIKKwkJCQlBTkFIRUlNIENBIDkyODAzLTMyNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUUzICAgKGhleCkJCU9TSVRFQ0ggQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwQzBFMyAgICAgKGJhc2UgMTYpCQlPU0lURUNIIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJNjc5IFNPVVRIR0FURSBEUklWRQorCQkJCUdVRUxQSCwgT05UQVJJTworCQkJCUNBTkFEQSBOMUcgNFMyCisJCQkJQ0FOQURBCisKKzAwLUMwLUU0ICAgKGhleCkJCVNJRU1FTlMgQlVJTERJTkcKKzAwQzBFNCAgICAgKGJhc2UgMTYpCQlTSUVNRU5TIEJVSUxESU5HCisJCQkJVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTAwMCBERUVSRklFTEQgUEFSS1dBWQorCQkJCUJVRkZBTE8gR1JPVkUgSUwgNjAwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUU1ICAgKGhleCkJCUdFU1BBQywgUy5BLgorMDBDMEU1ICAgICAoYmFzZSAxNikJCUdFU1BBQywgUy5BLgorCQkJCUNIRU1JTiBERVMgQVVMWCAxOAorCQkJCUNILTEyMjggR0VORVZBCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC1DMC1FNiAgIChoZXgpCQlWZXJpbGluayBDb3Jwb3JhdGlvbgorMDBDMEU2ICAgICAoYmFzZSAxNikJCVZlcmlsaW5rIENvcnBvcmF0aW9uCisJCQkJMTI3IEpldHBsZXggQ2lyY2xlCisJCQkJTWFkaXNvbiBBTCAzNTc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRTcgICAoaGV4KQkJRklCRVJEQVRBIEFCCiswMEMwRTcgICAgIChiYXNlIDE2KQkJRklCRVJEQVRBIEFCCisJCQkJUC5PLiBCT1ggMjAwOTUKKwkJCQlTLTE2MTAyIEJST01NQQorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC1DMC1FOCAgIChoZXgpCQlQTEVYQ09NLCBJTkMuCiswMEMwRTggICAgIChiYXNlIDE2KQkJUExFWENPTSwgSU5DLgorCQkJCTY1IE1PUkVMQU5EIFJPQURFTlVZRQorCQkJCVNJTUkgVkFMTEVZIENBIDkzMDY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1FOSAgIChoZXgpCQlPQUsgU09MVVRJT05TLCBMVEQuCiswMEMwRTkgICAgIChiYXNlIDE2KQkJT0FLIFNPTFVUSU9OUywgTFRELgorCQkJCUJST0FEV0FZIEhPVVNFCisJCQkJMTQ5LTE1MSBTVCBORU9UUyBSRCwgSEFSRFdJQ0sgQ0FNQlJJREdFCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLUVBICAgKGhleCkJCUFSUkFZIFRFQ0hOT0xPR1kgTFRELgorMDBDMEVBICAgICAoYmFzZSAxNikJCUFSUkFZIFRFQ0hOT0xPR1kgTFRELgorCQkJCTE0NSBGUklNTEVZIFJPQUQKKwkJCQlDQU1CRVJMRVksIFNVUlJFWQorCQkJCUVOR0xBTkQgR1UxNSAyUFMKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1DMC1FQiAgIChoZXgpCQlTRUggQ09NUFVURVJURUNITklLIEdNQkgKKzAwQzBFQiAgICAgKGJhc2UgMTYpCQlTRUggQ09NUFVURVJURUNITklLIEdNQkgKKwkJCQlTdWVkcmluZyAxMQorCQkJCVAuTy4gQk9YIDE0MDgyOSBELTMzNjI4IEJpZWxlZmVsZAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUMwLUVDICAgKGhleCkJCURBVVBISU4gVEVDSE5PTE9HWQorMDBDMEVDICAgICAoYmFzZSAxNikJCURBVVBISU4gVEVDSE5PTE9HWQorCQkJCTQ1MCBFSVNFTkhPV0VSIExBTkUgTk9SVEgKKwkJCQlMT01CQVJEIElMIDYwMTQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1FRCAgIChoZXgpCQlVUyBBUk1ZIEVMRUNUUk9OSUMKKzAwQzBFRCAgICAgKGJhc2UgMTYpCQlVUyBBUk1ZIEVMRUNUUk9OSUMKKwkJCQlQUk9WSU5HIEdST1VORAorCQkJCTE4MzggUEFTRU8gU0FOIExVSVMKKwkJCQlTSUVSUkEgVklTVEEgQVogODU2MzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUVFICAgKGhleCkJCUtZT0NFUkEgQ09SUE9SQVRJT04KKzAwQzBFRSAgICAgKGJhc2UgMTYpCQlLWU9DRVJBIENPUlBPUkFUSU9OCisJCQkJMi0xNC05IFRBTUFHQVdBREFJCisJCQkJU0VUQUdBWUEtS1UsIFRPS1lPCisJCQkJMTU4IEpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtRUYgICAoaGV4KQkJQUJJVCBDT1JQT1JBVElPTgorMDBDMEVGICAgICAoYmFzZSAxNikJCUFCSVQgQ09SUE9SQVRJT04KKwkJCQkyOS0xMSBISVJBT0tBLUNITworCQkJCUhBQ0hJT1VKSS1TSEkgVE9LWU8KKwkJCQkxOTIgSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC1GMCAgIChoZXgpCQlLSU5HU1RPTiBURUNITk9MT0dZIENPUlAuCiswMEMwRjAgICAgIChiYXNlIDE2KQkJS0lOR1NUT04gVEVDSE5PTE9HWSBDT1JQLgorCQkJCTE3NjAwIE5FV0hPUEUgU1RSRUVUCisJCQkJRk9VTlRBSU4gVkFMTEVZIENBIDkyNzA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1GMSAgIChoZXgpCQlTSElOS08gRUxFQ1RSSUMgQ08uLCBMVEQuCiswMEMwRjEgICAgIChiYXNlIDE2KQkJU0hJTktPIEVMRUNUUklDIENPLiwgTFRELgorCQkJCUNPTVBVVEVSIFNZU1RFTSBESVZJU0lPTgorCQkJCTE1MCBNT1RPWUFTSElLSSwgU0FOWUEtQ0hPIFRPWU9IQVNISS1TSEkKKwkJCQlKQVBBTiA0NDEtMzEKKwkJCQlKQVBBTgorCiswMC1DMC1GMiAgIChoZXgpCQlUUkFOU0lUSU9OIE5FVFdPUktTCiswMEMwRjIgICAgIChiYXNlIDE2KQkJVFJBTlNJVElPTiBORVRXT1JLUworCQkJCTY0NzUgQ0lUWSBXRVNUIFBBUktXQVkKKwkJCQlNSU5ORUFQT0xJUyBNTiA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRjMgICAoaGV4KQkJTkVUV09SSyBDT01NVU5JQ0FUSU9OUyBDT1JQLgorMDBDMEYzICAgICAoYmFzZSAxNikJCU5FVFdPUksgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQk1NTAxIEdSRUVOIFZBTExFWSBEUklWRQorCQkJCUJMT09NSU5HVE9OIE1OIDU1NDM3LTEwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUY0ICAgKGhleCkJCUlOVEVSTElOSyBTWVNURU0gQ08uLCBMVEQuCiswMEMwRjQgICAgIChiYXNlIDE2KQkJSU5URVJMSU5LIFNZU1RFTSBDTy4sIExURC4KKwkJCQlJTlRFUkxJTksgQi9ELCA0NzYtMjAKKwkJCQlTRU9HWU8tRE9ORywgTUFQTy1LVSBTRU9VTAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUMwLUY1ICAgKGhleCkJCU1FVEFDT01QLCBJTkMuCiswMEMwRjUgICAgIChiYXNlIDE2KQkJTUVUQUNPTVAsIElOQy4KKwkJCQkxMDk4OSBWSUEgRlJPTlRFUkEKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUY2ICAgKGhleCkJCUNFTEFOIFRFQ0hOT0xPR1kgSU5DLgorMDBDMEY2ICAgICAoYmFzZSAxNikJCUNFTEFOIFRFQ0hOT0xPR1kgSU5DLgorCQkJCU5PLiAxMDEsIE1JTi1IU0lBTkcgU1QuCisJCQkJSFNJTi1DSFUgQ0lUWQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJQ0hJTkEKKworMDAtQzAtRjcgICAoaGV4KQkJRU5HQUdFIENPTU1VTklDQVRJT04sIElOQy4KKzAwQzBGNyAgICAgKGJhc2UgMTYpCQlFTkdBR0UgQ09NTVVOSUNBVElPTiwgSU5DLgorCQkJCTkwNTMgU09RVUVMIERSSVZFCisJCQkJQVBUT1MgQ0EgOTUwMDMtNDAzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRjggICAoaGV4KQkJQUJPVVQgQ09NUFVUSU5HIElOQy4KKzAwQzBGOCAgICAgKGJhc2UgMTYpCQlBQk9VVCBDT01QVVRJTkcgSU5DLgorCQkJCVAuTy4gQk9YIDE3MgorCQkJCUJFTE1PTlQgTUEgMDIxNzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUY5ICAgKGhleCkJCUVtZXJzb24gTmV0d29yayBQb3dlcgorMDBDMEY5ICAgICAoYmFzZSAxNikJCUVtZXJzb24gTmV0d29yayBQb3dlcgorCQkJCTI5MDAgUy4gRGlhYmxvIFdheSBTdWl0ZSAxOTAKKwkJCQlUZW1wZSBBWiA4NTI4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRkEgICAoaGV4KQkJQ0FOQVJZIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEMwRkEgICAgIChiYXNlIDE2KQkJQ0FOQVJZIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTg1MSBaQU5LRVIgUk9BRAorCQkJCVNBTiBKT1NFIENBIDk1MTEyLTQyMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUZCICAgKGhleCkJCUFEVkFOQ0VEIFRFQ0hOT0xPR1kgTEFCUworMDBDMEZCICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIFRFQ0hOT0xPR1kgTEFCUworCQkJCTIyMTAwIEJPVEhFTEwgSElHSFdBWSBTLkUuCisJCQkJUC5PLiBCT1ggMzAwMworCQkJCUJPVEhFTEwgV0EgOTgwNDEtMzAwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRkMgICAoaGV4KQkJRUxBU1RJQyBSRUFMSVRZLCBJTkMuCiswMEMwRkMgICAgIChiYXNlIDE2KQkJRUxBU1RJQyBSRUFMSVRZLCBJTkMuCisJCQkJOTI1IFNURVdBUlQgU1RSRUVUCisJCQkJTUFESVNPTiBXSSA1MzcxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRkQgICAoaGV4KQkJUFJPU1VNCiswMEMwRkQgICAgIChiYXNlIDE2KQkJUFJPU1VNCisJCQkJMTIgUlVFIFNBREktQ0FSTk9UCisJCQkJOTQzNzAgIE5PSVNFQVUKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtQzAtRkUgICAoaGV4KQkJQVBURUMgQ09NUFVURVIgU1lTVEVNUywgSU5DLgorMDBDMEZFICAgICAoYmFzZSAxNikJCUFQVEVDIENPTVBVVEVSIFNZU1RFTVMsIElOQy4KKwkJCQlQLk8uIEJPWCA2NzUwCisJCQkJUE9SVExBTkQgT1IgOTcyMjgtNjc1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRkYgICAoaGV4KQkJRE9UIEhJTEwgU1lTVEVNUyBDT1JQT1JBVElPTgorMDBDMEZGICAgICAoYmFzZSAxNikJCURPVCBISUxMIFNZU1RFTVMgQ09SUE9SQVRJT04KKwkJCQk2MzA1IEVsIENhbWlubyBSZWFsCisJCQkJQ2FybHNiYWQgQ0EgOTIwMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUNCLUJEICAgKGhleCkJCUNhbWJyaWRnZSBCcm9hZGJhbmQgTmV0d29ya3MgTHRkLgorMDBDQkJEICAgICAoYmFzZSAxNikJCUNhbWJyaWRnZSBCcm9hZGJhbmQgTmV0d29ya3MgTHRkLgorCQkJCVNlbHd5biBIb3VzZSBDYW1icmlkZ2UgQnVzaW5lc3MgUGFyaworCQkJCUNhbWJyaWRnZSBCdXNpbmVzcyBQYXJrCisJCQkJQ2FtYnJpZGdlICBDQjQgMFdaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQ0YtMUMgICAoaGV4KQkJQ09NTVVOSUNBVElPTiBNQUNISU5FUlkgQ09SUC4KKzAwQ0YxQyAgICAgKGJhc2UgMTYpCQlDT01NVU5JQ0FUSU9OIE1BQ0hJTkVSWSBDT1JQLgorCQkJCTEyMjYgQU5BQ0FQQQorCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTAwICAgKGhleCkJCUZFUlJBTiBTQ0lFTlRJRklDLCBJTkMuCiswMEQwMDAgICAgIChiYXNlIDE2KQkJRkVSUkFOIFNDSUVOVElGSUMsIElOQy4KKwkJCQkxMTU1OCBTT1JSRU5UTyBWQUxMRVkgUk9BRAorCQkJCVNVSVRFICAjMQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMDEgICAoaGV4KQkJVlNUIFRFQ0hOT0xPR0lFUywgSU5DLgorMDBEMDAxICAgICAoYmFzZSAxNikJCVZTVCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkxMjUgTkFHT0cgUEFSSworCQkJCUFDVE9OIE1BIDAxNzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0wMiAgIChoZXgpCQlESVRFQ0ggQ09SUE9SQVRJT04KKzAwRDAwMiAgICAgKGJhc2UgMTYpCQlESVRFQ0ggQ09SUE9SQVRJT04KKwkJCQk4MjUgRUFTVCBNSURETEVGSUVMRCBSRAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTAzICAgKGhleCkJCUNPTURBIEVOVEVSUFJJU0VTIENPUlAuCiswMEQwMDMgICAgIChiYXNlIDE2KQkJQ09NREEgRU5URVJQUklTRVMgQ09SUC4KKwkJCQkyRiwgTk8uIDUwMS0xOCwgQ0hVTkdDSEVOIFJPQUQKKwkJCQlIU0lOVElFTiwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBST0MKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLTA0ICAgKGhleCkJCVBFTlRBQ09NIExURC4KKzAwRDAwNCAgICAgKGJhc2UgMTYpCQlQRU5UQUNPTSBMVEQuCisJCQkJOCBIQVNBRE5BT1QgU1RSRUVUCisJCQkJUC5PLiBCT1ggMTIxMDkgSEVSWkxJQSA0NjczMworCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC1EMC0wNSAgIChoZXgpCQlaSFMgWkVJVE1BTkFHRU1FTlRTWVNURU1FCiswMEQwMDUgICAgIChiYXNlIDE2KQkJWkhTIFpFSVRNQU5BR0VNRU5UU1lTVEVNRQorCQkJCUhBUkQtVU5EIFNPRlRXQVJFIEdNQkgKKwkJCQlLUkVVWkJFUkdFUiBSSU5HIDU2IDY1MjA1IFdJRVNCQURFTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLTA2ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDAwNiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTA3ICAgKGhleCkJCU1JQyBBU1NPQ0lBVEVTLCBJTkMuCiswMEQwMDcgICAgIChiYXNlIDE2KQkJTUlDIEFTU09DSUFURVMsIElOQy4KKwkJCQkxNTEwLTEsIEtBSURPS0kKKwkJCQlUQU1BLCBUT0tZTworCQkJCUpBUEFOIEpBUEFOIDIwNi0wMDEyCisJCQkJSkFQQU4KKworMDAtRDAtMDggICAoaGV4KQkJTUFDVEVMTCBDT1JQT1JBVElPTgorMDBEMDA4ICAgICAoYmFzZSAxNikJCU1BQ1RFTEwgQ09SUE9SQVRJT04KKwkJCQk3MDAwIENBTUVST04gUk9BRAorCQkJCUFVU1RJTiBUWCA3ODc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMDkgICAoaGV4KQkJSFNJTkcgVEVDSC4gRU5URVJQUklTRSBDTy4gTFRECiswMEQwMDkgICAgIChiYXNlIDE2KQkJSFNJTkcgVEVDSC4gRU5URVJQUklTRSBDTy4gTFRECisJCQkJTk8uMiwgTEFORSAxMjgsIFNFQy4gMgorCQkJCUNIVU5HIFNIQU4gTi4gUkQuIFRBSVBFSQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC0wQSAgIChoZXgpCQlMQU5BQ0NFU1MgVEVMRUNPTSBTLkEuCiswMEQwMEEgICAgIChiYXNlIDE2KQkJTEFOQUNDRVNTIFRFTEVDT00gUy5BLgorCQkJCUdSQU4gVklBIDgtMTAgIDQgIDEKKwkJCQkwODkwMi0gTCdIT1NQSVRBTEVUIERFIExMT0JSRUdBVAorCQkJCVNQQUlOCisJCQkJU1BBSU4KKworMDAtRDAtMEIgICAoaGV4KQkJUkhLIFRFQ0hOT0xPR1ksIElOQy4KKzAwRDAwQiAgICAgKGJhc2UgMTYpCQlSSEsgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTEwNTAgRUFTVCBNQVBMRSBST0FECisJCQkJVFJPWSBNSSA0ODA4MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMEMgICAoaGV4KQkJU05JSkRFUiBNSUNSTyBTWVNURU1TCiswMEQwMEMgICAgIChiYXNlIDE2KQkJU05JSkRFUiBNSUNSTyBTWVNURU1TCisJCQkJUC5PLiBCT1ggMzAwCisJCQkJTkwtNTc1MCBBSCBERVVSTkUKKwkJCQlUSEUgTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC1EMC0wRCAgIChoZXgpCQlNSUNST01FUklUSUNTIElOU1RSVU1FTlQKKzAwRDAwRCAgICAgKGJhc2UgMTYpCQlNSUNST01FUklUSUNTIElOU1RSVU1FTlQKKwkJCQlDT1JQT1JBVElPTgorCQkJCU9ORSBNSUNST01FRVJJVElDUyBEUklWRQorCQkJCU5PUkNST1NTIEdBIDMwMDkzLTE4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTBFICAgKGhleCkJCVBMVVJJUywgSU5DLgorMDBEMDBFICAgICAoYmFzZSAxNikJCVBMVVJJUywgSU5DLgorCQkJCTEwNDU1IEJBTkRMRVkgRFJJVkUKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTBGICAgKGhleCkJCVNQRUVDSCBERVNJR04gR01CSAorMDBEMDBGICAgICAoYmFzZSAxNikJCVNQRUVDSCBERVNJR04gR01CSAorCQkJCUlORFVTVFJJRVNUUi4gMQorCQkJCUQtODIxMTAgR0VSTUVSSU5HCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtRDAtMTAgICAoaGV4KQkJQ09OVkVSR0VOVCBORVRXT1JLUywgSU5DLgorMDBEMDEwICAgICAoYmFzZSAxNikJCUNPTlZFUkdFTlQgTkVUV09SS1MsIElOQy4KKwkJCQkyIEhJR0hXT09EIERSSVZFCisJCQkJVEVXS1NCVVJZIE1BIDAxODc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0xMSAgIChoZXgpCQlQUklTTSBWSURFTywgSU5DLgorMDBEMDExICAgICAoYmFzZSAxNikJCVBSSVNNIFZJREVPLCBJTkMuCisJCQkJMTU4NTEgREFMTEFTIFBBUktXQVktU1RFLiMxMDYwCisJCQkJQURESVNPTiBUWCA3NTAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMTIgICAoaGV4KQkJR0FURVdPUktTIENPUlAuCiswMEQwMTIgICAgIChiYXNlIDE2KQkJR0FURVdPUktTIENPUlAuCisJCQkJNzYzMSBNT1JSTyBST0FECisJCQkJQVRBU0NBREVSTyBDQSA5MzQyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMTMgICAoaGV4KQkJUFJJTUVYIEFFUk9TUEFDRSBDT01QQU5ZCiswMEQwMTMgICAgIChiYXNlIDE2KQkJUFJJTUVYIEFFUk9TUEFDRSBDT01QQU5ZCisJCQkJUC5PLiBCT1ggOTcwMDkKKwkJCQkxMTQ0MSBXSUxMT1dTIFJPQUQgTkUKKwkJCQlSRURNT05EIFdBIDk4MDczLTk3MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTE0ICAgKGhleCkJCVJPT1QsIElOQy4KKzAwRDAxNCAgICAgKGJhc2UgMTYpCQlST09ULCBJTkMuCisJCQkJOEYgVE9DMiBCbGRnLCA3LTIxLTExIE5pc2hpLUdvdGFuZGEKKwkJCQlTaGluYWdhd2Eta3UKKwkJCQlUb2t5byAxNDEtMDAzMQorCQkJCUpBUEFOCisKKzAwLUQwLTE1ICAgKGhleCkJCVVOSVZFWCBNSUNST1RFQ0hOT0xPR1kgQ09SUC4KKzAwRDAxNSAgICAgKGJhc2UgMTYpCQlVTklWRVggTUlDUk9URUNITk9MT0dZIENPUlAuCisJCQkJMiwgVFpFLUNISUFORyAzUkQgUk9BRAorCQkJCUNIVU5HLUxJIElORFVTVFJJQUwgUEFSSywgQ0hVTkctTEkKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLTE2ICAgKGhleCkJCVNDTSBNSUNST1NZU1RFTVMsIElOQy4KKzAwRDAxNiAgICAgKGJhc2UgMTYpCQlTQ00gTUlDUk9TWVNURU1TLCBJTkMuCisJCQkJMTYwIEtOT1dMRVMgRFJJVkUKKwkJCQlMT1MgR0FUT1MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTE3ICAgKGhleCkJCVNZTlRFQ0ggSU5GT1JNQVRJT04gQ08uLCBMVEQuCiswMEQwMTcgICAgIChiYXNlIDE2KQkJU1lOVEVDSCBJTkZPUk1BVElPTiBDTy4sIExURC4KKwkJCQk4RiwgMjEwLCBUQS1UVU5HIFJELiwgU0VDLiAzCisJCQkJSFNJLUNISUgsIFRBSVBFSSBIU0lFTgorCQkJCVRBSVdBTiBUQUlXQU4gUk9DCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC0xOCAgIChoZXgpCQlRV0VTLiBDT00sIElOQy4KKzAwRDAxOCAgICAgKGJhc2UgMTYpCQlRV0VTLiBDT00sIElOQy4KKwkJCQkxNDc0MiBORVdQT1JUIEFWRS4gLSBTVEUuICMyMDMKKwkJCQlUVVNUSU4gQ0EgOTI3ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTE5ICAgKGhleCkJCURBSU5JUFBPTiBTQ1JFRU4gQ09SUE9SQVRFCiswMEQwMTkgICAgIChiYXNlIDE2KQkJREFJTklQUE9OIFNDUkVFTiBDT1JQT1JBVEUKKwkJCQlSRVBSRVNFTlRBVElWRVMgT0YgQU1FUklDQSxJTkMKKwkJCQkxNzk0MiBDT1dBTiBBVkVOVUUKKwkJCQlJUlZJTkUgQ0EgOTI2MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTFBICAgKGhleCkJCVVSTUVUICBUTEMgUy5QLkEuCiswMEQwMUEgICAgIChiYXNlIDE2KQkJVVJNRVQgIFRMQyBTLlAuQS4KKwkJCQlWSUEgREkgQ0FTVEVMIFJPTUFOTyAxNjcKKwkJCQkwMDEyOCAtIFJPTUEKKwkJCQlJVEFMWQorCiswMC1EMC0xQiAgIChoZXgpCQlNSU1BS0kgRU5HSU5FRVJJTkcgQ08uLCBMVEQuCiswMEQwMUIgICAgIChiYXNlIDE2KQkJTUlNQUtJIEVOR0lORUVSSU5HIENPLiwgTFRELgorCQkJCTUtOS00MSBLSVRBIFNISU5BR0FXQQorCQkJCVNISU5BR0FXQS1LVSBUT0tZTyAxNDEtMDAwMQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtRDAtMUMgICAoaGV4KQkJU0JTIFRFQ0hOT0xPR0lFUywKKzAwRDAxQyAgICAgKGJhc2UgMTYpCQlTQlMgVEVDSE5PTE9HSUVTLAorCQkJCUNPTk5FQ1RJVklUWSBQUk9EVUNUUworCQkJCTEyODQgQ09SUE9SQVRFIENFTlRFUiBEUklWRQorCQkJCVNULiBQQVVMIE1OIDU1MTIxLTEyNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTFEICAgKGhleCkJCUZVUlVOTyBFTEVDVFJJQyBDTy4sIExURC4KKzAwRDAxRCAgICAgKGJhc2UgMTYpCQlGVVJVTk8gRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJTk8uIDktNTIsIEFTSElIQVJBLUNITworCQkJCU5JU0hJTk9NSVlBLUNJVFkKKwkJCQk2NjItODU4MCAKKwkJCQlKQVBBTgorCiswMC1EMC0xRSAgIChoZXgpCQlQSU5HVEVMIENPUlAuCiswMEQwMUUgICAgIChiYXNlIDE2KQkJUElOR1RFTCBDT1JQLgorCQkJCTc3MyBXSU5URVIgU1RSRUVUCisJCQkJTi4gQU5ET1ZFUiBNQSAwMTg0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMUYgICAoaGV4KQkJQ1RBTSBQVFkuIExURC4KKzAwRDAxRiAgICAgKGJhc2UgMTYpCQlDVEFNIFBUWS4gTFRELgorCQkJCTM5OSBISUdIIFNUUkVFVAorCQkJCUFTSEJVUlRPTiAzMTQ3IFZJQ1RPUklBCisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLUQwLTIwICAgKGhleCkJCUFJTSBTWVNURU0sIElOQy4KKzAwRDAyMCAgICAgKGJhc2UgMTYpCQlBSU0gU1lTVEVNLCBJTkMuCisJCQkJNFRIIEZMT09SIENIVU5HV09PIEIvRCAyMTktMQorCQkJCVBPWUVFLURPTkcsIEdBTkdOQU0tS1UgU0VPTCwgMTM1LTIwMAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQwLTIxICAgKGhleCkJCVJFR0VOVCBFTEVDVFJPTklDUyBDT1JQLgorMDBEMDIxICAgICAoYmFzZSAxNikJCVJFR0VOVCBFTEVDVFJPTklDUyBDT1JQLgorCQkJCTIwMCBDRU5URU5OSUFMIEFWRS4tU1RFLiAjMjAxCisJCQkJUElTQ0FUQVdBWSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMjIgICAoaGV4KQkJSU5DUkVESUJMRSBURUNITk9MT0dJRVMsIElOQy4KKzAwRDAyMiAgICAgKGJhc2UgMTYpCQlJTkNSRURJQkxFIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTE2MDAgSElDS1MgUk9BRAorCQkJCVJPTExJTkcgTUVBRE9XUyBJTCA2MDAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMjMgICAoaGV4KQkJSU5GT1JUUkVORCBURUNITk9MT0dZLCBJTkMuCiswMEQwMjMgICAgIChiYXNlIDE2KQkJSU5GT1JUUkVORCBURUNITk9MT0dZLCBJTkMuCisJCQkJMTBGLCBOTy4gMzMgU0FOLU1JTiBSRC4KKwkJCQlTRUMuIDIgUEFOQ0hJQU8gQ0lUWSBUQUlQRUkgSFNJRU4KKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLTI0ICAgKGhleCkJCUNvZ25leCBDb3Jwb3JhdGlvbgorMDBEMDI0ICAgICAoYmFzZSAxNikJCUNvZ25leCBDb3Jwb3JhdGlvbgorCQkJCU1vZHVsYXIgVmlzaW9uIFN5c3RlbXMgRGl2aXNpb24KKwkJCQlJbi1TaWdodCBQcm9kdWN0cyBHcm91cCAxNTg2NSBTVyA3NHRoIEF2CisJCQkJUG9ydGxhbmQgT1IgOTcyMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTI1ICAgKGhleCkJCVhST1NTVEVDSCwgSU5DLgorMDBEMDI1ICAgICAoYmFzZSAxNikJCVhST1NTVEVDSCwgSU5DLgorCQkJCUhBQkRPTkcgQi9EIDVGIDIxMC0yCisJCQkJWUFOR0pBRS1ET05HLCBTRU9DSE8tS1UgU0VPVUwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1EMC0yNiAgIChoZXgpCQlISVJTQ0hNQU5OIEFVU1RSSUEgR01CSAorMDBEMDI2ICAgICAoYmFzZSAxNikJCUhJUlNDSE1BTk4gQVVTVFJJQSBHTUJICisJCQkJT0JFUkVSIFBBU1BFTFNXRUcgNiAtIDgKKwkJCQk2ODMwIFJBTktXRUlMLUJSRURFUklTCisJCQkJQVVTVFJJQQorCQkJCUFVU1RSSUEKKworMDAtRDAtMjcgICAoaGV4KQkJQVBQTElFRCBBVVRPTUFUSU9OLCBJTkMuCiswMEQwMjcgICAgIChiYXNlIDE2KQkJQVBQTElFRCBBVVRPTUFUSU9OLCBJTkMuCisJCQkJUC5PLiBCT1ggOTk5OQorCQkJCUJBUlRMRVNWSUxMRSBPSyA3NDAwNS05OTk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0yOCAgIChoZXgpCQlPTU5FT04gVklERU8gTkVUV09SS1MKKzAwRDAyOCAgICAgKGJhc2UgMTYpCQlPTU5FT04gVklERU8gTkVUV09SS1MKKwkJCQk5NjUgU3Rld2FydCBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4Ni0zOTEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0yOSAgIChoZXgpCQlXQUtFRkVSTiBGT09EIENPUlBPUkFUSU9OCiswMEQwMjkgICAgIChiYXNlIDE2KQkJV0FLRUZFUk4gRk9PRCBDT1JQT1JBVElPTgorCQkJCTIzMCBSQVJJVEFOIENFTlRFUiBQQVJLV0FZCisJCQkJRURJU09OIE5KIDA4ODM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0yQSAgIChoZXgpCQlWb3hlbnQgU3lzdGVtcyBMdGQuCiswMEQwMkEgICAgIChiYXNlIDE2KQkJVm94ZW50IFN5c3RlbXMgTHRkLgorCQkJCVVuaXQgMiwgUm93YW4gSG91c2UKKwkJCQlTaGVsZG9uIEJ1c2luZXNzIFBhcmsKKwkJCQlDaGlwcGVuaGFtIFdpbHRzaGlyZSBTTjE0IDBTUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLTJCICAgKGhleCkJCUpFVENFTEwsIElOQy4KKzAwRDAyQiAgICAgKGJhc2UgMTYpCQlKRVRDRUxMLCBJTkMuCisJCQkJMTczIENPTlNUSVRVVElPTiBEUklWRQorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUtMTEwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMkMgICAoaGV4KQkJQ0FNUEJFTEwgU0NJRU5USUZJQywgSU5DLgorMDBEMDJDICAgICAoYmFzZSAxNikJCUNBTVBCRUxMIFNDSUVOVElGSUMsIElOQy4KKwkJCQk4MTUgVy4gMTgwMCBOLgorCQkJCUxPR0FOIFVUIDg0MzIxLTE3ODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTJEICAgKGhleCkJCUFERU1DTworMDBEMDJEICAgICAoYmFzZSAxNikJCUFERU1DTworCQkJCTE2NSBFSUxFRU4gV0FZCisJCQkJU1lPU1NFVCBOWSAxMTc5MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMkUgICAoaGV4KQkJQ09NTVVOSUNBVElPTiBBVVRPTUFUSU9OIENPUlAuCiswMEQwMkUgICAgIChiYXNlIDE2KQkJQ09NTVVOSUNBVElPTiBBVVRPTUFUSU9OIENPUlAuCisJCQkJMTE4MCBNQ0RFUk1PVFQgRFJJVkUKKwkJCQlXRVNUIENIRVNURVIgUEEgMTkzODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTJGICAgKGhleCkJCVZMU0kgVEVDSE5PTE9HWSBJTkMuCiswMEQwMkYgICAgIChiYXNlIDE2KQkJVkxTSSBURUNITk9MT0dZIElOQy4KKwkJCQk4Mzc1IFMuIFJJVkVSIFBBUktXQVkKKwkJCQlURU1QRSBBWiA4NTI4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMzAgICAoaGV4KQkJU2FmZXRyYW4gU3lzdGVtcyBDb3JwCiswMEQwMzAgICAgIChiYXNlIDE2KQkJU2FmZXRyYW4gU3lzdGVtcyBDb3JwCisJCQkJMTA2NTUgN3RoIFN0cmVldAorCQkJCVJhbmNobyBDdWNhbW9uZ2EgQ0EgOTE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTMxICAgKGhleCkJCUlORFVTVFJJQUwgTE9HSUMgQ09SUE9SQVRJT04KKzAwRDAzMSAgICAgKGJhc2UgMTYpCQlJTkRVU1RSSUFMIExPR0lDIENPUlBPUkFUSU9OCisJCQkJMTUgUElFRE1PTlQgQ0VOVEVSLVNURSAjNzAwCisJCQkJQVRMQU5UQSBHQSAzMDMwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMzIgICAoaGV4KQkJWUFOTyBFTEVDVFJJQyBDTy4sIExURC4KKzAwRDAzMiAgICAgKGJhc2UgMTYpCQlZQU5PIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTctMy0xIElCVUtJREFJSElHQVNISU1BQ0hJCisJCQkJTklTSEktS1UsIEtPQkUsIDY1MS0yMjQyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1EMC0zMyAgIChoZXgpCQlEQUxJQU4gREFYSUFOIE5FVFdPUksKKzAwRDAzMyAgICAgKGJhc2UgMTYpCQlEQUxJQU4gREFYSUFOIE5FVFdPUksKKwkJCQlTWVNURU0gQ08uLCBMVEQuCisJCQkJOTggU0hFTkdMSSBSRCBYSUdBTkcgRElTVFJJQ1QgREFMSUFOLCBQLgorCQkJCUNISU5BCisJCQkJQ0hJTkEKKworMDAtRDAtMzQgICAoaGV4KQkJT1JNRUMgU1lTVEVNUyBDT1JQLgorMDBEMDM0ICAgICAoYmFzZSAxNikJCU9STUVDIFNZU1RFTVMgQ09SUC4KKwkJCQkxOSBMSU5ERU4gUEFSSworCQkJCVJPQ0hFU1RFUiBOWSAxNDYyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMzUgICAoaGV4KQkJQkVIQVZJT1IgVEVDSC4gQ09NUFVURVIgQ09SUC4KKzAwRDAzNSAgICAgKGJhc2UgMTYpCQlCRUhBVklPUiBURUNILiBDT01QVVRFUiBDT1JQLgorCQkJCTIwRi1CLCBOby45OCwgU2VjLiAxLAorCQkJCVNpbnRhaSA1dGggUmQuCisJCQkJU2lqaGloIENpdHkgVGFpcGVpIENvdW50eSAyMjEwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtMzYgICAoaGV4KQkJVEVDSE5PTE9HWSBBVExBTlRBIENPUlAuCiswMEQwMzYgICAgIChiYXNlIDE2KQkJVEVDSE5PTE9HWSBBVExBTlRBIENPUlAuCisJCQkJMTQxIFcuIFdJRVVDQSBSRC4gTi5FLgorCQkJCVNVSVRFICMzMDAKKwkJCQlBVExBTlRBIEdBIDMwMzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0zNyAgIChoZXgpCQlQYWNlIEZyYW5jZQorMDBEMDM3ICAgICAoYmFzZSAxNikJCVBhY2UgRnJhbmNlCisJCQkJMzMgcnVlIGRlIFZlcmR1bgorCQkJCTkyMTUwIFN1cmVzbmVzIAorCQkJCUZSQU5DRQorCiswMC1EMC0zOCAgIChoZXgpCQlGSVZFTUVSRSwgTFRELgorMDBEMDM4ICAgICAoYmFzZSAxNikJCUZJVkVNRVJFLCBMVEQuCisJCQkJVU5JVCAxLUhFUk9OIElORFVTVFJJQUwgRVNUQVRFCisJCQkJQkFTSU5HU1RPS0UgUk9BRCBTUEVOQ0VSUyBXT09ELCAgUkVBRElORworCQkJCVJHNyAxUEogRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLTM5ICAgKGhleCkJCVVUSUxJQ09NLCBJTkMuCiswMEQwMzkgICAgIChiYXNlIDE2KQkJVVRJTElDT00sIElOQy4KKwkJCQkzMjMgTE9WRSBQTEFDRQorCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMTItMzI4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtM0EgICAoaGV4KQkJWk9ORVdPUlgsIElOQy4KKzAwRDAzQSAgICAgKGJhc2UgMTYpCQlaT05FV09SWCwgSU5DLgorCQkJCTQwOTI1IENPVU5UWSBDRU5URVIgRFJJVkUKKwkJCQlTVUlURSAjMjAwCisJCQkJVEVNRUNVTEEgQ0EgOTI1OTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTNCICAgKGhleCkJCVZJU0lPTiBQUk9EVUNUUyBQVFkuIExURC4KKzAwRDAzQiAgICAgKGJhc2UgMTYpCQlWSVNJT04gUFJPRFVDVFMgUFRZLiBMVEQuCisJCQkJU0VDT05EIEFWRU5VRSwgVEVDSE5PTE9HWSBQQVJLCisJCQkJTUFXU09OIExBS0VTCisJCQkJQVVTVFJBTElBIDUwOTUKKwkJCQlBVVNUUkFMSUEKKworMDAtRDAtM0MgICAoaGV4KQkJVmllbywgSW5jLgorMDBEMDNDICAgICAoYmFzZSAxNikJCVZpZW8sIEluYy4KKwkJCQkxMjQxNiBIeW1lYWRvdyBEcml2ZSwKKwkJCQlTdWl0ZSAyMDAKKwkJCQlBdXN0aW4gVFggNzg3NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTNEICAgKGhleCkJCUdBTElMRU8gVEVDSE5PTE9HWSwgTFRELgorMDBEMDNEICAgICAoYmFzZSAxNikJCUdBTElMRU8gVEVDSE5PTE9HWSwgTFRELgorCQkJCU1PU0hBViBNQU5PRgorCQkJCUQuTi4gTUlTR0FWIDIwMTg0CisJCQkJSVNSQUVMCisKKzAwLUQwLTNFICAgKGhleCkJCVJPQ0tFVENISVBTLCBJTkMuCiswMEQwM0UgICAgIChiYXNlIDE2KQkJUk9DS0VUQ0hJUFMsIElOQy4KKwkJCQk3OTAxIFhFUlhFUyBBVkUuIFMuCisJCQkJTUlOTkVBUE9MSVMgTU4gNTU0MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTNGICAgKGhleCkJCUFNRVJJQ0FOIENPTU1VTklDQVRJT04KKzAwRDAzRiAgICAgKGJhc2UgMTYpCQlBTUVSSUNBTiBDT01NVU5JQ0FUSU9OCisJCQkJVEVDSE5PTElHSUVTIElOVEVSTkFUSU9OQUwgSU5DCisJCQkJMzIwIFBST0ZFU1NJT05BTCBDRU5URVIgRFIuIFNVSVRFICMxMDAKKwkJCQlST0hORVJUIFBBUksgQ0EgOTQ5MjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTQwICAgKGhleCkJCVNZU01BVEUgQ08uLCBMVEQuCiswMEQwNDAgICAgIChiYXNlIDE2KQkJU1lTTUFURSBDTy4sIExURC4KKwkJCQkxMDkxIFdPTFBZT05HLURPTkcKKwkJCQlTRU8tR1UsIERFQUpDT04gMzAyLTI4MAorCQkJCVNPVVRIIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQwLTQxICAgKGhleCkJCUFNSUdPIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMEQwNDEgICAgIChiYXNlIDE2KQkJQU1JR08gVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQk0Ri0xQiwgTk8uMTIsIExBTkUgNjA5LCBTRUMuNSwKKwkJCQlDSFVORyBIU0lOIFJPQUQsIFNBTiBDSFVORyBUQUlQRUkgSFNJRU4KKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtNDIgICAoaGV4KQkJTUFITE8gR01CSCAmIENPLiBVRworMDBEMDQyICAgICAoYmFzZSAxNikJCU1BSExPIEdNQkggJiBDTy4gVUcKKwkJCQlET05BVVNUUkFTU0UgMTIKKwkJCQlELTkzMzQyIFNBQUwvRE9OQVUKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1EMC00MyAgIChoZXgpCQlaT05BTCBSRVRBSUwgREFUQSBTWVNURU1TCiswMEQwNDMgICAgIChiYXNlIDE2KQkJWk9OQUwgUkVUQUlMIERBVEEgU1lTVEVNUworCQkJCTI0IEZPUlRIIFNUUkVFVAorCQkJCUVESU5CVVJHSAorCQkJCVNDT1RMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRDAtNDQgICAoaGV4KQkJQUxJRElBTiBORVRXT1JLUywgSU5DLgorMDBEMDQ0ICAgICAoYmFzZSAxNikJCUFMSURJQU4gTkVUV09SS1MsIElOQy4KKwkJCQkxMzMwIFcuIE1JRERMRUZJRUxEIFJPQUQKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC00NSAgIChoZXgpCQlLVkFTRVIgQUIKKzAwRDA0NSAgICAgKGJhc2UgMTYpCQlLVkFTRVIgQUIKKwkJCQlCT1ggNDA3NgorCQkJCTUxMSAwNCBLSU5OQUhVTFQKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtRDAtNDYgICAoaGV4KQkJRE9MQlkgTEFCT1JBVE9SSUVTLCBJTkMuCiswMEQwNDYgICAgIChiYXNlIDE2KQkJRE9MQlkgTEFCT1JBVE9SSUVTLCBJTkMuCisJCQkJMTAwIFBvdHJlcm8gQXZlbnVlCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEwMy00OTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC00NyAgIChoZXgpCQlYTiBURUNITk9MT0dJRVMKKzAwRDA0NyAgICAgKGJhc2UgMTYpCQlYTiBURUNITk9MT0dJRVMKKwkJCQlQLk8uIEJPWCAzNTAKKwkJCQlDSEVORVkgV0EgOTkwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTQ4ICAgKGhleCkJCUVDVE9OLCBJTkMuCiswMEQwNDggICAgIChiYXNlIDE2KQkJRUNUT04sIElOQy4KKwkJCQk1MTY4IENBTVBVUyBEUklWRQorCQkJCVBMWU1PVVRIIE1FRVRJTkcgUEEgMTk0NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTQ5ICAgKGhleCkJCUlNUFJFU1NURUsgQ08uLCBMVEQuCiswMEQwNDkgICAgIChiYXNlIDE2KQkJSU1QUkVTU1RFSyBDTy4sIExURC4KKwkJCQk2RiwgU1BFQ0lBTFRZIENPTlNUUlVDVElPTiBDVFIKKwkJCQkxMjkwLCBTVU5TQU4tRE9ORyxTTy1HVQorCQkJCTMwMi0xMjAgS09SRUEgKFJFUC4pCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQwLTRBICAgKGhleCkJCVBSRVNFTkNFIFRFQ0hOT0xPR1kgR01CSAorMDBEMDRBICAgICAoYmFzZSAxNikJCVBSRVNFTkNFIFRFQ0hOT0xPR1kgR01CSAorCQkJCSsgQ08uIEtHCisJCQkJU0VOREVOSE9SU1RFUiBTVFIuIDMyIEQtNDgzMTcgRFJFTlNURUlORgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLTRCICAgKGhleCkJCUxBIENJRSBHUk9VUCBTLkEuCiswMEQwNEIgICAgIChiYXNlIDE2KQkJTEEgQ0lFIEdST1VQIFMuQS4KKwkJCQkxNyBSVUUgQU1QRVJFCisJCQkJOTEzNDkgTUFTU1kgQ0VERVgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtRDAtNEMgICAoaGV4KQkJRVVST1RFTCBURUxFQ09NIExURC4KKzAwRDA0QyAgICAgKGJhc2UgMTYpCQlFVVJPVEVMIFRFTEVDT00gTFRELgorCQkJCUNBTklTVEVSIEhPVVNFCisJCQkJSkVXUlkgU1RSRUVUIFdJTkNIRVNURVIgQjAyMyA4U0EKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLTREICAgKGhleCkJCURJViBPRiBSRVNFQVJDSCAmIFNUQVRJU1RJQ1MKKzAwRDA0RCAgICAgKGJhc2UgMTYpCQlESVYgT0YgUkVTRUFSQ0ggJiBTVEFUSVNUSUNTCisJCQkJQk9HIE9GIFRIRSBGRURFUkFMIFJFU0VSVkUgU1lTCisJCQkJTUFJTCBTVE9QIDk2IDIwVEggJgorCQkJCVdBU0hJTkdUT04gREMgMjA1NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTRFICAgKGhleCkJCUxPR0lCQUcKKzAwRDA0RSAgICAgKGJhc2UgMTYpCQlMT0dJQkFHCisJCQkJMiwgUnVlIGRlIGxhIE1hbmRpbmllcmUKKwkJCQk3MjMwMCBTQUJMRS9TQVJUSEUKKwkJCQlGUkFOQ0UKKworMDAtRDAtNEYgICAoaGV4KQkJQklUUk9OSUNTLCBJTkMuCiswMEQwNEYgICAgIChiYXNlIDE2KQkJQklUUk9OSUNTLCBJTkMuCisJCQkJUC5PLiBCT1ggMjIyOTAKKwkJCQlMRUhJR0ggVkFMTEVZIFBBIDE4MDAyLTIyOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTUwICAgKGhleCkJCUlTS1JBVEVMCiswMEQwNTAgICAgIChiYXNlIDE2KQkJSVNLUkFURUwKKwkJCQlMSlVCTEpBTlNLQSBDLiAyNEEKKwkJCQk0MDAwIEtSQU5KCisJCQkJU0xPVkVOSUEKKwkJCQlTTE9WRU5JQQorCiswMC1EMC01MSAgIChoZXgpCQlPMiBNSUNSTywgSU5DLgorMDBEMDUxICAgICAoYmFzZSAxNikJCU8yIE1JQ1JPLCBJTkMuCisJCQkJMjkwMSBUQVNNQU4gRFJJVkUsIFNURS4jMjA1CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTUyICAgKGhleCkJCUFTQ0VORCBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBEMDUyICAgICAoYmFzZSAxNikJCUFTQ0VORCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCU9ORSBBU0NFTkQgUExBWkEKKwkJCQkxNzAxIEhBUkJPUiBCQVkgUEFSS1dBWQorCQkJCUFMQU1FREEgQ0EgOTQ1MDItMzAwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNTMgICAoaGV4KQkJQ09OTkVDVEVEIFNZU1RFTVMKKzAwRDA1MyAgICAgKGJhc2UgMTYpCQlDT05ORUNURUQgU1lTVEVNUworCQkJCTEyNiBXLiBGSUdVRVJPQSBTVFJFRVQKKwkJCQlTQU5UQSBCQVJCQVJBIENBIDkzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC01NCAgIChoZXgpCQlTQVMgSU5TVElUVVRFIElOQy4KKzAwRDA1NCAgICAgKGJhc2UgMTYpCQlTQVMgSU5TVElUVVRFIElOQy4KKwkJCQlTQVMgQ0FNUFVTIERSSVZFLCBSNAorCQkJCUNBUlkgTkMgMjc1MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTU1ICAgKGhleCkJCUtBVEhSRUlOLVdFUktFIEtHCiswMEQwNTUgICAgIChiYXNlIDE2KQkJS0FUSFJFSU4tV0VSS0UgS0cKKwkJCQlBTlRPTi1LQVRIUkVJTi1TVFJBU1MgMS0zCisJCQkJRC04MzAwNCBST1NFTkhFSU0KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1EMC01NiAgIChoZXgpCQlTT01BVCBDT1JQT1JBVElPTgorMDBEMDU2ICAgICAoYmFzZSAxNikJCVNPTUFUIENPUlBPUkFUSU9OCisJCQkJNzAyIEtJTExBUk5FWSBTVFJFRVQKKwkJCQlVUkJBTkEgSUwgNjE4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTU3ICAgKGhleCkJCVVMVFJBSywgSU5DLgorMDBEMDU3ICAgICAoYmFzZSAxNikJCVVMVFJBSywgSU5DLgorCQkJCTEzMDEgV0FURVJTIFJJREdFIERSSVZFCisJCQkJTEVXSVNWSUxMRSBUWCA3NTA1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNTggICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBEMDU4ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNTkgICAoaGV4KQkJQU1CSVQgTUlDUk9TWVNURU1TIENPUlAuCiswMEQwNTkgICAgIChiYXNlIDE2KQkJQU1CSVQgTUlDUk9TWVNURU1TIENPUlAuCisJCQkJNUYtMSwgNSBIU0lOLUFOIFJPQUQKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSyBIU0lOQ0hVCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLTVBICAgKGhleCkJCVNZTUJJT05JQ1MsIExURC4KKzAwRDA1QSAgICAgKGJhc2UgMTYpCQlTWU1CSU9OSUNTLCBMVEQuCisJCQkJU1QuIEpPSE4nUyBJTk5PVkFUSU9OIFBBUksKKwkJCQlDQU1CUklER0UgIENCNCAwV1MKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRDAtNUIgICAoaGV4KQkJQUNST0xPT1AgTU9USU9OIENPTlRST0wKKzAwRDA1QiAgICAgKGJhc2UgMTYpCQlBQ1JPTE9PUCBNT1RJT04gQ09OVFJPTAorCQkJCVNZU1RFTVMKKwkJCQkzNjUwIENIRVNUTlVUIFNULiBOLgorCQkJCUNIQVNLQSBNTiA1NTMxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNUMgICAoaGV4KQkJVEVDSE5PVFJFTkQgU1lTVEVNVEVDSE5JSyBHTUJICiswMEQwNUMgICAgIChiYXNlIDE2KQkJVEVDSE5PVFJFTkQgU1lTVEVNVEVDSE5JSyBHTUJICisJCQkJV0lMSEVMTS1XT0xGRi1TVFJBU1NFIDYKKwkJCQlHRVItOTkwOTkgRVJGVVJUCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtRDAtNUQgICAoaGV4KQkJSU5URUxMSVdPUlhYLCBJTkMuCiswMEQwNUQgICAgIChiYXNlIDE2KQkJSU5URUxMSVdPUlhYLCBJTkMuCisJCQkJMTgxOSBNQUlOIFNUUkVFVCwgIFNURSAjMTEwMQorCQkJCVNBUkFTT1RBIEZMIDM0MjM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC01RSAgIChoZXgpCQlTVFJBVEFCRUFNIFRFQ0hOT0xPR1ksIElOQy4KKzAwRDA1RSAgICAgKGJhc2UgMTYpCQlTVFJBVEFCRUFNIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkxOTQzIExBTkRJTkdTIERSSVZFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNUYgICAoaGV4KQkJVkFMQ09NLCBJTkMuCiswMEQwNUYgICAgIChiYXNlIDE2KQkJVkFMQ09NLCBJTkMuCisJCQkJMTExMSBJTkRVU1RSWSBBVkVOVUUKKwkJCQlST0FOT0tFIFZBIDI0MDEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC02MCAgIChoZXgpCQlQYW5hc29uaWMgRXVyb3BlIEx0ZC4KKzAwRDA2MCAgICAgKGJhc2UgMTYpCQlQYW5hc29uaWMgRXVyb3BlIEx0ZC4KKwkJCQlMQUJPUkFUT1JJRVMgR01CSAorCQkJCU1PTlpBU1RSLiA0QyBELTYzMjI1IExBTkdFTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLTYxICAgKGhleCkJCVRSRU1PTiBFTlRFUlBSSVNFUyBDTy4sIExURC4KKzAwRDA2MSAgICAgKGJhc2UgMTYpCQlUUkVNT04gRU5URVJQUklTRVMgQ08uLCBMVEQuCisJCQkJMTVGLCBOTy4gMTE2LCBTRUMuIDEKKwkJCQlIU0lOLVRBSSA1VEggUk9BRCBIU0lDSElILCBUQUlQRUkgQ09VTlRZCisJCQkJVEFJV0FOIFRBSVdBTiBST0MKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLTYyICAgKGhleCkJCURJR0lHUkFNCiswMEQwNjIgICAgIChiYXNlIDE2KQkJRElHSUdSQU0KKwkJCQlQQVJDIERFIFBSRSBNSUxMSUVUCisJCQkJMzgzMzAgTU9OVEJPTk5PVAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC1EMC02MyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEQwNjMgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC02NCAgIChoZXgpCQlNVUxUSVRFTAorMDBEMDY0ICAgICAoYmFzZSAxNikJCU1VTFRJVEVMCisJCQkJMjkwNSBSVUUgREUgQ0VMTEVTCisJCQkJUVVFQkVDIENJVFksIFFVRUJFQyBQUk9WSU5DRQorCQkJCUNBTkFEQSBDQU5BREEgRzJDLTFXNworCQkJCUNBTkFEQQorCiswMC1EMC02NSAgIChoZXgpCQlUT0tPIEVMRUNUUklDCiswMEQwNjUgICAgIChiYXNlIDE2KQkJVE9LTyBFTEVDVFJJQworCQkJCTQwMDggS1VST0hBTUEsIEhBU1VEQS1TSEkKKwkJCQlTQUlUQU1BIDM0OS0wMTkyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1EMC02NiAgIChoZXgpCQlXSU5UUklTUyBFTkdJTkVFUklORyBDT1JQLgorMDBEMDY2ICAgICAoYmFzZSAxNikJCVdJTlRSSVNTIEVOR0lORUVSSU5HIENPUlAuCisJCQkJNjM0NCBGRVJSSVMgU1FVQVJFCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC02NyAgIChoZXgpCQlDQU1QSU8gQ09NTVVOSUNBVElPTlMKKzAwRDA2NyAgICAgKGJhc2UgMTYpCQlDQU1QSU8gQ09NTVVOSUNBVElPTlMKKwkJCQkyMDMzIEdBVEVXQVkgUEwsIFNVSVRFICM2MDAKKwkJCQlTQU4gSk9TRSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNjggICAoaGV4KQkJSVdJTEwgQ09SUE9SQVRJT04KKzAwRDA2OCAgICAgKGJhc2UgMTYpCQlJV0lMTCBDT1JQT1JBVElPTgorCQkJCU5PLjEwLCBXVS1DSFVBTiAzIFJELAorCQkJCUhTSU4tQ0hVQU4gQ0lUWSBUQUlQRUkKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLTY5ICAgKGhleCkJCVRFQ0hOT0xPR0lDIFNZU1RFTVMKKzAwRDA2OSAgICAgKGJhc2UgMTYpCQlURUNITk9MT0dJQyBTWVNURU1TCisJCQkJMTY2MTAgRS4gTEFTRVIgRFJJVkUtU1RFLiAjMTAKKwkJCQlGT1VOVEFJTiBISUxMUyBBWiA4NTI2OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNkEgICAoaGV4KQkJTElOS1VQIFNZU1RFTVMgQ09SUE9SQVRJT04KKzAwRDA2QSAgICAgKGJhc2UgMTYpCQlMSU5LVVAgU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCTExOTAgQ09MRU1BTiBBVkUuLSBTVEUgIzJDCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTZCICAgKGhleCkJCVNSIFRFTEVDT00gSU5DLgorMDBEMDZCICAgICAoYmFzZSAxNikJCVNSIFRFTEVDT00gSU5DLgorCQkJCTgxNTAgVHJhbnMgQ2FuYWRhIEhpZ2h3YXkKKwkJCQlNb250cmVhbAorCQkJCVF1ZWJlYyAgSDRTIDFNNQorCQkJCUNBTkFEQQorCiswMC1EMC02QyAgIChoZXgpCQlTSEFSRVdBVkUsIElOQy4KKzAwRDA2QyAgICAgKGJhc2UgMTYpCQlTSEFSRVdBVkUsIElOQy4KKwkJCQk1MTc1IEhJTExTREFMRSBDSVJDTEUKKwkJCQlFTCBET1JBRE8gSElMTFMgQ0EgOTU3NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTZEICAgKGhleCkJCUFDUklTT04sIElOQy4KKzAwRDA2RCAgICAgKGJhc2UgMTYpCQlBQ1JJU09OLCBJTkMuCisJCQkJMjAgRU1QSVJFIEJMVkQuCisJCQkJTU9PTkFDSElFIE5KIDA3MDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC02RSAgIChoZXgpCQlUUkVORFZJRVcgUkVDT1JERVJTIExURC4KKzAwRDA2RSAgICAgKGJhc2UgMTYpCQlUUkVORFZJRVcgUkVDT1JERVJTIExURC4KKwkJCQk0IEFJUkZJRUxEIFdBWQorCQkJCUNIUklTVENIVVJDSCBET1JTRVQgQkgyMyAzVFMKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLTZGICAgKGhleCkJCUtNQyBDT05UUk9MUworMDBEMDZGICAgICAoYmFzZSAxNikJCUtNQyBDT05UUk9MUworCQkJCVAuTy4gQk9YIDQ5NworCQkJCTE5NDc2IE5FVyBQQVJJUyBJTkRVU1RSSUFMIERSLgorCQkJCU5FVyBQQVJJUyBJTiA0NjU1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNzAgICAoaGV4KQkJTE9ORyBXRUxMIEVMRUNUUk9OSUNTIENPUlAuCiswMEQwNzAgICAgIChiYXNlIDE2KQkJTE9ORyBXRUxMIEVMRUNUUk9OSUNTIENPUlAuCisJCQkJNEYsIE5PLiA1OS0xLCBUU0FPIERJIFdFSQorCQkJCVNIRU5HS0VORyBIU0lBTkcsIFRBSVBFSSBIU0lFTgorCQkJCVRBSVdBTiAyMjIgVEFJV0FOIDIyMiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLTcxICAgKGhleCkJCUVDSEVMT04gQ09SUC4KKzAwRDA3MSAgICAgKGJhc2UgMTYpCQlFQ0hFTE9OIENPUlAuCisJCQkJNTUwIE1lcmlkaWFuIEF2ZW51ZQorCQkJCVNhbiBKb3NlIENBIDk1MTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC03MiAgIChoZXgpCQlCUk9BRExPR0lDCiswMEQwNzIgICAgIChiYXNlIDE2KQkJQlJPQURMT0dJQworCQkJCTQ2MyBTLiBNSUxQSVRBUyBCTFZELgorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC03MyAgIChoZXgpCQlBQ04gQURWQU5DRUQgQ09NTVVOSUNBVElPTlMKKzAwRDA3MyAgICAgKGJhc2UgMTYpCQlBQ04gQURWQU5DRUQgQ09NTVVOSUNBVElPTlMKKwkJCQlORVRXT1JLUyBTQQorCQkJCVJVRSBEVSBQVUlUUy1HT0RFVCBCQSBDSC0yMDAwIE5FVUNIQVRFTAorCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDAtRDAtNzQgICAoaGV4KQkJVEFRVUEgU1lTVEVNUywgSU5DLgorMDBEMDc0ICAgICAoYmFzZSAxNikJCVRBUVVBIFNZU1RFTVMsIElOQy4KKwkJCQkxNjAwIEZBTE1PVVRIIFJELiAtIFNURQorCQkJCUNFTlRFUlZJTExFIE1BIDAyNjMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC03NSAgIChoZXgpCQlBTEFSSVMgTUVESUNBTCBTWVNURU1TLCBJTkMuCiswMEQwNzUgICAgIChiYXNlIDE2KQkJQUxBUklTIE1FRElDQUwgU1lTVEVNUywgSU5DLgorCQkJCVAuTy4gQk9YIDg1MzM1CisJCQkJMTAyMjEgV0FURVJJREdFIENJUkNMRQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMS0yNzMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC03NiAgIChoZXgpCQkgQmFuayBvZiBBbWVyaWNhCiswMEQwNzYgICAgIChiYXNlIDE2KQkJIEJhbmsgb2YgQW1lcmljYQorCQkJCTExMDAgTWVycmlsbCBEcml2ZQorCQkJCVBlbm5pbmd0b24gTkogMDg1MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTc3ICAgKGhleCkJCUxVQ0VOVCBURUNITk9MT0dJRVMKKzAwRDA3NyAgICAgKGJhc2UgMTYpCQlMVUNFTlQgVEVDSE5PTE9HSUVTCisJCQkJQ0xJRU5UIEFDQ0VTUyBCVVNJTkVTUyBVTklUCisJCQkJMTAxIENSQVdGT1JEUyBDT1JORVIgUk9BRCBST09NICMxRS00MzdBTAorCQkJCUhPTE1ERUwgTkogMDc3MzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTc4ICAgKGhleCkJCUVsdGV4IG9mIFN3ZWRlbiBBQgorMDBEMDc4ICAgICAoYmFzZSAxNikJCUVsdGV4IG9mIFN3ZWRlbiBBQgorCQkJCUJveCAyNAorCQkJCTI4MyAyMSBPU0JZICAKKwkJCQlTV0VERU4KKworMDAtRDAtNzkgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBEMDc5ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtN0EgICAoaGV4KQkJQU1BUVVFU1QgQ09NUFVURVIgQ09SUC4KKzAwRDA3QSAgICAgKGJhc2UgMTYpCQlBTUFRVUVTVCBDT01QVVRFUiBDT1JQLgorCQkJCTgvRiwgNzkgSFNJTi1UQUkKKwkJCQk1VEggUk9BRCwgU0VDLiAxIEhTMS1DSElILCBUQUlQRUkKKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC03QiAgIChoZXgpCQlDT01DQU0gSU5URVJOQVRJT05BTCBJTkMKKzAwRDA3QiAgICAgKGJhc2UgMTYpCQlDT01DQU0gSU5URVJOQVRJT05BTCBJTkMKKwkJCQkxMTQwIE1jRGVybW90dCBEcml2ZSBTdWl0ZSAyMDAKKwkJCQlXRVNUIENIRVNURVIgUEEgMTkzODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTdDICAgKGhleCkJCUtPWU8gRUxFQ1RST05JQ1MgSU5DLiBDTy4sTFRELgorMDBEMDdDICAgICAoYmFzZSAxNikJCUtPWU8gRUxFQ1RST05JQ1MgSU5DLiBDTy4sTFRELgorCQkJCTEtMTcxIFRFTkpJTi1DSE8gS09EQUlSQQorCQkJCVRPS1lPICAxODctMDAwNAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtRDAtN0QgICAoaGV4KQkJQ09TSU5FIENPTU1VTklDQVRJT05TCiswMEQwN0QgICAgIChiYXNlIDE2KQkJQ09TSU5FIENPTU1VTklDQVRJT05TCisJCQkJMTIwMCBCUklER0UgUEFSS1dBWQorCQkJCVJFRFdPT0QgQ0lUWSBDQSA5NDA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtN0UgICAoaGV4KQkJS0VZQ09SUCBMVEQuCiswMEQwN0UgICAgIChiYXNlIDE2KQkJS0VZQ09SUCBMVEQuCisJCQkJUC5PLiBCT1ggMTk5CisJCQkJQ0hBVFNXT09EIE5TVyAyMDU3CisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLUQwLTdGICAgKGhleCkJCVNUUkFURUdZICYgVEVDSE5PTE9HWSwgTElNSVRFRAorMDBEMDdGICAgICAoYmFzZSAxNikJCVNUUkFURUdZICYgVEVDSE5PTE9HWSwgTElNSVRFRAorCQkJCVN1aXRlIDQuMiwgQ2xpZnRvbiBIZWlnaHRzCisJCQkJVHJpYW5nbGUgV2VzdAorCQkJCUJyaXN0b2wgQlM4IDFFSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLTgwICAgKGhleCkJCUVYQUJZVEUgQ09SUE9SQVRJT04KKzAwRDA4MCAgICAgKGJhc2UgMTYpCQlFWEFCWVRFIENPUlBPUkFUSU9OCisJCQkJMTY4NSAzOFRIIFNUUkVFVAorCQkJCUJPVUxERVIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTgxICAgKGhleCkJCVJURCBFbWJlZGRlZCBUZWNobm9sb2dpZXMsIEluYy4KKzAwRDA4MSAgICAgKGJhc2UgMTYpCQlSVEQgRW1iZWRkZWQgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTAzIElubm92YXRpb24gQmx2ZC4KKwkJCQlTdGF0ZSBDb2xsZWdlIFBBIDE2ODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04MiAgIChoZXgpCQlJT1dBVkUgSU5DLgorMDBEMDgyICAgICAoYmFzZSAxNikJCUlPV0FWRSBJTkMuCisJCQkJMTAxMCBXSVNDT05TSU4gQVZFTlVFCisJCQkJV0FTSElOR1RPTiBEQyAyMDAwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtODMgICAoaGV4KQkJSU5WRVJURVgsIElOQy4KKzAwRDA4MyAgICAgKGJhc2UgMTYpCQlJTlZFUlRFWCwgSU5DLgorCQkJCTEwMTIgTU9SU0UgQVZFTlVFLSBTVEUuIzkKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTg0ICAgKGhleCkJCU5FWENPTU0gU1lTVEVNUywgSU5DLgorMDBEMDg0ICAgICAoYmFzZSAxNikJCU5FWENPTU0gU1lTVEVNUywgSU5DLgorCQkJCVNVSVQgI05BTC05MDMsCisJCQkJU1VOR05BTSBURUNITk8tUEFSSyAxNDggWUFUQVAtRE9ORywgQlVORAorCQkJCVNVTkdOQU0tQ0lUWSBTVU5HTkFNLUNJVFkgS1lVTkdHSS1ETyxLCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQwLTg1ICAgKGhleCkJCU9USVMgRUxFVkFUT1IgQ09NUEFOWQorMDBEMDg1ICAgICAoYmFzZSAxNikJCU9USVMgRUxFVkFUT1IgQ09NUEFOWQorCQkJCTUgRkFSTSBTUFJJTkdTIFJELgorCQkJCUZBUk1JTkdUT04gQ1QgMDYwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTg2ICAgKGhleCkJCUZPVkVPTiwgSU5DLgorMDBEMDg2ICAgICAoYmFzZSAxNikJCUZPVkVPTiwgSU5DLgorCQkJCTI4MjAgU2FuIFRvbWFzIEV4cHJlc3N3YXkKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtODcgICAoaGV4KQkJTUlDUk9GSVJTVCBJTkMuCiswMEQwODcgICAgIChiYXNlIDE2KQkJTUlDUk9GSVJTVCBJTkMuCisJCQkJMTEgRUFTVCBPQUsgU1RSRUVUCisJCQkJT0FLTEFORCBOSiAwNzQzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtODggICAoaGV4KQkJTW90b3JvbGEsIEluYy4KKzAwRDA4OCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSwgSW5jLgorCQkJCTI0NTAgV2Fsc2ggQXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTg5ICAgKGhleCkJCURZTkFDT0xPUiwgSU5DLgorMDBEMDg5ICAgICAoYmFzZSAxNikJCURZTkFDT0xPUiwgSU5DLgorCQkJCU5vLjExNiwgWmhvdXppIFN0LiwgTmVpaHUgRGlzdC4KKwkJCQlUYWlwZWkgQ2l0eSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC04QSAgIChoZXgpCQlQSE9UUk9OIFVTQQorMDBEMDhBICAgICAoYmFzZSAxNikJCVBIT1RST04gVVNBCisJCQkJMTEwMSBTLiBXSU5DSEVTVEVSIEJMVkQuCisJCQkJU1VJVEUgI0QtMTQ0CisJCQkJU0FOIEpPU0UgQ0EgOTUxMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLThCICAgKGhleCkJCUFEVkEgT3B0aWNhbCBOZXR3b3JraW5nIEx0ZAorMDBEMDhCICAgICAoYmFzZSAxNikJCUFEVkEgT3B0aWNhbCBOZXR3b3JraW5nIEx0ZAorCQkJCUNMSUZUT04gVEVDSE5PTE9HWSBDRU5UUkUKKwkJCQlDTElGVE9OIE1PT1IKKwkJCQlZT1JLIE5PUlRIIFlPUktTSElSRSBZTzMwIDRHVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLThDICAgKGhleCkJCUdFTk9BIFRFQ0hOT0xPR1ksIElOQy4KKzAwRDA4QyAgICAgKGJhc2UgMTYpCQlHRU5PQSBURUNITk9MT0dZLCBJTkMuCisJCQkJNTQwMSBURUNIIENJUkNMRQorCQkJCU1PT1JQQVJLIENBIDkzMDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04RCAgIChoZXgpCQlQSE9FTklYIEdST1VQLCBJTkMuCiswMEQwOEQgICAgIChiYXNlIDE2KQkJUEhPRU5JWCBHUk9VUCwgSU5DLgorCQkJCTEyMyBNQVJDVVMgQkxWRC4KKwkJCQlIQVVQUEFVR0UgTlkgMTE3ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLThFICAgKGhleCkJCU5WSVNJT04gSU5DLgorMDBEMDhFICAgICAoYmFzZSAxNikJCU5WSVNJT04gSU5DLgorCQkJCTEyNSBDUk9XTiBQT0lOVCBDT1VSVAorCQkJCUdSQVNTIFZBTExFWSBDQSA5NTk0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOEYgICAoaGV4KQkJQVJERU5UIFRFQ0hOT0xPR0lFUywgSU5DLgorMDBEMDhGICAgICAoYmFzZSAxNikJCUFSREVOVCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkyNTAgTi4gV09MRkUgUk9BRAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOTAgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBEMDkwICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOTEgICAoaGV4KQkJU01BUlRTQU4gU1lTVEVNUywgSU5DLgorMDBEMDkxICAgICAoYmFzZSAxNikJCVNNQVJUU0FOIFNZU1RFTVMsIElOQy4KKwkJCQk0NjU1IE9MRCBJUk9OU0lERVMgRFIuICM0ODAKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOTIgICAoaGV4KQkJR0xFTkFZUkUgV0VTVEVSTiBNVUxUSVBMRVgKKzAwRDA5MiAgICAgKGJhc2UgMTYpCQlHTEVOQVlSRSBXRVNURVJOIE1VTFRJUExFWAorCQkJCTExOTYgQk9SUkVHQVMgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC05MyAgIChoZXgpCQlUUSAtIENPTVBPTkVOVFMgR01CSAorMDBEMDkzICAgICAoYmFzZSAxNikJCVRRIC0gQ09NUE9ORU5UUyBHTUJICisJCQkJR1VUIERFTExJTkcgLSBNVUhMU1RSIDIKKwkJCQlELTgyMjI5IFNFRUZFTEQKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1EMC05NCAgIChoZXgpCQlUSU1FTElORSBWSVNUQSwgSU5DLgorMDBEMDk0ICAgICAoYmFzZSAxNikJCVRJTUVMSU5FIFZJU1RBLCBJTkMuCisJCQkJMTc1NS1CIExBIENPU1RBIE1FQURPV1MgRFJJVkUKKwkJCQlTQU4gTUFSQ09TIENBIDkyMDY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC05NSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudCwgRW50ZXJwcmlzZSBCdXNpbmVzcyBHcm91cAorMDBEMDk1ICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50LCBFbnRlcnByaXNlIEJ1c2luZXNzIEdyb3VwCisJCQkJMjY4MDEgV2VzdCBBZ291cmEgUm9hZAorCQkJCUNBTEFCQVNBUyBDQSA5MTMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOTYgICAoaGV4KQkJM0NPTSBFVVJPUEUgTFRELgorMDBEMDk2ICAgICAoYmFzZSAxNikJCTNDT00gRVVST1BFIExURC4KKwkJCQlCT1VOREFSWSBXQVkKKwkJCQlIRU1FTCBIRU1QU1RFQUQgSEVSVFMuIEhQMiA3WVUKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLTk3ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDA5NyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJTS9TIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTk4ICAgKGhleCkJCVBob3RvbiBEeW5hbWljcyBDYW5hZGEgSW5jLgorMDBEMDk4ICAgICAoYmFzZSAxNikJCVBob3RvbiBEeW5hbWljcyBDYW5hZGEgSW5jLgorCQkJCTIyMSBXaGl0ZWhhbGwgRHJpdmUKKwkJCQlNYXJraGFtLCBPbnRhcmlvCisJCQkJTDNSIDlUMQorCQkJCUNBTkFEQQorCiswMC1EMC05OSAgIChoZXgpCQlFTENBUkQgT1kKKzAwRDA5OSAgICAgKGJhc2UgMTYpCQlFTENBUkQgT1kKKwkJCQlQLk8uIEJPWCAxMjAvQkVDS0VSSU5USUMgMzgKKwkJCQk1MTIwMSBLQU5HQVNOSUVNSQorCQkJCUZJTkxBTkQKKwkJCQlGSU5MQU5ECisKKzAwLUQwLTlBICAgKGhleCkJCUZJTEFORVQgQ09SUE9SQVRJT04KKzAwRDA5QSAgICAgKGJhc2UgMTYpCQlGSUxBTkVUIENPUlBPUkFUSU9OCisJCQkJOTMxIEJlbmVjaWEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC05QiAgIChoZXgpCQlTUEVDVEVMIExURC4KKzAwRDA5QiAgICAgKGJhc2UgMTYpCQlTUEVDVEVMIExURC4KKwkJCQkyMSBTVElMTE9SR0FOIElORFVTVFJJQUwgUEFSSworCQkJCVNUSUxMT1JHQU4sIENPLiBEVUJMSU4KKwkJCQlJUkVMQU5ECisJCQkJSVJFTEFORAorCiswMC1EMC05QyAgIChoZXgpCQlLQVBBRElBIENPTU1VTklDQVRJT05TCiswMEQwOUMgICAgIChiYXNlIDE2KQkJS0FQQURJQSBDT01NVU5JQ0FUSU9OUworCQkJCTM5MjUgV0VTVCBCUk9LRVIgTEFORQorCQkJCUFVU1RJTiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOUQgICAoaGV4KQkJVkVSSVMgSU5EVVNUUklFUworMDBEMDlEICAgICAoYmFzZSAxNikJCVZFUklTIElORFVTVFJJRVMKKwkJCQkxMDgzMSBTVyBDQVNDQURFCisJCQkJUE9SVExBTkQgT1IgOTcyMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTlFICAgKGhleCkJCTJXSVJFLCBJTkMuCiswMEQwOUUgICAgIChiYXNlIDE2KQkJMldJUkUsIElOQy4KKwkJCQk2OTQgVEFTTUFOIERSSVZFCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTlGICAgKGhleCkJCU5PVlRFSyBURVNUIFNZU1RFTVMKKzAwRDA5RiAgICAgKGJhc2UgMTYpCQlOT1ZURUsgVEVTVCBTWVNURU1TCisJCQkJMjE3MCBQQVJBR09OIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUEwICAgKGhleCkJCU1JUFMgREVOTUFSSworMDBEMEEwICAgICAoYmFzZSAxNikJCU1JUFMgREVOTUFSSworCQkJCUxBVVRSVVBWQU5HIDJCCisJCQkJMjc1MCBCQUxMRVJVUAorCQkJCURLIC0gREVOTUFSSworCQkJCURFTk1BUksKKworMDAtRDAtQTEgICAoaGV4KQkJT1NLQVIgVklFUkxJTkcgR01CSCArIENPLiBLRworMDBEMEExICAgICAoYmFzZSAxNikJCU9TS0FSIFZJRVJMSU5HIEdNQkggKyBDTy4gS0cKKwkJCQlQUkVUWkZFTERFUiBTVFIuIDIxCisJCQkJOTEzMjAgRUJFUk1BTk5TVEFEVAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLUEyICAgKGhleCkJCUlOVEVHUkFURUQgREVWSUNFCiswMEQwQTIgICAgIChiYXNlIDE2KQkJSU5URUdSQVRFRCBERVZJQ0UKKwkJCQlURUNITk9MT0dZLCBJTkMuCisJCQkJMjk3NSBTVEVOREVSIFdBWSAgTS9TIDAtMzE4CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUEzICAgKGhleCkJCVZPQ0FMIERBVEEsIElOQy4KKzAwRDBBMyAgICAgKGJhc2UgMTYpCQlWT0NBTCBEQVRBLCBJTkMuCisJCQkJMTcwMSBOIEdSRUVOVklMTEUgIzMwNAorCQkJCVJJQ0hBUkRTT04gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUE0ICAgKGhleCkJCUFMQU5UUk8gQ09NTVVOSUNBVElPTlMKKzAwRDBBNCAgICAgKGJhc2UgMTYpCQlBTEFOVFJPIENPTU1VTklDQVRJT05TCisJCQkJMTQxIFNUT05ZIENJUkNMRSwgIFNURS4gIzIxMAorCQkJCVNBTlRBUk9TQSBDQSA5NTQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQTUgICAoaGV4KQkJQU1FUklDQU4gQVJJVU0KKzAwRDBBNSAgICAgKGJhc2UgMTYpCQlBTUVSSUNBTiBBUklVTQorCQkJCTE0MjgxIENIQU1CRVJTIFJPQUQKKwkJCQlUVVNUSU4gQ0EgOTI3ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUE2ICAgKGhleCkJCUxBTkJJUkQgVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwRDBBNiAgICAgKGJhc2UgMTYpCQlMQU5CSVJEIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJUk9PTSBBLTIxMSwgUy5CLkkuCisJCQkJNjQ3LTI2LCBERVVOR0NIT04tRE9ORywgS0FOR1NFTy1HVSwgIFNFTworCQkJCUtPUkVBIDE1Ny0wMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtRDAtQTcgICAoaGV4KQkJVE9LWU8gU09LS0kgS0VOS1lVSk8gQ08uLCBMVEQuCiswMEQwQTcgICAgIChiYXNlIDE2KQkJVE9LWU8gU09LS0kgS0VOS1lVSk8gQ08uLCBMVEQuCisJCQkJOC0yLCBNSU5BTUktT0hJIDYtQ0hPTUUKKwkJCQlTSElOQUdBV0EtS1UgVE9LWU8KKwkJCQlKQVBBTiAxNDAtODU2MAorCQkJCUpBUEFOCisKKzAwLUQwLUE4ICAgKGhleCkJCU5FVFdPUksgRU5HSU5FUywgSU5DLgorMDBEMEE4ICAgICAoYmFzZSAxNikJCU5FVFdPUksgRU5HSU5FUywgSU5DLgorCQkJCTYxIFBMRUFTQU5UIFNUUkVFVAorCQkJCVJBTkRPTFBIIE1BIDAyMzY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BOSAgIChoZXgpCQlTSElOQU5PIEtFTlNISSBDTy4sIExURC4KKzAwRDBBOSAgICAgKGJhc2UgMTYpCQlTSElOQU5PIEtFTlNISSBDTy4sIExURC4KKwkJCQlFTEVDVFJPTklDIEVRVUlQTUVOVCBESVZJU0lPTgorCQkJCTYtMTUtMjYsIENIVU8sIFVFREEtU0hJIE5BR0FOTy1LRU4sIDM4Ni0KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUQwLUFBICAgKGhleCkJCUNIQVNFIENPTU1VTklDQVRJT05TCiswMEQwQUEgICAgIChiYXNlIDE2KQkJQ0hBU0UgQ09NTVVOSUNBVElPTlMKKwkJCQlTVC4gTEVPTkFSRFMgUk9BRAorCQkJCUVBU1QgU0hFRU4gTE9ORE9OIFNXMTYgN0xZCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC1BQiAgIChoZXgpCQlERUxUQUtBQkVMIFRFTEVDT00gQ1YKKzAwRDBBQiAgICAgKGJhc2UgMTYpCQlERUxUQUtBQkVMIFRFTEVDT00gQ1YKKwkJCQlIQU5aRVdFRyAxNAorCQkJCTI4MDMgTUMgR09VREEKKwkJCQlUSEUgTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC1EMC1BQyAgIChoZXgpCQlHUkFZU09OIFdJUkVMRVNTCiswMEQwQUMgICAgIChiYXNlIDE2KQkJR1JBWVNPTiBXSVJFTEVTUworCQkJCTE0MCBWSVNUQSBDRU5UUkUgRFJJVkUKKwkJCQlGT1JFU1QgVkEgMjQ1NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUFEICAgKGhleCkJCVRMIElORFVTVFJJRVMKKzAwRDBBRCAgICAgKGJhc2UgMTYpCQlUTCBJTkRVU1RSSUVTCisJCQkJMjU0MSBUUkFDWSBST0FECisJCQkJTk9SVEhXT09EIE9IIDQzNjE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BRSAgIChoZXgpCQlPUkVTSVMgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwRDBBRSAgICAgKGJhc2UgMTYpCQlPUkVTSVMgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxNDY3MCBOVyBHUkVFTkJSSUVSIFBLV1kKKwkJCQlCRUFWRVJUT04gT1IgOTcwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUFGICAgKGhleCkJCUNVVExFUi1IQU1NRVIsIElOQy4KKzAwRDBBRiAgICAgKGJhc2UgMTYpCQlDVVRMRVItSEFNTUVSLCBJTkMuCisJCQkJUE1QIENFTlRFUgorCQkJCTI0MCBWSVNUQSBQQVJLIERSSVZFCisJCQkJUElUVFNCVVJHSCBQQSAxNTIwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQjAgICAoaGV4KQkJQklUU1dJVENIIExURC4KKzAwRDBCMCAgICAgKGJhc2UgMTYpCQlCSVRTV0lUQ0ggTFRELgorCQkJCTMgTUVBRE9XIENPVVJULCBBTU9TIFJPQUQKKwkJCQlNRUFET1dIQUxMLCBTSEVGRklFTEQgUzkgMUJYCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC1CMSAgIChoZXgpCQlPTUVHQSBFTEVDVFJPTklDUyBTQQorMDBEMEIxICAgICAoYmFzZSAxNikJCU9NRUdBIEVMRUNUUk9OSUNTIFNBCisJCQkJUk9VVEUgREUgU09MRVVSRSA2OAorCQkJCUNILTI1MDAgQklFTk5FIDQKKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLUQwLUIyICAgKGhleCkJCVhJT1RFQ0ggQ09SUE9SQVRJT04KKzAwRDBCMiAgICAgKGJhc2UgMTYpCQlYSU9URUNIIENPUlBPUkFUSU9OCisJCQkJNjQ1NSBGTFlJTkcgQ0xPVUQgRFJJVkUKKwkJCQlFREVOIFBSQUlSSUUgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUIzICAgKGhleCkJCURSUyBGTElHSFQgU0FGRVRZIEFORAorMDBEMEIzICAgICAoYmFzZSAxNikJCURSUyBGTElHSFQgU0FGRVRZIEFORAorCQkJCUNPTU1VTklDQVRJT05TCisJCQkJNDAgQ09OQ09VUlNFIEdBVEUgTkVQRUFOCisJCQkJQ0FOQURBIEsyRSA4QTYKKwkJCQlDQU5BREEKKworMDAtRDAtQjQgICAoaGV4KQkJS0FUU1VKSU1BIENPLiwgTFRELgorMDBEMEI0ICAgICAoYmFzZSAxNikJCUtBVFNVSklNQSBDTy4sIExURC4KKwkJCQkxLTYtMS0sIFNISVJBVE9SSQorCQkJCUtBVFNVU0hJS0EtS1UgVE9LWU8gMTI1LTAwNjMKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUQwLUI1ICAgKGhleCkJCUlQcmljb3QgZm9ybWVybHkgRG90Q29tCiswMEQwQjUgICAgIChiYXNlIDE2KQkJSVByaWNvdCBmb3JtZXJseSBEb3RDb20KKwkJCQkxMC0xMiwgYXZlbnVlIGRlIFZlcmR1bgorCQkJCUxhLUdhcmVubmUtQ29sb21iZXMgIEYtOTIyNTAKKwkJCQlGUkFOQ0UKKworMDAtRDAtQjYgICAoaGV4KQkJQ1JFU0NFTlQgTkVUV09SS1MsIElOQy4KKzAwRDBCNiAgICAgKGJhc2UgMTYpCQlDUkVTQ0VOVCBORVRXT1JLUywgSU5DLgorCQkJCTIwMSBSSVZFUk5FQ0sgUk9BRAorCQkJCUNIRUxNU0ZPUkQgTUEgMDE4NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUI3ICAgKGhleCkJCUlOVEVMIENPUlBPUkFUSU9OCiswMEQwQjcgICAgIChiYXNlIDE2KQkJSU5URUwgQ09SUE9SQVRJT04KKwkJCQk1MjAwIE5FIEVMQU0gWU9VTkcgUEFSS1dBWQorCQkJCUhGMS0wOAorCQkJCUhJTExTQk9STyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQjggICAoaGV4KQkJSW9tZWdhIENvcnBvcmF0aW9uCiswMEQwQjggICAgIChiYXNlIDE2KQkJSW9tZWdhIENvcnBvcmF0aW9uCisJCQkJCisJCQkJQ0FOQURBCisKKzAwLUQwLUI5ICAgKGhleCkJCU1JQ1JPVEVLIElOVEVSTkFUSU9OQUwsIElOQy4KKzAwRDBCOSAgICAgKGJhc2UgMTYpCQlNSUNST1RFSyBJTlRFUk5BVElPTkFMLCBJTkMuCisJCQkJTk8uIDYgSU5EVVNUUlkgRUFTVCBST0FEIDMKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSyBIU0lOQ0hVCisJCQkJVEFJV0FOIDMwMDc3IFRBSVdBTiAzMDA3NyBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLUJBICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDBCQSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFLSBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1CQiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEQwQkIgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRSAgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQkMgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBEMEJDICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUtU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQkQgICAoaGV4KQkJU2lsaWNvbiBJbWFnZSBHbWJICiswMEQwQkQgICAgIChiYXNlIDE2KQkJU2lsaWNvbiBJbWFnZSBHbWJICisJCQkJR2FyYnNlbmVyIExhbmRzdHIuIDEwCisJCQkJRC0zMDQxOSBIYW5ub3ZlcgorCQkJCUdFUk1BTlkKKworMDAtRDAtQkUgICAoaGV4KQkJRU1VVEVDIElOQy4KKzAwRDBCRSAgICAgKGJhc2UgMTYpCQlFTVVURUMgSU5DLgorCQkJCVAuTy4gQk9YIDMwMzUKKwkJCQlFVkVSRVRUIFdBIDk4MjAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1CRiAgIChoZXgpCQlQSVZPVEFMIFRFQ0hOT0xPR0lFUworMDBEMEJGICAgICAoYmFzZSAxNikJCVBJVk9UQUwgVEVDSE5PTE9HSUVTCisJCQkJNzAgUy4gTEFLRSBBVkVOVUUgLSBTVEUuICM5MDAKKwkJCQlQQVNBREVOQSBDQSA5MTEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQzAgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBEMEMwICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFIuICBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1DMSAgIChoZXgpCQlIQVJNT05JQyBEQVRBIFNZU1RFTVMsIExURC4KKzAwRDBDMSAgICAgKGJhc2UgMTYpCQlIQVJNT05JQyBEQVRBIFNZU1RFTVMsIExURC4KKwkJCQkxMCBCRUlUIFNIQU1BSSBTVFJFRVQKKwkJCQlURUwtQVZJVgorCQkJCUlTUkFFTCA2NzAxOAorCQkJCUlTUkFFTAorCiswMC1EMC1DMiAgIChoZXgpCQlCQUxUSEFaQVIgVEVDSE5PTE9HWSBBQgorMDBEMEMyICAgICAoYmFzZSAxNikJCUJBTFRIQVpBUiBURUNITk9MT0dZIEFCCisJCQkJQU5LREFNTVNHQVRBTiAyNAorCQkJCVMtMTcxNDMgU09MTkEKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtRDAtQzMgICAoaGV4KQkJVklWSUQgVEVDSE5PTE9HWSBQVEUsIExURC4KKzAwRDBDMyAgICAgKGJhc2UgMTYpCQlWSVZJRCBURUNITk9MT0dZIFBURSwgTFRELgorCQkJCTEwMDMgQlVLSVQgTUVSQUggQ0VOVFJBTAorCQkJCSMwMy0wOSwgUzE1OTgzNgorCQkJCVNJTkdBUE9SRQorCQkJCVNJTkdBUE9SRQorCiswMC1EMC1DNCAgIChoZXgpCQlURVJBVEVDSCBDT1JQT1JBVElPTgorMDBEMEM0ICAgICAoYmFzZSAxNikJCVRFUkFURUNIIENPUlBPUkFUSU9OCisJCQkJMjIzIE1JRERMRVNFWCBUUlBLLgorCQkJCUJVUkxJTkdUT04gTUEgMDE4MDMtMzMwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQzUgICAoaGV4KQkJQ09NUFVUQVRJT05BTCBTWVNURU1TLCBJTkMuCiswMEQwQzUgICAgIChiYXNlIDE2KQkJQ09NUFVUQVRJT05BTCBTWVNURU1TLCBJTkMuCisJCQkJODM1IElOTk9WQVRJT04gRFJJVkUKKwkJCQlLTk9YVklMTEUgVE4gMzc5MzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUM2ICAgKGhleCkJCVRIT01BUyAmIEJFVFRTIENPUlAuCiswMEQwQzYgICAgIChiYXNlIDE2KQkJVEhPTUFTICYgQkVUVFMgQ09SUC4KKwkJCQlUaG9tYXMgJiBCZXR0cyBBdXN0LiBQdHkuIEx0ZC4KKwkJCQkyM2EgTnlyYW5nIFN0cmVldAorCQkJCUxpZGNvbWJlIE5ldyBTb3V0aCBXYWxlcyA5MjYxOAorCQkJCUFVU1RSQUxJQQorCiswMC1EMC1DNyAgIChoZXgpCQlQQVRIV0FZLCBJTkMuCiswMEQwQzcgICAgIChiYXNlIDE2KQkJUEFUSFdBWSwgSU5DLgorCQkJCTc3NyBCRVRBIERSSVZFCisJCQkJTUFZRklFTEQgVklMTEFHRSBPSCA0NDE0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQzggICAoaGV4KQkJUHJldmFzIEEvUworMDBEMEM4ICAgICAoYmFzZSAxNikJCVByZXZhcyBBL1MKKwkJCQlGcmVkZXJpa3NrYWogNgorCQkJCURLLTI0NTAgSz9iZW5oYXZuIFNWIAorCQkJCURFTk1BUksKKworMDAtRDAtQzkgICAoaGV4KQkJQURWQU5URUNIIENPLiwgTFRELgorMDBEMEM5ICAgICAoYmFzZSAxNikJCUFEVkFOVEVDSCBDTy4sIExURC4KKwkJCQlGTC4gNCwgTk8uICAxMDgtMworCQkJCU1JTkctQ0hVQU4gUk9BRCBTSElORy1USUVOIENJVFkKKwkJCQlUQUlQRUkgVEFJUEVJIFRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtQ0EgICAoaGV4KQkJSW50cmluc3ljIFNvZnR3YXJlIEludGVybmF0aW9uYWwgSW5jLgorMDBEMENBICAgICAoYmFzZSAxNikJCUludHJpbnN5YyBTb2Z0d2FyZSBJbnRlcm5hdGlvbmFsIEluYy4KKwkJCQk3MDAgV2VzdCBQZW5kZXIgU3RyZWV0CisJCQkJMTB0aCBmbG9vcgorCQkJCVZhbmNvdXZlciBCLkMuIFY2QyAxRzgKKwkJCQlDQU5BREEKKworMDAtRDAtQ0IgICAoaGV4KQkJREFTQU4gQ08uLCBMVEQuCiswMEQwQ0IgICAgIChiYXNlIDE2KQkJREFTQU4gQ08uLCBMVEQuCisJCQkJNkYsIEtPU01PIFRPV0VSCisJCQkJMTAwMiwgREFFQ0hJLURPTkcsIEtBTkdOQU0tS1UgU0VPVUwKKwkJCQlLT1JFQSAoWklQIDEzNS0yODApCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQwLUNDICAgKGhleCkJCVRFQ0hOT0xPR0lFUyBMWVJFIElOQy4KKzAwRDBDQyAgICAgKGJhc2UgMTYpCQlURUNITk9MT0dJRVMgTFlSRSBJTkMuCisJCQkJMTIwMCBTVC1KRUFOLUJBUFRJU1RFLAorCQkJCVNVSVRFICMxMjAgUVVFQkVDLCBRVUVCRUMKKwkJCQlDQU5BREEgRzJFIDVFOAorCQkJCUNBTkFEQQorCiswMC1EMC1DRCAgIChoZXgpCQlBVEFOIFRFQ0hOT0xPR1kgSU5DLgorMDBEMENEICAgICAoYmFzZSAxNikJCUFUQU4gVEVDSE5PTE9HWSBJTkMuCisJCQkJIzUsIEFMTEVZIDE4LCBMQU5FIDgxLAorCQkJCUNISUVOIEtBTkcsIDJORCBST0FEIEhJTkNIVQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC1DRSAgIChoZXgpCQlBU1lTVCBFTEVDVFJPTklDCiswMEQwQ0UgICAgIChiYXNlIDE2KQkJQVNZU1QgRUxFQ1RST05JQworCQkJCUJST0RJU0NFIDcsIDEwQyBUUlpJTgorCQkJCTEyMzYgVFJaSU4KKwkJCQlTTE9WRU5JQQorCQkJCVNMT1ZFTklBCisKKzAwLUQwLUNGICAgKGhleCkJCU1PUkVUT04gQkFZCiswMEQwQ0YgICAgIChiYXNlIDE2KQkJTU9SRVRPTiBCQVkKKwkJCQkxMi85NyBKSUpBV1MgU1RSRUVUCisJCQkJU1VNTkVSIFBBUksuIDQwNzQgUUxELgorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC1EMC1EMCAgIChoZXgpCQlaSE9OR1hJTkcgVEVMRUNPTSBMVEQuCiswMEQwRDAgICAgIChiYXNlIDE2KQkJWkhPTkdYSU5HIFRFTEVDT00gTFRELgorCQkJCTgtOUYgQlVJTERJTkcgNTQsMzAxIworCQkJCVpIT05HIFNIQU4gRE9OR0xVLCBOQU5KSU5HIFBSQywgUEM9MjEwMDAKKwkJCQlDSElOQQorCQkJCUNISU5BCisKKzAwLUQwLUQxICAgKGhleCkJCVN5Y2Ftb3JlIE5ldHdvcmtzCiswMEQwRDEgICAgIChiYXNlIDE2KQkJU3ljYW1vcmUgTmV0d29ya3MKKwkJCQkyMjAgTWlsbCBSZAorCQkJCUNoZWxtc2ZvcmQgTUEgMDE4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUQyICAgKGhleCkJCUVQSUxPRyBDT1JQT1JBVElPTgorMDBEMEQyICAgICAoYmFzZSAxNikJCUVQSUxPRyBDT1JQT1JBVElPTgorCQkJCTUwMCBDT1JQT1JBVEUgQ0lSQ0xFIC0gU1RFLgorCQkJCUdPTERFTiBDTyA4MDQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRDMgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBEMEQzICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUKKwkJCQlNL1MgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRDQgICAoaGV4KQkJVi1CSVRTLCBJTkMuCiswMEQwRDQgICAgIChiYXNlIDE2KQkJVi1CSVRTLCBJTkMuCisJCQkJMjE1MCBUUkFERSBaT05FIEJMVkQuCisJCQkJU1VJVEUgIzEwNQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1ENSAgIChoZXgpCQlHUlVORElHIEFHCiswMEQwRDUgICAgIChiYXNlIDE2KQkJR1JVTkRJRyBBRworCQkJCUtVUkdBUlRFTlNHVFJFRVQgMzcKKwkJCQlELTkwNzYyIEZVRVJUSC9CQVlFUk4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1EMC1ENiAgIChoZXgpCQlBRVRIUkEgVEVMRUNPTVVOSUNBWklPTkkKKzAwRDBENiAgICAgKGJhc2UgMTYpCQlBRVRIUkEgVEVMRUNPTVVOSUNBWklPTkkKKwkJCQlWSUEgTUFUVEVPIFJJQ0NJLCAxMAorCQkJCTYwMDIwIEFOQ09OQQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtRDAtRDcgICAoaGV4KQkJQjJDMiwgSU5DLgorMDBEMEQ3ICAgICAoYmFzZSAxNikJCUIyQzIsIElOQy4KKwkJCQkyMDIwIENIQUxMRU5HRVIgRFJJVkUtCisJCQkJU1VJVEUgIzEwMQorCQkJCUFMQU1FREEgQ0EgOTQ1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUQ4ICAgKGhleCkJCTNDb20gQ29ycG9yYXRpb24KKzAwRDBEOCAgICAgKGJhc2UgMTYpCQkzQ29tIENvcnBvcmF0aW9uCisJCQkJMjEzMyBMRUdIT1JOIFNUUkVFVAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUQ5ICAgKGhleCkJCURFRElDQVRFRCBNSUNST0NPTVBVVEVSUworMDBEMEQ5ICAgICAoYmFzZSAxNikJCURFRElDQVRFRCBNSUNST0NPTVBVVEVSUworCQkJCUdST1VQLCBMVEQuCisJCQkJMTEgT0FLIFNUUkVFVCwgUEVORExFQlVSWSBTV0lOVE9OLCBNQU5DSAorCQkJCU0yNzRGTCBVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLURBICAgKGhleCkJCVRBSUNPTSBEQVRBIFNZU1RFTVMgQ08uLCBMVEQuCiswMEQwREEgICAgIChiYXNlIDE2KQkJVEFJQ09NIERBVEEgU1lTVEVNUyBDTy4sIExURC4KKwkJCQk0NSwgV1UtS1VORyA1IFJPQUQKKwkJCQlXVS1LVSBJTkQuIFBBVksgVEFJUEVJLUhTSUVOCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC1EQiAgIChoZXgpCQlNQ1FVQVkgSU5URVJOQVRJT05BTAorMDBEMERCICAgICAoYmFzZSAxNikJCU1DUVVBWSBJTlRFUk5BVElPTkFMCisJCQkJMTM2MDAgSU5EVVNUUklBTCBQQVJLIEJMVkQuCisJCQkJTUlOTkVBUE9MSVMgTU4gNTU0NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLURDICAgKGhleCkJCU1PRFVMQVIgTUlOSU5HIFNZU1RFTVMsIElOQy4KKzAwRDBEQyAgICAgKGJhc2UgMTYpCQlNT0RVTEFSIE1JTklORyBTWVNURU1TLCBJTkMuCisJCQkJMzI4OSBFLiBIRU1JU1BIRVJFIExPT1AKKwkJCQlUVUNTT04gQVogODU3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUREICAgKGhleCkJCVNVTlJJU0UgVEVMRUNPTSwgSU5DLgorMDBEMEREICAgICAoYmFzZSAxNikJCVNVTlJJU0UgVEVMRUNPTSwgSU5DLgorCQkJCTIyIEdSRUFUIE9BS1MgQkxWRC4KKwkJCQlTQU4gSk9TRSBDQSA5NTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtREUgICAoaGV4KQkJUEhJTElQUyBNVUxUSU1FRElBIE5FVFdPUksKKzAwRDBERSAgICAgKGJhc2UgMTYpCQlQSElMSVBTIE1VTFRJTUVESUEgTkVUV09SSworCQkJCVNZU1RFTVMgR01CSAorCQkJCUZJQ0hURVNUUkFTU0UgMUEgRC0wMjYwMSBCQVVUWkVOCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtRDAtREYgICAoaGV4KQkJS1VaVU1JIEVMRUNUUk9OSUNTLCBJTkMuCiswMEQwREYgICAgIChiYXNlIDE2KQkJS1VaVU1JIEVMRUNUUk9OSUNTLCBJTkMuCisJCQkJMjgtNiBJSUpJTUEtQ0hZTywgU0FLQUUtS1UKKwkJCQlZT0tPSEFNQS1TSEkgS0FOQUdBV0EsIDI0NC0wODQyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1EMC1FMCAgIChoZXgpCQlET09JTiBFTEVDVFJPTklDUyBDTy4KKzAwRDBFMCAgICAgKGJhc2UgMTYpCQlET09JTiBFTEVDVFJPTklDUyBDTy4KKwkJCQlET09JTiBCTERHLiAxNi02LCBTT09OQUUtRE9ORworCQkJCUJVTkRBTkctR1UsIFNVTkdOQU0tU0kgS1lVTkdHSS1ETworCQkJCUtPUkVBIDQ2My0wMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtRDAtRTEgICAoaGV4KQkJQVZJT05JVEVLIElTUkFFTCBJTkMuCiswMEQwRTEgICAgIChiYXNlIDE2KQkJQVZJT05JVEVLIElTUkFFTCBJTkMuCisJCQkJMSBFVEdBUiBTVFJFRVQKKwkJCQlUSVJBVCAgQ0FSTUVMICAzOTEyMAorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC1EMC1FMiAgIChoZXgpCQlNUlQgTUlDUk8sIElOQy4KKzAwRDBFMiAgICAgKGJhc2UgMTYpCQlNUlQgTUlDUk8sIElOQy4KKwkJCQkxNDAwMCBTLiBNSUxJVEFSWSBUUkFJTAorCQkJCURFTFJBWSBCRUFDSCBGTCAzMzQ4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRTMgICAoaGV4KQkJRUxFLUNIRU0gRU5HSU5FRVJJTkcgQ08uLCBMVEQuCiswMEQwRTMgICAgIChiYXNlIDE2KQkJRUxFLUNIRU0gRU5HSU5FRVJJTkcgQ08uLCBMVEQuCisJCQkJV0lORFNUT05FIE9GRklDRQorCQkJCTEtODAzLCAyNzUtMiBZQU5HSlVFLURPTkcsIFNFT0NITy1LVQorCQkJCVNFT1VMIDEzNy0xMzAgU0VPVUwgMTM3LTEzMCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1EMC1FNCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEQwRTQgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1FNSAgIChoZXgpCQlTT0xJRFVNIFNZU1RFTVMgQ09SUC4KKzAwRDBFNSAgICAgKGJhc2UgMTYpCQlTT0xJRFVNIFNZU1RFTVMgQ09SUC4KKwkJCQk5NDAgQkVMRkFTVCBST0FEIDFTLjIxNworCQkJCU9UVEFXQSwgT05UQVJJTyBLMUcgNEEyCisJCQkJQ0FOQURBCisJCQkJQ0FOQURBCisKKzAwLUQwLUU2ICAgKGhleCkJCUlCT05EIElOQy4KKzAwRDBFNiAgICAgKGJhc2UgMTYpCQlJQk9ORCBJTkMuCisJCQkJMzE2MCwgREUgTEEgQ1JVWiBCTFZELgorCQkJCVNVSVRFICMxMDEKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRTcgICAoaGV4KQkJVkNPTiBURUxFQ09NTVVOSUNBVElPTiBMVEQuCiswMEQwRTcgICAgIChiYXNlIDE2KQkJVkNPTiBURUxFQ09NTVVOSUNBVElPTiBMVEQuCisJCQkJMjIgTUFTS0lUIFNUUkVFVAorCQkJCUhFUlpMSVlBICA0NjczMworCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC1EMC1FOCAgIChoZXgpCQlNQUMgU1lTVEVNIENPLiwgTFRELgorMDBEMEU4ICAgICAoYmFzZSAxNikJCU1BQyBTWVNURU0gQ08uLCBMVEQuCisJCQkJUiZEIElOU1RJVFVURQorCQkJCU1BQyBTWVNURU0gQ08uLCBMVEQuIDIxOS0yIEFOQU5HNy1ET05HLAorCQkJCUtZVU5HS0ktRE8gS09SRUEsIDQzMC0wMTcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtRDAtRTkgICAoaGV4KQkJQWR2YW50YWdlIENlbnR1cnkgVGVsZWNvbW11bmljYXRpb24gQ29ycC4KKzAwRDBFOSAgICAgKGJhc2UgMTYpCQlBZHZhbnRhZ2UgQ2VudHVyeSBUZWxlY29tbXVuaWNhdGlvbiBDb3JwLgorCQkJCTRGLCA0MSwgVHVuZ2hzaW4gUmQuCisJCQkJVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLUVBICAgKGhleCkJCU5FWFRPTkUgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwRDBFQSAgICAgKGJhc2UgMTYpCQlORVhUT05FIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJOTcwMCBHUkVBVCBTRU5FQ0EgSEdIV1kKKwkJCQlST0NLVklMTEUgTUQgMjA4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUVCICAgKGhleCkJCUxJR0hURVJBIE5FVFdPUktTLCBJTkMuCiswMEQwRUIgICAgIChiYXNlIDE2KQkJTElHSFRFUkEgTkVUV09SS1MsIElOQy4KKwkJCQkxMDIwMSBCVUJCIFJPQUQKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUVDICAgKGhleCkJCU5BS0FZTyBURUxFQ09NTVVOSUNBVElPTlMsIElOQworMDBEMEVDICAgICAoYmFzZSAxNikJCU5BS0FZTyBURUxFQ09NTVVOSUNBVElPTlMsIElOQworCQkJCTEtMy0yIFNPVUpZQS1NQUNISQorCQkJCU1BRUJBU0hJLVNISSBHVU5NQSwgMzcxLTA4NTMKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUQwLUVEICAgKGhleCkJCVhJT1gKKzAwRDBFRCAgICAgKGJhc2UgMTYpCQlYSU9YCisJCQkJMTUwIERPVyBTVFJFRVQKKwkJCQlNQU5DSEVTVEVSIE5IIDAzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1FRSAgIChoZXgpCQlESUNUQVBIT05FIENPUlBPUkFUSU9OCiswMEQwRUUgICAgIChiYXNlIDE2KQkJRElDVEFQSE9ORSBDT1JQT1JBVElPTgorCQkJCTMxOTEgQlJPQURCUklER0UgQVZFLgorCQkJCVNUUkFURk9SRCBDVCAwNjYxNC0yNTU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1FRiAgIChoZXgpCQlJR1QKKzAwRDBFRiAgICAgKGJhc2UgMTYpCQlJR1QKKwkJCQk5Mjk1IFBST1RPVFlQRSBEUklWRQorCQkJCVJFTk8gTlYgODk1MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUYwICAgKGhleCkJCUNPTlZJU0lPTiBURUNITk9MT0dZIEdNQkgKKzAwRDBGMCAgICAgKGJhc2UgMTYpCQlDT05WSVNJT04gVEVDSE5PTE9HWSBHTUJICisJCQkJUkVCRU5SSU5HIDMzCisJCQkJRC0zODEwNiBCUkFVTlNDSFdFSUcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1EMC1GMSAgIChoZXgpCQlTRUdBIEVOVEVSUFJJU0VTLCBMVEQuCiswMEQwRjEgICAgIChiYXNlIDE2KQkJU0VHQSBFTlRFUlBSSVNFUywgTFRELgorCQkJCTEyLTE0IEhJR0FTSElLT1VKSVlBIDItQ0hPTUUKKwkJCQlPSFRBLUtVIFRPS1lPIDE0NC04NTMyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1EMC1GMiAgIChoZXgpCQlNT05URVJFWSBORVRXT1JLUworMDBEMEYyICAgICAoYmFzZSAxNikJCU1PTlRFUkVZIE5FVFdPUktTCisJCQkJMTkwOSBOLiBHTEVOVklMTEUgRFJJVkUKKwkJCQlSSUNIQVJEU09OIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1GMyAgIChoZXgpCQlTT0xBUkkgREkgVURJTkUgU1BBCiswMEQwRjMgICAgIChiYXNlIDE2KQkJU09MQVJJIERJIFVESU5FIFNQQQorCQkJCVZJQSBHSU5PIFBJRVJJIDI5CisJCQkJMzMxMDAgVURJTkUKKwkJCQlJVEFMWQorCQkJCUlUQUxZCisKKzAwLUQwLUY0ICAgKGhleCkJCUNBUklOVEhJQU4gVEVDSCBJTlNUSVRVVEUKKzAwRDBGNCAgICAgKGJhc2UgMTYpCQlDQVJJTlRISUFOIFRFQ0ggSU5TVElUVVRFCisJCQkJUklDSEFSRC1XQUdORVIgU1RSLiAxOQorCQkJCTk1MDAgVklMTEFDSAorCQkJCUFVU1RSSUEKKwkJCQlBVVNUUklBCisKKzAwLUQwLUY1ICAgKGhleCkJCU9SQU5HRSBNSUNSTywgSU5DLgorMDBEMEY1ICAgICAoYmFzZSAxNikJCU9SQU5HRSBNSUNSTywgSU5DLgorCQkJCTE0MDAgTi4gTEFLRVZJRVcgQVZFLgorCQkJCUFOQUhFSU0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUY2ICAgKGhleCkJCUFsY2F0ZWwgQ2FuYWRhCiswMEQwRjYgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBDYW5hZGEKKwkJCQk2MDAgTWFyY2ggUm9hZAorCQkJCUthbmF0YSwgT250YXJpbworCQkJCUsySyAyRTYKKwkJCQlDQU5BREEKKworMDAtRDAtRjcgICAoaGV4KQkJTkVYVCBORVRTIENPUlBPUkFUSU9OCiswMEQwRjcgICAgIChiYXNlIDE2KQkJTkVYVCBORVRTIENPUlBPUkFUSU9OCisJCQkJTUlUQSBLT0tVU0FJIEJMREcuIDE3RgorCQkJCTEtNC0yOCBNSVRBIE1JTkFUTy1LVSBUT0tZTyAxMDgtMDA3MworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtRDAtRjggICAoaGV4KQkJRlVKSUFOIFNUQVIgVEVSTUlOQUwKKzAwRDBGOCAgICAgKGJhc2UgMTYpCQlGVUpJQU4gU1RBUiBURVJNSU5BTAorCQkJCURFVklDRSBDTy4sIExURC4KKwkJCQlGVUVSIElORFVTVFJJQUwgWk9ORSBTVEFSIFNDSUVOQ0UgJiBURUNICisJCQkJRlVaSE9VIEZVSklBTiwgQ0hJTkEgMzUwMDAyCisJCQkJQ0hJTkEKKworMDAtRDAtRjkgICAoaGV4KQkJQUNVVEUgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwRDBGOSAgICAgKGJhc2UgMTYpCQlBQ1VURSBDT01NVU5JQ0FUSU9OUyBDT1JQLgorCQkJCU5PLiAxLCBDUkVBVElPTiBST0FEIElJSQorCQkJCVNDSUVOQ0UgQkFTRUQgSU5EVVNUUklBTCBQQVJLIEhTSU5DSFUgMzAKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLUZBICAgKGhleCkJCVRoYWxlcyBlLVNlY3VyaXR5IEx0ZC4KKzAwRDBGQSAgICAgKGJhc2UgMTYpCQlUaGFsZXMgZS1TZWN1cml0eSBMdGQuCisJCQkJTWVhZG93IFZpZXcgSG91c2UsIENyZW5kb24gSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlMb25nIENyZW5kb24KKwkJCQlBeWxlc2J1cnkgQnVja2luZ2hhbXNoaXJlIEhQMTggOUVRCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRDAtRkIgICAoaGV4KQkJVEVLIE1JQ1JPU1lTVEVNUywgSU5DT1JQT1JBVEVECiswMEQwRkIgICAgIChiYXNlIDE2KQkJVEVLIE1JQ1JPU1lTVEVNUywgSU5DT1JQT1JBVEVECisJCQkJT05FIE5PUlRIIEFWRU5VRQorCQkJCUJVUkxJTkdUT04gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUZDICAgKGhleCkJCUdSQU5JVEUgTUlDUk9TWVNURU1TCiswMEQwRkMgICAgIChiYXNlIDE2KQkJR1JBTklURSBNSUNST1NZU1RFTVMKKwkJCQkxMDIwMiBOLiBFTlRFUlBSSVNFIERSSVZFCisJCQkJTUVRVU9OIFdJIDUzMDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1GRCAgIChoZXgpCQlPUFRJTUEgVEVMRS5DT00sIElOQy4KKzAwRDBGRCAgICAgKGJhc2UgMTYpCQlPUFRJTUEgVEVMRS5DT00sIElOQy4KKwkJCQkyMDAtOTAgQWxsc3RhdGUgUGFya3dheQorCQkJCU1hcmtoYW0gT04gTDNSIDZIMworCQkJCUNBTkFEQQorCiswMC1EMC1GRSAgIChoZXgpCQlBU1RSQUwgUE9JTlQKKzAwRDBGRSAgICAgKGJhc2UgMTYpCQlBU1RSQUwgUE9JTlQKKwkJCQlDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTI3IElORFVTVFJJQUwgQVZFLiwtU1RFLiAjMworCQkJCUNIRUxNU0ZPUkQgTUEgMDE4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUZGICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDBGRiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQxLTFDICAgKGhleCkJCUFDRVRFTAorMDBEMTFDICAgICAoYmFzZSAxNikJCUFDRVRFTAorCQkJCSMxMDA2LCBXb3JsZCBNZXJkaWFuIDItY2hhLCA0MjYtNSwKKwkJCQlHYXNhbi1kb25nLCBHZXVtY2hlb24tZ3UsCisJCQkJU2VvdWwgIDE1My03NTkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtRDMtOEQgICAoaGV4KQkJSG90ZWwgVGVjaG5vbG9neSBOZXh0IEdlbmVyYXRpb24KKzAwRDM4RCAgICAgKGJhc2UgMTYpCQlIb3RlbCBUZWNobm9sb2d5IE5leHQgR2VuZXJhdGlvbgorCQkJCTY1MCBFLiBBbGdvbnF1aW4gUm9hZAorCQkJCVN0ZSAyMDcKKwkJCQlTY2hhdW1idXJnIElMIDYwMTczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EQi00NSAgIChoZXgpCQlUSEFNV0FZIENPLixMVEQuCiswMERCNDUgICAgIChiYXNlIDE2KQkJVEhBTVdBWSBDTy4sTFRELgorCQkJCTMtOS0yCisJCQkJSW1haXp1bWkKKwkJCQlGdWppIFNoaXp1b2thIDQxNy0wMDAxCisJCQkJSkFQQU4KKworMDAtREQtMDAgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDAwICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTAxICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwMSAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wMiAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMDIgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMDMgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDAzICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTA0ICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwNCAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wNSAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMDUgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMDYgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDA2ICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTA3ICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwNyAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wOCAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMDggICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMDkgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDA5ICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTBBICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwQSAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wQiAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMEIgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMEMgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDBDICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTBEICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwRCAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wRSAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMEUgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMEYgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDBGICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTAwICAgKGhleCkJCUZ1aml0c3UgTGltaXRlZAorMDBFMDAwICAgICAoYmFzZSAxNikJCUZ1aml0c3UgTGltaXRlZAorCQkJCU11c2FzaGkta29zdWdpIFRvd2VyIFBsYWNlIEJsZGcuLAorCQkJCUtvc3VnaS1jaG8gMS1jaG9tZSxOYWthaGFyYS1rdQorCQkJCUtBV0FTQUtJIDIxMS04OCBLYW5hZ2F3YSAKKwkJCQlKQVBBTgorCiswMC1FMC0wMSAgIChoZXgpCQlTVFJBTkQgTElHSFRJTkcgTElNSVRFRAorMDBFMDAxICAgICAoYmFzZSAxNikJCVNUUkFORCBMSUdIVElORyBMSU1JVEVECisJCQkJR1JBTlQgV0FZCisJCQkJSVNMRVdPUlRICisJCQkJTUlERExFU0VYIEVuZ2xhbmQgVFc3IDVRRCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1FMC0wMiAgIChoZXgpCQlDUk9TU1JPQURTIFNZU1RFTVMsIElOQy4KKzAwRTAwMiAgICAgKGJhc2UgMTYpCQlDUk9TU1JPQURTIFNZU1RFTVMsIElOQy4KKwkJCQk5MzkwIFJFU0VBUkNIIEJMVkQuCisJCQkJU1VJVEUgMi0zMDAKKwkJCQlBVVNUSU4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTAzICAgKGhleCkJCU5PS0lBIFdJUkVMRVNTIEJVU0lORVNTIENPTU1VTgorMDBFMDAzICAgICAoYmFzZSAxNikJCU5PS0lBIFdJUkVMRVNTIEJVU0lORVNTIENPTU1VTgorCQkJCUFDQ0VTUyBQT0lOVCBQUk9EVUNUUyBHUk9VUAorCQkJCVVOSVQgNiwgQ0FNQlJJREdFIEJVUyBQQVJLIE1JTFRPTiBSRCwgQ0EKKwkJCQlDQjQgMFdTICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1FMC0wNCAgIChoZXgpCQlQTUMtU0lFUlJBLCBJTkMuCiswMEUwMDQgICAgIChiYXNlIDE2KQkJUE1DLVNJRVJSQSwgSU5DLgorCQkJCTEwNS04NTU1IEJBWFRFUiBQTEFDRQorCQkJCUJVUk5BQlksIEJDIFY1QSA0VjcgIAorCQkJCUNBTkFEQQorCiswMC1FMC0wNSAgIChoZXgpCQlURUNITklDQUwgQ09SUC4KKzAwRTAwNSAgICAgKGJhc2UgMTYpCQlURUNITklDQUwgQ09SUC4KKwkJCQkyMi02IE1JTkFNSSBTRU5HRU5DSE8KKwkJCQlOSVNISUtVIFlPS09IQU1BIENJVFkKKwkJCQlLQU5BR0FXQSAgCisJCQkJSkFQQU4KKworMDAtRTAtMDYgICAoaGV4KQkJU0lMSUNPTiBJTlRFR1JBVEVEIFNZUy4gQ09SUC4KKzAwRTAwNiAgICAgKGJhc2UgMTYpCQlTSUxJQ09OIElOVEVHUkFURUQgU1lTLiBDT1JQLgorCQkJCTE2LCBDUkVBVElPTiBSRC4gSQorCQkJCVNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLCisJCQkJSFNJTiBDSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtMDcgICAoaGV4KQkJQXZheWEgRUNTIEx0ZAorMDBFMDA3ICAgICAoYmFzZSAxNikJCUF2YXlhIEVDUyBMdGQKKwkJCQlVbml0IDEgU3RlcmxpbmcgQ291cnQsIE11bmRlbGxzCisJCQkJV2Vsd3luIEdhcmRlbiBDaXR5IEhlcnQgQUw3IDFMWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUUwLTA4ICAgKGhleCkJCUFNQVpJTkcgQ09OVFJPTFMhIElOQy4KKzAwRTAwOCAgICAgKGJhc2UgMTYpCQlBTUFaSU5HIENPTlRST0xTISBJTkMuCisJCQkJMTYxNSBXWUFUVCBEUklWRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0wOSAgIChoZXgpCQlNQVJBVEhPTiBURUNITk9MT0dJRVMgQ09SUC4KKzAwRTAwOSAgICAgKGJhc2UgMTYpCQlNQVJBVEhPTiBURUNITk9MT0dJRVMgQ09SUC4KKwkJCQkxMzAwIE1BU1NBQ0hVU0VUVFMgQVZFTlVFCisJCQkJQk9YQk9ST1VHSCBNQSAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMEEgICAoaGV4KQkJRElCQSwgSU5DLgorMDBFMDBBICAgICAoYmFzZSAxNikJCURJQkEsIElOQy4KKwkJCQkzMzU1IEVESVNPTiBXQVkKKwkJCQlNRU5MTyBQQVJLIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0wQiAgIChoZXgpCQlST09GVE9QIENPTU1VTklDQVRJT05TIENPUlAuCiswMEUwMEIgICAgIChiYXNlIDE2KQkJUk9PRlRPUCBDT01NVU5JQ0FUSU9OUyBDT1JQLgorCQkJCTQ2OCBQQUNPIERSSVZFCisJCQkJTE9TIEFMVE9TIENBIDk0MDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0wQyAgIChoZXgpCQlNT1RPUk9MQQorMDBFMDBDICAgICAoYmFzZSAxNikJCU1PVE9ST0xBCisJCQkJNTQwMSBOLiBCRUFDSCBTVC4gIFMyNDMKKwkJCQlGVC4gV09SVEggVFggNzYxMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTBEICAgKGhleCkJCVJBRElBTlQgU1lTVEVNUworMDBFMDBEICAgICAoYmFzZSAxNikJCVJBRElBTlQgU1lTVEVNUworCQkJCTEwMDAgQUxERVJNQU4gRFIuCisJCQkJQUxQSEFSRVRUQSBHQSAzMDIwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMEUgICAoaGV4KQkJQVZBTE9OIElNQUdJTkcgU1lTVEVNUywgSU5DLgorMDBFMDBFICAgICAoYmFzZSAxNikJCUFWQUxPTiBJTUFHSU5HIFNZU1RFTVMsIElOQy4KKwkJCQkzMTMzIElORElBTiBST0FECisJCQkJQk9VTERFUiBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMEYgICAoaGV4KQkJU0hBTkdIQUkgQkFVRCBEQVRBCiswMEUwMEYgICAgIChiYXNlIDE2KQkJU0hBTkdIQUkgQkFVRCBEQVRBCisJCQkJQ09NTVVOSUNBVElPTiBERVZFTE9QTUVOVCBDT1JQCisJCQkJM0YsIEdPTEQgTFVDSyBCVUlMRElORyAyNTA3IFBVRE9ORyBST0FECisJCQkJU0hBTkdIQUkgIAorCQkJCUNISU5BCisKKzAwLUUwLTEwICAgKGhleCkJCUhFU1MgU0ItQVVUT01BVEVOQkFVIEdtYkgKKzAwRTAxMCAgICAgKGJhc2UgMTYpCQlIRVNTIFNCLUFVVE9NQVRFTkJBVSBHbWJICisJCQkJSElOREVOQlVSR1NUUkFTU0UgMjctMjkKKwkJCQlELTcxMTA2IE1BR1NUQURUICAKKwkJCQlHRVJNQU5ZCisKKzAwLUUwLTExICAgKGhleCkJCVVuaWRlbiBDb3Jwb3JhdGlvbgorMDBFMDExICAgICAoYmFzZSAxNikJCVVuaWRlbiBDb3Jwb3JhdGlvbgorCQkJCTItMTItNyBIYXRjaG9ib3JpLAorCQkJCUNodW8ta3UgVG9reW8gMTA0LTg1MTIKKwkJCQlKQVBBTgorCiswMC1FMC0xMiAgIChoZXgpCQlQTFVUTyBURUNITk9MT0dJRVMgSU5URVJOQVRJT05BTCBJTkMuCiswMEUwMTIgICAgIChiYXNlIDE2KQkJUExVVE8gVEVDSE5PTE9HSUVTIElOVEVSTkFUSU9OQUwgSU5DLgorCQkJCTI1MTEgNTVUSCBTVFJFRVQKKwkJCQlCT1VMREVSIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0xMyAgIChoZXgpCQlFQVNURVJOIEVMRUNUUk9OSUMgQ08uLCBMVEQuCiswMEUwMTMgICAgIChiYXNlIDE2KQkJRUFTVEVSTiBFTEVDVFJPTklDIENPLiwgTFRELgorCQkJCU5PLiA0LCBTSElOLUxPTkcgUk9BRCwKKwkJCQlLV0VJLVNIQU4gSU5EVVNUUklBTCBBUkVBCisJCQkJVEFPLVlVQU4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtMTQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBFMDE0ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMTUgICAoaGV4KQkJSEVJV0EgQ09SUE9SQVRJT04KKzAwRTAxNSAgICAgKGJhc2UgMTYpCQlIRUlXQSBDT1JQT1JBVElPTgorCQkJCTItMzAxNC04LCBISVJPU0FXQS1DSE8KKwkJCQlLSVJZVS1TSEkKKwkJCQlHVU5NQSBQUkVGLiAzNzYgIAorCQkJCUpBUEFOCisKKzAwLUUwLTE2ICAgKGhleCkJCVJBUElEIENJVFkgQ09NTVVOSUNBVElPTlMKKzAwRTAxNiAgICAgKGJhc2UgMTYpCQlSQVBJRCBDSVRZIENPTU1VTklDQVRJT05TCisJCQkJNTU1IENMWURFIEFWRS4KKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0xNyAgIChoZXgpCQlFWFhBQ1QgR21iSAorMDBFMDE3ICAgICAoYmFzZSAxNikJCUVYWEFDVCBHbWJICisJCQkJUkhFSU5TVFJBU0UgNworCQkJCUQtNDE4MzYgSFVDS0VMSE9WRU4gIAorCQkJCUdFUk1BTlkKKworMDAtRTAtMTggICAoaGV4KQkJQVNVU1RFSyBDT01QVVRFUiBJTkMuCiswMEUwMTggICAgIChiYXNlIDE2KQkJQVNVU1RFSyBDT01QVVRFUiBJTkMuCisJCQkJMTUwIExJLVRFIFJELgorCQkJCVBFSVRPVSwgVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUUwLTE5ICAgKGhleCkJCUlORy4gR0lPUkRBTk8gRUxFVFRST05JQ0EKKzAwRTAxOSAgICAgKGJhc2UgMTYpCQlJTkcuIEdJT1JEQU5PIEVMRVRUUk9OSUNBCisJCQkJVklBIFBJRVRSTyBDT1NTQSAgMTE1LzEyCisJCQkJMTAxNDYtVE9SSU5PICAKKwkJCQlJVEFMWQorCiswMC1FMC0xQSAgIChoZXgpCQlDT01URUMgU1lTVEVNUy4gQ08uLCBMVEQuCiswMEUwMUEgICAgIChiYXNlIDE2KQkJQ09NVEVDIFNZU1RFTVMuIENPLiwgTFRELgorCQkJCTQwNC05IENIT1VOR0NIRU4tRE9ORworCQkJCUJVUFlPVU5HLUtVLCBJTkNIT04gIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1FMC0xQiAgIChoZXgpCQlTUEhFUkUgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwRTAxQiAgICAgKGJhc2UgMTYpCQlTUEhFUkUgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkyIEVORVJHWSBEUklWRQorCQkJCUxBS0UgQkxVRkYgSUwgNjAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTFDICAgKGhleCkJCUNyYWRsZXBvaW50LCBJbmMKKzAwRTAxQyAgICAgKGJhc2UgMTYpCQlDcmFkbGVwb2ludCwgSW5jCisJCQkJMTE5OSBTaG9yZWxpbmUgTGFuZQorCQkJCVN1aXRlIDMwMQorCQkJCUJvaXNlIElEIDgzNzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0xRCAgIChoZXgpCQlXZWJUViBORVRXT1JLUywgSU5DLgorMDBFMDFEICAgICAoYmFzZSAxNikJCVdlYlRWIE5FVFdPUktTLCBJTkMuCisJCQkJMzA1IExZVFRPTiBBVkUuCisJCQkJUEFMTyBBTFRPIENBIDk0MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0xRSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEUwMUUgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0xRiAgIChoZXgpCQlBVklESUEgU3lzdGVtcywgSW5jLgorMDBFMDFGICAgICAoYmFzZSAxNikJCUFWSURJQSBTeXN0ZW1zLCBJbmMuCisJCQkJMTM1IE5PUlRIIFBMQUlOUyBJTkRVU1RSSUFMIFJECisJCQkJV0FMTElOR0ZPUkQgQ1QgMDY0OTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTIwICAgKGhleCkJCVRFQ05PTUVOIE9ZCiswMEUwMjAgICAgIChiYXNlIDE2KQkJVEVDTk9NRU4gT1kKKwkJCQlQLk8uIEJPWCA5MworCQkJCUZJTi0wMjI3MSBFU1BPTyAgCisJCQkJRklOTEFORAorCiswMC1FMC0yMSAgIChoZXgpCQlGUkVFR0FURSBDT1JQLgorMDBFMDIxICAgICAoYmFzZSAxNikJCUZSRUVHQVRFIENPUlAuCisJCQkJNzEwIExBS0VXQVkgIFNURS4jMjMwCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0yMiAgIChoZXgpCQlBbmFsb2cgRGV2aWNlcyBJbmMuCiswMEUwMjIgICAgIChiYXNlIDE2KQkJQW5hbG9nIERldmljZXMgSW5jLgorCQkJCTc3NyBCYXkgU3RyZWV0CisJCQkJU3VpdGUgMjMwMworCQkJCVRvcm9udG8gT250YXJpbyBNNUcgMkM4CisJCQkJQ0FOQURBCisKKzAwLUUwLTIzICAgKGhleCkJCVRFTFJBRAorMDBFMDIzICAgICAoYmFzZSAxNikJCVRFTFJBRAorCQkJCVAuTy4gQk9YIDUwCisJCQkJTE9EIDcxMTAwICAKKwkJCQlJU1JBRUwKKworMDAtRTAtMjQgICAoaGV4KQkJR0FEWk9PWCBORVRXT1JLUworMDBFMDI0ICAgICAoYmFzZSAxNikJCUdBRFpPT1ggTkVUV09SS1MKKwkJCQk1ODUwIEhFTExZRVIgQVZFTlVFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTI1ICAgKGhleCkJCWRpdCBDby4sIEx0ZC4KKzAwRTAyNSAgICAgKGJhc2UgMTYpCQlkaXQgQ28uLCBMdGQuCisJCQkJUHJlbWllciBUb3lvY2hvIEJ1aWxkaW5nCisJCQkJMjMtMjEgVG95byAzLWNob21lLAorCQkJCUtvdG8ta3UgVG9reW8gMTM1LTAwNTYKKwkJCQlKQVBBTgorCiswMC1FMC0yNiAgIChoZXgpCQlSZWRsYWtlIE1BU0QgTExDCiswMEUwMjYgICAgIChiYXNlIDE2KQkJUmVkbGFrZSBNQVNEIExMQworCQkJCTM0NDAgRS4gUHJpdGFubmlhIERyLgorCQkJCVN1aXRlIDEyNAorCQkJCVR1c2NvbiBBWiA4NTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMjcgICAoaGV4KQkJRFVYLCBJTkMuCiswMEUwMjcgICAgIChiYXNlIDE2KQkJRFVYLCBJTkMuCisJCQkJNS0xOC0xOSwgTklTSElLQU1BVEEsIE9UQS1LVQorCQkJCVRPS1lPLVRPLCAxNDQgIAorCQkJCUpBUEFOCisKKzAwLUUwLTI4ICAgKGhleCkJCUFQVElYIENPUlBPUkFUSU9OCiswMEUwMjggICAgIChiYXNlIDE2KQkJQVBUSVggQ09SUE9SQVRJT04KKwkJCQkyODgwIE4uIEZJUlNUIFNUUkVFVAorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0yOSAgIChoZXgpCQlTVEFOREFSRCBNSUNST1NZU1RFTVMgQ09SUC4KKzAwRTAyOSAgICAgKGJhc2UgMTYpCQlTVEFOREFSRCBNSUNST1NZU1RFTVMgQ09SUC4KKwkJCQk2IEhVR0hFUworCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMkEgICAoaGV4KQkJVEFOREJFUkcgVEVMRVZJU0lPTiBBUworMDBFMDJBICAgICAoYmFzZSAxNikJCVRBTkRCRVJHIFRFTEVWSVNJT04gQVMKKwkJCQlQSElMSVAgUEVERVJTRU5TIFYgMjAKKwkJCQlOLTEzMjQgTFlTQUtFUiAgCisJCQkJTk9SV0FZCisKKzAwLUUwLTJCICAgKGhleCkJCUVYVFJFTUUgTkVUV09SS1MKKzAwRTAyQiAgICAgKGJhc2UgMTYpCQlFWFRSRU1FIE5FVFdPUktTCisJCQkJMTA0NjAgQkFORExFWSBEUklWRQorCQkJCUNVUEVSSU5UMCBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMkMgICAoaGV4KQkJQVNUIENPTVBVVEVSCiswMEUwMkMgICAgIChiYXNlIDE2KQkJQVNUIENPTVBVVEVSCisJCQkJMTYyMTUgQUxUT04gUEFSS1dBWQorCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMkQgICAoaGV4KQkJSW5ub01lZGlhTG9naWMsIEluYy4KKzAwRTAyRCAgICAgKGJhc2UgMTYpCQlJbm5vTWVkaWFMb2dpYywgSW5jLgorCQkJCTM2NTMgQ0hFTUlOIENIQU1CTFkKKwkJCQlMT05HVUVVSUwsIFFVRUJFQyBKNEwgSjRMICBJTjkKKwkJCQlDQU5BREEKKworMDAtRTAtMkUgICAoaGV4KQkJU1BDIEVMRUNUUk9OSUNTIENPUlBPUkFUSU9OCiswMEUwMkUgICAgIChiYXNlIDE2KQkJU1BDIEVMRUNUUk9OSUNTIENPUlBPUkFUSU9OCisJCQkJMi0xLTMgU0hJQkFTQUtJLCBDSE9GVS1TSEkKKwkJCQlUT0tZTywgMTgyICAKKwkJCQlKQVBBTgorCiswMC1FMC0yRiAgIChoZXgpCQlNQ05TIEhPTERJTkdTLCBMLlAuCiswMEUwMkYgICAgIChiYXNlIDE2KQkJTUNOUyBIT0xESU5HUywgTC5QLgorCQkJCVRDSSwgSU5DLi1URUNITk9MT0dZIFZFTlRVUkVTCisJCQkJUC5PLiBCT1ggNTYzMAorCQkJCURFTlZFUiBDTyA4MDIxNy01NjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0zMCAgIChoZXgpCQlNRUxJVEEgSU5URVJOQVRJT05BTCBDT1JQLgorMDBFMDMwICAgICAoYmFzZSAxNikJCU1FTElUQSBJTlRFUk5BVElPTkFMIENPUlAuCisJCQkJNTA1MSBQRUFDSFRSRUUgQ09STkVSUyBDSVJDTEUKKwkJCQlOT1JDUk9TUyBHQSAzMDA5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMzEgICAoaGV4KQkJSEFHSVdBUkEgRUxFQ1RSSUMgQ08uLCBMVEQuCiswMEUwMzEgICAgIChiYXNlIDE2KQkJSEFHSVdBUkEgRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJNywgU0hJTU9LT0ZVS0FEQSwgQVNBREEtQ0hPCisJCQkJTklTU0hJTi1TSEksIEFJQ0hJICA0NzAtMDEgIAorCQkJCUpBUEFOCisKKzAwLUUwLTMyICAgKGhleCkJCU1JU1lTIEZJTkFOQ0lBTCBTWVNURU1TLCBMVEQuCiswMEUwMzIgICAgIChiYXNlIDE2KQkJTUlTWVMgRklOQU5DSUFMIFNZU1RFTVMsIExURC4KKwkJCQlCVUNLSE9MVCBEUklWRSwKKwkJCQlXQVJORE9OLCBXT1JDRVNURVIgV1I0OVNSICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1FMC0zMyAgIChoZXgpCQlFLkUuUC5ELiBHbWJICiswMEUwMzMgICAgIChiYXNlIDE2KQkJRS5FLlAuRC4gR21iSAorCQkJCVJPRU1FUi1TVFJBU1NFIDQKKwkJCQk4NTIyOSBNQVJLVCBJTkRFUlNET1JGICAKKwkJCQlHRVJNQU5ZCisKKzAwLUUwLTM0ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRTAzNCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTM1ICAgKGhleCkJCUVtZXJzb24gTmV0d29yayBQb3dlcgorMDBFMDM1ICAgICAoYmFzZSAxNikJCUVtZXJzb24gTmV0d29yayBQb3dlcgorCQkJCTI5MDAgUy4gRGlhYmxvIFdheQorCQkJCVRlbXBlIEFaIDg1MjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0zNiAgIChoZXgpCQlQSU9ORUVSIENPUlBPUkFUSU9OCiswMEUwMzYgICAgIChiYXNlIDE2KQkJUElPTkVFUiBDT1JQT1JBVElPTgorCQkJCTI2MTAgSGFuYXpvbm8gNC1DaG9tZQorCQkJCVRva29yb3phd2EtU2hpCisJCQkJU2FpdGFtYSBQcmVmZWN0dXJlLCAzNTktOCAgCisJCQkJSkFQQU4KKworMDAtRTAtMzcgICAoaGV4KQkJQ0VOVFVSWSBDT1JQT1JBVElPTgorMDBFMDM3ICAgICAoYmFzZSAxNikJCUNFTlRVUlkgQ09SUE9SQVRJT04KKwkJCQkyLTI4LTUsIFRhaXRvCisJCQkJVEFJVE8tS1UsIFRPS1lPIDEwMQorCQkJCUpBUEFOCisKKzAwLUUwLTM4ICAgKGhleCkJCVBST1hJTUEgQ09SUE9SQVRJT04KKzAwRTAzOCAgICAgKGJhc2UgMTYpCQlQUk9YSU1BIENPUlBPUkFUSU9OCisJCQkJOTQ0MCBDQVJST0xMIFBBUksgRFJJVkUKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEtMjI5OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMzkgICAoaGV4KQkJUEFSQURZTkUgQ09SUC4KKzAwRTAzOSAgICAgKGJhc2UgMTYpCQlQQVJBRFlORSBDT1JQLgorCQkJCTg1NDUgMTI2VEggQVZFTlVFIE5PUlRICisJCQkJTEFSR08gRkwgMzM3NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTNBICAgKGhleCkJCUNBQkxFVFJPTiBTWVNURU1TLCBJTkMuCiswMEUwM0EgICAgIChiYXNlIDE2KQkJQ0FCTEVUUk9OIFNZU1RFTVMsIElOQy4KKwkJCQkzNSBJTkRVU1RSSUFMIFdBWSAtIEJMREcuICMzNgorCQkJCVJPQ0hFU1RFUiBOSCAwMzg2NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtM0IgICAoaGV4KQkJUFJPTUlORVQgQ09SUE9SQVRJT04KKzAwRTAzQiAgICAgKGJhc2UgMTYpCQlQUk9NSU5FVCBDT1JQT1JBVElPTgorCQkJCTExMCBUVVJOUElLRSBSRC4gLSBTVEUuICMyMDgKKwkJCQlXRVNUQk9ST1VHSCBNQSAwMTU4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtM0MgICAoaGV4KQkJQWR2YW5TeXMKKzAwRTAzQyAgICAgKGJhc2UgMTYpCQlBZHZhblN5cworCQkJCTExNTAgUklOR1dPT0QgQ09VUlQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtM0QgICAoaGV4KQkJRk9DT04gRUxFQ1RST05JQyBTWVNURU1TIEEvUworMDBFMDNEICAgICAoYmFzZSAxNikJCUZPQ09OIEVMRUNUUk9OSUMgU1lTVEVNUyBBL1MKKwkJCQlEQU1WQU5HLCBQTyBCT1ggMjY5CisJCQkJREstNjQwMCBTT05ERVJCT1JHICAKKwkJCQlERU5NQVJLCisKKzAwLUUwLTNFICAgKGhleCkJCUFMRkFURUNILCBJTkMuCiswMEUwM0UgICAgIChiYXNlIDE2KQkJQUxGQVRFQ0gsIElOQy4KKwkJCQlTSElOLU9TQUtBIEVJVE8gQkxERy4KKwkJCQk0LTE1LTE4IE5JU0hJTkFLQUpJTUEsIFlPRE9HQVdBLUtVLAorCQkJCU9TQUtBICAKKwkJCQlKQVBBTgorCiswMC1FMC0zRiAgIChoZXgpCQlKQVRPTiBDT1JQT1JBVElPTgorMDBFMDNGICAgICAoYmFzZSAxNikJCUpBVE9OIENPUlBPUkFUSU9OCisJCQkJNTU2IFNPVVRIIE1JTFBJVEFTIEJMVkQuCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTQwICAgKGhleCkJCURlc2tTdGF0aW9uIFRlY2hub2xvZ3ksIEluYy4KKzAwRTA0MCAgICAgKGJhc2UgMTYpCQlEZXNrU3RhdGlvbiBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTU3MjkgQ09MTEVHRSBCTFZELgorCQkJCUxFTkVYQSBLUyA2NjIxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNDEgICAoaGV4KQkJQ1NQSQorMDBFMDQxICAgICAoYmFzZSAxNikJCUNTUEkKKwkJCQk0MyBNYW5uaW5nIFJkLgorCQkJCUJpbGxlcmljYSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNDIgICAoaGV4KQkJUGFjb20gU3lzdGVtcyBMdGQuCiswMEUwNDIgICAgIChiYXNlIDE2KQkJUGFjb20gU3lzdGVtcyBMdGQuCisJCQkJVU5JVCAyMiAzOC80NiBTT1VUSCBTVC4KKwkJCQlSWURBTE1FUkUgMjExNiBOU1cgCisJCQkJQVVTVFJBTElBCisKKzAwLUUwLTQzICAgKGhleCkJCVZpdGFsQ29tCiswMEUwNDMgICAgIChiYXNlIDE2KQkJVml0YWxDb20KKwkJCQkxNTIyMiBERUwgQU1PIEFWRS4KKwkJCQlUVVNUSU4gQ0EgOTI3ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTQ0ICAgKGhleCkJCUxTSUNTIENPUlBPUkFUSU9OCiswMEUwNDQgICAgIChiYXNlIDE2KQkJTFNJQ1MgQ09SUE9SQVRJT04KKwkJCQkzLTgtMyBOSU5PTUlZQSwgVFNLVUtVQkEtU0hJCisJCQkJSUJBUkFHSS1LRU4sIDMwNSAgCisJCQkJSkFQQU4KKworMDAtRTAtNDUgICAoaGV4KQkJVE9VQ0hXQVZFLCBJTkMuCiswMEUwNDUgICAgIChiYXNlIDE2KQkJVE9VQ0hXQVZFLCBJTkMuCisJCQkJOTk0IFNBTiBBTlRPTklPIFJELgorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNDYgICAoaGV4KQkJQkVOVExZIE5FVkFEQSBDT1JQLgorMDBFMDQ2ICAgICAoYmFzZSAxNikJCUJFTlRMWSBORVZBREEgQ09SUC4KKwkJCQlQTyBCT1ggMTU3CisJCQkJTUlOREVOIE5WIDg5NDIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC00NyAgIChoZXgpCQlJbkZvY3VzIENvcnBvcmF0aW9uCiswMEUwNDcgICAgIChiYXNlIDE2KQkJSW5Gb2N1cyBDb3Jwb3JhdGlvbgorCQkJCTI3NTAwIFNXIFBhcmt3YXkgQXZlbnVlCisJCQkJV2lsc29udmlsbGUgT1IgOTcwNzAtODIzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNDggICAoaGV4KQkJU0RMIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEUwNDggICAgIChiYXNlIDE2KQkJU0RMIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJUC5PLiBCT1ggMTMwMworCQkJCUVBU1RPTiBNQSAwMjMzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNDkgICAoaGV4KQkJTUlDUk9XSSBFTEVDVFJPTklDIEdtYkgKKzAwRTA0OSAgICAgKGJhc2UgMTYpCQlNSUNST1dJIEVMRUNUUk9OSUMgR21iSAorCQkJCVpVU0FNU1RSQVNTRSA4CisJCQkJRCA4NjE2NSBBVUdTQlVSRyAgCisJCQkJR0VSTUFOWQorCiswMC1FMC00QSAgIChoZXgpCQlFTkhBTkNFRCBNRVNTQUdJTkcgU1lTVEVNUywgSU5DCiswMEUwNEEgICAgIChiYXNlIDE2KQkJRU5IQU5DRUQgTUVTU0FHSU5HIFNZU1RFTVMsIElOQworCQkJCTI1MCBXRVNUIFNPVVRITEFLRSBCTFZELgorCQkJCVNPVVRITEFLRSBUWCA3NjA5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNEIgICAoaGV4KQkJSlVNUCBJTkRVU1RSSUVMTEUgQ09NUFVURVJURUNITklLIEdtYkgKKzAwRTA0QiAgICAgKGJhc2UgMTYpCQlKVU1QIElORFVTVFJJRUxMRSBDT01QVVRFUlRFQ0hOSUsgR21iSAorCQkJCQorCQkJCVZFSUxDSEVOR0FTU0UgNworCQkJCUQ5NDQ2OSBERUdHRU5ET1JGICAKKwkJCQlHRVJNQU5ZCisKKzAwLUUwLTRDICAgKGhleCkJCVJFQUxURUsgU0VNSUNPTkRVQ1RPUiBDT1JQLgorMDBFMDRDICAgICAoYmFzZSAxNikJCVJFQUxURUsgU0VNSUNPTkRVQ1RPUiBDT1JQLgorCQkJCTFGLCBOTy4gMTEsIElORFVTVFJZIEUuIFJELiBJWAorCQkJCVNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLCisJCQkJSFNJTkNIVSAzMDAgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtNEQgICAoaGV4KQkJSU5URVJORVQgSU5JVElBVElWRSBKQVBBTiwgSU5DCiswMEUwNEQgICAgIChiYXNlIDE2KQkJSU5URVJORVQgSU5JVElBVElWRSBKQVBBTiwgSU5DCisJCQkJMS00LCBTQU5CQU4tQ0hPLCBDSElZT0RBLUtVCisJCQkJVE9LWU8gMTAyIAorCQkJCUpBUEFOCisKKzAwLUUwLTRFICAgKGhleCkJCVNBTllPIERFTktJIENPLiwgTFRELgorMDBFMDRFICAgICAoYmFzZSAxNikJCVNBTllPIERFTktJIENPLiwgTFRELgorCQkJCTgxMi0zLCBTaGltb25vZ291LCBVZWRhLVNoaQorCQkJCU5hZ2FubyAgMzg2LTEyMTEKKwkJCQlKQVBBTgorCiswMC1FMC00RiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEUwNEYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC01MCAgIChoZXgpCQlFWEVDVVRPTkUgSU5GT1JNQVRJT04gU1lTVEVNUywgSU5DLgorMDBFMDUwICAgICAoYmFzZSAxNikJCUVYRUNVVE9ORSBJTkZPUk1BVElPTiBTWVNURU1TLCBJTkMuCisJCQkJNDc4IFdIRUVMRVJTIEZBUk1TIFJPQUQKKwkJCQlNSUxGT1JEIENUIDA2NDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC01MSAgIChoZXgpCQlUQUxYIENPUlBPUkFUSU9OCiswMEUwNTEgICAgIChiYXNlIDE2KQkJVEFMWCBDT1JQT1JBVElPTgorCQkJCTE4NTAgQk9STUFOIENPVVJUCisJCQkJU1QuIExPVUlTIE1PIDYzMTQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC01MiAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworMDBFMDUyICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCisJCQkJMTc0NSBUZWNobm9sb2d5IERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTUzICAgKGhleCkJCUNFTExQT1JUIExBQlMsIElOQy4KKzAwRTA1MyAgICAgKGJhc2UgMTYpCQlDRUxMUE9SVCBMQUJTLCBJTkMuCisJCQkJODg1IEFSQVBBSE9FIEFWRS4sCisJCQkJQk9VTERFUiBDTyA4MDMwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNTQgICAoaGV4KQkJS09EQUkgSElURUMgQ08uLCBMVEQuCiswMEUwNTQgICAgIChiYXNlIDE2KQkJS09EQUkgSElURUMgQ08uLCBMVEQuCisJCQkJMi00NSBPTlVNQSBIQU5ZVSBDSVRZCisJCQkJU0FJVEFNQS4zNDggIAorCQkJCUpBUEFOCisKKzAwLUUwLTU1ICAgKGhleCkJCUlOR0VOSUVSSUEgRUxFQ1RST05JQ0EgQ09NRVJDSUFMIElORUxDT00gUy5BLgorMDBFMDU1ICAgICAoYmFzZSAxNikJCUlOR0VOSUVSSUEgRUxFQ1RST05JQ0EgQ09NRVJDSUFMIElORUxDT00gUy5BLgorCQkJCUNMLiBQSVFVRVIgTk8uMworCQkJCTI4MDMzIE1BRFJJRCAgCisJCQkJU1BBSU4KKworMDAtRTAtNTYgICAoaGV4KQkJSE9MT05URUNIIENPUlBPUkFUSU9OCiswMEUwNTYgICAgIChiYXNlIDE2KQkJSE9MT05URUNIIENPUlBPUkFUSU9OCisJCQkJMjAzOSBTQU1BUklUQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNTcgICAoaGV4KQkJSEFOIE1JQ1JPVEVMRUNPTS4gQ08uLCBMVEQuCiswMEUwNTcgICAgIChiYXNlIDE2KQkJSEFOIE1JQ1JPVEVMRUNPTS4gQ08uLCBMVEQuCisJCQkJRkFTSElPTiBCRC4sIDNSRCBGUiwKKwkJCQkxMTk0LCBET09OU0FOIDIKKwkJCQlET05HIFNFTy1HVSwgVEFFSk9OIEtPUkVBIDMwMi0xNzMgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUUwLTU4ICAgKGhleCkJCVBIQVNFIE9ORSBERU5NQVJLIEEvUworMDBFMDU4ICAgICAoYmFzZSAxNikJCVBIQVNFIE9ORSBERU5NQVJLIEEvUworCQkJCVJPU0tJTERFVkVKIDM5CisJCQkJREstMjAwMCBGUkVERVJJS1NCRVJHICAKKwkJCQlERU5NQVJLCisKKzAwLUUwLTU5ICAgKGhleCkJCUNPTlRST0xMRUQgRU5WSVJPTk1FTlRTLCBMVEQuCiswMEUwNTkgICAgIChiYXNlIDE2KQkJQ09OVFJPTExFRCBFTlZJUk9OTUVOVFMsIExURC4KKwkJCQk1OTAgQkVSUlkgU1RSRUVUCisJCQkJV0lOTkVQRUcgUjNIIE9SOSAgCisJCQkJQ0FOQURBCisKKzAwLUUwLTVBICAgKGhleCkJCUdBTEVBIE5FVFdPUksgU0VDVVJJVFkKKzAwRTA1QSAgICAgKGJhc2UgMTYpCQlHQUxFQSBORVRXT1JLIFNFQ1VSSVRZCisJCQkJMiBQTEFDRSBkdSBDT01NRVJDRSAtIFNURSAjMzIwCisJCQkJQlJPU1NBUkQsIFFVRUJFQyBKNFcgMlQ4ICAKKwkJCQlDQU5BREEKKworMDAtRTAtNUIgICAoaGV4KQkJV0VTVCBFTkQgU1lTVEVNUyBDT1JQLgorMDBFMDVCICAgICAoYmFzZSAxNikJCVdFU1QgRU5EIFNZU1RFTVMgQ09SUC4KKwkJCQkzOSBXSU5ORVInUyBDSVJDTEUgRFIuLAorCQkJCUFSTlBSSU9SLCBPTlRBUklPICAgIEs3UyAzRzkgIAorCQkJCUNBTkFEQQorCiswMC1FMC01QyAgIChoZXgpCQlNQVRTVVNISVRBIEtPVE9CVUtJIEVMRUNUUk9OSUNTIElORFVTVFJJRVMsIExURC4KKzAwRTA1QyAgICAgKGJhc2UgMTYpCQlNQVRTVVNISVRBIEtPVE9CVUtJIEVMRUNUUk9OSUNTIElORFVTVFJJRVMsIExURC4KKwkJCQkyNDcsIEZVS1VUQUtFIFNBSUpPCisJCQkJRUhJTUUsIDc5MyAgCisJCQkJSkFQQU4KKworMDAtRTAtNUQgICAoaGV4KQkJVU5JVEVDIENPLiwgTFRELgorMDBFMDVEICAgICAoYmFzZSAxNikJCVVOSVRFQyBDTy4sIExURC4KKwkJCQlLSVNPR0FXQS1DSE8gIElDSElOT1RPUkkgMjQKKwkJCQlIQUdVUkktR1VOIEFJQ0hJIDQ5MyAgCisJCQkJSkFQQU4KKworMDAtRTAtNUUgICAoaGV4KQkJSkFQQU4gQVZJQVRJT04gRUxFQ1RST05JQ1MgSU5EVVNUUlksIExURC4KKzAwRTA1RSAgICAgKGJhc2UgMTYpCQlKQVBBTiBBVklBVElPTiBFTEVDVFJPTklDUyBJTkRVU1RSWSwgTFRELgorCQkJCQorCQkJCTMtMS0xIE1VU0FTSElOTyBBS0lTSElNQS1TSEkKKwkJCQlUT0tZTyAxOTYgSkFQQU4gCisJCQkJSkFQQU4KKworMDAtRTAtNUYgICAoaGV4KQkJZS1OZXQsIEluYy4KKzAwRTA1RiAgICAgKGJhc2UgMTYpCQllLU5ldCwgSW5jLgorCQkJCTEyMzI1IEhZTUVBRE9XIERSSVZFCisJCQkJU1VJVEUgIzItMjAwCisJCQkJQVVTVElOIFRYIDc4NzUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC02MCAgIChoZXgpCQlTSEVSV09PRAorMDBFMDYwICAgICAoYmFzZSAxNikJCVNIRVJXT09ECisJCQkJMjEwNTYgRk9SQkVTIFNUUkVFVAorCQkJCUhBWVdBUkQgQ0EgOTQ1NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTYxICAgKGhleCkJCUVkZ2VQb2ludCBOZXR3b3JrcywgSW5jLgorMDBFMDYxICAgICAoYmFzZSAxNikJCUVkZ2VQb2ludCBOZXR3b3JrcywgSW5jLgorCQkJCTIyMzggTUFSVElOIEFWRU5VRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC02MiAgIChoZXgpCQlIT1NUIEVOR0lORUVSSU5HCiswMEUwNjIgICAgIChiYXNlIDE2KQkJSE9TVCBFTkdJTkVFUklORworCQkJCTIwMCBFQVNUIE1BSU4gU1RSRUVUIC1TVEUuIzcwMAorCQkJCUpPSE5TT04gQ0lUWSBUTiAzNzYwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNjMgICAoaGV4KQkJQ0FCTEVUUk9OIC0gWUFHTyBTWVNURU1TLCBJTkMuCiswMEUwNjMgICAgIChiYXNlIDE2KQkJQ0FCTEVUUk9OIC0gWUFHTyBTWVNURU1TLCBJTkMuCisJCQkJMzUgSU5EVVNUUklBTCBXQVkKKwkJCQlQLk8uIEJPWCA1MDA1CisJCQkJUk9DSEVTVEVSIE5IIDAzODY2LTUwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTY0ICAgKGhleCkJCVNBTVNVTkcgRUxFQ1RST05JQ1MKKzAwRTA2NCAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEVMRUNUUk9OSUNTCisJCQkJOTkgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTY1ICAgKGhleCkJCU9QVElDQUwgQUNDRVNTIElOVEVSTkFUSU9OQUwKKzAwRTA2NSAgICAgKGJhc2UgMTYpCQlPUFRJQ0FMIEFDQ0VTUyBJTlRFUk5BVElPTkFMCisJCQkJNTAwIFdFU1QgQ1VNTUlOR1MgUEwuICMzNDAwCisJCQkJV09CVVJOIE1BIDAxODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC02NiAgIChoZXgpCQlQcm9NYXggU3lzdGVtcywgSW5jLgorMDBFMDY2ICAgICAoYmFzZSAxNikJCVByb01heCBTeXN0ZW1zLCBJbmMuCisJCQkJMTYgVEVDSE5PTE9HWSBEUklWRS0tQkxERy4jMTA2CisJCQkJSVJWSU5FIENBIDkyNjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC02NyAgIChoZXgpCQllYWMgQVVUT01BVElPTi1DT05TVUxUSU5HIEdtYkgKKzAwRTA2NyAgICAgKGJhc2UgMTYpCQllYWMgQVVUT01BVElPTi1DT05TVUxUSU5HIEdtYkgKKwkJCQlIRVJNU0RPUkZFUiBEQU1NIDIyMgorCQkJCTczNDY3IEJFUkxJTiAgCisJCQkJR0VSTUFOWQorCiswMC1FMC02OCAgIChoZXgpCQlNRVJSSU1BQyBTWVNURU1TIElOQy4KKzAwRTA2OCAgICAgKGJhc2UgMTYpCQlNRVJSSU1BQyBTWVNURU1TIElOQy4KKwkJCQkyMTQ0IE1DIENPWSBST0FECisJCQkJQ0FSUk9MTFRPTiBUWCA3NTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNjkgICAoaGV4KQkJSkFZQ09SCiswMEUwNjkgICAgIChiYXNlIDE2KQkJSkFZQ09SCisJCQkJOTc3NSBUT1dORSBDRU5UUkUgRFJJVkUKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTZBICAgKGhleCkJCUtBUFNDSCBBRworMDBFMDZBICAgICAoYmFzZSAxNikJCUtBUFNDSCBBRworCQkJCVdBR0VOU0VJTEdBU1NFIDEKKwkJCQkxMTIwLVZJRU5OQSAgCisJCQkJQVVTVFJJQQorCiswMC1FMC02QiAgIChoZXgpCQlXJkcgU1BFQ0lBTCBQUk9EVUNUUworMDBFMDZCICAgICAoYmFzZSAxNikJCVcmRyBTUEVDSUFMIFBST0RVQ1RTCisJCQkJU0NFSU5DRSBQQVJLIEVJTkRIT1ZJTiA1MDQ5CisJCQkJNTY5MiBFQiBTT04KKwkJCQlORVRIRVJMQU5EUworCiswMC1FMC02QyAgIChoZXgpCQlBRVAgU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEx0ZAorMDBFMDZDICAgICAoYmFzZSAxNikJCUFFUCBTeXN0ZW1zIEludGVybmF0aW9uYWwgTHRkCisJCQkJRm9jdXMgMzEsIFdlc3QgV2luZworCQkJCUNsZXZlbGFuZCBSb2FkCisJCQkJSGVtZWwgSGVtc3RlYWQgSGVydHMgRW5nbGFuZCBIUDIgN0JXCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtNkQgICAoaGV4KQkJQ09NUFVXQVJFIENPUlBPUkFUSU9OCiswMEUwNkQgICAgIChiYXNlIDE2KQkJQ09NUFVXQVJFIENPUlBPUkFUSU9OCisJCQkJT25lIENhbXB1cyBNYXJ0aXVzCisJCQkJRGV0cm9pdCBNSSA0ODIyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNkUgICAoaGV4KQkJRkFSIFNZU1RFTVMgUy5wLkEuCiswMEUwNkUgICAgIChiYXNlIDE2KQkJRkFSIFNZU1RFTVMgUy5wLkEuCisJCQkJVklBIEYuIFpFTkkgOAorCQkJCTM4NjggUk9WRVJFVE8gKFROKSAgCisJCQkJSVRBTFkKKworMDAtRTAtNkYgICAoaGV4KQkJTW90b3JvbGEsIEluYy4KKzAwRTA2RiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSwgSW5jLgorCQkJCTI0NTAgV2Fsc2ggQXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTcwICAgKGhleCkJCURIIFRFQ0hOT0xPR1kKKzAwRTA3MCAgICAgKGJhc2UgMTYpCQlESCBURUNITk9MT0dZCisJCQkJMzAwMyBST0xMSUUgR0FURVMgRFJJVkUKKwkJCQlQQVNPIFJPQkxFUyBDQSA5MzQ0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNzEgICAoaGV4KQkJRVBJUyBNSUNST0NPTVBVVEVSCiswMEUwNzEgICAgIChiYXNlIDE2KQkJRVBJUyBNSUNST0NPTVBVVEVSCisJCQkJNzI0NTggQUxCU1RBRFQKKwkJCQlMQVVUTElOR0VSIFNUUkFTU0UgMTQ3CisJCQkJNzI0NTggQUxCU1RBRFQgIAorCQkJCUdFUk1BTlkKKworMDAtRTAtNzIgICAoaGV4KQkJTFlOSworMDBFMDcyICAgICAoYmFzZSAxNikJCUxZTksKKwkJCQlSQUJJTiBCVUlMRElORworCQkJCVRFUkFESU9OIElORFVTVFJJQUwgUEFSSworCQkJCUQuTi4gTUlTR0FWIDIwMSAgCisJCQkJSVNSQUVMCisKKzAwLUUwLTczICAgKGhleCkJCU5BVElPTkFMIEFNVVNFTUVOVCBORVRXT1JLLCBJTkMuCiswMEUwNzMgICAgIChiYXNlIDE2KQkJTkFUSU9OQUwgQU1VU0VNRU5UIE5FVFdPUkssIElOQy4KKwkJCQk0MDEgTi4gTUlDSElHQU4gQVZFTlVFCisJCQkJQ0hJQ0FHTyBJTCA2MDYxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNzQgICAoaGV4KQkJVElFUk5BTiBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBFMDc0ICAgICAoYmFzZSAxNikJCVRJRVJOQU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxMTAyNSBST1NFTExFIFNULgorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNzUgICAoaGV4KQkJVmVyaWxpbmsgQ29ycG9yYXRpb24KKzAwRTA3NSAgICAgKGJhc2UgMTYpCQlWZXJpbGluayBDb3Jwb3JhdGlvbgorCQkJCTEyNyBKZXRwbGV4IENpcmNsZQorCQkJCU1hZGlzb24gQUwgMzU3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTc2ICAgKGhleCkJCURFVkVMT1BNRU5UIENPTkNFUFRTLCBJTkMuCiswMEUwNzYgICAgIChiYXNlIDE2KQkJREVWRUxPUE1FTlQgQ09OQ0VQVFMsIElOQy4KKwkJCQkxMDAwIE4uIEJST0FEIFNUUkVFVAorCQkJCUxBTlNEQUxFIFBBIDE5NDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03NyAgIChoZXgpCQlXRUJHRUFSLCBJTkMuCiswMEUwNzcgICAgIChiYXNlIDE2KQkJV0VCR0VBUiwgSU5DLgorCQkJCTEyNjMgT0FLTUVBRCBQS1dZCisJCQkJU1VOTllWQUxFIENBIDk0MDgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03OCAgIChoZXgpCQlCRVJLRUxFWSBORVRXT1JLUworMDBFMDc4ICAgICAoYmFzZSAxNikJCUJFUktFTEVZIE5FVFdPUktTCisJCQkJNjgzIFJJVkVSIE9BS1MgUEFSS1dBWQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03OSAgIChoZXgpCQlBLlQuTi5SLgorMDBFMDc5ICAgICAoYmFzZSAxNikJCUEuVC5OLlIuCisJCQkJQlAgOTY2CisJCQkJOTE5NzYgQ09VUlRBQk9FVUYgIAorCQkJCUZSQU5DRQorCiswMC1FMC03QSAgIChoZXgpCQlNSUtST0RJREFLVCBBQgorMDBFMDdBICAgICAoYmFzZSAxNikJCU1JS1JPRElEQUtUIEFCCisJCQkJU2tpZmZlcnZhZ2VuIDQ4CisJCQkJTFVORCAgU0UyMjQ3OAorCQkJCVNXRURFTgorCiswMC1FMC03QiAgIChoZXgpCQlCQVkgTkVUV09SS1MKKzAwRTA3QiAgICAgKGJhc2UgMTYpCQlCQVkgTkVUV09SS1MKKwkJCQkxMjUgTkFHT0cgUEFSSworCQkJCUFDVE9OIE1BIDAxNzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03QyAgIChoZXgpCQlNRVRUTEVSLVRPTEVETywgSU5DLgorMDBFMDdDICAgICAoYmFzZSAxNikJCU1FVFRMRVItVE9MRURPLCBJTkMuCisJCQkJMTE1MCBERUFSQk9STiBEUklWRQorCQkJCVdPUlRISU5HVE9OIE9IIDQzMDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03RCAgIChoZXgpCQlORVRST05JWCwgSU5DLgorMDBFMDdEICAgICAoYmFzZSAxNikJCU5FVFJPTklYLCBJTkMuCisJCQkJMzQwIFRIT1IgUExBQ0UKKwkJCQlCUkVBIENBIDkyODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03RSAgIChoZXgpCQlXQUxUIERJU05FWSBJTUFHSU5FRVJJTkcKKzAwRTA3RSAgICAgKGJhc2UgMTYpCQlXQUxUIERJU05FWSBJTUFHSU5FRVJJTkcKKwkJCQkxNDAxIEZMT1dFUiBTVC4KKwkJCQlHTEVOREFMRSBDQSA5MTIyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtN0YgICAoaGV4KQkJTE9HSVNUSVNURU0gcy5yLmwuCiswMEUwN0YgICAgIChiYXNlIDE2KQkJTE9HSVNUSVNURU0gcy5yLmwuCisJCQkJVklBIFBBTkNJQVRJQ0hJIDk0LzE4CisJCQkJNTAxMjcgRklSRU5aRSAgCisJCQkJSVRBTFkKKworMDAtRTAtODAgICAoaGV4KQkJQ09OVFJPTCBSRVNPVVJDRVMgQ09SUE9SQVRJT04KKzAwRTA4MCAgICAgKGJhc2UgMTYpCQlDT05UUk9MIFJFU09VUkNFUyBDT1JQT1JBVElPTgorCQkJCTE2LTAwIFBPTExJVFQgRFJJVkUKKwkJCQlGQUlSIExBV04gTkogMDc0MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTgxICAgKGhleCkJCVRZQU4gQ09NUFVURVIgQ09SUC4KKzAwRTA4MSAgICAgKGJhc2UgMTYpCQlUWUFOIENPTVBVVEVSIENPUlAuCisJCQkJMzI4OCBMQVVSRVZJRVcgQ1QKKwkJCQlGUkVNT05UIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC04MiAgIChoZXgpCQlBTkVSTUEKKzAwRTA4MiAgICAgKGJhc2UgMTYpCQlBTkVSTUEKKwkJCQlTQ0hBQVBTRFJJRVMgMjUKKwkJCQkyMjYwIFdFU1RFUkxPICAKKwkJCQlCRUxHSVVNCisKKzAwLUUwLTgzICAgKGhleCkJCUpBVE8gVEVDSE5PTE9HSUVTLCBJTkMuCiswMEUwODMgICAgIChiYXNlIDE2KQkJSkFUTyBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk1MDUgRUFTVCBIVU5UTEFORCBEUi4gU1RFICM1NTAKKwkJCQlBVVNUSU4gVFggNzg3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTg0ICAgKGhleCkJCUNPTVBVTElURSBSJkQKKzAwRTA4NCAgICAgKGJhc2UgMTYpCQlDT01QVUxJVEUgUiZECisJCQkJMyBIQVJPU0hFVCBTVFIuIE5FVyBJTkQuIFpPTkUKKwkJCQlSQU1BVC1IQVNIQVJPTiA0NzI3OSAgCisJCQkJSVNSQUVMCisKKzAwLUUwLTg1ICAgKGhleCkJCUdMT0JBTCBNQUlOVEVDSCwgSU5DLgorMDBFMDg1ICAgICAoYmFzZSAxNikJCUdMT0JBTCBNQUlOVEVDSCwgSU5DLgorCQkJCTY0NjggQ0lUWSBXRVNUIFBBUktXQVkKKwkJCQlFREVOIFBSQUlSSUUgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTg2ICAgKGhleCkJCUNZQkVYIENPTVBVVEVSIFBST0RVQ1RTCiswMEUwODYgICAgIChiYXNlIDE2KQkJQ1lCRVggQ09NUFVURVIgUFJPRFVDVFMKKwkJCQk0OTEyIFJFU0VBUkNIIERSSVZFCisJCQkJSFVOVFNWSUxMRSBBTCAzNTgwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtODcgICAoaGV4KQkJTGVDcm95IC0gTmV0d29ya2luZyBQcm9kdWN0aW9ucyBEaXZpc2lvbgorMDBFMDg3ICAgICAoYmFzZSAxNikJCUxlQ3JveSAtIE5ldHdvcmtpbmcgUHJvZHVjdGlvbnMgRGl2aXNpb24KKwkJCQkyNSBCVVJMSU5HVE9OIE1BTEwgUk9BRAorCQkJCUJVUkxJTkdUT04gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTg4ICAgKGhleCkJCUxUWCBDT1JQT1JBVElPTgorMDBFMDg4ICAgICAoYmFzZSAxNikJCUxUWCBDT1JQT1JBVElPTgorCQkJCTE0NSBVTklWRVJTSVRZIEFWRU5VRQorCQkJCVdFU1RXT09EIE1BIDAyMDkwLTIzMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTg5ICAgKGhleCkJCUlPTiBOZXR3b3JrcywgSW5jLgorMDBFMDg5ICAgICAoYmFzZSAxNikJCUlPTiBOZXR3b3JrcywgSW5jLgorCQkJCTE1NTEgU291dGggV2FzaGluZ3RvbiBBdmUuCisJCQkJUGlzY2F0YXdheSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOEEgICAoaGV4KQkJR0VDIEFWRVJZLCBMVEQuCiswMEUwOEEgICAgIChiYXNlIDE2KQkJR0VDIEFWRVJZLCBMVEQuCisJCQkJRk9VTkRSWSBMQU5FCisJCQkJU01FVEhXSUNLLCBXQVJMRVkKKwkJCQlXRVNUIE1JRExBTkRTLCBCNjYgMkxQIEVuZ2xhbmQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtOEIgICAoaGV4KQkJUUxvZ2ljIENvcnAuCiswMEUwOEIgICAgIChiYXNlIDE2KQkJUUxvZ2ljIENvcnAuCisJCQkJMjY2MDAgTGFndW5hIEhpbGxzIERyLgorCQkJCUFsaXNvIFZpZWpvIENBIDkyNjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC04QyAgIChoZXgpCQlORU9QQVJBRElHTSBMQUJTLCBJTkMuCiswMEUwOEMgICAgIChiYXNlIDE2KQkJTkVPUEFSQURJR00gTEFCUywgSU5DLgorCQkJCTE3MzUgTi4gRklSU1QgU1QuLCAgU1RFICMxMDgKKwkJCQlTQU4gSk9TRSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOEQgICAoaGV4KQkJUFJFU1NVUkUgU1lTVEVNUywgSU5DLgorMDBFMDhEICAgICAoYmFzZSAxNikJCVBSRVNTVVJFIFNZU1RFTVMsIElOQy4KKwkJCQkzNCBSRVNFQVJDSCBEUklWRQorCQkJCUhBTVBUT04gVkEgMjM2NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLThFICAgKGhleCkJCVVUU1RBUkNPTQorMDBFMDhFICAgICAoYmFzZSAxNikJCVVUU1RBUkNPTQorCQkJCTMzIFdPT0QgQVZFLiBTT1VUSAorCQkJCUlTRUxJTiBOSiAwODgzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOEYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBFMDhGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOTAgICAoaGV4KQkJQkVDS01BTiBMQUIuIEFVVE9NQVRJT04gRElWLgorMDBFMDkwICAgICAoYmFzZSAxNikJCUJFQ0tNQU4gTEFCLiBBVVRPTUFUSU9OIERJVi4KKwkJCQk5MCBCT1JPTElORSBST0FECisJCQkJQUxMRU5EQUxFIE5KIDA3NDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC05MSAgIChoZXgpCQlMRyBFTEVDVFJPTklDUywgSU5DLgorMDBFMDkxICAgICAoYmFzZSAxNikJCUxHIEVMRUNUUk9OSUNTLCBJTkMuCisJCQkJMTYsIFdPT01ZRU9OLURPTkcsCisJCQkJU0VPQ0hPLUdVLCBTRU9VTCwgMTM3LTE0MCwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1FMC05MiAgIChoZXgpCQlBRE1URUsgSU5DT1JQT1JBVEVECiswMEUwOTIgICAgIChiYXNlIDE2KQkJQURNVEVLIElOQ09SUE9SQVRFRAorCQkJCTE5NjIgWkFOS0VSIFJPQUQKKwkJCQlTQU4gSk9TRSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOTMgICAoaGV4KQkJQUNLRklOIE5FVFdPUktTCiswMEUwOTMgICAgIChiYXNlIDE2KQkJQUNLRklOIE5FVFdPUktTCisJCQkJNTc1IE4uIFBBU1RPUklBIEFWRS4KKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTk0ICAgKGhleCkJCU9TQUkgU1JMCiswMEUwOTQgICAgIChiYXNlIDE2KQkJT1NBSSBTUkwKKwkJCQlWSUEgVE9SSU5PCisJCQkJNjAzLUlWUkVBIChUTykgIAorCQkJCUlUQUxZCisKKzAwLUUwLTk1ICAgKGhleCkJCUFEVkFOQ0VELVZJU0lPTiBURUNITk9MR0lFUyBDT1JQLgorMDBFMDk1ICAgICAoYmFzZSAxNikJCUFEVkFOQ0VELVZJU0lPTiBURUNITk9MR0lFUyBDT1JQLgorCQkJCThGLTEsIDg3IFNFQ1RJT04gMywgQ0hVTkcgWUFORyBSRCwKKwkJCQlUdSBDaGVuZyBUYWlwZWkgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1FMC05NiAgIChoZXgpCQlTSElNQURaVSBDT1JQT1JBVElPTgorMDBFMDk2ICAgICAoYmFzZSAxNikJCVNISU1BRFpVIENPUlBPUkFUSU9OCisJCQkJMSwgTklTSElOT0tZTy1LVVdBQkFSQUNITworCQkJCU5BS0FHWU8tS1UsIEtZT1RPIDYwNCAgCisJCQkJSkFQQU4KKworMDAtRTAtOTcgICAoaGV4KQkJQ0FSUklFUiBBQ0NFU1MgQ09SUE9SQVRJT04KKzAwRTA5NyAgICAgKGJhc2UgMTYpCQlDQVJSSUVSIEFDQ0VTUyBDT1JQT1JBVElPTgorCQkJCTUzOTUgUEVBUkwgUEFSS1dBWQorCQkJCUJPVUxERVIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTk4ICAgKGhleCkJCUFib0NvbSBTeXN0ZW1zLCBJbmMuCiswMEUwOTggICAgIChiYXNlIDE2KQkJQWJvQ29tIFN5c3RlbXMsIEluYy4KKwkJCQkxMkYtMywgTk8uIDMzMywgU0VDLiAxCisJCQkJR1VBTi1GVSBST0FECisJCQkJSFNJTi1DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtOTkgICAoaGV4KQkJU0FNU09OIEFHCiswMEUwOTkgICAgIChiYXNlIDE2KQkJU0FNU09OIEFHCisJCQkJV0VJU01VTExFUlNUUi4gMworCQkJCUQtNjAzMTQgRlJBTktGVVJUICAKKwkJCQlHRVJNQU5ZCisKKzAwLUUwLTlBICAgKGhleCkJCVBvc2l0cm9uIEluYy4KKzAwRTA5QSAgICAgKGJhc2UgMTYpCQlQb3NpdHJvbiBJbmMuCisJCQkJNTEwMSBCdWNoYW4gU3RyZWV0CisJCQkJU3VpdGUgMjIwCisJCQkJTW9udHJlYWwsIFF1ZWJlYyBINFAgMlI5CisJCQkJQ0FOQURBCisKKzAwLUUwLTlCICAgKGhleCkJCUVOR0FHRSBORVRXT1JLUywgSU5DLgorMDBFMDlCICAgICAoYmFzZSAxNikJCUVOR0FHRSBORVRXT1JLUywgSU5DLgorCQkJCTMxNiBOLiBNSUxXQVVLRUUgU1QuLCBTVEUuIzIxNAorCQkJCU1JTFdBVUtFRSBXSSA1MzIwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOUMgICAoaGV4KQkJTUlJCiswMEUwOUMgICAgIChiYXNlIDE2KQkJTUlJCisJCQkJTEUgcGFyYyBkdSBNT1VMSU4KKwkJCQkyLCBncmFuZGUgcnVlIFByb2xvbmdlZQorCQkJCUY5NTY1MCBQVUlTRVVYLVBPVE9JU0UgIAorCQkJCUZSQU5DRQorCiswMC1FMC05RCAgIChoZXgpCQlTQVJOT0ZGIENPUlBPUkFUSU9OCiswMEUwOUQgICAgIChiYXNlIDE2KQkJU0FSTk9GRiBDT1JQT1JBVElPTgorCQkJCUNOIDUzMDAKKwkJCQlQUklOQ0VUT04gTkogMDg1NDMtNTMwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOUUgICAoaGV4KQkJUVVBTlRVTSBDT1JQT1JBVElPTgorMDBFMDlFICAgICAoYmFzZSAxNikJCVFVQU5UVU0gQ09SUE9SQVRJT04KKwkJCQk1MDAgTWNDYXJ0aHkgQm91bGV2YXJkCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTlGICAgKGhleCkJCVBJWEVMIFZJU0lPTgorMDBFMDlGICAgICAoYmFzZSAxNikJCVBJWEVMIFZJU0lPTgorCQkJCTQzIE5BR09HIFBBUksKKwkJCQlBQ1RPTiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQTAgICAoaGV4KQkJV0lMVFJPTiBDTy4KKzAwRTBBMCAgICAgKGJhc2UgMTYpCQlXSUxUUk9OIENPLgorCQkJCTQ5MCBKQVJWSVMgRFJJVkUKKwkJCQlNT1JHQU4gSElMTCBDQSA5NTAzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQTEgICAoaGV4KQkJSElNQSBQQVVMIEhJTERFQlJBTkRUIEdtYkggQ28uIEtHCiswMEUwQTEgICAgIChiYXNlIDE2KQkJSElNQSBQQVVMIEhJTERFQlJBTkRUIEdtYkggQ28uIEtHCisJCQkJCisJCQkJUE9TVEJPWCAxMjYxCisJCQkJRC02ODc3NyBCUlVFSEwgTkVBUiBNQU5OSEVJTSAKKwkJCQlHRVJNQU5ZCisKKzAwLUUwLUEyICAgKGhleCkJCU1JQ1JPU0xBVEUgSU5DLgorMDBFMEEyICAgICAoYmFzZSAxNikJCU1JQ1JPU0xBVEUgSU5DLgorCQkJCTk2MjUgSUdOQUNFIC0gU1RFLiBECisJCQkJQlJPU1NBUkQgIFFDIEo0WSAyUDMgIAorCQkJCUNBTkFEQQorCiswMC1FMC1BMyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEUwQTMgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1BNCAgIChoZXgpCQlFU0FPVEUgUy5wLkEuCiswMEUwQTQgICAgIChiYXNlIDE2KQkJRVNBT1RFIFMucC5BLgorCQkJCXZpYSBkaSBDQUNJT0xMRSwgMTUKKwkJCQk1MDEyNyBGTE9SRU5DRSAgCisJCQkJSVRBTFkKKworMDAtRTAtQTUgICAoaGV4KQkJQ29tQ29yZSBTZW1pY29uZHVjdG9yLCBJbmMuCiswMEUwQTUgICAgIChiYXNlIDE2KQkJQ29tQ29yZSBTZW1pY29uZHVjdG9yLCBJbmMuCisJCQkJNDUwNSBMQVMgVklSR0VORVMsIFN1aXRlIDIwMgorCQkJCUNBTEFCQVNBUyBDQSA5MTMwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQTYgICAoaGV4KQkJVEVMT0dZIE5FVFdPUktTLCBJTkMuCiswMEUwQTYgICAgIChiYXNlIDE2KQkJVEVMT0dZIE5FVFdPUktTLCBJTkMuCisJCQkJMjAyNTAgQ0VOVFVSWSBCTFZELgorCQkJCUdFUk1BTlRPV04gTUQgMjA4NzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUE3ICAgKGhleCkJCUlQQyBJTkZPUk1BVElPTiBTWVNURU1TLCBJTkMuCiswMEUwQTcgICAgIChiYXNlIDE2KQkJSVBDIElORk9STUFUSU9OIFNZU1RFTVMsIElOQy4KKwkJCQlNRVRSTyBDRU5URVIKKwkJCQlPTkUgU1RBVElPTiBQTEFDRQorCQkJCVNUQU1GT1JEIENUIDA2OTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1BOCAgIChoZXgpCQlTQVQgR21iSCAmIENvLgorMDBFMEE4ICAgICAoYmFzZSAxNikJCVNBVCBHbWJIICYgQ28uCisJCQkJUlVUSE5FUkdBU1NFIDEKKwkJCQlWSUVOTkEgQS0xMjEwICAKKwkJCQlBVVNUUklBCisKKzAwLUUwLUE5ICAgKGhleCkJCUZVTkFJIEVMRUNUUklDIENPLiwgTFRELgorMDBFMEE5ICAgICAoYmFzZSAxNikJCUZVTkFJIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTctMSwgTkFLQUdBSVRPIDctQ0hPTUUsIERBSVRPCisJCQkJT1NBS0EgIDU3NCAgCisJCQkJSkFQQU4KKworMDAtRTAtQUEgICAoaGV4KQkJRUxFQ1RST1NPTklDIExURC4KKzAwRTBBQSAgICAgKGJhc2UgMTYpCQlFTEVDVFJPU09OSUMgTFRELgorCQkJCUhBV0xFWSBNSUxMLCBIQVdMRVkgUkQuCisJCQkJREFSVEZPUkQsIEtFTlQgREEyIDdTWSAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtQUIgICAoaGV4KQkJRElNQVQgUy5BLgorMDBFMEFCICAgICAoYmFzZSAxNikJCURJTUFUIFMuQS4KKwkJCQlDL0JJU0NBSUEgMzgzIDMKKwkJCQkwODAyMyAgQkFSQ0VMT05BICAKKwkJCQlTUEFJTgorCiswMC1FMC1BQyAgIChoZXgpCQlNSURTQ08sIElOQy4KKzAwRTBBQyAgICAgKGJhc2UgMTYpCQlNSURTQ08sIElOQy4KKwkJCQk3MTAgUk9VVEUgNDYgRUFTVAorCQkJCUZBSVJGSUVMRCBOSiAwNzAwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQUQgICAoaGV4KQkJRUVTIFRFQ0hOT0xPR1ksIExURC4KKzAwRTBBRCAgICAgKGJhc2UgMTYpCQlFRVMgVEVDSE5PTE9HWSwgTFRELgorCQkJCTI1IEVBU1RXQVlTCisJCQkJV0lUSEFNLCBFU1NFWCwgQ004IDNBTCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtQUUgICAoaGV4KQkJWEFRVEkgQ09SUE9SQVRJT04KKzAwRTBBRSAgICAgKGJhc2UgMTYpCQlYQVFUSSBDT1JQT1JBVElPTgorCQkJCSAxNjMwIE9BS0xBTkQgUkQuICNBLTIxNAorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1BRiAgIChoZXgpCQlHRU5FUkFMIERZTkFNSUNTIElORk9STUFUSU9OIFNZU1RFTVMKKzAwRTBBRiAgICAgKGJhc2UgMTYpCQlHRU5FUkFMIERZTkFNSUNTIElORk9STUFUSU9OIFNZU1RFTVMKKwkJCQlDT01QVVRJTkcgREVWSUNFUywgTFRELgorCQkJCSAzMTkwIEZBSVJWSUVXIFBBCisJCQkJRkFMTFMgQ0hVUkNIIFZBIDIyMDQyLTQ1MjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUIwICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRTBCMCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUIxICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50LCBFbnRlcnByaXNlIEJ1c2luZXNzIEdyb3VwCiswMEUwQjEgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQsIEVudGVycHJpc2UgQnVzaW5lc3MgR3JvdXAKKwkJCQkyNjgwMSBXZXN0IEFnb3VyYSBSb2FkCisJCQkJQ2FsYWJhc2FzIENBIDkxMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CMiAgIChoZXgpCQlURUxNQVggQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwRTBCMiAgICAgKGJhc2UgMTYpCQlURUxNQVggQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQk0NjUxNSBMQU5ESU5HIFBBUktXQVkKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CMyAgIChoZXgpCQlFdGhlcldBTiBTeXN0ZW1zLCBJbmMuCiswMEUwQjMgICAgIChiYXNlIDE2KQkJRXRoZXJXQU4gU3lzdGVtcywgSW5jLgorCQkJCTE0IEhVR0hFUywgIFNURS5CLTEwNQorCQkJCUlSVklORSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQjQgICAoaGV4KQkJVEVDSE5PIFNDT1BFIENPLiwgTFRELgorMDBFMEI0ICAgICAoYmFzZSAxNikJCVRFQ0hOTyBTQ09QRSBDTy4sIExURC4KKwkJCQkxMy02LTcgS0lTSElNQVRJIFVSQVdBU0kKKwkJCQlTQUlUQU1BIDMzNiAgCisJCQkJSkFQQU4KKworMDAtRTAtQjUgICAoaGV4KQkJQVJERU5UIENPTU1VTklDQVRJT05TIENPUlAuCiswMEUwQjUgICAgIChiYXNlIDE2KQkJQVJERU5UIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJMzgwMSBaQU5LRVIgUk9BRCwgIFN1aXRlIEEKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQjYgICAoaGV4KQkJRW50cmFkYSBOZXR3b3JrcworMDBFMEI2ICAgICAoYmFzZSAxNikJCUVudHJhZGEgTmV0d29ya3MKKwkJCQk5MDIwIEpVTkNUSU9OIERSSVZFCisJCQkJQU5OQVBPTElTIEpVTkNUSU9OIE1EIDIwNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CNyAgIChoZXgpCQlQSSBHUk9VUCwgTFRELgorMDBFMEI3ICAgICAoYmFzZSAxNikJCVBJIEdST1VQLCBMVEQuCisJCQkJTUlMVE9OIEhBTEwsIENIVVJDSCBMQU5FCisJCQkJTUlMVE9OLCBDQU1CUklER0UgQ0JBIDZBQiAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtQjggICAoaGV4KQkJR0FURVdBWSAyMDAwCiswMEUwQjggICAgIChiYXNlIDE2KQkJR0FURVdBWSAyMDAwCisJCQkJNjEwIEdBVEVXQVkgRFJJVkUKKwkJCQlOLiBTSU9VWCBDSVRZIFNEIDU3MDQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1COSAgIChoZXgpCQlCWUFTIFNZU1RFTVMKKzAwRTBCOSAgICAgKGJhc2UgMTYpCQlCWUFTIFNZU1RFTVMKKwkJCQkyMjUwIE1PTlJPRSBTVFJFRVQsICAjMzcxCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUJBICAgKGhleCkJCUJFUkdIT0YgQVVUT01BVElPTlNURUNITklLIEdtYkgKKzAwRTBCQSAgICAgKGJhc2UgMTYpCQlCRVJHSE9GIEFVVE9NQVRJT05TVEVDSE5JSyBHbWJICisJCQkJSEFSUkVUIFNUUkFTU0UgMQorCQkJCUQgNzI4MDAgRU5JTkdFTiAgCisJCQkJR0VSTUFOWQorCiswMC1FMC1CQiAgIChoZXgpCQlOQlggQ09SUE9SQVRJT04KKzAwRTBCQiAgICAgKGJhc2UgMTYpCQlOQlggQ09SUE9SQVRJT04KKwkJCQkxMDAgQlJJQ0tTVE9ORSBTUVVBUkUKKwkJCQlBTkRPVkVSIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CQyAgIChoZXgpCQlTWU1PTiBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBFMEJDICAgICAoYmFzZSAxNikJCVNZTU9OIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTA3MDEgQ09SUE9SQVRFIERSLi1TVEUuICMyOTAKKwkJCQlTVEFGRk9SRCBUWCA3NzQ3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQkQgICAoaGV4KQkJSU5URVJGQUNFIFNZU1RFTVMsIElOQy4KKzAwRTBCRCAgICAgKGJhc2UgMTYpCQlJTlRFUkZBQ0UgU1lTVEVNUywgSU5DLgorCQkJCTU4NTUgSU5URVJGQUNFIERSSVZFCisJCQkJQU5OIEFSQk9SIE1JIDQ4MTAzLTk1MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUJFICAgKGhleCkJCUdFTlJPQ08gSU5URVJOQVRJT05BTCwgSU5DLgorMDBFMEJFICAgICAoYmFzZSAxNikJCUdFTlJPQ08gSU5URVJOQVRJT05BTCwgSU5DLgorCQkJCTI1NSBFTkRFUlMgQ09VUlQKKwkJCQlTTElOR0VSIFdJIDUzMDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CRiAgIChoZXgpCQlUT1JSRU5UIE5FVFdPUktJTkcgVEVDSE5PTE9HSUVTIENPUlAuCiswMEUwQkYgICAgIChiYXNlIDE2KQkJVE9SUkVOVCBORVRXT1JLSU5HIFRFQ0hOT0xPR0lFUyBDT1JQLgorCQkJCTgxODEgUFJPRkVTU0lPTkFMIFBMQUNFCisJCQkJU1VJVEUgIzE2MAorCQkJCUxBTkRPVkVSIE1EIDIwNzg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1DMCAgIChoZXgpCQlTRUlXQSBFTEVDVFJJQyBNRkcuIENPLiwgTFRELgorMDBFMEMwICAgICAoYmFzZSAxNikJCVNFSVdBIEVMRUNUUklDIE1GRy4gQ08uLCBMVEQuCisJCQkJODYgVEFSQURBIFNISU4tSUtFLAorCQkJCUpPWU8sCisJCQkJS1lPVE8gUFJFRkVDVFVSRSAgCisJCQkJSkFQQU4KKworMDAtRTAtQzEgICAoaGV4KQkJTUVNT1JFWCBURUxFWCBKQVBBTiwgTFRELgorMDBFMEMxICAgICAoYmFzZSAxNikJCU1FTU9SRVggVEVMRVggSkFQQU4sIExURC4KKwkJCQlZQUVTVUdVQ0hJIEtBSUtBTiwgMS03LTIwCisJCQkJWUFFU1UsIENIVU8tS1UKKwkJCQlUT0tZTyAxMDMgIAorCQkJCUpBUEFOCisKKzAwLUUwLUMyICAgKGhleCkJCU5FQ1NZIFMucC5BLgorMDBFMEMyICAgICAoYmFzZSAxNikJCU5FQ1NZIFMucC5BLgorCQkJCVZJQSBMSVNCT05BIDI4CisJCQkJMzUwMjAgUEFET1ZBICAKKwkJCQlJVEFMWQorCiswMC1FMC1DMyAgIChoZXgpCQlTQUtBSSBTWVNURU0gREVWRUxPUE1FTlQgQ09SUC4KKzAwRTBDMyAgICAgKGJhc2UgMTYpCQlTQUtBSSBTWVNURU0gREVWRUxPUE1FTlQgQ09SUC4KKwkJCQlQT1JUVVMgQ0VOVEVSIEJMRC4sIDQtNDUtMQorCQkJCUVCSVNVSklNQS1DSE8sICBTQUtBSS1DSVRZCisJCQkJT1NBS0EtRlUsIDU5MCAgCisJCQkJSkFQQU4KKworMDAtRTAtQzQgICAoaGV4KQkJSE9STkVSIEVMRUNUUklDLCBJTkMuCiswMEUwQzQgICAgIChiYXNlIDE2KQkJSE9STkVSIEVMRUNUUklDLCBJTkMuCisJCQkJMTUyMSBFLiBXQVNISU5HVE9OIFNULgorCQkJCUlORElBTkFQT0xJUyBJTiA0NjIwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQzUgICAoaGV4KQkJQkNPTSBFTEVDVFJPTklDUyBJTkMuCiswMEUwQzUgICAgIChiYXNlIDE2KQkJQkNPTSBFTEVDVFJPTklDUyBJTkMuCisJCQkJOCBGTCwgTk8uIDY0LCBBTiBITyBST0FELCBTRUMuIDIKKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtQzYgICAoaGV4KQkJTElOSzJJVCwgTC5MLkMuCiswMEUwQzYgICAgIChiYXNlIDE2KQkJTElOSzJJVCwgTC5MLkMuCisJCQkJNDI1NiBCRUNLIEFWRU5VRQorCQkJCVNUVURJTyBDSVRZIENBIDkxNjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1DNyAgIChoZXgpCQlFVVJPVEVDSCBTUkwKKzAwRTBDNyAgICAgKGJhc2UgMTYpCQlFVVJPVEVDSCBTUkwKKwkJCQlWSUEgSkFDT1BPIExJTlVTU0lPIDEKKwkJCQkzMzAzMCBBTUFST08gKFVEKSAgCisJCQkJSVRBTFkKKworMDAtRTAtQzggICAoaGV4KQkJVklSVFVBTCBBQ0NFU1MsIExURC4KKzAwRTBDOCAgICAgKGJhc2UgMTYpCQlWSVJUVUFMIEFDQ0VTUywgTFRELgorCQkJCVdPT0RTSURFIEhPVVNFLCBXSU5LRklFTEQsCisJCQkJV0lORFNPUiwgQkVSS1NISVJFIFNMNCAyRFggRU5HTEFORCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1FMC1DOSAgIChoZXgpCQlBdXRvbWF0ZWRMb2dpYyBDb3Jwb3JhdGlvbgorMDBFMEM5ICAgICAoYmFzZSAxNikJCUF1dG9tYXRlZExvZ2ljIENvcnBvcmF0aW9uCisJCQkJMTE1MCBST0JFUlRTIEJPVUxFVkFSRAorCQkJCUtFTk5FU0FXIEdBIDMwMTQ0LTM2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUNBICAgKGhleCkJCUJFU1QgREFUQSBQUk9EVUNUUworMDBFMENBICAgICAoYmFzZSAxNikJCUJFU1QgREFUQSBQUk9EVUNUUworCQkJCTIxODAwIE5PUkRIT0ZGIFNUUkVFVAorCQkJCUNIQVRTV09SVEggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUNCICAgKGhleCkJCVJFU09OLCBJTkMuCiswMEUwQ0IgICAgIChiYXNlIDE2KQkJUkVTT04sIElOQy4KKwkJCQkzMDAgTE9QRVogUk9BRAorCQkJCUdPTEVUQSBDQSA5MzExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQ0MgICAoaGV4KQkJSEVSTyBTWVNURU1TLCBMVEQuCiswMEUwQ0MgICAgIChiYXNlIDE2KQkJSEVSTyBTWVNURU1TLCBMVEQuCisJCQkJVEhFIEJBUk5FUywgQ09PTUJFTEFORFMgTEFORSwKKwkJCQlBRERMRVNUT05FLCBXRVlCUklER0UKKwkJCQlTVVJSRVkgS1QxNSAxSFkgRW5nbGFuZCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1FMC1DRCAgIChoZXgpCQlTRU5TSVMgQ09SUE9SQVRJT04KKzAwRTBDRCAgICAgKGJhc2UgMTYpCQlTRU5TSVMgQ09SUE9SQVRJT04KKwkJCQk1NzkzIFdJREVXQVRFUlMgUEFSS1dBWQorCQkJCURFV0lUVCBOWSAxMzIxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQ0UgICAoaGV4KQkJQVJOCiswMEUwQ0UgICAgIChiYXNlIDE2KQkJQVJOCisJCQkJNTEsIFJVRSBHQVNUT04gTEFVUklBVQorCQkJCUYtOTM1MTIgTU9OVFJFVUlMIENFREVYICAKKwkJCQlGUkFOQ0UKKworMDAtRTAtQ0YgICAoaGV4KQkJSU5URUdSQVRFRCBERVZJQ0UgVEVDSE5PTE9HWSwgSU5DLgorMDBFMENGICAgICAoYmFzZSAxNikJCUlOVEVHUkFURUQgREVWSUNFIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk2MDI0IFNpbHZlciBDcmVlayBWYWxsZXkgUm9hZAorCQkJCVNhbiBKb3NlIENBIDk1MTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1EMCAgIChoZXgpCQlORVRTUEVFRCwgSU5DLgorMDBFMEQwICAgICAoYmFzZSAxNikJCU5FVFNQRUVELCBJTkMuCisJCQkJMTIzMDMgVEVDSE5PTE9HWSBCTFZELgorCQkJCUFVU1RJTiBUWCA3ODcyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRDEgICAoaGV4KQkJVEVMU0lTIExJTUlURUQKKzAwRTBEMSAgICAgKGJhc2UgMTYpCQlURUxTSVMgTElNSVRFRAorCQkJCTE2IEJBUk5FUyBXQUxMQUNFIFJPQUQKKwkJCQlGQVJFSEFNLCBIQU1QU0hJUkUgUE8xNSA1VFQgRU5HTEFORCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1FMC1EMiAgIChoZXgpCQlWRVJTQU5FVCBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBFMEQyICAgICAoYmFzZSAxNikJCVZFUlNBTkVUIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJNjI4IE4uIERJQU1PTkQgQkFSIEJMVkQuCisJCQkJRElBTU9ORCBCQVIgQ0EgOTE3NjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUQzICAgKGhleCkJCURBVEVOVEVDSE5JSyBHbWJICiswMEUwRDMgICAgIChiYXNlIDE2KQkJREFURU5URUNITklLIEdtYkgKKwkJCQlUSEVSRVNJQU5VTUdBU1NFIDExCisJCQkJQS0xMDQwIFdJRU4gIAorCQkJCUFVU1RSSUEKKworMDAtRTAtRDQgICAoaGV4KQkJRVhDRUxMRU5UIENPTVBVVEVSCiswMEUwRDQgICAgIChiYXNlIDE2KQkJRVhDRUxMRU5UIENPTVBVVEVSCisJCQkJNTUxLCBNLksuTi4gUk9BRAorCQkJCUFMQU5EVVIsIENIRU5OQUkgNjAwMDE2ICAKKwkJCQlJTkRJQQorCiswMC1FMC1ENSAgIChoZXgpCQlFbXVsZXggQ29ycG9yYXRpb24KKzAwRTBENSAgICAgKGJhc2UgMTYpCQlFbXVsZXggQ29ycG9yYXRpb24KKwkJCQkzMzMzIFN1c2FuIFN0cmVldAorCQkJCUNvc3RhIE1lc2EgQ0EgOTI2MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUQ2ICAgKGhleCkJCUNPTVBVVEVSICYgQ09NTVVOSUNBVElPTiBSRVNFQVJDSCBMQUIuCiswMEUwRDYgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgJiBDT01NVU5JQ0FUSU9OIFJFU0VBUkNIIExBQi4KKwkJCQkKKwkJCQkxOTUgU0VDLjQsIENIVU5HIEhTSU5HIFJECisJCQkJQ0hVVFVORywgSFNJTkNIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1FMC1ENyAgIChoZXgpCQlTVU5TSElORSBFTEVDVFJPTklDUywgSU5DLgorMDBFMEQ3ICAgICAoYmFzZSAxNikJCVNVTlNISU5FIEVMRUNUUk9OSUNTLCBJTkMuCisJCQkJNDY1NjAgRlJFTU9OVCBCTFZELiAtU1RFLiAjMTEzCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRDggICAoaGV4KQkJTEFOQml0IENvbXB1dGVyLCBJbmMuCiswMEUwRDggICAgIChiYXNlIDE2KQkJTEFOQml0IENvbXB1dGVyLCBJbmMuCisJCQkJMTJGLCA1NTIgQ0hVTkcgSFNJQU8gRS4sIFJELgorCQkJCVNFQy4gNSwgVEFJUEVJIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtRDkgICAoaGV4KQkJVEFaTU8gQ08uLCBMVEQuCiswMEUwRDkgICAgIChiYXNlIDE2KQkJVEFaTU8gQ08uLCBMVEQuCisJCQkJNjE4NiBLSU5PS08sIElCQVJBLVNISQorCQkJCU9LQVlBTUEgNzE1ICAKKwkJCQlKQVBBTgorCiswMC1FMC1EQSAgIChoZXgpCQlBbGNhdGVsIE5vcnRoIEFtZXJpY2EgRVNECiswMEUwREEgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBOb3J0aCBBbWVyaWNhIEVTRAorCQkJCTI2ODAxIFdlc3QgQWdvdXJhIFJvYWQKKwkJCQlDYWxhYmFzYXMgQ0EgOTEzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLURCICAgKGhleCkJCVZpYVZpZGVvIENvbW11bmljYXRpb25zLCBJbmMuCiswMEUwREIgICAgIChiYXNlIDE2KQkJVmlhVmlkZW8gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk4OTAwIFNIT0FMIENSRUVLIEJMVkQuCisJCQkJQkxERy4gIzMwMAorCQkJCUFVU1RJTiBUWCA3ODc1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtREMgICAoaGV4KQkJTkVYV0FSRSBDT1JQLgorMDBFMERDICAgICAoYmFzZSAxNikJCU5FWFdBUkUgQ09SUC4KKwkJCQk4MjUgU1RFV0FSVCBEUi4sICBTVEUgIzQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUREICAgKGhleCkJCVpFTklUSCBFTEVDVFJPTklDUyBDT1JQT1JBVElPTgorMDBFMEREICAgICAoYmFzZSAxNikJCVpFTklUSCBFTEVDVFJPTklDUyBDT1JQT1JBVElPTgorCQkJCTEwMDAgTUlMV0FVS0VFIEFWRU5VRQorCQkJCUdMRU5WSUVXIElMIDYwMDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1ERSAgIChoZXgpCQlEQVRBWCBOVgorMDBFMERFICAgICAoYmFzZSAxNikJCURBVEFYIE5WCisJCQkJUklOR0xBQU4gNTEKKwkJCQlCLTI2MDAgQkVSQ0hFTSAgCisJCQkJQkVMR0lVTQorCiswMC1FMC1ERiAgIChoZXgpCQlLRVlNSUxFIEdtYkgKKzAwRTBERiAgICAgKGJhc2UgMTYpCQlLRVlNSUxFIEdtYkgKKwkJCQlXb2hsZW5iZXJnc3RyLiAzCisJCQkJMzAxNzkgSGFubm92ZXIgCisJCQkJR0VSTUFOWQorCiswMC1FMC1FMCAgIChoZXgpCQlTSSBFTEVDVFJPTklDUywgTFRELgorMDBFMEUwICAgICAoYmFzZSAxNikJCVNJIEVMRUNUUk9OSUNTLCBMVEQuCisJCQkJMjgtMTYsIFNISU1PTUFSVUtPIDItQ0hPTUUsCisJCQkJVE9LWU8gMTQ2ICAKKwkJCQlKQVBBTgorCiswMC1FMC1FMSAgIChoZXgpCQlHMiBORVRXT1JLUywgSU5DLgorMDBFMEUxICAgICAoYmFzZSAxNikJCUcyIE5FVFdPUktTLCBJTkMuCisJCQkJMTQyIFNPLiBTQU5UQSBDUlVaIEFWRS4KKwkJCQlMT1MgR0FUT1MgQ0EgOTUwMzAtNjcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRTIgICAoaGV4KQkJSU5OT1ZBIENPUlAuCiswMEUwRTIgICAgIChiYXNlIDE2KQkJSU5OT1ZBIENPUlAuCisJCQkJMzMyNSBTT1VUSCAxMTZUSCBTVFJFRVQKKwkJCQlTRUFUVExFIFdBIDk4MTY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1FMyAgIChoZXgpCQlTSy1FTEVLVFJPTklLIEdtYkgKKzAwRTBFMyAgICAgKGJhc2UgMTYpCQlTSy1FTEVLVFJPTklLIEdtYkgKKwkJCQlIRU1NRUxSQVRIRVJXRUcgMjAxCisJCQkJNTEzNzcgTEVWRVJLVVNFTiAgCisJCQkJR0VSTUFOWQorCiswMC1FMC1FNCAgIChoZXgpCQlGQU5VQyBST0JPVElDUyBOT1JUSCBBTUVSSUNBLCBJbmMuCiswMEUwRTQgICAgIChiYXNlIDE2KQkJRkFOVUMgUk9CT1RJQ1MgTk9SVEggQU1FUklDQSwgSW5jLgorCQkJCTM5MDAgVy4gSEFNTElOIFJELgorCQkJCVJPQ0hFU1RFUiBISUxMUyBNSSA0ODMwOS0zMjUzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1FNSAgIChoZXgpCQlDSU5DTyBORVRXT1JLUywgSU5DLgorMDBFMEU1ICAgICAoYmFzZSAxNikJCUNJTkNPIE5FVFdPUktTLCBJTkMuCisJCQkJNjYwMSBLT0xMIENFTlRFUiBQQVJLIFdBWQorCQkJCVNVSVRFICMxNDAKKwkJCQlQTEVBU0FOVE9OIENBIDk0NTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1FNiAgIChoZXgpCQlJTkNBQSBEQVRBQ09NIEIuVi4KKzAwRTBFNiAgICAgKGJhc2UgMTYpCQlJTkNBQSBEQVRBQ09NIEIuVi4KKwkJCQlQLk8uIEJPWCAyMTEKKwkJCQk3MzAwIEFFIEFQRUxET09STiAgCisJCQkJTkVUSEVSTEFORFMKKworMDAtRTAtRTcgICAoaGV4KQkJUkFZVEhFT04gRS1TWVNURU1TLCBJTkMuCiswMEUwRTcgICAgIChiYXNlIDE2KQkJUkFZVEhFT04gRS1TWVNURU1TLCBJTkMuCisJCQkJMTMwMSBFLiBDT0xMSU5TCisJCQkJUklDSEFSRFNPTiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRTggICAoaGV4KQkJR1JFVEFDT0RFUiBEYXRhIFN5c3RlbXMgQUcKKzAwRTBFOCAgICAgKGJhc2UgMTYpCQlHUkVUQUNPREVSIERhdGEgU3lzdGVtcyBBRworCQkJCUFMVEhBUkRTVFJBU1NFICAxNTAKKwkJCQlDSC04MTA1IFJFR0VOU0RPUkYgIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLUUwLUU5ICAgKGhleCkJCURBVEEgTEFCUywgSU5DLgorMDBFMEU5ICAgICAoYmFzZSAxNikJCURBVEEgTEFCUywgSU5DLgorCQkJCTQ0NCBOT1JUSCBGUkVERVJJQ0sgQVZFLgorCQkJCVNVSVRFICMyNDAKKwkJCQlHQUlUSEVSU0JVUkcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUVBICAgKGhleCkJCUlOTk9WQVQgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwRTBFQSAgICAgKGJhc2UgMTYpCQlJTk5PVkFUIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTI1NyBOLiBQTEFOTyBST0FECisJCQkJUklDSEFSRFNPTiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRUIgICAoaGV4KQkJRElHSUNPTSBTWVNURU1TLCBJTkNPUlBPUkFURUQKKzAwRTBFQiAgICAgKGJhc2UgMTYpCQlESUdJQ09NIFNZU1RFTVMsIElOQ09SUE9SQVRFRAorCQkJCTE4OCBUT1BBWiBTVFJFRVQKKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRUMgICAoaGV4KQkJQ0VMRVNUSUNBIElOQy4KKzAwRTBFQyAgICAgKGJhc2UgMTYpCQlDRUxFU1RJQ0EgSU5DLgorCQkJCTg0NCBET04gTUlMTFMgUk9BRAorCQkJCU5PUlRIIFlPUksgIE9OVEFSSU8gTTNDIDFWNyAgCisJCQkJQ0FOQURBCisKKzAwLUUwLUVEICAgKGhleCkJCVNJTElDT00sIExURC4KKzAwRTBFRCAgICAgKGJhc2UgMTYpCQlTSUxJQ09NLCBMVEQuCisJCQkJOCBIQU5BR0VSIFNULgorCQkJCVAuTy4gQk9YIDIxNjQKKwkJCQlLRkFSLVNBVkEgNDQwMDAgIAorCQkJCUlTUkFFTAorCiswMC1FMC1FRSAgIChoZXgpCQlNQVJFTCBIRgorMDBFMEVFICAgICAoYmFzZSAxNikJCU1BUkVMIEhGCisJCQkJQXVzdHVyaHJhdW4gOQorCQkJCUdhcmRhYmFlciAgMjEwCisJCQkJSUNFTEFORAorCiswMC1FMC1FRiAgIChoZXgpCQlESU9ORVgKKzAwRTBFRiAgICAgKGJhc2UgMTYpCQlESU9ORVgKKwkJCQlQTyBCT1ggMzYwMworCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OC0zNjAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1GMCAgIChoZXgpCQlBQkxFUiBURUNITk9MT0dZLCBJTkMuCiswMEUwRjAgICAgIChiYXNlIDE2KQkJQUJMRVIgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTRGLCBOTy4gNTQgIFNFQy4gNAorCQkJCU1JTi1TSEVORyBFLiBSRC4KKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtRjEgICAoaGV4KQkJVEhBVCBDT1JQT1JBVElPTgorMDBFMEYxICAgICAoYmFzZSAxNikJCVRIQVQgQ09SUE9SQVRJT04KKwkJCQk3MzQgRk9SRVNUIFNUUkVFVAorCQkJCU1BUkxCT1JPVUdIIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1GMiAgIChoZXgpCQlBUkxPVFRPIENPTU5FVCwgSU5DLgorMDBFMEYyICAgICAoYmFzZSAxNikJCUFSTE9UVE8gQ09NTkVULCBJTkMuCisJCQkJN0YtNCw1NSxUVU5HLUtVQU5HIFJPQUQKKwkJCQlIU0lOLUNIVSwgMzAwICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUUwLUYzICAgKGhleCkJCVdlYlNwcmludCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDBFMEYzICAgICAoYmFzZSAxNikJCVdlYlNwcmludCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTMwMjYgU0NPVFQgQkxWRC4KKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRjQgICAoaGV4KQkJSU5TSURFIFRlY2hub2xvZ3kgQS9TCiswMEUwRjQgICAgIChiYXNlIDE2KQkJSU5TSURFIFRlY2hub2xvZ3kgQS9TCisJCQkJVkVOTElHSEVEU1ZFSiA2CisJCQkJREstMjk3MCBIT0VSU0hPTE0gIAorCQkJCURFTk1BUksKKworMDAtRTAtRjUgICAoaGV4KQkJVEVMRVMgQUcKKzAwRTBGNSAgICAgKGJhc2UgMTYpCQlURUxFUyBBRworCQkJCURPVkVTVFIuIDItNAorCQkJCTEwNTg3IEJFUkxJTiAgCisJCQkJR0VSTUFOWQorCiswMC1FMC1GNiAgIChoZXgpCQlERUNJU0lPTiBFVVJPUEUKKzAwRTBGNiAgICAgKGJhc2UgMTYpCQlERUNJU0lPTiBFVVJPUEUKKwkJCQkzLCBydWUgZGUgTGF0dHJlIGRlIFRhc3NpZ255CisJCQkJODUxNzAgU0FJTlQgREVOSVMgTEEgQ0hFVkFTU0UgIAorCQkJCUZSQU5DRQorCiswMC1FMC1GNyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEUwRjcgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1GOCAgIChoZXgpCQlESUNOQSBDT05UUk9MIEFCCiswMEUwRjggICAgIChiYXNlIDE2KQkJRElDTkEgQ09OVFJPTCBBQgorCQkJCVNURU5ZWEVHQVRBTiAyMSBDCisJCQkJMjEzIDc2IE1BTE1PRSAgCisJCQkJU1dFREVOCisKKzAwLUUwLUY5ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRTBGOSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUZBICAgKGhleCkJCVRSTCBURUNITk9MT0dZLCBMVEQuCiswMEUwRkEgICAgIChiYXNlIDE2KQkJVFJMIFRFQ0hOT0xPR1ksIExURC4KKwkJCQlTSEFOTk9OIFdBWSwgQVNIQ0hVUkNILAorCQkJCVRFV0tFU0JVUlksIEdMT1MuIEdMMjAgOE5EICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1FMC1GQiAgIChoZXgpCQlMRUlHSFRST05JWCwgSU5DLgorMDBFMEZCICAgICAoYmFzZSAxNikJCUxFSUdIVFJPTklYLCBJTkMuCisJCQkJMjMzMCBKQVJDTyBEUi4KKwkJCQlIT0xUIE1JIDQ4ODQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1GQyAgIChoZXgpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorMDBFMEZDICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLCBMVEQuCisJCQkJS0VGQSBST0FELCBTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCU5BTlNIQU4gRElTVFJJQ1QsCisJCQkJU0hFTlpIRU4gNTE4MDU3ICAKKwkJCQlDSElOQQorCiswMC1FMC1GRCAgIChoZXgpCQlBLVRSRU5EIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMEUwRkQgICAgIChiYXNlIDE2KQkJQS1UUkVORCBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCTEwRiwgTk8uIDc1LCBIU0lOIFRBSSBXVSBSRC4sCisJCQkJU0VDLiAxLCBIU0kgQ0hJSCwKKwkJCQlUQUlQRUkgSFNJRU4gMjIxICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUUwLUZFICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRTBGRSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUZGICAgKGhleCkJCVNFQ1VSSVRZIERZTkFNSUNTIFRFQ0hOT0xPR0lFUywgSW5jLgorMDBFMEZGICAgICAoYmFzZSAxNikJCVNFQ1VSSVRZIERZTkFNSUNTIFRFQ0hOT0xPR0lFUywgSW5jLgorCQkJCTIwIENST1NCWSBEUklWRQorCQkJCUJFREZPUkQgTUEgMDE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUU2LUQzICAgKGhleCkJCU5JWERPUkYgQ09NUFVURVIgQ09SUC4KKzAwRTZEMyAgICAgKGJhc2UgMTYpCQlOSVhET1JGIENPTVBVVEVSIENPUlAuCisJCQkJMjUyMCBNSVNTSU9OIENPTExFR0UgUk9BRAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1GOC02MCAgIChoZXgpCQlQVC4gUGFuZ2d1bmcgRWxlY3RyaWMgQ2l0cmFidWFuYQorMDBGODYwICAgICAoYmFzZSAxNikJCVBULiBQYW5nZ3VuZyBFbGVjdHJpYyBDaXRyYWJ1YW5hCisJCQkJSmwuIFJheWEgV2FydSBuby4gMQorCQkJCVNpZG9hcmpvIEphd2EgVGltdXIgNjEyNTYKKwkJCQlJTkRPTkVTSUEKKworMDAtRkMtNzAgICAoaGV4KQkJSW50cmVwaWQgQ29udHJvbCBTeXN0ZW1zLCBJbmMuCiswMEZDNzAgICAgIChiYXNlIDE2KQkJSW50cmVwaWQgQ29udHJvbCBTeXN0ZW1zLCBJbmMuCisJCQkJNTcwMCAxOCBNaWxlIFJkLgorCQkJCVN0ZXJsaW5nIEhlaWdodHMgTUkgNDgzMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAyLTA3LTAxICAgKGhleCkJCVJBQ0FMLURBVEFDT00KKzAyMDcwMSAgICAgKGJhc2UgMTYpCQlSQUNBTC1EQVRBQ09NCisJCQkJTEFOIElOVEVSTkVUV09SS0lORyBESVZJU0lPTgorCQkJCTE1NSBTV0FOU09OIFJPQUQKKwkJCQlCT1hCT1JPVUdIIE1BIDAxNzE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMi0xQy03QyAgIChoZXgpCQlQRVJRIFNZU1RFTVMgQ09SUE9SQVRJT04KKzAyMUM3QyAgICAgKGJhc2UgMTYpCQlQRVJRIFNZU1RFTVMgQ09SUE9SQVRJT04KKwkJCQkyNjAwIExJQkVSVFkgQVZFTlVFCisJCQkJUC5PLiBCT1ggMjYwMAorCQkJCVBJVFRTQlVSR0ggUEEgMTUyMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAyLTYwLTg2ICAgKGhleCkJCUxPR0lDIFJFUExBQ0VNRU5UIFRFQ0guIExURC4KKzAyNjA4NiAgICAgKGJhc2UgMTYpCQlMT0dJQyBSRVBMQUNFTUVOVCBURUNILiBMVEQuCisJCQkJMTQgQVJLV1JJR0hUIFJPQUQKKwkJCQlSRUFESU5HIEJFUktTIFJHMk9MUworCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDItNjAtOEMgICAoaGV4KQkJM0NPTSBDT1JQT1JBVElPTgorMDI2MDhDICAgICAoYmFzZSAxNikJCTNDT00gQ09SUE9SQVRJT04KKwkJCQkyMDgxIE4uIFNIT1JMSU5FIEJMVkQuCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDItNzAtMDEgICAoaGV4KQkJUkFDQUwtREFUQUNPTQorMDI3MDAxICAgICAoYmFzZSAxNikJCVJBQ0FMLURBVEFDT00KKwkJCQlMQU4gSU5URVJORVRXT1JLSU5HIERJVklTSU9OCisJCQkJMTU1IFNXQU5TT04gUk9BRAorCQkJCUJPWEJPUk9VR0ggTUEgMDE3MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAyLTcwLUIwICAgKGhleCkJCU0vQS1DT00gSU5DLiBDT01QQU5JRVMKKzAyNzBCMCAgICAgKGJhc2UgMTYpCQlNL0EtQ09NIElOQy4gQ09NUEFOSUVTCisJCQkJMTE3MTcgRVhQTE9SQVRJT04gTEFORQorCQkJCUdFUk1BTlRPV04gTUQgMjA3NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAyLTcwLUIzICAgKGhleCkJCURBVEEgUkVDQUxMIExURAorMDI3MEIzICAgICAoYmFzZSAxNikJCURBVEEgUkVDQUxMIExURAorCQkJCVNPTkRFUyBQTEFDRQorCQkJCURPUktJTkcgU1VSUkVZIFJINCAzRUYKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAyLTlELThFICAgKGhleCkJCUNBUkRJQUMgUkVDT1JERVJTIElOQy4KKzAyOUQ4RSAgICAgKGJhc2UgMTYpCQlDQVJESUFDIFJFQ09SREVSUyBJTkMuCisJCQkJMzQgU0NBUkJPUk8gUkQKKwkJCQlMT05ET04gTjQgNEwgVQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDItQUEtM0MgICAoaGV4KQkJT0xJVkVUVEkgVEVMRUNPTU0gU1BBIChPTFRFQ08pCiswMkFBM0MgICAgIChiYXNlIDE2KQkJT0xJVkVUVEkgVEVMRUNPTU0gU1BBIChPTFRFQ08pCisJCQkJMjAzMDAgU1RFVkVOUyAgQ1JFRUsgQkxWRC4KKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAyLUJCLTAxICAgKGhleCkJCU9DVE9USE9SUEUgQ09SUC4KKzAyQkIwMSAgICAgKGJhc2UgMTYpCQlPQ1RPVEhPUlBFIENPUlAuCisJCQkJMjg1IFdFU1QgR1JFRU4gU1RSRUVUCisJCQkJUEFTQURFTkEgQ0EgOTExMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAyLUMwLThDICAgKGhleCkJCTNDT00gQ09SUE9SQVRJT04KKzAyQzA4QyAgICAgKGJhc2UgMTYpCQkzQ09NIENPUlBPUkFUSU9OCisJCQkJNTQwMCBCQVlGUk9OVCBQTEFaQQorCQkJCVAuTy4gQk9YIDU4MTQ1CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAyLUNGLTFDICAgKGhleCkJCUNPTU1VTklDQVRJT04gTUFDSElORVJZIENPUlAuCiswMkNGMUMgICAgIChiYXNlIDE2KQkJQ09NTVVOSUNBVElPTiBNQUNISU5FUlkgQ09SUC4KKwkJCQkxMjI2IEFOQUNBUEEKKwkJCQlTQU5UQSBCQVJCQVJBIENBIDkzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMi1FNi1EMyAgIChoZXgpCQlOSVhET1JGIENPTVBVVEVSIENPUlBPUkFUSU9OCiswMkU2RDMgICAgIChiYXNlIDE2KQkJTklYRE9SRiBDT01QVVRFUiBDT1JQT1JBVElPTgorCQkJCU5JWERPUkYgVEVDSE5PTE9HWSBDRU5URVIKKwkJCQkyNTIwIE1JU1NJT04gQ09MTEVHRSBCTFZECisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA0LTBBLTgzICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50CiswNDBBODMgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQKKwkJCQlWaWEgVHJlbnRvLCAzMAorCQkJCVZpbWVucmNhdGUgTUIgMjA1OQorCQkJCUlUQUxZCisKKzA0LTBBLUUwICAgKGhleCkJCVhNSVQgQUcgQ09NUFVURVIgTkVUV09SS1MKKzA0MEFFMCAgICAgKGJhc2UgMTYpCQlYTUlUIEFHIENPTVBVVEVSIE5FVFdPUktTCisJCQkJMTEgQVZFTlVFIERFIEJBVU1FVFRFUworCQkJCTEwMjAgUkVOQU5TCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswNC0wQy1DRSAgIChoZXgpCQlBcHBsZSwgSW5jLgorMDQwQ0NFICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBpbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswNC0wRS1DMiAgIChoZXgpCQlWaWV3U29uaWMgTW9iaWxlIENoaW5hIExpbWl0ZWQKKzA0MEVDMiAgICAgKGJhc2UgMTYpCQlWaWV3U29uaWMgTW9iaWxlIENoaW5hIExpbWl0ZWQKKwkJCQlSb29tIDYwMSwgVGhlIEdhdGUgVG93ZXIgQiwgTm8uMTksIFpob25nZ3VhbmN1biBTdHJlZXQsIEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODAKKwkJCQlDSElOQQorCiswNC0xOC0wRiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzA0MTgwRiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDQtMTgtQjYgICAoaGV4KQkJUFJJVkFURQorMDQxOEI2ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswNC0xRC0xMCAgIChoZXgpCQlEcmVhbSBXYXJlIEluYy4KKzA0MUQxMCAgICAgKGJhc2UgMTYpCQlEcmVhbSBXYXJlIEluYy4KKwkJCQk1LTIzLTcgTWFzdWdhdGEsIFRhbWEta3UsCisJCQkJS2F3YXNha2kgS2FuYWdhd2EgMjE0LTAwMzIKKwkJCQlKQVBBTgorCiswNC0xRS02NCAgIChoZXgpCQlBcHBsZSwgSW5jCiswNDFFNjQgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtMjAtOUEgICAoaGV4KQkJUGFuYXNvbmljIEFWQyBOZXR3b3JrcyBDb21wYW55CiswNDIwOUEgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIEFWQyBOZXR3b3JrcyBDb21wYW55CisJCQkJMS0xNSBNYXRzdW8tY2hvCisJCQkJS2Fkb21hIENpdHkgT3Nha2EgNTcxLTg1MDQKKwkJCQlKQVBBTgorCiswNC0yMi0zNCAgIChoZXgpCQlXaXJlbGVzcyBTdGFuZGFyZCBFeHRlbnNpb25zCiswNDIyMzQgICAgIChiYXNlIDE2KQkJV2lyZWxlc3MgU3RhbmRhcmQgRXh0ZW5zaW9ucworCQkJCTEzMjIgQ3Jvc3NtYW4gYXZlbnVlCisJCQkJU3Vubnl2YWxlIENhbGlmb3JuaWEgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzA0LTI2LTA1ICAgKGhleCkJCUdGUiBHZXNlbGxzY2hhZnQgZmk/b2VyIFJlZ2VsdW5nc3RlY2huaWsgdW5kIEVuZXJnaWVlaW5zcGFydW5nIG1iSAorMDQyNjA1ICAgICAoYmFzZSAxNikJCUdGUiBHZXNlbGxzY2hhZnQgZmk/b2VyIFJlZ2VsdW5nc3RlY2huaWsgdW5kIEVuZXJnaWVlaW5zcGFydW5nIG1iSAorCQkJCUthcGVsbGVud2VnIDQyCisJCQkJVmVybCAgMzM0MTUKKwkJCQlHRVJNQU5ZCisKKzA0LTJCLUJCICAgKGhleCkJCVBpY29DRUxBLCBJbmMuCiswNDJCQkIgICAgIChiYXNlIDE2KQkJUGljb0NFTEEsIEluYy4KKwkJCQkzLTgtMzMsIE1vbW9jaGloYW1hCisJCQkJU2F3YXJhLWt1CisJCQkJRnVrdW9rYS1jaXR5IEZ1a3Vva2EgODE0LTAwMDEKKwkJCQlKQVBBTgorCiswNC0yRi01NiAgIChoZXgpCQlBVE9DUyAoU2hlbnpoZW4pIExURAorMDQyRjU2ICAgICAoYmFzZSAxNikJCUFUT0NTIChTaGVuemhlbikgTFRECisJCQkJNC9GLiwgQnVpbGRpbmcgMTAsIFRvbmdmdXl1IEluZHVzdHJ5IFpvbmUsIAorCQkJCVNoZW56aGVuICAKKwkJCQlDSElOQQorCiswNC0zMi1GNCAgIChoZXgpCQlQYXJ0cm9uCiswNDMyRjQgICAgIChiYXNlIDE2KQkJUGFydHJvbgorCQkJCTIyLTYsIFNlb2t3b28tZG9uZworCQkJCUh3YXNlb25nLXNpIEd5ZW9uZ2dpLWRvIDQ0NS0xNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDQtMzYtMDQgICAoaGV4KQkJR3lleW91bmcgSSZUCiswNDM2MDQgICAgIChiYXNlIDE2KQkJR3lleW91bmcgSSZUCisJCQkJNkYsIFdvb3N1bmcgQmxkZy4gMTAwMC0xLCBEYWVjaGktZG9uZworCQkJCUdhbmduYW0tZ3UsCisJCQkJU2VvdWwgMTM1LTUwMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswNC00Ni02NSAgIChoZXgpCQlNdXJhdGEgTWFudWZhY3R1cmluZyBDby4sIEx0ZC4KKzA0NDY2NSAgICAgKGJhc2UgMTYpCQlNdXJhdGEgTWFudWZhY3R1cmluZyBDby4sIEx0ZC4KKwkJCQkxLTEwLTEsIEhpZ2FzaGlrb3RhcmkKKwkJCQlOYWdhb2tha3lvLXNoaSBLeW90byA2MTctODU1NQorCQkJCUpBUEFOCisKKzA0LTRGLUFBICAgKGhleCkJCVJ1Y2t1cyBXaXJlbGVzcworMDQ0RkFBICAgICAoYmFzZSAxNikJCVJ1Y2t1cyBXaXJlbGVzcworCQkJCTg4MCBXZXN0IE1hdWRlIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzA0LTU1LUNBICAgKGhleCkJCUJyaVZpZXcgKFhpYW1lbikgQ29ycC4KKzA0NTVDQSAgICAgKGJhc2UgMTYpCQlCcmlWaWV3IChYaWFtZW4pIENvcnAuCisJCQkJTk8uMTk5OCBXZXN0IG9mIEZhbmdzaGFuIFJvYWQsWGlhbmcgQW4gQnJhbmNoLFRvcmNoIEhpLXRlY2ggbG5kdXN0cmlhbCBEZXZlbG9wbWVudCBab25lLAorCQkJCVhpYW1lbiBjaXR5IEZ1amlhbiBQcm92aW5jZSAzNjExMDIKKwkJCQlDSElOQQorCiswNC01RC01NiAgIChoZXgpCQljYW10cm9uIGluZHVzdHJpYWwgaW5jLgorMDQ1RDU2ICAgICAoYmFzZSAxNikJCWNhbXRyb24gaW5kdXN0cmlhbCBpbmMuCisJCQkJNUYsIEt1ZW0tQWggQi9ELCAzMS0zLCBLYXJhay1kb25nLCBTb25ncGEtZ3UKKwkJCQlTZW91bCAgMTM4LTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswNC03MC1CQyAgIChoZXgpCQlHbG9iYWxzdGFyIEluYy4KKzA0NzBCQyAgICAgKGJhc2UgMTYpCQlHbG9iYWxzdGFyIEluYy4KKwkJCQk0NjEgUyBNaWxwaXRhcyBCbHZkCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzA0LTc0LUExICAgKGhleCkJCUFsaWdlcmEgRXF1aXBhbWVudG9zIERpZ2l0YWlzIEx0ZGEKKzA0NzRBMSAgICAgKGJhc2UgMTYpCQlBbGlnZXJhIEVxdWlwYW1lbnRvcyBEaWdpdGFpcyBMdGRhCisJCQkJQXYuIFBhcmEgMzMwIC8gMzAyCisJCQkJUG9ydG8gQWxlZ3JlIFJTIDkwMjQwLTU5MAorCQkJCUJSQVpJTAorCiswNC03NS1GNSAgIChoZXgpCQlDU1NUCiswNDc1RjUgICAgIChiYXNlIDE2KQkJQ1NTVAorCQkJCUJ1aWxkaW5nIDYsIENTU1QgaW5kdXN0cmlhbCBwYXJrLCBUb25nIGZ1eXUgSW5kdXN0cmlhbCB6b25lCisJCQkJR3VhbmdtaW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTA3CisJCQkJQ0hJTkEKKworMDQtNzYtNkUgICAoaGV4KQkJQUxQUyBDbywuIEx0ZC4KKzA0NzY2RSAgICAgKGJhc2UgMTYpCQlBTFBTIENvLC4gTHRkLgorCQkJCTYtMy0zNiBGdXJ1a2F3YW5ha2F6YXRvLAorCQkJCU9zYWtpIE1peWFnaS1wcmVmIDk4OS02MTgxCisJCQkJSkFQQU4KKworMDQtOEEtMTUgICAoaGV4KQkJQXZheWEsIEluYworMDQ4QTE1ICAgICAoYmFzZSAxNikJCUF2YXlhLCBJbmMKKwkJCQkyMTEgTW91bnQgQWlyeSBSb2FkIAorCQkJCUJhc2tpbmcgUmlkZ2UgTkogMDc5MjAtMjMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtOTQtQTEgICAoaGV4KQkJQ0FUQ0ggVEhFIFdJTkQgSU5DCiswNDk0QTEgICAgIChiYXNlIDE2KQkJQ0FUQ0ggVEhFIFdJTkQgSU5DCisJCQkJMTA3ODEgSkFNRVMgUEFZTkUgQ09VUlQKKwkJCQlNQU5BU1NBUyBWQSAyMDExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtOUYtODEgICAoaGV4KQkJU2ltZW5hLCBMTEMKKzA0OUY4MSAgICAgKGJhc2UgMTYpCQlTaW1lbmEsIExMQworCQkJCTQ2MDMwIE1hbmVraW4gUGxhemEKKwkJCQlzdWl0ZSAxNTAKKwkJCQlTdGVybGluZyBWaXJnaW5pYSAyMDE2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtQTMtRjMgICAoaGV4KQkJRW1pY29uCiswNEEzRjMgICAgIChiYXNlIDE2KQkJRW1pY29uCisJCQkJc2hlbGtvdnNrb2Ugc2hvc3NlLCA3NworCQkJCU1vc2NvdyAgMTA3MjQxCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzA0LUIzLUI2ICAgKGhleCkJCVNlYW1hcCAoVUspIEx0ZAorMDRCM0I2ICAgICAoYmFzZSAxNikJCVNlYW1hcCAoVUspIEx0ZAorCQkJCVVuaXQgMzQsIFRoZSBNYWx0aW5ncworCQkJCUNoYXJsdG9uIEVzdGF0ZQorCQkJCVNoZXB0b24gTWFsbGV0IFNvbWVyc2V0IEJBNCA1UUUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswNC1CNC02NiAgIChoZXgpCQlCU1AgQ28uLCBMdGQuCiswNEI0NjYgICAgIChiYXNlIDE2KQkJQlNQIENvLiwgTHRkLgorCQkJCTE2Mi0xMAorCQkJCUdvbmdkYW4gRG9uZworCQkJCUd1bWkgR3lldW5nc2FuZ2J1ayBEbyA3MzAtOTAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzA0LUMwLTVCICAgKGhleCkJCVRpZ28gRW5lcmd5CiswNEMwNUIgICAgIChiYXNlIDE2KQkJVGlnbyBFbmVyZ3kKKwkJCQkxNzAgS25vd2xlcyBEcgorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtQzAtNkYgICAoaGV4KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorMDRDMDZGICAgICAoYmFzZSAxNikJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCiswNC1DNS1BNCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswNEM1QTQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswNC1DOC04MCAgIChoZXgpCQlTYW10ZWMgSW5jCiswNEM4ODAgICAgIChiYXNlIDE2KQkJU2FtdGVjIEluYworCQkJCTUyMCBQYXJrIEVhc3QgQmx2ZAorCQkJCU5ldyBBbGJhbnkgSU4gNDcxNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA0LURELTRDICAgKGhleCkJCUlQQmxhemUKKzA0REQ0QyAgICAgKGJhc2UgMTYpCQlJUEJsYXplCisJCQkJT2xkdmVqZW4gNAorCQkJCUZyZWRlbnNib3JnIERLIDM0ODAKKwkJCQlERU5NQVJLCisKKzA0LUUwLUM0ICAgKGhleCkJCVRSSVVNUEgtQURMRVIgQUcKKzA0RTBDNCAgICAgKGJhc2UgMTYpCQlUUklVTVBILUFETEVSIEFHCisJCQkJSFVORElOR1NUUkFCRSAxMUIKKwkJCQk4NTAwIE5VUk5CVVJHIDgwCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDQtRTEtQzggICAoaGV4KQkJSU1TIFNvbHVpP29laT9vZWVzIGVtIEVuZXJnaWEgTHRkYS4KKzA0RTFDOCAgICAgKGJhc2UgMTYpCQlJTVMgU29sdWk/b2VpP29lZXMgZW0gRW5lcmdpYSBMdGRhLgorCQkJCUF2LiBCZXJuYXJkaW5vIFNpbHZlaXJhIFBhc3Rvcml6YSwgNzIwCisJCQkJUG9ydG8gQWxlZ3JlIFJTIDkxMTYwLTMxMAorCQkJCUJSQVpJTAorCiswNC1FMi1GOCAgIChoZXgpCQlBRVAgc3JsCiswNEUyRjggICAgIChiYXNlIDE2KQkJQUVQIHNybAorCQkJCVZpYSBkZWkgQ29sbGksIDI0MAorCQkJCVNpZ25hIEZpcmVuemUgNTAwNTgKKwkJCQlJVEFMWQorCiswNC1FNS00OCAgIChoZXgpCQlDb2hkYSBXaXJlbGVzcyBQdHkgTHRkCiswNEU1NDggICAgIChiYXNlIDE2KQkJQ29oZGEgV2lyZWxlc3MgUHR5IEx0ZAorCQkJCVN1aXRlIDUgLyA4MyBGdWxsYXJ0b24gUm9hZAorCQkJCUtlbnQgVG93biBTb3V0aCBBdXN0cmFsaWEgNTA2NworCQkJCUFVU1RSQUxJQQorCiswNC1FNi02MiAgIChoZXgpCQlBY3JvbmFtZSBJbmMuCiswNEU2NjIgICAgIChiYXNlIDE2KQkJQWNyb25hbWUgSW5jLgorCQkJCTQ4MjIgU3RlcmxpbmcgRHJpdmUKKwkJCQlCb3VsZGVyIENPIDgwMzAxLTIzNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA0LUZFLTdGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzA0RkU3RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA0LUZGLTUxICAgKGhleCkJCU5PVkFNRURJQSBJTk5PVklTSU9OIFNQLiBaIE8uTy4KKzA0RkY1MSAgICAgKGJhc2UgMTYpCQlOT1ZBTUVESUEgSU5OT1ZJU0lPTiBTUC4gWiBPLk8uCisJCQkJV09ETkEgNyAKKwkJCQlLQUxJU1ogV0lFTEtPUE9MU0tBIDYyLTgwMAorCQkJCVBPTEFORAorCiswOC0wMC0wMSAgIChoZXgpCQlDT01QVVRFUlZJU0lPTiBDT1JQT1JBVElPTgorMDgwMDAxICAgICAoYmFzZSAxNikJCUNPTVBVVEVSVklTSU9OIENPUlBPUkFUSU9OCisJCQkJMTQgQ1JPU0JZIERSSVZFIE1TIDUtMQorCQkJCUJFREZPUkQgTUEgMDE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTAyICAgKGhleCkJCUJSSURHRSBDT01NVU5JQ0FUSU9OUyBJTkMuCiswODAwMDIgICAgIChiYXNlIDE2KQkJQlJJREdFIENPTU1VTklDQVRJT05TIElOQy4KKwkJCQkyMDgxIFNUSUVSTElORyBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMDMgICAoaGV4KQkJQURWQU5DRUQgQ09NUFVURVIgQ09NTS4KKzA4MDAwMyAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBDT01QVVRFUiBDT01NLgorCQkJCTcyMCBTQU5UQSBCQVJCQVJBIFNULgorCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTA0ICAgKGhleCkJCUNST01FTUNPIElOQ09SUE9SQVRFRAorMDgwMDA0ICAgICAoYmFzZSAxNikJCUNST01FTUNPIElOQ09SUE9SQVRFRAorCQkJCTI4MCBCRVJOQVJETyBBVkVOVUUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wNSAgIChoZXgpCQlTWU1CT0xJQ1MgSU5DLgorMDgwMDA1ICAgICAoYmFzZSAxNikJCVNZTUJPTElDUyBJTkMuCisJCQkJMjU3IFZBU1NBUiBTVFJFRVQKKwkJCQlDQU1CUklER0UgTUEgMDIxMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTA2ICAgKGhleCkJCVNJRU1FTlMgQUcKKzA4MDAwNiAgICAgKGJhc2UgMTYpCQlTSUVNRU5TIEFHCisJCQkJU2llbWVucyBJVCBTb2x1dGlvbnMgYW5kIFNlcnZpY2VzLCBTSVMgR08gUU0gTworCQkJCVNpZW1lbnNzdHJhc3NlIDItNAorCQkJCVBPQiAyMzUzIEZ1ZXJ0aCA5MDcxMworCQkJCUdFUk1BTlkKKworMDgtMDAtMDcgICAoaGV4KQkJQVBQTEUgQ09NUFVURVIgSU5DLgorMDgwMDA3ICAgICAoYmFzZSAxNikJCUFQUExFIENPTVBVVEVSIElOQy4KKwkJCQkyMDY1MCBWQUxMRVkgR1JFRU4gRFJJVkUKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTA4ICAgKGhleCkJCUJPTFQgQkVSQU5FSyBBTkQgTkVXTUFOIElOQy4KKzA4MDAwOCAgICAgKGJhc2UgMTYpCQlCT0xUIEJFUkFORUsgQU5EIE5FV01BTiBJTkMuCisJCQkJNzAgRkFXQ0VUVCBTVFJFRVQKKwkJCQlDQU1CUklER0UgTUEgMDIxMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTA5ICAgKGhleCkJCUhFV0xFVFQgUEFDS0FSRAorMDgwMDA5ICAgICAoYmFzZSAxNikJCUhFV0xFVFQgUEFDS0FSRAorCQkJCUVOVEVSUFJJU0UgU1lTVEVNUyBURUNILkNFTlRFUgorCQkJCTExMDAwIFdPTEZFIFJPQUQKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTBBICAgKGhleCkJCU5FU1RBUiBTWVNURU1TIElOQ09SUE9SQVRFRAorMDgwMDBBICAgICAoYmFzZSAxNikJCU5FU1RBUiBTWVNURU1TIElOQ09SUE9SQVRFRAorCQkJCTI1ODUgRUFTVCBCQVlTSE9SRSBST0FECisJCQkJUEFMTyBBTFRPIENBIDk0MzAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wQiAgIChoZXgpCQlVTklTWVMgQ09SUE9SQVRJT04KKzA4MDAwQiAgICAgKGJhc2UgMTYpCQlVTklTWVMgQ09SUE9SQVRJT04KKwkJCQlUT1dOU0hJUCBMSU5FIFJPQUQKKwkJCQlCTFVFIEJFTEwgUEEgMTk0MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTBDICAgKGhleCkJCU1JS0xZTiBERVZFTE9QTUVOVCBDTy4KKzA4MDAwQyAgICAgKGJhc2UgMTYpCQlNSUtMWU4gREVWRUxPUE1FTlQgQ08uCisJCQkJMzYxMyBBTkRPVkVSIERJVkUKKwkJCQlCRURGT1JEIFRYIDc2MDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wRCAgIChoZXgpCQlJTlRFUk5BVElPTkFMIENPTVBVVEVSUyBMVEQuCiswODAwMEQgICAgIChiYXNlIDE2KQkJSU5URVJOQVRJT05BTCBDT01QVVRFUlMgTFRELgorCQkJCVdFTkxPQ0sgV0FZCisJCQkJV0VTVCBHT1JUT04gTUFOQ0hFU1RFUiwgIE0xMiAgNURSCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC0wRSAgIChoZXgpCQlOQ1IgQ09SUE9SQVRJT04KKzA4MDAwRSAgICAgKGJhc2UgMTYpCQlOQ1IgQ09SUE9SQVRJT04KKwkJCQlXT1JMRCBIRUFEUVVBUlRFUlMKKwkJCQlEQVlUT04gT0ggNDU0NzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTBGICAgKGhleCkJCU1JVEVMIENPUlBPUkFUSU9OCiswODAwMEYgICAgIChiYXNlIDE2KQkJTUlURUwgQ09SUE9SQVRJT04KKwkJCQkzNTAgTEVHR0VUIERSSVZFCisJCQkJUC5PLiBCT1ggMTMwODkgS0FOQVRBIE9OVEFSSU8KKwkJCQlDQU5BREEgSzJLIDFYMworCQkJCUNBTkFEQQorCiswOC0wMC0xMSAgIChoZXgpCQlURUtUUk9OSVggSU5DLgorMDgwMDExICAgICAoYmFzZSAxNikJCVRFS1RST05JWCBJTkMuCisJCQkJVEVDSE5JQ0FMIFNUQU5EQVJEUworCQkJCTEzOTc1IFNXIEtBUkwgQlJBVU4gRFJJVkUgUE8gQk9YIDUwMCwgIE0KKwkJCQlCRUFWRVJUT04gT1IgOTcwNzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTEyICAgKGhleCkJCUJFTEwgQVRMQU5USUMgSU5URUdSQVRFRCBTWVNULgorMDgwMDEyICAgICAoYmFzZSAxNikJCUJFTEwgQVRMQU5USUMgSU5URUdSQVRFRCBTWVNULgorCQkJCTQwIFRBTEwgUElORSBEUklWRQorCQkJCVNVREJVUlkgTUEgMDE3NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTEzICAgKGhleCkJCUVYWE9OCiswODAwMTMgICAgIChiYXNlIDE2KQkJRVhYT04KKwkJCQkKKworMDgtMDAtMTQgICAoaGV4KQkJRVhDRUxBTgorMDgwMDE0ICAgICAoYmFzZSAxNikJCUVYQ0VMQU4KKwkJCQkxNTk5IEZMSUNLSU5HRVIgQVZFTlVFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTE1ICAgKGhleCkJCVNUQyBCVVNJTkVTUyBTWVNURU1TCiswODAwMTUgICAgIChiYXNlIDE2KQkJU1RDIEJVU0lORVNTIFNZU1RFTVMKKwkJCQlIT0xCUk9PSyBIT1VTRQorCQkJCUNPQ0tGT1NURVJTIFJPQUQgQ09DS0ZPU1RFUlMgSEVSVFMgRU40IE8KKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzA4LTAwLTE2ICAgKGhleCkJCUJBUlJJU1RFUiBJTkZPIFNZUyBDT1JQCiswODAwMTYgICAgIChiYXNlIDE2KQkJQkFSUklTVEVSIElORk8gU1lTIENPUlAKKwkJCQlPTkUgVEVDSE5PTE9HWSBDRU5URVIKKwkJCQk0NSBPQUsgU1RSRUVUCisJCQkJQlVGRkFMTyBOWSAxNDIwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMTcgICAoaGV4KQkJTkFUSU9OQUwgU0VNSUNPTkRVQ1RPUgorMDgwMDE3ICAgICAoYmFzZSAxNikJCU5BVElPTkFMIFNFTUlDT05EVUNUT1IKKwkJCQkyOTAwIFNFTUlDT05EVUNUT1IgRFJJVkUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMTggICAoaGV4KQkJUElSRUxMSSBGT0NPTSBORVRXT1JLUworMDgwMDE4ICAgICAoYmFzZSAxNikJCVBJUkVMTEkgRk9DT00gTkVUV09SS1MKKwkJCQlERU5UT04gRFJJVkUKKwkJCQlOT1JUSFdJQ0ggQ0hFU0hJUkUgICAgICBDVzkgN0xVCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzA4LTAwLTE5ICAgKGhleCkJCUdFTkVSQUwgRUxFQ1RSSUMgQ09SUE9SQVRJT04KKzA4MDAxOSAgICAgKGJhc2UgMTYpCQlHRU5FUkFMIEVMRUNUUklDIENPUlBPUkFUSU9OCisJCQkJMTI4NSBCT1NUT04gQVZFTlVFCisJCQkJQlJJREdFUE9SVCBDVCAwNjYwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMUEgICAoaGV4KQkJVElBUkEvIDEwTkVUCiswODAwMUEgICAgIChiYXNlIDE2KQkJVElBUkEvIDEwTkVUCisJCQkJNzc3NyBXQVNISU5HVE9OIFZJTExBR0UgRFJJVkUKKwkJCQlTVUlURSAyMDAKKwkJCQlEQVlUT04gT0hJTyA0NTQ1OS0zOTU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0xQiAgIChoZXgpCQlFTUMgQ29ycG9yYXRpb24KKzA4MDAxQiAgICAgKGJhc2UgMTYpCQlFTUMgQ29ycG9yYXRpb24KKwkJCQkxNzYgU291dGggU3RyZWV0CisJCQkJSG9wa2ludG9uIE1BIDAxNzQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0xQyAgIChoZXgpCQlLREQtS09LVVNBSSBERUJOU0lOIERFTldBIENPLgorMDgwMDFDICAgICAoYmFzZSAxNikJCUtERC1LT0tVU0FJIERFQk5TSU4gREVOV0EgQ08uCisJCQkJRlVKSSBYRVJPWCBDTy4sIExURC4gVEVMRUdSQVBICisJCQkJTk8uIDMtNSwgQUtBU0FLQSAzLUNIT01FIE1JTkFUTy1LVSwgVE9LWQorCQkJCTEwNyBKQVBBTgorCQkJCUpBUEFOCisKKzA4LTAwLTFEICAgKGhleCkJCUFCTEUgQ09NTVVOSUNBVElPTlMgSU5DLgorMDgwMDFEICAgICAoYmFzZSAxNikJCUFCTEUgQ09NTVVOSUNBVElPTlMgSU5DLgorCQkJCTE3ODkxIENBUlRXUklHSFQgUk9BRAorCQkJCUlSVklORSBDQSA5MjcxNC02MjE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0xRSAgIChoZXgpCQlBUE9MTE8gQ09NUFVURVIgSU5DLgorMDgwMDFFICAgICAoYmFzZSAxNikJCUFQT0xMTyBDT01QVVRFUiBJTkMuCisJCQkJMTUgRUxJWkFCRVRIIERSSVZFCisJCQkJQ0hFTE1TRk9SRCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMUYgICAoaGV4KQkJU0hBUlAgQ09SUE9SQVRJT04KKzA4MDAxRiAgICAgKGJhc2UgMTYpCQlTSEFSUCBDT1JQT1JBVElPTgorCQkJCUVOR0lORUVSSU5HIERFUEFSVE1FTlQgNgorCQkJCTQ5MiBNSU5PU0hPLUNITyBZQU1BVE9LT09SSVlNQS1TSEksCisJCQkJTkFSQSA2MzktMTEgSkFQQU4KKwkJCQlKQVBBTgorCiswOC0wMC0yMCAgIChoZXgpCQlPcmFjbGUgQ29ycG9yYXRpb24KKzA4MDAyMCAgICAgKGJhc2UgMTYpCQlPcmFjbGUgQ29ycG9yYXRpb24KKwkJCQkxNyBOZXR3b3JrIENpcmNsZQorCQkJCUJ1aWxkaW5nIDE3LCBVTVBLMTctMTMxCisJCQkJTWVubG8gUGFyayBDQSA5NTAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMjEgICAoaGV4KQkJM00gQ09NUEFOWQorMDgwMDIxICAgICAoYmFzZSAxNikJCTNNIENPTVBBTlkKKwkJCQlUZWxlY29tIERpdmlzaW9uCisJCQkJNjgwMSBSaXZlciBQbGFjZSBCb3VsZXZhcmQKKwkJCQlBdXN0aW4gVFggNzg3MjYtOTAwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMjIgICAoaGV4KQkJTkJJIElOQy4KKzA4MDAyMiAgICAgKGJhc2UgMTYpCQlOQkkgSU5DLgorCQkJCTM0NTAgTUlUQ0hFTEwgTEFORQorCQkJCVAuTy4gQk9YIDkwMDEKKwkJCQlCT1VMREVSIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0yMyAgIChoZXgpCQlQYW5hc29uaWMgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswODAwMjMgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorCQkJCTQtMS02MiBNaW5vc2hpbWEgSGFrYXRhIEZ1a3Vva2EKKwkJCQk4MTItODUzMQorCQkJCUpBUEFOCisKKzA4LTAwLTI0ICAgKGhleCkJCTEwTkVUIENPTU1VTklDQVRJT05TL0RDQQorMDgwMDI0ICAgICAoYmFzZSAxNikJCTEwTkVUIENPTU1VTklDQVRJT05TL0RDQQorCQkJCTc3NzcgV0FTSElOR1RPTiBWSUxMQUdFIERSLgorCQkJCVNVSVRFIDIwMAorCQkJCURBWVRPTiBPSCA0NTQ1OS0zOTU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0yNSAgIChoZXgpCQlDT05UUk9MIERBVEEKKzA4MDAyNSAgICAgKGJhc2UgMTYpCQlDT05UUk9MIERBVEEKKwkJCQk0MjAxIExFWElOR1RPTiBBVkUgTk9SVEgKKwkJCQlBUkRFTiBISUxMUyBNTiA1NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMjYgICAoaGV4KQkJTk9SU0sgREFUQSBBLlMuCiswODAwMjYgICAgIChiYXNlIDE2KQkJTk9SU0sgREFUQSBBLlMuCisJCQkJUC5PLiBCT1ggMjUgQk9HRVJVRAorCQkJCU9TTE8gNgorCQkJCU5PUldBWQorCQkJCU5PUldBWQorCiswOC0wMC0yNyAgIChoZXgpCQlDQURNVVMgQ09NUFVURVIgU1lTVEVNUworMDgwMDI3ICAgICAoYmFzZSAxNikJCUNBRE1VUyBDT01QVVRFUiBTWVNURU1TCisJCQkJNjAwIFNVRkZPTEsgU1QKKwkJCQlMT1dFTEwgTUEgMDgxNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTI4ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswODAwMjggICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlNL1MgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMjkgICAoaGV4KQkJTUVHQVRFSyBDT1JQT1JBVElPTgorMDgwMDI5ICAgICAoYmFzZSAxNikJCU1FR0FURUsgQ09SUE9SQVRJT04KKwkJCQk5NjQ1IFNDUkFOVE9OIFJPQUQKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTJBICAgKGhleCkJCU1PU0FJQyBURUNITk9MT0dJRVMgSU5DLgorMDgwMDJBICAgICAoYmFzZSAxNikJCU1PU0FJQyBURUNITk9MT0dJRVMgSU5DLgorCQkJCTQ3IE1BTk5JTkcgUk9BRAorCQkJCUJJTExFUklDQSBNQSAwMTgyMS0zOTcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0yQiAgIChoZXgpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorMDgwMDJCICAgICAoYmFzZSAxNikJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCisJCQkJTEtHIDEtMi9BMTkKKwkJCQk1NTAgS0lORyBTVFJFRVQKKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAtMTI4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMkMgICAoaGV4KQkJQlJJVFRPTiBMRUUgSU5DLgorMDgwMDJDICAgICAoYmFzZSAxNikJCUJSSVRUT04gTEVFIElOQy4KKwkJCQkxNDYwMCBXSU5DSEVTVEVSIEJMVkQKKwkJCQlMT1MgR0FUT1MgQ0EgOTUwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTJEICAgKGhleCkJCUxBTi1URUMgSU5DLgorMDgwMDJEICAgICAoYmFzZSAxNikJCUxBTi1URUMgSU5DLgorCQkJCTIxMzEgVU5JVkVSU0lUWSBBVkVOVUUKKwkJCQlCRVJLRUxFWSBDQSA5NDcwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMkUgICAoaGV4KQkJTUVUQVBIT1IgQ09NUFVURVIgU1lTVEVNUworMDgwMDJFICAgICAoYmFzZSAxNikJCU1FVEFQSE9SIENPTVBVVEVSIFNZU1RFTVMKKwkJCQkyNTAwIEdBUkNJQSBBVkVOVUUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0yRiAgIChoZXgpCQlQUklNRSBDT01QVVRFUiBJTkMuCiswODAwMkYgICAgIChiYXNlIDE2KQkJUFJJTUUgQ09NUFVURVIgSU5DLgorCQkJCTEwMCBDUk9TQlkgRFJJVkUKKwkJCQlCRURGT1JEIE1BIDAxNzMwLTE0MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTMwICAgKGhleCkJCU5FVFdPUksgUkVTRUFSQ0ggQ09SUE9SQVRJT04KKzA4MDAzMCAgICAgKGJhc2UgMTYpCQlORVRXT1JLIFJFU0VBUkNIIENPUlBPUkFUSU9OCisJCQkJMjM4MCBOLiBST1NFIEFWRU5VRQorCQkJCU9YTkFSRCBDQSA5MzAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMzAgICAoaGV4KQkJQ0VSTgorMDgwMDMwICAgICAoYmFzZSAxNikJCUNFUk4KKwkJCQlDSC0xMjExIEdFTkVWRSAyMworCQkJCVNVSVNTRS9TV0lUWgorCQkJCVNXSVRaRVJMQU5ECisKKzA4LTAwLTMwICAgKGhleCkJCVJPWUFMIE1FTEJPVVJORSBJTlNUIE9GIFRFQ0gKKzA4MDAzMCAgICAgKGJhc2UgMTYpCQlST1lBTCBNRUxCT1VSTkUgSU5TVCBPRiBURUNICisJCQkJR1BPIEJPWCAyNDc2VgorCQkJCU1FTEJPVVJORSBWSUMgMzAwMQorCQkJCUFVU1RSQUxJQQorCiswOC0wMC0zMSAgIChoZXgpCQlMSVRUTEUgTUFDSElORVMgSU5DLgorMDgwMDMxICAgICAoYmFzZSAxNikJCUxJVFRMRSBNQUNISU5FUyBJTkMuCisJCQkJNDE0MSBKVVRMQU5EIERSSVZFCisJCQkJU0FOIERJRUdPIENBIDkyMTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0zMiAgIChoZXgpCQlUSUdBTiBJTkNPUlBPUkFURUQKKzA4MDAzMiAgICAgKGJhc2UgMTYpCQlUSUdBTiBJTkNPUlBPUkFURUQKKwkJCQk0MDIwIEZBQklBTiBXQVkKKwkJCQlTVUlURSBECisJCQkJUEFMTyBBTFRPIENBIDk0MzAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0zMyAgIChoZXgpCQlCQVVTQ0ggJiBMT01CCiswODAwMzMgICAgIChiYXNlIDE2KQkJQkFVU0NIICYgTE9NQgorCQkJCUlOVEVSQUNUSVZFIEdSQVBISUNTIERJVklTSU9OCisJCQkJUC5PLiBCT1ggMTQ1NDcKKwkJCQlBVVNJVE4gVFggNzg2NzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTM0ICAgKGhleCkJCUZJTEVORVQgQ09SUE9SQVRJT04KKzA4MDAzNCAgICAgKGJhc2UgMTYpCQlGSUxFTkVUIENPUlBPUkFUSU9OCisJCQkJMTU3NSBDT1JQT1JBVEUgRFJJVkUKKwkJCQlDT1NUQSBNRVNBIENBIDkyNjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0zNSAgIChoZXgpCQlNSUNST0ZJVkUgQ09SUE9SQVRJT04KKzA4MDAzNSAgICAgKGJhc2UgMTYpCQlNSUNST0ZJVkUgQ09SUE9SQVRJT04KKwkJCQkzNTYwIEhZTEFORCBBVkVOVUUKKwkJCQlQLk8uIEJPWCA1MDExCisJCQkJQ09TVEEgTUVTQSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMzYgICAoaGV4KQkJSU5URVJHUkFQSCBDT1JQT1JBVElPTgorMDgwMDM2ICAgICAoYmFzZSAxNikJCUlOVEVSR1JBUEggQ09SUE9SQVRJT04KKwkJCQlPTkUgTUFESVNPTiBJTkRVU1RSSUFMIFBBUksKKwkJCQlIVU5UU1ZJTExFIEFMIDM1ODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0zNyAgIChoZXgpCQlGVUpJLVhFUk9YIENPLiBMVEQuCiswODAwMzcgICAgIChiYXNlIDE2KQkJRlVKSS1YRVJPWCBDTy4gTFRELgorCQkJCUFEVkFOQ0VEIFRFQ0ggJiBFTkcnRyBDRU5URVIKKwkJCQk5LTUwIENIVU8gMi1DSE9NRSwgRUJJTkEtU0hJIEtBTkFHQVdBIDI0CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswOC0wMC0zOCAgIChoZXgpCQlCVUxMIFMuQS5TLgorMDgwMDM4ICAgICAoYmFzZSAxNikJCUJVTEwgUy5BLlMuCisJCQkJcnVlIEplYW4gSmF1cmVzIEIuUC42OAorCQkJCUxlcyBDbGF5ZXMgc291cyBCb2lzICA3ODQzMAorCQkJCUZSQU5DRQorCiswOC0wMC0zOSAgIChoZXgpCQlTUElERVIgU1lTVEVNUyBMSU1JVEVECiswODAwMzkgICAgIChiYXNlIDE2KQkJU1BJREVSIFNZU1RFTVMgTElNSVRFRAorCQkJCVNQSURFUiBQQVJLCisJCQkJU1RBTldFTEwgU1RSRUVUIEVESU5CVVJHSCBFSDYgNU5HCisJCQkJU0NPVExBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC0zQSAgIChoZXgpCQlPUkNBVEVDSCBJTkMuCiswODAwM0EgICAgIChiYXNlIDE2KQkJT1JDQVRFQ0ggSU5DLgorCQkJCTI2ODAgUVVFRU5TVklFVyBEUklWRQorCQkJCU9UVEFXQSBPTlRBUklPCisJCQkJQ0FOQURBIEsyQiA4SDYKKwkJCQlDQU5BREEKKworMDgtMDAtM0IgICAoaGV4KQkJVE9SVVMgU1lTVEVNUyBMSU1JVEVECiswODAwM0IgICAgIChiYXNlIDE2KQkJVE9SVVMgU1lTVEVNUyBMSU1JVEVECisJCQkJU0NJRU5DRSBQQVJLCisJCQkJTUlMVE9OIFJPQUQgQ0FNQlJJREdFIENCNCA0QkgKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzA4LTAwLTNDICAgKGhleCkJCVNDSExVTUJFUkdFUiBXRUxMIFNFUlZJQ0VTCiswODAwM0MgICAgIChiYXNlIDE2KQkJU0NITFVNQkVSR0VSIFdFTEwgU0VSVklDRVMKKwkJCQlBVVNUSU4gRU5HSU5FRVJJTkcgU0VSVklDRVMKKwkJCQlQLk8uIEJPWCAyMDAwMTUKKwkJCQlBVVNUSU4gVFggNzg3MjAtMDAxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtM0QgICAoaGV4KQkJQ0FETkVUSVggQ09SUE9SQVRJT05TCiswODAwM0QgICAgIChiYXNlIDE2KQkJQ0FETkVUSVggQ09SUE9SQVRJT05TCisJCQkJNTc5NyBDRU5UUkFMIEFWRU5VRQorCQkJCUJPVUxERVIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTNFICAgKGhleCkJCUNPREVYIENPUlBPUkFUSU9OCiswODAwM0UgICAgIChiYXNlIDE2KQkJQ09ERVggQ09SUE9SQVRJT04KKwkJCQk1MCBFQVNUIENPTU1FUkNFIERSSVZFCisJCQkJU1VJVEUgIE0xCisJCQkJU0NIQVVNQlVSRyBJTCA2MDE3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtM0YgICAoaGV4KQkJRlJFRCBLT1NDSEFSQSBFTlRFUlBSSVNFUworMDgwMDNGICAgICAoYmFzZSAxNikJCUZSRUQgS09TQ0hBUkEgRU5URVJQUklTRVMKKwkJCQkKKworMDgtMDAtNDAgICAoaGV4KQkJRkVSUkFOVEkgQ09NUFVURVIgU1lTLiBMSU1JVEVECiswODAwNDAgICAgIChiYXNlIDE2KQkJRkVSUkFOVEkgQ09NUFVURVIgU1lTLiBMSU1JVEVECisJCQkJV1lUSEVOU0hBV0UgRElWSVNJT04KKwkJCQlXRVNURVJOIFJPQUQgQlJBQ0tORUxMIFJHMTIgMVJBCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC00MSAgIChoZXgpCQlSQUNBTC1NSUxHTyBJTkZPUk1BVElPTiBTWVMuLgorMDgwMDQxICAgICAoYmFzZSAxNikJCVJBQ0FMLU1JTEdPIElORk9STUFUSU9OIFNZUy4uCisJCQkJNDAwIEVNQkFTU1kgUk9XCisJCQkJU1VJVEUgMzAwCisJCQkJQVRMQU5UQSBHQSAzMDMyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNDIgICAoaGV4KQkJSkFQQU4gTUFDTklDUyBDT1JQLgorMDgwMDQyICAgICAoYmFzZSAxNikJCUpBUEFOIE1BQ05JQ1MgQ09SUC4KKwkJCQkKKwkJCQlKQVBBTgorCiswOC0wMC00MyAgIChoZXgpCQlQSVhFTCBDT01QVVRFUiBJTkMuCiswODAwNDMgICAgIChiYXNlIDE2KQkJUElYRUwgQ09NUFVURVIgSU5DLgorCQkJCTI2MCBGT1JESEFNIFJPQUQKKwkJCQlXSUxNSU5HVE9OIE1BIDAxODg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC00NCAgIChoZXgpCQlEQVZJRCBTWVNURU1TIElOQy4KKzA4MDA0NCAgICAgKGJhc2UgMTYpCQlEQVZJRCBTWVNURU1TIElOQy4KKwkJCQk2MTUgVEFTTUFOIERSSVZFCisJCQkJU1VOTllWQUxFIENBIDk0MDg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC00NSAgIChoZXgpCQlDT05DVVJSRU5UIENPTVBVVEVSIENPUlAuCiswODAwNDUgICAgIChiYXNlIDE2KQkJQ09OQ1VSUkVOVCBDT01QVVRFUiBDT1JQLgorCQkJCTIgQ1JFU0NFTlQgUExBQ0UKKwkJCQlPQ0VBTlBPUlQgTkogMDc3NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTQ2ICAgKGhleCkJCVNvbnkgQ29ycG9yYXRpb24KKzA4MDA0NiAgICAgKGJhc2UgMTYpCQlTb255IENvcnBvcmF0aW9uCisJCQkJR290ZW55YW1hIFRlYywgNS0xLTIgS2l0YXNoaW5hZ2F3YQorCQkJCVNoaW5hZ2F3YS1rdQorCQkJCVRva3lvICAxNDEtMDAwMQorCQkJCUpBUEFOCisKKzA4LTAwLTQ3ICAgKGhleCkJCVNFUVVFTlQgQ09NUFVURVIgU1lTVEVNUyBJTkMuCiswODAwNDcgICAgIChiYXNlIDE2KQkJU0VRVUVOVCBDT01QVVRFUiBTWVNURU1TIElOQy4KKwkJCQkxNTQ1MCBTLlcuIEtPTEwgUEFSS1dBWSAgIC4KKwkJCQlNQUlMU1RPUCBDT0wyLTgzMQorCQkJCUJFQVZFUlRPTiBPUiA5NzAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNDggICAoaGV4KQkJRVVST1RIRVJNIEdBVUdJTkcgU1lTVEVNUworMDgwMDQ4ICAgICAoYmFzZSAxNikJCUVVUk9USEVSTSBHQVVHSU5HIFNZU1RFTVMKKwkJCQk5MDAgTUlERExFU0VYIFRVUk5QSUtFLCBCREcuIDYKKwkJCQlCSUxMRVJJQ0EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTQ5ICAgKGhleCkJCVVOSVZBVElPTgorMDgwMDQ5ICAgICAoYmFzZSAxNikJCVVOSVZBVElPTgorCQkJCTEwMzcgTk9SVEggRkFJUiBPQUtTIEFWRS4KKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTRBICAgKGhleCkJCUJBTllBTiBTWVNURU1TIElOQy4KKzA4MDA0QSAgICAgKGJhc2UgMTYpCQlCQU5ZQU4gU1lTVEVNUyBJTkMuCisJCQkJMTM1IEZMQU5ERVJTIFJPQUQKKwkJCQlXRVNUQk9STyBNQSAwMTU4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNEIgICAoaGV4KQkJUExBTk5JTkcgUkVTRUFSQ0ggQ09SUC4KKzA4MDA0QiAgICAgKGJhc2UgMTYpCQlQTEFOTklORyBSRVNFQVJDSCBDT1JQLgorCQkJCTFESFMgU1lTVEVNUworCQkJCTE1MDggS0VOTkVEWSBEUklWRS1TVEUjMjE1CisJCQkJQkVMTEVWVUUgTkUgNjgtLTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTRDICAgKGhleCkJCUhZRFJBIENPTVBVVEVSIFNZU1RFTVMgSU5DLgorMDgwMDRDICAgICAoYmFzZSAxNikJCUhZRFJBIENPTVBVVEVSIFNZU1RFTVMgSU5DLgorCQkJCTEyIE1FUkNFUiBST0FECisJCQkJTkFUSUNLIE1BIDAxNzYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC00RCAgIChoZXgpCQlDT1JWVVMgU1lTVEVNUyBJTkMuCiswODAwNEQgICAgIChiYXNlIDE2KQkJQ09SVlVTIFNZU1RFTVMgSU5DLgorCQkJCTIxMDAgQ09SVlVTIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTRFICAgKGhleCkJCTNDT00gRVVST1BFIExURC4KKzA4MDA0RSAgICAgKGJhc2UgMTYpCQkzQ09NIEVVUk9QRSBMVEQuCisJCQkJM0NPTSBDRU5UUkUKKwkJCQlCT1VOREFSWSBXQVksIEhFTUVMIEhFTVBTVEVBRCBIRVJURk9SU0hJCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC00RiAgIChoZXgpCQlDWUdORVQgU1lTVEVNUworMDgwMDRGICAgICAoYmFzZSAxNikJCUNZR05FVCBTWVNURU1TCisJCQkJMjU2MCBKVU5DVElPTiBBVkVOVUUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNTAgICAoaGV4KQkJREFJU1kgU1lTVEVNUyBDT1JQLgorMDgwMDUwICAgICAoYmFzZSAxNikJCURBSVNZIFNZU1RFTVMgQ09SUC4KKwkJCQkxMzkgS0lGRVIgQ09VUlQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTUxICAgKGhleCkJCUVYUEVSREFUQQorMDgwMDUxICAgICAoYmFzZSAxNikJCUVYUEVSREFUQQorCQkJCTg4LCBSVUUgQlJJTExBVCBTQVZBUklOCisJCQkJNzUwMTMgUEFSSVMKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDgtMDAtNTIgICAoaGV4KQkJSU5TWVNURUMKKzA4MDA1MiAgICAgKGJhc2UgMTYpCQlJTlNZU1RFQworCQkJCTQ1MCBMQUtFTU9OVCBBVkVOVUUKKwkJCQlXSU5URVIgUEFSSyBGTCAzMjc5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNTMgICAoaGV4KQkJTUlERExFIEVBU1QgVEVDSC4gVU5JVkVSU0lUWQorMDgwMDUzICAgICAoYmFzZSAxNikJCU1JRERMRSBFQVNUIFRFQ0guIFVOSVZFUlNJVFkKKwkJCQlERVBBUlRNRU5UIE9GCisJCQkJQ09NUFVURVIgRU5HSU5FRVJJTkcKKwkJCQlBTktBUkEgVFVSS0VZCisJCQkJVFVSS0VZCisKKzA4LTAwLTU1ICAgKGhleCkJCVNUQU5GT1JEIFRFTEVDT01NLiBJTkMuCiswODAwNTUgICAgIChiYXNlIDE2KQkJU1RBTkZPUkQgVEVMRUNPTU0uIElOQy4KKwkJCQkxMjIxIENST1NTTUFOCisJCQkJU1VOTllWQUxFIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01NiAgIChoZXgpCQlTVEFORk9SRCBMSU5FQVIgQUNDRUwuIENFTlRFUgorMDgwMDU2ICAgICAoYmFzZSAxNikJCVNUQU5GT1JEIExJTkVBUiBBQ0NFTC4gQ0VOVEVSCisJCQkJMjU3NSBTQU5ESElMTCBST0FECisJCQkJTUVOTE8gUEFSSyBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNTcgICAoaGV4KQkJRVZBTlMgJiBTVVRIRVJMQU5ECiswODAwNTcgICAgIChiYXNlIDE2KQkJRVZBTlMgJiBTVVRIRVJMQU5ECisJCQkJUC5PLiBCT1ggODcwMAorCQkJCTU4MCBBUkFQRUVOIERSSVZFCisJCQkJU0FMVCBMQUtFIENJVFkgVVQgODQxMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTU4ICAgKGhleCkJCVNZU1RFTVMgQ09OQ0VQVFMKKzA4MDA1OCAgICAgKGJhc2UgMTYpCQlTWVNURU1TIENPTkNFUFRTCisJCQkJNTIwIFRISVJEIFNUUkVFVAorCQkJCVNBTiBGUkFOQ0lTQ08gQ0EgOTQxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTU5ICAgKGhleCkJCUEvUyBNWUNST04KKzA4MDA1OSAgICAgKGJhc2UgMTYpCQlBL1MgTVlDUk9OCisJCQkJUE8gQk9YIDYxOTkKKwkJCQlOLTA2MDIgT1NMTyA2CisJCQkJTk9SV0FZCisJCQkJTk9SV0FZCisKKzA4LTAwLTVBICAgKGhleCkJCUlCTSBDb3JwCiswODAwNUEgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTVCICAgKGhleCkJCVZUQSBURUNITk9MT0dJRVMgSU5DLgorMDgwMDVCICAgICAoYmFzZSAxNikJCVZUQSBURUNITk9MT0dJRVMgSU5DLgorCQkJCTIwNDAgU0hFUk1BTiBTVFJFRVQKKwkJCQlIT0xMWVdPT0QgRkwgMzMwMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTVDICAgKGhleCkJCUZPVVIgUEhBU0UgU1lTVEVNUworMDgwMDVDICAgICAoYmFzZSAxNikJCUZPVVIgUEhBU0UgU1lTVEVNUworCQkJCTIwMDEgTE9HSUMgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEyNC0zNDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01RCAgIChoZXgpCQlHT1VMRCBJTkMuCiswODAwNUQgICAgIChiYXNlIDE2KQkJR09VTEQgSU5DLgorCQkJCTY5MDEgV0VTVCBTVU5SSVNFIEJMVkQuCisJCQkJUC5PLiBCT1ggOTE0OAorCQkJCUZULiBMQVVERVJEQUxFIEZMIDMzMzEwLTkxNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTVFICAgKGhleCkJCUNPVU5URVJQT0lOVCBDT01QVVRFUiBJTkMuCiswODAwNUUgICAgIChiYXNlIDE2KQkJQ09VTlRFUlBPSU5UIENPTVBVVEVSIElOQy4KKwkJCQkyMTI3IFJJTkdXT09EIEFWRU5VRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01RiAgIChoZXgpCQlTQUJFUiBURUNITk9MT0dZIENPUlAuCiswODAwNUYgICAgIChiYXNlIDE2KQkJU0FCRVIgVEVDSE5PTE9HWSBDT1JQLgorCQkJCTIzODEgQkVSSU5HIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEtMTEyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNjAgICAoaGV4KQkJSU5EVVNUUklBTCBORVRXT1JLSU5HIElOQy4KKzA4MDA2MCAgICAgKGJhc2UgMTYpCQlJTkRVU1RSSUFMIE5FVFdPUktJTkcgSU5DLgorCQkJCTM5OTAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNjEgICAoaGV4KQkJSkFST0dBVEUgTFRELgorMDgwMDYxICAgICAoYmFzZSAxNikJCUpBUk9HQVRFIExURC4KKwkJCQkxOTctMjEzIExZSEFNIFJPQUQKKwkJCQlCUklTVE9OIExPTkRPTiBTVzIgNVBZCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC02MiAgIChoZXgpCQlHRU5FUkFMIERZTkFNSUNTCiswODAwNjIgICAgIChiYXNlIDE2KQkJR0VORVJBTCBEWU5BTUlDUworCQkJCUZPUlQgV09SVEggRElWSVNJT04KKwkJCQlQLk8uIEJPWCA3NDgKKwkJCQlGVC4gV09SVEggVFggNzYxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTYzICAgKGhleCkJCVBMRVNTRVkKKzA4MDA2MyAgICAgKGJhc2UgMTYpCQlQTEVTU0VZCisJCQkJUExFU1NFWSAtIFVLIExJTUlURUQKKwkJCQkxNjctNTUgMTQ4VEggQVZFTlVFCisJCQkJSkFNQUlDQSBOWSAxMTQzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNjQgICAoaGV4KQkJQVVUT1BIT04gQUcKKzA4MDA2NCAgICAgKGJhc2UgMTYpCQlBVVRPUEhPTiBBRworCQkJCUFCVC4gVFpNIDMwNworCQkJCVpJRUdFTE1BVFRTVFJBU1NFIDEtMTUgNDUwMyBTT0xPVEhVUk4KKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzA4LTAwLTY1ICAgKGhleCkJCUdFTlJBRCBJTkMuCiswODAwNjUgICAgIChiYXNlIDE2KQkJR0VOUkFEIElOQy4KKwkJCQkzMDAgQkFLRVIgQVZFTlVFCisJCQkJTUFJTCBTVE9QIDI2CisJCQkJQ09OQ09SRCBNQSAwMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNjYgICAoaGV4KQkJQUdGQSBDT1JQT1JBVElPTgorMDgwMDY2ICAgICAoYmFzZSAxNikJCUFHRkEgQ09SUE9SQVRJT04KKwkJCQkyMDAgQkFMTEFSRFZBTEUgU1RSRUVUCisJCQkJV0lMTUlOR1RPTiBNQSAwMTg4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNjcgICAoaGV4KQkJQ09NREVTSUdOCiswODAwNjcgICAgIChiYXNlIDE2KQkJQ09NREVTSUdOCisJCQkJNzUxIFNPVVRIIEtFTExPRyBBVkVOVUUKKwkJCQlHT0xFVEEgQ0EgOTMxMTctMzg4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNjggICAoaGV4KQkJUklER0UgQ09NUFVURVJTCiswODAwNjggICAgIChiYXNlIDE2KQkJUklER0UgQ09NUFVURVJTCisJCQkJMjQ1MSBNSVNTSU9OIENPTExFR0UgQkxWRC4KKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNjkgICAoaGV4KQkJU0lMSUNPTiBHUkFQSElDUyBJTkMuCiswODAwNjkgICAgIChiYXNlIDE2KQkJU0lMSUNPTiBHUkFQSElDUyBJTkMuCisJCQkJMjAxMSBOLiBTSE9SRUxJTkUgQkxWRC4KKwkJCQlQLk8uIEJPWCA3MzExIENBIDk0MDQzCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDAzOS03MzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC02QSAgIChoZXgpCQlBVFQgQkVMTCBMQUJPUkFUT1JJRVMKKzA4MDA2QSAgICAgKGJhc2UgMTYpCQlBVFQgQkVMTCBMQUJPUkFUT1JJRVMKKwkJCQkxMTAwIEVBU1QgV0FSUkVOVklMTEUgUk9BRAorCQkJCU5BUEVSVklMTEUgSUwgNjA1NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTZCICAgKGhleCkJCUFDQ0VMIFRFQ0hOT0xPR0lFUyBJTkMuCiswODAwNkIgICAgIChiYXNlIDE2KQkJQUNDRUwgVEVDSE5PTE9HSUVTIElOQy4KKwkJCQk3MzU4IFRSQURFIFNUUkVFVAorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNkMgICAoaGV4KQkJU1VOVEVLIFRFQ0hOT0xPR1kgSU5UJ0wKKzA4MDA2QyAgICAgKGJhc2UgMTYpCQlTVU5URUsgVEVDSE5PTE9HWSBJTlQnTAorCQkJCTU4NiBOTy4gRklSU1QgU1RSRUVUCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTZEICAgKGhleCkJCVdISVRFQ0hBUEVMIENPTVBVVEVSIFdPUktTCiswODAwNkQgICAgIChiYXNlIDE2KQkJV0hJVEVDSEFQRUwgQ09NUFVURVIgV09SS1MKKwkJCQk3NSBXSElURUNIQVBFTCBST0FECisJCQkJTE9ORE9OIEUxIDFEVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzA4LTAwLTZFICAgKGhleCkJCU1BU1NDT01QCiswODAwNkUgICAgIChiYXNlIDE2KQkJTUFTU0NPTVAKKwkJCQlPTkUgVEVDSE5PTE9HWSBQQVJLCisJCQkJV0VTVEZPUkQgTUEgMDE4ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTZGICAgKGhleCkJCVBISUxJUFMgQVBFTERPT1JOIEIuVi4KKzA4MDA2RiAgICAgKGJhc2UgMTYpCQlQSElMSVBTIEFQRUxET09STiBCLlYuCisJCQkJUC5PLiBCT1ggMTA1CisJCQkJNzMwMCBBQyBBUEVMRE9PUk4KKwkJCQlUSEUgTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswOC0wMC03MCAgIChoZXgpCQlNSVRTVUJJU0hJIEVMRUNUUklDIENPUlAuCiswODAwNzAgICAgIChiYXNlIDE2KQkJTUlUU1VCSVNISSBFTEVDVFJJQyBDT1JQLgorCQkJCTMyNSBLQU1JTUFDSElZQQorCQkJCUtBTUFLVVJBIENJVFkgS0FOQUdXQSBQUkVGRUNUVVJFIDI0NworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDgtMDAtNzEgICAoaGV4KQkJTUFUUkEgKERTSUUpCiswODAwNzEgICAgIChiYXNlIDE2KQkJTUFUUkEgKERTSUUpCisJCQkJUEFSQyBEJ0FGRkFJUkVTIC0gQi5QLiAyNjIKKwkJCQkyNzEwMCBWQUwgREUgUkVVSUwKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDgtMDAtNzIgICAoaGV4KQkJWEVST1ggQ09SUCBVTklWIEdSQU5UIFBST0dSQU0KKzA4MDA3MiAgICAgKGJhc2UgMTYpCQlYRVJPWCBDT1JQIFVOSVYgR1JBTlQgUFJPR1JBTQorCQkJCVpFUk9YIFNZU1RFTVMgSU5TVElUVVRFCisJCQkJTS9TIDEwNSA1MEMgODAwIFBISUxMSVBTIFJPQUQKKwkJCQlXRUJTVEVSIE5ZIDE0NTgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC03MyAgIChoZXgpCQlURUNNQVIgSU5DLgorMDgwMDczICAgICAoYmFzZSAxNikJCVRFQ01BUiBJTkMuCisJCQkJNjIyNSBDT0NIUkFOIFJPQUQKKwkJCQlTT0xPTiBPSCA0NDEzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNzQgICAoaGV4KQkJQ0FTSU8gQ09NUFVURVIgQ08uIExURC4KKzA4MDA3NCAgICAgKGJhc2UgMTYpCQlDQVNJTyBDT01QVVRFUiBDTy4gTFRELgorCQkJCTMtMi0xIFNBS0FFLUNITworCQkJCUhBTVVSQU1BQ0hJLCBOSVNISVRNQUdVTiBUT0tZTworCQkJCTE5MC0xMSBKQVBBTgorCQkJCUpBUEFOCisKKzA4LTAwLTc1ICAgKGhleCkJCURBTlNLIERBVEEgRUxFQ1RST05JSworMDgwMDc1ICAgICAoYmFzZSAxNikJCURBTlNLIERBVEEgRUxFQ1RST05JSworCQkJCUhFUkxFViBIT1ZFREdBREUgMTk5CisJCQkJREsgMjczMCBIRVJMRVYKKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswOC0wMC03NiAgIChoZXgpCQlQQyBMQU4gVEVDSE5PTE9HSUVTCiswODAwNzYgICAgIChiYXNlIDE2KQkJUEMgTEFOIFRFQ0hOT0xPR0lFUworCQkJCTU3ODAgTElOQ09MTiBEUklWRSBTVUlURSAxMDYKKwkJCQlNSU5ORUFQT0xJUyBNTiA1NTQzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNzcgICAoaGV4KQkJVFNMIENPTU1VTklDQVRJT05TIExURC4KKzA4MDA3NyAgICAgKGJhc2UgMTYpCQlUU0wgQ09NTVVOSUNBVElPTlMgTFRELgorCQkJCVRIRSBMQU5EU0JVUlkgRVNUQVRFCisJCQkJTE9XRVIgR1VJTERGT1JEIFJPQUQgS05BUEhJTCBXT0tJTkcgU1VSUgorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC03OCAgIChoZXgpCQlBQ0NFTEwgQ09SUE9SQVRJT04KKzA4MDA3OCAgICAgKGJhc2UgMTYpCQlBQ0NFTEwgQ09SUE9SQVRJT04KKwkJCQk1MCBTQUdJTkFXIERSSVZFCisJCQkJUk9DSEVTVEVSIE5ZIDE0NjIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC03OSAgIChoZXgpCQlUSEUgRFJPSUQgV09SS1MKKzA4MDA3OSAgICAgKGJhc2UgMTYpCQlUSEUgRFJPSUQgV09SS1MKKwkJCQlQLk8uIEJPWCBDUyA4MTgwCisJCQkJU0FOIFJBRkFFTCBDQSA5NDkxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtN0EgICAoaGV4KQkJSU5EQVRBCiswODAwN0EgICAgIChiYXNlIDE2KQkJSU5EQVRBCisJCQkJR0pFUkRSVU1TIFZFSSAxMiBDCisJCQkJTi0wNDg2IE9TTE8gNAorCQkJCU5PUldBWQorCQkJCU5PUldBWQorCiswOC0wMC03QiAgIChoZXgpCQlTQU5ZTyBFTEVDVFJJQyBDTy4gTFRELgorMDgwMDdCICAgICAoYmFzZSAxNikJCVNBTllPIEVMRUNUUklDIENPLiBMVEQuCisJCQkJMS0xOC0xMyBIQVNISVJJREFOSQorCQkJCUhJUkFLQVRBLVNISQorCQkJCU9TQUtBIDU3MyBKQVBBTgorCQkJCUpBUEFOCisKKzA4LTAwLTdDICAgKGhleCkJCVZJVEFMSU5LIENPTU1VTklDQVRJT05TIENPUlAuCiswODAwN0MgICAgIChiYXNlIDE2KQkJVklUQUxJTksgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQk0ODc2MSBLQVRPIFJPQUQKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC03RSAgIChoZXgpCQlBTUFMR0FNQVRFRCBXSVJFTEVTUyhBVVMpIExURAorMDgwMDdFICAgICAoYmFzZSAxNikJCUFNQUxHQU1BVEVEIFdJUkVMRVNTKEFVUykgTFRECisJCQkJTk9SVEggUllERSBESVZJU0lPTgorCQkJCVAuTy4gQk9YIDk2IE5PUlRIIFJZREUgTlNXCisJCQkJQVVTVFJBTElBIDIxMTMKKwkJCQlBVVNUUkFMSUEKKworMDgtMDAtN0YgICAoaGV4KQkJQ0FSTkVHSUUtTUVMTE9OIFVOSVZFUlNJVFkKKzA4MDA3RiAgICAgKGJhc2UgMTYpCQlDQVJORUdJRS1NRUxMT04gVU5JVkVSU0lUWQorCQkJCUlORk9STUFUSU9OIFRFQ0hOT0xPR1kKKwkJCQlTQ0hFTkxFWSBQQVJLCisJCQkJUElUVFNCVVJHRSBQQSAxNTIxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtODAgICAoaGV4KQkJQUVTIERBVEEgSU5DLgorMDgwMDgwICAgICAoYmFzZSAxNikJCUFFUyBEQVRBIElOQy4KKwkJCQkxOTAwIE1JTk5FU09UQSBDT1VSVAorCQkJCU1JU1NJU0FVR0EgT05UQVJJTworCQkJCUNBTkFEQSBMNU4gTDVOIDNDOQorCQkJCUNBTkFEQQorCiswOC0wMC04MSAgIChoZXgpCQksQVNURUNIIElOQy4KKzA4MDA4MSAgICAgKGJhc2UgMTYpCQksQVNURUNIIElOQy4KKwkJCQk2NzAgTk9SVEggQ09NTUVSQ0lBTCBTVFJFRVQKKwkJCQlNQU5DSEVTVEVSIE5IIDAzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC04MiAgIChoZXgpCQlWRVJJVEFTIFNPRlRXQVJFCiswODAwODIgICAgIChiYXNlIDE2KQkJVkVSSVRBUyBTT0ZUV0FSRQorCQkJCTQ4MDAgR1JFQVQgQU1FUklDQSBQQVJLV0FZCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTgzICAgKGhleCkJCVNlaWtvIEluc3RydW1lbnRzIEluYy4KKzA4MDA4MyAgICAgKGJhc2UgMTYpCQlTZWlrbyBJbnN0cnVtZW50cyBJbmMuCisJCQkJOCwgTmFrYXNlIDEtY2hvbWUgTWloYW1hLWt1CisJCQkJQ2hpYmEtc2hpIENoaWJhIDI2MS04NTA3CisJCQkJSkFQQU4KKworMDgtMDAtODQgICAoaGV4KQkJVE9NRU4gRUxFQ1RST05JQ1MgQ09SUC4KKzA4MDA4NCAgICAgKGJhc2UgMTYpCQlUT01FTiBFTEVDVFJPTklDUyBDT1JQLgorCQkJCTEtMSBVQ0hJU0FJV0FJLUNITyAyQ0hPTUUKKwkJCQlDSElZT0RBLUtVIFRPS1lPIDEwMAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDgtMDAtODUgICAoaGV4KQkJRUxYU0kKKzA4MDA4NSAgICAgKGJhc2UgMTYpCQlFTFhTSQorCQkJCTIzMzQgTFVORFkgUExBQ0UKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtODYgICAoaGV4KQkJS09OSUNBIE1JTk9MVEEgSE9MRElOR1MsIElOQy4KKzA4MDA4NiAgICAgKGJhc2UgMTYpCQlLT05JQ0EgTUlOT0xUQSBIT0xESU5HUywgSU5DLgorCQkJCTEtNi0xLCBNYXJ1bm91Y2hpLAorCQkJCUNoaXlvZGEta3UKKwkJCQlUb2t5byAgMTAwLTAwMDUKKwkJCQlKQVBBTgorCiswOC0wMC04NyAgIChoZXgpCQlYWVBMRVgKKzA4MDA4NyAgICAgKGJhc2UgMTYpCQlYWVBMRVgKKwkJCQkyOTUgRk9TVEVSIFNUUkVFVAorCQkJCUxJVFRMRVRPTiBNQSAwMTQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtODggICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCiswODAwODggICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJMTc0NSBUZWNobm9sb2d5IERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC04OSAgIChoZXgpCQlLSU5FVElDUworMDgwMDg5ICAgICAoYmFzZSAxNikJCUtJTkVUSUNTCisJCQkJMzE4MiBPTEQgVFVOTkVMIFJPQUQKKwkJCQlTVUlURSBICisJCQkJTEFGQVlFVFRFIENBIDk0NTQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC04QSAgIChoZXgpCQlQRVJGT1JNQU5DRSBURUNITk9MT0dZCiswODAwOEEgICAgIChiYXNlIDE2KQkJUEVSRk9STUFOQ0UgVEVDSE5PTE9HWQorCQkJCTgwMSBMSU5DT0xOIENFTlRFUgorCQkJCTc4MDAgMUgxMCBXRVNUCisJCQkJU0FOIEFOVE9OSU8gVFggNzgyMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLThCICAgKGhleCkJCVBZUkFNSUQgVEVDSE5PTE9HWSBDT1JQLgorMDgwMDhCICAgICAoYmFzZSAxNikJCVBZUkFNSUQgVEVDSE5PTE9HWSBDT1JQLgorCQkJCTEyOTUgQ0hBUkxFU1RPTiBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtOEMgICAoaGV4KQkJTkVUV09SSyBSRVNFQVJDSCBDT1JQT1JBVElPTgorMDgwMDhDICAgICAoYmFzZSAxNikJCU5FVFdPUksgUkVTRUFSQ0ggQ09SUE9SQVRJT04KKwkJCQkyMzgwIE4uIFJPU0UgQVZFTlVFCisJCQkJT1hOQVJEIENBIDkzMDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC04RCAgIChoZXgpCQlYWVZJU0lPTiBJTkMuCiswODAwOEQgICAgIChiYXNlIDE2KQkJWFlWSVNJT04gSU5DLgorCQkJCTEwMSBFREdFV0FURVIgRFJJVkUKKwkJCQlXQUtFRklFTEQgTUEgMDE4ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLThFICAgKGhleCkJCVRBTkRFTSBDT01QVVRFUlMKKzA4MDA4RSAgICAgKGJhc2UgMTYpCQlUQU5ERU0gQ09NUFVURVJTCisJCQkJMTQzMjEgVEFOREVNIEJMVkQuCisJCQkJQVVTVElOIFRYIDc4NzI4LTY2MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLThGICAgKGhleCkJCUNISVBDT00gQ09SUE9SQVRJT04KKzA4MDA4RiAgICAgKGJhc2UgMTYpCQlDSElQQ09NIENPUlBPUkFUSU9OCisJCQkJU09VVEhCT1JPVUdIIE9GRklDRQorCQkJCTExOCBUVVJOUElLRSBST0FECisJCQkJU09VVEhCT1JPVUdIIE1BIDAxNzcyLTE4ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTkwICAgKGhleCkJCVNPTk9NQSBTWVNURU1TCiswODAwOTAgICAgIChiYXNlIDE2KQkJU09OT01BIFNZU1RFTVMKKwkJCQk0NjQwIEFETUlSQUxUWSBXQVksICBTVEUuICM2MDAKKwkJCQlNQVJJTkEgREVMIFJFWSBDQSA5MDI5Mi02Njk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0xMS05NiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzA4MTE5NiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzA4LTE0LTQzICAgKGhleCkJCVVOSUJSQUlOIFMuQS4KKzA4MTQ0MyAgICAgKGJhc2UgMTYpCQlVTklCUkFJTiBTLkEuCisJCQkJODQsIEVUSE5JS0lTIEFOVElTVEFTRU9TCisJCQkJMTUyMzEgQVRIRU5TCisJCQkJR1JFRUNFCisJCQkJR1JFRUNFCisKKzA4LTE2LTUxICAgKGhleCkJCVNoZW56aGVuIFNlYSBTdGFyIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDgxNjUxICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFNlYSBTdGFyIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCVNlYXN0YXIgaW5kdXN0cmlhbCBQYXJrLCBCYW9Mb25nICA2dGggQXZlCisJCQkJQmFvTG9uZyBpbmR1c3RyaWFsIENpdHksIExvbmdHYW5nICBEaXN0cmljdCwgU2hlbnpoZW4gR3VhbmdEb25nIFAuUi5DCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODExNgorCQkJCUNISU5BCisKKzA4LTE3LTM1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzA4MTczNSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTE3LUY0ICAgKGhleCkJCUlCTSBDb3JwCiswODE3RjQgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkyMDUxIE1pc3Npb24gQ29sbGVnZSBCbHZkCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTE4LTFBICAgKGhleCkJCXp0ZSBjb3Jwb3JhdGlvbgorMDgxODFBICAgICAoYmFzZSAxNikJCXp0ZSBjb3Jwb3JhdGlvbgorCQkJCTEyL0YuLFpURSBSJkQgQnVpbGRpbmcsa2VqaSBuYW4gUm9hZCAKKwkJCQlTaGVuemhlbiBndWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDgtMTgtNEMgICAoaGV4KQkJQS4gUy4gVGhvbWFzLCBJbmMuCiswODE4NEMgICAgIChiYXNlIDE2KQkJQS4gUy4gVGhvbWFzLCBJbmMuCisJCQkJMzU1IFByb3ZpZGVuY2UgSHd5CisJCQkJV2VzdHdvb2QgTUEgMDIwOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTE5LUE2ICAgKGhleCkJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorMDgxOUE2ICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorCQkJCUIxLTcsSHVhd2VpIEluZHVzdHJpYWwgQmFzZSxCYW50aWFuLExvbmdnYW5nCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODEyOQorCQkJCUNISU5BCisKKzA4LTFGLUYzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzA4MUZGMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTJBLUQwICAgKGhleCkJCVNSRCBJbm5vdmF0aW9ucyBJbmMuCiswODJBRDAgICAgIChiYXNlIDE2KQkJU1JEIElubm92YXRpb25zIEluYy4KKwkJCQkxMTUyNSBWYWxsZXkgUmlkZ2UgRHIuIE5XCisJCQkJQ2FsZ2FyeSBBQiBUM0IgNVQ0CisJCQkJQ0FOQURBCisKKzA4LTM4LUE1ICAgKGhleCkJCUZ1bmt3ZXJrIHBsZXR0YWMgZWxlY3Ryb25pYyBHbWJICiswODM4QTUgICAgIChiYXNlIDE2KQkJRnVua3dlcmsgcGxldHRhYyBlbGVjdHJvbmljIEdtYkgKKwkJCQlXdWVyemJ1cmdlciBTdHIuIDE1MAorCQkJCUZ1ZXJ0aCBCYXZhcmlhIDkwNzY2CisJCQkJR0VSTUFOWQorCiswOC00RS0xQyAgIChoZXgpCQlIMkEgU3lzdGVtcywgTExDCiswODRFMUMgICAgIChiYXNlIDE2KQkJSDJBIFN5c3RlbXMsIExMQworCQkJCTc1NDUgSXJ2aW5lIENlbnRlciBEcml2ZQorCQkJCVN1aXRlIDIwMAorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtNEUtQkYgICAoaGV4KQkJQnJvYWQgTmV0IE11eCBDb3Jwb3JhdGlvbgorMDg0RUJGICAgICAoYmFzZSAxNikJCUJyb2FkIE5ldCBNdXggQ29ycG9yYXRpb24KKwkJCQk0LTEtOCBLb3VuYW4gTWluYXRvLWt1CisJCQkJVG9reW8gIDEwOC0wMDc1CisJCQkJSkFQQU4KKworMDgtNTEtMkUgICAoaGV4KQkJT3Jpb24gRGlhZ25vc3RpY2EgT3kKKzA4NTEyRSAgICAgKGJhc2UgMTYpCQlPcmlvbiBEaWFnbm9zdGljYSBPeQorCQkJCUtvaXZ1LU1hbmtrYWFuIHRpZSA2CisJCQkJRXNwb28gIDAyMTAwCisJCQkJRklOTEFORAorCiswOC03Ni0xOCAgIChoZXgpCQlWaUUgVGVjaG5vbG9naWVzIFNkbi4gQmhkLgorMDg3NjE4ICAgICAoYmFzZSAxNikJCVZpRSBUZWNobm9sb2dpZXMgU2RuLiBCaGQuCisJCQkJbm8uIDg1LUEsIExpbnRhbmcgQmF5YW4gTGVwYXMgMTEsCisJCQkJUGhhc2UgNAorCQkJCUJheWFuIExlcGFzIFBlbmFuZyAxMTkwMAorCQkJCU1BTEFZU0lBCisKKzA4LTc2LTk1ICAgKGhleCkJCUF1dG8gSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzA4NzY5NSAgICAgKGJhc2UgMTYpCQlBdXRvIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJMTRGbG9vciwgIzIzNSBIYW5zaGluIElUIFRvd2VyLCAKKwkJCQlHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTc2OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswOC03Ni1GRiAgIChoZXgpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorMDg3NkZGICAgICAoYmFzZSAxNikJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCisJCQkJUHJpbnMgQm91ZGV3aWpubGFhbiA0NworCQkJCUVkZWdlbSAgIDI2NTAKKwkJCQlCRUxHSVVNCisKKzA4LTg2LTNCICAgKGhleCkJCUJlbGtpbiBJbnRlcm5hdGlvbmFsCiswODg2M0IgICAgIChiYXNlIDE2KQkJQmVsa2luIEludGVybmF0aW9uYWwKKwkJCQkxMjA0NSBFYXN0IFdhdGVyZnJvbnQgRHJpdmUKKwkJCQlQbGF5YSBWaXN0YSBDQSA5MDA5NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtOEQtQzggICAoaGV4KQkJUnlvd2EgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDg4REM4ICAgICAoYmFzZSAxNikJCVJ5b3dhIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkxNDgzLTEgVGFrYWhhcmEtbWFjaGkKKwkJCQlZYW1hZ2F0YS1zaGkgWWFtYWdhdGEtcHJlZi4gOTkwMDAwMgorCQkJCUpBUEFOCisKKzA4LTlGLTk3ICAgKGhleCkJCUxFUk9ZIEFVVE9NQVRJT04KKzA4OUY5NyAgICAgKGJhc2UgMTYpCQlMRVJPWSBBVVRPTUFUSU9OCisJCQkJMzUsIEJvdWxldmFyZCBkdSBMaWJyZSBFY2hhbmdlCisJCQkJU2FpbnQgT3JlbnMgZGUgR2FtZXZpbGxlICAzMTY1MAorCQkJCUZSQU5DRQorCiswOC1BQy1BNSAgIChoZXgpCQlCZW51IFZpZGVvLCBJbmMuCiswOEFDQTUgICAgIChiYXNlIDE2KQkJQmVudSBWaWRlbywgSW5jLgorCQkJCTMwMCBDb25jb3JkIFJkLiwgU3VpdGUgIzExMAorCQkJCUJpbGxlcmljYSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtQjctRUMgICAoaGV4KQkJV2lyZWxlc3MgU2Vpc21pYworMDhCN0VDICAgICAoYmFzZSAxNikJCVdpcmVsZXNzIFNlaXNtaWMKKwkJCQkxMzEwMCBTVyBGcmVld2F5CisJCQkJU3VpdGUgMTUwCisJCQkJU3VnYXIgTGFuZCBUWCA3NzQ3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtQkItQ0MgICAoaGV4KQkJQUstTk9SRCBFRFYgVkVSVFJJRUJTR0VTLiBtYkgKKzA4QkJDQyAgICAgKGJhc2UgMTYpCQlBSy1OT1JEIEVEViBWRVJUUklFQlNHRVMuIG1iSAorCQkJCUZSSUVEUklDSFNUUkFTU0UgMTAKKwkJCQkyNTQzNiBUT1JORVNDSCAgCisJCQkJR0VSTUFOWQorCiswOC1EMi05QSAgIChoZXgpCQlQcm9mb3JtYXRpcXVlCiswOEQyOUEgICAgIChiYXNlIDE2KQkJUHJvZm9ybWF0aXF1ZQorCQkJCTEwIGJpcyBydWUgTHVjaWVuIFZvaWxpbgorCQkJCVB1dGVhdXggIDkyODAwCisJCQkJRlJBTkNFCisKKzA4LUQ1LUMwICAgKGhleCkJCVNlZXJzIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzA4RDVDMCAgICAgKGJhc2UgMTYpCQlTZWVycyBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJMTIxMCBUZWNoY2VudGVyLCBTS25UZWNobm9wYXJrLCAxOTAtMQorCQkJCVNhbmdkYWV3b25kLWRvbmcsIEp1bmd3b24tZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjItNzIxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzA4LUU2LTcyICAgKGhleCkJCUpFQlNFRSBFTEVDVFJPTklDUyBDTy4sTFRELgorMDhFNjcyICAgICAoYmFzZSAxNikJCUpFQlNFRSBFTEVDVFJPTklDUyBDTy4sTFRELgorCQkJCTI0LTMsIFNJTiBMRSBST0FELCAKKwkJCQlUQUlOQU4gIDcwMjY4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswOC1GMi1GNCAgIChoZXgpCQlOZXQgT25lIFBhcnRuZXJzIENvLixMdGQuCiswOEYyRjQgICAgIChiYXNlIDE2KQkJTmV0IE9uZSBQYXJ0bmVycyBDby4sTHRkLgorCQkJCTItOCBIaWdhc2hpIFNoaW5hZ2F3YSAyLWNob21lLAorCQkJCVNoaW5hZ2F3YS1rdSwKKwkJCQlUb2t5byAgMTQwMDAwMgorCQkJCUpBUEFOCisKKzA4LUY2LUY4ICAgKGhleCkJCUdFVCBFbmdpbmVlcmluZworMDhGNkY4ICAgICAoYmFzZSAxNikJCUdFVCBFbmdpbmVlcmluZworCQkJCTkzNTAgQm9uZCBBdmUKKwkJCQlFbCBDYWpvbiBDQSA5MjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtRkEtRTAgICAoaGV4KQkJRm9oaG4gQXVkaW8gQUcKKzA4RkFFMCAgICAgKGJhc2UgMTYpCQlGb2hobiBBdWRpbyBBRworCQkJCUhvaGVzIEdlc3RhZGUgMy03CisJCQkJTnVlcnRpbmdlbiBCVyA3MjYyMgorCQkJCUdFUk1BTlkKKworMEMtMTUtQzUgICAoaGV4KQkJU0RURUMgQ28uLCBMdGQuCiswQzE1QzUgICAgIChiYXNlIDE2KQkJU0RURUMgQ28uLCBMdGQuCisJCQkJMTY3LCBDaHVyeWUtMkRvbmcsIFNhc2FuZy1HdSwKKwkJCQlCdXNhbiAgIDYxNy03MTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMEMtMTctRjEgICAoaGV4KQkJVEVMRUNTWVMKKzBDMTdGMSAgICAgKGJhc2UgMTYpCQlURUxFQ1NZUworCQkJCTMxIGNoZW1pbiBkdSBmaWVmIGF1eCBwcmV0cmVzCisJCQkJTCdPUkJSSUUgIDg1MjAwCisJCQkJRlJBTkNFCisKKzBDLTFELUMyICAgKGhleCkJCVNlQUggTmV0d29ya3MKKzBDMURDMiAgICAgKGJhc2UgMTYpCQlTZUFIIE5ldHdvcmtzCisJCQkJOUYsIElUIFZlbnR1cmUgVG93ZXIgRWFzdCBXaW5nIDc4IEdhcmFrLURvbmcsCisJCQkJU2VvdWwgU29uZ3BhLWd1IDEzOC05NTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMEMtMjctNTUgICAoaGV4KQkJVmFsdWFibGUgVGVjaG9sb2dpZXMgTGltaXRlZAorMEMyNzU1ICAgICAoYmFzZSAxNikJCVZhbHVhYmxlIFRlY2hvbG9naWVzIExpbWl0ZWQKKwkJCQk2MDIsIENlbnRyZSBQb2ludCwgSi5CLk5hZ2FyLAorCQkJCUFuZGhlcmktS3VybGEgUm9hZCwgQW5kaGVyaSAoRSkKKwkJCQlNdW1iYWkgTWFoYXJhc2h0cmEgNDAwMDU5CisJCQkJSU5ESUEKKworMEMtMzctREMgICAoaGV4KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorMEMzN0RDICAgICAoYmFzZSAxNikJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzBDLTM5LTU2ICAgKGhleCkJCU9ic2VydmF0b3IgaW5zdHJ1bWVudHMKKzBDMzk1NiAgICAgKGJhc2UgMTYpCQlPYnNlcnZhdG9yIGluc3RydW1lbnRzCisJCQkJUmlldGRla2tlcnN0cmFhdCA2CisJCQkJUmlkZGVya2VyayBadWlkIEhvbGxhbmQgMjk4NCBCTQorCQkJCU5FVEhFUkxBTkRTCisKKzBDLTNDLTY1ICAgKGhleCkJCURvbWUgSW1hZ2luZyBJbmMKKzBDM0M2NSAgICAgKGJhc2UgMTYpCQlEb21lIEltYWdpbmcgSW5jCisJCQkJNDAwIEZpZnRoIEF2IAorCQkJCVN1aXRlIDUwMAorCQkJCVdhbHRoYW0gTUEgMDI0NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzBDLTQ2LTlEICAgKGhleCkJCU1TIFNlZGNvCiswQzQ2OUQgICAgIChiYXNlIDE2KQkJTVMgU2VkY28KKwkJCQk4NzAxIENhc3RsZSBQYXJrIERyaXZlCisJCQkJSW5kaWFuYXBvbGlzICA0NjI1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMEMtNTEtRjcgICAoaGV4KQkJQ0hBVVZJTiBBUk5PVVgKKzBDNTFGNyAgICAgKGJhc2UgMTYpCQlDSEFVVklOIEFSTk9VWAorCQkJCUxBIFFVRVVFIERFVkVFCisJCQkJUkVVWCAgMTQxMzAKKwkJCQlGUkFOQ0UKKworMEMtNjAtNzYgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorMEM2MDc2ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKKzBDLTZFLTRGICAgKGhleCkJCVByaW1lVk9MVCBDby4sIEx0ZC4KKzBDNkU0RiAgICAgKGJhc2UgMTYpCQlQcmltZVZPTFQgQ28uLCBMdGQuCisJCQkJMkYtMywgTm8uIDksIExhbmUgMywgSmlodSBSZCwgTmVpaHUKKwkJCQlUYWlwZWkgIDExNDkyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswQy03NC1DMiAgIChoZXgpCQlBcHBsZSBJbmMKKzBDNzRDMiAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzBDLTdELTdDICAgKGhleCkJCUtleGlhbmcgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDbywgTHRkLgorMEM3RDdDICAgICAoYmFzZSAxNikJCUtleGlhbmcgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDbywgTHRkLgorCQkJCVJvb20gMTUwMiwgTG9uZ3hpIEhvdGVsIE5vLjM3ODggSmlhbmduYW4gQXZlbnVlLiAKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwNTMKKwkJCQlDSElOQQorCiswQy04MS0xMiAgIChoZXgpCQlQUklWQVRFCiswQzgxMTIgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzBDLTgyLTMwICAgKGhleCkJCVNIRU5aSEVOIE1BR05VUyBURUNITk9MT0dJRVMgQ08uLExURAorMEM4MjMwICAgICAoYmFzZSAxNikJCVNIRU5aSEVOIE1BR05VUyBURUNITk9MT0dJRVMgQ08uLExURAorCQkJCWMtNTA0LFNreXdvcnRoIEJ1aWxkaW5nLE5vLjggUm9hZCxIaWdoLXRlY2ggc291dGgsTmFuc2hhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMEMtODItNkEgICAoaGV4KQkJV3VoYW4gSHVhZ29uZyBHZW51aW5lIE9wdGljcyBUZWNobm9sb2d5IENvLiwgTHRkCiswQzgyNkEgICAgIChiYXNlIDE2KQkJV3VoYW4gSHVhZ29uZyBHZW51aW5lIE9wdGljcyBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJU2NpZW5jZSAmIFRlY2hub2xvZ3kgUmVnaW9uIG9mIEhVU1QsIERvbmdodSBIaWdoLVRlY2ggWm9uZSAKKwkJCQlXdWhhbiBIdWJlaSA0MzAyMjMKKwkJCQlDSElOQQorCiswQy04NC0xMSAgIChoZXgpCQlBLk8uIFNtaXRoIFdhdGVyIFByb2R1Y3RzCiswQzg0MTEgICAgIChiYXNlIDE2KQkJQS5PLiBTbWl0aCBXYXRlciBQcm9kdWN0cworCQkJCTI1NTg5IEh3eSAxCisJCQkJTWNCZWUgU0MgMjkxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzBDLThELTk4ICAgKGhleCkJCVRPUCBFSUdIVCBJTkQgQ09SUAorMEM4RDk4ICAgICAoYmFzZSAxNikJCVRPUCBFSUdIVCBJTkQgQ09SUAorCQkJCThGLixObzc5LTEgWmhvdXppIFN0LiwgTmVpaHUgRGlzdHJpY3QsIFRhaXBlaSBDaXR5ICAoTmVpaHUgVGVjaG5vbG9neSBQYXJrKQorCQkJCVRhaXBlaSAgMTE0OTMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzBDLTkyLTRFICAgKGhleCkJCVJpY2UgTGFrZSBXZWlnaGluZyBTeXN0ZW1zCiswQzkyNEUgICAgIChiYXNlIDE2KQkJUmljZSBMYWtlIFdlaWdoaW5nIFN5c3RlbXMKKwkJCQkyMzAgV2VzdCBDb2xlbWFuIFN0CisJCQkJUmljZSBMYWtlIFdJIDU0ODY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswQy1BNC0wMiAgIChoZXgpCQlBbGNhdGVsIEx1Y2VudCBJUEQKKzBDQTQwMiAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIEx1Y2VudCBJUEQKKwkJCQk2MDAgTWFyY2ggRHJpdmUKKwkJCQlLYW5hdGEgT250YXJpbyBrMmsyZTYKKwkJCQlDQU5BREEKKworMEMtQTQtMkEgICAoaGV4KQkJT0IgVGVsZWNvbSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzBDQTQyQSAgICAgKGJhc2UgMTYpCQlPQiBUZWxlY29tIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCTE3L0YsIEppYW5nb25nIEJ1aWxkaW5nCisJCQkJTm8uMjAgV2Vuc2FuIFJvYWQKKwkJCQlIYW5nemhvdSBaaGVKaWFuZyAzMTAwMTIKKwkJCQlDSElOQQorCiswQy1DMy1BNyAgIChoZXgpCQlNZXJpdGVjCiswQ0MzQTcgICAgIChiYXNlIDE2KQkJTWVyaXRlYworCQkJCVAuTy4gQm94IDgwMDMKKwkJCQlQYWluZXN2aWxsZSBPaGlvIDQ0MDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswQy1DNi1BQyAgIChoZXgpCQlEQUdTCiswQ0M2QUMgICAgIChiYXNlIDE2KQkJREFHUworCQkJCUFjZSBIaWdoIGVuZCBUb3dlciA3dGggMTgwMgorCQkJCVNlb3VsIEdldW1jaGVvbi1ndSAxNTMtODAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzBDLUM5LUM2ICAgKGhleCkJCVNhbXdpbiBIb25nIEtvbmcgTGltaXRlZAorMENDOUM2ICAgICAoYmFzZSAxNikJCVNhbXdpbiBIb25nIEtvbmcgTGltaXRlZAorCQkJCVJtIDkwMS05MDIsIDkvRiwgRnV0dXJhIFBsYXphLAorCQkJCTExMS0xMTMgSG93IE1pbmcgU3RyZWV0LCBLd3VuIFRvbmcKKwkJCQlIb25nIEtvbmcgIAorCQkJCUNISU5BCisKKzBDLUNELUQzICAgKGhleCkJCUVBU1RSSVZFUiBURUNITk9MT0dZIENPLiwgTFRELgorMENDREQzICAgICAoYmFzZSAxNikJCUVBU1RSSVZFUiBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCTMwIEpJTk5JVSBYSU5DVU4KKwkJCQlHVUFOQ0hFTkcgRElTVFJJQ1QKKwkJCQlET05HR1VBTiBHVUFOR0RPTkcgNTIzMDEwCisJCQkJQ0hJTkEKKworMEMtRDItOTIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswQ0QyOTIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswQy1ENS0wMiAgIChoZXgpCQlXZXN0ZWxsCiswQ0Q1MDIgICAgIChiYXNlIDE2KQkJV2VzdGVsbAorCQkJCTc1MCBOLiBDb21tb25zIGRyLgorCQkJCUF1cm9yYSBJTCA2MDUwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMEMtRDYtOTYgICAoaGV4KQkJQW1pbW9uIEx0ZAorMENENjk2ICAgICAoYmFzZSAxNikJCUFtaW1vbiBMdGQKKwkJCQkyIE1hc2tpdCBzdAorCQkJCVBPIEJveCAxMjYxOAorCQkJCUhlcnpsaWEgIDQ2NzMzCisJCQkJSVNSQUVMCisKKzBDLUQ3LUMyICAgKGhleCkJCUF4aXVtIFRlY2hub2xvZ2llcywgSW5jLgorMENEN0MyICAgICAoYmFzZSAxNikJCUF4aXVtIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTY2MjUgTi4gQ2FsbGUgRXZhIE1pcmFuZGEKKwkJCQlTdGUgQgorCQkJCUlyd2luZGFsZSBDQSA5MTcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMEMtREQtRUYgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzBDRERFRiAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU5MAorCQkJCUZJTkxBTkQKKworMEMtRTctMDkgICAoaGV4KQkJRm94IENyeXB0byBCLlYuCiswQ0U3MDkgICAgIChiYXNlIDE2KQkJRm94IENyeXB0byBCLlYuCisJCQkJUC5PLiBib3ggNjM4CisJCQkJRGVsZnQgWkggMjYwMCBBUAorCQkJCU5FVEhFUkxBTkRTCisKKzBDLUU4LTJGICAgKGhleCkJCUJvbmZpZ2xpb2xpIFZlY3Ryb24gR21iSAorMENFODJGICAgICAoYmFzZSAxNikJCUJvbmZpZ2xpb2xpIFZlY3Ryb24gR21iSAorCQkJCUV1cm9wYXJrIEZpY2h0ZW5oYWluIEI2CisJCQkJS3JlZmVsZCBOUlcgNDc4MDcKKwkJCQlHRVJNQU5ZCisKKzBDLUU5LTM2ICAgKGhleCkJCUVMSU1PUyBzcmwKKzBDRTkzNiAgICAgKGJhc2UgMTYpCQlFTElNT1Mgc3JsCisJCQkJdmlhIEdhbHZhbmkgNS9DCisJCQkJVFJJRVNURSAgMzQxMzMKKwkJCQlJVEFMWQorCiswQy1FRS1FNiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCiswQ0VFRTYgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUKKwkJCQlTaGFuZ2hhaSAgMjAxNjEzCisJCQkJQ0hJTkEKKworMEMtRUYtN0MgICAoaGV4KQkJQW5hQ29tIEluYworMENFRjdDICAgICAoYmFzZSAxNikJCUFuYUNvbSBJbmMKKwkJCQkxOTk2IEx1bmR5IEF2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswQy1GMC1CNCAgIChoZXgpCQlHbG9iYWxzYXQgSW50ZXJuYXRpb25hbCBUZWNobm9sb2d5IEx0ZAorMENGMEI0ICAgICAoYmFzZSAxNikJCUdsb2JhbHNhdCBJbnRlcm5hdGlvbmFsIFRlY2hub2xvZ3kgTHRkCisJCQkJMTd0aCBmbG9vcixDaGluYSBZb3VzZSBCdWlsZGluZyxOby42MDEzIFNoZW5uYW4gQXZlbnVlLEZ1dGlhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworMEMtRjMtRUUgICAoaGV4KQkJRU0gTWljcm9lbGVjdHJvbmljCiswQ0YzRUUgICAgIChiYXNlIDE2KQkJRU0gTWljcm9lbGVjdHJvbmljCisJCQkJUnVlIGRlcyBTb3JzIDMKKwkJCQlNYXJpbi1FcGFnaW5lciBOZXVjaHRlbCAyMDc0CisJCQkJU1dJVFpFUkxBTkQKKworMEMtRkMtODMgICAoaGV4KQkJQWlyb2hhIFRlY2hub2xvZ3kgQ29ycC4sCiswQ0ZDODMgICAgIChiYXNlIDE2KQkJQWlyb2hhIFRlY2hub2xvZ3kgQ29ycC4sCisJCQkJNUYsIE5vLjYtNSwgRHVzaGluZyBSb2FkICwgSHNpbmNodSBTY2llbmNlIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzEwLTAwLTAwICAgKGhleCkJCVBSSVZBVEUKKzEwMDAwMCAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMTAtMDAtNUEgICAoaGV4KQkJSUJNIENvcnAKKzEwMDA1QSAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMTAtMDAtRTggICAoaGV4KQkJTkFUSU9OQUwgU0VNSUNPTkRVQ1RPUgorMTAwMEU4ICAgICAoYmFzZSAxNikJCU5BVElPTkFMIFNFTUlDT05EVUNUT1IKKwkJCQkyOTAwIFNFTUlDT05EVUNUT1IgRFJJVkUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMTAtMDktMEMgICAoaGV4KQkJSmFub21lIFNld2luZyBNYWNoaW5lIENvLiwgTHRkLgorMTAwOTBDICAgICAoYmFzZSAxNikJCUphbm9tZSBTZXdpbmcgTWFjaGluZSBDby4sIEx0ZC4KKwkJCQkxNDYzIEhhemFtYS1NYWNoaQorCQkJCUhhY2hpb2ppLVNoaSBUb2t5byAxOTMtMDk0MQorCQkJCUpBUEFOCisKKzEwLTBCLUE5ICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMTAwQkE5ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMTAtMEMtMjQgICAoaGV4KQkJcG9tZGV2aWNlcywgTExDCisxMDBDMjQgICAgIChiYXNlIDE2KQkJcG9tZGV2aWNlcywgTExDCisJCQkJMTc4IENvbHZhcmQgUGFyayBEcgorCQkJCUR1cmhhbSBOQyAyNzcxMworCQkJCVVOSVRFRCBTVEFURVMKKworMTAtMEQtMzIgICAoaGV4KQkJRW1iZWRpYW4sIEluYy4KKzEwMEQzMiAgICAgKGJhc2UgMTYpCQlFbWJlZGlhbiwgSW5jLgorCQkJCTEwRi4sIDk1LCBOYW5qaW5nIEUuIFJkLiBTZWMuIDQsIAorCQkJCVRhaXBlaSAgMTA1ODAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzEwLTBFLTJCICAgKGhleCkJCU5FQyBDQVNJTyBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKzEwMEUyQiAgICAgKGJhc2UgMTYpCQlORUMgQ0FTSU8gTW9iaWxlIENvbW11bmljYXRpb25zCisJCQkJMTc1MyxTaGltb251bWFiZQorCQkJCU5ha2FoYXJhLWt1CisJCQkJS2F3YXNha2ktc2hpIEthbmFnYXdhIDIxMS04NjY2CisJCQkJSkFQQU4KKworMTAtMTAtQjYgICAoaGV4KQkJTWNDYWluIEluYworMTAxMEI2ICAgICAoYmFzZSAxNikJCU1jQ2FpbiBJbmMKKwkJCQkyMzY1IE9hayBSaWRnZSBXYXkKKwkJCQlWaXN0YSBDQSA5MjA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMTAtMTItMTIgICAoaGV4KQkJVml2byBJbnRlcm5hdGlvbmFsIENvcnBvcmF0aW9uIFB0eSBMdGQKKzEwMTIxMiAgICAgKGJhc2UgMTYpCQlWaXZvIEludGVybmF0aW9uYWwgQ29ycG9yYXRpb24gUHR5IEx0ZAorCQkJCTktMTMgQmliYnkgU3RyZWV0LCAKKwkJCQlOU1cgQ2hpc3dpY2sgMjA0NgorCQkJCUFVU1RSQUxJQQorCisxMC0xOC05RSAgIChoZXgpCQlFbG1vIE1vdGlvbiBDb250cm9sCisxMDE4OUUgICAgIChiYXNlIDE2KQkJRWxtbyBNb3Rpb24gQ29udHJvbAorCQkJCTY0IEdpc2luIFN0LgorCQkJCVBldGFjaCBUaWt2YSAgNDkxMDMKKwkJCQlJU1JBRUwKKworMTAtMUQtQzAgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisxMDFEQzAgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzEwLTFGLTc0ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMTAxRjc0ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCisxMC0yRC05NiAgIChoZXgpCQlMb294Y2llIEluYy4KKzEwMkQ5NiAgICAgKGJhc2UgMTYpCQlMb294Y2llIEluYy4KKwkJCQkxMTk2IEJvcnJlZ2FzIEF2ZS4KKwkJCQlTdWl0ZSAyMDAKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLTJFLUFGICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCisxMDJFQUYgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMTAtMzctMTEgICAoaGV4KQkJU2ltbGluayBBUworMTAzNzExICAgICAoYmFzZSAxNikJCVNpbWxpbmsgQVMKKwkJCQlPdHRvIE5pZWxzZW5zIFZlZyAxMgorCQkJCVRyb25kaGVpbSAgTi03MDA0CisJCQkJTk9SV0FZCisKKzEwLTQzLTY5ICAgKGhleCkJCVNvdW5kbWF4IEVsZWN0cm9uaWMgTGltaXRlZCAKKzEwNDM2OSAgICAgKGJhc2UgMTYpCQlTb3VuZG1heCBFbGVjdHJvbmljIExpbWl0ZWQgCisJCQkJUm9vbSMxNTA1LCBPcmllbnRhbCBwbGF6YSwgIzEwNzIgSmlhblNoZSBSb2FkCisJCQkJU0hFTlpIRU4gIEd1YW5nZG9uZyA1MTgwMDEKKwkJCQlDSElOQQorCisxMC00NC01QSAgIChoZXgpCQlTaGFhbnhpIEhpdGVjaCBFbGVjdHJvbmljIENvLiwgTFRECisxMDQ0NUEgICAgIChiYXNlIDE2KQkJU2hhYW54aSBIaXRlY2ggRWxlY3Ryb25pYyBDby4sIExURAorCQkJCTM1IFR1YW5qaWVuYW4gUm9kZSwKKwkJCQlYaWFuIFNoYWFueGkgNzEwMDc1CisJCQkJQ0hJTkEKKworMTAtNDUtQkUgICAoaGV4KQkJTm9ycGhvbmljIEFTCisxMDQ1QkUgICAgIChiYXNlIDE2KQkJTm9ycGhvbmljIEFTCisJCQkJRmFicmlra2dhdGVuIDEwCisJCQkJQmVyZ2VuICA1MDU5CisJCQkJTk9SV0FZCisKKzEwLTQ1LUY4ICAgKGhleCkJCUxOVC1BdXRvbWF0aW9uIEdtYkgKKzEwNDVGOCAgICAgKGJhc2UgMTYpCQlMTlQtQXV0b21hdGlvbiBHbWJICisJCQkJSGFucy1QYXVsLUtheXNzZXItU3RyYXNzZSAxCisJCQkJTGV1dGVuYmFjaC1OZWxsbWVyc2JhY2ggQlcgRC03MTM5NworCQkJCUdFUk1BTlkKKworMTAtNTYtQ0EgICAoaGV4KQkJUGVwbGluayBJbnRlcm5hdGlvbmFsIEx0ZC4KKzEwNTZDQSAgICAgKGJhc2UgMTYpCQlQZXBsaW5rIEludGVybmF0aW9uYWwgTHRkLgorCQkJCTE3L0YsIFBhcmsgQnVpbGRpbmcsCisJCQkJNDc2IENhc3RsZSBQZWFrIFJvYWQsCisJCQkJQ2hldW5nIFNoYSBXYW4gIAorCQkJCUhPTkcgS09ORworCisxMC02Mi1DOSAgIChoZXgpCQlBZGF0aXMgR21iSCAmIENvLiBLRworMTA2MkM5ICAgICAoYmFzZSAxNikJCUFkYXRpcyBHbWJIICYgQ28uIEtHCisJCQkJRm9yY2hoZWltZXIgU3RyLiA2CisJCQkJTmk/b2VybmJlcmcgQmF2YXJpYSA5MDQyNQorCQkJCUdFUk1BTlkKKworMTAtNjQtRTIgICAoaGV4KQkJQURGd2ViLmNvbSBzLnIubC4KKzEwNjRFMiAgICAgKGJhc2UgMTYpCQlBREZ3ZWIuY29tIHMuci5sLgorCQkJCVN0cmFkYSBOdW92YSwgMTcKKwkJCQkuCisJCQkJTWFyZW5vIGRpIFBpYXZlIFRyZXZpc28gMzEwMTAKKwkJCQlJVEFMWQorCisxMC02NS1BMyAgIChoZXgpCQlQYW5hbWF4IEluYy4KKzEwNjVBMyAgICAgKGJhc2UgMTYpCQlQYW5hbWF4IEluYy4KKwkJCQkxNjkwIENvcnBvcmF0ZSBDaXJjbGUKKwkJCQlQZXRhbHVtYSBDQSA5NDk1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMTAtNzYtOEEgICAoaGV4KQkJRW9DZWxsCisxMDc2OEEgICAgIChiYXNlIDE2KQkJRW9DZWxsCisJCQkJMTQ5IEZsb29kbGlnaHRzZmllbGQgU3RyZWV0CisJCQkJU2lsdmVyd2F0ZXIgTlNXIDIxMjgKKwkJCQlBVVNUUkFMSUEKKworMTAtNzgtRDIgICAoaGV4KQkJRUxJVEVHUk9VUCBDT01QVVRFUiBTWVNURU0gQ08uLCBMVEQuCisxMDc4RDIgICAgIChiYXNlIDE2KQkJRUxJVEVHUk9VUCBDT01QVVRFUiBTWVNURU0gQ08uLCBMVEQuCisJCQkJTk8uIDIzOSwgU2VjLiAyLCBUaSBEaW5nIEJsdmQuCisJCQkJVGFpcGVpICAxMTQ5MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMTAtODMtRDIgICAoaGV4KQkJTWljcm9zZXZlbiBTeXN0ZW1zLCBMTEMKKzEwODNEMiAgICAgKGJhc2UgMTYpCQlNaWNyb3NldmVuIFN5c3RlbXMsIExMQworCQkJCTQwNCBTb3V0aCBMZW1vbiBBdmUuLCAjOQorCQkJCVdhbG51dCBDYWxpZm9ybmlhIDkxNzg5CisJCQkJVU5JVEVEIFNUQVRFUworCisxMC04OC0wRiAgIChoZXgpCQlEQVJVTUEgVEVMRUNPTVVOSUNBQ09FUyBFIElORk9STUFUSUNBIFMvQQorMTA4ODBGICAgICAoYmFzZSAxNikJCURBUlVNQSBURUxFQ09NVU5JQ0FDT0VTIEUgSU5GT1JNQVRJQ0EgUy9BCisJCQkJQVZFTklEQSBJTkRFUEVOREVOQ0lBLCAzNTAwLCBMT1RFQU1FTlRPIElORFVTVFJJQUwKKwkJCQlUQVVCQVRFIFNBTyBQQVVMTyAxMjAzMi0wMDAKKwkJCQlCUkFaSUwKKworMTAtOEMtQ0YgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMTA4Q0NGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMTAtOTMtRTkgICAoaGV4KQkJQXBwbGUsIEluYy4KKzEwOTNFOSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMTAtOUEtREQgICAoaGV4KQkJQXBwbGUgSW5jCisxMDlBREQgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCisxMC1BMS0zQiAgIChoZXgpCQlGVUpJS1VSQSBSVUJCRVIgTFRELgorMTBBMTNCICAgICAoYmFzZSAxNikJCUZVSklLVVJBIFJVQkJFUiBMVEQuCisJCQkJMS04NDAsTWloYXNoaSxPbWl5YQorCQkJCVNhaXRhbWEgICAzMzAtMDg1NgorCQkJCUpBUEFOCisKKzEwLUI3LUY2ICAgKGhleCkJCVBsYXN0b2Zvcm0gSW5kdXN0cmllcyBMdGQuCisxMEI3RjYgICAgIChiYXNlIDE2KQkJUGxhc3RvZm9ybSBJbmR1c3RyaWVzIEx0ZC4KKwkJCQlVbml0cyAxNTA2QSAtIDE1MTIsIE1pdGEgQ2VudHJlLAorCQkJCTU1Mi01NjYgQ2FzdGxlIFBlYWsgUm9hZAorCQkJCUt3YWkgQ2h1bmcgIAorCQkJCUhPTkcgS09ORworCisxMC1CQS1BNSAgIChoZXgpCQlHQU5BIEkmQyBDTy4sIExURAorMTBCQUE1ICAgICAoYmFzZSAxNikJCUdBTkEgSSZDIENPLiwgTFRECisJCQkJMTU0LTE3IGt5b3VuZ2RvbmcgQi9EIDNGIGthcmFrLWRvbmcgc29uZ3BhLWd1CisJCQkJU2VvdWwgS29yZWEgMTM4LTE2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisxMC1DNS04NiAgIChoZXgpCQlCSU8gU09VTkQgTEFCIENPLiwgTFRELgorMTBDNTg2ICAgICAoYmFzZSAxNikJCUJJTyBTT1VORCBMQUIgQ08uLCBMVEQuCisJCQkJU3VpdGUgMzExLCAzMTIgU0tuIFRlY2hubyBQYXJrIAorCQkJCUJpeiBDZW50ZXIgMTkwLTEgU2FuZ2RhZXdvbi1kb25nLCBKdW5nd29uLWd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8sIDQ2Mi03MjEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMTAtQzctM0YgICAoaGV4KQkJTWlkYXMgS2xhcmsgVGVrbmlrIEx0ZAorMTBDNzNGICAgICAoYmFzZSAxNikJCU1pZGFzIEtsYXJrIFRla25payBMdGQKKwkJCQlLbGFyayBUZWtuaWsgQnVpbGRpbmcKKwkJCQlXYWx0ZXIgTmFzaCBSb2FkCisJCQkJS2lkZGVybWluc3RlciBXb3JjZXN0ZXJzaGlyZSBEWTExIDdISgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzEwLUNBLTgxICAgKGhleCkJCVBSRUNJQQorMTBDQTgxICAgICAoYmFzZSAxNikJCVBSRUNJQQorCQkJCUxlIHJ1aXNzb2wgVkVZUkFTCisJCQkJQlAgMTA2CisJCQkJUFJJVkFTICAwNzAwMQorCQkJCUZSQU5DRQorCisxMC1DQy1EQiAgIChoZXgpCQlBWElNVU0gUFJPRFVJVFMgRUxFQ1RST05JUVVFUworMTBDQ0RCICAgICAoYmFzZSAxNikJCUFYSU1VTSBQUk9EVUlUUyBFTEVDVFJPTklRVUVTCisJCQkJWkkgREVMVEEgSU5EVVNUUklFCisJCQkJQlAgNzEgTEEgVkFMRU5USU5FCisJCQkJTUFSU0VJTExFIENFREVYIDExICAxMzM2OAorCQkJCUZSQU5DRQorCisxMC1FMi1ENSAgIChoZXgpCQlRaSBIYXJkd2FyZSBJbmMuCisxMEUyRDUgICAgIChiYXNlIDE2KQkJUWkgSGFyZHdhcmUgSW5jLgorCQkJCTU1NSA0VEggU1RSRUVUICM0MDMKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCisxMC1FMy1DNyAgIChoZXgpCQlTZW9od2EgVGVsZWNvbQorMTBFM0M3ICAgICAoYmFzZSAxNikJCVNlb2h3YSBUZWxlY29tCisJCQkJNjc4IFNlb2h3YSBCbGRnCisJCQkJR2FzYW4tRG9uZywgR3VtY2hlb24tR3UgU2VvdWwgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisxMC1FNi1BRSAgIChoZXgpCQlTb3VyY2UgVGVjaG5vbG9naWVzLCBMTEMKKzEwRTZBRSAgICAgKGJhc2UgMTYpCQlTb3VyY2UgVGVjaG5vbG9naWVzLCBMTEMKKwkJCQkyOTEwIFdoaXRlaGFsbCBQYXJrIERyaXZlCisJCQkJQ2hhcmxvdHRlIE5DIDI4MjczCisJCQkJVU5JVEVEIFNUQVRFUworCisxMC1FOC1FRSAgIChoZXgpCQlQaGFzZVNwYWNlCisxMEU4RUUgICAgIChiYXNlIDE2KQkJUGhhc2VTcGFjZQorCQkJCTE5MzMgRGF2aXMgU3QgU3VpdGUgMzEyCisJCQkJU2FuIExlYW5kcm8gQ0EgOTQ1NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzExLTAwLUFBICAgKGhleCkJCVBSSVZBVEUKKzExMDBBQSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMTQtMDctMDggICAoaGV4KQkJUFJJVkFURQorMTQwNzA4ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCisxNC0wNy1FMCAgIChoZXgpCQlBYnJhbnRpeCBBRworMTQwN0UwICAgICAoYmFzZSAxNikJCUFicmFudGl4IEFHCisJCQkJRm9lcnJsaWJ1Y2tzdHJhc3NlIDY2CisJCQkJWnVlcmljaCBaSCA4MDA1CisJCQkJU1dJVFpFUkxBTkQKKworMTQtMTQtNEIgICAoaGV4KQkJRlVKSUFOIFNUQVItTkVUIENPTU1VTklDQVRJT04gQ08uLExURAorMTQxNDRCICAgICAoYmFzZSAxNikJCUZVSklBTiBTVEFSLU5FVCBDT01NVU5JQ0FUSU9OIENPLixMVEQKKwkJCQkxOS0yMiMgQnVpbGRpbmcsU3Rhci1uZXQgU2NpZW5jZSBQbGF6YSxKdXl1YW56aG91LCAKKwkJCQk2MTggSmluc2hhbiBSb2FkCisJCQkJRlVaSE9VIEZVSklBTiAzNTAwMDIKKwkJCQlDSElOQQorCisxNC0xQi1CRCAgIChoZXgpCQlWb2xleCBJbmMuCisxNDFCQkQgICAgIChiYXNlIDE2KQkJVm9sZXggSW5jLgorCQkJCTkxNSBUYXRlIEJsdmQuIFNFCisJCQkJU3VpdGUgMTMwCisJCQkJSGlja29yeSBOQyAyODYwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMTQtMzUtQjMgICAoaGV4KQkJRnV0dXJlIERlc2lnbnMsIEluYy4KKzE0MzVCMyAgICAgKGJhc2UgMTYpCQlGdXR1cmUgRGVzaWducywgSW5jLgorCQkJCTI3MDIgVHJpYW5hIEJsdmQKKwkJCQlIdW50c3ZpbGxlIEFMIDM1ODA1CisJCQkJVU5JVEVEIFNUQVRFUworCisxNC0zRS02MCAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudAorMTQzRTYwICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50CisJCQkJNjAwIE1hcmNoIFJvYWQKKwkJCQlLYW5hdGEgT250YXJpbyBLMksgMkU2CisJCQkJQ0FOQURBCisKKzE0LTRDLTFBICAgKGhleCkJCU1heCBDb21tdW5pY2F0aW9uIEdtYkgKKzE0NEMxQSAgICAgKGJhc2UgMTYpCQlNYXggQ29tbXVuaWNhdGlvbiBHbWJICisJCQkJU2llbWVuc3N0cmFzc2UgNDcKKwkJCQlSZWxsaW5nZW4gIDI1NDYyCisJCQkJR0VSTUFOWQorCisxNC01NC0xMiAgIChoZXgpCQlFbnRpcyBDby4sIEx0ZC4KKzE0NTQxMiAgICAgKGJhc2UgMTYpCQlFbnRpcyBDby4sIEx0ZC4KKwkJCQkyLTIwLTYsIEhhbmFva2EgQmxkZywgNkYKKwkJCQlOaWhvbmJhc2hpIEhhbWFjaG8sIENodW8ta3UKKwkJCQlUb2t5byAgMTAzMDAwNworCQkJCUpBUEFOCisKKzE0LTVBLTA1ICAgKGhleCkJCUFwcGxlLCBJbmMuCisxNDVBMDUgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzE0LTZFLTBBICAgKGhleCkJCVBSSVZBVEUKKzE0NkUwQSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMTQtNzMtNzMgICAoaGV4KQkJVFVCSVRBSyBVRUtBRQorMTQ3MzczICAgICAoYmFzZSAxNikJCVRVQklUQUsgVUVLQUUKKwkJCQlBTklCQUwgU1QuCisJCQkJR0VCWkUKKwkJCQlLT0NBRUxJICA0MTQ3MAorCQkJCVRVUktFWQorCisxNC03NC0xMSAgIChoZXgpCQlSSU0KKzE0NzQxMSAgICAgKGJhc2UgMTYpCQlSSU0KKwkJCQkyOTUgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCAzVzgKKwkJCQlDQU5BREEKKworMTQtN0QtQjMgICAoaGV4KQkJSk9BIFRFTEVDT00uQ08uLExURAorMTQ3REIzICAgICAoYmFzZSAxNikJCUpPQSBURUxFQ09NLkNPLixMVEQKKwkJCQkxMDA3LFNpY294IHRvd2VyLDUxMy0xNCxTYW5nZGFld29uLWRvbmcsSnVuZ3dvbi1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2Mi04MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMTQtQTYtMkMgICAoaGV4KQkJUy5NLiBEZXphYyBTLkEuCisxNEE2MkMgICAgIChiYXNlIDE2KQkJUy5NLiBEZXphYyBTLkEuCisJCQkJVmlhbCBTYW50IGpvcmRpIFMvTgorCQkJCVBvbC4gSW5kLiBDYW4gTWl0amFucworCQkJCVZpbGFkZWNhdmFsbHMgQmFyY2Vsb25hIDA4MjMyCisJCQkJU1BBSU4KKworMTQtQTgtNkIgICAoaGV4KQkJU2hlblpoZW4gVGVsYWNvbSBTY2llbmNlJlRlY2hub2xvZ3kgQ28uLCBMdGQKKzE0QTg2QiAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBUZWxhY29tIFNjaWVuY2UmVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCUIxNzAxLzE3MDUgUGF2aWxpb24sIEh1YSBRaWFuZyBCZWkgUkQ0MDAyLCBGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDI4CisJCQkJQ0hJTkEKKworMTQtQTktRTMgICAoaGV4KQkJTVNUIENPUlBPUkFUSU9OCisxNEE5RTMgICAgIChiYXNlIDE2KQkJTVNUIENPUlBPUkFUSU9OCisJCQkJNHRoIEZsb29yIExhd2ZvcmQgSG91c2UKKwkJCQlBbGJlcnQgUGxhY2UKKwkJCQlMb25kb24gRW5nbGFuZCBOMyAxIFJMCisJCQkJVU5JVEVEIEtJTkdET00KKworMTQtQjctM0QgICAoaGV4KQkJQVJDSEVBTiBUZWNobm9sb2dpZXMKKzE0QjczRCAgICAgKGJhc2UgMTYpCQlBUkNIRUFOIFRlY2hub2xvZ2llcworCQkJCTIwIFBsYWNlIFByYXggUGFyaXMKKwkJCQlNT05UQVVCQU4gIDgyMDAwCisJCQkJRlJBTkNFCisKKzE0LUMyLTFEICAgKGhleCkJCVNhYnRlY2ggSW5kdXN0cmllcworMTRDMjFEICAgICAoYmFzZSAxNikJCVNhYnRlY2ggSW5kdXN0cmllcworCQkJCTIzMjMxIExhIFBhbG1hIEF2ZQorCQkJCVlvcmJhIExpbmRhIENhIDkyODg3LTQ3ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzE0LUQ2LTREICAgKGhleCkJCUQtTGluayBJbnRlcm5hdGlvbmFsCisxNEQ2NEQgICAgIChiYXNlIDE2KQkJRC1MaW5rIEludGVybmF0aW9uYWwKKwkJCQkxIElOVEVSTkFUSU9OQUwgQlVTSU5FU1MgUEFSSworCQkJCSMwMy0xMiwgVEhFIFNZTkVSR1kgCisJCQkJNjA5OTE3CisJCQkJU0lOR0FQT1JFCisKKzE0LUQ3LTZFICAgKGhleCkJCUNPTkNIIEVMRUNUUk9OSUMgQ28uLEx0ZAorMTRENzZFICAgICAoYmFzZSAxNikJCUNPTkNIIEVMRUNUUk9OSUMgQ28uLEx0ZAorCQkJCU5vLjMgS2VqaSAxc3QgTG9hZC4KKwkJCQlUYWluYW4gIDcwOTU1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisxNC1EQS1FOSAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzE0REFFOSAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91LAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisxNC1FQi0zMyAgIChoZXgpCQlCU01lZGlhc29mdCBDby4sIEx0ZC4KKzE0RUIzMyAgICAgKGJhc2UgMTYpCQlCU01lZGlhc29mdCBDby4sIEx0ZC4KKwkJCQkjNjAzLCBHYXJkZW4gQmxkZy4sIDE0LTEzLCBZb2lkby1Eb25nLCBZb3VuZ2RldW5ncG8tR3UKKwkJCQlTZW91bCAgMTUwLTg3MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisxNC1FRS05RCAgIChoZXgpCQlBaXJOYXYgU3lzdGVtcyBMTEMKKzE0RUU5RCAgICAgKGJhc2UgMTYpCQlBaXJOYXYgU3lzdGVtcyBMTEMKKwkJCQk0NjYwIExhIEpvbGxhIFZpbGxhZ2UgRHIuIC0gU3VpdGUgNTAwCisJCQkJU2FuIERpZWdvIENhbGlmb3JuaWEgQ0EgOTIxMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzE0LUYwLUM1ICAgKGhleCkJCVh0cmVtaW8gTHRkLgorMTRGMEM1ICAgICAoYmFzZSAxNikJCVh0cmVtaW8gTHRkLgorCQkJCVBPQiA1MjQ2CisJCQkJSGVyemVseWlhICA0NjE1MgorCQkJCUlTUkFFTAorCisxNC1GRS1BRiAgIChoZXgpCQlTQUdJVFRBUiBMSU1JVEVECisxNEZFQUYgICAgIChiYXNlIDE2KQkJU0FHSVRUQVIgTElNSVRFRAorCQkJCTItMTAyLCBCTEQzNCwgQkFJV0FOR01PTElZVUFOCisJCQkJWElCRUlXQU5HLCBIQUlESUFOCisJCQkJQkVJSklORyAgMTAwMDk0CisJCQkJQ0hJTkEKKworMTQtRkUtQjUgICAoaGV4KQkJRGVsbCBJbmMKKzE0RkVCNSAgICAgKGJhc2UgMTYpCQlEZWxsIEluYworCQkJCU9uZSBEZWxsIFdheSwgTVM6UlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtMDEtRTMgICAoaGV4KQkJRWxla3Ryb2JpdCBXaXJlbGVzcyBDb21tdW5pY2F0aW9ucyBMdGQKKzE4MDFFMyAgICAgKGJhc2UgMTYpCQlFbGVrdHJvYml0IFdpcmVsZXNzIENvbW11bmljYXRpb25zIEx0ZAorCQkJCVR1dGtpamFudGllIDgKKwkJCQlPdWx1ICA5MDU3MAorCQkJCUZJTkxBTkQKKworMTgtMDMtNzMgICAoaGV4KQkJRGVsbCBJbmMKKzE4MDM3MyAgICAgKGJhc2UgMTYpCQlEZWxsIEluYworCQkJCU9uZSBEZWxsIFdheSwgTVM6UlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtMDYtNzUgICAoaGV4KQkJRElMQVggSW50ZWxjb20gR21iSAorMTgwNjc1ICAgICAoYmFzZSAxNikJCURJTEFYIEludGVsY29tIEdtYkgKKwkJCQlBbHQtTW9hYml0IDk2YgorCQkJCUJlcmxpbiAgMTA1NTkKKwkJCQlHRVJNQU5ZCisKKzE4LTBCLTUyICAgKGhleCkJCU5hbm90cm9uIFRlY2hub2xvZ2llcyBHbWJICisxODBCNTIgICAgIChiYXNlIDE2KQkJTmFub3Ryb24gVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlBbHQtTW9hYml0IDYwCisJCQkJQmVybGluICAxMDU1NQorCQkJCUdFUk1BTlkKKworMTgtMEMtNzcgICAoaGV4KQkJV2VzdGluZ2hvdXNlIEVsZWN0cmljIENvbXBhbnksIExMQworMTgwQzc3ICAgICAoYmFzZSAxNikJCVdlc3Rpbmdob3VzZSBFbGVjdHJpYyBDb21wYW55LCBMTEMKKwkJCQkxMDAwIFdlc3Rpbmdob3VzZSBEcml2ZQorCQkJCVN1aXRlIDE1MgorCQkJCUNyYW5iZXJyeSBUb3duc2hpcCBQQSAxNjA2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtMTQtNTYgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzE4MTQ1NiAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1IE91IDkwNTkwCisJCQkJRklOTEFORAorCisxOC0xNy0xNCAgIChoZXgpCQlEQUVXT09JUworMTgxNzE0ICAgICAoYmFzZSAxNikJCURBRVdPT0lTCisJCQkJN0YgTmFta3dhbmcgQ2VudGxleCBCbGRnLiA0NDAtNCBDaGVvbmdjaGVvbjItZG9uZyAKKwkJCQlJbmNoZW9uIFB1cHllb25nLWd1IDgyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzE4LTI4LTYxICAgKGhleCkJCUFpclRpZXMgV2lyZWxlc3MgTmV0d29ya3MKKzE4Mjg2MSAgICAgKGJhc2UgMTYpCQlBaXJUaWVzIFdpcmVsZXNzIE5ldHdvcmtzCisJCQkJR2k/b2VsYmFoYXIgTWFoLiBBdm5pIERpbGxpZ2lsIFNvay4gQ2VsaWsgSXMgTWVya2V6aSBObzo1IE1lY2lkaXlla295CisJCQkJSVNUQU5CVUwgIDM0Mzk0CisJCQkJVFVSS0VZCisKKzE4LTNCLUQyICAgKGhleCkJCUJZRCBQcmVjaXNpb24gTWFudWZhY3R1cmUgQ29tcGFueSBMdGQuCisxODNCRDIgICAgIChiYXNlIDE2KQkJQllEIFByZWNpc2lvbiBNYW51ZmFjdHVyZSBDb21wYW55IEx0ZC4KKwkJCQlObzMwMDAgTG9uZ0RvbmcgQXZlbnVlLCBQdWRvbmcgRGlzdHJpY3QKKwkJCQlTaGFuZ2hhaSAgMjAxMjAzCisJCQkJQ0hJTkEKKworMTgtM0QtQTIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCisxODNEQTIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCisxOC00Mi0yRiAgIChoZXgpCQlBbGNhdGVsIEx1Y2VudAorMTg0MjJGICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTHVjZW50CisJCQkJVmlhIFRyZW50bywgMzAKKwkJCQlWaW1lcmNhdGUgTUIgMjAwNTkKKwkJCQlJVEFMWQorCisxOC00RS05NCAgIChoZXgpCQlNRVNTT0EgVEVDSE5PTE9HSUVTIElOQy4KKzE4NEU5NCAgICAgKGJhc2UgMTYpCQlNRVNTT0EgVEVDSE5PTE9HSUVTIElOQy4KKwkJCQkxMzYxMSAxMnRoIFN0LiwgVW5pdCBCCisJCQkJQ2hpbm8gQ0EgOTE3MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzE4LTgwLUNFICAgKGhleCkJCUJhcmJlcnJ5IFNvbHV0aW9ucyBMdGQKKzE4ODBDRSAgICAgKGJhc2UgMTYpCQlCYXJiZXJyeSBTb2x1dGlvbnMgTHRkCisJCQkJMi8xMyBOYXZpdGkgUGxhY2UKKwkJCQlCcm93bnMgQmF5CisJCQkJQXVja2xhbmQgIDA2MzAKKwkJCQlORVcgWkVBTEFORAorCisxOC04MC1GNSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudCBTaGFuZ2hhaSBCZWxsIENvLiwgTHRkIAorMTg4MEY1ICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50IFNoYW5naGFpIEJlbGwgQ28uLCBMdGQgCisJCQkJTm8uIDM4OSwgTmluZ3FpYW8gUm9hZCwgUHVkb25nIEppbnFpYW8sCisJCQkJU2hhbmdoYWkgIDIwMTIwNgorCQkJCUNISU5BCisKKzE4LTg2LUFDICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCisxODg2QUMgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzE4LThFLUQ1ICAgKGhleCkJCVBoaWxpcHMgSW5ub3ZhdGl2ZSBBcHBsaWNhdGlvbiBOViAKKzE4OEVENSAgICAgKGJhc2UgMTYpCQlQaGlsaXBzIElubm92YXRpdmUgQXBwbGljYXRpb24gTlYgCisJCQkJUGF0aG9la2V3ZWcgMTEKKwkJCQlCcnVnZXMgV2VzdCBGbGFuZGVycyA4MDAwCisJCQkJQkVMR0lVTQorCisxOC05Mi0yQyAgIChoZXgpCQlWaXJ0dWFsIEluc3RydW1lbnRzCisxODkyMkMgICAgIChiYXNlIDE2KQkJVmlydHVhbCBJbnN0cnVtZW50cworCQkJCTEwMCBFbnRlcnByaXNlIFdheQorCQkJCVN1aXRlIEMtMworCQkJCVNjb3R0cyBWYWxsZXkgQ0EgOTUwNjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzE4LUE5LTA1ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMThBOTA1ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCisxOC1BQi1GNSAgIChoZXgpCQlVbHRyYSBFbGVjdHJvbmljcyAtIEVsZWN0cmljcworMThBQkY1ICAgICAoYmFzZSAxNikJCVVsdHJhIEVsZWN0cm9uaWNzIC0gRWxlY3RyaWNzCisJCQkJS2luZ3NkaXRjaCBMYW5lCisJCQkJQ2hlbHRlbmhhbSBHbG91Y2VzdGVyc2hpcmUgR0w1MSA5UEcKKwkJCQlVTklURUQgS0lOR0RPTQorCisxOC1BRS1CQiAgIChoZXgpCQlTaWVtZW5zIFByb2dyYW1tLSB1bmQgU3lzdGVtZW50d2lja2x1bmcgR21iSCZDby5LRworMThBRUJCICAgICAoYmFzZSAxNikJCVNpZW1lbnMgUHJvZ3JhbW0tIHVuZCBTeXN0ZW1lbnR3aWNrbHVuZyBHbWJIJkNvLktHCisJCQkJQ29tbXVuaWNhdGlvbnMsIE1lZGlhIGFuZCBUZWNobm9sb2d5CisJCQkJSGFyYnVyZ2VyIFNjaGxvc3NzdHJhc3NlIDE4CisJCQkJSGFtYnVyZyAgRC0yMTA3OQorCQkJCUdFUk1BTlkKKworMTgtQUYtOUYgICAoaGV4KQkJRElHSVRST05JQyBBdXRvbWF0aW9uc2FubGFnZW4gR21iSAorMThBRjlGICAgICAoYmFzZSAxNikJCURJR0lUUk9OSUMgQXV0b21hdGlvbnNhbmxhZ2VuIEdtYkgKKwkJCQlBdWYgZGVyIExhbmd3aWVzIDEKKwkJCQlXYWxsYmFjaCBIZXNzZW4gNjU1MTAKKwkJCQlHRVJNQU5ZCisKKzE4LUIyLTA5ICAgKGhleCkJCVRvcnJleSBQaW5lcyBMb2dpYywgSW5jCisxOEIyMDkgICAgIChiYXNlIDE2KQkJVG9ycmV5IFBpbmVzIExvZ2ljLCBJbmMKKwkJCQkxMjY1MSBIaWdoIEJsdWZmIERyaXZlLCAjMTAwCisJCQkJU2FuIERpZWdvIENBIDkyMTMwCisJCQkJVU5JVEVEIFNUQVRFUworCisxOC1CMy1CQSAgIChoZXgpCQlOZXRsb2dpYyBBQgorMThCM0JBICAgICAoYmFzZSAxNikJCU5ldGxvZ2ljIEFCCisJCQkJRGF0YXZpP29lZ2VuIDE0QQorCQkJCUFTS0lNIFZpP29lc3RyYSBHaT9vZXRhbGFuZCA0MzYzMgorCQkJCVNXRURFTgorCisxOC1CNC0zMCAgIChoZXgpCQlOZXN0IExhYnMgSW5jLgorMThCNDMwICAgICAoYmFzZSAxNikJCU5lc3QgTGFicyBJbmMuCisJCQkJMjM1IEFsbWEgCisJCQkJUGFsbyBBbHRvIENBIDk0MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCisxOC1CNy05RSAgIChoZXgpCQlJbnZveGlhCisxOEI3OUUgICAgIChiYXNlIDE2KQkJSW52b3hpYQorCQkJCTg3IHJ1ZSBkdSBHb3V2ZXJuZXVyIEdpP29lbmVyYWwgRWJvdWk/b2UKKwkJCQlJc3N5LUxlcy1Nb3VsaW5lYXV4ICA5MjEzMAorCQkJCUZSQU5DRQorCisxOC1DMC04NiAgIChoZXgpCQlCcm9hZGNvbSBDb3Jwb3JhdGlvbgorMThDMDg2ICAgICAoYmFzZSAxNikJCUJyb2FkY29tIENvcnBvcmF0aW9uCisJCQkJNTMwMCBDYWxpZm9ybmlhIEF2ZW51ZQorCQkJCUlydmluZSBDQSA5MjYxNworCQkJCVVOSVRFRCBTVEFURVMKKworMTgtRDAtNzEgICAoaGV4KQkJREFTQU4gU01DLCBJbmMuCisxOEQwNzEgICAgIChiYXNlIDE2KQkJREFTQU4gU01DLCBJbmMuCisJCQkJMzA5LCAgQnVuZGFuZyBUZWNobm8gUGFyaywgMTUxLCBZYXRhcC1kb25nLCBCdW5kYW5nLWd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8gNDYzLTc2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisxOC1FMi04OCAgIChoZXgpCQlTVFQgQ29uZGlnaQorMThFMjg4ICAgICAoYmFzZSAxNikJCVNUVCBDb25kaWdpCisJCQkJQWduZXNmcmlkc3ZhZ2VuIDExMyBBCisJCQkJTWFsbW8gU2thbmUgMjEyMzcKKwkJCQlTV0VERU4KKworMTgtRTctRjQgICAoaGV4KQkJQXBwbGUKKzE4RTdGNCAgICAgKGJhc2UgMTYpCQlBcHBsZQorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtRUYtNjMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMThFRjYzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtRjQtNkEgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorMThGNDZBICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAyMDE2MTMKKwkJCQlDSElOQQorCisxOC1GNi01MCAgIChoZXgpCQlNdWx0aW1lZGlhIFBhY2lmaWMgTGltaXRlZAorMThGNjUwICAgICAoYmFzZSAxNikJCU11bHRpbWVkaWEgUGFjaWZpYyBMaW1pdGVkCisJCQkJMSBNYXRoZXNvbiBTdHJlZXQsIFNoZWxsIFRvd2VyIDI5Ri8xMgorCQkJCVRpbWUgU3F1YXJlLCBDYXVzZXdheSBCYXkKKwkJCQkwMDAwMDAKKwkJCQlIT05HIEtPTkcKKworMTgtRkMtOUYgICAoaGV4KQkJQ2hhbmdoZSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzE4RkM5RiAgICAgKGJhc2UgMTYpCQlDaGFuZ2hlIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTZ0aCBGbG9vciwgQnVpbGRpbmcgQiwgRGFqaWFoYW8gU3F1YXJlLCBZdWk/b2VpP29lYW4gMXN0IFJvYWQsIEJhb2k/b2VpP29lYW4sIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDEKKwkJCQlDSElOQQorCisxQy0wNi01NiAgIChoZXgpCQlJRFkgQ29ycG9yYXRpb24KKzFDMDY1NiAgICAgKGJhc2UgMTYpCQlJRFkgQ29ycG9yYXRpb24KKwkJCQlJREVNSVRTVSBLb3Jha3VlbiBCbGQgOUYKKwkJCQkxLTItMSBLb2lzaGlrYXdhCisJCQkJQnVua3lvLWt1IFRva3lvIDExMi0wMDAyCisJCQkJSkFQQU4KKworMUMtMEYtQ0YgICAoaGV4KQkJU3lwcm8gT3B0aWNzIEdtYkgKKzFDMEZDRiAgICAgKGJhc2UgMTYpCQlTeXBybyBPcHRpY3MgR21iSAorCQkJCUNhcmwtWmVpc3MtUHJvbWVuYWRlIDEwCisJCQkJSmVuYSBUaHVyaW5naWEgMDc3NDUKKwkJCQlHRVJNQU5ZCisKKzFDLTEyLTlEICAgKGhleCkJCUlFRUUgUEVTIFBTUkMvU1VCICAgICAKKzFDMTI5RCAgICAgKGJhc2UgMTYpCQlJRUVFIFBFUyBQU1JDL1NVQiAgICAgCisJCQkJIFdvcmtpbmcgR3JvdXAgSDcvU3ViIEM3IChJRUVFIFBDMzcuMjM4KQorCQkJCTQ0NSBIb2VzIExhbmUKKwkJCQlQaXNjYXRhd2F5IE5KIDA4ODU0CisJCQkJVU5JVEVEIFNUQVRFUworCisxQy0xNC00OCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMUMxNDQ4ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMUMtMTctRDMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMUMxN0QzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMUMtMTgtNEEgICAoaGV4KQkJU2hlblpoZW4gUmljaGVyTGluayBUZWNobm9sb2dpZXMgQ28uLExURAorMUMxODRBICAgICAoYmFzZSAxNikJCVNoZW5aaGVuIFJpY2hlckxpbmsgVGVjaG5vbG9naWVzIENvLixMVEQKKwkJCQk3MDMsQnVpbGRpbmcgVzEtQSxIaWdoLVRlY2ggSW5kdXN0cmlhbCBQYXJrLEtlSmlOYW4gMXN0IFJvYWQsTmFuU2hhbiwKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMUMtMTktREUgICAoaGV4KQkJZXlldmlzIEdtYkgKKzFDMTlERSAgICAgKGJhc2UgMTYpCQlleWV2aXMgR21iSAorCQkJCUh1bmRzc2NobGVlc3RyYXNzZSAyMworCQkJCVJldXRsaW5nZW4gQlcgNzI3NjYKKwkJCQlHRVJNQU5ZCisKKzFDLTFELTY3ICAgKGhleCkJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKzFDMUQ2NyAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworMUMtMzMtNEQgICAoaGV4KQkJSVRTIFRlbGVjb20KKzFDMzM0RCAgICAgKGJhc2UgMTYpCQlJVFMgVGVsZWNvbQorCQkJCTI5IEhhbWV0enVkYSBzdC4gCisJCQkJQXp1ciBJc3JhZWwgNTgwMDAxCisJCQkJSVNSQUVMCisKKzFDLTM1LUYxICAgKGhleCkJCU5FVyBMaWZ0IE5ldWUgRWxla3Ryb25pc2NoZSBXZWdlIFN0ZXVlcnVuZ3NiYXUgR21iSAorMUMzNUYxICAgICAoYmFzZSAxNikJCU5FVyBMaWZ0IE5ldWUgRWxla3Ryb25pc2NoZSBXZWdlIFN0ZXVlcnVuZ3NiYXUgR21iSAorCQkJCUxvY2hoYW1lciBTY2hsYWcgOAorCQkJCUdyYWVmZWxmaW5nIEJhdmFyaWEgODIxNjYKKwkJCQlHRVJNQU5ZCisKKzFDLTNBLTRGICAgKGhleCkJCUFjY3VTcGVjIEVsZWN0cm9uaWNzLCBMTEMKKzFDM0E0RiAgICAgKGJhc2UgMTYpCQlBY2N1U3BlYyBFbGVjdHJvbmljcywgTExDCisJCQkJODE0MCBIYXd0aG9ybmUgRHJpdmUKKwkJCQlFcmllIFBlbm5zeWx2YW5pYSAxNjUwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMUMtM0QtRTcgICAoaGV4KQkJU2lnbWEgS29raSBDby4sTHRkLgorMUMzREU3ICAgICAoYmFzZSAxNikJCVNpZ21hIEtva2kgQ28uLEx0ZC4KKwkJCQkxLTE5LTkgTWlkb3JpCisJCQkJU3VtaWRhLWt1IFRva3lvIDEzMC0wMDIxCisJCQkJSkFQQU4KKworMUMtNEItRDYgICAoaGV4KQkJQXp1cmVXYXZlCisxQzRCRDYgICAgIChiYXNlIDE2KQkJQXp1cmVXYXZlCisJCQkJOEYuLCBOby4gOTQsIEJhb3Nob25nIFJkLgorCQkJCVhpbmRpYW4gQ2l0eSwgVGFpcGVpIENvdW50eSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisxQy02NS05RCAgIChoZXgpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMUM2NTlEICAgICAoYmFzZSAxNikJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYsOTAsQ2hpZW4gMSBSb2FkLENodW5nSG8sVGFpcGVpIEhzaWVuLAorCQkJCVRhaXBlaSAgMjM1ODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzFDLTZGLTY1ICAgKGhleCkJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCisxQzZGNjUgICAgIChiYXNlIDE2KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQlQaW4tSmVuIENpdHksCisJCQkJUGluLUplbiBUYW95dWFuIDMyNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMUMtNzUtMDggICAoaGV4KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIExURC4gCisxQzc1MDggICAgIChiYXNlIDE2KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIExURC4gCisJCQkJTk8uIDI1LCBUSEUgM1JEIFN0cmVldCBLVU5TSEFOIEVYUE9SVCBQUk9DRVNTSU5HIFpPTkUgCisJCQkJS1VOU0hBTiBTVVpIT1UgIDIxNTMwMCAKKwkJCQlDSElOQQorCisxQy03Qy0xMSAgIChoZXgpCQlFSUQgCisxQzdDMTEgICAgIChiYXNlIDE2KQkJRUlEIAorCQkJCVJ1YSBRdWludGEgZG9zIE1lZHJvbmhlaXJvcyAKKwkJCQlDaGFybmVjYSBkYSBDYXBhcmljYSAgIDI4MjAtNDg2CisJCQkJUE9SVFVHQUwKKworMUMtN0UtRTUgICAoaGV4KQkJRC1MaW5rIEludGVybmF0aW9uYWwKKzFDN0VFNSAgICAgKGJhc2UgMTYpCQlELUxpbmsgSW50ZXJuYXRpb25hbAorCQkJCTEgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBQYXJrLCAjMDMtMTIsIFRoZSBTeW5lcmd5IAorCQkJCTYwOTkxNworCQkJCVNJTkdBUE9SRQorCisxQy04My1CMCAgIChoZXgpCQlMaW5rZWQgSVAgR21iSAorMUM4M0IwICAgICAoYmFzZSAxNikJCUxpbmtlZCBJUCBHbWJICisJCQkJS2lyY2hlbnN0cmFzc2UgOQorCQkJCUFuaWYgLyBOaWVkZXJhbG0gU0JHIDUwODEKKwkJCQlBVVNUUklBCisKKzFDLThGLThBICAgKGhleCkJCVBoYXNlIE1vdGlvbiBDb250cm9sIFNwQQorMUM4RjhBICAgICAoYmFzZSAxNikJCVBoYXNlIE1vdGlvbiBDb250cm9sIFNwQQorCQkJCXZpYSBBZGFtb2xpLCA0NjEKKwkJCQlHZW5vdmEgIElUMTYxNDEKKwkJCQlJVEFMWQorCisxQy05NS01RCAgIChoZXgpCQlJLUxBWCBFTEVDVFJPTklDUyBJTkMuCisxQzk1NUQgICAgIChiYXNlIDE2KQkJSS1MQVggRUxFQ1RST05JQ1MgSU5DLgorCQkJCTIyODMgQVJHRU5USUEgUkQuLSBVTklUICMgMTAKKwkJCQlNSVNTSVNTQVVHQSBPTi4gTDVOIDVaMgorCQkJCUNBTkFEQQorCisxQy1BQS0wNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCisxQ0FBMDcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCisxQy1BRi1GNyAgIChoZXgpCQlELUxJTksgSU5URVJOQVRJT05BTCBQVEUgTElNSVRFRAorMUNBRkY3ICAgICAoYmFzZSAxNikJCUQtTElOSyBJTlRFUk5BVElPTkFMIFBURSBMSU1JVEVECisJCQkJMSBJTlRFUk5BVElPTkFMICBCVVNJTkVTUyAgUEFSSywKKwkJCQkgIzAzLTEyLCBUSEUgU1lORVJHWQorCQkJCTYwOTkxNworCQkJCVNJTkdBUE9SRQorCisxQy1CRC0wRSAgIChoZXgpCQlBbXBsaWZpZWQgRW5naW5lZXJpbmcgUHR5IEx0ZAorMUNCRDBFICAgICAoYmFzZSAxNikJCUFtcGxpZmllZCBFbmdpbmVlcmluZyBQdHkgTHRkCisJCQkJNSBUdXJuZXIgQXZlbnVlCisJCQkJQmVudGxleSBXQSA2MTAyCisJCQkJQVVTVFJBTElBCisKKzFDLUJELUI5ICAgKGhleCkJCUQtTElOSyBJTlRFUk5BVElPTkFMIFBURSBMSU1JVEVECisxQ0JEQjkgICAgIChiYXNlIDE2KQkJRC1MSU5LIElOVEVSTkFUSU9OQUwgUFRFIExJTUlURUQKKwkJCQkxIElOVEVSTkFUSU9OQUwgIEJVU0lORVNTICBQQVJLLCAjMDMtMTIKKwkJCQlUSEUgU1lORVJHWSwgIDYwOTkxNworCQkJCVNJTkdBUE9SRQorCisxQy1DMS1ERSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzFDQzFERSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMUMtREYtMEYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMUNERjBGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMUMtRTItQ0MgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzFDRTJDQyAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMUMtRjAtNjEgICAoaGV4KQkJU0NBUFMgR21iSAorMUNGMDYxICAgICAoYmFzZSAxNikJCVNDQVBTIEdtYkgKKwkJCQlCYWhuaG9mc3RyLiAxNworCQkJCURlaXNlbmhvZmVuIEJhdmFyaWEgODIwNDEKKwkJCQlHRVJNQU5ZCisKKzFDLUY1LUU3ICAgKGhleCkJCVR1cnRsZSBJbmR1c3RyeSBDby4sIEx0ZC4KKzFDRjVFNyAgICAgKGJhc2UgMTYpCQlUdXJ0bGUgSW5kdXN0cnkgQ28uLCBMdGQuCisJCQkJMS0xMi00IE5pc2hpbmVtaW5hbWkKKwkJCQlUc3V0aXVyYSBJYmFyYWtpIDMwMC0wODQyCisJCQkJSkFQQU4KKworMUMtRkUtQTcgICAoaGV4KQkJSURlbnR5dGVjaCBTb2x1dGlucyBMdGQuCisxQ0ZFQTcgICAgIChiYXNlIDE2KQkJSURlbnR5dGVjaCBTb2x1dGlucyBMdGQuCisJCQkJMTQgSGFkYXlhIFN0cmVldCAKKwkJCQlSYW1hdC0gSGFzaGFyb24gIDQ3MjI2CisJCQkJSVNSQUVMCisKKzIwLTA1LUU4ICAgKGhleCkJCU9PTyAiSW5Qcm9NZWRpYSIKKzIwMDVFOCAgICAgKGJhc2UgMTYpCQlPT08gIkluUHJvTWVkaWEiCisJCQkJcHIuNDgwNiwgZC42CisJCQkJWmVsZW5vZ3JhZCBNb3Njb3cgMTI0NDY2CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzIwLTBBLTVFICAgKGhleCkJCVhpYW5nc2hhbiBHaWFudCBFYWdsZSBUZWNobm9sb2d5IERldmVsb3BpbmcgY28uLExURAorMjAwQTVFICAgICAoYmFzZSAxNikJCVhpYW5nc2hhbiBHaWFudCBFYWdsZSBUZWNobm9sb2d5IERldmVsb3BpbmcgY28uLExURAorCQkJCUp1ZXhpIFJvYWQgbm8uOSBKdWV4aSBzdHJlZXQgCisJCQkJWGlhbmdzaGFuIENvdW50eSBaaGVqaWFuZyBQcm92aW5jZQorCQkJCU5pbmdibyBaaGVqaWFuZyAzMTU3MDgKKwkJCQlDSElOQQorCisyMC0xMi01NyAgIChoZXgpCQlNb3N0IEx1Y2t5IFRyYWRpbmcgTHRkCisyMDEyNTcgICAgIChiYXNlIDE2KQkJTW9zdCBMdWNreSBUcmFkaW5nIEx0ZAorCQkJCVJvb200MDMgTm8uNTA2IFpob25nc2hhbiBTb3V0aCAybmQgUm9hZCxYdWh1aSBEaXN0cmljdCAKKwkJCQlTaGFuZ2hhaSAgMjAwMDMyCisJCQkJQ0hJTkEKKworMjAtMTMtRTAgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisyMDEzRTAgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzIwLTIxLUE1ICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzIEluYworMjAyMUE1ICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzIEluYworCQkJCTYwLTM5LEdhc2FuLWRvbmcsR3VtY2hlb24tZ3UKKwkJCQlTZW91bCAgMTUzLTAyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisyMC0yQi1DMSAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisyMDJCQzEgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxMDEwOAorCQkJCUNISU5BCisKKzIwLTJDLUI3ICAgKGhleCkJCUtvbmcgWXVlIEVsZWN0cm9uaWNzICYgSW5mb3JtYXRpb24gSW5kdXN0cnkgKFhpbmh1aSkgTHRkLgorMjAyQ0I3ICAgICAoYmFzZSAxNikJCUtvbmcgWXVlIEVsZWN0cm9uaWNzICYgSW5mb3JtYXRpb24gSW5kdXN0cnkgKFhpbmh1aSkgTHRkLgorCQkJCUtvbmcgWXVlIEluZHVzdHJpYWwgUGFyaywgMTggS29uZ3l1ZSBSb2FkLCBKaW5ndXpob3UKKwkJCQlYaW5odWkgRGlzdHJpY3QsIAorCQkJCUppYW5nbWVuIEd1YW5nZG9uZyA1MjkxNDEKKwkJCQlDSElOQQorCisyMC0zNy0wNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCisyMDM3MDYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMjAtNDAtMDUgICAoaGV4KQkJZmVubyBHbWJICisyMDQwMDUgICAgIChiYXNlIDE2KQkJZmVubyBHbWJICisJCQkJS29scGluZ3JpbmcgMjIKKwkJCQlPYmVyaGFjaGluZyBCYXZhcmlhIDgyMDQxCisJCQkJR0VSTUFOWQorCisyMC00MS01QSAgIChoZXgpCQlTbWFydGVoIGQuby5vLgorMjA0MTVBICAgICAoYmFzZSAxNikJCVNtYXJ0ZWggZC5vLm8uCisJCQkJVHJnIHRpZ3JvdmNldiAxCisJCQkJVG9sbWluICA1MjIwCisJCQkJU0xPVkVOSUEKKworMjAtNDYtRjkgICAoaGV4KQkJQWR2YW5jZWQgTmV0d29yayBEZXZpY2VzIChkYmE6QU5EKQorMjA0NkY5ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIE5ldHdvcmsgRGV2aWNlcyAoZGJhOkFORCkKKwkJCQkzODIwIFZlbnR1cmEgRHJpdmUKKwkJCQlBcmxpbmd0b24gSGVpZ2h0cyBJTCA2MDAwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMjAtNEEtQUEgICAoaGV4KQkJSGFuc2NhbiBTcGFpbiBTLkEuCisyMDRBQUEgICAgIChiYXNlIDE2KQkJSGFuc2NhbiBTcGFpbiBTLkEuCisJCQkJQXZkYS4gZGUgbGEgVmVnYSwgMQorCQkJCUFsY29iZW5kYXMgTWFkcmlkIDI4MTA4CisJCQkJU1BBSU4KKworMjAtNEUtNkIgICAoaGV4KQkJQXh4YW5hKGlzcmFlbCkgbHRkCisyMDRFNkIgICAgIChiYXNlIDE2KQkJQXh4YW5hKGlzcmFlbCkgbHRkCisJCQkJSGFiYXJ6ZWwgMzgKKwkJCQlUZWwgYXZpdiAgNjk3MTAKKwkJCQlJU1JBRUwKKworMjAtNEUtN0YgICAoaGV4KQkJTkVUR0VBUgorMjA0RTdGICAgICAoYmFzZSAxNikJCU5FVEdFQVIKKwkJCQkzNTAgRUFTVCBQTFVNRVJJQSBEUklWRQorCQkJCVNBTiBKT1NFIENBTElGT1JOSUEgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzIwLTU5LUEwICAgKGhleCkJCVBhcmFnb24gVGVjaG5vbG9naWVzIEluYy4KKzIwNTlBMCAgICAgKGJhc2UgMTYpCQlQYXJhZ29uIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNjggTm9ydGggNHRoIFJpbmcgUmQgV2VzdCwKKwkJCQlTdWl0ZSAxNUItSAorCQkJCUJlaWppbmcgIDEwMDA4MAorCQkJCUNISU5BCisKKzIwLTVCLTJBICAgKGhleCkJCVBSSVZBVEUKKzIwNUIyQSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMjAtNkEtOEEgICAoaGV4KQkJV2lzdHJvbiBJbmZvQ29tbSBNYW51ZmFjdHVyaW5nKEt1bnNoYW4pQ28uLEx0ZC4KKzIwNkE4QSAgICAgKGJhc2UgMTYpCQlXaXN0cm9uIEluZm9Db21tIE1hbnVmYWN0dXJpbmcoS3Vuc2hhbilDby4sTHRkLgorCQkJCTE2OCMgRmlyc3QgQXZlbnVlLEt1bnNoYW4gRXhwb3J0IFByb2Nlc3NpbmcgWm9uZQorCQkJCUt1bnNoYW4gSmlhbmdzdSAyMTUzMDAKKwkJCQlDSElOQQorCisyMC02QS1GRiAgIChoZXgpCQlBdGxhcyBFbGVrdHJvbmlrIFVLIExpbWl0ZWQKKzIwNkFGRiAgICAgKGJhc2UgMTYpCQlBdGxhcyBFbGVrdHJvbmlrIFVLIExpbWl0ZWQKKwkJCQlBMjIgQnVsaWRpbmcsIERvcnNldCBHcmVlbiBUZWNoLiBQYXJrCisJCQkJV2luZnJpdGggTmV3YnVyZ2gKKwkJCQlEb3JjaGVzdGVyIERvcnNldCBEVDIgOFpCCisJCQkJVU5JVEVEIEtJTkdET00KKworMjAtNkYtRUMgICAoaGV4KQkJQnJhZW1hYyBDQSBMTEMKKzIwNkZFQyAgICAgKGJhc2UgMTYpCQlCcmFlbWFjIENBIExMQworCQkJCTQzMTM0IE9zZ29vZCBSb2FkCisJCQkJRnJlbW9udCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMjAtN0MtOEYgICAoaGV4KQkJUXVhbnRhIE1pY3Jvc3lzdGVtcyxJbmMuCisyMDdDOEYgICAgIChiYXNlIDE2KQkJUXVhbnRhIE1pY3Jvc3lzdGVtcyxJbmMuCisJCQkJTm8uNSBMYW5lIDkxLERvbmdtZWkgUmQuCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisyMC1BMi1FNyAgIChoZXgpCQlMZWUtRGlja2VucyBMdGQKKzIwQTJFNyAgICAgKGJhc2UgMTYpCQlMZWUtRGlja2VucyBMdGQKKwkJCQlSdXNodG9uIFJkCisJCQkJRGVzYm9yb3VnaAorCQkJCUtldHRlcmluZyBOb3J0aGFtcHRvbnNoaXJlIE5OMTQgMlFXCisJCQkJVU5JVEVEIEtJTkdET00KKworMjAtQUEtMjUgICAoaGV4KQkJSVAtTkVUIExMQworMjBBQTI1ICAgICAoYmFzZSAxNikJCUlQLU5FVCBMTEMKKwkJCQkxMDI1NiBOLlcuIDQ3dGggU3QuCisJCQkJU3VucmlzZSBGTCAzMzM1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMjAtQjAtRjcgICAoaGV4KQkJRW5jbHVzdHJhIEdtYkgKKzIwQjBGNyAgICAgKGJhc2UgMTYpCQlFbmNsdXN0cmEgR21iSAorCQkJCVRlY2hub3BhcmtzdHJhc3NlIDEKKwkJCQladXJpY2ggWkggQ0gtODAwNQorCQkJCVNXSVRaRVJMQU5ECisKKzIwLUIzLTk5ICAgKGhleCkJCUVudGVyYXN5cworMjBCMzk5ICAgICAoYmFzZSAxNikJCUVudGVyYXN5cworCQkJCTUwIE1pbnV0ZW1hbiBSZAorCQkJCUFuZG92ZXIgTUEgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzIwLUI3LUMwICAgKGhleCkJCU9taWNyb24gZWxlY3Ryb25pY3MgR21iSAorMjBCN0MwICAgICAoYmFzZSAxNikJCU9taWNyb24gZWxlY3Ryb25pY3MgR21iSAorCQkJCU9iZXJlcyBSaWVkIDEKKwkJCQlLbGF1cyAgNjgzMworCQkJCUFVU1RSSUEKKworMjAtQkYtREIgICAoaGV4KQkJRFZMCisyMEJGREIgICAgIChiYXNlIDE2KQkJRFZMCisJCQkJMjEgR3JhZGluaWxvciBTdHIKKwkJCQlDaGlzaW5hdSAgTUQyMDAxCisJCQkJTU9MRE9WQSwgUkVQVUJMSUMgT0YKKworMjAtQ0YtMzAgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisyMENGMzAgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdSwgCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzIwLUQ1LUFCICAgKGhleCkJCUtvcmVhIEluZm9jb20gQ28uLEx0ZC4KKzIwRDVBQiAgICAgKGJhc2UgMTYpCQlLb3JlYSBJbmZvY29tIENvLixMdGQuCisJCQkJNUYgV2ludGVrIEIvRCA1MTEKKwkJCQlQb2lsLWRvbmcKKwkJCQlVaXdhbmcgS3l1bmdnaS1EbyA0MzctODMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzIwLUQ2LTA3ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCisyMEQ2MDcgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSBPdSA5MDU5MAorCQkJCUZJTkxBTkQKKworMjAtRDktMDYgICAoaGV4KQkJSW90YSwgSW5jLgorMjBEOTA2ICAgICAoYmFzZSAxNikJCUlvdGEsIEluYy4KKwkJCQkyMjEyIFF1ZWVuIEFubmUgQXZlLiBOLiwgIzM0OAorCQkJCVNlYXR0bGUgV0EgOTgxMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzIwLUZELUYxICAgKGhleCkJCTNDT00gRVVST1BFIExURAorMjBGREYxICAgICAoYmFzZSAxNikJCTNDT00gRVVST1BFIExURAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSGVydGZvcmRzaGlyZSBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMjAtRkUtQ0QgICAoaGV4KQkJU3lzdGVtIEluIEZyb250aWVyIEluYy4KKzIwRkVDRCAgICAgKGJhc2UgMTYpCQlTeXN0ZW0gSW4gRnJvbnRpZXIgSW5jLgorCQkJCTRGIFNoaW5zdXp1aGFydSBCbGRnLiAyLTgtMyBBa2Vib25vY3lvCisJCQkJVGFjaGlrYXdhLXNoaSBUb2t5byAxOTAtMDAxMgorCQkJCUpBUEFOCisKKzIwLUZFLURCICAgKGhleCkJCU0yTSBTb2x1dGlvbiBTLkEuUy4KKzIwRkVEQiAgICAgKGJhc2UgMTYpCQlNMk0gU29sdXRpb24gUy5BLlMuCisJCQkJQ2VudHJlIGQnQWZmYWlyZXMgUmVndXMgQmF0LkQKKwkJCQk0NSBBbGxlZSBkZXMgT3JtZXMKKwkJCQlNb3VnaW5zICAgMDYyNTQgCisJCQkJRlJBTkNFCisKKzI0LTBCLTJBICAgKGhleCkJCVZpZXR0ZWwgR3JvdXAKKzI0MEIyQSAgICAgKGJhc2UgMTYpCQlWaWV0dGVsIEdyb3VwCisJCQkJQ2VudGVyIGZvciBSZXNlYXJjaCBhbmQgRGV2ZWxvcG1lbnQKKwkJCQkwMSBHaWFuZyBWYW4gTWluaCwgQmEgRGluaAorCQkJCUhhbm9pICAxMTExCisJCQkJVklFVE5BTQorCisyNC0xQS04QyAgIChoZXgpCQlTcXVhcmVoZWFkIFRlY2hub2xvZ3kgQVMKKzI0MUE4QyAgICAgKGJhc2UgMTYpCQlTcXVhcmVoZWFkIFRlY2hub2xvZ3kgQVMKKwkJCQlQTyBCb3ggMTMgTnlkYWxlbgorCQkJCU9zbG8gIE5PLTA0MTAKKwkJCQlOT1JXQVkKKworMjQtMUYtMkMgICAoaGV4KQkJQ2Fsc3lzLCBJbmMuCisyNDFGMkMgICAgIChiYXNlIDE2KQkJQ2Fsc3lzLCBJbmMuCisJCQkJMjcwMCBBdWd1c3RpbmUgZHJpdmUsIFN0ZTE0NQorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LTIxLUFCICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCisyNDIxQUIgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCAgMjIxODgKKwkJCQlTV0VERU4KKworMjQtM0MtMjAgICAoaGV4KQkJRHluYW1vZGUgR3JvdXAKKzI0M0MyMCAgICAgKGJhc2UgMTYpCQlEeW5hbW9kZSBHcm91cAorCQkJCUhlYWQgT2ZmaWNlLCAxMzJhIFN0IEFsYmFucyBSb2FkCisJCQkJV2F0Zm9yZCBIZXJ0cyBXRDI0IDRBRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzI0LTQ1LTk3ICAgKGhleCkJCUdFTVVFIEdlYnIuIE11ZWxsZXIgQXBwYXJhdGViYXUKKzI0NDU5NyAgICAgKGJhc2UgMTYpCQlHRU1VRSBHZWJyLiBNdWVsbGVyIEFwcGFyYXRlYmF1CisJCQkJRnJpdHotTXVlbGxlci1TdHJhc3NlIDYtOAorCQkJCUluZ2VsZmluZ2VuIENyaWVzYmFjaCAgNzQ2NTMKKwkJCQlHRVJNQU5ZCisKKzI0LTQ3LTBFICAgKGhleCkJCVBlbnRyb25pY0FCCisyNDQ3MEUgICAgIChiYXNlIDE2KQkJUGVudHJvbmljQUIKKwkJCQlCZXJnc2xpZGVuIDEKKwkJCQlHVU5ORUJPICA1OTA5MworCQkJCVNXRURFTgorCisyNC00OS03QiAgIChoZXgpCQlJbm5vdmF0aXZlIENvbnZlcmdlZCBEZXZpY2VzIEluYworMjQ0OTdCICAgICAoYmFzZSAxNikJCUlubm92YXRpdmUgQ29udmVyZ2VkIERldmljZXMgSW5jCisJCQkJNDI0IDh0aCBBdmVudWUgTm9ydGgKKwkJCQlTZWF0dGxlIFdBIDk4MTA5CisJCQkJVU5JVEVEIFNUQVRFUworCisyNC03Ny0wMyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzI0NzcwMyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzI0LTgyLThBICAgKGhleCkJCVByb3dhdmUgVGVjaG5vbG9naWVzIEx0ZC4KKzI0ODI4QSAgICAgKGJhc2UgMTYpCQlQcm93YXZlIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJMkYsTm8uODc5LTE2LFpob25namlhbmcgUm9hZAorCQkJCVNoYW5naGFpICAyMDAzMzMKKwkJCQlDSElOQQorCisyNC05NC00MiAgIChoZXgpCQlPUEVOIFJPQUQgU09MVVRJT05TICwgSU5DLgorMjQ5NDQyICAgICAoYmFzZSAxNikJCU9QRU4gUk9BRCBTT0xVVElPTlMgLCBJTkMuCisJCQkJODgtMTMgU0hVSUxJICBST0FECisJCQkJSFNJTkNIVSAgMzAwNTkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzI0LUE0LTJDICAgKGhleCkJCUtPVUtBQU0gYS5zLgorMjRBNDJDICAgICAoYmFzZSAxNikJCUtPVUtBQU0gYS5zLgorCQkJCVUgdmlubnljaCBza2xlcHUgNworCQkJCVByYWd1ZSAgMTkwIDAwCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMjQtQTktMzcgICAoaGV4KQkJUFVSRSBTdG9yYWdlCisyNEE5MzcgICAgIChiYXNlIDE2KQkJUFVSRSBTdG9yYWdlCisJCQkJNjUwIENhc3RybyBTdHJlZXQKKwkJCQkyMjAKKwkJCQlNdC4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMjQtQUItODEgICAoaGV4KQkJQXBwbGUsIEluYy4KKzI0QUI4MSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMjQtQUYtNEEgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQtSVBECisyNEFGNEEgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQtSVBECisJCQkJNzc3IE1pZGRsZWZpZWxkIFJkLgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LUFGLTU0ICAgKGhleCkJCU5FWEdFTiBNZWRpYXRlY2ggSW5jLgorMjRBRjU0ICAgICAoYmFzZSAxNikJCU5FWEdFTiBNZWRpYXRlY2ggSW5jLgorCQkJCThGIE5vLiAxNTAsIEppYW55aSBSZC4sIAorCQkJCUNodW5nIEhvIFRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzI0LUI2LUI4ICAgKGhleCkJCUZSSUVNIFNQQQorMjRCNkI4ICAgICAoYmFzZSAxNikJCUZSSUVNIFNQQQorCQkJCVZpYSBFZGlzb24gMQorCQkJCVNlZ3JhdGUgTWlsYW5vIDIwMDkwCisJCQkJSVRBTFkKKworMjQtQjgtRDIgICAoaGV4KQkJT3B6b29uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzI0QjhEMiAgICAgKGJhc2UgMTYpCQlPcHpvb24gVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTExdGggZmxvb3IsIFRvd2VyIEJpP29laT9vZVlpbnRhaSBDZW50ZXIgMiBKaWFuZ3VvbWVud2FpIFN0LC4KKwkJCQlCZWlqaW5nIEFzaWEgMTAwMDIyCisJCQkJQ0hJTkEKKworMjQtQkEtMzAgICAoaGV4KQkJVGVjaG5pY2FsIENvbnN1bWVyIFByb2R1Y3RzLCBJbmMuCisyNEJBMzAgICAgIChiYXNlIDE2KQkJVGVjaG5pY2FsIENvbnN1bWVyIFByb2R1Y3RzLCBJbmMuCisJCQkJMzI1IENhbXB1cyBEcml2ZQorCQkJCUF1cm9yYSBPSCA0NDIwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMjQtQkYtNzQgICAoaGV4KQkJUFJJVkFURQorMjRCRjc0ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCisyNC1DOC02RSAgIChoZXgpCQlDaGFuZXkgSW5zdHJ1bWVudCBDby4KKzI0Qzg2RSAgICAgKGJhc2UgMTYpCQlDaGFuZXkgSW5zdHJ1bWVudCBDby4KKwkJCQk5NjUgV2VsbHMgU3RyZWV0CisJCQkJTGFrZSBHZW5ldmEgV0kgNTMxNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LUM5LURFICAgKGhleCkJCUdlbm9yYXkKKzI0QzlERSAgICAgKGJhc2UgMTYpCQlHZW5vcmF5CisJCQkJIzgxMiBCeXVja3NhbiBUZWNobm9waWEgNDM0LTYgU2FuZ2RhZXdvbiAxLURvbmcKKwkJCQlKdW5nd29uLUd1CisJCQkJU2VvbmduYW0tQ2l0eSBHeWVvbmdnaS1EbyA0NjItNzE2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzI0LUNCLUU3ICAgKGhleCkJCU1ZSywgSW5jLgorMjRDQkU3ICAgICAoYmFzZSAxNikJCU1ZSywgSW5jLgorCQkJCTQtNjAtMzAtMTA4LCBLYW1vaSwgCisJCQkJTWlkb3JpLWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjI2LTAwMDMKKwkJCQlKQVBBTgorCisyNC1DRi0yMSAgIChoZXgpCQlTaGVuemhlbiBTdGF0ZSBNaWNybyBUZWNobm9sb2d5IENvLiwgTHRkCisyNENGMjEgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gU3RhdGUgTWljcm8gVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCVNTTUVDIEJ1aWxkaW5nMi9GLCBHYW8gWGluIE5hbiBGaXJzdCBBdmVudWUsIEhpLVRlY2ggUGFyayBTb3V0aCwgTmFuc2hhbgorCQkJCVNoZW56aGVuIENpdHkgR3Vhbmdkb25nIFByb3ZpbmNlIDUxODA1NworCQkJCUNISU5BCisKKzI0LUQyLUNDICAgKGhleCkJCVNtYXJ0RHJpdmUgU3lzdGVtcyBJbmMuCisyNEQyQ0MgICAgIChiYXNlIDE2KQkJU21hcnREcml2ZSBTeXN0ZW1zIEluYy4KKwkJCQk5Mjc2IFNjcmFudG9uIFJvYWQKKwkJCQlTdWl0ZSA1MDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LURCLUFDICAgKGhleCkJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKzI0REJBQyAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTEwMTA4CisJCQkJQ0hJTkEKKworMjQtREItQUQgICAoaGV4KQkJU2hvcHBlclRyYWsgUkNUIENvcnBvcmF0aW9uCisyNERCQUQgICAgIChiYXNlIDE2KQkJU2hvcHBlclRyYWsgUkNUIENvcnBvcmF0aW9uCisJCQkJMjAwIFcuIE1vbnJvZSBTdHJlZXQKKwkJCQlTdWl0ZSAxMTAwCisJCQkJQ2hpY2FnbyBJTCA2MDYwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMjQtRjAtRkYgICAoaGV4KQkJR0hUIENvLiwgTHRkLgorMjRGMEZGICAgICAoYmFzZSAxNikJCUdIVCBDby4sIEx0ZC4KKwkJCQkjMTYgTmFueXVueWkgTHUsIEd1YW5nemhvdSBTY2llbmNlIENpdHkKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDY2MworCQkJCUNISU5BCisKKzI4LTA2LTFFICAgKGhleCkJCU5JTkdCTyBHTE9CQUwgVVNFRlVMIEVMRUNUUklDIENPLixMVEQKKzI4MDYxRSAgICAgKGJhc2UgMTYpCQlOSU5HQk8gR0xPQkFMIFVTRUZVTCBFTEVDVFJJQyBDTy4sTFRECisJCQkJTm8uODgsS2VjaHVhbmcgU291dGggUm9hZCwKKwkJCQlXYW5nY2h1biBJbmR1c3RyeSBab25lCisJCQkJTmluZ2JvIFpoZWppYW5nIDMxNTAwMAorCQkJCUNISU5BCisKKzI4LTA2LThEICAgKGhleCkJCUlUTCwgTExDCisyODA2OEQgICAgIChiYXNlIDE2KQkJSVRMLCBMTEMKKwkJCQlQLk8uIEJveCA0MTg3NQorCQkJCU5hc2h2aWxsZSBUTiAzNzIwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtMTQtNzEgICAoaGV4KQkJTGFudGlzIGNvLiwgTFRELgorMjgxNDcxICAgICAoYmFzZSAxNikJCUxhbnRpcyBjby4sIExURC4KKwkJCQlidXNhbiBpbm5vYml6IGNlbnRlciA0MDEKKwkJCQlidWsta3UsIG1hbmRlb2sgMy1kb25nCisJCQkJYnVzYW4gIDYxNi04MjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMjgtMTYtMkUgICAoaGV4KQkJMldpcmUKKzI4MTYyRSAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LTI2LUE2ICAgKGhleCkJCVBCUiBlbGVjdHJvbmljcyBHbWJICisyODI2QTYgICAgIChiYXNlIDE2KQkJUEJSIGVsZWN0cm9uaWNzIEdtYkgKKwkJCQlCZXJsaW5lciBTdHJhc3NlIDUKKwkJCQlTYW5kaGF1c2VuIEJhZGVuIFd1ZXJ0ZW1tYmVyZyA2OTIwNworCQkJCUdFUk1BTlkKKworMjgtMzQtMTAgICAoaGV4KQkJRW5pZ21hIERpYWdub3N0aWNzIExpbWl0ZWQKKzI4MzQxMCAgICAgKGJhc2UgMTYpCQlFbmlnbWEgRGlhZ25vc3RpY3MgTGltaXRlZAorCQkJCU1pbHRvbiBQYXJrIElubm92YXRpb24gQ2VudHJlCisJCQkJOTkgTWlsdG9uIFBhcmsKKwkJCQlBYmluZ2RvbiAgT1gxNCA0UlkKKwkJCQlVTklURUQgS0lOR0RPTQorCisyOC0zQy1FNCAgIChoZXgpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCisyODNDRTQgICAgIChiYXNlIDE2KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QgCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzI4LTQwLTFBICAgKGhleCkJCUM4IE1lZGlTZW5zb3JzLCBJbmMuCisyODQwMUEgICAgIChiYXNlIDE2KQkJQzggTWVkaVNlbnNvcnMsIEluYy4KKwkJCQk3MjcgVW5pdmVyc2l0eSBBdmUKKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LTQ4LTQ2ICAgKGhleCkJCUdyaWRDZW50cmljIEluYy4KKzI4NDg0NiAgICAgKGJhc2UgMTYpCQlHcmlkQ2VudHJpYyBJbmMuCisJCQkJMzUwIEJsb29yIFN0LiBFCisJCQkJVG9yb250byBPbnRhcmlvIE00VyAwQTEKKwkJCQlDQU5BREEKKworMjgtNEMtNTMgICAoaGV4KQkJSW50dW5lIE5ldHdvcmtzCisyODRDNTMgICAgIChiYXNlIDE2KQkJSW50dW5lIE5ldHdvcmtzCisJCQkJOUIgQmVja2V0dCBXYXkKKwkJCQlQYXJrd2VzdCBCdXNpbmVzcyBQYXJrCisJCQkJRHVibGluICAgMTIKKwkJCQlJUkVMQU5ECisKKzI4LTUxLTMyICAgKGhleCkJCVNoZW56aGVuIFByYXlmbHkgVGVjaG5vbG9neSBDby4sTHRkCisyODUxMzIgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gUHJheWZseSBUZWNobm9sb2d5IENvLixMdGQKKwkJCQkxNkYgQiBJbnRlcm5hdGlvbmFsIENoYW1iZXIgb2YgQ29tbWVyY2UgQnVpbGRpbmcKKwkJCQlOTy4xMzggRnVodWEgMVJEIEZ1dGlhbiBBcmVhIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyBQcm92aW5jZSAgNTE4MDQ4CisJCQkJQ0hJTkEKKworMjgtNUYtREIgICAoaGV4KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorMjg1RkRCICAgICAoYmFzZSAxNikJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCisyOC02MC00NiAgIChoZXgpCQlMYW50ZWNoIENvbW11bmljYXRpb25zIEdsb2JhbCwgSW5jLgorMjg2MDQ2ICAgICAoYmFzZSAxNikJCUxhbnRlY2ggQ29tbXVuaWNhdGlvbnMgR2xvYmFsLCBJbmMuCisJCQkJN0YsIE5vLiA0NSwgTGFuZSAxODgsIFJ1aWd1YW5nIFJkLiwgTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgQ2l0eSAgMTE0OTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzI4LTZFLUQ0ICAgKGhleCkJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorMjg2RUQ0ICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorCQkJCUIxLTcsSHVhd2VpIEluZHVzdHJpYWwgQmFzZSxCYW50aWFuLExvbmdnYW5nCisJCQkJU2hlblpoZW4gZ3Vhbmdkb25nIDUxODEyOQorCQkJCUNISU5BCisKKzI4LTcyLUM1ICAgKGhleCkJCVNtYXJ0bWF0aWMgQ29ycAorMjg3MkM1ICAgICAoYmFzZSAxNikJCVNtYXJ0bWF0aWMgQ29ycAorCQkJCTEwMDEgQnJva2VuIFNvdW5kIFBrd3kgTlcgU3VpdGUgRAorCQkJCUJvY2EgUmF0b24gRmxvcmlkYSAzMzQ4NworCQkJCVVOSVRFRCBTVEFURVMKKworMjgtNzItRjAgICAoaGV4KQkJQVRIRU5BCisyODcyRjAgICAgIChiYXNlIDE2KQkJQVRIRU5BCisJCQkJNDIgUlVFIE1PTkdFCisJCQkJUEFSSVMgIDc1MDA1CisJCQkJRlJBTkNFCisKKzI4LTg1LTJEICAgKGhleCkJCVRvdWNoIE5ldHdvcmtzCisyODg1MkQgICAgIChiYXNlIDE2KQkJVG91Y2ggTmV0d29ya3MKKwkJCQkyNTE1IDE1Mm5kIEF2ZSBORQorCQkJCVJlZG1vbmQgV2FzaGluZ3RvbiA5ODA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtODktMTUgICAoaGV4KQkJQ2FzaEd1YXJkIFN2ZXJpZ2UgQUIKKzI4ODkxNSAgICAgKGJhc2UgMTYpCQlDYXNoR3VhcmQgU3ZlcmlnZSBBQgorCQkJCUZpbmxhbmRzZ2F0YW4gMTYKKwkJCQlLaXN0YSAgMTY0NzQKKwkJCQlTV0VERU4KKworMjgtOTMtRkUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMjg5M0ZFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtQTUtNzQgICAoaGV4KQkJTWlsbGVyIEVsZWN0cmljIE1mZy4gQ28uCisyOEE1NzQgICAgIChiYXNlIDE2KQkJTWlsbGVyIEVsZWN0cmljIE1mZy4gQ28uCisJCQkJMTYzNSBXLiBTcGVuY2VyIFN0cmVldAorCQkJCVAuTy4gQm94IDEwNzkKKwkJCQlBcHBsZXRvbiBXSSA1NDkxMi0xMDc5CisJCQkJVU5JVEVEIFNUQVRFUworCisyOC1DMC1EQSAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCisyOEMwREEgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LUNDLUZGICAgKGhleCkJCUNvcnBvcmFjaW9uIEVtcHJlc2FyaWFsIEFsdHJhIFNMCisyOENDRkYgICAgIChiYXNlIDE2KQkJQ29ycG9yYWNpb24gRW1wcmVzYXJpYWwgQWx0cmEgU0wKKwkJCQlNYXJpZSBDdXJpZSAyMQorCQkJCU1hbGFnYSAgMjk1OTAKKwkJCQlTUEFJTgorCisyOC1DRC00QyAgIChoZXgpCQlJbmRpdmlkdWFsIENvbXB1dGVycyBHbWJICisyOENENEMgICAgIChiYXNlIDE2KQkJSW5kaXZpZHVhbCBDb21wdXRlcnMgR21iSAorCQkJCUltIFplbW1lciA2CisJCQkJV29mZmVsc2JhY2ggTlJXIDUyMTUyCisJCQkJR0VSTUFOWQorCisyOC1DRi1EQSAgIChoZXgpCQlBcHBsZSBJbmMKKzI4Q0ZEQSAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIGluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LUUyLTk3ICAgKGhleCkJCVNoYW5naGFpIEluZm9UTSBNaWNyb2VsZWN0cm9uaWNzIENvLixMdGQuCisyOEUyOTcgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgSW5mb1RNIE1pY3JvZWxlY3Ryb25pY3MgQ28uLEx0ZC4KKwkJCQlidWlsZGluZyAxMSxOTy4xMTUsbGFuZSA1NzIsQmlCbyBSb2FkLAorCQkJCVB1RG9uZyBOZXcgRGlzdHJpY3QKKwkJCQlTaGFuZ0hhaSAgMjAxMjAzCisJCQkJQ0hJTkEKKworMjgtRTctOTQgICAoaGV4KQkJTWljcm90aW1lIENvbXB1dGVyIEluYy4KKzI4RTc5NCAgICAgKGJhc2UgMTYpCQlNaWNyb3RpbWUgQ29tcHV0ZXIgSW5jLgorCQkJCTRGLCBOby4gMjIyLCBTZWMuIDQsIENoZW5nLVRlaCBSZC4sIAorCQkJCVRhaXBlaSAgMTExNjcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzI4LUU3LUNGICAgKGhleCkJCUFwcGxlLCBJbmMuCisyOEU3Q0YgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LUVELTU4ICAgKGhleCkJCUpBRyBKYWtvYiBBRworMjhFRDU4ICAgICAoYmFzZSAxNikJCUpBRyBKYWtvYiBBRworCQkJCUluZHVzdHJpZXN0cmFzc2UgMjAKKwkJCQlCUlVFR0cgQkUgMjU1NQorCQkJCVNXSVRaRVJMQU5ECisKKzI4LUVFLTJDICAgKGhleCkJCUZyb250bGluZSBUZXN0IEVxdWlwbWVudAorMjhFRTJDICAgICAoYmFzZSAxNikJCUZyb250bGluZSBUZXN0IEVxdWlwbWVudAorCQkJCVBPIEJveCA3NTA3CisJCQkJQ2hhcmxvdHRlc3ZpbGxlIFZpcmdpbmlhIDIyOTA2LTc1MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LUVGLTAxICAgKGhleCkJCVBSSVZBVEUKKzI4RUYwMSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMjgtRjMtNTggICAoaGV4KQkJMkMgLSBUcmlmb25vdiAmIENvCisyOEYzNTggICAgIChiYXNlIDE2KQkJMkMgLSBUcmlmb25vdiAmIENvCisJCQkJMTMzLCBUc2FyaWdyYWRza28gU2hvc2UgQmx2ZCwgQklaIElaT1QsIAorCQkJCUJ1aWxkLiAzLCBGbG9vciAzCisJCQkJU29maWEgIDE3ODQKKwkJCQlCVUxHQVJJQQorCisyOC1GQi1EMyAgIChoZXgpCQlTaGFuZ2hhaSBSYWdlblRlayBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzI4RkJEMyAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBSYWdlblRlayBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQk0dGggRmxvb3IsTm8uMTExIEVTaGFuIFJvYWQgUHVEb25nIERpc3RyaWN0IAorCQkJCVNoYW5naGFpICAyMDAxMjcKKwkJCQlDSElOQQorCisyQy0wMC0zMyAgIChoZXgpCQlFQ29udHJvbHMsIExMQworMkMwMDMzICAgICAoYmFzZSAxNikJCUVDb250cm9scywgTExDCisJCQkJMzUyMyBDcm9zc3BvaW50CisJCQkJU2FuIEFudG9uaW8gVFggNzgyMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTA2LTIzICAgKGhleCkJCVdpbiBMZWFkZXIgSW5jLgorMkMwNjIzICAgICAoYmFzZSAxNikJCVdpbiBMZWFkZXIgSW5jLgorCQkJCUxldmVsIDMgLEFsZXhhbmRlciBIb3VzZSwKKwkJCQkzNSAgQ3liZXJjaXR5CisJCQkJRWJlbmUgIAorCQkJCU1BVVJJVElVUworCisyQy0xOS04NCAgIChoZXgpCQlJRE4gVGVsZWNvbSwgSW5jLgorMkMxOTg0ICAgICAoYmFzZSAxNikJCUlETiBUZWxlY29tLCBJbmMuCisJCQkJMjY2OSBHcmVhdCBBcmJvciBXYXkKKwkJCQlVbmlvbiBDaXR5IENBIDk0NTg3CisJCQkJVU5JVEVEIFNUQVRFUworCisyQy0xRS1FQSAgIChoZXgpCQlBRVJPREVWCisyQzFFRUEgICAgIChiYXNlIDE2KQkJQUVST0RFVgorCQkJCU5vLjU5LDE5ODUgTGFuZSxDaHVuc2hlbiBSb2FkLAorCQkJCVNoYW5naGFpICAyMDAyMzcKKwkJCQlDSElOQQorCisyQy0yMS03MiAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCisyQzIxNzIgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkgCisJCQkJVU5JVEVEIFNUQVRFUworCisyQy0yNy1ENyAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzJDMjdENyAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTWFpbGNvZGUgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTMwLTY4ICAgKGhleCkJCVBhbnRlY2ggQ28uLEx0ZAorMkMzMDY4ICAgICAoYmFzZSAxNikJCVBhbnRlY2ggQ28uLEx0ZAorCQkJCTExMC0xIE9uZ2plb25nLVJpLCBUb25namluLUV1cAorCQkJCUdpbXBvLVNpIEd5b3VuZ2dpLURvIDQxNS04NjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMkMtMzQtMjcgICAoaGV4KQkJRVJDTyAmYW1wOyBHRU5FUgorMkMzNDI3ICAgICAoYmFzZSAxNikJCUVSQ08gJmFtcDsgR0VORVIKKwkJCQlaSSBkZSBTQUlOVCBMQU1CRVJUIERFUyBMRVZFRVMKKwkJCQlCUCAzMDE2MworCQkJCVNBVU1VUiAgNDk0MTIKKwkJCQlGUkFOQ0UKKworMkMtM0EtMjggICAoaGV4KQkJRmFnb3IgRWxlY3RyaT9vZW5pY2EKKzJDM0EyOCAgICAgKGJhc2UgMTYpCQlGYWdvciBFbGVjdHJpP29lbmljYQorCQkJCUIuIFNhbiBBbmRyZXMsIHMvbiAKKwkJCQlNb25kcmFnaT9vZW4gR3VpcHV6Y29hIDIwNTAwCisJCQkJU1BBSU4KKworMkMtM0YtM0UgICAoaGV4KQkJQWxnZS1UaW1pbmcgR21iSAorMkMzRjNFICAgICAoYmFzZSAxNikJCUFsZ2UtVGltaW5nIEdtYkgKKwkJCQlSb3RrcmV1enN0cmFzc2UgMzkKKwkJCQlMdXN0ZW5hdSAgNjg5MAorCQkJCUFVU1RSSUEKKworMkMtNDEtMzggICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCisyQzQxMzggICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCU1haWxjb2RlIDYuMy4wNDkKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCisyQy02Qi1GNSAgIChoZXgpCQlKdW5pcGVyIG5ldHdvcmtzCisyQzZCRjUgICAgIChiYXNlIDE2KQkJSnVuaXBlciBuZXR3b3JrcworCQkJCTExOTQgTi4gTWF0aGlsZGEgYXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCisyQy03QS1GRSAgIChoZXgpCQlJRUUmRSAiQmxhY2siIG9wcworMkM3QUZFICAgICAoYmFzZSAxNikJCUlFRSZFICJCbGFjayIgb3BzCisJCQkJMTAwIEplcmljIEF2ZW51ZQorCQkJCUNoYXJsb3R0ZSBOQyAyODI2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMkMtN0UtQ0YgICAoaGV4KQkJT256byBMdGQKKzJDN0VDRiAgICAgKGJhc2UgMTYpCQlPbnpvIEx0ZAorCQkJCTYgR3JlYXQgTmV3cG9ydCBTdHJlZXQKKwkJCQlMb25kb24gIFdDMkggN0pCCisJCQkJVU5JVEVEIEtJTkdET00KKworMkMtODAtNjUgICAoaGV4KQkJSEFSVElORyBJbmMuIG9mIE5vcnRoIEFtZXJpY2EKKzJDODA2NSAgICAgKGJhc2UgMTYpCQlIQVJUSU5HIEluYy4gb2YgTm9ydGggQW1lcmljYQorCQkJCTEzNzAgQm93ZXMgUm9hZAorCQkJCUVsZ2luIElsbGlub2lzIDYwMTIzCisJCQkJVU5JVEVEIFNUQVRFUworCisyQy04MS01OCAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQKKzJDODE1OCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQKKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAyMDE2MTMKKwkJCQlDSElOQQorCisyQy04Qi1GMiAgIChoZXgpCQlIaXRhY2hpIE1ldGFscyBBbWVyaWNhIEx0ZAorMkM4QkYyICAgICAoYmFzZSAxNikJCUhpdGFjaGkgTWV0YWxzIEFtZXJpY2EgTHRkCisJCQkJMjEwNyBOIEZpcnN0IFN0CisJCQkJU3VpdGUgNTAwCisJCQkJU2FuIEpvc2UgIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCisyQy05MS0yNyAgIChoZXgpCQlFaW50ZWNobm8gQ29ycG9yYXRpb24KKzJDOTEyNyAgICAgKGJhc2UgMTYpCQlFaW50ZWNobm8gQ29ycG9yYXRpb24KKwkJCQkzMzU5LTEsIGtha28sIEluYW1pLWNobworCQkJCWtha28tZ3VuIGh5b2dvIDY3NS0xMTA1CisJCQkJSkFQQU4KKworMkMtOUUtNUYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzJDOUU1RiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLUExLTU3ICAgKGhleCkJCUFDUk9NQVRFLCBJTkMuCisyQ0ExNTcgICAgIChiYXNlIDE2KQkJQUNST01BVEUsIElOQy4KKwkJCQkjOTExLCBFJkMgIFZlbnR1cmUgRHJlYW0gVG93ZXIgSUkKKwkJCQkxOTctMTAsIEd1cm8tZG9uZywgR3Vyby1ndQorCQkJCVNlb3VsICAxNTItNzE5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzJDLUE3LTgwICAgKGhleCkJCVRydWUgVGVjaG5vbG9naWVzIEluYy4KKzJDQTc4MCAgICAgKGJhc2UgMTYpCQlUcnVlIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJUjQ3NiwgQW5nZWxDaXR5IDFzdCwKKwkJCQkxNjEsIEd1ZW1nb2ssIEJ1bmRhbmcKKwkJCQlTZW9uZ25hbSwgS3l1bmdraSA0NjMtODYyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzJDLUE4LTM1ICAgKGhleCkJCVJJTQorMkNBODM1ICAgICAoYmFzZSAxNikJCVJJTQorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCisyQy1CMC1ERiAgIChoZXgpCQlTb2xpdG9uIFRlY2hub2xvZ2llcyBQdnQgTHRkCisyQ0IwREYgICAgIChiYXNlIDE2KQkJU29saXRvbiBUZWNobm9sb2dpZXMgUHZ0IEx0ZAorCQkJCSMgNjgzLCAxNXRoIENyb3NzIAorCQkJCUogUCBOYWdhciAybmQgUGhhc2UKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MCAwNzgKKwkJCQlJTkRJQQorCisyQy1CNi05RCAgIChoZXgpCQlSRUQgRGlnaXRhbCBDaW5lbWEKKzJDQjY5RCAgICAgKGJhc2UgMTYpCQlSRUQgRGlnaXRhbCBDaW5lbWEKKwkJCQkyMDI5MSBWYWxlbmNpYSBDaXJjbGUKKwkJCQlMYWtlIEZvcmVzdCBDYWxpZm9ybmlhIDkyNjMwCisJCQkJVU5JVEVEIFNUQVRFUworCisyQy1DRC0yNyAgIChoZXgpCQlQcmVjb3IgSW5jCisyQ0NEMjcgICAgIChiYXNlIDE2KQkJUHJlY29yIEluYworCQkJCTIwMDMxIDE0Mm5kIEF2ZW51ZSBORQorCQkJCVdvb2RpbnZpbGxlIFdBIDk4MDcyCisJCQkJVU5JVEVEIFNUQVRFUworCisyQy1DRC00MyAgIChoZXgpCQlTdW1taXQgVGVjaG5vbG9neSBHcm91cAorMkNDRDQzICAgICAoYmFzZSAxNikJCVN1bW1pdCBUZWNobm9sb2d5IEdyb3VwCisJCQkJMTQ1IEJlbG1vbnQgRHJpdmUKKwkJCQlTb21lcnNldCBOSiAwODg3MworCQkJCVVOSVRFRCBTVEFURVMKKworMkMtRDEtREEgICAoaGV4KQkJU2Fuam9sZSwgSW5jLgorMkNEMURBICAgICAoYmFzZSAxNikJCVNhbmpvbGUsIEluYy4KKwkJCQkyODAwIFdvb2RsYXduIERyaXZlLCAjMjcxCisJCQkJSG9ub2x1bHUgSGF3YWlpIDk2ODIyCisJCQkJVU5JVEVEIFNUQVRFUworCisyQy1EMi1FNyAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorMkNEMkU3ICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgT3UgOTA1OTAKKwkJCQlGSU5MQU5ECisKKzJDLURELTBDICAgKGhleCkJCURpc2NvdmVyZ3kgR21iSAorMkNERDBDICAgICAoYmFzZSAxNikJCURpc2NvdmVyZ3kgR21iSAorCQkJCVBhc2NhbHN0ci4gMTUKKwkJCQlBYWNoZW4gTlJXIDUyMDc2CisJCQkJR0VSTUFOWQorCiszMC0wQi05QyAgIChoZXgpCQlEZWx0YSBNb2JpbGUgU3lzdGVtcywgSW5jLgorMzAwQjlDICAgICAoYmFzZSAxNikJCURlbHRhIE1vYmlsZSBTeXN0ZW1zLCBJbmMuCisJCQkJNzAwIFJlbWluZ3RvbiBSb2FkCisJCQkJMm5kIEZsb29yCisJCQkJU2NoYXVtYnVyZyBJbGxpbm9pcyA2MDE3MworCQkJCVVOSVRFRCBTVEFURVMKKworMzAtMTQtMkQgICAoaGV4KQkJUGljaW9yZ3JvcyBHbWJICiszMDE0MkQgICAgIChiYXNlIDE2KQkJUGljaW9yZ3JvcyBHbWJICisJCQkJQ2xhdWRpYXN0cmFzc2UgNQorCQkJCUNvbG9nbmUgTlJXIDUxMTQ5CisJCQkJR0VSTUFOWQorCiszMC0xNy1DOCAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorMzAxN0M4ICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKKzMwLTE4LUNGICAgKGhleCkJCURFT1MgY29udHJvbCBzeXN0ZW1zIEdtYkgKKzMwMThDRiAgICAgKGJhc2UgMTYpCQlERU9TIGNvbnRyb2wgc3lzdGVtcyBHbWJICisJCQkJQmlya2VuYWxsZWUgMTEzCisJCQkJUmhlaW5lIE5SVyA0ODQzMgorCQkJCUdFUk1BTlkKKworMzAtMUEtMjggICAoaGV4KQkJTWFrbyBOZXR3b3JrcyBMdGQKKzMwMUEyOCAgICAgKGJhc2UgMTYpCQlNYWtvIE5ldHdvcmtzIEx0ZAorCQkJCTEvNjIgUGF1bCBNYXR0aGV3cyBSZAorCQkJCUFsYmFueQorCQkJCUF1Y2tsYW5kICAwNjMyCisJCQkJTkVXIFpFQUxBTkQKKworMzAtMUUtODAgICAoaGV4KQkJUFJJVkFURQorMzAxRTgwICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiszMC0zMi1ENCAgIChoZXgpCQlIYW5pbHN0bSBDby4sIEx0ZC4KKzMwMzJENCAgICAgKGJhc2UgMTYpCQlIYW5pbHN0bSBDby4sIEx0ZC4KKwkJCQkxMzgtNiwgU2FuZ2RhZXdvbi1kb25nIEp1bmd3b24tZ3UKKwkJCQk3MDksIEpvb25nYW5nIEluZHVzcGlhIDV0aAorCQkJCVNlb25nbmFtIEt5b25nZ2ktZG8gNDYyLTEyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszMC0zNy1BNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiszMDM3QTYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiszMC0zOC01NSAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorMzAzODU1ICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgT3UgOTA1OTAKKwkJCQlGSU5MQU5ECisKKzMwLTM5LTU1ICAgKGhleCkJCVNoZW56aGVuIEppbmhlbmdqaWEgRWxlY3Ryb25pYyBDby4sIEx0ZC4KKzMwMzk1NSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBKaW5oZW5namlhIEVsZWN0cm9uaWMgQ28uLCBMdGQuCisJCQkJNC02IEZsb29ycywgRmFjdG9yeSBCdWlsZGluZywgSmlqaWEgSW5kdXN0cmlhbCBQYXJrLAorCQkJCVhpYWxpbGFuZyBBcmVhLCBOYW53YW4gU3RyZWV0LCBMb25nZ2FuZyBBcmVhLgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMTIKKwkJCQlDSElOQQorCiszMC0zOS1GMiAgIChoZXgpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMgCiszMDM5RjIgICAgIChiYXNlIDE2KQkJUElSRUxMSSBCUk9BREJBTkQgU09MVVRJT05TIAorCQkJCVZJQUxFIFNBUkNBIDIyMiAKKwkJCQlNSUxBTk8gICAyMDEyNiAKKwkJCQlJVEFMWQorCiszMC00MS03NCAgIChoZXgpCQlBTFRFQyBMQU5TSU5HIExMQworMzA0MTc0ICAgICAoYmFzZSAxNikJCUFMVEVDIExBTlNJTkcgTExDCisJCQkJNTM1IFJPVVRFUyA2ICYgMjA5CisJCQkJTUlMRk9SRCBQQSAxODMzNworCQkJCVVOSVRFRCBTVEFURVMKKworMzAtNDYtOUEgICAoaGV4KQkJTkVUR0VBUgorMzA0NjlBICAgICAoYmFzZSAxNikJCU5FVEdFQVIKKwkJCQkzNTAgRUFTVCBQTFVNRVJJQSBEUklWRQorCQkJCVNBTiBKT1NFIENBTElGT1JOSUEgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzMwLTQ5LTNCICAgKGhleCkJCU5hbmppbmcgWi1Db20gV2lyZWxlc3MgQ28uLEx0ZAorMzA0OTNCICAgICAoYmFzZSAxNikJCU5hbmppbmcgWi1Db20gV2lyZWxlc3MgQ28uLEx0ZAorCQkJCVotQ29tIEJ1aWxkaW5nLE5PLjMwIEppYW5nc3UgU29mdHdhcmUgUGFyayxOTy42OTktMjIgWHVhbnd1IEF2ZW51ZSwKKwkJCQlOYW5qaW5nIEppYW5nc3UgMjEwMDQyCisJCQkJQ0hJTkEKKworMzAtNEMtN0UgICAoaGV4KQkJUGFuYXNvbmljIEVsZWN0cmljIFdvcmtzIEF1dG9tYXRpb24gQ29udHJvbHMgVGVjaG5vIENvLixMdGQuCiszMDRDN0UgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIEVsZWN0cmljIFdvcmtzIEF1dG9tYXRpb24gQ29udHJvbHMgVGVjaG5vIENvLixMdGQuCisJCQkJMi05LTE4IENoaWRvcmkKKwkJCQlPb3RhLWt1IFRva3lvIDE0Ni04NTQwCisJCQkJSkFQQU4KKworMzAtNEUtQzMgICAoaGV4KQkJVGlhbmppbiBUZWNodWEgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzMwNEVDMyAgICAgKGJhc2UgMTYpCQlUaWFuamluIFRlY2h1YSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTEyLTEtMTQwMSBUaWFubGlueXVhbiBGdWxpY2hlbmcgR3Vsb3V4aSBSb2FkLE5hbmthaSBEaXN0cmljdCAKKwkJCQlUaWFuamluICAzMDAxMDEKKwkJCQlDSElOQQorCiszMC01Mi01QSAgIChoZXgpCQlOU1QgQ28uLCBMVEQKKzMwNTI1QSAgICAgKGJhc2UgMTYpCQlOU1QgQ28uLCBMVEQKKwkJCQlSTTMwMSxEYWVyeXVuZyBUZWNobm8gVG93biAyLCA1NjktMjEKKwkJCQlHYXNhbi1kb25nLCBHZXVtY2hlb24tZ3UKKwkJCQlTZW91bCAgMTUzLTc3MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszMC02MS0xOCAgIChoZXgpCQlQYXJhZG9tIEluYy4KKzMwNjExOCAgICAgKGJhc2UgMTYpCQlQYXJhZG9tIEluYy4KKwkJCQk4RiwgTjAuIDE3OCwgU2VjLTIsIEdvbmdkYW93dSBSZC4KKwkJCQlIc2luY2h1IENpdHkgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMzAtNjktNEIgICAoaGV4KQkJUklNCiszMDY5NEIgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzMwLTcxLUIyICAgKGhleCkJCUhhbmd6aG91IFByZXZhaWwgT3B0b2VsZWN0cm9uaWMgRXF1aXBtZW50IENvLixMVEQuCiszMDcxQjIgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgUHJldmFpbCBPcHRvZWxlY3Ryb25pYyBFcXVpcG1lbnQgQ28uLExURC4KKwkJCQlJbmR1c3RyaWFsIERldmVsb3BtZW50IEFyZWEsIEd1YWxpIFRvd24sCisJCQkJIFhpYW9zaGFuIAorCQkJCUhhbmd6aG91IENpdHkgWmhlIEppYW5nIDMxMTI0MQorCQkJCUNISU5BCisKKzMwLTdDLTMwICAgKGhleCkJCVJJTQorMzA3QzMwICAgICAoYmFzZSAxNikJCVJJTQorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCiszMC04Ny0zMCAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCiszMDg3MzAgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxMDEwOAorCQkJCUNISU5BCisKKzMwLThDLUZCICAgKGhleCkJCURyb3BjYW0KKzMwOENGQiAgICAgKGJhc2UgMTYpCQlEcm9wY2FtCisJCQkJNjI1IE1hcmtldCBTdHJlZXQKKwkJCQlTdWl0ZSAxMDEwCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMzAtRTQtOEUgICAoaGV4KQkJVm9kYWZvbmUgVUsKKzMwRTQ4RSAgICAgKGJhc2UgMTYpCQlWb2RhZm9uZSBVSworCQkJCVZvZGFmb25lIEhvdXNlIAorCQkJCVRoZSBDb25uZWN0aW9uIAorCQkJCU5ld2J1cnkgIEJlcmtzaGlyZSAgUkcxNDJGTgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzMwLUVCLTI1ICAgKGhleCkJCUlOVEVLIERJR0lUQUwKKzMwRUIyNSAgICAgKGJhc2UgMTYpCQlJTlRFSyBESUdJVEFMCisJCQkJODAxLCA4dGggRmwuLCBBbnlhbmcgSy1jZW50ZXIgYnVpbGRpbmcsIDE1OTEtOQorCQkJCUd3YW55YW5nLWRvbmcsIERvbmdhbi1ndQorCQkJCUFueWFuZyAgNDMxLTA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszMC1FRi1EMSAgIChoZXgpCQlBbHN0b20gU3Ryb25nd2lzaCAoU2hlbnpoZW4pIENvLiwgTHRkLgorMzBFRkQxICAgICAoYmFzZSAxNikJCUFsc3RvbSBTdHJvbmd3aXNoIChTaGVuemhlbikgQ28uLCBMdGQuCisJCQkJNUYsQnVpbGRpbmcgTm8uNiwgS2VqaSBNaWRkbGUgMiBSb2FkIEhpZ2gtVGVjaCBJbmR1c3RyaWFsIFBhcmssIAorCQkJCVNoZW4gWmhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMzQtMDgtMDQgICAoaGV4KQkJRC1MaW5rIENvcnBvcmF0aW9uCiszNDA4MDQgICAgIChiYXNlIDE2KQkJRC1MaW5rIENvcnBvcmF0aW9uCisJCQkJTm8uMjg5LCBTaW5odSAzcmQgUmQuLCBOZWlodSBEaXN0cmljdCwgCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzM0LTE1LTlFICAgKGhleCkJCUFwcGxlLCBJbmMKKzM0MTU5RSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiszNC0yMS0wOSAgIChoZXgpCQlKZW5zZW4gU2NhbmRpbmF2aWEgQVMKKzM0MjEwOSAgICAgKGJhc2UgMTYpCQlKZW5zZW4gU2NhbmRpbmF2aWEgQVMKKwkJCQlCYWxkZXIgQWxsaT9vZSAzCisJCQkJSmVzc2hlaW0gIDIwNTAKKwkJCQlOT1JXQVkKKworMzQtMjktRUEgICAoaGV4KQkJTUNEIEVMRUNUUk9OSUNTIFNQLiBaIE8uTy4KKzM0MjlFQSAgICAgKGJhc2UgMTYpCQlNQ0QgRUxFQ1RST05JQ1MgU1AuIFogTy5PLgorCQkJCUxlbGV3ZWxhIDI2CisJCQkJWnl3aWVjIFNsYXNraWUgMzQtMzAwCisJCQkJUE9MQU5ECisKKzM0LTY4LTRBICAgKGhleCkJCVRlcmF3b3JrcyBDby4sIEx0ZC4KKzM0Njg0QSAgICAgKGJhc2UgMTYpCQlUZXJhd29ya3MgQ28uLCBMdGQuCisJCQkJUm9vbSBOby4gMjAxICwgNTE1LTMwICwgTW9rLURvbmcKKwkJCQlZYW5nY2hlb24tR3UKKwkJCQlTZW91bCAgMTU4LTgwOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszNC02Ri05MiAgIChoZXgpCQlXaGl0ZSBSb2RnZXJzIERpdmlzaW9uCiszNDZGOTIgICAgIChiYXNlIDE2KQkJV2hpdGUgUm9kZ2VycyBEaXZpc2lvbgorCQkJCTgxMDAgV2VzdCBGbG9yaXNzYW50CisJCQkJUC5PLiBCb3ggMzY5MjEKKwkJCQlTdC4gTG91aXMgTU8gNjMxMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzM0LTc4LTc3ICAgKGhleCkJCU8tTkVUIENvbW11bmljYXRpb25zKFNoZW56aGVuKSBMaW1pdGVkCiszNDc4NzcgICAgIChiYXNlIDE2KQkJTy1ORVQgQ29tbXVuaWNhdGlvbnMoU2hlbnpoZW4pIExpbWl0ZWQKKwkJCQkjMTAtMSBTb3V0aCxNYXF1ZWxpbmcgSW5kdXN0cmlhbCBQYXJrLE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMzQtN0UtMzkgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzM0N0UzOSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMzQtODMtMDIgICAoaGV4KQkJaUZvcmNvbSBDby4sIEx0ZAorMzQ4MzAyICAgICAoYmFzZSAxNikJCWlGb3Jjb20gQ28uLCBMdGQKKwkJCQkxMzI2CisJCQkJVHN1a3VpY2hvLU5ha2FubworCQkJCVNhZ2FtaWhhcmEgS2FuYWdhd2EgMjIwLTAyMDcKKwkJCQlKQVBBTgorCiszNC04Ni0yQSAgIChoZXgpCQlIZWlueiBMYWNrbWFubiBHbWJIICYgQ28gS0cKKzM0ODYyQSAgICAgKGJhc2UgMTYpCQlIZWlueiBMYWNrbWFubiBHbWJIICYgQ28gS0cKKwkJCQlIYXJrb3J0c3RyYXNzZSAxNQorCQkJCU1pP29lbnN0ZXIgTlJXIDQ4MTYzCisJCQkJR0VSTUFOWQorCiszNC05QS0wRCAgIChoZXgpCQlaQkQgRGlzcGxheXMgTHRkCiszNDlBMEQgICAgIChiYXNlIDE2KQkJWkJEIERpc3BsYXlzIEx0ZAorCQkJCU9yY2hhcmQgTGVhCisJCQkJV2lua2ZpZWxkIExhbmUKKwkJCQlXaW5kc29yIEJlcmtzaGlyZSBTTDQgNFJVCisJCQkJVU5JVEVEIEtJTkdET00KKworMzQtQTEtODMgICAoaGV4KQkJQVdhcmUsIEluYworMzRBMTgzICAgICAoYmFzZSAxNikJCUFXYXJlLCBJbmMKKwkJCQk2MTQgTWFzc2FjaHVzZXR0cyBBdmUuIAorCQkJCUNhbWJyaWRnZSBNQSAwMjEzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMzQtQTUtNUQgICAoaGV4KQkJVEVDSE5PU09GVCBJTlRFUk5BVElPTkFMIFNSTAorMzRBNTVEICAgICAoYmFzZSAxNikJCVRFQ0hOT1NPRlQgSU5URVJOQVRJT05BTCBTUkwKKwkJCQlSTzY2NDA5MDQKKwkJCQlTdHIuIFBhZHVyZXR1IDUwCisJCQkJQnVjdXJlc3RpIC0gU2VjdG9yIDYgMDYxOTkyCisJCQkJUk9NQU5JQQorCiszNC1BNy0wOSAgIChoZXgpCQlUcmV2aWwgc3JsCiszNEE3MDkgICAgIChiYXNlIDE2KQkJVHJldmlsIHNybAorCQkJCVZpYSBDb3Blcm5pY28gMQorCQkJCVBvenpvIGQmIzM5O0FkZGEgTUkgMjAwNjAKKwkJCQlJVEFMWQorCiszNC1BQS1FRSAgIChoZXgpCQlNaWtyb3Zpc2F0b3MgU2VydmlzYXMgVUFCCiszNEFBRUUgICAgIChiYXNlIDE2KQkJTWlrcm92aXNhdG9zIFNlcnZpc2FzIFVBQgorCQkJCVNhdmFub3JpdSBwci4gMTI1CisJCQkJS2F1bmFzICBMVDQ0MTQ2CisJCQkJTElUSFVBTklBCisKKzM0LUI1LTcxICAgKGhleCkJCVBMRFMKKzM0QjU3MSAgICAgKGJhc2UgMTYpCQlQTERTCisJCQkJU2NoYW56ZW5mZWxkc3RyYXNzZSAyCisJCQkJV2V0emxhciBIZXNzZW4gMzU1NzgKKwkJCQlHRVJNQU5ZCisKKzM0LUJBLTUxICAgKGhleCkJCVNlLUt1cmUgQ29udHJvbHMsIEluYy4KKzM0QkE1MSAgICAgKGJhc2UgMTYpCQlTZS1LdXJlIENvbnRyb2xzLCBJbmMuCisJCQkJMzcxNCBSdW5nZSBTdHJlZXQKKwkJCQlGcmFua2xpbiBQYXJrIElMIDYwMTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiszNC1CQy1BNiAgIChoZXgpCQlCZWlqaW5nIERpbmcgUWluZyBUZWNobm9sb2d5LCBMdGQuCiszNEJDQTYgICAgIChiYXNlIDE2KQkJQmVpamluZyBEaW5nIFFpbmcgVGVjaG5vbG9neSwgTHRkLgorCQkJCTIxOCBIYW4gVGFpIEh1YSBPZmZpY2UgQnVpbGRpbmcsIDEzIEh1YW4gWXVhbiBMdSwKKwkJCQlIYWlkaWFuIERpc3RyaWN0IEJlaWppbmcgMTAwMDgzCisJCQkJVU5JVEVEIFNUQVRFUworCiszNC1CRC1GOSAgIChoZXgpCQlTaGFuZ2hhaSBXREsgSW5kdXN0cmlhbCBDby4sTHRkLgorMzRCREY5ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFdESyBJbmR1c3RyaWFsIENvLixMdGQuCisJCQkJTm8uMjEwMCxTb25nemhlbiBSb2FkLFNvbmdqaWFuZyBEaXN0cmljdAorCQkJCVNoYW5naGFpICAyMDE2MDYKKwkJCQlDSElOQQorCiszNC1DMy1BQyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCiszNEMzQUMgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCTk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzM0LUM2LTlBICAgKGhleCkJCUVuZWNzeXMgTHRkCiszNEM2OUEgICAgIChiYXNlIDE2KQkJRW5lY3N5cyBMdGQKKwkJCQlIYXJzdG9uIE1pbGwKKwkJCQlSb3lzdG9uIFJvYWQKKwkJCQlDYW1icmlkZ2UgQ2FtYnJpZGdlc2hpcmUgQ0IyMiA3R0cKKwkJCQlVTklURUQgS0lOR0RPTQorCiszNC1DRS05NCAgIChoZXgpCQlQYXJzZWMgKFB0eSkgTHRkCiszNENFOTQgICAgIChiYXNlIDE2KQkJUGFyc2VjIChQdHkpIEx0ZAorCQkJCUJ1aWxkaW5nIDgtMTAgTWFuaGF0dGFuIE9mZmljZSBQYXJrCisJCQkJMTYgUGlldGVyIFN0cmVldCwgSGlnaHZlbGQgVGVjaG5vcGFyaworCQkJCUNlbnR1cmlvbiBHYXV0ZW5nIDAxNTcKKwkJCQlTT1VUSCBBRlJJQ0EKKworMzQtRDItQzQgICAoaGV4KQkJUkVOQSBHbWJIIFByaW50IFN5c3RlbWUKKzM0RDJDNCAgICAgKGJhc2UgMTYpCQlSRU5BIEdtYkggUHJpbnQgU3lzdGVtZQorCQkJCUhpZW5sb2hlc3RyYXNzZSAyNAorCQkJCU90dGVyZmluZyBCYXZhcmlhIDgzNjI0CisJCQkJR0VSTUFOWQorCiszNC1ERi0yQSAgIChoZXgpCQlGdWppa29uIEluZHVzdHJpYWwgQ28uLExpbWl0ZWQKKzM0REYyQSAgICAgKGJhc2UgMTYpCQlGdWppa29uIEluZHVzdHJpYWwgQ28uLExpbWl0ZWQKKwkJCQkxNi9GLiwgVG93ZXIgMSwgR3JhbmQgQ2VudHJhbCBQbGF6YSwxMzggU2hhdGluIFJ1cmFsIAorCQkJCUNvbW1pdHRlZSBSb2FkLFNoYXRpbiwgTi5ULiwgCisJCQkJNTIzOTMwCisJCQkJSE9ORyBLT05HCisKKzM0LUUwLUQ3ICAgKGhleCkJCURPTkdHVUFOIFFJU0hFTkcgRUxFQ1RST05JQ1MgSU5EVVNUUklBTCBDTy4sIExURAorMzRFMEQ3ICAgICAoYmFzZSAxNikJCURPTkdHVUFOIFFJU0hFTkcgRUxFQ1RST05JQ1MgSU5EVVNUUklBTCBDTy4sIExURAorCQkJCVhJTkpJIElORFVTVFJJQUwgWk9ORSwgTUFDSE9ORyBUT1dOCisJCQkJRE9OR0dVQU4gR1VBTkdET05HIDUyMzEyMworCQkJCUNISU5BCisKKzM0LUVGLTQ0ICAgKGhleCkJCTJXaXJlCiszNEVGNDQgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGt3eQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiszNC1FRi04QiAgIChoZXgpCQlOVFQgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzM0RUY4QiAgICAgKGJhc2UgMTYpCQlOVFQgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKwkJCQlOVFQgSGliaXlhIEJsZGcuIDdGCisJCQkJMS02LFVjaGlzYWl3YWktY2hvIDEtY2hvbWUKKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMC04MDE5CisJCQkJSkFQQU4KKworMzQtRjMtOUIgICAoaGV4KQkJV2l6TEFOIEx0ZC4KKzM0RjM5QiAgICAgKGJhc2UgMTYpCQlXaXpMQU4gTHRkLgorCQkJCVAuTy5Cb3ggNzk0OAorCQkJCUhhaWZhICAzMTA3OAorCQkJCUlTUkFFTAorCiszNC1GOS02OCAgIChoZXgpCQlBVEVLIFByb2R1Y3RzLCBMTEMKKzM0Rjk2OCAgICAgKGJhc2UgMTYpCQlBVEVLIFByb2R1Y3RzLCBMTEMKKwkJCQkyMTAgTkUgMTB0aCBBdmVudWUKKwkJCQlCcmFpbmVyZCBNTiA1NjQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMzgtMDEtOTcgICAoaGV4KQkJVG9zaGliYSBTYW1zdW5nIFN0b3JhZ2UgVGVjaG5vbGdveSBLb3JlYSBDb3Jwb3JhdGlvbgorMzgwMTk3ICAgICAoYmFzZSAxNikJCVRvc2hpYmEgU2Ftc3VuZyBTdG9yYWdlIFRlY2hub2xnb3kgS29yZWEgQ29ycG9yYXRpb24KKwkJCQkxNCBGbG9vciwgQmxkZy4gTm8uIDEwMiwgRGlnaXRhbCBFbXBpcmUyLCA0ODYsIFNpbi1kb25nLCBZZW9uZ3RvbmctZ3UsIFN1d29uLXNpLCAKKwkJCQlTdS13b24gR3llb25nZ2kgNDQzLTczNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszOC0wQS0wQSAgIChoZXgpCQlTa3ktQ2l0eSBDb21tdW5pY2F0aW9uIGFuZCBFbGVjdHJvbmljcyBMaW1pdGVkIENvbXBhbnkKKzM4MEEwQSAgICAgKGJhc2UgMTYpCQlTa3ktQ2l0eSBDb21tdW5pY2F0aW9uIGFuZCBFbGVjdHJvbmljcyBMaW1pdGVkIENvbXBhbnkKKwkJCQkxMTA5LCBCdWlsZGluZyBBLCBLZWZhIEluZHVzdHJpYWwgcGFyaywgSHVhbmd1YW4gc291dGggcm9hZCwgR3VhbmxhbiwgCisJCQkJQmFvYW4sIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMTAKKwkJCQlDSElOQQorCiszOC0wRC1ENCAgIChoZXgpCQlQcmltYXggRWxlY3Ryb25pY3MgTFRELgorMzgwREQ0ICAgICAoYmFzZSAxNikJCVByaW1heCBFbGVjdHJvbmljcyBMVEQuCisJCQkJOEYsTm8uIDY2OSwgUnVleSBLdWFuZyBSb2FkLCBOZWlodQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiszOC0xNi1EMSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzM4MTZEMSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMzgtMjItOUQgICAoaGV4KQkJUElSRUxMSSBCUk9BREJBTkQgU09MVVRJT05TIAorMzgyMjlEICAgICAoYmFzZSAxNikJCVBJUkVMTEkgQlJPQURCQU5EIFNPTFVUSU9OUyAKKwkJCQlWSUFMRSBTQVJDQSAyMjIgCisJCQkJICBNSUxBTk8gIElUQUxZIDIwMTI2CisJCQkJSVRBTFkKKworMzgtMjItRDYgICAoaGV4KQkJSDNDIFRlY2hub2xvZ2llcyBDby4sIExpbWl0ZWQKKzM4MjJENiAgICAgKGJhc2UgMTYpCQlIM0MgVGVjaG5vbG9naWVzIENvLiwgTGltaXRlZAorCQkJCTMxMCBMaXVoZSBSb2FkLCBaaGlqaWFuZyBTY2llbmNlIFBhcmsKKwkJCQlIYW5nemhvdSBaaGVqaWFuZywgIDMxMDA1MworCQkJCUNISU5BCisKKzM4LTI2LUNEICAgKGhleCkJCUFORFRFSyAgCiszODI2Q0QgICAgIChiYXNlIDE2KQkJQU5EVEVLICAKKwkJCQlBbSBTb2VsZG5lcm1vb3MgMTcKKwkJCQlIYWxsYmVyZ21vb3MgQmF2YXJpYSA1Mzk5CisJCQkJR0VSTUFOWQorCiszOC0zMS1BQyAgIChoZXgpCQlXRUcKKzM4MzFBQyAgICAgKGJhc2UgMTYpCQlXRUcKKwkJCQlBdi4gUHJlZi4gV2FsZGVtYXIgR3J1YmJhLCAzMDAwCisJCQkJSmFyYWd1aT9vZSBkbyBTdWwgU2FudGEgQ2F0YXJpbmEgODkyNTYtOTAwCisJCQkJQlJBWklMCisKKzM4LTUyLTFBICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50IDc3MDUKKzM4NTIxQSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudCA3NzA1CisJCQkJNjAwIE1hcmNoIFJkLgorCQkJCU90dGF3YSBPbmF0cmlvIEswQSAxVDAKKwkJCQlDQU5BREEKKworMzgtNTgtMEMgICAoaGV4KQkJUGFuYWNjZXNzIFN5c3RlbXMgR21iSAorMzg1ODBDICAgICAoYmFzZSAxNikJCVBhbmFjY2VzcyBTeXN0ZW1zIEdtYkgKKwkJCQlHdXRlbmJlcmdzdHJhaT9vZWUgOAorCQkJCUlzbWFuaW5nIEJZIDg1NzM3CisJCQkJR0VSTUFOWQorCiszOC01OS1GOSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCiszODU5RjkgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKKzM4LTVGLUMzICAgKGhleCkJCVl1IEplb25nIFN5c3RlbSwgQ28uTHRkCiszODVGQzMgICAgIChiYXNlIDE2KQkJWXUgSmVvbmcgU3lzdGVtLCBDby5MdGQKKwkJCQkjNTAzLCBEb25nIGlsIEIvRCwgODI2LCBHdXJvLTNkb25nLCAKKwkJCQlHdXJvLUd1LCAKKwkJCQlTZW91bCAgMTUyLTg3OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszOC02My1GNiAgIChoZXgpCQkzTk9EIE1VTFRJTUVESUEoU0hFTlpIRU4pQ08uLExURAorMzg2M0Y2ICAgICAoYmFzZSAxNikJCTNOT0QgTVVMVElNRURJQShTSEVOWkhFTilDTy4sTFRECisJCQkJRjYsQnVpbGRpbmcxMSxTaGVuemhlbiBTb2Z0d2FyZSBQYXJrCisJCQkJTm8uMiBLZWppemhvbmcgUm9hZCxOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzM4LTZFLTIxICAgKGhleCkJCVdhc2lvbiBHcm91cCBMdGQuCiszODZFMjEgICAgIChiYXNlIDE2KQkJV2FzaW9uIEdyb3VwIEx0ZC4KKwkJCQlOby40NjggV2VzdCBUb25nemlwbyBSb2FkIEhpZ2gtVGVjaCBJbmR1c3RyaWFsIERldmVsb3BtZW50IFpvbmUKKwkJCQlDaGFuZ3NoYSBDaXR5IEh1bmFuIFByb3ZpbmNlLCA0MTAyMDUgCisJCQkJQ0hJTkEKKworMzgtNzItQzAgICAoaGV4KQkJQ09NVFJFTkQKKzM4NzJDMCAgICAgKGJhc2UgMTYpCQlDT01UUkVORAorCQkJCTNGLTEsMTAgTGFuZSA2MDksIENodW5nIEhzaW4gUm9hZCwgU2VjdGlvbiA1CisJCQkJU2FuIENodW5nIENpdHksIAorCQkJCVRhaXBlaSBIc2llbiAgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiszOC05MS1GQiAgIChoZXgpCQlYZW5veCBIb2xkaW5nIEJWCiszODkxRkIgICAgIChiYXNlIDE2KQkJWGVub3ggSG9sZGluZyBCVgorCQkJCUxpbmdlZGlqayA4MAorCQkJCVRyaWNodCBHZWxkZXJsYW5kIDQxOTYgSEMKKwkJCQlORVRIRVJMQU5EUworCiszOC05NS05MiAgIChoZXgpCQlCZWlqaW5nIFRlbmR5cm9uIENvcnBvcmF0aW9uCiszODk1OTIgICAgIChiYXNlIDE2KQkJQmVpamluZyBUZW5keXJvbiBDb3Jwb3JhdGlvbgorCQkJCTE4MTAsVG93ZXIgQixKaW4tbWEsQnVpbGRpbmcsMTcgRWFzdCBRaW5nIEh1YSBSb2FkIAorCQkJCUhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODMKKwkJCQlDSElOQQorCiszOC05Ri04MyAgIChoZXgpCQlPVE4gU3lzdGVtcyBOLlYuCiszODlGODMgICAgIChiYXNlIDE2KQkJT1ROIFN5c3RlbXMgTi5WLgorCQkJCUF0ZWFsYWFuIDM0CisJCQkJSGVyZW50YWxzICAyMjAwCisJCQkJQkVMR0lVTQorCiszOC1BOS01RiAgIChoZXgpCQlBY3RpZmlvIEluYworMzhBOTVGICAgICAoYmFzZSAxNikJCUFjdGlmaW8gSW5jCisJCQkJMjI1IFd5bWFuIFN0cmVldAorCQkJCVN1aXRlIDMwCisJCQkJV2FsdGhhbSBNQSAwMjQ1MQorCQkJCUlORElBCisKKzM4LUJCLTIzICAgKGhleCkJCU96VmlzaW9uIEFtZXJpY2EgTExDCiszOEJCMjMgICAgIChiYXNlIDE2KQkJT3pWaXNpb24gQW1lcmljYSBMTEMKKwkJCQk0MDAgV2VzdCBDdW1taW5ncyBQYXJrCisJCQkJV29idXJuIE1BIDAxODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiszOC1DNy1CQSAgIChoZXgpCQlDUyBTZXJ2aWNlcyBDby4sTHRkLgorMzhDN0JBICAgICAoYmFzZSAxNikJCUNTIFNlcnZpY2VzIENvLixMdGQuCisJCQkJSW1vbiBCTERHIDk1IEVkb21hY2hpCisJCQkJQ2h1b2gta3UKKwkJCQlLb2JlIEh5b2dvIDY1MDAwMzMKKwkJCQlKQVBBTgorCiszOC1DOC01QyAgIChoZXgpCQlDaXNjbyBTUFZURworMzhDODVDICAgICAoYmFzZSAxNikJCUNpc2NvIFNQVlRHCisJCQkJNTAzMCBTdWdhcmxvYWYgUGt3eQorCQkJCU1TIDQuVC42MDcKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDE3CisJCQkJVU5JVEVEIFNUQVRFUworCiszOC1EMS0zNSAgIChoZXgpCQlFYXN5SU8gQ29ycG9yYXRpb24gU2RuLiBCaGQuCiszOEQxMzUgICAgIChiYXNlIDE2KQkJRWFzeUlPIENvcnBvcmF0aW9uIFNkbi4gQmhkLgorCQkJCU5vLiAzMi0yICZhbXA7IDMyLTMsIEphbGFuIFB1dGVyaSAyLzQKKwkJCQlCYW5kYXIgUHV0ZXJpCisJCQkJUHVjaG9uZyBTZWxhbmdvciA0NzEwMAorCQkJCU1BTEFZU0lBCisKKzM4LUU3LUQ4ICAgKGhleCkJCUhUQyBDb3Jwb3JhdGlvbgorMzhFN0Q4ICAgICAoYmFzZSAxNikJCUhUQyBDb3Jwb3JhdGlvbgorCQkJCU5vLjIzIFhpbmdodWEgUm9hZAorCQkJCVRhb3l1YW4gQ2l0eQorCQkJCVRhb3l1YW4gQ291bnR5ICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzM4LUU4LURGICAgKGhleCkJCWIgZ21iaCBtZWRpZW4gKyBkYXRlbmJhbmtlbgorMzhFOERGICAgICAoYmFzZSAxNikJCWIgZ21iaCBtZWRpZW4gKyBkYXRlbmJhbmtlbgorCQkJCUt1cmZ1ZXJzdGVuc3RyYXNzZSAyMgorCQkJCUx1ZHdpZ3NidXJnIEJXIDcxNjM2CisJCQkJR0VSTUFOWQorCiszOC1FOS04QyAgIChoZXgpCQlSZWNvIFMucC5BLgorMzhFOThDICAgICAoYmFzZSAxNikJCVJlY28gUy5wLkEuCisJCQkJdmlhIGRlbGwmIzM5O0luZHVzdHJpYSwgOAorCQkJCU1vbnRhbm8gTHVjaW5vIENPIDIyMDcwCisJCQkJSVRBTFkKKworMzgtRkUtQzUgICAoaGV4KQkJRWxsaXBzIEIuVi4KKzM4RkVDNSAgICAgKGJhc2UgMTYpCQlFbGxpcHMgQi5WLgorCQkJCVVya2hvdmVuc2V3ZWcgMTEKKwkJCQlFaW5kaG92ZW4gTm9vcmQtQnJhYmFudCA1NjQxIEtBCisJCQkJTkVUSEVSTEFORFMKKworM0MtMDItQjEgICAoaGV4KQkJQ3JlYXRpb24gVGVjaG5vbG9naWVzIExQCiszQzAyQjEgICAgIChiYXNlIDE2KQkJQ3JlYXRpb24gVGVjaG5vbG9naWVzIExQCisJCQkJMzkzOSBOb3J0aCBGcmFzZXIgV2F5CisJCQkJQnVybmFieSBCQyBWNUogNUoyCisJCQkJQ0FOQURBCisKKzNDLTA0LUJGICAgKGhleCkJCVBSQVZJUyBTWVNURU1TIENvLkx0ZC4sIAorM0MwNEJGICAgICAoYmFzZSAxNikJCVBSQVZJUyBTWVNURU1TIENvLkx0ZC4sIAorCQkJCTRGLCA1RiBKYWV5b29uIEJsZCwgNzUtMyBZYW5namFlLURvbmcsIAorCQkJCVNlb3VsIFNlb2Noby1HdSAxMzctODg5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzNDLTA1LUFCICAgKGhleCkJCVByb2R1Y3QgQ3JlYXRpb24gU3R1ZGlvCiszQzA1QUIgICAgIChiYXNlIDE2KQkJUHJvZHVjdCBDcmVhdGlvbiBTdHVkaW8KKwkJCQk0MjUgV2VzdGxha2UgQXZlIE4KKwkJCQlTZWF0dGxlIFdBIDk4MTA5CisJCQkJVU5JVEVEIFNUQVRFUworCiszQy0wNy01NCAgIChoZXgpCQlBcHBsZSBJbmMKKzNDMDc1NCAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLTA5LTZEICAgKGhleCkJCVBvd2VyaG91c2UgRHluYW1pY3MKKzNDMDk2RCAgICAgKGJhc2UgMTYpCQlQb3dlcmhvdXNlIER5bmFtaWNzCisJCQkJMSBCcmlkZ2UgU3RyZWV0CisJCQkJTmV3dG9uIE1BIDAyNDU4CisJCQkJVU5JVEVEIFNUQVRFUworCiszQy0wRi1DMSAgIChoZXgpCQlLQkMgTmV0d29ya3MKKzNDMEZDMSAgICAgKGJhc2UgMTYpCQlLQkMgTmV0d29ya3MKKwkJCQkyNTY5MSBBdGxhbnRpYyBPY2VhbiBEcgorCQkJCVN1aXRlIEIzCisJCQkJTGFrZSBGb3Jlc3QgQ0EgOTI2MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLTEwLTZGICAgKGhleCkJCUFMQkFISVRIIFRFQ0hOT0xPR0lFUyAKKzNDMTA2RiAgICAgKGJhc2UgMTYpCQlBTEJBSElUSCBURUNITk9MT0dJRVMgCisJCQkJMTY1LCBLaW5nIEFiZHVsbGFoIFNlY29uZCBTdHJlZXQKKwkJCQlBbW1hbiAgMTE5NTMKKwkJCQlKT1JEQU4KKworM0MtMTktMTUgICAoaGV4KQkJR0ZJIENocm9ubyBUaW1lCiszQzE5MTUgICAgIChiYXNlIDE2KQkJR0ZJIENocm9ubyBUaW1lCisJCQkJMTIxIHJ1ZSBkZXMgR3VpbGxlZXMKKwkJCQlDSEFVUkFZICA3OTE4NQorCQkJCUZSQU5DRQorCiszQy0xQS03OSAgIChoZXgpCQlIdWF5dWFuIFRlY2hub2xvZ3kgQ08uLExURAorM0MxQTc5ICAgICAoYmFzZSAxNikJCUh1YXl1YW4gVGVjaG5vbG9neSBDTy4sTFRECisJCQkJUjMwOCBCbG9jayBKaW5nbWVuZyBIaWdoLVRlY2ggQnVpbGRpbmcsTk8uNS0xIFNoYW5nZGkgRWFzdCBSb2FkLAorCQkJCUhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworM0MtMUMtQkUgICAoaGV4KQkJSkFEQUsgTExDCiszQzFDQkUgICAgIChiYXNlIDE2KQkJSkFEQUsgTExDCisJCQkJNzI3OSBXaWxsaWFtIEJhcnJ5IEJsdmQKKwkJCQlOb3J0aCBTeXJhY3VzZSBOWSAxMzIxMgorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtMjYtRDUgICAoaGV4KQkJU290ZXJhIFdpcmVsZXNzCiszQzI2RDUgICAgIChiYXNlIDE2KQkJU290ZXJhIFdpcmVsZXNzCisJCQkJOTQ0NCBXYXBsZXMgU3RyZWV0CisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiszQy0yNy02MyAgIChoZXgpCQlTTEUgcXVhbGl0eSBlbmdpbmVlcmluZyBHbWJIICZhbXA7IENvLiBLRworM0MyNzYzICAgICAoYmFzZSAxNikJCVNMRSBxdWFsaXR5IGVuZ2luZWVyaW5nIEdtYkggJmFtcDsgQ28uIEtHCisJCQkJSm9zZWYtQnVjaGluZ2VyLVN0ci4gOQorCQkJCUdyYWZlbmF1IEJhdmFyaWEgOTQ0ODEKKwkJCQlHRVJNQU5ZCisKKzNDLTJELUI3ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiszQzJEQjcgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TODcyMworCQkJCURhbGxhcyBUZXhhcyA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworM0MtMkYtM0EgICAoaGV4KQkJU0ZPUlpBVE8gQ29ycC4KKzNDMkYzQSAgICAgKGJhc2UgMTYpCQlTRk9SWkFUTyBDb3JwLgorCQkJCTg2MworCQkJCUFSQUkKKwkJCQlISU5PLVNISSBUT0tZTyAxOTEtMDAyMgorCQkJCUpBUEFOCisKKzNDLTM5LUMzICAgKGhleCkJCUpXIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorM0MzOUMzICAgICAoYmFzZSAxNikJCUpXIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTNBMTcsIE5vLiA1IEhzaW4teWkgUmQuLCBTZWMuIDUKKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworM0MtNEEtOTIgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiszQzRBOTIgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLTRDLTY5ICAgKGhleCkJCUluZmluaXR5IFN5c3RlbSBTLkwuCiszQzRDNjkgICAgIChiYXNlIDE2KQkJSW5maW5pdHkgU3lzdGVtIFMuTC4KKwkJCQlDcnRyYS4gTi1JSSwgS20gNDgsNSBQb2wuIEluZC4gQ2FiYW5pbGxhcyBkZWwgQ2FtcG8sIFBhcmMuIDEyQgorCQkJCUd1YWRhbGFqYXJhICAxOTE3MQorCQkJCVNQQUlOCisKKzNDLTVBLTM3ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzNDNUEzNyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzNDLTVGLTAxICAgKGhleCkJCVN5bmVyY2hpcCBDby4sIEx0ZC4KKzNDNUYwMSAgICAgKGJhc2UgMTYpCQlTeW5lcmNoaXAgQ28uLCBMdGQuCisJCQkJYy9vIFN5bmVyY2hpcCBVU0EgQ29ycC4KKwkJCQk4ODAgRS4gQXJxdWVzIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLTYyLTAwICAgKGhleCkJCVNhbXN1bmcgZWxlY3Ryb25pY3MgQ08uLCBMVEQKKzNDNjIwMCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIGVsZWN0cm9uaWNzIENPLiwgTFRECisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIFllb25ndG9uZy1ndSwKKwkJCQlTdXdvbi1DaXR5IEd5ZW9uZ2dpLWRvIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworM0MtNjItNzggICAoaGV4KQkJU0hFTlpIRU4gSkVUTkVUIFRFQ0hOT0xPR1kgQ08uLExURC4KKzNDNjI3OCAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBKRVRORVQgVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCVJvb20gNDAzLDR0aCBmbG9vcixRaW5naHVhIEluZm9ybWF0aW9uIEJ1aWxkaW5nLEtleXVhbiBSb2FkLE5vcnRoIERpc3RyaWN0IG9mIFRlY2gtUGFyayxOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzNDLTY3LTJDICAgKGhleCkJCVNjaW92aWQgSW5jLgorM0M2NzJDICAgICAoYmFzZSAxNikJCVNjaW92aWQgSW5jLgorCQkJCTM4NyBTIFNpbHZlcmJyb29rIERyCisJCQkJQW5haGVpbSBDQSA5MjgwNworCQkJCVVOSVRFRCBTVEFURVMKKworM0MtNkYtNDUgICAoaGV4KQkJRmliZXJwcm8gSW5jLgorM0M2RjQ1ICAgICAoYmFzZSAxNikJCUZpYmVycHJvIEluYy4KKwkJCQk1OS00IEphbmctZG9uZywgWXVzb25nLWd1CisJCQkJRGVham9uIDMwNS0zNDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworM0MtNzQtMzcgICAoaGV4KQkJUklNCiszQzc0MzcgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzNDLTc1LTRBICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiszQzc1NEEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiszQy04Qi1GRSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCiszQzhCRkUgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszQy05MS01NyAgIChoZXgpCQlIYW5nemhvdSBZdWxvbmcgQ29ubXVuaWNhdGlvbiBDby4sTHRkCiszQzkxNTcgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgWXVsb25nIENvbm11bmljYXRpb24gQ28uLEx0ZAorCQkJCTVGIEJ1aWxkaW5nIDIsTm8uNTYsTGl1aGUgUm9hZCxYaWh1IERpc3RyaWN0CisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDIzCisJCQkJQ0hJTkEKKworM0MtOTktRjcgICAoaGV4KQkJTGFuc2VudGVjaG5vbG9neSBBQgorM0M5OUY3ICAgICAoYmFzZSAxNikJCUxhbnNlbnRlY2hub2xvZ3kgQUIKKwkJCQlSaT9vZXJrdWxsc3ZpP29lZ2VuIDQKKwkJCQlIYWxtc3RhZCAgMzAyNDEKKwkJCQlTV0VERU4KKworM0MtQTctMkIgICAoaGV4KQkJTVJWIENvbW11bmljYXRpb25zIChOZXR3b3JrcykgTFRECiszQ0E3MkIgICAgIChiYXNlIDE2KQkJTVJWIENvbW11bmljYXRpb25zIChOZXR3b3JrcykgTFRECisJCQkJUC5PIEJveCA2MTQKKwkJCQlZb2tuZWFtICAgMjA2OTIKKwkJCQlJU1JBRUwKKworM0MtQjEtNUIgICAoaGV4KQkJQXZheWEsIEluYworM0NCMTVCICAgICAoYmFzZSAxNikJCUF2YXlhLCBJbmMKKwkJCQkyMTEgTW91bnQgQWlyeSBSb2FkCisJCQkJQmFza2luZyBSaWRnZSBOSiAwNzkyMC0yMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiszQy1CMS03RiAgIChoZXgpCQlXYXR0d2F0Y2hlcnMgUHR5IExkCiszQ0IxN0YgICAgIChiYXNlIDE2KQkJV2F0dHdhdGNoZXJzIFB0eSBMZAorCQkJCTIyIFdvb2RidXJ5IFJkIFN0LiBJdmVzCisJCQkJU3lkbmV5IE5TVyAyMDc1CisJCQkJQVVTVFJBTElBCisKKzNDLUJELUQ4ICAgKGhleCkJCUxHIEVMRUNUUk9OSUNTIElOQworM0NCREQ4ICAgICAoYmFzZSAxNikJCUxHIEVMRUNUUk9OSUNTIElOQworCQkJCTE5LTEsIENIRU9OR0hPLVJJLCBKSU5XSS1NWUVPTgorCQkJCVBZRU9OR1RBRUsgR1lFT05HR0ktRE8gNDUxLTcxMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszQy1DMC1DNiAgIChoZXgpCQlkJmFtcDtiIGF1ZGlvdGVjaG5payBHbWJICiszQ0MwQzYgICAgIChiYXNlIDE2KQkJZCZhbXA7YiBhdWRpb3RlY2huaWsgR21iSAorCQkJCUV1Z2VuIEFkb2xmZiBTdHIgMTM0CisJCQkJQmFja25hbmcgQmFkZW4gV3VlcnR0ZW1iZXJnIDcxNTIyCisJCQkJR0VSTUFOWQorCiszQy1EMS02RSAgIChoZXgpCQlUZWxlcG93ZXIgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZAorM0NEMTZFICAgICAoYmFzZSAxNikJCVRlbGVwb3dlciBDb21tdW5pY2F0aW9uIENvLiwgTHRkCisJCQkJNS9GLFpvbmdoZSBCdWlsZGluZywgSGFudGlhbiBUZWNobm9sb2d5IFRvd24sR3VpcGluZyBSRCxOYW5oYWkgRGlzdHJpY3QsRgorCQkJCUZvc2hhbiBDaXR5IEd1YW5nZG9uZyA1MjgyNTEKKwkJCQlDSElOQQorCiszQy1EOS0yQiAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzNDRDkyQiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTWFpbGNvZGUgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLURGLTFFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzNDREYxRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLUU1LUE2ICAgKGhleCkJCUhhbmd6aG91IEgzQyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiszQ0U1QTYgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgSDNDIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlPcmllbnRhbCBFbGVjdHJvbmljIEJsZC4sIE5PLjIsQ2h1YW5neWUgUm9hZAorCQkJCVNoYW5nIERpIEluZm9ybWF0aW9uIEluZHVzdHJ5IEJhc2UsIEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiszQy1FQS00RiAgIChoZXgpCQkyV2lyZQorM0NFQTRGICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSAgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLUY1LTJDICAgKGhleCkJCURTUEVDSUFMSVNUUyBHbWJICiszQ0Y1MkMgICAgIChiYXNlIDE2KQkJRFNQRUNJQUxJU1RTIEdtYkgKKwkJCQlLYWlzZXJpbi1BdWd1c3RhLUFsbGVlIDEwLTExCisJCQkJQmVybGluICAxMDU1MworCQkJCUdFUk1BTlkKKworM0MtRjctMkEgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzNDRjcyQSAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU3MAorCQkJCUZJTkxBTkQKKworNDAtMDEtQzYgICAoaGV4KQkJM0NPTSBFVVJPUEUgTFRECis0MDAxQzYgICAgIChiYXNlIDE2KQkJM0NPTSBFVVJPUEUgTFRECisJCQkJUGVvcGxlYnVpbGRpbmcgMgorCQkJCU1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cyBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworNDAtMDQtMEMgICAoaGV4KQkJQSZUCis0MDA0MEMgICAgIChiYXNlIDE2KQkJQSZUCisJCQkJIzQxMSwgV2lsbCBUb3duLCA0MDItMworCQkJCVNhbmctRG9uZywgV29ubWktR3UsIAorCQkJCUJ1Y2hlb24tU2kgR3llb25nZ2ktRG8gNDIwLTgxNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0MC0xMi1FNCAgIChoZXgpCQlDb21wYXNzLUVPUworNDAxMkU0ICAgICAoYmFzZSAxNikJCUNvbXBhc3MtRU9TCisJCQkJNyBHaWJvcmVpIElzcmFlbAorCQkJCU5hdGFueWEgIDQyNTA0CisJCQkJSVNSQUVMCisKKzQwLTEzLUQ5ICAgKGhleCkJCUdsb2JhbCBFUworNDAxM0Q5ICAgICAoYmFzZSAxNikJCUdsb2JhbCBFUworCQkJCVNpbmltaT9vZWVudGllIDggYgorCQkJCUVzcG9vICAwMjYzMQorCQkJCUZJTkxBTkQKKworNDAtMTUtOTcgICAoaGV4KQkJUHJvdGVjdCBBbWVyaWNhLCBJbmMuCis0MDE1OTcgICAgIChiYXNlIDE2KQkJUHJvdGVjdCBBbWVyaWNhLCBJbmMuCisJCQkJNTEwMCBOIElILTM1CisJCQkJU3VpdGUgQgorCQkJCVJvdW5kIFJvY2sgVFggNzg2ODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLTE2LTlGICAgKGhleCkJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorNDAxNjlGICAgICAoYmFzZSAxNikJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorCQkJCTEtNkYsIEJ1aWxkaW5nIDIsIFBpbmdzaGFuZGF5dWFuIEluZHVzdHJpYWwsIFNvdXRoIFpvbmUsCisJCQkJVGFveXVhbiBTdHJlZXQsIE5hbnNoYW4gRGlzdHJpY3QsIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCis0MC0xOC1ENyAgIChoZXgpCQlXeWxlIFRlbGVtZXRyeSBhbmQgRGF0YSBTeXN0ZW1zCis0MDE4RDcgICAgIChiYXNlIDE2KQkJV3lsZSBUZWxlbWV0cnkgYW5kIERhdGEgU3lzdGVtcworCQkJCTQ0NDE3IFBlY2FuIENUCisJCQkJQ2FsaWZvcm5pYSBNRCAyMDYxOQorCQkJCVVOSVRFRCBTVEFURVMKKworNDAtMUQtNTkgICAoaGV4KQkJQmlvbWV0cmljIEFzc29jaWF0ZXMsIExQCis0MDFENTkgICAgIChiYXNlIDE2KQkJQmlvbWV0cmljIEFzc29jaWF0ZXMsIExQCisJCQkJOTQ3NSBEZWVyZWNvIFJkLgorCQkJCVN1aXRlIDMwNAorCQkJCVRpbW9uaXVtIE1EIDIxMDkzCisJCQkJVU5JVEVEIFNUQVRFUworCis0MC0yMi1FRCAgIChoZXgpCQlEaWdpdGFsIFByb2plY3Rpb24gTHRkCis0MDIyRUQgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBQcm9qZWN0aW9uIEx0ZAorCQkJCUdyZWVuc2lkZSBXYXkKKwkJCQlNaWRkbGV0b24KKwkJCQlNYW5jaGVzdGVyIExhbmNzIE0yNCAxWFgKKwkJCQlVTklURUQgS0lOR0RPTQorCis0MC0yNS1DMiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzQwMjVDMiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzQwLTJCLUExICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCis0MDJCQTEgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworNDAtMkMtRjQgICAoaGV4KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCis0MDJDRjQgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJMTQxLCBMYW5lIDM1MSwgVGFpcGluZyBSZC4gU2VjLiAxLCBUc2FvIFR1ZW4sIAorCQkJCU5hbi1Ub3UgSHNpZW4sICA1NDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQwLTMwLTA0ICAgKGhleCkJCUFwcGxlLCBJbmMuCis0MDMwMDQgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLTM3LUFEICAgKGhleCkJCU1hY3JvIEltYWdlIFRlY2hub2xvZ3ksIEluYy4KKzQwMzdBRCAgICAgKGJhc2UgMTYpCQlNYWNybyBJbWFnZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJRWFzdCBCbGRnLiwgNnRoIEZsb29yLCBJVCBWZW50dXJlIFRvd2VyLAorCQkJCTc4IEdhcmFrYm9uLURvbmcsIFNvbmdwYS1HdSwKKwkJCQlTZW91bCAgMTM4LTk1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0MC0zQy1GQyAgIChoZXgpCQlBcHBsZSBJbmMKKzQwM0NGQyAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIGluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLTQwLTIyICAgKGhleCkJCVpJVgorNDA0MDIyICAgICAoYmFzZSAxNikJCVpJVgorCQkJCVBhcnF1ZSBUZWNub2xpP29lZ2ljbywgMjEwCisJCQkJWkFNVURJTyBWSVpDQVlBIDQ4MTcwCisJCQkJU1BBSU4KKworNDAtNDAtNkIgICAoaGV4KQkJSWNvbWVyYQorNDA0MDZCICAgICAoYmFzZSAxNikJCUljb21lcmEKKwkJCQlWaWtpbmdzZ2F0YW4gMworCQkJCUdpP29ldGVib3JnICA0MTEwNAorCQkJCVNXRURFTgorCis0MC00QS0wMyAgIChoZXgpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorNDA0QTAzICAgICAoYmFzZSAxNikJCVp5WEVMIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCisJCQkJTm8uNiBJbm5vdmF0aW9uIFJvYWQgSUkKKwkJCQlTY2llbmNlIFBhcmsKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0MC00RC04RSAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCis0MDREOEUgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyOQorCQkJCUNISU5BCisKKzQwLTUyLTBEICAgKGhleCkJCVBpY28gVGVjaG5vbG9neQorNDA1MjBEICAgICAoYmFzZSAxNikJCVBpY28gVGVjaG5vbG9neQorCQkJCUphbWVzIEhvdXNlLCBNYXJsYm9yb3VnaCBSb2FkCisJCQkJQ29sbXdvcnRoIEJ1c2luZXNzIFBhcmsKKwkJCQlTdCBOZW90cyBDYW1icmlkZ2VzaGlyZSAgUEUxOSA4WVAKKwkJCQlVTklURUQgS0lOR0RPTQorCis0MC01NS0zOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis0MDU1MzkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis0MC01QS05QiAgIChoZXgpCQlBTk9WTworNDA1QTlCICAgICAoYmFzZSAxNikJCUFOT1ZPCisJCQkJWkkgZGUgQnJhY2hldXggCisJCQkJMTYsIFJ1ZSBKb3NlcGggQ3Vnbm90CisJCQkJQkVBVVZBSVMgIDYwMDAwCisJCQkJRlJBTkNFCisKKzQwLTVGLUJFICAgKGhleCkJCVJJTQorNDA1RkJFICAgICAoYmFzZSAxNikJCVJJTQorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCis0MC01Ri1DMiAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworNDA1RkMyICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis0MC02MS04NiAgIChoZXgpCQlNSUNSTy1TVEFSIElOVCdMIENPLixMVEQKKzQwNjE4NiAgICAgKGJhc2UgMTYpCQlNSUNSTy1TVEFSIElOVCdMIENPLixMVEQKKwkJCQlOby42OSxMaS1EZSBTdAorCQkJCUp1bmctSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0MC02MS04RSAgIChoZXgpCQlIb3J0LVBsYW4KKzQwNjE4RSAgICAgKGJhc2UgMTYpCQlIb3J0LVBsYW4KKwkJCQk2NjYtMSBTaGltb2hhcmEKKwkJCQlIaXJhaGFyYQorCQkJCUtvbW9ybyBOYWdhbm8gMzg0LTAwOTIKKwkJCQlKQVBBTgorCis0MC04My1ERSAgIChoZXgpCQlNb3Rvcm9sYQorNDA4M0RFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhCisJCQkJT25lIE1vdG9yb2xhIFBsYXphCisJCQkJSG9sdHN2aWxsZSBOWSAxMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworNDAtODQtOTMgICAoaGV4KQkJQ2xhdmlzdGVyIEFCCis0MDg0OTMgICAgIChiYXNlIDE2KQkJQ2xhdmlzdGVyIEFCCisJCQkJU2pvZ2F0YW4gNkoKKwkJCQlPcm5za29sZHN2aWsgIDg5MTYwCisJCQkJU1dFREVOCisKKzQwLThBLTlBICAgKGhleCkJCVRJVEVORyBDTy4sIEx0ZC4KKzQwOEE5QSAgICAgKGJhc2UgMTYpCQlUSVRFTkcgQ08uLCBMdGQuCisJCQkJN0ZsLiBTaGluZG8gQi9EIDEwIEdhcmFrLWRvbmcKKwkJCQlTb25ncGEtZ3UKKwkJCQlTZW91bCAgMTM4LTE2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0MC04Qi1GNiAgIChoZXgpCQlTaGVuemhlbiBUQ0wgTmV3IFRlY2hub2xvZ3kgQ287IEx0ZC4KKzQwOEJGNiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBUQ0wgTmV3IFRlY2hub2xvZ3kgQ287IEx0ZC4KKwkJCQlUQ0wgQnVpbGRpbmcsICM1IENlbnRyYWwgTmFuaGFpIFJvYWQsIE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4sIEd1YW5nZG9uZywgIDUxODA2NworCQkJCUNISU5BCisKKzQwLTk1LTU4ICAgKGhleCkJCUFpc2lubyBDb3Jwb3JhdGlvbgorNDA5NTU4ICAgICAoYmFzZSAxNikJCUFpc2lubyBDb3Jwb3JhdGlvbgorCQkJCU5vLjE4QSwgWGluZ3NoaWtvdSBSb2FkLAorCQkJCUhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAxOTUKKwkJCQlDSElOQQorCis0MC05Ny1EMSAgIChoZXgpCQlCSyBFbGVjdHJvbmljcyBjYworNDA5N0QxICAgICAoYmFzZSAxNikJCUJLIEVsZWN0cm9uaWNzIGNjCisJCQkJMTUwIFN3YWFyZGxlbGllIEF2ZQorCQkJCVRoZSBXaWxsb3dzCisJCQkJUHJldG9yaWEgR2F1dGVuZyAwMTg0CisJCQkJU09VVEggQUZSSUNBCisKKzQwLTk4LTRFICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCis0MDk4NEUgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLTk4LTdCICAgKGhleCkJCUFpc2lubyBDb3Jwb3JhdGlvbgorNDA5ODdCICAgICAoYmFzZSAxNikJCUFpc2lubyBDb3Jwb3JhdGlvbgorCQkJCU5vLjE4IEEsWGluZ3NoaWtvdSBSb2FkLEhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMTk1CisJCQkJQ0hJTkEKKworNDAtQTYtQTQgICAoaGV4KQkJUGFzc2l2U3lzdGVtcyBMdGQKKzQwQTZBNCAgICAgKGJhc2UgMTYpCQlQYXNzaXZTeXN0ZW1zIEx0ZAorCQkJCU1lZHdheSBIb3VzZQorCQkJCU5ld2J1cnkgQnVzaW5lc3MgUGFyaworCQkJCU5ld2J1cnkgQmVya3MgUkcxNCAyUFoKKwkJCQlVTklURUQgS0lOR0RPTQorCis0MC1BNi1EOSAgIChoZXgpCQlBcHBsZQorNDBBNkQ5ICAgICAoYmFzZSAxNikJCUFwcGxlCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis0MC1CMi1DOCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzQwQjJDOCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlDQVJSRVRFUkEgQkFTRSBBRVJFQSAjIDU4NTAKKwkJCQlaYXBvcGFuIEphbGlzY28gNDQxMzAKKwkJCQlNRVhJQ08KKworNDAtQjMtRkMgICAoaGV4KQkJTG9naXRhbCBDby4gTGltaXRlZCAKKzQwQjNGQyAgICAgKGJhc2UgMTYpCQlMb2dpdGFsIENvLiBMaW1pdGVkIAorCQkJCVJtIDkwMS05MDIsIDkvRiwgTmF0aGFuIENlbnRyZSwgCisJCQkJNTgwRy1LIE5hdGhhbiBSb2FkLCBNb25na29rLCAKKwkJCQlLb3dsb29uICAKKwkJCQlIT05HIEtPTkcKKworNDAtQzItNDUgICAoaGV4KQkJU2hlbnpoZW4gSGV4aWNvbSBUZWNobm9sb2d5IENvLiwgTHRkLgorNDBDMjQ1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEhleGljb20gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxNTEwIFdlc3QgQnVpbGRpbmcsTmFuc2hhbiBTb2Z0d2FyZSBQYXJrLCBOYW5zaGFuIERpc3QuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1MworCQkJCUNISU5BCisKKzQwLUM3LUM5ICAgKGhleCkJCU5hdmlpdCBJbmMuCis0MEM3QzkgICAgIChiYXNlIDE2KQkJTmF2aWl0IEluYy4KKwkJCQkzMDU4QSBTY290dCBCbHZkLgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCis0MC1DRC0zQSAgIChoZXgpCQlaMyBUZWNobm9sb2d5Cis0MENEM0EgICAgIChiYXNlIDE2KQkJWjMgVGVjaG5vbG9neQorCQkJCTI3MjAgSGFycmlzb24gU3QKKwkJCQlFdmFuc3RvbiBJTCA2MDIwMQorCQkJCVVOSVRFRCBTVEFURVMKKworNDAtRDMtMkQgICAoaGV4KQkJQXBwbGUsIEluYworNDBEMzJEICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLUQ0LTBFICAgKGhleCkJCUJpb2RhdGEgTHRkCis0MEQ0MEUgICAgIChiYXNlIDE2KQkJQmlvZGF0YSBMdGQKKwkJCQkxMCBTdG9ja3MgU3RyZWV0CisJCQkJTWFuY2hlc3RlciAgTTggOFFHCisJCQkJVU5JVEVEIEtJTkdET00KKworNDAtRUMtRjggICAoaGV4KQkJU2llbWVucyBBRworNDBFQ0Y4ICAgICAoYmFzZSAxNikJCVNpZW1lbnMgQUcKKwkJCQlJIElTIE1TIEVETQorCQkJCU11bmljaCBHZXJtYW55IDg1NjMwCisJCQkJR0VSTUFOWQorCis0MC1FRi00QyAgIChoZXgpCQlGaWhvbmVzdCBjb21tdW5pY2F0aW9uIGNvLixMdGQKKzQwRUY0QyAgICAgKGJhc2UgMTYpCQlGaWhvbmVzdCBjb21tdW5pY2F0aW9uIGNvLixMdGQKKwkJCQlSb29tOTAyLFBhcmsgcm9hZCxaaGl4aW5nIGJ1c2luZXNzLWJ1aWxkaW5nCisJCQkJQ2hhbmdwaW5nIHRvd24KKwkJCQlEb25nZ3VhbiBHdWFuZ2RvbmcgNTIzNTYwCisJCQkJQ0hJTkEKKworNDAtRjEtNEMgICAoaGV4KQkJSVNFIEV1cm9wZSBTUFJMCis0MEYxNEMgICAgIChiYXNlIDE2KQkJSVNFIEV1cm9wZSBTUFJMCisJCQkJNDIgYSBydWUgRmFpZGVyCisJCQkJQnJ1c3NlbHMgIDEwNTAKKwkJCQlCRUxHSVVNCisKKzQwLUY0LUVDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzQwRjRFQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLUY1LTJFICAgKGhleCkJCUxlaWNhIE1pY3Jvc3lzdGVtcyAoU2Nod2VpeikgQUcKKzQwRjUyRSAgICAgKGJhc2UgMTYpCQlMZWljYSBNaWNyb3N5c3RlbXMgKFNjaHdlaXopIEFHCisJCQkJTWF4IFNjaG1pZGhlaW55LVN0cmFzc2UgMjAxCisJCQkJSGVlcmJydWdnIFNHIDk0MzUKKwkJCQlTV0lUWkVSTEFORAorCis0MC1GQy04OSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorNDBGQzg5ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE5vcnRoIFVTIEhpZ2h3YXkgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTI1LUJCICAgKGhleCkJCUJhbWJvbyBFbnRlcnRhaW5tZW50IENvcnBvcmF0aW9uCis0NDI1QkIgICAgIChiYXNlIDE2KQkJQmFtYm9vIEVudGVydGFpbm1lbnQgQ29ycG9yYXRpb24KKwkJCQkxNzkgU291dGggU3RyZWV0CisJCQkJNnRoIEZsb29yCisJCQkJQm9zdG9uIE1BIDAyMTExCisJCQkJVU5JVEVEIFNUQVRFUworCis0NC0yQS02MCAgIChoZXgpCQlBcHBsZSwgSW5jLgorNDQyQTYwICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis0NC0zNy0xOSAgIChoZXgpCQkyIFNhdmUgRW5lcmd5IEx0ZAorNDQzNzE5ICAgICAoYmFzZSAxNikJCTIgU2F2ZSBFbmVyZ3kgTHRkCisJCQkJVGhlIEFubmV4ZSwgRmllbGQgSG91c2UgQmFybgorCQkJCUNoaW5laGFtIExhbmUKKwkJCQlTaGVyYm9ybmUgU3QgSm9obiBIYW1wc2hpcmUgUkcyNCA5TFIKKwkJCQlVTklURUQgS0lOR0RPTQorCis0NC0zNy02RiAgIChoZXgpCQlZb3VuZyBFbGVjdHJpYyBTaWduIENvCis0NDM3NkYgICAgIChiYXNlIDE2KQkJWW91bmcgRWxlY3RyaWMgU2lnbiBDbworCQkJCTE2NTEgTiAxMDAwIFcKKwkJCQlMb2dhbiBVVCA4NDMyMQorCQkJCVVOSVRFRCBTVEFURVMKKworNDQtMzctRTYgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLkx0ZAorNDQzN0U2ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC5Dby5MdGQKKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQ0LTNELTIxICAgKGhleCkJCU51dm9sdAorNDQzRDIxICAgICAoYmFzZSAxNikJCU51dm9sdAorCQkJCTgwODcgQm91bC4gZGUgbGEgUml2ZSBTdWQKKwkJCQlMZXZpcyBRdWViZWMgRzZWIDlHOQorCQkJCUNBTkFEQQorCis0NC00RS0xQSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzQ0NEUxQSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNDQtNEYtNUUgICAoaGV4KQkJUGFuIFN0dWRpb3MgQ28uLEx0ZC4KKzQ0NEY1RSAgICAgKGJhc2UgMTYpCQlQYW4gU3R1ZGlvcyBDby4sTHRkLgorCQkJCTFGLiwgTk8uNDAyLCBTRUMuIDIsIEpIT05HWUFORyBOLiBSRC4sIEJFSVRPVSBESVNUUklDVCwKKwkJCQlUQUlQRUkgQ0lUWSAgIDExMjU4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0NC01MS1EQiAgIChoZXgpCQlSYXl0aGVvbiBCQk4gVGVjaG5vbG9naWVzCis0NDUxREIgICAgIChiYXNlIDE2KQkJUmF5dGhlb24gQkJOIFRlY2hub2xvZ2llcworCQkJCTEwIE1vdWx0b24gU3RyZWV0CisJCQkJQ2FtYnJpZGdlIE1BIDAyMTM4CisJCQkJVU5JVEVEIFNUQVRFUworCis0NC01NC1DMCAgIChoZXgpCQlUaG9tcHNvbiBBZXJvc3BhY2UKKzQ0NTRDMCAgICAgKGJhc2UgMTYpCQlUaG9tcHNvbiBBZXJvc3BhY2UKKwkJCQkxOCBUZWNobm9sb2d5CisJCQkJU3VpdGUgMTIxCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCis0NC01Ni04RCAgIChoZXgpCQlQTkMgVGVjaG5vbG9naWVzICBDby4sIEx0ZC4KKzQ0NTY4RCAgICAgKGJhc2UgMTYpCQlQTkMgVGVjaG5vbG9naWVzICBDby4sIEx0ZC4KKwkJCQkjNDAxIEFueWFuZyBNZWdhdmFsbHksIDc5OSBLd2FueWFuZy1Eb25nCisJCQkJRG9uZ2FuLWd1CisJCQkJQW55YW5nIEd5ZW9uZ2dpLURvIDQzMS03NjcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNDQtNTYtQjcgICAoaGV4KQkJU3Bhd24gTGFicywgSW5jCis0NDU2QjcgICAgIChiYXNlIDE2KQkJU3Bhd24gTGFicywgSW5jCisJCQkJMjIwOSBHcmFuZ2VyIExhbmUKKwkJCQlBdXN0aW4gVFggNzg2MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTU4LTI5ICAgKGhleCkJCUNpc2NvIFNQVlRHCis0NDU4MjkgICAgIChiYXNlIDE2KQkJQ2lzY28gU1BWVEcKKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJTVMgNC5ULjQyMQorCQkJCUxhd3JlbmNldmlsbGUgR2VvcmdpYSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworNDQtNTktOUYgICAoaGV4KQkJQ3JpdGljYXJlIFN5c3RlbXMsIEluYworNDQ1OTlGICAgICAoYmFzZSAxNikJCUNyaXRpY2FyZSBTeXN0ZW1zLCBJbmMKKwkJCQkyMDkyNSBDcm9zc3JvYWRzIENpcmNsZQorCQkJCVdhdWthc2hhIFdJIDUzMTg2CisJCQkJVU5JVEVEIFNUQVRFUworCis0NC01RS1GMyAgIChoZXgpCQlUb25hbGl0ZSBIb2xkaW5nIEIuVi4KKzQ0NUVGMyAgICAgKGJhc2UgMTYpCQlUb25hbGl0ZSBIb2xkaW5nIEIuVi4KKwkJCQlOaWV1dyBBbXN0ZXJkYW1zZXN0cmFhdCA0MAorCQkJCUVtbWVuIERyZW50aGUgNzgxNCBWQQorCQkJCU5FVEhFUkxBTkRTCisKKzQ0LTYxLTMyICAgKGhleCkJCWVjb2JlZSBpbmMKKzQ0NjEzMiAgICAgKGJhc2UgMTYpCQllY29iZWUgaW5jCisJCQkJMzMzIEFkZWxhaWRlIFN0IFcgNnRoIEZsb29yCisJCQkJVG9yb250byBPbnRhcmlvIE01VjFSNQorCQkJCUNBTkFEQQorCis0NC02OC1BQiAgIChoZXgpCQlKVUlOIENPTVBBTlksIExJTUlURUQKKzQ0NjhBQiAgICAgKGJhc2UgMTYpCQlKVUlOIENPTVBBTlksIExJTUlURUQKKwkJCQkyRkwsIDEwNzUtMSwgV29ucHllb25nLURvbmcKKwkJCQlHdW1pIENpdHkgR3llb25nc2FuZ2J1ay1EbyA3MzAtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzQ0LTZDLTI0ICAgKGhleCkJCVJlYWxsaW4gRWxlY3Ryb25pYyBDby4sTHRkCis0NDZDMjQgICAgIChiYXNlIDE2KQkJUmVhbGxpbiBFbGVjdHJvbmljIENvLixMdGQKKwkJCQkyL0YsIEJ1aWxkaW5nIDMsIE5vLjIwMiBaaGVuZ3pob25nIFJkLCBYaUh1IGluZHVzdHJ5IFBhcmsKKwkJCQlIYW5nIFpob3UgWmhlIEppYW5nIDMxMDAzMAorCQkJCUNISU5BCisKKzQ0LTdDLTdGICAgKGhleCkJCUlubm9saWdodCBUZWNobm9sb2d5IENvcnBvcmF0aW9uCis0NDdDN0YgICAgIChiYXNlIDE2KQkJSW5ub2xpZ2h0IFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQkzIFJlc3VsdHMgV2F5CisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis0NC03RC1BNSAgIChoZXgpCQlWVElPTiBJTkZPUk1BVElPTiBURUNITk9MT0dZIChGVUpJQU4pIENPLixMVEQKKzQ0N0RBNSAgICAgKGJhc2UgMTYpCQlWVElPTiBJTkZPUk1BVElPTiBURUNITk9MT0dZIChGVUpJQU4pIENPLixMVEQKKwkJCQlSb29tIDUwMiwgV2luZyBBLCBXb3JsZCBUcmFkZSBDZW50ZXIKKwkJCQlOby4zNiBFYXN0IE5vcnRoIFRoaXJkIFJpbmcgUm9hZCxEb25nY2hlbmcgRGlzdHJpY3QsCisJCQkJIEJlaWppbmcsICAgCisJCQkJQ0hJTkEKKworNDQtN0UtOTUgICAoaGV4KQkJQWxwaGEgYW5kIE9tZWdhLCBJbmMKKzQ0N0U5NSAgICAgKGJhc2UgMTYpCQlBbHBoYSBhbmQgT21lZ2EsIEluYworCQkJCTQ3MzUgTW9udHZpZXcgQmx2ZAorCQkJCURlbnZlciBDTyA4MDIwNworCQkJCVVOSVRFRCBTVEFURVMKKworNDQtODMtMTIgICAoaGV4KQkJU3Rhci1OZXQKKzQ0ODMxMiAgICAgKGJhc2UgMTYpCQlTdGFyLU5ldAorCQkJCUVnb3ogNjQgCisJCQkJS2lyeWF0IEJ5YWxpayBJc3JhZWwgMjcwMDAKKwkJCQlJU1JBRUwKKworNDQtODUtMDAgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzQ0ODUwMCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworNDQtODctRkMgICAoaGV4KQkJRUxJVEVHUk9VUCBDT01QVVRFUiBTWVNURU0gQ08uLCBMVEQuCis0NDg3RkMgICAgIChiYXNlIDE2KQkJRUxJVEVHUk9VUCBDT01QVVRFUiBTWVNURU0gQ08uLCBMVEQuCisJCQkJTk8uIDIzOSwgU2VjLiAyLCBUaSBEaW5nIEJsdmQuCisJCQkJVGFpcGVpICAxMTQ5MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNDQtOEMtNTIgICAoaGV4KQkJS1RJUyBDTy4sIEx0ZAorNDQ4QzUyICAgICAoYmFzZSAxNikJCUtUSVMgQ08uLCBMdGQKKwkJCQkxMjA4aG8tMTAzZG9uZworCQkJCTM2LTEsIEJ1Y2hlb24gVGVjaG5vcGFyazMuIFNhbWp1bmctRG9uZworCQkJCU9qdW5nLUd1LCBCdWNoZW9uLXNpIEd5ZW9uZ2dpLWRvIDQyMS04MDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNDQtOEUtODEgICAoaGV4KQkJVklHCis0NDhFODEgICAgIChiYXNlIDE2KQkJVklHCisJCQkJNzA1IEhhbnNoaW4gSVQgVG93ZXIsIDYwLTE4LCBLYXNhbi1kb25nLCBHZXVtY2hlb24tZ3UKKwkJCQlTZW91bCAgS1NYWDAwMjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNDQtOTEtREIgICAoaGV4KQkJU2hhbmdoYWkgSHVhcWluIFRlbGVjb20gVGVjaG5vbG9neSBDby4sTHRkCis0NDkxREIgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgSHVhcWluIFRlbGVjb20gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJTm8uMSBCdWlsZGluZywzOTkgS2V5dWFuIFJvYWQsIFpoYW5namlhbiBIaS1UZWNoIFBhcmssIFB1ZG9uZyBOZXcgQXJlYSwgCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzQ0LTlDLUI1ICAgKGhleCkJCUFsY29tcCwgSW5jCis0NDlDQjUgICAgIChiYXNlIDE2KQkJQWxjb21wLCBJbmMKKwkJCQkxMTUzNyBXYWxudXQgTGFuZQorCQkJCUZvcnQgQXRraW5zb24gV0kgNTM1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LUE0LTJEICAgKGhleCkJCVRDVCBNb2JpbGUgTGltaXRlZAorNDRBNDJEICAgICAoYmFzZSAxNikJCVRDVCBNb2JpbGUgTGltaXRlZAorCQkJCTQvRiwgU291dGggQnVpbGRpbmcsTm8uMjk2NiwgSmlua2UgUm9hZCwgWmhhbmdqaWFuZyBIaWdoLVRlY2ggUGFyaywgUHVkb25nCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzQ0LUE2LTg5ICAgKGhleCkJCVBST01BWCBFTEVDVFJPTklDQSBTQQorNDRBNjg5ICAgICAoYmFzZSAxNikJCVBST01BWCBFTEVDVFJPTklDQSBTQQorCQkJCUZSQU5DRVNDIE1PUkFHQVMgNzEtNzUKKwkJCQlIT1NQSVRBTEVUIERFIExMT0JSRUdBVCBCQVJDRUxPTkEgMDg5MDcKKwkJCQlTUEFJTgorCis0NC1BNy1DRiAgIChoZXgpCQlNdXJhdGEgTWFudWZhY3R1cmluZyBDby4sIEx0ZC4KKzQ0QTdDRiAgICAgKGJhc2UgMTYpCQlNdXJhdGEgTWFudWZhY3R1cmluZyBDby4sIEx0ZC4KKwkJCQkxMC0xLCBIaWdhc2hpa290YXJpIDEKKwkJCQlOYWdhb2tha3lvLXNoaSBLeW90byA2MTctODU1NQorCQkJCUpBUEFOCisKKzQ0LUE4LUMyICAgKGhleCkJCVNFV09PIFRFQ0ggQ08uLCBMVEQKKzQ0QThDMiAgICAgKGJhc2UgMTYpCQlTRVdPTyBURUNIIENPLiwgTFRECisJCQkJNjg5LTIwIEdFVU1KVU5HLURPTkcgCisJCQkJR1VOUE8tU0kgS1lVTkdHSS1ETyA0MzUtODYyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzQ0LUFBLTI3ICAgKGhleCkJCXVkd29ya3MgQ28uLCBMdGQuCis0NEFBMjcgICAgIChiYXNlIDE2KQkJdWR3b3JrcyBDby4sIEx0ZC4KKwkJCQkjODEwLCBCeXVrc2FuM2NoYSBEaWdpdGFsIFZhbGxleSwgMjEyLTEzLCBHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTc3NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0NC1BQS1FOCAgIChoZXgpCQlOYW5vdGVjIEVsZWN0cm9uaWMgR21iSCAmIENvLiBLRworNDRBQUU4ICAgICAoYmFzZSAxNikJCU5hbm90ZWMgRWxlY3Ryb25pYyBHbWJIICYgQ28uIEtHCisJCQkJR2V3ZXJiZXN0cmFzc2UgMTEKKwkJCQlMYW5kc2hhbSBCYXZhcmlhIDg1NjUyCisJCQkJR0VSTUFOWQorCis0NC1DMS01QyAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworNDRDMTVDICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis0NC1DMi0zMyAgIChoZXgpCQlHdWFuZ3pob3UgQ29tZXQgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby5MdGQKKzQ0QzIzMyAgICAgKGJhc2UgMTYpCQlHdWFuZ3pob3UgQ29tZXQgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby5MdGQKKwkJCQlSbSAzMDQsRkwgMyxCbG9jayBHLFNjaWVuY2UgYW5kICBUZWNobm9sb2d5IElubm92YXRpb24gQmFzZSwKKwkJCQlOby44MCxMYW55dWUgUm9hZCxTY2llbmNlIFBhcmssCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2NjMKKwkJCQlDSElOQQorCis0NC1DOS1BMiAgIChoZXgpCQlHcmVlbndhbGQgSW5kdXN0cmllcworNDRDOUEyICAgICAoYmFzZSAxNikJCUdyZWVud2FsZCBJbmR1c3RyaWVzCisJCQkJMjEyIE1pZGRsZXNleCBBdmVudWUKKwkJCQlDaGVzdGVyIENUIDA2NDEyCisJCQkJVU5JVEVEIFNUQVRFUworCis0NC1EMi1DQSAgIChoZXgpCQlBbnZpYSBUViBPeQorNDREMkNBICAgICAoYmFzZSAxNikJCUFudmlhIFRWIE95CisJCQkJUE8gQm94IDI5CisJCQkJU0VJTkFKT0tJICBGSU42MDEwMQorCQkJCUZJTkxBTkQKKworNDQtRDYtM0QgICAoaGV4KQkJVGFsYXJpIE5ldHdvcmtzCis0NEQ2M0QgICAgIChiYXNlIDE2KQkJVGFsYXJpIE5ldHdvcmtzCisJCQkJMzIwMCBHbGVuIFJveWFsIFJkLgorCQkJCVN1aXRlIDEwMAorCQkJCVJhbGVpZ2ggIE5DIDI3NjE3CisJCQkJVU5JVEVEIFNUQVRFUworCis0NC1EOC0zMiAgIChoZXgpCQlBenVyZXdhdmUgVGVjaG5vbG9naWVzLCBJbmMuCis0NEQ4MzIgICAgIChiYXNlIDE2KQkJQXp1cmV3YXZlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCThGLiwgQmFvemhvbmcgUmQuCisJCQkJWGluZGlhbiBDaXR5IFRhaXBlaSBDb3VudHkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0NC1EQy1DQiAgIChoZXgpCQlTRU1JTkRJQSBTWVNURU1TIFBWVCBMVEQKKzQ0RENDQiAgICAgKGJhc2UgMTYpCQlTRU1JTkRJQSBTWVNURU1TIFBWVCBMVEQKKwkJCQkxMDA2LzEzLCBTeSBOby40OS8xJjMsIDd0aCBNaWxlLCBBLk0gSW5kbCBFc3RhdGUsCisJCQkJR2FydmViaGF2aXBhbHlhLEhvc3VyIFJvYWQsIAorCQkJCUJhbmdhbG9yZSBLYXJuYXRha2EgNTYwMDY4CisJCQkJSU5ESUEKKworNDQtRTQtOUEgICAoaGV4KQkJT01OSVRST05JQ1MgUFRZIExURAorNDRFNDlBICAgICAoYmFzZSAxNikJCU9NTklUUk9OSUNTIFBUWSBMVEQKKwkJCQkyNyBTQVJJQ0ggQ1JUCisJCQkJT1NCT1JORSBQQVJLIFdBIDYwMTcKKwkJCQlBVVNUUkFMSUEKKworNDQtRTQtRDkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNDRFNEQ5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNDQtRUQtNTcgICAoaGV4KQkJTG9uZ2ljb3JuLCBpbmMuCis0NEVENTcgICAgIChiYXNlIDE2KQkJTG9uZ2ljb3JuLCBpbmMuCisJCQkJUm0xMDAxLTIsIDEwRiwgQnl1a3NhbiBEaWdpdGFsIFZhbGxleTEKKwkJCQkyMTItMTYsIEd1cm8tM0RvbmcsIEd1cm8tR3UKKwkJCQlTZW91bCAgMTUyLTc3NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0NC1GNC01OSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCis0NEY0NTkgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0OC0xMi00OSAgIChoZXgpCQlMdXhjb20gVGVjaG5vbG9naWVzIEluYy4KKzQ4MTI0OSAgICAgKGJhc2UgMTYpCQlMdXhjb20gVGVjaG5vbG9naWVzIEluYy4KKwkJCQkxMDIgV2FsZ3JlZW4gUm9hZAorCQkJCU90dGF3YSBPbnRhcmlvIEswQSAxTDAKKwkJCQlDQU5BREEKKworNDgtMTctNEMgICAoaGV4KQkJTWljcm9Qb3dlciB0ZWNobm9sb2dpZXMKKzQ4MTc0QyAgICAgKGJhc2UgMTYpCQlNaWNyb1Bvd2VyIHRlY2hub2xvZ2llcworCQkJCTQyMjUgRXhlY3V0aXZlIFNxLgorCQkJCVN1aXRlIDQzMAorCQkJCUxhIEpvbGxhIENhbGlmb3JuaWEgOTIwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ4LTFCLUQyICAgKGhleCkJCUludHJvbiBTY2llbnRpZmljIGNvLiwgbHRkLgorNDgxQkQyICAgICAoYmFzZSAxNikJCUludHJvbiBTY2llbnRpZmljIGNvLiwgbHRkLgorCQkJCTZGLiwgTk8uIDEzNixTZWMgMixLZWVsdW5nIFJkLiwgRGEtYW4gZGlzdHJpY3QKKwkJCQlUYWlwZWkgIDEwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNDgtMkMtRUEgICAoaGV4KQkJTW90b3JvbGEgSW5jIEJ1c2luZXNzIExpZ2h0IFJhZGlvcworNDgyQ0VBICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIEluYyBCdXNpbmVzcyBMaWdodCBSYWRpb3MKKwkJCQk4MDAwIFcgU3VucmlzZSBCb3VsZXZhcmQKKwkJCQlQbGFudGF0aW9uIEZsb3JpZGEgMzMzMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ4LTM0LTNEICAgKGhleCkJCUlFUCBHbWJICis0ODM0M0QgICAgIChiYXNlIDE2KQkJSUVQIEdtYkgKKwkJCQlBbSBQZmVyZGVtYXJrdCA5YworCQkJCUxhbmdlbmhhZ2VuIE5pZWRlcnNhY2hzZW4gMzA4NTMKKwkJCQlHRVJNQU5ZCisKKzQ4LTQ0LTg3ICAgKGhleCkJCUNpc2NvIFNQVlRHCis0ODQ0ODcgICAgIChiYXNlIDE2KQkJQ2lzY28gU1BWVEcKKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJTVMgNC5ULjYwNworCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ4LTVCLTM5ICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorNDg1QjM5ICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UsIAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0OC01RC02MCAgIChoZXgpCQlBenVyZXdhdmUgVGVjaG5vbG9naWVzLCBJbmMuCis0ODVENjAgICAgIChiYXNlIDE2KQkJQXp1cmV3YXZlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCThGIC4sIE5vLjk0LCBCYW96aG9uZyBSZC4gCisJCQkJWGluZGlhbiBDaXR5IFRhaXBlaSBDb3VudHkgMjMxIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNDgtNjAtQkMgICAoaGV4KQkJQXBwbGUgSW5jCis0ODYwQkMgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBpbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis0OC02Qi05MSAgIChoZXgpCQlGbGVldHdvb2QgR3JvdXAgSW5jLgorNDg2QjkxICAgICAoYmFzZSAxNikJCUZsZWV0d29vZCBHcm91cCBJbmMuCisJCQkJMTE4MzIgSmFtZXMgU3QKKwkJCQlQTyBCb3ggMTI1OQorCQkJCUhvbGxhbmQgTWljaGlnYW4gNDk0MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ4LTZGLUQyICAgKGhleCkJCVN0b3JTaW1wbGUgSW5jCis0ODZGRDIgICAgIChiYXNlIDE2KQkJU3RvclNpbXBsZSBJbmMKKwkJCQkyMzUwIE1pc3Npb24gQ29sbGVnZSBCbHZkCisJCQkJU3VpdGUgIzQ3MAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCis0OC03MS0xOSAgIChoZXgpCQlTR0IgR1JPVVAgTFRELgorNDg3MTE5ICAgICAoYmFzZSAxNikJCVNHQiBHUk9VUCBMVEQuCisJCQkJMTNGLE5vLjE5MixTZWMuMixDaHVuZyBIc2luIFJkLixIc2luIFRpZW4gQ2l0eQorCQkJCVRhaXBlaSAgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNDgtOEUtNDIgICAoaGV4KQkJRElHQUxPRyBHbWJICis0ODhFNDIgICAgIChiYXNlIDE2KQkJRElHQUxPRyBHbWJICisJCQkJV2F0dHN0ci4gMTEtMTMKKwkJCQlCZXJsaW4gIEQtMTMzNTUKKwkJCQlHRVJNQU5ZCisKKzQ4LTkxLUY2ICAgKGhleCkJCVNoZW56aGVuIFJlYWNoIHNvZnR3YXJlIHRlY2hub2xvZ3kgQ08uLExURAorNDg5MUY2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFJlYWNoIHNvZnR3YXJlIHRlY2hub2xvZ3kgQ08uLExURAorCQkJCTYvRixCbG9jayBCLCBLaW5nZGVlIFNvZnR3YXJlIHBhcmssIzIsS2VqaSAxMnRoIFNvdXRoIFJvYWQsSGktdGVjaCBJbmR1c3RyaWFsIFBhcmssTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis0OC1BQS01RCAgIChoZXgpCQlTdG9yZSBFbGVjdHJvbmljIFN5c3RlbXMKKzQ4QUE1RCAgICAgKGJhc2UgMTYpCQlTdG9yZSBFbGVjdHJvbmljIFN5c3RlbXMKKwkJCQkzOSBydWUgZGUgbW9udGlnbnkKKwkJCQlBcmdlbnRldWlsICA5NTEwMAorCQkJCUZSQU5DRQorCis0OC1DOC02MiAgIChoZXgpCQlTaW1vIFdpcmVsZXNzLEluYy4KKzQ4Qzg2MiAgICAgKGJhc2UgMTYpCQlTaW1vIFdpcmVsZXNzLEluYy4KKwkJCQkzMjYjLEJ1aWxkaW5nIDQsWmhvbmd4aW5nIEluZHVzdHJpYWwgUGFyayxDaHVhbmd5ZQorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTQKKwkJCQlDSElOQQorCis0OC1DOC1CNiAgIChoZXgpCQlTeXNUZWMgR21iSAorNDhDOEI2ICAgICAoYmFzZSAxNikJCVN5c1RlYyBHbWJICisJCQkJTHVkd2lnLUVyaGFyZC1TdHJhc3NlIDYKKwkJCQlCZXJnaGVpbS1HbGVzc2VuIE5SVyA1MDEyOQorCQkJCUdFUk1BTlkKKworNDgtQ0ItNkUgICAoaGV4KQkJQ2VsbG8gRWxlY3Ryb25pY3MgKFVLKSBMdGQKKzQ4Q0I2RSAgICAgKGJhc2UgMTYpCQlDZWxsbyBFbGVjdHJvbmljcyAoVUspIEx0ZAorCQkJCUNsaWZmIExvZGdlCisJCQkJSGFybWJ5IFJvYWQKKwkJCQlMZXlidXJuIE5vcnRoIFlvcmtzaGlyZSBETDggNU5TCisJCQkJVU5JVEVEIEtJTkdET00KKworNDgtRDgtRkUgICAoaGV4KQkJQ2xhcklEeSBTb2x1dGlvbnMsIEluYy4KKzQ4RDhGRSAgICAgKGJhc2UgMTYpCQlDbGFySUR5IFNvbHV0aW9ucywgSW5jLgorCQkJCTdGLCBOby45LCBQYXJrQXZlbnVlIElJIFJkLiwgSHNpbmNodSBTY2llbmNlIFBhcmssIAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNDgtREMtRkIgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzQ4RENGQiAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1ICA5MDIzMAorCQkJCUZJTkxBTkQKKworNDgtREYtMUMgICAoaGV4KQkJV3VoYW4gTkVDIEZpYnJlIE9wdGljIENvbW11bmljYXRpb25zIGluZHVzdHJ5IENvLiBMdGQKKzQ4REYxQyAgICAgKGJhc2UgMTYpCQlXdWhhbiBORUMgRmlicmUgT3B0aWMgQ29tbXVuaWNhdGlvbnMgaW5kdXN0cnkgQ28uIEx0ZAorCQkJCTNyZCBSb2FkIEd1YW5zaGFuLAorCQkJCVd1aGFuIEh1YmVpIDQzMDA3NAorCQkJCUNISU5BCisKKzQ4LUVCLTMwICAgKGhleCkJCSBFVEVSTkEgVEVDSE5PTE9HWSwgSU5DLgorNDhFQjMwICAgICAoYmFzZSAxNikJCSBFVEVSTkEgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTM5MzkgdmVzZWxpY2ggYXZlCisJCQkJMzE3CisJCQkJbG9zIGFuZ2VsZXMgY2FsaWZvcm5pYSA5MDAzOQorCQkJCVVOSVRFRCBTVEFURVMKKworNDgtRjQtN0QgICAoaGV4KQkJVGVjaFZpc2lvbiBIb2xkaW5nICBJbnRlcm5hdGlvbiBMaW1pdGVkCis0OEY0N0QgICAgIChiYXNlIDE2KQkJVGVjaFZpc2lvbiBIb2xkaW5nICBJbnRlcm5hdGlvbiBMaW1pdGVkCisJCQkJT2Zmc2hvcmUgSW5jb3Jwb3JhdGlvbnMgQ2VudHJlCisJCQkJUC5PLiBCb3ggOTU3CisJCQkJUm9hZCBUb3duIFRvcnRvbGEgVkcxMTEwCisJCQkJVklSR0lOIElTTEFORFMsIEJSSVRJU0gKKworNDgtRjgtRTEgICAoaGV4KQkJQWxjYXRlbCBMdWNlbnQgV1QKKzQ4RjhFMSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIEx1Y2VudCBXVAorCQkJCTYwMCBNYXJjaCBEcml2ZQorCQkJCU90dGF3YSBPbnRhcmlvIGsyayAyZTYKKwkJCQlDQU5BREEKKworNDgtRkMtQjggICAoaGV4KQkJV29vZHN0cmVhbSBDb3Jwb3JhdGlvbgorNDhGQ0I4ICAgICAoYmFzZSAxNikJCVdvb2RzdHJlYW0gQ29ycG9yYXRpb24KKwkJCQk2OSBOLiBMb2N1c3QgU3RyZWV0CisJCQkJTGl0aXR6IFBBIDE3NTQzCisJCQkJVU5JVEVEIFNUQVRFUworCis0Qy0wMi0yRSAgIChoZXgpCQlDTVIgS09SRUEgQ08uLCBMVEQKKzRDMDIyRSAgICAgKGJhc2UgMTYpCQlDTVIgS09SRUEgQ08uLCBMVEQKKwkJCQk2RiwgSi1Ub3dlciwgMjQtNSBCYW5naS1kb25nLCBTb25ncGEtR3UKKwkJCQlTZW91bCAgMTM4LTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0Qy0wNy1DOSAgIChoZXgpCQlDT01QVVRFUiBPRkZJQ0UgQ28uLEx0ZC4KKzRDMDdDOSAgICAgKGJhc2UgMTYpCQlDT01QVVRFUiBPRkZJQ0UgQ28uLEx0ZC4KKwkJCQkxMzY4LTEwIE11cmFtYXRzdS1jaG8KKwkJCQlJc2Utc2hpIE1pZS1rZW4gNTE1LTA1MDcKKwkJCQlKQVBBTgorCis0Qy0wRi02RSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorNEMwRjZFICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMyAKKwkJCQlDSElOQQorCis0Qy0xNC04MCAgIChoZXgpCQlOT1JFR09OIFNZU1RFTVMsIElOQworNEMxNDgwICAgICAoYmFzZSAxNikJCU5PUkVHT04gU1lTVEVNUywgSU5DCisJCQkJMTAwIE4uIE1BSU4gU1QuICBTVUlURSAyMjAwCisJCQkJV0lOU1RPTiAtIFNBTEVNIE5DIDI3MTAxCisJCQkJVU5JVEVEIFNUQVRFUworCis0Qy0xQS0zQSAgIChoZXgpCQlQUklNQSBSZXNlYXJjaCBBbmQgUHJvZHVjdGlvbiBFbnRlcnByaXNlIEx0ZC4KKzRDMUEzQSAgICAgKGJhc2UgMTYpCQlQUklNQSBSZXNlYXJjaCBBbmQgUHJvZHVjdGlvbiBFbnRlcnByaXNlIEx0ZC4KKwkJCQk2MywgU3ZvYm9keSBzdC4KKwkJCQlOaXpobnkgTm92Z29yb2QgIDYwMzAwMworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCis0Qy0xRi1DQyAgIChoZXgpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKzRDMUZDQyAgICAgKGJhc2UgMTYpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKwkJCQlCMS03LEh1YXdlaSBJbmR1c3RyaWFsIEJhc2UsQmFudGlhbixMb25nZ2FuZworCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCis0Qy0yQy04MCAgIChoZXgpCQlCZWlqaW5nIFNreXdheSBUZWNobm9sb2dpZXMgQ28uLEx0ZCAKKzRDMkM4MCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFNreXdheSBUZWNobm9sb2dpZXMgQ28uLEx0ZCAKKwkJCQlOby41IEppYW5ndGFpIFJvYWQsIAorCQkJCUNoYW95YW5nIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDE1CisJCQkJQ0hJTkEKKworNEMtMzAtODkgICAoaGV4KQkJVGhhbGVzIFRyYW5zcG9ydGF0aW9uIFN5c3RlbXMgR21iSAorNEMzMDg5ICAgICAoYmFzZSAxNikJCVRoYWxlcyBUcmFuc3BvcnRhdGlvbiBTeXN0ZW1zIEdtYkgKKwkJCQlCaWVyd2VnIDIKKwkJCQlBcm5zdGFkdCBUaHVyaW5naWEgOTkzMTAKKwkJCQlHRVJNQU5ZCisKKzRDLTMyLTJEICAgKGhleCkJCVRFTEVEQVRBIE5FVFdPUktTCis0QzMyMkQgICAgIChiYXNlIDE2KQkJVEVMRURBVEEgTkVUV09SS1MKKwkJCQkxMCBIYXNhZG5hb3QgU3RyZWV0CisJCQkJSEVSWkxJWUEgIDQ2MTIwCisJCQkJSVNSQUVMCisKKzRDLTNCLTc0ICAgKGhleCkJCVZPR1RFQyhILksuKSBDby4sIEx0ZAorNEMzQjc0ICAgICAoYmFzZSAxNikJCVZPR1RFQyhILksuKSBDby4sIEx0ZAorCQkJCVVuaXQgRCAxMS9GIFNlYWJyaWdodCBQbGF6YSA5LTIzIFNoZWxsIFNUCisJCQkJTm9ydGggUG9pbnQgCisJCQkJSG9uZyBLb25nICA5OTkwNzcKKwkJCQlDSElOQQorCis0Qy00Qi02OCAgIChoZXgpCQlNb2JpbGUgRGV2aWNlLCBJbmMuIAorNEM0QjY4ICAgICAoYmFzZSAxNikJCU1vYmlsZSBEZXZpY2UsIEluYy4gCisJCQkJIDhGLTEsIE5vLiAxNDUsIFNpYW5qaGVuZyA5dGggUmQuLCAKKwkJCQlKaHViZWkgQ2l0eSwgIEhzaW5jaHUgQ291bnR5ICAzMDI1MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNEMtNTQtOTkgICAoaGV4KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorNEM1NDk5ICAgICAoYmFzZSAxNikJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTAxMDgKKwkJCQlDSElOQQorCis0Qy01RC1DRCAgIChoZXgpCQlPeSBGaW5uaXNoIEVsZWN0cmljIFZlaGljbGUgVGVjaG5vbG9naWVzIEx0ZAorNEM1RENEICAgICAoYmFzZSAxNikJCU95IEZpbm5pc2ggRWxlY3RyaWMgVmVoaWNsZSBUZWNobm9sb2dpZXMgTHRkCisJCQkJTWFqYXZhbnRpZSAxMAorCQkJCVRVVVNVTEEgIEZJLTA0MzIwCisJCQkJRklOTEFORAorCis0Qy02MC1ENSAgIChoZXgpCQlhaXJQb2ludGUgb2YgTmV3IEhhbXBzaGlyZQorNEM2MEQ1ICAgICAoYmFzZSAxNikJCWFpclBvaW50ZSBvZiBOZXcgSGFtcHNoaXJlCisJCQkJMzVFIEluZHVzdHJpYWwgV2F5CisJCQkJUm9jaGVzdGVyIE5IIDAzODY3CisJCQkJVU5JVEVEIFNUQVRFUworCis0Qy02My1FQiAgIChoZXgpCQlBcHBsaWNhdGlvbiBTb2x1dGlvbnMgKEVsZWN0cm9uaWNzIGFuZCBWaXNpb24pIEx0ZAorNEM2M0VCICAgICAoYmFzZSAxNikJCUFwcGxpY2F0aW9uIFNvbHV0aW9ucyAoRWxlY3Ryb25pY3MgYW5kIFZpc2lvbikgTHRkCisJCQkJVGhlIFJpdmVyc2lkZSBDZW50cmUKKwkJCQlSYWlsd2F5IExhbmUKKwkJCQlMZXdlcyBFYXN0IFN1c3NleCBCTjcgMkFRCisJCQkJVU5JVEVEIEtJTkdET00KKworNEMtNzMtNjcgICAoaGV4KQkJR2VuaXVzIEJ5dGVzIFNvZnR3YXJlIFNvbHV0aW9ucyBHbWJICis0QzczNjcgICAgIChiYXNlIDE2KQkJR2VuaXVzIEJ5dGVzIFNvZnR3YXJlIFNvbHV0aW9ucyBHbWJICisJCQkJTWVyaWFuc3RyLiAzMAorCQkJCUJvY2h1bSBOUlcgNDQ4MDEKKwkJCQlHRVJNQU5ZCisKKzRDLTczLUE1ICAgKGhleCkJCUtPVkUKKzRDNzNBNSAgICAgKGJhc2UgMTYpCQlLT1ZFCisJCQkJMTQgTi4gUGVvcmlhIFN0cmVldAorCQkJCVN1aXRlIDJICisJCQkJQ2hpY2FnbyBJTCA2MDYwNworCQkJCVVOSVRFRCBTVEFURVMKKworNEMtNzctNEYgICAoaGV4KQkJRW1iZWRkZWQgV2lyZWxlc3MgTGFicyAKKzRDNzc0RiAgICAgKGJhc2UgMTYpCQlFbWJlZGRlZCBXaXJlbGVzcyBMYWJzIAorCQkJCTcwMiBMZXZlbCA3IFVwdG93biAyIE5vLjIgCisJCQkJSmFsYW4gU1MyMS8zNyBEYW1hbnNhcmEgVXB0b3duCisJCQkJUGV0YWxpbmcgSmF5YSBTZWxhbmdvciA0NzQwMAorCQkJCU1BTEFZU0lBCisKKzRDLTgwLTkzICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorNEM4MDkzICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworNEMtOEItNTUgICAoaGV4KQkJR3J1cG8gRGlnaWNvbgorNEM4QjU1ICAgICAoYmFzZSAxNikJCUdydXBvIERpZ2ljb24KKwkJCQlSdWEgTmlzc2luIENhc3RpZWwsIDY0MAorCQkJCUdyYXZhdGFpP29lIFJpbyBHcmFuZGUgZG8gU3VsIDk0MDQ1NDIwCisJCQkJQlJBWklMCisKKzRDLTk4LUVGICAgKGhleCkJCVplbworNEM5OEVGICAgICAoYmFzZSAxNikJCVplbworCQkJCTMyMCBOZXZhZGEgU3QKKwkJCQk0dGggRmxvb3IKKwkJCQlOZXd0b24gIE1BIDAyNDYwCisJCQkJVU5JVEVEIFNUQVRFUworCis0Qy05RS1FNCAgIChoZXgpCQlIYW55YW5nIE5hdmljb20gQ28uLEx0ZC4KKzRDOUVFNCAgICAgKGJhc2UgMTYpCQlIYW55YW5nIE5hdmljb20gQ28uLEx0ZC4KKwkJCQk3MTMsIEd3YW5weWVvbmctZG9uZywgWXVzdW5nLWd1CisJCQkJRGFlamVvbiAgMzA1LTUwOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0Qy1CNC1FQSAgIChoZXgpCQlIUkQgKFMpIFBURS4sIExURC4KKzRDQjRFQSAgICAgKGJhc2UgMTYpCQlIUkQgKFMpIFBURS4sIExURC4KKwkJCQlMb3QgNywgQmxvY2sgOSwgUGhhc2UgMSwgQ2F2aXRlIEVjby1ab25lLAorCQkJCVJvc2FyaW8gQ2F2aXRlIDQxMDYKKwkJCQlQSElMSVBQSU5FUworCis0Qy1COS1DOCAgIChoZXgpCQlDT05FVCBDTy4sIExURC4KKzRDQjlDOCAgICAgKGJhc2UgMTYpCQlDT05FVCBDTy4sIExURC4KKwkJCQkyLTgsSElHQVNISUpJTUEtQ0hPCisJCQkJSUNISU5PTUlZQSBBSUNISSA0OTEtMDA3NAorCQkJCUpBUEFOCisKKzRDLUJBLUEzICAgKGhleCkJCUJpc29uIEVsZWN0cm9uaWNzIEluYy4KKzRDQkFBMyAgICAgKGJhc2UgMTYpCQlCaXNvbiBFbGVjdHJvbmljcyBJbmMuCisJCQkJM0YuLCBOby4yOCwgTGFuZSA1ODMsIFJ1ZWlndWFuZyBSZC4sIE5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpIENpdHkgIDExNDkyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0Qy1DNC01MiAgIChoZXgpCQlTaGFuZyBIYWkgVHlkLiBFbGVjdG9uIFRlY2hub2xvZ3kgTHRkLgorNENDNDUyICAgICAoYmFzZSAxNikJCVNoYW5nIEhhaSBUeWQuIEVsZWN0b24gVGVjaG5vbG9neSBMdGQuCisJCQkJUm9vbSBOby41LE4wLjM5NixHdWlMaW4gUm9hZCwgCisJCQkJWHUgSHVpIERpc3RyaWN0CisJCQkJU2hhbmcgSGFpICAyMDAyMzMKKwkJCQlDSElOQQorCis0Qy1DNi0wMiAgIChoZXgpCQlSYWRpb3MsIEluYy4KKzRDQzYwMiAgICAgKGJhc2UgMTYpCQlSYWRpb3MsIEluYy4KKwkJCQkxNDA4IENlbnRlciBBdmVudWUKKwkJCQlPb3N0YnVyZyBXaXNjb25zaW4gNTMwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzRDLUU2LTc2ICAgKGhleCkJCUJVRkZBTE8gSU5DLgorNENFNjc2ICAgICAoYmFzZSAxNikJCUJVRkZBTE8gSU5DLgorCQkJCTE1LCBTaGliYXRhIEhvbmRvcmkgNC1jaG9tZQorCQkJCU1pbmFtaS1rdSwgTmFnb3lhIEFpY2hpIDQ1Ny04NTIwCisJCQkJSkFQQU4KKworNEMtRUQtREUgICAoaGV4KQkJQXNrZXkgQ29tcHV0ZXIgQ29ycAorNENFRERFICAgICAoYmFzZSAxNikJCUFza2V5IENvbXB1dGVyIENvcnAKKwkJCQkxMGYsbm8uMTE5LGNoaWVua2FuZyByZCxjaHVuZy1obywKKwkJCQlUQUlQRUkgMjM1ODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzRDLUY3LTM3ICAgKGhleCkJCVNhbUppIEVsZWN0cm9uaWNzIENvLiwgTHRkCis0Q0Y3MzcgICAgIChiYXNlIDE2KQkJU2FtSmkgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKwkJCQk0NTktMjEsIEdhc2FuLWRvbmcsIEd1bWNodW4ta3UKKwkJCQlTZW91bCAgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis1MC0wRS02RCAgIChoZXgpCQlUcmFmZmljQ2FzdCBJbnRlcm5hdGlvbmFsCis1MDBFNkQgICAgIChiYXNlIDE2KQkJVHJhZmZpY0Nhc3QgSW50ZXJuYXRpb25hbAorCQkJCTI4MDEgQ29obyBTdHJlZXQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlNYWRpc29uIFdJIDUzNzEzCisJCQkJVU5JVEVEIFNUQVRFUworCis1MC0yNS0yQiAgIChoZXgpCQlOZXRocmEgSW1hZ2luZyBJbmNvcnBvcmF0ZWQKKzUwMjUyQiAgICAgKGJhc2UgMTYpCQlOZXRocmEgSW1hZ2luZyBJbmNvcnBvcmF0ZWQKKwkJCQkyODU1IEJvd2VycyBBdmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworNTAtMkEtN0UgICAoaGV4KQkJU21hcnQgZWxlY3Ryb25pYyBHbWJICis1MDJBN0UgICAgIChiYXNlIDE2KQkJU21hcnQgZWxlY3Ryb25pYyBHbWJICisJCQkJSW5kdXN0cmllIFN0ci4gMjkKKwkJCQlTdC4gR2VvcmdlbiAgNzgxMTIKKwkJCQlHRVJNQU5ZCisKKzUwLTJBLThCICAgKGhleCkJCVRlbGVrb20gUmVzZWFyY2ggYW5kIERldmVsb3BtZW50IFNkbiBCaGQKKzUwMkE4QiAgICAgKGJhc2UgMTYpCQlUZWxla29tIFJlc2VhcmNoIGFuZCBEZXZlbG9wbWVudCBTZG4gQmhkCisJCQkJVE1STkQgSW5ub3ZhdGlvbiBDZW50cmUKKwkJCQlMaW5na2FyYW4gVGVrbm9rcmF0IFRpbXVyCisJCQkJQ3liZXJqYXlhIFNlbGFuZ29yIDYzMDAwCisJCQkJTUFMQVlTSUEKKworNTAtMkQtQTIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis1MDJEQTIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis1MC0yRC1GNCAgIChoZXgpCQlQaHl0ZWMgTWVzc3RlY2huaWsgR21iSAorNTAyREY0ICAgICAoYmFzZSAxNikJCVBoeXRlYyBNZXNzdGVjaG5payBHbWJICisJCQkJUm9iZXJ0LUtvY2gtU3RyYXNzZSAzOSAKKwkJCQlNYWlueiBSaGVpbmxhbmQtUGZhbHogNTUxMjkKKwkJCQlHRVJNQU5ZCisKKzUwLTNELUU1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzUwM0RFNSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzUwLTYzLTEzICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCis1MDYzMTMgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzCisJCQkJQ0hJTkEKKworNTAtNjctRjAgICAoaGV4KQkJWnlYRUwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzUwNjdGMCAgICAgKGJhc2UgMTYpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorCQkJCU5vLjYgSW5ub3ZhdGlvbiBSb2FkIElJLAorCQkJCVNjaWVuY2UgUGFyaywKKwkJCQlIc2luLUNodSwgICAyMjA5OTUwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNTAtNkYtOUEgICAoaGV4KQkJV2ktRmkgQWxsaWFuY2UKKzUwNkY5QSAgICAgKGJhc2UgMTYpCQlXaS1GaSBBbGxpYW5jZQorCQkJCTM5MjUgVy4gQnJha2VyIExhbmUKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzUwLTcwLUU1ICAgKGhleCkJCUhlIFNoYW4gV29ybGQgRmFpciBFbGVjdHJvbmljcyBUZWNobm9sb2d5IExpbWl0ZWQKKzUwNzBFNSAgICAgKGJhc2UgMTYpCQlIZSBTaGFuIFdvcmxkIEZhaXIgRWxlY3Ryb25pY3MgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJTmV3IE1hdGVyaWFsIEJhc2UsIEdvbmdoZSBUb3duCisJCQkJSGVzaGFuIENpdHkKKwkJCQlKaWFuZ21lbiBHdWFuZ2RvbmcgNTI5NzI4CisJCQkJQ0hJTkEKKworNTAtNzktNUIgICAoaGV4KQkJSW50ZXJleHBvcnQgVGVsZWNvbXVuaWNhY2lvbmVzIFMuQS4KKzUwNzk1QiAgICAgKGJhc2UgMTYpCQlJbnRlcmV4cG9ydCBUZWxlY29tdW5pY2FjaW9uZXMgUy5BLgorCQkJCUNlcnJvIENvbG9yYWRvIDUyNDAgcGlzbyAxNAorCQkJCVNhbnRpYWdvIFJlZ2lvbiBNZXRyb3BvbGl0YW5hIDgzMjAwMDAKKwkJCQlDSElMRQorCis1MC03RC0wMiAgIChoZXgpCQlCSU9ESVQKKzUwN0QwMiAgICAgKGJhc2UgMTYpCQlCSU9ESVQKKwkJCQlDYWxsZSBHdXN0YXZlIEVpZmZlbCAzCisJCQkJUGFycXVlIFRlY25vbG9naWNvCisJCQkJUGF0ZXJuYSBWYWxlbmNpYSA0Njk4MAorCQkJCVNQQUlOCisKKzUwLTg3LUI4ICAgKGhleCkJCU51dnl5byBJbmMKKzUwODdCOCAgICAgKGJhc2UgMTYpCQlOdXZ5eW8gSW5jCisJCQkJMSBTbXl0aGUgUmQKKwkJCQlTdWl0ZSAxCisJCQkJQ2FybGV0b24gUGxhY2UgT250YXJpbyBLN0M0SjQKKwkJCQlDQU5BREEKKworNTAtOEEtQ0IgICAoaGV4KQkJU0hFTlpIRU4gTUFYTUFERSBURUNITk9MT0dZIENPLiwgTFRELgorNTA4QUNCICAgICAoYmFzZSAxNikJCVNIRU5aSEVOIE1BWE1BREUgVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQlCdWlsZGluZyAzLE5vLjUgRnVxaWFvIEluZHVzdHJpYWwgRXN0YXRlLAorCQkJCVFpYW90b3UsRnV5b25nLEJhb2FuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwMworCQkJCUNISU5BCisKKzUwLTkzLTRGICAgKGhleCkJCUdyYWR1YWwgVGVjbm9sb2dpYSBMdGRhLgorNTA5MzRGICAgICAoYmFzZSAxNikJCUdyYWR1YWwgVGVjbm9sb2dpYSBMdGRhLgorCQkJCVJvZC4gQWxraW5kYXIgTS4gSnVucXVlaXJhLCBLbSAzNCwyCisJCQkJQ2FpeGEgUG9zdGFsIDEwOAorCQkJCUJyYWdhbmk/b2VhIFBhdWxpc3RhIFNpP29lbyBQYXVsbyAxMjkxNC05NzAKKwkJCQlCUkFaSUwKKworNTAtOTctNzIgICAoaGV4KQkJV2VzdGluZ2hvdXNlIERpZ2l0YWwKKzUwOTc3MiAgICAgKGJhc2UgMTYpCQlXZXN0aW5naG91c2UgRGlnaXRhbAorCQkJCTUwMCBOLiBTdGF0ZSBDb2xsZWdlIEJsdmQuCisJCQkJU3VpdGUgMTMwMAorCQkJCU9yYW5nZSBDQSA5Mjg2OAorCQkJCVVOSVRFRCBTVEFURVMKKworNTAtQTYtRTMgICAoaGV4KQkJRGF2aWQgQ2xhcmsgQ29tcGFueQorNTBBNkUzICAgICAoYmFzZSAxNikJCURhdmlkIENsYXJrIENvbXBhbnkKKwkJCQkzNjAgRnJhbmtsaW4gU3QuCisJCQkJV29yY2VzdGVyIE1BIDAxNjE1CisJCQkJVU5JVEVEIFNUQVRFUworCis1MC1BRi03MyAgIChoZXgpCQlTaGVuemhlbiBCaXRsYW5kIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCis1MEFGNzMgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQml0bGFuZCBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTEtNEYsNDQgQnVpbGRpbmcsVGFuZ2xhbmcgSW5kdXN0cmlhbCBQYXJrIGFuZCAxLTZGLCM3IEJ1aWxkaW5nLFhpTGkgVG9uZ2Z1eXUgSW5kdXN0cmlhbCBUb3duLE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU1CisJCQkJQ0hJTkEKKworNTAtQzUtOEQgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworNTBDNThEICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5IAorCQkJCVVOSVRFRCBTVEFURVMKKworNTAtQzktNzEgICAoaGV4KQkJR04gTmV0Y29tIEEvUworNTBDOTcxICAgICAoYmFzZSAxNikJCUdOIE5ldGNvbSBBL1MKKwkJCQlMYXV0cnVwYmplcmcgNworCQkJCVAuTy4gQm94IDk5CisJCQkJQmFsbGVydXAgIERLLTI3NTAKKwkJCQlERU5NQVJLCisKKzUwLUNFLTc1ICAgKGhleCkJCU1lYXN5IEVsZWN0cm9uaWNzIEx0ZAorNTBDRTc1ICAgICAoYmFzZSAxNikJCU1lYXN5IEVsZWN0cm9uaWNzIEx0ZAorCQkJCSMxNTA2LCBCbG9jayBCLCBIYWkgU29uZyBCbGRnLCBUYWlyYW4gOXRoIFJvYWQKKwkJCQlDaGUgR29uZyBNaWFvLCBGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZyBEb25nICA1MTgwNDAKKwkJCQlDSElOQQorCis1MC1ENi1ENyAgIChoZXgpCQlUYWthaGF0YSBQcmVjaXNpb24KKzUwRDZENyAgICAgKGJhc2UgMTYpCQlUYWthaGF0YSBQcmVjaXNpb24KKwkJCQk0LTE3LTEgU3VuaXlvc2hpCisJCQkJS29mdSBTaGkgWWFtYW5hc2hpIDQwMC0wODUxCisJCQkJSkFQQU4KKworNTAtRTUtNDkgICAoaGV4KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKzUwRTU0OSAgICAgKGJhc2UgMTYpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCU5vLjIxNSxOYW4tUGluZyBSb2FkLAorCQkJCVBpbi1KZW4gQ2l0eSwgIFRhb3l1YW4gMzI0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis1MC1FQi0xQSAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworNTBFQjFBICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCisJCQkJMTc0NSBUZWNobm9sb2d5IERyCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzUwLUYwLTAzICAgKGhleCkJCU9wZW4gU3RhY2ssIEluYy4KKzUwRjAwMyAgICAgKGJhc2UgMTYpCQlPcGVuIFN0YWNrLCBJbmMuCisJCQkJQWR2YW5jZWQgUmVzZWFyY2ggQ2VudGVyICM0MTEKKwkJCQlZYS1UYXAgNjgKKwkJCQlCdW4tRGFuZywgU2VvbmctTmFtIEd5dW5nLUdpIDQ2My04MTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNTAtRkEtQUIgICAoaGV4KQkJTC10ZWsgZC5vLm8uCis1MEZBQUIgICAgIChiYXNlIDE2KQkJTC10ZWsgZC5vLm8uCisJCQkJT2JydG5hIGNlc3RhIDE4CisJCQkJU2VudGplcm5laiAgODMxMAorCQkJCVNMT1ZFTklBCisKKzU0LTAzLUY1ICAgKGhleCkJCUVCTiBUZWNobm9sb2d5IENvcnAuCis1NDAzRjUgICAgIChiYXNlIDE2KQkJRUJOIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkxMEYsIE5vLjkwLCBTZWMuIDEsIFNpbnRhaSA1dGggUmQuCisJCQkJU2lqaGloIENpdHkgVGFpcGVpIENvdW50eSAyMjEwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNTQtMDQtOTYgICAoaGV4KQkJR2lnYXdhdmUgTFRECis1NDA0OTYgICAgIChiYXNlIDE2KQkJR2lnYXdhdmUgTFRECisJCQkJR0lHQVdBVkUgVEVDSE5JQ0FMIENFTlRSRQorCQkJCUVhcmxzIENvbG5lIEJ1c2luZXNzIFBhcmsKKwkJCQlDb2xjaGVzdGVyIEVTU0VYIENPNjJOUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzU0LTA1LTVGICAgKGhleCkJCUFsY2F0ZWwgTHVjZW50Cis1NDA1NUYgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBMdWNlbnQKKwkJCQlWaWEgVHJlbnRvLCAzMAorCQkJCVZpbWVyY2F0ZSBNQiAyMDA1OQorCQkJCUlUQUxZCisKKzU0LTMxLTMxICAgKGhleCkJCVJhc3RlciBWaXNpb24gTHRkCis1NDMxMzEgICAgIChiYXNlIDE2KQkJUmFzdGVyIFZpc2lvbiBMdGQKKwkJCQlVbml0IDEsIENydW5kYWxscworCQkJCUdlZGdlcyBIaWxsLCBNYXRmaWVsZAorCQkJCVRvbmJyaWRnZSAgS2VudCBUTjEyIDdFQQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzU0LTM1LURGICAgKGhleCkJCVN5bWVvIEdtYkgKKzU0MzVERiAgICAgKGJhc2UgMTYpCQlTeW1lbyBHbWJICisJCQkJUHJvZi4tTWVzc2Vyc2NobWl0dC1TdHIuIDMKKwkJCQlOZXViaWJlcmcgQmF2YXJpYSA4NTU3OQorCQkJCUdFUk1BTlkKKworNTQtNDItNDkgICAoaGV4KQkJU29ueSBDb3Jwb3JhdGlvbgorNTQ0MjQ5ICAgICAoYmFzZSAxNikJCVNvbnkgQ29ycG9yYXRpb24KKwkJCQlHb3RlbnlhbWEgVGVjLgorCQkJCTUtMS0xMiBLaXRhc2hpbmFnYXdhIFNoaW5hZ2F3YS1rdQorCQkJCVRva3lvICAxNDEtMDAwMQorCQkJCUpBUEFOCisKKzU0LTRBLTA1ICAgKGhleCkJCXdlbmdsb3Igc2Vuc29yaWMgZ21iaAorNTQ0QTA1ICAgICAoYmFzZSAxNikJCXdlbmdsb3Igc2Vuc29yaWMgZ21iaAorCQkJCXdlbmdsb3IgU3RyLiAzCisJCQkJVGV0dG5hbmcgIDg4MDY5CisJCQkJR0VSTUFOWQorCis1NC01Ri1BOSAgIChoZXgpCQlUZXJhY29tIExpbWl0ZWQKKzU0NUZBOSAgICAgKGJhc2UgMTYpCQlUZXJhY29tIExpbWl0ZWQKKwkJCQlCLTg0LCBTZWN0b3IgLSA2MCwKKwkJCQlOb2lkYSBVdHRhciBQcmFkZXNoIDIwMSAzMDEKKwkJCQlJTkRJQQorCis1NC03NS1EMCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis1NDc1RDAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis1NC03Ri01NCAgIChoZXgpCQlJTkdFTklDTworNTQ3RjU0ICAgICAoYmFzZSAxNikJCUlOR0VOSUNPCisJCQkJMSBydWUgQ2xhdWRlIENoYXBwZSwgQlAgMzQ2CisJCQkJR3VpbGhlcmFuZC1HcmFuZ2VzIERST01FIDA3NTAzCisJCQkJRlJBTkNFCisKKzU0LTdGLUVFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzU0N0ZFRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzU0LTg0LTdCICAgKGhleCkJCURpZ2l0YWwgRGV2aWNlcyBHbWJICis1NDg0N0IgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBEZXZpY2VzIEdtYkgKKwkJCQlNb2V3ZXN0ciA0NSBBCisJCQkJTXVlbmNoZW4gIDgxODI3CisJCQkJR0VSTUFOWQorCis1NC04OS0yMiAgIChoZXgpCQlaZWxmeSBJbmMKKzU0ODkyMiAgICAgKGJhc2UgMTYpCQlaZWxmeSBJbmMKKwkJCQk0NjU1IE9sZCBJcm9uc2lkZXMgRHIsIFN1aXRlIzIwMAorCQkJCVNhbnRhIENsYXJhIENhIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCis1NC04OS05OCAgIChoZXgpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKzU0ODk5OCAgICAgKGJhc2UgMTYpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKwkJCQlCMS03LEh1YXdlaSBJbmR1c3RyaWFsIEJhc2UsQmFudGlhbixMb25nZ2FuZworCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCis1NC05Mi1CRSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzU0OTJCRSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNTQtOUEtMTYgICAoaGV4KQkJVXp1c2hpbyBFbGVjdHJpYyBDby4sTHRkLgorNTQ5QTE2ICAgICAoYmFzZSAxNikJCVV6dXNoaW8gRWxlY3RyaWMgQ28uLEx0ZC4KKwkJCQkxNTIwIEt1bworCQkJCU9uaXNoaS1jaG8KKwkJCQlJbWFiYXJpLWNpdHkgRWhpbWUgcHJlZi4gNzk5MjI5NAorCQkJCUpBUEFOCisKKzU0LTlCLTEyICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzU0OUIxMiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzU0LUE1LTFCICAgKGhleCkJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKzU0QTUxQiAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworNTQtQjYtMjAgICAoaGV4KQkJU1VIRE9MIEUmQyBDby5MdGQuCis1NEI2MjAgICAgIChiYXNlIDE2KQkJU1VIRE9MIEUmQyBDby5MdGQuCisJCQkJOTIwLCBJbHNhbiBUZWNobm9Ub3duIDExNDEtMSwgQmFla3Nlb2stZG9uZywgSWxzYW5kb25nLWd1CisJCQkJR295YW5nLXNpIEd5dW5nZ2ktZG8gNDEwLTcyMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis1NC1ENC02RiAgIChoZXgpCQlDaXNjbyBTUFZURworNTRENDZGICAgICAoYmFzZSAxNikJCUNpc2NvIFNQVlRHCisJCQkJNTAzMCBTdWdhcmxvYWYgUGt3eQorCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzU0LUU2LUZDICAgKGhleCkJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorNTRFNkZDICAgICAoYmFzZSAxNikJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorCQkJCTEtNkYsIEJ1aWxkaW5nIDIsIFBpbmdzaGFuZGF5dWFuIEluZHVzdHJpYWwsIFNvdXRoIFpvbmUsCisJCQkJVGFveXVhbiBTdHJlZXQsIE5hbnNoYW4gRGlzdHJpY3QsIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCis1NC1GNS1CNiAgIChoZXgpCQlPUklFTlRBTCBQQUNJRklDIElOVEVSTkFUSU9OQUwgTElNSVRFRAorNTRGNUI2ICAgICAoYmFzZSAxNikJCU9SSUVOVEFMIFBBQ0lGSUMgSU5URVJOQVRJT05BTCBMSU1JVEVECisJCQkJNSBBUkdVUyBQTEFDRQorCQkJCUhJTExDUkVTVAorCQkJCU5PUlRIIFNIT1JFIENJVFkgQVVDS0xBTkQgMDYyNworCQkJCU5FVyBaRUFMQU5ECisKKzU0LUZELUJGICAgKGhleCkJCVNjaGVpZHQgJiBCYWNobWFubiBHbWJICis1NEZEQkYgICAgIChiYXNlIDE2KQkJU2NoZWlkdCAmIEJhY2htYW5uIEdtYkgKKwkJCQlCcmVpdGUgU3RyYXNzZSAxMzIKKwkJCQlNb2VuY2hlbmdsYWRiYWNoIE5SVyA0MTIzOAorCQkJCUdFUk1BTlkKKworNTgtMDUtNTYgICAoaGV4KQkJRWxldHRyb25pY2EgR0YgUy5yLkwuCis1ODA1NTYgICAgIChiYXNlIDE2KQkJRWxldHRyb25pY2EgR0YgUy5yLkwuCisJCQkJVmlhIFZpdHRvcmksIDYzCisJCQkJRkFFTlpBIFJBIDQ4MDE4CisJCQkJSVRBTFkKKworNTgtMTYtMjYgICAoaGV4KQkJQXZheWEsIEluYworNTgxNjI2ICAgICAoYmFzZSAxNikJCUF2YXlhLCBJbmMKKwkJCQkyMTEgTW91bnQgQWlyeSBSb2FkCisJCQkJQmFza2luZyBSaWRnZSBOSiAwNzkyMC0yMzExCisJCQkJVU5JVEVEIFNUQVRFUworCis1OC0xNy0wQyAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorNTgxNzBDICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKKzU4LTFGLUFBICAgKGhleCkJCUFwcGxlLCBJbmMuCis1ODFGQUEgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LTJGLTQyICAgKGhleCkJCVVuaXZlcnNhbCBFbGVjdHJpYyBDb3Jwb3JhdGlvbgorNTgyRjQyICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBFbGVjdHJpYyBDb3Jwb3JhdGlvbgorCQkJCTE2OCBHZW9yZ2V0b3duIFJvYWQKKwkJCQlDYW5vbnNidXJnIFBBIDE1MzE3CisJCQkJVU5JVEVEIFNUQVRFUworCis1OC0zNS1EOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis1ODM1RDkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNTgtM0MtQzYgICAoaGV4KQkJT21uZWFsaXR5IEx0ZC4KKzU4M0NDNiAgICAgKGJhc2UgMTYpCQlPbW5lYWxpdHkgTHRkLgorCQkJCTcgR3JvdmUgSG91c2UsIEZpcnNncm92ZSBDcmVzY2VudAorCQkJCVdhcmxleQorCQkJCUJyZW50d29vZCBFc3NleCBDTTE0IDVKUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzU4LTQyLUU0ICAgKGhleCkJCVNpZ21hIEludGVybmF0aW9uYWwgR2VuZXJhbCBNZWRpY2FsIEFwcGFyYXR1cywgTExDLgorNTg0MkU0ICAgICAoYmFzZSAxNikJCVNpZ21hIEludGVybmF0aW9uYWwgR2VuZXJhbCBNZWRpY2FsIEFwcGFyYXR1cywgTExDLgorCQkJCTcxMSBQYXJrIEF2ZW51ZQorCQkJCU1lZGluYSBOWSAxNDEwMworCQkJCVVOSVRFRCBTVEFURVMKKworNTgtNDktQkEgICAoaGV4KQkJQ2hpdGFpIEVsZWN0cm9uaWMgQ29ycC4KKzU4NDlCQSAgICAgKGJhc2UgMTYpCQlDaGl0YWkgRWxlY3Ryb25pYyBDb3JwLgorCQkJCTVGLiwgTm8uIDEgTGFuZSAxMjMsIFBhby1DaHVuZyBSZC4sIEhzaW4tVGllbiBDaXR5IAorCQkJCVRhaWVwaSAgMjMxNDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzU4LTRDLTE5ICAgKGhleCkJCUNob25ncWluZyBHdW9ob25nIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ29tcGFueSBMaW1pdGVkCis1ODRDMTkgICAgIChiYXNlIDE2KQkJQ2hvbmdxaW5nIEd1b2hvbmcgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDb21wYW55IExpbWl0ZWQKKwkJCQlSb25nemhpIEJ1aWxkaW5nLCBTY2llbmNlICYgVGVjaG5vbG9neSBWZW50dXJlIENlbnRlciwKKwkJCQlOby44IFl1bWEgUm9hZCwgTmFuJ2FuIERpc3RyaWN0LCAKKwkJCQlDaG9uZ3FpbmcgIDQwMTMzNgorCQkJCUNISU5BCisKKzU4LTRDLUVFICAgKGhleCkJCURpZ2l0YWwgT25lIFRlY2hub2xvZ2llcywgTGltaXRlZAorNTg0Q0VFICAgICAoYmFzZSAxNikJCURpZ2l0YWwgT25lIFRlY2hub2xvZ2llcywgTGltaXRlZAorCQkJCU5vLjEgU2hhbmdkaSBYaW54aSBSb2FkCisJCQkJSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzU4LTUwLTc2ICAgKGhleCkJCUxpbmVhciBFcXVpcGFtZW50b3MgRWxldHJvbmljb3MgU0EKKzU4NTA3NiAgICAgKGJhc2UgMTYpCQlMaW5lYXIgRXF1aXBhbWVudG9zIEVsZXRyb25pY29zIFNBCisJCQkJUHJhY2EgTGluZWFyIDEwMAorCQkJCVNhbnRhIFJpdGEgZG8gU2FwdWNhaSBNRyAzNzU0MDAwMAorCQkJCUJSQVpJTAorCis1OC01MC1FNiAgIChoZXgpCQlCZXN0IEJ1eSBDb3Jwb3JhdGlvbgorNTg1MEU2ICAgICAoYmFzZSAxNikJCUJlc3QgQnV5IENvcnBvcmF0aW9uCisJCQkJNzYwMSBQZW5uIEF2ZSBTb3V0aAorCQkJCUM3CisJCQkJUmljaGZpZWxkIE1OIDU1NDIzCisJCQkJVU5JVEVEIFNUQVRFUworCis1OC01NS1DQSAgIChoZXgpCQlBcHBsZQorNTg1NUNBICAgICAoYmFzZSAxNikJCUFwcGxlCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis1OC01Ny0wRCAgIChoZXgpCQlEYW5mb3NzIFNvbGFyIEludmVydGVycworNTg1NzBEICAgICAoYmFzZSAxNikJCURhbmZvc3MgU29sYXIgSW52ZXJ0ZXJzCisJCQkJSnlsbGFuZHNnYWRlIDI4CisJCQkJU2k/b2VuZGVyYm9yZyAgREstNjQwMAorCQkJCURFTk1BUksKKworNTgtNjctMUEgICAoaGV4KQkJQkFSTkVTJk5PQkxFLkNPTQorNTg2NzFBICAgICAoYmFzZSAxNikJCUJBUk5FUyZOT0JMRS5DT00KKwkJCQk0MDAgSEFNSUxUT04gQVZFTlVFCisJCQkJU1VJVEUgMTMwCisJCQkJUEFMTyBBTFRPIENBIDk0MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCis1OC02RC04RiAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzU4NkQ4RiAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LTZFLUQ2ICAgKGhleCkJCVBSSVZBVEUKKzU4NkVENiAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorNTgtNzUtMjEgICAoaGV4KQkJQ0pTQyBSVFNvZnQKKzU4NzUyMSAgICAgKGJhc2UgMTYpCQlDSlNDIFJUU29mdAorCQkJCU5pa2l0aW5za2F5YSBzdHIuLCAzCisJCQkJTW9zY293ICAxMDUwMzcKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworNTgtNzYtNzUgICAoaGV4KQkJQmVpamluZyBFQ0hPIFRlY2hub2xvZ2llcyBDby4sTHRkCis1ODc2NzUgICAgIChiYXNlIDE2KQkJQmVpamluZyBFQ0hPIFRlY2hub2xvZ2llcyBDby4sTHRkCisJCQkJTk8xIFN0cmVldCA0IFNoYW5nZGkgIAorCQkJCUhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpSmluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworNTgtOEQtMDkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNTg4RDA5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNTgtOTQtNkIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis1ODk0NkIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis1OC05OC0zNSAgIChoZXgpCQlUZWNobmljb2xvcgorNTg5ODM1ICAgICAoYmFzZSAxNikJCVRlY2huaWNvbG9yCisJCQkJUHJpbnMgQm91ZGV3aWpubGFhbiA0NworCQkJCUVkZWdlbSAgIEItMjY1MAorCQkJCUJFTEdJVU0KKworNTgtQTctNkYgICAoaGV4KQkJaUQgY29ycG9yYXRpb24KKzU4QTc2RiAgICAgKGJhc2UgMTYpCQlpRCBjb3Jwb3JhdGlvbgorCQkJCWdvcnlva2FrdSBibGQuIDJGCisJCQkJNi0xMCAKKwkJCQloYWtvZGF0ZSBob2trYWlkbyAwNDAtMDAxMQorCQkJCUpBUEFOCisKKzU4LUIwLTM1ICAgKGhleCkJCUFwcGxlLCBJbmMKKzU4QjAzNSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis1OC1COS1FMSAgIChoZXgpCQlDcnlzdGFsZm9udHogQW1lcmljYSwgSW5jLgorNThCOUUxICAgICAoYmFzZSAxNikJCUNyeXN0YWxmb250eiBBbWVyaWNhLCBJbmMuCisJCQkJMTI0MTIgRS4gU2FsdGVzZSBBdmUuCisJCQkJU3Bva2FuZSBWYWxsZXkgV0EgOTkyMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LUJDLTI3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzU4QkMyNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LUQwLThGICAgKGhleCkJCUlFRUUgMTkwNC4xIFdvcmtpbmcgR3JvdXAKKzU4RDA4RiAgICAgKGJhc2UgMTYpCQlJRUVFIDE5MDQuMSBXb3JraW5nIEdyb3VwCisJCQkJMTM1MSBSZWR3b29kIFdheSwgCisJCQkJUGV0YWx1bWEgQ0EgOTQ5NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LURCLThEICAgKGhleCkJCUZhc3QgQ28uLCBMdGQuCis1OERCOEQgICAgIChiYXNlIDE2KQkJRmFzdCBDby4sIEx0ZC4KKwkJCQkyLTExLTEgSXdhbW90b2NobworCQkJCTd0aCBGbC4sIEhlcmIgS2FuZGEgQmxkZy4sCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtMDAzMgorCQkJCUpBUEFOCisKKzU4LUU0LTc2ICAgKGhleCkJCUNFTlRST04gQ09NTVVOSUNBVElPTlMgVEVDSE5PTE9HSUVTIEZVSklBTiBDTy4sTFRECis1OEU0NzYgICAgIChiYXNlIDE2KQkJQ0VOVFJPTiBDT01NVU5JQ0FUSU9OUyBURUNITk9MT0dJRVMgRlVKSUFOIENPLixMVEQKKwkJCQk0dGggRmxvb3IsSmlhb2RhamllcHUgQnVpbGRpbmcsNzIjIEtlamllcmx1IFJvYWQsIAorCQkJCVhpJ2FuIFNoYWFueGkgUHJvdmluY2UgNzEwMTAwCisJCQkJQ0hJTkEKKworNTgtRTYtMzYgICAoaGV4KQkJRVZSc2FmZSBUZWNobm9sb2dpZXMKKzU4RTYzNiAgICAgKGJhc2UgMTYpCQlFVlJzYWZlIFRlY2hub2xvZ2llcworCQkJCTU5IE5vcnRoIFRlcnJhY2UgCisJCQkJSGFja25leQorCQkJCUFkZWxhaWRlIFNvdXRoIEF1c3RyYWxpYSA1MDY5CisJCQkJQVVTVFJBTElBCisKKzU4LUU3LTQ3ICAgKGhleCkJCURlbHRhbmV0IEFHCis1OEU3NDcgICAgIChiYXNlIDE2KQkJRGVsdGFuZXQgQUcKKwkJCQlSaWVkc3RyYXNzZSA4CisJCQkJRGlldGlrb24gWnVyaWNoIDg5NTMKKwkJCQlTV0lUWkVSTEFORAorCis1OC1FOC0wOCAgIChoZXgpCQlBVVRPTklDUyBDT1JQT1JBVElPTgorNThFODA4ICAgICAoYmFzZSAxNikJCUFVVE9OSUNTIENPUlBPUkFUSU9OCisJCQkJNDEtNSBZT05HREFORy1ET05HCisJCQkJWUFOR1NBTi1TSSBLWUVPTkdOQU0gNjI2LTg0NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis1OC1FRS1DRSAgIChoZXgpCQlJY29uIFRpbWUgU3lzdGVtcworNThFRUNFICAgICAoYmFzZSAxNikJCUljb24gVGltZSBTeXN0ZW1zCisJCQkJMTUyMDEgTlcgR3JlZW5icmllciBQYXJrd2F5CisJCQkJU3VpdGUgQTEKKwkJCQlCZWF2ZXJ0b24gT1IgOTcwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LUY2LTdCICAgKGhleCkJCVhpYSBNZW4gVW5pb25Db3JlIFRlY2hub2xvZ3kgTFRELgorNThGNjdCICAgICAoYmFzZSAxNikJCVhpYSBNZW4gVW5pb25Db3JlIFRlY2hub2xvZ3kgTFRELgorCQkJCSgyMjQpMkYgQ2h1YW5neWUgQnVpbGRpbmcsWGlhbWVuIFBpb25lZXJpbmcgUGFyayBmb3IgT3ZlcnNlYXMgQ2hpbmVzZSBTY2hvbGFycworCQkJCVhpYSBNZW4gRnUgSmlhbiAzNjEwMDkKKwkJCQlDSElOQQorCis1OC1GNi1CRiAgIChoZXgpCQlLeW90byBVbml2ZXJzaXR5Cis1OEY2QkYgICAgIChiYXNlIDE2KQkJS3lvdG8gVW5pdmVyc2l0eQorCQkJCVlvc2hpZGEtSG9tbWFjaGkKKwkJCQlTYWt5by1rdQorCQkJCUt5b3RvICA2MDY4NTAxCisJCQkJSkFQQU4KKworNTgtRjktOEUgICAoaGV4KQkJU0VDVURPUyBHbWJICis1OEY5OEUgICAgIChiYXNlIDE2KQkJU0VDVURPUyBHbWJICisJCQkJUmhlbnVzLVBsYXR6IDIKKwkJCQlIb2x6d2lja2VkZSBOUlcgNTk0MzkKKwkJCQlHRVJNQU5ZCisKKzU4LUZELTIwICAgKGhleCkJCUJyYXZpZGEgU2FrZXJoZXQgQUIKKzU4RkQyMCAgICAgKGJhc2UgMTYpCQlCcmF2aWRhIFNha2VyaGV0IEFCCisJCQkJTWlrcm9mb252YWdlbiAyOAorCQkJCVNUT0NLSE9MTSAgMTI2IDgxCisJCQkJU1dFREVOCisKKzVDLTA3LTZGICAgKGhleCkJCVRob3VnaHQgQ3JlYXRvcgorNUMwNzZGICAgICAoYmFzZSAxNikJCVRob3VnaHQgQ3JlYXRvcgorCQkJCUxhcmdvIGRhIFBpcmk/b2VtaWRlLCBOaT9vZSAzLCBTYWxhIEQKKwkJCQlPZWlyYXMgTGlzYm9hIDI3OTUtMTU2IExpbmRhLWEtVmVsaGEKKwkJCQlQT1JUVUdBTAorCis1Qy0wQy1CQiAgIChoZXgpCQlDRUxJWklPTiBJbmMuCis1QzBDQkIgICAgIChiYXNlIDE2KQkJQ0VMSVpJT04gSW5jLgorCQkJCSMyMDYgTG9yZGxhbmQgRVogVG93ZXIsIEd1TWktRG9uZyAxNTMgQnVuRGFuZy1HdQorCQkJCVNlb25nTmFtLVNpICBHeWVvbmdHaS1EbyA0NjMtODcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzVDLTBFLThCICAgKGhleCkJCU1vdG9yb2xhCis1QzBFOEIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEKKwkJCQlPbmUgTW90b3JvbGEgUGxhemEKKwkJCQlIb2x0c3ZpbGxlIE5ZIDExNzQyCisJCQkJVU5JVEVEIFNUQVRFUworCis1Qy0xNC0zNyAgIChoZXgpCQlUaHlzc2Vua3J1cHAgQXVmenVnc3dlcmtlIEdtYkgKKzVDMTQzNyAgICAgKGJhc2UgMTYpCQlUaHlzc2Vua3J1cHAgQXVmenVnc3dlcmtlIEdtYkgKKwkJCQlCZXJuaGFldXNlciBTdHIuNDUKKwkJCQlOZXVoYXVzZW4gYS5kLkYgIDczNzY1CisJCQkJR0VSTUFOWQorCis1Qy0xNi1DNyAgIChoZXgpCQlCaWcgU3dpdGNoIE5ldHdvcmtzCis1QzE2QzcgICAgIChiYXNlIDE2KQkJQmlnIFN3aXRjaCBOZXR3b3JrcworCQkJCTg1NSBFTCBDQU1JTk8gUkVBTAorCQkJCVNURSAyNjAgQkxERyA0CisJCQkJUGFsbyBBbHRvIENBIDk0MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCis1Qy0xNy1EMyAgIChoZXgpCQlMR0UgCis1QzE3RDMgICAgIChiYXNlIDE2KQkJTEdFIAorCQkJCTYwLTM5ICwgS2FzYW4gLWRvbmcgLCBHdW1jaGVvbi1ndS4KKwkJCQlTZW91bCAgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNUMtMjYtMEEgICAoaGV4KQkJRGVsbCBJbmMuCis1QzI2MEEgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCis1Qy0zMy04RSAgIChoZXgpCQlBbHBoYSBOZXR3b3JrYyBJbmMuCis1QzMzOEUgICAgIChiYXNlIDE2KQkJQWxwaGEgTmV0d29ya2MgSW5jLgorCQkJCU5vLjggTGktc2hpbmcgU2V2ZW50aCBSb2FkLFNjaWVuY2UtYmFzZWQKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzVDLTM1LTNCICAgKGhleCkJCUNvbXBhbCBCcm9hZGJhbmQgTmV0d29ya3MgSW5jLgorNUMzNTNCICAgICAoYmFzZSAxNikJCUNvbXBhbCBCcm9hZGJhbmQgTmV0d29ya3MgSW5jLgorCQkJCTJGLi0yLCBOby4zMiBUYWl5dWFuIFN0LgorCQkJCVpodWJlaSBDaXR5IEhzaW5jaHUgQ291bnR5IDMwMjY1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis1Qy0zNS1EQSAgIChoZXgpCQlUaGVyZSBDb3Jwb3JhdGlvbiBPeQorNUMzNURBICAgICAoYmFzZSAxNikJCVRoZXJlIENvcnBvcmF0aW9uIE95CisJCQkJRWxpbWk/b2VlbmthdHUgNQorCQkJCUhlbHNpbmtpICAwMDUxMAorCQkJCUZJTkxBTkQKKworNUMtNDAtNTggICAoaGV4KQkJSmVmZmVyc29uIEF1ZGlvIFZpZGVvIFN5c3RlbXMsIEluYy4KKzVDNDA1OCAgICAgKGJhc2UgMTYpCQlKZWZmZXJzb24gQXVkaW8gVmlkZW8gU3lzdGVtcywgSW5jLgorCQkJCTEzMDIwIE1pZGRsZXRvd24gSW5kdXN0cmlhbCBCbHZkLgorCQkJCUxvdWlzdmlsbGUgS2VudHVja3kgNDAyMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzVDLTRDLUE5ICAgKGhleCkJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKzVDNENBOSAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTEwMTA4CisJCQkJQ0hJTkEKKworNUMtNTYtRUQgICAoaGV4KQkJM3BsZXBsYXkgRWxlY3Ryb25pY3MgUHJpdmF0ZSBMaW1pdGVkCis1QzU2RUQgICAgIChiYXNlIDE2KQkJM3BsZXBsYXkgRWxlY3Ryb25pY3MgUHJpdmF0ZSBMaW1pdGVkCisJCQkJMTEwNiwgMTF0aCBGbG9vcgorCQkJCUJhYnUgS2hhbiBFc3RhdGUsIEJhc2hlZXJiYWdoCisJCQkJSHlkZXJhYmFkIEFuZGhyYSBQcmFkZXNoIDUwMDAwMQorCQkJCUlORElBCisKKzVDLTU3LUM4ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCis1QzU3QzggICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1NzAKKwkJCQlGSU5MQU5ECisKKzVDLTU5LTQ4ICAgKGhleCkJCUFwcGxlCis1QzU5NDggICAgIChiYXNlIDE2KQkJQXBwbGUKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzVDLTVFLUFCICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzVDNUVBQiAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OSAKKwkJCQlVTklURUQgU1RBVEVTCisKKzVDLTY5LTg0ICAgKGhleCkJCU5VVklDTworNUM2OTg0ICAgICAoYmFzZSAxNikJCU5VVklDTworCQkJCTcyLTMgU2luZGFlLCBTaWxjaG9uCisJCQkJR3dhbmp1IEd5ZW9uZ2dpIDQ2NC04NzMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNUMtNkEtN0QgICAoaGV4KQkJS0VOVEtBUlQgRUdFIEVMRUtUUk9OSUsgU0FOLiBWRSBUSUMuIExURC4gU1RJLiAKKzVDNkE3RCAgICAgKGJhc2UgMTYpCQlLRU5US0FSVCBFR0UgRUxFS1RST05JSyBTQU4uIFZFIFRJQy4gTFRELiBTVEkuIAorCQkJCTEzNzAgU0ssIE5POjQyLzMwNCwgCisJCQkJTU9OVFJPIElaTUlSIDM1MjMwCisJCQkJVFVSS0VZCisKKzVDLTZELTIwICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzVDNkQyMCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJIE5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgICAyMDE2MTMgCisJCQkJQ0hJTkEKKworNUMtNzctNTcgICAoaGV4KQkJSGFpdmlzaW9uIE5ldHdvcmsgVmlkZW8KKzVDNzc1NyAgICAgKGJhc2UgMTYpCQlIYWl2aXNpb24gTmV0d29yayBWaWRlbworCQkJCTQ0NDUgR2FyYW5kCisJCQkJTW9udHJlYWwgUUMgSDRSIDJIOQorCQkJCUNBTkFEQQorCis1Qy04Ni00QSAgIChoZXgpCQlTZWNyZXQgTGFicyBMTEMKKzVDODY0QSAgICAgKGJhc2UgMTYpCQlTZWNyZXQgTGFicyBMTEMKKwkJCQkzMTUgQmxlZWNrZXIgU3QgIzMwOAorCQkJCU5ldyBZb3JrIE5ZIDEwMDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis1Qy04Ny03OCAgIChoZXgpCQlDeWJlcnRlbGJyaWRnZSBjby4sbHRkCis1Qzg3NzggICAgIChiYXNlIDE2KQkJQ3liZXJ0ZWxicmlkZ2UgY28uLGx0ZAorCQkJCSM5MDEgQWNlaGlnaGVuZCB0b3dlciAyCisJCQkJMjIyLTE0IEd1cm8tZ3UgR3Vyby1kb25nCisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNUMtOUEtRDggICAoaGV4KQkJRnVqaXRzdSBMaW1pdGVkCis1QzlBRDggICAgIChiYXNlIDE2KQkJRnVqaXRzdSBMaW1pdGVkCisJCQkJTXVzYXNoaS1rb3N1Z2kgVG93ZXIgUGxhY2UgQmxkZy4sCisJCQkJNDAzLCBLb3N1Z2ktY2hvIDEtY2hvbWUsTmFrYWhhcmEta3UKKwkJCQlLYXdhc2FraSBLYW5hZ2F3YSAyMTEtMDA2MworCQkJCUpBUEFOCisKKzVDLUFDLTRDICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzVDQUM0QyAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMyAKKwkJCQlDSElOQQorCis1Qy1CRC05RSAgIChoZXgpCQlIT05HS09ORyBNSVJBQ0xFIEVBR0xFIFRFQ0hOT0xPR1koR1JPVVApIExJTUlURUQKKzVDQkQ5RSAgICAgKGJhc2UgMTYpCQlIT05HS09ORyBNSVJBQ0xFIEVBR0xFIFRFQ0hOT0xPR1koR1JPVVApIExJTUlURUQKKwkJCQlGTEFUIFJNIDIxMDMsICBFQVNFWSBDT01NRVJDSUFMIEJMREcsMjUzLTI2MSBIRU5ORVNTWSBSRCwgIAorCQkJCVdBTkNIQUkgOTk5MDc3CisJCQkJSE9ORyBLT05HCisKKzVDLUNBLTMyICAgKGhleCkJCVRoZWJlbiBBRworNUNDQTMyICAgICAoYmFzZSAxNikJCVRoZWJlbiBBRworCQkJCUhvaGVuYmVyZ3N0cmFpP29lZSAzMgorCQkJCUhhaWdlcmxvY2ggQmFkZW4tV2k/b2VydHRlbWJlcmcgNzI0MDEKKwkJCQlHRVJNQU5ZCisKKzVDLUQxLTM1ICAgKGhleCkJCVh0cmVtZSBQb3dlciBTeXN0ZW1zCis1Q0QxMzUgICAgIChiYXNlIDE2KQkJWHRyZW1lIFBvd2VyIFN5c3RlbXMKKwkJCQkyNDQwIEtpb3dhIEJsdmQuIE4uICMxMDIKKwkJCQlMYWtlIEhhdmFzdSBDaXR5IEFaIDg2NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCis1Qy1EOS05OCAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzVDRDk5OCAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOby4yODksIFNpbmh1IDNyZCBSZC4sIE5laWh1IERpc3RyaWN0LCAKKwkJCQlUYWlwZWkgQ2l0eSAgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNUMtREEtRDQgICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCis1Q0RBRDQgICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJMTAtMSwgSGlnYXNoaWtvdGFyaSAxLWNob21lCisJCQkJTmFnYW9rYWt5by1zaGkgS3lvdG8gNjE3LTg1NTUKKwkJCQlKQVBBTgorCis1Qy1FMi0yMyAgIChoZXgpCQlEZWxwaGluIFRlY2hub2xvZ3kgQUcKKzVDRTIyMyAgICAgKGJhc2UgMTYpCQlEZWxwaGluIFRlY2hub2xvZ3kgQUcKKwkJCQlMdXN0aGVpZGUgODEKKwkJCQlCZXJnaXNjaC1HbGFkYmFjaCAgNTE0MjcKKwkJCQlHRVJNQU5ZCisKKzVDLUUyLTg2ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworNUNFMjg2ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCUNBUlJFVEVSQSBCQVNFIEFFUkVBICMgNTg1MAorCQkJCVphcG9wYW4gSmFsaXNjbyA0NDEzMAorCQkJCU1FWElDTworCis1Qy1GMi0wNyAgIChoZXgpCQlTcGVjbyBUZWNobm9sb2dpZXMKKzVDRjIwNyAgICAgKGJhc2UgMTYpCQlTcGVjbyBUZWNobm9sb2dpZXMKKwkJCQkyMDAgTmV3IEhpZ2h3YXkKKwkJCQlBbWl0eXZpbGxlIE5ldyBZb3JrIDExNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCis1Qy1GMy1GQyAgIChoZXgpCQlJQk0gQ29ycAorNUNGM0ZDICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMzAzOSBFIENvcm53YWxsaXMgUmQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworNUMtRkYtMzUgICAoaGV4KQkJV2lzdHJvbiBDb3Jwb3JhdGlvbgorNUNGRjM1ICAgICAoYmFzZSAxNikJCVdpc3Ryb24gQ29ycG9yYXRpb24KKwkJCQkyMUYsIDg4LCBTZWMuMSwgSHNpbiBUYWkgV3UgUmQuLCBIc2ljaGloLAorCQkJCVRhaXBlaSBIc2llbiAgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis2MC0xMS05OSAgIChoZXgpCQlEYXRhLVRlc3RlciBJbmMuCis2MDExOTkgICAgIChiYXNlIDE2KQkJRGF0YS1UZXN0ZXIgSW5jLgorCQkJCTQ1MCBTdC1QaWVycmUsIHN1aXRlIDMwMAorCQkJCU1vbnRyZWFsIFF1ZWJlYyBIMlkgMk05CisJCQkJQ0FOQURBCisKKzYwLTEyLTgzICAgKGhleCkJCVNvbHVjaW9uZXMgVGVjbm9sb2dpY2FzIHBhcmEgbGEgU2FsdWQgeSBlbCBCaWVuZXN0YXIgU0EKKzYwMTI4MyAgICAgKGJhc2UgMTYpCQlTb2x1Y2lvbmVzIFRlY25vbG9naWNhcyBwYXJhIGxhIFNhbHVkIHkgZWwgQmllbmVzdGFyIFNBCisJCQkJUmQuIEF1Z3VzdGUgeSBMb3VpcyBMdW1pZXJlLCAyMyBuYXZlIDEzCisJCQkJUGFycXVlIFRlY25vbG9naWNvIGRlIFZhbGVuY2lhCisJCQkJUGF0ZXJuYSBWYWxlbmNpYS0gQ0lGIEVTIEEgOTgwMDU5NzggNDY5ODAKKwkJCQlTUEFJTgorCis2MC0xNS1DNyAgIChoZXgpCQlJZGFUZWNoCis2MDE1QzcgICAgIChiYXNlIDE2KQkJSWRhVGVjaAorCQkJCTYzMDY1IE5FIDE4dGggU3QuCisJCQkJQmVuZCBPUiA5NzcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworNjAtMTktMEMgICAoaGV4KQkJUlJBTUFDCis2MDE5MEMgICAgIChiYXNlIDE2KQkJUlJBTUFDCisJCQkJMTU0MDAgTWVkaW5hIFJkCisJCQkJUGx5bW91dGggTU4gNTU0NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLTFELTBGICAgKGhleCkJCU1pZG5pdGUgU29sYXIKKzYwMUQwRiAgICAgKGJhc2UgMTYpCQlNaWRuaXRlIFNvbGFyCisJCQkJMTc3MjIgNjd0aCBBdmUgTkUgI0MKKwkJCQlBcmxpbmd0b24gV0EgOTgyMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLTJBLTU0ICAgKGhleCkJCUNhcmRpb1RlayBCLlYuCis2MDJBNTQgICAgIChiYXNlIDE2KQkJQ2FyZGlvVGVrIEIuVi4KKwkJCQlBbWVyaWthbGFhbiA3MAorCQkJCU1hYXN0cmljaHQgQWlycG9ydCBMaW1idXJnIDYxOTlBRQorCQkJCU5FVEhFUkxBTkRTCisKKzYwLTJBLUQwICAgKGhleCkJCUNpc2NvIFNQVlRHCis2MDJBRDAgICAgIChiYXNlIDE2KQkJQ2lzY28gU1BWVEcKKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDAxNworCQkJCVVOSVRFRCBTVEFURVMKKworNjAtMzMtNEIgICAoaGV4KQkJQXBwbGUKKzYwMzM0QiAgICAgKGJhc2UgMTYpCQlBcHBsZQorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNjAtMzgtMEUgICAoaGV4KQkJQWxwcyBFbGVjdHJpYyBDby4sCis2MDM4MEUgICAgIChiYXNlIDE2KQkJQWxwcyBFbGVjdHJpYyBDby4sCisJCQkJMS0yLTEsIE9raW5vdWNoaQorCQkJCVNvbWEtY2l0eSBGdWt1c2hpbWEgOTc2LTg1MDEKKwkJCQlKQVBBTgorCis2MC0zOS0xRiAgIChoZXgpCQlBQkIgTHRkCis2MDM5MUYgICAgIChiYXNlIDE2KQkJQUJCIEx0ZAorCQkJCURpc3RyaWJ1dGlvbiBBdXRvbWF0aW9uCisJCQkJTWFuZWphCisJCQkJVmFkb2RhcmEgR3VqYXJhdCAzOTAwMTMKKwkJCQlJTkRJQQorCis2MC01Mi1EMCAgIChoZXgpCQlGQUNUUyBFbmdpbmVlcmluZyAKKzYwNTJEMCAgICAgKGJhc2UgMTYpCQlGQUNUUyBFbmdpbmVlcmluZyAKKwkJCQk4MDQ5IFBob3RvbmljcyBEcml2ZQorCQkJCU5ldyBQb3J0IFJpY2hleSBGTCAzNDY1NQorCQkJCVVOSVRFRCBTVEFURVMKKworNjAtNTQtNjQgICAoaGV4KQkJRXllZHJvIEdyZWVuIFNvbHV0aW9ucyBJbmMuCis2MDU0NjQgICAgIChiYXNlIDE2KQkJRXllZHJvIEdyZWVuIFNvbHV0aW9ucyBJbmMuCisJCQkJMSBZb25nZSBTdAorCQkJCVN1aXRlIDE4MDEKKwkJCQlUb3JvbnRvIE9udGFyaW8gTTVFIDFXNworCQkJCUNBTkFEQQorCis2MC02My1GRCAgIChoZXgpCQlUcmFuc2NlbmQgQ29tbXVuaWNhdGlvbiBCZWlqaW5nIENvLixMdGQuCis2MDYzRkQgICAgIChiYXNlIDE2KQkJVHJhbnNjZW5kIENvbW11bmljYXRpb24gQmVpamluZyBDby4sTHRkLgorCQkJCUEtNixLZXNoaSBwbGF6YSwyOCMsSW5mb3JtYXRpb24gUm9hZAorCQkJCUhhaWRpYW4gRGlzdCwKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCis2MC03Ni04OCAgIChoZXgpCQlWZWxvZHluZQorNjA3Njg4ICAgICAoYmFzZSAxNikJCVZlbG9keW5lCisJCQkJMzQ1IERpZ2l0YWwgRHJpdmUKKwkJCQlNb3JnYW4gSGlsbCBDQSA5NTAzNworCQkJCVVOSVRFRCBTVEFURVMKKworNjAtODMtQjIgICAoaGV4KQkJR2tXYXJlIGUuSy4KKzYwODNCMiAgICAgKGJhc2UgMTYpCQlHa1dhcmUgZS5LLgorCQkJCUh1bWJvbGR0c3RyYXNzZSAxNzcKKwkJCQlFc3NlbiBOUlcgNDUxNDkKKwkJCQlHRVJNQU5ZCisKKzYwLTg5LTNDICAgKGhleCkJCVRoZXJtbyBGaXNoZXIgU2NpZW50aWZpYyBQLk8uQS4KKzYwODkzQyAgICAgKGJhc2UgMTYpCQlUaGVybW8gRmlzaGVyIFNjaWVudGlmaWMgUC5PLkEuCisJCQkJNDYgSm9uc3BpbiBSZC4KKwkJCQlXaWxtaW5ndG9uIE1BIDAxODg3CisJCQkJVU5JVEVEIFNUQVRFUworCis2MC04OS1CNyAgIChoZXgpCQlLQUVMIE1pP29lSEVORElTTElLIEVMRUtUUk9OSUsgVElDQVJFVCBTQU5BWUkgTGltaXRlZCBpP29laXJrZXRpCis2MDg5QjcgICAgIChiYXNlIDE2KQkJS0FFTCBNaT9vZUhFTkRJU0xJSyBFTEVLVFJPTklLIFRJQ0FSRVQgU0FOQVlJIExpbWl0ZWQgaT9vZWlya2V0aQorCQkJCUF0YXRpP29lcmsgTWFoLiA3OCBzb2thayAsTm86MTAsIEJpP29leWk/b2VrYWxhbiBNZXZraWksCisJCQkJVWx1Y2FrIC8gS2VtYWxwYXNhCisJCQkJSXptaXIgQWVnZWFuIDM1MTc1CisJCQkJVFVSS0VZCisKKzYwLThELTE3ICAgKGhleCkJCVNlbnRydXMgR292ZXJubWVudCBTeXN0ZW1zIERpdmlzaW9uLCBJbmMKKzYwOEQxNyAgICAgKGJhc2UgMTYpCQlTZW50cnVzIEdvdmVybm1lbnQgU3lzdGVtcyBEaXZpc2lvbiwgSW5jCisJCQkJMTQxIENoZXN0ZXJmaWVsZCBJbmR1c3RyaWFsIEJsdmQKKwkJCQlDaGVzdGVyZmllbGQgTU8gNjMwMDUtMTIxOQorCQkJCVVOSVRFRCBTVEFURVMKKworNjAtOUEtQTQgICAoaGV4KQkJR1ZJIFNFQ1VSSVRZIElOQy4KKzYwOUFBNCAgICAgKGJhc2UgMTYpCQlHVkkgU0VDVVJJVFkgSU5DLgorCQkJCTI4MDEgVFJBREUgQ0VOVEVSIERSIFNURS4xMjAKKwkJCQlDQVJST0xMVE9OIFRYIDc1MDA3CisJCQkJVU5JVEVEIFNUQVRFUworCis2MC05RS02NCAgIChoZXgpCQlWaXZvbmljIEdtYkgKKzYwOUU2NCAgICAgKGJhc2UgMTYpCQlWaXZvbmljIEdtYkgKKwkJCQlLdXJmdWVyc3QtRXBwc3RlaW4tUmluZyA0CisJCQkJU2FpbGF1ZiBCYXllcm4gNjM4NzcKKwkJCQlHRVJNQU5ZCisKKzYwLTlGLTlEICAgKGhleCkJCUNsb3VkU3dpdGNoCis2MDlGOUQgICAgIChiYXNlIDE2KQkJQ2xvdWRTd2l0Y2gKKwkJCQkyMDAgV2hlZWxlciBSZAorCQkJCUJ1cmxpbmd0b24gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLUExLTBBICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNjBBMTBBICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2MC1CMy1DNCAgIChoZXgpCQlFbGJlciBTcmwKKzYwQjNDNCAgICAgKGJhc2UgMTYpCQlFbGJlciBTcmwKKwkJCQl2aWEgUG9udGV2ZWNjaGlvIDQyIFcKKwkJCQlDYXJhc2NvIEdlIDE2MDQyCisJCQkJSVRBTFkKKworNjAtQzktODAgICAoaGV4KQkJVHJ5bXVzCis2MEM5ODAgICAgIChiYXNlIDE2KQkJVHJ5bXVzCisJCQkJQnVjaGVvbiBUZWNobm8gUGFyayAzMDMtOTAyCisJCQkJT2plb25nLWd1IFNhbWp1bmctZG9uZworCQkJCUJ1Y2hlb24tc2kgNDIxLTc0MSBHeXVuZ2dpLWRvCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzYwLUQwLUE5ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNjBEMEE5ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2MC1EMy0wQSAgIChoZXgpCQlRdWF0aXVzIExpbWl0ZWQKKzYwRDMwQSAgICAgKGJhc2UgMTYpCQlRdWF0aXVzIExpbWl0ZWQKKwkJCQlVbml0cyAwNS0wNywgMTYvRiwgR3JlZW5maWVsZCBUb3dlciwgQ29uY29yZGlhIFBsYXphLAorCQkJCTEgU2NpZW5jZSBNdXNldW0gUmQuLCBUU1QgRWFzdAorCQkJCUtvd2xvb24gIAorCQkJCUhPTkcgS09ORworCis2MC1EQS0yMyAgIChoZXgpCQlFc3RlY2ggQ28uLEx0ZAorNjBEQTIzICAgICAoYmFzZSAxNikJCUVzdGVjaCBDby4sTHRkCisJCQkJIzcxNywxMzMtMSxTYW5nZGFld29uLURvbmcKKwkJCQlKdW5nd29uLUd1CisJCQkJU2VvbmduYW0tU2kgR3llb25nZ2ktRG8gNDYyLTEyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2MC1FQi02OSAgIChoZXgpCQlRdWFudGEgY29tcHV0ZXIgSW5jLgorNjBFQjY5ICAgICAoYmFzZSAxNikJCVF1YW50YSBjb21wdXRlciBJbmMuCisJCQkJMjExLCBXZW4gSHdhIDJuZCBSZC4sS3VlaSBTaGFuLCAKKwkJCQlUYW8gWXVhbiAgMzMzNzcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzYwLUYxLTNEICAgKGhleCkJCUpBQkxPQ09NIHMuci5vLgorNjBGMTNEICAgICAoYmFzZSAxNikJCUpBQkxPQ09NIHMuci5vLgorCQkJCVYgTml2YWNoIDEyCisJCQkJSmFibG9uZWMgbmFkIE5pc291ICA0NjYgMDEKKwkJCQlDWkVDSCBSRVBVQkxJQworCis2MC1GNS05QyAgIChoZXgpCQlDUlUtRGF0YXBvcnQKKzYwRjU5QyAgICAgKGJhc2UgMTYpCQlDUlUtRGF0YXBvcnQKKwkJCQkxMDAwIFNFIFRlY2ggQ2VudGVyIERyaXZlCisJCQkJU3VpdGUgMTYwCisJCQkJVmFuY291dmVyIFdBIDk4NjgzCisJCQkJVU5JVEVEIFNUQVRFUworCis2MC1GNi03MyAgIChoZXgpCQlURVJVTU8gQ09SUE9SQVRJT04KKzYwRjY3MyAgICAgKGJhc2UgMTYpCQlURVJVTU8gQ09SUE9SQVRJT04KKwkJCQkxNTAwLElub2t1Y2hpLE5ha2FpLW1hY2hpCisJCQkJQXNoaWdhcmFrYW1pLWd1biBLYW5hZ2F3YSAyNTktMDE1MQorCQkJCUpBUEFOCisKKzYwLUZCLTQyICAgKGhleCkJCUFwcGxlLCBJbmMKKzYwRkI0MiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis2NC0wMC1GMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis2NDAwRjEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis2NC0wOS00QyAgIChoZXgpCQlCZWlqaW5nIFN1cGVyYmVlIFdpcmVsZXNzIFRlY2hub2xvZ3kgQ28uLEx0ZAorNjQwOTRDICAgICAoYmFzZSAxNikJCUJlaWppbmcgU3VwZXJiZWUgV2lyZWxlc3MgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJQjcsU2NpZW5jZS1UZWNoIEZvcnR1bmUgQ2VudGVyLAorCQkJCU5vLjgsWHVlcWluZ1JvYWQsSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDE5MgorCQkJCUNISU5BCisKKzY0LTBGLTI4ICAgKGhleCkJCTJ3aXJlCis2NDBGMjggICAgIChiYXNlIDE2KQkJMndpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlICBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtMTAtODQgICAoaGV4KQkJSEVYSVVNIFRlY2huaWNhbCBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKzY0MTA4NCAgICAgKGJhc2UgMTYpCQlIRVhJVU0gVGVjaG5pY2FsIERldmVsb3BtZW50IENvLiwgTHRkLgorCQkJCVZhY2kgdXQgNTFiCisJCQkJQlVEQVBFU1QgIEgtMTEzNAorCQkJCUhVTkdBUlkKKworNjQtMTYtOEQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNjQxNjhEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtMTYtRjAgICAoaGV4KQkJU2hlaHpoZW4gSHVhd2VpIENvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorNjQxNkYwICAgICAoYmFzZSAxNikJCVNoZWh6aGVuIEh1YXdlaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlCdWlsZGluZyAyLCBab25lIEIsSHVhd2VpIEluZHVzdHJpYWwgUGFyayxCYW50aWFuLCBMb25nZ2FuZyBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCis2NC0xQS0yMiAgIChoZXgpCQlIZWxpb3NwZWN0cmEvV29vZGhpbGwgSW52ZXN0bWVudHMKKzY0MUEyMiAgICAgKGJhc2UgMTYpCQlIZWxpb3NwZWN0cmEvV29vZGhpbGwgSW52ZXN0bWVudHMKKwkJCQlBcm1iaT9vZWdhdmk/b2VnZW4gMworCQkJCUJvcmk/b2VzIE5vbmUgNTA2MzAKKwkJCQlTV0VERU4KKworNjQtMUUtODEgICAoaGV4KQkJRG93c2xha2UgTWljcm9zeXN0ZW1zCis2NDFFODEgICAgIChiYXNlIDE2KQkJRG93c2xha2UgTWljcm9zeXN0ZW1zCisJCQkJMjEgSGlnaCBTdHJlZXQsIFN1aXRlIDMwNgorCQkJCU5vcnRoIEFuZG92ZXIgTUEgMDE4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTMxLTUwICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorNjQzMTUwICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCis2NC0zMS03RSAgIChoZXgpCQlEZXhpbiBDb3Jwb3JhdGlvbgorNjQzMTdFICAgICAoYmFzZSAxNikJCURleGluIENvcnBvcmF0aW9uCisJCQkJMTRGLTgsIE5vLiAyNTgsIExpYW4gQ2hlbmcgUmQuCisJCQkJQ2h1bmcgSG8gQ2l0eSwgVGFpcGVpIEhzaWVuICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzY0LTM0LTA5ICAgKGhleCkJCUJJVHdhdmUgUHRlIEx0ZAorNjQzNDA5ICAgICAoYmFzZSAxNikJCUJJVHdhdmUgUHRlIEx0ZAorCQkJCTIgU2VyYW5nb29uIE5vcnRoIEF2ZSA1CisJCQkJIzAzLTAxCisJCQkJNTU0OTExCisJCQkJU0lOR0FQT1JFCisKKzY0LTRCLUMzICAgKGhleCkJCVNoYW5naGFpIFdPQVNpUyBUZWxlY29tbXVuaWNhdGlvbnMgTHRkLiwgQ28uCis2NDRCQzMgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgV09BU2lTIFRlbGVjb21tdW5pY2F0aW9ucyBMdGQuLCBDby4KKwkJCQkxNUYsIFNvZnR3YXJlIEJ1aWxkaW5nLAorCQkJCTQ2MSBIb25nY2FvIFJvYWQsIFh1aHVpIERpc3RyaWN0CisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzY0LTRGLTc0ICAgKGhleCkJCUxFTlVTIENvLiwgTHRkLgorNjQ0Rjc0ICAgICAoYmFzZSAxNikJCUxFTlVTIENvLiwgTHRkLgorCQkJCTE4LTUgR3dhY2hlb24tRG9uZworCQkJCUd3YWNoZW9uIEd5ZW9uZ2dpLURvIDQyNy0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNjQtNjUtQzAgICAoaGV4KQkJTnV2b24sIEluYworNjQ2NUMwICAgICAoYmFzZSAxNikJCU51dm9uLCBJbmMKKwkJCQkzMTMwIEFscGluZSBSb2FkCisJCQkJU3VpdGUgMjg4LTQ2NQorCQkJCVBvcnRvbGEgVmFsbGV5IENhbGlmb3JuaWEgOTQwMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTY3LTA3ICAgKGhleCkJCUJlaWppbmcgT21uaWZpYyBUZWNobm9sb2d5LCBMdGQuCis2NDY3MDcgICAgIChiYXNlIDE2KQkJQmVpamluZyBPbW5pZmljIFRlY2hub2xvZ3ksIEx0ZC4KKwkJCQlSbS4gNDAyLCBCdWlsZGluZyAxLCBTaHVpIE11IFFpbmcgSHVhIENvbW11bml0eQorCQkJCVpob25nIEd1YW4gQ3VuIEJlaSBFciBKaWUsIEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAxOTAKKwkJCQlDSElOQQorCis2NC02OC0wQyAgIChoZXgpCQlDT01UUkVORAorNjQ2ODBDICAgICAoYmFzZSAxNikJCUNPTVRSRU5ECisJCQkJM0YtMSwxMCBMYW5lIDYwOSwgQ2h1bmcgSHNpbiBSb2FkLCBTZWN0aW9uIDUKKwkJCQlTYW4gQ2h1bmcgQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis2NC02OS1CQyAgIChoZXgpCQlIeXRlcmEgQ29tbXVuaWNhdGlvbnMgQ28gLixsdGQKKzY0NjlCQyAgICAgKGJhc2UgMTYpCQlIeXRlcmEgQ29tbXVuaWNhdGlvbnMgQ28gLixsdGQKKwkJCQlIWVQgVG93ZXIgLEhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrIE5vcnRoLE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzY0LTZFLTZDICAgKGhleCkJCVJhZGlvIERhdGFjb20gTExDCis2NDZFNkMgICAgIChiYXNlIDE2KQkJUmFkaW8gRGF0YWNvbSBMTEMKKwkJCQk5NjAxIE4gMzV0aCBTdAorCQkJCVBob2VuaXggQVogODUwMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTczLUUyICAgKGhleCkJCUFyYml0ZXIgU3lzdGVtcywgSW5jLgorNjQ3M0UyICAgICAoYmFzZSAxNikJCUFyYml0ZXIgU3lzdGVtcywgSW5jLgorCQkJCTEzMjQgVmVuZGVscyBDaXJjbGUKKwkJCQlTdWl0ZSAxMjEKKwkJCQlQYXNvIFJvYmxlcyBDYWxpZm9ybmlhIDkzNDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCis2NC03Qi1ENCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworNjQ3QkQ0ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis2NC03RC04MSAgIChoZXgpCQlZT0tPVEEgSU5EVVNUUklBTCBDTywuTFRECis2NDdEODEgICAgIChiYXNlIDE2KQkJWU9LT1RBIElORFVTVFJJQUwgQ08sLkxURAorCQkJCTUtNTUgTklTSElJV0FUQQorCQkJCTMtQ0hPTUUKKwkJCQlISUdBU0hJIE9TQUtBLUNJVFkgT1NBS0EgNTc4LTA5NDcKKwkJCQlKQVBBTgorCis2NC03Ri1EQSAgIChoZXgpCQlURUtURUxJQyBDb21tdW5pY2F0aW9ucyBJbmMuCis2NDdGREEgICAgIChiYXNlIDE2KQkJVEVLVEVMSUMgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTc2NTcgMTB0aCBTdHJlZXQgTkUKKwkJCQlDYWxnYXJ5IEFsYmVydGEgVDJFIDhYMgorCQkJCUNBTkFEQQorCis2NC04MC05OSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorNjQ4MDk5ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis2NC04MS0yNSAgIChoZXgpCQlBbHBoYXRyb24gTWFyaW5lIEJWCis2NDgxMjUgICAgIChiYXNlIDE2KQkJQWxwaGF0cm9uIE1hcmluZSBCVgorCQkJCVNjaGFhcmRpamsgMjMKKwkJCQlSb3R0ZXJkYW0gWnVpZC1Ib2xsYW5kIDMwNjNOSAorCQkJCU5FVEhFUkxBTkRTCisKKzY0LTg3LUQ3ICAgKGhleCkJCVBJUkVMTEkgQlJPQURCQU5EIFNPTFVUSU9OUyAKKzY0ODdENyAgICAgKGJhc2UgMTYpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMgCisJCQkJVklBTEUgU0FSQ0EgMjIyCisJCQkJTUlMQU5PICAyMDEyNiAKKwkJCQlJVEFMWQorCis2NC05OS01RCAgIChoZXgpCQlMR0UgCis2NDk5NUQgICAgIChiYXNlIDE2KQkJTEdFIAorCQkJCTYwLTM5ICwgS2FzYW4gLWRvbmcgLCBHdW1jaGVvbi1ndS4KKwkJCQlTZW91bCAgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNjQtOUItMjQgICAoaGV4KQkJViBUZWNobm9sb2d5IENvLiwgTHRkLgorNjQ5QjI0ICAgICAoYmFzZSAxNikJCVYgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlZQlAgRWFzdCBUb3dlciA1RiwKKwkJCQkxMzQgR29kby1jaG8sIEhvZ29nYXlhLWt1LAorCQkJCVlva29oYW1hIGNpdHkgS2FuYWdhd2EgMjQwLTAwMDUKKwkJCQlKQVBBTgorCis2NC05Qy04RSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworNjQ5QzhFICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis2NC1BMi0zMiAgIChoZXgpCQlPT08gU2FtbGlnaHQKKzY0QTIzMiAgICAgKGJhc2UgMTYpCQlPT08gU2FtbGlnaHQKKwkJCQk0NEEsIER1Ym5pbnNrYXlhIHN0ci4sIAorCQkJCU1vc2NvdyAgMTI3NTkxCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzY0LUE3LTY5ICAgKGhleCkJCUhUQyBDb3Jwb3JhdGlvbgorNjRBNzY5ICAgICAoYmFzZSAxNikJCUhUQyBDb3Jwb3JhdGlvbgorCQkJCU5vLiAyMywgWGluZ2h1YSBSZCwgCisJCQkJVGFveXVhbiBDb3VudHkgIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNjQtQTgtMzcgICAoaGV4KQkJSnVuaSBLb3JlYSBDby4sIEx0ZAorNjRBODM3ICAgICAoYmFzZSAxNikJCUp1bmkgS29yZWEgQ28uLCBMdGQKKwkJCQlFNjAzIEJ1bmRhbmcgVGVjaG5vLVBhcmsgMTUxCisJCQkJWWF0YXAsIEJ1bmRhbmcKKwkJCQlTZW9uZ25hbSBHeWVvbmdnaSA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzY0LUI2LTRBICAgKGhleCkJCVZpVk90ZWNoLCBJbmMuCis2NEI2NEEgICAgIChiYXNlIDE2KQkJVmlWT3RlY2gsIEluYy4KKwkJCQk0NTEgRWwgQ2FtaW5vIFJlYWwKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtQjktRTggICAoaGV4KQkJQXBwbGUsIEluYworNjRCOUU4ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LUJDLTExICAgKGhleCkJCUNvbWJpUSBBQgorNjRCQzExICAgICAoYmFzZSAxNikJCUNvbWJpUSBBQgorCQkJCVNjaWVuY2UgUGFyaworCQkJCUdqdXRlcmlnYXRhbiA5CisJCQkJSm9ua29waW5nICA1NTMgMTgKKwkJCQlTV0VERU4KKworNjQtQzYtQUYgICAoaGV4KQkJQVhFUlJBIE5ldHdvcmtzIEx0ZAorNjRDNkFGICAgICAoYmFzZSAxNikJCUFYRVJSQSBOZXR3b3JrcyBMdGQKKwkJCQkyNCAgUmFvdWwgV2FsbGVuYmVyZyBTdC4gLCAKKwkJCQlUZWwtQXZpdiAgIElTUkFFTCA2OTcxOQorCQkJCUlTUkFFTAorCis2NC1EMC0yRCAgIChoZXgpCQlEUkFZVEVLIEZSQU5DRQorNjREMDJEICAgICAoYmFzZSAxNikJCURSQVlURUsgRlJBTkNFCisJCQkJMTM3IFJVRSBERSBWRVJTQUlMTEVTCisJCQkJTEUgQ0hFU05BWSAgNzgxNTAKKwkJCQlGUkFOQ0UKKworNjQtRDEtQTMgICAoaGV4KQkJU2l0ZWNvbSBFdXJvcGUgQlYKKzY0RDFBMyAgICAgKGJhc2UgMTYpCQlTaXRlY29tIEV1cm9wZSBCVgorCQkJCUxpbmF0ZWJhYW4gMTAxCisJCQkJUm90dGVyZGFtIFp1aWQtSG9sbGFuZCAzMDQ1IEFICisJCQkJTkVUSEVSTEFORFMKKworNjQtRDItNDEgICAoaGV4KQkJS2VpdGggJiBLb2VwIEdtYkgKKzY0RDI0MSAgICAgKGJhc2UgMTYpCQlLZWl0aCAmIEtvZXAgR21iSAorCQkJCVVlbGxlbmRhaGxlciBTdHIuIDE5OQorCQkJCVd1cHBlcnRhbCBOUlcgNDIxMDkKKwkJCQlHRVJNQU5ZCisKKzY0LUQ0LURBICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorNjRENERBICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworNjQtRDktMTIgICAoaGV4KQkJU29saWRpY2EsIEluYy4KKzY0RDkxMiAgICAgKGJhc2UgMTYpCQlTb2xpZGljYSwgSW5jLgorCQkJCTU4NDAgSW50ZXJmYWNlIERyaXZlCisJCQkJU3VpdGUgMjAwCisJCQkJQW5uIEFyYm9yIE1pY2hpZ2FuIDQ4MTAzCisJCQkJVU5JVEVEIFNUQVRFUworCis2NC1EQi0xOCAgIChoZXgpCQlPcGVuUGF0dGVybgorNjREQjE4ICAgICAoYmFzZSAxNikJCU9wZW5QYXR0ZXJuCisJCQkJMTA5LzExMSBydWUgZGVzIENpP29ldGVzCisJCQkJTWFpc29ucyBMYWZmaXR0ZSBZdmVsaW5lcyA3ODYwMAorCQkJCUZSQU5DRQorCis2NC1EQy0wMSAgIChoZXgpCQlTdGF0aWMgU3lzdGVtcyBHcm91cCBQTEMKKzY0REMwMSAgICAgKGJhc2UgMTYpCQlTdGF0aWMgU3lzdGVtcyBHcm91cCBQTEMKKwkJCQlIZWF0aG1pbGwgUm9hZAorCQkJCVdvbWJvdXJuZQorCQkJCVdvbHZlcmhhbXB0b24gV2VzdCBNaWRsYW5kcyBXVjUgOEFOCisJCQkJVU5JVEVEIEtJTkdET00KKworNjQtREUtMUMgICAoaGV4KQkJS2luZ25ldGljIFB0ZSBMdGQKKzY0REUxQyAgICAgKGJhc2UgMTYpCQlLaW5nbmV0aWMgUHRlIEx0ZAorCQkJCTQ3IEtha2kgQnVraXQgUGxhY2UKKwkJCQkjMDItMDAgRXVub3MgVGVjaHBhcmsKKwkJCQk0MTYyMjUKKwkJCQlTSU5HQVBPUkUKKworNjQtRTgtRTYgICAoaGV4KQkJZ2xvYmFsIG1vaXN0dXJlIG1hbmFnZW1lbnQgc3lzdGVtCis2NEU4RTYgICAgIChiYXNlIDE2KQkJZ2xvYmFsIG1vaXN0dXJlIG1hbmFnZW1lbnQgc3lzdGVtCisJCQkJMTExMzIgYnJvYWQgcml2ZXIgcm9hZAorCQkJCXN1aXRlIGEKKwkJCQlpcm1vIHNjIDI5MDYzCisJCQkJVU5JVEVEIFNUQVRFUworCis2NC1FRC01NyAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorNjRFRDU3ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4uIFVTIDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCis2NC1GOS03MCAgIChoZXgpCQlLZW5hZGUgRWxlY3Ryb25pY3MgVGVjaG5vbG9neSBDby4sTFRELgorNjRGOTcwICAgICAoYmFzZSAxNikJCUtlbmFkZSBFbGVjdHJvbmljcyBUZWNobm9sb2d5IENvLixMVEQuCisJCQkJRi9HIHJvb20sMTEvRixIYW5nZHUgYnVpbGRpbmcsSHVhZnUgUmQsIEZ1dGlhbiBkaXN0cmljdCwKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDI4CisJCQkJQ0hJTkEKKworNjQtRjktODcgICAoaGV4KQkJQXZ2YXNpIEluYy4KKzY0Rjk4NyAgICAgKGJhc2UgMTYpCQlBdnZhc2kgSW5jLgorCQkJCTEwMyBSYW5kYWxsIERyLgorCQkJCVdhdGVybG9vIE9OIE4yViAxQzUKKwkJCQlDQU5BREEKKworNjQtRkMtOEMgICAoaGV4KQkJWm9uYXIgU3lzdGVtcworNjRGQzhDICAgICAoYmFzZSAxNikJCVpvbmFyIFN5c3RlbXMKKwkJCQkxODIwMCBDYXNjYWRlIEF2ZSBTb3V0aAorCQkJCVNlYXR0bGUgV0EgOTgxMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LTA1LUNBICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCis2ODA1Q0EgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzY4LTEyLTJEICAgKGhleCkJCVNwZWNpYWwgSW5zdHJ1bWVudCBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKzY4MTIyRCAgICAgKGJhc2UgMTYpCQlTcGVjaWFsIEluc3RydW1lbnQgRGV2ZWxvcG1lbnQgQ28uLCBMdGQuCisJCQkJNkYtMSwgTm8uIDEyMywgTGFuZSAyMzUKKwkJCQlCYW8gQ2hpYW8gUm9hZAorCQkJCUhzaW4gVGllbiBUYWlwZWkgSHNpZW4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis2OC0xRi1EOCAgIChoZXgpCQlBZHZhbmNlZCBUZWxlbWV0cnkKKzY4MUZEOCAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBUZWxlbWV0cnkKKwkJCQkxMDY3MCBUcmVlbmEgU3RyZWV0CisJCQkJU3VpdGUgMTA2CisJCQkJU2FuIERpZWdvIENBIDkyMTMxCisJCQkJVU5JVEVEIFNUQVRFUworCis2OC0yMy00QiAgIChoZXgpCQlOaWhvbiBEZW5neW8gS291c2FrdQorNjgyMzRCICAgICAoYmFzZSAxNikJCU5paG9uIERlbmd5byBLb3VzYWt1CisJCQkJc2hpbm1hY2hpIDIxLTEKKwkJCQltYXRvYmEKKwkJCQlrYXdhZ29lLXNoaSBzYWl0YW1hIDM1MC0xMTA3CisJCQkJSkFQQU4KKworNjgtNDMtNTIgICAoaGV4KQkJQmh1dSBMaW1pdGVkCis2ODQzNTIgICAgIChiYXNlIDE2KQkJQmh1dSBMaW1pdGVkCisJCQkJT2ZmaWNlIDEsIDQ2NSBNdCBFZGVuIFJvYWQKKwkJCQlNdCBFZGVuCisJCQkJQXVja2xhbmQgIDEwMjMKKwkJCQlORVcgWkVBTEFORAorCis2OC00Qi04OCAgIChoZXgpCQlHYWx0cm9uaWNzIFRlbGVtZXRyeSBJbmMuCis2ODRCODggICAgIChiYXNlIDE2KQkJR2FsdHJvbmljcyBUZWxlbWV0cnkgSW5jLgorCQkJCTMxIEx1cGkgQ3QKKwkJCQlTdWl0ZSAxNTAKKwkJCQlQYWxtIENvYXN0IEZsb3JpZGEgMzIxMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LTU0LUY1ICAgKGhleCkJCWVuTGlnaHRlZCBJbmMKKzY4NTRGNSAgICAgKGJhc2UgMTYpCQllbkxpZ2h0ZWQgSW5jCisJCQkJMTQ1MSBHcmFudCBSZAorCQkJCVN1aXRlIDIwMAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LTU5LTdGICAgKGhleCkJCUFsY2F0ZWwgTHVjZW50Cis2ODU5N0YgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBMdWNlbnQKKwkJCQlWaWEgVHJlbnRvLCAzMAorCQkJCVZpbWVyY2F0ZSBNQiAyMDA1OQorCQkJCUlUQUxZCisKKzY4LTVCLTM2ICAgKGhleCkJCVBPV0VSVEVDSCBJTkRVU1RSSUFMIENPLiwgTFRELgorNjg1QjM2ICAgICAoYmFzZSAxNikJCVBPV0VSVEVDSCBJTkRVU1RSSUFMIENPLiwgTFRELgorCQkJCTEwRiwgTm8uIDQwNywgQ2h1bmcgU2hhbiBSZC4sIFNlYyAyLAorCQkJCUNodW5nIEhvIFRhaXBlaSBDb3VudHkgMjM1NTgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzY4LTVELTQzICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorNjg1RDQzICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworNjgtNjMtNTkgICAoaGV4KQkJQWR2YW5jZWQgRGlnaXRhbCBCcm9hZGNhc3QgU0EKKzY4NjM1OSAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBEaWdpdGFsIEJyb2FkY2FzdCBTQQorCQkJCUF2ZW51ZSBkZSBUb3VybmF5IDcKKwkJCQlQcmVnbnktQ2hhbWJlc3kgIDEyOTIKKwkJCQlTV0lUWkVSTEFORAorCis2OC03OC00QyAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzY4Nzg0QyAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlDQVJSRVRFUkEgQkFTRSBBRVJFQSAjIDU4NTAKKwkJCQlaYXBvcGFuIEphbGlzY28gNDQxMzAKKwkJCQlNRVhJQ08KKworNjgtNzktMjQgICAoaGV4KQkJRUxTLUdtYkggJiBDby4gS0cKKzY4NzkyNCAgICAgKGJhc2UgMTYpCQlFTFMtR21iSCAmIENvLiBLRworCQkJCURhbW1zdHJhc3NlIDIxCisJCQkJV2VydGhlciBOUlcgMzM4MjQKKwkJCQlHRVJNQU5ZCisKKzY4LTc5LUVEICAgKGhleCkJCVNIQVJQIENvcnBvcmF0aW9uCis2ODc5RUQgICAgIChiYXNlIDE2KQkJU0hBUlAgQ29ycG9yYXRpb24KKwkJCQkyMi0yMixOYWdhaWtlLUNobworCQkJCUFiZW5vLUt1CisJCQkJT3Nha2EtQ2l0eSBPc2FrYS1QcmVmZWN0dXJlIDU0NS04NTIyCisJCQkJSkFQQU4KKworNjgtN0YtNzQgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCis2ODdGNzQgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCis2OC04NC03MCAgIChoZXgpCQllU1N5cyBDby4sTHRkCis2ODg0NzAgICAgIChiYXNlIDE2KQkJZVNTeXMgQ28uLEx0ZAorCQkJCURhZXJ1bmcgUG9zdCBUb3dlciA1IDE1RiwgNjAtMworCQkJCUdhc2FuLWRvbmcKKwkJCQlTZW91bCBHZXVtY2hlb24tZ3UgMTUzLTcwMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2OC04NS00MCAgIChoZXgpCQlJR0kgTW9iaWxlLCBJbmMuCis2ODg1NDAgICAgIChiYXNlIDE2KQkJSUdJIE1vYmlsZSwgSW5jLgorCQkJCTRGIEt5b25nbmFtIEJsZGcuLAorCQkJCTgzMC00OCBZb2tzYW0tZG9uZywgS2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzY4LTg3LTZCICAgKGhleCkJCUlOUSBNb2JpbGUgTGltaXRlZAorNjg4NzZCICAgICAoYmFzZSAxNikJCUlOUSBNb2JpbGUgTGltaXRlZAorCQkJCTYgSGVzdGVyIFJvYWQKKwkJCQlCYXR0ZXJzZWEgTG9uZG9uIFNXMTEgNEFOCisJCQkJVU5JVEVEIEtJTkdET00KKworNjgtOTItMzQgICAoaGV4KQkJUnVja3VzIFdpcmVsZXNzCis2ODkyMzQgICAgIChiYXNlIDE2KQkJUnVja3VzIFdpcmVsZXNzCisJCQkJODgwIFdlc3QgTWF1ZGUgQXZlLgorCQkJCVN1aXRlIDEwMQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworNjgtQTEtQjcgICAoaGV4KQkJSG9uZ2hhbyBNaW5nY2h1YW4gVGVjaG5vbG9neSAoQmVpamluZykgQ08uLEx0ZC4KKzY4QTFCNyAgICAgKGJhc2UgMTYpCQlIb25naGFvIE1pbmdjaHVhbiBUZWNobm9sb2d5IChCZWlqaW5nKSBDTy4sTHRkLgorCQkJCUZsb29yIDgsVG93ZXIgQSwgV2FubGl1IFlpY2hlbmcgQnVpbGRpbmcKKwkJCQlOby4xMSwgQ2hhbmdjaHVuIFFpYW8gUm9hZCwgSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4OQorCQkJCUNISU5BCisKKzY4LUEzLUM0ICAgKGhleCkJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCis2OEEzQzQgICAgIChiYXNlIDE2KQkJTGl0ZW9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Riw5MCxDaGllbiAxIFJvYWQsQ2h1bmdIbywKKwkJCQlUYWlQZWkgIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis2OC1BQS1EMiAgIChoZXgpCQlEQVRFQ1MgTFRELiwKKzY4QUFEMiAgICAgKGJhc2UgMTYpCQlEQVRFQ1MgTFRELiwKKwkJCQlCVUwuIFRTQVJJR1JBRFNLTyBTSE9TU0UgMTE1QQorCQkJCVNPRklBICAxNzg0CisJCQkJQlVMR0FSSUEKKworNjgtQjUtOTkgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCis2OEI1OTkgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LUJELUFCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzY4QkRBQiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LUNBLTAwICAgKGhleCkJCU9jdG9wdXMgU3lzdGVtcyBMaW1pdGVkCis2OENBMDAgICAgIChiYXNlIDE2KQkJT2N0b3B1cyBTeXN0ZW1zIExpbWl0ZWQKKwkJCQkzNi9GLCAxNDggRWxlY3RyaWMgUm9hZAorCQkJCU5vcnRoIFBvaW50CisJCQkJSE9ORyBLT05HCisKKzY4LUNDLTlDICAgKGhleCkJCU1pbmUgU2l0ZSBUZWNobm9sb2dpZXMKKzY4Q0M5QyAgICAgKGJhc2UgMTYpCQlNaW5lIFNpdGUgVGVjaG5vbG9naWVzCisJCQkJMjUtMjcgV2hpdGluZyBTdHJlZXQKKwkJCQlBcnRhcm1vbiBOU1cgMjA2NAorCQkJCUFVU1RSQUxJQQorCis2OC1EQi05NiAgIChoZXgpCQlPUFdJTEwgVGVjaG5vbG9naWVzIENPIC4sTFRECis2OERCOTYgICAgIChiYXNlIDE2KQkJT1BXSUxMIFRlY2hub2xvZ2llcyBDTyAuLExURAorCQkJCVJvb20gNDE1LERpZ2l0YWwgTWVkaWEgQnVpbGRpbmcsTk8uNyBTaGFuZ2RpIEluZm9ybWF0aW9uIFJvYWQsSGFpRGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCis2OC1EQy1FOCAgIChoZXgpCQlQYWNrZXRTdG9ybSBDb21tdW5pY2F0aW9ucworNjhEQ0U4ICAgICAoYmFzZSAxNikJCVBhY2tldFN0b3JtIENvbW11bmljYXRpb25zCisJCQkJMjAgTWVyaWRpYW4gUmQKKwkJCQlFYXRvbnRvd24gTkogMDc3MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LUU0LTFGICAgKGhleCkJCVVuZ2xhdWJlIElkZW50ZWNoIEdtYkgKKzY4RTQxRiAgICAgKGJhc2UgMTYpCQlVbmdsYXViZSBJZGVudGVjaCBHbWJICisJCQkJQW4gZGVyIE1vb3NhY2ggM2EKKwkJCQlNYXNzZW5oYXVzZW4gQmF5ZXJuIDg1Mzc2CisJCQkJR0VSTUFOWQorCis2OC1FQi1BRSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzY4RUJBRSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNjgtRUItQzUgICAoaGV4KQkJQW5nc3RyZW0gVGVsZWNvbQorNjhFQkM1ICAgICAoYmFzZSAxNikJCUFuZ3N0cmVtIFRlbGVjb20KKwkJCQlZdXpobmF5YSBwcm9tem9uYSwgcGFzc2FnZSA0ODA2LCA0LCBidWlsZCAzIAorCQkJCVplbGVub2dyYWQgTW9zY293IDEyNDQ2MAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCis2OC1FRi1CRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis2OEVGQkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis2OC1GOC05NSAgIChoZXgpCQlSZWRmbG93IExpbWl0ZWQKKzY4Rjg5NSAgICAgKGJhc2UgMTYpCQlSZWRmbG93IExpbWl0ZWQKKwkJCQkxLzI3IENvdW5paGFuIFJkIAorCQkJCVNldmVudGVlbiBNaWxlIFJvY2tzCisJCQkJQnJpc2JhbmUgUXVlZW5zbGFuZCA0MDczCisJCQkJQVVTVFJBTElBCisKKzZDLTA0LTYwICAgKGhleCkJCVJCSCBBY2Nlc3MgVGVjaG5vbG9naWVzIEluYy4KKzZDMDQ2MCAgICAgKGJhc2UgMTYpCQlSQkggQWNjZXNzIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMiBBdXRvbWF0aWMgUm9hZAorCQkJCVVuaXQgMTA4CisJCQkJQnJhbXB0b24gT250YXJpbyBMNlMgNks4CisJCQkJQ0FOQURBCisKKzZDLTBFLTBEICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCis2QzBFMEQgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworNkMtMEYtNkEgICAoaGV4KQkJSkRDIFRlY2ggQ28uLCBMdGQuCis2QzBGNkEgICAgIChiYXNlIDE2KQkJSkRDIFRlY2ggQ28uLCBMdGQuCisJCQkJMzcwLTEyIERhZW15dW5nLXJpIERhZWdvdC1teXVuCisJCQkJS2ltcG8tc2kgS3l1bmdnaS1kbyA0MTAtODUzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzZDLTE4LTExICAgKGhleCkJCURlY2F0dXIgRWxlY3Ryb25pY3MKKzZDMTgxMSAgICAgKGJhc2UgMTYpCQlEZWNhdHVyIEVsZWN0cm9uaWNzCisJCQkJNzE1IEJyaWdodCBTdHJlZXQKKwkJCQlEZWNhdHVyIElMIDYyNTIyCisJCQkJVU5JVEVEIFNUQVRFUworCis2Qy0yMi1BQiAgIChoZXgpCQlBaW5zd29ydGggR2FtZSBUZWNobm9sb2d5Cis2QzIyQUIgICAgIChiYXNlIDE2KQkJQWluc3dvcnRoIEdhbWUgVGVjaG5vbG9neQorCQkJCTEwIEhvbGtlciBTdHJlZXQgCisJCQkJTmV3aW5ndG9uIE5ldyBTb3V0aCBXYWxlcyAyMTI3CisJCQkJQVVTVFJBTElBCisKKzZDLTIzLUI5ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCis2QzIzQjkgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworNkMtMkUtMzMgICAoaGV4KQkJQWNjZWxpbmsgVGVjaG5vbG9naWVzIENvLixMdGQuCis2QzJFMzMgICAgIChiYXNlIDE2KQkJQWNjZWxpbmsgVGVjaG5vbG9naWVzIENvLixMdGQuCisJCQkJODggWW91a2V5dWFuIFJvYWQsCisJCQkJV3VoYW4gSHViZWkgNDMwMDc0CisJCQkJQ0hJTkEKKworNkMtMkUtODUgICAoaGV4KQkJU0FHRU1DT00KKzZDMkU4NSAgICAgKGJhc2UgMTYpCQlTQUdFTUNPTQorCQkJCTI1MCByb3V0ZSBkZSBsJ0VtcGVyZXVyCisJCQkJUlVFSUwgTUFMTUFJU09OICA5Mjg0OAorCQkJCUZSQU5DRQorCis2Qy0zMi1ERSAgIChoZXgpCQlJbmRpZW9uIFRlY2hub2xvZ2llcyBQdnQuIEx0ZC4KKzZDMzJERSAgICAgKGJhc2UgMTYpCQlJbmRpZW9uIFRlY2hub2xvZ2llcyBQdnQuIEx0ZC4KKwkJCQk2MDEsIEFscGhhIDIsIEdpZ2FzcGFjZSBJVCBQYXJrCisJCQkJVmltYW4gTmFnYXIKKwkJCQlQdW5lICBNYWhhcmFzdHJhIDQxMTAxNAorCQkJCUlORElBCisKKzZDLTMzLUE5ICAgKGhleCkJCU1hZ2ljamFjayBMUAorNkMzM0E5ICAgICAoYmFzZSAxNikJCU1hZ2ljamFjayBMUAorCQkJCTU3MDAgR2VvcmdpYSBBdmVudWUKKwkJCQlXZXN0IFBhbG0gQmVhY2ggRkwgMzM0MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLTM5LTFEICAgKGhleCkJCUJlaWppbmcgWmhvbmdIdWFIdW4gTmV0d29yayBJbmZvcm1hdGlvbiBjZW50ZXIKKzZDMzkxRCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFpob25nSHVhSHVuIE5ldHdvcmsgSW5mb3JtYXRpb24gY2VudGVyCisJCQkJNkYgQmVpQW8gTWFuc2lvbixIdWlYaW4gRWFzdCBTdHJlZXQgQTIsCisJCQkJQ2hhb3lhbmcgRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDI5CisJCQkJQ0hJTkEKKworNkMtM0UtOUMgICAoaGV4KQkJS0UgS25lc3RlbCBFbGVrdHJvbmlrIEdtYkgKKzZDM0U5QyAgICAgKGJhc2UgMTYpCQlLRSBLbmVzdGVsIEVsZWt0cm9uaWsgR21iSAorCQkJCU9zdGVyd2FsZGVyIFN0ci4gMTIKKwkJCQlIb3BmZXJiYWNoIEJhdmFyaWEgODc0OTYKKwkJCQlHRVJNQU5ZCisKKzZDLTUwLTREICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzZDNTA0RCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLTVDLURFICAgKGhleCkJCVN1blJlcG9ydHMsIEluYy4KKzZDNUNERSAgICAgKGJhc2UgMTYpCQlTdW5SZXBvcnRzLCBJbmMuCisJCQkJMTQwNiBDZWRhcndvb2QgRHIuCisJCQkJU2FuIE1hdGVvIENBIDk0NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCis2Qy01RC02MyAgIChoZXgpCQlTaGVuWmhlbiBSYXBvbyBUZWNobm9sb2d5IENvLiwgTHRkLgorNkM1RDYzICAgICAoYmFzZSAxNikJCVNoZW5aaGVuIFJhcG9vIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJQmxvY2sgQTEsQjEsQjIsMXN0IHNlY29uZCBzdGFnZSwgMXN0IEluZHVzdHJpYWwgUGFyaywgM3JkIEluZHVzdHJpYWwgWm9uZSAsRmVuZ2h1YW5nIEZ1eW9uZywgQmFvQW4gCisJCQkJU2hlblpoZW4gIDUxODEwMworCQkJCUNISU5BCisKKzZDLTVFLTdBICAgKGhleCkJCVViaXF1aXRvdXMgSW50ZXJuZXQgVGVsZWNvbSBDby4sIEx0ZAorNkM1RTdBICAgICAoYmFzZSAxNikJCVViaXF1aXRvdXMgSW50ZXJuZXQgVGVsZWNvbSBDby4sIEx0ZAorCQkJCSM1MTIsIDV0aCBGbG9vciwgS29sb24gRGlnaXRhbCBWYWxsZXksR3VybyAzKHNhbSktZG9uZywgR3Vyby1ndQorCQkJCVNlb3VsICAxNTItNzc3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzZDLTYyLTZEICAgKGhleCkJCU1pY3JvLVN0YXIgSU5UJ0wgQ08uLCBMVEQKKzZDNjI2RCAgICAgKGJhc2UgMTYpCQlNaWNyby1TdGFyIElOVCdMIENPLiwgTFRECisJCQkJTm8uNjksIExpZGUgU3QuLCBKaG9uZ2hlIENpdHkKKwkJCQlUYWlwZWkgQ29udXR5ICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzZDLTZGLTE4ICAgKGhleCkJCVN0ZXJlb3RheGlzLCBJbmMuCis2QzZGMTggICAgIChiYXNlIDE2KQkJU3RlcmVvdGF4aXMsIEluYy4KKwkJCQk0MzIwIEZvcmVzdCBQYXJrIEF2ZQorCQkJCVN1aXRlIDEwMAorCQkJCVN0LiBMb3VpcyBNTyA2MzEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworNkMtNzAtMzkgICAoaGV4KQkJTm92YXIgR21iSCAKKzZDNzAzOSAgICAgKGJhc2UgMTYpCQlOb3ZhciBHbWJIIAorCQkJCUpvaGFubmVzLU1hdXRoZS1TdHIuIDE0CisJCQkJQWxic3RhZHQgQmFkZW4tV3VydHRlbWJlcmcgIDcyNDU4CisJCQkJR0VSTUFOWQorCis2Qy04MS1GRSAgIChoZXgpCQlNaXRzdWJhIENvcnBvcmF0aW9uCis2QzgxRkUgICAgIChiYXNlIDE2KQkJTWl0c3ViYSBDb3Jwb3JhdGlvbgorCQkJCTEtMjY4MQorCQkJCUhpcm9zYXdhLWNobworCQkJCUtpcnl1IEd1bm1hIDM3Ni04NTU1CisJCQkJSkFQQU4KKworNkMtOEMtREIgICAoaGV4KQkJT3R1cyBUZWNobm9sb2dpZXMgTHRkCis2QzhDREIgICAgIChiYXNlIDE2KQkJT3R1cyBUZWNobm9sb2dpZXMgTHRkCisJCQkJMjYgQnJhaWQgUm9hZAorCQkJCUVkaW5idXJnaCBNb3JuaW5nc2lkZSBFSDEwIDZBRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzZDLThELTY1ICAgKGhleCkJCVdpcmVsZXNzIEdsdWUgTmV0d29ya3MsIEluYy4KKzZDOEQ2NSAgICAgKGJhc2UgMTYpCQlXaXJlbGVzcyBHbHVlIE5ldHdvcmtzLCBJbmMuCisJCQkJMTYwMSBOLiBNYWluIFN0cmVldCwgU3VpdGUgMjAyCisJCQkJV2FsbnV0IENyZWVrIENBIDk0NTk2CisJCQkJVU5JVEVEIFNUQVRFUworCis2Qy05Mi1CRiAgIChoZXgpCQlJbnNwdXIgRWxlY3Ryb25pYyBJbmZvcm1hdGlvbiBJbmR1c3RyeSBDby4sTHRkLgorNkM5MkJGICAgICAoYmFzZSAxNikJCUluc3B1ciBFbGVjdHJvbmljIEluZm9ybWF0aW9uIEluZHVzdHJ5IENvLixMdGQuCisJCQkJTm8gMjI0IFNoYW5kYSBSb2FkCisJCQkJSmluYW4gU2hhbmRvbmcgMjUwMDEzCisJCQkJQ0hJTkEKKworNkMtOUItMDIgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzZDOUIwMiAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1IE91IDkwNTkwCisJCQkJRklOTEFORAorCis2Qy05Qy1FOSAgIChoZXgpCQlOaW1ibGUgU3RvcmFnZQorNkM5Q0U5ICAgICAoYmFzZSAxNikJCU5pbWJsZSBTdG9yYWdlCisJCQkJMjY0NSBaYW5rZXIgUm9hZAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis2Qy1BOS0wNiAgIChoZXgpCQlUZWxlZmllbGQgTHRkCis2Q0E5MDYgICAgIChiYXNlIDE2KQkJVGVsZWZpZWxkIEx0ZAorCQkJCUZsYXQgRCwyL0YuLCBWYWxpYW50IEluZHVzdHJpYWwgQ2VudHJlLDItMTIgQXUgUHVpIFdhbiBTdHJlZXQsIAorCQkJCUZvIFRhbiwgTi5ULgorCQkJCUhvbmdrb25nICA4NTIKKwkJCQlDSElOQQorCis2Qy1BQi00RCAgIChoZXgpCQlEaWdpdGFsIFBheW1lbnQgVGVjaG5vbG9naWVzCis2Q0FCNEQgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBQYXltZW50IFRlY2hub2xvZ2llcworCQkJCTQxMDUgR3JhbmR2aWV3IEh3eQorCQkJCUJ1cm5hYnkgQkMgVjVDIDZCNAorCQkJCUNBTkFEQQorCis2Qy1BQy02MCAgIChoZXgpCQlWZW5ldGV4IENvcnAKKzZDQUM2MCAgICAgKGJhc2UgMTYpCQlWZW5ldGV4IENvcnAKKwkJCQk4LTMtOSxTaGluLW1hY2hpCisJCQkJT21lLXNoaSwgVG9reW8gMTk4LTAwMjQKKwkJCQlKQVBBTgorCis2Qy1BRC0zRiAgIChoZXgpCQlIdWJiZWxsIEJ1aWxkaW5nIEF1dG9tYXRpb24sIEluYy4KKzZDQUQzRiAgICAgKGJhc2UgMTYpCQlIdWJiZWxsIEJ1aWxkaW5nIEF1dG9tYXRpb24sIEluYy4KKwkJCQk5NjAxIERlc3NhdSBSZAorCQkJCUJsZGcgMSBTdWl0ZSAxMDAKKwkJCQlBdXN0aW4gVGV4YXMgNzg3NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLUJFLUU5ICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50LUlQRAorNkNCRUU5ICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50LUlQRAorCQkJCTc3NyBNaWRkbGVmaWVsZCBSZC4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCis2Qy1ENi04QSAgIChoZXgpCQlMRyBFbGVjdHJvbmljcyBJbmMKKzZDRDY4QSAgICAgKGJhc2UgMTYpCQlMRyBFbGVjdHJvbmljcyBJbmMKKwkJCQk2MC0zOSxHYXNhbi1kb25nLEd1bWNoZW9uLWd1CisJCQkJU2VvdWwgIDE1My0wMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNkMtREMtNkEgICAoaGV4KQkJUHJvbWV0aGVhbiBMaW1pdGVkCis2Q0RDNkEgICAgIChiYXNlIDE2KQkJUHJvbWV0aGVhbiBMaW1pdGVkCisJCQkJQWN0aXZsYWIKKwkJCQlQaGlsaXBzIFJvYWQKKwkJCQlCbGFja2J1cm4gTGFuY2FzaGlyZSBCQjEgNVNOCisJCQkJVU5JVEVEIEtJTkdET00KKworNkMtRTAtQjAgICAoaGV4KQkJU09VTkQ0Cis2Q0UwQjAgICAgIChiYXNlIDE2KQkJU09VTkQ0CisJCQkJMTEgcXVhaSBKb3NlcGggR2lsbGV0CisJCQkJTFlPTiAgNjkwMDQKKwkJCQlGUkFOQ0UKKworNkMtRjAtNDkgICAoaGV4KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKzZDRjA0OSAgICAgKGJhc2UgMTYpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCU5vLjIxNSxOYW4tUGluZyBSb2FkLAorCQkJCVBpbi1KZW4gVGFveXVhbiAzMjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzZDLUZELUI5ICAgKGhleCkJCVByb3dhcmUgVGVjaG5vbG9naWVzIENvIEx0ZC4KKzZDRkRCOSAgICAgKGJhc2UgMTYpCQlQcm93YXJlIFRlY2hub2xvZ2llcyBDbyBMdGQuCisJCQkJMm5kIEYxIEVhc3QgV2luZyxTb3V0aCBTZWN0aW9uLEZhY3RvcnkgQnVpbGRpbmcgMjQsU2NpZW5jZSZUZWNobm9sb2d5IFBhcmsKKwkJCQlTaGVubmFuIFJkLE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworNkMtRkYtQkUgICAoaGV4KQkJTVBCIENvbW11bmljYXRpb25zIEluYy4KKzZDRkZCRSAgICAgKGJhc2UgMTYpCQlNUEIgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTE0NyBIeW11cyBCbHZkCisJCQkJUG9pbnRlLUNsYWlyZSBRdWViZWMgSDlSIDFFOQorCQkJCUNBTkFEQQorCis3MC0wMi01OCAgIChoZXgpCQkwMURCLU1FVFJBVklCCis3MDAyNTggICAgIChiYXNlIDE2KQkJMDFEQi1NRVRSQVZJQgorCQkJCTIwMCBDSEVNSU4gREVTIE9STUVBVVgKKwkJCQlMSU1PTkVTVCBDRURFWCBSSE9ORSA2OTU3OAorCQkJCUZSQU5DRQorCis3MC0xNC0wNCAgIChoZXgpCQlMaW1pdGVkIExpYWJpbGl0eSBDb21wYW55ICJSZXNlYXJjaCBDZW50ZXIgIkJyZXNsZXIiCis3MDE0MDQgICAgIChiYXNlIDE2KQkJTGltaXRlZCBMaWFiaWxpdHkgQ29tcGFueSAiUmVzZWFyY2ggQ2VudGVyICJCcmVzbGVyIgorCQkJCUkuWWFrb3ZsZXZhIFN0LiwgMQorCQkJCUNoZWJva3NhcnkgQ2h1dmFzaCBSZXB1YmxpYyAgNDI4MDAzCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzcwLTFBLTA0ICAgKGhleCkJCUxpdGVvbiBUZWNoIENvcnAuCis3MDFBMDQgICAgIChiYXNlIDE2KQkJTGl0ZW9uIFRlY2ggQ29ycC4KKwkJCQk0RiA5MCBDaGllbiAxIFJkLkNodW5nSG8KKwkJCQlUYWlwZWkgIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3MC0xQS1FRCAgIChoZXgpCQlBRFZBUyBDTy4sIExURC4KKzcwMUFFRCAgICAgKGJhc2UgMTYpCQlBRFZBUyBDTy4sIExURC4KKwkJCQkzLTgtOCBTaGluLXlva29oYW1hLCBLb2hva3Uta3UKKwkJCQlOaXNzb3UgMTZCbGRnLiA2RgorCQkJCVlva29oYW1hLXNoaSBLYW5hZ2F3YS1rZW4gMjIyLTAwMzMKKwkJCQlKQVBBTgorCis3MC0yQi0xRCAgIChoZXgpCQlFLURvbXVzIEludGVybmF0aW9uYWwgTGltaXRlZAorNzAyQjFEICAgICAoYmFzZSAxNikJCUUtRG9tdXMgSW50ZXJuYXRpb25hbCBMaW1pdGVkCisJCQkJMXN0IEZsb29yCisJCQkJNSBCb3VybGV0IENsb3NlCisJCQkJTG9uZG9uICBXMVcgN0JMCisJCQkJVU5JVEVEIEtJTkdET00KKworNzAtMkYtOTcgICAoaGV4KQkJQWF2YSBNb2JpbGUgT3kKKzcwMkY5NyAgICAgKGJhc2UgMTYpCQlBYXZhIE1vYmlsZSBPeQorCQkJCU5haGthdGVodGFhbmthdHUgMgorCQkJCU91bHUgIDkwMTAwCisJCQkJRklOTEFORAorCis3MC0zMi1ENSAgIChoZXgpCQlBdGhlbmEgV2lyZWxlc3MgQ29tbXVuaWNhdGlvbnMgSW5jCis3MDMyRDUgICAgIChiYXNlIDE2KQkJQXRoZW5hIFdpcmVsZXNzIENvbW11bmljYXRpb25zIEluYworCQkJCTEyNDI1IFcgQmVsbCBSZAorCQkJCVN1aXRlIDExMAorCQkJCVN1cnByaXNlIEFaIDg1Mzc4CisJCQkJVU5JVEVEIFNUQVRFUworCis3MC0zQS1EOCAgIChoZXgpCQlTaGVuemhlbiBBZm91bmRyeSBFbGVjdHJvbmljIENvLiwgTHRkCis3MDNBRDggICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQWZvdW5kcnkgRWxlY3Ryb25pYyBDby4sIEx0ZAorCQkJCTIwMSwgQSBCdWlsZGluZywgQm9sZSBJbmR1c3RyaWFsIFpvbmUsIEJhbnRpYW4sIExvbmdnYW5nIERpc3RyaWN0CisJCQkJTm8jIDkwNiwgMiBCdWlsZGluZywgWGluY2hlbmcgUGxhemEsIEZ1aHVhbiBSRC0zLCBGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiAgR3Vhbmdkb25nIDUxODEyOQorCQkJCUNISU5BCisKKzcwLTNDLTM5ICAgKGhleCkJCVNFQVdJTkcgS2Z0Cis3MDNDMzkgICAgIChiYXNlIDE2KQkJU0VBV0lORyBLZnQKKwkJCQlCdWRhaSB1dCAxMzkuCisJCQkJU3pla2VzZmVoZXJ2YXIgRmVqZXIgODAwMAorCQkJCUhVTkdBUlkKKworNzAtNEEtQUUgICAoaGV4KQkJWHN0cmVhbSBGbG93IChQdHkpIEx0ZAorNzA0QUFFICAgICAoYmFzZSAxNikJCVhzdHJlYW0gRmxvdyAoUHR5KSBMdGQKKwkJCQlSb29tIDEyMywgQnVpbGRpbmcgMTYsIENTSVIgY2FtcHVzCisJCQkJTWVpcmluZyBOYXVkZSByb2FkCisJCQkJUHJldG9yaWEgR2F1dGVuZyAwMTg0CisJCQkJU09VVEggQUZSSUNBCisKKzcwLTU4LTEyICAgKGhleCkJCVBhbmFzb25pYyBBVkMgTmV0d29ya3MgQ29tcGFueQorNzA1ODEyICAgICAoYmFzZSAxNikJCVBhbmFzb25pYyBBVkMgTmV0d29ya3MgQ29tcGFueQorCQkJCTEtMTUgTWF0c3VvLWNobworCQkJCUthZG9tYSBPc2FrYSA1NzEtODUwNAorCQkJCUpBUEFOCisKKzcwLTVBLUI2ICAgKGhleCkJCUNPTVBBTCBJTkZPUk1BVElPTiAoS1VOU0hBTikgQ08uLCBMVEQuIAorNzA1QUI2ICAgICAoYmFzZSAxNikJCUNPTVBBTCBJTkZPUk1BVElPTiAoS1VOU0hBTikgQ08uLCBMVEQuIAorCQkJCU5PLiAyNSwgVEhFIDNSRCBTdHJlZXQgS1VOU0hBTiBFWFBPUlQgUFJPQ0VTU0lORyBaT05FIAorCQkJCUtVTlNIQU4gU1VaSE9VIDIxNTMwMCAKKwkJCQlDSElOQQorCis3MC01Qy1BRCAgIChoZXgpCQlLb25hbWkgR2FtaW5nIEluYworNzA1Q0FEICAgICAoYmFzZSAxNikJCUtvbmFtaSBHYW1pbmcgSW5jCisJCQkJNTg1IFRyYWRlIENlbnRlciBEcml2ZQorCQkJCUxhcyBWZWdhcyBOZXZhZGEgODkxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLTVFLUFBICAgKGhleCkJCUFjdGlvbiBUYXJnZXQsIEluYy4KKzcwNUVBQSAgICAgKGJhc2UgMTYpCQlBY3Rpb24gVGFyZ2V0LCBJbmMuCisJCQkJUE8gQm94IDYzNgorCQkJCVByb3ZvIFVUIDg0NjAzCisJCQkJVU5JVEVEIFNUQVRFUworCis3MC02NC0xNyAgIChoZXgpCQlPUkJJUyBURUNOT0xPR0lBIEVMRUNUUklDQSBTLkEuCis3MDY0MTcgICAgIChiYXNlIDE2KQkJT1JCSVMgVEVDTk9MT0dJQSBFTEVDVFJJQ0EgUy5BLgorCQkJCUxlcmlkYSwgNjEKKwkJCQlNYWRyaWQgTWFkcmlkIEUyODAyMAorCQkJCVNQQUlOCisKKzcwLTY1LTgyICAgKGhleCkJCVN1emhvdSBIYW5taW5nIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzcwNjU4MiAgICAgKGJhc2UgMTYpCQlTdXpob3UgSGFubWluZyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJU3VpdGUgNDA3LCBOby4gMTY2LCBSZW4gQWkgUm9hZAorCQkJCVN1emhvdSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTdXpob3UgSmlhbmdzdSAyMTUxMjMKKwkJCQlDSElOQQorCis3MC03MS1CQyAgIChoZXgpCQlQRUdBVFJPTiBDT1JQT1JBVElPTgorNzA3MUJDICAgICAoYmFzZSAxNikJCVBFR0FUUk9OIENPUlBPUkFUSU9OCisJCQkJTm8uIDc2LCBMaWdvbmcgU3QuLCBCZWl0b3UsIAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3MC03Mi1DRiAgIChoZXgpCQlFZGdlQ29yZSBOZXR3b3JrcworNzA3MkNGICAgICAoYmFzZSAxNikJCUVkZ2VDb3JlIE5ldHdvcmtzCisJCQkJMjAgTWFzb24KKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLTc2LUYwICAgKGhleCkJCUxldmVsT25lIENvbW11bmljYXRpb25zIChJbmRpYSkgUHJpdmF0ZSBMaW1pdGVkCis3MDc2RjAgICAgIChiYXNlIDE2KQkJTGV2ZWxPbmUgQ29tbXVuaWNhdGlvbnMgKEluZGlhKSBQcml2YXRlIExpbWl0ZWQKKwkJCQkyRiwgTGFuZSAxLCA0NSBCaGFyYXQgTmFnYXIKKwkJCQlOZXcgRnJpZW5kcyBDb2xvbnkKKwkJCQlOZXcgRGVsaGkgREVMSEkgMTEwMDI1CisJCQkJSU5ESUEKKworNzAtN0UtNDMgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzcwN0U0MyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLTdFLURFICAgKGhleCkJCU5BU1RFQyBMVEQuCis3MDdFREUgICAgIChiYXNlIDE2KQkJTkFTVEVDIExURC4KKwkJCQkxMTEtRCwgS3Jhc25vcmVjaGVuc2theWEgc3RyLgorCQkJCUtoYWJhcm92c2sgIDY4MDAwNgorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCis3MC04Mi04RSAgIChoZXgpCQlPbGV1bVRlY2ggQ29ycG9yYXRpb24KKzcwODI4RSAgICAgKGJhc2UgMTYpCQlPbGV1bVRlY2ggQ29ycG9yYXRpb24KKwkJCQkyMyBIdWJibGUKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLThCLTc4ICAgKGhleCkJCWNpdHlncm93IHRlY2hub2xvZ3kgY28uLCBsdGQKKzcwOEI3OCAgICAgKGJhc2UgMTYpCQljaXR5Z3JvdyB0ZWNobm9sb2d5IGNvLiwgbHRkCisJCQkJcm0xNDA0LCBibGsgQSwgLDUgLSAyMSBQYWsgVGluIFBhciBTdHJlZXQKKwkJCQlIaS1UZWNoIEluZHVzdHJpYWwgQ2VudHJlLAorCQkJCVRzdWVuIFdhbiAgCisJCQkJSE9ORyBLT05HCisKKzcwLUExLTkxICAgKGhleCkJCVRyZW5kc2V0dGVyIE1lZGljYWwsIExMQworNzBBMTkxICAgICAoYmFzZSAxNikJCVRyZW5kc2V0dGVyIE1lZGljYWwsIExMQworCQkJCTIwMzAgQXJkbW9yZSBCTFZECisJCQkJU1RFIDM4MAorCQkJCVBpdHRzYnVyZ2ggUEEgMTUyMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLUE0LTFDICAgKGhleCkJCUFkdmFuY2VkIFdpcmVsZXNzIER5bmFtaWNzIFMuTC4KKzcwQTQxQyAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBXaXJlbGVzcyBEeW5hbWljcyBTLkwuCisJCQkJQ2VudHJvIGRlIEVtcHJlc2FzIFVQTSBvZmljaW5hIDMKKwkJCQlDYW1wdXMgVVBNIE1vbnRlZ2FuY2VkbworCQkJCVBvenVlbG8gZGUgQWxhcmNvbiBNYWRyaWQgMjgyMjMKKwkJCQlTUEFJTgorCis3MC1CMC0zNSAgIChoZXgpCQlTaGVuemhlbiBab3dlZSBUZWNobm9sb2d5IENvLiwgTHRkCis3MEIwMzUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gWm93ZWUgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCUJsb2NrIDUsIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgSW5kdXN0cmlhbCAKKwkJCQlQYXJrIG9mIFByaXZhdGVseSBPd25lZCBFbnRlcnByaXNlcywgUGluZ3NoYW4sIFhpbGksIE5hbnNoYW4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU1CisJCQkJQ0hJTkEKKworNzAtQjAtOEMgICAoaGV4KQkJU2hlbm91IENvbW11bmljYXRpb24gRXF1aXBtZW50IENvLixMdGQKKzcwQjA4QyAgICAgKGJhc2UgMTYpCQlTaGVub3UgQ29tbXVuaWNhdGlvbiBFcXVpcG1lbnQgQ28uLEx0ZAorCQkJCU5vLjExOCBNaWRkbGUgSnVndWFuZyBSb2FkLCBIaWdoICZhbXA7IE5ldyBJbmR1c3RyaWFsIFpvbmUKKwkJCQlXZW56aG91IFpoZWppYW5nIDMyNTAyOQorCQkJCUNISU5BCisKKzcwLUIyLTY1ICAgKGhleCkJCUhpbHRyb24gcy5yLmwuCis3MEIyNjUgICAgIChiYXNlIDE2KQkJSGlsdHJvbiBzLnIubC4KKwkJCQlTdHJhZGEgUHJvdmluY2lhbGUgZGkgQ2FzZXJ0YSwgMjE4CisJCQkJTmFwbGVzICA4MDE0NAorCQkJCUlUQUxZCisKKzcwLUI5LTIxICAgKGhleCkJCUZpYmVySG9tZSBUZWxlY29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ08uLExURAorNzBCOTIxICAgICAoYmFzZSAxNikJCUZpYmVySG9tZSBUZWxlY29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ08uLExURAorCQkJCU5vLjUgRG9uZ3hpbiBSb2FkLEhvbmdzaGFuIERpc3RyaWN0CisJCQkJV3VoYW4gSHViZWkgNDMwMDc0CisJCQkJQ0hJTkEKKworNzAtQ0QtNjAgICAoaGV4KQkJQXBwbGUgSW5jCis3MENENjAgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtRDQtRjIgICAoaGV4KQkJUklNCis3MEQ0RjIgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzcwLUQ1LTdFICAgKGhleCkJCVNjYWxhciBDb3Jwb3JhdGlvbgorNzBENTdFICAgICAoYmFzZSAxNikJCVNjYWxhciBDb3Jwb3JhdGlvbgorCQkJCTFGIFNhbi1FaSBCbGRnCisJCQkJMS0yMi0yCisJCQkJU2hpbmp1a3Uta3UgVG9reW8gMTYwLTAwMjMKKwkJCQlKQVBBTgorCis3MC1ENS1FNyAgIChoZXgpCQlXZWxsY29yZSBDb3Jwb3JhdGlvbgorNzBENUU3ICAgICAoYmFzZSAxNikJCVdlbGxjb3JlIENvcnBvcmF0aW9uCisJCQkJMjg3MCBaYW5rZXIgUm9hZAorCQkJCVN1aXRlIDEzMAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis3MC1EOC04MCAgIChoZXgpCQlVcG9zIFN5c3RlbSBzcC4geiBvLm8uCis3MEQ4ODAgICAgIChiYXNlIDE2KQkJVXBvcyBTeXN0ZW0gc3AuIHogby5vLgorCQkJCVNpZW5raWV3aWN6YSAxMworCQkJCUtudXJvdyBTbGFza2llIDQ0LTE5MAorCQkJCVBPTEFORAorCis3MC1ERC1BMSAgIChoZXgpCQlUZWxsYWJzCis3MEREQTEgICAgIChiYXNlIDE2KQkJVGVsbGFicworCQkJCU9uZSBUZWxsYWJzIENlbnRlcgorCQkJCTE0MTUgV2VzdCBEaWVobCBSb2FkCisJCQkJTmFwZXJ2aWxsZSBJbGxpbm9pcyA2MDU2MworCQkJCVVOSVRFRCBTVEFURVMKKworNzAtRTEtMzkgICAoaGV4KQkJM3ZpZXcgTHRkCis3MEUxMzkgICAgIChiYXNlIDE2KQkJM3ZpZXcgTHRkCisJCQkJMTY4LTE3MiBPbGQgU3RyZWV0CisJCQkJTG9uZG9uICBFQzFWIDlCUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzcwLUU4LTQzICAgKGhleCkJCUJlaWppbmcgQyZXIE9wdGljYWwgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLixMdGQuCis3MEU4NDMgICAgIChiYXNlIDE2KQkJQmVpamluZyBDJlcgT3B0aWNhbCBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQkyL0YgWXVmYSBQbGF6YSwgTm8uMTkgWGlhb3lpbmcgQmVpbHUsIENoYW95YW5nIERpc3RyaWN0LCAKKwkJCQlCZWlqaW5nICAxMDAxMDEKKwkJCQlDSElOQQorCis3MC1GMS1BMSAgIChoZXgpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorNzBGMUExICAgICAoYmFzZSAxNikJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYsOTAsQ2hpZW4gMSBSb2FkLENodW5nSG8sVGFpcGVpIEhzaWVuCisJCQkJVGFpcGVpICAyMzU4NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNzAtRjMtOTUgICAoaGV4KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCis3MEYzOTUgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJMTQxLCBMQU5FIDM1MSwgU0VDLjEsVEFJUElORyBSRC4KKwkJCQlUU0FPVFVFTgorCQkJCU5BTlRPVSA1NDI2MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNzQtMEEtQkMgICAoaGV4KQkJSlNKUyBEZXNpZ25zIChFdXJvcGUpIExpbWl0ZWQKKzc0MEFCQyAgICAgKGJhc2UgMTYpCQlKU0pTIERlc2lnbnMgKEV1cm9wZSkgTGltaXRlZAorCQkJCUV6ZWtpZWwgSG91c2UKKwkJCQlFemVraWVsIExhbmUKKwkJCQlXaWxsZW5oYWxsIFdlc3QgTWlkbGFuZHMgV1YxMiA1UVUKKwkJCQlVTklURUQgS0lOR0RPTQorCis3NC0xNS1FMiAgIChoZXgpCQlUcmktU2VuIFN5c3RlbXMgQ29ycG9yYXRpb24KKzc0MTVFMiAgICAgKGJhc2UgMTYpCQlUcmktU2VuIFN5c3RlbXMgQ29ycG9yYXRpb24KKwkJCQkxNzYyNSBFbCBDYW1pbm8gUmVhbCBTdWl0ZSAyMDAKKwkJCQlIb3VzdG9uIFRYIDc3MDU4CisJCQkJVU5JVEVEIFNUQVRFUworCis3NC0yRi02OCAgIChoZXgpCQlBenVyZXdhdmUgVGVjaG5vbG9naWVzLCBJbmMuCis3NDJGNjggICAgIChiYXNlIDE2KQkJQXp1cmV3YXZlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCThGLiwgQmFvemhvbmcgUmQuCisJCQkJWGluZGlhbiBDaXR5IFRhaXBlaSBDb3VudHkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3NC0zMi01NiAgIChoZXgpCQlOVC13YXJlIFN5c3RlbXByZyBHbWJICis3NDMyNTYgICAgIChiYXNlIDE2KQkJTlQtd2FyZSBTeXN0ZW1wcmcgR21iSAorCQkJCU5pZWRlcnNhY2hzZW5zdHJhc3NlIDYKKwkJCQlCYWQgSWJ1cmcgTkRTIDQ5MTg2CisJCQkJR0VSTUFOWQorCis3NC0zOC04OSAgIChoZXgpCQlBTk5BWCBBbnplaWdlc3lzdGVtZSBHbWJICis3NDM4ODkgICAgIChiYXNlIDE2KQkJQU5OQVggQW56ZWlnZXN5c3RlbWUgR21iSAorCQkJCVdldHRlcnN0ZWluc3RyYXNzZSAxOAorCQkJCVRhdWZraXJjaGVuIEJhdmFyaWEgODIwMjQKKwkJCQlHRVJNQU5ZCisKKzc0LTU2LTEyICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCis3NDU2MTIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCis3NC01RS0xQyAgIChoZXgpCQlQSU9ORUVSIENPUlBPUkFUSU9OCis3NDVFMUMgICAgIChiYXNlIDE2KQkJUElPTkVFUiBDT1JQT1JBVElPTgorCQkJCTEtMSBTaGluLW9ndXJhCisJCQkJU2Fpd2FpLWt1CisJCQkJS2F3YXNha2ktc2hpIEthbmFnYXdhIFByZWZlY3R1cmUgMjEyMDAzMQorCQkJCUpBUEFOCisKKzc0LTY1LUQxICAgKGhleCkJCUF0bGlua3MKKzc0NjVEMSAgICAgKGJhc2UgMTYpCQlBdGxpbmtzCisJCQkJMzAgQXZlbnVlIEdlcm9nZSBWCisJCQkJUGFyaXMgIDc1MDA4CisJCQkJRlJBTkNFCisKKzc0LTZCLTgyICAgKGhleCkJCU1PVkVLIAorNzQ2QjgyICAgICAoYmFzZSAxNikJCU1PVkVLIAorCQkJCTY1MTcgTmF2YWhvIFRyYWlsCisJCQkJRWRpbmEgTWlubmVzb3RhIDU1NDM5CisJCQkJVU5JVEVEIFNUQVRFUworCis3NC03Mi1GMiAgIChoZXgpCQlDaGlwc2lwIFRlY2hub2xvZ3kgQ28uLCBMdGQuCis3NDcyRjIgICAgIChiYXNlIDE2KQkJQ2hpcHNpcCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCThGLTEsIE5vLjE4NiwgSmlhbi1ZaSBSb2FkLCBDaHVuZ0hvIENpdHksCisJCQkJVGFpcGVpICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzc0LTc4LTE4ICAgKGhleCkJCVNlcnZpY2VBc3N1cmUKKzc0NzgxOCAgICAgKGJhc2UgMTYpCQlTZXJ2aWNlQXNzdXJlCisJCQkJR3JvdW5kIEZsb29yLCBCbG9jayBQLCBDcnlzdGFsIFBhcmsgT25lCisJCQkJMjQ5IEJhc2RlbiBBdmVudWUsIEx5dHRlbHRvbgorCQkJCUNlbnR1cmlvbiBUc2h3YW5lIDAxNTcKKwkJCQlTT1VUSCBBRlJJQ0EKKworNzQtN0QtQjYgICAoaGV4KQkJQWxpd2VpIENvbW11bmljYXRpb25zLCBJbmMKKzc0N0RCNiAgICAgKGJhc2UgMTYpCQlBbGl3ZWkgQ29tbXVuaWNhdGlvbnMsIEluYworCQkJCUtlamkgNiBSb2FkICwgSGktdGVjaCBJbmR1c3RyaWFsIFBhcmsgIAorCQkJCU5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworNzQtN0UtMUEgICAoaGV4KQkJUmVkIEVtYmVkZGVkIERlc2lnbiBMaW1pdGVkCis3NDdFMUEgICAgIChiYXNlIDE2KQkJUmVkIEVtYmVkZGVkIERlc2lnbiBMaW1pdGVkCisJCQkJVmVsb2NpdHkKKwkJCQlBbmdlbCBXYXkKKwkJCQlCcmFkZm9yZCBXZXN0IFlvcmtzaGlyZSBCRDcgMUJYCisJCQkJVU5JVEVEIEtJTkdET00KKworNzQtOEUtRjggICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCis3NDhFRjggICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJMTc0NSBUZWNobm9sb2d5IERyCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LTkwLTUwICAgKGhleCkJCVJlbmVzYXMgRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KKzc0OTA1MCAgICAgKGJhc2UgMTYpCQlSZW5lc2FzIEVsZWN0cm9uaWNzIENvcnBvcmF0aW9uCisJCQkJMTc1MywgU2hpbW9udW1hYmUsIE5ha2FoYXJhLUt1CisJCQkJS2F3YXNha2kgS2FuYWdhd2EgMjExLTg2NjgKKwkJCQlKQVBBTgorCis3NC05MS0xQSAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzc0OTExQSAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCis3NC1BNC1BNyAgIChoZXgpCQlRUlMgTXVzaWMgVGVjaG5vbG9naWVzLCBJbmMuCis3NEE0QTcgICAgIChiYXNlIDE2KQkJUVJTIE11c2ljIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTI2OSBRdWFrZXIgRHJpdmUKKwkJCQlTZW5lY2EgUEEgMTYzNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LUE3LTIyICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzCis3NEE3MjIgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MKKwkJCQk2MDMtMzkgLCBLYXNhbi1kb25nLCBHdW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzc0LUIwLTBDICAgKGhleCkJCU5ldHdvcmsgVmlkZW8gVGVjaG5vbG9naWVzLCBJbmMKKzc0QjAwQyAgICAgKGJhc2UgMTYpCQlOZXR3b3JrIFZpZGVvIFRlY2hub2xvZ2llcywgSW5jCisJCQkJNDAwNSBCb2hhbm5vbiBEcml2ZQorCQkJCU1lbmxvIFBhcmsgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LUI5LUVCICAgKGhleCkJCUZ1amlhbiBHb2xkY2F0IEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4sTHRkLgorNzRCOUVCICAgICAoYmFzZSAxNikJCUZ1amlhbiBHb2xkY2F0IEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCVJvb20gNTA2IFlvbmdIZW5nIEJ1aWxkaW5nIE5PLjU4IEppYW5nQmluZyBSYW9kCisJCQkJRnVaaG91IEZ1SmlhbiAzNTAwMDUKKwkJCQlDSElOQQorCis3NC1CRS0wOCAgIChoZXgpCQlQUklWQVRFCis3NEJFMDggICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzc0LUNELTBDICAgKGhleCkJCVNtaXRoIE15ZXJzIENvbW11bmljYXRpb25zIEx0ZC4KKzc0Q0QwQyAgICAgKGJhc2UgMTYpCQlTbWl0aCBNeWVycyBDb21tdW5pY2F0aW9ucyBMdGQuCisJCQkJVGhlIE9tZWdhIENlbnRyZQorCQkJCVN0cmF0dG9uIEJ1c2luZXNzIFBhcmsKKwkJCQlCaWdnbGVzd2FkZSBCRURTIFNHMTggOFFCCisJCQkJVU5JVEVEIEtJTkdET00KKworNzQtQ0UtNTYgICAoaGV4KQkJUGFja2V0IEZvcmNlIFRlY2hub2xvZ3kgTGltaXRlZCBDb21wYW55Cis3NENFNTYgICAgIChiYXNlIDE2KQkJUGFja2V0IEZvcmNlIFRlY2hub2xvZ3kgTGltaXRlZCBDb21wYW55CisJCQkJIDJGLiwgTm8uMjUsIFNlYy4gMSwgU2h1YW5nc2hpIFJkLiwgQ2VudHJhbCBEaXN0LiwgCisJCQkJVGFpY2h1bmcgIDQwMDQ2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3NC1EMC1EQyAgIChoZXgpCQlFUklDU1NPTiBBQgorNzREMERDICAgICAoYmFzZSAxNikJCUVSSUNTU09OIEFCCisJCQkJVG9yc2hhbW5zZ2F0YW4gMzYKKwkJCQlTVE9DS0hPTE0gIDE2NCA4MyAKKwkJCQlTV0VERU4KKworNzQtRDYtNzUgICAoaGV4KQkJV1lNQSBUZWNub2xvZ2lhCis3NEQ2NzUgICAgIChiYXNlIDE2KQkJV1lNQSBUZWNub2xvZ2lhCisJCQkJUnVhIENsaT9vZW1hY28gQmFyYm9zYSwgMTcxLTE3OQorCQkJCUNhbWJ1Y2kKKwkJCQlTaT9vZW8gUGF1bG8gIDAxNTIzLTAwMAorCQkJCUJSQVpJTAorCis3NC1EOC01MCAgIChoZXgpCQlFdnJpc2tvIFN5c3RlbXMKKzc0RDg1MCAgICAgKGJhc2UgMTYpCQlFdnJpc2tvIFN5c3RlbXMKKwkJCQkyMzIyIEFscGluZSBSZCwgU3RlIDEwCisJCQkJRWF1IENsYWlyZSBXSSA1NDcwMworCQkJCVVOSVRFRCBTVEFURVMKKworNzQtRTAtNkUgICAoaGV4KQkJRXJnb3Bob25lIEdtYkgKKzc0RTA2RSAgICAgKGJhc2UgMTYpCQlFcmdvcGhvbmUgR21iSAorCQkJCVRlbW1sZXJzdHJhc3NlIDUKKwkJCQlNYXJidXJnIEhlc3NlbiAzNTAzOQorCQkJCUdFUk1BTlkKKworNzQtRTUtMEIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis3NEU1MEIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis3NC1FNS0zNyAgIChoZXgpCQlSQURTUElOCis3NEU1MzcgICAgIChiYXNlIDE2KQkJUkFEU1BJTgorCQkJCVNvbmdwYS1ndSBHYXJhay1kb25nIDc4CisJCQkJSVQgVmVudHVyZSBUb3dlciBXZXN0IFdpbmcgMTJ0aCBGbC4KKwkJCQlTZW91bCAgMTM4LTk1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3NC1FNy1DNiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorNzRFN0M2ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworNzQtRUEtM0EgICAoaGV4KQkJVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzc0RUEzQSAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCUJ1aWxkaW5nIDcsIFNlY29uZCBQYXJ0LCBIb25naHVhbGluZyBJbmR1c3RyaWFsIFpvbmUKKwkJCQlYaWxpLE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworNzQtRjAtNkQgICAoaGV4KQkJQXp1cmVXYXZlIFRlY2hub2xvZ2llcywgSW5jLgorNzRGMDZEICAgICAoYmFzZSAxNikJCUF6dXJlV2F2ZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk4Ri4sIEJhb3pob25nIFJkLiwgCisJCQkJWGluZGlhbiBDaXR5LCBUYWlwZWkgQ291bnR5LiAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3NC1GMC03RCAgIChoZXgpCQlCbkNPTSBDby4sTHRkCis3NEYwN0QgICAgIChiYXNlIDE2KQkJQm5DT00gQ28uLEx0ZAorCQkJCVJvb20xMDA3LCBEYWVoeXVuIFRlY2hubyBXb3JsZCwgMTc0CisJCQkJT2plb24tZG9uZywgCisJCQkJVWl3YW5nLXNpIEd5ZW9uZ2dpLWRvIDQzNy03NTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNzQtRjYtMTIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzc0RjYxMiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LUY3LTI2ICAgKGhleCkJCU5ldXJvbiBSb2JvdGljcworNzRGNzI2ICAgICAoYmFzZSAxNikJCU5ldXJvbiBSb2JvdGljcworCQkJCTkxIFBlYXJzb24gQXZlCisJCQkJVW5pdCAyCisJCQkJU29tZXJ2aWxsZSBNQSAwMjE0NAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtMDItOEYgICAoaGV4KQkJQWRhcHRpdmUgU3BlY3RydW0gYW5kIFNpZ25hbCBBbGlnbm1lbnQgKEFTU0lBKSwgSW5jLgorNzgwMjhGICAgICAoYmFzZSAxNikJCUFkYXB0aXZlIFNwZWN0cnVtIGFuZCBTaWduYWwgQWxpZ25tZW50IChBU1NJQSksIEluYy4KKwkJCQkzMzMgVHdpbiBEb2xwaGluIERyaXZlCisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDY1CisJCQkJVU5JVEVEIFNUQVRFUworCis3OC0xMS04NSAgIChoZXgpCQlOQlMgUGF5bWVudCBTb2x1dGlvbnMgSW5jLgorNzgxMTg1ICAgICAoYmFzZSAxNikJCU5CUyBQYXltZW50IFNvbHV0aW9ucyBJbmMuCisJCQkJNzAzIEV2YW5zIEF2ZQorCQkJCVN1aXRlIDQwMAorCQkJCVRvcm9udG8gT250YXJpbyBNOUMgNUU5CisJCQkJQ0FOQURBCisKKzc4LTEyLUI4ICAgKGhleCkJCU9SQU5URUsgTElNSVRFRAorNzgxMkI4ICAgICAoYmFzZSAxNikJCU9SQU5URUsgTElNSVRFRAorCQkJCTUvRiwgQnVpbGRpbmcgRSwgRGFrYW4gVGVjaCBQYXJrLCBEYWthbiB2aWxsYWdlLCBYaWxpIFRvd24sIE5hbnNoYW4gRGlzdHJpY3QsIFNoZW56aGVuLCBDaGluYQorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCis3OC0xOS0yRSAgIChoZXgpCQlOQVNDRU5UIFRlY2hub2xvZ3kKKzc4MTkyRSAgICAgKGJhc2UgMTYpCQlOQVNDRU5UIFRlY2hub2xvZ3kKKwkJCQkyNzQ0IFlvcmttb250IFJECisJCQkJQ2hhcmxvdHRlIE5DIDI4MjA4CisJCQkJVU5JVEVEIFNUQVRFUworCis3OC0xOS1GNyAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCis3ODE5RjcgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkgCisJCQkJVU5JVEVEIFNUQVRFUworCis3OC0xRC1CQSAgIChoZXgpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKzc4MURCQSAgICAgKGJhc2UgMTYpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKwkJCQlIVUFXRUkgSW5kdXN0cmlhbCBCYXNlIEJhbnRpYW4sTG9uZ2dhbmcKKwkJCQlTaGVuemhlbiBndWFuZ2RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworNzgtMUQtRkQgICAoaGV4KQkJSmFiaWwgSW5jCis3ODFERkQgICAgIChiYXNlIDE2KQkJSmFiaWwgSW5jCisJCQkJMTA1MDAgRHIuIE1hcnRpbiBMdXRoZXIgS2luZyBKci4gU3QuIE4uCisJCQkJRG9jayBDCisJCQkJU3QuIFBldGVyc2J1cmcgRmxvcmlkYSAzMzcxNgorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtMjItM0QgICAoaGV4KQkJQWZmaXJtZWQgTmV0d29ya3MKKzc4MjIzRCAgICAgKGJhc2UgMTYpCQlBZmZpcm1lZCBOZXR3b3JrcworCQkJCTM1IE5hZ29nIFBhcmsKKwkJCQlBY3RvbiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtMjUtQUQgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPTklDUyBDTy4sIExURC4KKzc4MjVBRCAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCTQxNiwgTUFFVEFOLTNET05HLCBQQUxEQUwtR1UKKwkJCQlTVVdPTiBDSVRZIEtZVU5HS0ktRE8gNDQyLTc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3OC0yQi1DQiAgIChoZXgpCQlEZWxsIEluYworNzgyQkNCICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUzpSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCis3OC0yRS1FRiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorNzgyRUVGICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJWXJ0dGlwZWxsb250aWUgNgorCQkJCU91bHUgIDkwMjMwCisJCQkJRklOTEFORAorCis3OC0zMC1FMSAgIChoZXgpCQlVbHRyYUNsZW56LCBMTEMKKzc4MzBFMSAgICAgKGJhc2UgMTYpCQlVbHRyYUNsZW56LCBMTEMKKwkJCQkxNDQwIFcgSW5kaWFudG93biBSb2FkCisJCQkJU3VpdGUgMzUwCisJCQkJSnVwaXRlciBGTCAzMzQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtM0YtMTUgICAoaGV4KQkJRWFzeVNZTkMgTHRkLgorNzgzRjE1ICAgICAoYmFzZSAxNikJCUVhc3lTWU5DIEx0ZC4KKwkJCQlVbml0IDEsIDIgU2Vhd2FyZCBQbGFjZQorCQkJCUNlbnR1cmlvbiBCdXNpbmVzcyBQYXJrCisJCQkJR2xhc2dvdyBTY290bGFuZCBHNDEgMUhICisJCQkJVU5JVEVEIEtJTkdET00KKworNzgtNDQtNzYgICAoaGV4KQkJWmlvbmNvbSB0ZWNobm9sb2d5IGNvLixsdGQKKzc4NDQ3NiAgICAgKGJhc2UgMTYpCQlaaW9uY29tIHRlY2hub2xvZ3kgY28uLGx0ZAorCQkJCUExJkEyIGJ1aWxkaW5nLGxhbnRpYW4gdGVjaG5vbG9neSBwYXJrLCB4aW55dSByb2FkLCB4aW5ncWlhbyBoZW5nZ2FuZyBibG9jaywgc2hhamluZyBzdHJlZXQsIEJhb2FuIERpc3RyaWN0CisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzc4LTQ3LTFEICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNzg0NzFEICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3OC01MS0wQyAgIChoZXgpCQlMaXZlVSBMdGQuCis3ODUxMEMgICAgIChiYXNlIDE2KQkJTGl2ZVUgTHRkLgorCQkJCTUgSGFnYXZpc2ggU3QuCisJCQkJS2Zhci1TYWJhICA0NDY0MQorCQkJCUlTUkFFTAorCis3OC01Ny0xMiAgIChoZXgpCQlNb2JpbGUgSW50ZWdyYXRpb24gV29ya2dyb3VwCis3ODU3MTIgICAgIChiYXNlIDE2KQkJTW9iaWxlIEludGVncmF0aW9uIFdvcmtncm91cAorCQkJCTQ1ODAgS2xhaGFuaWUgRFIgU0UgU1RFIDEwNgorCQkJCUlzc2FxdWFoIFdBIDk4MDI5CisJCQkJVU5JVEVEIFNUQVRFUworCis3OC01OS0zRSAgIChoZXgpCQlSQUZJIEdtYkggJiBDby5LRworNzg1OTNFICAgICAoYmFzZSAxNikJCVJBRkkgR21iSCAmIENvLktHCisJCQkJUmF2ZW5zYnVyZ2VyIFN0ci4gMTI4LTEzNAorCQkJCUJlcmcgQmFkZW4gV3VydHRlbWJlcmcgODgyNzYKKwkJCQlHRVJNQU5ZCisKKzc4LTVDLTcyICAgKGhleCkJCUhpb3NvIFRlY2hub2xvZ3kgQ28uLCBMdGQuCis3ODVDNzIgICAgIChiYXNlIDE2KQkJSGlvc28gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk2dGggRmxvb3IsIDEydGggQnVpbGRpbmcsIFdhbmd0YW5nIEluZHVzdHJpYWwgWm9uZSwKKwkJCQlYaW5nYW8gUm9hZCwgWGlsaSwgTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTUKKwkJCQlDSElOQQorCis3OC02Ni1BRSAgIChoZXgpCQlaVEVDIEluc3RydW1lbnRzLCBJbmMuCis3ODY2QUUgICAgIChiYXNlIDE2KQkJWlRFQyBJbnN0cnVtZW50cywgSW5jLgorCQkJCTc3MTUgVGlidXJvbiBTdC4gTkUKKwkJCQlBbGJ1cXVlcnF1ZSBOTSA4NzEwOQorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtN0YtNjIgICAoaGV4KQkJR2lLIG1iSAorNzg3RjYyICAgICAoYmFzZSAxNikJCUdpSyBtYkgKKwkJCQlHb2V0aGVzdHIuIDUKKwkJCQlBYWNoZW4gIDUyMDY0CisJCQkJR0VSTUFOWQorCis3OC04MS04RiAgIChoZXgpCQlTZXJ2ZXIgUmFja3MgQXVzdHJhbGlhIFB0eSBMdGQKKzc4ODE4RiAgICAgKGJhc2UgMTYpCQlTZXJ2ZXIgUmFja3MgQXVzdHJhbGlhIFB0eSBMdGQKKwkJCQk0IC0gNiBFbmR1cmFuY2UgQXZlCisJCQkJUXVlYW5iZXlhbiBOU1cgMjYyMAorCQkJCUFVU1RSQUxJQQorCis3OC04NC0zQyAgIChoZXgpCQlTb255IENvcnBvcmF0aW9uCis3ODg0M0MgICAgIChiYXNlIDE2KQkJU29ueSBDb3Jwb3JhdGlvbgorCQkJCTUtMS0xMiBLaXRhc2hpbmFnYXdhIFNoaW5hZ2F3YS1rdQorCQkJCVRva3lvICAxNDEtMDAwMQorCQkJCUpBUEFOCisKKzc4LTg0LUVFICAgKGhleCkJCUlORFJBIEVTUEFDSU8gUy5BLgorNzg4NEVFICAgICAoYmFzZSAxNikJCUlORFJBIEVTUEFDSU8gUy5BLgorCQkJCUMvIFJPQyBCT1JPTkFULCAxMzMKKwkJCQlCQVJDRUxPTkEgIDA4MDE4CisJCQkJU1BBSU4KKworNzgtODktNzMgICAoaGV4KQkJQ01DCis3ODg5NzMgICAgIChiYXNlIDE2KQkJQ01DCisJCQkJSW5kdXN0cmllcGFyayBEZSBCcnV3YWFuIDM3QgorCQkJCU91ZGVuYWFyZGUgT29zdC1WbGFhbmRlcmVuIDk3MDAKKwkJCQlCRUxHSVVNCisKKzc4LThDLTU0ICAgKGhleCkJCUVua29tIFRlY2hub2xvZ2llcyBMdGQuCis3ODhDNTQgICAgIChiYXNlIDE2KQkJRW5rb20gVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQlCYWRlbmVyc3RyYXNzZSA1NTEKKwkJCQlaaT9vZXJpY2ggWkggODA0OAorCQkJCVNXSVRaRVJMQU5ECisKKzc4LTkyLTlDICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorNzg5MjlDICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworNzgtOTktOEYgICAoaGV4KQkJTUVESUxJTkUgSVRBTElBIFNSTAorNzg5OThGICAgICAoYmFzZSAxNikJCU1FRElMSU5FIElUQUxJQSBTUkwKKwkJCQlWSUEgOCBNQVJaTywgNAorCQkJCUNPUlRFIFRFR0dFIFJFR0dJTyBORUxMJ0VNSUxJQSA0MjAyNQorCQkJCUlUQUxZCisKKzc4LUEwLTUxICAgKGhleCkJCWlpTmV0IExhYnMgUHR5IEx0ZCAKKzc4QTA1MSAgICAgKGJhc2UgMTYpCQlpaU5ldCBMYWJzIFB0eSBMdGQgCisJCQkJTGV2ZWwgMQorCQkJCTUwMiBIYXkgU3RyZWV0CisJCQkJU3ViaWFjbyBXQSA2MDA4CisJCQkJQVVTVFJBTElBCisKKzc4LUEyLUEwICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorNzhBMkEwICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzc4LUE2LTgzICAgKGhleCkJCVByZWNpZGF0YQorNzhBNjgzICAgICAoYmFzZSAxNikJCVByZWNpZGF0YQorCQkJCUNQIDY3MgorCQkJCU1hbGFkaWVyZSA3MQorCQkJCTIwMDIgTkUgMjAwMgorCQkJCVNXSVRaRVJMQU5ECisKKzc4LUE2LUJEICAgKGhleCkJCURBRVlFT04gQ29udHJvbCZJbnN0cnVtZW50IENvLC5MdGQKKzc4QTZCRCAgICAgKGJhc2UgMTYpCQlEQUVZRU9OIENvbnRyb2wmSW5zdHJ1bWVudCBDbywuTHRkCisJCQkJQUNFVEVDSE5PVE9XRVIgMi0xMDgsIDE5Ny03LCBHdXJvMy1Eb25nLCBHdXJvLUd1LCAKKwkJCQlTZW91bCAgMTUyLTc2NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3OC1BNy0xNCAgIChoZXgpCQlBbXBoZW5vbAorNzhBNzE0ICAgICAoYmFzZSAxNikJCUFtcGhlbm9sCisJCQkJMjAgVmFsbGV5IFN0LgorCQkJCUVuZGljb3R0IE5ldyBZb3JrIDEzNzYwCisJCQkJVU5JVEVEIFNUQVRFUworCis3OC1BQy1DMCAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzc4QUNDMCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTWFpbGNvZGUgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzc4LUI2LUMxICAgKGhleCkJCUFPQk8gVGVsZWNvbSBDby4sTHRkCis3OEI2QzEgICAgIChiYXNlIDE2KQkJQU9CTyBUZWxlY29tIENvLixMdGQKKwkJCQlSb29tMTUwOCxKaWFuZ29uZyBCdWlsZGluZworCQkJCU5vLjIwIFdlbnNhbiBSb2FkCisJCQkJSGFuZ3pob3UgWmhlSmlhbmcgIDMxMDAxMgorCQkJCUNISU5BCisKKzc4LUI4LTFBICAgKGhleCkJCUlOVEVSIFNBTEVTIEEvUworNzhCODFBICAgICAoYmFzZSAxNikJCUlOVEVSIFNBTEVTIEEvUworCQkJCVN0YXZuZWFnZXJ2ZWogMjIKKwkJCQlFZ2FhIEp1dGxhbmQgODI1MAorCQkJCURFTk1BUksKKworNzgtQkUtQjYgICAoaGV4KQkJRW5oYW5jZWQgVmlzaW9uCis3OEJFQjYgICAgIChiYXNlIDE2KQkJRW5oYW5jZWQgVmlzaW9uCisJCQkJNTg4MiBNQUNISU5FIERSLgorCQkJCUh1bnRpbmd0b24gQmVhY2ggQ2FsaWZvcm5pYSA5MjY0OQorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtQzQtMEUgICAoaGV4KQkJSCZEIFdpcmVsZXNzIAorNzhDNDBFICAgICAoYmFzZSAxNikJCUgmRCBXaXJlbGVzcyAKKwkJCQlTam92YWdlbiAxNworCQkJCVNvbG5hICAxNjkgNTUgCisJCQkJU1dFREVOCisKKzc4LUM2LUJCICAgKGhleCkJCUlubm92YXNpYywgSW5jLgorNzhDNkJCICAgICAoYmFzZSAxNikJCUlubm92YXNpYywgSW5jLgorCQkJCTM3MzcgUHJpbmNldG9uIERyLiBORSwgU3VpdGUgMTMwCisJCQkJQWxidXF1ZXJxdWUgTk0gODQxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzc4LUNBLTA0ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCis3OENBMDQgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlZcnR0aXBlbGxvbnRpZSA2CisJCQkJT3VsdSAgOTAyMzAKKwkJCQlGSU5MQU5ECisKKzc4LUNBLTM5ICAgKGhleCkJCUFwcGxlCis3OENBMzkgICAgIChiYXNlIDE2KQkJQXBwbGUKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzc4LUNELThFICAgKGhleCkJCVNNQyBOZXR3b3JrcyBJbmMKKzc4Q0Q4RSAgICAgKGJhc2UgMTYpCQlTTUMgTmV0d29ya3MgSW5jCisJCQkJMjAgTWFzb24KKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzc4LUQwLTA0ICAgKGhleCkJCU5lb3VzeXMgVGVjaG5vbG9neSBJbmMuCis3OEQwMDQgICAgIChiYXNlIDE2KQkJTmVvdXN5cyBUZWNobm9sb2d5IEluYy4KKwkJCQkxM0YuLTEsIE5PLjEsIEJBT1NIRU5HIFJELiwgCisJCQkJWU9OR0hFIENJVFkgVEFJUEVJIENPVU5UWSAgMjM0NDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzc4LUQ2LUYwICAgKGhleCkJCVNhbXN1bmcgRWxlY3RybyBNZWNoYW5pY3MKKzc4RDZGMCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm8gTWVjaGFuaWNzCisJCQkJTWV0YW4gRG9uZyAzMTQsIFlvdW5ndG9uZyBHdQorCQkJCVN1d29uIEt5dW5nLWdpIERvLiA0NDMtNzQzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzc4LURELTA4ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCis3OEREMDggICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgIDIwMTYxMyAKKwkJCQlDSElOQQorCis3OC1ERS1FNCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworNzhERUU0ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis3OC1FMy1CNSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzc4RTNCNSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTWFpbGNvZGUgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzc4LUU0LTAwICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCis3OEU0MDAgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJU2hhbmdoYWkgICAyMDE2MTMgCisJCQkJQ0hJTkEKKworNzgtRTctRDEgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCis3OEU3RDEgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzc4LUVDLTIyICAgKGhleCkJCVNoYW5naGFpIFFpaHVpIFRlbGVjb20gVGVjaG5vbG9neSBDby4sIExURAorNzhFQzIyICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFFpaHVpIFRlbGVjb20gVGVjaG5vbG9neSBDby4sIExURAorCQkJCVJvb20gNTAxLCBObyAyIEJvWXVuIFJkLCBQdURvbmcgTmV3IEFyZWEsIAorCQkJCVNoYW5naGFpICAyMDEyMDMKKwkJCQlDSElOQQorCis3OC1FRi00QyAgIChoZXgpCQlVbmV0Y29udmVyZ2VuY2UgQ28uLCBMdGQuCis3OEVGNEMgICAgIChiYXNlIDE2KQkJVW5ldGNvbnZlcmdlbmNlIENvLiwgTHRkLgorCQkJCTEwMS01MTEsIERpZ2l0YWwgRW1waXJlMiwgNDg2LCBTaGluLWRvbmcsIFlvdW5ndG9uZy1ndQorCQkJCVN1d29uIEt5b25nZ2ktZG8gNDQzLTM5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3Qy0wMy00QyAgIChoZXgpCQlTQUdFTUNPTQorN0MwMzRDICAgICAoYmFzZSAxNikJCVNBR0VNQ09NCisJCQkJMjUwIHJvdXRlIGRlIGwnRW1wZXJldXIKKwkJCQlSVUVJTCBNQUxNQUlTT04gSWxlIGRlIEZyYW5jZSA5Mjg0OAorCQkJCUZSQU5DRQorCis3Qy0wNS0xRSAgIChoZXgpCQlSQUZBRUwgTFRELgorN0MwNTFFICAgICAoYmFzZSAxNikJCVJBRkFFTCBMVEQuCisJCQkJR1VTSCBTRUdFViBQT0IgMjI1MAorCQkJCUhBSUZBICAzMTAwOAorCQkJCUlTUkFFTAorCis3Qy0wOC1EOSAgIChoZXgpCQlTaGFuZ2hhaSBFbmdpbmVlcmluZyBSZXNlYXJjaCBDZW50ZXIgZm9yIEJyb2FkYmFuZCBUZWNobm9sb2dpZXMgYW5kIEFwcGxpY2F0aW9ucworN0MwOEQ5ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEVuZ2luZWVyaW5nIFJlc2VhcmNoIENlbnRlciBmb3IgQnJvYWRiYW5kIFRlY2hub2xvZ2llcyBhbmQgQXBwbGljYXRpb25zCisJCQkJMTUwIEhvbmdndSBSb2FkCisJCQkJQ2hhbmduaW5nIERpc3RyaWN0CisJCQkJU2hhbmdoYWkgIDIwMDMzNgorCQkJCUNISU5BCisKKzdDLTE0LTc2ICAgKGhleCkJCURhbWFsbCBUZWNobm9sb2dpZXMgUy5BLlMuIERpIEx1ZG92aWMgQW5zZWxtZSBHbGFnbGFub24gJiBDLgorN0MxNDc2ICAgICAoYmFzZSAxNikJCURhbWFsbCBUZWNobm9sb2dpZXMgUy5BLlMuIERpIEx1ZG92aWMgQW5zZWxtZSBHbGFnbGFub24gJiBDLgorCQkJCUNvcnNvIGRlbGxhIFJlcHViYmxpY2EgNjUKKwkJCQlGYWJyaWFubyBBbmNvbmEgNjAwNDQKKwkJCQlJVEFMWQorCis3Qy0xRS1CMyAgIChoZXgpCQkyTiBURUxFS09NVU5JS0FDRSBhLnMuCis3QzFFQjMgICAgIChiYXNlIDE2KQkJMk4gVEVMRUtPTVVOSUtBQ0UgYS5zLgorCQkJCU1vZHJhbnNrYSA2MjEKKwkJCQlQcmFndWUgQ3plY2ggUmVwdWJsaWMgMTQzMDEKKwkJCQlDWkVDSCBSRVBVQkxJQworCis3Qy0yMC02NCAgIChoZXgpCQlBbGNhdGVsIEx1Y2VudCBJUEQKKzdDMjA2NCAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIEx1Y2VudCBJUEQKKwkJCQk2MDAgTWFyY2ggRHJpdmUKKwkJCQlLYW5hdGEgT250YXJpbyBLMksyRTYKKwkJCQlDQU5BREEKKworN0MtMkMtRjMgICAoaGV4KQkJU2VjdXJlIEVsZWN0cmFucyBMdGQKKzdDMkNGMyAgICAgKGJhc2UgMTYpCQlTZWN1cmUgRWxlY3RyYW5zIEx0ZAorCQkJCVRoZSBFbmVyZ3kgSW5ub3ZhdGlvbiBDZW50cmUKKwkJCQlDYXBlbmh1cnN0CisJCQkJQ2hlc3RlciAgQ0gxIDZFUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzdDLTJFLTBEICAgKGhleCkJCUJsYWNrbWFnaWMgRGVzaWduCis3QzJFMEQgICAgIChiYXNlIDE2KQkJQmxhY2ttYWdpYyBEZXNpZ24KKwkJCQkxMSBHYXRld2F5IENvdXJ0CisJCQkJUG9ydCBNZWxib3VybmUKKwkJCQlNZWxib3VybmUgVmljdG9yaWEgMzIwNworCQkJCUFVU1RSQUxJQQorCis3Qy0yRi04MCAgIChoZXgpCQlHaWdhc2V0IENvbW11bmljYXRpb25zIEdtYkgKKzdDMkY4MCAgICAgKGJhc2UgMTYpCQlHaWdhc2V0IENvbW11bmljYXRpb25zIEdtYkgKKwkJCQlTQ00gUEUgMgorCQkJCUZyYW5rZW5zdHJhc3NlIDIKKwkJCQlCb2Nob2x0ICA0NjM5NQorCQkJCUdFUk1BTlkKKworN0MtMzktMjAgICAoaGV4KQkJU1NPTUEgU0VDVVJJVFkKKzdDMzkyMCAgICAgKGJhc2UgMTYpCQlTU09NQSBTRUNVUklUWQorCQkJCVVuaXQgNzAzLCBEYWVyeXVuZyBUZWNobm90b3duIDEzdGgsIAorCQkJCTY2NCwgR2FzYW5kb25nLCAKKwkJCQlHZXVtY2hlb25ndSBTZW91bCAxNTM3NTQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworN0MtM0ItRDUgICAoaGV4KQkJSW1hZ28gR3JvdXAKKzdDM0JENSAgICAgKGJhc2UgMTYpCQlJbWFnbyBHcm91cAorCQkJCVJhbW9uIE1hcnRpIEFsc2luYSAyLTQtNgorCQkJCUJhZGFsb25hIEJhcmNlbG9uYSAwODkxMQorCQkJCVNQQUlOCisKKzdDLTNFLTlEICAgKGhleCkJCVBBVEVDSAorN0MzRTlEICAgICAoYmFzZSAxNikJCVBBVEVDSAorCQkJCSMyMy0xNy4gV29uaHlvUm8tMkdhCisJCQkJWW9uZ1Nhbi1HdSBTZW91bCAxNDAxMTIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworN0MtNEEtODIgICAoaGV4KQkJUG9ydHNtaXRoIExMQworN0M0QTgyICAgICAoYmFzZSAxNikJCVBvcnRzbWl0aCBMTEMKKwkJCQk4NTAgRS4gRnJhbmtsaW4gUm9hZAorCQkJCVN1aXRlIDQwMQorCQkJCU1lcmlkaWFuIElEIDgzNjQyCisJCQkJVU5JVEVEIFNUQVRFUworCis3Qy00QS1BOCAgIChoZXgpCQlNaW5kVHJlZSBXaXJlbGVzcyBQVlQgTHRkCis3QzRBQTggICAgIChiYXNlIDE2KQkJTWluZFRyZWUgV2lyZWxlc3MgUFZUIEx0ZAorCQkJCUxHRiwgUGhhc2UgSUlJLCBNaW5kdHJlZSBXZXN0IENhbXB1cywgCisJCQkJR2xvYmFsIFZpbGxhZ2UgQ2FtcHVzLCBSVkNFIFBvc3QsIE15bGFzYW5kcmEgVmlsbGFnZSwgb2ZmIE15c29yZSBSb2FkCisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAgMDU5CisJCQkJSU5ESUEKKworN0MtNEYtQjUgICAoaGV4KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorN0M0RkI1ICAgICAoYmFzZSAxNikJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Ri4sIE5PLjksIFBhcmsgQXZlbnVlIElJLAorCQkJCUhzaW5jaHUgU2NpZW5jZSBQYXJrLAorCQkJCUhzaW5jaHUgLCAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3Qy01NS1FNyAgIChoZXgpCQlZU0ksIEluYy4KKzdDNTVFNyAgICAgKGJhc2UgMTYpCQlZU0ksIEluYy4KKwkJCQkxNzI1IEJyYW5udW0gTGFuZQorCQkJCVllbGxvdyBTcHJpbmdzIE9oaW8gNDUzODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzdDLTYxLTkzICAgKGhleCkJCUhUQyBDb3Jwb3JhdGlvbgorN0M2MTkzICAgICAoYmFzZSAxNikJCUhUQyBDb3Jwb3JhdGlvbgorCQkJCU5vLiAyMywgWGluZ2h1YSBSZC4sIAorCQkJCVRhb3l1YW4gQ2l0eQorCQkJCVRhb3l1YW4gQ291bnR5ICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzdDLTZBLURCICAgKGhleCkJCVNhZmVUb25lIFRlY2hub2xvZ3kgQ28uLEx0ZAorN0M2QURCICAgICAoYmFzZSAxNikJCVNhZmVUb25lIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCVJvb20gMzIzLFpodW91SmkgUGxhemEsTm8uMTYgQW5EZSBSb2FkLEVhc3QgRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDExCisJCQkJQ0hJTkEKKworN0MtNkMtMzkgICAoaGV4KQkJUElYU1lTIFNSTAorN0M2QzM5ICAgICAoYmFzZSAxNikJCVBJWFNZUyBTUkwKKwkJCQlWSUEgREVMTEEgQ1JPQ0UgUk9TU0EsICA0MgorCQkJCVBBRE9WQSBQRCAzNTEyOQorCQkJCUlUQUxZCisKKzdDLTZDLThGICAgKGhleCkJCUFNUyBORVZFIExURAorN0M2QzhGICAgICAoYmFzZSAxNikJCUFNUyBORVZFIExURAorCQkJCUJJTExJTkdUT04gUk9BRAorCQkJCUJVUk5MRVkgTEFOQ0FTSElSRSBCQjExIDVVQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzdDLTZELTYyICAgKGhleCkJCUFwcGxlLCBJbmMKKzdDNkQ2MiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis3Qy02Ri0wNiAgIChoZXgpCQlDYXRlcnBpbGxhciBUcmltYmxlIENvbnRyb2wgVGVjaG5vbG9naWVzCis3QzZGMDYgICAgIChiYXNlIDE2KQkJQ2F0ZXJwaWxsYXIgVHJpbWJsZSBDb250cm9sIFRlY2hub2xvZ2llcworCQkJCTU0NzUgS2VsbGVuYnVyZ2VyIFJkLgorCQkJCURheXRvbiBPSCA0NTQyNAorCQkJCVVOSVRFRCBTVEFURVMKKworN0MtNzYtNzMgICAoaGV4KQkJRU5NQVMgR21iSAorN0M3NjczICAgICAoYmFzZSAxNikJCUVOTUFTIEdtYkgKKwkJCQlIb2x6a29wcGVsd2VnIDIzCisJCQkJS2llbCBTY2hsZXN3aWctSG9sc3RlaW4gMjQyNTEKKwkJCQlHRVJNQU5ZCisKKzdDLTdCLUU0ICAgKGhleCkJCVomIzM5O1NFREFJIEtFTktZVVNITyBDT1JQT1JBVElPTgorN0M3QkU0ICAgICAoYmFzZSAxNikJCVomIzM5O1NFREFJIEtFTktZVVNITyBDT1JQT1JBVElPTgorCQkJCU1laWthaSBzYW5ub21peWEgMm5kIEJsZGcuIDExdGgvZmwuCisJCQkJNzYtMiBLeW9tYWNoaSBDaHVvLWt1CisJCQkJS29iZSBIeW9nbyA2NTAtMDAzNAorCQkJCUpBUEFOCisKKzdDLTdELTQxICAgKGhleCkJCUppbm11eXUgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCis3QzdENDEgICAgIChiYXNlIDE2KQkJSmlubXV5dSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQlSb29tIDEzMiwgQnVpbGRpbmcgMTYsIFRpYW5xaWFvd2FuCisJCQkJWGluaHVhIE5vcnRoIFJvYWQsIFRvbmd6aG91IERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAxMTAxCisJCQkJQ0hJTkEKKworN0MtOEUtRTQgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzdDOEVFNCAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworN0MtQTItOUIgICAoaGV4KQkJRC5TaWduVCBHbWJIICZhbXA7IENvLiBLRworN0NBMjlCICAgICAoYmFzZSAxNikJCUQuU2lnblQgR21iSCAmYW1wOyBDby4gS0cKKwkJCQlNYXJrdHN0ci4gMTAKKwkJCQlLZXJrZW4gIDQ3NjQ3CisJCQkJR0VSTUFOWQorCis3Qy1CNS00MiAgIChoZXgpCQlBQ0VTIFRlY2hub2xvZ3kKKzdDQjU0MiAgICAgKGJhc2UgMTYpCQlBQ0VTIFRlY2hub2xvZ3kKKwkJCQkjOTI4LCBIeXVuZGFpIFZlbnR1cmUgVmlsbGUKKwkJCQk3MTMgU3VzZW8tZG9uZywgS2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUtNTM5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzdDLUJCLTZGICAgKGhleCkJCUNvc2NvIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorN0NCQjZGICAgICAoYmFzZSAxNikJCUNvc2NvIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCSMxMTAxLCBFTkMgRHJlYW0gdG93ZXIsIDMyNy0yNworCQkJCUdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtNzkzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzdDLUM1LTM3ICAgKGhleCkJCUFwcGxlCis3Q0M1MzcgICAgIChiYXNlIDE2KQkJQXBwbGUKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzdDLUNCLTBEICAgKGhleCkJCUFheGVvbiBUZWNobm9sb2dpZXMgSW5jLgorN0NDQjBEICAgICAoYmFzZSAxNikJCUFheGVvbiBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTQ0NSBDYXByaWNvcm4gU3QuCisJCQkJQnJlYSBDYWxpZm9ybmlhIDkyODIxCisJCQkJVU5JVEVEIFNUQVRFUworCis3Qy1DRi1DRiAgIChoZXgpCQlTaGFuZ2hhaSBTRUFSSSBJbnRlbGxpZ2VudCBTeXN0ZW0gQ28uLCBMdGQKKzdDQ0ZDRiAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBTRUFSSSBJbnRlbGxpZ2VudCBTeXN0ZW0gQ28uLCBMdGQKKwkJCQlOby41MDUgV3VuaW5nIFJvYWQsIFB1dHVvIERpc3RyaWN0CisJCQkJU2hhbmdoYWkgIDIwMDA2MworCQkJCUNISU5BCisKKzdDLURBLTg0ICAgKGhleCkJCURvbmduaWFuIE5ldHdvcmtzIEluYy4KKzdDREE4NCAgICAgKGJhc2UgMTYpCQlEb25nbmlhbiBOZXR3b3JrcyBJbmMuCisJCQkJOTAgV2Vuc2FuIFJvYWQsIEJ1aWxkaW5nIDgtQTMwMworCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDAxMgorCQkJCUNISU5BCisKKzdDLURELTIwICAgKGhleCkJCUlPWE9TIFRlY2hub2xvZ2llcyBTLkEuCis3Q0REMjAgICAgIChiYXNlIDE2KQkJSU9YT1MgVGVjaG5vbG9naWVzIFMuQS4KKwkJCQk0IENoZW1pbiBkZSBGb250ZW5haWxsZXMKKwkJCQlHTEFORCBWQVVEIENILTExOTYKKwkJCQlTV0lUWkVSTEFORAorCis3Qy1ERC05MCAgIChoZXgpCQlTaGVuemhlbiBPZ2VtcmF5IFRlY2hub2xvZ3kgQ28uLCBMdGQuCis3Q0REOTAgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gT2dlbXJheSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTMgRmxvb3IsIDkgQnVpbGRpbmcsIE1pbnhpbmcgSW5kdXN0cmlhbCBab25lLAorCQkJCU1pbmthbmcgUm9hZCwgTWluemhpIFN0cmVldCwgQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEzMQorCQkJCUNISU5BCisKKzdDLUUwLTQ0ICAgKGhleCkJCU5FT04gSW5jCis3Q0UwNDQgICAgIChiYXNlIDE2KQkJTkVPTiBJbmMKKwkJCQk1MzQwIEFpcnBvcnQgQm91bGV2YXJkCisJCQkJQm91bGRlciBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworN0MtRUQtOEQgICAoaGV4KQkJTUlDUk9TT0ZUCis3Q0VEOEQgICAgIChiYXNlIDE2KQkJTUlDUk9TT0ZUCisJCQkJT25lIE1pY3Jvc29mdCBXYXkKKwkJCQlSZWRtb25kIFdBIDk4MDUyLTYzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzdDLUVGLTE4ICAgKGhleCkJCUNyZWF0aXZlIFByb2R1Y3QgRGVzaWduIFB0eS4gTHRkLgorN0NFRjE4ICAgICAoYmFzZSAxNikJCUNyZWF0aXZlIFByb2R1Y3QgRGVzaWduIFB0eS4gTHRkLgorCQkJCTgyIFZpY3RvcmlhIFN0cmVldAorCQkJCVNhbmRyaW5naGFtIFZpY3RvcmlhIDMxOTEKKwkJCQlBVVNUUkFMSUEKKworN0MtRjAtNUYgICAoaGV4KQkJQXBwbGUgSW5jCis3Q0YwNUYgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis3Qy1GMC05OCAgIChoZXgpCQlCZWUgQmVhbnMgVGVjaG5vbG9naWVzLCBJbmMuCis3Q0YwOTggICAgIChiYXNlIDE2KQkJQmVlIEJlYW5zIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCVRDSSBCNQorCQkJCTItNi0xIFNlbmdlbgorCQkJCVRzdWt1YmEgQ2l0eSBJYmFyYWtpIDMwNS0wMDQ3CisJCQkJSkFQQU4KKworN0MtRjAtQkEgICAoaGV4KQkJTGlua3dlbGwgVGVsZXN5c3RlbXMgUHZ0IEx0ZAorN0NGMEJBICAgICAoYmFzZSAxNikJCUxpbmt3ZWxsIFRlbGVzeXN0ZW1zIFB2dCBMdGQKKwkJCQkxLTExLTI1Mi8xL0EsIEdvd3JhIEtsYXNzaWMKKwkJCQlCZWd1bXBldAorCQkJCUh5ZGVyYWJhZCBBbmRocmEgUHJhZGVzaCA1MDAwMTYKKwkJCQlJTkRJQQorCis3Qy1GNC0yOSAgIChoZXgpCQlOVVVPIEluYy4gCis3Q0Y0MjkgICAgIChiYXNlIDE2KQkJTlVVTyBJbmMuIAorCQkJCUMgYmxvY2ssIDE4IFNpaHl1YW4gU3QuIEpob25namhlbmcgRGlzdHJpY3QsIAorCQkJCVRhaXBlaSAgMTAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4MC0wMC0xMCAgIChoZXgpCQlBVFQgQkVMTCBMQUJPUkFUT1JJRVMKKzgwMDAxMCAgICAgKGJhc2UgMTYpCQlBVFQgQkVMTCBMQUJPUkFUT1JJRVMKKwkJCQkxMTAwIEVBU1QgV0FSUkVOVklMTEUgUk9BRAorCQkJCU5BUEVSVklMTEUgSUwgNjA1NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzgwLTE0LTQwICAgKGhleCkJCVN1bmxpdCBTeXN0ZW0gVGVjaG5vbG9neSBDb3JwCis4MDE0NDAgICAgIChiYXNlIDE2KQkJU3VubGl0IFN5c3RlbSBUZWNobm9sb2d5IENvcnAKKwkJCQk4RiwgTm8uMTksTGFuZSAxMjAsIFNlYzEsIE5laWh1IFJkLgorCQkJCVRhcGllaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4MC0xNy03RCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzgwMTc3RCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlDQVJSRVRFUkEgQkFTRSBBRVJFQSAjIDU4NTAKKwkJCQlaYXBvcGFuIEphbGlzY28gNDQxMzAKKwkJCQlNRVhJQ08KKworODAtMUYtMDIgICAoaGV4KQkJRWRpbWF4IFRlY2hub2xvZ3kgQ28uIEx0ZC4KKzgwMUYwMiAgICAgKGJhc2UgMTYpCQlFZGltYXggVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCU5vLiAzLCBXdS1DaHVhbiAzcmQgUm9hZCwgV3UtS3UgSW5kdXN0cmlhbCBQYXJrLAorCQkJCVRhaXBlaSBIc2llbiAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4MC0yMi03NSAgIChoZXgpCQlCZWlqaW5nIEJlbnkgV2F2ZSBUZWNobm9sb2d5IENvIEx0ZAorODAyMjc1ICAgICAoYmFzZSAxNikJCUJlaWppbmcgQmVueSBXYXZlIFRlY2hub2xvZ3kgQ28gTHRkCisJCQkJTm8uNTUsIEppYWNodWFuZyBSb2FkCisJCQkJVGFpaHUgVG93bgorCQkJCVRvbmd6aG91IERpc3RyaWN0IEJlaWppbmcgMTAxMTExCisJCQkJQ0hJTkEKKworODAtMkQtRTEgICAoaGV4KQkJU29sYXJicmlkZ2UgVGVjaG5vbG9naWVzCis4MDJERTEgICAgIChiYXNlIDE2KQkJU29sYXJicmlkZ2UgVGVjaG5vbG9naWVzCisJCQkJOTIyOSBXYXRlcmZvcmQgQ2VudHJlIEJsdmQKKwkJCQlCdWlsZGluZyBDLCBTdWl0ZSAxMTAKKwkJCQlBdXN0aW4gVFggNzg3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzgwLTJFLTE0ICAgKGhleCkJCWF6ZXRpIE5ldHdvcmtzIEFHCis4MDJFMTQgICAgIChiYXNlIDE2KQkJYXpldGkgTmV0d29ya3MgQUcKKwkJCQlBbSBCcmFtYnVzY2ggMWEKKwkJCQlMdWVuZW4gTlJXIDQ0NTM2CisJCQkJR0VSTUFOWQorCis4MC0zNC01NyAgIChoZXgpCQlPVCBTeXN0ZW1zIExpbWl0ZWQKKzgwMzQ1NyAgICAgKGJhc2UgMTYpCQlPVCBTeXN0ZW1zIExpbWl0ZWQKKwkJCQlVbml0IDEwMjMsIDEwL0YuLCBMYW5kbWFyayBOb3J0aCwKKwkJCQlTaGV1bmcgU2h1aSwgTi4gVC4gIAorCQkJCUhPTkcgS09ORworCis4MC0zOC1GRCAgIChoZXgpCQlMZWFwRnJvZyBFbnRlcnByaXNlcywgSW5jLgorODAzOEZEICAgICAoYmFzZSAxNikJCUxlYXBGcm9nIEVudGVycHJpc2VzLCBJbmMuCisJCQkJNjQwMSBIb2xpcyBTdHJlZXQKKwkJCQlFbWVyeXZpbGxlIENBIDk0NTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis4MC0zOS1FNSAgIChoZXgpCQlQQVRMSVRFIENPUlBPUkFUSU9OCis4MDM5RTUgICAgIChiYXNlIDE2KQkJUEFUTElURSBDT1JQT1JBVElPTgorCQkJCTE5LTIKKwkJCQlURUNITk9QQVJLCisJCQkJU0FOREEgSFlPVUdPS0VOIDY2OS0xMzM5CisJCQkJSkFQQU4KKworODAtM0ItOUEgICAoaGV4KQkJZ2hlLWNlcyBlbGVjdHJvbmljIGFnCis4MDNCOUEgICAgIChiYXNlIDE2KQkJZ2hlLWNlcyBlbGVjdHJvbmljIGFnCisJCQkJSG9lbWVsc3RyYXNzZSAxNworCQkJCVdhbGQgWkggODYzNgorCQkJCVNXSVRaRVJMQU5ECisKKzgwLTQ3LTMxICAgKGhleCkJCVBhY2tldCBEZXNpZ24sIEluYy4KKzgwNDczMSAgICAgKGJhc2UgMTYpCQlQYWNrZXQgRGVzaWduLCBJbmMuCisJCQkJMjQ1NSBBdWd1c3RpbmUgRHJpdmUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworODAtNEYtNTggICAoaGV4KQkJVGhpbmtFY28sIEluYy4KKzgwNEY1OCAgICAgKGJhc2UgMTYpCQlUaGlua0VjbywgSW5jLgorCQkJCTMwMyBGaWZ0aCBBdmVudWUKKwkJCQkxODAxCisJCQkJTmV3IFlvcmsgTlkgMTAwMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzgwLTUwLTFCICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCis4MDUwMUIgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1OTAKKwkJCQlGSU5MQU5ECisKKzgwLTU4LUM1ICAgKGhleCkJCU5vdmFUZWMgS29tbXVuaWthdGlvbnN0ZWNobmlrIEdtYkgKKzgwNThDNSAgICAgKGJhc2UgMTYpCQlOb3ZhVGVjIEtvbW11bmlrYXRpb25zdGVjaG5payBHbWJICisJCQkJVGVjaG5vbG9naWVwYXJrIDkKKwkJCQk0dGggRmxvb3IKKwkJCQlQYWRlcmJvcm4gTlJXIDMzMTAwCisJCQkJR0VSTUFOWQorCis4MC02NC01OSAgIChoZXgpCQlOaW1idXMgSW5jLgorODA2NDU5ICAgICAoYmFzZSAxNikJCU5pbWJ1cyBJbmMuCisJCQkJMTM1OSBHd2FucHllb25nLWRvbmcsIFl1c2VvbmctZ3UKKwkJCQlTdWl0ZSA2MTkgSGFuc2hpbiBTIG1lY2EKKwkJCQlEYWVqZW9uICAzMDUtNTA5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzgwLTY1LUU5ICAgKGhleCkJCUJlblEgQ29ycG9yYXRpb24KKzgwNjVFOSAgICAgKGJhc2UgMTYpCQlCZW5RIENvcnBvcmF0aW9uCisJCQkJMTYgSmlodSBSb2FkLCBOZWlodQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4MC02Ni0yOSAgIChoZXgpCQlQcmVzY29wZSBUZWNobm9sb2dpZXMgQ08uLExURC4KKzgwNjYyOSAgICAgKGJhc2UgMTYpCQlQcmVzY29wZSBUZWNobm9sb2dpZXMgQ08uLExURC4KKwkJCQkxMkYtMSxOby4xOTIsU2VjIDIsQ2h1bmcgSHNpbiBSb2FkCisJCQkJSHNpbiBUaWVuIENpdHkgVGFpcGVpIENvdW50eSAyMzE0NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworODAtNkMtQkMgICAoaGV4KQkJTkVUIE5ldyBFbGVjdHJvbmljIFRlY2hub2xvZ3kgR21iSAorODA2Q0JDICAgICAoYmFzZSAxNikJCU5FVCBOZXcgRWxlY3Ryb25pYyBUZWNobm9sb2d5IEdtYkgKKwkJCQlMZXJjaGVuYmVyZyA3CisJCQkJRmlubmluZyBCYXZhcmlhbiA4NjkyMworCQkJCUdFUk1BTlkKKworODAtNzEtMUYgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworODA3MTFGICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlCisJCQkJU3Vubnl2YWxlICBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworODAtN0QtMUIgICAoaGV4KQkJTmVvc3lzdGVtIENvLiBMdGQuCis4MDdEMUIgICAgIChiYXNlIDE2KQkJTmVvc3lzdGVtIENvLiBMdGQuCisJCQkJNC0xOS0xMiBUYWthbworCQkJCURhemFpZnUtc2hpIEZ1a3Vva2EgODE4LTAxMjIKKwkJCQlKQVBBTgorCis4MC04MS1BNSAgIChoZXgpCQlUT05HUUlORyBDT01NVU5JQ0FUSU9OIEVRVUlQTUVOVCAoU0hFTlpIRU4pIENvLixMdGQKKzgwODFBNSAgICAgKGJhc2UgMTYpCQlUT05HUUlORyBDT01NVU5JQ0FUSU9OIEVRVUlQTUVOVCAoU0hFTlpIRU4pIENvLixMdGQKKwkJCQlUb25ncWluZyBJbmR1c3RyeSBQYXJrLGppdXdlaSx4aXhpYW5nIFRvd24sQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyNgorCQkJCUNISU5BCisKKzgwLTkxLTJBICAgKGhleCkJCUxpaCBSb25nIGVsZWN0cm9uaWMgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKzgwOTEyQSAgICAgKGJhc2UgMTYpCQlMaWggUm9uZyBlbGVjdHJvbmljIEVudGVycHJpc2UgQ28uLCBMdGQuCisJCQkJMkYsIE5vLiAyLCBMYW5lIDM4NywgSHNpbiBTaHUgUm9hZAorCQkJCUhzaW4gQ2h1YW5nIFRhaXBlaSAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzgwLTkxLUMwICAgKGhleCkJCUFnaWxlTWVzaCwgSW5jLgorODA5MUMwICAgICAoYmFzZSAxNikJCUFnaWxlTWVzaCwgSW5jLgorCQkJCTE2NzEgSW50ZXJuYXRpb25hbCBQa3d5CisJCQkJU3VpdGUgMTEzCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworODAtOUItMjAgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis4MDlCMjAgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis4MC1BMS1ENyAgIChoZXgpCQlTaGFuZ2hhaSBEYXJlR2xvYmFsIFRlY2hub2xvZ2llcyBDby4sTHRkIAorODBBMUQ3ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIERhcmVHbG9iYWwgVGVjaG5vbG9naWVzIENvLixMdGQgCisJCQkJMjJGLEluZm8gVGVjaCBCdWlsZGluZyxOby4xNTU1LEtvbmdqaWFuZyBSZC4KKwkJCQlTaGFuZ2hhaSAgMjAwMDkyCisJCQkJQ0hJTkEKKworODAtQjItODkgICAoaGV4KQkJRm9yd29ybGQgRWxlY3Ryb25pY3MgTHRkLgorODBCMjg5ICAgICAoYmFzZSAxNikJCUZvcndvcmxkIEVsZWN0cm9uaWNzIEx0ZC4KKwkJCQlOby4xNiBLZXl1YW4gMm5kIFJkLiwgU2l0dW4gRGlzdHJpY3QKKwkJCQlUYWljaHVuZyBDaXR5ICA4ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzgwLUIzLTJBICAgKGhleCkJCUFsc3RvbSBHcmlkCis4MEIzMkEgICAgIChiYXNlIDE2KQkJQWxzdG9tIEdyaWQKKwkJCQlTdCBMZW9uYXJkJ3MgQXZlCisJCQkJU3RhZmZvcmQgIFN0YWZmb3Jkc2hpcmUgU1QxNyA0TFgKKwkJCQlVTklURUQgS0lOR0RPTQorCis4MC1CQS1BQyAgIChoZXgpCQlUZWxlQWRhcHQgTHRkCis4MEJBQUMgICAgIChiYXNlIDE2KQkJVGVsZUFkYXB0IEx0ZAorCQkJCUF4aXMgNQorCQkJCVJob2RlcyBXYXkKKwkJCQlXYXRmb3JkIEhlcnRmb3Jkc2hpcmUgV0QyNDRZVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzgwLUM2LTNGICAgKGhleCkJCVJlbWVjIEJyb2FkYmFuZCBXaXJlbGVzcyAsIExMQworODBDNjNGICAgICAoYmFzZSAxNikJCVJlbWVjIEJyb2FkYmFuZCBXaXJlbGVzcyAsIExMQworCQkJCTE3MDM0IENhbWlubyBTYW4gQmVybmFyZG8KKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzgwLUM2LUFCICAgKGhleCkJCVRlY2huaWNvbG9yIFVTQSBJbmMuCis4MEM2QUIgICAgIChiYXNlIDE2KQkJVGVjaG5pY29sb3IgVVNBIEluYy4KKwkJCQkxMDEgV2VzdCAxMDNyZCBTdHJlZXQKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzgwLUM2LUNBICAgKGhleCkJCUVuZGlhbiBzLnIubC4KKzgwQzZDQSAgICAgKGJhc2UgMTYpCQlFbmRpYW4gcy5yLmwuCisJCQkJUGlsbGhvZiA0NworCQkJCUZyYW5nYXJ0byBCb2x6YW5vIDM5MDEwCisJCQkJSVRBTFkKKworODAtQzgtNjIgICAoaGV4KQkJT3BlbnBlYWssIEluYworODBDODYyICAgICAoYmFzZSAxNikJCU9wZW5wZWFrLCBJbmMKKwkJCQkxNzUwIENsaW50IE1vb3JlIFJkCisJCQkJQm9jYSBSYXRvbiBGbG9yaWRhIDMzNDg3CisJCQkJVU5JVEVEIFNUQVRFUworCis4MC1EMC0xOSAgIChoZXgpCQlFbWJlZCwgSW5jCis4MEQwMTkgICAgIChiYXNlIDE2KQkJRW1iZWQsIEluYworCQkJCTQxMCBHcmVhdCBSb2FkCisJCQkJTGl0dGxldG9uIE1BIDAxNDYwCisJCQkJVU5JVEVEIFNUQVRFUworCis4MC1FRS03MyAgIChoZXgpCQlTaHV0dGxlIEluYy4KKzgwRUU3MyAgICAgKGJhc2UgMTYpCQlTaHV0dGxlIEluYy4KKwkJCQlOby4gMzAgTGFuZSA3NiwgUmVpIEt1YW5nIFJkCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzgwLUY1LTkzICAgKGhleCkJCUlSQ08gU2lzdGVtYXMgZGUgVGVsZWNvbXVuaWNhY2lpP29lbiBTLkEuCis4MEY1OTMgICAgIChiYXNlIDE2KQkJSVJDTyBTaXN0ZW1hcyBkZSBUZWxlY29tdW5pY2FjaWk/b2VuIFMuQS4KKwkJCQlWaWEgU2VyZ2lhIDk4CisJCQkJTWF0YXJpP29lIEJhcmNlbG9uYSAwODMwMgorCQkJCVNQQUlOCisKKzgwLUZCLTA2ICAgKGhleCkJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorODBGQjA2ICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorCQkJCUIxLTcsSHVhd2VpIEluZHVzdHJpYWwgQmFzZSxCYW50aWFuLExvbmdnYW5nCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODEyOQorCQkJCUNISU5BCisKKzg0LTE4LTg4ICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzg0MTg4OCAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OSAKKwkJCQlVTklURUQgU1RBVEVTCisKKzg0LTIxLTQxICAgKGhleCkJCVNoZW56aGVuIEdpbndhdmUgVGVjaG5vbG9naWVzIEx0ZC4KKzg0MjE0MSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBHaW53YXZlIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJNC9GLFIyLUEsSGlnaC1UZWNoIEluZHVzdHJpYWwgUGFyaworCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis4NC0yNy1DRSAgIChoZXgpCQlDb3Jwb3JhdGlvbiBvZiB0aGUgUHJlc2lkaW5nIEJpc2hvcCBvZiBUaGUgQ2h1cmNoIG9mIEplc3VzIENocmlzdCBvZiBMYXR0ZXItZGF5IFNhaW50cworODQyN0NFICAgICAoYmFzZSAxNikJCUNvcnBvcmF0aW9uIG9mIHRoZSBQcmVzaWRpbmcgQmlzaG9wIG9mIFRoZSBDaHVyY2ggb2YgSmVzdXMgQ2hyaXN0IG9mIExhdHRlci1kYXkgU2FpbnRzCisJCQkJQXVkaW92aXN1YWwgRW5naW5lZXJpbmcgLSAyTEwKKwkJCQk1MCBFYXN0IE5vcnRoIFRlbXBsZQorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTUwCisJCQkJVU5JVEVEIFNUQVRFUworCis4NC0yOS0xNCAgIChoZXgpCQlFTVBPUklBIFRFTEVDT00gUHJvZHVrdGlvbnMtIHVuZCBWZXJ0cmllYnNnZXNtYkggJiBDbyBLRworODQyOTE0ICAgICAoYmFzZSAxNikJCUVNUE9SSUEgVEVMRUNPTSBQcm9kdWt0aW9ucy0gdW5kIFZlcnRyaWVic2dlc21iSCAmIENvIEtHCisJCQkJSW5kdXN0cmllemVpbGUgMzYsIAorCQkJCUxpbnogIDQwMjAKKwkJCQlBVVNUUklBCisKKzg0LTJCLTJCICAgKGhleCkJCURlbGwgSW5jLgorODQyQjJCICAgICAoYmFzZSAxNikJCURlbGwgSW5jLgorCQkJCU9uZSBEZWxsIFdheSwgTVMgUlI1LTQ1CisJCQkJUm91bmQgUm9jayAgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzg0LTQ4LTIzICAgKGhleCkJCVdPWFRFUiBURUNITk9MT0dZIENvLiBMdGQKKzg0NDgyMyAgICAgKGJhc2UgMTYpCQlXT1hURVIgVEVDSE5PTE9HWSBDby4gTHRkCisJCQkJMjNGIERvdXNoaXlhbmdndWFuZywgQ2hlZ29uZ21pYW8KKwkJCQlGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiAgNTE4MDQwCisJCQkJQ0hJTkEKKworODQtNUQtRDcgICAoaGV4KQkJU2hlbnpoZW4gTmV0Y29tIEVsZWN0cm9uaWNzIENvLixMdGQKKzg0NURENyAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBOZXRjb20gRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCTgvRiwxIEJ1aWxkaW5nLEZpbmFuY2UgQmFzZSxOby44LEtlZmEgUm9hZCxIaWdoLVRlY2ggUGFyaworCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis4NC02RS1CMSAgIChoZXgpCQlQYXJrIEFzc2lzdCBMTEMKKzg0NkVCMSAgICAgKGJhc2UgMTYpCQlQYXJrIEFzc2lzdCBMTEMKKwkJCQkxMTEgVzI4dGggU3RyZWV0CisJCQkJU3VpdGUgMkIKKwkJCQlOZXcgWW9yayBOWSAxMDAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworODQtOTAtMDAgICAoaGV4KQkJQXJub2xkICZhbXA7IFJpY2h0ZXIgQ2luZSBUZWNobmlrCis4NDkwMDAgICAgIChiYXNlIDE2KQkJQXJub2xkICZhbXA7IFJpY2h0ZXIgQ2luZSBUZWNobmlrCisJCQkJVHVlcmtlbnN0cmFzc2UgODkKKwkJCQlNdW5pY2ggQmF2YXJpYSA4MDc5OQorCQkJCUdFUk1BTlkKKworODQtOTctQjggICAoaGV4KQkJTWVtamV0IEluYy4KKzg0OTdCOCAgICAgKGJhc2UgMTYpCQlNZW1qZXQgSW5jLgorCQkJCTE1OTIwIEJlcm5hcmRvIENlbnRlciBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyNworCQkJCVVOSVRFRCBTVEFURVMKKworODQtQTgtRTQgICAoaGV4KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorODRBOEU0ICAgICAoYmFzZSAxNikJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCis4NC1BOS05MSAgIChoZXgpCQlDeWJlciBUcmFucyBKYXBhbiBDby4sTHRkLgorODRBOTkxICAgICAoYmFzZSAxNikJCUN5YmVyIFRyYW5zIEphcGFuIENvLixMdGQuCisJCQkJNkYgQmx1ZWJlbGwgQmxkZworCQkJCTItMTUtOSBOaXNoaS1Hb3RhbmFkYQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAzMQorCQkJCUpBUEFOCisKKzg0LUM3LTI3ICAgKGhleCkJCUdub2RhbCBMdGQKKzg0QzcyNyAgICAgKGJhc2UgMTYpCQlHbm9kYWwgTHRkCisJCQkJMTc4IC0gMTgwIEhvdHdlbGwgUm9hZAorCQkJCUJyaXN0b2wgIEJTOCA0UlAKKwkJCQlVTklURUQgS0lOR0RPTQorCis4NC1DNy1BOSAgIChoZXgpCQlDM1BPIFMuQS4KKzg0QzdBOSAgICAgKGJhc2UgMTYpCQlDM1BPIFMuQS4KKwkJCQlBbGVqYW5kcm8gR29pY29lY2hlYSA2IExvY2FsIDkKKwkJCQlTYW50IEp1c3QgRGVzdmVybiBCYXJjZWxvbmEgRVMwODk2MAorCQkJCVNQQUlOCisKKzg0LUQ5LUM4ICAgKGhleCkJCVVuaXBhdHRlcm4gQ28uLAorODREOUM4ICAgICAoYmFzZSAxNikJCVVuaXBhdHRlcm4gQ28uLAorCQkJCTE2Ri4sIE5vLjMwLiwgQmVpcGluZyBFLiBSZC4sIFpob25nemhlbmcgRGlzdC4sCisJCQkJVGFpcGVpICAxMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzg0LURCLTJGICAgKGhleCkJCVNpZXJyYSBXaXJlbGVzcyBJbmMKKzg0REIyRiAgICAgKGJhc2UgMTYpCQlTaWVycmEgV2lyZWxlc3MgSW5jCisJCQkJMTM4MSBXaXJlbGVzcyBXYXkKKwkJCQlSaWNobW9uZCBCQyBWNlYgM0E0CisJCQkJQ0FOQURBCisKKzg0LURFLTNEICAgKGhleCkJCUNyeXN0YWwgVmlzaW9uIEx0ZAorODRERTNEICAgICAoYmFzZSAxNikJCUNyeXN0YWwgVmlzaW9uIEx0ZAorCQkJCUxpb24gVGVjaG5vbG9neSBwYXJrCisJCQkJU3RhdGlvbiBSb2FkIGVhc3QKKwkJCQlXaGl0dGxlc2ZvcmQvIENhbWJyaWRnZSBDYW1icyBDQjIyIDRXTAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzg0LUVBLTk5ICAgKGhleCkJCVZpZXdvcmtzCis4NEVBOTkgICAgIChiYXNlIDE2KQkJVmlld29ya3MKKwkJCQk2RiBTdW50ZWNoY2l0eSAyLDMwNy0yIFNhbmdkYWV3b24tZG9uZywgSnVuZ3dvbi1ndQorCQkJCVNlb25nbmFtICBHeWVvbmdnaSA0NjItODA2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzg0LUY2LTRDICAgKGhleCkJCUNyb3NzIFBvaW50IEJWCis4NEY2NEMgICAgIChiYXNlIDE2KQkJQ3Jvc3MgUG9pbnQgQlYKKwkJCQlXYWFuZGVyd2VnIDEyCisJCQkJRW1tZW4gRHJlbnRoZSA3ODEyIEhaCisJCQkJTkVUSEVSTEFORFMKKworODgtMTgtQUUgICAoaGV4KQkJVGFtcm9uIENvLiwgTHRkCis4ODE4QUUgICAgIChiYXNlIDE2KQkJVGFtcm9uIENvLiwgTHRkCisJCQkJMTM4NSxIYXN1bnVtYSwgTWludW1hLWt1CisJCQkJU2FpdGFtYS1zaGkgU2FpdGFtYSAzMzctODU1NgorCQkJCUpBUEFOCisKKzg4LTIxLUUzICAgKGhleCkJCU5lYnVzZW5zLCBTLkwuCis4ODIxRTMgICAgIChiYXNlIDE2KQkJTmVidXNlbnMsIFMuTC4KKwkJCQlDLyBBZGFqYSBTL04sIEVkaWZpY2lvIE0yCisJCQkJUGFycXVlIGNpZW50aWZpY28gZGUgbGEgVVNBTAorCQkJCVZpbGxhbWF5b3IgZGUgbGEgQXJtdWk/b2VhIFNhbGFtYW5jYSAzNzE4NQorCQkJCVNQQUlOCisKKzg4LTI1LTJDICAgKGhleCkJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzg4MjUyQyAgICAgKGJhc2UgMTYpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYuLCBOTy45LCBQYXJrIEF2ZW51ZSBJSSAsCisJCQkJSHNpbmNodSBTY2llbmNlIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzg4LTQxLUMxICAgKGhleCkJCU9SQklTQVQgREEgQU1BWk9OSUEgSU5EIEUgQUVST0wgU0EKKzg4NDFDMSAgICAgKGJhc2UgMTYpCQlPUkJJU0FUIERBIEFNQVpPTklBIElORCBFIEFFUk9MIFNBCisJCQkJQVYgU0hJU0hJTUEgSElGVU1JLCAyOTExCisJCQkJVVJCQU5PVkEKKwkJCQlTQU8gSk9TRSBET1MgQ0FNUE9TIFNBTyBQQVVMTyAxMjI0NC0wMDAKKwkJCQlCUkFaSUwKKworODgtNDMtRTEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworODg0M0UxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworODgtNEItMzkgICAoaGV4KQkJU2llbWVucyBBRywgSGVhbHRoY2FyZSBTZWN0b3IKKzg4NEIzOSAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEFHLCBIZWFsdGhjYXJlIFNlY3RvcgorCQkJCUhlbmtlc3RyYXNzZSAxMjcKKwkJCQlFcmxhbmdlbiBCYXZhcmlhIDkxMDUyCisJCQkJR0VSTUFOWQorCis4OC01My0yRSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzg4NTMyRSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzg4LTUzLUQ0ICAgKGhleCkJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKzg4NTNENCAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis4OC04Ni1BMCAgIChoZXgpCQlTaW10b24gVGVjaG5vbG9naWVzLCBMdGQuCis4ODg2QTAgICAgIChiYXNlIDE2KQkJU2ltdG9uIFRlY2hub2xvZ2llcywgTHRkLgorCQkJCTIgVGFpc2hhbiBSb2FkLCBCdWlsZGluZyBDLCAzcmQgRmxvb3IKKwkJCQlXdXhpLCAgUHJvdmluY2Ugb2YgSmlhbmdzdSwgIDIxNDAyOAorCQkJCUNISU5BCisKKzg4LTg3LTE3ICAgKGhleCkJCUNBTk9OIElOQy4KKzg4ODcxNyAgICAgKGJhc2UgMTYpCQlDQU5PTiBJTkMuCisJCQkJMy0zMC0yLFNoaW1vbWFydWtvIE9odGEtS3UKKwkJCQlUb2t5byAgMTQ2LTg1MDEKKwkJCQlKQVBBTgorCis4OC04Qi01RCAgIChoZXgpCQlTdG9yYWdlIEFwcGxpYW5jZSBDb3Jwb3JhdGlvbiAKKzg4OEI1RCAgICAgKGJhc2UgMTYpCQlTdG9yYWdlIEFwcGxpYW5jZSBDb3Jwb3JhdGlvbiAKKwkJCQkyOSBTdSBaaG91IEppZSwgSGFpZGlhbiBEaXN0LgorCQkJCVN1aXRlIDYwMS02MDMKKwkJCQlCZWlqaW5nICAgMTAwMDgwCisJCQkJQ0hJTkEKKworODgtOEMtMTkgICAoaGV4KQkJQnJhZHkgQ29ycCBBc2lhIFBhY2lmaWMgTHRkCis4ODhDMTkgICAgIChiYXNlIDE2KQkJQnJhZHkgQ29ycCBBc2lhIFBhY2lmaWMgTHRkCisJCQkJMSwgS2FraSBCdWtpdCBDcmVzY2VudAorCQkJCTQxNjIzNgorCQkJCVNJTkdBUE9SRQorCis4OC05MS1ERCAgIChoZXgpCQlSYWNrdGl2aXR5Cis4ODkxREQgICAgIChiYXNlIDE2KQkJUmFja3Rpdml0eQorCQkJCUhlcnRzdG9rd2VnIDUKKwkJCQlUZXJuYXQgRmxhbmRlcnMgMTc0MQorCQkJCUJFTEdJVU0KKworODgtOTQtRjkgICAoaGV4KQkJR2VtaWNvbSBUZWNobm9sb2d5LCBJbmMuCis4ODk0RjkgICAgIChiYXNlIDE2KQkJR2VtaWNvbSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTZGLCBCdWlsZGluZyBCLCBOby4gOTgsIFNlYyAxLCBIc2luLVRhaS1XdSBSZC4KKwkJCQlIc2ktQ2hpaCBjaXR5IFRhaXBlaSAyMjEwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworODgtOTUtQjkgICAoaGV4KQkJVW5pZmllZCBQYWNrZXQgU3lzdGVtcyBDcm9wCis4ODk1QjkgICAgIChiYXNlIDE2KQkJVW5pZmllZCBQYWNrZXQgU3lzdGVtcyBDcm9wCisJCQkJMUYuLCBObzMyLExhbmUgMTUsU0VDIDYsIE1pblF1YW4gRSBSZC4sIAorCQkJCVRhaXBlaSBOZWlodSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzg4LTk3LURGICAgKGhleCkJCUVudHJ5cGFzcyBDb3Jwb3JhdGlvbiBTZG4uIEJoZC4KKzg4OTdERiAgICAgKGJhc2UgMTYpCQlFbnRyeXBhc3MgQ29ycG9yYXRpb24gU2RuLiBCaGQuCisJCQkJTm8uNDAsIEphbGFuIFRQUCAxLzEwLAorCQkJCVRhbWFuIEluZHVzdHJpIFB1Y2hvbmcsIEJhdHUgMTIsIEphbGFuIAorCQkJCVB1Y2hvbmcgU2VsYW5nb3IgRGFydWwgRWhzYW4gNDcxMDAKKwkJCQlNQUxBWVNJQQorCis4OC05OC0yMSAgIChoZXgpCQlURVJBT04KKzg4OTgyMSAgICAgKGJhc2UgMTYpCQlURVJBT04KKwkJCQkyRiBTZW9oYW4gQmxkZy4sIDE1NTItMTAsIFNlb2Noby1Eb25nLCBTZW9jaG8tR3UsCisJCQkJU2VvdWwgIDEzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworODgtOUYtRkEgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorODg5RkZBICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQkgTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgMjAxNjEzCisJCQkJQ0hJTkEKKworODgtQTUtQkQgICAoaGV4KQkJUVBDT00gSU5DLgorODhBNUJEICAgICAoYmFzZSAxNikJCVFQQ09NIElOQy4KKwkJCQk2MDMwIE5XIDk5IEFWRQorCQkJCVNVSVRFIDQwNAorCQkJCURPUkFMIEZMT1JJREEgMzMxNzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzg4LUFDLUMxICAgKGhleCkJCUdlbmVyaXRvbiBDby4sIEx0ZC4gCis4OEFDQzEgICAgIChiYXNlIDE2KQkJR2VuZXJpdG9uIENvLiwgTHRkLiAKKwkJCQk4Ri0xLCBOby4gODEsIFNodWlsaSBSZC4sIAorCQkJCUhzaW5jaHUgQ2l0eSwgICAzMDA1OSAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzg4LUFFLTFEICAgKGhleCkJCUNPTVBBTCBJTkZPUk1BVElPTihLVU5TSEFOKUNPLixMVEQKKzg4QUUxRCAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04oS1VOU0hBTilDTy4sTFRECisJCQkJTk8uIDI1LCBUSEUgM1JEIFNUUkVFVCBLVU5TSEFOIEVYUE9SVCBQUk9DRVNTSU5HIFpPTkUKKwkJCQlLVU5TSEFOIFNVWkhPVSAyMTUzMDAKKwkJCQlDSElOQQorCis4OC1CMS02OCAgIChoZXgpCQlEZWx0YSBDb250cm9sIEdtYkgKKzg4QjE2OCAgICAgKGJhc2UgMTYpCQlEZWx0YSBDb250cm9sIEdtYkgKKwkJCQlSb25kb3JmZXIgSGF1cHRzdHIuIDMzCisJCQkJQ29sb2duZSBOUlcgNTA5OTcgCisJCQkJR0VSTUFOWQorCis4OC1CNi0yNyAgIChoZXgpCQlHZW1iaXJkIEV1cm9wZSBCVgorODhCNjI3ICAgICAoYmFzZSAxNikJCUdlbWJpcmQgRXVyb3BlIEJWCisJCQkJV2l0dGV2cm91d2VuIDU2CisJCQkJQWxtZXJlIEZsZXZvbGFuZCAxMzU4Q0QKKwkJCQlORVRIRVJMQU5EUworCis4OC1CQS03RiAgIChoZXgpCQlRZmllZG5ldCBDby4sIEx0ZC4KKzg4QkE3RiAgICAgKGJhc2UgMTYpCQlRZmllZG5ldCBDby4sIEx0ZC4KKwkJCQkjMjA0IEtKIEJsZGcuIERhZUNoaS1Eb25nCisJCQkJR2FuZ05hbS1HdQorCQkJCVNlb3VsICAxMzUtODQ3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzg4LUJGLUQ1ICAgKGhleCkJCVNpbXBsZSBBdWRpbyBMdGQKKzg4QkZENSAgICAgKGJhc2UgMTYpCQlTaW1wbGUgQXVkaW8gTHRkCisJCQkJQ2FydHNpZGUgSG91c2UKKwkJCQkxIENsYXJrc3RvbiBSb2FkCisJCQkJR2xhc2dvdyAgRzQ0IDRFRgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzg4LUM2LTYzICAgKGhleCkJCUFwcGxlIEluYworODhDNjYzICAgICAoYmFzZSAxNikJCUFwcGxlIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworODgtREQtNzkgICAoaGV4KQkJVm9sdGFpcmUKKzg4REQ3OSAgICAgKGJhc2UgMTYpCQlWb2x0YWlyZQorCQkJCTEzLCBaYXJjaGluIFN0CisJCQkJUmFhbmFuYSAgNDM2NjIKKwkJCQlJU1JBRUwKKworODgtRTAtQTAgICAoaGV4KQkJU2hlbnpoZW4gVmlzaW9uU1RPUiBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKzg4RTBBMCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBWaXNpb25TVE9SIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCTEyL0YsIEVhc3QgVG93ZXIsTmFuc2hhbiBTb2Z0d2FyZSBQYXJrCisJCQkJMTAxMjggU2hlbm5hbiBCbHZkCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzg4LUVELTFDICAgKGhleCkJCUN1ZG8gQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKzg4RUQxQyAgICAgKGJhc2UgMTYpCQlDdWRvIENvbW11bmljYXRpb24gQ28uLCBMdGQuCisJCQkJMTBGIEFyaXJhbmdUViAxNDY3LTgwLCBTZW9jaG8tM2RvbmcsIFNlb2Noby1ndQorCQkJCVNlb3VsICAxMzctODY4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzg4LUYwLTc3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzg4RjA3NyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis4OC1GRC0xNSAgIChoZXgpCQlMSU5FRVlFIENPLiwgTFRECis4OEZEMTUgICAgIChiYXNlIDE2KQkJTElORUVZRSBDTy4sIExURAorCQkJCTVGIE1hcnVmdWt1IEJsZGcuIDM5LTEgS2FyYWhhc2hpCisJCQkJTmlzaGloaXJhZ2FraS1jaG8sIE1pbmFtaS1rdQorCQkJCUt5b3RvICA2MDEtODQ2OAorCQkJCUpBUEFOCisKKzhDLTExLUNCICAgKGhleCkJCUFCVVMgU2VjdXJpdHktQ2VudGVyIEdtYkggJiBDby4gS0cKKzhDMTFDQiAgICAgKGJhc2UgMTYpCQlBQlVTIFNlY3VyaXR5LUNlbnRlciBHbWJIICYgQ28uIEtHCisJCQkJTGlua2VyIEtyZXV0aHdlZyA1CisJCQkJQWZmaW5nIC8gTXVlaGxoYXVzZW4gQmF2YXJpYSA4NjQ0NAorCQkJCUdFUk1BTlkKKworOEMtMUYtOTQgICAoaGV4KQkJUkYgU3VyZ2ljYWwgU3lzdGVtIEluYy4gCis4QzFGOTQgICAgIChiYXNlIDE2KQkJUkYgU3VyZ2ljYWwgU3lzdGVtIEluYy4gCisJCQkJOTc0MCBBcHBhbG9vc2EgUm9hZCAKKwkJCQlTdWl0ZSAxNTAgCisJCQkJU2FuIERpZWdvICBDQSA5MjEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworOEMtMjctOEEgICAoaGV4KQkJVm9jb2xsZWN0IEluYworOEMyNzhBICAgICAoYmFzZSAxNikJCVZvY29sbGVjdCBJbmMKKwkJCQk3MDMgUm9kaSBSb2FkCisJCQkJUGl0dHNidXJnaCBQYSAxNTIzNQorCQkJCVVOSVRFRCBTVEFURVMKKworOEMtNDQtMzUgICAoaGV4KQkJU2hhbmdoYWkgQnJvYWRNb2JpIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzhDNDQzNSAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBCcm9hZE1vYmkgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCVJtLiA5MDEsIEJsZC4gOSwgTm8uMTUxNSBHdW1laSBSZCwgWHVodWkgRGlzdHJpY3QKKwkJCQlTaGFuZ2hhaSAgMjAwMjMzCisJCQkJQ0hJTkEKKworOEMtNEQtRUEgICAoaGV4KQkJQ2VyaW8gQ29ycG9yYXRpb24KKzhDNERFQSAgICAgKGJhc2UgMTYpCQlDZXJpbyBDb3Jwb3JhdGlvbgorCQkJCTJGLiwgTm8uMTA1LCBNaW5jeXVhbiBSZC4sIFNpbmRpYW4gQ2l0eQorCQkJCVRhaXBlaSBDb3VudHkgIDIzMTQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4Qy01MS0wNSAgIChoZXgpCQlTaGVuemhlbiBpcmVhZHlnbyBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENPLixMVEQuCis4QzUxMDUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gaXJlYWR5Z28gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDTy4sTFRELgorCQkJCVJvb20gMDIsMTFGLERFU0FZIEJ1aWxkaW5nLE5vLjEgSGktVGVjaCBTb3V0aCBSb2FkCisJCQkJU2hlbnpoZW4gIDUxODA1NworCQkJCUNISU5BCisKKzhDLTUzLUY3ICAgKGhleCkJCUEmRCBFTkdJTkVFUklORyBDTy4sIExURC4KKzhDNTNGNyAgICAgKGJhc2UgMTYpCQlBJkQgRU5HSU5FRVJJTkcgQ08uLCBMVEQuCisJCQkJMzM2LTYgRGFuZ3NhbmRvbmcgNi1nYSwgWWVvbmdkZXVuZ3BvLWd1CisJCQkJU2VvdWwgIDE1MC04MTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworOEMtNTQtMUQgICAoaGV4KQkJTEdFIAorOEM1NDFEICAgICAoYmFzZSAxNikJCUxHRSAKKwkJCQk2MC0zOSAsIEthc2FuIC1kb25nICwgR3VtY2hlb24tZ3UuCisJCQkJU2VvdWwgICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzhDLTU2LUM1ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorOEM1NkM1ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzhDLTU4LTc3ICAgKGhleCkJCUFwcGxlLCBJbmMuCis4QzU4NzcgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzhDLTU5LThCICAgKGhleCkJCUMgVGVjaG5vbG9naWVzIEFCCis4QzU5OEIgICAgIChiYXNlIDE2KQkJQyBUZWNobm9sb2dpZXMgQUIKKwkJCQlUcmFrdG9ydmFnZW4gMTEKKwkJCQlMdW5kIFNrYW5lIDIyNiA2MAorCQkJCVNXRURFTgorCis4Qy01Qy1BMSAgIChoZXgpCQlkLWJyb2FkLElOQworOEM1Q0ExICAgICAoYmFzZSAxNikJCWQtYnJvYWQsSU5DCisJCQkJMi0xMi0zIFNoaW5Zb2tvaGFtYSBLb3Vob2t1LUt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjIyLTAwMzMKKwkJCQlKQVBBTgorCis4Qy01Ri1ERiAgIChoZXgpCQlCZWlqaW5nIFJhaWx3YXkgU2lnbmFsIEZhY3RvcnkKKzhDNUZERiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFJhaWx3YXkgU2lnbmFsIEZhY3RvcnkKKwkJCQlOby4yIFNpY3VuIFhpbHUgTGFuZ2ZhLEh1YW5nY3VuLAorCQkJCURheGluZyBBcmVhLAorCQkJCUJlaWlqbmcgIDEwMjYxMworCQkJCUNISU5BCisKKzhDLTY0LTBCICAgKGhleCkJCWh0dHA6Ly9zdGFuZGFyZHMuaWVlZS5vcmcvYWJvdXQvYm9nL3NwcG10L3RhcmdldD0lMjJfYmxhbmslMjIKKzhDNjQwQiAgICAgKGJhc2UgMTYpCQlodHRwOi8vc3RhbmRhcmRzLmllZWUub3JnL2Fib3V0L2JvZy9zcHBtdC90YXJnZXQ9JTIyX2JsYW5rJTIyCisJCQkJVHJ6YXNrYSBjZXN0YSA1MTUKKwkJCQlCcmV6b3ZpY2EgcHJpIExqdWJsamFuaSAgU0ktMTM1MQorCQkJCVNMT1ZFTklBCisKKzhDLTY0LTIyICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCis4QzY0MjIgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworOEMtNzEtRjggICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCis4QzcxRjggICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzhDLTczLTZFICAgKGhleCkJCUZ1aml0c3UgTGltaXRlZAorOEM3MzZFICAgICAoYmFzZSAxNikJCUZ1aml0c3UgTGltaXRlZAorCQkJCU11c2FzaGkta29zdWdpIFRvd2VyIFBsYWNlIEJsZGcuLAorCQkJCTQwMywgS29zdWdpLWNobyAxLWNob21lLE5ha2FoYXJhLWt1CisJCQkJS2F3YXNha2kgS2FuYWdhd2EgMjExLTAwNjMKKwkJCQlKQVBBTgorCis4Qy03Qi05RCAgIChoZXgpCQlBcHBsZQorOEM3QjlEICAgICAoYmFzZSAxNikJCUFwcGxlCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis4Qy03Qy1CNSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCis4QzdDQjUgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgICAyMDE2MTMgCisJCQkJQ0hJTkEKKworOEMtN0MtRkYgICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCis4QzdDRkYgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJMTMwIEhvbGdlciBXYXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworOEMtN0UtQjMgICAoaGV4KQkJTHl0cm8sIEluYy4KKzhDN0VCMyAgICAgKGJhc2UgMTYpCQlMeXRybywgSW5jLgorCQkJCTIwMCBXLiBFdmVseW4gQXZlLiwgU3VpdGUgMTIwCisJCQkJTW91bnRhaW4gVmlldyBDYWxpZm9ybmlhIDk0MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCis4Qy04Mi1BOCAgIChoZXgpCQlJbnNpZ21hIFRlY2hub2xvZ3kgQ28uLEx0ZAorOEM4MkE4ICAgICAoYmFzZSAxNikJCUluc2lnbWEgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJTm8uMjI2IFRpYW5tdXNoYW4gUm9hZCwgCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDAwCisJCQkJQ0hJTkEKKworOEMtODQtMDEgICAoaGV4KQkJUFJJVkFURQorOEM4NDAxICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCis4Qy04OS1BNSAgIChoZXgpCQlNaWNyby1TdGFyIElOVCdMIENPLiwgTFRECis4Qzg5QTUgICAgIChiYXNlIDE2KQkJTWljcm8tU3RhciBJTlQnTCBDTy4sIExURAorCQkJCU5vLjY5LCBMaWRlIHN0LgorCQkJCUpob25naGUgQ2l0eQorCQkJCVRhaXBlaSBDb3VudHkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOEMtOTAtRDMgICAoaGV4KQkJQWxjYXRlbCBMdWNlbnQKKzhDOTBEMyAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIEx1Y2VudAorCQkJCTYwMCBNYXJjaCBEcml2ZQorCQkJCU90dGF3YSBPTiBLMksgMkU2CisJCQkJQ0FOQURBCisKKzhDLTkyLTM2ICAgKGhleCkJCUF1cy5MaW54IFRlY2hub2xvZ3kgQ28uLCBMdGQuCis4QzkyMzYgICAgIChiYXNlIDE2KQkJQXVzLkxpbnggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkzRiwgTm8uIDcsIExhbmUgNDUsIFBhby1Ic2luIFJkLiwKKwkJCQlIc2luLVRlaW4gVGFpcGVpIGNvdW50cnksICAyMzE0NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOEMtQTAtNDggICAoaGV4KQkJQmVpamluZyBOZVRvcENoaXAgVGVjaG5vbG9neSBDby4sTFRECis4Q0EwNDggICAgIChiYXNlIDE2KQkJQmVpamluZyBOZVRvcENoaXAgVGVjaG5vbG9neSBDby4sTFRECisJCQkJMzA5LEludGVyZ3JhdGlvbiBCdWlsZGluZyBPbHltcGljIENlbnRlciwgTm8uMSBBbiBEaW5nIFJvYWQsQ2hhbyBZYW5nIERpc3RyaWN0LCwgCisJCQkJQmVpamluZyAgMTAwMDI5CisJCQkJQ0hJTkEKKworOEMtQTktODIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis4Q0E5ODIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis4Qy1CNi00RiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis4Q0I2NEYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis4Qy1COC02NCAgIChoZXgpCQlBY1NpUCBUZWNobm9sb2d5IENvcnAuCis4Q0I4NjQgICAgIChiYXNlIDE2KQkJQWNTaVAgVGVjaG5vbG9neSBDb3JwLgorCQkJCTNGLiwgTm8uMjIsIERhbGluIFJkLiwgCisJCQkJVGFveXVhbiBDaXR5ICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzhDLUQ2LTI4ICAgKGhleCkJCUlrb3IgTWV0ZXJpbmcKKzhDRDYyOCAgICAgKGJhc2UgMTYpCQlJa29yIE1ldGVyaW5nCisJCQkJRnJhbmNpc2NvIEdyYW5kbW9udGFnbmUgNAorCQkJCVNhbiBTZWJhc3RpYW4gR3VpcHV6Y29hIDIwMDA4CisJCQkJU1BBSU4KKworOEMtREItMjUgICAoaGV4KQkJRVNHIFNvbHV0aW9ucworOENEQjI1ICAgICAoYmFzZSAxNikJCUVTRyBTb2x1dGlvbnMKKwkJCQkyMCBIeXBlcmlvbiBDb3VydAorCQkJCUtpbmdzdG9uIE9udGFyaW8gSzdLIDdLMgorCQkJCUNBTkFEQQorCis4Qy1ERC04RCAgIChoZXgpCQlXaWZseS1DaXR5IFN5c3RlbSBJbmMuCis4Q0REOEQgICAgIChiYXNlIDE2KQkJV2lmbHktQ2l0eSBTeXN0ZW0gSW5jLgorCQkJCTRGLiwtMSxOTyAxMDYsUlVFSUdVQU5HIFJkLk5laWh1IERpc3RyaWN0LAorCQkJCVRhaXBlaSBDaXR5ICAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4Qy1FNy1CMyAgIChoZXgpCQlTb25hcmR5bmUgSW50ZXJuYXRpb25hbCBMdGQKKzhDRTdCMyAgICAgKGJhc2UgMTYpCQlTb25hcmR5bmUgSW50ZXJuYXRpb25hbCBMdGQKKwkJCQlCbGFja2J1c2hlIEJ1c2luZXNzIFBhcmsKKwkJCQlZYXRlbGV5IEhhbXBzaGlyZSBHVTQ2IDZHRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzhDLUY5LUM5ICAgKGhleCkJCU1FU0FEQSBUZWNobm9sb2d5IENvLixMdGQuCis4Q0Y5QzkgICAgIChiYXNlIDE2KQkJTUVTQURBIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQlUb25nRm5nIEluZm9ybWF0aW9uIEhhcmJvcixOby4xMSBMYW5nU2hhbiBSb2FkLEhJLXRlY2ggUGFyayxOYW5zaGFuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis5MC0wMC00RSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCis5MDAwNEUgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCSBOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAyMDE2MTMKKwkJCQlDSElOQQorCis5MC0wMS0zQiAgIChoZXgpCQlTQUdFTUNPTQorOTAwMTNCICAgICAoYmFzZSAxNikJCVNBR0VNQ09NCisJCQkJMjUwIHJvdXRlIGRlIGwnRW1wZXJldXIKKwkJCQlSVUVJTCBNQUxNQUlTT04gIDkyODQ4CisJCQkJRlJBTkNFCisKKzkwLTA5LTE3ICAgKGhleCkJCUZhci1zaWdodGVkIG1vYmlsZQorOTAwOTE3ICAgICAoYmFzZSAxNikJCUZhci1zaWdodGVkIG1vYmlsZQorCQkJCVRlY2hub2xvZ3kgUGFyayBEZXNheSBCdWlsZGluZyA2dGgtRmxvb3IKKwkJCQlOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIFByb3ZpbmNlICA1MTgwMDAKKwkJCQlDSElOQQorCis5MC0wRC02NiAgIChoZXgpCQlEaWdpbW9yZSBFbGVjdHJvbmljcyBDby4sIEx0ZAorOTAwRDY2ICAgICAoYmFzZSAxNikJCURpZ2ltb3JlIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJMTAgRkwuLCBOby4gNjEsIFlhbi1QaW5nIFNvdXRoIFJvYWQKKwkJCQlUYWlwZWkgIDEwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTAtMTgtQUUgICAoaGV4KQkJU2hhbmdoYWkgTWVyaWRpYW4gVGVjaG5vbG9naWVzLCBDby4gTHRkLgorOTAxOEFFICAgICAoYmFzZSAxNikJCVNoYW5naGFpIE1lcmlkaWFuIFRlY2hub2xvZ2llcywgQ28uIEx0ZC4KKwkJCQlTdWl0ZSA2QSBUb25nc2hlbmcgVG93ZXIKKwkJCQkjNDU4IEZ1c2hhbiBSb2FkCisJCQkJUHVkb25nIHNoYW5naGFpIDIwMDEyMgorCQkJCUNISU5BCisKKzkwLTE5LTAwICAgKGhleCkJCVNDUyBTQQorOTAxOTAwICAgICAoYmFzZSAxNikJCVNDUyBTQQorCQkJCVZpYSBQaW5pLCAzMgorCQkJCUJpYXNjYSAgNjcxMAorCQkJCVNXSVRaRVJMQU5ECisKKzkwLTIxLTU1ICAgKGhleCkJCUhUQyBDb3Jwb3JhdGlvbgorOTAyMTU1ICAgICAoYmFzZSAxNikJCUhUQyBDb3Jwb3JhdGlvbgorCQkJCU5vLjIzIFhpbmdodWEgUm9hZAorCQkJCVRhb3l1YW4gQ2l0eQorCQkJCVRhb3l1YW4gQ291bnR5ICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzkwLTI3LUU0ICAgKGhleCkJCUFwcGxlCis5MDI3RTQgICAgIChiYXNlIDE2KQkJQXBwbGUKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ2FsaWZvcm5pYSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworOTAtMkUtODcgICAoaGV4KQkJTGFiSmFjaworOTAyRTg3ICAgICAoYmFzZSAxNikJCUxhYkphY2sKKwkJCQkzMjMyIFMgVmFuY2UgU3QgU1RFIDEwMAorCQkJCUxha2V3b29kIENPIDgwMjI3CisJCQkJVU5JVEVEIFNUQVRFUworCis5MC0zNC0yQiAgIChoZXgpCQlHYXRla2VlcGVyIFN5c3RlbXMsIEluYy4KKzkwMzQyQiAgICAgKGJhc2UgMTYpCQlHYXRla2VlcGVyIFN5c3RlbXMsIEluYy4KKwkJCQk4IFN0dWRlYmFrZXIKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLTM0LUZDICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzkwMzRGQyAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMyAKKwkJCQlDSElOQQorCis5MC0zRC01QSAgIChoZXgpCQlTaGVuemhlbiBXaXNpb24gVGVjaG5vbG9neSBIb2xkaW5nIExpbWl0ZWQKKzkwM0Q1QSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBXaXNpb24gVGVjaG5vbG9neSBIb2xkaW5nIExpbWl0ZWQKKwkJCQlSb29tIDI2QSwgSmlucnVuIEJ1aWxkaW5nLCBOMC42MDE5LCBTaGVubmFuIFJkLiwgRnV0aWFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA0MAorCQkJCUNISU5BCisKKzkwLTNELTZCICAgKGhleCkJCVppY29uIFRlY2hub2xvZ3kgQ29ycC4KKzkwM0Q2QiAgICAgKGJhc2UgMTYpCQlaaWNvbiBUZWNobm9sb2d5IENvcnAuCisJCQkJMTVGLiwgTm8uNjg4LTIsIFpob25nemhlbmcgUmQuLCBaaG9uZ2hlIENpdHksIFRhaXBlaSBDb3VudHkgMjM1CisJCQkJVGFpcGVpICAyMzU4NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTAtNDctMTYgICAoaGV4KQkJUk9SWkUgQ09SUE9SQVRJT04KKzkwNDcxNiAgICAgKGJhc2UgMTYpCQlST1JaRSBDT1JQT1JBVElPTgorCQkJCTE1ODgtMiBNaWNoaW5vdWUsIEthbm5hYmUtY2hvCisJCQkJRnVrdXlhbWEgSGlyb3NoaW1hIDcyMC0yMTA0CisJCQkJSkFQQU4KKworOTAtNEMtRTUgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorOTA0Q0U1ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzCisJCQkJQ0hJTkEKKworOTAtNTAtN0IgICAoaGV4KQkJQWR2YW5jZWQgUEFOTU9CSUwgU3lzdGVtcyBHbWJIICYgQ28uIEtHCis5MDUwN0IgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgUEFOTU9CSUwgU3lzdGVtcyBHbWJIICYgQ28uIEtHCisJCQkJSGFuc2VzdHJhaT9vZWUgOTEKKwkJCQlDb2xvZ25lIE5SVyA1MTE0OQorCQkJCUdFUk1BTlkKKworOTAtNTEtM0YgICAoaGV4KQkJRWxldHRyb25pY2EgU2FudGVybm8KKzkwNTEzRiAgICAgKGJhc2UgMTYpCQlFbGV0dHJvbmljYSBTYW50ZXJubworCQkJCVMuUy4gU2VsaWNlLCA0NworCQkJCUltb2xhIEJvbG9nbmEgNDAwMjYKKwkJCQlJVEFMWQorCis5MC01NC00NiAgIChoZXgpCQlURVMgRUxFQ1RST05JQyBTT0xVVElPTlMKKzkwNTQ0NiAgICAgKGJhc2UgMTYpCQlURVMgRUxFQ1RST05JQyBTT0xVVElPTlMKKwkJCQlJbW1ldWJsZSBPZHlzc2VlCisJCQkJWkFDIGRlIEJsb3NzYWMKKwkJCQlCUlVaICAzNTE3MAorCQkJCUZSQU5DRQorCis5MC01NS1BRSAgIChoZXgpCQlFcmljc3NvbiwgRUFCL1JXSS9LCis5MDU1QUUgICAgIChiYXNlIDE2KQkJRXJpY3Nzb24sIEVBQi9SV0kvSworCQkJCVNrb2xnYW5nZW4gMTcKKwkJCQlHYXZsZSAgU0UtODAwIDA2CisJCQkJU1dFREVOCisKKzkwLTVGLThEICAgKGhleCkJCW1vZGFzIEdtYkgKKzkwNUY4RCAgICAgKGJhc2UgMTYpCQltb2RhcyBHbWJICisJCQkJQmVsemlnZXIgU3RyLiA2OS03MQorCQkJCUJlcmxpbiAgMTA4MjMKKwkJCQlHRVJNQU5ZCisKKzkwLTYxLTBDICAgKGhleCkJCUZpZGEgSW50ZXJuYXRpb25hbCAoUykgUHRlIEx0ZAorOTA2MTBDICAgICAoYmFzZSAxNikJCUZpZGEgSW50ZXJuYXRpb25hbCAoUykgUHRlIEx0ZAorCQkJCUJsayAxNiwgS2FsbGFuZyBQbGFjZSAKKwkJCQkjMDYtMDIsIAorCQkJCTMzOTE1NgorCQkJCVNJTkdBUE9SRQorCis5MC02Ny1CNSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudAorOTA2N0I1ICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50CisJCQkJNjAwLTcwMCBNb3VudGFpbiBBdmUuCisJCQkJM0EtMjMwQworCQkJCU11cnJheSBIaWlsbCBOSiAwNzk3NC0wNjM2CisJCQkJVU5JVEVEIFNUQVRFUworCis5MC02Ny1GMyAgIChoZXgpCQlBbGNhdGVsIEx1Y2VudAorOTA2N0YzICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTHVjZW50CisJCQkJVmlhIHRyZW50bywgMzAKKwkJCQlWaW1lcmNhdGUgTUIgMjAwNTkKKwkJCQlJVEFMWQorCis5MC02RC1DOCAgIChoZXgpCQlETEcgQXV0b21hY2FvIEluZHVzdHJpYWwgTHRkYQorOTA2REM4ICAgICAoYmFzZSAxNikJCURMRyBBdXRvbWFjYW8gSW5kdXN0cmlhbCBMdGRhCisJCQkJUnVhIEpvc2UgQmF0aXN0YSBTb2FyZXMsIDUzCisJCQkJRGlzdHJpdG8gSW5kdXN0cmlhbAorCQkJCVNlcnRhb3ppbmhvIFNhbyBQYXVsbyAxNDE3Ni0xMTkKKwkJCQlCUkFaSUwKKworOTAtNkUtQkIgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorOTA2RUJCICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzCisJCQkJQ0hJTkEKKworOTAtN0YtNjEgICAoaGV4KQkJQ2hpY29ueSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzkwN0Y2MSAgICAgKGJhc2UgMTYpCQlDaGljb255IEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCU5vLjI1LCBXdS1Hb25nIDZ0aCBSZC4sIFd1IEt1IEluZHVzdHJpYWwgUGFyaywgCisJCQkJVGFpcGVpIEhzaWVuLCAgIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTAtODQtMEQgICAoaGV4KQkJQXBwbGUsIEluYworOTA4NDBEICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLTg4LUEyICAgKGhleCkJCUlPTklDUyBURUNITk9MT0dZIE1FIExUREEKKzkwODhBMiAgICAgKGJhc2UgMTYpCQlJT05JQ1MgVEVDSE5PTE9HWSBNRSBMVERBCisJCQkJUlVBIERFUC4gQU5UT05JTyBFRFUgVklFSVJBCisJCQkJRkxPUklBTiBQT0xJUyBTQU5UQSBDQVRBUklOQSA4ODA0MDAwMAorCQkJCUJSQVpJTAorCis5MC04RC0xRCAgIChoZXgpCQlHSCBUZWNobm9sb2dpZXMKKzkwOEQxRCAgICAgKGJhc2UgMTYpCQlHSCBUZWNobm9sb2dpZXMKKwkJCQk1MDIyIEJpbmhlIFJvYWQsIEJsb2NrIEIsIFVuaXRlZCBQbGF6YQorCQkJCVNoZW56aGVuICA1MTgwMjYKKwkJCQlDSElOQQorCis5MC05MC0zQyAgIChoZXgpCQlUUklTT04gVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorOTA5MDNDICAgICAoYmFzZSAxNikJCVRSSVNPTiBURUNITk9MT0dZIENPUlBPUkFUSU9OCisJCQkJTm8uMywgS3VuZy1ZZWggMTJ0aCBSZC4sIFBpbmctSmVuIEluZHVzdHJpYWwgUGFyaywKKwkJCQlQaW5nLUplbiBDaXR5LCAgVGFvWXVhbiBDb3VudHkgMzI0NTkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzkwLTkwLTYwICAgKGhleCkJCVJTSSBWSURFTyBURUNITk9MT0dJRVMKKzkwOTA2MCAgICAgKGJhc2UgMTYpCQlSU0kgVklERU8gVEVDSE5PTE9HSUVTCisJCQkJNTYsIFJ1ZSBKZWFuLUdpcmF1ZG91eCAtIEJBVCA2MAorCQkJCVBhcmMgZCYjMzk7YWN0aXZpdGk/b2UgZGVzIEZvcmdlcworCQkJCVNUUkFTQk9VUkcgQmFzLVJoaW4gNjcyMDAKKwkJCQlGUkFOQ0UKKworOTAtQTItREEgICAoaGV4KQkJR0hFTyBTQQorOTBBMkRBICAgICAoYmFzZSAxNikJCUdIRU8gU0EKKwkJCQlWaWEgU29sZGluaSwgMjIKKwkJCQlDaGlhc3NvICBDSC02ODMwCisJCQkJU1dJVFpFUkxBTkQKKworOTAtQTQtREUgICAoaGV4KQkJV2lzdHJvbiBOZXdlYiBDb3JwLgorOTBBNERFICAgICAoYmFzZSAxNikJCVdpc3Ryb24gTmV3ZWIgQ29ycC4KKwkJCQkyMCBQYXJrIEF2ZW51ZSBJSSwgSHNpbmNodSBTY2llbmNlIFBhcmssIAorCQkJCUhzaW5jaHUgICAzMDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzkwLUE3LUMxICAgKGhleCkJCVBha2VkZ2UgRGV2aWNlIGFuZCBTb2Z0d2FyZSBJbmMuCis5MEE3QzEgICAgIChiYXNlIDE2KQkJUGFrZWRnZSBEZXZpY2UgYW5kIFNvZnR3YXJlIEluYy4KKwkJCQkxMDExIEVkd2FyZHMgUm9hZAorCQkJCUJ1cmxpbmdhbWUgQ0EgOTQwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLUI4LUQwICAgKGhleCkJCUpveWVudCwgSW5jLgorOTBCOEQwICAgICAoYmFzZSAxNikJCUpveWVudCwgSW5jLgorCQkJCTM0NSBDYWxpZm9ybmlhIFN0cmVldCwKKwkJCQlTdWl0ZSAyMDAwCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEwNAorCQkJCVVOSVRFRCBTVEFURVMKKworOTAtQjktN0QgICAoaGV4KQkJSm9obnNvbiBPdXRkb29ycyBNYXJpbmUgRWxlY3Ryb25pY3MgZC9iL2EgTWlubmtvdGEKKzkwQjk3RCAgICAgKGJhc2UgMTYpCQlKb2huc29uIE91dGRvb3JzIE1hcmluZSBFbGVjdHJvbmljcyBkL2IvYSBNaW5ua290YQorCQkJCTE1MzEgRSBNYWRpc29uIEF2ZQorCQkJCU1hbmthdG8gTU4gNTYwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLUNGLTE1ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCis5MENGMTUgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlZcnR0aXBlbGxvbnRpZSA2CisJCQkJT3VsdSAgOTAyMzAKKwkJCQlGSU5MQU5ECisKKzkwLUQxLTFCICAgKGhleCkJCVBhbG9tYXIgTWVkaWNhbCBUZWNobm9sb2dpZXMKKzkwRDExQiAgICAgKGJhc2UgMTYpCQlQYWxvbWFyIE1lZGljYWwgVGVjaG5vbG9naWVzCisJCQkJMTUgTmV0d29yayBEcml2ZQorCQkJCUJ1cmxpbmd0b24gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLUQ3LUVCICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCis5MEQ3RUIgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis5MC1EOC01MiAgIChoZXgpCQlDb210ZWMgQ28uLCBMdGQuCis5MEQ4NTIgICAgIChiYXNlIDE2KQkJQ29tdGVjIENvLiwgTHRkLgorCQkJCSAzRi4sIE5vLjgxLCBKaWFua2FuZyBSZC4sCisJCQkJWmhvbmdoZSBDaXR5IFRhaXBlaSBDb3VudHkgMjM1ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzkwLUQ5LTJDICAgKGhleCkJCUhVRy1XSVRTQ0hJIEFHCis5MEQ5MkMgICAgIChiYXNlIDE2KQkJSFVHLVdJVFNDSEkgQUcKKwkJCQlBdXJpZWRzdHJhc3NlIDEwCisJCQkJQm9lc2luZ2VuIEZyaWJvdXJnIDMxNzgKKwkJCQlTV0lUWkVSTEFORAorCis5MC1FMC1GMCAgIChoZXgpCQlJRUVFIFAxNzIyIAorOTBFMEYwICAgICAoYmFzZSAxNikJCUlFRUUgUDE3MjIgCisJCQkJODc2MCBTYW5keSBQYXJrd2F5CisJCQkJU2FuZHkgVXRhaCA4NDA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworOTAtRTItQkEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzkwRTJCQSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworOTAtRTYtQkEgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCis5MEU2QkEgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdSwgCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzkwLUVBLTYwICAgKGhleCkJCVNQSSBMYXNlcnMgTHRkIAorOTBFQTYwICAgICAoYmFzZSAxNikJCVNQSSBMYXNlcnMgTHRkIAorCQkJCTYgd2VsbGluZ3RvbiBQYXJrCisJCQkJSGVkZ2UgRW5kCisJCQkJU291dGhhbXB0b24gSGFtcHNoaXJlIFMwMzAyUVUKKwkJCQlVTklURUQgS0lOR0RPTQorCis5MC1GMi03OCAgIChoZXgpCQlSYWRpdXMgR2F0ZXdheQorOTBGMjc4ICAgICAoYmFzZSAxNikJCVJhZGl1cyBHYXRld2F5CisJCQkJNTIwIEUuIE1vbnRmb3JkIEF2ZQorCQkJCUFkYSBPSCA0NTgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworOTAtRkItNUIgICAoaGV4KQkJQXZheWEsIEluYworOTBGQjVCICAgICAoYmFzZSAxNikJCUF2YXlhLCBJbmMKKwkJCQkyMTEgTW91bnQgQWlyeSBSb2FkIAorCQkJCUJhc2tpbmcgUmlkZ2UgTkogMDc5MjAtMjMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworOTAtRkItQTYgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLkx0ZAorOTBGQkE2ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC5Dby5MdGQKKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzk0LTBDLTZEICAgKGhleCkJCVRQLUxJTksgVGVjaG5vbG9naWVzIENvLixMdGQuCis5NDBDNkQgICAgIChiYXNlIDE2KQkJVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKwkJCQlCdWlsZGluZyA3LCBTZWNvbmQgUGFydCwgSG9uZ2h1YWxpbmcgSW5kdXN0cmlhbCBab25lCisJCQkJWGlsaSB0b3duLCBOYW5zaGFuLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCis5NC0xMS1EQSAgIChoZXgpCQlJVEYgRnJvc2NobCBHbWJICis5NDExREEgICAgIChiYXNlIDE2KQkJSVRGIEZyb3NjaGwgR21iSAorCQkJCUhhdXNlcmJhY2hzdHIuIDcgLSAxMAorCQkJCSBXYWxkZXJiYWNoIEJhdmFyaWEgOTMxOTQKKwkJCQlHRVJNQU5ZCisKKzk0LTE2LTczICAgKGhleCkJCVBvaW50IENvcmUgU0FSTAorOTQxNjczICAgICAoYmFzZSAxNikJCVBvaW50IENvcmUgU0FSTAorCQkJCTI5LzMxIFJ1ZSBkdSBCb2lzIEdhbG9uCisJCQkJRk9OVEVOQVkgU09VUyBCT0lTIElsZSBkZSBGcmFuY2UgOTQxMjAKKwkJCQlGUkFOQ0UKKworOTQtMjAtNTMgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzk0MjA1MyAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU5MAorCQkJCUZJTkxBTkQKKworOTQtMjMtNkUgICAoaGV4KQkJU2hlbnpoZW4gSnVubGFuIEVsZWN0cm9uaWMgTHRkCis5NDIzNkUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gSnVubGFuIEVsZWN0cm9uaWMgTHRkCisJCQkJQmxvY2sgQyxOby4yIEluZHVzdHJpYWwgRGlzdHJpY3QsIEZ1eXVhbiwgVGFuZ3dlaSxGdXlvbmcsIEJhbydhbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDMKKwkJCQlDSElOQQorCis5NC0yRS02MyAgIChoZXgpCQlGaW5zZWN1cgorOTQyRTYzICAgICAoYmFzZSAxNikJCUZpbnNlY3VyCisJCQkJNTIgcnVlIFBhdWwgTGVzY29wCisJCQkJTmFudGVycmUgIDkyMDAwCisJCQkJRlJBTkNFCisKKzk0LTMzLUREICAgKGhleCkJCVRhY28gRWxlY3Ryb25pYyBTb2x1dGlvbnMsIEluYy4KKzk0MzNERCAgICAgKGJhc2UgMTYpCQlUYWNvIEVsZWN0cm9uaWMgU29sdXRpb25zLCBJbmMuCisJCQkJMTE2MCBDcmFuc3RvbiBTdHJlZXQKKwkJCQlDcmFuc3RvbiBSSSAwMjkyMAorCQkJCVVOSVRFRCBTVEFURVMKKworOTQtMzktRTUgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKzk0MzlFNSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgICAyMDE2MTMgCisJCQkJQ0hJTkEKKworOTQtNDQtNTIgICAoaGV4KQkJQmVsa2luIEludGVybmF0aW9uYWwsIEluYy4KKzk0NDQ1MiAgICAgKGJhc2UgMTYpCQlCZWxraW4gSW50ZXJuYXRpb25hbCwgSW5jLgorCQkJCTUwMSBXLiBXYWxudXQgU3QuCisJCQkJQ29tcHRvbiBDQSA5MDIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworOTQtNDYtOTYgICAoaGV4KQkJQmF1ZFRlYyBDb3Jwb3JhdGlvbgorOTQ0Njk2ICAgICAoYmFzZSAxNikJCUJhdWRUZWMgQ29ycG9yYXRpb24KKwkJCQkxMkYsIE5vLjE4MSwgU2VjLjEuVGF0dW5nIFJkLgorCQkJCUhzaS1jaGloIFRhaXBlaSAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzk0LTU5LTJEICAgKGhleCkJCUVLRSBCdWlsZGluZyBUZWNobm9sb2d5IFN5c3RlbXMgTHRkCis5NDU5MkQgICAgIChiYXNlIDE2KQkJRUtFIEJ1aWxkaW5nIFRlY2hub2xvZ3kgU3lzdGVtcyBMdGQKKwkJCQlQaWlzcGFucG9ydHRpIDcKKwkJCQlFc3BvbyAtIDAyMjQwCisJCQkJRklOTEFORAorCis5NC01Qi03RSAgIChoZXgpCQlUUklMT0JJVCBMVERBLgorOTQ1QjdFICAgICAoYmFzZSAxNikJCVRSSUxPQklUIExUREEuCisJCQkJUi4gQUxWQVJFTkdBIDEzNzcKKwkJCQlCVVRBTlRBCisJCQkJU0FPIFBBVUxPICAwNTUwOTAwMgorCQkJCUJSQVpJTAorCis5NC04MS1BNCAgIChoZXgpCQlBenVyYXkgVGVjaG5vbG9naWVzCis5NDgxQTQgICAgIChiYXNlIDE2KQkJQXp1cmF5IFRlY2hub2xvZ2llcworCQkJCTc0NzAgU1cgQnJpZGdlcG9ydCBSZAorCQkJCUR1cmhhbSBPUiA5NzIyNAorCQkJCVVOSVRFRCBTVEFURVMKKworOTQtODUtN0EgICAoaGV4KQkJRXZhbnRhZ2UgSW5kdXN0cmllcyBDb3JwCis5NDg1N0EgICAgIChiYXNlIDE2KQkJRXZhbnRhZ2UgSW5kdXN0cmllcyBDb3JwCisJCQkJODE1IEJyaWRnZSBTdC4gVy4KKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yViAyTTcKKwkJCQlDQU5BREEKKworOTQtODgtNTQgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzk0ODg1NCAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworOTQtOEItMDMgICAoaGV4KQkJRUFHRVQgSW5ub3ZhdGlvbiBhbmQgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzk0OEIwMyAgICAgKGJhc2UgMTYpCQlFQUdFVCBJbm5vdmF0aW9uIGFuZCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTMvRiwgQnVpbGRpbmcgNCwgTGlhbmNodWFuZyBUZWNobm9sb2d5IFBhcmssQnVqaSBUb3duLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMTIKKwkJCQlDSElOQQorCis5NC04RC01MCAgIChoZXgpCQlCZWFtZXggT3kgQWIKKzk0OEQ1MCAgICAgKGJhc2UgMTYpCQlCZWFtZXggT3kgQWIKKwkJCQlSaXN0aXN1b25yYWl0dGkgMTAKKwkJCQlQaWV0YXJzYWFyaSAgRkktNjg2MDAKKwkJCQlGSU5MQU5ECisKKzk0LThGLUVFICAgKGhleCkJCUh1Z2hlcyBUZWxlbWF0aWNzLCBJbmMuCis5NDhGRUUgICAgIChiYXNlIDE2KQkJSHVnaGVzIFRlbGVtYXRpY3MsIEluYy4KKwkJCQkyMDAyIFN1bW1pdCBCbHZkCisJCQkJU3VpdGUgMTgwMAorCQkJCUF0bGFudGEgR0EgMzAzMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzk0LTlDLTU1ICAgKGhleCkJCUFsdGEgRGF0YSBUZWNobm9sb2dpZXMKKzk0OUM1NSAgICAgKGJhc2UgMTYpCQlBbHRhIERhdGEgVGVjaG5vbG9naWVzCisJCQkJNDkwMSBSb2NrYXdheSBCbHZkLCBCdWlsZGluZyBBCisJCQkJUmlvIFJhbmNobyBOTSA4NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworOTQtQTctQkMgICAoaGV4KQkJQm9keU1lZGlhLCBJbmMuCis5NEE3QkMgICAgIChiYXNlIDE2KQkJQm9keU1lZGlhLCBJbmMuCisJCQkJNDIwIEZvcnQgRHVxdWVzbmUgQmx2ZAorCQkJCUdhdGV3YXkgMSwgU3VpdGUgMTkwMAorCQkJCVBpdHRzYnVyZ2ggUEEgMTUyMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzk0LUFBLUI4ICAgKGhleCkJCUpvdmlldyhCZWlqaW5nKSBUZWNobm9sb2d5IENvLiBMdGQuCis5NEFBQjggICAgIChiYXNlIDE2KQkJSm92aWV3KEJlaWppbmcpIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKwkJCQlSb29tIDMwMiwgU291dGggQnVpbGRpbmcKKwkJCQlOby44MCBYdWV5dWFubmFubHUKKwkJCQlCZWlqaW5nICAxMDAwODEKKwkJCQlDSElOQQorCis5NC1CQS0zMSAgIChoZXgpCQlWaXNpb250ZWMgZGEgQW1hem9uaWEgTHRkYS4KKzk0QkEzMSAgICAgKGJhc2UgMTYpCQlWaXNpb250ZWMgZGEgQW1hem9uaWEgTHRkYS4KKwkJCQlSb2QuIEdlcmFsZG8gU2Nhdm9uZSwgMjMwMCAtIEdhbHBhbyAyNworCQkJCUNhbGlmb3JuaWEgQ2VudGVyIC0gUHEuIENhbGlmb3JuaWEKKwkJCQlKYWNhcmVpIFNQIDEyMzA1LTQ5MAorCQkJCUJSQVpJTAorCis5NC1DNC1FOSAgIChoZXgpCQlQb3dlckxheWVyIE1pY3Jvc3lzdGVtcyBIb25nS29uZyBMaW1pdGVkCis5NEM0RTkgICAgIChiYXNlIDE2KQkJUG93ZXJMYXllciBNaWNyb3N5c3RlbXMgSG9uZ0tvbmcgTGltaXRlZAorCQkJCTIzIFpoaWNodW4gUmQsTGlhbmd6aXlpbnp1byBSbTEwMDkKKwkJCQlIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgzCisJCQkJQ0hJTkEKKworOTQtQzctQUYgICAoaGV4KQkJUmF5bGlvcyBUZWNobm9sb2d5Cis5NEM3QUYgICAgIChiYXNlIDE2KQkJUmF5bGlvcyBUZWNobm9sb2d5CisJCQkJMTJGLiwgTm8uMTYsIEppYW4gOHRoIFJkCisJCQkJWmhvbmdoZSBDaXR5IFRhaXBlaSBDb3VudHkgIDIzNTExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis5NC1DRC1BQyAgIChoZXgpCQlDcmVvd2F2ZSBPeQorOTRDREFDICAgICAoYmFzZSAxNikJCUNyZW93YXZlIE95CisJCQkJTGVudG9rYXR1IDIKKwkJCQlPdWx1bnNhbG8gIEZJTi05MDQ2MAorCQkJCUZJTkxBTkQKKworOTQtRDAtMTkgICAoaGV4KQkJQ3lkbGUgQ29ycC4KKzk0RDAxOSAgICAgKGJhc2UgMTYpCQlDeWRsZSBDb3JwLgorCQkJCTEyMDMsIEtvZm9tb1Rvd2VyLCAxNi0zICwgU3VuYWUtRG9uZywgQnVuZGFuZy1HdQorCQkJCVNlb25nbmFtLUNpdHkgR3llb25nZ2ktRG8gNDYzODI1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzk0LUQ5LTNDICAgKGhleCkJCUVORUxQUworOTREOTNDICAgICAoYmFzZSAxNikJCUVORUxQUworCQkJCUJ1bCBBcnNlbmlqYSBDYXJub2pldmljYSAxMTcKKwkJCQlCZWxncmFkZSAgMTEwNzAKKwkJCQlTRVJCSUEKKworOTQtREQtM0YgICAoaGV4KQkJQStWIExpbmsgVGVjaG5vbG9naWVzLCBDb3JwLgorOTRERDNGICAgICAoYmFzZSAxNikJCUErViBMaW5rIFRlY2hub2xvZ2llcywgQ29ycC4KKwkJCQk1Ri4sIE5vLjU1MCwgWGlhbnpoZW5nIDJuZCBSZC4KKwkJCQlaaHViZWkgQ2l0eSBIc2luY2h1IENvdW50cnkgMzAyNjgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzk0LUUyLTI2ICAgKGhleCkJCUQuIE9SdGl6IENvbnN1bHRpbmcsIExMQworOTRFMjI2ICAgICAoYmFzZSAxNikJCUQuIE9SdGl6IENvbnN1bHRpbmcsIExMQworCQkJCTIyNjAxIE4uIDE3dGggQXZlbnVlIFN1aXRlIDI3MAorCQkJCVBob2VuaXggQVogODUwMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzk0LUU3LTExICAgKGhleCkJCVhpcmthIERhbWEgUGVyc2FkYSBQVAorOTRFNzExICAgICAoYmFzZSAxNikJCVhpcmthIERhbWEgUGVyc2FkYSBQVAorCQkJCUdkZyBDTQorCQkJCUpsbiBNYXRyYW1hbiBJIE5vIDkKKwkJCQlKYWthcnRhICAxMzE1MAorCQkJCUlORE9ORVNJQQorCis5NC1FOC00OCAgIChoZXgpCQlGWUxERSBNSUNSTyBMVEQKKzk0RTg0OCAgICAgKGJhc2UgMTYpCQlGWUxERSBNSUNSTyBMVEQKKwkJCQk4IEFWUk9FIENSRVNDRU5UCisJCQkJQkxBQ0tQT09MIExBTkNBU0hJUkUgRlk0IDJEUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzk0LUY2LTkyICAgKGhleCkJCUdlbWluaWNvIGNvLixMdGQuCis5NEY2OTIgICAgIChiYXNlIDE2KQkJR2VtaW5pY28gY28uLEx0ZC4KKwkJCQkjMTAyLTExMTIsIENodW51aS1UZWNobm9wYXJrLCAyMDAtMSwKKwkJCQlDaHVudWktZG9uZywgV29ubWktZ3UKKwkJCQlCdWNoZW9uLWNpdHkgS3l1bmdnaS1kbyA0MjAtODU3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzk0LUY3LTIwICAgKGhleCkJCVRpYW5qaW4gRGV2aXNlciBFbGVjdHJvbmljcyBJbnN0cnVtZW50IENvLiwgTHRkCis5NEY3MjAgICAgIChiYXNlIDE2KQkJVGlhbmppbiBEZXZpc2VyIEVsZWN0cm9uaWNzIEluc3RydW1lbnQgQ28uLCBMdGQKKwkJCQlOby40MCBZaWJpbiBSb2FkLE5hbmthaSBkaXN0cmljdCwKKwkJCQlUaWFuamluICAzMDAxMTMKKwkJCQlDSElOQQorCis5NC1GRC0xRCAgIChoZXgpCQlXaGVyZVdoZW4gQ29ycAorOTRGRDFEICAgICAoYmFzZSAxNikJCVdoZXJlV2hlbiBDb3JwCisJCQkJOTZBIEZseW5uIEF2ZW51ZQorCQkJCU1vdW50YWluIFZpZXcgQ2FsaWZvcm5pYSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworOTQtRkUtRjQgICAoaGV4KQkJU0FHRU1DT00KKzk0RkVGNCAgICAgKGJhc2UgMTYpCQlTQUdFTUNPTQorCQkJCTI1MCByb3V0ZSBkZSBsJ0VtcGVyZXVyCisJCQkJUlVFSUwgTUFMTUFJU09OICA5Mjg0OAorCQkJCUZSQU5DRQorCis5OC0wMy1BMCAgIChoZXgpCQlBQkIgbi52LiBQb3dlciBRdWFsaXR5IFByb2R1Y3RzCis5ODAzQTAgICAgIChiYXNlIDE2KQkJQUJCIG4udi4gUG93ZXIgUXVhbGl0eSBQcm9kdWN0cworCQkJCTEwIGFsbGk/b2VlIGNlbnRyYWxlCisJCQkJSnVtZXQgIDYwNDAKKwkJCQlCRUxHSVVNCisKKzk4LTAzLUQ4ICAgKGhleCkJCUFwcGxlLCBJbmMuCis5ODAzRDggICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzk4LTBDLTgyICAgKGhleCkJCVNhbXN1bmcgRWxlY3RybyBNZWNoYW5pY3MKKzk4MEM4MiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm8gTWVjaGFuaWNzCisJCQkJTWV0YW4gRG9uZyAzMTQsIFlvdW5ndG9uZyBHdQorCQkJCVN1d29uIEt5dW5nLWdpIERvLiA0NDMtNzQzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzk4LTBFLUU0ICAgKGhleCkJCVBSSVZBVEUKKzk4MEVFNCAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorOTgtMjktM0YgICAoaGV4KQkJRnVqaWFuIFN0YXJ0IENvbXB1dGVyIEVxdWlwbWVudCBDby4sTHRkCis5ODI5M0YgICAgIChiYXNlIDE2KQkJRnVqaWFuIFN0YXJ0IENvbXB1dGVyIEVxdWlwbWVudCBDby4sTHRkCisJCQkJTm8uNjggSG9uZ3NoYW5neXVhbiBSb2FkLCAgCisJCQkJRnV6aG91IENpdHksICBGdWppYW4gUHJvdmluY2UsIDM1MDAwMgorCQkJCUNISU5BCisKKzk4LTJDLUJFICAgKGhleCkJCTJXaXJlCis5ODJDQkUgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGt3eQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCis5OC0yRC01NiAgIChoZXgpCQlSZXNvbHV0aW9uIEF1ZGlvCis5ODJENTYgICAgIChiYXNlIDE2KQkJUmVzb2x1dGlvbiBBdWRpbworCQkJCTg4IEhvZmYgU3RyZWV0ICMxMDYKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCis5OC0zMC0wMCAgIChoZXgpCQlCZWlqaW5nIEtFTUFDT00gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorOTgzMDAwICAgICAoYmFzZSAxNikJCUJlaWppbmcgS0VNQUNPTSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJUm9vbSAyMDgsIEJ1aWxkaW5nIDYsIE5vLjUwLCBYaSBTYW4gSHVhbiBCZWkgUm9hZCAKKwkJCQlIYWlkaWFuIERpc3RyaWN0LCAKKwkJCQlCZWlqaW5nICAxMDAwNDQKKwkJCQlDSElOQQorCis5OC0zNS1COCAgIChoZXgpCQlBc3NlbWJsZWQgUHJvZHVjdHMgQ29ycG9yYXRpb24KKzk4MzVCOCAgICAgKGJhc2UgMTYpCQlBc3NlbWJsZWQgUHJvZHVjdHMgQ29ycG9yYXRpb24KKwkJCQkxMTUgRS4gTGluZGVuCisJCQkJUm9nZXJzIEFya2Fuc2FzIDcyNzU2CisJCQkJVU5JVEVEIFNUQVRFUworCis5OC00Mi00NiAgIChoZXgpCQlTT0wgSU5EVVNUUlkgUFRFLiwgTFRECis5ODQyNDYgICAgIChiYXNlIDE2KQkJU09MIElORFVTVFJZIFBURS4sIExURAorCQkJCSAxIE5PUlRIIEJSSURHRSBSRC4sCisJCQkJICMyNC0wNSwgSElHSCBTVFJFRVQgQ0VOVFJFLAorCQkJCTE3OTA5NAorCQkJCVNJTkdBUE9SRQorCis5OC00Qi00QSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSBJbmMuCis5ODRCNEEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHkgSW5jLgorCQkJCTYwMCBOb3J0aCBVUyBIaWdod2F5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCis5OC00Qi1FMSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzk4NEJFMSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworOTgtNEUtOTcgICAoaGV4KQkJU3RhcmxpZ2h0IE1hcmtldGluZyAoSC4gSy4pIEx0ZC4KKzk4NEU5NyAgICAgKGJhc2UgMTYpCQlTdGFybGlnaHQgTWFya2V0aW5nIChILiBLLikgTHRkLgorCQkJCTUvRi4sIFNoaW5nIERhbyBJbmR1c3RyaWFsIEJ1aWxkaW5nLCAKKwkJCQkyMzIgQWJlcmRlZW4gTWFpbiBSb2FkCisJCQkJSE9ORyBLT05HCisKKzk4LTU5LTQ1ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCis5ODU5NDUgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzk4LTYwLTIyICAgKGhleCkJCUVNVyBDby4sIEx0ZC4KKzk4NjAyMiAgICAgKGJhc2UgMTYpCQlFTVcgQ28uLCBMdGQuCisJCQkJODBCLTRMLCA2ODAtMyBHb2phbi1Eb25nCisJCQkJTmFtZG9uZy1HdQorCQkJCUluY2hlb24gIDQwNS04MTkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworOTgtNjYtRUEgICAoaGV4KQkJSW5kdXN0cmlhbCBDb250cm9sIENvbW11bmljYXRpb25zLCBJbmMuCis5ODY2RUEgICAgIChiYXNlIDE2KQkJSW5kdXN0cmlhbCBDb250cm9sIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTYwMCBBc3BlbiBDb21tb25zCisJCQkJU3VpdGUgMjEwCisJCQkJTWlkZGxldG9uIFdJIDUzNTYyCisJCQkJVU5JVEVEIFNUQVRFUworCis5OC02RC1DOCAgIChoZXgpCQlUT1NISUJBIE1JVFNVQklTSEktRUxFQ1RSSUMgSU5EVVNUUklBTCBTWVNURU1TIENPUlBPUkFUSU9OCis5ODZEQzggICAgIChiYXNlIDE2KQkJVE9TSElCQSBNSVRTVUJJU0hJLUVMRUNUUklDIElORFVTVFJJQUwgU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCU1JVEEgNDNNVCBCTERHLgorCQkJCTEzLTE2TUlUQSAzLUNIT01FLE1JTkFUTy1LVQorCQkJCVRPS1lPIEpBUEFOIDEwOC0wMDczCisJCQkJSkFQQU4KKworOTgtNzMtQzQgICAoaGV4KQkJU2FnZSBFbGVjdHJvbmljIEVuZ2luZWVyaW5nIExMQworOTg3M0M0ICAgICAoYmFzZSAxNikJCVNhZ2UgRWxlY3Ryb25pYyBFbmdpbmVlcmluZyBMTEMKKwkJCQkyMDEgVGVycnkgU3QuCisJCQkJU3VpdGUgMUEKKwkJCQlMb25nbW9udCBDTyA4MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworOTgtODktRUQgICAoaGV4KQkJQW5hZGVtIEluZm9ybWF0aW9uIEluYy4KKzk4ODlFRCAgICAgKGJhc2UgMTYpCQlBbmFkZW0gSW5mb3JtYXRpb24gSW5jLgorCQkJCTJuZCBGLCA3OSBaaG91emkgU3RyZWV0LCBOZWlodSBEaXN0cmljdCwgCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzk4LThCLTVEICAgKGhleCkJCVNBR0VNIENPTU1VTklDQVRJT04KKzk4OEI1RCAgICAgKGJhc2UgMTYpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCisJCQkJMjUwIHJvdXRlIGRlIGwnRW1wZXJldXIKKwkJCQlSdWVpbCBNYWxtYWlzb24gIDkyODQ4CisJCQkJRlJBTkNFCisKKzk4LThFLTM0ICAgKGhleCkJCVpIRUpJQU5HIEJPWFNBTSBFTEVDVFJPTklDIENPLixMVEQKKzk4OEUzNCAgICAgKGJhc2UgMTYpCQlaSEVKSUFORyBCT1hTQU0gRUxFQ1RST05JQyBDTy4sTFRECisJCQkJTm8uMjg4LExPTkdUQU4gUk9BRCwKKwkJCQlKSU5IVUEgQ0lUWSBaSEVKSUFORyBQUk9WSU5DRSwgMzIxMDE3CisJCQkJQ0hJTkEKKworOTgtOEUtREQgICAoaGV4KQkJUmF5Y2hlbSBJbnRlcm5hdGlvbmFsCis5ODhFREQgICAgIChiYXNlIDE2KQkJUmF5Y2hlbSBJbnRlcm5hdGlvbmFsCisJCQkJQmF5IDEwNSwgCisJCQkJU2hhbm5vbiBJbmR1c3RyaWFsIEVzdGF0ZSwKKwkJCQlTaGFubm9uLCBDby4gQ2xhcmUgRWlyZQorCQkJCUlSRUxBTkQKKworOTgtOTQtNDkgICAoaGV4KQkJU2t5d29ydGggV2lyZWxlc3MgVGVjaG5vbG9neSBMdGQuCis5ODk0NDkgICAgIChiYXNlIDE2KQkJU2t5d29ydGggV2lyZWxlc3MgVGVjaG5vbG9neSBMdGQuCisJCQkJVW5pdCBBIFJtLjNBMDEsIFNreXdvcnRoIEJsZGcuLCBHYW94aW4gQXZlLiAxLlMuLAorCQkJCU5hbnNoYW4gRGlzdHJpY3QgU2hlbnpoZW4gNTE4MDU3CisJCQkJQ0hJTkEKKworOTgtQkMtOTkgICAoaGV4KQkJRWRlbHRlY2ggQ28uLEx0ZC4KKzk4QkM5OSAgICAgKGJhc2UgMTYpCQlFZGVsdGVjaCBDby4sTHRkLgorCQkJCSMzMDIgSmFtYWUgQmxkZywgMTAxMC0yOCwgU2FkYW5nLWRvbmcsIERvbmdqYWs9Z3UKKwkJCQlTZW91bCAgMTU2LTgyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis5OC1EOC04QyAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzk4RDg4QyAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlDQVJSRVRFUkEgQkFTRSBBRVJFQSAjIDU4NTAKKwkJCQlaYXBvcGFuIEphbGlzY28gNDQxMzAKKwkJCQlNRVhJQ08KKworOTgtREMtRDkgICAoaGV4KQkJVU5JVEVDIENvLiwgTHRkLgorOThEQ0Q5ICAgICAoYmFzZSAxNikJCVVOSVRFQyBDby4sIEx0ZC4KKwkJCQkxLTItMS1TaGlueW9rb2hhbWEKKwkJCQlLb2hva3Uta3UKKwkJCQlZb2tvaGFtYS1zaGkgS2FuYWdhd2EgMjIyLTAwMzMKKwkJCQlKQVBBTgorCis5OC1FMS02NSAgIChoZXgpCQlBY2N1dG9tZQorOThFMTY1ICAgICAoYmFzZSAxNikJCUFjY3V0b21lCisJCQkJMzIyMiBQaG9lbml4dmlsbGUgUGlrZQorCQkJCU1hbHZlcm4gUEEgMTkzNTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzk4LUU3LTlBICAgKGhleCkJCUZveGNvbm4oTmFuSmluZykgQ29tbXVuaWNhdGlvbiBDby4sTHRkLgorOThFNzlBICAgICAoYmFzZSAxNikJCUZveGNvbm4oTmFuSmluZykgQ29tbXVuaWNhdGlvbiBDby4sTHRkLgorCQkJCUEtMkZNaW5mYW5nIEJ1aWxkaW5nIE5vLjE4OSBHdWFuZ3pob3UgUmQgCisJCQkJTmFuamluZyBKaWFuZyBzdSAyMTAwMjkKKwkJCQlDSElOQQorCis5OC1FQy02NSAgIChoZXgpCQlDb3Nlc3kgQXBTCis5OEVDNjUgICAgIChiYXNlIDE2KQkJQ29zZXN5IEFwUworCQkJCVR5dHRlYmFlcnZlaiAyCisJCQkJQW5zIEp5bGxhbmQgREstODY0MworCQkJCURFTk1BUksKKworOTgtRjUtMzcgICAoaGV4KQkJenRlIGNvcnBvcmF0aW9uCis5OEY1MzcgICAgIChiYXNlIDE2KQkJenRlIGNvcnBvcmF0aW9uCisJCQkJMTIvRi4senRlIFImRCBidWlsZGluZyxrZWppbmFuIFJvYWQsCisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzk4LUY4LURCICAgKGhleCkJCU1hcmluaSBJbXBpYW50aSBJbmR1c3RyaWFsaSBzLnIubC4KKzk4RjhEQiAgICAgKGJhc2UgMTYpCQlNYXJpbmkgSW1waWFudGkgSW5kdXN0cmlhbGkgcy5yLmwuCisJCQkJVmlhIGRlbGxlIFByb3ZpbmNlLCA2QQorCQkJCShab25hIEFydGlnaWFuYWxlKQorCQkJCUNpc3Rlcm5hIGRpIExhdGluYSAgMDQwMTIKKwkJCQlJVEFMWQorCis5OC1GQy0xMSAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzk4RkMxMSAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMzEgVGhlcm95IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzlDLTE4LTc0ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCis5QzE4NzQgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzlDLTIyLTBFICAgKGhleCkJCVRBU0NBTiBTZXJ2aWNlIEdtYkgKKzlDMjIwRSAgICAgKGJhc2UgMTYpCQlUQVNDQU4gU2VydmljZSBHbWJICisJCQkJTWF4LVBsYW5jay1TdHIuIDM4CisJCQkJQ29sb2duZSBOUlcgNTA4NTgKKwkJCQlHRVJNQU5ZCisKKzlDLTI4LUJGICAgKGhleCkJCUNvbnRpbmVudGFsIEF1dG9tb3RpdmUgQ3plY2ggUmVwdWJsaWMgcy5yLm8uCis5QzI4QkYgICAgIChiYXNlIDE2KQkJQ29udGluZW50YWwgQXV0b21vdGl2ZSBDemVjaCBSZXB1YmxpYyBzLnIuby4KKwkJCQlQcmk/b2VteXNsb3ZpP29lIDE4NTEKKwkJCQlCcmFuZGk/b2VzIG5hZCBMYWJlbSAgMjUwIDAxIAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzlDLTMxLUI2ICAgKGhleCkJCUt1bGl0ZSBTZW1pY29uZHVjdG9yIFByb2R1Y3RzIEluYworOUMzMUI2ICAgICAoYmFzZSAxNikJCUt1bGl0ZSBTZW1pY29uZHVjdG9yIFByb2R1Y3RzIEluYworCQkJCTEgV2lsbG93IFRyZWUgUmQKKwkJCQlMZW9uaWEgTkogMDc2MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzlDLTQxLTdDICAgKGhleCkJCUhhbWUgIFRlY2hub2xvZ3kgQ28uLCAgTGltaXRlZCAKKzlDNDE3QyAgICAgKGJhc2UgMTYpCQlIYW1lICBUZWNobm9sb2d5IENvLiwgIExpbWl0ZWQgCisJCQkJNUYsIE5vLiAxOCBIaWdoIFRlY2ggTWlkZGxlIEF2ZW51ZSBPbmUsIEhpZ2ggVGVjaCBJbmR1c3RyaWFsIFBhcmssIE5hbnNoYW4gRGlzdHJpY3QsIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis5Qy00NS02MyAgIChoZXgpCQlESU1FUCBTaXN0ZW1hcworOUM0NTYzICAgICAoYmFzZSAxNikJCURJTUVQIFNpc3RlbWFzCisJCQkJQXYuIE1PZmFycmVqLCA4NDAKKwkJCQlTYW8gUGF1bG8gU1AgMDUzMTEwMDAKKwkJCQlCUkFaSUwKKworOUMtNEEtN0IgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzlDNEE3QiAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1IE91IDkwNTkwCisJCQkJRklOTEFORAorCis5Qy00RS0yMCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis5QzRFMjAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy00RS04RSAgIChoZXgpCQlBTFQgU3lzdGVtcyBMdGQKKzlDNEU4RSAgICAgKGJhc2UgMTYpCQlBTFQgU3lzdGVtcyBMdGQKKwkJCQlQb0JveCAxNworCQkJCUhlbHNpbmtpICAwMDc2MQorCQkJCUZJTkxBTkQKKworOUMtNTUtQjQgICAoaGV4KQkJSS5TLkUuIFMuci5sLgorOUM1NUI0ICAgICAoYmFzZSAxNikJCUkuUy5FLiBTLnIubC4KKwkJCQlWaWEgZGVsbGEgQ2FuYXBpZ2xpYSA1CisJCQkJTWlnbGlhcmlubyBQaXNhbm8gUElTQSA1NjAxMAorCQkJCUlUQUxZCisKKzlDLTVCLTk2ICAgKGhleCkJCU5NUiBDb3Jwb3JhdGlvbgorOUM1Qjk2ICAgICAoYmFzZSAxNikJCU5NUiBDb3Jwb3JhdGlvbgorCQkJCTNGIEVzcHJpdCBCdWlsZC4sMS0zLTYgTmlzaGktTmlwcG9yaQorCQkJCUFyYWthd2EtS3UgVG9reW8gMTE2LTAwMTMKKwkJCQlKQVBBTgorCis5Qy01RC05NSAgIChoZXgpCQlWVEMgRWxlY3Ryb25pY3MgQ29ycC4KKzlDNUQ5NSAgICAgKGJhc2UgMTYpCQlWVEMgRWxlY3Ryb25pY3MgQ29ycC4KKwkJCQk1RixOby4yMSxTZWMuNixaaG9uZ3hpYW8gRS5SZC4sTmFuZ2FuZyBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTE1NzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzlDLTVFLTczICAgKGhleCkJCUNhbGlicmUgVUsgTHRkCis5QzVFNzMgICAgIChiYXNlIDE2KQkJQ2FsaWJyZSBVSyBMdGQKKwkJCQlDb3Jud2FsbCBIb3VzZQorCQkJCUNvcm53YWxsIFRlcnJhY2UKKwkJCQlCcmFkZm9yZCBXZXN0IFlvcmtzaGlyZSBCRDggN0pTCisJCQkJVU5JVEVEIEtJTkdET00KKworOUMtNjQtNUUgICAoaGV4KQkJSGFybWFuIENvbnN1bWVyIEdyb3VwCis5QzY0NUUgICAgIChiYXNlIDE2KQkJSGFybWFuIENvbnN1bWVyIEdyb3VwCisJCQkJODUwMCBCYWxib2EgQmx2ZAorCQkJCU5vcnRocmlkZ2UgQ0EgOTEzMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzlDLTZBLUJFICAgKGhleCkJCVFFRVMgQXBTLgorOUM2QUJFICAgICAoYmFzZSAxNikJCVFFRVMgQXBTLgorCQkJCU5hdmVybGFuZCAzMSwgMi50dgorCQkJCUdsb3N0cnVwIEhvdmVkc3RhZGVuIDI2MDAKKwkJCQlERU5NQVJLCisKKzlDLTc1LTE0ICAgKGhleCkJCVdpbGRpeCBzcmwKKzlDNzUxNCAgICAgKGJhc2UgMTYpCQlXaWxkaXggc3JsCisJCQkJbG9jLiBMZSBCYXNzZSwgMworCQkJCVRyZW50byBUTiAzODEwMAorCQkJCUlUQUxZCisKKzlDLTc3LUFBICAgKGhleCkJCU5BREFTTlYKKzlDNzdBQSAgICAgKGJhc2UgMTYpCQlOQURBU05WCisJCQkJMjIwMywgVC1kb25nLCBQb29uZ2xpbSBJLXdvbiBQbHVzCisJCQkJU2VvaHllb24tZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2My04NjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworOUMtN0ItRDIgICAoaGV4KQkJTkVPTEFCIENvbnZlcmdlbmNlCis5QzdCRDIgICAgIChiYXNlIDE2KQkJTkVPTEFCIENvbnZlcmdlbmNlCisJCQkJNEYgWXVqdW5nIGJsZGcuLAorCQkJCVNlb2Noby1kb25nLCBTZW9jaG8tZ3UKKwkJCQlTZW91bCAgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis5Qy04MC03RCAgIChoZXgpCQlTWVNDQUJMRSBLb3JlYSBJbmMuCis5QzgwN0QgICAgIChiYXNlIDE2KQkJU1lTQ0FCTEUgS29yZWEgSW5jLgorCQkJCTJGIEtBTUEgQmxkZyAxNDYxLTE1IFNlY2hvLTNkb25nIFNlb2Noby1HdQorCQkJCVNlb3VsICAxMzctNzIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzlDLThFLTk5ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorOUM4RTk5ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy05My00RSAgIChoZXgpCQlYZXJveCBDb3Jwb3JhdGlvbgorOUM5MzRFICAgICAoYmFzZSAxNikJCVhlcm94IENvcnBvcmF0aW9uCisJCQkJTWFpbCBTdG9wIDAyMTQgLSA3RQorCQkJCTgwMCBQaGlsbGlwcyBSb2FkCisJCQkJV2Vic3RlciBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworOUMtOTUtRjggICAoaGV4KQkJU21hcnREb29yIFN5c3RlbXMsIExMQworOUM5NUY4ICAgICAoYmFzZSAxNikJCVNtYXJ0RG9vciBTeXN0ZW1zLCBMTEMKKwkJCQk1NzExLUEgQ2VudGVyIExhbmUKKwkJCQlGYWxscyBDaHVyY2ggVmlyZ2luaWEgMjIwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzlDLUFELUVGICAgKGhleCkJCU9iaWhhaSBUZWNobm9sb2d5LCBJbmMuCis5Q0FERUYgICAgIChiYXNlIDE2KQkJT2JpaGFpIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxOTYzOCBTdGV2ZW5zIENyZWVrIEJsdmQKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzlDLUFGLUNBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzlDQUZDQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzlDLUIyLTA2ICAgKGhleCkJCVBST0NFTlRFQworOUNCMjA2ICAgICAoYmFzZSAxNikJCVBST0NFTlRFQworCQkJCVR1cmZzY2hpcHBlciA0MQorCQkJCVdhdGVyaW5nZW4gWnVpZCBIb2xsYW5kIDIyOTJKQworCQkJCU5FVEhFUkxBTkRTCisKKzlDLUMwLTc3ICAgKGhleCkJCVByaW50Q291bnRzLCBMTEMKKzlDQzA3NyAgICAgKGJhc2UgMTYpCQlQcmludENvdW50cywgTExDCisJCQkJNTEwOSBXIExlbW9uIFN0CisJCQkJVGFtcGEgRkwgMzM2MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzlDLUMwLUQyICAgKGhleCkJCUNvbmR1Y3RpeC1XYW1wZmxlciBBRworOUNDMEQyICAgICAoYmFzZSAxNikJCUNvbmR1Y3RpeC1XYW1wZmxlciBBRworCQkJCVJoZWluc3RyYXNzZSAyNyszMworCQkJCVdlaWwgYW0gUmhlaW4gQmFkZW4tV2k/b2VydHRlbWJlcmcgRC03OTU3NgorCQkJCUdFUk1BTlkKKworOUMtQ0QtODIgICAoaGV4KQkJQ0hFTkcgVUVJIFBSRUNJU0lPTiBJTkRVU1RSWSBDTy4sTFRECis5Q0NEODIgICAgIChiYXNlIDE2KQkJQ0hFTkcgVUVJIFBSRUNJU0lPTiBJTkRVU1RSWSBDTy4sTFRECisJCQkJTm8uMTgsIENodW5nIFNoYW4gUmQuLCBUdS1DaGVuZyBJbmR1c3RyeSBQYXJrIAorCQkJCVR1IENoZW5nIENpdHkgVGFpcGVpIEhzaWVuIDIzNjgwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis5Qy1FQi1FOCAgIChoZXgpCQlCaXpMaW5rIChLdW5zaGFuKSBDby4sTHRkCis5Q0VCRTggICAgIChiYXNlIDE2KQkJQml6TGluayAoS3Vuc2hhbikgQ28uLEx0ZAorCQkJCU5vLjE2OCxOYW5oZSBSb2FkLEVjb25vbWljICZhbXA7IFRlY2hub2xvZ2ljYWwgRGV2ZWxvcG1lbnQgWm9uZSwKKwkJCQlLdW5zaGFuIENpdHkgSmlhbmdzdSBQcm92aW5jZSAyMTUzMDAKKwkJCQlDSElOQQorCis5Qy1GNi0xQSAgIChoZXgpCQlVVEMgRmlyZSBhbmQgU2VjdXJpdHkKKzlDRjYxQSAgICAgKGJhc2UgMTYpCQlVVEMgRmlyZSBhbmQgU2VjdXJpdHkKKwkJCQkyOTU1IFJlZCBIaWxsIEF2ZS4KKwkJCQlDb3N0YSBNZXNhIENBIDkyNjI2CisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy1GOS0zOCAgIChoZXgpCQlBUkVWQSBOUCBHbWJICis5Q0Y5MzggICAgIChiYXNlIDE2KQkJQVJFVkEgTlAgR21iSAorCQkJCVNlbGlnZW5zdGFlZHRlciBTdHIuIDEwMAorCQkJCURlcHQuIFBUQ0RWLUcKKwkJCQlLYXJsc3RlaW4gR2VybWFueSA2Mzc5MQorCQkJCUdFUk1BTlkKKworOUMtRkYtQkUgICAoaGV4KQkJT1RTTCBJbmMuCis5Q0ZGQkUgICAgIChiYXNlIDE2KQkJT1RTTCBJbmMuCisJCQkJSEFOUk9LVSBCbGRnLiAyRiwgMi0xLTIKKwkJCQlLYWJ1a2ktQ2hvCisJCQkJU2hpbmp1a3Uta3UgVG9reW8gMTYwLTAwMjEKKwkJCQlKQVBBTgorCitBMC0wNy05OCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCitBMDA3OTggICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCVVOSVRFRCBTVEFURVMKKworQTAtMEItQkEgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPLU1FQ0hBTklDUworQTAwQkJBICAgICAoYmFzZSAxNikJCVNBTVNVTkcgRUxFQ1RSTy1NRUNIQU5JQ1MKKwkJCQlTdXdvbi1TaSwgR3llb25nZ2lfRG8sIAorCQkJCVN1d29uICA0NDMtNzQzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLTE2LTVDICAgKGhleCkJCVRhbmdvVGVjIEx0ZC4KK0EwMTY1QyAgICAgKGJhc2UgMTYpCQlUYW5nb1RlYyBMdGQuCisJCQkJTWFsaGEgVGVjaG5vbG9neSBQYXJrCisJCQkJSmVydXNhbGVtICA5Njk1MQorCQkJCUlTUkFFTAorCitBMC0xOC01OSAgIChoZXgpCQlTaGVuemhlbiBZaWRhc2hpIEVsZWN0cm9uaWNzIENvIEx0ZAorQTAxODU5ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFlpZGFzaGkgRWxlY3Ryb25pY3MgQ28gTHRkCisJCQkJQnVpbGRpbmcgQTEwLCBGdWthbmcgSW5kdXN0cmlhbCBab25lCisJCQkJRnVtaW5nIFZpbGxhZ2UsR3VhbmxhbiBUb3duLCBCYW8nQW4KKwkJCQlTaGVuemhlbiAgR3Vhbmdkb25nICA1MTgxMTAKKwkJCQlDSElOQQorCitBMC0yMS1CNyAgIChoZXgpCQlORVRHRUFSCitBMDIxQjcgICAgIChiYXNlIDE2KQkJTkVUR0VBUgorCQkJCTM1MCBFQVNUIFBMVU1FUklBIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLTIzLTFCICAgKGhleCkJCVRlbGVDb21wIFImYW1wO0QgQ29ycC4KK0EwMjMxQiAgICAgKGJhc2UgMTYpCQlUZWxlQ29tcCBSJmFtcDtEIENvcnAuCisJCQkJMTAyIFNXIE9yYW5nZSBCbG9zc29tCisJCQkJTGFrZSBDaXR5IEZsb3JpZGEgMzIwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLTJFLUYzICAgKGhleCkJCVVuaXRlZCBJbnRlZ3JhdGVkIFNlcnZpY2VzIENvLiwgTGVkLgorQTAyRUYzICAgICAoYmFzZSAxNikJCVVuaXRlZCBJbnRlZ3JhdGVkIFNlcnZpY2VzIENvLiwgTGVkLgorCQkJCTVGIE5vIDMgTGFuZSA3IFBhY2thbyBSb2FkIEhzaW50aWVuCisJCQkJVGFpcGVpIEhzaWVuICAyMzE0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQTAtMzYtOUYgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KK0EwMzY5RiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworQTAtMzYtRkEgICAoaGV4KQkJRXR0dXMgUmVzZWFyY2ggTExDCitBMDM2RkEgICAgIChiYXNlIDE2KQkJRXR0dXMgUmVzZWFyY2ggTExDCisJCQkJMTA0MyBOIFNob3JlbGluZSBCbHZkCisJCQkJU3VpdGUgMTAwCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworQTAtM0EtNzUgICAoaGV4KQkJUFNTIEJlbGdpdW0gTi5WLgorQTAzQTc1ICAgICAoYmFzZSAxNikJCVBTUyBCZWxnaXVtIE4uVi4KKwkJCQlIb29ndmVsZCA1MAorCQkJCURlbmRlcm1vbmRlICA5MjAwCisJCQkJQkVMR0lVTQorCitBMC00MC0yNSAgIChoZXgpCQlBY3Rpb25jYWJsZSwgSW5jLgorQTA0MDI1ICAgICAoYmFzZSAxNikJCUFjdGlvbmNhYmxlLCBJbmMuCisJCQkJOTk4IFdlc3RseW5uIFdheQorCQkJCVN1aXRlIDQKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLTQwLTQxICAgKGhleCkJCVNBTVdPTkZBIENvLixMdGQuCitBMDQwNDEgICAgIChiYXNlIDE2KQkJU0FNV09ORkEgQ28uLEx0ZC4KKwkJCQk0NzAtNSwgTW9vbmh5dW4yLURvbmcKKwkJCQlOYW0tR3UsIAorCQkJCUJ1c2FuICA2MDgtMDQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLTRFLTA0ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitBMDRFMDQgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1OTAKKwkJCQlGSU5MQU5ECisKK0EwLTU1LURFICAgKGhleCkJCVBhY2UgcGxjCitBMDU1REUgICAgIChiYXNlIDE2KQkJUGFjZSBwbGMKKwkJCQlTYWx0cyBNaWxsCisJCQkJVmljdG9yaWEgUm9hZAorCQkJCUJyYWRmb3JkIFdlc3QgWW9ya3NoaXJlIEJEMTggM0xGCisJCQkJVU5JVEVEIEtJTkdET00KKworQTAtNTktM0EgICAoaGV4KQkJVi5ELlMuIFZpZGVvIERpc3BsYXkgU3lzdGVtcyBzcmwKK0EwNTkzQSAgICAgKGJhc2UgMTYpCQlWLkQuUy4gVmlkZW8gRGlzcGxheSBTeXN0ZW1zIHNybAorCQkJCVZpYSBEZWwgUGFudGFubyA3MQorCQkJCVNDQU5ESUNDSSBGSSA1MDAxOAorCQkJCUlUQUxZCisKK0EwLTVELUMxICAgKGhleCkJCVRNQ1QgQ28uLCBMVEQuCitBMDVEQzEgICAgIChiYXNlIDE2KQkJVE1DVCBDby4sIExURC4KKwkJCQk1Ri01NjEsICMxOS0xMSBTYW5DaG9uZyBSZC4KKwkJCQlOYW5HYW5nIERpc3RyaWN0LgorCQkJCVRhaXBlaSAgMTE1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitBMC01RC1FNyAgIChoZXgpCQlESVJFQ1RWLCBJbmMuCitBMDVERTcgICAgIChiYXNlIDE2KQkJRElSRUNUViwgSW5jLgorCQkJCTIyMzAgRS4gSW1wZXJpYWwgSHd5CisJCQkJRWwgU2VndW5kbyBDQSA5MDI0NQorCQkJCVVOSVRFRCBTVEFURVMKKworQTAtNjktODYgICAoaGV4KQkJV2VsbGF2IFRlY2hub2xvZ2llcyBMdGQKK0EwNjk4NiAgICAgKGJhc2UgMTYpCQlXZWxsYXYgVGVjaG5vbG9naWVzIEx0ZAorCQkJCTE1RiBEZXNheSBCdWlsZGluZworCQkJCU5vLjEyIFl1bnNoYW4gV2VzdCBBdmUuCisJCQkJSHVpemhvdSBHdWFuZ2RvbmcgNTE2MDAzCisJCQkJQ0hJTkEKKworQTAtNkEtMDAgICAoaGV4KQkJVmVyaWxpbmsgQ29ycG9yYXRpb24KK0EwNkEwMCAgICAgKGJhc2UgMTYpCQlWZXJpbGluayBDb3Jwb3JhdGlvbgorCQkJCTEyNyBKZXRwbGV4IENpcmNsZQorCQkJCU1hZGlzb24gQUwgMzU3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLTcxLUE5ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitBMDcxQTkgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1OTAKKwkJCQlGSU5MQU5ECisKK0EwLTczLTMyICAgKGhleCkJCUNhc2htYXN0ZXIgSW50ZXJuYXRpb25hbCBMaW1pdGVkCitBMDczMzIgICAgIChiYXNlIDE2KQkJQ2FzaG1hc3RlciBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKwkJCQlGYWlyeWtpcmsgUm9hZAorCQkJCVJvc3l0aCBGaWZlIEtZMTEgMlFRCisJCQkJVU5JVEVEIEtJTkdET00KKworQTAtNzUtOTEgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCitBMDc1OTEgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLTgyLUM3ICAgKGhleCkJCVAuVC5JIENvLixMVEQKK0EwODJDNyAgICAgKGJhc2UgMTYpCQlQLlQuSSBDby4sTFRECisJCQkJMS01LTEsVHN1cnVtaWRhbgorCQkJCUtvcml5YW1hLXNoaSBGdWt1c2hpbWEgOTYzLTg4NjEKKwkJCQlKQVBBTgorCitBMC04OC1CNCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKK0EwODhCNCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKK0EwLThDLTlCICAgKGhleCkJCVh0cmVtZSBUZWNobm9sb2dpZXMgQ29ycAorQTA4QzlCICAgICAoYmFzZSAxNikJCVh0cmVtZSBUZWNobm9sb2dpZXMgQ29ycAorCQkJCTIwMCA0NjE2IFZhbGlhbnQgRHIgTlcKKwkJCQlDYWxnYXJ5IEFCIFQzQTBYOQorCQkJCUNBTkFEQQorCitBMC05OC0wNSAgIChoZXgpCQlPcGVuVm94IENvbW11bmljYXRpb24gQ28gTHRkCitBMDk4MDUgICAgIChiYXNlIDE2KQkJT3BlblZveCBDb21tdW5pY2F0aW9uIENvIEx0ZAorCQkJCUYyLEJ1aWxkaW5nIE5vLjE0LFNoYW5nc2hhIFNjaWVuY2UgJgorCQkJCVRlY2hub2xvZ3kgUGFyayxOby45MjgzLEJpbmhlIFJvYWQKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDMxCisJCQkJQ0hJTkEKKworQTAtOTgtRUQgICAoaGV4KQkJU2hhbmRvbmcgSW50ZWxsaWdlbnQgT3B0aWNhbCBDb21tdW5pY2F0aW9uIERldmVsb3BtZW50IENvLiwgTHRkLgorQTA5OEVEICAgICAoYmFzZSAxNikJCVNoYW5kb25nIEludGVsbGlnZW50IE9wdGljYWwgQ29tbXVuaWNhdGlvbiBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKwkJCQlOby4xNDkgWWluZ2N1aSBSb2FkLFRvcmNoIFRvd24sQWR2YW5jZWQgVGVjaG5pcXVlIERldmVsb3BtZW50IEFyZWEKKwkJCQlKaW5pbmcgU2hhbmRvbmcgMjcyMDIzCisJCQkJQ0hJTkEKKworQTAtOUEtNUEgICAoaGV4KQkJVGltZSBEb21haW4KK0EwOUE1QSAgICAgKGJhc2UgMTYpCQlUaW1lIERvbWFpbgorCQkJCTMzMCBXeW5uIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJSHVudHN2aWxsZSBBTCAzNTgwNQorCQkJCVVOSVRFRCBTVEFURVMKKworQTAtQTctNjMgICAoaGV4KQkJUG9seXRyb24gVmVydHJpZWIgR21iSAorQTBBNzYzICAgICAoYmFzZSAxNikJCVBvbHl0cm9uIFZlcnRyaWViIEdtYkgKKwkJCQlMYW5nd2llc2Vud2VnIDY0LTcxCisJCQkJQmFkIFdpbGRiYWQgQmFkZW4tV3VlcnR0ZW1iZXJnIDc1MzIzCisJCQkJR0VSTUFOWQorCitBMC1BQS1GRCAgIChoZXgpCQlFcmFUaGluayBUZWNobm9sb2dpZXMgQ29ycC4KK0EwQUFGRCAgICAgKGJhc2UgMTYpCQlFcmFUaGluayBUZWNobm9sb2dpZXMgQ29ycC4KKwkJCQkyODkgQmlzaGVuZyBSb2FkIEJ1aWxkaW5nIDQsRmxvb3IgNCAKKwkJCQlTaGFuZ2hhaSAgMjAxMjA0CisJCQkJQ0hJTkEKKworQTAtQjUtREEgICAoaGV4KQkJSG9uZ0tvbmcgVEhURiBDby4sIEx0ZAorQTBCNURBICAgICAoYmFzZSAxNikJCUhvbmdLb25nIFRIVEYgQ28uLCBMdGQKKwkJCQkyRixTZWN0b3IgQyBvZiBUc2luZ2h1YSBVbml2ZXJzaXR5IEFjYWRlbXksIAorCQkJCUhpLVRlY2ggUGFyayhTb3V0aCksTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitBMC1CNi02MiAgIChoZXgpCQlBY3V0dmlzdGEgSW5ub3ZhdGlvbiBDby4sIEx0ZC4KK0EwQjY2MiAgICAgKGJhc2UgMTYpCQlBY3V0dmlzdGEgSW5ub3ZhdGlvbiBDby4sIEx0ZC4KKwkJCQkyRi0xLCBOby4gMjAgQWxsZXkgMSwgTGFuZSA3NjgsIFNlYy4gNAorCQkJCVBhLVRlaCBSZC4sIAorCQkJCVRhaXBlaSBDaXR5ICAxMTU3NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQTAtQjktRUQgICAoaGV4KQkJU2t5dGFwCitBMEI5RUQgICAgIChiYXNlIDE2KQkJU2t5dGFwCisJCQkJNzEwIDJuZCBBdmUgU3VpdGUgMTEzMAorCQkJCVNlYXR0bGUgV0EgOTgxMDQKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLUJGLUE1ICAgKGhleCkJCUNPUkVTWVMKK0EwQkZBNSAgICAgKGJhc2UgMTYpCQlDT1JFU1lTCisJCQkJMjY3LTEgTm9uaHl1bmRvbmcgR2FuZ25hbWd1CisJCQkJSksgQmxkLiwgIzMwMQorCQkJCVNlb3VsICAxMzUtODMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLURELUU1ICAgKGhleCkJCVNIQVJQIENPUlBPUkFUSU9OCitBMERERTUgICAgIChiYXNlIDE2KQkJU0hBUlAgQ09SUE9SQVRJT04KKwkJCQkyMi0yMixOYWdhaWtlLWNobywKKwkJCQlBYmVuby1LVSwKKwkJCQlPc2FrYSwgIDU0NS04NTIyLAorCQkJCUpBUEFOCisKK0EwLURFLTA1ICAgKGhleCkJCUpTQyAiSXJiaXMtVCIKK0EwREUwNSAgICAgKGJhc2UgMTYpCQlKU0MgIklyYmlzLVQiCisJCQkJNSwgTGl0ZXluYXlhIHN0cmVldAorCQkJCVR1bGEgIDMwMDAwMgorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCitBMC1FMi05NSAgIChoZXgpCQlEQVQgU3lzdGVtIENvLixMdGQKK0EwRTI5NSAgICAgKGJhc2UgMTYpCQlEQVQgU3lzdGVtIENvLixMdGQKKwkJCQlHdW4gU2FuIEZyZWUgVHJhZGUgQXJlYSA1MTEtMSAsCisJCQkJT3NpayBkbyBkb25nIEd1bnNhbiBzaSBKZW9uIEJ1ayAKKwkJCQk1NzMtNTQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLUU5LURCICAgKGhleCkJCU5pbmdibyBGcmVlV2luZ3MgVGVjaG5vbG9naWVzIENvLixMdGQKK0EwRTlEQiAgICAgKGJhc2UgMTYpCQlOaW5nYm8gRnJlZVdpbmdzIFRlY2hub2xvZ2llcyBDby4sTHRkCisJCQkJUm9vbSAxMTA3LTExMDgsIE5vIDI5OCBYdWVTaGkgUm9hZCBZaW56aG91IERpc3RyaWN0IE5pbmdibywgCisJCQkJTmluZ2JvIFpoZWppYW5nIDMxNTAwMAorCQkJCUNISU5BCisKK0EwLUYyLTE3ICAgKGhleCkJCUdFIE1lZGljYWwgU3lzdGVtKENoaW5hKSBDby4sIEx0ZC4gCitBMEYyMTcgICAgIChiYXNlIDE2KQkJR0UgTWVkaWNhbCBTeXN0ZW0oQ2hpbmEpIENvLiwgTHRkLiAKKwkJCQlOby4xOSwgQ2hhbmdKaWFuZyBSb2FkIAorCQkJCVd1eGkgSmlhbmdzdSAyMTQwMjggCisJCQkJQ0hJTkEKKworQTQtMEMtQzMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQTQwQ0MzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtMTMtNEUgICAoaGV4KQkJTHV4dWwgV2lyZWxlc3MKK0E0MTM0RSAgICAgKGJhc2UgMTYpCQlMdXh1bCBXaXJlbGVzcworCQkJCTM1NyBTIDY3MCBXCisJCQkJTGluZG9uIFVUIDg0MDQyCisJCQkJVU5JVEVEIFNUQVRFUworCitBNC0xQi1DMCAgIChoZXgpCQlGYXN0ZWMgSW1hZ2luZyBDb3Jwb3JhdGlvbgorQTQxQkMwICAgICAoYmFzZSAxNikJCUZhc3RlYyBJbWFnaW5nIENvcnBvcmF0aW9uCisJCQkJMTcxNTAgVmlhIERlbCBDYW1wbworCQkJCVN1aXRlIDMwMQorCQkJCVNhbiBEaWVnbyBDYWxpZm9ybmlhIDkyMTI3CisJCQkJVU5JVEVEIFNUQVRFUworCitBNC0yMS04QSAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKK0E0MjE4QSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlDQVJSRVRFUkEgQkFTRSBBRVJFQSAjIDU4NTAKKwkJCQlaYXBvcGFuIEphbGlzY28gNDQxMzAKKwkJCQlNRVhJQ08KKworQTQtMjQtQjMgICAoaGV4KQkJRmxhdEZyb2cgTGFib3JhdG9yaWVzIEFCCitBNDI0QjMgICAgIChiYXNlIDE2KQkJRmxhdEZyb2cgTGFib3JhdG9yaWVzIEFCCisJCQkJTWFnaXN0cmF0c3ZpP29lZ2VuIDEwCisJCQkJTHVuZCBTa2FuZSAyMjY0MworCQkJCVNXRURFTgorCitBNC0zMy1EMSAgIChoZXgpCQlGaWJybGluayBDb21tdW5pY2F0aW9ucyBDby4sTHRkLgorQTQzM0QxICAgICAoYmFzZSAxNikJCUZpYnJsaW5rIENvbW11bmljYXRpb25zIENvLixMdGQuCisJCQkJMjhGIEFnZXMgV2VhbHRoIFdvcmxkLCBOby4xIEhhbmdmZW5nIFJvYWQKKwkJCQlGZW5ndGFpIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDcwCisJCQkJQ0hJTkEKKworQTQtMzgtRkMgICAoaGV4KQkJUGxhc3RpYyBMb2dpYworQTQzOEZDICAgICAoYmFzZSAxNikJCVBsYXN0aWMgTG9naWMKKwkJCQk2NTAgQ2FzdHJvIFN0LiwgU3VpdGUgNTAwCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtNEItMTUgICAoaGV4KQkJU3VuIEN1cGlkIFRlY2hub2xvZ3kgKEhLKSBMVEQKK0E0NEIxNSAgICAgKGJhc2UgMTYpCQlTdW4gQ3VwaWQgVGVjaG5vbG9neSAoSEspIExURAorCQkJCVJvb20gMTIwMS0zLCAxMi9GLiwgVG93ZXIgNgorCQkJCUNoaW5hIEhvbmcgS29uZyBDaXR5CisJCQkJVHNpbSBTaGEgVHN1aSAgCisJCQkJSE9ORyBLT05HCisKK0E0LTUwLTU1ICAgKGhleCkJCWJ1c3dhcmUuZGUKK0E0NTA1NSAgICAgKGJhc2UgMTYpCQlidXN3YXJlLmRlCisJCQkJTG9lc3NuaXR6Z3J1bmRzdHJhc3NlIDExNWEKKwkJCQlNb3JpdHpidXJnIFNheG9ueSAwMTQ2OAorCQkJCUdFUk1BTlkKKworQTQtNTYtMUIgICAoaGV4KQkJTUNPVCBDb3Jwb3JhdGlvbgorQTQ1NjFCICAgICAoYmFzZSAxNikJCU1DT1QgQ29ycG9yYXRpb24KKwkJCQlZb2dvaGlnYXNoaSAxLTUtMTIKKwkJCQlNYXRzdXlhbWEgY2l0eSBFaGltZSBwcmVmZWN0dXJlIDc5MC0wMDQ0CisJCQkJSkFQQU4KKworQTQtNUEtMUMgICAoaGV4KQkJc21hcnQtZWxlY3Ryb25pYyBHbWJICitBNDVBMUMgICAgIChiYXNlIDE2KQkJc21hcnQtZWxlY3Ryb25pYyBHbWJICisJCQkJSW5kdXN0cmllc3RyYXNzZSAyOQorCQkJCVN0LiBHZW9yZ2VuIEJhZGVuLVd1ZXJ0dGVtYmVyZyA3ODEyMgorCQkJCUdFUk1BTlkKKworQTQtNUMtMjcgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCitBNDVDMjcgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworQTQtNjctMDYgICAoaGV4KQkJQXBwbGUgSW5jCitBNDY3MDYgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitBNC03OS1FNCAgIChoZXgpCQlLTElORk8gQ29ycAorQTQ3OUU0ICAgICAoYmFzZSAxNikJCUtMSU5GTyBDb3JwCisJCQkJMzAxIDkyMyB3b2xweXVuZy1kb25nCisJCQkJc2VvIGd1CisJCQkJRGFlamVvbiAgMzAyLTg1MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBNC03QS1BNCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorQTQ3QUE0ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtN0MtMUYgICAoaGV4KQkJR2xvYmFsIE1pY3Jvd2F2ZSBTeXN0ZW1zIEluYy4KK0E0N0MxRiAgICAgKGJhc2UgMTYpCQlHbG9iYWwgTWljcm93YXZlIFN5c3RlbXMgSW5jLgorCQkJCTE5MTYgUGFsb21hciBPYWtzIFdheSwgU3VpdGUgMTAwCisJCQkJQ2FybHNiYWQgQ0EgOTIwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKK0E0LTg1LTZCICAgKGhleCkJCVEgRWxlY3Ryb25pY3MgTHRkCitBNDg1NkIgICAgIChiYXNlIDE2KQkJUSBFbGVjdHJvbmljcyBMdGQKKwkJCQlCZWNrIEhvdXNlLCBIYXdrc3dvcnRoIFJvYWQKKwkJCQlIb3JzZm9ydGgKKwkJCQlMZWVkcyBXZXN0IFlvcmtzaGlyZSBMUzE4IDRKUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0E0LTk5LTgxICAgKGhleCkJCUZ1SmlhbiBFbGl0ZSBQb3dlciBUZWNoIENPLixMVEQuCitBNDk5ODEgICAgIChiYXNlIDE2KQkJRnVKaWFuIEVsaXRlIFBvd2VyIFRlY2ggQ08uLExURC4KKwkJCQk4dGggRmxvb3JpP29laT9vZTU2IEd1YW5SaSBSb2FkIAorCQkJCVNvZnR3YXJlIFNxdWFyZSAoUGhhc2UgVHdvKSwgU2ltaW5nIERpc3RyaWN0IAorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA5CisJCQkJQ0hJTkEKKworQTQtOUItMTMgICAoaGV4KQkJQnVycm91Z2hzIFBheW1lbnQgU3lzdGVtcywgSW5jLgorQTQ5QjEzICAgICAoYmFzZSAxNikJCUJ1cnJvdWdocyBQYXltZW50IFN5c3RlbXMsIEluYy4KKwkJCQk0MTEwMCBQbHltb3V0aCBSb2FkCisJCQkJUGx5bW91dGggTWljaGlnYW4gNDgxNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0E0LUE4LTBGICAgKGhleCkJCVNoZW56aGVuIENvc2hpcCBFbGVjdHJvbmljcyBDby4sIEx0ZC4KK0E0QTgwRiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBDb3NoaXAgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJUmFpbmJvdyBCbGRnLiwgTm9ydGgsIEhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrLCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworQTQtQUQtMDAgICAoaGV4KQkJUmFnc2RhbGUgVGVjaG5vbG9neQorQTRBRDAwICAgICAoYmFzZSAxNikJCVJhZ3NkYWxlIFRlY2hub2xvZ3kKKwkJCQk1MDUgRWNobyBMYW5lCisJCQkJUE8gQm94IDEyMDUwNworCQkJCUJpZyBCZWFyIExha2UgQ0EgOTIzMTUKKwkJCQlVTklURUQgU1RBVEVTCisKK0E0LUFELUI4ICAgKGhleCkJCVZpdGVjIEdyb3VwLCBDYW1lcmEgRHluYW1pY3MgTHRkCitBNEFEQjggICAgIChiYXNlIDE2KQkJVml0ZWMgR3JvdXAsIENhbWVyYSBEeW5hbWljcyBMdGQKKwkJCQlXaWxsaWFtIFZpbnRlbiBCdWlsZGluZworCQkJCVdlc3Rlcm4gV2F5CisJCQkJQnVyeSBTdCBFZG11bmRzIFN1ZmZvbGsgSVAzMyAzVEIKKwkJCQlVTklURUQgS0lOR0RPTQorCitBNC1BRS05QSAgIChoZXgpCQlNYWVzdHJvIFdpcmVsZXNzIFNvbHV0aW9ucyBsdGQuCitBNEFFOUEgICAgIChiYXNlIDE2KQkJTWFlc3RybyBXaXJlbGVzcyBTb2x1dGlvbnMgbHRkLgorCQkJCTM2L0YKKwkJCQkxMTggQ29ubmF1Z2h0IFJvYWQgV2VzdAorCQkJCVNoZXVuZyBXYW4gIAorCQkJCUhPTkcgS09ORworCitBNC1CMS0yMSAgIChoZXgpCQlBcmFudGlhIDIwMTAgUy5MLgorQTRCMTIxICAgICAoYmFzZSAxNikJCUFyYW50aWEgMjAxMCBTLkwuCisJCQkJVm9sdGEgZG8gQ2FzdHJvIHMvbgorCQkJCVNhbnRpYWdvIGRlIENvbXBvc3RlbGEgQSBDb3J1aT9vZWEgMTU3MDYKKwkJCQlTUEFJTgorCitBNC1CMS05NyAgIChoZXgpCQlBcHBsZSwgSW5jLgorQTRCMTk3ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIGNhIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitBNC1CMS1FRSAgIChoZXgpCQlILiBaQU5ERVIgR21iSCAmIENvLiBLRworQTRCMUVFICAgICAoYmFzZSAxNikJCUguIFpBTkRFUiBHbWJIICYgQ28uIEtHCisJCQkJQW0gR3V0IFdvbGYgMTUKKwkJCQlBYWNoZW4gIDUyMDcwCisJCQkJR0VSTUFOWQorCitBNC1CMi1BNyAgIChoZXgpCQlBZGF4eXMgU29sdXRpb25zIEFHCitBNEIyQTcgICAgIChiYXNlIDE2KQkJQWRheHlzIFNvbHV0aW9ucyBBRworCQkJCUVpY2h0YWxzdHJhc3NlIDU1CisJCQkJSG9tYnJlY2h0aWtvbiBDSCA4NjM0CisJCQkJU1dJVFpFUkxBTkQKKworQTQtQjMtNkEgICAoaGV4KQkJSlNDIFNETyBDaHJvbWF0ZWMKK0E0QjM2QSAgICAgKGJhc2UgMTYpCQlKU0MgU0RPIENocm9tYXRlYworCQkJCTk0LCBTdHJvaXRlbGV5IHN0cmVldAorCQkJCVlvc2hrYXItT2xhIE1hcmkgRWwgcmVwdWJsaWMgNDI0MDAwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKK0E0LUJBLURCICAgKGhleCkJCURlbGwgSW5jLgorQTRCQURCICAgICAoYmFzZSAxNikJCURlbGwgSW5jLgorCQkJCU9uZSBEZWxsIFdheSwgTVMgUlI1LTQ1CisJCQkJUm91bmQgUm9jayAgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKK0E0LUJFLTYxICAgKGhleCkJCUV1dHJvVmlzaW9uIFN5c3RlbSwgSW5jLgorQTRCRTYxICAgICAoYmFzZSAxNikJCUV1dHJvVmlzaW9uIFN5c3RlbSwgSW5jLgorCQkJCVJtIDQwMyxCdWlsZGluZzMzLE5vLjY4MCBHdWlwaW5nUmQsWHVodWksCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKK0E0LUMwLUUxICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorQTRDMEUxICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKK0E0LUMyLUFCICAgKGhleCkJCUhhbmd6aG91IExFQUQtSVQgSW5mb3JtYXRpb24gJiBUZWNobm9sb2d5IENvLixMdGQKK0E0QzJBQiAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBMRUFELUlUIEluZm9ybWF0aW9uICYgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJRjIgQnVpbGRlciBCLFhpZG9tZW4gUm9hZCBOTy4yMgorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDAxMgorCQkJCUNISU5BCisKK0E0LUQxLUQxICAgKGhleCkJCUVDT3RhbGl0eSBOb3J0aCBBbWVyaWNhCitBNEQxRDEgICAgIChiYXNlIDE2KQkJRUNPdGFsaXR5IE5vcnRoIEFtZXJpY2EKKwkJCQk0MzAgUyAybmQgQXZlbnVlCisJCQkJUGhvZW5peCBBWiA4NTAwMworCQkJCVVOSVRFRCBTVEFURVMKKworQTQtRDEtRDIgICAoaGV4KQkJQXBwbGUsIEluYy4KK0E0RDFEMiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtREEtM0YgICAoaGV4KQkJQmlvbmljcyBDb3JwLgorQTREQTNGICAgICAoYmFzZSAxNikJCUJpb25pY3MgQ29ycC4KKwkJCQkxNDA2IE1hc3RlcnMgVG93ZXIKKwkJCQk1NTMgRG93aGEtZG9uZyBNYXBvLWd1CisJCQkJU2VvdWwgIDEyMS03NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQTQtREItMkUgICAoaGV4KQkJS2luZ3NwYW4gRW52aXJvbm1lbnRhbCBMdGQKK0E0REIyRSAgICAgKGJhc2UgMTYpCQlLaW5nc3BhbiBFbnZpcm9ubWVudGFsIEx0ZAorCQkJCTE4MCBHaWxmb3JkIFJvYWQKKwkJCQlQb3J0YWRvd24gQXJtYWdoIEJUNjMgNUxGCisJCQkJVU5JVEVEIEtJTkdET00KKworQTQtREUtNTAgICAoaGV4KQkJVG90YWwgV2FsdGhlciBHbWJICitBNERFNTAgICAgIChiYXNlIDE2KQkJVG90YWwgV2FsdGhlciBHbWJICisJCQkJRnJhbmtmdXJ0ZXIgUmluZyAxNworCQkJCU11bmljaCAgODA4MDcKKwkJCQlHRVJNQU5ZCisKK0E0LUUzLTJFICAgKGhleCkJCVNpbGljb24gJmFtcDsgU29mdHdhcmUgU3lzdGVtcyBMdGQuCitBNEUzMkUgICAgIChiYXNlIDE2KQkJU2lsaWNvbiAmYW1wOyBTb2Z0d2FyZSBTeXN0ZW1zIEx0ZC4KKwkJCQlTb3V0aCBDb3VudHkgQnVzaW5lc3MgUGFyaworCQkJCUxlb3BhcmRzdG93biBEdWJsaW4gMTgKKwkJCQlJUkVMQU5ECisKK0E0LUU3LUU0ICAgKGhleCkJCUNvbm5leCBHbWJICitBNEU3RTQgICAgIChiYXNlIDE2KQkJQ29ubmV4IEdtYkgKKwkJCQlFbGJlc3RyYXNzZSAxMgorCQkJCU9sZGVuYnVyZyAgMjYxMzUKKwkJCQlHRVJNQU5ZCisKK0E0LUVELTRFICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorQTRFRDRFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTYwMCBOLiBVUyA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtRUUtNTcgICAoaGV4KQkJU0VJS08gRVBTT04gQ09SUE9SQVRJT04KK0E0RUU1NyAgICAgKGJhc2UgMTYpCQlTRUlLTyBFUFNPTiBDT1JQT1JBVElPTgorCQkJCTMtMy01IE9XQQorCQkJCVNVV0EtU0hJIE5BR0FOTy1LRU4gMzkyLTg1MDIKKwkJCQlKQVBBTgorCitBOC0xQi0xOCAgIChoZXgpCQlYVFMgQ09SUAorQTgxQjE4ICAgICAoYmFzZSAxNikJCVhUUyBDT1JQCisJCQkJMTAxMjUgTlcgMTE2VEggV0FZLCBTVUlURSA1CisJCQkJTUVETEVZIEZMT1JJREEgMzMxNzgKKwkJCQlVTklURUQgU1RBVEVTCisKK0E4LTM5LTQ0ICAgKGhleCkJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCitBODM5NDQgICAgIChiYXNlIDE2KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMKKwkJCQk3NjAgTm9ydGggTWFyeSBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKK0E4LTU1LTZBICAgKGhleCkJCVBvY2tldG5ldCBUZWNobm9sb2d5IEluYy4KK0E4NTU2QSAgICAgKGJhc2UgMTYpCQlQb2NrZXRuZXQgVGVjaG5vbG9neSBJbmMuCisJCQkJU3VpdGUgQiwgN0YuLCBOby4gNTUwLCBSdWllIEt3YW5nIFJkLiwgTmVpaHUgRGlzdHJpY3QsCisJCQkJVGFpcGVpICAxMTQyOQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQTgtNUItQjAgICAoaGV4KQkJU2hlbnpoZW4gRGVob28gVGVjaG5vbG9neSBDby4sTHRkCitBODVCQjAgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gRGVob28gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJNUMsVGlhbnpoYW4gQnVpbGRpbmcgVGlhbmFuIEN5YmVycGFyaywKKwkJCQlGdXRpYW4gZGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZyBEb25nIDUxODA0MAorCQkJCUNISU5BCisKK0E4LTYyLUEyICAgKGhleCkJCUpJV1VNRURJQSBDTy4sIExURC4KK0E4NjJBMiAgICAgKGJhc2UgMTYpCQlKSVdVTUVESUEgQ08uLCBMVEQuCisJCQkJIzkwMiwgRGFlcnVnIFRlY2hubyBUb3duIDEzJ3RoLCA2NjQKKwkJCQlHYXNhbi1kb25nCisJCQkJR2V1bWNoZW9uLWd1IFNlb3VsIDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQTgtNjMtREYgICAoaGV4KQkJRElTUExpP29lQUlSRSBDT1JQT1JBVElPTgorQTg2M0RGICAgICAoYmFzZSAxNikJCURJU1BMaT9vZUFJUkUgQ09SUE9SQVRJT04KKwkJCQkxMzAwIFZhbGxleSBIb3VzZSBEciwgU3RlIDEwMAorCQkJCVJvaG5lcnQgUGFyayBDQSA5NDkyOAorCQkJCVVOSVRFRCBTVEFURVMKKworQTgtNkEtNkYgICAoaGV4KQkJUklNCitBODZBNkYgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgNVI5CisJCQkJQ0FOQURBCisKK0E4LTcwLUE1ICAgKGhleCkJCVVuaUNvbW0gSW5jLgorQTg3MEE1ICAgICAoYmFzZSAxNikJCVVuaUNvbW0gSW5jLgorCQkJCTdGLTcsIE5vLiA3MTYsIENodW5nLUNoZW5nIFJvYWQsCisJCQkJQ2h1bmctSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1MDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0E4LTdCLTM5ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitBODdCMzkgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1NzAKKwkJCQlGSU5MQU5ECisKK0E4LTdFLTMzICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCitBODdFMzMgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKK0E4LTg3LTkyICAgKGhleCkJCUJyb2FkYmFuZCBBbnRlbm5hIFRyYWNraW5nIFN5c3RlbXMKK0E4ODc5MiAgICAgKGJhc2UgMTYpCQlCcm9hZGJhbmQgQW50ZW5uYSBUcmFja2luZyBTeXN0ZW1zCisJCQkJODkwMiBWaW5jZW5uZXMgQ2lyY2xlLCBTdWl0ZSBELTIKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyNjgKKwkJCQlVTklURUQgU1RBVEVTCisKK0E4LThDLUVFICAgKGhleCkJCU1pY3JvTWFkZSBHYWxrYSBpIERyb3pkeiBzcC5qLgorQTg4Q0VFICAgICAoYmFzZSAxNikJCU1pY3JvTWFkZSBHYWxrYSBpIERyb3pkeiBzcC5qLgorCQkJCXVsLiBXaWVuaWF3c2tpZWdvIDE2CisJCQkJUGlsYSBXaWVsa29wb2xza2llIDY0LTkyMAorCQkJCVBPTEFORAorCitBOC05Mi0yQyAgIChoZXgpCQlMRyBFbGVjdHJvbmljcworQTg5MjJDICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzCisJCQkJNjAtMzkgLCBLYXNhbi1kb25nLCBHdW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0E4LTkzLUU2ICAgKGhleCkJCUpJQU5HWEkgSklOR0dBTkdTSEFOIENLSU5HIENPTU1VTklDQVRJT04gVEVDSE5PTE9HWSBDTy4sTFRECitBODkzRTYgICAgIChiYXNlIDE2KQkJSklBTkdYSSBKSU5HR0FOR1NIQU4gQ0tJTkcgQ09NTVVOSUNBVElPTiBURUNITk9MT0dZIENPLixMVEQKKwkJCQk1RiwzMDFidWlsZGluZyxUYWlyYW4gSGlnaC10ZWNoIHBhcmssIENoZWdvbmdtaWFvLEZ1dGlhbiB6b25lLAorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyA1MTgwMDAKKwkJCQlDSElOQQorCitBOC05OS01QyAgIChoZXgpCQlhaXpvIGFnCitBODk5NUMgICAgIChiYXNlIDE2KQkJYWl6byBhZworCQkJCUJyYW5kc3RyYXNzZSAzMworCQkJCVNjaGxpZXJlbiAgODk1MgorCQkJCVNXSVRaRVJMQU5ECisKK0E4LTlCLTEwICAgKGhleCkJCWluTW90aW9uIEx0ZC4KK0E4OUIxMCAgICAgKGJhc2UgMTYpCQlpbk1vdGlvbiBMdGQuCisJCQkJVW5pdCAyNzA5IEV4Y2hhbmdlIFRvd2VyIAorCQkJCTMzIFdhbmcgQ2h1aSBSb2FkIGk/b2UgS293bG9vbiBCYXkgaT9vZSBLTE4KKwkJCQlLTE4KKwkJCQlIT05HIEtPTkcKKworQTgtQjAtQUUgICAoaGV4KQkJTEVPTkkgCitBOEIwQUUgICAgIChiYXNlIDE2KQkJTEVPTkkgCisJCQkJMzk0NSBGcmVlZG9tIENpcmNsZQorCQkJCVN1aXRlIDU1MAorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0E4LUIxLUQ0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0E4QjFENCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0E4LUMyLTIyICAgKGhleCkJCVRNLVJlc2VhcmNoIEluYy4KK0E4QzIyMiAgICAgKGJhc2UgMTYpCQlUTS1SZXNlYXJjaCBJbmMuCisJCQkJSGl5b3NoaSBIb25jaG8gMS0xNS00CisJCQkJS29ob2t1LWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjIzLTAwNjIKKwkJCQlKQVBBTgorCitBOC1DQi05NSAgIChoZXgpCQlFQVNUIEJFU1QgQ08uLCBMVEQuCitBOENCOTUgICAgIChiYXNlIDE2KQkJRUFTVCBCRVNUIENPLiwgTFRELgorCQkJCTRGLE5PLjk4LFNISU5HIFRFSCBST0FECisJCQkJU0FOIENIVU5HIENJVFkgIFRBSVBFSSAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0E4LUNFLTkwICAgKGhleCkJCUNWQworQThDRTkwICAgICAoYmFzZSAxNikJCUNWQworCQkJCU5vLjM2MSxSZW5odWEgUmQuLAorCQkJCURhbGkgQ2l0eSBUYWljaHVuZyA0MTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0E4LUQzLUM4ICAgKGhleCkJCVdhY2hlbmRvcmZmIEVsZWt0cm9uaWsgIEdtYkggJmFtcDsgQ28uIEtHCitBOEQzQzggICAgIChiYXNlIDE2KQkJV2FjaGVuZG9yZmYgRWxla3Ryb25payAgR21iSCAmYW1wOyBDby4gS0cKKwkJCQlJbmR1c3RyaWVzdHIuIDcKKwkJCQlHZWlzZW5oZWltICA2NTM2NgorCQkJCUdFUk1BTlkKKworQTgtRTAtMTggICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0E4RTAxOCAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1ICA5MDIzMAorCQkJCUZJTkxBTkQKKworQTgtRTMtRUUgICAoaGV4KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50IEluYy4KK0E4RTNFRSAgICAgKGJhc2UgMTYpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgSW5jLgorCQkJCTItNi0yMSBNaW5hbWktQW95YW1hCisJCQkJTWluYXRvLWt1IFRva3lvIDEwNy0wMDYyCisJCQkJSkFQQU4KKworQTgtRjItNzQgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworQThGMjc0ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQTgtRjQtNzAgICAoaGV4KQkJRnVqaWFuIE5ld2xhbmQgQ29tbXVuaWNhdGlvbiBTY2llbmNlIFRlY2hub2xvZ2llcyBDby4sTHRkLgorQThGNDcwICAgICAoYmFzZSAxNikJCUZ1amlhbiBOZXdsYW5kIENvbW11bmljYXRpb24gU2NpZW5jZSBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKwkJCQlOZXdsYW5kIFNjaWVuY2UgJiBUZWNobm9sb2d5IFBhcmsgTm8uMSBSdWppYW5nIFdlc3QgUmQuLCBNYXdlaSwgCisJCQkJRnV6aG91IEZ1amlhbiAzNTAwMTUKKwkJCQlDSElOQQorCitBOC1GOS00QiAgIChoZXgpCQlFbHRleCBFbnRlcnByaXNlIEx0ZC4KK0E4Rjk0QiAgICAgKGJhc2UgMTYpCQlFbHRleCBFbnRlcnByaXNlIEx0ZC4KKwkJCQlPYnllZGluZW5peWEgc3QuLCA5CisJCQkJTm92b3NpYmlyc2sgIDYzMDAyMAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCitBOC1GQy1CNyAgIChoZXgpCQlDb25zb2xpZGF0ZWQgUmVzb3VyY2UgSW1hZ2luZworQThGQ0I3ICAgICAoYmFzZSAxNikJCUNvbnNvbGlkYXRlZCBSZXNvdXJjZSBJbWFnaW5nCisJCQkJMjk0MyBTIFdpbHNvbiBDVCBOVworCQkJCUdyYW5kIFJhcGlkcyBNSSA0OTUzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQUEtMDAtMDAgICAoaGV4KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KK0FBMDAwMCAgICAgKGJhc2UgMTYpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorCQkJCUxLRyAxLTIvQTE5CisJCQkJNTUwIEtJTkcgU1RSRUVUCisJCQkJTElUVExFVE9OIE1BIDAxNDYwLTEyODkKKwkJCQlVTklURUQgU1RBVEVTCisKK0FBLTAwLTAxICAgKGhleCkJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCitBQTAwMDEgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKwkJCQlMS0cgMS0yL0ExOQorCQkJCTU1MCBLSU5HIFNUUkVFVAorCQkJCUxJVFRMRVRPTiBNQSAwMTQ2MC0xMjg5CisJCQkJVU5JVEVEIFNUQVRFUworCitBQS0wMC0wMiAgIChoZXgpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorQUEwMDAyICAgICAoYmFzZSAxNikJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCisJCQkJTEtHIDEtMi9BMTkKKwkJCQk1NTAgS0lORyBTVFJFRVQKKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAtMTI4OQorCQkJCVVOSVRFRCBTVEFURVMKKworQUEtMDAtMDMgICAoaGV4KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KK0FBMDAwMyAgICAgKGJhc2UgMTYpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorCQkJCUxLRyAxLTIvQTE5CisJCQkJNTUwIEtJTkcgU1RSRUVUCisJCQkJTElUVExFVE9OIE1BIDAxNDYwLTEyODkKKwkJCQlVTklURUQgU1RBVEVTCisKK0FBLTAwLTA0ICAgKGhleCkJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCitBQTAwMDQgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKwkJCQlMS0cgMS0yL0ExOQorCQkJCTU1MCBLSU5HIFNUUkVFVAorCQkJCUxJVFRMRVRPTiBNQSAwMTQ2MC0xMjg5CisJCQkJVU5JVEVEIFNUQVRFUworCitBQy0wMi1DRiAgIChoZXgpCQlSVyBUZWNub2xvZ2lhIEluZHVzdHJpYSBlIENvbWVyY2lvIEx0ZGEKK0FDMDJDRiAgICAgKGJhc2UgMTYpCQlSVyBUZWNub2xvZ2lhIEluZHVzdHJpYSBlIENvbWVyY2lvIEx0ZGEKKwkJCQlDZW50cm8gRW1wcmVzYXJpYWwgUGF1bG8gRnJlZGVyaWNvIGRlIFRvbGVkbywgODAgQQorCQkJCUJhaXJybyBBcmNvIElyaXJzCisJCQkJU2FudGEgUml0YSBkbyBTYXB1Y2FpIE1pbmFzIEdlcmFpcyAgMzc1NDAwMDAKKwkJCQlCUkFaSUwKKworQUMtMDYtMTMgICAoaGV4KQkJU2Vuc2Vsb2dpeCBMdGQKK0FDMDYxMyAgICAgKGJhc2UgMTYpCQlTZW5zZWxvZ2l4IEx0ZAorCQkJCTU2IENhcmx0b24gQ291cnQsIEZvcmQgV2lsbGlhbSBNb3JnYW4KKwkJCQlTdC4gQXNhcGggQnVzaW5lc3MgUGFyaworCQkJCVN0LiBBc2FwaCBEZWJpZ2hzaGlyZSBMTDE3IDBKRworCQkJCVVOSVRFRCBLSU5HRE9NCisKK0FDLTE5LTlGICAgKGhleCkJCVNVTkdST1cgUE9XRVIgU1VQUExZIENPLixMVEQuCitBQzE5OUYgICAgIChiYXNlIDE2KQkJU1VOR1JPVyBQT1dFUiBTVVBQTFkgQ08uLExURC4KKwkJCQlOTy4yIFRpYW5odSBSb2FkLCBOZXcgYW5kIEhpZ2ggVGVjaG5vbG9neSBJbmR1c3RyaWFsIERldmVsb3BtZW50IFpvbmUKKwkJCQlIZWZlaSBBbmh1aSAyMzAwODgKKwkJCQlDSElOQQorCitBQy0yMC1BQSAgIChoZXgpCQlETUFURUsgQ28uLCBMdGQuCitBQzIwQUEgICAgIChiYXNlIDE2KQkJRE1BVEVLIENvLiwgTHRkLgorCQkJCTZGLiwgTm8uMTU1LTEsIFNlYy4gMywgV2VueGluIFJkLiwgWGl0dW4gRGlzdC4sCisJCQkJVGFpY2h1bmcgIDQwNzUzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitBQy0yRi1BOCAgIChoZXgpCQlIdW1hbm5peCBDby4sTHRkLgorQUMyRkE4ICAgICAoYmFzZSAxNikJCUh1bWFubml4IENvLixMdGQuCisJCQkJIzQwMiwgOTgtNCwgU29uZ3BhLURvbmcsIFNvbmdwYS1HdQorCQkJCVNlb3VsICAxMzgtMTcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0FDLTM0LUNCICAgKGhleCkJCVNoYW5oYWkgR0JDT00gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLiBMdGQKK0FDMzRDQiAgICAgKGJhc2UgMTYpCQlTaGFuaGFpIEdCQ09NIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4gTHRkCisJCQkJUm9vbSA2MDIsIEJ1aWxkaW5nIDYsIE5vLjU1NSBEb25nY2h1YW4gUm9hZAorCQkJCVNoYW5naGFpICAgMjAwMjQxCisJCQkJQ0hJTkEKKworQUMtNDQtRjIgICAoaGV4KQkJUmV2b2xhYnMgSW5jCitBQzQ0RjIgICAgIChiYXNlIDE2KQkJUmV2b2xhYnMgSW5jCisJCQkJNjMgR3JlYXQgUmQKKwkJCQlNYXluYXJkIE1BIDAxNzU0CisJCQkJVU5JVEVEIFNUQVRFUworCitBQy00Ny0yMyAgIChoZXgpCQlHZW5lbGVjCitBQzQ3MjMgICAgIChiYXNlIDE2KQkJR2VuZWxlYworCQkJCU9sdml0aWUgNQorCQkJCUlpc2FsbWkgIDc0MTAwCisJCQkJRklOTEFORAorCitBQy00QS1GRSAgIChoZXgpCQlIaXNlbnNlIEJyb2FkYmFuZCBNdWx0aW1lZGlhIFRlY2hub2xvZ3kgQ28uLEx0ZC4KK0FDNEFGRSAgICAgKGJhc2UgMTYpCQlIaXNlbnNlIEJyb2FkYmFuZCBNdWx0aW1lZGlhIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQlOby4xMSBKaWFuZ3hpIFJvYWQsU2hpbmFuIERpc3RyaWN0CisJCQkJUWluZ2RhbyBDaXR5IFNoYW5kb25nIFByb3ZpbmNlIDI2NjA3MQorCQkJCUNISU5BCisKK0FDLTRGLUZDICAgKGhleCkJCVNWUy1WSVNURUsgR21iSAorQUM0RkZDICAgICAoYmFzZSAxNikJCVNWUy1WSVNURUsgR21iSAorCQkJCU11ZWhsYmFjaHN0ci4gMjAKKwkJCQlTZWVmZWxkIEJZIDgyMjI5CisJCQkJR0VSTUFOWQorCitBQy01MS0zNSAgIChoZXgpCQlNUEkgVEVDSAorQUM1MTM1ICAgICAoYmFzZSAxNikJCU1QSSBURUNICisJCQkJVmFkc3RydXB2ZWogMzUKKwkJCQlCYWdzdmk/b2VyZCAgREstMjg4MAorCQkJCURFTk1BUksKKworQUMtNTgtM0IgICAoaGV4KQkJSHVtYW4gQXNzZW1ibGVyLCBJbmMuCitBQzU4M0IgICAgIChiYXNlIDE2KQkJSHVtYW4gQXNzZW1ibGVyLCBJbmMuCisJCQkJMi0xLTExLTZGCisJCQkJU2hpYnV5YQorCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUwLTAwMDIKKwkJCQlKQVBBTgorCitBQy01RS04QyAgIChoZXgpCQlVdGlsbGluaworQUM1RThDICAgICAoYmFzZSAxNikJCVV0aWxsaW5rCisJCQkJODE3IFdvb2xpbSBMaW9ucyBWYWxsZXkgMSwgMzExLTMgU2FuZ2RhZXdvbi1kb25nIEp1bmd3b24tZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjIxNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQUMtNjEtMjMgICAoaGV4KQkJRHJpdnZlbiwgSW5jLgorQUM2MTIzICAgICAoYmFzZSAxNikJCURyaXZ2ZW4sIEluYy4KKwkJCQkxMjAwMSBOZXR3b3JrIEJvdWxldmFyZAorCQkJCUJ1aWxkaW5nIEUsIFN1aXRlIDExMAorCQkJCVNhbiBBbnRvbmlvIFRYIDc4MjQ5CisJCQkJVU5JVEVEIFNUQVRFUworCitBQy02Ny0wNiAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKK0FDNjcwNiAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCitBQy02Ri00RiAgIChoZXgpCQlFbnNwZXJ0IEluYworQUM2RjRGICAgICAoYmFzZSAxNikJCUVuc3BlcnQgSW5jCisJCQkJMkYuLCBEYWVod2EgQi9ELCAKKwkJCQkxNjkgU2Ftc3VuZy1kb25nLCBHYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNTA5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBQy03Mi04OSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKK0FDNzI4OSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKK0FDLTgwLUQ2ICAgKGhleCkJCUhleGF0cm9uaWMgQUIKK0FDODBENiAgICAgKGJhc2UgMTYpCQlIZXhhdHJvbmljIEFCCisJCQkJRXhwb3J0Z2F0YW4gNDdCCisJCQkJR290aGVuYnVyZyAgNDIyNDYgCisJCQkJU1dFREVOCisKK0FDLTgxLTEyICAgKGhleCkJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorQUM4MTEyICAgICAoYmFzZSAxNikJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLiAxIEplbiBBaSBSb2FkIEhzaW5jaHUgSW5kdXN0cmlhbCBQYXJrIEh1a291LCAKKwkJCQlOby4gMTUtMSBaaG9uZ2h1YSBSb2FkLCAKKwkJCQlIc2luY2h1ICAzMDM1MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQUMtODMtMTcgICAoaGV4KQkJU2hlbnpoZW4gRnVydHVuZXRlbCBDb21tdW5pY2F0aW9uIENvLiwgTHRkCitBQzgzMTcgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gRnVydHVuZXRlbCBDb21tdW5pY2F0aW9uIENvLiwgTHRkCisJCQkJRjE5IGJ1aWxkaW5nIEEgemhvbmdrZSBwbGF6YSBOYW4geWkgc3RyZWV0IGhpZ2gtdGVjaCB6b25lLCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworQUMtODMtRjAgICAoaGV4KQkJTWFnZW50YSBWaWRlbyBOZXR3b3JrcworQUM4M0YwICAgICAoYmFzZSAxNikJCU1hZ2VudGEgVmlkZW8gTmV0d29ya3MKKwkJCQkyMDA1IERlIExhIENydXogQmx2ZAorCQkJCVN1aXRlIDE1MAorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKK0FDLTg2LTc0ICAgKGhleCkJCU9wZW4gTWVzaCwgSW5jLgorQUM4Njc0ICAgICAoYmFzZSAxNikJCU9wZW4gTWVzaCwgSW5jLgorCQkJCTU4MzcgTlcgU2t5bGluZSBCbHZkCisJCQkJUG9ydGxhbmQgT1IgOTcyMjkKKwkJCQlVTklURUQgU1RBVEVTCisKK0FDLTg2LTdFICAgKGhleCkJCUNyZWF0ZSBOZXcgVGVjaG5vbG9neSAoSEspIExpbWl0ZWQgQ29tcGFueQorQUM4NjdFICAgICAoYmFzZSAxNikJCUNyZWF0ZSBOZXcgVGVjaG5vbG9neSAoSEspIExpbWl0ZWQgQ29tcGFueQorCQkJCVJtIEIgMTAvRiBKaW5GZW5nIEJ1aWxkaW5nLDEwMDEgU2hhbmdCdSBTb3V0aCBSb2FkLEZ1VGlhbiBEaXN0cmljdCAKKwkJCQlTaGVuIFpoZW4gR3VhbmcgRG9uZyA1MTgwMzEKKwkJCQlDSElOQQorCitBQy04QS1DRCAgIChoZXgpCQlST0dFUiBELldlbnNrZXIsIEcuV2Vuc2tlciBzcC5qLgorQUM4QUNEICAgICAoYmFzZSAxNikJCVJPR0VSIEQuV2Vuc2tlciwgRy5XZW5za2VyIHNwLmouCisJCQkJR29zY2lzemV3byA1OQorCQkJCVN6dHVtIFBvbW9yc2tpZSA4Mi00MDAKKwkJCQlQT0xBTkQKKworQUMtOTMtMkYgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0FDOTMyRiAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1ICA5MDIzMAorCQkJCUZJTkxBTkQKKworQUMtOUEtOTYgICAoaGV4KQkJTGFudGlxIERldXRzY2hsYW5kIEdtYkgKK0FDOUE5NiAgICAgKGJhc2UgMTYpCQlMYW50aXEgRGV1dHNjaGxhbmQgR21iSAorCQkJCUFtIENhbXBlb24gMworCQkJCU5ldWJpYmVyZyBCYXZhcmlhIDg1NTc5CisJCQkJR0VSTUFOWQorCitBQy05Qi04NCAgIChoZXgpCQlTbWFrIFRlY25vbG9naWEgZSBBdXRvbWFjYW8KK0FDOUI4NCAgICAgKGJhc2UgMTYpCQlTbWFrIFRlY25vbG9naWEgZSBBdXRvbWFjYW8KKwkJCQlBdi4gU3RvLiBBbnRvbmlvLCAyMDEgLSBCZWxhIFZpc3RhCisJCQkJT3Nhc2NvIFNhbyBQYXVsbyBDRVAgMDYwODYtMDc1CisJCQkJQlJBWklMCisKK0FDLUEwLTE2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0FDQTAxNiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0FDLUFCLThEICAgKGhleCkJCUx5bmdzbyBNYXJpbmUgQS9TCitBQ0FCOEQgICAgIChiYXNlIDE2KQkJTHluZ3NvIE1hcmluZSBBL1MKKwkJCQlMeW5nc28gQWxsZSAyCisJCQkJSG9yc2hvbG0gIERLLTI5NzAKKwkJCQlERU5NQVJLCisKK0FDLUJFLTc1ICAgKGhleCkJCVVmaW5lIFRlY2hub2xvZ2llcyBDby4sTHRkLgorQUNCRTc1ICAgICAoYmFzZSAxNikJCVVmaW5lIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCTQ2LCBHZXVtZ29rLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZy1uYW0tc2kgR3llb25nZ2ktZG8gNDYzLTgwNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBQy1CRS1CNiAgIChoZXgpCQlWaXN1YWxlZGdlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitBQ0JFQjYgICAgIChiYXNlIDE2KQkJVmlzdWFsZWRnZSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTEzRkwuLTEgTm8uIDcxNiwgWmhvbmd6aGVuZyBSb2FkLCBaaG9uZ2hlIENpdHksCisJCQkJVGFpcGVpIENvdW50eSwgICAyMzUxMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQUMtQzktMzUgICAoaGV4KQkJTmVzcyBDb3Jwb3JhdGlvbgorQUNDOTM1ICAgICAoYmFzZSAxNikJCU5lc3MgQ29ycG9yYXRpb24KKwkJCQk0LzE2NyBQcm9zcGVjdCBIaWdod2F5CisJCQkJU2V2ZW4gSGlsbHMKKwkJCQlTeWRuZXkgTlNXIDIxNDcKKwkJCQlBVVNUUkFMSUEKKworQUMtQ0EtNTQgICAoaGV4KQkJVGVsbGR1cyBUZWNobm9sb2dpZXMgQUIKK0FDQ0E1NCAgICAgKGJhc2UgMTYpCQlUZWxsZHVzIFRlY2hub2xvZ2llcyBBQgorCQkJCVNraWZmZXJ2aT9vZWdlbiAxMDIKKwkJCQlMdW5kICAyMjQgNzgKKwkJCQlTV0VERU4KKworQUMtQ0EtQkEgICAoaGV4KQkJTWlkb2t1cmEgQ28uLCBMdGQuIAorQUNDQUJBICAgICAoYmFzZSAxNikJCU1pZG9rdXJhIENvLiwgTHRkLiAKKwkJCQk3dGggRmxvb3IgQXphYnVkYWkgSGlub2tpIGJ1aWxkaW5nCisJCQkJIDMtMS01IEF6YWJ1ZGFpIE1pbmF0by1rdSAKKwkJCQlUb2t5byAgMTA2LTAwNDEKKwkJCQlKQVBBTgorCitBQy1DRS04RiAgIChoZXgpCQlIV0EgWUFPIFRFQ0hOT0xPR0lFUyBDTy4sIExURAorQUNDRThGICAgICAoYmFzZSAxNikJCUhXQSBZQU8gVEVDSE5PTE9HSUVTIENPLiwgTFRECisJCQkJTk8uIDYsIExOLiA0OCwgIE5BTlNJTkcgUkQuLAorCQkJCVlPTkdLQU5HIENJVFksIFRBSU5BTiBDT1VOVFkgIDcxMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQUMtRDEtODAgICAoaGV4KQkJQ3JleGVuZG8gQnVzaW5lc3MgU29sdXRpb25zLCBJbmMuCitBQ0QxODAgICAgIChiYXNlIDE2KQkJQ3JleGVuZG8gQnVzaW5lc3MgU29sdXRpb25zLCBJbmMuCisJCQkJMTAyMDEgUy4gNXN0ICBTdC4KKwkJCQlTdWl0ZSBBLTI2NQorCQkJCVBob2VuaXggQVogODUwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKK0FDLURFLTQ4ICAgKGhleCkJCVBSSVZBVEUKK0FDREU0OCAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorQUMtRTMtNDggICAoaGV4KQkJTWFkZ2VUZWNoLCBJbmMKK0FDRTM0OCAgICAgKGJhc2UgMTYpCQlNYWRnZVRlY2gsIEluYworCQkJCTg3OSBNYXBsZSBTdAorCQkJCUNvbnRvb2Nvb2sgTkggMDMyMjkKKwkJCQlVTklURUQgU1RBVEVTCisKK0FDLUU5LUFBICAgKGhleCkJCUhheSBTeXN0ZW1zIEx0ZAorQUNFOUFBICAgICAoYmFzZSAxNikJCUhheSBTeXN0ZW1zIEx0ZAorCQkJCVdhdGVybWFyaworCQkJCUFsYmEgQ2FtcHVzCisJCQkJTGl2aW5nc3RvbiBXZXN0IExvdGhpYW4gRUg1NCA3RUcKKwkJCQlVTklURUQgS0lOR0RPTQorCitBQy1FQS02QSAgIChoZXgpCQlHRU5JWCBJTkZPQ09NTSBDTy4sIExURC4KK0FDRUE2QSAgICAgKGJhc2UgMTYpCQlHRU5JWCBJTkZPQ09NTSBDTy4sIExURC4KKwkJCQkyRiwgRGFlYm8gQmxkZy4gIzEwMDktMzQKKwkJCQlEb2tzYW4tRG9uZywgS2V1bWNoZW9uLUd1CisJCQkJU2VvdWwgIDE1My04MjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQUMtRjktN0UgICAoaGV4KQkJRUxFU1lTIElOQy4KK0FDRjk3RSAgICAgKGJhc2UgMTYpCQlFTEVTWVMgSU5DLgorCQkJCVN1aXQgNjIzLCA4MTItMSwgSHlvbXVuLWRvbmcKKwkJCQlVbHNhbiBCdWstZ3UgNjgzLTM2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCMC0xQi03QyAgIChoZXgpCQlPbnRyb2wgQS5TLgorQjAxQjdDICAgICAoYmFzZSAxNikJCU9udHJvbCBBLlMuCisJCQkJVHVyY2FuIENhZCBObzoxOSBZLkR1ZHVsbHUKKwkJCQlVbXJhbml5ZSBJc3RhbmJ1bCAzNDc3NQorCQkJCVRVUktFWQorCitCMC0zOC0yOSAgIChoZXgpCQlTaWxpY29ud2FyZSBQcmVjaXNpb24gSW5kdXN0cmllcyBDby4sIEx0ZC4KK0IwMzgyOSAgICAgKGJhc2UgMTYpCQlTaWxpY29ud2FyZSBQcmVjaXNpb24gSW5kdXN0cmllcyBDby4sIEx0ZC4KKwkJCQlOby4gMTIzLCBTZWMuMywgRGEgRm9uZyBSZCwgVGFudHp1LCAKKwkJCQlUYWljaHVuZyAgNDI3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCMC00OC03QSAgIChoZXgpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KK0IwNDg3QSAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQkxLTZGLCBCdWlsZGluZyAyLCBQaW5nc2hhbmRheXVhbiBJbmR1c3RyaWFsLCBTb3V0aCBab25lLAorCQkJCVRhb3l1YW4gU3RyZWV0LCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworQjAtNTEtOEUgICAoaGV4KQkJSG9sbCB0ZWNobm9sb2d5IENPLkx0ZC4KK0IwNTE4RSAgICAgKGJhc2UgMTYpCQlIb2xsIHRlY2hub2xvZ3kgQ08uTHRkLgorCQkJCUYyLEJsZCAyNyxBbmxlIEluZHVzdHJpYWwgUGFyayxOYW50b3UgR3VhbmtvdSBOby4yIFJvYWQKKwkJCQlOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDUyCisJCQkJQ0hJTkEKKworQjAtNUItMUYgICAoaGV4KQkJVEhFUk1PIEZJU0hFUiBTQ0lFTlRJRklDIFMuUC5BLgorQjA1QjFGICAgICAoYmFzZSAxNikJCVRIRVJNTyBGSVNIRVIgU0NJRU5USUZJQyBTLlAuQS4KKwkJCQlTVFJBREEgUklWT0xUQU5BIEtNIDYvNworCQkJCVJPREFOTyBNSUxBTiAyMDA5MAorCQkJCUlUQUxZCisKK0IwLTY1LTYzICAgKGhleCkJCVNoYW5naGFpIFJhaWx3YXkgQ29tbXVuaWNhdGlvbiBGYWN0b3J5CitCMDY1NjMgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgUmFpbHdheSBDb21tdW5pY2F0aW9uIEZhY3RvcnkKKwkJCQlOby4xNzkgV2VzdCBKaWFuZ2NoYW5nIHJvYWQKKwkJCQlTaGFuZ2hhaSAgMjAwNDM2CisJCQkJQ0hJTkEKKworQjAtNzUtRDUgICAoaGV4KQkJWlRFIENvcnBvcmF0aW9uCitCMDc1RDUgICAgIChiYXNlIDE2KQkJWlRFIENvcnBvcmF0aW9uCisJCQkJMTIvRixaVEUgUiZEIEJ1aWxkaW5nLEtlamluYW4gUm9hZCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworQjAtODEtRDggICAoaGV4KQkJSS1zeXMgQ29ycAorQjA4MUQ4ICAgICAoYmFzZSAxNikJCUktc3lzIENvcnAKKwkJCQkyNDU3IEF2aWF0aW9uIEF2ZQorCQkJCVN1aXRlIDkwMAorCQkJCU4uIENoYXJsZXN0b24gIFNvdXRoIENhcm9saW5hIDI5NDA2CisJCQkJVU5JVEVEIFNUQVRFUworCitCMC04OS05MSAgIChoZXgpCQlMR0UgCitCMDg5OTEgICAgIChiYXNlIDE2KQkJTEdFIAorCQkJCTYwLTM5ICwgS2FzYW4gLWRvbmcgLCBHdW1jaGVvbi1ndS4KKwkJCQlTZW91bCAgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQjAtOTAtNzQgICAoaGV4KQkJRnVsYW4gRWxlY3Ryb25pY3MgTGltaXRlZAorQjA5MDc0ICAgICAoYmFzZSAxNikJCUZ1bGFuIEVsZWN0cm9uaWNzIExpbWl0ZWQKKwkJCQlGbGF0IEImQywzL0YsQTEgQmxvY2ssIEdhb3hpbiBDeWJlci1UZWNoIFpvbmUsTmFuc2hhbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitCMC05MS0zNCAgIChoZXgpCQlUYWxlbworQjA5MTM0ICAgICAoYmFzZSAxNikJCVRhbGVvCisJCQkJNDE0MCBEdWJsaW4gQmx2ZAorCQkJCVN1aXRlIDQwMAorCQkJCUR1YmxpbiBDYWxpZm9ybmlhIDk0NTY4CisJCQkJVU5JVEVEIFNUQVRFUworCitCMC05Ny0zQSAgIChoZXgpCQlFLUZ1ZWwgQ29ycG9yYXRpb24KK0IwOTczQSAgICAgKGJhc2UgMTYpCQlFLUZ1ZWwgQ29ycG9yYXRpb24KKwkJCQkxNTQ2NiBMb3MgR2F0b3MgQmx2ZC4gIzM3CisJCQkJTG9zIEdhdG9zIENBIDk1MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCitCMC05OS0yOCAgIChoZXgpCQlGdWppdHN1IExpbWl0ZWQKK0IwOTkyOCAgICAgKGJhc2UgMTYpCQlGdWppdHN1IExpbWl0ZWQKKwkJCQlNdXNhc2hpLWtvc3VnaSBUb3dlciBQbGFjZSBCbGRnLiwKKwkJCQk0MDMsIEtvc3VnaS1jaG8gMS1jaG9tZSwgTmFrYWhhcmEta3UKKwkJCQlLYXdhc2FraSBLYW5hZ2F3YSAyMTEtMDA2MworCQkJCUpBUEFOCisKK0IwLTlBLUUyICAgKGhleCkJCVNURU1NRVIgSU1BR0lORyBHbWJICitCMDlBRTIgICAgIChiYXNlIDE2KQkJU1RFTU1FUiBJTUFHSU5HIEdtYkgKKwkJCQlHdXRlbmJlcmdzdHIuIDExCisJCQkJUHVjaGhlaW0gQnkgODIxNzgKKwkJCQlHRVJNQU5ZCisKK0IwLTlCLUQ0ICAgKGhleCkJCUdOSCBTb2Z0d2FyZSBJbmRpYSBQcml2YXRlIExpbWl0ZWQKK0IwOUJENCAgICAgKGJhc2UgMTYpCQlHTkggU29mdHdhcmUgSW5kaWEgUHJpdmF0ZSBMaW1pdGVkCisJCQkJOS8xNCBTZW5nYW5pIEFtbWFuIEtvaWwgU3RyZWV0CisJCQkJTWFkdXZhbmthcmFpLCBHdWluZHkKKwkJCQlDaGVubmFpIFRhbWlsbmFkdSA2MDAwMzIKKwkJCQlJTkRJQQorCitCMC1BMS0wQSAgIChoZXgpCQlQaXZvdGFsIFN5c3RlbXMgQ29ycG9yYXRpb24KK0IwQTEwQSAgICAgKGJhc2UgMTYpCQlQaXZvdGFsIFN5c3RlbXMgQ29ycG9yYXRpb24KKwkJCQk0NjgzICBDaGFib3QgRHJpdmUKKwkJCQlQbGVhc2FudG9uIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCitCMC1BNy0yQSAgIChoZXgpCQlFbnNlbWJsZSBEZXNpZ25zLCBJbmMuCitCMEE3MkEgICAgIChiYXNlIDE2KQkJRW5zZW1ibGUgRGVzaWducywgSW5jLgorCQkJCTg3MCBHb2xkIEZsYXQgUm9hZAorCQkJCU5ldmFkYSBDaXR5IENBIDk1OTU5CisJCQkJVU5JVEVEIFNUQVRFUworCitCMC1BQS0zNiAgIChoZXgpCQlHVUFOR0RPTkcgT1BQTyBNT0JJTEUgVEVMRUNPTU1VTklDQVRJT05TIENPUlAuLExURC4KK0IwQUEzNiAgICAgKGJhc2UgMTYpCQlHVUFOR0RPTkcgT1BQTyBNT0JJTEUgVEVMRUNPTU1VTklDQVRJT05TIENPUlAuLExURC4KKwkJCQlOTy4xOCBIQUlCSU4gUk9BRAorCQkJCVdVU0hBLENIQU5HJ0FOCisJCQkJRE9OR0dVQU4gR1VBTkdET05HIDUyMzg2MAorCQkJCUNISU5BCisKK0IwLUIzLTJCICAgKGhleCkJCVNsaWNhbiBTcC4geiBvLm8uCitCMEIzMkIgICAgIChiYXNlIDE2KQkJU2xpY2FuIFNwLiB6IG8uby4KKwkJCQlNLiBLb25vcG5pY2tpZWogMTgKKwkJCQlCeWRnb3N6Y3ogS3VqYXdza28tUG9tb3Jza2llIDg1LTEyNAorCQkJCVBPTEFORAorCitCMC1COC1ENSAgIChoZXgpCQlOYW5qaW5nIE5lbmdydWkgQXV0byBFcXVpcG1lbnQgQ08uLEx0ZAorQjBCOEQ1ICAgICAoYmFzZSAxNikJCU5hbmppbmcgTmVuZ3J1aSBBdXRvIEVxdWlwbWVudCBDTy4sTHRkCisJCQkJTm8uMTA4IEdhbmppYWJpYW4gRWFzdCBZYW9odWEgVG93bgorCQkJCU5hbmppbmcgSmlhbmdzdSAyMTAwNDYKKwkJCQlDSElOQQorCitCMC1CRC1BMSAgIChoZXgpCQlaQUtMQUQgRUxFS1RST05JQ1pOWSBTSU1TCitCMEJEQTEgICAgIChiYXNlIDE2KQkJWkFLTEFEIEVMRUtUUk9OSUNaTlkgU0lNUworCQkJCVBPRCBTS0FSUEEgNTFBCisJCQkJQllER09TWkNaIEtVSkFXU0tPLVBPTU9SU0tJRSA4NS03OTYKKwkJCQlQT0xBTkQKKworQjAtQkYtOTkgICAoaGV4KQkJV0laSVRET05HRE8KK0IwQkY5OSAgICAgKGJhc2UgMTYpCQlXSVpJVERPTkdETworCQkJCTJGLCAyOTktMSwgMy1ET05HLCBTVU5HU1UgMi1HQQorCQkJCVNVTkdET05HLUtVCisJCQkJU0VPVUwgIDEzMy04MzMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQjAtQzYtOUEgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworQjBDNjlBICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5IAorCQkJCVVOSVRFRCBTVEFURVMKKworQjAtQzgtQUQgICAoaGV4KQkJUGVvcGxlIFBvd2VyIENvbXBhbnkKK0IwQzhBRCAgICAgKGJhc2UgMTYpCQlQZW9wbGUgUG93ZXIgQ29tcGFueQorCQkJCTYyMCBMb3dlbGwgQXZlCisJCQkJUGFsbyBBbHRvIENBIDk0MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCitCMC1FMy05RCAgIChoZXgpCQlDQVQgU1lTVEVNIENPLixMVEQuCitCMEUzOUQgICAgIChiYXNlIDE2KQkJQ0FUIFNZU1RFTSBDTy4sTFRELgorCQkJCTMtMTQ3LTI3IEhpZ2FzaS1zaW5tYWNoaSBIaXJvaGF0YS1rdQorCQkJCUhpbWVqaSBIeW9nbyA2NzEtMTEyMQorCQkJCUpBUEFOCisKK0IwLUU3LTU0ICAgKGhleCkJCTJXaXJlCitCMEU3NTQgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKK0IwLUU5LTdFICAgKGhleCkJCUFkdmFuY2VkIE1pY3JvIFBlcmlwaGVyYWxzCitCMEU5N0UgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgTWljcm8gUGVyaXBoZXJhbHMKKwkJCQlVbml0IDEgSGFycmllciBIb3VzZQorCQkJCVNlZGdld2F5IEJ1aXNuZXNzIFBhcmsKKwkJCQlXaXRjaGZvcmQgQ2FtYnJpZGdlc2hpcmUgQ0I2IDJIWQorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0IwLUYxLUJDICAgKGhleCkJCURoZW1heCBJbmdlbmllcm9zIEx0ZGEKK0IwRjFCQyAgICAgKGJhc2UgMTYpCQlEaGVtYXggSW5nZW5pZXJvcyBMdGRhCisJCQkJU2lldGUgT3JpZW50ZSAxMjM0CisJCQkJVmluYSBkZWwgTWFyIFJlZ2lvbiBkZSBWYWxwYXJhaXNvIDI1MzA5NTQKKwkJCQlDSElMRQorCitCNC0wMS00MiAgIChoZXgpCQlHQ0kgU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLExURAorQjQwMTQyICAgICAoYmFzZSAxNikJCUdDSSBTY2llbmNlICYgVGVjaG5vbG9neSBDby4sTFRECisJCQkJTm8uMzgxLHhpbmdhbmd6aG9uZyByb2FkICwKKwkJCQlHdWFuZ1pob3UgR3VhbmdEb25nIDUxMDMxMAorCQkJCUNISU5BCisKK0I0LTA3LUY5ICAgKGhleCkJCVNBTVNVTkcgRUxFQ1RSTy1NRUNIQU5JQ1MKK0I0MDdGOSAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEVMRUNUUk8tTUVDSEFOSUNTCisJCQkJU3V3b24tU2ksIEd5ZW9uZ2dpX0RvLCBLb3JlYQorCQkJCVN1d29uIEd5ZW9uZ2dpX0RvIDQ0My03NDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQjQtMDgtMzIgICAoaGV4KQkJVEMgQ29tbXVuaWNhdGlvbnMKK0I0MDgzMiAgICAgKGJhc2UgMTYpCQlUQyBDb21tdW5pY2F0aW9ucworCQkJCTE3ODgxIENhcnR3cmlnaHQgUm9hZAorCQkJCUlydmluZSBDQSA5MjYxNAorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtMEUtREMgICAoaGV4KQkJTEctRXJpY3Nzb24gQ28uLEx0ZC4KK0I0MEVEQyAgICAgKGJhc2UgMTYpCQlMRy1Fcmljc3NvbiBDby4sTHRkLgorCQkJCTUzMyxIb2d5ZS0xZG9uZyxEb25nYW4tZ3UKKwkJCQlMRyBSJkQgQ29tcGxleC5MRy1Fcmljc3NvbiwKKwkJCQlBbnlhbmctc2hpIEt5dW5na2ktZG8gNDMxLTc0OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCNC0xNC04OSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitCNDE0ODkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitCNC0yOC1GMSAgIChoZXgpCQlFLVByaW1lIENvLiwgTHRkLgorQjQyOEYxICAgICAoYmFzZSAxNikJCUUtUHJpbWUgQ28uLCBMdGQuCisJCQkJUm0xMjA3LCBLb2xvbiBTY2llbmNlIFZhbGxleSwgODExLAorCQkJCUt1cm8tRG9uZywgS3Vyby1LdQorCQkJCVNlb3VsICAxNTIwNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQjQtMkEtMzkgICAoaGV4KQkJT1JCSVQgTUVSUkVULCBzcG9sLiBzIHIuIG8uCitCNDJBMzkgICAgIChiYXNlIDE2KQkJT1JCSVQgTUVSUkVULCBzcG9sLiBzIHIuIG8uCisJCQkJVm9kbmFuc2thIDY3NS8zMAorCQkJCVByYWhhICAxOTggMDAKKwkJCQlDWkVDSCBSRVBVQkxJQworCitCNC0yQy1CRSAgIChoZXgpCQlEaXJlY3QgUGF5bWVudCBTb2x1dGlvbnMgTGltaXRlZAorQjQyQ0JFICAgICAoYmFzZSAxNikJCURpcmVjdCBQYXltZW50IFNvbHV0aW9ucyBMaW1pdGVkCisJCQkJOTggQW56YWMgQXZlbnVlCisJCQkJQXVja2xhbmQgIDEwMzUKKwkJCQlORVcgWkVBTEFORAorCitCNC0zNS1GNyAgIChoZXgpCQlaaGVqaWFuZyBQZWFybWFpbiBFbGVjdHJvbmljcyBDby5sdGQuCitCNDM1RjcgICAgIChiYXNlIDE2KQkJWmhlamlhbmcgUGVhcm1haW4gRWxlY3Ryb25pY3MgQ28ubHRkLgorCQkJCTRGIFlpdGFpIE1hbnNpb24sIDc2IEd1Y3VpIFJvYWQsCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworQjQtMzctNDEgICAoaGV4KQkJQ29uc2VydCwgSW5jLgorQjQzNzQxICAgICAoYmFzZSAxNikJCUNvbnNlcnQsIEluYy4KKwkJCQk0NzAwIEZhbGxzIG9mIE5ldXNlIFJkLgorCQkJCVN1aXRlIDM0MAorCQkJCVJhbGVpZ2ggTkMgMjc2MDkKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LTM5LUQ2ICAgKGhleCkJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKK0I0MzlENiAgICAgKGJhc2UgMTYpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCisJCQkJODAwIEZvb3RoaWxscyBCbHZkLgorCQkJCVJvc2V2aWxsZSBDYWxpZm9ybmlhIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCitCNC0zRC1CMiAgIChoZXgpCQlEZWdyZWFuZSBIb3Jpem9uCitCNDNEQjIgICAgIChiYXNlIDE2KQkJRGVncmVhbmUgSG9yaXpvbgorCQkJCTczMCBSdWUgZGUgbCYjMzk7SW5pdGlhdGl2ZQorCQkJCUN1ZXJzIFZhciA4MzM5MAorCQkJCUZSQU5DRQorCitCNC00MS03QSAgIChoZXgpCQlTaGVuWmhlbiBHb25namluIEVsZWN0cm9uaWNzIENvLixMdGQKK0I0NDE3QSAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBHb25namluIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQk0RixCYWl5aW5nIEJ1aWxkaW5nLCBOby4xMDE5LE5hbmhhaSBSRCxTaGVrb3UKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDY3CisJCQkJQ0hJTkEKKworQjQtNEMtQzIgICAoaGV4KQkJTlIgRUxFQ1RSSUMgQ08uLCBMVEQKK0I0NENDMiAgICAgKGJhc2UgMTYpCQlOUiBFTEVDVFJJQyBDTy4sIExURAorCQkJCTY5LFN1eXVhbiBBdmVudWUKKwkJCQlKaWFuZ25pbmcKKwkJCQlOYW5qaW5nIEppYW5nc3UgMjExMTAyCisJCQkJQ0hJTkEKKworQjQtNTItNTMgICAoaGV4KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CitCNDUyNTMgICAgIChiYXNlIDE2KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CisJCQkJMTI4MCBEaXNjIERyaXZlCisJCQkJU2hha29wZWUgTU4gNTUzNzkKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LTU4LTYxICAgKGhleCkJCUNSZW1vdGUsIExMQworQjQ1ODYxICAgICAoYmFzZSAxNikJCUNSZW1vdGUsIExMQworCQkJCTExOTUgTm9lbCBEcml2ZQorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LTVDLUE0ICAgKGhleCkJCVRoaW5nLXRhbGsgV2lyZWxlc3MgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24gTGltaXRlZAorQjQ1Q0E0ICAgICAoYmFzZSAxNikJCVRoaW5nLXRhbGsgV2lyZWxlc3MgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24gTGltaXRlZAorCQkJCTQ5OCBHdW8gU2hvdSBKaW5nIFJvYWQsIFN1aXRlIDEwNDAyCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKK0I0LTc0LTlGICAgKGhleCkJCWFza2V5IGNvbXB1dGVyIGNvcnAKK0I0NzQ5RiAgICAgKGJhc2UgMTYpCQlhc2tleSBjb21wdXRlciBjb3JwCisJCQkJMTEwRixOTy4xMTksQ0hJRU5LQU5HIFJELENIVU5HLUhPLAorCQkJCVRBSVBFSSAyMzU4NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQjQtODItRkUgICAoaGV4KQkJQXNrZXkgQ29tcHV0ZXIgQ29ycAorQjQ4MkZFICAgICAoYmFzZSAxNikJCUFza2V5IENvbXB1dGVyIENvcnAKKwkJCQkxMEYsTk8uMTE5LENISUVOS0FORyBSRCxDSFVORy1ITywKKwkJCQlUQUlQRUkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCNC05OS1CQSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKK0I0OTlCQSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTWFpbGNvZGUgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LUE0LUUzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0I0QTRFMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LUE1LUE5ICAgKGhleCkJCU1PREkgR21iSAorQjRBNUE5ICAgICAoYmFzZSAxNikJCU1PREkgR21iSAorCQkJCUthcGVsbGVud2VnIDIxCisJCQkJUkVJQ0hTSE9GLVNpbnNwZXJ0ICA1MTU4MAorCQkJCUdFUk1BTlkKKworQjQtQUEtNEQgICAoaGV4KQkJRW5zZXF1ZW5jZSwgSW5jLgorQjRBQTREICAgICAoYmFzZSAxNikJCUVuc2VxdWVuY2UsIEluYy4KKwkJCQkxMTEgU1cgNXRoIEF2ZSBTdWl0ZSAxNDAwCisJCQkJUG9ydGxhbmQgT1IgOTcyMDQKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LUIwLTE3ICAgKGhleCkJCUF2YXlhLCBJbmMKK0I0QjAxNyAgICAgKGJhc2UgMTYpCQlBdmF5YSwgSW5jCisJCQkJMjExIE1vdW50IEFpcnkgUm9hZCAKKwkJCQlCYXNraW5nIFJpZGdlIE5KIDA3OTIwLTIzMTEgCisJCQkJVU5JVEVEIFNUQVRFUworCitCNC1CNS1BRiAgIChoZXgpCQlNaW5zdW5nIEVsZWN0cm9uaWNzCitCNEI1QUYgICAgIChiYXNlIDE2KQkJTWluc3VuZyBFbGVjdHJvbmljcworCQkJCU1lZ2EtdmFsbGV5ICM2MjAKKwkJCQlEb25nYW4tZ3UgR3dhbnlhbmctZG9uZywgNzk5CisJCQkJQW55YW5nLXNpIEt5ZW9uZ2dpLWRvIDQzMS03NjcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQjQtQjgtOEQgICAoaGV4KQkJVGh1aCBDb21wYW55CitCNEI4OEQgICAgIChiYXNlIDE2KQkJVGh1aCBDb21wYW55CisJCQkJNjA1ICBUZXJyaXRvcmlhbCBEcgorCQkJCVN1aXRlIEMKKwkJCQlCb2xpbmdicm9vayBJTCA2MDQ0MAorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtQzQtNEUgICAoaGV4KQkJVlhMIGVUZWNoIFB2dCBMdGQKK0I0QzQ0RSAgICAgKGJhc2UgMTYpCQlWWEwgZVRlY2ggUHZ0IEx0ZAorCQkJCSM5MSwgMTF0aCBNYWluLCBCZWd1ciBNYWluIFJvYWQKKwkJCQlIb25nYXNhbmRyYQorCQkJCUJhbmdhbG9yZSBLYXJuYXRha2EgNTYwMDY4CisJCQkJSU5ESUEKKworQjQtQzctOTkgICAoaGV4KQkJTW90b3JvbGEgU29sdXRpb25zIEluYy4KK0I0Qzc5OSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBTb2x1dGlvbnMgSW5jLgorCQkJCTEgTW90b3JvbGEgUGxhemEKKwkJCQlIb2x0c3ZpbGxlIE5ZIDExNzQxCisJCQkJVU5JVEVEIFNUQVRFUworCitCNC1DOC0xMCAgIChoZXgpCQlVTVBJIEVsZXR0cm9uaWNhCitCNEM4MTAgICAgIChiYXNlIDE2KQkJVU1QSSBFbGV0dHJvbmljYQorCQkJCVZpYSBSZXNwaWdoaSwgMTUKKwkJCQlDYXR0b2xpY2EgIDQ3ODQxCisJCQkJSVRBTFkKKworQjQtQ0YtREIgICAoaGV4KQkJU2hlbnpoZW4gSml1emhvdSBFbGVjdHJpYyBDby4sTFRECitCNENGREIgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gSml1emhvdSBFbGVjdHJpYyBDby4sTFRECisJCQkJNkYsSml1emhvdSBFbGVjdHJpYyBCdWlsZGluZyxTb3V0aGVybiBOby4xMlJELixIaS1UZWNoIEluZHVzdHJpYWwgUGFyayxOYW5zaGFuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitCNC1FMC1DRCAgIChoZXgpCQlJTyBUdXJiaW5lLCBJbmMuCitCNEUwQ0QgICAgIChiYXNlIDE2KQkJSU8gVHVyYmluZSwgSW5jLgorCQkJCTMwMzEgVGlzY2ggV2F5LCBTdWl0ZSA0NTAKKwkJCQlTYW4gSm9zZSBDQSA5NTEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtRUQtMTkgICAoaGV4KQkJUGllIERpZ2l0YWwsIEluYy4KK0I0RUQxOSAgICAgKGJhc2UgMTYpCQlQaWUgRGlnaXRhbCwgSW5jLgorCQkJCTU3NSBNYXJrZXQgc3QuLCA4dGggZmxvb3IKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTA1LTI4MjMKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LUVELTU0ICAgKGhleCkJCVdvaGxlciBUZWNobm9sb2dpZXMKK0I0RUQ1NCAgICAgKGJhc2UgMTYpCQlXb2hsZXIgVGVjaG5vbG9naWVzCisJCQkJMzEwNTUgSHVudHdvb2QgQXZlbnVlCisJCQkJSGF5d2FyZCBDQSA5NDU0NAorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtRUUtRDQgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKK0I0RUVENCAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworQjQtRjMtMjMgICAoaGV4KQkJUEVUQVRFTCBJTkMuCitCNEYzMjMgICAgIChiYXNlIDE2KQkJUEVUQVRFTCBJTkMuCisJCQkJIzMyMiBUSEUgTyBWSUxMRSA3MjAtMjUsIFlFT0tTQU0tRE9ORworCQkJCUdBTkdOQU0tR1UgU0VPVUwgMTM1MDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0I0LUZDLTc1ICAgKGhleCkJCVNFTUEgRWxlY3Ryb25pY3MoSEspIENPLixMVEQKK0I0RkM3NSAgICAgKGJhc2UgMTYpCQlTRU1BIEVsZWN0cm9uaWNzKEhLKSBDTy4sTFRECisJCQkJWGlhbGluZ2JlaSBJbmR1c3RyaWFsIFpvbmUgIExpYW9idSwgCisJCQkJRG9uZ2d1YW4gR3Vhbmdkb25nIDUyMzQxMQorCQkJCUNISU5BCisKK0I4LTBCLTlEICAgKGhleCkJCVJPUEVYIEluZHVzdHJpZS1FbGVrdHJvbmlrIEdtYkgKK0I4MEI5RCAgICAgKGJhc2UgMTYpCQlST1BFWCBJbmR1c3RyaWUtRWxla3Ryb25payBHbWJICisJCQkJR2Fuc2FlY2tlciAyMQorCQkJCUJpZXRpZ2hlaW0tQmlzc2luZ2VuIEJhZGVuIFd1ZXJ0dGVtYmVyZyA3NDMyMQorCQkJCUdFUk1BTlkKKworQjgtMjgtOEIgICAoaGV4KQkJUGFya2VyIEhhbm5pZmluCitCODI4OEIgICAgIChiYXNlIDE2KQkJUGFya2VyIEhhbm5pZmluCisJCQkJQ29uZGl0aW9uIE1vbml0b3JpbmcgQ2VudHJlCisJCQkJQnJ1bmVsIFdheQorCQkJCVRoZXRmb3JkIE5vcmZvbGsgSVAyNCAxSFAKKwkJCQlVTklURUQgS0lOR0RPTQorCitCOC0yQS1EQyAgIChoZXgpCQlFRlIgRXVyb3BpP29laXNjaGUgRnVuay1SdW5kc3RldWVydW5nIEdtYkgKK0I4MkFEQyAgICAgKGJhc2UgMTYpCQlFRlIgRXVyb3BpP29laXNjaGUgRnVuay1SdW5kc3RldWVydW5nIEdtYkgKKwkJCQlOeW1waGVuYnVyZ2VyIFN0ci4gMjBiCisJCQkJTXVuaWNoICA4MDMzNQorCQkJCUdFUk1BTlkKKworQjgtM0EtN0IgICAoaGV4KQkJV29ybGRwbGF5IChDYW5hZGEpIEluYy4KK0I4M0E3QiAgICAgKGJhc2UgMTYpCQlXb3JsZHBsYXkgKENhbmFkYSkgSW5jLgorCQkJCTgwMy0yNHRoIEF2ZSBTRSwgVW5pdCAyMDAKKwkJCQlDYWxnYXJ5IEFsYmVydGEgVDJHIDFQNQorCQkJCUNBTkFEQQorCitCOC0zRC00RSAgIChoZXgpCQlTaGVuemhlbiBDdWx0cmF2aWV3IERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkIFNoYW5naGFpIEJyYW5jaAorQjgzRDRFICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEN1bHRyYXZpZXcgRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQgU2hhbmdoYWkgQnJhbmNoCisJCQkJMi9GLEJ1aWxkaW5nIzUsMTY5MENhaWx1biBSb2FkLFpoYW5namlhbmcgSGktdGVjaCBQYXJrLAorCQkJCVNoYW5naGFpICAyMDEyMDMKKwkJCQlDSElOQQorCitCOC00MS01RiAgIChoZXgpCQlBU1AgQUcKK0I4NDE1RiAgICAgKGJhc2UgMTYpCQlBU1AgQUcKKwkJCQlNYXgtIFBsYW5jay1TdHIuIDE1IGEtYworCQkJCUVya3JhdGggTlJXIDQwNjk5CisJCQkJR0VSTUFOWQorCitCOC02MS02RiAgIChoZXgpCQlBY2N0b24gV2lyZWxlc3MgQnJvYWRiYW5kKEFXQiksIENvcnAuCitCODYxNkYgICAgIChiYXNlIDE2KQkJQWNjdG9uIFdpcmVsZXNzIEJyb2FkYmFuZChBV0IpLCBDb3JwLgorCQkJCU5vLjEgQ3JlYXRpb24gUmQgSUlJLCBTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgIDMwMDc3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCOC02NC05MSAgIChoZXgpCQlDSyBUZWxlY29tIEx0ZAorQjg2NDkxICAgICAoYmFzZSAxNikJCUNLIFRlbGVjb20gTHRkCisJCQkJS2VqaSBBdmVudWUsSGV5dWFuIEhpLXRlY2ggRGV2ZWxvcG1lbnQgWm9uZQorCQkJCUhleXVhbiAgR3Vhbmdkb25nIFByb3ZpbmNlIDUxNzAwMAorCQkJCUNISU5BCisKK0I4LTY1LTNCICAgKGhleCkJCUJvbHltaW4sIEluYy4KK0I4NjUzQiAgICAgKGJhc2UgMTYpCQlCb2x5bWluLCBJbmMuCisJCQkJMTNGLTEsIE5vLjIwLCBUYS1Mb25nIFJkLiwgCisJCQkJVGFpY2h1bmcgIDQwMzEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCOC03MC1GNCAgIChoZXgpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELiAKK0I4NzBGNCAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELiAKKwkJCQlOTy4gMjUsIFRIRSAzUkQgU3RyZWV0IEtVTlNIQU4gRVhQT1JUIFBST0NFU1NJTkcgWk9ORSAKKwkJCQlLVU5TSEFOIFNVWkhPVSAyMTUzMDAKKwkJCQlDSElOQQorCitCOC03OS03RSAgIChoZXgpCQlTZWN1cmUgTWV0ZXJzIChVSykgTGltaXRlZAorQjg3OTdFICAgICAoYmFzZSAxNikJCVNlY3VyZSBNZXRlcnMgKFVLKSBMaW1pdGVkCisJCQkJU2VjdXJlIEhvdXNlCisJCQkJTW9vcnNpZGUgUm9hZAorCQkJCVdpbmNoZXN0ZXIgSGFtcHNoaXJlIFNPMjMgN1JYCisJCQkJVU5JVEVEIEtJTkdET00KKworQjgtODctMUUgICAoaGV4KQkJR29vZCBNaW5kIEluZHVzdHJpZXMgQ28uLCBMdGQuCitCODg3MUUgICAgIChiYXNlIDE2KQkJR29vZCBNaW5kIEluZHVzdHJpZXMgQ28uLCBMdGQuCisJCQkJMjIsIFRhIFllb3UgMm5kIFN0LCAKKwkJCQlUYSBMaWFvIERpc3QuIAorCQkJCUthb2hzaXVuZyAgODMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCOC04RS0zQSAgIChoZXgpCQlJbmZpbml0ZSBUZWNobm9sb2dpZXMgSkxUCitCODhFM0EgICAgIChiYXNlIDE2KQkJSW5maW5pdGUgVGVjaG5vbG9naWVzIEpMVAorCQkJCU9mZmljZSAzMjAzLCBMZXZlbCAzMgorCQkJCUxpd2EgSGVpZ2h0cyBUb3dlcgorCQkJCUp1bWVpcmFoIExha2UgVG93ZXJzIER1YmFpIAorCQkJCVVOSVRFRCBBUkFCIEVNSVJBVEVTCisKK0I4LTkyLTFEICAgKGhleCkJCUJHIFQmYW1wO0EKK0I4OTIxRCAgICAgKGJhc2UgMTYpCQlCRyBUJmFtcDtBCisJCQkJNEYsIEwmYW1wO0MgVG93ZXIKKwkJCQkxMDI2LTUyIFNhbmJvbi1kb25nCisJCQkJR3VucG8tc2kgR3llb25nZ2ktZG8gNDM1LTg0NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCOC05NC1EMiAgIChoZXgpCQlSZXRhaWwgSW5ub3ZhdGlvbiBIVFQgQUIKK0I4OTREMiAgICAgKGJhc2UgMTYpCQlSZXRhaWwgSW5ub3ZhdGlvbiBIVFQgQUIKKwkJCQlTam9hbmdzdmFnZW4gMgorCQkJCVNvbGxlbnR1bmEgIFMtMTkyIDcyCisJCQkJU1dFREVOCisKK0I4LUEzLUUwICAgKGhleCkJCUJlblJ1aSBUZWNobm9sb2d5IENvLixMdGQKK0I4QTNFMCAgICAgKGJhc2UgMTYpCQlCZW5SdWkgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJTm8uMzAycm9vbSBCdWlsZGluZzUwMyBUYWlSYW4gVGVjaG5vUGFyay5GdVRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworQjgtQTgtQUYgICAoaGV4KQkJTG9naWMgUy5wLkEuCitCOEE4QUYgICAgIChiYXNlIDE2KQkJTG9naWMgUy5wLkEuCisJCQkJVmlhIEdhbGlsZWkgNQorCQkJCUNhc3NpbmEgZGUnIFBlY2NoaSBNSSAyMDA2MAorCQkJCUlUQUxZCisKK0I4LUFDLTZGICAgKGhleCkJCURlbGwgSW5jCitCOEFDNkYgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgVFggNzg3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKK0I4LUFGLTY3ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorQjhBRjY3ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCitCOC1CMS1DNyAgIChoZXgpCQlCVCZDT00gQ08uLExURAorQjhCMUM3ICAgICAoYmFzZSAxNikJCUJUJkNPTSBDTy4sTFRECisJCQkJIzExMDMsIEUmQyBWZW50dXJlIERyZWFtIFRvd2VyIElJCisJCQkJMTk3LTEwLCBHdXJvLTNkb25nLCBHdXJvLUd1LAorCQkJCVNlb3VsICAxNTItNzE5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0I4LUJBLTY4ICAgKGhleCkJCVhpJ2FuIEppemhvbmcgRGlnaXRhbCBDb21tdW5pY2F0aW9uIENvLixMdGQKK0I4QkE2OCAgICAgKGJhc2UgMTYpCQlYaSdhbiBKaXpob25nIERpZ2l0YWwgQ29tbXVuaWNhdGlvbiBDby4sTHRkCisJCQkJMTAgQmxvY2sgTk8uMSBFbnRlcnByaXNlIE5ld2x5LXR5cGVkIEluZHVzdHJpYWwgWm9uZSBIaWdoLVRlY2ggWm9uZSBYaWk/b2VpP29lYW4sQ2hpbmEKKwkJCQlYaSdhbiBTaGFhblhpIDcxMDExOQorCQkJCUNISU5BCisKK0I4LUJBLTcyICAgKGhleCkJCUN5bm92ZQorQjhCQTcyICAgICAoYmFzZSAxNikJCUN5bm92ZQorCQkJCTEwIGNpdGUgcm91Z2Vtb250CisJCQkJUGFyaXMgIDc1MDA5CisJCQkJRlJBTkNFCisKK0I4LUJFLUJGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0I4QkVCRiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0I4LUM3LTE2ICAgKGhleCkJCUZpYmVyaG9tZSBUZWxlY29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ28uLExURAorQjhDNzE2ICAgICAoYmFzZSAxNikJCUZpYmVyaG9tZSBUZWxlY29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ28uLExURAorCQkJCU5vLjUgRG9uZ3hpbiBSb2FkCisJCQkJSG9uZ3NoYW4gRGlzdHJpY3QKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzQKKwkJCQlDSElOQQorCitCOC1DNy01RCAgIChoZXgpCQlBcHBsZSBJbmMKK0I4Qzc1RCAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0I4LUNELUE3ICAgKGhleCkJCU1heGVsZXIgVGVjaG5vbG9naWVzIEx0ZC4KK0I4Q0RBNyAgICAgKGJhc2UgMTYpCQlNYXhlbGVyIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJMSBEb3duIFBsYWNlCisJCQkJTG9uZG9uIFVLIFc2IDlKSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0I4LUQwLTZGICAgKGhleCkJCUdVQU5HWkhPVSBIS1VTVCBGT0sgWUlORyBUVU5HIFJFU0VBUkNIIElOU1RJVFVURQorQjhEMDZGICAgICAoYmFzZSAxNikJCUdVQU5HWkhPVSBIS1VTVCBGT0sgWUlORyBUVU5HIFJFU0VBUkNIIElOU1RJVFVURQorCQkJCVJtIDQwMywgTm9ydGggb2YgU29mdHdhcmUgQnVpbGRpbmcsTmFuc2hhIElUIFBhcmssCisJCQkJTmFuc2hhIERpc3RyaWN0CisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyBQcml2aW5jZSA1MTE0NTgKKwkJCQlDSElOQQorCitCOC1ENC05RCAgIChoZXgpCQlNIFNldmVuIFN5c3RlbSBMdGQuCitCOEQ0OUQgICAgIChiYXNlIDE2KQkJTSBTZXZlbiBTeXN0ZW0gTHRkLgorCQkJCTI0RiwgVHJ1c3QgVG93ZXIgQmxkZywgMjc1LTcsIFlhbmdqYWUyLURvbmcsIFNlb2Noby1HdQorCQkJCVNlb3VsICAxMzctNzM5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0I4LUU1LTg5ICAgKGhleCkJCVBheXRlciBCVgorQjhFNTg5ICAgICAoYmFzZSAxNikJCVBheXRlciBCVgorCQkJCUJldWtlbHNkaWprIDEwNworCQkJCVJvdHRlcmRhbSBadWlkLUhvbGxhbmQgMzAyMSBBRQorCQkJCU5FVEhFUkxBTkRTCisKK0I4LUU3LTc5ICAgKGhleCkJCVBSSVZBVEUKK0I4RTc3OSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorQjgtRUUtNzkgICAoaGV4KQkJWVdpcmUgVGVjaG5vbG9naWVzLCBJbmMuCitCOEVFNzkgICAgIChiYXNlIDE2KQkJWVdpcmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTM3MiBPdmVyZGFsZQorCQkJCU1vbnRyZWFsIFFDIEgzRyAxVjMKKwkJCQlDQU5BREEKKworQjgtRjQtRDAgICAoaGV4KQkJSGVycm1hbm4gVWx0cmFzY2hhbGx0ZWNobmlrIEdtYkggJiBDby4gS2cKK0I4RjREMCAgICAgKGJhc2UgMTYpCQlIZXJybWFubiBVbHRyYXNjaGFsbHRlY2huaWsgR21iSCAmIENvLiBLZworCQkJCURlc2Nvc3RyLiAzLTkKKwkJCQlLYXJsc2JhZCBCYWRlbi1XdWVydHRlbWJlcmcgNzYzMDcKKwkJCQlHRVJNQU5ZCisKK0I4LUY3LTMyICAgKGhleCkJCUFyeWFrYSBOZXR3b3JrcyBJbmMKK0I4RjczMiAgICAgKGJhc2UgMTYpCQlBcnlha2EgTmV0d29ya3MgSW5jCisJCQkJNjkxIFMuIE1pbHBpdGFzIEJsdmQuLCAKKwkJCQlTdWl0ZSAyMDYKKwkJCQlNaWxwaXRhcyAgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKK0I4LUY5LTM0ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCitCOEY5MzQgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworQjgtRkYtNjEgICAoaGV4KQkJQXBwbGUKK0I4RkY2MSAgICAgKGJhc2UgMTYpCQlBcHBsZQorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworQjgtRkYtNkYgICAoaGV4KQkJU2hhbmdoYWkgVHlwcm90ZWNoIFRlY2hub2xvZ3kgQ28uTHRkCitCOEZGNkYgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgVHlwcm90ZWNoIFRlY2hub2xvZ3kgQ28uTHRkCisJCQkJRGVzaWduIEJ1aWxkaW5nIDkwMywgTk8uNjMsIAorCQkJCUNoaUZlbmcgUm9hZCxZYW5nUHUgRGlzdHJpY3QsCisJCQkJU2hhbmdoYWkgIDIwMDA5MgorCQkJCUNISU5BCisKK0I4LUZGLUZFICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCitCOEZGRkUgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCitCQy0wNS00MyAgIChoZXgpCQlBVk0gR21iSAorQkMwNTQzICAgICAoYmFzZSAxNikJCUFWTSBHbWJICisJCQkJQWx0LU1vYWJpdCA5NQorCQkJCUJlcmxpbiAgMTA1NTkKKwkJCQlHRVJNQU5ZCisKK0JDLTBELUE1ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCitCQzBEQTUgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0JDLTBGLTJCICAgKGhleCkJCUZPUlRVTkUgVEVDSEdST1VQIENPLixMVEQKK0JDMEYyQiAgICAgKGJhc2UgMTYpCQlGT1JUVU5FIFRFQ0hHUk9VUCBDTy4sTFRECisJCQkJNy04RixOby4xMTk4IE5vcnRoIFFpbnpob3UgUm9hZCwKKwkJCQlTaGFuZ2hhaSAgMjAwMjMzCisJCQkJQ0hJTkEKKworQkMtMTUtQTYgICAoaGV4KQkJVGFpd2FuIEphbnRlayBFbGVjdHJvbmljcyxMdGQuCitCQzE1QTYgICAgIChiYXNlIDE2KQkJVGFpd2FuIEphbnRlayBFbGVjdHJvbmljcyxMdGQuCisJCQkJNkYtMSxOby4xIFd1LUNodWFuIDFTdC4gUmQsV3UtS3UgSW5kdXN0cmlhbCBQYXJrLAorCQkJCVNpbmNod2FuZyBDaXR5IFRhaXBlaSBIc2llbiAyNDg5MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQkMtMjAtQkEgICAoaGV4KQkJSW5zcHVyIChTaGFuZG9uZykgRWxlY3Ryb25pYyBJbmZvcm1hdGlvbiBDby4sIEx0ZAorQkMyMEJBICAgICAoYmFzZSAxNikJCUluc3B1ciAoU2hhbmRvbmcpIEVsZWN0cm9uaWMgSW5mb3JtYXRpb24gQ28uLCBMdGQKKwkJCQlOby4xMDM2IFNodW55YSBSZC4KKwkJCQlKaW5hbiBTaGFuZG9uZyAyNTAxMDEKKwkJCQlDSElOQQorCitCQy0yOC00NiAgIChoZXgpCQlOZXh0QklUIENvbXB1dGluZyBQdnQuIEx0ZC4KK0JDMjg0NiAgICAgKGJhc2UgMTYpCQlOZXh0QklUIENvbXB1dGluZyBQdnQuIEx0ZC4KKwkJCQkzMC8yLCAybmQgRmxvb3IsIFIuSy4gUGxhemEsCisJCQkJQ01IIFJvYWQsIEluZGlyYW5hZ2FyCisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAwMzgKKwkJCQlJTkRJQQorCitCQy0zMC01QiAgIChoZXgpCQlEZWxsIEluYy4KK0JDMzA1QiAgICAgKGJhc2UgMTYpCQlEZWxsIEluYy4KKwkJCQlPbmUgRGVsbCBXYXksIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKK0JDLTM1LUU1ICAgKGhleCkJCUh5ZHJvIFN5c3RlbXMgQ29tcGFueQorQkMzNUU1ICAgICAoYmFzZSAxNikJCUh5ZHJvIFN5c3RlbXMgQ29tcGFueQorCQkJCTM3OTggUm91bmQgQm90dG9tIFJvYWQKKwkJCQlDaW5jaW5uYXRpIE9oaW8gNDUyNDQKKwkJCQlVTklURUQgU1RBVEVTCisKK0JDLTM4LUQyICAgKGhleCkJCVBhbmRhY2hpcCBMaW1pdGVkCitCQzM4RDIgICAgIChiYXNlIDE2KQkJUGFuZGFjaGlwIExpbWl0ZWQKKwkJCQlVbml0IDIxMCwgMi9GIChMYWtlc2lkZSAxKSwgQnVpbGRpbmcgMTUsIE5vLiA4IFNjaWVuY2UgUGFyayBXZXN0IEF2ZW51ZQorCQkJCUhvbmcgS29uZyBTY2llbmNlIFBhcmsgUGhhc2UgSUksIAorCQkJCVNoYXRpbiwgTi5ULiAgCisJCQkJSE9ORyBLT05HCisKK0JDLTNFLTEzICAgKGhleCkJCUFjY29yZGFuY2UgU3lzdGVtcyBJbmMuCitCQzNFMTMgICAgIChiYXNlIDE2KQkJQWNjb3JkYW5jZSBTeXN0ZW1zIEluYy4KKwkJCQkyRiwgTm8uIDMxLCBTZWMuIDYsIEhzaW4gWWkgUm9hZAorCQkJCVRhaXBlaSAgMTEwODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0JDLTQzLTc3ICAgKGhleCkJCUhhbmcgWmhvdSBIdWl0ZSBUZWNobm9sb2d5IENvLixsdGQuCitCQzQzNzcgICAgIChiYXNlIDE2KQkJSGFuZyBaaG91IEh1aXRlIFRlY2hub2xvZ3kgQ28uLGx0ZC4KKwkJCQlSbTEzMzgsQmxvY2sgQWk/b2VpP29lRnVMaSBUZWNobm9sb2d5IEJ1aWxkaW5nICxOby4zMjgsV2VuRXIgUmQKKwkJCQlIYW5nIFpob3UgWmhlIEppYW5nIDMxMDAxMgorCQkJCUNISU5BCisKK0JDLTQ3LTYwICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorQkM0NzYwICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCQy00RS0zQyAgIChoZXgpCQlDT1JFIFNUQUZGIENPLiwgTFRELgorQkM0RTNDICAgICAoYmFzZSAxNikJCUNPUkUgU1RBRkYgQ08uLCBMVEQuCisJCQkJU2hpbi1vc2FrYSBPcmllbnRhbCBCbGRnLiAxNEYsIDctMS0yNiBOaXNoaW5ha2FqaW1hCisJCQkJWW9kb2dhd2Eta3UgT3Nha2EgNTMyLTAwMTEKKwkJCQlKQVBBTgorCitCQy01Ri1GNCAgIChoZXgpCQlBU1JvY2sgSW5jb3Jwb3JhdGlvbgorQkM1RkY0ICAgICAoYmFzZSAxNikJCUFTUm9jayBJbmNvcnBvcmF0aW9uCisJCQkJMkYuLE5vLjM3LCBTZWMuMiwgSmhvbmd5YW5nIFMuUmQuLCBCZWl0b3UgRGlzdHJpYywgCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0JDLTY3LTg0ICAgKGhleCkJCUVudmlyb25pY3MgT3kKK0JDNjc4NCAgICAgKGJhc2UgMTYpCQlFbnZpcm9uaWNzIE95CisJCQkJR3JhYW5pbnRpZSA1CisJCQkJTWlra2VsaSAgNTAxOTAKKwkJCQlGSU5MQU5ECisKK0JDLTZBLTE2ICAgKGhleCkJCXRkdmluZQorQkM2QTE2ICAgICAoYmFzZSAxNikJCXRkdmluZQorCQkJCTMwMSBNYWlzb24gTWFydSBCdWlsZGluZyAKKwkJCQk4Ni05IE5vbmhlb24tZG9uZyBHYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQkMtNkUtNzYgICAoaGV4KQkJR3JlZW4gRW5lcmd5IE9wdGlvbnMgTHRkCitCQzZFNzYgICAgIChiYXNlIDE2KQkJR3JlZW4gRW5lcmd5IE9wdGlvbnMgTHRkCisJCQkJMyBTdC4gTWFyeSYjMzk7cyBDb3VydCwgTWFpbiBTdHJlZXQKKwkJCQlIYXJkd2ljaworCQkJCUNhbWJyaWRnZSBDYW1icmlkZ2VzaGlyZSBDQjIzIDdRUworCQkJCVVOSVRFRCBLSU5HRE9NCisKK0JDLTcxLUMxICAgKGhleCkJCVhUcmlsbGlvbiwgSW5jLgorQkM3MUMxICAgICAoYmFzZSAxNikJCVhUcmlsbGlvbiwgSW5jLgorCQkJCTEtMTItMy00RiAKKwkJCQlLYW5kYSBTdWRhLWNobworCQkJCUNoaXlvZGEta3UgVG9reW8gMTAxLTAwNDEKKwkJCQlKQVBBTgorCitCQy03Ni03MCAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCitCQzc2NzAgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxMDEwOAorCQkJCUNISU5BCisKK0JDLTc3LTM3ICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorQkM3NzM3ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworQkMtN0QtRDEgICAoaGV4KQkJUmFkaW8gRGF0YSBDb21tcworQkM3REQxICAgICAoYmFzZSAxNikJCVJhZGlvIERhdGEgQ29tbXMKKwkJCQk1LzIwLTMwIFN0dWJicyBTdHJlZXQKKwkJCQlTaWx2ZXJ3YXRlciAgTmV3IFNvdXRoIFdhbGVzIChOU1cpIDIxMjgKKwkJCQlBVVNUUkFMSUEKKworQkMtODEtOTkgICAoaGV4KQkJQkFTSUMgQ28uLEx0ZC4KK0JDODE5OSAgICAgKGJhc2UgMTYpCQlCQVNJQyBDby4sTHRkLgorCQkJCUtlaWVmdS1CdWlsZGluZyA5RgorCQkJCTQtMTMtOCBTaGliYQorCQkJCU1pbmF0by1rdSBUb2t5byAxMDgtMDAxNAorCQkJCUpBUEFOCisKK0JDLTgzLUE3ICAgKGhleCkJCVNIRU5aSEVOIENIVUFOR1dFSS1SR0IgRUxFQ1RST05JQ1MgQ08uLExUCitCQzgzQTcgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gQ0hVQU5HV0VJLVJHQiBFTEVDVFJPTklDUyBDTy4sTFQKKwkJCQlVbml0IEEgMTMtMTYvRixTa3l3b3J0aCBCbGRnLiwgR2FveGluIEF2ZS4xLlMuLE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ0RvbmcgIDUxODA1NworCQkJCUNISU5BCisKK0JDLTk5LUJDICAgKGhleCkJCUZvblNlZSBUZWNobm9sb2d5IEluYy4KK0JDOTlCQyAgICAgKGJhc2UgMTYpCQlGb25TZWUgVGVjaG5vbG9neSBJbmMuCisJCQkJMTRGLTIsIE5vLjMyLCBHYW90aWUgMm5kIFJkLiwKKwkJCQlaaHViZWkgQ2l0eSBIc2luY2h1IENvdW50eSAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0JDLTlELUE1ICAgKGhleCkJCURBU0NPTSBFdXJvcGUgR21iSAorQkM5REE1ICAgICAoYmFzZSAxNikJCURBU0NPTSBFdXJvcGUgR21iSAorCQkJCUhldXdlZyAzCisJCQkJVWxtIEJhZGVuLVd1ZXJ0dGVtYmVyZyA4OTA3OQorCQkJCUdFUk1BTlkKKworQkMtQTktRDYgICAoaGV4KQkJQ3liZXItUmFpbiwgSW5jLgorQkNBOUQ2ICAgICAoYmFzZSAxNikJCUN5YmVyLVJhaW4sIEluYy4KKwkJCQk1MjcyIEV2YW53b29kIEF2ZW51ZQorCQkJCU9hayBQYXJrIENhbGlmb3JuaWEgOTEzNzctNDgwOQorCQkJCVVOSVRFRCBTVEFURVMKKworQkMtQUUtQzUgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCitCQ0FFQzUgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdSwKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQkMtQjEtODEgICAoaGV4KQkJU0hBUlAgQ09SUE9SQVRJT04KK0JDQjE4MSAgICAgKGJhc2UgMTYpCQlTSEFSUCBDT1JQT1JBVElPTgorCQkJCTIyLTIyLE5hZ2Fpa2UtY2hvLAorCQkJCUFiZW5vLUtVLAorCQkJCU9zYWthLCAgNTQ1LTg1MjIKKwkJCQlKQVBBTgorCitCQy1CQi1DOSAgIChoZXgpCQlLZWxsZW5kb25rIEVsZWt0cm9uaWsgR21iSAorQkNCQkM5ICAgICAoYmFzZSAxNikJCUtlbGxlbmRvbmsgRWxla3Ryb25payBHbWJICisJCQkJVm9uLUh1ZW5lZmVsZC1TdHJhc3NlIDMKKwkJCQlDb2xvZ25lIE5SVyA1MDgyOQorCQkJCUdFUk1BTlkKKworQkMtQzYtMUEgICAoaGV4KQkJU1BFQ1RSQSBFTUJFRERFRCBTWVNURU1TCitCQ0M2MUEgICAgIChiYXNlIDE2KQkJU1BFQ1RSQSBFTUJFRERFRCBTWVNURU1TCisJCQkJS2hhc3JhIE5vLiAyNCwgVmlsbGFnZSBHaHVtbWFuLDFzdCBGbG9vciwgQ2hhd2xhIE1hbnNpb24sCisJCQkJQi9oLiBTYW50IFZpaGFyLCBVbmNoYSBQYXJ3YW5vbyxTZWN0b3ItMQorCQkJCVBBUldBTk9PIEhJTUFDSEFMIFBSQURFU0ggMTczMjIwCisJCQkJSU5ESUEKKworQkMtQ0QtNDUgICAoaGV4KQkJVk9JU01BUlQKK0JDQ0Q0NSAgICAgKGJhc2UgMTYpCQlWT0lTTUFSVAorCQkJCVZJQSBCRU5JR05PIENSRVNQSSAxMgorCQkJCU1JTEFOTyAgMjAxNTkKKwkJCQlJVEFMWQorCitCQy1ENS1CNiAgIChoZXgpCQlkMmQgdGVjaG5vbG9naWVzCitCQ0Q1QjYgICAgIChiYXNlIDE2KQkJZDJkIHRlY2hub2xvZ2llcworCQkJCTEwNjExIHJvdW5kd29vZCBnbGVuIGN0CisJCQkJSmFja3NvbnZpbGxlIEZsIDMyMjU2CisJCQkJVU5JVEVEIFNUQVRFUworCitCQy1FMC05RCAgIChoZXgpCQlFb3NsaW5rCitCQ0UwOUQgICAgIChiYXNlIDE2KQkJRW9zbGluaworCQkJCSM2MDIsIDkwMC0xCisJCQkJR3dhbnlhbmctRG9uZywgRG9uZ2FuLUd1CisJCQkJQW55YW5nLUNpdHkgS3lvbmdnaS1EbyA0MzEtMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0JDLUYyLUFGICAgKGhleCkJCWRldm9sbyBBRworQkNGMkFGICAgICAoYmFzZSAxNikJCWRldm9sbyBBRworCQkJCUNoYXJsb3R0ZW5idXJnZXIgQWxsZWUgNjAKKwkJCQlBYWNoZW4gIDUyMDY4CisJCQkJR0VSTUFOWQorCitCQy1GRi1BQyAgIChoZXgpCQlUT1BDT04gQ09SUE9SQVRJT04KK0JDRkZBQyAgICAgKGJhc2UgMTYpCQlUT1BDT04gQ09SUE9SQVRJT04KKwkJCQk3NS0xLCBIYXN1bnVtYS1jaG8KKwkJCQlJdGFiYXNoaS1rdSBUT0tZTyAxNzQtODU4MAorCQkJCUpBUEFOCisKK0MwLTBELTdFICAgKGhleCkJCUFkZGl0ZWNoLCBJbmMuCitDMDBEN0UgICAgIChiYXNlIDE2KQkJQWRkaXRlY2gsIEluYy4KKwkJCQkxMDkyNSBLaW5naHVyc3QKKwkJCQlTdWl0ZSA1MDAKKwkJCQlIb3VzdG9uIFRYIDc3MDk5CisJCQkJVU5JVEVEIFNUQVRFUworCitDMC0xMi00MiAgIChoZXgpCQlBbHBoYSBTZWN1cml0eSBQcm9kdWN0cworQzAxMjQyICAgICAoYmFzZSAxNikJCUFscGhhIFNlY3VyaXR5IFByb2R1Y3RzCisJCQkJMTA3MTUgU2lrZXMgUGxhY2UsIFN0ZS4gMjAwCisJCQkJQ2hhcmxvdHRlIE5DIDI4Mjc3CisJCQkJVU5JVEVEIFNUQVRFUworCitDMC0xRS05QiAgIChoZXgpCQlQaXhhdmkgQVMKK0MwMUU5QiAgICAgKGJhc2UgMTYpCQlQaXhhdmkgQVMKKwkJCQlEdXNhdmlrdmVpZW4gMzkKKwkJCQlTdGF2YW5nZXIgIDQwMDMKKwkJCQlOT1JXQVkKKworQzAtMjItNTAgICAoaGV4KQkJUFJJVkFURQorQzAyMjUwICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCitDMC0yNS0wNiAgIChoZXgpCQlBVk0gR21iSAorQzAyNTA2ICAgICAoYmFzZSAxNikJCUFWTSBHbWJICisJCQkJQWx0LU1vYWJpdCA5NQorCQkJCUJlcmxpbiAgMTA1NTkKKwkJCQlHRVJNQU5ZCisKK0MwLTI3LUI5ICAgKGhleCkJCUJlaWppbmcgTmF0aW9uYWwgUmFpbHdheSBSZXNlYXJjaCAmIERlc2lnbiBJbnN0aXR1dGUgIG9mIFNpZ25hbCAmIENvbW11bmljYXRpb24KK0MwMjdCOSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIE5hdGlvbmFsIFJhaWx3YXkgUmVzZWFyY2ggJiBEZXNpZ24gSW5zdGl0dXRlICBvZiBTaWduYWwgJiBDb21tdW5pY2F0aW9uCisJCQkJTm8uMTggQnVpbGRpbmcsIEh1YXl1YW4gWWlMaSxGZW5ndGFpIERpc3RyaWN0LAorCQkJCUJlaWppbmcgIDEwMDA3MworCQkJCUNISU5BCisKK0MwLTJCLUZDICAgKGhleCkJCWlORVMuIGFwcGxpZWQgaW5mb3JtYXRpY3MgR21iSAorQzAyQkZDICAgICAoYmFzZSAxNikJCWlORVMuIGFwcGxpZWQgaW5mb3JtYXRpY3MgR21iSAorCQkJCU9obXN0cmFzc2UgOQorCQkJCUx1ZHdpZ3NidXJnICA3MTY0MgorCQkJCUdFUk1BTlkKKworQzAtMzgtRjkgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKK0MwMzhGOSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworQzAtM0ItOEYgICAoaGV4KQkJTWluaWNvbSBEaWdpdGFsIFNpZ25hZ2UKK0MwM0I4RiAgICAgKGJhc2UgMTYpCQlNaW5pY29tIERpZ2l0YWwgU2lnbmFnZQorCQkJCTI0IEhlYnJvbiBSb2FkCisJCQkJSmVydXNhbGVtICA5MzU0MgorCQkJCUlTUkFFTAorCitDMC0zRi0wRSAgIChoZXgpCQlORVRHRUFSCitDMDNGMEUgICAgIChiYXNlIDE2KQkJTkVUR0VBUgorCQkJCTM1MCBFQVNUIFBMVU1FUklBIERSSVZFCisJCQkJU0FOIEpPU0UgQ0FMSUZPUk5JQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQzAtNjItNkIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQzA2MjZCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQzAtNkMtMEYgICAoaGV4KQkJRG9iYnMgU3RhbmZvcmQKK0MwNkMwRiAgICAgKGJhc2UgMTYpCQlEb2JicyBTdGFuZm9yZAorCQkJCTI3MTUgRWxlY3Ryb25pYyBMYW5lCisJCQkJRGFsbGFzIFRleGFzIDc1MjIwCisJCQkJVU5JVEVEIFNUQVRFUworCitDMC03RS00MCAgIChoZXgpCQlTSEVOWkhFTiBYREsgQ09NTVVOSUNBVElPTiBFUVVJUE1FTlQgQ08uLExURAorQzA3RTQwICAgICAoYmFzZSAxNikJCVNIRU5aSEVOIFhESyBDT01NVU5JQ0FUSU9OIEVRVUlQTUVOVCBDTy4sTFRECisJCQkJWERLIEJVSUxESU5HLE5PLjEgSU5EVVNUUklBTCBBUkVBLEJBTlRJQU4sTE9OR0dBTkcgRElTVFJJQ1QKKwkJCQlTSEVOWkhFTiBHVUFOR0RPTkcgNTE4MTI5CisJCQkJQ0hJTkEKKworQzAtODMtMEEgICAoaGV4KQkJMldpcmUKK0MwODMwQSAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQa3d5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLThCLTZGICAgKGhleCkJCVMgSSBTaXN0ZW1hcyBJbnRlbGlnZW50ZXMgRWxldHJvbmljb3MgTHRkYQorQzA4QjZGICAgICAoYmFzZSAxNikJCVMgSSBTaXN0ZW1hcyBJbnRlbGlnZW50ZXMgRWxldHJvbmljb3MgTHRkYQorCQkJCVJ1YSBBbWFkZXUgUGlvdHRvIDE2MQorCQkJCUN1cml0aWJhIFBhcmFuaT9vZSA4MTI4MDAyMAorCQkJCUJSQVpJTAorCitDMC05MS0zNCAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCitDMDkxMzQgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQuCisJCQkJUm9zZXZpbGxlIENhbGlmb3JuaWEgOTU3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLTlDLTkyICAgKGhleCkJCUNPQlkKK0MwOUM5MiAgICAgKGJhc2UgMTYpCQlDT0JZCisJCQkJQ09CWSBFbGVjdHJvbmljcyBTaGVuWmhlbiBSJkQgQ2VudGVyIAorCQkJCUJsb2NrIDMsVGFvWGlhIDJuZCBJbmR1c3RyaWFsIFpvbmUsTG9uZ0h1YSBUb3duLEJhb0FuIERpc3RyaWN0LAorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyA1MTgxMDkKKwkJCQlDSElOQQorCitDMC1BMi02RCAgIChoZXgpCQlBYmJvdHQgUG9pbnQgb2YgQ2FyZQorQzBBMjZEICAgICAoYmFzZSAxNikJCUFiYm90dCBQb2ludCBvZiBDYXJlCisJCQkJNDAwIENvbGxlZ2UgUm9hZCBFYXN0CisJCQkJUHJpbmNldG9uIE5KIDA4NTQwCisJCQkJVU5JVEVEIFNUQVRFUworCitDMC1CQS1FNiAgIChoZXgpCQlBcHBsaWNhdGlvbiBTb2x1dGlvbnMgKFNhZmV0eSBhbmQgU2VjdXJpdHkpIEx0ZAorQzBCQUU2ICAgICAoYmFzZSAxNikJCUFwcGxpY2F0aW9uIFNvbHV0aW9ucyAoU2FmZXR5IGFuZCBTZWN1cml0eSkgTHRkCisJCQkJVW5pdCAxNworCQkJCUNsaWZmZSBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCUxld2VzIEVhc3QgU3Vzc2V4IEJOOCA2SkwKKwkJCQlVTklURUQgS0lOR0RPTQorCitDMC1DMS1DMCAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKK0MwQzFDMCAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLUM1LTIwICAgKGhleCkJCVJ1Y2t1cyBXaXJlbGVzcworQzBDNTIwICAgICAoYmFzZSAxNikJCVJ1Y2t1cyBXaXJlbGVzcworCQkJCTg4MCBXZXN0IE1hdWRlIEF2ZS4KKwkJCQlTdWl0ZSAxMDEKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLUNCLTM4ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCitDMENCMzggICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzIAorCQkJCUNISU5BCisKK0MwLUNGLUEzICAgKGhleCkJCUNyZWF0aXZlIEVsZWN0cm9uaWNzICZhbXA7IFNvZnR3YXJlLCBJbmMuCitDMENGQTMgICAgIChiYXNlIDE2KQkJQ3JlYXRpdmUgRWxlY3Ryb25pY3MgJmFtcDsgU29mdHdhcmUsIEluYy4KKwkJCQk2NTAgU3VuZG93biBSb2FkCisJCQkJU291dGggRWxnaW4gSUwgNjAxNzcKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLUQwLTQ0ICAgKGhleCkJCVNBR0VNQ09NCitDMEQwNDQgICAgIChiYXNlIDE2KQkJU0FHRU1DT00KKwkJCQkyNTAsIFJvdXRlIGRlIGwnRW1wZXJldXIKKwkJCQlSVUVJTC1NQUxNQUlTT04gIDkyNTAwCisJCQkJRlJBTkNFCisKK0MwLUU0LTIyICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCitDMEU0MjIgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworQzAtRUEtRTQgICAoaGV4KQkJU29uaWN3YWxsCitDMEVBRTQgICAgIChiYXNlIDE2KQkJU29uaWN3YWxsCisJCQkJMjAwMSBMb2dpYyBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTI0LTM0NTIKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLUY4LURBICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KK0MwRjhEQSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgMjAxNjEzCisJCQkJQ0hJTkEKKworQzQtMEYtMDkgICAoaGV4KQkJSGVybWVzIGVsZWN0cm9uaWMgR21iSAorQzQwRjA5ICAgICAoYmFzZSAxNikJCUhlcm1lcyBlbGVjdHJvbmljIEdtYkgKKwkJCQlBbSBIYW5kd2Vya2VycGFyayAxCisJCQkJRXNzZW4gTlJXIDQ1MzA5CisJCQkJR0VSTUFOWQorCitDNC0xMC04QSAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKK0M0MTA4QSAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUKKwkJCQlTdWl0ZSAxMDEKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LTE2LUZBICAgKGhleCkJCVByeXNtIEluYworQzQxNkZBICAgICAoYmFzZSAxNikJCVByeXNtIEluYworCQkJCTE4MCBCYXl0ZWNoIERyaXZlCisJCQkJU3VpdGUgMTEwCisJCQkJU2FuIEpvc2UgQ2FsaWZvcm5pYSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQzQtMTctRkUgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorQzQxN0ZFICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzIAorCQkJCUNISU5BCisKK0M0LTE5LThCICAgKGhleCkJCURvbWluaW9uIFZvdGluZyBTeXN0ZW1zIENvcnBvcmF0aW9uCitDNDE5OEIgICAgIChiYXNlIDE2KQkJRG9taW5pb24gVm90aW5nIFN5c3RlbXMgQ29ycG9yYXRpb24KKwkJCQkyMTUgU3BhZGluYSBBdmVudWUKKwkJCQlTdWl0ZSAyMDAKKwkJCQlUb3JvbnRvIE9udGFyaW8gTTVUIDJDNworCQkJCUNBTkFEQQorCitDNC0xRS1DRSAgIChoZXgpCQlITUkgU291cmNlcyBMdGQuCitDNDFFQ0UgICAgIChiYXNlIDE2KQkJSE1JIFNvdXJjZXMgTHRkLgorCQkJCTUgRmxvb3IsIFN1aXRlIDIsIDIzMyBIc2luIFlpIFJvYWQsIFNlY3Rpb24gNAorCQkJCVRhaXBlaSAgMTA2ODEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0M0LTI0LTJFICAgKGhleCkJCUdhbHZhbmljIEFwcGxpZWQgU2NpZW5jZXMgSW5jCitDNDI0MkUgICAgIChiYXNlIDE2KQkJR2FsdmFuaWMgQXBwbGllZCBTY2llbmNlcyBJbmMKKwkJCQk3MDAwIEZpc2hlciBSb2FkIFNFCisJCQkJQ2FsZ2FyeSBBbGJlcnRhIFQySCAwVzMKKwkJCQlDQU5BREEKKworQzQtMkMtMDMgICAoaGV4KQkJQXBwbGUKK0M0MkMwMyAgICAgKGJhc2UgMTYpCQlBcHBsZQorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDYWxpZm9ybmlhIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitDNC0zNi1EQSAgIChoZXgpCQlSdXN0ZWxldGVjaCBMdGQuCitDNDM2REEgICAgIChiYXNlIDE2KQkJUnVzdGVsZXRlY2ggTHRkLgorCQkJCU9yZHpob25pa2lkemUgU3RyLiAxMSwgQmxkZy4gNDAsIE9mZi4gMTUgCisJCQkJTW9zY293ICAxMTU0MTkKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworQzQtM0QtQzcgICAoaGV4KQkJTkVUR0VBUgorQzQzREM3ICAgICAoYmFzZSAxNikJCU5FVEdFQVIKKwkJCQkzNTAgRUFTVCBQTFVNRVJJQSBEUklWRQorCQkJCVNBTiBKT1NFIENBTElGT1JOSUEgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LTQ2LTE5ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCitDNDQ2MTkgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzIAorCQkJCUNISU5BCisKK0M0LTRBLUQwICAgKGhleCkJCUZJUkVGTElFUyBSVExTCitDNDRBRDAgICAgIChiYXNlIDE2KQkJRklSRUZMSUVTIFJUTFMKKwkJCQkzMSBSVUUgR1VTVEFWRSBFSUZGRUwKKwkJCQljL28gUEVUQUxFCisJCQkJR1JFTk9CTEUgIDM4MDAwCisJCQkJRlJBTkNFCisKK0M0LTRCLTQ0ICAgKGhleCkJCU9tbmlwcmludCBJbmMuCitDNDRCNDQgICAgIChiYXNlIDE2KQkJT21uaXByaW50IEluYy4KKwkJCQkxOTIzIEVhc3QgRGVlcmUgQXZlLgorCQkJCVNhbnRhIEFuYSBDQSA5MjcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworQzQtNTUtQTYgICAoaGV4KQkJQ2FkYWMgSG9sZGluZ3MgTHRkCitDNDU1QTYgICAgIChiYXNlIDE2KQkJQ2FkYWMgSG9sZGluZ3MgTHRkCisJCQkJMSBOZXcgU3RyZWV0CisJCQkJTHV0b24gQmVkZm9yZHNoaXJlIExVMSA1RFgKKwkJCQlVTklURUQgS0lOR0RPTQorCitDNC01Ni0wMCAgIChoZXgpCQlHYWxsZW9uIEVtYmVkZGVkIENvbXB1dGluZworQzQ1NjAwICAgICAoYmFzZSAxNikJCUdhbGxlb24gRW1iZWRkZWQgQ29tcHV0aW5nCisJCQkJT3N0ZW5zam9ldmVpZW4gNDQKKwkJCQlPc2xvICBOLTA2NjcKKwkJCQlOT1JXQVkKKworQzQtNTktNzYgICAoaGV4KQkJRnVnb28KK0M0NTk3NiAgICAgKGJhc2UgMTYpCQlGdWdvbworCQkJCTEwMjQgMTR0aCBBdmUgU0UKKwkJCQlMZSBNYXJzIElBIDUxMDMxCisJCQkJVU5JVEVEIFNUQVRFUworCitDNC02My01NCAgIChoZXgpCQlVLVJha3UsIEluYy4KK0M0NjM1NCAgICAgKGJhc2UgMTYpCQlVLVJha3UsIEluYy4KKwkJCQk0MDEtMSBEZWJhCisJCQkJUml0dG8tc2hpIFNoaWdhIDUyMC0zMDQxCisJCQkJSkFQQU4KKworQzQtNzEtRkUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQzQ3MUZFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQzQtN0ItMkYgICAoaGV4KQkJQmVpamluZyBKb2luSG9wZSBJbWFnZSBUZWNobm9sb2d5IEx0ZC4KK0M0N0IyRiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEpvaW5Ib3BlIEltYWdlIFRlY2hub2xvZ3kgTHRkLgorCQkJCTYyNCBSb29tIC5BdXRvbWF0aW9uIEJ1aWxkaW5nLjk1IyBaaG9uZyBHdWFuY3VuIEVhc3QgUm9hZC5IYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMTkwCisJCQkJQ0hJTkEKKworQzQtN0QtNEYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQzQ3RDRGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQzQtODItM0YgICAoaGV4KQkJRnVqaWFuIE5ld2xhbmQgQXV0by1JRCBUZWNoLiBDbywuTHRkLgorQzQ4MjNGICAgICAoYmFzZSAxNikJCUZ1amlhbiBOZXdsYW5kIEF1dG8tSUQgVGVjaC4gQ28sLkx0ZC4KKwkJCQlOZXdsYW5kIFNjaWVuY2UgJiBUZWNobm9sb2d5IFBhcmssIE5vLjEgUnVqaWFuZyBXZXN0IFJkLiwgTWF3ZWkKKwkJCQlGdXpob3UgRnVqaWFuIDM1MDAxNQorCQkJCUNISU5BCisKK0M0LTg1LTA4ICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCitDNDg1MDggICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMCAKKwkJCQlNQUxBWVNJQQorCitDNC05My0xMyAgIChoZXgpCQkxMDBmaW8gbmV0d29ya3MgdGVjaG5vbG9neSBsbGMKK0M0OTMxMyAgICAgKGJhc2UgMTYpCQkxMDBmaW8gbmV0d29ya3MgdGVjaG5vbG9neSBsbGMKKwkJCQkyNTM0IGNyZXNjZW50IHN0LiBhcHQgM0YKKwkJCQlBc3RvcmlhIE5ldyB5b3JrIDExMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCitDNC1BQS1BMSAgIChoZXgpCQlTVU1NSVQgREVWRUxPUE1FTlQsIHNwb2wucyByLm8uCitDNEFBQTEgICAgIChiYXNlIDE2KQkJU1VNTUlUIERFVkVMT1BNRU5ULCBzcG9sLnMgci5vLgorCQkJCUsgVm9kb3RlY2kgMTk3CisJCQkJT3JlY2ggUHJhaGEtemFwYWQgMjUyIDI1CisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworQzQtQjUtMTIgICAoaGV4KQkJR2VuZXJhbCBFbGVjdHJpYyBEaWdpdGFsIEVuZXJneQorQzRCNTEyICAgICAoYmFzZSAxNikJCUdlbmVyYWwgRWxlY3RyaWMgRGlnaXRhbCBFbmVyZ3kKKwkJCQk0MjAwIFdpbGR3b29kIFBrd3kKKwkJCQlBdGxhbnRhIEdBIDMwMzM5CisJCQkJVU5JVEVEIFNUQVRFUworCitDNC1DRC00NSAgIChoZXgpCQlCZWlqaW5nIEJvb21zZW5zZSBUZWNobm9sb2d5IENPLixMVEQuCitDNENENDUgICAgIChiYXNlIDE2KQkJQmVpamluZyBCb29tc2Vuc2UgVGVjaG5vbG9neSBDTy4sTFRELgorCQkJCTgwMyBCdWlsZGluZyA0IElOVEVSV0VTVCBCdXNpbmVzcyBDZW50ZXIsTm8uOSBTb3V0aCBTaG91dGkgUm9hZCAsSGFpZGlhbkRpc3RyaWN0LAorCQkJCUJlaWppbmcgIDEwMDA0OAorCQkJCUNISU5BCisKK0M0LUQ0LTg5ICAgKGhleCkJCUppYW5nU3UgSm95cXVlIEluZm9ybWF0aW9uIEluZHVzdHJ5IENvLixMdGQKK0M0RDQ4OSAgICAgKGJhc2UgMTYpCQlKaWFuZ1N1IEpveXF1ZSBJbmZvcm1hdGlvbiBJbmR1c3RyeSBDby4sTHRkCisJCQkJMTAgIEZsb29yIFlhSHVhIEJ1aWxkaW5nLCBYaSdhbkJlaSBSb2FkLCAKKwkJCQlYdXpob3UgSmlhbmdTdSAyMjEwMDYKKwkJCQlDSElOQQorCitDNC1FMS03QyAgIChoZXgpCQlVMlMgY28uCitDNEUxN0MgICAgIChiYXNlIDE2KQkJVTJTIGNvLgorCQkJCTEwNC03MDYsIFNLIFZlbnRpdW0gQnVpbGRpbmcsIDUyMiwgRGFuZ2plb25nLURvbmcKKwkJCQlHdW5wby1zaSBHZW9uZ2dpLWRvIDQzNS03NzYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQzQtRUUtRjUgICAoaGV4KQkJT2NsYXJvLCBJbmMuCitDNEVFRjUgICAgIChiYXNlIDE2KQkJT2NsYXJvLCBJbmMuCisJCQkJMzQzIERhbmllbCBaZW5rZXIgRHIuLCBTdWl0ZSAxMDIKKwkJCQlIb3JzZWhlYWRzIE5ZIDE0ODQ1CisJCQkJVU5JVEVEIFNUQVRFUworCitDNC1GNC02NCAgIChoZXgpCQlTcGljYSBpbnRlcm5hdGlvbmFsCitDNEY0NjQgICAgIChiYXNlIDE2KQkJU3BpY2EgaW50ZXJuYXRpb25hbAorCQkJCVBvdCBrIHNlam1pc2N1IDMzCisJCQkJTGp1YmxqYW5hICAxMDAwCisJCQkJU0xPVkVOSUEKKworQzQtRkMtRTQgICAoaGV4KQkJRGlzaFRWIE5aIEx0ZAorQzRGQ0U0ICAgICAoYmFzZSAxNikJCURpc2hUViBOWiBMdGQKKwkJCQkxMCBQZW5uZXkgQXZlCisJCQkJTXQgUm9za2lsbAorCQkJCUF1Y2tsYW5kICAxMDQxCisJCQkJTkVXIFpFQUxBTkQKKworQzgtMDItQTYgICAoaGV4KQkJQmVpamluZyBOZXdtaW5lIFRlY2hub2xvZ3kKK0M4MDJBNiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIE5ld21pbmUgVGVjaG5vbG9neQorCQkJCTEwIGZsb29yLEtlc2hpIFBsYXphCisJCQkJSGFpRGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKK0M4LTBBLUE5ICAgKGhleCkJCVF1YW50YSBDb21wdXRlciBJbmMuCitDODBBQTkgICAgIChiYXNlIDE2KQkJUXVhbnRhIENvbXB1dGVyIEluYy4KKwkJCQkyMTEsIFdlbiBId2EgMm5kIFJkLiwKKwkJCQlUYW8gWXVhbiBLdWVpIFNoYW4gMzMzNzcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0M4LTFFLThFICAgKGhleCkJCUFEViBTZWN1cml0eSAoUykgUHRlIEx0ZAorQzgxRThFICAgICAoYmFzZSAxNikJCUFEViBTZWN1cml0eSAoUykgUHRlIEx0ZAorCQkJCTU2IER1bmxvcCBTdHJlZXQKKwkJCQkyMDkzODYKKwkJCQlTSU5HQVBPUkUKKworQzgtMjAtOEUgICAoaGV4KQkJU3RvcmFnZWRhdGEKK0M4MjA4RSAgICAgKGJhc2UgMTYpCQlTdG9yYWdlZGF0YQorCQkJCVJhbmRzdGFkIDIyMTE3CisJCQkJQWxtZXJlIEZsZXZvbGFuZCAxMzE2QlcKKwkJCQlORVRIRVJMQU5EUworCitDOC0yQS0xNCAgIChoZXgpCQlBcHBsZSBJbmMKK0M4MkExNCAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M4LTJFLTk0ICAgKGhleCkJCUhhbGZhIEVudGVycHJpc2UgQ28uLCBMdGQuCitDODJFOTQgICAgIChiYXNlIDE2KQkJSGFsZmEgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKwkJCQk1RiwgTm8uMTAyLCBNaW5nIENodWFuIFJvYWQKKwkJCQlIc2luIFRpZW4gVGFpcGVpIENvdW50eSAyMzE0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQzgtMzUtQjggICAoaGV4KQkJRXJpY3Nzb24sIEVBQi9SV0kvSworQzgzNUI4ICAgICAoYmFzZSAxNikJCUVyaWNzc29uLCBFQUIvUldJL0sKKwkJCQlTa29sZ2k/b2VuZ2VuIDE3CisJCQkJR2k/b2V2bGUKKwkJCQlTRS04MDAgMDYKKwkJCQlTV0VERU4KKworQzgtM0EtMzUgICAoaGV4KQkJVGVuZGEgVGVjaG5vbG9neSBDby4sIEx0ZC4KK0M4M0EzNSAgICAgKGJhc2UgMTYpCQlUZW5kYSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCVJvb20gNjAxLTYwMixSL0QgQnVpbGRpbmcgQ29tcGxleCxUc2luZ2h1YSBIaWdoLVRlY2ggUGFyayxuYW5zaGFuIGRpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3VhbmRvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworQzgtM0UtOTkgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKK0M4M0U5OSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworQzgtM0UtQTcgICAoaGV4KQkJS1VOQlVTIEdtYkgKK0M4M0VBNyAgICAgKGJhc2UgMTYpCQlLVU5CVVMgR21iSAorCQkJCUhlZXJ3ZWcgMTVBCisJCQkJRGVua2VuZG9yZiBCVyBELTczNzcwCisJCQkJR0VSTUFOWQorCitDOC00NS0yOSAgIChoZXgpCQlJTUsgTmV0d29ya3MgQ28uLEx0ZAorQzg0NTI5ICAgICAoYmFzZSAxNikJCUlNSyBOZXR3b3JrcyBDby4sTHRkCisJCQkJMjAxLUhvIGp1bmdyaWJqdW5qYSwgMTYtM2J1bmppLCAKKwkJCQlHdXVpLWRvbmcsIEd3YW5namluLWd1CisJCQkJU2VvdWwgIDE0My04MTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQzgtNDgtRjUgICAoaGV4KQkJTUVESVNPTiBYcmF5IENvLiwgTHRkCitDODQ4RjUgICAgIChiYXNlIDE2KQkJTUVESVNPTiBYcmF5IENvLiwgTHRkCisJCQkJM0YgQnVyaW0gQi9EIDk5OSBEYWVjaGktZG9uZyAKKwkJCQlHYW5nbmFtLWd1IAorCQkJCVNlb3VsICAxMzUtMjgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0M4LTRDLTc1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0M4NEM3NSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M4LTY0LUM3ICAgKGhleCkJCXp0ZSBjb3Jwb3JhdGlvbgorQzg2NEM3ICAgICAoYmFzZSAxNikJCXp0ZSBjb3Jwb3JhdGlvbgorCQkJCTEyL0YuLHp0ZSBSJkQgYnVpbGRpbmcsa2VqaW5hbiBSb2FkLAorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitDOC02Qy0xRSAgIChoZXgpCQlEaXNwbGF5IFN5c3RlbXMgTHRkCitDODZDMUUgICAgIChiYXNlIDE2KQkJRGlzcGxheSBTeXN0ZW1zIEx0ZAorCQkJCTE2LVBhcmtvdmFqYSBTdHJlZXQgMjYKKwkJCQlNb3Njb3cgIDEwNTQ4NAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCitDOC02Qy04NyAgIChoZXgpCQlNaXRyYXN0YXIgVGVjaG5vbG9neQorQzg2Qzg3ICAgICAoYmFzZSAxNikJCU1pdHJhc3RhciBUZWNobm9sb2d5CisJCQkJTm8uNiBJbm5vdmF0aW9uIFJvYWQgSUkKKwkJCQlTY2llbmNlIFBhcmsKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDOC02Qy1CNiAgIChoZXgpCQlPcHRjb20gQ28uLCBMdGQuCitDODZDQjYgICAgIChiYXNlIDE2KQkJT3B0Y29tIENvLiwgTHRkLgorCQkJCTc5Mi0zIFRvbWlnYW9rYQorCQkJCUl3YXRhIFNoaXp1b2thIDQzOC0wODAzCisJCQkJSkFQQU4KKworQzgtNzItNDggICAoaGV4KQkJQXBsaWNvbSBPeQorQzg3MjQ4ICAgICAoYmFzZSAxNikJCUFwbGljb20gT3kKKwkJCQlSYXV0YXRpZW5rYXR1IDU2CisJCQkJQWFuZWtvc2tpIExhbnNpLVN1b21pIDQ0MTAxCisJCQkJRklOTEFORAorCitDOC03RS03NSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKK0M4N0U3NSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQzgtODQtMzkgICAoaGV4KQkJU3VucmlzZSBUZWNobm9sb2dpZXMKK0M4ODQzOSAgICAgKGJhc2UgMTYpCQlTdW5yaXNlIFRlY2hub2xvZ2llcworCQkJCTU0IENvbW1lcmNpYWwgU3RyZWV0CisJCQkJUmF5bmhhbSBNQSAwMjc2NworCQkJCVVOSVRFRCBTVEFURVMKKworQzgtODQtNDcgICAoaGV4KQkJQmVhdXRpZnVsIEVudGVycHJpc2UgQ28uLCBMdGQKK0M4ODQ0NyAgICAgKGJhc2UgMTYpCQlCZWF1dGlmdWwgRW50ZXJwcmlzZSBDby4sIEx0ZAorCQkJCTI2dGggRmxvb3IsIEJlYXV0aWZ1bCBHcm91cCBUb3dlciwgNzcgQ29ubmF1Z2h0IFJvYWQgQ2VudHJhbAorCQkJCUhPTkcgS09ORworCitDOC04Ny0zQiAgIChoZXgpCQlOZXQgT3B0aWNzCitDODg3M0IgICAgIChiYXNlIDE2KQkJTmV0IE9wdGljcworCQkJCTUzMDMgQmV0c3kgUm9zcyBEcml2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCitDOC04Qi00NyAgIChoZXgpCQlPcHRpY29zIHMuci5sLgorQzg4QjQ3ICAgICAoYmFzZSAxNikJCU9wdGljb3Mgcy5yLmwuCisJCQkJdmlhIFRlcnppIGRpIFMuQWdhdGEgMgorCQkJCUJyZW1iYXRlIGRpIFNvcHJhIEJlcmdhbW8gMjQwMzAKKwkJCQlJVEFMWQorCitDOC05My04MyAgIChoZXgpCQlFbWJlZGRlZCBBdXRvbWF0aW9uLCBJbmMuCitDODkzODMgICAgIChiYXNlIDE2KQkJRW1iZWRkZWQgQXV0b21hdGlvbiwgSW5jLgorCQkJCTE3MzQ1IEFiYmV5IERyaXZlCisJCQkJU3VycmV5IEJDIFY0TiA0TTMKKwkJCQlDQU5BREEKKworQzgtOTctOUYgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0M4OTc5RiAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU3MAorCQkJCUZJTkxBTkQKKworQzgtOUMtMUQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQzg5QzFEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQzgtOUMtREMgICAoaGV4KQkJRUxJVEVHUk9VUCBDT01QVVRFUiBTWVNURU0gQ08uLCBMVEQuCitDODlDREMgICAgIChiYXNlIDE2KQkJRUxJVEVHUk9VUCBDT01QVVRFUiBTWVNURU0gQ08uLCBMVEQuCisJCQkJTk8uIDIzOSwgU2VjLiAyLCBUaSBEaW5nIEJsdmQuCisJCQkJVGFpcGVpICAxMTQ5MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQzgtQTEtQjYgICAoaGV4KQkJU2hlbnpoZW4gTG9uZ3dheSBUZWNobm9sb2dpZXMgQ28uLCBMdGQKK0M4QTFCNiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBMb25nd2F5IFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCVN1aXRlIDcwNyxJbmN1YmF0aW9uIEJ1aWxkaW5nLCBDaGluYSBBY2FkZW15IG9mIFNjaWVuY2UmVGVjaCBEZXZlbG9wbWVudCwgU291dGggYXJlYSAKKwkJCQlIaS1UZWNoIEluZHVzdHJpYWwgUGFyaworCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitDOC1BNy0wQSAgIChoZXgpCQlWZXJpem9uIEJ1c2luZXNzCitDOEE3MEEgICAgIChiYXNlIDE2KQkJVmVyaXpvbiBCdXNpbmVzcworCQkJCU9uZSBEaWdleCBQbGF6YQorCQkJCUJlbHRzdmlsbGUgTUQgMjA3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKK0M4LUE3LTI5ICAgKGhleCkJCVNZU3Ryb25pY3MgQ28uLCBMdGQuCitDOEE3MjkgICAgIChiYXNlIDE2KQkJU1lTdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkjMzAxLTE0MDQsIEJ1Y2h1biBUZWNobm8tUGFyayBJSQorCQkJCTM2NSwgU2FtamVvbmctZG9uZywgT2plb25nLWd1CisJCQkJQnVjaHVuIENpdHkgS3l1bmcgZ2ktZG8gNDIxLTc0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitDOC1BQS1DQyAgIChoZXgpCQlQUklWQVRFCitDOEFBQ0MgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKK0M4LUJDLUM4ICAgKGhleCkJCUFwcGxlCitDOEJDQzggICAgIChiYXNlIDE2KQkJQXBwbGUKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M4LUMxLTI2ICAgKGhleCkJCVpQTSBJbmR1c3RyaWEgZSBDb21lcmNpbyBMdGRhCitDOEMxMjYgICAgIChiYXNlIDE2KQkJWlBNIEluZHVzdHJpYSBlIENvbWVyY2lvIEx0ZGEKKwkJCQlSdWEgQXJhZ3VhaWEsIDE3NQorCQkJCUNhbm9hcyBSUyA5MjQxMC0wMDAKKwkJCQlCUkFaSUwKKworQzgtQzEtM0MgICAoaGV4KQkJUnVnZ2VkVGVrIEhhbmd6aG91IENvLiwgTHRkCitDOEMxM0MgICAgIChiYXNlIDE2KQkJUnVnZ2VkVGVrIEhhbmd6aG91IENvLiwgTHRkCisJCQkJWmhlamlhbmcgVW5pdmVyc2l0eSBOYXRpb25hbCBTY2llbmNlIFBhcmsKKwkJCQk1MjUgWGl4aSBSb2FyZCwgQnVpbGRpbmcgQyBSb29tIDQwMQorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDAxMworCQkJCUNISU5BCisKK0M4LUNELTcyICAgKGhleCkJCVNBR0VNQ09NCitDOENENzIgICAgIChiYXNlIDE2KQkJU0FHRU1DT00KKwkJCQkyNTAgcm91dGUgZGUgbCdFbXBlcmV1cgorCQkJCVJVRUlMIE1BTE1BSVNPTiAgOTI4NDgKKwkJCQlGUkFOQ0UKKworQzgtRDEtRDEgICAoaGV4KQkJQUdBaVQgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorQzhEMUQxICAgICAoYmFzZSAxNikJCUFHQWlUIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk1RixOby4yNy04LCBTZWMuIDIsIFpob25nemhlbmcgRS4gUmQuLCBEYW5zaHVpIFRvd25zaGlwIAorCQkJCVRhaXBlaSBDb3VudHkgICAyNTE3MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQzgtRDItQzEgICAoaGV4KQkJSmV0bHVuIChTaGVuemhlbikgQ29ycG9yYXRpb24KK0M4RDJDMSAgICAgKGJhc2UgMTYpCQlKZXRsdW4gKFNoZW56aGVuKSBDb3Jwb3JhdGlvbgorCQkJCTEwMDhBIFNreXdvcnRoIEJ1aWxkaW5nLCBHYW8teGluIFJkIFNvdXRoCisJCQkJSGlnaC1UZWNoIFBhcmssIE5hblNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiAgNTE4MDU3CisJCQkJQ0hJTkEKKworQzgtRDUtRkUgICAoaGV4KQkJU2hlbnpoZW4gWm93ZWUgVGVjaG5vbG9neSBDby4sIEx0ZAorQzhENUZFICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFpvd2VlIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlCbG9jayA1LCBTY2llbmNlIGFuZCBUZWNobm9sb2d5IEluZHVzdHJpYWwgUGFyayBvZgorCQkJCVByaXZhdGVseSBPd25lZCBFbnRlcnByaXNlcywgUGluZ3NoYW4sIFhpbGksIE5hbnNoYW4gRGlzdHJpY3QgLAorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwNTUKKwkJCQlDSElOQQorCitDOC1ERi03QyAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorQzhERjdDICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTkwCisJCQkJRklOTEFORAorCitDOC1FRS0wOCAgIChoZXgpCQlUQU5HVE9QIFRFQ0hOT0xPR1kgQ08uLExURAorQzhFRTA4ICAgICAoYmFzZSAxNikJCVRBTkdUT1AgVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJMUYsTk8uMTUzLExpZ29uIFN0LixCZWl0b3UgRGlzdHJpY3QKKwkJCQlUYWlwZWkgQ2l0eSAgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQzgtRUYtMkUgICAoaGV4KQkJQmVpamluZyBHZWZlaSBUZWNoLiBDby4sIEx0ZCAKK0M4RUYyRSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEdlZmVpIFRlY2guIENvLiwgTHRkIAorCQkJCUEtNjAzIFBvd2VyIENyZWF0aXZlIFBsYXphLCBOTy4xIFNoYW5nZGkgRS4gUmQuLEhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworQzgtRkUtMzAgICAoaGV4KQkJQmVqaW5nIERBWU8gTW9iaWxlIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBMdGQuCitDOEZFMzAgICAgIChiYXNlIDE2KQkJQmVqaW5nIERBWU8gTW9iaWxlIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBMdGQuCisJCQkJUm9vbSA3MTIsIFVMTyBQYXJrIEJ1aWxkaW5nIE5vLiA2MDFFCisJCQkJQmxvY2sgQi0xMS0xIFdhbmdKaW5nIEFyZWEsICBDaGFvWWFuZyBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDEwMgorCQkJCUNISU5BCisKK0NDLTAwLTgwICAgKGhleCkJCVRSVVNUIFNZU1RFTSBDby4sCitDQzAwODAgICAgIChiYXNlIDE2KQkJVFJVU1QgU1lTVEVNIENvLiwKKwkJCQkzLTE1LTEtMTAwMSBzaGluc2FrdQorCQkJCXRha2F0c3Uta3UKKwkJCQlLYXdhc2FraS1zaGkgS2FuYWdhd2EgMjEzLTAwMTQKKwkJCQlKQVBBTgorCitDQy0wNS0xQiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKK0NDMDUxQiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQ0MtMDgtRTAgICAoaGV4KQkJQXBwbGUKK0NDMDhFMCAgICAgKGJhc2UgMTYpCQlBcHBsZQorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworQ0MtMDktQzggICAoaGV4KQkJSU1BUUxJUSBMVEQKK0NDMDlDOCAgICAgKGJhc2UgMTYpCQlJTUFRTElRIExURAorCQkJCU9idm9kbnkgQ2FuYWwgOTNBCisJCQkJU3QuUGV0ZXJzYnVyZyAgMTkxMTE5CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKK0NDLTBDLURBICAgKGhleCkJCU1pbGpvdmFrdCBBUworQ0MwQ0RBICAgICAoYmFzZSAxNikJCU1pbGpvdmFrdCBBUworCQkJCUdhbm5lc3RhZHZlaWVuIDIKKwkJCQlCb3JyZSBWZXN0Zm9sZCAzMTg0CisJCQkJTk9SV0FZCisKK0NDLTFFLUZGICAgKGhleCkJCU1ldHJvbG9naWNhbCBHcm91cCBCVgorQ0MxRUZGICAgICAoYmFzZSAxNikJCU1ldHJvbG9naWNhbCBHcm91cCBCVgorCQkJCU1hcmluaWVyc3dlZyAxNTEKKwkJCQlSb3R0ZXJkYW0gWnVpZC1Ib2xsYW5kIDMwMTFOSworCQkJCU5FVEhFUkxBTkRTCisKK0NDLTIyLTE4ICAgKGhleCkJCUlubm9EaWdpdGFsIENvLiwgTHRkLgorQ0MyMjE4ICAgICAoYmFzZSAxNikJCUlubm9EaWdpdGFsIENvLiwgTHRkLgorCQkJCU5vLjMxMCAzRiBLb2ZvbW8gVG93ZXIKKwkJCQkxNi0zIFN1bmUtZG9uZywgQnVuZGFuZy1ndQorCQkJCVN1bmduYW0tY2l0eSBLeXVuZ2dpLWRvIDQ2My04MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQ0MtMzQtRDcgICAoaGV4KQkJR0VXSVNTIFMuUC5BLgorQ0MzNEQ3ICAgICAoYmFzZSAxNikJCUdFV0lTUyBTLlAuQS4KKwkJCQlWSUEgQUxFU1NBTkRSTyBWT0xUQSAxCisJCQkJQ0VOQVRFIFNPVFRPICAyNDA2OQorCQkJCUlUQUxZCisKK0NDLTQzLUUzICAgKGhleCkJCVRydW1wIHMuYS4KK0NDNDNFMyAgICAgKGJhc2UgMTYpCQlUcnVtcCBzLmEuCisJCQkJcnVlIGRlIGxhIE1haXRyaXNlIDkKKwkJCQlOaXZlbGxlcyAgMTQwMAorCQkJCUJFTEdJVU0KKworQ0MtNTAtNzYgICAoaGV4KQkJT2NvbSBDb21tdW5pY2F0aW9ucywgSW5jLgorQ0M1MDc2ICAgICAoYmFzZSAxNikJCU9jb20gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkxM0YtNiwgTm8uIDEsIEJhbyBTaGVuZyBSZC4sIAorCQkJCVlvbmcgSG8gQ2l0eSAgMjM0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDQy01Mi1BRiAgIChoZXgpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KK0NDNTJBRiAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKwkJCQkxNDEsIExBTkUgMzUxLCBUQUlQSU5HIFJELgorCQkJCVNFQy4xLCBUU0FPIFRVRU4KKwkJCQlOQU4tVE9VIDU0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQ0MtNTQtNTkgICAoaGV4KQkJT25UaW1lIE5ldHdvcmtzIEFTCitDQzU0NTkgICAgIChiYXNlIDE2KQkJT25UaW1lIE5ldHdvcmtzIEFTCisJCQkJR2xhZHN2ZWkgMjAKKwkJCQlPc2xvICAwNDg5CisJCQkJTk9SV0FZCisKK0NDLTU1LUFEICAgKGhleCkJCVJJTQorQ0M1NUFEICAgICAoYmFzZSAxNikJCVJJTQorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOQorCQkJCUNBTkFEQQorCitDQy01Qy03NSAgIChoZXgpCQlXZWlnaHRlY2ggQ29tLiBJbXAuIEV4cC4gRXF1aXAuIFBlc2FnZW0gTHRkYQorQ0M1Qzc1ICAgICAoYmFzZSAxNikJCVdlaWdodGVjaCBDb20uIEltcC4gRXhwLiBFcXVpcC4gUGVzYWdlbSBMdGRhCisJCQkJUm9kb3ZpYSBWaXJnaT9vZWxpbyBWaT9vZXJ6ZWEsIDMxMTAgLSBTYWxhIDAxCisJCQkJQ29zdGEgTm9ydGUgQ2VudGVyIC0gQmFpcnJvIFNhY28gR3JhbmRlCisJCQkJRmxvcmlhbmk/b2Vwb2xpcyBTQyA4ODAzMi0wMDEKKwkJCQlCUkFaSUwKKworQ0MtNUQtNEUgICAoaGV4KQkJWnlYRUwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KK0NDNUQ0RSAgICAgKGJhc2UgMTYpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorCQkJCU5vLjYgSW5ub3ZhdGlvbiBSb2FkIElJLCBTY2llbmNlIFBhcmssIAorCQkJCUhzaW4gQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0NDLTYwLUJCICAgKGhleCkJCUVtcG93ZXIgUkYgU3lzdGVtcworQ0M2MEJCICAgICAoYmFzZSAxNikJCUVtcG93ZXIgUkYgU3lzdGVtcworCQkJCTMxNiBXLiBGbG9yZW5jZSBBdmUKKwkJCQlJbmdsZXdvb2QgQ0EgOTAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKK0NDLTY5LUIwICAgKGhleCkJCUdsb2JhbCBUcmFmZmljIFRlY2hub2xvZ2llcywgTExDCitDQzY5QjAgICAgIChiYXNlIDE2KQkJR2xvYmFsIFRyYWZmaWMgVGVjaG5vbG9naWVzLCBMTEMKKwkJCQk3ODAwIFRoaXJkIFN0cmVldCBOb3J0aAorCQkJCVN1aXRlIDEwMAorCQkJCVN0LiBQYXVsIE1pbm5lc290YSA1NTEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworQ0MtNkItOTggICAoaGV4KQkJTWluZXRlYyBXaXJlbGVzcyBUZWNobm9sb2dpZXMKK0NDNkI5OCAgICAgKGJhc2UgMTYpCQlNaW5ldGVjIFdpcmVsZXNzIFRlY2hub2xvZ2llcworCQkJCTEwIEtlbWJsYSBXYXkKKwkJCQlXaWxsZXR0b24gV0EgNjE1NQorCQkJCUFVU1RSQUxJQQorCitDQy03Ni02OSAgIChoZXgpCQlTRUVURUNICitDQzc2NjkgICAgIChiYXNlIDE2KQkJU0VFVEVDSAorCQkJCTE5LTE1LCBTZW9rdS1kb25nCisJCQkJSHdhc3VuZy1zaSBHeWVvbmdnaS1kbyA0NDUtMTcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0NDLTdBLTMwICAgKGhleCkJCUNNQVggV2lyZWxlc3MgQ28uLCBMdGQuCitDQzdBMzAgICAgIChiYXNlIDE2KQkJQ01BWCBXaXJlbGVzcyBDby4sIEx0ZC4KKwkJCQlLVCBCb25nZHVrIEIvRCA5RiwgNjI3LTE1LCBCb25nZHVrLWRvbmcKKwkJCQlOYW1ndSBEYWVndSA3MDU3MTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQ0MtN0QtMzcgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KK0NDN0QzNyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKK0NDLTdFLUU3ICAgKGhleCkJCVBhbmFzb25pYyBBVkMgTmV0d29ya3MgQ29tcGFueQorQ0M3RUU3ICAgICAoYmFzZSAxNikJCVBhbmFzb25pYyBBVkMgTmV0d29ya3MgQ29tcGFueQorCQkJCTEtMTUgTWF0c3VvLWNobworCQkJCUthZG9tYSBDaXR5IE9zYWthIDU3MS04NTA0CisJCQkJSkFQQU4KKworQ0MtOEMtRTMgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKK0NDOENFMyAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworQ0MtOTYtQTAgICAoaGV4KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorQ0M5NkEwICAgICAoYmFzZSAxNikJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCitDQy05RS0wMCAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KK0NDOUUwMCAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCitDQy1BRi03OCAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCitDQ0FGNzggICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKK0NDLUI1LTVBICAgKGhleCkJCUZyYXVuaG9mZXIgSVRXTQorQ0NCNTVBICAgICAoYmFzZSAxNikJCUZyYXVuaG9mZXIgSVRXTQorCQkJCUZyYXVuaG9mZXJwbGF0eiAxCisJCQkJS2Fpc2Vyc2xhdXRlcm4gUmhpbmVsYW5kLVBhbGF0aW5hZSA2NzY2MworCQkJCUdFUk1BTlkKKworQ0MtQjgtODggICAoaGV4KQkJQW5CIFNlY3VyaXRlIHMuYS4KK0NDQjg4OCAgICAgKGJhc2UgMTYpCQlBbkIgU2VjdXJpdGUgcy5hLgorCQkJCVJ1ZSBkZSBKb2llLDM4LTQwCisJCQkJTGllZ2UgIDQwMDAKKwkJCQlCRUxHSVVNCisKK0NDLUJFLTcxICAgKGhleCkJCU9wdGlMb2dpeCBCVgorQ0NCRTcxICAgICAoYmFzZSAxNikJCU9wdGlMb2dpeCBCVgorCQkJCUpvb3AgR2Vlc2lua3dlZyA5OTkKKwkJCQlBbXN0ZXJkYW0gTkggMTA5NkFaCisJCQkJTkVUSEVSTEFORFMKKworQ0MtQzYtMkIgICAoaGV4KQkJVHJpLVN5c3RlbXMgQ29ycG9yYXRpb24KK0NDQzYyQiAgICAgKGJhc2UgMTYpCQlUcmktU3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTMtMjctOCBUUlMgQnVpbGRpbmcgM0YKKwkJCQlLb3lhc3VtYWNoaQorCQkJCUhhY2hpb2ppIFRva3lvIDE5Mi0wOTA0CisJCQkJSkFQQU4KKworQ0MtQ0MtNEUgICAoaGV4KQkJU3VuIEZvdW50YWluaGVhZCBVU0EuIENvcnAgCitDQ0NDNEUgICAgIChiYXNlIDE2KQkJU3VuIEZvdW50YWluaGVhZCBVU0EuIENvcnAgCisJCQkJODAxIFMuIEdhcmZpbGVkIEFWRSAjIDIzNiAKKwkJCQlMb3MgQW5nZWxlcyAgQ2FsaWZvcm5pYSAgOTE4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKK0NDLUNELTY0ICAgKGhleCkJCVNNLUVsZWN0cm9uaWMgR21iSAorQ0NDRDY0ICAgICAoYmFzZSAxNikJCVNNLUVsZWN0cm9uaWMgR21iSAorCQkJCVdhbGR3ZWcgMgorCQkJCVN0YXBlbGZlbGQgLyBCcmFhayAgMjIxNDUKKwkJCQlHRVJNQU5ZCisKK0NDLUNFLTQwICAgKGhleCkJCUphbnRlcSBDb3JwCitDQ0NFNDAgICAgIChiYXNlIDE2KQkJSmFudGVxIENvcnAKKwkJCQk5MjcyIEplcm9uaW1vIFJvYWQKKwkJCQlTdWl0ZSAxMjQKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKK0NDLUQ4LTExICAgKGhleCkJCUFpY29ubiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCitDQ0Q4MTEgICAgIChiYXNlIDE2KQkJQWljb25uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk1RiwgTk8uIDksIEFsbGV5IDIsIExhbmUgMzUsIEppLUh1IFJkLiwgTmVpLUh1LCAKKwkJCQlUYWlwZWkgQ2l0eSAgMTE0OTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0NDLUQ5LUU5ICAgKGhleCkJCVNDUiBFbmdpbmVlcnMgTHRkLgorQ0NEOUU5ICAgICAoYmFzZSAxNikJCVNDUiBFbmdpbmVlcnMgTHRkLgorCQkJCTYgSGFvbWFudXQgU3QuCisJCQkJTmV0YW55YSAgNDI1MDQKKwkJCQlJU1JBRUwKKworQ0MtRUEtMUMgICAoaGV4KQkJRENPTldPUktTICBDby4sIEx0ZAorQ0NFQTFDICAgICAoYmFzZSAxNikJCURDT05XT1JLUyAgQ28uLCBMdGQKKwkJCQkxODItMTMgRGFlcnVuZyBQb3N0IFRvd2VyIDJuZCA1RgorCQkJCUd1cm8tZG9uZywgR3Vyby1ndQorCQkJCVNlb3VsICAxNTItODQ3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0NDLUYzLUE1ICAgKGhleCkJCUNoaSBNZWkgQ29tbXVuaWNhdGlvbiBTeXN0ZW1zLCBJbmMKK0NDRjNBNSAgICAgKGJhc2UgMTYpCQlDaGkgTWVpIENvbW11bmljYXRpb24gU3lzdGVtcywgSW5jCisJCQkJTm8uNAorCQkJCU1pbmdzaGVuZyBTdHJlZXQKKwkJCQlUdWNoZW5nIENpdHkgVGFpcGVpIENvdW50eSAgMjM2NzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0NDLUY2LTdBICAgKGhleCkJCUF5ZWNrYSBDb21tdW5pY2F0aW9uIFN5c3RlbXMgTFRECitDQ0Y2N0EgICAgIChiYXNlIDE2KQkJQXllY2thIENvbW11bmljYXRpb24gU3lzdGVtcyBMVEQKKwkJCQlQT0IgMzA1OQorCQkJCUhvZCBIYXNoYXJvbiAgNDUxMzAKKwkJCQlJU1JBRUwKKworQ0MtRjgtNDEgICAoaGV4KQkJTHVtZXdhdmUKK0NDRjg0MSAgICAgKGJhc2UgMTYpCQlMdW1ld2F2ZQorCQkJCTQ4MDMgQiBTdHJlZXQKKwkJCQlTYWNyYW1lbnRvIENBIDk1ODE5CisJCQkJVU5JVEVEIFNUQVRFUworCitDQy1GOS01NCAgIChoZXgpCQlBdmF5YSwgSW5jCitDQ0Y5NTQgICAgIChiYXNlIDE2KQkJQXZheWEsIEluYworCQkJCTIxMSBNb3VudCBBaXJ5IFJvYWQgCisJCQkJQmFza2luZyBSaWRnZSBOSiAwNzkyMC0yMzExIAorCQkJCVVOSVRFRCBTVEFURVMKKworQ0MtRkMtNkQgICAoaGV4KQkJUklaIFRSQU5TTUlUVEVSUworQ0NGQzZEICAgICAoYmFzZSAxNikJCVJJWiBUUkFOU01JVFRFUlMKKwkJCQlCT1pJREFSRVZJQ0VWQSAxMworCQkJCVAuTy5CT1ggNjU0CisJCQkJWkFHUkVCICAxMDAwMAorCQkJCUNST0FUSUEKKworQ0MtRkMtQjEgICAoaGV4KQkJV2lyZWxlc3MgVGVjaG5vbG9neSwgSW5jLgorQ0NGQ0IxICAgICAoYmFzZSAxNikJCVdpcmVsZXNzIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyMDY0IEVhc3RtYW4gQXZlLiAjMTEzCisJCQkJVmVudHVyYSBDQSA5MzAwMy03Nzg3CisJCQkJVU5JVEVEIFNUQVRFUworCitEMC0xMy0xRSAgIChoZXgpCQlTdW5yZXggVGVjaG5vbG9neSBDb3JwCitEMDEzMUUgICAgIChiYXNlIDE2KQkJU3VucmV4IFRlY2hub2xvZ3kgQ29ycAorCQkJCU5vLiAxODgtMSxDaHVuZyBDaGVuZyBSb2FkLixUYSBZYSBTaGlhbmcKKwkJCQlUYWljaHVuZyAgNDI4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitEMC0xNS00QSAgIChoZXgpCQl6dGUgY29ycG9yYXRpb24KK0QwMTU0QSAgICAgKGJhc2UgMTYpCQl6dGUgY29ycG9yYXRpb24KKwkJCQkxMi9GLix6dGUgUiZEIGJ1aWxkaW5nLGtlamluYW4gUm9hZCwKKwkJCQlzaGVuemhlbiBndWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworRDAtMTctNkEgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkICAKK0QwMTc2QSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQgIAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEMC0xQy1CQiAgIChoZXgpCQlCZWlqaW5nIEN0aW1lcyBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitEMDFDQkIgICAgIChiYXNlIDE2KQkJQmVpamluZyBDdGltZXMgRGlnaXRhbCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTd0aCBGbG9vciwgSmluemhvdSBCdWlsZGluZywgU3V6aG91IFN0cmVldCwgTm8uNzksIEhhaWRpYW4gRGlzdHJpY3QsIAorCQkJCUJlaWppbmcgIDEwMDA4OQorCQkJCUNISU5BCisKK0QwLTI3LTg4ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC5Dby5MdGQKK0QwMjc4OCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uTHRkCisJCQkJNjYsQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitEMC0zNy02MSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworRDAzNzYxICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCitEMC01Ny00QyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitEMDU3NEMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitEMC01OC03NSAgIChoZXgpCQlBY3RpdmUgQ29udHJvbCBUZWNobm9sb2d5IEluYy4KK0QwNTg3NSAgICAgKGJhc2UgMTYpCQlBY3RpdmUgQ29udHJvbCBUZWNobm9sb2d5IEluYy4KKwkJCQkxODAwIEFwcGxlYnkgTGluZQorCQkJCVVuaXQgNAorCQkJCUJ1cmxpbmd0b24gT250YXJpbyBMN0wgNkExCisJCQkJQ0FOQURBCisKK0QwLTVGLUNFICAgKGhleCkJCUhpdGFjaGkgRGF0YSBTeXN0ZW1zCitEMDVGQ0UgICAgIChiYXNlIDE2KQkJSGl0YWNoaSBEYXRhIFN5c3RlbXMKKwkJCQk3NTAgQ2VudHJhbCBFeHByZXNzd2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKK0QwLTY2LTdCICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMVEQKK0QwNjY3QiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIFllb25ndG9uZy1ndQorCQkJCVN1d29uLXNpIEd5ZW9uZ2dpLWRvIDQ0Mzc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEMC02Ny1FNSAgIChoZXgpCQlEZWxsIEluYworRDA2N0U1ICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUzpSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCitEMC03NS1CRSAgIChoZXgpCQlSZW5vIEEmYW1wO0UKK0QwNzVCRSAgICAgKGJhc2UgMTYpCQlSZW5vIEEmYW1wO0UKKwkJCQk0NjU1IEFpcmNlbnRlciBDaXJjbGUKKwkJCQlSZW5vIE5ldmFkYSA4OTUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworRDAtN0QtRTUgICAoaGV4KQkJRm9yd2FyZCBQYXkgU3lzdGVtcywgSW5jLgorRDA3REU1ICAgICAoYmFzZSAxNikJCUZvcndhcmQgUGF5IFN5c3RlbXMsIEluYy4KKwkJCQk5NTMxIFdlc3QgNzh0aCBTdC4sICMyNDUKKwkJCQlFZGVuIFByYWlyaWUgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKK0QwLTg5LTk5ICAgKGhleCkJCUFQQ09OLCBJbmMuCitEMDg5OTkgICAgIChiYXNlIDE2KQkJQVBDT04sIEluYy4KKwkJCQk5MjU1IFNXIFBpb25lZXIgQ291cnQKKwkJCQlXaWxzb252aWxsZSBPUiA5NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworRDAtOTMtRjggICAoaGV4KQkJU3RvbmVzdHJlZXQgT25lIExMQworRDA5M0Y4ICAgICAoYmFzZSAxNikJCVN0b25lc3RyZWV0IE9uZSBMTEMKKwkJCQk5OTYwIENvcnBvcmF0ZSBDYW1wdXMgRHJpdmUKKwkJCQlTdWl0ZSAzMzAwCisJCQkJTG91aXN2aWxsZSBLWSA0MDIyMworCQkJCVVOSVRFRCBTVEFURVMKKworRDAtOUItMDUgICAoaGV4KQkJRW10cm9uaXgKK0QwOUIwNSAgICAgKGJhc2UgMTYpCQlFbXRyb25peAorCQkJCTUjIEdhb3BlbmcgRGFkYW8KKwkJCQlSb29tIDQwNCMsIEJ1aWxkaW5nIEIKKwkJCQlDaGVuZ2R1ICA2MTAwNDEKKwkJCQlDSElOQQorCitEMC1BMy0xMSAgIChoZXgpCQlOZXViZXJnZXIgR2ViaT9vZXVkZWF1dG9tYXRpb24gR21iSAorRDBBMzExICAgICAoYmFzZSAxNikJCU5ldWJlcmdlciBHZWJpP29ldWRlYXV0b21hdGlvbiBHbWJICisJCQkJT2JlcmVyIEthaXNlcndlZyA2CisJCQkJUm90aGVuYnVyZyBvLmQuVC4gQmF5ZXJuIDkxNTQxCisJCQkJR0VSTUFOWQorCitEMC1BRi1CNiAgIChoZXgpCQlMaW5rdG9wIFRlY2hub2xvZ3kgQ28uLCBMVEQKK0QwQUZCNiAgICAgKGJhc2UgMTYpCQlMaW5rdG9wIFRlY2hub2xvZ3kgQ28uLCBMVEQKKwkJCQkyRiBHdWFuZ3llIEJ1bGlkaW5nLCBUb3JjaCBIaS1UZWNoLCAKKwkJCQlYaWFtZW4gRnVqaWFuIDM2MTAwNgorCQkJCUNISU5BCisKK0QwLUIzLTNGICAgKGhleCkJCVNIRU5aSEVOIFRJTk5PIE1PQklMRSBURUNITk9MT0dZIENPLixMVEQuCitEMEIzM0YgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gVElOTk8gTU9CSUxFIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQk0L0YuLEgtMyBCdWlsZGluZyxPQ1QgRWFzdGVybiBsbmR1c3RyaWFsIFBhcmsuIE5PLjEgWGlhbmdTaGFuIEVhc3QgUm9hZC4sCisJCQkJTmFuIFNoYW4gRGlzdHJpY3QsCisJCQkJR1VBTkdET05HIFNIRU5aSEVOIDUxODA1MworCQkJCUNISU5BCisKK0QwLUI1LTNEICAgKGhleCkJCVNFUFJPIFJPQk9USVFVRQorRDBCNTNEICAgICAoYmFzZSAxNikJCVNFUFJPIFJPQk9USVFVRQorCQkJCVpJIEFjdGktRXN0IExlcyBBam9uY3MKKwkJCQlCUDg0CisJCQkJTEEgUk9DSEUgU1VSIFlPTiAgRjg1MDAwCisJCQkJRlJBTkNFCisKK0QwLUJCLTgwICAgKGhleCkJCVNITCBUZWxlbWVkaWNpbmUgSW50ZXJuYXRpb25hbCBMdGQuCitEMEJCODAgICAgIChiYXNlIDE2KQkJU0hMIFRlbGVtZWRpY2luZSBJbnRlcm5hdGlvbmFsIEx0ZC4KKwkJCQk5MCBZaWdhbCBBbG9uCisJCQkJVGVsIEF2aXYgIDY3ODkxCisJCQkJSVNSQUVMCisKK0QwLUMyLTgyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0QwQzI4MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitEMC1EMC1GRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitEMEQwRkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitEMC1EMi04NiAgIChoZXgpCQlCZWNrbWFuIENvdWx0ZXIgQmlvbWVkaWNhbCBLLksuCitEMEQyODYgICAgIChiYXNlIDE2KQkJQmVja21hbiBDb3VsdGVyIEJpb21lZGljYWwgSy5LLgorCQkJCTQ1NC0zMiBIaWdhc2hpbm8sCisJCQkJTmFnYWl6dW1pLWNobywgU3VudG8tZ3VuLCBTaGl6dW9rYS1rZW4gNDExLTA5NDMKKwkJCQlKQVBBTgorCitEMC1EMy1GQyAgIChoZXgpCQlNaW9zLCBMdGQuCitEMEQzRkMgICAgIChiYXNlIDE2KQkJTWlvcywgTHRkLgorCQkJCTEzMDEgQmFuayBvZiBBbWVyaWNhIFRvd2VyCisJCQkJMTIgSGFyY291dCBSb2FkCisJCQkJQ2VudHJhbCAgLgorCQkJCUhPTkcgS09ORworCitEMC1ERi05QSAgIChoZXgpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorRDBERjlBICAgICAoYmFzZSAxNikJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYsOTAsQ2hpZW4gMSBSb2FkLCBDaHVuZ0hvLiAKKwkJCQlUYWlwZWkgIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitEMC1FMy00NyAgIChoZXgpCQlZb2dhCitEMEUzNDcgICAgIChiYXNlIDE2KQkJWW9nYQorCQkJCVRhbW1zYWFyZSB0ZWUgNDcKKwkJCQlUYWxsaW5uIEhhcmp1bWFhIDExMzE2CisJCQkJRVNUT05JQQorCitEMC1FNC0wQiAgIChoZXgpCQlXZWFyYWJsZSBJbmMuCitEMEU0MEIgICAgIChiYXNlIDE2KQkJV2VhcmFibGUgSW5jLgorCQkJCTM4MjUgQ2hhcmxlcyBEci4KKwkJCQlOb3J0aGJyb29rIElMIDYwMDYyCisJCQkJVU5JVEVEIFNUQVRFUworCitEMC1FNS00RCAgIChoZXgpCQlQYWNlIHBsYworRDBFNTREICAgICAoYmFzZSAxNikJCVBhY2UgcGxjCisJCQkJU2FsdHMgTWlsbAorCQkJCVZpY3RvcmlhIFJvYWQKKwkJCQlCcmFkZm9yZCBXZXN0IFlvcmtzaGlyZSBCRDE4IDNMRgorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0QwLUVCLTlFICAgKGhleCkJCVNlb3dvbyBJbmMuCitEMEVCOUUgICAgIChiYXNlIDE2KQkJU2Vvd29vIEluYy4KKwkJCQlKaW5TdW5nIEIvRCAxLTIgR3VuamEtZG9uZywgR3dhbmdqaW4tZ3UsIAorCQkJCVNlb3VsICAxNDMtODM3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0QwLUYwLURCICAgKGhleCkJCUVyaWNzc29uCitEMEYwREIgICAgIChiYXNlIDE2KQkJRXJpY3Nzb24KKwkJCQkxMDAgSGVhZHF1YXJ0ZXJzIERyCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTAwLTBEICAgKGhleCkJCVBob2VuaXggQnJvYWRiYW5kIFRlY2hub2xvZ2llcywgTExDLgorRDQwMDBEICAgICAoYmFzZSAxNikJCVBob2VuaXggQnJvYWRiYW5kIFRlY2hub2xvZ2llcywgTExDLgorCQkJCTU4OSBCZXRobGVoZW0gUGlrZQorCQkJCVN1aXRlIDEwMDAKKwkJCQlNb250Z29tZXJ5dmlsbGUgUEEgMTg5MzYKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTExLUQ2ICAgKGhleCkJCVNob3RTcG90dGVyLCBJbmMuCitENDExRDYgICAgIChiYXNlIDE2KQkJU2hvdFNwb3R0ZXIsIEluYy4KKwkJCQkxMDYwIFRlcnJhIEJlbGxhIEF2ZS4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCitENC0xMi05NiAgIChoZXgpCQlBbm9iaXQgVGVjaG5vbG9naWVzIEx0ZC4KK0Q0MTI5NiAgICAgKGJhc2UgMTYpCQlBbm9iaXQgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQk4IEhhc2FkbmFvdCBTdC4KKwkJCQlQT0IgMTIxNDcKKwkJCQlIZXJ6ZWxpeWEgUGl0dWFjaCAgIDQ2NzI4CisJCQkJSVNSQUVMCisKK0Q0LTFGLTBDICAgKGhleCkJCVRWSSBWaXNpb24gT3kKK0Q0MUYwQyAgICAgKGJhc2UgMTYpCQlUVkkgVmlzaW9uIE95CisJCQkJQXNlbnRhamFua2F0dSAzCisJCQkJSGVsc2lua2kgIDAwODgwCisJCQkJRklOTEFORAorCitENC0yOC1CMiAgIChoZXgpCQlpb0JyaWRnZSwgSW5jLgorRDQyOEIyICAgICAoYmFzZSAxNikJCWlvQnJpZGdlLCBJbmMuCisJCQkJMjI1IENlZGFyIEhpbGwgU3RyZWV0CisJCQkJU3VpdGUgMjAwCisJCQkJTWFybGJvcm91Z2ggTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTJDLTNEICAgKGhleCkJCVNreSBMaWdodCBEaWdpdGFsIExpbWl0ZWQKK0Q0MkMzRCAgICAgKGJhc2UgMTYpCQlTa3kgTGlnaHQgRGlnaXRhbCBMaW1pdGVkCisJCQkJUm0uIDEwMDkgS3dvbmcgU2FuZyBIb25nIENlbnRyZSwgMTUxLTE1MyBIb2kgQnVuIFJvYWQsIEt3dW4gVG9uZywgS293bG9vbiwgCisJCQkJSG9uZyBLb25nICA5OTkwNzcKKwkJCQlDSElOQQorCitENC0zQS1FOSAgIChoZXgpCQlET05HR1VBTiBpcHQgSU5EVVNUUklBTCBDTy4sIExURAorRDQzQUU5ICAgICAoYmFzZSAxNikJCURPTkdHVUFOIGlwdCBJTkRVU1RSSUFMIENPLiwgTFRECisJCQkJTm8uNjYtMS5Jc3QgTmV3IEFyZWEsIE5hbnNoZSBEaXN0LiwgQ2hpZ2FuZyxIdW1lbiwKKwkJCQlEb25nZ3VhbiBHdWFuZ2RvbmcgNTIzOTAKKwkJCQlDSElOQQorCitENC0zRC02NyAgIChoZXgpCQlDYXJtYSBJbmR1c3RyaWVzIEluYy4KK0Q0M0Q2NyAgICAgKGJhc2UgMTYpCQlDYXJtYSBJbmR1c3RyaWVzIEluYy4KKwkJCQkxMzIgV2Fsc2ggUm9hZAorCQkJCUxpbmRzYXkgT250YXJpbyBLOVYgNFIzCisJCQkJQ0FOQURBCisKK0Q0LTRDLTI0ICAgKGhleCkJCVZ1cHBhbGFtcml0aGEgTWFnbmV0aWMgQ29tcG9uZW50cyBMVEQKK0Q0NEMyNCAgICAgKGJhc2UgMTYpCQlWdXBwYWxhbXJpdGhhIE1hZ25ldGljIENvbXBvbmVudHMgTFRECisJCQkJM3JkIEZsb29yLCAzMDcgLE15IEhvbWUgQXNob2thIENoYW1iZXJzLFMuUCBSb2FkLCAKKwkJCQlTZWN1bmRlcmFiYWQgQW5kaHJhUHJhZGVzaCA1MDAwMDMKKwkJCQlJTkRJQQorCitENC00Qy1BNyAgIChoZXgpCQlJbmZvcm10ZWtobmlrYSAmIENvbW11bmljYXRpb24sIExMQworRDQ0Q0E3ICAgICAoYmFzZSAxNikJCUluZm9ybXRla2huaWthICYgQ29tbXVuaWNhdGlvbiwgTExDCisJCQkJMSwgYnVpbGQuIDIvMSwgVmVyaG5heWEKKwkJCQlLcmFzbm9zZWxza2F5YSBTdC4KKwkJCQlNb3Njb3cgIDEwNzE0MAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCitENC00Ri04MCAgIChoZXgpCQlLZW1wZXIgRGlnaXRhbCBHbWJICitENDRGODAgICAgIChiYXNlIDE2KQkJS2VtcGVyIERpZ2l0YWwgR21iSAorCQkJCUtvZW5pZ3N3YWxsIDE2LTE4CisJCQkJUmVja2xpbmdoYXVzZW4gTm9ydGgtUmhpbmUtV2VzdHBoYWxpYSA0NTY1NworCQkJCUdFUk1BTlkKKworRDQtNTItNTEgICAoaGV4KQkJSUJUIEluZ2VuaWV1cmJ1cmVhdSBCcm9lbm5pbWFubiBUaHVuCitENDUyNTEgICAgIChiYXNlIDE2KQkJSUJUIEluZ2VuaWV1cmJ1cmVhdSBCcm9lbm5pbWFubiBUaHVuCisJCQkJS2FzZXJuZW5zdHJhc3NlIDUKKwkJCQlUaHVuIEJlcm4gMzYwMAorCQkJCVNXSVRaRVJMQU5ECisKK0Q0LTUyLTk3ICAgKGhleCkJCW5TVFJFQU1TIFRlY2hub2xvZ2llcywgSW5jLgorRDQ1Mjk3ICAgICAoYmFzZSAxNikJCW5TVFJFQU1TIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEwRi0yLCBOby4gMzAyLCBSdWlndWFuZyBSZC4sIE5laWh1IERpc3RyaWN0LAorCQkJCVRhaXBlaSBDaXR5ICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0Q0LTVELTQyICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitENDVENDIgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlZcnR0aXBlbGxvbnRpZSA2CisJCQkJT3VsdSAgOTAyMzAKKwkJCQlGSU5MQU5ECisKK0Q0LTY2LUE4ICAgKGhleCkJCVJpZWRvIE5ldHdvcmtzIEdtYkgKK0Q0NjZBOCAgICAgKGJhc2UgMTYpCQlSaWVkbyBOZXR3b3JrcyBHbWJICisJCQkJV2FycGVsc3RyYXNzZSAxMAorCQkJCUR1ZWRpbmdlbiBGUiAzMTg2CisJCQkJU1dJVFpFUkxBTkQKKworRDQtNkMtQkYgICAoaGV4KQkJR29vZHJpY2ggSVNSCitENDZDQkYgICAgIChiYXNlIDE2KQkJR29vZHJpY2ggSVNSCisJCQkJNjYwMCBHdWx0b24gQ3J0CisJCQkJQWxidXF1ZXJxdWUgTk0gODcxMDkKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTZDLURBICAgKGhleCkJCUNTTSBHbWJICitENDZDREEgICAgIChiYXNlIDE2KQkJQ1NNIEdtYkgKKwkJCQlSYWlmZmVpc2Vuc3RyLiAzNAorCQkJCUZpbGRlcnN0YWR0IEJhZGVuLVdpP29lcnR0ZW1iZXJnIDcwNzk0CisJCQkJR0VSTUFOWQorCitENC02Ri00MiAgIChoZXgpCQlXQVhFU1MgVVNBIEluYworRDQ2RjQyICAgICAoYmFzZSAxNikJCVdBWEVTUyBVU0EgSW5jCisJCQkJMTQwMSBEb3ZlIFN0cmVldAorCQkJCVN1aXRlIDIyMAorCQkJCU5ld3BvcnQgQmVhY2ggQ0EgOTI2NjAKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTc5LUMzICAgKGhleCkJCUNhbWVyb25ldCBHbWJIICZhbXA7IENvLiBLRworRDQ3OUMzICAgICAoYmFzZSAxNikJCUNhbWVyb25ldCBHbWJIICZhbXA7IENvLiBLRworCQkJCUVsYmVyZmVsZGVyIFN0cmFzc2UgOTYKKwkJCQlSZW1zY2hlaWQgTlJXIDQyODUzCisJCQkJR0VSTUFOWQorCitENC03Qi03NSAgIChoZXgpCQlIQVJUSU5HIEVsZWN0cm9uaWNzIEdtYkggJiBDby4gS0cKK0Q0N0I3NSAgICAgKGJhc2UgMTYpCQlIQVJUSU5HIEVsZWN0cm9uaWNzIEdtYkggJiBDby4gS0cKKwkJCQlNYXJpZW53ZXJkZXJzdHIuIDMKKwkJCQlFc3BlbGthbXAgTm9ydGggUmhpbmUgV2VzdHBoYWxpYSAzMjMzOQorCQkJCUdFUk1BTlkKKworRDQtODItM0UgICAoaGV4KQkJQXJnb3N5IFRlY2hub2xvZ2llcywgTHRkLgorRDQ4MjNFICAgICAoYmFzZSAxNikJCUFyZ29zeSBUZWNobm9sb2dpZXMsIEx0ZC4KKwkJCQk3My0yMjEgSGF5c3RhY2sgUm9hZAorCQkJCVBhbG0gRGVzZXJ0IENBIDkyMjYwCisJCQkJVU5JVEVEIFNUQVRFUworCitENC04NS02NCAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKK0Q0ODU2NCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTWFpbGNvZGUgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTg4LTkwICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorRDQ4ODkwICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitENC04Ri1BQSAgIChoZXgpCQlTb2dlY2FtIEluZHVzdHJpYWwsIFMuQS4KK0Q0OEZBQSAgICAgKGJhc2UgMTYpCQlTb2dlY2FtIEluZHVzdHJpYWwsIFMuQS4KKwkJCQlSb3NhbGluZCBGcmFua2xpbiwgMjItMjQKKwkJCQlQVEEgQ2FtcGFuaWxsYXMKKwkJCQlNYWxhZ2EgIDI5NTkwCisJCQkJU1BBSU4KKworRDQtOTEtQUYgICAoaGV4KQkJRWxlY3Ryb2FjdXN0aWNhIEdlbmVyYWwgSWJlcmljYSwgUy5BLgorRDQ5MUFGICAgICAoYmFzZSAxNikJCUVsZWN0cm9hY3VzdGljYSBHZW5lcmFsIEliZXJpY2EsIFMuQS4KKwkJCQlBdmRhIEFsbW96YXJhLCA3OQorCQkJCVphcmFnb3phICA1MDAwMworCQkJCVNQQUlOCisKK0Q0LTk0LTVBICAgKGhleCkJCUNPU01PIENPLiwgTFRECitENDk0NUEgICAgIChiYXNlIDE2KQkJQ09TTU8gQ08uLCBMVEQKKwkJCQkxLTEyLCBIaWdhc2hpLUdvdGFuZGEgMi1jaG9tZQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAyMgorCQkJCUpBUEFOCisKK0Q0LTk2LURGICAgKGhleCkJCVNVTkdKSU4gQyZUIENPLixMVEQKK0Q0OTZERiAgICAgKGJhc2UgMTYpCQlTVU5HSklOIEMmVCBDTy4sTFRECisJCQkJRGFleWEKKwkJCQkzNjItNQorCQkJCVNoZXVuZyBHeWVvbmdnaSA0MjktODA5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Q0LTlBLTIwICAgKGhleCkJCUFwcGxlLCBJbmMKK0Q0OUEyMCAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitENC05Qy0yOCAgIChoZXgpCQlKYXlCaXJkIEdlYXIgTExDCitENDlDMjggICAgIChiYXNlIDE2KQkJSmF5QmlyZCBHZWFyIExMQworCQkJCTI4MjUgRWFzdCBDb3R0b253b29kIFBhcmt3YXkgIzUwMAorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTIxCisJCQkJVU5JVEVEIFNUQVRFUworCitENC05Qy04RSAgIChoZXgpCQlVbml2ZXJzaXR5IG9mIEZVS1VJCitENDlDOEUgICAgIChiYXNlIDE2KQkJVW5pdmVyc2l0eSBvZiBGVUtVSQorCQkJCTMtOS0xIEJ1bmt5bworCQkJCUZ1a3VpIENpdHkgIDkxMC04NTA3CisJCQkJSkFQQU4KKworRDQtOUUtNkQgICAoaGV4KQkJV3VoYW4gWmhvbmd5dWFuIEh1YWRpYW4gU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLAorRDQ5RTZEICAgICAoYmFzZSAxNikJCVd1aGFuIFpob25neXVhbiBIdWFkaWFuIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLiwKKwkJCQlOTy42LCA2IFJvYWQsIFNjaS4gJiBUZWNoLiByZWdpb24gb2YgSFVTVCwgRWFzdCBMYWtlIERldmVsb3BtZW50IFpvbmUsCisJCQkJV3VoYW4gIEh1YmVpIDQzMDIyMworCQkJCUNISU5BCisKK0Q0LUE0LTI1ICAgKGhleCkJCVNNQVggVGVjaG5vbG9neSBDby4sIEx0ZC4KK0Q0QTQyNSAgICAgKGJhc2UgMTYpCQlTTUFYIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMkYuLCBOby4gMywgV3VxdWFuIDNyZCwgV3VndSBEaXN0LgorCQkJCU5ldyBUYWlwZWkgQ2l0eSAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitENC1BOS0yOCAgIChoZXgpCQlHcmVlbldhdmUgUmVhbGl0eSBJbmMKK0Q0QTkyOCAgICAgKGJhc2UgMTYpCQlHcmVlbldhdmUgUmVhbGl0eSBJbmMKKwkJCQkzOSBQYXJrZXIKKwkJCQlJcnZpbmUgQ2FsaWZvcm5pYSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworRDQtQUEtRkYgICAoaGV4KQkJTUlDUk8gV09STEQgCitENEFBRkYgICAgIChiYXNlIDE2KQkJTUlDUk8gV09STEQgCisJCQkJMTkzNzAgVkFOIE5FU1MgQVZFIAorCQkJCVRPUlJBTkNFICBDQSA5MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworRDQtQzEtRkMgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0Q0QzFGQyAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1ICA5MDIzMAorCQkJCUZJTkxBTkQKKworRDQtQzctNjYgICAoaGV4KQkJQWNlbnRpYyBHbWJICitENEM3NjYgICAgIChiYXNlIDE2KQkJQWNlbnRpYyBHbWJICisJCQkJVmVubG9lciBTdHJhc3NlIDE1MS0xNTMKKwkJCQlDb2xvZ25lICA1MDY3MgorCQkJCUdFUk1BTlkKKworRDQtQ0ItQUYgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0Q0Q0JBRiAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU5MAorCQkJCUZJTkxBTkQKKworRDQtRDEtODQgICAoaGV4KQkJQURCIEJyb2FkYmFuZCBJdGFsaWEKK0Q0RDE4NCAgICAgKGJhc2UgMTYpCQlBREIgQnJvYWRiYW5kIEl0YWxpYQorCQkJCXZpYSBTYXJjYSAzMzYKKwkJCQlNaWxhbm8gIDIwMTI2CisJCQkJSVRBTFkKKworRDQtRDgtOTggICAoaGV4KQkJS29yZWEgQ05PIFRlY2ggQ28uLCBMdGQKK0Q0RDg5OCAgICAgKGJhc2UgMTYpCQlLb3JlYSBDTk8gVGVjaCBDby4sIEx0ZAorCQkJCSMyNDAtMSxVaWdvay1SaQorCQkJCVllb25nc3VuLU15ZW9uCisJCQkJTXVuZ3llb25nLVNpIEd5ZW9uZ3NhbmdidWstZG8gNzQ1LTg1MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitENC1FMy0yQyAgIChoZXgpCQlTLiBTaWVkbGUgJiBTb2huZQorRDRFMzJDICAgICAoYmFzZSAxNikJCVMuIFNpZWRsZSAmIFNvaG5lCisJCQkJQnJlZ3N0cmFzc2UgMQorCQkJCUZ1cnR3YW5nZW4gIEQtNzgxMjAKKwkJCQlHRVJNQU5ZCisKK0Q0LUU4LUIyICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKK0Q0RThCMiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Q0LUYwLTI3ICAgKGhleCkJCU5hdmV0YXMgRW5lcmd5IE1hbmFnZW1lbnQKK0Q0RjAyNyAgICAgKGJhc2UgMTYpCQlOYXZldGFzIEVuZXJneSBNYW5hZ2VtZW50CisJCQkJMTdBIERlYmVuIE1pbGwgQnVzaW5lc3MgQ2VudHJlCisJCQkJT2xkIE1hbHRpbmdzIEFwcHJvYWNoCisJCQkJV29vZGJyaWRnZSBTdWZmb2xrIElQMTIgMUJMCisJCQkJVU5JVEVEIEtJTkdET00KKworRDQtRjAtQjQgICAoaGV4KQkJTmFwY28gU2VjdXJpdHkgVGVjaG5vbG9naWVzCitENEYwQjQgICAgIChiYXNlIDE2KQkJTmFwY28gU2VjdXJpdHkgVGVjaG5vbG9naWVzCisJCQkJMzMzIEJheXZpZXcgQXZlCisJCQkJQW1pdHl2aWxsZSBOWSAxMTcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworRDQtRjEtNDMgICAoaGV4KQkJSVBST0FELixJbmMKK0Q0RjE0MyAgICAgKGJhc2UgMTYpCQlJUFJPQUQuLEluYworCQkJCSM1MDUgQnl1a3NhbiBkaWdpdGFsIHZhbGxleSA3LCAxNzAtMTMsCisJCQkJR3Vyby0zLURvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTg0NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEOC0xQi1GRSAgIChoZXgpCQlUV0lOTElOWCBDT1JQT1JBVElPTgorRDgxQkZFICAgICAoYmFzZSAxNikJCVRXSU5MSU5YIENPUlBPUkFUSU9OCisJCQkJRVNQQUNFIERFU0NBUlRFUyBCQVQgQgorCQkJCTQyNSBSVUUgUkVORSBERVNDQVJURVMKKwkJCQlBSVggRU4gUFJPVkVOQ0UgUFJPVkVOQ0UgMTM4NTcKKwkJCQlGUkFOQ0UKKworRDgtMUMtMTQgICAoaGV4KQkJQ29tcGFjdGEgSW50ZXJuYXRpb25hbCwgTHRkLgorRDgxQzE0ICAgICAoYmFzZSAxNikJCUNvbXBhY3RhIEludGVybmF0aW9uYWwsIEx0ZC4KKwkJCQkzMTM0MiBWaWEgTGFzIFBhbG1hcworCQkJCVNhbiBKdWFuIENhcGlzdHJhbm8gQ0EgOTI2NzUKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LTI4LUM5ICAgKGhleCkJCUdlbmVyYWwgRWxlY3RyaWMgQ29uc3VtZXIgYW5kIEluZHVzdHJpYWwKK0Q4MjhDOSAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIEVsZWN0cmljIENvbnN1bWVyIGFuZCBJbmR1c3RyaWFsCisJCQkJQVAzNS0xNDA1CisJCQkJQXBwbGlhbmNlIFBhcmsKKwkJCQlMb3Vpc3ZpbGxlIEtZIDQwMjI1CisJCQkJVU5JVEVEIFNUQVRFUworCitEOC0yOS04NiAgIChoZXgpCQlCZXN0IFdpc2ggVGVjaG5vbG9neSBMVEQKK0Q4Mjk4NiAgICAgKGJhc2UgMTYpCQlCZXN0IFdpc2ggVGVjaG5vbG9neSBMVEQKKwkJCQk3RSxIYWkgWWkgQnVzaW5lc3MgQnVpbGRpbmcsTm8uMzEwLFRpYW5zaGFuIFJELiwKKwkJCQlTaGFuZ2hhaSAgMjAwMzM2CisJCQkJQ0hJTkEKKworRDgtMkEtN0UgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0Q4MkE3RSAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU5MAorCQkJCUZJTkxBTkQKKworRDgtMzAtNjIgICAoaGV4KQkJQXBwbGUsIEluYworRDgzMDYyICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LTQyLUFDICAgKGhleCkJCUZyZWVDb21tIERhdGEgQ29tbXVuaWNhdGlvbiBDby4sTHRkLgorRDg0MkFDICAgICAoYmFzZSAxNikJCUZyZWVDb21tIERhdGEgQ29tbXVuaWNhdGlvbiBDby4sTHRkLgorCQkJCUJ1aWxkaW5nIDkwLCBOby4gNDg1NSwgR3VhbmdmdWxpbiBSb2FkLCBTb25namlhbmcgRGlzdHJpY3QKKwkJCQlTaGFuZ2hhaSAgMjAxNjE2CisJCQkJQ0hJTkEKKworRDgtNDYtMDYgICAoaGV4KQkJU2lsaWNvbiBWYWxsZXkgR2xvYmFsIE1hcmtldGluZworRDg0NjA2ICAgICAoYmFzZSAxNikJCVNpbGljb24gVmFsbGV5IEdsb2JhbCBNYXJrZXRpbmcKKwkJCQk4MzAgU3Rld2FydCBEci4gIzIwMQorCQkJCVN1bm55dmFsZSBDYSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtNEItMkEgICAoaGV4KQkJQ29nbml0YXMgVGVjaG5vbG9naWVzLCBJbmMuCitEODRCMkEgICAgIChiYXNlIDE2KQkJQ29nbml0YXMgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNjQwNiBMYXVyZWwgQnVzaCBMbi4KKwkJCQlTdWdhciBMYW5kIFRleGFzIDc3NDc5CisJCQkJVU5JVEVEIFNUQVRFUworCitEOC01NC0zQSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworRDg1NDNBICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCitEOC01RC00QyAgIChoZXgpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sTHRkLgorRDg1RDRDICAgICAoYmFzZSAxNikJCVRQLUxJTksgVGVjaG5vbG9naWVzIENvLixMdGQuCisJCQkJQnVpbGRpbmcgNywgU2Vjb25kIFBhcnQsIEhvbmdodWFsaW5nIEluZHVzdHJpYWwgWm9uZQorCQkJCVhpbGkgdG93biwgTmFuc2hhbiwgCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKK0Q4LTVELTg0ICAgKGhleCkJCUNBeCBzb2Z0IEdtYkgKK0Q4NUQ4NCAgICAgKGJhc2UgMTYpCQlDQXggc29mdCBHbWJICisJCQkJTm9ldHRpbmdlciBTdHJhc3NlIDMKKwkJCQlLYXJsc2JhZCBCVyA3NjMwNworCQkJCUdFUk1BTlkKKworRDgtNkItRjcgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCitEODZCRjcgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworRDgtNzEtNTcgICAoaGV4KQkJTGVub3ZvIE1vYmlsZSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgTHRkLgorRDg3MTU3ICAgICAoYmFzZSAxNikJCUxlbm92byBNb2JpbGUgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IEx0ZC4KKwkJCQlOby45OTksUWlzaGFuIE5vcnRoIDJuZCBSb2FkLEluZm9ybWF0aW9uJk9wdG9lbGVjdHJvbmljcyBQYXJrLFRvcmNoIEhpLXRlY2ggSW5kdXN0cnkgRGV2ZWxvcG1lbnQgWm9uZSwKKwkJCQlYaWFtZW4gRnVqaWFuIDM2MTAwNgorCQkJCUNISU5BCisKK0Q4LTc1LTMzICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitEODc1MzMgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1OTAKKwkJCQlGSU5MQU5ECisKK0Q4LTc2LTBBICAgKGhleCkJCUVzY29ydCwgSW5jLgorRDg3NjBBICAgICAoYmFzZSAxNikJCUVzY29ydCwgSW5jLgorCQkJCTU0NDAgV2VzdCBDaGVzdGVyIFJkLgorCQkJCVdlc3QgQ2hlc3RlciBPaGlvIDQ1MDY5CisJCQkJVU5JVEVEIFNUQVRFUworCitEOC03OS04OCAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorRDg3OTg4ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCisJCQkJTk8uMTY4IEZPWENPTk4gUk9BRAorCQkJCUhVQUlBTiBFQ09OT01JQyBERVZFTE9QTUVOVCBaT05FCisJCQkJSFVBSUFOIEpJQU5HU1UgMjIzMDA1CisJCQkJQ0hJTkEKKworRDgtOTUtMkYgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKK0Q4OTUyRiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCU1TIDg3MjMKKwkJCQlEYWxsYXMgVGV4YXMgNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LTk3LTNCICAgKGhleCkJCUVtZXJzb24gTmV0d29yayBQb3dlciBFbWJlZGRlZCBQb3dlcgorRDg5NzNCICAgICAoYmFzZSAxNikJCUVtZXJzb24gTmV0d29yayBQb3dlciBFbWJlZGRlZCBQb3dlcgorCQkJCTE2L0YgTHUgUGxhemEgQnVpbGRpbmcKKwkJCQkyIFdpbmcgWWlwIFN0cmVldAorCQkJCUt3dW4gVG9uZyBLb3dsb29uIDAwMDAwCisJCQkJSE9ORyBLT05HCisKK0Q4LTlELUI5ICAgKGhleCkJCWVNZWdhdGVjaCBJbnRlcm5hdGlvbmFsIENvcnAuCitEODlEQjkgICAgIChiYXNlIDE2KQkJZU1lZ2F0ZWNoIEludGVybmF0aW9uYWwgQ29ycC4KKwkJCQlSb29tIDQwMywgTm8uMjQgV3VjeXVhbiAybmQgUmQuLAorCQkJCVNpbmpodWFuZyBDaXR5LCBUYWlwZWkgQ291bnR5LCAgMjM4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitEOC05RS0zRiAgIChoZXgpCQlBcHBsZSwgSW5jLgorRDg5RTNGICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitEOC1BMi01RSAgIChoZXgpCQlBcHBsZQorRDhBMjVFICAgICAoYmFzZSAxNikJCUFwcGxlCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENhbGlmb3JuaWEgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LUFFLTkwICAgKGhleCkJCUl0aWJpYSBUZWNobm9sb2dpZXMKK0Q4QUU5MCAgICAgKGJhc2UgMTYpCQlJdGliaWEgVGVjaG5vbG9naWVzCisJCQkJNSBDbGF1c2VuIEN0CisJCQkJV2VzdCBXaW5kc29yIE5KIDA4NTUwCisJCQkJVU5JVEVEIFNUQVRFUworCitEOC1CMS0yQSAgIChoZXgpCQlQYW5hc29uaWMgTW9iaWxlIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorRDhCMTJBICAgICAoYmFzZSAxNikJCVBhbmFzb25pYyBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCisJCQkJNjAwIFNhZWRvLWNobyBUc3V6dWtpLWt1CisJCQkJWW9rb2hhbWEgQ2l0eSBLYW5hZ2F3YSAyMjQtODUzOQorCQkJCUpBUEFOCisKK0Q4LUIzLTc3ICAgKGhleCkJCUhUQyBDb3Jwb3JhdGlvbgorRDhCMzc3ICAgICAoYmFzZSAxNikJCUhUQyBDb3Jwb3JhdGlvbgorCQkJCU5vLiAyMywgWGluZ2h1YSBSZC4sIAorCQkJCVRhb3l1YW4gQ2l0eSAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitEOC1CNi1DMSAgIChoZXgpCQlOZXR3b3JrQWNjb3VudGFudCwgSW5jLgorRDhCNkMxICAgICAoYmFzZSAxNikJCU5ldHdvcmtBY2NvdW50YW50LCBJbmMuCisJCQkJMTIxMDEgVHVrd2lsYSBJbnRlcm5hdGlvbmFsIEJsdmQuCisJCQkJU2VhdHRsZSBXYXNoaW5ndG9uIDk4MTY4CisJCQkJVU5JVEVEIFNUQVRFUworCitEOC1DMC02OCAgIChoZXgpCQlOZXRnZW5ldGVjaC5jby4sbHRkLgorRDhDMDY4ICAgICAoYmFzZSAxNikJCU5ldGdlbmV0ZWNoLmNvLixsdGQuCisJCQkJNzA0LCBIYW5saW0gVmVudHVyZSBUb3duLiwgIzY4OS02LCAKKwkJCQlHZXVtamVvbmctIGRvbmcsCisJCQkJR3VucG8tc2kgIDQzNS04NjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRDgtQzMtRkIgICAoaGV4KQkJREVUUkFDT00KK0Q4QzNGQiAgICAgKGJhc2UgMTYpCQlERVRSQUNPTQorCQkJCTQxIEFWRU5VRSBERSBMJ0VVUk9QRQorCQkJCVpPTkUgRVVST0NFTlRSRSBPVUVTVCAKKwkJCQlDQVNURUxOQVUgRCdFU1RSRVRFRk9ORFMgIDMxNjIwCisJCQkJRlJBTkNFCisKK0Q4LUM3LUM4ICAgKGhleCkJCUFydWJhIE5ldHdvcmtzCitEOEM3QzggICAgIChiYXNlIDE2KQkJQXJ1YmEgTmV0d29ya3MKKwkJCQkxMzQ0IENyb3NzbWFuIEF2ZS4KKwkJCQlTdW5ueXZhbGUgIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCitEOC1DOS05RCAgIChoZXgpCQlFQSBESVNQTEFZIExJTUlURUQKK0Q4Qzk5RCAgICAgKGJhc2UgMTYpCQlFQSBESVNQTEFZIExJTUlURUQKKwkJCQkyMi9GIERFTFRBIEhPVVNFIDMgT04gWUlVIFNUCisJCQkJU0hBVElOIE5UICAKKwkJCQlIT05HIEtPTkcKKworRDgtRDMtODUgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCitEOEQzODUgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LUQ2LTdFICAgKGhleCkJCUdTSyBDTkMgRVFVSVBNRU5UIENPLixMVEQKK0Q4RDY3RSAgICAgKGJhc2UgMTYpCQlHU0sgQ05DIEVRVUlQTUVOVCBDTy4sTFRECisJCQkJTk8uNywxc3QgU3RyZWV0LEx1b2Nob25nIE5vcnRoIFJvYWQsTHVvY2hvbmd3ZWkKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nICA1MTAxNjUKKwkJCQlDSElOQQorCitEOC1ERi0wRCAgIChoZXgpCQliZXJvTmV0IEdtYkgKK0Q4REYwRCAgICAgKGJhc2UgMTYpCQliZXJvTmV0IEdtYkgKKwkJCQlGcmllZHJpY2hzdHIuIDIzMQorCQkJCUJlcmxpbiAgMTA5NjkKKwkJCQlHRVJNQU5ZCisKK0Q4LUUzLUFFICAgKGhleCkJCUNJUlRFQyBNRURJQ0FMIFNZU1RFTVMKK0Q4RTNBRSAgICAgKGJhc2UgMTYpCQlDSVJURUMgTUVESUNBTCBTWVNURU1TCisJCQkJMTAxQiBDb29wZXIgQ291cnQKKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LUU3LTJCICAgKGhleCkJCU9uUEFUSCBUZWNobm9sb2dpZXMKK0Q4RTcyQiAgICAgKGJhc2UgMTYpCQlPblBBVEggVGVjaG5vbG9naWVzCisJCQkJMjAwMCBMaW5jb2xuIERyaXZlIEVhc3QKKwkJCQlNYXJsdG9uIE5ldyBKZXJzZXkgMDgwNTMKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LUZFLThGICAgKGhleCkJCUlERm9uZSBDby4sIEx0ZC4KK0Q4RkU4RiAgICAgKGJhc2UgMTYpCQlJREZvbmUgQ28uLCBMdGQuCisJCQkJN0YgQWNlIHRlY2hubyB0b3dlciA1dGggQi9ELCAxOTctMjIKKwkJCQlHdXJvLWRvbmcsIEd1cm8tZ3UgU2VvdWwgMTUyLTc2NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEQy0wMi02NSAgIChoZXgpCQlNZWRpdGVjaCBLZnQKK0RDMDI2NSAgICAgKGJhc2UgMTYpCQlNZWRpdGVjaCBLZnQKKwkJCQlVbGxvaSB1dCAyMDAuCisJCQkJQnVkYXBlc3QgIDExOTEKKwkJCQlIVU5HQVJZCisKK0RDLTA1LUVEICAgKGhleCkJCU5hYnRlc2NvICBDb3Jwb3JhdGlvbgorREMwNUVEICAgICAoYmFzZSAxNikJCU5hYnRlc2NvICBDb3Jwb3JhdGlvbgorCQkJCTktMTgsIEthaWdhbiAxLWNob21lCisJCQkJTWluYXRvLWt1IFRva3lvIDEwNS0wMDIyCisJCQkJSkFQQU4KKworREMtMDctQzEgICAoaGV4KQkJSGFuZ1pob3UgUWlZYW5nIFRlY2hub2xvZ3kgQ28uLEx0ZC4KK0RDMDdDMSAgICAgKGJhc2UgMTYpCQlIYW5nWmhvdSBRaVlhbmcgVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCUZsb29yIDUsIEJ1aWxkaW5nIDIsIFJvYWQgWGlZdWFuWWksIFdlc3RMYWtlIFRlY2hub2xvZ3kgUGFyaywKKwkJCQlTYW5EdW4sIFhpSHUgRGlzdHJpYnV0ZQorCQkJCUhhbmdaaG91IFpoZUppYW5nIDMxMDAyOAorCQkJCUNISU5BCisKK0RDLTE2LUEyICAgKGhleCkJCU1lZHRyb25pYyBEaWFiZXRlcworREMxNkEyICAgICAoYmFzZSAxNikJCU1lZHRyb25pYyBEaWFiZXRlcworCQkJCTE4MDAwIERldm9uc2hpcmUgU3QKKwkJCQlOb3J0aHJpZGdlIENBIDkxMzI1CisJCQkJVU5JVEVEIFNUQVRFUworCitEQy0xRC05RiAgIChoZXgpCQlVICYgQiB0ZWNoCitEQzFEOUYgICAgIChiYXNlIDE2KQkJVSAmIEIgdGVjaAorCQkJCTJGLCBEYWV5b3VuZyBidWxpZGluZywgMTQyMy02LCBLd2FueWFuZy0xRG9uZywKKwkJCQlEb25nQW4tR3UsCisJCQkJQW55YW5nLVNpIEd5ZW9uZ2dpLURvIDQzMS0wNjEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworREMtMjAtMDggICAoaGV4KQkJQVNEIEVsZWN0cm9uaWNzIEx0ZCAKK0RDMjAwOCAgICAgKGJhc2UgMTYpCQlBU0QgRWxlY3Ryb25pY3MgTHRkIAorCQkJCURFREUgSU5EVVNUUklBTCBQQVJLLEpJQU4nQU4gUk9BRCxISUdILVRFQ0gKKwkJCQlJTkRVU1RSSUFMIFBBUkssRlVZT05HIFRPV04sQkFPJ0FOIERJU1RSSUNULAorCQkJCVNoZW56aGVuICBHdWFuZyBEb25nIDUxODEwMworCQkJCUNISU5BCisKK0RDLTJCLTYxICAgKGhleCkJCUFwcGxlCitEQzJCNjEgICAgIChiYXNlIDE2KQkJQXBwbGUKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0RDLTJCLTY2ICAgKGhleCkJCUluZm9ibG9jaworREMyQjY2ICAgICAoYmFzZSAxNikJCUluZm9ibG9jaworCQkJCUhlZ2VsIDIyOSAtIDEwCisJCQkJQ2hhcHVsdGVwZWMgTW9yYWxlcworCQkJCU1leGljbyBDaXR5IERpc3RyaXRvIEZlZGVyYWwgMTE1NzAKKwkJCQlNRVhJQ08KKworREMtMkMtMjYgICAoaGV4KQkJSXRvbiBUZWNobm9sb2d5IExpbWl0ZWQKK0RDMkMyNiAgICAgKGJhc2UgMTYpCQlJdG9uIFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCVJvb20gMTBFLCBKaW5nRmVuZyBCdWlsZGluZywgCisJCQkJQmluaGUgUm9hZCwgRnV0aWFuIERpc3RyaWN0CisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODAzNAorCQkJCUNISU5BCisKK0RDLTMzLTUwICAgKGhleCkJCVRlY2hTQVQgR21iSAorREMzMzUwICAgICAoYmFzZSAxNikJCVRlY2hTQVQgR21iSAorCQkJCUdydWJlciBTdHIuIDQ2YworCQkJCVBvaW5nIEJZIDg1NTg2CisJCQkJR0VSTUFOWQorCitEQy0zQy04NCAgIChoZXgpCQlUaWNvbSBHZW9tYXRpY3MsIEluYy4KK0RDM0M4NCAgICAgKGJhc2UgMTYpCQlUaWNvbSBHZW9tYXRpY3MsIEluYy4KKwkJCQk5MTMwIEpvbGx5dmlsbGUgUmQuIFN0ZS4gMzAwCisJCQkJQXVzdGluIFRleGFzIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCitEQy00OS1DOSAgIChoZXgpCQlDQVNDTyBTSUdOQUwgTFRECitEQzQ5QzkgICAgIChiYXNlIDE2KQkJQ0FTQ08gU0lHTkFMIExURAorCQkJCU5vLjQ4OSBYaXphbmcgQmVpIFJvYWQKKwkJCQlTaGFuZ2hhaSAgMjAwMDcxCisJCQkJQ0hJTkEKKworREMtNEUtREUgICAoaGV4KQkJU0hJTllFSSBURUNITk9MT0dZIENPLiwgTFRELgorREM0RURFICAgICAoYmFzZSAxNikJCVNISU5ZRUkgVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQk2LTUtMiwgTUlOQVRPSklNQS1NSU5BTUlNQUNISSwgQ0hVTy1LVQorCQkJCUtPQkUgSFlPR08gNjUwLTAwNDcKKwkJCQlKQVBBTgorCitEQy03Qi05NCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitEQzdCOTQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitEQy05Qi0xRSAgIChoZXgpCQlJbnRlcmNvbSwgSW5jLgorREM5QjFFICAgICAoYmFzZSAxNikJCUludGVyY29tLCBJbmMuCisJCQkJU29yaW1hY2hpIEJsZGcuLCAzLTUsIFRhaXRvIDEtY2hvbWUsIAorCQkJCVRhaXRvLWt1IFRva3lvIDExMC04NjU0CisJCQkJSkFQQU4KKworREMtOUMtNTIgICAoaGV4KQkJU2FwcGhpcmUgVGVjaG5vbG9neSBMaW1pdGVkLgorREM5QzUyICAgICAoYmFzZSAxNikJCVNhcHBoaXJlIFRlY2hub2xvZ3kgTGltaXRlZC4KKwkJCQlVbml0IDE5MDktMTkxOSwgMTkvRi4sIFRvd2VyIDIsIEdyYW5kIENlbnRyYWwgUGxhemEsCisJCQkJMTM4IFNoYXRpbiBSdXJhbCBDb21taXR0ZWUgUm9hZCwgU2hhdGluLCBOLlQuLAorCQkJCUhPTkcgS09ORworCitEQy1BNi1CRCAgIChoZXgpCQlCZWlqaW5nIExhbmJvIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitEQ0E2QkQgICAgIChiYXNlIDE2KQkJQmVpamluZyBMYW5ibyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCVJvb20uMzAxLkJpZGcuNE5PLjggU2hhbmdkaSBXZXN0IFJvYWQsIEhhaWRpYW4gIERpc3RyaWN0LAorCQkJCUJlaWppbmcgQ2l0eSAgMTAwMDg1CisJCQkJQ0hJTkEKKworREMtQTctRDkgICAoaGV4KQkJQ29tcHJlc3NvciBDb250cm9scyBDb3JwCitEQ0E3RDkgICAgIChiYXNlIDE2KQkJQ29tcHJlc3NvciBDb250cm9scyBDb3JwCisJCQkJNDcyNSAxMjFzdCBTdHJlZXQKKwkJCQlEZXMgTW9pbmVzIElvd2EgNTAzMjMKKwkJCQlVTklURUQgU1RBVEVTCisKK0RDLUE5LTcxICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorRENBOTcxICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworREMtQ0ItQTggICAoaGV4KQkJRXhwbG9yYSBUZWNobm9sb2dpZXMgSW5jCitEQ0NCQTggICAgIChiYXNlIDE2KQkJRXhwbG9yYSBUZWNobm9sb2dpZXMgSW5jCisJCQkJMzYwLCBGcmFucXVldCBTdHJlZXQKKwkJCQlTdWl0ZSAyMAorCQkJCVF1ZWJlYyAgRzFQIDROMworCQkJCUNBTkFEQQorCitEQy1DRS00MSAgIChoZXgpCQlGRSBHTE9CQUwgSE9ORyBLT05HIExJTUlURUQKK0RDQ0U0MSAgICAgKGJhc2UgMTYpCQlGRSBHTE9CQUwgSE9ORyBLT05HIExJTUlURUQKKwkJCQlGTEFUIDIwNC0yMDUgMi9GIExBRk9SRCBDRU5UUkU4MzggTEFJIENISSBLT0sgUkQgQ0hFVU5HIFNIQSBXQU4gS0wKKwkJCQlTSEVOWkhFTiAgNTE4MDU3CisJCQkJQ0hJTkEKKworREMtQ0YtOTQgICAoaGV4KQkJQmVpamluZyBSb25nY2hlbmcgSHV0b25nIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitEQ0NGOTQgICAgIChiYXNlIDE2KQkJQmVpamluZyBSb25nY2hlbmcgSHV0b25nIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJUm9vbSA0MDFBLEJ1aWxkaW5nIE5vLjQsWWFyZCBOby41LAorCQkJCVlvbmdmZW5nIFJvYWQsIEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwMjQKKwkJCQlDSElOQQorCitEQy1EMC1GNyAgIChoZXgpCQlCZW50ZWsgU3lzdGVtcyBMdGQuCitEQ0QwRjcgICAgIChiYXNlIDE2KQkJQmVudGVrIFN5c3RlbXMgTHRkLgorCQkJCTMxNSAtIDM3NTAgNDZ0aCBBdmUuIFNFCisJCQkJQ2FsZ2FyeSBBQiBUMkIgMEwxCisJCQkJQ0FOQURBCisKK0RDLUQzLTIxICAgKGhleCkJCUhVTUFYIGNvLix0bGQKK0RDRDMyMSAgICAgKGJhc2UgMTYpCQlIVU1BWCBjby4sdGxkCisJCQkJSFVNQVggVmlsbGFnZSwgMTEtNCwgU3VuYWUtZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2My04MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworREMtRDgtN0YgICAoaGV4KQkJU2hlbnpoZW4gSm9pbkN5YmVyIFRlbGVjb20gRXF1aXBtZW50IEx0ZAorRENEODdGICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEpvaW5DeWJlciBUZWxlY29tIEVxdWlwbWVudCBMdGQKKwkJCQkxOUNERSwgQmxvY2sgQSxKaW5GZW5nQnVpbGRpbmcsc2hhbmdidSBTb3V0aCBSb2FkLEZ1dGlhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDMxCisJCQkJQ0hJTkEKKworREMtREUtQ0EgICAoaGV4KQkJQWt5bGxvcgorRENERUNBICAgICAoYmFzZSAxNikJCUFreWxsb3IKKwkJCQlCcml0YW5uaWEgSG91c2UsIDIyLCAyRiwgQ2F0b3IgUm9hZAorCQkJCUJhbmRhciBTZXJpIEJlZ2F3YW4gQlMgIDg4MTEKKwkJCQlCUlVORUkgREFSVVNTQUxBTQorCitEQy1FMi1BQyAgIChoZXgpCQlMdW1lbnMgRGlnaXRhbCBPcHRpY3MgSW5jLgorRENFMkFDICAgICAoYmFzZSAxNikJCUx1bWVucyBEaWdpdGFsIE9wdGljcyBJbmMuCisJCQkJNUYsIE5vLjM1LCBTaW50YWkgUmQuLCBKaHViZWkgQ2l0eQorCQkJCUpodWJlaSAgSHNpbkNodSAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0RDLUU3LTFDICAgKGhleCkJCUFVRyBFbGVrdHJvbmlrIEdtYkgKK0RDRTcxQyAgICAgKGJhc2UgMTYpCQlBVUcgRWxla3Ryb25payBHbWJICisJCQkJS2xlaW53b2VsbG1pc3MgNTMKKwkJCQlTdC4gTWFydGluIGEuIFcuIFN0eXJpYSBBLTg1ODAKKwkJCQlBVVNUUklBCisKK0RDLUZBLUQ1ICAgKGhleCkJCVNUUk9ORyBHZXMubS5iLkguCitEQ0ZBRDUgICAgIChiYXNlIDE2KQkJU1RST05HIEdlcy5tLmIuSC4KKwkJCQlGcmFuei1Kb3NlZnMtS2FpIDEKKwkJCQlWaWVubmEgIDEwMTAKKwkJCQlBVVNUUklBCisKK0UwLTA1LUM1ICAgKGhleCkJCVRQLUxJTksgVGVjaG5vbG9naWVzIENvLixMdGQuCitFMDA1QzUgICAgIChiYXNlIDE2KQkJVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKwkJCQlCdWlsZGluZyA3LCBTZWNvbmQgUGFydCwgSG9uZ2h1YWxpbmcgSW5kdXN0cmlhbCBab25lCisJCQkJWGlsaSB0b3duLCBOYW5zaGFuLCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworRTAtMEMtN0YgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCitFMDBDN0YgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworRTAtMTQtM0UgICAoaGV4KQkJTW9kb29zaXMgSW5jLgorRTAxNDNFICAgICAoYmFzZSAxNikJCU1vZG9vc2lzIEluYy4KKwkJCQkjMzAyLCBTYW1pbCBCbGRnLiwgNjU2LTI4MgorCQkJCVNlb25nc29vLWRvbmcgMSBnYSwgU2Vvbmdkb25nLWd1CisJCQkJU2VvdWwgIDEzMy0xMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRTAtMUMtRUUgICAoaGV4KQkJQnJhdm8gVGVjaCwgSW5jLgorRTAxQ0VFICAgICAoYmFzZSAxNikJCUJyYXZvIFRlY2gsIEluYy4KKwkJCQk2MTg1IFBoeWxsaXMgRHIuIFVuaXQgRC4KKwkJCQlDeXByZXNzIENBIDkwNjMwCisJCQkJVU5JVEVEIFNUQVRFUworCitFMC0xRi0wQSAgIChoZXgpCQlYc2xlbnQgRW5lcmd5IFRlY2hub2xvZ2llcy4gTExDCitFMDFGMEEgICAgIChiYXNlIDE2KQkJWHNsZW50IEVuZXJneSBUZWNobm9sb2dpZXMuIExMQworCQkJCTc0MjggUmVkd29vZCBCbHZkCisJCQkJU3VpdGUgMTAyCisJCQkJTm92YXRvIENBIDk0OTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCitFMC0yNS0zOCAgIChoZXgpCQlUaXRhbiBQZXQgUHJvZHVjdHMKK0UwMjUzOCAgICAgKGJhc2UgMTYpCQlUaXRhbiBQZXQgUHJvZHVjdHMKKwkJCQk2NTIxIENyZWVkbW9vciBSZC4gU3VpdGUgMTAxCisJCQkJUmFsZWlnaCBOQyAyNzYxMworCQkJCVVOSVRFRCBTVEFURVMKKworRTAtMjYtMzAgICAoaGV4KQkJSW50cmlndWUgVGVjaG5vbG9naWVzLCBJbmMuCitFMDI2MzAgICAgIChiYXNlIDE2KQkJSW50cmlndWUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJODAwIE9sZCBQb25kIFJvYWQKKwkJCQkjNzA1CisJCQkJQnJpZGdldmlsbGUgUEEgMTUwMTcKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLTI2LTM2ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworRTAyNjM2ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCUNBUlJFVEVSQSBCQVNFIEFFUkVBICMgNTg1MAorCQkJCVphcG9wYW4gSmFsaXNjbyA0NDEzMAorCQkJCU1FWElDTworCitFMC0yNy0xQSAgIChoZXgpCQlUVEMgTmV4dC1nZW5lcmF0aW9uIEhvbWUgTmV0d29yayBTeXN0ZW0gV0cKK0UwMjcxQSAgICAgKGJhc2UgMTYpCQlUVEMgTmV4dC1nZW5lcmF0aW9uIEhvbWUgTmV0d29yayBTeXN0ZW0gV0cKKwkJCQkxLTEtMTIgU2hpYmEgS291ZW4KKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA1LTAwMTEKKwkJCQlKQVBBTgorCitFMC0yQS04MiAgIChoZXgpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KK0UwMkE4MiAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKwkJCQkxNDEsIExBTkUgMzUxLCBTRUMuMSwgVEFJUElORyBSRC4KKwkJCQlUU0FPVFVFTgorCQkJCU5BTlRPVSA1NDI2MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRTAtM0UtN0QgICAoaGV4KQkJZGF0YS1jb21wbGV4IEdtYkgKK0UwM0U3RCAgICAgKGJhc2UgMTYpCQlkYXRhLWNvbXBsZXggR21iSAorCQkJCURpP29lc3Rlcm5ncmFiZW4gNworCQkJCUhhbGJlcnN0YWR0IFNhY2hzZW4tQW5oYWx0IDM4ODIwCisJCQkJR0VSTUFOWQorCitFMC00Ni05QSAgIChoZXgpCQlORVRHRUFSCitFMDQ2OUEgICAgIChiYXNlIDE2KQkJTkVUR0VBUgorCQkJCTM1MCBFQVNUIFBMVU1FUklBIERSSVZFCisJCQkJU0FOIEpPU0UgQ0FMSUZPUk5JQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRTAtNTgtOUUgICAoaGV4KQkJTGFlcmRhbCBNZWRpY2FsCitFMDU4OUUgICAgIChiYXNlIDE2KQkJTGFlcmRhbCBNZWRpY2FsCisJCQkJVGFua2UgU3ZpbGFuZHNnYXRlIDMwCisJCQkJU3RhdmFuZ2VyICA0MDAyCisJCQkJTk9SV0FZCisKK0UwLTVCLTcwICAgKGhleCkJCUlubm92aWQsIENvLiwgTHRkLgorRTA1QjcwICAgICAoYmFzZSAxNikJCUlubm92aWQsIENvLiwgTHRkLgorCQkJCTV0aCBGbG9vciwgQm9nYSBCdWlsZGluZywgODIxLTMsIEJhbmdiYWVkb25nLCBTZW9jaG9ndQorCQkJCVNlb3VsICAxMzctMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0UwLTVGLUI5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0UwNUZCOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLTYxLUIyICAgKGhleCkJCUhBTkdaSE9VIFpFTk9JTlRFTCBURUNITk9MT0dZIENPLiwgTFRECitFMDYxQjIgICAgIChiYXNlIDE2KQkJSEFOR1pIT1UgWkVOT0lOVEVMIFRFQ0hOT0xPR1kgQ08uLCBMVEQKKwkJCQlSb29tIDgwNiwgRiMsIENhbWJyaWRnZSBDb21icmlkZ2UsIFNoZW5odWEgUm9hZCxEaXN0cmljdCBYaWh1LCAKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwMzAKKwkJCQlDSElOQQorCitFMC02Mi05MCAgIChoZXgpCQlKaW5hbiBKb3Zpc2lvbiBTY2llbmNlICYgVGVjaG5vbG9neSBDby4sIEx0ZC4KK0UwNjI5MCAgICAgKGJhc2UgMTYpCQlKaW5hbiBKb3Zpc2lvbiBTY2llbmNlICYgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlSb29tIDQwNywgVG93ZXIgQywgQ3liZXIgUG9ydCBCdWlsZGluZywKKwkJCQk0NyBTaGFuZGEgUmQKKwkJCQlKaW5hbiBTaGFuZG9uZyAyNTAwMTMKKwkJCQlDSElOQQorCitFMC02NC1CQiAgIChoZXgpCQlEaWdpVmlldyBTLnIubC4KK0UwNjRCQiAgICAgKGJhc2UgMTYpCQlEaWdpVmlldyBTLnIubC4KKwkJCQlWaWEgU2VuaWdhbGxpYSAxOC8yCisJCQkJTWlsYW5vICAyMDE2MQorCQkJCUlUQUxZCisKK0UwLTY5LTk1ICAgKGhleCkJCVBFR0FUUk9OIENPUlBPUkFUSU9OCitFMDY5OTUgICAgIChiYXNlIDE2KQkJUEVHQVRST04gQ09SUE9SQVRJT04KKwkJCQlOby4gNzYsIExpZ29uZyBTdC4sIEJlaXRvdSwgCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0UwLTg3LUIxICAgKGhleCkJCU5hdGEtSW5mbyBMdGQuCitFMDg3QjEgICAgIChiYXNlIDE2KQkJTmF0YS1JbmZvIEx0ZC4KKwkJCQkyOCwgUHJva2hvcm92YSBzdHIuCisJCQkJWW9zaGthci1PbGEgUmVwdWJsaWMgTWFyaS1FbCA0MjQwMDcKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworRTAtOEEtN0UgICAoaGV4KQkJRXhwb25lbnQKK0UwOEE3RSAgICAgKGJhc2UgMTYpCQlFeHBvbmVudAorCQkJCTE0OSBDb21tb253ZWFsdGggRHJpdmUKKwkJCQlNZW5sbyBQYXJrIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCitFMC04Ri1FQyAgIChoZXgpCQlSRVBPVEVDIENPLiwgTFRELgorRTA4RkVDICAgICAoYmFzZSAxNikJCVJFUE9URUMgQ08uLCBMVEQuCisJCQkJM0YsIDI1OC4gCisJCQkJTElBTiBDSEVOIFJELiAKKwkJCQlDSFVORyBITyBDSVRZLCBUQUlQRUkgQ09VTlRZICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0UwLTkxLTUzICAgKGhleCkJCVhBVmkgVGVjaG5vbG9naWVzIENvcnAuCitFMDkxNTMgICAgIChiYXNlIDE2KQkJWEFWaSBUZWNobm9sb2dpZXMgQ29ycC4KKwkJCQk5RiwgTm8uIDEyOSwgSHNpbmcgVGUgUmQsIFNhbmNodW5nIENpdHkKKwkJCQlUYWlwZWkgIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRTAtOTEtRjUgICAoaGV4KQkJTkVUR0VBUgorRTA5MUY1ICAgICAoYmFzZSAxNikJCU5FVEdFQVIKKwkJCQkzNTAgRUFTVCBQTFVNRVJJQSBEUklWRQorCQkJCVNBTiBKT1NFIENBTElGT1JOSUEgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLUExLUQ3ICAgKGhleCkJCVNGUgorRTBBMUQ3ICAgICAoYmFzZSAxNikJCVNGUgorCQkJCTQwLzQyIFF1YWkgZHUgcG9pbnQgZHUgam91cgorCQkJCUJvdWxvZ25lIEJpbGxhbmNvdXJ0IEhhdXRzIGRlIFNlaW5lIDkyNjU5CisJCQkJRlJBTkNFCisKK0UwLUE2LTcwICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitFMEE2NzAgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1OTAKKwkJCQlGSU5MQU5ECisKK0UwLUFCLUZFICAgKGhleCkJCU9yYiBOZXR3b3JrcywgSW5jLgorRTBBQkZFICAgICAoYmFzZSAxNikJCU9yYiBOZXR3b3JrcywgSW5jLgorCQkJCTQyOCAxM3RoIFN0cmVldAorCQkJCTNyZCBGbG9vcgorCQkJCU9ha2xhbmQgQ0EgOTQ2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLUI5LUE1ICAgKGhleCkJCUF6dXJld2F2ZQorRTBCOUE1ICAgICAoYmFzZSAxNikJCUF6dXJld2F2ZQorCQkJCThGLiwgQmFvemhvbmcgUmQuCisJCQkJWGluZGlhbiBDaXR5IFRhaXBlaSBDb3VudHkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFMC1CQy00MyAgIChoZXgpCQlDMiBNaWNyb3N5c3RlbXMsIEluYy4KK0UwQkM0MyAgICAgKGJhc2UgMTYpCQlDMiBNaWNyb3N5c3RlbXMsIEluYy4KKwkJCQkyODMzIEp1bmN0aW9uIEF2ZW51ZQorCQkJCVN1aXRlIDEwMQorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLUMyLTg2ICAgKGhleCkJCUFpc2FpIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KK0UwQzI4NiAgICAgKGJhc2UgMTYpCQlBaXNhaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJUm9vbSAyNjEwIEFzaWEgVHJhZGUgQ2VudHJlLAorCQkJCTc5IExpIE11ayBSb2FkLAorCQkJCUt3YWkgQ2h1bmcgTi5ULiA4NTIKKwkJCQlIT05HIEtPTkcKKworRTAtQzktMjIgICAoaGV4KQkJSmlyZWggRW5lcmd5IFRlY2guLCBMdGQuCitFMEM5MjIgICAgIChiYXNlIDE2KQkJSmlyZWggRW5lcmd5IFRlY2guLCBMdGQuCisJCQkJIzYwNiBTZW91bCBGb3Jlc3QgSGFsbGFzaWdtYXZhbGxleSwgMzI1LTIKKwkJCQlTZW9uZ3N1LWRvbmcgMihpKS1nYSwgCisJCQkJU2VvdWwgU2Vvbmdkb25nLUd1IDEzMy0xMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRTAtQ0EtNEQgICAoaGV4KQkJU2hlbnpoZW4gVW5pc3RhciBDb21tdW5pY2F0aW9uIENvLixMVEQKK0UwQ0E0RCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBVbmlzdGFyIENvbW11bmljYXRpb24gQ28uLExURAorCQkJCTkvRixRaW5naGFpIEJ1aWxkaW5nLDcwNDMsIEJlcmh1YW4gUm9hZCwgRnV0aWFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDM0CisJCQkJQ0hJTkEKKworRTAtQ0EtOTQgICAoaGV4KQkJQXNrZXkgQ29tcHV0ZXIKK0UwQ0E5NCAgICAgKGJhc2UgMTYpCQlBc2tleSBDb21wdXRlcgorCQkJCTEwRixOTy4xMTksQ0hJRU5LQU5HIFJELENIVU5HLUhPIENJVFksIAorCQkJCVRBSVBFSSBDT1VOVFkgMjM1ODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0UwLUNCLTRFICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorRTBDQjRFICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UsIAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFMC1DRi0yRCAgIChoZXgpCQlHZW1pbnRlayBDb3Jwb3JhdGlvbgorRTBDRjJEICAgICAoYmFzZSAxNikJCUdlbWludGVrIENvcnBvcmF0aW9uCisJCQkJNUYtMSwgTm8uOCwgQWxsZXkgMzAsIExhbmUgMzU4LCBSdWVpZ3VhbmcgUmQuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0UwLUQxLTBBICAgKGhleCkJCUthdG91ZGVua2lrb3VneW91c3lvIGNvIGx0ZAorRTBEMTBBICAgICAoYmFzZSAxNikJCUthdG91ZGVua2lrb3VneW91c3lvIGNvIGx0ZAorCQkJCW91amlob250eW91MS00LTEzCisJCQkJa2l0YS1rdSB0b2t5by10byAxMTQtMDAyMgorCQkJCUpBUEFOCisKK0UwLUQ3LUJBICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCitFMEQ3QkEgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlNUyA4NzIzCisJCQkJRGFsbGFzIFRleGFzIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCitFMC1FNy01MSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KK0UwRTc1MSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCitFMC1FOC1FOCAgIChoZXgpCQlPbGl2ZSBUZWxlY29tbXVuaWNhdGlvbiBQdnQuIEx0ZAorRTBFOEU4ICAgICAoYmFzZSAxNikJCU9saXZlIFRlbGVjb21tdW5pY2F0aW9uIFB2dC4gTHRkCisJCQkJODYyLCBVZHlvZyBWaWhhcgorCQkJCVBoYXNlIC0gVgorCQkJCUd1cmdhb24gSGFyeWFuYSAxMjIwMTYKKwkJCQlJTkRJQQorCitFMC1FRS0xQiAgIChoZXgpCQlQYW5hc29uaWMgQXV0b21vdGl2ZSBTeXN0ZW1zIENvbXBhbnkgb2YgQW1lcmljYQorRTBFRTFCICAgICAoYmFzZSAxNikJCVBhbmFzb25pYyBBdXRvbW90aXZlIFN5c3RlbXMgQ29tcGFueSBvZiBBbWVyaWNhCisJCQkJNzc2IEhpZ2h3YXkgNzQgU291dGgKKwkJCQlQZWFjaHRyZWUgQ2l0eSBHZW9yZ2lhIDMwMjY5CisJCQkJVU5JVEVEIFNUQVRFUworCitFMC1GMi0xMSAgIChoZXgpCQlEaWdpdGFsd2F0dAorRTBGMjExICAgICAoYmFzZSAxNikJCURpZ2l0YWx3YXR0CisJCQkJVmlhIERhbnRlLCAxOAorCQkJCVJlbmF0ZSBCcmlhbnphIE1CIDIwMDU1CisJCQkJSVRBTFkKKworRTAtRjMtNzkgICAoaGV4KQkJVmFkZGlvCitFMEYzNzkgICAgIChiYXNlIDE2KQkJVmFkZGlvCisJCQkJOTQzMyBTY2llbmNlIENlbnRlciBEcml2ZQorCQkJCU5ldyBIb3BlIE1OIDU1NDI4CisJCQkJVU5JVEVEIFNUQVRFUworCitFMC1GOC00NyAgIChoZXgpCQlBcHBsZSBJbmMKK0UwRjg0NyAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0U0LTEyLTg5ICAgKGhleCkJCXRvcHN5c3RlbSBTeXN0ZW1oYXVzIEdtYkgKK0U0MTI4OSAgICAgKGJhc2UgMTYpCQl0b3BzeXN0ZW0gU3lzdGVtaGF1cyBHbWJICisJCQkJTW9ubmV0c3RyYWk/b2VlIDI0CisJCQkJV2k/b2Vyc2VsZW4gTlJXIDUyMTQ2CisJCQkJR0VSTUFOWQorCitFNC0xQy00QiAgIChoZXgpCQlWMiBURUNITk9MT0dZLCBJTkMuCitFNDFDNEIgICAgIChiYXNlIDE2KQkJVjIgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTQ0NTAgRW50ZXJwcmlzZSBTdHJlZXQKKwkJCQlTdWl0ZSAxMDEKKwkJCQlGcmVtb250IENhbGlmb3JuaWEgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKK0U0LTFGLTEzICAgKGhleCkJCUlCTSBDb3JwCitFNDFGMTMgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSZAorCQkJCVAuTy4gQk9YIDEyMTk1CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0yMTk1CisJCQkJVU5JVEVEIFNUQVRFUworCitFNC0yNy03MSAgIChoZXgpCQlTbWFydGxhYnMKK0U0Mjc3MSAgICAgKGJhc2UgMTYpCQlTbWFydGxhYnMKKwkJCQk3MiwgT2t0eWFicnNrYXlhIFN0cmVldAorCQkJCU1vc2NvdyAgMTI3NTIxCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKK0U0LTJBLUQzICAgKGhleCkJCU1hZ25ldGkgTWFyZWxsaSBTLnAuQS4gUG93ZXJ0cmFpbgorRTQyQUQzICAgICAoYmFzZSAxNikJCU1hZ25ldGkgTWFyZWxsaSBTLnAuQS4gUG93ZXJ0cmFpbgorCQkJCVZpYSBkZWwgVGltYXZvIDMzCisJCQkJQm9sb2duYSAgNDAxMjgKKwkJCQlJVEFMWQorCitFNC0yRi1GNiAgIChoZXgpCQlVbmljb3JlIGNvbW11bmljYXRpb24gSW5jLgorRTQyRkY2ICAgICAoYmFzZSAxNikJCVVuaWNvcmUgY29tbXVuaWNhdGlvbiBJbmMuCisJCQkJUm0uMzEyIEJ1aWxkaW5nIDIgSVJJQ08sIE5vLjExU3QuNCxTaGFuZ2RpLCBIYWlkaWFuIERpc3RyaWN0LAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKK0U0LTM1LTkzICAgKGhleCkJCUhhbmd6aG91IEdvVG8gdGVjaG5vbG9neSBDby5MdGQKK0U0MzU5MyAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBHb1RvIHRlY2hub2xvZ3kgQ28uTHRkCisJCQkJUm9vbTEzMDMsQm9lZSBidWlsZGluZywzNzYwIE5hbmh1YW4gUm9hZCwgQmluamlhbmcsIAorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDA1MworCQkJCUNISU5BCisKK0U0LTM3LUQ3ICAgKGhleCkJCUhFTlJJIERFUEFFUEUgUy5BLlMuCitFNDM3RDcgICAgIChiYXNlIDE2KQkJSEVOUkkgREVQQUVQRSBTLkEuUy4KKwkJCQk3NS83NyBSVUUgRFUgUFJFIEJST0NIRVQKKwkJCQlTQU5OT0lTICA5NTExMgorCQkJCUZSQU5DRQorCitFNC00MS1FNiAgIChoZXgpCQlPdHRlYyBUZWNobm9sb2d5IEdtYkgKK0U0NDFFNiAgICAgKGJhc2UgMTYpCQlPdHRlYyBUZWNobm9sb2d5IEdtYkgKKwkJCQlQbGFuZXRlbnJpbmcgMTIKKwkJCQlSb25uZW5iZXJnIExvd2VyIFNheG9ueSAzMDk1MgorCQkJCUdFUk1BTlkKKworRTQtNDYtQkQgICAoaGV4KQkJQyZDIFRFQ0hOSUMgVEFJV0FOIENPLiwgTFRELgorRTQ0NkJEICAgICAoYmFzZSAxNikJCUMmQyBURUNITklDIFRBSVdBTiBDTy4sIExURC4KKwkJCQlST09NNiAxM0YsIE5PLjIsSmlhbiA4dGggUk9BRAorCQkJCVRhaXBlaSBDaHVuZ2hvIENpdHksICAyMzUxMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRTQtNDgtQzcgICAoaGV4KQkJQ2lzY28gU1BWVEcKK0U0NDhDNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlMYXdyZW5jZXZpbGxlIEdlb3JnaWEgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKK0U0LTRGLTI5ICAgKGhleCkJCU1BIExpZ2h0aW5nIFRlY2hub2xvZ3kgR21iSAorRTQ0RjI5ICAgICAoYmFzZSAxNikJCU1BIExpZ2h0aW5nIFRlY2hub2xvZ3kgR21iSAorCQkJCURhY2hkZWNrZXJzdHIuMTYKKwkJCQlXYWxkYmk/b2V0dGVsYnJ1bm4gQmF2YXJpYSA5NzI5NworCQkJCUdFUk1BTlkKKworRTQtNjQtNDkgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KK0U0NjQ0OSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKK0U0LTZDLTIxICAgKGhleCkJCW1lc3NNYSBHbWJICitFNDZDMjEgICAgIChiYXNlIDE2KQkJbWVzc01hIEdtYkgKKwkJCQlBbSBTdGFkdGZlbGQgOAorCQkJCUl4bGViZW4gU2FjaHNlbi1BbmhhbHQgMzkxNjcKKwkJCQlHRVJNQU5ZCisKK0U0LTc1LTFFICAgKGhleCkJCUdldGluZ2UgU3RlcmlsaXphdGlvbiBBQgorRTQ3NTFFICAgICAoYmFzZSAxNikJCUdldGluZ2UgU3RlcmlsaXphdGlvbiBBQgorCQkJCUJveCA2OQorCQkJCUdldGluZ2UgIDMxMDQ0CisJCQkJU1dFREVOCisKK0U0LTdDLUY5ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMVEQKK0U0N0NGOSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIFllb25ndG9uZy1ndQorCQkJCVN1d29uLUNpdHksIAorCQkJCVN1d29uIEd5ZW9uZ2dpLWRvIDQ0Mzc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFNC04My05OSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorRTQ4Mzk5ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworRTQtOEEtRDUgICAoaGV4KQkJUkYgV0lORE9XIENPLiwgTFRELgorRTQ4QUQ1ICAgICAoYmFzZSAxNikJCVJGIFdJTkRPVyBDTy4sIExURC4KKwkJCQkxNEYsIERhZXJ1bmcgUG9zdHRvd2VyMworCQkJCTE4Mi00LCBHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTc0NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFNC05Ny1GMCAgIChoZXgpCQlTaGFuZ2hhaSBWTEMgVGVjaG5vbG9naWVzIEx0ZC4gQ28uCitFNDk3RjAgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgVkxDIFRlY2hub2xvZ2llcyBMdGQuIENvLgorCQkJCVJvb20gOTAxLCBCLVpvbmUsIEVhc3QgQmVpamluZyBSb2FkCisJCQkJSHVhbmdwdSBEaXN0LgorCQkJCVNoYW5naGFpICAyMDAwMDEKKwkJCQlDSElOQQorCitFNC1BNS1FRiAgIChoZXgpCQlUUk9OIExJTksgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCitFNEE1RUYgICAgIChiYXNlIDE2KQkJVFJPTiBMSU5LIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCUZMQVQgQSwgMjAvRi4sIEJMT0NLIDQsT04gTklORyBHQVJERU4sCisJCQkJMTAgU0hFVU5HIE5JTkcgUk9BRCxUU0VVTkcgS1dBTiBPLAorCQkJCUtPV0xPT04gIDk5OTA3NworCQkJCUhPTkcgS09ORworCitFNC1BQi00NiAgIChoZXgpCQlVQUIgU2VsdGVrYQorRTRBQjQ2ICAgICAoYmFzZSAxNikJCVVBQiBTZWx0ZWthCisJCQkJRHJhdWd5c3RpP29lcyBnLiAxOQorCQkJCUthdW5hcyAgTFQtNTEyMzAgCisJCQkJTElUSFVBTklBCisKK0U0LUFELTdEICAgKGhleCkJCVNDTCBFbGVtZW50cworRTRBRDdEICAgICAoYmFzZSAxNikJCVNDTCBFbGVtZW50cworCQkJCTU4MDAgU3QtRGVuaXMsICMyMjIKKwkJCQlNb250cmVhbCBRdWViZWMgSDJTM2w1CisJCQkJQ0FOQURBCisKK0U0LUNFLThGICAgKGhleCkJCUFwcGxlIEluYyAKK0U0Q0U4RiAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMgCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworRTQtRDctMUQgICAoaGV4KQkJT3JheWEgVGhlcmFwZXV0aWNzCitFNEQ3MUQgICAgIChiYXNlIDE2KQkJT3JheWEgVGhlcmFwZXV0aWNzCisJCQkJODAwMCBKYXJ2aXMgQXZlbnVlICBTdGUuIDIwMAorCQkJCU5ld2FyayBDQSA5NDU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworRTQtREQtNzkgICAoaGV4KQkJRW4tVmlzaW9uIEFtZXJpY2EsIEluYy4KK0U0REQ3OSAgICAgKGJhc2UgMTYpCQlFbi1WaXNpb24gQW1lcmljYSwgSW5jLgorCQkJCTE4NDUgSG92ZXkgQXZlCisJCQkJTm9ybWFsIElMIDYxNzYxCisJCQkJVU5JVEVEIFNUQVRFUworCitFNC1FMC1DNSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECitFNEUwQzUgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIExURAorCQkJCTQxNiwgTWFldGFuLTNkb25nLCBZZW9uZ3RvbmctZ3UKKwkJCQlTdXdvbiBHeWVvbmdnaS1kbyA0NDM3NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRTQtRUMtMTAgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0U0RUMxMCAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1IE91IDkwNTkwCisJCQkJRklOTEFORAorCitFNC1GRi1ERCAgIChoZXgpCQlFTEVDVFJPTiBJTkRJQQorRTRGRkREICAgICAoYmFzZSAxNikJCUVMRUNUUk9OIElORElBCisJCQkJVFlQRSBJSSwgTk8uOSwgRFIuIFYuUy5JLiBFU1RBVEUKKwkJCQlUSElSVVZBTk1JWVVSCisJCQkJQ0hFTk5BSSBUQU1JTCBOQURVIDYwMCAwNDEKKwkJCQlJTkRJQQorCitFOC0wNC0wQiAgIChoZXgpCQlBcHBsZSBJbmMKK0U4MDQwQiAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LTA0LTYyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0U4MDQ2MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LTA1LTZEICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworRTgwNTZEICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCUNBUlJFVEVSQSBCQVNFIEFFUkVBICMgNTg1MAorCQkJCVphcG9wYW4gSmFsaXNjbyA0NDEzMAorCQkJCU1FWElDTworCitFOC0wNi04OCAgIChoZXgpCQlBcHBsZSBJbmMuIAorRTgwNjg4ICAgICAoYmFzZSAxNikJCUFwcGxlIEluYy4gCisJCQkJT25lIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LTBCLTEzICAgKGhleCkJCUFraWIgU3lzdGVtcyBUYWl3YW4sIElOQworRTgwQjEzICAgICAoYmFzZSAxNikJCUFraWIgU3lzdGVtcyBUYWl3YW4sIElOQworCQkJCU5vLjU4Mi0xLCBSdWlHdWFuZyBSZAorCQkJCU5laUh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0U4LTBDLTM4ICAgKGhleCkJCURBRVlPVU5HIElORk9STUFUSU9OIFNZU1RFTSBDTy4sIExURAorRTgwQzM4ICAgICAoYmFzZSAxNikJCURBRVlPVU5HIElORk9STUFUSU9OIFNZU1RFTSBDTy4sIExURAorCQkJCSM4MjYgVEFNTklQLURPTkcsIFlVU0VPTkctR08sIAorCQkJCURBRUpPTiAgMzA1LTUxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFOC0xMS0zMiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMVEQKK0U4MTEzMiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMVEQKKwkJCQk0MTYsIE1hZXRhbmctM0RvbmcsIFllb25nb24tR3UKKwkJCQlTdXdvbiBHeWVvbmdnaS1EbyA0NDMtNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0U4LTI4LTc3ICAgKGhleCkJCVRNWSBDby4sIEx0ZC4KK0U4Mjg3NyAgICAgKGJhc2UgMTYpCQlUTVkgQ28uLCBMdGQuCisJCQkJQXR0aWMgQmxkZy4gM0YsIDEtMi0xMCBJc2UtY2hvLAorCQkJCUFzaGlrYWdhLXNoaSBUb2NoaWdpIDMyNi0wMDUzCisJCQkJSkFQQU4KKworRTgtMjgtRDUgICAoaGV4KQkJQ290cyBUZWNobm9sb2d5CitFODI4RDUgICAgIChiYXNlIDE2KQkJQ290cyBUZWNobm9sb2d5CisJCQkJQy03MDIsIEJ1bmRhbmcgVGVjaG5vIFBhcmssIDE0NSwKKwkJCQlZYXRhb3AtZG9uZywgQnVuZGFuZy1ndSwKKwkJCQlTdW5nbmFtLUNpdHkgS3lvdW5nZ2ktZG8gNDYzLTc2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFOC0zOS1ERiAgIChoZXgpCQlBc2tleSBDb21wdXRlcgorRTgzOURGICAgICAoYmFzZSAxNikJCUFza2V5IENvbXB1dGVyCisJCQkJMTBGLE5PLjExOSxDSElFTktBTkcgUkQsQ0hVTkctSE8sCisJCQkJVEFJUEVJIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRTgtM0EtOTcgICAoaGV4KQkJT0NaIFRlY2hub2xvZ3kgR3JvdXAKK0U4M0E5NyAgICAgKGJhc2UgMTYpCQlPQ1ogVGVjaG5vbG9neSBHcm91cAorCQkJCTYzNzMgU2FuIElnbmFjaW8gQXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LTNFLUI2ICAgKGhleCkJCVJJTQorRTgzRUI2ICAgICAoYmFzZSAxNikJCVJJTQorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCitFOC00MC00MCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitFODQwNDAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFOC00RS0wNiAgIChoZXgpCQlQUklWQVRFCitFODRFMDYgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKK0U4LTRFLUNFICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorRTg0RUNFICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKK0U4LTVCLTVCICAgKGhleCkJCUxHIEVMRUNUUk9OSUNTIElOQworRTg1QjVCICAgICAoYmFzZSAxNikJCUxHIEVMRUNUUk9OSUNTIElOQworCQkJCTE5LTEsIENIRU9OR0hPLVJJLCBKSU5XSS1NWUVPTgorCQkJCVBZRU9OR1RBRUsgR1lFT05HR0ktRE8gNDUxLTcxMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFOC01RS01MyAgIChoZXgpCQlJbmZyYXRlYyBEYXRlbnRlY2huaWsgR21iSAorRTg1RTUzICAgICAoYmFzZSAxNikJCUluZnJhdGVjIERhdGVudGVjaG5payBHbWJICisJCQkJR2V2ZW5lciBXZWcgMzgKKwkJCQlOZXVlbnJhZGUgTlJXIDU4NTc5CisJCQkJR0VSTUFOWQorCitFOC02Qy1EQSAgIChoZXgpCQlTdXBlcmNvbXB1dGVycyBhbmQgTmV1cm9jb21wdXRlcnMgUmVzZWFyY2ggQ2VudGVyCitFODZDREEgICAgIChiYXNlIDE2KQkJU3VwZXJjb21wdXRlcnMgYW5kIE5ldXJvY29tcHV0ZXJzIFJlc2VhcmNoIENlbnRlcgorCQkJCTIsIENoZWtob3Ygc3QKKwkJCQlUYWdhbnJvZyAgUm9zdG92LW9uLURvbiByZWdpb24gIDM0NzkyMiAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworRTgtNzUtN0YgICAoaGV4KQkJRklSUyBUZWNobm9sb2dpZXMoU2hlbnpoZW4pIENvLiwgTHRkCitFODc1N0YgICAgIChiYXNlIDE2KQkJRklSUyBUZWNobm9sb2dpZXMoU2hlbnpoZW4pIENvLiwgTHRkCisJCQkJUm0gMTJBLCBBcmVhIEEsIEhvbmdzb25nIEJ1c2luZXNzIEJ1aWxkaW5nLCBUYWlyYW4gOXRoIFJkLCBDaGVnb25nbWlhbywgCisJCQkJRnV0aWFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA0MAorCQkJCUNISU5BCisKK0U4LTdBLUYzICAgKGhleCkJCVM1IFRlY2ggUy5yLmwuCitFODdBRjMgICAgIChiYXNlIDE2KQkJUzUgVGVjaCBTLnIubC4KKwkJCQlWaWEgVG9ydG9uYSA3MgorCQkJCU1pbGFubyAgMjAxNDQKKwkJCQlJVEFMWQorCitFOC05NC00QyAgIChoZXgpCQlDb2dlbnQgSGVhbHRoY2FyZSBTeXN0ZW1zIEx0ZAorRTg5NDRDICAgICAoYmFzZSAxNikJCUNvZ2VudCBIZWFsdGhjYXJlIFN5c3RlbXMgTHRkCisJCQkJMTQzZSBBcnRodXIgUm9hZAorCQkJCVdpbmRzb3IKKwkJCQlCZXJrc2hpcmUgIFNMNCAxU0UKKwkJCQlVTklURUQgS0lOR0RPTQorCitFOC05OS01QSAgIChoZXgpCQlQaWlHQUIsIFByb2Nlc3NpbmZvcm1hdGlvbiBpIEdvdGVib3JnIEFCCitFODk5NUEgICAgIChiYXNlIDE2KQkJUGlpR0FCLCBQcm9jZXNzaW5mb3JtYXRpb24gaSBHb3RlYm9yZyBBQgorCQkJCUFuZGVycyBDYXJsc3NvbnMgZ2F0YSAxCisJCQkJR290aGVuYnVyZyAgNDE3IDU1CisJCQkJU1dFREVOCisKK0U4LTlBLThGICAgKGhleCkJCVF1YW50YSBDb21wdXRlciBJbmMuCitFODlBOEYgICAgIChiYXNlIDE2KQkJUXVhbnRhIENvbXB1dGVyIEluYy4KKwkJCQkyMTEsIFdlbiBId2EgMm5kIFJkLixLdWVpIFNoYW4sIFRhbyBZdWFuIAorCQkJCVRBSVBFSSAgMzMzNzcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0U4LTlELTg3ICAgKGhleCkJCVRvc2hpYmEKK0U4OUQ4NyAgICAgKGJhc2UgMTYpCQlUb3NoaWJhCisJCQkJMi05LFN1ZWhpcm8tQ2hvCisJCQkJT21lIFRva3lvIDE5ODg3MTAKKwkJCQlKQVBBTgorCitFOC1BNC1DMSAgIChoZXgpCQlEZWVwIFNlYSBFbGVjdHJvbmljcyBQTEMKK0U4QTRDMSAgICAgKGJhc2UgMTYpCQlEZWVwIFNlYSBFbGVjdHJvbmljcyBQTEMKKwkJCQlIaWdoZmllbGQgSG91c2UKKwkJCQlIdW5tYW5ieSBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCUh1bm1hbmJ5IE5vcnRoIFlvcmtzaGlyZSBZTzE0IDBQSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0U4LUI0LUFFICAgKGhleCkJCVNoZW56aGVuIEMmRCBFbGVjdHJvbmljcyBDby4sTHRkCitFOEI0QUUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQyZEIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQlCdWlsZGluZyAyLCBYaWEgWW91IFNvbmcgTW91bnRhaW4gVG9wIEluZHVzdHJpYWwgRGlzdHJpY3QsIFlvdSBTb25nIFZpbGxhZ2UKKwkJCQlMb25naHVhLCBCYW8gQW4KKwkJCQlTaGVuemhlbiBHdWFuZyBEb25nIDUxODAwMAorCQkJCUNISU5BCisKK0U4LUI3LTQ4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0U4Qjc0OCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LUJBLTcwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0U4QkE3MCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFOC1CRS04MSAgIChoZXgpCQlTQUdFTUNPTQorRThCRTgxICAgICAoYmFzZSAxNikJCVNBR0VNQ09NCisJCQkJMjUwIHJvdXRlIGRlIGwnRW1wZXJldXIKKwkJCQlSVUVJTCBNQUxNQUlTT04gSWxlIGRlIEZyYW5jZSA5Mjg0OAorCQkJCUZSQU5DRQorCitFOC1DMi0yOSAgIChoZXgpCQlILURpc3BsYXlzIChNU0MpIEJoZAorRThDMjI5ICAgICAoYmFzZSAxNikJCUgtRGlzcGxheXMgKE1TQykgQmhkCisJCQkJTm8uIDMxICYgMzIsIEphbGFuIEdhbmdzYSBEdWEKKwkJCQlQYXNpciBHdWRhbmcKKwkJCQlKb2hvciBCYWhydSAgODE3MDAKKwkJCQlNQUxBWVNJQQorCitFOC1DMy0yMCAgIChoZXgpCQlBdXN0Y28gQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIFB0eSBMdGQKK0U4QzMyMCAgICAgKGJhc2UgMTYpCQlBdXN0Y28gQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIFB0eSBMdGQKKwkJCQk0MCBPJ01hbGxleSBTdHJlZXQKKwkJCQlPc2Jvcm5lIFBhcmsgV2VzdGVybiBBdXN0cmFsaWEgNjAxNworCQkJCUFVU1RSQUxJQQorCitFOC1DQy0zMiAgIChoZXgpCQlNaWNyb25ldCAgTFRECitFOENDMzIgICAgIChiYXNlIDE2KQkJTWljcm9uZXQgIExURAorCQkJCUhhbWV0enVkYSAyNworCQkJCUF6b3IgIDU4MDAxCisJCQkJSVNSQUVMCisKK0U4LURBLUFBICAgKGhleCkJCVZpZGVvSG9tZSBUZWNobm9sb2d5IENvcnAuCitFOERBQUEgICAgIChiYXNlIDE2KQkJVmlkZW9Ib21lIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQk0Ri0xLCBOby4gMTkyLCBEYSBUdW5nIFJkLiwgU2VjLiAzLCBIc2ljaGloLAorCQkJCVRhaXBlaSBIc2llbiAgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFOC1ERi1GMiAgIChoZXgpCQlQUkYgQ28uLCBMdGQuCitFOERGRjIgICAgIChiYXNlIDE2KQkJUFJGIENvLiwgTHRkLgorCQkJCSM1MTAsIExlYWRlcnMgQi9ELCBZYXRvcC1kb25nCisJCQkJQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLWNpdHkgR3llb25nZ2ktZG8gNDYzLTgyOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFOC1FMC04RiAgIChoZXgpCQlHUkFWT1RFQ0ggTUFSS0lORyBTQVMKK0U4RTA4RiAgICAgKGJhc2UgMTYpCQlHUkFWT1RFQ0ggTUFSS0lORyBTQVMKKwkJCQk1NiBBVkVOVUUgSkVBTiBKQVVSRVMKKwkJCQlMQSBDSEFQRUxMRSBTQUlOVCBMVUMgQVVCRSAxMDYwMAorCQkJCUZSQU5DRQorCitFOC1FMC1CNyAgIChoZXgpCQlUb3NoaWJhCitFOEUwQjcgICAgIChiYXNlIDE2KQkJVG9zaGliYQorCQkJCTItOSxTdWVoaXJvLUNobworCQkJCU9tZSBUb2t5byAxOTg4NzEwCisJCQkJSkFQQU4KKworRTgtRTEtRTIgICAoaGV4KQkJRW5lcmdvdGVzdAorRThFMUUyICAgICAoYmFzZSAxNikJCUVuZXJnb3Rlc3QKKwkJCQlDaG9yem93c2thIDQ0QgorCQkJCUdsaXdpY2UgU2xhc2sgNDQtMTAwCisJCQkJUE9MQU5ECisKK0U4LUU1LUQ2ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZCAKK0U4RTVENiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQgCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0U4LUU3LTMyICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50CitFOEU3MzIgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQKKwkJCQkyNjgwMSBXZXN0IEFnb3VyYSBSb2FkCisJCQkJQ2FsYWJhc2FzIENBIDkxMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCitFOC1FNy03NiAgIChoZXgpCQlTaGVuemhlbiBLb290aW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQKK0U4RTc3NiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBLb290aW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQkzL0YsIEJ1aWxkaW5nICM0LCBYaW5KaWFuWGluZyBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTb25nYmFpIFJvYWQsIE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIFByb3ZpbmNlIDUxODEwOAorCQkJCUNISU5BCisKK0U4LUY5LTI4ICAgKGhleCkJCVJGVEVDSCBTUkwKK0U4RjkyOCAgICAgKGJhc2UgMTYpCQlSRlRFQ0ggU1JMCisJCQkJVklBIFZFTkVUTywgMjIKKwkJCQlTQ0hJTyBWSUNFTlpBIDM2MDE1CisJCQkJSVRBTFkKKworRUMtMTQtRjYgICAoaGV4KQkJQmlvQ29udHJvbCBBUworRUMxNEY2ICAgICAoYmFzZSAxNikJCUJpb0NvbnRyb2wgQVMKKwkJCQlHcmltc3RhZCBHYXJkIAorCQkJCVJha2tlc3RhZCAgIE4tMTg5MAorCQkJCU5PUldBWQorCitFQy0yMy02OCAgIChoZXgpCQlJbnRlbGxpVm9pY2UgQ28uLEx0ZC4KK0VDMjM2OCAgICAgKGJhc2UgMTYpCQlJbnRlbGxpVm9pY2UgQ28uLEx0ZC4KKwkJCQkzLTYgS2lvaWNobworCQkJCUtpb2ljaG8gUGFyayBCbGQuIDFGCisJCQkJQ2hpeW9kYSBUb2t5byAxMDItMDA5NAorCQkJCUpBUEFOCisKK0VDLTMwLTkxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0VDMzA5MSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFQy0zQi1GMCAgIChoZXgpCQlOb3ZlbFNhdAorRUMzQkYwICAgICAoYmFzZSAxNikJCU5vdmVsU2F0CisJCQkJSGF0YWFzaWEgMjEKKwkJCQlSYWFuYW5hICAyMzk2CisJCQkJSVNSQUVMCisKK0VDLTQzLUU2ICAgKGhleCkJCUFXQ0VSIEx0ZC4KK0VDNDNFNiAgICAgKGJhc2UgMTYpCQlBV0NFUiBMdGQuCisJCQkJMTAwLTQxMyBCdWNoZW9uIFRlY2hub3BhcmsKKwkJCQkzNjQgU2FuSmVvbmctZG9uZywgT2plb25nLWd1CisJCQkJQnVjaGVvbi1jaXR5IEd5ZW9uZ2dpLWRvIDQyMS03NDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRUMtNDQtNzYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworRUM0NDc2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRUMtNDYtNDQgICAoaGV4KQkJVFRLIFNBUworRUM0NjQ0ICAgICAoYmFzZSAxNikJCVRUSyBTQVMKKwkJCQk0LCBSdWUgZHUgQ2hlbWluIFZlcnQKKwkJCQlDbGljaHkgIDkyMTEwCisJCQkJRlJBTkNFCisKK0VDLTU0LTJFICAgKGhleCkJCVNoYW5naGFpIFhpTWVpIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4gTHRkCitFQzU0MkUgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgWGlNZWkgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLiBMdGQKKwkJCQlSb29tIDUwMywgTm8uMjYyMywgR29uZ0hlWGluIFJvYWQKKwkJCQlTaGFuZ2hhaSAgMjAwMDcyCisJCQkJQ0hJTkEKKworRUMtNTUtRjkgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorRUM1NUY5ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKK0VDLTVDLTY5ICAgKGhleCkJCU1JVFNVQklTSEkgSEVBVlkgSU5EVVNUUklFUyBNRUNIQVRST05JQ1MgU1lTVEVNUyxMVEQuCitFQzVDNjkgICAgIChiYXNlIDE2KQkJTUlUU1VCSVNISSBIRUFWWSBJTkRVU1RSSUVTIE1FQ0hBVFJPTklDUyBTWVNURU1TLExURC4KKwkJCQkxLTE2LDUtQ0hPTUUsS09NQVRTVS1ET1JJLAorCQkJCUtPQkUgSFlPR08gNjUyLTA4NjUKKwkJCQlKQVBBTgorCitFQy02Ni1EMSAgIChoZXgpCQlCJmFtcDtXIEdyb3VwIExURAorRUM2NkQxICAgICAoYmFzZSAxNikJCUImYW1wO1cgR3JvdXAgTFRECisJCQkJRGFsZSBSb2FkCisJCQkJV29ydGhpbmcgU3Vzc2V4IEJOMTEgMkJICisJCQkJVU5JVEVEIEtJTkdET00KKworRUMtNkMtOUYgICAoaGV4KQkJQ2hlbmdkdSBWb2xhbnMgVGVjaG5vbG9neSBDTy4sTFRECitFQzZDOUYgICAgIChiYXNlIDE2KQkJQ2hlbmdkdSBWb2xhbnMgVGVjaG5vbG9neSBDTy4sTFRECisJCQkJMm5kIEZsb29yIEJ1aWxkaW5nIDRCIEhpLVRlY2ggSW5jdWJhdGlvbiBQYXJrLE5hbnlhbiBYaWFuLFRpYW5mdSBBdmUKKwkJCQlDaGVuZ2R1IFNpY2h1YW4gNjEwMDQxCisJCQkJQ0hJTkEKKworRUMtN0MtNzQgICAoaGV4KQkJSnVzdG9uZSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCitFQzdDNzQgICAgIChiYXNlIDE2KQkJSnVzdG9uZSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJVG9uZ2d1YW5nIEJ1aWxkaW5nIEYxOSwgMTIjIFNvdXRoIEFncmljdWx0dXJlIEV4aGliaXRpb24gQ2VudGVyIFJvYWQsIAorCQkJCUNoYW95YW5nIERpc3RyaWN0IAorCQkJCUJlaWppbmcgIDEwMDEyNQorCQkJCUNISU5BCisKK0VDLTdELTlEICAgKGhleCkJCU1FSQorRUM3RDlEICAgICAoYmFzZSAxNikJCU1FSQorCQkJCTEzMDEgV2lsc29uIERyaXZlCisJCQkJV2VzdCBDaGVzdGVyIFBBIDE5MzgwCisJCQkJVU5JVEVEIFNUQVRFUworCitFQy04My02QyAgIChoZXgpCQlSTSBUZWNoIENvLiwgTHRkLgorRUM4MzZDICAgICAoYmFzZSAxNikJCVJNIFRlY2ggQ28uLCBMdGQuCisJCQkJQy04MDEsIEJ1cHllb25nIFdvb2xpbSBMaW9ucyBWYWxsZXkKKwkJCQlDaGVvbmdjaGVvbiAyLWRvbmcsIEJ1cHllb25nLWd1CisJCQkJSW5jaGVvbiBDaXR5ICA0MDMtOTExCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0VDLThFLUFEICAgKGhleCkJCURMWAorRUM4RUFEICAgICAoYmFzZSAxNikJCURMWAorCQkJCSM0MDEsIFNlb2lsIEIvRCwxMzU5LTQ1IFNlb2NobzItZG9uZworCQkJCVNlb2Noby1rdSwgCisJCQkJU2VvdWwgIDEzNy04NjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRUMtOTItMzMgICAoaGV4KQkJRWRkeWZpIE5EVCBJbmMKK0VDOTIzMyAgICAgKGJhc2UgMTYpCQlFZGR5ZmkgTkRUIEluYworCQkJCTM2MCwgRnJhbnF1ZXQgc3RyZWV0CisJCQkJU3VpdGUgNDAKKwkJCQlRdWViZWMgIEcxUCA0TjMKKwkJCQlDQU5BREEKKworRUMtOTYtODEgICAoaGV4KQkJMjI3NjQyNyBPbnRhcmlvIEluYworRUM5NjgxICAgICAoYmFzZSAxNikJCTIyNzY0MjcgT250YXJpbyBJbmMKKwkJCQkzMS0xMjc1IE1vcm5pbmdzaWRlIEF2ZQorCQkJCVRvcm9udG8gT04gTTFCM1cxCisJCQkJQ0FOQURBCisKK0VDLTk4LTZDICAgKGhleCkJCUx1ZmZ0IE1lc3MtIHVuZCBSZWdlbHRlY2huaWsgR21iSAorRUM5ODZDICAgICAoYmFzZSAxNikJCUx1ZmZ0IE1lc3MtIHVuZCBSZWdlbHRlY2huaWsgR21iSAorCQkJCUd1dGVuYmVyZ3N0ci4gMjAKKwkJCQlGZWxsYmFjaCBCYWRlbi1XdWVydHRlbWJlcmcgNzA3MzYKKwkJCQlHRVJNQU5ZCisKK0VDLTk4LUMxICAgKGhleCkJCUJlaWppbmcgUmlzYm8gTmV0d29yayBUZWNobm9sb2d5IENvLixMdGQKK0VDOThDMSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFJpc2JvIE5ldHdvcmsgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJMS9GIFlpbnlhbiBCdWlsZGluZyAyQSxOby4yMyBBbm5pbmd6aHVhbmdkb25nbHUgSGFpZGlhbiBEaXN0cmljdCAKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCitFQy05Qi01QiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorRUM5QjVCICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCUtlbXBlbGUgIDkwNTcwCisJCQkJRklOTEFORAorCitFQy05RS1DRCAgIChoZXgpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIgYW5kIEVtYmVkZGVkIENvbXB1dGluZworRUM5RUNEICAgICAoYmFzZSAxNikJCUVtZXJzb24gTmV0d29yayBQb3dlciBhbmQgRW1iZWRkZWQgQ29tcHV0aW5nCisJCQkJMjkwMCBTLCBEaWFibG8gV2F5IFN1aXRlIDE5MAorCQkJCVRlbXBlIEFyaXpvbmEgODUyODIKKwkJCQlVTklURUQgU1RBVEVTCisKK0VDLUIxLTA2ICAgKGhleCkJCUFjdXJvIE5ldHdvcmtzLCBJbmMKK0VDQjEwNiAgICAgKGJhc2UgMTYpCQlBY3VybyBOZXR3b3JrcywgSW5jCisJCQkJNDI4MDggQ2hyaXN0eSBTdC4sIFN1aXRlIDEwMAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKK0VDLUJCLUFFICAgKGhleCkJCURpZ2l2b2ljZSBUZWNub2xvZ2lhIGVtIEVsZXRyb25pY2EgTHRkYQorRUNCQkFFICAgICAoYmFzZSAxNikJCURpZ2l2b2ljZSBUZWNub2xvZ2lhIGVtIEVsZXRyb25pY2EgTHRkYQorCQkJCUFsYW1lZGEgSnVydSwgMTU5IC0gVG9ycmVvCisJCQkJQmFydWVyaSBTYW8gUGF1bG8gMDY0NTUtMDEwCisJCQkJQlJBWklMCisKK0VDLUJELTA5ICAgKGhleCkJCUZVU0lPTiBFbGVjdHJvbmljcyBMdGQKK0VDQkQwOSAgICAgKGJhc2UgMTYpCQlGVVNJT04gRWxlY3Ryb25pY3MgTHRkCisJCQkJUE8gQm94IDEzNyAtIDE0MgorCQkJCVBhcm5lbGwKKwkJCQlBdWNrbGFuZCAgMTE1MQorCQkJCU5FVyBaRUFMQU5ECisKK0VDLUMzLThBICAgKGhleCkJCUFjY3VlbmVyZ3kgKENBTkFEQSkgSW5jCitFQ0MzOEEgICAgIChiYXNlIDE2KQkJQWNjdWVuZXJneSAoQ0FOQURBKSBJbmMKKwkJCQkyIExhbnNpbmcgU3F1YXJlLCBTdWl0ZSA1MDMKKwkJCQlUb3JvbnRvIE9udGFyaW8gTTJKIDRQOAorCQkJCUNBTkFEQQorCitFQy1DOC04MiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitFQ0M4ODIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFQy1DRC02RCAgIChoZXgpCQlBbGxpZWQgVGVsZXNpcywgSW5jLgorRUNDRDZEICAgICAoYmFzZSAxNikJCUFsbGllZCBUZWxlc2lzLCBJbmMuCisJCQkJMzIwMCBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFQy1EMC0wRSAgIChoZXgpCQlNaXJhZVJlY29nbml0aW9uIENvLiwgTHRkLgorRUNEMDBFICAgICAoYmFzZSAxNikJCU1pcmFlUmVjb2duaXRpb24gQ28uLCBMdGQuCisJCQkJUHJpbWVCYW5rIEJsZGcuIEFubmV4LTNGLCAjMjc4LTMKKwkJCQlOb25oeXVuLWRvbmcsIEdhbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTgzMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFQy1ERS0zRCAgIChoZXgpCQlMYW1wcmV5IE5ldHdvcmtzLCBJbmMuCitFQ0RFM0QgICAgIChiYXNlIDE2KQkJTGFtcHJleSBOZXR3b3JrcywgSW5jLgorCQkJCTU4IERvdmVyIFJvYWQKKwkJCQlEdXJoYW0gTkggMDM4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKK0VDLUUwLTlCICAgKGhleCkJCVNhbXN1bmcgZWxlY3Ryb25pY3MgQ08uLCBMVEQKK0VDRTA5QiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIGVsZWN0cm9uaWNzIENPLiwgTFRECisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIFllb25ndG9uZy1ndSwKKwkJCQlTdXdvbi1DaXR5IEd5ZW9uZ2dpLWRvIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRUMtRTUtNTUgICAoaGV4KQkJSGlyc2NobWFubiBBdXRvbWF0aW9uCitFQ0U1NTUgICAgIChiYXNlIDE2KQkJSGlyc2NobWFubiBBdXRvbWF0aW9uCisJCQkJU3R1dHRnYXJ0ZXIgU3RyYXNzZSA0NS01MQorCQkJCU5lY2thcnRlbnpsaW5nZW4gQmFkZW4tV2k/b2VydHRlbWJlcmcgNzI2NTQKKwkJCQlHRVJNQU5ZCisKK0VDLUU5LTBCICAgKGhleCkJCVNJU1RFTUEgU09MVUNPRVMgRUxFVFJPTklDQVMgTFREQSAtIEVBU1lURUNICitFQ0U5MEIgICAgIChiYXNlIDE2KQkJU0lTVEVNQSBTT0xVQ09FUyBFTEVUUk9OSUNBUyBMVERBIC0gRUFTWVRFQ0gKKwkJCQlSVUEgR1VFUlJBIERFIEFHVUlBUiwgMjIwCisJCQkJU0FPIFBBVUxPIFNQIDA4Mjc1LTI2MAorCQkJCUJSQVpJTAorCitFQy1FOS1GOCAgIChoZXgpCQlHdWFuZyBaaG91IFRSSS1TVU4gRWxlY3Ryb25pY3MgVGVjaG5vbG9neSAgQ28uLCBMdGQKK0VDRTlGOCAgICAgKGJhc2UgMTYpCQlHdWFuZyBaaG91IFRSSS1TVU4gRWxlY3Ryb25pY3MgVGVjaG5vbG9neSAgQ28uLCBMdGQKKwkJCQk5dGggZmxvb3IgR3Vhbmd6aG91IGluZm8gcG9ydCBidWlsZGluZyBCLCBLZXl1biBSb2FkLCBUaWFuaGUgRGlzdHJpY3QsIEd1YW5nemhvdSAsUFJDCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2NjUKKwkJCQlDSElOQQorCitFQy1GMi0zNiAgIChoZXgpCQlORU9NT05UQU5BIEVMRUNUUk9OSUNTCitFQ0YyMzYgICAgIChiYXNlIDE2KQkJTkVPTU9OVEFOQSBFTEVDVFJPTklDUworCQkJCU1sYWRvc3QtNCwgYmwuIDQ4MywgbWFnLiAxMworCQkJCVNvZmlhICAxNzE1CisJCQkJQlVMR0FSSUEKKworRUMtRkEtQUEgICAoaGV4KQkJVGhlIElNUyBDb21wYW55CitFQ0ZBQUEgICAgIChiYXNlIDE2KQkJVGhlIElNUyBDb21wYW55CisJCQkJMjkyOSBFLiBJbXBlcmlhbCBIaWdod2F5CisJCQkJU3VpdGUgMTcwCisJCQkJQnJlYSBDQSA5MjgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworRUMtRkUtN0UgICAoaGV4KQkJQmx1ZVJhZGlvcywgSW5jLgorRUNGRTdFICAgICAoYmFzZSAxNikJCUJsdWVSYWRpb3MsIEluYy4KKwkJCQk3MTczIFMuIEhhdmFuYSBTdHJlZXQsIFN1aXRlIDYwMAorCQkJCUVuZ2xld29vZCBDb2xvcmFkbyA4MDExMgorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtMDItNDggICAoaGV4KQkJU21hcnRlQnVpbGRpbmcKK0YwMDI0OCAgICAgKGJhc2UgMTYpCQlTbWFydGVCdWlsZGluZworCQkJCTMyNjcgQmVlIENhdmUgUm9hZAorCQkJCTEwNy0xNzMKKwkJCQlBdXN0aW4gVFggNzg3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKK0YwLTI0LTA4ICAgKGhleCkJCVRhbGFyaXMgKFN3ZWRlbikgQUIKK0YwMjQwOCAgICAgKGJhc2UgMTYpCQlUYWxhcmlzIChTd2VkZW4pIEFCCisJCQkJVGFsanMgU29kcmEgSW5kdXN0cmlvbXJhZGUKKwkJCQlGbGVuICA2NDI4NAorCQkJCVNXRURFTgorCitGMC0yNS03MiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitGMDI1NzIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitGMC0yNi00QyAgIChoZXgpCQlEci4gU2lncmlzdCBBRworRjAyNjRDICAgICAoYmFzZSAxNikJCURyLiBTaWdyaXN0IEFHCisJCQkJSG9mdXJsaXN0cmFzc2UgMQorCQkJCUVubmV0Ymk/b2VyZ2VuICA2MzczCisJCQkJU1dJVFpFUkxBTkQKKworRjAtMkEtNjEgICAoaGV4KQkJV2FsZG8gTmV0d29ya3MsIEluYy4KK0YwMkE2MSAgICAgKGJhc2UgMTYpCQlXYWxkbyBOZXR3b3JrcywgSW5jLgorCQkJCTQ1MDUgU3BpY2V3b29kIFNwcmluZ3MgUmQKKwkJCQlTdWl0ZSAzMzMKKwkJCQlBdXN0aW4gVGV4YXMgNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKK0YwLTJGLUQ4ICAgKGhleCkJCUJpMi1WaXNpb24KK0YwMkZEOCAgICAgKGJhc2UgMTYpCQlCaTItVmlzaW9uCisJCQkJMTYtNTA0LCAyMS1iYW4sIFNoaW1vbWFydWtvIDQtY2hvbWUsIE9vdGEta3UKKwkJCQlUb2t5byAgMTQ2LTAwOTIKKwkJCQlKQVBBTgorCitGMC00My0zNSAgIChoZXgpCQlEVk4oU2hhbmdoYWkpTHRkLgorRjA0MzM1ICAgICAoYmFzZSAxNikJCURWTihTaGFuZ2hhaSlMdGQuCisJCQkJMTFGLEhlY2h1YW4gQnVpbGRpbmcsMjAxNiBZaXNoYW4gUmQsCisJCQkJU2hhbmdoYWkgIDIwMTEwMworCQkJCUNISU5BCisKK0YwLTRCLUYyICAgKGhleCkJCUpURUNIIENvbW11bmljYXRpb25zLCBJbmMuCitGMDRCRjIgICAgIChiYXNlIDE2KQkJSlRFQ0ggQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk2NDEzIENvbmdyZXNzIEF2ZS4KKwkJCQlCb2NhIFJhdG9uIEZMIDMzNDg3CisJCQkJVU5JVEVEIFNUQVRFUworCitGMC00RC1BMiAgIChoZXgpCQlEZWxsIEluYy4KK0YwNERBMiAgICAgKGJhc2UgMTYpCQlEZWxsIEluYy4KKwkJCQlPbmUgRGVsbCB3YXksIE1TIFJSNS00NQorCQkJCVJvdW5kIHJvY2sgIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCitGMC01OC00OSAgIChoZXgpCQlDYXJlVmlldyBDb21tdW5pY2F0aW9ucworRjA1ODQ5ICAgICAoYmFzZSAxNikJCUNhcmVWaWV3IENvbW11bmljYXRpb25zCisJCQkJNDA1IFN0YXRlIEhXWSAxMjEgQllQCisJCQkJU3VpdGUgQjI0MAorCQkJCUxld2lzdmlsbGUgIFRleGFzIDc1MDY3CisJCQkJVU5JVEVEIFNUQVRFUworCitGMC01RC04OSAgIChoZXgpCQlQUklWQVRFCitGMDVEODkgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKK0YwLTYyLTgxICAgKGhleCkJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKK0YwNjI4MSAgICAgKGJhc2UgMTYpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCisJCQkJODAwMCBGb290aGlsbHMgQmx2ZC4KKwkJCQlSb3NldmlsbGUgQ2FsaWZvcm5pYSA5NTc0NworCQkJCVVOSVRFRCBTVEFURVMKKworRjAtNjUtREQgICAoaGV4KQkJUHJpbWF4IEVsZWN0cm9uaWNzIEx0ZC4KK0YwNjVERCAgICAgKGJhc2UgMTYpCQlQcmltYXggRWxlY3Ryb25pY3MgTHRkLgorCQkJCTY2OSwgUnVleSBLdWFuZyBSb2FkLCBOZWlodQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitGMC02OC01MyAgIChoZXgpCQlJbnRlZ3JhdGVkIENvcnBvcmF0aW9uCitGMDY4NTMgICAgIChiYXNlIDE2KQkJSW50ZWdyYXRlZCBDb3Jwb3JhdGlvbgorCQkJCTMvRiwgU2h1biBPbiBDb21tZXJjaWFsIEJsZGcuLCAKKwkJCQkxMTItMTE0IERlcyBWb2V1eCBSb2FkLCBDLiwKKwkJCQlDZXRucmFsLCAgCisJCQkJSE9ORyBLT05HCisKK0YwLTc3LUQwICAgKGhleCkJCVhjZWxsZW4KK0YwNzdEMCAgICAgKGJhc2UgMTYpCQlYY2VsbGVuCisJCQkJMTVGIEtJTlMgVG93ZXIgMjUtMSxKZW9uZ2phLWRvbmcsQnVuZ2RhbmctZ3UsCisJCQkJU2VvbmduYW0gR3llb25nZ2kgNDYzODExCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0YwLTdCLUNCICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCitGMDdCQ0IgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgIDIwMTYxMyAKKwkJCQlDSElOQQorCitGMC03RC02OCAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KK0YwN0Q2OCAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOby4yODksIFNpbmh1IDNyZCBSZC4sIE5laWh1IERpc3RyaWN0LCAKKwkJCQlUYWlwZWkgQ2l0eSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitGMC04MS1BRiAgIChoZXgpCQlJUlogQVVUT01BVElPTiBURUNITk9MT0dJRVMgTFRECitGMDgxQUYgICAgIChiYXNlIDE2KQkJSVJaIEFVVE9NQVRJT04gVEVDSE5PTE9HSUVTIExURAorCQkJCVVuaXQgOS0xMCAyNy9GIFNlYXBvd2VyIFRvd2VyCisJCQkJQ29uY29yZGlhIFBsYXphIDEgU2NpZW5jZSBNdXNldW0gUmQsVHNpbVNoYVRzdWkKKwkJCQlLb3dsb29uIAorCQkJCUhPTkcgS09ORworCitGMC04Qi1GRSAgIChoZXgpCQlDT1NURUwuLENPLkxURAorRjA4QkZFICAgICAoYmFzZSAxNikJCUNPU1RFTC4sQ08uTFRECisJCQkJMjIzLTM5LCBTYW5nZGFld29uLURvbmcsIEp1bmd3b24tR3UKKwkJCQlTZW9uZ25hbS1zaSBLeXVuZ2dpLURvIDQ2Mi04MDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjAtOTMtM0EgICAoaGV4KQkJTnh0Q29uZWN0CitGMDkzM0EgICAgIChiYXNlIDE2KQkJTnh0Q29uZWN0CisJCQkJU2NoaWxsZXJzdHJhc3NlIDQKKwkJCQlCYWQgS2lzc2luZ2VuICA5NzY4OAorCQkJCUdFUk1BTlkKKworRjAtOUMtQkIgICAoaGV4KQkJUmFvblRoaW5rIEluYy4KK0YwOUNCQiAgICAgKGJhc2UgMTYpCQlSYW9uVGhpbmsgSW5jLgorCQkJCTkxNiwgQnl1Y2tzYW4gRGlnaXRhbCBWYWxsZXkgMi1DaGEsIDQ4MS0xMCwgS2FzYW4tRG9uZywgS3VtY2hlb24tR3UsIAorCQkJCVNlb3VsICAxNTMtNzgzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0YwLUE3LTY0ICAgKGhleCkJCUdTVCBDby4sIEx0ZC4KK0YwQTc2NCAgICAgKGJhc2UgMTYpCQlHU1QgQ28uLCBMdGQuCisJCQkJIzkxOSwgR29zYWVrLWRvbmcsIEd3b25zZW9uLWd1LAorCQkJCVN1d29uLXNpIEd5ZW9uZ2dpLWRvIDQ0MS04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjAtQUQtNEUgICAoaGV4KQkJR2xvYmFsc2NhbGUgVGVjaG5vbG9naWVzLCBJbmMuCitGMEFENEUgICAgIChiYXNlIDE2KQkJR2xvYmFsc2NhbGUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNUYsIE5vLiAyIEJ1aWxkaW5nLCBNaW54aW5nIEluZHVzdHJpYWwgUGFyaworCQkJCU1pbmthbmcgUmQuLCBNaW56aGkgU3QuLCBCYW9hbiBEaXN0LgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDkKKwkJCQlDSElOQQorCitGMC1BRS01MSAgIChoZXgpCQlYaTMgQ29ycAorRjBBRTUxICAgICAoYmFzZSAxNikJCVhpMyBDb3JwCisJCQkJMjk5IFMuIE1haW4gU3QuCisJCQkJU3VpdGUgMTMwMAorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTExCisJCQkJVU5JVEVEIFNUQVRFUworCitGMC1CNC03OSAgIChoZXgpCQlBcHBsZQorRjBCNDc5ICAgICAoYmFzZSAxNikJCUFwcGxlCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitGMC1CNi1FQiAgIChoZXgpCQlQb3NsYWIgVGVjaG5vbG9neSBDby4sIEx0ZC4KK0YwQjZFQiAgICAgKGJhc2UgMTYpCQlQb3NsYWIgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk1Ri0xLCBOby40OTAgQmFubmFuIFJkLgorCQkJCVRhaXBlaSBDb3VudHkKKwkJCQlKaG9uZ2hlIENpdHkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRjAtQkMtQzggICAoaGV4KQkJTWF4SUQgKFB0eSkgTHRkCitGMEJDQzggICAgIChiYXNlIDE2KQkJTWF4SUQgKFB0eSkgTHRkCisJCQkJNDMgSG9tZXN0ZWFkIFJvYWQKKwkJCQlSaXZvbmlhCisJCQkJSm9oYW5uZXNidXJnIEdhdXRlbmcgMjEyOAorCQkJCVNPVVRIIEFGUklDQQorCitGMC1CRC1GMSAgIChoZXgpCQlTaXBvZCBJbmMuCitGMEJERjEgICAgIChiYXNlIDE2KQkJU2lwb2QgSW5jLgorCQkJCTQ2MzMgT2xkIElyb25zaWRlcyBEcml2ZSwgIzQwMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCitGMC1CRi05NyAgIChoZXgpCQlTb255IENvcnBvcmF0aW9uCitGMEJGOTcgICAgIChiYXNlIDE2KQkJU29ueSBDb3Jwb3JhdGlvbgorCQkJCUdvdGVueWFtYSBUZWMuCisJCQkJNS0xLTEyIEtpdGFzaGluYWdhd2EgU2hpbmFnYXdhLWt1CisJCQkJVG9reW8gIDE0MS0wMDAxCisJCQkJSkFQQU4KKworRjAtQzItNEMgICAoaGV4KQkJWmhlamlhbmcgRmVpWXVlIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sIEx0ZAorRjBDMjRDICAgICAoYmFzZSAxNikJCVpoZWppYW5nIEZlaVl1ZSBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlCYW90aW5nIEluZHVzdHJpYWwgUGFyaywgNTMxIEppYW9nb25nIFJvYWQKKwkJCQkgSGFuZ3pob3UgQ2l0eSBaaGVqaWFuZyBQcm92aW5jZSAzMTAwMTIKKwkJCQlDSElOQQorCitGMC1DMi03QyAgIChoZXgpCQlNaWFueWFuZyBOZXRvcCBUZWxlY29tIEVxdWlwbWVudCBDby4sTHRkLgorRjBDMjdDICAgICAoYmFzZSAxNikJCU1pYW55YW5nIE5ldG9wIFRlbGVjb20gRXF1aXBtZW50IENvLixMdGQuCisJCQkJTm8uMTExLEVhc3Qgc2VjdGlvbiBvZiBQdW1pbmcgU291dGggUm9hZCwKKwkJCQlIaS10ZWNoIHpvbmUsCisJCQkJTWlhbnlhbmcgQ2l0eSBTaWNodWFuIFByb3ZpbmNlLCAgNjIxMDAwCisJCQkJQ0hJTkEKKworRjAtQzgtOEMgICAoaGV4KQkJTGVkZGFyVGVjaCBJbmMuCitGMEM4OEMgICAgIChiYXNlIDE2KQkJTGVkZGFyVGVjaCBJbmMuCisJCQkJMjc0MCBFaW5zdGVpbiBTdHJlZXQKKwkJCQlRdWViZWMgQ2l0eSAgRzFQIDRTNAorCQkJCUNBTkFEQQorCitGMC1ENy02NyAgIChoZXgpCQlBeGVtYSBQYXNzYWdla29udHJvbGwgQUIKK0YwRDc2NyAgICAgKGJhc2UgMTYpCQlBeGVtYSBQYXNzYWdla29udHJvbGwgQUIKKwkJCQlCb3ggOTAgMjE1CisJCQkJU3RvY2tob2xtICAxMjAgMjMgCisJCQkJU1dFREVOCisKK0YwLURCLTMwICAgKGhleCkJCVlvdHRhYnl0ZQorRjBEQjMwICAgICAoYmFzZSAxNikJCVlvdHRhYnl0ZQorCQkJCTE3NTAgUy4gVGVsZWdyYXBoIFJvYWQKKwkJCQlTdWl0ZSAyMDAKKwkJCQlCbG9vbWZpZWxkIFR3cC4gTUkgNDgzMDIKKwkJCQlVTklURUQgU1RBVEVTCisKK0YwLURFLTcxICAgKGhleCkJCVNoYW5naGFpIEVETyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KK0YwREU3MSAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBFRE8gVGVjaG5vbG9naWVzIENvLixMdGQuCisJCQkJVW5pdCAxMjMwMiwgQnVpbGRpbmcgMTIsNDk4IEd1b3Nob3VqaW5nIFJvYWQsIFB1ZG9uZyBOZXcgQXJlYQorCQkJCVNoYW5naGFpICAyMDEyMDMKKwkJCQlDSElOQQorCitGMC1ERS1GMSAgIChoZXgpCQlXaXN0cm9uIEluZm9Db21tIChLdW5zaGFuKUNvCitGMERFRjEgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBJbmZvQ29tbSAoS3Vuc2hhbilDbworCQkJCTE2OEt1blNoYW4sIAorCQkJCUppYW5nU3UgIDIxNTMwMAorCQkJCUNISU5BCisKK0YwLUU1LUMzICAgKGhleCkJCURyYWVnZXJ3ZXJrIEFHICZhbXA7YW1wOyBDby4gS0cgYUEKK0YwRTVDMyAgICAgKGJhc2UgMTYpCQlEcmFlZ2Vyd2VyayBBRyAmYW1wO2FtcDsgQ28uIEtHIGFBCisJCQkJTW9pc2xpbmdlciBBbGxlZSA1My01NQorCQkJCUx1ZWJlY2sgR2VybWFueSAyMzQ1MgorCQkJCUdFUk1BTlkKKworRjAtRUMtMzkgICAoaGV4KQkJRXNzZWMKK0YwRUMzOSAgICAgKGJhc2UgMTYpCQlFc3NlYworCQkJCVNjaG9lYnJvZWtzdHJhYXQgNDgKKwkJCQlQYWFsIExpbWJ1cmcgMzU4MworCQkJCUJFTEdJVU0KKworRjAtRUQtMUUgICAoaGV4KQkJQmlsa29uIEJpbGdpc2F5YXIgS29udHJvbGx1IENpaC4gSW0uTHRkLgorRjBFRDFFICAgICAoYmFzZSAxNikJCUJpbGtvbiBCaWxnaXNheWFyIEtvbnRyb2xsdSBDaWguIEltLkx0ZC4KKwkJCQlHZXJzYW4gU2FuYXlpIFNpdGVzaSA2NTguU29rYWsgTm86MTYKKwkJCQlZRU5JTUFIQUxMRS0gQkFUSUtFTlQKKwkJCQlBTktBUkEgIDA2MzcwCisJCQkJVFVSS0VZCisKK0YwLUYwLTAyICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCitGMEYwMDIgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKwkJCQkgTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMworCQkJCUNISU5BCisKK0YwLUY3LUIzICAgKGhleCkJCVBob3JtCitGMEY3QjMgICAgIChiYXNlIDE2KQkJUGhvcm0KKwkJCQkyMjIgUmVnZW50IFN0cmVldAorCQkJCUxvbmRvbiAgVzFCIDVUUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0YwLUY4LTQyICAgKGhleCkJCUtFRUJPWCwgSW5jLgorRjBGODQyICAgICAoYmFzZSAxNikJCUtFRUJPWCwgSW5jLgorCQkJCTEwIFBvcHB5IFRyYWlsCisJCQkJUm9sbGluZyBIaWxscyBDYWxpZm9ybmlhIDkwMjc0CisJCQkJVU5JVEVEIFNUQVRFUworCitGMC1GOS1GNyAgIChoZXgpCQlJRVMgR21iSCAmYW1wOyBDby4gS0cKK0YwRjlGNyAgICAgKGJhc2UgMTYpCQlJRVMgR21iSCAmYW1wOyBDby4gS0cKKwkJCQlEYXJtY2hlciBHcnVuZCAyMgorCQkJCU1laW5lcnpoYWdlbiAgNTg1NDAKKwkJCQlHRVJNQU5ZCisKK0Y0LTAzLTIxICAgKGhleCkJCUJlTmVYdCBCLlYuCitGNDAzMjEgICAgIChiYXNlIDE2KQkJQmVOZVh0IEIuVi4KKwkJCQlUZXIgR291d3N0cmFhdCAzCisJCQkJQW1zdGVyZGFtIE5IIDEwOTNKWAorCQkJCU5FVEhFUkxBTkRTCisKK0Y0LTBCLTkzICAgKGhleCkJCVJlc2VhcmNoIEluIE1vdGlvbgorRjQwQjkzICAgICAoYmFzZSAxNikJCVJlc2VhcmNoIEluIE1vdGlvbgorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDVSOQorCQkJCUNBTkFEQQorCitGNC0xRi0wQiAgIChoZXgpCQlZQU1BQklTSEkgQ29ycG9yYXRpb24KK0Y0MUYwQiAgICAgKGJhc2UgMTYpCQlZQU1BQklTSEkgQ29ycG9yYXRpb24KKwkJCQkzLTE0LTEyIEthbWlnb3UKKwkJCQlFYmluYS1jaXR5IEtBTkFHQVdBIDI0My0wNDM0CisJCQkJSkFQQU4KKworRjQtMzgtMTQgICAoaGV4KQkJU2hhbmdoYWkgSG93ZWxsIEVsZWN0cm9uaWMgQ28uLEx0ZAorRjQzODE0ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEhvd2VsbCBFbGVjdHJvbmljIENvLixMdGQKKwkJCQk1LTUvRiwgQmxkZy4xLCBOby43ODggRmVuZ3poZW4gUmQuLCAKKwkJCQlTaGFuZ2hhaSAgIDIwMDQzNAorCQkJCUNISU5BCisKK0Y0LTNELTgwICAgKGhleCkJCUZBRyBJbmR1c3RyaWFsIFNlcnZpY2VzIEdtYkgKK0Y0M0Q4MCAgICAgKGJhc2UgMTYpCQlGQUcgSW5kdXN0cmlhbCBTZXJ2aWNlcyBHbWJICisJCQkJS2Fpc2Vyc3RyYXNzZSAxMDAKKwkJCQlIZXJ6b2dlbnJhdGggTlJXIDUyMTM0CisJCQkJR0VSTUFOWQorCitGNC0zRS02MSAgIChoZXgpCQlTaGVuemhlbiBHb25namluIEVsZWN0cm9uaWNzIENvLiwgTHRkCitGNDNFNjEgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gR29uZ2ppbiBFbGVjdHJvbmljcyBDby4sIEx0ZAorCQkJCTJGIEJhaXlpbmcgQnVpbGRpbmcKKwkJCQkxMDE5IyBOYWloYWkgUkQsIE5hbnNoYW4gU2VjdGlvbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNjcKKwkJCQlDSElOQQorCitGNC0zRS05RCAgIChoZXgpCQlCZW51IE5ldHdvcmtzLCBJbmMuCitGNDNFOUQgICAgIChiYXNlIDE2KQkJQmVudSBOZXR3b3JrcywgSW5jLgorCQkJCTMwMCBDb25jb3JkIFJkLiwgU3VpdGUgIzExMAorCQkJCUJpbGxlcmljYSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworRjQtNDItMjcgICAoaGV4KQkJUyAmIFMgUmVzZWFyY2ggSW5jLgorRjQ0MjI3ICAgICAoYmFzZSAxNikJCVMgJiBTIFJlc2VhcmNoIEluYy4KKwkJCQk4OSBBY2Nlc3MgUmQgIzEwCisJCQkJTm9yd29vZCBNQSAwMjA2MgorCQkJCVVOSVRFRCBTVEFURVMKKworRjQtNDUtRUQgICAoaGV4KQkJUG9ydGFibGUgSW5ub3ZhdGlvbiBUZWNobm9sb2d5IEx0ZC4KK0Y0NDVFRCAgICAgKGJhc2UgMTYpCQlQb3J0YWJsZSBJbm5vdmF0aW9uIFRlY2hub2xvZ3kgTHRkLgorCQkJCTYwMS02MDIsIDYvRiBQYXJrIEJ1aWxkaW5nLAorCQkJCTQ3NiBDYXN0bGUgUGVhayBSb2FkLAorCQkJCUtvd2xvb24gIAorCQkJCUhPTkcgS09ORworCitGNC00RS1GRCAgIChoZXgpCQlBY3Rpb25zIFNlbWljb25kdWN0b3IgQ28uLEx0ZC4oQ2F5bWFuIElzbGFuZHMpCitGNDRFRkQgICAgIChiYXNlIDE2KQkJQWN0aW9ucyBTZW1pY29uZHVjdG9yIENvLixMdGQuKENheW1hbiBJc2xhbmRzKQorCQkJCVBvIEJveCAzMDlHVCxVZ2xhbmQgSG91c2UsU291dGggQ2h1cmNoIFN0cmVldCwKKwkJCQlHZW9yZ2UgVG93biBHcmFuZCBDYXltYW4gCisJCQkJQ0FZTUFOIElTTEFORFMKKworRjQtNTAtRUIgICAoaGV4KQkJVGVsZWNoaXBzIEluYworRjQ1MEVCICAgICAoYmFzZSAxNikJCVRlbGVjaGlwcyBJbmMKKwkJCQlLT1JBRCBCbGRnLDEwMDAtMTIsIERhZWNoaS1Eb25nLCBHYW5nbmFtLUd1LAorCQkJCVNlb3VsICAxMzUtMjgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Y0LTU1LTk1ICAgKGhleCkJCUhFTkdCQU8gQ29ycG9yYXRpb24gTFRELgorRjQ1NTk1ICAgICAoYmFzZSAxNikJCUhFTkdCQU8gQ29ycG9yYXRpb24gTFRELgorCQkJCTh0aCBGbG9vcixUb3dlciBCLFhpbnNoZW5nIE1hbnNpb24gTm8uNSBGaW5hbmNpYWwgU3RyZWV0LAorCQkJCVhpY2hlbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAxNDAKKwkJCQlDSElOQQorCitGNC01NS1FMCAgIChoZXgpCQlOaWNld2F5IENOQyBUZWNobm9sb2d5IENvLixMdGQuSHVuYW4gUHJvdmluY2UKK0Y0NTVFMCAgICAgKGJhc2UgMTYpCQlOaWNld2F5IENOQyBUZWNobm9sb2d5IENvLixMdGQuSHVuYW4gUHJvdmluY2UKKwkJCQk1L0YsSW5ub3ZhdGlvbi1VbmRlcnRha2luZyBDZW50ZXIsSHVhbkJhbyBJbmR1c3RyaWFsIFBhcmssMTk5IyxaaGVuSHVhIFJvYWQsCisJCQkJQ2hhbmdzaGEgSHVuYW4gNDEwMTE2CisJCQkJQ0hJTkEKKworRjQtNUYtRDQgICAoaGV4KQkJQ2lzY28gU1BWVEcKK0Y0NUZENCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCitGNC01Ri1GNyAgIChoZXgpCQlEUSBUZWNobm9sb2d5IEluYy4KK0Y0NUZGNyAgICAgKGJhc2UgMTYpCQlEUSBUZWNobm9sb2d5IEluYy4KKwkJCQk1MTExIEpvaG5zb24gRHJpdmUKKwkJCQlQbGVhc2FudG9uIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCitGNC02My00OSAgIChoZXgpCQlEaWZmb24gQ29ycG9yYXRpb24KK0Y0NjM0OSAgICAgKGJhc2UgMTYpCQlEaWZmb24gQ29ycG9yYXRpb24KKwkJCQlEaWdpdGFsIFRvd2VyIEFzdG9uIDE1MDUKKwkJCQk1MDUtMTUgR2FzYW4sIEd1ZW1jaGVvbgorCQkJCVNlb3VsICAxNTM4MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjQtNkQtMDQgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCitGNDZEMDQgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdSwKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRjQtNzYtMjYgICAoaGV4KQkJVmlsdGVjaG1lZGEgVUFCIAorRjQ3NjI2ICAgICAoYmFzZSAxNikJCVZpbHRlY2htZWRhIFVBQiAKKwkJCQlLYWx2YXJpanUgMTI1CisJCQkJVmlsbml1cyAgTFQtMDgyMjEKKwkJCQlMSVRIVUFOSUEKKworRjQtOTQtNjEgICAoaGV4KQkJTmV4R2VuIFN0b3JhZ2UKK0Y0OTQ2MSAgICAgKGJhc2UgMTYpCQlOZXhHZW4gU3RvcmFnZQorCQkJCTQwMCBDZW50ZW5uaWFsIEJsdmQuCisJCQkJTG91aXN2aWxsZSBDTyA4MDAyNworCQkJCVVOSVRFRCBTVEFURVMKKworRjQtOUYtNTQgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworRjQ5RjU0ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjQtQTUtMkEgICAoaGV4KQkJSGF3YSBUZWNobm9sb2dpZXMgSW5jCitGNEE1MkEgICAgIChiYXNlIDE2KQkJSGF3YSBUZWNobm9sb2dpZXMgSW5jCisJCQkJMzM2IEhheWVzIFN0CisJCQkJU2FuIEZyYW5jaXNjbyBDYWxpZm9ybmlhIDk0MTAyCisJCQkJVU5JVEVEIFNUQVRFUworCitGNC1BQy1DMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitGNEFDQzEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRjQtQjEtNjQgICAoaGV4KQkJTGlnaHRuaW5nIFRlbGVjb21tdW5pY2F0aW9ucyBUZWNobm9sb2d5IENvLiBMdGQKK0Y0QjE2NCAgICAgKGJhc2UgMTYpCQlMaWdodG5pbmcgVGVsZWNvbW11bmljYXRpb25zIFRlY2hub2xvZ3kgQ28uIEx0ZAorCQkJCVJvb20gMTMwMiwgVGlhbmk/b2VpP29lYW4gSGktVGVjaCBQbGF6YSBUb3dlciBBLCBGdXRpYW4gRGlzdHJpY3QsIAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNDAKKwkJCQlDSElOQQorCitGNC1CNS00OSAgIChoZXgpCQlZZWFzdGFyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitGNEI1NDkgICAgIChiYXNlIDE2KQkJWWVhc3RhciBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCVJvb20yMDIsIE5vLjIzIFdhbmdoYWkgUm9hZCwgMm5kIFNvZnR3YXJlIFBhcmssIAorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA2CisJCQkJQ0hJTkEKKworRjQtQzctMTQgICAoaGV4KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorRjRDNzE0ICAgICAoYmFzZSAxNikJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTAxMDgKKwkJCQlDSElOQQorCitGNC1DNy05NSAgIChoZXgpCQlXRVkgRWxla3Ryb25payBBRworRjRDNzk1ICAgICAoYmFzZSAxNikJCVdFWSBFbGVrdHJvbmlrIEFHCisJCQkJRG9yZnN0cmFzc2UgNTcKKwkJCQlVbnRlcmVuZ3N0cmluZ2VuIFp1cmljaCA4MTAzCisJCQkJU1dJVFpFUkxBTkQKKworRjQtQ0EtRTUgICAoaGV4KQkJRlJFRUJPWCBTQQorRjRDQUU1ICAgICAoYmFzZSAxNikJCUZSRUVCT1ggU0EKKwkJCQk4IHJ1ZSBkZSBsYSBWaWxsZSBsJ0V2ZXF1ZQorCQkJCVBBUklTIElkRiA3NTAwOAorCQkJCUZSQU5DRQorCitGNC1DRS00NiAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKK0Y0Q0U0NiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTWFpbGNvZGUgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y0LUQ5LUZCICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ08uLCBMVEQKK0Y0RDlGQiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENPLiwgTFRECisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIFllb25ndG9uZy1ndSwKKwkJCQlTdXdvbi1DaXR5IEd5ZW9uZ2dpLWRvIDQ0My03NDIKKwkJCQlTdXdvbiBHeWVvbmdnaS1kbyA0NDMtNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Y0LURDLTREICAgKGhleCkJCUJlaWppbmcgQ0NEIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sIEx0ZAorRjREQzREICAgICAoYmFzZSAxNikJCUJlaWppbmcgQ0NEIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCTEwNyBEb25nc2kgTm9ydGggU3RyZWV0LCBEb25nY2hlbmcgRGlzdHJpY3QsIAorCQkJCUJlaWppbmcgVGlhbiBIYWkgQ29tbWVyY2lhbCBCdWlsZGluZywgUm9vbSA4MDIsIEJsb2NrIEEKKwkJCQlCZWlqaW5nICAxMDAwMDcKKwkJCQlDSElOQQorCitGNC1EQy1EQSAgIChoZXgpCQlaaHVoYWkgSmlhaGUgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLiwgbGltaXRlZAorRjREQ0RBICAgICAoYmFzZSAxNikJCVpodWhhaSBKaWFoZSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uLCBsaW1pdGVkCisJCQkJNC9GLEVhc3QgT2YgQjUsU291cnRoIFNvZnR3YXJlIFBhcmssVGFuZ2ppYSwKKwkJCQlaaHVoYWkgR3Vhbmdkb25nIDUxOTA4NQorCQkJCUNISU5BCisKK0Y0LUUxLTQyICAgKGhleCkJCURlbHRhIEVsZWt0cm9uaWthIEJWCitGNEUxNDIgICAgIChiYXNlIDE2KQkJRGVsdGEgRWxla3Ryb25pa2EgQlYKKwkJCQlWaXNzZXJzZGlqayA0CisJCQkJWmllcmlremVlICA0MzAxIE5ECisJCQkJTkVUSEVSTEFORFMKKworRjQtRUMtMzggICAoaGV4KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCitGNEVDMzggICAgIChiYXNlIDE2KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCisJCQkJMS02RiwgQnVpbGRpbmcgMiwgUGluZ3NoYW5kYXl1YW4gSW5kdXN0cmlhbCwgU291dGggWm9uZSwKKwkJCQlUYW95dWFuIFN0cmVldCwgTmFuc2hhbiBEaXN0cmljdCwgCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKK0Y0LUZDLTMyICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCitGNEZDMzIgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LTAzLTMyICAgKGhleCkJCUtob21wCitGODAzMzIgICAgIChiYXNlIDE2KQkJS2hvbXAKKwkJCQlSdWEgSm9lIENvbGxhaT9vZW8sIDE2MworCQkJCVN0YSBNb25pY2EKKwkJCQlGbG9yaWFuaT9vZXBvbGlzIFNhbnRhIENhdGFyaW5hIDg4MDM3LTAxMAorCQkJCUJSQVpJTAorCitGOC0wRi00MSAgIChoZXgpCQlXaXN0cm9uIEluZm9Db21tKFpob25nU2hhbikgQ29ycG9yYXRpb24KK0Y4MEY0MSAgICAgKGJhc2UgMTYpCQlXaXN0cm9uIEluZm9Db21tKFpob25nU2hhbikgQ29ycG9yYXRpb24KKwkJCQlUb3JjaCBIaWdoLXRlY2ggSW5kdXN0cmlhbCBEZXZlbG9wbWVudCBab25lLCAKKwkJCQlaaG9uZ1NoYW4gR3Vhbmdkb25nIDUyODQzNworCQkJCUNISU5BCisKK0Y4LTBGLTg0ICAgKGhleCkJCU5hdHVyYWwgU2VjdXJpdHkgU0FTCitGODBGODQgICAgIChiYXNlIDE2KQkJTmF0dXJhbCBTZWN1cml0eSBTQVMKKwkJCQkxNjUgQXZlbnVlIGRlIEJyZXRhZ25lCisJCQkJTGlsbGUgIDU5MDAwCisJCQkJRlJBTkNFCisKK0Y4LTEwLTM3ICAgKGhleCkJCUF0b3BpYSBTeXN0ZW1zLCBMUAorRjgxMDM3ICAgICAoYmFzZSAxNikJCUF0b3BpYSBTeXN0ZW1zLCBMUAorCQkJCTY4MSBOLiBQbGFubyBSb2FkCisJCQkJU3VpdGUgMTE5CisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MgorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtMUQtOTMgICAoaGV4KQkJTG9uZ2RodWEoQmVpamluZykgQ29udHJvbHMgVGVjaG5vbG9neSBDby4sTHRkCitGODFEOTMgICAgIChiYXNlIDE2KQkJTG9uZ2RodWEoQmVpamluZykgQ29udHJvbHMgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJUm9vbSAxMjAzLExpeGlhbmcgQnVpbGRpbmcsIE5vLjExMSBaaGljaHVuIFJvYWQsSGFpZGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDA4NgorCQkJCUNISU5BCisKK0Y4LTFFLURGICAgKGhleCkJCUFwcGxlLCBJbmMKK0Y4MUVERiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitGOC0zRC1GRiAgIChoZXgpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCitGODNERkYgICAgIChiYXNlIDE2KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworRjgtNDctMkQgICAoaGV4KQkJWDJnZW4gRGlnaXRhbCBDb3JwLiBMdGQKK0Y4NDcyRCAgICAgKGJhc2UgMTYpCQlYMmdlbiBEaWdpdGFsIENvcnAuIEx0ZAorCQkJCSMgODksIFNpbmdsb25nIFJkIAorCQkJCVRhb3l1YW4gSHNpZW4KKwkJCQlQaW4tSmhlbiBDaXR5LCAgIDMyNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRjgtNTItREYgICAoaGV4KQkJVk5MIEV1cm9wZSBBQgorRjg1MkRGICAgICAoYmFzZSAxNikJCVZOTCBFdXJvcGUgQUIKKwkJCQlGaW5sYW5kc2dhdGFuIDEwCisJCQkJU0UgCisJCQkJS2lzdGEgIDE2NCA3NAorCQkJCVNXRURFTgorCitGOC02Ni1GMiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitGODY2RjIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitGOC02OS03MSAgIChoZXgpCQlTZWlidSBFbGVjdHJpYyBDby4sCitGODY5NzEgICAgIChiYXNlIDE2KQkJU2VpYnUgRWxlY3RyaWMgQ28uLAorCQkJCTE0NTgtNworCQkJCUhhemFtYQorCQkJCUhhY2hpb2ppIFRva3lvIDE5My0wOTQxCisJCQkJSkFQQU4KKworRjgtNkUtQ0YgICAoaGV4KQkJQXJjeCBJbmMKK0Y4NkVDRiAgICAgKGJhc2UgMTYpCQlBcmN4IEluYworCQkJCTE1MSBBbWJlciBTdCwgVW5pdCAxCisJCQkJTWFya2hhbSBPTiBMM1IgM0IzCisJCQkJQ0FOQURBCisKK0Y4LTcxLUZFICAgKGhleCkJCVRoZSBHb2xkbWFuIFNhY2hzIEdyb3VwLCBJbmMuCitGODcxRkUgICAgIChiYXNlIDE2KQkJVGhlIEdvbGRtYW4gU2FjaHMgR3JvdXAsIEluYy4KKwkJCQk4NSBCcm9hZCBTdHJlZXQKKwkJCQlOZXcgWW9yayBOZXcgWW9yayAxMDAwNAorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtNzYtOUIgICAoaGV4KQkJTmVvcGlzIENvLiwgTHRkLgorRjg3NjlCICAgICAoYmFzZSAxNikJCU5lb3BpcyBDby4sIEx0ZC4KKwkJCQkjNDAxIE5lbyBiZC4sIDE5Ni00NCBBbnlhbmc3LURvbmcKKwkJCQlNYW5hbi1HdQorCQkJCUFueWFuZyBLeW9uZ2dpLURvIDQzMC04NTcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjgtN0ItN0EgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KK0Y4N0I3QSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVUyBIV1kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LTdCLThDICAgKGhleCkJCUFtcGVkIFdpcmVsZXNzCitGODdCOEMgICAgIChiYXNlIDE2KQkJQW1wZWQgV2lyZWxlc3MKKwkJCQkxMzA4OSBQZXl0b24gRHIuICNDMzA3CisJCQkJQ2hpbm8gSGlsbHMgQ0EgOTE3MDkKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LTgxLTFBICAgKGhleCkJCU9WRVJLSVoKK0Y4ODExQSAgICAgKGJhc2UgMTYpCQlPVkVSS0laCisJCQkJSEVSQSAyCisJCQkJU2l0ZSBkJ0FyY2hhbXBzCisJCQkJQXJjaGFtcHMgIDc0MTYwCisJCQkJRlJBTkNFCisKK0Y4LThELUVGICAgKGhleCkJCVRlbmVicmFleAorRjg4REVGICAgICAoYmFzZSAxNikJCVRlbmVicmFleAorCQkJCTI3IERyeWRvY2sgQXZlbnVlCisJCQkJQm9zdG9uIE1BIDAyMjEwCisJCQkJVU5JVEVEIFNUQVRFUworCitGOC05MS0yQSAgIChoZXgpCQlHTFAgR2VybWFuIExpZ2h0IFByb2R1Y3RzIEdtYkgKK0Y4OTEyQSAgICAgKGJhc2UgMTYpCQlHTFAgR2VybWFuIExpZ2h0IFByb2R1Y3RzIEdtYkgKKwkJCQlJbSBTdGk/b2Vja21pP29lZGxlIDEzCisJCQkJS2FybHNiYWQgQlcgNzYzMDcKKwkJCQlHRVJNQU5ZCisKK0Y4LTkzLUYzICAgKGhleCkJCVZPTEFOUworRjg5M0YzICAgICAoYmFzZSAxNikJCVZPTEFOUworCQkJCTNGIElKVSBCRCA3NzAtMTMgWUVPS1NBTS1ET05HCisJCQkJR0FOR05BTS1HVQorCQkJCVNFT1VMICAxMzUtOTI4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Y4LTlELTBEICAgKGhleCkJCUNvbnRyb2wgVGVjaG5vbG9neSBJbmMuCitGODlEMEQgICAgIChiYXNlIDE2KQkJQ29udHJvbCBUZWNobm9sb2d5IEluYy4KKwkJCQk3NjA4IE5vcnRoIEh1ZHNvbiBBdmUKKwkJCQlPa2xhaG9tYSBDaXR5IE9LIDczMTE2CisJCQkJVU5JVEVEIFNUQVRFUworCitGOC1BOS1ERSAgIChoZXgpCQlQVUlTU0FOQ0UgUExVUworRjhBOURFICAgICAoYmFzZSAxNikJCVBVSVNTQU5DRSBQTFVTCisJCQkJMjIyIEltcGFzc2UgTG91aXMgTGk/b2VwaW5lCisJCQkJWi5JLiBBbGJhc3VkIC0gU2VjdGV1ciAzCisJCQkJTW9udGF1YmFuICA4MjAwMAorCQkJCUZSQU5DRQorCitGOC1BQy02RCAgIChoZXgpCQlEZWx0ZW5uYSBMdGQKK0Y4QUM2RCAgICAgKGJhc2UgMTYpCQlEZWx0ZW5uYSBMdGQKKwkJCQlGaXJzdCBGbG9vciBVbml0IDIKKwkJCQlCZWxsaW5nZXIgQ2xvc2UKKwkJCQlDaGlwcGVuaGFtIFdpbHRzaGlyZSBTTjE1IDFCTgorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0Y4LUI1LTk5ICAgKGhleCkJCUd1YW5nemhvdSBDSE5BVlMgRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQKK0Y4QjU5OSAgICAgKGJhc2UgMTYpCQlHdWFuZ3pob3UgQ0hOQVZTIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJQnVsaWRpbmcgQywgaW5kdXN0eSBiYXNlIG9mIGRpZ2l0YWwgaG9tZSBhcHBsaWNhdGlvbiBhbmQgZGVtb25zdHJhdGlvbiAsemhvbmd5aSByb2FkIEd1YW5nemhvdSBoaWdoZXIgZWR1Y2F0aW9uIG1lZ2EgY2VudGVyCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTAwMDYKKwkJCQlDSElOQQorCitGOC1DMC05MSAgIChoZXgpCQlIaWdoZ2F0ZXMgVGVjaG5vbG9neQorRjhDMDkxICAgICAoYmFzZSAxNikJCUhpZ2hnYXRlcyBUZWNobm9sb2d5CisJCQkJMTQxNSBIaWdoZ2F0ZSBBdmUKKwkJCQlMb3MgQW5nZWxlcyBDQSA5MDA0MgorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtQzYtNzggICAoaGV4KQkJQ2FyZWZ1c2lvbgorRjhDNjc4ICAgICAoYmFzZSAxNikJCUNhcmVmdXNpb24KKwkJCQkxMDAyMCBQYWNpZmljIE1lc2EgQmx2ZAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtRDctNTYgICAoaGV4KQkJU2ltbSBUcm9uaWMgTGltaXRlZCAKK0Y4RDc1NiAgICAgKGJhc2UgMTYpCQlTaW1tIFRyb25pYyBMaW1pdGVkIAorCQkJCVVuaXQgMywgV2F0ZXJzaWRlCisJCQkJQ2hhcmx0b24gTWVhZCBMYW5lCisJCQkJSG9kZGVzZG9uIEhlcnRmb3Jkc2hpcmUgRU4xMSAwUVIKKwkJCQlVTklURUQgS0lOR0RPTQorCitGOC1EQS1FMiAgIChoZXgpCQlCZXRhIExhc2VyTWlrZQorRjhEQUUyICAgICAoYmFzZSAxNikJCUJldGEgTGFzZXJNaWtlCisJCQkJODAwMSBUZWNobm9sb2d5IEJsdmQKKwkJCQlEYXl0b24gT0ggNDU0MjQKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LURBLUY0ICAgKGhleCkJCVRhaXNoYW4gT25saW5lIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitGOERBRjQgICAgIChiYXNlIDE2KQkJVGFpc2hhbiBPbmxpbmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk0L0YgRmFuZ2RhIEJ1aWxkaW5nLCBTb3V0aCBBcmVhLCBIaS10ZWNoIEluZHVzdGlhbCBQYXJrLCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworRjgtREItN0YgICAoaGV4KQkJSFRDIENvcnBvcmF0aW9uCitGOERCN0YgICAgIChiYXNlIDE2KQkJSFRDIENvcnBvcmF0aW9uCisJCQkJTm8uMjMgWGluZ2h1YSBSb2FkCisJCQkJVGFveXVhbiBDaXR5CisJCQkJVGFveXVhbiBDb3VudHkgIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRjgtREMtN0EgICAoaGV4KQkJVmFyaXNjaXRlIExURAorRjhEQzdBICAgICAoYmFzZSAxNikJCVZhcmlzY2l0ZSBMVEQKKwkJCQk2MCBNZWRpbmF0IEhheWVodWRpbSBzdC4KKwkJCQlIZXJ0emVsaWEgIDQ2NzIyCisJCQkJSVNSQUVMCisKK0Y4LUU5LTY4ICAgKGhleCkJCUVna2VyIEtmdC4KK0Y4RTk2OCAgICAgKGJhc2UgMTYpCQlFZ2tlciBLZnQuCisJCQkJU3p1Z2xvIHUuIDQ5LgorCQkJCUJ1ZGFwZXN0ICAxMTQ1CisJCQkJSFVOR0FSWQorCitGOC1FQS0wQSAgIChoZXgpCQlEaXBsLi1NYXRoLiBNaWNoYWVsIFJhdWNoCitGOEVBMEEgICAgIChiYXNlIDE2KQkJRGlwbC4tTWF0aC4gTWljaGFlbCBSYXVjaAorCQkJCUthcGVsbGVuc3RyLiAzMQorCQkJCUJyZXR0ZW4gQmFXaT9vZSA3NTAxNQorCQkJCUdFUk1BTlkKKworRjgtRjAtMTQgICAoaGV4KQkJUmFja1dhcmUgSW5jLgorRjhGMDE0ICAgICAoYmFzZSAxNikJCVJhY2tXYXJlIEluYy4KKwkJCQk0NDA1MyBGcmVtb250IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtRkItMkYgICAoaGV4KQkJU2FudHVyIENvcnBvcmF0aW9uCitGOEZCMkYgICAgIChiYXNlIDE2KQkJU2FudHVyIENvcnBvcmF0aW9uCisJCQkJNDA5MzEgRW5jeWNsb3BlZGlhIENpcmNsZQorCQkJCUZyZW1vbnQgQ2FsaWZvcm5pYSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworRkMtMDgtNzcgICAoaGV4KQkJUHJlbnRrZSBSb21pY2ggQ29tcGFueQorRkMwODc3ICAgICAoYmFzZSAxNikJCVByZW50a2UgUm9taWNoIENvbXBhbnkKKwkJCQkxMDIyIEhleWwgUmQKKwkJCQlXb29zdGVyIE9IIDQ0NjkxCisJCQkJVU5JVEVEIFNUQVRFUworCitGQy0wRi1FNiAgIChoZXgpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgSW5jLiAKK0ZDMEZFNiAgICAgKGJhc2UgMTYpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgSW5jLiAKKwkJCQkxLTctMSBLb25hbgorCQkJCU1pbmF0by1rdSAgVG9reW8gMTA4LTAwNzUgCisJCQkJSkFQQU4KKworRkMtMTAtQkQgICAoaGV4KQkJQ29udHJvbCBTaXN0ZW1hdGl6YWRvIFMuQS4KK0ZDMTBCRCAgICAgKGJhc2UgMTYpCQlDb250cm9sIFNpc3RlbWF0aXphZG8gUy5BLgorCQkJCUNyYSA0MyBOIDMxIDUyCisJCQkJTWVkZWxsaW4gQW50aW9xdWlhIDEwMTAxCisJCQkJQ09MT01CSUEKKworRkMtMUYtQzAgICAoaGV4KQkJRVVSRUNBTQorRkMxRkMwICAgICAoYmFzZSAxNikJCUVVUkVDQU0KKwkJCQlCQVQgOSAtIE1pbmlwYXJjCisJCQkJNiBBdmVudWUgZGVzIEFuZGVzCisJCQkJTEVTIFVMSVMgIDkxOTQwCisJCQkJRlJBTkNFCisKK0ZDLTJFLTJEICAgKGhleCkJCUxvcm9tIEluZHVzdHJpYWwgQ28uTFRELgorRkMyRTJEICAgICAoYmFzZSAxNikJCUxvcm9tIEluZHVzdHJpYWwgQ28uTFRELgorCQkJCUYxLjEzLFJtLjIsTm8uNzgsU2VjLjIsQW4tSG9SZC4KKwkJCQlUYWlwZWkgIDEwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRkMtMkYtNDAgICAoaGV4KQkJQ2FseGVkYSwgSW5jLgorRkMyRjQwICAgICAoYmFzZSAxNikJCUNhbHhlZGEsIEluYy4KKwkJCQk3MDAwIE5vcnRoIE1vcGFjIEV4cHJlc3N3YXkKKwkJCQlTdWl0ZSAyNTAKKwkJCQlBdXN0aW4gVFggNzg3MzEKKwkJCQlVTklURUQgU1RBVEVTCisKK0ZDLTM1LTk4ICAgKGhleCkJCUZhdml0ZSBJbmMuCitGQzM1OTggICAgIChiYXNlIDE2KQkJRmF2aXRlIEluYy4KKwkJCQlOby4xOSwgTGFuZSA3OCwgWWFuaGUgU3QuLAorCQkJCUpodWJlaSBDaXR5IEhzaW5jaHUgQ291bnR5IDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRkMtNDQtNjMgICAoaGV4KQkJVW5pdmVyc2FsIEF1ZGlvCitGQzQ0NjMgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIEF1ZGlvCisJCQkJMTcwMCBHcmVlbiBIaWxscyBSb2FkCisJCQkJU2NvdHRzIFZhbGxleSBDQSA5NTA2NgorCQkJCVVOSVRFRCBTVEFURVMKKworRkMtNUItMjQgICAoaGV4KQkJV2VpYmVsIFNjaWVudGlmaWMgQS9TCitGQzVCMjQgICAgIChiYXNlIDE2KQkJV2VpYmVsIFNjaWVudGlmaWMgQS9TCisJCQkJU29sdmFuZyAzMAorCQkJCUFsbGVyb2VkICAzNDUwCisJCQkJREVOTUFSSworCitGQy02MS05OCAgIChoZXgpCQlORUMgUGVyc29uYWwgUHJvZHVjdHMsIEx0ZAorRkM2MTk4ICAgICAoYmFzZSAxNikJCU5FQyBQZXJzb25hbCBQcm9kdWN0cywgTHRkCisJCQkJNi04MCwgU2hpbW9oYW5hemF3YSAyLWNob21lLAorCQkJCVlvbmV6YXdhLXNoaSBZYW1hZ2F0YSA5OTItODUyMAorCQkJCUpBUEFOCisKK0ZDLTY4LTNFICAgKGhleCkJCURpcmVjdGVkIFBlcmNlcHRpb24sIEluYworRkM2ODNFICAgICAoYmFzZSAxNikJCURpcmVjdGVkIFBlcmNlcHRpb24sIEluYworCQkJCTg5MEMgQ293YW4gUm9hZAorCQkJCUJ1cmxpbmdhbWUgQ2FsaWZvcm5pYSA5NDAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworRkMtNkMtMzEgICAoaGV4KQkJTFhpbnN0cnVtZW50cyBHbWJICitGQzZDMzEgICAgIChiYXNlIDE2KQkJTFhpbnN0cnVtZW50cyBHbWJICisJCQkJSGVycmVuYmVyZ2VyIFN0ci4gMTMwCisJCQkJQm9lYmxpbmdlbiAgNzEwMzQKKwkJCQlHRVJNQU5ZCisKK0ZDLTc1LUU2ICAgKGhleCkJCUhhbmRyZWFtbmV0CitGQzc1RTYgICAgIChiYXNlIDE2KQkJSGFuZHJlYW1uZXQKKwkJCQkjMTIwOSBNYXJpb1Rvd2VyLCAyMjItMTIsIEd1cm8tRG9uZywgR3Vyby1HdQorCQkJCVNlb3VsIEd1cm8tR3UgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGQy03Qy1FNyAgIChoZXgpCQlGQ0kgVVNBIExMQworRkM3Q0U3ICAgICAoYmFzZSAxNikJCUZDSSBVU0EgTExDCisJCQkJODI1IE9sZCBUcmFpbCBSb2FkCisJCQkJRXR0ZXJzIFBBIDE3MzE5CisJCQkJVU5JVEVEIFNUQVRFUworCitGQy04My0yOSAgIChoZXgpCQlUcmVpIHRlY2huaWNzCitGQzgzMjkgICAgIChiYXNlIDE2KQkJVHJlaSB0ZWNobmljcworCQkJCTgwMSBOb3J0aHBvaW50IFBrd3kKKwkJCQlTdGUgNTQKKwkJCQlXZXN0IFBhbG0gQmVhY2ggRmxvcmlkYSAzMzQwNworCQkJCVVOSVRFRCBTVEFURVMKKworRkMtOEUtN0UgICAoaGV4KQkJUGFjZSBGcmFuY2UKK0ZDOEU3RSAgICAgKGJhc2UgMTYpCQlQYWNlIEZyYW5jZQorCQkJCTMzLCBydWUgZGUgVmVyZHVuCisJCQkJQlA0NAorCQkJCVN1cmVzbmVzICA5MjE1MgorCQkJCUZSQU5DRQorCitGQy1BMS0zRSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCitGQ0ExM0UgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGQy1BOC00MSAgIChoZXgpCQlBdmF5YSwgSW5jCitGQ0E4NDEgICAgIChiYXNlIDE2KQkJQXZheWEsIEluYworCQkJCTIxMSBNb3VudCBBaXJ5IFJvYWQKKwkJCQlCYXNraW5nIFJpZGdlIE5KIDA3OTIwCisJCQkJVU5JVEVEIFNUQVRFUworCitGQy1BRi02QSAgIChoZXgpCQlDb25lbXRlY2ggQUIKK0ZDQUY2QSAgICAgKGJhc2UgMTYpCQlDb25lbXRlY2ggQUIKKwkJCQlUb3JzaGFtbnNnYXRhbiAzNQorCQkJCUtpc3RhICBTRS0xNjQ0MAorCQkJCVNXRURFTgorCitGQy1DQy1FNCAgIChoZXgpCQlBc2NvbiBMdGQuCitGQ0NDRTQgICAgIChiYXNlIDE2KQkJQXNjb24gTHRkLgorCQkJCTEtMTUtMjcgTWluYXRvLW1hY2hpIAorCQkJCUZ1a3V5YW1hIGk/b2VzaGkgSGlyb3NoaW1hLWtlbiA3MjEtMDk2NAorCQkJCUpBUEFOCisKK0ZDLUNGLTYyICAgKGhleCkJCUlCTSBDb3JwCitGQ0NGNjIgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkyMDUxIE1pc3Npb24gQ29sbGVnZSBCbHZkIAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCitGQy1ENC1GMiAgIChoZXgpCQlUaGUgQ29jYSBDb2xhIENvbXBhbnkKK0ZDRDRGMiAgICAgKGJhc2UgMTYpCQlUaGUgQ29jYSBDb2xhIENvbXBhbnkKKwkJCQlPbmUgQ29jYSBDb2xhIFBsYXphCisJCQkJQXRsYW50YSBHQSAzMDMxMworCQkJCVVOSVRFRCBTVEFURVMKKworRkMtRDQtRjYgICAoaGV4KQkJTWVzc2FuYSBBaXIuUmF5IENvbmRpdGlvbmluZyBzLnIubC4KK0ZDRDRGNiAgICAgKGJhc2UgMTYpCQlNZXNzYW5hIEFpci5SYXkgQ29uZGl0aW9uaW5nIHMuci5sLgorCQkJCVZpYSBWZW5lemlhIDE4CisJCQkJT2RlcnpvIFRWIDMxMDQ2CisJCQkJSVRBTFkKKworRkMtRTEtOTIgICAoaGV4KQkJU2ljaHVhbiBKaW53YW5ndG9uZyBFbGVjdHJvbmljIFNjaWVuY2UmVGVjaG5vbG9neSBDbywuTHRkCitGQ0UxOTIgICAgIChiYXNlIDE2KQkJU2ljaHVhbiBKaW53YW5ndG9uZyBFbGVjdHJvbmljIFNjaWVuY2UmVGVjaG5vbG9neSBDbywuTHRkCisJCQkJTm8uMjgsWGluY2h1YW5nIFJkLixXZXN0IEdhb3hpbiBEaXN0cmljdAorCQkJCUNoZW5nZHUgU2ljaHVhbiA2MTE3MzEKKwkJCQlDSElOQQorCitGQy1FMi0zRiAgIChoZXgpCQlDTEFZIFBBS1kgU1BBCitGQ0UyM0YgICAgIChiYXNlIDE2KQkJQ0xBWSBQQUtZIFNQQQorCQkJCVZpYSBQYXN0cmVuZ28gMy9iCisJCQkJU2VyaWF0ZSBCZXJnYW1vIDI0MDY4CisJCQkJSVRBTFkKKworRkMtRTUtNTcgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0ZDRTU1NyAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1IE91IDkwNTkwCisJCQkJRklOTEFORAorCitGQy1FRC1COSAgIChoZXgpCQlBcnJheWVudAorRkNFREI5ICAgICAoYmFzZSAxNikJCUFycmF5ZW50CisJCQkJNTcwIEVsIENhbWlubyBSZWFsICMxNTAtNDE5CisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDYzCisJCQkJVU5JVEVEIFNUQVRFUworCitGQy1GMS1DRCAgIChoZXgpCQlPUFRFWC1GQSBDTy4sTFRELgorRkNGMUNEICAgICAoYmFzZSAxNikJCU9QVEVYLUZBIENPLixMVEQuCisJCQkJOTEgQXdhdGEtY2hvCisJCQkJQ2h1ZG9qaSBTaGltb2d5by1rdQorCQkJCUt5b3RvICA2MDAtODgxNQorCQkJCUpBUEFOCisKK0ZDLUZBLUY3ICAgKGhleCkJCVNoYW5naGFpIEJhdWQgRGF0YSBDb21tdW5pY2F0aW9uIENvLixMdGQuCitGQ0ZBRjcgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgQmF1ZCBEYXRhIENvbW11bmljYXRpb24gQ28uLEx0ZC4KKwkJCQlOTy4xMjMgSlVMSSBSRAorCQkJCVBVRE9ORyBaSEFOR0pJQU5HIEhJR0gtVEVDSCBQQVJLCisJCQkJU0hBTkdIQUkgIDIwMTIwMworCQkJCUNISU5BCisKK0ZDLUZCLUZCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0ZDRkJGQiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKZGlmZiAtLWdpdCBhL2NsaS9kYXRhL291aS1pc28tODg1OS0xNS50eHQgYi9jbGkvZGF0YS9vdWktaXNvLTg4NTktMTUudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFiYTZlNzAKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGF0YS9vdWktaXNvLTg4NTktMTUudHh0CkBAIC0wLDAgKzEsOTUwOTIgQEAKKworT1VJCQkJCU9yZ2FuaXphdGlvbgorY29tcGFueV9pZAkJCU9yZ2FuaXphdGlvbgorCQkJCUFkZHJlc3MKKworCiswMC0wMC0wMCAgIChoZXgpCQlYRVJPWCBDT1JQT1JBVElPTgorMDAwMDAwICAgICAoYmFzZSAxNikJCVhFUk9YIENPUlBPUkFUSU9OCisJCQkJTS9TIDEwNS01MEMKKwkJCQk4MDAgUEhJTExJUFMgUk9BRAorCQkJCVdFQlNURVIgTlkgMTQ1ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTAxICAgKGhleCkJCVhFUk9YIENPUlBPUkFUSU9OCiswMDAwMDEgICAgIChiYXNlIDE2KQkJWEVST1ggQ09SUE9SQVRJT04KKwkJCQlaRVJPWCBTWVNURU1TIElOU1RJVFVURQorCQkJCU0vUyAxMDUtNTBDIDgwMCBQSElMTElQUyBST0FECisJCQkJV0VCU1RFUiBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMDIgICAoaGV4KQkJWEVST1ggQ09SUE9SQVRJT04KKzAwMDAwMiAgICAgKGJhc2UgMTYpCQlYRVJPWCBDT1JQT1JBVElPTgorCQkJCVhFUk9YIFNZU1RFTVMgSU5TVElUVVRFCisJCQkJTS9TIDEwNS01MEMgODAwIFBISUxMSVBTIFJPQUQKKwkJCQlXRUJTVEVSIE5ZIDE0NTgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0wMyAgIChoZXgpCQlYRVJPWCBDT1JQT1JBVElPTgorMDAwMDAzICAgICAoYmFzZSAxNikJCVhFUk9YIENPUlBPUkFUSU9OCisJCQkJWkVST1ggU1lTVEVNUyBJTlNUSVRVVEUKKwkJCQlNL1MgMTA1LTUwQ0VXIEFWRU5VRSA4MDAgUEhJTExJUFMgUk9BRAorCQkJCVdFQlNURVIgTlkgMTQ1ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTA0ICAgKGhleCkJCVhFUk9YIENPUlBPUkFUSU9OCiswMDAwMDQgICAgIChiYXNlIDE2KQkJWEVST1ggQ09SUE9SQVRJT04KKwkJCQlPRkZJQ0UgU1lTVEVNUyBESVZJU0lPTgorCQkJCU0vUyAxMDUtNTBDIDgwMCBQSElMTElQUyBST0FENAorCQkJCVdFQlNURVIgTlkgMTQ1ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTA1ICAgKGhleCkJCVhFUk9YIENPUlBPUkFUSU9OCiswMDAwMDUgICAgIChiYXNlIDE2KQkJWEVST1ggQ09SUE9SQVRJT04KKwkJCQlPRkZJQ0UgU1lTVEVNUyBESVZJU0lPTgorCQkJCU0vUyAxMDUtNTBDIDgwMCBQSElMTElQUyBST0FECisJCQkJV0VCU1RFUiBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMDYgICAoaGV4KQkJWEVST1ggQ09SUE9SQVRJT04KKzAwMDAwNiAgICAgKGJhc2UgMTYpCQlYRVJPWCBDT1JQT1JBVElPTgorCQkJCU9GRklDRSBTWVNURU1TIERJVklTSU9OCisJCQkJTS9TIDEwNS01MEMgODAwIFBISUxMSVBTIFJPQUQ0CisJCQkJV0VCU1RFUiBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMDcgICAoaGV4KQkJWEVST1ggQ09SUE9SQVRJT04KKzAwMDAwNyAgICAgKGJhc2UgMTYpCQlYRVJPWCBDT1JQT1JBVElPTgorCQkJCU9GRklDRSBTWVNURU1TIERJVklTSU9OCisJCQkJTS9TIDEwNS01MEMgODAwIFBISUxMSVBTIFJPQUQKKwkJCQlXRUJTVEVSIE5ZIDE0NTgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0wOCAgIChoZXgpCQlYRVJPWCBDT1JQT1JBVElPTgorMDAwMDA4ICAgICAoYmFzZSAxNikJCVhFUk9YIENPUlBPUkFUSU9OCisJCQkJT0ZGSUNFIFNZU1RFTVMgRElWSVNJT04KKwkJCQlNL1MvIDEwNS01MEMgODAwIFBISUxMSVBTIFJPQUQKKwkJCQlXRUJTVEVSIE5ZIDE0NTgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0wOSAgIChoZXgpCQlYRVJPWCBDT1JQT1JBVElPTgorMDAwMDA5ICAgICAoYmFzZSAxNikJCVhFUk9YIENPUlBPUkFUSU9OCisJCQkJMTM1MCBKRUZGRVJTT04gUk9BRAorCQkJCVJPQ0hFU1RFUiBOWSAxNDYyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMEEgICAoaGV4KQkJT01ST04gVEFURUlTSSBFTEVDVFJPTklDUyBDTy4KKzAwMDAwQSAgICAgKGJhc2UgMTYpCQlPTVJPTiBUQVRFSVNJIEVMRUNUUk9OSUNTIENPLgorCQkJCVNFQ1RJT04gTkZGLCBTWVNURU0gUiZEIExBQlMuCisJCQkJUkVTRUFSQ0ggJiBURUNILiBBU1NFU1NNTlQgRElWIFNISU1PS0FJSQorCQkJCUtZT1RPIDYxNyBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLTBCICAgKGhleCkJCU1BVFJJWCBDT1JQT1JBVElPTgorMDAwMDBCICAgICAoYmFzZSAxNikJCU1BVFJJWCBDT1JQT1JBVElPTgorCQkJCTEyMDMgTkVXIEhPUEUgUk9BRAorCQkJCVJBTEVJR0ggTk9SVEggQ0FST0xJTkEgIDI3NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMEMgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAwMDBDICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0wRCAgIChoZXgpCQlGSUJST05JQ1MgTFRELgorMDAwMDBEICAgICAoYmFzZSAxNikJCUZJQlJPTklDUyBMVEQuCisJCQkJTUFUQU0gVEVDSE5PTE9HWSBDRU5URVIKKwkJCQlIQUlGQSAzMTkwNQorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wMC0wRSAgIChoZXgpCQlGVUpJVFNVIExJTUlURUQKKzAwMDAwRSAgICAgKGJhc2UgMTYpCQlGVUpJVFNVIExJTUlURUQKKwkJCQlNdXNhc2hpLWtvc3VnaSBUb3dlciBQbGFjZSBCbGRnLiwKKwkJCQlLb3N1Z2ktY2hvIDEtY2hvbWUsTmFrYWhhcmEta3UKKwkJCQlLQVdBU0FLSSAyMTEgS2FuYWdhd2EgCisJCQkJSkFQQU4KKworMDAtMDAtMEYgICAoaGV4KQkJTkVYVCwgSU5DLgorMDAwMDBGICAgICAoYmFzZSAxNikJCU5FWFQsIElOQy4KKwkJCQkzNDc1IERFRVIgQ1JFRUsgUk9BRAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMTAgICAoaGV4KQkJU1lURUsgSU5DLgorMDAwMDEwICAgICAoYmFzZSAxNikJCVNZVEVLIElOQy4KKwkJCQkxMjI1IENIQVJMRVNUT04gUk9BRAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTExICAgKGhleCkJCU5PUk1FUkVMIFNZU1RFTUVTCiswMDAwMTEgICAgIChiYXNlIDE2KQkJTk9STUVSRUwgU1lTVEVNRVMKKwkJCQk1OCBSVUUgUE9UVElFUgorCQkJCTc4MTUwIExFIENIRVNOQVkKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDAtMTIgICAoaGV4KQkJSU5GT1JNQVRJT04gVEVDSE5PTE9HWSBMSU1JVEVECiswMDAwMTIgICAgIChiYXNlIDE2KQkJSU5GT1JNQVRJT04gVEVDSE5PTE9HWSBMSU1JVEVECisJCQkJTUFZTEFORFMgQVZFLiBIRU1FTCBIRU1QU1RFQUQKKwkJCQlIRVJUUyBFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtMTMgICAoaGV4KQkJQ0FNRVgKKzAwMDAxMyAgICAgKGJhc2UgMTYpCQlDQU1FWAorCQkJCTc1IEtORUVMQU5EIFNUUkVFVAorCQkJCUJPU1RPTiBNQSAwMjExMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMTQgICAoaGV4KQkJTkVUUk9OSVgKKzAwMDAxNCAgICAgKGJhc2UgMTYpCQlORVRST05JWAorCQkJCTEzNzIgTUNET1dFTEwgQkxWRC4KKwkJCQlQRVRVTEFNQSBDQSA5NDk1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMTUgICAoaGV4KQkJREFUQVBPSU5UIENPUlBPUkFUSU9OCiswMDAwMTUgICAgIChiYXNlIDE2KQkJREFUQVBPSU5UIENPUlBPUkFUSU9OCisJCQkJOTcyNSBEQVRBUE9JTlQgRFJJVkUKKwkJCQlNUyBTLTM3CisJCQkJU0FOIEFOVE9OSU8gVFggNzgyODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTE2ICAgKGhleCkJCURVIFBPTlQgUElYRUwgU1lTVEVNUyAgICAgLgorMDAwMDE2ICAgICAoYmFzZSAxNikJCURVIFBPTlQgUElYRUwgU1lTVEVNUyAgICAgLgorCQkJCU1FQURMQUtFIFBMQUNFCisJCQkJVEhPUlBFIExFQSBST0FEIEVHSEFNLCBTVVJSRVkgVFcyMCA4SEUKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtMTcgICAoaGV4KQkJVEVLRUxFQworMDAwMDE3ICAgICAoYmFzZSAxNikJCVRFS0VMRUMKKwkJCQkyNjU0MCBBR09VUkEgUk9BRAorCQkJCUNBTEFCQVNBUyBDQSA5MTMwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMTggICAoaGV4KQkJV0VCU1RFUiBDT01QVVRFUiBDT1JQT1JBVElPTgorMDAwMDE4ICAgICAoYmFzZSAxNikJCVdFQlNURVIgQ09NUFVURVIgQ09SUE9SQVRJT04KKwkJCQkxNjA0MCBSRURXT09EIExPREdFIFJPQUQKKwkJCQlMT1MgR0FUT1MgQ0EgOTUwMzMtOTI2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMTkgICAoaGV4KQkJQVBQTElFRCBEWU5BTUlDUyBJTlRFUk5BVElPTkFMCiswMDAwMTkgICAgIChiYXNlIDE2KQkJQVBQTElFRCBEWU5BTUlDUyBJTlRFUk5BVElPTkFMCisJCQkJMzgwMCBTVE9ORSBTQ0hPT0wgUk9BRAorCQkJCUFOTiBBUkJPUiBNSSA0ODEwNC0yNDk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0xQSAgIChoZXgpCQlBRFZBTkNFRCBNSUNSTyBERVZJQ0VTCiswMDAwMUEgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgTUlDUk8gREVWSUNFUworCQkJCVAuTy4gQk9YIDM0NTMKKwkJCQlNL1MgMjYKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTFCICAgKGhleCkJCU5PVkVMTCBJTkMuCiswMDAwMUIgICAgIChiYXNlIDE2KQkJTk9WRUxMIElOQy4KKwkJCQkxMjIgRUFTVCAxNzAwIFNPVVRICisJCQkJTS9TOiBFLTEyLTEKKwkJCQlQUk9WTyBVVCA4NDYwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMUMgICAoaGV4KQkJQkVMTCBURUNITk9MT0dJRVMKKzAwMDAxQyAgICAgKGJhc2UgMTYpCQlCRUxMIFRFQ0hOT0xPR0lFUworCQkJCTMzMCBXQVJSRU4gQVZFTlVFCisJCQkJRlJFTU9OVCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMUQgICAoaGV4KQkJQ0FCTEVUUk9OIFNZU1RFTVMsIElOQy4KKzAwMDAxRCAgICAgKGJhc2UgMTYpCQlDQUJMRVRST04gU1lTVEVNUywgSU5DLgorCQkJCTM1IElORFVTVFJJQUwgV0FZCisJCQkJUC5PLiBCT1ggNTAwNQorCQkJCVJPQ0hFU1RFUiBOSCAwMzg2NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMUUgICAoaGV4KQkJVEVMU0lTVCBJTkRVU1RSSUEgRUxFQ1RST05JQ0EKKzAwMDAxRSAgICAgKGJhc2UgMTYpCQlURUxTSVNUIElORFVTVFJJQSBFTEVDVFJPTklDQQorCQkJCVJVQSBWSUxIRU5BIERFIE1PUkFFUywgMzgwCisJCQkJQkFSUkEgREEgVElKVUNBIFJJTyBERSBKQU5FSVJPLCBSSiBDRVAgMgorCQkJCUJSQVpJTAorCQkJCUJSQVpJTAorCiswMC0wMC0xRiAgIChoZXgpCQlUZWxjbyBTeXN0ZW1zLCBJbmMuCiswMDAwMUYgICAgIChiYXNlIDE2KQkJVGVsY28gU3lzdGVtcywgSW5jLgorCQkJCTE1IEJlcmtzaGlyZSBSb2FkCisJCQkJTWFuc2ZpZWxkIE1BIDAyMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0yMCAgIChoZXgpCQlEQVRBSU5EVVNUUklFUiBESUFCIEFCCiswMDAwMjAgICAgIChiYXNlIDE2KQkJREFUQUlORFVTVFJJRVIgRElBQiBBQgorCQkJCUJPWCAyMDI5CisJCQkJUy0xODMgMDIgVEFCWQorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC0wMC0yMSAgIChoZXgpCQlTVVJFTUFOIENPTVAuICYgQ09NTVVOLiBDT1JQLgorMDAwMDIxICAgICAoYmFzZSAxNikJCVNVUkVNQU4gQ09NUC4gJiBDT01NVU4uIENPUlAuCisJCQkJMTBGLTUgTk8uIDcsICBTRUMuIDMKKwkJCQlIU0lOIFNIRU5HIE4uIFJELiwKKwkJCQlUQUlQRUkgVEFJV0FOLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAwLTIyICAgKGhleCkJCVZJU1VBTCBURUNITk9MT0dZIElOQy4KKzAwMDAyMiAgICAgKGJhc2UgMTYpCQlWSVNVQUwgVEVDSE5PTE9HWSBJTkMuCisJCQkJMTcwMyBNSURETEVTRVggU1RSRUVUCisJCQkJTE9XRUxMIE1BIDAxODUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0yMyAgIChoZXgpCQlBQkIgSU5EVVNUUklBTCBTWVNURU1TIEFCCiswMDAwMjMgICAgIChiYXNlIDE2KQkJQUJCIElORFVTVFJJQUwgU1lTVEVNUyBBQgorCQkJCURFUFQuIFNFSVNZL0xLU0IKKwkJCQlTLTcyMSA2NyBWQVNURVJBUworCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC0wMC0yNCAgIChoZXgpCQlDT05ORUNUIEFTCiswMDAwMjQgICAgIChiYXNlIDE2KQkJQ09OTkVDVCBBUworCQkJCUhPRVJLQUVSIDctOQorCQkJCURLIDI3MzAgSEVSTEVWCisJCQkJREVOTUFSSworCQkJCURFTk1BUksKKworMDAtMDAtMjUgICAoaGV4KQkJUkFNVEVLIENPUlAuCiswMDAwMjUgICAgIChiYXNlIDE2KQkJUkFNVEVLIENPUlAuCisJCQkJODEwIFcuIE1BVURFIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMjYgICAoaGV4KQkJU0hBLUtFTiBDTy4sIExURC4KKzAwMDAyNiAgICAgKGJhc2UgMTYpCQlTSEEtS0VOIENPLiwgTFRELgorCQkJCU1JTkFNSS1PVFNVS0EKKwkJCQkyLTI2LTEzLCBUT1NISU1BLUtVCisJCQkJVE9LWU8gSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC0yNyAgIChoZXgpCQlKQVBBTiBSQURJTyBDT01QQU5ZCiswMDAwMjcgICAgIChiYXNlIDE2KQkJSkFQQU4gUkFESU8gQ09NUEFOWQorCQkJCUxBQk9SQVRPUlkKKwkJCQk1LTEtMSBTSElNT1JFTkpBS1UgTUlUQUtBLVNISSwgVE9LWU8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLTI4ICAgKGhleCkJCVBST0RJR1kgU1lTVEVNUyBDT1JQT1JBVElPTgorMDAwMDI4ICAgICAoYmFzZSAxNikJCVBST0RJR1kgU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCTI2MDEgQ0FTRVkgRFJJVkUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0yOSAgIChoZXgpCQlJTUMgTkVUV09SS1MgQ09SUC4KKzAwMDAyOSAgICAgKGJhc2UgMTYpCQlJTUMgTkVUV09SS1MgQ09SUC4KKwkJCQkxNjkzMSBNSUxMSUtFTiBBVkUuCisJCQkJSVJWSU5FIENBIDkyNzE0LTUwMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTJBICAgKGhleCkJCVRSVyAtIFNFREQvSU5QCiswMDAwMkEgICAgIChiYXNlIDE2KQkJVFJXIC0gU0VERC9JTlAKKwkJCQkxODAwIEdMRU5OIENVUlRJU1MgU1RSRUVUCisJCQkJTS9TIERINi8yODI2CisJCQkJQ0FSU09OIENBIDkwNzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0yQiAgIChoZXgpCQlDUklTUCBBVVRPTUFUSU9OLCBJTkMKKzAwMDAyQiAgICAgKGJhc2UgMTYpCQlDUklTUCBBVVRPTUFUSU9OLCBJTkMKKwkJCQk1MTYwIEJMQVpFUiBQQVJLV0FZCisJCQkJRFVCTElOIE9IIDQzMDE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0yQyAgIChoZXgpCQlBVVRPVE9URSBMSU1JVEVECiswMDAwMkMgICAgIChiYXNlIDE2KQkJQVVUT1RPVEUgTElNSVRFRAorCQkJCTEwMCBCRUxMRVZVRSBST0FECisJCQkJTkVXQVJLIERFTEFXQVJFIDE5NzE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0yRCAgIChoZXgpCQlDSFJPTUFUSUNTIElOQworMDAwMDJEICAgICAoYmFzZSAxNikJCUNIUk9NQVRJQ1MgSU5DCisJCQkJMjU1OCBNT1VOVEFJTiBJTkRVU1RSSUFMIEJMVkQKKwkJCQlUVUNLRVIgR0EgMzAwODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTJFICAgKGhleCkJCVNPQ0lFVEUgRVZJUkEKKzAwMDAyRSAgICAgKGJhc2UgMTYpCQlTT0NJRVRFIEVWSVJBCisJCQkJWk9ORSBQT1JUVUFJUkUgREUgQlJFR0FJTExPTgorCQkJCTgzNTAwIExBIFNFWU5FIFNVUiBNRVIKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDAtMkYgICAoaGV4KQkJVElNRVBMRVggSU5DLgorMDAwMDJGICAgICAoYmFzZSAxNikJCVRJTUVQTEVYIElOQy4KKwkJCQk1MzAgQ0hFU1ROVVQgUklER0UgUk9BRAorCQkJCVdPT0RDTElGRiBMQUtFIE5KIDA3Njc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0zMCAgIChoZXgpCQlWRyBMQUJPUkFUT1JZIFNZU1RFTVMgTFRECiswMDAwMzAgICAgIChiYXNlIDE2KQkJVkcgTEFCT1JBVE9SWSBTWVNURU1TIExURAorCQkJCVRSSUJVTkUgQVZFTlVFCisJCQkJQUxUUklOQ0hBTSwgTUFOQ0hFU1RFUiwgV0ExNCA1VFAKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtMzEgICAoaGV4KQkJUVBTWCBDT01NVU5JQ0FUSU9OUyBQVFkgTFRECiswMDAwMzEgICAgIChiYXNlIDE2KQkJUVBTWCBDT01NVU5JQ0FUSU9OUyBQVFkgTFRECisJCQkJMzMgUklDSEFSRFNPTiBTVFJFRVQKKwkJCQlXRVNUIFBFUlRIIDYwMDUKKwkJCQlXRVNURVJOIEFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC0wMC0zMiAgIChoZXgpCQlNYXJjb25pIHBsYworMDAwMDMyICAgICAoYmFzZSAxNikJCU1hcmNvbmkgcGxjCisJCQkJMjggRUxTVFJFRSBXQVksIEJPUkVIQU1XT09ECisJCQkJSEVSVEZPUkRTSElSRSBXRDYgMVJYCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC0zMyAgIChoZXgpCQlFR0FOIE1BQ0hJTkVSWSBDT01QQU5ZCiswMDAwMzMgICAgIChiYXNlIDE2KQkJRUdBTiBNQUNISU5FUlkgQ09NUEFOWQorCQkJCVNPVVRIIEFEQU1TVklMTEUgUk9BRAorCQkJCVNPTU1FUlZJTExFIE5KIDA4ODc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0zNCAgIChoZXgpCQlORVRXT1JLIFJFU09VUkNFUyBDT1JQT1JBVElPTgorMDAwMDM0ICAgICAoYmFzZSAxNikJCU5FVFdPUksgUkVTT1VSQ0VTIENPUlBPUkFUSU9OCisJCQkJNjEgRUFTVCBEQUdHRVRUIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTM1ICAgKGhleCkJCVNQRUNUUkFHUkFQSElDUyBDT1JQT1JBVElPTgorMDAwMDM1ICAgICAoYmFzZSAxNikJCVNQRUNUUkFHUkFQSElDUyBDT1JQT1JBVElPTgorCQkJCSAgICBPUgorCQkJCUxBTiBNQU5VRkFDVFVSSU5HIEVOR0lORUVSIDk3MDcgV0FQTEVTIFMKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTM2ICAgKGhleCkJCUFUQVJJIENPUlBPUkFUSU9OCiswMDAwMzYgICAgIChiYXNlIDE2KQkJQVRBUkkgQ09SUE9SQVRJT04KKwkJCQkxMTk2IEJPUlJFR0FTIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMzcgICAoaGV4KQkJT1hGT1JEIE1FVFJJQ1MgTElNSVRFRAorMDAwMDM3ICAgICAoYmFzZSAxNikJCU9YRk9SRCBNRVRSSUNTIExJTUlURUQKKwkJCQlVTklUIDgsIDcgV0VTVCBXQVksCisJCQkJQk9UTEVZLE9YRk9SRCwgT1gyIE9KQgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtMzggICAoaGV4KQkJQ1NTIExBQlMKKzAwMDAzOCAgICAgKGJhc2UgMTYpCQlDU1MgTEFCUworCQkJCTIxMzQgU09VVEggUklQQ0hFWQorCQkJCVNBTlRBIEFOQSBDQSA5MjcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMzkgICAoaGV4KQkJVE9TSElCQSBDT1JQT1JBVElPTgorMDAwMDM5ICAgICAoYmFzZSAxNikJCVRPU0hJQkEgQ09SUE9SQVRJT04KKwkJCQlDT01QVVRFUiBESVZJU0lPTgorCQkJCTEtMS0xIFNISUJBVVJBLCBNSU5BVE8tS1UKKwkJCQlUT0tZTyAxMDUgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC0zQSAgIChoZXgpCQlDSFlST04gQ09SUE9SQVRJT04KKzAwMDAzQSAgICAgKGJhc2UgMTYpCQlDSFlST04gQ09SUE9SQVRJT04KKwkJCQkyNjUgU1BBR05PTEkgUk9BRAorCQkJCU1FTFZJTExFIE5ZIDExNzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0zQiAgIChoZXgpCQlpIENvbnRyb2xzLCBJbmMuCiswMDAwM0IgICAgIChiYXNlIDE2KQkJaSBDb250cm9scywgSW5jLgorCQkJCTEyRiBEb29uc2FuIGJ1aWxkaW5nLCAxMDUtNworCQkJCU5vbmh5dW4tZG9uZywgR2FuZ25hbS1ndSBTZW91bAorCQkJCUtPUkVBIDEzNS03MTQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDAtM0MgICAoaGV4KQkJQVVTUEVYIFNZU1RFTVMgSU5DLgorMDAwMDNDICAgICAoYmFzZSAxNikJCUFVU1BFWCBTWVNURU1TIElOQy4KKwkJCQk1MjAwIEdSRUFUIEFNRVJJQ0EgUEtXWQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0zRCAgIChoZXgpCQlVTklTWVMKKzAwMDAzRCAgICAgKGJhc2UgMTYpCQlVTklTWVMKKwkJCQlNUzgtMDEwCisJCQkJUC5PLiBCT1ggNjY4NQorCQkJCVNBTiBKT1NFIENBIDk1MTUwLTY2ODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTNFICAgKGhleCkJCVNJTVBBQ1QKKzAwMDAzRSAgICAgKGJhc2UgMTYpCQlTSU1QQUNUCisJCQkJOTIxMCBTS1kgUEFSSyBDT1VSVAorCQkJCVNBTiBESUVHTyBDQSA5MjEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtM0YgICAoaGV4KQkJU1lOVFJFWCwgSU5DLgorMDAwMDNGICAgICAoYmFzZSAxNikJCVNZTlRSRVgsIElOQy4KKwkJCQkyNDYgSU5EVVNUUklBTCBXQVkgV0VTVAorCQkJCUVBVE9OVE9XTiBOSiAwNzcyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNDAgICAoaGV4KQkJQVBQTElDT04sIElOQy4KKzAwMDA0MCAgICAgKGJhc2UgMTYpCQlBUFBMSUNPTiwgSU5DLgorCQkJCTQyNTEgUExZTU9VVEggUkQgNDgwMTUKKwkJCQlQTyBCT1ggOTg2CisJCQkJQU5OIEFSQk9SIE1JIDQ4MTA2LTA5ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTQxICAgKGhleCkJCUlDRSBDT1JQT1JBVElPTgorMDAwMDQxICAgICAoYmFzZSAxNikJCUlDRSBDT1JQT1JBVElPTgorCQkJCTE3OTQ1IFNLWVBBUksgQ0lSQ0xFCisJCQkJU1VJVEUgRQorCQkJCUlSVklORSBDQSA5MjcxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNDIgICAoaGV4KQkJTUVUSUVSIE1BTkFHRU1FTlQgU1lTVEVNUyBMVEQuCiswMDAwNDIgICAgIChiYXNlIDE2KQkJTUVUSUVSIE1BTkFHRU1FTlQgU1lTVEVNUyBMVEQuCisJCQkJMyBGT1VOREFUSU9OIFNUUkVFVAorCQkJCUlQU1dJQ0ggIFNVRkZPTEsgIElQNCAxQkcKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtNDMgICAoaGV4KQkJTUlDUk8gVEVDSE5PTE9HWQorMDAwMDQzICAgICAoYmFzZSAxNikJCU1JQ1JPIFRFQ0hOT0xPR1kKKwkJCQk0OTA1IEVBU1QgTEFQQUxNQQorCQkJCUFOQUhFSU0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTQ0ICAgKGhleCkJCUNBU1RFTExFIENPUlBPUkFUSU9OCiswMDAwNDQgICAgIChiYXNlIDE2KQkJQ0FTVEVMTEUgQ09SUE9SQVRJT04KKwkJCQkzMjU1LTMgU0NPVFQgQk9VTEVWQVJECisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTQ1ICAgKGhleCkJCUZPUkQgQUVST1NQQUNFICYgQ09NTS4gQ09SUC4KKzAwMDA0NSAgICAgKGJhc2UgMTYpCQlGT1JEIEFFUk9TUEFDRSAmIENPTU0uIENPUlAuCisJCQkJQ09MT1JBRE8gU1BSSU5HUyBPUEVSQVRJT04KKwkJCQkxMDQ0MCBTVEFURSBISUdIV0FZIDgzCisJCQkJQ09MT1JBRE8gU1BSSU5HUyBDTyA4MDkwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNDYgICAoaGV4KQkJT0xJVkVUVEkgTk9SVEggQU1FUklDQQorMDAwMDQ2ICAgICAoYmFzZSAxNikJCU9MSVZFVFRJIE5PUlRIIEFNRVJJQ0EKKwkJCQlFIDIyNDI1IEFQUExFV0FZCisJCQkJTElCRVJUWSBMQUtFIFdBIDk5MDE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC00NyAgIChoZXgpCQlOSUNPTEVUIElOU1RSVU1FTlRTIENPUlAuCiswMDAwNDcgICAgIChiYXNlIDE2KQkJTklDT0xFVCBJTlNUUlVNRU5UUyBDT1JQLgorCQkJCTUyMjUgVkVST05BIFJPQUQKKwkJCQlNQURJU09OIFdJIDUzNzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC00OCAgIChoZXgpCQlTRUlLTyBFUFNPTiBDT1JQT1JBVElPTgorMDAwMDQ4ICAgICAoYmFzZSAxNikJCVNFSUtPIEVQU09OIENPUlBPUkFUSU9OCisJCQkJODAgSElST09LQSBTSElPSklSSS1DSVRZCisJCQkJTkFHQU5PLUtFTgorCQkJCUpBUEFOIDM5OS0wNworCQkJCUpBUEFOCisKKzAwLTAwLTQ5ICAgKGhleCkJCUFQUklDT1QgQ09NUFVURVJTLCBMVEQKKzAwMDA0OSAgICAgKGJhc2UgMTYpCQlBUFJJQ09UIENPTVBVVEVSUywgTFRECisJCQkJOTAgVklOQ0VOVCBEUklWRQorCQkJCUVER0JBU1RPTiwgQklSTUlOR0hBTSBCMTUyU1AKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtNEEgICAoaGV4KQkJQURDIENPREVOT0xMIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMDA0QSAgICAgKGJhc2UgMTYpCQlBREMgQ09ERU5PTEwgVEVDSE5PTE9HWSBDT1JQLgorCQkJCTIwMCBDT1JQT1JBVEUgQkxWRC4gU08uCisJCQkJWU9OS0VSUyBOWSAxMDcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNEIgICAoaGV4KQkJSUNMIERBVEEgT1kKKzAwMDA0QiAgICAgKGJhc2UgMTYpCQlJQ0wgREFUQSBPWQorCQkJCUtVVE9NT1RJRSAxNi0xOAorCQkJCTAwMzgwIEhFTFNJTktJICBQLk8uIEJPWCA0NTggU0YtMDAxMDEgSEUKKwkJCQlGSU5MQU5ECisJCQkJRklOTEFORAorCiswMC0wMC00QyAgIChoZXgpCQlORUMgQ09SUE9SQVRJT04KKzAwMDA0QyAgICAgKGJhc2UgMTYpCQlORUMgQ09SUE9SQVRJT04KKwkJCQk3LTEgU0hJQkEgIDUtQ0hPTUUKKwkJCQlNSU5BVE8tS1UKKwkJCQlUT0tZTyAxMDgtMDEgIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtNEQgICAoaGV4KQkJRENJIENPUlBPUkFUSU9OCiswMDAwNEQgICAgIChiYXNlIDE2KQkJRENJIENPUlBPUkFUSU9OCisJCQkJNjRKIFBSSU5DRVRPTi1ISUdIVFNUT1dOIFJECisJCQkJIzEyMQorCQkJCVBSSU5DRVRPTiBKVU5DVElPTiBOSiAwODU1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNEUgICAoaGV4KQkJQU1QRVggQ09SUE9SQVRJT04KKzAwMDA0RSAgICAgKGJhc2UgMTYpCQlBTVBFWCBDT1JQT1JBVElPTgorCQkJCTU4MSBDT05GRVJFTkNFIFBMQUNFCisJCQkJR09MREVOIENPIDgwNDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC00RiAgIChoZXgpCQlMT0dJQ1JBRlQsIElOQy4KKzAwMDA0RiAgICAgKGJhc2UgMTYpCQlMT0dJQ1JBRlQsIElOQy4KKwkJCQkyMiBDT1RUT04gUk9BRAorCQkJCU5BU0hVQSBOSCAwMzA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNTAgICAoaGV4KQkJUkFESVNZUyBDT1JQT1JBVElPTgorMDAwMDUwICAgICAoYmFzZSAxNikJCVJBRElTWVMgQ09SUE9SQVRJT04KKwkJCQkxNTAyNSBTLlcuIEtPTEwgUEFSS1dBWQorCQkJCUJFQVZFUlRPTiBPUiA5NzAwNi02MDU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC01MSAgIChoZXgpCQlIT0IgRUxFQ1RST05JQyBHTUJIICYgQ08uIEtHCiswMDAwNTEgICAgIChiYXNlIDE2KQkJSE9CIEVMRUNUUk9OSUMgR01CSCAmIENPLiBLRworCQkJCUJSQU5EU1NUQVRURVItU1RSLjItMTAKKwkJCQlELTg1MDIgWklSTkRPUkYKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMC01MiAgIChoZXgpCQlJbnRydXNpb24uY29tLCBJbmMuCiswMDAwNTIgICAgIChiYXNlIDE2KQkJSW50cnVzaW9uLmNvbSwgSW5jLgorCQkJCTExMDEgRS4gQVJBUEFITyBST0FECisJCQkJUklDSEFSRFNPTiBUWCA3NTA4MQorCiswMC0wMC01MyAgIChoZXgpCQlDT01QVUNPUlAKKzAwMDA1MyAgICAgKGJhc2UgMTYpCQlDT01QVUNPUlAKKwkJCQkyMjExIE1JQ0hJR0FOIEFWRU5VRQorCQkJCVNBTlRBIE1PTklDQSBDQSA5MDQwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNTQgICAoaGV4KQkJTU9ESUNPTiwgSU5DLgorMDAwMDU0ICAgICAoYmFzZSAxNikJCU1PRElDT04sIElOQy4KKwkJCQlPTkUgSElHSCBTVFJFRVQKKwkJCQlOT1JUSCBBTkRPVkVSIE1BIDAxODQ1LTI2OTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTU1ICAgKGhleCkJCUNPTU1JU1NBUklBVCBBIExgRU5FUkdJRSBBVE9NLgorMDAwMDU1ICAgICAoYmFzZSAxNikJCUNPTU1JU1NBUklBVCBBIExgRU5FUkdJRSBBVE9NLgorCQkJCTMxLCBSVUUgREUgTEEgRkVERVJBVElPTgorCQkJCVBBUklTIDc1MDE1CisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAwLTU2ICAgKGhleCkJCURSLiBCLiBTVFJVQ0sKKzAwMDA1NiAgICAgKGJhc2UgMTYpCQlEUi4gQi4gU1RSVUNLCisJCQkJUE9CIDExNDcgQkFFQ0tFUkJBUkcgNgorCQkJCUQtMjAwMCBUQU5HU1RFRFQvSEFNQlVSRworCQkJCVctR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDAtNTcgICAoaGV4KQkJU0NJVEVYIENPUlBPUkFUSU9OIExURC4KKzAwMDA1NyAgICAgKGJhc2UgMTYpCQlTQ0lURVggQ09SUE9SQVRJT04gTFRELgorCQkJCVAuTy4gQk9YIDMzMAorCQkJCTQ2MTAzIEhFUlpMSUEgQgorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wMC01OCAgIChoZXgpCQlSQUNPUkUgQ09NUFVURVIgUFJPRFVDVFMgSU5DLgorMDAwMDU4ICAgICAoYmFzZSAxNikJCVJBQ09SRSBDT01QVVRFUiBQUk9EVUNUUyBJTkMuCisJCQkJMjM1NSBTT1VUSCAxMDcwIFdFU1QKKwkJCQlTQUxUIExBS0UgQ0lUWSBVVCA4NDExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNTkgICAoaGV4KQkJSEVMTElHRSBHTUJICiswMDAwNTkgICAgIChiYXNlIDE2KQkJSEVMTElHRSBHTUJICisJCQkJRS1TVworCQkJCUhFSU5SSUNILVZPTi1TVEVGQU4tU1RSLjQgRC03ODAwIEZSRUlCVVIKKwkJCQlXRVNUIEdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAwLTVBICAgKGhleCkJCVN5c0tvbm5lY3QgR21iSAorMDAwMDVBICAgICAoYmFzZSAxNikJCVN5c0tvbm5lY3QgR21iSAorCQkJCVNJRU1FTlNTVFJBU1NFIDIzCisJCQkJNzYyNzUgRVRUTElOR0VOCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDAtNUIgICAoaGV4KQkJRUxURUMgRUxFS1RST05JSyBBRworMDAwMDVCICAgICAoYmFzZSAxNikJCUVMVEVDIEVMRUtUUk9OSUsgQUcKKwkJCQlHYWxpbGVvLUdhbGlsZWktU3RyYXNzZSAxMQorCQkJCVBPQiA0MiAxMyA2MyBELTU1MDcxIE1BSU5aCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDAtNUMgICAoaGV4KQkJVEVMRU1BVElDUyBJTlRFUk5BVElPTkFMIElOQy4KKzAwMDA1QyAgICAgKGJhc2UgMTYpCQlURUxFTUFUSUNTIElOVEVSTkFUSU9OQUwgSU5DLgorCQkJCTEyMDEgQ1lQUkVTUyBDUkVFSyBSRAorCQkJCUZULiBMQVVERVJEQUxFIEZMIDMzMzA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC01RCAgIChoZXgpCQlDUyBURUxFQ09NCiswMDAwNUQgICAgIChiYXNlIDE2KQkJQ1MgVEVMRUNPTQorCQkJCTQtMTYgQVZFTlVFIERVIEdFTkVSQUwgTEVDTEVSQworCQkJCUJQIDc0IC0gOTIyNjMgRk9OVEVOQVkgQVVYIFJPU0VTCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAwLTVFICAgKGhleCkJCVVTQyBJTkZPUk1BVElPTiBTQ0lFTkNFUyBJTlNUCiswMDAwNUUgICAgIChiYXNlIDE2KQkJVVNDIElORk9STUFUSU9OIFNDSUVOQ0VTIElOU1QKKwkJCQlJTlRFUk5FVCBBU1MnTkVEIE5PUy5BVVRIT1JJVFkKKwkJCQk0Njc2IEFETUlSQUxUWSBXQVkKKwkJCQlNQVJJTkEgREVMIFJFWSBDQSA5MDI5Mi02Njk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC01RiAgIChoZXgpCQlTVU1JVE9NTyBFTEVDVFJJQyBJTkQuLCBMVEQuCiswMDAwNUYgICAgIChiYXNlIDE2KQkJU1VNSVRPTU8gRUxFQ1RSSUMgSU5ELiwgTFRELgorCQkJCTEtMS0zLCBTSElNQVlBCisJCQkJS09OT0hBTkEtS1UgT1NBS0EKKwkJCQk1NTQgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC02MCAgIChoZXgpCQlLT05UUk9OIEVMRUtUUk9OSUsgR01CSAorMDAwMDYwICAgICAoYmFzZSAxNikJCUtPTlRST04gRUxFS1RST05JSyBHTUJICisJCQkJT1NLQVItVk9OLU1JTExFUi1TVFIuIDEKKwkJCQlELTg1Mzg1IEVDSElORworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAwLTYxICAgKGhleCkJCUdBVEVXQVkgQ09NTVVOSUNBVElPTlMKKzAwMDA2MSAgICAgKGJhc2UgMTYpCQlHQVRFV0FZIENPTU1VTklDQVRJT05TCisJCQkJMjk0MSBBTFRPTiBBVkVOVUUKKwkJCQlJUlZJTkUgQ0EgOTI3MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTYyICAgKGhleCkJCUJVTEwgSE4gSU5GT1JNQVRJT04gU1lTVEVNUworMDAwMDYyICAgICAoYmFzZSAxNikJCUJVTEwgSE4gSU5GT1JNQVRJT04gU1lTVEVNUworCQkJCTMwMCBDT05DT1JEIFJPQUQgTS9TIDg2NEEKKwkJCQlCSUxMRVJJQ0EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTYzICAgKGhleCkJCUJBUkNPIENPTlRST0wgUk9PTVMgR01CSAorMDAwMDYzICAgICAoYmFzZSAxNikJCUJBUkNPIENPTlRST0wgUk9PTVMgR01CSAorCQkJCUFuIGRlciBSb3Nzd2VpZCA1CisJCQkJS2FybHNydWhlICBELTc2MjI5CisJCQkJR0VSTUFOWQorCiswMC0wMC02NCAgIChoZXgpCQlZT0tPR0FXQSBESUdJVEFMIENPTVBVVEVSIENPUlAKKzAwMDA2NCAgICAgKGJhc2UgMTYpCQlZT0tPR0FXQSBESUdJVEFMIENPTVBVVEVSIENPUlAKKwkJCQlTSSBIRUFEUVVBUlRFUlMgRElWSVNJT04KKwkJCQlOTy4gMjUgS09XQSBCTERHIDgtNyBTQU5CQU5DSE8gQ0hJWU9EQS1LCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC02NSAgIChoZXgpCQlOZXR3b3JrIEdlbmVyYWwgQ29ycG9yYXRpb24KKzAwMDA2NSAgICAgKGJhc2UgMTYpCQlOZXR3b3JrIEdlbmVyYWwgQ29ycG9yYXRpb24KKwkJCQkxNzggRSBUc2FtYW4gRHIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNjYgICAoaGV4KQkJVEFMQVJJUyBTWVNURU1TLCBJTkMuCiswMDAwNjYgICAgIChiYXNlIDE2KQkJVEFMQVJJUyBTWVNURU1TLCBJTkMuCisJCQkJMTEzMzkgU09SUkVOVE8gVkFMTEVZIFJPQUQKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTY3ICAgKGhleCkJCVNPRlQgKiBSSVRFLCBJTkMuCiswMDAwNjcgICAgIChiYXNlIDE2KQkJU09GVCAqIFJJVEUsIElOQy4KKwkJCQkxNTM5MiBBU1NFTUJMWSBMQU5FLCBVTklUIEEKKwkJCQlIVU5USU5HVE9OIEJFQUNIIENBIDkyNjQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC02OCAgIChoZXgpCQlST1NFTU9VTlQgQ09OVFJPTFMKKzAwMDA2OCAgICAgKGJhc2UgMTYpCQlST1NFTU9VTlQgQ09OVFJPTFMKKwkJCQkxMzAwIEUuIExBTUJFUlQgUk9BRAorCQkJCUxBIEhBQlJBIENBIDkwNjMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC02OSAgIChoZXgpCQlDT05DT1JEIENPTU1VTklDQVRJT05TIElOQworMDAwMDY5ICAgICAoYmFzZSAxNikJCUNPTkNPUkQgQ09NTVVOSUNBVElPTlMgSU5DCisJCQkJNzUzIEZPUkVTVCBTVFJFRVQKKwkJCQlNQVJMQk9ST1VHSCBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNkEgICAoaGV4KQkJQ09NUFVURVIgQ09OU09MRVMgSU5DLgorMDAwMDZBICAgICAoYmFzZSAxNikJCUNPTVBVVEVSIENPTlNPTEVTIElOQy4KKwkJCQlDT01QVVRFUiBQUk9EVUNUUyBESVZJU0lPTgorCQkJCTk4MDEgTVVJUkxBTkRTIEJMVkQuCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC02QiAgIChoZXgpCQlTSUxJQ09OIEdSQVBISUNTIElOQy4vTUlQUworMDAwMDZCICAgICAoYmFzZSAxNikJCVNJTElDT04gR1JBUEhJQ1MgSU5DLi9NSVBTCisJCQkJMjAxMSBOT1JUSCBTSE9SRUxJTkUgQkxWRC4KKwkJCQlQLk8uIEJPWCA3MzExIC0gIEJMREcuICMxMAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwMzktNzMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNkMgICAoaGV4KQkJUFJJVkFURQorMDAwMDZDICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wMC02RCAgIChoZXgpCQlDUkFZIENPTU1VTklDQVRJT05TLCBMVEQuCiswMDAwNkQgICAgIChiYXNlIDE2KQkJQ1JBWSBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCVAuTy4gQk9YIDI1NCwgQ0FYVE9OIFdBWQorCQkJCVdBVEZPUkQgQlVTSU5FU1MgUEFSSyBXQVRGT1JEIEhFUlRTICBXRDEKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLTZFICAgKGhleCkJCUFSVElTT0ZULCBJTkMuCiswMDAwNkUgICAgIChiYXNlIDE2KQkJQVJUSVNPRlQsIElOQy4KKwkJCQk2OTEgRUFTVCBSSVZFUiBST0FECisJCQkJVFVDU09OIEFaIDg1NzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC02RiAgIChoZXgpCQlNYWRnZSBMdGQuCiswMDAwNkYgICAgIChiYXNlIDE2KQkJTWFkZ2UgTHRkLgorCQkJCU1hZGdlIEhvdXNlCisJCQkJUHJpb3JzIFdheQorCQkJCU1haW5kZW5oZWFkIEJlcmtzaGlyZSBTTDYgMkhQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtNzAgICAoaGV4KQkJSENMIExJTUlURUQKKzAwMDA3MCAgICAgKGJhc2UgMTYpCQlIQ0wgTElNSVRFRAorCQkJCVJFU0VBUkNIICYgREVWRUxPUE1FTlQgVU5JVAorCQkJCTcyLCBMVVogQ0hVUkNIIFJPQUQgTUFEUlNBLTYwMCAwMDQKKwkJCQlJTkRJQQorCQkJCUlORElBCisKKzAwLTAwLTcxICAgKGhleCkJCUFEUkEgU1lTVEVNUyBJTkMuCiswMDAwNzEgICAgIChiYXNlIDE2KQkJQURSQSBTWVNURU1TIElOQy4KKwkJCQk1OSBURUNITk9MT0dZIERSSVZFCisJCQkJTE9XRUxMIE1BIDAxODUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC03MiAgIChoZXgpCQlNSU5JV0FSRSBURUNITk9MT0dZCiswMDAwNzIgICAgIChiYXNlIDE2KQkJTUlOSVdBUkUgVEVDSE5PTE9HWQorCQkJCUJFRU1ERU5TVFJBQVQgMzgKKwkJCQk1MDA0IENUIFdFRVJUIChMKQorCQkJCVRIRSBORVRIRVJMQU5EUworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTAwLTczICAgKGhleCkJCVNJRUNPUiBDT1JQT1JBVElPTgorMDAwMDczICAgICAoYmFzZSAxNikJCVNJRUNPUiBDT1JQT1JBVElPTgorCQkJCVAuTy4gQk9YIDEzNjI1CisJCQkJUkVTRUFSQ0ggVFJJQU5HTEUgUEsgTkMgMjc3MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTc0ICAgKGhleCkJCVJJQ09IIENPTVBBTlkgTFRELgorMDAwMDc0ICAgICAoYmFzZSAxNikJCVJJQ09IIENPTVBBTlkgTFRELgorCQkJCTI0NDYgVE9EQSwgQVRTVUdJIENJVFkKKwkJCQlLQU5BR0FXQSBQUkVGLiwKKwkJCQkyNDMgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC03NSAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMDA3NSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlHbG9iYWwgT3BlcmF0aW9ucyBFbmdpbmVlcmluZworCQkJCURlcCA2ODAwIFByb2dyYW0gTWFuYWdlciA4MjAwIERpeGllIFJvYWQKKwkJCQlCcmFtcHRvbiBPTiBsNlQgNVA2IENhbmEKKwkJCQlDQU5BREEKKworMDAtMDAtNzYgICAoaGV4KQkJQUJFS0FTIFZJREVPIFNZU1RFTQorMDAwMDc2ICAgICAoYmFzZSAxNikJCUFCRUtBUyBWSURFTyBTWVNURU0KKwkJCQkxMDEgR0FMVkVTVE9OIERSSVZFCisJCQkJUkVEV09PRCBDSVRZIENBIDk0MDYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC03NyAgIChoZXgpCQlJTlRFUlBIQVNFIENPUlBPUkFUSU9OCiswMDAwNzcgICAgIChiYXNlIDE2KQkJSU5URVJQSEFTRSBDT1JQT1JBVElPTgorCQkJCTEzODAwIFNFTkxBQworCQkJCURBTExBUyBUWCA3NTIzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNzggICAoaGV4KQkJTEFCVEFNIExJTUlURUQKKzAwMDA3OCAgICAgKGJhc2UgMTYpCQlMQUJUQU0gTElNSVRFRAorCQkJCTQzIE1BTENPTE0gUk9BRCAgIFAuTy4gQk9YMjk3CisJCQkJQlJBRVNJREUsIFZJQ1RPUklBIDMxOTUKKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtMDAtNzkgICAoaGV4KQkJTkVUV09SVEggSU5DT1JQT1JBVEVECiswMDAwNzkgICAgIChiYXNlIDE2KQkJTkVUV09SVEggSU5DT1JQT1JBVEVECisJCQkJODQwNCBFU1RFUlMgQk9VTEVWQVJECisJCQkJSVJWSU5HIFRYIDc1MDYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC03QSAgIChoZXgpCQlEQU5BIENPTVBVVEVSIElOQy4KKzAwMDA3QSAgICAgKGJhc2UgMTYpCQlEQU5BIENPTVBVVEVSIElOQy4KKwkJCQk1NTAgREVMIFJFWSBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTdCICAgKGhleCkJCVJFU0VBUkNIIE1BQ0hJTkVTCiswMDAwN0IgICAgIChiYXNlIDE2KQkJUkVTRUFSQ0ggTUFDSElORVMKKwkJCQlQLk8uIEJPWCA3NQorCQkJCU1JTEwgU1RSRUVUIE9YRk9SRCAgT1gyIDBCVworCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC03QyAgIChoZXgpCQlBTVBFUkUgSU5DT1JQT1JBVEVECiswMDAwN0MgICAgIChiYXNlIDE2KQkJQU1QRVJFIElOQ09SUE9SQVRFRAorCQkJCVNISU5KVUtVIEFTQUhJIEJMREcuCisJCQkJNS0yMCAgNy1DSE9NRSBOSVNISS1TSElOSlVLVSAgU0hJTkpVS1UtSworCQkJCVRPS1lPIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtN0QgICAoaGV4KQkJT3JhY2xlIENvcnBvcmF0aW9uCiswMDAwN0QgICAgIChiYXNlIDE2KQkJT3JhY2xlIENvcnBvcmF0aW9uCisJCQkJMTcgTmV0d29yayBDaXJjbGUKKwkJCQlCdWlsZGluZyAxNywgVU1QSzE3LTEzMQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC03RSAgIChoZXgpCQlDTFVTVFJJWCBDT1JQT1JBVElPTgorMDAwMDdFICAgICAoYmFzZSAxNikJCUNMVVNUUklYIENPUlBPUkFUSU9OCisJCQkJOTYwIEhBTUxJTiBDT1VSVAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtN0YgICAoaGV4KQkJTElOT1RZUEUtSEVMTCBBRworMDAwMDdGICAgICAoYmFzZSAxNikJCUxJTk9UWVBFLUhFTEwgQUcKKwkJCQlQT1NURkFDSCA1NiA2MAorCQkJCU1FUkdFTlRIQUxFUiBBTExFRSA1NS03NSA2MjM2IEVTQ0hCT1JOIEIKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMC04MCAgIChoZXgpCQlDUkFZIENPTU1VTklDQVRJT05TIEEvUworMDAwMDgwICAgICAoYmFzZSAxNikJCUNSQVkgQ09NTVVOSUNBVElPTlMgQS9TCisJCQkJU01FREVIT0xNIDEyLTE0CisJCQkJMjczMCBIRVJMRVYKKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswMC0wMC04MSAgIChoZXgpCQlCQVkgTkVUV09SS1MKKzAwMDA4MSAgICAgKGJhc2UgMTYpCQlCQVkgTkVUV09SS1MKKwkJCQk0NDAxIEdSRUFUIEFNRVJJQ0FOIFBBUktXQVkKKwkJCQlQTyBCT1ggNTgxODUgTS9TIFNDMDEtMDUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1Mi04MTg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC04MiAgIChoZXgpCQlMRUNUUkEgU1lTVEVNRVMgU0EKKzAwMDA4MiAgICAgKGJhc2UgMTYpCQlMRUNUUkEgU1lTVEVNRVMgU0EKKwkJCQlDSEVNSU4gREUgTUFSVElDT1QKKwkJCQlSRVNFQVJDSCBERVBBUlRNRU5UIDMzNjEwIENFU1RBUworCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMC04MyAgIChoZXgpCQlUQURQT0xFIFRFQ0hOT0xPR1kgUExDCiswMDAwODMgICAgIChiYXNlIDE2KQkJVEFEUE9MRSBURUNITk9MT0dZIFBMQworCQkJCTEzNyBESVRUT04gV0FMSworCQkJCUNBTUJSSURHRSBDQjUgOEZOCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLTg0ICAgKGhleCkJCVNVUEVSTkVUCiswMDAwODQgICAgIChiYXNlIDE2KQkJU1VQRVJORVQKKwkJCQk4NDYgREVMIFJFWSBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTg1ICAgKGhleCkJCUNBTk9OIElOQy4KKzAwMDA4NSAgICAgKGJhc2UgMTYpCQlDQU5PTiBJTkMuCisJCQkJRFZURUNILiBERVYuIENFTlRFUiBERVBULjEyCisJCQkJMy0zMC0yLCBTSElNT01BUlVLTywgT0hUQS1LVSBUT0tZTyAxNDYKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLTg2ICAgKGhleCkJCU1FR0FIRVJUWiBDT1JQT1JBVElPTgorMDAwMDg2ICAgICAoYmFzZSAxNikJCU1FR0FIRVJUWiBDT1JQT1JBVElPTgorCQkJCTYwNSBOT1JUSC0tNTYwMCBXRVNUCisJCQkJU0FMVCBMQUtFIENJVFkgVVQgODQxMTYtMzczOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtODcgICAoaGV4KQkJSElUQUNISSwgTFRELgorMDAwMDg3ICAgICAoYmFzZSAxNikJCUhJVEFDSEksIExURC4KKwkJCQlORVRXT1JLIEVOR0lORUVSSU5HIERJVi4KKwkJCQlISVRBQ0hJIE9NT1JJIDJORCBCTERHLiwgMjctMTggTUlOQU1JIE9JCisJCQkJVE9LWU8gMTQwIAorCQkJCUpBUEFOCisKKzAwLTAwLTg4ICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorMDAwMDg4ICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorCQkJCTE3NDUgVGVjaG5vbG9neSBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtODkgICAoaGV4KQkJQ0FZTUFOIFNZU1RFTVMgSU5DLgorMDAwMDg5ICAgICAoYmFzZSAxNikJCUNBWU1BTiBTWVNURU1TIElOQy4KKwkJCQkyNiBMQU5TRE9XTkUgU1RSRUVUCisJCQkJQ0FNQlJJREdFIE1BIDAyMTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC04QSAgIChoZXgpCQlEQVRBSE9VU0UgSU5GT1JNQVRJT04gU1lTVEVNUworMDAwMDhBICAgICAoYmFzZSAxNikJCURBVEFIT1VTRSBJTkZPUk1BVElPTiBTWVNURU1TCisJCQkJRElSRUNUT1IgT0YgT1BFUkFUSU9OUworCQkJCU1FT04gSE9VU0UsIEVBU1QgVElTVEVEIE5SLiBBTFRPTiwgSEFNUFMKKwkJCQlHVTM0IDNRVyBFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtOEIgICAoaGV4KQkJSU5GT1RST04KKzAwMDA4QiAgICAgKGJhc2UgMTYpCQlJTkZPVFJPTgorCQkJCTkgTk9SVEggT0xORVkKKwkJCQlDSEVSUlkgSElMTCBOSiAwODAwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOEMgICAoaGV4KQkJQWxsb3kgQ29tcHV0ZXIgUHJvZHVjdHMgKEF1c3RyYWxpYSkgUHR5IEx0ZAorMDAwMDhDICAgICAoYmFzZSAxNikJCUFsbG95IENvbXB1dGVyIFByb2R1Y3RzIChBdXN0cmFsaWEpIFB0eSBMdGQKKwkJCQlVbml0IDQvNTg1IEJsYWNrYnVybiBSb2FkCisJCQkJTm90dGluZyBIaWxsIFZpY3RvcmlhIDMxNjgKKwkJCQlBVVNUUkFMSUEKKworMDAtMDAtOEQgICAoaGV4KQkJQ3J5cHRlayBJbmMuCiswMDAwOEQgICAgIChiYXNlIDE2KQkJQ3J5cHRlayBJbmMuCisJCQkJMTUwMSBNb3JhbiBSb2FkCisJCQkJU3RlcmxpbmcgVkEgMjAxNjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLThFICAgKGhleCkJCVNPTEJPVVJORSBDT01QVVRFUiwgSU5DLgorMDAwMDhFICAgICAoYmFzZSAxNikJCVNPTEJPVVJORSBDT01QVVRFUiwgSU5DLgorCQkJCTE5MDAgUElLRSBST0FECisJCQkJTE9OR01PTlQgQ09MT1JBRE8gODA1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLThGICAgKGhleCkJCVJheXRoZW9uCiswMDAwOEYgICAgIChiYXNlIDE2KQkJUmF5dGhlb24KKwkJCQlNL1MgMS0xLTExMTkKKwkJCQkxMDAxIEJvc3RvbiBQb3N0IFJkCisJCQkJTWFybGJvcm8gTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTkwICAgKGhleCkJCU1JQ1JPQ09NCiswMDAwOTAgICAgIChiYXNlIDE2KQkJTUlDUk9DT00KKwkJCQk1MDAgUklWRVIgUklER0UgRFJJVkUKKwkJCQlOT1JXT09EIE1BIDAyMDYyLTUwMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTkxICAgKGhleCkJCUFOUklUU1UgQ09SUE9SQVRJT04KKzAwMDA5MSAgICAgKGJhc2UgMTYpCQlBTlJJVFNVIENPUlBPUkFUSU9OCisJCQkJMTgwMCwgT05OQQorCQkJCUFUVUdJLVNISSBLQU5BR0FXQS1LRU4gMjQzCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC05MiAgIChoZXgpCQlDT0dFTlQgREFUQSBURUNITk9MT0dJRVMKKzAwMDA5MiAgICAgKGJhc2UgMTYpCQlDT0dFTlQgREFUQSBURUNITk9MT0dJRVMKKwkJCQk2NDAgTVVMTElTIFNUUkVFVAorCQkJCUZSSURBWSBIQVJCT1IgV0EgOTgyNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTkzICAgKGhleCkJCVBST1RFT04gSU5DLgorMDAwMDkzICAgICAoYmFzZSAxNikJCVBST1RFT04gSU5DLgorCQkJCTQgVEVDSCBDSVJDTEUKKwkJCQlOQVRJQ0sgTUEgMDE3NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTk0ICAgKGhleCkJCUFTQU5URSBURUNITk9MT0dJRVMKKzAwMDA5NCAgICAgKGJhc2UgMTYpCQlBU0FOVEUgVEVDSE5PTE9HSUVTCisJCQkJODIxIEZPWCBMQU5FCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTk1ICAgKGhleCkJCVNPTlkgVEVLVFJPTklYIENPUlAuCiswMDAwOTUgICAgIChiYXNlIDE2KQkJU09OWSBURUtUUk9OSVggQ09SUC4KKwkJCQlQLk8uIEJPWCA1MjA5IFRPS1lPIElOVCdMCisJCQkJVE9LWU8gMTAwLTMxCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC05NiAgIChoZXgpCQlNQVJDT05JIEVMRUNUUk9OSUNTIExURC4KKzAwMDA5NiAgICAgKGJhc2UgMTYpCQlNQVJDT05JIEVMRUNUUk9OSUNTIExURC4KKwkJCQlCUk9XTlMgTEFORSwgVEhFIEFJUlBPUlQKKwkJCQlQT1JUU01PVVRIIC0tIEhBTVBTSElSRSBQMDMgNVBICisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC05NyAgIChoZXgpCQlFTUMgQ29ycG9yYXRpb24KKzAwMDA5NyAgICAgKGJhc2UgMTYpCQlFTUMgQ29ycG9yYXRpb24KKwkJCQkxNzYgU291dGggU3RyZWV0CisJCQkJSG9wa2ludG9uIE1BIDAxNzQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC05OCAgIChoZXgpCQlDUk9TU0NPTU0gQ09SUE9SQVRJT04KKzAwMDA5OCAgICAgKGJhc2UgMTYpCQlDUk9TU0NPTU0gQ09SUE9SQVRJT04KKwkJCQk0NTAgRE9OQUxEIExZTkNIIEJPVUxFVkFSRAorCQkJCU1BUkxCT1JPVUdIIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC05OSAgIChoZXgpCQlNVFgsIElOQy4KKzAwMDA5OSAgICAgKGJhc2UgMTYpCQlNVFgsIElOQy4KKwkJCQkzMzAxIFRFUk1JTkFMIERSSVZFCisJCQkJUkFMRUlHSCBOQyAyNzYwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOUEgICAoaGV4KQkJUkMgQ09NUFVURVIgQS9TCiswMDAwOUEgICAgIChiYXNlIDE2KQkJUkMgQ09NUFVURVIgQS9TCisJCQkJTEFVVFJVUEJKRVJHIDEKKwkJCQlESy0yNzUwIEJBTExFUlVQCisJCQkJREVOTUFSSworCQkJCURFTk1BUksKKworMDAtMDAtOUIgICAoaGV4KQkJSU5GT1JNQVRJT04gSU5URVJOQVRJT05BTCwgSU5DCiswMDAwOUIgICAgIChiYXNlIDE2KQkJSU5GT1JNQVRJT04gSU5URVJOQVRJT05BTCwgSU5DCisJCQkJNUYuLCBUSEUgN1RIIElORFVTVFJZIEJMREcuCisJCQkJMS0yMC0xNCBKSU5OQU4gU0hJQlVZQS1LVSBUT0tZTworCQkJCUpBUEFOIDE1MAorCQkJCUpBUEFOCisKKzAwLTAwLTlDICAgKGhleCkJCVJPTE0gTUlMLVNQRUMgQ09NUFVURVJTCiswMDAwOUMgICAgIChiYXNlIDE2KQkJUk9MTSBNSUwtU1BFQyBDT01QVVRFUlMKKwkJCQkzMTUxIFpBTktFUiBST0FECisJCQkJU0FOIEpPU0UgQ0EgOTUxNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTlEICAgKGhleCkJCUxPQ1VTIENPTVBVVElORyBDT1JQT1JBVElPTgorMDAwMDlEICAgICAoYmFzZSAxNikJCUxPQ1VTIENPTVBVVElORyBDT1JQT1JBVElPTgorCQkJCTk4MDAgTEEgQ0lFTkVHQQorCQkJCUlOR0xFV09PRCBDQSA5MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOUUgICAoaGV4KQkJTUFSTEkgUy5BLgorMDAwMDlFICAgICAoYmFzZSAxNikJCU1BUkxJIFMuQS4KKwkJCQlDSEVNSU4gVEFWRVJORVkgMworCQkJCTEyMTggR0VORVZBCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wMC05RiAgIChoZXgpCQlBTUVSSVNUQVIgVEVDSE5PTE9HSUVTIElOQy4KKzAwMDA5RiAgICAgKGJhc2UgMTYpCQlBTUVSSVNUQVIgVEVDSE5PTE9HSUVTIElOQy4KKwkJCQk0NyBXSElUVElFUiBBVkUuCisJCQkJTUVERk9SRCBOWSAxMTc2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQTAgICAoaGV4KQkJU0FOWU8gRWxlY3RyaWMgQ28uLCBMdGQuCiswMDAwQTAgICAgIChiYXNlIDE2KQkJU0FOWU8gRWxlY3RyaWMgQ28uLCBMdGQuCisJCQkJNS01LCBLZWloYW4taG9uZG9yaSAyLWNob21lLAorCQkJCU1vcmlndWNoaSBDaXR5IE9zYWthIDU3MC04Njc3CisJCQkJSkFQQU4KKworMDAtMDAtQTEgICAoaGV4KQkJTUFSUVVFVFRFIEVMRUNUUklDIENPLgorMDAwMEExICAgICAoYmFzZSAxNikJCU1BUlFVRVRURSBFTEVDVFJJQyBDTy4KKwkJCQk4MjAwIFdFU1QgVE9XRVIgQVZFTlVFCisJCQkJTUlMV0FVS0VFIFdJIDUzMjIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1BMiAgIChoZXgpCQlCQVkgTkVUV09SS1MKKzAwMDBBMiAgICAgKGJhc2UgMTYpCQlCQVkgTkVUV09SS1MKKwkJCQk0NDAxIEdSRUFUIEFNRVJJQ0FOIFBLV1kKKwkJCQlNL1M6U0MwMS0wNQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyLTgxODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUEzICAgKGhleCkJCU5FVFdPUksgQVBQTElDQVRJT04gVEVDSE5PTE9HWQorMDAwMEEzICAgICAoYmFzZSAxNikJCU5FVFdPUksgQVBQTElDQVRJT04gVEVDSE5PTE9HWQorCQkJCTE2ODYgREVMTCBBVkVOVUUKKwkJCQlDQU1QQkVMTCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQTQgICAoaGV4KQkJQUNPUk4gQ09NUFVURVJTIExJTUlURUQKKzAwMDBBNCAgICAgKGJhc2UgMTYpCQlBQ09STiBDT01QVVRFUlMgTElNSVRFRAorCQkJCUZVTEJPVVJOIFJPQUQsIENIRVJSWSBISU5UT04KKwkJCQlDQU1CUklER0UgQ0IxIDRKTiwKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtQTUgICAoaGV4KQkJQ09NUEFUSUJMRSBTWVNURU1TIENPUlAuCiswMDAwQTUgICAgIChiYXNlIDE2KQkJQ09NUEFUSUJMRSBTWVNURU1TIENPUlAuCisJCQkJUC5PLiBCT1ggMTcyMjAKKwkJCQlCT1VMREVSIENPIDgwMzA4LTcyMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUE2ICAgKGhleCkJCU5FVFdPUksgR0VORVJBTCBDT1JQT1JBVElPTgorMDAwMEE2ICAgICAoYmFzZSAxNikJCU5FVFdPUksgR0VORVJBTCBDT1JQT1JBVElPTgorCQkJCTEyOTYgQiBMQVdSRU5DRSBTVEFUSU9OIFJPQUQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUE3ICAgKGhleCkJCU5FVFdPUksgQ09NUFVUSU5HIERFVklDRVMgSU5DLgorMDAwMEE3ICAgICAoYmFzZSAxNikJCU5FVFdPUksgQ09NUFVUSU5HIERFVklDRVMgSU5DLgorCQkJCTM1MCBOT1JUSCBCRVJOQVJETworCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUE4ICAgKGhleCkJCVNUUkFUVVMgQ09NUFVURVIgSU5DLgorMDAwMEE4ICAgICAoYmFzZSAxNikJCVNUUkFUVVMgQ09NUFVURVIgSU5DLgorCQkJCTExMSBQb3dkZXJtaWxsIFJvYWQKKwkJCQlNYXluYXJkIE1BIDAxNzU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1BOSAgIChoZXgpCQlORVRXT1JLIFNZU1RFTVMgQ09SUC4KKzAwMDBBOSAgICAgKGJhc2UgMTYpCQlORVRXT1JLIFNZU1RFTVMgQ09SUC4KKwkJCQk3NjAwIEJPT05FIEFWRU5VRSBOT1JUSAorCQkJCU1JTk5FQVBPTElTIE1OIDU1NDI4LTEwOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUFBICAgKGhleCkJCVhFUk9YIENPUlBPUkFUSU9OCiswMDAwQUEgICAgIChiYXNlIDE2KQkJWEVST1ggQ09SUE9SQVRJT04KKwkJCQlPRkZJQ0UgU1lTVEVNUyBESVZJU0lPTgorCQkJCU0vUyAxMDUtNTBDIDgwMCBQSElMTElQUyBST0FECisJCQkJV0VCU1RFUiBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQUIgICAoaGV4KQkJTE9HSUMgTU9ERUxJTkcgQ09SUE9SQVRJT04KKzAwMDBBQiAgICAgKGJhc2UgMTYpCQlMT0dJQyBNT0RFTElORyBDT1JQT1JBVElPTgorCQkJCTE1MjAgTUNDQU5ETEVTUyBEUklWRQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1BQyAgIChoZXgpCQlDT05XQVJFIENPTVBVVEVSIENPTlNVTFRJTkcKKzAwMDBBQyAgICAgKGJhc2UgMTYpCQlDT05XQVJFIENPTVBVVEVSIENPTlNVTFRJTkcKKwkJCQlLSUxMSVNGRUxEU1RSQVNTRSA2NAorCQkJCTc2MjI3IEtBUkxTUlVIRQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAwLUFEICAgKGhleCkJCUJSVUtFUiBJTlNUUlVNRU5UUyBJTkMuCiswMDAwQUQgICAgIChiYXNlIDE2KQkJQlJVS0VSIElOU1RSVU1FTlRTIElOQy4KKwkJCQlNQU5OSU5HIFBBUksKKwkJCQlCSUxMRVJJQ0EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUFFICAgKGhleCkJCURBU1NBVUxUIEVMRUNUUk9OSVFVRQorMDAwMEFFICAgICAoYmFzZSAxNikJCURBU1NBVUxUIEVMRUNUUk9OSVFVRQorCQkJCTU1LCBRVUFJIE1BUkNFTCBEQVNTQVVMVAorCQkJCTkyMjE0IFNUIENMT1VECisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAwLUFGICAgKGhleCkJCU5VQ0xFQVIgREFUQSBJTlNUUlVNRU5UQVRJT04KKzAwMDBBRiAgICAgKGJhc2UgMTYpCQlOVUNMRUFSIERBVEEgSU5TVFJVTUVOVEFUSU9OCisJCQkJR09MRiAmIE1FQUNIQU0gUk9BRFMKKwkJCQlTQ0hBVU1CRVJHIElMIDYwMTk2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1CMCAgIChoZXgpCQlSTkQtUkFEIE5FVFdPUksgREVWSUNFUworMDAwMEIwICAgICAoYmFzZSAxNikJCVJORC1SQUQgTkVUV09SSyBERVZJQ0VTCisJCQkJQVRJRElNIFRFQ0hOT0wnQ0wgQkxERy4gMQorCQkJCVRFTCBBVklWICA2MTEzMQorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wMC1CMSAgIChoZXgpCQlBTFBIQSBNSUNST1NZU1RFTVMgSU5DLgorMDAwMEIxICAgICAoYmFzZSAxNikJCUFMUEhBIE1JQ1JPU1lTVEVNUyBJTkMuCisJCQkJMzUwMSBTVU5GTE9XRVIKKwkJCQlTQU5UQSBBTkEgQ0EgOTI3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUIyICAgKGhleCkJCVRFTEVWSURFTyBTWVNURU1TLCBJTkMuCiswMDAwQjIgICAgIChiYXNlIDE2KQkJVEVMRVZJREVPIFNZU1RFTVMsIElOQy4KKwkJCQk1NTAgRS4gQlJPS0FXIFJPQUQKKwkJCQlTQU4gSk9TRSBDQSA5NTE2MS05MDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1CMyAgIChoZXgpCQlDSU1MSU5DIElOQ09SUE9SQVRFRAorMDAwMEIzICAgICAoYmFzZSAxNikJCUNJTUxJTkMgSU5DT1JQT1JBVEVECisJCQkJMTk1NyBDUk9PS1MgUk9BRAorCQkJCVRST1kgTUkgNDgwODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUI0ICAgKGhleCkJCUVESU1BWCBDT01QVVRFUiBDT01QQU5ZCiswMDAwQjQgICAgIChiYXNlIDE2KQkJRURJTUFYIENPTVBVVEVSIENPTVBBTlkKKwkJCQlOby4gMywgV3UtQ2h1YW4gM3JkIFJvYWQsCisJCQkJV3UtS3UgSW5kdXN0cmlhbCBQYXJrCisJCQkJVGFpcGVpIEhzaWVuICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAwLUI1ICAgKGhleCkJCURBVEFCSUxJVFkgU09GVFdBUkUgU1lTLiBJTkMuCiswMDAwQjUgICAgIChiYXNlIDE2KQkJREFUQUJJTElUWSBTT0ZUV0FSRSBTWVMuIElOQy4KKwkJCQlPTkUgUEFMTUVSIFRFUlJBQ0UKKwkJCQlDQVJMU1RBRFQgTkogMDcwNzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUI2ICAgKGhleCkJCU1JQ1JPLU1BVElDIFJFU0VBUkNICiswMDAwQjYgICAgIChiYXNlIDE2KQkJTUlDUk8tTUFUSUMgUkVTRUFSQ0gKKwkJCQlBTUJBQ0hURU5MQUFOICAyMSBCNQorCQkJCUIgLSAzMDMwICBIRVZFUkxFRQorCQkJCUJFTEdJVU0KKwkJCQlCRUxHSVVNCisKKzAwLTAwLUI3ICAgKGhleCkJCURPVkUgQ09NUFVURVIgQ09SUE9SQVRJT04KKzAwMDBCNyAgICAgKGJhc2UgMTYpCQlET1ZFIENPTVBVVEVSIENPUlBPUkFUSU9OCisJCQkJMTIwMCBOT1JUSCAyM1JEIFNUUkVFVAorCQkJCVdJTE1JTkdUT04gTkMgMjg0MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUI4ICAgKGhleCkJCVNFSUtPU0hBIENPLiwgTFRELgorMDAwMEI4ICAgICAoYmFzZSAxNikJCVNFSUtPU0hBIENPLiwgTFRELgorCQkJCVNZU1RFTSBFUVVJUE1FTlQgRElWSVNJT04KKwkJCQk0LTEtMSBUQUlIRUkgU1VNSURBLUtVIFRPS1lPIDEzMAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtQjkgICAoaGV4KQkJTUNET05ORUxMIERPVUdMQVMgQ09NUFVURVIgU1lTCiswMDAwQjkgICAgIChiYXNlIDE2KQkJTUNET05ORUxMIERPVUdMQVMgQ09NUFVURVIgU1lTCisJCQkJRElWIE1DRE9OTkVMTCBET1VHTEFTIElORiBTWVMKKwkJCQlCT1VOREFSWSBXQVkgSEVNRUwgSEVNUFNURUFEIEhFUlRTCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLUJBICAgKGhleCkJCVNJSUcsIElOQy4KKzAwMDBCQSAgICAgKGJhc2UgMTYpCQlTSUlHLCBJTkMuCisJCQkJNjA3OCBTVEVXQVJUIEFWRU5VRQorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUJCICAgKGhleCkJCVRSSS1EQVRBCiswMDAwQkIgICAgIChiYXNlIDE2KQkJVFJJLURBVEEKKwkJCQk1MDUgRUFTVCBNSURETEVGSUVMRCBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0My00MDgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1CQyAgIChoZXgpCQlSb2Nrd2VsbCBBdXRvbWF0aW9uCiswMDAwQkMgICAgIChiYXNlIDE2KQkJUm9ja3dlbGwgQXV0b21hdGlvbgorCQkJCTEgQWxsZW4tQnJhZGxleSBEci4KKwkJCQlNYXlmaWVsZCBIZWlnaHRzIE9IIDQ0MTI0LTYxMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUJEICAgKGhleCkJCU1JVFNVQklTSEkgQ0FCTEUgQ09NUEFOWQorMDAwMEJEICAgICAoYmFzZSAxNikJCU1JVFNVQklTSEkgQ0FCTEUgQ09NUEFOWQorCQkJCTUyMCBNQURJU09OIEFWRU5VRQorCQkJCU5FVyBZT1JLIE5ZIDEwMDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1CRSAgIChoZXgpCQlUSEUgTlRJIEdST1VQCiswMDAwQkUgICAgIChiYXNlIDE2KQkJVEhFIE5USSBHUk9VUAorCQkJCTQ3MDEgUEFUUklDSyBIRU5SWSBEUklWRQorCQkJCVNVSVRFIDI0CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUJGICAgKGhleCkJCVNZTU1FVFJJQyBDT01QVVRFUiBTWVNURU1TCiswMDAwQkYgICAgIChiYXNlIDE2KQkJU1lNTUVUUklDIENPTVBVVEVSIFNZU1RFTVMKKwkJCQkxNjIwIE9BS0xBTkQgUk9BRCAgU1VJVEUgRC0yMDAKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQzAgICAoaGV4KQkJV0VTVEVSTiBESUdJVEFMIENPUlBPUkFUSU9OCiswMDAwQzAgICAgIChiYXNlIDE2KQkJV0VTVEVSTiBESUdJVEFMIENPUlBPUkFUSU9OCisJCQkJODEwNSBJUlZJTkUgQ0VOVEVSIERSSVZFCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1DMSAgIChoZXgpCQlNYWRnZSBMdGQuCiswMDAwQzEgICAgIChiYXNlIDE2KQkJTWFkZ2UgTHRkLgorCQkJCU1hZGdlIEhvdXNlCisJCQkJUHJpb3JzIFdheQorCQkJCU1haW5kZW5oZWFkIEJlcmtzaGlyZSBTTDYgMkhQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtQzIgICAoaGV4KQkJSU5GT1JNQVRJT04gUFJFU0VOVEFUSU9OIFRFQ0guCiswMDAwQzIgICAgIChiYXNlIDE2KQkJSU5GT1JNQVRJT04gUFJFU0VOVEFUSU9OIFRFQ0guCisJCQkJMjM4MDEgQ0FMQUJBU0FTIFJPQUQKKwkJCQlTVUlURSAyMDExCisJCQkJQ0FMQUJBU0FTIENBIDkxMzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1DMyAgIChoZXgpCQlIQVJSSVMgQ09SUCBDT01QVVRFUiBTWVMgRElWCiswMDAwQzMgICAgIChiYXNlIDE2KQkJSEFSUklTIENPUlAgQ09NUFVURVIgU1lTIERJVgorCQkJCU0vUyA3NQorCQkJCTEwMjUgVy4gTkFTQSBCTFZELkwgMzMzMDkKKwkJCQlNRUxCT1VSTkUgRkwgMzI5MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUM0ICAgKGhleCkJCVdBVEVSUyBESVYuIE9GIE1JTExJUE9SRQorMDAwMEM0ICAgICAoYmFzZSAxNikJCVdBVEVSUyBESVYuIE9GIE1JTExJUE9SRQorCQkJCTM0IE1BUExFIFNUUkVFVAorCQkJCU1JTEZPUkQgTUEgMDE3NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUM1ICAgKGhleCkJCUZBUkFMTE9OIENPTVBVVElORy9ORVRPUElBCiswMDAwQzUgICAgIChiYXNlIDE2KQkJRkFSQUxMT04gQ09NUFVUSU5HL05FVE9QSUEKKwkJCQkyNDcwIE1BUklORVIgU1FVQVJFIExPT1AKKwkJCQlBTEFNRURBIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1DNiAgIChoZXgpCQlFT04gU1lTVEVNUworMDAwMEM2ICAgICAoYmFzZSAxNikJCUVPTiBTWVNURU1TCisJCQkJMTA2MDEgU09VVEggREVBTlpBIEJMVkQuCisJCQkJU1VJVEUgMzAzCisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1DNyAgIChoZXgpCQlBUklYIENPUlBPUkFUSU9OCiswMDAwQzcgICAgIChiYXNlIDE2KQkJQVJJWCBDT1JQT1JBVElPTgorCQkJCUVOR0lORUVSSU5HIE1BSUwgU1RPUAorCQkJCTExNTIgTU9SU0UgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1DOCAgIChoZXgpCQlBTFRPUyBDT01QVVRFUiBTWVNURU1TCiswMDAwQzggICAgIChiYXNlIDE2KQkJQUxUT1MgQ09NUFVURVIgU1lTVEVNUworCQkJCTI2NDEgT1JDSEFSRCBQQVJLV0FZCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUM5ICAgKGhleCkJCUVtdWxleCBDb3Jwb3JhdGlvbgorMDAwMEM5ICAgICAoYmFzZSAxNikJCUVtdWxleCBDb3Jwb3JhdGlvbgorCQkJCTMzMzMgU3VzYW4gU3RyZWV0CisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQ0EgICAoaGV4KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorMDAwMENBICAgICAoYmFzZSAxNikJCUFSUklTIEludGVybmF0aW9uYWwKKwkJCQkzODcxIExha2VmaWVsZCBEcml2ZSwgU3VpdGUgMzAwCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQ0IgICAoaGV4KQkJQ09NUFUtU0hBQ0sgRUxFQ1RST05JQyBHTUJICiswMDAwQ0IgICAgIChiYXNlIDE2KQkJQ09NUFUtU0hBQ0sgRUxFQ1RST05JQyBHTUJICisJCQkJUklOR1NUUi4gNTYgLSA1OCwgNTQ1MCBORVVXSUVECisJCQkJV0VTVCBHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMC1DQyAgIChoZXgpCQlERU5TQU4gQ08uLCBMVEQuCiswMDAwQ0MgICAgIChiYXNlIDE2KQkJREVOU0FOIENPLiwgTFRELgorCQkJCTEtMjMtMTEsIEtBTUlUQUtBSURPCisJCQkJU1VHSU5BTUktS1UsIFRPS1lPIDE2OAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtQ0QgICAoaGV4KQkJQWxsaWVkIFRlbGVzaXMgTGFicyBMdGQKKzAwMDBDRCAgICAgKGJhc2UgMTYpCQlBbGxpZWQgVGVsZXNpcyBMYWJzIEx0ZAorCQkJCTI3IE5hemFyZXRoIEF2ZW51ZQorCQkJCU1pZGRsZXRvbiBDaHJpc3RjaHVyY2ggODAyNAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTAwLUNFICAgKGhleCkJCU1FR0FEQVRBIENPUlAuCiswMDAwQ0UgICAgIChiYXNlIDE2KQkJTUVHQURBVEEgQ09SUC4KKwkJCQkzNSBPUlZJTExFIERSSVZFCisJCQkJQk9IRU1JQSBOWSAxMTcxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQ0YgICAoaGV4KQkJSEFZRVMgTUlDUk9DT01QVVRFUiBQUk9EVUNUUworMDAwMENGICAgICAoYmFzZSAxNikJCUhBWUVTIE1JQ1JPQ09NUFVURVIgUFJPRFVDVFMKKwkJCQkoQ0FOQURBKSBMVEQuCisJCQkJMjk1IFBISUxMSVAgU1RSRUVUIFdBVEVSTE9PLCBPTlRBUklPIE4yTAorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMC1EMCAgIChoZXgpCQlERVZFTENPTiBFTEVDVFJPTklDUyBMVEQuCiswMDAwRDAgICAgIChiYXNlIDE2KQkJREVWRUxDT04gRUxFQ1RST05JQ1MgTFRELgorCQkJCTg1Ni01MVNUIFNUUkVFVCBFQVNUCisJCQkJU0FTS0FUT09OIFNBU0tBVENIRVdBTiBTN0sgNUM3CisJCQkJQ0FOQURBCisJCQkJQ0FOQURBCisKKzAwLTAwLUQxICAgKGhleCkJCUFEQVBURUMgSU5DT1JQT1JBVEVECiswMDAwRDEgICAgIChiYXNlIDE2KQkJQURBUFRFQyBJTkNPUlBPUkFURUQKKwkJCQlNL1MgMTgwCisJCQkJNjkxIFNPVVRIIE1JTFBJVEFTIEJMVkQuCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUQyICAgKGhleCkJCVNCRSwgSU5DLgorMDAwMEQyICAgICAoYmFzZSAxNikJCVNCRSwgSU5DLgorCQkJCTQ1NTAgTk9SVEggQ0FOWU9OIFJPQUQKKwkJCQlTQU4gUkFNT04gQ0EgOTQ1ODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUQzICAgKGhleCkJCVdBTkcgTEFCT1JBVE9SSUVTIElOQy4KKzAwMDBEMyAgICAgKGJhc2UgMTYpCQlXQU5HIExBQk9SQVRPUklFUyBJTkMuCisJCQkJCisKKzAwLTAwLUQ0ICAgKGhleCkJCVBVUkUgREFUQSBMVEQuCiswMDAwRDQgICAgIChiYXNlIDE2KQkJUFVSRSBEQVRBIExURC4KKwkJCQkyMDAgV0VTVCBCRUFWRVIgQ1JFRUsgUk9BRAorCQkJCVJJQ0hNT05EIEhJTEwgIE9OVEFSSU8KKwkJCQlMNEIgMUI0IENBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMC1ENSAgIChoZXgpCQlNSUNST0dOT1NJUyBJTlRFUk5BVElPTkFMCiswMDAwRDUgICAgIChiYXNlIDE2KQkJTUlDUk9HTk9TSVMgSU5URVJOQVRJT05BTAorCQkJCTYzIFFVRUVOIFZJQ1RPUklBIFNUUkVFVAorCQkJCUxPTkRPTiBFQzROIDRVRAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtRDYgICAoaGV4KQkJUFVOQ0ggTElORSBIT0xESU5HCiswMDAwRDYgICAgIChiYXNlIDE2KQkJUFVOQ0ggTElORSBIT0xESU5HCisJCQkJUC5PLiBCT1ggMzkxNzA4CisJCQkJQlJBTUxFWSAyMDE4CisJCQkJU09VVEggQUZSSUNBCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTAwLUQ3ICAgKGhleCkJCURBUlRNT1VUSCBDT0xMRUdFCiswMDAwRDcgICAgIChiYXNlIDE2KQkJREFSVE1PVVRIIENPTExFR0UKKwkJCQlLSUVXSVQgQ09NUFVURVIgQ0VOVEVSCisJCQkJSEFOT1ZFUiBOSCAwMzc1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRDggICAoaGV4KQkJTk9WRUxMLCBJTkMuCiswMDAwRDggICAgIChiYXNlIDE2KQkJTk9WRUxMLCBJTkMuCisJCQkJMTIyIEVBU1QgMTcwMCBTT1VUSCBNL1M6RS0xMi0xCisJCQkJUC5PLiBCT1ggNTkwMAorCQkJCVBST1ZPIFVUIDg0NjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1EOSAgIChoZXgpCQlOSVBQT04gVEVMRUdSQVBIICYgVEVMRVBIT05FCiswMDAwRDkgICAgIChiYXNlIDE2KQkJTklQUE9OIFRFTEVHUkFQSCAmIFRFTEVQSE9ORQorCQkJCUNPUlBPUkFUSU9OIChOVFQpCisJCQkJVEVJU0hJTiBCTERHLiAzLTEgT09URU1BQ0hJIDIgQ0hPTUUsIENISQorCQkJCVRPS1lPIDEwMC04MTE2IEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtREEgICAoaGV4KQkJQVRFWAorMDAwMERBICAgICAoYmFzZSAxNikJCUFURVgKKwkJCQkxNSBDUk9TQlkgRFJJVkUKKwkJCQlCRURGT1JEIE1BIDAxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1EQiAgIChoZXgpCQlCUklUSVNIIFRFTEVDT01NVU5JQ0FUSU9OUyBQTEMKKzAwMDBEQiAgICAgKGJhc2UgMTYpCQlCUklUSVNIIFRFTEVDT01NVU5JQ0FUSU9OUyBQTEMKKwkJCQk4MSBORVdHQVRFIFNUUkVFVAorCQkJCUxPTkRPTiwgRUMxQSA3QUoKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtREMgICAoaGV4KQkJSEFZRVMgTUlDUk9DT01QVVRFUiBQUk9EVUNUUworMDAwMERDICAgICAoYmFzZSAxNikJCUhBWUVTIE1JQ1JPQ09NUFVURVIgUFJPRFVDVFMKKwkJCQlQLk8uIEJPWCAxMDUyMDMKKwkJCQlBVExBTlRBIEdBIDMwMzQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1ERCAgIChoZXgpCQlUQ0wgSU5DT1JQT1JBVEVECiswMDAwREQgICAgIChiYXNlIDE2KQkJVENMIElOQ09SUE9SQVRFRAorCQkJCTQxODI5IEFMQlJBRSBTVFJFRVQKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1ERSAgIChoZXgpCQlDRVRJQQorMDAwMERFICAgICAoYmFzZSAxNikJCUNFVElBCisJCQkJMTUwIFJVRSBCRVJUSEVMT1QKKwkJCQlaSSBUT1VMT04gRVNUIDgzMDg4IFRPVUxPTiBDRURFWAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMC1ERiAgIChoZXgpCQlCRUxMICYgSE9XRUxMIFBVQiBTWVMgRElWCiswMDAwREYgICAgIChiYXNlIDE2KQkJQkVMTCAmIEhPV0VMTCBQVUIgU1lTIERJVgorCQkJCU9MRCBNQU5TRklFTEQgUk9BRAorCQkJCVdPT1NURVIgT0ggNDQ2OTEtOTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRTAgICAoaGV4KQkJUVVBRFJBTSBDT1JQLgorMDAwMEUwICAgICAoYmFzZSAxNikJCVFVQURSQU0gQ09SUC4KKwkJCQlPTkUgUVVBRCBXQVkKKwkJCQlOT1JDUk9TUyBHQSAzMDA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRTEgICAoaGV4KQkJR1JJRCBTWVNURU1TCiswMDAwRTEgICAgIChiYXNlIDE2KQkJR1JJRCBTWVNURU1TCisJCQkJNDcyMTEgTEFLRVZJRVcgQk9VTEVWQVJECisJCQkJUC5PLiBCT1ggNTAwMworCQkJCUZSRU1PTlQgQ0EgOTQ1MzctNTAwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRTIgICAoaGV4KQkJQUNFUiBURUNITk9MT0dJRVMgQ09SUC4KKzAwMDBFMiAgICAgKGJhc2UgMTYpCQlBQ0VSIFRFQ0hOT0xPR0lFUyBDT1JQLgorCQkJCTQwMSBDSEFSQ09UIEFWRS4KKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRTMgICAoaGV4KQkJSU5URUdSQVRFRCBNSUNSTyBQUk9EVUNUUyBMVEQKKzAwMDBFMyAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIE1JQ1JPIFBST0RVQ1RTIExURAorCQkJCUlNUCwgTk8uIDEgSU5EVVNUUklBTCBFU1RBVEUKKwkJCQlDT05TRVRULCBDTyBEVUtIQU0KKwkJCQlFTkdMQU5EIEVOR0xBTkQgREg4NlRKCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtRTQgICAoaGV4KQkJSU4yIEdST1VQRSBJTlRFUlRFQ0hOSVFVRQorMDAwMEU0ICAgICAoYmFzZSAxNikJCUlOMiBHUk9VUEUgSU5URVJURUNITklRVUUKKwkJCQlJTjIgLSBCLlAuNjMKKwkJCQk3ODM3MyBQTEFJU0lSIENFREVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAwLUU1ICAgKGhleCkJCVNJR01FWCBMVEQuCiswMDAwRTUgICAgIChiYXNlIDE2KQkJU0lHTUVYIExURC4KKwkJCQlTSUdNQSBIT1VTRQorCQkJCU5PUlRIIEhFQVRIIExBTkUgSE9SU0hBTSwgV0VTVCBTVVNTRVgKKwkJCQlSSDEyIDRVWiBFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtRTYgICAoaGV4KQkJQVBUT1IgUFJPRFVJVFMgREUgQ09NTSBJTkRVU1QKKzAwMDBFNiAgICAgKGJhc2UgMTYpCQlBUFRPUiBQUk9EVUlUUyBERSBDT01NIElORFVTVAorCQkJCTYxLCBDSEVNSU4gRFUgVklFVVgtQ0hFTkUKKwkJCQlaSVJTVC1CUCAxNzcgMzgyNDQgTUVZTEFOIENFREVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAwLUU3ICAgKGhleCkJCVNUQVIgR0FURSBURUNITk9MT0dJRVMKKzAwMDBFNyAgICAgKGJhc2UgMTYpCQlTVEFSIEdBVEUgVEVDSE5PTE9HSUVTCisJCQkJMjkzMDAgQVVST1JBIFJPQUQKKwkJCQlTT0xPTiBPSCA0NDEzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRTggICAoaGV4KQkJQUNDVE9OIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMDBFOCAgICAgKGJhc2UgMTYpCQlBQ0NUT04gVEVDSE5PTE9HWSBDT1JQLgorCQkJCTQ2NzUwIEZSRU1PTlQgQkxWRC4gIzEwNAorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUU5ICAgKGhleCkJCUlTSUNBRCwgSU5DLgorMDAwMEU5ICAgICAoYmFzZSAxNikJCUlTSUNBRCwgSU5DLgorCQkJCTE5MjAgV0VTVCBDT1JQT1JBVEUgV0FZCisJCQkJQU5BSEVJTSBDQSA5MjgwMy02MTIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1FQSAgIChoZXgpCQlVUE5PRCBBQgorMDAwMEVBICAgICAoYmFzZSAxNikJCVVQTk9EIEFCCisJCQkJQk9YIDIzMDUxCisJCQkJUy03NTAgMjMgVVBQU0FMQQorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC0wMC1FQiAgIChoZXgpCQlNQVRTVVNISVRBIENPTU0uIElORC4gQ08uIExURC4KKzAwMDBFQiAgICAgKGJhc2UgMTYpCQlNQVRTVVNISVRBIENPTU0uIElORC4gQ08uIExURC4KKwkJCQkzLTEgIDQtQ0hPTUUKKwkJCQlUU1VOQVNISU1BLUhJR0FTSEkgS09IT0tVLUtVICBZT0tPSEFNQQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtRUMgICAoaGV4KQkJTUlDUk9QUk9DRVNTCiswMDAwRUMgICAgIChiYXNlIDE2KQkJTUlDUk9QUk9DRVNTCisJCQkJOTcgQklTLCBSVUUgREUgQ09MT01CRVMKKwkJCQlCLlAuIDg3IDkyNDAwIENPVVJCRVZPSUUKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDAtRUQgICAoaGV4KQkJQVBSSUwKKzAwMDBFRCAgICAgKGJhc2UgMTYpCQlBUFJJTAorCQkJCTYwLCBSVUUgREUgQ0FSVEFMRQorCQkJCUJQIDM4IDM4MTcwIFNFWVNTSU5FVC1QQVJJU0VUCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAwLUVFICAgKGhleCkJCU5FVFdPUksgREVTSUdORVJTLCBMVEQuCiswMDAwRUUgICAgIChiYXNlIDE2KQkJTkVUV09SSyBERVNJR05FUlMsIExURC4KKwkJCQlVTklUIDFBLCBIT1JOQkVBTSBQQVJLCisJCQkJSE9PS1NUT05FIFJPQUQgSEFSUk9HQVRFLCBOT1JUSCBZT1JLU0hJUgorCQkJCVVOSVRFRCBLSU5HRE9NIEhHMiA4UVQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC1FRiAgIChoZXgpCQlLVEkKKzAwMDBFRiAgICAgKGJhc2UgMTYpCQlLVEkKKwkJCQkyMTU3IE8nVE9PTEUgQVZFTlVFCisJCQkJU1VJVEUgSAorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1GMCAgIChoZXgpCQlTQU1TVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDAwMEYwICAgICAoYmFzZSAxNikJCVNBTVNVTkcgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJNDE2LCBNQUVUQU4tM0RPTkcsIFBBTERBTC1HVQorCQkJCVNVV09OIENJVFksIEtZVU5HS0ktRE8KKwkJCQk0NDItNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAwLUYxICAgKGhleCkJCU1BR05BIENPTVBVVEVSIENPUlBPUkFUSU9OCiswMDAwRjEgICAgIChiYXNlIDE2KQkJTUFHTkEgQ09NUFVURVIgQ09SUE9SQVRJT04KKwkJCQkyMiBLRUVXQVlESU4gRFJJVkUKKwkJCQlTQUxFTSBOSCAwMzA3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRjIgICAoaGV4KQkJU1BJREVSIENPTU1VTklDQVRJT05TCiswMDAwRjIgICAgIChiYXNlIDE2KQkJU1BJREVSIENPTU1VTklDQVRJT05TCisJCQkJNzQ5MSBCUklBUiBST0FECisJCQkJTU9OVFJFQUwsICBRVUVCRUMgSDRXIDFLNAorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMC1GMyAgIChoZXgpCQlHQU5EQUxGIERBVEEgTElNSVRFRAorMDAwMEYzICAgICAoYmFzZSAxNikJCUdBTkRBTEYgREFUQSBMSU1JVEVECisJCQkJMTMwIENPTE9OTkFERSBST0FEIFNPVVRICisJCQkJTkVQRUFOICBPTlRBUklPICBLMkUgN000CisJCQkJQ0FOQURBCisJCQkJQ0FOQURBCisKKzAwLTAwLUY0ICAgKGhleCkJCUFsbGllZCBUZWxlc2lzCiswMDAwRjQgICAgIChiYXNlIDE2KQkJQWxsaWVkIFRlbGVzaXMKKwkJCQlDT1JQT1JBVElPTgorCQkJCTk1MCBLSUZFUiBST0FECisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1GNSAgIChoZXgpCQlESUFNT05EIFNBTEVTIExJTUlURUQKKzAwMDBGNSAgICAgKGJhc2UgMTYpCQlESUFNT05EIFNBTEVTIExJTUlURUQKKwkJCQkxNywgQ0hBUlRFUkhPVVNFIFNUUkVFVAorCQkJCUxPTkRPTiwgRUNJTiA2UkEKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLUY2ICAgKGhleCkJCUFQUExJRUQgTUlDUk9TWVNURU1TIENPUlAuCiswMDAwRjYgICAgIChiYXNlIDE2KQkJQVBQTElFRCBNSUNST1NZU1RFTVMgQ09SUC4KKwkJCQk1MDIwIDE0OCBBVkVOVUUsIE4uRS4KKwkJCQlQLk8uIEJPWCA5NzAwMgorCQkJCVJFRE1PTkQgV0EgOTgwNzMtOTcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRjcgICAoaGV4KQkJWU9VVEggS0VFUCBFTlRFUlBSSVNFIENPIExURAorMDAwMEY3ICAgICAoYmFzZSAxNikJCVlPVVRIIEtFRVAgRU5URVJQUklTRSBDTyBMVEQKKwkJCQkzL0YgTk8uIDcxMiBNSU5UU1UgRS4gUk9BRAorCQkJCVRBSVBFSSwgVEFJV0FOCisJCQkJUk9DCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMC1GOCAgIChoZXgpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorMDAwMEY4ICAgICAoYmFzZSAxNikJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCisJCQkJTEtHIDEtMi9BMTkKKwkJCQk1NTAgS0lORyBTVFJFRVQgTElUVExFVE9OICBNQSAgMDE0NjAtMTI4CisJCQkJMDE0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUY5ICAgKGhleCkJCVFVT1RST04gU1lTVEVNUyBJTkMuCiswMDAwRjkgICAgIChiYXNlIDE2KQkJUVVPVFJPTiBTWVNURU1TIElOQy4KKwkJCQk1NDU0IEJFRVRIT1ZFTiBTVC4KKwkJCQlMT1MgQU5HRUxFUyBDQSA5MDA2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRkEgICAoaGV4KQkJTUlDUk9TQUdFIENPTVBVVEVSIFNZU1RFTVMgSU5DCiswMDAwRkEgICAgIChiYXNlIDE2KQkJTUlDUk9TQUdFIENPTVBVVEVSIFNZU1RFTVMgSU5DCisJCQkJNjgwIFNPVVRIIFJPQ0sgQkxWRAorCQkJCVJFTk8gTkUgODk1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUZCICAgKGhleCkJCVJFQ0hORVIgWlVSIEtPTU1VTklLQVRJT04KKzAwMDBGQiAgICAgKGJhc2UgMTYpCQlSRUNITkVSIFpVUiBLT01NVU5JS0FUSU9OCisJCQkJQklUWkVOU1RSLiAxMQorCQkJCUYtNTQ2NCBBU0JBQ0gKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMC1GQyAgIChoZXgpCQlNRUlLTworMDAwMEZDICAgICAoYmFzZSAxNikJCU1FSUtPCisJCQkJNjUwIEFaVEVDIFdFU1QKKwkJCQlCUklTVE9MIEJTMTIgNFNECisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC1GRCAgIChoZXgpCQlISUdIIExFVkVMIEhBUkRXQVJFCiswMDAwRkQgICAgIChiYXNlIDE2KQkJSElHSCBMRVZFTCBIQVJEV0FSRQorCQkJCVBPIEJPWCAxNzAgV0lORE1JTEwgUk9BRAorCQkJCUhFQURJTkdUT04gT1hGT1JEIE9YMyA3Qk4KKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtRkUgICAoaGV4KQkJQU5OQVBPTElTIE1JQ1JPIFNZU1RFTVMKKzAwMDBGRSAgICAgKGJhc2UgMTYpCQlBTk5BUE9MSVMgTUlDUk8gU1lTVEVNUworCQkJCTE5MCBBRE1JUkFMIENPQ0hSQU5FIERSSVZFCisJCQkJU1VJVEUgMTMwCisJCQkJQU5OQVBPTElTIE1EIDIxNDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1GRiAgIChoZXgpCQlDQU1URUMgRUxFQ1RST05JQ1MgTFRELgorMDAwMEZGICAgICAoYmFzZSAxNikJCUNBTVRFQyBFTEVDVFJPTklDUyBMVEQuCisJCQkJMTAxIFZBVUdIQU4gV0FZCisJCQkJTEVJQ0VTVEVSIExFMSA0U0EKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDEtMDAgICAoaGV4KQkJRVFVSVAnVFJBTlMKKzAwMDEwMCAgICAgKGJhc2UgMTYpCQlFUVVJUCdUUkFOUworCQkJCTMxIHJ1ZSBQYXVsIENlemFubmUKKwkJCQlMQSBST0NIRVRURSAgNzcwMDAKKwkJCQlGUkFOQ0UKKworMDAtMDEtMDEgICAoaGV4KQkJUFJJVkFURQorMDAwMTAxICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wMS0wMiAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMDAxMDIgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQmF5ZnJvbnQgUGxhemEgIC0gTVM6IDQyMjAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMDMgICAoaGV4KQkJM0NPTSBDT1JQT1JBVElPTgorMDAwMTAzICAgICAoYmFzZSAxNikJCTNDT00gQ09SUE9SQVRJT04KKwkJCQk1NDAwIEJheWZyb250IFBsYXphIC0gTVM6IDQyMjAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMDQgICAoaGV4KQkJRFZJQ08gQ28uLCBMdGQuCiswMDAxMDQgICAgIChiYXNlIDE2KQkJRFZJQ08gQ28uLCBMdGQuCisJCQkJS29va21pbiBDYXJkIEIvRCA2RiAyNjctMgorCQkJCVNlb2h5dW4tRG9uZyBCb29uZGFuZy1HdQorCQkJCVN1bmduYW0tc2kgS3l1bmdraS1kbyA0NjMtMDUwICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtMDUgICAoaGV4KQkJQmVja2hvZmYgQXV0b21hdGlvbiBHbWJICiswMDAxMDUgICAgIChiYXNlIDE2KQkJQmVja2hvZmYgQXV0b21hdGlvbiBHbWJICisJCQkJRWlzZXJzdHIuIDUKKwkJCQkzMzQxNSBWZXJsIAorCQkJCUdFUk1BTlkKKworMDAtMDEtMDYgICAoaGV4KQkJVGV3cyBEYXRlbnRlY2huaWsgR21iSAorMDAwMTA2ICAgICAoYmFzZSAxNikJCVRld3MgRGF0ZW50ZWNobmlrIEdtYkgKKwkJCQlBbSBCYWhuaG9mIDcKKwkJCQkyNTQ2OSBIYWxzdGVuYmVrICAKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLTA3ICAgKGhleCkJCUxlaXNlciBHbWJICiswMDAxMDcgICAgIChiYXNlIDE2KQkJTGVpc2VyIEdtYkgKKwkJCQlJbG1zdHIuIDcKKwkJCQk4NTU3OSBOZXViaWJlcmcgIAorCQkJCUdFUk1BTlkKKworMDAtMDEtMDggICAoaGV4KQkJQVZMQUIgVGVjaG5vbG9neSwgSW5jLgorMDAwMTA4ICAgICAoYmFzZSAxNikJCUFWTEFCIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkzRi0xLCBOby4gMTM0LCBTZWMuIDMKKwkJCQlDaHVuZyBTaGluIFJvYWQKKwkJCQlIc2luIFRpZW4sIFRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS0wOSAgIChoZXgpCQlOYWdhbm8gSmFwYW4gUmFkaW8gQ28uLCBMdGQuCiswMDAxMDkgICAgIChiYXNlIDE2KQkJTmFnYW5vIEphcGFuIFJhZGlvIENvLiwgTHRkLgorCQkJCVNoaW1vaGlnYW5vIDExNjMsIEluYXNhdG8tbWFjaGkKKwkJCQlOYWdhbm8gMzgxLTIyODggIAorCQkJCUpBUEFOCisKKzAwLTAxLTBBICAgKGhleCkJCUNJUyBURUNITk9MT0dZIElOQy4KKzAwMDEwQSAgICAgKGJhc2UgMTYpCQlDSVMgVEVDSE5PTE9HWSBJTkMuCisJCQkJMTZGLCBOby4gNzUgSHNpbiBUYWkgV3UgUm9hZAorCQkJCVNlYy4gMSwgSHNpIENoaWgKKwkJCQlUYWlwZWkgSHNpZW4gMjIxICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTBCICAgKGhleCkJCVNwYWNlIEN5YmVyTGluaywgSW5jLgorMDAwMTBCICAgICAoYmFzZSAxNikJCVNwYWNlIEN5YmVyTGluaywgSW5jLgorCQkJCTV0aCBGbC4gR3VwcHl1bmcgVG93biBCCisJCQkJMjAzIE5vbmhueXVuLURvbmcsIEthbmdoYW0tR3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTBDICAgKGhleCkJCVN5c3RlbSBUYWxrcyBJbmMuCiswMDAxMEMgICAgIChiYXNlIDE2KQkJU3lzdGVtIFRhbGtzIEluYy4KKwkJCQk0RiwgUHJpbWVOaWhvbmJhc2hpIEJsZC4KKwkJCQkzLTM1LTYsIE5paG9uYmFzaGkgSGFtYS1jaG8KKwkJCQlDaHVvLWt1IFRva3lvICAKKwkJCQlKQVBBTgorCiswMC0wMS0wRCAgIChoZXgpCQlDT1JFQ08sIElOQy4KKzAwMDEwRCAgICAgKGJhc2UgMTYpCQlDT1JFQ08sIElOQy4KKwkJCQk2OTY5IFJvdXRlIFRyYW5zY2FuYWRpYW5uZQorCQkJCVZpbGxlIFN0LiBMYXVyZW50IEg0VCAxVjggUXVlYmVjIAorCQkJCUNBTkFEQQorCiswMC0wMS0wRSAgIChoZXgpCQlCcmktTGluayBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKzAwMDEwRSAgICAgKGJhc2UgMTYpCQlCcmktTGluayBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKwkJCQkyRiwgTm8uIDYzLCBDaG93LVR6ZSBTdHJlZXQKKwkJCQlUYWlwZWkgMTE0ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTBGICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorMDAwMTBGICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorCQkJCTE3NDUgVGVjaG5vbG9neSBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMTAgICAoaGV4KQkJR290aGFtIE5ldHdvcmtzCiswMDAxMTAgICAgIChiYXNlIDE2KQkJR290aGFtIE5ldHdvcmtzCisJCQkJMTUgRGlzY292ZXJ5IFdheQorCQkJCUFjdG9uIE1BIDAxNzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0xMSAgIChoZXgpCQlpRGlnbSBJbmMuCiswMDAxMTEgICAgIChiYXNlIDE2KQkJaURpZ20gSW5jLgorCQkJCTdGTCBTaW5kbyBCL0QgMTYwNC0yMiBTZW9jaG8tRG9uZworCQkJCVNlb2Noby1HdQorCQkJCVNlb3VsIDEzNy0wNzAgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS0xMiAgIChoZXgpCQlTaGFyayBNdWx0aW1lZGlhIEluYy4KKzAwMDExMiAgICAgKGJhc2UgMTYpCQlTaGFyayBNdWx0aW1lZGlhIEluYy4KKwkJCQk0ODg5MCBNaWxtb250IERyaXZlICAjMTAxLUQKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0xMyAgIChoZXgpCQlPTFlNUFVTIENPUlBPUkFUSU9OCiswMDAxMTMgICAgIChiYXNlIDE2KQkJT0xZTVBVUyBDT1JQT1JBVElPTgorCQkJCTItMyBLdWJveWFtYS1jaG8sIEhhY2hpb2ppLXNoaQorCQkJCVRva3lvIDE5Mi04NTEyICAKKwkJCQlKQVBBTgorCiswMC0wMS0xNCAgIChoZXgpCQlLQU5EQSBUU1VTSElOIEtPR1lPIENPLiwgTFRELgorMDAwMTE0ICAgICAoYmFzZSAxNikJCUtBTkRBIFRTVVNISU4gS09HWU8gQ08uLCBMVEQuCisJCQkJMjMtMiwgTmlzaGktR290YW5kYSAyLWNob21lLAorCQkJCVNoaW5hZ2F3YS1rdQorCQkJCVRva3lvIDE0MS04NTMzICAKKwkJCQlKQVBBTgorCiswMC0wMS0xNSAgIChoZXgpCQlFWFRSQVRFQ0ggQ09SUE9SQVRJT04KKzAwMDExNSAgICAgKGJhc2UgMTYpCQlFWFRSQVRFQ0ggQ09SUE9SQVRJT04KKwkJCQk3NjAgVGhvcm50b24gU3QuLCBVbml0IDIKKwkJCQlQb3N0IEZhbGxzIElEIDgzODU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0xNiAgIChoZXgpCQlOZXRzcGVjdCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDExNiAgICAgKGJhc2UgMTYpCQlOZXRzcGVjdCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkzOTQ1IEZyZWVkb20gQ2lyY2xlIC0gU3RlLiAjMzYwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTE3ICAgKGhleCkJCUNBTkFMICsKKzAwMDExNyAgICAgKGJhc2UgMTYpCQlDQU5BTCArCisJCQkJMjMgUnVlIExlQmxhbmMKKwkJCQlMZSBQb25hbnQgQworCQkJCTc1OTA2IFBhcmlzIENlZGV4IDE1ICAKKwkJCQlGUkFOQ0UKKworMDAtMDEtMTggICAoaGV4KQkJRVogRGlnaXRhbCBDby4sIEx0ZC4KKzAwMDExOCAgICAgKGJhc2UgMTYpCQlFWiBEaWdpdGFsIENvLiwgTHRkLgorCQkJCUJpdHZpbGxlIEJsZGcuIFJvb20gNzAzCisJCQkJIzEzMjcgU2VvY2hvLURvbmcgU2VvY2hvLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS0xOSAgIChoZXgpCQlSVFVuZXQgKEF1c3RyYWxpYSkKKzAwMDExOSAgICAgKGJhc2UgMTYpCQlSVFVuZXQgKEF1c3RyYWxpYSkKKwkJCQk4LzMtNSBHaWxkYSBDb3VydAorCQkJCU11bGdyYXZlIFZpYyAzMTcwCisJCQkJQVVTVFJBTElBCisKKzAwLTAxLTFBICAgKGhleCkJCUVFSCBEYXRhTGluayBHbWJICiswMDAxMUEgICAgIChiYXNlIDE2KQkJRUVIIERhdGFMaW5rIEdtYkgKKwkJCQlOaWVkZXJiZXJnZXIgU3RyLiA3NQorCQkJCUQtNTM5MDkgWnVlbHBpY2ggIAorCQkJCUdFUk1BTlkKKworMDAtMDEtMUIgICAoaGV4KQkJVW5pem9uZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDExQiAgICAgKGJhc2UgMTYpCQlVbml6b25lIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTVGbG9vciBIYWVTdW5nIEJsZGcuCisJCQkJNjctMi1ZYW5nSmFlLURvbmcKKwkJCQlTZW9DaG8tS3UgU2VvdWwgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTFDICAgKGhleCkJCVVuaXZlcnNhbCBUYWxrd2FyZSBDb3Jwb3JhdGlvbgorMDAwMTFDICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBUYWxrd2FyZSBDb3Jwb3JhdGlvbgorCQkJCTEwIFNlY29uZCBTdC4gTkUKKwkJCQlTdWl0ZSAjNDAwCisJCQkJTWlubmVhcG9saXMgTU4gNTU0MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTFEICAgKGhleCkJCUNlbnRpbGxpdW0gQ29tbXVuaWNhdGlvbnMKKzAwMDExRCAgICAgKGJhc2UgMTYpCQlDZW50aWxsaXVtIENvbW11bmljYXRpb25zCisJCQkJNDcyMTEgTGFrZXZpZXcgQmx2ZC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0xRSAgIChoZXgpCQlQcmVjaWRpYSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDExRSAgICAgKGJhc2UgMTYpCQlQcmVjaWRpYSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMEEgSGVhcnN0IFdheQorCQkJCUthbmF0YSBPbnRhcmlvIEsyTS0yQzQgCisJCQkJQ0FOQURBCisKKzAwLTAxLTFGICAgKGhleCkJCVJDIE5ldHdvcmtzLCBJbmMuCiswMDAxMUYgICAgIChiYXNlIDE2KQkJUkMgTmV0d29ya3MsIEluYy4KKwkJCQk2NzI3IEZsYW5kZXJzIERyaXZlIC0gU3RlLiAjMjEyCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0yMCAgIChoZXgpCQlPU0NJTExPUVVBUlRaIFMuQS4KKzAwMDEyMCAgICAgKGJhc2UgMTYpCQlPU0NJTExPUVVBUlRaIFMuQS4KKwkJCQlSdWUgRGVzIEJyZXZhcmRzIDE2CisJCQkJMjAwMiBOZXVjaGF0ZWwgIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTAxLTIxICAgKGhleCkJCVdhdGNoZ3VhcmQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDAxMjEgICAgIChiYXNlIDE2KQkJV2F0Y2hndWFyZCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk2MDUgRmlmdGggQXZlLiBTCisJCQkJU3VpdGUgNTAwCisJCQkJU2VhdHRsZSBXQSA5ODEwNC0zODkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0yMiAgIChoZXgpCQlUcmVuZCBDb21tdW5pY2F0aW9ucywgTHRkLgorMDAwMTIyICAgICAoYmFzZSAxNikJCVRyZW5kIENvbW11bmljYXRpb25zLCBMdGQuCisJCQkJS25hdmVzIEJlZWNoIEVzdGF0ZQorCQkJCUxvdWR3YXRlciwgSGlnaCBXeWNvbWJlCisJCQkJQnVja3MsIEhQMTAgOVFaIEVuZ2xhbmQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDEtMjMgICAoaGV4KQkJRElHSVRBTCBFTEVDVFJPTklDUyBDT1JQLgorMDAwMTIzICAgICAoYmFzZSAxNikJCURJR0lUQUwgRUxFQ1RST05JQ1MgQ09SUC4KKwkJCQk4LTItNTIgTmFua28gSGlnYXNoaSwgU3VtaW5vZS1rdQorCQkJCU9zYWthLCA1NTktMDAzMSAgCisJCQkJSkFQQU4KKworMDAtMDEtMjQgICAoaGV4KQkJQWNlciBJbmNvcnBvcmF0ZWQKKzAwMDEyNCAgICAgKGJhc2UgMTYpCQlBY2VyIEluY29ycG9yYXRlZAorCQkJCTIxRiwgODgsIFNlYy4xCisJCQkJSHNpbiBUYWkgV3UgUm9hZCwgSHNpY2hpaAorCQkJCVRhaXBlaSBIc2llbiAyMjEgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtMjUgICAoaGV4KQkJWUFFU1UgTVVTRU4gQ08uLCBMVEQuCiswMDAxMjUgICAgIChiYXNlIDE2KQkJWUFFU1UgTVVTRU4gQ08uLCBMVEQuCisJCQkJNC04LTgsIE5ha2FtZWd1cm8KKwkJCQlNZWd1cm8ta3UsCisJCQkJVG9reW8sIDE1My04NjQ0ICAKKwkJCQlKQVBBTgorCiswMC0wMS0yNiAgIChoZXgpCQlQQUMgTGFicworMDAwMTI2ICAgICAoYmFzZSAxNikJCVBBQyBMYWJzCisJCQkJMzA3OSBLaWxnb3JlIFJvYWQKKwkJCQlSYW5jaG8gQ29yZG92YSBDQSA5NTY3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMjcgICAoaGV4KQkJT1BFTiBOZXR3b3JrcyBQdHkgTHRkCiswMDAxMjcgICAgIChiYXNlIDE2KQkJT1BFTiBOZXR3b3JrcyBQdHkgTHRkCisJCQkJTGV2ZWwgNSwgMzQyIEZsaW5kZXJzIFN0cmVldAorCQkJCU1lbGJvdXJuZSAgVklDIDMwMDAKKwkJCQlBVVNUUkFMSUEKKworMDAtMDEtMjggICAoaGV4KQkJRW5qb3lXZWIsIEluYy4KKzAwMDEyOCAgICAgKGJhc2UgMTYpCQlFbmpveVdlYiwgSW5jLgorCQkJCTMwMDAgU2NvdHQgQmx2ZC4gIzEwNworCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0yOSAgIChoZXgpCQlERkkgSW5jLgorMDAwMTI5ICAgICAoYmFzZSAxNikJCURGSSBJbmMuCisJCQkJMTAwLCBIdWFuLUhvIFN0cmVldAorCQkJCUhzaS1DaGloIENpdHkgVGFpcGVpIEhzaWVuIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtMkEgICAoaGV4KQkJVGVsZW1hdGljYSBTaXN0ZW1zIEludGVsaWdlbnRlCiswMDAxMkEgICAgIChiYXNlIDE2KQkJVGVsZW1hdGljYSBTaXN0ZW1zIEludGVsaWdlbnRlCisJCQkJUnVhIE1pZ3VlbCBDYXNhZ3JhbmRlLCAyMDAKKwkJCQlTYW8gUGF1bG8gIAorCQkJCUJSQVpJTAorCiswMC0wMS0yQiAgIChoZXgpCQlURUxFTkVUIENvLiwgTHRkLgorMDAwMTJCICAgICAoYmFzZSAxNikJCVRFTEVORVQgQ28uLCBMdGQuCisJCQkJCisKKzAwLTAxLTJDICAgKGhleCkJCUFyYXZveCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDEyQyAgICAgKGJhc2UgMTYpCQlBcmF2b3ggVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTY3MjUgNDB0aCBQbGFjZSBOb3J0aAorCQkJCVBseW1vdXRoIE1OIDU1NDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0yRCAgIChoZXgpCQlLb21vZG8gVGVjaG5vbG9neQorMDAwMTJEICAgICAoYmFzZSAxNikJCUtvbW9kbyBUZWNobm9sb2d5CisJCQkJMTcwIEtub3dsZXMgRHJpdmUKKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTJFICAgKGhleCkJCVBDIFBhcnRuZXIgTHRkLgorMDAwMTJFICAgICAoYmFzZSAxNikJCVBDIFBhcnRuZXIgTHRkLgorCQkJCVJtIDE5MDEtMTkwOCwgMTkvRiwgU2hhdGluIEdhbGxlcmlhCisJCQkJMTgtMjQgU2hhbiAgTWVpIFN0cmVldCwgRm8gVGFuIFNoYXRpbiwgSAorCQkJCUNISU5BCisJCQkJQ0hJTkEKKworMDAtMDEtMkYgICAoaGV4KQkJVHdpbmhlYWQgSW50ZXJuYXRpb25hbCBDb3JwCiswMDAxMkYgICAgIChiYXNlIDE2KQkJVHdpbmhlYWQgSW50ZXJuYXRpb25hbCBDb3JwCisJCQkJMkZMLCAyLCBMYW5lIDIzNSwgQmFvLUNoaWFvIFJvYWQKKwkJCQlIc2luLVRpZW4KKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtMzAgICAoaGV4KQkJRXh0cmVtZSBOZXR3b3JrcworMDAwMTMwICAgICAoYmFzZSAxNikJCUV4dHJlbWUgTmV0d29ya3MKKwkJCQkzNTg1IE1vbnJvZSBTdHJlZXQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMzEgICAoaGV4KQkJQm9zY2ggU2VjdXJpdHkgU3lzdGVtcywgSW5jLgorMDAwMTMxICAgICAoYmFzZSAxNikJCUJvc2NoIFNlY3VyaXR5IFN5c3RlbXMsIEluYy4KKwkJCQkxMzAgUGVyaW50b24gUGFya3dheQorCQkJCUZhaXJwb3J0IE5ZIDE0NDUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0zMiAgIChoZXgpCQlEcmFuZXR6IC0gQk1JCiswMDAxMzIgICAgIChiYXNlIDE2KQkJRHJhbmV0eiAtIEJNSQorCQkJCTEwMDAgTmV3IER1cmhhbSBSb2FkCisJCQkJRWRpc29uIE5KIDA4ODE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0zMyAgIChoZXgpCQlLWU9XQSBFbGVjdHJvbmljIEluc3RydW1lbnRzIEMKKzAwMDEzMyAgICAgKGJhc2UgMTYpCQlLWU9XQSBFbGVjdHJvbmljIEluc3RydW1lbnRzIEMKKwkJCQkzLTUtMSwgQ3lvZnVnYW9rYQorCQkJCUN5b2Z1IFRva3lvIAorCQkJCUpBUEFOCisKKzAwLTAxLTM0ICAgKGhleCkJCVNlbGVjdHJvbiBTeXN0ZW1zIEFHCiswMDAxMzQgICAgIChiYXNlIDE2KQkJU2VsZWN0cm9uIFN5c3RlbXMgQUcKKwkJCQlCZXJuc3RyZWFzc2UgNzAKKwkJCQlDSC0zMjUwIEx5c3MKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wMS0zNSAgIChoZXgpCQlLREMgQ29ycC4KKzAwMDEzNSAgICAgKGJhc2UgMTYpCQlLREMgQ29ycC4KKwkJCQkyMDAtMTEgQW5ZYW5nIDcgZG9uZworCQkJCU1hbkFuLUd1IEFuWWFuZS1TaSBLeXVuZ2dpLWRvCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtMzYgICAoaGV4KQkJQ3liZXJUQU4gVGVjaG5vbG9neSwgSW5jLgorMDAwMTM2ICAgICAoYmFzZSAxNikJCUN5YmVyVEFOIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk2MjYsIEJsZGcuNTMsIDE5NS01NiBTZWMuNAorCQkJCUNodW5nIEhzaW5nIFJkIENodXR1bmcsIEhzaW5jaHUKKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS0zNyAgIChoZXgpCQlJVCBGYXJtIENvcnBvcmF0aW9uCiswMDAxMzcgICAgIChiYXNlIDE2KQkJSVQgRmFybSBDb3Jwb3JhdGlvbgorCQkJCUFzYXNoaXNlaW1laSBGdWNodSBCbGRnLiAxMUYKKwkJCQkxLTE0LTEgRnVjaHUtY2hvLCBGdWNodS1zaGkgVG9reW8KKwkJCQkxODMtMDA1NSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLTM4ICAgKGhleCkJCVhBVmkgVGVjaG5vbG9naWVzIENvcnAuCiswMDAxMzggICAgIChiYXNlIDE2KQkJWEFWaSBUZWNobm9sb2dpZXMgQ29ycC4KKwkJCQk5RiwgTm8uIDEyOSwgSHNpbmcgVGUgUmQsCisJCQkJU2FuY2h1bmcgQ2l0eSAgVGFpcGVpIEhzaWVuCisJCQkJMjQxIFRBSVdBTiAyNDEgVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtMzkgICAoaGV4KQkJUG9pbnQgTXVsdGltZWRpYSBTeXN0ZW1zCiswMDAxMzkgICAgIChiYXNlIDE2KQkJUG9pbnQgTXVsdGltZWRpYSBTeXN0ZW1zCisJCQkJNFJhIDUwNywgU2hpaHdhIEluZHVzdHJpYWwgQ29tcGxleAorCQkJCTY2OS04IFN1bmdrb2ctRG9uZywgQW5zYW4tQ2l0eSwgS3l1bmdnaS0KKwkJCQlLb3JlYSA0MjUtMTEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTNBICAgKGhleCkJCVNIRUxDQUQgQ09NTVVOSUNBVElPTlMsIExURC4KKzAwMDEzQSAgICAgKGJhc2UgMTYpCQlTSEVMQ0FEIENPTU1VTklDQVRJT05TLCBMVEQuCisJCQkJUC5PLiBCb3ggODUxMworCQkJCU5ldyBJbmR1c3RyaWFsIFpvbmUgTmV0YW55YSA0MjUwNAorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wMS0zQiAgIChoZXgpCQlCTkEgU1lTVEVNUworMDAwMTNCICAgICAoYmFzZSAxNikJCUJOQSBTWVNURU1TCisJCQkJMTYzNyBTLiBNYWluIFN0cmVldAorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0zQyAgIChoZXgpCQlUSVcgU1lTVEVNUworMDAwMTNDICAgICAoYmFzZSAxNikJCVRJVyBTWVNURU1TCisJCQkJMjIxMSBMYXdzb24gTGFuZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0zRCAgIChoZXgpCQlSaXNjU3RhdGlvbiBMdGQuCiswMDAxM0QgICAgIChiYXNlIDE2KQkJUmlzY1N0YXRpb24gTHRkLgorCQkJCTE2OCBFbGxpb3R0IFN0cmVldAorCQkJCVR5bGRlc2xleSBNMjkgODA1CisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS0zRSAgIChoZXgpCQlBc2NvbSBUYXRlY28gQUIKKzAwMDEzRSAgICAgKGJhc2UgMTYpCQlBc2NvbSBUYXRlY28gQUIKKwkJCQlCb3ggODc4MworCQkJCTQwMjc2IEdvdGVib3JnCisJCQkJU1dFREVOCisKKzAwLTAxLTNGICAgKGhleCkJCU5laWdoYm9yIFdvcmxkIENvLiwgTHRkLgorMDAwMTNGICAgICAoYmFzZSAxNikJCU5laWdoYm9yIFdvcmxkIENvLiwgTHRkLgorCQkJCTExNEEgWUVSQywgMTM0LCBTaGluY2hvbl9kb25nCisJCQkJU2VvZGFlbXVuX2t1IFNlb3VsCisJCQkJMTIwLTc0OSAxMjAtNzQ5IEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTQwICAgKGhleCkJCVNlbmR0ZWsgQ29ycG9yYXRpb24KKzAwMDE0MCAgICAgKGJhc2UgMTYpCQlTZW5kdGVrIENvcnBvcmF0aW9uCisJCQkJMTJGLTMsIDMzMywgU2VjLjEKKwkJCQlLdWFuZy1GdSBSb2FkIEhzaW5jaHUKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTQxICAgKGhleCkJCUNBQkxFIFBSSU5UCiswMDAxNDEgICAgIChiYXNlIDE2KQkJQ0FCTEUgUFJJTlQKKwkJCQlKb3plZiBDYXJkeW5zdHJhYXQgMTYKKwkJCQlCICAtIDk0MjAgRXJwZS1NZXJlCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtMDEtNDIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMTQyICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS00MyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAxNDMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZSAtIFNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTQ0ICAgKGhleCkJCUVNQyBDb3Jwb3JhdGlvbgorMDAwMTQ0ICAgICAoYmFzZSAxNikJCUVNQyBDb3Jwb3JhdGlvbgorCQkJCTIyOCBTb3V0aCBTdC4KKwkJCQlIb3BraW50b24gTUEgMDE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTQ1ICAgKGhleCkJCVdJTlNZU1RFTVMsIElOQy4KKzAwMDE0NSAgICAgKGJhc2UgMTYpCQlXSU5TWVNURU1TLCBJTkMuCisJCQkJNzE1IFN0YWRpdW0gRHJpdmUKKwkJCQlBcmxpbmd0b24gVFggNzYwMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTQ2ICAgKGhleCkJCVRlc2NvIENvbnRyb2xzLCBJbmMuCiswMDAxNDYgICAgIChiYXNlIDE2KQkJVGVzY28gQ29udHJvbHMsIEluYy4KKwkJCQlQLk8uIEJveCAyMzkwMTIKKwkJCQlTYWNyYW1lbnRvIENBIDk1ODIzLTkwMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTQ3ICAgKGhleCkJCVpob25lIFRlY2hub2xvZ2llcworMDAwMTQ3ICAgICAoYmFzZSAxNikJCVpob25lIFRlY2hub2xvZ2llcworCQkJCTcwMDEgT2FrcG9ydCBTdHJlZXQKKwkJCQlPYWtsYW5kIENBIDk0NjIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS00OCAgIChoZXgpCQlYLXRyYVdlYiBJbmMuCiswMDAxNDggICAgIChiYXNlIDE2KQkJWC10cmFXZWIgSW5jLgorCQkJCTY3NTAgV2VzdCA5M3JkIFN0cmVldCAtIFN0ZS4gIzIxMAorCQkJCU92ZXJsYW5kIFBhcmsgS1MgNjYyMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTQ5ICAgKGhleCkJCVQuRC5ULiBUcmFuc2ZlciBEYXRhIFRlc3QgR21iSAorMDAwMTQ5ICAgICAoYmFzZSAxNikJCVQuRC5ULiBUcmFuc2ZlciBEYXRhIFRlc3QgR21iSAorCQkJCVNpZW1lbnNzdHJhc3NlIDE4CisJCQkJODQwNTEgRXNzZW5iYWNoCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDEtNEEgICAoaGV4KQkJU29ueSBDb3Jwb3JhdGlvbgorMDAwMTRBICAgICAoYmFzZSAxNikJCVNvbnkgQ29ycG9yYXRpb24KKwkJCQlHb3RlbnlhbWEgVGVjIDUtMS0yCisJCQkJS2l0YXNoaW5hZ2F3YSwKKwkJCQlUb2t5byBTaGluYWdhd2Eta3UgMTQxLTAwMDEKKwkJCQlKQVBBTgorCiswMC0wMS00QiAgIChoZXgpCQlFbm5vdmF0ZSBOZXR3b3JrcywgSW5jLgorMDAwMTRCICAgICAoYmFzZSAxNikJCUVubm92YXRlIE5ldHdvcmtzLCBJbmMuCisJCQkJNjAgQ29kbWFuIEhpbGwgUm9hZAorCQkJCUJveGJvcm91Z2ggTUEgMDE3MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTRDICAgKGhleCkJCUJlcmtlbGV5IFByb2Nlc3MgQ29udHJvbAorMDAwMTRDICAgICAoYmFzZSAxNikJCUJlcmtlbGV5IFByb2Nlc3MgQ29udHJvbAorCQkJCTQxMjQgTGFrZXNpZGUgRHIKKwkJCQlSaWNobW9uZCBDQSA5NDgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNEQgICAoaGV4KQkJU2hpbiBLaW4gRW50ZXJwcmlzZXMgQ28uLCBMdGQKKzAwMDE0RCAgICAgKGJhc2UgMTYpCQlTaGluIEtpbiBFbnRlcnByaXNlcyBDby4sIEx0ZAorCQkJCTcsIEZVIEhzaW5nIFN0LiBUdWUgQ2hlbmcgSW5kLgorCQkJCURpc3QuIFRhaXBlaQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS00RSAgIChoZXgpCQlXSU4gRW50ZXJwcmlzZXMsIEluYy4KKzAwMDE0RSAgICAgKGJhc2UgMTYpCQlXSU4gRW50ZXJwcmlzZXMsIEluYy4KKwkJCQkzMDAgV2lsbG93IFN0cmVldCBTb3V0aAorCQkJCU5vcnRoIEFuZG92ZXIgTUEgMDE4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTRGICAgKGhleCkJCUFEVFJBTiBJTkMKKzAwMDE0RiAgICAgKGJhc2UgMTYpCQlBRFRSQU4gSU5DCisJCQkJOTAxIEV4cGxvcmVyIEJsdmQuCisJCQkJSHVudHN2aWxsZSBBTCAzNTgwNi0yODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS01MCAgIChoZXgpCQlHSUxBVCBDT01NVU5JQ0FUSU9OUywgTFRELgorMDAwMTUwICAgICAoYmFzZSAxNikJCUdJTEFUIENPTU1VTklDQVRJT05TLCBMVEQuCisJCQkJMjEvRCBZZWdpYSBLYXBheWltIFN0cmVldAorCQkJCVBldGFjaC1UaWt2YSA0OTEzMAorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wMS01MSAgIChoZXgpCQlFbnNlbWJsZSBDb21tdW5pY2F0aW9ucworMDAwMTUxICAgICAoYmFzZSAxNikJCUVuc2VtYmxlIENvbW11bmljYXRpb25zCisJCQkJNjI1NiBHcmVlbm1hbiBEcml2ZSAtIFN0ZS4gIzQwMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNTIgICAoaGV4KQkJQ0hST01BVEVLIElOQy4KKzAwMDE1MiAgICAgKGJhc2UgMTYpCQlDSFJPTUFURUsgSU5DLgorCQkJCTYtMTAsIE1peWF6YWtpIDItQ2hvbWUKKwkJCQlNaXlhbWFlLUt1LCBLYXdhc2FraS1zaGkgS2FuYWdhd2EsIDIxNi0wCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS01MyAgIChoZXgpCQlBUkNIVEVLIFRFTEVDT00gQ09SUE9SQVRJT04KKzAwMDE1MyAgICAgKGJhc2UgMTYpCQlBUkNIVEVLIFRFTEVDT00gQ09SUE9SQVRJT04KKwkJCQk0RiwgTm8uOSBMYW5lIDEzMCwgTWluLUNoeXVhbiBSZC4KKwkJCQlIc2luLVRpZW4gVGFpcGVpCisJCQkJMjMxIFRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtNTQgICAoaGV4KQkJRzNNIENvcnBvcmF0aW9uCiswMDAxNTQgICAgIChiYXNlIDE2KQkJRzNNIENvcnBvcmF0aW9uCisJCQkJNDMyMCBTdGV2ZW5zIENyZWVrIEJsdmQuIC0gU3RlLiAjMjc1CisJCQkJU2FuIEpvc2UgQ0EgOTUxMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTU1ICAgKGhleCkJCVByb21pc2UgVGVjaG5vbG9neSwgSW5jLgorMDAwMTU1ICAgICAoYmFzZSAxNikJCVByb21pc2UgVGVjaG5vbG9neSwgSW5jLgorCQkJCTRGLCAxLCBQcm9zcGVyaXR5IDFzdCBSb2FkCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsgSHNpbi1DaHUKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTU2ICAgKGhleCkJCUZJUkVXSVJFRElSRUNULkNPTSwgSU5DLgorMDAwMTU2ICAgICAoYmFzZSAxNikJCUZJUkVXSVJFRElSRUNULkNPTSwgSU5DLgorCQkJCTQxMzIgU3BpY2V3b29kIFNwcmluZ3MgUmQgLSAjSS00CisJCQkJQXVzdGluIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS01NyAgIChoZXgpCQlTWVNXQVZFIENPLiwgTFRECiswMDAxNTcgICAgIChiYXNlIDE2KQkJU1lTV0FWRSBDTy4sIExURAorCQkJCURvbmdobyBCL0QgNUYsIDIyMS0yCisJCQkJTm9uaHl1bi1Eb25nLCBLYW5nbmFtLUd1IFNlb3VsCisJCQkJS09SRUEgMTM1LTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS01OCAgIChoZXgpCQlFbGVjdHJvIEluZHVzdHJpZXMvR2F1Z2UgVGVjaAorMDAwMTU4ICAgICAoYmFzZSAxNikJCUVsZWN0cm8gSW5kdXN0cmllcy9HYXVnZSBUZWNoCisJCQkJMTgwMCBTaGFtZXMgRHJpdmUKKwkJCQlXZXN0YnVyeSBOWSAxMTU5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNTkgICAoaGV4KQkJUzEgQ29ycG9yYXRpb24KKzAwMDE1OSAgICAgKGJhc2UgMTYpCQlTMSBDb3Jwb3JhdGlvbgorCQkJCVImRCBDZW50ZXIsIFMxIEJsZGcuCisJCQkJNTktOCwgTm9uaHl1bi1Eb25nIEthbmduYW0tS3UgU2VvdWwKKwkJCQlLT1JFQSAxMzUtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTVBICAgKGhleCkJCURpZ2l0YWwgVmlkZW8gQnJvYWRjYXN0aW5nCiswMDAxNUEgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBWaWRlbyBCcm9hZGNhc3RpbmcKKwkJCQlEVkIsICUgRXVyb3BlYW4gQnJvYWRjYXN0aW5nIFVuaW9uCisJCQkJMTdBIEFuY2llbm5lIFJvdXRlIENILTEyMTggR3JhbmQgU2Fjb25uZQorCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDAtMDEtNUIgICAoaGV4KQkJSVRBTFRFTCBTLnAuQS9SRi1VUC1JCiswMDAxNUIgICAgIChiYXNlIDE2KQkJSVRBTFRFTCBTLnAuQS9SRi1VUC1JCisJCQkJMjAwMTkgQ2FzdC5TZXR0aW1vIE0uc2UgKE1JKQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtMDEtNUMgICAoaGV4KQkJQ0FEQU5UIElOQy4KKzAwMDE1QyAgICAgKGJhc2UgMTYpCQlDQURBTlQgSU5DLgorCQkJCTQzNDMgQ29tbWVyY2UgQ291cnQgLSBTdGUuICMyMDcKKwkJCQlMaXNsZSBJTCA2MDUzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNUQgICAoaGV4KQkJT3JhY2xlIENvcnBvcmF0aW9uCiswMDAxNUQgICAgIChiYXNlIDE2KQkJT3JhY2xlIENvcnBvcmF0aW9uCisJCQkJMTcgTmV0d29yayBDaXJjbGUKKwkJCQlCdWlsZGluZyAxNywgVU1QSzE3LTEzMQorCQkJCU1lbmxvIFBhcmsgQ0EgOTUwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTVFICAgKGhleCkJCUJFU1QgVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwMDE1RSAgICAgKGJhc2UgMTYpCQlCRVNUIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJN0YsIEhhZXN1bmcgQi9ECisJCQkJMTE1LTEyIE5vbmh5dW4tZG9uZyBLYW5nbmFtLUt1IFNlb3VsLCAxMworCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTVGICAgKGhleCkJCURJR0lUQUwgREVTSUdOIEdtYkgKKzAwMDE1RiAgICAgKGJhc2UgMTYpCQlESUdJVEFMIERFU0lHTiBHbWJICisJCQkJQWx0LU1vYWJpdCA5NmEKKwkJCQlCZXJsaW4gRC0xMDU1OQorCQkJCUdFUk1BTlkKKworMDAtMDEtNjAgICAoaGV4KQkJRUxNRVggQ28uLCBMVEQuCiswMDAxNjAgICAgIChiYXNlIDE2KQkJRUxNRVggQ28uLCBMVEQuCisJCQkJMTYtMzAgS2ltYWNoaQorCQkJCUFvYmFrdSBTZW5kYWktU2hpIE1peWFnaS1LZW4KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLTYxICAgKGhleCkJCU1ldGEgTWFjaGluZSBUZWNobm9sb2d5CiswMDAxNjEgICAgIChiYXNlIDE2KQkJTWV0YSBNYWNoaW5lIFRlY2hub2xvZ3kKKwkJCQk0MDAgU2lsdmVyIENlZGFyIENvdXJ0IC0gc3RlLiAjMjIwCisJCQkJQ2hhcGVsIEhpbGwgTkMgMjc1MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTYyICAgKGhleCkJCUN5Z25ldCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDE2MiAgICAgKGJhc2UgMTYpCQlDeWduZXQgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTQxMSBMZU1heSBEcml2ZSAjMzAxCisJCQkJQ2Fycm9sbHRvbiBUWCA3NTAwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNjMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMTYzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS02NCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAxNjQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZSAtIFNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTY1ICAgKGhleCkJCUFpclN3aXRjaCBDb3Jwb3JhdGlvbgorMDAwMTY1ICAgICAoYmFzZSAxNikJCUFpclN3aXRjaCBDb3Jwb3JhdGlvbgorCQkJCTM3RWFzdCAyMDBTb3V0aAorCQkJCVNwcmluZ3ZpbGxlIFVUIDg0NjYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS02NiAgIChoZXgpCQlUQyBHUk9VUCBBL1MKKzAwMDE2NiAgICAgKGJhc2UgMTYpCQlUQyBHUk9VUCBBL1MKKwkJCQlTaW5kYWxzdmVqIDM0CisJCQkJUmlzc2tvdiAgREstODI0MAorCQkJCURFTk1BUksKKworMDAtMDEtNjcgICAoaGV4KQkJSElPS0kgRS5FLiBDT1JQT1JBVElPTgorMDAwMTY3ICAgICAoYmFzZSAxNikJCUhJT0tJIEUuRS4gQ09SUE9SQVRJT04KKwkJCQk4MSBLb2l6dW1pLCBVZWRhLCBOYWdhbm8KKwkJCQkzODYtMTE5MiAzODYtMTE5MiBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLTY4ICAgKGhleCkJCVZJVEFOQSBDT1JQT1JBVElPTgorMDAwMTY4ICAgICAoYmFzZSAxNikJCVZJVEFOQSBDT1JQT1JBVElPTgorCQkJCTI1MDAgRG9uIFJlaWQgRHJpdmUKKwkJCQlPdHRhd2EsIE9udGFyaW8KKwkJCQlLMUggMUUxIEsxSCAxRTEgQ0FOQURBCisJCQkJQ0FOQURBCisKKzAwLTAxLTY5ICAgKGhleCkJCUNlbGVzdGl4IE5ldHdvcmtzIFB0ZSBMdGQuCiswMDAxNjkgICAgIChiYXNlIDE2KQkJQ2VsZXN0aXggTmV0d29ya3MgUHRlIEx0ZC4KKwkJCQkxOCBUYW5uZXJ5IExhbmUgIzA1LTAzCisJCQkJTGlhbiBUb25nIEJ1aWxkaW5nCisJCQkJU0lOR0FQT1JFIDM0Nzc4MAorCQkJCVNJTkdBUE9SRQorCiswMC0wMS02QSAgIChoZXgpCQlBTElURUMKKzAwMDE2QSAgICAgKGJhc2UgMTYpCQlBTElURUMKKwkJCQlMYXZhbCBUZWNobm9wb2xlIEIuUC4gMTAyCisJCQkJNTMwMDEgTEFWQUwgQ2VkZXgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDEtNkIgICAoaGV4KQkJTGlnaHRDaGlwLCBJbmMuCiswMDAxNkIgICAgIChiYXNlIDE2KQkJTGlnaHRDaGlwLCBJbmMuCisJCQkJNSBJbmR1c3RyaWFsIFdheQorCQkJCVNhbGVtIE5IIDAzMDc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS02QyAgIChoZXgpCQlGT1hDT05OCiswMDAxNkMgICAgIChiYXNlIDE2KQkJRk9YQ09OTgorCQkJCTYxMjUgUGh5bGxpcyBEcml2ZQorCQkJCUN5cHJlc3MgQ0EgOTA2MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTZEICAgKGhleCkJCUNhcnJpZXJDb21tIEluYy4KKzAwMDE2RCAgICAgKGJhc2UgMTYpCQlDYXJyaWVyQ29tbSBJbmMuCisJCQkJNTM5IEVuY2ludGFzIEJsdmQuCisJCQkJRW5jaW50YXMgQ0EgOTIwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTZFICAgKGhleCkJCUNvbmtsaW4gQ29ycG9yYXRpb24KKzAwMDE2RSAgICAgKGJhc2UgMTYpCQlDb25rbGluIENvcnBvcmF0aW9uCisJCQkJNjE0MSBDcm9va2VkIENyZWVrIFJvYWQKKwkJCQlOb3Jjcm9zcyBHQSAzMDA5Mi0zMTkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS02RiAgIChoZXgpCQlJbmtlbCBDb3JwLgorMDAwMTZGICAgICAoYmFzZSAxNikJCUlua2VsIENvcnAuCisJCQkJQ2hlb25nQ2hlb24tRG9uZywgQnVQeWVvbmctR3UsCisJCQkJSW5jaGVvbi1TaSAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTcwICAgKGhleCkJCUVTRSBFbWJlZGRlZCBTeXN0ZW0gRW5naW5lZXInZworMDAwMTcwICAgICAoYmFzZSAxNikJCUVTRSBFbWJlZGRlZCBTeXN0ZW0gRW5naW5lZXInZworCQkJCU11ZWhsYmFjaHN0ci4gMjAKKwkJCQk3ODM1MSBCb2RtYW4tTHVkd2lnc2hhZmVuCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDEtNzEgICAoaGV4KQkJQWxsaWVkIERhdGEgVGVjaG5vbG9naWVzCiswMDAxNzEgICAgIChiYXNlIDE2KQkJQWxsaWVkIERhdGEgVGVjaG5vbG9naWVzCisJCQkJUGFzY2Fsd2VnIDEsCisJCQkJMzIwOCBLTCBTcGlqa2VuaXNzZQorCQkJCVRIRSBORVRIRVJMQU5EUworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTAxLTcyICAgKGhleCkJCVRlY2hub0xhbmQgQ28uLCBMVEQuCiswMDAxNzIgICAgIChiYXNlIDE2KQkJVGVjaG5vTGFuZCBDby4sIExURC4KKwkJCQkzLTE3LTExIEFrZWJvbm8tY2hvCisJCQkJRnVrdXlhbWEtY2l0eSBIaXJvc2hpbWEgNzIxLTA5MjUKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLTczICAgKGhleCkJCUFNQ0MKKzAwMDE3MyAgICAgKGJhc2UgMTYpCQlBTUNDCisJCQkJNjI5MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNzQgICAoaGV4KQkJQ3liZXJPcHRpY3MgQ29ycG9yYXRpb24KKzAwMDE3NCAgICAgKGJhc2UgMTYpCQlDeWJlck9wdGljcyBDb3Jwb3JhdGlvbgorCQkJCTU5MDAgR29sZGVuIEhpbGxzIERyaXZlCisJCQkJR29sZGVuIFZhbGxleSBNTiA1NTQxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNzUgICAoaGV4KQkJUmFkaWFudCBDb21tdW5pY2F0aW9ucyBDb3JwLgorMDAwMTc1ICAgICAoYmFzZSAxNikJCVJhZGlhbnQgQ29tbXVuaWNhdGlvbnMgQ29ycC4KKwkJCQk1MDAxIEhhZGxleSBSb2FkCisJCQkJU291dGggUGxhaW5maWVsZCBOSiAwNzA4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNzYgICAoaGV4KQkJT3JpZW50IFNpbHZlciBFbnRlcnByaXNlcworMDAwMTc2ICAgICAoYmFzZSAxNikJCU9yaWVudCBTaWx2ZXIgRW50ZXJwcmlzZXMKKwkJCQk4NzQwIFdoaXRlIE9hayBBdmVudWUKKwkJCQlSYW5jaG8gQ3VjYW1vbmdhIENBIDkxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS03NyAgIChoZXgpCQlFRFNMCiswMDAxNzcgICAgIChiYXNlIDE2KQkJRURTTAorCQkJCUhhYmFyemVsIDEgc3QKKwkJCQlSYW1hdCBBaGF5YWwgVGVsLUF2aXYKKwkJCQlJU1JBRUwgNjk3MTAKKwkJCQlJU1JBRUwKKworMDAtMDEtNzggICAoaGV4KQkJTUFSR0kgU3lzdGVtcywgSW5jLgorMDAwMTc4ICAgICAoYmFzZSAxNikJCU1BUkdJIFN5c3RlbXMsIEluYy4KKwkJCQkzMTU1IEtlYXJuZXkgU3RyZWV0LiAtIFN0ZS4jMjAwCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNzkgICAoaGV4KQkJV0lSRUxFU1MgVEVDSE5PTE9HWSwgSU5DLgorMDAwMTc5ICAgICAoYmFzZSAxNikJCVdJUkVMRVNTIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQlBbmFtIEJsZGcuIDJGbCwgMTU0LTE3CisJCQkJU2Ftc3VuZy1Eb25nLCBLYW5nbmFtLUt1IFNlb3VsLCAxMzUtMDkwCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtN0EgICAoaGV4KQkJQ2hlbmdkdSBNYWlwdSBFbGVjdHJpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAwMTdBICAgICAoYmFzZSAxNikJCUNoZW5nZHUgTWFpcHUgRWxlY3RyaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKwkJCQlOQU5ZSSBCVUlMRElORywgQ09OU1VMQVRFIFJELiwKKwkJCQlDSEVOR0RVCisJCQkJUC5SLiBDSElOQQorCQkJCUNISU5BCisKKzAwLTAxLTdCICAgKGhleCkJCUhlaWRlbGJlcmdlciBEcnVja21hc2NoaW5lbiBBRworMDAwMTdCICAgICAoYmFzZSAxNikJCUhlaWRlbGJlcmdlciBEcnVja21hc2NoaW5lbiBBRworCQkJCUt1cmZ1ZXJzdGVuYW5sYWdlIDUyLTYwCisJCQkJNjkxMTUgSGVpZGVsYmVyZworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLTdDICAgKGhleCkJCUFHLUUgR21iSAorMDAwMTdDICAgICAoYmFzZSAxNikJCUFHLUUgR21iSAorCQkJCURlbm5ld2FydHN0ci4gMjcKKwkJCQk1MjA2OCBBYWNoZW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMS03RCAgIChoZXgpCQlUaGVybW9RdWVzdAorMDAwMTdEICAgICAoYmFzZSAxNikJCVRoZXJtb1F1ZXN0CisJCQkJMzU1IFJpdmVyIE9ha3MgUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS03RSAgIChoZXgpCQlBRFRFSyBTeXN0ZW0gU2NpZW5jZSBDby4sIEx0ZC4KKzAwMDE3RSAgICAgKGJhc2UgMTYpCQlBRFRFSyBTeXN0ZW0gU2NpZW5jZSBDby4sIEx0ZC4KKwkJCQlZQlAgV2VzdCBUb3dlcgorCQkJCTEzNCBHb2hkby1jaG8sCisJCQkJSG9kb2dheWEgWW9rb2hhbWEgCisJCQkJSkFQQU4KKworMDAtMDEtN0YgICAoaGV4KQkJRXhwZXJpZW5jZSBNdXNpYyBQcm9qZWN0CiswMDAxN0YgICAgIChiYXNlIDE2KQkJRXhwZXJpZW5jZSBNdXNpYyBQcm9qZWN0CisJCQkJMTEwIC0xMTB0aCBBdmVudWUgTkUgLSBTdGUuICM0MDAKKwkJCQlCZWxsZXZ1ZSBXQSA5ODAwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtODAgICAoaGV4KQkJQU9wZW4sIEluYy4KKzAwMDE4MCAgICAgKGJhc2UgMTYpCQlBT3BlbiwgSW5jLgorCQkJCTZGLCA4OCwgU2VjLjEsIEhzaW4gVGFpCisJCQkJV3UgUm9hZCwgSHNpY2hpaCBUYWlwZWkgSHNpZW4gMjIxCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTgxICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwMTgxICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTExMDAgVGVjaG5vbG9neSBQYXJrIERyaXZlCisJCQkJQmlsbGVyaWNhIE1BIDAxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS04MiAgIChoZXgpCQlESUNBIFRFQ0hOT0xPR0lFUyBBRworMDAwMTgyICAgICAoYmFzZSAxNikJCURJQ0EgVEVDSE5PTE9HSUVTIEFHCisJCQkJUm90aGVyc3RyLCAxOQorCQkJCUQtMTAyNDUgQmVybGluCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDEtODMgICAoaGV4KQkJQU5JVEUgVEVMRUNPTVMKKzAwMDE4MyAgICAgKGJhc2UgMTYpCQlBTklURSBURUxFQ09NUworCQkJCTEyNyBGbGVldCBSb2FkLCBGbGVldAorCQkJCUhhbXBzaGlyZSwgR1VCIDhQRAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDEtODQgICAoaGV4KQkJU0lFQiAmIE1FWUVSIEFHCiswMDAxODQgICAgIChiYXNlIDE2KQkJU0lFQiAmIE1FWUVSIEFHCisJCQkJQXVmIGRlbSBTY2htYWFya2FtcCAyMQorCQkJCUQtMjEzMzkgTHVuZWJ1cmcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMS04NSAgIChoZXgpCQlBbG9rYSBDby4sIEx0ZC4KKzAwMDE4NSAgICAgKGJhc2UgMTYpCQlBbG9rYSBDby4sIEx0ZC4KKwkJCQkzLTctMTksIEltYWkgT21lLWNpdHkKKwkJCQlUb2t5bworCQkJCTE5OC04NTc3IEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtODYgICAoaGV4KQkJVXdlIERpc2NoCiswMDAxODYgICAgIChiYXNlIDE2KQkJVXdlIERpc2NoCisJCQkJRWljaGVuaGFpbnN0cmFzc2UgMTQKKwkJCQk5MTIwNyBMYXVmIGEuZC4gUGVnbml0egorCQkJCUdFUk1BTlkKKworMDAtMDEtODcgICAoaGV4KQkJaTJTRSBHbWJICiswMDAxODcgICAgIChiYXNlIDE2KQkJaTJTRSBHbWJICisJCQkJQ2FybC1aZWlzcyAtIFN0ci4gNDYKKwkJCQk0NzQ0NSBNb2VycworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLTg4ICAgKGhleCkJCUxYQ08gVGVjaG5vbG9naWVzIGFnCiswMDAxODggICAgIChiYXNlIDE2KQkJTFhDTyBUZWNobm9sb2dpZXMgYWcKKwkJCQlHaW1tZXJzdHIuIDY5CisJCQkJRC0xMDExNyBCZXJsaW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMS04OSAgIChoZXgpCQlSZWZyYWN0aW9uIFRlY2hub2xvZ3ksIEluYy4KKzAwMDE4OSAgICAgKGJhc2UgMTYpCQlSZWZyYWN0aW9uIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyNjI2IExvbWJhcmR5IExhbmUgLSBTdGUuICMxMDUKKwkJCQlEYWxsYXMgVFggNzUyMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLThBICAgKGhleCkJCVJPSSBDT01QVVRFUiBBRworMDAwMThBICAgICAoYmFzZSAxNikJCVJPSSBDT01QVVRFUiBBRworCQkJCVdlcm5lci12b24tU2llbWVucy1TdHIuIDEKKwkJCQk5MzQyNiBSb2RpbmcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMS04QiAgIChoZXgpCQlOZXRMaW5rcyBDby4sIEx0ZC4KKzAwMDE4QiAgICAgKGJhc2UgMTYpCQlOZXRMaW5rcyBDby4sIEx0ZC4KKwkJCQkzRiBEc2NvbSBCbGRnLiwgMjM4LTMKKwkJCQlQb2ktZG9uZywgS2FuZ25hbS1LdSBTZW91bAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLThDICAgKGhleCkJCU1lZ2EgVmlzaW9uCiswMDAxOEMgICAgIChiYXNlIDE2KQkJTWVnYSBWaXNpb24KKwkJCQk1NzY1IFRob3Jud29vZCBEcml2ZQorCQkJCUdvbGV0YSBDQSA5MzExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtOEQgICAoaGV4KQkJQXVkZVNpIFRlY2hub2xvZ2llcworMDAwMThEICAgICAoYmFzZSAxNikJCUF1ZGVTaSBUZWNobm9sb2dpZXMKKwkJCQlTdWl0ZSAxODAsIDY4MTUKKwkJCQk4dGggU3RyZWV0IE4uRS4gQ2FsZ2FyeQorCQkJCUFCIENBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMS04RSAgIChoZXgpCQlMb2dpdGVjIENvcnBvcmF0aW9uCiswMDAxOEUgICAgIChiYXNlIDE2KQkJTG9naXRlYyBDb3Jwb3JhdGlvbgorCQkJCTgyNjggUm9rdWRvdWhhcmEsIE1pc3V6dQorCQkJCUluYSwgTmFnYW5vCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS04RiAgIChoZXgpCQlLZW5ldGVjLCBJbmMuCiswMDAxOEYgICAgIChiYXNlIDE2KQkJS2VuZXRlYywgSW5jLgorCQkJCTExNSBIdXJsZXkgUm9hZAorCQkJCU94Zm9yZCBDVCAwNjc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtOTAgICAoaGV4KQkJU01LLU0KKzAwMDE5MCAgICAgKGJhc2UgMTYpCQlTTUstTQorCQkJCTEwNTUgVGllcnJhIERlbCBSZXkKKwkJCQlDaHVsYSBWaXN0YSBDQSA5MTkxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtOTEgICAoaGV4KQkJU1lSRUQgRGF0YSBTeXN0ZW1zCiswMDAxOTEgICAgIChiYXNlIDE2KQkJU1lSRUQgRGF0YSBTeXN0ZW1zCisJCQkJMjcyIExhbmVzIE1pbGwgUm9hZAorCQkJCUhvd2VsbCBOSiAwNzczMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtOTIgICAoaGV4KQkJVGV4YXMgRGlnaXRhbCBTeXN0ZW1zCiswMDAxOTIgICAgIChiYXNlIDE2KQkJVGV4YXMgRGlnaXRhbCBTeXN0ZW1zCisJCQkJNDAwIFRlY2hub2xvZ3kgUGFya3dheQorCQkJCUNvbGxlZ2UgU3RhdGlvbiBUWCA3Nzg0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtOTMgICAoaGV4KQkJSGFuYnl1bCBUZWxlY29tIENvLiwgTHRkLgorMDAwMTkzICAgICAoYmFzZSAxNikJCUhhbmJ5dWwgVGVsZWNvbSBDby4sIEx0ZC4KKwkJCQk1dGggRmwuIE9rc2FuIEJsZGcuCisJCQkJMTU3LTMzIFNhbXN1bmctRG9uZyBLYW5nbmFtLWt1IFNlb3VsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtOTQgICAoaGV4KQkJQ2FwaXRhbCBFcXVpcG1lbnQgQ29ycG9yYXRpb24KKzAwMDE5NCAgICAgKGJhc2UgMTYpCQlDYXBpdGFsIEVxdWlwbWVudCBDb3Jwb3JhdGlvbgorCQkJCTkwMCBNaWRkbGVzZXggVHVybnBpa2UgLSBCbGRnLiAyCisJCQkJQmlsbGVyaWNhIE1BIDAxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS05NSAgIChoZXgpCQlTZW5hIFRlY2hub2xvZ2llcywgSW5jLgorMDAwMTk1ICAgICAoYmFzZSAxNikJCVNlbmEgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTE2LTIzIFNoaW5saW0tZG9uZworCQkJCU9uc3VuZyBCbGRnLiA4dGggRmxvb3IgS3dhbmFrLWt1IFNlb3VsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtOTYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMTk2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS05NyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAxOTcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZSAtIFNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTk4ICAgKGhleCkJCURhcmltIFZpc2lvbgorMDAwMTk4ICAgICAoYmFzZSAxNikJCURhcmltIFZpc2lvbgorCQkJCVRhZWpvbiBFeHBvIFZlbnR1cmUgVG93bgorCQkJCTMtMSBEb3J5b25nLWRvbmcsIFl1c3VuZy1ndSBUYWVqb24KKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS05OSAgIChoZXgpCQlIZWlTZWkgRWxlY3Ryb25pY3MKKzAwMDE5OSAgICAgKGJhc2UgMTYpCQlIZWlTZWkgRWxlY3Ryb25pY3MKKwkJCQk1LzcgQWxsZXkgOCwgTGFuZSA0NQorCQkJCVBvYWx0c2luIFJvYWQgSHNpbnRpZW4gQ2l0eQorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtOUEgICAoaGV4KQkJTEVVTklHIEdtYkgKKzAwMDE5QSAgICAgKGJhc2UgMTYpCQlMRVVOSUcgR21iSAorCQkJCVdpbGhlbG0tT3N0d2FsZC1TdHIuIDE3CisJCQkJNTM3MjEgU2llZ2J1cmcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMS05QiAgIChoZXgpCQlLeW90byBNaWNyb2NvbXB1dGVyIENvLiwgTHRkLgorMDAwMTlCICAgICAoYmFzZSAxNikJCUt5b3RvIE1pY3JvY29tcHV0ZXIgQ28uLCBMdGQuCisJCQkJMi0yNyBIYWNoaWpvZ2Fva2EKKwkJCQlOYWdhb2tha3lvLWNpdHkgS3lvdG8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLTlDICAgKGhleCkJCUpEUyBVbmlwaGFzZSBJbmMuCiswMDAxOUMgICAgIChiYXNlIDE2KQkJSkRTIFVuaXBoYXNlIEluYy4KKwkJCQk1NzAgV2VzdCBIdW50IENsdWIgUm9hZAorCQkJCU5hcGVvbiwgT04gSzFSIDdUNworCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMS05RCAgIChoZXgpCQlFLUNvbnRyb2wgU3lzdGVtcywgSW5jLgorMDAwMTlEICAgICAoYmFzZSAxNikJCUUtQ29udHJvbCBTeXN0ZW1zLCBJbmMuCisJCQkJOTQyMCBMdXJsaW5lIEF2ZS4sIFVuaXRlCisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtOUUgICAoaGV4KQkJRVNTIFRlY2hub2xvZ3ksIEluYy4KKzAwMDE5RSAgICAgKGJhc2UgMTYpCQlFU1MgVGVjaG5vbG9neSwgSW5jLgorCQkJCTQ4NDAxIEZyZW1vbnQgQmx2ZC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS05RiAgIChoZXgpCQlQaG9uZXggQnJvYWRiYW5kCiswMDAxOUYgICAgIChiYXNlIDE2KQkJUGhvbmV4IEJyb2FkYmFuZAorCQkJCTY5NTIgSGlnaCBUZWNoIERyaXZlCisJCQkJTWlkdmFsZSBVVCA4NDA0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQTAgICAoaGV4KQkJSW5maW5pbGluayBDb3Jwb3JhdGlvbgorMDAwMUEwICAgICAoYmFzZSAxNikJCUluZmluaWxpbmsgQ29ycG9yYXRpb24KKwkJCQkxNzQwIEUuIEdhcnJ5IEF2ZS4gLSBTdGUuICMyMDYKKwkJCQlTYW50YSBBbmEgQ0EgOTI3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUExICAgKGhleCkJCU1hZy1UZWssIEluYy4KKzAwMDFBMSAgICAgKGJhc2UgMTYpCQlNYWctVGVrLCBJbmMuCisJCQkJMjA3MjUgU291dGggQW5uYWxlZSBBdmUuCisJCQkJQ2Fyc29uIENBIDkwNzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1BMiAgIChoZXgpCQlMb2dpY2FsIENvLiwgTHRkLgorMDAwMUEyICAgICAoYmFzZSAxNikJCUxvZ2ljYWwgQ28uLCBMdGQuCisJCQkJNDU5OCBNdXJha3VzaGktY2hvCisJCQkJSGFtYW1hdHN1LXNoaSwgU2hpenVva2Eta2VuCisJCQkJNDMxLTEyMDcgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS1BMyAgIChoZXgpCQlHRU5FU1lTIExPR0lDLCBJTkMuCiswMDAxQTMgICAgIChiYXNlIDE2KQkJR0VORVNZUyBMT0dJQywgSU5DLgorCQkJCTEwRiwgTm8uIDExLCBMbi4zLiwKKwkJCQlUc2FvIFRpIFdlaSwgU2hlbmtlbmcgVGFpcGVpCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS1BNCAgIChoZXgpCQlNaWNyb2xpbmsgQ29ycG9yYXRpb24KKzAwMDFBNCAgICAgKGJhc2UgMTYpCQlNaWNyb2xpbmsgQ29ycG9yYXRpb24KKwkJCQkxMTExMCBPaGlvIEF2ZS4sIC0gU3RlLiAjMTA4CisJCQkJTG9zIEFuZ2VsZXMgQ0EgOTAwMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUE1ICAgKGhleCkJCU5leHRjb21tLCBJbmMuCiswMDAxQTUgICAgIChiYXNlIDE2KQkJTmV4dGNvbW0sIEluYy4KKwkJCQkxMjQxMyBXaWxsb3dzIFJvYWQgTkUgLSBTdGUuICMyMTAKKwkJCQlLaXJrbGFuZCBXQSA5ODAzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQTYgICAoaGV4KQkJU2NpZW50aWZpYy1BdGxhbnRhIEFyY29kYW4gQS9TCiswMDAxQTYgICAgIChiYXNlIDE2KQkJU2NpZW50aWZpYy1BdGxhbnRhIEFyY29kYW4gQS9TCisJCQkJQXZndXN0ZW5ib3JnIExhbmRldmVqIDcKKwkJCQlESy02NDAwIFNvbmRlcmJvcmcKKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswMC0wMS1BNyAgIChoZXgpCQlVTkVYIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKzAwMDFBNyAgICAgKGJhc2UgMTYpCQlVTkVYIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKwkJCQk4Ri01LCBOTy4gMTMwIFNaRSBXRUkgUk9BRAorCQkJCUhTSU5DSFUKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtQTggICAoaGV4KQkJV2VsbHRlY2ggQ29tcHV0ZXIgQ28uLCBMdGQuCiswMDAxQTggICAgIChiYXNlIDE2KQkJV2VsbHRlY2ggQ29tcHV0ZXIgQ28uLCBMdGQuCisJCQkJMTNGLTQsIG5vLiAxNTAsIEppYW4gWWkgUm9hZAorCQkJCUNodW5nLUhvIDIzNSwgIFRhaXBlaQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS1BOSAgIChoZXgpCQlCTVcgQUcKKzAwMDFBOSAgICAgKGJhc2UgMTYpCQlCTVcgQUcKKwkJCQlCTVcgQUcgRGVwdC4gRlotMzIwCisJCQkJS25vcnJzdHIuMTE5CisJCQkJODA3ODggTXVuaWNoIAorCQkJCUdFUk1BTlkKKworMDAtMDEtQUEgICAoaGV4KQkJQWlyc3BhbiBDb21tdW5pY2F0aW9ucywgTHRkLgorMDAwMUFBICAgICAoYmFzZSAxNikJCUFpcnNwYW4gQ29tbXVuaWNhdGlvbnMsIEx0ZC4KKwkJCQlDYW1icmlkZ2UgSG91c2UsIE94Zm9yZCBSZC4sCisJCQkJVXhicmlkZ2UsIE1pZGRsZXNleCBVQjFVTiwKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAxLUFCICAgKGhleCkJCU1haW4gU3RyZWV0IE5ldHdvcmtzCiswMDAxQUIgICAgIChiYXNlIDE2KQkJTWFpbiBTdHJlZXQgTmV0d29ya3MKKwkJCQk0MDMwIE1vb3JwYXJrIEF2ZS4KKwkJCQlTdWl0ZSAyMDAKKwkJCQlTYW4gSm9zZSBDQSA5NTExNy0xODQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1BQyAgIChoZXgpCQlTaXRhcmEgTmV0d29ya3MsIEluYy4KKzAwMDFBQyAgICAgKGJhc2UgMTYpCQlTaXRhcmEgTmV0d29ya3MsIEluYy4KKwkJCQk2MCBIaWNrb3J5IERyaXZlCisJCQkJV2FsdGhhbSBNQSAwMjQ1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQUQgICAoaGV4KQkJQ29hY2ggTWFzdGVyIEludGVybmF0aW9uYWwgIGQuYi5hLiBDTUkgV29ybGR3aWRlLCBJbmMuCiswMDAxQUQgICAgIChiYXNlIDE2KQkJQ29hY2ggTWFzdGVyIEludGVybmF0aW9uYWwgIGQuYi5hLiBDTUkgV29ybGR3aWRlLCBJbmMuCisJCQkJNjAwIFN0ZXdhcnQgU3RyZWV0CisJCQkJU3VpdGUgNzAwCisJCQkJU2VhdHRsZSBXQSA5ODEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQUUgICAoaGV4KQkJVHJleCBFbnRlcnByaXNlcworMDAwMUFFICAgICAoYmFzZSAxNikJCVRyZXggRW50ZXJwcmlzZXMKKwkJCQk1OTAgTGlwb2EgUGFya3dheQorCQkJCVN1aXRlIDIyMgorCQkJCUtpaGVpIEhJIDk2NzUzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1BRiAgIChoZXgpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIKKzAwMDFBRiAgICAgKGJhc2UgMTYpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIKKwkJCQkyOTAwIFMuIERpYWJsbyBXYXkKKwkJCQlTdWl0ZSAxOTAKKwkJCQlUZW1wZSBBcml6b25hIDg1MjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1CMCAgIChoZXgpCQlGdWxsdGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDAxQjAgICAgIChiYXNlIDE2KQkJRnVsbHRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTNGIE5vLiA4LCBMYW5lIDEzMCwgTWluIENodWFuIFJkLiwgSHNpbnQKKwkJCQlDaXR5LCBUYWlwZWkgSHNlaW4gMjMxLAorCQkJCVRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLUIxICAgKGhleCkJCUdlbmVyYWwgQmFuZHdpZHRoCiswMDAxQjEgICAgIChiYXNlIDE2KQkJR2VuZXJhbCBCYW5kd2lkdGgKKwkJCQkxMjMwMy1CIFRlY2hub2xvZ3kgQmx2ZC4KKwkJCQlBdXN0aW4gVFggNzg3MjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUIyICAgKGhleCkJCURpZ2l0YWwgUHJvY2Vzc2luZyBTeXN0ZW1zLCBJbmMuCiswMDAxQjIgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBQcm9jZXNzaW5nIFN5c3RlbXMsIEluYy4KKwkJCQk3MCBWYWxsZXl3b29kIERyaXZlCisJCQkJTWFya2hhbSwgT250YXJpbyBDQU5BREEKKwkJCQlMM1IgNFQ1CisJCQkJQ0FOQURBCisKKzAwLTAxLUIzICAgKGhleCkJCVByZWNpc2lvbiBFbGVjdHJvbmljIE1hbnVmYWN0dXJpbmcKKzAwMDFCMyAgICAgKGJhc2UgMTYpCQlQcmVjaXNpb24gRWxlY3Ryb25pYyBNYW51ZmFjdHVyaW5nCisJCQkJUDAxODcsIFAuTy4gNTI3OTQ4CisJCQkJTWlhbWkgRkwgMzMxNTItNzk0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQjQgICAoaGV4KQkJV2F5cG9ydCwgSW5jLgorMDAwMUI0ICAgICAoYmFzZSAxNikJCVdheXBvcnQsIEluYy4KKwkJCQkxNjA5IFNob2FsIENyZWVrIEJsdmQuCisJCQkJU3VpdGUgMzAxCisJCQkJQXVzdGluIFRYIDc4NzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1CNSAgIChoZXgpCQlUdXJpbiBOZXR3b3JrcywgSW5jLgorMDAwMUI1ICAgICAoYmFzZSAxNikJCVR1cmluIE5ldHdvcmtzLCBJbmMuCisJCQkJMTQxNSBOb3J0aCBNY0Rvd2VsbCBCbHZkLgorCQkJCVBldGFsdW1hIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1CNiAgIChoZXgpCQlTQUVKSU4gVCZNIENvLiwgTHRkLgorMDAwMUI2ICAgICAoYmFzZSAxNikJCVNBRUpJTiBUJk0gQ28uLCBMdGQuCisJCQkJMm5kIEZsLiwgU2FlamluIEJsZGcuLCA2ODkKKwkJCQlJbHdvbi1Eb25nLCBLYW5nbmFtLUd1LiBTZW91bCwgMTM1LTIzMAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLUI3ICAgKGhleCkJCUNlbnRvcywgSW5jLgorMDAwMUI3ICAgICAoYmFzZSAxNikJCUNlbnRvcywgSW5jLgorCQkJCTZGLTEsIE5PLiAxNSwgTEFORSAzNjAKKwkJCQlORUktSFUgUkQuLCBTRUNULiAxLCBUQUlQRUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtQjggICAoaGV4KQkJTmV0c2Vuc2l0eSwgSW5jLgorMDAwMUI4ICAgICAoYmFzZSAxNikJCU5ldHNlbnNpdHksIEluYy4KKwkJCQlQTyBCb3ggMTA2MAorCQkJCUxha2UgRm9yZXN0IENBIDkyNjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1COSAgIChoZXgpCQlTS0YgQ29uZGl0aW9uIE1vbml0b3JpbmcKKzAwMDFCOSAgICAgKGJhc2UgMTYpCQlTS0YgQ29uZGl0aW9uIE1vbml0b3JpbmcKKwkJCQk0MTQxIFJ1ZmZpbiBSb2FkCisJCQkJU2FuIERpZWdvIENBIDkyMTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1CQSAgIChoZXgpCQlJQy1OZXQsIEluYy4KKzAwMDFCQSAgICAgKGJhc2UgMTYpCQlJQy1OZXQsIEluYy4KKwkJCQk1IEZsLiBTZWFzdW5nIEJsZGcuLCAzMTEtMjcgTm9yeWFuZ2ppbi1ECisJCQkJRG9uZ2phay1HdSBTZW91bCwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS1CQiAgIChoZXgpCQlGcmVxdWVudGlzCiswMDAxQkIgICAgIChiYXNlIDE2KQkJRnJlcXVlbnRpcworCQkJCVNQSVRURUxCUkVJVEVOR0FTU0UgMzQKKwkJCQlBLTExMjAgVklFTk5BCisJCQkJQVVTVFJJQQorCQkJCUFVU1RSSUEKKworMDAtMDEtQkMgICAoaGV4KQkJQnJhaW5zIENvcnBvcmF0aW9uCiswMDAxQkMgICAgIChiYXNlIDE2KQkJQnJhaW5zIENvcnBvcmF0aW9uCisJCQkJMi0yNy04LTRGbCBUQU1BR0FXQQorCQkJCVNFVEFHQVlBLUtVLCBUT0tZTyAxNTgtMDA5NAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtQkQgICAoaGV4KQkJUGV0ZXJzb24gRWxlY3Ryby1NdXNpY2FsIFByb2R1Y3RzLCBJbmMuCiswMDAxQkQgICAgIChiYXNlIDE2KQkJUGV0ZXJzb24gRWxlY3Ryby1NdXNpY2FsIFByb2R1Y3RzLCBJbmMuCisJCQkJMTE2MDEgUy4gTWF5ZmllbGQgQXZlbnVlCisJCQkJQWxzaXAgSUwgNjA4MDMtMjQ3NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQkUgICAoaGV4KQkJR2lnYWxpbmsgQ28uLCBMdGQuCiswMDAxQkUgICAgIChiYXNlIDE2KQkJR2lnYWxpbmsgQ28uLCBMdGQuCisJCQkJNnRoIEYvTCBEaXBsb21hdGljIENlbnRlciAxMzc2LTEKKwkJCQlTZW9jaG8tZG9uZyBTZW9jaG8ta3UgU2VvdWwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS1CRiAgIChoZXgpCQlUZWxlZm9yY2UgQ28uLCBMdGQuCiswMDAxQkYgICAgIChiYXNlIDE2KQkJVGVsZWZvcmNlIENvLiwgTHRkLgorCQkJCTcyMSB5b3NoaW9rYS1jaG8ga2Fub25qaS1jaXR5CisJCQkJS2FnYXdhLXByZi4gNzY4LTAwMjEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLUMwICAgKGhleCkJCUNvbXB1TGFiLCBMdGQuCiswMDAxQzAgICAgIChiYXNlIDE2KQkJQ29tcHVMYWIsIEx0ZC4KKwkJCQlQLk8uIEJveCA2NgorCQkJCU5lc2hlciAzNjc3MAorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wMS1DMSAgIChoZXgpCQlWaXRlc3NlIFNlbWljb25kdWN0b3IgQ29ycG9yYXRpb24KKzAwMDFDMSAgICAgKGJhc2UgMTYpCQlWaXRlc3NlIFNlbWljb25kdWN0b3IgQ29ycG9yYXRpb24KKwkJCQlIb2Vya2FlciAxOAorCQkJCURLLTI3MzAgSGVybGV2CisJCQkJREVOTUFSSworCiswMC0wMS1DMiAgIChoZXgpCQlBUksgUmVzZWFyY2ggQ29ycC4KKzAwMDFDMiAgICAgKGJhc2UgMTYpCQlBUksgUmVzZWFyY2ggQ29ycC4KKwkJCQkxMTk4IFNhcmF0b2dhIEF2ZS4gIzExRAorCQkJCVNhbiBKb3NlIENBIDk1MTI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1DMyAgIChoZXgpCQlBY3JvbWFnLCBJbmMuCiswMDAxQzMgICAgIChiYXNlIDE2KQkJQWNyb21hZywgSW5jLgorCQkJCTMwNzY1IFMuIFdpeG9tIFJvYWQKKwkJCQlXaXhvbSBNSSA0ODM5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQzQgICAoaGV4KQkJTmVvV2F2ZSwgSW5jLgorMDAwMUM0ICAgICAoYmFzZSAxNikJCU5lb1dhdmUsIEluYy4KKwkJCQkxMHRoIEtSSUhTIEJsZGcuIDE1OTEtNgorCQkJCUt3YW4gWWFuZy1Eb25nLCBEb25nIEFuLUd1LCBBbnlvbmctU2ksIEsKKwkJCQlTT1VUSCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS1DNSAgIChoZXgpCQlTaW1wbGVyIE5ldHdvcmtzCiswMDAxQzUgICAgIChiYXNlIDE2KQkJU2ltcGxlciBOZXR3b3JrcworCQkJCTU1NSBEciBGcmVkZXJpY2sgUGhpbGlwcworCQkJCVN1aXRlIDIxMCBTdC4gTGF1cmVudCwgUVVFQkVDIENBTkFEQQorCQkJCUg0TSAyWDQKKwkJCQlDQU5BREEKKworMDAtMDEtQzYgICAoaGV4KQkJUXVhcnJ5IFRlY2hub2xvZ2llcworMDAwMUM2ICAgICAoYmFzZSAxNikJCVF1YXJyeSBUZWNobm9sb2dpZXMKKwkJCQk4IE5ldyBFbmdsYW5kIEV4ZWN1dGl2ZSBQYXJrCisJCQkJQnVybGluZ3RvbiBNQSAwMTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQzcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMUM3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUM4ICAgKGhleCkJCVRIT01BUyBDT05SQUQgQ09SUC4KKzAwMDFDOCAgICAgKGJhc2UgMTYpCQlUSE9NQVMgQ09OUkFEIENPUlAuCisJCQkJMTkwOC1SIEtSQU1FUiBMQU5FCisJCQkJQVVTVElOIFRYIDc4NzU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1DOCAgIChoZXgpCQlDT05SQUQgQ09SUC4KKzAwMDFDOCAgICAgKGJhc2UgMTYpCQlDT05SQUQgQ09SUC4KKwkJCQkKKworMDAtMDEtQzkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMUM5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQ0EgICAoaGV4KQkJR2VvY2FzdCBOZXR3b3JrIFN5c3RlbXMsIEluYy4KKzAwMDFDQSAgICAgKGJhc2UgMTYpCQlHZW9jYXN0IE5ldHdvcmsgU3lzdGVtcywgSW5jLgorCQkJCTE5MCBJbmRlcGVuZGVuY2UgRHJpdmUKKwkJCQlNZW5sbyBQYXJrIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1DQiAgIChoZXgpCQlFVlIKKzAwMDFDQiAgICAgKGJhc2UgMTYpCQlFVlIKKwkJCQkxMiBSYXVsIFdhbGxlbmJlcmcgU3QuCisJCQkJVGVsIEF2aXYgIDY5NzE5CisJCQkJSVNSQUVMCisKKzAwLTAxLUNDICAgKGhleCkJCUphcGFuIFRvdGFsIERlc2lnbiBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorMDAwMUNDICAgICAoYmFzZSAxNikJCUphcGFuIFRvdGFsIERlc2lnbiBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorCQkJCUVuZXN0YSBTdWdpbmFtaWhpZ2FzaGkgQnVpbGQuLCAzRiwKKwkJCQkzLTctMSwgQXNhZ2F5YW1pbmFtaSBTdWdpbmFtaS1rdSwgVG9reW8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLUNEICAgKGhleCkJCUFSdGVtCiswMDAxQ0QgICAgIChiYXNlIDE2KQkJQVJ0ZW0KKwkJCQlPbGdhc3RyYXNzZSAxNTIKKwkJCQlELTg5MDczIFVMTQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLUNFICAgKGhleCkJCUN1c3RvbSBNaWNybyBQcm9kdWN0cywgTHRkLgorMDAwMUNFICAgICAoYmFzZSAxNikJCUN1c3RvbSBNaWNybyBQcm9kdWN0cywgTHRkLgorCQkJCTQ1MCBCbGFuZGZvcmQgUm9hZAorCQkJCUhhbXdvcnRoeSBQb29sZSBEb3JzZXQgQkhJTCA1Qk4KKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAxLUNGICAgKGhleCkJCUFscGhhIERhdGEgUGFyYWxsZWwgU3lzdGVtcywgTHRkLgorMDAwMUNGICAgICAoYmFzZSAxNikJCUFscGhhIERhdGEgUGFyYWxsZWwgU3lzdGVtcywgTHRkLgorCQkJCTU4IFRpbWJlciBCdXNoCisJCQkJRWRpbmJ1cmdoIEVINiA2UUggU2NvdGxhbmQKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAxLUQwICAgKGhleCkJCVZpdGFsUG9pbnQsIEluYy4KKzAwMDFEMCAgICAgKGJhc2UgMTYpCQlWaXRhbFBvaW50LCBJbmMuCisJCQkJMTU3NzAgSG9wcGVyIFJvYWQKKwkJCQlQZXl0b24gQ08gODA4MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUQxICAgKGhleCkJCUNvTmV0IENvbW11bmljYXRpb25zLCBJbmMuCiswMDAxRDEgICAgIChiYXNlIDE2KQkJQ29OZXQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyNSBNYXVjaGx5LCAjMzIwCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1EMiAgIChoZXgpCQlpblh0cm9uLCBJbmMuIAorMDAwMUQyICAgICAoYmFzZSAxNikJCWluWHRyb24sIEluYy4gCisJCQkJOEYsIE5vLjUyLCBNaW5RdWFuIFJvYWQsIFhpbmRpYW4gRGlzdC4KKwkJCQlOZXcgVGFpcGVpIENpdHkgIDIzMTQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS1EMyAgIChoZXgpCQlQQVhDT01NLCBJbmMuCiswMDAxRDMgICAgIChiYXNlIDE2KQkJUEFYQ09NTSwgSW5jLgorCQkJCTd0aCBGIFRoZSBDb3JwLiBDZW50ZXIKKwkJCQlDaHVuZ25hbSBOYXRpb25hbCBVbml2ZXJzaXR5IDIyMCBLdW5nLURvCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtRDQgICAoaGV4KQkJTGVpc3VyZSBUaW1lLCBJbmMuCiswMDAxRDQgICAgIChiYXNlIDE2KQkJTGVpc3VyZSBUaW1lLCBJbmMuCisJCQkJNDI1OCBDb21tdW5pY2F0aW9ucyBEcml2ZQorCQkJCU5vcmNyb3NzIEdBIDMwMDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1ENSAgIChoZXgpCQlIQUVET05HIElORk8gJiBDT01NIENPLiwgTFRECiswMDAxRDUgICAgIChiYXNlIDE2KQkJSEFFRE9ORyBJTkZPICYgQ09NTSBDTy4sIExURAorCQkJCSM4MDEgVGhlIENvcnBvcmF0aW9uIENlbnRlciBmb3IgVW5pdmVyc2kKKwkJCQkyMjAgS3VuZy1Eb25nLCBZdXNlb25nLUd1LAorCQkJCVRhZWplb24gUmVwdWJsaWMgb2YgS29yZWEgMzA1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLUQ2ICAgKGhleCkJCW1hbnJvbGFuZCBBRworMDAwMUQ2ICAgICAoYmFzZSAxNikJCW1hbnJvbGFuZCBBRworCQkJCVN0YWR0YmFjaHN0cmFzc2UgMQorCQkJCTg2MjE5IEF1Z3NidXJnCisJCQkJR0VSTUFOWQorCiswMC0wMS1ENyAgIChoZXgpCQlGNSBOZXR3b3JrcywgSW5jLgorMDAwMUQ3ICAgICAoYmFzZSAxNikJCUY1IE5ldHdvcmtzLCBJbmMuCisJCQkJMTMyMiBOLiBXaGl0bWFuIExhbmUKKwkJCQlMaWJlcnR5IExha2UgV0EgOTkwMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUQ4ICAgKGhleCkJCVRlbHRyb25pY3MsIEluYy4KKzAwMDFEOCAgICAgKGJhc2UgMTYpCQlUZWx0cm9uaWNzLCBJbmMuCisJCQkJNDEyNSBLZWxsZXIgU3ByaW5ncyBSb2FkCisJCQkJU3VpdGUgMTY2CisJCQkJQWRkaXNvbiBUWCAyNTAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRDkgICAoaGV4KQkJU2lnbWEsIEluYy4KKzAwMDFEOSAgICAgKGJhc2UgMTYpCQlTaWdtYSwgSW5jLgorCQkJCTMyLTMgU2VpanlvIDkgQ2hvbWUKKwkJCQlTZXRhZ2F5YS1rdSBUb2t5byAxNTctMDA2NgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtREEgICAoaGV4KQkJV0lOQ09NTSBDb3Jwb3JhdGlvbgorMDAwMURBICAgICAoYmFzZSAxNikJCVdJTkNPTU0gQ29ycG9yYXRpb24KKwkJCQkyRiwgTm8uIDMsIFByb3NwZXJpdHkgUm9hZCAxLAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrLCBIc2luY2h1LAorCQkJCUhzaW5jaHUgVGFpd2FuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS1EQiAgIChoZXgpCQlGcmVlY29tIFRlY2hub2xvZ2llcyBHbWJICiswMDAxREIgICAgIChiYXNlIDE2KQkJRnJlZWNvbSBUZWNobm9sb2dpZXMgR21iSAorCQkJCU9iZW50cmF1dHN0ci4gNzIKKwkJCQlELTEwOTYzLCBCZXJsaW4sCisJCQkJR0VSTUFOWQorCiswMC0wMS1EQyAgIChoZXgpCQlBY3RpdmV0ZWxjbworMDAwMURDICAgICAoYmFzZSAxNikJCUFjdGl2ZXRlbGNvCisJCQkJNDMyMjIgQ2hyaXN0eSBTdHJlZXQKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1ERCAgIChoZXgpCQlBdmFpbCBOZXR3b3JrcworMDAwMUREICAgICAoYmFzZSAxNikJCUF2YWlsIE5ldHdvcmtzCisJCQkJMzA1IEUuIEVpc2VuaG93ZXIgUGFya3dheQorCQkJCUFubiBBcmJvciBNSSA0ODEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtREUgICAoaGV4KQkJVHJhbmdvIFN5c3RlbXMsIEluYy4KKzAwMDFERSAgICAgKGJhc2UgMTYpCQlUcmFuZ28gU3lzdGVtcywgSW5jLgorCQkJCTk5MzkgVi9BIFBhc2FyCisJCQkJU2FuIERpZWdvIENBIDkyMTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1ERiAgIChoZXgpCQlJU0ROIENvbW11bmljYXRpb25zLCBMdGQuCiswMDAxREYgICAgIChiYXNlIDE2KQkJSVNETiBDb21tdW5pY2F0aW9ucywgTHRkLgorCQkJCVRoZSBTdGFibGUgQmxvY2ssIFJvbmFucworCQkJCUNoYXZleSBEb3duIFJvYWQsIFdpbmtmaWVsZCBSb3cgQmVya3NoaXIKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDEtRTAgICAoaGV4KQkJRmFzdCBTeXN0ZW1zLCBJbmMuCiswMDAxRTAgICAgIChiYXNlIDE2KQkJRmFzdCBTeXN0ZW1zLCBJbmMuCisJCQkJODctOSBZYW5nLUphZSwgU2VvLUNobywKKwkJCQlTZW91bCwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS1FMSAgIChoZXgpCQlLaW5wbyBFbGVjdHJvbmljcywgSW5jLgorMDAwMUUxICAgICAoYmFzZSAxNikJCUtpbnBvIEVsZWN0cm9uaWNzLCBJbmMuCisJCQkJVFNBQyBUSSBXRUksIFdBTiBTSFVOIFRTVU4sCisJCQkJU0hFTiBLRU5HIEhTSUFORywgVEFJUEVJIEhTSUVOIFRBSVdBTiAoMgorCQkJCUNISU5BCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS1FMiAgIChoZXgpCQlBbmRvIEVsZWN0cmljIENvcnBvcmF0aW9uCiswMDAxRTIgICAgIChiYXNlIDE2KQkJQW5kbyBFbGVjdHJpYyBDb3Jwb3JhdGlvbgorCQkJCTE5LTcsIEthbWF0YSA0LUNocm9tZSwgT3RhLWt1CisJCQkJVG9reW8sIDE0NC0wMDUyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS1FMyAgIChoZXgpCQlTaWVtZW5zIEFHCiswMDAxRTMgICAgIChiYXNlIDE2KQkJU2llbWVucyBBRworCQkJCVNjaGxhdmVuaG9yc3QgODgKKwkJCQk0NjM5NSBCb2Nob2x0CisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDEtRTQgICAoaGV4KQkJU2l0ZXJhLCBJbmMuCiswMDAxRTQgICAgIChiYXNlIDE2KQkJU2l0ZXJhLCBJbmMuCisJCQkJMTgyMCBMZWZ0aGFuZCBDaXJjbGUKKwkJCQlMb25nbW9udCBDTyA4MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRTUgICAoaGV4KQkJU3VwZXJuZXQsIEluYy4KKzAwMDFFNSAgICAgKGJhc2UgMTYpCQlTdXBlcm5ldCwgSW5jLgorCQkJCTEzNS0wODAgRGFlbWVvbmcgQmxkZy4KKwkJCQkybmQgRmxvb3IsIDY1MC0yLCBZZW9rc2FtLWRvbmcgS2FuZ25hbS1rCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtRTYgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzAwMDFFNiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTExMDAwIFdvbGZlIFJvYWQsIE1haWxzdG9wIDQyTEUKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUU3ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDAxRTcgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMTAwMCBXb2xmZSBSb2FkLCBNYWlsc3RvcCA0MkxFCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1FOCAgIChoZXgpCQlGb3JjZTEwIE5ldHdvcmtzLCBJbmMuCiswMDAxRTggICAgIChiYXNlIDE2KQkJRm9yY2UxMCBOZXR3b3JrcywgSW5jLgorCQkJCTE0NDAgTWNDYXJ0aHkgQmx2ZC4KKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRTkgICAoaGV4KQkJTGl0dG9uIE1hcmluZSBTeXN0ZW1zIEIuVi4KKzAwMDFFOSAgICAgKGJhc2UgMTYpCQlMaXR0b24gTWFyaW5lIFN5c3RlbXMgQi5WLgorCQkJCTExOCBCdXJsaW5ndG9uIFJvYWQKKwkJCQlOZXcgTWFsZGVuLCBTdXJyZXkKKwkJCQlFTkdMQU5EIEtUMyA0TlIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS1FQSAgIChoZXgpCQlDaXJpbGl1bSBDb3JwLgorMDAwMUVBICAgICAoYmFzZSAxNikJCUNpcmlsaXVtIENvcnAuCisJCQkJMTYxNSBTLiA1Mm5kIFN0cmVldAorCQkJCVRlbXBlIEFaIDg1MjgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1FQiAgIChoZXgpCQlDLUNPTSBDb3Jwb3JhdGlvbgorMDAwMUVCICAgICAoYmFzZSAxNikJCUMtQ09NIENvcnBvcmF0aW9uCisJCQkJM0YsIE5vLiA0OCwgUGFyayBBdmUuIElJIFNCSVAKKwkJCQlIc2luY2h1IFRhaXdhbiBIc2luY2h1IFRhaXdhbiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLUVDICAgKGhleCkJCUVyaWNzc29uIEdyb3VwCiswMDAxRUMgICAgIChiYXNlIDE2KQkJRXJpY3Nzb24gR3JvdXAKKwkJCQlUZWxlZm9uYWt0aWVib2xhZ2V0CisJCQkJTE0gRXJpY3Nzb24gQ29ycC4gMTI2IDI1IFNUT0NLSE9MTQorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC0wMS1FRCAgIChoZXgpCQlTRVRBIENvcnAuCiswMDAxRUQgICAgIChiYXNlIDE2KQkJU0VUQSBDb3JwLgorCQkJCUFyaWFrZSBGcm9udGllciBCbGRnLiBCCisJCQkJQXJpYWtlLCBLb3V0b3UgS3UgVG9reW8sCisJCQkJSkFQQU4gMTM1LTAwNjMKKwkJCQlKQVBBTgorCiswMC0wMS1FRSAgIChoZXgpCQlDb210cm9sIEV1cm9wZSwgTHRkLgorMDAwMUVFICAgICAoYmFzZSAxNikJCUNvbXRyb2wgRXVyb3BlLCBMdGQuCisJCQkJVGhlIENvdXJ0eWFyZCBTdHVkaW8KKwkJCQlHcmFuZ2UgRmFybSwgU3RhdGlvbiBSb2FkIExhdW50b24gT3hvbiBPCisJCQkJVS5LLgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAxLUVGICAgKGhleCkJCUNhbXRlbCBUZWNobm9sb2d5IENvcnAuCiswMDAxRUYgICAgIChiYXNlIDE2KQkJQ2FtdGVsIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQlOby4gMiwgV3UtS3VuZyA1IFJkLiwgV3UtS3UKKwkJCQlJbmQuIFBhcmssIEhzaW5jaHVhbmcsIFRhaXBlaSBTaGllbgorCQkJCVRhaXdhbiBUYWl3YW4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS1GMCAgIChoZXgpCQlUcmlkaXVtLCBJbmMuCiswMDAxRjAgICAgIChiYXNlIDE2KQkJVHJpZGl1bSwgSW5jLgorCQkJCTM5NTEgV2VzdGVycmUgUGFya3dheQorCQkJCVN1aXRlIDM1MAorCQkJCVJpY2htb25kIFZBIDIzMjMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1GMSAgIChoZXgpCQlJbm5vdmF0aXZlIENvbmNlcHRzLCBJbmMuCiswMDAxRjEgICAgIChiYXNlIDE2KQkJSW5ub3ZhdGl2ZSBDb25jZXB0cywgSW5jLgorCQkJCTgyMDAgR3JlZW5zYm9ybyBEcml2ZQorCQkJCVN1aXRlIDgwMQorCQkJCU1jTGVhbiBWQSAyMjEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRjIgICAoaGV4KQkJTWFyayBvZiB0aGUgVW5pY29ybiwgSW5jLgorMDAwMUYyICAgICAoYmFzZSAxNikJCU1hcmsgb2YgdGhlIFVuaWNvcm4sIEluYy4KKwkJCQkxMjgwIE1hc3NhY2h1c2V0dHMgQXZlLgorCQkJCUNhbWJyaWRnZSBNQSAwMjEzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRjMgICAoaGV4KQkJUVBTLCBJbmMuCiswMDAxRjMgICAgIChiYXNlIDE2KQkJUVBTLCBJbmMuCisJCQkJODAxNSBFLiBDcnlzdGFsIERyaXZlCisJCQkJQW5haGVpbSBDQSA5MjgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRjQgICAoaGV4KQkJRW50ZXJhc3lzIE5ldHdvcmtzCiswMDAxRjQgICAgIChiYXNlIDE2KQkJRW50ZXJhc3lzIE5ldHdvcmtzCisJCQkJMzUgSW5kdXN0cmlhbCBXYXkKKwkJCQlSb2NoZXN0ZXIgTkggMDM4NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUY1ICAgKGhleCkJCUVSSU0gUy5BLgorMDAwMUY1ICAgICAoYmFzZSAxNikJCUVSSU0gUy5BLgorCQkJCTExIEF2IFJlcHVibGlxdWUKKwkJCQk2OTY5MiBWZW5pc3NpZXV4IENlZGV4CisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAxLUY2ICAgKGhleCkJCUFzc29jaWF0aW9uIG9mIE11c2ljYWwgRWxlY3Ryb25pY3MgSW5kdXN0cnkKKzAwMDFGNiAgICAgKGJhc2UgMTYpCQlBc3NvY2lhdGlvbiBvZiBNdXNpY2FsIEVsZWN0cm9uaWNzIEluZHVzdHJ5CisJCQkJSXRvIEJsZGcuIDR0aCBGbG9vciAyLTE2LTkgTWlzYWtpLWNobywKKwkJCQlDaGl5b2RhLWt1LCBUb2t5bywgMTAxLTAwNjEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLUY3ICAgKGhleCkJCUltYWdlIERpc3BsYXkgU3lzdGVtcywgSW5jLgorMDAwMUY3ICAgICAoYmFzZSAxNikJCUltYWdlIERpc3BsYXkgU3lzdGVtcywgSW5jLgorCQkJCTQ2NTYwIEZyZW1vbnQgQmx2ZC4KKwkJCQlTdWl0ZSAjNDA2CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRjggICAoaGV4KQkJQWRoZXJlbnQgU3lzdGVtcywgTHRkLgorMDAwMUY4ICAgICAoYmFzZSAxNikJCUFkaGVyZW50IFN5c3RlbXMsIEx0ZC4KKwkJCQlFbmRlYXZvdXIgSG91c2UsIFZpc2lvbiBQYXJrCisJCQkJSGlzdG9uIENhbWJyaWRnZSBDQjQgNFpSCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS1GOSAgIChoZXgpCQlUZXJhR2xvYmFsIENvbW11bmljYXRpb25zIENvcnAuCiswMDAxRjkgICAgIChiYXNlIDE2KQkJVGVyYUdsb2JhbCBDb21tdW5pY2F0aW9ucyBDb3JwLgorCQkJCTkxNzEgVG93bmUgQ2VudHJlIERyaXZlCisJCQkJU3VpdGUgIzYwMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRkEgICAoaGV4KQkJSE9ST1NDQVMKKzAwMDFGQSAgICAgKGJhc2UgMTYpCQlIT1JPU0NBUworCQkJCTI2LCBMT1VJUyBCTEFOQworCQkJCTY5MDA2IExZT04KKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDEtRkIgICAoaGV4KQkJRG9Ub3AgVGVjaG5vbG9neSwgSW5jLgorMDAwMUZCICAgICAoYmFzZSAxNikJCURvVG9wIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxMEYsIE5vLiAxMDAsIE1pbi1DaHl1YW4gUm9hZAorCQkJCUhzaW4tVGllbiwgVGFpcGVpCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS1GQyAgIChoZXgpCQlLZXllbmNlIENvcnBvcmF0aW9uCiswMDAxRkMgICAgIChiYXNlIDE2KQkJS2V5ZW5jZSBDb3Jwb3JhdGlvbgorCQkJCTEtMy0xNCwgSGlnYXNoaS1OYWthamltYSwKKwkJCQlIaWdhc2hpLVlvZG9nYXdhLWt1IE9zYWthIDUzMy04NTU1CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS1GRCAgIChoZXgpCQlEaWdpdGFsIFZvaWNlIFN5c3RlbXMsIEluYy4KKzAwMDFGRCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFZvaWNlIFN5c3RlbXMsIEluYy4KKwkJCQkyMzQgTGl0dGxldG9uIFJvYWQKKwkJCQlXZXN0Zm9yZCBNQSAwMTg4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRkUgICAoaGV4KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKzAwMDFGRSAgICAgKGJhc2UgMTYpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorCQkJCU0vUyBDWDAxLTIvTjI2CisJCQkJMzAxIFJPQ0tSSU1NT04gQkxWRC4sIFMKKwkJCQlDT0xPUkFETyBTUFJJTkdTIENPIDgwOTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1GRiAgIChoZXgpCQlEYXRhIERpcmVjdCBOZXR3b3JrcywgSW5jLgorMDAwMUZGICAgICAoYmFzZSAxNikJCURhdGEgRGlyZWN0IE5ldHdvcmtzLCBJbmMuCisJCQkJOTMyMCBMdXJsaW5lIEF2ZW51ZQorCQkJCUNoYXRzd29ydGggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTAwICAgKGhleCkJCU5ldCAmIFN5cyBDby4sIEx0ZC4KKzAwMDIwMCAgICAgKGJhc2UgMTYpCQlOZXQgJiBTeXMgQ28uLCBMdGQuCisJCQkJS3VybyBIaXRlY2ggSW5kdXN0cmlhbCBDb21wbGV4IDMwNCwKKwkJCQk0MDItMywgU2hpbmRvcmltLWRvbmcsIEt1cm8tZ3UgU2VvdWwsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItMDEgICAoaGV4KQkJSUZNIEVsZWN0cm9uaWMgZ21iaAorMDAwMjAxICAgICAoYmFzZSAxNikJCUlGTSBFbGVjdHJvbmljIGdtYmgKKwkJCQlCZWNobGluZ2VuIDM0CisJCQkJRC04ODA2OSBUZXR0bmFuZworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAyLTAyICAgKGhleCkJCUFtaW5vIENvbW11bmljYXRpb25zLCBMdGQuCiswMDAyMDIgICAgIChiYXNlIDE2KQkJQW1pbm8gQ29tbXVuaWNhdGlvbnMsIEx0ZC4KKwkJCQlUaW1lcyBIb3VzZQorCQkJCUZlbiBFbmQgV2lsbGluZ2hhbSwgQ2FtYnJpZGdlCisJCQkJVUsgQ0I0IDVMSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLTAzICAgKGhleCkJCVdvb25zYW5nIFRlbGVjb20sIEluYy4KKzAwMDIwMyAgICAgKGJhc2UgMTYpCQlXb29uc2FuZyBUZWxlY29tLCBJbmMuCisJCQkJMTA0LTksIE11bmppLURvbmcsIFl1c29uZy1HdQorCQkJCVRhZWpvbiwgMzA1LTM4MCwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi0wNCAgIChoZXgpCQlCb2RtYW5uIEluZHVzdHJpZXMgRWxla3Ryb25payBHbWJICiswMDAyMDQgICAgIChiYXNlIDE2KQkJQm9kbWFubiBJbmR1c3RyaWVzIEVsZWt0cm9uaWsgR21iSAorCQkJCU1lc3NlcnNjaG1pdHRyaW5nIDMzCisJCQkJRC04NjM0MyBLb25pZ3NicnVubgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAyLTA1ICAgKGhleCkJCUhpdGFjaGkgRGVuc2hpLCBMdGQuCiswMDAyMDUgICAgIChiYXNlIDE2KQkJSGl0YWNoaSBEZW5zaGksIEx0ZC4KKwkJCQkzMiBNaXlha2ktY2hvIEtvZGFpcmEtc2hpCisJCQkJVG95a28sCisJCQkJSkFQQU4gMTg3LTg1MTEKKwkJCQlKQVBBTgorCiswMC0wMi0wNiAgIChoZXgpCQlUZWxpdGFsIFImRCBEZW5tYXJrIEEvUworMDAwMjA2ICAgICAoYmFzZSAxNikJCVRlbGl0YWwgUiZEIERlbm1hcmsgQS9TCisJCQkJOTUzMCBTdG91cmluZworCQkJCURlbm1hcmsKKwkJCQlERU5NQVJLCisKKzAwLTAyLTA3ICAgKGhleCkJCVZpc2lvbkdsb2JhbCBOZXR3b3JrIENvcnAuCiswMDAyMDcgICAgIChiYXNlIDE2KQkJVmlzaW9uR2xvYmFsIE5ldHdvcmsgQ29ycC4KKwkJCQk4MjYgRS4gU3RhbGUgUm9hZAorCQkJCVN1aXRlIDIwMAorCQkJCUFtZXJpY2FuIEZvcmsgVVQgODQwMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTA4ICAgKGhleCkJCVVuaWZ5IE5ldHdvcmtzLCBJbmMuCiswMDAyMDggICAgIChiYXNlIDE2KQkJVW5pZnkgTmV0d29ya3MsIEluYy4KKwkJCQkzMTYwIERlIExhIENydXogQmx2ZC4KKwkJCQkjMjAxCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTA5ICAgKGhleCkJCVNoZW56aGVuIFNFRCBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwMjA5ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFNFRCBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTQvRi4sIFdlc3QgQmxvY2ssIEJsb2NrIDQxNCwgWmhlbmh1YSBSZC4KKwkJCQlGdXRpYW4gU2hlbnpoZW4sIDUxODAzMSBQLlIuCisJCQkJQ0hJTkEKKwkJCQlDSElOQQorCiswMC0wMi0wQSAgIChoZXgpCQlHZWZyYW4gU3BhCiswMDAyMEEgICAgIChiYXNlIDE2KQkJR2VmcmFuIFNwYQorCQkJCVZpYSBTZWJpbmEsIDc0CisJCQkJUHJvdmFnbGlvIEQnSXNlbyAyNTA1MCBCcmVzY2lhCisJCQkJSVRBTFkKKwkJCQlJVEFMWQorCiswMC0wMi0wQiAgIChoZXgpCQlOYXRpdmUgTmV0d29ya3MsIEluYy4KKzAwMDIwQiAgICAgKGJhc2UgMTYpCQlOYXRpdmUgTmV0d29ya3MsIEluYy4KKwkJCQlQLk8uIEJveCA3MTY1CisJCQkJUGV0YWggVGlrdmEgNDkxNzAKKwkJCQlJc3JhZWwKKwkJCQlJU1JBRUwKKworMDAtMDItMEMgICAoaGV4KQkJTWV0cm8tT3B0aXgKKzAwMDIwQyAgICAgKGJhc2UgMTYpCQlNZXRyby1PcHRpeAorCQkJCTIyMDEgQXZlbnVlIEsKKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMEQgICAoaGV4KQkJTWljcm9ucGMuY29tCiswMDAyMEQgICAgIChiYXNlIDE2KQkJTWljcm9ucGMuY29tCisJCQkJOTAwIEUuIEthcmNoZXIgUmQuCisJCQkJTmFtcGEgSUEgODM2ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTBFICAgKGhleCkJCUVDSSBUZWxlY29tLCBMdGQuLCBOU0QtVVMKKzAwMDIwRSAgICAgKGJhc2UgMTYpCQlFQ0kgVGVsZWNvbSwgTHRkLiwgTlNELVVTCisJCQkJMTMwMCBPbWVnYSBEci4KKwkJCQlQaXR0c2J1cmdoIFBBIDE1MjA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0wRiAgIChoZXgpCQlBQVRSCiswMDAyMEYgICAgIChiYXNlIDE2KQkJQUFUUgorCQkJCTMwNiBDaGVtaW4gZGVzIE1pcm9pcnMKKwkJCQkxMzMzMCBQZWxpc3Nhbm5lCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAyLTEwICAgKGhleCkJCUZlbmVjb20KKzAwMDIxMCAgICAgKGJhc2UgMTYpCQlGZW5lY29tCisJCQkJNy9GIEtvbi1rdWsgVW5pdmVyc2l0eSBBbHVtbmkKKwkJCQlBc3NvY2lhdGlvbiBCdWlsZGluZyBOTzogIDIyNy0zMzYgSmF5YW5nCisJCQkJU2VvdWwgU2VvdWwgS29yZWEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItMTEgICAoaGV4KQkJTmF0dXJlIFdvcmxkd2lkZSBUZWNobm9sb2d5IENvcnAuCiswMDAyMTEgICAgIChiYXNlIDE2KQkJTmF0dXJlIFdvcmxkd2lkZSBUZWNobm9sb2d5IENvcnAuCisJCQkJTm8uIDEsIE1pbi1DaHVhbiBTdHJlZXQKKwkJCQlUdS1DaGVuZyBJbmR1c3RyaWFsIFBhcmsgVGFpcGVpIEhzaWVuLAorCQkJCVRhaXdhbiBUYWl3YW4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi0xMiAgIChoZXgpCQlTaWVycmFDb20KKzAwMDIxMiAgICAgKGJhc2UgMTYpCQlTaWVycmFDb20KKwkJCQk5OSBTb3V0aCBTdHJlZXQKKwkJCQlIb3BraW50b24gTWEgMDE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTEzICAgKGhleCkJCVMuRC5FLkwuCiswMDAyMTMgICAgIChiYXNlIDE2KQkJUy5ELkUuTC4KKwkJCQlBZXJvcG9sZSBEMkEKKwkJCQlSdWUgTnVuZ2VycmVyIGV0IENvbGkgNDQ4NjAgU3QgQWlnbmFuIGRlCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAyLTE0ICAgKGhleCkJCURUVlJPCiswMDAyMTQgICAgIChiYXNlIDE2KQkJRFRWUk8KKwkJCQk4MTMgRGFlZ29uZyBCbGRnLiwKKwkJCQk4MjMtMjEgWWVva3NhbS1Eb25nLCBLYW5nbmFtLUd1LCBTZW91bCwKKwkJCQlLT1JFQSBLT1JFQSAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTE1ICAgKGhleCkJCUNvdGFzIENvbXB1dGVyIFRlY2hub2xvZ3kgQS9CCiswMDAyMTUgICAgIChiYXNlIDE2KQkJQ290YXMgQ29tcHV0ZXIgVGVjaG5vbG9neSBBL0IKKwkJCQlQYWx1ZGFuLU11bGxlcnMgVmVqIDgyCisJCQkJREstODIwMCBBYXJodXMgTgorCQkJCURFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLTAyLTE2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDIxNiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTE3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDIxNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTE4ICAgKGhleCkJCUFkdmFuY2VkIFNjaWVudGlmaWMgQ29ycAorMDAwMjE4ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIFNjaWVudGlmaWMgQ29ycAorCQkJCTEgRmwuLCBOby4gMjYsIEluZHVzdHJ5IEVhc3QgOXRoIFJvYWQKKwkJCQlTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyayBIc2luLUNodQorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItMTkgICAoaGV4KQkJUGFyYWxvbiBUZWNobm9sb2dpZXMKKzAwMDIxOSAgICAgKGJhc2UgMTYpCQlQYXJhbG9uIFRlY2hub2xvZ2llcworCQkJCTcwMCBGaWZ0aCBBdmUsIFN1aXRlIDYxMDEKKwkJCQlTZWF0dGxlIFdBIDk4MTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0xQSAgIChoZXgpCQladW1hIE5ldHdvcmtzCiswMDAyMUEgICAgIChiYXNlIDE2KQkJWnVtYSBOZXR3b3JrcworCQkJCTg0MDMgRmFsbGJyb29rIEF2ZS4KKwkJCQlXZXN0IEhpbGxzIENBIDkxMzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0xQiAgIChoZXgpCQlLb2xsbW9yZ2VuLVNlcnZvdHJvbml4CiswMDAyMUIgICAgIChiYXNlIDE2KQkJS29sbG1vcmdlbi1TZXJ2b3Ryb25peAorCQkJCVBPQiAzOTE5LCBQZXRhY2ggVGlreWEKKwkJCQk0OTEzMCBJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDItMUMgICAoaGV4KQkJTmV0d29yayBFbGVtZW50cywgSW5jLgorMDAwMjFDICAgICAoYmFzZSAxNikJCU5ldHdvcmsgRWxlbWVudHMsIEluYy4KKwkJCQk5NzgyIFNXIE5pbWJ1cyBBdmVudWUKKwkJCQlCZWF2ZXJ0b24gT1IgOTcwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTFEICAgKGhleCkJCURhdGEgR2VuZXJhbCBDb21tdW5pY2F0aW9uIEx0ZC4KKzAwMDIxRCAgICAgKGJhc2UgMTYpCQlEYXRhIEdlbmVyYWwgQ29tbXVuaWNhdGlvbiBMdGQuCisJCQkJUm0uIDE4QywgQmxkZy4gQywgQ0VJRUMgVG93ZXIKKwkJCQlOby4gMjA3MCwgUmQuIFNoZW5OYW5aaG9uZyBTaGVuWmhlbiBDaXR5CisJCQkJQ0hJTkEKKwkJCQlDSElOQQorCiswMC0wMi0xRSAgIChoZXgpCQlTSU1URUwgUy5SLkwuCiswMDAyMUUgICAgIChiYXNlIDE2KQkJU0lNVEVMIFMuUi5MLgorCQkJCVZpYSBCb25pZmFjaW8gTHVwaSwgMjUKKwkJCQk1MDEyOSBGaXJlbnplCisJCQkJSVRBTFkKKwkJCQlJVEFMWQorCiswMC0wMi0xRiAgIChoZXgpCQlBY3VsYWIgUExDCiswMDAyMUYgICAgIChiYXNlIDE2KQkJQWN1bGFiIFBMQworCQkJCUxha2VzaWRlLCBCcmFtbGV5IFJvYWQKKwkJCQlNb3VudCBGYXJtIE1pbHRvbiBLZXluZXMgQnVsa3MgTUsxIDFQVAorCQkJCVVLCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDItMjAgICAoaGV4KQkJQ0FOT04gRklORVRFQ0ggSU5DLgorMDAwMjIwICAgICAoYmFzZSAxNikJCUNBTk9OIEZJTkVURUNIIElOQy4KKwkJCQk3MTcsIFlhZ3VjaGksIE1pc2F0by1zaGksCisJCQkJU2FpdGFtYSAgMzQxLTg1MjcKKwkJCQlKQVBBTgorCiswMC0wMi0yMSAgIChoZXgpCQlEU1AgQXBwbGljYXRpb24sIEx0ZC4KKzAwMDIyMSAgICAgKGJhc2UgMTYpCQlEU1AgQXBwbGljYXRpb24sIEx0ZC4KKwkJCQkxMkYtMTIsIE5vLiA3OSwgU2VjLiAxIEhzaW4gVGFpIFd1IFJkLgorCQkJCUhTSUNISSwgVGFpcGVpIENvdW50eQorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItMjIgICAoaGV4KQkJQ2hyb21pc3lzLCBJbmMuCiswMDAyMjIgICAgIChiYXNlIDE2KQkJQ2hyb21pc3lzLCBJbmMuCisJCQkJMTAxMiBTdGV3YXJ0IERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0yMyAgIChoZXgpCQlDbGlja1RWCiswMDAyMjMgICAgIChiYXNlIDE2KQkJQ2xpY2tUVgorCQkJCUtlbW9uZyBCbGRnLiwgNHRoIEZsLiwKKwkJCQk3NzIgWW9rc2FtLURvbmcgS2FuZ25hbS1LdQorCQkJCVNlb3VsIEtvcmVhIDEzNS0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItMjQgICAoaGV4KQkJQy1DT1IKKzAwMDIyNCAgICAgKGJhc2UgMTYpCQlDLUNPUgorCQkJCTE1IFN0ZXJsaW5nIERyaXZlCisJCQkJV2FsbGluZ2ZvcmQgQ1QgMDY0OTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTI1ICAgKGhleCkJCU9uZSBTdG9wIFN5c3RlbXMKKzAwMDIyNSAgICAgKGJhc2UgMTYpCQlPbmUgU3RvcCBTeXN0ZW1zCisJCQkJMjIzNSBFbnRlcnByaXNlIFN0cmVldAorCQkJCVN1aXRlIDExMAorCQkJCUVzY29uZGlkbyBDQSA5MjAyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMjYgICAoaGV4KQkJWEVTeXN0ZW1zLCBJbmMuCiswMDAyMjYgICAgIChiYXNlIDE2KQkJWEVTeXN0ZW1zLCBJbmMuCisJCQkJMzE3IE1haW4gU3RyZWV0CisJCQkJRWFzdCBSb2NoZXN0ZXIgTlkgMTQ0NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTI3ICAgKGhleCkJCUVTRCBFbGVjdHJvbmljIFN5c3RlbSBEZXNpZ24gR21iSAorMDAwMjI3ICAgICAoYmFzZSAxNikJCUVTRCBFbGVjdHJvbmljIFN5c3RlbSBEZXNpZ24gR21iSAorCQkJCVZhaHJlbndhbGRlciBTdHIuIDIwNworCQkJCTMwIDE2NSBIYW5ub3ZlciBHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMi0yOCAgIChoZXgpCQlOZWNzb20sIEx0ZC4KKzAwMDIyOCAgICAgKGJhc2UgMTYpCQlOZWNzb20sIEx0ZC4KKwkJCQlOZWNzb20gTHRkLiBjL28gS29pcnN0bworCQkJCVNhdW5hbWFlbnRpZSA0IEEgMSBGSU4tMDI3NzAgRVNQMDAKKwkJCQlGSU5MQU5ECisJCQkJRklOTEFORAorCiswMC0wMi0yOSAgIChoZXgpCQlBZHRlYyBDb3Jwb3JhdGlvbgorMDAwMjI5ICAgICAoYmFzZSAxNikJCUFkdGVjIENvcnBvcmF0aW9uCisJCQkJM0YgTWVndXJvaGlnYXNoaXlhbWEgQmxnCisJCQkJMSA0IDQgSGlnYXNoaXlhbWEsIE1lZ3VybyBLdSBUb2t5byAxNTMgMAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDItMkEgICAoaGV4KQkJQXNvdW5kIEVsZWN0cm9uaWMKKzAwMDIyQSAgICAgKGJhc2UgMTYpCQlBc291bmQgRWxlY3Ryb25pYworCQkJCVhpYW54aSBJbmR1c3RyaWVzIFpvbmUgQ2hhbmdhbiBUb3duCisJCQkJRG9uZyBHdW9uIENpdHksIEd1b25nIERvbmcgUHJvdmlkZW5jZQorCQkJCUNISU5BCisJCQkJQ0hJTkEKKworMDAtMDItMkIgICAoaGV4KQkJU0FYQSwgSW5jLgorMDAwMjJCICAgICAoYmFzZSAxNikJCVNBWEEsIEluYy4KKwkJCQlOQkYgUGxhdGludW0gVG93ZXIgMS0xNy0zIFNoaXJva2FuZQorCQkJCU1pbmF0by1rdSBUb2t5byAxMDgtODA1MAorCQkJCUpBUEFOCisKKzAwLTAyLTJDICAgKGhleCkJCUFCQiBCb21lbSwgSW5jLgorMDAwMjJDICAgICAoYmFzZSAxNikJCUFCQiBCb21lbSwgSW5jLgorCQkJCTU4NSwgYm91bC4gQ2hhcmVzdCBFc3QKKwkJCQlTdWl0ZSAzMDAgUXVlYmVjIENpdHksIFBRCisJCQkJQ2FuYWRhIEcxSyA5SDQKKwkJCQlDQU5BREEKKworMDAtMDItMkQgICAoaGV4KQkJQWdlcmUgU3lzdGVtcworMDAwMjJEICAgICAoYmFzZSAxNikJCUFnZXJlIFN5c3RlbXMKKwkJCQlQLk8uIEJveCA3NTUKKwkJCQkzNDMwIEF0IE5pZXV3ZWdlaW4KKwkJCQlORVRIRVJMQU5EUworCiswMC0wMi0yRSAgIChoZXgpCQlURUFDIENvcnAuIFImIEQKKzAwMDIyRSAgICAgKGJhc2UgMTYpCQlURUFDIENvcnAuIFImIEQKKwkJCQk4NTcgS295YXRhLCBJcnVtYQorCQkJCVNhaXRhbWEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAyLTJGICAgKGhleCkJCVAtQ3ViZSwgTHRkLgorMDAwMjJGICAgICAoYmFzZSAxNikJCVAtQ3ViZSwgTHRkLgorCQkJCVAuTy4gQm94IDEyMzMxCisJCQkJSGVyemxpYSA0Njc2NgorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wMi0zMCAgIChoZXgpCQlJbnRlcnNvZnQgRWxlY3Ryb25pY3MKKzAwMDIzMCAgICAgKGJhc2UgMTYpCQlJbnRlcnNvZnQgRWxlY3Ryb25pY3MKKwkJCQlMYW1tZXJkcmllcyAyNworCQkJCUIyMjUwIE9sZW4KKwkJCQlCRUxHSVVNCisJCQkJQkVMR0lVTQorCiswMC0wMi0zMSAgIChoZXgpCQlJbmdlcnNvbGwtUmFuZAorMDAwMjMxICAgICAoYmFzZSAxNikJCUluZ2Vyc29sbC1SYW5kCisJCQkJMTQ2NyBSb3V0ZSAzMSBTb3V0aAorCQkJCVAuTy4gQm94IDk3MAorCQkJCUFubmFuZGFsZSBOSiAwODgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMzIgICAoaGV4KQkJQXZpc2lvbiwgSW5jLgorMDAwMjMyICAgICAoYmFzZSAxNikJCUF2aXNpb24sIEluYy4KKwkJCQlOby4gMjAsIENyZWF0aW9uIFJkLiAxLAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgVGFpd2FuLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTMzICAgKGhleCkJCU1hbnRyYSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMjMzICAgICAoYmFzZSAxNikJCU1hbnRyYSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTEyODUwIE1pZGRsZWJyb29rIFJvYWQKKwkJCQlTdWl0ZSAxCisJCQkJR2VybWFudG93biBNRCAyMDg3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMzQgICAoaGV4KQkJSW1wZXJpYWwgVGVjaG5vbG9neSwgSW5jLgorMDAwMjM0ICAgICAoYmFzZSAxNikJCUltcGVyaWFsIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyMzA1IFV0YWggQXZlbnVlCisJCQkJRWwgU2VndW5kbyBDQSA5MDI0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMzUgICAoaGV4KQkJUGFyYWdvbiBOZXR3b3JrcyBJbnRlcm5hdGlvbmFsCiswMDAyMzUgICAgIChiYXNlIDE2KQkJUGFyYWdvbiBOZXR3b3JrcyBJbnRlcm5hdGlvbmFsCisJCQkJNjEgQ29tbWVyY2UgRHJpdmUKKwkJCQlCcm9va2ZpZWxkIENUIDA2ODA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0zNiAgIChoZXgpCQlJTklUIEdtYkgKKzAwMDIzNiAgICAgKGJhc2UgMTYpCQlJTklUIEdtYkgKKwkJCQlLYWVwcGVsZXN0ci4gNgorCQkJCUQtNzYxMzEgS2FybHNydWhlCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDItMzcgICAoaGV4KQkJQ29zbW8gUmVzZWFyY2ggQ29ycC4KKzAwMDIzNyAgICAgKGJhc2UgMTYpCQlDb3NtbyBSZXNlYXJjaCBDb3JwLgorCQkJCUNvc21vIEJsZGcsIDMtMTQ4LTUKKwkJCQlNaXlhaGFyYWNobywgT21peWEgU2FpdGFtYSAzMzAtMDAzOAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDItMzggICAoaGV4KQkJU2Vyb21lIFRlY2hub2xvZ3ksIEluYy4KKzAwMDIzOCAgICAgKGJhc2UgMTYpCQlTZXJvbWUgVGVjaG5vbG9neSwgSW5jLgorCQkJCTU1NS0xNCwgQmFla2FuZyBCL0QgN0YKKwkJCQlTaGluc2EtZG9uZywgS2FuZ25hbS1ndQorCQkJCVNlb3VsIEtvcmVhIDEzNS0xMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItMzkgICAoaGV4KQkJVmlzaWNvbQorMDAwMjM5ICAgICAoYmFzZSAxNikJCVZpc2ljb20KKwkJCQkxMDA1MiBNZXNhIFJpZGdlIEN0LgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItM0EgICAoaGV4KQkJWlNLIFN0aWNrbWFzY2hpbmVuIEdtYkgKKzAwMDIzQSAgICAgKGJhc2UgMTYpCQlaU0sgU3RpY2ttYXNjaGluZW4gR21iSAorCQkJCU1hZ2RlYnVyZ2VyIFN0cmFzc2UgMzgtNDAKKwkJCQk0NzgwMCBLcmVmZWxkCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDItM0IgICAoaGV4KQkJUmVkYmFjayBOZXR3b3JrcworMDAwMjNCICAgICAoYmFzZSAxNikJCVJlZGJhY2sgTmV0d29ya3MKKwkJCQkxMTk1IEJvcnJlZ2FzIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItM0MgICAoaGV4KQkJQ3JlYXRpdmUgVGVjaG5vbG9neSwgTHRkLgorMDAwMjNDICAgICAoYmFzZSAxNikJCUNyZWF0aXZlIFRlY2hub2xvZ3ksIEx0ZC4KKwkJCQkzMSBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIFBhcmsKKwkJCQlTaW5nYXBvcmUgNjA5OTIxCisJCQkJUmVwdWJsaWMgb2YgU2luZ2Fwb3JlCisJCQkJU0lOR0FQT1JFCisKKzAwLTAyLTNEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDIzRCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTNFICAgKGhleCkJCVNlbHRhIFRlbGVtYXRpY2EgUy5wLmEKKzAwMDIzRSAgICAgKGJhc2UgMTYpCQlTZWx0YSBUZWxlbWF0aWNhIFMucC5hCisJCQkJVmlhIE5hemlvbmFsZSBrbSA0MDQuNQorCQkJCTY0MDE5IFRvcnRvcmV0byBMaWRvIFRFCisJCQkJSVRBTFkKKwkJCQlJVEFMWQorCiswMC0wMi0zRiAgIChoZXgpCQlDb21wYWwgRWxlY3Ryb25pY3MsIEluYy4KKzAwMDIzRiAgICAgKGJhc2UgMTYpCQlDb21wYWwgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQk1ODEsIEp1aWt1YW5nIFJkLiwKKwkJCQlOZWlodSwgVGFpcGVpLCAoMTE0KQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi00MCAgIChoZXgpCQlTZWVkZWsgQ28uLCBMdGQuCiswMDAyNDAgICAgIChiYXNlIDE2KQkJU2VlZGVrIENvLiwgTHRkLgorCQkJCSM3MDksIDE2MzgtMzIsIFNhbW1vCisJCQkJU2hpbnJpbWJvbi1Eb25nLCBLd2FuYWstR3UsIFNlb3VsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItNDEgICAoaGV4KQkJQW1lci5jb20KKzAwMDI0MSAgICAgKGJhc2UgMTYpCQlBbWVyLmNvbQorCQkJCTcyNTkgQnJ5YW4gRGFpcnkgUm9hZAorCQkJCUxhcmdvIEZMIDMzNzc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi00MiAgIChoZXgpCQlWaWRlb2ZyYW1lIFN5c3RlbXMKKzAwMDI0MiAgICAgKGJhc2UgMTYpCQlWaWRlb2ZyYW1lIFN5c3RlbXMKKwkJCQkxMDEgUHJvdmlkZW5jZSBNaW5lIFJvYWQKKwkJCQlTdWl0ZSAxMDMKKwkJCQlOZXZhZGEgQ2l0eSBDQSA5NTk1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNDMgICAoaGV4KQkJUmF5c2lzIENvLiwgTHRkLgorMDAwMjQzICAgICAoYmFzZSAxNikJCVJheXNpcyBDby4sIEx0ZC4KKwkJCQk5OTctMTAsIERhZWNoaS1Eb25nLCBLYW5nbmFtLUt1LAorCQkJCVNlb3VsIDEzNS0yODAsIFNvdXRoIEtvcmVhCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTQ0ICAgKGhleCkJCVNVUkVDT00gVGVjaG5vbG9neSBDby4KKzAwMDI0NCAgICAgKGJhc2UgMTYpCQlTVVJFQ09NIFRlY2hub2xvZ3kgQ28uCisJCQkJNkYsIE5vLiAxMjUsIFNlYy4gMiwgRGF0dW5nIFJkLgorCQkJCVNoaWpyLCBUYWlwZWkgQ291bnR5LCAyMjEKKwkJCQlUYWl3YW4gVGFpd2FuIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItNDUgICAoaGV4KQkJTGFtcHVzIENvLCBMdGQuCiswMDAyNDUgICAgIChiYXNlIDE2KQkJTGFtcHVzIENvLCBMdGQuCisJCQkJNnRoIEJsZGcuLCBTYW1nb25nLAorCQkJCTU4LTcgUmFucG8gNGRvbmcgU2NvY2gtZ28sIFNlb3VsLAorCQkJCUtvcmVhIEtvcmVhIDEzNy0wNDQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItNDYgICAoaGV4KQkJQWxsLVdpbiBUZWNoIENvLiwgTHRkLgorMDAwMjQ2ICAgICAoYmFzZSAxNikJCUFsbC1XaW4gVGVjaCBDby4sIEx0ZC4KKwkJCQkxMUYsIE5vLiAxMTEtNywgSHNpbmcgRGUgUmQuLAorCQkJCVNhbiBDaHVuZyBDaXR5LAorCQkJCVRhaXBlaSBIc2llbiBUYWl3YW4sIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItNDcgICAoaGV4KQkJR3JlYXQgRHJhZ29uIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKEdyb3VwKSBDby4sIEx0ZC4KKzAwMDI0NyAgICAgKGJhc2UgMTYpCQlHcmVhdCBEcmFnb24gSW5mb3JtYXRpb24gVGVjaG5vbG9neSAoR3JvdXApIENvLiwgTHRkLgorCQkJCTE2OSBCZWl5dWFuIFJkLiwKKwkJCQlDaGFveWFuZyBEaXN0cmljdAorCQkJCUJlaWppbmcgMTAwMTAxLCBDSElOQQorCQkJCUNISU5BCisKKzAwLTAyLTQ4ICAgKGhleCkJCVBpbHogR21iSCAmIENvLgorMDAwMjQ4ICAgICAoYmFzZSAxNikJCVBpbHogR21iSCAmIENvLgorCQkJCUZlbGl4LVdhbmtlbC1TdHJhc3NlIDIKKwkJCQlELTczNzYwIE9zdGZpbGRlcm4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMi00OSAgIChoZXgpCQlBdml2IEluZm9jb20gQ28sIEx0ZC4KKzAwMDI0OSAgICAgKGJhc2UgMTYpCQlBdml2IEluZm9jb20gQ28sIEx0ZC4KKwkJCQk5NjItNSwgS3dhbnlhbmctRG9uZywgRG9uZ2FuLUd1LAorCQkJCUFueWFuZy1DaXR5LCBLeXVuZ2tpLURvLCA0MzEtMDYwCisJCQkJS29yZWEgKFJPSykKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItNEEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMjRBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTRCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDI0QiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi00QyAgIChoZXgpCQlTaUJ5dGUsIEluYy4KKzAwMDI0QyAgICAgKGJhc2UgMTYpCQlTaUJ5dGUsIEluYy4KKwkJCQkyODA1IEJvd2VycyBBdmVudWUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MS0wOTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi00RCAgIChoZXgpCQlNYW5uZXNtYW4gRGVtYXRpYyBDb2xieSBQdHkuIEx0ZC4KKzAwMDI0RCAgICAgKGJhc2UgMTYpCQlNYW5uZXNtYW4gRGVtYXRpYyBDb2xieSBQdHkuIEx0ZC4KKwkJCQkyNCBOYXJhYmFuZyBXYXkKKwkJCQlCZWxyb3NlLCBOU1cgMjA4NQorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC0wMi00RSAgIChoZXgpCQlEYXRhY2FyZCBHcm91cAorMDAwMjRFICAgICAoYmFzZSAxNikJCURhdGFjYXJkIEdyb3VwCisJCQkJMTExMTEgQnJlbiBSb2FkIFdlc3QKKwkJCQlNUyAyMTAKKwkJCQlNaW5uZXRvbmthIE1OIDU1MzQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi00RiAgIChoZXgpCQlJUE0gRGF0YWNvbSBTLlIuTC4KKzAwMDI0RiAgICAgKGJhc2UgMTYpCQlJUE0gRGF0YWNvbSBTLlIuTC4KKwkJCQlWaWEgUm9tYSwgMjMxCisJCQkJODAwMjcgRnJhdHRhbWFnZ2lvcmUKKwkJCQlOYXBsZXMgSVRBTFkKKwkJCQlJVEFMWQorCiswMC0wMi01MCAgIChoZXgpCQlHZXlzZXIgTmV0d29ya3MsIEluYy4KKzAwMDI1MCAgICAgKGJhc2UgMTYpCQlHZXlzZXIgTmV0d29ya3MsIEluYy4KKwkJCQk1MzUgRGVsIFJleSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTUxICAgKGhleCkJCVNvbWEgTmV0d29ya3MsIEluYy4KKzAwMDI1MSAgICAgKGJhc2UgMTYpCQlTb21hIE5ldHdvcmtzLCBJbmMuCisJCQkJNjUwIFRvd25zZW5kIFN0LgorCQkJCVN1aXRlIDMwNQorCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTUyICAgKGhleCkJCUNhcnJpZXIgQ29ycG9yYXRpb24KKzAwMDI1MiAgICAgKGJhc2UgMTYpCQlDYXJyaWVyIENvcnBvcmF0aW9uCisJCQkJT25lIENhcnJpZXIgUGxhY2UKKwkJCQlGYXJtaW5ndG9uIENUIDA2MDM0LTQwMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTUzICAgKGhleCkJCVRlbGV2aWRlbywgSW5jLgorMDAwMjUzICAgICAoYmFzZSAxNikJCVRlbGV2aWRlbywgSW5jLgorCQkJCTIzNDUgSGFycmlzIFdheQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi01NCAgIChoZXgpCQlXb3JsZEdhdGUKKzAwMDI1NCAgICAgKGJhc2UgMTYpCQlXb3JsZEdhdGUKKwkJCQkzMTkwIFRyZW1vbnQgQXZlbnVlCisJCQkJVHJldm9zZSBQQSAxOTA1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNTUgICAoaGV4KQkJSUJNIENvcnAKKzAwMDI1NSAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJveCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNTYgICAoaGV4KQkJQWxwaGEgUHJvY2Vzc29yLCBJbmMuCiswMDAyNTYgICAgIChiYXNlIDE2KQkJQWxwaGEgUHJvY2Vzc29yLCBJbmMuCisJCQkJMTMwIEMgQmFrZXIgQXZlLiBFeHQuCisJCQkJQ29uY29yZCBNQSAwMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNTcgICAoaGV4KQkJTWljcm9jb20gQ29ycC4KKzAwMDI1NyAgICAgKGJhc2UgMTYpCQlNaWNyb2NvbSBDb3JwLgorCQkJCTgzMzNBIEdyZWVuIE1lYWRvd3MgRHIuIE4uCisJCQkJV2VzdGVydmlsbGUgT0ggNDMwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTU4ICAgKGhleCkJCUZseWluZyBQYWNrZXRzIENvbW11bmljYXRpb25zCiswMDAyNTggICAgIChiYXNlIDE2KQkJRmx5aW5nIFBhY2tldHMgQ29tbXVuaWNhdGlvbnMKKwkJCQkzODggTWFya2V0IFN0cmVldAorCQkJCVN1aXRlIDM4MAorCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTU5ICAgKGhleCkJCVRzYW5uIEt1ZW4gQ2hpbmEgKFNoYW5naGFpKUVudGVycHJpc2UgQ28uLCBMdGQuIElUIEdyb3VwCiswMDAyNTkgICAgIChiYXNlIDE2KQkJVHNhbm4gS3VlbiBDaGluYSAoU2hhbmdoYWkpRW50ZXJwcmlzZSBDby4sIEx0ZC4gSVQgR3JvdXAKKwkJCQk4RiwgIzk5LCBIdWFpaGFpIFJkLCBFYXN0LAorCQkJCVNoYW5naGFpLAorCQkJCUNISU5BIDIwMDAyMQorCQkJCUNISU5BCisKKzAwLTAyLTVBICAgKGhleCkJCUNhdGVuYSBOZXR3b3JrcworMDAwMjVBICAgICAoYmFzZSAxNikJCUNhdGVuYSBOZXR3b3JrcworCQkJCTMwNyBMZWdnZXQgRHJpdmUKKwkJCQlLYW5hdGEgT250YXJpbworCQkJCUNhbmFkYSBLMksgM0M4CisJCQkJQ0FOQURBCisKKzAwLTAyLTVCICAgKGhleCkJCUNhbWJyaWRnZSBTaWxpY29uIFJhZGlvCiswMDAyNUIgICAgIChiYXNlIDE2KQkJQ2FtYnJpZGdlIFNpbGljb24gUmFkaW8KKwkJCQlVbml0IDQwMCwgU2NpZW5jZSBQYXJrLAorCQkJCU1pbHRvbiBSb2FkLCBDYW1icmlkZ2UsQ0I0IE9YTAorCQkJCVVuaXRlZCBLaW5nZG9tCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDItNUMgICAoaGV4KQkJU0NJIFN5c3RlbXMgKEt1bnNoYW4pIENvLiwgTHRkLgorMDAwMjVDICAgICAoYmFzZSAxNikJCVNDSSBTeXN0ZW1zIChLdW5zaGFuKSBDby4sIEx0ZC4KKwkJCQkzMTIgUUlORyBZQU5HIFJPQUQKKwkJCQlLVU5TSEFOLCBKSUFOR1NVIFBST1ZJQ0MKKwkJCQlDSElOQSBDSElOQSAyMTUzMDAKKwkJCQlDSElOQQorCiswMC0wMi01RCAgIChoZXgpCQlDYWxpeCBOZXR3b3JrcworMDAwMjVEICAgICAoYmFzZSAxNikJCUNhbGl4IE5ldHdvcmtzCisJCQkJMTAzNSBOb3J0aCBNY0Rvd2VsbCBCbHZkLgorCQkJCVBldGFsdW1hIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi01RSAgIChoZXgpCQlIaWdoIFRlY2hub2xvZ3kgTHRkCiswMDAyNUUgICAgIChiYXNlIDE2KQkJSGlnaCBUZWNobm9sb2d5IEx0ZAorCQkJCUNob25ncWluZyBKaW5naG9uZworCQkJCUEyLTEwLTMgQ2FsaWZvcm5pYSBHYXJkZW4gWXViZWkgRGlzdHJpY3QKKwkJCQlQZW9wbGUncyBSZXB1YmxpYyBvZiBDaGluYQorCQkJCUNISU5BCisKKzAwLTAyLTVGICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwMjVGICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTkzMDAgdHJhbnMtQ0FOQURBIEhpZ2h3YXkKKwkJCQlTdC4gTGF1cmVuZXQsIFF1ZWJlYworCQkJCUg0UyAxS1MgQ0FOQURBCisJCQkJQ0FOQURBCisKKzAwLTAyLTYwICAgKGhleCkJCUFjY29yZGlvbiBOZXR3b3JrcywgSW5jLgorMDAwMjYwICAgICAoYmFzZSAxNikJCUFjY29yZGlvbiBOZXR3b3JrcywgSW5jLgorCQkJCTM5ODk5IEJhbGVudGluZSBEcml2ZSwgIzMzNQorCQkJCU5ld2FyayBDQSA5NDU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNjEgICAoaGV4KQkJVGlsZ2luIEFCCiswMDAyNjEgICAgIChiYXNlIDE2KQkJVGlsZ2luIEFCCisJCQkJRmlubGFuZHNnYXRhbiA0MAorCQkJCVNFLTE2NCA3NCBLaXN0YQorCQkJCVNXRURFTgorCiswMC0wMi02MiAgIChoZXgpCQlTb3lvIEdyb3VwIFNveW8gQ29tIFRlY2ggQ28uLCBMdGQKKzAwMDI2MiAgICAgKGJhc2UgMTYpCQlTb3lvIEdyb3VwIFNveW8gQ29tIFRlY2ggQ28uLCBMdGQKKwkJCQk1SC4gTm8uIDIxIFd1LWdvbmcgNSBSZCwKKwkJCQlIc2luZyBDaHVhbmcsCisJCQkJVGFpcGVpIEhzaWVuIFRhaXdhbiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTYzICAgKGhleCkJCVVQUyBNYW51ZmFjdHVyaW5nIFNSTAorMDAwMjYzICAgICAoYmFzZSAxNikJCVVQUyBNYW51ZmFjdHVyaW5nIFNSTAorCQkJCVZpYSBHaW9yZGFubywgNTQKKwkJCQkzNzA1MCBWYWxsZXNlIERpIE9wcGVhbm8KKwkJCQlWZXJvbmEgSXRhbHkKKwkJCQlJVEFMWQorCiswMC0wMi02NCAgIChoZXgpCQlBdWRpb1JhbXAuY29tCiswMDAyNjQgICAgIChiYXNlIDE2KQkJQXVkaW9SYW1wLmNvbQorCQkJCTE1OTQxIFJlZCBIaWxsIFN1aXRlIDIwNQorCQkJCVR1c3RpbiBDQSA5Mjc4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNjUgICAoaGV4KQkJVmlyZGl0ZWNoIENvLiBMdGQuCiswMDAyNjUgICAgIChiYXNlIDE2KQkJVmlyZGl0ZWNoIENvLiBMdGQuCisJCQkJSHl1bmRhaSBUb3BpY3MgQmxnZC4sIDExdGggRmwKKwkJCQk0NC0zIFBhbmdpLWRvbmcsIFNvbmdwYS1HdQorCQkJCVNlb3VsIFNlb3VsIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTY2ICAgKGhleCkJCVRoZXJtYWxvZ2ljIENvcnBvcmF0aW9uCiswMDAyNjYgICAgIChiYXNlIDE2KQkJVGhlcm1hbG9naWMgQ29ycG9yYXRpb24KKwkJCQkyMiBLYW5lIEluZHVzdHJpYWwgRHJpdmUKKwkJCQlIdWRzb24gTUEgMDE3NDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTY3ICAgKGhleCkJCU5PREUgUlVOTkVSLCBJTkMuCiswMDAyNjcgICAgIChiYXNlIDE2KQkJTk9ERSBSVU5ORVIsIElOQy4KKwkJCQkyMjAyIE4uIEZPUkJFUyBCTFZELgorCQkJCVRVQ1NPTiBBWiA4NTc0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNjggICAoaGV4KQkJSGFycmlzIEdvdmVybm1lbnQgQ29tbXVuaWNhdGlvbnMKKzAwMDI2OCAgICAgKGJhc2UgMTYpCQlIYXJyaXMgR292ZXJubWVudCBDb21tdW5pY2F0aW9ucworCQkJCVN5c3RlbXMgRGl2aXNpb24KKwkJCQlQLk8uIEJveCAzNyBNUzogMS01ODU2CisJCQkJTWVsYm91cm5lIEZMIDMyOTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi02OSAgIChoZXgpCQlOYWRhdGVsIENvLiwgTHRkCiswMDAyNjkgICAgIChiYXNlIDE2KQkJTmFkYXRlbCBDby4sIEx0ZAorCQkJCTlGIENvV2VsbCBCbGRnLCA2Ni0xIEJhbnBvLURvbmcKKwkJCQlTZW9jaG8tR3UsIFNlb3VsLAorCQkJCUtPUkVBIDEzNy0wNDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItNkEgICAoaGV4KQkJQ29jZXNzIFRlbGVjb20gQ28uLCBMdGQuCiswMDAyNkEgICAgIChiYXNlIDE2KQkJQ29jZXNzIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJUmVzZWFyY2ggJiBEZXZlbG9wbWVudCBEZXB0LgorCQkJCTQzLCBZb2lkby1Eb25nLCBZb3VuZ2RldW5ncG8tS3UKKwkJCQlTZW91bCBTZW91bCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi02QiAgIChoZXgpCQlCQ00gQ29tcHV0ZXJzIENvLiwgTHRkLgorMDAwMjZCICAgICAoYmFzZSAxNikJCUJDTSBDb21wdXRlcnMgQ28uLCBMdGQuCisJCQkJNEYtMSwgTm8uIDY2LCBTZWMgMiwKKwkJCQlOYW4gS2FuIFJkLiwgTHUtQ2h1IEhzaW5nLCBUYW8gWXVhbgorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi02QyAgIChoZXgpCQlQaGlsaXBzIENGVAorMDAwMjZDICAgICAoYmFzZSAxNikJCVBoaWxpcHMgQ0ZUCisJCQkJQnVpbGRpbmcgU0FOIDYKKwkJCQlQLk8uIEJveCAyMTggNTYwMCBNRCBFaW5kaG92ZW4KKwkJCQlUaGUgTmV0aGVybGFuZHMKKwkJCQlORVRIRVJMQU5EUworCiswMC0wMi02RCAgIChoZXgpCQlBZGVwdCBUZWxlY29tCiswMDAyNkQgICAgIChiYXNlIDE2KQkJQWRlcHQgVGVsZWNvbQorCQkJCUF2ZW51ZSBkZSBsJ0V1cm9wZQorCQkJCUJQIDE2MSBGLTcxMjA0IExlIENyZXVzb3QgQ2VkZXgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDItNkUgICAoaGV4KQkJTmVHZU4gQWNjZXNzLCBJbmMuCiswMDAyNkUgICAgIChiYXNlIDE2KQkJTmVHZU4gQWNjZXNzLCBJbmMuCisJCQkJMzMgQm9zdG9uIFBvc3QgUmQuIFdlc3QKKwkJCQlTdWl0ZSAzNjAKKwkJCQlNYXJsYm9yb3VnaCBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNkYgICAoaGV4KQkJU2VuYW8gSW50ZXJuYXRpb25hbCBDby4sIEx0ZC4KKzAwMDI2RiAgICAgKGJhc2UgMTYpCQlTZW5hbyBJbnRlcm5hdGlvbmFsIENvLiwgTHRkLgorCQkJCTJGLCBOby4gNTMxLCBDaHVuZy1DaGVuZyBSZC4sCisJCQkJSHNpbi1UaWVuIENpdHksIFRhaXBlaSBDb3VudHksCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi03MCAgIChoZXgpCQlDcmV3YXZlIENvLiwgTHRkLgorMDAwMjcwICAgICAoYmFzZSAxNikJCUNyZXdhdmUgQ28uLCBMdGQuCisJCQkJRjcsIFB1cmV1biBCbGRnLiwgMjgtMQorCQkJCUphbXdvbi1kb25nLCBTZW9jaG8tZ3UKKwkJCQlTZW91bCBLT1JFQSAxMzctMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTcxICAgKGhleCkJCVpob25lIFRlY2hub2xvZ2llcworMDAwMjcxICAgICAoYmFzZSAxNikJCVpob25lIFRlY2hub2xvZ2llcworCQkJCTcwMDEgT2FrcG9ydCBTdHJlZXQKKwkJCQlPYWtsYW5kIENBIDk0NjIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi03MiAgIChoZXgpCQlDQyZDIFRlY2hub2xvZ2llcywgSW5jLgorMDAwMjcyICAgICAoYmFzZSAxNikJCUNDJkMgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJOEYsIDE1MCwgQ2hpZW4gSSBSZC4sIENodW5nIEhvIENpdHksCisJCQkJVGFpcGVpIENvdW50eSAyMzUgVGFpd2FuIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItNzMgICAoaGV4KQkJQ29yaW9saXMgTmV0d29ya3MKKzAwMDI3MyAgICAgKGJhc2UgMTYpCQlDb3Jpb2xpcyBOZXR3b3JrcworCQkJCTMzMCBDb2RtYW5oaWxsIFJvYWQKKwkJCQlCb3hib3JvdWdoIE1BIDAxNzE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi03NCAgIChoZXgpCQlUb21teSBUZWNobm9sb2dpZXMgQ29ycC4KKzAwMDI3NCAgICAgKGJhc2UgMTYpCQlUb21teSBUZWNobm9sb2dpZXMgQ29ycC4KKwkJCQkjNDA3IEhlZWhvb24gQmxkCisJCQkJMTEwLTEgS3Vyby1kb25nLCBLdXJvLWt1CisJCQkJU2VvdWwgU2VvdWwgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItNzUgICAoaGV4KQkJU01BUlQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDAyNzUgICAgIChiYXNlIDE2KQkJU01BUlQgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMzYzNiBSZXNlYXJjaCAgUm9hZCBOVworCQkJCUNhbGdhcnksIEFsYmVydGEgIFQyTDFZMQorCQkJCUNBTkFEQQorCiswMC0wMi03NiAgIChoZXgpCQlQcmltYXggRWxlY3Ryb25pY3MgTHRkLgorMDAwMjc2ICAgICAoYmFzZSAxNikJCVByaW1heCBFbGVjdHJvbmljcyBMdGQuCisJCQkJTm8uIDY2OSwgUnVleSBLdWFuZyBSb2FkLCBOZWlodQorCQkJCVRhaXBlaSBUYWl3YW4sIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItNzcgICAoaGV4KQkJQ2FzaCBTeXN0ZW1lcyBJbmR1c3RyaWUKKzAwMDI3NyAgICAgKGJhc2UgMTYpCQlDYXNoIFN5c3RlbWVzIEluZHVzdHJpZQorCQkJCVRlY2hub3BhcmMgRXBzaWxvbgorCQkJCVJkIDEwMCA4MzcwMCBTdCBSYXBoYWVsCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAyLTc4ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryby1NZWNoYW5pY3MgQ28uLCBMdGQuCiswMDAyNzggICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvLU1lY2hhbmljcyBDby4sIEx0ZC4KKwkJCQkzMTQsIE1hZS10YW4tZG9uZywKKwkJCQlQYWktZGFsLWd1LCBLeW91bmctZ2ktZG8sCisJCQkJU3V3b24gU3V3b24gS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItNzkgICAoaGV4KQkJQ29udHJvbCBBcHBsaWNhdGlvbnMsIEx0ZC4KKzAwMDI3OSAgICAgKGJhc2UgMTYpCQlDb250cm9sIEFwcGxpY2F0aW9ucywgTHRkLgorCQkJCTMgVGV2dW90IEhhYXJldHMgU3QuCisJCQkJVGVsLUF2aXYgNjk1NDYKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDItN0EgICAoaGV4KQkJSU9JIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMDI3QSAgICAgKGJhc2UgMTYpCQlJT0kgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLTMgTm8uIDEyNSBMYW5lIDIzNSwKKwkJCQlQYW8gQ2hpYW8gUm9hZCBIc2luIFRpZW4gQ2l0eSwKKwkJCQlUYWlwZWkgVEFJV0FOLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTdCICAgKGhleCkJCUFtcGxpZnkgTmV0LCBJbmMuCiswMDAyN0IgICAgIChiYXNlIDE2KQkJQW1wbGlmeSBOZXQsIEluYy4KKwkJCQk0NzM4MSBCYXlzaWRlIFBhcmt3YXkKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi03QyAgIChoZXgpCQlUcmlsaXRoaWMsIEluYy4KKzAwMDI3QyAgICAgKGJhc2UgMTYpCQlUcmlsaXRoaWMsIEluYy4KKwkJCQk5MjAyIEUuIDMzcmQgU3RyZWV0CisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi03RCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAyN0QgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItN0UgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMjdFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTdGICAgKGhleCkJCWFzay10ZWNobm9sb2dpZXMuY29tCiswMDAyN0YgICAgIChiYXNlIDE2KQkJYXNrLXRlY2hub2xvZ2llcy5jb20KKwkJCQkzNiBXZWxsaW5ndG9uIEJ1c2luZXNzIFBhcmsKKwkJCQlEdWtlcyBSaWRlLCBDcm93dGhvcm5lIEJlcmtzaGlyZSBSRzQ1IDZMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDItODAgICAoaGV4KQkJTXUgTmV0LCBJbmMuCiswMDAyODAgICAgIChiYXNlIDE2KQkJTXUgTmV0LCBJbmMuCisJCQkJNDQyIE1hcnJldHQgUm9hZAorCQkJCVN1aXRlIDkKKwkJCQlMZXhpbmd0b24gTUEgMDI0MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTgxICAgKGhleCkJCU1hZGdlIEx0ZC4KKzAwMDI4MSAgICAgKGJhc2UgMTYpCQlNYWRnZSBMdGQuCisJCQkJTWFkZ2UgSG91c2UKKwkJCQlQcmlvcnMgV2F5CisJCQkJTWFpbmRlbmhlYWQgQmVya3NoaXJlIFNMNiAySFAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMi04MiAgIChoZXgpCQlWaWFDbGl4LCBJbmMuCiswMDAyODIgICAgIChiYXNlIDE2KQkJVmlhQ2xpeCwgSW5jLgorCQkJCTE0MDAgRGVsbCBBdmUuLCBTdWl0ZSBCCisJCQkJQ2FtcGJlbGwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTgzICAgKGhleCkJCVNwZWN0cnVtIENvbnRyb2xzLCBJbmMuCiswMDAyODMgICAgIChiYXNlIDE2KQkJU3BlY3RydW0gQ29udHJvbHMsIEluYy4KKwkJCQlQTyBCb3ggNTUzMworCQkJCUJlbGxldnVlIFdBIDk4MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi04NCAgIChoZXgpCQlBUkVWQSBUJkQKKzAwMDI4NCAgICAgKGJhc2UgMTYpCQlBUkVWQSBUJkQKKwkJCQlBdmVudWUgZGUgRmlndWllcmVzIEJQIDc1CisJCQkJMzQ5NzUgTEFUVEVTIENlZGV4CisJCQkJRlJBTkNFCisKKzAwLTAyLTg1ICAgKGhleCkJCVJpdmVyc3RvbmUgTmV0d29ya3MKKzAwMDI4NSAgICAgKGJhc2UgMTYpCQlSaXZlcnN0b25lIE5ldHdvcmtzCisJCQkJNTIwMCBHcmVhdCBBbWVyaWNhIFBhcmt3YXkKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItODYgICAoaGV4KQkJT2NjYW0gTmV0d29ya3MKKzAwMDI4NiAgICAgKGJhc2UgMTYpCQlPY2NhbSBOZXR3b3JrcworCQkJCTQxODMgU3RhdGUgU3RyZWV0CisJCQkJU2FudGEgQmFyYmFyYSBDQSA5MzExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItODcgICAoaGV4KQkJQWRhcGNvbQorMDAwMjg3ICAgICAoYmFzZSAxNikJCUFkYXBjb20KKwkJCQkxNzItQSBDb21wb25lbnQgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItODggICAoaGV4KQkJR0xPQkFMIFZJTExBR0UgQ09NTVVOSUNBVElPTgorMDAwMjg4ICAgICAoYmFzZSAxNikJCUdMT0JBTCBWSUxMQUdFIENPTU1VTklDQVRJT04KKwkJCQkxMTQ0IEVBU1QgQVJRVUVTIEFWRS4KKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTg5ICAgKGhleCkJCURORSBUZWNobm9sb2dpZXMKKzAwMDI4OSAgICAgKGJhc2UgMTYpCQlETkUgVGVjaG5vbG9naWVzCisJCQkJNTAgQmFybmVzIFBhcmsgTgorCQkJCVdhbGxpbmdmb3JkIENUIDA2NDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi04QSAgIChoZXgpCQlBbWJpdCBNaWNyb3N5c3RlbXMgQ29ycG9yYXRpb24KKzAwMDI4QSAgICAgKGJhc2UgMTYpCQlBbWJpdCBNaWNyb3N5c3RlbXMgQ29ycG9yYXRpb24KKwkJCQk1Ri0xLCA1IEhzaW4tQW4gUm9hZCBIc2luY2h1LAorCQkJCVNjaWVuY2UgQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItOEIgICAoaGV4KQkJVkRTTCBTeXN0ZW1zIE9ZCiswMDAyOEIgICAgIChiYXNlIDE2KQkJVkRTTCBTeXN0ZW1zIE9ZCisJCQkJVGVrbmlpa2FudGllIDEyCisJCQkJMDIgMTUwIEVzcG9vCisJCQkJRklOTEFORAorCQkJCUZJTkxBTkQKKworMDAtMDItOEMgICAoaGV4KQkJTWljcmVsLVN5bmVyZ3kgU2VtaWNvbmR1Y3RvcgorMDAwMjhDICAgICAoYmFzZSAxNikJCU1pY3JlbC1TeW5lcmd5IFNlbWljb25kdWN0b3IKKwkJCQkzMjUwIFNjb3R0IEJvdWxldmFyZAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi04RCAgIChoZXgpCQlNb3ZpdGEgVGVjaG5vbG9naWVzLCBJbmMuCiswMDAyOEQgICAgIChiYXNlIDE2KQkJTW92aXRhIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCU5vLiAyNiBXdS1DaHVhbiA3dGggUm9hZCwKKwkJCQlXdS1LdSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlUYWlwZWkgVGFpd2FuLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLThFICAgKGhleCkJCVJhcGlkIDUgTmV0d29ya3MsIEluYy4KKzAwMDI4RSAgICAgKGJhc2UgMTYpCQlSYXBpZCA1IE5ldHdvcmtzLCBJbmMuCisJCQkJMTgwIEJheXRlY2ggRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNC0yMzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi04RiAgIChoZXgpCQlHbG9iZXRlaywgSW5jLgorMDAwMjhGICAgICAoYmFzZSAxNikJCUdsb2JldGVrLCBJbmMuCisJCQkJMTYwNyBBa3JvbiBQZW5pbnN1bGEgUmQuCisJCQkJU3VpdGUgMTAzCisJCQkJQWtyb24gT0ggNDQzMTMtNTE5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOTAgICAoaGV4KQkJV29vcmlnaXNvb2wsIEluYy4KKzAwMDI5MCAgICAgKGJhc2UgMTYpCQlXb29yaWdpc29vbCwgSW5jLgorCQkJCVlvb3Bvb25nIEJsZGcuCisJCQkJMTU5NS0xLCBCb25nY2h1bS03ZG9uZywKKwkJCQlTZW91bCBTZW91bCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi05MSAgIChoZXgpCQlPcGVuIE5ldHdvcmsgQ28uLCBMdGQuCiswMDAyOTEgICAgIChiYXNlIDE2KQkJT3BlbiBOZXR3b3JrIENvLiwgTHRkLgorCQkJCVNlaXNoaW4gQmxkZy4sIDItNS0xMCBTaGluanVrdQorCQkJCVNoaW5qdWt1LWt1LCBUb2t5bworCQkJCUpBUEFOIDE2MC0wMDIyCisJCQkJSkFQQU4KKworMDAtMDItOTIgICAoaGV4KQkJTG9naWMgSW5ub3ZhdGlvbnMsIEluYy4KKzAwMDI5MiAgICAgKGJhc2UgMTYpCQlMb2dpYyBJbm5vdmF0aW9ucywgSW5jLgorCQkJCTYyMDUgTHVzayBCbHZkLgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMS0yNzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi05MyAgIChoZXgpCQlTb2xpZCBEYXRhIFN5c3RlbXMKKzAwMDI5MyAgICAgKGJhc2UgMTYpCQlTb2xpZCBEYXRhIFN5c3RlbXMKKwkJCQkyOTQ1IE9ha21lYWQgVmlsbGFnZSBDb3VydAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi05NCAgIChoZXgpCQlUb2t5byBTb2t1c2hpbiBDby4sIEx0ZC4KKzAwMDI5NCAgICAgKGJhc2UgMTYpCQlUb2t5byBTb2t1c2hpbiBDby4sIEx0ZC4KKwkJCQk1LTE2LTEyIE5pc2hpLU5pcHBvcmkKKwkJCQlBcmFrYXdhLWt1LCBUb2t5byAxMTYtMDAxMworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDItOTUgICAoaGV4KQkJSVAuQWNjZXNzIExpbWl0ZWQKKzAwMDI5NSAgICAgKGJhc2UgMTYpCQlJUC5BY2Nlc3MgTGltaXRlZAorCQkJCU1lbGJvdXJuIFNjaWVuY2UgUGFyaworCQkJCUNhbWJyaWRnZSBSb2FkLCBNZWxib3VybiBSb3lzdG9uLCBIYXJ0Zm8KKwkJCQlTRzggNkVFIFNHOCA2RUUgVS5LLgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLTk2ICAgKGhleCkJCUxlY3Ryb24gQ28sLiBMdGQuCiswMDAyOTYgICAgIChiYXNlIDE2KQkJTGVjdHJvbiBDbywuIEx0ZC4KKwkJCQk5RiwgTm8uMTcxLCBTZWMuIDIsIFRhdHVuZyBSZC4sCisJCQkJSHNpY2hpaCBDaXR5LCBUYWlwZWkgSHNpZW4gMjIxLAorCQkJCVRhaXdhbiBUYWl3YW4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi05NyAgIChoZXgpCQlDLUNPUi5uZXQKKzAwMDI5NyAgICAgKGJhc2UgMTYpCQlDLUNPUi5uZXQKKwkJCQk2MCBEZWNpYmVsIFJvYWQKKwkJCQlCTVMgRW5naW5lZXJpbmcKKwkJCQlTdGF0ZSBDb2xsZWdlIFBBIDE2ODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi05OCAgIChoZXgpCQlCcm9hZGZyYW1lIENvcnBvcmF0aW9uCiswMDAyOTggICAgIChiYXNlIDE2KQkJQnJvYWRmcmFtZSBDb3Jwb3JhdGlvbgorCQkJCTU4MjggTW9vbnN0b25lIEF2ZS4KKwkJCQlTdWl0ZSAyMjAKKwkJCQlBbHRhIExvbWEgQ0EgOTE3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTk5ICAgKGhleCkJCUFwZXgsIEluYy4KKzAwMDI5OSAgICAgKGJhc2UgMTYpCQlBcGV4LCBJbmMuCisJCQkJOTkxMSBXaWxsb3dzIFJkLiBOLkUuCisJCQkJUmVkbW9uZCBXQSA5NTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOUEgICAoaGV4KQkJU3RvcmFnZSBBcHBzCiswMDAyOUEgICAgIChiYXNlIDE2KQkJU3RvcmFnZSBBcHBzCisJCQkJMyBQcmluY2VzcyBSb2FkCisJCQkJTGF3cmVuY2V2aWxsZSBOSiAwODY0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOUIgICAoaGV4KQkJS3JlYXRlbCBDb21tdW5pY2F0aW9ucyBBQgorMDAwMjlCICAgICAoYmFzZSAxNikJCUtyZWF0ZWwgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlUZWtuaWtyaW5nZW4gNEMKKwkJCQlTRS01ODMzMCBMaW5rb3BpbmcKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtMDItOUMgICAoaGV4KQkJM0NPTQorMDAwMjlDICAgICAoYmFzZSAxNikJCTNDT00KKwkJCQk0MDUgU1BSSU5HIEhJTEwgUk9BRAorCQkJCVNIQVJPTiBOSCAwMzQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOUQgICAoaGV4KQkJTWVyaXggQ29ycC4KKzAwMDI5RCAgICAgKGJhc2UgMTYpCQlNZXJpeCBDb3JwLgorCQkJCUppbi1TdSBCdWlsZGluZywgNDktMTYKKwkJCQlNYWNodW0tRG9uZywgU29uZy1QYS1rdQorCQkJCVNlb3VsIFNlb3VsIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTlFICAgKGhleCkJCUluZm9ybWF0aW9uIEVxdWlwbWVudCBDby4sIEx0ZC4KKzAwMDI5RSAgICAgKGJhc2UgMTYpCQlJbmZvcm1hdGlvbiBFcXVpcG1lbnQgQ28uLCBMdGQuCisJCQkJNzQwLTEgRWFobyBCbGRnLiwgWWVvayBTYW0tRG9uZworCQkJCUthbmduYW0ta3UKKwkJCQlTZW91bCBLb3JlYSAjMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi05RiAgIChoZXgpCQlMLTMgQ29tbXVuaWNhdGlvbiBBdmlhdGlvbiBSZWNvcmRlcnMKKzAwMDI5RiAgICAgKGJhc2UgMTYpCQlMLTMgQ29tbXVuaWNhdGlvbiBBdmlhdGlvbiBSZWNvcmRlcnMKKwkJCQlQLk8uIEJveCAzMDQxCisJCQkJU2FyYXNvdGEgRkwgMzQyMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUEwICAgKGhleCkJCUZsYXRzdGFjayBMdGQuCiswMDAyQTAgICAgIChiYXNlIDE2KQkJRmxhdHN0YWNrIEx0ZC4KKwkJCQkxMTEyIEJ1ZGFwZXN0CisJCQkJUGV0ZXJoZWd5aSBVVCA5OAorCQkJCUhVTkdBUlkKKwkJCQlIVU5HQVJZCisKKzAwLTAyLUExICAgKGhleCkJCVdvcmxkIFdpZGUgUGFja2V0cworMDAwMkExICAgICAoYmFzZSAxNikJCVdvcmxkIFdpZGUgUGFja2V0cworCQkJCVBPIEJveCAxNDY0NQorCQkJCVNwb2thbmUgV0EgOTkyMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUEyICAgKGhleCkJCUhpbHNjaGVyIEdtYkgKKzAwMDJBMiAgICAgKGJhc2UgMTYpCQlIaWxzY2hlciBHbWJICisJCQkJUmhlaW5zdHJh32UgMTUKKwkJCQk2NTc5NSBIYXR0ZXJzaGVpbQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAyLUEzICAgKGhleCkJCUFCQiBTd2l0emVybGFuZCBMdGQsIFBvd2VyIFN5c3RlbXMKKzAwMDJBMyAgICAgKGJhc2UgMTYpCQlBQkIgU3dpdHplcmxhbmQgTHRkLCBQb3dlciBTeXN0ZW1zCisJCQkJQnJ1Z2dlcnN0cmFzc2UgNzIKKwkJCQlDSC01NDAwCisJCQkJQmFkZW4gIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTAyLUE0ICAgKGhleCkJCUFkZFBhYyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwMkE0ICAgICAoYmFzZSAxNikJCUFkZFBhYyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTNGIEplb3VuZyBBbSBCbGRnLiwgNzY5LTEyCisJCQkJWWVva3NhbS1kb25nLCBLYW5nbmFtLWd1LAorCQkJCVNlb3VsIFNlb3VsIEtvcmVhCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLUE1ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAwMkE1ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJTVMwNDA4MDEKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1BNiAgIChoZXgpCQlFZmZpbmV0IFN5c3RlbXMgQ28uLCBMdGQuCiswMDAyQTYgICAgIChiYXNlIDE2KQkJRWZmaW5ldCBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCVl1Z29uZyBCbGRnLiA1MDIKKwkJCQkxMTQ0LTEsIFNhbmJvbi1Eb25nIEt1bnBvLXNoaSwgS3lvbmdnaS1ECisJCQkJS29yZWEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItQTcgICAoaGV4KQkJVml2YWNlIE5ldHdvcmtzCiswMDAyQTcgICAgIChiYXNlIDE2KQkJVml2YWNlIE5ldHdvcmtzCisJCQkJMjczMCBPcmNoYXJkIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItQTggICAoaGV4KQkJQWlyIExpbmsgVGVjaG5vbG9neQorMDAwMkE4ICAgICAoYmFzZSAxNikJCUFpciBMaW5rIFRlY2hub2xvZ3kKKwkJCQlCZXRoZWwgQmxkZy4gMzAzCisJCQkJMzI0LTEgWWFuZ2plZS1Eb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCBLT1JFQSAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLUE5ICAgKGhleCkJCVJBQ09NLCBzLnIuby4KKzAwMDJBOSAgICAgKGJhc2UgMTYpCQlSQUNPTSwgcy5yLm8uCisJCQkJTWlyb3ZhIDEyODMsIE5vdmUgTWVzdG8gbmEgTW9yYXZlCisJCQkJNTkyIDMxIEN6ZWNoIHJlcHVibGljCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMDItQUEgICAoaGV4KQkJUExjb20gQ28uLCBMdGQuCiswMDAyQUEgICAgIChiYXNlIDE2KQkJUExjb20gQ28uLCBMdGQuCisJCQkJSG9zdW5nIEIvRCwgIzEwODMtMSwgSG9neWUtRG9uZworCQkJCURvbmdhbi1LdSwgQW55YW5nLUNpdHkKKwkJCQlTb3V0aCBLb3JlYQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi1BQiAgIChoZXgpCQlDVEMgVW5pb24gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAwMkFCICAgICAoYmFzZSAxNikJCUNUQyBVbmlvbiBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJOEYgTm8uIDYwIFpob3V6aSBTdC4KKwkJCQlOZWlodSBUYWlwZWkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi1BQyAgIChoZXgpCQkzUEFSIGRhdGEKKzAwMDJBQyAgICAgKGJhc2UgMTYpCQkzUEFSIGRhdGEKKwkJCQk0MjA5IFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1BRCAgIChoZXgpCQlIT1lBIENvcnBvcmF0aW9uCiswMDAyQUQgICAgIChiYXNlIDE2KQkJSE9ZQSBDb3Jwb3JhdGlvbgorCQkJCTItNy01IE5ha2EtT2NoaWFpLCBTaGluanVrdS1rdSwKKwkJCQlUb2t5byAxNjEtODUyNQorCQkJCUpBUEFOCisKKzAwLTAyLUFFICAgKGhleCkJCVNjYW5uZXggRWxlY3Ryb25pY3MgTHRkLgorMDAwMkFFICAgICAoYmFzZSAxNikJCVNjYW5uZXggRWxlY3Ryb25pY3MgTHRkLgorCQkJCVVuaXQgOCBFbmdsaXNoIEJ1c2luZXNzIFBhcmsKKwkJCQlFbmdsaXNoIENsb3NlCisJCQkJSG92ZSAgQk4zIDdFVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLUFGICAgKGhleCkJCVRlbGVDcnV6IFRlY2hub2xvZ3ksIEluYy4KKzAwMDJBRiAgICAgKGJhc2UgMTYpCQlUZWxlQ3J1eiBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjM5MSBRdW1lIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1CMCAgIChoZXgpCQlIb2t1YnUgQ29tbXVuaWNhdGlvbiAmIEluZHVzdHJpYWwgQ28uLCBMdGQuCiswMDAyQjAgICAgIChiYXNlIDE2KQkJSG9rdWJ1IENvbW11bmljYXRpb24gJiBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCUZ1c2hpb2dhbWktYXphLW9raSAyNy0xCisJCQkJRnVrdXNoaW1hICA5NjAtODUxNAorCQkJCUpBUEFOCisKKzAwLTAyLUIxICAgKGhleCkJCUFucml0c3UsIEx0ZC4KKzAwMDJCMSAgICAgKGJhc2UgMTYpCQlBbnJpdHN1LCBMdGQuCisJCQkJUnV0aGVyZm9yZCBDbG9zZQorCQkJCVN0ZXZlbmFnZSwgSGVydHMgRW5nbGFuZCwgU0cxMkVGCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMi1CMiAgIChoZXgpCQlDYWJsZXZpc2lvbgorMDAwMkIyICAgICAoYmFzZSAxNikJCUNhYmxldmlzaW9uCisJCQkJNDIwIENyb3Nzd2F5cyBQYXJrIERyaXZlIFdlc3QKKwkJCQlXb29kYnVyeSBOWSAxMTc4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItQjMgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzAwMDJCMyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCU0vUzogIEpGMy00MjAKKwkJCQkyMTExIE4uRS4gMjV0aCBBdmUuCisJCQkJSGlsbHNib3JvIE9SIDk3MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1CNCAgIChoZXgpCQlEQVBITkUKKzAwMDJCNCAgICAgKGJhc2UgMTYpCQlEQVBITkUKKwkJCQkxMDEgQ2hhdXNzZWUgRGUgQmluY2hlCisJCQkJNzAwMCBIb25zCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtMDItQjUgICAoaGV4KQkJQXZuZXQsIEluYy4KKzAwMDJCNSAgICAgKGJhc2UgMTYpCQlBdm5ldCwgSW5jLgorCQkJCTIyMTEgUy4gNDd0aCBTdHJlZXQKKwkJCQlQaG9lbml4IEFaIDg1MDM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1CNiAgIChoZXgpCQlBY3Jvc3NlciBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwMkI2ICAgICAoYmFzZSAxNikJCUFjcm9zc2VyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uIDExNi0yIEd1YW5nLUZ1IFJkLgorCQkJCVNlYSAxLCBTYW4gQ2h1bmcsCisJCQkJVGFpcGVpIFRhaXBlaSBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLUI3ICAgKGhleCkJCVdhdGFuYWJlIEVsZWN0cmljIEluZHVzdHJ5IENvLiwgTHRkLgorMDAwMkI3ICAgICAoYmFzZSAxNikJCVdhdGFuYWJlIEVsZWN0cmljIEluZHVzdHJ5IENvLiwgTHRkLgorCQkJCTYtMTYtMTksIEppbmd1bWFlLCBTaGlidXlhLWt1CisJCQkJVG9reW8gMTUwLTAwMDEsCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMi1COCAgIChoZXgpCQlXSEkgS09OU1VMVCBBQgorMDAwMkI4ICAgICAoYmFzZSAxNikJCVdISSBLT05TVUxUIEFCCisJCQkJU2NoZWVsZWdhdGFuIDExCisJCQkJMTIwNDAgQXJzdGEKKwkJCQlTdG9ja2hvbG0gU0UtMTEyIDI4CisJCQkJU1dFREVOCisKKzAwLTAyLUI5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDJCOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1CQSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAyQkEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItQkIgICAoaGV4KQkJQ29udGludW91cyBDb21wdXRpbmcgQ29ycAorMDAwMkJCICAgICAoYmFzZSAxNikJCUNvbnRpbnVvdXMgQ29tcHV0aW5nIENvcnAKKwkJCQk5MzgwIENhcnJvbGwgUGFyayBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItQkMgICAoaGV4KQkJTFZMIDcgU3lzdGVtcywgSW5jLgorMDAwMkJDICAgICAoYmFzZSAxNikJCUxWTCA3IFN5c3RlbXMsIEluYy4KKwkJCQkxMzAwMCBXZXN0b24gUGt3eQorCQkJCVN1aXRlIDEwNQorCQkJCUNhcnkgTkMgMjc1MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUJEICAgKGhleCkJCUJpb25ldCBDby4sIEx0ZC4KKzAwMDJCRCAgICAgKGJhc2UgMTYpCQlCaW9uZXQgQ28uLCBMdGQuCisJCQkJM0YsIE1lZGlzb24gVmVudHVyZSBUb3dlciwKKwkJCQk5OTctNCwgRGFlY2hpLWRvbmcsIEthbmduYW0tZ3UsIFNlb3VsLAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLUJFICAgKGhleCkJCVRvdHN1IEVuZ2luZWVyaW5nLCBJbmMuCiswMDAyQkUgICAgIChiYXNlIDE2KQkJVG90c3UgRW5naW5lZXJpbmcsIEluYy4KKwkJCQkgNS0xNi0yMCBSb3Bwb25naSBNaW5hdG8ta3UKKwkJCQlaaXA6ICAxMDYtMDAzMgorCQkJCVRva3lvICAxMDYtODU1MQorCQkJCUpBUEFOCisKKzAwLTAyLUJGICAgKGhleCkJCWRvdFJvY2tldCwgSW5jLgorMDAwMkJGICAgICAoYmFzZSAxNikJCWRvdFJvY2tldCwgSW5jLgorCQkJCTE5MDEgUy4gQmFzY29tLCBTdWl0ZSAzMDAKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItQzAgICAoaGV4KQkJQmVuY2VudCBUemVuZyBJbmR1c3RyeSBDby4sIEx0ZC4KKzAwMDJDMCAgICAgKGJhc2UgMTYpCQlCZW5jZW50IFR6ZW5nIEluZHVzdHJ5IENvLiwgTHRkLgorCQkJCTNyZCBmbC4sIE5vLiAzIFJ1ZXkgS3VhbmcgUmQuLAorCQkJCU5laSBIdSBEaXN0LiwgVGFpcGVpIDExNAorCQkJCVRhaXdhbiBUYWl3YW4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi1DMSAgIChoZXgpCQlJbm5vdmF0aXZlIEVsZWN0cm9uaWMgRGVzaWducywgSW5jLgorMDAwMkMxICAgICAoYmFzZSAxNikJCUlubm92YXRpdmUgRWxlY3Ryb25pYyBEZXNpZ25zLCBJbmMuCisJCQkJOTcwMSBUYXlsb3JzdmlsbGUgUmQuCisJCQkJTG91aXN2aWxsZSBLWSA0MDI5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItQzIgICAoaGV4KQkJTmV0IFZpc2lvbiBUZWxlY29tCiswMDAyQzIgICAgIChiYXNlIDE2KQkJTmV0IFZpc2lvbiBUZWxlY29tCisJCQkJIzIwNiBTb2Z0d2FyZSBTdXBwb3J0IENlbnRlcgorCQkJCTQ4IEphbmctRG9uZyBZdXNvbmctR3UsIFRhZWpvbgorCQkJCTMwNS0zNDMgUmVwLiBvZiBLb3JlYQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi1DMyAgIChoZXgpCQlBcmVsbmV0IEx0ZC4KKzAwMDJDMyAgICAgKGJhc2UgMTYpCQlBcmVsbmV0IEx0ZC4KKwkJCQkzIEhheWFyZGVuIFN0LgorCQkJCVlhdm5lIDcwNjAwCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTAyLUM0ICAgKGhleCkJCVZlY3RvciBJbnRlcm5hdGlvbmFsIEJWQkEKKzAwMDJDNCAgICAgKGJhc2UgMTYpCQlWZWN0b3IgSW50ZXJuYXRpb25hbCBCVkJBCisJCQkJVGVjaG5vbG9naWVsYWFuIDQKKwkJCQkzMDAxIExldXZlbiAKKwkJCQlCRUxHSVVNCisKKzAwLTAyLUM1ICAgKGhleCkJCUV2ZXJ0eiBNaWNyb3N5c3RlbXMgTHRkLgorMDAwMkM1ICAgICAoYmFzZSAxNikJCUV2ZXJ0eiBNaWNyb3N5c3RlbXMgTHRkLgorCQkJCTUyODggSm9obiBMdWNhcyBEcml2ZQorCQkJCUJ1cmxpbmd0b24KKwkJCQlPbnRhcmlvIEw3TCA1WjkKKwkJCQlDQU5BREEKKworMDAtMDItQzYgICAoaGV4KQkJRGF0YSBUcmFjayBUZWNobm9sb2d5IFBMQworMDAwMkM2ICAgICAoYmFzZSAxNikJCURhdGEgVHJhY2sgVGVjaG5vbG9neSBQTEMKKwkJCQkxNTMgU29tZXJmb3JkIFJvYWQKKwkJCQlDaHJpc3RjaHVyY2gsIERvcnNldCBCSDIzIDNUWSwKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLUM3ICAgKGhleCkJCUFMUFMgRUxFQ1RSSUMgQ28uLCBMdGQuCiswMDAyQzcgICAgIChiYXNlIDE2KQkJQUxQUyBFTEVDVFJJQyBDby4sIEx0ZC4KKwkJCQkxLTItMSwgT2tpbm91Y2hpLCBTYW1hLUNpdHksCisJCQkJRnVrdXNoaW1hLXByZWYsIDk3Ni04NTAxLAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDItQzggICAoaGV4KQkJVGVjaG5vY29tIENvbW11bmljYXRpb25zIFRlY2hub2xvZ3kgKHB0ZSkgTHRkCiswMDAyQzggICAgIChiYXNlIDE2KQkJVGVjaG5vY29tIENvbW11bmljYXRpb25zIFRlY2hub2xvZ3kgKHB0ZSkgTHRkCisJCQkJMTg5IEtha2kgQnVja2l0IEF2ZW51ZSAxCisJCQkJIzAzLTAzIFNodW4gTGkgSW5kdXN0cmlhbCBQYXJrCisJCQkJU2luZ2Fwb3JlIDQxNjAyOQorCQkJCVNJTkdBUE9SRQorCiswMC0wMi1DOSAgIChoZXgpCQlNZWxsYW5veCBUZWNobm9sb2dpZXMKKzAwMDJDOSAgICAgKGJhc2UgMTYpCQlNZWxsYW5veCBUZWNobm9sb2dpZXMKKwkJCQkzNTAgT2FrbWVhZCBQYXJrd2F5CisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1DQSAgIChoZXgpCQlFbmRQb2ludHMsIEluYy4KKzAwMDJDQSAgICAgKGJhc2UgMTYpCQlFbmRQb2ludHMsIEluYy4KKwkJCQk0IFByZXN0b24gQ291cnQKKwkJCQlCZWRmb3JkIE1BIDAxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1DQiAgIChoZXgpCQlUcmlTdGF0ZSBMdGQuCiswMDAyQ0IgICAgIChiYXNlIDE2KQkJVHJpU3RhdGUgTHRkLgorCQkJCVNoaW5vbmFnYSBCbGcuIDQtMTEtMTkgSG9ra28tY2hvCisJCQkJVG9tYWtvbWFpLXNoaSwgSG9ra2FpZG8KKwkJCQkwNTMtMDg1MiAwNTMtMDg1MiBKYXBhbgorCQkJCUpBUEFOCisKKzAwLTAyLUNDICAgKGhleCkJCU0uQy5DLkkKKzAwMDJDQyAgICAgKGJhc2UgMTYpCQlNLkMuQy5JCisJCQkJMzUyMCBLcnVtcyBDb3JuZXJzIFJkLgorCQkJCUl0aGFjYSBOWSAxNDg1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItQ0QgICAoaGV4KQkJVGVsZURyZWFtLCBJbmMuCiswMDAyQ0QgICAgIChiYXNlIDE2KQkJVGVsZURyZWFtLCBJbmMuCisJCQkJU2hpbmh3YSBCbGRnLiwgOTQwLTEwIERhZWNoaS1Eb25nCisJCQkJS2FuZ25hbS1rdSwgU2VvdWwgMTM1LTI4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi1DRSAgIChoZXgpCQlGb3hKZXQsIEluYy4KKzAwMDJDRSAgICAgKGJhc2UgMTYpCQlGb3hKZXQsIEluYy4KKwkJCQkyMDE2IEUuIFJhbmRhbCBNaWxsIFJkLiAjNDA5CisJCQkJQXJsaW5ndG9uIFRYIDc2MDExLTgyMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUNGICAgKGhleCkJCVp5R2F0ZSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMkNGICAgICAoYmFzZSAxNikJCVp5R2F0ZSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTJGLCBOby40OCwgTHVuZy1DaGluIFJvYWQKKwkJCQlMdW5nLVRhbiwgVGFueXVhbiwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLUQwICAgKGhleCkJCUNvbWRpYWwgQ29ycG9yYXRpb24KKzAwMDJEMCAgICAgKGJhc2UgMTYpCQlDb21kaWFsIENvcnBvcmF0aW9uCisJCQkJMTE4MCBTZW1pbm9sZSBUcmFpbAorCQkJCUNoYXJsb3R0ZXN2aWxsZSBWQSAyMjkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItRDEgICAoaGV4KQkJVml2b3RlaywgSW5jLgorMDAwMkQxICAgICAoYmFzZSAxNikJCVZpdm90ZWssIEluYy4KKwkJCQk1Ri0xLCAxNjgtMSwgTGllbi1DaGVuIFJkLAorCQkJCUNodW5nLUhvLCBUYWlwZWkgQ291bnR5LAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItRDIgICAoaGV4KQkJV29ya3N0YXRpb24gQUcKKzAwMDJEMiAgICAgKGJhc2UgMTYpCQlXb3Jrc3RhdGlvbiBBRworCQkJCVNjaGFmZmhhdXNlcnN0ci4gNTUKKwkJCQlDSC04MTUyIEdsYXR0YnJ1Z2cKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wMi1EMyAgIChoZXgpCQlOZXRCb3R6LCBJbmMuCiswMDAyRDMgICAgIChiYXNlIDE2KQkJTmV0Qm90eiwgSW5jLgorCQkJCTExMDA0NCBSZXNlYXJjaCBCbHZkLgorCQkJCVN1aXRlIEMtMTAwCisJCQkJQXVzdGluIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1ENCAgIChoZXgpCQlQREEgUGVyaXBoZXJhbHMsIEluYy4KKzAwMDJENCAgICAgKGJhc2UgMTYpCQlQREEgUGVyaXBoZXJhbHMsIEluYy4KKwkJCQkyMDUgT3JhbmdlIFN0LgorCQkJCVRoaXJkIEZsb29yCisJCQkJTmV3IEhhdmVuIENUIDA2NTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1ENSAgIChoZXgpCQlBQ1IKKzAwMDJENSAgICAgKGJhc2UgMTYpCQlBQ1IKKwkJCQlDYXJkb3VsaW5lcyBCMgorCQkJCTEzNjAgcnRlIERvbGluaXMgMDY1NjAgVmFsYm9ubmUKKwkJCQlGUkFOQ0UKKworMDAtMDItRDYgICAoaGV4KQkJTklDRSBTeXN0ZW1zCiswMDAyRDYgICAgIChiYXNlIDE2KQkJTklDRSBTeXN0ZW1zCisJCQkJOCBIYXBuaW5hIFN0LiwgUE9CIDY5MAorCQkJCVJhJ0FuYW5hIDQzMTA3CisJCQkJSVNSQUVMCisKKzAwLTAyLUQ3ICAgKGhleCkJCUVNUEVHIEx0ZAorMDAwMkQ3ICAgICAoYmFzZSAxNikJCUVNUEVHIEx0ZAorCQkJCTEgU2lnbmV0IENvdXJ0CisJCQkJU3dhbm4ncyBSb2FkIENhbWJyaWRnZSwgVUsKKwkJCQlDQjUgOExBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDItRDggICAoaGV4KQkJQlJFQ0lTIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCiswMDAyRDggICAgIChiYXNlIDE2KQkJQlJFQ0lTIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCisJCQkJMjAyNSBHYXRld2F5IFBsYWNlLCBTdWl0ZSAxMzIKKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItRDkgICAoaGV4KQkJUmVsaWFibGUgQ29udHJvbHMKKzAwMDJEOSAgICAgKGJhc2UgMTYpCQlSZWxpYWJsZSBDb250cm9scworCQkJCTEyMCBIYWxsb3dlbGwgUm9hZAorCQkJCVZpY3RvcmlhLCAgQi5DLiBWOUEgN0syCisJCQkJQ0FOQURBCisKKzAwLTAyLURBICAgKGhleCkJCUV4aU8gQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDJEQSAgICAgKGJhc2UgMTYpCQlFeGlPIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMjM2MiBRdW1lIERyaXZlCisJCQkJU3VpdGUgQworCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1EQiAgIChoZXgpCQlORVRTRUMKKzAwMDJEQiAgICAgKGJhc2UgMTYpCQlORVRTRUMKKwkJCQkxMzUwNSBEdWxsZXMgVGVjaG5vbG9neSBEcml2ZQorCQkJCVN1aXRlIDEKKwkJCQlIZXJuYW5kb24gVkEgMjAxNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLURDICAgKGhleCkJCUZ1aml0c3UgR2VuZXJhbCBMaW1pdGVkCiswMDAyREMgICAgIChiYXNlIDE2KQkJRnVqaXRzdSBHZW5lcmFsIExpbWl0ZWQKKwkJCQkxMTE2LCBTdWVuYWdhLCBUYWthdHN1LUt1LAorCQkJCUthd2FzYWtpLUNpdHksIEthbmFnYXdhLVByZWYuLAorCQkJCTIxMy04NTAyIAorCQkJCUpBUEFOCisKKzAwLTAyLUREICAgKGhleCkJCUJyb21heCBDb21tdW5pY2F0aW9ucywgTHRkLgorMDAwMkREICAgICAoYmFzZSAxNikJCUJyb21heCBDb21tdW5pY2F0aW9ucywgTHRkLgorCQkJCU5vLiAyMCBLdWFuZyBGdSBSb2FkLAorCQkJCUhzaW4gQ2h1IEluZHVzdHJpYWwgUGFyaywgSHUgS291LAorCQkJCUhzaW4gQ2h1IDMwMyAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi1ERSAgIChoZXgpCQlBc3Ryb2Rlc2lnbiwgSW5jLgorMDAwMkRFICAgICAoYmFzZSAxNikJCUFzdHJvZGVzaWduLCBJbmMuCisJCQkJMi0yMi0xMiBLYW1pa29kYW5hIEthCisJCQkJTmFrYWhhcmFrdSwgS2F3YXNhaS1DaXR5CisJCQkJS2FuYWdhd2EgIAorCQkJCUpBUEFOCisKKzAwLTAyLURGICAgKGhleCkJCU5ldCBDb20gU3lzdGVtcywgSW5jLgorMDAwMkRGICAgICAoYmFzZSAxNikJCU5ldCBDb20gU3lzdGVtcywgSW5jLgorCQkJCTE1LTMsIFlvaWRvLURvbmcsCisJCQkJWWVvdW5nZG9uZ3BvLWt1LAorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItRTAgICAoaGV4KQkJRVRBUyBHbWJICiswMDAyRTAgICAgIChiYXNlIDE2KQkJRVRBUyBHbWJICisJCQkJQm9yc2lnc3RyYXNzZSAxMAorCQkJCUQ3MDQ2OSBTdHV0dGdhcnQKKwkJCQlHRVJNQU5ZCisKKzAwLTAyLUUxICAgKGhleCkJCUludGVncmF0ZWQgTmV0d29yayBDb3Jwb3JhdGlvbgorMDAwMkUxICAgICAoYmFzZSAxNikJCUludGVncmF0ZWQgTmV0d29yayBDb3Jwb3JhdGlvbgorCQkJCTc1NyBSb3V0ZSAyMDIvMjA2CisJCQkJQnJpZGdld2F0ZXIgTkogMDg4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUUyICAgKGhleCkJCU5EQyBJbmZhcmVkIEVuZ2luZWVyaW5nCiswMDAyRTIgICAgIChiYXNlIDE2KQkJTkRDIEluZmFyZWQgRW5naW5lZXJpbmcKKwkJCQk1MzE0IE4uIElyd2luZGFsZSBBdmUuCisJCQkJSXJ3aW5kYWxlIENBIDkxNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1FMyAgIChoZXgpCQlMSVRFLU9OIENvbW11bmljYXRpb25zLCBJbmMuCiswMDAyRTMgICAgIChiYXNlIDE2KQkJTElURS1PTiBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTczNiBTLiBIaWxsdmlldyBEcml2ZQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1FNCAgIChoZXgpCQlKQyBIWVVOIFN5c3RlbXMsIEluYy4KKzAwMDJFNCAgICAgKGJhc2UgMTYpCQlKQyBIWVVOIFN5c3RlbXMsIEluYy4KKwkJCQlTaGluYm9uZyBCbGRnLCA3MzYtNiwKKwkJCQlZb2tzYW0tRG9uZywgS2FuZ25hbS1LdSwKKwkJCQlTZW91bCAgKDEzNS0wODApCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLUU1ICAgKGhleCkJCVRpbWV3YXJlIEx0ZC4KKzAwMDJFNSAgICAgKGJhc2UgMTYpCQlUaW1ld2FyZSBMdGQuCisJCQkJQnJvb2tmaWVsZCBHcmFuZ2UKKwkJCQk3OSBGYWxpbmdlIFJkLCBSb2NrZGFsZQorCQkJCUxhbmNzICAwNDIgR0xCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDItRTYgICAoaGV4KQkJR291bGQgSW5zdHJ1bWVudCBTeXN0ZW1zLCBJbmMuCiswMDAyRTYgICAgIChiYXNlIDE2KQkJR291bGQgSW5zdHJ1bWVudCBTeXN0ZW1zLCBJbmMuCisJCQkJODMzMyBSb2Nrc2lkZSBSb2FkCisJCQkJVmFsbGV5IFZpZXcgT0ggNDQxMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUU3ICAgKGhleCkJCUNBQiBHbWJIICYgQ28gS0cKKzAwMDJFNyAgICAgKGJhc2UgMTYpCQlDQUIgR21iSCAmIENvIEtHCisJCQkJV2lsaGVsbS1TY2hpY2thcmQtU3RyIDE0CisJCQkJNzYxMzEgS2FybHNydWhlCisJCQkJR0VSTUFOWQorCiswMC0wMi1FOCAgIChoZXgpCQlFLkQuJkEuCiswMDAyRTggICAgIChiYXNlIDE2KQkJRS5ELiZBLgorCQkJCUVuZXJnaWVsYWFuIDE2CisJCQkJSVogQm9zZHVpbiAyOTUwIEthcGVsbGVuCisJCQkJQkVMR0lVTQorCiswMC0wMi1FOSAgIChoZXgpCQlDUyBTeXN0ZW1lcyBEZSBTZWN1cml0ZSAtIEMzUworMDAwMkU5ICAgICAoYmFzZSAxNikJCUNTIFN5c3RlbWVzIERlIFNlY3VyaXRlIC0gQzNTCisJCQkJMjMsIHJ1ZSBkZSBTY2h3b2JzaGVpbQorCQkJCTY3NjAwIEJhbGRlbmhlaW0KKwkJCQlGUkFOQ0UKKworMDAtMDItRUEgICAoaGV4KQkJRm9jdXMgRW5oYW5jZW1lbnRzCiswMDAyRUEgICAgIChiYXNlIDE2KQkJRm9jdXMgRW5oYW5jZW1lbnRzCisJCQkJMTM3MCBEZWxsIEF2ZS4KKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItRUIgICAoaGV4KQkJUGljbyBDb21tdW5pY2F0aW9ucworMDAwMkVCICAgICAoYmFzZSAxNikJCVBpY28gQ29tbXVuaWNhdGlvbnMKKwkJCQkyMDA4NSBTdGV2ZW5zIENyZWVrIEJsdmQuCisJCQkJU3VpdGUgIzEwMAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItRUMgICAoaGV4KQkJTWFzY2hvZmYgRGVzaWduIEVuZ2luZWVyaW5nCiswMDAyRUMgICAgIChiYXNlIDE2KQkJTWFzY2hvZmYgRGVzaWduIEVuZ2luZWVyaW5nCisJCQkJNDQ1NCBDZWRhciBMYWtlIFJkLiAjOAorCQkJCVN0LiBMb3VpcyBQYXJrIE1OIDU1NDE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1FRCAgIChoZXgpCQlEWE8gVGVsZWNvbSBDby4sIEx0ZC4KKzAwMDJFRCAgICAgKGJhc2UgMTYpCQlEWE8gVGVsZWNvbSBDby4sIEx0ZC4KKwkJCQk4RiwgMzAwLTExLCBZdW1nb2stRG9uZywKKwkJCQlTZW9jaG8tS3UsIFNlb3VsIDEzNy03ODkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItRUUgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMDJFRSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thaiwgQ29wZW5oYWdlbiBWCisJCQkJREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMDItRUYgICAoaGV4KQkJQ0NDIE5ldHdvcmsgU3lzdGVtcyBHcm91cCBMdGQuCiswMDAyRUYgICAgIChiYXNlIDE2KQkJQ0NDIE5ldHdvcmsgU3lzdGVtcyBHcm91cCBMdGQuCisJCQkJMTMgRmFybmJvcm91Z2ggQnVzaW5lc3MgQ2VudHJlCisJCQkJRWVsbW9vciBSb2FkLCBGYXJuYm9yb3VnaCwgSGFudHMsIEdVMTQgNworCQkJCUVOR0xBTkQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDItRjAgICAoaGV4KQkJQU1FIE9wdGltZWRpYSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwMkYwICAgICAoYmFzZSAxNikJCUFNRSBPcHRpbWVkaWEgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxN0YtMiwgNzkgSHNpbiBUYWkgV3UgUm9hZCwgU2VjLiAxLAorCQkJCUhzaS1DaGloLCBUYWlwZWkgSHNpZW4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLUYxICAgKGhleCkJCVBpbmV0cm9uIENvLiwgTHRkLgorMDAwMkYxICAgICAoYmFzZSAxNikJCVBpbmV0cm9uIENvLiwgTHRkLgorCQkJCUJsZGcuICMxNTk5LTExLAorCQkJCVNlb2Noby1Eb25nLCBTZW9jaG8tS3UsCisJCQkJU2VvdWwgIDEzNy0wNzMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItRjIgICAoaGV4KQkJZURldmljZSwgSW5jLgorMDAwMkYyICAgICAoYmFzZSAxNikJCWVEZXZpY2UsIEluYy4KKwkJCQk0MjAgTGV4aW5ndG9uIEF2ZW51ZQorCQkJCVN1aXRlIDIzMDAKKwkJCQlOZXcgWW9yayBOWSAxMDE3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItRjMgICAoaGV4KQkJTWVkaWEgU2VydmUgQ28uLCBMdGQuCiswMDAyRjMgICAgIChiYXNlIDE2KQkJTWVkaWEgU2VydmUgQ28uLCBMdGQuCisJCQkJRG9uZ3N1bmcgQmxkZy4gIzE3LTgsIFlvdWlkby1kb25nLAorCQkJCVlvdW5nZGVvdW5ncG8ta3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi1GNCAgIChoZXgpCQlQQ1RFTCwgSW5jLgorMDAwMkY0ICAgICAoYmFzZSAxNikJCVBDVEVMLCBJbmMuCisJCQkJMTMzMSBDYWxpZm9ybmlhIENpcmNsZQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1GNSAgIChoZXgpCQlWSVZFIFN5bmVyZ2llcywgSW5jLgorMDAwMkY1ICAgICAoYmFzZSAxNikJCVZJVkUgU3luZXJnaWVzLCBJbmMuCisJCQkJMzAgV2VzdCBCZWF2ZXIgQ3JlZWsgUm9hZCwgVW5pdCAxMDEKKwkJCQlSaWNobW9uZCBIaWxsLCBPbnRhcmlvCisJCQkJTDRCIDNLMQorCQkJCUNBTkFEQQorCiswMC0wMi1GNiAgIChoZXgpCQlFcXVpcGUgQ29tbXVuaWNhdGlvbnMKKzAwMDJGNiAgICAgKGJhc2UgMTYpCQlFcXVpcGUgQ29tbXVuaWNhdGlvbnMKKwkJCQkxMDAgTmFnb2cgUGFyaworCQkJCUFjdG9uIE1BIDAxNzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1GNyAgIChoZXgpCQlBUk0KKzAwMDJGNyAgICAgKGJhc2UgMTYpCQlBUk0KKwkJCQkxMTAsIEZ1bGJvdXJuIFJvYWQKKwkJCQlDaGVycnkgSGludG9uIENhbWJyaWRnZQorCQkJCUNCMSA5TkoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMi1GOCAgIChoZXgpCQlTRUFLUiBFbmdpbmVlcmluZywgSW5jLgorMDAwMkY4ICAgICAoYmFzZSAxNikJCVNFQUtSIEVuZ2luZWVyaW5nLCBJbmMuCisJCQkJMTI4NDcgRS4gUGVha3ZpZXcgQXZlLgorCQkJCUVuZ2xld29vZCBDTyA4MDExMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItRjkgICAoaGV4KQkJTWltb3MgU2VtaWNvbmR1Y3RvciBTRE4gQkhECiswMDAyRjkgICAgIChiYXNlIDE2KQkJTWltb3MgU2VtaWNvbmR1Y3RvciBTRE4gQkhECisJCQkJVGFtYW4gVGVrbm9sb2dpIE1hbGF5c2lhCisJCQkJQnVraXQgSmFsaWwgNTcwMDAgS3VhbGEgTHVtcHVyLAorCQkJCU1BTEFZU0lBCisKKzAwLTAyLUZBICAgKGhleCkJCURYIEFudGVubmEgQ28uLCBMdGQuCiswMDAyRkEgICAgIChiYXNlIDE2KQkJRFggQW50ZW5uYSBDby4sIEx0ZC4KKwkJCQkyLTE1IEhhbWF6YWtpLURvcmksCisJCQkJSHlvZ28ta3UsIEtvYmUKKwkJCQlKQVBBTgorCiswMC0wMi1GQiAgIChoZXgpCQlCYXVtdWxsZXIgQXVsdWdlbi1TeXN0ZW10ZWNobmlrIEdtYkgKKzAwMDJGQiAgICAgKGJhc2UgMTYpCQlCYXVtdWxsZXIgQXVsdWdlbi1TeXN0ZW10ZWNobmlrIEdtYkgKKwkJCQlPc3RlbmRzdHMuIDg0CisJCQkJRC05MDQ4MiBOdXJ1YmVyZworCQkJCUdFUk1BTlkKKworMDAtMDItRkMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMkZDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUZEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDJGRCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1GRSAgIChoZXgpCQlWaWRpdGVjLCBJbmMuCiswMDAyRkUgICAgIChiYXNlIDE2KQkJVmlkaXRlYywgSW5jLgorCQkJCTUyMCBDZW50cmFsIFBhcmt3YXkgRS4KKwkJCQlTdWl0ZSAxMTUKKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItRkYgICAoaGV4KQkJSGFuZGFuIEJyb2FkSW5mb0NvbQorMDAwMkZGICAgICAoYmFzZSAxNikJCUhhbmRhbiBCcm9hZEluZm9Db20KKwkJCQk1dGggRmwuIFNoaW5zdW5nIFBsYXphICM2OTctMTEKKwkJCQlZZW9nc2FtLWRvbmcsIEthbmduYW0tZ3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTAwICAgKGhleCkJCUJhcnJhY3VkYSBOZXR3b3JrcywgSW5jLgorMDAwMzAwICAgICAoYmFzZSAxNikJCUJhcnJhY3VkYSBOZXR3b3JrcywgSW5jLgorCQkJCTMxNzUgUy4gV2luY2hlc3RlciBCbHZkCisJCQkJQ2FtcGJlbGwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTAxICAgKGhleCkJCUF2YW50YXMgTmV0d29ya3MgQ29ycG9yYXRpb24KKzAwMDMwMSAgICAgKGJhc2UgMTYpCQlBdmFudGFzIE5ldHdvcmtzIENvcnBvcmF0aW9uCisJCQkJOTkwMCBDYXZlbmRpc2ggQmx2ZC4sIFN1aXRlICMzMTAKKwkJCQlTdC1MYXVyZW50LCBRdWViZWMKKwkJCQlINE0gMlYyCisJCQkJQ0FOQURBCisKKzAwLTAzLTAyICAgKGhleCkJCUNoYXJsZXMgSW5kdXN0cmllcywgTHRkLgorMDAwMzAyICAgICAoYmFzZSAxNikJCUNoYXJsZXMgSW5kdXN0cmllcywgTHRkLgorCQkJCTU2MDAgQXBvbGxvIERyaXZlCisJCQkJUm9sbGluZyBNZWFkb3dzIElMIDYwMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0wMyAgIChoZXgpCQlKQU1BIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwMzAzICAgICAoYmFzZSAxNikJCUpBTUEgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJMTBGLCBOby4gMjIyLTEsIFNlYy4gMworCQkJCVRhLVR1bmcgUmQuLCBIc2ktQ2hpaAorCQkJCVRhaXBlaSBIc2llbiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy0wNCAgIChoZXgpCQlQYWNpZmljIEJyb2FkYmFuZCBDb21tdW5pY2F0aW9ucworMDAwMzA0ICAgICAoYmFzZSAxNikJCVBhY2lmaWMgQnJvYWRiYW5kIENvbW11bmljYXRpb25zCisJCQkJMzEwMyBOb3J0aCBGaXJzdCBTdC4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMDUgICAoaGV4KQkJTVNDIFZlcnRyaWVicyBHbWJICiswMDAzMDUgICAgIChiYXNlIDE2KQkJTVNDIFZlcnRyaWVicyBHbWJICisJCQkJRGVzaWduIENlbnRlciBBYWNoZW4KKwkJCQlQYXNjYWxzdHJhc3NlIDIxCisJCQkJQUFDSEVOICAgIEQtNTIwNzYKKwkJCQlHRVJNQU5ZCisKKzAwLTAzLTA2ICAgKGhleCkJCUZ1c2lvbiBJbiBUZWNoIENvLiwgTHRkLgorMDAwMzA2ICAgICAoYmFzZSAxNikJCUZ1c2lvbiBJbiBUZWNoIENvLiwgTHRkLgorCQkJCTZGbCwgRGFleW9vbiBCbGRnLiAxNjg4LTUsIFNlb2Noby1kb25nCisJCQkJU2VvY2hvLWt1LAorCQkJCVNlb3VsLCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTA3ICAgKGhleCkJCVNlY3VyZSBXb3JrcywgSW5jLgorMDAwMzA3ICAgICAoYmFzZSAxNikJCVNlY3VyZSBXb3JrcywgSW5jLgorCQkJCTExIEV4ZWN1dGl2ZSBEcml2ZQorCQkJCVN1aXRlIDIwMAorCQkJCUF0bGFudGEgR0EgMzAzMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTA4ICAgKGhleCkJCUFNIENvbW11bmljYXRpb25zLCBJbmMuCiswMDAzMDggICAgIChiYXNlIDE2KQkJQU0gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkxMDAgQ29tbWVyY2UgQmx2ZC4KKwkJCQlRdWFrZXJ0b3duIFBBIDE4OTUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0wOSAgIChoZXgpCQlUZXhjZWwgVGVjaG5vbG9neSBQTEMKKzAwMDMwOSAgICAgKGJhc2UgMTYpCQlUZXhjZWwgVGVjaG5vbG9neSBQTEMKKwkJCQlUaGFtZXMgUm9hZAorCQkJCUNyYXlmb3JkIEtlbnQgREExIDRTQgorCQkJCUVOR0xBTkQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDMtMEEgICAoaGV4KQkJQXJndXMgVGVjaG5vbG9naWVzCiswMDAzMEEgICAgIChiYXNlIDE2KQkJQXJndXMgVGVjaG5vbG9naWVzCisJCQkJOEYsIE5vLiAxODMsIEthbmcgQ2hpZW4gUmQuCisJCQkJMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy0wQiAgIChoZXgpCQlIdW50ZXIgVGVjaG5vbG9neSwgSW5jLgorMDAwMzBCICAgICAoYmFzZSAxNikJCUh1bnRlciBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTQwOCwgV29vbGltIGUtYml6IENlbnRlciwKKwkJCQkxNzAtNSwgR3Vyby0zZG9uZywgR3Vyby1ndSwKKwkJCQlTZW91bCAgMTM1LTI3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy0wQyAgIChoZXgpCQlUZWxlc29mdCBUZWNobm9sb2dpZXMgTHRkLgorMDAwMzBDICAgICAoYmFzZSAxNikJCVRlbGVzb2Z0IFRlY2hub2xvZ2llcyBMdGQuCisJCQkJT2JzZXJ2YXRvcnkgSG91c2UsIFN0b3VyIFBhcmssCisJCQkJQmxhbmRmb3J1bSwgRG9yc2V0LCBEVDExIDlMUSwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMy0wRCAgIChoZXgpCQlVbml3aWxsIENvbXB1dGVyIENvcnAuCiswMDAzMEQgICAgIChiYXNlIDE2KQkJVW5pd2lsbCBDb21wdXRlciBDb3JwLgorCQkJCU5vLiAyNCwgUGVpIFl1YW4gUmQuLCBDaHVuZworCQkJCUxpIEluZHVzdHJpYWwgUGFyaywgQ2h1bmcKKwkJCQlMaSBDaXR5ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTBFICAgKGhleCkJCUNvcmUgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDAzMEUgICAgIChiYXNlIDE2KQkJQ29yZSBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQkzRiBTaG9wcGluZyBDZW50ZXIgQmQuIG9mCisJCQkJU1NhbmcgWW91bmcgSHdhbmctZ2V1bSBBUFQsICMyNTMgTWFwby1EbworCQkJCVNlb3VsICgxMjEtMDUwKSAgKDEyMS0wNTApCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTBGICAgKGhleCkJCURpZ2l0YWwgQ2hpbmEgKFNoYW5naGFpKSBOZXR3b3JrcyBMdGQuCiswMDAzMEYgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBDaGluYSAoU2hhbmdoYWkpIE5ldHdvcmtzIEx0ZC4KKwkJCQk2MDItMjMsIEhhaXRhaSBCdWlsZGluZywgMzUxIEd1byBTaG91amluCisJCQkJUHVkb25nIE5ldyBEaXN0cmljdCwKKwkJCQlTaGFuZ2hhaSAgCisJCQkJQ0hJTkEKKworMDAtMDMtMTAgICAoaGV4KQkJSVRYIEUtR2xvYmFsZWRnZSBDb3Jwb3JhdGlvbgorMDAwMzEwICAgICAoYmFzZSAxNikJCUlUWCBFLUdsb2JhbGVkZ2UgQ29ycG9yYXRpb24KKwkJCQlOYWthbWVndXJvIEdUIHRvd2VyIDdGIDItMS0xIGthbWltZWd1cm8KKwkJCQlNZWd1cm8ta3UKKwkJCQlUb2t5byAgMTUzLTAwNTEKKwkJCQlKQVBBTgorCiswMC0wMy0xMSAgIChoZXgpCQlNaWNybyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwMzExICAgICAoYmFzZSAxNikJCU1pY3JvIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJU3VlaGlybyBCbGRnLgorCQkJCTEtMiwgU290byBLYW5kYSA1IENob21lIENoaXlvZGEta3UsIFRva3kKKwkJCQkxMDEtMDAyMSAKKwkJCQlKQVBBTgorCiswMC0wMy0xMiAgIChoZXgpCQlUUi1TeXN0ZW10ZWNobmlrIEdtYkgKKzAwMDMxMiAgICAgKGJhc2UgMTYpCQlUUi1TeXN0ZW10ZWNobmlrIEdtYkgKKwkJCQlFZ2xpc2hhbGRlIDYKKwkJCQlELTc4NjQ3IFRyb3NzaW5nZW4KKwkJCQlHRVJNQU5ZCisKKzAwLTAzLTEzICAgKGhleCkJCUFjY2VzcyBNZWRpYSBTUEEKKzAwMDMxMyAgICAgKGJhc2UgMTYpCQlBY2Nlc3MgTWVkaWEgU1BBCisJCQkJVmlhIGRlbGxlIEluZHVzdHJpZSwgNC9nCisJCQkJMjQwMzUgTEFMTElPIChCRykgIAorCQkJCUlUQUxZCisKKzAwLTAzLTE0ICAgKGhleCkJCVRlbGV3YXJlIE5ldHdvcmsgU3lzdGVtcworMDAwMzE0ICAgICAoYmFzZSAxNikJCVRlbGV3YXJlIE5ldHdvcmsgU3lzdGVtcworCQkJCSM3ODA2IDd0aCBEb25naWwgVGVjaG5vdG93biwKKwkJCQlLaW5hbnlhbmcgRG9uZyA4MjMsIERvbmdhaG4gR3UsIEFueWFuZyBDCisJCQkJNDMxLTA2MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy0xNSAgIChoZXgpCQlDaWRjbyBJbmNvcnBvcmF0ZWQKKzAwMDMxNSAgICAgKGJhc2UgMTYpCQlDaWRjbyBJbmNvcnBvcmF0ZWQKKwkJCQkyMjAgQ29jaHJhbmUgQ2lyY2xlCisJCQkJTW9yZ2FuIEhpbGwgQ0EgOTUwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTE2ICAgKGhleCkJCU5vYmVsbCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMzE2ICAgICAoYmFzZSAxNikJCU5vYmVsbCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTM0MTAgRmFyIFdlc3QgQmx2ZC4sIFN1aXRlIDI0MAorCQkJCUF1c3RpbiBUWCA3ODczMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMTcgICAoaGV4KQkJTWVybGluIFN5c3RlbXMsIEluYy4KKzAwMDMxNyAgICAgKGJhc2UgMTYpCQlNZXJsaW4gU3lzdGVtcywgSW5jLgorCQkJCTM5MDAgTmV3IFBhcmsgTWFsbCBSZC4KKwkJCQkzcmQgRmxvb3IKKwkJCQlOZXdhcmsgQ0EgOTQ1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTE4ICAgKGhleCkJCUN5cmFzIFN5c3RlbXMsIEluYy4KKzAwMDMxOCAgICAgKGJhc2UgMTYpCQlDeXJhcyBTeXN0ZW1zLCBJbmMuCisJCQkJNDcxMDAgQmF5c2lkZSBQYXJrd2F5CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMTkgICAoaGV4KQkJSW5maW5lb24gQUcKKzAwMDMxOSAgICAgKGJhc2UgMTYpCQlJbmZpbmVvbiBBRworCQkJCVAuTy4gQm94IDgwMDk0OQorCQkJCUQtODE2MDkgTXVuaWNoCisJCQkJR0VSTUFOWQorCiswMC0wMy0xQSAgIChoZXgpCQlCZWlqaW5nIEJyb2FkIFRlbGVjb20gTHRkLiwgQ2hpbmEKKzAwMDMxQSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEJyb2FkIFRlbGVjb20gTHRkLiwgQ2hpbmEKKwkJCQlQLk8uIEJveCAjMTQ3CisJCQkJQmVpamluZyBVbml2ZXJzaXR5IG9mIFBvc3RzICBhbmQgVGVsZWNvbQorCQkJCUJlaWppbmcgIDEwMDg3NgorCQkJCUNISU5BCisKKzAwLTAzLTFCICAgKGhleCkJCUNlbGx2aXNpb24gU3lzdGVtcywgSW5jLgorMDAwMzFCICAgICAoYmFzZSAxNikJCUNlbGx2aXNpb24gU3lzdGVtcywgSW5jLgorCQkJCTNGLTEsIDc1LCBIc2luIFRhaXd1IFJvYWQsIFNlYy4gMQorCQkJCUhzaWNoaWgsIFRhaXBlaSwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTFDICAgKGhleCkJCVN2ZW5za2EgSGFyZHZhcnVmYWJyaWtlbiBBQgorMDAwMzFDICAgICAoYmFzZSAxNikJCVN2ZW5za2EgSGFyZHZhcnVmYWJyaWtlbiBBQgorCQkJCU9sZSBSb21lcnN2YWcgMTYsIElkZW9uCisJCQkJU0UtMjIzIDcwIEx1bmQKKwkJCQlTV0VERU4KKworMDAtMDMtMUQgICAoaGV4KQkJVGFpd2FuIENvbW1hdGUgQ29tcHV0ZXIsIEluYy4KKzAwMDMxRCAgICAgKGJhc2UgMTYpCQlUYWl3YW4gQ29tbWF0ZSBDb21wdXRlciwgSW5jLgorCQkJCThGLCBOby4gOTQsIFNlYyAxLAorCQkJCVNoaW4gVGFpIFd1IFJkLiBIc2kgQ2hpaCwgVGFpcGVpIEhzaWVuLAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtMUUgICAoaGV4KQkJT3B0cmFuZXQsIEluYy4KKzAwMDMxRSAgICAgKGJhc2UgMTYpCQlPcHRyYW5ldCwgSW5jLgorCQkJCTcwNDEgS29sbCBDZW50ZXIgUGt3eQorCQkJCVN1aXRlIDEzNQorCQkJCVBsZWFzYW50b24gQ0EgOTQ1NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTFGICAgKGhleCkJCUNvbmRldiBMdGQuCiswMDAzMUYgICAgIChiYXNlIDE2KQkJQ29uZGV2IEx0ZC4KKwkJCQkyMDAtMTYyNiBXZXN0IDJuZCBBdmUuCisJCQkJVmFuY291dmVyLCBCLkMuIFY2SiAxSDQKKwkJCQlDQU5BREEKKworMDAtMDMtMjAgICAoaGV4KQkJWHBlZWQsIEluYy4KKzAwMDMyMCAgICAgKGJhc2UgMTYpCQlYcGVlZCwgSW5jLgorCQkJCTk5IFcuIFRhc21hbiBEcml2ZQorCQkJCVN1aXRlIDExMAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0yMSAgIChoZXgpCQlSZWNvIFJlc2VhcmNoIENvLiwgTHRkLgorMDAwMzIxICAgICAoYmFzZSAxNikJCVJlY28gUmVzZWFyY2ggQ28uLCBMdGQuCisJCQkJTm8uIDQ3LTEsIFNlYy4gMiwKKwkJCQlLdWFuZyBGdSBSZC4sU2FuIENodW5nIENpdHksIFRhaXBlaSwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTIyICAgKGhleCkJCUlESVMgQ28uLCBMdGQuCiswMDAzMjIgICAgIChiYXNlIDE2KQkJSURJUyBDby4sIEx0ZC4KKwkJCQk3dGggRmxvb3IsIDY0Ni03IFl1a3NhbS1Eb25nLAorCQkJCUthbmduYW0tR3UsIFNlb3VsIDEzNS0yODAsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTIzICAgKGhleCkJCUNvcm5ldCBUZWNobm9sb2d5LCBJbmMuCiswMDAzMjMgICAgIChiYXNlIDE2KQkJQ29ybmV0IFRlY2hub2xvZ3ksIEluYy4KKwkJCQk2ODAwIFZlcnNhciBDZW50ZXIsIFN1aXRlIDIxNgorCQkJCVNwcmluZ2ZpZWxkIFZBIDIyMTUxLTQxNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTI0ICAgKGhleCkJCVNBTllPIENvbnN1bWVyIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwMzI0ICAgICAoYmFzZSAxNikJCVNBTllPIENvbnN1bWVyIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTctMTAxIFRhY2hpa2F3YS1jaG8KKwkJCQlUb3R0b3JpIENpdHkgIDY4MC04NjM0CisJCQkJSkFQQU4KKworMDAtMDMtMjUgICAoaGV4KQkJQXJpbWEgQ29tcHV0ZXIgQ29ycC4KKzAwMDMyNSAgICAgKGJhc2UgMTYpCQlBcmltYSBDb21wdXRlciBDb3JwLgorCQkJCTZ0aCBGbC4sIE5vLiAzMjcsCisJCQkJU3VuZy1sdW5nIFJkLiwgVGFpcGVpIENpdHksCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy0yNiAgIChoZXgpCQlJd2FzYWtpIEluZm9ybWF0aW9uIFN5c3RlbXMgQ28uLCBMdGQuCiswMDAzMjYgICAgIChiYXNlIDE2KQkJSXdhc2FraSBJbmZvcm1hdGlvbiBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCTMzNjEgT3NoaQorCQkJCUZ1a2lhZ2UtbWFjaGksIFNhaXRhbWEgMzY5LTAxMTMKKwkJCQlKQVBBTgorCiswMC0wMy0yNyAgIChoZXgpCQlBQ1QnTAorMDAwMzI3ICAgICAoYmFzZSAxNikJCUFDVCdMCisJCQkJQXZlbnVlIGRlIEFydGlzYW5hdCAxMEEKKwkJCQkxOTI0IEJyYWluZSBsJ0FsbGFyZAorCQkJCUJFTEdJVU0KKworMDAtMDMtMjggICAoaGV4KQkJTWFjZSBHcm91cCwgSW5jLgorMDAwMzI4ICAgICAoYmFzZSAxNikJCU1hY2UgR3JvdXAsIEluYy4KKwkJCQk1MTAxIENvbW1lcmNlIERyLgorCQkJCUJhbGR3aW4gUGFyayBDQSA5MTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMjkgICAoaGV4KQkJRjMsIEluYy4KKzAwMDMyOSAgICAgKGJhc2UgMTYpCQlGMywgSW5jLgorCQkJCTJGLCBOby4gNywgSW5kdXN0cnkgRS4gUmQuIDksCisJCQkJU2NpZW5jZSBCYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy0yQSAgIChoZXgpCQlVbmlEYXRhIENvbW11bmljYXRpb24gU3lzdGVtcywgSW5jLgorMDAwMzJBICAgICAoYmFzZSAxNikJCVVuaURhdGEgQ29tbXVuaWNhdGlvbiBTeXN0ZW1zLCBJbmMuCisJCQkJMkYsIE9oU3VuZy1CbGRnLCA4Mi0xNSwKKwkJCQlOb25IeXVuLURvbmcsIEdhbmdOYW0tR3UsICBTZW91bCwxMzUtMTAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTJCICAgKGhleCkJCUdBSSBEYXRlbmZ1bmtzeXN0ZW1lIEdtYkgKKzAwMDMyQiAgICAgKGJhc2UgMTYpCQlHQUkgRGF0ZW5mdW5rc3lzdGVtZSBHbWJICisJCQkJUmllZGxlcGFya3N0cmFzc2UgMjgKKwkJCQlELTg4MDQ1IEZyaWVkcmljaHNoYWZlbgorCQkJCUdFUk1BTlkKKworMDAtMDMtMkMgICAoaGV4KQkJQUJCIFN3aXR6ZXJsYW5kIEx0ZAorMDAwMzJDICAgICAoYmFzZSAxNikJCUFCQiBTd2l0emVybGFuZCBMdGQKKwkJCQlEZXB0LiBBVFBUCisJCQkJQ0gtNTMwMCBUdXJnaQorCQkJCUF1c3RyYXNzZSAgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMDMtMkQgICAoaGV4KQkJSUJBU0UgVGVjaG5vbG9neSwgSW5jLgorMDAwMzJEICAgICAoYmFzZSAxNikJCUlCQVNFIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk1RiwgTm8uIDIyMSwKKwkJCQlDaHVuZyBZYW5nIFJkLgorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy0yRSAgIChoZXgpCQlTY29wZSBJbmZvcm1hdGlvbiBNYW5hZ2VtZW50LCBMdGQuCiswMDAzMkUgICAgIChiYXNlIDE2KQkJU2NvcGUgSW5mb3JtYXRpb24gTWFuYWdlbWVudCwgTHRkLgorCQkJCTJGIENoYW53b28gYi9vIDczNiBZb3Vrc2FuZy1kb25nLAorCQkJCUthbmduYW0tZ3UsCisJCQkJU2VvdWwgIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMkYgICAoaGV4KQkJR2xvYmFsIFN1biBUZWNobm9sb2d5LCBJbmMuCiswMDAzMkYgICAgIChiYXNlIDE2KQkJR2xvYmFsIFN1biBUZWNobm9sb2d5LCBJbmMuCisJCQkJTm8uIDEzLCBUdW5nIFl1YW4gUmQuLAorCQkJCUp1bmcgTGkgSW5kdXN0cmlhbCBQYXJrIEp1bmcgTGkgQ2l0eQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtMzAgICAoaGV4KQkJSW1hZ2VuaWNzLCBDby4sIEx0ZC4KKzAwMDMzMCAgICAgKGJhc2UgMTYpCQlJbWFnZW5pY3MsIENvLiwgTHRkLgorCQkJCTEtMzEtNSBLb2t1cnlvLUNobworCQkJCUNob2Z1LUNpdHkgVG9reW8KKwkJCQkxODItMDAyMiAKKwkJCQlKQVBBTgorCiswMC0wMy0zMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAzMzEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMzIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMzMyICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTMzICAgKGhleCkJCURpZ2l0ZWwgQ28uLCBMdGQuCiswMDAzMzMgICAgIChiYXNlIDE2KQkJRGlnaXRlbCBDby4sIEx0ZC4KKwkJCQk4MzUtNiwgWW9rc2FtLWRvbmcKKwkJCQlLYW5nbmFtLWd1LCAxMzUtMDgwLCBTZW91bCwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMzQgICAoaGV4KQkJTmV3cG9ydCBFbGVjdHJvbmljcworMDAwMzM0ICAgICAoYmFzZSAxNikJCU5ld3BvcnQgRWxlY3Ryb25pY3MKKwkJCQkyMjI5IFNvLiBZYWxlIFN0LgorCQkJCVNhbnRhIEFuYSBDQSA5MjcwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMzUgICAoaGV4KQkJTWlyYWUgVGVjaG5vbG9neQorMDAwMzM1ICAgICAoYmFzZSAxNikJCU1pcmFlIFRlY2hub2xvZ3kKKwkJCQkyMTEtMTUsIEhvbiBIeXVuLWRvbmcsCisJCQkJS2FuZ25hbS1rdSAxMzUtMDEwCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy0zNiAgIChoZXgpCQlaZXRlcyBUZWNobm9sb2dpZXMKKzAwMDMzNiAgICAgKGJhc2UgMTYpCQlaZXRlcyBUZWNobm9sb2dpZXMKKwkJCQkzIFJ1ZSBEZSBTdHJhcyBCb3VyZworCQkJCTExMzAgQnJ1c3NlbHMKKwkJCQlCRUxHSVVNCisKKzAwLTAzLTM3ICAgKGhleCkJCVZhb25lLCBJbmMuCiswMDAzMzcgICAgIChiYXNlIDE2KQkJVmFvbmUsIEluYy4KKwkJCQk2RiBLeWVtb25nIEFydCBDZW50ZXIsCisJCQkJNzcyIFl1a3NhbjItRG9uZyBLYW5nIEhhbUd1LCBTZW91bCwKKwkJCQkxMzUtMDgyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTM4ICAgKGhleCkJCU9hayBUZWNobm9sb2d5CiswMDAzMzggICAgIChiYXNlIDE2KQkJT2FrIFRlY2hub2xvZ3kKKwkJCQkxMzkgS2lmZXIgQ291cnQKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYtNTE2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMzkgICAoaGV4KQkJRXVyb2xvZ2ljIFN5c3RlbXMsIEx0ZC4KKzAwMDMzOSAgICAgKGJhc2UgMTYpCQlFdXJvbG9naWMgU3lzdGVtcywgTHRkLgorCQkJCUNsb25zaGF1Z2ggSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlDbG9uc2hhdWdoIER1YmxpbiAxNyAKKwkJCQlJUkVMQU5ECisKKzAwLTAzLTNBICAgKGhleCkJCVNpbGljb24gV2F2ZSwgSW5jLgorMDAwMzNBICAgICAoYmFzZSAxNikJCVNpbGljb24gV2F2ZSwgSW5jLgorCQkJCTYyNTYgR3JlZW53aWNoIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJU2FuIERpZWdvIENBIDkyMTIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0zQiAgIChoZXgpCQlUQU1JIFRlY2ggQ28uLCBMdGQuCiswMDAzM0IgICAgIChiYXNlIDE2KQkJVEFNSSBUZWNoIENvLiwgTHRkLgorCQkJCTRGLCBDaHVuZ2RvIEJlbmNoZXIgVG93bgorCQkJCTYwNiBUYW5iYW5nLURvbmcsIFNlby1HdQorCQkJCVRhZWpvbiAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTNDICAgKGhleCkJCURhaWRlbiBDby4sIEx0ZC4KKzAwMDMzQyAgICAgKGJhc2UgMTYpCQlEYWlkZW4gQ28uLCBMdGQuCisJCQkJMjEwMC0xOSBUdXR1bWksIEthbWltaW5lLW1hY2hpCisJCQkJTWl5YWtpLWd1biwgU2FnYS1rZW4KKwkJCQlKQVBBTgorCiswMC0wMy0zRCAgIChoZXgpCQlJTFNIaW4gTGFiCiswMDAzM0QgICAgIChiYXNlIDE2KQkJSUxTSGluIExhYgorCQkJCUtDUyBCL0QgMjI4LTEzIFlvdW5nIERhcC1Eb25nCisJCQkJU1VORyBET05HLUdVLAorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtM0UgICAoaGV4KQkJVGF0ZXlhbWEgU3lzdGVtIExhYm9yYXRvcnkgQ28uLCBMdGQuCiswMDAzM0UgICAgIChiYXNlIDE2KQkJVGF0ZXlhbWEgU3lzdGVtIExhYm9yYXRvcnkgQ28uLCBMdGQuCisJCQkJMzAgU2hpbW9ub2JhbiBPeWFtYS1jaG8KKwkJCQlLYW1pbmlrYXdhLWd1biBUb3lhbWEgUHJvZi4KKwkJCQk5MzAtMTMwNQorCQkJCUpBUEFOCisKKzAwLTAzLTNGICAgKGhleCkJCUJpZ0JhbmQgTmV0d29ya3MsIEx0ZC4KKzAwMDMzRiAgICAgKGJhc2UgMTYpCQlCaWdCYW5kIE5ldHdvcmtzLCBMdGQuCisJCQkJMyBBenJpZWxpIFRvd2VycworCQkJCVRlbC1Bdml2IDY3MDIzCisJCQkJSVNSQUVMCisKKzAwLTAzLTQwICAgKGhleCkJCUZsb3dhcmUgV2lyZWxlc3MgU3lzdGVtcywgTHRkLgorMDAwMzQwICAgICAoYmFzZSAxNikJCUZsb3dhcmUgV2lyZWxlc3MgU3lzdGVtcywgTHRkLgorCQkJCTI4IEhhY2hhcm9zaGV0IFN0ZWV0CisJCQkJUC5PLkIuIDgxMiBPci1ZZWh1ZGEKKwkJCQk2MDI1MAorCQkJCUlTUkFFTAorCiswMC0wMy00MSAgIChoZXgpCQlBeG9uIERpZ2l0YWwgRGVzaWduCiswMDAzNDEgICAgIChiYXNlIDE2KQkJQXhvbiBEaWdpdGFsIERlc2lnbgorCQkJCUxhbmdlIFdhZ2Vuc3RyYWF0IDU1CisJCQkJTkwtNTEyNiBCQiBHSUxaRQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTAzLTQyICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwMzQyICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCAtIFN0ZSAjMTAwCisJCQkJRGVwdC4gNjgwMCBCcmFtcHRvbiAgT04gIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMDMtNDMgICAoaGV4KQkJTWFydGluIFByb2Zlc3Npb25hbCBBL1MKKzAwMDM0MyAgICAgKGJhc2UgMTYpCQlNYXJ0aW4gUHJvZmVzc2lvbmFsIEEvUworCQkJCU9sb2YgUGFsbWVzIEFsbGUgMTgKKwkJCQlESy04MjAwIEFhcmh1c24KKwkJCQlERU5NQVJLCisKKzAwLTAzLTQ0ICAgKGhleCkJCVRpZXRlY2guQ28uLCBMdGQuCiswMDAzNDQgICAgIChiYXNlIDE2KQkJVGlldGVjaC5Dby4sIEx0ZC4KKwkJCQkyLTEzLTEgQ2hpa2FtYXRvb3JpIE1pbmFtaWt1CisJCQkJTmFnb3lhLAorCQkJCUpBUEFOCisKKzAwLTAzLTQ1ICAgKGhleCkJCVJvdXRyZWsgTmV0d29ya3MgQ29ycG9yYXRpb24KKzAwMDM0NSAgICAgKGJhc2UgMTYpCQlSb3V0cmVrIE5ldHdvcmtzIENvcnBvcmF0aW9uCisJCQkJTmlsc3NlaSBTaGluIE1pem9ub2t1Y2hpIEJsZGcuIDFGCisJCQkJMy01LTcgSGlzYW1vdG8sIFRha2F0c3UtS3UgS2F3YXNha2ktc2hpLAorCQkJCTIzLTAwMTEgCisJCQkJSkFQQU4KKworMDAtMDMtNDYgICAoaGV4KQkJSGl0YWNoaSBLb2t1c2FpIEVsZWN0cmljLCBJbmMuCiswMDAzNDYgICAgIChiYXNlIDE2KQkJSGl0YWNoaSBLb2t1c2FpIEVsZWN0cmljLCBJbmMuCisJCQkJMS02LTEwIFVjaGlrYW5kYQorCQkJCUNoaXlvZGEtS3UgVG9reW8gbDEwMQorCQkJCUpBUEFOCisKKzAwLTAzLTQ3ICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDAzNDcgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlNUzogIExGMy00MjAKKwkJCQkyMTExIE4uRS4gMjV0aCBBdmVudWUKKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTQ4ICAgKGhleCkJCU5vcnNjYW4gSW5zdHJ1bWVudHMsIEx0ZC4KKzAwMDM0OCAgICAgKGJhc2UgMTYpCQlOb3JzY2FuIEluc3RydW1lbnRzLCBMdGQuCisJCQkJNyBUZXJyYWNvbiBQbGFjZQorCQkJCVdpbm5pcGVnLCBNYW5pdG9iYSwKKwkJCQlSMkogNEIzCisJCQkJQ0FOQURBCisKKzAwLTAzLTQ5ICAgKGhleCkJCVZpZGljb2RlIERhdGFjb21tdW5pY2F0aWUgQi5WLgorMDAwMzQ5ICAgICAoYmFzZSAxNikJCVZpZGljb2RlIERhdGFjb21tdW5pY2F0aWUgQi5WLgorCQkJCVBvc3RidXMgNzE2NAorCQkJCTI3MDEgQUQgWm9ldGVybWVlcgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTAzLTRBICAgKGhleCkJCVJJQVMgQ29ycG9yYXRpb24KKzAwMDM0QSAgICAgKGJhc2UgMTYpCQlSSUFTIENvcnBvcmF0aW9uCisJCQkJNDY2MDAgRnJlbW9udCBCbHZkLgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTRCICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwMzRCICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCBTdWl0ZSAxMDAKKwkJCQlEZXB0LiA2ODAwIEJyYW1wdG9uIE9OIEw2VCA1IFA2CisJCQkJQ0FOQURBCisKKzAwLTAzLTRDICAgKGhleCkJCVNoYW5naGFpIERpZ2lWaXNpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDM0QyAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBEaWdpVmlzaW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMTFGLCBIZW5nIFRvbmcKKwkJCQlJbnRlcm5hdGlvbmFsIEJ1aWxkaW5nLCA4NjUgQ2hhbmcgTmluZyBSCisJCQkJU2hhbmdoYWkgMjAwMDUwCisJCQkJQ0hJTkEKKworMDAtMDMtNEQgICAoaGV4KQkJQ2hpYXJvIE5ldHdvcmtzLCBMdGQuCiswMDAzNEQgICAgIChiYXNlIDE2KQkJQ2hpYXJvIE5ldHdvcmtzLCBMdGQuCisJCQkJUC5PLiBCb3ggODMyNDI3CisJCQkJUmljaGFyZHNvbiBUWCA3NTA4My0yNDI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy00RSAgIChoZXgpCQlQb3MgRGF0YSBDb21wYW55LCBMdGQuCiswMDAzNEUgICAgIChiYXNlIDE2KQkJUG9zIERhdGEgQ29tcGFueSwgTHRkLgorCQkJCTI3Ni0yLCBTZW8tSHl1biBEb25nLAorCQkJCUJ1bi1EYW5nIEd1LCBTdW5nLW5hbSBDaXR5LCBLeW91bmctR2kgUHIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtNEYgICAoaGV4KQkJU3VyLUdhcmQgU2VjdXJpdHkKKzAwMDM0RiAgICAgKGJhc2UgMTYpCQlTdXItR2FyZCBTZWN1cml0eQorCQkJCTQwMSBNYWduZXRpYyBEcml2ZQorCQkJCVVuaXRzIDI0LTI4LCBEb3duc3ZpZXcKKwkJCQlPbnRhcmlvICBNM0ogM0g5CisJCQkJQ0FOQURBCisKKzAwLTAzLTUwICAgKGhleCkJCUJUSUNJTk8gU1BBCiswMDAzNTAgICAgIChiYXNlIDE2KQkJQlRJQ0lOTyBTUEEKKwkJCQlWaWEgTC4gTWFuYXJhLCA0CisJCQkJMjIwMzYgRXJiYSAoQ08pCisJCQkJSVRBTFkKKworMDAtMDMtNTEgICAoaGV4KQkJRGllYm9sZCwgSW5jLgorMDAwMzUxICAgICAoYmFzZSAxNikJCURpZWJvbGQsIEluYy4KKwkJCQk1OTk1IE1heWZhaXIgUm9hZAorCQkJCU5vcnRoIENhbnRvbiBPSCA0NDcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNTIgICAoaGV4KQkJQ29sdWJyaXMgTmV0d29ya3MKKzAwMDM1MiAgICAgKGJhc2UgMTYpCQlDb2x1YnJpcyBOZXR3b3JrcworCQkJCTQ0MCBBcm1hbmQtRnJhcHBpZXIKKwkJCQlMYXZhbCAoUXVlYmVjKQorCQkJCUg3ViA0QjQKKwkJCQlDQU5BREEKKworMDAtMDMtNTMgICAoaGV4KQkJTWl0YWMsIEluYy4KKzAwMDM1MyAgICAgKGJhc2UgMTYpCQlNaXRhYywgSW5jLgorCQkJCU5vLiAyLCBDaHVuZy1Ic2lhbyBTdHJlZXQKKwkJCQlDaGl0dSBLZWVsdW5nLCAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTU0ICAgKGhleCkJCUZpYmVyIExvZ2ljIENvbW11bmljYXRpb25zCiswMDAzNTQgICAgIChiYXNlIDE2KQkJRmliZXIgTG9naWMgQ29tbXVuaWNhdGlvbnMKKwkJCQk1Ri0zLCBOby4gOSwgUHJvc3Blcml0eSBSb2FkIE9uZSwKKwkJCQlTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTU1ICAgKGhleCkJCVRlcmFCZWFtIEludGVybmV0IFN5c3RlbXMKKzAwMDM1NSAgICAgKGJhc2UgMTYpCQlUZXJhQmVhbSBJbnRlcm5ldCBTeXN0ZW1zCisJCQkJMTQ4MzMgTkUgODd0aCBTdC4sIEJsZGcuIEMKKwkJCQlSZWRtb25kIFdBIDk4MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy01NiAgIChoZXgpCQlXaW5jb3IgTml4ZG9yZiBJbnRlcm5hdGlvbmFsIEdtYkgKKzAwMDM1NiAgICAgKGJhc2UgMTYpCQlXaW5jb3IgTml4ZG9yZiBJbnRlcm5hdGlvbmFsIEdtYkgKKwkJCQlIZWluei1OaXhkb3JmIFJpbmcgMQorCQkJCUQtMzMxMDYgUGFkZXJib3JuIAorCQkJCUdFUk1BTlkKKworMDAtMDMtNTcgICAoaGV4KQkJSW50ZXJ2b2ljZS1Ccml0ZSwgSW5jLgorMDAwMzU3ICAgICAoYmFzZSAxNikJCUludGVydm9pY2UtQnJpdGUsIEluYy4KKwkJCQkxNzgxMSBXYXRlcnZpZXcgUGt3eS4KKwkJCQlEYWxsYXMgVFggNzUyNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTU4ICAgKGhleCkJCUhhbnlhbmcgRGlnaXRlY2ggQ28uLCBMdGQuCiswMDAzNTggICAgIChiYXNlIDE2KQkJSGFueWFuZyBEaWdpdGVjaCBDby4sIEx0ZC4KKwkJCQkxM0YsIEFjZXR3aW50b3dlcjIsIDIxMi0zMCwgR3Vyby1Eb25nCisJCQkJR3Vyby1HdQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtNTkgICAoaGV4KQkJRGlnaXRhbFNpcworMDAwMzU5ICAgICAoYmFzZSAxNikJCURpZ2l0YWxTaXMKKwkJCQlCLTE0MDUgU2FtaG8gQmxkZy4KKwkJCQkyNzUtNiBZYW5namFlCisJCQkJU2VvY2hvIFNlb3VsLCAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtNUEgICAoaGV4KQkJUGhvdHJvbiBMaW1pdGVkCiswMDAzNUEgICAgIChiYXNlIDE2KQkJUGhvdHJvbiBMaW1pdGVkCisJCQkJMS0xLTgsIEZ1amltaSwKKwkJCQlDaGl5b2RhLWt1ICAxMDItMDA3MQorCQkJCUpBUEFOCisKKzAwLTAzLTVCICAgKGhleCkJCUJyaWRnZVdhdmUgQ29tbXVuaWNhdGlvbnMKKzAwMDM1QiAgICAgKGJhc2UgMTYpCQlCcmlkZ2VXYXZlIENvbW11bmljYXRpb25zCisJCQkJMzM1MCBUaG9tYWQgUm9hZAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy01QyAgIChoZXgpCQlTYWludCBTb25nIENvcnAuCiswMDAzNUMgICAgIChiYXNlIDE2KQkJU2FpbnQgU29uZyBDb3JwLgorCQkJCTRGLCBOby4gMTIsIExhbmUgOTQsIFRzYW8gVGkgV3ppCisJCQkJU2hlbiBLZW5nIEhzaWFuZywgVGFpcGVpIEhzaWVuCisJCQkJMjIyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy01RCAgIChoZXgpCQlCb3N1bmcgSGktTmV0IENvLiwgTHRkLgorMDAwMzVEICAgICAoYmFzZSAxNikJCUJvc3VuZyBIaS1OZXQgQ28uLCBMdGQuCisJCQkJWW91bmdpbCBCL08gMkYsCisJCQkJWWFuZ0phZS1kb25nIDEyLTcsIFNlb2Noby1ndSwgU2VvdWwKKwkJCQkxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTVFICAgKGhleCkJCU1ldHJvcG9saXRhbiBBcmVhIE5ldHdvcmtzLCBJbmMuCiswMDAzNUUgICAgIChiYXNlIDE2KQkJTWV0cm9wb2xpdGFuIEFyZWEgTmV0d29ya3MsIEluYy4KKwkJCQkxMjk5IFBlbm5zeWx2YW5pYSBBdmVudWUsIE5XCisJCQkJTmludGggRmxvb3IKKwkJCQlXYXNoaW5ndG9uIERDIDIwMDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy01RiAgIChoZXgpCQlQcnVlZnRlY2huaWsgQ29uZGl0aW9uIE1vbml0b3JpbmcgR21iSCAmIENvLiBLRworMDAwMzVGICAgICAoYmFzZSAxNikJCVBydWVmdGVjaG5payBDb25kaXRpb24gTW9uaXRvcmluZyBHbWJIICYgQ28uIEtHCisJCQkJRnJhbnotQmF5ZXItU3RyLiAxNAorCQkJCUQtODgyMTMgUmF2ZW5zYnVyZworCQkJCUdFUk1BTlkKKworMDAtMDMtNjAgICAoaGV4KQkJUEFDIEludGVyYWN0aXZlIFRlY2hub2xvZ3ksIEluYy4KKzAwMDM2MCAgICAgKGJhc2UgMTYpCQlQQUMgSW50ZXJhY3RpdmUgVGVjaG5vbG9neSwgSW5jLgorCQkJCTZGLCBOby4gMzAsIEFsbGV5IDE4LCBMYW5lIDQ3OAorCQkJCUphaSBHdWFuZyBSb2FkLCBOZWktSHUKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtNjEgICAoaGV4KQkJV2lkY29tbSwgSW5jLgorMDAwMzYxICAgICAoYmFzZSAxNikJCVdpZGNvbW0sIEluYy4KKwkJCQk5NjQ1IFNjcmFudG9uIFJvYWQKKwkJCQlTdWl0ZSAyMDUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTYyICAgKGhleCkJCVZvZHRlbCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMzYyICAgICAoYmFzZSAxNikJCVZvZHRlbCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTEyRiwgTm8gMTY2IENoaWVuLVlpIFJvYWQKKwkJCQlDaHVuZy1IbyBDaXR5LCBUYWlwZWkgQ291bnR5CisJCQkJMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy02MyAgIChoZXgpCQlNaXJhZXN5cyBDby4sIEx0ZC4KKzAwMDM2MyAgICAgKGJhc2UgMTYpCQlNaXJhZXN5cyBDby4sIEx0ZC4KKwkJCQk2NTAtMiA0IEZsLiBEYWVteXVuZyBCbGRnLgorCQkJCVl1a3NhbSwgS2FuZ25hbSwgU2VvdWwsCisJCQkJMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy02NCAgIChoZXgpCQlTY2VuaXggU2VtaWNvbmR1Y3RvciwgSW5jLgorMDAwMzY0ICAgICAoYmFzZSAxNikJCVNjZW5peCBTZW1pY29uZHVjdG9yLCBJbmMuCisJCQkJMTMzMCBDaGFybGVzdG9uIFJkLgorCQkJCU1vdW50YWludmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNjUgICAoaGV4KQkJS2lyYSBJbmZvcm1hdGlvbiAmIENvbW11bmljYXRpb25zLCBMdGQuCiswMDAzNjUgICAgIChiYXNlIDE2KQkJS2lyYSBJbmZvcm1hdGlvbiAmIENvbW11bmljYXRpb25zLCBMdGQuCisJCQkJNnRoIEZsLiBBbmFtIFRvd2VyLAorCQkJCTcwMi0xMCBZZW9rc2FtLWRvbmcsIEthbmduYW0ta3UsIFNlb3VsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTY2ICAgKGhleCkJCUFTTSBQYWNpZmljIFRlY2hub2xvZ3kKKzAwMDM2NiAgICAgKGJhc2UgMTYpCQlBU00gUGFjaWZpYyBUZWNobm9sb2d5CisJCQkJMTIvRiBXYXRzb24gQ2VudHJlCisJCQkJMTYgS3VuZyBZaXAgU3QuCisJCQkJS3dhaSBDaHVuZyAgCisJCQkJSE9ORyBLT05HCisKKzAwLTAzLTY3ICAgKGhleCkJCUphc21pbmUgTmV0d29ya3MsIEluYy4KKzAwMDM2NyAgICAgKGJhc2UgMTYpCQlKYXNtaW5lIE5ldHdvcmtzLCBJbmMuCisJCQkJMTk0MCBaYW5rZXIgUm9hZAorCQkJCVNhbiBKb3NlIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy02OCAgIChoZXgpCQlFbWJlZG9uZSBDby4sIEx0ZC4KKzAwMDM2OCAgICAgKGJhc2UgMTYpCQlFbWJlZG9uZSBDby4sIEx0ZC4KKwkJCQlGbC4gOSBBbm5leCBTYW1od2FuIEIvRC4gMTctMjYKKwkJCQlZZW9pZG8tRG9uZywgWW91bmdkZXVuZ3BvLWt1LAorCQkJCVNlb3VsICAxNTAtMDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtNjkgICAoaGV4KQkJTmlwcG9uIEFudGVubmEgQ28uLCBMdGQuCiswMDAzNjkgICAgIChiYXNlIDE2KQkJTmlwcG9uIEFudGVubmEgQ28uLCBMdGQuCisJCQkJTm8uIDQ5LTgsIE5pc2hpb2d1LAorCQkJCTctQ2hvbWUgQXJha2F3YS1rdSwKKwkJCQlUb2t5byAgMTE2LTg1NjEKKwkJCQlKQVBBTgorCiswMC0wMy02QSAgIChoZXgpCQlNYWlubmV0LCBMdGQuCiswMDAzNkEgICAgIChiYXNlIDE2KQkJTWFpbm5ldCwgTHRkLgorCQkJCVAuTy4gQm94IDIzMjQKKwkJCQlLZmFyIFNhYmEgNDQ2NDEKKwkJCQlJU1JBRUwKKworMDAtMDMtNkIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMzZCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTZDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDM2QyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy02RCAgIChoZXgpCQlSdW50b3AsIEluYy4KKzAwMDM2RCAgICAgKGJhc2UgMTYpCQlSdW50b3AsIEluYy4KKwkJCQkxLCBMYW5lIDIxLCBIc2luIEh1YSBSb2FkLCBLdWVpc2hhbgorCQkJCUluZHVzdHJpYWwgUGFyaywgVGFveXVhbiBDaXR5LAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtNkUgICAoaGV4KQkJTmljb24gU3lzdGVtcyAoUHR5KSBMaW1pdGVkCiswMDAzNkUgICAgIChiYXNlIDE2KQkJTmljb24gU3lzdGVtcyAoUHR5KSBMaW1pdGVkCisJCQkJMTEgVGVybW8gU3RyZWV0CisJCQkJVGVjaG5vcGFyayBTdGVsbGVuYm9zY2gsIDc2MDAKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMDMtNkYgICAoaGV4KQkJVGVsc2V5IFNQQQorMDAwMzZGICAgICAoYmFzZSAxNikJCVRlbHNleSBTUEEKKwkJCQlWaWFsZSBEZWxsIEluZHVzdHJpYSwgMQorCQkJCTMxIDA1NSBRdWludG8KKwkJCQlEaVRyZXZpc28tICAKKwkJCQlJVEFMWQorCiswMC0wMy03MCAgIChoZXgpCQlOWFRWLCBJbmMuCiswMDAzNzAgICAgIChiYXNlIDE2KQkJTlhUViwgSW5jLgorCQkJCTU5NTUgRGUgU290byBBdmUsICMxNjAKKwkJCQlXb29kbGFuZCBIaWxscyBDQSA5MTM2NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNzEgICAoaGV4KQkJQWNvbXogTmV0d29ya3MgQ29ycC4KKzAwMDM3MSAgICAgKGJhc2UgMTYpCQlBY29teiBOZXR3b3JrcyBDb3JwLgorCQkJCTd0aCBGbC4sIFdvb3Nlb2sgQmxkZy4sIDEwMDctMzcKKwkJCQlTYWRhbmcxLWRvbmcsIERvbmdqYWstZ3UsCisJCQkJU2VvdWwgIDE1Ni0wOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy03MiAgIChoZXgpCQlVTEFOCiswMDAzNzIgICAgIChiYXNlIDE2KQkJVUxBTgorCQkJCTVGLTMsIE5vLiAzMS0xLCBMYW5lIDE2OSwKKwkJCQlLYW5nIE5pbmcgU3QuLCBIc2ktQ2hpbiBDaXR5LCBUYWlwZWkgSHNpCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTczICAgKGhleCkJCUFzZWxzYW4gQS5TCiswMDAzNzMgICAgIChiYXNlIDE2KQkJQXNlbHNhbiBBLlMKKwkJCQlNZWhtZXQgQWtpZiBFcnNveSBNYWguCisJCQkJMTYgQ2FkLiBOby4gMTYgTWFjdW5rb3kvQW5rYXJhCisJCQkJVFVSS0VZCisJCQkJVFVSS0VZCisKKzAwLTAzLTc0ICAgKGhleCkJCUNvbnRyb2wgTWljcm9zeXN0ZW1zCiswMDAzNzQgICAgIChiYXNlIDE2KQkJQ29udHJvbCBNaWNyb3N5c3RlbXMKKwkJCQk0OCBTdGVhY2llIERyaXZlCisJCQkJT3R0YXdhIE9udGFyaW8gSzJLIDJBOQorCQkJCUNBTkFEQQorCiswMC0wMy03NSAgIChoZXgpCQlOZXRNZWRpYSwgSW5jLgorMDAwMzc1ICAgICAoYmFzZSAxNikJCU5ldE1lZGlhLCBJbmMuCisJCQkJMTA5NDAgTi4gU3RhbGxhcmQgUGxhY2UKKwkJCQlUdXNjb24gQVogODU3MzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTc2ICAgKGhleCkJCUdyYXBodGVjIFRlY2hub2xvZ3ksIEluYy4KKzAwMDM3NiAgICAgKGJhc2UgMTYpCQlHcmFwaHRlYyBUZWNobm9sb2d5LCBJbmMuCisJCQkJNDUgUGFya2VyLCBTdWl0ZSBBCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy03NyAgIChoZXgpCQlHaWdhYml0IFdpcmVsZXNzCiswMDAzNzcgICAgIChiYXNlIDE2KQkJR2lnYWJpdCBXaXJlbGVzcworCQkJCTMwOTkgTi4gRmlyc3QgU3RyZWV0CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTc4ICAgKGhleCkJCUhVTUFYIENvLiwgTHRkLgorMDAwMzc4ICAgICAoYmFzZSAxNikJCUhVTUFYIENvLiwgTHRkLgorCQkJCTI3MS0yLCBTdWgtaHl1bi1Eb25nLAorCQkJCUJ1bmRhbmctR3UsIFN1bmduYW0tQ2l0eSwgS3lvbmdnaS1EbywgNDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtNzkgICAoaGV4KQkJUHJvc2NlbmQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDM3OSAgICAgKGJhc2UgMTYpCQlQcm9zY2VuZCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTJGLCBOby4zNiwgSW5kdXN0cnkgRS4gUmQuIElWLAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtN0EgICAoaGV4KQkJVGFpeW8gWXVkZW4gQ28uLCBMdGQuCiswMDAzN0EgICAgIChiYXNlIDE2KQkJVGFpeW8gWXVkZW4gQ28uLCBMdGQuCisJCQkJOC0xIFNha2FlLUNobworCQkJCVRha2FzYWtpLVNoaSBHdW5tYSAzNzAtODUyMgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDMtN0IgICAoaGV4KQkJSURFQyBJWlVNSSBDb3Jwb3JhdGlvbgorMDAwMzdCICAgICAoYmFzZSAxNikJCUlERUMgSVpVTUkgQ29ycG9yYXRpb24KKwkJCQk3LTMxLCBOaXNoaW1peWFoYXJhCisJCQkJMS1DaG9tZSBZb2RvZ2F3YS1rdS4gT3Nha2EgNTMyLTg1NTAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAzLTdDICAgKGhleCkJCUNvYXggTWVkaWEKKzAwMDM3QyAgICAgKGJhc2UgMTYpCQlDb2F4IE1lZGlhCisJCQkJMTIyMCBPYWsgSW5kdXN0cmlhbCBMYW5lCisJCQkJU3VpdGUgQgorCQkJCUN1bW1pbmcgR0EgMzAwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTdEICAgKGhleCkJCVN0ZWxsY29tCiswMDAzN0QgICAgIChiYXNlIDE2KQkJU3RlbGxjb20KKwkJCQkxMDUyNSBWaXN0YSBTb3JyZW50byBQYXJrd2F5CisJCQkJU3VpdGUgMTAwCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy03RSAgIChoZXgpCQlQT1JUZWNoIENvbW11bmljYXRpb25zLCBJbmMuCiswMDAzN0UgICAgIChiYXNlIDE2KQkJUE9SVGVjaCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTE1MCwgU2hpYW5nLVNodW5nIE4uIFJkLiwKKwkJCQlUYWljaHVuZyBUYWl3YW4gNDAzLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTdGICAgKGhleCkJCUF0aGVyb3MgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDM3RiAgICAgKGJhc2UgMTYpCQlBdGhlcm9zIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNTQ4MCBHcmVhdCBBbWVyaWNhIFBhcmt3YXkKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtODAgICAoaGV4KQkJU1NIIENvbW11bmljYXRpb25zIFNlY3VyaXR5IENvcnAuCiswMDAzODAgICAgIChiYXNlIDE2KQkJU1NIIENvbW11bmljYXRpb25zIFNlY3VyaXR5IENvcnAuCisJCQkJRnJlZHJpa2lua2F0dSA0MgorCQkJCUZpbiAwMTAwIEhlbHNpbmtpCisJCQkJRklOTEFORAorCQkJCUZJTkxBTkQKKworMDAtMDMtODEgICAoaGV4KQkJSW5nZW5pY28gSW50ZXJuYXRpb25hbAorMDAwMzgxICAgICAoYmFzZSAxNikJCUluZ2VuaWNvIEludGVybmF0aW9uYWwKKwkJCQkxLzkgQXBvbGxvIFN0cmVldAorCQkJCVdhcnJpZXdvb2QgTlNXIDIxMDIKKwkJCQlBVVNUUkFMSUEKKworMDAtMDMtODIgICAoaGV4KQkJQS1PbmUgQ28uLCBMdGQuCiswMDAzODIgICAgIChiYXNlIDE2KQkJQS1PbmUgQ28uLCBMdGQuCisJCQkJNi05LTIwLCBTaGltb2ljaGliYS1jaG8sCisJCQkJS2FzdWdhaS1zaGksIEFpY2hpLWtlbiwgNDg2LTA4NTIKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAzLTgzICAgKGhleCkJCU1ldGVyYSBOZXR3b3JrcywgSW5jLgorMDAwMzgzICAgICAoYmFzZSAxNikJCU1ldGVyYSBOZXR3b3JrcywgSW5jLgorCQkJCTEyMDIgUmljaGFyZHNvbiBEci4KKwkJCQlTdWl0ZSAxMDAKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy04NCAgIChoZXgpCQlBRVRBCiswMDAzODQgICAgIChiYXNlIDE2KQkJQUVUQQorCQkJCUtlcGxlciA2CisJCQkJMTgtMjIgYXZlbnVlIEVkb3VhcmQgSGVycmlvdAorCQkJCUxlIFBsZXNzaXMgUm9iaW5zb24gIDkyMzUwCisJCQkJRlJBTkNFCisKKzAwLTAzLTg1ICAgKGhleCkJCUFjdGVsaXMgTmV0d29ya3MsIEluYy4KKzAwMDM4NSAgICAgKGJhc2UgMTYpCQlBY3RlbGlzIE5ldHdvcmtzLCBJbmMuCisJCQkJMSBCYXplbCBTdC4sIFAuTy5CLiAxMDE3MworCQkJCVBldGFoIC0gVGlrdmEgNDkxMDMKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDMtODYgICAoaGV4KQkJSG8gTmV0LCBJbmMuCiswMDAzODYgICAgIChiYXNlIDE2KQkJSG8gTmV0LCBJbmMuCisJCQkJVmVudHVyZSBDb21wYW55IENlbnRlcgorCQkJCVNhbiA5NC02IFlpdWktRG9uZywgUGFsZGFsLUd1LCBTdXdvbi1zaSwKKwkJCQlLT1JFQSA0NDItNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTg3ICAgKGhleCkJCUJsYXplIE5ldHdvcmsgUHJvZHVjdHMKKzAwMDM4NyAgICAgKGJhc2UgMTYpCQlCbGF6ZSBOZXR3b3JrIFByb2R1Y3RzCisJCQkJNTE4MCBIYWNpZW5kYSBEcml2ZQorCQkJCUR1YmxpbiBDQSA5NDU2OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtODggICAoaGV4KQkJRmFzdGZhbWUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDM4OCAgICAgKGJhc2UgMTYpCQlGYXN0ZmFtZSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTdGLCBOby4gMTExLCBIc2luZyBEZSBSZC4sCisJCQkJU2FuY2h1bmcsIFRhaXBlaSwKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtODkgICAoaGV4KQkJUGxhbnRyb25pY3MKKzAwMDM4OSAgICAgKGJhc2UgMTYpCQlQbGFudHJvbmljcworCQkJCTM0NSBFbmNpbmFsIFN0LgorCQkJCVNhbnRhIENydXogQ0EgOTUwNjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLThBICAgKGhleCkJCUFtZXJpY2EgT25saW5lLCBJbmMuCiswMDAzOEEgICAgIChiYXNlIDE2KQkJQW1lcmljYSBPbmxpbmUsIEluYy4KKwkJCQk0NDkwMCBQcmVudGljZSBEcml2ZQorCQkJCUR1bGxlcyBWQSAyMDE2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOEIgICAoaGV4KQkJUExVUy1PTkUgSSZULCBJbmMuCiswMDAzOEIgICAgIChiYXNlIDE2KQkJUExVUy1PTkUgSSZULCBJbmMuCisJCQkJN0YsIEEtU2FuIFZlbnR1cmUgVG93ZXIsCisJCQkJWWFuZ0phZS1kb25nLCBTZW9jaG8ta3UsIFNlb3VsLAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLThDICAgKGhleCkJCVRvdGFsIEltcGFjdAorMDAwMzhDICAgICAoYmFzZSAxNikJCVRvdGFsIEltcGFjdAorCQkJCTI5NSBXaWxsaXMgQXZlLgorCQkJCVN1aXRlIEUKKwkJCQlDYW1hcmlsbG8gQ0EgOTMwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLThEICAgKGhleCkJCVBDUyBSZXZlbnVlIENvbnRyb2wgU3lzdGVtcywgSW5jLgorMDAwMzhEICAgICAoYmFzZSAxNikJCVBDUyBSZXZlbnVlIENvbnRyb2wgU3lzdGVtcywgSW5jLgorCQkJCTU2MCBTeWx2YW4gQXZlLgorCQkJCUVuZ2xld29vZCBDbGlmZnMgTkogMDc2MzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLThFICAgKGhleCkJCUF0b2dhIFN5c3RlbXMsIEluYy4KKzAwMDM4RSAgICAgKGJhc2UgMTYpCQlBdG9nYSBTeXN0ZW1zLCBJbmMuCisJCQkJNDkwMjYgTWlsbW9udCBEcml2ZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLThGICAgKGhleCkJCVdlaW5zY2hlbCBDb3Jwb3JhdGlvbgorMDAwMzhGICAgICAoYmFzZSAxNikJCVdlaW5zY2hlbCBDb3Jwb3JhdGlvbgorCQkJCTUzMDUgU3BlY3RydW0gRHJpdmUKKwkJCQlGcmVkZXJpY2sgTUQgMjE3MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTkwICAgKGhleCkJCURpZ2l0YWwgVmlkZW8gQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDM5MCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFZpZGVvIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNTAwIFcuIEN1bW1pbmdzIFBhcmsKKwkJCQlTdWl0ZSAyMDAwCisJCQkJV29idXJuIE1BIDA3ODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy05MSAgIChoZXgpCQlBZHZhbmNlZCBEaWdpdGFsIEJyb2FkY2FzdCwgTHRkLgorMDAwMzkxICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIERpZ2l0YWwgQnJvYWRjYXN0LCBMdGQuCisJCQkJOEYsIDE0NSBDaHVuZyBTaGFuIE4uIFJkLiBTZWMuIDIsCisJCQkJVGFpcGVpLCAxMDQsCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTkyICAgKGhleCkJCUh5dW5kYWkgVGVsZXRlayBDby4sIEx0ZC4KKzAwMDM5MiAgICAgKGJhc2UgMTYpCQlIeXVuZGFpIFRlbGV0ZWsgQ28uLCBMdGQuCisJCQkJQi01MDEsIFRlY2hubyBQYXJrLCAxNDggWWF0YXAtZG9uZywKKwkJCQlCb29uZGFuZy1ndSwgU3VuZ25hbS1zaSwgS3l1bmdnaS1kbywgNDYzCisJCQkJS09SRUEgUmVwdWJsaWMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtOTMgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIsIEluYy4KKzAwMDM5MyAgICAgKGJhc2UgMTYpCQlBcHBsZSBDb21wdXRlciwgSW5jLgorCQkJCTIwNjUwIFZhbGxleSBHcmVlbiBEci4KKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTk0ICAgKGhleCkJCUNvbm5lY3QgT25lCiswMDAzOTQgICAgIChiYXNlIDE2KQkJQ29ubmVjdCBPbmUKKwkJCQkyIEhhbmFnYXIgU3RyZWV0CisJCQkJS2ZhciBTYWJhIDQ0NDI1CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTAzLTk1ICAgKGhleCkJCUNhbGlmb3JuaWEgQW1wbGlmaWVyCiswMDAzOTUgICAgIChiYXNlIDE2KQkJQ2FsaWZvcm5pYSBBbXBsaWZpZXIKKwkJCQk0NjAgQ2FsbGUgU2FuIFBhYmxvCisJCQkJQ2FtYXJpbGxvIENBIDkzMDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy05NiAgIChoZXgpCQlFWiBDYXN0IENvLiwgTHRkLgorMDAwMzk2ICAgICAoYmFzZSAxNikJCUVaIENhc3QgQ28uLCBMdGQuCisJCQkJNnRoIEZsb29yLCBKdW5nQW5nIEJ1aWxkaW5nLAorCQkJCTk5LTEsIE5vbmh5dW4tRG9uZyAoMTM1LTAxMCkgS2FuZ25hbS1rdSwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy05NyAgIChoZXgpCQlXYXRjaGZyb250IExpbWl0ZWQKKzAwMDM5NyAgICAgKGJhc2UgMTYpCQlXYXRjaGZyb250IExpbWl0ZWQKKwkJCQkzIFZpY3RvcmlhIFdhbGsKKwkJCQlXb2tpbmdoYW0gIFJHNDAgNVlMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDMtOTggICAoaGV4KQkJV0lTSQorMDAwMzk4ICAgICAoYmFzZSAxNikJCVdJU0kKKwkJCQlXaWxoZWxtLVNpaG4tU3RyLiA1LTcKKwkJCQlELTc1MjIzIE5pZWZlcm4tT2VzY2hlbGJyb25uIAorCQkJCUdFUk1BTlkKKworMDAtMDMtOTkgICAoaGV4KQkJRG9uZ2p1IEluZm9ybWF0aW9ucyAmIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorMDAwMzk5ICAgICAoYmFzZSAxNikJCURvbmdqdSBJbmZvcm1hdGlvbnMgJiBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQkjMzA1LCBFdW5zdWsgQmxkZy4gU2Ftc3VuZy1kb25nCisJCQkJS2FuZ25hbS1ndSBTZW91bAorCQkJCVJlcHVibGljIG9mIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTlBICAgKGhleCkJCVNpQ29ubmVjdAorMDAwMzlBICAgICAoYmFzZSAxNikJCVNpQ29ubmVjdAorCQkJCURlbHRhIDEwMAorCQkJCVdlbHRvbiBSb2FkCisJCQkJU3dpbmRvbiAgU041IDdYUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAzLTlCICAgKGhleCkJCU5ldENoaXAgVGVjaG5vbG9neSwgSW5jLgorMDAwMzlCICAgICAoYmFzZSAxNikJCU5ldENoaXAgVGVjaG5vbG9neSwgSW5jLgorCQkJCTMzNSBQaW9uZWVyIFdheQorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTlDICAgKGhleCkJCU9wdGlNaWdodCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMzlDICAgICAoYmFzZSAxNikJCU9wdGlNaWdodCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTk4MCBMaW5kYSBWaXN0YSBBdmVudWUKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy05RCAgIChoZXgpCQlRaXNkYSBDb3Jwb3JhdGlvbgorMDAwMzlEICAgICAoYmFzZSAxNikJCVFpc2RhIENvcnBvcmF0aW9uCisJCQkJMTU3IFNoYW4gWWluZyBSb2FkCisJCQkJR3VlaVNoYW4gVGFveXVhbiAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTlFICAgKGhleCkJCVRlcmEgU3lzdGVtIENvLiwgTHRkLgorMDAwMzlFICAgICAoYmFzZSAxNikJCVRlcmEgU3lzdGVtIENvLiwgTHRkLgorCQkJCURvb3N1bmcgQi9GIFJtIDMwMgorCQkJCTc2Ni0xIFNoaW5jaHVuZ2RvbmcgU2hpaHVuZyBDaXR5IEt5dW5na2kKKwkJCQlSZXB1YmxpYyBvZiBLb3JlYQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy05RiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAzOUYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQTAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwM0EwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUExICAgKGhleCkJCUhJUEVSIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbiwgSW5jLgorMDAwM0ExICAgICAoYmFzZSAxNikJCUhJUEVSIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbiwgSW5jLgorCQkJCTE2NzUtNywgU2luaWwtZG9uZywKKwkJCQlUYWVkdWstZ3UsIFRhZWpvbiwKKwkJCQkzMDYtMjMwIFNvdXRoIEtvcmVhCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLUEyICAgKGhleCkJCUNhdGFwdWx0IENvbW11bmljYXRpb25zCiswMDAzQTIgICAgIChiYXNlIDE2KQkJQ2F0YXB1bHQgQ29tbXVuaWNhdGlvbnMKKwkJCQkxNjAgUy4gV2hpc21hbiBSZC4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1BMyAgIChoZXgpCQlNQVZJWCwgTHRkLgorMDAwM0EzICAgICAoYmFzZSAxNikJCU1BVklYLCBMdGQuCisJCQkJUE9CIDIxNywgWW9rbmVhbSBJbGxpdCwKKwkJCQkyMDY5MgorCQkJCUlTUkFFTAorCiswMC0wMy1BNCAgIChoZXgpCQlJbWF0aW9uIENvcnAuCiswMDAzQTQgICAgIChiYXNlIDE2KQkJSW1hdGlvbiBDb3JwLgorCQkJCTEgSW1hdGlvbiBQbGFjZQorCQkJCURpc2NvdmVyeSAyQi01MAorCQkJCU9ha2RhbGUgTU4gNTUxMjgtMzQxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQTUgICAoaGV4KQkJTWVkZWEgQ29ycG9yYXRpb24KKzAwMDNBNSAgICAgKGJhc2UgMTYpCQlNZWRlYSBDb3Jwb3JhdGlvbgorCQkJCTU3MDEgTGluZGVybyBDYW55b24gUmQuCisJCQkJQmxkZy4gMy0xMDAKKwkJCQlXZXRsYWtlIFZpbGxhZ2UgQ0EgOTEzNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUE2ICAgKGhleCkJCVRyYXhpdCBUZWNobm9sb2d5LCBJbmMuCiswMDAzQTYgICAgIChiYXNlIDE2KQkJVHJheGl0IFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyNTYgR3JlYXQgUm9hZCwKKwkJCQlTdWl0ZSAxNgorCQkJCUxpdHRsZXRvbiBNQSAwMTQ2MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQTcgICAoaGV4KQkJVW5peHRhciBUZWNobm9sb2d5LCBJbmMuCiswMDAzQTcgICAgIChiYXNlIDE2KQkJVW5peHRhciBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTNGIE5vLiAxMDAgTWluZyBDaHVhbiBSb2FkCisJCQkJSHNpbiBUaWVuLCBUYWlwZWksCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy1BOCAgIChoZXgpCQlJRE9UIENvbXB1dGVycywgSW5jLgorMDAwM0E4ICAgICAoYmFzZSAxNikJCUlET1QgQ29tcHV0ZXJzLCBJbmMuCisJCQkJM0YuLCBOby4gMTM3LCBMYW5lIDIzNQorCQkJCVBhby1DaGlhbyBSb2FkLCBIc2luLVRpZW4gVGFpcGVpIENvdW50cnkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtQTkgICAoaGV4KQkJQVhDRU5UIE1lZGlhIEFHCiswMDAzQTkgICAgIChiYXNlIDE2KQkJQVhDRU5UIE1lZGlhIEFHCisJCQkJVGVjaG5vbG9naWVwYXJrIDEzCisJCQkJMzMxMDAgUGFkZXJib3JuCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDMtQUEgICAoaGV4KQkJV2F0bG93CiswMDAzQUEgICAgIChiYXNlIDE2KQkJV2F0bG93CisJCQkJMTI0MSBCdW5keSBCbHZkLgorCQkJCVdpbm9uYSBNTiA1NTk4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQUIgICAoaGV4KQkJQnJpZGdlIEluZm9ybWF0aW9uIFN5c3RlbXMKKzAwMDNBQiAgICAgKGJhc2UgMTYpCQlCcmlkZ2UgSW5mb3JtYXRpb24gU3lzdGVtcworCQkJCTcxNyBPZmZpY2UgUGFya3dheQorCQkJCVN0LiBMb3VpcyBNTyA2MzE0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQUMgICAoaGV4KQkJRnJvbml1cyBTY2h3ZWlzc21hc2NoaW5lbgorMDAwM0FDICAgICAoYmFzZSAxNikJCUZyb25pdXMgU2Nod2Vpc3NtYXNjaGluZW4KKwkJCQlHdWVudGVyIEZyb25pdXMgU3RyLiAxCisJCQkJQS00NjAwIFdlaXMtVGhhbGhlaW0KKwkJCQlBVVNUUklBCisJCQkJQVVTVFJJQQorCiswMC0wMy1BRCAgIChoZXgpCQlFbWVyc29uIEVuZXJneSBTeXN0ZW1zIEFCCiswMDAzQUQgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBFbmVyZ3kgU3lzdGVtcyBBQgorCQkJCVNFLTE0MSA4MiBTdG9ja2hvbG0KKwkJCQlTV0VERU4KKworMDAtMDMtQUUgICAoaGV4KQkJQWxsaWVkIEFkdmFuY2VkIE1hbnVmYWN0dXJpbmcgUHRlLCBMdGQuCiswMDAzQUUgICAgIChiYXNlIDE2KQkJQWxsaWVkIEFkdmFuY2VkIE1hbnVmYWN0dXJpbmcgUHRlLCBMdGQuCisJCQkJNyBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIFBhcmsKKwkJCQkjMDItMDAKKwkJCQlTaW5nYXBvcmUgNjA5OTE5CisJCQkJU0lOR0FQT1JFCisKKzAwLTAzLUFGICAgKGhleCkJCVBhcmFnZWEgQ29tbXVuaWNhdGlvbnMKKzAwMDNBRiAgICAgKGJhc2UgMTYpCQlQYXJhZ2VhIENvbW11bmljYXRpb25zCisJCQkJMjA3IFBlcnJ5IFBhcmt3YXkKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUIwICAgKGhleCkJCVhzZW5zZSBUZWNobm9sb2d5IENvcnAuCiswMDAzQjAgICAgIChiYXNlIDE2KQkJWHNlbnNlIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkxMSBGLCAyMzIsIFNlYy4gMywgQ2hlbmdUZWggUmQuCisJCQkJVGFpcGVpIFRBSVdBTiwgMTAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy1CMSAgIChoZXgpCQlIb3NwaXJhIEluYy4KKzAwMDNCMSAgICAgKGJhc2UgMTYpCQlIb3NwaXJhIEluYy4KKwkJCQk3NTUgSmFydmlzIERyaXZlCisJCQkJTW9yZ2FuIEhpbGwgQ0EgOTUwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUIyICAgKGhleCkJCVJhZHdhcmUKKzAwMDNCMiAgICAgKGJhc2UgMTYpCQlSYWR3YXJlCisJCQkJOCBIYW1ycGUgSG9jaHZpbQorCQkJCUplcnVzYWxlbQorCQkJCUlTUkFFTAorCiswMC0wMy1CMyAgIChoZXgpCQlJQSBMaW5rIFN5c3RlbXMgQ28uLCBMdGQuCiswMDAzQjMgICAgIChiYXNlIDE2KQkJSUEgTGluayBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCTZGLTQsIE5vLiA4MSBIc2luIFRhaQorCQkJCVd1IFJkLiwgU2VjLiAxIEhzaWgtQ2hpaCwgVGFpcGVpIEhzaWVuLAorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy1CNCAgIChoZXgpCQlNYWNyb3RlayBJbnRlcm5hdGlvbmFsIENvcnAuCiswMDAzQjQgICAgIChiYXNlIDE2KQkJTWFjcm90ZWsgSW50ZXJuYXRpb25hbCBDb3JwLgorCQkJCTJGLCBOby4gMjgsIExhbmUgNDYKKwkJCQlLd2FuZyBGdSA2IFJvYWQsCisJCQkJVGFpcGVpIFRhaXBlaSBUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLUI1ICAgKGhleCkJCUVudHJhIFRlY2hub2xvZ3kgQ28uCiswMDAzQjUgICAgIChiYXNlIDE2KQkJRW50cmEgVGVjaG5vbG9neSBDby4KKwkJCQlGbC4gMywgTm8uIDUsIEFsbGV5IDIsCisJCQkJU3UtV2VpIExhbmUsIENodW5nLUNoZW5nIFJkLiwgSHNpbi1EaWVuLAorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy1CNiAgIChoZXgpCQlRU0kgQ29ycG9yYXRpb24KKzAwMDNCNiAgICAgKGJhc2UgMTYpCQlRU0kgQ29ycG9yYXRpb24KKwkJCQkyMjEyIFNvdXRoIFdlc3QgVGVtcGxlICM1MAorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1CNyAgIChoZXgpCQlaQUNDRVNTIFN5c3RlbXMKKzAwMDNCNyAgICAgKGJhc2UgMTYpCQlaQUNDRVNTIFN5c3RlbXMKKwkJCQkyNzUgU2hvcmVsaW5lIERyaXZlLCAjMTEwCisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1COCAgIChoZXgpCQlOZXRLaXQgU29sdXRpb25zLCBMTEMKKzAwMDNCOCAgICAgKGJhc2UgMTYpCQlOZXRLaXQgU29sdXRpb25zLCBMTEMKKwkJCQkxMTI1LUEgQnVzaW5lc3MgQ2VudGVyIENpcmNsZQorCQkJCVRob3VzYW5kIE9ha3MgQ0EgOTEzMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUI5ICAgKGhleCkJCUh1YWxvbmcgVGVsZWNvbSBDby4sIEx0ZC4KKzAwMDNCOSAgICAgKGJhc2UgMTYpCQlIdWFsb25nIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJOSBHdWFuZ2h1YSBTdC4KKwkJCQlDaGFuZ3pob3UsIEppYW5nc3UsIDIxMzAwMworCQkJCVAuUi4gQ0hJTkEKKwkJCQlDSElOQQorCiswMC0wMy1CQSAgIChoZXgpCQlPcmFjbGUgQ29ycG9yYXRpb24KKzAwMDNCQSAgICAgKGJhc2UgMTYpCQlPcmFjbGUgQ29ycG9yYXRpb24KKwkJCQkxNyBOZXR3b3JrIENpcmNsZQorCQkJCUJ1aWxkaW5nIDE3LCBVTVBLMTctMTMxCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQkIgICAoaGV4KQkJU2lnbmFsIENvbW11bmljYXRpb25zIExpbWl0ZWQKKzAwMDNCQiAgICAgKGJhc2UgMTYpCQlTaWduYWwgQ29tbXVuaWNhdGlvbnMgTGltaXRlZAorCQkJCVVuaXQgMjE3LCAyL0YsIEhLSVRDLAorCQkJCTcyIFRhdCBDaGVlIEF2ZW51ZSwgS0xOLiwKKwkJCQlIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtMDMtQkMgICAoaGV4KQkJQ09UIEdtYkgKKzAwMDNCQyAgICAgKGJhc2UgMTYpCQlDT1QgR21iSAorCQkJCUd1ZXRlcnN0cmFzc2UgNQorCQkJCTY0ODA3IERpZWJ1cmcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMy1CRCAgIChoZXgpCQlPbW5pQ2x1c3RlciBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDNCRCAgICAgKGJhc2UgMTYpCQlPbW5pQ2x1c3RlciBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk0OTUwIEJsdWUgTGFrZSBEcml2ZQorCQkJCVN1aXRlIDkwMAorCQkJCUJvY2EgUmF0b24gRkwgMzM0MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUJFICAgKGhleCkJCU5ldGlsaXR5CiswMDAzQkUgICAgIChiYXNlIDE2KQkJTmV0aWxpdHkKKwkJCQkyOTggU291dGggU3Vubnl2YWxlIEF2ZS4KKwkJCQlTdWllIDEwMgorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQkYgICAoaGV4KQkJQ2VudGVycG9pbnQgQnJvYWRiYW5kIFRlY2hub2xvZ2llcywgSW5jLgorMDAwM0JGICAgICAoYmFzZSAxNikJCUNlbnRlcnBvaW50IEJyb2FkYmFuZCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxNzQxIFRlY2hub2xvZ3kgRHJpdmUsCisJCQkJU3VpdGUgNDAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAtMTMxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQzAgICAoaGV4KQkJUkZUTkMgQ28uLCBMdGQuCiswMDAzQzAgICAgIChiYXNlIDE2KQkJUkZUTkMgQ28uLCBMdGQuCisJCQkJM0YsIDE2MjQtMjQsIEJvbmdjaGVuLWRvbmcKKwkJCQlLaW9uYWstZ3UsIFNlb3VsCisJCQkJU09VVEggS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtQzEgICAoaGV4KQkJUGFja2V0IER5bmFtaWNzIEx0ZAorMDAwM0MxICAgICAoYmFzZSAxNikJCVBhY2tldCBEeW5hbWljcyBMdGQKKwkJCQkyIEJ1Y2tzdGFuZSBQYXJrCisJCQkJRWRpbmJ1cmdoLCBTY290bGFuZAorCQkJCVVLIEVIMTAgR1BBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDMtQzIgICAoaGV4KQkJU29scGhvbmUgSy5LLgorMDAwM0MyICAgICAoYmFzZSAxNikJCVNvbHBob25lIEsuSy4KKwkJCQkyLTExLTEgS2FuZGF0c3VrYXNhLWNobworCQkJCUNoaXlhZGEsIFRva3lvCisJCQkJMTAxLTAwNDggSmFwYW4KKwkJCQlKQVBBTgorCiswMC0wMy1DMyAgIChoZXgpCQlNaWNyb25payBNdWx0aW1lZGlhCiswMDAzQzMgICAgIChiYXNlIDE2KQkJTWljcm9uaWsgTXVsdGltZWRpYQorCQkJCUJydWVja2Vuc3RyLiAyCisJCQkJRC01MTM3OSBMZXZlcmt1c2VuCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDMtQzQgICAoaGV4KQkJVG9tcmEgU3lzdGVtcyBBU0EKKzAwMDNDNCAgICAgKGJhc2UgMTYpCQlUb21yYSBTeXN0ZW1zIEFTQQorCQkJCURyZW5nc3J1ZGhhZ2VuIDIKKwkJCQlCb3ggMjc4IE4tMTM3MSBBc2tlcgorCQkJCU5PUldBWQorCQkJCU5PUldBWQorCiswMC0wMy1DNSAgIChoZXgpCQlNb2JvdGl4IEFHCiswMDAzQzUgICAgIChiYXNlIDE2KQkJTW9ib3RpeCBBRworCQkJCVdpbmdlcnRzd2VpbGVyaG9mIDYKKwkJCQlELTY3NzI0IEhvcmluZ2VuCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDMtQzYgICAoaGV4KQkJSUNVRSBTeXN0ZW1zLCBJbmMuCiswMDAzQzYgICAgIChiYXNlIDE2KQkJSUNVRSBTeXN0ZW1zLCBJbmMuCisJCQkJMTc0ODkgR2FsZSBBdmVudWUKKwkJCQlDaXR5IG9mIEluZHVzdHJ5IENBIDkxNzQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1DNyAgIChoZXgpCQlob3BmIEVsZWt0cm9uaWsgR21iSAorMDAwM0M3ICAgICAoYmFzZSAxNikJCWhvcGYgRWxla3Ryb25payBHbWJICisJCQkJTm90dGVib2htc3RyYXNzZSA0MQorCQkJCTU4NTExIEx1ZWRlbnNjaGVpZCAKKwkJCQlHRVJNQU5ZCisKKzAwLTAzLUM4ICAgKGhleCkJCUNNTCBFbWVyZ2VuY3kgU2VydmljZXMKKzAwMDNDOCAgICAgKGJhc2UgMTYpCQlDTUwgRW1lcmdlbmN5IFNlcnZpY2VzCisJCQkJNzUgQm91bGV2YXJkIGxhIFRlY2hub2xvZ2llcworCQkJCUh1bGwsIFF1ZWJlYyBKRTIzRzQKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDMtQzkgICAoaGV4KQkJVEVDT00gQ28uLCBMdGQuCiswMDAzQzkgICAgIChiYXNlIDE2KQkJVEVDT00gQ28uLCBMdGQuCisJCQkJMjMsIFImRCBSb2FkIDIKKwkJCQlTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW4tQ2h1ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLUNBICAgKGhleCkJCU1UUyBTeXN0ZW1zIENvcnAuCiswMDAzQ0EgICAgIChiYXNlIDE2KQkJTVRTIFN5c3RlbXMgQ29ycC4KKwkJCQkzMDAxIFNoZWxkb24gRHJpdmUKKwkJCQlDYXJ5LCBOQyAyNzUxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQ0IgICAoaGV4KQkJTmlwcG9uIFN5c3RlbXMgRGV2ZWxvcG1lbnQgQ28uLCBMdGQuCiswMDAzQ0IgICAgIChiYXNlIDE2KQkJTmlwcG9uIFN5c3RlbXMgRGV2ZWxvcG1lbnQgQ28uLCBMdGQuCisJCQkJMzAtMTIsIEtvbXlvLWNobywKKwkJCQlUYWthcmFidWthLWNpdHksIEh5b2dvLAorCQkJCTY2NS0wMDQ1IEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDMtQ0MgICAoaGV4KQkJTW9tZW50dW0gQ29tcHV0ZXIsIEluYy4KKzAwMDNDQyAgICAgKGJhc2UgMTYpCQlNb21lbnR1bSBDb21wdXRlciwgSW5jLgorCQkJCTE4MTUgQXN0b24gQXZlbnVlCisJCQkJU3VpdGUgMTA3CisJCQkJQ2FybHNiYWQgQ0EgOTIwMDgtNzMxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQ0QgICAoaGV4KQkJQ2xvdmVydGVjaCwgSW5jLgorMDAwM0NEICAgICAoYmFzZSAxNikJCUNsb3ZlcnRlY2gsIEluYy4KKwkJCQkzLTEtNSBOYWthLWNobyBNdXNhc2hpbm8tc2hpCisJCQkJVG9reW8gMTgwLTAwMDYgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMy1DRSAgIChoZXgpCQlFVEVOIFRlY2hub2xvZ2llcywgSW5jLgorMDAwM0NFICAgICAoYmFzZSAxNikJCUVURU4gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMkYsIE5vLiA5LCBMYW5lIDIzNSwgUGFvLUNoaWFvIFJkLiwKKwkJCQlIc2llbiBUaWVuIENpdHksIFRhaXBlaSBIc2llbiAyMzEKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtQ0YgICAoaGV4KQkJTXV4Y29tLCBJbmMuCiswMDAzQ0YgICAgIChiYXNlIDE2KQkJTXV4Y29tLCBJbmMuCisJCQkJRCA2MDIsIEJ1bmRhbmcgVGVjaG5vcGFyayAjMTUxCisJCQkJWWF0YXAgRG9uZywgQnVuZGFnIEd1LCBTdW5nbmFtIFNpLAorCQkJCUt5dW5na2kgRG8gS09SRUEgNDYzLTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy1EMCAgIChoZXgpCQlLT0FOS0VJU08gQ28uLCBMdGQuCiswMDAzRDAgICAgIChiYXNlIDE2KQkJS09BTktFSVNPIENvLiwgTHRkLgorCQkJCVppcCBDb2RlIDc5MS04MDQyCisJCQkJMjc5OCAzNm1pbmFtaXlvc2hpZGEtTWF0aSBNYXR1eWFtYS1DaXR5CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMy1EMSAgIChoZXgpCQlUYWtheWEgQ29ycG9yYXRpb24KKzAwMDNEMSAgICAgKGJhc2UgMTYpCQlUYWtheWEgQ29ycG9yYXRpb24KKwkJCQlEZXZlbG9wbWVudCBEaXZpc2lvbgorCQkJCTY2MS0xLCBJYmFyYS1jaG8gSWJhcmEtQ2l0eSBPa2F5YW1hLCA3MTUKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAzLUQyICAgKGhleCkJCUNyb3NzYmVhbSBTeXN0ZW1zLCBJbmMuCiswMDAzRDIgICAgIChiYXNlIDE2KQkJQ3Jvc3NiZWFtIFN5c3RlbXMsIEluYy4KKwkJCQk4MCBDZW50cmFsIFN0cmVldAorCQkJCUJveGJvcm91Z2ggTUEgMDE3MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUQzICAgKGhleCkJCUludGVybmV0IEVuZXJneSBTeXN0ZW1zLCBJbmMuCiswMDAzRDMgICAgIChiYXNlIDE2KQkJSW50ZXJuZXQgRW5lcmd5IFN5c3RlbXMsIEluYy4KKwkJCQk0MjE4IFRydW1ibyBDdC4KKwkJCQlGYWlyZmF4IFZBIDIyMDMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1ENCAgIChoZXgpCQlBbGxvcHRpYywgSW5jLgorMDAwM0Q0ICAgICAoYmFzZSAxNikJCUFsbG9wdGljLCBJbmMuCisJCQkJNjk2MCBLb2xsIENlbnRlciBQYXJrd2F5CisJCQkJU3VpdGUgMzAwCisJCQkJUGxlYXNhbnRvbiBDQSA5NDU2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRDUgICAoaGV4KQkJQWR2YW5jZWQgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDAzRDUgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCisJCQkJMTYtMTYgVGFrYXNoaW1hLWhvbmNobywKKwkJCQlOdW1henUgU2hpenVva2EsCisJCQkJNDEwMDA1NSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAzLUQ2ICAgKGhleCkJCVJBRFZpc2lvbiwgTHRkLgorMDAwM0Q2ICAgICAoYmFzZSAxNikJCVJBRFZpc2lvbiwgTHRkLgorCQkJCTI0IFJhdWwgV2FsbGVuYmVyZyBTdC4KKwkJCQlUZWwtQXZpdiA2OTcxOQorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wMy1ENyAgIChoZXgpCQlOZXh0TmV0IFdpcmVsZXNzLCBJbmMuCiswMDAzRDcgICAgIChiYXNlIDE2KQkJTmV4dE5ldCBXaXJlbGVzcywgSW5jLgorCQkJCTk1NTUgSmFtZXMgQXZlLiBTby4KKwkJCQlTdWl0ZSAyNzAKKwkJCQlCbG9vbWluZ3RvbiBNTiA1NTQzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRDggICAoaGV4KQkJaU1QYXRoIE5ldHdvcmtzLCBJbmMuCiswMDAzRDggICAgIChiYXNlIDE2KQkJaU1QYXRoIE5ldHdvcmtzLCBJbmMuCisJCQkJMTQzMSBNZXJpdmFsZSBSZC4KKwkJCQlOZXBlYW4sIE9udGFyaW8sCisJCQkJQ0FOQURBIEsyRSAxQjkKKwkJCQlDQU5BREEKKworMDAtMDMtRDkgICAoaGV4KQkJU2VjaGVyb24gU0EKKzAwMDNEOSAgICAgKGJhc2UgMTYpCQlTZWNoZXJvbiBTQQorCQkJCVVudGVybWF0dHdlZyA4CisJCQkJQ2gtMzAyNyBCZXJuCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wMy1EQSAgIChoZXgpCQlUYWthbWlzYXdhIEN5YmVybmV0aWNzIENvLiwgTHRkLgorMDAwM0RBICAgICAoYmFzZSAxNikJCVRha2FtaXNhd2EgQ3liZXJuZXRpY3MgQ28uLCBMdGQuCisJCQkJTmFrYW5vIEhlaXdhIEJsZGcuCisJCQkJNDggNS0yLUNob21lIENodW8sIE5ha2Fuby1rdSBUb2t5byAxNjQtMAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDMtREIgICAoaGV4KQkJQXBvZ2VlIEVsZWN0cm9uaWNzIENvcnAuCiswMDAzREIgICAgIChiYXNlIDE2KQkJQXBvZ2VlIEVsZWN0cm9uaWNzIENvcnAuCisJCQkJMzE0NSBEb25hbGQgRG91Z2xhcyBMb29wIFNvdXRoCisJCQkJU2FudGEgTW9uaWNhIENBIDkwNDA1LTMyMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLURDICAgKGhleCkJCUxleGFyIE1lZGlhLCBJbmMuCiswMDAzREMgICAgIChiYXNlIDE2KQkJTGV4YXIgTWVkaWEsIEluYy4KKwkJCQk0NzQyMSBCYXlzaWRlIFBhcmt3YXkKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1ERCAgIChoZXgpCQlDb21hcmsgQ29ycC4KKzAwMDNERCAgICAgKGJhc2UgMTYpCQlDb21hcmsgQ29ycC4KKwkJCQk5MyBXZXN0IFN0LgorCQkJCU1lZGZpZWxkIE1BIDAyMDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1ERSAgIChoZXgpCQlPVEMgV2lyZWxlc3MKKzAwMDNERSAgICAgKGJhc2UgMTYpCQlPVEMgV2lyZWxlc3MKKwkJCQk2MDIgQ2hhcmxvdCBBdmUuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLURGICAgKGhleCkJCURlc2FuYSBTeXN0ZW1zCiswMDAzREYgICAgIChiYXNlIDE2KQkJRGVzYW5hIFN5c3RlbXMKKwkJCQkxODA1IE1jQ2FuZGxlc3MgQXZlLgorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1FMCAgIChoZXgpCQlNb3Rvcm9sYSwgSW5jLgorMDAwM0UwICAgICAoYmFzZSAxNikJCU1vdG9yb2xhLCBJbmMuCisJCQkJMTMwMSBFLiBBbGdvbnF1aW4gUmQuCisJCQkJU2NoYXVtYnVyZyBJTCA2MDE5NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRTEgICAoaGV4KQkJV2lubWF0ZSBDb21tdW5pY2F0aW9uLCBJbmMuCiswMDAzRTEgICAgIChiYXNlIDE2KQkJV2lubWF0ZSBDb21tdW5pY2F0aW9uLCBJbmMuCisJCQkJOUYsTm8uMTExLTYsU2hpbmctRGUgUmQKKwkJCQlTYW4tQ2h1bmcsCisJCQkJVGFpcGVpICAgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy1FMiAgIChoZXgpCQlDb21zcGFjZSBDb3Jwb3JhdGlvbgorMDAwM0UyICAgICAoYmFzZSAxNikJCUNvbXNwYWNlIENvcnBvcmF0aW9uCisJCQkJOTU1IEZyZWVwb3J0IFBrd3kKKwkJCQlTdWl0ZSAxMDAKKwkJCQlDb3BwZWxsIFRYIDc1MDE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1FMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAzRTMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRTQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwM0U0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUU1ICAgKGhleCkJCUhlcm1zdGVkdCBTRworMDAwM0U1ICAgICAoYmFzZSAxNikJCUhlcm1zdGVkdCBTRworCQkJCUNhcmwtUmV1dGhlciAtIFN0ci4gMworCQkJCUQtNjgzMDUgTWFubmhlaW0KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMy1FNiAgIChoZXgpCQlFbnRvbmUsIEluYy4KKzAwMDNFNiAgICAgKGJhc2UgMTYpCQlFbnRvbmUsIEluYy4KKwkJCQkyNzU1IENhbXB1cyBEciBTdGUgMjM1CisJCQkJU2FuIE1hdGVvIENBICA5NDQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRTcgICAoaGV4KQkJTG9nb3N0ZWsgQ28uIEx0ZC4KKzAwMDNFNyAgICAgKGJhc2UgMTYpCQlMb2dvc3RlayBDby4gTHRkLgorCQkJCTE5dGggMTUgU3VudXN1LUFjYWRlbXkgVG93ZXIKKwkJCQkyNzctMTcgU3VuZ3N1LTJnYSwgU3VuZ2RvbmctZ3UKKwkJCQlTZW91bCBLT1JFQSAxMzMtMTIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLUU4ICAgKGhleCkJCVdhdmVsZW5ndGggRGlnaXRhbCBMaW1pdGVkCiswMDAzRTggICAgIChiYXNlIDE2KQkJV2F2ZWxlbmd0aCBEaWdpdGFsIExpbWl0ZWQKKwkJCQkxMiBWaW5jZW50IEF2ZW51ZQorCQkJCUNyb3duaGlsbCBCdXNpbmVzcyBQYXJrIE1pbHRvbiBLZXluZXMsIEIKKwkJCQlNSzggMEFCIE1LOCAwQUIgRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAzLUU5ICAgKGhleCkJCUFrYXJhIENhbmFkYSwgSW5jLgorMDAwM0U5ICAgICAoYmFzZSAxNikJCUFrYXJhIENhbmFkYSwgSW5jLgorCQkJCTE1MCBLYXRpbWF2aWsgUm9hZAorCQkJCUthbmF0YSBPbnRhcmlvCisJCQkJQ0FOQURBIEsyTCAyTjIKKwkJCQlDQU5BREEKKworMDAtMDMtRUEgICAoaGV4KQkJTWVnYSBTeXN0ZW0gVGVjaG5vbG9naWVzLCBJbmMuCiswMDAzRUEgICAgIChiYXNlIDE2KQkJTWVnYSBTeXN0ZW0gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMkYsIE5vLiA0MSwgTGFuZSA3NiwKKwkJCQlSdWkgS3VhbmcgUmQuLCBOZWkgSHUgMTE0CisJCQkJVGFpcGVpIFRhaXBlaSBUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLUVCICAgKGhleCkJCUF0cmljYQorMDAwM0VCICAgICAoYmFzZSAxNikJCUF0cmljYQorCQkJCTUgU2hlbmthciBTdC4gUC5PLkIuIDEyMjMxCisJCQkJSGV6ZWxpYSBJbmR1c3RyaWFsIEFyZWEKKwkJCQk0NjczMyA0NjczMyBJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDMtRUMgICAoaGV4KQkJSUNHIFJlc2VhcmNoLCBJbmMuCiswMDAzRUMgICAgIChiYXNlIDE2KQkJSUNHIFJlc2VhcmNoLCBJbmMuCisJCQkJNzc1IEIgVGhlIFF1ZWVucyBXYXkKKwkJCQlUb3JvbnRvLCBPbnRhcmlvCisJCQkJTThaIDFOMSBDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDMtRUQgICAoaGV4KQkJU2hpbmthd2EgRWxlY3RyaWMgQ28uLCBMdGQuCiswMDAzRUQgICAgIChiYXNlIDE2KQkJU2hpbmthd2EgRWxlY3RyaWMgQ28uLCBMdGQuCisJCQkJMy0yLTI0IDMgY2hvbWUKKwkJCQlLb25hbiBOYWtha3UgSGlyb3NoaW1hLCA3MzAtMDgyNSwKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAzLUVFICAgKGhleCkJCU1LTmV0IENvcnBvcmF0aW9uCiswMDAzRUUgICAgIChiYXNlIDE2KQkJTUtOZXQgQ29ycG9yYXRpb24KKwkJCQk3MTEtQiBDaGFyY290IEF2ZS4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRUYgICAoaGV4KQkJT25lbGluZSBBRworMDAwM0VGICAgICAoYmFzZSAxNikJCU9uZWxpbmUgQUcKKwkJCQlTdGVpbmZlbGRzdHIuIDMKKwkJCQkzOTE3OSBCYXJsZWJlbgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAzLUYwICAgKGhleCkJCVJlZGZlcm4gQnJvYWRiYW5kIE5ldHdvcmtzCiswMDAzRjAgICAgIChiYXNlIDE2KQkJUmVkZmVybiBCcm9hZGJhbmQgTmV0d29ya3MKKwkJCQlMZXZlbCAxLCAxIENlbnRyYWwgQXZlLiwKKwkJCQlBdXN0cmFsaWFuIFRlY2hub2xvZ3kgUGFyayBFdmVsZWlnaCwgTlNXCisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLTAzLUYxICAgKGhleCkJCUNpY2FkYSBTZW1pY29uZHVjdG9yLCBJbmMuCiswMDAzRjEgICAgIChiYXNlIDE2KQkJQ2ljYWRhIFNlbWljb25kdWN0b3IsIEluYy4KKwkJCQk4MTEgQmFydG9uIFNwcmluZ3MgUmQuCisJCQkJU3VpdGUgNTUwCisJCQkJQXVzdGluIFRYIDc4NzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1GMiAgIChoZXgpCQlTZW5lY2EgTmV0d29ya3MKKzAwMDNGMiAgICAgKGJhc2UgMTYpCQlTZW5lY2EgTmV0d29ya3MKKwkJCQkzMCBXZXN0IEd1ZGUgRHIuCisJCQkJU3VpdGUgMjAwCisJCQkJUm9ja3ZpbGxlIE1EIDIwODUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1GMyAgIChoZXgpCQlEYXp6bGUgTXVsdGltZWRpYSwgSW5jLgorMDAwM0YzICAgICAoYmFzZSAxNikJCURhenpsZSBNdWx0aW1lZGlhLCBJbmMuCisJCQkJNDcyMTEgQmF5c2lkZSBQYXJrd2F5CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRjQgICAoaGV4KQkJTmV0QnVybmVyCiswMDAzRjQgICAgIChiYXNlIDE2KQkJTmV0QnVybmVyCisJCQkJMTEzMjQgTGVnYWN5IENhbnlvbiBQbC4KKwkJCQlTYW4gRGllZ28gQ0EgOTIxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUY1ICAgKGhleCkJCUNoaXAyQ2hpcAorMDAwM0Y1ICAgICAoYmFzZSAxNikJCUNoaXAyQ2hpcAorCQkJCTIyNDkgWmFua2VyIFJkLgorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1GNiAgIChoZXgpCQlBbGxlZ3JvIE5ldHdvcmtzLCBJbmMuCiswMDAzRjYgICAgIChiYXNlIDE2KQkJQWxsZWdybyBOZXR3b3JrcywgSW5jLgorCQkJCTYzOTkgU2FuIElnbmFjaW8gQXZlbnVlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUY3ICAgKGhleCkJCVBsYXN0LUNvbnRyb2wgR21iSAorMDAwM0Y3ICAgICAoYmFzZSAxNikJCVBsYXN0LUNvbnRyb2wgR21iSAorCQkJCVdhbHRlci1GcmVpdGFnLVN0ci4gMTUKKwkJCQk0Mjg5OSBSZW1zY2hlaWQKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMy1GOCAgIChoZXgpCQlTYW5DYXN0bGUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDAzRjggICAgIChiYXNlIDE2KQkJU2FuQ2FzdGxlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTIxMDcgTm9ydGggRmlyc3QgU3RyZWV0CisJCQkJU3VpdGUgNTAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUY5ICAgKGhleCkJCVBsZWlhZGVzIENvbW11bmljYXRpb25zLCBJbmMuCiswMDAzRjkgICAgIChiYXNlIDE2KQkJUGxlaWFkZXMgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyODMwIE1hcmtldCBMb29wICMxMDQKKwkJCQlTb3V0aCBMYWtlIFRYIDc2MDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1GQSAgIChoZXgpCQlUaU1ldHJhIE5ldHdvcmtzCiswMDAzRkEgICAgIChiYXNlIDE2KQkJVGlNZXRyYSBOZXR3b3JrcworCQkJCTUwMCBFbGxpcyBTdC4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1GQiAgIChoZXgpCQlFTkVHQVRFIENvLixMdGQuCiswMDAzRkIgICAgIChiYXNlIDE2KQkJRU5FR0FURSBDby4sTHRkLgorCQkJCTMtMTQtNDAgU2Vucmlva2EsCisJCQkJU2V0dHN1LWNpdHkgT3Nha2EgNTY2LTg2ODYKKwkJCQlKQVBBTgorCiswMC0wMy1GQyAgIChoZXgpCQlJbnRlcnRleCBEYXRhIEFCCiswMDAzRkMgICAgIChiYXNlIDE2KQkJSW50ZXJ0ZXggRGF0YSBBQgorCQkJCVJpc3NuZWxlZGVuIDQ1CisJCQkJMTc0IDQ0IFN1bmRieWJlcmcKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtMDMtRkQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwM0ZEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUZFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDNGRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1GRiAgIChoZXgpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKzAwMDNGRiAgICAgKGJhc2UgMTYpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKwkJCQkxIE1pY3Jvc29mdCBXYXkKKwkJCQlSZWRtb25kIFdBIDk4MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0wMCAgIChoZXgpCQlMRVhNQVJLIElOVEVSTkFUSU9OQUwsIElOQy4KKzAwMDQwMCAgICAgKGJhc2UgMTYpCQlMRVhNQVJLIElOVEVSTkFUSU9OQUwsIElOQy4KKwkJCQk3NDAgTkVXIENJUkNMRSBSRCAtIEJMREcuICMwMzUKKwkJCQlMRVhJTkdUT04gS1kgNDA1NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTAxICAgKGhleCkJCU9zYWtpIEVsZWN0cmljIENvLiwgTHRkLgorMDAwNDAxICAgICAoYmFzZSAxNikJCU9zYWtpIEVsZWN0cmljIENvLiwgTHRkLgorCQkJCTExMzEsIEZ1amlrdWJvLCBNaXlvc2hpbWFjaGksCisJCQkJSXJ1bWEtZ3VuLCBTYWl0YW1hIDM1NC04NTAxLAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtMDIgICAoaGV4KQkJTmV4c2FuIFRlY2hub2xvZ2llcywgTHRkLgorMDAwNDAyICAgICAoYmFzZSAxNikJCU5leHNhbiBUZWNobm9sb2dpZXMsIEx0ZC4KKwkJCQlQYXJrZXIgQ2VudHJlCisJCQkJTWFuc2ZpZWxkIFJkCisJCQkJRGVyYnkgIERFMjEgNFNaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDQtMDMgICAoaGV4KQkJTmV4c2kgQ29ycG9yYXRpb24KKzAwMDQwMyAgICAgKGJhc2UgMTYpCQlOZXhzaSBDb3Jwb3JhdGlvbgorCQkJCTE5NTkgQ29uY291cnNlIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTA0ICAgKGhleCkJCU1ha2lubyBNaWxsaW5nIE1hY2hpbmUgQ28uLCBMdGQuCiswMDA0MDQgICAgIChiYXNlIDE2KQkJTWFraW5vIE1pbGxpbmcgTWFjaGluZSBDby4sIEx0ZC4KKwkJCQk0MDIzIE5ha2F0c3UsIEFpa2F3YS1tYWNoaSwKKwkJCQlBaWtvLWd1biBLYW5hZ2F3YSAyNDMtMDMwMworCQkJCUpBUEFOCisKKzAwLTA0LTA1ICAgKGhleCkJCUFDTiBUZWNobm9sb2dpZXMKKzAwMDQwNSAgICAgKGJhc2UgMTYpCQlBQ04gVGVjaG5vbG9naWVzCisJCQkJOUYsIEhleUthbmcgQi9ELCAxNTctMzYKKwkJCQlTYW5zdW5nLWRvbmcsIEthbmduYW1ndSwKKwkJCQlTZW91bCBLT1JFQSAjMTM1LTA5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC0wNiAgIChoZXgpCQlGYS4gTWV0YWJveCBBRworMDAwNDA2ICAgICAoYmFzZSAxNikJCUZhLiBNZXRhYm94IEFHCisJCQkJRGFpbWxlcnJpbmcgMzcsCisJCQkJRC0zMTEzNSBIaWxkc2hlaW0sCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDQtMDcgICAoaGV4KQkJVG9wY29uIFBvc2l0aW9uaW5nIFN5c3RlbXMsIEluYy4KKzAwMDQwNyAgICAgKGJhc2UgMTYpCQlUb3Bjb24gUG9zaXRpb25pbmcgU3lzdGVtcywgSW5jLgorCQkJCTU3NTggVy4gTGFzIFBvc2l0YXMgQmx2ZC4KKwkJCQlQbGVhc2FudG9uIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0wOCAgIChoZXgpCQlTYW5rbyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMDQwOCAgICAgKGJhc2UgMTYpCQlTYW5rbyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkzLTgwMiB1ZWRhIHRlbnBha3Uta3UKKwkJCQluYWdveWEgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC0wOSAgIChoZXgpCQlDcmF0b3MgTmV0d29ya3MKKzAwMDQwOSAgICAgKGJhc2UgMTYpCQlDcmF0b3MgTmV0d29ya3MKKwkJCQkzMTMgTGl0dGxldG9uIFJvYWQKKwkJCQlTdWl0ZSAyMAorCQkJCUNoZWxtc2ZvcmQgTUEgMDE4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTBBICAgKGhleCkJCVNhZ2UgU3lzdGVtcworMDAwNDBBICAgICAoYmFzZSAxNikJCVNhZ2UgU3lzdGVtcworCQkJCTE0MjAgSGFyYm9yIEJheSBQYXJrd2F5CisJCQkJU3VpdGUgMTYwCisJCQkJQWxhbWVkYSBDQSA5NDUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMEIgICAoaGV4KQkJM2NvbSBFdXJvcGUgTHRkLgorMDAwNDBCICAgICAoYmFzZSAxNikJCTNjb20gRXVyb3BlIEx0ZC4KKwkJCQkzY29tIENlbnRyZQorCQkJCUJvdW5kYXJ5IFdheSwgSGVtZWwgSGVtcHN0ZWFkIEhlcnRmb3Jkc2gKKwkJCQlIUDIgN1lVIFVLCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDQtMEMgICAoaGV4KQkJS0FOTk8gV29yaydzIEx0ZC4KKzAwMDQwQyAgICAgKGJhc2UgMTYpCQlLQU5OTyBXb3JrJ3MgTHRkLgorCQkJCTEtNS0yNSBLYW1pdG9taW5vLAorCQkJCUtva3VyYWtpdGEta3UsIEtpdGFreXVzeXUtY2l0eSwgRnVrdW9rYS0KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTA0LTBEICAgKGhleCkJCUF2YXlhLCBJbmMuCiswMDA0MEQgICAgIChiYXNlIDE2KQkJQXZheWEsIEluYy4KKwkJCQlPZmZpY2UgMUEzMjUKKwkJCQkzMDcgTWlkZGxldG93biBMaW5jcm9mdCBSb2FkCisJCQkJTGluY3JvZnQgTkogMDc3MzgtMTUyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMEUgICAoaGV4KQkJQVZNIEdtYkgKKzAwMDQwRSAgICAgKGJhc2UgMTYpCQlBVk0gR21iSAorCQkJCUFsdC1Nb2FiaXQgOTUKKwkJCQkxMDU1OSBCZXJsaW4KKwkJCQlHRVJNQU5ZCisKKzAwLTA0LTBGICAgKGhleCkJCUFzdXMgTmV0d29yayBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDQwRiAgICAgKGJhc2UgMTYpCQlBc3VzIE5ldHdvcmsgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTEtMSwgTm8uIDY3NSwgU2VjLiAxLCBLaW5nLWt1byBSZC4sCisJCQkJSHNpbmNodSwKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtMTAgICAoaGV4KQkJU3Bpbm5ha2VyIE5ldHdvcmtzLCBJbmMuCiswMDA0MTAgICAgIChiYXNlIDE2KQkJU3Bpbm5ha2VyIE5ldHdvcmtzLCBJbmMuCisJCQkJMTA3IEdhbW1hIERyaXZlCisJCQkJUGl0dHNidXJnaCBQQSAxNTIzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMTEgICAoaGV4KQkJSW5rcmEgTmV0d29ya3MsIEluYy4KKzAwMDQxMSAgICAgKGJhc2UgMTYpCQlJbmtyYSBOZXR3b3JrcywgSW5jLgorCQkJCTQwOTcxIEVuY3ljbG9wZWRpYSBDaXJjbGUKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0xMiAgIChoZXgpCQlXYXZlU21pdGggTmV0d29ya3MsIEluYy4KKzAwMDQxMiAgICAgKGJhc2UgMTYpCQlXYXZlU21pdGggTmV0d29ya3MsIEluYy4KKwkJCQk0MCBOYWdvZyBQYXJrCisJCQkJQWN0b24gTUEgMDE3MjAtMzQyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMTMgICAoaGV4KQkJU05PTSBUZWNobm9sb2d5IEFHCiswMDA0MTMgICAgIChiYXNlIDE2KQkJU05PTSBUZWNobm9sb2d5IEFHCisJCQkJSGVsbWhvbHR6c3RyYXNzZSAyLTkKKwkJCQlELTEwNTg3IEJlcmxpbgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTA0LTE0ICAgKGhleCkJCVVtZXphd2EgTXVzZW4gRGVua2kgQ28uLCBMdGQuCiswMDA0MTQgICAgIChiYXNlIDE2KQkJVW1lemF3YSBNdXNlbiBEZW5raSBDby4sIEx0ZC4KKwkJCQkxNC0zLCBNaW5hbWkgMSwgTmlzaGkgOCwKKwkJCQlDaHVvLWt1LCBTYXBwb3JvLAorCQkJCUhva2thaWRvIEpBUEFOIDA2MC0wMDYxCisJCQkJSkFQQU4KKworMDAtMDQtMTUgICAoaGV4KQkJUmFzdGVtZSBTeXN0ZW1zIENvLiwgTHRkLgorMDAwNDE1ICAgICAoYmFzZSAxNikJCVJhc3RlbWUgU3lzdGVtcyBDby4sIEx0ZC4KKwkJCQk4ODYtMiBOaWhvbmdpIE5ha2Fnb3UtbXVyYQorCQkJCU5ha2FrdWJpa2ktZ3VuIE5paWdhdGEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTA0LTE2ICAgKGhleCkJCVBhcmtzIFMvQSBDb211bmljYWNvZXMgRGlnaXRhaXMKKzAwMDQxNiAgICAgKGJhc2UgMTYpCQlQYXJrcyBTL0EgQ29tdW5pY2Fjb2VzIERpZ2l0YWlzCisJCQkJQXYuIFBlcm5hbWJ1Y28sIDEwMDEKKwkJCQlQb3J0by1BbGVncmUtUlMgQ0VQIDkwMjQwLTAwNAorCQkJCUJSQVpJTAorCQkJCUJSQVpJTAorCiswMC0wNC0xNyAgIChoZXgpCQlFTEFVIEFHCiswMDA0MTcgICAgIChiYXNlIDE2KQkJRUxBVSBBRworCQkJCURpbGxiZXJnIDEyCisJCQkJOTc4MjggTWFya3RoZWlkZW5mZWxkCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDQtMTggICAoaGV4KQkJVGVsdHJvbmljIFMuQS5VLgorMDAwNDE4ICAgICAoYmFzZSAxNikJCVRlbHRyb25pYyBTLkEuVS4KKwkJCQlQb2xpZ29ubyBkZSBNYWxwaWNhCisJCQkJQ2FsbGUgRiBPZXN0ZSA1MDA1NyBaYXJhZ296YQorCQkJCVNQQUlOCisJCQkJU1BBSU4KKworMDAtMDQtMTkgICAoaGV4KQkJRmliZXJjeWNsZSBOZXR3b3JrcywgSW5jLgorMDAwNDE5ICAgICAoYmFzZSAxNikJCUZpYmVyY3ljbGUgTmV0d29ya3MsIEluYy4KKwkJCQkyMCBTb3V0aCBTYW50YSBDcnV6IEF2ZS4KKwkJCQlTdWl0ZSAxMTIKKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTFBICAgKGhleCkJCUluZXMgVGVzdCBhbmQgTWVhc3VyZW1lbnQgR21iSCAmIENvS0cKKzAwMDQxQSAgICAgKGJhc2UgMTYpCQlJbmVzIFRlc3QgYW5kIE1lYXN1cmVtZW50IEdtYkggJiBDb0tHCisJCQkJQW4gZGVyIE11ZWhsZW5hdWUgNQorCQkJCUJhZCBOZW5uZG9yZiAzMTU0MgorCQkJCUdFUk1BTlkKKworMDAtMDQtMUIgICAoaGV4KQkJQnJpZGdld29ya3MgTHRkLgorMDAwNDFCICAgICAoYmFzZSAxNikJCUJyaWRnZXdvcmtzIEx0ZC4KKwkJCQkxMzUgU29tZXJmb3JkIFJvYWQKKwkJCQlDaHJpc3RjaHVyY2ggRE9SU0VUIEJIMjMgM1BZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDQtMUMgICAoaGV4KQkJaXBEaWFsb2csIEluYy4KKzAwMDQxQyAgICAgKGJhc2UgMTYpCQlpcERpYWxvZywgSW5jLgorCQkJCTE3NjIgVGVjaG5vbG9neSBEcml2ZQorCQkJCVN1aXRlIDEyNAorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0xRCAgIChoZXgpCQlDb3JlZ2Egb2YgQW1lcmljYQorMDAwNDFEICAgICAoYmFzZSAxNikJCUNvcmVnYSBvZiBBbWVyaWNhCisJCQkJUC5PLiBCb3ggMTU5CisJCQkJQm90aGVsbCBXQSA5ODA0MS0wMTU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0xRSAgIChoZXgpCQlTaGlrb2t1IEluc3RydW1lbnRhdGlvbiBDby4sIEx0ZC4KKzAwMDQxRSAgICAgKGJhc2UgMTYpCQlTaGlrb2t1IEluc3RydW1lbnRhdGlvbiBDby4sIEx0ZC4KKwkJCQk3NzcsIE9vc2FjaG91LCBaZW50c3V1amlzaGksCisJCQkJS2FnYXdhLCA3NjUtMDA1MiwKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTA0LTFGICAgKGhleCkJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCwgSW5jLgorMDAwNDFGICAgICAoYmFzZSAxNikJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCwgSW5jLgorCQkJCTItNi0yMSBNaW5hbWktQW95YW1hCisJCQkJTWluYXRvLWt1IFRva3lvIDEwNy0wMDYyCisJCQkJSkFQQU4KKworMDAtMDQtMjAgICAoaGV4KQkJU2xpbSBEZXZpY2VzLCBJbmMuCiswMDA0MjAgICAgIChiYXNlIDE2KQkJU2xpbSBEZXZpY2VzLCBJbmMuCisJCQkJMTIgU291dGggRmlyc3QgU3QuCisJCQkJU3VpdGUgMTAzCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTIxICAgKGhleCkJCU9jdWxhciBOZXR3b3JrcworMDAwNDIxICAgICAoYmFzZSAxNikJCU9jdWxhciBOZXR3b3JrcworCQkJCTEyNzAwLCBGYWlyIExha2VzIENpcmNsZQorCQkJCVN1aXRlIDEwMAorCQkJCUZhaXJmYXggVkEgMjIwMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTIyICAgKGhleCkJCUdvcmRvbiBLYXBlcywgSW5jLgorMDAwNDIyICAgICAoYmFzZSAxNikJCUdvcmRvbiBLYXBlcywgSW5jLgorCQkJCTU1MjAgVy4gVG91aHkgQXZlLgorCQkJCVNrb2tpZSBJTCA2MDA3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMjMgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzAwMDQyMyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCU1TOiAgSkYzLTQyMAorCQkJCTIxMTEgTkUgMjV0aCBBdmVudWUKKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTI0ICAgKGhleCkJCVRNQyBzLnIubC4KKzAwMDQyNCAgICAgKGJhc2UgMTYpCQlUTUMgcy5yLmwuCisJCQkJMjAyIFZpYSBBLiBDb3N0YQorCQkJCTQwMTM0IC0gQm9sb2duYQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtMDQtMjUgICAoaGV4KQkJQXRtZWwgQ29ycG9yYXRpb24KKzAwMDQyNSAgICAgKGJhc2UgMTYpCQlBdG1lbCBDb3Jwb3JhdGlvbgorCQkJCU11bHRpbWVkaWEgJiBDb21tdW5pY2F0aW9ucyBHcm91cAorCQkJCTIyMDAgR2F0ZXdheSBDZW50cmUsIFN1aXRlIDIwMQorCQkJCU1vcnJpc3ZpbGxlIE5DIDI3NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0yNiAgIChoZXgpCQlBdXRvc3lzCiswMDA0MjYgICAgIChiYXNlIDE2KQkJQXV0b3N5cworCQkJCTIwMiBJbHNpbnBhc3RlbCwKKwkJCQk3MjEtMiBNT0szLURvbmcgWWFuZyBDaGVvbi1rdSwKKwkJCQlTZW91bCBTZW91bCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC0yNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA0MjcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMjggICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNDI4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTI5ICAgKGhleCkJCVBpeG9yZCBDb3Jwb3JhdGlvbgorMDAwNDI5ICAgICAoYmFzZSAxNikJCVBpeG9yZCBDb3Jwb3JhdGlvbgorCQkJCVJvb20gMywgMUYsIE5vLiAxMzk2LAorCQkJCUNodW5nIENoZW5nIFJkLiBUYW95dWFuIENpdHksIFRhb3l1YW4gSHMKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtMkEgICAoaGV4KQkJV2lyZWxlc3MgTmV0d29ya3MsIEluYy4KKzAwMDQyQSAgICAgKGJhc2UgMTYpCQlXaXJlbGVzcyBOZXR3b3JrcywgSW5jLgorCQkJCTIzMjIgRWwgQ2FtaW5vIFJlYWwKKwkJCQlTYW4gTWF0ZW8gQ0EgOTQ0MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTJCICAgKGhleCkJCUlUIEFjY2VzcyBDby4sIEx0ZC4KKzAwMDQyQiAgICAgKGJhc2UgMTYpCQlJVCBBY2Nlc3MgQ28uLCBMdGQuCisJCQkJMy0xNy02LCBTaGlueW9rb2hhbWEsIEtvdWhva3Uta3UKKwkJCQlZb2tvaGFtYS1zaGksIEthbmFnYXdhIDIyMi04NTQ1CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC0yQyAgIChoZXgpCQlNaW5ldCwgSW5jLgorMDAwNDJDICAgICAoYmFzZSAxNikJCU1pbmV0LCBJbmMuCisJCQkJM0YgU2UtQSBWZW50dXJlIFRvd2VyCisJCQkJOTQ2LTEyIERhZWNoaS1kb25nLCBHYW5nbmFtLWd1LCBTZW91bAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LTJEICAgKGhleCkJCVNhcmlhbiBTeXN0ZW1zLCBMdGQuCiswMDA0MkQgICAgIChiYXNlIDE2KQkJU2FyaWFuIFN5c3RlbXMsIEx0ZC4KKwkJCQlGbG9vZGxpZ2h0IEhvdXNlCisJCQkJUml2ZXJzaWRlIEJ1c2luZXNzIFBhcmsgIExlZWRzIFJvYWQsIElsaworCQkJCVdlc3QgWW9ya3NoaXJlIEVOR0xBTkQgTFMyOSA4SloKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC0yRSAgIChoZXgpCQlOZXRvdXMgVGVjaG5vbG9naWVzLCBMdGQuCiswMDA0MkUgICAgIChiYXNlIDE2KQkJTmV0b3VzIFRlY2hub2xvZ2llcywgTHRkLgorCQkJCTEwMDYsIEJsb2NrIEEsCisJCQkJR29vZFZpZXcgSW5kdXN0cmlhbCBCdWlsZGluZywgS2luIEZhdCBTdAorCQkJCUhPTkcgS09ORworCQkJCUhPTkcgS09ORworCiswMC0wNC0yRiAgIChoZXgpCQlJbnRlcm5hdGlvbmFsIENvbW11bmljYXRpb25zIFByb2R1Y3RzLCBJbmMuCiswMDA0MkYgICAgIChiYXNlIDE2KQkJSW50ZXJuYXRpb25hbCBDb21tdW5pY2F0aW9ucyBQcm9kdWN0cywgSW5jLgorCQkJCTQzMjUgV29vZGxhbmQgUGFyayBEcml2ZQorCQkJCVN1aXRlIDEwMQorCQkJCVdlc3QgTWVsYm91cm5lIEZMIDMyOTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0zMCAgIChoZXgpCQlOZXRnZW0KKzAwMDQzMCAgICAgKGJhc2UgMTYpCQlOZXRnZW0KKwkJCQkyNyBydWUgZCdPcmxlYW5zCisJCQkJOTIgMjAwIE5ldWlsbHQgcy9TZWluZQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wNC0zMSAgIChoZXgpCQlHbG9iYWxTdHJlYW1zLCBJbmMuCiswMDA0MzEgICAgIChiYXNlIDE2KQkJR2xvYmFsU3RyZWFtcywgSW5jLgorCQkJCTI4ODIgUHJvc3BlY3QgUGFyayBEcml2ZQorCQkJCVN1aXRlIDM1MAorCQkJCVJhbmNobyBDb3Jkb3ZhIENBIDk1NjcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0zMiAgIChoZXgpCQlWb3lldHJhIFR1cnRsZSBCZWFjaCwgSW5jLgorMDAwNDMyICAgICAoYmFzZSAxNikJCVZveWV0cmEgVHVydGxlIEJlYWNoLCBJbmMuCisJCQkJMTUwIENsZWFyYnJvb2sgUm9hZCwgU3VpdGUgMTYyCisJCQkJRWxtc2ZvcmQgTlkgMTA1MjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTMzICAgKGhleCkJCUN5YmVyYm9hcmQgQS9TCiswMDA0MzMgICAgIChiYXNlIDE2KQkJQ3liZXJib2FyZCBBL1MKKwkJCQlLbG9ldmVybWFya2VuIDEyMAorCQkJCURLLTcxOTAgQmlsbHVuZAorCQkJCURFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLTA0LTM0ICAgKGhleCkJCUFjY2VsZW50IFN5c3RlbXMsIEluYy4KKzAwMDQzNCAgICAgKGJhc2UgMTYpCQlBY2NlbGVudCBTeXN0ZW1zLCBJbmMuCisJCQkJMjYyMCBSaWRnZXdvb2QgUmQuLAorCQkJCVN1aXRlIDMwMAorCQkJCUFrcm9uIE9IIDQ0MzEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0zNSAgIChoZXgpCQlDb21wdGVrIEludGVybmF0aW9uYWwsIEluYy4KKzAwMDQzNSAgICAgKGJhc2UgMTYpCQlDb21wdGVrIEludGVybmF0aW9uYWwsIEluYy4KKwkJCQkxMSBGbG9vZGxpZ2h0IFN0LgorCQkJCUJvc3RvbiBNQSAwMjEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMzYgICAoaGV4KQkJRUxBTnNhdCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDQzNiAgICAgKGJhc2UgMTYpCQlFTEFOc2F0IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCU5vLiAxMSwgTGFuZSAxOSwgUGF0ZWggUm9hZCwKKwkJCQlIc2luY2h1IFRBSVdBTiwgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC0zNyAgIChoZXgpCQlQb3dpbiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBJbmMuCiswMDA0MzcgICAgIChiYXNlIDE2KQkJUG93aW4gSW5mb3JtYXRpb24gVGVjaG5vbG9neSwgSW5jLgorCQkJCThGLCBOby4gNzAsIFpob3UtWiBTdC4KKwkJCQkxMTQgTmVpLUh1IFRhaXBlaQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC0zOCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMDQzOCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlEZXBhcnRtZW50IDY4MDAKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMCBCcmFtcHRvbiwgT04KKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDQtMzkgICAoaGV4KQkJUm9zY28gRW50ZXJ0YWlubWVudCBUZWNobm9sb2d5LCBJbmMuCiswMDA0MzkgICAgIChiYXNlIDE2KQkJUm9zY28gRW50ZXJ0YWlubWVudCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjE4MSBOVyBGcm9udCBBdmUuCisJCQkJUG9ydGxhbmQgT1IgOTcyMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTNBICAgKGhleCkJCUludGVsbGlnZW50IFRlbGVjb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNDNBICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IFRlbGVjb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTE2ODctMiwgU2luaWwtZG9uZworCQkJCURhZWRvay1ndSwgVGFlam9uCisJCQkJU09VVEggS09SRUEgMzA2LTIzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC0zQiAgIChoZXgpCQlMYXZhIENvbXB1dGVyIE1mZy4sIEluYy4KKzAwMDQzQiAgICAgKGJhc2UgMTYpCQlMYXZhIENvbXB1dGVyIE1mZy4sIEluYy4KKwkJCQkyIFZ1bGNhbiBTdC4KKwkJCQlFdG9iaWNva2UsIE9udGFyaW8KKwkJCQlDQU5BREEgTTlXLTFMMgorCQkJCUNBTkFEQQorCiswMC0wNC0zQyAgIChoZXgpCQlTT05PUyBDby4sIEx0ZC4KKzAwMDQzQyAgICAgKGJhc2UgMTYpCQlTT05PUyBDby4sIEx0ZC4KKwkJCQkjNzI1IFB1bmdzYW4gQXB0LiBGYWN0b3J5CisJCQkJMTE0MS0yIEJhaWtzZW9rLCBpbHNhbiwgR295YW5nLCBHeWVvbmdnaQorCQkJCVJlcC4gb2YgS09SRUEgWmlwIENvZGU6IDQxMS04MTUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtM0QgICAoaGV4KQkJSU5ERUwgQUcKKzAwMDQzRCAgICAgKGJhc2UgMTYpCQlJTkRFTCBBRworCQkJCVR1Zml3aXMgMjYKKwkJCQlDSC04MzMyIFJ1c3Npa29uCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wNC0zRSAgIChoZXgpCQlUZWxlbmNvbW0KKzAwMDQzRSAgICAgKGJhc2UgMTYpCQlUZWxlbmNvbW0KKwkJCQkyNTUxIFdhbHNoIEF2ZW51ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0zRiAgIChoZXgpCQlFU1RlZW0gV2lyZWxlc3MgTW9kZW1zLCBJbmMKKzAwMDQzRiAgICAgKGJhc2UgMTYpCQlFU1RlZW0gV2lyZWxlc3MgTW9kZW1zLCBJbmMKKwkJCQk0MTUgTi4gUXVheSBTdC4sIFN1aXRlIDQKKwkJCQlLZW5uZXdpY2sgV0EgOTkzMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTQwICAgKGhleCkJCWN5YmVyUElYSUUsIEluYy4KKzAwMDQ0MCAgICAgKGJhc2UgMTYpCQljeWJlclBJWElFLCBJbmMuCisJCQkJNjggRS4gV2Fja2VyIFBsYWNlLAorCQkJCVN1aXRlIDYwMAorCQkJCUNoaWNhZ28gSUwgNjA2MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTQxICAgKGhleCkJCUhhbGYgRG9tZSBTeXN0ZW1zLCBJbmMuCiswMDA0NDEgICAgIChiYXNlIDE2KQkJSGFsZiBEb21lIFN5c3RlbXMsIEluYy4KKwkJCQkxNTUgQi0xIE1vZmZldCBQYXJrIERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC00MiAgIChoZXgpCQlOQUNUCiswMDA0NDIgICAgIChiYXNlIDE2KQkJTkFDVAorCQkJCTE5MSBXLiA1MjAwIE4uCisJCQkJUHJvdm8gVVQgODQ2MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTQzICAgKGhleCkJCUFnaWxlbnQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA0NDMgICAgIChiYXNlIDE2KQkJQWdpbGVudCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk1MzAxIFN0ZXZlbnMgQ3JlZWsgQm91bGV2YXJkCisJCQkJTWFpbHN0b3AgNTRMLVNRCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTQ0ICAgKGhleCkJCVdlc3Rlcm4gTXVsdGlwbGV4IENvcnBvcmF0aW9uCiswMDA0NDQgICAgIChiYXNlIDE2KQkJV2VzdGVybiBNdWx0aXBsZXggQ29ycG9yYXRpb24KKwkJCQkxMTk2IEJvcnJlZ2FzIEF2ZW51ZQorCQkJCVN1aXRlIDUwMAorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNDUgICAoaGV4KQkJTE1TIFNrYWxhciBJbnN0cnVtZW50cyBHbWJICiswMDA0NDUgICAgIChiYXNlIDE2KQkJTE1TIFNrYWxhciBJbnN0cnVtZW50cyBHbWJICisJCQkJV2lsbGktRWljaGxlci1TdHIgMTEKKwkJCQlELTM3MDc5IEdvZXR0aW5nZW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC00NiAgIChoZXgpCQlDWVpFTlRFQ0ggQ28uLCBMdGQuCiswMDA0NDYgICAgIChiYXNlIDE2KQkJQ1laRU5URUNIIENvLiwgTHRkLgorCQkJCTYwMSBFdW5reWVvbmcgQi9EIDE0MS0zMSwKKwkJCQlTYW1zdW5nLWRvbmcsIEdhbmduYW0tZ3UsIFNlb3VsLAorCQkJCTEzNS04NzYgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtNDcgICAoaGV4KQkJQWNyb3dhdmUgU3lzdGVtcyBDby4sIEx0ZC4KKzAwMDQ0NyAgICAgKGJhc2UgMTYpCQlBY3Jvd2F2ZSBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCU1hcnUgQi9EIDg2LTYsIE5vbmh5dW4tRG9uZworCQkJCUdhbmduYW0tZ3UsIFNlb3VsCisJCQkJS09SRUEgemlwOiAxMzUtODE4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LTQ4ICAgKGhleCkJCVBvbGFyb2lkIENvcnBvcmF0aW9uCiswMDA0NDggICAgIChiYXNlIDE2KQkJUG9sYXJvaWQgQ29ycG9yYXRpb24KKwkJCQkzMDAgQmFrZXIgQXZlbnVlCisJCQkJQ29uY29yZCBNQSAwMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNDkgICAoaGV4KQkJTWFwbGV0cmVlIE5ldHdvcmtzCiswMDA0NDkgICAgIChiYXNlIDE2KQkJTWFwbGV0cmVlIE5ldHdvcmtzCisJCQkJMzE1IE5vcndvb2QgUGFyayBTb3V0aAorCQkJCU5vcndvb2QgTUEgMDIwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTRBICAgKGhleCkJCWlQb2xpY3kgTmV0d29ya3MsIEluYy4KKzAwMDQ0QSAgICAgKGJhc2UgMTYpCQlpUG9saWN5IE5ldHdvcmtzLCBJbmMuCisJCQkJNDc0NjcgRnJlbW9udCBCbHZkLgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTRCICAgKGhleCkJCU5WSURJQQorMDAwNDRCICAgICAoYmFzZSAxNikJCU5WSURJQQorCQkJCTM1MzUgTW9ucm9lIFN0LgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC00QyAgIChoZXgpCQlKRU5PUFRJSworMDAwNDRDICAgICAoYmFzZSAxNikJCUpFTk9QVElLCisJCQkJTGFzZXIsIE9wdGlrLCBTeXN0ZW1lIEdtYkgKKwkJCQlFaW5rYXVmLCBQcnVzc2luZ3N0ci4gNDEgRC0wNzc0NSBKZW5hCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDQtNEQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNDREICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTRFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDQ0RSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC00RiAgIChoZXgpCQlMZXVraGFyZHQgU3lzdGVtZWxla3Ryb25payBHbWJICiswMDA0NEYgICAgIChiYXNlIDE2KQkJTGV1a2hhcmR0IFN5c3RlbWVsZWt0cm9uaWsgR21iSAorCQkJCVJ1ZG9sZi1EaWVzZWwtU3RyLiAxNworCQkJCTc4NTMyIFR1dHRsaW5nZW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC01MCAgIChoZXgpCQlETUQgQ29tcHV0ZXJzIFNSTAorMDAwNDUwICAgICAoYmFzZSAxNikJCURNRCBDb21wdXRlcnMgU1JMCisJCQkJVmlhIE1vbnZpc28sIDE0CisJCQkJMTAwOTAgVmlsbGFyYmFzc2UgKFRvKQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtMDQtNTEgICAoaGV4KQkJTWVkcmFkLCBJbmMuCiswMDA0NTEgICAgIChiYXNlIDE2KQkJTWVkcmFkLCBJbmMuCisJCQkJT25lIE1lZHJhZCBEcml2ZQorCQkJCUluZGlhbm9sYSBQQSAxNTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNTIgICAoaGV4KQkJUm9ja2V0TG9naXgsIEluYy4KKzAwMDQ1MiAgICAgKGJhc2UgMTYpCQlSb2NrZXRMb2dpeCwgSW5jLgorCQkJCTY1MDQgSW50ZXJuYXRpb25hbCBQYXJrd2F5CisJCQkJU3VpdGUgMTIwMAorCQkJCVBsYW5vIFRYIDc1MDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC01MyAgIChoZXgpCQlZb3R0YVlvdHRhLCBJbmMuCiswMDA0NTMgICAgIChiYXNlIDE2KQkJWW90dGFZb3R0YSwgSW5jLgorCQkJCTYwMjAtIDEwNCBTdHJlZXQKKwkJCQlFZG1vbnRvbiwgQUIgIFQ2SCA1UzQKKwkJCQlDQU5BREEKKworMDAtMDQtNTQgICAoaGV4KQkJUXVhZHJpZ2EgVUsKKzAwMDQ1NCAgICAgKGJhc2UgMTYpCQlRdWFkcmlnYSBVSworCQkJCUJhaXJkIEhvdXNlCisJCQkJQXJsaW5ndG9uIEJ1c2luZXNzIFBhcmsgVGhlYWxlIFJlYWRpbmcgUgorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC01NSAgIChoZXgpCQlBTlRBUkEubmV0CiswMDA0NTUgICAgIChiYXNlIDE2KQkJQU5UQVJBLm5ldAorCQkJCTc0NyBDYW1kZW4gQXZlLgorCQkJCVN1aXRlIEEKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNTYgICAoaGV4KQkJTW90b3JvbGEgUFRQIEluYworMDAwNDU2ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIFBUUCBJbmMKKwkJCQlVbml0IDFBLCBMaW5oYXkgQnVzaW5lc3MgUGFyaywKKwkJCQlFYXN0ZXJuIFJvYWQsCisJCQkJQXNoYnVydG9uIERldm9uIFRRMTMgN1VQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDQtNTcgICAoaGV4KQkJVW5pdmVyc2FsIEFjY2VzcyBUZWNobm9sb2d5LCBJbmMuCiswMDA0NTcgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIEFjY2VzcyBUZWNobm9sb2d5LCBJbmMuCisJCQkJMiBGbC4sIE5vLiA1LCBBbGxleSAyMiwKKwkJCQlMYW5lIDUxMywgSnVpIEt1YW5nIFJvYWQsCisJCQkJTmVpIEh1IFRhaXBlaSwgVEFJV0FOIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtNTggICAoaGV4KQkJRnVzaW9uIFggQ28uLCBMdGQuCiswMDA0NTggICAgIChiYXNlIDE2KQkJRnVzaW9uIFggQ28uLCBMdGQuCisJCQkJIzkwNSBIYW5zb2wgVGVjaG5vIFRvd24KKwkJCQkxNi0xIERhbmctSnVuZyBEb25nIEt1bi1QbyBLeXVuZy1LaSBkbyBLCisJCQkJWmlwIDQzNS0wMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtNTkgICAoaGV4KQkJVmVyaXN0YXIgQ29ycG9yYXRpb24KKzAwMDQ1OSAgICAgKGJhc2UgMTYpCQlWZXJpc3RhciBDb3Jwb3JhdGlvbgorCQkJCTcyNyBBbGxzdG9uIFdheQorCQkJCUJlcmtlbGV5IENBIDk0NzEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC01QSAgIChoZXgpCQlUaGUgTGlua3N5cyBHcm91cCwgSW5jLgorMDAwNDVBICAgICAoYmFzZSAxNikJCVRoZSBMaW5rc3lzIEdyb3VwLCBJbmMuCisJCQkJMTc0MDEgQXJtc3Ryb25nIEF2ZS4KKwkJCQlJcnZpbmUgQ0EgOTI2MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTVCICAgKGhleCkJCVRlY2hzYW4gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDA0NUIgICAgIChiYXNlIDE2KQkJVGVjaHNhbiBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQlOb3J0aCBXaW5nCisJCQkJNDMgSGlnaCBTdHJlZXQgRmFyZWhhbSwgSGFudHMgUDAxNiA3QlEKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA0LTVDICAgKGhleCkJCU1vYml3YXZlIFB0ZSBMdGQKKzAwMDQ1QyAgICAgKGJhc2UgMTYpCQlNb2Jpd2F2ZSBQdGUgTHRkCisJCQkJQmxrIDE2LCBLYWxsYW5nIFBsYWNlCisJCQkJIzA3LTAxLzA0CisJCQkJMzM5MTU2CisJCQkJU0lOR0FQT1JFCisKKzAwLTA0LTVEICAgKGhleCkJCUJFS0EgRWxla3Ryb25paworMDAwNDVEICAgICAoYmFzZSAxNikJCUJFS0EgRWxla3Ryb25paworCQkJCVNpZW1lbnN0cmFzc2UgMjkKKwkJCQlFcmZ0c3RhZHQgNTAzNzQKKwkJCQlHRVJNQU5ZCisKKzAwLTA0LTVFICAgKGhleCkJCVBvbHlUcmF4IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQUcKKzAwMDQ1RSAgICAgKGJhc2UgMTYpCQlQb2x5VHJheCBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IEFHCisJCQkJTWFydGluLUtvbGxhciAtIFN0ci4gNQorCQkJCUQtODE4MjkgTXVuY2hlbgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTA0LTVGICAgKGhleCkJCUV2YWx1ZSBUZWNobm9sb2d5LCBJbmMuCiswMDA0NUYgICAgIChiYXNlIDE2KQkJRXZhbHVlIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk1Ri03LCBOby4gMTMwLCBDaGllbiBLYW5nIFJvYWQsCisJCQkJQ2h1bmcgSG8gQ2l0eSwgVGFpcGVpCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LTYwICAgKGhleCkJCUtuaWxpbmsgVGVjaG5vbG9neSwgSW5jLgorMDAwNDYwICAgICAoYmFzZSAxNikJCUtuaWxpbmsgVGVjaG5vbG9neSwgSW5jLgorCQkJCTEwRiwgIzk2LCBIc2luIFRhaSBXdSBSZC4sCisJCQkJU2VjLiAxLCBIc2kgQ2hpaCwgVGFpcGVpIEhzaWVuLAorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtNjEgICAoaGV4KQkJRVBPWCBDb21wdXRlciBDby4sIEx0ZC4KKzAwMDQ2MSAgICAgKGJhc2UgMTYpCQlFUE9YIENvbXB1dGVyIENvLiwgTHRkLgorCQkJCTExRiwgIzM0NiwgQ2h1bmcgU2FuIFJkLgorCQkJCVNlYy4gMiwgQ2h1bmcgSG8gQ2l0eSwgVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC02MiAgIChoZXgpCQlEQUtPUyBEYXRhICYgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKzAwMDQ2MiAgICAgKGJhc2UgMTYpCQlEQUtPUyBEYXRhICYgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKwkJCQkybmQgRmxvb3IgQmV0aGVsIEJ1aWxkaW5nIDMyNC0xCisJCQkJWWFuZ2phZS1kb25nIFNlb2Noby1ndSBTZW91bCBSLk8uSy4KKwkJCQlaaXAgY29kZTogMTM3LTEzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtNjMgICAoaGV4KQkJQm9zY2ggU2VjdXJpdHkgU3lzdGVtcworMDAwNDYzICAgICAoYmFzZSAxNikJCUJvc2NoIFNlY3VyaXR5IFN5c3RlbXMKKwkJCQk4NTAgR3JlZW5maWVsZCBSb2FkCisJCQkJTGFuY2FzdGVyIFBBIDE3NjAxLTU4NzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTY0ICAgKGhleCkJCUZhbnRhc21hIE5ldHdvcmtzLCBJbmMuCiswMDA0NjQgICAgIChiYXNlIDE2KQkJRmFudGFzbWEgTmV0d29ya3MsIEluYy4KKwkJCQkzMjUwIEFzaCBTdHJlZXQKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTY1ICAgKGhleCkJCWkucy50IGlzZG4tc3VwcG9ydCB0ZWNobmlrIEdtYkgKKzAwMDQ2NSAgICAgKGJhc2UgMTYpCQlpLnMudCBpc2RuLXN1cHBvcnQgdGVjaG5payBHbWJICisJCQkJUmhlaW4gU3RyYXNzZSA3RQorCQkJCTE0NTEzIFRlbHRvdworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTA0LTY2ICAgKGhleCkJCUFSTUlURUwgQ28uCiswMDA0NjYgICAgIChiYXNlIDE2KQkJQVJNSVRFTCBDby4KKwkJCQlGNSwgRG9tYW4gUGxhemEgMzUzLTQsCisJCQkJWWF0YXAtRG9uZywgUHVkYW5nLWt1LCBTZW9uZy1OYW1lIFNpLCBLeQorCQkJCVJlcHVibGljIG9mIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LTY3ICAgKGhleCkJCVd1aGFuIFJlc2VhcmNoIEluc3RpdHV0ZSBvZiBNSUkKKzAwMDQ2NyAgICAgKGJhc2UgMTYpCQlXdWhhbiBSZXNlYXJjaCBJbnN0aXR1dGUgb2YgTUlJCisJCQkJODggWW91a2V5dWFuIFJvYWQsCisJCQkJSGFuZ3NoYW4gRGlzdHJpY3QsV3VoYW4sIEh1YmVpIFByb3ZpbmNlLAorCQkJCTQzMDA3NCA0MzAwNzQgUC5SLkNISU5BCisJCQkJQ0hJTkEKKworMDAtMDQtNjggICAoaGV4KQkJVml2aXR5LCBJbmMuCiswMDA0NjggICAgIChiYXNlIDE2KQkJVml2aXR5LCBJbmMuCisJCQkJMzM2MCBNaXRjaGVsbCBMYW5lCisJCQkJQm91bGRlciBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNjkgICAoaGV4KQkJSW5ub2NvbSwgSW5jLgorMDAwNDY5ICAgICAoYmFzZSAxNikJCUlubm9jb20sIEluYy4KKwkJCQk2NTUtMiBOYWViYWxzYW4tRG9uZworCQkJCUthbmdzZW8tR3UsIFNlb3VsCisJCQkJMTU3LTI4MCAxNTctMjgwIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LTZBICAgKGhleCkJCU5hdmluaSBOZXR3b3JrcworMDAwNDZBICAgICAoYmFzZSAxNikJCU5hdmluaSBOZXR3b3JrcworCQkJCTM2MDUgRS4gUGxhbm8gUGt3eSwKKwkJCQlTdWl0ZSA0MDAsCisJCQkJUGxhbm8gVFggNzUwNzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTZCICAgKGhleCkJCVBhbG0gV2lyZWxlc3MsIEluYy4KKzAwMDQ2QiAgICAgKGJhc2UgMTYpCQlQYWxtIFdpcmVsZXNzLCBJbmMuCisJCQkJNDg5MzMgV2FybSBTcHJpbmdzIEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNkMgICAoaGV4KQkJQ3liZXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDQ2QyAgICAgKGJhc2UgMTYpCQlDeWJlciBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTEtNDUgWWVvIFdvbC1Eb25nCisJCQkJT2ggSnVuZy1FbSwgQnUgQ2hlb24gQ2l0eSwKKwkJCQlLeWVvbmcgR2ktRG8gS3llb25nIEdpLURvIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LTZEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDQ2RCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC02RSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA0NkUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNkYgICAoaGV4KQkJRGlnaXRlbCBTL0EgSW5kdXN0cmlhIEVsZXRyb25pY2EKKzAwMDQ2RiAgICAgKGJhc2UgMTYpCQlEaWdpdGVsIFMvQSBJbmR1c3RyaWEgRWxldHJvbmljYQorCQkJCVIuIERvdXRvciBKb2FvIElnbmFjaW8sIDExNjUKKwkJCQlQb3J0byBBbGVncmUsIFJTLiBCcmF6aWwKKwkJCQlaaXA6IDkwMjMwLjE4MQorCQkJCUJSQVpJTAorCiswMC0wNC03MCAgIChoZXgpCQlpcFVucGx1Z2dlZCBBQgorMDAwNDcwICAgICAoYmFzZSAxNikJCWlwVW5wbHVnZ2VkIEFCCisJCQkJQm94IDEwMTYwCisJCQkJU0UgMTIxIDI4IFN0b2NraG9sbS1HbG9ic2VuCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLTA0LTcxICAgKGhleCkJCUlQcmFkCiswMDA0NzEgICAgIChiYXNlIDE2KQkJSVByYWQKKwkJCQkyNCBSYW91bCBXYWxsZW5iZXJnIFN0LgorCQkJCVRlbC1Bdml2IDY5NzE5CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTA0LTcyICAgKGhleCkJCVRlbGVseW54LCBJbmMuCiswMDA0NzIgICAgIChiYXNlIDE2KQkJVGVsZWx5bngsIEluYy4KKwkJCQkzRi0xLCA2NiBOYW5rYW4gUmQuLAorCQkJCVNlYy4gMiBMdSBDaHUsIFRhby1ZdWFuCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC03MyAgIChoZXgpCQlQaG90b25leCBDb3Jwb3JhdGlvbgorMDAwNDczICAgICAoYmFzZSAxNikJCVBob3RvbmV4IENvcnBvcmF0aW9uCisJCQkJOEMgUHJlc3RvbiBDb3VydAorCQkJCUJlZGZvcmQgTUEgMDE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTc0ICAgKGhleCkJCUxFR1JBTkQKKzAwMDQ3NCAgICAgKGJhc2UgMTYpCQlMRUdSQU5ECisJCQkJMTQ1IEF2ZW51ZSBEZSBMYXR0cmUKKwkJCQk1NzA0NSBMaW1vZ2VzCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTA0LTc1ICAgKGhleCkJCTMgQ29tIENvcnBvcmF0aW9uCiswMDA0NzUgICAgIChiYXNlIDE2KQkJMyBDb20gQ29ycG9yYXRpb24KKwkJCQk1NDAwIEJheWZyb250IFBsYXphCisJCQkJTVM6ICA0MjIwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTc2ICAgKGhleCkJCTMgQ29tIENvcnBvcmF0aW9uCiswMDA0NzYgICAgIChiYXNlIDE2KQkJMyBDb20gQ29ycG9yYXRpb24KKwkJCQk1NDAwIEJheWZyb250IFBsYXphCisJCQkJTVM6ICA0MjIwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTc3ICAgKGhleCkJCVNjYWxhbnQgU3lzdGVtcywgSW5jLgorMDAwNDc3ICAgICAoYmFzZSAxNikJCVNjYWxhbnQgU3lzdGVtcywgSW5jLgorCQkJCTIwNDAgTWFydGluIEF2ZW51ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC03OCAgIChoZXgpCQlHLiBTdGFyIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMDQ3OCAgICAgKGJhc2UgMTYpCQlHLiBTdGFyIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0dGggRmxvb3IsIE5vLiAxMTgsIFNlY3RvciAyCisJCQkJQ2h1bmcgSHNpYW8gRWFzdCBSb2FkCisJCQkJVGFpcGVpIENpdHkgVGFpcGVpIENpdHkgVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC03OSAgIChoZXgpCQlSYWRpdXMgQ28uLCBMdGQuCiswMDA0NzkgICAgIChiYXNlIDE2KQkJUmFkaXVzIENvLiwgTHRkLgorCQkJCTEtNDgtMTEsIEl0YWJhc2hpCisJCQkJUm9qZSBCbGRnLiwgTm8uIDMsIDZGIEl0YWJhc2hpLWt1LCBUb2t5bworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtN0EgICAoaGV4KQkJQVhYRVNTSVQgQVNBCiswMDA0N0EgICAgIChiYXNlIDE2KQkJQVhYRVNTSVQgQVNBCisJCQkJQVhYRVNTSVQgQVNBIEhBTERFTgorCQkJCUJveCAxMDUzIDE3ODcgQmVyZyBpIE9zdGZvbGQKKwkJCQlOT1JXQVkKKwkJCQlOT1JXQVkKKworMDAtMDQtN0IgICAoaGV4KQkJU2NobHVtYmVyZ2VyCiswMDA0N0IgICAgIChiYXNlIDE2KQkJU2NobHVtYmVyZ2VyCisJCQkJU3VnYXIgTGFuZCBQcm9kdWN0IENlbnRlcgorCQkJCTExMCBTY2hsdW1iZXJnZXIgRHJpdmUKKwkJCQlTdWdhciBMYW5kIFRYIDc3NDc4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC03QyAgIChoZXgpCQlTa2lkYXRhIEFHCiswMDA0N0MgICAgIChiYXNlIDE2KQkJU2tpZGF0YSBBRworCQkJCVQtNjk3NTUzIFVudGVyc2JlcmdzdHIuIDQwCisJCQkJQS01MDgzIEdhcnRlbmF1CisJCQkJQVVTVFJJQQorCQkJCUFVU1RSSUEKKworMDAtMDQtN0QgICAoaGV4KQkJUGVsY28KKzAwMDQ3RCAgICAgKGJhc2UgMTYpCQlQZWxjbworCQkJCTM1MDAgUGVsY28gV2F5CisJCQkJQ2xvdmlzIENBIDkzNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC03RSAgIChoZXgpCQlPcHRlbGVjb209TktGCiswMDA0N0UgICAgIChiYXNlIDE2KQkJT3B0ZWxlY29tPU5LRgorCQkJCVp1aWRlbGlqayBIYWxmcm9uZCAxMQorCQkJCTI4MDEgREQgR291ZGEKKwkJCQlORVRIRVJMQU5EUworCiswMC0wNC03RiAgIChoZXgpCQlDaHIuIE1heXIgR21iSCAmIENvLiBLRworMDAwNDdGICAgICAoYmFzZSAxNikJCUNoci4gTWF5ciBHbWJIICYgQ28uIEtHCisJCQkJRWljaGVuc3RyYXNzZSAxCisJCQkJRC04NzY2NSBNYXVlcnN0ZXR0ZW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC04MCAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworMDAwNDgwICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCisJCQkJMTc0NSBUZWNobm9sb2d5IERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxNjQtOTEwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtODEgICAoaGV4KQkJRWNvbm9saXRlIENvbnRyb2wgUHJvZHVjdHMsIEluYy4KKzAwMDQ4MSAgICAgKGJhc2UgMTYpCQlFY29ub2xpdGUgQ29udHJvbCBQcm9kdWN0cywgSW5jLgorCQkJCTMzNjAgRS4gTGEgUGFsbWEgQXZlLgorCQkJCUFuYWhlaW0gQ0EgOTI4MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTgyICAgKGhleCkJCU1lZGlhbG9naWMgQ29ycC4KKzAwMDQ4MiAgICAgKGJhc2UgMTYpCQlNZWRpYWxvZ2ljIENvcnAuCisJCQkJMC0zLCBUb3lhbWFrZW4tU2FuZ3lvdQorCQkJCUtvdWRva2EtQ2VudGVyLCA1LCBPZmZpY2UgUGFyaywgVGFrYW9rYS0KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTA0LTgzICAgKGhleCkJCURlbHRyb24gVGVjaG5vbG9neSwgSW5jLgorMDAwNDgzICAgICAoYmFzZSAxNikJCURlbHRyb24gVGVjaG5vbG9neSwgSW5jLgorCQkJCThGLTMsIE5vLiAxMjUsIExhbmUgMjM1CisJCQkJUGFvLUNoaWFvIFJkLiwgSHNpbnRpZW4sCisJCQkJVGFpcGVpIFRBSVdBTiwgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC04NCAgIChoZXgpCQlBbWFubiBHbWJICiswMDA0ODQgICAgIChiYXNlIDE2KQkJQW1hbm4gR21iSAorCQkJCVVudGVyYW5nZXIgNgorCQkJCUQtODIwNDEgT2JlcmhhY2hpbmcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC04NSAgIChoZXgpCQlQaWNvTGlnaHQKKzAwMDQ4NSAgICAgKGJhc2UgMTYpCQlQaWNvTGlnaHQKKwkJCQk0NjY1IE5hdXRpbHVzIENvdXJ0IFNvdXRoCisJCQkJQm91bGRlciBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtODYgICAoaGV4KQkJSVRUQywgVW5pdmVyc2l0eSBvZiBLYW5zYXMKKzAwMDQ4NiAgICAgKGJhc2UgMTYpCQlJVFRDLCBVbml2ZXJzaXR5IG9mIEthbnNhcworCQkJCTIzMzUgSXJ2aW5nIEhpbGwgUmQuCisJCQkJTGF3cmVuY2UgS1MgNjYwNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTg3ICAgKGhleCkJCUNvZ2VuY3kgU2VtaWNvbmR1Y3RvciwgSW5jLgorMDAwNDg3ICAgICAoYmFzZSAxNikJCUNvZ2VuY3kgU2VtaWNvbmR1Y3RvciwgSW5jLgorCQkJCTM2MiBUZXJyeSBGb3ggRHJpdmUsIFN1aXRlIDIxMAorCQkJCUthbmF0YSwgT04sIEsySyAyUDUKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDQtODggICAoaGV4KQkJRXVyb3RoZXJtIENvbnRyb2xzCiswMDA0ODggICAgIChiYXNlIDE2KQkJRXVyb3RoZXJtIENvbnRyb2xzCisJCQkJNzQxRiBNaWxsZXIgRHJpdmUKKwkJCQlMZXNzYnVyZyBWQSAyMDE3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtODkgICAoaGV4KQkJWUFGTyBOZXR3b3JrcywgSW5jLgorMDAwNDg5ICAgICAoYmFzZSAxNikJCVlBRk8gTmV0d29ya3MsIEluYy4KKwkJCQkxMzQwRiBDaGFyd29vZCBSZC4KKwkJCQlIYW5vdmVyIE1EIDIxMDc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC04QSAgIChoZXgpCQlUZW1pYSBWZXJ0cmllYnMgR21iSAorMDAwNDhBICAgICAoYmFzZSAxNikJCVRlbWlhIFZlcnRyaWVicyBHbWJICisJCQkJTGFuZHNiZXJnZXJzdHIuIDMyMAorCQkJCUQtODA2ODcgTXVuaWNoCisJCQkJR0VSTUFOWQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtOEIgICAoaGV4KQkJUG9zY29uIENvcnBvcmF0aW9uCiswMDA0OEIgICAgIChiYXNlIDE2KQkJUG9zY29uIENvcnBvcmF0aW9uCisJCQkJIzYwNiBIby1Eb25nLCBOYW0gR3UsCisJCQkJUG9oYW5nIENpdHksIEt5dW5nYnVrLAorCQkJCVNPVVRIIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LThDICAgKGhleCkJCU5heW5hIE5ldHdvcmtzLCBJbmMuCiswMDA0OEMgICAgIChiYXNlIDE2KQkJTmF5bmEgTmV0d29ya3MsIEluYy4KKwkJCQkxNTcgVG9wYXogU3QuCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LThEICAgKGhleCkJCVRvbmUgQ29tbWFuZGVyIFN5c3RlbXMsIEluYy4KKzAwMDQ4RCAgICAgKGJhc2UgMTYpCQlUb25lIENvbW1hbmRlciBTeXN0ZW1zLCBJbmMuCisJCQkJMTE2MDkgNDl0aCBQbGFjZSBXZXN0CisJCQkJTXVraWx0ZW8gV0EgOTgyNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LThFICAgKGhleCkJCU9obSBUZWNoIExhYnMsIEluYy4KKzAwMDQ4RSAgICAgKGJhc2UgMTYpCQlPaG0gVGVjaCBMYWJzLCBJbmMuCisJCQkJMTQxIExhbnphIEF2ZS4sIEItMTIKKwkJCQlHYXJmaWVsZCBOSiAwNzAyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtOEYgICAoaGV4KQkJVEQgU3lzdGVtcyBDb3Jwb3JhdGlvbgorMDAwNDhGICAgICAoYmFzZSAxNikJCVREIFN5c3RlbXMgQ29ycG9yYXRpb24KKwkJCQkxMDAgQmVhcmZvb3QgUmQuCisJCQkJNjQgT250YXJpbyBEcml2ZQorCQkJCUh1ZHNvbiBNQSAwMTc0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtOTAgICAoaGV4KQkJT3B0aWNhbCBBY2Nlc3MKKzAwMDQ5MCAgICAgKGJhc2UgMTYpCQlPcHRpY2FsIEFjY2VzcworCQkJCVAuTy4gQm94IDExNAorCQkJCVlva25lYW0sIDIwNjkyCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTA0LTkxICAgKGhleCkJCVRlY2hub3Zpc2lvbiwgSW5jLgorMDAwNDkxICAgICAoYmFzZSAxNikJCVRlY2hub3Zpc2lvbiwgSW5jLgorCQkJCTUxNTUgU3BlY3RydW0gV2F5LCBVbml0ICMzMQorCQkJCU1pc3Npc3NhdWdhLCBPbnRhcmlvCisJCQkJTDRXIDVBMSBDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDQtOTIgICAoaGV4KQkJSGl2ZSBJbnRlcm5ldCwgTHRkLgorMDAwNDkyICAgICAoYmFzZSAxNikJCUhpdmUgSW50ZXJuZXQsIEx0ZC4KKwkJCQlVbml0IDIsIENodXJjaCBWaWV3IEJ1c2luZXNzIENlbnRyZQorCQkJCUxvdXRoIFJvYWQKKwkJCQlCaW5icm9vayBNYXJrZXQgUmFzZW4sIExpbmNvbG5zaGlyZSBMTjggNkJZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDQtOTMgICAoaGV4KQkJVHNpbmdodWEgVW5pc3BsZW5kb3VyIENvLiwgTHRkLgorMDAwNDkzICAgICAoYmFzZSAxNikJCVRzaW5naHVhIFVuaXNwbGVuZG91ciBDby4sIEx0ZC4KKwkJCQlUaC1VbmlzIEJ1aWxkaW5nIFRzaW5naHVhCisJCQkJVW5pdmVyc2l0eSwgQmVqaW5nIDEwMDA4NAorCQkJCVAuUi4gQ0hJTkEKKwkJCQlDSElOQQorCiswMC0wNC05NCAgIChoZXgpCQlCcmVlemVjb20sIEx0ZC4KKzAwMDQ5NCAgICAgKGJhc2UgMTYpCQlCcmVlemVjb20sIEx0ZC4KKwkJCQlBdGlkaW0gVGVjaG5vbG9neSBQYXJrCisJCQkJQmxkZy4gMSwgUC5PLkIuIDEzMTM5IFRlbC1Bdml2IDYxMTMxCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTA0LTk1ICAgKGhleCkJCVRlamFzIE5ldHdvcmtzIEluZGlhIExpbWl0ZWQKKzAwMDQ5NSAgICAgKGJhc2UgMTYpCQlUZWphcyBOZXR3b3JrcyBJbmRpYSBMaW1pdGVkCisJCQkJIzU4LCAxc3QgTWFpbiBSb2FkLCBKLlAuIE5hZ2FyLCAKKwkJCQkzcmQgUGhhc2UsIEthcm5hdGFrYQorCQkJCUJhbmdhbG9yZSAgNTYwMDc4IAorCQkJCUlORElBCisKKzAwLTA0LTk2ICAgKGhleCkJCUV4dHJlbWUgTmV0d29ya3MKKzAwMDQ5NiAgICAgKGJhc2UgMTYpCQlFeHRyZW1lIE5ldHdvcmtzCisJCQkJMzU4NSBNb25yb2UgU3QuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTk3ICAgKGhleCkJCU1hY3JvU3lzdGVtIERpZ2l0YWwgVmlkZW8gQUcKKzAwMDQ5NyAgICAgKGJhc2UgMTYpCQlNYWNyb1N5c3RlbSBEaWdpdGFsIFZpZGVvIEFHCisJCQkJU2Nob2VsbGluZ2VyIEZlbGQgMjgKKwkJCQk1ODMwMCBXZXR0ZXIsIEYuUi4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC05OCAgIChoZXgpCQlNYWhpIE5ldHdvcmtzCiswMDA0OTggICAgIChiYXNlIDE2KQkJTWFoaSBOZXR3b3JrcworCQkJCTEwMzkgTi4gTWNEb3dlbGwgQmx2ZC4KKwkJCQlQZXRhbHVtYSBDQSA5NDk1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtOTkgICAoaGV4KQkJQ2hpbm8gQ29ycG9yYXRpb24KKzAwMDQ5OSAgICAgKGJhc2UgMTYpCQlDaGlubyBDb3Jwb3JhdGlvbgorCQkJCTEgTW9yaSwgRnVqaW9rYSBDaXR5LAorCQkJCUd1bm1hIFByZWYuIEpBUEFOCisJCQkJWmlwOiAzNzUtODUwNQorCQkJCUpBUEFOCisKKzAwLTA0LTlBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDQ5QSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC05QiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA0OUIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtOUMgICAoaGV4KQkJU3VyZ2llbnQgTmV0d29ya3MsIEluYy4KKzAwMDQ5QyAgICAgKGJhc2UgMTYpCQlTdXJnaWVudCBOZXR3b3JrcywgSW5jLgorCQkJCTM1MjAgRXhlY3V0aXZlIENlbnRlciBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCUF1c3RpbiBUWCA3ODczMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtOUQgICAoaGV4KQkJSXBhbmVtYSBUZWNobm9sb2dpZXMKKzAwMDQ5RCAgICAgKGJhc2UgMTYpCQlJcGFuZW1hIFRlY2hub2xvZ2llcworCQkJCTI4LCBSdWUgRGUgTGEgUmVkb3V0ZQorCQkJCTkyMjYwIEZvbnRlbmF5IEF1eCBSb3NlcworCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wNC05RSAgIChoZXgpCQlXaXJlbGluayBDby4sIEx0ZC4KKzAwMDQ5RSAgICAgKGJhc2UgMTYpCQlXaXJlbGluayBDby4sIEx0ZC4KKwkJCQkxMUYsIEdlb3Nlb25nIEIvRCA1NDEsIERvd2hhLURvbmcsCisJCQkJTWFwby1HdSwgU2VvdWwsIDEyMS03MDEsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtOUYgICAoaGV4KQkJRnJlZXNjYWxlIFNlbWljb25kdWN0b3IKKzAwMDQ5RiAgICAgKGJhc2UgMTYpCQlGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvcgorCQkJCTc3MDAgV2VzdCBQYXJtZXIgTGFuZQorCQkJCU1EIFBMNTkKKwkJCQlBdXN0aW4gVFggNzg3MjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUEwICAgKGhleCkJCVZlcml0eSBJbnN0cnVtZW50cywgSW5jLgorMDAwNEEwICAgICAoYmFzZSAxNikJCVZlcml0eSBJbnN0cnVtZW50cywgSW5jLgorCQkJCTI5MDEgRWlzZW5ob3dlciBTdC4KKwkJCQlDYXJyb2xsdG9uIFRYIDc1MDA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1BMSAgIChoZXgpCQlQYXRod2F5IENvbm5lY3Rpdml0eQorMDAwNEExICAgICAoYmFzZSAxNikJCVBhdGh3YXkgQ29ubmVjdGl2aXR5CisJCQkJMTQzOS0xNyBBdmVudWUgU0UKKwkJCQlDYWxnYXJ5IEFsYmVydGEgVDJHIDFKOQorCQkJCUNBTkFEQQorCiswMC0wNC1BMiAgIChoZXgpCQlMLlMuSS4gSmFwYW4gQ28uLCBMdGQuCiswMDA0QTIgICAgIChiYXNlIDE2KQkJTC5TLkkuIEphcGFuIENvLiwgTHRkLgorCQkJCTEtOC0xNCBTZW5kYWdheWEgU2hpYnV5YS1LdQorCQkJCVRva3lvIDE1MS0wMDUxIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtQTMgICAoaGV4KQkJTWljcm9jaGlwIFRlY2hub2xvZ3ksIEluYy4KKzAwMDRBMyAgICAgKGJhc2UgMTYpCQlNaWNyb2NoaXAgVGVjaG5vbG9neSwgSW5jLgorCQkJCTIzNTUgVy4gQ2hhbmRsZXIgQmx2ZC4KKwkJCQlDaGFuZGxlciBBWiA4NTIyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQTQgICAoaGV4KQkJTmV0RW5hYmxlZCwgSW5jLgorMDAwNEE0ICAgICAoYmFzZSAxNikJCU5ldEVuYWJsZWQsIEluYy4KKwkJCQkxMjc1IEtpbm5lYXIgUmQuCisJCQkJQ29sdW1idXMgT0ggNDMyMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUE1ICAgKGhleCkJCUJhcmNvIFByb2plY3Rpb24gU3lzdGVtcyBOVgorMDAwNEE1ICAgICAoYmFzZSAxNikJCUJhcmNvIFByb2plY3Rpb24gU3lzdGVtcyBOVgorCQkJCU5vb3JkbGFhbiA1CisJCQkJQjg1MjAgS3V1cm5lCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtMDQtQTYgICAoaGV4KQkJU0FGIFRlaG5pa2EgTHRkLgorMDAwNEE2ICAgICAoYmFzZSAxNikJCVNBRiBUZWhuaWthIEx0ZC4KKwkJCQk5MSBEemlybmF2dSBTdHIuLAorCQkJCVJpZ2EsIExWLTEwMTEsCisJCQkJTEFUVklBCisJCQkJTEFUVklBCisKKzAwLTA0LUE3ICAgKGhleCkJCUZhYmlhVGVjaCBDb3Jwb3JhdGlvbgorMDAwNEE3ICAgICAoYmFzZSAxNikJCUZhYmlhVGVjaCBDb3Jwb3JhdGlvbgorCQkJCTRGLTMsIE5vLiAxOCwgTGFuZSA2MDkKKwkJCQlDaHVuZy1Ic2luIFJkLiwgU2VjLiA1IFNhbiBDaHVuZyBDaXR5LAorCQkJCVRhaXBlaSBIc2llbiwgVEFJV0FOIFIuTy5DCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC1BOCAgIChoZXgpCQlCcm9hZG1heCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDRBOCAgICAgKGJhc2UgMTYpCQlCcm9hZG1heCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxODAsIFdhaSBZaXAgU3RyZWV0LAorCQkJCUh3dW4gVG9uZywKKwkJCQlIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtMDQtQTkgICAoaGV4KQkJU2FuZFN0cmVhbSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDRBOSAgICAgKGJhc2UgMTYpCQlTYW5kU3RyZWFtIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE5NTUgTGFrZXdheSBEci4KKwkJCQlMZXdpc3ZpbGxlIFRYIDc1MDU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1BQSAgIChoZXgpCQlKZXRzdHJlYW0gQ29tbXVuaWNhdGlvbnMKKzAwMDRBQSAgICAgKGJhc2UgMTYpCQlKZXRzdHJlYW0gQ29tbXVuaWNhdGlvbnMKKwkJCQk1NDAwIEhlbGx5ZXIgQXZlbnVlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzgtMTAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQUIgICAoaGV4KQkJQ29tdmVyc2UgTmV0d29yayBTeXN0ZW1zLCBJbmMuCiswMDA0QUIgICAgIChiYXNlIDE2KQkJQ29tdmVyc2UgTmV0d29yayBTeXN0ZW1zLCBJbmMuCisJCQkJMjkgSGFiYXJ6ZWwgU3RyZWV0LgorCQkJCVRlbC1Bdml2IDY5NzEwCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTA0LUFDICAgKGhleCkJCUlCTSBDb3JwCiswMDA0QUMgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUFEICAgKGhleCkJCU1hbGlidSBOZXR3b3JrcworMDAwNEFEICAgICAoYmFzZSAxNikJCU1hbGlidSBOZXR3b3JrcworCQkJCTI2NjM3IEFnb3VyYSBSZC4KKwkJCQlDYWxhYmFzYXMgQ0EgOTEzMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUFFICAgKGhleCkJCVN1bGxhaXIgQ29ycG9yYXRpb24KKzAwMDRBRSAgICAgKGJhc2UgMTYpCQlTdWxsYWlyIENvcnBvcmF0aW9uCisJCQkJMzcwMCBFYXN0IE1pY2hpZ2FuIEJsdmQKKwkJCQlNaWNoaWdhbiBDaXR5IElOIDQ2MzYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1BRiAgIChoZXgpCQlEaWdpdGFsIEZvdW50YWluLCBJbmMuCiswMDA0QUYgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBGb3VudGFpbiwgSW5jLgorCQkJCTYwMCBBbGFiYW1hIFN0LgorCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUIwICAgKGhleCkJCUVMRVNJR04gQ28uLCBMdGQuCiswMDA0QjAgICAgIChiYXNlIDE2KQkJRUxFU0lHTiBDby4sIEx0ZC4KKwkJCQk5RmwuIFRhZUt5b3VuZyBCbGRnLiwKKwkJCQk0Mi00MiBCb25nQ2h1bi1kb25nIEt3YW5Bay1ndSwgU2VvdWwsCisJCQkJUi5PLiBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC1CMSAgIChoZXgpCQlTaWduYWwgVGVjaG5vbG9neSwgSW5jLgorMDAwNEIxICAgICAoYmFzZSAxNikJCVNpZ25hbCBUZWNobm9sb2d5LCBJbmMuCisJCQkJM3JkLiBGbC4gRGFibyBCbGRnLgorCQkJCTM3LTIga295byBzb25ncGEKKwkJCQlTZW91bCBLT1JFQSAxMzgtMTEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LUIyICAgKGhleCkJCUVTU0VHSSBTUkwKKzAwMDRCMiAgICAgKGJhc2UgMTYpCQlFU1NFR0kgU1JMCisJCQkJVmlhIERlbCBDYXZhcmF0b3JpLCAxNworCQkJCTIwMDkyIENpbmlzZWxsbyBCLiAoTTEpCisJCQkJSVRBTFkKKwkJCQlJVEFMWQorCiswMC0wNC1CMyAgIChoZXgpCQlWaWRlb3RlaywgSW5jLgorMDAwNEIzICAgICAoYmFzZSAxNikJCVZpZGVvdGVrLCBJbmMuCisJCQkJMjQzIFNob2VtYWtlciBSZC4KKwkJCQlQb3R0c3Rvd24gUEEgMTk0NjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUI0ICAgKGhleCkJCUNJQUMKKzAwMDRCNCAgICAgKGJhc2UgMTYpCQlDSUFDCisJCQkJMTggcnVlIEpvc2VwaCBCQVJBCisJCQkJOTIxMzAgSXNzeS1sZXMtTW9saW5lYXV4CisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTA0LUI1ICAgKGhleCkJCUVxdWl0cmFjIENvcnBvcmF0aW9uCiswMDA0QjUgICAgIChiYXNlIDE2KQkJRXF1aXRyYWMgQ29ycG9yYXRpb24KKwkJCQkxOTA1IE4uVy4gODJuZCBBdmVudWUKKwkJCQlNaWFtaSBGTCAzMzEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQjYgICAoaGV4KQkJU3RyYXRleCBOZXR3b3JrcywgSW5jLgorMDAwNEI2ICAgICAoYmFzZSAxNikJCVN0cmF0ZXggTmV0d29ya3MsIEluYy4KKwkJCQk2NCBXaGl0ZSBSb2FkCisJCQkJUmV0cmVhdCwKKwkJCQlDYXBlIFRvd24gIDc5NDUKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMDQtQjcgICAoaGV4KQkJQU1CIGkudC4gSG9sZGluZworMDAwNEI3ICAgICAoYmFzZSAxNikJCUFNQiBpLnQuIEhvbGRpbmcKKwkJCQladWlkZXJob3V0bGFhbiA0CisJCQkJUEogSGFhcmxlbSAyMDEyCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDQtQjggICAoaGV4KQkJS3VtYWhpcmEgQ28uLCBMdGQuCiswMDA0QjggICAgIChiYXNlIDE2KQkJS3VtYWhpcmEgQ28uLCBMdGQuCisJCQkJNC0zNCBVamluYWhpZ2FzaGkgMi1DaG9tZQorCQkJCU1pbmFtaWt1IEhpcm9zaGltYQorCQkJCUpBUEFOIDczNC04NTY3CisJCQkJSkFQQU4KKworMDAtMDQtQjkgICAoaGV4KQkJUy5JLiBTb3Vib3UsIEluYy4KKzAwMDRCOSAgICAgKGJhc2UgMTYpCQlTLkkuIFNvdWJvdSwgSW5jLgorCQkJCUt1Ym8gQmxkZy4sIDcwMywgMi0xMiwKKwkJCQlOYW5wZWlkYWktY2hvLCBTaGlidXlhLWt1LAorCQkJCVRva3lvIFRva3lvIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtQkEgICAoaGV4KQkJS0REIE1lZGlhIFdpbGwgQ29ycG9yYXRpb24KKzAwMDRCQSAgICAgKGJhc2UgMTYpCQlLREQgTWVkaWEgV2lsbCBDb3Jwb3JhdGlvbgorCQkJCTItMS0yMyBOYWthbWVndXJvCisJCQkJTWVndXJvLUt1IFRva3lvCisJCQkJMTUzLTAwNjEgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC1CQiAgIChoZXgpCQlCYXJkYWMgQ29ycG9yYXRpb24KKzAwMDRCQiAgICAgKGJhc2UgMTYpCQlCYXJkYWMgQ29ycG9yYXRpb24KKwkJCQk0MCBMb2cgQ2Fub2UgQ2lyY2xlCisJCQkJU3RldmVuc3ZpbGxlIE1EIDIxNjY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1CQyAgIChoZXgpCQlHaWFudGVjLCBJbmMuCiswMDA0QkMgICAgIChiYXNlIDE2KQkJR2lhbnRlYywgSW5jLgorCQkJCTRGLCBOby4gMywgTGFuZSAxMjMsCisJCQkJUGFvIENodW5nIFJkLiwgSHNpZW4gVGllbiBDaXR5LCBUYWlwZWkKKwkJCQlUQUlXQU4gMjMxIFRBSVdBTiAyMzEgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC1CRCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMDRCRCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1CRSAgIChoZXgpCQlPcHRYQ29uLCBJbmMuCiswMDA0QkUgICAgIChiYXNlIDE2KQkJT3B0WENvbiwgSW5jLgorCQkJCVAuTy4gQm94IDEzNDQ5CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0zNDQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1CRiAgIChoZXgpCQlWZXJzYUxvZ2ljIENvcnAuCiswMDA0QkYgICAgIChiYXNlIDE2KQkJVmVyc2FMb2dpYyBDb3JwLgorCQkJCTM4ODggU3Rld2FydCBSZC4KKwkJCQlFdWdlbmUgT1IgOTc0MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUMwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDRDMCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1DMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA0QzEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQzIgICAoaGV4KQkJTWFnbmlwaXgsIEluYy4KKzAwMDRDMiAgICAgKGJhc2UgMTYpCQlNYWduaXBpeCwgSW5jLgorCQkJCTM1MzkgU3QtQ2hhcmxlcyBCbHZkLiwgU3VpdGUgMjEyCisJCQkJS2lya2xhbmQgKFF1ZWJlYykKKwkJCQlDQU5BREEgSDlIM0M0CisJCQkJQ0FOQURBCisKKzAwLTA0LUMzICAgKGhleCkJCUNBU1RPUiBJbmZvcm1hdGlxdWUKKzAwMDRDMyAgICAgKGJhc2UgMTYpCQlDQVNUT1IgSW5mb3JtYXRpcXVlCisJCQkJMiwgUnVlIER1IEtlZmlyCisJCQkJU2VuaWEgMzQzCisJCQkJOTQ1MzcgT3JseSBDZWRleCBGcmFuY2UKKwkJCQlGUkFOQ0UKKworMDAtMDQtQzQgICAoaGV4KQkJQWxsZW4gJiBIZWF0aCBMaW1pdGVkCiswMDA0QzQgICAgIChiYXNlIDE2KQkJQWxsZW4gJiBIZWF0aCBMaW1pdGVkCisJCQkJS2VybmljayBJbmR1c3RyaWFsIEVzdGF0ZSwgUGVucnluCisJCQkJQ29ybndhbGwgRW5nbGFuZCBUUjEwIDlMVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA0LUM1ICAgKGhleCkJCUFTRSBUZWNobm9sb2dpZXMsIFVTQQorMDAwNEM1ICAgICAoYmFzZSAxNikJCUFTRSBUZWNobm9sb2dpZXMsIFVTQQorCQkJCTY3MjEgQmF1bSBEci4KKwkJCQlLbm94dmlsbGUgVE4gMzc5MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUM2ICAgKGhleCkJCVlhbWFoYSBNb3RvciBDby4sIEx0ZC4KKzAwMDRDNiAgICAgKGJhc2UgMTYpCQlZYW1haGEgTW90b3IgQ28uLCBMdGQuCisJCQkJSW5mb3JtYXRpb24gU3lzdGVtIERpdmlzaW9uCisJCQkJMjUwMCBTaGluZ2FpIEl3YXRhLCBTaGl6dW9rYQorCQkJCUphcGFuIFppcDogNDM4LTg1MDEKKwkJCQlKQVBBTgorCiswMC0wNC1DNyAgIChoZXgpCQlOZXRNb3VudAorMDAwNEM3ICAgICAoYmFzZSAxNikJCU5ldE1vdW50CisJCQkJUC5PLkIuIDIzMjUKKwkJCQlLYWRpbWEgNjA5MjAKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDQtQzggICAoaGV4KQkJTElCQSBNYXNjaGluZW5mYWJyaWsgR21iSAorMDAwNEM4ICAgICAoYmFzZSAxNikJCUxJQkEgTWFzY2hpbmVuZmFicmlrIEdtYkgKKwkJCQlQTyBCb3ggMTEyMAorCQkJCUQ5NTExMiBOYWlsYQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTA0LUM5ICAgKGhleCkJCU1pY3JvIEVsZWN0cm9uIENvLiwgTHRkLgorMDAwNEM5ICAgICAoYmFzZSAxNikJCU1pY3JvIEVsZWN0cm9uIENvLiwgTHRkLgorCQkJCTJGIEliYW5ha2ktVGFuYWthIEJsZGcuCisJCQkJMS0xLTU5IE5ha2Fob2R1bWkgSWJhcmFraS1zaGksIE9zYWthIDU2NworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtQ0EgICAoaGV4KQkJRnJlZU1zIENvcnAuCiswMDA0Q0EgICAgIChiYXNlIDE2KQkJRnJlZU1zIENvcnAuCisJCQkJU2hpbmhhbiBCbGRnLiA2RiwKKwkJCQk0NS0xMSBZb2lkby1Eb25nLCBZb3VuZ2RldW5ncG8ta3UsCisJCQkJU2VvdWwgMTUwLTczNiBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC1DQiAgIChoZXgpCQlUZHNvZnQgQ29tbXVuaWNhdGlvbiwgTHRkLgorMDAwNENCICAgICAoYmFzZSAxNikJCVRkc29mdCBDb21tdW5pY2F0aW9uLCBMdGQuCisJCQkJNjAgTWVkaW5hdCBIYXllaHVkaW0gU3QuCisJCQkJSGVyemxpYSA0Njc2NgorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wNC1DQyAgIChoZXgpCQlQZWVrIFRyYWZmaWMgQi5WLgorMDAwNENDICAgICAoYmFzZSAxNikJCVBlZWsgVHJhZmZpYyBCLlYuCisJCQkJUG9zdGJ1cyAyNTQyCisJCQkJMzgwMCBHQiBBbWVyc2Zvb3QKKwkJCQlUaGUgTmV0aGVybGFuZHMKKwkJCQlORVRIRVJMQU5EUworCiswMC0wNC1DRCAgIChoZXgpCQlJbmZvcm1lZGlhIFJlc2VhcmNoIEdyb3VwCiswMDA0Q0QgICAgIChiYXNlIDE2KQkJSW5mb3JtZWRpYSBSZXNlYXJjaCBHcm91cAorCQkJCTM5MCBTdC1WYWxsaWVyIEVhc3QKKwkJCQlTdWl0ZSAyMDMKKwkJCQlRdWViZWMgUFEgRzFLIDNQNiBDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDQtQ0UgICAoaGV4KQkJUGF0cmlhIEFpbG9uCiswMDA0Q0UgICAgIChiYXNlIDE2KQkJUGF0cmlhIEFpbG9uCisJCQkJTmF1bGFrYXR1IDMKKwkJCQlGSU4tMzMxMDAgVGFtcGVyZQorCQkJCUZJTkxBTkQKKwkJCQlGSU5MQU5ECisKKzAwLTA0LUNGICAgKGhleCkJCVNlYWdhdGUgVGVjaG5vbG9neQorMDAwNENGICAgICAoYmFzZSAxNikJCVNlYWdhdGUgVGVjaG5vbG9neQorCQkJCTEyODAgRGlzYyBEcml2ZQorCQkJCVNoYWtvcGVlIE1OIDU1Mzc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1EMCAgIChoZXgpCQlTb2Z0bGluayBzLnIuby4KKzAwMDREMCAgICAgKGJhc2UgMTYpCQlTb2Z0bGluayBzLnIuby4KKwkJCQlUb21rb3ZhIDQwOQorCQkJCUtyYWx1cHkgbi4gVmx0YXZvdQorCQkJCUN6ZWNoIFJlcHVibGljCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMDQtRDEgICAoaGV4KQkJRHJldyBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDREMSAgICAgKGJhc2UgMTYpCQlEcmV3IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTM5MTUgUmVzZWFyY2ggUGFyayBEcgorCQkJCVN1aXRlIEExMAorCQkJCUFubiBBcmJvciBNSSA0ODEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRDIgICAoaGV4KQkJQWRjb24gVGVsZW1ldHJ5IEdtYkgKKzAwMDREMiAgICAgKGJhc2UgMTYpCQlBZGNvbiBUZWxlbWV0cnkgR21iSAorCQkJCUlua3VzdHIuIDI0CisJCQkJQS0zNDAwIEtsb3N0ZXJuZXVidXJnCisJCQkJQVVTVFJJQQorCiswMC0wNC1EMyAgIChoZXgpCQlUb3lva2Vpa2kgQ28uLCBMdGQuCiswMDA0RDMgICAgIChiYXNlIDE2KQkJVG95b2tlaWtpIENvLiwgTHRkLgorCQkJCVdhZGEgMzk2Ny0xMCwgTWF0c3Vtb3RvLUNpdHkKKwkJCQlOYWdhbm8gMzkwLTEyOTgsCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC1ENCAgIChoZXgpCQlQcm92aWV3IEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwNEQ0ICAgICAoYmFzZSAxNikJCVByb3ZpZXcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJNkYsIE5vLiAxLCBQYXUtU2hlbmcgUm9hZAorCQkJCVl1bmcgSG8gQ2l0eSwgVGFpcGVpLAorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtRDUgICAoaGV4KQkJSGl0YWNoaSBJbmZvcm1hdGlvbiAmIENvbW11bmljYXRpb24gRW5naW5lZXJpbmcsIEx0ZC4KKzAwMDRENSAgICAgKGJhc2UgMTYpCQlIaXRhY2hpIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbiBFbmdpbmVlcmluZywgTHRkLgorCQkJCVF1ZWVuJ3MgVG93ZXIgQjIxRiwgMi0zLTMsIE1pbmF0b21pcmFpLAorCQkJCU5pc2hpLWt1LCBZb2tvaGFtYSwgMjIwLTYxMjEKKwkJCQlKQVBBTgorCiswMC0wNC1ENiAgIChoZXgpCQlUYWthZ2kgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzAwMDRENiAgICAgKGJhc2UgMTYpCQlUYWthZ2kgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKwkJCQlFbGVjdHJvbmljIEluc3RydW1lbnQgRGl2LgorCQkJCTM1MDgsIEthbWlpZGUtTWlrYWVzaGksIEV1amlub21peWEtc2hpLAorCQkJCTQxOC0wMTAzIDQxOC0wMTAzIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtRDcgICAoaGV4KQkJT21pdGVjIEluc3RydW1lbnRhdGlvbiBMdGQuCiswMDA0RDcgICAgIChiYXNlIDE2KQkJT21pdGVjIEluc3RydW1lbnRhdGlvbiBMdGQuCisJCQkJSG9wdG9uIEluZHVzdHJpYWwgRXN0LgorCQkJCUxvbmRvbiBSZC4sIERldml6ZXMgV2lsdHNoaXJlIFNOMTAgMkVVCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA0LUQ4ICAgKGhleCkJCUlQV2lyZWxlc3MsIEluYy4KKzAwMDREOCAgICAgKGJhc2UgMTYpCQlJUFdpcmVsZXNzLCBJbmMuCisJCQkJNCBMYW5kc293bmUgQ291cnQKKwkJCQlCdW1wZXJzIFdheSBDaGlwcGVuaGFtLCBXaWx0c2hpcmUsCisJCQkJU04xNCBHUlogVUsKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC1EOSAgIChoZXgpCQlUaXRhbiBFbGVjdHJvbmljcywgSW5jLgorMDAwNEQ5ICAgICAoYmFzZSAxNikJCVRpdGFuIEVsZWN0cm9uaWNzLCBJbmMuCisJCQkJUm0gNywgMTEgRmwuLCBOby4gMzk4LAorCQkJCUh1YW4tUGVpIFJvYWQsIENodW5nLUxpLAorCQkJCVRhb3l1YW4gVGFveXVhbiBUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LURBICAgKGhleCkJCVJlbGF4IFRlY2hub2xvZ3ksIEluYy4KKzAwMDREQSAgICAgKGJhc2UgMTYpCQlSZWxheCBUZWNobm9sb2d5LCBJbmMuCisJCQkJREJBLyBHcmFuaXRlIERpZ2l0YWwKKwkJCQkzMTAxIFdoaXBwbGUgUm9hZAorCQkJCVVuaW9uIENpdHkgQ0EgOTQ1ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LURCICAgKGhleCkJCVRlbGx1cyBHcm91cCBDb3JwLgorMDAwNERCICAgICAoYmFzZSAxNikJCVRlbGx1cyBHcm91cCBDb3JwLgorCQkJCTRGLCBOby4gMTUgSW5kdXN0cnkgRS4gUmQuLCBJWAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSBIc2luY2h1IFRhaXdhbgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtREMgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDA0REMgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJRGVwYXJ0bWVudCA2ODAwCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAgQnJhcHRvbiBPTiBMNgorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wNC1ERCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA0REQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtREUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNERFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LURGICAgKGhleCkJCVRlcmFjb20gVGVsZW1hdGljYSBMdGRhLgorMDAwNERGICAgICAoYmFzZSAxNikJCVRlcmFjb20gVGVsZW1hdGljYSBMdGRhLgorCQkJCVIuIEZlbGlwZSBOZXJpLCAyNDYgQ0ouIDMwMQorCQkJCTkwNDQwLTE1MCBQb3J0byBBbGxlZ3JlIFJTCisJCQkJQmF6aWwKKwkJCQlCUkFaSUwKKworMDAtMDQtRTAgICAoaGV4KQkJUHJvY2tldCBOZXR3b3JrcworMDAwNEUwICAgICAoYmFzZSAxNikJCVByb2NrZXQgTmV0d29ya3MKKwkJCQkxMTAwIENhZGlsbGFjIENvdXJ0CisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUUxICAgKGhleCkJCUluZmluaW9yIE1pY3Jvc3lzdGVtcworMDAwNEUxICAgICAoYmFzZSAxNikJCUluZmluaW9yIE1pY3Jvc3lzdGVtcworCQkJCTJGLCBBY2N1ZmFyIEJsZGcsIDIzNC0xMCwKKwkJCQlKYW1zaWwtRG9uZywgU29uZ3BhLUd1CisJCQkJU2VvdWwgS09SRUEgMTM4LTIyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC1FMiAgIChoZXgpCQlTTUMgTmV0d29ya3MsIEluYy4KKzAwMDRFMiAgICAgKGJhc2UgMTYpCQlTTUMgTmV0d29ya3MsIEluYy4KKwkJCQk2IEh1Z2hlcworCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRTMgICAoaGV4KQkJQWNjdG9uIFRlY2hub2xvZ3kgQ29ycC4KKzAwMDRFMyAgICAgKGJhc2UgMTYpCQlBY2N0b24gVGVjaG5vbG9neSBDb3JwLgorCQkJCU5vLiAxIENyZWF0aW9uIFJkLiBJSUksCisJCQkJU0JJUAorCQkJCUhzaW5jaHUgSHNpbmNodSBUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LUU0ICAgKGhleCkJCURhZXJ5dW5nIEluZC4sIEluYy4KKzAwMDRFNCAgICAgKGJhc2UgMTYpCQlEYWVyeXVuZyBJbmQuLCBJbmMuCisJCQkJIzIxOS02LCBLYXNhbiBEb25nLAorCQkJCUt1bWNodW4ga3UsCisJCQkJU2VvdWwgU2VvdWwgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtRTUgICAoaGV4KQkJR2xvbmV0IFN5c3RlbXMsIEluYy4KKzAwMDRFNSAgICAgKGJhc2UgMTYpCQlHbG9uZXQgU3lzdGVtcywgSW5jLgorCQkJCTExRmwuLCBKZWlsIEJsZGcuLCA5NC00NiwgN0thCisJCQkJWW91bmdkdW5ncG8tZG9uZyBZb25nZHVuZ3BvLUt1IFNlb3VsLCAxNQorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LUU2ICAgKGhleCkJCUJhbnlhbiBOZXR3b3JrIFByaXZhdGUgTGltaXRlZAorMDAwNEU2ICAgICAoYmFzZSAxNikJCUJhbnlhbiBOZXR3b3JrIFByaXZhdGUgTGltaXRlZAorCQkJCTQ0MywgOHRoIEZsb29yLCBHdW5hIENvbXBsZXgKKwkJCQlBbm5hc2FsYWksIENoZW5uYWktNjAwIDAxOAorCQkJCUlORElBCisJCQkJSU5ESUEKKworMDAtMDQtRTcgICAoaGV4KQkJTGlnaHRwb2ludGUgQ29tbXVuaWNhdGlvbnMsIEluYworMDAwNEU3ICAgICAoYmFzZSAxNikJCUxpZ2h0cG9pbnRlIENvbW11bmljYXRpb25zLCBJbmMKKwkJCQkxMDE0MCBCYXJuZXMgQ2FueW9uIFJvYWQKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUU4ICAgKGhleCkJCUlFUiwgSW5jLgorMDAwNEU4ICAgICAoYmFzZSAxNikJCUlFUiwgSW5jLgorCQkJCTQ1MDEgU28uIEdlbmVyYWwgQnJ1Y2UgRHIKKwkJCQlTdWl0ZSA1MAorCQkJCVRlbXBsZSBUWCA3NjUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRTkgICAoaGV4KQkJSW5maW5pc3dpdGNoIENvcnBvcmF0aW9uCiswMDA0RTkgICAgIChiYXNlIDE2KQkJSW5maW5pc3dpdGNoIENvcnBvcmF0aW9uCisJCQkJMTM0IEZsYW5kZXJzIFJvYWQKKwkJCQlXZXN0Ym9yb3VnaCBNQSAwMTU4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRUEgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzAwMDRFQSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTExMDAwIFdvbGZlIFJvYWQsIE1haWxzdG9wIDQyTEUKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUVCICAgKGhleCkJCVBheG9uZXQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDRFQiAgICAgKGJhc2UgMTYpCQlQYXhvbmV0IENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNDA0NiBDbGlwcGVyIENvdXJ0CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRUMgICAoaGV4KQkJTWVtb2JveCBTQQorMDAwNEVDICAgICAoYmFzZSAxNikJCU1lbW9ib3ggU0EKKwkJCQkxLCBQbGFjZSBEYW1lIFN1emFubmUKKwkJCQk5MTE5MCBTYWludCBBdWJpbgorCQkJCUZyYW5jZQorCQkJCUZSQU5DRQorCiswMC0wNC1FRCAgIChoZXgpCQlCaWxsaW9uIEVsZWN0cmljIENvLiwgTHRkLgorMDAwNEVEICAgICAoYmFzZSAxNikJCUJpbGxpb24gRWxlY3RyaWMgQ28uLCBMdGQuCisJCQkJOEYsIE5vLjE5MiwgU2VjLjIsIENodW5nIEhzaW5nIFJkLiwKKwkJCQlIc2luIFRpZW4gQ2l0eSwgVGFpcGVpIEhzaWVuCisJCQkJVGFpd2FuIFRhaXdhbiBST0MKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LUVFICAgKGhleCkJCUxpbmNvbG4gRWxlY3RyaWMgQ29tcGFueQorMDAwNEVFICAgICAoYmFzZSAxNikJCUxpbmNvbG4gRWxlY3RyaWMgQ29tcGFueQorCQkJCTIyODAxIFN0LiBDbGFpciBBdmVudWUKKwkJCQlDbGV2ZWxhbmQgT0ggNDQxMTctMTE5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRUYgICAoaGV4KQkJUG9sZXN0YXIgQ29ycC4KKzAwMDRFRiAgICAgKGJhc2UgMTYpCQlQb2xlc3RhciBDb3JwLgorCQkJCVJNICM4MDIgU2VvR2VvbiBCL0QsIDE0ODAsCisJCQkJR3dhbllhbmctRG9uZywgRG9uZ0FuLUd1LCBBbllhbmcgQ2l0eSwgNAorCQkJCUtvcmVhIChST0spCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LUYwICAgKGhleCkJCUludGVybmF0aW9uYWwgQ29tcHV0ZXJzLCBMdGQKKzAwMDRGMCAgICAgKGJhc2UgMTYpCQlJbnRlcm5hdGlvbmFsIENvbXB1dGVycywgTHRkCisJCQkJMSBXZW5sb2NrIFdheQorCQkJCVdlc3QgR29ydG9uIE1hbmNoZXN0ZXIsIE0xMiA1RFIKKwkJCQlVSworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA0LUYxICAgKGhleCkJCVdoZXJlTmV0CiswMDA0RjEgICAgIChiYXNlIDE2KQkJV2hlcmVOZXQKKwkJCQkxMDcgVy4gTWNLaW5uZXkgQXZlbnVlCisJCQkJUm9nZXJzdmlsbGUgVE4gMzc4NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUYyICAgKGhleCkJCVBvbHljb20KKzAwMDRGMiAgICAgKGJhc2UgMTYpCQlQb2x5Y29tCisJCQkJMTAwMCBXZXN0IDE0dGggU3RyZWV0CisJCQkJTm9ydGggVmFuY291dmVyLCBCLkMuCisJCQkJQ2FuYWRhIFY3UDNQMworCQkJCUNBTkFEQQorCiswMC0wNC1GMyAgIChoZXgpCQlGUyBGT1JUSC1TWVNURU1FIEdtYkgKKzAwMDRGMyAgICAgKGJhc2UgMTYpCQlGUyBGT1JUSC1TWVNURU1FIEdtYkgKKwkJCQlLdWVmZXJzdHIuIDgKKwkJCQlELTc5MjA2IEJyZWlzYWNoCisJCQkJR2VybWFueQorCQkJCUdFUk1BTlkKKworMDAtMDQtRjQgICAoaGV4KQkJSW5maW5pdGUgRWxlY3Ryb25pY3MgSW5jLgorMDAwNEY0ICAgICAoYmFzZSAxNikJCUluZmluaXRlIEVsZWN0cm9uaWNzIEluYy4KKwkJCQlOby40NzgtMSwgU2VjIDIKKwkJCQlDaGluZyBIYWkgUm9hZCA0MDcsIFRhaSBDaHVuZworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtRjUgICAoaGV4KQkJU25vd1Nob3JlIE5ldHdvcmtzLCBJbmMuCiswMDA0RjUgICAgIChiYXNlIDE2KQkJU25vd1Nob3JlIE5ldHdvcmtzLCBJbmMuCisJCQkJMjg1IEJpbGxlcmljYSBSb2FkCisJCQkJQ2hlbG1zZm9yZCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRjYgICAoaGV4KQkJQW1waHVzCiswMDA0RjYgICAgIChiYXNlIDE2KQkJQW1waHVzCisJCQkJMjM3MiBRdW1lIERyaXZlLCAjRgorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1GNyAgIChoZXgpCQlPbWVnYSBCYW5kLCBJbmMuCiswMDA0RjcgICAgIChiYXNlIDE2KQkJT21lZ2EgQmFuZCwgSW5jLgorCQkJCTkwMjAtSSBDYXBpdGFsIG9mIFRleGFzIEhnaHd5IE4KKwkJCQlTdWl0ZSAjMjcwCisJCQkJQXVzdGluIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1GOCAgIChoZXgpCQlRVUFMSUNBQkxFIFRWIEluZHVzdHJpYSBFIENvbS4sIEx0ZGEKKzAwMDRGOCAgICAgKGJhc2UgMTYpCQlRVUFMSUNBQkxFIFRWIEluZHVzdHJpYSBFIENvbS4sIEx0ZGEKKwkJCQlBdi4gSm9hbyBQYXVsbyBBYmxhcywgMzA4CisJCQkJSmFyZGltIERhIEdsb3JpYSAtIENvdGlhIC1TUCBDRVAgMDY3MTEtMgorCQkJCUJSQVpJTAorCiswMC0wNC1GOSAgIChoZXgpCQlYdGVyYSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNEY5ICAgICAoYmFzZSAxNikJCVh0ZXJhIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNTAwIFcgQmV0aGFueSBEcml2ZQorCQkJCUFsbGVuIFRYIDc1MDEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1GQSAgIChoZXgpCQlOQlMgVGVjaG5vbG9naWVzIEluYy4KKzAwMDRGQSAgICAgKGJhc2UgMTYpCQlOQlMgVGVjaG5vbG9naWVzIEluYy4KKwkJCQk3MDMgRXZhbnMgQXZlbnVlLCBTdWl0ZSA0MDAKKwkJCQlUb3JvbnRvCisJCQkJT250YXJpbyAgTTlDIDVFOQorCQkJCUNBTkFEQQorCiswMC0wNC1GQiAgIChoZXgpCQlDb21tdGVjaCwgSW5jLgorMDAwNEZCICAgICAoYmFzZSAxNikJCUNvbW10ZWNoLCBJbmMuCisJCQkJOTAxMSBFLiAzN3RoIFN0cmVldAorCQkJCVdpY2hpdGEgS1MgNjcyMjYtMjAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRkMgICAoaGV4KQkJU3RyYXR1cyBDb21wdXRlciAoREUpLCBJbmMuCiswMDA0RkMgICAgIChiYXNlIDE2KQkJU3RyYXR1cyBDb21wdXRlciAoREUpLCBJbmMuCisJCQkJMTExIFBvd2Rlcm1pbGwgUm9hZAorCQkJCU1heW5hcmQgTUEgMDE3NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUZEICAgKGhleCkJCUphcGFuIENvbnRyb2wgRW5naW5lZXJpbmcgQ28uLCBMdGQuCiswMDA0RkQgICAgIChiYXNlIDE2KQkJSmFwYW4gQ29udHJvbCBFbmdpbmVlcmluZyBDby4sIEx0ZC4KKwkJCQkxLTUtMSwgSGlnYXNoaWFtYWdhd2EsIFRha2F0c3VraS1zaGkKKwkJCQlPc2FrYSA1NjktMDAxMgorCQkJCUpBUEFOCisKKzAwLTA0LUZFICAgKGhleCkJCVBlbGFnbyBOZXR3b3JrcworMDAwNEZFICAgICAoYmFzZSAxNikJCVBlbGFnbyBOZXR3b3JrcworCQkJCTcwMSBFLiBQbGFubyBQYXJrd2F5IC0gU3RlLiAjMjA1CisJCQkJUGxhbm8gVFggNzUwNzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUZGICAgKGhleCkJCUFjcm9uZXQgQ28uLCBMdGQuCiswMDA0RkYgICAgIChiYXNlIDE2KQkJQWNyb25ldCBDby4sIEx0ZC4KKwkJCQlTYW1hbiBCL0QgMkZsCisJCQkJODExLTE1IEJhbmdiYWUtRG9uZyBTZW9jaG8ta3UsIFNlb3VsCisJCQkJMTM3LTA2NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS0wMCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA1MDAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMDEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNTAxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTAyICAgKGhleCkJCUFQUExFIENPTVBVVEVSCiswMDA1MDIgICAgIChiYXNlIDE2KQkJQVBQTEUgQ09NUFVURVIKKwkJCQkyMDY1MCBWQUxMRVkgR1JFRU4gRFJJVkUKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTAzICAgKGhleCkJCUlDT05BRworMDAwNTAzICAgICAoYmFzZSAxNikJCUlDT05BRworCQkJCUFNIEJhaG5ob2YgMgorCQkJCTU1NzY1IEJpcmtlbmZlbGQKKwkJCQlHRVJNQU5ZCisKKzAwLTA1LTA0ICAgKGhleCkJCU5hcmF5IEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbiBFbnRlcnByaXNlCiswMDA1MDQgICAgIChiYXNlIDE2KQkJTmFyYXkgSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9uIEVudGVycHJpc2UKKwkJCQkzRiBTYW4gV29vIEJsZGcuLCAxNTQzLTExCisJCQkJU2VvY2hvLURvbmcsIFNlb2Noby1LdSwKKwkJCQlTZW91bCAxMzctMDcwICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtMDUgICAoaGV4KQkJU3lzdGVtcyBJbnRlZ3JhdGlvbiBTb2x1dGlvbnMsIEluYy4KKzAwMDUwNSAgICAgKGJhc2UgMTYpCQlTeXN0ZW1zIEludGVncmF0aW9uIFNvbHV0aW9ucywgSW5jLgorCQkJCTM5MjIgQ29jb251dCBQYWxtIERyaXZlLAorCQkJCVN1aXRlIDEwNgorCQkJCVRhbXBhIEZMIDMzNjE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0wNiAgIChoZXgpCQlSZWRkbyBOZXR3b3JrcyBBQgorMDAwNTA2ICAgICAoYmFzZSAxNikJCVJlZGRvIE5ldHdvcmtzIEFCCisJCQkJTGl2ZGp1cnNnYXRhbiA0CisJCQkJU0UgMTIxIDYyIEpvaGFubmVzaG92CisJCQkJU1dFREVOCisKKzAwLTA1LTA3ICAgKGhleCkJCUZpbmUgQXBwbGlhbmNlIENvcnAuCiswMDA1MDcgICAgIChiYXNlIDE2KQkJRmluZSBBcHBsaWFuY2UgQ29ycC4KKwkJCQk3RmwuLCBOby4gNDk5LAorCQkJCUNodW5nLUNoZW5nIFJkLiwgSHNpbnRpZW4sIFRhaXBlaQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDUtMDggICAoaGV4KQkJSW5ldGNhbSwgSW5jLgorMDAwNTA4ICAgICAoYmFzZSAxNikJCUluZXRjYW0sIEluYy4KKwkJCQkxMDE3MSBQYWNpZmljIE1lc2EgQmx2ZC4KKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTA5ICAgKGhleCkJCUFWT0MgTmlzaGltdXJhIEx0ZC4KKzAwMDUwOSAgICAgKGJhc2UgMTYpCQlBVk9DIE5pc2hpbXVyYSBMdGQuCisJCQkJSm9nYXNha2kgNC0xNi0xNAorCQkJCU1peWF6YWtpLWNpdHksIE1peWF6YWtpIDg4MC0wOTE3LAorCQkJCUpBUEFOCisKKzAwLTA1LTBBICAgKGhleCkJCUlDUyBTcGEKKzAwMDUwQSAgICAgKGJhc2UgMTYpCQlJQ1MgU3BhCisJCQkJVmlhIFJvbWFubyBBTAorCQkJCTEwMDEwIFNjYXJtYWdubyAoVE8pCisJCQkJSVRBTFkKKworMDAtMDUtMEIgICAoaGV4KQkJU0lDT00gU3lzdGVtcywgSW5jLgorMDAwNTBCICAgICAoYmFzZSAxNikJCVNJQ09NIFN5c3RlbXMsIEluYy4KKwkJCQk0MTQwIFNreXJvbiBEcml2ZQorCQkJCURveWxlc3Rvd24gUEEgMTg5MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTBDICAgKGhleCkJCU5ldHdvcmsgUGhvdG9uaWNzLCBJbmMuCiswMDA1MEMgICAgIChiYXNlIDE2KQkJTmV0d29yayBQaG90b25pY3MsIEluYy4KKwkJCQk0NTEgQXZpYXRpb24gQm91bGV2YXJkCisJCQkJU2FudGEgUm9zYSBDQSA5NTQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMEQgICAoaGV4KQkJTWlkc3RyZWFtIFRlY2hub2xvZ2llcywgSW5jLgorMDAwNTBEICAgICAoYmFzZSAxNikJCU1pZHN0cmVhbSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk3NzcgMTA4dGggQXZlLiBORQorCQkJCVN1aXRlIDE3MDAKKwkJCQlCZWxsZXZ1ZSBXQSA5ODAwNC01MTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0wRSAgIChoZXgpCQkzd2FyZSwgSW5jLgorMDAwNTBFICAgICAoYmFzZSAxNikJCTN3YXJlLCBJbmMuCisJCQkJNzAxIEUuIE1pZGRsZWZpZWxkIFJkLgorCQkJCVN1aXRlIDMwMAorCQkJCU10LiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0wRiAgIChoZXgpCQlUYW5ha2EgUy9TIEx0ZC4KKzAwMDUwRiAgICAgKGJhc2UgMTYpCQlUYW5ha2EgUy9TIEx0ZC4KKwkJCQkxOTQyIE5vbXVyYSBIaXJvb2thCisJCQkJU2hpb2ppcmktQ2l0eQorCQkJCU5hZ2FubyAzOTktMDcwMiAKKwkJCQlKQVBBTgorCiswMC0wNS0xMCAgIChoZXgpCQlJbmZpbml0ZSBTaGFuZ2hhaSBDb21tdW5pY2F0aW9uIFRlcm1pbmFscyBMdGQuCiswMDA1MTAgICAgIChiYXNlIDE2KQkJSW5maW5pdGUgU2hhbmdoYWkgQ29tbXVuaWNhdGlvbiBUZXJtaW5hbHMgTHRkLgorCQkJCTc3NyBDaHVuZ2lhbyBSb2FkLCBQdWRvbmcKKwkJCQlTaGFuZ2hhaSAyMDEyMDYsCisJCQkJQ0hJTkEKKworMDAtMDUtMTEgICAoaGV4KQkJQ29tcGxlbWVudGFyeSBUZWNobm9sb2dpZXMgTHRkCiswMDA1MTEgICAgIChiYXNlIDE2KQkJQ29tcGxlbWVudGFyeSBUZWNobm9sb2dpZXMgTHRkCisJCQkJQ29tdGVjaCBIb3VzZSwgMjggTWFuY2hlc3RlciBSb2FkCisJCQkJV2VzdGhvdWdodG9uIEJPTFRPTgorCQkJCUJMNSAzUUoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNS0xMiAgIChoZXgpCQlNZXNoTmV0d29ya3MsIEluYy4KKzAwMDUxMiAgICAgKGJhc2UgMTYpCQlNZXNoTmV0d29ya3MsIEluYy4KKwkJCQk0ODUgS2VsbGVyIFJkLiwgU3VpdGUgMjUwCisJCQkJTWFpdGxhbmQgRkwgMzI3NTEtNzUzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMTMgICAoaGV4KQkJVlRMaW54IE11bHRpbWVkaWEgU3lzdGVtcywgSW5jLgorMDAwNTEzICAgICAoYmFzZSAxNikJCVZUTGlueCBNdWx0aW1lZGlhIFN5c3RlbXMsIEluYy4KKwkJCQk4NDAxIENvbGVzdmlsbGUgUm9hZCwKKwkJCQlTdWl0ZSA3NTAKKwkJCQlTaWx2ZXIgU3ByaW5nIE1EIDIwOTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0xNCAgIChoZXgpCQlLRFQgU3lzdGVtcyBDby4sIEx0ZC4KKzAwMDUxNCAgICAgKGJhc2UgMTYpCQlLRFQgU3lzdGVtcyBDby4sIEx0ZC4KKwkJCQkxMDItNiwgQ2hvYnUtTGksIE1vaHl1bi1NeXVuLAorCQkJCVlvbmdpbi1DaXR5LCBLeXVuZ2tpLURvLAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS0xNSAgIChoZXgpCQlOdWFyayBDby4sIEx0ZC4KKzAwMDUxNSAgICAgKGJhc2UgMTYpCQlOdWFyayBDby4sIEx0ZC4KKwkJCQkxMkYsIEFueWFuZyBLIGNlbnRlciwgMTU5MS05LCBCdXJpbS1kb25nCisJCQkJRG9uZ2FuLWd1LCBBbnlhbmctc2ksCisJCQkJR3VuZ2dpLWRvIDQzMS0wNjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtMTYgICAoaGV4KQkJU01BUlQgTW9kdWxhciBUZWNobm9sb2dpZXMKKzAwMDUxNiAgICAgKGJhc2UgMTYpCQlTTUFSVCBNb2R1bGFyIFRlY2hub2xvZ2llcworCQkJCTQzMDUgQ3VzaGluZyBQa3d5CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMTcgICAoaGV4KQkJU2hlbGxjb21tLCBJbmMuCiswMDA1MTcgICAgIChiYXNlIDE2KQkJU2hlbGxjb21tLCBJbmMuCisJCQkJUm0gIzYxMjIgRVRSSSBUQkkgQ2VudGVyLCAxLAorCQkJCUVvZXVuLURvbmcsIFl1c29uZy1HdSwgVGFlam9uLCAzMDUtMzMzLAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS0xOCAgIChoZXgpCQlKdXBpdGVycyBUZWNobm9sb2d5CiswMDA1MTggICAgIChiYXNlIDE2KQkJSnVwaXRlcnMgVGVjaG5vbG9neQorCQkJCVBPIEJveCAxMjY5MworCQkJCUVsaXphYmV0aCBTdHJlZXQgQnJpc2JhbmUgUUxEIDQwMDIKKwkJCQlBVVNUUkFMSUEKKworMDAtMDUtMTkgICAoaGV4KQkJU2llbWVucyBCdWlsZGluZyBUZWNobm9sb2dpZXMgQUcsCiswMDA1MTkgICAgIChiYXNlIDE2KQkJU2llbWVucyBCdWlsZGluZyBUZWNobm9sb2dpZXMgQUcsCisJCQkJQ2VyYmVydXMgRGl2aXNpb24KKwkJCQlhbHRlIExhbmRzdHJhc3NlIDQxMSBDSC04NzA4IE1hZW5uZWRvcmYKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wNS0xQSAgIChoZXgpCQkzQ29tIEV1cm9wZSBMdGQuCiswMDA1MUEgICAgIChiYXNlIDE2KQkJM0NvbSBFdXJvcGUgTHRkLgorCQkJCTNDb20gQ2VudHJlLCBCb3VuZGFyeSBXYXksCisJCQkJSGVtcHN0ZWFkLCBIZXJ0cywgSFAyIDdZVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA1LTFCICAgKGhleCkJCU1hZ2ljIENvbnRyb2wgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAwNTFCICAgICAoYmFzZSAxNikJCU1hZ2ljIENvbnRyb2wgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTZGLCBOby4gMTIwLTExIENodW5nIFNoYW4gUmQuCisJCQkJU2VjIDMsIENodW5nIEhvIFRhaXBlaQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDUtMUMgICAoaGV4KQkJWG5ldCBUZWNobm9sb2d5IENvcnAuCiswMDA1MUMgICAgIChiYXNlIDE2KQkJWG5ldCBUZWNobm9sb2d5IENvcnAuCisJCQkJOUYtMTYsIE5vLiAxMiwgTGFuZSA2MDksCisJCQkJU2VjLiA1LCBDaHVuZyBIc2luIFJvYWQsIFNhbiBDaHVuZyBDaXR5LAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDUtMUQgICAoaGV4KQkJQWlyb2NvbiwgSW5jLgorMDAwNTFEICAgICAoYmFzZSAxNikJCUFpcm9jb24sIEluYy4KKwkJCQkxMTYgSG91Z2h0b24gTGFuZQorCQkJCUJveGJvcm8gTUEgMDE3MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTFFICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorMDAwNTFFICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorCQkJCTE3NDUgVGVjaG5vbG9neSBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0xRiAgIChoZXgpCQlUYWlqaW4gTWVkaWEgQ28uLCBMdGQuCiswMDA1MUYgICAgIChiYXNlIDE2KQkJVGFpamluIE1lZGlhIENvLiwgTHRkLgorCQkJCTY0MC04IFR1bmdjaG9uLURvbmcKKwkJCQlLYW5nc2VvLUd1LAorCQkJCVNlb3VsICAxNTctMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTIwICAgKGhleCkJCVNtYXJ0cm9uaXgsIEluYy4KKzAwMDUyMCAgICAgKGJhc2UgMTYpCQlTbWFydHJvbml4LCBJbmMuCisJCQkJMjI2ODUgVGhyZWUgTm90Y2ggUmQuCisJCQkJQ2FsaWZvcm5pYSBNRCAyMDYxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMjEgICAoaGV4KQkJQ29udHJvbCBNaWNyb3N5c3RlbXMKKzAwMDUyMSAgICAgKGJhc2UgMTYpCQlDb250cm9sIE1pY3Jvc3lzdGVtcworCQkJCTQ4IFN0ZWFjaWUgRHJpdmUKKwkJCQlPbnRhcmlvICBLMksgMkE5CisJCQkJQ0FOQURBCisKKzAwLTA1LTIyICAgKGhleCkJCUxFQSpEIENvcnBvcmF0aW9uLCBJbmMuCiswMDA1MjIgICAgIChiYXNlIDE2KQkJTEVBKkQgQ29ycG9yYXRpb24sIEluYy4KKwkJCQlBZHZhdGVjaCBCbGRnLgorCQkJCVRlcmFkaW9uIEluZC4gUGFyayBELk4uIE1pc2dhdiwgMjAxNzkKKwkJCQlJU1JBRUwKKworMDAtMDUtMjMgICAoaGV4KQkJQVZMIExpc3QgR21iSAorMDAwNTIzICAgICAoYmFzZSAxNikJCUFWTCBMaXN0IEdtYkgKKwkJCQlIYW5zIExpc3QgUGxhdHogMQorCQkJCUEtODAyMCBHcmF6CisJCQkJQVVTVFJJQQorCiswMC0wNS0yNCAgIChoZXgpCQlCVEwgU3lzdGVtIChISykgTGltaXRlZAorMDAwNTI0ICAgICAoYmFzZSAxNikJCUJUTCBTeXN0ZW0gKEhLKSBMaW1pdGVkCisJCQkJMTQvRi4sIEJsay4gQiwgVml0YSBUb3dlciwKKwkJCQkyOSBXb25nIENodWsgSGFuZyBSZC4sCisJCQkJQWJlcmRlZW4gIAorCQkJCUhPTkcgS09ORworCiswMC0wNS0yNSAgIChoZXgpCQlQdXJldGVrIEluZHVzdHJpYWwgQ28uLCBMdGQuCiswMDA1MjUgICAgIChiYXNlIDE2KQkJUHVyZXRlayBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCU5vLiAxNCwgNCBGbHIuIExhbmUgMjM1CisJCQkJUGFvIENoaWFvIFJvYWQgSHNpbiBUaWVuLCBUYWlwZWkgSHNpZW4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LTI2ICAgKGhleCkJCUlQQVMgR21iSAorMDAwNTI2ICAgICAoYmFzZSAxNikJCUlQQVMgR21iSAorCQkJCUdyYWJlbnN0ci4gMTQ5YQorCQkJCTQ3MDU3IER1aXNidXJnCisJCQkJR0VSTUFOWQorCiswMC0wNS0yNyAgIChoZXgpCQlTSiBUZWsgQ28uIEx0ZAorMDAwNTI3ICAgICAoYmFzZSAxNikJCVNKIFRlayBDby4gTHRkCisJCQkJSG8gZ2FlIERvbmcgOTc2LTUsIERvbmcgQW4gS3UsCisJCQkJQW4geWFuZyBDaXR5LCBLeXVuZyBLZWUgRG8sCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTI4ICAgKGhleCkJCU5ldyBGb2N1cywgSW5jLgorMDAwNTI4ICAgICAoYmFzZSAxNikJCU5ldyBGb2N1cywgSW5jLgorCQkJCTI2MzAgV2Fsc2ggQXZlLgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0yOSAgIChoZXgpCQlTaGFuZ2hhaSBCcm9hZGFuIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZAorMDAwNTI5ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEJyb2FkYW4gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJMTVGLCBTdW50aW1lIEludGVybmF0aW9uYWwgTWFuc2lvbgorCQkJCU5vLiA0NTAgRnVzaGFuIFJvYWQsIFB1ZG9uZyBEaXN0cmljdCwgU2gKKwkJCQkyMDAxMjIKKwkJCQlDSElOQQorCiswMC0wNS0yQSAgIChoZXgpCQlJa2VnYW1pIFRzdXNoaW5raSBDby4sIEx0ZC4KKzAwMDUyQSAgICAgKGJhc2UgMTYpCQlJa2VnYW1pIFRzdXNoaW5raSBDby4sIEx0ZC4KKwkJCQk1LTYtMTYgSWtlZ2FtaSBPaHRhLWt1LAorCQkJCVRva3lvCisJCQkJMTQ2LTg1NjcKKwkJCQlKQVBBTgorCiswMC0wNS0yQiAgIChoZXgpCQlIT1JJQkEsIEx0ZC4KKzAwMDUyQiAgICAgKGJhc2UgMTYpCQlIT1JJQkEsIEx0ZC4KKwkJCQkyIE1peWFub2hpZ2FzaGksIEtpc3Nob2luLAorCQkJCU1pbmFtaS1rdSwgS3lvdG8KKwkJCQk2MDEtODUxMAorCQkJCUpBUEFOCisKKzAwLTA1LTJDICAgKGhleCkJCVN1cHJlbWUgTWFnaWMgQ29ycG9yYXRpb24KKzAwMDUyQyAgICAgKGJhc2UgMTYpCQlTdXByZW1lIE1hZ2ljIENvcnBvcmF0aW9uCisJCQkJU3VuIFRvd2VycyBDZW50ZXIgQmxkZy4sIDEzRgorCQkJCTItMTEtMjIsIFNhbmdlbi1qYXlhLCBTZXRhZ2F5YS1rdSwgVG9reW8KKwkJCQkxNTQtMDAyNAorCQkJCUpBUEFOCisKKzAwLTA1LTJEICAgKGhleCkJCVpvbHRyaXggSW50ZXJuYXRpb25hbCBMaW1pdGVkCiswMDA1MkQgICAgIChiYXNlIDE2KQkJWm9sdHJpeCBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKwkJCQlSb29tIDcwMSBQbyBIaW5nIENlbnRyZSwKKwkJCQkxOCBXYW4gQ2hpdSBSb2FkLCBLb3dsb29uLAorCQkJCUhPTkcgS09ORworCiswMC0wNS0yRSAgIChoZXgpCQlDaW50YSBOZXR3b3JrcworMDAwNTJFICAgICAoYmFzZSAxNikJCUNpbnRhIE5ldHdvcmtzCisJCQkJMzAxMCBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMkYgICAoaGV4KQkJTGV2aXRvbiBOZXR3b3JrIFNvbHV0aW9ucworMDAwNTJGICAgICAoYmFzZSAxNikJCUxldml0b24gTmV0d29yayBTb2x1dGlvbnMKKwkJCQkyMjIyIDIyMm5kIFN0cmVldCBTLkUuCisJCQkJQm90aGVsbCBXQSA5ODAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMzAgICAoaGV4KQkJQW5kaWFtbyBTeXN0ZW1zLCBJbmMuCiswMDA1MzAgICAgIChiYXNlIDE2KQkJQW5kaWFtbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTQxNzEgVGVlcmxpbmsgV2F5CisJCQkJU2FyYXRvZ2EgQ0EgOTUwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTMxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDUzMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0zMiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA1MzIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMzMgICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCiswMDA1MzMgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJMTc0NSBUZWNobm9sb2d5IERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0zNCAgIChoZXgpCQlOb3J0aHN0YXIgRW5naW5lZXJpbmcgTHRkLgorMDAwNTM0ICAgICAoYmFzZSAxNikJCU5vcnRoc3RhciBFbmdpbmVlcmluZyBMdGQuCisJCQkJUC5PLiBCb3ggNDAKKwkJCQlIZW5sZXktb24tVGhhbWVzIE94b24gUkc5IDZBRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA1LTM1ICAgKGhleCkJCUNoaXAgUEMgTHRkLgorMDAwNTM1ICAgICAoYmFzZSAxNikJCUNoaXAgUEMgTHRkLgorCQkJCTIwIEEuTC4gTW90emtpbiBTdC4KKwkJCQlUb3BheiBIb3VzZSwgTmFodW0gSGF0IDUgLCBQLk8uIEJveCA0CisJCQkJVGlyYXQgQ2FybWVsICAzOTEwMAorCQkJCUlTUkFFTAorCiswMC0wNS0zNiAgIChoZXgpCQlEYW5hbSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNTM2ICAgICAoYmFzZSAxNikJCURhbmFtIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJOTAwLTMsIEhva3llLWRvbmcsIERvbmdhbi1ndSwKKwkJCQlBbnlhbmcsIEt5dW5na2ktZG8sIDQzMS0wODIsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTM3ICAgKGhleCkJCU5ldHMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDUzNyAgICAgKGJhc2UgMTYpCQlOZXRzIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJI0IxIFl1bmdKdW4gQmxkZy4KKwkJCQkxNTQtMTAgU2Fuc3VuZy1Eb25nIEthbmduYW0tR3UKKwkJCQlTZW91bCAxMzUtMDkwICAxMzUtMDkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTM4ICAgKGhleCkJCU1lcmlsdXMsIEluYy4KKzAwMDUzOCAgICAgKGJhc2UgMTYpCQlNZXJpbHVzLCBJbmMuCisJCQkJIzMwNy00NjE2NSBZYWxlIFJvYWQKKwkJCQlDaGlsaXdhY2ssIEJDCisJCQkJVjJQIDJQMgorCQkJCUNBTkFEQQorCiswMC0wNS0zOSAgIChoZXgpCQlBIEJyYW5kIE5ldyBXb3JsZCBpbiBTd2VkZW4gQUIKKzAwMDUzOSAgICAgKGJhc2UgMTYpCQlBIEJyYW5kIE5ldyBXb3JsZCBpbiBTd2VkZW4gQUIKKwkJCQlCb3ggMTIyMworCQkJCVNFLTE2NCAyOCBLSVNUQQorCQkJCVNXRURFTgorCiswMC0wNS0zQSAgIChoZXgpCQlXaWxsb3dnbGVuIFNlcnZpY2VzIFB0ZSBMdGQKKzAwMDUzQSAgICAgKGJhc2UgMTYpCQlXaWxsb3dnbGVuIFNlcnZpY2VzIFB0ZSBMdGQKKwkJCQkxNTEgTG9yb25nIENodWFuLAorCQkJCU5ldyBUZWNoIFBhcmsgIzA1LTA3LAorCQkJCTU1Njc0MQorCQkJCVNJTkdBUE9SRQorCiswMC0wNS0zQiAgIChoZXgpCQlIYXJib3VyIE5ldHdvcmtzIEx0ZC4sIENvLiBCZWlqaW5nCiswMDA1M0IgICAgIChiYXNlIDE2KQkJSGFyYm91ciBOZXR3b3JrcyBMdGQuLCBDby4gQmVpamluZworCQkJCTEzL0YsIEppdUxpbmcgQnVpbGRpbmcsIE5vLiAyMSwKKwkJCQlYaVNhbkh1YW4gTm9ydGggUmQuLCBCZWlqaW5nCisJCQkJMTAwMDg5CisJCQkJQ0hJTkEKKworMDAtMDUtM0MgICAoaGV4KQkJWGlyY29tCiswMDA1M0MgICAgIChiYXNlIDE2KQkJWGlyY29tCisJCQkJMjMwMCBDb3Jwb3JhdGUgQ2VudGVyIERyLgorCQkJCVRob3VzYW5kIE9ha3MgQ0EgOTEzMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTNEICAgKGhleCkJCUFnZXJlIFN5c3RlbXMKKzAwMDUzRCAgICAgKGJhc2UgMTYpCQlBZ2VyZSBTeXN0ZW1zCisJCQkJMTM3MSBNY0NhcnRoeSBCbHZkLgorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0zRSAgIChoZXgpCQlLSUQgU3lzdGVtZSBHbWJICiswMDA1M0UgICAgIChiYXNlIDE2KQkJS0lEIFN5c3RlbWUgR21iSAorCQkJCUx1bmVidXJnZXIgU2NoYW56ZSAzMAorCQkJCTIxNjE0IEJ1eHRlaHVkZQorCQkJCUdFUk1BTlkKKworMDAtMDUtM0YgICAoaGV4KQkJVmlzaW9uVGVrLCBJbmMuCiswMDA1M0YgICAgIChiYXNlIDE2KQkJVmlzaW9uVGVrLCBJbmMuCisJCQkJMTE3NSBMYWtlc2lkZSBEci4KKwkJCQlHdXJuZWUgSUwgNjAwMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTQwICAgKGhleCkJCUZBU1QgQ29ycG9yYXRpb24KKzAwMDU0MCAgICAgKGJhc2UgMTYpCQlGQVNUIENvcnBvcmF0aW9uCisJCQkJMjc5MS01IFNoaW1vLVRzdXJ1bWEKKwkJCQlZYW1hdG8gS2FuYWdhd2EKKwkJCQkyNDItMDAwMQorCQkJCUpBUEFOCisKKzAwLTA1LTQxICAgKGhleCkJCUFkdmFuY2VkIFN5c3RlbXMgQ28uLCBMdGQuCiswMDA1NDEgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgU3lzdGVtcyBDby4sIEx0ZC4KKwkJCQkyLTktNyBOaXNoaWtpY2hvLAorCQkJCVRhY2hpa2F3YS1zaGksIFRva3lvCisJCQkJMTkwLTAwMjIKKwkJCQlKQVBBTgorCiswMC0wNS00MiAgIChoZXgpCQlPdGFyaSwgSW5jLgorMDAwNTQyICAgICAoYmFzZSAxNikJCU90YXJpLCBJbmMuCisJCQkJNC0zMy0zIEtva3VyeW8tY2hvLAorCQkJCUNob2Z1LXNoaSwgVG9reW8gMTgyLTAwMjIsCisJCQkJSkFQQU4KKworMDAtMDUtNDMgICAoaGV4KQkJSVEgV2lyZWxlc3MgR21iSAorMDAwNTQzICAgICAoYmFzZSAxNikJCUlRIFdpcmVsZXNzIEdtYkgKKwkJCQlDYXJsLVNjaGVlbGUtU3RyLiAxNAorCQkJCUQtMTI0ODkgQmVybGluCisJCQkJR0VSTUFOWQorCiswMC0wNS00NCAgIChoZXgpCQlWYWxsZXkgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA1NDQgICAgIChiYXNlIDE2KQkJVmFsbGV5IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEwMDYgV2VzdCBDb2xsZWdlIEF2ZS4KKwkJCQlTdWl0ZSAyMDAKKwkJCQlTdGF0ZSBDb2xsZWdlIFBBIDE2ODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS00NSAgIChoZXgpCQlJbnRlcm5ldCBQaG90b25pY3MKKzAwMDU0NSAgICAgKGJhc2UgMTYpCQlJbnRlcm5ldCBQaG90b25pY3MKKwkJCQkxMDMwIEJyb2FkIFN0LiwgMm5kIEZsb29yCisJCQkJU2hyZXdzYnVyeSBOSiAwNzcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNDYgICAoaGV4KQkJS0RESSBOZXR3b3JrICYgU29sdWx0aW9ucyBJbmMuCiswMDA1NDYgICAgIChiYXNlIDE2KQkJS0RESSBOZXR3b3JrICYgU29sdWx0aW9ucyBJbmMuCisJCQkJMi0zLTEsIE5pc2hpc2hpbmp1bmt1LWt1LAorCQkJCVRva3lvIDE2My0wOTA3CisJCQkJSkFQQU4KKworMDAtMDUtNDcgICAoaGV4KQkJU3RhcmVudCBOZXR3b3JrcworMDAwNTQ3ICAgICAoYmFzZSAxNikJCVN0YXJlbnQgTmV0d29ya3MKKwkJCQkzMCBJbnRlcm5hdGlvbmFsIFBsYWNlCisJCQkJVGV3a3NidXJ5IE1BIDAxODc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS00OCAgIChoZXgpCQlEaXNjbyBDb3Jwb3JhdGlvbgorMDAwNTQ4ICAgICAoYmFzZSAxNikJCURpc2NvIENvcnBvcmF0aW9uCisJCQkJMTMtMTEgT21vcmktS2l0YSAyLWNob21lCisJCQkJT3RhLWt1IFRva3lvIDE0My04NTgwCisJCQkJSkFQQU4KKworMDAtMDUtNDkgICAoaGV4KQkJU2FsaXJhIE9wdGljYWwgTmV0d29yayBTeXN0ZW1zCiswMDA1NDkgICAgIChiYXNlIDE2KQkJU2FsaXJhIE9wdGljYWwgTmV0d29yayBTeXN0ZW1zCisJCQkJMjY5NCBPcmNoYXJkIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNEEgICAoaGV4KQkJQXJpbyBEYXRhIE5ldHdvcmtzLCBJbmMuCiswMDA1NEEgICAgIChiYXNlIDE2KQkJQXJpbyBEYXRhIE5ldHdvcmtzLCBJbmMuCisJCQkJMjg5MCBaYW5rZXIgUm9hZCwgU3VpdGUgMjAzCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTRCICAgKGhleCkJCUVhdG9uIEF1dG9tYXRpb24gQUcKKzAwMDU0QiAgICAgKGJhc2UgMTYpCQlFYXRvbiBBdXRvbWF0aW9uIEFHCisJCQkJU3Bpbm5lcmVpc3RyYXNzZSA4CisJCQkJU3QuR2FsbGVuICA5MDA4IAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA1LTRDICAgKGhleCkJCVJGIElubm92YXRpb25zIFB0eSBMdGQKKzAwMDU0QyAgICAgKGJhc2UgMTYpCQlSRiBJbm5vdmF0aW9ucyBQdHkgTHRkCisJCQkJMjIgQm91bGRlciBSb2FkCisJCQkJTWFsYWdhIFdBICA2MDkwCisJCQkJQVVTVFJBTElBCisKKzAwLTA1LTREICAgKGhleCkJCUJyYW5zIFRlY2hub2xvZ2llcywgSW5jLgorMDAwNTREICAgICAoYmFzZSAxNikJCUJyYW5zIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTUwMSBCb3JhbWFlIEFjYWRlbXkgVG93ZXIKKwkJCQkzOTUtNjkgU2hpbmFlYmFuZy1Eb25nIFRvbmdqYWstR3UgU2VvdWwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtNEUgICAoaGV4KQkJUGhpbGlwcworMDAwNTRFICAgICAoYmFzZSAxNikJCVBoaWxpcHMKKwkJCQkxMDAwIFdlc3QgTWF1ZGUgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1LTI4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTRGICAgKGhleCkJCVBSSVZBVEUKKzAwMDU0RiAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMDUtNTAgICAoaGV4KQkJVmNvbW1zIENvbm5lY3QgTGltaXRlZAorMDAwNTUwICAgICAoYmFzZSAxNikJCVZjb21tcyBDb25uZWN0IExpbWl0ZWQKKwkJCQk3NSBUaGUgRXNwbGFuYWRlLCBMZXZlbCAzCisJCQkJUE8gQm94IDM4LTkyMAorCQkJCVdlbGxpbmd0b24gTWFpbCBDZW50cmUgNTA0NSBXZWxsaW5ndG9uIAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTA1LTUxICAgKGhleCkJCUYgJiBTIEVsZWt0cm9uaWsgU3lzdGVtZSBHbWJICiswMDA1NTEgICAgIChiYXNlIDE2KQkJRiAmIFMgRWxla3Ryb25payBTeXN0ZW1lIEdtYkgKKwkJCQlVbnRlcmUgV2FsZHBsYWV0emUgMjMKKwkJCQlELTcwNTY5IFN0dXR0Z2FydAorCQkJCUdFUk1BTlkKKworMDAtMDUtNTIgICAoaGV4KQkJWHljb3RlYyBDb21wdXRlciBHbWJICiswMDA1NTIgICAgIChiYXNlIDE2KQkJWHljb3RlYyBDb21wdXRlciBHbWJICisJCQkJS2FybC1IZWluei1CZWNrdXJ0cy1TdHIuIDQKKwkJCQlELTUyNDI4IEp1bGljaAorCQkJCUdFUk1BTlkKKworMDAtMDUtNTMgICAoaGV4KQkJRFZDIENvbXBhbnksIEluYy4KKzAwMDU1MyAgICAgKGJhc2UgMTYpCQlEVkMgQ29tcGFueSwgSW5jLgorCQkJCTEwMjAwIEh3eSAyOTAgVy4KKwkJCQlBdXN0aW4gVFggNzgyMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTU0ICAgKGhleCkJCVJhbmdlc3RhciBXaXJlbGVzcworMDAwNTU0ICAgICAoYmFzZSAxNikJCVJhbmdlc3RhciBXaXJlbGVzcworCQkJCTk1NjUgU29xdWVsIERyaXZlLCBTdWl0ZSAxMDAKKwkJCQlBcHRvcyBDQSA5NTAwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNTUgICAoaGV4KQkJSmFwYW4gQ2FzaCBNYWNoaW5lIENvLiwgTHRkLgorMDAwNTU1ICAgICAoYmFzZSAxNikJCUphcGFuIENhc2ggTWFjaGluZSBDby4sIEx0ZC4KKwkJCQlOby4gMy0xNSwgMi1jaG9tZSwgTmlzaGl3YWtpLAorCQkJCUhpcmFuby1rdSwgT3Nha2EKKwkJCQk1NDctMDAzNQorCQkJCUpBUEFOCisKKzAwLTA1LTU2ICAgKGhleCkJCTM2MCBTeXN0ZW1zCiswMDA1NTYgICAgIChiYXNlIDE2KQkJMzYwIFN5c3RlbXMKKwkJCQkzMTM1NSBBZ291cmEgUm9hZAorCQkJCVdlc3RsYWtlIFZpbGxhZ2UgQ0EgOTEzNjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTU3ICAgKGhleCkJCUFnaWxlIFRWIENvcnBvcmF0aW9uCiswMDA1NTcgICAgIChiYXNlIDE2KQkJQWdpbGUgVFYgQ29ycG9yYXRpb24KKwkJCQkzMzMgUmF2ZW5zd29vZCBBdmUuLAorCQkJCUJ1aWxkaW5nIDIwMgorCQkJCU1lbmxvIFBhcmsgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTU4ICAgKGhleCkJCVN5bmNocm9ub3VzLCBJbmMuCiswMDA1NTggICAgIChiYXNlIDE2KQkJU3luY2hyb25vdXMsIEluYy4KKwkJCQk3NyBMYXMgQ29saW5hcyBMYW5lCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTU5ICAgKGhleCkJCUludHJhY29tIFMuQS4KKzAwMDU1OSAgICAgKGJhc2UgMTYpCQlJbnRyYWNvbSBTLkEuCisJCQkJMTkgNSBLTSBNYXJrb3BvdWxvdSBBdmUuCisJCQkJMTkwMDIgUGVhbmlhCisJCQkJQXR0aWthICAKKwkJCQlHUkVFQ0UKKworMDAtMDUtNUEgICAoaGV4KQkJUG93ZXIgRHNpbmUgTHRkLgorMDAwNTVBICAgICAoYmFzZSAxNikJCVBvd2VyIERzaW5lIEx0ZC4KKwkJCQkxIEhhbmFnYXIgU3QuLCBQLk8uIEJveCA3MjIwCisJCQkJTmV2ZSBOZSdlbWFuIEluZHVzdHJpYWwgWm9uZSBIb2QgSGFzaGFybworCQkJCUlTUkFFTAorCiswMC0wNS01QiAgIChoZXgpCQlDaGFybGVzIEluZHVzdHJpZXMsIEx0ZC4KKzAwMDU1QiAgICAgKGJhc2UgMTYpCQlDaGFybGVzIEluZHVzdHJpZXMsIEx0ZC4KKwkJCQk1NjAwIEFwb2xsbyBEci4KKwkJCQlSb2xsaW5nIE1lYWRvd3MgSUwgNjAwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTVDICAgKGhleCkJCUtvd2EgQ29tcGFueSwgTHRkLgorMDAwNTVDICAgICAoYmFzZSAxNikJCUtvd2EgQ29tcGFueSwgTHRkLgorCQkJCUNob2Z1Z2Fva2EgMy0zLTEsCisJCQkJQ2hvZnUtc2ksIFRva3lvLAorCQkJCTE4Mi0wMDIxCisJCQkJSkFQQU4KKworMDAtMDUtNUQgICAoaGV4KQkJRC1MaW5rIFN5c3RlbXMsIEluYy4KKzAwMDU1RCAgICAgKGJhc2UgMTYpCQlELUxpbmsgU3lzdGVtcywgSW5jLgorCQkJCTUzIERpc2NvdmVyeSBEci4KKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTVFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDU1RSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS01RiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA1NUYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNjAgICAoaGV4KQkJTEVBREVSIENPTU0uQ08uLCBMVEQKKzAwMDU2MCAgICAgKGJhc2UgMTYpCQlMRUFERVIgQ09NTS5DTy4sIExURAorCQkJCTIzNCwgS29tYWUtcmksIEtpaGV1bmctZXVwLAorCQkJCVlvdW5nc2luLXNpLCBLeXVuZ2tpLWRvLAorCQkJCTQ0OS05MDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtNjEgICAoaGV4KQkJbmFjIEltYWdlIFRlY2hub2xvZ3ksIEluYy4KKzAwMDU2MSAgICAgKGJhc2UgMTYpCQluYWMgSW1hZ2UgVGVjaG5vbG9neSwgSW5jLgorCQkJCTgtNyBTYW5iYW4tY2hvLCBDaGl5b2RhLWt1LAorCQkJCVRva3lvLCAxMDItMDA3NQorCQkJCUpBUEFOCisKKzAwLTA1LTYyICAgKGhleCkJCURpZ2l0YWwgVmlldyBMaW1pdGVkCiswMDA1NjIgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBWaWV3IExpbWl0ZWQKKwkJCQkyMjAxIE5hbiBZYW5nIFBsYXphLAorCQkJCTU3IEh1bmd0byBSb2FkLCBLd3VuIFRvbmcsCisJCQkJS293bG9vbiAgCisJCQkJSE9ORyBLT05HCisKKzAwLTA1LTYzICAgKGhleCkJCUotV29ya3MsIEluYy4KKzAwMDU2MyAgICAgKGJhc2UgMTYpCQlKLVdvcmtzLCBJbmMuCisJCQkJMTIzMjggR2xhZHN0b25lIFN0LiAjMQorCQkJCVN5bG1vciBDQSA5MTM0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNjQgICAoaGV4KQkJVHNpbmdodWEgQml0d2F5IENvLiwgTHRkLgorMDAwNTY0ICAgICAoYmFzZSAxNikJCVRzaW5naHVhIEJpdHdheSBDby4sIEx0ZC4KKwkJCQkxMiBGbG9vciwgVG93ZXIgQywgQ29ycG9yYXRlCisJCQkJU3F1YXJlLCBOby4gMzUsIEZpbmFuY2lhbCBTdHJlZXQsIFhpY2hlbgorCQkJCUNISU5BCisKKzAwLTA1LTY1ICAgKGhleCkJCVRhaWx5biBDb21tdW5pY2F0aW9uIENvbXBhbnkgTHRkLgorMDAwNTY1ICAgICAoYmFzZSAxNikJCVRhaWx5biBDb21tdW5pY2F0aW9uIENvbXBhbnkgTHRkLgorCQkJCU5vLiA2MiwgTGFuZSAyMDUsIE5hbi1TYW4gUm9hZCwKKwkJCQlTZWMuIDIsIEx1LUNodSBIc2lhbmcsCisJCQkJVGFveXVhbiBIc2llbiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS02NiAgIChoZXgpCQlTZWN1aS5jb20gQ29ycG9yYXRpb24KKzAwMDU2NiAgICAgKGJhc2UgMTYpCQlTZWN1aS5jb20gQ29ycG9yYXRpb24KKwkJCQkxN3RoIEZsLiBTYW1zdW5nIFllb2tzYW0gQmxkZy4KKwkJCQk2NDctOSwgWWVva3NhbS1kb25nLCBLYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtNjcgICAoaGV4KQkJRXR5bW9uaWMgRGVzaWduLCBJbmMuCiswMDA1NjcgICAgIChiYXNlIDE2KQkJRXR5bW9uaWMgRGVzaWduLCBJbmMuCisJCQkJNDEgQnlyb24gQXZlbnVlCisJCQkJRG9yY2hlc3RlciwgT250YXJpbywKKwkJCQlOT0wgMUdPCisJCQkJQ0FOQURBCisKKzAwLTA1LTY4ICAgKGhleCkJCVBpbHRvZmlzaCBOZXR3b3JrcyBBQgorMDAwNTY4ICAgICAoYmFzZSAxNikJCVBpbHRvZmlzaCBOZXR3b3JrcyBBQgorCQkJCVN0b3JhIEJhZGh1c2dhdGFuIDE4LTIwCisJCQkJUy00MTEyMSBHb3RlYm9yZworCQkJCVNXRURFTgorCiswMC0wNS02OSAgIChoZXgpCQlWTXdhcmUsIEluYy4KKzAwMDU2OSAgICAgKGJhc2UgMTYpCQlWTXdhcmUsIEluYy4KKwkJCQkzNDAxIEhpbGx2aWV3IEF2ZW51ZQorCQkJCVBhbG8gQWx0byBDQSA5NDMwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNkEgICAoaGV4KQkJSGV1ZnQgU3lzdGVtdGVjaG5payBHbWJICiswMDA1NkEgICAgIChiYXNlIDE2KQkJSGV1ZnQgU3lzdGVtdGVjaG5payBHbWJICisJCQkJQnJvaGx0YWxzdHIgMzEtMzMKKwkJCQk1NjY1OSBCdXJnYnJvaGwKKwkJCQlEZXV0c2NobGFuZCAgCisJCQkJR0VSTUFOWQorCiswMC0wNS02QiAgIChoZXgpCQlDLlAuIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDA1NkIgICAgIChiYXNlIDE2KQkJQy5QLiBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTEyRiwgTm8uIDg2LCBIc2luIFRhaSBXdSBSZC4sCisJCQkJU2VjLiAxLCBIc2ktQ2hpaCwgVGFpcGVpIEhzaWVuLAorCQkJCTIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDUtNkMgICAoaGV4KQkJSHVuZyBDaGFuZyBDby4sIEx0ZC4KKzAwMDU2QyAgICAgKGJhc2UgMTYpCQlIdW5nIENoYW5nIENvLiwgTHRkLgorCQkJCTEzODUtMTQsIEp1YW4tRG9uZywKKwkJCQlOYW0ta3UsIEluY2hvbSwgNDAyLTIwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS02RCAgIChoZXgpCQlQYWNpZmljIENvcnBvcmF0aW9uCiswMDA1NkQgICAgIChiYXNlIDE2KQkJUGFjaWZpYyBDb3Jwb3JhdGlvbgorCQkJCTItMjMtMyBFYmlzdS1NaW5hbWkgU2hpYnV5YQorCQkJCVRva3lvIDE1MC0wMDIyCisJCQkJSkFQQU4KKworMDAtMDUtNkUgICAoaGV4KQkJTmF0aW9uYWwgRW5oYW5jZSBUZWNobm9sb2d5LCBJbmMuCiswMDA1NkUgICAgIChiYXNlIDE2KQkJTmF0aW9uYWwgRW5oYW5jZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMkYsIE5vLiAxOTYtMywgVGF0dW5nIFJkLiwgU2VjLiAzLAorCQkJCUhzaSBDaGloLCBUYWlwZWkgSHNpZW4sCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS02RiAgIChoZXgpCQlJbm5vbWVkaWEgVGVjaG5vbG9naWVzIFB2dC4gTHRkLgorMDAwNTZGICAgICAoYmFzZSAxNikJCUlubm9tZWRpYSBUZWNobm9sb2dpZXMgUHZ0LiBMdGQuCisJCQkJIzMyNzgsIDEydGggTWFpbiBSb2FkCisJCQkJSEFMIDJuZCBTdGFnZSBCYW5nYWxvcmUgLSA1NjAgMDA4CisJCQkJSU5ESUEKKworMDAtMDUtNzAgICAoaGV4KQkJQmF5ZGVsIEx0ZC4KKzAwMDU3MCAgICAgKGJhc2UgMTYpCQlCYXlkZWwgTHRkLgorCQkJCUJheWRlbCBIb3VzZQorCQkJCUJyb29rIFdheSBMZWF0aGVyaGVhZCwgU3VycmV5IEtUMjIgN05BCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDUtNzEgICAoaGV4KQkJU2Vpd2EgRWxlY3Ryb25pY3MgQ28uCiswMDA1NzEgICAgIChiYXNlIDE2KQkJU2Vpd2EgRWxlY3Ryb25pY3MgQ28uCisJCQkJNzU3IEFtYWJvdWtpLCBLdWtpemFraS1NYWNoaQorCQkJCUluYXNoaWtpLUd1biwgSWJhcmFraS1LZW4KKwkJCQkzMDAtMTI1MworCQkJCUpBUEFOCisKKzAwLTA1LTcyICAgKGhleCkJCURlb25ldCBDby4sIEx0ZC4KKzAwMDU3MiAgICAgKGJhc2UgMTYpCQlEZW9uZXQgQ28uLCBMdGQuCisJCQkJIzEyNy01IEppbnlvdW5nIEIvRCAzdGggRiwKKwkJCQlOb25JeXVuLURvbmcsIEthbmdOYW0tR3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS03MyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA1NzMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNzQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNTc0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTc1ICAgKGhleCkJCUNEUy1FbGVjdHJvbmljcyBCVgorMDAwNTc1ICAgICAoYmFzZSAxNikJCUNEUy1FbGVjdHJvbmljcyBCVgorCQkJCU1vemFydCBsYWFuIDMzMAorCQkJCTMxNDQgTkggTWFhc3NsdWlzCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDUtNzYgICAoaGV4KQkJTlNNIFRlY2hub2xvZ3kgTHRkLgorMDAwNTc2ICAgICAoYmFzZSAxNikJCU5TTSBUZWNobm9sb2d5IEx0ZC4KKwkJCQkyMiBGbG9vciwgVGltZXMgVG93ZXIKKwkJCQk5MjggQ2hldW5nIFNoYSBXYW4gUm9hZAorCQkJCUtvbG9vbiAgCisJCQkJSE9ORyBLT05HCisKKzAwLTA1LTc3ICAgKGhleCkJCVNNIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbgorMDAwNTc3ICAgICAoYmFzZSAxNikJCVNNIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbgorCQkJCTMzMC0xIFlhbmdqYWVkb25nCisJCQkJU2VvdWNoby1HdSwgU2VvdWwKKwkJCQkxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTc4ICAgKGhleCkJCVBSSVZBVEUKKzAwMDU3OCAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMDUtNzkgICAoaGV4KQkJVW5pdmVyc2FsIENvbnRyb2wgU29sdXRpb24gQ29ycC4KKzAwMDU3OSAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgQ29udHJvbCBTb2x1dGlvbiBDb3JwLgorCQkJCTEyODQzIEZvb3RoaWxsIEJsdmQuCisJCQkJVW5pdCAjZAorCQkJCVN5bG1hciBDQSA5MTM0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtN0EgICAoaGV4KQkJSGF0dGVyYXMgTmV0d29ya3MKKzAwMDU3QSAgICAgKGJhc2UgMTYpCQlIYXR0ZXJhcyBOZXR3b3JrcworCQkJCVAuTy4gQm94IEJveCAxMTAwMjUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTAwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTdCICAgKGhleCkJCUNodW5nIE5hbSBFbGVjdHJvbmljIENvLiwgTHRkLgorMDAwNTdCICAgICAoYmFzZSAxNikJCUNodW5nIE5hbSBFbGVjdHJvbmljIENvLiwgTHRkLgorCQkJCVVuaXQgMywgMS9GLCBGZXN0aWdvb2QgQ2VudHJlCisJCQkJTm8uIDggTG9rIFlpcCBSb2FkLCBPbiBMb2sKKwkJCQlUc3VlbiBGYW5saW5nLCAKKwkJCQlIT05HIEtPTkcKKworMDAtMDUtN0MgICAoaGV4KQkJUkNPIFNlY3VyaXR5IEFCCiswMDA1N0MgICAgIChiYXNlIDE2KQkJUkNPIFNlY3VyaXR5IEFCCisJCQkJQm94IDcwNQorCQkJCVNFIDE3NiAyNyBKYXJmYWxsYQorCQkJCVNXRURFTgorCiswMC0wNS03RCAgIChoZXgpCQlTdW4gQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDU3RCAgICAgKGJhc2UgMTYpCQlTdW4gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQlHbG9yaWEgQmxkZyA2dGgKKwkJCQkxLTMgQWdlYmEtQ2hvIFNoaW5qdWt1LWt1CisJCQkJVG9reW8gIDE2Mi0wODIKKwkJCQlKQVBBTgorCiswMC0wNS03RSAgIChoZXgpCQlFY2tlbG1hbm4gU3RldWVydW5nc3RlY2huaWsgR21iSAorMDAwNTdFICAgICAoYmFzZSAxNikJCUVja2VsbWFubiBTdGV1ZXJ1bmdzdGVjaG5payBHbWJICisJCQkJQmVybGluZXIgU3RyYXNzZSAxNjEKKwkJCQk2NTIwNSBXaWVzYmFkZW4KKwkJCQlHRVJNQU5ZCisKKzAwLTA1LTdGICAgKGhleCkJCUFjcWlzIFRlY2hub2xvZ3kKKzAwMDU3RiAgICAgKGJhc2UgMTYpCQlBY3FpcyBUZWNobm9sb2d5CisJCQkJMTYyMSBXZXN0IEVsIENhbWlubyBSZWFsCisJCQkJTXQuIFZpZXcgQ0EgOTQwNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTgwICAgKGhleCkJCUZpYnJvbGFuIEx0ZC4KKzAwMDU4MCAgICAgKGJhc2UgMTYpCQlGaWJyb2xhbiBMdGQuCisJCQkJNiBIYXlldHppcmEgU3RyZWV0CisJCQkJWW9rbmVhbSBJbGxpdCAyMDY5MgorCQkJCUlTUkFFTAorCiswMC0wNS04MSAgIChoZXgpCQlTbmVsbAorMDAwNTgxICAgICAoYmFzZSAxNikJCVNuZWxsCisJCQkJU291dGhsZWlnaCBQYXJrIEhvdXNlCisJCQkJRWFzdGxlaWdoIFJvYWQsIEhhdmFudAorCQkJCUhhbXBzaGlyZSAgUDA5IDJQRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA1LTgyICAgKGhleCkJCUNsZWFyQ3ViZSBUZWNobm9sb2d5CiswMDA1ODIgICAgIChiYXNlIDE2KQkJQ2xlYXJDdWJlIFRlY2hub2xvZ3kKKwkJCQk4ODM0IENhcGl0YWwgb2YgVGV4YXMgSHd5LAorCQkJCVN1aXRlIDE0MAorCQkJCUF1c3RpbiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtODMgICAoaGV4KQkJSW1hZ2VDb20gTGltaXRlZAorMDAwNTgzICAgICAoYmFzZSAxNikJCUltYWdlQ29tIExpbWl0ZWQKKwkJCQlDZWRhcnMgUGFyaywgQ2VkYXJzIFJvYWQsCisJCQkJTWFpZGVuaGVhZCwgQmVya3NoaXJlLAorCQkJCVNMNiAxUloKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNS04NCAgIChoZXgpCQlBYnNvbHV0ZVZhbHVlIFN5c3RlbXMsIEluYy4KKzAwMDU4NCAgICAgKGJhc2UgMTYpCQlBYnNvbHV0ZVZhbHVlIFN5c3RlbXMsIEluYy4KKwkJCQk3MTUtRCBOb3J0aCBEci4KKwkJCQlNZWxib3VybmUgRkwgMzI5MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTg1ICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MsIEluYy4KKzAwMDU4NSAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzLCBJbmMuCisJCQkJMTE5NCBOLiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTg2ICAgKGhleCkJCUx1Y2VudCBUZWNobm9sb2dpZXMKKzAwMDU4NiAgICAgKGJhc2UgMTYpCQlMdWNlbnQgVGVjaG5vbG9naWVzCisJCQkJMTcwMSBIYXJib3IgQmF5IFBhcmt3YXkKKwkJCQlBbGFtZWRhIENBIDk0NTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS04NyAgIChoZXgpCQlMb2N1cywgSW5jb3Jwb3JhdGVkCiswMDA1ODcgICAgIChiYXNlIDE2KQkJTG9jdXMsIEluY29ycG9yYXRlZAorCQkJCTU1NDAgUmVzZWFyY2ggUGFyayBEcml2ZQorCQkJCUZpdGNoYnVyZyBDZW50ZXIKKwkJCQlNYWRpc29uIFdJIDUzNzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS04OCAgIChoZXgpCQlTZW5zb3JpYSBDb3JwLgorMDAwNTg4ICAgICAoYmFzZSAxNikJCVNlbnNvcmlhIENvcnAuCisJCQkJMTU5NTAgQmVybmFyZG8gQ3RyLiBEci4KKwkJCQlTdWl0ZSBKCisJCQkJU2FuIERpZWdvIENBIDkyMTI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS04OSAgIChoZXgpCQlOYXRpb25hbCBEYXRhY29tcHV0ZXIKKzAwMDU4OSAgICAgKGJhc2UgMTYpCQlOYXRpb25hbCBEYXRhY29tcHV0ZXIKKwkJCQk5MDAgTWlkZGxlc2V4IFRway4KKwkJCQlCaWxsZXJpY2EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LThBICAgKGhleCkJCU5ldGNvbSBDby4sIEx0ZC4KKzAwMDU4QSAgICAgKGJhc2UgMTYpCQlOZXRjb20gQ28uLCBMdGQuCisJCQkJMUYsIE5vLiA3LCBMYW5lIDI0MiwKKwkJCQlIdSBMaWluIFN0cmVldAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS04QiAgIChoZXgpCQlJUG1lbnRhbCwgSW5jLgorMDAwNThCICAgICAoYmFzZSAxNikJCUlQbWVudGFsLCBJbmMuCisJCQkJOEYtOSwgTm8uIDM1LCBIc2luIFRhaSBSZC4KKwkJCQlKdWliZWksIEhzaW5jaHUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LThDICAgKGhleCkJCU9wZW50ZWNoIEluYy4KKzAwMDU4QyAgICAgKGJhc2UgMTYpCQlPcGVudGVjaCBJbmMuCisJCQkJNkYsIERvbmdXb24gQmxkZy4sIDI3NQorCQkJCVlvdW5namFlLURvbmcsIFNlb2Noby1HdSwKKwkJCQlTZW91bCAgMTM3LTEzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS04RCAgIChoZXgpCQlMeW54IFBob3RvbmljIE5ldHdvcmtzLCBJbmMuCiswMDA1OEQgICAgIChiYXNlIDE2KQkJTHlueCBQaG90b25pYyBOZXR3b3JrcywgSW5jLgorCQkJCTEzIEhhbWVsYWhhIFN0LgorCQkJCVJvc2gtSGVheW4KKwkJCQlJU1JBRUwKKworMDAtMDUtOEUgICAoaGV4KQkJRmxleHRyb25pY3MgSW50ZXJuYXRpb25hbCBHbWJIICYgQ28uIE5mZy4gS0cKKzAwMDU4RSAgICAgKGJhc2UgMTYpCQlGbGV4dHJvbmljcyBJbnRlcm5hdGlvbmFsIEdtYkggJiBDby4gTmZnLiBLRworCQkJCVNjaHJhY2tnYXNzZSA5LTE1CisJCQkJS2luZGJlcmcgIDg2NTAKKwkJCQlBVVNUUklBCisKKzAwLTA1LThGICAgKGhleCkJCUNMQ3NvZnQgY28uCiswMDA1OEYgICAgIChiYXNlIDE2KQkJQ0xDc29mdCBjby4KKwkJCQlEZXB0LiBvZiBFbGVjdHJpY2FsIEVuZ2luZWVyaW5nCisJCQkJS0FJU1QsIDM3My0xIEt1c2VvbmctZG9uZywgWXVzZW9uZy1ndSwgRAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS05MCAgIChoZXgpCQlTd2lzc3ZvaWNlIEx0ZC4KKzAwMDU5MCAgICAgKGJhc2UgMTYpCQlTd2lzc3ZvaWNlIEx0ZC4KKwkJCQlaaWVnZWxtYXR0c3RyYXNzZSAxCisJCQkJNDUwMyBTb2xvdGh1cm4KKwkJCQlTV0lUWkVSTEFORAorCiswMC0wNS05MSAgIChoZXgpCQlBY3RpdmUgU2lsaWNvbiBMdGQuCiswMDA1OTEgICAgIChiYXNlIDE2KQkJQWN0aXZlIFNpbGljb24gTHRkLgorCQkJCUJydW5uZWwgU2NpZW5jZSBQYXJrCisJCQkJS2luZ3N0b24gTGFuZSwgVXhicmlkZ2UsCisJCQkJTWlkZHggIFVCOCAzUFEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNS05MiAgIChoZXgpCQlQdWx0ZWsgQ29ycC4KKzAwMDU5MiAgICAgKGJhc2UgMTYpCQlQdWx0ZWsgQ29ycC4KKwkJCQk3NC0xLCBZYW1hc2hpdGEtY2hvLAorCQkJCU5ha2Eta3UsIFRva29oYW1hLWNpdHksCisJCQkJMjMxLTAwMjMKKwkJCQlKQVBBTgorCiswMC0wNS05MyAgIChoZXgpCQlHcmFtbWFyIEVuZ2luZSBJbmMuCiswMDA1OTMgICAgIChiYXNlIDE2KQkJR3JhbW1hciBFbmdpbmUgSW5jLgorCQkJCTkyMSBFYXN0d2luZCBEcml2ZQorCQkJCVN1aXRlIDEyMgorCQkJCVdlc3RlcnZpbGxlIE9IIDQzMDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS05NCAgIChoZXgpCQlJWFhBVCBBdXRvbWF0aW9uIEdtYkgKKzAwMDU5NCAgICAgKGJhc2UgMTYpCQlJWFhBVCBBdXRvbWF0aW9uIEdtYkgKKwkJCQlMZWlibml6c3RyYXNzZSAxNQorCQkJCTg4MjUwIFdlaW5nYXJ0ZW4KKwkJCQlHRVJNQU5ZCisKKzAwLTA1LTk1ICAgKGhleCkJCUFsZXNpcyBDb3Jwb3JhdGlvbgorMDAwNTk1ICAgICAoYmFzZSAxNikJCUFsZXNpcyBDb3Jwb3JhdGlvbgorCQkJCTE2MzMgMjZ0aCBTdHJlZXQKKwkJCQlTYW50YSBNb25pY2EgQ0EgOTA0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTk2ICAgKGhleCkJCUdlbm90ZWNoIENvLiwgTHRkLgorMDAwNTk2ICAgICAoYmFzZSAxNikJCUdlbm90ZWNoIENvLiwgTHRkLgorCQkJCSMzMDggR3Vua29vayBCbGRnLiwKKwkJCQkyODgtMSBEb2tzYW4tRG9uZworCQkJCUd1bWNob24tR3UgU2VvdWwgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTk3ICAgKGhleCkJCUVhZ2xlIFRyYWZmaWMgQ29udHJvbCBTeXN0ZW1zCiswMDA1OTcgICAgIChiYXNlIDE2KQkJRWFnbGUgVHJhZmZpYyBDb250cm9sIFN5c3RlbXMKKwkJCQk4MDA0IENhbWVyb24gUm9hZAorCQkJCUF1c3RpbiBUWCA3ODc1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtOTggICAoaGV4KQkJQ1JPTk9TIFMuci5sLgorMDAwNTk4ICAgICAoYmFzZSAxNikJCUNST05PUyBTLnIubC4KKwkJCQlWaWEgY2F2b3VyIDU4L0EKKwkJCQkyMzkwMCBMRUNDTyAoTEMpCisJCQkJSVRBTFkKKworMDAtMDUtOTkgICAoaGV4KQkJRFJTIFRlc3QgYW5kIEVuZXJneSBNYW5hZ2VtZW50IG9yIERSUy1URU0KKzAwMDU5OSAgICAgKGJhc2UgMTYpCQlEUlMgVGVzdCBhbmQgRW5lcmd5IE1hbmFnZW1lbnQgb3IgRFJTLVRFTQorCQkJCTExMCBXeW5uIERyaXZlCisJCQkJSHVudHN2aWxsZSBBTCAzNTgwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtOUEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNTlBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtOUIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNTlCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtOUMgICAoaGV4KQkJS2xlaW5rbmVjaHQgR21iSCwgSW5nLiBCdWVybworMDAwNTlDICAgICAoYmFzZSAxNikJCUtsZWlua25lY2h0IEdtYkgsIEluZy4gQnVlcm8KKwkJCQlCYWNoc3RyYXNzZSAzMAorCQkJCUQtODI1NDEgTXVlbnNpbmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA1LTlEICAgKGhleCkJCURhbmllbCBDb21wdXRpbmcgU3lzdGVtcywgSW5jLgorMDAwNTlEICAgICAoYmFzZSAxNikJCURhbmllbCBDb21wdXRpbmcgU3lzdGVtcywgSW5jLgorCQkJCTMyMDggOHRoIEF2ZW51ZSBORSAjMTE4CisJCQkJQ2FsZ2FyeSBBbGJlcnRhCisJCQkJVDJBIDdWOAorCQkJCUNBTkFEQQorCiswMC0wNS05RSAgIChoZXgpCQlaaW53ZWxsIENvcnBvcmF0aW9uCiswMDA1OUUgICAgIChiYXNlIDE2KQkJWmlud2VsbCBDb3Jwb3JhdGlvbgorCQkJCTdGLCBOby41MTIsIFl1YW4tU2hhbiBSb2FkCisJCQkJQ2hhbmctaG8gY2l0eSBUYWlwZWkgSHNpZW4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LTlGICAgKGhleCkJCVlvdHRhIE5ldHdvcmtzLCBJbmMuCiswMDA1OUYgICAgIChiYXNlIDE2KQkJWW90dGEgTmV0d29ya3MsIEluYy4KKwkJCQkyMjAxIEF2ZW51ZSBLCisJCQkJUGxhbm8gVFggNzUwNzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUEwICAgKGhleCkJCU1PQklMSU5FIEtmdC4KKzAwMDVBMCAgICAgKGJhc2UgMTYpCQlNT0JJTElORSBLZnQuCisJCQkJTGVoZWwgVXRjYSAxNAorCQkJCUJVREFQRVNUCisJCQkJSC0xMTM0CisJCQkJSFVOR0FSWQorCiswMC0wNS1BMSAgIChoZXgpCQlaZW5vY29tCiswMDA1QTEgICAgIChiYXNlIDE2KQkJWmVub2NvbQorCQkJCU5vLjQwMiwgNHRoIGZsb29yLCBXb25nb2sgQmxkZy4KKwkJCQk4MzAtMzgsIFlva3NhbS1Eb25nLCBHYW5nbmFtLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1BMiAgIChoZXgpCQlDRUxPWCBOZXR3b3JrcworMDAwNUEyICAgICAoYmFzZSAxNikJCUNFTE9YIE5ldHdvcmtzCisJCQkJOTQwIFdlc3QgUG9ydCBQbGF6YSAtIFN0ZS4gIzMwMAorCQkJCVN0LiBMb3VpcyBNTyA2MzE0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQTMgICAoaGV4KQkJUUVJLCBJbmMuCiswMDA1QTMgICAgIChiYXNlIDE2KQkJUUVJLCBJbmMuCisJCQkJNjAgRmFkZW0gUm9hZAorCQkJCVNwcmluZ2ZpZWxkIE5KIDA3MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1BNCAgIChoZXgpCQlMdWNpZCBWb2ljZSBMdGQuCiswMDA1QTQgICAgIChiYXNlIDE2KQkJTHVjaWQgVm9pY2UgTHRkLgorCQkJCTUgSmFib3RpbnNraSBTdHJlZXQKKwkJCQlSYW1hdC1HYW4sIDUyNTIwCisJCQkJSVNSQUVMCisKKzAwLTA1LUE1ICAgKGhleCkJCUtPVFQKKzAwMDVBNSAgICAgKGJhc2UgMTYpCQlLT1RUCisJCQkJU3VpdGUgMzA1IERhZWhhIEIvRAorCQkJCTY4MCBZZW9rc2FtLURvbmcsIEthbmdOYW0tR3UgU2VvdWwKKwkJCQkxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUE2ICAgKGhleCkJCUV4dHJvbiBFbGVjdHJvbmljcworMDAwNUE2ICAgICAoYmFzZSAxNikJCUV4dHJvbiBFbGVjdHJvbmljcworCQkJCTEyMzAgUy4gTGV3aXMKKwkJCQlBbmFoaWVtIENBIDkyODA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1BNyAgIChoZXgpCQlIeXBlcmNoaXAsIEluYy4KKzAwMDVBNyAgICAgKGJhc2UgMTYpCQlIeXBlcmNoaXAsIEluYy4KKwkJCQkxODAgUGVlbCBTdHJlZXQgLSBTdGUuICMzMzMKKwkJCQlNb250cmVhbCwgUXVlYmVjCisJCQkJSDNDIDJHNworCQkJCUNBTkFEQQorCiswMC0wNS1BOCAgIChoZXgpCQlXWUxFIEVMRUNUUk9OSUNTCiswMDA1QTggICAgIChiYXNlIDE2KQkJV1lMRSBFTEVDVFJPTklDUworCQkJCTMwMDAgQk9XRVJTIEFWRU5VRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxLTA5MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUE5ICAgKGhleCkJCVByaW5jZXRvbiBOZXR3b3JrcywgSW5jLgorMDAwNUE5ICAgICAoYmFzZSAxNikJCVByaW5jZXRvbiBOZXR3b3JrcywgSW5jLgorCQkJCTEwMCBDZW50dXJ5IENlbnRlciBDdC4gIzEwMAorCQkJCVNhbiBKb3NlIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1BQSAgIChoZXgpCQlNb29yZSBJbmR1c3RyaWVzIEludGVybmF0aW9uYWwgSW5jLgorMDAwNUFBICAgICAoYmFzZSAxNikJCU1vb3JlIEluZHVzdHJpZXMgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJMTY2NTAgU2Nob2VuYm9ybiBTdC4KKwkJCQlOb3J0aCBIaWxscyBDQSA5MTM0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQUIgICAoaGV4KQkJQ3liZXIgRm9uZSwgSW5jLgorMDAwNUFCICAgICAoYmFzZSAxNikJCUN5YmVyIEZvbmUsIEluYy4KKwkJCQk5ODkgT2xkIEVhZ2xlIFNjaG9vbCBSb2FkCisJCQkJU3VpdGUgODAwCisJCQkJV2F5bmUgUEEgMTkwODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUFDICAgKGhleCkJCU5vcnRoZXJuIERpZ2l0YWwsIEluYy4KKzAwMDVBQyAgICAgKGJhc2UgMTYpCQlOb3J0aGVybiBEaWdpdGFsLCBJbmMuCisJCQkJMTAzIFJhbmRhbGwgRHJpdmUKKwkJCQlXYXRlcmxvbyAgT250YXJpbyBOMlYgMUM1CisJCQkJQ0FOQURBCisKKzAwLTA1LUFEICAgKGhleCkJCVRvcHNwaW4gQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDVBRCAgICAgKGJhc2UgMTYpCQlUb3BzcGluIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNTE1IEVsbGlzIFN0cmVldAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUFFICAgKGhleCkJCU1lZGlhcG9ydCBVU0EKKzAwMDVBRSAgICAgKGJhc2UgMTYpCQlNZWRpYXBvcnQgVVNBCisJCQkJMTcxNTEgTmV3aG9wZSBBdmUuICMyMDIKKwkJCQlGb3VudGFpbiBWYWxsZXkgQ0EgOTI3MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUFGICAgKGhleCkJCUlubm9TY2FuIENvbXB1dGluZyBBL1MKKzAwMDVBRiAgICAgKGJhc2UgMTYpCQlJbm5vU2NhbiBDb21wdXRpbmcgQS9TCisJCQkJU29yZW4gRnJpY2hzdmVqIDQyUgorCQkJCURLLTgyMzAgQWFieWhvagorCQkJCURFTk1BUksKKworMDAtMDUtQjAgICAoaGV4KQkJS29yZWEgQ29tcHV0ZXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDVCMCAgICAgKGJhc2UgMTYpCQlLb3JlYSBDb21wdXRlciBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCUtDVCBCbGRnLCAxMTEtMyBZYW5namFlLURvbmcsCisJCQkJU2VvY2hvLUd1LCBTZW91bAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1CMSAgIChoZXgpCQlBU0IgVGVjaG5vbG9neSBCVgorMDAwNUIxICAgICAoYmFzZSAxNikJCUFTQiBUZWNobm9sb2d5IEJWCisJCQkJRGUgUm9uZGUgMTVBCisJCQkJNTY4MyBDWiBCZXN0CisJCQkJTkVUSEVSTEFORFMKKworMDAtMDUtQjIgICAoaGV4KQkJTWVkaXNvbiBDby4sIEx0ZC4KKzAwMDVCMiAgICAgKGJhc2UgMTYpCQlNZWRpc29uIENvLiwgTHRkLgorCQkJCTk5Ny00LCBTYWVjaGktRG9uZywKKwkJCQlLYW5nbmFtLWt1LCBTb3VlbCwKKwkJCQkxMzUtMjgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUIzICAgKGhleCkJCUFzYWhpLUVuZ2luZWVyaW5nIENvLiwgTHRkLgorMDAwNUIzICAgICAoYmFzZSAxNikJCUFzYWhpLUVuZ2luZWVyaW5nIENvLiwgTHRkLgorCQkJCTMtNi0xMi0yIEdha3VlbmhpZ2FzaGktY2hvCisJCQkJS29kYWlyYS1zaGkKKwkJCQlUb2t5byAgMTg3LTAwNDMKKwkJCQlKQVBBTgorCiswMC0wNS1CNCAgIChoZXgpCQlBY2VleCBDb3Jwb3JhdGlvbgorMDAwNUI0ICAgICAoYmFzZSAxNikJCUFjZWV4IENvcnBvcmF0aW9uCisJCQkJMkYsIE5vLiAyLCBBbGxleSAxLCBTemUtV2VpIExhbmUKKwkJCQlDaHVuZy1DaGVuZyBSZC4sIEhzaW50aWVuLCBUYWlwZWkKKwkJCQkyMzEzOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDUtQjUgICAoaGV4KQkJQnJvYWRjb20gVGVjaG5vbG9naWVzCiswMDA1QjUgICAgIChiYXNlIDE2KQkJQnJvYWRjb20gVGVjaG5vbG9naWVzCisJCQkJMTM3LTA2MAorCQkJCTg1OC0zMSBZdWplb25nIEJMRCwgQmFuZ2JhZS1Eb25nCisJCQkJU2VjaG8tR3UgU2VvdWwsIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1CNiAgIChoZXgpCQlJTlNZUyBNaWNyb2VsZWN0cm9uaWNzIEdtYkgKKzAwMDVCNiAgICAgKGJhc2UgMTYpCQlJTlNZUyBNaWNyb2VsZWN0cm9uaWNzIEdtYkgKKwkJCQlXYWZmbmVyZ2Fzc2UgOAorCQkJCTkzMDQ3IFJlZ2Vuc2J1cmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA1LUI3ICAgKGhleCkJCUFyYm9yIFRlY2hub2xvZ3kgQ29ycC4KKzAwMDVCNyAgICAgKGJhc2UgMTYpCQlBcmJvciBUZWNobm9sb2d5IENvcnAuCisJCQkJNUYsIE5vLiA3MzgsIFpob25nIFpoZW5nIFJkLiwKKwkJCQlaaG9uZyBIbyAyMzUsIFRhaXBlaSwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LUI4ICAgKGhleCkJCUVsZWN0cm9uaWMgRGVzaWduIEFzc29jaWF0ZXMsIEluYy4KKzAwMDVCOCAgICAgKGJhc2UgMTYpCQlFbGVjdHJvbmljIERlc2lnbiBBc3NvY2lhdGVzLCBJbmMuCisJCQkJMzMxIEFyY2FkbyBSZC4gTlcKKwkJCQlTdWl0ZSBDLTEKKwkJCQlMaWxidXJuIEdBIDMwMDQ3LTI4NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUI5ICAgKGhleCkJCUFpcnZhbmEsIEluYy4KKzAwMDVCOSAgICAgKGJhc2UgMTYpCQlBaXJ2YW5hLCBJbmMuCisJCQkJMjUgSW5kdXN0cmlhbCBBdmUuCisJCQkJQ2hsZW1zZm9yZCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQkEgICAoaGV4KQkJQXJlYSBOZXR3b2VrcywgSW5jLgorMDAwNUJBICAgICAoYmFzZSAxNikJCUFyZWEgTmV0d29la3MsIEluYy4KKwkJCQkxMTQ4IEV1Y2xpZCBBdmUuLCBTdWl0ZSA0MDAKKwkJCQlDbGV2ZWxhbmQgT0ggNDQxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQkIgICAoaGV4KQkJTXlzcGFjZSBBQgorMDAwNUJCICAgICAoYmFzZSAxNikJCU15c3BhY2UgQUIKKwkJCQlTdmVhdmFnZW4gMzMKKwkJCQlTRS0xMTEzNCBTdG9ja2hvbG0KKwkJCQlTV0VERU4KKworMDAtMDUtQkMgICAoaGV4KQkJUmVzb3JzeXMgTHRkLgorMDAwNUJDICAgICAoYmFzZSAxNikJCVJlc29yc3lzIEx0ZC4KKwkJCQk4MCBKb2huc2RvbmUgQXZlbnVlLAorCQkJCUhpbGluZ3RvbiwgR2xhc2dvdywKKwkJCQlTY290bGFuZCAgRzUyIDRMVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA1LUJEICAgKGhleCkJCVJPQVggQlYKKzAwMDVCRCAgICAgKGJhc2UgMTYpCQlST0FYIEJWCisJCQkJU3RlcnJlbmJlcmd3ZWcgMjkKKwkJCQlOTC0zNzY5IEJTICBTT0VTVEVSQkVSRworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTA1LUJFICAgKGhleCkJCUtvbmdzYmVyZyBTZWF0ZXggQVMKKzAwMDVCRSAgICAgKGJhc2UgMTYpCQlLb25nc2JlcmcgU2VhdGV4IEFTCisJCQkJUGlyc2VudGVyZXQKKwkJCQlOLTc1NjIgVHJvbmRoZWltCisJCQkJTk9SV0FZCisKKzAwLTA1LUJGICAgKGhleCkJCUp1c3RFenkgVGVjaG5vbG9neSwgSW5jLgorMDAwNUJGICAgICAoYmFzZSAxNikJCUp1c3RFenkgVGVjaG5vbG9neSwgSW5jLgorCQkJCTVGLCBOby4gMzI0LCBTZWMuIDEsIEp1bmdodWEgUmQuCisJCQkJSHNpbmNodSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS1DMCAgIChoZXgpCQlEaWdpdGFsIE5ldHdvcmsgQWxhY2FydGUgQ28uLCBMdGQuCiswMDA1QzAgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBOZXR3b3JrIEFsYWNhcnRlIENvLiwgTHRkLgorCQkJCUExMDQsIFNlb3VsIEJ1c2luZXNzIEluY3ViYXRvcgorCQkJCTY0Ny0yNiwgRGV1bmdDaHVuLURvbmcsIEthbmdzZW8tR3UKKwkJCQlTZW91bCAgMTU3LTAzMCwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtQzEgICAoaGV4KQkJQS1LeXVuZyBNb3Rpb24sIEluYy4KKzAwMDVDMSAgICAgKGJhc2UgMTYpCQlBLUt5dW5nIE1vdGlvbiwgSW5jLgorCQkJCTU0LTEwLCBNdW5qdW5nLURvbmcKKwkJCQlTb25ncGEtS3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1DMiAgIChoZXgpCQlTb3JvbnRpLCBJbmMuCiswMDA1QzIgICAgIChiYXNlIDE2KQkJU29yb250aSwgSW5jLgorCQkJCTEyMjU3IFNvdXRoIEJ1c2luZXNzIFBhcmsgRHJpdmUKKwkJCQkjMTYwCisJCQkJRHJhcGVyIFV0YWggODQwMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUMzICAgKGhleCkJCVBhY2lmaWMgSW5zdHJ1bWVudHMsIEluYy4KKzAwMDVDMyAgICAgKGJhc2UgMTYpCQlQYWNpZmljIEluc3RydW1lbnRzLCBJbmMuCisJCQkJNDA4MCBQaWtlIExhbmUKKwkJCQlDb25jb3JkIENBIDk0NTIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1DNCAgIChoZXgpCQlUZWxlY3QsIEluYy4KKzAwMDVDNCAgICAgKGJhc2UgMTYpCQlUZWxlY3QsIEluYy4KKwkJCQkyMTExIE4uIE1vbHRlciBSb2FkCisJCQkJTGliZXJ0eSBMYWtlIFdBIDk5MDE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1DNSAgIChoZXgpCQlGbGFnYSBIRgorMDAwNUM1ICAgICAoYmFzZSAxNikJCUZsYWdhIEhGCisJCQkJVmVzdHVyaGxpZCA3CisJCQkJSVMtMTA1IFJleWtqYXZpaworCQkJCUlDRUxBTkQKKworMDAtMDUtQzYgICAoaGV4KQkJVHJpeiBDb21tdW5pY2F0aW9ucworMDAwNUM2ICAgICAoYmFzZSAxNikJCVRyaXogQ29tbXVuaWNhdGlvbnMKKwkJCQlBbndvbiBCbGRnLiA3dGggRmwuCisJCQkJMTQtMTUgWW9pZG8tRG9uZyBZb3VuZ2RldW5ncG8tR3UKKwkJCQlTZW91bCAgMTUwLTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1DNyAgIChoZXgpCQlJL0YtQ09NIEEvUworMDAwNUM3ICAgICAoYmFzZSAxNikJCUkvRi1DT00gQS9TCisJCQkJRWxsZWdhYXJkdmVqIDM2CisJCQkJNjQwMCBTb2VuZGVyYm9yZworCQkJCURFTk1BUksKKworMDAtMDUtQzggICAoaGV4KQkJVkVSWVRFQ0gKKzAwMDVDOCAgICAgKGJhc2UgMTYpCQlWRVJZVEVDSAorCQkJCSM0MDIsIEphbmcgWW91bmcgU2hpbCBLd2FuLAorCQkJCVZlbnR1cmUgVG93biwgMTY4OC01IFNoaW5pbC1Eb25nLCBEYWVkZW8KKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtQzkgICAoaGV4KQkJTEcgSW5ub3RlayBDby4sIEx0ZC4KKzAwMDVDOSAgICAgKGJhc2UgMTYpCQlMRyBJbm5vdGVrIENvLiwgTHRkLgorCQkJCUxHIENvbXBvbmVudCBSJkQgQ2VudGVyCisJCQkJMTI3MSwgU2EtRG9uZywgU2FuZ3Jvay1ndQorCQkJCUFuc2FuLXNpIEd5ZW9uZ2dpLWRvIDQyNi03OTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtQ0EgICAoaGV4KQkJSGl0cm9uIFRlY2hub2xvZ3ksIEluYy4KKzAwMDVDQSAgICAgKGJhc2UgMTYpCQlIaXRyb24gVGVjaG5vbG9neSwgSW5jLgorCQkJCUhTSU5DSFUgU0JJUCBTVUJTSURJQVJZCisJCQkJTm8uIDI1IFImRCAxc3QgUmQuIFNjaWVuY2UtQmFzZWQgSW5kdXN0cgorCQkJCUhzaW4tY2h1ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LUNCICAgKGhleCkJCVJPSVMgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA1Q0IgICAgIChiYXNlIDE2KQkJUk9JUyBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk2dGggRiBDaGFuZ2h5dW4gQi9ELCA5NjAtMQorCQkJCUhvZ3llLURvbmcgRG9uZ2FuLUt1IEFueWFuZywKKwkJCQk0MzEtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUNDICAgKGhleCkJCVN1bXRlbCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNUNDICAgICAoYmFzZSAxNikJCVN1bXRlbCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTFGLCBOby4gMTczLCBHdW5nIFl1YW4gUm9hZCwKKwkJCQlIc2luY2h1IENpdHkgIDMwMDU0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS1DRCAgIChoZXgpCQlEZW5vbiwgTHRkLgorMDAwNUNEICAgICAoYmFzZSAxNikJCURlbm9uLCBMdGQuCisJCQkJMzUtMSwgU2FnYW1pb25vIDctY2hvbWUsCisJCQkJU2FnYW1paGFyYS1zaGkKKwkJCQlLYW5hZ2F3YSAgMjI4LTg1MDUKKwkJCQlKQVBBTgorCiswMC0wNS1DRSAgIChoZXgpCQlQcm9saW5rIE1pY3Jvc3lzdGVtcyBDb3Jwb3JhdGlvbgorMDAwNUNFICAgICAoYmFzZSAxNikJCVByb2xpbmsgTWljcm9zeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJNkYsIE5vLiAzNDksIFlhbmctS3VhbmcgU3QuCisJCQkJTmVpLUh1IFRhaXBlaSwgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS1DRiAgIChoZXgpCQlUaHVuZGVyIFJpdmVyIFRlY2hub2xvZ2llcywgSW5jLgorMDAwNUNGICAgICAoYmFzZSAxNikJCVRodW5kZXIgUml2ZXIgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMjMgQ29ycG9yYXRlIFBsYXphLCBTdWl0ZSAyNTAKKwkJCQlOZXdwb3J0IEJlYWNoIENBIDkyNjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1EMCAgIChoZXgpCQlTb2xpbmV0IFN5c3RlbXMKKzAwMDVEMCAgICAgKGJhc2UgMTYpCQlTb2xpbmV0IFN5c3RlbXMKKwkJCQkxMjAwLTE4MCBFbGdpbiBTdC4KKwkJCQlPdHRhd2EgT250YXJpbworCQkJCUsyUCAySzMKKwkJCQlDQU5BREEKKworMDAtMDUtRDEgICAoaGV4KQkJTWV0YXZlY3RvciBUZWNobm9sb2dpZXMKKzAwMDVEMSAgICAgKGJhc2UgMTYpCQlNZXRhdmVjdG9yIFRlY2hub2xvZ2llcworCQkJCVN0ZWVud2VnIE9wIEdpZXJsZSwgMTAwCisJCQkJQi0yMzAwIFR1cm5ob3V0LAorCQkJCUJFTEdJVU0KKworMDAtMDUtRDIgICAoaGV4KQkJREFQIFRlY2hub2xvZ2llcworMDAwNUQyICAgICAoYmFzZSAxNikJCURBUCBUZWNobm9sb2dpZXMKKwkJCQk5NTUgRmVybmFuZCBEdWZvdXIsCisJCQkJVmlsbGUgRGUgVmFuaWVyLCBRdWViZWMsCisJCQkJRzFNIDNCMgorCQkJCUNBTkFEQQorCiswMC0wNS1EMyAgIChoZXgpCQllUHJvZHVjdGlvbiBTb2x1dGlvbnMsIEluYy4KKzAwMDVEMyAgICAgKGJhc2UgMTYpCQllUHJvZHVjdGlvbiBTb2x1dGlvbnMsIEluYy4KKwkJCQkyMjAwMSBOb3J0aCBQYXJrIERyaXZlCisJCQkJS2luZ3dvb2QgVFggNzczMzktMzgwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRDQgICAoaGV4KQkJRnV0dXJlU21hcnQgTmV0d29ya3MsIEluYy4KKzAwMDVENCAgICAgKGJhc2UgMTYpCQlGdXR1cmVTbWFydCBOZXR3b3JrcywgSW5jLgorCQkJCTYxNTUgQWxtYWRlbiBFeHByZXNzd2F5CisJCQkJU3VpdGUgMTAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUQ1ICAgKGhleCkJCVNwZWVkY29tIFdpcmVsZXNzCiswMDA1RDUgICAgIChiYXNlIDE2KQkJU3BlZWRjb20gV2lyZWxlc3MKKwkJCQk3MDIwIFByb2Zlc3Npb25hbCBQa3d5IEVhc3QKKwkJCQlTYXJhc290YSBGTCAzNDI0MC04NTE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1ENiAgIChoZXgpCQlUaXRhbiBXaXJlbGVzcworMDAwNUQ2ICAgICAoYmFzZSAxNikJCVRpdGFuIFdpcmVsZXNzCisJCQkJMzAzMyBTY2llbmNlIFBhcmsgUm9hZAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRDcgICAoaGV4KQkJVmlzdGEgSW1hZ2luZywgSW5jLgorMDAwNUQ3ICAgICAoYmFzZSAxNikJCVZpc3RhIEltYWdpbmcsIEluYy4KKwkJCQk1MjEgVGF5bG9yIFdheQorCQkJCVNhbiBDYXJsb3MgQ0EgOTQwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUQ4ICAgKGhleCkJCUFyZXNjb20sIEluYy4KKzAwMDVEOCAgICAgKGJhc2UgMTYpCQlBcmVzY29tLCBJbmMuCisJCQkJMzU0MSBHYXRld2F5IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRDkgICAoaGV4KQkJVGVjaG5vIFZhbGxleSwgSW5jLgorMDAwNUQ5ICAgICAoYmFzZSAxNikJCVRlY2hubyBWYWxsZXksIEluYy4KKwkJCQlBU0lDIFZlbnR1cmUgVG93biA1RiwKKwkJCQkxMzMwLTMgU2VvY2hvMi1Eb25nLCBTZW9jaG8tS3UsCisJCQkJU2VvdWwgIDEzNS0wNzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtREEgICAoaGV4KQkJQXBleCBBdXRvbWF0aW9uc3RlY2huaWsKKzAwMDVEQSAgICAgKGJhc2UgMTYpCQlBcGV4IEF1dG9tYXRpb25zdGVjaG5paworCQkJCVZvc3NlbmthbXAgNAorCQkJCUQtMzgxMDQgQnJhdW5zY2h3ZWlnCisJCQkJR0VSTUFOWQorCiswMC0wNS1EQiAgIChoZXgpCQlQU0kgTmVudGVjIEdtYkgKKzAwMDVEQiAgICAgKGJhc2UgMTYpCQlQU0kgTmVudGVjIEdtYkgKKwkJCQlHcmVzY2hiYWNoc3RyYXNzZSAxMgorCQkJCUthcmxzcnVoZSAgNzYyMjkKKwkJCQlHRVJNQU5ZCisKKzAwLTA1LURDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDVEQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1ERCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA1REQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtREUgICAoaGV4KQkJR2kgRm9uZSBLb3JlYSwgSW5jLgorMDAwNURFICAgICAoYmFzZSAxNikJCUdpIEZvbmUgS29yZWEsIEluYy4KKwkJCQlUd2luIEJsZGcuIDR0aCBGbCwKKwkJCQk5MDItMTI0IFRvZ29rLWRvbmcsIEthbmduYW0tZ3UsCisJCQkJU2VvdWwsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtREYgICAoaGV4KQkJRWxlY3Ryb25pYyBJbm5vdmF0aW9uLCBJbmMuCiswMDA1REYgICAgIChiYXNlIDE2KQkJRWxlY3Ryb25pYyBJbm5vdmF0aW9uLCBJbmMuCisJCQkJMTI3MzEgQ2FubmluZ3RvbiBXYXkgU1cKKwkJCQlDYWxnYXJ5LCBBQiBUMlcgMVo3CisJCQkJQ0FOQURBCisKKzAwLTA1LUUwICAgKGhleCkJCUVtcGlyaXggQ29ycC4KKzAwMDVFMCAgICAgKGJhc2UgMTYpCQlFbXBpcml4IENvcnAuCisJCQkJMjA1IExvd2VsbCBTdC4KKwkJCQlXaWxtaW5ndG9uIE1BIDAxODg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1FMSAgIChoZXgpCQlUcmVsbGlzIFBob3RvbmljcywgTHRkLgorMDAwNUUxICAgICAoYmFzZSAxNikJCVRyZWxsaXMgUGhvdG9uaWNzLCBMdGQuCisJCQkJUC5PLkIuIDM2CisJCQkJWW9nbmVhbSBFbGl0ZSwgMjA2OTIKKwkJCQlJU1JBRUwKKworMDAtMDUtRTIgICAoaGV4KQkJQ3JlYXRpdiBOZXR3b3JrIFRlY2hub2xvZ2llcworMDAwNUUyICAgICAoYmFzZSAxNikJCUNyZWF0aXYgTmV0d29yayBUZWNobm9sb2dpZXMKKwkJCQkxNzU1IFN0LiBSZWdpcyBTdWl0ZSAyNDAKKwkJCQlEb2xsYXJkLWRlcy1Pcm1lYXV4CisJCQkJUXVlYmVjIEg5Qi0yTTkKKwkJCQlDQU5BREEKKworMDAtMDUtRTMgICAoaGV4KQkJTGlnaHRTYW5kIENvbW11bmljYXRpb25zLCBJbmMuCiswMDA1RTMgICAgIChiYXNlIDE2KQkJTGlnaHRTYW5kIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMzc1IExvcyBDb2NoZXMgU3QuCisJCQkJTWlscGl0YXMgQ0EgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUU0ICAgKGhleCkJCVJlZCBMaW9uIENvbnRyb2xzIEluYy4KKzAwMDVFNCAgICAgKGJhc2UgMTYpCQlSZWQgTGlvbiBDb250cm9scyBJbmMuCisJCQkJMjAgV2lsbG93IFNwcmluZ3MgQ2lyY2xlCisJCQkJWW9yayBQQSAxNzQwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRTUgICAoaGV4KQkJUmVuaXNoYXcgUExDCiswMDA1RTUgICAgIChiYXNlIDE2KQkJUmVuaXNoYXcgUExDCisJCQkJTmV3IE1pbGxzLCBXb3R0b24tdW5kZXItRWRnZQorCQkJCUdsb3VjZXN0ZXJzaHVyZSwgR0wxMiA4SlIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNS1FNiAgIChoZXgpCQlFZ2VuZXJhLCBJbmMuCiswMDA1RTYgICAgIChiYXNlIDE2KQkJRWdlbmVyYSwgSW5jLgorCQkJCTE2NSBGb3Jlc3QgU3QuCisJCQkJTWFybGJvcm8gTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUU3ICAgKGhleCkJCU5ldHJha2UgYW4gQXVkaW9Db2RlcyBDb21wYW55CiswMDA1RTcgICAgIChiYXNlIDE2KQkJTmV0cmFrZSBhbiBBdWRpb0NvZGVzIENvbXBhbnkKKwkJCQkzMDAwIFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRTggICAoaGV4KQkJVHVyYm9XYXZlLCBJbmMuCiswMDA1RTggICAgIChiYXNlIDE2KQkJVHVyYm9XYXZlLCBJbmMuCisJCQkJNTU1IFNvdXRoIFN0YXRlCisJCQkJU3VpdGUgMzAyCisJCQkJT3JlbSBVVCA4NDA1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRTkgICAoaGV4KQkJVW5pY2VzcyBOZXR3b3JrLCBJbmMuCiswMDA1RTkgICAgIChiYXNlIDE2KQkJVW5pY2VzcyBOZXR3b3JrLCBJbmMuCisJCQkJODcwIERvcm90aHkgRHIuICM3MDgKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1FQSAgIChoZXgpCQlSZWRuaXgKKzAwMDVFQSAgICAgKGJhc2UgMTYpCQlSZWRuaXgKKwkJCQk1MDIsIERvbmctQSBSZXNvcnQgT2ZmaWNldGVsCisJCQkJNTM4LTggQm9uZ215dW5nLURvbmcgWXVzdW5nLAorCQkJCVRhZWpvbiAgMzA1LTcwOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1FQiAgIChoZXgpCQlCbHVlIFJpZGdlIE5ldHdvcmtzLCBJbmMuCiswMDA1RUIgICAgIChiYXNlIDE2KQkJQmx1ZSBSaWRnZSBOZXR3b3JrcywgSW5jLgorCQkJCTE0MTIwIFBhcmtlIExvbmcgQ291cnQKKwkJCQlTdWl0ZSAyMDEKKwkJCQlDaGFudGlsbHkgVkEgMjAxNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUVDICAgKGhleCkJCU1vc2FpYyBTeXN0ZW1zIEluYy4KKzAwMDVFQyAgICAgKGJhc2UgMTYpCQlNb3NhaWMgU3lzdGVtcyBJbmMuCisJCQkJNyBDYW1wYmVsbCBQYXJrCisJCQkJU29tZXJ2aWxsZSBNQSAwMjE0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRUQgICAoaGV4KQkJVGVjaG5pa3VtIEpvYW5uZXVtIEdtYkgKKzAwMDVFRCAgICAgKGJhc2UgMTYpCQlUZWNobmlrdW0gSm9hbm5ldW0gR21iSAorCQkJCUFsdGUgUG9zdHN0cmHfZSAxNDkKKwkJCQk4MDIwIEdyYXoKKwkJCQlBVVNUUklBCisKKzAwLTA1LUVFICAgKGhleCkJCUJFV0FUT1IgR3JvdXAKKzAwMDVFRSAgICAgKGJhc2UgMTYpCQlCRVdBVE9SIEdyb3VwCisJCQkJQmV3YXRvciBBQiwgQm94IDEyNzUKKwkJCQlTRS0xNzEyNCBTb2xuYW4KKwkJCQlTV0VERU4KKworMDAtMDUtRUYgICAoaGV4KQkJQURPSVIgRGlnaXRhbCBUZWNobm9sb2d5CiswMDA1RUYgICAgIChiYXNlIDE2KQkJQURPSVIgRGlnaXRhbCBUZWNobm9sb2d5CisJCQkJMjggRmwsIFpoYW9GZW5nIFdvcmxkIFRyYWRlIEJsZGcuCisJCQkJMzY5IEppYW5nU3UgUmQuCisJCQkJU2hhbmdoYWkgMjAwMDUwLCAKKwkJCQlDSElOQQorCiswMC0wNS1GMCAgIChoZXgpCQlTQVRFQworMDAwNUYwICAgICAoYmFzZSAxNikJCVNBVEVDCisJCQkJUC5PLiBCb3ggNDUwMjIKKwkJCQlKZXJ1c2FsZW0KKwkJCQk5MTQ1MCAKKwkJCQlJU1JBRUwKKworMDAtMDUtRjEgICAoaGV4KQkJVnJjb20sIEluYy4KKzAwMDVGMSAgICAgKGJhc2UgMTYpCQlWcmNvbSwgSW5jLgorCQkJCTQwMSwgU29uZ2FtIEJsZGcsIDQ3OS0xLAorCQkJCUJhbmdiYWUgMy1kb25nLCBTZW9jaG8ta3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1GMiAgIChoZXgpCQlQb3dlciBSLCBJbmMuCiswMDA1RjIgICAgIChiYXNlIDE2KQkJUG93ZXIgUiwgSW5jLgorCQkJCTc1NiBBbG9oYSBTdC4KKwkJCQlTZWF0dGxlIFdBIDk4MTA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1GMyAgIChoZXgpCQlXZWJveW4KKzAwMDVGMyAgICAgKGJhc2UgMTYpCQlXZWJveW4KKwkJCQkyNiBSdWUgT2VzIEdhdWRpbmVzCisJCQkJNzgxMDAgU2FpbnQtR2VybWFpbgorCQkJCUZSQU5DRQorCiswMC0wNS1GNCAgIChoZXgpCQlTeXN0ZW0gQmFzZSBDby4sIEx0ZC4KKzAwMDVGNCAgICAgKGJhc2UgMTYpCQlTeXN0ZW0gQmFzZSBDby4sIEx0ZC4KKwkJCQk0NzUtMjIsIEJhbmdCYWUgMiBkb25nLAorCQkJCVNlb2NobyBndSwgU2VvdWwsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUY1ICAgKGhleCkJCU9ZTyBHZW9zcGFjZQorMDAwNUY1ICAgICAoYmFzZSAxNikJCU9ZTyBHZW9zcGFjZQorCQkJCTcwMDcgUGluZW1vbnQKKwkJCQlIb3VzdG9uIFRYIDc3MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1GNiAgIChoZXgpCQlZb3VuZyBDaGFuZyBDby4gTHRkLgorMDAwNUY2ICAgICAoYmFzZSAxNikJCVlvdW5nIENoYW5nIENvLiBMdGQuCisJCQkJMTQzMiBNYWluIFN0cmVldAorCQkJCVdhbHRoYW0gTUEgMDI0NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUY3ICAgKGhleCkJCUFuYWxvZyBEZXZpY2VzLCBJbmMuCiswMDA1RjcgICAgIChiYXNlIDE2KQkJQW5hbG9nIERldmljZXMsIEluYy4KKwkJCQk4MDQgV29idXJuIFN0LiwgTVMgMTExCisJCQkJV2lsbWluZ3RvbiBNQSAwMTg4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRjggICAoaGV4KQkJUmVhbCBUaW1lIEFjY2VzcywgSW5jLgorMDAwNUY4ICAgICAoYmFzZSAxNikJCVJlYWwgVGltZSBBY2Nlc3MsIEluYy4KKwkJCQk0NTUgTi4gQ2FueW9ucyBQa3d5LgorCQkJCVN1aXRlIEIKKwkJCQlMaXZlcm1vcmUgQ0EgOTQ1NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUY5ICAgKGhleCkJCVRPQSBDb3Jwb3JhdGlvbgorMDAwNUY5ICAgICAoYmFzZSAxNikJCVRPQSBDb3Jwb3JhdGlvbgorCQkJCTItMSBUYWthbWF0c3UtY2hvLAorCQkJCVRha2FyYXp1a2EtY2l0eQorCQkJCUh5b2dvICA2NjUtMDA0MworCQkJCUpBUEFOCisKKzAwLTA1LUZBICAgKGhleCkJCUlQT3B0aWNhbCwgSW5jLgorMDAwNUZBICAgICAoYmFzZSAxNikJCUlQT3B0aWNhbCwgSW5jLgorCQkJCTQ1OTQwIEhvcnNlc2hvZSBEcml2ZQorCQkJCVN1aXRlIDE1MAorCQkJCUR1bGxlcyBWQSAyMDE2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRkIgICAoaGV4KQkJU2hhcmVHYXRlLCBJbmMuCiswMDA1RkIgICAgIChiYXNlIDE2KQkJU2hhcmVHYXRlLCBJbmMuCisJCQkJOTgwNSBEb3VibGUgUiBCbHZkLgorCQkJCVRoaXJkIEZsb29yCisJCQkJUmVubyBOViA4OTUxMS01OTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1GQyAgIChoZXgpCQlTY2hlbmNrIFBlZ2FzdXMgQ29ycC4KKzAwMDVGQyAgICAgKGJhc2UgMTYpCQlTY2hlbmNrIFBlZ2FzdXMgQ29ycC4KKwkJCQkyODkwIEpvaG4gUiBSb2FkCisJCQkJVHJveSBNSSA0ODA4MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRkQgICAoaGV4KQkJUGFja2V0TGlnaHQgTmV0d29ya3MgTHRkLgorMDAwNUZEICAgICAoYmFzZSAxNikJCVBhY2tldExpZ2h0IE5ldHdvcmtzIEx0ZC4KKwkJCQkyNyBIYWJhcnplbCBTdC4KKwkJCQlSYW1hdCBIYWhheWFsCisJCQkJVGVsLUF2aXYgIDY5NzEwCisJCQkJSVNSQUVMCisKKzAwLTA1LUZFICAgKGhleCkJCVRyYWZpY29uIE4uVi4KKzAwMDVGRSAgICAgKGJhc2UgMTYpCQlUcmFmaWNvbiBOLlYuCisJCQkJQmlzc2VnZW1zZXN0cmFhdCA0NQorCQkJCUItODUwMSBIZXVsZQorCQkJCUJFTEdJVU0KKworMDAtMDUtRkYgICAoaGV4KQkJU05TIFNvbHV0aW9ucywgSW5jLgorMDAwNUZGICAgICAoYmFzZSAxNikJCVNOUyBTb2x1dGlvbnMsIEluYy4KKwkJCQkybmQgRmwuIEhpbGwgSG91c2UsCisJCQkJOTktMiBTb2h5dW4sIEJ1bmRhbmcsIFN1bmduYW0sIEt5dW5nZ2ksCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTAwICAgKGhleCkJCVRvc2hpYmEgVGVsaSBDb3Jwb3JhdGlvbgorMDAwNjAwICAgICAoYmFzZSAxNikJCVRvc2hpYmEgVGVsaSBDb3Jwb3JhdGlvbgorCQkJCSA0LTctMSBBc2FoaWdhb2thLCBIaW5vLVNoaSwKKwkJCQlUb2t5byAxOTEtMDA2NQorCQkJCUpBUEFOCisKKzAwLTA2LTAxICAgKGhleCkJCU90YW5pa2Vpa2kgQ28uLCBMdGQuCiswMDA2MDEgICAgIChiYXNlIDE2KQkJT3RhbmlrZWlraSBDby4sIEx0ZC4KKwkJCQkyLTEwLTIzIEhpa2FyaS1NYWNoaQorCQkJCUhpZ2FzaGktS3UgSGlyb3NoaW1hCisJCQkJNzMyLTAwNTIKKwkJCQlKQVBBTgorCiswMC0wNi0wMiAgIChoZXgpCQlDaXJraXRlY2ggRWxlY3Ryb25pY3MgQ28uCiswMDA2MDIgICAgIChiYXNlIDE2KQkJQ2lya2l0ZWNoIEVsZWN0cm9uaWNzIENvLgorCQkJCUIxLTIsIE5vLiAzNjEsIEZ1LVhpbmcgRmlyc3QgUm9hZAorCQkJCUd1ZWktU2hhbiBIc2lhbmcsCisJCQkJVGFvLVl1YW4gCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi0wMyAgIChoZXgpCQlCYWtlciBIdWdoZXMgSW5jLgorMDAwNjAzICAgICAoYmFzZSAxNikJCUJha2VyIEh1Z2hlcyBJbmMuCisJCQkJMjAwMSBSYW5raW4gUmQuCisJCQkJSG91c3RvbiBUWCA3NzA3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMDQgICAoaGV4KQkJQFRyYWNrIENvbW11bmljYXRpb25zLCBJbmMuCiswMDA2MDQgICAgIChiYXNlIDE2KQkJQFRyYWNrIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTE1NSBLYXMgRHIuCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMDUgICAoaGV4KQkJSW5uY29tIEludGVybmF0aW9uYWwsIEluYy4KKzAwMDYwNSAgICAgKGJhc2UgMTYpCQlJbm5jb20gSW50ZXJuYXRpb25hbCwgSW5jLgorCQkJCVAuTy4gQm94IDEwNjAKKwkJCQk4MyBIYWxscyBSb2FkCisJCQkJT2xkIEx5bWUgQ1QgMDYzNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTA2ICAgKGhleCkJCVJhcGlkV0FOLCBJbmMuCiswMDA2MDYgICAgIChiYXNlIDE2KQkJUmFwaWRXQU4sIEluYy4KKwkJCQkyMDg1IEhhbWlsdG9uIEF2ZS4KKwkJCQlTdWl0ZSAjMjIwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTA3ICAgKGhleCkJCU9tbmkgRGlyZWN0aW9uYWwgQ29udHJvbCBUZWNobm9sb2d5IEluYy4KKzAwMDYwNyAgICAgKGJhc2UgMTYpCQlPbW5pIERpcmVjdGlvbmFsIENvbnRyb2wgVGVjaG5vbG9neSBJbmMuCisJCQkJOEYtMiwgTm8uIDk0LCBQYW8tQ2h1bmcgUmQuCisJCQkJSHNpbi1UaWVuIENpdHksCisJCQkJVGFpcGVpIEhzaWVuLCAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA2LTA4ICAgKGhleCkJCUF0LVNreSBTQVMKKzAwMDYwOCAgICAgKGJhc2UgMTYpCQlBdC1Ta3kgU0FTCisJCQkJWkkgQXRoZWxpYSAzLCBWb2kgQXRsYXMKKwkJCQkxMzYwMC0gTGEgQ2lvdGF0CisJCQkJRlJBTkNFCisKKzAwLTA2LTA5ICAgKGhleCkJCUNyb3NzcG9ydCBTeXN0ZW1zCiswMDA2MDkgICAgIChiYXNlIDE2KQkJQ3Jvc3Nwb3J0IFN5c3RlbXMKKwkJCQkxMDk0MCBORSAzM3JkIFBsLgorCQkJCVN1aXRlIDEwMQorCQkJCUJlbGxldnVlIFdBIDk4MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0wQSAgIChoZXgpCQlCbHVlMnNwYWNlCiswMDA2MEEgICAgIChiYXNlIDE2KQkJQmx1ZTJzcGFjZQorCQkJCUFyc3RhYW5nc3YuIDkKKwkJCQlTRS0xMTc0OCBTdG9ja2hvbG0KKwkJCQlTV0VERU4KKworMDAtMDYtMEIgICAoaGV4KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCiswMDA2MEIgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCisJCQkJMjkwMCBTLiBEaWFibG8gV2F5IFN1aXRlIDE5MAorCQkJCVRlbXBlIEFaIDg1MjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0wQyAgIChoZXgpCQlNZWxjbyBJbmR1c3RyaWVzLCBJbmMuCiswMDA2MEMgICAgIChiYXNlIDE2KQkJTWVsY28gSW5kdXN0cmllcywgSW5jLgorCQkJCTE1NzUgVy4gMTI0dGggQXZlLgorCQkJCURlbnZlciBDTyA4MDIzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMEQgICAoaGV4KQkJV2F2ZTcgT3B0aWNzCiswMDA2MEQgICAgIChiYXNlIDE2KQkJV2F2ZTcgT3B0aWNzCisJCQkJMTA3NSBXaW5kd2FyZCBSaWRnZSBQa3d5LgorCQkJCVN1aXRlIDE3MAorCQkJCUFscGhhcmV0dGEgR0EgMzAwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTBFICAgKGhleCkJCUlHWVMgU3lzdGVtcywgSW5jLgorMDAwNjBFICAgICAoYmFzZSAxNikJCUlHWVMgU3lzdGVtcywgSW5jLgorCQkJCTczNzMgTGluY29sbiBXYXkKKwkJCQlHYXJkZW4gR3JvdmUgQ0EgOTI4NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTBGICAgKGhleCkJCU5hcmFkIE5ldHdvcmtzIEluYworMDAwNjBGICAgICAoYmFzZSAxNikJCU5hcmFkIE5ldHdvcmtzIEluYworCQkJCTUxNSBHcm90b24gUm9hZAorCQkJCVdlc3Rmb3JkIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0xMCAgIChoZXgpCQlBYmVvbmEgTmV0d29ya3MgSW5jCiswMDA2MTAgICAgIChiYXNlIDE2KQkJQWJlb25hIE5ldHdvcmtzIEluYworCQkJCTQ2MTE3IExhbmRpbmcgUGFya3dheQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTExICAgKGhleCkJCVpldXMgV2lyZWxlc3MsIEluYy4KKzAwMDYxMSAgICAgKGJhc2UgMTYpCQlaZXVzIFdpcmVsZXNzLCBJbmMuCisJCQkJODMyNSBHdWlsZm9yZCBSb2FkCisJCQkJQ29sdW1iaWEgTUQgMjEwNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTEyICAgKGhleCkJCUFjY3VzeXMsIEluYy4KKzAwMDYxMiAgICAgKGJhc2UgMTYpCQlBY2N1c3lzLCBJbmMuCisJCQkJNUYsIE5vLiAzOCwgVGFpeXVhbiBTdAorCQkJCUpodWJlaSBDaXR5CisJCQkJSHNpbmNodSBDb3VudHkgIDMwMjY1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi0xMyAgIChoZXgpCQlLYXdhc2FraSBNaWNyb2VsZWN0cm9uaWNzIEluY29ycG9yYXRlZAorMDAwNjEzICAgICAoYmFzZSAxNikJCUthd2FzYWtpIE1pY3JvZWxlY3Ryb25pY3MgSW5jb3Jwb3JhdGVkCisJCQkJTVRHIEItNSwgMS0zLCBOYWthc2UsCisJCQkJTWloYW1hLWt1IENoaWJhIDI2MS04NTAxCisJCQkJSkFQQU4KKworMDAtMDYtMTQgICAoaGV4KQkJUHJpc20gSG9sZGluZ3MKKzAwMDYxNCAgICAgKGJhc2UgMTYpCQlQcmlzbSBIb2xkaW5ncworCQkJCVAuTy4gQm94IDkwMSwKKwkJCQlXaXRrb3BwZW4sIDIwNjgsCisJCQkJR2F1dGVuZyAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTA2LTE1ICAgKGhleCkJCUtpbW90byBFbGVjdHJpYyBDby4sIEx0ZC4KKzAwMDYxNSAgICAgKGJhc2UgMTYpCQlLaW1vdG8gRWxlY3RyaWMgQ28uLCBMdGQuCisJCQkJMy0xIEZ1bmFoYXNoaS1DaG8sCisJCQkJVGVubm9qaS1LdSwgT3Nha2EKKwkJCQk1NDMtMDAyNAorCQkJCUpBUEFOCisKKzAwLTA2LTE2ICAgKGhleCkJCVRlbCBOZXQgQ28uLCBMdGQuCiswMDA2MTYgICAgIChiYXNlIDE2KQkJVGVsIE5ldCBDby4sIEx0ZC4KKwkJCQkzRiBCT0YgQmxkZyA3MzAtMTUgR29qZSBTb25nCisJCQkJWWVvbmplIEd1IFB1c2FtIDYxMS0wNzMsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTE3ICAgKGhleCkJCVJlZHN3aXRjaCBJbmMuCiswMDA2MTcgICAgIChiYXNlIDE2KQkJUmVkc3dpdGNoIEluYy4KKwkJCQkxODE1IE1jQ2FuZGxlc3MgRHJpdmUKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNS04MDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0xOCAgIChoZXgpCQlEaWdpUG93ZXIgTWFudWZhY3R1cmluZyBJbmMuCiswMDA2MTggICAgIChiYXNlIDE2KQkJRGlnaVBvd2VyIE1hbnVmYWN0dXJpbmcgSW5jLgorCQkJCU5vLiAxMTQsIEZsb29yIDEzLCBTZWMuIDEsCisJCQkJSHNpbiBUYWkgV3UgUm9hZCwgU2hpanIgQ2l0eSwKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtMTkgICAoaGV4KQkJQ29ubmVjdGlvbiBUZWNobm9sb2d5IFN5c3RlbXMKKzAwMDYxOSAgICAgKGJhc2UgMTYpCQlDb25uZWN0aW9uIFRlY2hub2xvZ3kgU3lzdGVtcworCQkJCTE4Ri02LCBOby4gNzksIFNlYy4gMSwKKwkJCQlIc2luIFRhaSBXdSBSZC4KKwkJCQlIc2luY2hpaCBUYWlwZWksIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtMUEgICAoaGV4KQkJWmV0YXJpIEluYy4KKzAwMDYxQSAgICAgKGJhc2UgMTYpCQlaZXRhcmkgSW5jLgorCQkJCTQxMSBXYXZlcmx5IE9ha3MgUmQuCisJCQkJU3VpdGUgMzIzCisJCQkJV2FsdGhhbSBNQSAwMjQ1Mi04NDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0xQiAgIChoZXgpCQlOb3RlYm9vayBEZXZlbG9wbWVudCBMYWIuICBMZW5vdm8gSmFwYW4gTHRkLgorMDAwNjFCICAgICAoYmFzZSAxNikJCU5vdGVib29rIERldmVsb3BtZW50IExhYi4gIExlbm92byBKYXBhbiBMdGQuCisJCQkJMTYyMy0xNCBTaGltb3RzdXJ1bWEKKwkJCQlZYW1hdG8tc2hpIEthbmFnYXdhLWtlbgorCQkJCTI0Mi04NTAyCisJCQkJSkFQQU4KKworMDAtMDYtMUMgICAoaGV4KQkJSG9zaGlubyBNZXRhbCBJbmR1c3RyaWVzLCBMdGQuCiswMDA2MUMgICAgIChiYXNlIDE2KQkJSG9zaGlubyBNZXRhbCBJbmR1c3RyaWVzLCBMdGQuCisJCQkJNjQ1IFlhbWFub2thbWksIFlhYnV0c3VrYSwKKwkJCQlOaXR0YS1ndW4sIEd1bm1hCisJCQkJMzc5LTIzMDIKKwkJCQlKQVBBTgorCiswMC0wNi0xRCAgIChoZXgpCQlNSVAgVGVsZWNvbSwgSW5jLgorMDAwNjFEICAgICAoYmFzZSAxNikJCU1JUCBUZWxlY29tLCBJbmMuCisJCQkJM3JkIEZsb29yLCBTYW5naWwgQkxERywKKwkJCQk5NDgtMTYsIEJvbmdjaGVvbmRvbmcsIEd3YW5ha2t1LAorCQkJCVNlb3VsICAxNTEtMDY5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTFFICAgKGhleCkJCU1heGFuIFN5c3RlbXMKKzAwMDYxRSAgICAgKGJhc2UgMTYpCQlNYXhhbiBTeXN0ZW1zCisJCQkJMS04NCwgV291bGFtLWRvbmcKKwkJCQlTYWxzZW8tZ3UsIERBRUdVLAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi0xRiAgIChoZXgpCQlWaXNpb24gQ29tcG9uZW50cyBHbWJICiswMDA2MUYgICAgIChiYXNlIDE2KQkJVmlzaW9uIENvbXBvbmVudHMgR21iSAorCQkJCU90dG9zdHIuIDIKKwkJCQlFdHRsaW5nZW4sIDc2Mjc1CisJCQkJR0VSTUFOWQorCiswMC0wNi0yMCAgIChoZXgpCQlTZXJpYWwgU3lzdGVtIEx0ZC4KKzAwMDYyMCAgICAgKGJhc2UgMTYpCQlTZXJpYWwgU3lzdGVtIEx0ZC4KKwkJCQk3NiBQbGF5ZmFpciBSb2FkCisJCQkJIzA0LTAzIExISzIgQnVpbGRpbmcKKwkJCQkzNjc5OTYKKwkJCQlTSU5HQVBPUkUKKworMDAtMDYtMjEgICAoaGV4KQkJSGlub3gsIENvLiwgTHRkLgorMDAwNjIxICAgICAoYmFzZSAxNikJCUhpbm94LCBDby4sIEx0ZC4KKwkJCQkxNS03IDMtY2hvbWUsIFNlbm5pbi1jaG8sCisJCQkJSGFjaGlvamktQ2l0eSwgVG9reW8sCisJCQkJMTkzLTA4MzUKKwkJCQlKQVBBTgorCiswMC0wNi0yMiAgIChoZXgpCQlDaHVuZyBGdSBDaGVuIFllaCBFbnRlcnByaXNlIENvcnAuCiswMDA2MjIgICAgIChiYXNlIDE2KQkJQ2h1bmcgRnUgQ2hlbiBZZWggRW50ZXJwcmlzZSBDb3JwLgorCQkJCTJGIE5vLiA2NjYgSmluZyBQaW5nIFJvYWQsCisJCQkJQ2h1bmcgSG8gQ2l0eSwKKwkJCQlUYWlwZWkgSHNpZW4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtMjMgICAoaGV4KQkJTUdFIFVQUyBTeXN0ZW1zIEZyYW5jZQorMDAwNjIzICAgICAoYmFzZSAxNikJCU1HRSBVUFMgU3lzdGVtcyBGcmFuY2UKKwkJCQkxNDAgQXZlbnVlIEplYW4gS3VudHptYW5uCisJCQkJWmlyc3QgTW9udGJvbm5vdCBTdCBNYXJ0aW4gMzgzMzQgU3QgSXNtaQorCQkJCUZSQU5DRQorCiswMC0wNi0yNCAgIChoZXgpCQlHZW50bmVyIENvbW11bmljYXRpb25zIENvcnAuCiswMDA2MjQgICAgIChiYXNlIDE2KQkJR2VudG5lciBDb21tdW5pY2F0aW9ucyBDb3JwLgorCQkJCTE4MjUgUmVzZWFyY2ggV2F5CisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTI1ICAgKGhleCkJCVRoZSBMaW5rc3lzIEdyb3VwLCBJbmMuCiswMDA2MjUgICAgIChiYXNlIDE2KQkJVGhlIExpbmtzeXMgR3JvdXAsIEluYy4KKwkJCQkxNzQwMSBBcm1zdHJvbmcgQXZlLgorCQkJCUlydmluZSBDQSA5MjYxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMjYgICAoaGV4KQkJTVdFIEdtYkgKKzAwMDYyNiAgICAgKGJhc2UgMTYpCQlNV0UgR21iSAorCQkJCU9sYnJpY2h0c3RyLiAyMQorCQkJCUQtNjk0NjkgV2VpbmhlaW0KKwkJCQlHRVJNQU5ZCisKKzAwLTA2LTI3ICAgKGhleCkJCVVuaXdpZGUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA2MjcgICAgIChiYXNlIDE2KQkJVW5pd2lkZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQlLb3JlYSBEZXZlbG9wbWVudCBCYW5rIEIvRCA1dGggRmxyCisJCQkJRHVuc2FuZG9uZywgU2VvZ3UsCisJCQkJVGFlam9uIDMwMi0xMjIsIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi0yOCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA2MjggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMjkgICAoaGV4KQkJSUJNIENvcnAKKzAwMDYyOSAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMkEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNjJBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTJCICAgKGhleCkJCUlOVFJBU0VSVkVSIFRFQ0hOT0xPR1kKKzAwMDYyQiAgICAgKGJhc2UgMTYpCQlJTlRSQVNFUlZFUiBURUNITk9MT0dZCisJCQkJU0VWRU4gT0NUT0JFUiBISUxMIFJELgorCQkJCUhPTExJU1RPTiBNQSAwMTc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMkMgICAoaGV4KQkJQml2aW8gTmV0d29ya3MKKzAwMDYyQyAgICAgKGJhc2UgMTYpCQlCaXZpbyBOZXR3b3JrcworCQkJCTQ0NTcgV2lsbG93IFJvYWQsCisJCQkJUGxlYXNhbnRvbiBDQSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMkQgICAoaGV4KQkJVG91Y2hTdGFyIFRlY2hub2xvZ2llcywgTC5MLkMuCiswMDA2MkQgICAgIChiYXNlIDE2KQkJVG91Y2hTdGFyIFRlY2hub2xvZ2llcywgTC5MLkMuCisJCQkJNTE0NyBTb3V0aCBHYXJuZXR0IFJvYWQKKwkJCQlTdWl0ZSBBCisJCQkJVHVsc2EgT0sgNzQxNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTJFICAgKGhleCkJCUFyaXN0b3MgTG9naWMgQ29ycC4KKzAwMDYyRSAgICAgKGJhc2UgMTYpCQlBcmlzdG9zIExvZ2ljIENvcnAuCisJCQkJMjcwNTEgVG93bmUgQ2VudHJlIERyLgorCQkJCVN1aXRlIDI5MAorCQkJCUZvb3RoaWxsIFJhbmNoIENBIDkyNjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0yRiAgIChoZXgpCQlQaXZvdGVjaCBTeXN0ZW1zIEluYy4KKzAwMDYyRiAgICAgKGJhc2UgMTYpCQlQaXZvdGVjaCBTeXN0ZW1zIEluYy4KKwkJCQkyMDAgQ2VudGVubmlhbCBBdmUuLAorCQkJCVN1aXRlIDIyMgorCQkJCVBpc2NhdGF3YXkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTMwICAgKGhleCkJCUFkdHJhbnogU3dlZGVuCiswMDA2MzAgICAgIChiYXNlIDE2KQkJQWR0cmFueiBTd2VkZW4KKwkJCQlEZXB0LiBUQ0MvVEgKKwkJCQlPc3RyYXJpbmd2YWdlbiAyIDcyMTczIFZhc3RlcmFzCisJCQkJU1dFREVOCisKKzAwLTA2LTMxICAgKGhleCkJCU9wdGljYWwgU29sdXRpb25zLCBJbmMuCiswMDA2MzEgICAgIChiYXNlIDE2KQkJT3B0aWNhbCBTb2x1dGlvbnMsIEluYy4KKwkJCQkxNjMwNSAzNnRoIEF2ZS4gTi4KKwkJCQlTdWl0ZSAzMDAKKwkJCQlQbHltb3V0aCBNTiA1NTQ0Ni0yNjk4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0zMiAgIChoZXgpCQlNZXNjbyBFbmdpbmVlcmluZyBHbWJICiswMDA2MzIgICAgIChiYXNlIDE2KQkJTWVzY28gRW5naW5lZXJpbmcgR21iSAorCQkJCVdpZXNlbnRhbHN0cmFzc2UgNzQKKwkJCQk3OTUzOSBMb3JyYWNoCisJCQkJR0VSTUFOWQorCiswMC0wNi0zMyAgIChoZXgpCQlDcm9zcyBNYXRjaCBUZWNobm9sb2dpZXMgR21iSAorMDAwNjMzICAgICAoYmFzZSAxNikJCUNyb3NzIE1hdGNoIFRlY2hub2xvZ2llcyBHbWJICisJCQkJVW5zdHJ1dHdlZyA0CisJCQkJSmVuYSAwNzc0MworCQkJCUdFUk1BTlkKKworMDAtMDYtMzQgICAoaGV4KQkJR1RFIEFpcmZvbmUgSW5jLgorMDAwNjM0ICAgICAoYmFzZSAxNikJCUdURSBBaXJmb25lIEluYy4KKwkJCQkyODA5IEJ1dHRlcmZpZWxkCisJCQkJT2FrYnJvb2sgSUwgNjA1MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTM1ICAgKGhleCkJCVBhY2tldEFpciBOZXR3b3JrcywgSW5jLgorMDAwNjM1ICAgICAoYmFzZSAxNikJCVBhY2tldEFpciBOZXR3b3JrcywgSW5jLgorCQkJCTExNTQ1IFcuIEJlcm5hcmRvIEN0LgorCQkJCVN1aXRlIDEwMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMzYgICAoaGV4KQkJSmVkYWkgQnJvYWRiYW5kIE5ldHdvcmtzCiswMDA2MzYgICAgIChiYXNlIDE2KQkJSmVkYWkgQnJvYWRiYW5kIE5ldHdvcmtzCisJCQkJMzMxIE5ld21hbiBTcHJpbmdzIFJkLgorCQkJCUJ1aWxkaW5nIDEsIDJuZCBGbG9vcgorCQkJCVJlZCBCYW5rIE5KIDA3NzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0zNyAgIChoZXgpCQlUb3B0cmVuZC1NZXRhIEluZm9ybWF0aW9uIChTaGVuWmhlbikgSW5jLgorMDAwNjM3ICAgICAoYmFzZSAxNikJCVRvcHRyZW5kLU1ldGEgSW5mb3JtYXRpb24gKFNoZW5aaGVuKSBJbmMuCisJCQkJMi9GLCBCbGRnLiAzLCBTZWN0aW9uIEEsIE5vci1FYXN0IFpvbmUKKwkJCQlFYXN0ZXJuIEluZHVzdHJpYWwgQXJlYSwgT3ZlcnNlYXMgQ2l0eSwKKwkJCQlDSElOQQorCiswMC0wNi0zOCAgIChoZXgpCQlTdW5namluIEMmQyBDby4sIEx0ZC4KKzAwMDYzOCAgICAgKGJhc2UgMTYpCQlTdW5namluIEMmQyBDby4sIEx0ZC4KKwkJCQkxNTQzLTYsIFNlb2Noby1kb25nLCBTZW9jaG8tZ3UsCisJCQkJU2VvdWwgIDEzNy0wNzMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtMzkgICAoaGV4KQkJTmV3dGVjCiswMDA2MzkgICAgIChiYXNlIDE2KQkJTmV3dGVjCisJCQkJTGFhcnN0cmFhdCA1CisJCQkJQi05MTAwIFNpbnQtTmlrbGFhcworCQkJCUJFTEdJVU0KKworMDAtMDYtM0EgICAoaGV4KQkJRHVyYSBNaWNybywgSW5jLgorMDAwNjNBICAgICAoYmFzZSAxNikJCUR1cmEgTWljcm8sIEluYy4KKwkJCQkxMzU4MCBGaWZ0aCBTdHJlZXQKKwkJCQlDaGlubyBDQSA5MTcxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtM0IgICAoaGV4KQkJQXJjdHVydXMgTmV0d29ya3MsIEluYy4KKzAwMDYzQiAgICAgKGJhc2UgMTYpCQlBcmN0dXJ1cyBOZXR3b3JrcywgSW5jLgorCQkJCTcwMSBFdmFucyBBdmUuIC0gU3VpdGUgMzAwCisJCQkJVG9yb250byBPbnRhcmlvIE05QyAxQTMKKwkJCQlDQU5BREEKKworMDAtMDYtM0MgICAoaGV4KQkJSW50cmluc3ljIEV1cm9wZSBMdGQKKzAwMDYzQyAgICAgKGJhc2UgMTYpCQlJbnRyaW5zeWMgRXVyb3BlIEx0ZAorCQkJCTcwMCBXZXN0IFBlbmRlciBTdHJlZXQsIDEwdGggRmxvb3IsCisJCQkJVmFuY291dmVyLCBCQywgVjZDIDFHOAorCQkJCUNBTkFEQQorCiswMC0wNi0zRCAgIChoZXgpCQlNaWNyb3dhdmUgRGF0YSBTeXN0ZW1zIEluYy4KKzAwMDYzRCAgICAgKGJhc2UgMTYpCQlNaWNyb3dhdmUgRGF0YSBTeXN0ZW1zIEluYy4KKwkJCQkxNzUgU2NpZW5jZSBQYXJrd2F5CisJCQkJUm9jaGVzdGVyIE5ZIDE0NjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0zRSAgIChoZXgpCQlPcHRob3MgSW5jLgorMDAwNjNFICAgICAoYmFzZSAxNikJCU9wdGhvcyBJbmMuCisJCQkJNTkwIFRheWxvciBXYXkKKwkJCQlTYW4gQ2FybG9zIENBIDk0MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0zRiAgIChoZXgpCQlFdmVyZXggQ29tbXVuaWNhdGlvbnMgSW5jLgorMDAwNjNGICAgICAoYmFzZSAxNikJCUV2ZXJleCBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJNTAyMEEgQnJhbmRpbiBDdC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi00MCAgIChoZXgpCQlXaGl0ZSBSb2NrIE5ldHdvcmtzCiswMDA2NDAgICAgIChiYXNlIDE2KQkJV2hpdGUgUm9jayBOZXR3b3JrcworCQkJCVN1aXRlICM5MDAKKwkJCQkxODExMSBQcmVzdG9uIFJvYWQKKwkJCQlEYWxsYXMgVFggNzUyNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTQxICAgKGhleCkJCUlUQ04KKzAwMDY0MSAgICAgKGJhc2UgMTYpCQlJVENOCisJCQkJODU3MSBHYW5kZXIgQ3JlZWsgRHJpdmUKKwkJCQlNaWFtaXNidXJnIE9IIDQ1MzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi00MiAgIChoZXgpCQlHZW5ldGVsIFN5c3RlbXMgSW5jLgorMDAwNjQyICAgICAoYmFzZSAxNikJCUdlbmV0ZWwgU3lzdGVtcyBJbmMuCisJCQkJTW9ja3dvbyBCL0QsIDkxMiBXYWxweW91bmctRG9uZworCQkJCVNlby1HdSBUYWVqb24sCisJCQkJMzAyLTg1MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi00MyAgIChoZXgpCQlTT05PIENvbXB1dGVyIENvLiwgTHRkLgorMDAwNjQzICAgICAoYmFzZSAxNikJCVNPTk8gQ29tcHV0ZXIgQ28uLCBMdGQuCisJCQkJMUYuLCBOby4gOCwgQWxsZXkgMzUsIExhbmUgOTEsCisJCQkJU2VjLiAxLCBOZWktSHUgUm9hZCwKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtNDQgICAoaGV4KQkJTmVpeCxJbmMKKzAwMDY0NCAgICAgKGJhc2UgMTYpCQlOZWl4LEluYworCQkJCTMtNS0zLTI0LCBIaWdhc2hpc2FwcG9ybworCQkJCVNoaXJvaXNoaS1rdQorCQkJCVNhcHBvcm8gSG9ra2FpZG8gMDAzLTAwMDMKKwkJCQlKQVBBTgorCiswMC0wNi00NSAgIChoZXgpCQlNZWlzZWkgRWxlY3RyaWMgQ28uIEx0ZC4KKzAwMDY0NSAgICAgKGJhc2UgMTYpCQlNZWlzZWkgRWxlY3RyaWMgQ28uIEx0ZC4KKwkJCQkyNDktMSwgTW9yaXlhLWtvdSwgTW9yaXlhCisJCQkJS2l0YXNvdW1hLUd1biwgSWJhcmFraQorCQkJCTMwMi0wMTkyCisJCQkJSkFQQU4KKworMDAtMDYtNDYgICAoaGV4KQkJU2hlblpoZW4gWHVuQmFvIE5ldHdvcmsgVGVjaG5vbG9neSBDbyBMdGQKKzAwMDY0NiAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBYdW5CYW8gTmV0d29yayBUZWNobm9sb2d5IENvIEx0ZAorCQkJCUYzLCBSMi1BIEJ1aWxkaW5nLCBTb3V0aCBEaXN0cmljdAorCQkJCW9mIEhpZ2gtVGVjaCBJbmR1c3RyaWFsIFBhcmssCisJCQkJU2hlbiBaaGVuICAKKwkJCQlDSElOQQorCiswMC0wNi00NyAgIChoZXgpCQlFdHJhbGkgUy5BLgorMDAwNjQ3ICAgICAoYmFzZSAxNikJCUV0cmFsaSBTLkEuCisJCQkJMjIxLCBSdWUgTGEgRm9udGFpbmUKKwkJCQk5NDEzMiBGb250ZW5heSBTb3VzIEJvaXMgQ2VkZXgKKwkJCQlGUkFOQ0UKKworMDAtMDYtNDggICAoaGV4KQkJU2VlZHN3YXJlLCBJbmMuCiswMDA2NDggICAgIChiYXNlIDE2KQkJU2VlZHN3YXJlLCBJbmMuCisJCQkJIDMtNy0xNiBUZWNobm9zdGFnZSwKKwkJCQlJenVtaSwgT3Nha2EgNTk0LTExNDQKKwkJCQlKQVBBTgorCiswMC0wNi00OSAgIChoZXgpCQkzTSBEZXV0c2NobGFuZCBHbWJICiswMDA2NDkgICAgIChiYXNlIDE2KQkJM00gRGV1dHNjaGxhbmQgR21iSAorCQkJCUNhcmwtU2NodXJ6LVN0ci4gMQorCQkJCU5ldXNzICBELTQxNDUzCisJCQkJR0VSTUFOWQorCiswMC0wNi00QSAgIChoZXgpCQlIb25leXdlbGwgQ28uLCBMdGQuIChLT1JFQSkKKzAwMDY0QSAgICAgKGJhc2UgMTYpCQlIb25leXdlbGwgQ28uLCBMdGQuIChLT1JFQSkKKwkJCQk1NiwgQ2hhYW0tZG9uZywgQ2hvbmFuLWNpdHkKKwkJCQlDaG9vbmdjaGVvbmduYW0tZG8sIDMzMC0yMDAsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTRCICAgKGhleCkJCUFsZXhvbiBDby4sIEx0ZC4KKzAwMDY0QiAgICAgKGJhc2UgMTYpCQlBbGV4b24gQ28uLCBMdGQuCisJCQkJMy0yMDctMSBUZXJhbW90bywKKwkJCQlJdGFtaSwgSHlvZ28gNjY0LTAwMjYKKwkJCQlKQVBBTgorCiswMC0wNi00QyAgIChoZXgpCQlJbnZpY3RhIE5ldHdvcmtzLCBJbmMuCiswMDA2NEMgICAgIChiYXNlIDE2KQkJSW52aWN0YSBOZXR3b3JrcywgSW5jLgorCQkJCTEzODczIFBhcmsgQ2VudGVyIFJvYWQKKwkJCQlTdWl0ZSA0MDAKKwkJCQlIZXJuZG9uIFZBIDIwMTcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi00RCAgIChoZXgpCQlTZW5jb3JlCiswMDA2NEQgICAgIChiYXNlIDE2KQkJU2VuY29yZQorCQkJCTMyMDAgU2VuY29yZSBEci4KKwkJCQlTaW91eCBGYWxscyBTRCA1NzEwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNEUgICAoaGV4KQkJQnJvYWQgTmV0IFRlY2hub2xvZ3kgSW5jLgorMDAwNjRFICAgICAoYmFzZSAxNikJCUJyb2FkIE5ldCBUZWNobm9sb2d5IEluYy4KKwkJCQk1RiwgTm8uNTgsIExhbmUgMTg4LCBSdWkgS3VhbmcgUm9hZAorCQkJCU5laWh1IERpc3RyaWN0LCBUYWlwZWkgMTE0LAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtNEYgICAoaGV4KQkJUFJPLU5FVFMgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAwNjRGICAgICAoYmFzZSAxNikJCVBSTy1ORVRTIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQlQYW8tQ2h1bmcgUm9hZCwKKwkJCQlOby4gOTIsIDEwRi0xCisJCQkJSHNpbiBUaWVuIFRhaXBlaSwgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi01MCAgIChoZXgpCQlUaWJ1cm9uIE5ldHdvcmtzLCBJbmMuCiswMDA2NTAgICAgIChiYXNlIDE2KQkJVGlidXJvbiBOZXR3b3JrcywgSW5jLgorCQkJCTIwMCBNaW51dGVtYW4gUmQuCisJCQkJU3VpdGUgMkIKKwkJCQlBbmRvdmVyIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi01MSAgIChoZXgpCQlBc3BlbiBOZXR3b3JrcyBJbmMuCiswMDA2NTEgICAgIChiYXNlIDE2KQkJQXNwZW4gTmV0d29ya3MgSW5jLgorCQkJCTM3NzcgU3RldmVucyBDcmVlayBCbHZkCisJCQkJU3VpdGUgMzMwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTUyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDY1MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi01MyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA2NTMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNTQgICAoaGV4KQkJV2lucHJlc2EgQnVpbGRpbmcgQXV0b21hdGlvbiBUZWNobm9sb2dpZXMgR21iSAorMDAwNjU0ICAgICAoYmFzZSAxNikJCVdpbnByZXNhIEJ1aWxkaW5nIEF1dG9tYXRpb24gVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlWaXZlbm90Z2Fzc2UgNTMvMgorCQkJCUEtMTEyMCBWaWVubmEKKwkJCQlBVVNUUklBCisKKzAwLTA2LTU1ICAgKGhleCkJCVlpcGVlLCBJbmMuCiswMDA2NTUgICAgIChiYXNlIDE2KQkJWWlwZWUsIEluYy4KKwkJCQk1NTUgSW50ZXJuYXRpb25hbCBEcml2ZQorCQkJCVN1aXRlIDgwMAorCQkJCVdpbGxpYW1zdmlsbGUgTlkgMTQyMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTU2ICAgKGhleCkJCVRhY3RlbCBBQgorMDAwNjU2ICAgICAoYmFzZSAxNikJCVRhY3RlbCBBQgorCQkJCU5vcnJhIFZhbGxnYXRhbiA2NAorCQkJCVNFLTIxMSAyMiBNYWxtbworCQkJCVNXRURFTgorCiswMC0wNi01NyAgIChoZXgpCQlNYXJrZXQgQ2VudHJhbCwgSW5jLgorMDAwNjU3ICAgICAoYmFzZSAxNikJCU1hcmtldCBDZW50cmFsLCBJbmMuCisJCQkJNTAwIEJ1c2luZXNzIENlbnRlciBEcml2ZQorCQkJCVBpdHRzYnVyZ2ggUEEgMTUyMDUtMTMzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNTggICAoaGV4KQkJSGVsbXV0IEZpc2NoZXIgR21iSCBJbnN0aXR1dCBm/HIgRWxla3Ryb25payB1bmQgTWVzc3RlY2huaWsKKzAwMDY1OCAgICAgKGJhc2UgMTYpCQlIZWxtdXQgRmlzY2hlciBHbWJIIEluc3RpdHV0IGb8ciBFbGVrdHJvbmlrIHVuZCBNZXNzdGVjaG5paworCQkJCUluZHVzdHJpYUJlMjEKKwkJCQk3MTA2OSBTaW5kZWZpbmdlbgorCQkJCUdFUk1BTlkKKworMDAtMDYtNTkgICAoaGV4KQkJRUFMIChBcGVsZG9vcm4pIEIuVi4KKzAwMDY1OSAgICAgKGJhc2UgMTYpCQlFQUwgKEFwZWxkb29ybikgQi5WLgorCQkJCU1vbGVubWFrZXJzaG9layAxNAorCQkJCUpLIEFwZWxkb29ybiAgNzMyOAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTA2LTVBICAgKGhleCkJCVN0cml4IFN5c3RlbXMKKzAwMDY1QSAgICAgKGJhc2UgMTYpCQlTdHJpeCBTeXN0ZW1zCisJCQkJMzEwIE4uIFdlc3RsYWtlIEJsdmQuCisJCQkJU3VpdGUgMTUwCisJCQkJV2VzdGxha2UgVmlsbGFnZSBDQSA5MTM2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNUIgICAoaGV4KQkJRGVsbCBDb21wdXRlciBDb3JwLgorMDAwNjVCICAgICAoYmFzZSAxNikJCURlbGwgQ29tcHV0ZXIgQ29ycC4KKwkJCQlPbmUgRGVsbCBXYXkKKwkJCQlSb3VuZCBSb2NrIFRYIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi01QyAgIChoZXgpCQlNYWxhY2hpdGUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA2NUMgICAgIChiYXNlIDE2KQkJTWFsYWNoaXRlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE5NSBOZXcgSGFtcHNoaXJlIEF2ZW51ZQorCQkJCVN1aXRlIDE1MAorCQkJCVBvcnRzbW91dGggTkggMDM4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTVEICAgKGhleCkJCUhlaWRlbGJlcmcgV2ViIFN5c3RlbXMKKzAwMDY1RCAgICAgKGJhc2UgMTYpCQlIZWlkZWxiZXJnIFdlYiBTeXN0ZW1zCisJCQkJMTIxIFRlY2hub2xvZ3kgRHIuCisJCQkJRHVyaGFtIE5IIDAzODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi01RSAgIChoZXgpCQlQaG90dXJpcywgSW5jLgorMDAwNjVFICAgICAoYmFzZSAxNikJCVBob3R1cmlzLCBJbmMuCisJCQkJMjAgQ29ycG9yYXRlIFBsYWNlIFNvdXRoCisJCQkJUGlzY2F0YXdheSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNUYgICAoaGV4KQkJRUNJIFRlbGVjb20gLSBOR1RTIEx0ZC4KKzAwMDY1RiAgICAgKGJhc2UgMTYpCQlFQ0kgVGVsZWNvbSAtIE5HVFMgTHRkLgorCQkJCTMwIEhhc2l2aW0gU3QuCisJCQkJUGV0YWgtVGlrdmEgNDkxMzAKKwkJCQlJU1JBRUwKKworMDAtMDYtNjAgICAoaGV4KQkJTkFERVggQ28uLCBMdGQuCiswMDA2NjAgICAgIChiYXNlIDE2KQkJTkFERVggQ28uLCBMdGQuCisJCQkJMSBPbWl5YW1hZSwgVG9rdXNoaWdlLAorCQkJCU5pc2hpaGFydS1jeW8sIE5pc2hpa2FzdWdhaS1ndW4sCisJCQkJQWljaGkgIDQ4MS0wMDM4CisJCQkJSkFQQU4KKworMDAtMDYtNjEgICAoaGV4KQkJTklBIEhvbWUgVGVjaG5vbG9naWVzIENvcnAuCiswMDA2NjEgICAgIChiYXNlIDE2KQkJTklBIEhvbWUgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJSW5ub3ZhdGlvbiBJbmN1YmF0b3IsIE5USFUsCisJCQkJMTAxLCBTZWMuIDIsIEt1YW5nIEZ1IFJvYWQsCisJCQkJSHNpbmNodSAzMDAxMywgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi02MiAgIChoZXgpCQlNQk0gVGVjaG5vbG9neSBMdGQuCiswMDA2NjIgICAgIChiYXNlIDE2KQkJTUJNIFRlY2hub2xvZ3kgTHRkLgorCQkJCVZpY3RvcmlhIFJkLgorCQkJCVBvcnRzbGFkZSwgQnJpZ2h0b24gU3Vzc2V4IEJONGwgMVlICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDYtNjMgICAoaGV4KQkJSHVtYW4gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDY2MyAgICAgKGJhc2UgMTYpCQlIdW1hbiBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTNyZCBGbCwgSHl1bmdvayBCbGRnLiwKKwkJCQk4MzYtMjUsIFl1a3NhbS1Eb25nLAorCQkJCUthbmduYW0ta3UgU2VvdWwgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTY0ICAgKGhleCkJCUZvc3RleCBDb3Jwb3JhdGlvbgorMDAwNjY0ICAgICAoYmFzZSAxNikJCUZvc3RleCBDb3Jwb3JhdGlvbgorCQkJCTMtMi0zNSwgTXVzYXNoaW5vLCBBa2lzaGltYSwKKwkJCQlUb2t5byAgMTk2LTAwMjEKKwkJCQlKQVBBTgorCiswMC0wNi02NSAgIChoZXgpCQlTdW5ueSBHaWtlbiwgSW5jLgorMDAwNjY1ICAgICAoYmFzZSAxNikJCVN1bm55IEdpa2VuLCBJbmMuCisJCQkJMy0xLTkgTmlzaGlkYWkgSXRhbWktc2hpCisJCQkJSHlvZ28tcHJlZi4gIDY2NC0wODU4CisJCQkJSkFQQU4KKworMDAtMDYtNjYgICAoaGV4KQkJUm92aW5nIE5ldHdvcmtzCiswMDA2NjYgICAgIChiYXNlIDE2KQkJUm92aW5nIE5ldHdvcmtzCisJCQkJODA5IFVuaXZlcnNpdHkgQXZlbnVlCisJCQkJTG9zIEdhdG9zIENBIDk1MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi02NyAgIChoZXgpCQlUcmlwcCBMaXRlCiswMDA2NjcgICAgIChiYXNlIDE2KQkJVHJpcHAgTGl0ZQorCQkJCTExMTEgVy4gMzV0aCBTdHJlZXQKKwkJCQlDaGljYWdvIElMIDYwNjA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi02OCAgIChoZXgpCQlWaWNvbiBJbmR1c3RyaWVzIEluYy4KKzAwMDY2OCAgICAgKGJhc2UgMTYpCQlWaWNvbiBJbmR1c3RyaWVzIEluYy4KKwkJCQk4OSBBcmtheSBEcml2ZQorCQkJCUhhdXBwYXVnZSBOWSAxMTc4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNjkgICAoaGV4KQkJRGF0YXNvdW5kIExhYm9yYXRvcmllcyBMdGQKKzAwMDY2OSAgICAgKGJhc2UgMTYpCQlEYXRhc291bmQgTGFib3JhdG9yaWVzIEx0ZAorCQkJCTUgQnVzaW5lc3MgUGFyayBXZXN0LCBBdmVudWUgT25lCisJCQkJTGV0Y2h3b3J0aCwgSGVydHMgU0c2IDI0QgorCQkJCUVOR0xBTkQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDYtNkEgICAoaGV4KQkJSW5maW5pQ29uIFN5c3RlbXMsIEluYy4KKzAwMDY2QSAgICAgKGJhc2UgMTYpCQlJbmZpbmlDb24gU3lzdGVtcywgSW5jLgorCQkJCTcwMCBBbWVyaWNhbiBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJS2luZyBvZiBQcnVzc2lhIFBBIDE5NDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi02QiAgIChoZXgpCQlTeXNtZXggQ29ycG9yYXRpb24KKzAwMDY2QiAgICAgKGJhc2UgMTYpCQlTeXNtZXggQ29ycG9yYXRpb24KKwkJCQk0LTQtNCBUYWthdHN1a2FkYWksCisJCQkJTmlzaGkta3UsIEtvYmUtQ2l0eQorCQkJCTY1MS0yMjcxCisJCQkJSkFQQU4KKworMDAtMDYtNkMgICAoaGV4KQkJUm9iaW5zb24gQ29ycG9yYXRpb24KKzAwMDY2QyAgICAgKGJhc2UgMTYpCQlSb2JpbnNvbiBDb3Jwb3JhdGlvbgorCQkJCTEyRiwgTm8uIDI3OCBIbyBQaW5nIEUuIFJkLiwKKwkJCQlTZWMuIDMKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtNkQgICAoaGV4KQkJQ29tcHVwcmludCBTLlAuQS4KKzAwMDY2RCAgICAgKGJhc2UgMTYpCQlDb21wdXByaW50IFMuUC5BLgorCQkJCVZpYSBNYXJ0aXJpIEQnSXRhbGlhIDI2CisJCQkJMTAwMTQgQ2FsdXNvIChUdXJpbikKKwkJCQlJVEFMWQorCiswMC0wNi02RSAgIChoZXgpCQlEZWx0YSBFbGVjdHJvbmljcywgSW5jLgorMDAwNjZFICAgICAoYmFzZSAxNikJCURlbHRhIEVsZWN0cm9uaWNzLCBJbmMuCisJCQkJMTFGLCAyNjYgV2VuLUh3YSAybmQgUm9hZCwKKwkJCQlTZWMuIDEsIExpbmtvdSwgVGFpcGVpIEhzaWVuIDI0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtNkYgICAoaGV4KQkJS29yZWEgRGF0YSBTeXN0ZW1zCiswMDA2NkYgICAgIChiYXNlIDE2KQkJS29yZWEgRGF0YSBTeXN0ZW1zCisJCQkJMTcwLCBHb25nZGFuLURvbmcsIEd1bWktU2kKKwkJCQlLeXVuZ2J1ayAgNzMwLTAzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi03MCAgIChoZXgpCQlVcHBvbmV0dGkgT3kKKzAwMDY3MCAgICAgKGJhc2UgMTYpCQlVcHBvbmV0dGkgT3kKKwkJCQlUeWtpc3Rva2F0dSA0RAorCQkJCUZJTi0yMDUyMCBUdXJrdQorCQkJCUZJTkxBTkQKKworMDAtMDYtNzEgICAoaGV4KQkJU29mdGluZyBBRworMDAwNjcxICAgICAoYmFzZSAxNikJCVNvZnRpbmcgQUcKKwkJCQlSaWNoYXJkLVJlaXR6bmVyLUFsbGVlIDYKKwkJCQk4NTU0MCBIYWFyCisJCQkJR0VSTUFOWQorCiswMC0wNi03MiAgIChoZXgpCQlOZXRlenphCiswMDA2NzIgICAgIChiYXNlIDE2KQkJTmV0ZXp6YQorCQkJCTE2NzEgV29yY2VzdGVyIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlGcmFtaW5naGFtIE1BIDAxNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi03MyAgIChoZXgpCQlPcHRlbGVjb20tbmtmCiswMDA2NzMgICAgIChiYXNlIDE2KQkJT3B0ZWxlY29tLW5rZgorCQkJCTEyOTIwIENsb3ZlcmxlYWYgQ2VudGVyIERyaXZlCisJCQkJR2VybWFudG93biBNRCAyMDg3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNzQgICAoaGV4KQkJU3BlY3RydW0gQ29udHJvbCwgSW5jLgorMDAwNjc0ICAgICAoYmFzZSAxNikJCVNwZWN0cnVtIENvbnRyb2wsIEluYy4KKwkJCQk4MDYxIEF2b25pYSBSb2FkCisJCQkJRmFpcnZpZXcgUEEgMTY0MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTc1ICAgKGhleCkJCUJhbmRlcmFjb20sIEluYy4KKzAwMDY3NSAgICAgKGJhc2UgMTYpCQlCYW5kZXJhY29tLCBJbmMuCisJCQkJOTIxMSBXYXRlcmZvcmQgQ2VudHJlIEJsdmQuCisJCQkJU3VpdGUgMTAwCisJCQkJQXVzdGluIFRYIDc4NzU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi03NiAgIChoZXgpCQlOb3ZyYSBUZWNobm9sb2dpZXMgSW5jLgorMDAwNjc2ICAgICAoYmFzZSAxNikJCU5vdnJhIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJOTAwLTMzMCBTdC4gTWFyeSBBdmVudWUKKwkJCQlXaW5uaXBlZyBNYW5pdG9iYSBSM0MgM1o1CisJCQkJQ0FOQURBCisKKzAwLTA2LTc3ICAgKGhleCkJCVNJQ0sgQUcKKzAwMDY3NyAgICAgKGJhc2UgMTYpCQlTSUNLIEFHCisJCQkJRXJ3aW4tU2ljayBTdHIuMQorCQkJCUQtNzkxODMgV2FsZGtpcmNoIAorCQkJCUdFUk1BTlkKKworMDAtMDYtNzggICAoaGV4KQkJTWFyYW50eiBCcmFuZCBDb21wYW55CiswMDA2NzggICAgIChiYXNlIDE2KQkJTWFyYW50eiBCcmFuZCBDb21wYW55CisJCQkJRCZNIEJ1aWxkaW5nLCAyLTEgTmlzc2hpbi1jaG8KKwkJCQlLYXdhc2FraS1rdQorCQkJCUthd2FzYWtpLXNoaSBLYXdhZ2F3YSAyMTAtODU2OQorCQkJCUpBUEFOCisKKzAwLTA2LTc5ICAgKGhleCkJCUtvbmFtaSBDb3Jwb3JhdGlvbgorMDAwNjc5ICAgICAoYmFzZSAxNikJCUtvbmFtaSBDb3Jwb3JhdGlvbgorCQkJCTExLTE0LTUgQWthc2FrYSwgTWluYXRvLWt1LAorCQkJCVRva3lvIDEwNy0wMDUyCisJCQkJSkFQQU4KKworMDAtMDYtN0EgICAoaGV4KQkJSk1QIFN5c3RlbXMKKzAwMDY3QSAgICAgKGJhc2UgMTYpCQlKTVAgU3lzdGVtcworCQkJCTNyZCBGbC4gU2hpbndoYSBCbGRnLiwKKwkJCQkxNDUxLTE5LCBTZW9jaG8tZG9uZywKKwkJCQlTZW9jaG8ta3UgU2VvdWwsIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi03QiAgIChoZXgpCQlUb3BsaW5rIEMmQyBDb3Jwb3JhdGlvbgorMDAwNjdCICAgICAoYmFzZSAxNikJCVRvcGxpbmsgQyZDIENvcnBvcmF0aW9uCisJCQkJNkYtMTUsIE5vLiAxMiwgTGFuZSA2MDksIFNlYy4gNQorCQkJCUNodW5nIEhzaW4gUmQuLCBTYW4gQ2h1bmcgQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAyNDEgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtN0MgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAwNjdDICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtN0QgICAoaGV4KQkJVGFrYXNhZ28gTHRkLgorMDAwNjdEICAgICAoYmFzZSAxNikJCVRha2FzYWdvIEx0ZC4KKwkJCQkxLTI0LTE2IE1pem9ub2t1Y2hpIFRha2F0c3Uta3UKKwkJCQlLYXdhc2FraSBLYW5hZ2F3YQorCQkJCUpBUEFOCisKKzAwLTA2LTdFICAgKGhleCkJCVdpbkNvbSBTeXN0ZW1zLCBJbmMuCiswMDA2N0UgICAgIChiYXNlIDE2KQkJV2luQ29tIFN5c3RlbXMsIEluYy4KKwkJCQkxMDkwMCBXb3JsZCBUcmFkZSBCbHZkLgorCQkJCVN1aXRlIDI1MAorCQkJCU1vcnJpc3ZpbGxlIE5DIDI3NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi03RiAgIChoZXgpCQlEaWdlbywgSW5jLgorMDAwNjdGICAgICAoYmFzZSAxNikJCURpZ2VvLCBJbmMuCisJCQkJODgxNSAxMjJuZCBBdmVudWUgTkUKKwkJCQlLaXJrbGFuZCBXQSA5ODAzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtODAgICAoaGV4KQkJQ2FyZCBBY2Nlc3MsIEluYy4KKzAwMDY4MCAgICAgKGJhc2UgMTYpCQlDYXJkIEFjY2VzcywgSW5jLgorCQkJCTExNzc4IFMuIEVsZWN0aW9uIFJkCisJCQkJU3VpdGUgMjYwCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODA0MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTgxICAgKGhleCkJCUdvZXBlbCBFbGVjdHJvbmljIEdtYkgKKzAwMDY4MSAgICAgKGJhc2UgMTYpCQlHb2VwZWwgRWxlY3Ryb25pYyBHbWJICisJCQkJR29lc2Nod2l0emVyIFN0ci4gNTgtNjAKKwkJCQkwNzc0NSBKZW5hCisJCQkJR0VSTUFOWQorCiswMC0wNi04MiAgIChoZXgpCQlDb252ZWRpYQorMDAwNjgyICAgICAoYmFzZSAxNikJCUNvbnZlZGlhCisJCQkJNDE5MCBTdGlsbCBDcmVlayBEci4KKwkJCQlWYW5jb3V2ZXIgQi5DLgorCQkJCVY1QyA2QzYKKwkJCQlDQU5BREEKKworMDAtMDYtODMgICAoaGV4KQkJQnJhdmFyYSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNjgzICAgICAoYmFzZSAxNikJCUJyYXZhcmEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyNjUwIEVhc3QgQmF5c2hvcmUgUm9hZAorCQkJCVBhbG8gQWx0byBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtODQgICAoaGV4KQkJQmlhY29yZSBBQgorMDAwNjg0ICAgICAoYmFzZSAxNikJCUJpYWNvcmUgQUIKKwkJCQlTb2Z0d2FyZSwgRWxlY3Ryb25pY3MgYW5kIE9wdGljcworCQkJCVJhcHNnYXRhbiA3LCA3NTQgNTAgVXBwc2FsYQorCQkJCVNXRURFTgorCiswMC0wNi04NSAgIChoZXgpCQlOZXROZWFyVSBDb3Jwb3JhdGlvbgorMDAwNjg1ICAgICAoYmFzZSAxNikJCU5ldE5lYXJVIENvcnBvcmF0aW9uCisJCQkJMjkwOCBGaW5mZWF0aGVyIFJvYWQKKwkJCQlCcnlhbiBUWCA3NzgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtODYgICAoaGV4KQkJWkFSRENPTSBDby4sIEx0ZC4KKzAwMDY4NiAgICAgKGJhc2UgMTYpCQlaQVJEQ09NIENvLiwgTHRkLgorCQkJCTRGLCAxNTQ4LTEsIFNlb2NobyBEb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTg3ICAgKGhleCkJCU9tbml0cm9uIFN5c3RlbXMgVGVjaG5vbG9neSwgSW5jLgorMDAwNjg3ICAgICAoYmFzZSAxNikJCU9tbml0cm9uIFN5c3RlbXMgVGVjaG5vbG9neSwgSW5jLgorCQkJCTE0MCBUZWNobm9sb2d5CisJCQkJU3VpdGUgNTAwCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi04OCAgIChoZXgpCQlUZWx3YXlzIENvbW11bmljYXRpb24gQ28uLCBMdGQuCiswMDA2ODggICAgIChiYXNlIDE2KQkJVGVsd2F5cyBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorCQkJCTNGLCBOby4gNTMsIExhbmUgMjU4CisJCQkJWnVpLUt1YW5nIFJkLiwgTmVpLUh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA2LTg5ICAgKGhleCkJCXlMZXogVGVjaG5vbG9naWVzIFB0ZSBMdGQKKzAwMDY4OSAgICAgKGJhc2UgMTYpCQl5TGV6IFRlY2hub2xvZ2llcyBQdGUgTHRkCisJCQkJTm8uIDEsIFRhbm5lcnkgUm9hZCwgQ2VuY29uIDEsCisJCQkJIzA5LTAzLCAzNDc3MTkKKwkJCQlTSU5HQVBPUkUKKworMDAtMDYtOEEgICAoaGV4KQkJTmV1cm9uTmV0IENvLiBMdGQuIFImRCBDZW50ZXIKKzAwMDY4QSAgICAgKGJhc2UgMTYpCQlOZXVyb25OZXQgQ28uIEx0ZC4gUiZEIENlbnRlcgorCQkJCTczNS0zNCBEYXN1bmcgQmxkZy4sIFl1a3NhbS1kb25nLAorCQkJCUthbmduYW0tZ3UsIFNlb3VsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LThCICAgKGhleCkJCUFpclJ1bm5lciBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDY4QiAgICAgKGJhc2UgMTYpCQlBaXJSdW5uZXIgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMjQwMSBMdXBpbmUgVHJhaWwKKwkJCQlTb3V0aCBMYWtlIFRhaG9lIENBIDk2MTUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi04QyAgIChoZXgpCQkzQ29tIENvcnBvcmF0aW9uCiswMDA2OEMgICAgIChiYXNlIDE2KQkJM0NvbSBDb3Jwb3JhdGlvbgorCQkJCTU0MDAgQmF5ZnJvbnQgUGxhemEKKwkJCQlNUzogIDUxMTYKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtOEQgICAoaGV4KQkJU0VQQVRPTiwgSW5jLgorMDAwNjhEICAgICAoYmFzZSAxNikJCVNFUEFUT04sIEluYy4KKwkJCQk0MDAgTmlja2Vyc29uIFJkLgorCQkJCU1hcmxib3JvdWdoIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi04RSAgIChoZXgpCQlISUQgQ29ycG9yYXRpb24KKzAwMDY4RSAgICAgKGJhc2UgMTYpCQlISUQgQ29ycG9yYXRpb24KKwkJCQk5MjkyIEplcm9uaW1vIFJvYWQKKwkJCQlJcnZpbmUgQ0EgOTI2MTgtMTkwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtOEYgICAoaGV4KQkJVGVsZW1vbml0b3IsIEluYy4KKzAwMDY4RiAgICAgKGJhc2UgMTYpCQlUZWxlbW9uaXRvciwgSW5jLgorCQkJCTkwNTVGIEd1aWxmb3JkIFJvYWQKKwkJCQlDb2x1bWJpYSBNRCAyMTA0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtOTAgICAoaGV4KQkJRXVyYWNvbSBDb21tdW5pY2F0aW9uIEdtYkgKKzAwMDY5MCAgICAgKGJhc2UgMTYpCQlFdXJhY29tIENvbW11bmljYXRpb24gR21iSAorCQkJCUZyYW5rbGluc3RyLiAxNAorCQkJCUQtMTA1ODcgQmVybGluCisJCQkJR0VSTUFOWQorCiswMC0wNi05MSAgIChoZXgpCQlQVCBJbm92YWNhbworMDAwNjkxICAgICAoYmFzZSAxNikJCVBUIElub3ZhY2FvCisJCQkJUnVhIEVuZy4gSm9zZSBGLiBQaW50byBCYXN0bworCQkJCTM4MTAgQXZlaXJvCisJCQkJUE9SVFVHQUwKKworMDAtMDYtOTIgICAoaGV4KQkJSW50cnV2ZXJ0IE5ldHdvcmtzLCBJbmMuCiswMDA2OTIgICAgIChiYXNlIDE2KQkJSW50cnV2ZXJ0IE5ldHdvcmtzLCBJbmMuCisJCQkJU3VpdGUgMTAyCisJCQkJMjI5MCBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtOTMgICAoaGV4KQkJRmxleHVzIENvbXB1dGVyIFRlY2hub2xvZ3ksIEluYy4KKzAwMDY5MyAgICAgKGJhc2UgMTYpCQlGbGV4dXMgQ29tcHV0ZXIgVGVjaG5vbG9neSwgSW5jLgorCQkJCThGLTIsIE5vLjUsIEFsbGV5MjIsIExhbmUgNTEzLAorCQkJCVJ1ZWktR3VhbmcgUmQuLCBOZWktSHUgRGlzdC4sCisJCQkJVGFpcGVpIDExNCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi05NCAgIChoZXgpCQlNb2JpbGxpYW4gQ29ycG9yYXRpb24KKzAwMDY5NCAgICAgKGJhc2UgMTYpCQlNb2JpbGxpYW4gQ29ycG9yYXRpb24KKwkJCQkxMTAzMSBWaWEgRnJvbnRlcmEKKwkJCQlTdWl0ZSBDCisJCQkJU2FuIERpZWdvIENBIDkyMTI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi05NSAgIChoZXgpCQlFbnN1cmUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA2OTUgICAgIChiYXNlIDE2KQkJRW5zdXJlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTM1MjYgV2VzdCBMaWJlcnR5CisJCQkJU3VpdGUgMTAwCisJCQkJQW5uIEFyYm9yIE1JIDQ4MTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi05NiAgIChoZXgpCQlBZHZlbnQgTmV0d29ya3MKKzAwMDY5NiAgICAgKGJhc2UgMTYpCQlBZHZlbnQgTmV0d29ya3MKKwkJCQk5NjAwIEdyZWF0IEhpbGxzIFRyLgorCQkJCVN1aXRlIDMwMEUKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTk3ICAgKGhleCkJCVIgJiBEIENlbnRlcgorMDAwNjk3ICAgICAoYmFzZSAxNikJCVIgJiBEIENlbnRlcgorCQkJCTVGLCBTZXVuZ3dvbiBCL0QsIDgxMC05CisJCQkJQmFuZ2JhZS1Eb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTk4ICAgKGhleCkJCWVnbml0ZSBTb2Z0d2FyZSBHbWJICiswMDA2OTggICAgIChiYXNlIDE2KQkJZWduaXRlIFNvZnR3YXJlIEdtYkgKKwkJCQlFcmluc3RyLiA5CisJCQkJQ2FzdHJvcC1SYXV4ZWwgRC00NDU3NQorCQkJCUdFUk1BTlkKKworMDAtMDYtOTkgICAoaGV4KQkJVmlkYSBEZXNpZ24gQ28uCiswMDA2OTkgICAgIChiYXNlIDE2KQkJVmlkYSBEZXNpZ24gQ28uCisJCQkJMTBGLCBOby4gMjc4IEhvIFBpbmcgRS4gUmQuLAorCQkJCVNlYy4gMywgVGFpcGVpCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi05QSAgIChoZXgpCQllICYgVGVsCiswMDA2OUEgICAgIChiYXNlIDE2KQkJZSAmIFRlbAorCQkJCTEwMCBTZWpvbmctbm8gQ2hvbmduby1ndSwKKwkJCQlTZW91bCAxMTAtNzc3LAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi05QiAgIChoZXgpCQlBVlQgQXVkaW8gVmlkZW8gVGVjaG5vbG9naWVzIEdtYkgKKzAwMDY5QiAgICAgKGJhc2UgMTYpCQlBVlQgQXVkaW8gVmlkZW8gVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlSYXRoc2JlcmdzdHJhc3NlIDE3CisJCQkJRC05MDQxMSBOdWVybmJlcmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA2LTlDICAgKGhleCkJCVRyYW5zbW9kZSBTeXN0ZW1zIEFCCiswMDA2OUMgICAgIChiYXNlIDE2KQkJVHJhbnNtb2RlIFN5c3RlbXMgQUIKKwkJCQlKYWtvYnNkYWxzduRnZW4gMTcKKwkJCQlIxEdFUlNURU4gU0UtMTI2IDUzCisJCQkJU1dFREVOCisKKzAwLTA2LTlEICAgKGhleCkJCVBldGFyZHMgTHRkCiswMDA2OUQgICAgIChiYXNlIDE2KQkJUGV0YXJkcyBMdGQKKwkJCQkzOTAgUHJpbmNlc3dheSwgVGVhbSBWYWxsZXkKKwkJCQlHYXRlc2hlYWQgVHluZSBhbmQgV2VhciBORTExIE9UVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA2LTlFICAgKGhleCkJCVVOSVFBLCBJbmMuCiswMDA2OUUgICAgIChiYXNlIDE2KQkJVU5JUUEsIEluYy4KKwkJCQk0NzcgVmFsbGV5IFdheQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi05RiAgIChoZXgpCQlLdW9rb2EgTmV0d29ya3MKKzAwMDY5RiAgICAgKGJhc2UgMTYpCQlLdW9rb2EgTmV0d29ya3MKKwkJCQkyOTAxIFRhc21hbiBEci4KKwkJCQlTdWl0ZSAyMDIKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQTAgICAoaGV4KQkJTXggSW1hZ2luZworMDAwNkEwICAgICAoYmFzZSAxNikJCU14IEltYWdpbmcKKwkJCQkyMzQxIFcuIDIwNXRoIFN0cmVldAorCQkJCVN1aXRlIDExMAorCQkJCVRvcnJhbmNlIENBIDkwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1BMSAgIChoZXgpCQlDZWxzaWFuIFRlY2hub2xvZ2llcywgSW5jLgorMDAwNkExICAgICAoYmFzZSAxNikJCUNlbHNpYW4gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMzAwMiBEb3cgQXZlLiwgVW5pdCAxMzgKKwkJCQlUdXN0aW4gQ0EgOTI3ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUEyICAgKGhleCkJCU1pY3JvdHVuZSwgSW5jLgorMDAwNkEyICAgICAoYmFzZSAxNikJCU1pY3JvdHVuZSwgSW5jLgorCQkJCTY0NDAgTHVzayBCbHZkLiwgU3VpdGUgRDIwNQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQTMgICAoaGV4KQkJQml0cmFuIENvcnBvcmF0aW9uCiswMDA2QTMgICAgIChiYXNlIDE2KQkJQml0cmFuIENvcnBvcmF0aW9uCisJCQkJMjIxMyBNb2NoaWRhCisJCQkJR3lvdWRhIFNhaXRhbWEKKwkJCQlKQVBBTgorCiswMC0wNi1BNCAgIChoZXgpCQlJTk5PV0VMTCBDb3JwLgorMDAwNkE0ICAgICAoYmFzZSAxNikJCUlOTk9XRUxMIENvcnAuCisJCQkJIzcxNyBDaG9uZ0d1IEJsdWV2aWxsCisJCQkJMTEtMSwgU3VuYWUtMSBEb25nLCBCdW5kYW5nLUd1LCBTdW5nbmFtLQorCQkJCTQ2My04MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtQTUgICAoaGV4KQkJUElOT04gQ29ycC4KKzAwMDZBNSAgICAgKGJhc2UgMTYpCQlQSU5PTiBDb3JwLgorCQkJCURLIEdvdGFuZGEgQmxkZy43RgorCQkJCTctMTMtNSBOaXNoaWdvdGFuZGEgU2hpbmFnYXdhLWt1CisJCQkJVG9reW8gIDE0MS0wMDMxCisJCQkJSkFQQU4KKworMDAtMDYtQTYgICAoaGV4KQkJQXJ0aXN0aWMgTGljZW5jZSAoVUspIEx0ZAorMDAwNkE2ICAgICAoYmFzZSAxNikJCUFydGlzdGljIExpY2VuY2UgKFVLKSBMdGQKKwkJCQkyNCBGb3J3YXJkIERyaXZlCisJCQkJQ2hyaXN0Y2h1cmNoIEF2ZW51ZQorCQkJCUhhcnJvdyBNaWRkbGVzZXggSEEzIDhOVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA2LUE3ICAgKGhleCkJCVByaW1hcmlvbgorMDAwNkE3ICAgICAoYmFzZSAxNikJCVByaW1hcmlvbgorCQkJCTM0NTAgVG9ycmFuY2UgQmx2ZC4KKwkJCQlUb3JyYW5jZSBDQSA5MDUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQTggICAoaGV4KQkJS0MgVGVjaG5vbG9neSwgSW5jLgorMDAwNkE4ICAgICAoYmFzZSAxNikJCUtDIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxOTAwIE1jQ2FydGh5IEJsdmQuCisJCQkJU3VpdGUgMzAwCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUE5ICAgKGhleCkJCVVuaXZlcnNhbCBJbnN0cnVtZW50cyBDb3JwLgorMDAwNkE5ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBJbnN0cnVtZW50cyBDb3JwLgorCQkJCVBPIEJveCA4MjUKKwkJCQlCaW5naGFtdG9uIE5ZIDEzOTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1BQSAgIChoZXgpCQlWVCBNaWx0b3BlCiswMDA2QUEgICAgIChiYXNlIDE2KQkJVlQgTWlsdG9wZQorCQkJCTQ5MDAgUGVhcmwgRWFzdCBDaXJjbGUKKwkJCQlTdWl0ZSAxMDYKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1BQiAgIChoZXgpCQlXLUxpbmsgU3lzdGVtcywgSW5jLgorMDAwNkFCICAgICAoYmFzZSAxNikJCVctTGluayBTeXN0ZW1zLCBJbmMuCisJCQkJTm8uIDIwLCBQYXJrIEF2ZS4gSUksCisJCQkJU2NpZW5jZSBCYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi1BQyAgIChoZXgpCQlJbnRlcnNvZnQgQ28uCiswMDA2QUMgICAgIChiYXNlIDE2KQkJSW50ZXJzb2Z0IENvLgorCQkJCSMxODAzIHN1bi1reW91bmcgT2ZmaWNldGVsCisJCQkJMTA2LTQgQnVuemksIEd1cm81RG9uZywgR3VybyBHdQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtQUQgICAoaGV4KQkJS0IgRWxlY3Ryb25pY3MgTHRkLgorMDAwNkFEICAgICAoYmFzZSAxNikJCUtCIEVsZWN0cm9uaWNzIEx0ZC4KKwkJCQkxNTAgQmx1ZXdhdGVyIFJkLgorCQkJCUJlZGZvcmQsIE5vdmEgU2NvdGlhCisJCQkJQjRCIDFHOQorCQkJCUNBTkFEQQorCiswMC0wNi1BRSAgIChoZXgpCQlIaW1hY2hhbCBGdXR1cmlzdGljIENvbW11bmljYXRpb25zIEx0ZAorMDAwNkFFICAgICAoYmFzZSAxNikJCUhpbWFjaGFsIEZ1dHVyaXN0aWMgQ29tbXVuaWNhdGlvbnMgTHRkCisJCQkJOCwgQ29tbWVyY2lhbCBDb21wbGV4CisJCQkJTWFzamlkIE1vdGgsIEdyZWF0ZXIgS2FpbGFzaCBJSQorCQkJCU5ldyBEZWhsaSAgMTEwMDQ4CisJCQkJSU5ESUEKKworMDAtMDYtQUYgICAoaGV4KQkJWGFsdGVkIE5ldHdvcmtzCiswMDA2QUYgICAgIChiYXNlIDE2KQkJWGFsdGVkIE5ldHdvcmtzCisJCQkJMjkwMSBEYWxsYXMgUGFya3dheQorCQkJCVN1aXRlIDIwMAorCQkJCVBsYW5vIFRYIDc1MDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1CMCAgIChoZXgpCQlDb210ZWNoIEVGIERhdGEgQ29ycC4KKzAwMDZCMCAgICAgKGJhc2UgMTYpCQlDb210ZWNoIEVGIERhdGEgQ29ycC4KKwkJCQkyMTE0IFcuIDd0aCBTdC4KKwkJCQlUZW1wZSBBWiA4NTI4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQjEgICAoaGV4KQkJU29uaWN3YWxsCiswMDA2QjEgICAgIChiYXNlIDE2KQkJU29uaWN3YWxsCisJCQkJMTE2MCBCb3JkZWF1eCBEci4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUIyICAgKGhleCkJCUxpbnh0ZWsgQ28uCiswMDA2QjIgICAgIChiYXNlIDE2KQkJTGlueHRlayBDby4KKwkJCQkyRiBLdW0tYSBCL0QgMzEtMyBLYXJhay1kb25nLAorCQkJCVNvbmdwYS1rdSwgU2VvdWwsCisJCQkJMTM4LTE2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi1CMyAgIChoZXgpCQlEaWFncmFwaCBDb3Jwb3JhdGlvbgorMDAwNkIzICAgICAoYmFzZSAxNikJCURpYWdyYXBoIENvcnBvcmF0aW9uCisJCQkJMzQwMSBSaWRlciBUcmFpbCBTb3V0aAorCQkJCUVhcnRoIENpdHkgTU8gNjMwNDUtMTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQjQgICAoaGV4KQkJVm9ybmUgSW5kdXN0cmllcywgSW5jLgorMDAwNkI0ICAgICAoYmFzZSAxNikJCVZvcm5lIEluZHVzdHJpZXMsIEluYy4KKwkJCQkxNDQ1IEluZHVzdHJpYWwgRHIuCisJCQkJSXRhc2NhIElMIDYwMTQzLTE4NDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUI1ICAgKGhleCkJCUx1bWluZW50LCBJbmMuCiswMDA2QjUgICAgIChiYXNlIDE2KQkJTHVtaW5lbnQsIEluYy4KKwkJCQkyMDU1MCBOb3JkaG9mZiBTdC4KKwkJCQlDaGF0c3dvcnRoIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1CNiAgIChoZXgpCQlOaXItT3IgSXNyYWVsIEx0ZC4KKzAwMDZCNiAgICAgKGJhc2UgMTYpCQlOaXItT3IgSXNyYWVsIEx0ZC4KKwkJCQkxMSBBbWFsIFN0LgorCQkJCVJvc2ggSGEnYXlpbiA0ODA5MgorCQkJCUlTUkFFTAorCiswMC0wNi1CNyAgIChoZXgpCQlURUxFTSBHbWJICiswMDA2QjcgICAgIChiYXNlIDE2KQkJVEVMRU0gR21iSAorCQkJCUxpc2UtTWVpdG5lci1BbGxlZSAzMQorCQkJCUQgNDQ4MDEKKwkJCQlHRVJNQU5ZCisKKzAwLTA2LUI4ICAgKGhleCkJCUJhbmRzcGVlZCBQdHkgTHRkCiswMDA2QjggICAgIChiYXNlIDE2KQkJQmFuZHNwZWVkIFB0eSBMdGQKKwkJCQlMZXZlbCA5LCA1MDAwIENvbGxpbnMgU3RyZWV0CisJCQkJTWVsYm91cm5lIFZpYyAzMDAwCisJCQkJQVVTVFJBTElBCisKKzAwLTA2LUI5ICAgKGhleCkJCUE1VEVLIENvcnAuCiswMDA2QjkgICAgIChiYXNlIDE2KQkJQTVURUsgQ29ycC4KKwkJCQkxMjMzIEFsZGVyd29vZCBBdmUuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1CQSAgIChoZXgpCQlXZXN0d2F2ZSBDb21tdW5pY2F0aW9ucworMDAwNkJBICAgICAoYmFzZSAxNikJCVdlc3R3YXZlIENvbW11bmljYXRpb25zCisJCQkJNDYzIEF2aWF0aW9uIEJsdmQuCisJCQkJU2FudGEgUm9zYSBDQSA5NTQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQkIgICAoaGV4KQkJQVRJIFRlY2hub2xvZ2llcyBJbmMuCiswMDA2QkIgICAgIChiYXNlIDE2KQkJQVRJIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNzUgVGl2ZXJ0b24gQ291cnQKKwkJCQlVbmlvbnZpbGxlLCBPTiBMM1IgOTUzCisJCQkJQ0FOQURBCisKKzAwLTA2LUJDICAgKGhleCkJCU1hY3JvbGluaywgSW5jLgorMDAwNkJDICAgICAoYmFzZSAxNikJCU1hY3JvbGluaywgSW5jLgorCQkJCTE1MDAgTiBLZWxsb2dnIERyLgorCQkJCUFuYWhlaW0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUJEICAgKGhleCkJCUJOVEVDSE5PTE9HWSBDby4sIEx0ZC4KKzAwMDZCRCAgICAgKGJhc2UgMTYpCQlCTlRFQ0hOT0xPR1kgQ28uLCBMdGQuCisJCQkJNjAyIFlvdW5nc2hpbiBCbGRnLiAyMzgtOAorCQkJCVBvaS1Eb25nIEthbmduYW0tR3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LUJFICAgKGhleCkJCUJhdW1lciBPcHRyb25pYyBHbWJICiswMDA2QkUgICAgIChiYXNlIDE2KQkJQmF1bWVyIE9wdHJvbmljIEdtYkgKKwkJCQlCYWRzdHJhc3NlIDMwCisJCQkJRC0wMTQ1NCBSYWRlYmVyZworCQkJCUdFUk1BTlkKKworMDAtMDYtQkYgICAoaGV4KQkJQWNjZWxsYSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDA2QkYgICAgIChiYXNlIDE2KQkJQWNjZWxsYSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJUm0gNTEyIE5vLiA2ODAgR3VpIFBpbmcgUmQuCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTA2LUMwICAgKGhleCkJCVVuaXRlZCBJbnRlcm5ldHdvcmtzLCBJbmMuCiswMDA2QzAgICAgIChiYXNlIDE2KQkJVW5pdGVkIEludGVybmV0d29ya3MsIEluYy4KKwkJCQk1MDcyIE5vcnRoIDMwMCBXZXN0LCBTdWl0ZSAyTgorCQkJCVByb3ZvIFVUIDg0NjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1DMSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDA2QzEgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1DMiAgIChoZXgpCQlTbWFydG1hdGljIENvcnBvcmF0aW9uCiswMDA2QzIgICAgIChiYXNlIDE2KQkJU21hcnRtYXRpYyBDb3Jwb3JhdGlvbgorCQkJCTY0MDAgQ29uZ3Jlc3MgQXZlLiwgU3VpdGUgMTMwMAorCQkJCUJvY2EgUmF0b24gRkwgMzM0ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUMzICAgKGhleCkJCVNjaGluZGxlciBFbGV2YXRvciBMdGQuCiswMDA2QzMgICAgIChiYXNlIDE2KQkJU2NoaW5kbGVyIEVsZXZhdG9yIEx0ZC4KKwkJCQlEZXB0LiBSJkQtQ08KKwkJCQlWaWEgZGVsbGEgUGFjZSAyMgorCQkJCUxvY2Fybm8gQ0gtNjYwMAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA2LUM0ICAgKGhleCkJCVBpb2xpbmsgSW5jLgorMDAwNkM0ICAgICAoYmFzZSAxNikJCVBpb2xpbmsgSW5jLgorCQkJCUlUIENhc3RsZSAxLTQwMSwgNTUwLTEgR2FzYW4tZG9uZywKKwkJCQkxNjU2LTIgU2VvY2hvLUd1LCBTZW91bAorCQkJCVNlb3VsIEdldW1jaG9uLUd1IDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtQzUgICAoaGV4KQkJSU5OT1ZJIFRlY2hub2xvZ2llcyBMaW1pdGVkCiswMDA2QzUgICAgIChiYXNlIDE2KQkJSU5OT1ZJIFRlY2hub2xvZ2llcyBMaW1pdGVkCisJCQkJMzFzdCBGbG9vciwgQ2hpbmEgT25saW5lIENlbnRyZQorCQkJCTMzMyBMb2NraGFydCBSb2FkCisJCQkJV2FuY2hhaSAKKwkJCQlIT05HIEtPTkcKKworMDAtMDYtQzYgICAoaGV4KQkJbGVzc3dpcmUgQUcKKzAwMDZDNiAgICAgKGJhc2UgMTYpCQlsZXNzd2lyZSBBRworCQkJCUltIFRlY2hub2xvZ2llcGFyayAyNQorCQkJCUdFUk1BTlkKKworMDAtMDYtQzcgICAoaGV4KQkJUkZORVQgVGVjaG5vbG9naWVzIFB0ZSBMdGQgKFMpCiswMDA2QzcgICAgIChiYXNlIDE2KQkJUkZORVQgVGVjaG5vbG9naWVzIFB0ZSBMdGQgKFMpCisJCQkJVW5pdCAyMzMgSW5ub3ZhdGlvbiBDZW50cmUgQmxrIDIKKwkJCQkxOCBOYW55YW5nIERyaXZlCisJCQkJNjM3NzIyCisJCQkJU0lOR0FQT1JFCisKKzAwLTA2LUM4ICAgKGhleCkJCVN1bWl0b21vIE1ldGFsIE1pY3JvIERldmljZXMsIEluYy4KKzAwMDZDOCAgICAgKGJhc2UgMTYpCQlTdW1pdG9tbyBNZXRhbCBNaWNybyBEZXZpY2VzLCBJbmMuCisJCQkJMSwgSGlnYXNoaW11a29qaW1hIEhpZ2FzaGluby1jaG8KKwkJCQlBbWFnYXNha2ksIEh5b2dvLCA2NjAtODY2MAorCQkJCUpBUEFOCisKKzAwLTA2LUM5ICAgKGhleCkJCVRlY2huaWNhbCBNYXJrZXRpbmcgUmVzZWFyY2gsIEluYy4KKzAwMDZDOSAgICAgKGJhc2UgMTYpCQlUZWNobmljYWwgTWFya2V0aW5nIFJlc2VhcmNoLCBJbmMuCisJCQkJU2hpbiBOaWhvbiBHaWp1dHN1IEJsZGcuCisJCQkJMS0xLTMyLCBTaGliYWRhaW1vbiwgTWluYXRvLWt1CisJCQkJVG9reW8gMTA1LTAwMTIgIDEwNS0wMDEyCisJCQkJSkFQQU4KKworMDAtMDYtQ0EgICAoaGV4KQkJQW1lcmljYW4gQ29tcHV0ZXIgJiBEaWdpdGFsIENvbXBvbmVudHMsIEluYy4gKEFDREMpCiswMDA2Q0EgICAgIChiYXNlIDE2KQkJQW1lcmljYW4gQ29tcHV0ZXIgJiBEaWdpdGFsIENvbXBvbmVudHMsIEluYy4gKEFDREMpCisJCQkJNDQwIENsb3ZlcmxlYWYgRHJpdmUKKwkJCQlCYWxkd2luIFBhcmsgQ0EgOTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUNCICAgKGhleCkJCUpvdHJvbiBFbGVjdHJvbmljcyBBL1MKKzAwMDZDQiAgICAgKGJhc2UgMTYpCQlKb3Ryb24gRWxlY3Ryb25pY3MgQS9TCisJCQkJUG9iIDU0CisJCQkJTjMyODAgVGpvZGFseW5nCisJCQkJTk9SV0FZCisKKzAwLTA2LUNDICAgKGhleCkJCUpNSSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMDZDQyAgICAgKGJhc2UgMTYpCQlKTUkgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJTmFueWFuZyBCL0QgM0YsIDI1LTQKKwkJCQlZb25tdW4tZG9uZywgWW9uZ3Nhbi1ndQorCQkJCVNlb3VsICAxNDAtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LUNEICAgKGhleCkJCUxlYWYgSW1hZ2luZyBMdGQuCiswMDA2Q0QgICAgIChiYXNlIDE2KQkJTGVhZiBJbWFnaW5nIEx0ZC4KKwkJCQk3dGggSGF0bnVmYSBzdAorCQkJCVBldGFjaC1UaWt2YSAgNDkwMDIKKwkJCQlJU1JBRUwKKworMDAtMDYtQ0UgICAoaGV4KQkJREFURU5PCiswMDA2Q0UgICAgIChiYXNlIDE2KQkJREFURU5PCisJCQkJUnVlIEFtaXJhbCBCZXJlbmdlcgorCQkJCVphYyBFcyBQYXNzYW50cyBJSSBCUCA5MDE0NSwgMzU4MDEgRGluYXIKKwkJCQlGUkFOQ0UKKworMDAtMDYtQ0YgICAoaGV4KQkJVGhhbGVzIEF2aW9uaWNzIEluLUZsaWdodCBTeXN0ZW1zLCBMTEMKKzAwMDZDRiAgICAgKGJhc2UgMTYpCQlUaGFsZXMgQXZpb25pY3MgSW4tRmxpZ2h0IFN5c3RlbXMsIExMQworCQkJCTE3NDgxIFJlZCBIaWxsIEF2ZW51ZQorCQkJCUlydmluZSBDQSA5MjYxNC01NjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1EMCAgIChoZXgpCQlFbGdhciBFbGVjdHJvbmljcyBDb3JwLgorMDAwNkQwICAgICAoYmFzZSAxNikJCUVsZ2FyIEVsZWN0cm9uaWNzIENvcnAuCisJCQkJOTI1MCBCcm93biBEZWVyIFJkLgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRDEgICAoaGV4KQkJVGFob2UgTmV0d29ya3MsIEluYy4KKzAwMDZEMSAgICAgKGJhc2UgMTYpCQlUYWhvZSBOZXR3b3JrcywgSW5jLgorCQkJCTMwNTIgT3JjaGFyZCBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1EMiAgIChoZXgpCQlUdW5kcmEgU2VtaWNvbmR1Y3RvciBDb3JwLgorMDAwNkQyICAgICAoYmFzZSAxNikJCVR1bmRyYSBTZW1pY29uZHVjdG9yIENvcnAuCisJCQkJNjAzIE1hcmNoIFJvYWQKKwkJCQlLYW5hdGEsIE9udC4KKwkJCQlLMkstMk01CisJCQkJQ0FOQURBCisKKzAwLTA2LUQzICAgKGhleCkJCUFscGhhIFRlbGVjb20sIEluYy4gVS5TLkEuCiswMDA2RDMgICAgIChiYXNlIDE2KQkJQWxwaGEgVGVsZWNvbSwgSW5jLiBVLlMuQS4KKwkJCQkxMzk0IEJvcnJlZ29yIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUQ0ICAgKGhleCkJCUludGVyYWN0aXZlIE9iamVjdHMsIEluYy4KKzAwMDZENCAgICAgKGJhc2UgMTYpCQlJbnRlcmFjdGl2ZSBPYmplY3RzLCBJbmMuCisJCQkJMTI2MDAgU0UgMzh0aCBTdC4KKwkJCQlTdWl0ZSAxNTAKKwkJCQlCZWxsZXZ1ZSBXQSA5ODAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRDUgICAoaGV4KQkJRGlhbW9uZCBTeXN0ZW1zIENvcnAuCiswMDA2RDUgICAgIChiYXNlIDE2KQkJRGlhbW9uZCBTeXN0ZW1zIENvcnAuCisJCQkJODQzMC1EIENlbnRyYWwgQXZlLgorCQkJCU5ld2FyayBDQSA5NDU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRDYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNkQ2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUQ3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDZENyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1EOCAgIChoZXgpCQlNYXBsZSBPcHRpY2FsIFN5c3RlbXMKKzAwMDZEOCAgICAgKGJhc2UgMTYpCQlNYXBsZSBPcHRpY2FsIFN5c3RlbXMKKwkJCQkzMjAwIE5vcnRoIEZpcnN0IFN0LgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1EOSAgIChoZXgpCQlJUE0tTmV0IFMucC5BLgorMDAwNkQ5ICAgICAoYmFzZSAxNikJCUlQTS1OZXQgUy5wLkEuCisJCQkJVmlhIFJlbW8gRGUgRmVvCisJCQkJODAwMjIgQXJ6YW5vIChOYXBsZXMpCisJCQkJSVRBTFkKKworMDAtMDYtREEgICAoaGV4KQkJSVRSQU4gQ29tbXVuaWNhdGlvbnMgTHRkLgorMDAwNkRBICAgICAoYmFzZSAxNikJCUlUUkFOIENvbW11bmljYXRpb25zIEx0ZC4KKwkJCQkxIEF6cmllbGkgQ2VudGVyLAorCQkJCVRoZSByb3VuZCBidWlsZGluZworCQkJCVRlbCBBdml2IDY3MDIxICAgNjcwMjEKKwkJCQlJU1JBRUwKKworMDAtMDYtREIgICAoaGV4KQkJSUNISVBTIENvLiwgTHRkLgorMDAwNkRCICAgICAoYmFzZSAxNikJCUlDSElQUyBDby4sIEx0ZC4KKwkJCQkzRiwgU2FtamVvbiBCbGRnLiwgMjM2LTMKKwkJCQlOb25oeXVuLURvbmcsIEthbmduYW0ta3UKKwkJCQlTZW91bC1DaXR5ICAxMzUtMDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtREMgICAoaGV4KQkJU3lhYmFzIFRlY2hub2xvZ3kgKEFtcXVlc3QpCiswMDA2REMgICAgIChiYXNlIDE2KQkJU3lhYmFzIFRlY2hub2xvZ3kgKEFtcXVlc3QpCisJCQkJNDcyNyBQYXNlbyBQYWRyZSBQYXJrd2F5CisJCQkJRnJlbW9udCBDQSA5NDU1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtREQgICAoaGV4KQkJQVQgJiBUIExhYm9yYXRvcmllcyAtIENhbWJyaWRnZSBMdGQKKzAwMDZERCAgICAgKGJhc2UgMTYpCQlBVCAmIFQgTGFib3JhdG9yaWVzIC0gQ2FtYnJpZGdlIEx0ZAorCQkJCTI0YSBUcnVtcGluZ3RvbiBTdHJlZXQKKwkJCQlDYW1icmlkZ2UsIENCMiAxUUEKKwkJCQlFTkdMQU5EIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA2LURFICAgKGhleCkJCUZsYXNoIFRlY2hub2xvZ3kKKzAwMDZERSAgICAgKGJhc2UgMTYpCQlGbGFzaCBUZWNobm9sb2d5CisJCQkJUC5PLiBCb3ggNjgxNTA5CisJCQkJRnJhbmtsaW4gVE4gMzcwNjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LURGICAgKGhleCkJCUFJRE9OSUMgQ29ycG9yYXRpb24KKzAwMDZERiAgICAgKGJhc2UgMTYpCQlBSURPTklDIENvcnBvcmF0aW9uCisJCQkJMi03LTEwIE90c3VrYSwgQnVua3lvLWt1LAorCQkJCVRva3lvLCAxMTItMDAxMgorCQkJCUpBUEFOCisKKzAwLTA2LUUwICAgKGhleCkJCU1BVCBDby4sIEx0ZC4KKzAwMDZFMCAgICAgKGJhc2UgMTYpCQlNQVQgQ28uLCBMdGQuCisJCQkJODY0LTMgS3dhbnlhbmctZG9uZworCQkJCURvbmdhbi1ndSwgQW55YW5nLXNpCisJCQkJS3l1bmdnaS1kbyAgNDMxLTA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi1FMSAgIChoZXgpCQlUZWNobm8gVHJhZGUgcy5hCiswMDA2RTEgICAgIChiYXNlIDE2KQkJVGVjaG5vIFRyYWRlIHMuYQorCQkJCTczMmEgQ2hhdXNzZWUgZGUgQnJ1eGVsbGVzCisJCQkJQi0xNDEwIFdhdGVybG9vCisJCQkJQkVMR0lVTQorCiswMC0wNi1FMiAgIChoZXgpCQlDZWVtYXggVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDZFMiAgICAgKGJhc2UgMTYpCQlDZWVtYXggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk1Zi03LCA3MzYsIENodW5nIENoZW5nIFJkLiwKKwkJCQlDaHVuZyBIbyBUYWlwZWkgSHNpZW4sCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi1FMyAgIChoZXgpCQlRdWFudGl0YXRpdmUgSW1hZ2luZyBDb3Jwb3JhdGlvbgorMDAwNkUzICAgICAoYmFzZSAxNikJCVF1YW50aXRhdGl2ZSBJbWFnaW5nIENvcnBvcmF0aW9uCisJCQkJODA4MSBMb3VnaGVlZCBIaWdod2F5CisJCQkJQnVybmFieSwgQkMKKwkJCQlDQU5BREEKKworMDAtMDYtRTQgICAoaGV4KQkJQ2l0ZWwgVGVjaG5vbG9naWVzIEx0ZC4KKzAwMDZFNCAgICAgKGJhc2UgMTYpCQlDaXRlbCBUZWNobm9sb2dpZXMgTHRkLgorCQkJCVdoZWF0Y3JvZnQgQnVzaW5lc3MgUGFyaworCQkJCUxhbmRtZXJlIExhbmUsIEVkd2FsdG9uCisJCQkJTm90dGlnaGFtICBORzEyIDRERworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA2LUU1ICAgKGhleCkJCUZ1amlhbiBOZXdsYW5kIENvbXB1dGVyIEx0ZC4gQ28uCiswMDA2RTUgICAgIChiYXNlIDE2KQkJRnVqaWFuIE5ld2xhbmQgQ29tcHV0ZXIgTHRkLiBDby4KKwkJCQkxNDFGIFN1bnNoaW5lIEhvbGlkYXkgSG90ZWwKKwkJCQlOby4gMjYgR2FvIFFpYW8gUmQuLCBXdVlpIFNxdWFyZQorCQkJCUZ1emhvdSBGdWppYW4gIDM1MDAwNQorCQkJCUNISU5BCisKKzAwLTA2LUU2ICAgKGhleCkJCURvbmdZYW5nIFRlbGVjb20gQ28uLCBMdGQuCiswMDA2RTYgICAgIChiYXNlIDE2KQkJRG9uZ1lhbmcgVGVsZWNvbSBDby4sIEx0ZC4KKwkJCQk2NDItNyBEZXVuZyBDaG9uLURvbmcsIEthbmdTZW8tR3UKKwkJCQlTZW91bCAxNTctODQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LUU3ICAgKGhleCkJCUJpdCBCbGl0eiBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDA2RTcgICAgIChiYXNlIDE2KQkJQml0IEJsaXR6IENvbW11bmljYXRpb25zIEluYy4KKwkJCQk4MzAgSGlsbHZpZXcgQ3QuLCAjMjkwCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUU4ICAgKGhleCkJCU9wdGljYWwgTmV0d29yayBUZXN0aW5nLCBJbmMuCiswMDA2RTggICAgIChiYXNlIDE2KQkJT3B0aWNhbCBOZXR3b3JrIFRlc3RpbmcsIEluYy4KKwkJCQk1NSBNZXJjaGFudCBTdC4KKwkJCQkyOHRoIEZsb29yCisJCQkJSG9ub2x1bHUgSEkgOTY4MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUU5ICAgKGhleCkJCUludGltZSBDb3JwLgorMDAwNkU5ICAgICAoYmFzZSAxNikJCUludGltZSBDb3JwLgorCQkJCTMyNC00LCBZYW5namFlLWRvbmcsIDJGCisJCQkJU2VvY2hvLWt1LCBTZW91bCwgMTM3LTEzMCwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtRUEgICAoaGV4KQkJRUxaRVQ4MCBNaWtyb2NvbXB1dGVyIEdtYkgmQ28uIEtHCiswMDA2RUEgICAgIChiYXNlIDE2KQkJRUxaRVQ4MCBNaWtyb2NvbXB1dGVyIEdtYkgmQ28uIEtHCisJCQkJVGhlYXRlcnBsYXR6IDkKKwkJCQlELTUyMDYyIEFhY2hlbgorCQkJCUdFUk1BTlkKKworMDAtMDYtRUIgICAoaGV4KQkJR2xvYmFsIERhdGEKKzAwMDZFQiAgICAgKGJhc2UgMTYpCQlHbG9iYWwgRGF0YQorCQkJCTIyNTAgT2Jpc3BvIEF2ZSAjMTA1CisJCQkJU2lnbmFsIEhpbGwgQ0EgOTA4MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUVDICAgKGhleCkJCUhhcnJpcyBDb3Jwb3JhdGlvbgorMDAwNkVDICAgICAoYmFzZSAxNikJCUhhcnJpcyBDb3Jwb3JhdGlvbgorCQkJCTEwMjUgV2VzdCBOQVNBIEJsdmQKKwkJCQlNUyBELTIxQgorCQkJCU1lbGJvdXJuZSBGTCAzMjkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRUQgICAoaGV4KQkJSW5hcmEgTmV0d29ya3MKKzAwMDZFRCAgICAgKGJhc2UgMTYpCQlJbmFyYSBOZXR3b3JrcworCQkJCTMwMzEgVGlzY2ggV2F5LAorCQkJCVN1aXRlIDEwMAorCQkJCVNhbiBKb3NlIENBIDk1MTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1FRSAgIChoZXgpCQlTaGVueWFuZyBOZXUtZXJhIEluZm9ybWF0aW9uICYgVGVjaG5vbG9neSBTdG9jayBDby4sIEx0ZAorMDAwNkVFICAgICAoYmFzZSAxNikJCVNoZW55YW5nIE5ldS1lcmEgSW5mb3JtYXRpb24gJiBUZWNobm9sb2d5IFN0b2NrIENvLiwgTHRkCisJCQkJOC9GLCB0aGUgMjFzdCBDZW50dXJ5IEJ1aWxkaW5nLAorCQkJCU5vLiAxIFNoaWppIFJvYWQsIEh1bm5hbiBJbmR1c3RyaWFsIERpc3QKKwkJCQlEdmxwbW50IFpvbmUgU2hlbnlhbmcsIAorCQkJCUNISU5BCisKKzAwLTA2LUVGICAgKGhleCkJCU1heHhhbiBTeXN0ZW1zLCBJbmMuCiswMDA2RUYgICAgIChiYXNlIDE2KQkJTWF4eGFuIFN5c3RlbXMsIEluYy4KKwkJCQkxMDcgQm9uYXZlbnR1cmEgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRjAgICAoaGV4KQkJRGlnZW8sIEluYy4KKzAwMDZGMCAgICAgKGJhc2UgMTYpCQlEaWdlbywgSW5jLgorCQkJCTg4MTUgMTIybmQgQXZlLiwgTkUKKwkJCQlLaXJrbGFuZCBXQSA5ODAzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRjEgICAoaGV4KQkJT3B0aWxsaW9uCiswMDA2RjEgICAgIChiYXNlIDE2KQkJT3B0aWxsaW9uCisJCQkJS3JvbmJvcmdzZ3IuOQorCQkJCVNFLTE2NDg3IEtpc3RhCisJCQkJU1dFREVOCisKKzAwLTA2LUYyICAgKGhleCkJCVBsYXR5cyBDb21tdW5pY2F0aW9ucworMDAwNkYyICAgICAoYmFzZSAxNikJCVBsYXR5cyBDb21tdW5pY2F0aW9ucworCQkJCTMxNTBBIENvcm9uYWRvIERyLgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1GMyAgIChoZXgpCQlBY2NlTGlnaHQgTmV0d29ya3MKKzAwMDZGMyAgICAgKGJhc2UgMTYpCQlBY2NlTGlnaHQgTmV0d29ya3MKKwkJCQk3MCBBYmVsZSBSb2FkLCBCdWlsZGluZyAxMjAwCisJCQkJUGl0dHNidXJnaCBQQSAxNTAxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRjQgICAoaGV4KQkJUHJpbWUgRWxlY3Ryb25pY3MgJiBTYXRlbGxpdGljcyBJbmMuCiswMDA2RjQgICAgIChiYXNlIDE2KQkJUHJpbWUgRWxlY3Ryb25pY3MgJiBTYXRlbGxpdGljcyBJbmMuCisJCQkJNjksIFR1bmctWXVhbiBSZC4sCisJCQkJQ2h1bmctTGkgQ2l0eSwgVGFveXVhbgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtRjUgICAoaGV4KQkJQUxQUyBDbywuIEx0ZC4KKzAwMDZGNSAgICAgKGJhc2UgMTYpCQlBTFBTIENvLC4gTHRkLgorCQkJCTYtMy0zNiBGdXJ1a2F3YW5ha2F6YXRvLAorCQkJCU9zYWtpIE1peWFnaS1wcmVmIDk4OS02MTgxCisJCQkJSkFQQU4KKworMDAtMDYtRjYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwNkY2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRjcgICAoaGV4KQkJQUxQUyBFbGVjdHJpYyBDbywuIEx0ZC4KKzAwMDZGNyAgICAgKGJhc2UgMTYpCQlBTFBTIEVsZWN0cmljIENvLC4gTHRkLgorCQkJCTYtMy0zNiBGdXJ1a2F3YW5ha2F6YXRvLAorCQkJCU9zYWtpIE1peWFnaS1wcmVmIDk4OS02MTgxCisJCQkJSkFQQU4KKworMDAtMDYtRjggICAoaGV4KQkJQ1BVIFRlY2hub2xvZ3ksIEluYy4KKzAwMDZGOCAgICAgKGJhc2UgMTYpCQlDUFUgVGVjaG5vbG9neSwgSW5jLgorCQkJCTU3MzEgVy4gTGFzIFBvc2l0YXMgQmx2ZC4KKwkJCQlQbGVhc2FudG9uIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1GOSAgIChoZXgpCQlNaXRzdWkgWm9zZW4gU3lzdGVtcyBSZXNlYXJjaCBJbmMuCiswMDA2RjkgICAgIChiYXNlIDE2KQkJTWl0c3VpIFpvc2VuIFN5c3RlbXMgUmVzZWFyY2ggSW5jLgorCQkJCTExLTEsIFVubyAxLWNob21lCisJCQkJVGFtYW5vLXNoaSwgT2theWFtYQorCQkJCTcwNi0wMDExCisJCQkJSkFQQU4KKworMDAtMDYtRkEgICAoaGV4KQkJSVAgU1FVQVJFIENvLCBMdGQuCiswMDA2RkEgICAgIChiYXNlIDE2KQkJSVAgU1FVQVJFIENvLCBMdGQuCisJCQkJMS05LTExLCBIYWthdGFla2loaWdhc2hpLAorCQkJCUhha2F0YS1rdSwgRnVrdW9rYS1zaGksCisJCQkJRnVrdW9rYSAgODEyLTAwMTMKKwkJCQlKQVBBTgorCiswMC0wNi1GQiAgIChoZXgpCQlIaXRhY2hpIFByaW50aW5nIFNvbHV0aW9ucywgTHRkLgorMDAwNkZCICAgICAoYmFzZSAxNikJCUhpdGFjaGkgUHJpbnRpbmcgU29sdXRpb25zLCBMdGQuCisJCQkJMTA2MCwgVGFrZWRhIEhpdGFjaGluYWthLUNpdHkKKwkJCQlJYmFyYWtpLVByZWYuCisJCQkJMzEyLTg1MDIKKwkJCQlKQVBBTgorCiswMC0wNi1GQyAgIChoZXgpCQlGbmV0IENvLiwgTHRkLgorMDAwNkZDICAgICAoYmFzZSAxNikJCUZuZXQgQ28uLCBMdGQuCisJCQkJS0ZTQiBCbGRnLiAxMHRoIEYuIDE2LTIKKwkJCQlZb2lkby1Eb25nLCBZb3VuZ2RldW5ncG8ta3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi1GRCAgIChoZXgpCQlDb21qZXQgSW5mb3JtYXRpb24gU3lzdGVtcyBDb3JwLgorMDAwNkZEICAgICAoYmFzZSAxNikJCUNvbWpldCBJbmZvcm1hdGlvbiBTeXN0ZW1zIENvcnAuCisJCQkJN0ZsLiwgTm8uIDEwMywgRmVuIExpYW8gU3RyZWV0CisJCQkJTmVpLUh1LCBUYWlwZWkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA2LUZFICAgKGhleCkJCUFtYnJhZG8sIEluYworMDAwNkZFICAgICAoYmFzZSAxNikJCUFtYnJhZG8sIEluYworCQkJCTExMzAxIFcuIFByZXNpZGVudCBHZW9yZ2UgQnVzaCBGd3kuCisJCQkJU3VpdGUxNTAKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1GRiAgIChoZXgpCQlTaGViYSBTeXN0ZW1zIENvLiwgTHRkLgorMDAwNkZGICAgICAoYmFzZSAxNikJCVNoZWJhIFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJNXRoIEZsLiBIeXVuZGFpIEphZCBCL0QKKwkJCQk0NjAtMSBTZW9uZ25hZS1Eb25nLCBLYW5nZG9uZy1LdSwKKwkJCQlTZW91bCAgMTM0LTAzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0wMCAgIChoZXgpCQlaZXR0YW1lZGlhIEtvcmVhCiswMDA3MDAgICAgIChiYXNlIDE2KQkJWmV0dGFtZWRpYSBLb3JlYQorCQkJCVN1aXRlIDEwMDgsIEt1bWthbmcgVmVudHVyZXRlbCwgMTEwOAorCQkJCUJpc2FuZG9uZywgRG9uZ2FuZ3UsIEFueWFuZ3NpCisJCQkJS3lvdW5nZ2lkbywgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0wMSAgIChoZXgpCQlSQUNBTC1EQVRBQ09NCiswMDA3MDEgICAgIChiYXNlIDE2KQkJUkFDQUwtREFUQUNPTQorCQkJCUxBTiBJTlRFUk5FVFdPUktJTkcgRElWSVNJT04KKwkJCQkxNTUgU1dBTlNPTiBST0FECisJCQkJQk9YQk9ST1VHSCBNQSAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMDIgICAoaGV4KQkJVmFyaWFuIE1lZGljYWwgU3lzdGVtcworMDAwNzAyICAgICAoYmFzZSAxNikJCVZhcmlhbiBNZWRpY2FsIFN5c3RlbXMKKwkJCQkyNTk5IEdhcmNpYSBBdmVudWUKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy0wMyAgIChoZXgpCQlDU0VFIFRyYW5zcG9ydAorMDAwNzAzICAgICAoYmFzZSAxNikJCUNTRUUgVHJhbnNwb3J0CisJCQkJNCwgYXZlbnVlIGR1IENBTkFEQQorCQkJCUIuUC4gMjQzLTkxOTQ0IExlcyBVbGlzCisJCQkJRlJBTkNFCisKKzAwLTA3LTA0ICAgKGhleCkJCUFMUFMgRWxlY3RyaWMgQ28sLiBMdGQuCiswMDA3MDQgICAgIChiYXNlIDE2KQkJQUxQUyBFbGVjdHJpYyBDbywuIEx0ZC4KKwkJCQk2LTMtMzYgRnVydWthd2FuYWthemF0bywKKwkJCQlPc2FraSBNaXlhZ2ktcHJlZiA5ODktNjE4MQorCQkJCUpBUEFOCisKKzAwLTA3LTA1ICAgKGhleCkJCUVuZHJlc3MgJiBIYXVzZXIgR21iSCAmIENvCiswMDA3MDUgICAgIChiYXNlIDE2KQkJRW5kcmVzcyAmIEhhdXNlciBHbWJIICYgQ28KKwkJCQlIYXVwdHN0cmFiZSAxIC0gUG9zdGZhY2ggMTI2MQorCQkJCUQtNzk2ODkgTWF1bGJlcmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTA2ICAgKGhleCkJCVNhbnJpdHogQ29ycG9yYXRpb24KKzAwMDcwNiAgICAgKGJhc2UgMTYpCQlTYW5yaXR6IENvcnBvcmF0aW9uCisJCQkJMTk5LTEsIFNoaW1vb2lidWt1cm8sCisJCQkJS2F3YWdvZS1jaXR5LCBTYWl0YW1hCisJCQkJMzUwLTA4NDgKKwkJCQlKQVBBTgorCiswMC0wNy0wNyAgIChoZXgpCQlJbnRlcmFsaWEgSW5jLgorMDAwNzA3ICAgICAoYmFzZSAxNikJCUludGVyYWxpYSBJbmMuCisJCQkJNDExMC03OXRoIFN0cmVldCBOLlcuCisJCQkJQ2FsZ2FyeSwgQWxiZXJ0YQorCQkJCVQzQiA1QzIKKwkJCQlDQU5BREEKKworMDAtMDctMDggICAoaGV4KQkJQml0cmFnZSBJbmMuCiswMDA3MDggICAgIChiYXNlIDE2KQkJQml0cmFnZSBJbmMuCisJCQkJMTAwIFNvdXRocGFyayBCbHZkLgorCQkJCVN1aXRlIDQwMAorCQkJCVNhaW50IEF1Z3VzdGluZSBGTCAzMjA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMDkgICAoaGV4KQkJV2VzdGVyc3RyYW5kIFVyZmFicmlrIEFCCiswMDA3MDkgICAgIChiYXNlIDE2KQkJV2VzdGVyc3RyYW5kIFVyZmFicmlrIEFCCisJCQkJQm94IDEzMworCQkJCVNFLTU0NSAyMyBUb3JlYm9kYQorCQkJCVNXRURFTgorCiswMC0wNy0wQSAgIChoZXgpCQlVbmljb20gQXV0b21hdGlvbiBDby4sIEx0ZC4KKzAwMDcwQSAgICAgKGJhc2UgMTYpCQlVbmljb20gQXV0b21hdGlvbiBDby4sIEx0ZC4KKwkJCQlTaWxrIEJsZGcgMy0zMS0xMQorCQkJCUhvbmNobywgTmFrYW5vLWt1LAorCQkJCVRva3lvICAxNjQtMDAxMgorCQkJCUpBUEFOCisKKzAwLTA3LTBCICAgKGhleCkJCU5vdmFiYXNlIFNHUFMsIFNBCiswMDA3MEIgICAgIChiYXNlIDE2KQkJTm92YWJhc2UgU0dQUywgU0EKKwkJCQlBdi4gRCBKb2FvIElJLCBMb3RlIDEuMDMuMi4zCisJCQkJUGFycXVlIGRhcyBOYWNvZXMKKwkJCQlMaXNib2EgIDE5OTgtMDMxCisJCQkJUE9SVFVHQUwKKworMDAtMDctMEMgICAoaGV4KQkJU1ZBLUludHJ1c2lvbi5jb20gQ28uIEx0ZC4KKzAwMDcwQyAgICAgKGJhc2UgMTYpCQlTVkEtSW50cnVzaW9uLmNvbSBDby4gTHRkLgorCQkJCVRoZSA0dGggRmxvb3IsIE5vLiAyOCBCdWlsZGluZworCQkJCTE0MCBUaWFuIExpbiBSb2FkCisJCQkJU2hhbmdoYWkgIDIwMjMzCisJCQkJQ0hJTkEKKworMDAtMDctMEQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcyBJbmMuCiswMDA3MEQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcyBJbmMuCisJCQkJU0otTS8xCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy0wRSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKzAwMDcwRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKwkJCQlTSi1NLzEKKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTBGICAgKGhleCkJCUZ1amFudCwgSW5jLgorMDAwNzBGICAgICAoYmFzZSAxNikJCUZ1amFudCwgSW5jLgorCQkJCTYzMDUgQ2FycGludGVyaWEgQXZlbnVlCisJCQkJU3VpdGUgMzAwCisJCQkJQ2FycGludGVyaWEgQ0EgOTMwMTMtMjkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMTAgICAoaGV4KQkJQWRheCwgSW5jLgorMDAwNzEwICAgICAoYmFzZSAxNikJCUFkYXgsIEluYy4KKwkJCQk2MTQgQmFuY3JvZnQgV2F5CisJCQkJQmVya2VsZXkgQ0EgOTQ1NTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTExICAgKGhleCkJCUFjdGVybmEKKzAwMDcxMSAgICAgKGJhc2UgMTYpCQlBY3Rlcm5hCisJCQkJNjYyMCBOZXR3b3JrIFdheQorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMTIgICAoaGV4KQkJSkFMIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kKKzAwMDcxMiAgICAgKGJhc2UgMTYpCQlKQUwgSW5mb3JtYXRpb24gVGVjaG5vbG9neQorCQkJCU5ldHdvcmsgU29sdXRpb24gRGVwLiBKQUwtVGFtYWNoaSBCbGRnLgorCQkJCTE1LTEsIFNoaWJ1cmEsIDQtY2hvbWUsIE1pbmF0by1rdSwKKwkJCQlUb2t5byAgCisJCQkJSkFQQU4KKworMDAtMDctMTMgICAoaGV4KQkJSVAgT25lLCBJbmMuCiswMDA3MTMgICAgIChiYXNlIDE2KQkJSVAgT25lLCBJbmMuCisJCQkJU2FtbWkgQmxkZy4sIDEwMDQKKwkJCQlEYWVjaGktZG9uZyBHYW5nbmFtLWd1LAorCQkJCVNlb3VsLCAgMTM1LTA4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0xNCAgIChoZXgpCQlCcmlnaHRjb20KKzAwMDcxNCAgICAgKGJhc2UgMTYpCQlCcmlnaHRjb20KKwkJCQk2IEhhbmVjaG9zaGV0IFN0LiwKKwkJCQlUZWwgQXZpdiA2OTcxMAorCQkJCUlTUkFFTAorCiswMC0wNy0xNSAgIChoZXgpCQlHZW5lcmFsIFJlc2VhcmNoIG9mIEVsZWN0cm9uaWNzLCBJbmMuCiswMDA3MTUgICAgIChiYXNlIDE2KQkJR2VuZXJhbCBSZXNlYXJjaCBvZiBFbGVjdHJvbmljcywgSW5jLgorCQkJCTMtMTItMTcsIE1pdGEsIE1pbmF0by1rdQorCQkJCVRva3lvICAxMDgtMDA3MworCQkJCUpBUEFOCisKKzAwLTA3LTE2ICAgKGhleCkJCUogJiBTIE1hcmluZSBMdGQuCiswMDA3MTYgICAgIChiYXNlIDE2KQkJSiAmIFMgTWFyaW5lIEx0ZC4KKwkJCQlQb3R0aW5ndG9uIEJ1c2luZXNzIFBhcmsKKwkJCQlCYXJuc3RhcGxlCisJCQkJRGV2b24gIEVYMzEgMUxZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDctMTcgICAoaGV4KQkJV2llbGFuZCBFbGVjdHJpYyBHbWJICiswMDA3MTcgICAgIChiYXNlIDE2KQkJV2llbGFuZCBFbGVjdHJpYyBHbWJICisJCQkJQnJlbm5lcnN0ci4gMTAtMTQKKwkJCQlELTk2MDUyIEJhbWJlcmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTE4ICAgKGhleCkJCWlDYW5UZWsgQ28uLCBMdGQuCiswMDA3MTggICAgIChiYXNlIDE2KQkJaUNhblRlayBDby4sIEx0ZC4KKwkJCQkybmQgRmwuIERLIFBsYXphIElJLCAzNzYtNSwKKwkJCQlLZXVtZ29rLWRvbmcsIEJ1bWRhZy1rdSwKKwkJCQlTdW5nbWFuLXNpLCBLeW9uZ2dpLWRvICA0NjMtODA1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTE5ICAgKGhleCkJCU1vYmlpcyBDby4sIEx0ZC4KKzAwMDcxOSAgICAgKGJhc2UgMTYpCQlNb2JpaXMgQ28uLCBMdGQuCisJCQkJMjc3LTEsIFNoaW5od2EgQmxkZy4gNEYKKwkJCQlZYW5namFlLWRvbmcsIFNlb2Noby1ndSwKKwkJCQlTZW91bCwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0xQSAgIChoZXgpCQlGaW5lZGlnaXRhbCBJbmMuCiswMDA3MUEgICAgIChiYXNlIDE2KQkJRmluZWRpZ2l0YWwgSW5jLgorCQkJCTR0aCBGbC4gQm9taSBCbGRnLiwgNjYxIERldW5nY2hvbiAzIERvbmcKKwkJCQlLYW5nc2VvIGt1LAorCQkJCVNlb3VsICAxNTctMDMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTFCICAgKGhleCkJCUNEViBBbWVyaWNhcyBMdGQKKzAwMDcxQiAgICAgKGJhc2UgMTYpCQlDRFYgQW1lcmljYXMgTHRkCisJCQkJMTY0NS1BIEF1dG9yb3V0ZSBMYXZhbCBXZXN0CisJCQkJTGF2YWwgUXVlYmVjIEg3TCAzVzMKKwkJCQlDQU5BREEKKworMDAtMDctMUMgICAoaGV4KQkJQVQmVCBGaXhlZCBXaXJlbGVzcyBTZXJ2aWNlcworMDAwNzFDICAgICAoYmFzZSAxNikJCUFUJlQgRml4ZWQgV2lyZWxlc3MgU2VydmljZXMKKwkJCQlQLk8uIEJveCA5MDc1OQorCQkJCVJlZG1vbmQgV0EgOTgwNzMtOTc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMUQgICAoaGV4KQkJU2F0ZWxzYSBTaXN0ZW1hcyBZIEFwbGljYWNpb25lcyBEZSBUZWxlY29tdW5pY2FjaW9uZXMsIFMuQS4KKzAwMDcxRCAgICAgKGJhc2UgMTYpCQlTYXRlbHNhIFNpc3RlbWFzIFkgQXBsaWNhY2lvbmVzIERlIFRlbGVjb211bmljYWNpb25lcywgUy5BLgorCQkJCWMvLCBBbGVqYW5kcm8gTW9yYW4sIDU2CisJCQkJMjgwMjUtTWFkcmlkCisJCQkJU1BBSU4KKworMDAtMDctMUUgICAoaGV4KQkJVHJpLU0gRW5naW5lZXJpbmcgLyBOdXBhayBEZXYuIENvcnAuCiswMDA3MUUgICAgIChiYXNlIDE2KQkJVHJpLU0gRW5naW5lZXJpbmcgLyBOdXBhayBEZXYuIENvcnAuCisJCQkJNi0xMzAxIEtldGNoIENvdXJ0CisJCQkJQ29xdWl0Y2F1dCBCQworCQkJCVYzSyA2WDcKKwkJCQlDQU5BREEKKworMDAtMDctMUYgICAoaGV4KQkJRXVyb3BlYW4gU3lzdGVtcyBJbnRlZ3JhdGlvbgorMDAwNzFGICAgICAoYmFzZSAxNikJCUV1cm9wZWFuIFN5c3RlbXMgSW50ZWdyYXRpb24KKwkJCQk0NTUgUHJvbWVuYWRlIERlcyBBbmdsYXMKKwkJCQlGLTA2MjAwIE5pY2UKKwkJCQlGUkFOQ0UKKworMDAtMDctMjAgICAoaGV4KQkJVHJ1dHpzY2hsZXIgR21iSCAmIENvLiBLRworMDAwNzIwICAgICAoYmFzZSAxNikJCVRydXR6c2NobGVyIEdtYkggJiBDby4gS0cKKwkJCQlEdXZlbnN0ci4gODItOTIKKwkJCQk0MTE5OSBNb25jaGVuZ2xhZGJhY2gKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTIxICAgKGhleCkJCUZvcm1hYyBFbGVrdHJvbmlrIEdtYkgKKzAwMDcyMSAgICAgKGJhc2UgMTYpCQlGb3JtYWMgRWxla3Ryb25payBHbWJICisJCQkJRG9mc3RyLiAzMworCQkJCTE1ODI3IEJsYW5rZW50ZWxkZQorCQkJCUdFUk1BTlkKKworMDAtMDctMjIgICAoaGV4KQkJVGhlIE5pZWxzZW4gQ29tcGFueQorMDAwNzIyICAgICAoYmFzZSAxNikJCVRoZSBOaWVsc2VuIENvbXBhbnkKKwkJCQk1MDEgQnJvb2tlciBDcmVlayBCbHZkLgorCQkJCU9sZHNtYXIgRkwgMzQ2NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTIzICAgKGhleCkJCUVMQ09OIFN5c3RlbXRlY2huaWsgR21iSAorMDAwNzIzICAgICAoYmFzZSAxNikJCUVMQ09OIFN5c3RlbXRlY2huaWsgR21iSAorCQkJCU9iZXJlIEhhdXB0c3RyYXNzZSAxMAorCQkJCUQtMDkyMzIgSGFydG1hbm5zZG9yZgorCQkJCUdFUk1BTlkKKworMDAtMDctMjQgICAoaGV4KQkJVGVsZW1heCBDby4sIEx0ZC4KKzAwMDcyNCAgICAgKGJhc2UgMTYpCQlUZWxlbWF4IENvLiwgTHRkLgorCQkJCTZ0aCBGbC4gU3VuZ3dvbyBCL0QsIDEwOTktMQorCQkJCVNhbmJvbi1Eb25nLCBLdW5wby1zaGkKKwkJCQlLeXVuZ2tpLURvLCAgNDM1LTA0MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0yNSAgIChoZXgpCQlCZW1hdGVjaCBJbnRlcm5hdGlvbmFsIENvcnAuCiswMDA3MjUgICAgIChiYXNlIDE2KQkJQmVtYXRlY2ggSW50ZXJuYXRpb25hbCBDb3JwLgorCQkJCTU4OTUgU2hpbG9oIFJvYWQKKwkJCQlTdWl0ZSAxMTEKKwkJCQlBbHBoYXJldHRhIEdBIDMwMDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy0yNiAgIChoZXgpCQlTaGVuemhlbiBHb25namluIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwNzI2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEdvbmdqaW4gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJQTIxMS1BMjEzICYgQjIwMS1CMjEwLCAyRiwgQmFpeWluZyBCdWlsZGluZywgMTAxOSMsIE5hbmhhaSBSRCwgU2hla291IFBhcnR5LCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDY3CisJCQkJQ0hJTkEKKworMDAtMDctMjcgICAoaGV4KQkJWmkgQ29ycG9yYXRpb24gKEhLKSBMdGQuCiswMDA3MjcgICAgIChiYXNlIDE2KQkJWmkgQ29ycG9yYXRpb24gKEhLKSBMdGQuCisJCQkJMzAvRiwgQ2hpbmEgUmVzb3VyY2VzIEJ1aWxkaW5nCisJCQkJMjYgSGFyYm91ciBSb2FkLCBXYWljaGFpLAorCQkJCUhPTkcgS09ORworCiswMC0wNy0yOCAgIChoZXgpCQlOZW8gVGVsZWNvbQorMDAwNzI4ICAgICAoYmFzZSAxNikJCU5lbyBUZWxlY29tCisJCQkJRWFzdCBCdWlsZGluZyA5RiwgMVQKKwkJCQlWZW50dXJlIFRvd2VyLCA3OCBHYXJhZy1kb25nCisJCQkJU29uZ3BhLWd1LCBTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTI5ICAgKGhleCkJCUtpc3RsZXIgSW5zdHJ1bWVudGUgQUcKKzAwMDcyOSAgICAgKGJhc2UgMTYpCQlLaXN0bGVyIEluc3RydW1lbnRlIEFHCisJCQkJRXVsYWNoc3RyYXNzZSAyMgorCQkJCUNILTg0MDggV2ludGVydGh1cgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA3LTJBICAgKGhleCkJCUlubm92YW5jZSBOZXR3b3JrcworMDAwNzJBICAgICAoYmFzZSAxNikJCUlubm92YW5jZSBOZXR3b3JrcworCQkJCTE5IEZhaXJtb250IEF2ZW51ZQorCQkJCU90dGF3YSwgT250YXJpbyBLMVkgMVg0CisJCQkJQ0FOQURBCisKKzAwLTA3LTJCICAgKGhleCkJCUp1bmcgTXl1bmcgVGVsZWNvbSBDby4sIEx0ZC4KKzAwMDcyQiAgICAgKGJhc2UgMTYpCQlKdW5nIE15dW5nIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJNUZsIFNpbGxhIFRlY2hub3ZpbC4sIDM5LTMgRGFuZy1Eb25nCisJCQkJS29vbnBvLXNoaSwgS3l1bmcgS2ktRG8KKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctMkMgICAoaGV4KQkJRmFicmljb20KKzAwMDcyQyAgICAgKGJhc2UgMTYpCQlGYWJyaWNvbQorCQkJCVJ1ZSBHYXR0aSBEZSBHYW1vbmQgMjU0CisJCQkJMTE5MCBCcnV4ZWxsZXMKKwkJCQlCRUxHSVVNCisKKzAwLTA3LTJEICAgKGhleCkJCUNOU3lzdGVtcworMDAwNzJEICAgICAoYmFzZSAxNikJCUNOU3lzdGVtcworCQkJCUJhdW1raXJjaGVyc3RyYXNzZSAxCisJCQkJQS04MDIwIEdyYXoKKwkJCQlBVVNUUklBCisKKzAwLTA3LTJFICAgKGhleCkJCU5vcnRoIE5vZGUgQUIKKzAwMDcyRSAgICAgKGJhc2UgMTYpCQlOb3J0aCBOb2RlIEFCCisJCQkJU2tlcHBzbG9yb24gNDIKKwkJCQkxMTMwIFN0b2NraG9sbQorCQkJCVNXRURFTgorCiswMC0wNy0yRiAgIChoZXgpCQlJbnRyYW5zYSwgSW5jLgorMDAwNzJGICAgICAoYmFzZSAxNikJCUludHJhbnNhLCBJbmMuCisJCQkJMjY3MCBaYW5rZXIKKwkJCQlTdWl0ZSAyMDAKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMzAgICAoaGV4KQkJSHV0Y2hpc29uIE9QVEVMIFRlbGVjb20gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDczMCAgICAgKGJhc2UgMTYpCQlIdXRjaGlzb24gT1BURUwgVGVsZWNvbSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLiAyOCBYaW53YWkgU3RyZWV0CisJCQkJQmVpamluZyAgCisJCQkJQ0hJTkEKKworMDAtMDctMzEgICAoaGV4KQkJT3BoaXItU3Bpcmljb24gSW5jCiswMDA3MzEgICAgIChiYXNlIDE2KQkJT3BoaXItU3Bpcmljb24gSW5jCisJCQkJNjAgVyAxMDAwIE4KKwkJCQlMb2dhbiBVVCA4NDMyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMzIgICAoaGV4KQkJQUFFT04gVGVjaG5vbG9neSBJbmMuCiswMDA3MzIgICAgIChiYXNlIDE2KQkJQUFFT04gVGVjaG5vbG9neSBJbmMuCisJCQkJNUYsICMxMzUsIExhbmUgMjM1LCBQYW8gQ2hpYW8gUm9hZAorCQkJCUhzaW4tVGllbiBDaXR5CisJCQkJVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA3LTMzICAgKGhleCkJCURBTkNPTlRST0wgRW5naW5lZXJpbmcKKzAwMDczMyAgICAgKGJhc2UgMTYpCQlEQU5DT05UUk9MIEVuZ2luZWVyaW5nCisJCQkJSXRhbGllbnN2ZWogMS01CisJCQkJREstODQ1MCBIYW1tZWwKKwkJCQlERU5NQVJLCisKKzAwLTA3LTM0ICAgKGhleCkJCU9OU3RvciwgSW5jLgorMDAwNzM0ICAgICAoYmFzZSAxNikJCU9OU3RvciwgSW5jLgorCQkJCTEzMC1CIEtub3dsZXMgRHJpdmUKKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTM1ICAgKGhleCkJCUZsYXJpb24gVGVjaG5vbG9naWVzLCBJbmMuCiswMDA3MzUgICAgIChiYXNlIDE2KQkJRmxhcmlvbiBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMzUgUm91dGUgMjAyLzIwNiBTb3V0aAorCQkJCUJlZG1pbnN0ZXIgTkogMDc5MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTM2ICAgKGhleCkJCURhdGEgVmlkZW8gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAwNzM2ICAgICAoYmFzZSAxNikJCURhdGEgVmlkZW8gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCTdGLCBOby4gMzUyLCBTZWMuIDIKKwkJCQlDaHVuZy1TaGFuIFJkLiwgQ2h1bmctSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNy0zNyAgIChoZXgpCQlTb3JpeWEgQ28uIEx0ZC4KKzAwMDczNyAgICAgKGJhc2UgMTYpCQlTb3JpeWEgQ28uIEx0ZC4KKwkJCQkyLCA4dGggRmxvb3IgSGFuc2hpbiBCL08sIDEzNi0xLAorCQkJCUhhcG8tZG9uZywgTWFwby1ndSwKKwkJCQlTZW91bCwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0zOCAgIChoZXgpCQlZb3VuZyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwNzM4ICAgICAoYmFzZSAxNikJCVlvdW5nIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJRC02MDQsIFNpZ21hLUlJIE9mZmljZXRlbCwKKwkJCQkjMTgsIEd1bWktZG9uZywgQnVuZGdhbmctZ3UsCisJCQkJU3VuZ25hbS1zaSwgS3llb25nZ2ktZG8gNzYzLTc0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0zOSAgIChoZXgpCQlTY290dHkgR3JvdXAgQXVzdHJpYSBHbWJoCiswMDA3MzkgICAgIChiYXNlIDE2KQkJU2NvdHR5IEdyb3VwIEF1c3RyaWEgR21iaAorCQkJCVRlc2xhc3RyYXNzZSA0CisJCQkJODA3NCBHcmFtYmFjaCAgODA3NAorCQkJCUFVU1RSSUEKKworMDAtMDctM0EgICAoaGV4KQkJSW52ZW50ZWwgU3lzdGVtZXMKKzAwMDczQSAgICAgKGJhc2UgMTYpCQlJbnZlbnRlbCBTeXN0ZW1lcworCQkJCTM1LCBydWUgVG91bWVmb3J0CisJCQkJNzUwMDUgUGFyaXMKKwkJCQlGUkFOQ0UKKworMDAtMDctM0IgICAoaGV4KQkJVGVub3ZpcyBHbWJIICYgQ28gS0cKKzAwMDczQiAgICAgKGJhc2UgMTYpCQlUZW5vdmlzIEdtYkggJiBDbyBLRworCQkJCUtsZXllcnN0cmFzc2UgOTQKKwkJCQk2MDMyNiBGcmFua2Z1cnQKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTNDICAgKGhleCkJCVRlbGVjb20gRGVzaWduCiswMDA3M0MgICAgIChiYXNlIDE2KQkJVGVsZWNvbSBEZXNpZ24KKwkJCQlWb2llIFJvbWFpbmUsIFpvbmUgZGUgUmVtb3JhCisJCQkJMzMxNzAgR3JhZGlnbmFuCisJCQkJRlJBTkNFCisKKzAwLTA3LTNEICAgKGhleCkJCU5hbmppbmcgUG9zdGVsIFRlbGVjb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMDczRCAgICAgKGJhc2UgMTYpCQlOYW5qaW5nIFBvc3RlbCBUZWxlY29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCisJCQkJTm8uIDE4NywgU2hlbmdaaG91IFJvYWQsCisJCQkJTmFuamluZyBDaXR5LCBKaWFuZ3N1CisJCQkJMjEwMDA0CisJCQkJQ0hJTkEKKworMDAtMDctM0UgICAoaGV4KQkJQ2hpbmEgR3JlYXQtV2FsbCBDb21wdXRlciBTaGVuemhlbiBDby4sIEx0ZC4KKzAwMDczRSAgICAgKGJhc2UgMTYpCQlDaGluYSBHcmVhdC1XYWxsIENvbXB1dGVyIFNoZW56aGVuIENvLiwgTHRkLgorCQkJCVJlc2VhcmNoICYgRGV2ZWxvcG1lbnQgQ2VudGVyLCBLZWZhIFJvYWQKKwkJCQlTY2llbmNlIEluZHVzdHJ5IFBhcmssIE5hbnNoYW4gRGlzY3RyaWN0CisJCQkJU2hlbnpoZW4gIDUxODA1NworCQkJCUNISU5BCisKKzAwLTA3LTNGICAgKGhleCkJCVdvb2p5dW4gU3lzdGVjIENvLiwgTHRkLgorMDAwNzNGICAgICAoYmFzZSAxNikJCVdvb2p5dW4gU3lzdGVjIENvLiwgTHRkLgorCQkJCTRGIEhhbiBZYW5nIEIvRCwgWW9pZG8tZG9uZworCQkJCVlvdW5nIERlb25nIFBvLWt1CisJCQkJU2VvdWwgIDE1MC0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctNDAgICAoaGV4KQkJQnVmZmFsbywgSW5jCiswMDA3NDAgICAgIChiYXNlIDE2KQkJQnVmZmFsbywgSW5jCisJCQkJTUVMQ08gSEktVEVDSCBDRU5URVIsCisJCQkJNC0xNSAgU2hpYmF0YSwgSG9uZG9yaSwgCisJCQkJTUlOQU1JLUtVLCBOQUdPWUEgQWljaGkgCisJCQkJSkFQQU4KKworMDAtMDctNDEgICAoaGV4KQkJU2llcnJhIEF1dG9tYXRlZCBTeXN0ZW1zCiswMDA3NDEgICAgIChiYXNlIDE2KQkJU2llcnJhIEF1dG9tYXRlZCBTeXN0ZW1zCisJCQkJMjYyNSBOb3J0aCBTYW4gRmVybmFuZG8gQmx2ZC4KKwkJCQlCdXJiYW5rIENBIDkxNTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy00MiAgIChoZXgpCQlDdXJyZW50IFRlY2hub2xvZ2llcywgTExDCiswMDA3NDIgICAgIChiYXNlIDE2KQkJQ3VycmVudCBUZWNobm9sb2dpZXMsIExMQworCQkJCTIwNDIwIENlbnR1cnkgQmx2ZAorCQkJCUdlcm1hbnRvd24gTUQgMjA4NzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTQzICAgKGhleCkJCUNoZWxzaW8gQ29tbXVuaWNhdGlvbnMKKzAwMDc0MyAgICAgKGJhc2UgMTYpCQlDaGVsc2lvIENvbW11bmljYXRpb25zCisJCQkJMTcwIFMuIFdoaXNtb24gUmQuCisJCQkJQmxkZy4gRCwgU3RlIEEKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQxLTE1MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTQ0ICAgKGhleCkJCVVuaWNvLCBJbmMuCiswMDA3NDQgICAgIChiYXNlIDE2KQkJVW5pY28sIEluYy4KKwkJCQkzNzI1IE5pY2hvbHNvbiBSZC4KKwkJCQlGcmFua3N2aWxsZSBXSSA1MzEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNDUgICAoaGV4KQkJUmFkbGFuIENvbXB1dGVyIENvbW11bmljYXRpb25zIEx0ZC4KKzAwMDc0NSAgICAgKGJhc2UgMTYpCQlSYWRsYW4gQ29tcHV0ZXIgQ29tbXVuaWNhdGlvbnMgTHRkLgorCQkJCUF0aWRpbSBUZWNobm9sb2d5IFBhcmsKKwkJCQlCbGRnLiA0CisJCQkJVGVsIEF2aXYgIDYxMTMxCisJCQkJSVNSQUVMCisKKzAwLTA3LTQ2ICAgKGhleCkJCVRVUkNLLCBJbmMuCiswMDA3NDYgICAgIChiYXNlIDE2KQkJVFVSQ0ssIEluYy4KKwkJCQkzMDAwIENhbXB1cyBEcml2ZQorCQkJCVBseW1vdXRoIE1OIDU1NDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy00NyAgIChoZXgpCQlNZWNhbGMKKzAwMDc0NyAgICAgKGJhc2UgMTYpCQlNZWNhbGMKKwkJCQlQTyBCb3ggNzk1OAorCQkJCUNlbnR1cmlvbiAwMDQ2CisJCQkJU09VVEggQUZSSUNBCisKKzAwLTA3LTQ4ICAgKGhleCkJCVRoZSBJbWFnaW5nIFNvdXJjZSBFdXJvcGUKKzAwMDc0OCAgICAgKGJhc2UgMTYpCQlUaGUgSW1hZ2luZyBTb3VyY2UgRXVyb3BlCisJCQkJU29tbWVyc3RyYXNzZSAzNC0zNgorCQkJCTI4MjE1IEJyZW1hbgorCQkJCUdFUk1BTlkKKworMDAtMDctNDkgICAoaGV4KQkJQ0VOaVggSW5jLgorMDAwNzQ5ICAgICAoYmFzZSAxNikJCUNFTmlYIEluYy4KKwkJCQk1MTQxIENhbGlmb3JuaWEgQXZlbnVlCisJCQkJSXJ2aW5lIENBIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy00QSAgIChoZXgpCQlDYXJsIFZhbGVudGluIEdtYkgKKzAwMDc0QSAgICAgKGJhc2UgMTYpCQlDYXJsIFZhbGVudGluIEdtYkgKKwkJCQlOZWNrYXJzdHJhYmUgNzgtODAKKwkJCQlELTc4MDU2IFZTLVNjaHdlbm5pbmdlbgorCQkJCUdFUk1BTlkKKworMDAtMDctNEIgICAoaGV4KQkJRGFpaGVuIENvcnBvcmF0aW9uCiswMDA3NEIgICAgIChiYXNlIDE2KQkJRGFpaGVuIENvcnBvcmF0aW9uCisJCQkJMi0xLTExIFRhZ2F3YSBZb2RvZ2F3YS1rdQorCQkJCU9zYWthIDUzMi04NTEyCisJCQkJSkFQQU4KKworMDAtMDctNEMgICAoaGV4KQkJQmVpY29tIEluYy4KKzAwMDc0QyAgICAgKGJhc2UgMTYpCQlCZWljb20gSW5jLgorCQkJCTExNCBLaW5nIFN0cmVldAorCQkJCUFsZXhhbmRyaWEgVkEgMjIzMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTREICAgKGhleCkJCVplYnJhIFRlY2hub2xvZ2llcyBDb3JwLgorMDAwNzREICAgICAoYmFzZSAxNikJCVplYnJhIFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCTMzMyBDb3Jwb3JhdGUgV29vZHMgUGFya3dheQorCQkJCVZlcm5vbiBIaWxscyBJTCA2MDA2MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNEUgICAoaGV4KQkJTmF1Z2h0eSBib3kgY28uLCBMdGQuCiswMDA3NEUgICAgIChiYXNlIDE2KQkJTmF1Z2h0eSBib3kgY28uLCBMdGQuCisJCQkJUGFybCBCbGRnLiA2RiwgMy0xNS01IFNoaWJ1eWEKKwkJCQlTaGlidXlhLWt1LCBUb2t5bworCQkJCTE1MC0wMDAyCisJCQkJSkFQQU4KKworMDAtMDctNEYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNzRGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTUwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDc1MCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy01MSAgIChoZXgpCQltt3W3dCBBRworMDAwNzUxICAgICAoYmFzZSAxNikJCW23dbd0IEFHCisJCQkJTWXfZ2Vy5HRlIGb8ciBNZWRpemluLSB1bmQgVW13ZWx0dGVjaG5paworCQkJCUFtIE1hcmllbmhvZiAyCisJCQkJV2VkZWwgIDIyODgwCisJCQkJR0VSTUFOWQorCiswMC0wNy01MiAgIChoZXgpCQlSaHl0aG0gV2F0Y2ggQ28uLCBMdGQuCiswMDA3NTIgICAgIChiYXNlIDE2KQkJUmh5dGhtIFdhdGNoIENvLiwgTHRkLgorCQkJCTMyMSBTaGluc2h1a3VzaGluZGVuLCBTaG93YS1NYWNoaSwKKwkJCQlLaXRha2F0c2hpa2EtR3VuLCBTYWl0YW1hCisJCQkJMzQ0LTAxOTYKKwkJCQlKQVBBTgorCiswMC0wNy01MyAgIChoZXgpCQlCZWlqaW5nIFF4Y29tbSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwNzUzICAgICAoYmFzZSAxNikJCUJlaWppbmcgUXhjb21tIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNEYgVG93ZXIgQiwgVG9uZ1RhaSBCdWlsZGluZyBOby4gMzMsCisJCQkJRmluYW5jaWFsIFN0cmVldCwgWGljaGVuZyBEaXN0cmljdCwKKwkJCQlCZWlqaW5nIDEwMDAzMiAgCisJCQkJQ0hJTkEKKworMDAtMDctNTQgICAoaGV4KQkJWHl0ZXJyYSBDb21wdXRpbmcsIEluYy4KKzAwMDc1NCAgICAgKGJhc2UgMTYpCQlYeXRlcnJhIENvbXB1dGluZywgSW5jLgorCQkJCTE0NTA1IEhheWRlbiBSZC4sCisJCQkJU3VpdGUgQjM0MAorCQkJCVNjb3R0c2RhbGUgQVogODUyNjAtNjk1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNTUgICAoaGV4KQkJTGFmb24gU0EKKzAwMDc1NSAgICAgKGJhc2UgMTYpCQlMYWZvbiBTQQorCQkJCTQ0IEF2ZW51ZSBWaWN0b3IgTWV1bmllcgorCQkJCSBCYXNzZW5zICAzMzUzMAorCQkJCUZSQU5DRQorCiswMC0wNy01NiAgIChoZXgpCQlKdXlvdW5nIFRlbGVjb20KKzAwMDc1NiAgICAgKGJhc2UgMTYpCQlKdXlvdW5nIFRlbGVjb20KKwkJCQkjMjAxLCBEdW5zYW4gQnVpbGRpbmcKKwkJCQkyMTgtMSBXYWxweWVuZy1Eb25nLCBTZW9ndSwKKwkJCQlUYWVqb24gIDMwMi04NDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctNTcgICAoaGV4KQkJVG9wY2FsbCBJbnRlcm5hdGlvbmFsIEFHCiswMDA3NTcgICAgIChiYXNlIDE2KQkJVG9wY2FsbCBJbnRlcm5hdGlvbmFsIEFHCisJCQkJVGFscGFnYXNzZSAxCisJCQkJMTIzMCBWaWVubmEKKwkJCQlBVVNUUklBCisKKzAwLTA3LTU4ICAgKGhleCkJCURyYWdvbndhdmUKKzAwMDc1OCAgICAgKGJhc2UgMTYpCQlEcmFnb253YXZlCisJCQkJNjAwLTQxMSBMZWdnZXR0IERyaXZlLAorCQkJCVN1aXRlIDYwMAorCQkJCUthbmF0YSwgT250YXJpbyBLMksgM0M5CisJCQkJQ0FOQURBCisKKzAwLTA3LTU5ICAgKGhleCkJCUJvcmlzIE1hbnVmYWN0dXJpbmcgQ29ycC4KKzAwMDc1OSAgICAgKGJhc2UgMTYpCQlCb3JpcyBNYW51ZmFjdHVyaW5nIENvcnAuCisJCQkJUE8gQm94IDYwMQorCQkJCUNhc3RsZSBQb2ludCBOWSAxMjUxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNUEgICAoaGV4KQkJQWlyIFByb2R1Y3RzIGFuZCBDaGVtaWNhbHMsIEluYy4KKzAwMDc1QSAgICAgKGJhc2UgMTYpCQlBaXIgUHJvZHVjdHMgYW5kIENoZW1pY2FscywgSW5jLgorCQkJCTcyMDEgSGFtaWx0b24gQmx2ZC4KKwkJCQlNYWlsIFN0b3AgQzEzMDcKKwkJCQlBbGxlbnRvd24gUEEgMTgxOTUtMTUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNUIgICAoaGV4KQkJR2lic29uIEd1aXRhcnMKKzAwMDc1QiAgICAgKGJhc2UgMTYpCQlHaWJzb24gR3VpdGFycworCQkJCTMwOSBQYXJrIFBsdXMgQmx2ZC4KKwkJCQlOYXNodmlsbGUgVE4gMzcyMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTVDICAgKGhleCkJCUVhc3RtYW4gS29kYWsgQ29tcGFueQorMDAwNzVDICAgICAoYmFzZSAxNikJCUVhc3RtYW4gS29kYWsgQ29tcGFueQorCQkJCTM0MyBTdGF0ZSBTdHJlZXQKKwkJCQlSb2NoZXN0ZXIgTlkgMTQ2NTAtMDEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNUQgICAoaGV4KQkJQ2VsbGVyaXRhcyBJbmMuCiswMDA3NUQgICAgIChiYXNlIDE2KQkJQ2VsbGVyaXRhcyBJbmMuCisJCQkJYy9vIENlbGVyaXRhcyBMdGQuCisJCQkJQmV6YWxlbCAyOSwgUmFtYXQtR2FuCisJCQkJSVNSQUVMCisKKzAwLTA3LTVFICAgKGhleCkJCUFtZXRlayBQb3dlciBJbnN0cnVtZW50cworMDAwNzVFICAgICAoYmFzZSAxNikJCUFtZXRlayBQb3dlciBJbnN0cnVtZW50cworCQkJCTQwNTAgTlcgMTIxIEF2ZW51ZQorCQkJCUNvcmFsIFNwcmluZ3MgRkwgMzMwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTVGICAgKGhleCkJCVZDUyBWaWRlbyBDb21tdW5pY2F0aW9uIFN5c3RlbXMgQUcKKzAwMDc1RiAgICAgKGJhc2UgMTYpCQlWQ1MgVmlkZW8gQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIEFHCisJCQkJRm9yY2hoZWltZXIgU3RyLiA0CisJCQkJOTA0MjUgTnVlcm5iZXJnCisJCQkJR0VSTUFOWQorCiswMC0wNy02MCAgIChoZXgpCQlUT01JUyBJbmZvcm1hdGlvbiAmIFRlbGVjb20gQ29ycC4KKzAwMDc2MCAgICAgKGJhc2UgMTYpCQlUT01JUyBJbmZvcm1hdGlvbiAmIFRlbGVjb20gQ29ycC4KKwkJCQlZb3VuZ2RldW5ncG8gdGVsZXBob25lIG9mZmljZSAtIGV4dGVuc2lvCisJCQkJWW91bmdkZXVuZ3BvZG9uZyAzNS0xLCBZb3VuZ2RldW5ncG8tZ3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTYxICAgKGhleCkJCUxvZ2l0ZWNoIFNBCiswMDA3NjEgICAgIChiYXNlIDE2KQkJTG9naXRlY2ggU0EKKwkJCQlaLkkuIE1vdWxpbiBkdSBDaG9jIEQKKwkJCQlDSC0xMTIyIFJvbWFuZWwtc3VyLU1vcmdlcworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA3LTYyICAgKGhleCkJCUdyb3VwIFNlbnNlIExpbWl0ZWQKKzAwMDc2MiAgICAgKGJhc2UgMTYpCQlHcm91cCBTZW5zZSBMaW1pdGVkCisJCQkJMjcvRiwgV3UgQ2h1bmcgSG91c2UsCisJCQkJMjEzIFF1ZWVuJ3MgUm9hZCBFYXN0LAorCQkJCVdhbmNoYWkgIAorCQkJCUhPTkcgS09ORworCiswMC0wNy02MyAgIChoZXgpCQlTdW5uaXdlbGwgQ3liZXIgVGVjaC4gQ28uLCBMdGQuCiswMDA3NjMgICAgIChiYXNlIDE2KQkJU3Vubml3ZWxsIEN5YmVyIFRlY2guIENvLiwgTHRkLgorCQkJCTE3dGggRmxvb3IgSGFpdGFpIEJ1aWxkaW5nICMyMjkKKwkJCQlCZWlzaWh1YW4gSG9uZyBSb2FkLAorCQkJCUJlaWppbmcgIDEwMDA4MworCQkJCUNISU5BCisKKzAwLTA3LTY0ICAgKGhleCkJCVlvdW5nV29vIFRlbGVjb20gQ28uIEx0ZC4KKzAwMDc2NCAgICAgKGJhc2UgMTYpCQlZb3VuZ1dvbyBUZWxlY29tIENvLiBMdGQuCisJCQkJM0YsIFNlaHdhIEIvRCwgMzU1LTEKKwkJCQlZYXRhcC1Eb25nLCBCdW5kYWcta3UKKwkJCQlTdW5nbmFtLVNpIEt5dW5na2ktRG8gCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTY1ICAgKGhleCkJCUphZGUgUXVhbnR1bSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDc2NSAgICAgKGJhc2UgMTYpCQlKYWRlIFF1YW50dW0gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNUYsIE5vLiAxMTYsIEhzaWVuIEZ1IFJkLiwKKwkJCQlUYW95dWFuLAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDctNjYgICAoaGV4KQkJQ2hvdSBDaGluIEluZHVzdHJpYWwgQ28uLCBMdGQuCiswMDA3NjYgICAgIChiYXNlIDE2KQkJQ2hvdSBDaGluIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJOUYsICMzNSwgQ2hpYXUgQW4gU3QuIENodW5nIEhvIENpdHksCisJCQkJVGFpcGVpIEhzaWVuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNy02NyAgIChoZXgpCQlZdXhpbmcgRWxlY3Ryb25pY3MgQ29tcGFueSBMaW1pdGVkCiswMDA3NjcgICAgIChiYXNlIDE2KQkJWXV4aW5nIEVsZWN0cm9uaWNzIENvbXBhbnkgTGltaXRlZAorCQkJCVVuaXQgMTgwOCwgMTgvRiBUb3dlciAzLAorCQkJCUVudGVycHJpc2UgU3F1YXJlLCA5IFNoZXVuZyBZdWV0IFJvYWQKKwkJCQlLb3dsb29uIEJheSwgS293bG9vbiAKKwkJCQlIT05HIEtPTkcKKworMDAtMDctNjggICAoaGV4KQkJRGFuZm9zcyBBL1MKKzAwMDc2OCAgICAgKGJhc2UgMTYpCQlEYW5mb3NzIEEvUworCQkJCUUxNi1OMTIsIERLLTY0MzAgTm9yZGJvcmcKKwkJCQlERU5NQVJLCisKKzAwLTA3LTY5ICAgKGhleCkJCUl0YWxpYW5hIE1hY2NoaSBTcEEKKzAwMDc2OSAgICAgKGJhc2UgMTYpCQlJdGFsaWFuYSBNYWNjaGkgU3BBCisJCQkJVmlhIE1hdHRlb3R0aSAxCisJCQkJMjEwNDAgT2dnaW9uYSBTLiBTdGVmYW5vIChWQSkKKwkJCQlJVEFMWQorCiswMC0wNy02QSAgIChoZXgpCQlORVhURVlFIENvLiwgTHRkLgorMDAwNzZBICAgICAoYmFzZSAxNikJCU5FWFRFWUUgQ28uLCBMdGQuCisJCQkJU2hpbnNlZ2kgUGxhemEgNEYsIDkwMC05LAorCQkJCVB5dW5nY2hvbiwgRG9uZ2FuLCBBbnlhbmcsCisJCQkJS3l1bmdnaSAgNDMxLTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy02QiAgIChoZXgpCQlTdHJhbGZvcnMgQUIKKzAwMDc2QiAgICAgKGJhc2UgMTYpCQlTdHJhbGZvcnMgQUIKKwkJCQlMYW5nZ2F0YW4gMjEKKwkJCQlTLTM0MSA4NCBManVuZ2J5CisJCQkJU1dFREVOCisKKzAwLTA3LTZDICAgKGhleCkJCURhZWhhbmV0LCBJbmMuCiswMDA3NkMgICAgIChiYXNlIDE2KQkJRGFlaGFuZXQsIEluYy4KKwkJCQkjOC0yIENodW5nIEp1bmcgUmQgMi0gR2EKKwkJCQlTdXIgRGFlIE1vb24sCisJCQkJU2VvdWwgIDEyMC0wMTIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctNkQgICAoaGV4KQkJRmxleGxpZ2h0IE5ldHdvcmtzCiswMDA3NkQgICAgIChiYXNlIDE2KQkJRmxleGxpZ2h0IE5ldHdvcmtzCisJCQkJMTUgQXRpciBZZWRhIFN0LgorCQkJCUtmYXIgU2FiYSA0NDY0MworCQkJCUlTUkFFTAorCiswMC0wNy02RSAgIChoZXgpCQlTaW5ldGljYSBDb3Jwb3JhdGlvbiBMaW1pdGVkCiswMDA3NkUgICAgIChiYXNlIDE2KQkJU2luZXRpY2EgQ29ycG9yYXRpb24gTGltaXRlZAorCQkJCVdpbGxvdyBIb3VzZQorCQkJCUxsYW5jYXlvIENvdXJ0CisJCQkJTW9ubW91dGhzaGlyZSBVc2sgTlAxNSAxSFkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy02RiAgIChoZXgpCQlTeW5vcHRpY3MgTGltaXRlZAorMDAwNzZGICAgICAoYmFzZSAxNikJCVN5bm9wdGljcyBMaW1pdGVkCisJCQkJRmxvb2RsaWdodCBIb3VzZSwgTnVmZmllbGQgUm9hZCwKKwkJCQlDYW1icmlkZ2UgQ0I0IDFURgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA3LTcwICAgKGhleCkJCUxvY3VzbmV0d29ya3MgQ29ycG9yYXRpb24KKzAwMDc3MCAgICAgKGJhc2UgMTYpCQlMb2N1c25ldHdvcmtzIENvcnBvcmF0aW9uCisJCQkJOXRoIEZsLiBDaHVuZ2psbgorCQkJCTUzLTUgV29uaHlvLVJvIDNHYQorCQkJCVNlb3VsICAxNDAtNzE5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTcxICAgKGhleCkJCUVtYmVkZGVkIFN5c3RlbSBDb3Jwb3JhdGlvbgorMDAwNzcxICAgICAoYmFzZSAxNikJCUVtYmVkZGVkIFN5c3RlbSBDb3Jwb3JhdGlvbgorCQkJCTEzLTUsIFRha2FkYW5vYmFiYSAzLWNob21lLAorCQkJCVNoaW5qdWt1LWt1LCBUb2t5byAxNjktMDA3NQorCQkJCUpBUEFOCisKKzAwLTA3LTcyICAgKGhleCkJCUFsY2F0ZWwgU2hhbmdoYWkgQmVsbCBDby4sIEx0ZC4KKzAwMDc3MiAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIFNoYW5naGFpIEJlbGwgQ28uLCBMdGQuCisJCQkJTm8uIDM4OCwgTmluZ3FpYW8gUm9hZCwKKwkJCQlQdWRvbmcgSmlucWlhbywgU2hhbmdoYWkKKwkJCQkyMDEyMDYKKwkJCQlDSElOQQorCiswMC0wNy03MyAgIChoZXgpCQlBc2NvbSBQb3dlcmxpbmUgQ29tbXVuaWNhdGlvbnMgTHRkLgorMDAwNzczICAgICAoYmFzZSAxNikJCUFzY29tIFBvd2VybGluZSBDb21tdW5pY2F0aW9ucyBMdGQuCisJCQkJQmVscHN0ci4gMzcKKwkJCQkzMDAwIEJlcm4gMTQKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wNy03NCAgIChoZXgpCQlHdWFuZ1pob3UgVGhpbmtlciBUZWNobm9sb2d5IENvLiBMdGQuCiswMDA3NzQgICAgIChiYXNlIDE2KQkJR3VhbmdaaG91IFRoaW5rZXIgVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCTEwOSBaaG9uZ3NoYW4gQXZlLiwgVGlhbmhlIERpc3RyaWN0CisJCQkJR3Vhbmd6aG91CisJCQkJNTEwNjMwCisJCQkJQ0hJTkEKKworMDAtMDctNzUgICAoaGV4KQkJVmFsZW5jZSBTZW1pY29uZHVjdG9yLCBJbmMuCiswMDA3NzUgICAgIChiYXNlIDE2KQkJVmFsZW5jZSBTZW1pY29uZHVjdG9yLCBJbmMuCisJCQkJNDEgRGlzY292ZXJ5CisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy03NiAgIChoZXgpCQlGZWRlcmFsIEFQRAorMDAwNzc2ICAgICAoYmFzZSAxNikJCUZlZGVyYWwgQVBECisJCQkJNDI3NzUgTmluZSBNaWxlIFJkLgorCQkJCU5vdmkgTUkgNDgzNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTc3ICAgKGhleCkJCU1vdGFoIEx0ZC4KKzAwMDc3NyAgICAgKGJhc2UgMTYpCQlNb3RhaCBMdGQuCisJCQkJNC00LTUgS29pc2hpa2F3YQorCQkJCUJ1bmt5bywgVG9reW8KKwkJCQkxMTItMDAwMgorCQkJCUpBUEFOCisKKzAwLTA3LTc4ICAgKGhleCkJCUdFUlNURUwgR21iSCAmIENvLiBLRworMDAwNzc4ICAgICAoYmFzZSAxNikJCUdFUlNURUwgR21iSCAmIENvLiBLRworCQkJCUViZXJoYXJkLUdlcnN0ZWwtUGxhdHogMQorCQkJCUQ0NTQ3MworCQkJCU38bGhlaW0gYW4gZGVyIFJ1aHIgIAorCQkJCUdFUk1BTlkKKworMDAtMDctNzkgICAoaGV4KQkJU3VuZ2lsIFRlbGVjb20gQ28uLCBMdGQuCiswMDA3NzkgICAgIChiYXNlIDE2KQkJU3VuZ2lsIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJIzMyMSwgR29uZ2Rhbi1Eb25nLAorCQkJCUd1bWktQ2l0eSwgS3lvdW5nLUJ1aworCQkJCTczMC0wMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctN0EgICAoaGV4KQkJSW5mb3dhcmUgU3lzdGVtIENvLiwgTHRkLgorMDAwNzdBICAgICAoYmFzZSAxNikJCUluZm93YXJlIFN5c3RlbSBDby4sIEx0ZC4KKwkJCQlNaXpvcm9naSBEYWlpY2hpIEJsZGcgNCBGCisJCQkJMS01LTEzIFNoaW5qdWt1LCBTaGluanVrdS1rdQorCQkJCVRva3lvICAKKwkJCQlKQVBBTgorCiswMC0wNy03QiAgIChoZXgpCQlNaWxsaW1ldHJpeCBCcm9hZGJhbmQgTmV0d29ya3MKKzAwMDc3QiAgICAgKGJhc2UgMTYpCQlNaWxsaW1ldHJpeCBCcm9hZGJhbmQgTmV0d29ya3MKKwkJCQlLaWJ1dHogR2l2YXQgSGFzaGVsb3NoYSA0ODgwMAorCQkJCUlTUkFFTAorCiswMC0wNy03QyAgIChoZXgpCQlXZXN0ZXJtbyBUZWxlaW5kdXN0cmkgQUIKKzAwMDc3QyAgICAgKGJhc2UgMTYpCQlXZXN0ZXJtbyBUZWxlaW5kdXN0cmkgQUIKKwkJCQlTRS02NDAgNDAKKwkJCQlTdG9yYSBTdW5kYnkgIAorCQkJCVNXRURFTgorCiswMC0wNy03RCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA3N0QgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctN0UgICAoaGV4KQkJRWxyZXN0IEdtYkgKKzAwMDc3RSAgICAgKGJhc2UgMTYpCQlFbHJlc3QgR21iSAorCQkJCUxlaWJuaXpzdHIuIDEwCisJCQkJRC03MzIzMCBLaXJjaGhlaW0KKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTdGICAgKGhleCkJCUogQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDA3N0YgICAgIChiYXNlIDE2KQkJSiBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQkxMjQtNCBPamVvbi1Eb25nLCBVbHdhbmctQ2l0eQorCQkJCUt5dW5na2ktRG8KKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctODAgICAoaGV4KQkJQmx1ZWdpZ2EgVGVjaG5vbG9naWVzIE9ZCiswMDA3ODAgICAgIChiYXNlIDE2KQkJQmx1ZWdpZ2EgVGVjaG5vbG9naWVzIE9ZCisJCQkJUC5PLiBCT1ggMTIwCisJCQkJRklOLTAyNjMxIEVzcG9vIAorCQkJCUZJTkxBTkQKKworMDAtMDctODEgICAoaGV4KQkJSXRyb24gSW5jLgorMDAwNzgxICAgICAoYmFzZSAxNikJCUl0cm9uIEluYy4KKwkJCQkyODE4IE4uIFN1bGxpdmFuIFJvYWQKKwkJCQlTcG9rYW5lIFdBIDk5MjE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy04MiAgIChoZXgpCQlPcmFjbGUgQ29ycG9yYXRpb24KKzAwMDc4MiAgICAgKGJhc2UgMTYpCQlPcmFjbGUgQ29ycG9yYXRpb24KKwkJCQkxNyBOZXR3b3JrIENpcmNsZQorCQkJCUJ1aWxkaW5nIDE3LCBVTVBLMTctMTMxCisJCQkJTWVubG8gUGFyayBDQSA5NTAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctODMgICAoaGV4KQkJU3luQ29tIE5ldHdvcmssIEluYy4KKzAwMDc4MyAgICAgKGJhc2UgMTYpCQlTeW5Db20gTmV0d29yaywgSW5jLgorCQkJCTRGLCBOby4gMzEsIEhzaW50YWkgUm9hZCwgQ2h1cGVpIENpdHksCisJCQkJSHNpbmNodSBIc2llbiwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA3LTg0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMgSW5jLgorMDAwNzg0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctODUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcyBJbmMuCiswMDA3ODUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcyBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy04NiAgIChoZXgpCQlXaXJlbGVzcyBOZXR3b3JrcyBJbmMuCiswMDA3ODYgICAgIChiYXNlIDE2KQkJV2lyZWxlc3MgTmV0d29ya3MgSW5jLgorCQkJCSMzMDAsIDMwMTYgRmlmdGggQXZlLiBORQorCQkJCUNhbGdhcnksIEFsYmVydGEKKwkJCQlUMkEgNks0CisJCQkJQ0FOQURBCisKKzAwLTA3LTg3ICAgKGhleCkJCUlkZWEgU3lzdGVtIENvLiwgTHRkLgorMDAwNzg3ICAgICAoYmFzZSAxNikJCUlkZWEgU3lzdGVtIENvLiwgTHRkLgorCQkJCTQtMS0yMSBTaGlubWVpLWNobyBPa2F5YS1zaGkKKwkJCQlOYWdhbm8ta2VuIDM5NC0wMDA0CisJCQkJSkFQQU4KKworMDAtMDctODggICAoaGV4KQkJQ2xpcGNvbW0sIEluYy4KKzAwMDc4OCAgICAgKGJhc2UgMTYpCQlDbGlwY29tbSwgSW5jLgorCQkJCTV0aCBGbCwgU3Nhbmd5YW5nIEJsZGcuCisJCQkJOTM1LTEgQm9uZ2NoZW9uLWRvbmcsIEt3YW1hay1ndSwKKwkJCQlTZW91bCAgMTUxLTgyNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy04OSAgIChoZXgpCQlET05HV09OIFNZU1RFTVMKKzAwMDc4OSAgICAgKGJhc2UgMTYpCQlET05HV09OIFNZU1RFTVMKKwkJCQk4NjEtNSwgR3dhbnlhbmctRG9uZywgRG9uZ2FuLUd1LAorCQkJCUFueWFuZy1zaSwgR3llb25nZ2ktZG8sICA0MzAtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LThBICAgKGhleCkJCU1lbnRvciBEYXRhIFN5c3RlbSBJbmMuCiswMDA3OEEgICAgIChiYXNlIDE2KQkJTWVudG9yIERhdGEgU3lzdGVtIEluYy4KKwkJCQlOby4gMjQtMSwgSW5kdXN0cnkgRWFzdCA0IFJkLiwKKwkJCQlTY2llbmNlIEJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luLUNodSwgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDctOEIgICAoaGV4KQkJV2VnZW5lciBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNzhCICAgICAoYmFzZSAxNikJCVdlZ2VuZXIgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkxMTM1MCBUZWNobm9sb2d5IENpcmNsZQorCQkJCUR1bHV0aCBHQSAzMDA5NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctOEMgICAoaGV4KQkJRWxla3Ryb25pa3NwZWNpYWxpc3RlbiBpIEJvcmxhbmdlIEFCCiswMDA3OEMgICAgIChiYXNlIDE2KQkJRWxla3Ryb25pa3NwZWNpYWxpc3RlbiBpIEJvcmxhbmdlIEFCCisJCQkJQm94IDUwCisJCQkJNDAgTU9DS0ZKxFJECisJCQkJU0UgNzgwCisJCQkJU1dFREVOCisKKzAwLTA3LThEICAgKGhleCkJCU5ldEVuZ2luZXMgTHRkLgorMDAwNzhEICAgICAoYmFzZSAxNikJCU5ldEVuZ2luZXMgTHRkLgorCQkJCTE0NiBXYWxudXQgVHJlZSBDbG9zZQorCQkJCUd1aWxkZm9yZCwgU3VycmV5CisJCQkJR1VJIDRVQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA3LThFICAgKGhleCkJCUdhcnogJiBGcmljaGUgR21iSAorMDAwNzhFICAgICAoYmFzZSAxNikJCUdhcnogJiBGcmljaGUgR21iSAorCQkJCVRlbXBvd2VyaHZpbmcgNAorCQkJCUQtMjEwNzkgSGFtYnVyZworCQkJCUdFUk1BTlkKKworMDAtMDctOEYgICAoaGV4KQkJRW1rYXkgSW5ub3ZhdGl2ZSBQcm9kdWN0cworMDAwNzhGICAgICAoYmFzZSAxNikJCUVta2F5IElubm92YXRpdmUgUHJvZHVjdHMKKwkJCQk1MywgUGFvIEhzaW5nIFJkLiwgSHNpbnRpZW4gQ2l0eQorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNy05MCAgIChoZXgpCQlUcmktTSBUZWNobm9sb2dpZXMgKHMpIExpbWl0ZWQKKzAwMDc5MCAgICAgKGJhc2UgMTYpCQlUcmktTSBUZWNobm9sb2dpZXMgKHMpIExpbWl0ZWQKKwkJCQlCbGsgMjUsIEthbGxhbmcgQXZlbnVlICMwNy0wMS8wNAorCQkJCUthbGxhbmcgQmFzaW4gSW5kLiBFc3QKKwkJCQkzMzk0MTYKKwkJCQlTSU5HQVBPUkUKKworMDAtMDctOTEgICAoaGV4KQkJSW50ZXJuYXRpb25hbCBEYXRhIENvbW11bmljYXRpb25zLCBJbmMuCiswMDA3OTEgICAgIChiYXNlIDE2KQkJSW50ZXJuYXRpb25hbCBEYXRhIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNDc4NzMgRnJlbW9udCBCbHZkLgorCQkJCUZyZW1vbnQgQ0EgMDQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTkyICAgKGhleCkJCVN1ZXRyb24gRWxlY3Ryb25pYyBHbWJICiswMDA3OTIgICAgIChiYXNlIDE2KQkJU3VldHJvbiBFbGVjdHJvbmljIEdtYkgKKwkJCQlLdXJ6ZSBTdHJhc3NlIDI5CisJCQkJNzA3OTQgRmlsZGVyc3RhZHQKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTkzICAgKGhleCkJCVNoaW4gU2F0ZWxsaXRlIFB1YmxpYyBDb21wYW55IExpbWl0ZWQKKzAwMDc5MyAgICAgKGJhc2UgMTYpCQlTaGluIFNhdGVsbGl0ZSBQdWJsaWMgQ29tcGFueSBMaW1pdGVkCisJCQkJNDEvMTAzICBSYXR0YW5hdGhpYmV0IFJvYWQsCisJCQkJTm9udGhhYnVyaSAxMTAwMCwKKwkJCQlUSEFJTEFORAorCiswMC0wNy05NCAgIChoZXgpCQlTaW1wbGUgRGV2aWNlcywgSW5jLgorMDAwNzk0ICAgICAoYmFzZSAxNikJCVNpbXBsZSBEZXZpY2VzLCBJbmMuCisJCQkJMTExIEFuemEgQmx2ZC4sIFN1aXRlIDEyMAorCQkJCUJ1cmxpbmdhbWUgQ0EgOTQwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTk1ICAgKGhleCkJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtIENvLiAoRUNTKQorMDAwNzk1ICAgICAoYmFzZSAxNikJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtIENvLiAoRUNTKQorCQkJCU5vLiAyMiwgQWxsZXkgMzgsIExhbmUgOTEsCisJCQkJU2VjLiAxLCBOZWkgSHUgUm9hZAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNy05NiAgIChoZXgpCQlMU0kgU3lzdGVtcywgSW5jLgorMDAwNzk2ICAgICAoYmFzZSAxNikJCUxTSSBTeXN0ZW1zLCBJbmMuCisJCQkJMTAtMSBNaW5hbWkta3Vyb2thd2EsCisJCQkJQXNhby1rdSwga2F3YXNha2ksCisJCQkJS2FuYWdhd2EgIDIxNS0wMDM0CisJCQkJSkFQQU4KKworMDAtMDctOTcgICAoaGV4KQkJTmV0cG93ZXIgQ28uLCBMdGQuCiswMDA3OTcgICAgIChiYXNlIDE2KQkJTmV0cG93ZXIgQ28uLCBMdGQuCisJCQkJQmFla2FtIEJsZGcuLCA2RgorCQkJCTEyMywgS2FyYWstRG9uZywgU29uZy1wYSBHdQorCQkJCVNlb3VsICAxMzgtMTYyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTk4ICAgKGhleCkJCVNlbGVhIFNSTAorMDAwNzk4ICAgICAoYmFzZSAxNikJCVNlbGVhIFNSTAorCQkJCVZpYSBBLiBNb3JvIE5vLiA2OQorCQkJCTQ2MDE1IC0gQ2ljb2duYXJhCisJCQkJSVRBTFkKKworMDAtMDctOTkgICAoaGV4KQkJVGlwcGluZyBQb2ludCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDc5OSAgICAgKGJhc2UgMTYpCQlUaXBwaW5nIFBvaW50IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTc1MDEgQiBOLiBDYXBpdGFsIG9mIFRYIEh3eS4KKwkJCQlBdXN0aW4gVFggNzg3MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTlBICAgKGhleCkJCVZlcmludCBTeXN0ZW1zIEluYworMDAwNzlBICAgICAoYmFzZSAxNikJCVZlcmludCBTeXN0ZW1zIEluYworCQkJCTE4MDAgQmVybGllciwgU3VpdGUgNDQwCisJCQkJTGF2YWwsICBRdWViZWMgSDdMIDRTNAorCQkJCUNBTkFEQQorCiswMC0wNy05QiAgIChoZXgpCQlBdXJvcmEgTmV0d29ya3MKKzAwMDc5QiAgICAgKGJhc2UgMTYpCQlBdXJvcmEgTmV0d29ya3MKKwkJCQkyODAzIE1pc3Npb24gQ29sbGVnZSBCbHZkLgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy05QyAgIChoZXgpCQlHb2xkZW4gRWxlY3Ryb25pY3MgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDc5QyAgICAgKGJhc2UgMTYpCQlHb2xkZW4gRWxlY3Ryb25pY3MgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gMjksIDIxc3QgUm9hZCwKKwkJCQlUYWljaHVuZyBJbmR1c3RyaWFsIFBhcmssIFRhaWNodW5nCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNy05RCAgIChoZXgpCQlNdXNhc2hpIENvLiwgTHRkLgorMDAwNzlEICAgICAoYmFzZSAxNikJCU11c2FzaGkgQ28uLCBMdGQuCisJCQkJMy0yMS0xLCBTaGltby1vY2hpYWksCisJCQkJU2hpbmp1a3Uta3UsCisJCQkJVG9reW8gIDE2MS0wMDMzCisJCQkJSkFQQU4KKworMDAtMDctOUUgICAoaGV4KQkJSWxpbnggQ28uLCBMdGQuCiswMDA3OUUgICAgIChiYXNlIDE2KQkJSWxpbnggQ28uLCBMdGQuCisJCQkJNHRoIEZsb29yIEtvcmVhIFRlbGVjb20sIFlhbmdqYWUgQnJhbmNoCisJCQkJRG9nb2stRG9uZywgS2FuZ25hbS1rdSwKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTlGICAgKGhleCkJCUFjdGlvbiBEaWdpdGFsIEluYy4KKzAwMDc5RiAgICAgKGJhc2UgMTYpCQlBY3Rpb24gRGlnaXRhbCBJbmMuCisJCQkJMTA2NTAgTWFpbiBTdC4KKwkJCQlTdWl0ZSAxMDIKKwkJCQlGYWlyZmF4IFZBIDIyMDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1BMCAgIChoZXgpCQllLVdhdGNoIEluYy4KKzAwMDdBMCAgICAgKGJhc2UgMTYpCQllLVdhdGNoIEluYy4KKwkJCQk3ODAwIElIIDEwIFdlc3QKKwkJCQlTdWl0ZSA3MDAKKwkJCQlTYW4gQW50b25pbyBUWCA3ODIyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQTEgICAoaGV4KQkJVklBU1lTIEhlYWx0aGNhcmUgR21iSAorMDAwN0ExICAgICAoYmFzZSAxNikJCVZJQVNZUyBIZWFsdGhjYXJlIEdtYkgKKwkJCQlMZWlibml6c3RyYXNzZSA3CisJCQkJSG9lY2hiZXJnIEJhdmFyaWEgOTcyMDQKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LUEyICAgKGhleCkJCU9wdGVvbiBDb3Jwb3JhdGlvbgorMDAwN0EyICAgICAoYmFzZSAxNikJCU9wdGVvbiBDb3Jwb3JhdGlvbgorCQkJCTcwIEhhc3RpbmdzIFN0cmVldAorCQkJCVdlbGxlc2xleSBNQSAwMjQ4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQTMgICAoaGV4KQkJT3NpdGlzIFNvZnR3YXJlLCBJbmMuCiswMDA3QTMgICAgIChiYXNlIDE2KQkJT3NpdGlzIFNvZnR3YXJlLCBJbmMuCisJCQkJNjEyMCBTdG9uZXJpZGdlIE1hbGwgUm9hZAorCQkJCVN1aXRlIDIxMAorCQkJCVBsZWFzYW50b24gQ0EgOTQ1ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUE0ICAgKGhleCkJCUdOIE5ldGNvbSBMdGQuCiswMDA3QTQgICAgIChiYXNlIDE2KQkJR04gTmV0Y29tIEx0ZC4KKwkJCQkxMi0xMyBTZWRsaW5nIFJvYWQsIFdlYXIgRXN0LiwgRGlzdHJpY3QKKwkJCQlXYXNoaW5ndG9uLCBUeW5lIGFuZCBXZWFyCisJCQkJRW5nbGFuZCBORTM4IDlCWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA3LUE1ICAgKGhleCkJCVkuRC5LIENvLiBMdGQuCiswMDA3QTUgICAgIChiYXNlIDE2KQkJWS5ELksgQ28uIEx0ZC4KKwkJCQkxNzA1LCBPc2hpdGF0ZSwgSW5hZ2ktQ2l0eSwKKwkJCQlUb2t5bywKKwkJCQlKQVBBTgorCiswMC0wNy1BNiAgIChoZXgpCQlIb21lIEF1dG9tYXRpb24sIEluYy4KKzAwMDdBNiAgICAgKGJhc2UgMTYpCQlIb21lIEF1dG9tYXRpb24sIEluYy4KKwkJCQk0MzMwIE1pY2hvdWQgQmx2ZC4KKwkJCQlOZXcgT3JsZWFucyBMQSA3MDEyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQTcgICAoaGV4KQkJQS1aIEluYy4KKzAwMDdBNyAgICAgKGJhc2UgMTYpCQlBLVogSW5jLgorCQkJCTUtNS0xNyBLYW1pa291c2hpZW4KKwkJCQlOaXNoaW5vbWl5YSBDaXR5LCBIeW9nbworCQkJCUpBUEFOCisKKzAwLTA3LUE4ICAgKGhleCkJCUhhaWVyIEdyb3VwIFRlY2hub2xvZ2llcyBMdGQuCiswMDA3QTggICAgIChiYXNlIDE2KQkJSGFpZXIgR3JvdXAgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQlOby4gMSBIYWllciBSb2FkLCBIaS10ZWNoIFpvbmUKKwkJCQlRaW5nZGFvLAorCQkJCUNISU5BCisKKzAwLTA3LUE5ICAgKGhleCkJCU5vdmFzb25pY3MKKzAwMDdBOSAgICAgKGJhc2UgMTYpCQlOb3Zhc29uaWNzCisJCQkJMTM5MCBXaWxsb3cgUm9hZAorCQkJCU1lbmxvIFBhcmsgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUFBICAgKGhleCkJCVF1YW50dW0gRGF0YSBJbmMuCiswMDA3QUEgICAgIChiYXNlIDE2KQkJUXVhbnR1bSBEYXRhIEluYy4KKwkJCQkyMTExIEJpZyBUaW1iZXIgUmQuCisJCQkJRWxnaW4gSUwgNjAxMjMtMTEwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQUMgICAoaGV4KQkJRW9scmluZworMDAwN0FDICAgICAoYmFzZSAxNikJCUVvbHJpbmcKKwkJCQkxMCBSdWUgQWxmcmVkIEthc3RsZXIKKwkJCQkxNDAwMCBDYWVuCisJCQkJRlJBTkNFCisKKzAwLTA3LUFEICAgKGhleCkJCVBlbnRhY29uIEdtYkggRm90by11bmQgRmVpbndlcmt0ZWNobmlrCiswMDA3QUQgICAgIChiYXNlIDE2KQkJUGVudGFjb24gR21iSCBGb3RvLXVuZCBGZWlud2Vya3RlY2huaWsKKwkJCQlFbmRlcnN0cmFiZSA5NAorCQkJCTAxMjc3IERyZXNkZW4KKwkJCQlHRVJNQU5ZCisKKzAwLTA3LUFFICAgKGhleCkJCUJyaXRlc3RyZWFtIE5ldHdvcmtzLCBJbmMuCiswMDA3QUUgICAgIChiYXNlIDE2KQkJQnJpdGVzdHJlYW0gTmV0d29ya3MsIEluYy4KKwkJCQkxMjQwMSBSZXNlYXJjaCBCbHZkLgorCQkJCUJ1aWxkaW5nIFR3bywgU3VpdGUgMjc1CisJCQkJQXVzdGluIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1BRiAgIChoZXgpCQlOLVRyb24gQ29ycC4KKzAwMDdBRiAgICAgKGJhc2UgMTYpCQlOLVRyb24gQ29ycC4KKwkJCQk4MjAgUy4gVW5pdmVyc2l0eSBCbHZkLgorCQkJCVN1aXRlIDRFCisJCQkJTW9iaWxlIEFMIDM2NjA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1CMCAgIChoZXgpCQlPZmZpY2UgRGV0YWlscywgSW5jLgorMDAwN0IwICAgICAoYmFzZSAxNikJCU9mZmljZSBEZXRhaWxzLCBJbmMuCisJCQkJMjUgT3R0YXdhCisJCQkJNHRoIEZsb29yCisJCQkJR3JhbmQgUmFwaWRzIE1JIDQ5NTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1CMSAgIChoZXgpCQlFcXVhdG9yIFRlY2hub2xvZ2llcworMDAwN0IxICAgICAoYmFzZSAxNikJCUVxdWF0b3IgVGVjaG5vbG9naWVzCisJCQkJMTMwMCBXaGl0ZSBPYWtzIFJkLgorCQkJCUNhbXBiZWxsIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1CMiAgIChoZXgpCQlUcmFuc2FjY2VzcyBTLkEuCiswMDA3QjIgICAgIChiYXNlIDE2KQkJVHJhbnNhY2Nlc3MgUy5BLgorCQkJCVIuIEdhbGVubyBEZSBDYXN0cm8sIDE0NDUKKwkJCQlUdXJ1YmF0dWJhIDA0Njk2LTA0MAorCQkJCVNhbyBQYXVsbyBTUCAgCisJCQkJQlJBWklMCisKKzAwLTA3LUIzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMgSW5jLgorMDAwN0IzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQjQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcyBJbmMuCiswMDA3QjQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcyBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1CNSAgIChoZXgpCQlBbnkgT25lIFdpcmVsZXNzIEx0ZC4KKzAwMDdCNSAgICAgKGJhc2UgMTYpCQlBbnkgT25lIFdpcmVsZXNzIEx0ZC4KKwkJCQlOYW1zZW91bCBCZC4sIDhGLCAxMzA0LTMKKwkJCQlTZW9jaG8gNC1Eb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LUI2ICAgKGhleCkJCVRlbGVjb20gVGVjaG5vbG9neSBMdGQuCiswMDA3QjYgICAgIChiYXNlIDE2KQkJVGVsZWNvbSBUZWNobm9sb2d5IEx0ZC4KKwkJCQlEb2NrbGFuZHMgSW5ub3ZhdGlvbiBQYXJrCisJCQkJMTI4LTEzMCBFYXN0IFdhbGwgUm9hZAorCQkJCUR1YmxpbiAzICAKKwkJCQlJUkVMQU5ECisKKzAwLTA3LUI3ICAgKGhleCkJCVNhbXVyYWkgSW5kLiBQcm9kcyBFbGV0cm9uaWNvcyBMdGRhCiswMDA3QjcgICAgIChiYXNlIDE2KQkJU2FtdXJhaSBJbmQuIFByb2RzIEVsZXRyb25pY29zIEx0ZGEKKwkJCQlSLU5lYnJhc2thLCA0NDMgUy8yIDJvIEFuZGFyCisJCQkJQnJvb2tsaW4gTm92byAtIFNhbyBQYXVsbworCQkJCTA0NTYwLTAxMQorCQkJCUJSQVpJTAorCiswMC0wNy1COCAgIChoZXgpCQlDb3J2YWxlbnQgQ29ycG9yYXRpb24KKzAwMDdCOCAgICAgKGJhc2UgMTYpCQlDb3J2YWxlbnQgQ29ycG9yYXRpb24KKwkJCQkxMTAxIEFycm93IFBvaW50IERyICM1MDEKKwkJCQlDZWRhciBQYXJrIFRYIDc4NjEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1COSAgIChoZXgpCQlHaW5nYW5ldCBDb3Jwb3JhdGlvbgorMDAwN0I5ICAgICAoYmFzZSAxNikJCUdpbmdhbmV0IENvcnBvcmF0aW9uCisJCQkJS2ludGV0c3UgU2hpbiBOYW1iYSBCdWlsZGluZworCQkJCU1pbmF0byBNYWNoaSAxLTQtMzggTmFuaXdha3UKKwkJCQlPc2FrYSBTaGkgIDE1NTYtMDAxNworCQkJCUpBUEFOCisKKzAwLTA3LUJBICAgKGhleCkJCVVUU3RhcmNvbSwgSW5jLgorMDAwN0JBICAgICAoYmFzZSAxNikJCVVUU3RhcmNvbSwgSW5jLgorCQkJCTEyNzUgQmFyYm9yIEJheSBQS1dZCisJCQkJQWxhbWVkYSBDQSA5NDUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQkIgICAoaGV4KQkJQ2FuZGVyYSBJbmMuCiswMDA3QkIgICAgIChiYXNlIDE2KQkJQ2FuZGVyYSBJbmMuCisJCQkJNjczIFNvdXRoIE1pbHBpdGFzIEJsdmQuCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUJDICAgKGhleCkJCUlkZW50aXggSW5jLgorMDAwN0JDICAgICAoYmFzZSAxNikJCUlkZW50aXggSW5jLgorCQkJCTY1OTEgU2llcnJhIExhbmUKKwkJCQlEdWJsaW4gQ0EgOTQ1NjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUJEICAgKGhleCkJCVJhZGlvbmV0IEx0ZC4KKzAwMDdCRCAgICAgKGJhc2UgMTYpCQlSYWRpb25ldCBMdGQuCisJCQkJS2VpbGFyYW50YSA2CisJCQkJMDIxNTAgRVNQMDAKKwkJCQlGSU5MQU5ECisKKzAwLTA3LUJFICAgKGhleCkJCURhdGFMb2dpYyBTcEEKKzAwMDdCRSAgICAgKGJhc2UgMTYpCQlEYXRhTG9naWMgU3BBCisJCQkJVmlhIENhbmRpbmksIDIKKwkJCQk0MDAxMiBMaXBwbyBkaSBDYWxkZXJhcmEgZGkgUmVubworCQkJCUJvbG9nbmEgIAorCQkJCUlUQUxZCisKKzAwLTA3LUJGICAgKGhleCkJCUFybWlsbGFpcmUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA3QkYgICAgIChiYXNlIDE2KQkJQXJtaWxsYWlyZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMDQxMSBNb3RvciBDaXR5IERyaXZlCisJCQkJQmV0aGVzZGEgTUQgMjA4MTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUMwICAgKGhleCkJCU5ldFplcnZlciBJbmMuCiswMDA3QzAgICAgIChiYXNlIDE2KQkJTmV0WmVydmVyIEluYy4KKwkJCQkyNiBXZXN0IExvbmUgQ2FjdHVzIERyaXZlCisJCQkJUGhvZW5peCBBWiA4NTAyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQzEgICAoaGV4KQkJT3ZlcnR1cmUgTmV0d29ya3MsIEluYy4KKzAwMDdDMSAgICAgKGJhc2UgMTYpCQlPdmVydHVyZSBOZXR3b3JrcywgSW5jLgorCQkJCTUwNyBBaXJwb3J0IEJsdmQKKwkJCQlTdWl0ZSAxMTEKKwkJCQlNb3JyaXN2aWxsZSBOQyAyNzU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQzIgICAoaGV4KQkJTmV0c3lzIFRlbGVjb20KKzAwMDdDMiAgICAgKGJhc2UgMTYpCQlOZXRzeXMgVGVsZWNvbQorCQkJCTRGLCBLeXVuZ05hbSBCL0QsIDgzMC00OCwgWWVva1NhbS1Eb25nCisJCQkJS2FuZ25hbS1HdSwKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy1DMyAgIChoZXgpCQlUaG9tc29uCiswMDA3QzMgICAgIChiYXNlIDE2KQkJVGhvbXNvbgorCQkJCTUtNywgcnVlIFNhbG9tb24gZGUgUm90aHNjaGlsZAorCQkJCVN1cmVzbmVzCisJCQkJOTIxNTAKKwkJCQlGUkFOQ0UKKworMDAtMDctQzQgICAoaGV4KQkJSkVBTiBDby4gTHRkLgorMDAwN0M0ICAgICAoYmFzZSAxNikJCUpFQU4gQ28uIEx0ZC4KKwkJCQk3RiwgMiwgUmVpIEt1YW5nIFJvYWQsCisJCQkJTmVpIEh1LAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNy1DNSAgIChoZXgpCQlHY29tLCBJbmMuCiswMDA3QzUgICAgIChiYXNlIDE2KQkJR2NvbSwgSW5jLgorCQkJCTE4MDAgV29vZGZpZWxkIERyLgorCQkJCVNhdm95IElMIDYxODc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1DNiAgIChoZXgpCQlWRFMgVm9zc2t1aGxlciBHbWJICiswMDA3QzYgICAgIChiYXNlIDE2KQkJVkRTIFZvc3NrdWhsZXIgR21iSAorCQkJCVdlaWJlIEJyZWl0ZSA3CisJCQkJRC00OTA4NCBPc25hYnJ1Y2sKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LUM3ICAgKGhleCkJCVN5bmVjdGljcyBTeXN0ZW1zIExpbWl0ZWQKKzAwMDdDNyAgICAgKGJhc2UgMTYpCQlTeW5lY3RpY3MgU3lzdGVtcyBMaW1pdGVkCisJCQkJMyBBY29ybiBCdXNpbmVzcyBQYXJrCisJCQkJV29vc2VhdHMgQ2xvc2UsIFNoZWZmaWVsZAorCQkJCVM4IE9UQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA3LUM4ICAgKGhleCkJCUJyYWluMjEsIEluYy4KKzAwMDdDOCAgICAgKGJhc2UgMTYpCQlCcmFpbjIxLCBJbmMuCisJCQkJMTlGIE1lc2EgQi9ELCAyMDQgSG9paHl1bi1Eb25nCisJCQkJSm9vbmctR3UKKwkJCQlTZW91bCAgMTAwLTA1MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy1DOSAgIChoZXgpCQlUZWNobm9sIFNldmVuIENvLiwgTHRkLgorMDAwN0M5ICAgICAoYmFzZSAxNikJCVRlY2hub2wgU2V2ZW4gQ28uLCBMdGQuCisJCQkJMjUtMTYgVG9iZWhvbi1jaG8sIE5pc2kta3UsCisJCQkJWW9rb2hhbWEsIDIyMC0wMDQxCisJCQkJSkFQQU4KKworMDAtMDctQ0EgICAoaGV4KQkJQ3JlYXRpeCBQb2x5bWVkaWEgR2VzIEZ1ciBLb21tdW5pa2FpdG9uc3N5c3RlbWUKKzAwMDdDQSAgICAgKGJhc2UgMTYpCQlDcmVhdGl4IFBvbHltZWRpYSBHZXMgRnVyIEtvbW11bmlrYWl0b25zc3lzdGVtZQorCQkJCUhlaW5yaWNoLUJhcnRoLVN0ci4gMworCQkJCTY2MTE1IFNhYXJicnVlY2tlbgorCQkJCUdFUk1BTlkKKworMDAtMDctQ0IgICAoaGV4KQkJRnJlZWJveCBTQQorMDAwN0NCICAgICAoYmFzZSAxNikJCUZyZWVib3ggU0EKKwkJCQk4IHJ1ZSBkZSBsYSBWaWxsZSBsJ0V2ZXF1ZQorCQkJCVBhcmlzICA3NTAwOAorCQkJCUZSQU5DRQorCiswMC0wNy1DQyAgIChoZXgpCQlLYWJhIEJlbnppbmcgR21iSAorMDAwN0NDICAgICAoYmFzZSAxNikJCUthYmEgQmVuemluZyBHbWJICisJCQkJQWxiZXJ0aXN0cmFiZSAzCisJCQkJNzgwNTYgVmlsbGlnZW4tU2Nod2VubmluZ2VuCisJCQkJR0VSTUFOWQorCiswMC0wNy1DRCAgIChoZXgpCQlOTVRFTCBDby4sIEx0ZC4KKzAwMDdDRCAgICAgKGJhc2UgMTYpCQlOTVRFTCBDby4sIEx0ZC4KKwkJCQlTdWl0ZSAxMzAzIDEuQi5DLiA5MTctNgorCQkJCU1vay0xIGRvbmcgVGFuZ2NoZW9uLWt1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy1DRSAgIChoZXgpCQlDYWJsZXRpbWUgTGltaXRlZAorMDAwN0NFICAgICAoYmFzZSAxNikJCUNhYmxldGltZSBMaW1pdGVkCisJCQkJNjQgR3JlZW5oYW0gUm9hZAorCQkJCU5ld2J1cnksIEJlcmtzaGlyZSwKKwkJCQlSRzE0IDdIWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA3LUNGICAgKGhleCkJCUFub3RvIEFCCiswMDA3Q0YgICAgIChiYXNlIDE2KQkJQW5vdG8gQUIKKwkJCQlTb2x2ZWdhdGFuIDQxCisJCQkJU0UtMjIzIDcwIEx1bmQKKwkJCQlTV0VERU4KKworMDAtMDctRDAgICAoaGV4KQkJQXV0b21hdCBFbmdlbmhhcmlhIGRlIEF1dG9tYW9hIEx0ZGEuCiswMDA3RDAgICAgIChiYXNlIDE2KQkJQXV0b21hdCBFbmdlbmhhcmlhIGRlIEF1dG9tYW9hIEx0ZGEuCisJCQkJUnVhIFNhbnRvIEFudG9uaW8sIDkxNyAtIFJlYm91Y2FzCisJCQkJQ3VyaXRpYmEgLSBQUgorCQkJCTgwMjMwLTEyMAorCQkJCUJSQVpJTAorCiswMC0wNy1EMSAgIChoZXgpCQlTcGVjdHJ1bSBTaWduYWwgUHJvY2Vzc2luZyBJbmMuCiswMDA3RDEgICAgIChiYXNlIDE2KQkJU3BlY3RydW0gU2lnbmFsIFByb2Nlc3NpbmcgSW5jLgorCQkJCSMyMDAtMjcwMCBQcm9kdWN0aW9uIFdheQorCQkJCUJ1cm5hYnksIEJDIFY1QSA0WDEKKwkJCQlDQU5BREEKKworMDAtMDctRDIgICAoaGV4KQkJTG9nb3BhayBTeXN0ZW1lCiswMDA3RDIgICAgIChiYXNlIDE2KQkJTG9nb3BhayBTeXN0ZW1lCisJCQkJRG9yZnN0cmFzc2UgNDAKKwkJCQlELTI0NjI4IEhhcnRlbmhvbG0KKwkJCQlHRVJNQU5ZCisKKzAwLTA3LUQzICAgKGhleCkJCVN0b3JrIERpZ2l0YWwgSW1hZ2luZyBCLlYuCiswMDA3RDMgICAgIChiYXNlIDE2KQkJU3RvcmsgRGlnaXRhbCBJbWFnaW5nIEIuVi4KKwkJCQlIYW5kZWxzdHJhYXQgNgorCQkJCVAuTy4gQm94IDIxMAorCQkJCUJveG1lZXIgIDU4MzAtQUUKKwkJCQlORVRIRVJMQU5EUworCiswMC0wNy1ENCAgIChoZXgpCQlaaGVqaWFuZyBZdXRvbmcgTmV0d29yayBDb21tdW5pY2F0aW9uIENvIEx0ZC4KKzAwMDdENCAgICAgKGJhc2UgMTYpCQlaaGVqaWFuZyBZdXRvbmcgTmV0d29yayBDb21tdW5pY2F0aW9uIENvIEx0ZC4KKwkJCQk4MDUgSHVhWGluZyBUZWNobmljYWwgQnVpbGRpbmcKKwkJCQk0NzcjIFdlblNhbiBSb2FkLCBIYW5nWmhvdQorCQkJCVpoZWppYW5nICAKKwkJCQlDSElOQQorCiswMC0wNy1ENSAgIChoZXgpCQkzZSBUZWNobm9sb2dpZXMgSW50Oy4sIEluYy4KKzAwMDdENSAgICAgKGJhc2UgMTYpCQkzZSBUZWNobm9sb2dpZXMgSW50Oy4sIEluYy4KKwkJCQkxNTgwMCBDcmFiYnMgQnJhbmNoIFdheQorCQkJCVN1aXRlIDI5MAorCQkJCVJvY2t2aWxsZSBNRCAyMDg1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRDYgICAoaGV4KQkJQ29tbWlsIEx0ZC4KKzAwMDdENiAgICAgKGJhc2UgMTYpCQlDb21taWwgTHRkLgorCQkJCVAuTy4gQm94IDEwMDUwCisJCQkJUGV0YWggVGlrdmEgNDkwMDEKKwkJCQlJU1JBRUwKKworMDAtMDctRDcgICAoaGV4KQkJQ2Fwb3JpcyBOZXR3b3JrcyBBRworMDAwN0Q3ICAgICAoYmFzZSAxNikJCUNhcG9yaXMgTmV0d29ya3MgQUcKKwkJCQlTdWVnZ2Vsc3RyLiAzMQorCQkJCUQtNDQ1MzIgTHVlbmVuCisJCQkJR0VSTUFOWQorCiswMC0wNy1EOCAgIChoZXgpCQlIaXRyb24gU3lzdGVtcyBJbmMuCiswMDA3RDggICAgIChiYXNlIDE2KQkJSGl0cm9uIFN5c3RlbXMgSW5jLgorCQkJCTEzNS0yMjAgSGl0cm9uIEIvRCA3MjYtNQorCQkJCVN1c28tRG9uZywgS2FuZ25hbSBHdQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctRDkgICAoaGV4KQkJU3BsaWNlY29tCiswMDA3RDkgICAgIChiYXNlIDE2KQkJU3BsaWNlY29tCisJCQkJTGl0dGxlIEdpbGxpb25zLCBUaGUgR3JlZW4KKwkJCQlDcm94bGV5IEdyZWVuLCBSaWNrbWFuc3dvcnRoCisJCQkJSGVydHMgIFdEMyAzSFkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy1EQSAgIChoZXgpCQlOZXVybyBUZWxlY29tIENvLiwgTHRkLgorMDAwN0RBICAgICAoYmFzZSAxNikJCU5ldXJvIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJMkYgTWlzdW5nIEIvRCwgOTM4LTcKKwkJCQlIb2dlLWRvbmcsIERvbmdhbi1ndQorCQkJCUt5dW5nZ2ktZG8gIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy1EQiAgIChoZXgpCQlLaXJhbmEgTmV0d29ya3MsIEluYy4KKzAwMDdEQiAgICAgKGJhc2UgMTYpCQlLaXJhbmEgTmV0d29ya3MsIEluYy4KKwkJCQkzMzEgTmV3bWFuIFNwcmluZ3MgUm9hZAorCQkJCUJsZGcuIDEgNHRoIEZsb29yCisJCQkJUmVkIEJhbmsgTkogMDc3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LURDICAgKGhleCkJCUF0ZWsgQ28sIEx0ZC4KKzAwMDdEQyAgICAgKGJhc2UgMTYpCQlBdGVrIENvLCBMdGQuCisJCQkJQiBkb25nICMyMDUgaGFueWFuZyB2ZW50dXJlIHBhcmsKKwkJCQk2ODUtMjAgc29uZ3N1MWdhZG9uZyBzb25nIGRvbmdndSwKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LUREICAgKGhleCkJCUNyYWRsZSBUZWNobm9sb2dpZXMKKzAwMDdERCAgICAgKGJhc2UgMTYpCQlDcmFkbGUgVGVjaG5vbG9naWVzCisJCQkJMzEzMCBXZXN0IFdhcnJlbiBBdmUuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctREUgICAoaGV4KQkJZUNvcGlsdCBBQgorMDAwN0RFICAgICAoYmFzZSAxNikJCWVDb3BpbHQgQUIKKwkJCQlWZWRkZXN0YXZhZ2VuIDI0CisJCQkJU0UtMTc1IDYyIEphcmZhbGxhCisJCQkJU1dFREVOCisKKzAwLTA3LURGICAgKGhleCkJCVZicmljayBTeXN0ZW1zIEluYy4KKzAwMDdERiAgICAgKGJhc2UgMTYpCQlWYnJpY2sgU3lzdGVtcyBJbmMuCisJCQkJMTIgQmVhdW1vbnQgUm9hZAorCQkJCVdhbGxpbmdmb3JkIENUIDA2NDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1FMCAgIChoZXgpCQlQYWxtIEluYy4KKzAwMDdFMCAgICAgKGJhc2UgMTYpCQlQYWxtIEluYy4KKwkJCQk5NTAgV2VzdCBNYXVkZSBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUtMjgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRTEgICAoaGV4KQkJV0lTIENvbW11bmljYXRpb25zIENvLiBMdGQuCiswMDA3RTEgICAgIChiYXNlIDE2KQkJV0lTIENvbW11bmljYXRpb25zIENvLiBMdGQuCisJCQkJNC9GIEJ1aWxkaW5nIDUzMworCQkJCUJ1Z3VhIFNpeHRoIFJvYWQKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgUHJvdmlkZW5jZSAgCisJCQkJQ0hJTkEKKworMDAtMDctRTIgICAoaGV4KQkJQml0d29ya3MsIEluYy4KKzAwMDdFMiAgICAgKGJhc2UgMTYpCQlCaXR3b3JrcywgSW5jLgorCQkJCSMxIEJpdHdvcmtzIFdheQorCQkJCVByYWlyaWUgR3JvdmUgQVIgNzI3NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUUzICAgKGhleCkJCU5hdmNvbSBUZWNobm9sb2d5LCBJbmMuCiswMDA3RTMgICAgIChiYXNlIDE2KQkJTmF2Y29tIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxMjMgV2VzdCBUb3JyYW5jZSBCbHZkLiwKKwkJCQlTdWl0ZSAxMDEKKwkJCQlSZWRvbmRvIEJlYWNoIENBIDkwMjc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1FNCAgIChoZXgpCQlTb2Z0UmFkaW8gQ28uLCBMdGQuCiswMDA3RTQgICAgIChiYXNlIDE2KQkJU29mdFJhZGlvIENvLiwgTHRkLgorCQkJCTJGLCBEb25nLUJvayBCL0QgNjQ1LTE4CisJCQkJWWVva3NhbS1Eb25nLCBLYW5nbmFtLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy1FNSAgIChoZXgpCQlDb3VwIENvcnBvcmF0aW9uCiswMDA3RTUgICAgIChiYXNlIDE2KQkJQ291cCBDb3Jwb3JhdGlvbgorCQkJCTEtMjQtNCBNYXJ1c2VuIDJuZCBCbGQuIDRGLAorCQkJCUhpZ2FzaGktVWVubywgVGFpdG8ta3UKKwkJCQlUb2t5byAgCisJCQkJSkFQQU4KKworMDAtMDctRTYgICAoaGV4KQkJZWRnZWZsb3cgQ2FuYWRhIEluYy4KKzAwMDdFNiAgICAgKGJhc2UgMTYpCQllZGdlZmxvdyBDYW5hZGEgSW5jLgorCQkJCTMyOSBNYXJjaCBSb2FkCisJCQkJS2FuYXRhLCBPbnRhcmlvCisJCQkJSzJLIDJFMQorCQkJCUNBTkFEQQorCiswMC0wNy1FNyAgIChoZXgpCQlGcmVlV2F2ZSBUZWNobm9sb2dpZXMKKzAwMDdFNyAgICAgKGJhc2UgMTYpCQlGcmVlV2F2ZSBUZWNobm9sb2dpZXMKKwkJCQkxODgwIFMuIEZsYWl0cm9uIEN0LgorCQkJCVN0ZS4gRgorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUU4ICAgKGhleCkJCVN0LiBCZXJuYXJkIFNvZnR3YXJlCiswMDA3RTggICAgIChiYXNlIDE2KQkJU3QuIEJlcm5hcmQgU29mdHdhcmUKKwkJCQkxNTAxNSBBdmVudWUgb2YgU2NpZW5jZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRTkgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzAwMDdFOSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCU1TOiAgSkYzLTQyMAorCQkJCTIxMTEgTkUgMjV0aCBBdmUuCisJCQkJSGlsbHNib3JvIE9SIDk3MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1FQSAgIChoZXgpCQlNYXNzYW5hLCBJbmMuCiswMDA3RUEgICAgIChiYXNlIDE2KQkJTWFzc2FuYSwgSW5jLgorCQkJCTI5MDEgVGFzbWFuIERyaXZlCisJCQkJU3VpdGUgMTA2CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUVCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMgSW5jLgorMDAwN0VCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRUMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcyBJbmMuCiswMDA3RUMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcyBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1FRCAgIChoZXgpCQlBbHRlcmEgQ29ycG9yYXRpb24KKzAwMDdFRCAgICAgKGJhc2UgMTYpCQlBbHRlcmEgQ29ycG9yYXRpb24KKwkJCQkxMDEgSW5ub3ZhdGlvbiBEcml2ZQorCQkJCU1TIDIzMDUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRUUgICAoaGV4KQkJdGVsY28gSW5mb3JtYXRpb25zc3lzdGVtZSBHbWJICiswMDA3RUUgICAgIChiYXNlIDE2KQkJdGVsY28gSW5mb3JtYXRpb25zc3lzdGVtZSBHbWJICisJCQkJU2NodWxzdHJhc3NlIDM4CisJCQkJRCAwOTEyIENoZW1uaXR6CisJCQkJR0VSTUFOWQorCiswMC0wNy1FRiAgIChoZXgpCQlMb2NraGVlZCBNYXJ0aW4gVGFjdGljYWwgU3lzdGVtcworMDAwN0VGICAgICAoYmFzZSAxNikJCUxvY2toZWVkIE1hcnRpbiBUYWN0aWNhbCBTeXN0ZW1zCisJCQkJMzMzMyBQaWxvdCBLbm9iIFJvYWQKKwkJCQlFYWdhbiBNTiA1NTEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRjAgICAoaGV4KQkJTG9naVN5bmMgTExDCiswMDA3RjAgICAgIChiYXNlIDE2KQkJTG9naVN5bmMgTExDCisJCQkJMTMxMyBMZWFyIEluZHVzdHJpYWwgUGFya3dheQorCQkJCUF2b24gT0ggNDQwMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUYxICAgKGhleCkJCVRlcmFCdXJzdCBOZXR3b3JrcyBJbmMuCiswMDA3RjEgICAgIChiYXNlIDE2KQkJVGVyYUJ1cnN0IE5ldHdvcmtzIEluYy4KKwkJCQk5ODUgU3Rld2FydCBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRjIgICAoaGV4KQkJSU9BIENvcnBvcmF0aW9uCiswMDA3RjIgICAgIChiYXNlIDE2KQkJSU9BIENvcnBvcmF0aW9uCisJCQkJMzUwIFBvdHJlcm8gQXZlLgorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRjMgICAoaGV4KQkJVGhpbmtlbmdpbmUgTmV0d29ya3MKKzAwMDdGMyAgICAgKGJhc2UgMTYpCQlUaGlua2VuZ2luZSBOZXR3b3JrcworCQkJCTEwMCBOaWNrZXJzb24gUm9hZAorCQkJCU1hcmxib3JvdWdoIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1GNCAgIChoZXgpCQlFbGV0ZXggQ28uLCBMdGQuCiswMDA3RjQgICAgIChiYXNlIDE2KQkJRWxldGV4IENvLiwgTHRkLgorCQkJCTgtMi01NiBOYW5rb3UtSGlnYXNoaSBTdW1pbm9lLWt1CisJCQkJT3Nha2EgNTU5LTAwMzEKKwkJCQlKQVBBTgorCiswMC0wNy1GNSAgIChoZXgpCQlCcmlkZ2VjbyBDbyBBRworMDAwN0Y1ICAgICAoYmFzZSAxNikJCUJyaWRnZWNvIENvIEFHCisJCQkJUmluZ3N0ci4gMTQKKwkJCQlDSCA4NjAwIER1ZWJlbmRvcmYKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wNy1GNiAgIChoZXgpCQlRcWVzdCBTb2Z0d2FyZSBTeXN0ZW1zCiswMDA3RjYgICAgIChiYXNlIDE2KQkJUXFlc3QgU29mdHdhcmUgU3lzdGVtcworCQkJCTg2MCBFYXN0IDQ1MDAgU291dGggIzIwMAorCQkJCU11cnJheSBVVCA4NDEwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRjcgICAoaGV4KQkJR2FsdHJvbmljcworMDAwN0Y3ICAgICAoYmFzZSAxNikJCUdhbHRyb25pY3MKKwkJCQk0NjQ1IEVhc3QgQ290dG9uIENlbnRlciBCbHZkLgorCQkJCUJsZGcuIFR3bworCQkJCVBob2VuaXggQVogODUwNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUY4ICAgKGhleCkJCUlURGV2aWNlcywgSW5jLgorMDAwN0Y4ICAgICAoYmFzZSAxNikJCUlURGV2aWNlcywgSW5jLgorCQkJCTYwNiAxMTB0aCBBdmUuIE5FCisJCQkJQmVsbGV2dWUgV0EgOTgwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUY5ICAgKGhleCkJCVBob25ldGljcywgSW5jLgorMDAwN0Y5ICAgICAoYmFzZSAxNikJCVBob25ldGljcywgSW5jLgorCQkJCTkwMSBUcnllbnMgUm9hZAorCQkJCUFzdG9uIFBBIDE5MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1GQSAgIChoZXgpCQlJVFQgQ28uLCBMdGQuCiswMDA3RkEgICAgIChiYXNlIDE2KQkJSVRUIENvLiwgTHRkLgorCQkJCTEtMTQtNywgTXVrb2hqeXVrdSwKKwkJCQlIYW1hbWF0c3UsIFNoaXp1b2thIDQzMAorCQkJCUpBUEFOCisKKzAwLTA3LUZCICAgKGhleCkJCUdpZ2EgU3RyZWFtIFVNVFMgVGVjaG5vbG9naWVzIEdtYkgKKzAwMDdGQiAgICAgKGJhc2UgMTYpCQlHaWdhIFN0cmVhbSBVTVRTIFRlY2hub2xvZ2llcyBHbWJICisJCQkJS29ucmFkLVp1c2UtU3RyYWJlIDcKKwkJCQlELTY2MTE1IFNhYXJicnVja2VuCisJCQkJR0VSTUFOWQorCiswMC0wNy1GQyAgIChoZXgpCQlBZGVwdCBTeXN0ZW1zIEluYy4KKzAwMDdGQyAgICAgKGJhc2UgMTYpCQlBZGVwdCBTeXN0ZW1zIEluYy4KKwkJCQkyNDIgRWFzdCA2MDAgTm9ydGgKKwkJCQlMaW5kb24gVVQgODQwNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUZEICAgKGhleCkJCUxBTmVyZ3kgTHRkLgorMDAwN0ZEICAgICAoYmFzZSAxNikJCUxBTmVyZ3kgTHRkLgorCQkJCUltcGVyaWFsIEhvdXNlLCBJbXBlcmlhbCBXYXkKKwkJCQlOZXdwb3J0LCBHd2VudCBOUDEwIDhVSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA3LUZFICAgKGhleCkJCVJpZ2FrdSBDb3Jwb3JhdGlvbgorMDAwN0ZFICAgICAoYmFzZSAxNikJCVJpZ2FrdSBDb3Jwb3JhdGlvbgorCQkJCTMtOS0xMiwgTWF0c3ViYXJhLWNobworCQkJCUFraXNoaW1hLXNoaQorCQkJCVRva3lvICAxOTYtODY2NgorCQkJCUpBUEFOCisKKzAwLTA3LUZGICAgKGhleCkJCUdsdW9uIE5ldHdvcmtzCiswMDA3RkYgICAgIChiYXNlIDE2KQkJR2x1b24gTmV0d29ya3MKKwkJCQk1NDAxIE9sZCBSZWR3b29kIEh3eS4KKwkJCQlQZXRhbHVtYSBDQSA5NDk1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMDAgICAoaGV4KQkJTVVMVElURUNIIFNZU1RFTVMsIElOQy4KKzAwMDgwMCAgICAgKGJhc2UgMTYpCQlNVUxUSVRFQ0ggU1lTVEVNUywgSU5DLgorCQkJCTIyMDUgV09PREFMRSBEUklWRQorCQkJCU1PVU5EUyBWSUVXIE1OIDU1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0wMSAgIChoZXgpCQlIaWdoU3BlZWQgU3VyZmluZyBJbmMuCiswMDA4MDEgICAgIChiYXNlIDE2KQkJSGlnaFNwZWVkIFN1cmZpbmcgSW5jLgorCQkJCTQ0NzkwIFMuIEdyaW1tZXIgQmx2ZC4KKwkJCQlTdWl0ZSAxMDAKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0wMiAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMDgwMiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMDMgICAoaGV4KQkJQ29zIFRyb24KKzAwMDgwMyAgICAgKGJhc2UgMTYpCQlDb3MgVHJvbgorCQkJCTNGIEJvb2xpbSBCL0QsIDE0MzEtMjIsCisJCQkJS3dhbnlhbmctRG9uZywgRG9uZ29uLUd1LAorCQkJCUFueWFuZyAgNDMxLTA2MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC0wNCAgIChoZXgpCQlJQ0EgSW5jLgorMDAwODA0ICAgICAoYmFzZSAxNikJCUlDQSBJbmMuCisJCQkJNTQyLTEgTm9ndWtpCisJCQkJS3VraS1zaGksIFNhaXRhbW4KKwkJCQlKQVBBTgorCiswMC0wOC0wNSAgIChoZXgpCQlUZWNobm8tSG9sb24gQ29ycG9yYXRpb24KKzAwMDgwNSAgICAgKGJhc2UgMTYpCQlUZWNobm8tSG9sb24gQ29ycG9yYXRpb24KKwkJCQkzLTE5LTIsIFRha2FtYXRzdS1jaG8KKwkJCQlUYWNoaWthd2Etc2hpCisJCQkJVG9reW8gIDE5MC0wMDExCisJCQkJSkFQQU4KKworMDAtMDgtMDYgICAoaGV4KQkJUmFvbmV0IFN5c3RlbXMsIEluYy4KKzAwMDgwNiAgICAgKGJhc2UgMTYpCQlSYW9uZXQgU3lzdGVtcywgSW5jLgorCQkJCVdlc3QgV2luZyAxNEYsIElUIFZlbnR1cmUgVG93ZXIgNzgKKwkJCQlHYXJha2Jvbi1kb25nLCBTb25ncGEsCisJCQkJU2VvdWwgIDEzOC04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtMDcgICAoaGV4KQkJQWNjZXNzIERldmljZXMgTGltaXRlZAorMDAwODA3ICAgICAoYmFzZSAxNikJCUFjY2VzcyBEZXZpY2VzIExpbWl0ZWQKKwkJCQlTaXh0aCBGbG9vciwgNTggT3hicmlkZ2UgUm9hZAorCQkJCUVhbGluZywgTG9uZG9uIFc1IDJTVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA4LTA4ICAgKGhleCkJCVBQVCBWaXNpb24sIEluYy4KKzAwMDgwOCAgICAgKGJhc2UgMTYpCQlQUFQgVmlzaW9uLCBJbmMuCisJCQkJMTI5ODggVmFsbGV5IFZpZXcgUmQuCisJCQkJRWRlbiBQcmFpcmllIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0wOSAgIChoZXgpCQlTeXN0ZW1vbmljIEFHCiswMDA4MDkgICAgIChiYXNlIDE2KQkJU3lzdGVtb25pYyBBRworCQkJCUFtIFdhbGRzY2hsb2Vzc2NoZW4gMQorCQkJCUQtMDEwOTkgRHJlc2RlbgorCQkJCUdFUk1BTlkKKworMDAtMDgtMEEgICAoaGV4KQkJRXNwZXJhLVdlcmtlIEdtYkgKKzAwMDgwQSAgICAgKGJhc2UgMTYpCQlFc3BlcmEtV2Vya2UgR21iSAorCQkJCU1vbHRrZXN0cmFzc2UgMTctIDMzCisJCQkJNDcwNTggRHVpc2J1cmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA4LTBCICAgKGhleCkJCUJpcmthIEJQQSBJbmZvcm1hdGlvbnNzeXN0ZW0gQUIKKzAwMDgwQiAgICAgKGJhc2UgMTYpCQlCaXJrYSBCUEEgSW5mb3JtYXRpb25zc3lzdGVtIEFCCisJCQkJQm94IDIwMTAwCisJCQkJMTYxIDAyIEJyb21tYQorCQkJCVNXRURFTgorCiswMC0wOC0wQyAgIChoZXgpCQlWREEgRWxldHRyb25pY2Egc3BhCiswMDA4MEMgICAgIChiYXNlIDE2KQkJVkRBIEVsZXR0cm9uaWNhIHNwYQorCQkJCVZpYWxlIExpbm8gWmFudXNzaSwgMworCQkJCTMzMTcwIFBvcmRlbm9uZSAKKwkJCQlJVEFMWQorCiswMC0wOC0wRCAgIChoZXgpCQlUb3NoaWJhCiswMDA4MEQgICAgIChiYXNlIDE2KQkJVG9zaGliYQorCQkJCTItOSwgU3VlaGlyby1jaG8sCisJCQkJT21lLWNpdHksCisJCQkJVG9reW8gIDE5OC04NzEwCisJCQkJSkFQQU4KKworMDAtMDgtMEUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDA4MEUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjQ1MCBTZXF1ZW5jZSBEci4KKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTBGICAgKGhleCkJCVByb3hpbWlvbiBGaWJlciBPcHRpY3MgQUIKKzAwMDgwRiAgICAgKGJhc2UgMTYpCQlQcm94aW1pb24gRmliZXIgT3B0aWNzIEFCCisJCQkJSXNhZmpvcmRzZ2F0YW4gOQorCQkJCVNFLTE2NDQwIEtpc3RhCisJCQkJU1dFREVOCisKKzAwLTA4LTEwICAgKGhleCkJCUtleSBUZWNobm9sb2d5LCBJbmMuCiswMDA4MTAgICAgIChiYXNlIDE2KQkJS2V5IFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxNTAgQXZlcnkgU3QuCisJCQkJV2FsbGEgV2FsbGEgV0EgOTkzNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTExICAgKGhleCkJCVZPSVggQ29ycG9yYXRpb24KKzAwMDgxMSAgICAgKGJhc2UgMTYpCQlWT0lYIENvcnBvcmF0aW9uCisJCQkJMTk5MS0zIDR0aCBGbG9vciBUb3AncyBWZW50dXJlIFRvd2VyCisJCQkJU2VvIENoby1Eb25nLCBTZW8gY2hvLWd1CisJCQkJU2VvdWwgIDEzOC0wOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtMTIgICAoaGV4KQkJR00tMiBDb3Jwb3JhdGlvbgorMDAwODEyICAgICAoYmFzZSAxNikJCUdNLTIgQ29ycG9yYXRpb24KKwkJCQlTaGliYS1NYXR1c2hpcmEtQmxkZy4KKwkJCQk2RiAzLTMtMTIsU2hpYmEKKwkJCQlUb2t5byBNaW5hdG8ta3UgMTA1LTAwMTQKKwkJCQlKQVBBTgorCiswMC0wOC0xMyAgIChoZXgpCQlEaXNrYmFuaywgSW5jLgorMDAwODEzICAgICAoYmFzZSAxNikJCURpc2tiYW5rLCBJbmMuCisJCQkJM0YgRm9jdXMgQnVpbGRpbmcsIDcyNS0yNQorCQkJCVllb2tzYW0tZG9uZywgS2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTE0ICAgKGhleCkJCVRJTCBUZWNobm9sb2dpZXMKKzAwMDgxNCAgICAgKGJhc2UgMTYpCQlUSUwgVGVjaG5vbG9naWVzCisJCQkJRXVyb3BhcmsgRGVQaWNoYXVyeSwgQkFUIDkKKwkJCQkxMzg1NiBBSVggZW4gUHJvdmlkZW5jZQorCQkJCUZSQU5DRQorCiswMC0wOC0xNSAgIChoZXgpCQlDQVRTIENvLiwgTHRkLgorMDAwODE1ICAgICAoYmFzZSAxNikJCUNBVFMgQ28uLCBMdGQuCisJCQkJNzUxLTIgS2FjaGlkYS1jaG8sCisJCQkJVHN1enVraS1rdSwgWW9rb2hhbWEKKwkJCQkyMjQtMDAzNAorCQkJCUpBUEFOCisKKzAwLTA4LTE2ICAgKGhleCkJCUJsdWV0YWdzIEEvUworMDAwODE2ICAgICAoYmFzZSAxNikJCUJsdWV0YWdzIEEvUworCQkJCU55dG9ydiAxMSwgNCBGbG9vcgorCQkJCTkwMDAgQWFsYm9yZworCQkJCURFTk1BUksKKworMDAtMDgtMTcgICAoaGV4KQkJRW1lcmdlQ29yZSBOZXR3b3JrcyBMTEMKKzAwMDgxNyAgICAgKGJhc2UgMTYpCQlFbWVyZ2VDb3JlIE5ldHdvcmtzIExMQworCQkJCTEwNTQyIFMuIEpvcmRhbiBHYXRld2F5CisJCQkJU3VpdGUgMTUwCisJCQkJU291dGggSm9yZGFuIFVUIDg0MDk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0xOCAgIChoZXgpCQlQaXhlbHdvcmtzLCBJbmMuCiswMDA4MTggICAgIChiYXNlIDE2KQkJUGl4ZWx3b3JrcywgSW5jLgorCQkJCTc3MDAgU1cgTW9oYXdrIFN0cmVldAorCQkJCVR1YWxhdGluIE9SIDk3MDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0xOSAgIChoZXgpCQlCYW5rc3lzCiswMDA4MTkgICAgIChiYXNlIDE2KQkJQmFua3N5cworCQkJCUhhYWNodHNlc3RlZW53ZWcgMTQ0MgorCQkJCTExMzAgQnJ1c3NlbAorCQkJCUJFTEdJVU0KKworMDAtMDgtMUEgICAoaGV4KQkJU2FucmFkIEludGVsbGlnZW5jZSBTdG9yYWdlIENvbW11bmljYXRpb25zICgyMDAwKSBMdGQuCiswMDA4MUEgICAgIChiYXNlIDE2KQkJU2FucmFkIEludGVsbGlnZW5jZSBTdG9yYWdlIENvbW11bmljYXRpb25zICgyMDAwKSBMdGQuCisJCQkJMzIgSGFiYXJ6ZWwgU3QuLCBFbnRyYWNlIEIKKwkJCQlUZWwtQXZpdiA2OTcxMAorCQkJCUlTUkFFTAorCiswMC0wOC0xQiAgIChoZXgpCQlXaW5kaWdvIFN5c3RlbXMKKzAwMDgxQiAgICAgKGJhc2UgMTYpCQlXaW5kaWdvIFN5c3RlbXMKKwkJCQkyMjEwIE8nVG9vbGUgQXZlLiAjMjAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTFDICAgKGhleCkJCUBwb3MuY29tCiswMDA4MUMgICAgIChiYXNlIDE2KQkJQHBvcy5jb20KKwkJCQkzMDUxIE5vcnRoIEZpcnN0IFN0cmVldAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0xRCAgIChoZXgpCQlJcHNpbCwgSW5jb3Jwb3JhdGVkCiswMDA4MUQgICAgIChiYXNlIDE2KQkJSXBzaWwsIEluY29ycG9yYXRlZAorCQkJCTc5NDUgTWFjQXJ0aHVyIEJsdmQuCisJCQkJU3VpdGUgMjEyCisJCQkJQ2FiaW4gSm9obiBNRCAyMDgxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMUUgICAoaGV4KQkJUmVwZWF0aXQgQUIKKzAwMDgxRSAgICAgKGJhc2UgMTYpCQlSZXBlYXRpdCBBQgorCQkJCUZhcm9nYXRhbiA3CisJCQkJU0UxNjQ0MCBLaXN0YQorCQkJCVNXRURFTgorCiswMC0wOC0xRiAgIChoZXgpCQlQb3UgWXVlbiBUZWNoIENvcnAuIEx0ZC4KKzAwMDgxRiAgICAgKGJhc2UgMTYpCQlQb3UgWXVlbiBUZWNoIENvcnAuIEx0ZC4KKwkJCQkxNkYsIE5vLiAxMDcsIFNlY3QuIDMsIFRhaWNodW5nIEtlbmcgUmQuCisJCQkJVGFpY2h1bmcgQ2l0eSA0MDcsCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC0yMCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKzAwMDgyMCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTIxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMgSW5jLgorMDAwODIxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMjIgICAoaGV4KQkJSW5Qcm8gQ29tbQorMDAwODIyICAgICAoYmFzZSAxNikJCUluUHJvIENvbW0KKwkJCQkxMUYsIE5vLiA5MyBTaHVlaS1ZdWFuIFN0cmVldAorCQkJCUhzaW5jaHUsIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtMjMgICAoaGV4KQkJVGV4YSBDb3JwLgorMDAwODIzICAgICAoYmFzZSAxNikJCVRleGEgQ29ycC4KKwkJCQlOYXJhIEJsZGcuIDNGLCAyLTItOCBTaGluLVlva29oYW1hLAorCQkJCUtvaG9rdS1rdSwgWW9rb2hhbWEKKwkJCQkyMjItMDAzMworCQkJCUpBUEFOCisKKzAwLTA4LTI0ICAgKGhleCkJCUNvcGl0cmFrIEluYworMDAwODI0ICAgICAoYmFzZSAxNikJCUNvcGl0cmFrIEluYworCQkJCTgzOTAgTWF5cmFuZCBTdHJlZXQKKwkJCQlNb250cmVhbCAgUXVlYmVjIEg0UCAyQzkKKwkJCQlDQU5BREEKKworMDAtMDgtMjUgICAoaGV4KQkJQWNtZSBQYWNrZXQKKzAwMDgyNSAgICAgKGJhc2UgMTYpCQlBY21lIFBhY2tldAorCQkJCTcxIFRoaXJkIEF2ZW51ZQorCQkJCUJ1cmxsaW5ndG9uCisJCQkJV29idXJuIE1BIDAxODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0yNiAgIChoZXgpCQlDb2xvcmFkbyBNZWQgVGVjaAorMDAwODI2ICAgICAoYmFzZSAxNikJCUNvbG9yYWRvIE1lZCBUZWNoCisJCQkJNjE3NSBMb25nYm93IERyLgorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTI3ICAgKGhleCkJCVBpcmVsbGkgQnJvYWRiYW5kIFNvbHV0aW9ucworMDAwODI3ICAgICAoYmFzZSAxNikJCVBpcmVsbGkgQnJvYWRiYW5kIFNvbHV0aW9ucworCQkJCVZpYWxlIFNhcmNhIDIyMgorCQkJCU1pbGFubyAyMDEyNgorCQkJCUlUQUxZCisKKzAwLTA4LTI4ICAgKGhleCkJCUtvZWkgRW5naW5lZXJpbmcgTHRkLgorMDAwODI4ICAgICAoYmFzZSAxNikJCUtvZWkgRW5naW5lZXJpbmcgTHRkLgorCQkJCTMtNDAsIDUtQ2hvbWUKKwkJCQlLaXJlLW5pc2hpIEhpcmFuby1rdQorCQkJCU9zYWt1ICA1NDctMDAyNgorCQkJCUpBUEFOCisKKzAwLTA4LTI5ICAgKGhleCkJCUF2YWwgTmFnYXNha2kgQ29ycG9yYXRpb24KKzAwMDgyOSAgICAgKGJhc2UgMTYpCQlBdmFsIE5hZ2FzYWtpIENvcnBvcmF0aW9uCisJCQkJNi00MiBUdWt1YmEgSXNhaGF5YQorCQkJCU5hZ2FzYWtpCisJCQkJODU0LTAwNjUKKwkJCQlKQVBBTgorCiswMC0wOC0yQSAgIChoZXgpCQlQb3dlcndhbGx6IE5ldHdvcmsgU2VjdXJpdHkKKzAwMDgyQSAgICAgKGJhc2UgMTYpCQlQb3dlcndhbGx6IE5ldHdvcmsgU2VjdXJpdHkKKwkJCQkxMjAtMTMxNjAgVmFuaWVyIFBsYWNlLAorCQkJCVJpY2htb25kLCBCQywKKwkJCQlWNlYgMkoyCisJCQkJQ0FOQURBCisKKzAwLTA4LTJCICAgKGhleCkJCVdvb2tzdW5nIEVsZWN0cm9uaWNzLCBJbmMuCiswMDA4MkIgICAgIChiYXNlIDE2KQkJV29va3N1bmcgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQlKYWhvLUJsZGcuIDZGLCBUYW5iYW5nLURvbmcsCisJCQkJU2VvLUd1LCBUYWVqb24sIDMwMi0yMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtMkMgICAoaGV4KQkJSG9tYWcgQUcKKzAwMDgyQyAgICAgKGJhc2UgMTYpCQlIb21hZyBBRworCQkJCUFidC4gRXN0LiwgSG9tYWcgU3RyLiAzLTUKKwkJCQlELTcyMjk2IFNjaG9wZmxvY2gKKwkJCQlHRVJNQU5ZCisKKzAwLTA4LTJEICAgKGhleCkJCUluZHVzIFRlcXNpdGUgUHJpdmF0ZSBMaW1pdGVkCiswMDA4MkQgICAgIChiYXNlIDE2KQkJSW5kdXMgVGVxc2l0ZSBQcml2YXRlIExpbWl0ZWQKKwkJCQkjNywgQXJ5YSBHb3dkZXIgUm9hZCwKKwkJCQlXZXN0IE1hbWJhbGFtLCBDaGVubmFpLAorCQkJCVRhbWlsIE5hZHUgIDYwMDAzMworCQkJCUlORElBCisKKzAwLTA4LTJFICAgKGhleCkJCU11bHRpdG9uZSBFbGVjdHJvbmljcyBQTEMKKzAwMDgyRSAgICAgKGJhc2UgMTYpCQlNdWx0aXRvbmUgRWxlY3Ryb25pY3MgUExDCisJCQkJTXVsdGl0b25lIEhvdXNlLCBCZWdnYXJ3b29kIExhbmUKKwkJCQlCYXNpbmdzdG9rZSBSRzIzIDdMTAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA4LTRFICAgKGhleCkJCURpdmVyZ2VOZXQsIEluYy4KKzAwMDg0RSAgICAgKGJhc2UgMTYpCQlEaXZlcmdlTmV0LCBJbmMuCisJCQkJMjE0MiBCZXJpbmcgRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTRGICAgKGhleCkJCVF1YWxzdGFyIENvcnBvcmF0aW9uCiswMDA4NEYgICAgIChiYXNlIDE2KQkJUXVhbHN0YXIgQ29ycG9yYXRpb24KKwkJCQkzOTkwQiBIZXJpdGFnZSBPYWsgQ291cnQKKwkJCQlTaW1pIFZhbGxleSBDQSA5MzA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNTAgICAoaGV4KQkJQXJpem9uYSBJbnN0cnVtZW50IENvcnAuCiswMDA4NTAgICAgIChiYXNlIDE2KQkJQXJpem9uYSBJbnN0cnVtZW50IENvcnAuCisJCQkJMTkxMiBXLiA0dGggU3RyZWV0CisJCQkJVGVtcGUgQVogODUyODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTUxICAgKGhleCkJCUNhbmFkaWFuIEJhbmsgTm90ZSBDb21wYW55LCBMdGQuCiswMDA4NTEgICAgIChiYXNlIDE2KQkJQ2FuYWRpYW4gQmFuayBOb3RlIENvbXBhbnksIEx0ZC4KKwkJCQkxOCBBdXJpZ2EgRHIuCisJCQkJTmVwZWFuLCBPbnQuCisJCQkJSzJFIDdUOQorCQkJCUNBTkFEQQorCiswMC0wOC01MiAgIChoZXgpCQlEYXZvbGluayBDby4gSW5jLgorMDAwODUyICAgICAoYmFzZSAxNikJCURhdm9saW5rIENvLiBJbmMuCisJCQkJUm9vbS02MDQsIEt1bWh3YSBQbGF6YSwKKwkJCQkxMTQyLTUsIFNhbmJvbi1Eb25nLCBLdW5wby1TaQorCQkJCUt5dW5nZ2ktRG8gIDQzNS0wNDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtNTMgICAoaGV4KQkJU2NobGVpY2hlciBHbWJIICYgQ28uIFJlbGFpc3dlcmtlIEtHCiswMDA4NTMgICAgIChiYXNlIDE2KQkJU2NobGVpY2hlciBHbWJIICYgQ28uIFJlbGFpc3dlcmtlIEtHCisJCQkJUGljaGVsc3dlcmRlcnN0cmFzc2UgMy01CisJCQkJRC0xMzU5NyBCZXJsaW4KKwkJCQlHRVJNQU5ZCisKKzAwLTA4LTU0ICAgKGhleCkJCU5ldHJvbml4LCBJbmMuCiswMDA4NTQgICAgIChiYXNlIDE2KQkJTmV0cm9uaXgsIEluYy4KKwkJCQkzRi0xLCBOby4gMzEsIEhzaW4tVGFpIFJvYWQsCisJCQkJQ2h1cGVpIENpdHksIEhzaW5jaHUgSHNpZW4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA4LTU1ICAgKGhleCkJCU5BU0EtR29kZGFyZCBTcGFjZSBGbGlnaHQgQ2VudGVyCiswMDA4NTUgICAgIChiYXNlIDE2KQkJTkFTQS1Hb2RkYXJkIFNwYWNlIEZsaWdodCBDZW50ZXIKKwkJCQlDb2RlIDU2MQorCQkJCUdyZWVuYmVsdCBNRCAyMDc3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNTYgICAoaGV4KQkJR2FtYXRyb25pYyBFbGVjdHJvbmljIEluZHVzdHJpZXMgTHRkLgorMDAwODU2ICAgICAoYmFzZSAxNikJCUdhbWF0cm9uaWMgRWxlY3Ryb25pYyBJbmR1c3RyaWVzIEx0ZC4KKwkJCQlIYXJ0dW0gU3RyZWV0IDE0CisJCQkJSmVydXNhbGVtIDk3Nzc0CisJCQkJSVNSQUVMCisKKzAwLTA4LTU3ICAgKGhleCkJCVBvbGFyaXMgTmV0d29ya3MsIEluYy4KKzAwMDg1NyAgICAgKGJhc2UgMTYpCQlQb2xhcmlzIE5ldHdvcmtzLCBJbmMuCisJCQkJNjgxMCBTYW50YSBUZXJlc2EgQmx2ZC4KKwkJCQlTYW4gSm9zZSBDQSA5NTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNTggICAoaGV4KQkJTm92YXRlY2hub2xvZ3kgSW5jLgorMDAwODU4ICAgICAoYmFzZSAxNikJCU5vdmF0ZWNobm9sb2d5IEluYy4KKwkJCQlOb3ZhIEJsZGcuIDRGIDY0MSAwMworCQkJCVl1a3NhbS1Eb25nIEthbmduYW0ta3UKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC01OSAgIChoZXgpCQlTaGVuWmhlbiBVbml0b25lIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwODU5ICAgICAoYmFzZSAxNikJCVNoZW5aaGVuIFVuaXRvbmUgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJMiBTb3V0aGVybiBGbG9vciA3MDIgQnVpbGRpbmcKKwkJCQlCYUd1YUxpbmcgSW5kdXN0cmlhbCBab25lIFNoZW56aGVuCisJCQkJQ0hJTkEKKworMDAtMDgtNUEgICAoaGV4KQkJSW50aUdhdGUgSW5jLgorMDAwODVBICAgICAoYmFzZSAxNikJCUludGlHYXRlIEluYy4KKwkJCQkzMDlFIElUIFZlbnR1cmUgVG93ZXIKKwkJCQk3OCwgR2FyYWtib24tRG9uZywgU29uZ3BhLUd1CisJCQkJU2VvdWwgIDEzOC04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtNUIgICAoaGV4KQkJSGFuYml0IEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwODVCICAgICAoYmFzZSAxNikJCUhhbmJpdCBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQk0MTQtNSwgV29uY2hlb24tRG9uZywgUGFsZGFsLUd1CisJCQkJU3V3b24tQ2l0eSwgS3lvdW5na2ktRG8sIDQ0Mi04MjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtNUMgICAoaGV4KQkJU2hhbmdoYWkgRGFyZSBUZWNobm9sb2dpZXMgQ28uIEx0ZC4KKzAwMDg1QyAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBEYXJlIFRlY2hub2xvZ2llcyBDby4gTHRkLgorCQkJCTIzRiwgQ2hpbmEgTWVyY2hhbnRzIFRvd2VyLAorCQkJCU5vLiAxNjEsIEVhc3QgTHVqaWFadWkgUm9hZAorCQkJCVB1ZG9uZyBOZXcgQXJlYSwgU2hhbmdoYWkgCisJCQkJQ0hJTkEKKworMDAtMDgtNUQgICAoaGV4KQkJQWFzdHJhCiswMDA4NUQgICAgIChiYXNlIDE2KQkJQWFzdHJhCisJCQkJMTE2MCBSb3V0ZSAyMiBFYXN0CisJCQkJQnJpZGdld2F0ZXIgTkogMDg4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTVFICAgKGhleCkJCVBDTyBBRworMDAwODVFICAgICAoYmFzZSAxNikJCVBDTyBBRworCQkJCURvbmF1cGFyayAxMQorCQkJCTkzMzA5IEtlbGhlaW0KKwkJCQlHRVJNQU5ZCisKKzAwLTA4LTVGICAgKGhleCkJCVBpY2Fub2wgTi5WLgorMDAwODVGICAgICAoYmFzZSAxNikJCVBpY2Fub2wgTi5WLgorCQkJCVBvbGVubGFhbiAzLTcKKwkJCQk4OTAwIEllcGVyCisJCQkJQkVMR0lVTQorCiswMC0wOC02MCAgIChoZXgpCQlMb2RnZU5ldCBFbnRlcnRhaW5tZW50IENvcnAuCiswMDA4NjAgICAgIChiYXNlIDE2KQkJTG9kZ2VOZXQgRW50ZXJ0YWlubWVudCBDb3JwLgorCQkJCTM5MDAgVy4gSW5ub3ZhdGlvbiBTdHJlZXQKKwkJCQlTaW91eCBGYWxscyBTRCA1NzEwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNjEgICAoaGV4KQkJU29mdEVuZXJneSBDby4sIEx0ZC4KKzAwMDg2MSAgICAgKGJhc2UgMTYpCQlTb2Z0RW5lcmd5IENvLiwgTHRkLgorCQkJCTM0NiBTYW5nd2FuZ3NpcGxpLURvbmcsCisJCQkJU3VuZyBEb25nLUd1LCBTZW91bAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC02MiAgIChoZXgpCQlORUMgRWx1bWluYW50IFRlY2hub2xvZ2llcywgSW5jLgorMDAwODYyICAgICAoYmFzZSAxNikJCU5FQyBFbHVtaW5hbnQgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTQ3MDAgQXZpb24gUGFya3dheQorCQkJCUNoYW50aWxseSBWQSAyMDE1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNjMgICAoaGV4KQkJRW50cmlzcGhlcmUgSW5jLgorMDAwODYzICAgICAoYmFzZSAxNikJCUVudHJpc3BoZXJlIEluYy4KKwkJCQkxNjAxIFMuIERlIEFuemEgQmx2ZC4KKwkJCQlTdWl0ZSAyNTAKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTY0ICAgKGhleCkJCUZhc3kgUy5wLkEuCiswMDA4NjQgICAgIChiYXNlIDE2KQkJRmFzeSBTLnAuQS4KKwkJCQlWaWEgVG9nbmFzY2EgNworCQkJCUdhbGxhcmF0ZSBWYXJlc2UgMjEwMTMKKwkJCQlJVEFMWQorCiswMC0wOC02NSAgIChoZXgpCQlKQVNDT00gQ08uLCBMVEQKKzAwMDg2NSAgICAgKGJhc2UgMTYpCQlKQVNDT00gQ08uLCBMVEQKKwkJCQlKVUFOIElORFVTVFJJQUwgQ09NUExFWCAzMzAsIDE3LTEsCisJCQkJSlVBTi1ET05HIE5BTS1HVSBJTkNIRU9OIDQwMi0yMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtNjYgICAoaGV4KQkJRFNYIEFjY2VzcyBTeXN0ZW1zLCBJbmMuCiswMDA4NjYgICAgIChiYXNlIDE2KQkJRFNYIEFjY2VzcyBTeXN0ZW1zLCBJbmMuCisJCQkJMTA3MzEgUm9ja3dhbGwgUmQuCisJCQkJRGFsbGFzIFRYIDc1MjM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC02NyAgIChoZXgpCQlVcHRpbWUgRGV2aWNlcworMDAwODY3ICAgICAoYmFzZSAxNikJCVVwdGltZSBEZXZpY2VzCisJCQkJMzE2MCBCZWUgQ2F2ZXMgUmQKKwkJCQlTdWl0ZSAyMDQKKwkJCQlBdXN0aW4gVGV4YXMgNzg3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTY4ICAgKGhleCkJCVB1ck9wdGl4CiswMDA4NjggICAgIChiYXNlIDE2KQkJUHVyT3B0aXgKKwkJCQkxOTQ1IENhbWlubyBWaWRhIFJvYmxlCisJCQkJU3VpdGUgQworCQkJCUNhcmxzYmFkIENBIDkyMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC02OSAgIChoZXgpCQlDb21tYW5kLWUgVGVjaG5vbG9neSBDby4sTHRkLgorMDAwODY5ICAgICAoYmFzZSAxNikJCUNvbW1hbmQtZSBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJU3VpdGUgNzA5LCBaaG9uZ3NoZW5nIE1hbnNpb24sCisJCQkJTm8uMiBCZWkgRmVuZ1dvIFJkLgorCQkJCUJlaWppbmcgIDEwMDAzOAorCQkJCUNISU5BCisKKzAwLTA4LTZBICAgKGhleCkJCVNlY3VyaXRvbiBHbWJoCiswMDA4NkEgICAgIChiYXNlIDE2KQkJU2VjdXJpdG9uIEdtYmgKKwkJCQlWb24tRHJhaXMtU3RyYXNzZSAzMworCQkJCUFjaGVybiAgRC03Nzg1NQorCQkJCUdFUk1BTlkKKworMDAtMDgtNkIgICAoaGV4KQkJTUlQU1lTCiswMDA4NkIgICAgIChiYXNlIDE2KQkJTUlQU1lTCisJCQkJMTlDLCBBdmVudWUgZGVzIEluZGVzCisJCQkJTEVTIFVMSVMgQ2VkZXggIEZSLTkxOTY5CisJCQkJRlJBTkNFCisKKzAwLTA4LTZDICAgKGhleCkJCVBsYXNtb24gTE1TCiswMDA4NkMgICAgIChiYXNlIDE2KQkJUGxhc21vbiBMTVMKKwkJCQk0NDI1IEFycm93c1dlc3QgRHJpdmUKKwkJCQlDb2xvcmFkbyBTcHJpbmdzIENPIDgwOTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC02RCAgIChoZXgpCQlNaXNzb3VyaSBGcmVlTmV0CiswMDA4NkQgICAgIChiYXNlIDE2KQkJTWlzc291cmkgRnJlZU5ldAorCQkJCVBPIEJveCA3NzEwMjYKKwkJCQlTdC4gTG91aXMgTWlzc291cmkgNjMxNzctMTAyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNkUgICAoaGV4KQkJSHlnbG8gQUIKKzAwMDg2RSAgICAgKGJhc2UgMTYpCQlIeWdsbyBBQgorCQkJCVZhc3RiZXJnYSBhbGxlIDYwCisJCQkJU0UtMTI2IDc1IFN0b2NraG9sbQorCQkJCVNXRURFTgorCiswMC0wOC02RiAgIChoZXgpCQlSZXNvdXJjZXMgQ29tcHV0ZXIgTmV0d29yayBMdGQuCiswMDA4NkYgICAgIChiYXNlIDE2KQkJUmVzb3VyY2VzIENvbXB1dGVyIE5ldHdvcmsgTHRkLgorCQkJCVJtIDMyNCwgVGVjaCBDZW50cmUsIDcyIFRhdCBDaGVlIEF2ZS4sCisJCQkJS293bG9vbiBUb25nLCBLb3dsb29uCisJCQkJSE9ORyBLT05HCisKKzAwLTA4LTcwICAgKGhleCkJCVJhc3ZpYSBTeXN0ZW1zLCBJbmMuCiswMDA4NzAgICAgIChiYXNlIDE2KQkJUmFzdmlhIFN5c3RlbXMsIEluYy4KKwkJCQkzMjU1LTMgU2NvdHQgQmx2ZC4KKwkJCQlTdWl0ZSAxMDIKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNzEgICAoaGV4KQkJTk9SVEhEQVRBIENvLiwgTHRkLgorMDAwODcxICAgICAoYmFzZSAxNikJCU5PUlRIREFUQSBDby4sIEx0ZC4KKwkJCQkjMzAyIEtheWFuZ1RlY2huby1Ub3duIDE0ODcKKwkJCQlLYXlhbmczLURvbmcKKwkJCQlLYW5nc2VvLUd1IFNlb3VsIDE1Ny04MTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtNzIgICAoaGV4KQkJU29yZW5zb24gQ29tbXVuaWNhdGlvbnMKKzAwMDg3MiAgICAgKGJhc2UgMTYpCQlTb3JlbnNvbiBDb21tdW5pY2F0aW9ucworCQkJCTQxOTIgU291dGggUml2ZXJib2F0IFJvYWQKKwkJCQlTYWx0IExha2UgQ2l0eSBVVCA4NDEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNzMgICAoaGV4KQkJRGFwVGVjaG5vbG9neSBCLlYuCiswMDA4NzMgICAgIChiYXNlIDE2KQkJRGFwVGVjaG5vbG9neSBCLlYuCisJCQkJWnV0cGhlbnN0cmFhdCA2NworCQkJCUVKIE9sZGVuemFhbCAgNzU3NQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTA4LTc0ICAgKGhleCkJCURlbGwgQ29tcHV0ZXIgQ29ycC4KKzAwMDg3NCAgICAgKGJhc2UgMTYpCQlEZWxsIENvbXB1dGVyIENvcnAuCisJCQkJT25lIERlbGwgV2F5CisJCQkJUm91bmQgUm9jayBUWCA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNzUgICAoaGV4KQkJQWNvcnAgRWxlY3Ryb25pY3MgQ29ycC4KKzAwMDg3NSAgICAgKGJhc2UgMTYpCQlBY29ycCBFbGVjdHJvbmljcyBDb3JwLgorCQkJCThGLCBOby4xMTEtNixTaGluZyBUZWggUmQsCisJCQkJU2FuIENodW5nIFRhaXBlaSBIc2llbiAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA4LTc2ICAgKGhleCkJCVNEU3lzdGVtCiswMDA4NzYgICAgIChiYXNlIDE2KQkJU0RTeXN0ZW0KKwkJCQk2MTMsSHl1bmRhaSBJIFZhbGxleSwyMjMtMTIsCisJCQkJU2FuZ2RhaXdvbiAxLURvbmcsSnVuZ3dvbi1HdQorCQkJCVNlb25nbmFtIEd5ZW9uZ2dpLURvIDQ2Mi04MDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtNzcgICAoaGV4KQkJTGllYmVydC1IaXJvc3MgU3BhCiswMDA4NzcgICAgIChiYXNlIDE2KQkJTGllYmVydC1IaXJvc3MgU3BhCisJCQkJVmlhIExlb25hcmRvIGRhIFZpbmNpIDgKKwkJCQlQaW92ZSBkaSBTYWNjbyBaLkkuIFRvZ25hbmEgMzUwMjAKKwkJCQlJVEFMWQorCiswMC0wOC03OCAgIChoZXgpCQlCZW5jaG1hcmsgU3RvcmFnZSBJbm5vdmF0aW9ucworMDAwODc4ICAgICAoYmFzZSAxNikJCUJlbmNobWFyayBTdG9yYWdlIElubm92YXRpb25zCisJCQkJMzEyMiBTdGVybGluZyBDaXJjbGUKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC03OSAgIChoZXgpCQlDRU0gQ29ycG9yYXRpb24KKzAwMDg3OSAgICAgKGJhc2UgMTYpCQlDRU0gQ29ycG9yYXRpb24KKwkJCQlQLk8uIEJveCAyMDAKKwkJCQlNYXR0aGV3cyBOQyAyODEwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtN0EgICAoaGV4KQkJV2lwb3RlYyBHbWJICiswMDA4N0EgICAgIChiYXNlIDE2KQkJV2lwb3RlYyBHbWJICisJCQkJQWRhbS1Ib2ZmbWFuIFN0ci4gMjYKKwkJCQlELTY3NjU3IEthaXNlcnNsYXV0ZXJtCisJCQkJR0VSTUFOWQorCiswMC0wOC03QiAgIChoZXgpCQlSVFggVGVsZWNvbSBBL1MKKzAwMDg3QiAgICAgKGJhc2UgMTYpCQlSVFggVGVsZWNvbSBBL1MKKwkJCQlTdHJvZW1tZW4gNgorCQkJCURLIDk0MDAgTm9lcnJlc3VuZGJ5CisJCQkJREVOTUFSSworCiswMC0wOC03QyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA4N0MgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtN0QgICAoaGV4KQkJQ2lzY28gU3lzdGVtcyBJbmMuCiswMDA4N0QgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcyBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC03RSAgIChoZXgpCQlCb24gRWxlY3Ryby1UZWxlY29tIEluYy4KKzAwMDg3RSAgICAgKGJhc2UgMTYpCQlCb24gRWxlY3Ryby1UZWxlY29tIEluYy4KKwkJCQlHYXlhbmcgMXN0IEZhY3RvcnkgNzAxLCAxNC04MQorCQkJCUdheWFuZy1Eb25nIEdhbmdzby1HdQorCQkJCVNlb3VsICAxNTctODA4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTdGICAgKGhleCkJCVNQQVVOIGVsZWN0cm9uaWMgR21iSCAmIENvLiBLRworMDAwODdGICAgICAoYmFzZSAxNikJCVNQQVVOIGVsZWN0cm9uaWMgR21iSCAmIENvLiBLRworCQkJCUJ5ay1HdWxkZW4gLSBTdHIuIDIyCisJCQkJNzgyMjQgU2luZ2VuCisJCQkJR0VSTUFOWQorCiswMC0wOC04MCAgIChoZXgpCQlCcm9hZFRlbCBDYW5hZGEgQ29tbXVuaWNhdGlvbnMgaW5jLgorMDAwODgwICAgICAoYmFzZSAxNikJCUJyb2FkVGVsIENhbmFkYSBDb21tdW5pY2F0aW9ucyBpbmMuCisJCQkJMzcwMCBHcmlmZml0aCwgU3VpdGUgMzg5CisJCQkJU2FpbnQtTGF1cmVudCBRdWViZWMgSDRUIDJCMworCQkJCUNBTkFEQQorCiswMC0wOC04MSAgIChoZXgpCQlESUdJVEFMIEhBTkRTIENPLixMVEQuCiswMDA4ODEgICAgIChiYXNlIDE2KQkJRElHSVRBTCBIQU5EUyBDTy4sTFRELgorCQkJCVRPV04nUyBTUVVBUkUgNTAzLCBLQUtpWUEgQnVpbGRpbmcgMkYKKwkJCQkyLTctMTcgU2hpbnlva29oYW1hIEtvdWhva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjItMDAzMworCQkJCUpBUEFOCisKKzAwLTA4LTgyICAgKGhleCkJCVNJR01BIENPUlBPUkFUSU9OCiswMDA4ODIgICAgIChiYXNlIDE2KQkJU0lHTUEgQ09SUE9SQVRJT04KKwkJCQkyLTMtMTUgSXdhdG8tbWluYW1pCisJCQkJS29tYWUtc2hpIFRva3lvIDIwMS04NjMwCisJCQkJSkFQQU4KKworMDAtMDgtODMgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzAwMDg4MyAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTEwOTU1IFRhbnRhdSBBdmVudWUsIE1haWxzdG9wIDQ1U0wtRworCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtODQgICAoaGV4KQkJSW5kZXggQnJhaWxsZSBBQgorMDAwODg0ICAgICAoYmFzZSAxNikJCUluZGV4IEJyYWlsbGUgQUIKKwkJCQlCb3ggMTU1CisJCQkJUy05NTQyMyBHYW1tZWxzdGFkCisJCQkJU1dFREVOCisKKzAwLTA4LTg1ICAgKGhleCkJCUVNUyBEci4gVGhvbWFzIFd1ZW5zY2hlCiswMDA4ODUgICAgIChiYXNlIDE2KQkJRU1TIERyLiBUaG9tYXMgV3VlbnNjaGUKKwkJCQlTb25uZW5oYW5nIDMKKwkJCQlELTg1MzA0IElsbW11ZW5zdGVyCisJCQkJR0VSTUFOWQorCiswMC0wOC04NiAgIChoZXgpCQlIYW5zdW5nIFRlbGlhbm4sIEluYy4KKzAwMDg4NiAgICAgKGJhc2UgMTYpCQlIYW5zdW5nIFRlbGlhbm4sIEluYy4KKwkJCQkxOTUtMSwgTmV1bmdweXVuZy1yaSwgT3BvLWV1YgorCQkJCUt3YW5nanUtc2ksIEt5b2dnaS1kbywgNDY0LTg5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC04NyAgIChoZXgpCQlNYXNjaGluZW5mYWJyaWsgUmVpbmhhdXNlbiBHbWJICiswMDA4ODcgICAgIChiYXNlIDE2KQkJTWFzY2hpbmVuZmFicmlrIFJlaW5oYXVzZW4gR21iSAorCQkJCUZhbGtlbnN0ZWluc3RyLiA4CisJCQkJUmVnZW5zYnVyZyBCYXZhcmlhIDkzMDU5CisJCQkJR0VSTUFOWQorCiswMC0wOC04OCAgIChoZXgpCQlPVUxMSU0gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBJbmMsLgorMDAwODg4ICAgICAoYmFzZSAxNikJCU9VTExJTSBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IEluYywuCisJCQkJYS0xMHRoIEZMLC4gSVQgVmVudHVyZSBUb3dlciwKKwkJCQk3OCBHYXJhay1Eb25nLCBTb25ncGEtS3UKKwkJCQlTZW91bCAgMTM4LTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC04OSAgIChoZXgpCQlFY2hvc3RhciBUZWNobm9sb2dpZXMgQ29ycAorMDAwODg5ICAgICAoYmFzZSAxNikJCUVjaG9zdGFyIFRlY2hub2xvZ2llcyBDb3JwCisJCQkJOTQgSW52ZXJuZXNzIENpcmNsZQorCQkJCUVuZ2xld29vZCBDTyA4MDExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtOEEgICAoaGV4KQkJTWluZHNAV29yaworMDAwODhBICAgICAoYmFzZSAxNikJCU1pbmRzQFdvcmsKKwkJCQkxNTU1MCBSb2NrZmllbGQgQmx2ZC4gU3VpdGUgQworCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtOEIgICAoaGV4KQkJVHJvcGljIE5ldHdvcmtzIEluYy4KKzAwMDg4QiAgICAgKGJhc2UgMTYpCQlUcm9waWMgTmV0d29ya3MgSW5jLgorCQkJCTEzNSBNaWNoZWFsIENvd3BsYW5kIERyaXZlCisJCQkJT3R0YXdhIE9udGFyaW8gSzJNMkU5CisJCQkJQ0FOQURBCisKKzAwLTA4LThDICAgKGhleCkJCVF1YW50YSBOZXR3b3JrIFN5c3RlbXMgSW5jLgorMDAwODhDICAgICAoYmFzZSAxNikJCVF1YW50YSBOZXR3b3JrIFN5c3RlbXMgSW5jLgorCQkJCTEzLCAxM0YsIFNlYy4gMiwgUGVpLVRvdSBSZAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC04RCAgIChoZXgpCQlTaWdtYS1MaW5rcyBJbmMuCiswMDA4OEQgICAgIChiYXNlIDE2KQkJU2lnbWEtTGlua3MgSW5jLgorCQkJCTU1MC0xIEhpZ2FzaGlhc2FrYXdhLWNobywKKwkJCQlIYWNoaW9qaS1zaGksCisJCQkJVG9reW8gIDE5My04NTUwCisJCQkJSkFQQU4KKworMDAtMDgtOEUgICAoaGV4KQkJTmlob24gQ29tcHV0ZXIgQ28uLCBMdGQuCiswMDA4OEUgICAgIChiYXNlIDE2KQkJTmlob24gQ29tcHV0ZXIgQ28uLCBMdGQuCisJCQkJMzYtOCBIaWdhc2hpdGFtYWNoaQorCQkJCUhhbWFtYXRzdSBTaGl6dW9rYSA0MzAtMDkxNQorCQkJCUpBUEFOCisKKzAwLTA4LThGICAgKGhleCkJCUFEVkFOQ0VEIERJR0lUQUwgVEVDSE5PTE9HWQorMDAwODhGICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIERJR0lUQUwgVEVDSE5PTE9HWQorCQkJCUFEVCBCTERHLiwzLTMsIFlBTkdKQUUtRE9ORywKKwkJCQlTRU9DSE8tR1UsCisJCQkJU0VPVUwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC05MCAgIChoZXgpCQlBVklMSU5LUyBTQQorMDAwODkwICAgICAoYmFzZSAxNikJCUFWSUxJTktTIFNBCisJCQkJRXRpYyBDZW50ZXIgLSBDUyA3NyA3MjkKKwkJCQk5IHJ1ZSBkZXMgQ2hhcm1pbGxlcworCQkJCUNlc3NvbiBTZXZpZ25lIENlZGV4IEZSQU5DRSAzNTU3NworCQkJCUZSQU5DRQorCiswMC0wOC05MSAgIChoZXgpCQlMeWFuIEluYy4KKzAwMDg5MSAgICAgKGJhc2UgMTYpCQlMeWFuIEluYy4KKwkJCQk1Ri0xLCBOTy41MSwgU0VDLjIsIEtFRUxVTkcgUkQuCisJCQkJVEFJUEVJICAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA4LTkyICAgKGhleCkJCUVNIFNvbHV0aW9ucworMDAwODkyICAgICAoYmFzZSAxNikJCUVNIFNvbHV0aW9ucworCQkJCTEwMSBIeWRlIFJkCisJCQkJWWVyb25nYSBCcmlzYmFuZSwgUUxEIDQxMDQKKwkJCQlBVVNUUkFMSUEKKworMDAtMDgtOTMgICAoaGV4KQkJTEUgSU5GT1JNQVRJT04gQ09NTVVOSUNBVElPTiBJTkMuCiswMDA4OTMgICAgIChiYXNlIDE2KQkJTEUgSU5GT1JNQVRJT04gQ09NTVVOSUNBVElPTiBJTkMuCisJCQkJUm0sIDQ1MDEsIERBLURvbmcgQ2h1bmdhbmcgQ2lyY3VsYXRpb24gQworCQkJCTEyNTggS3VybyBCb24tRG9uZywgS3Vyby1LdSwKKwkJCQlTZW91bCAgMTUyLTcyMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC05NCAgIChoZXgpCQlJbm5vVklTSU9OIE11bHRpbWVkaWEgTHRkLgorMDAwODk0ICAgICAoYmFzZSAxNikJCUlubm9WSVNJT04gTXVsdGltZWRpYSBMdGQuCisJCQkJUm0gNjA4LCA2L0YgVGlucyBFbnRlcnByaXNlcyBDZW50cmUsCisJCQkJNzc3IExhaSBDaGkgS29rIFJvYWQsCisJCQkJS293bG9vbiwgIAorCQkJCUhPTkcgS09ORworCiswMC0wOC05NSAgIChoZXgpCQlESVJDIFRlY2hub2xvZ2llIEdtYkggJiBDby5LRworMDAwODk1ICAgICAoYmFzZSAxNikJCURJUkMgVGVjaG5vbG9naWUgR21iSCAmIENvLktHCisJCQkJQm9yc2lnc3RyLiAxMworCQkJCVJhdGluZ2VuIE5SVyA0MDg4MAorCQkJCUdFUk1BTlkKKworMDAtMDgtOTYgICAoaGV4KQkJUHJpbnRyb25peCwgSW5jLgorMDAwODk2ICAgICAoYmFzZSAxNikJCVByaW50cm9uaXgsIEluYy4KKwkJCQkxNDYwMCBNeWZvcmQgUmQuCisJCQkJUC5PLiBCb3ggMTk1NTkKKwkJCQlJcnZpbmUgQ2FsaWZvcm5pYSA5MjYyMy05NTU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC05NyAgIChoZXgpCQlRdWFrZSBUZWNobm9sb2dpZXMKKzAwMDg5NyAgICAgKGJhc2UgMTYpCQlRdWFrZSBUZWNobm9sb2dpZXMKKwkJCQkyODgwIFphbmtlciBSb2FkCisJCQkJU3VpdGUgMTA0CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTk4ICAgKGhleCkJCUdpZ2FiaXQgT3B0aWNzIENvcnBvcmF0aW9uCiswMDA4OTggICAgIChiYXNlIDE2KQkJR2lnYWJpdCBPcHRpY3MgQ29ycG9yYXRpb24KKwkJCQkxMTU2IEFzdGVyIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYtNjgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtOTkgICAoaGV4KQkJTmV0YmluZCwgSW5jLgorMDAwODk5ICAgICAoYmFzZSAxNikJCU5ldGJpbmQsIEluYy4KKwkJCQk1IE1hcmluZSBWaWV3IFBsYXphCisJCQkJSG9ib2tlbiBOSiAwNzAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtOUEgICAoaGV4KQkJQWxjYXRlbCBNaWNyb2VsZWN0cm9uaWNzCiswMDA4OUEgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBNaWNyb2VsZWN0cm9uaWNzCisJCQkJRXhjZWxzaW9ybGFhbiA0NC00NgorCQkJCUItMTkzMCBaYXZhbnRlbSAgCisJCQkJQkVMR0lVTQorCiswMC0wOC05QiAgIChoZXgpCQlJQ1AgRWxlY3Ryb25pY3MgSW5jLgorMDAwODlCICAgICAoYmFzZSAxNikJCUlDUCBFbGVjdHJvbmljcyBJbmMuCisJCQkJNEYsIE5vLiAyMiwgQ2h1bmctSHNpbmcgUmQuIFNoaS1DaGkgQ2l0eQorCQkJCVRhaXBlaSBIc2llbiwgMjIxLAorCQkJCVRhaXBlaSAgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC05QyAgIChoZXgpCQlFbGVjcyBJbmR1c3RyeSBDby4sIEx0ZC4KKzAwMDg5QyAgICAgKGJhc2UgMTYpCQlFbGVjcyBJbmR1c3RyeSBDby4sIEx0ZC4KKwkJCQkxLTIyLTIzLFNoaW5zYWt1LFRha2F0c3UtS3UKKwkJCQlLYXdhc2FraSBLYW5hZ2F3YSAyMTMtMDAxNAorCQkJCUpBUEFOCisKKzAwLTA4LTlEICAgKGhleCkJCVVIRC1FbGVrdHJvbmlrCiswMDA4OUQgICAgIChiYXNlIDE2KQkJVUhELUVsZWt0cm9uaWsKKwkJCQladWVyY2hlcnN0cmFzc2UgMTIKKwkJCQlCYWRlbiBBRyA1NDAwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMDgtOUUgICAoaGV4KQkJQmVpamluZyBFbnRlci1OZXQgY28uTFRECiswMDA4OUUgICAgIChiYXNlIDE2KQkJQmVpamluZyBFbnRlci1OZXQgY28uTFRECisJCQkJTk8gMSBjb3VydHlhcmQsCisJCQkJc2h1YW5ncXVhbnB1IGppYSAxLGNoYW95YQorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTA4LTlGICAgKGhleCkJCUVGTSBOZXR3b3JrcworMDAwODlGICAgICAoYmFzZSAxNikJCUVGTSBOZXR3b3JrcworCQkJCTQwMywgNHRoIGZsb29yIEVsZWdhbmNlIDEgQmxkZy4KKwkJCQkyNS0yIEd1bWktZG9uZyBQdW5kYW5nLWd1CisJCQkJU3VuZ25hbS1zaSBLeXVuZ2dpLWRvIDQ2My04MDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtQTAgICAoaGV4KQkJU3RvdHogRmVpbm1lc3N0ZWNobmlrIEdtYkgKKzAwMDhBMCAgICAgKGJhc2UgMTYpCQlTdG90eiBGZWlubWVzc3RlY2huaWsgR21iSAorCQkJCUhlcm1hbm4tRHJlaGVyIFN0ci4gNgorCQkJCUdlcmxpbmdlbiAgNzA4MzkKKwkJCQlHRVJNQU5ZCisKKzAwLTA4LUExICAgKGhleCkJCUNOZXQgVGVjaG5vbG9neSBJbmMuCiswMDA4QTEgICAgIChiYXNlIDE2KQkJQ05ldCBUZWNobm9sb2d5IEluYy4KKwkJCQlOby4xNSwgUGFyayBBdmVudWUgSUksIFNjaWVuY2UtQmFzZWQgSW5kCisJCQkJSHNpbi1DaHUgQ2l0eSwKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC1BMiAgIChoZXgpCQlBREkgRW5naW5lZXJpbmcsIEluYy4KKzAwMDhBMiAgICAgKGJhc2UgMTYpCQlBREkgRW5naW5lZXJpbmcsIEluYy4KKwkJCQkxNzY5QSBXb3J0aCBQYXJrCisJCQkJQ2hhcmxvdHRlc3ZpbGxlIFZBIDIyOTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1BMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA4QTMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQTQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwOEE0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUE1ICAgKGhleCkJCVBlbmluc3VsYSBTeXN0ZW1zIEluYy4KKzAwMDhBNSAgICAgKGJhc2UgMTYpCQlQZW5pbnN1bGEgU3lzdGVtcyBJbmMuCisJCQkJNjkwMiBWZXJkZSBSaWRnZSBSZC4KKwkJCQlSYW5jaG8gUGFsb3MgVmVyZGVzIENBIDkwMjc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1BNiAgIChoZXgpCQlNdWx0aXdhcmUgJiBJbWFnZSBDby4sIEx0ZC4KKzAwMDhBNiAgICAgKGJhc2UgMTYpCQlNdWx0aXdhcmUgJiBJbWFnZSBDby4sIEx0ZC4KKwkJCQlTYWVkb25nIEJsZGcuIDY1LTI1LAorCQkJCTJrYSwgTmFtaGFuZywgWW91bmdkbworCQkJCVB1c2FuICA2MDYtMDMyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUE3ICAgKGhleCkJCWlMb2dpYyBJbmMuCiswMDA4QTcgICAgIChiYXNlIDE2KQkJaUxvZ2ljIEluYy4KKwkJCQlSbSMzMTgsIFRlY2hub0NvbXBsZXggQmxkZy4sIDEyNi0xNiwgNS1nCisJCQkJU2VvdWwgIDEzNi03MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtQTggICAoaGV4KQkJU3lzdGVjIENvLiwgTHRkLgorMDAwOEE4ICAgICAoYmFzZSAxNikJCVN5c3RlYyBDby4sIEx0ZC4KKwkJCQkxOSBOb2NoaWRvcmksIE5hd2EKKwkJCQlUb2thaSBBaWNoaSA0NzYtMDAwMgorCQkJCUpBUEFOCisKKzAwLTA4LUE5ICAgKGhleCkJCVNhbmdTYW5nIFRlY2hub2xvZ3ksIEluYy4KKzAwMDhBOSAgICAgKGJhc2UgMTYpCQlTYW5nU2FuZyBUZWNobm9sb2d5LCBJbmMuCisJCQkJNjQtOCwgTm9nb2stcmksIERvY2hlb2stbXl1biwKKwkJCQlHd2FuZ2p1IEt5b25nZ2ktZG8gNDY0LTg4MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1BQSAgIChoZXgpCQlLQVJBTQorMDAwOEFBICAgICAoYmFzZSAxNikJCUtBUkFNCisJCQkJOTgtMywgIEhhbmthbmdybyAyLUtBLCBZb25nc2FuCisJCQkJU2VvdWwgIDE0MC0wMTIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtQUIgICAoaGV4KQkJRW5lckxpbnguY29tLCBJbmMuCiswMDA4QUIgICAgIChiYXNlIDE2KQkJRW5lckxpbnguY29tLCBJbmMuCisJCQkJMzk2NSBTb3V0aCBXb29kaGlsbCBMYW5lCisJCQkJTmV3IEJlcmxpbiBXSSA1MzE1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQUMgICAoaGV4KQkJRWx0cm9tYXQgR21iSAorMDAwOEFDICAgICAoYmFzZSAxNikJCUVsdHJvbWF0IEdtYkgKKwkJCQlIZXJmb3JkZXIgU3RyLiAyNDktMjUxCisJCQkJTGVvcG9sZHNo9mhlIE5vcmRyaGVpbi1XZXN0ZmFsZW4gMzM4MTgKKwkJCQlHRVJNQU5ZCisKKzAwLTA4LUFEICAgKGhleCkJCVRveW8tTGlueCBDby4sIEx0ZC4KKzAwMDhBRCAgICAgKGJhc2UgMTYpCQlUb3lvLUxpbnggQ28uLCBMdGQuCisJCQkJSGlyYWthd2EtQ2hvLCBDaGl5YWRhLWt1LAorCQkJCVRva3lvICAxMDItMDA5MworCQkJCUpBUEFOCisKKzAwLTA4LUFFICAgKGhleCkJCVBhY2tldEZyb250IEludGVybmF0aW9uYWwgQUIKKzAwMDhBRSAgICAgKGJhc2UgMTYpCQlQYWNrZXRGcm9udCBJbnRlcm5hdGlvbmFsIEFCCisJCQkJQm94IDEyMTcKKwkJCQlLaXN0YSAgMTY0MjgKKwkJCQlTV0VERU4KKworMDAtMDgtQUYgICAoaGV4KQkJTm92YXRlYyBDb3Jwb3JhdGlvbgorMDAwOEFGICAgICAoYmFzZSAxNikJCU5vdmF0ZWMgQ29ycG9yYXRpb24KKwkJCQkyLTE5LTIgTmlzaGktR290YW5kYQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAzMQorCQkJCUpBUEFOCisKKzAwLTA4LUIwICAgKGhleCkJCUJLdGVsIGNvbW11bmljYXRpb25zIEdtYkgKKzAwMDhCMCAgICAgKGJhc2UgMTYpCQlCS3RlbCBjb21tdW5pY2F0aW9ucyBHbWJICisJCQkJQmVuenN0cmFzc2UgNAorCQkJCTQxODM2IEh1ZWNrZWxob3Zlbi1CYWFsIE5SVyA0MTgzNgorCQkJCUdFUk1BTlkKKworMDAtMDgtQjEgICAoaGV4KQkJUHJvUXVlbnQgU3lzdGVtcworMDAwOEIxICAgICAoYmFzZSAxNikJCVByb1F1ZW50IFN5c3RlbXMKKwkJCQk2NyBGb3Jlc3QgU3RyZWV0CisJCQkJTWFybGJvcm8gTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUIyICAgKGhleCkJCVNIRU5aSEVOIENPTVBBU1MgVEVDSE5PTE9HWSBERVZFTE9QTUVOVCBDTy4sTFRECiswMDA4QjIgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gQ09NUEFTUyBURUNITk9MT0dZIERFVkVMT1BNRU5UIENPLixMVEQKKwkJCQk0dGggRmxvb3IsQnVpbGRpbmcgMjA1LFRhaVJhbiBJbmR1c3RyeQorCQkJCSZUcmFkZSBQYXJrLEZ1dGlhbiBEaXN0cmljdCxTaGVuemhlbgorCQkJCVNoZW56aGVuIEdVQU5HRE9ORyA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0wOC1CMyAgIChoZXgpCQlGYXN0d2VsCiswMDA4QjMgICAgIChiYXNlIDE2KQkJRmFzdHdlbAorCQkJCVByb2Zzb3l1em5heWEgMTA4LAorCQkJCU1vc2NvdyAgMTE3MzEzCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTA4LUI0ICAgKGhleCkJCVNZU1BPTAorMDAwOEI0ICAgICAoYmFzZSAxNikJCVNZU1BPTAorCQkJCTR0aCBGbCxTWVNQT0wgQi9ELCBCYW5nYmFlIDQgRG9uZywgU2VvY2gKKwkJCQlTZW91bCAgMTM3LTA2NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1CNSAgIChoZXgpCQlUQUkgR1VFTiBFTlRFUlBSSVNFIENPLiwgTFRECiswMDA4QjUgICAgIChiYXNlIDE2KQkJVEFJIEdVRU4gRU5URVJQUklTRSBDTy4sIExURAorCQkJCU4wLjQwMCwgMTBGLTcgSFVBTlBFSSBSRC4sCisJCQkJQ0hVTkcgTEkgQ0lUWSBUVywgUk9DLgorCQkJCUNIVU5HIExJICAzMjAtNjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA4LUI2ICAgKGhleCkJCVJvdXRlRnJlZSwgSW5jLgorMDAwOEI2ICAgICAoYmFzZSAxNikJCVJvdXRlRnJlZSwgSW5jLgorCQkJCTM0MDAgSGlsbHZpZXcgQXZlLiBCbGRnLiA1CisJCQkJUGFsbyBBbHRvIENBIDk0MzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1CNyAgIChoZXgpCQlISVQgSW5jb3Jwb3JhdGVkCiswMDA4QjcgICAgIChiYXNlIDE2KQkJSElUIEluY29ycG9yYXRlZAorCQkJCTRGLCA4LCBMYW5lIDIzNSwgUGFvLUNoaWFvIFJvYWQsCisJCQkJU2hpbiBUaWVuIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA4LUI4ICAgKGhleCkJCUUuRi4gSm9obnNvbgorMDAwOEI4ICAgICAoYmFzZSAxNikJCUUuRi4gSm9obnNvbgorCQkJCTI5OSBKb2huc29uIEF2ZS4KKwkJCQlQLk8uIEJveCAxMjQ5CisJCQkJV2FzZWNhIE1OIDU2MDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1COSAgIChoZXgpCQlLQU9OIE1FRElBIENvLiwgTHRkLgorMDAwOEI5ICAgICAoYmFzZSAxNikJCUtBT04gTUVESUEgQ28uLCBMdGQuCisJCQkJIzExMyBJbWFlIDEtRG9uZywgQnVuZGFuZy1HdQorCQkJCVN1bmduYW0tQ2l0eSBLeXVuZ2tpLURvIDQ2My04MjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtQkEgICAoaGV4KQkJRXJza2luZSBTeXN0ZW1zIEx0ZAorMDAwOEJBICAgICAoYmFzZSAxNikJCUVyc2tpbmUgU3lzdGVtcyBMdGQKKwkJCQlTYWx0ZXIgUm9hZAorCQkJCUVhc3RmaWVsZCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCVNjYXJib3JvdWdoIE5vcnRoIFlvcmtzaGlyZSBZTzExIDNEVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA4LUJCICAgKGhleCkJCU5ldEV4Y2VsbAorMDAwOEJCICAgICAoYmFzZSAxNikJCU5ldEV4Y2VsbAorCQkJCTE1Mzc1IEJhcnJhbmNhIFBrd3ksICNFLTEwNgorCQkJCUlydmluZSBDQSA5MjY3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQkMgICAoaGV4KQkJSWxldm8gQUIKKzAwMDhCQyAgICAgKGJhc2UgMTYpCQlJbGV2byBBQgorCQkJCUJveCAxNTYxCisJCQkJS2FybHN0YWQgVuRybWxhbmQgUy02NTEgMjEKKwkJCQlTV0VERU4KKworMDAtMDgtQkQgICAoaGV4KQkJVEVQRy1VUworMDAwOEJEICAgICAoYmFzZSAxNikJCVRFUEctVVMKKwkJCQkxMDAgU2ltcGxleCBEcml2ZQorCQkJCVdlc3RtaW5zdGVyIE1BIDAxNDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1CRSAgIChoZXgpCQlYRU5QQUsgTVNBIEdyb3VwCiswMDA4QkUgICAgIChiYXNlIDE2KQkJWEVOUEFLIE1TQSBHcm91cAorCQkJCUNhcmUgb2Y6IEFnaWxlbnQgVGVjaG5vbG9naWVzCisJCQkJV2hpdGUgSG91c2UgUm9hZAorCQkJCUlwc3dpY2ggU3VmZm9sayBJcDEgNVBCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDgtQkYgICAoaGV4KQkJQXB0dXMgRWxla3Ryb25payBBQgorMDAwOEJGICAgICAoYmFzZSAxNikJCUFwdHVzIEVsZWt0cm9uaWsgQUIKKwkJCQlGTyBQZXRlcnNvbnMgRyA2CisJCQkJNDIxIDMxIFYuIEZyb2x1bmRhCisJCQkJU1dFREVOCisKKzAwLTA4LUMwICAgKGhleCkJCUFTQSBTWVNURU1TCiswMDA4QzAgICAgIChiYXNlIDE2KQkJQVNBIFNZU1RFTVMKKwkJCQlTMjQ1IEtvcmVhIE1hcml0aW1lIFVuaXZlcnNpdHksIDEgRG9uZ3NhCisJCQkJQnVzYW4gQnVzYW4gTWV0cm9wb2xpdGFuIENpdHkgNjA2LTc5MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1DMSAgIChoZXgpCQlBdmlzdGFyIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCiswMDA4QzEgICAgIChiYXNlIDE2KQkJQXZpc3RhciBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorCQkJCTE1ODUxIERhbGxhcyBQa3d5LgorCQkJCVN1aXRlIDYwMAorCQkJCUFkZGlzb24gVFggNzUwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUMyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDhDMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQzMgICAoaGV4KQkJQ29udGV4IEEvUworMDAwOEMzICAgICAoYmFzZSAxNikJCUNvbnRleCBBL1MKKwkJCQlTdmFuZXZhbmcgMgorCQkJCUFsbGVyb2QgREsgMzQ1MAorCQkJCURFTk1BUksKKworMDAtMDgtQzQgICAoaGV4KQkJSGlrYXJpIENvLixMdGQuCiswMDA4QzQgICAgIChiYXNlIDE2KQkJSGlrYXJpIENvLixMdGQuCisJCQkJNDE4LTQgTWluYW1pbm9kYSBDaGlnZW5vYnUtY2hvCisJCQkJT25zZW4tZ3VuIEVoaW1lIDc5MS0wMjk3CisJCQkJSkFQQU4KKworMDAtMDgtQzUgICAoaGV4KQkJTGlvbnRlY2ggQ28uLCBMdGQuCiswMDA4QzUgICAgIChiYXNlIDE2KQkJTGlvbnRlY2ggQ28uLCBMdGQuCisJCQkJMzA2LCBXb295b3VuZyBUZWNobm8gQ2VudGVyLCAyNzMtMTUsCisJCQkJU3VuZ3N1MmdhLTNkb25nLCBTdW5nZG9uZy1rdSwKKwkJCQlTZW91bCAgMTMzLTgzMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1DNiAgIChoZXgpCQlQaGlsaXBzIENvbnN1bWVyIENvbW11bmljYXRpb25zCiswMDA4QzYgICAgIChiYXNlIDE2KQkJUGhpbGlwcyBDb25zdW1lciBDb21tdW5pY2F0aW9ucworCQkJCVJvdXRlIGQnQW5nZXJzCisJCQkJNzIwODEgTGUgTWFucworCQkJCUNlZGV4IDkgIAorCQkJCUZSQU5DRQorCiswMC0wOC1DNyAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMDhDNyAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUM4ICAgKGhleCkJCVNvbmV0aWNvbSwgSW5jLgorMDAwOEM4ICAgICAoYmFzZSAxNikJCVNvbmV0aWNvbSwgSW5jLgorCQkJCTQzMjUgV29vZGxhbmQgUGFyayBEcml2ZSwgU3VpdGUgMTAyCisJCQkJV2VzdCBNZWxib3VybmUgRmxvcmlkYSAzMjkwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQzkgICAoaGV4KQkJVGVjaG5pU2F0IERpZ2l0YWwgR21iSAorMDAwOEM5ICAgICAoYmFzZSAxNikJCVRlY2huaVNhdCBEaWdpdGFsIEdtYkgKKwkJCQlHZXdlcmJlcGFyayBNZXJiaXR6IE5yLiA1CisJCQkJRHJlc2RlbiBTYXhvbnkgMDExNTYKKwkJCQlHRVJNQU5ZCisKKzAwLTA4LUNBICAgKGhleCkJCVR3aW5IYW4gVGVjaG5vbG9neSBDby4sTHRkCiswMDA4Q0EgICAgIChiYXNlIDE2KQkJVHdpbkhhbiBUZWNobm9sb2d5IENvLixMdGQKKwkJCQkxM0YtNixObyA3OSxTZWMgMSxIc2luIFRhaSBXdSBSRC4sSHNpLUNoCisJCQkJVGFpcGVpIEhzaWVuICAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA4LUNCICAgKGhleCkJCVpldGEgQnJvYWRiYW5kIEluYy4KKzAwMDhDQiAgICAgKGJhc2UgMTYpCQlaZXRhIEJyb2FkYmFuZCBJbmMuCisJCQkJNjYwIFZpc3RhIFdheSwgU3VpdGUgQgorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1DQyAgIChoZXgpCQlSZW1vdGVjLCBJbmMuCiswMDA4Q0MgICAgIChiYXNlIDE2KQkJUmVtb3RlYywgSW5jLgorCQkJCTExNCBVbmlvbiBWYWxsZXkgUm9hZAorCQkJCU9hayBSaWRnZSBUTiAzNzgzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQ0QgICAoaGV4KQkJV2l0aC1OZXQgSW5jCiswMDA4Q0QgICAgIChiYXNlIDE2KQkJV2l0aC1OZXQgSW5jCisJCQkJNEZMIEImQiBCL0QgMTQwMy00CisJCQkJS3dhbmd5YW5nMS1kb25nIERvbmdhbi1rdQorCQkJCUFueWFuZyBLeW9uZ2dpIDQzMS0wNjEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtQ0UgICAoaGV4KQkJSVBNb2JpbGVOZXQgSW5jLgorMDAwOENFICAgICAoYmFzZSAxNikJCUlQTW9iaWxlTmV0IEluYy4KKwkJCQkxMTkwOSBFIFRlbGVncmFwaCBSZC4KKwkJCQlTYW50YSBGZSBTcHJpbmdzIENBIDkwNjcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1DRiAgIChoZXgpCQlOaXBwb24gS29laSBQb3dlciBTeXN0ZW1zIENvLiwgTHRkLgorMDAwOENGICAgICAoYmFzZSAxNikJCU5pcHBvbiBLb2VpIFBvd2VyIFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJMjk0MCBTaGlueW9zaGlkYS1jaG8KKwkJCQlLb2hva3Uta3UgWW9rb2hhbWEgMjIzLTg1MDYKKwkJCQlKQVBBTgorCiswMC0wOC1EMCAgIChoZXgpCQlNdXNhc2hpIEVuZ2luZWVyaW5nIENvLiwgTFRELgorMDAwOEQwICAgICAoYmFzZSAxNikJCU11c2FzaGkgRW5naW5lZXJpbmcgQ28uLCBMVEQuCisJCQkJMy0xMS03LCBOaXNoaS1zaGltYmFzaGkKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA1LTAwMDMKKwkJCQlKQVBBTgorCiswMC0wOC1EMSAgIChoZXgpCQlLQVJFTCBJTkMuCiswMDA4RDEgICAgIChiYXNlIDE2KQkJS0FSRUwgSU5DLgorCQkJCU9SR0FOSVpFIFNBTkFZSSBCT0xHRVNJCisJCQkJR0FaTkVMSUxFUiBDQUQgTk86MTAgIFNJTkNBTgorCQkJCUFOS0FSQSAgMDY5MzUKKwkJCQlUVVJLRVkKKworMDAtMDgtRDIgICAoaGV4KQkJWk9PTSBOZXR3b3JrcyBJbmMuCiswMDA4RDIgICAgIChiYXNlIDE2KQkJWk9PTSBOZXR3b3JrcyBJbmMuCisJCQkJMTNGLFhpbkx1RGFvIEJ1aWxkaW5nLE5vLjExNzUsTmFuc2hhbiBSbworCQkJCVNoZW4gWmhlbiBHdWFuZ0RvbmcgUHJvdmluY2UgNTE4MDUyCisJCQkJQ0hJTkEKKworMDAtMDgtRDMgICAoaGV4KQkJSGVyY3VsZXMgVGVjaG5vbG9naWVzIFMuQS4KKzAwMDhEMyAgICAgKGJhc2UgMTYpCQlIZXJjdWxlcyBUZWNobm9sb2dpZXMgUy5BLgorCQkJCVBsYWNlIGRlIGwn6XRvaWxlCisJCQkJQ2FyZW50b2lyIEJyZXRhZ25lIDU2OTEwCisJCQkJRlJBTkNFCisKKzAwLTA4LUQ0ICAgKGhleCkJCUluZW9RdWVzdCBUZWNobm9sb2dpZXMsIEluYworMDAwOEQ0ICAgICAoYmFzZSAxNikJCUluZW9RdWVzdCBUZWNobm9sb2dpZXMsIEluYworCQkJCTE5MzEgV2FzaGluZ3RvbiBTdAorCQkJCUNhbnRvbiBNYXNzYWNodXNldHRzIDAyMDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1ENSAgIChoZXgpCQlWYW5ndWFyZCBOZXR3b3JrcyBTb2x1dGlvbnMsIExMQworMDAwOEQ1ICAgICAoYmFzZSAxNikJCVZhbmd1YXJkIE5ldHdvcmtzIFNvbHV0aW9ucywgTExDCisJCQkJMjUgRm9yYmVzIEJvdWxldmFyZAorCQkJCUZveGJvcm8gTUEgMDIwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUQ2ICAgKGhleCkJCUhBU1NORVQgSW5jLgorMDAwOEQ2ICAgICAoYmFzZSAxNikJCUhBU1NORVQgSW5jLgorCQkJCTJGIE1pc3N5MjAwMCBCL0QgNzI1LCBTb29TZW8tRG9uZywKKwkJCQlLYW5nbmFtLUt1CisJCQkJU2VvdWwgIDEzNS03NTcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtRDcgICAoaGV4KQkJSE9XIENPUlBPUkFUSU9OCiswMDA4RDcgICAgIChiYXNlIDE2KQkJSE9XIENPUlBPUkFUSU9OCisJCQkJMS0xMS0xNyBDaGl5b2RhCisJCQkJU2FnYW1paGFyYSBLYW5hZ2F3YSAyMjktMDAzNworCQkJCUpBUEFOCisKKzAwLTA4LUQ4ICAgKGhleCkJCURvd2tleSBNaWNyb3dhdmUKKzAwMDhEOCAgICAgKGJhc2UgMTYpCQlEb3drZXkgTWljcm93YXZlCisJCQkJNDgyMiBNY0dyYXRoIFN0cmVldAorCQkJCVZlbnR1cmEgQ2EgOTMwMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUQ5ICAgKGhleCkJCU1pdGFkZW5zaGkgQ28uLExURAorMDAwOEQ5ICAgICAoYmFzZSAxNikJCU1pdGFkZW5zaGkgQ28uLExURAorCQkJCTEtOC02IEZ1cnVpY2hpIEFzYW1pbmFtaWt1CisJCQkJSGlyb3NoaW1hICA3MzEtMDEyMworCQkJCUpBUEFOCisKKzAwLTA4LURBICAgKGhleCkJCVNvZmFXYXJlIFRlY2hub2xvZ2llcyBMdGQuCiswMDA4REEgICAgIChiYXNlIDE2KQkJU29mYVdhcmUgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQkzIEhpbGF6b24gU3QuCisJCQkJUmFtYXQtR2FuICA1MjUyMgorCQkJCUlTUkFFTAorCiswMC0wOC1EQiAgIChoZXgpCQlDb3JyaWdlbnQgU3lzdGVtcworMDAwOERCICAgICAoYmFzZSAxNikJCUNvcnJpZ2VudCBTeXN0ZW1zCisJCQkJMTI2IFlpZ2FsIEFsb24KKwkJCQlUZWwgQXZpdiAgNjc0NDMKKwkJCQlJU1JBRUwKKworMDAtMDgtREMgICAoaGV4KQkJV2l6bmV0CiswMDA4REMgICAgIChiYXNlIDE2KQkJV2l6bmV0CisJCQkJNUYgU2ltbXRlY2ggYmxkZy4sIDIyOC0zLAorCQkJCU5vbnlodW4sIEthbmduYW0KKwkJCQlTZW91bCAgMTM1LTgzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1ERCAgIChoZXgpCQlUZWxlbmEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDhERCAgICAgKGJhc2UgMTYpCQlUZWxlbmEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk2NzI1IE1lc2EgUmlkZ2UgUm9hZAorCQkJCVN1aXRlIDIyNgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtREUgICAoaGV4KQkJM1VQIFN5c3RlbXMKKzAwMDhERSAgICAgKGJhc2UgMTYpCQkzVVAgU3lzdGVtcworCQkJCTYgUmVzdWx0cyBXYXkKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LURGICAgKGhleCkJCUFsaXN0ZWwgSW5jLgorMDAwOERGICAgICAoYmFzZSAxNikJCUFsaXN0ZWwgSW5jLgorCQkJCU1pZG9yaSBCbGRnLiAyRgorCQkJCTEtNS0yMCBOYWthZ2F3YSwgVHN1enVraS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyMi0wMDAxCisJCQkJSkFQQU4KKworMDAtMDgtRTAgICAoaGV4KQkJQVRPIFRlY2hub2xvZ3kgTHRkLgorMDAwOEUwICAgICAoYmFzZSAxNikJCUFUTyBUZWNobm9sb2d5IEx0ZC4KKwkJCQlSbS4gMTMxNC0xMzQ2LCBCbG9jayBCMSwgWWF1IFRvbmcgSW5kLiBDCisJCQkJWWF1IFRvbmcsIEtvd2xvb24sCisJCQkJSG9uZyBLb25nICAKKwkJCQlIT05HIEtPTkcKKworMDAtMDgtRTEgICAoaGV4KQkJQmFyaXggQUcKKzAwMDhFMSAgICAgKGJhc2UgMTYpCQlCYXJpeCBBRworCQkJCVdpZXNlbnN0ci4gMTcKKwkJCQladWVyaWNoIFpIIDgwMDgKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wOC1FMiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA4RTIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLUJsZCBNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRTMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwOEUzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1CbGQgTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUU0ICAgKGhleCkJCUVudmVuZXJneSBJbmMKKzAwMDhFNCAgICAgKGJhc2UgMTYpCQlFbnZlbmVyZ3kgSW5jCisJCQkJNjMwNyBDYXJwaW50ZXJpYSBBdmUKKwkJCQlDYXJwaW50ZXJpYSBDQSA5MzAxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRTUgICAoaGV4KQkJSURLIENvcnBvcmF0aW9uCiswMDA4RTUgICAgIChiYXNlIDE2KQkJSURLIENvcnBvcmF0aW9uCisJCQkJNi03LTEwCisJCQkJQ2h1by1SaW5rYW4KKwkJCQlZYW1hdG8gS2FuYWdhd2EgMjQyLTAwMDcKKwkJCQlKQVBBTgorCiswMC0wOC1FNiAgIChoZXgpCQlMaXR0bGVmZWV0CiswMDA4RTYgICAgIChiYXNlIDE2KQkJTGl0dGxlZmVldAorCQkJCTEzMDAwIEdyZWdnIFN0cmVldAorCQkJCVBvd2F5IENhbGlmb3JuaWEgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUU3ICAgKGhleCkJCVNISSBDb250cm9sU3lzdGVtcyxMdGQuCiswMDA4RTcgICAgIChiYXNlIDE2KQkJU0hJIENvbnRyb2xTeXN0ZW1zLEx0ZC4KKwkJCQkxOSxOYXR1c2ltYQorCQkJCVlva29zdWthIEthbmFnYXdhIDIzNy04NTU1CisJCQkJSkFQQU4KKworMDAtMDgtRTggICAoaGV4KQkJRXhjZWwgTWFzdGVyIEx0ZC4KKzAwMDhFOCAgICAgKGJhc2UgMTYpCQlFeGNlbCBNYXN0ZXIgTHRkLgorCQkJCVJvb20gRCwgMy9GLiwgWWV1bmcgWWl1IENodW5nIChOby4gOCkgSW5kLiBCbGRnLgorCQkJCTIwIFdhbmcgSG9pIFJvYWQKKwkJCQlLb3dsb29uIEJheSAKKwkJCQlIT05HIEtPTkcKKworMDAtMDgtRTkgICAoaGV4KQkJTmV4dEdpZworMDAwOEU5ICAgICAoYmFzZSAxNikJCU5leHRHaWcKKwkJCQk5ODIwLUIgVG93bmUgQ2VudHJlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1FQSAgIChoZXgpCQlNb3Rpb24gQ29udHJvbCBFbmdpbmVlcmluZywgSW5jCiswMDA4RUEgICAgIChiYXNlIDE2KQkJTW90aW9uIENvbnRyb2wgRW5naW5lZXJpbmcsIEluYworCQkJCTExMzgwIFdoaXRlIFJvY2sgUm9hZAorCQkJCVJhbmNobyBDb3Jkb3ZhIENBIDk1NzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1FQiAgIChoZXgpCQlST01XaW4gQ28uLEx0ZC4KKzAwMDhFQiAgICAgKGJhc2UgMTYpCQlST01XaW4gQ28uLEx0ZC4KKwkJCQk0MDYgT21peWFPaHRha2EgQmxkZy4gMS0xMDMKKwkJCQlLaXNoaWtpLWNobworCQkJCVNhaXRhbWEgIDMzMC0wODQzCisJCQkJSkFQQU4KKworMDAtMDgtRUMgICAoaGV4KQkJT3B0aWNhbCBab251IENvcnBvcmF0aW9uCiswMDA4RUMgICAgIChiYXNlIDE2KQkJT3B0aWNhbCBab251IENvcnBvcmF0aW9uCisJCQkJMTUwMjggRGVsYW5vIFN0cmVldAorCQkJCVZhbiBOdXlzIENBIDkxNDExLTIwMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUVEICAgKGhleCkJCVNUJlQgSW5zdHJ1bWVudCBDb3JwLgorMDAwOEVEICAgICAoYmFzZSAxNikJCVNUJlQgSW5zdHJ1bWVudCBDb3JwLgorCQkJCTE2IFNoaW5nLUdvbmcgUm9hZCwgWXVuZy1LdW5nIEluZHVzdHJpYWwKKwkJCQlZdW5nLUt1bmcgVGFpbmFuIDcxMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtRUUgICAoaGV4KQkJTG9naWMgUHJvZHVjdCBEZXZlbG9wbWVudAorMDAwOEVFICAgICAoYmFzZSAxNikJCUxvZ2ljIFByb2R1Y3QgRGV2ZWxvcG1lbnQKKwkJCQk0MTEgV2FzaGluZ3RvbiBBdmUgTi4gU3VpdGUgMTAxCisJCQkJTWlubmVhcG9saXMgTWlubmVzb3RhIDU1NDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1FRiAgIChoZXgpCQlESUJBTCxTLkEuCiswMDA4RUYgICAgIChiYXNlIDE2KQkJRElCQUwsUy5BLgorCQkJCUFzdGludHplIEthbGVhIDI0CisJCQkJRGVyaW8gVml6Y2F5YSA0ODE2MAorCQkJCVNQQUlOCisKKzAwLTA4LUYwICAgKGhleCkJCU5leHQgR2VuZXJhdGlvbiBTeXN0ZW1zLCBJbmMuCiswMDA4RjAgICAgIChiYXNlIDE2KQkJTmV4dCBHZW5lcmF0aW9uIFN5c3RlbXMsIEluYy4KKwkJCQlQTyBCT1ggMzEyMDUKKwkJCQlEYXl0b24gT0ggNDU0MzctMDIwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRjEgICAoaGV4KQkJVm9sdGFpcmUKKzAwMDhGMSAgICAgKGJhc2UgMTYpCQlWb2x0YWlyZQorCQkJCTkgSGFtZW5vZmltIHN0LgorCQkJCUhlcnplbGlhICA0NjcyNQorCQkJCUlTUkFFTAorCiswMC0wOC1GMiAgIChoZXgpCQlDJlMgVGVjaG5vbG9neQorMDAwOEYyICAgICAoYmFzZSAxNikJCUMmUyBUZWNobm9sb2d5CisJCQkJQyZTIFZlbnR1cmUgQmxkZy4sIE5vbkh5dW4tRG9uZywKKwkJCQkyMjEtMSwgR2FuZ05hbS1HdQorCQkJCVNFT1VMICAxMzUtODI5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUYzICAgKGhleCkJCVdBTlkKKzAwMDhGMyAgICAgKGJhc2UgMTYpCQlXQU5ZCisJCQkJQ0VFSSBDYXAgQWxwaGEKKwkJCQlBdmVudWUgZGUgbCdFdXJvcGUsIENsYXBpZXJzCisJCQkJTW9udHBlbGxpZXIgSGVyYXVsdCAzNDk0MAorCQkJCUZSQU5DRQorCiswMC0wOC1GNCAgIChoZXgpCQlCbHVldGFrZSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwOEY0ICAgICAoYmFzZSAxNikJCUJsdWV0YWtlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNkYsIE5vLiAzMywgTGFuZSAxNTUsIFNlYy4gMywgUGVpIFNoZW4gUgorCQkJCVNhZW4gS2VuZyBTaGlhbmcsIFRhaXBlaQorCQkJCVRhaXBlaSBUYWl3YW4gMjIyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC1GNSAgIChoZXgpCQlZRVNURUNITk9MT0dZIENvLixMdGQuCiswMDA4RjUgICAgIChiYXNlIDE2KQkJWUVTVEVDSE5PTE9HWSBDby4sTHRkLgorCQkJCTR0aCBGTCBLeXVuZy1BbSBCL0QgMTU3LTI3IFNhbXN1bmctRG9uZywKKwkJCQlTZW91bCAxMzUtMDkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUY2ICAgKGhleCkJCVN1bWl0b21vIEVsZWN0cmljIFN5c3RlbSBTb2x1dGlvbnMgQ28uLEx0ZC4KKzAwMDhGNiAgICAgKGJhc2UgMTYpCQlTdW1pdG9tbyBFbGVjdHJpYyBTeXN0ZW0gU29sdXRpb25zIENvLixMdGQuCisJCQkJc2hpbWF5YSAxLTEtMywga29ub2hhbmEta3UKKwkJCQlPc2FrYSBjaXR5IE9TQUtBIDExMi0wMDE0CisJCQkJSkFQQU4KKworMDAtMDgtRjcgICAoaGV4KQkJSGl0YWNoaSBMdGQsIFNlbWljb25kdWN0b3IgJmFtcDsgSW50ZWdyYXRlZCBDaXJjdWl0cyBHcgorMDAwOEY3ICAgICAoYmFzZSAxNikJCUhpdGFjaGkgTHRkLCBTZW1pY29uZHVjdG9yICZhbXA7IEludGVncmF0ZWQgQ2lyY3VpdHMgR3IKKwkJCQkyMC0xIEpvc3VpaG9uLWNob3UgNWNob21lCisJCQkJS29kYWlyYS1zaGkgVG9reW8gMTg3LTg1ODgKKwkJCQlKQVBBTgorCiswMC0wOC1GOCAgIChoZXgpCQlHdWFyZGFsbCBMdGQKKzAwMDhGOCAgICAgKGJhc2UgMTYpCQlHdWFyZGFsbCBMdGQKKwkJCQlMb2NoZW5kIEluZHVzdHJpYWwgRXN0YXRlLAorCQkJCU5ld2JyaWRnZQorCQkJCUVkaW5idXJnaCBTY290bGFuZCBFSDI4IDhQTAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA4LUY5ICAgKGhleCkJCUVtZXJzb24gTmV0d29yayBQb3dlcgorMDAwOEY5ICAgICAoYmFzZSAxNikJCUVtZXJzb24gTmV0d29yayBQb3dlcgorCQkJCTI5MDAgUy4gRGlhYmxvIFdheSBTdWl0ZSAxOTAKKwkJCQlUZW1wZSBBWiA4NTI4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRkEgICAoaGV4KQkJS2FybCBFLkJyaW5rbWFubiBHbWJICiswMDA4RkEgICAgIChiYXNlIDE2KQkJS2FybCBFLkJyaW5rbWFubiBHbWJICisJCQkJRm9lcnN0ZXJ3ZWcgMzYtMzgKKwkJCQlCYXJudHJ1cCBOUlcgRC0zMjY4MworCQkJCUdFUk1BTlkKKworMDAtMDgtRkIgICAoaGV4KQkJU29ub1NpdGUsIEluYy4KKzAwMDhGQiAgICAgKGJhc2UgMTYpCQlTb25vU2l0ZSwgSW5jLgorCQkJCTIxOTE5IDMwdGggRHJpdmUgU0UKKwkJCQlCb3RoZWxsIFdBIDk4MDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1GQyAgIChoZXgpCQlHaWdhcGhvdG9uIEluYy4KKzAwMDhGQyAgICAgKGJhc2UgMTYpCQlHaWdhcGhvdG9uIEluYy4KKwkJCQlZT0tPS1VSQSBTSElOREVONDAwCisJCQkJT1lBTUEgVE9USUdJIDMyMy04NTU4CisJCQkJSkFQQU4KKworMDAtMDgtRkQgICAoaGV4KQkJQmx1ZUtvcmVhIENvLiwgTHRkLgorMDAwOEZEICAgICAoYmFzZSAxNikJCUJsdWVLb3JlYSBDby4sIEx0ZC4KKwkJCQkzRiwgc2Vqb25nIEJ1aWxkaW5nLCAzNzktMTUsIFNlb2t5by1Eb25nCisJCQkJTWFwby1LdSwKKwkJCQlTZW91bCAgMTIxLTgzOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1GRSAgIChoZXgpCQlVTklLIEMmQyBDby4sTHRkLgorMDAwOEZFICAgICAoYmFzZSAxNikJCVVOSUsgQyZDIENvLixMdGQuCisJCQkJNzA2LTEzIFVOSUsgQkxERyAxN0YKKwkJCQlZRU9LLVNBTSBLQU5HLU5BTSBHVQorCQkJCVNFT1VMICAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUZGICAgKGhleCkJCVRyaWxvZ3kgQ29tbXVuaWNhdGlvbnMgTHRkCiswMDA4RkYgICAgIChiYXNlIDE2KQkJVHJpbG9neSBDb21tdW5pY2F0aW9ucyBMdGQKKwkJCQkyNiBGb2N1cyBXYXkKKwkJCQlXYWx3b3J0aCBFc3RhdGUKKwkJCQlBbmRvdmVyIEhhbXBzaGlyZSBTUDEwIDVOWQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA5LTAwICAgKGhleCkJCVRNVAorMDAwOTAwICAgICAoYmFzZSAxNikJCVRNVAorCQkJCTExIEtpcnlhdCBNYWRhLCBQT0IgNDUxOTkKKwkJCQlKZXJ1c2FsZW0gIDkxNDUwCisJCQkJSVNSQUVMCisKKzAwLTA5LTAxICAgKGhleCkJCVNoZW56aGVuIFNoaXh1bnRvbmcgSW5mb3JtYXRpb24gJiBUZWNobm9saWd5IENvCiswMDA5MDEgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gU2hpeHVudG9uZyBJbmZvcm1hdGlvbiAmIFRlY2hub2xpZ3kgQ28KKwkJCQlSb29tIDQwMyw2MTcgQmxkZztCYWd1YSAxIFJvYWQgLFNoZW56aGVuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAyOQorCQkJCUNISU5BCisKKzAwLTA5LTAyICAgKGhleCkJCVJlZGxpbmUgQ29tbXVuaWNhdGlvbnMgSW5jLgorMDAwOTAyICAgICAoYmFzZSAxNikJCVJlZGxpbmUgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTMwMiBUb3duIENlbnRyZSBCbHZkCisJCQkJU3VpdGUgMTAwCisJCQkJTWFya2hhbSBPTiBMM1IgMEU4CisJCQkJQ0FOQURBCisKKzAwLTA5LTAzICAgKGhleCkJCVBhbmFzYXMsIEluYworMDAwOTAzICAgICAoYmFzZSAxNikJCVBhbmFzYXMsIEluYworCQkJCTE1MzMzIEpvaG4gRiBLZW5uZWR5IEJsdmQsIFN1aXRlIDQwMAorCQkJCUhvdXN0b24gVFggNzcwMzItMjM1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktMDQgICAoaGV4KQkJTU9ORElBTCBlbGVjdHJvbmljCiswMDA5MDQgICAgIChiYXNlIDE2KQkJTU9ORElBTCBlbGVjdHJvbmljCisJCQkJRWdnZWxzYmVyZyA3MworCQkJCUVnZ2Vsc2JlcmcgT2Jlcm9lc3RlcnJlaWNoIDUxNDIKKwkJCQlBVVNUUklBCisKKzAwLTA5LTA1ICAgKGhleCkJCWlURUMgVGVjaG5vbG9naWVzIEx0ZC4KKzAwMDkwNSAgICAgKGJhc2UgMTYpCQlpVEVDIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJMTYwLTEsIEthcmFrLURvbmcsIFNvbmdwYS1HdQorCQkJCVNlb3VsICAxMzgtODA5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTA2ICAgKGhleCkJCUVzdGVlbSBOZXR3b3JrcworMDAwOTA2ICAgICAoYmFzZSAxNikJCUVzdGVlbSBOZXR3b3JrcworCQkJCTRGLCBOby45MDAsIFlpc2hhbiBSb2FkCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTA5LTA3ICAgKGhleCkJCUNocnlzYWxpcyBEZXZlbG9wbWVudAorMDAwOTA3ICAgICAoYmFzZSAxNikJCUNocnlzYWxpcyBEZXZlbG9wbWVudAorCQkJCTgxMjUgUml2ZXIgRHIuIFN1aXRlIDEwMAorCQkJCU1vcnRvbiBHcm92ZSBJTCA2MDA1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktMDggICAoaGV4KQkJVlRlY2ggVGVjaG5vbG9neSBDb3JwLgorMDAwOTA4ICAgICAoYmFzZSAxNikJCVZUZWNoIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkyRi0yLCBOby4gMTI0LCBDaHVuZyBDaGVuZyBSZC4sIFNoaWhsaW4KKwkJCQlUYWlwZWkgIDExMTQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0wOSAgIChoZXgpCQlUZWxlbm9yIENvbm5lY3QgQS9TCiswMDA5MDkgICAgIChiYXNlIDE2KQkJVGVsZW5vciBDb25uZWN0IEEvUworCQkJCUVsbGVnYWFyZHZlaiAyNUwKKwkJCQlT+G5kZXJib3JnIEFscyA2NDAwCisJCQkJREVOTUFSSworCiswMC0wOS0wQSAgIChoZXgpCQlTbmVkRmFyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDA5MEEgICAgIChiYXNlIDE2KQkJU25lZEZhciBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTE1RkwuLCBOby44NjYtMiwgSnVuZyBKZW5nIFJkLiwKKwkJCQlKdW5naGUgVGFpcGVpIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktMEIgICAoaGV4KQkJTVRMICBJbnN0cnVtZW50cyBQTEMKKzAwMDkwQiAgICAgKGJhc2UgMTYpCQlNVEwgIEluc3RydW1lbnRzIFBMQworCQkJCVBvd2VyIENvdXJ0CisJCQkJTHV0b24gQmVkZm9yZHNoaXJlIExVMSAzSkoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wOS0wQyAgIChoZXgpCQlNYXlla2F3YSBNZmcuIENvLiBMdGQuCiswMDA5MEMgICAgIChiYXNlIDE2KQkJTWF5ZWthd2EgTWZnLiBDby4gTHRkLgorCQkJCTE2ODI1IElIIDM1IE5vcnRoCisJCQkJU2VsbWEgVGV4YXMgNzgxNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTBEICAgKGhleCkJCUxFQURFUiBFTEVDVFJPTklDUyBDT1JQLgorMDAwOTBEICAgICAoYmFzZSAxNikJCUxFQURFUiBFTEVDVFJPTklDUyBDT1JQLgorCQkJCTItNi0zMywgVFNVTkFTSElNQS1ISUdBU0hJCisJCQkJS09IT0tVLUtVIFlPS09IQU1BIDIyMy04NTA1CisJCQkJSkFQQU4KKworMDAtMDktMEUgICAoaGV4KQkJSGVsaXggVGVjaG5vbG9neSBJbmMuCiswMDA5MEUgICAgIChiYXNlIDE2KQkJSGVsaXggVGVjaG5vbG9neSBJbmMuCisJCQkJNUYsIE5vLiA2LCBTZWMgMSwgSnVuZy1TaGluZyBSZC4sIFd1Z3UtUworCQkJCVRhaXBlaSAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0wRiAgIChoZXgpCQlGb3J0aW5ldCBJbmMuCiswMDA5MEYgICAgIChiYXNlIDE2KQkJRm9ydGluZXQgSW5jLgorCQkJCTMzMzMgT2N0YXZpdXMgRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktMTAgICAoaGV4KQkJU2ltcGxlIEFjY2VzcyBJbmMuCiswMDA5MTAgICAgIChiYXNlIDE2KQkJU2ltcGxlIEFjY2VzcyBJbmMuCisJCQkJNjAwIE1jQ2FmZnJleSBTdHJlZXQKKwkJCQlTdC1MYXVyZW50IFF1ZWJlYyBINFQxTjEKKwkJCQlDQU5BREEKKworMDAtMDktMTEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwOTExICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktMTIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwOTEyICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktMTMgICAoaGV4KQkJU3lzdGVtSyBDb3Jwb3JhdGlvbgorMDAwOTEzICAgICAoYmFzZSAxNikJCVN5c3RlbUsgQ29ycG9yYXRpb24KKwkJCQkyMzgtOSBIaWdhc2hpIDEsIEtpdGEgMTUsIEhpZ2FzaGkta3UKKwkJCQlTYXBwb3JvIEhva2thaWRvIDA2NS0wMDE1CisJCQkJSkFQQU4KKworMDAtMDktMTQgICAoaGV4KQkJQ09NUFVUUk9MUyBJTkMuCiswMDA5MTQgICAgIChiYXNlIDE2KQkJQ09NUFVUUk9MUyBJTkMuCisJCQkJMjIxIEJhcmsgRHJpdmUKKwkJCQlIYXJ2ZXkgTEEgNzAwNTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTE1ICAgKGhleCkJCUNBUyBDb3JwLgorMDAwOTE1ICAgICAoYmFzZSAxNikJCUNBUyBDb3JwLgorCQkJCSMxOSwgR2FuYXAtUmkKKwkJCQlLd2FuZ2d1ay1NeXVuCisJCQkJWWFuZ2p1LUd1biBLeXVuZ2dpLURvIDQ4Mi04NDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktMTYgICAoaGV4KQkJTGlzdG1hbiBIb21lIFRlY2hub2xvZ2llcywgSW5jLgorMDAwOTE2ICAgICAoYmFzZSAxNikJCUxpc3RtYW4gSG9tZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMTAwIE5vcnRobWVhZG93IFBhcmt3YXkKKwkJCQlTdWl0ZSAxMDgKKwkJCQlSb3N3ZWxsIEdlb3JnaWEgMzAwNzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTE3ICAgKGhleCkJCVdFTSBUZWNobm9sb2d5IEluYworMDAwOTE3ICAgICAoYmFzZSAxNikJCVdFTSBUZWNobm9sb2d5IEluYworCQkJCThGLTIsIE5vIDM4NiwgU2VjIDUgTmFuamluZyBFYXN0IFJvYWQuCisJCQkJVGFpcGVpICAxMDUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTE4ICAgKGhleCkJCVNBTVNVTkcgVEVDSFdJTiBDTy4sTFRECiswMDA5MTggICAgIChiYXNlIDE2KQkJU0FNU1VORyBURUNIV0lOIENPLixMVEQKKwkJCQk0MgorCQkJCVNVTkdKVURPTkcKKwkJCQlDSEFOR1dPTiBLWU9OR05BTSA2NDEtNzE2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTE5ICAgKGhleCkJCU1EUyBHYXRld2F5cworMDAwOTE5ICAgICAoYmFzZSAxNikJCU1EUyBHYXRld2F5cworCQkJCUNsb25zaGF1Z2ggSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlDbG9uc2hhdWdoCisJCQkJRHVibGluIDE3ICAKKwkJCQlJUkVMQU5ECisKKzAwLTA5LTFBICAgKGhleCkJCU1hY2F0IE9wdGljcyAmIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwOTFBICAgICAoYmFzZSAxNikJCU1hY2F0IE9wdGljcyAmIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTE1L0YuLCBNYWNhdCBDZW50ZXIsIE5vLiA2MyBNYWNhdCBSb2FkCisJCQkJSHVpemhvdSBHdWFuZ2RvbmcgNTE2MDAxCisJCQkJQ0hJTkEKKworMDAtMDktMUIgICAoaGV4KQkJRGlnaXRhbCBHZW5lcmF0aW9uIEluYy4KKzAwMDkxQiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIEdlbmVyYXRpb24gSW5jLgorCQkJCTVGLCBIby1TYW0gQi9ELCAjMzAtMywgQm9uZ2NodW42LURvbmcKKwkJCQlLd2FuYWstS3UsIFNlb3VsIDE1MS0wODkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktMUMgICAoaGV4KQkJQ2FjaGVWaXNpb24sIEluYworMDAwOTFDICAgICAoYmFzZSAxNikJCUNhY2hlVmlzaW9uLCBJbmMKKwkJCQkxOTkwIENvbmNvdXJzZSBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS0xRCAgIChoZXgpCQlQcm90ZWFtIENvbXB1dGVyIENvcnBvcmF0aW9uCiswMDA5MUQgICAgIChiYXNlIDE2KQkJUHJvdGVhbSBDb21wdXRlciBDb3Jwb3JhdGlvbgorCQkJCTdGLCBOby4gMTU3LiBTZWN0aW9uIDIgVGEtVHVuZyBSZAorCQkJCUhzaS1DaGloIFRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTFFICAgKGhleCkJCUZpcnN0ZWNoIFRlY2hub2xvZ3kgQ29ycC4KKzAwMDkxRSAgICAgKGJhc2UgMTYpCQlGaXJzdGVjaCBUZWNobm9sb2d5IENvcnAuCisJCQkJOGZsLixOby4yNjcsc2VjdGlvbiA0LEhzaW4tWWkgUmQuICxEYS1BbgorCQkJCVRhaXBlaSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0xRiAgIChoZXgpCQlBJmFtcDtEIENvLiwgTHRkLgorMDAwOTFGICAgICAoYmFzZSAxNikJCUEmYW1wO0QgQ28uLCBMdGQuCisJCQkJMS0yNDMgQXNhaGkKKwkJCQlLaXRhbW90by1zaGkgU2FpdGFtYSAzNjQtODU4NQorCQkJCUpBUEFOCisKKzAwLTA5LTIwICAgKGhleCkJCUVwb1ggQ09NUFVURVIgQ08uLExURC4KKzAwMDkyMCAgICAgKGJhc2UgMTYpCQlFcG9YIENPTVBVVEVSIENPLixMVEQuCisJCQkJMTB0aCBGbG9vciwgTm8uMzQ2LENodW5nIFNhbiBSZC4sU2VjLjIsCisJCQkJQ2h1bmcgSG8gQ2l0eSxUYWlwZWkgSHNpZW4gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktMjEgICAoaGV4KQkJUGxhbm1lY2EgT3kKKzAwMDkyMSAgICAgKGJhc2UgMTYpCQlQbGFubWVjYSBPeQorCQkJCUFzZW50YWphbmthdHUgNgorCQkJCUhFTFNJTktJICAwMDgxMCBIRUxTSU4KKwkJCQlGSU5MQU5ECisKKzAwLTA5LTIyICAgKGhleCkJCVRTVCBCaW9tZXRyaWNzIEdtYkgKKzAwMDkyMiAgICAgKGJhc2UgMTYpCQlUU1QgQmlvbWV0cmljcyBHbWJICisJCQkJTW9laGxzdHIuIDM5CisJCQkJODE2NzUgTXVuaWNoIAorCQkJCUdFUk1BTlkKKworMDAtMDktMjMgICAoaGV4KQkJSGVhbWFuIFN5c3RlbSBDby4sIEx0ZAorMDAwOTIzICAgICAoYmFzZSAxNikJCUhlYW1hbiBTeXN0ZW0gQ28uLCBMdGQKKwkJCQlCdWlsZGluZyBNNixOYXRpb25hbCBIaS10ZWNoICYgSW5kdXMKKwkJCQlDaGFuZ3NoYSBIdW5hbiBQcm92aW5jZSA0MTAwMTMKKwkJCQlDSElOQQorCiswMC0wOS0yNCAgIChoZXgpCQlUZWxlYmF1IEdtYkgKKzAwMDkyNCAgICAgKGJhc2UgMTYpCQlUZWxlYmF1IEdtYkgKKwkJCQlBbSBLcmFlaGVuYmVyZyAxCisJCQkJV2FsZGVjay1TYWNoc2VuaGF1c2VuIEdlcm1hbnkgMzQ1MTMKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LTI1ICAgKGhleCkJCVZTTiBTeXN0ZW1lbiBCVgorMDAwOTI1ICAgICAoYmFzZSAxNikJCVZTTiBTeXN0ZW1lbiBCVgorCQkJCUtlaXplcnN2ZWxkIDgzCisJCQkJVmVucmF5IExpbWJ1cmcgNTgwMyBBUAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTA5LTI2ICAgKGhleCkJCVlPREEgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMDkyNiAgICAgKGJhc2UgMTYpCQlZT0RBIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMkYsIE5vLjMtMSwgSW5kdXN0cnkgRWFzdCBSb2FkIElYLAorCQkJCUhzaW5jaHUgU2NpZW5jZSBCYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0yNyAgIChoZXgpCQlUT1lPS0VJS0kgQ08uLExURC4KKzAwMDkyNyAgICAgKGJhc2UgMTYpCQlUT1lPS0VJS0kgQ08uLExURC4KKwkJCQkxNy0xMC0zLFNoaW1vc2luanlvCisJCQkJSGlnYXNoaXlvZG9nYXdhLUt1CisJCQkJT3Nha2EgIDUzMy0wMDIxCisJCQkJSkFQQU4KKworMDAtMDktMjggICAoaGV4KQkJVGVsZWNvcmUKKzAwMDkyOCAgICAgKGJhc2UgMTYpCQlUZWxlY29yZQorCQkJCTE4MDAgTm9ydGggR2xlbnZpbGxlCisJCQkJU3VpdGUgMTE2CisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktMjkgICAoaGV4KQkJU2FueW8gSW5kdXN0cmllcyAoVUspIExpbWl0ZWQKKzAwMDkyOSAgICAgKGJhc2UgMTYpCQlTYW55byBJbmR1c3RyaWVzIChVSykgTGltaXRlZAorCQkJCVNjaG9vbCBSb2FkCisJCQkJTG93ZXN0b2Z0IFN1ZmZvbGsgTlIzMyA5TkEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wOS0yQSAgIChoZXgpCQlNWVRFQ1MgQ28uLEx0ZC4KKzAwMDkyQSAgICAgKGJhc2UgMTYpCQlNWVRFQ1MgQ28uLEx0ZC4KKwkJCQkxLTEyLTM5LCBUYWlzaGlkb3UKKwkJCQlTZXRhZ2F5YS1rdSBUb2t5byAxNTQtMDAwNAorCQkJCUpBUEFOCisKKzAwLTA5LTJCICAgKGhleCkJCWlRc3RvciBOZXR3b3JrcywgSW5jLgorMDAwOTJCICAgICAoYmFzZSAxNikJCWlRc3RvciBOZXR3b3JrcywgSW5jLgorCQkJCTIwMDEgQ29ycG9yYXRlIENlbnRlciBEcml2ZQorCQkJCU5ld2J1cnkgUGFyayBDQSA5MTMyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktMkMgICAoaGV4KQkJSGl0cG9pbnQgSW5jLgorMDAwOTJDICAgICAoYmFzZSAxNikJCUhpdHBvaW50IEluYy4KKwkJCQlOby43LCBGZW5saWFvLCAybmQgSW5kdXN0cmlhbCBQYXJrLCBMaW5rCisJCQkJVGFpcGVpICAyNDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTJEICAgKGhleCkJCUhUQyBDb3Jwb3JhdGlvbgorMDAwOTJEICAgICAoYmFzZSAxNikJCUhUQyBDb3Jwb3JhdGlvbgorCQkJCU5vLjIzIFhpbmdodWEgUm9hZCwKKwkJCQlUYW95dWFuIENpdHksCisJCQkJVGFveXVhbiBDb3VudHkgICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTJFICAgKGhleCkJCUImVGVjaCBTeXN0ZW0gSW5jLgorMDAwOTJFICAgICAoYmFzZSAxNikJCUImVGVjaCBTeXN0ZW0gSW5jLgorCQkJCSM2MDEsIFNlby1KdW5nIEIvRCwgODMwLTI0LCBZb3Vrc2FtLURvbmcKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTJGICAgKGhleCkJCUFrb20gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAwOTJGICAgICAoYmFzZSAxNikJCUFrb20gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTVGLCBOby4gMzIzLCBZYW5nLUd1YW5nIFN0LgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0zMCAgIChoZXgpCQlBZXJvQ29uY2llcmdlIEluYy4KKzAwMDkzMCAgICAgKGJhc2UgMTYpCQlBZXJvQ29uY2llcmdlIEluYy4KKwkJCQkxMDI1NiBZb25nZSBTdC4KKwkJCQlSaWNobW9uZCBIaWxsIE9udC4gTDRDIDNCNworCQkJCUNBTkFEQQorCiswMC0wOS0zMSAgIChoZXgpCQlGdXR1cmUgSW50ZXJuZXQsIEluYy4KKzAwMDkzMSAgICAgKGJhc2UgMTYpCQlGdXR1cmUgSW50ZXJuZXQsIEluYy4KKwkJCQkxMSd0aCBGbG9vciBTYW1ob21vb2xzYW4gQmxkZywgQi9CbGRnLCAyCisJCQkJWWFuZ2plYSBEb25nLCBTZW9jaG8gS3UKKwkJCQlTZW91bCBLeXVuZy1LaSAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTMyICAgKGhleCkJCU9tbmlsdXgKKzAwMDkzMiAgICAgKGJhc2UgMTYpCQlPbW5pbHV4CisJCQkJMTMwIFcuIFVuaW9uIFN0LgorCQkJCVBhc2FkZW5hIENBIDkxMTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS0zMyAgIChoZXgpCQlPcGhpdCBDby5MdGQuCiswMDA5MzMgICAgIChiYXNlIDE2KQkJT3BoaXQgQ28uTHRkLgorCQkJCTNGLiBTdW50ZWNobm92aWwsIDUtMjcgIE1hbmdwby1Eb25nICwKKwkJCQlZZW9uZ3RvbmctR3UsIFN1d29uLUNpdHksIAorCQkJCUt5dW5na2ktRG8gIDEzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktMzQgICAoaGV4KQkJRHJlYW0tTXVsdGltZWRpYS1UdiBHbWJICiswMDA5MzQgICAgIChiYXNlIDE2KQkJRHJlYW0tTXVsdGltZWRpYS1UdiBHbWJICisJCQkJQnJ1ZWNrc3RyLiAyOQorCQkJCU1lbmRlbiBTYXVlcmxhbmQgNTg3MDYKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LTM1ICAgKGhleCkJCVNhbmR2aW5lIEluY29ycG9yYXRlZAorMDAwOTM1ICAgICAoYmFzZSAxNikJCVNhbmR2aW5lIEluY29ycG9yYXRlZAorCQkJCTE3MCBDb2x1bWJpYSBTdC4gVy4KKwkJCQlXYXRlcmxvbyBPTiBOMkwgM0wzCisJCQkJQ0FOQURBCisKKzAwLTA5LTM2ICAgKGhleCkJCUlwZXRyb25payBHbWJIICYgQ28uS0cKKzAwMDkzNiAgICAgKGJhc2UgMTYpCQlJcGV0cm9uaWsgR21iSCAmIENvLktHCisJCQkJSmFlZ2Vyd2VnIDEKKwkJCQlCYWRlbi1CYWRlbiBCYWRlbi1XdWVydHRlbWJlcmcgNzY1MzIKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LTM3ICAgKGhleCkJCUludmVudGVjIEFwcGxpYW5jZSBDb3JwCiswMDA5MzcgICAgIChiYXNlIDE2KQkJSW52ZW50ZWMgQXBwbGlhbmNlIENvcnAKKwkJCQkxMTMsIFd1Z3VuZyAxIFJELiwgV3VLdSBJbmR1c3RyaWFsIG5QYXJrCisJCQkJV3VLdSBTaGlhbmcsIFRhaXBlaSBIc2llbiAyNDgsIFRhaXdhbiAsCisJCQkJVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTM4ICAgKGhleCkJCUFsbG90IENvbW11bmljYXRpb25zCiswMDA5MzggICAgIChiYXNlIDE2KQkJQWxsb3QgQ29tbXVuaWNhdGlvbnMKKwkJCQlIYW5hZ2FyIDIyIHN0JworCQkJCUhvZC1IYXNoYXJvbiAgNDU4MDAKKwkJCQlJU1JBRUwKKworMDAtMDktMzkgICAoaGV4KQkJU2hpYmFTb2t1IENvLixMdGQuCiswMDA5MzkgICAgIChiYXNlIDE2KQkJU2hpYmFTb2t1IENvLixMdGQuCisJCQkJNi04IFNoaW5iYXNoaSA0LWNob21lCisJCQkJTWluYXRvLWt1IFRva3lvIDEwNS0wMDA0CisJCQkJSkFQQU4KKworMDAtMDktM0EgICAoaGV4KQkJTW9sZXggRmliZXIgT3B0aWNzCiswMDA5M0EgICAgIChiYXNlIDE2KQkJTW9sZXggRmliZXIgT3B0aWNzCisJCQkJNTIyNCBLYXRyaW5lIEF2ZW51ZQorCQkJCURvd25lcnMgR3JvdmUgSUwgNjA1MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTNCICAgKGhleCkJCUhZVU5EQUkgTkVUV09SS1MgSU5DLgorMDAwOTNCICAgICAoYmFzZSAxNikJCUhZVU5EQUkgTkVUV09SS1MgSU5DLgorCQkJCVNBTiAxMzYtMSAgQU1JLVJJICBCVUJBTF9FVVAKKwkJCQlJQ0hPTiBLWVVOR0tJLURPIDQ2Ny03MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktM0MgICAoaGV4KQkJSmFjcXVlcyBUZWNobm9sb2dpZXMgUC9MCiswMDA5M0MgICAgIChiYXNlIDE2KQkJSmFjcXVlcyBUZWNobm9sb2dpZXMgUC9MCisJCQkJMjY4IE1vbnRhZ3VlIFJkCisJCQkJV2VzdCBFbmQgUXVlZW5zbGFuZCA0MTAxCisJCQkJQVVTVFJBTElBCisKKzAwLTA5LTNEICAgKGhleCkJCU5ld2lzeXMsSW5jLgorMDAwOTNEICAgICAoYmFzZSAxNikJCU5ld2lzeXMsSW5jLgorCQkJCTYyMDAgQnJpZGdlcG9pbnQgUGFya3dheQorCQkJCUJ1aWRpbmcgSVYsIFN1aXRlIDEwMAorCQkJCUF1c3RpbiBUWCA3ODczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktM0UgICAoaGV4KQkJQyZJIFRlY2hub2xvZ2llcworMDAwOTNFICAgICAoYmFzZSAxNikJCUMmSSBUZWNobm9sb2dpZXMKKwkJCQkjMzAzIEt3YW5ibyBQbGF6YSBCL0QsIDE0NjctMgorCQkJCUt3YW55YW5nLURvbmcsIERvbmdhbi1LdQorCQkJCUFueWFuZy1TaGkgS3l1bmdnaS1EbyA0MzEtODA4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTNGICAgKGhleCkJCURvdWJsZS1XaW4gRW50ZXJwaXJzZSBDTy4sIExURAorMDAwOTNGICAgICAoYmFzZSAxNikJCURvdWJsZS1XaW4gRW50ZXJwaXJzZSBDTy4sIExURAorCQkJCU5PLjMwMCwgU2VjIDEsIENodW5nIEZlbmcgUmQuCisJCQkJUGluZyBDaGVuIENpdHkgVGFveXVhbiBIc2llbiAzMjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTQwICAgKGhleCkJCUFHRkVPIEdtYkggJiBDby4gS0cKKzAwMDk0MCAgICAgKGJhc2UgMTYpCQlBR0ZFTyBHbWJIICYgQ28uIEtHCisJCQkJUG9zdGZhY2ggMTQwMTA3CisJCQkJQmllbGVmZWxkIFJoaW5lIFdlc3RmYWxpYSAzMzYyMQorCQkJCUdFUk1BTlkKKworMDAtMDktNDEgICAoaGV4KQkJQWxsaWVkIFRlbGVzaXMgSy5LLgorMDAwOTQxICAgICAoYmFzZSAxNikJCUFsbGllZCBUZWxlc2lzIEsuSy4KKwkJCQlUZWNobmljYWwgQ2VudGVyL05vLjIgVE9DIEJsZGcuCisJCQkJNy0yMS0xMSBOaXNoaS1Hb3RhbmRhCisJCQkJU2hpbmFnYXdhLWt1IFRva3lvIDE0MS0wMDMxCisJCQkJSkFQQU4KKworMDAtMDktNDIgICAoaGV4KQkJV2lyZWxlc3MgVGVjaG5vbG9naWVzLCBJbmMKKzAwMDk0MiAgICAgKGJhc2UgMTYpCQlXaXJlbGVzcyBUZWNobm9sb2dpZXMsIEluYworCQkJCU9obW9yaSBNaXRzdWJpc2hpIEJsZGcuLCA3RiwgU2Fubm9oIDItY2hvbWUKKwkJCQlPaHRhLWt1CisJCQkJVG9reW8gIDE0My0wMDIzCisJCQkJSkFQQU4KKworMDAtMDktNDMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwOTQzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNDQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwOTQ0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNDUgICAoaGV4KQkJUGFsbW1pY3JvIENvbW11bmljYXRpb25zIEluYworMDAwOTQ1ICAgICAoYmFzZSAxNikJCVBhbG1taWNybyBDb21tdW5pY2F0aW9ucyBJbmMKKwkJCQk2MzAgQWxkZXIgRHIKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNDYgICAoaGV4KQkJQ2x1c3RlciBMYWJzIEdtYkgKKzAwMDk0NiAgICAgKGJhc2UgMTYpCQlDbHVzdGVyIExhYnMgR21iSAorCQkJCURhdWVyd2FsZHdlZyAxCisJCQkJMTQwNTUgQmVybGluCisJCQkJQmVybGluIEJlcmxpbiAxNDA1NQorCQkJCUdFUk1BTlkKKworMDAtMDktNDcgICAoaGV4KQkJQXp0ZWssIEluYy4KKzAwMDk0NyAgICAgKGJhc2UgMTYpCQlBenRlaywgSW5jLgorCQkJCTIzIFNwZWN0cnVtIFBvaW50ZSAjMjA5CisJCQkJTGFrZSBGb3Jlc3QgQ2FsaWZvcm5pYSA5MjYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNDggICAoaGV4KQkJVmlzdGEgQ29udHJvbCBTeXN0ZW1zLCBDb3JwLgorMDAwOTQ4ICAgICAoYmFzZSAxNikJCVZpc3RhIENvbnRyb2wgU3lzdGVtcywgQ29ycC4KKwkJCQkyMDAxIFdlc3QgTWVsaW5kYSBMYW5lCisJCQkJUGhvZW5peCBBWiA4NTAyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNDkgICAoaGV4KQkJR2x5cGggVGVjaG5vbG9naWVzIEluYy4KKzAwMDk0OSAgICAgKGJhc2UgMTYpCQlHbHlwaCBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTczNSBXLiBDbGludG9uIFN0cmVldAorCQkJCUl0aGFjYSBOWSAxNDg1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNEEgICAoaGV4KQkJSG9tZW5ldCBDb21tdW5pY2F0aW9ucworMDAwOTRBICAgICAoYmFzZSAxNikJCUhvbWVuZXQgQ29tbXVuaWNhdGlvbnMKKwkJCQlJbm5vdmF0aW9uIENlbnRyZQorCQkJCU5hdGlvbmFsIFRlY2hub2xvZ2ljYWwgUGFyaworCQkJCUxpbWVyaWNrICAKKwkJCQlJUkVMQU5ECisKKzAwLTA5LTRCICAgKGhleCkJCUZpbGxGYWN0b3J5IE5WCiswMDA5NEIgICAgIChiYXNlIDE2KQkJRmlsbEZhY3RvcnkgTlYKKwkJCQlTY2hhbGllbmhvZXZlZHJlZWYgMjBCCisJCQkJQi0yODAwIE1lY2hlbGVuICAKKwkJCQlCRUxHSVVNCisKKzAwLTA5LTRDICAgKGhleCkJCUNvbW11bmljYXRpb24gV2VhdmVyIENvLixMdGQuCiswMDA5NEMgICAgIChiYXNlIDE2KQkJQ29tbXVuaWNhdGlvbiBXZWF2ZXIgQ28uLEx0ZC4KKwkJCQkxfjMgQ09XRUFWRVIgQi9EIDQ0Ni0xOSwKKwkJCQlTRU9HWU8tRE9ORywgTUFQTy1HVQorCQkJCVNFT1VMICAxMjEtODQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTREICAgKGhleCkJCUJyYWludHJlZSBDb21tdW5pY2F0aW9ucyBQdHkgTHRkCiswMDA5NEQgICAgIChiYXNlIDE2KQkJQnJhaW50cmVlIENvbW11bmljYXRpb25zIFB0eSBMdGQKKwkJCQlMZXZlbCAxLCA2IENvcmRlbGlhIFN0CisJCQkJU291dGggQnJpc2JhbmUgUUxEIDQxMDEKKwkJCQlBVVNUUkFMSUEKKworMDAtMDktNEUgICAoaGV4KQkJQkFSVEVDSCBTWVNURU1TIElOVEVSTkFUSU9OQUwsIElOQworMDAwOTRFICAgICAoYmFzZSAxNikJCUJBUlRFQ0ggU1lTVEVNUyBJTlRFUk5BVElPTkFMLCBJTkMKKwkJCQkyNTEgTmFqb2xlcyBSZCBTdWl0ZSBBCisJCQkJTWlsbGVyc3ZpbGxlIE1hcnlsYW5kIDIxMTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS00RiAgIChoZXgpCQllbG1lZ3QgR21iSCAmIENvLiBLRworMDAwOTRGICAgICAoYmFzZSAxNikJCWVsbWVndCBHbWJIICYgQ28uIEtHCisJCQkJS29tbXVuaWthdGlvbnN0ZWNobmlrCisJCQkJVm9laHJ1bWVyIFN0ci4gMzAKKwkJCQlQZWluZSBOaWVkZXJzYWNoc2VuIEQtMzEyMjgKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LTUwICAgKGhleCkJCUluZGVwZW5kZW50IFN0b3JhZ2UgQ29ycG9yYXRpb24KKzAwMDk1MCAgICAgKGJhc2UgMTYpCQlJbmRlcGVuZGVudCBTdG9yYWdlIENvcnBvcmF0aW9uCisJCQkJNjI3MyBNb25hcmNoIFBhcmsgUGxhY2UKKwkJCQlOaXdvdCBDb2xvcmFkbyA4MDUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNTEgICAoaGV4KQkJQXBvZ2VlIEltYWdpbmcgU3lzdGVtcworMDAwOTUxICAgICAoYmFzZSAxNikJCUFwb2dlZSBJbWFnaW5nIFN5c3RlbXMKKwkJCQkxNTEgU3VucmlzZSBBdmVudWUKKwkJCQlTdWl0ZSA5MDIKKwkJCQlSb3NldmlsbGUgQ0EgOTU2NjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTUyICAgKGhleCkJCUF1ZXJzd2FsZCBHbWJIICYgQ28uIEtHCiswMDA5NTIgICAgIChiYXNlIDE2KQkJQXVlcnN3YWxkIEdtYkggJiBDby4gS0cKKwkJCQlWb3IgZGVuIEdyYXNob2VmZW4gMjIKKwkJCQlDcmVtbGluZ2VuIE5pZWRlcnNhY2hzZW4gMzgxNjIKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LTUzICAgKGhleCkJCUxpbmthZ2UgU3lzdGVtIEludGVncmF0aW9uIENvLkx0ZC4KKzAwMDk1MyAgICAgKGJhc2UgMTYpCQlMaW5rYWdlIFN5c3RlbSBJbnRlZ3JhdGlvbiBDby5MdGQuCisJCQkJNDAgR29uZ2ppYW5mYW5nCisJCQkJU291dGggWmhvbmdzaGFuIFJvYWQKKwkJCQlOYW5qaW5nIEppYW5nc3UgMjEwMDA2CisJCQkJQ0hJTkEKKworMDAtMDktNTQgICAoaGV4KQkJQU1pVCBzcG9sLiBzLiByLiBvLgorMDAwOTU0ICAgICAoYmFzZSAxNikJCUFNaVQgc3BvbC4gcy4gci4gby4KKwkJCQlOYXNrb3ZlIDMKKwkJCQkxNTAgMDAgUHJhaGEgNSAKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0wOS01NSAgIChoZXgpCQlZb3VuZyBHZW5lcmF0aW9uIEludGVybmF0aW9uYWwgQ29ycC4KKzAwMDk1NSAgICAgKGJhc2UgMTYpCQlZb3VuZyBHZW5lcmF0aW9uIEludGVybmF0aW9uYWwgQ29ycC4KKwkJCQk0Ri4sTm8uIDE4OCwgTWluY2h1YW4gUmQuLCBTaGluZGlhbiBDaXR5CisJCQkJU2hpbmRpYW4gIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktNTYgICAoaGV4KQkJTmV0d29yayBTeXN0ZW1zIEdyb3VwLCBMdGQuIChOU0cpCiswMDA5NTYgICAgIChiYXNlIDE2KQkJTmV0d29yayBTeXN0ZW1zIEdyb3VwLCBMdGQuIChOU0cpCisJCQkJMzkgS2lycGljaG5heWEgU3QuLCBTdWl0ZSAxMzAyCisJCQkJTW9zY293ICAxMDUxODcKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMDktNTcgICAoaGV4KQkJU3VwZXJjYWxsZXIsIEluYy4KKzAwMDk1NyAgICAgKGJhc2UgMTYpCQlTdXBlcmNhbGxlciwgSW5jLgorCQkJCTEwMSBTYWdpbmF3IERyaXZlCisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS01OCAgIChoZXgpCQlJTlRFTE5FVCBTLkEuCiswMDA5NTggICAgIChiYXNlIDE2KQkJSU5URUxORVQgUy5BLgorCQkJCUZSQU5DSVNDTyBPTElWQU4gQkFZTEUsIDQKKwkJCQlaQVJBR09aQSAgNTAwMTUKKwkJCQlTUEFJTgorCiswMC0wOS01OSAgIChoZXgpCQlTaXRlY3NvZnQKKzAwMDk1OSAgICAgKGJhc2UgMTYpCQlTaXRlY3NvZnQKKwkJCQk3dGggR3VndSBCRC4gMTQ1LTE4IFNhbXN1bmctRG9uZworCQkJCUthbmdOYW0tR3UgU2VvdWwgS29yZWEKKwkJCQlTZW91bCBTZW91bCAxMzUtMDkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTVBICAgKGhleCkJCVJBQ0VXT09EIFRFQ0hOT0xPR1kKKzAwMDk1QSAgICAgKGJhc2UgMTYpCQlSQUNFV09PRCBURUNITk9MT0dZCisJCQkJNUYtMixOTy42LENIVU5HLUhTSU5HIFJELixTRUMuMSxXVS1HVQorCQkJCVRBSVBFSSAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS01QiAgIChoZXgpCQlOZXRnZWFyLCBJbmMuCiswMDA5NUIgICAgIChiYXNlIDE2KQkJTmV0Z2VhciwgSW5jLgorCQkJCTQ1MDAgR3JlYXQgQW1lcmljYSBQYXJrd2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTVDICAgKGhleCkJCVBoaWxpcHMgTWVkaWNhbCBTeXN0ZW1zIC0gQ2FyZGlhYyBhbmQgTW9uaXRvcmluZyBTeXN0ZW1zIChDTQorMDAwOTVDICAgICAoYmFzZSAxNikJCVBoaWxpcHMgTWVkaWNhbCBTeXN0ZW1zIC0gQ2FyZGlhYyBhbmQgTW9uaXRvcmluZyBTeXN0ZW1zIChDTQorCQkJCTMwMDAgTWludXRlbWFuIFJvYWQKKwkJCQlBbmRvdmVyIE1hc3NhY2h1c2V0dHMgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTVEICAgKGhleCkJCURpYWxvZ3VlIFRlY2hub2xvZ3kgQ29ycC4KKzAwMDk1RCAgICAgKGJhc2UgMTYpCQlEaWFsb2d1ZSBUZWNobm9sb2d5IENvcnAuCisJCQkJMTBGLCBOby4gMTk2LCBTZWMuIDIsIEp1bmdzaGluZyBSZC4KKwkJCQlTaGluZGlhbiBDaXR5IFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTVFICAgKGhleCkJCU1hc3N0ZWNoIEdyb3VwIEluYy4KKzAwMDk1RSAgICAgKGJhc2UgMTYpCQlNYXNzdGVjaCBHcm91cCBJbmMuCisJCQkJMiBFYXN0IEJlYXZlciBDcmVlayBSZC4KKwkJCQlCdWlsZGluZyAzCisJCQkJUmljaG1vbmQgSGlsbCBPbnRhcmlvIEw0QiAyTjMKKwkJCQlDQU5BREEKKworMDAtMDktNUYgICAoaGV4KQkJVGVsZWJ5dGUsIEluYy4KKzAwMDk1RiAgICAgKGJhc2UgMTYpCQlUZWxlYnl0ZSwgSW5jLgorCQkJCTI3MCBQdWxhc2tpIFJvYWQKKwkJCQlHcmVlbmxhd24gTlkgMTE3NDAtMTYxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNjAgICAoaGV4KQkJWU9aQU4gSW5jLgorMDAwOTYwICAgICAoYmFzZSAxNikJCVlPWkFOIEluYy4KKwkJCQlZT1pBTiBCbGQuLDMtNS0xOCwgS2l0YXphd2EKKwkJCQlTZXRhZ2F5YS1rdSBUb2t5byAxNTUtMDAzMQorCQkJCUpBUEFOCisKKzAwLTA5LTYxICAgKGhleCkJCVN3aXRjaGdlYXIgYW5kIEluc3RydW1lbnRhdGlvbiBMdGQKKzAwMDk2MSAgICAgKGJhc2UgMTYpCQlTd2l0Y2hnZWFyIGFuZCBJbnN0cnVtZW50YXRpb24gTHRkCisJCQkJUmlwbGV5IFJvYWQKKwkJCQlCcmFkZm9yZCBXZXN0IFlvcmtzaGlyZSBCRDQgN0VICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDktNjIgICAoaGV4KQkJU29uaXRvciBUZWNobm9sb2dpZXMgQVMKKzAwMDk2MiAgICAgKGJhc2UgMTYpCQlTb25pdG9yIFRlY2hub2xvZ2llcyBBUworCQkJCUZvcnNrbmluZ3N2ZWllbiAxQgorCQkJCVAuTy4gQm94IDEyNAorCQkJCU9zbG8gQmxpbmRlcm4gTi0wMTM0CisJCQkJTk9SV0FZCisKKzAwLTA5LTYzICAgKGhleCkJCURvbWluaW9uIExhc2VyY29tIEluYy4KKzAwMDk2MyAgICAgKGJhc2UgMTYpCQlEb21pbmlvbiBMYXNlcmNvbSBJbmMuCisJCQkJMTcxNiBCcmlhcmNyZXN0IERyLiBTdGUuIDIxMAorCQkJCUJyeWFuIFRYIDc3ODAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS02NCAgIChoZXgpCQlIaS1UZWNobmlxdWVzLCBJbmMuCiswMDA5NjQgICAgIChiYXNlIDE2KQkJSGktVGVjaG5pcXVlcywgSW5jLgorCQkJCTI1MTUgRnJhemllciBBdmUuCisJCQkJTWFkaXNvbiBXSSA1MzcxMy0xNTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS02NSAgIChoZXgpCQlIeXVuSnUgQ29tcHV0ZXIgQ28uLCBMdGQuCiswMDA5NjUgICAgIChiYXNlIDE2KQkJSHl1bkp1IENvbXB1dGVyIENvLiwgTHRkLgorCQkJCTIyMi0yMiwgSHl1bmp1IEIvRCwgR3VybyAzIERvbmcsIEd1cm9ndQorCQkJCVNlb3VsICAxNTItODQ4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTY2ICAgKGhleCkJCVRoYWxlcyBOYXZpZ2F0aW9uCiswMDA5NjYgICAgIChiYXNlIDE2KQkJVGhhbGVzIE5hdmlnYXRpb24KKwkJCQk0NzEgRWwgQ2FtaW5vIFJlYWwKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNjcgICAoaGV4KQkJVGFjaHlvbiwgSW5jCiswMDA5NjcgICAgIChiYXNlIDE2KQkJVGFjaHlvbiwgSW5jCisJCQkJOTMzOSBDYXJyb2xsIFBhcmsgRHJpdmUKKwkJCQlTdWl0ZSAxNTAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTY4ICAgKGhleCkJCVRFQ0hOT1ZFTlRVUkUsIElOQy4KKzAwMDk2OCAgICAgKGJhc2UgMTYpCQlURUNITk9WRU5UVVJFLCBJTkMuCisJCQkJUC4gTy4gQm94IDU2NDEKKwkJCQlQYXNhZGVuYSBUZXhhcyA3NzUwOC01NjQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS02OSAgIChoZXgpCQlNZXJldCBPcHRpY2FsIENvbW11bmljYXRpb25zCiswMDA5NjkgICAgIChiYXNlIDE2KQkJTWVyZXQgT3B0aWNhbCBDb21tdW5pY2F0aW9ucworCQkJCTEwMDcwIE1lc2EgUmltIFJvYWQKKwkJCQlTYW4gRGllZ28gQ2FsaWZvcm5pYSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNkEgICAoaGV4KQkJQ2xvdmVybGVhZiBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDA5NkEgICAgIChiYXNlIDE2KQkJQ2xvdmVybGVhZiBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJMiBXaWxsb3cgU3QuCisJCQkJU291dGhib3JvdWdoIE1BIDAxNzQ1LTEwMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTZCICAgKGhleCkJCUlCTSBDb3JwCiswMDA5NkIgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTZDICAgKGhleCkJCUltZWRpYSBTZW1pY29uZHVjdG9yIENvcnAuCiswMDA5NkMgICAgIChiYXNlIDE2KQkJSW1lZGlhIFNlbWljb25kdWN0b3IgQ29ycC4KKwkJCQk0OTg4IEdyZWF0IEFtZXJpY2EgUGt3eS4KKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNkQgICAoaGV4KQkJUG93ZXJuZXQgVGVjaG5vbG9naWVzIENvcnAuCiswMDA5NkQgICAgIChiYXNlIDE2KQkJUG93ZXJuZXQgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJMzcxLTUxLCBHYXNhbi1Eb25nIEt1bWNob24tR3UsCisJCQkJU2VvdWwgIDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktNkUgICAoaGV4KQkJR0lBTlQgRUxFQ1RST05JQ1MgTFRELgorMDAwOTZFICAgICAoYmFzZSAxNikJCUdJQU5UIEVMRUNUUk9OSUNTIExURC4KKwkJCQk3L0YuLCBFTElURSBJTkRVU1RSSUFMIEJVSUxESU5HLAorCQkJCTEzNS0xMzcgSE9JIEJVTiBST0FELAorCQkJCUtXVU4gVE9ORyBLT1dMT09OIAorCQkJCUhPTkcgS09ORworCiswMC0wOS02RiAgIChoZXgpCQlCZWlqaW5nIFpob25ncWluZyBFbGVnYW50IFRlY2guIENvcnAuLExpbWl0ZWQKKzAwMDk2RiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFpob25ncWluZyBFbGVnYW50IFRlY2guIENvcnAuLExpbWl0ZWQKKwkJCQlSbS41MDgsIEEtQnVpbGRpbmcsIFNoYW5nZGkgRGlnaXRhbCBTY2llCisJCQkJQmVpamluZyAgMTAwMDg0CisJCQkJQ0hJTkEKKworMDAtMDktNzAgICAoaGV4KQkJVmlicmF0aW9uIFJlc2VhcmNoIENvcnBvcmF0aW9uCiswMDA5NzAgICAgIChiYXNlIDE2KQkJVmlicmF0aW9uIFJlc2VhcmNoIENvcnBvcmF0aW9uCisJCQkJMjM4NSBXaWxzaGVyZSBEcml2ZQorCQkJCVN1aXRlIEEKKwkJCQlKZW5pc29uIE1JIDQ5NDI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS03MSAgIChoZXgpCQlUaW1lIE1hbmFnZW1lbnQsIEluYy4KKzAwMDk3MSAgICAgKGJhc2UgMTYpCQlUaW1lIE1hbmFnZW1lbnQsIEluYy4KKwkJCQkxMSBMYWtlIEdhdGxpbiBSb2FkCisJCQkJT3JsYW5kbyBGbG9yaWRhIDMyODA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS03MiAgIChoZXgpCQlTZWN1cmViYXNlLEluYworMDAwOTcyICAgICAoYmFzZSAxNikJCVNlY3VyZWJhc2UsSW5jCisJCQkJMm5kIEZsLFNldW5nc2V1bmctQmxkZyxEb2tvayAyLURvbmcsS2FuZworCQkJCVNlb3VsICAxMzUtODU0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTczICAgKGhleCkJCUxlbnRlbiBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwOTczICAgICAoYmFzZSAxNikJCUxlbnRlbiBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTE2RiwgTm8uNTEsIFNlYy4yLCBHdW5neWkgUm9hZCwKKwkJCQlUYWljaHVuZyBDaXR5ICA0MDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTc0ICAgKGhleCkJCUlubm9waWEgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA5NzQgICAgIChiYXNlIDE2KQkJSW5ub3BpYSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk1Ri4sIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5CisJCQkJSGFueWFuZyBVbml2ZXJzaXR5LCAxNyBIYWVuZ2RhbmctRG9uZworCQkJCVNlb3VsICAxMzMtNzkxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTc1ICAgKGhleCkJCWZTT05BIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCiswMDA5NzUgICAgIChiYXNlIDE2KQkJZlNPTkEgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKwkJCQkjMTQwLTExMTIwIEhvcnNlc2hvZSBXYXkKKwkJCQlSaWNobW9uZCBCQyBWN0EgNUg3CisJCQkJQ0FOQURBCisKKzAwLTA5LTc2ICAgKGhleCkJCURhdGFzb2Z0IElTRE4gU3lzdGVtcyBHbWJICiswMDA5NzYgICAgIChiYXNlIDE2KQkJRGF0YXNvZnQgSVNETiBTeXN0ZW1zIEdtYkgKKwkJCQlTY2hpbGxlcnBsYXR6IDMKKwkJCQlTdC4gUG9lbHRlbiBMb3dlciBBdXN0cmlhIDMxMDAKKwkJCQlBVVNUUklBCisKKzAwLTA5LTc3ICAgKGhleCkJCUJydW5uZXIgRWxla3Ryb25payBBRworMDAwOTc3ICAgICAoYmFzZSAxNikJCUJydW5uZXIgRWxla3Ryb25payBBRworCQkJCU38bGxlcndpcyAxCisJCQkJSGl0dG5hdSBa/HJpY2ggODMzNQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA5LTc4ICAgKGhleCkJCUFJSkkgU3lzdGVtIENvLiwgTHRkLgorMDAwOTc4ICAgICAoYmFzZSAxNikJCUFJSkkgU3lzdGVtIENvLiwgTHRkLgorCQkJCSMyMDggU2FtaG8tUGFyay1Ub3dlciBCbGRnLiAxMTIyLTEwLCBJbmcKKwkJCQlTdXdvbiBHeWVvbmdnaS1kbyA0NDItODM1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTc5ICAgKGhleCkJCUFkdmFuY2VkIFRlbGV2aXNpb24gU3lzdGVtcyBDb21taXR0ZWUsIEluYy4KKzAwMDk3OSAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBUZWxldmlzaW9uIFN5c3RlbXMgQ29tbWl0dGVlLCBJbmMuCisJCQkJMTc1MCBLIFN0cmVldCBOVworCQkJCVN1aXRlIDEyMDAKKwkJCQlXYXNoaW5ndG9uIERDIDIwMDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS03QSAgIChoZXgpCQlMb3VpcyBEZXNpZ24gTGFicy4KKzAwMDk3QSAgICAgKGJhc2UgMTYpCQlMb3VpcyBEZXNpZ24gTGFicy4KKwkJCQkyRixOTyA0LCBMYW5lIDQ5NywgQ2h1bmctQ2hlbmcgUmQuLEhzaW4tCisJCQkJSHNpbi1UaWVuIFRhaXBlaSBIc2llbiAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTdCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDk3QiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTdDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDk3QyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIKKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktN0QgICAoaGV4KQkJU2VjV2VsbCBOZXR3b3JrcyBPeQorMDAwOTdEICAgICAoYmFzZSAxNikJCVNlY1dlbGwgTmV0d29ya3MgT3kKKwkJCQlQLk8uQk9YIDE3NAorCQkJCUjkbWVlbnB1aXN0byAyMQorCQkJCVRhbXBlcmUgIDMzMTAxCisJCQkJRklOTEFORAorCiswMC0wOS03RSAgIChoZXgpCQlJTUkgVEVDSE5PTE9HWSBDTy4sIExURAorMDAwOTdFICAgICAoYmFzZSAxNikJCUlNSSBURUNITk9MT0dZIENPLiwgTFRECisJCQkJMm5kIGZsb29yLCBFdW4gU2VvayBCdWlsZGluZywgNzI5LTEKKwkJCQlZZW9rc2FtLWRvbmcsCisJCQkJR2FuZ25hbS1ndSBTZW91bCAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTdGICAgKGhleCkJCVZzZWN1cmUgMjAwMCBMVEQuCiswMDA5N0YgICAgIChiYXNlIDE2KQkJVnNlY3VyZSAyMDAwIExURC4KKwkJCQkxMSBNb3NoZSBMZXZpIFN0LgorCQkJCVJpc2hvbiBMZVppb24gIDc1NjU4CisJCQkJSVNSQUVMCisKKzAwLTA5LTgwICAgKGhleCkJCVBvd2VyIFplbml0aCBJbmMuCiswMDA5ODAgICAgIChiYXNlIDE2KQkJUG93ZXIgWmVuaXRoIEluYy4KKwkJCQlUc3VqaWRvIE5pc2hpa2FpZ2FuIDEtMTAtNworCQkJCUZ1amlzYXdhIEthbmFnYXdhIDI1MS0wMDQ2CisJCQkJSkFQQU4KKworMDAtMDktODEgICAoaGV4KQkJTmV3cG9ydCBOZXR3b3JrcworMDAwOTgxICAgICAoYmFzZSAxNikJCU5ld3BvcnQgTmV0d29ya3MKKwkJCQlFbnRlcnByaXNlIEhvdXNlCisJCQkJU3RhdGlvbiBSb2FkCisJCQkJQ2hlcHN0b3cgTW9ubW91dGhzaGlyZSBOUDE2IDVQQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA5LTgyICAgKGhleCkJCUxvZXdlIE9wdGEgR21iSAorMDAwOTgyICAgICAoYmFzZSAxNikJCUxvZXdlIE9wdGEgR21iSAorCQkJCUluZHVzdHJpZXN0cmFzc2UgMTEKKwkJCQlLcm9uYWNoIEJhdmFyaWEgOTYzMTcKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LTgzICAgKGhleCkJCUd2aXNpb24gSW5jb3Jwb3JhdGVkCiswMDA5ODMgICAgIChiYXNlIDE2KQkJR3Zpc2lvbiBJbmNvcnBvcmF0ZWQKKwkJCQkxMUYsIE5vLjE2NiwgQ2hpZW4tSSBSb2FkCisJCQkJQ2h1bmcgSG8gQ2l0eSwgVGFpcGVpIEhzaWVuICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTg0ICAgKGhleCkJCU15Q2FzYSBOZXR3b3JrIEluYy4KKzAwMDk4NCAgICAgKGJhc2UgMTYpCQlNeUNhc2EgTmV0d29yayBJbmMuCisJCQkJMjAwIFNoZXJpZGFuIEF2ZSAjMTAzCisJCQkJUGFsbyBBbHRvIENBIDk0MzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS04NSAgIChoZXgpCQlBdXRvIFRlbGVjb20gQ29tcGFueQorMDAwOTg1ICAgICAoYmFzZSAxNikJCUF1dG8gVGVsZWNvbSBDb21wYW55CisJCQkJMTBGLCBOby4zLExhbmUgMTYsIFNlYy4yLCBTaWNodWFuIFJkLgorCQkJCUJhbnFpYW8gQ2l0eSBUYWlwZWkgQ291bnR5IDIyMDYxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS04NiAgIChoZXgpCQlNZXRhbGluayBMVEQuCiswMDA5ODYgICAgIChiYXNlIDE2KQkJTWV0YWxpbmsgTFRELgorCQkJCVlha3VtIEJ1c2luZXNzIFBhcmsKKwkJCQlZYWt1bSBIT0YgSEFTSEFST04gNjA5NzIKKwkJCQlJU1JBRUwKKworMDAtMDktODcgICAoaGV4KQkJTklTSEkgTklQUE9OIEVMRUNUUklDIFdJUkUgJiBDQUJMRSBDTy4sTFRELgorMDAwOTg3ICAgICAoYmFzZSAxNikJCU5JU0hJIE5JUFBPTiBFTEVDVFJJQyBXSVJFICYgQ0FCTEUgQ08uLExURC4KKwkJCQlLYXN1Z2F1cmEKKwkJCQlPaXRhLUNpdHkgT0lUQSA4NzAtODYzMgorCQkJCUpBUEFOCisKKzAwLTA5LTg4ICAgKGhleCkJCU51ZGlhbiBFbGVjdHJvbiBDby4sIEx0ZC4KKzAwMDk4OCAgICAgKGJhc2UgMTYpCQlOdWRpYW4gRWxlY3Ryb24gQ28uLCBMdGQuCisJCQkJNzk3LTI4IEJhbmdiYWUtRG9uZywgU2VvY2hvLUd1CisJCQkJU2VvdWwgIDEzNy0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktODkgICAoaGV4KQkJVml2aWRMb2dpYyBJbmMuCiswMDA5ODkgICAgIChiYXNlIDE2KQkJVml2aWRMb2dpYyBJbmMuCisJCQkJNDA5OTQgRW5jeWNsb3BlZGlhIENpcmNsZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LThBICAgKGhleCkJCUVxdWFsTG9naWMgSW5jCiswMDA5OEEgICAgIChiYXNlIDE2KQkJRXF1YWxMb2dpYyBJbmMKKwkJCQk5IFRvd25zZW5kIFdlc3QKKwkJCQlOYXNodWEgTkggMDMwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LThCICAgKGhleCkJCUVudHJvcGljIENvbW11bmljYXRpb25zLCBJbmMuCiswMDA5OEIgICAgIChiYXNlIDE2KQkJRW50cm9waWMgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk5Mjc2IFNjcmFudG9uIFJkICMyMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LThDICAgKGhleCkJCU9wdGlvbiBXaXJlbGVzcyBTd2VkZW4KKzAwMDk4QyAgICAgKGJhc2UgMTYpCQlPcHRpb24gV2lyZWxlc3MgU3dlZGVuCisJCQkJU3R1cmVnYXRhbiAyCisJCQkJMTF0aCBmbC4KKwkJCQlTdW5kYnliZXJnIFNFLTE3MiAyNAorCQkJCVNXRURFTgorCiswMC0wOS04RCAgIChoZXgpCQlWZWxvY2l0eSBTZW1pY29uZHVjdG9yCiswMDA5OEQgICAgIChiYXNlIDE2KQkJVmVsb2NpdHkgU2VtaWNvbmR1Y3RvcgorCQkJCVN1aXRlIDMyIFdleSBIb3VzZQorCQkJCTE1IENodXJjaCBTdHJlZXQKKwkJCQlXZXlicmlkZ2UgU3VycmV5IEtUMTMgOE5BCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDktOEUgICAoaGV4KQkJaXBjYXMgR21iSAorMDAwOThFICAgICAoYmFzZSAxNikJCWlwY2FzIEdtYkgKKwkJCQlXZXR0ZXJrcmV1eiAxNworCQkJCUVybGFuZ2VuIEJhdmFyaWEgOTEwNTgKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LThGICAgKGhleCkJCUNldGFjZWFuIE5ldHdvcmtzCiswMDA5OEYgICAgIChiYXNlIDE2KQkJQ2V0YWNlYW4gTmV0d29ya3MKKwkJCQkxMTAgQ29ycG9yYXRlIERyaXZlCisJCQkJQnVpbGRpbmcgMgorCQkJCVBvcnRzbW91dGggTkggMDM4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTkwICAgKGhleCkJCUFDS1NZUyBDb21tdW5pY2F0aW9ucyAmIHN5c3RlbXMKKzAwMDk5MCAgICAgKGJhc2UgMTYpCQlBQ0tTWVMgQ29tbXVuaWNhdGlvbnMgJiBzeXN0ZW1zCisJCQkJWkEgZHUgVmFsIEpveWV1eAorCQkJCTEwIHJ1ZSBkZXMgRW50cmVwcmVuZXVycworCQkJCVZJTExFUFJFVVggIEYtNzg0NTAKKwkJCQlGUkFOQ0UKKworMDAtMDktOTEgICAoaGV4KQkJR0UgRmFudWMgQXV0b21hdGlvbiBNYW51ZmFjdHVyaW5nLCBJbmMuCiswMDA5OTEgICAgIChiYXNlIDE2KQkJR0UgRmFudWMgQXV0b21hdGlvbiBNYW51ZmFjdHVyaW5nLCBJbmMuCisJCQkJUm91dGUgNjA2ICYgUm91dGUgMjlOCisJCQkJUE8gQm94IDgxMDYKKwkJCQlDaGFybG90dGVzdmlsbGUgVmlyZ2luaWEgMjI5MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTkyICAgKGhleCkJCUludGVyRXBvY2ggVGVjaG5vbG9neSxJTkMuCiswMDA5OTIgICAgIChiYXNlIDE2KQkJSW50ZXJFcG9jaCBUZWNobm9sb2d5LElOQy4KKwkJCQk3RixOby4zLEFsbGV5IDYsTGFuZSAyMzUsUGFvLUNoaWFvIFJkCisJCQkJSHNpbi1UaWVuIFRhaXBlaSBIc2llbiAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTkzICAgKGhleCkJCVZpc3Rlb24gQ29ycG9yYXRpb24KKzAwMDk5MyAgICAgKGJhc2UgMTYpCQlWaXN0ZW9uIENvcnBvcmF0aW9uCisJCQkJMTY2MzAgU291dGhmaWVsZCBSb2FkCisJCQkJU3QuIDQxRTEwCisJCQkJQWxsZW4gUGFyayBNaWNoaWdhbiA0ODEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktOTQgICAoaGV4KQkJQ3Jvbnl4IEVuZ2luZWVyaW5nCiswMDA5OTQgICAgIChiYXNlIDE2KQkJQ3Jvbnl4IEVuZ2luZWVyaW5nCisJCQkJTWFyc2hhbGEgU29rb2xvdnNrb2dvIHN0ci4gNAorCQkJCU1vc2NvdyAgMTIzMDYzCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTA5LTk1ICAgKGhleCkJCUNhc3RsZSBUZWNobm9sb2d5IEx0ZAorMDAwOTk1ICAgICAoYmFzZSAxNikJCUNhc3RsZSBUZWNobm9sb2d5IEx0ZAorCQkJCU9yZSBUcmFkaW5nIEVzdGF0ZQorCQkJCVdvb2RicmlkZ2UgUm9hZAorCQkJCUZyYW1saW5naGFtIFN1ZmZvbGsgSVAxMyA5TEwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wOS05NiAgIChoZXgpCQlSREkKKzAwMDk5NiAgICAgKGJhc2UgMTYpCQlSREkKKwkJCQkyMDQwNiBFYXJsIFN0LgorCQkJCVRvcnJhbmNlIENBIDkwNTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS05NyAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMDk5NyAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk4MjAwIERpeGllIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMDktOTggICAoaGV4KQkJQ2FwaW5mbyBDb21wYW55IExpbWl0ZWQKKzAwMDk5OCAgICAgKGJhc2UgMTYpCQlDYXBpbmZvIENvbXBhbnkgTGltaXRlZAorCQkJCTd0aCBGbG9vciBBIENvcnBvcmF0ZSBTcXVhcmUsIE5PLiAzNSBGaW4KKwkJCQlCZWlqaW5nICAxMDAwMzIKKwkJCQlDSElOQQorCiswMC0wOS05OSAgIChoZXgpCQlDUCBHRU9SR0VTIFJFTkFVTFQKKzAwMDk5OSAgICAgKGJhc2UgMTYpCQlDUCBHRU9SR0VTIFJFTkFVTFQKKwkJCQkzOCBSdWUgQm9iYnkgU2FuZHMKKwkJCQk0NDgwMCBTYWludCBIZXJibGFpbiAKKwkJCQlGUkFOQ0UKKworMDAtMDktOUEgICAoaGV4KQkJRUxNTyBDT01QQU5ZLCBMSU1JVEVECiswMDA5OUEgICAgIChiYXNlIDE2KQkJRUxNTyBDT01QQU5ZLCBMSU1JVEVECisJCQkJNi0xNCwgTUVJWkVOLUNITywgTUlaVUhPLUtVCisJCQkJTkFHT1lBIEFJQ0hJLVByZWYuIDQ2Ny04NTY3CisJCQkJSkFQQU4KKworMDAtMDktOUIgICAoaGV4KQkJV2VzdGVybiBUZWxlbWF0aWMgSW5jLgorMDAwOTlCICAgICAoYmFzZSAxNikJCVdlc3Rlcm4gVGVsZW1hdGljIEluYy4KKwkJCQk1IFN0ZXJsaW5nCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS05QyAgIChoZXgpCQlOYXZhbCBSZXNlYXJjaCBMYWJvcmF0b3J5CiswMDA5OUMgICAgIChiYXNlIDE2KQkJTmF2YWwgUmVzZWFyY2ggTGFib3JhdG9yeQorCQkJCUNvZGUgNTU5MgorCQkJCTQ1NTUgT3Zlcmxvb2sgQXZlbnVlCisJCQkJV2FzaGluZ3RvbiBEQyAyMDM3NS01MDAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS05RCAgIChoZXgpCQlIYWxpcGxleCBDb21tdW5pY2F0aW9ucworMDAwOTlEICAgICAoYmFzZSAxNikJCUhhbGlwbGV4IENvbW11bmljYXRpb25zCisJCQkJUE8gQm94IDE0NworCQkJCU1vb3Jvb2xiYXJrIFZpYyAzMTM4CisJCQkJQVVTVFJBTElBCisKKzAwLTA5LTlFICAgKGhleCkJCVRlc3RlY2gsIEluYy4KKzAwMDk5RSAgICAgKGJhc2UgMTYpCQlUZXN0ZWNoLCBJbmMuCisJCQkJQnVuZGFuZy1UZWNobm9wYXJrLCBDLURvbmcsIDcwMi1IbywgIzE0NQorCQkJCVlhdGFwLURvbmcsIEJ1bmRhbmctR3UsCisJCQkJU3VuZ25hbS1DaXR5IEt5dW5na2ktRG8gNDYzLTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS05RiAgIChoZXgpCQlWSURFWCBJTkMuCiswMDA5OUYgICAgIChiYXNlIDE2KQkJVklERVggSU5DLgorCQkJCTExMDUgTkUgQ2lyY2xlIEJsdmQKKwkJCQlDb3J2YWxsaXMgT1IgOTczMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUEwICAgKGhleCkJCU1pY3JvdGVjaG5vIENvcnBvcmF0aW9uCiswMDA5QTAgICAgIChiYXNlIDE2KQkJTWljcm90ZWNobm8gQ29ycG9yYXRpb24KKwkJCQkyLTMzLTM2IFNoaW1vb2RhbmFrYQorCQkJCU5ha2FoYXJhLWt1CisJCQkJS2F3YXNha2kgS2FuYWdhd2EgMjExLTAwNDEKKwkJCQlKQVBBTgorCiswMC0wOS1BMSAgIChoZXgpCQlUZWxld2lzZSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwOUExICAgICAoYmFzZSAxNikJCVRlbGV3aXNlIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMjA1MCBSaW5nd29vZCBBdmVudWUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktQTIgICAoaGV4KQkJSW50ZXJmYWNlIENvLiwgTHRkLgorMDAwOUEyICAgICAoYmFzZSAxNikJCUludGVyZmFjZSBDby4sIEx0ZC4KKwkJCQkyLTUtMTItMjAxIEt5b25hbmNobworCQkJCU11c2FzaGluby1jaXR5IFRva3lvIDE4MC0wMDIzCisJCQkJSkFQQU4KKworMDAtMDktQTMgICAoaGV4KQkJTGVhZGZseSBUZWNob2xvZ2llcyBDb3JwLiBMdGQuCiswMDA5QTMgICAgIChiYXNlIDE2KQkJTGVhZGZseSBUZWNob2xvZ2llcyBDb3JwLiBMdGQuCisJCQkJOUZsLCBOby4yNjAsIEJhZGUgUmQuLAorCQkJCTEwNCwgUi5PLkMuCisJCQkJVGFpcGVpICAxMDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LUE0ICAgKGhleCkJCUhBUlRFQyBDb3Jwb3JhdGlvbgorMDAwOUE0ICAgICAoYmFzZSAxNikJCUhBUlRFQyBDb3Jwb3JhdGlvbgorCQkJCUtPVUhPS1VLVSBTSElOLVlPS09IQU1BCisJCQkJMy0xOS01CisJCQkJWU9LT0hBTUEtU0hJIEtBTkFHQVdBLUtFTiAyMjItMDAzMworCQkJCUpBUEFOCisKKzAwLTA5LUE1ICAgKGhleCkJCUhBTlNVTkcgRUxFVFJPTklDIElORFVTVFJJRVMgREVWRUxPUE1FTlQgQ08uLCBMVEQKKzAwMDlBNSAgICAgKGJhc2UgMTYpCQlIQU5TVU5HIEVMRVRST05JQyBJTkRVU1RSSUVTIERFVkVMT1BNRU5UIENPLiwgTFRECisJCQkJSEVVTkdKSU4gQkxERyAzRiwgIzIxNy0zIFBPSS1ET05HLCBLQU5HTgorCQkJCVNFT1VMICAxMzUtOTYzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LUE2ICAgKGhleCkJCUlnbmlzIE9wdGljcywgSW5jLgorMDAwOUE2ICAgICAoYmFzZSAxNikJCUlnbmlzIE9wdGljcywgSW5jLgorCQkJCTQ4MiBXLiBTYW4gQ2FybG9zCisJCQkJU2FuIEpvc2UgQ2FsaWZvcm5pYSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktQTcgICAoaGV4KQkJQmFuZyAmIE9sdWZzZW4gQS9TCiswMDA5QTcgICAgIChiYXNlIDE2KQkJQmFuZyAmIE9sdWZzZW4gQS9TCisJCQkJUGV0ZXIgQmFuZ3MgVmVqIDE1CisJCQkJU3RydWVyICA3NjAwCisJCQkJREVOTUFSSworCiswMC0wOS1BOCAgIChoZXgpCQlFYXN0bW9kZSBQdGUgTHRkCiswMDA5QTggICAgIChiYXNlIDE2KQkJRWFzdG1vZGUgUHRlIEx0ZAorCQkJCTMwIExveWFuZyBXYXkgIzA3LTA2CisJCQkJTG95YW5nIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJNTA4NzY5CisJCQkJU0lOR0FQT1JFCisKKzAwLTA5LUE5ICAgKGhleCkJCUlrYW5vcyBDb21tdW5pY2F0aW9ucworMDAwOUE5ICAgICAoYmFzZSAxNikJCUlrYW5vcyBDb21tdW5pY2F0aW9ucworCQkJCTQ3NzA5IEZyZW1vbnQgQmx2ZAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUFBICAgKGhleCkJCURhdGEgQ29tbSBmb3IgQnVzaW5lc3MsIEluYy4KKzAwMDlBQSAgICAgKGJhc2UgMTYpCQlEYXRhIENvbW0gZm9yIEJ1c2luZXNzLCBJbmMuCisJCQkJMjk0OSBDb3VudHkgUm9hZCAxMDAwIEVhc3QKKwkJCQlEZXdleSBJTCA2MTg1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktQUIgICAoaGV4KQkJTmV0Y29udHJvbCBPeQorMDAwOUFCICAgICAoYmFzZSAxNikJCU5ldGNvbnRyb2wgT3kKKwkJCQlLYXJ2YWFtb2t1amEgMworCQkJCUhlbHNpbmtpICBGSU4gMDAzODAKKwkJCQlGSU5MQU5ECisKKzAwLTA5LUFDICAgKGhleCkJCUxBTlZPSUNFCiswMDA5QUMgICAgIChiYXNlIDE2KQkJTEFOVk9JQ0UKKwkJCQkxMzY0LTM5IFNlb2Nob0RvbmcsICMyMDEgSmlodW4gQmxkZworCQkJCVNlb2Noby1HdQorCQkJCVNlb3VsICAxMzctMDcyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LUFEICAgKGhleCkJCUhZVU5EQUkgU1lTQ09NTSwgSU5DLgorMDAwOUFEICAgICAoYmFzZSAxNikJCUhZVU5EQUkgU1lTQ09NTSwgSU5DLgorCQkJCVNBTiAxMzYtMSwgQU1JLVJJLCBCVUJBTC1FVUIKKwkJCQlJQ0hPTiBLWU9VTkdLSS1ETyA0NjctNzAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LUFFICAgKGhleCkJCU9LQU5PIEVMRUNUUklDIENPLixMVEQKKzAwMDlBRSAgICAgKGJhc2UgMTYpCQlPS0FOTyBFTEVDVFJJQyBDTy4sTFRECisJCQkJMi04LTE4IEtBTkFZQU1BLUNITworCQkJCUhJR0FTSElLVVJVTUUgVE9LWU8gMjAzLTAwMDMKKwkJCQlKQVBBTgorCiswMC0wOS1BRiAgIChoZXgpCQllLWdlbmVyaXMKKzAwMDlBRiAgICAgKGJhc2UgMTYpCQllLWdlbmVyaXMKKwkJCQkxMyBydWUgZHUgY2hlbmUgZ2VybWFpbgorCQkJCWNlc3NvbiBzZXZpZ25lICAzNTUxMAorCQkJCUZSQU5DRQorCiswMC0wOS1CMCAgIChoZXgpCQlPbmt5byBDb3Jwb3JhdGlvbgorMDAwOUIwICAgICAoYmFzZSAxNikJCU9ua3lvIENvcnBvcmF0aW9uCisJCQkJMi0xIE5pc3NoaW4tY2hvCisJCQkJTmV5YWdhd2EgT3Nha2EgNTcyODU0MAorCQkJCUpBUEFOCisKKzAwLTA5LUIxICAgKGhleCkJCUthbmVtYXRzdSBFbGVjdHJvbmljcywgTHRkLgorMDAwOUIxICAgICAoYmFzZSAxNikJCUthbmVtYXRzdSBFbGVjdHJvbmljcywgTHRkLgorCQkJCTE3LTUsIEt5b2Jhc2hpIDItY2hvbWUKKwkJCQlDaHVvLWt1IFRva3lvIDEwNC04MzM4CisJCQkJSkFQQU4KKworMDAtMDktQjIgICAoaGV4KQkJTCZGIEluYy4KKzAwMDlCMiAgICAgKGJhc2UgMTYpCQlMJkYgSW5jLgorCQkJCTQtMi05CisJCQkJVE9LVU1BUlUKKwkJCQlJVEFCQVNISS1LVSBUb2t5byAxNzUtMDA4MworCQkJCUpBUEFOCisKKzAwLTA5LUIzICAgKGhleCkJCU1DTSBTeXN0ZW1zIEx0ZAorMDAwOUIzICAgICAoYmFzZSAxNikJCU1DTSBTeXN0ZW1zIEx0ZAorCQkJCUtvbG9tYmFuIDlGCisJCQkJQW5rYXJhbiBTbG92ZW5pamEgNjI4MAorCQkJCVNMT1ZFTklBCisKKzAwLTA5LUI0ICAgKGhleCkJCUtJU0FOIFRFTEVDT00gQ08uLCBMVEQuCiswMDA5QjQgICAgIChiYXNlIDE2KQkJS0lTQU4gVEVMRUNPTSBDTy4sIExURC4KKwkJCQk5RiwgVGVhd29uIEJsZGcuLCA2NSBCYW5neWktRG9uZworCQkJCVNvbmdwYS1HdSBTZW91bCAxMzgtODI4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LUI1ICAgKGhleCkJCTNKIFRlY2guIENvLiwgTHRkLgorMDAwOUI1ICAgICAoYmFzZSAxNikJCTNKIFRlY2guIENvLiwgTHRkLgorCQkJCTM0MiBGdXNoaW5nIE4uIFJkLiwgMkYsIFRhaXBlaSwgVGFpd2FuCisJCQkJVGFpcGVpICAxMDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LUI2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDlCNiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ2EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUI3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDlCNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTQxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUI4ICAgKGhleCkJCUVudGlzZSBTeXN0ZW1zCiswMDA5QjggICAgIChiYXNlIDE2KQkJRW50aXNlIFN5c3RlbXMKKwkJCQkxMDA5NSBKdWR5IEF2ZW51ZQorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktQjkgICAoaGV4KQkJQWN0aW9uIEltYWdpbmcgU29sdXRpb25zCiswMDA5QjkgICAgIChiYXNlIDE2KQkJQWN0aW9uIEltYWdpbmcgU29sdXRpb25zCisJCQkJS2luZ3MgSGFsbCwgU3QgSXZlcyBCdXNpbmVzcyBQYXJrCisJCQkJU3QgSXZlcworCQkJCUh1bnRpbmdkb24gQ2FtYnJpZGdlc2hpcmUgUEUyNyA0V1kKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wOS1CQSAgIChoZXgpCQlNQUtVIEluZm9ybWF0aW9uc3RlY2hpayBHbWJICiswMDA5QkEgICAgIChiYXNlIDE2KQkJTUFLVSBJbmZvcm1hdGlvbnN0ZWNoaWsgR21iSAorCQkJCUdld2VyYmVob2ZzdHIuIDcKKwkJCQlFc3NlbiBOUlcgNDUxNDUKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LUJCICAgKGhleCkJCU1hdGhTdGFyLCBJbmMuCiswMDA5QkIgICAgIChiYXNlIDE2KQkJTWF0aFN0YXIsIEluYy4KKwkJCQk1OTAwIEdyZWVuIE9hayBEcml2ZQorCQkJCU1pbm5lYXBvbGlzIE1OIDU1MzQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1CQyAgIChoZXgpCQlEaWdpdGFsIFNhZmV0eSBUZWNobm9sb2dpZXMsIEluYworMDAwOUJDICAgICAoYmFzZSAxNikJCURpZ2l0YWwgU2FmZXR5IFRlY2hub2xvZ2llcywgSW5jCisJCQkJNTExIERhdmlzIERyLgorCQkJCVN1aXRlIDMwMAorCQkJCU1vcnJpc3ZpbGxlIE5DIDI3NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1CRCAgIChoZXgpCQlFcHlnaSBUZWNobm9sb2dpZXMsIEx0ZC4KKzAwMDlCRCAgICAgKGJhc2UgMTYpCQlFcHlnaSBUZWNobm9sb2dpZXMsIEx0ZC4KKwkJCQk1MDQwIEFkZGlzb24gQ2lyY2xlCisJCQkJU3VpdGUgMjI1CisJCQkJQWRkaXNvbiBUZXhhcyA3NTAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktQkUgICAoaGV4KQkJTWFtaXlhLU9QIENvLixMdGQuCiswMDA5QkUgICAgIChiYXNlIDE2KQkJTWFtaXlhLU9QIENvLixMdGQuCisJCQkJMy0yMy0xMCwgTmVnaXNoaSBNaW5hbWkta3UKKwkJCQlTYWl0YW1hLXNoaSBTYWl0YW1hIDMzNi04NTgxCisJCQkJSkFQQU4KKworMDAtMDktQkYgICAoaGV4KQkJTmludGVuZG8gQ28uLEx0ZC4KKzAwMDlCRiAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTA5LUMwICAgKGhleCkJCTZXSU5ECiswMDA5QzAgICAgIChiYXNlIDE2KQkJNldJTkQKKwkJCQkxLCBwbGFjZSBDaGFybGVzIGRlIEdhdWxsZQorCQkJCU1vbnRpZ255LWxlLUJyZXRvbm5ldXggIDc4MTgwCisJCQkJRlJBTkNFCisKKzAwLTA5LUMxICAgKGhleCkJCVBST0NFUy1EQVRBIEEvUworMDAwOUMxICAgICAoYmFzZSAxNikJCVBST0NFUy1EQVRBIEEvUworCQkJCU5hdmVydmVqIDgKKwkJCQlTaWxrZWJvcmcgIERLLTg2MDAKKwkJCQlERU5NQVJLCisKKzAwLTA5LUMyICAgKGhleCkJCU9uaXR5LCBJbmMuCiswMDA5QzIgICAgIChiYXNlIDE2KQkJT25pdHksIEluYy4KKwkJCQkyMjMyIE5vcnRobW9udCBQYXJrd2F5CisJCQkJRHVsdXRoIEdBIDMwMDk2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1DMyAgIChoZXgpCQlORVRBUworMDAwOUMzICAgICAoYmFzZSAxNikJCU5FVEFTCisJCQkJQWxlbWRhZyBDYWQuIE5vIDE3MQorCQkJCVVNUkFOSVlFCisJCQkJSVNUQU5CVUwgIDgxMjQ0CisJCQkJVFVSS0VZCisKKzAwLTA5LUM0ICAgKGhleCkJCU1lZGljb3JlIENvLiwgTHRkCiswMDA5QzQgICAgIChiYXNlIDE2KQkJTWVkaWNvcmUgQ28uLCBMdGQKKwkJCQk3Mi0zIDV0aCBGbC4sIEx1bmEgQmxkZywgQ2h1bmdkYW0tZG9uZworCQkJCUthbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1DNSAgIChoZXgpCQlLSU5HRU5FIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMDlDNSAgICAgKGJhc2UgMTYpCQlLSU5HRU5FIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk3RiwgTm8uIDE0NCwgTWluY2h1YW4gRS4gUmQuIFNlYy4gMworCQkJCVRhaXBlaSAgMTA1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS1DNiAgIChoZXgpCQlWaXNpb25pY3MgQ29ycG9yYXRpb24KKzAwMDlDNiAgICAgKGJhc2UgMTYpCQlWaXNpb25pY3MgQ29ycG9yYXRpb24KKwkJCQk1NjAwIFJvd2xhbmQgUm9hZAorCQkJCVN1aXRlIDIwNQorCQkJCU1pbm5ldG9ua2EgTU4gNTUzNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUM3ICAgKGhleCkJCU1vdmlzdGVjCiswMDA5QzcgICAgIChiYXNlIDE2KQkJTW92aXN0ZWMKKwkJCQkxMTAtNSBNYXJ5b3VuZyAtcmkgU2Vvc3UtbXl1bgorCQkJCUt1bnNhbiBDaG9uYnVrIDU3My05NDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktQzggICAoaGV4KQkJU0lOQUdBV0EgVFNVU0hJTiBLRUlTT1UgU0VSVklDRQorMDAwOUM4ICAgICAoYmFzZSAxNikJCVNJTkFHQVdBIFRTVVNISU4gS0VJU09VIFNFUlZJQ0UKKwkJCQkxMy01IEZ1a2UgLCBTdW1peW9zaGkgLCBPbmFoYW1hCisJCQkJSXdha2kgQ2l0eSBGdWt1c2hpbWEgUHJlZmVjdHVyZSA5NzEtODEyNAorCQkJCUpBUEFOCisKKzAwLTA5LUM5ICAgKGhleCkJCUJsdWVXSU5DIENvLiwgTHRkLgorMDAwOUM5ICAgICAoYmFzZSAxNikJCUJsdWVXSU5DIENvLiwgTHRkLgorCQkJCTQwMSBLb3JlYSBEZXNpZ24gQ2VudGVyCisJCQkJMzQ0LTEgWWF0YXAxLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbSBDaXR5IEt5b25nZ2nigJNkbyA0NjMtODI4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LUNBICAgKGhleCkJCWlNYXhOZXR3b3JrcyhTaGVuemhlbilMaW1pdGVkLgorMDAwOUNBICAgICAoYmFzZSAxNikJCWlNYXhOZXR3b3JrcyhTaGVuemhlbilMaW1pdGVkLgorCQkJCTQvQixTb3V0aCBCbGRnIG9mIDI5dGgsU291dGggRGlzdHJpY3Qgb2YKKwkJCQlTaGVuemhlbiBIaS1UZWNoIEluZHVzdHJpYWwgUGFyaywgU2hlbm5hCisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTA5LUNCICAgKGhleCkJCUhCcmFpbgorMDAwOUNCICAgICAoYmFzZSAxNikJCUhCcmFpbgorCQkJCSM3MDUgS3dhbmdsaW0gQmxkZyAxNzkgS3VtaURvbmcKKwkJCQlCdW5kYW5nIEd1CisJCQkJU2VvbmduYW0gR3llb25nZ2lEbyA0NjMtODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LUNDICAgKGhleCkJCU1vb2cgR21iSAorMDAwOUNDICAgICAoYmFzZSAxNikJCU1vb2cgR21iSAorCQkJCUhhbm5zLUtsZW1tLVN0ci4gMjgKKwkJCQlCb2VibGluZ2VuICBELTcxMDM0CisJCQkJR0VSTUFOWQorCiswMC0wOS1DRCAgIChoZXgpCQlIVURTT04gU09GVCBDTy4sTFRELgorMDAwOUNEICAgICAoYmFzZSAxNikJCUhVRFNPTiBTT0ZUIENPLixMVEQuCisJCQkJQzYyLEdlaWp1dHN1LW5vLW1vcmkKKwkJCQkzLWNob21lLE1pbmFtaS1rdQorCQkJCVNhcHBvcm8gSG9ra2FpZG8gMDA1LTA4NjQKKwkJCQlKQVBBTgorCiswMC0wOS1DRSAgIChoZXgpCQlTcGFjZUJyaWRnZSBTZW1pY29uZHVjdG9yIENvcnAuCiswMDA5Q0UgICAgIChiYXNlIDE2KQkJU3BhY2VCcmlkZ2UgU2VtaWNvbmR1Y3RvciBDb3JwLgorCQkJCTExNSBydWUgQ2hhbXBsYWluCisJCQkJSHVsbCBRdWViZWMgSjhYM1IxCisJCQkJQ0FOQURBCisKKzAwLTA5LUNGICAgKGhleCkJCWlBZCBHbWJICiswMDA5Q0YgICAgIChiYXNlIDE2KQkJaUFkIEdtYkgKKwkJCQlVbnRlcnNjaGxhdWVyc2JhY2hlciBIYXVwdHN0cmFzc2UgMTAKKwkJCQlHcm9zc2hhYmVyc2RvcmYgQmF2YXJpYSA5MDYxMworCQkJCUdFUk1BTlkKKworMDAtMDktRDAgICAoaGV4KQkJU29sYWNvbSBUZWNobm9sb2dpZXMgSW5jLgorMDAwOUQwICAgICAoYmFzZSAxNikJCVNvbGFjb20gVGVjaG5vbG9naWVzIEluYy4KKwkJCQk4MCBKZWFuLVByb3VseAorCQkJCUdhdGluZWF1IFF1ZWJlYyBKOFogMVcxCisJCQkJQ0FOQURBCisKKzAwLTA5LUQxICAgKGhleCkJCVNFUkFOT0EgTkVUV09SS1MgSU5DCiswMDA5RDEgICAgIChiYXNlIDE2KQkJU0VSQU5PQSBORVRXT1JLUyBJTkMKKwkJCQlDT05DT1JEIE9GRklDRSBDRU5URVIKKwkJCQkyMzUyIE1BSU4gU1QKKwkJCQlDT05DT1JEIE1BIDAxNzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1EMiAgIChoZXgpCQlNYWkgTG9naWMgSW5jLgorMDAwOUQyICAgICAoYmFzZSAxNikJCU1haSBMb2dpYyBJbmMuCisJCQkJNDc2OTcgV2VzdGluZ2hvdXNlIERyLiwgU3VpdGUgMjAwCisJCQkJRnJlbW9udCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRDMgICAoaGV4KQkJV2VzdGVybiBEYXRhQ29tIENvLiwgSW5jLgorMDAwOUQzICAgICAoYmFzZSAxNikJCVdlc3Rlcm4gRGF0YUNvbSBDby4sIEluYy4KKwkJCQk5MjUtRCBCYXNzZXR0IFJkLgorCQkJCVdlc3RsYWtlIE9IIDQ0MTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1ENCAgIChoZXgpCQlUcmFuc3RlY2ggTmV0d29ya3MKKzAwMDlENCAgICAgKGJhc2UgMTYpCQlUcmFuc3RlY2ggTmV0d29ya3MKKwkJCQkxMDAgV29vZCBBdmVudWUKKwkJCQlTdWl0ZSAyMDQKKwkJCQlJc2VsaW4gTkogMDg4MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUQ1ICAgKGhleCkJCVNpZ25hbCBDb21tdW5pY2F0aW9uLCBJbmMuCiswMDA5RDUgICAgIChiYXNlIDE2KQkJU2lnbmFsIENvbW11bmljYXRpb24sIEluYy4KKwkJCQkxMDAgV29vZCBBdmUgU291dGgKKwkJCQlTdWl0ZSAxMDMKKwkJCQlJc2VsaW4gTkogMDg4MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUQ2ICAgKGhleCkJCUtOQyBPbmUgR21iSAorMDAwOUQ2ICAgICAoYmFzZSAxNikJCUtOQyBPbmUgR21iSAorCQkJCUhvaGUgV2VsbGUgMTAgQgorCQkJCUV2ZXNzZW4gTmllZGVyc2FjaHNlbiAzODE3MworCQkJCUdFUk1BTlkKKworMDAtMDktRDcgICAoaGV4KQkJREMgU2VjdXJpdHkgUHJvZHVjdHMKKzAwMDlENyAgICAgKGJhc2UgMTYpCQlEQyBTZWN1cml0eSBQcm9kdWN0cworCQkJCU9uZSBMaW5kc2F5IENpcmNsZQorCQkJCVNhbiBGcmFuY2lzY28gQ2FsaWZvcm5pYSA5NDEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRDggICAoaGV4KQkJRuRsdCBDb21tdW5pY2F0aW9ucyBBQgorMDAwOUQ4ICAgICAoYmFzZSAxNikJCUbkbHQgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlLeWxncuRuZCA2QQorCQkJCVNFIDkwNiAyMCBVbWXlIAorCQkJCVNXRURFTgorCiswMC0wOS1EOSAgIChoZXgpCQlOZW9zY2FsZSBTeXN0ZW1zLCBJbmMKKzAwMDlEOSAgICAgKGJhc2UgMTYpCQlOZW9zY2FsZSBTeXN0ZW1zLCBJbmMKKwkJCQkxNTAwIE1jIENhbmRsZXNzIERyaXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LURBICAgKGhleCkJCUNvbnRyb2wgTW9kdWxlIEluYy4KKzAwMDlEQSAgICAgKGJhc2UgMTYpCQlDb250cm9sIE1vZHVsZSBJbmMuCisJCQkJMjI3IEJyYWluYXJkIFJvYWQKKwkJCQlFbmZpZWxkIENUIDA2MDgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1EQiAgIChoZXgpCQllU3BhY2UKKzAwMDlEQiAgICAgKGJhc2UgMTYpCQllU3BhY2UKKwkJCQk5NjIzIFNpbXNidXJ5IEN0LgorCQkJCVR3aW5zYnVyZyBPSCA0NDA4Ny0zMjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1EQyAgIChoZXgpCQlHYWxheGlzIFRlY2hub2xvZ3kgQUcKKzAwMDlEQyAgICAgKGJhc2UgMTYpCQlHYWxheGlzIFRlY2hub2xvZ3kgQUcKKwkJCQlTdGVpbm1ldHpzdHJhc3NlIDcKKwkJCQlQLk8uIEJveCAzMzY0CisJCQkJTPxiZWNrIFNjaGxlc3dpZy1Ib2xzdGVpbiAyMzU1NgorCQkJCUdFUk1BTlkKKworMDAtMDktREQgICAoaGV4KQkJTWF2aW4gVGVjaG5vbG9neSBJbmMuCiswMDA5REQgICAgIChiYXNlIDE2KQkJTWF2aW4gVGVjaG5vbG9neSBJbmMuCisJCQkJUm9vbSAzMDUsIEJsZGcuIDUyIE5vLiAxOTUtMjgKKwkJCQlTZWMuIDQgQ2h1bmctSHNpbmcgUmQuCisJCQkJQ2h1dHVuZywgSHNpbmNodSAgMzEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS1ERSAgIChoZXgpCQlTYW1qaW4gSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMDlERSAgICAgKGJhc2UgMTYpCQlTYW1qaW4gSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQlNYWphbmdNeXVuIER1a1B5dW5nUmkgMjM1LTIKKwkJCQlJY2hvbiBLeW9uZ0dpIDQ2Ny04MTIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktREYgICAoaGV4KQkJVmVzdGVsIEtvbXVuaWthc3lvbiBTYW5heWkgdmUgVGljYXJldCBBLlMuCiswMDA5REYgICAgIChiYXNlIDE2KQkJVmVzdGVsIEtvbXVuaWthc3lvbiBTYW5heWkgdmUgVGljYXJldCBBLlMuCisJCQkJRWdlIFNlcmJlc3QgQm9sZ2VzaSBObzoxNDQvMQorCQkJCUdhemllbWlyCisJCQkJSXptaXIgLSAzNTQxMAorCQkJCVRVUktFWQorCiswMC0wOS1FMCAgIChoZXgpCQlYRU1JQ1MgUy5BLgorMDAwOUUwICAgICAoYmFzZSAxNikJCVhFTUlDUyBTLkEuCisJCQkJUnVlIGRlIGxhIE1hbGFkaWVyZSA3MQorCQkJCUNILTIwMDcgTmV1Y2hhdGVsIE5ldWNoYXRlbCAyMDA3CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMDktRTEgICAoaGV4KQkJR2VtdGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDA5RTEgICAgIChiYXNlIDE2KQkJR2VtdGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uMSBKZW4gQWkgUm9hZAorCQkJCUh1a291IEhzaW5jaHUgMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS1FMiAgIChoZXgpCQlTaW5ib24gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDA5RTIgICAgIChiYXNlIDE2KQkJU2luYm9uIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTRGLTEzLCBOby4gNzksIFNlYyAxLCBIc2luIFRhaSBXdSBSZC4KKwkJCQlIc2ktQ2hpaCwgVGFpcGVpICAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LUUzICAgKGhleCkJCUFuZ2VsIElnbGVzaWFzIFMuQS4KKzAwMDlFMyAgICAgKGJhc2UgMTYpCQlBbmdlbCBJZ2xlc2lhcyBTLkEuCisJCQkJUG9s7Wdvbm8gMjcgTWFydHV0ZW5lCisJCQkJU2FuIFNlYmFzdGnhbiBHdWlw+npjb2EgMjAwMTQKKwkJCQlTUEFJTgorCiswMC0wOS1FNCAgIChoZXgpCQlLIFRlY2ggSW5mb3N5c3RlbSBJbmMuCiswMDA5RTQgICAgIChiYXNlIDE2KQkJSyBUZWNoIEluZm9zeXN0ZW0gSW5jLgorCQkJCUItNDA1LCBCdW5kYW5nIFRlY2huby1QYXJrIDE0OCwgWWF0YXAtZG8KKwkJCQlTZW9uZ25hbSBLeW9uZ2dpLURvIDQ2NC0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktRTUgICAoaGV4KQkJSG90dGluZ2VyIEJhbGR3aW4gTWVzc3RlY2huaWsgR21iSAorMDAwOUU1ICAgICAoYmFzZSAxNikJCUhvdHRpbmdlciBCYWxkd2luIE1lc3N0ZWNobmlrIEdtYkgKKwkJCQlJbSBUaWVmZW4gU2VlIDQ1CisJCQkJRGFybXN0YWR0IEhlc3NlbiA2NDI5MworCQkJCUdFUk1BTlkKKworMDAtMDktRTYgICAoaGV4KQkJQ3liZXIgU3dpdGNoaW5nIEluYy4KKzAwMDlFNiAgICAgKGJhc2UgMTYpCQlDeWJlciBTd2l0Y2hpbmcgSW5jLgorCQkJCTE4MDAgRGUgTGEgQ3J1eiBCbHZkLgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1FNyAgIChoZXgpCQlBREMgVGVjaG9ub2xvZ3kKKzAwMDlFNyAgICAgKGJhc2UgMTYpCQlBREMgVGVjaG9ub2xvZ3kKKwkJCQlTYWthZSBNZW1iZXJzIE9mZmljZSBCbGQuIDQtMTYtOCwgU2FrYWUsCisJCQkJTmFnb3lhIEFpY2hpIDQ2MDAwMDgKKwkJCQlKQVBBTgorCiswMC0wOS1FOCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA5RTggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1FOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA5RTkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1FQSAgIChoZXgpCQlZRU0gSW5jLgorMDAwOUVBICAgICAoYmFzZSAxNikJCVlFTSBJbmMuCisJCQkJMS0zLTMzCisJCQkJT2thdGEKKwkJCQlBdHN1Z2ktc2hpIEthbmFnYXdhIDI0My0wMDIxCisJCQkJSkFQQU4KKworMDAtMDktRUIgICAoaGV4KQkJSHVNQU5EQVRBIExURC4KKzAwMDlFQiAgICAgKGJhc2UgMTYpCQlIdU1BTkRBVEEgTFRELgorCQkJCTEtMi01MQorCQkJCU5ha2Fob3p1bWkKKwkJCQlJYmFyYWtpIE9zYWthIDU2Ny0wMDM0CisJCQkJSkFQQU4KKworMDAtMDktRUMgICAoaGV4KQkJRGFrdHJvbmljcywgSW5jLgorMDAwOUVDICAgICAoYmFzZSAxNikJCURha3Ryb25pY3MsIEluYy4KKwkJCQkzMTUgMzJuZCBBdmUKKwkJCQlCdWlsZGluZyAjMgorCQkJCUJyb29raW5ncyBTRCA1NzAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRUQgICAoaGV4KQkJQ2lwaGVyT3B0aWNzCiswMDA5RUQgICAgIChiYXNlIDE2KQkJQ2lwaGVyT3B0aWNzCisJCQkJNzAxIENvcnBvcmF0ZSBDZW50ZXIgRHJpdmUKKwkJCQlTdWl0ZSAxNTAKKwkJCQlSYWxlaWdoIE5vcnRoIENhcm9saW5hIDI3NjA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1FRSAgIChoZXgpCQlNRUlLWU8gRUxFQ1RSSUMgQ08uLExURAorMDAwOUVFICAgICAoYmFzZSAxNikJCU1FSUtZTyBFTEVDVFJJQyBDTy4sTFRECisJCQkJNC0yNy0yIEhpZ2FzaGlvZ3UKKwkJCQlBcmFrYXdhLWt1IFRva3lvIDExNi0wMDEyCisJCQkJSkFQQU4KKworMDAtMDktRUYgICAoaGV4KQkJVm9jZXJhIENvbW11bmljYXRpb25zCiswMDA5RUYgICAgIChiYXNlIDE2KQkJVm9jZXJhIENvbW11bmljYXRpb25zCisJCQkJNTI1IFJhY2UgU3QuCisJCQkJU3VpdGUgMTUwCisJCQkJU2FuIEpvc2UgQ2FsaWZvcm5pYSA5NTEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRjAgICAoaGV4KQkJU2hpbWl6dSBUZWNobm9sb2d5IEluYy4KKzAwMDlGMCAgICAgKGJhc2UgMTYpCQlTaGltaXp1IFRlY2hub2xvZ3kgSW5jLgorCQkJCTE1LTYsIE5vLjEwNywgQ2h1bmcgU2hhbiBSZC4sIFNlYy4xCisJCQkJSHNpbiBDaHVhbiwgVGFpcGVpIDI0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktRjEgICAoaGV4KQkJWWFtYWtpIEVsZWN0cmljIENvcnBvcmF0aW9uCiswMDA5RjEgICAgIChiYXNlIDE2KQkJWWFtYWtpIEVsZWN0cmljIENvcnBvcmF0aW9uCisJCQkJMy03LTIyIFNoaW1vbWVndXJvCisJCQkJTWVndXJvLWt1IFRva3lvIDE1My0wMDY0CisJCQkJSkFQQU4KKworMDAtMDktRjIgICAoaGV4KQkJQ29odSwgSW5jLiwgRWxlY3Ryb25pY3MgRGl2aXNpb24KKzAwMDlGMiAgICAgKGJhc2UgMTYpCQlDb2h1LCBJbmMuLCBFbGVjdHJvbmljcyBEaXZpc2lvbgorCQkJCTM5MTIgQ2FsbGUgRm9ydHVuYWRhCisJCQkJU2FuIERpZWdvIENBIDkyMTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1GMyAgIChoZXgpCQlXRUxMIENvbW11bmljYXRpb24gQ29ycC4KKzAwMDlGMyAgICAgKGJhc2UgMTYpCQlXRUxMIENvbW11bmljYXRpb24gQ29ycC4KKwkJCQkxMUYsIE5vLjc3OCwgQ2h1bmcgQ2hlbmcgUmQuLCBDaHVuZyBIbyBDCisJCQkJQ2h1bmcgSG8gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktRjQgICAoaGV4KQkJQWxjb24gTGFib3JhdG9yaWVzLCBJbmMuCiswMDA5RjQgICAgIChiYXNlIDE2KQkJQWxjb24gTGFib3JhdG9yaWVzLCBJbmMuCisJCQkJNjIwMSBTb3V0aCBGcmVld2F5CisJCQkJRm9ydCBXb3J0aCBUeCA3NjEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRjUgICAoaGV4KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyIENvLixMdGQKKzAwMDlGNSAgICAgKGJhc2UgMTYpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIgQ28uLEx0ZAorCQkJCTEvRiwzL0YgRWxlY3RyaWMgQnVpbGRpbmcgSHVhd2VpIEJhc2UsQmEKKwkJCQlMb25nZ2FuZyxTaGVuemhlbiBNdW5pY2lwYWxpdHksUGVvcGxloa9zCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODAyOQorCQkJCUNISU5BCisKKzAwLTA5LUY2ICAgKGhleCkJCVNoZW56aGVuIEVhc3Rlcm4gRGlnaXRhbCBUZWNoIEx0ZC4KKzAwMDlGNiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBFYXN0ZXJuIERpZ2l0YWwgVGVjaCBMdGQuCisJCQkJU2hlbnpoZW4gRnV0aWFuIENoZWdvbmdtaWFvIFRhaXJhbgorCQkJCVRlY2hub2xvZ3kgUGFyayAyMTAgLSAzQworCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNDgKKwkJCQlDSElOQQorCiswMC0wOS1GNyAgIChoZXgpCQlTRUQsIGEgZGl2aXNpb24gb2YgQ2FsaWFuCiswMDA5RjcgICAgIChiYXNlIDE2KQkJU0VELCBhIGRpdmlzaW9uIG9mIENhbGlhbgorCQkJCTE4IElubm5vdmF0aW9uIEJvdWxldmFyZAorCQkJCVAuTy4gQm94IDE0NjQKKwkJCQlTYXNrYXRvb24gU2Fza2F0Y2hld2FuIChTSykgUzdLIDNQNworCQkJCUNBTkFEQQorCiswMC0wOS1GOCAgIChoZXgpCQlVTklNTyBURUNITk9MT0dZIENPLiwgTFRELgorMDAwOUY4ICAgICAoYmFzZSAxNikJCVVOSU1PIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJQkFOR0JBRSBET05HIDQ3OS0xMgorCQkJCVNFT0NITy1HVSwKKwkJCQlTRU9VTCAgMTM3LTgyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1GOSAgIChoZXgpCQlBUlQgSkFQQU4gQ08uLCBMVEQuCiswMDA5RjkgICAgIChiYXNlIDE2KQkJQVJUIEpBUEFOIENPLiwgTFRELgorCQkJCTMyMi03LCBJY2hpbm90c3VibywKKwkJCQlOYWthaGFyYS1rdQorCQkJCUthd2FzYWtpIEthbmFnYXdhIDIxMS0wMDE2CisJCQkJSkFQQU4KKworMDAtMDktRkIgICAoaGV4KQkJUGhpbGlwcyBQYXRpZW50IE1vbml0b3JpbmcKKzAwMDlGQiAgICAgKGJhc2UgMTYpCQlQaGlsaXBzIFBhdGllbnQgTW9uaXRvcmluZworCQkJCUhld2xldHQtUGFja2FyZC1TdHIuMgorCQkJCUJvZWJsaW5nZW4gIDcxMDM0CisJCQkJR0VSTUFOWQorCiswMC0wOS1GQyAgIChoZXgpCQlJUEZMRVggSW5jLgorMDAwOUZDICAgICAoYmFzZSAxNikJCUlQRkxFWCBJbmMuCisJCQkJTW93YS1CbGRnIDNGLCAxLTE2LTYKKwkJCQlFYmlzdS1uaXNoaQorCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUwLTAwMjEKKwkJCQlKQVBBTgorCiswMC0wOS1GRCAgIChoZXgpCQlVYmluZXRpY3MgTGltaXRlZAorMDAwOUZEICAgICAoYmFzZSAxNikJCVViaW5ldGljcyBMaW1pdGVkCisJCQkJQ2FtYnJpZGdlIFRlY2hub2xvZ3kgQ2VudHJlCisJCQkJTWVsYm91cm4gSGVydGZvcmRzaGlyZSBTRzggNkRQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDktRkUgICAoaGV4KQkJRGFpc3kgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA5RkUgICAgIChiYXNlIDE2KQkJRGFpc3kgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTIwOSBPcmFuZ2UgU3RyZWV0CisJCQkJQ291bnR5IG9mIE5ldyBDYXN0bGUKKwkJCQlDaXR5IG9mIFdpbG1pbmd0b24gREUgMTk4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUZGICAgKGhleCkJCVgubmV0IDIwMDAgR21iSAorMDAwOUZGICAgICAoYmFzZSAxNikJCVgubmV0IDIwMDAgR21iSAorCQkJCUtvZW5pZ3NiZXJnZXIgU3RyLiAyYworCQkJCVJlaW5oZWltICA2NDM1NAorCQkJCUdFUk1BTlkKKworMDAtMEEtMDAgICAoaGV4KQkJTWVkaWF0ZWsgQ29ycC4KKzAwMEEwMCAgICAgKGJhc2UgMTYpCQlNZWRpYXRlayBDb3JwLgorCQkJCThGLCBObyA2OS01LCBTZWMuMiwgQ2h1bmcgQ2hlbmcgRWFzdCBSZC4KKwkJCQlUYWlwZWkgIDI1MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtMDEgICAoaGV4KQkJU09IT3dhcmUsIEluYy4KKzAwMEEwMSAgICAgKGJhc2UgMTYpCQlTT0hPd2FyZSwgSW5jLgorCQkJCTMwNTAgQ29yb25hZG8gRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMDIgICAoaGV4KQkJQU5OU08gQ08uLCBMVEQuCiswMDBBMDIgICAgIChiYXNlIDE2KQkJQU5OU08gQ08uLCBMVEQuCisJCQkJNUYsIE5vLiAxMDAsIE1pbi1DaHVhbiBSb2FkLCBTaGluZy1UaWVuCisJCQkJU2hpbmctVGllbiBDaXR5IFRhaXBlaSBIc2llbiBUYWl3YW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS0wMyAgIChoZXgpCQlFTkRFU0EgU0VSVklDSU9TLCBTLkwuCiswMDBBMDMgICAgIChiYXNlIDE2KQkJRU5ERVNBIFNFUlZJQ0lPUywgUy5MLgorCQkJCUFWR0RBIFBBUkFMLkxFTCwgNTEKKwkJCQlCQVJDRUxPTkEgIDA4MDA0CisJCQkJU1BBSU4KKworMDAtMEEtMDQgICAoaGV4KQkJM0NvbSBMdGQKKzAwMEEwNCAgICAgKGJhc2UgMTYpCQkzQ29tIEx0ZAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlQZW9wbGVidWlsZGluZyBFc3RhdGUsIE1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cyBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEEtMDUgICAoaGV4KQkJV2lkYXggQ29ycC4KKzAwMEEwNSAgICAgKGJhc2UgMTYpCQlXaWRheCBDb3JwLgorCQkJCTI2OSBTdGV2ZW5zIFN0cmVldAorCQkJCUh5YW5uaXMgTUEgMDI2NjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTA2ICAgKGhleCkJCVRlbGVkZXggTExDCiswMDBBMDYgICAgIChiYXNlIDE2KQkJVGVsZWRleCBMTEMKKwkJCQk2MzExIFNhbiBJZ25hY2lvIEF2ZW51ZQorCQkJCVNhbiBKb3NlIENBIDk1MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0wNyAgIChoZXgpCQlXZWJXYXlPbmUgTHRkCiswMDBBMDcgICAgIChiYXNlIDE2KQkJV2ViV2F5T25lIEx0ZAorCQkJCTExIEtpbmdmaXNoZXIgQ291cnQsCisJCQkJSGFtYnJpZGdlIFJvYWQKKwkJCQlOZXdidXJ5IEJlcmtzaGlyZSBSRzE0IDVTSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBBLTA4ICAgKGhleCkJCUFMUElORSBFTEVDVFJPTklDUywgSU5DLgorMDAwQTA4ICAgICAoYmFzZSAxNikJCUFMUElORSBFTEVDVFJPTklDUywgSU5DLgorCQkJCTIwLTEgWW9zaGltYS1Lb2d5b2RhbmNoaQorCQkJCWl3YWtpLWNpdHkgRnVrdXNoaW1hIDk3MC0xMTkyCisJCQkJSkFQQU4KKworMDAtMEEtMDkgICAoaGV4KQkJVGFyYUNvbSBJbnRlZ3JhdGVkIFByb2R1Y3RzLCBJbmMuCiswMDBBMDkgICAgIChiYXNlIDE2KQkJVGFyYUNvbSBJbnRlZ3JhdGVkIFByb2R1Y3RzLCBJbmMuCisJCQkJODMwIFN0ZXdhcnQgRHIuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0wQSAgIChoZXgpCQlTVU5JWCBDby4sIEx0ZC4KKzAwMEEwQSAgICAgKGJhc2UgMTYpCQlTVU5JWCBDby4sIEx0ZC4KKwkJCQkzRmwuLCBOby4gNzYsIEJhdWdhdSBSZC4sCisJCQkJU2hpbmRpYW4gVGFpcGVpIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtMEIgICAoaGV4KQkJU2VhbGV2ZWwgU3lzdGVtcywgSW5jLgorMDAwQTBCICAgICAoYmFzZSAxNikJCVNlYWxldmVsIFN5c3RlbXMsIEluYy4KKwkJCQkxNTUgVGVjaG5vbG9neSBQbGFjZQorCQkJCUxpYmVydHkgU0MgMjk2NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTBDICAgKGhleCkJCVNjaWVudGlmaWMgUmVzZWFyY2ggQ29ycG9yYXRpb24KKzAwMEEwQyAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIFJlc2VhcmNoIENvcnBvcmF0aW9uCisJCQkJMjMwMCBXaW5keSBSaWRnZSBQYXJrd2F5CisJCQkJU3VpdGUgNDAwIFNvdXRoCisJCQkJQXRsYW50YSBHQSAzMDMzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMEQgICAoaGV4KQkJRkNJIERldXRzY2hsYW5kIEdtYkgKKzAwMEEwRCAgICAgKGJhc2UgMTYpCQlGQ0kgRGV1dHNjaGxhbmQgR21iSAorCQkJCVdlcm5lcndlcmtkYW1tIDE2LAorCQkJCUJlcmxpbiAgMTM2MjkgCisJCQkJR0VSTUFOWQorCiswMC0wQS0wRSAgIChoZXgpCQlJbnZpdm8gUmVzZWFyY2ggSW5jLgorMDAwQTBFICAgICAoYmFzZSAxNikJCUludml2byBSZXNlYXJjaCBJbmMuCisJCQkJMTI2MDEgUmVzZWFyY2ggUGFya3dheQorCQkJCU9ybGFuZG8gRmxvcmlkYSAzMjgyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMEYgICAoaGV4KQkJSWxyeXVuZyBUZWxlc3lzLCBJbmMKKzAwMEEwRiAgICAgKGJhc2UgMTYpCQlJbHJ5dW5nIFRlbGVzeXMsIEluYworCQkJCUlscnl1bmcgYmxkZywgMzQtMiwgQ2hlb25oby1kb25nCisJCQkJR2FuZ2RvbmctZ3UKKwkJCQlTRU9VTCAgMTM0LTg2MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS0xMCAgIChoZXgpCQlGQVNUIG1lZGlhIGludGVncmF0aW9ucyBBRworMDAwQTEwICAgICAoYmFzZSAxNikJCUZBU1QgbWVkaWEgaW50ZWdyYXRpb25zIEFHCisJCQkJU2No9m5ncnVuZCAyNgorCQkJCVJvdGtyZXV6IENhbnRvbiBvZiBadWcgNjM0MworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBBLTExICAgKGhleCkJCUV4UGV0IFRlY2hub2xvZ2llcywgSW5jCiswMDBBMTEgICAgIChiYXNlIDE2KQkJRXhQZXQgVGVjaG5vbG9naWVzLCBJbmMKKwkJCQk2RiwgS3lvbmdnaSBTbWFsbCBCdXNpbmVzcyBDZW50ZXIKKwkJCQkjMTExLTgsIEl1aS1kb25nLCBQYWxkYWwtZ3UsCisJCQkJU3V3b24sIEt5b25nZ2ktZG8sIDQ0Mi0yNzAgIDQ0Mi03NzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtMTIgICAoaGV4KQkJQXp5bGV4IFRlY2hub2xvZ3ksIEluYworMDAwQTEyICAgICAoYmFzZSAxNikJCUF6eWxleCBUZWNobm9sb2d5LCBJbmMKKwkJCQk3LTJGbC4sIE5vLiA3MzggQ2h1bmcgQ2hlbmcgUm9hZCwKKwkJCQlDaHVuZyBIbyBDaXR5IFRhaXBlaSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTEzICAgKGhleCkJCUhvbmV5d2VsbCBWaWRlbyBTeXN0ZW1zCiswMDBBMTMgICAgIChiYXNlIDE2KQkJSG9uZXl3ZWxsIFZpZGVvIFN5c3RlbXMKKwkJCQk2NTU0IDE3NiBTdHJlZXQKKwkJCQlTdXJyZXkgQkMgVjNTIDRHNQorCQkJCUNBTkFEQQorCiswMC0wQS0xNCAgIChoZXgpCQlURUNPIGEucy4KKzAwMEExNCAgICAgKGJhc2UgMTYpCQlURUNPIGEucy4KKwkJCQlIYXZsaWNrb3ZhIDI2MAorCQkJCUtPTElOIENaIDI4MCA1OAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTBBLTE1ICAgKGhleCkJCVNpbGljb24gRGF0YSwgSW5jCiswMDBBMTUgICAgIChiYXNlIDE2KQkJU2lsaWNvbiBEYXRhLCBJbmMKKwkJCQk0Njk5IE9sZCBJcm9uc2lkZXMgRHIuLCAjMTUwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTE2ICAgKGhleCkJCUxhc3NlbiBSZXNlYXJjaAorMDAwQTE2ICAgICAoYmFzZSAxNikJCUxhc3NlbiBSZXNlYXJjaAorCQkJCTMxNjk1IEZvcndhcmQgUm9hZAorCQkJCU1hbnRvbiBDQSA5NjA1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMTcgICAoaGV4KQkJTkVTVEFSIENPTU1VTklDQVRJT05TLCBJTkMKKzAwMEExNyAgICAgKGJhc2UgMTYpCQlORVNUQVIgQ09NTVVOSUNBVElPTlMsIElOQworCQkJCU5vLjYsMTkgTGFuZSBCYWRlIFJvYWQKKwkJCQlIU0lOQ0hVICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTE4ICAgKGhleCkJCVZpY2hlbCBJbmMuCiswMDBBMTggICAgIChiYXNlIDE2KQkJVmljaGVsIEluYy4KKwkJCQkzRiBKYW5nIEJsZGcuIDkyLTYgWWFuZ2phZS1kb25nLCBTZWNoby1nCisJCQkJU2VvdWwgIDEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtMTkgICAoaGV4KQkJVmFsZXJlIFBvd2VyLCBJbmMuCiswMDBBMTkgICAgIChiYXNlIDE2KQkJVmFsZXJlIFBvd2VyLCBJbmMuCisJCQkJNjYxIE4uIFBsYW5vIFJkLgorCQkJCVJpY2hhcmRzb24gVGV4YXMgNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTFBICAgKGhleCkJCUltZXJnZSBMdGQKKzAwMEExQSAgICAgKGJhc2UgMTYpCQlJbWVyZ2UgTHRkCisJCQkJVW5pdCA2LCBCYXIgSGlsbCBCdXNpbmVzcyBQYXJrCisJCQkJU2F4b24gV2F5CisJCQkJQmFyIEhpbGwgQ2FtYnJpZGdlIENCMyA4U0wKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQS0xQiAgIChoZXgpCQlTdHJlYW0gTGFicworMDAwQTFCICAgICAoYmFzZSAxNikJCVN0cmVhbSBMYWJzCisJCQkJTGVuaW5za2llIGdvcmkgMSwgYmlsZCA3NworCQkJCU1vc2tvdyAgMTE5OTkyCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTBBLTFDICAgKGhleCkJCUJyaWRnZSBJbmZvcm1hdGlvbiBDby4sIEx0ZC4KKzAwMEExQyAgICAgKGJhc2UgMTYpCQlCcmlkZ2UgSW5mb3JtYXRpb24gQ28uLCBMdGQuCisJCQkJTm8uMywgTGFuZSAxMDYsIFd1LUt1bmcgMiBSZC4sCisJCQkJV3UtS3UgSW5kLiBQYXJrLAorCQkJCVRhaXBlaSAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS0xRCAgIChoZXgpCQlPcHRpY2FsIENvbW11bmljYXRpb25zIFByb2R1Y3RzIEluYy4KKzAwMEExRCAgICAgKGJhc2UgMTYpCQlPcHRpY2FsIENvbW11bmljYXRpb25zIFByb2R1Y3RzIEluYy4KKwkJCQkyMDk2MSBLbmFwcCBTdC4KKwkJCQlDaGF0c3dvcnRoIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0xRSAgIChoZXgpCQlSZWQtTSBQcm9kdWN0cyBMaW1pdGVkCiswMDBBMUUgICAgIChiYXNlIDE2KQkJUmVkLU0gUHJvZHVjdHMgTGltaXRlZAorCQkJCU5lcHR1bmUgSG91c2UKKwkJCQlNZXJjdXJ5IFBhcmssIFd5Y29tYmUgTGFuZQorCQkJCVdvb2J1cm4gR3JlZW4gQnVja2luZ2hhbXNoaXJlIEhQMTAgMEhICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEEtMUYgICAoaGV4KQkJQVJUIFdBUkUgVGVsZWNvbW11bmljYXRpb24gQ28uLCBMdGQuCiswMDBBMUYgICAgIChiYXNlIDE2KQkJQVJUIFdBUkUgVGVsZWNvbW11bmljYXRpb24gQ28uLCBMdGQuCisJCQkJODA2IEFjZSBUZWNobm8gVG93ZXIgIzEsIDE5Ny0xNworCQkJCUd1cm8tZG9uZywgR3Vyby1HdQorCQkJCVNlb3VsICAxNTItMDUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLTIwICAgKGhleCkJCVNWQSBOZXR3b3JrcywgSW5jLgorMDAwQTIwICAgICAoYmFzZSAxNikJCVNWQSBOZXR3b3JrcywgSW5jLgorCQkJCTg0MCBGIEF2ZS4sIFN1aXRlIDEwNAorCQkJCVBsYW5vIFRYIDc1MDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0yMSAgIChoZXgpCQlJbnRlZ3JhIFRlbGVjb20gQ28uIEx0ZAorMDAwQTIxICAgICAoYmFzZSAxNikJCUludGVncmEgVGVsZWNvbSBDby4gTHRkCisJCQkJN3RoIGZsb29yIEh3YXlvdW5nIEJsZC4gMTEyLTIKKwkJCQlLYXJhay1kb25nIFNvbnBhLWd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS0yMiAgIChoZXgpCQlBbXBlcmlvbiBJbmMKKzAwMEEyMiAgICAgKGJhc2UgMTYpCQlBbXBlcmlvbiBJbmMKKwkJCQkyNTAgQXBvbGxvIERyaXZlCisJCQkJQ2hlbG1zZm9yZCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMjMgICAoaGV4KQkJUGFyYW1hIE5ldHdvcmtzIEluYworMDAwQTIzICAgICAoYmFzZSAxNikJCVBhcmFtYSBOZXR3b3JrcyBJbmMKKwkJCQkxOTU1IFRoZSBBbGFtZWRhCisJCQkJU2FuIEpvc2UgQ0EgOTUxMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTI0ICAgKGhleCkJCU9jdGF2ZSBDb21tdW5pY2F0aW9ucworMDAwQTI0ICAgICAoYmFzZSAxNikJCU9jdGF2ZSBDb21tdW5pY2F0aW9ucworCQkJCTg1IE5vcnRod2VzdCBCb3VsZXZhcmQKKwkJCQlOYXNodWEgTkggMDMwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTI1ICAgKGhleCkJCUNFUkFHT04gTkVUV09SS1MKKzAwMEEyNSAgICAgKGJhc2UgMTYpCQlDRVJBR09OIE5FVFdPUktTCisJCQkJMjQgUkFVRUwgV0FMTEVOQkVSRyBTVFJFRVQKKwkJCQlURUwtQVZJViAgOTY3MTkKKwkJCQlJU1JBRUwKKworMDAtMEEtMjYgICAoaGV4KQkJQ0VJQSBTLnAuQS4KKzAwMEEyNiAgICAgKGJhc2UgMTYpCQlDRUlBIFMucC5BLgorCQkJCVpvbmEgSW5kdXN0cmlhbGUgZGkgVmljaW9tYWdnaW8gNTQKKwkJCQlBcmV6em8gQVIgNTIwNDAKKwkJCQlJVEFMWQorCiswMC0wQS0yNyAgIChoZXgpCQlBcHBsZSBDb21wdXRlciwgSW5jLgorMDAwQTI3ICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyLCBJbmMuCisJCQkJMjA2NTAgVmFsbGV5IEdyZWVuIERyaXZlCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0yOCAgIChoZXgpCQlNb3Rvcm9sYQorMDAwQTI4ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhCisJCQkJNjAwIE4uIFVTIEh3eSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMjkgICAoaGV4KQkJUGFuIERhY29tIE5ldHdvcmtpbmcgQUcKKzAwMEEyOSAgICAgKGJhc2UgMTYpCQlQYW4gRGFjb20gTmV0d29ya2luZyBBRworCQkJCURyZWllaWNoIFBsYXphIDFCCisJCQkJRHJlaWVpY2ggSGVzc2VuIEQtNjMzMDMKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTJBICAgKGhleCkJCVFTSSBTeXN0ZW1zIEluYy4KKzAwMEEyQSAgICAgKGJhc2UgMTYpCQlRU0kgU3lzdGVtcyBJbmMuCisJCQkJNyBSYXltb25kIEF2ZW51ZQorCQkJCUJ1aWxkaW5nIEIsIFVuaXQgMTEKKwkJCQlTYWxlbSBOSCAwMzA3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMkIgICAoaGV4KQkJRXRoZXJzdHVmZgorMDAwQTJCICAgICAoYmFzZSAxNikJCUV0aGVyc3R1ZmYKKwkJCQkyMDggVy4gTWltb3NhIENpcmNsZQorCQkJCVNhbiBNYXJjb3MgVFggNzg2NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTJDICAgKGhleCkJCUFjdGl2ZSBUY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMEEyQyAgICAgKGJhc2UgMTYpCQlBY3RpdmUgVGNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJMTYtMjMsIFNoaWJhdXJhIDItQ2hvbWUsCisJCQkJTWluYXRvLWt1LAorCQkJCVRva3lvIFRva3lvIDEwOC0wMDIzCisJCQkJSkFQQU4KKworMDAtMEEtMkQgICAoaGV4KQkJQ2Fib3QgQ29tbXVuaWNhdGlvbnMgTGltaXRlZAorMDAwQTJEICAgICAoYmFzZSAxNikJCUNhYm90IENvbW11bmljYXRpb25zIExpbWl0ZWQKKwkJCQlWZXJvbmEgSG91c2UKKwkJCQlGaWx3b29kIFJvYWQKKwkJCQlCcmlzdG9sIEdsb3VjZXN0ZXJzaGlyZSBCUzE2IDNSWQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBBLTJFICAgKGhleCkJCU1BUExFIE5FVFdPUktTIENPLiwgTFRECiswMDBBMkUgICAgIChiYXNlIDE2KQkJTUFQTEUgTkVUV09SS1MgQ08uLCBMVEQKKwkJCQk2MDIsIERvbmd3aGEKKwkJCQkzNDktMjQsIFNoaW5kYWViYW5nLURvbmcsIERvbmdqYWstR3UKKwkJCQlTRU9VTCAgMTU2LTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS0yRiAgIChoZXgpCQlBcnRuaXggSW5jLgorMDAwQTJGICAgICAoYmFzZSAxNikJCUFydG5peCBJbmMuCisJCQkJQ2h1bmdqaW4gQi9ELCA0NzUtMjIgQmFuZ2JhZSwgU2VvY2hvCisJCQkJU2VvdWwgIDEzNy04MTkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtMzAgICAoaGV4KQkJSm9obnNvbiBDb250cm9scy1BU0cKKzAwMEEzMCAgICAgKGJhc2UgMTYpCQlKb2huc29uIENvbnRyb2xzLUFTRworCQkJCTkxNSBFYXN0IDMybmQgU3RyZWV0CisJCQkJSG9sbGFuZCBNSSA0OTQyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMzEgICAoaGV4KQkJSENWIENvbnN1bHRpbmcKKzAwMEEzMSAgICAgKGJhc2UgMTYpCQlIQ1YgQ29uc3VsdGluZworCQkJCVAgTyBCb3ggMzY5MgorCQkJCUhlbGVuc3ZhbGUgVG93biBDZW50cmUgNDIxMgorCQkJCVF1ZWVuc2xhbmQgICA0MjEyCisJCQkJQVVTVFJBTElBCisKKzAwLTBBLTMyICAgKGhleCkJCVhzaWRvIENvcnBvcmF0aW9uCiswMDBBMzIgICAgIChiYXNlIDE2KQkJWHNpZG8gQ29ycG9yYXRpb24KKwkJCQkzRiwyLTgtMTMsU2hpYmEtRGFpbW9uLAorCQkJCU1pbmF0by1rdQorCQkJCVRva3lvICAxMDUtMDAxMgorCQkJCUpBUEFOCisKKzAwLTBBLTMzICAgKGhleCkJCUVtdWxleCBDb3Jwb3JhdGlvbgorMDAwQTMzICAgICAoYmFzZSAxNikJCUVtdWxleCBDb3Jwb3JhdGlvbgorCQkJCTIwMjEgT3Bwb3J0dW5pdHkgRHJpdmUKKwkJCQlTdWl0ZSAxCisJCQkJUm9zZXZpbGxlIENBIDk1Njc4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0zNCAgIChoZXgpCQlJZGVudGljYXJkIFN5c3RlbXMgSW5jb3Jwb3JhdGVkCiswMDBBMzQgICAgIChiYXNlIDE2KQkJSWRlbnRpY2FyZCBTeXN0ZW1zIEluY29ycG9yYXRlZAorCQkJCTQwIENpdGF0aW9uIExhbmUKKwkJCQlMYW5jYXN0ZXIgUGVubnN5bHZhbmlhIDE3NjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0zNSAgIChoZXgpCQlYaWxpbngKKzAwMEEzNSAgICAgKGJhc2UgMTYpCQlYaWxpbngKKwkJCQkyMTAwIExvZ2ljIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTQxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTM2ICAgKGhleCkJCVN5bmVsZWMgVGVsZWNvbSBNdWx0aW1lZGlhCiswMDBBMzYgICAgIChiYXNlIDE2KQkJU3luZWxlYyBUZWxlY29tIE11bHRpbWVkaWEKKwkJCQlab25lIEluZHVzdHJpZWxsZQorCQkJCVNhaW50IFNlcm5pbiBzdXIgUmFuY2UgQXZleXJvbiBGLTEyMzgwCisJCQkJRlJBTkNFCisKKzAwLTBBLTM3ICAgKGhleCkJCVByb2NlcmEgTmV0d29ya3MsIEluYy4KKzAwMEEzNyAgICAgKGJhc2UgMTYpCQlQcm9jZXJhIE5ldHdvcmtzLCBJbmMuCisJCQkJMTI5OSBPcmxlYW5zIERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0zOCAgIChoZXgpCQlBcGFuaSBOZXR3b3JrcworMDAwQTM4ICAgICAoYmFzZSAxNikJCUFwYW5pIE5ldHdvcmtzCisJCQkJMTgwMCBFLiBJbXBlcmlhbCBId3kKKwkJCQlTdWl0ZSAyMTAKKwkJCQlCcmVhIENBIDkyODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0zOSAgIChoZXgpCQlMb1BBIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kKKzAwMEEzOSAgICAgKGJhc2UgMTYpCQlMb1BBIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kKKwkJCQk3MTAtOSwgRGFlIExpbSAzLURvbmcKKwkJCQlZb3VuZyBEZXVuZyBwby1ndSBTZW91bCwgS29yZWEgMTUwLTgxNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS0zQSAgIChoZXgpCQlKLVRIUkVFIElOVEVSTkFUSU9OQUwgSG9sZGluZyBDby4sIEx0ZC4KKzAwMEEzQSAgICAgKGJhc2UgMTYpCQlKLVRIUkVFIElOVEVSTkFUSU9OQUwgSG9sZGluZyBDby4sIEx0ZC4KKwkJCQlOby4gMSwgWXUtMyBSZC4sIFlvdXRoIEluZHVzdHJpYWwgUGFyaworCQkJCVlhbmctbWVpLCBUYW95dWFuIEhzaWVuICAzMjYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTNCICAgKGhleCkJCUdDVCBTZW1pY29uZHVjdG9yLCBJbmMKKzAwMEEzQiAgICAgKGJhc2UgMTYpCQlHQ1QgU2VtaWNvbmR1Y3RvciwgSW5jCisJCQkJMjEyMSBSaW5nd29vZCBBdmVudWUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtM0MgICAoaGV4KQkJRW5lcnBvaW50IEx0ZC4KKzAwMEEzQyAgICAgKGJhc2UgMTYpCQlFbmVycG9pbnQgTHRkLgorCQkJCUthaXZvcHVpc3RvbnRpZSAzMworCQkJCVJhdW1hICAyNjEwMAorCQkJCUZJTkxBTkQKKworMDAtMEEtM0QgICAoaGV4KQkJRWxvIFNpc3RlbWFzIEVsZXRyb25pY29zIFMuQS4KKzAwMEEzRCAgICAgKGJhc2UgMTYpCQlFbG8gU2lzdGVtYXMgRWxldHJvbmljb3MgUy5BLgorCQkJCVJ1YSBFZHUgQ2hhdmVzLCA1NDcKKwkJCQlQb3J0byBBbGVncmUgUlMgOTAuMjQwLTYyMAorCQkJCUJSQVpJTAorCiswMC0wQS0zRSAgIChoZXgpCQlFQURTIFRlbGVjb20KKzAwMEEzRSAgICAgKGJhc2UgMTYpCQlFQURTIFRlbGVjb20KKwkJCQlMYW5kc2h1dGVyIFN0cmFzc2UgMjYKKwkJCQlNdW5pY2ggQmF2YXJpYSA4NTcxNgorCQkJCUdFUk1BTlkKKworMDAtMEEtM0YgICAoaGV4KQkJRGF0YSBFYXN0IENvcnBvcmF0aW9uCiswMDBBM0YgICAgIChiYXNlIDE2KQkJRGF0YSBFYXN0IENvcnBvcmF0aW9uCisJCQkJNC00MS0xMCBNaW5hbWktT2dpa3VibworCQkJCVN1Z2luYW1pLWt1IFRPS1lPIDE2Ny0wMDUyCisJCQkJSkFQQU4KKworMDAtMEEtNDAgICAoaGV4KQkJQ3Jvd24gQXVkaW8gLS0gSGFybWFubSBJbnRlcm5hdGlvbmFsCiswMDBBNDAgICAgIChiYXNlIDE2KQkJQ3Jvd24gQXVkaW8gLS0gSGFybWFubSBJbnRlcm5hdGlvbmFsCisJCQkJMTcxOCBXLiBNaXNoYXdha2EgUmQKKwkJCQlFbGtoYXJ0IElOIDQ2NTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS00MSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBBNDEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS00MiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBBNDIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS00MyAgIChoZXgpCQlDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLgorMDAwQTQzICAgICAoYmFzZSAxNikJCUNodW5naHdhIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJMTIsIExhbmUgNTUxLCBNaW4tVHN1IFJvYWQKKwkJCQlTZWMuIDUgWWFuZy1NZWksCisJCQkJVGFveXVhbiAgMzI2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS00NCAgIChoZXgpCQlBdmVyeSBEZW5uaXNvbiBEZXV0c2NobGFuZCBHbWJICiswMDBBNDQgICAgIChiYXNlIDE2KQkJQXZlcnkgRGVubmlzb24gRGV1dHNjaGxhbmQgR21iSAorCQkJCU9obXN0ci4gMworCQkJCUVjaGluZyAgODUzODYKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTQ1ICAgKGhleCkJCUF1ZGlvLVRlY2huaWNhIENvcnAuCiswMDBBNDUgICAgIChiYXNlIDE2KQkJQXVkaW8tVGVjaG5pY2EgQ29ycC4KKwkJCQlOYXJ1c2UgMSwzNDgKKwkJCQlNYWNoaWRhIFRva3lvIDE5NC04NTY2CisJCQkJSkFQQU4KKworMDAtMEEtNDYgICAoaGV4KQkJQVJPIFdFTERJTkcgVEVDSE5PTE9HSUVTIFNBUworMDAwQTQ2ICAgICAoYmFzZSAxNikJCUFSTyBXRUxESU5HIFRFQ0hOT0xPR0lFUyBTQVMKKwkJCQlaSSBkZSBNb250IHN1ciBMb2lyCisJCQkJQ2hhdGVhdSBkdSBMb2lyIHNhcnRoZSA3MjUwMAorCQkJCUZSQU5DRQorCiswMC0wQS00NyAgIChoZXgpCQlBbGxpZWQgVmlzaW9uIFRlY2hub2xvZ2llcworMDAwQTQ3ICAgICAoYmFzZSAxNikJCUFsbGllZCBWaXNpb24gVGVjaG5vbG9naWVzCisJCQkJVGFzY2hlbndlZyAyYQorCQkJCVN0YWR0cm9kYSBUaPxyaW5nZW4gMDc2NDYKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTQ4ICAgKGhleCkJCUFsYmF0cm9uIFRlY2hub2xvZ3kKKzAwMEE0OCAgICAgKGJhc2UgMTYpCQlBbGJhdHJvbiBUZWNobm9sb2d5CisJCQkJNkYsIE5vIDcxNiwgQ2h1bmcgQ2hlbmcsCisJCQkJQ2h1bmctSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS00OSAgIChoZXgpCQlGNSBOZXR3b3JrcywgSW5jLgorMDAwQTQ5ICAgICAoYmFzZSAxNikJCUY1IE5ldHdvcmtzLCBJbmMuCisJCQkJNDAxIEVsbGlvdHQgQXZlLiBXLgorCQkJCVNlYXR0bGUgV0EgOTgxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTRBICAgKGhleCkJCVRhcmdhIFN5c3RlbXMgTHRkLgorMDAwQTRBICAgICAoYmFzZSAxNikJCVRhcmdhIFN5c3RlbXMgTHRkLgorCQkJCTE5MDUgR3JhbmR0ZWNoIENlbnRyZSwKKwkJCQk4IE9uIFBpbmcgU3QuICBTaXUgTGVrIFl1ZW4KKwkJCQlTaGF0aW4gTi5ULiAKKwkJCQlIT05HIEtPTkcKKworMDAtMEEtNEIgICAoaGV4KQkJRGF0YVBvd2VyIFRlY2hub2xvZ3ksIEluYy4KKzAwMEE0QiAgICAgKGJhc2UgMTYpCQlEYXRhUG93ZXIgVGVjaG5vbG9neSwgSW5jLgorCQkJCU9uZSBBbGV3aWZlIENlbnRlcgorCQkJCUNhbWJyaWRnZSBNQSAwMjE0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNEMgICAoaGV4KQkJTW9sZWN1bGFyIERldmljZXMgQ29ycG9yYXRpb24KKzAwMEE0QyAgICAgKGJhc2UgMTYpCQlNb2xlY3VsYXIgRGV2aWNlcyBDb3Jwb3JhdGlvbgorCQkJCTEzMTEgT3JsZWFucyBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNEQgICAoaGV4KQkJTm9yaXR6IENvcnBvcmF0aW9uCiswMDBBNEQgICAgIChiYXNlIDE2KQkJTm9yaXR6IENvcnBvcmF0aW9uCisJCQkJNSBNaW5hbWktRnV0YW1pLAorCQkJCUZ1dGFtaS1jaG8sCisJCQkJQWthc2hpLXNoaSBIeW9nbyA2NzQtMDA5MworCQkJCUpBUEFOCisKKzAwLTBBLTRFICAgKGhleCkJCVVOSVRFSyBFbGVjdHJvbmljcyBJTkMuCiswMDBBNEUgICAgIChiYXNlIDE2KQkJVU5JVEVLIEVsZWN0cm9uaWNzIElOQy4KKwkJCQkxLTE4LTQKKwkJCQlPaG1vcmkta2l0YQorCQkJCU9odGEta3UgVG9reW8gMTQzLTAwMTYKKwkJCQlKQVBBTgorCiswMC0wQS00RiAgIChoZXgpCQlCcmFpbiBCb3hlcyBMaW1pdGVkCiswMDBBNEYgICAgIChiYXNlIDE2KQkJQnJhaW4gQm94ZXMgTGltaXRlZAorCQkJCVVuaXQgM2MsIFdhdmVydHJlZSBCb3VsZXZhcmQgU291dGgKKwkJCQlXYXZlcnRyZWUgVGVjaG5vbG9neSBQYXJrCisJCQkJTGl2ZXJwb29sIE1lcnNleXNpZGUgTDcgOVBGCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEEtNTAgICAoaGV4KQkJUkVNT1RFSyBDT1JQT1JBVElPTgorMDAwQTUwICAgICAoYmFzZSAxNikJCVJFTU9URUsgQ09SUE9SQVRJT04KKwkJCQk2Ri02LCBObyA3NywgU2VjIDEsIEhTSU4gVEFJIFdVIFJPQUQsCisJCQkJSFNJLUNISUggVEFJUEVJIEhTSUVOIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtNTEgICAoaGV4KQkJR3lyb1NpZ25hbCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwQTUxICAgICAoYmFzZSAxNikJCUd5cm9TaWduYWwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk1RixOby4gNzcsTGlkZSBTdC4KKwkJCQlaaG9uZ2hlIENpdHkgVGFpcGVpIENvdW50eSAyMzU1NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtNTIgICAoaGV4KQkJQXNpYVJGIEx0ZC4KKzAwMEE1MiAgICAgKGJhc2UgMTYpCQlBc2lhUkYgTHRkLgorCQkJCTRGLiwgTm8uMiwgTGFuZSA1NjAKKwkJCQlaaG9uZ3poZW5nIFJkLgorCQkJCVhpbmRpYW4gQ2l0eSBUYWlwZWkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS01MyAgIChoZXgpCQlJbnRyb25pY3MsIEluY29ycG9yYXRlZAorMDAwQTUzICAgICAoYmFzZSAxNikJCUludHJvbmljcywgSW5jb3Jwb3JhdGVkCisJCQkJMjAyMCBMYWZheWV0dGUgQmx2ZC4KKwkJCQlGcmVkZXJpY2tzYnVyZyBWaXJnaW5pYSAyMjQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNTQgICAoaGV4KQkJTGFndW5hIEhpbGxzLCBJbmMuCiswMDBBNTQgICAgIChiYXNlIDE2KQkJTGFndW5hIEhpbGxzLCBJbmMuCisJCQkJMS0yNS0xIDM1RiBGbC4sIE5pc2hpc2hpbmp1a3UKKwkJCQlTaGluanVrdS1rdSBUb2t5byAxNjMwNjM1CisJCQkJSkFQQU4KKworMDAtMEEtNTUgICAoaGV4KQkJTUFSS0VNIENvcnBvcmF0aW9uCiswMDBBNTUgICAgIChiYXNlIDE2KQkJTUFSS0VNIENvcnBvcmF0aW9uCisJCQkJMTUwIENvbmdyZXNzIFN0cmVldAorCQkJCUtlZW5lIE5IIDAzNDMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS01NiAgIChoZXgpCQlISVRBQ0hJIE1heGVsbCBMdGQuCiswMDBBNTYgICAgIChiYXNlIDE2KQkJSElUQUNISSBNYXhlbGwgTHRkLgorCQkJCTYtMjAtMSBLaW51bm9kYWkKKwkJCQlZYXdhcmEtbXVyYSwgVHN1a3ViYS1ndW4gSUJBUkFLSSAzMDAtMjQ5NgorCQkJCUpBUEFOCisKKzAwLTBBLTU3ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55IC0gU3RhbmRhcmRzCiswMDBBNTcgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkgLSBTdGFuZGFyZHMKKwkJCQkxMDk1NSBUYW50YXUgQXZlbnVlCisJCQkJTWFpbHN0b3AgNDEzOAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNTggICAoaGV4KQkJSW5nZW5pZXVyLUJ1ZXJvIEZyZXllciAmIFNpZWdlbAorMDAwQTU4ICAgICAoYmFzZSAxNikJCUluZ2VuaWV1ci1CdWVybyBGcmV5ZXIgJiBTaWVnZWwKKwkJCQlOZXVlbmRvcmZzdHIuIDE4IGIKKwkJCQlIZW5uaWdzZG9yZiBCcmFuZGVuYnVyZyAxNjc2MQorCQkJCUdFUk1BTlkKKworMDAtMEEtNTkgICAoaGV4KQkJSFcgc2VydmVyCiswMDBBNTkgICAgIChiYXNlIDE2KQkJSFcgc2VydmVyCisJCQkJSXRhbHNrYSAxNQorCQkJCVByYWd1ZSAyIEN6ZWNoIFJlcHVibGljIDEyMCAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTBBLTVBICAgKGhleCkJCUdyZWVuTkVUIFRlY2hub2xvZ2llcyBDby4sTHRkLgorMDAwQTVBICAgICAoYmFzZSAxNikJCUdyZWVuTkVUIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCU5vLjEwLCBRaW9uZ3l1IFJvYWQsU2NpZW5jZXMtYmFzZWQgSW5kdXMKKwkJCQlOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTBBLTVCICAgKGhleCkJCVBvd2VyLU9uZSBhcworMDAwQTVCICAgICAoYmFzZSAxNikJCVBvd2VyLU9uZSBhcworCQkJCVAuTy4gQm94IDE1NDMKKwkJCQlEcmFtbWVuICAzMDA3CisJCQkJTk9SV0FZCisKKzAwLTBBLTVDICAgKGhleCkJCUNhcmVsIHMucC5hLgorMDAwQTVDICAgICAoYmFzZSAxNikJCUNhcmVsIHMucC5hLgorCQkJCVZpYSBkZWxsJyBJbmR1c3RyaWEsIDExCisJCQkJQnJ1Z2luZSBQYWRvdmEgMzUwMjAKKwkJCQlJVEFMWQorCiswMC0wQS01RCAgIChoZXgpCQlQVUMgRm91bmRlciAoTVNDKSBCZXJoYWQKKzAwMEE1RCAgICAgKGJhc2UgMTYpCQlQVUMgRm91bmRlciAoTVNDKSBCZXJoYWQKKwkJCQlMb3QgRy0xICYgRy0yLCBJbmN1YmF0b3IgMQorCQkJCVRlY2hub2xvZ3kgUGFyayBNYWxheXNpYQorCQkJCUt1YWxhIEx1bXB1ciBXUCA1NzAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTBBLTVFICAgKGhleCkJCTNDT00gQ29ycG9yYXRpb24KKzAwMEE1RSAgICAgKGJhc2UgMTYpCQkzQ09NIENvcnBvcmF0aW9uCisJCQkJNTQwMCBCYXlmcm9udCBQbGF6YQorCQkJCU0vUyA1MTE5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTItODE0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNUYgICAoaGV4KQkJYWxtZWRpbyBpbmMuCiswMDBBNUYgICAgIChiYXNlIDE2KQkJYWxtZWRpbyBpbmMuCisJCQkJMzItMTMsIHNha2FlLWNobyAyIGNob21lCisJCQkJaGlnYXNoaW11cmF5YW1hLXNoaSB0b2t5byAxODktMDAxMworCQkJCUpBUEFOCisKKzAwLTBBLTYwICAgKGhleCkJCUF1dG9zdGFyIFRlY2hub2xvZ3kgUHRlIEx0ZAorMDAwQTYwICAgICAoYmFzZSAxNikJCUF1dG9zdGFyIFRlY2hub2xvZ3kgUHRlIEx0ZAorCQkJCVVuaXQgMDQtMTAgVEVDSHBsYWNlIElJCisJCQkJU2luZ2Fwb3JlIFNpbmdhcG9yZSA1Njk4NzYKKwkJCQlTSU5HQVBPUkUKKworMDAtMEEtNjEgICAoaGV4KQkJQ2VsbGlueCBTeXN0ZW1zIEluYy4KKzAwMEE2MSAgICAgKGJhc2UgMTYpCQlDZWxsaW54IFN5c3RlbXMgSW5jLgorCQkJCTQwOCBXb29zdW5nIENoYXJhY3RlcjE5OSBvZmZpY2V0ZWwKKwkJCQk0NjctMjQgZG9nb2stZG9uZyBrYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS04NTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtNjIgICAoaGV4KQkJQ3JpbmlzIE5ldHdvcmtzLCBJbmMuCiswMDBBNjIgICAgIChiYXNlIDE2KQkJQ3JpbmlzIE5ldHdvcmtzLCBJbmMuCisJCQkJMjA5OSBOLiBDb2xsaW5zIEJsdmQsIFN1aXRlIDIwMAorCQkJCVJpY2hhcmRzb24gVFggNzUwODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTYzICAgKGhleCkJCURIRCBHbWJICiswMDBBNjMgICAgIChiYXNlIDE2KQkJREhEIEdtYkgKKwkJCQlIYWZlcmtvcm5zdHJhc3NlIDUKKwkJCQlMZWlwemlnIFNhY2hzZW4gMDQxMjkKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTY0ICAgKGhleCkJCUVyYWNvbSBUZWNobm9sb2dpZXMKKzAwMEE2NCAgICAgKGJhc2UgMTYpCQlFcmFjb20gVGVjaG5vbG9naWVzCisJCQkJMjggR3JlZyBDaGFwcGVsbCBEcml2ZQorCQkJCUJ1cmxlaWdoIEhlYWRzIFFsZCA0MjIwCisJCQkJQVVTVFJBTElBCisKKzAwLTBBLTY1ICAgKGhleCkJCUdlbnRlY2hNZWRpYS5jby4sbHRkLgorMDAwQTY1ICAgICAoYmFzZSAxNikJCUdlbnRlY2hNZWRpYS5jby4sbHRkLgorCQkJCXNvbHZpdCBibGRnIDJmLCA0MDItOCwgeWFuZ2phZS1kb24sCisJCQkJc2VvY2hvLWd1LCBzZW91bCAxMzctODk5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLTY2ICAgKGhleCkJCU1JVFNVQklTSEkgRUxFQ1RSSUMgU1lTVEVNICYgU0VSVklDRSBDTy4sTFRELgorMDAwQTY2ICAgICAoYmFzZSAxNikJCU1JVFNVQklTSEkgRUxFQ1RSSUMgU1lTVEVNICYgU0VSVklDRSBDTy4sTFRELgorCQkJCTEtNC0xMyBPT1lPRE9OQUtBLEtJVEEtS1UKKwkJCQlPU0FLQSAgNTMxLTAwNzYKKwkJCQlKQVBBTgorCiswMC0wQS02NyAgIChoZXgpCQlPbmdDb3JwCiswMDBBNjcgICAgIChiYXNlIDE2KQkJT25nQ29ycAorCQkJCTQ4MSBIYWNrZW5zYWNrIEF2ZS4KKwkJCQlIYWNrZW5zYWNrIE5KIDA3NjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS02OCAgIChoZXgpCQlTb2xhckZsYXJlIENvbW11bmljYXRpb25zLCBJbmMuCiswMDBBNjggICAgIChiYXNlIDE2KQkJU29sYXJGbGFyZSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTk1MDEgSmVyb25pbW8KKwkJCQlTdWl0ZSAxMDAKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTY5ICAgKGhleCkJCVNVTk5ZIGJlbGwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMEE2OSAgICAgKGJhc2UgMTYpCQlTVU5OWSBiZWxsIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJIzUwMiBCVVdPTiBCL0QgMTA3LTQ1IEJBTlBPLURPTkcKKwkJCQlTRU9DSE8tS1UKKwkJCQlTRU9VTCAgMTM3LTgwNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS02QSAgIChoZXgpCQlTVk0gTWljcm93YXZlcyBzLnIuby4KKzAwMEE2QSAgICAgKGJhc2UgMTYpCQlTVk0gTWljcm93YXZlcyBzLnIuby4KKwkJCQlVIE1yYXpvdmt5IDUKKwkJCQlQcmFoYSA1ICAxNTAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTBBLTZCICAgKGhleCkJCVRhZGlyYW4gVGVsZWNvbSBCdXNpbmVzcyBTeXN0ZW1zIExURAorMDAwQTZCICAgICAoYmFzZSAxNikJCVRhZGlyYW4gVGVsZWNvbSBCdXNpbmVzcyBTeXN0ZW1zIExURAorCQkJCTE4IEhhc2l2aW0gU3QuCisJCQkJUC5PLkJveCA0NTAKKwkJCQlQZXRhY2ggVGlrdmEgIDQ5MTA1CisJCQkJSVNSQUVMCisKKzAwLTBBLTZDICAgKGhleCkJCVdhbGNoZW0gQ29ycG9yYXRpb24KKzAwMEE2QyAgICAgKGJhc2UgMTYpCQlXYWxjaGVtIENvcnBvcmF0aW9uCisJCQkJNSBCb3ludG9uIFJvYWQKKwkJCQlIb2xsaXN0b24gTUEgMDE3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTZEICAgKGhleCkJCUVLUyBFbGVrdHJvbmlrc2VydmljZSBHbWJICiswMDBBNkQgICAgIChiYXNlIDE2KQkJRUtTIEVsZWt0cm9uaWtzZXJ2aWNlIEdtYkgKKwkJCQlFbnpzdHIuIDkKKwkJCQlLb3Jud2VzdGhlaW0gQmFkZW4gV/xydGVtYmVyZyA3MDgwNgorCQkJCUdFUk1BTlkKKworMDAtMEEtNkUgICAoaGV4KQkJQnJvYWRjYXN0IFRlY2hub2xvZ3kgTGltaXRlZAorMDAwQTZFICAgICAoYmFzZSAxNikJCUJyb2FkY2FzdCBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQk2IFNvcHdpdGggUGFyaywgUm95Y2UgQ2xvc2UKKwkJCQlXZXN0IFBvcnR3YXkgSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlBbmRvdmVyIEhhbXBzaGlyZSBTUDEwIDNUQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBBLTZGICAgKGhleCkJCVp5RkxFWCBUZWNobm9sb2dpZXMgSW5jCiswMDBBNkYgICAgIChiYXNlIDE2KQkJWnlGTEVYIFRlY2hub2xvZ2llcyBJbmMKKwkJCQkyRmwuIE5vLiA1OCBQYXJrIEF2ZS4gSUkKKwkJCQlTLkIuSS5QLiwgSHNpbmNodSAgMzAwNzcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTcwICAgKGhleCkJCU1QTFMgRm9ydW0KKzAwMEE3MCAgICAgKGJhc2UgMTYpCQlNUExTIEZvcnVtCisJCQkJMzkzNTUgQ2FsaWZvcm5pYSBTdHJlZXQKKwkJCQlTdWl0ZSAzMDcKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS03MSAgIChoZXgpCQlBdnJpbyBUZWNobm9sb2dpZXMsIEluYworMDAwQTcxICAgICAoYmFzZSAxNikJCUF2cmlvIFRlY2hub2xvZ2llcywgSW5jCisJCQkJMjY1NSBBIFBhcmsgQ2VudGVyIERyaXZlCisJCQkJU2ltaSBWYWxsZXkgQ0EgOTEzNTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTcyICAgKGhleCkJCVNURUMsIElOQy4KKzAwMEE3MiAgICAgKGJhc2UgMTYpCQlTVEVDLCBJTkMuCisJCQkJMzAwMSBEYWltbGVyIFN0cmVldAorCQkJCVNhbnRhIEFuYSBDQSA5MjcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNzMgICAoaGV4KQkJU2NpZW50aWZpYyBBdGxhbnRhCiswMDBBNzMgICAgIChiYXNlIDE2KQkJU2NpZW50aWZpYyBBdGxhbnRhCisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCU1TIDUuMjQyNQorCQkJCUxhd3JlbmNldmlsbGUgR2EgMzAwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTc0ICAgKGhleCkJCU1hbnRpY29tIE5ldHdvcmtzIEluYy4KKzAwMEE3NCAgICAgKGJhc2UgMTYpCQlNYW50aWNvbSBOZXR3b3JrcyBJbmMuCisJCQkJMTQwMTYtQyBTdWxseWZpZWxkIENpcmNsZQorCQkJCUNoYW50aWxseSBWQSAyMDE1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNzUgICAoaGV4KQkJQ2F0ZXJwaWxsYXIsIEluYworMDAwQTc1ICAgICAoYmFzZSAxNikJCUNhdGVycGlsbGFyLCBJbmMKKwkJCQlNYWlsc3RvcCBMb2NhdGlvbiBBQzYxMzAKKwkJCQlQTyBCb3ggNjEwCisJCQkJTW9zc3ZpbGxlIElMIDYxNTUyLTA2MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTc2ICAgKGhleCkJCUJlaWRhIEphZGUgQmlyZCBIdWFndWFuZyBUZWNobm9sb2d5IENvLixMdGQKKzAwMEE3NiAgICAgKGJhc2UgMTYpCQlCZWlkYSBKYWRlIEJpcmQgSHVhZ3VhbmcgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJTm8uMjA3IENoZW5nZnUgUm9hZCwgSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDg3MQorCQkJCUNISU5BCisKKzAwLTBBLTc3ICAgKGhleCkJCUJsdWV3aXJlIFRlY2hub2xvZ2llcyBMTEMKKzAwMEE3NyAgICAgKGJhc2UgMTYpCQlCbHVld2lyZSBUZWNobm9sb2dpZXMgTExDCisJCQkJNDIwIE4uIE8gU3QuCisJCQkJVHVsYXJlIENhIDkzMjc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS03OCAgIChoZXgpCQlPTElURUMKKzAwMEE3OCAgICAgKGJhc2UgMTYpCQlPTElURUMKKwkJCQlCLlAuIDU5MgorCQkJCTg3LCBydWUgTWFjIE1haG9uCisJCQkJTkFOQ1kgY2VkZXggIDU0MDA5CisJCQkJRlJBTkNFCisKKzAwLTBBLTc5ICAgKGhleCkJCUFsbGllZCBUZWxlc2lzIEsuSy4gY29yZWdhIGRpdmlzaW9uCiswMDBBNzkgICAgIChiYXNlIDE2KQkJQWxsaWVkIFRlbGVzaXMgSy5LLiBjb3JlZ2EgZGl2aXNpb24KKwkJCQkxLTE5LTIwLCBTaGlueW9rb2hhbWEKKwkJCQlLb3Vob2t1LWt1CisJCQkJWW9rb2hhbWEtY2l0eSBLYW5hZ2F3YS1rZW4gMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0wQS03QSAgIChoZXgpCQlLeW9yaXRzdSBFbGVjdHJpYyBDby4sIEx0ZC4KKzAwMEE3QSAgICAgKGJhc2UgMTYpCQlLeW9yaXRzdSBFbGVjdHJpYyBDby4sIEx0ZC4KKwkJCQkyLTMtMTcKKwkJCQlJd2F0by1taW5hbWkKKwkJCQlLb21hZS1zaGkgVG9reW8gMjAxLTAwMDUKKwkJCQlKQVBBTgorCiswMC0wQS03QiAgIChoZXgpCQlDb3JuZWxpdXMgQ29uc3VsdAorMDAwQTdCICAgICAoYmFzZSAxNikJCUNvcm5lbGl1cyBDb25zdWx0CisJCQkJQW0gU2llcGVuIDE3CisJCQkJQm9jaHVtIE5SVyA0NDgwMworCQkJCUdFUk1BTlkKKworMDAtMEEtN0MgICAoaGV4KQkJVGVjdG9uIEx0ZAorMDAwQTdDICAgICAoYmFzZSAxNikJCVRlY3RvbiBMdGQKKwkJCQlGaXNoZXJzIENvdXJ0CisJCQkJRmlzaGVycyBQb25kCisJCQkJRWFzdGxlaWdoIEhhbXBzaGlyZSBTTzUwIDdIRworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBBLTdEICAgKGhleCkJCVZhbG8sIEluYy4KKzAwMEE3RCAgICAgKGJhc2UgMTYpCQlWYWxvLCBJbmMuCisJCQkJMTM1MSBSZWR3b29kIFdheQorCQkJCVBldGFsdW1hIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS03RSAgIChoZXgpCQlUaGUgQWR2YW50YWdlIEdyb3VwCiswMDBBN0UgICAgIChiYXNlIDE2KQkJVGhlIEFkdmFudGFnZSBHcm91cAorCQkJCTE2MTAgRGVzIFBlcmVzIFJvYWQKKwkJCQlTdWl0ZSAzNzAKKwkJCQlTdC4gTG91aXMgTU8gNjMxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTdGICAgKGhleCkJCVRlcmFkb24gSW5kdXN0cmllcywgSW5jCiswMDBBN0YgICAgIChiYXNlIDE2KQkJVGVyYWRvbiBJbmR1c3RyaWVzLCBJbmMKKwkJCQk3NTAwIDJuZCBTVCBOVworCQkJCUFsYnVxdWVycXVlIE5NIDg3MTIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS04MCAgIChoZXgpCQlUZWxrb25ldCBJbmMuCiswMDBBODAgICAgIChiYXNlIDE2KQkJVGVsa29uZXQgSW5jLgorCQkJCTIwMzc0IFNlbmVjYSBNZWFkb3dzIFBrd3kKKwkJCQlHZXJtYW50b3duIE1EIDIwNzg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS04MSAgIChoZXgpCQlURUlNQSBBdWRpb3RleCBTLkwuCiswMDBBODEgICAgIChiYXNlIDE2KQkJVEVJTUEgQXVkaW90ZXggUy5MLgorCQkJCUMvIFRpcnZpYSwgNiwgbG9jYWwgQgorCQkJCU1hZHJpZCAgMjgwNDAKKwkJCQlTUEFJTgorCiswMC0wQS04MiAgIChoZXgpCQlUQVRTVVRBIFNZU1RFTSBFTEVDVFJPTklDUyBDTy4sTFRELgorMDAwQTgyICAgICAoYmFzZSAxNikJCVRBVFNVVEEgU1lTVEVNIEVMRUNUUk9OSUNTIENPLixMVEQuCisJCQkJSVdBVEFUWU9VMi0zLTEKKwkJCQlISUdBU0hJT09TQUtBLVNISSBPT1NBS0EtRlUgNTc4LTg1ODUKKwkJCQlKQVBBTgorCiswMC0wQS04MyAgIChoZXgpCQlTQUxUTyBTWVNURU1TIFMuTC4KKzAwMEE4MyAgICAgKGJhc2UgMTYpCQlTQUxUTyBTWVNURU1TIFMuTC4KKwkJCQlBcmtvdHosIDkKKwkJCQlQb2ztZ29ubyBMYW5iYXJyZW4gT2lhcnR6dW4gMjAxODAKKwkJCQlTUEFJTgorCiswMC0wQS04NCAgIChoZXgpCQlSYWluc3VuIEVudGVycHJpc2UgQ28uLCBMdGQuCiswMDBBODQgICAgIChiYXNlIDE2KQkJUmFpbnN1biBFbnRlcnByaXNlIENvLiwgTHRkLgorCQkJCU5vLjE0LTMgLCBMYW5lIDIzNSwgSG8tQ2hlbiBSb2FkCisJCQkJQmFvQ2lhbyBSb2FkCisJCQkJU2hpbkRpYW4gQ2l0eSBUQUlQRUkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS04NSAgIChoZXgpCQlQTEFUJ0MyLEluYworMDAwQTg1ICAgICAoYmFzZSAxNikJCVBMQVQnQzIsSW5jCisJCQkJMi0zLTYgU09UT0tBTkRBCisJCQkJQ0hJWU9EQS1LVSBUT0tZTyAxMDEtMDAyMQorCQkJCUpBUEFOCisKKzAwLTBBLTg2ICAgKGhleCkJCUxlbnplCiswMDBBODYgICAgIChiYXNlIDE2KQkJTGVuemUKKwkJCQlQTyBib3ggMTAxMzUyCisJCQkJSGFtZWxuIExvd2VyIFNheG9ueSAzMTc2MworCQkJCUdFUk1BTlkKKworMDAtMEEtODcgICAoaGV4KQkJSW50ZWdyYXRlZCBNaWNyb21hY2hpbmVzIEluYy4KKzAwMEE4NyAgICAgKGJhc2UgMTYpCQlJbnRlZ3JhdGVkIE1pY3JvbWFjaGluZXMgSW5jLgorCQkJCTE0MDAgUy4gU2hhbXJvY2sgQXZlLgorCQkJCU1vbnJvdmlhIENBIDkxMDE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS04OCAgIChoZXgpCQlJbkN5cGhlciBTLkEuCiswMDBBODggICAgIChiYXNlIDE2KQkJSW5DeXBoZXIgUy5BLgorCQkJCTE4IHJ1ZSBkZSBsJ0VhdQorCQkJCUx1eGVtYm91cmcgIDE0NDkKKwkJCQlMVVhFTUJPVVJHCisKKzAwLTBBLTg5ICAgKGhleCkJCUNyZXZhbCBTeXN0ZW1zLCBJbmMuCiswMDBBODkgICAgIChiYXNlIDE2KQkJQ3JldmFsIFN5c3RlbXMsIEluYy4KKwkJCQkyRiwyNC00LFNhbndvbGdvay1Eb25nLFN1bmdidWstS3UsU2VvdWwsCisJCQkJU2VvdWwgIDEzNi0xMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtOEEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQThBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtOEIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQThCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEUi4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtOEMgICAoaGV4KQkJR3VhcmR3YXJlIFN5c3RlbXMgTHRkLgorMDAwQThDICAgICAoYmFzZSAxNikJCUd1YXJkd2FyZSBTeXN0ZW1zIEx0ZC4KKwkJCQlVbGxvaSB1dCAxMDIuCisJCQkJQnVkYXBlc3QgIEgtMTA4OQorCQkJCUhVTkdBUlkKKworMDAtMEEtOEQgICAoaGV4KQkJRVVST1RIRVJNIExJTUlURUQKKzAwMEE4RCAgICAgKGJhc2UgMTYpCQlFVVJPVEhFUk0gTElNSVRFRAorCQkJCUZBUkFEQVkgQ0xPU0UKKwkJCQlEVVJSSU5HVE9OCisJCQkJV09SVEhJTkcgV0VTVCBTVVNTRVggQk4xMyAzUEwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQS04RSAgIChoZXgpCQlJbnZhY29tIEx0ZAorMDAwQThFICAgICAoYmFzZSAxNikJCUludmFjb20gTHRkCisJCQkJQnVzaW5lc3MgYW5kIFRlY2hub2xvZ3kgQ2VudHJlCisJCQkJQmVzc2VtZXIgRHJpdmUKKwkJCQlTdGV2ZW5hZ2UgSGVydGZvcmRzaGlyZSBTRzEgMkRYCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEEtOEYgICAoaGV4KQkJQXNrYSBJbnRlcm5hdGlvbmFsIEluYy4KKzAwMEE4RiAgICAgKGJhc2UgMTYpCQlBc2thIEludGVybmF0aW9uYWwgSW5jLgorCQkJCTMwNiBSaXZlcnNldmVuCisJCQkJNC0xOCBIYXJlZ2ktSG9ubWFjaGkKKwkJCQlLb2NoaSAgNzgwLTgwODgKKwkJCQlKQVBBTgorCiswMC0wQS05MCAgIChoZXgpCQlCYXlzaWRlIEludGVyYWN0aXZlLCBJbmMuCiswMDBBOTAgICAgIChiYXNlIDE2KQkJQmF5c2lkZSBJbnRlcmFjdGl2ZSwgSW5jLgorCQkJCTMzMCBCaXNjYXluZSBCbHZkLgorCQkJCVN1aXRlIDgwMQorCQkJCU1pYW1pIEZMIDMzMTMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS05MSAgIChoZXgpCQlIZW1vQ3VlIEFCCiswMDBBOTEgICAgIChiYXNlIDE2KQkJSGVtb0N1ZSBBQgorCQkJCUJveCAxMjA0CisJCQkJxG5nZWxob2xtIFNr5W5lIDI2MjIzCisJCQkJU1dFREVOCisKKzAwLTBBLTkyICAgKGhleCkJCVByZXNvbnVzIENvcnBvcmF0aW9uCiswMDBBOTIgICAgIChiYXNlIDE2KQkJUHJlc29udXMgQ29ycG9yYXRpb24KKwkJCQk3MjU3IEZsb3JpZGEgQmx2ZC4KKwkJCQlCYXRvbiBSb3VnZSBMb3Vpc2lhbmEgNzA4MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTkzICAgKGhleCkJCVcyIE5ldHdvcmtzLCBJbmMuCiswMDBBOTMgICAgIChiYXNlIDE2KQkJVzIgTmV0d29ya3MsIEluYy4KKwkJCQk1ODA4IE5XIExhYyBMZW1hbiBEcml2ZQorCQkJCUlzc2FxdWFoIFdhc2hpbmd0b24gOTgwMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTk0ICAgKGhleCkJCVNoYW5nSGFpIGNlbGxpbmsgQ08uLCBMVEQKKzAwMEE5NCAgICAgKGJhc2UgMTYpCQlTaGFuZ0hhaSBjZWxsaW5rIENPLiwgTFRECisJCQkJQzMgTWVpTG9uZyBaaG9uZ1hpbiBJbmR1c3RyaWFsIFBhcmssTm8uMQorCQkJCVNoYW5nSGFpICAyMDAyMzcKKwkJCQlDSElOQQorCiswMC0wQS05NSAgIChoZXgpCQlBcHBsZSBDb21wdXRlciwgSW5jLgorMDAwQTk1ICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJTS9TIDI2LUMKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTk2ICAgKGhleCkJCU1FV1RFTCBURUNITk9MT0dZIElOQy4KKzAwMEE5NiAgICAgKGJhc2UgMTYpCQlNRVdURUwgVEVDSE5PTE9HWSBJTkMuCisJCQkJRTE1RkwuIElUIFZFTlRVUkUgVE9XRVIKKwkJCQk3OCBLQVJBSy1ET05HLCBTT05HUEEtR1UKKwkJCQlTRU9VTCAgMTM4LTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS05NyAgIChoZXgpCQlTT05JQ2JsdWUsIEluYy4KKzAwMEE5NyAgICAgKGJhc2UgMTYpCQlTT05JQ2JsdWUsIEluYy4KKwkJCQkyODQxIE1pc3Npb24gQ29sbGVnZSBCbHZkLgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS05OCAgIChoZXgpCQlNK0YgR3dpbm5lciBHbWJIICYgQ28KKzAwMEE5OCAgICAgKGJhc2UgMTYpCQlNK0YgR3dpbm5lciBHbWJIICYgQ28KKwkJCQlXZWlkZW5iYXVtc3dlZyA5MSBhCisJCQkJSGFtYnVyZyAgMjEwMjkKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTk5ICAgKGhleCkJCUNhbGFtcCBXaXJlbGVzcyBOZXR3b3JrcyBJbmMKKzAwMEE5OSAgICAgKGJhc2UgMTYpCQlDYWxhbXAgV2lyZWxlc3MgTmV0d29ya3MgSW5jCisJCQkJMTAxLTU1NDAgRmVycmllciBTdHJlZXQKKwkJCQlUb3duIG9mIE1vdW50LVJveWFsIFF1ZWJlYyBINFAgMU0yCisJCQkJQ0FOQURBCisKKzAwLTBBLTlBICAgKGhleCkJCUFpcHRlayBJbnRlcm5hdGlvbmFsIEluYworMDAwQTlBICAgICAoYmFzZSAxNikJCUFpcHRlayBJbnRlcm5hdGlvbmFsIEluYworCQkJCU5vIDUtMSBJbm5vdmF0aW9uIFJkIDEKKwkJCQlTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW4tQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTlCICAgKGhleCkJCVRvd2EgTWVjY3MgQ29ycG9yYXRpb24KKzAwMEE5QiAgICAgKGJhc2UgMTYpCQlUb3dhIE1lY2NzIENvcnBvcmF0aW9uCisJCQkJMzUtMSBLYW1pdG9kYQorCQkJCVRvZGEgU2FpdGFtYSAzMzUtMDAyMgorCQkJCUpBUEFOCisKKzAwLTBBLTlDICAgKGhleCkJCVNlcnZlciBUZWNobm9sb2d5LCBJbmMuCiswMDBBOUMgICAgIChiYXNlIDE2KQkJU2VydmVyIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxMDQwIFNhbmRoaWxsIERyLgorCQkJCVJlbm8gTmV2YWRhIDg5NTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS05RCAgIChoZXgpCQlLaW5nIFlvdW5nIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKzAwMEE5RCAgICAgKGJhc2UgMTYpCQlLaW5nIFlvdW5nIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKwkJCQkxRmwuLCBOby4gOSwgTGFuZSAyNiwgR2FuZ2NoaSBSZC4sIE5laWh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTlFICAgKGhleCkJCUJyb2FkV2ViIENvcnBvcnRhdGlvbgorMDAwQTlFICAgICAoYmFzZSAxNikJCUJyb2FkV2ViIENvcnBvcnRhdGlvbgorCQkJCTNGLCAyNC0xLCBJbmR1c3RyeSBFYXN0IFJkLiwgSVYsCisJCQkJU2NpZW5jZSBCYXNlZCwgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbi1DaHUgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS05RiAgIChoZXgpCQlQYW5uYXdheSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEE5RiAgICAgKGJhc2UgMTYpCQlQYW5uYXdheSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyMTUgQ29tbWVyY2UgV2F5CisJCQkJUG9ydHNtb3V0aCBOSCAwMzgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtQTAgICAoaGV4KQkJQ2VkYXIgUG9pbnQgQ29tbXVuaWNhdGlvbnMKKzAwMEFBMCAgICAgKGJhc2UgMTYpCQlDZWRhciBQb2ludCBDb21tdW5pY2F0aW9ucworCQkJCTE2IFJvdXRlIDExMSwgQmxkZyAzCisJCQkJRGVycnkgTkggMDMwMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUExICAgKGhleCkJCVYgViBTIExpbWl0ZWQKKzAwMEFBMSAgICAgKGJhc2UgMTYpCQlWIFYgUyBMaW1pdGVkCisJCQkJSFBJQywgMS4gQWluc2xpZSBSb2FkICwKKwkJCQlIaWxsaW5ndG9uCisJCQkJR2xhc2dvdyBTY290bGFuZCBHNTIgNFJVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEEtQTIgICAoaGV4KQkJU1lTVEVLIElOQy4KKzAwMEFBMiAgICAgKGJhc2UgMTYpCQlTWVNURUsgSU5DLgorCQkJCUpDT00gQlVJTERJTkcgNDAyLCBPSkVPTi1ET05HIDEyNC00LAorCQkJCVVJV0FORy1TSSBHWVVOR0dJLURPIDQzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtQTMgICAoaGV4KQkJU0hJTUFGVUpJIEVMRUNUUklDIENPLixMVEQuCiswMDBBQTMgICAgIChiYXNlIDE2KQkJU0hJTUFGVUpJIEVMRUNUUklDIENPLixMVEQuCisJCQkJRGFpaHlha3Utc2VpbWVpIEthbWF0YSBCbGRnLjNGCisJCQkJOC0xMS0xMSBOaXNoaWthbWF0YSxPdGEta3UKKwkJCQlUb2t5byAxNDQtMDA1MQorCQkJCUpBUEFOCisKKzAwLTBBLUE0ICAgKGhleCkJCVNIQU5HSEFJIFNVUlZFSUxMQU5DRSBURUNITk9MT0dZIENPLExURAorMDAwQUE0ICAgICAoYmFzZSAxNikJCVNIQU5HSEFJIFNVUlZFSUxMQU5DRSBURUNITk9MT0dZIENPLExURAorCQkJCUZMLjI1QSxOTy44IENIQU5HWUFORyBST0FECisJCQkJU0hBTkdIQUkgIDIwMDA4MgorCQkJCUNISU5BCisKKzAwLTBBLUE1ICAgKGhleCkJCU1BWExJTksgSU5EVVNUUklFUyBMSU1JVEVECiswMDBBQTUgICAgIChiYXNlIDE2KQkJTUFYTElOSyBJTkRVU1RSSUVTIExJTUlURUQKKwkJCQkyOUEgU0hFTlpIRU4gU1BFQ0lBTCBaT05FCisJCQkJUFJFU1MgVE9XRVIKKwkJCQlTSEVOWkhFTiBHVUFOR0RPTkcgNTE4MDA5CisJCQkJQ0hJTkEKKworMDAtMEEtQTYgICAoaGV4KQkJSG9jaGlraSBDb3Jwb3JhdGlvbgorMDAwQUE2ICAgICAoYmFzZSAxNikJCUhvY2hpa2kgQ29ycG9yYXRpb24KKwkJCQkyNDYsIFRTVVJVTUEKKwkJCQlNQUNISURBIFRPS1lPIDE5NC04NTc3CisJCQkJSkFQQU4KKworMDAtMEEtQTcgICAoaGV4KQkJRkVJIEVsZWN0cm9uIE9wdGljcworMDAwQUE3ICAgICAoYmFzZSAxNikJCUZFSSBFbGVjdHJvbiBPcHRpY3MKKwkJCQlBY2h0c2V3ZWcgTm9vcmQgNQorCQkJCUFBRSAzNAorCQkJCUVpbmRob3ZlbiAgNTY1MUdHCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEEtQTggICAoaGV4KQkJZVBpcGUgUHR5LiBMdGQuCiswMDBBQTggICAgIChiYXNlIDE2KQkJZVBpcGUgUHR5LiBMdGQuCisJCQkJUC5PLiBCb3ggMTQyOAorCQkJCVRvb3dvbmcKKwkJCQlCcmlzYmFuZSBRdWVlbnNsYW5kIDQwNjYKKwkJCQlBVVNUUkFMSUEKKworMDAtMEEtQTkgICAoaGV4KQkJQnJvb2tzIEF1dG9tYXRpb24gR21iSAorMDAwQUE5ICAgICAoYmFzZSAxNikJCUJyb29rcyBBdXRvbWF0aW9uIEdtYkgKKwkJCQlHb2VzY2h3aXR6ZXIgU3RyYXNzZSAyNQorCQkJCUplbmEgVGh1cmluZ2lhIDA3NzQ1CisJCQkJR0VSTUFOWQorCiswMC0wQS1BQSAgIChoZXgpCQlBbHRpR2VuIENvbW11bmljYXRpb25zIEluYy4KKzAwMEFBQSAgICAgKGJhc2UgMTYpCQlBbHRpR2VuIENvbW11bmljYXRpb25zIEluYy4KKwkJCQk0NzQyNyBGcmVtb250IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtQUIgICAoaGV4KQkJVG95b3RhIFRlY2huaWNhbCBEZXZlbG9wbWVudCBDb3Jwb3JhdGlvbgorMDAwQUFCICAgICAoYmFzZSAxNikJCVRveW90YSBUZWNobmljYWwgRGV2ZWxvcG1lbnQgQ29ycG9yYXRpb24KKwkJCQkxLTIxLCBJbWFlLCBIYW5hbW90by1jaG8KKwkJCQlUb3lvdGEgQWljaGkgNDcwLTAzMzQKKwkJCQlKQVBBTgorCiswMC0wQS1BQyAgIChoZXgpCQlUZXJyYVRlYyBFbGVjdHJvbmljIEdtYkgKKzAwMEFBQyAgICAgKGJhc2UgMTYpCQlUZXJyYVRlYyBFbGVjdHJvbmljIEdtYkgKKwkJCQlIZXJyZW5wZmFkIDM4CisJCQkJTmV0dGV0YWwgTlJXIDQxMzM0CisJCQkJR0VSTUFOWQorCiswMC0wQS1BRCAgIChoZXgpCQlTdGFyZ2FtZXMgQ29ycG9yYXRpb24KKzAwMEFBRCAgICAgKGJhc2UgMTYpCQlTdGFyZ2FtZXMgQ29ycG9yYXRpb24KKwkJCQkxMyBTaGVyaWRhbiBDbG9zZQorCQkJCU1pbHBlcnJhIE5TVyAyMDMxCisJCQkJQVVTVFJBTElBCisKKzAwLTBBLUFFICAgKGhleCkJCVJvc2Vtb3VudCBQcm9jZXNzIEFuYWx5dGljYWwKKzAwMEFBRSAgICAgKGJhc2UgMTYpCQlSb3NlbW91bnQgUHJvY2VzcyBBbmFseXRpY2FsCisJCQkJNjU3M0EgQ29jaHJhbiBSZC4KKwkJCQlTb2xvbiBPaGlvIDQ0MTM5LTM5MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUFGICAgKGhleCkJCVBpcGFsIFN5c3RlbXMKKzAwMEFBRiAgICAgKGJhc2UgMTYpCQlQaXBhbCBTeXN0ZW1zCisJCQkJMjkwMyBCdW5rZXIgSGlsbCBMYW5lCisJCQkJU3VpdGUgMjEwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUIwICAgKGhleCkJCUxPWVRFQyBlbGVjdHJvbmljcyBHbWJICiswMDBBQjAgICAgIChiYXNlIDE2KQkJTE9ZVEVDIGVsZWN0cm9uaWNzIEdtYkgKKwkJCQlTdG9semVudGhhbGVyZ2Fzc2UgMjQvMworCQkJCVZpZW5uYSBXaWVuIDEwODAKKwkJCQlBVVNUUklBCisKKzAwLTBBLUIxICAgKGhleCkJCUdFTkVURUMgQ29ycG9yYXRpb24KKzAwMEFCMSAgICAgKGJhc2UgMTYpCQlHRU5FVEVDIENvcnBvcmF0aW9uCisJCQkJTmlzaGlrdXJhLUxLIEJsZC4KKwkJCQlUb21paGlzYS1jaG91IDE2LTYKKwkJCQlTaGluanVrdS1rdSBUb2t5byAxNjItMDA2NworCQkJCUpBUEFOCisKKzAwLTBBLUIyICAgKGhleCkJCUZyZXNuZWwgV2lyZWxlc3MgU3lzdGVtcworMDAwQUIyICAgICAoYmFzZSAxNikJCUZyZXNuZWwgV2lyZWxlc3MgU3lzdGVtcworCQkJCTEzMzMgR2F0ZXdheSBEcml2ZQorCQkJCVN1aXRlIDEwMDcKKwkJCQlNZWxib3VybmUgRkwgMzI5MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUIzICAgKGhleCkJCUZhLiBHSVJBCiswMDBBQjMgICAgIChiYXNlIDE2KQkJRmEuIEdJUkEKKwkJCQlEYWhsaWVuc3RyYd9lCisJCQkJUmFkZXZvcm13YWxkIE5vcmRyaGVpbi1XZXN0ZmFsZW4gNDI0NzcKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLUI0ICAgKGhleCkJCUVUSUMgVGVsZWNvbW11bmljYXRpb25zCiswMDBBQjQgICAgIChiYXNlIDE2KQkJRVRJQyBUZWxlY29tbXVuaWNhdGlvbnMKKwkJCQkxMywgY2hlbWluIGR1IHZpZXV4LWNoZW5lIFpJUlNUCisJCQkJTUVZTEFOIElzZXJlIDM4MjQwCisJCQkJRlJBTkNFCisKKzAwLTBBLUI1ICAgKGhleCkJCURpZ2l0YWwgRWxlY3Ryb25pYyBOZXR3b3JrCiswMDBBQjUgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBFbGVjdHJvbmljIE5ldHdvcmsKKwkJCQk4IHJ1ZSBkdSBzYWNy6SBjb2V1cgorCQkJCVNhaW50IExhdXJlbnQgc3VyIFNldnJlIFZlbmRlZSA4NTI5MAorCQkJCUZSQU5DRQorCiswMC0wQS1CNiAgIChoZXgpCQlDT01QVU5FVElYLCBJTkMKKzAwMEFCNiAgICAgKGJhc2UgMTYpCQlDT01QVU5FVElYLCBJTkMKKwkJCQkyNDIwIE1PU1NJREUgQkxWRC4KKwkJCQlNT05ST0VWSUxMRSBQQSAxNTE0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtQjcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQUI3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtQjggICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQUI4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDYSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtQjkgICAoaGV4KQkJQXN0ZXJhIFRlY2hub2xvZ2llcyBDb3JwLgorMDAwQUI5ICAgICAoYmFzZSAxNikJCUFzdGVyYSBUZWNobm9sb2dpZXMgQ29ycC4KKwkJCQkgMjM4MCBXYXZlcmxleSBTdHJlZXQKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUJBICAgKGhleCkJCUFyY29uIFRlY2hub2xvZ3kgTGltaXRlZAorMDAwQUJBICAgICAoYmFzZSAxNikJCUFyY29uIFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCVJtLiAzNzExLTEyLCAzNy9GLiwgQ2FibGUgVFYgVG93ZXIgLAorCQkJCSA5IEhvaSBTaGluZyBSZC4sIFRzdWVuIFdhbiAsIE4uVAorCQkJCUhvbmcgS29uZyAgCisJCQkJQ0hJTkEKKworMDAtMEEtQkIgICAoaGV4KQkJVGFpd2FuIFNlY29tIENvLC4gTHRkCiswMDBBQkIgICAgIChiYXNlIDE2KQkJVGFpd2FuIFNlY29tIENvLC4gTHRkCisJCQkJMTNGLCAxMDgsIFNlYzEsIFNoaW4tVGFpIDV0aCBSb2FkCisJCQkJSHNpLUNoaWggVGFpcGVpIENvdW50eSAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLUJDICAgKGhleCkJCVNlYWJyaWRnZSBMdGQuCiswMDBBQkMgICAgIChiYXNlIDE2KQkJU2VhYnJpZGdlIEx0ZC4KKwkJCQkzIEhhbmFnYXIgU3QuCisJCQkJTmV2ZS1OZWVtYW4gQicKKwkJCQlIb2QtSGFzaGFyb24gSXNyYWVsIDQ1MjQxCisJCQkJSVNSQUVMCisKKzAwLTBBLUJEICAgKGhleCkJCVJ1cHByZWNodCAmIFBhdGFzaG5pY2sgQ28uCiswMDBBQkQgICAgIChiYXNlIDE2KQkJUnVwcHJlY2h0ICYgUGF0YXNobmljayBDby4KKwkJCQkyNSBDb3Jwb3JhdGUgQ2lyY2xlCisJCQkJQWxiYW55IE5ZIDEyMjAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1CRSAgIChoZXgpCQlPUE5FVCBUZWNobm9sb2dpZXMgQ08uLCBMVEQuCiswMDBBQkUgICAgIChiYXNlIDE2KQkJT1BORVQgVGVjaG5vbG9naWVzIENPLiwgTFRELgorCQkJCTNGLCBOTy41LCBJbmR1c3RyeSBFLiBSZC4gSVgsIFNjaWVuY2UtQmEKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLUJGICAgKGhleCkJCUhJUk9UQSBTUworMDAwQUJGICAgICAoYmFzZSAxNikJCUhJUk9UQSBTUworCQkJCU1hdHVrYXdhLUtvdWd5b3VkYW5jaGkKKwkJCQlTdXpha2Etc2hpIE5hZ2FubyAzODItMDAwNQorCQkJCUpBUEFOCisKKzAwLTBBLUMwICAgKGhleCkJCUZ1eW9oIFZpZGVvIEluZHVzdHJ5IENPLiwgTFRELgorMDAwQUMwICAgICAoYmFzZSAxNikJCUZ1eW9oIFZpZGVvIEluZHVzdHJ5IENPLiwgTFRELgorCQkJCTctMjUgSGlnYXNoaSBLaWJvZ2Fva2EKKwkJCQlBc2FoaS1rdQorCQkJCVlva29oYW1hLXNoaSBLYW5hZ2F3YS1rZW4gMjQ2LTAwMDgKKwkJCQlKQVBBTgorCiswMC0wQS1DMSAgIChoZXgpCQlGdXR1cmV0ZWwKKzAwMEFDMSAgICAgKGJhc2UgMTYpCQlGdXR1cmV0ZWwKKwkJCQkyMTU4MCBTdGV2ZW5zIENyZWVrIEJsdmQsIFN1aXRlIDIwOAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtQzIgICAoaGV4KQkJRmliZXJIb21lIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDTy4sTFRECiswMDBBQzIgICAgIChiYXNlIDE2KQkJRmliZXJIb21lIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDTy4sTFRECisJCQkJTm8uODggWW91S2V5dWFuIFJvYWQsSG9uZ3NoYW4gRGlzdHJpY3QsVworCQkJCVd1aGFuIEh1YmVpIDQzMDA3NAorCQkJCUNISU5BCisKKzAwLTBBLUMzICAgKGhleCkJCWVNIFRlY2huaWNzIENvLiwgTHRkLgorMDAwQUMzICAgICAoYmFzZSAxNikJCWVNIFRlY2huaWNzIENvLiwgTHRkLgorCQkJCTdGLiwgSVQgVmVudHVyZSBUb3dlci4sIDc4LAorCQkJCUdhcmFrYm9uLURvbmcsIFNvbmdwYS1HdQorCQkJCVNlb3VsICAxMzgtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLUM0ICAgKGhleCkJCURhZXdvbyBUZWxldGVjaCBDby4sIEx0ZAorMDAwQUM0ICAgICAoYmFzZSAxNikJCURhZXdvbyBUZWxldGVjaCBDby4sIEx0ZAorCQkJCTI2NS0zLCBTZW9oeWVvbiwgQnVuZGFuZworCQkJCVNlb25nbmFtIEd5ZW9uZ2dpIDQ2My03NjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtQzUgICAoaGV4KQkJQ29sb3IgS2luZXRpY3MKKzAwMEFDNSAgICAgKGJhc2UgMTYpCQlDb2xvciBLaW5ldGljcworCQkJCTEwIE1pbGsgU3RyZWV0CisJCQkJU3VpdGUgMTEwMAorCQkJCUJvc3RvbiBNYXNhY2h1c2V0dHMgMDIxMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUM2ICAgKGhleCkJCUNldGVydXMgTmV0d29ya3MsIEluYy4KKzAwMEFDNiAgICAgKGJhc2UgMTYpCQlDZXRlcnVzIE5ldHdvcmtzLCBJbmMuCisJCQkJUC5PLiBCb3ggMjUwMzkxCisJCQkJUGxhbm8gVFggNzUwMjUtMDM5MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtQzcgICAoaGV4KQkJVW5pY2F0aW9uIEdyb3VwCiswMDBBQzcgICAgIChiYXNlIDE2KQkJVW5pY2F0aW9uIEdyb3VwCisJCQkJM0YuLCBOby4gNiwgV3UtS3VuZyA1UmQuLCBIc2luY2h1YW5nIENpdAorCQkJCVRhaXBlaSAgMjQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS1DOCAgIChoZXgpCQlaUFNZUyBDTy4sTFRELiAoUGxhbm5pbmcmTWFuYWdlbWVudCkKKzAwMEFDOCAgICAgKGJhc2UgMTYpCQlaUFNZUyBDTy4sTFRELiAoUGxhbm5pbmcmTWFuYWdlbWVudCkKKwkJCQkxMDYgQWNlIFRlY2hubyBUb3dlcjEKKwkJCQkxOTctMTcgS3Vyby1Eb25nCisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtQzkgICAoaGV4KQkJWmFtYmVlbCBJbmMKKzAwMEFDOSAgICAgKGJhc2UgMTYpCQlaYW1iZWVsIEluYworCQkJCTQ1NzAwIE5vcnRocG9ydCBMb29wIEVhc3QKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1DQSAgIChoZXgpCQlZT0tPWUFNQSBTSE9LQUkgQ08uLEx0ZC4KKzAwMEFDQSAgICAgKGJhc2UgMTYpCQlZT0tPWUFNQSBTSE9LQUkgQ08uLEx0ZC4KKwkJCQk2LTk2IE1hdHN1bXVyYQorCQkJCUthbmF6YXdhIElzaGlrYXdhIDkyMC0wMzQ4CisJCQkJSkFQQU4KKworMDAtMEEtQ0IgICAoaGV4KQkJWFBBSyBNU0EgR3JvdXAKKzAwMEFDQiAgICAgKGJhc2UgMTYpCQlYUEFLIE1TQSBHcm91cAorCQkJCUNhcmUgb2Y6IE1vbGV4IEZpYmVyIE9wdGljcworCQkJCTUyMjQgS2F0cmluZSBBdmVudWUKKwkJCQlEb3duZXJzIEdyb3ZlIElMIDYwNTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1DQyAgIChoZXgpCQlXaW5ub3cgTmV0d29ya3MsIEluYy4KKzAwMEFDQyAgICAgKGJhc2UgMTYpCQlXaW5ub3cgTmV0d29ya3MsIEluYy4KKwkJCQk3MDEgRW1lcnNvbiBSb2FkCisJCQkJU3VpdGUgMjQ0CisJCQkJU3QuIExvdWlzIE1PIDYzMTQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1DRCAgIChoZXgpCQlTdW5yaWNoIFRlY2hub2xvZ3kgTGltaXRlZAorMDAwQUNEICAgICAoYmFzZSAxNikJCVN1bnJpY2ggVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJVW5pdCAxMzAxLCBFYXN0ZXJuIENlbnRyZSwgMTA2NSBLaW5nJ3MgUgorCQkJCVF1YXJyeSBCYXkgIAorCQkJCUhPTkcgS09ORworCiswMC0wQS1DRSAgIChoZXgpCQlSQURJQU5URUNILCBJTkMuCiswMDBBQ0UgICAgIChiYXNlIDE2KQkJUkFESUFOVEVDSCwgSU5DLgorCQkJCTItMSwgSU5EVVNUUlkgRUFTVCBSRC4gMSwgU0NJRU5DRS1CQVNFRAorCQkJCUlORFVTVFJJQUwgUEFSSworCQkJCUhTSU4gQ0hVICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLUNGICAgKGhleCkJCVBST1ZJREVPIE11bHRpbWVkaWEgQ28uIEx0ZC4KKzAwMEFDRiAgICAgKGJhc2UgMTYpCQlQUk9WSURFTyBNdWx0aW1lZGlhIENvLiBMdGQuCisJCQkJNUYsIE5PLjgsIEFMTEVZIDIsIFRaVS1XRUkgTEFORSwKKwkJCQlDSFVORyBDSEVORyBSRC4sCisJCQkJSFNJTiBUSUVOIENJVFkgVEFJUEVJIEhTSUVOLCAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLUQwICAgKGhleCkJCU5paWdhdGEgRGV2ZWxvbWVudCBDZW50ZXIsICBGLkkuVC4gQ28uLCBMdGQuCiswMDBBRDAgICAgIChiYXNlIDE2KQkJTmlpZ2F0YSBEZXZlbG9tZW50IENlbnRlciwgIEYuSS5ULiBDby4sIEx0ZC4KKwkJCQlBa2FuZS1OaWlnYXRhIEJ1aWxkaW5nIDJGCisJCQkJMS02LTcgQXRhZ28KKwkJCQlOaWlnYXRhIE5paWdhdGEgUHJlZmVjdHVyZSA5NTAtMDk0NAorCQkJCUpBUEFOCisKKzAwLTBBLUQxICAgKGhleCkJCU1XUworMDAwQUQxICAgICAoYmFzZSAxNikJCU1XUworCQkJCTEyLCBxdWFpIFBhcGFjaW5vCisJCQkJTklDRSAgMDYzMDAKKwkJCQlGUkFOQ0UKKworMDAtMEEtRDIgICAoaGV4KQkJSkVQSUNPIENvcnBvcmF0aW9uCiswMDBBRDIgICAgIChiYXNlIDE2KQkJSkVQSUNPIENvcnBvcmF0aW9uCisJCQkJTmlzaGktc2hpbmp5dWt1Mi03LTEKKwkJCQlEYWktaWNoaSBTZWltZWkgQkxERy4KKwkJCQlTaGluanl1a3Uta3UgVG9reW8gMTYzLTA3MjkKKwkJCQlKQVBBTgorCiswMC0wQS1EMyAgIChoZXgpCQlJTklURUNIIENvLiwgTHRkCiswMDBBRDMgICAgIChiYXNlIDE2KQkJSU5JVEVDSCBDby4sIEx0ZAorCQkJCTNGLCBJTklURUNIIEJsZGcsIDU1OS01LAorCQkJCUdlb3lvLURvbmcsIFNvbmdwYS1HdQorCQkJCVNlb3VsIFNvbmdwYSAxMzgtODE2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLUQ0ICAgKGhleCkJCUNvcmVCZWxsIFN5c3RlbXMgSW5jLgorMDAwQUQ0ICAgICAoYmFzZSAxNikJCUNvcmVCZWxsIFN5c3RlbXMgSW5jLgorCQkJCUhUVkMgMjMxNyBLQUlTVAorCQkJCTM3My0xIEd1c2VvbmctZG9uZworCQkJCVl1c2VvbmctR3UgRGFlamVvbiAzMDUtNzAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLUQ1ICAgKGhleCkJCUJyYWluY2hpbGQgRWxlY3Ryb25pYyBDby4sIEx0ZC4KKzAwMEFENSAgICAgKGJhc2UgMTYpCQlCcmFpbmNoaWxkIEVsZWN0cm9uaWMgQ28uLCBMdGQuCisJCQkJTm8uMjA5LCBDaHVuZyBZYW5nIFJkLiwKKwkJCQlOYW4gS2FuZyBEaXN0cmljdCwKKwkJCQlUYWlwZWkgIDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtRDYgICAoaGV4KQkJQmVhbVJlYWNoIE5ldHdvcmtzCiswMDBBRDYgICAgIChiYXNlIDE2KQkJQmVhbVJlYWNoIE5ldHdvcmtzCisJCQkJNzU1IE5vcnRoIE1hdGhpbGRhIEF2ZQorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1ENyAgIChoZXgpCQlPcmlnaW4gRUxFQ1RSSUMgQ08uLExURC4KKzAwMEFENyAgICAgKGJhc2UgMTYpCQlPcmlnaW4gRUxFQ1RSSUMgQ08uLExURC4KKwkJCQkxLTE4LTEKKwkJCQlUQUtBREEKKwkJCQlUT1NISU1BIFdBUkQgVE9LWU8gTUVULiAxNzEtODU1NQorCQkJCUpBUEFOCisKKzAwLTBBLUQ4ICAgKGhleCkJCUlQQ3NlcnYgVGVjaG5vbG9neSBDb3JwLgorMDAwQUQ4ICAgICAoYmFzZSAxNikJCUlQQ3NlcnYgVGVjaG5vbG9neSBDb3JwLgorCQkJCTZmLE5vLjEwNyxQYW4tSHNpbiBSZAorCQkJCVBhbi1DaGlhbyBUYWlwZWkgMjIwNDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLUQ5ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDBBRDkgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworMDAtMEEtREEgICAoaGV4KQkJVmluZGljYXRvciBUZWNobm9sb2dpZXMKKzAwMEFEQSAgICAgKGJhc2UgMTYpCQlWaW5kaWNhdG9yIFRlY2hub2xvZ2llcworCQkJCTUzMDcgSW5kdXN0cmlhbCBPYWtzIEJsdmQuCisJCQkJU3VpdGUgMTMwCisJCQkJQXVzdGluIFRleGFzIDc4NzM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1EQiAgIChoZXgpCQlTa3lQaWxvdCBOZXR3b3JrLCBJbmMKKzAwMEFEQiAgICAgKGJhc2UgMTYpCQlTa3lQaWxvdCBOZXR3b3JrLCBJbmMKKwkJCQkxMzAxIFNob3Jld2F5IFJvYWQKKwkJCQlCZWxtb250IENBIDk0MDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1EQyAgIChoZXgpCQlSdWdnZWRDb20gSW5jLgorMDAwQURDICAgICAoYmFzZSAxNikJCVJ1Z2dlZENvbSBJbmMuCisJCQkJMzAgV2hpdG1vcmUgUm9hZAorCQkJCVdvb2RicmlkZ2UgT250YXJpbyBMNEwgN1o0CisJCQkJQ0FOQURBCisKKzAwLTBBLUREICAgKGhleCkJCUFsbHdvcnggQ29ycC4KKzAwMEFERCAgICAgKGJhc2UgMTYpCQlBbGx3b3J4IENvcnAuCisJCQkJMzAwIE1haW4gU3RyZWV0CisJCQkJU3VpdGUgMTEKKwkJCQlFYXN0IFJvY2hlc3RlciBOWSAxNDQ0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtREUgICAoaGV4KQkJSGFwcHkgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKzAwMEFERSAgICAgKGJhc2UgMTYpCQlIYXBweSBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorCQkJCTQyLTExIFdvbk1pLURvbmcKKwkJCQlXb25NaS1HdQorCQkJCUJ1Y2hlb24tQ2l0eSBLeXVuZ0dpLURvIDQyMC0xMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtREYgICAoaGV4KQkJR2VubnVtIENvcnBvcmF0aW9uCiswMDBBREYgICAgIChiYXNlIDE2KQkJR2VubnVtIENvcnBvcmF0aW9uCisJCQkJUC5PIEJveCA0ODkKKwkJCQlTdGF0aW9uIEEKKwkJCQlCdXJsaW5ndG9uIE9udGFyaW8gTDdSIDNZMworCQkJCUNBTkFEQQorCiswMC0wQS1FMCAgIChoZXgpCQlGdWppdHN1IFNvZnRlaworMDAwQUUwICAgICAoYmFzZSAxNikJCUZ1aml0c3UgU29mdGVrCisJCQkJMTI1MCBFYXN0IEFycXVlcyBBdmUKKwkJCQlNUyA3MjkKKwkJCQlTdW5ueXZhbGUgQ2EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUUxICAgKGhleCkJCUVHIFRlY2hub2xvZ3kKKzAwMEFFMSAgICAgKGJhc2UgMTYpCQlFRyBUZWNobm9sb2d5CisJCQkJMjUwIDE1dGggU3RyZWV0CisJCQkJU3VpdGUgNDAwNworCQkJCUF0bGFudGEgR0EgMzAzMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUUyICAgKGhleCkJCUJpbmF0b25lIEVsZWN0cm9uaWNzIEludGVybmF0aW9uYWwsIEx0ZAorMDAwQUUyICAgICAoYmFzZSAxNikJCUJpbmF0b25lIEVsZWN0cm9uaWNzIEludGVybmF0aW9uYWwsIEx0ZAorCQkJCUZsb29yIDIzQSwgOSBEZXMgVm9ldXggUm9hZCBXZXN0CisJCQkJSG9uZyBLb25nIENoaW5hIAorCQkJCUhPTkcgS09ORworCiswMC0wQS1FMyAgIChoZXgpCQlZQU5HIE1FSSBURUNITk9MT0dZIENPLiwgTFRECiswMDBBRTMgICAgIChiYXNlIDE2KQkJWUFORyBNRUkgVEVDSE5PTE9HWSBDTy4sIExURAorCQkJCTIxLCBBbGxleSAxLCBMYW5lIDM0MgorCQkJCUZ1ZGUgMXN0IFJvYWQsIFNoaWpyIENpdHkKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtRTQgICAoaGV4KQkJV2lzdHJvbiBDb3JwLgorMDAwQUU0ICAgICAoYmFzZSAxNikJCVdpc3Ryb24gQ29ycC4KKwkJCQkyMUYsIE5vLiA4OCwgU2VjdGlvbiAxLCBIc2luIFRhaSAgV3UgUmQuCisJCQkJSHNpY2hpaAorCQkJCVRhaXBlaSAgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS1FNSAgIChoZXgpCQlTY290dENhcmUgQ29ycG9yYXRpb24KKzAwMEFFNSAgICAgKGJhc2UgMTYpCQlTY290dENhcmUgQ29ycG9yYXRpb24KKwkJCQk0NzkxIFdlc3QgMTUwdGggU3RyZWV0CisJCQkJQ2xldmVsYW5kIE9oaW8gNDQxMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUU2ICAgKGhleCkJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtIENvLiAoRUNTKQorMDAwQUU2ICAgICAoYmFzZSAxNikJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtIENvLiAoRUNTKQorCQkJCU5vLjIyLCBBbGxleSAzOCwgTGFuZSA5MSwgU2VjLiAxLCBOZWkgSHUKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtRTcgICAoaGV4KQkJRUxJT1AgUy5BLgorMDAwQUU3ICAgICAoYmFzZSAxNikJCUVMSU9QIFMuQS4KKwkJCQlBdmVuaWRhIGRlIE1hbm90ZXJhcywgMzAKKwkJCQlNYWRyaWQgIEUtMjgwNTAKKwkJCQlTUEFJTgorCiswMC0wQS1FOCAgIChoZXgpCQlDYXRoYXkgUm94dXMgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4gTFRECiswMDBBRTggICAgIChiYXNlIDE2KQkJQ2F0aGF5IFJveHVzIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uIExURAorCQkJCUZ1aHVhIG1hbnNpb24gYnVpbGRpbmcgQS9CIDRGCisJCQkJZG9uZ2NoZW5nIGRpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDI3CisJCQkJQ0hJTkEKKworMDAtMEEtRTkgICAoaGV4KQkJQWlyVmFzdCBUZWNobm9sb2d5IEluYy4KKzAwMEFFOSAgICAgKGJhc2UgMTYpCQlBaXJWYXN0IFRlY2hub2xvZ3kgSW5jLgorCQkJCTNGLi01LCBOby42LCBMYW5lIDYwOSwgU2VjLiA1LCBDaG9uZ3NpbiBSZC4KKwkJCQlTYW5jaG9uZyBDaXR5IFRhaXBlaSAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLUVBICAgKGhleCkJCUFEQU0gRUxFS1RST05JSyBMVEQuU1RJLgorMDAwQUVBICAgICAoYmFzZSAxNikJCUFEQU0gRUxFS1RST05JSyBMVEQuU1RJLgorCQkJCVVaVU5BWU5BIENBRC4gQ0VMRU5LIFNPSy4gTk86MSDHQUtNQUsgLworCQkJCUlTVEFOQlVMICA4MTI2MAorCQkJCVRVUktFWQorCiswMC0wQS1FQiAgIChoZXgpCQlTaGVuemhlbiBUcC1MaW5rIFRlY2hub2xvZ3kgQ287IEx0ZC4KKzAwMEFFQiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBUcC1MaW5rIFRlY2hub2xvZ3kgQ287IEx0ZC4KKwkJCQlIaS1UZWNoIFBhcmsgUjEtQjMKKwkJCQkzL0YsIEJsZGcsICBTaGVubmFuIFJvYWQKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMEEtRUMgICAoaGV4KQkJS29hdHN1IEdhcyBLb2d5byBDby4sIEx0ZC4KKzAwMEFFQyAgICAgKGJhc2UgMTYpCQlLb2F0c3UgR2FzIEtvZ3lvIENvLiwgTHRkLgorCQkJCTEtNSwgRG95YW1hLWNobywgS2l0YS1rdSwgT3Nha2EKKwkJCQlPc2FrYSAgNTMwLTg0MTEKKwkJCQlKQVBBTgorCiswMC0wQS1FRCAgIChoZXgpCQlIQVJUSU5HIFN5c3RlbXMgR21iSCAmIENvIEtHCiswMDBBRUQgICAgIChiYXNlIDE2KQkJSEFSVElORyBTeXN0ZW1zIEdtYkggJiBDbyBLRworCQkJCVdpbGhlbG0gSGFydGluZyBTdHIuMQorCQkJCUVzcGVsa2FtcCBOUlcvT1dMIDMyMzM5CisJCQkJR0VSTUFOWQorCiswMC0wQS1FRSAgIChoZXgpCQlHQ0QgSGFyZC0gJiBTb2Z0d2FyZSBHbWJICiswMDBBRUUgICAgIChiYXNlIDE2KQkJR0NEIEhhcmQtICYgU29mdHdhcmUgR21iSAorCQkJCUhlbmtlc3RyLiA3OQorCQkJCUVybGFuZ2VuIEJheWVybiA5MTA1MgorCQkJCUdFUk1BTlkKKworMDAtMEEtRUYgICAoaGV4KQkJT1RSVU0gQVNBCiswMDBBRUYgICAgIChiYXNlIDE2KQkJT1RSVU0gQVNBCisJCQkJQnJhdHRla2xlaXYKKwkJCQlG5nJ2aWsgIE4tNDgxOAorCQkJCU5PUldBWQorCiswMC0wQS1GMCAgIChoZXgpCQlTSElOLU9IIEVMRUNUUk9OSUNTIENPLiwgTFRELiBSJkQKKzAwMEFGMCAgICAgKGJhc2UgMTYpCQlTSElOLU9IIEVMRUNUUk9OSUNTIENPLiwgTFRELiBSJkQKKwkJCQkjNzI5LTUsIEJvbm9oLURvbmcsIEFuc2FuLUNpdHksIEt5dW5nZ2ktCisJCQkJU0hJTi1PSCBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQlBbnNhbi1DaXR5IEt5dW5nZ2ktRG8gNDI1LTE4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS1GMSAgIChoZXgpCQlDbGFyaXR5IERlc2lnbiwgSW5jLgorMDAwQUYxICAgICAoYmFzZSAxNikJCUNsYXJpdHkgRGVzaWduLCBJbmMuCisJCQkJMTMwMjkgRGFuaWVsc29uIFN0cmVldAorCQkJCVN1aXRlIDEwMAorCQkJCVBvd2F5IENBIDkyMDY0LTg4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUYyICAgKGhleCkJCU5lb0F4aW9tIENvcnAuCiswMDBBRjIgICAgIChiYXNlIDE2KQkJTmVvQXhpb20gQ29ycC4KKwkJCQkxNTIwIE1vbnRhZ3VlIEV4cHJlc3N3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRjMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQUYzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRjQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQUY0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRjUgICAoaGV4KQkJQWlyZ28gTmV0d29ya3MsIEluYy4KKzAwMEFGNSAgICAgKGJhc2UgMTYpCQlBaXJnbyBOZXR3b3JrcywgSW5jLgorCQkJCTkwMCBBcmFzdHJhZGVybyBSZAorCQkJCVBhbG8gQWx0byBDQSA5NDMwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRjYgICAoaGV4KQkJRW1lcnNvbiBDbGltYXRlIFRlY2hub2xvZ2llcyBSZXRhaWwgU29sdXRpb25zLCBJbmMuCiswMDBBRjYgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBDbGltYXRlIFRlY2hub2xvZ2llcyBSZXRhaWwgU29sdXRpb25zLCBJbmMuCisJCQkJMTY0MCBBaXJwb3J0IFJkCisJCQkJU3VpdGUgMTA0CisJCQkJS2VubmVzYXcgR0EgMzAxNDQtNzAzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRjcgICAoaGV4KQkJQnJvYWRjb20gQ29ycC4KKzAwMEFGNyAgICAgKGJhc2UgMTYpCQlCcm9hZGNvbSBDb3JwLgorCQkJCTE2MjE1IEFsdG9uIFBhcmt3YXkKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUY4ICAgKGhleCkJCUFtZXJpY2FuIFRlbGVjYXJlIEluYy4KKzAwMEFGOCAgICAgKGJhc2UgMTYpCQlBbWVyaWNhbiBUZWxlY2FyZSBJbmMuCisJCQkJNzY0MCBHb2xkZW4gVHJpYW5nbGUgRHJpdmUKKwkJCQlFZGVuIFByYWlyaWUgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUY5ICAgKGhleCkJCUhpQ29ubmVjdCwgSW5jLgorMDAwQUY5ICAgICAoYmFzZSAxNikJCUhpQ29ubmVjdCwgSW5jLgorCQkJCVJtICM5MDYsIEhha3NhbiBDb3Ntb3N0ZWwsIDExMAorCQkJCUt3YW5namFuZy1Eb25nLCBLd2FuZ2ppbi1HdSwgU2VvdWwsIEtvcmUKKwkJCQlLd2FuZ2ppbi1HdSBTZW91bCAxNDMtODAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLUZBICAgKGhleCkJCVRyYXZlcnNlIFRlY2hub2xvZ2llcyBBdXN0cmFsaWEKKzAwMEFGQSAgICAgKGJhc2UgMTYpCQlUcmF2ZXJzZSBUZWNobm9sb2dpZXMgQXVzdHJhbGlhCisJCQkJVW5pdCAxMywgMjQwIFN5ZG5leSBSZAorCQkJCUNvYnVyZyBWaWN0b3JpYSAzMDU4CisJCQkJQVVTVFJBTElBCisKKzAwLTBBLUZCICAgKGhleCkJCUFtYnJpIExpbWl0ZWQKKzAwMEFGQiAgICAgKGJhc2UgMTYpCQlBbWJyaSBMaW1pdGVkCisJCQkJMTI2IEdyZXZpbGxlIFN0cmVldAorCQkJCUNoYXRzd29vZCBOU1cgMjA2NworCQkJCUFVU1RSQUxJQQorCiswMC0wQS1GQyAgIChoZXgpCQlDb3JlIFRlYyBDb21tdW5pY2F0aW9ucywgTExDCiswMDBBRkMgICAgIChiYXNlIDE2KQkJQ29yZSBUZWMgQ29tbXVuaWNhdGlvbnMsIExMQworCQkJCTQ5IExlYXZlbndvcnRoIFN0cmVldAorCQkJCVN1aXRlIDIwMAorCQkJCVdhdGVyYnVyeSBDVCAwNjcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRkQgICAoaGV4KQkJVmlraW5nIEVsZWN0cm9uaWMgU2VydmljZXMKKzAwMEFGRCAgICAgKGJhc2UgMTYpCQlWaWtpbmcgRWxlY3Ryb25pYyBTZXJ2aWNlcworCQkJCTYyMCBBbGxlbmRhbGUgUmQKKwkJCQlTdWl0ZSAxNzUKKwkJCQlLaW5nIG9mIFBydXNzaWEgUEEgMTk0MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUZFICAgKGhleCkJCU5vdmFQYWwgTHRkCiswMDBBRkUgICAgIChiYXNlIDE2KQkJTm92YVBhbCBMdGQKKwkJCQlGbG9vciA2CisJCQkJNTggVXhicmlkZ2UgUm9hZAorCQkJCUVhbGluZyBMb25kb24gVzUgMlNUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEEtRkYgICAoaGV4KQkJS2lsY2hoZXJyIEVsZWt0cm9uaWsgQUcKKzAwMEFGRiAgICAgKGJhc2UgMTYpCQlLaWxjaGhlcnIgRWxla3Ryb25payBBRworCQkJCUFlc2NoaXN0cmFzc2UgMjUKKwkJCQlNdWVuc2luZ2VuIEJFIDMxMTAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wQi0wMCAgIChoZXgpCQlGVUpJQU4gU1RBUlQgQ09NUFVURVIgRVFVSVBNRU5UIENPLixMVEQKKzAwMEIwMCAgICAgKGJhc2UgMTYpCQlGVUpJQU4gU1RBUlQgQ09NUFVURVIgRVFVSVBNRU5UIENPLixMVEQKKwkJCQlIT05HIFNIQU4gWVVBTiBST0FEIE5PLjY4IEhPTkdTSEFOLEdVTE9VCisJCQkJRlVaSE9VIEZVSklBTiAzNTAwMDIKKwkJCQlDSElOQQorCiswMC0wQi0wMSAgIChoZXgpCQlEQUlJQ0hJIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDAwQjAxICAgICAoYmFzZSAxNikJCURBSUlDSEkgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJMS0xMS0xMworCQkJCUhpdG90c3V5YSBBZGFjaGkta3UgVG9reW8gMTIxLTg2MzkKKwkJCQlKQVBBTgorCiswMC0wQi0wMiAgIChoZXgpCQlEYWxsbWVpZXIgZWxlY3Ryb25pYworMDAwQjAyICAgICAoYmFzZSAxNikJCURhbGxtZWllciBlbGVjdHJvbmljCisJCQkJV3VlcnpidXJnZXJzdHIuNQorCQkJCVJlZ2Vuc2J1cmcgQmF2YXJpYSA5MzA1OQorCQkJCUdFUk1BTlkKKworMDAtMEItMDMgICAoaGV4KQkJVGFla3dhbmcgSW5kdXN0cmlhbCBDby4sIEx0ZAorMDAwQjAzICAgICAoYmFzZSAxNikJCVRhZWt3YW5nIEluZHVzdHJpYWwgQ28uLCBMdGQKKwkJCQkjMTkxLTEsIEFueWFuZy03RG9uZywgTWFuYW4tR3UKKwkJCQlBbnlhbmctU2kgU291dGggS29yZWEgNDMwLTAxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi0wNCAgIChoZXgpCQlWb2xrdGVrIENvcnBvcmF0aW9uCiswMDBCMDQgICAgIChiYXNlIDE2KQkJVm9sa3RlayBDb3Jwb3JhdGlvbgorCQkJCTRGLiwgTm8uMTkyLCBMaWFuLUNoYW5nIFJvYWQsIENoYW5nLUhvCisJCQkJVGFpcGVpICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTA1ICAgKGhleCkJCVBhY2lmaWMgQnJvYWRiYW5kIE5ldHdvcmtzCiswMDBCMDUgICAgIChiYXNlIDE2KQkJUGFjaWZpYyBCcm9hZGJhbmQgTmV0d29ya3MKKwkJCQk4LTEwIEtlaXRoIENhbXBiZWxsIENvdXJ0CisJCQkJU0NPUkVTQlkgVklDIDMxNzkKKwkJCQlBVVNUUkFMSUEKKworMDAtMEItMDYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMEIwNiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTA3ICAgKGhleCkJCVZveHBhdGggTmV0d29ya3MKKzAwMEIwNyAgICAgKGJhc2UgMTYpCQlWb3hwYXRoIE5ldHdvcmtzCisJCQkJNzYwMEIgQ2FwaXRhbCBvZiBUZXhhcyBIaWdod2F5ICAtIE5vcnRoCisJCQkJU3VpdGUgMjIwCisJCQkJQXVzdGluIFRleGFzIDc4NzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0wOCAgIChoZXgpCQlQaWxsYXIgRGF0YSBTeXN0ZW1zCiswMDBCMDggICAgIChiYXNlIDE2KQkJUGlsbGFyIERhdGEgU3lzdGVtcworCQkJCTEzNzEgTWNDYXJ0aHkgQmx2ZC4KKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMDkgICAoaGV4KQkJSWZvdW5kcnkgU3lzdGVtcyBTaW5nYXBvcmUKKzAwMEIwOSAgICAgKGJhc2UgMTYpCQlJZm91bmRyeSBTeXN0ZW1zIFNpbmdhcG9yZQorCQkJCUJsb2NrIDEsIFVuaXQgMTAxQiwgSW5ub3ZhdGlvbiBDZW50cmUsIDEKKwkJCQk2Mzc3MjIKKwkJCQlTSU5HQVBPUkUKKworMDAtMEItMEEgICAoaGV4KQkJZEJtIE9wdGljcworMDAwQjBBICAgICAoYmFzZSAxNikJCWRCbSBPcHRpY3MKKwkJCQkzMDAgUy4gUHVibGljIFJvYWQKKwkJCQlMYWZheWV0dGUgQ29sb3JhZG8gODAwMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTBCICAgKGhleCkJCUNvcnJlbnQgQ29ycG9yYXRpb24KKzAwMEIwQiAgICAgKGJhc2UgMTYpCQlDb3JyZW50IENvcnBvcmF0aW9uCisJCQkJMTcxMSBXLiBHcmVlbnRyZWUgRHIuCisJCQkJU3VpdGUgMjAxCisJCQkJVGVtcGUgQVogODUyODQtMjcxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMEMgICAoaGV4KQkJQWdpbGUgU3lzdGVtcyBJbmMuCiswMDBCMEMgICAgIChiYXNlIDE2KQkJQWdpbGUgU3lzdGVtcyBJbmMuCisJCQkJNTc1IEt1bXBmIERyaXZlCisJCQkJV2F0ZXJsb28gT250YXJpbyBOMlYgMUszCisJCQkJQ0FOQURBCisKKzAwLTBCLTBEICAgKGhleCkJCUFpcjJVLCBJbmMuCiswMDBCMEQgICAgIChiYXNlIDE2KQkJQWlyMlUsIEluYy4KKwkJCQlOby4gNS0xIElubm92YXRpb24gUmQgMSwgU2NpZW5jZS1iYXNlZCBQCisJCQkJSHNpbi1DaHUgVGFpd2FuIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItMEUgICAoaGV4KQkJVHJhcGV6ZSBOZXR3b3JrcworMDAwQjBFICAgICAoYmFzZSAxNikJCVRyYXBlemUgTmV0d29ya3MKKwkJCQk1NzUzIFcuIExhcyBQb3NpdGFzIEJsdmQKKwkJCQlQbGVhc2FudG9uIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0wRiAgIChoZXgpCQlOeXF1aXN0IEluZHVzdHJpYWwgQ29udHJvbCBCVgorMDAwQjBGICAgICAoYmFzZSAxNikJCU55cXVpc3QgSW5kdXN0cmlhbCBDb250cm9sIEJWCisJCQkJTHVjaHRoYXZlbndlZyAyMAorCQkJCUVpbmRob3ZlbiBOb29yZCBCcmFiYW50IE5MNTY1NyBFQgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBCLTEwICAgKGhleCkJCTExd2F2ZSBUZWNobm9ubG9neSBDby4sTHRkCiswMDBCMTAgICAgIChiYXNlIDE2KQkJMTF3YXZlIFRlY2hub25sb2d5IENvLixMdGQKKwkJCQkxMEYsbm8uMjg1IHNlYy4yICxUaS1EaW5nIEF2ZSxOYWlIdS5UYWlwCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTExICAgKGhleCkJCUhJTUVKSSBBQkMgVFJBRElORyBDTy4sTFRELgorMDAwQjExICAgICAoYmFzZSAxNikJCUhJTUVKSSBBQkMgVFJBRElORyBDTy4sTFRELgorCQkJCTEtOC0yMgorCQkJCUpZT1VIT0tVU0hJTk1BQ0hJCisJCQkJSEpNRUpJIEhZT0dPIDY3MC0wODgzCisJCQkJSkFQQU4KKworMDAtMEItMTIgICAoaGV4KQkJTlVSSSBUZWxlY29tIENvLiwgTHRkLgorMDAwQjEyICAgICAoYmFzZSAxNikJCU5VUkkgVGVsZWNvbSBDby4sIEx0ZC4KKwkJCQlXb29saW0gTGlvbidzIFZhbGxleSBCbGRnLUIgMTB0aCBGCisJCQkJIzM3MS0yOCBLYXNhbi1kb25nCisJCQkJS2V1bS1jaGV1bi1ndSBTZW91bCAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLTEzICAgKGhleCkJCVpFVFJPTiBJTkMKKzAwMEIxMyAgICAgKGJhc2UgMTYpCQlaRVRST04gSU5DCisJCQkJUE8gQm94IDk3MDA0CisJCQkJUkVETU9ORCBXQSA5ODA3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMTQgICAoaGV4KQkJVmlld1NvbmljIENvcnBvcmF0aW9uCiswMDBCMTQgICAgIChiYXNlIDE2KQkJVmlld1NvbmljIENvcnBvcmF0aW9uCisJCQkJMzgxIEJyZWEgQ2FueW9uIFJvYWQKKwkJCQlXYWxudXQgQ2FsaWZvcm5pYSA5MTc4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMTUgICAoaGV4KQkJUGxhdHlwdXMgVGVjaG5vbG9neQorMDAwQjE1ICAgICAoYmFzZSAxNikJCVBsYXR5cHVzIFRlY2hub2xvZ3kKKwkJCQk0LzEgQXRjaGlzb24gU3QKKwkJCQlTdCBMZW9uYXJkcyBOU1cgMjA2NQorCQkJCUFVU1RSQUxJQQorCiswMC0wQi0xNiAgIChoZXgpCQlDb21tdW5pY2F0aW9uIE1hY2hpbmVyeSBDb3Jwb3JhdGlvbgorMDAwQjE2ICAgICAoYmFzZSAxNikJCUNvbW11bmljYXRpb24gTWFjaGluZXJ5IENvcnBvcmF0aW9uCisJCQkJNDAyIEUuIEd1dGllcnJleiBTdC4KKwkJCQlTYW50YSBCYXJiYXJhIENBIDkzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0xNyAgIChoZXgpCQlNS1MgSW5zdHJ1bWVudHMKKzAwMEIxNyAgICAgKGJhc2UgMTYpCQlNS1MgSW5zdHJ1bWVudHMKKwkJCQk2NTEgTG93ZWxsIFN0cmVldAorCQkJCU1ldGh1ZW4gTUEgMDE4NDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTE4ICAgKGhleCkJCVBSSVZBVEUKKzAwMEIxOCAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMEItMTkgICAoaGV4KQkJVmVybmllciBOZXR3b3JrcywgSW5jLgorMDAwQjE5ICAgICAoYmFzZSAxNikJCVZlcm5pZXIgTmV0d29ya3MsIEluYy4KKwkJCQk0OTAgRS4gTWlkZGxlZmllbGQgUm9hZAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTFBICAgKGhleCkJCUluZHVzdHJpYWwgRGVmZW5kZXIsIEluYy4KKzAwMEIxQSAgICAgKGJhc2UgMTYpCQlJbmR1c3RyaWFsIERlZmVuZGVyLCBJbmMuCisJCQkJMTYgQ2hlc3RudXQgU3RyZWV0CisJCQkJU3VpdGUgMzAwCisJCQkJRm94Ym9yb3VnaCBNQSAwMjAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMUIgICAoaGV4KQkJU3lzdHJvbml4LCBJbmMuCiswMDBCMUIgICAgIChiYXNlIDE2KQkJU3lzdHJvbml4LCBJbmMuCisJCQkJOTM5IEVkaXNvbiBTdC4KKwkJCQlTYWx0IExha2UgQ2l0eSBVdGFoIDg0MTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0xQyAgIChoZXgpCQlTSUJDTyBidgorMDAwQjFDICAgICAoYmFzZSAxNikJCVNJQkNPIGJ2CisJCQkJU2Nob29uaG91dCA0NgorCQkJCUV0dGVuLUxldXIgTkIgNDg3MiBNRQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBCLTFEICAgKGhleCkJCUxheWVyWmVybyBQb3dlciBTeXN0ZW1zLCBJbmMuCiswMDBCMUQgICAgIChiYXNlIDE2KQkJTGF5ZXJaZXJvIFBvd2VyIFN5c3RlbXMsIEluYy4KKwkJCQkzNTU5IFRvd25sZXkgUm9hZAorCQkJCVNoYWtlciBIZWlnaHRzIE9IIDQ0MTIyLTUxNTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTFFICAgKGhleCkJCUtBUFBBIG9wdG8tZWxlY3Ryb25pY3MgR21iSAorMDAwQjFFICAgICAoYmFzZSAxNikJCUtBUFBBIG9wdG8tZWxlY3Ryb25pY3MgR21iSAorCQkJCUtsZWluZXMgRmVsZCA2CisJCQkJMzcxMzAKKwkJCQlHbGVpY2hlbiBOaWVkZXJzYWNoc2VuIAorCQkJCUdFUk1BTlkKKworMDAtMEItMUYgICAoaGV4KQkJSSBDT04gQ29tcHV0ZXIgQ28uCiswMDBCMUYgICAgIChiYXNlIDE2KQkJSSBDT04gQ29tcHV0ZXIgQ28uCisJCQkJM0YsIE5vLiAxNDIgLCBIc2luIE1pbmcgUm9hZAorCQkJCU5laWh1IFRhaXBlaSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTIwICAgKGhleCkJCUhpcmF0YSBjb3Jwb3JhdGlvbgorMDAwQjIwICAgICAoYmFzZSAxNikJCUhpcmF0YSBjb3Jwb3JhdGlvbgorCQkJCTExMSBIaXRvdHN1Z2ksIFVla2ksCisJCQkJS2Ftb3RvIEt1bWFtb3RvIDg2MS0wMTk4CisJCQkJSkFQQU4KKworMDAtMEItMjEgICAoaGV4KQkJRy1TdGFyIENvbW11bmljYXRpb25zIEluYy4KKzAwMEIyMSAgICAgKGJhc2UgMTYpCQlHLVN0YXIgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTVGLCA2OS0xMCwgU2VjLiAyLCBDaHVuZyBDaGVuZyBFYXN0IFJvYWQKKwkJCQlUYWlwZWkgSHNpZW4gIDI1MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItMjIgICAoaGV4KQkJRW52aXJvbm1lbnRhbCBTeXN0ZW1zIGFuZCBTZXJ2aWNlcworMDAwQjIyICAgICAoYmFzZSAxNikJCUVudmlyb25tZW50YWwgU3lzdGVtcyBhbmQgU2VydmljZXMKKwkJCQkyMCBDb3VuY2lsIFN0cmVldAorCQkJCUhhd3Rob3JuIEVhc3QgVmljdG9yaWEgMzEyMworCQkJCUFVU1RSQUxJQQorCiswMC0wQi0yMyAgIChoZXgpCQlTaWVtZW5zIFN1YnNjcmliZXIgTmV0d29ya3MKKzAwMEIyMyAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIFN1YnNjcmliZXIgTmV0d29ya3MKKwkJCQk0ODQ5IEFscGhhIFJvYWQKKwkJCQlEYWxsYXMgVGV4YXMgNzQyNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTI0ICAgKGhleCkJCUFpckxvZ2ljCiswMDBCMjQgICAgIChiYXNlIDE2KQkJQWlyTG9naWMKKwkJCQk4MDctMSwgQnVuZGFuZ3RlY2hub3BhcmsgRCwgMTUxLAorCQkJCVlhdGFwLURvbmcsIEJ1bmRhbmctS3UKKwkJCQlTdW5nbmFtLVNpIEt5dW5na2ktRG8gNDYzLTc2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi0yNSAgIChoZXgpCQlBZWx1cm9zCiswMDBCMjUgICAgIChiYXNlIDE2KQkJQWVsdXJvcworCQkJCTIwMSBTYW4gQW50b25pbyBDaXJjbGUgIzE3MgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTI2ICAgKGhleCkJCVdldGVrIENvcnBvcmF0aW9uCiswMDBCMjYgICAgIChiYXNlIDE2KQkJV2V0ZWsgQ29ycG9yYXRpb24KKwkJCQk0RiwgTk8uMTcsIEt1YW5mdSBOLiBSb2FkCisJCQkJSHNpbiBDaHUgSW5kdXN0cmlhbCBQYXJrIEhzaW4gQ2h1IDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItMjcgICAoaGV4KQkJU2Npb24gQ29ycG9yYXRpb24KKzAwMEIyNyAgICAgKGJhc2UgMTYpCQlTY2lvbiBDb3Jwb3JhdGlvbgorCQkJCTgyIFdvcm1hbidzIE1pbGwgQ291cnQKKwkJCQlTdWl0ZSBICisJCQkJRnJlZGVyaWNrIE1EIDIxNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0yOCAgIChoZXgpCQlRdWF0ZWNoIEluYy4KKzAwMEIyOCAgICAgKGJhc2UgMTYpCQlRdWF0ZWNoIEluYy4KKwkJCQk2NjIgV29sZiBMZWRnZXMgUGt3eS4KKwkJCQlBa3JvbiBPSCA0NDMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMjkgICAoaGV4KQkJTFMoTEcpIEluZHVzdHJpYWwgU3lzdGVtcyBjby4sTHRkCiswMDBCMjkgICAgIChiYXNlIDE2KQkJTFMoTEcpIEluZHVzdHJpYWwgU3lzdGVtcyBjby4sTHRkCisJCQkJNTMzIEhvZ3llLWRvbmcsIERvbmdhbi1ndQorCQkJCUFueWFuZy1zaSBHeWVvbmdnaS1kbyAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItMkEgICAoaGV4KQkJSE9XVEVMIENvLiwgTHRkLgorMDAwQjJBICAgICAoYmFzZSAxNikJCUhPV1RFTCBDby4sIEx0ZC4KKwkJCQlKLUNPTSBCZC4gNEYsIDEyNC00IE9KRU9OLURPTkcKKwkJCQlVSVdBTkctU0hJIEtZT1VOR0dJLURPIDQzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItMkIgICAoaGV4KQkJSE9TVE5FVCBDT1JQT1JBVElPTgorMDAwQjJCICAgICAoYmFzZSAxNikJCUhPU1RORVQgQ09SUE9SQVRJT04KKwkJCQkxMEYtMTIsTm8uIDEyIExhbmUgNjA5LCBTZWMuNSxDaHVuZ2hzaW4KKwkJCQlTYW5jaHVuZyBUYWlwZWkgSHNpZW4gMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi0yQyAgIChoZXgpCQlFaWtpIEluZHVzdHJpYWwgQ28uIEx0ZC4KKzAwMEIyQyAgICAgKGJhc2UgMTYpCQlFaWtpIEluZHVzdHJpYWwgQ28uIEx0ZC4KKwkJCQk0LTEyIE1hbnphaS1jaG8sIEtpdGEta3UKKwkJCQlPc2FrYSAgNTMwCisJCQkJSkFQQU4KKworMDAtMEItMkQgICAoaGV4KQkJRGFuZm9zcyBJbmMuCiswMDBCMkQgICAgIChiYXNlIDE2KQkJRGFuZm9zcyBJbmMuCisJCQkJNzk0MSBDb3Jwb3JhdGUgRHIKKwkJCQlCYWx0aW1vcmUgTUQgMjEyMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTJFICAgKGhleCkJCUNhbC1Db21wIEVsZWN0cm9uaWNzIChUaGFpbGFuZCkgUHVibGljIENvbXBhbnkgTGltaXRlZCBUYWlwZQorMDAwQjJFICAgICAoYmFzZSAxNikJCUNhbC1Db21wIEVsZWN0cm9uaWNzIChUaGFpbGFuZCkgUHVibGljIENvbXBhbnkgTGltaXRlZCBUYWlwZQorCQkJCTlGLCA5OSwgTmFuLUtpbmcgRSBSZC4sIFNlYy4gNS4KKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItMkYgICAoaGV4KQkJYnBsYW4gR21iSAorMDAwQjJGICAgICAoYmFzZSAxNikJCWJwbGFuIEdtYkgKKwkJCQlJbmR1c3RyaWVzdHJh32UgMjMKKwkJCQlTdGVpbmJhY2ggNjE0NDkKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLTMwICAgKGhleCkJCUJlaWppbmcgR29uZ3llIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLixMdGQKKzAwMEIzMCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEdvbmd5ZSBTY2llbmNlICYgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJVW5pdCBELjE3L0UsU2hlbmxhbmh1YXRpbmcgbWlkIFJvYWQgTm8uNgorCQkJCUJlaWppbmcgIDEwMDAyOQorCQkJCUNISU5BCisKKzAwLTBCLTMxICAgKGhleCkJCVlhbnRhaSBaaGlZYW5nIFNjaWVudGlmaWMgYW5kIHRlY2hub2xvZ3kgaW5kdXN0cnkgQ08uLCBMVEQKKzAwMEIzMSAgICAgKGJhc2UgMTYpCQlZYW50YWkgWmhpWWFuZyBTY2llbnRpZmljIGFuZCB0ZWNobm9sb2d5IGluZHVzdHJ5IENPLiwgTFRECisJCQkJNUYtNCwgTk8uIDY0LCBHb25nLUppYW4gUmQuCisJCQkJSHNpLUNoaWggQ2l0eSBUYWlwZWkgQ291bnR5IDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItMzIgICAoaGV4KQkJVk9STUVUUklDLCBJTkMuCiswMDBCMzIgICAgIChiYXNlIDE2KQkJVk9STUVUUklDLCBJTkMuCisJCQkJMjA2MCBDT1JQT1JBVEUgQ1QKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMzMgICAoaGV4KQkJVml2YXRvCiswMDBCMzMgICAgIChiYXNlIDE2KQkJVml2YXRvCisJCQkJMTI2MTAgRWFzdCBNaXJhYmVhdSBQYXJrd2F5CisJCQkJU3Bva2FuZSBXQSA5OTIxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMzQgICAoaGV4KQkJU2hhbmdIYWkgQnJvYWRiYW5kIFRlY2hub2xvZ2llcyBDTy5MVEQKKzAwMEIzNCAgICAgKGJhc2UgMTYpCQlTaGFuZ0hhaSBCcm9hZGJhbmQgVGVjaG5vbG9naWVzIENPLkxURAorCQkJCTE3RixOby4xMjIsSHVhbmdYaW5nIFJvYWQKKwkJCQlTaGFuZ0hhaSAgMjAwMDkwCisJCQkJQ0hJTkEKKworMDAtMEItMzUgICAoaGV4KQkJUXVhZCBCaXQgU3lzdGVtIGNvLiwgTHRkLgorMDAwQjM1ICAgICAoYmFzZSAxNikJCVF1YWQgQml0IFN5c3RlbSBjby4sIEx0ZC4KKwkJCQk0MDIgR2F5YW5nIFRlY2hub3Rvd24KKwkJCQkxNDg3IEdheWFuZyAzIGRvbmcKKwkJCQlTZW91bCBLYW5nc2VvZ3UgMTU3LTgxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi0zNiAgIChoZXgpCQlQcm9kdWN0aXZpdHkgU3lzdGVtcywgSW5jLgorMDAwQjM2ICAgICAoYmFzZSAxNikJCVByb2R1Y3Rpdml0eSBTeXN0ZW1zLCBJbmMuCisJCQkJMTcxMSBBbmFsb2cgRHJpdmUKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgxLTE5NDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTM3ICAgKGhleCkJCU1BTlVGQUNUVVJFIERFUyBNT05UUkVTIFJPTEVYIFNBCiswMDBCMzcgICAgIChiYXNlIDE2KQkJTUFOVUZBQ1RVUkUgREVTIE1PTlRSRVMgUk9MRVggU0EKKwkJCQlMQSBIQVVURS1ST1VURSA4MgorCQkJCUJJRUwtQklFTk5FIEJFIDI1MDIKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wQi0zOCAgIChoZXgpCQlLbnVlcnIgQUcKKzAwMEIzOCAgICAgKGJhc2UgMTYpCQlLbnVlcnIgQUcKKwkJCQlNYXJpYWtpcmNoZW5lciBTdHJhc3NlIDM4CisJCQkJQXJuc3RvcmYgQmF2YXJpYSA5NDQyNAorCQkJCUdFUk1BTlkKKworMDAtMEItMzkgICAoaGV4KQkJS2Vpc29rdSBHaWtlbiBDby4sTHRkLgorMDAwQjM5ICAgICAoYmFzZSAxNikJCUtlaXNva3UgR2lrZW4gQ28uLEx0ZC4KKwkJCQkyLTEyLTIgLCBDaGlnYXNha2ktbWluYW1pCisJCQkJVHN1enVraS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyNC0wMDM3CisJCQkJSkFQQU4KKworMDAtMEItM0EgICAoaGV4KQkJUXVTdHJlYW0gQ29ycG9yYXRpb24KKzAwMEIzQSAgICAgKGJhc2UgMTYpCQlRdVN0cmVhbSBDb3Jwb3JhdGlvbgorCQkJCTMzMDUgQnJlY2tpbnJpZGdlIEJsdmQuCisJCQkJU3VpdGUgMTE4CisJCQkJRHVsdXRoIEdlb3JnaWEgMzAwOTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTNCICAgKGhleCkJCWRldm9sbyBBRworMDAwQjNCICAgICAoYmFzZSAxNikJCWRldm9sbyBBRworCQkJCVNvbm5lbndlZyAxMQorCQkJCUFhY2hlbiBOUlcgNTIwNzAKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLTNDICAgKGhleCkJCUN5Z25hbCBJbnRlZ3JhdGVkIFByb2R1Y3RzLCBJbmMuCiswMDBCM0MgICAgIChiYXNlIDE2KQkJQ3lnbmFsIEludGVncmF0ZWQgUHJvZHVjdHMsIEluYy4KKwkJCQk0MzAxIFdlc3RiYW5rIERyaXZlCisJCQkJU3VpdGUgQi0xMDAKKwkJCQlBdXN0aW4gVFggNzg3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTNEICAgKGhleCkJCUNPTlRBTCBPSyBMdGQuCiswMDBCM0QgICAgIChiYXNlIDE2KQkJQ09OVEFMIE9LIEx0ZC4KKwkJCQlGcmFuYSBNcmF6YSAyLzI4OQorCQkJCVAuTy5Cb3ggQi0zNAorCQkJCVppbGluYSAgMDExMjQKKwkJCQlTTE9WQUtJQQorCiswMC0wQi0zRSAgIChoZXgpCQlCaXR0V2FyZSwgSW5jCiswMDBCM0UgICAgIChiYXNlIDE2KQkJQml0dFdhcmUsIEluYworCQkJCTMxIEIgU291dGggTWFpbiBTdAorCQkJCUNvbmNvcmQgTkggMDMzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTNGICAgKGhleCkJCUFudGhvbG9neSBTb2x1dGlvbnMgSW5jLgorMDAwQjNGICAgICAoYmFzZSAxNikJCUFudGhvbG9neSBTb2x1dGlvbnMgSW5jLgorCQkJCTE3MjIgUmluZ3dvb2QgQXZlLgorCQkJCVN1aXRlIDI1MAorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi00MCAgIChoZXgpCQlPcE5leHQgSW5jLgorMDAwQjQwICAgICAoYmFzZSAxNikJCU9wTmV4dCBJbmMuCisJCQkJMSBDaHJpc3RvcGhlciBXYXkKKwkJCQlFYXRvbnRvd24gTmV3IEplcnNleSAwNzcyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNDEgICAoaGV4KQkJSW5nLiBCdWVybyBEci4gQmV1dGxoYXVzZXIKKzAwMEI0MSAgICAgKGJhc2UgMTYpCQlJbmcuIEJ1ZXJvIERyLiBCZXV0bGhhdXNlcgorCQkJCVJvZW1lcndlZyA0CisJCQkJR3Jhc3NhdSBELTgzMjI0CisJCQkJR0VSTUFOWQorCiswMC0wQi00MiAgIChoZXgpCQljb21tYXggQ28uLCBMdGQuCiswMDBCNDIgICAgIChiYXNlIDE2KQkJY29tbWF4IENvLiwgTHRkLgorCQkJCTUxMy0xMSwgU2FuZ2RhZXdvbi1Eb25nLCBKdW5nd29uLUt1CisJCQkJU3VuZ25hbS1DaXR5IEt5dW5nZ2ktRG8gNDYyLTEyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi00MyAgIChoZXgpCQlNaWNyb3NjYW4gU3lzdGVtcywgSW5jLgorMDAwQjQzICAgICAoYmFzZSAxNikJCU1pY3Jvc2NhbiBTeXN0ZW1zLCBJbmMuCisJCQkJMTIwMSBTVyA3dGggU3RyZWV0CisJCQkJUmVudG9uIFdBIDk4MDU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi00NCAgIChoZXgpCQlDb25jb3JkIElEZWEgQ29ycC4KKzAwMEI0NCAgICAgKGJhc2UgMTYpCQlDb25jb3JkIElEZWEgQ29ycC4KKwkJCQk0MTE4IDE0dGggQXZlLiwgVW5pdCA0CisJCQkJTWFya2hhbSBPbnRhcmlvIEwzUiAwSjMKKwkJCQlDQU5BREEKKworMDAtMEItNDUgICAoaGV4KQkJQ2lzY28KKzAwMEI0NSAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi00NiAgIChoZXgpCQlDaXNjbworMDAwQjQ2ICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTQ3ICAgKGhleCkJCUFkdmFuY2VkIEVuZXJneQorMDAwQjQ3ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIEVuZXJneQorCQkJCTE2MjUgU2hhcnAgUG9pbnQgRHJpdmUKKwkJCQlGb3J0IENvbGxpbnMgQ29sb3JhZG8gODA1MjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTQ4ICAgKGhleCkJCXNvZnJlbAorMDAwQjQ4ICAgICAoYmFzZSAxNikJCXNvZnJlbAorCQkJCTIgcnVlIGR1IHBsZXNzaXMKKwkJCQl2ZXJuIHN1ciBzZWljaGUgaWxsZSBldCB2aWxhaW5lIDM1NzcwCisJCQkJRlJBTkNFCisKKzAwLTBCLTQ5ICAgKGhleCkJCVJGLUxpbmsgU3lzdGVtIEluYy4KKzAwMEI0OSAgICAgKGJhc2UgMTYpCQlSRi1MaW5rIFN5c3RlbSBJbmMuCisJCQkJTm8uNiwgTmFuLUtlIDV0aCBSZC4sIEhzaW4tU2hpLAorCQkJCVRhaW5hbiBDb3VudHkgIDc0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItNEEgICAoaGV4KQkJVmlzaW1ldHJpY3MgKFVLKSBMdGQKKzAwMEI0QSAgICAgKGJhc2UgMTYpCQlWaXNpbWV0cmljcyAoVUspIEx0ZAorCQkJCVNreWUgSG91c2UKKwkJCQlTa3llIFJvYWQKKwkJCQlQcmVzdHdpY2sgQXlyc2hpcmUgS0E5IDJUQQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBCLTRCICAgKGhleCkJCVZJU0lPV0FWRSBTQQorMDAwQjRCICAgICAoYmFzZSAxNikJCVZJU0lPV0FWRSBTQQorCQkJCVJvdXRlIGRlIGxhIFBpZXJyZSAyMgorCQkJCVZJQ1RPUklBIEhPVVNFCisJCQkJRUNVQkxFTlMgVkFVRCBDSC0xMDI0CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEItNEMgICAoaGV4KQkJQ2xhcmlvbiAoTSkgU2RuIEJoZAorMDAwQjRDICAgICAoYmFzZSAxNikJCUNsYXJpb24gKE0pIFNkbiBCaGQKKwkJCQlQaGFzZSAzCisJCQkJRklaCisJCQkJQmF5YW4gTGVwYXMgUGVuYW5nIDExOTAwCisJCQkJTUFMQVlTSUEKKworMDAtMEItNEQgICAoaGV4KQkJRW11emVkCiswMDBCNEQgICAgIChiYXNlIDE2KQkJRW11emVkCisJCQkJNDY3NTAgTGFrZXZpZXcgQm91bGV2YXJkCisJCQkJRnJlbW9udCBDYWxpZm9ybmlhIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi00RSAgIChoZXgpCQlWZXJ0ZXhSU0ksIEdlbmVyYWwgRHluYW1pY3MgU2F0Q09NIFRlY2hub2xvZ2llcywgSW5jLgorMDAwQjRFICAgICAoYmFzZSAxNikJCVZlcnRleFJTSSwgR2VuZXJhbCBEeW5hbWljcyBTYXRDT00gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTkxNSBFLiBIYXJyaXNvbiBSb2FkCisJCQkJTG9uZ3ZpZXcgVFggNzU2MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTRGICAgKGhleCkJCVZlcmlmb25lLCBJTkMuCiswMDBCNEYgICAgIChiYXNlIDE2KQkJVmVyaWZvbmUsIElOQy4KKwkJCQkyNDU1IEF1Z3VzdGluZSBEcml2ZQorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTUwICAgKGhleCkJCU94eWduZXQKKzAwMEI1MCAgICAgKGJhc2UgMTYpCQlPeHlnbmV0CisJCQkJNDAyIEUuIENhcnJpbGxvIFN0LgorCQkJCVN1aXRlIEMKKwkJCQlTYW50YSBCYXJiYXJhIENBIDkzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi01MSAgIChoZXgpCQlNaWNldGVrIEludGVybmF0aW9uYWwgSW5jLgorMDAwQjUxICAgICAoYmFzZSAxNikJCU1pY2V0ZWsgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJN0YtMSwgIzIzNywgU2VjLiAxLCB3dSBDaHVhbiBXLiBSZC4KKwkJCQlUYWljaHVuZyAgNDAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi01MiAgIChoZXgpCQlKT1lNQVggRUxFQ1RST05JQ1MgQ08uIExURC4KKzAwMEI1MiAgICAgKGJhc2UgMTYpCQlKT1lNQVggRUxFQ1RST05JQ1MgQ08uIExURC4KKwkJCQlOby41IERvbmctWXVhbiBSb2FkIDIsIEpob25nLUxpIEluZHVzdHJpYWwgUGFyaywKKwkJCQlKaG9uZy1MaSBDaXR5LCAKKwkJCQlUYW8tWXVhbiAgMzIwNjMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTUzICAgKGhleCkJCUlOSVRJVU0gQ28uLCBMdGQuCiswMDBCNTMgICAgIChiYXNlIDE2KQkJSU5JVElVTSBDby4sIEx0ZC4KKwkJCQk4Ri4gR29uZ2R1Y2sgQmxkZy4gMjcyLTYgU2VvaHl1biBCdW5kYW5nCisJCQkJU3VuZ25hbSBLeXVuZ2dpIDQ2My04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItNTQgICAoaGV4KQkJQmlUTUlDUk8gTmV0d29ya3MsIEluYy4KKzAwMEI1NCAgICAgKGJhc2UgMTYpCQlCaVRNSUNSTyBOZXR3b3JrcywgSW5jLgorCQkJCTQ1NTUwIE5vcnRocG9ydCBMb29wIEVhc3QKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi01NSAgIChoZXgpCQlBREluc3RydW1lbnRzCiswMDBCNTUgICAgIChiYXNlIDE2KQkJQURJbnN0cnVtZW50cworCQkJCVAuIE8uIEJveCA1ODcKKwkJCQlEdW5lZGluIE90YWdvIDkwMDEKKwkJCQlORVcgWkVBTEFORAorCiswMC0wQi01NiAgIChoZXgpCQlDeWJlcm5ldGljcworMDAwQjU2ICAgICAoYmFzZSAxNikJCUN5YmVybmV0aWNzCisJCQkJMTExIEN5YmVybmV0aWNzIFdheQorCQkJCVlvcmt0b3duIFZBIDIzNjkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi01NyAgIChoZXgpCQlTaWxpY29uIExhYm9yYXRvcmllcworMDAwQjU3ICAgICAoYmFzZSAxNikJCVNpbGljb24gTGFib3JhdG9yaWVzCisJCQkJNzAwMCBXLiBXaWxsaWFtIENhbm5vbiBEci4KKwkJCQlCbGRnLjEsIFN1aXRlIDIwMAorCQkJCUF1c3RpbiBUWCA3ODczNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNTggICAoaGV4KQkJQXN0cm9uYXV0aWNzIEMuQSAgTFRECiswMDBCNTggICAgIChiYXNlIDE2KQkJQXN0cm9uYXV0aWNzIEMuQSAgTFRECisJCQkJMjMgaGF5YXJrb24gc3RyZWV0CisJCQkJQm5laSBCcmFrICA1MTI2MQorCQkJCUlTUkFFTAorCiswMC0wQi01OSAgIChoZXgpCQlTY3JpcHRQcm8sIExMQworMDAwQjU5ICAgICAoYmFzZSAxNikJCVNjcmlwdFBybywgTExDCisJCQkJNTgyOCBSZWVkcyBSZC4KKwkJCQlNaXNzaW9uIEthbnNhcyA2NjIwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNUEgICAoaGV4KQkJSHlwZXJFZGdlCiswMDBCNUEgICAgIChiYXNlIDE2KQkJSHlwZXJFZGdlCisJCQkJMzMzIFBpZXJjZSBSb2FkIFN1aXRlICMyMDAKKwkJCQlJdGFzY2EgSUwgNjAxNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTVCICAgKGhleCkJCVJpbmNvbiBSZXNlYXJjaCBDb3Jwb3JhdGlvbgorMDAwQjVCICAgICAoYmFzZSAxNikJCVJpbmNvbiBSZXNlYXJjaCBDb3Jwb3JhdGlvbgorCQkJCTEwMSBOLiBXaWxtb3QgUmQuCisJCQkJU3VpdGUgMTAxCisJCQkJVHVjc29uIEFaIDg1NzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi01QyAgIChoZXgpCQlOZXd0ZWNoIENvLixMdGQKKzAwMEI1QyAgICAgKGJhc2UgMTYpCQlOZXd0ZWNoIENvLixMdGQKKwkJCQlLLUJsZGcgMS03LTcgU2hpYmFkYWltb24gTWluYXRvLWt1CisJCQkJVG9reW8gIDEwNS0wMDEyCisJCQkJSkFQQU4KKworMDAtMEItNUQgICAoaGV4KQkJRlVKSVRTVSBMSU1JVEVECiswMDBCNUQgICAgIChiYXNlIDE2KQkJRlVKSVRTVSBMSU1JVEVECisJCQkJTXVzYXNoaS1rb3N1Z2kgVG93ZXIgUGxhY2UgQmxkZy4sIDQwMworCQkJCUtvc3VnaS1jaG8gMS1jaG9tZSxOYWthaGFyYS1rdQorCQkJCUthd2FzYWtpIEthbmFnYXdhIAorCQkJCUpBUEFOCisKKzAwLTBCLTVFICAgKGhleCkJCUF1ZGlvIEVuZ2luZWVyaW5nIFNvY2lldHkgSW5jLgorMDAwQjVFICAgICAoYmFzZSAxNikJCUF1ZGlvIEVuZ2luZWVyaW5nIFNvY2lldHkgSW5jLgorCQkJCTYwIEVhc3QgNDJuZCBTdHJlZXQsIFN1aXRlICMyNTIwCisJCQkJTmV3IFlvcmsgTlkgMTAxNjUtMjUyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNUYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQjVGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNjAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQjYwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNjEgICAoaGV4KQkJRnJpZWRyaWNoIEz8dHplIEdtYkggJkNvLgorMDAwQjYxICAgICAoYmFzZSAxNikJCUZyaWVkcmljaCBM/HR6ZSBHbWJIICZDby4KKwkJCQlCcnVja3dpZXNlbnN0cmHfZSAxNy0xOQorCQkJCVdlaW5zdGFkdC1Hcm/faGVwcGFjaCBCVyA3MTM4NAorCQkJCUdFUk1BTlkKKworMDAtMEItNjIgICAoaGV4KQkJSW5nZW5pZXVyYnVlcm8gZnVlciBFbGVrdHJvbmlrZGVzaWduIEluZ28gTW9obmVuCiswMDBCNjIgICAgIChiYXNlIDE2KQkJSW5nZW5pZXVyYnVlcm8gZnVlciBFbGVrdHJvbmlrZGVzaWduIEluZ28gTW9obmVuCisJCQkJU3RpY2ggMzAgZAorCQkJCTUyMjQ5IEVzY2h3ZWlsZXIgCisJCQkJR0VSTUFOWQorCiswMC0wQi02MyAgIChoZXgpCQlLYWxlaWRlc2NhcGUKKzAwMEI2MyAgICAgKGJhc2UgMTYpCQlLYWxlaWRlc2NhcGUKKwkJCQlPbmUgRmlyc3QgU3RyZWV0LCBTdWl0ZSBTaXh0ZWVuCisJCQkJTG9zIEFsdG9zIENBIDk0MDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi02NCAgIChoZXgpCQlLaWViYWNrICYgUGV0ZXIgR21iSCAmIENvIEtHCiswMDBCNjQgICAgIChiYXNlIDE2KQkJS2llYmFjayAmIFBldGVyIEdtYkggJiBDbyBLRworCQkJCVRlbXBlbGhvZmVyIFdlZyA1MAorCQkJCUJlcmxpbiAgMTIzNDcKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLTY1ICAgKGhleCkJCVN5LkEuQy4gc3JsCiswMDBCNjUgICAgIChiYXNlIDE2KQkJU3kuQS5DLiBzcmwKKwkJCQl2aWEgQ2Fib3RvIDE5LzEKKwkJCQlUcmllc3RlICAzNDE0NworCQkJCUlUQUxZCisKKzAwLTBCLTY2ICAgKGhleCkJCVRlcmFsaW5rIENvbW11bmljYXRpb25zCiswMDBCNjYgICAgIChiYXNlIDE2KQkJVGVyYWxpbmsgQ29tbXVuaWNhdGlvbnMKKwkJCQlDYXBpdGFsIFRvd2VyIDE1RiwKKwkJCQk5MzEgRG9vbnNhbi1kb25nLCBTZW8tZ3UKKwkJCQlEYWVqZW9uICAzMDIxMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItNjcgICAoaGV4KQkJVG9wdmlldyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDBCNjcgICAgIChiYXNlIDE2KQkJVG9wdmlldyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJTm8uIDgsV3UtQ2h1YW4gUm9hZCxXdSBLdSBJbmR1c3RyaWFsIFBhcgorCQkJCVd1IEt1IEhzaWFuZyxUYWlwZWkgSHNpZW4sICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTY4ICAgKGhleCkJCUFkZHZhbHVlIENvbW11bmljYXRpb25zIFB0ZSBMdGQKKzAwMEI2OCAgICAgKGJhc2UgMTYpCQlBZGR2YWx1ZSBDb21tdW5pY2F0aW9ucyBQdGUgTHRkCisJCQkJMjgsVEFJIFNFTkcgU1RSRUVUICMwNi0wMgorCQkJCVNpbmdhcG9yZSAgNTM0MTA2CisJCQkJU0lOR0FQT1JFCisKKzAwLTBCLTY5ICAgKGhleCkJCUZyYW5rZSBGaW5sYW5kIE95CiswMDBCNjkgICAgIChiYXNlIDE2KQkJRnJhbmtlIEZpbmxhbmQgT3kKKwkJCQlWYXJ0aW9rdWphIDEKKwkJCQlOQUFSQUpBUlZJIE5BQVJBSkFSVkkgRklOLTc2ODUwCisJCQkJRklOTEFORAorCiswMC0wQi02QSAgIChoZXgpCQlBc2lhcm9jayBJbmNvcnBvcmF0aW9uCiswMDBCNkEgICAgIChiYXNlIDE2KQkJQXNpYXJvY2sgSW5jb3Jwb3JhdGlvbgorCQkJCVAuTy4gQm94OTU3LCBPZmZzaG9yZSBJbmNvcnBvcmF0aW9ucyBDZW4KKwkJCQlSb2FkIFRvd24gVG9ydG9sYSAKKwkJCQlWSVJHSU4gSVNMQU5EUywgQlJJVElTSAorCiswMC0wQi02QiAgIChoZXgpCQlXaXN0cm9uIE5ld2ViIENvcnAuCiswMDBCNkIgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBOZXdlYiBDb3JwLgorCQkJCU5vLiAxMC0xLCBMaS1Ic2luIFJvYWQgSSwgU2NpZW5jZS1iYXNlZAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItNkMgICAoaGV4KQkJU3ljaGlwIEluYy4KKzAwMEI2QyAgICAgKGJhc2UgMTYpCQlTeWNoaXAgSW5jLgorCQkJCTI4MDUgTi4gRGFsbGFzIFBhcmt3YXkgU3VpdGUgNDAwCisJCQkJUGxhbm8gVGV4YXMgNzUwOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTZEICAgKGhleCkJCVNPTEVDVFJPTiBKQVBBTiBOQUtBTklJREEKKzAwMEI2RCAgICAgKGJhc2UgMTYpCQlTT0xFQ1RST04gSkFQQU4gTkFLQU5JSURBCisJCQkJMzI1IEdBTkJBUkEKKwkJCQlOQUtBTklJREFNQUNISQorCQkJCUtBTUlHVU4gTUlZQUdJS0VOIDk4MS00MjYzCisJCQkJSkFQQU4KKworMDAtMEItNkUgICAoaGV4KQkJTmVmZiBJbnN0cnVtZW50IENvcnAuCiswMDBCNkUgICAgIChiYXNlIDE2KQkJTmVmZiBJbnN0cnVtZW50IENvcnAuCisJCQkJNzAwIFNvdXRoIE15cnRsZSBBdmUuCisJCQkJTW9ucm92aWEgQ0EgOTEwMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTZGICAgKGhleCkJCU1lZGlhIFN0cmVhbWluZyBOZXR3b3JrcyBJbmMKKzAwMEI2RiAgICAgKGJhc2UgMTYpCQlNZWRpYSBTdHJlYW1pbmcgTmV0d29ya3MgSW5jCisJCQkJMTkwNSBBbmFtIFRvd2VyLCA3MDItMTAsIFllb2tzYW0gZG9uZywgSworCQkJCVNlb3VsICAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLTcwICAgKGhleCkJCUxvYWQgVGVjaG5vbG9neSwgSW5jLgorMDAwQjcwICAgICAoYmFzZSAxNikJCUxvYWQgVGVjaG5vbG9neSwgSW5jLgorCQkJCTQyMjUgUHJvZHVjdGlvbiBDb3VydAorCQkJCUxhcyBWZWdhcyBOViA4OTExNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNzEgICAoaGV4KQkJTGl0Y2hmaWVsZCBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDBCNzEgICAgIChiYXNlIDE2KQkJTGl0Y2hmaWVsZCBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJMjcgUHJpbmNldG9uIFJvYWQKKwkJCQlXYXRlcnRvd24gQ1QgMDY3OTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTcyICAgKGhleCkJCUxhd28gQUcKKzAwMEI3MiAgICAgKGJhc2UgMTYpCQlMYXdvIEFHCisJCQkJQW0gT2JlcndhbGQgOAorCQkJCVJhc3RhdHQgQmFkZW4tV/xydHRlbWJlcmcgNzY0MzcKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLTczICAgKGhleCkJCUtvZGVvcyBDb21tdW5pY2F0aW9ucworMDAwQjczICAgICAoYmFzZSAxNikJCUtvZGVvcyBDb21tdW5pY2F0aW9ucworCQkJCTExMSBDb3Jwb3JhdGUgQmx2ZAorCQkJCVN1aXRlIEEKKwkJCQlTb3V0aCBQbGFpbmZpZWxkIE5KIDA3MDgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi03NCAgIChoZXgpCQlLaW5nd2F2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwQjc0ICAgICAoYmFzZSAxNikJCUtpbmd3YXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMThGLTMsIE5vLiAxODYsIEppYW4tWWkgUmQuCisJCQkJQ2h1bmctSG8gVGFpcGVpIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItNzUgICAoaGV4KQkJSW9zb2Z0IEx0ZC4KKzAwMEI3NSAgICAgKGJhc2UgMTYpCQlJb3NvZnQgTHRkLgorCQkJCTUgV29vZGxhcmsgUm9hZAorCQkJCUNhbWJyaWRnZSBDYW1icy4gQ0IzIDBIVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBCLTc2ICAgKGhleCkJCUVUJlQgVGVjaG5vbG9neSBDby4gTHRkLgorMDAwQjc2ICAgICAoYmFzZSAxNikJCUVUJlQgVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCTZGIE5vLjEwMSwgU29uZ0ppYW5nIFJkLgorCQkJCVRhaXBlaSAgMTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi03NyAgIChoZXgpCQlDb2dlbnQgU3lzdGVtcywgSW5jLgorMDAwQjc3ICAgICAoYmFzZSAxNikJCUNvZ2VudCBTeXN0ZW1zLCBJbmMuCisJCQkJMjA5IEZhaXIgT2FrcyBBdmUuCisJCQkJU291dGggUGFzYWRlbmEgQ0EgOTEwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTc4ICAgKGhleCkJCVRBSUZBVEVDSCBJTkMuCiswMDBCNzggICAgIChiYXNlIDE2KQkJVEFJRkFURUNIIElOQy4KKwkJCQk4Ri0xIE5vLjI4OSwgU2VjLjIgIEd1YW5nZnUgUmQuCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi03OSAgIChoZXgpCQlYLUNPTSwgSW5jLgorMDAwQjc5ICAgICAoYmFzZSAxNikJCVgtQ09NLCBJbmMuCisJCQkJODgwOSBTdWRsZXkgUm9hZAorCQkJCVN1aXRlIDIwMgorCQkJCU1hbmFzc2FzIFZBIDIwMTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi03QSAgIChoZXgpCQlXYXZlIFNjaWVuY2UgSW5jLgorMDAwQjdBICAgICAoYmFzZSAxNikJCVdhdmUgU2NpZW5jZSBJbmMuCisJCQkJNzYyMCBPbW5pdGVjaCBQbGFjZQorCQkJCVZpY3RvciBOZXcgWW9yayAxNDU2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItN0IgICAoaGV4KQkJVGVzdC1VbSBJbmMuCiswMDBCN0IgICAgIChiYXNlIDE2KQkJVGVzdC1VbSBJbmMuCisJCQkJODA4IENhbGxlIFBsYW5vCisJCQkJQ2FtYXJpbGxvIENBIDkzMDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi03QyAgIChoZXgpCQlUZWxleCBDb21tdW5pY2F0aW9ucworMDAwQjdDICAgICAoYmFzZSAxNikJCVRlbGV4IENvbW11bmljYXRpb25zCisJCQkJODYwMSBFLiBDb3JuaHVza2VyIEh3eQorCQkJCUxpbmNvbG4gTkUgNjg1MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTdEICAgKGhleCkJCVNPTE9NT04gRVhUUkVNRSBJTlRFUk5BVElPTkFMIExURC4KKzAwMEI3RCAgICAgKGJhc2UgMTYpCQlTT0xPTU9OIEVYVFJFTUUgSU5URVJOQVRJT05BTCBMVEQuCisJCQkJM0YsIE5vLjIwLCBMYW5lIDE2NSwgRHVlbmh1YSBOLiBSZC4sIFN1bgorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi03RSAgIChoZXgpCQlTQUdJTk9NSVlBIFNlaXNha3VzaG8gSW5jLgorMDAwQjdFICAgICAoYmFzZSAxNikJCVNBR0lOT01JWUEgU2Vpc2FrdXNobyBJbmMuCisJCQkJNTM1IFNhc2FpCisJCQkJU2F5YW1hc2hpIFNhaXRhbWFrZW4gMzUwLTEzOTUKKwkJCQlKQVBBTgorCiswMC0wQi03RiAgIChoZXgpCQlPbW5pV2Vya3MKKzAwMEI3RiAgICAgKGJhc2UgMTYpCQlPbW5pV2Vya3MKKwkJCQk5MDAgRSBIYW1pbHRvbiBBdmVudWUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItODAgICAoaGV4KQkJTHljaXVtIE5ldHdvcmtzCiswMDBCODAgICAgIChiYXNlIDE2KQkJTHljaXVtIE5ldHdvcmtzCisJCQkJOSBIYW1lbm9maW0gU3QuCisJCQkJUC5PLkJveCAxMjI1NgorCQkJCUhlcnpsaXlhIElzcmFlbCA0NjczMworCQkJCUlTUkFFTAorCiswMC0wQi04MSAgIChoZXgpCQlLYXBhcmVsIENvcnBvcmF0aW9uCiswMDBCODEgICAgIChiYXNlIDE2KQkJS2FwYXJlbCBDb3Jwb3JhdGlvbgorCQkJCTk3IFJhbmRhbGwgRHJpdmUKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yVi0xQzUKKwkJCQlDQU5BREEKKworMDAtMEItODIgICAoaGV4KQkJR3JhbmRzdHJlYW0gTmV0d29ya3MsIEluYy4KKzAwMEI4MiAgICAgKGJhc2UgMTYpCQlHcmFuZHN0cmVhbSBOZXR3b3JrcywgSW5jLgorCQkJCTEyOTcgRmxvb2RsaWdodCBTdHJlZXQKKwkJCQkybmQgRmxvb3IKKwkJCQlCcm9va2xpbmUgTUEgMDI0NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTgzICAgKGhleCkJCURBVEFXQVRUIEIuVi4KKzAwMEI4MyAgICAgKGJhc2UgMTYpCQlEQVRBV0FUVCBCLlYuCisJCQkJSE9VVFNUUkFBVCA1CisJCQkJUC5PLiBCT1ggMTA4CisJCQkJV09MVkVHQSBGUklFU0xBTkQgTkwtODQ3MS1aWAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBCLTg0ICAgKGhleCkJCUJPREVUCiswMDBCODQgICAgIChiYXNlIDE2KQkJQk9ERVQKKwkJCQlSb3V0ZSBkZSBsYSBUb3VybGFuZHJ5CisJCQkJVFJFTUVOVElORVMgRlJBTkNFIDQ5MzQwCisJCQkJRlJBTkNFCisKKzAwLTBCLTg1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEI4NSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgVy4gVGFzbWFuIERyaXZlCisJCQkJTVMgU0pDTS8xLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItODYgICAoaGV4KQkJQXJ1YmEgTmV0d29ya3MKKzAwMEI4NiAgICAgKGJhc2UgMTYpCQlBcnViYSBOZXR3b3JrcworCQkJCTEzMjIgQ3Jvc3NtYW4gQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi04NyAgIChoZXgpCQlBbWVyaWNhbiBSZWxpYW5jZSBJbmMuCiswMDBCODcgICAgIChiYXNlIDE2KQkJQW1lcmljYW4gUmVsaWFuY2UgSW5jLgorCQkJCTExODAxIEdvbGRyaW5nIFJkCisJCQkJQXJjYWRpYSBDQSA5MTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItODggICAoaGV4KQkJVmlkaXNjbyBsdGQuCiswMDBCODggICAgIChiYXNlIDE2KQkJVmlkaXNjbyBsdGQuCisJCQkJMTcgWWVjaGllbCBEcmVzbmVyCisJCQkJUGV0YWNoLVRpa3ZhICA0OTI3NworCQkJCUlTUkFFTAorCiswMC0wQi04OSAgIChoZXgpCQlUb3AgR2xvYmFsIFRlY2hub2xvZ3ksIEx0ZC4KKzAwMEI4OSAgICAgKGJhc2UgMTYpCQlUb3AgR2xvYmFsIFRlY2hub2xvZ3ksIEx0ZC4KKwkJCQlSb29tIDMzMTAsIENoaW5hIFdvcmxkIFRvd2VyIE5vLiAxCisJCQkJSmlhbiBHdW8gTWVuIFdhaSBBdmVudWUKKwkJCQlCZWlqaW5nIEJlaWppbmcgMTAwMDA0CisJCQkJQ0hJTkEKKworMDAtMEItOEEgICAoaGV4KQkJTUlURVEgSW5jLgorMDAwQjhBICAgICAoYmFzZSAxNikJCU1JVEVRIEluYy4KKwkJCQkxMDAgRGF2aWRzIERyaXZlCisJCQkJSGF1cHBhdWdlIE5ZIDExNzg4LTIwMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLThCICAgKGhleCkJCUtFUkFKRVQsIFMuQS4KKzAwMEI4QiAgICAgKGJhc2UgMTYpCQlLRVJBSkVULCBTLkEuCisJCQkJQ3RyYS4gVmlsbGFycmVhbC1PbmRhLCBLbSAyLjUKKwkJCQlWaWxsYXJyZWFsIENhc3RlbGxvbiBFLTEyNTQwCisJCQkJU1BBSU4KKworMDAtMEItOEMgICAoaGV4KQkJRmxleHRyb25pY3MKKzAwMEI4QyAgICAgKGJhc2UgMTYpCQlGbGV4dHJvbmljcworCQkJCU1pZ2RhbCBIYUVtZWsKKwkJCQlSYW1hdCBHYXZyaWVsCisJCQkJMjMxMDggSGF0YWFzaWEgMSAKKwkJCQlJU1JBRUwKKworMDAtMEItOEQgICAoaGV4KQkJQXZ2aW8gTmV0d29ya3MKKzAwMEI4RCAgICAgKGJhc2UgMTYpCQlBdnZpbyBOZXR3b3JrcworCQkJCTExIERvbm92YW4gRHIKKwkJCQlCZWRmb3JkIE1BIDAxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi04RSAgIChoZXgpCQlBc2NlbnQgQ29ycG9yYXRpb24KKzAwMEI4RSAgICAgKGJhc2UgMTYpCQlBc2NlbnQgQ29ycG9yYXRpb24KKwkJCQkyLTE2LTE5LCBLYXdhcmF5YS1tYWNoaSwgQ2h1by1LdSwKKwkJCQlPc2FrYS1DaXR5IE9zYWthLVByZWYgNTQyLTAwNjYKKwkJCQlKQVBBTgorCiswMC0wQi04RiAgIChoZXgpCQlBS0lUQSBFTEVDVFJPTklDUyBTWVNURU1TIENPLixMVEQuCiswMDBCOEYgICAgIChiYXNlIDE2KQkJQUtJVEEgRUxFQ1RST05JQ1MgU1lTVEVNUyBDTy4sTFRELgorCQkJCTg1LEFaQSBVU0hJUk9OTyxBSUtBV0EsWVVXQS1NQUNISQorCQkJCUtBV0FCRS1HVU4gQUtJVEEtS0VOIDAxMC0xMjMxCisJCQkJSkFQQU4KKworMDAtMEItOTAgICAoaGV4KQkJQWR2YSBPcHRpY2FsIE5ldHdvcmtpbmcgSW5jLgorMDAwQjkwICAgICAoYmFzZSAxNikJCUFkdmEgT3B0aWNhbCBOZXR3b3JraW5nIEluYy4KKwkJCQlDbGlmdG9uIFRlY2hub2xvZ3kgQ2VudHJlCisJCQkJQ2xpZnRvbiBNb29yCisJCQkJWW9yayBZTzMwIDRHVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBCLTkxICAgKGhleCkJCUFnbGFpYSBHZXNlbGxzY2hhZnQgZvxyIEJpbGR2ZXJhcmJlaXR1bmcgdW5kIEtvbW11bmlrYXRpb24gbQorMDAwQjkxICAgICAoYmFzZSAxNikJCUFnbGFpYSBHZXNlbGxzY2hhZnQgZvxyIEJpbGR2ZXJhcmJlaXR1bmcgdW5kIEtvbW11bmlrYXRpb24gbQorCQkJCVRpbml1c3N0ci4gMTItMTUKKwkJCQlCZXJsaW4gIEQtMTMwODkKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLTkyICAgKGhleCkJCUFzY29tIERhbm1hcmsgQS9TCiswMDBCOTIgICAgIChiYXNlIDE2KQkJQXNjb20gRGFubWFyayBBL1MKKwkJCQlGYWJyaWtzcGFya2VuIDQyCisJCQkJR2xvc3RydXAgRGVubWFyayAyNjAwCisJCQkJREVOTUFSSworCiswMC0wQi05MyAgIChoZXgpCQlSaXR0ZXIgRWxla3Ryb25paworMDAwQjkzICAgICAoYmFzZSAxNikJCVJpdHRlciBFbGVrdHJvbmlrCisJCQkJTGV2ZXJrdXNlciBTdHIgNjUKKwkJCQlQLk8uIEJveCAxMTAyNDAKKwkJCQlSZW1zY2hlaWQgTlJXIDQyODk3CisJCQkJR0VSTUFOWQorCiswMC0wQi05NCAgIChoZXgpCQlEaWdpdGFsIE1vbml0b3JpbmcgUHJvZHVjdHMsIEluYy4KKzAwMEI5NCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIE1vbml0b3JpbmcgUHJvZHVjdHMsIEluYy4KKwkJCQkyNTAwIE4uIFBhcnRuZXJzaGlwIEJvdWxldmFyZAorCQkJCVNwcmluZ2ZpZWxkIE1pc3NvdXJpIDY1ODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi05NSAgIChoZXgpCQllQmV0IEdhbWluZyBTeXN0ZW1zIFB0eSBMdGQKKzAwMEI5NSAgICAgKGJhc2UgMTYpCQllQmV0IEdhbWluZyBTeXN0ZW1zIFB0eSBMdGQKKwkJCQlTdWl0ZSBELCAyNTUgUmF3c29uIFN0cmVldAorCQkJCUF1YnVybiBOU1cgMjE0NAorCQkJCUFVU1RSQUxJQQorCiswMC0wQi05NiAgIChoZXgpCQlJbm5vdHJhYyBEaWFnbm9zdGljcyBPeQorMDAwQjk2ICAgICAoYmFzZSAxNikJCUlubm90cmFjIERpYWdub3N0aWNzIE95CisJCQkJS2FsZXZhbnRpZSAyNQorCQkJCVR1cmt1IMVibyAyMDUyMAorCQkJCUZJTkxBTkQKKworMDAtMEItOTcgICAoaGV4KQkJTWF0c3VzaGl0YSBFbGVjdHJpYyBJbmR1c3RyaWFsIENvLixMdGQuCiswMDBCOTcgICAgIChiYXNlIDE2KQkJTWF0c3VzaGl0YSBFbGVjdHJpYyBJbmR1c3RyaWFsIENvLixMdGQuCisJCQkJMy0xLTEgWWFndW1vLU5ha2EtTWFjaGkKKwkJCQlNb3JpZ3VjaGkgQ2l0eSBPc2FrYSA1NzAtODUwMQorCQkJCUpBUEFOCisKKzAwLTBCLTk4ICAgKGhleCkJCU5pY2VUZWNoVmlzaW9uCiswMDBCOTggICAgIChiYXNlIDE2KQkJTmljZVRlY2hWaXNpb24KKwkJCQlJbnRlbFpvbmUgNzAzCisJCQkJWW9uZ0luICBHdWdhbC1yaSAgS2kgSGV1bmcgS3lvdW5nS2lEbyAzNTQtMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi05OSAgIChoZXgpCQlTZW5zQWJsZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEI5OSAgICAgKGJhc2UgMTYpCQlTZW5zQWJsZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxNSBDb25zdGl0dXRpb24gV2F5CisJCQkJV29idXJuIE1BIDAxODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi05QSAgIChoZXgpCQlTaGFuZ2hhaSBVbGluayBUZWxlY29tIEVxdWlwbWVudCBDby4gTHRkLgorMDAwQjlBICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFVsaW5rIFRlbGVjb20gRXF1aXBtZW50IENvLiBMdGQuCisJCQkJNiBGbG9vciwgQnVpbGRpbmcgMworCQkJCTIzMCBXZXN0IEppYW5nd2FuIFJvYWQKKwkJCQlTaGFuZ2hhaSAgMjAwMDgzCisJCQkJQ0hJTkEKKworMDAtMEItOUIgICAoaGV4KQkJU2lyaXVzIFN5c3RlbSBDbywgTHRkLgorMDAwQjlCICAgICAoYmFzZSAxNikJCVNpcml1cyBTeXN0ZW0gQ28sIEx0ZC4KKwkJCQkzLTI3IEZ1bmFkby1jaG8KKwkJCQlBc2hpeWEgSHlvZ28gNjU5LTAwOTMKKwkJCQlKQVBBTgorCiswMC0wQi05QyAgIChoZXgpCQlUcmlCZWFtIFRlY2hub2xvZ2llcywgSW5jLgorMDAwQjlDICAgICAoYmFzZSAxNikJCVRyaUJlYW0gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTE2IFcuIEVhc3RtYW4gU3QuLCBzdWl0ZSAyMDgKKwkJCQlBcmxpbmd0b24gSGVpZ2h0cyBJTCA2MDAwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItOUQgICAoaGV4KQkJVHdpbk1PUyBUZWNobm9sb2dpZXMgSW5jLgorMDAwQjlEICAgICAoYmFzZSAxNikJCVR3aW5NT1MgVGVjaG5vbG9naWVzIEluYy4KKwkJCQkzMDMgTm8uMywgVHp1IENoaWFuZyBSZC4sIEh1IEtvdSBYaWFuZywKKwkJCQlIc2luIENodSAgMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi05RSAgIChoZXgpCQlZYXNpbmcgVGVjaG5vbG9neSBDb3JwLgorMDAwQjlFICAgICAoYmFzZSAxNikJCVlhc2luZyBUZWNobm9sb2d5IENvcnAuCisJCQkJTm8uIDUwLCBUYSBIc3VlaCBSb2FkLCBIc2luQ2h1LCBUYWl3YW4KKwkJCQlIc2luQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTlGICAgKGhleCkJCU5ldWUgRUxTQSBHbWJICiswMDBCOUYgICAgIChiYXNlIDE2KQkJTmV1ZSBFTFNBIEdtYkgKKwkJCQlTb25uZW53ZWcgMTEKKwkJCQlBYWNoZW4gIDUyMDcwCisJCQkJR0VSTUFOWQorCiswMC0wQi1BMCAgIChoZXgpCQlUJkwgSW5mb3JtYXRpb24gSW5jLgorMDAwQkEwICAgICAoYmFzZSAxNikJCVQmTCBJbmZvcm1hdGlvbiBJbmMuCisJCQkJODk4LTQ0IEhva3llLURvbmcsIERvbmdhbi1HdQorCQkJCUFueWFuZyBLeXVuZ2tpLURvIDQzMS04MzYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItQTEgICAoaGV4KQkJU1lTQ09NIEx0ZC4KKzAwMEJBMSAgICAgKGJhc2UgMTYpCQlTWVNDT00gTHRkLgorCQkJCTQtMTAgSEFLT0RBLCBLVU1BR0FZQS1TSEkKKwkJCQlTQUlUQU1BLUtFTiAzNjAtODUxNQorCQkJCUpBUEFOCisKKzAwLTBCLUEyICAgKGhleCkJCVN1bWl0b21vIEVsZWN0cmljIE5ldHdvcmtzLCBJbmMKKzAwMEJBMiAgICAgKGJhc2UgMTYpCQlTdW1pdG9tbyBFbGVjdHJpYyBOZXR3b3JrcywgSW5jCisJCQkJMS0xLTMsIFNoaW1heWEsIEtvbm9oYW5hLWt1CisJCQkJT3Nha2EgIDU1NC0wMDI0CisJCQkJSkFQQU4KKworMDAtMEItQTMgICAoaGV4KQkJU2llbWVucyBBRywgSSZTCiswMDBCQTMgICAgIChiYXNlIDE2KQkJU2llbWVucyBBRywgSSZTCisJCQkJV2VybmVyLXZvbi1TaWVtZW5zLVN0cmHfZSA2NQorCQkJCUVybGFuZ2VuIEJhdmFyaWEgOTEwNTIKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLUE0ICAgKGhleCkJCVNoaXJvbiBTYXRlbGxpdGUgQ29tbXVuaWNhdGlvbnMgTHRkLiAoMTk5NikKKzAwMEJBNCAgICAgKGJhc2UgMTYpCQlTaGlyb24gU2F0ZWxsaXRlIENvbW11bmljYXRpb25zIEx0ZC4gKDE5OTYpCisJCQkJMjMgSGFzaXZpbSBTdC4KKwkJCQlQZXRhY2ggVGlrdmEgIDQ5MTcwCisJCQkJSVNSQUVMCisKKzAwLTBCLUE1ICAgKGhleCkJCVF1YXNhciBDaXB0YSBNYW5kaXJpLCBQVAorMDAwQkE1ICAgICAoYmFzZSAxNikJCVF1YXNhciBDaXB0YSBNYW5kaXJpLCBQVAorCQkJCUpsLiBQYWxhc2FyaSA5QQorCQkJCUJhbmR1bmcgV2VzdCBKYXZhIDQwMjYyCisJCQkJSU5ET05FU0lBCisKKzAwLTBCLUE2ICAgKGhleCkJCU1peWFrYXdhIEVsZWN0cmljIFdvcmtzIEx0ZC4KKzAwMEJBNiAgICAgKGJhc2UgMTYpCQlNaXlha2F3YSBFbGVjdHJpYyBXb3JrcyBMdGQuCisJCQkJMi0xLTYsCisJCQkJS29oaG9rdS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyMi0wMDAxCisJCQkJSkFQQU4KKworMDAtMEItQTcgICAoaGV4KQkJTWFyYW50aSBOZXR3b3JrcworMDAwQkE3ICAgICAoYmFzZSAxNikJCU1hcmFudGkgTmV0d29ya3MKKwkJCQkzMDYxLUIgWmFua2VyIFJvYWQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQTggICAoaGV4KQkJSEFOQkFDSyBFTEVDVFJPTklDUyBDTy4sIExURC4KKzAwMEJBOCAgICAgKGJhc2UgMTYpCQlIQU5CQUNLIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCTMwNi03LCBHYWxtYS1kb25nLCBTZW8tZ3UKKwkJCQlEYWVqZW9uICAzMDItMTcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLUE5ICAgKGhleCkJCUNsb3VkU2hpZWxkIFRlY2hub2xvZ2llcywgSW5jLgorMDAwQkE5ICAgICAoYmFzZSAxNikJCUNsb3VkU2hpZWxkIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTIxMiBHaWxicmFsdGFyIERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1BQSAgIChoZXgpCQlBaXBob25lIGNvLixMdGQKKzAwMEJBQSAgICAgKGJhc2UgMTYpCQlBaXBob25lIGNvLixMdGQKKwkJCQkyLTE4IEppbm5vLUNobworCQkJCUF0c3V0YS1rdQorCQkJCU5hZ295YSBBaWNoaS1rZW4gNDU2LTg2NjYKKwkJCQlKQVBBTgorCiswMC0wQi1BQiAgIChoZXgpCQlBZHZhbnRlY2ggVGVjaG5vbG9neSAoQ0hJTkEpIENvLiwgTHRkLgorMDAwQkFCICAgICAoYmFzZSAxNikJCUFkdmFudGVjaCBUZWNobm9sb2d5IChDSElOQSkgQ28uLCBMdGQuCisJCQkJTm8uNjY2LCBIYW4tUHUgUmQuIFl1LVNoYW4KKwkJCQlLdW4tU2hhbiBKaWFuZyBTdSAyMTUzMTYKKwkJCQlDSElOQQorCiswMC0wQi1BQyAgIChoZXgpCQkzQ29tIEx0ZAorMDAwQkFDICAgICAoYmFzZSAxNikJCTNDb20gTHRkCisJCQkJUGVvcGxlYnVpbGRpbmcgMiwgUGVvcGxlYnVpbGRpbmcgRXN0YXRlCisJCQkJTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzLiBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEItQUQgICAoaGV4KQkJUEMtUG9TIEluYy4KKzAwMEJBRCAgICAgKGJhc2UgMTYpCQlQQy1Qb1MgSW5jLgorCQkJCTMwOSBDb21taXNzaW9uZXJzIFJvYWQgV2VzdAorCQkJCUxvbmRvbiBPbnRhcmlvIE42SiAxWTQKKwkJCQlDQU5BREEKKworMDAtMEItQUUgICAoaGV4KQkJVml0YWxzIFN5c3RlbSBJbmMuCiswMDBCQUUgICAgIChiYXNlIDE2KQkJVml0YWxzIFN5c3RlbSBJbmMuCisJCQkJSm9vaGV1bmcgQi9EIDRGTC4gMTAwNS0xLCBZb3VuZ3RvbmctRG9uZworCQkJCVN1d29uIENpdHkgS3lvbmdnaS1EbyA0NDItODEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLUFGICAgKGhleCkJCVdPT0pVIENPTU1VTklDQVRJT05TIENvLC5MdGQKKzAwMEJBRiAgICAgKGJhc2UgMTYpCQlXT09KVSBDT01NVU5JQ0FUSU9OUyBDbywuTHRkCisJCQkJQi03MTMsIFNLIFR3aW4gVGVjaCBUb3dlciwgMzQ1LTksIEdhLVNhbgorCQkJCVNlb3VsICAxNTMtODAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLUIwICAgKGhleCkJCVN5c25ldCBUZWxlbWF0aWNhIHNybAorMDAwQkIwICAgICAoYmFzZSAxNikJCVN5c25ldCBUZWxlbWF0aWNhIHNybAorCQkJCVZpYWxlIEJlcmJlcmEsIDQ5CisJCQkJTWlsYW4gIDIwMTYyCisJCQkJSVRBTFkKKworMDAtMEItQjEgICAoaGV4KQkJU3VwZXIgU3RhciBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwQkIxICAgICAoYmFzZSAxNikJCVN1cGVyIFN0YXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gNyBMYW5lIDMwNixTZWMuIDIsVGFpLUxpbiBSZC4KKwkJCQlUYWktU2hhbiBTaGlhbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDI0MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItQjIgICAoaGV4KQkJU01BTExCSUcgVEVDSE5PTE9HWQorMDAwQkIyICAgICAoYmFzZSAxNikJCVNNQUxMQklHIFRFQ0hOT0xPR1kKKwkJCQkzRiBEb25nc3VuZyBCbGRnLiA3MjAtOSBZb2tzYW1kb25nCisJCQkJR2FuZ25hbWd1IFNlb3VsIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItQjMgICAoaGV4KQkJUmlUIHRlY2hub2xvZ2llcyBMdGQuCiswMDBCQjMgICAgIChiYXNlIDE2KQkJUmlUIHRlY2hub2xvZ2llcyBMdGQuCisJCQkJMjQgUmFvdWwgV2FsZW5iZXJnICBTdC4KKwkJCQlUZWwgQXZpdiAgNjk3MTkKKwkJCQlJU1JBRUwKKworMDAtMEItQjQgICAoaGV4KQkJUkRDIFNlbWljb25kdWN0b3IgSW5jLiwKKzAwMEJCNCAgICAgKGJhc2UgMTYpCQlSREMgU2VtaWNvbmR1Y3RvciBJbmMuLAorCQkJCTZGLTEgLCBOby4yLTEsIExpaHNpbiBSZCwgU2NpZW5jZS1CYXNlZAorCQkJCUhzaW4gQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLUI1ICAgKGhleCkJCW5TdG9yIFRlY2hub2xvZ2llcywgSW5jLgorMDAwQkI1ICAgICAoYmFzZSAxNikJCW5TdG9yIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEwMCBUZWNobm9sb2d5IFBhcmsKKwkJCQlTdWl0ZSAxNzUKKwkJCQlMYWtlIE1hcnkgRkwgMzI3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUI2ICAgKGhleCkJCU1vdG90ZWNoIEluYy4KKzAwMEJCNiAgICAgKGJhc2UgMTYpCQlNb3RvdGVjaCBJbmMuCisJCQkJOSwgUGFyayBBdmVudWUgSUksIFNjaWVuY2UtQmFzZWQgSW5kdXN0cgorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItQjcgICAoaGV4KQkJTWljcm8gU3lzdGVtcyBDby4sTHRkLgorMDAwQkI3ICAgICAoYmFzZSAxNikJCU1pY3JvIFN5c3RlbXMgQ28uLEx0ZC4KKwkJCQkyLTE1LTM0IE5pc2hpa3VibworCQkJCU11c2FzaGluby1DaXR5IFRva3lvIDE4MC0wMDEzCisJCQkJSkFQQU4KKworMDAtMEItQjggICAoaGV4KQkJS2lob2t1IEVsZWN0cm9uaWMgQ28uCiswMDBCQjggICAgIChiYXNlIDE2KQkJS2lob2t1IEVsZWN0cm9uaWMgQ28uCisJCQkJTWFydWthdHViaXJ1IDNGIDQtOS02CisJCQkJTmlob25iYXNoaSBOYW5pd2Eta3UKKwkJCQlPc2FrYXNoaSBPc2FrYS1odSA1NTYtMDAwNQorCQkJCUpBUEFOCisKKzAwLTBCLUI5ICAgKGhleCkJCUltc3lzIEFCCiswMDBCQjkgICAgIChiYXNlIDE2KQkJSW1zeXMgQUIKKwkJCQlKb2hhbm5lc2x1bmRzdmFnZW4gMworCQkJCVVwcGxhbmRzIFZhc2J5ICBTRS0xOTQ2MQorCQkJCVNXRURFTgorCiswMC0wQi1CQSAgIChoZXgpCQlIYXJtb25pYyBCcm9hZGJhbmQgQWNjZXNzIE5ldHdvcmtzCiswMDBCQkEgICAgIChiYXNlIDE2KQkJSGFybW9uaWMgQnJvYWRiYW5kIEFjY2VzcyBOZXR3b3JrcworCQkJCTU0OSBCYWx0aWMgV2F5CisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1CQiAgIChoZXgpCQlFdGluIFN5c3RlbXMgQ28uLCBMdGQKKzAwMEJCQiAgICAgKGJhc2UgMTYpCQlFdGluIFN5c3RlbXMgQ28uLCBMdGQKKwkJCQkxMkYsIElUIFZlbnR1cmUgVG93ZXIsCisJCQkJNzggR2FyYWtCb24tRG9uZywgU29uZ3BhLUt1CisJCQkJU2VvdWwgIDEzOC04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItQkMgICAoaGV4KQkJRW4gR2FyZGUgU3lzdGVtcywgSW5jLgorMDAwQkJDICAgICAoYmFzZSAxNikJCUVuIEdhcmRlIFN5c3RlbXMsIEluYy4KKwkJCQkyMTAxIFdoaXRlIENsb3VkIFN0LiBORQorCQkJCUFsYnVxdWVycXVlIE5NIDg3MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1CRCAgIChoZXgpCQlDb25uZXhpb256IExpbWl0ZWQKKzAwMEJCRCAgICAgKGJhc2UgMTYpCQlDb25uZXhpb256IExpbWl0ZWQKKwkJCQkxIFNob3cgUGxhY2UKKwkJCQlDaHJpc3RjaHVyY2ggQ2FudGVyYnVyeSA4MDA0CisJCQkJTkVXIFpFQUxBTkQKKworMDAtMEItQkUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQkJFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQkYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQkJGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQzAgICAoaGV4KQkJQ2hpbmEgSVdOQ29tbSBDby4sIEx0ZC4KKzAwMEJDMCAgICAgKGJhc2UgMTYpCQlDaGluYSBJV05Db21tIENvLiwgTHRkLgorCQkJCTRGLkMgWGlldG9uZyBCdWlsZGluZyxOby4xMiBHYW94aW4gMm5kIHIKKwkJCQlIaS10ZWNoIGluZHVzdHJpZXMgZGV2ZWxvcG1lbnQgem9uZQorCQkJCVhpJ2FuIHNoYWFueGkgNzEwMDc1CisJCQkJQ0hJTkEKKworMDAtMEItQzEgICAoaGV4KQkJQmF5IE1pY3Jvc3lzdGVtcywgSW5jLgorMDAwQkMxICAgICAoYmFzZSAxNikJCUJheSBNaWNyb3N5c3RlbXMsIEluYy4KKwkJCQkyNzAwIEF1Z3VzdGluZSBEcml2ZQorCQkJCVN1aXRlIDI5OAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1DMiAgIChoZXgpCQlDb3JpbmV4IENvbW11bmljYXRpb24gQ29ycC4KKzAwMEJDMiAgICAgKGJhc2UgMTYpCQlDb3JpbmV4IENvbW11bmljYXRpb24gQ29ycC4KKwkJCQkjMzA4IDExNjggSGFtaWx0b24gU3RyZWV0CisJCQkJVmFuY291dmVyIEIuQy4gVjZCIDJTMgorCQkJCUNBTkFEQQorCiswMC0wQi1DMyAgIChoZXgpCQlNdWx0aXBsZXgsIEluYy4KKzAwMEJDMyAgICAgKGJhc2UgMTYpCQlNdWx0aXBsZXgsIEluYy4KKwkJCQk1MDAwIEhhZGxleSBSZC4KKwkJCQlTLiBQbGFpbmZpZWxkIE5KIDA3MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1DNCAgIChoZXgpCQlCSU9UUk9OSUsgR21iSCAmIENvCiswMDBCQzQgICAgIChiYXNlIDE2KQkJQklPVFJPTklLIEdtYkggJiBDbworCQkJCVdvZXJtYW5ua2VocmUgMQorCQkJCUJlcmxpbiAgMTIzNTkKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLUM1ICAgKGhleCkJCVNNQyBOZXR3b3JrcywgSW5jLgorMDAwQkM1ICAgICAoYmFzZSAxNikJCVNNQyBOZXR3b3JrcywgSW5jLgorCQkJCTM4IFRlc2xhCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1DNiAgIChoZXgpCQlJU0FDLCBJbmMuCiswMDBCQzYgICAgIChiYXNlIDE2KQkJSVNBQywgSW5jLgorCQkJCVBPIEJveCA3NjgyCisJCQkJQXVidXJuIENBIDk1NjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1DNyAgIChoZXgpCQlJQ0VUIFMucC5BLgorMDAwQkM3ICAgICAoYmFzZSAxNikJCUlDRVQgUy5wLkEuCisJCQkJVmlhIFF1YXJ0byBOZWdyb25pLCA2MworCQkJCUNlY2NoaW5hIGRpIEFyaWNjaWEgUm9tYSAwMDA0MAorCQkJCUlUQUxZCisKKzAwLTBCLUM4ICAgKGhleCkJCUFpckZsb3cgTmV0d29ya3MKKzAwMEJDOCAgICAgKGJhc2UgMTYpCQlBaXJGbG93IE5ldHdvcmtzCisJCQkJNDQ0IENhc3RybyBTdAorCQkJCVN1aXRlIDMyMAorCQkJCU1vdW50YWluIFZpZXcgQ2EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUM5ICAgKGhleCkJCUVsZWN0cm9saW5lIEVxdWlwbWVudAorMDAwQkM5ICAgICAoYmFzZSAxNikJCUVsZWN0cm9saW5lIEVxdWlwbWVudAorCQkJCTgyNjUgYm91bC4gU3QtTWljaGVsCisJCQkJTW9udHJlYWwgUXVlYmVjIEgxWiAzRTQKKwkJCQlDQU5BREEKKworMDAtMEItQ0EgICAoaGV4KQkJREFUQVZBTiBJbnRlcm5hdGlvbmFsIENvcnBvcmF0aW9uCiswMDBCQ0EgICAgIChiYXNlIDE2KQkJREFUQVZBTiBJbnRlcm5hdGlvbmFsIENvcnBvcmF0aW9uCisJCQkJNEZMLCMxMjAtMTIsQ2h1bmcgU2hhbiBSZCwgU2VjLjMKKwkJCQlDaHVuZyBIbyBDaXR5LCBUYWlwZWkgSHNpZW4gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItQ0IgICAoaGV4KQkJRmFnb3IgQXV0b21hdGlvbiAsIFMuIENvb3AKKzAwMEJDQiAgICAgKGJhc2UgMTYpCQlGYWdvciBBdXRvbWF0aW9uICwgUy4gQ29vcAorCQkJCVNhbiBBbmRyZXMgcy9uCisJCQkJMjA1MDAgTW9uZHJhZ29uCisJCQkJR3VpcHV6Y29hIDIwNTAwCisJCQkJU1BBSU4KKworMDAtMEItQ0MgICAoaGV4KQkJSlVTQU4sIFMuQS4KKzAwMEJDQyAgICAgKGJhc2UgMTYpCQlKVVNBTiwgUy5BLgorCQkJCVZpdmVybywgNQorCQkJCU1BRFJJRCAgMjgwNDAKKwkJCQlTUEFJTgorCiswMC0wQi1DRCAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMEJDRCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OSBTb3V0aAorCQkJCU1TMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQ0UgICAoaGV4KQkJRnJlZTJtb3ZlIEFCCiswMDBCQ0UgICAgIChiYXNlIDE2KQkJRnJlZTJtb3ZlIEFCCisJCQkJU3BlcmxpbmdzZ2F0YW4gNworCQkJCUhhbG1zdGFkIEhhbGxhbmQgMzAyNDgKKwkJCQlTV0VERU4KKworMDAtMEItQ0YgICAoaGV4KQkJQUdGQSBORFQgSU5DLgorMDAwQkNGICAgICAoYmFzZSAxNikJCUFHRkEgTkRUIElOQy4KKwkJCQk1MCBJbmR1c3RyaWFsIFBhcmsgUm9hZAorCQkJCUxld2lzdG93biBQQSAxNzA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRDAgICAoaGV4KQkJWGlNZXRhIFRlY2hub2xvZ3kgQW1lcmljYXMgSW5jLgorMDAwQkQwICAgICAoYmFzZSAxNikJCVhpTWV0YSBUZWNobm9sb2d5IEFtZXJpY2FzIEluYy4KKwkJCQk1NCBSYXkgU3RyZWV0CisJCQkJTmV3IEJydW5zd2ljayBOSiAwODkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRDEgICAoaGV4KQkJQWVyb25peCwgSW5jLgorMDAwQkQxICAgICAoYmFzZSAxNikJCUFlcm9uaXgsIEluYy4KKwkJCQkxNzc1IFcuIEhpYmlzY3VzIEJsdmQsCisJCQkJU3VpdGUgIzMwNAorCQkJCU1lbGJvdXJuZSBGTCAzMjkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRDIgICAoaGV4KQkJUmVtb3BybyBUZWNobm9sb2d5IEluYy4KKzAwMEJEMiAgICAgKGJhc2UgMTYpCQlSZW1vcHJvIFRlY2hub2xvZ3kgSW5jLgorCQkJCU5vLiA0NDMsIEh1YW5uYW4gUkQuLAorCQkJCVBpbmdqZW4gQ2l0eSBUYW95dWFuIDMyNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItRDMgICAoaGV4KQkJY2QzbworMDAwQkQzICAgICAoYmFzZSAxNikJCWNkM28KKwkJCQk0MDIgVyBCcm9hZHdheQorCQkJCVNhbiBEZWlnbyBDQSA5MjEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRDQgICAoaGV4KQkJQmVpamluZyBXaXNlIFRlY2hub2xvZ3kgJiBTY2llbmNlIERldmVsb3BtZW50IENvLkx0ZAorMDAwQkQ0ICAgICAoYmFzZSAxNikJCUJlaWppbmcgV2lzZSBUZWNobm9sb2d5ICYgU2NpZW5jZSBEZXZlbG9wbWVudCBDby5MdGQKKwkJCQkzcmQgRmxvb3IgQ2FpaG9uZyBCdWlsZGluZywgTm8uMiwxc3QgV2VzCisJCQkJTWFkaWFuLCBIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg4CisJCQkJQ0hJTkEKKworMDAtMEItRDUgICAoaGV4KQkJTnZlcmdlbmNlLCBJbmMuCiswMDBCRDUgICAgIChiYXNlIDE2KQkJTnZlcmdlbmNlLCBJbmMuCisJCQkJSmVpbCBCbGRnLiA0dGgsIFNhbXN1bmctZG9uZyAxNjgtMjYsIEthbgorCQkJCVNlb3VsICAxMzUtMDkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLUQ2ICAgKGhleCkJCVBheHRvbiBBY2Nlc3MgTHRkCiswMDBCRDYgICAgIChiYXNlIDE2KQkJUGF4dG9uIEFjY2VzcyBMdGQKKwkJCQlQYXh0b24gSG91c2UKKwkJCQlIb21lIEZhcm0gUm9hZAorCQkJCUJyaWdodG9uIEVhc3QgU3Vzc2V4IEJOMSA5SFUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQi1ENyAgIChoZXgpCQlET1JNQSBUaW1lICsgQWNjZXNzIEdtYkgKKzAwMEJENyAgICAgKGJhc2UgMTYpCQlET1JNQSBUaW1lICsgQWNjZXNzIEdtYkgKKwkJCQlNYWluemVyIFN0cmHfZSAzNi01MgorCQkJCUJvbm4gTm9yZHJoZWlud2VzdGZhbGVuIDUzMTc5CisJCQkJR0VSTUFOWQorCiswMC0wQi1EOCAgIChoZXgpCQlJbmR1c3RyaWFsIFNjaWVudGlmaWMgQ29ycC4KKzAwMEJEOCAgICAgKGJhc2UgMTYpCQlJbmR1c3RyaWFsIFNjaWVudGlmaWMgQ29ycC4KKwkJCQkxMDAxIE9ha2RhbGUgUm9hZAorCQkJCU9ha2RhbGUgUEEgMTUwNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUQ5ICAgKGhleCkJCUdlbmVyYWwgSHlkcm9nZW4KKzAwMEJEOSAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIEh5ZHJvZ2VuCisJCQkJMTMxMjAgVmFuaWVyIFBsYWNlCisJCQkJUmljaG1vbmQgQnJpdGlzaCBDb2x1bWJpYSBWNlYgMkoyCisJCQkJQ0FOQURBCisKKzAwLTBCLURBICAgKGhleCkJCUV5ZUNyb3NzIENvLixJbmMuCiswMDBCREEgICAgIChiYXNlIDE2KQkJRXllQ3Jvc3MgQ28uLEluYy4KKwkJCQkzRiAgSWlva2EtQnVpbGRpbmcKKwkJCQlUb2t5byBVZW5vIFRhaXRvaC1rdSAzLTQtMSAxMTAtMDAwNQorCQkJCUpBUEFOCisKKzAwLTBCLURCICAgKGhleCkJCURlbGwgRVNHIFBDQkEgVGVzdAorMDAwQkRCICAgICAoYmFzZSAxNikJCURlbGwgRVNHIFBDQkEgVGVzdAorCQkJCU9uZSBEZWxsIFdheQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLURDICAgKGhleCkJCUFLQ1AKKzAwMEJEQyAgICAgKGJhc2UgMTYpCQlBS0NQCisJCQkJNjcvMjg1ICBNdWFuZ2FrZSBWaWxsYWdlICM4CisJCQkJTW9vIDMgVmlwYXdhZGVlIFJvYWQsIFRhbWJvbCBMdWdob29rCisJCQkJQW1waHVyIE11YW5nIFBhdG9tdGhhbmVlIDEyMDAwCisJCQkJVEhBSUxBTkQKKworMDAtMEItREQgICAoaGV4KQkJVE9IT0tVIFJJQ09IIENvLiwgTFRELgorMDAwQkREICAgICAoYmFzZSAxNikJCVRPSE9LVSBSSUNPSCBDby4sIExURC4KKwkJCQkzLTEgU2hpbm1laWRvCisJCQkJU2hpYmF0YSBNaXlhZ2kgcHJlZi4gOTg5LTE2OTUKKwkJCQlKQVBBTgorCiswMC0wQi1ERSAgIChoZXgpCQlURUxESVggR21iSAorMDAwQkRFICAgICAoYmFzZSAxNikJCVRFTERJWCBHbWJICisJCQkJR3Jlbnpob2VmZXIgV2VnIDM2CisJCQkJSGVpZGVsYmVyZyAgNjkxMjMKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLURGICAgKGhleCkJCVNoZW56aGVuIFJvdXRlckQgTmV0d29ya3MgTGltaXRlZAorMDAwQkRGICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFJvdXRlckQgTmV0d29ya3MgTGltaXRlZAorCQkJCTgvRiwgQnVpbGRpbmcgQSwgVHNpbmdodWEgSGktVGVjaCBQYXJrCisJCQkJTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuICAKKwkJCQlDSElOQQorCiswMC0wQi1FMCAgIChoZXgpCQlTZXJjb05ldCBMdGQuCiswMDBCRTAgICAgIChiYXNlIDE2KQkJU2VyY29OZXQgTHRkLgorCQkJCTE2IEhhJ2hhcm9zaGV0IHN0LgorCQkJCVAuTy5CLiAyMDA5CisJCQkJUmEnYW5hbmEgIDQzNjU3CisJCQkJSVNSQUVMCisKKzAwLTBCLUUxICAgKGhleCkJCU5va2lhIE5FVCBQcm9kdWN0IE9wZXJhdGlvbnMKKzAwMEJFMSAgICAgKGJhc2UgMTYpCQlOb2tpYSBORVQgUHJvZHVjdCBPcGVyYXRpb25zCisJCQkJMzEzIEZhaXJjaGlsZCBEcml2ZQorCQkJCU1vdW50YWluIFZpZXcgQ2FsaWZvcm5pYSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRTIgICAoaGV4KQkJTHVtZW5lcmEgQ29ycG9yYXRpb24KKzAwMEJFMiAgICAgKGJhc2UgMTYpCQlMdW1lbmVyYSBDb3Jwb3JhdGlvbgorCQkJCTI1MjBCIFN0LiBMYXVyZW50IEJsdmQuCisJCQkJT3R0YXdhIE9udGFyaW8gSzFCIDRSOAorCQkJCUNBTkFEQQorCiswMC0wQi1FMyAgIChoZXgpCQlLZXkgU3RyZWFtIENvLiwgTHRkLgorMDAwQkUzICAgICAoYmFzZSAxNikJCUtleSBTdHJlYW0gQ28uLCBMdGQuCisJCQkJTm8uIDIgTmFnYW9rYSBCbGRnLiA0RiwgIDItOC01IEhhdGNob2JvcgorCQkJCUNodW8ta3UgVG9reW8gMTA0LTAwMzIKKwkJCQlKQVBBTgorCiswMC0wQi1FNCAgIChoZXgpCQlIb3NpZGVuIENvcnBvcmF0aW9uCiswMDBCRTQgICAgIChiYXNlIDE2KQkJSG9zaWRlbiBDb3Jwb3JhdGlvbgorCQkJCTQtMzMKKwkJCQlLaXRha3l1aG9qaSAxLWNob21lCisJCQkJWWFvLWNpdHkgT3Nha2EgNTgxLTAwNzEKKwkJCQlKQVBBTgorCiswMC0wQi1FNSAgIChoZXgpCQlISU1TIEtvcmVhIENvLiwgTHRkLgorMDAwQkU1ICAgICAoYmFzZSAxNikJCUhJTVMgS29yZWEgQ28uLCBMdGQuCisJCQkJNTEwNSwgSGlnaCBUZWNoIFZlbnR1cmUgSGFsbCwKKwkJCQk1My0zLCBFb2V1bi1kb25nLCBZdXNlb25nLWt1LAorCQkJCURhZWplb24gRGFlamVvbiAzMDUtODA2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLUU2ICAgKGhleCkJCURhdGVsIEVsZWN0cm9uaWNzCiswMDBCRTYgICAgIChiYXNlIDE2KQkJRGF0ZWwgRWxlY3Ryb25pY3MKKwkJCQlTdGFmZm9yZCBSb2FkCisJCQkJU3RvbmUgU3RhZmZvcmRzaGlyZSBTVDE1IDBERworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBCLUU3ICAgKGhleCkJCUNPTUZMVVggVEVDSE5PTE9HWSBJTkMuCiswMDBCRTcgICAgIChiYXNlIDE2KQkJQ09NRkxVWCBURUNITk9MT0dZIElOQy4KKwkJCQkgUm9vbSAxMzEsQmxkZy4gNTMsMTk1LTU4LFNlYy40LAorCQkJCUNodW5nIEhzaW5nIFJkLixDaHV0dW5nLAorCQkJCUhzaW5jaHUgIDMxMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItRTggICAoaGV4KQkJQU9JUAorMDAwQkU4ICAgICAoYmFzZSAxNikJCUFPSVAKKwkJCQk2IHJ1ZSBNYXJ5c2UgQkFTVElFCisJCQkJWkkgZGUgU3QgR3VlbmF1bHQKKwkJCQlDT1VSQ09VUk9OTkVTIElkZiA5MTA4MAorCQkJCUZSQU5DRQorCiswMC0wQi1FOSAgIChoZXgpCQlBY3RlbCBDb3Jwb3JhdGlvbgorMDAwQkU5ICAgICAoYmFzZSAxNikJCUFjdGVsIENvcnBvcmF0aW9uCisJCQkJMjAwIFZhbGxleSBSb2FkCisJCQkJU3VpdGUgMzAwCisJCQkJTXQuIEFybGluZ3RvbiBOSiAwNzg1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRUEgICAoaGV4KQkJWnVsdHlzIFRlY2hub2xvZ2llcworMDAwQkVBICAgICAoYmFzZSAxNikJCVp1bHR5cyBUZWNobm9sb2dpZXMKKwkJCQk3NzEgVmFxdWVyb3MgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1FQiAgIChoZXgpCQlTeXN0ZWdyYSBBRworMDAwQkVCICAgICAoYmFzZSAxNikJCVN5c3RlZ3JhIEFHCisJCQkJQnVyZ3VuZGVyc3RyYXNzZSAxNQorCQkJCUJlbGxhY2ggU08gNDUxMgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBCLUVDICAgKGhleCkJCU5JUFBPTiBFTEVDVFJJQyBJTlNUUlVNRU5ULCBJTkMuCiswMDBCRUMgICAgIChiYXNlIDE2KQkJTklQUE9OIEVMRUNUUklDIElOU1RSVU1FTlQsIElOQy4KKwkJCQkzLTU2LTIxIEhpcmFkbworCQkJCVRvdHN1a2Eta3UgWW9rb2hhbWEtc2hpIDI0NC0wODAyCisJCQkJSkFQQU4KKworMDAtMEItRUQgICAoaGV4KQkJRUxNIEluYy4KKzAwMEJFRCAgICAgKGJhc2UgMTYpCQlFTE0gSW5jLgorCQkJCTE1MjQ4IEthc2VkYXRha2VkYQorCQkJCU1pbmFtaXNhdHN1bWEgS2Fnb3NoaW1hIDg5Ny0wMDAyCisJCQkJSkFQQU4KKworMDAtMEItRUUgICAoaGV4KQkJaW5jLmpldCwgSW5jb3Jwb3JhdGVkCiswMDBCRUUgICAgIChiYXNlIDE2KQkJaW5jLmpldCwgSW5jb3Jwb3JhdGVkCisJCQkJT25lIFdpbm5lbmRlbiBSb2FkCisJCQkJTm9yd2ljaCBDVCAwNjM2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRUYgICAoaGV4KQkJQ29kZSBDb3Jwb3JhdGlvbgorMDAwQkVGICAgICAoYmFzZSAxNikJCUNvZGUgQ29ycG9yYXRpb24KKwkJCQkxMTgxNCBTLiBFbGVjdGlvbiBSZC4sIFN0ZSAyMDAKKwkJCQlEcmFwZXIgVXRhaCA4NDAyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRjAgICAoaGV4KQkJTW9URVggUHJvZHVjdHMgQ28uLCBMdGQuCiswMDBCRjAgICAgIChiYXNlIDE2KQkJTW9URVggUHJvZHVjdHMgQ28uLCBMdGQuCisJCQkJQy5QLk8uQm94IDY5MTIKKwkJCQlZZSBLd2FuLWRvbmcgMTktMQorCQkJCUNob25nLWd1IFNlb3VsIDgyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLUYxICAgKGhleCkJCUxBUCBMYXNlciBBcHBsaWthdGlvbnMKKzAwMEJGMSAgICAgKGJhc2UgMTYpCQlMQVAgTGFzZXIgQXBwbGlrYXRpb25zCisJCQkJWmVwcGVsaW5zdHJhc3NlIDIzCisJCQkJTHVlbmVidXJnIE5pZWRlcnNhY2hzZW4gMjEzMzcKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLUYyICAgKGhleCkJCUNoaWgtS2FuIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDBCRjIgICAgIChiYXNlIDE2KQkJQ2hpaC1LYW4gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gMjQtMSwgUGVpIFNoaWggQ2hvdSwgTWluZyBIbyBWaWxsLgorCQkJCVNoYW4gU3VuIEhzaWFuZyBUYWluYW4gSHNpZW4gMTgwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi1GMyAgIChoZXgpCQlCQUUgU1lTVEVNUworMDAwQkYzICAgICAoYmFzZSAxNikJCUJBRSBTWVNURU1TCisJCQkJNjUwMCBUcmFjb3IgTGFuZQorCQkJCUF1c3RpbiBUZXhhcyA3ODcyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRjQgICAoaGV4KQkJUFJJVkFURQorMDAwQkY0ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wQi1GNSAgIChoZXgpCQlTaGFuZ2hhaSBTaWJvIFRlbGVjb20gVGVjaG5vbG9neSBDby4sTHRkCiswMDBCRjUgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgU2libyBUZWxlY29tIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCUZsb29yIDYgQnVpbGRpbmcgMTgsMzAwIFRpYW5saW4gUmQuCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTBCLUY2ICAgKGhleCkJCU5pdGdlbiBDby4sIEx0ZAorMDAwQkY2ICAgICAoYmFzZSAxNikJCU5pdGdlbiBDby4sIEx0ZAorCQkJCTR0aCBGTC4gMTMzNy0zMSBTZW9jaG8tZG9uZywgU2VvY2hvLWt1CisJCQkJU2VvdWwgIDEzNy04NjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItRjcgICAoaGV4KQkJTklERUsgQ08uLExURAorMDAwQkY3ICAgICAoYmFzZSAxNikJCU5JREVLIENPLixMVEQKKwkJCQkzNC0xNCBNYWVoYW1hCisJCQkJSGlyb2lzaGktY2hvCisJCQkJR2FtYWdvcmkgQWljaCA0NDMtMDAzOAorCQkJCUpBUEFOCisKKzAwLTBCLUY4ICAgKGhleCkJCUluZmluZXJhCiswMDBCRjggICAgIChiYXNlIDE2KQkJSW5maW5lcmEKKwkJCQkxMzIyIEJvcmRlYXV4IERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1GOSAgIChoZXgpCQlHZW1zdG9uZSBjb21tdW5pY2F0aW9ucywgSW5jLgorMDAwQkY5ICAgICAoYmFzZSAxNikJCUdlbXN0b25lIGNvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNkZsLiwgTm8uIDEwMiwgIEhlbmd5YW5nIFJkLgorCQkJCVRhaXBlaSAgMTAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi1GQSAgIChoZXgpCQlFWEVNWVMgU1JMCiswMDBCRkEgICAgIChiYXNlIDE2KQkJRVhFTVlTIFNSTAorCQkJCUxPWU9MQSA2ODAKKwkJCQlDQVBJVEFMIEZFREVSQUwgQlMgQVMgQzE0MTQKKwkJCQlBUkdFTlRJTkEKKworMDAtMEItRkIgICAoaGV4KQkJRC1ORVQgSW50ZXJuYXRpb25hbCBDb3Jwb3JhdGlvbgorMDAwQkZCICAgICAoYmFzZSAxNikJCUQtTkVUIEludGVybmF0aW9uYWwgQ29ycG9yYXRpb24KKwkJCQkxNSwgV3UtQ2h1YW4gNXRoIFJvYWQsIFd1LUt1IEluZHVzdHJpYWwKKwkJCQlUYWlwZWkgIEhzaWVoICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLUZDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEJGQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUZEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEJGRCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUZFICAgKGhleCkJCUNBU1RFTCBCcm9hZGJhbmQgTGltaXRlZAorMDAwQkZFICAgICAoYmFzZSAxNikJCUNBU1RFTCBCcm9hZGJhbmQgTGltaXRlZAorCQkJCTkvRi4sIFN1aSBZaW5nIEluZHVzdHJpYWwgQnVpbGRpbmcuLAorCQkJCVRva3dhd2FuIEtvd2xvb24gMTUwCisJCQkJSE9ORyBLT05HCisKKzAwLTBCLUZGICAgKGhleCkJCUJlcmtlbGV5IENhbWVyYSBFbmdpbmVlcmluZworMDAwQkZGICAgICAoYmFzZSAxNikJCUJlcmtlbGV5IENhbWVyYSBFbmdpbmVlcmluZworCQkJCTEyNyBOYXRpb25hbCBTdHJlZXQKKwkJCQlTYW50YSBDcnV6IENBIDk1MDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0wMCAgIChoZXgpCQlCRUIgSW5kdXN0cmllLUVsZWt0cm9uaWsgQUcKKzAwMEMwMCAgICAgKGJhc2UgMTYpCQlCRUIgSW5kdXN0cmllLUVsZWt0cm9uaWsgQUcKKwkJCQlQcm9ncmVzc2FzdHJhc3NlIDMxCisJCQkJT2JlcmJ1cmcgQkUgMzQxNAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBDLTAxICAgKGhleCkJCUFiYXRyb24gQUcKKzAwMEMwMSAgICAgKGJhc2UgMTYpCQlBYmF0cm9uIEFHCisJCQkJTGV0dGVuc3RyYXNzZSA5CisJCQkJUm90a3JldXogIENILTYzNDMKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wQy0wMiAgIChoZXgpCQlBQkIgT3kKKzAwMEMwMiAgICAgKGJhc2UgMTYpCQlBQkIgT3kKKwkJCQlQLk8uQm94IDg5CisJCQkJVHVya3UgIEZJTi0yMDUyMQorCQkJCUZJTkxBTkQKKworMDAtMEMtMDMgICAoaGV4KQkJSERNSSBMaWNlbnNpbmcsIExMQworMDAwQzAzICAgICAoYmFzZSAxNikJCUhETUkgTGljZW5zaW5nLCBMTEMKKwkJCQkxMDYwIEVhc3QgQXJxdWVzIEF2ZS4KKwkJCQlTdWl0ZSAxMDAKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTA0ICAgKGhleCkJCVRlY25vdmEKKzAwMEMwNCAgICAgKGJhc2UgMTYpCQlUZWNub3ZhCisJCQkJMTQ4NiBTdC4gUGF1bCBBdmUuCisJCQkJR3VybmVlIElsbGlub2lzIDYwMDMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0wNSAgIChoZXgpCQlSUEEgUmVzZXJjaCBDby4sIEx0ZC4KKzAwMEMwNSAgICAgKGJhc2UgMTYpCQlSUEEgUmVzZXJjaCBDby4sIEx0ZC4KKwkJCQk0RiwgOTAtNywgWWFuZ2phZS1Eb25nLCBTZW9jaG8tS3UKKwkJCQlTZW91bCwgS29yZWEKKwkJCQlTZW91bCAgMTM3LTEzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy0wNiAgIChoZXgpCQlOaXh2dWUgU3lzdGVtcyAgUHRlIEx0ZAorMDAwQzA2ICAgICAoYmFzZSAxNikJCU5peHZ1ZSBTeXN0ZW1zICBQdGUgTHRkCisJCQkJMzAgTG95YW5nIFdheSwgIzA3LTAyCisJCQkJU2luZ2Fwb3JlIFNpbmdhcG9yZSBTNTA4NzY5CisJCQkJU0lOR0FQT1JFCisKKzAwLTBDLTA3ICAgKGhleCkJCUlmdGVzdCBBRworMDAwQzA3ICAgICAoYmFzZSAxNikJCUlmdGVzdCBBRworCQkJCVNjaHdpbW1iYWRzdHJhc3NlIDQzCisJCQkJV2V0dGluZ2VuIEFHIDU0MzAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wQy0wOCAgIChoZXgpCQlIVU1FWCBUZWNobm9sb2dpZXMgQ29ycC4KKzAwMEMwOCAgICAgKGJhc2UgMTYpCQlIVU1FWCBUZWNobm9sb2dpZXMgQ29ycC4KKwkJCQk1RiwgTm8uNSwgTGFuZSA0NCwgU3p1IFdlaSBSZC4gVGFhbiBUYWlwCisJCQkJVGFpcGVpICAxMDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTA5ICAgKGhleCkJCUhpdGFjaGkgSUUgU3lzdGVtcyBDby4sIEx0ZAorMDAwQzA5ICAgICAoYmFzZSAxNikJCUhpdGFjaGkgSUUgU3lzdGVtcyBDby4sIEx0ZAorCQkJCVNhaXdhaS1jaG8gMTIwLTEsSW5hemF3YS1zaGkKKwkJCQlBaWNoaSA0OTItODYyMixKYXBhbgorCQkJCUluYXphd2Etc2hpIEFpY2hpIDQ5Mi04NjIyCisJCQkJSkFQQU4KKworMDAtMEMtMEEgICAoaGV4KQkJR3Vhbmdkb25nIFByb3ZpbmNlIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBSZXNlYXJjaCBJbnN0aXR1dGUKKzAwMEMwQSAgICAgKGJhc2UgMTYpCQlHdWFuZ2RvbmcgUHJvdmluY2UgRWxlY3Ryb25pYyBUZWNobm9sb2d5IFJlc2VhcmNoIEluc3RpdHV0ZQorCQkJCUVsZWN0cm9uaWMgVGVjaG5vbG9neSBCdWlsZGluZyxOTy42MS02NSwKKwkJCQlXZXN0IFpob25nc2hhbiBBdmVudWUsVGlhbmhlIERpc3RyaWN0CisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2MzAKKwkJCQlDSElOQQorCiswMC0wQy0wQiAgIChoZXgpCQlCcm9hZGJ1cyBUZWNobm9sb2dpZXMKKzAwMEMwQiAgICAgKGJhc2UgMTYpCQlCcm9hZGJ1cyBUZWNobm9sb2dpZXMKKwkJCQk4MCBDZW50cmFsIFN0cmVldAorCQkJCUJveGJvcm91Z2ggTWFzc2FjaHVzZXR0cyAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMEMgICAoaGV4KQkJQVBQUk8gVEVDSE5PTE9HWSBJTkMuCiswMDBDMEMgICAgIChiYXNlIDE2KQkJQVBQUk8gVEVDSE5PTE9HWSBJTkMuCisJCQkJMTNGLCBOby4gNjYgQ2h1bmctQ2hlbmcgUmQsCisJCQkJSHNpbi1DaHVhbmcgVGFpcGVpIDI0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtMEQgICAoaGV4KQkJQ29tbXVuaWNhdGlvbnMgJiBQb3dlciBJbmR1c3RyaWVzIC8gU2F0Y29tIERpdmlzaW9uCiswMDBDMEQgICAgIChiYXNlIDE2KQkJQ29tbXVuaWNhdGlvbnMgJiBQb3dlciBJbmR1c3RyaWVzIC8gU2F0Y29tIERpdmlzaW9uCisJCQkJODExIEhhbnNlbiBXYXkgTVMgUy02MDAKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTBFICAgKGhleCkJCVh0cmVtZVNwZWN0cnVtLCBJbmMuCiswMDBDMEUgICAgIChiYXNlIDE2KQkJWHRyZW1lU3BlY3RydW0sIEluYy4KKwkJCQk4MTMzIExlZXNidXJnIFBpa2UKKwkJCQlWaWVubmEgVkEgMjIxODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTBGICAgKGhleCkJCVRlY2huby1PbmUgQ28uLCBMdGQKKzAwMEMwRiAgICAgKGJhc2UgMTYpCQlUZWNobm8tT25lIENvLiwgTHRkCisJCQkJOS0xNy0xIEhpZ2FzaGkgU29ub2RhCisJCQkJQW1hZ2FzYWtpIEh5b2dvIDY2MS0wOTUzCisJCQkJSkFQQU4KKworMDAtMEMtMTAgICAoaGV4KQkJUE5JIENvcnBvcmF0aW9uCiswMDBDMTAgICAgIChiYXNlIDE2KQkJUE5JIENvcnBvcmF0aW9uCisJCQkJNTQ2NCBTa3lsYW5lIEJsdmQgI0EKKwkJCQlTYW50YSBSb3NhIENBIDk1NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0xMSAgIChoZXgpCQlOSVBQT04gREVNUEEgQ08uLExURC4KKzAwMEMxMSAgICAgKGJhc2UgMTYpCQlOSVBQT04gREVNUEEgQ08uLExURC4KKwkJCQkxLTQtOAorCQkJCWthbWVub2tvdQorCQkJCWtha2VnYXdhIGNpdHkgc2hpenVva2EgcHJlZi4gNDM2LTAwMjgKKwkJCQlKQVBBTgorCiswMC0wQy0xMiAgIChoZXgpCQlNaWNyby1PcHRyb25pYy1NZXNzdGVjaG5payBHbWJICiswMDBDMTIgICAgIChiYXNlIDE2KQkJTWljcm8tT3B0cm9uaWMtTWVzc3RlY2huaWsgR21iSAorCQkJCUxlc3NpbmdzdHJhc3NlIDE0CisJCQkJTGFuZ2VicnVlY2sgU2F4b255IEQtMDE0NjUKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLTEzICAgKGhleCkJCU1lZGlhUQorMDAwQzEzICAgICAoYmFzZSAxNikJCU1lZGlhUQorCQkJCTI5NzUgU2FuIFlzaWRybyBXYXkKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMTQgICAoaGV4KQkJRGlhZ25vc3RpYyBJbnN0cnVtZW50cywgSW5jLgorMDAwQzE0ICAgICAoYmFzZSAxNikJCURpYWdub3N0aWMgSW5zdHJ1bWVudHMsIEluYy4KKwkJCQk2NTQwIEJ1cnJvdWdocworCQkJCVN0ZXJsaW5nIEhlaWdodHMgTUkgNDgzMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTE1ICAgKGhleCkJCUN5YmVyUG93ZXIgU3lzdGVtcywgSW5jLgorMDAwQzE1ICAgICAoYmFzZSAxNikJCUN5YmVyUG93ZXIgU3lzdGVtcywgSW5jLgorCQkJCTZGLCBOby4gMzIsIFNlYy4gMSwgQ2hlbmdnb25nIFJkLgorCQkJCU5hbmhhbmcgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtMTYgICAoaGV4KQkJQ29uY29yZGUgTWljcm9zeXN0ZW1zIEluYy4KKzAwMEMxNiAgICAgKGJhc2UgMTYpCQlDb25jb3JkZSBNaWNyb3N5c3RlbXMgSW5jLgorCQkJCTEwNDI3IENvZ2RpbGwgUm9hZCwgU3VpdGUgNTAwCisJCQkJS25veHZpbGxlIFROIDM3OTMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0xNyAgIChoZXgpCQlBSkEgVmlkZW8gU3lzdGVtcyBJbmMKKzAwMEMxNyAgICAgKGJhc2UgMTYpCQlBSkEgVmlkZW8gU3lzdGVtcyBJbmMKKwkJCQk0NDMgQ3Jvd24gUG9pbnQgQ2lyY2xlCisJCQkJR3Jhc3MgVmFsbGV5IENhbGlmb3JuaWEgOTU5NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTE4ICAgKGhleCkJCVplbmlzdSBLZWlzb2t1IEluYy4KKzAwMEMxOCAgICAgKGJhc2UgMTYpCQlaZW5pc3UgS2Vpc29rdSBJbmMuCisJCQkJMi0xMy0zNworCQkJCUhvbm1hY2hpCisJCQkJRnVjaHUtc2hpIFRva3lvIDE4My0wMDI3CisJCQkJSkFQQU4KKworMDAtMEMtMTkgICAoaGV4KQkJVGVsaW8gQ29tbXVuaWNhdGlvbnMgR21iSAorMDAwQzE5ICAgICAoYmFzZSAxNikJCVRlbGlvIENvbW11bmljYXRpb25zIEdtYkgKKwkJCQlFbGJjaGF1c3NlZSAxCisJCQkJSGFtYnVyZyAgMjI3NjUKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLTFBICAgKGhleCkJCVF1ZXN0IFRlY2huaWNhbCBTb2x1dGlvbnMgSW5jLgorMDAwQzFBICAgICAoYmFzZSAxNikJCVF1ZXN0IFRlY2huaWNhbCBTb2x1dGlvbnMgSW5jLgorCQkJCTQxMTAgTW91cm5pbmcgRG92ZSBDcnQuCisJCQkJTWVsYm91cm5lIEZMIDMyOTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0xQiAgIChoZXgpCQlPUkFDT00gQ28sIEx0ZC4KKzAwMEMxQiAgICAgKGJhc2UgMTYpCQlPUkFDT00gQ28sIEx0ZC4KKwkJCQkzcmQgRmwsIEEtU3VuZyBCbGRnLCA5OTktMworCQkJCURlYWNoaS1Eb25nLCBLYW5nbmFtLUd1CisJCQkJU2VvdWwgIDEzNS0yODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtMUMgICAoaGV4KQkJTWljcm9XZWIgQ28uLCBMdGQuCiswMDBDMUMgICAgIChiYXNlIDE2KQkJTWljcm9XZWIgQ28uLCBMdGQuCisJCQkJNDAzIFQvUy9TL0MsIDIzLTE0IEphbmctZG9uZywgWXVzb25nLWd1LAorCQkJCURhZWplb24gQ2hvb25nQ2h1bmdEbyAzMDUtMzQzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTFEICAgKGhleCkJCU1ldHRsZXIgJiBGdWNocyBBRworMDAwQzFEICAgICAoYmFzZSAxNikJCU1ldHRsZXIgJiBGdWNocyBBRworCQkJCVF1ZXJzdHJhc3NlIDE3CisJCQkJQ0gtODk1MSBGYWhyd2VpZCAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wQy0xRSAgIChoZXgpCQlHbG9iYWwgQ2FjaGUKKzAwMEMxRSAgICAgKGJhc2UgMTYpCQlHbG9iYWwgQ2FjaGUKKwkJCQkxNjAgRWFzdCBDYWxpZm9ybmlhIFN0cmVldAorCQkJCVBPQiAxNjU5CisJCQkJSmFja3NvbnZpbGxlIE9SIDk3NTMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0xRiAgIChoZXgpCQlHbGltbWVyZ2xhc3MgTmV0d29ya3MKKzAwMEMxRiAgICAgKGJhc2UgMTYpCQlHbGltbWVyZ2xhc3MgTmV0d29ya3MKKwkJCQkyNjE0MiBFZGVuIExhbmRpbmcgUm9hZAorCQkJCUhheXdhcmQgQ2FsaWZvcm5pYSA5NDU0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMjAgICAoaGV4KQkJRmkgV0luLCBJbmMuCiswMDBDMjAgICAgIChiYXNlIDE2KQkJRmkgV0luLCBJbmMuCisJCQkJOEYsIE5vLiAxMCwgUHJvc3Blcml0eSBSZC4gMSwKKwkJCQlTY2llbmNlIEJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW4gQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTIxICAgKGhleCkJCUZhY3VsdHkgb2YgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSwgS2VpbyBVbml2ZXJzaXR5CiswMDBDMjEgICAgIChiYXNlIDE2KQkJRmFjdWx0eSBvZiBTY2llbmNlIGFuZCBUZWNobm9sb2d5LCBLZWlvIFVuaXZlcnNpdHkKKwkJCQkzLTE0LTEgSGl5b3NoaSwgS29ob2t1LWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjIzLTg1MjIKKwkJCQlKQVBBTgorCiswMC0wQy0yMiAgIChoZXgpCQlEb3VibGUgRCBFbGVjdHJvbmljcyBMdGQKKzAwMEMyMiAgICAgKGJhc2UgMTYpCQlEb3VibGUgRCBFbGVjdHJvbmljcyBMdGQKKwkJCQlVbml0IDYsIFJvYmlucyBXaGFyZgorCQkJCUdyb3ZlIFJvYWQKKwkJCQlOb3J0aGZsZWV0IEtlbnQgREExMSA5QVgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQy0yMyAgIChoZXgpCQlCZWlqaW5nIExhbmNodWFuIFRlY2guIENvLiwgTHRkLgorMDAwQzIzICAgICAoYmFzZSAxNikJCUJlaWppbmcgTGFuY2h1YW4gVGVjaC4gQ28uLCBMdGQuCisJCQkJUm0yMjAsTm8uMzAgU2hhbmd5dWFuY3VuLAorCQkJCUdhb2xpYW5ncWlhb2x1LEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwNDQKKwkJCQlDSElOQQorCiswMC0wQy0yNCAgIChoZXgpCQlBTkFUT1IKKzAwMEMyNCAgICAgKGJhc2UgMTYpCQlBTkFUT1IKKwkJCQk0NCwgcnVlIGQnRXN0aWVubmUgZCdPcnZlcworCQkJCXNhcnRyb3V2aWxsZSB5dmVsaW5lcyA3ODUwMAorCQkJCUZSQU5DRQorCiswMC0wQy0yNSAgIChoZXgpCQlBbGxpZWQgVGVsZXN5biBOZXR3b3JrcworMDAwQzI1ICAgICAoYmFzZSAxNikJCUFsbGllZCBUZWxlc3luIE5ldHdvcmtzCisJCQkJU3VpdGUgNDUwCisJCQkJOTIwIE1haW4gQ2FtcHVzIERyaXZlCisJCQkJUmFsZWlnaCBOQyAyNzYwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMjYgICAoaGV4KQkJV2VpbnRlayBMYWJzLiBJbmMuCiswMDBDMjYgICAgIChiYXNlIDE2KQkJV2VpbnRlayBMYWJzLiBJbmMuCisJCQkJM0YsIE5vLjkxMCwgQ2h1bmcgQ2hlbmcgUmQuCisJCQkJQ2h1bmcgSG8gY2l0eSBUYWlwZWkgSHNpZW4gMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy0yNyAgIChoZXgpCQlTYW1teSBDb3Jwb3JhdGlvbgorMDAwQzI3ICAgICAoYmFzZSAxNikJCVNhbW15IENvcnBvcmF0aW9uCisJCQkJU1VOIFNISU5FNjAgNDVGLDMtMS0xLEhJR0FTSEktSUtFQlVLVVJPCisJCQkJVE9TSElNQS1LVSBUT0tZTyAxNzAtNjA0NQorCQkJCUpBUEFOCisKKzAwLTBDLTI4ICAgKGhleCkJCVJJRkFUUk9OCiswMDBDMjggICAgIChiYXNlIDE2KQkJUklGQVRST04KKwkJCQk5dGggRkwsIFNISU5UQUVZQU5HIEJMREcKKwkJCQk3MzYtOCwgQkFOUE8tRE9ORworCQkJCVNFT1VMIFNFT0NITy1HVSAxMzctMDQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTI5ICAgKGhleCkJCVZNd2FyZSwgSW5jLgorMDAwQzI5ICAgICAoYmFzZSAxNikJCVZNd2FyZSwgSW5jLgorCQkJCTM0MDEgSGlsbHZpZXcgQXZlbnVlCisJCQkJUGFsbyBBbHRvIENBIDk0MzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0yQSAgIChoZXgpCQlPQ1RURUwgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKzAwMEMyQSAgICAgKGJhc2UgMTYpCQlPQ1RURUwgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKwkJCQk3Ri0xLCBOby4zMDAsIERhZHVlbiAxMHRoIFN0LgorCQkJCVRhaWNodW5nIENpdHkgIDQwOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtMkIgICAoaGV4KQkJRUxJQVMgVGVjaG5vbG9neSwgSW5jLgorMDAwQzJCICAgICAoYmFzZSAxNikJCUVMSUFTIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkzRiwgMTAxNSwgWXVuZy1BbiBSb2FkLAorCQkJCVRhb3l1YW4gQ2l0eSBUYW95dWFuIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtMkMgICAoaGV4KQkJRW53aXNlciBJbmMuCiswMDBDMkMgICAgIChiYXNlIDE2KQkJRW53aXNlciBJbmMuCisJCQkJNEYsIENoZW9uZ3Nlb2sgQi9ECisJCQkJMTM1LTExLCBOb25oeWVvbi1kb25nLCBLYW5nbmFtLWt1CisJCQkJU2VvdWwgU2VvdWwgMTM1LTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy0yRCAgIChoZXgpCQlGdWxsV2F2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwQzJEICAgICAoYmFzZSAxNikJCUZ1bGxXYXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJN0YtNiwgTm8uMjYsIFRhaVl1YW4gU3QuLAorCQkJCUp1QmVpIEhzaW4gQ2h1IDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtMkUgICAoaGV4KQkJT3BlbmV0IGluZm9ybWF0aW9uIHRlY2hub2xvZ3koc2hlbnpoZW4pIENvLiwgTHRkLgorMDAwQzJFICAgICAoYmFzZSAxNikJCU9wZW5ldCBpbmZvcm1hdGlvbiB0ZWNobm9sb2d5KHNoZW56aGVuKSBDby4sIEx0ZC4KKwkJCQkyL0YsQSB0b3dlcixpbnRlcm5hdGlvbmFsIHRlY2gtaW5ub3ZhdGlvCisJCQkJaGlnaC10ZWNoIGluZHVzdHJpYWwgcGFyayAsc2hlbnpoZW4sIFAuUgorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0wQy0yRiAgIChoZXgpCQlTZW9yaW1UZWNobm9sb2d5IENvLixMdGQuCiswMDBDMkYgICAgIChiYXNlIDE2KQkJU2VvcmltVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTJGIERJUExPTUFUSUMgQ0VOVEVSIEIvRCAxMzc2LTEgU0VPQ0hPMi0KKwkJCQlTRU9VTCAgMTM3LTA3MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy0zMCAgIChoZXgpCQlDaXNjbworMDAwQzMwICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTMxICAgKGhleCkJCUNpc2NvCiswMDBDMzEgICAgIChiYXNlIDE2KQkJQ2lzY28KKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDYSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMzIgICAoaGV4KQkJQXZpb25pYyBEZXNpZ24gRGV2ZWxvcG1lbnQgR21iSAorMDAwQzMyICAgICAoYmFzZSAxNikJCUF2aW9uaWMgRGVzaWduIERldmVsb3BtZW50IEdtYkgKKwkJCQlTdGhhbWVyc3RyYXNzZSAyNGEKKwkJCQlIYW1idXJnICAyMjM5NworCQkJCUdFUk1BTlkKKworMDAtMEMtMzMgICAoaGV4KQkJQ29tcHVjYXNlIEVudGVycHJpc2UgQ28uIEx0ZC4KKzAwMEMzMyAgICAgKGJhc2UgMTYpCQlDb21wdWNhc2UgRW50ZXJwcmlzZSBDby4gTHRkLgorCQkJCTIyNSBMYW5lIDU0LCBBbiBIbyBSb2FkLCBTZWN0aW9uIDJuZC4KKwkJCQlUYWluYW4gQ2l0eSAgNzA5NDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTM0ICAgKGhleCkJCVZpeGVuIENvLiwgTHRkLgorMDAwQzM0ICAgICAoYmFzZSAxNikJCVZpeGVuIENvLiwgTHRkLgorCQkJCTUtMTctMyBIaWdhc2hpdG9rb3JvemF3YQorCQkJCVRva29yb3phd2EgU2FpdGFtYSAzNTktMDAyMQorCQkJCUpBUEFOCisKKzAwLTBDLTM1ICAgKGhleCkJCUthVm8gRGVudGFsIEdtYkggJiBDby4gS0cKKzAwMEMzNSAgICAgKGJhc2UgMTYpCQlLYVZvIERlbnRhbCBHbWJIICYgQ28uIEtHCisJCQkJQmlzbWFya3JpbmcgMzkKKwkJCQlCaWJlcmFjaC9SaXNzIEJhZGVuLVd1ZXJ0dGVtYmVyZyA4ODQwMAorCQkJCUdFUk1BTlkKKworMDAtMEMtMzYgICAoaGV4KQkJU0hBUlAgVEFLQVlBIEVMRUNUUk9OSUNTIElORFVTVFJZIENPLixMVEQuCiswMDBDMzYgICAgIChiYXNlIDE2KQkJU0hBUlAgVEFLQVlBIEVMRUNUUk9OSUNTIElORFVTVFJZIENPLixMVEQuCisJCQkJMzEyMS0xIFNhdG9taSBTYXRvc2hvLWNobworCQkJCUFzYWt1Y2hpLWd1biBPa2F5YW1hIDcxOS0wMzAxCisJCQkJSkFQQU4KKworMDAtMEMtMzcgICAoaGV4KQkJR2VvbWF0aW9uLCBJbmMuCiswMDBDMzcgICAgIChiYXNlIDE2KQkJR2VvbWF0aW9uLCBJbmMuCisJCQkJMjUxODggR2VuZXNlZSBUcmFpbCBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJR29sZGVuIENPIDgwNDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0zOCAgIChoZXgpCQlUZWxjb0JyaWRnZXMgSW5jLgorMDAwQzM4ICAgICAoYmFzZSAxNikJCVRlbGNvQnJpZGdlcyBJbmMuCisJCQkJNTg2IER1IENoZW5hbAorCQkJCVJlcGVudGlnbnkgUXVlYmVjIEo2QSA3QzUKKwkJCQlDQU5BREEKKworMDAtMEMtMzkgICAoaGV4KQkJU2VudGluZWwgV2lyZWxlc3MgSW5jLgorMDAwQzM5ICAgICAoYmFzZSAxNikJCVNlbnRpbmVsIFdpcmVsZXNzIEluYy4KKwkJCQk0MzkgUy4gVW5pb24gU3QuCisJCQkJU291dGggTGF3cmVuY2UgTUEgMDE4NDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTNBICAgKGhleCkJCU94YW5jZQorMDAwQzNBICAgICAoYmFzZSAxNikJCU94YW5jZQorCQkJCTc1LTg1IHJ1ZSBSaWNoZWxpZXUKKwkJCQlsZXMgTHVjcyBzdXIgQm91bG9nbmUgIDg1MTcwCisJCQkJRlJBTkNFCisKKzAwLTBDLTNCICAgKGhleCkJCU9yaW9uIEVsZWN0cmljIENvLiwgTHRkLgorMDAwQzNCICAgICAoYmFzZSAxNikJCU9yaW9uIEVsZWN0cmljIENvLiwgTHRkLgorCQkJCTQxLTEsIEllaGlzYS1jaG8KKwkJCQlUYWtlZnUtc2hpIEZ1a3VpIDkxNS04NTU1CisJCQkJSkFQQU4KKworMDAtMEMtM0MgICAoaGV4KQkJTWVkaWFDaG9ydXMsIEluYy4KKzAwMEMzQyAgICAgKGJhc2UgMTYpCQlNZWRpYUNob3J1cywgSW5jLgorCQkJCSMyMDUsIEVUUkkgVEJJIDIgQ2VudGVyCisJCQkJVWV1bi1Eb25nLCBZdXNvbmctR3UKKwkJCQlEYWVqb24gREogMzA1LTMzMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy0zRCAgIChoZXgpCQlHbHN5c3RlY2ggQ28uLCBMdGQuCiswMDBDM0QgICAgIChiYXNlIDE2KQkJR2xzeXN0ZWNoIENvLiwgTHRkLgorCQkJCVNvbmcgQm8gQi9EIDNGCisJCQkJMjEyLTEwLCBLdW5nLURvbmcsIEt1cm8gR3UKKwkJCQlTZW91bCAgMTUyLTg4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy0zRSAgIChoZXgpCQlDcmVzdCBBdWRpbworMDAwQzNFICAgICAoYmFzZSAxNikJCUNyZXN0IEF1ZGlvCisJCQkJMTYtMDAgUG9sbGl0dCBEcml2ZQorCQkJCUZhaXIgTGF3biBOSiAwNzQxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtM0YgICAoaGV4KQkJQ29nZW50IERlZmVuY2UgJiBTZWN1cml0eSBOZXR3b3JrcywKKzAwMEMzRiAgICAgKGJhc2UgMTYpCQlDb2dlbnQgRGVmZW5jZSAmIFNlY3VyaXR5IE5ldHdvcmtzLAorCQkJCU1lYWRvd3MgUm9hZCwKKwkJCQlRdWVlbnN3YXkgTWVhZG93cyBJbmQgRXN0YXRlLAorCQkJCU5ld3BvcnQsIFNvdXRoIFdhbGVzLCBOUDE5IDRTUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBDLTQwICAgKGhleCkJCUFsdGVjaCBDb250cm9scworMDAwQzQwICAgICAoYmFzZSAxNikJCUFsdGVjaCBDb250cm9scworCQkJCTE1NDUgSW5kdXN0aWFsIERyaXZlCisJCQkJTWlzc291cmkgQ2l0eSBUZXhhcyA3NzQ4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNDEgICAoaGV4KQkJQ2lzY28tTGlua3N5cworMDAwQzQxICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMKKwkJCQkxMjEgVGhlb3J5IERyLgorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNDIgICAoaGV4KQkJUm91dGVyYm9hcmQuY29tCiswMDBDNDIgICAgIChiYXNlIDE2KQkJUm91dGVyYm9hcmQuY29tCisJCQkJUGVybmF2YXMgNDYKKwkJCQlSaWdhICBMVi0xMDA5CisJCQkJTEFUVklBCisKKzAwLTBDLTQzICAgKGhleCkJCVJhbGluayBUZWNobm9sb2d5LCBDb3JwLgorMDAwQzQzICAgICAoYmFzZSAxNikJCVJhbGluayBUZWNobm9sb2d5LCBDb3JwLgorCQkJCTRGLCBOby4yLCBUZWNobm9sb2d5IDV0aCBSb2FkLAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW4tQ2h1ICAyMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTQ0ICAgKGhleCkJCUF1dG9tYXRlZCBJbnRlcmZhY2VzLCBJbmMuCiswMDBDNDQgICAgIChiYXNlIDE2KQkJQXV0b21hdGVkIEludGVyZmFjZXMsIEluYy4KKwkJCQkxMjAgQ29uZmVkZXJhdGUgTGFuZQorCQkJCUdyZWVyIFNvdXRoIENhcm9saW5hIDI5NjUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy00NSAgIChoZXgpCQlBbmltYXRpb24gVGVjaG5vbG9naWVzIEluYy4KKzAwMEM0NSAgICAgKGJhc2UgMTYpCQlBbmltYXRpb24gVGVjaG5vbG9naWVzIEluYy4KKwkJCQk4RixOby4xMzgsTGFuZSAyMzUsUGFvY2hpYW8gUm9hZCwKKwkJCQlIc2luIFRpZW4KKwkJCQlUYWlwZWkgSHNpZW4gIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtNDYgICAoaGV4KQkJQWxsaWVkIFRlbGVzeW4gSW5jLgorMDAwQzQ2ICAgICAoYmFzZSAxNikJCUFsbGllZCBUZWxlc3luIEluYy4KKwkJCQk5NjAgU3Rld2FydCBEcml2ZSwgU3VpdGUgQgorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy00NyAgIChoZXgpCQlTSyBUZWxldGVjaChSJkQgUGxhbm5pbmcgVGVhbSkKKzAwMEM0NyAgICAgKGJhc2UgMTYpCQlTSyBUZWxldGVjaChSJkQgUGxhbm5pbmcgVGVhbSkKKwkJCQkyMXRoIEZMIFN0YXJ0b3dlciA3MzcsIFllb2tzYW0tZG9uZworCQkJCUthbmduYW0tS3UKKwkJCQlTZW91bCAgMTM1LTk4NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy00OCAgIChoZXgpCQlRb1N0ZWsgQ29ycG9yYXRpb24KKzAwMEM0OCAgICAgKGJhc2UgMTYpCQlRb1N0ZWsgQ29ycG9yYXRpb24KKwkJCQk3RiwgMjIsIFRhaXl1ZW4gU3RyZWV0CisJCQkJQ2h1cGVpIEhzaW5jaHUgSHNpZW4gMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy00OSAgIChoZXgpCQlEYW5nYWFyZCBUZWxlY29tIFJUQyBEaXZpc2lvbiBBL1MKKzAwMEM0OSAgICAgKGJhc2UgMTYpCQlEYW5nYWFyZCBUZWxlY29tIFJUQyBEaXZpc2lvbiBBL1MKKwkJCQlJbmR1c3RyaXZlaiAxCisJCQkJREsgMjYxNTQ1NTMKKwkJCQlQYWRib3JnICBESy02MzMwCisJCQkJREVOTUFSSworCiswMC0wQy00QSAgIChoZXgpCQlDeWdudXMgTWljcm9zeXN0ZW1zIChQKSBMaW1pdGVkCiswMDBDNEEgICAgIChiYXNlIDE2KQkJQ3lnbnVzIE1pY3Jvc3lzdGVtcyAoUCkgTGltaXRlZAorCQkJCTkzLCBQaGFzZSBJSSwKKwkJCQlJREEsIENoZXJsYXBhbGx5CisJCQkJSHlkZXJhYmFkIEFuZGhyYSBQcmFkZXNoIDUwMDA1MQorCQkJCUlORElBCisKKzAwLTBDLTRCICAgKGhleCkJCUNoZW9wcyBFbGVrdHJvbmlrCiswMDBDNEIgICAgIChiYXNlIDE2KQkJQ2hlb3BzIEVsZWt0cm9uaWsKKwkJCQlKZXNjaGtlbnN0cmFzc2UgMzIKKwkJCQlHZXJldHNyaWVkIEJheWVybiA4MjUzOAorCQkJCUdFUk1BTlkKKworMDAtMEMtNEMgICAoaGV4KQkJQXJjb3IgQUcmQ28uCiswMDBDNEMgICAgIChiYXNlIDE2KQkJQXJjb3IgQUcmQ28uCisJCQkJQWxmcmVkLUhlcnJoYXVzZW4tQWxsZWUgMQorCQkJCUVzY2hib3JuIEhlc3NlbiA2NTc2MAorCQkJCUdFUk1BTlkKKworMDAtMEMtNEQgICAoaGV4KQkJQUNSQSBDT05UUk9MCiswMDBDNEQgICAgIChiYXNlIDE2KQkJQUNSQSBDT05UUk9MCisJCQkJTGFuZHNjYXBlIEhvdXNlLAorCQkJCUxhbmRzY2FwZSBSb2FkLAorCQkJCUNodXJjaHRvd24sIER1YmxpbiAxNAorCQkJCUlSRUxBTkQKKworMDAtMEMtNEUgICAoaGV4KQkJV2luYmVzdCBUZWNobm9sb2d5IENPLExUCiswMDBDNEUgICAgIChiYXNlIDE2KQkJV2luYmVzdCBUZWNobm9sb2d5IENPLExUCisJCQkJN0YtNU5vLjczNiBDaHVuZyBDaGVuZ1JkLixDaHVuZ0hvCisJCQkJVGFpcGVpICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTRGICAgKGhleCkJCVVEVGVjaCBKYXBhbiBDb3Jwb3JhdGlvbgorMDAwQzRGICAgICAoYmFzZSAxNikJCVVEVGVjaCBKYXBhbiBDb3Jwb3JhdGlvbgorCQkJCUhhbWFjaG8gSGFuYWNobyBCbGRnLCAyRgorCQkJCTItMTctOCBOaWhvbmJhc2hpLUhhbWFjaG8KKwkJCQlDaHVvLWt1IFRva3lvIDEwMy0wMDA3CisJCQkJSkFQQU4KKworMDAtMEMtNTAgICAoaGV4KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CiswMDBDNTAgICAgIChiYXNlIDE2KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CisJCQkJMTI4MCBEaXNjIERyaXZlCisJCQkJU2hha29wZWUgTU4gNTUzNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTUxICAgKGhleCkJCVNjaWVudGlmaWMgVGVjaG5vbG9naWVzIEluYy4KKzAwMEM1MSAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNjU1MCBEdW1iYXJ0b24gQ2lyY2xlCisJCQkJRnJlbW9udCBDQSA5NDU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNTIgICAoaGV4KQkJUm9sbCBTeXN0ZW1zIEluYy4KKzAwMEM1MiAgICAgKGJhc2UgMTYpCQlSb2xsIFN5c3RlbXMgSW5jLgorCQkJCTUzIFRoaXJkIEF2ZW51ZQorCQkJCUJ1cmxpbmd0b24gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTUzICAgKGhleCkJCVBSSVZBVEUKKzAwMEM1MyAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMEMtNTQgICAoaGV4KQkJUGVkZXN0YWwgTmV0d29ya3MsIEluYworMDAwQzU0ICAgICAoYmFzZSAxNikJCVBlZGVzdGFsIE5ldHdvcmtzLCBJbmMKKwkJCQk2NTAzIER1bWJhcnRvbiBDaXJjbGUKKwkJCQlGcmVtb250IENBIDk0NTU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy01NSAgIChoZXgpCQlNaWNyb2xpbmsgQ29tbXVuaWNhdGlvbnMgSW5jLgorMDAwQzU1ICAgICAoYmFzZSAxNikJCU1pY3JvbGluayBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJOEYsIDMxLCBIc2ludGFpIFJvYWQKKwkJCQlDaHVwZWkgQ2l0eQorCQkJCUhzaW5jaHUgIDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtNTYgICAoaGV4KQkJTWVnYXRlbCBDb21wdXRlciAoMTk4NikgQ29ycC4KKzAwMEM1NiAgICAgKGJhc2UgMTYpCQlNZWdhdGVsIENvbXB1dGVyICgxOTg2KSBDb3JwLgorCQkJCTU4NiBNYWluIFN0cmVldAorCQkJCUdsZW4gV2lsbGlhbXMgT250YXJpbyBMN0cgM1Q2CisJCQkJQ0FOQURBCisKKzAwLTBDLTU3ICAgKGhleCkJCU1BQ0tJRSBFbmdpbmVlcmluZyBTZXJ2aWNlcyBCZWxnaXVtIEJWQkEKKzAwMEM1NyAgICAgKGJhc2UgMTYpCQlNQUNLSUUgRW5naW5lZXJpbmcgU2VydmljZXMgQmVsZ2l1bSBCVkJBCisJCQkJSW5kdXN0cmllcGFyayBOb29yZCAxMAorCQkJCVNpbnQgTmlrbGFhcyAgQi05MTAwCisJCQkJQkVMR0lVTQorCiswMC0wQy01OCAgIChoZXgpCQlNJlMgU3lzdGVtcworMDAwQzU4ICAgICAoYmFzZSAxNikJCU0mUyBTeXN0ZW1zCisJCQkJMjg2MSBDb25ncmVzc21hbiBMYW5lCisJCQkJRGFsbGFzIFRYIDc1MjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy01OSAgIChoZXgpCQlJbmR5bWUgRWxlY3Ryb25pY3MsIEluYy4KKzAwMEM1OSAgICAgKGJhc2UgMTYpCQlJbmR5bWUgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQk5MDg1IEFlcm8gRHIuCisJCQkJU2FuIERpZWdvIENBIDkyMTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy01QSAgIChoZXgpCQlJQlNtbSBJbmR1c3RyaWVlbGVrdHJvbmlrIE11bHRpbWVkaWEKKzAwMEM1QSAgICAgKGJhc2UgMTYpCQlJQlNtbSBJbmR1c3RyaWVlbGVrdHJvbmlrIE11bHRpbWVkaWEKKwkJCQlBeWluZ2VyIFN0ci4gMQorCQkJCUZhaXN0ZW5oYWFyCisJCQkJQnJ1bm50aGFsIEJhdmFyaWEgRC04NTY0OQorCQkJCUdFUk1BTlkKKworMDAtMEMtNUIgICAoaGV4KQkJSEFOV0FORyBURUNITk9MT0dZIENPLixMVEQKKzAwMEM1QiAgICAgKGJhc2UgMTYpCQlIQU5XQU5HIFRFQ0hOT0xPR1kgQ08uLExURAorCQkJCThGLEF1dG9tYXRpb24gQnVpbGRpbmcsOTUgWmhvbmdndWFuY3VuLAorCQkJCUhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODAKKwkJCQlDSElOQQorCiswMC0wQy01QyAgIChoZXgpCQlHVE4gU3lzdGVtcyBCLlYuCiswMDBDNUMgICAgIChiYXNlIDE2KQkJR1ROIFN5c3RlbXMgQi5WLgorCQkJCVBvc3RidXMgMTIyMzYKKwkJCQkxMTAwIEFFCisJCQkJQW1zdGVyZGFtICAKKwkJCQlORVRIRVJMQU5EUworCiswMC0wQy01RCAgIChoZXgpCQlDSElDIFRFQ0hOT0xPR1kgKENISU5BKSBDT1JQLgorMDAwQzVEICAgICAoYmFzZSAxNikJCUNISUMgVEVDSE5PTE9HWSAoQ0hJTkEpIENPUlAuCisJCQkJN3RoIEJ1aWxkaW5nLFNoaSdhbyBJbmQuWm9uZSxMb25naHVhIFRvdworCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDkKKwkJCQlDSElOQQorCiswMC0wQy01RSAgIChoZXgpCQlDYWx5cHNvIE1lZGljYWwKKzAwMEM1RSAgICAgKGJhc2UgMTYpCQlDYWx5cHNvIE1lZGljYWwKKwkJCQkyMTAxIEZvdXJ0aCBBdmVudWUsIFN1aXRlIDE1NTAKKwkJCQlTZWF0dGxlIFdBIDk4MTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy01RiAgIChoZXgpCQlBdnRlYywgSW5jLgorMDAwQzVGICAgICAoYmFzZSAxNikJCUF2dGVjLCBJbmMuCisJCQkJNDMzNSBBdWd1c3RhIEh3eQorCQkJCUdpbGJlcnQgU0MgMjkwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTYwICAgKGhleCkJCUFDTSBTeXN0ZW1zCiswMDBDNjAgICAgIChiYXNlIDE2KQkJQUNNIFN5c3RlbXMKKwkJCQkzMDM0IEdvbGQgQ2FuYWwgRHJpdmUKKwkJCQlSYW5jaG8gQ29yZG92YSBDQSA5NTY3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNjEgICAoaGV4KQkJQUMgVGVjaCBjb3Jwb3JhdGlvbiBEQkEgQWR2YW5jZWQgRGlnaXRhbAorMDAwQzYxICAgICAoYmFzZSAxNikJCUFDIFRlY2ggY29ycG9yYXRpb24gREJBIEFkdmFuY2VkIERpZ2l0YWwKKwkJCQkxMjUwLUcgQXZlbmlkYSBBY2FzbworCQkJCUNhbWFyaWxsbyBDQSA5MzAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNjIgICAoaGV4KQkJQUJCIEFCLCBDZXdlLUNvbnRyb2wgCiswMDBDNjIgICAgIChiYXNlIDE2KQkJQUJCIEFCLCBDZXdlLUNvbnRyb2wgCisJCQkJRGVwdC4gTFBDQy9SRSAKKwkJCQlNb3RvcmdyYW5kIDIwCisJCQkJVmFzdGVyYXMgIDcyMSA2MQorCQkJCVNXRURFTgorCiswMC0wQy02MyAgIChoZXgpCQlaZW5pdGggRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KKzAwMEM2MyAgICAgKGJhc2UgMTYpCQlaZW5pdGggRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KKwkJCQkyMDAwIE1pbGxicm9vayBEcml2ZQorCQkJCUxpbmNvbG5zaGlyZSBJbGxpbm9pcyA2MDA2OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNjQgICAoaGV4KQkJWDIgTVNBIEdyb3VwCiswMDBDNjQgICAgIChiYXNlIDE2KQkJWDIgTVNBIEdyb3VwCisJCQkJQ2FyZSBvZjogQWdpbGVudCBUZWNobm9sb2dpZXMKKwkJCQlXaGl0ZSBIb3VzZSBSb2FkCisJCQkJSXBzd2ljaCwgU3VmZm9sayBJUDEgNVBCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEMtNjUgICAoaGV4KQkJU3VuaW4gVGVsZWNvbQorMDAwQzY1ICAgICAoYmFzZSAxNikJCVN1bmluIFRlbGVjb20KKwkJCQkxMDI1LTUgRG9rb2stUmksIFdhYnUtRXViCisJCQkJTmFteWFuZ2p1LUNpdHkgS3l1bmdnaS1EbyA0NzItOTAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTY2ICAgKGhleCkJCVByb250byBOZXR3b3JrcyBJbmMKKzAwMEM2NiAgICAgKGJhc2UgMTYpCQlQcm9udG8gTmV0d29ya3MgSW5jCisJCQkJNDYzNyBDaGFib3QgRHIKKwkJCQlTdWl0ZSAzMDAKKwkJCQlQbGVhc2FudG9uIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy02NyAgIChoZXgpCQlPWU8gRUxFQ1RSSUMgQ08uLExURAorMDAwQzY3ICAgICAoYmFzZSAxNikJCU9ZTyBFTEVDVFJJQyBDTy4sTFRECisJCQkJNjMtMSBOYWthbWljaGkgT21vdGUKKwkJCQlIaXJha2F3YQorCQkJCUpveW8gS3lvdG8gNjEwLTAxMDEKKwkJCQlKQVBBTgorCiswMC0wQy02OCAgIChoZXgpCQlTaWdtYVRlbCwgSW5jLgorMDAwQzY4ICAgICAoYmFzZSAxNikJCVNpZ21hVGVsLCBJbmMuCisJCQkJMjAxIEpvbmVzIFJvYWQKKwkJCQlXYWx0aGFtIE1BIDAyNDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy02OSAgIChoZXgpCQlOYXRpb25hbCBSYWRpbyBBc3Ryb25vbXkgT2JzZXJ2YXRvcnkKKzAwMEM2OSAgICAgKGJhc2UgMTYpCQlOYXRpb25hbCBSYWRpbyBBc3Ryb25vbXkgT2JzZXJ2YXRvcnkKKwkJCQlQLk8uIEJveCBPCisJCQkJU29jb3JybyBOTSA4NzgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNkEgICAoaGV4KQkJTUJBUkkKKzAwMEM2QSAgICAgKGJhc2UgMTYpCQlNQkFSSQorCQkJCTc3MDAgU2FuZGhvbGR0IFJvYWQKKwkJCQlNb3NzIExhbmRpbmcgQ0EgOTUwMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTZCICAgKGhleCkJCUt1cnogSW5kdXN0cmllLUVsZWt0cm9uaWsgR21iSAorMDAwQzZCICAgICAoYmFzZSAxNikJCUt1cnogSW5kdXN0cmllLUVsZWt0cm9uaWsgR21iSAorCQkJCUZvZWhyZW5iYWNoc3RyYXNzZSAzCisJCQkJUmVtc2hhbGRlbiBCYWRlbi1X/HJ0dGVtYmVyZyA3MzYzMAorCQkJCUdFUk1BTlkKKworMDAtMEMtNkMgICAoaGV4KQkJRWxnYXRvIFN5c3RlbXMgTExDCiswMDBDNkMgICAgIChiYXNlIDE2KQkJRWxnYXRvIFN5c3RlbXMgTExDCisJCQkJOTAwIEtlYXJueSBTdCAjNzUwCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNkQgICAoaGV4KQkJRWR3YXJkcyBMdGQuCiswMDBDNkQgICAgIChiYXNlIDE2KQkJRWR3YXJkcyBMdGQuCisJCQkJTWFyc2hhbGwgUm9hZAorCQkJCUVhc3Rib3VybmUgRWFzdCBTdXNzZXggQk4yMiA5QkEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQy02RSAgIChoZXgpCQlBU1VTVEVLIENPTVBVVEVSIElOQy4KKzAwMEM2RSAgICAgKGJhc2UgMTYpCQlBU1VTVEVLIENPTVBVVEVSIElOQy4KKwkJCQkxNTAsIExpLVRlIFJkLiwgUGVpVG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTZGICAgKGhleCkJCUFtdGVrIHN5c3RlbSBjby4sTFRELgorMDAwQzZGICAgICAoYmFzZSAxNikJCUFtdGVrIHN5c3RlbSBjby4sTFRELgorCQkJCTE0Ri0xMSxOby43OSxTZWMuIDEgLEhzaW4gVGFpIFd1IFJkLiwKKwkJCQlIc2kgQ2hpaCBDaXR5CisJCQkJVGFpcGVpICAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTcwICAgKGhleCkJCUFDQyBHbWJICiswMDBDNzAgICAgIChiYXNlIDE2KQkJQUNDIEdtYkgKKwkJCQlBbSBTYW5kZmVsZCAxNQorCQkJCUthcmxzcnVoZSBCYWRlbiA3NjE0OQorCQkJCUdFUk1BTlkKKworMDAtMEMtNzEgICAoaGV4KQkJV3licm9uLCBJbmMKKzAwMEM3MSAgICAgKGJhc2UgMTYpCQlXeWJyb24sIEluYworCQkJCTQ4MzAgTElzdCBEcgorCQkJCUNvbG9yYWRvIFNwcmluZ3MgQ29sb3JhZG8gODA5MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTcyICAgKGhleCkJCVRlbXBlYXJsIEluZHVzdHJpYWwgQ28uLCBMdGQuCiswMDBDNzIgICAgIChiYXNlIDE2KQkJVGVtcGVhcmwgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKwkJCQkzLTEtNDIgT2h6dQorCQkJCU1pbmFtaS1rdQorCQkJCUhpcm9zaGltYS1zaGkgSGlyb3NoaW1hIDczMi0wODAyCisJCQkJSkFQQU4KKworMDAtMEMtNzMgICAoaGV4KQkJVEVMU09OIEVMRUNUUk9OSUNTIENPLiwgTFRECiswMDBDNzMgICAgIChiYXNlIDE2KQkJVEVMU09OIEVMRUNUUk9OSUNTIENPLiwgTFRECisJCQkJVGVsc29uIFZlbnR1cmUgVG93ZXIuLCA5NDktMyBEb2dvay1Eb25nCisJCQkJU2VvdWwgS2FuZ25hbS1LdSAxMzUtNzM5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTc0ICAgKGhleCkJCVJJVkVSVEVDIENPUlBPUkFUSU9OCiswMDBDNzQgICAgIChiYXNlIDE2KQkJUklWRVJURUMgQ09SUE9SQVRJT04KKwkJCQk4ODItNSBNSVlBR0FTQUtJCisJCQkJSU1BQkFSSSBFSElNRSA3OTktMTUzNworCQkJCUpBUEFOCisKKzAwLTBDLTc1ICAgKGhleCkJCU9yaWVudGFsIGludGVncmF0ZWQgZWxlY3Ryb25pY3MuIExURAorMDAwQzc1ICAgICAoYmFzZSAxNikJCU9yaWVudGFsIGludGVncmF0ZWQgZWxlY3Ryb25pY3MuIExURAorCQkJCTI4MS0zNCBEb25kYW5nLWRvbmcgV29ubWktR3UKKwkJCQlCdWNoZW9uIEt5b3VuZ2tpZG8gNDIwLTgwOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy03NiAgIChoZXgpCQlNSUNSTy1TVEFSIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCiswMDBDNzYgICAgIChiYXNlIDE2KQkJTUlDUk8tU1RBUiBJTlRFUk5BVElPTkFMIENPLiwgTFRELgorCQkJCU5vIDY5LCBMaS1EZSBTdHJlZXQsIEp1bmctSGUgQ2l0eSwgVGFpcGUKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtNzcgICAoaGV4KQkJTGlmZSBSYWNpbmcgTHRkCiswMDBDNzcgICAgIChiYXNlIDE2KQkJTGlmZSBSYWNpbmcgTHRkCisJCQkJVW5pdCA2IFJlcHRvbiBDbG9zZQorCQkJCUJ1cm50IE1pbGxzIEluZCBFc3QKKwkJCQlCYXNpbGRvbiBFc3NleCBTUzEzIDFMRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBDLTc4ICAgKGhleCkJCUluLVRlY2ggRWxlY3Ryb25pY3MgTGltaXRlZAorMDAwQzc4ICAgICAoYmFzZSAxNikJCUluLVRlY2ggRWxlY3Ryb25pY3MgTGltaXRlZAorCQkJCVVuaXQgQSwgMTN0aCBGbG9vci4sIFdpbmcgVGFpIENlbnRyZQorCQkJCTEyIEhpbmcgWWlwIFN0cmVldAorCQkJCUt3dW4gVG9uZyBLb3dsb29uIAorCQkJCUhPTkcgS09ORworCiswMC0wQy03OSAgIChoZXgpCQlFeHRlbCBDb21tdW5pY2F0aW9ucyBQL0wKKzAwMEM3OSAgICAgKGJhc2UgMTYpCQlFeHRlbCBDb21tdW5pY2F0aW9ucyBQL0wKKwkJCQkzOTkgRmVybnRyZWUgR3VsbHkgUm9hZAorCQkJCU10IFdhdmVybGV5IFZpY3RvcmlhIDMxNDkKKwkJCQlBVVNUUkFMSUEKKworMDAtMEMtN0EgICAoaGV4KQkJRGFUQVJJVVMgVGVjaG5vbG9naWVzIEdtYkgKKzAwMEM3QSAgICAgKGJhc2UgMTYpCQlEYVRBUklVUyBUZWNobm9sb2dpZXMgR21iSAorCQkJCUFudG9uIE1hcmlhIFNjaHlybGUgU3RyLiA3CisJCQkJUmV1dHRlIFRpcm9sIDY2MDAKKwkJCQlBVVNUUklBCisKKzAwLTBDLTdCICAgKGhleCkJCUFMUEhBIFBST0pFQ1QgQ28uLEx0ZC4KKzAwMEM3QiAgICAgKGJhc2UgMTYpCQlBTFBIQSBQUk9KRUNUIENvLixMdGQuCisJCQkJODM0IFNla2lzaGksSGlnYXNoaS1rdSxIYW1hbWF0c3UtY2l0eQorCQkJCVNoaXp1b2thICA0MzEtMzExNAorCQkJCUpBUEFOCisKKzAwLTBDLTdDICAgKGhleCkJCUludGVybmV0IEluZm9ybWF0aW9uIEltYWdlIEluYy4KKzAwMEM3QyAgICAgKGJhc2UgMTYpCQlJbnRlcm5ldCBJbmZvcm1hdGlvbiBJbWFnZSBJbmMuCisJCQkJRmwuIDYsIE5vLiAxLCBBbGxleSAyMCwgTGFuZSAyNiwgUnVlaWd1YQorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTdEICAgKGhleCkJCVRFSUtPS1UgRUxFQ1RSSUMgTUZHLiBDTy4sIExURAorMDAwQzdEICAgICAoYmFzZSAxNikJCVRFSUtPS1UgRUxFQ1RSSUMgTUZHLiBDTy4sIExURAorCQkJCTYwLCBISVJBTk8KKwkJCQlTSElOR1UtQ0hPCisJCQkJSUJPLUdVTiBIWU9HTyA2NzktNDM5NQorCQkJCUpBUEFOCisKKzAwLTBDLTdFICAgKGhleCkJCVRlbGxpdW0gSW5jb3Jwb3JhdGVkCiswMDBDN0UgICAgIChiYXNlIDE2KQkJVGVsbGl1bSBJbmNvcnBvcmF0ZWQKKwkJCQkyIENyZXNjZW50IFBsYWNlCisJCQkJT2NlYW5wb3J0IE5ldyBKZXJzZXkgMDc3NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTdGICAgKGhleCkJCXN5bmVydHJvbml4eCBHbWJICiswMDBDN0YgICAgIChiYXNlIDE2KQkJc3luZXJ0cm9uaXh4IEdtYkgKKwkJCQlWYWhyZW53YWxkZXIgU3RyYXNzZSA3CisJCQkJSGFubm92ZXIgTmllZGVyc2FjaHNlbiAzMDE2NQorCQkJCUdFUk1BTlkKKworMDAtMEMtODAgICAoaGV4KQkJT3BlbGNvbW0gSW5jLgorMDAwQzgwICAgICAoYmFzZSAxNikJCU9wZWxjb21tIEluYy4KKwkJCQk0Njc1MCBGcmVtb250IEJsdmQuIFN0ZSAyMTAKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy04MSAgIChoZXgpCQlTY2huZWlkZXIgRWxlY3RyaWMgKEF1c3RyYWxpYSkgCiswMDBDODEgICAgIChiYXNlIDE2KQkJU2NobmVpZGVyIEVsZWN0cmljIChBdXN0cmFsaWEpIAorCQkJCTgwIFNjaG5laWRlciBSb2FkCisJCQkJRWFnbGUgRmFybSAgUWxkIDQwMDkKKwkJCQlBVVNUUkFMSUEKKworMDAtMEMtODIgICAoaGV4KQkJTkVUV09SSyBURUNITk9MT0dJRVMgSU5DCiswMDBDODIgICAgIChiYXNlIDE2KQkJTkVUV09SSyBURUNITk9MT0dJRVMgSU5DCisJCQkJMTI3NSBEQU5ORVIgRFJJVkUKKwkJCQlBVVJPUkEgT0ggNDQyMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTgzICAgKGhleCkJCUxvZ2ljYWwgU29sdXRpb25zCiswMDBDODMgICAgIChiYXNlIDE2KQkJTG9naWNhbCBTb2x1dGlvbnMKKwkJCQkxMDBUIFdhc2hpbmd0b24gU3RyZWV0CisJCQkJTWlsZm9yZCBDVCAwNjQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtODQgICAoaGV4KQkJRWF6aXgsIEluYy4KKzAwMEM4NCAgICAgKGJhc2UgMTYpCQlFYXppeCwgSW5jLgorCQkJCVVuaXQgMzAxIFBsYXphIEJ1aWxkaW5nIEIKKwkJCQk2NTMwIE5vcnRoZ2F0ZSBBdmVudWUsIEZpbGludmVzdAorCQkJCU11bnRpbmx1cGEgQ2l0eSBSaXphbCAxNzcwCisJCQkJUEhJTElQUElORVMKKworMDAtMEMtODUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQzg1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtODYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQzg2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1tLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtODcgICAoaGV4KQkJQU1ECiswMDBDODcgICAgIChiYXNlIDE2KQkJQU1ECisJCQkJNDU1NSBHcmVhdCBBbWVyaWNhIFBrd3kKKwkJCQlTdGUgNTAxCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTg4ICAgKGhleCkJCUFwYWNoZSBNaWNybyBQZXJpcGhlcmFscywgSW5jLgorMDAwQzg4ICAgICAoYmFzZSAxNikJCUFwYWNoZSBNaWNybyBQZXJpcGhlcmFscywgSW5jLgorCQkJCTE3NTI2IFZvbiBLYXJtYW4gQXZlCisJCQkJSXJ2aW5lIENBIDkyNjE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy04OSAgIChoZXgpCQlBQyBFbGVjdHJpYyBWZWhpY2xlcywgTHRkLgorMDAwQzg5ICAgICAoYmFzZSAxNikJCUFDIEVsZWN0cmljIFZlaGljbGVzLCBMdGQuCisJCQkJTWFya2tpbmFrdWphIDMKKwkJCQlKb2tlbGEgIDA1NDAwCisJCQkJRklOTEFORAorCiswMC0wQy04QSAgIChoZXgpCQlCb3NlIENvcnBvcmF0aW9uCiswMDBDOEEgICAgIChiYXNlIDE2KQkJQm9zZSBDb3Jwb3JhdGlvbgorCQkJCUF1dG9tb3RpdmUgU3lzdGVtcyBEaXZpc2lvbiAoQVNEKQorCQkJCTY4OCBHcmVhdCBSb2FkIChNYWlsc3RvcDogMVcyKQorCQkJCVN0b3cgTUEgMDE3NzUtOTEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtOEIgICAoaGV4KQkJQ29ubmVjdCBUZWNoIEluYworMDAwQzhCICAgICAoYmFzZSAxNikJCUNvbm5lY3QgVGVjaCBJbmMKKwkJCQk0MiBBcnJvdyBSb2FkCisJCQkJR3VlbHBoIE9udGFyaW8gTjFLIDFTNgorCQkJCUNBTkFEQQorCiswMC0wQy04QyAgIChoZXgpCQlLT0RJQ09NIENPLixMVEQuCiswMDBDOEMgICAgIChiYXNlIDE2KQkJS09ESUNPTSBDTy4sTFRELgorCQkJCUEtRG9uZyA1RkkuLFNLIFR3aW4gVG93ZXIgMzQ1LTksCisJCQkJR2FzYW4tRG9uZywgR3VlbWNodW4tR3UKKwkJCQlTZW91bCAgMTUzLTAyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy04RCAgIChoZXgpCQlNQVRSSVggVklTSU9OIEdtYkgKKzAwMEM4RCAgICAgKGJhc2UgMTYpCQlNQVRSSVggVklTSU9OIEdtYkgKKwkJCQlUYWxzdHJhc3NlIDE2CisJCQkJT3BwZW53ZWlsZXIgQmFkZW4tV3VlcnR0ZW1iZXJnIEQtNzE1NzAKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLThFICAgKGhleCkJCU1lbnRvciBFbmdpbmVlcmluZyBJbmMKKzAwMEM4RSAgICAgKGJhc2UgMTYpCQlNZW50b3IgRW5naW5lZXJpbmcgSW5jCisJCQkJMjg5MSBTdW5yaWRnZSBXYXkgTkUKKwkJCQlTdWl0ZSAyMzAKKwkJCQlDYWxnYXJ5IEFsYmVydGEgVDFZN0s3CisJCQkJQ0FOQURBCisKKzAwLTBDLThGICAgKGhleCkJCU5lcmdhbCBzLnIubC4KKzAwMEM4RiAgICAgKGJhc2UgMTYpCQlOZXJnYWwgcy5yLmwuCisJCQkJVmlhbGUgQmFyZGFuemVsbHUsOAorCQkJCVJvbWEgIDAwMTU1CisJCQkJSVRBTFkKKworMDAtMEMtOTAgICAoaGV4KQkJT2N0YXNpYyBJbmMuCiswMDBDOTAgICAgIChiYXNlIDE2KQkJT2N0YXNpYyBJbmMuCisJCQkJNDEwMSBNb2xzb24gU3QuCisJCQkJU3VpdGUgMzAwCisJCQkJTW9udHJlYWwgUXVlYmVjIEgxWSAzTDEKKwkJCQlDQU5BREEKKworMDAtMEMtOTEgICAoaGV4KQkJUml2ZXJoZWFkIE5ldHdvcmtzIEluYy4KKzAwMEM5MSAgICAgKGJhc2UgMTYpCQlSaXZlcmhlYWQgTmV0d29ya3MgSW5jLgorCQkJCTIwMTk1IFN0ZXZlbnMgQ3JlZWsgQmx2ZC4gIyAxMTAKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTkyICAgKGhleCkJCVdvbGZWaXNpb24gR21iaAorMDAwQzkyICAgICAoYmFzZSAxNikJCVdvbGZWaXNpb24gR21iaAorCQkJCU9iZXJlcyBSaWVkIDE0CisJCQkJNjgzMyBLbGF1cyAKKwkJCQlBVVNUUklBCisKKzAwLTBDLTkzICAgKGhleCkJCVhlbGluZSBDby4sIEx0ZC4KKzAwMEM5MyAgICAgKGJhc2UgMTYpCQlYZWxpbmUgQ28uLCBMdGQuCisJCQkJN0YuIENodW5namluIEJsZGcuLCA0NzUtMjIKKwkJCQlCYW5nYmFlIDIgZG9uZywgU2VvY2hvLWd1CisJCQkJU2VvdWwgIDEzNy04MTkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtOTQgICAoaGV4KQkJVW5pdGVkIEVsZWN0cm9uaWMgSW5kdXN0cmllcywgSW5jLiAoRVVJKQorMDAwQzk0ICAgICAoYmFzZSAxNikJCVVuaXRlZCBFbGVjdHJvbmljIEluZHVzdHJpZXMsIEluYy4gKEVVSSkKKwkJCQkyNyBSZW5tYXIgQXZlCisJCQkJV2FscG9sZSBNQSAwMjA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtOTUgICAoaGV4KQkJUHJpbWVOZXQKKzAwMEM5NSAgICAgKGJhc2UgMTYpCQlQcmltZU5ldAorCQkJCUhvbmdpayBVbml2ZXJzaXR5LCA3Mi0xLCBTYW5nc3UtRG9uZywgTWEKKwkJCQlTZW91bCAgMTIxLTc5MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy05NiAgIChoZXgpCQlPUU8sIEluYy4KKzAwMEM5NiAgICAgKGJhc2UgMTYpCQlPUU8sIEluYy4KKwkJCQkxODAwIElsbGlub2lzIFN0cmVldAorCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTk3ICAgKGhleCkJCU5WIEFEQiBUVFYgVGVjaG5vbG9naWVzIFNBCiswMDBDOTcgICAgIChiYXNlIDE2KQkJTlYgQURCIFRUViBUZWNobm9sb2dpZXMgU0EKKwkJCQlMRVVWRU5TRVNURUVOV0VHLDU4NQorCQkJCVpBVkVOVEVNIFZsYWFtc2UgYnJhYmFudCAxOTMwCisJCQkJQkVMR0lVTQorCiswMC0wQy05OCAgIChoZXgpCQlMRVRFSyBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDBDOTggICAgIChiYXNlIDE2KQkJTEVURUsgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCVRhZXlhbmcgQmQuIDJuZCBGbG9vciwgMjQ4NgorCQkJCVNvbmdOYW0tRG9uZywgSnVuZ3dvbi1LdQorCQkJCVNvbmdOYW0gS3l1bmdnaS1kbyA0NjItODI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTk5ICAgKGhleCkJCUhJVEVMIExJTksgQ28uLEx0ZAorMDAwQzk5ICAgICAoYmFzZSAxNikJCUhJVEVMIExJTksgQ28uLEx0ZAorCQkJCVNhbXN1bmcgT21uaSBUb3dlciA0dGggRmwuLCAzOTUtNjIKKwkJCQlTaGluZGFlYmFuZy1kb25nLCBEb25namFjLWt1LAorCQkJCVNlb3VsICAxNTYtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTlBICAgKGhleCkJCUhpdGVjaCBFbGVjdHJvbmljcyBDb3JwLgorMDAwQzlBICAgICAoYmFzZSAxNikJCUhpdGVjaCBFbGVjdHJvbmljcyBDb3JwLgorCQkJCTRmLCBOby4gNTAxLTE1IENodW5nLUNoZW5nIFJkLgorCQkJCVNoaW4tdGllbiBUYWlwZWkgU2hpZW4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy05QiAgIChoZXgpCQlFRSBTb2x1dGlvbnMsIEluYworMDAwQzlCICAgICAoYmFzZSAxNikJCUVFIFNvbHV0aW9ucywgSW5jCisJCQkJOEYsIE5vLiA5LCBQYXJrIElJIEF2ZS4sIFNjaWVuY2UtQmFzZWQgSQorCQkJCUhzaW4gQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTlDICAgKGhleCkJCUNob25naG8gaW5mb3JtYXRpb24gJiBjb21tdW5pY2F0aW9ucworMDAwQzlDICAgICAoYmFzZSAxNikJCUNob25naG8gaW5mb3JtYXRpb24gJiBjb21tdW5pY2F0aW9ucworCQkJCUNob25naG8gQmxkZywgIzctNjEgWWFuZ2phZS1kb25nLCBTZW9jaG8KKwkJCQlTZW91bCAgMTM3LTEzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy05RCAgIChoZXgpCQlBaXJXYWxrIENvbW11bmljYXRpb25zLCBJbmMuCiswMDBDOUQgICAgIChiYXNlIDE2KQkJQWlyV2FsayBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTE4NTAgTi4gR3JlZW5WaWxsZSBBdmUuLCBTdWl0ZSAxNjQKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy05RSAgIChoZXgpCQlNZW1vcnlMaW5rIENvcnAuCiswMDBDOUUgICAgIChiYXNlIDE2KQkJTWVtb3J5TGluayBDb3JwLgorCQkJCTM2IEpld2VsZXJzIFBhcmsgRHJpdmUKKwkJCQlTdWl0ZSAyMDAKKwkJCQlOZWVuYWggV2lzY29uc2luIDU0OTU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy05RiAgIChoZXgpCQlOS0UgQ29ycG9yYXRpb24KKzAwMEM5RiAgICAgKGJhc2UgMTYpCQlOS0UgQ29ycG9yYXRpb24KKwkJCQkyNyBadXNobyBCYWJhCisJCQkJTmFnYW9rYWt5by1zaGkgS3lvdG8gNjE3LTA4MjgKKwkJCQlKQVBBTgorCiswMC0wQy1BMCAgIChoZXgpCQlTdG9yQ2FzZSBUZWNobm9sb2d5LCBJbmMuCiswMDBDQTAgICAgIChiYXNlIDE2KQkJU3RvckNhc2UgVGVjaG5vbG9neSwgSW5jLgorCQkJCTE3NjAwIE5ld2hvcGUgU3QuCisJCQkJRm91bnRhaW4gVmFsbGV5IENBIDkyNzA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1BMSAgIChoZXgpCQlTSUdNQUNPTSBDby4sIExURC4KKzAwMENBMSAgICAgKGJhc2UgMTYpCQlTSUdNQUNPTSBDby4sIExURC4KKwkJCQlEYWNvbUJsZGcgN0YgMjAwLTEyIEFueWFuZy1kb25nCisJCQkJTWFuYW4tS3UsIEFueWFuZy1jaXR5LCBLeXVuZ0tpLURvLCBLb3JlYQorCQkJCTQzMC04MTcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtQTIgICAoaGV4KQkJU2NvcHVzIE5ldHdvcmsgVGVjaG5vbG9naWVzIEx0ZAorMDAwQ0EyICAgICAoYmFzZSAxNikJCVNjb3B1cyBOZXR3b3JrIFRlY2hub2xvZ2llcyBMdGQKKwkJCQkxMCBIYSdhbWFsIHN0LiBQYXJrIEFmZWsKKwkJCQlSb3NoIEhhJ2F5aW4gIDQ4MDkyCisJCQkJSVNSQUVMCisKKzAwLTBDLUEzICAgKGhleCkJCVJhbmNobyBUZWNobm9sb2d5LCBJbmMuCiswMDBDQTMgICAgIChiYXNlIDE2KQkJUmFuY2hvIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxMDc4MyBCZWxsIENvdXJ0CisJCQkJUmFuY2hvIEN1Y2Ftb25nYSBDQSAxOTczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtQTQgICAoaGV4KQkJUHJvbXB0dGVjIFByb2R1Y3QgTWFuYWdlbWVudCBHbWJICiswMDBDQTQgICAgIChiYXNlIDE2KQkJUHJvbXB0dGVjIFByb2R1Y3QgTWFuYWdlbWVudCBHbWJICisJCQkJTWFyaWF0cm9zdGVyc3RyLiA0MQorCQkJCUdyYXogQVVTVFJJQSBBLTgwNDMKKwkJCQlBVVNUUklBCisKKzAwLTBDLUE1ICAgKGhleCkJCU5hbWFuIE5aIExUZAorMDAwQ0E1ICAgICAoYmFzZSAxNikJCU5hbWFuIE5aIExUZAorCQkJCTEzLzE3IEthd2FuYSBTdAorCQkJCU5vcnRoY290ZQorCQkJCUF1Y2tsYW5kICAKKwkJCQlORVcgWkVBTEFORAorCiswMC0wQy1BNiAgIChoZXgpCQlNaW50ZXJhIENvcnBvcmF0aW9uCiswMDBDQTYgICAgIChiYXNlIDE2KQkJTWludGVyYSBDb3Jwb3JhdGlvbgorCQkJCTg0NyBSb2dlcnMgU3RyZWV0CisJCQkJTG93ZWxsIE1BIDAxODUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1BNyAgIChoZXgpCQlNZXRybyAoU3V6aG91KSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDBDQTcgICAgIChiYXNlIDE2KQkJTWV0cm8gKFN1emhvdSkgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCU5vLjIyMSBYaW5naGFpIFN0cmVldCwgU3V6aG91IEluZHVzdHJpYWwgUGFyaworCQkJCVN1emhvdSBKaWFuZyBTdSBQcm92aW5jZSAyMTUwMjEKKwkJCQlDSElOQQorCiswMC0wQy1BOCAgIChoZXgpCQlHYXJ1ZGEgTmV0d29ya3MgQ29ycG9yYXRpb24KKzAwMENBOCAgICAgKGJhc2UgMTYpCQlHYXJ1ZGEgTmV0d29ya3MgQ29ycG9yYXRpb24KKwkJCQk0ODQ5OSBNaWxtb250IERyaXZlCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtQTkgICAoaGV4KQkJRWJ0cm9uIEluYy4KKzAwMENBOSAgICAgKGJhc2UgMTYpCQlFYnRyb24gSW5jLgorCQkJCTE2NjMgSHd5IDcwMSBTb3V0aAorCQkJCUxvcmlzIFNDIDI5NTY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1BQSAgIChoZXgpCQlDdWJpYyBUcmFuc3BvcnRhdGlvbiBTeXN0ZW1zIEluYworMDAwQ0FBICAgICAoYmFzZSAxNikJCUN1YmljIFRyYW5zcG9ydGF0aW9uIFN5c3RlbXMgSW5jCisJCQkJMTMwOCBTLiBXYXNoaW5ndG9uIFN0cmVldAorCQkJCVR1bGxhaG9tYSBUTiAzNzM4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtQUIgICAoaGV4KQkJQ09NTUVORCBJbnRlcm5hdGlvbmFsCiswMDBDQUIgICAgIChiYXNlIDE2KQkJQ09NTUVORCBJbnRlcm5hdGlvbmFsCisJCQkJSG9lbHpsc3RyYXNzZSA1NjEKKwkJCQlXYWxzIFNhbHpidXJnIEEtNTA3MQorCQkJCUFVU1RSSUEKKworMDAtMEMtQUMgICAoaGV4KQkJQ2l0aXplbiBXYXRjaCBDby4sIEx0ZC4KKzAwMENBQyAgICAgKGJhc2UgMTYpCQlDaXRpemVuIFdhdGNoIENvLiwgTHRkLgorCQkJCTYtMS0xMiwgVGFuYXNoaS1jaG8KKwkJCQlOaXNoaS1Ub2t5by1zaGkgVG9reW8gMTg4LTg1MTEKKwkJCQlKQVBBTgorCiswMC0wQy1BRCAgIChoZXgpCQlCVFUgSW50ZXJuYXRpb25hbAorMDAwQ0FEICAgICAoYmFzZSAxNikJCUJUVSBJbnRlcm5hdGlvbmFsCisJCQkJMjMgRXNxdWlyZSBSZAorCQkJCU5vcnRoIEJpbGxlcmljYSBNQSAwMTg2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtQUUgICAoaGV4KQkJQWlsb2NvbSBPeQorMDAwQ0FFICAgICAoYmFzZSAxNikJCUFpbG9jb20gT3kKKwkJCQlIYXRhbnBhYW4gdmFsdGF0aWUgMjQKKwkJCQlEeW5hbW8gQnVzaW5lc3MgUGFyaworCQkJCVRBTVBFUkUgRklOIDMzOTUwCisJCQkJRklOTEFORAorCiswMC0wQy1BRiAgIChoZXgpCQlUUkkgVEVSTSBDTy4sTFRELgorMDAwQ0FGICAgICAoYmFzZSAxNikJCVRSSSBURVJNIENPLixMVEQuCisJCQkJMjEtNSBISVJBSURFIEtPVUdJWU8gREFOQ0hJCisJCQkJVVRTVU5PTUlZQS1TSEkKKwkJCQlUT0NISUdJICAzMjEtMDkwNQorCQkJCUpBUEFOCisKKzAwLTBDLUIwICAgKGhleCkJCVN0YXIgU2VtaWNvbmR1Y3RvciBDb3Jwb3JhdGlvbgorMDAwQ0IwICAgICAoYmFzZSAxNikJCVN0YXIgU2VtaWNvbmR1Y3RvciBDb3Jwb3JhdGlvbgorCQkJCTZGLCBOby4xNywgTGktSHNpbiBSZAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSBDaXR5ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLUIxICAgKGhleCkJCVNhbGxhbmQgRW5naW5lZXJpbmcgKEV1cm9wZSkgQlYKKzAwMENCMSAgICAgKGJhc2UgMTYpCQlTYWxsYW5kIEVuZ2luZWVyaW5nIChFdXJvcGUpIEJWCisJCQkJQmVkcmlqdmVucGFyayBCZXJrdW0KKwkJCQlTY2hyZXZlbndlZyAxMgorCQkJCVp3b2xsZSBPViA4MDI0IEhBCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEMtQjIgICAoaGV4KQkJQ29tc3RhciBDby4sIEx0ZC4KKzAwMENCMiAgICAgKGJhc2UgMTYpCQlDb21zdGFyIENvLiwgTHRkLgorCQkJCTcwMSBNYXNhbiBWYWxsZXkgIzExMjEtOQorCQkJCUNodW5nLXJpLCBOYWVzZW8tZXVwCisJCQkJTWFzYW4gR3llb25nbmFtIDYzMC03MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtQjMgICAoaGV4KQkJUk9VTkQgQ28uLEx0ZC4KKzAwMENCMyAgICAgKGJhc2UgMTYpCQlST1VORCBDby4sTHRkLgorCQkJCTMtOSBHb2thc2hvdS1TaGliYWhpZ2FzaGkKKwkJCQlVamkgS3lvdG8gNjExLTAwMTEKKwkJCQlKQVBBTgorCiswMC0wQy1CNCAgIChoZXgpCQlBdXRvQ2VsbCBMYWJvcmF0b3JpZXMsIEluYy4KKzAwMENCNCAgICAgKGJhc2UgMTYpCQlBdXRvQ2VsbCBMYWJvcmF0b3JpZXMsIEluYy4KKwkJCQkxNzQgQ29uY29yZCBTdHJlZXQKKwkJCQlTdWl0ZSAzMTAKKwkJCQlQZXRlcmJvcm91Z2gsIE5ldyBIYW1wc2hpcmUgMDM0NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUI1ICAgKGhleCkJCVByZW1pZXIgVGVjaG5vbGdpZXMsIEluYworMDAwQ0I1ICAgICAoYmFzZSAxNikJCVByZW1pZXIgVGVjaG5vbGdpZXMsIEluYworCQkJCVBPIEJveCAxNTkKKwkJCQlPbmUgUHJlbWllciBEcgorCQkJCUxvbmcgTGFrZSBNTiA1NTM1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtQjYgICAoaGV4KQkJTkFOSklORyBTRVUgTU9CSUxFICYgSU5URVJORVQgVEVDSE5PTE9HWSBDTy4sTFRECiswMDBDQjYgICAgIChiYXNlIDE2KQkJTkFOSklORyBTRVUgTU9CSUxFICYgSU5URVJORVQgVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJNXRoIGZsb29yLEJ1aWxkaW5nIDUsQ2hhbmdKaWFuZ0hvdSBTdHJlZXQgTm8uNgorCQkJCU5hbmppbmcgSmlhbmdzdSAyMTAwMTgKKwkJCQlDSElOQQorCiswMC0wQy1CNyAgIChoZXgpCQlOYW5qaW5nIEh1YXpodW8gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDBDQjcgICAgIChiYXNlIDE2KQkJTmFuamluZyBIdWF6aHVvIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCU5vLjc3IEdhb2h1IFJvYWQKKwkJCQlKaWFuZ25pbmcgRWNvbm9taWMgJiBUZWNobm9sb2d5IERldmVsb3BtCisJCQkJTmFuamluZyBKaWFuZ3N1IDIxMTEwMAorCQkJCUNISU5BCisKKzAwLTBDLUI4ICAgKGhleCkJCU1FRElPTiBBRworMDAwQ0I4ICAgICAoYmFzZSAxNikJCU1FRElPTiBBRworCQkJCUFtIFplaG50aG9mIDc3CisJCQkJRXNzZW4gTlJXIDQ1MzA3CisJCQkJR0VSTUFOWQorCiswMC0wQy1COSAgIChoZXgpCQlMRUEKKzAwMENCOSAgICAgKGJhc2UgMTYpCQlMRUEKKwkJCQlCYXQgTEEgRkFZRVRURQorCQkJCTIgcGxhY2UgZGVzIFZvc2dlcworCQkJCVBhcmlzIFJQIDkyNDA1MQorCQkJCUZSQU5DRQorCiswMC0wQy1CQSAgIChoZXgpCQlKYW1leCwgSW5jLgorMDAwQ0JBICAgICAoYmFzZSAxNikJCUphbWV4LCBJbmMuCisJCQkJMjQxNSBOIFRyaXBoYW1tZXIgUmQKKwkJCQlJdGhhY2EgTlkgMTQ4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUJCICAgKGhleCkJCUlTS1JBRU1FQ08KKzAwMENCQiAgICAgKGJhc2UgMTYpCQlJU0tSQUVNRUNPCisJCQkJU2F2c2thIGxva2EgNAorCQkJCUtyYW5qIEdvcmVuanNrYSA0MDAwCisJCQkJU0xPVkVOSUEKKworMDAtMEMtQkMgICAoaGV4KQkJSXNjdXR1bQorMDAwQ0JDICAgICAoYmFzZSAxNikJCUlzY3V0dW0KKwkJCQkjODk5LTYgSG8tR3llIERvbmcsIERvbmctQW4gR3UKKwkJCQlBbi1ZYW5nIENpdHkgS3lvbmctR2kgRG8gNDMxLTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy1CRCAgIChoZXgpCQlJbnRlcmZhY2UgTWFzdGVycywgSW5jCiswMDBDQkQgICAgIChiYXNlIDE2KQkJSW50ZXJmYWNlIE1hc3RlcnMsIEluYworCQkJCTIzODEgWmFua2VyIFJkLiwgU3VpdGUgMTMwCisJCQkJU2FuIEpvc2UgQ2FsaWZvcm5pYSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtQkUgICAoaGV4KQkJSW5ub21pbmF0ZSBTZWN1cml0eSBUZWNobm9sb2dpZXMgQUcKKzAwMENCRSAgICAgKGJhc2UgMTYpCQlJbm5vbWluYXRlIFNlY3VyaXR5IFRlY2hub2xvZ2llcyBBRworCQkJCVJ1ZG93ZXIgQ2hhdXNzZWUgMTMKKwkJCQkxMjQ4OSBCZXJsaW4gCisJCQkJR0VSTUFOWQorCiswMC0wQy1CRiAgIChoZXgpCQlIb2x5IFN0b25lIEVudC4gQ28uLCBMdGQuCiswMDBDQkYgICAgIChiYXNlIDE2KQkJSG9seSBTdG9uZSBFbnQuIENvLiwgTHRkLgorCQkJCTFGLCBOby42MiwgU2VjLjIsIEh1YW5nIFNoYW4gUmQuLAorCQkJCU5laSBIdSBEaXN0LiwgVGFpcGVpLCBUYWl3YW4sIFIuTy5DLgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy1DMCAgIChoZXgpCQlHZW5lcmEgT3kKKzAwMENDMCAgICAgKGJhc2UgMTYpCQlHZW5lcmEgT3kKKwkJCQlOaWl0dHlsYW5wb2xrdSAxNgorCQkJCUJveCAxNgorCQkJCUhlbHNpbmtpICAwMDYyMQorCQkJCUZJTkxBTkQKKworMDAtMEMtQzEgICAoaGV4KQkJQ29vcGVyIEluZHVzdHJpZXMgSW5jLgorMDAwQ0MxICAgICAoYmFzZSAxNikJCUNvb3BlciBJbmR1c3RyaWVzIEluYy4KKwkJCQk2MDAgVHJhdmlzLCBTdWl0ZSA1ODAwCisJCQkJSG91c3RvbiBUWCA3NzAwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtQzIgICAoaGV4KQkJQ29udHJvbE5ldCAoSW5kaWEpIFByaXZhdGUgTGltaXRlZAorMDAwQ0MyICAgICAoYmFzZSAxNikJCUNvbnRyb2xOZXQgKEluZGlhKSBQcml2YXRlIExpbWl0ZWQKKwkJCQlMLTQ0LCBVbml0IC0gSQorCQkJCVZlcm5hIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJVmVybmEsIFNhbGNldGUgR29hIDQwMyA3MjIKKwkJCQlJTkRJQQorCiswMC0wQy1DMyAgIChoZXgpCQlCZVdBTiBzeXN0ZW1zCiswMDBDQzMgICAgIChiYXNlIDE2KQkJQmVXQU4gc3lzdGVtcworCQkJCTE2IHJ1ZSBkdSBNb3VsaW4gZGVzIEJydXnocmVzCisJCQkJQ291cmJldm9pZSBIYXV0cyBkZSBTZWluZSA5MjQwMAorCQkJCUZSQU5DRQorCiswMC0wQy1DNCAgIChoZXgpCQlUaXB0ZWwgQUcKKzAwMENDNCAgICAgKGJhc2UgMTYpCQlUaXB0ZWwgQUcKKwkJCQlIYWxza2VzdHJhc3NlIDEKKwkJCQlSYXRpbmdlbiBOUlcgNDA4ODAKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLUM1ICAgKGhleCkJCU5leHRsaW5rIENvLiwgTHRkLgorMDAwQ0M1ICAgICAoYmFzZSAxNikJCU5leHRsaW5rIENvLiwgTHRkLgorCQkJCUMgNjA1LCBUZWNobm9wYXJrICMxNDUgWWF0b3AtZG9uZywKKwkJCQlTZW9uZ25hbS1zaSBCdW5kYW5nLWd1LCBHeWVvbmdnaSA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLUM2ICAgKGhleCkJCUthLVJvIGVsZWN0cm9uaWNzIEdtYkgKKzAwMENDNiAgICAgKGJhc2UgMTYpCQlLYS1SbyBlbGVjdHJvbmljcyBHbWJICisJCQkJUGFzY2Fsc3RyYd9lIDIyCisJCQkJQWFjaGVuIE5XIDUyMDc2CisJCQkJR0VSTUFOWQorCiswMC0wQy1DNyAgIChoZXgpCQlJbnRlbGxpZ2VudCBDb21wdXRlciBTb2x1dGlvbnMgSW5jLgorMDAwQ0M3ICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IENvbXB1dGVyIFNvbHV0aW9ucyBJbmMuCisJCQkJOTM1MCBFdG9uIFN0LgorCQkJCUNoYXRzd29ydGggQ0EgOTEzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUM4ICAgKGhleCkJCVh5dHJvbml4IFJlc2VhcmNoICYgRGVzaWduLCBJbmMuCiswMDBDQzggICAgIChiYXNlIDE2KQkJWHl0cm9uaXggUmVzZWFyY2ggJiBEZXNpZ24sIEluYy4KKwkJCQkxNDg4IEVhc3QgMjMwMCBOb3J0aAorCQkJCU5vcnRoIExvZ2FuIFVUIDg0MzQxLTE2MjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUM5ICAgKGhleCkJCUlMV09PIERBVEEgJiBURUNITk9MT0dZIENPLixMVEQKKzAwMENDOSAgICAgKGJhc2UgMTYpCQlJTFdPTyBEQVRBICYgVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJMTQ3NS0xMCxIV0EgSFlVTiBCTEQuIDJuZCBGbG9vciwKKwkJCQlTRU9DSE8tRE9ORyxTRU9DSE8tR1UsCisJCQkJU0VPVUwgIDEzNy0wNzEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtQ0EgICAoaGV4KQkJSGl0YWNoaSBHbG9iYWwgU3RvcmFnZSBUZWNobm9sb2dpZXMKKzAwMENDQSAgICAgKGJhc2UgMTYpCQlIaXRhY2hpIEdsb2JhbCBTdG9yYWdlIFRlY2hub2xvZ2llcworCQkJCTU2MDAgQ290dGxlIFJkLgorCQkJCVNhbiBKb3NlIENBIDk1MTkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1DQiAgIChoZXgpCQlEZXNpZ24gQ29tYnVzIEx0ZAorMDAwQ0NCICAgICAoYmFzZSAxNikJCURlc2lnbiBDb21idXMgTHRkCisJCQkJSGF0YW5hcGFhbiB2YWx0YXRpZSAzNEEKKwkJCQlUYW1wZXJlICBGSU4tMzMxMDAKKwkJCQlGSU5MQU5ECisKKzAwLTBDLUNDICAgKGhleCkJCUFlcm9zY291dCBMdGQuCiswMDBDQ0MgICAgIChiYXNlIDE2KQkJQWVyb3Njb3V0IEx0ZC4KKwkJCQkzIFBla2VyaXMgU3QuCisJCQkJUGFyayBUYW1hcgorCQkJCVJlaG92b3QgIDc2NzAxCisJCQkJSVNSQUVMCisKKzAwLTBDLUNEICAgKGhleCkJCUlFQyAtIFRDNTcKKzAwMENDRCAgICAgKGJhc2UgMTYpCQlJRUMgLSBUQzU3CisJCQkJMywgcnVlIGRlIFZhcmVtYukKKwkJCQlQLk8uIEJveCAxMzEKKwkJCQlHZW5ldmEgR0UgMTIxMQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBDLUNFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMENDRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUNGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMENDRiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUQwICAgKGhleCkJCVN5bWV0cml4CiswMDBDRDAgICAgIChiYXNlIDE2KQkJU3ltZXRyaXgKKwkJCQk2NDA4IDIxNnRoIFN0IFNXCisJCQkJTW91bnRsYWtlIFRlcnJhY2UgV0EgOTgwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUQxICAgKGhleCkJCVNGT00gVGVjaG5vbG9neSBDb3JwLgorMDAwQ0QxICAgICAoYmFzZSAxNikJCVNGT00gVGVjaG5vbG9neSBDb3JwLgorCQkJCU5vLjE4LCBMYW5lIDMyLCBXdWZ1IDFzdCBSZC4sIEx1anUgc2hpYW4KKwkJCQlMdWp1IFNoaWFuZyBUYXV5dWFuIENvdW50eSAzMzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLUQyICAgKGhleCkJCVNjaGFmZm5lciBFTVYgQUcKKzAwMENEMiAgICAgKGJhc2UgMTYpCQlTY2hhZmZuZXIgRU1WIEFHCisJCQkJTm9yZHN0cmFzc2UgMQorCQkJCUx1dGVyYmFjaCAgQ0gtNDU0MgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBDLUQzICAgKGhleCkJCVByZXR0bCBFbGVrdHJvbmlrIFJhZGViZXJnIEdtYkgKKzAwMENEMyAgICAgKGJhc2UgMTYpCQlQcmV0dGwgRWxla3Ryb25payBSYWRlYmVyZyBHbWJICisJCQkJUm9iZXJ0LUJvc2NoLVN0ci4gMTAKKwkJCQlSYWRlYmVyZyBTYXhvbnkgRC0wMTQ1NAorCQkJCUdFUk1BTlkKKworMDAtMEMtRDQgICAoaGV4KQkJUG9zaXRyb24gUHVibGljIFNhZmV0eSBTeXN0ZW1zIGluYy4KKzAwMENENCAgICAgKGJhc2UgMTYpCQlQb3NpdHJvbiBQdWJsaWMgU2FmZXR5IFN5c3RlbXMgaW5jLgorCQkJCTUxMDEgQnVjaGFuCisJCQkJTW9udHJlYWwgUXVlYmVjIEg0UCAyUjkKKwkJCQlDQU5BREEKKworMDAtMEMtRDUgICAoaGV4KQkJUGFzc2F2ZSBJbmMuCiswMDBDRDUgICAgIChiYXNlIDE2KQkJUGFzc2F2ZSBJbmMuCisJCQkJMTU1NyBKYXNwZXIgRHIuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1ENiAgIChoZXgpCQlQQVJUTkVSIFRFQ0gKKzAwMENENiAgICAgKGJhc2UgMTYpCQlQQVJUTkVSIFRFQ0gKKwkJCQkxMEYsIE5PLjIzMy0yLFBBTyBDSElBTyBST0FELCBTSElOIFRJRU4KKwkJCQlUQUlQRUkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtRDcgICAoaGV4KQkJTmFsbGF0ZWNoIEx0ZAorMDAwQ0Q3ICAgICAoYmFzZSAxNikJCU5hbGxhdGVjaCBMdGQKKwkJCQlCb29sZWFuIEhvdXNlCisJCQkJMSBOYXBpZXIgUGFyaywgQ3VtYmVybmF1bGQKKwkJCQlHbGFzZ293IFNjb3RsYW5kIEc2OCAwQkgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQy1EOCAgIChoZXgpCQlNLiBLLiBKdWNoaGVpbSBHbWJIICYgQ28KKzAwMENEOCAgICAgKGJhc2UgMTYpCQlNLiBLLiBKdWNoaGVpbSBHbWJIICYgQ28KKwkJCQlNb2x0a2VzdHIuIDEzIC0gMzEKKwkJCQlGdWxkYSBIZXNzZW4gMzYwMzkKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLUQ5ICAgKGhleCkJCUl0Y2FyZSBDby4sIEx0ZAorMDAwQ0Q5ICAgICAoYmFzZSAxNikJCUl0Y2FyZSBDby4sIEx0ZAorCQkJCTQwOCBLVCBTZW9jaG8sIDEwMDEtMSBCYW5nYmFlLWRvbmcsCisJCQkJU2VvY2hvLWt1CisJCQkJU2VvdWwgIDEzNy04NTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtREEgICAoaGV4KQkJRnJlZUhhbmQgU3lzdGVtcywgSW5jLgorMDAwQ0RBICAgICAoYmFzZSAxNikJCUZyZWVIYW5kIFN5c3RlbXMsIEluYy4KKwkJCQk5NSBGaXJzdCBTdC4KKwkJCQlTdWl0ZSAyMDAKKwkJCQlMb3MgQWx0b3MgQ0EgOTQwMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLURCICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCiswMDBDREIgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtREMgICAoaGV4KQkJQkVDUyBUZWNobm9sb2d5LCBJbmMKKzAwMENEQyAgICAgKGJhc2UgMTYpCQlCRUNTIFRlY2hub2xvZ3ksIEluYworCQkJCTk0ODcgRGllbG1hbiBSb2NrIElzbGFuZCBJbmR1c3RyaWFsIERyaXYKKwkJCQlTdC4gTG91aXMgTU8gNjMxMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUREICAgKGhleCkJCUFPUyBUZWNobm9sb2dpZXMgQUcKKzAwMENERCAgICAgKGJhc2UgMTYpCQlBT1MgVGVjaG5vbG9naWVzIEFHCisJCQkJVGFlZmVybnN0cmFzc2UgMjAKKwkJCQlCYWRlbiAtIERhZXR0d2lsIEFHIENILTU0MDUKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wQy1ERSAgIChoZXgpCQlBQkIgU1RPVFotS09OVEFLVCBHbWJICiswMDBDREUgICAgIChiYXNlIDE2KQkJQUJCIFNUT1RaLUtPTlRBS1QgR21iSAorCQkJCUVwcGVsaGVpbWVyIFN0ci4gODIKKwkJCQlIZWlkZWxiZXJnIEJhZGVuLVf8cnR0ZW1iZXJnIDY5MTIzCisJCQkJR0VSTUFOWQorCiswMC0wQy1ERiAgIChoZXgpCQlQVUxOaVggQW1lcmljYSwgSW5jCiswMDBDREYgICAgIChiYXNlIDE2KQkJUFVMTmlYIEFtZXJpY2EsIEluYworCQkJCTEzMzAgT3JsZWFucyBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtRTAgICAoaGV4KQkJVHJlayBEaWFnbm9zdGljcyBJbmMuCiswMDBDRTAgICAgIChiYXNlIDE2KQkJVHJlayBEaWFnbm9zdGljcyBJbmMuCisJCQkJOTgyIEtleW5vdGUgQ2lyY2xlCisJCQkJU3VpdGUgNgorCQkJCUNsZXZlbGFuZCBPaGlvIDQ0MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FMSAgIChoZXgpCQlUaGUgT3BlbiBHcm91cAorMDAwQ0UxICAgICAoYmFzZSAxNikJCVRoZSBPcGVuIEdyb3VwCisJCQkJQXBleCBQbGF6YQorCQkJCUZvcmJ1cnkgUm9hZAorCQkJCVJlYWRpbmcgQmVya3MgUkcxIDFBWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBDLUUyICAgKGhleCkJCVJvbGxzLVJveWNlCiswMDBDRTIgICAgIChiYXNlIDE2KQkJUm9sbHMtUm95Y2UKKwkJCQkxMDUgTi4gU2FuZHVza3kgU3QuCisJCQkJTXQuIFZlcm5vbiBPaGlvIDQzMDUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FMyAgIChoZXgpCQlPcHRpb24gSW50ZXJuYXRpb25hbCBOLlYuCiswMDBDRTMgICAgIChiYXNlIDE2KQkJT3B0aW9uIEludGVybmF0aW9uYWwgTi5WLgorCQkJCUtvbG9uZWwgQmVnYXVsdGxhYW4gNDUKKwkJCQlMZXV2ZW4gQnJhYmFudCAzMDEyCisJCQkJQkVMR0lVTQorCiswMC0wQy1FNCAgIChoZXgpCQlOZXVyb0NvbSBJbnRlcm5hdGlvbmFsLCBJbmMuCiswMDBDRTQgICAgIChiYXNlIDE2KQkJTmV1cm9Db20gSW50ZXJuYXRpb25hbCwgSW5jLgorCQkJCTk1NzAgU0UgTGF3bmZpZWxkIFJkCisJCQkJQ2xhY2thbWFzIE9SIDk3MDE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FNSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAwQ0U1ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtRTYgICAoaGV4KQkJTWVydSBOZXR3b3JrcyBJbmMKKzAwMENFNiAgICAgKGJhc2UgMTYpCQlNZXJ1IE5ldHdvcmtzIEluYworCQkJCTEzMDkgU291dGggTWFyeSBBdmVudWUsCisJCQkJU3Vubnl2YWxlIENBIDk0MDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FNyAgIChoZXgpCQlNZWRpYVRlayBJbmMuCiswMDBDRTcgICAgIChiYXNlIDE2KQkJTWVkaWFUZWsgSW5jLgorCQkJCTFGLCBOby4gMTMsIElubm92YXRpb24gUm9hZCAxLAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy1FOCAgIChoZXgpCQlHdWFuZ1pob3UgQW5KdUJhbyBDby4sIEx0ZAorMDAwQ0U4ICAgICAoYmFzZSAxNikJCUd1YW5nWmhvdSBBbkp1QmFvIENvLiwgTHRkCisJCQkJSGVpUWlhb1RhbmcgVGFuZ1hpYSBUaWFuSGUKKwkJCQlHdWFuZ1pob3UgR3VhbmdEb25nIDUxMDY2NQorCQkJCUNISU5BCisKKzAwLTBDLUU5ICAgKGhleCkJCUJMT09NQkVSRyBMLlAuCiswMDBDRTkgICAgIChiYXNlIDE2KQkJQkxPT01CRVJHIEwuUC4KKwkJCQk3MzEgTGV4aW5ndG9uIEF2ZQorCQkJCU5FVyBZT1JLIE5FVyBZT1JLIDEwMDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FQSAgIChoZXgpCQlhcGhvbmEgS29tbXVuaWthdGlvbnNzeXN0ZW1lCiswMDBDRUEgICAgIChiYXNlIDE2KQkJYXBob25hIEtvbW11bmlrYXRpb25zc3lzdGVtZQorCQkJCUVudHdpY2tsdW5ncy0gdW5kIFZlcnRyaWVic2dtYkgKKwkJCQlEZXV0c2Noc3RyYd9lIDQKKwkJCQlXaWVuICAxMjMwCisJCQkJQVVTVFJJQQorCiswMC0wQy1FQiAgIChoZXgpCQlDTk1QIE5ldHdvcmtzLCBJbmMuCiswMDBDRUIgICAgIChiYXNlIDE2KQkJQ05NUCBOZXR3b3JrcywgSW5jLgorCQkJCTEyNDUgUy4gV2luY2hlc3RlciBCbHZkLgorCQkJCVN1aXRlIDIwOAorCQkJCVNhbiBKb3NlIENBIDk1MTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FQyAgIChoZXgpCQlTcGVjdHJhY29tIENvcnAuCiswMDBDRUMgICAgIChiYXNlIDE2KQkJU3BlY3RyYWNvbSBDb3JwLgorCQkJCTk1IE1ldGhvZGlzdCBIaWxsIERyaXZlCisJCQkJU3VpdGUgNTAwCisJCQkJUm9jaGVzdGVyIE5ZIDE0NjIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FRCAgIChoZXgpCQlSZWFsIERpZ2l0YWwgTWVkaWEKKzAwMENFRCAgICAgKGJhc2UgMTYpCQlSZWFsIERpZ2l0YWwgTWVkaWEKKwkJCQk0ODUgTm9ydGggS2VsbGVyIFJvYWQKKwkJCQlTdWl0ZSAxNDAKKwkJCQlNYWl0bGFuZCBGTCAzMjc1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtRUUgICAoaGV4KQkJanAtZW1iZWRkZWQKKzAwMENFRSAgICAgKGJhc2UgMTYpCQlqcC1lbWJlZGRlZAorCQkJCUJ1ZW4gMjEsIE5yLiBEYWxieQorCQkJCUJvcnVwICA0MTQwCisJCQkJREVOTUFSSworCiswMC0wQy1FRiAgIChoZXgpCQlPcGVuIE5ldHdvcmtzIEVuZ2luZWVyaW5nIEx0ZAorMDAwQ0VGICAgICAoYmFzZSAxNikJCU9wZW4gTmV0d29ya3MgRW5naW5lZXJpbmcgTHRkCisJCQkJQ2xhc3NpYyBIb3VzZQorCQkJCVJheW5oYW0gUm9hZAorCQkJCUJpc2hvcCdzIFN0b3J0Zm9yZCBIZXJ0Zm9yZHNoaXJlIENNMjMgNVBECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEMtRjAgICAoaGV4KQkJTSAmIE4gR21iSAorMDAwQ0YwICAgICAoYmFzZSAxNikJCU0gJiBOIEdtYkgKKwkJCQlEaWVzZWxzdHIgMTgKKwkJCQlSb3NiYWNoIHYuZC5ILiBIZXNzZW4gNjExOTEKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLUYxICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDBDRjEgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlNUzogSkYzLTQyMAorCQkJCTIxMTEgTkUgMjV0aCBBdmVudWUKKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUYyICAgKGhleCkJCUdBTUVTQSBF00xJQ0EKKzAwMENGMiAgICAgKGJhc2UgMTYpCQlHQU1FU0EgRdNMSUNBCisJCQkJUG9s7Wdvbm8gQWd1c3Rpbm9zIHMvbgorCQkJCVBhbXBsb25hIE5BVkFSUkEgMzEwMTMKKwkJCQlTUEFJTgorCiswMC0wQy1GMyAgIChoZXgpCQlDQUxMIElNQUdFIFNBCiswMDBDRjMgICAgIChiYXNlIDE2KQkJQ0FMTCBJTUFHRSBTQQorCQkJCTg2NyBSb3V0ZSBJbXBlcmlhbGUKKwkJCQlCQUlMTEFSR1VFUyAgMzQ2NzAKKwkJCQlGUkFOQ0UKKworMDAtMEMtRjQgICAoaGV4KQkJQUtBVFNVS0kgRUxFQ1RSSUMgTUZHLkNPLixMVEQuCiswMDBDRjQgICAgIChiYXNlIDE2KQkJQUtBVFNVS0kgRUxFQ1RSSUMgTUZHLkNPLixMVEQuCisJCQkJNTkzLTEsYW9qaa0gY2hvCisJCQkJa3VzYXRzda0gc2hpIHNoaWdhIDUyNS0wMDQxCisJCQkJSkFQQU4KKworMDAtMEMtRjUgICAoaGV4KQkJSW5mb0V4cHJlc3MKKzAwMENGNSAgICAgKGJhc2UgMTYpCQlJbmZvRXhwcmVzcworCQkJCTE3MCBTLiBXaGlzbWFuIFJvYWQsIFN1aXRlIEIKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1GNiAgIChoZXgpCQlTaXRlY29tIEV1cm9wZSBCVgorMDAwQ0Y2ICAgICAoYmFzZSAxNikJCVNpdGVjb20gRXVyb3BlIEJWCisJCQkJU2V2aWxsYXdlZyAxMjIKKwkJCQlSb3R0ZXJkYW0gWkggMzA0NyBBTAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBDLUY3ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwQ0Y3ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUmQuCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTBDLUY4ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwQ0Y4ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJMDM2IENDIDEwMQorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0wQy1GOSAgIChoZXgpCQlJVFQgRmx5Z3QgQUIKKzAwMENGOSAgICAgKGJhc2UgMTYpCQlJVFQgRmx5Z3QgQUIKKwkJCQlQTyBCb3ggMjA1OAorCQkJCUluZHVzdHJpZ2F0YW4gNTAKKwkJCQlLcmlzdGlhbnN0YWQgIDI5MSAwMgorCQkJCVNXRURFTgorCiswMC0wQy1GQSAgIChoZXgpCQlEaWdpdGFsIFN5c3RlbXMgQ29ycAorMDAwQ0ZBICAgICAoYmFzZSAxNikJCURpZ2l0YWwgU3lzdGVtcyBDb3JwCisJCQkJMyBOb3J0aCBNYWluIFN0cmVldAorCQkJCVBPIEJveCAxNTgKKwkJCQlXYWxrZXJzdmlsbGUgTWFyeWxhbmQgMjE3OTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUZCICAgKGhleCkJCUtvcmVhIE5ldHdvcmsgU3lzdGVtcworMDAwQ0ZCICAgICAoYmFzZSAxNikJCUtvcmVhIE5ldHdvcmsgU3lzdGVtcworCQkJCTIwNiAgSmFuZ1lvdW5nU2lsIEJsZGcsIDE2ODgtNQorCQkJCVNoaW5pbC1Eb25nLCBUYWVkZW9rLUd1CisJCQkJVGFlamVvbiAgMzA2LTIzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy1GQyAgIChoZXgpCQlTMmlvIFRlY2hub2xvZ2llcyBDb3JwCiswMDBDRkMgICAgIChiYXNlIDE2KQkJUzJpbyBUZWNobm9sb2dpZXMgQ29ycAorCQkJCTUwNSBNYXJjaCBSZAorCQkJCVN1aXRlIDEyMAorCQkJCU90dGF3YSBPbnRhcmlvIEsySyAyTTUKKwkJCQlDQU5BREEKKworMDAtMEMtRkQgICAoaGV4KQkJSHl1bmRhaSBJbWFnZVF1ZXN0IENvLixMdGQuCiswMDBDRkQgICAgIChiYXNlIDE2KQkJSHl1bmRhaSBJbWFnZVF1ZXN0IENvLixMdGQuCisJCQkJU2FuIDEzNi0xLCBBbWktcmksIEJ1YmFsLWV1YgorCQkJCUljaG9uLXNpIEt5b3VuZyBraS1kbyA0NjctNzAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLUZFICAgKGhleCkJCUdyYW5kIEVsZWN0cm9uaWMgQ28uLCBMdGQKKzAwMENGRSAgICAgKGJhc2UgMTYpCQlHcmFuZCBFbGVjdHJvbmljIENvLiwgTHRkCisJCQkJUm9vbSAxNzEwLCBCbG9jayBCIEx1Y2t5IHRvd2VyLCBOby4zIERvbgorCQkJCUJlaWppbmcgIDEwMDAyNworCQkJCUNISU5BCisKKzAwLTBDLUZGICAgKGhleCkJCU1STy1URUsgTElNSVRFRAorMDAwQ0ZGICAgICAoYmFzZSAxNikJCU1STy1URUsgTElNSVRFRAorCQkJCTE0LCAxU1QgRCBNQUlOIFJPQUQsCisJCQkJR0FOR0EgTkFHQVIKKwkJCQlCQU5HQUxPUkUgS0FSTkFUQUtBIDU2MDAzMgorCQkJCUlORElBCisKKzAwLTBELTAwICAgKGhleCkJCVNlYXdheSBOZXR3b3JrcyBJbmMuCiswMDBEMDAgICAgIChiYXNlIDE2KQkJU2Vhd2F5IE5ldHdvcmtzIEluYy4KKwkJCQkxIENocnlzYWxpcyBXYXkKKwkJCQlPdHRhd2EgT250YXJpbyBLMkcgNlA5CisJCQkJQ0FOQURBCisKKzAwLTBELTAxICAgKGhleCkJCVAmRSBNaWNyb2NvbXB1dGVyIFN5c3RlbXMsIEluYy4KKzAwMEQwMSAgICAgKGJhc2UgMTYpCQlQJkUgTWljcm9jb21wdXRlciBTeXN0ZW1zLCBJbmMuCisJCQkJNzEwIENvbW1vbndlYWx0aCBBdmUKKwkJCQlCb3N0b24gTWEgMDIyMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTAyICAgKGhleCkJCU5FQyBBY2Nlc3NUZWNobmljYSwgTHRkLgorMDAwRDAyICAgICAoYmFzZSAxNikJCU5FQyBBY2Nlc3NUZWNobmljYSwgTHRkLgorCQkJCTgwMCBTaGltb21hdGEKKwkJCQlLYWtlZ2F3YSBTaGl6dW9rYSA0MzYtODUwMQorCQkJCUpBUEFOCisKKzAwLTBELTAzICAgKGhleCkJCU1hdHJpY3MsIEluYy4KKzAwMEQwMyAgICAgKGJhc2UgMTYpCQlNYXRyaWNzLCBJbmMuCisJCQkJODg1MCBTdGFuZm9yZCBCbHZkCisJCQkJU3VpdGUgMzAwMAorCQkJCUNvbHVtYmlhIE1EIDIxMDQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0wNCAgIChoZXgpCQlGb3hib3JvIEVja2FyZHQgRGV2ZWxvcG1lbnQgR21iSAorMDAwRDA0ICAgICAoYmFzZSAxNikJCUZveGJvcm8gRWNrYXJkdCBEZXZlbG9wbWVudCBHbWJICisJCQkJR2xvY2tlbnN0cmFzc2UgNTIKKwkJCQlTdHV0dGdhcnQgQmFkZW4tV/xydHRlbWJlcmcgNzAzNzYKKwkJCQlHRVJNQU5ZCisKKzAwLTBELTA1ICAgKGhleCkJCWN5YmVybmV0IG1hbnVmYWN0dXJpbmcgaW5jLgorMDAwRDA1ICAgICAoYmFzZSAxNikJCWN5YmVybmV0IG1hbnVmYWN0dXJpbmcgaW5jLgorCQkJCTUwMDEgQmlyY2ggU3RyZWV0CisJCQkJTmV3cG9ydCBCZWFjaCBjYSA5MjY2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMDYgICAoaGV4KQkJQ29tcHVsb2dpYyBMaW1pdGVkCiswMDBEMDYgICAgIChiYXNlIDE2KQkJQ29tcHVsb2dpYyBMaW1pdGVkCisJCQkJVW5pdCBXMywgTUsgVFdPIEJ1c2luZXNzIENlbnRyZQorCQkJCUJhcnRvbiBSb2FkCisJCQkJV2F0ZXIgRWF0b24gTWlsdG9uIEtleW5lcyBNSzIgM0hVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEQtMDcgICAoaGV4KQkJQ2FscmVjIEF1ZGlvIEx0ZAorMDAwRDA3ICAgICAoYmFzZSAxNikJCUNhbHJlYyBBdWRpbyBMdGQKKwkJCQlOdXRjbG91Z2ggTWlsbAorCQkJCUhlYmRlbiBCcmlkZ2UgV2VzdCBZb3Jrc2hpcmUgSFg3IDhFWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBELTA4ICAgKGhleCkJCUFib3ZlQ2FibGUsIEluYy4KKzAwMEQwOCAgICAgKGJhc2UgMTYpCQlBYm92ZUNhYmxlLCBJbmMuCisJCQkJODQwMyBDb2xlc3ZpbGxlIFJvYWQsICM4MjUKKwkJCQlTaWx2ZXIgU3ByaW5nIE1EIDIwOTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0wOSAgIChoZXgpCQlZdWVodWEoWmh1aGFpKSBFbGVjdHJvbmljIENPLiBMVEQKKzAwMEQwOSAgICAgKGJhc2UgMTYpCQlZdWVodWEoWmh1aGFpKSBFbGVjdHJvbmljIENPLiBMVEQKKwkJCQk0UmQgUGluZ2RvbmcsTmFucGluZyBTY2llbmNlICYgVGVjaG5vbG9nCisJCQkJWmh1aGFpIEd1YW5nZG9uZyA1MTkwNzAKKwkJCQlDSElOQQorCiswMC0wRC0wQSAgIChoZXgpCQlQcm9qZWN0aW9uZGVzaWduIGFzCiswMDBEMEEgICAgIChiYXNlIDE2KQkJUHJvamVjdGlvbmRlc2lnbiBhcworCQkJCUhhYm9ybnZlaWVuIDUzCisJCQkJR2FtbGUgRnJlZHJpa3N0YWQgTi0xNjMwCisJCQkJTk9SV0FZCisKKzAwLTBELTBCICAgKGhleCkJCUJ1ZmZhbG8gSW5jLgorMDAwRDBCICAgICAoYmFzZSAxNikJCUJ1ZmZhbG8gSW5jLgorCQkJCU1FTENPIEhJLVRFQ0ggQ0VOVEVSLAorCQkJCVNISUJBVEEgSE9ORE9SSSA0LTE1IE1JTkFNSS1LVSwKKwkJCQlOQUdPWUEgIDQ1Ny04NTIwCisJCQkJSkFQQU4KKworMDAtMEQtMEMgICAoaGV4KQkJTURJIFNlY3VyaXR5IFN5c3RlbXMKKzAwMEQwQyAgICAgKGJhc2UgMTYpCQlNREkgU2VjdXJpdHkgU3lzdGVtcworCQkJCTk1MTggTmludGggU3RyZWV0CisJCQkJUmFuY2hvIEN1Y2Ftb25nYSBDQSA5MTczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMEQgICAoaGV4KQkJSVRTdXBwb3J0ZWQsIExMQworMDAwRDBEICAgICAoYmFzZSAxNikJCUlUU3VwcG9ydGVkLCBMTEMKKwkJCQk0OTg5IFBlYWNodHJlZSBQYXJrd2F5CisJCQkJU1RFIDIwMAorCQkJCU5vcmNyb3NzIEdBIDMwMDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0wRSAgIChoZXgpCQlJbnFuZXQgU3lzdGVtcywgSW5jLgorMDAwRDBFICAgICAoYmFzZSAxNikJCUlucW5ldCBTeXN0ZW1zLCBJbmMuCisJCQkJMzIxIE5LSUMgQ2VudGVyCisJCQkJNDgtODQgSG9uZ2V1bi1kb25nLCBTZW9kYWVtdW4ta3UKKwkJCQlTZW91bCAgMTIwLTEwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC0wRiAgIChoZXgpCQlGaW5sdXggTHRkCiswMDBEMEYgICAgIChiYXNlIDE2KQkJRmlubHV4IEx0ZAorCQkJCVJhZGlvbWllaGVua2F0dSAzCisJCQkJVHVya3UgIEZJTi0yMDMyMQorCQkJCUZJTkxBTkQKKworMDAtMEQtMTAgICAoaGV4KQkJRW1iZWR0cm9uaWNzIE95CiswMDBEMTAgICAgIChiYXNlIDE2KQkJRW1iZWR0cm9uaWNzIE95CisJCQkJVW5rYXJpbnBvbGt1IDIwCisJCQkJS3VvcGlvICA3MDgyMAorCQkJCUZJTkxBTkQKKworMDAtMEQtMTEgICAoaGV4KQkJREVOVFNQTFkgLSBHZW5kZXgKKzAwMEQxMSAgICAgKGJhc2UgMTYpCQlERU5UU1BMWSAtIEdlbmRleAorCQkJCTkwMSBXZXN0IE9ha3RvbiBTdHJlZXQKKwkJCQlEZXMgUGxhaW5lcyBJTCA2MDAxOC0xODg0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0xMiAgIChoZXgpCQlBWEVMTCBDb3Jwb3JhdGlvbgorMDAwRDEyICAgICAoYmFzZSAxNikJCUFYRUxMIENvcnBvcmF0aW9uCisJCQkJQWtpaGFiYXJhIFVEWCBTb3V0aCBXaW5nIDEwRgorCQkJCTQtMTQtMSBTb3Rva2FuZGEKKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMS04OTczCisJCQkJSkFQQU4KKworMDAtMEQtMTMgICAoaGV4KQkJV2lsaGVsbSBSdXRlbmJlY2sgR21iSCZDby4KKzAwMEQxMyAgICAgKGJhc2UgMTYpCQlXaWxoZWxtIFJ1dGVuYmVjayBHbWJIJkNvLgorCQkJCU5pZWRlcndvcnRoIDEtMTAKKwkJCQlTY2hhbGtzbfxobGUgTlJXIDU4NTc5CisJCQkJR0VSTUFOWQorCiswMC0wRC0xNCAgIChoZXgpCQlWdGVjaCBJbm5vdmF0aW9uIExQIGRiYSBBZHZhbmNlZCBBbWVyaWNhbiBUZWxlcGhvbmVzCiswMDBEMTQgICAgIChiYXNlIDE2KQkJVnRlY2ggSW5ub3ZhdGlvbiBMUCBkYmEgQWR2YW5jZWQgQW1lcmljYW4gVGVsZXBob25lcworCQkJCTIwMy02MDAgUGFyc2lwcGFueSBSZAorCQkJCVBhcnNpcHBhbnkgTkogMDcwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTE1ICAgKGhleCkJCVZvaXBhYyBzLnIuby4KKzAwMEQxNSAgICAgKGJhc2UgMTYpCQlWb2lwYWMgcy5yLm8uCisJCQkJVWwuIEphbmthIEtyYWxhIDMKKwkJCQlUcmVuY2luICA5MTEgMDEKKwkJCQlTTE9WQUtJQQorCiswMC0wRC0xNiAgIChoZXgpCQlVSFMgU3lzdGVtcyBQdHkgTHRkCiswMDBEMTYgICAgIChiYXNlIDE2KQkJVUhTIFN5c3RlbXMgUHR5IEx0ZAorCQkJCVBPIEJveCA2MjY0CisJCQkJU291dGggU3lkbmV5IEJ1c2luZXNzIEh1YgorCQkJCUFsZXhhbmRyaWEgTlNXIDIwMTUKKwkJCQlBVVNUUkFMSUEKKworMDAtMEQtMTcgICAoaGV4KQkJVHVyYm8gTmV0d29ya3MgQ28uTHRkCiswMDBEMTcgICAgIChiYXNlIDE2KQkJVHVyYm8gTmV0d29ya3MgQ28uTHRkCisJCQkJMkYsTm8gMTIyMywgQ2h1bmcgQ2hlbmcgUmQuCisJCQkJVGFvIFl1YW4gIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtMTggICAoaGV4KQkJTWVnYS1UcmVuZCBFbGVjdHJvbmljcyBDTy4sIExURC4KKzAwMEQxOCAgICAgKGJhc2UgMTYpCQlNZWdhLVRyZW5kIEVsZWN0cm9uaWNzIENPLiwgTFRELgorCQkJCVRvbmcgRnUgWXUgSW5kLiwgS3UgS2VuZyBWaWxsYWdlLCBHdWFuIExhbgorCQkJCVNoZW5nemhlbiBHdWFuZyBEb25nIDUxODExMAorCQkJCUNISU5BCisKKzAwLTBELTE5ICAgKGhleCkJCVJPQkUgU2hvdyBsaWdodGluZworMDAwRDE5ICAgICAoYmFzZSAxNikJCVJPQkUgU2hvdyBsaWdodGluZworCQkJCUhhem92aWNlIDIwOTAKKwkJCQlSb3pub3YgcG9kIFJhZGhvc3RlbSAgNzU2IDYxCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMEQtMUEgICAoaGV4KQkJTXVzdGVrIFN5c3RlbSBJbmMuCiswMDBEMUEgICAgIChiYXNlIDE2KQkJTXVzdGVrIFN5c3RlbSBJbmMuCisJCQkJTm8uIDI1LCBSJkQgUm9hZCwgU2NpZW5jZS1CYXNlZCBJbmR1c3RyaQorCQkJCUhzaW4tQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTFCICAgKGhleCkJCUt5b3RvIEVsZWN0cm9uaWNzIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCiswMDBEMUIgICAgIChiYXNlIDE2KQkJS3lvdG8gRWxlY3Ryb25pY3MgTWFudWZhY3R1cmluZyBDby4sIEx0ZC4KKwkJCQk1Ni0yLCBOaW5vZGFuLWNobywgU2hpbmRlbiwKKwkJCQlLaXNzaG9pbiwgTWluYW1pLWt1LAorCQkJCUt5b3RvLUNpdHkgS3lvdG8gUHJlZmVjdHVyZSA2MDEtODMxNworCQkJCUpBUEFOCisKKzAwLTBELTFDICAgKGhleCkJCUFtZXN5cyBEZWZlbnNlCiswMDBEMUMgICAgIChiYXNlIDE2KQkJQW1lc3lzIERlZmVuc2UKKwkJCQkxMDMwIEF2IGRlIGxhIExBVVpJRVJFCisJCQkJWkFDIGRlIFBpY2hhdXJ5IElJIExlcyBNaWxsZXMgQlAgMjAgMTQwCisJCQkJQUlYIGVuIFBST1ZFTkNFIENlZGV4IDAzIDEzNzk0CisJCQkJRlJBTkNFCisKKzAwLTBELTFEICAgKGhleCkJCUhJR0gtVEVLIEhBUk5FU1MgRU5ULiBDTy4sIExURC4KKzAwMEQxRCAgICAgKGJhc2UgMTYpCQlISUdILVRFSyBIQVJORVNTIEVOVC4gQ08uLCBMVEQuCisJCQkJNEYtNiwgTm8xOCwgUHUtVGluZyBSZC4gSHNpbmNodSwgVGFpd2FuCisJCQkJNEYsIE5vMTYsIExhbmU1MCwgU2VjMywgTmFuLUthbmcgUmQsIE5hbgorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtMUUgICAoaGV4KQkJQ29udHJvbCBUZWNobmlxdWVzCiswMDBEMUUgICAgIChiYXNlIDE2KQkJQ29udHJvbCBUZWNobmlxdWVzCisJCQkJVGhlIEdybworCQkJCVBvb2wgUm9hZAorCQkJCU5ld3Rvd24gUG93eXMgU1kxNiAzQkUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC0xRiAgIChoZXgpCQlBViBEaWdpdGFsCiswMDBEMUYgICAgIChiYXNlIDE2KQkJQVYgRGlnaXRhbAorCQkJCVBvdHRlbmRvcmZlciBTdHJhc3NlIDI1LTI3LzQvMS8xCisJCQkJV2llbiAgMTEyMAorCQkJCUFVU1RSSUEKKworMDAtMEQtMjAgICAoaGV4KQkJQVNBSElLQVNFSSBURUNITk9TWVNURU0gQ08uLExURC4KKzAwMEQyMCAgICAgKGJhc2UgMTYpCQlBU0FISUtBU0VJIFRFQ0hOT1NZU1RFTSBDTy4sTFRELgorCQkJCUthbmRhIEppbmJvY2hvIDEtMTA1CisJCQkJMjMtNyxOaXNoaXNoaW5qdWt1IDEtY2hvbWUKKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMS04MTAxCisJCQkJSkFQQU4KKworMDAtMEQtMjEgICAoaGV4KQkJV0lTQ09SRSBJbmMuCiswMDBEMjEgICAgIChiYXNlIDE2KQkJV0lTQ09SRSBJbmMuCisJCQkJNkYsIE5vLiAxODAsIFNlYy4gMiwgRHVlbmh1YSBTLiBSZCwKKwkJCQlUYWlwZWkgIDEwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtMjIgICAoaGV4KQkJVW5pdHJvbmljcyBMVEQKKzAwMEQyMiAgICAgKGJhc2UgMTYpCQlVbml0cm9uaWNzIExURAorCQkJCVVuaXRyb25pY3MgQnVpbGRpbmcKKwkJCQlBaXJwb3J0IENpdHksIFAuTy5CIDMwMAorCQkJCUJlbiBHdXJpb24gQWlycG9ydCAgNzAxMDAKKwkJCQlJU1JBRUwKKworMDAtMEQtMjMgICAoaGV4KQkJU21hcnQgU29sdXRpb24sIEluYworMDAwRDIzICAgICAoYmFzZSAxNikJCVNtYXJ0IFNvbHV0aW9uLCBJbmMKKwkJCQk0NjUgV2VzdCBMYXduZGFsZSAjQgorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0yNCAgIChoZXgpCQlTRU5URUMgRSZFIENPLiwgTFRELgorMDAwRDI0ICAgICAoYmFzZSAxNikJCVNFTlRFQyBFJkUgQ08uLCBMVEQuCisJCQkJTm8uIDMyLiBHb25nNSBSZC4KKwkJCQlMdW5ndGFuIFRhb3l1YW4gMzI1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC0yNSAgIChoZXgpCQlTQU5ERU4gQ09SUE9SQVRJT04KKzAwMEQyNSAgICAgKGJhc2UgMTYpCQlTQU5ERU4gQ09SUE9SQVRJT04KKwkJCQkyMCBLb3RvYnVraS1jaG8KKwkJCQlJc2VzYWtpLXNoaSBHdW5tYSAzNzItODUwMgorCQkJCUpBUEFOCisKKzAwLTBELTI2ICAgKGhleCkJCVByaW1hZ3JhcGhpY3MgTGltaXRlZAorMDAwRDI2ICAgICAoYmFzZSAxNikJCVByaW1hZ3JhcGhpY3MgTGltaXRlZAorCQkJCUNhbWJyaWRnZSBIb3VzZSwgTm8uMiBGb2N1cyBGb3VyCisJCQkJRm91cnRoIEF2ZW51ZQorCQkJCUxldGNod29ydGggR2FyZGVuIENpdHkgSGVydGZvcmRzaGlyZSBTRzYgMlRVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEQtMjcgICAoaGV4KQkJTUlDUk9QTEVYIFByaW50d2FyZSBBRworMDAwRDI3ICAgICAoYmFzZSAxNikJCU1JQ1JPUExFWCBQcmludHdhcmUgQUcKKwkJCQlQYW56ZXJzdHJh32UgNQorCQkJCVZhcmVsIE5pZWRlcnNhY2hzZW4gMjYzMTYKKwkJCQlHRVJNQU5ZCisKKzAwLTBELTI4ICAgKGhleCkJCUNpc2NvCiswMDBEMjggICAgIChiYXNlIDE2KQkJQ2lzY28KKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMjkgICAoaGV4KQkJQ2lzY28KKzAwMEQyOSAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0yQSAgIChoZXgpCQlTY2FubWF0aWMgQVMKKzAwMEQyQSAgICAgKGJhc2UgMTYpCQlTY2FubWF0aWMgQVMKKwkJCQlLaWxzdW5kCisJCQkJU3RhdWL4ICA0OTIwCisJCQkJTk9SV0FZCisKKzAwLTBELTJCICAgKGhleCkJCVJhY2FsIEluc3RydW1lbnRzCiswMDBEMkIgICAgIChiYXNlIDE2KQkJUmFjYWwgSW5zdHJ1bWVudHMKKwkJCQk0IEdvb2R5ZWFyIFN0cmVldAorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMkMgICAoaGV4KQkJUGF0YXBzY28gRGVzaWducyBMdGQKKzAwMEQyQyAgICAgKGJhc2UgMTYpCQlQYXRhcHNjbyBEZXNpZ25zIEx0ZAorCQkJCVRoZSBQYXNzZmllbGQgT2FrCisJCQkJUGFzc2ZpZWxkCisJCQkJTnIgTGlwaG9vayBIYW1wc2hpcmUgR1UzMCA3UkwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC0yRCAgIChoZXgpCQlOQ1QgRGV1dHNjaGxhbmQgR21iSAorMDAwRDJEICAgICAoYmFzZSAxNikJCU5DVCBEZXV0c2NobGFuZCBHbWJICisJCQkJV2lsZGVuYnJ1Y2hzdHIuIDE1CisJCQkJSmVuYSBUaPxyaW5nZW4gMDc3NDUKKwkJCQlHRVJNQU5ZCisKKzAwLTBELTJFICAgKGhleCkJCU1hdHN1c2hpdGEgQXZpb25pY3MgU3lzdGVtcyBDb3Jwb3JhdGlvbgorMDAwRDJFICAgICAoYmFzZSAxNikJCU1hdHN1c2hpdGEgQXZpb25pY3MgU3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTI2MjAwIEVudGVycHJpc2UgV2F5CisJCQkJTGFrZSBGb3Jlc3QgQ0EgOTI2MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTJGICAgKGhleCkJCUFJTiBDb21tLlRlY2guQ28uLCBMVEQKKzAwMEQyRiAgICAgKGJhc2UgMTYpCQlBSU4gQ29tbS5UZWNoLkNvLiwgTFRECisJCQkJNEYsIE5vLjc2LCBTZWMyIE1pbnR6dSBSZAorCQkJCUp1bmctTGkgQ2l0eSAgMzIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC0zMCAgIChoZXgpCQlJY2VGeXJlIFNlbWljb25kdWN0b3IKKzAwMEQzMCAgICAgKGJhc2UgMTYpCQlJY2VGeXJlIFNlbWljb25kdWN0b3IKKwkJCQlTdWl0ZSAzMDAKKwkJCQk0MTEgTGVnZ2V0dCBEcml2ZQorCQkJCUthbmF0YSBPbnRhcmlvIEsySyAzQzkKKwkJCQlDQU5BREEKKworMDAtMEQtMzEgICAoaGV4KQkJQ29tcGVsbGVudCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEQzMSAgICAgKGJhc2UgMTYpCQlDb21wZWxsZW50IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTc2MjUgU21ldGFuYSBMYW5lCisJCQkJRWRlbiBQcmFpcmllIE1pbm5lc290YSA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMzIgICAoaGV4KQkJRGlzcGVuc2VTb3VyY2UsIEluYy4KKzAwMEQzMiAgICAgKGJhc2UgMTYpCQlEaXNwZW5zZVNvdXJjZSwgSW5jLgorCQkJCTI5ODAxIFNhbnRhIE1hcmdhcml0YSBQYXJrd2F5CisJCQkJUmFuY2hvIFNhbnRhIE1hcmdhcml0YSBDQSA5MjY4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMzMgICAoaGV4KQkJUHJlZGl3YXZlIENvcnAuCiswMDBEMzMgICAgIChiYXNlIDE2KQkJUHJlZGl3YXZlIENvcnAuCisJCQkJNDg0MzEgTWlsbW9udCBEcml2ZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTM0ICAgKGhleCkJCVNoZWxsIEludGVybmF0aW9uYWwgRXhwbG9yYXRpb24gYW5kIFByb2R1Y3Rpb24sIEluYy4KKzAwMEQzNCAgICAgKGJhc2UgMTYpCQlTaGVsbCBJbnRlcm5hdGlvbmFsIEV4cGxvcmF0aW9uIGFuZCBQcm9kdWN0aW9uLCBJbmMuCisJCQkJQlRDLUdhc21lcgorCQkJCVBPIEJveCA0ODEKKwkJCQlIb3VzdG9uIFRYIDc3MDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0zNSAgIChoZXgpCQlQQUMgSW50ZXJuYXRpb25hbCBMdGQKKzAwMEQzNSAgICAgKGJhc2UgMTYpCQlQQUMgSW50ZXJuYXRpb25hbCBMdGQKKwkJCQkxIFBhcmsgR2F0ZSBDbG9zZQorCQkJCUJyZWRidXJ5CisJCQkJU3RvY2twb3J0IENoZXNoaXJlIFNLNiAyU1oKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC0zNiAgIChoZXgpCQlXdSBIYW4gUm91dG9uIEVsZWN0cm9uaWMgQ28uLCBMdGQKKzAwMEQzNiAgICAgKGJhc2UgMTYpCQlXdSBIYW4gUm91dG9uIEVsZWN0cm9uaWMgQ28uLCBMdGQKKwkJCQlNaWFvIFNoYW4gRGlzdHJpY3QsIEVhc3QgTGFrZSBIaS1UZWNoCisJCQkJRGV2ZWxvcG1lbnQgUGFyaworCQkJCVd1aGFuIEh1YmVpIDQzMDIyMworCQkJCUNISU5BCisKKzAwLTBELTM3ICAgKGhleCkJCVdJUExVRworMDAwRDM3ICAgICAoYmFzZSAxNikJCVdJUExVRworCQkJCVJVQSAgRFIuIEFHT1NUSU5ITyBHT1VMQU8KKwkJCQlCQUlSUk86IENPUlJFQVMKKwkJCQlQRVRST1BPTElTIFJJTyBKQU5FSVJPIDI1NzMwMDUwCisJCQkJQlJBWklMCisKKzAwLTBELTM4ICAgKGhleCkJCU5JU1NJTiBJTkMuCiswMDBEMzggICAgIChiYXNlIDE2KQkJTklTU0lOIElOQy4KKwkJCQkxMC03IEtBTUVJLUNITworCQkJCVRBS0FSQVpVS0EgSFlPR08gNjY1LTAwNDcKKwkJCQlKQVBBTgorCiswMC0wRC0zOSAgIChoZXgpCQlOZXR3b3JrIEVsZWN0cm9uaWNzCiswMDBEMzkgICAgIChiYXNlIDE2KQkJTmV0d29yayBFbGVjdHJvbmljcworCQkJCUJveCAxMDIwCisJCQkJU2FuZGVmam9yZCBTYW5kZWZqb3JkIE4zMjA0CisJCQkJTk9SV0FZCisKKzAwLTBELTNBICAgKGhleCkJCU1pY3Jvc29mdCBDb3JwLgorMDAwRDNBICAgICAoYmFzZSAxNikJCU1pY3Jvc29mdCBDb3JwLgorCQkJCU9uZSBNaWNyb3NvZnQgV2F5CisJCQkJUmVkbW9uZCBXYS4gOTgwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTNCICAgKGhleCkJCU1pY3JvZWxlY3Ryb25pY3MgVGVjaG5vbG9neSBJbmMuCiswMDBEM0IgICAgIChiYXNlIDE2KQkJTWljcm9lbGVjdHJvbmljcyBUZWNobm9sb2d5IEluYy4KKwkJCQlObzEsIElubm92YXRpb24gUm9hZCBJSQorCQkJCUhzaW5jaHUgU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQkzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTNDICAgKGhleCkJCWkuVGVjaCBEeW5hbWljIEx0ZAorMDAwRDNDICAgICAoYmFzZSAxNikJCWkuVGVjaCBEeW5hbWljIEx0ZAorCQkJCVJvb20gMTExMiwgTWV0cm9wbGF6YSBUb3dlciAyLCAyMjMgSGluZworCQkJCTg1MgorCQkJCUhPTkcgS09ORworCiswMC0wRC0zRCAgIChoZXgpCQlIYW1tZXJoZWFkIFN5c3RlbXMsIEluYy4KKzAwMEQzRCAgICAgKGJhc2UgMTYpCQlIYW1tZXJoZWFkIFN5c3RlbXMsIEluYy4KKwkJCQk2NDAgQ2x5ZGUgQ291cnQKKwkJCQlNb3VudGFpbiBWaWV3IENhbGlmb3JuaWEgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTNFICAgKGhleCkJCUFQTFVYIENvbW11bmljYXRpb25zIEx0ZC4KKzAwMEQzRSAgICAgKGJhc2UgMTYpCQlBUExVWCBDb21tdW5pY2F0aW9ucyBMdGQuCisJCQkJMTBGLCBOby4gMTY2LCBEYWgtWWVoIFJkLiwgUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTNGICAgKGhleCkJCVZUSSBJbnN0cnVtZW50cyBDb3Jwb3JhdGlvbgorMDAwRDNGICAgICAoYmFzZSAxNikJCVZUSSBJbnN0cnVtZW50cyBDb3Jwb3JhdGlvbgorCQkJCTU0MjUgV2FybmVyIFJvYWQsIFN1aXRlIDEzCisJCQkJVmFsbGV5IFZpZXcgT0ggNDQxMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTQwICAgKGhleCkJCVZlcmludCBMb3Jvbml4IFZpZGVvIFNvbHV0aW9ucworMDAwRDQwICAgICAoYmFzZSAxNikJCVZlcmludCBMb3Jvbml4IFZpZGVvIFNvbHV0aW9ucworCQkJCTEyNTI2IEhpZ2ggQmx1ZmYgRHIuICMxNzAKKwkJCQlTYW4gREllZ28gQ0EgOTIxMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTQxICAgKGhleCkJCVNpZW1lbnMgQUcgSUNNIE1QIFVDIFJEIElUIEtMRjEKKzAwMEQ0MSAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEFHIElDTSBNUCBVQyBSRCBJVCBLTEYxCisJCQkJU3VlZHN0cmFzc2UgOQorCQkJCUthbXAtTGludGZvcnQgTlJXIDQ3NDc1CisJCQkJR0VSTUFOWQorCiswMC0wRC00MiAgIChoZXgpCQlOZXdiZXN0IERldmVsb3BtZW50IExpbWl0ZWQKKzAwMEQ0MiAgICAgKGJhc2UgMTYpCQlOZXdiZXN0IERldmVsb3BtZW50IExpbWl0ZWQKKwkJCQkzL0YgIFVuaXQgMzExLTMxMgorCQkJCU5vLjEgU2NpZW5jZSBQYXJrIEVhc3QgQXZlbnVlCisJCQkJU2hhdGluICBOVCAKKwkJCQlIT05HIEtPTkcKKworMDAtMEQtNDMgICAoaGV4KQkJRFJTIFRhY3RpY2FsIFN5c3RlbXMgSW5jLgorMDAwRDQzICAgICAoYmFzZSAxNikJCURSUyBUYWN0aWNhbCBTeXN0ZW1zIEluYy4KKwkJCQkzNTIwIFUuUy4gSGlnaHdheSAxCisJCQkJUGFsbSBCYXkgRkwgMzI5MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTQ0ICAgKGhleCkJCUF1ZGlvIEJVIC0gTG9naXRlY2gKKzAwMEQ0NCAgICAgKGJhc2UgMTYpCQlBdWRpbyBCVSAtIExvZ2l0ZWNoCisJCQkJMTQ5OSBTRSBUZWNoIENlbnRlciBQbGFjZQorCQkJCVN1aXRlIDM1MAorCQkJCVZhbmNvdXZlciBXQSA5ODY4MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNDUgICAoaGV4KQkJVG90dG9yaSBTQU5ZTyBFbGVjdHJpYyBDby4sIEx0ZC4KKzAwMEQ0NSAgICAgKGJhc2UgMTYpCQlUb3R0b3JpIFNBTllPIEVsZWN0cmljIENvLiwgTHRkLgorCQkJCTMtMjAxLCBNaW5hbWkgWW9zaGlrYXRhCisJCQkJVG90dG9yaSBDaXR5IFRvdHRvcmkgNjgwLTg2MzQKKwkJCQlKQVBBTgorCiswMC0wRC00NiAgIChoZXgpCQlQYXJrZXIgU1NEIERyaXZlcworMDAwRDQ2ICAgICAoYmFzZSAxNikJCVBhcmtlciBTU0QgRHJpdmVzCisJCQkJOTIyNSBGb3JzeXRoIFBhcmsgRHJpdmUKKwkJCQlDaGFybG90dGUgTkMgMjgyNzMtMzg4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNDcgICAoaGV4KQkJQ29sbGV4CiswMDBENDcgICAgIChiYXNlIDE2KQkJQ29sbGV4CisJCQkJMTNGLTMsTm8uMTQyLFNlYy4xLEh1YW1laSBXLFN0LixTaGkgQ2hpdQorCQkJCVRhaWNodW5nICA0MDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTQ4ICAgKGhleCkJCUFFV0lOIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMEQ0OCAgICAgKGJhc2UgMTYpCQlBRVdJTiBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJN0YsIE5vLiAyLCBMYW5lIDQ3LCBTZWMuIDMsIE5hbi1HYW5nIFJkLgorCQkJCVRBSVBFSSAgMTE1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC00OSAgIChoZXgpCQlUcml0b24gU3lzdGVtcyBvZiBEZWxhd2FyZSwgSW5jLgorMDAwRDQ5ICAgICAoYmFzZSAxNikJCVRyaXRvbiBTeXN0ZW1zIG9mIERlbGF3YXJlLCBJbmMuCisJCQkJNTIyIEUuIFJhaWxyb2FkIFN0LgorCQkJCUxvbmcgQmVhY2ggTVMgMzk1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTRBICAgKGhleCkJCVN0ZWFnIEVUQS1PcHRpaworMDAwRDRBICAgICAoYmFzZSAxNikJCVN0ZWFnIEVUQS1PcHRpaworCQkJCUJvcnNpZ3N0cmFzc2UgNzguLTgwCisJCQkJSGVpbnNiZXJnICA1MjUyNQorCQkJCUdFUk1BTlkKKworMDAtMEQtNEIgICAoaGV4KQkJUm9rdSwgTExDCiswMDBENEIgICAgIChiYXNlIDE2KQkJUm9rdSwgTExDCisJCQkJMzk5IFNoZXJtYW4gQXZlLiAjMTIKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTRDICAgKGhleCkJCU91dGxpbmUgRWxlY3Ryb25pY3MgTHRkLgorMDAwRDRDICAgICAoYmFzZSAxNikJCU91dGxpbmUgRWxlY3Ryb25pY3MgTHRkLgorCQkJCTcvRiBCZW5zb24gVG93ZXIKKwkJCQk3NCBIdW5nIFRvIFJvYWQKKwkJCQlLd3VuIFRvbmcgS293bG9vbiAKKwkJCQlIT05HIEtPTkcKKworMDAtMEQtNEQgICAoaGV4KQkJTmluZWxhbmVzCiswMDBENEQgICAgIChiYXNlIDE2KQkJTmluZWxhbmVzCisJCQkJIzQwNSA0RiBEaXBsb21hdGljIENlbnRlcgorCQkJCVNlb2Noby1ndSwgU2VvY2hvLWRvbmcKKwkJCQlTZW91bCAgMTM3Ni0xCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELTRFICAgKGhleCkJCU5EUiBDby4sTFRELgorMDAwRDRFICAgICAoYmFzZSAxNikJCU5EUiBDby4sTFRELgorCQkJCVN1bWl0b21vIHNlaW1laSBtaW5hdG9tYWNoaSBNVCBCTERHCisJCQkJMS0xOC0yIE1pbmFtaWhvcmllIE5pc2hpLWt1CisJCQkJT3NhayBLaW5raSA1NTAtMDAxNQorCQkJCUpBUEFOCisKKzAwLTBELTRGICAgKGhleCkJCUtlbndvb2QgQ29ycG9yYXRpb24KKzAwMEQ0RiAgICAgKGJhc2UgMTYpCQlLZW53b29kIENvcnBvcmF0aW9uCisJCQkJMjk2Ny0zLCBJc2hpa2F3YS1tYWNoaQorCQkJCUhhY2hpb2ppLXNoaSBUb2t5byAxOTItODUyNQorCQkJCUpBUEFOCisKKzAwLTBELTUwICAgKGhleCkJCUdhbGF6YXIgTmV0d29ya3MKKzAwMEQ1MCAgICAgKGJhc2UgMTYpCQlHYWxhemFyIE5ldHdvcmtzCisJCQkJMzUgRml0emdlcmFsZCBBdmUKKwkJCQlPdHRhd2EgT04gSzJIIDFFNgorCQkJCUNBTkFEQQorCiswMC0wRC01MSAgIChoZXgpCQlESVZSIFN5c3RlbXMsIEluYy4KKzAwMEQ1MSAgICAgKGJhc2UgMTYpCQlESVZSIFN5c3RlbXMsIEluYy4KKwkJCQkyMTYxIFNhdHVybiBDdC4KKwkJCQlCYWtlcnNmaWVsZCBDQSA5MzMwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNTIgICAoaGV4KQkJQ29tYXJ0IHN5c3RlbQorMDAwRDUyICAgICAoYmFzZSAxNikJCUNvbWFydCBzeXN0ZW0KKwkJCQlOby4gMjExLCBBY2UgVGVjaG5vIFRvd2VyIElJSSwgMTk3LTQ4CisJCQkJR3Utcm8gRG9uZywgR3Utcm8gR3UsIFNlb3VsLCBLb3JlYQorCQkJCVNlb3VsICAxNTItMDUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELTUzICAgKGhleCkJCUJlaWppbmcgNXcgQ29tbXVuaWNhdGlvbiBDb3JwLgorMDAwRDUzICAgICAoYmFzZSAxNikJCUJlaWppbmcgNXcgQ29tbXVuaWNhdGlvbiBDb3JwLgorCQkJCU5PLjQsWmhvbmctR3Vhbi1DdW4gU291dGggNCBzdHJlZXQsCisJCQkJQmVpamluZyAgMTAwMDgwCisJCQkJQ0hJTkEKKworMDAtMEQtNTQgICAoaGV4KQkJM0NvbSBMdGQKKzAwMEQ1NCAgICAgKGJhc2UgMTYpCQkzQ29tIEx0ZAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlQZW9wbGVidWlsZGluZyBFc3RhdGUsIE1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cyBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEQtNTUgICAoaGV4KQkJU0FOWUNPTSBUZWNobm9sb2d5IENvLixMdGQKKzAwMEQ1NSAgICAgKGJhc2UgMTYpCQlTQU5ZQ09NIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTZGLEJlaWppbmcgQ2FwaXRhbCBUaW1lcyBTcXVhcmUsODgjIFhpY2gKKwkJCQlCZWlqaW5nICAxMDAwMzEKKwkJCQlDSElOQQorCiswMC0wRC01NiAgIChoZXgpCQlEZWxsIFBDQkEgVGVzdAorMDAwRDU2ICAgICAoYmFzZSAxNikJCURlbGwgUENCQSBUZXN0CisJCQkJT25lIERlbGwgV2F5CisJCQkJUlI1IE1TLTg1NDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC01NyAgIChoZXgpCQlGdWppdHN1IEktTmV0d29yayBTeXN0ZW1zIExpbWl0ZWQuCiswMDBENTcgICAgIChiYXNlIDE2KQkJRnVqaXRzdSBJLU5ldHdvcmsgU3lzdGVtcyBMaW1pdGVkLgorCQkJCTEtNDAzIGtvc3VnaS1jaG8gbmFrYWhhcmEta3UKKwkJCQlrYXdhc2FraSBrYW5hZ2F3YSAyMTEtMDA2MworCQkJCUpBUEFOCisKKzAwLTBELTU4ICAgKGhleCkJCVBSSVZBVEUKKzAwMEQ1OCAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMEQtNTkgICAoaGV4KQkJQW1pdHkgU3lzdGVtcywgSW5jLgorMDAwRDU5ICAgICAoYmFzZSAxNikJCUFtaXR5IFN5c3RlbXMsIEluYy4KKwkJCQk4ODggVGFzbWFuIERyaXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTVBICAgKGhleCkJCVRpZXNzZSBTcEEKKzAwMEQ1QSAgICAgKGJhc2UgMTYpCQlUaWVzc2UgU3BBCisJCQkJVmlhIEFzdGkKKwkJCQlab25hIEluZHVzdHJpYWwgU2FuIEJlcm5hcmRvCisJCQkJSXZyZWEgVE8gMTAwMTUKKwkJCQlJVEFMWQorCiswMC0wRC01QiAgIChoZXgpCQlTbWFydCBFbXBpcmUgSW52ZXN0bWVudHMgTGltaXRlZAorMDAwRDVCICAgICAoYmFzZSAxNikJCVNtYXJ0IEVtcGlyZSBJbnZlc3RtZW50cyBMaW1pdGVkCisJCQkJU3VpdGUgMjAwMS0yMDA2LExldmVsIDIwIExhbmRtYXJrIE5vcnRoCisJCQkJWGluIEppZSBIb25nIEtvbmcgMDA4NTIKKwkJCQlDSElOQQorCiswMC0wRC01QyAgIChoZXgpCQlSb2JlcnQgQm9zY2ggR21iSCwgVlQtQVRNTworMDAwRDVDICAgICAoYmFzZSAxNikJCVJvYmVydCBCb3NjaCBHbWJILCBWVC1BVE1PCisJCQkJV2VybmVyc3RyYXNzZSA1MQorCQkJCVN0dXR0Z2FydCBCVyA3MDQ2OQorCQkJCUdFUk1BTlkKKworMDAtMEQtNUQgICAoaGV4KQkJUmFyaXRhbiBDb21wdXRlciwgSW5jCiswMDBENUQgICAgIChiYXNlIDE2KQkJUmFyaXRhbiBDb21wdXRlciwgSW5jCisJCQkJNDAwIENvdHRvbnRhaWwgTGFuZQorCQkJCVNvbWVyc2V0IE5KIDA4ODczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC01RSAgIChoZXgpCQlORUMgUGVyc29uYWwgUHJvZHVjdHMKKzAwMEQ1RSAgICAgKGJhc2UgMTYpCQlORUMgUGVyc29uYWwgUHJvZHVjdHMKKwkJCQk2LTgwLCBTaGltb2hhbmF6YXdhIDItQ2hvbWUKKwkJCQlZb25lemF3YS1zaGkgWWFtYWdhdGEgOTkyLTg1MjAKKwkJCQlKQVBBTgorCiswMC0wRC01RiAgIChoZXgpCQlNaW5kcyBJbmMKKzAwMEQ1RiAgICAgKGJhc2UgMTYpCQlNaW5kcyBJbmMKKwkJCQkxOTE5IGJvdWwgbGlvbmVsIGJlcnRyYW5kCisJCQkJIzIwMgorCQkJCUJvaXNicmlhbmQgUXVlYmVjIEo3SCAxTjgKKwkJCQlDQU5BREEKKworMDAtMEQtNjAgICAoaGV4KQkJSUJNIENvcnAKKzAwMEQ2MCAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNjEgICAoaGV4KQkJR2lnYS1CeXRlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDBENjEgICAgIChiYXNlIDE2KQkJR2lnYS1CeXRlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8gNiwgQmF1IENoaWFuZyBSb2FkLCBIc2luLVRpZW4KKwkJCQlUYWlwZWkgSHNpZW4gIDk5OTkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTYyICAgKGhleCkJCUZ1bmt3ZXJrIERhYmVuZG9yZiBHbWJICiswMDBENjIgICAgIChiYXNlIDE2KQkJRnVua3dlcmsgRGFiZW5kb3JmIEdtYkgKKwkJCQlNYWVya2lzY2hlIFN0cmFzc2UKKwkJCQlEYWJlbmRvcmYgQnJhbmRlbmJ1cmcgMTU4MDYKKwkJCQlHRVJNQU5ZCisKKzAwLTBELTYzICAgKGhleCkJCURFTlQgSW5zdHJ1bWVudHMsIEluYy4KKzAwMEQ2MyAgICAgKGJhc2UgMTYpCQlERU5UIEluc3RydW1lbnRzLCBJbmMuCisJCQkJNjQgTlcgRnJhbmtsaW4gQXZlCisJCQkJQmVuZCBPUiA5NzcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNjQgICAoaGV4KQkJQ09NQUcgSGFuZGVscyBBRworMDAwRDY0ICAgICAoYmFzZSAxNikJCUNPTUFHIEhhbmRlbHMgQUcKKwkJCQlaaWxsZW5oYXJkdHN0ci40MQorCQkJCUdvZXBwaW5nZW4gQmFkZW4tV/xydHRlbWJlcmcgNzMwMzcKKwkJCQlHRVJNQU5ZCisKKzAwLTBELTY1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEQ2NSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTY2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEQ2NiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTY3ICAgKGhleCkJCUJlbEFpciBOZXR3b3JrcyBJbmMuCiswMDBENjcgICAgIChiYXNlIDE2KQkJQmVsQWlyIE5ldHdvcmtzIEluYy4KKwkJCQk2MDMgTWFyY2ggUm9hZAorCQkJCUthbmF0YSBPbnRhcmlvIEsySyAyTTUKKwkJCQlDQU5BREEKKworMDAtMEQtNjggICAoaGV4KQkJVmluY2kgU3lzdGVtcywgSW5jLgorMDAwRDY4ICAgICAoYmFzZSAxNikJCVZpbmNpIFN5c3RlbXMsIEluYy4KKwkJCQk4MzMwIEJvb25lIEJvdWxldmFyZAorCQkJCVN1aXRlIDUwMAorCQkJCVZpZW5uYSBWQSAyMjE4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNjkgICAoaGV4KQkJVE1UJkQgQ29ycG9yYXRpb24KKzAwMEQ2OSAgICAgKGJhc2UgMTYpCQlUTVQmRCBDb3Jwb3JhdGlvbgorCQkJCTItMjQtMQorCQkJCUhhcnVtaS1jaG8KKwkJCQlGdWNodS1zaSBUb2t5byAxODMtMDA1NworCQkJCUpBUEFOCisKKzAwLTBELTZBICAgKGhleCkJCVJlZHdvb2QgVGVjaG5vbG9naWVzIExURAorMDAwRDZBICAgICAoYmFzZSAxNikJCVJlZHdvb2QgVGVjaG5vbG9naWVzIExURAorCQkJCUFtYmVyIEhvdXNlCisJCQkJTWFya2V0IFN0cmVldAorCQkJCUJyYWNrbmVsbCBCZXJrc2hpcmUgUkcxMiAxSkIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC02QiAgIChoZXgpCQlNaXRhLVRla25payBBL1MKKzAwMEQ2QiAgICAgKGJhc2UgMTYpCQlNaXRhLVRla25payBBL1MKKwkJCQlIYWFuZHZhZXJrZXJ2ZWogMQorCQkJCVJvZWRrYWVyc2JybyBESyBESy04ODQwCisJCQkJREVOTUFSSworCiswMC0wRC02QyAgIChoZXgpCQlNLUF1ZGlvCiswMDBENkMgICAgIChiYXNlIDE2KQkJTS1BdWRpbworCQkJCTQ1IEUgU1QgSm9zZXBoIFN0LgorCQkJCUFyY2FkaWEgQ0EgOTEwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTZEICAgKGhleCkJCUstVGVjaCBEZXZpY2VzIENvcnAuCiswMDBENkQgICAgIChiYXNlIDE2KQkJSy1UZWNoIERldmljZXMgQ29ycC4KKwkJCQkxNDAxNi0zMAorCQkJCW5ha2FtaW5vd2EgbWlub3dhbWFjaGkga2FtaWluYSBuYWdhbm8gMzk5LTQ2MDEKKwkJCQlKQVBBTgorCiswMC0wRC02RSAgIChoZXgpCQlLLVBhdGVudHMgT3kKKzAwMEQ2RSAgICAgKGJhc2UgMTYpCQlLLVBhdGVudHMgT3kKKwkJCQlQLk8uIEJveCA3NworCQkJCUVsYW5ub250aWUgNQorCQkJCVZBTlRBQSBGSSAwMTUxMQorCQkJCUZJTkxBTkQKKworMDAtMEQtNkYgICAoaGV4KQkJRW1iZXIgQ29ycG9yYXRpb24KKzAwMEQ2RiAgICAgKGJhc2UgMTYpCQlFbWJlciBDb3Jwb3JhdGlvbgorCQkJCTM0MyBDb25ncmVzcyBTdAorCQkJCTV0aCBGbG9vcgorCQkJCUJvc3RvbiBNYSAwMjIxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNzAgICAoaGV4KQkJRGF0YW1heCBDb3Jwb3JhdGlvbgorMDAwRDcwICAgICAoYmFzZSAxNikJCURhdGFtYXggQ29ycG9yYXRpb24KKwkJCQk0NTAxIFBhcmt3YXkgQ29tbWVyY2UgQmx2ZAorCQkJCU9ybGFuZG8gRkwgMzI4MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTcxICAgKGhleCkJCWJvY2Egc3lzdGVtcworMDAwRDcxICAgICAoYmFzZSAxNikJCWJvY2Egc3lzdGVtcworCQkJCTEwNjUgcy4gcm9nZXJzIGNpcmNsZQorCQkJCWJvY2EgcmF0b24gZmwgMzM0ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTcyICAgKGhleCkJCTJXaXJlLCBJbmMKKzAwMEQ3MiAgICAgKGJhc2UgMTYpCQkyV2lyZSwgSW5jCisJCQkJMTcwNCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNzMgICAoaGV4KQkJVGVjaG5pY2FsIFN1cHBvcnQsIEluYy4KKzAwMEQ3MyAgICAgKGJhc2UgMTYpCQlUZWNobmljYWwgU3VwcG9ydCwgSW5jLgorCQkJCTExMjUzIEpvaG4gR2FsdCBCbHZkCisJCQkJT21haGEgTmVicmFza2EgNjgxMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTc0ICAgKGhleCkJCVNhbmQgTmV0d29yayBTeXN0ZW1zLCBJbmMuCiswMDBENzQgICAgIChiYXNlIDE2KQkJU2FuZCBOZXR3b3JrIFN5c3RlbXMsIEluYy4KKwkJCQk0MzQgUGF5cmFuIFN0cmVldAorCQkJCVBldGFsdW1hIENBIDk0OTUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC03NSAgIChoZXgpCQlLb2JpYW4gUHRlIEx0ZCAtIFRhaXdhbiBCcmFuY2gKKzAwMEQ3NSAgICAgKGJhc2UgMTYpCQlLb2JpYW4gUHRlIEx0ZCAtIFRhaXdhbiBCcmFuY2gKKwkJCQkyRiwgTm8uNTgwLCBSdWVpa3VhbmcgUmQuLE5laSBIdSxUYWlwZWksCisJCQkJVGFpcGVpIE5laSBIdSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTc2ICAgKGhleCkJCUhva3V0byBEZW5zaGkgQ28sLiBMdGQuCiswMDBENzYgICAgIChiYXNlIDE2KQkJSG9rdXRvIERlbnNoaSBDbywuIEx0ZC4KKwkJCQkzLTcgT2RvcmkgTmlzaGkgMTYtQ2hvbWUgQ2h1b2t1CisJCQkJU2FwcG9ybyBIb2trYWlkbyAwNjAtMDA0MgorCQkJCUpBUEFOCisKKzAwLTBELTc3ICAgKGhleCkJCUZhbGNvblN0b3IgU29mdHdhcmUKKzAwMEQ3NyAgICAgKGJhc2UgMTYpCQlGYWxjb25TdG9yIFNvZnR3YXJlCisJCQkJMTI1IEJheWxpcyBSZAorCQkJCU1lbHZpbGxlIE5ZIDExNzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC03OCAgIChoZXgpCQlFbmdpbmVlcmluZyAmIFNlY3VyaXR5CiswMDBENzggICAgIChiYXNlIDE2KQkJRW5naW5lZXJpbmcgJiBTZWN1cml0eQorCQkJCU1hcnRpcmkgZGVsbGEgTGliZXJ04CAzMi80CisJCQkJR2Vub3ZhICAxNjE1NQorCQkJCUlUQUxZCisKKzAwLTBELTc5ICAgKGhleCkJCUR5bmFtaWMgU29sdXRpb25zIENvLC5MdGQuCiswMDBENzkgICAgIChiYXNlIDE2KQkJRHluYW1pYyBTb2x1dGlvbnMgQ28sLkx0ZC4KKwkJCQkxNy04IE5paG9uYmFzaGkgSGFrb3pha2ktY2hvCisJCQkJQ2h1by1rdSBUb2t5byAxMDMtMDAxNQorCQkJCUpBUEFOCisKKzAwLTBELTdBICAgKGhleCkJCURpR0FUVE8gQXNpYSBQYWNpZmljIFB0ZSBMdGQKKzAwMEQ3QSAgICAgKGJhc2UgMTYpCQlEaUdBVFRPIEFzaWEgUGFjaWZpYyBQdGUgTHRkCisJCQkJMTkwIE1kZGxlIFJvYWQsICMxOS0wNSBGb3J0dW5lIENlbnRlcgorCQkJCTE4ODk3OQorCQkJCVNJTkdBUE9SRQorCiswMC0wRC03QiAgIChoZXgpCQlDb25zZW5zeXMgQ29tcHV0ZXJzIEluYy4KKzAwMEQ3QiAgICAgKGJhc2UgMTYpCQlDb25zZW5zeXMgQ29tcHV0ZXJzIEluYy4KKwkJCQkyMTUgU2hpZWxkcyBDdC4KKwkJCQlNYXJraGFtIE9OIEwzUiA4VjIKKwkJCQlDQU5BREEKKworMDAtMEQtN0MgICAoaGV4KQkJQ29kaWFuIEx0ZAorMDAwRDdDICAgICAoYmFzZSAxNikJCUNvZGlhbiBMdGQKKwkJCQkxNCBXYXRlcnNpZGUgRHJpdmUKKwkJCQlMYW5nbGV5IFNsb3VnaCBTTDMgNkVaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEQtN0QgICAoaGV4KQkJQWZjbyBTeXN0ZW1zCiswMDBEN0QgICAgIChiYXNlIDE2KQkJQWZjbyBTeXN0ZW1zCisJCQkJMjAwIEZpbm4gQ291cnQKKwkJCQlGYXJtaW5nZGFsZSBOWSAxMTczNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtN0UgICAoaGV4KQkJQXhpb3dhdmUgTmV0d29ya3MsIEluYy4KKzAwMEQ3RSAgICAgKGJhc2UgMTYpCQlBeGlvd2F2ZSBOZXR3b3JrcywgSW5jLgorCQkJCTIwMCBOaWNrZXJzb24gUm9hZAorCQkJCU1hcmxib3JvdWdoIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC03RiAgIChoZXgpCQlNSURBUyAgQ09NTVVOSUNBVElPTiBURUNITk9MT0dJRVMgUFRFIExURCAoIEZvcmVpZ24gQnJhbmNoKQorMDAwRDdGICAgICAoYmFzZSAxNikJCU1JREFTICBDT01NVU5JQ0FUSU9OIFRFQ0hOT0xPR0lFUyBQVEUgTFREICggRm9yZWlnbiBCcmFuY2gpCisJCQkJMDQtMTIsIFBoYXNlIFouUm8gVGVjaG5vcHJlbnVlciBQYXJrCisJCQkJIzE1MSwgTm9ydGggQnVvbmEgVmlzdGEgUm9hZAorCQkJCVNpbmdhcG9yZSAgMTM5IDM0NworCQkJCVNJTkdBUE9SRQorCiswMC0wRC04MCAgIChoZXgpCQlPbmxpbmUgRGV2ZWxvcG1lbnQgSW5jCiswMDBEODAgICAgIChiYXNlIDE2KQkJT25saW5lIERldmVsb3BtZW50IEluYworCQkJCTcyMDkgQ2hhcG1hbiBId3kKKwkJCQlLbm94dmlsbGUgVG4gMzc5MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTgxICAgKGhleCkJCVBlcHBlcmwrRnVjaHMgR21iSAorMDAwRDgxICAgICAoYmFzZSAxNikJCVBlcHBlcmwrRnVjaHMgR21iSAorCQkJCUxpbGllbnRoYWxzdHJh32UgMjAwCisJCQkJTWFubmhlaW0gIDY4MzA3CisJCQkJR0VSTUFOWQorCiswMC0wRC04MiAgIChoZXgpCQlQSFMgc3JsCiswMDBEODIgICAgIChiYXNlIDE2KQkJUEhTIHNybAorCQkJCVZpYSBQYWz5LCAxNworCQkJCUFyY3VnbmFubyBWaWNlbnphIDM2MDU3CisJCQkJSVRBTFkKKworMDAtMEQtODMgICAoaGV4KQkJU2FubWluYS1TQ0kgSHVuZ2FyeSAgTHRkLgorMDAwRDgzICAgICAoYmFzZSAxNikJCVNhbm1pbmEtU0NJIEh1bmdhcnkgIEx0ZC4KKwkJCQlLb3RhIEpvenNlZiB1LiAyLgorCQkJCVRhdGFiYW55YSBLb21hcm9tLUVzenRlcmdvbSAyODAwCisJCQkJSFVOR0FSWQorCiswMC0wRC04NCAgIChoZXgpCQlNYWt1cyBJbmMuCiswMDBEODQgICAgIChiYXNlIDE2KQkJTWFrdXMgSW5jLgorCQkJCTRGIERhZWRvIEJsZGcuLCA3NDgtMTQgWWVva3NhbS1kb25nCisJCQkJS2FuZ25hbS1ndSBTZW91bCAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELTg1ICAgKGhleCkJCVRhcHdhdmUsIEluYy4KKzAwMEQ4NSAgICAgKGJhc2UgMTYpCQlUYXB3YXZlLCBJbmMuCisJCQkJMTkwMSBMYW5kaW5ncyBEcml2ZQorCQkJCUJ1aWxkaW5nIEcKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC04NiAgIChoZXgpCQlIdWJlciArIFN1aG5lciBBRworMDAwRDg2ICAgICAoYmFzZSAxNikJCUh1YmVyICsgU3VobmVyIEFHCisJCQkJRGVnZXJzaGVpbWVyc3RyYXNzZSAxNAorCQkJCTkxMDAgSGVyaXNhdSAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRC04NyAgIChoZXgpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4gKEVDUykKKzAwMEQ4NyAgICAgKGJhc2UgMTYpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4gKEVDUykKKwkJCQlOby4yMiwgQWxsZXkgMzgsIExhbmUgOTEsIFNlYy4gMSwgTmVpIEh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTg4ICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAwRDg4ICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5vLjgsIExpLUhzaW5nIDcgUm9hZCwgU2NpZW5jZS1CYXNlZCBJbmQKKwkJCQlIc2luY2h1ICAzMDA3NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtODkgICAoaGV4KQkJQmlscyBUZWNobm9sb2d5IEluYworMDAwRDg5ICAgICAoYmFzZSAxNikJCUJpbHMgVGVjaG5vbG9neSBJbmMKKwkJCQk1MDggUyBSaXZlciBPYWtzIERyaXZlCisJCQkJSW5kaWFsYW50aWMgRkwgMzI5MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELThBICAgKGhleCkJCVdpbm5lcnMgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDBEOEEgICAgIChiYXNlIDE2KQkJV2lubmVycyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkjMzQwLTUsV29uY2h1bi1Eb25nLFBhbGRhbC1HdQorCQkJCVN1d29uLUNpdHkgS3l1bmdraS1EbyA0NDItODIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELThCICAgKGhleCkJCVQmRCBDb3Jwb3JhdGlvbgorMDAwRDhCICAgICAoYmFzZSAxNikJCVQmRCBDb3Jwb3JhdGlvbgorCQkJCTU2NTItMTY5IFNhc2FnYQorCQkJCU1hdHN1bW90byBOYWdhbm8gMzk5LTAwMzMKKwkJCQlKQVBBTgorCiswMC0wRC04QyAgIChoZXgpCQlTaGFuZ2hhaSBXZWRvbmUgRGlnaXRhbCBMdGQuIENPLgorMDAwRDhDICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFdlZG9uZSBEaWdpdGFsIEx0ZC4gQ08uCisJCQkJODkzLTg5OSBIdWFzaGFuIFJvYWQsCisJCQkJU2hhbmdoYWkgIDIwMDAzMQorCQkJCUNISU5BCisKKzAwLTBELThEICAgKGhleCkJCVByb0xpbnggQ29tbXVuaWNhdGlvbiBHYXRld2F5cywgSW5jLgorMDAwRDhEICAgICAoYmFzZSAxNikJCVByb0xpbnggQ29tbXVuaWNhdGlvbiBHYXRld2F5cywgSW5jLgorCQkJCTE2NzUgQ2hlc3RlciBBdmUuCisJCQkJRm91cnRoIEZsb29yCisJCQkJQmFrZXJzZmllbGQgQ0EgOTMzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELThFICAgKGhleCkJCUtvZGVuIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwRDhFICAgICAoYmFzZSAxNikJCUtvZGVuIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTUyNzggVWVub2hhcmEKKwkJCQlVZW5vaGFyYS1TaGkKKwkJCQlZYW1hbmFzaGktS2VuIDQwOS0wMTEyCisJCQkJSkFQQU4KKworMDAtMEQtOEYgICAoaGV4KQkJS2luZyBUc3VzaGluIEtvZ3lvIENvLiwgTFRELgorMDAwRDhGICAgICAoYmFzZSAxNikJCUtpbmcgVHN1c2hpbiBLb2d5byBDby4sIExURC4KKwkJCQkyLTYtNiBOb2dlCisJCQkJU2V0YWdheWEta3UgVG9reW8gMTU4LTAwOTIKKwkJCQlKQVBBTgorCiswMC0wRC05MCAgIChoZXgpCQlGYWN0dW0gRWxlY3Ryb25pY3MgQUIKKzAwMEQ5MCAgICAgKGJhc2UgMTYpCQlGYWN0dW0gRWxlY3Ryb25pY3MgQUIKKwkJCQlUZWtuaWtyaW5nZW4gMUgKKwkJCQlMaW5r9nBpbmcg1nN0ZXJn9nRsYW5kIDU4MyAzMAorCQkJCVNXRURFTgorCiswMC0wRC05MSAgIChoZXgpCQlFY2xpcHNlIChIUSBFc3BhbmEpIFMuTC4KKzAwMEQ5MSAgICAgKGJhc2UgMTYpCQlFY2xpcHNlIChIUSBFc3BhbmEpIFMuTC4KKwkJCQlDQyBkZSBOZWdvY2lvcworCQkJCU9mZmljaW5hIE5vLiA0Ni4gQy5OLiAzNDAsIEttIDE3NQorCQkJCVB1ZXJ0byBkZSBCYW51cyBNYXJiZWxsYSAyOTY2MAorCQkJCVNQQUlOCisKKzAwLTBELTkyICAgKGhleCkJCUFyaW1hIENvbW11bmljYXRpb24gQ29ycG9yYXRpb24KKzAwMEQ5MiAgICAgKGJhc2UgMTYpCQlBcmltYSBDb21tdW5pY2F0aW9uIENvcnBvcmF0aW9uCisJCQkJMTYsIGxhbmUgNjU4LCBZaW5nLVRhbyBSb2FkCisJCQkJWWluZ2tvIFRhaXBlaSBDb3VudHkgMjM5NDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTkzICAgKGhleCkJCUFwcGxlIENvbXB1dGVyCiswMDBEOTMgICAgIChiYXNlIDE2KQkJQXBwbGUgQ29tcHV0ZXIKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTk0ICAgKGhleCkJCUFGQVIgQ29tbXVuaWNhdGlvbnMsSW5jCiswMDBEOTQgICAgIChiYXNlIDE2KQkJQUZBUiBDb21tdW5pY2F0aW9ucyxJbmMKKwkJCQk4MSBEYXZpZCBMb3ZlIFBsYWNlCisJCQkJU3VpdGUgQQorCQkJCVNhbnRhIEJhcmJhcmEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTk1ICAgKGhleCkJCU9wdGktY2VsbCwgSW5jLgorMDAwRDk1ICAgICAoYmFzZSAxNikJCU9wdGktY2VsbCwgSW5jLgorCQkJCTEwMCBIaWdoIFRvd2VyIEJsdmQuLCAgU3VpdGUgMzAxCisJCQkJUGl0dHNidXJnaCBQQSAxNTIwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtOTYgICAoaGV4KQkJVnRlcmEgVGVjaG5vbG9neSBJbmMuCiswMDBEOTYgICAgIChiYXNlIDE2KQkJVnRlcmEgVGVjaG5vbG9neSBJbmMuCisJCQkJTm8gMzQsIEluZHVzdHJpYWwgRWFzdC4gNHRoIFJkLgorCQkJCUhzaW5DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtOTcgICAoaGV4KQkJVHJvcG9zIE5ldHdvcmtzLCBJbmMuCiswMDBEOTcgICAgIChiYXNlIDE2KQkJVHJvcG9zIE5ldHdvcmtzLCBJbmMuCisJCQkJMTcxMCBTLiBBbXBobGV0dCBCbHZkLCAgU3VpdGUgMzA0CisJCQkJU2FuIE1hdGVvIENBIDk0NDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC05OCAgIChoZXgpCQlTLlcuQS5DLiBTY2htaXR0LVdhbHRlciBBdXRvbWF0aW9uIENvbnN1bHQgR21iSAorMDAwRDk4ICAgICAoYmFzZSAxNikJCVMuVy5BLkMuIFNjaG1pdHQtV2FsdGVyIEF1dG9tYXRpb24gQ29uc3VsdCBHbWJICisJCQkJT2VkZW5wdWxsYWNoIDEKKwkJCQlPYmVyaGFjaGluZyBCYXZhcmlhIDgyMDQxCisJCQkJR0VSTUFOWQorCiswMC0wRC05OSAgIChoZXgpCQlPcmJpdGFsIFNjaWVuY2VzIENvcnAuOyBMYXVuY2ggU3lzdGVtcyBHcm91cAorMDAwRDk5ICAgICAoYmFzZSAxNikJCU9yYml0YWwgU2NpZW5jZXMgQ29ycC47IExhdW5jaCBTeXN0ZW1zIEdyb3VwCisJCQkJMzM4MCBTLiBQcmljZSBSZC4KKwkJCQlDaGFuZGxlciwgQVogODUyNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTlBICAgKGhleCkJCUlORk9URUMgTFRECiswMDBEOUEgICAgIChiYXNlIDE2KQkJSU5GT1RFQyBMVEQKKwkJCQlUaGUgTWFsdGluZ3MKKwkJCQlUYW13b3J0aCBSb2FkCisJCQkJQXNoYnktZGUtbGEtWm91Y2ggTGVpY2VzdGVyc2hpcmUgTEU2NSAyUFMKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC05QiAgIChoZXgpCQlIZXJhZXVzIEVsZWN0cm8tTml0ZSBJbnRlcm5hdGlvbmFsIE4uVi4KKzAwMEQ5QiAgICAgKGJhc2UgMTYpCQlIZXJhZXVzIEVsZWN0cm8tTml0ZSBJbnRlcm5hdGlvbmFsIE4uVi4KKwkJCQlDZW50cnVtIFp1aWQgMTEwNQorCQkJCUhvdXRoYWxlbiAgMzUzMAorCQkJCUJFTEdJVU0KKworMDAtMEQtOUMgICAoaGV4KQkJRWxhbiBHbWJIICYgQ28gS0cKKzAwMEQ5QyAgICAgKGJhc2UgMTYpCQlFbGFuIEdtYkggJiBDbyBLRworCQkJCUltIE9zdHBhcmsgMgorCQkJCVdldHRlbmJlcmcgSGVzc2VuIDM1NDM1CisJCQkJR0VSTUFOWQorCiswMC0wRC05RCAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMEQ5RCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OSBTb3V0aAorCQkJCW14MDcwNDA1CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtOUUgICAoaGV4KQkJVE9LVURFTiBPSElaVU1JIFNFSVNBS1VTWU8gQ28uLEx0ZC4KKzAwMEQ5RSAgICAgKGJhc2UgMTYpCQlUT0tVREVOIE9ISVpVTUkgU0VJU0FLVVNZTyBDby4sTHRkLgorCQkJCVlvc2hpZGEgMTIyMQorCQkJCU91cmFndW4gT2hpenVtaSBHdW5tYSAzNzAtMDUyMworCQkJCUpBUEFOCisKKzAwLTBELTlGICAgKGhleCkJCVJGIE1pY3JvIERldmljZXMKKzAwMEQ5RiAgICAgKGJhc2UgMTYpCQlSRiBNaWNybyBEZXZpY2VzCisJCQkJMjE5MSBaYW5rZXIgUm9hZAorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1BMCAgIChoZXgpCQlORURBUCBOLlYuCiswMDBEQTAgICAgIChiYXNlIDE2KQkJTkVEQVAgTi5WLgorCQkJCVAuTy5Cb3ggMTAzCisJCQkJUC5PLkJveCA2CisJCQkJR1JPRU5MTyBHTEQgNzE0MSBBQworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBELUExICAgKGhleCkJCU1JUkFFIElUUyBDby4sTFRELgorMDAwREExICAgICAoYmFzZSAxNikJCU1JUkFFIElUUyBDby4sTFRELgorCQkJCTdGLCBDaGFuZ0h5dW4gQi9ELDk2MC0xLEhvR3llMURvbmcKKwkJCQlBbllhbmcgS3lvbmdpR2lEbyA0MzEtODQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELUEyICAgKGhleCkJCUluZnJhbnQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDBEQTIgICAgIChiYXNlIDE2KQkJSW5mcmFudCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk0ODgyMCBLYXRvIFJvYWQKKwkJCQlTdGUgMTEwQgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUEzICAgKGhleCkJCUVtZXJnaW5nIFRlY2hub2xvZ2llcyBMaW1pdGVkCiswMDBEQTMgICAgIChiYXNlIDE2KQkJRW1lcmdpbmcgVGVjaG5vbG9naWVzIExpbWl0ZWQKKwkJCQlXb25nJ3MgSW5kdXN0cmlhbCBDZW50cmUsIDE4MCBXYWkgWWlwIFN0CisJCQkJS3d1biBUb25nLCBLb3dsb29uCisJCQkJTmlsIAorCQkJCUhPTkcgS09ORworCiswMC0wRC1BNCAgIChoZXgpCQlET1NDSCAmIEFNQU5EIFNZU1RFTVMgQUcKKzAwMERBNCAgICAgKGJhc2UgMTYpCQlET1NDSCAmIEFNQU5EIFNZU1RFTVMgQUcKKwkJCQlTY2hlaW5lcnN0cmFzc2UgOQorCQkJCU11bmljaCBCYXZhcmlhIDgxNjc5CisJCQkJR0VSTUFOWQorCiswMC0wRC1BNSAgIChoZXgpCQlGYWJyaWM3IFN5c3RlbXMsIEluYworMDAwREE1ICAgICAoYmFzZSAxNikJCUZhYnJpYzcgU3lzdGVtcywgSW5jCisJCQkJMTMwMCBDcml0dGVuZGVuIExhbmUKKwkJCQlTdWl0ZSAzMDIKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1BNiAgIChoZXgpCQlVbml2ZXJzYWwgU3dpdGNoaW5nIENvcnBvcmF0aW9uCiswMDBEQTYgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIFN3aXRjaGluZyBDb3Jwb3JhdGlvbgorCQkJCTc2NzEgU2FuIEZlcm5hbmRvIFJkCisJCQkJQnVyYmFuayBDQSA5MTUwNS0xMDczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1BNyAgIChoZXgpCQlQUklWQVRFCiswMDBEQTcgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTBELUE4ICAgKGhleCkJCVRlbGV0cm9uaWNzIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMERBOCAgICAgKGJhc2UgMTYpCQlUZWxldHJvbmljcyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJMjUyNSBQZWFybCBCdWNrIFJvYWQKKwkJCQlCcmlzdG9sIFBlbm5zeWx2YW5pYSAxOTAwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtQTkgICAoaGV4KQkJVC5FLkEuTS4gUy5MLgorMDAwREE5ICAgICAoYmFzZSAxNikJCVQuRS5BLk0uIFMuTC4KKwkJCQlQYXJxdWUgVGVjbm9sb2dpY28gRWRpZmljaW8gMTA4CisJCQkJWkFNVURJTyBCaXprYWlhIDQ4MTcwCisJCQkJU1BBSU4KKworMDAtMEQtQUEgICAoaGV4KQkJUy5BLlRlaG5vbG9neSBjby4sTHRkLgorMDAwREFBICAgICAoYmFzZSAxNikJCVMuQS5UZWhub2xvZ3kgY28uLEx0ZC4KKwkJCQk4MC0xMiBZYW5namFlIDEgRG9uZworCQkJCVNlb2NobyBHdQorCQkJCVNlb3VsIFNvdXRoIEtvcmVhIDEzNy04OTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEQtQUIgICAoaGV4KQkJUGFya2VyIEhhbm5pZmluIEdtYkggRWxlY3Ryb21lY2hhbmljYWwgRGl2aXNpb24gRXVyb3BlCiswMDBEQUIgICAgIChiYXNlIDE2KQkJUGFya2VyIEhhbm5pZmluIEdtYkggRWxlY3Ryb21lY2hhbmljYWwgRGl2aXNpb24gRXVyb3BlCisJCQkJUm9iZXJ0LUJvc2NoLVN0cmFzc2UgMjIKKwkJCQlPZmZlbmJ1cmcgQmFkZW4gV/xydHRlbWJlcmcgNzc2NTYKKwkJCQlHRVJNQU5ZCisKKzAwLTBELUFDICAgKGhleCkJCUphcGFuIENCTSBDb3Jwb3JhdGlvbgorMDAwREFDICAgICAoYmFzZSAxNikJCUphcGFuIENCTSBDb3Jwb3JhdGlvbgorCQkJCTUtNjgtMTAgTmFrYW5vLAorCQkJCU5ha2Fuby1LdSBUb2t5byAxNjQtMDAwMQorCQkJCUpBUEFOCisKKzAwLTBELUFEICAgKGhleCkJCURhdGFwcm9iZSBJbmMKKzAwMERBRCAgICAgKGJhc2UgMTYpCQlEYXRhcHJvYmUgSW5jCisJCQkJMSBQZWFybCBDdCBVbml0IEIKKwkJCQlBbGxlbmRhbGUgTkogMDc0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUFFICAgKGhleCkJCVNBTVNVTkcgSEVBVlkgSU5EVVNUUklFUyBDTy4sIExURC4KKzAwMERBRSAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEhFQVZZIElORFVTVFJJRVMgQ08uLCBMVEQuCisJCQkJNDkzLCBCYW53ZW9sLVJpLCBUYWVhbi1FdXAKKwkJCQlId2FzZW9uZy1DaXR5IEt5ZW9uZ2dpLURvIDQ0NS05NzMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEQtQUYgICAoaGV4KQkJUGxleHVzIENvcnAgKFVLKSBMdGQKKzAwMERBRiAgICAgKGJhc2UgMTYpCQlQbGV4dXMgQ29ycCAoVUspIEx0ZAorCQkJCVBpbm5hY2xlIEhpbGwKKwkJCQlLZWxzbyBSb3hidXJnaHNoaXJlIFRENSA4WFgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC1CMCAgIChoZXgpCQlPbHltLXRlY2ggQ28uLEx0ZC4KKzAwMERCMCAgICAgKGJhc2UgMTYpCQlPbHltLXRlY2ggQ28uLEx0ZC4KKwkJCQlSb29tIDQwMS80MDIsTm8uMSxTb25nbGluZyBSb2FkLEhpLXRlY2gKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDMxCisJCQkJQ0hJTkEKKworMDAtMEQtQjEgICAoaGV4KQkJSmFwYW4gTmV0d29yayBTZXJ2aWNlIENvLiwgTHRkLgorMDAwREIxICAgICAoYmFzZSAxNikJCUphcGFuIE5ldHdvcmsgU2VydmljZSBDby4sIEx0ZC4KKwkJCQlNYXRvYmEgQmxkZy4gNkYsCisJCQkJMy03LTcgSXJpZnVuZQorCQkJCSBDaHVvLWt1IFRva3lvIDEwNC0wMDQyCisJCQkJSkFQQU4KKworMDAtMEQtQjIgICAoaGV4KQkJQW1tYXNzbywgSW5jLgorMDAwREIyICAgICAoYmFzZSAxNikJCUFtbWFzc28sIEluYy4KKwkJCQkzNDUgU3VtbWVyIFN0cmVldAorCQkJCUJvc3RvbiBNQSAwMjIxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtQjMgICAoaGV4KQkJU0RPIENvbW11bmljYXRpb24gQ29ycGVyYXRpb24KKzAwMERCMyAgICAgKGJhc2UgMTYpCQlTRE8gQ29tbXVuaWNhdGlvbiBDb3JwZXJhdGlvbgorCQkJCTZGLCBOby4xMTIsIFNoaW4gTWluIFN0cmVldAorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtQjQgICAoaGV4KQkJTkVUQVNRCiswMDBEQjQgICAgIChiYXNlIDE2KQkJTkVUQVNRCisJCQkJMyBydWUgQXJjaGltZWRlCisJCQkJVmlsbGVuZXV2ZSBkJ0FzY3Egbm9yZCA1OTY1MAorCQkJCUZSQU5DRQorCiswMC0wRC1CNSAgIChoZXgpCQlHTE9CQUxTQVQgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorMDAwREI1ICAgICAoYmFzZSAxNikJCUdMT0JBTFNBVCBURUNITk9MT0dZIENPUlBPUkFUSU9OCisJCQkJRmFyIEVhc3QgQ2VudHVyeSBQYXJrCisJCQkJQ2h1bmcgSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC1CNiAgIChoZXgpCQlCcm9hZGNvbSBDb3Jwb3JhdGlvbgorMDAwREI2ICAgICAoYmFzZSAxNikJCUJyb2FkY29tIENvcnBvcmF0aW9uCisJCQkJMTM2MyBSZWR3b29kIFdheQorCQkJCVBldGFsdW1hIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1CNyAgIChoZXgpCQlTQU5LTyBFTEVDVFJJQyBDTywuTFRECiswMDBEQjcgICAgIChiYXNlIDE2KQkJU0FOS08gRUxFQ1RSSUMgQ08sLkxURAorCQkJCTctMjMgVGFtYW5vaS1jaG8gQXRzdXRhLWt1CisJCQkJTmFnb3lhLXNoaSBBaWNoaSA0NTYtMDAyNQorCQkJCUpBUEFOCisKKzAwLTBELUI4ICAgKGhleCkJCVNDSElMTEVSIEFHCiswMDBEQjggICAgIChiYXNlIDE2KQkJU0NISUxMRVIgQUcKKwkJCQlBbHRnYXNzZSA2OAorCQkJCUJhYXIgWnVnIDYzMDAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRC1COSAgIChoZXgpCQlQQyBFbmdpbmVzIEdtYkgKKzAwMERCOSAgICAgKGJhc2UgMTYpCQlQQyBFbmdpbmVzIEdtYkgKKwkJCQlHZXJtYW5pYXN0cmFzc2UgNjgKKwkJCQk4MDA2IFp1cmljaCAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRC1CQSAgIChoZXgpCQlPY+kgRG9jdW1lbnQgVGVjaG5vbG9naWVzIEdtYkgKKzAwMERCQSAgICAgKGJhc2UgMTYpCQlPY+kgRG9jdW1lbnQgVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlNYXgtU3Ryb21leWVyLVN0ci4gMTE2CisJCQkJS29uc3RhbnogIDc4NDY3CisJCQkJR0VSTUFOWQorCiswMC0wRC1CQiAgIChoZXgpCQlOaXBwb24gRGVudHN1IENvLixMdGQuCiswMDBEQkIgICAgIChiYXNlIDE2KQkJTmlwcG9uIERlbnRzdSBDby4sTHRkLgorCQkJCTItMjEtMSxJc29qaQorCQkJCU1pbmF0by1LdQorCQkJCU9zYWthICA1NTItMDAwMworCQkJCUpBUEFOCisKKzAwLTBELUJDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMERCQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUJEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMERCRCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUJFICAgKGhleCkJCUJlbCBGdXNlIEV1cm9wZSBMdGQuLFVLCiswMDBEQkUgICAgIChiYXNlIDE2KQkJQmVsIEZ1c2UgRXVyb3BlIEx0ZC4sVUsKKwkJCQk0NS80NiBSaXZlcnNpZGUgMgorCQkJCU1lZHdheSBDaXR5IEVzdGF0ZQorCQkJCVJvY2hlc3RlciBLZW50IE1FMiA0RFAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC1CRiAgIChoZXgpCQlUZWtUb25lIFNvdW5kICYgU2lnbmFsIE1mZy4sIEluYy4KKzAwMERCRiAgICAgKGJhc2UgMTYpCQlUZWtUb25lIFNvdW5kICYgU2lnbmFsIE1mZy4sIEluYy4KKwkJCQkyNzcgSW5kdXN0cmlhbCBQYXJrIFJkLgorCQkJCUZyYW5rbGluIE5DIDI4NzM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1DMCAgIChoZXgpCQlTcGFnYXQgQVMKKzAwMERDMCAgICAgKGJhc2UgMTYpCQlTcGFnYXQgQVMKKwkJCQlUb25uZSBIdXRpZmVsZHRwbC4gMgorCQkJCUhhbGRlbiBPc3Rmb2xkIDE3NjcKKwkJCQlOT1JXQVkKKworMDAtMEQtQzEgICAoaGV4KQkJU2FmZVdlYiBJbmMKKzAwMERDMSAgICAgKGJhc2UgMTYpCQlTYWZlV2ViIEluYworCQkJCTIyMDAgUG93ZWxsIFN0LiBTdGUgNTkwCisJCQkJRW1lcnl2aWxsZSBDQSA5NDYwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtQzIgICAoaGV4KQkJUFJJVkFURQorMDAwREMyICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wRC1DMyAgIChoZXgpCQlGaXJzdCBDb21tdW5pY2F0aW9uLCBJbmMuCiswMDBEQzMgICAgIChiYXNlIDE2KQkJRmlyc3QgQ29tbXVuaWNhdGlvbiwgSW5jLgorCQkJCTFGLCBOby4zNiwgSW5kdXN0cnkgRS4gUmQuIElWLiwKKwkJCQkgU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUM0ICAgKGhleCkJCUVtY29yZSBDb3Jwb3JhdGlvbgorMDAwREM0ICAgICAoYmFzZSAxNikJCUVtY29yZSBDb3Jwb3JhdGlvbgorCQkJCTE2MDAgRXViYW5rIEJsdmQsIFNFCisJCQkJQWxidXF1ZXJxdWUgTmV3IE1leGljbyA4NzEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtQzUgICAoaGV4KQkJRWNob1N0YXIgR2xvYmFsIEIuVi4gCiswMDBEQzUgICAgIChiYXNlIDE2KQkJRWNob1N0YXIgR2xvYmFsIEIuVi4gCisJCQkJU2NodWlsZW5idXJnbGFhbiA1YQorCQkJCUFsbWVsbyBPdmVyaWpzc2VsIDc2MDRCSgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBELUM2ICAgKGhleCkJCURpZ2lSb3NlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDBEQzYgICAgIChiYXNlIDE2KQkJRGlnaVJvc2UgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gMSwgQWxsZXkgMjAsIExhbmUgMjYgUnVlaWd1YW5nIFJvYWQsCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUM3ICAgKGhleCkJCUNPU01JQyBFTkdJTkVFUklORyBJTkMuCiswMDBEQzcgICAgIChiYXNlIDE2KQkJQ09TTUlDIEVOR0lORUVSSU5HIElOQy4KKwkJCQkxLTMtNSwgTmlzaGloaXJheWFtYQorCQkJCUhpbm8tc2hpIFRPS1lPIDE5MS0wMDU1CisJCQkJSkFQQU4KKworMDAtMEQtQzggICAoaGV4KQkJQWlyTWFnbmV0LCBJbmMKKzAwMERDOCAgICAgKGJhc2UgMTYpCQlBaXJNYWduZXQsIEluYworCQkJCTgzMCBFLiBBcnF1ZXMgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1DOSAgIChoZXgpCQlUSEFMRVMgRWxla3Ryb25payBTeXN0ZW1lIEdtYkgKKzAwMERDOSAgICAgKGJhc2UgMTYpCQlUSEFMRVMgRWxla3Ryb25payBTeXN0ZW1lIEdtYkgKKwkJCQlGcml0ei1MdWR3aWctU3RyLiAxCisJCQkJS29ibGVueiAgNTYwNzAKKwkJCQlHRVJNQU5ZCisKKzAwLTBELUNBICAgKGhleCkJCVRhaXQgRWxlY3Ryb25pY3MKKzAwMERDQSAgICAgKGJhc2UgMTYpCQlUYWl0IEVsZWN0cm9uaWNzCisJCQkJNTM1IFdhaXJha2VpIFJkCisJCQkJUE8gQm94IDE2NDUKKwkJCQlDaHJpc3RjaHVyY2ggQ2FudGVyYnVyeSA4MDA1CisJCQkJTkVXIFpFQUxBTkQKKworMDAtMEQtQ0IgICAoaGV4KQkJUGV0Y29ta29yZWEgQ28uLCBMdGQuCiswMDBEQ0IgICAgIChiYXNlIDE2KQkJUGV0Y29ta29yZWEgQ28uLCBMdGQuCisJCQkJNUYsNjg5LTQ3LEdldW1qZW9uZy1kb25nLEd1bnBvLXNpLEt5dW5nZworCQkJCUt5dW5nZ2ktZG8gZ3VucG8tc2kgNDM1LTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC1DQyAgIChoZXgpCQlORU9TTUFSVCBDb3JwLgorMDAwRENDICAgICAoYmFzZSAxNikJCU5FT1NNQVJUIENvcnAuCisJCQkJWW9vbi1CL0QgNEYsIDQ3NS0zMSwgQmFuZ2JhZSAyLWRvbmcKKwkJCQlTZW91bCBTZW9jaG8tZ3UgMTQ3LTgxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC1DRCAgIChoZXgpCQlHUk9VUEUgVFhDT00KKzAwMERDRCAgICAgKGJhc2UgMTYpCQlHUk9VUEUgVFhDT00KKwkJCQlaSSBEVSBQRVRJVCBDTEFNQVJUCisJCQkJMTAgQVZFTlVFIERFU0NBUlRFUworCQkJCUxFIFBMRVNTSVMgUk9CSU5TT04gSEFVVFMtREUtU0VJTkUgOTIzNTAKKwkJCQlGUkFOQ0UKKworMDAtMEQtQ0UgICAoaGV4KQkJRHluYXZhYyBUZWNobm9sb2d5IFB0ZSBMdGQKKzAwMERDRSAgICAgKGJhc2UgMTYpCQlEeW5hdmFjIFRlY2hub2xvZ3kgUHRlIEx0ZAorCQkJCTMwIFR1YXMgQXZlbnVlIDkKKwkJCQk2MzkxODMKKwkJCQlTSU5HQVBPUkUKKworMDAtMEQtQ0YgICAoaGV4KQkJQ2lkcmEgQ29ycC4KKzAwMERDRiAgICAgKGJhc2UgMTYpCQlDaWRyYSBDb3JwLgorCQkJCTUwIEJhcm5zIFBhcmsgTm9ydGgKKwkJCQlXYWxsaW5nZm9yZCBDVCAwNjQ5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtRDAgICAoaGV4KQkJVGV0cmFUZWMgSW5zdHJ1bWVudHMgR21iSAorMDAwREQwICAgICAoYmFzZSAxNikJCVRldHJhVGVjIEluc3RydW1lbnRzIEdtYkgKKwkJCQlHZXdlcmJlc3RyYXNzZSA4CisJCQkJU3RlaW5lbmJyb25uIEJXIDcxMTQ0CisJCQkJR0VSTUFOWQorCiswMC0wRC1EMSAgIChoZXgpCQlTdHJ5a2VyIENvcnBvcmF0aW9uCiswMDBERDEgICAgIChiYXNlIDE2KQkJU3RyeWtlciBDb3Jwb3JhdGlvbgorCQkJCTQxMDAgRSBNaWxoYW0KKwkJCQlLYWxhbWF6b28gTUkgNDkwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUQyICAgKGhleCkJCVNpbXJhZCBPcHRyb25pY3MgQVNBCiswMDBERDIgICAgIChiYXNlIDE2KQkJU2ltcmFkIE9wdHJvbmljcyBBU0EKKwkJCQlFbnNq+HZlaWVuIDIzQgorCQkJCVBPIEJveCA2MTE0IEV0dGVyc3RhZCBOTy0wNjAyIE9zbG8gCisJCQkJTk9SV0FZCisKKzAwLTBELUQzICAgKGhleCkJCVNBTVdPTyBUZWxlY29tbXVuaWNhdGlvbiBDby4sTHRkLgorMDAwREQzICAgICAoYmFzZSAxNikJCVNBTVdPTyBUZWxlY29tbXVuaWNhdGlvbiBDby4sTHRkLgorCQkJCQorCQkJCTE3MSwgRGFuZ2p1bmctRG9uZywKKwkJCQlHdW5wbyBLeW91bmctR2kgNDM1LTgzMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC1ENCAgIChoZXgpCQlTeW1hbnRlYyBDb3Jwb3JhdGlvbgorMDAwREQ0ICAgICAoYmFzZSAxNikJCVN5bWFudGVjIENvcnBvcmF0aW9uCisJCQkJMjc1IDJuZCBBdmUKKwkJCQlXYWx0aGFtIE1BIDAyNTQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1ENSAgIChoZXgpCQlPJ1JJVEUgVEVDSE5PTE9HWSBDTy4sTFRECiswMDBERDUgICAgIChiYXNlIDE2KQkJTydSSVRFIFRFQ0hOT0xPR1kgQ08uLExURAorCQkJCTRmLTgsTk8gODAsR1VBTkdGVSBSRC5TRUMgMixTQU5DSFVORworCQkJCVRBSVBFSSBDT1VOVFkgIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtRDYgICAoaGV4KQkJSVRJICAgIExURAorMDAwREQ2ICAgICAoYmFzZSAxNikJCUlUSSAgICBMVEQKKwkJCQlSJkQsSVRJIEJhbmdhbG9yZSBDb21wbGV4CisJCQkJRi04NiBCbGRnLgorCQkJCURvb3JhdmFuaSBOYWdhciwgQmFuZ2Fsb3JlIEthcm5hdGFrYSBTdGF0ZSA1NjAwMTYKKwkJCQlJTkRJQQorCiswMC0wRC1ENyAgIChoZXgpCQlCcmlnaHQKKzAwMERENyAgICAgKGJhc2UgMTYpCQlCcmlnaHQKKwkJCQkxLTEyLTQ0IEFvYmFkYWkKKwkJCQlLYXNoaXdhLXNoaSBDaGliYS1rZW4gMjc3LTAwNTUKKwkJCQlKQVBBTgorCiswMC0wRC1EOCAgIChoZXgpCQlCQk4KKzAwMEREOCAgICAgKGJhc2UgMTYpCQlCQk4KKwkJCQk3Ri0zLE5PLjE4NiwgSmlhbiBZaSBSZCAuLCBDaHVuZyBIbyBDaXR5CisJCQkJVGFpcGVpICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUQ5ICAgKGhleCkJCUFudG9uIFBhYXIgR21iSAorMDAwREQ5ICAgICAoYmFzZSAxNikJCUFudG9uIFBhYXIgR21iSAorCQkJCUFudG9uLVBhYXItU3RyYXNzZSAyMAorCQkJCUdyYXogIDgwNTQKKwkJCQlBVVNUUklBCisKKzAwLTBELURBICAgKGhleCkJCUFMTElFRCBURUxFU0lTIEsuSy4KKzAwMEREQSAgICAgKGJhc2UgMTYpCQlBTExJRUQgVEVMRVNJUyBLLksuCisJCQkJUElBWlpBIFRJUkFOQSBOLiAyNC80IEIKKwkJCQlNSUxBTk8gIDIwMTQ3CisJCQkJSVRBTFkKKworMDAtMEQtREIgICAoaGV4KQkJQUlSV0FWRSBURUNITk9MT0dJRVMgSU5DLgorMDAwRERCICAgICAoYmFzZSAxNikJCUFJUldBVkUgVEVDSE5PTE9HSUVTIElOQy4KKwkJCQkzRixOby45LEluZHVzdHJ5IEUuIDl0aCBSb2FkCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELURDICAgKGhleCkJCVZBQworMDAwRERDICAgICAoYmFzZSAxNikJCVZBQworCQkJCTIwRiwgTjAuIDQ1NiwgU2VjLiA0LCBIc2luIFlpIFJkLiwKKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtREQgICAoaGV4KQkJUFJPRt1MTyBURUxSQSBFTEVLVFJPTt1LIFNBTkFZ3SBWRSBU3UNBUkVUIEEu3i4KKzAwMERERCAgICAgKGJhc2UgMTYpCQlQUk9G3UxPIFRFTFJBIEVMRUtUUk9O3UsgU0FOQVndIFZFIFTdQ0FSRVQgQS7eLgorCQkJCUNFTUFMIFNBSN1SIFNPS0FLIE5POjI2LTI4CisJCQkJTUVD3UTdWUVL1lkKKwkJCQndU1RBTkJVTCBUVVJLRVkgMzQyNTUKKwkJCQlUVVJLRVkKKworMDAtMEQtREUgICAoaGV4KQkJSm95dGVjayBDby4sIEx0ZC4KKzAwMERERSAgICAgKGJhc2UgMTYpCQlKb3l0ZWNrIENvLiwgTHRkLgorCQkJCTE5RiwgTm8uNCwgU2VjLiAzLCBNaW4gQ2h1YW4gRWFzdCBSZC4KKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtREYgICAoaGV4KQkJSmFwYW4gSW1hZ2UgJiBOZXR3b3JrIEluYy4KKzAwMERERiAgICAgKGJhc2UgMTYpCQlKYXBhbiBJbWFnZSAmIE5ldHdvcmsgSW5jLgorCQkJCTUtMjktMTIgU2hpYmEKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA4LTAwMTQKKwkJCQlKQVBBTgorCiswMC0wRC1FMCAgIChoZXgpCQlJQ1BEQVMgQ28uLExURAorMDAwREUwICAgICAoYmFzZSAxNikJCUlDUERBUyBDby4sTFRECisJCQkJIE5vLiAxMTEsIEt1YW5nLUZ1IE4uIFJkLiwgSHNpbi1DaHUgSW5kdQorCQkJCUhTSU5DSFUgIDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtRTEgICAoaGV4KQkJQ29udHJvbCBQcm9kdWN0cywgSW5jLgorMDAwREUxICAgICAoYmFzZSAxNikJCUNvbnRyb2wgUHJvZHVjdHMsIEluYy4KKwkJCQkxNzI0IExha2UgRHJpdmUgV2VzdAorCQkJCUNoYW5oYXNzZW4gTU4gNTUzMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUUyICAgKGhleCkJCUNNWiBTaXN0ZW1pIEVsZXR0cm9uaWNpCiswMDBERTIgICAgIChiYXNlIDE2KQkJQ01aIFNpc3RlbWkgRWxldHRyb25pY2kKKwkJCQlWaWEgZGVsbCdBcnRpZ2luYXRvLCAyMQorCQkJCVZhc2NvbiBkaSBDYXJib25lcmEgVHJldmlzbyAzMTA1MAorCQkJCUlUQUxZCisKKzAwLTBELUUzICAgKGhleCkJCUFUIFN3ZWRlbiBBQgorMDAwREUzICAgICAoYmFzZSAxNikJCUFUIFN3ZWRlbiBBQgorCQkJCVAuTy4gQm94IDExNjYKKwkJCQlJc2Fmam9yZHNnYXRhbiAzMEIKKwkJCQlLaXN0YSBTdG9ja2hvbG0gU0UtMTY0IDI2CisJCQkJU1dFREVOCisKKzAwLTBELUU0ICAgKGhleCkJCURJR0lOSUNTLCBJbmMuCiswMDBERTQgICAgIChiYXNlIDE2KQkJRElHSU5JQ1MsIEluYy4KKwkJCQkxNzgtNworCQkJCVBvaS1kb25nCisJCQkJS2FuZ25hbS1ndSBTZW91bCAxMzUtOTYxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELUU1ICAgKGhleCkJCVNhbXN1bmcgVGhhbGVzCiswMDBERTUgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBUaGFsZXMKKwkJCQkyNTkgR29uZ2Rhbi1Eb25nCisJCQkJR3VtaS1DaXR5IEd5ZW9uZ3NhbmdidWstZG8gNzMwLTkwNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC1FNiAgIChoZXgpCQlZT1VOR0JPIEVOR0lORUVSSU5HIENPLixMVEQKKzAwMERFNiAgICAgKGJhc2UgMTYpCQlZT1VOR0JPIEVOR0lORUVSSU5HIENPLixMVEQKKwkJCQlNdC4yMiwgSmFldW5nYS1yaSwgSmlnc2FuLUV1cCwKKwkJCQlDaGVvbmFuLXNoaSBDaHVuZ2NoZW9uZ25hbS1kbyAjMzMwLTgxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC1FNyAgIChoZXgpCQlTbmFwLW9uIE9FTSBHcm91cAorMDAwREU3ICAgICAoYmFzZSAxNikJCVNuYXAtb24gT0VNIEdyb3VwCisJCQkJMjMzMyBFYXN0IFdhbHRvbiBCbHZkLgorCQkJCUF1YnVybiBIaWxscyBNSSA0ODMyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtRTggICAoaGV4KQkJTmFzYWNvIEVsZWN0cm9uaWNzIFB0ZS4gTHRkCiswMDBERTggICAgIChiYXNlIDE2KQkJTmFzYWNvIEVsZWN0cm9uaWNzIFB0ZS4gTHRkCisJCQkJTGV2ZWwgNCwgTmFzYWNvIFRlY2ggQ2VudHJlCisJCQkJNDksIENoYW5naSBTb3V0aCBBdmVudWUgMgorCQkJCTQ4NjA1NgorCQkJCVNJTkdBUE9SRQorCiswMC0wRC1FOSAgIChoZXgpCQlOYXBhdGVjaCBBcHMKKzAwMERFOSAgICAgKGJhc2UgMTYpCQlOYXBhdGVjaCBBcHMKKwkJCQlSdW5kb2ZyYml2ZWogMjcxLCAxCisJCQkJTmFlcnVtICAyODUwCisJCQkJREVOTUFSSworCiswMC0wRC1FQSAgIChoZXgpCQlLaW5ndGVsIFRlbGVjb21tdW5pY2F0aW9uIENvcnAuCiswMDBERUEgICAgIChiYXNlIDE2KQkJS2luZ3RlbCBUZWxlY29tbXVuaWNhdGlvbiBDb3JwLgorCQkJCTE0NyBLYW5nIE5pbmcgU3QuCisJCQkJSHNpIENoaWggQ2l0eSBUYWlwZWkgSHNpZW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC1FQiAgIChoZXgpCQlDb21wWHMgTGltaXRlZAorMDAwREVCICAgICAoYmFzZSAxNikJCUNvbXBYcyBMaW1pdGVkCisJCQkJUm9iZXJ0IERlbmhvbG0gSG91c2UKKwkJCQlOdXRmaWVsZAorCQkJCVJlZGhpbGwgU3VycmV5IFJIMSA0SFcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC1FQyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBERUMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1FRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBERUQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1FRSAgIChoZXgpCQlBbmRyZXcgUkYgUG93ZXIgQW1wbGlmaWVyIEdyb3VwCiswMDBERUUgICAgIChiYXNlIDE2KQkJQW5kcmV3IFJGIFBvd2VyIEFtcGxpZmllciBHcm91cAorCQkJCTQwIFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlXYXJyZW4gTkogMDcwNTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUVGICAgKGhleCkJCVNvYy4gQ29vcC4gQmlsYW5jaWFpCiswMDBERUYgICAgIChiYXNlIDE2KQkJU29jLiBDb29wLiBCaWxhbmNpYWkKKwkJCQl2aWEgUy5GZXJyYXJpIDE2CisJCQkJQ2FtcG9nYWxsaWFubyBNb2RlbmEgNDEwMTEKKwkJCQlJVEFMWQorCiswMC0wRC1GMCAgIChoZXgpCQlRQ09NIFRFQ0hOT0xPR1kgSU5DLgorMDAwREYwICAgICAoYmFzZSAxNikJCVFDT00gVEVDSE5PTE9HWSBJTkMuCisJCQkJN0YuLCBOTyAxNzgsIE1JTkcgQ0hVQU4gRS4gUkQuLCBTRUMuIDMsCisJCQkJVEFJUEVJICAxMDUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUYxICAgKGhleCkJCUlPTklYIElOQy4KKzAwMERGMSAgICAgKGJhc2UgMTYpCQlJT05JWCBJTkMuCisJCQkJU3Nhbmd5b25nIElUIFR3aW4gVG93ZXIgNjA0LCA0NDItMTcsIFNhbmdkYWV3b24tZG9uZywgSnVuZ3dvbi1ndSwKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjItMTIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELUYyICAgKGhleCkJCVBSSVZBVEUKKzAwMERGMiAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMEQtRjMgICAoaGV4KQkJQXNtYXggU29sdXRpb25zCiswMDBERjMgICAgIChiYXNlIDE2KQkJQXNtYXggU29sdXRpb25zCisJCQkJVGF0YXJza2EgNQorCQkJCUNyYWNvdyAgMzAtMTAzCisJCQkJUE9MQU5ECisKKzAwLTBELUY0ICAgKGhleCkJCVdhdGVydGVrIENvLgorMDAwREY0ICAgICAoYmFzZSAxNikJCVdhdGVydGVrIENvLgorCQkJCVJvb20gMTAwNixIYWl0YWkgYnVpbGRpbmcsbm9ydGggc2kgSHVhbgorCQkJCVpob25nIFJvYWQsSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4MworCQkJCUNISU5BCisKKzAwLTBELUY1ICAgKGhleCkJCVRlbGV0cm9uaWNzIEludGVybmF0aW9uYWwgSW5jLgorMDAwREY1ICAgICAoYmFzZSAxNikJCVRlbGV0cm9uaWNzIEludGVybmF0aW9uYWwgSW5jLgorCQkJCTIgQ2hva2UgQ2hlcnJ5IFJvYWQKKwkJCQlTdWl0ZSAjMTAxCisJCQkJUm9ja3ZpbGxlIE1EIDIwODUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1GNiAgIChoZXgpCQlUZWNobm9sb2d5IFRoZXNhdXJ1cyBDb3JwLgorMDAwREY2ICAgICAoYmFzZSAxNikJCVRlY2hub2xvZ3kgVGhlc2F1cnVzIENvcnAuCisJCQkJTk8uIDYsIEVhc3QgNHRoIFN0LiBLRVBaCisJCQkJS0FPSFNJVU5HICA4MDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUY3ICAgKGhleCkJCVNwYWNlIER5bmFtaWNzIExhYgorMDAwREY3ICAgICAoYmFzZSAxNikJCVNwYWNlIER5bmFtaWNzIExhYgorCQkJCTE2OTUgTi4gUmVzZWFyY2ggUGFyayBXYXkKKwkJCQlOb3J0aCBMb2dhbiBVVCA4NDM0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtRjggICAoaGV4KQkJT1JHQSBLYXJ0ZW5zeXN0ZW1lIEdtYkgKKzAwMERGOCAgICAgKGJhc2UgMTYpCQlPUkdBIEthcnRlbnN5c3RlbWUgR21iSAorCQkJCUtvbnJhZC1adXNlLVJpbmcgMQorCQkJCUZsaW50YmVrIFNjaGxlc3dpZy1Ib2xzdGVpbiAyNDIyMAorCQkJCUdFUk1BTlkKKworMDAtMEQtRjkgICAoaGV4KQkJTkRTIExpbWl0ZWQKKzAwMERGOSAgICAgKGJhc2UgMTYpCQlORFMgTGltaXRlZAorCQkJCU9uZSBIZWF0aHJvdyBCb3VsZXZhcmQKKwkJCQkyODYgQmF0aCBSb2FkCisJCQkJV2VzdCBEcmF5dG9uIE1pZGRsZXNleCBVQjcgMERRCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEQtRkEgICAoaGV4KQkJTWljcm8gQ29udHJvbCBTeXN0ZW1zIEx0ZC4KKzAwMERGQSAgICAgKGJhc2UgMTYpCQlNaWNybyBDb250cm9sIFN5c3RlbXMgTHRkLgorCQkJCTgtNyBTYWt1cmFpCisJCQkJU2FrdS1zaGkgTmFnYW5vIDM4NS0wMDU2CisJCQkJSkFQQU4KKworMDAtMEQtRkIgICAoaGV4KQkJS29tYXggQUcKKzAwMERGQiAgICAgKGJhc2UgMTYpCQlLb21heCBBRworCQkJCUluZHVzdHJpZXN0cmFzc2UgNgorCQkJCURpZXJpa29uIExVIDYwMzYKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRC1GQyAgIChoZXgpCQlJVEZPUiBJbmMuCiswMDBERkMgICAgIChiYXNlIDE2KQkJSVRGT1IgSW5jLgorCQkJCUljaGliYW5jaG8gVG9reXUgQmlkZy4sCisJCQkJMjEgSWNoaWJhbm5jeW8sQ2hpeW9kYS1rdQorCQkJCVRva3lvIDEwMi0wMDgyCisJCQkJSkFQQU4KKworMDAtMEQtRkQgICAoaGV4KQkJSHVnZXMgSGktVGVjaCBJbmMuLAorMDAwREZEICAgICAoYmFzZSAxNikJCUh1Z2VzIEhpLVRlY2ggSW5jLiwKKwkJCQk3RiwgMTg4LCBTZWMuMiwgQ2h1bmcgSHNpbmcgUm9hZC4KKwkJCQlIc2luIFRpZW4gVGFpcGVpIEhzaWVuIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtRkUgICAoaGV4KQkJSGF1cHBhdWdlIENvbXB1dGVyIFdvcmtzLCBJbmMuCiswMDBERkUgICAgIChiYXNlIDE2KQkJSGF1cHBhdWdlIENvbXB1dGVyIFdvcmtzLCBJbmMuCisJCQkJOTEgQ2Fib3QgQ291cnQKKwkJCQlIYXVwcGF1Z2UgTmV3IFlvcmsgMTE3ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUZGICAgKGhleCkJCUNIRU5NSU5HIE1PTEQgSU5EVVNUUlkgQ09SUC4KKzAwMERGRiAgICAgKGJhc2UgMTYpCQlDSEVOTUlORyBNT0xEIElORFVTVFJZIENPUlAuCisJCQkJMkYgTm8uIDI2LCBMYW5lIDUxMywgUmVpIEt1YW5nIFJkLgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS0wMCAgIChoZXgpCQlBdHJpZQorMDAwRTAwICAgICAoYmFzZSAxNikJCUF0cmllCisJCQkJMTB0aCBGbG9vciwgMTQsIExhbmUgNjA5LCBTZWMuIDUsIENodW5nIEhzaW4gUmQuLCBTYW4gQ2h1bmcgQ2l0eSwKKwkJCQlUYWlwZWkgSHNpZW4gU2FuIENodW5nIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtMDEgICAoaGV4KQkJQVNJUCBUZWNobm9sb2dpZXMgSW5jLgorMDAwRTAxICAgICAoYmFzZSAxNikJCUFTSVAgVGVjaG5vbG9naWVzIEluYy4KKwkJCQkxMEYtMiwgTk8uMzIyLCBTZWMuMSwgR3VhbmdmdSBSZC4sCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS0wMiAgIChoZXgpCQlBZHZhbnRlY2ggQU1UIEluYy4KKzAwMEUwMiAgICAgKGJhc2UgMTYpCQlBZHZhbnRlY2ggQU1UIEluYy4KKwkJCQk2NTcgT3JseSBBdmUuCisJCQkJRG9ydmFsIFF1ZWJlYyBIOVAgMUcxCisJCQkJQ0FOQURBCisKKzAwLTBFLTAzICAgKGhleCkJCUVtdWxleAorMDAwRTAzICAgICAoYmFzZSAxNikJCUVtdWxleAorCQkJCTMzMzMgU3VzYW4gU3RyZWV0CisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMDQgICAoaGV4KQkJQ01BL01pY3JvZGlhbHlzaXMgQUIKKzAwMEUwNCAgICAgKGJhc2UgMTYpCQlDTUEvTWljcm9kaWFseXNpcyBBQgorCQkJCURhbHbkZ2VuIDEwIC8gQm94IDIKKwkJCQlTb2xuYSAgMTcxIDE4CisJCQkJU1dFREVOCisKKzAwLTBFLTA1ICAgKGhleCkJCVdJUkVMRVNTIE1BVFJJWCBDT1JQLgorMDAwRTA1ICAgICAoYmFzZSAxNikJCVdJUkVMRVNTIE1BVFJJWCBDT1JQLgorCQkJCVVOSVQgMUEtMzc1MSBOT1JUSCBGUkFTRVIgV0FZCisJCQkJQlVSTkFCWSBCQyBWNUogNUc0CisJCQkJQ0FOQURBCisKKzAwLTBFLTA2ICAgKGhleCkJCVRlYW0gU2ltb2NvIEx0ZAorMDAwRTA2ICAgICAoYmFzZSAxNikJCVRlYW0gU2ltb2NvIEx0ZAorCQkJCUZpZWxkIEhvdXNlCisJCQkJVXR0b3hldGVyIE9sZCBSb2FkCisJCQkJRGVyYnkgRGVyYnlzaGlyZSBERTEgMU5ICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEUtMDcgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKzAwMEUwNyAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNFIDIyMSA4OCBMdW5kCisJCQkJU1dFREVOCisKKzAwLTBFLTA4ICAgKGhleCkJCUNpc2NvIExpbmtzeXMgTExDCiswMDBFMDggICAgIChiYXNlIDE2KQkJQ2lzY28gTGlua3N5cyBMTEMKKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTA5ICAgKGhleCkJCVNoZW56aGVuIENvc2hpcCBTb2Z0d2FyZSBDby4sTFRELgorMDAwRTA5ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIENvc2hpcCBTb2Z0d2FyZSBDby4sTFRELgorCQkJCTcvRixCbG9jayBBLFcyIEJsZGcsSGktVGVjaCBJbmR1c3RyaWFsIFBhcmssU2hlbnpoZW4sQ2hpbmEKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMEUtMEEgICAoaGV4KQkJU0FLVU1BIERFU0lHTiBPRkZJQ0UKKzAwMEUwQSAgICAgKGJhc2UgMTYpCQlTQUtVTUEgREVTSUdOIE9GRklDRQorCQkJCTY3NC0xMQorCQkJCUtVS0ktU0hJIFNBSVRBTUEgMzQ2LTAwMjkKKwkJCQlKQVBBTgorCiswMC0wRS0wQiAgIChoZXgpCQlOZXRhYyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwRTBCICAgICAoYmFzZSAxNikJCU5ldGFjIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNkYsIEluY3ViYXRvciBCdWlsZGluZywgQ2hpbmEgQWNhZGVteSBvZiBTY2llbmNlICZUZWNoIERldmVsb3BtZW50LAorCQkJCU5vLjEgSGlnaC10ZWNoIFNvdXRoIFN0cmVldAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0wRS0wQyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAwRTBDICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJMjExMSBORSAgMjV0aCBBdmVudWUKKwkJCQlNUzogIEpGMy00MjAKKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTBEICAgKGhleCkJCUhFU0NIIFNjaHL2ZGVyIEdtYkgKKzAwMEUwRCAgICAgKGJhc2UgMTYpCQlIRVNDSCBTY2hy9mRlciBHbWJICisJCQkJQm9zY2hzdHJhc3NlIDgKKwkJCQlOZXVzdGFkdCBOaWVkZXJzYWNoc2VuIDMxNTM1CisJCQkJR0VSTUFOWQorCiswMC0wRS0wRSAgIChoZXgpCQlFU0EgZWxldHRyb25pY2EgUy5QLkEuCiswMDBFMEUgICAgIChiYXNlIDE2KQkJRVNBIGVsZXR0cm9uaWNhIFMuUC5BLgorCQkJCVZpYSBQLiBNYXNjaWFkcmkgNC9BCisJCQkJTWFyaWFubyBDb21lbnNlIENPIDIyMDY2CisJCQkJSVRBTFkKKworMDAtMEUtMEYgICAoaGV4KQkJRVJNTUUKKzAwMEUwRiAgICAgKGJhc2UgMTYpCQlFUk1NRQorCQkJCTkgcnVlIExhdm9pc2llcgorCQkJCVZlcnQtTGUtUGV0aXQgIDkxNzEwCisJCQkJRlJBTkNFCisKKzAwLTBFLTEwICAgKGhleCkJCUMtZ3V5cywgSW5jLgorMDAwRTEwICAgICAoYmFzZSAxNikJCUMtZ3V5cywgSW5jLgorCQkJCUl6dW1pIEdhcmRlbiBXaW5nIDFGLCAxLTYtMworCQkJCVJvcHBvbmdpLCBNaW5hdG8ta3UKKwkJCQlUb2t5byAgMTA2LTAwMzIKKwkJCQlKQVBBTgorCiswMC0wRS0xMSAgIChoZXgpCQlCRFQgQvxyby0gdW5kIERhdGVudGVjaG5payBHbWJIICYgQ28uIEtHCiswMDBFMTEgICAgIChiYXNlIDE2KQkJQkRUIEL8cm8tIHVuZCBEYXRlbnRlY2huaWsgR21iSCAmIENvLiBLRworCQkJCVNhbGluZSAyOQorCQkJCVJvdHR3ZWlsIEJhZGVuLVf8cnR0ZW1iZXJnIEQtNzg2MjgKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTEyICAgKGhleCkJCUFkYXB0aXZlIE1pY3JvIFN5c3RlbXMgSW5jLgorMDAwRTEyICAgICAoYmFzZSAxNikJCUFkYXB0aXZlIE1pY3JvIFN5c3RlbXMgSW5jLgorCQkJCTc4NDAgTm9ydGggODZ0aCBTdC4KKwkJCQlNaWx3YXVrZWUgV0kgNTMyMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTEzICAgKGhleCkJCUFjY3UtU29ydCBTeXN0ZW1zIGluYy4KKzAwMEUxMyAgICAgKGJhc2UgMTYpCQlBY2N1LVNvcnQgU3lzdGVtcyBpbmMuCisJCQkJNTExIFNjaG9vbCBIb3VzZSBSb2FkCisJCQkJVGVsZm9yZCBQQSAxODk2OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMTQgICAoaGV4KQkJVmlzaW9uYXJ5IFNvbHV0aW9ucywgSW5jLgorMDAwRTE0ICAgICAoYmFzZSAxNikJCVZpc2lvbmFyeSBTb2x1dGlvbnMsIEluYy4KKwkJCQk0MTkzIENhcnBpbnRlcmlhIEF2ZQorCQkJCVN1aXRlIDExCisJCQkJQ2FycGludGVyaWEgQ0EgOTMwMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTE1ICAgKGhleCkJCVRhZGx5cyBMVEQKKzAwMEUxNSAgICAgKGJhc2UgMTYpCQlUYWRseXMgTFRECisJCQkJSVNSQUVMSSBTSElNT04gMworCQkJCVJJU0hPTiBsRVpZWU9OIElTUkFFTCA3NTY1NAorCQkJCUlTUkFFTAorCiswMC0wRS0xNiAgIChoZXgpCQlTb3V0aFdpbmcgUy5MLgorMDAwRTE2ICAgICAoYmFzZSAxNikJCVNvdXRoV2luZyBTLkwuCisJCQkJQy9BdmlsYSwgNDgtNTAKKwkJCQkzcmQgZmxvb3IKKwkJCQlCYXJjZWxvbmEgIDA4MDA1CisJCQkJU1BBSU4KKworMDAtMEUtMTcgICAoaGV4KQkJUFJJVkFURQorMDAwRTE3ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wRS0xOCAgIChoZXgpCQlNeUEgVGVjaG5vbG9neQorMDAwRTE4ICAgICAoYmFzZSAxNikJCU15QSBUZWNobm9sb2d5CisJCQkJMjEwMCBNdWlyd29vZCBXYXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMTkgICAoaGV4KQkJTG9naWNhQ01HIFB0eSBMdGQKKzAwMEUxOSAgICAgKGJhc2UgMTYpCQlMb2dpY2FDTUcgUHR5IEx0ZAorCQkJCTE3LTE5IE9yaW9uIFJvYWQKKwkJCQlMYW5lIENvdmUgTlNXIDIwNjYKKwkJCQlBVVNUUkFMSUEKKworMDAtMEUtMUEgICAoaGV4KQkJSlBTIENvbW11bmljYXRpb25zCiswMDBFMUEgICAgIChiYXNlIDE2KQkJSlBTIENvbW11bmljYXRpb25zCisJCQkJNTgwMCBEZXBhcnR1cmUgRHJpdmUKKwkJCQlSYWxlaWdoIE5DIDI3NjE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0xQiAgIChoZXgpCQlJQVYgR21iSAorMDAwRTFCICAgICAoYmFzZSAxNikJCUlBViBHbWJICisJCQkJQ2Fybm90c3RyLiAxCisJCQkJQmVybGluICAxMDU4NworCQkJCUdFUk1BTlkKKworMDAtMEUtMUMgICAoaGV4KQkJSGFjaCBDb21wYW55CiswMDBFMUMgICAgIChiYXNlIDE2KQkJSGFjaCBDb21wYW55CisJCQkJNTYwMCBMaW5kYmVyZ2ggRHJpdmUKKwkJCQlMb3ZlbGFuZCBDTyA4MDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMUQgICAoaGV4KQkJQVJJT04gVGVjaG5vbG9neSBJbmMuCiswMDBFMUQgICAgIChiYXNlIDE2KQkJQVJJT04gVGVjaG5vbG9neSBJbmMuCisJCQkJM0YsIFBpY2EgQmxkZywgODk0LTIsIEhvZ3llIDIgRG9uZworCQkJCURvbmdhbi1HdQorCQkJCUFuLVlhbmcgQ2l0eSBHeWVvbmdnaS1EbyAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtMUUgICAoaGV4KQkJUUxvZ2ljIENvcnBvcmF0aW9uCiswMDBFMUUgICAgIChiYXNlIDE2KQkJUUxvZ2ljIENvcnBvcmF0aW9uCisJCQkJMjY2NTAgQWxpc28gVmllam8gUGFya3dheQorCQkJCUFsaXNvIFZpZWpvIENBIDkyNjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0xRiAgIChoZXgpCQlUQ0wgTmV0d29ya3MgRXF1aXBtZW50IENvLiwgTHRkLgorMDAwRTFGICAgICAoYmFzZSAxNikJCVRDTCBOZXR3b3JrcyBFcXVpcG1lbnQgQ28uLCBMdGQuCisJCQkJTm8uNSBJbmR1c3RyaWFsIFJvYWQsU2hla291CisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA2NworCQkJCUNISU5BCisKKzAwLTBFLTIwICAgKGhleCkJCUFDQ0VTUyBTeXN0ZW1zIEFtZXJpY2FzLCBJbmMuCiswMDBFMjAgICAgIChiYXNlIDE2KQkJQUNDRVNTIFN5c3RlbXMgQW1lcmljYXMsIEluYy4KKwkJCQkxMTg4IEVhc3QgQXJxdWVzIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMjEgICAoaGV4KQkJTVRVIEZyaWVkcmljaHNoYWZlbiBHbWJICiswMDBFMjEgICAgIChiYXNlIDE2KQkJTVRVIEZyaWVkcmljaHNoYWZlbiBHbWJICisJCQkJTWF5YmFjaHBsYXR6IDEKKwkJCQlGcmllZHJpY2hzaGFmZW4gQmFkZW4gV3VlcnRlbWJlcmcgODgwNDAKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTIyICAgKGhleCkJCVBSSVZBVEUKKzAwMEUyMiAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMEUtMjMgICAoaGV4KQkJSW5jaXBpZW50LCBJbmMuCiswMDBFMjMgICAgIChiYXNlIDE2KQkJSW5jaXBpZW50LCBJbmMuCisJCQkJMjMwIFRoaXJkIEF2ZS4KKwkJCQk0dGggRmxvb3IKKwkJCQlXYWx0aGFtIE1BIDAyNDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0yNCAgIChoZXgpCQlIdXdlbGwgVGVjaG5vbG9neSBJbmMuCiswMDBFMjQgICAgIChiYXNlIDE2KQkJSHV3ZWxsIFRlY2hub2xvZ3kgSW5jLgorCQkJCTFGIDgyLTIxLCBNYWppbiBCdWlsZGluZworCQkJCU5vbmh5dW4tZG9uZywgR2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTI1ICAgKGhleCkJCUhhbm5hZSBUZWNobm9sb2d5IENvLiwgTHRkCiswMDBFMjUgICAgIChiYXNlIDE2KQkJSGFubmFlIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQk0RiwgSHl1bmppbiBCbGRnLiwgIzc5OC0zMCwgWWVva3NhbS1Eb25nCisJCQkJS2FuZ25hbS1LdQorCQkJCVNFT1VMICAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTI2ICAgKGhleCkJCUdpbmNvbSBUZWNobm9sb2d5IENvcnAuCiswMDBFMjYgICAgIChiYXNlIDE2KQkJR2luY29tIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkxNUYuLCBOby4gMjg0LCBTZWMuMywgU2FubWluIFJkLiwgVGFveXVhbiBDaXR5LAorCQkJCVRhb3l1YW4sICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTI3ICAgKGhleCkJCUNyZXJlIE5ldHdvcmtzLCBJbmMuCiswMDBFMjcgICAgIChiYXNlIDE2KQkJQ3JlcmUgTmV0d29ya3MsIEluYy4KKwkJCQlSb29tIDExMCBFVFJJIFRCSSwgNTIgRW9ldW4tZG9uZworCQkJCVl1c2VvbmctZ3UKKwkJCQlEYWVqZW9uICAzMDUtMzMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTI4ICAgKGhleCkJCUR5bmFtaWMgUmF0aW5ncyBQL0wKKzAwMEUyOCAgICAgKGJhc2UgMTYpCQlEeW5hbWljIFJhdGluZ3MgUC9MCisJCQkJQy9PIFdpbHNvbiBUcmFuc2Zvcm1lciBDby4KKwkJCQlXaWxzb24gUmQuIChQTyBCb3ggNSkKKwkJCQlHbGVuIFdhdmVybGV5IFZpY3RvcmlhIDMxNTAKKwkJCQlBVVNUUkFMSUEKKworMDAtMEUtMjkgICAoaGV4KQkJU2hlc3RlciBDb21tdW5pY2F0aW9ucyBJbmMKKzAwMEUyOSAgICAgKGJhc2UgMTYpCQlTaGVzdGVyIENvbW11bmljYXRpb25zIEluYworCQkJCTE1OSBTLiBMaW5jb2xuCisJCQkJU3VpdGUgMjIxCisJCQkJU3Bva2FuZSBXQSA5OTIwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMkEgICAoaGV4KQkJUFJJVkFURQorMDAwRTJBICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wRS0yQiAgIChoZXgpCQlTYWZhcmkgVGVjaG5vbG9naWVzCiswMDBFMkIgICAgIChiYXNlIDE2KQkJU2FmYXJpIFRlY2hub2xvZ2llcworCQkJCTYzODU1IE00MCBId3kKKwkJCQlMYXd0b24gTUkgNDkwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTJDICAgKGhleCkJCU5ldGNvZGVjIGNvLgorMDAwRTJDICAgICAoYmFzZSAxNikJCU5ldGNvZGVjIGNvLgorCQkJCTQwMSBEYWVpb24gUy9XIENlbnRlciwgNDggSmFuZ2RvbmcKKwkJCQlZdXNvbmdndQorCQkJCURhZWpvbiAgMzA1LTcxNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS0yRCAgIChoZXgpCQlIeXVuZGFpIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkLgorMDAwRTJEICAgICAoYmFzZSAxNikJCUh5dW5kYWkgRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJMjIzLTIyLCBTYW5nZGFld29uLTFkb25nLCBKdW5nd29uLWd1CisJCQkJU2VvbmduYW0tc2kgS3lvdW5na2ktZG8gNDYyLTgwNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS0yRSAgIChoZXgpCQlFZGltYXggVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMEUyRSAgICAgKGJhc2UgMTYpCQlFZGltYXggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkzLCBXdS1DaHVhbiAzcmQgUm9hZCwKKwkJCQlXdS1LdSBJbmR1c3RyaWFsIFBhcmssCisJCQkJVGFpcGVpIEhzaWVuLCAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS0yRiAgIChoZXgpCQlEaXNldHJvbmljIE1lZGljYWwgU3lzdGVtcyBBRworMDAwRTJGICAgICAoYmFzZSAxNikJCURpc2V0cm9uaWMgTWVkaWNhbCBTeXN0ZW1zIEFHCisJCQkJS2lyY2hiZXJnc3RyYXNzZSAxOTAKKwkJCQlCdXJnZG9yZiBCZXJuIDM0MDEKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRS0zMCAgIChoZXgpCQlBRVJBUyBOZXR3b3JrcywgSW5jLgorMDAwRTMwICAgICAoYmFzZSAxNikJCUFFUkFTIE5ldHdvcmtzLCBJbmMuCisJCQkJUC5PLiBCb3ggNzMzMAorCQkJCUxhZ3VuYSBOaWd1ZWwgQ0EgOTI2MDctNzMzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMzEgICAoaGV4KQkJT2x5bXB1cyBTb2Z0IEltYWdpbmcgU29sdXRpb25zIEdtYkgKKzAwMEUzMSAgICAgKGJhc2UgMTYpCQlPbHltcHVzIFNvZnQgSW1hZ2luZyBTb2x1dGlvbnMgR21iSAorCQkJCUpvaGFubi1LcmFuZS1XZWcgMzkKKwkJCQlN/G5zdGVyIDQ4MTQ5CisJCQkJR0VSTUFOWQorCiswMC0wRS0zMiAgIChoZXgpCQlLb250cm9uIE1lZGljYWwKKzAwMEUzMiAgICAgKGJhc2UgMTYpCQlLb250cm9uIE1lZGljYWwKKwkJCQlSZWluYWNoZXJzdHJhc3NlIDEzMQorCQkJCUJhc2VsICA0MDAyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEUtMzMgICAoaGV4KQkJU2h1a28gRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAwRTMzICAgICAoYmFzZSAxNikJCVNodWtvIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQlUT0hTSElOIEhJR0FTSEktSUtFQlVLVVJPIEJ1aWxkaW5nIDNGCisJCQkJNS00NC0xNSxISUdBU0hJLUlLRUJVS1VSTyxUT1NISU1BLUtVCisJCQkJVE9LWU8gS0FOVE9IIDE3MC0wMDYzCisJCQkJSkFQQU4KKworMDAtMEUtMzQgICAoaGV4KQkJTmV4R2VuIENpdHksIExQCiswMDBFMzQgICAgIChiYXNlIDE2KQkJTmV4R2VuIENpdHksIExQCisJCQkJMTY4MCBHbGVudmlsbGUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlSaWNoYXJkc29uIFRleGFzIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zNSAgIChoZXgpCQlJbnRlbCBDb3JwCiswMDBFMzUgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycAorCQkJCTIxMTEgTkUgMjV0aCBBdmUKKwkJCQlKRjMtNDIwCisJCQkJSGlsbHNib3JvIE9SIDk3MTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zNiAgIChoZXgpCQlIRUlORVNZUywgSW5jLgorMDAwRTM2ICAgICAoYmFzZSAxNikJCUhFSU5FU1lTLCBJbmMuCisJCQkJM0YsIFN1bmdrd2FuZyBCbGRnLiA0NTYtMTMsIFN1bmduYWUtZG9uZworCQkJCUthbmdkb25nLWd1CisJCQkJU2VvdWwgIDEzNC04NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtMzcgICAoaGV4KQkJSGFybXMgJiBXZW5kZSBHbWJIICYgQ28uS0cKKzAwMEUzNyAgICAgKGJhc2UgMTYpCQlIYXJtcyAmIFdlbmRlIEdtYkggJiBDby5LRworCQkJCUdyb3NzbW9vcmtlaHJlIDkKKwkJCQlIYW1idXJnICBELTIxMDc5CisJCQkJR0VSTUFOWQorCiswMC0wRS0zOCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBFMzggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBFMzkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zQSAgIChoZXgpCQlDaXJydXMgTG9naWMKKzAwMEUzQSAgICAgKGJhc2UgMTYpCQlDaXJydXMgTG9naWMKKwkJCQkyOTAxIFZpYSBGb3J0dW5hCisJCQkJQXVzdGluIFRYIDc4NzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zQiAgIChoZXgpCQlIYXdraW5nIFRlY2hub2xvZ2llcywgSW5jLgorMDAwRTNCICAgICAoYmFzZSAxNikJCUhhd2tpbmcgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTUyODFBIEJhcnJhbmNhIFBhcmt3YXkKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTNDICAgKGhleCkJCVRyYW5zYWN0IFRlY2hub2xvZ2llcyBJbmMKKzAwMEUzQyAgICAgKGJhc2UgMTYpCQlUcmFuc2FjdCBUZWNobm9sb2dpZXMgSW5jCisJCQkJMjAgQm9tYXggRHJpdmUKKwkJCQlJdGhhY2EgTmV3IFlvcmsgMTQ4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTNEICAgKGhleCkJCVRlbGV2aWMgTi5WLgorMDAwRTNEICAgICAoYmFzZSAxNikJCVRlbGV2aWMgTi5WLgorCQkJCUxlbyBCZWthZXJ0bGFhbiAxCisJCQkJSXplZ2VtICA4ODcwCisJCQkJQkVMR0lVTQorCiswMC0wRS0zRSAgIChoZXgpCQlTdW4gT3B0cm9uaWNzIEluYworMDAwRTNFICAgICAoYmFzZSAxNikJCVN1biBPcHRyb25pY3MgSW5jCisJCQkJNC0zOC00IEZ1Y2hpbm9iZS1ob25jaG91CisJCQkJU2FnYW1paGFyYSBLYW5hZ2F3YSAyMjktMDAwMgorCQkJCUpBUEFOCisKKzAwLTBFLTNGICAgKGhleCkJCVNvcm9udGksIEluYy4KKzAwMEUzRiAgICAgKGJhc2UgMTYpCQlTb3JvbnRpLCBJbmMuCisJCQkJMTIxNTkgQnVzaW5lc3MgUGFyayBEciwgU3VpdGUgMTQwCisJCQkJRHJhcGVyIFV0YWggODQwMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTQwICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwRTQwICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0wRS00MSAgIChoZXgpCQlOSUhPTiBNRUNIQVRST05JQ1MgQ08uLExURC4KKzAwMEU0MSAgICAgKGJhc2UgMTYpCQlOSUhPTiBNRUNIQVRST05JQ1MgQ08uLExURC4KKwkJCQk5LTYgU0hJT01JREFJLCBNSVlBTUFFLUtVCisJCQkJS0FXQVNBS0ktU0hJIEtBTkFHQVdBLUtFTiAyMTYtMDAxMworCQkJCUpBUEFOCisKKzAwLTBFLTQyICAgKGhleCkJCU1vdGljIEluY29wb3JhdGlvbiBMdGQuCiswMDBFNDIgICAgIChiYXNlIDE2KQkJTW90aWMgSW5jb3BvcmF0aW9uIEx0ZC4KKwkJCQlSb29tIDI5MDctOCwgV2luZHNvciAgSG91c2UKKwkJCQkzMTEgR2xvdWNlc3RlciBSb2FkLCBDYXVzZXdheSBCYXkKKwkJCQlIb25nIEtvbmcgIAorCQkJCUNISU5BCisKKzAwLTBFLTQzICAgKGhleCkJCUctVGVrIEVsZWN0cm9uaWNzIFNkbi4gQmhkLgorMDAwRTQzICAgICAoYmFzZSAxNikJCUctVGVrIEVsZWN0cm9uaWNzIFNkbi4gQmhkLgorCQkJCTI0OTMgTXVraW0gMSwgTG9yb25nIFBlcnVzYWhhYW4gTGFwYW4KKwkJCQlLYXdhc2FuIFBlcmluZHVzdHJpYW4gUGVyYWkKKwkJCQlQZXJhaSBQZW5hbmcgMTM2MDAKKwkJCQlNQUxBWVNJQQorCiswMC0wRS00NCAgIChoZXgpCQlEaWdpdGFsIDUsIEluYy4KKzAwMEU0NCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIDUsIEluYy4KKwkJCQkxMDEgR3JvdmVycyBNaWxsIFJkLgorCQkJCVN1aXRlIDIwMAorCQkJCUxhd3JlbmNldmlsbGUgTkogMDg2NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTQ1ICAgKGhleCkJCUJlaWppbmcgTmV3dHJ5IEVsZWN0cm9uaWMgVGVjaG5vbG9neSBMdGQKKzAwMEU0NSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIE5ld3RyeSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgTHRkCisJCQkJUE8gQm94IDk1LCBOby4gMSBCZWkgU2hhIFRhbiwKKwkJCQlDaGFvIFlhbmcgUXUKKwkJCQlCZWlqaW5nICAxMDA4MworCQkJCUNISU5BCisKKzAwLTBFLTQ2ICAgKGhleCkJCU5paWdhdGEgU2VpbWl0c3UgQ28uLEx0ZC4KKzAwMEU0NiAgICAgKGJhc2UgMTYpCQlOaWlnYXRhIFNlaW1pdHN1IENvLixMdGQuCisJCQkJMzMzNS0yLCBTaGltb25ha2EsIFNhbndhLW11cmEKKwkJCQlOYWtha3ViaWtpLWd1biBOaWlnYXRhIDk0My0wMjIyCisJCQkJSkFQQU4KKworMDAtMEUtNDcgICAoaGV4KQkJTkNJIFN5c3RlbSBDby4sTHRkLgorMDAwRTQ3ICAgICAoYmFzZSAxNikJCU5DSSBTeXN0ZW0gQ28uLEx0ZC4KKwkJCQkjMjA2LCBLYXlhbmcgVGVjaG5vLVRvd24sIDE0ODcsIEtheWFuZyAzIGRvbmcsIEthbmdzZW8tS3UsIFNlb3VsLCBLb3JlYQorCQkJCVNlb3VsICAxNTctODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTQ4ICAgKGhleCkJCUxpcG1hbiBUcmFuc0FjdGlvbiBTb2x1dGlvbnMKKzAwMEU0OCAgICAgKGJhc2UgMTYpCQlMaXBtYW4gVHJhbnNBY3Rpb24gU29sdXRpb25zCisJCQkJMTEgSGFhbWFsIFN0LgorCQkJCSBSb3NoLUhhYXlpbiAgNDgwOTIKKwkJCQlJU1JBRUwKKworMDAtMEUtNDkgICAoaGV4KQkJRm9yc3dheSBTY2FuZGluYXZpYSBBQgorMDAwRTQ5ICAgICAoYmFzZSAxNikJCUZvcnN3YXkgU2NhbmRpbmF2aWEgQUIKKwkJCQlLYXBsYW5zZ2F0YW4gMTYgQgorCQkJCTU0MSAzNCBTa/Z2ZGUgCisJCQkJU1dFREVOCisKKzAwLTBFLTRBICAgKGhleCkJCUNoYW5nY2h1biBIdWF5dSBXRUJQQUQgQ28uLExURAorMDAwRTRBICAgICAoYmFzZSAxNikJCUNoYW5nY2h1biBIdWF5dSBXRUJQQUQgQ28uLExURAorCQkJCTQzNzAgR2FveGluIFJvYWQsIEhpZ2gtVGVjaAorCQkJCURldmVsb3BtZW50IEFyZWEKKwkJCQlDaGFuZ2NodW4gSmlsaW4gMTMwMDEyCisJCQkJQ0hJTkEKKworMDAtMEUtNEIgICAoaGV4KQkJYXRyaXVtIGMgYW5kIGkKKzAwMEU0QiAgICAgKGJhc2UgMTYpCQlhdHJpdW0gYyBhbmQgaQorCQkJCTEyNC00LCBPamVvbi1kb25nLAorCQkJCVVpd2FuZy1jaXR5IEt5dW5nZ2ktRG8gNDM3LTgxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS00QyAgIChoZXgpCQlCZXJtYWkgSW5jLgorMDAwRTRDICAgICAoYmFzZSAxNikJCUJlcm1haSBJbmMuCisJCQkJNDEwIENhbWJyaWRnZSBBdmUKKwkJCQkybmQgRmxvb3IKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTREICAgKGhleCkJCU51bWVzYSBJbmMuCiswMDBFNEQgICAgIChiYXNlIDE2KQkJTnVtZXNhIEluYy4KKwkJCQk0NDQ0IFdlc3Rncm92ZSBTdWl0ZSAzMDAKKwkJCQlBZGRpc29uIFRYIDc1MDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS00RSAgIChoZXgpCQlXYXZlcGx1cyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwRTRFICAgICAoYmFzZSAxNikJCVdhdmVwbHVzIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMzQ3IEhzaW5IdSAybmQgUmQuLCBOZWlIdQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS00RiAgIChoZXgpCQlUcmFqZXQgR21iSAorMDAwRTRGICAgICAoYmFzZSAxNikJCVRyYWpldCBHbWJICisJCQkJUmViZW5yaW5nIDMzCisJCQkJQnJhdW5zY2h3ZWlnIE5kcy4gMzgxMDYKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTUwICAgKGhleCkJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCiswMDBFNTAgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKwkJCQlQcmlucyBCb3VkZXdpam5sYWFuIDQ3CisJCQkJRWRlZ2VtIEFudHdlcnAgQi0yNjUwCisJCQkJQkVMR0lVTQorCiswMC0wRS01MSAgIChoZXgpCQl0ZWNuYSBlbGV0dHJvbmljYSBzcmwKKzAwMEU1MSAgICAgKGJhc2UgMTYpCQl0ZWNuYSBlbGV0dHJvbmljYSBzcmwKKwkJCQl2aWEgbWlnbGlvbGkgMzAKKwkJCQljYXN0ZWwgc2FuIHBpZXRybyB0ZXJtZSBib2xvZ25hIDQwMDI0CisJCQkJSVRBTFkKKworMDAtMEUtNTIgICAoaGV4KQkJT3B0aXVtIENvcnBvcmF0aW9uCiswMDBFNTIgICAgIChiYXNlIDE2KQkJT3B0aXVtIENvcnBvcmF0aW9uCisJCQkJNTAwIEhvcml6b24gRHIKKwkJCQlTdWl0ZSA1MDUKKwkJCQlDaGFsZm9udCBQQSAxODkxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtNTMgICAoaGV4KQkJQVYgVEVDSCBDT1JQT1JBVElPTgorMDAwRTUzICAgICAoYmFzZSAxNikJCUFWIFRFQ0ggQ09SUE9SQVRJT04KKwkJCQkxMEYsRSBCdWlsZGluZyxOby4xOS0xMSBTYW4gQ2h1bmcgUmQuLE5hbkthbmcKKwkJCQlUYWlwZWkgIDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtNTQgICAoaGV4KQkJQWxwaGFDZWxsIFdpcmVsZXNzIEx0ZC4KKzAwMEU1NCAgICAgKGJhc2UgMTYpCQlBbHBoYUNlbGwgV2lyZWxlc3MgTHRkLgorCQkJCTIyIFphcmhpbiBzdHJlZXQKKwkJCQlSYWFuYW5hICA0MzY2MgorCQkJCUlTUkFFTAorCiswMC0wRS01NSAgIChoZXgpCQlBVVZJVFJBTgorMDAwRTU1ICAgICAoYmFzZSAxNikJCUFVVklUUkFOCisJCQkJN2MgY2hlbWluIGRlcyBwcuhzCisJCQkJTUVZTEFOICAzODQxMAorCQkJCUZSQU5DRQorCiswMC0wRS01NiAgIChoZXgpCQk0RyBTeXN0ZW1zIEdtYkggJiBDby4gS0cKKzAwMEU1NiAgICAgKGJhc2UgMTYpCQk0RyBTeXN0ZW1zIEdtYkggJiBDby4gS0cKKwkJCQlKYXJyZXN0cmFzc2UgMi02CisJCQkJMjIzMDMgSGFtYnVyZyAKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTU3ICAgKGhleCkJCUl3b3JsZCBOZXR3b3JraW5nLCBJbmMuCiswMDBFNTcgICAgIChiYXNlIDE2KQkJSXdvcmxkIE5ldHdvcmtpbmcsIEluYy4KKwkJCQkxMjUgSGFuanUgQmxkZywgTm9uaHl1bi1Eb25nCisJCQkJS2FuZy1OYW0gR3UKKwkJCQlTZW91bCAgMTM1MDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTU4ICAgKGhleCkJCVNvbm9zLCBJbmMuCiswMDBFNTggICAgIChiYXNlIDE2KQkJU29ub3MsIEluYy4KKwkJCQkyMjMgRS4gRGUgTGEgR3VlcnJhIFN0LgorCQkJCVNhbnRhIEJhcmJhcmEgQ0EgOTMxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTU5ICAgKGhleCkJCVNBR0VNIFNBCiswMDBFNTkgICAgIChiYXNlIDE2KQkJU0FHRU0gU0EKKwkJCQkyLCBydWUgZHUgcGV0aXQgQWxiaQorCQkJCUNFUkdZIFNBSU5UIENIUklTVE9QSEUgdmFsIGQnT2lzZSA5NTgwMAorCQkJCUZSQU5DRQorCiswMC0wRS01QSAgIChoZXgpCQlURUxFRklFTEQgaW5jLgorMDAwRTVBICAgICAoYmFzZSAxNikJCVRFTEVGSUVMRCBpbmMuCisJCQkJM0YsIEt1bWJvIEJsZGcsIDItOSwgU2Vva2Nob24tRG9uZworCQkJCVNvbmdwYS1HdQorCQkJCVNlb3VsICAxMzgtMTkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTVCICAgKGhleCkJCVBhcmtlclZpc2lvbiAtIERpcmVjdDJEYXRhCiswMDBFNUIgICAgIChiYXNlIDE2KQkJUGFya2VyVmlzaW9uIC0gRGlyZWN0MkRhdGEKKwkJCQk5NDMyIEJheW1lYWRvd3MgV2F5CisJCQkJU3VpdGUgMTUwCisJCQkJSmFja3NvbnZpbGxlIEZMIDMyMjQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS01QyAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAwRTVDICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtNUQgICAoaGV4KQkJVHJpcGxlIFBsYXkgVGVjaG5vbG9naWVzIEEvUworMDAwRTVEICAgICAoYmFzZSAxNikJCVRyaXBsZSBQbGF5IFRlY2hub2xvZ2llcyBBL1MKKwkJCQlIZXJzdGVkdmFuZyA4CisJCQkJQWxiZXJ0c2x1bmQgIERLLTI2MjAKKwkJCQlERU5NQVJLCisKKzAwLTBFLTVFICAgKGhleCkJCVJhaXNlY29tIFRlY2hub2xvZ3kKKzAwMEU1RSAgICAgKGJhc2UgMTYpCQlSYWlzZWNvbSBUZWNobm9sb2d5CisJCQkJMiBGbG9vciwgU291dGggQnVpbGRpbmcgb2YgUmFpbmJvdyBQbGF6YQorCQkJCU5vLiAxMSBTaGFuZ2RpIEluZm9ybWF0aW9uIFJvYWQKKwkJCQlIYWlkaWFuIERpc3RyaWN0IEJlaWppbmcgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMEUtNUYgICAoaGV4KQkJYWN0aXYtbmV0IEdtYkggJiBDby4gS0cKKzAwMEU1RiAgICAgKGJhc2UgMTYpCQlhY3Rpdi1uZXQgR21iSCAmIENvLiBLRworCQkJCUtvbnJhZC1adXNlLVN0ci4gNAorCQkJCUJvY2h1bSAgNDQ4MDEKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTYwICAgKGhleCkJCTM2MFNVTiBEaWdpdGFsIEJyb2FkYmFuZCBDb3Jwb3JhdGlvbgorMDAwRTYwICAgICAoYmFzZSAxNikJCTM2MFNVTiBEaWdpdGFsIEJyb2FkYmFuZCBDb3Jwb3JhdGlvbgorCQkJCTJGLTIsIE5vLjIsIEppYW5iYSBSZC4sCisJCQkJQ2h1bmcgSG8gVGFpcGVpIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtNjEgICAoaGV4KQkJTUlDUk9UUk9MIExJTUlURUQKKzAwMEU2MSAgICAgKGJhc2UgMTYpCQlNSUNST1RST0wgTElNSVRFRAorCQkJCTE2IEVMR0FSIEJVU0lORVNTIENFTlRSRQorCQkJCU1PU0VMRVkgUk9BRAorCQkJCUhBTExPVyBXT1JDRVNURVIgV1IyIDZOSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBFLTYyICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwRTYyICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTBFLTYzICAgKGhleCkJCUxlbWtlIERpYWdub3N0aWNzIEdtYkgKKzAwMEU2MyAgICAgKGJhc2UgMTYpCQlMZW1rZSBEaWFnbm9zdGljcyBHbWJICisJCQkJUmFkZWJ1cmdlciBTdHIuIDQ3CisJCQkJVm9sa2Vyc2RvcmYgU2F4b255IDAxNDY4CisJCQkJR0VSTUFOWQorCiswMC0wRS02NCAgIChoZXgpCQlFbHBoZWwsIEluYworMDAwRTY0ICAgICAoYmFzZSAxNikJCUVscGhlbCwgSW5jCisJCQkJMzIwMCBTLiBFbHBtZXIgU3QuCisJCQkJTWFnbmEgVVQgODQwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTY1ICAgKGhleCkJCVRyYW5zQ29yZQorMDAwRTY1ICAgICAoYmFzZSAxNikJCVRyYW5zQ29yZQorCQkJCTg2MDAgSmVmZmVyc29uIFN0IE5FCisJCQkJQWxidXF1ZXJxdWUgTk0gODcxMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTY2ICAgKGhleCkJCUhpdGFjaGkgQWR2YW5jZWQgRGlnaXRhbCwgSW5jLgorMDAwRTY2ICAgICAoYmFzZSAxNikJCUhpdGFjaGkgQWR2YW5jZWQgRGlnaXRhbCwgSW5jLgorCQkJCTI5MiwgWW9zaGlkYS1jaG8sIFRvdHN1a2Eta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyNDQtMDgxNworCQkJCUpBUEFOCisKKzAwLTBFLTY3ICAgKGhleCkJCUVsdGlzIE1pY3JvZWxlY3Ryb25pY3MgTHRkLgorMDAwRTY3ICAgICAoYmFzZSAxNikJCUVsdGlzIE1pY3JvZWxlY3Ryb25pY3MgTHRkLgorCQkJCVVuaXQgOTAyQiwgOS9GLiwgU3VuYmVhbSBDZW50cmUKKwkJCQkyNywgU2hpbmcgWWlwIFN0cmVldAorCQkJCUt3dW4gVG9uZyBLb3dsb29uIAorCQkJCUhPTkcgS09ORworCiswMC0wRS02OCAgIChoZXgpCQlFLVRPUCBOZXR3b3JrIFRlY2hub2xvZ3kgSW5jLgorMDAwRTY4ICAgICAoYmFzZSAxNikJCUUtVE9QIE5ldHdvcmsgVGVjaG5vbG9neSBJbmMuCisJCQkJTm8uIDcsIFNoaW4gU2hpbiBSZC4sCisJCQkJVGFpbmFuICA3MDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTY5ICAgKGhleCkJCUNoaW5hIEVsZWN0cmljIFBvd2VyIFJlc2VhcmNoIEluc3RpdHV0ZQorMDAwRTY5ICAgICAoYmFzZSAxNikJCUNoaW5hIEVsZWN0cmljIFBvd2VyIFJlc2VhcmNoIEluc3RpdHV0ZQorCQkJCU5vLjE1IFhpYW95aW5nIEVhc3QgUm9hZCxRaW5naGUsQmVpamluZyxDaGluYQorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTBFLTZBICAgKGhleCkJCTNDb20gTHRkCiswMDBFNkEgICAgIChiYXNlIDE2KQkJM0NvbSBMdGQKKwkJCQlQZW9wbGVidWlsZGluZyAyCisJCQkJUGVvcGxlYnVpbGRpbmcgRXN0YXRlLCBNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSGVydHMgSFAyIDROVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBFLTZCICAgKGhleCkJCUphbml0emEgZWxlY3Ryb25pY3MgR21iSAorMDAwRTZCICAgICAoYmFzZSAxNikJCUphbml0emEgZWxlY3Ryb25pY3MgR21iSAorCQkJCVZvciBkZW0gUG9sc3T8Y2sgMQorCQkJCUxhaG5hdSBIZXNzZW4gMzU2MzMKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTZDICAgKGhleCkJCURldmljZSBEcml2ZXJzIExpbWl0ZWQKKzAwMEU2QyAgICAgKGJhc2UgMTYpCQlEZXZpY2UgRHJpdmVycyBMaW1pdGVkCisJCQkJMS01LTEtMTAzCisJCQkJV2FrYW1hdHN1LWNobworCQkJCUZ1Y2h1LXNoaSBUb2t5byAxODMwMDA1CisJCQkJSkFQQU4KKworMDAtMEUtNkQgICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCiswMDBFNkQgICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJMjI4OCwgT2F6YS1PaHNoaW5vaGFyYSwgWWFzdS1jaG8sCisJCQkJWWFzdS1ndW4gU2hpZ2EgNTIwLTIzOTMKKwkJCQlKQVBBTgorCiswMC0wRS02RSAgIChoZXgpCQlNSUNSRUxFQyAgRUxFQ1RST05JQ1MgUy5BCiswMDBFNkUgICAgIChiYXNlIDE2KQkJTUlDUkVMRUMgIEVMRUNUUk9OSUNTIFMuQQorCQkJCTE2IElTTUlOSVMgU1RSLgorCQkJCUFUSEVOUyBBRUdBTEVPIDEyMjQxCisJCQkJR1JFRUNFCisKKzAwLTBFLTZGICAgKGhleCkJCUlSSVMgQ29ycG9yYXRpb24gQmVyaGFkCiswMDBFNkYgICAgIChiYXNlIDE2KQkJSVJJUyBDb3Jwb3JhdGlvbiBCZXJoYWQKKwkJCQlJUklTIFNtYXJ0IFRlY2hub2xvZ3kgQ29tcGxleAorCQkJCVRlY2hub2xvZ3kgUGFyayBNYWxheXNpYSwgQnVraXQgSmFsaWwKKwkJCQlLdWFsYSBMdW1wdXIgV1AgNTcwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0wRS03MCAgIChoZXgpCQlpbjIgTmV0d29ya3MKKzAwMEU3MCAgICAgKGJhc2UgMTYpCQlpbjIgTmV0d29ya3MKKwkJCQkzMjAgVyAgMjAwIFMKKwkJCQlTdWl0ZSAjMzgwCisJCQkJU0xDIFVUIDg0MTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS03MSAgIChoZXgpCQlHZW1zdGFyIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgTHRkLgorMDAwRTcxICAgICAoYmFzZSAxNikJCUdlbXN0YXIgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBMdGQuCisJCQkJVW5pdCAyMDEsIFN0dWxleCBob3VzZSwgNjk4IHByaW5jZSBlZHdhcmQgcm9hZCBlYXN0LCBzYW4gcG8ga29uZywgS29sd29vbgorCQkJCUhvbmcgS29uZyAgODUyCisJCQkJSE9ORyBLT05HCisKKzAwLTBFLTcyICAgKGhleCkJCUNUUyBlbGVjdHJvbmljcworMDAwRTcyICAgICAoYmFzZSAxNikJCUNUUyBlbGVjdHJvbmljcworCQkJCUNvcnNvIFZlcmNlbGxpIDMzMgorCQkJCUl2cmVhIFRvcmlubyAxMDAxNQorCQkJCUlUQUxZCisKKzAwLTBFLTczICAgKGhleCkJCVRwYWNrIEEvUworMDAwRTczICAgICAoYmFzZSAxNikJCVRwYWNrIEEvUworCQkJCUxhdXRydXBiamVyZyA3IC0gMTEKKwkJCQlESyAyNzUwICBCYWxsZXJ1cCAgREsgMjc1MAorCQkJCURFTk1BUksKKworMDAtMEUtNzQgICAoaGV4KQkJU29sYXIgVGVsZWNvbS4gVGVjaAorMDAwRTc0ICAgICAoYmFzZSAxNikJCVNvbGFyIFRlbGVjb20uIFRlY2gKKwkJCQlCIEIvRCwgNEYsIFNhbWhvIFZlbnR1cmUgVG93ZXIKKwkJCQkjMjc1LTYsIFlhbmdqYWUtRG9uZywgU2VjaG8tR3UKKwkJCQlTZW91bCAgMTM3LTk0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS03NSAgIChoZXgpCQlOZXcgWW9yayBBaXIgQnJha2UgQ29ycC4KKzAwMEU3NSAgICAgKGJhc2UgMTYpCQlOZXcgWW9yayBBaXIgQnJha2UgQ29ycC4KKwkJCQk3NDggU3RhcmJ1Y2sgQXZlLgorCQkJCVdhdGVydG93biBOWSAxMzYwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtNzYgICAoaGV4KQkJR0VNU09DIElOTk9WSVNJT04gSU5DLgorMDAwRTc2ICAgICAoYmFzZSAxNikJCUdFTVNPQyBJTk5PVklTSU9OIElOQy4KKwkJCQk5RixOby41MTYsU2VjLDFOZWlodSBSZC4sCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTc3ICAgKGhleCkJCURlY3J1LCBJbmMuCiswMDBFNzcgICAgIChiYXNlIDE2KQkJRGVjcnUsIEluYy4KKwkJCQkyNzUgU2hvcmVsaW5lIERyCisJCQkJU3VpdGUgNDUwCisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS03OCAgIChoZXgpCQlBbXRlbGNvCiswMDBFNzggICAgIChiYXNlIDE2KQkJQW10ZWxjbworCQkJCTQ4MDAgQ3VydGluIERyaXZlCisJCQkJTWNGYXJsYW5kIFdJIDUzNTU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS03OSAgIChoZXgpCQlBbXBsZSBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDBFNzkgICAgIChiYXNlIDE2KQkJQW1wbGUgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTQwMzQgQ2xpcHBlciBDdC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS03QSAgIChoZXgpCQlHZW1Xb24gQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDBFN0EgICAgIChiYXNlIDE2KQkJR2VtV29uIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorCQkJCTNGTC4sTk8uMzIsTGFuZSAxMzUsU2hpYW5qZW5nIDl0aCBSZC4sSnViZWkgQ2l0eQorCQkJCUhzaW5jaHUgIDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtN0IgICAoaGV4KQkJVG9zaGliYQorMDAwRTdCICAgICAoYmFzZSAxNikJCVRvc2hpYmEKKwkJCQkyLTksIFN1ZWhpcm8tQ2hvCisJCQkJT21lIFRva3lvIDE5ODg3MTAKKwkJCQlKQVBBTgorCiswMC0wRS03QyAgIChoZXgpCQlUZWxldmVzIFMuQS4KKzAwMEU3QyAgICAgKGJhc2UgMTYpCQlUZWxldmVzIFMuQS4KKwkJCQlSdWEgQmVuZWZpY2EgQ29ueG8gMTcKKwkJCQlTYW50aWFnbyBkZSBDb21wb3N0ZWxhIENvcnXxYSAxNTcwNgorCQkJCVNQQUlOCisKKzAwLTBFLTdEICAgKGhleCkJCUVsZWN0cm9uaWNzIExpbmUgMzAwMCBMdGQuCiswMDBFN0QgICAgIChiYXNlIDE2KQkJRWxlY3Ryb25pY3MgTGluZSAzMDAwIEx0ZC4KKwkJCQkyIEdyYW5pdCBTdC4KKwkJCQlQZXRhaCBUaWt2YSBLaXJ5YXIgQXJpZSA0NDkxMzAKKwkJCQlJU1JBRUwKKworMDAtMEUtN0UgICAoaGV4KQkJaW9uU2lnbiBPeQorMDAwRTdFICAgICAoYmFzZSAxNikJCWlvblNpZ24gT3kKKwkJCQlQLk8uQk9YICAyNDYKKwkJCQlGSS0yNjEwMQorCQkJCVJhdW1hICAKKwkJCQlGSU5MQU5ECisKKzAwLTBFLTdGICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAwRTdGICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5IFNvdXRoCisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS04MCAgIChoZXgpCQlUaG9tc29uIFRlY2hub2xvZ3kgSW5jCiswMDBFODAgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBUZWNobm9sb2d5IEluYworCQkJCTkwODdBIDE5OHRoIFNUCisJCQkJU3VycmV5IEJDIFYxTS0zQjEKKwkJCQlDQU5BREEKKworMDAtMEUtODEgICAoaGV4KQkJRGV2aWNlc2NhcGUgU29mdHdhcmUsIEluYy4KKzAwMEU4MSAgICAgKGJhc2UgMTYpCQlEZXZpY2VzY2FwZSBTb2Z0d2FyZSwgSW5jLgorCQkJCTEwMDAgTWFyaW5hIEJsdmQKKwkJCQlTdWl0ZSA0MDAKKwkJCQlCcmlzYmFuZSBDQSA5NDAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtODIgICAoaGV4KQkJQ29tbXRlY2ggV2lyZWxlc3MKKzAwMEU4MiAgICAgKGJhc2UgMTYpCQlDb21tdGVjaCBXaXJlbGVzcworCQkJCTExNS8zOTYgU2NhcmJvcm91Z2ggQmVhY2ggUmQKKwkJCQlPc2Jvcm5lIFBhcmsKKwkJCQlQZXJ0aCBXQSA2MDE3CisJCQkJQVVTVFJBTElBCisKKzAwLTBFLTgzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEU4MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTg0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEU4NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTg1ICAgKGhleCkJCUNhdGFseXN0IEVudGVycHJpc2VzLCBJbmMuCiswMDBFODUgICAgIChiYXNlIDE2KQkJQ2F0YWx5c3QgRW50ZXJwcmlzZXMsIEluYy4KKwkJCQkzMzg1IFNjb3R0IEJsdmQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtODYgICAoaGV4KQkJQWxjYXRlbCBOb3J0aCBBbWVyaWNhCiswMDBFODYgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBOb3J0aCBBbWVyaWNhCisJCQkJMjMwMSBTdWdhciBCdXNoIFJvYWQKKwkJCQlSYWxlaWdoIE5DIDI3NjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS04NyAgIChoZXgpCQlhZHAgR2F1c2VsbWFubiBHbWJICiswMDBFODcgICAgIChiYXNlIDE2KQkJYWRwIEdhdXNlbG1hbm4gR21iSAorCQkJCUJvc2Noc3RyLiA4CisJCQkJTHVlYmJlY2tlIE5SVyAzMjMxMgorCQkJCUdFUk1BTlkKKworMDAtMEUtODggICAoaGV4KQkJVklERU9UUk9OIENPUlAuCiswMDBFODggICAgIChiYXNlIDE2KQkJVklERU9UUk9OIENPUlAuCisJCQkJMTctMTYsMi1DSE9NRQorCQkJCUhBQ0hJT0pJIFRPS1lPIDE5My0wODM1CisJCQkJSkFQQU4KKworMDAtMEUtODkgICAoaGV4KQkJQ0xFTUFUSUMKKzAwMEU4OSAgICAgKGJhc2UgMTYpCQlDTEVNQVRJQworCQkJCTEwMSBydWUgUGllcnJlIFNFTUFSRAorCQkJCUNIQVRJTExPTiBSLlAuIDkyMzIwCisJCQkJRlJBTkNFCisKKzAwLTBFLThBICAgKGhleCkJCUF2YXJhIFRlY2hub2xvZ2llcyBQdHkuIEx0ZC4KKzAwMEU4QSAgICAgKGJhc2UgMTYpCQlBdmFyYSBUZWNobm9sb2dpZXMgUHR5LiBMdGQuCisJCQkJOSBCdXNpbmVzcyBQYXJrIERyaXZlCisJCQkJTm90dGluZyBIaWxsIFZpY3RvcmlhIDMxNjgKKwkJCQlBVVNUUkFMSUEKKworMDAtMEUtOEIgICAoaGV4KQkJQXN0YXJ0ZSBUZWNobm9sb2d5IENvLCBMdGQuCiswMDBFOEIgICAgIChiYXNlIDE2KQkJQXN0YXJ0ZSBUZWNobm9sb2d5IENvLCBMdGQuCisJCQkJMTFGLCBOby4gMTY2IERhaC1ZZWggUmQuCisJCQkJUGVpdG91LCBUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtOEMgICAoaGV4KQkJU2llbWVucyBBRyBBJkQgRVQKKzAwMEU4QyAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEFHIEEmRCBFVAorCQkJCVNpZW1lbnNzdHJh32UgMTAKKwkJCQlSZWdlbnNidXJnICA5MzA1NQorCQkJCUdFUk1BTlkKKworMDAtMEUtOEQgICAoaGV4KQkJU3lzdGVtcyBpbiBQcm9ncmVzcyBIb2xkaW5nIEdtYkgKKzAwMEU4RCAgICAgKGJhc2UgMTYpCQlTeXN0ZW1zIGluIFByb2dyZXNzIEhvbGRpbmcgR21iSAorCQkJCUV4ZXJ6aWVycGxhdHpzdHJhc3NlIDg1CisJCQkJR3JheiBTdHlyaWEgODA1MQorCQkJCUFVU1RSSUEKKworMDAtMEUtOEUgICAoaGV4KQkJU3BhcmtMQU4gQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMEU4RSAgICAgKGJhc2UgMTYpCQlTcGFya0xBTiBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTNGbCAuICwgTm8uIDI0NiwgU2VjLiAxLCBOZWlodSBSb2FkLiwgTmVpaHUgQ2hpdSwKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtOEYgICAoaGV4KQkJU2VyY29tbSBDb3JwLgorMDAwRThGICAgICAoYmFzZSAxNikJCVNlcmNvbW0gQ29ycC4KKwkJCQkzRixOby44MSxZdS1ZaWggUmQuLENodS1OYW4gQ2hlbgorCQkJCU1pYW8tTGloIEhzdWFuICAzNTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTkwICAgKGhleCkJCVBPTklDTyBDT1JQLgorMDAwRTkwICAgICAoYmFzZSAxNikJCVBPTklDTyBDT1JQLgorCQkJCTYwMiwgQWNlIFR3aW4gVG93ZXIgMSwgMjEyLTEgR3Vyby1kb25nCisJCQkJR3Vyb2d1IFNlb3VsIDE1Mi03NjYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtOTEgICAoaGV4KQkJTmF2aWNvIEF1Y2tsYW5kIEx0ZAorMDAwRTkxICAgICAoYmFzZSAxNikJCU5hdmljbyBBdWNrbGFuZCBMdGQKKwkJCQkxNy0yMSBLYXdhbmEgU3QKKwkJCQlOb3J0aGNvdGUgQXVja2xhbmQgCisJCQkJTkVXIFpFQUxBTkQKKworMDAtMEUtOTIgICAoaGV4KQkJTWlsbGluZXQgQ28uLCBMdGQuCiswMDBFOTIgICAgIChiYXNlIDE2KQkJTWlsbGluZXQgQ28uLCBMdGQuCisJCQkJMkYsIFdlc3QgQnVpbGRpbmcsIElUIFZlbnR1cmUgVG93ZXIsIDc4LCBHYXJha2Jvbi1kb25nCisJCQkJU29uZ3BhLWd1IFNlb3VsIDEzOC0xNjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtOTMgICAoaGV4KQkJTWls6W5pbyAzIFNpc3RlbWFzIEVsZWN0cvNuaWNvcywgTGRhLgorMDAwRTkzICAgICAoYmFzZSAxNikJCU1pbOluaW8gMyBTaXN0ZW1hcyBFbGVjdHLzbmljb3MsIExkYS4KKwkJCQlFZGlm7WNpbyBWaWEgTm9ydGUsIFIuIEVzcGlkbyAxNjRDIFM0MDMKKwkJCQlNYWlhIE1pbmhvIDQ0NzAtMTc3CisJCQkJUE9SVFVHQUwKKworMDAtMEUtOTQgICAoaGV4KQkJTWFhcyBJbnRlcm5hdGlvbmFsIEJWCiswMDBFOTQgICAgIChiYXNlIDE2KQkJTWFhcyBJbnRlcm5hdGlvbmFsIEJWCisJCQkJU2NpZW5jZSBQYXJrIEVpbmRob3ZlbiA1MDUxCisJCQkJU29uIE5vb3JkIEJyYWJhbnQgTkwtNTY5MiBFQgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBFLTk1ICAgKGhleCkJCUZ1aml5YSBEZW5raSBTZWlzYWt1c2hvIENvLixMdGQuCiswMDBFOTUgICAgIChiYXNlIDE2KQkJRnVqaXlhIERlbmtpIFNlaXNha3VzaG8gQ28uLEx0ZC4KKwkJCQk4RiBGdWt1c2hpbWEgQkxERy4gNi0yNS0xMSxOaXNoaS1Hb3RhbmRhCisJCQkJU2hpbmFnYXdhLUt1IFRva3lvIDE0MS0wMDMxCisJCQkJSkFQQU4KKworMDAtMEUtOTYgICAoaGV4KQkJQ3ViaWMgRGVmZW5zZSBBcHBsaWNhdGlvbnMsIEluYy4KKzAwMEU5NiAgICAgKGJhc2UgMTYpCQlDdWJpYyBEZWZlbnNlIEFwcGxpY2F0aW9ucywgSW5jLgorCQkJCVAuTy4gQm94IDg1NTg3CisJCQkJOTMzMyBCYWxib2EgQXZlbnVlCisJCQkJU2FuIERpZWdvIENBIDkyMTg2LTU1ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTk3ICAgKGhleCkJCVVsdHJhY2tlciBUZWNobm9sb2d5IENPLiwgSW5jCiswMDBFOTcgICAgIChiYXNlIDE2KQkJVWx0cmFja2VyIFRlY2hub2xvZ3kgQ08uLCBJbmMKKwkJCQkxNEYtMSwgTm8uIDg4OCwgSmluZ2d1byBSb2FkLCBUYW95dWFuIENpdHksCisJCQkJVGFveXVhbiAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS05OCAgIChoZXgpCQlITUUgQ2xlYXItQ29tIExURC4KKzAwMEU5OCAgICAgKGJhc2UgMTYpCQlITUUgQ2xlYXItQ29tIExURC4KKwkJCQk3NDAwIEJlYWNoIERyaXZlCisJCQkJV2F0ZXJiZWFjaAorCQkJCUNhbWJyaWRnZXNoaXJlICBDQjI1IDlUUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBFLTk5ICAgKGhleCkJCVNwZWN0cnVtIERpZ2l0YWwsIEluYworMDAwRTk5ICAgICAoYmFzZSAxNikJCVNwZWN0cnVtIERpZ2l0YWwsIEluYworCQkJCTEyNTAyIEV4Y2hhbmdlIERyaXZlLCBTdWl0ZSA0NDAKKwkJCQlTdGFmZm9yZCBUWCA3NzQ3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtOUEgICAoaGV4KQkJQk9FIFRFQ0hOT0xPR1kgR1JPVVAgQ08uLExURAorMDAwRTlBICAgICAoYmFzZSAxNikJCUJPRSBURUNITk9MT0dZIEdST1VQIENPLixMVEQKKwkJCQlOby4xMCBKaXV4aWFucWlhbyBSb2FkLENoYW95YW5nIERpc3RyaWN0LEJlaWppbmcsUFJDCisJCQkJQmVpamluZyAgMTAwMDE2CisJCQkJQ0hJTkEKKworMDAtMEUtOUIgICAoaGV4KQkJQW1iaXQgTWljcm9zeXN0ZW1zIENvcnBvcmF0aW9uCiswMDBFOUIgICAgIChiYXNlIDE2KQkJQW1iaXQgTWljcm9zeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJNUYtMSwgNSBIc2luLUFuIFJkLiBTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtOUMgICAoaGV4KQkJUGVtc3RhcgorMDAwRTlDICAgICAoYmFzZSAxNikJCVBlbXN0YXIKKwkJCQkzNTM1IFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlSb2NoZXN0ZXIgTU4gNTU5MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTlEICAgKGhleCkJCVRpc2NhbGkgVUsgTHRkCiswMDBFOUQgICAgIChiYXNlIDE2KQkJVGlzY2FsaSBVSyBMdGQKKwkJCQkyMCBCcm9hZHdpY2sgU3RyZWV0CisJCQkJTG9uZG9uICBXMUYgOEhUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEUtOUUgICAoaGV4KQkJVG9wZmllbGQgQ28uLCBMdGQKKzAwMEU5RSAgICAgKGJhc2UgMTYpCQlUb3BmaWVsZCBDby4sIEx0ZAorCQkJCTR0aCBmbG9vciwgRGVva3NhbiBCbGRnIDI2MC00LCBTZW9oeXVuLWRvbmcKKwkJCQlTZW9uZ25hbSBCdW5kYW5nLUt1IDQ2My04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtOUYgICAoaGV4KQkJVEVNSUMgU0RTIEdtYkgKKzAwMEU5RiAgICAgKGJhc2UgMTYpCQlURU1JQyBTRFMgR21iSAorCQkJCVNvZWZsaW5nZXIgU3RyYXNzZSAxMDAKKwkJCQlVbG0gIDg5MDc3CisJCQkJR0VSTUFOWQorCiswMC0wRS1BMCAgIChoZXgpCQlOZXRLbGFzcyBUZWNobm9sb2d5IEluYy4KKzAwMEVBMCAgICAgKGJhc2UgMTYpCQlOZXRLbGFzcyBUZWNobm9sb2d5IEluYy4KKwkJCQkyRi0xLCBOby4zMCxUYWkgWXVlbiBTdHJlZXQsCisJCQkJQ2h1cGVpIENpdHksIEhzaW5jaHUsIDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtQTEgICAoaGV4KQkJRm9ybW9zYSBUZWxldGVrIENvcnBvcmF0aW9uCiswMDBFQTEgICAgIChiYXNlIDE2KQkJRm9ybW9zYSBUZWxldGVrIENvcnBvcmF0aW9uCisJCQkJMzU4LEh1YXlhIDJuZCBSZC4KKwkJCQlHdWVpc2hhbiBTaGlhbmcKKwkJCQlUYW95dWFuICAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUEyICAgKGhleCkJCU1jQWZlZSwgSW5jCiswMDBFQTIgICAgIChiYXNlIDE2KQkJTWNBZmVlLCBJbmMKKwkJCQkzNTAgU1cgMTJ0aCBBdmVudWUKKwkJCQlEZWVyZmllbGQgQmVhY2ggRkwgMzM0NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUEzICAgKGhleCkJCUNOQ1ItSVQgQ08uLExURCxIYW5nWmhvdSBQLlIuQ0hJTkEKKzAwMEVBMyAgICAgKGJhc2UgMTYpCQlDTkNSLUlUIENPLixMVEQsSGFuZ1pob3UgUC5SLkNISU5BCisJCQkJWHVhblRhbiByb2FkIE5PMS5kZXBhcnRtZW50IHJvb201MDQsCisJCQkJSGFuZ1pob3UgWmhlSmlhbmcgMzEwMDAzCisJCQkJQ0hJTkEKKworMDAtMEUtQTQgICAoaGV4KQkJQ2VydGFuY2UgSW5jLgorMDAwRUE0ICAgICAoYmFzZSAxNikJCUNlcnRhbmNlIEluYy4KKwkJCQkxNjUwIFN1bmZsb3dlciBBdmUuCisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNi0xNTEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1BNSAgIChoZXgpCQlCTElQIFN5c3RlbXMKKzAwMEVBNSAgICAgKGJhc2UgMTYpCQlCTElQIFN5c3RlbXMKKwkJCQlIYWVra2VuIDIKKwkJCQlWb2Rza292IFZlc3RlciBIYXNzaW5nIDkzMTAKKwkJCQlERU5NQVJLCisKKzAwLTBFLUE2ICAgKGhleCkJCUFTVVNURUsgQ09NUFVURVIgSU5DLgorMDAwRUE2ICAgICAoYmFzZSAxNikJCUFTVVNURUsgQ09NUFVURVIgSU5DLgorCQkJCU5vLiAxNTAsIExpLVRlIFJkLixQZWl0b3UKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtQTcgICAoaGV4KQkJRW5kYWNlIFRlY2hub2xvZ3kKKzAwMEVBNyAgICAgKGJhc2UgMTYpCQlFbmRhY2UgVGVjaG5vbG9neQorCQkJCTg1IEFsZXhhbmRyYSBTdHJlZXQKKwkJCQlIYW1pbHRvbiAgMzIwNAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTBFLUE4ICAgKGhleCkJCVVuaXRlZCBUZWNobm9sb2dpc3RzIEV1cm9wZSBMaW1pdGVkCiswMDBFQTggICAgIChiYXNlIDE2KQkJVW5pdGVkIFRlY2hub2xvZ2lzdHMgRXVyb3BlIExpbWl0ZWQKKwkJCQlVVEVMIExhYm9yYXRvcmllcywgV29sdmVzIEZhcm0gTGFuZQorCQkJCUlwc3dpY2ggUm9hZAorCQkJCUhhZGxlaWdoIFN1ZmZvbGsgSVA3IDZCSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBFLUE5ICAgKGhleCkJCVNoYW5naGFpIFh1biBTaGkgQ29tbXVuaWNhdGlvbnMgRXF1aXBtZW50IEx0ZC4gQ28uCiswMDBFQTkgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgWHVuIFNoaSBDb21tdW5pY2F0aW9ucyBFcXVpcG1lbnQgTHRkLiBDby4KKwkJCQlIaS1UZWNoIEtpbmcgV29ybGQsIFVuaXQgQzYwMworCQkJCSM2NjYgQmVpamluZyBSb2FkIChFKQorCQkJCVNoYW5naGFpICAyMDAwMDEKKwkJCQlDSElOQQorCiswMC0wRS1BQSAgIChoZXgpCQlTY2FsZW50IFN5c3RlbXMsIEluYy4KKzAwMEVBQSAgICAgKGJhc2UgMTYpCQlTY2FsZW50IFN5c3RlbXMsIEluYy4KKwkJCQk0OTAgUy4gQ2FsaWZvcm5pYSBBdmUKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUFCICAgKGhleCkJCUNyYXkgSW5jCiswMDBFQUIgICAgIChiYXNlIDE2KQkJQ3JheSBJbmMKKwkJCQk0MTEgRmlyc3QgQXZlIFMgU3VpdGUgNjAwCisJCQkJU2VhdHRsZSBXQSA5ODEwNAorCQkJCUNBTkFEQQorCiswMC0wRS1BQyAgIChoZXgpCQlNSU5UUk9OIEVOVEVSUFJJU0UgQ08uLCBMVEQuCiswMDBFQUMgICAgIChiYXNlIDE2KQkJTUlOVFJPTiBFTlRFUlBSSVNFIENPLiwgTFRELgorCQkJCU5PLjMsV3UtS3VuZyA1UmQuLCBXdS1LdSBJbmQgUGFyaworCQkJCVRhaXBlaSBDb3VudHkgIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtQUQgICAoaGV4KQkJTWV0YW5vaWEgVGVjaG5vbG9naWVzLCBJbmMuCiswMDBFQUQgICAgIChiYXNlIDE2KQkJTWV0YW5vaWEgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNTkxOCBXLiBjb3VydHlhcmQgRHIuCisJCQkJU3VpdGUgMzMwCisJCQkJQXVzdGluIFRYIDc4NzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1BRSAgIChoZXgpCQlHQVdFTEwgVEVDSE5PTE9HSUVTIENPUlAuCiswMDBFQUUgICAgIChiYXNlIDE2KQkJR0FXRUxMIFRFQ0hOT0xPR0lFUyBDT1JQLgorCQkJCTJGLE5PLjEwMixTRUMuMyxKVU5HIFNIQU4gUkQsCisJCQkJSlVORyBITyBDSVRZLCBUQUlQRUkgSFNJRU4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS1BRiAgIChoZXgpCQlDQVNURUwKKzAwMEVBRiAgICAgKGJhc2UgMTYpCQlDQVNURUwKKwkJCQlaSSBTYWludCBMYW1iZXJ0IGRlcyBMZXbpZXMKKwkJCQlTQVVNVVIgTWFpbmUgZXQgTG9pcmUgNDk0MTIKKwkJCQlGUkFOQ0UKKworMDAtMEUtQjAgICAoaGV4KQkJU29sdXRpb25zIFJhZGlvIEJWCiswMDBFQjAgICAgIChiYXNlIDE2KQkJU29sdXRpb25zIFJhZGlvIEJWCisJCQkJUHJpbnNlZ3JhY2h0IDgyCisJCQkJVGhlIEhhZ3VlIFpIIDI1MTIgR0MKKwkJCQlORVRIRVJMQU5EUworCiswMC0wRS1CMSAgIChoZXgpCQlOZXdjb3RlY2gsTHRkCiswMDBFQjEgICAgIChiYXNlIDE2KQkJTmV3Y290ZWNoLEx0ZAorCQkJCUFueWFuZyBNZWdhdmFsbHkgNzE1LTMKKwkJCQlLd2FueWFuZy1Eb25nLCBEb25nYW4tR3UsCisJCQkJQW55YW5nIENpdHkgR3Vlb25nZ2ktRG8gNDMxLTE2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS1CMiAgIChoZXgpCQlNaWNyby1SZXNlYXJjaCBGaW5sYW5kIE95CiswMDBFQjIgICAgIChiYXNlIDE2KQkJTWljcm8tUmVzZWFyY2ggRmlubGFuZCBPeQorCQkJCVbkbGl0YWxvbnRpZSA4MyBDCisJCQkJSGVsc2lua2kgIEZJTi0wMDY2MAorCQkJCUZJTkxBTkQKKworMDAtMEUtQjMgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkCiswMDBFQjMgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkCisJCQkJMjU4MCA1NXRoIFN0cmVldAorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUI0ICAgKGhleCkJCUdVQU5HWkhPVSBHQU9LRSBDT01NVU5JQ0FUSU9OUyBURUNITk9MT0dZIENPLkxURC4KKzAwMEVCNCAgICAgKGJhc2UgMTYpCQlHVUFOR1pIT1UgR0FPS0UgQ09NTVVOSUNBVElPTlMgVEVDSE5PTE9HWSBDTy5MVEQuCisJCQkJQVZFLiAzOTggWkhPTkdTSEFOCisJCQkJR1VBTkdaSE9VIEdVQU5HRE9ORyA1MTA2NjAKKwkJCQlDSElOQQorCiswMC0wRS1CNSAgIChoZXgpCQlFY2FzdGxlIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwRUI1ICAgICAoYmFzZSAxNikJCUVjYXN0bGUgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJIzUwMiwgTmFtamFuZyBCL0QsIEJhbmdiYWUtZG9uZywKKwkJCQlTZW9jaG8ta3UsCisJCQkJU2VvdWwgIDEzNy04MTgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtQjYgICAoaGV4KQkJUml2ZXJiZWQgVGVjaG5vbG9neSwgSW5jLgorMDAwRUI2ICAgICAoYmFzZSAxNikJCVJpdmVyYmVkIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk1MDEgU2Vjb25kIFN0cmVldAorCQkJCVN1aXRlIDQxMAorCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUI3ICAgKGhleCkJCUtub3ZhdGl2ZSwgSW5jLgorMDAwRUI3ICAgICAoYmFzZSAxNikJCUtub3ZhdGl2ZSwgSW5jLgorCQkJCTExMjQ1IFdlc3QgQmVybmFyZG8gQ291cnQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUI4ICAgKGhleCkJCUlpZ2EgY28uLEx0ZAorMDAwRUI4ICAgICAoYmFzZSAxNikJCUlpZ2EgY28uLEx0ZAorCQkJCTNGIFRLQmxkZy4gMy01LTIgU290b2thbmRhCisJCQkJQ2hpeW9kYS1LdSBUb2t5byAxMDEtMDAyMQorCQkJCUpBUEFOCisKKzAwLTBFLUI5ICAgKGhleCkJCUhBU0hJTU9UTyBFbGVjdHJvbmljcyBJbmR1c3RyeSBDby4sTHRkLgorMDAwRUI5ICAgICAoYmFzZSAxNikJCUhBU0hJTU9UTyBFbGVjdHJvbmljcyBJbmR1c3RyeSBDby4sTHRkLgorCQkJCTM4NjYtMTIgVGFrYXN1LWNobworCQkJCU1hdHN1c2FrYSBNaWUgNTE1LTAxMDQKKwkJCQlKQVBBTgorCiswMC0wRS1CQSAgIChoZXgpCQlIQU5NSSBTRU1JQ09ORFVDVE9SIENPLiwgTFRELgorMDAwRUJBICAgICAoYmFzZSAxNikJCUhBTk1JIFNFTUlDT05EVUNUT1IgQ08uLCBMVEQuCisJCQkJIzUzMi0yLCBHYWp3YS1Eb25nLCBTZW8tS3UsCisJCQkJSW5jaGVvbiAgNDA0IDI1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS1CQiAgIChoZXgpCQlFdmVyYmVlIE5ldHdvcmtzCiswMDBFQkIgICAgIChiYXNlIDE2KQkJRXZlcmJlZSBOZXR3b3JrcworCQkJCTQxLCBCb3VsZXZhcmQgZGVzIENhcHVjaW5lcworCQkJCVBhcmlzICA3NTAwMgorCQkJCUZSQU5DRQorCiswMC0wRS1CQyAgIChoZXgpCQlQYXJhZ29uIEZpZGVsaXR5IEdtYkgKKzAwMEVCQyAgICAgKGJhc2UgMTYpCQlQYXJhZ29uIEZpZGVsaXR5IEdtYkgKKwkJCQlTY2h3YWRlcm38aGxzdHJhc3NlIDRhCisJCQkJQ2Fkb2x6YnVyZyAgOTA1NTYKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLUJEICAgKGhleCkJCUJ1cmRpY2ssIGEgUXVpbnRvbiBDb21wbnkKKzAwMEVCRCAgICAgKGJhc2UgMTYpCQlCdXJkaWNrLCBhIFF1aW50b24gQ29tcG55CisJCQkJNTAwIEJ1cmRpY2sgUGFya3dheQorCQkJCURlZXJmaWVsZCBXSSA1MzUzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQkUgICAoaGV4KQkJQiZCIEVsZWN0cm9uaWNzIE1hbnVmYWN0dXJpbmcgQ28uCiswMDBFQkUgICAgIChiYXNlIDE2KQkJQiZCIEVsZWN0cm9uaWNzIE1hbnVmYWN0dXJpbmcgQ28uCisJCQkJNzA3IERheXRvbiBSb2FkCisJCQkJUC5PLiBCb3ggMTA0MAorCQkJCU90dGF3YSBJbGlub2lzIDYxMzUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1CRiAgIChoZXgpCQlSZW1zZGFxIExpbWl0ZWQKKzAwMEVCRiAgICAgKGJhc2UgMTYpCQlSZW1zZGFxIExpbWl0ZWQKKwkJCQlQYXJrd2F5CisJCQkJRGVlc2lkZSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlEZWVzaWRlIEZsaW50c2hpcmUgQ0g1IDJOTAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBFLUMwICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwRUMwICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTBFLUMxICAgKGhleCkJCU1ZTkFIIFRlY2hub2xvZ2llcworMDAwRUMxICAgICAoYmFzZSAxNikJCU1ZTkFIIFRlY2hub2xvZ2llcworCQkJCTUwNCBUcmFkZSBDZW50ZXIgQmx2ZAorCQkJCUNoZXN0ZXJmaWVsZCBNTyA2MzAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQzIgICAoaGV4KQkJTG93cmFuY2UgRWxlY3Ryb25pY3MsIEluYy4KKzAwMEVDMiAgICAgKGJhc2UgMTYpCQlMb3dyYW5jZSBFbGVjdHJvbmljcywgSW5jLgorCQkJCTEyMDAwIEUuIFNrZWxseSBEcml2ZQorCQkJCVR1bHNhIE9LIDc0MTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1DMyAgIChoZXgpCQlMb2dpYyBDb250cm9scywgSW5jLgorMDAwRUMzICAgICAoYmFzZSAxNikJCUxvZ2ljIENvbnRyb2xzLCBJbmMuCisJCQkJMzU1IERlbnRvbiBBdmVudWUKKwkJCQlOZXcgSHlkZSBQYXJrIE5ZIDExMDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1DNCAgIChoZXgpCQlJc2tyYSBUcmFuc21pc3Npb24gZC5kLgorMDAwRUM0ICAgICAoYmFzZSAxNikJCUlza3JhIFRyYW5zbWlzc2lvbiBkLmQuCisJCQkJU3RlZ25lIDExCisJCQkJTGp1YmxqYW5hICAxMDAwCisJCQkJU0xPVkVOSUEKKworMDAtMEUtQzUgICAoaGV4KQkJRGlnaXRhbCBNdWx0aXRvb2xzIEluYworMDAwRUM1ICAgICAoYmFzZSAxNikJCURpZ2l0YWwgTXVsdGl0b29scyBJbmMKKwkJCQk5MDA1IExlc2xpZSBTdHJlZXQgIFVuaXQgMjA1CisJCQkJUmljaG1vbmQgSGlsbCBPbnRhcmlvIEw0QiAxRzcKKwkJCQlDQU5BREEKKworMDAtMEUtQzYgICAoaGV4KQkJQVNJWCBFTEVDVFJPTklDUyBDT1JQLgorMDAwRUM2ICAgICAoYmFzZSAxNikJCUFTSVggRUxFQ1RST05JQ1MgQ09SUC4KKwkJCQk0RiwgTk8uOCwgSFNJTiBBTk4gUkQuLAorCQkJCVNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLLAorCQkJCUhTSU5DSFUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtQzcgICAoaGV4KQkJTW90b3JvbGEgS29yZWEKKzAwMEVDNyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBLb3JlYQorCQkJCUhpYnJhbmQgQi9EIDE3RiBTVyBUZWFtIE1vdG9yb2xhIEtvcmVhCisJCQkJWWFuZ2phZWRvbmcgU2VvY2hvIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS1DOCAgIChoZXgpCQlab3JhbiBDb3Jwb3JhdGlvbgorMDAwRUM4ICAgICAoYmFzZSAxNikJCVpvcmFuIENvcnBvcmF0aW9uCisJCQkJMTM5MCBLaWZlciBSZC4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUM5ICAgKGhleCkJCVlPS08gVGVjaG5vbG9neSBDb3JwLgorMDAwRUM5ICAgICAoYmFzZSAxNikJCVlPS08gVGVjaG5vbG9neSBDb3JwLgorCQkJCTZGLCBOby4xMCwgTGFuZTE2LCBTZWMyLCBTemUtQ2h1YW4gUmQuLCBQYW4tCisJCQkJQ2hpYW8gQ2l0eSwKKwkJCQlUYWlwZWkgIDg4NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtQ0EgICAoaGV4KQkJV1RTUyBJbmMKKzAwMEVDQSAgICAgKGJhc2UgMTYpCQlXVFNTIEluYworCQkJCTU5OTkgQXZlbmlkYSBFbmNpbmFzCisJCQkJU3VpdGUgMTUwCisJCQkJQ2FybHNiYWQgQ0EgOTIwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUNCICAgKGhleCkJCVZpbmVTeXMgVGVjaG5vbG9neQorMDAwRUNCICAgICAoYmFzZSAxNikJCVZpbmVTeXMgVGVjaG5vbG9neQorCQkJCTMzNTAgU2NvdHQgQmx2ZC4gYnVpbGRpbmcgMTUtMDMKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQ0MgICAoaGV4KQkJVGFibGVhdSwgTExDCiswMDBFQ0MgICAgIChiYXNlIDE2KQkJVGFibGVhdSwgTExDCisJCQkJTjggVzIyMTk1IEpvaG5zb24gRHJpdmUsIFN1aXRlIDEwMAorCQkJCVdhdWtlc2hhIFdJIDUzMTg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1DRCAgIChoZXgpCQlTS09WIEEvUworMDAwRUNEICAgICAoYmFzZSAxNikJCVNLT1YgQS9TCisJCQkJSGVkZWx1bmQgNAorCQkJCUdseW5nb2VyZQorCQkJCVJvc2xldiAgREstNzg3MAorCQkJCURFTk1BUksKKworMDAtMEUtQ0UgICAoaGV4KQkJUy5JLlQuVC5JLiBTLnAuQS4KKzAwMEVDRSAgICAgKGJhc2UgMTYpCQlTLkkuVC5ULkkuIFMucC5BLgorCQkJCVZpYSBDYWRvcm5hIDY5CisJCQkJVmltb2Ryb25lIE1pbGFuIEktMjAwOTAKKwkJCQlJVEFMWQorCiswMC0wRS1DRiAgIChoZXgpCQlQUk9GSUJVUyBOdXR6ZXJvcmdhbmlzYXRpb24gZS5WLgorMDAwRUNGICAgICAoYmFzZSAxNikJCVBST0ZJQlVTIE51dHplcm9yZ2FuaXNhdGlvbiBlLlYuCisJCQkJSGFpZC11bmQtTmV1LVN0cmFzc2UgNworCQkJCUthcmxzcnVoZSBCYWRlbi1X/HJ0dGVtYmVyZyA3NjEzMQorCQkJCUdFUk1BTlkKKworMDAtMEUtRDAgICAoaGV4KQkJUHJpdmFyaXMsIEluYy4KKzAwMEVEMCAgICAgKGJhc2UgMTYpCQlQcml2YXJpcywgSW5jLgorCQkJCTY1MCBQZXRlciBKZWZmZXJzb24gUGt3eSwgU3RlIDMzMAorCQkJCUNoYXJsb3R0ZXN2aWxsZSBWaXJnaW5pYSAyMjkxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRDEgICAoaGV4KQkJT3Nha2EgTWljcm8gQ29tcHV0ZXIuCiswMDBFRDEgICAgIChiYXNlIDE2KQkJT3Nha2EgTWljcm8gQ29tcHV0ZXIuCisJCQkJSXNvbm9rYW1pY3lvIDMtMTEtNworCQkJCUtpc2hpd2FkYSBPc2FrYSA1OTYwMDAxCisJCQkJSkFQQU4KKworMDAtMEUtRDIgICAoaGV4KQkJRmlsdHJvbmljIHBsYworMDAwRUQyICAgICAoYmFzZSAxNikJCUZpbHRyb25pYyBwbGMKKwkJCQlUaGUgV2F0ZXJmcm9udAorCQkJCVNhbHRzIE1pbGwgUmQKKwkJCQlTYWx0YWlyZSBXIFlvcmtzIEJEMTggM1RUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEUtRDMgICAoaGV4KQkJRXBpY2VudGVyLCBJbmMuCiswMDBFRDMgICAgIChiYXNlIDE2KQkJRXBpY2VudGVyLCBJbmMuCisJCQkJMjExIEIgQ2FsbGUgUGludG9yZXNjbworCQkJCVNhbiBDbGVtZW50ZSBDQSA5MjY3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRDQgICAoaGV4KQkJQ1JFU0lUVCBJTkRVU1RSSUUKKzAwMEVENCAgICAgKGJhc2UgMTYpCQlDUkVTSVRUIElORFVTVFJJRQorCQkJCTEyIHJ1ZSBkZSBCbG9pcworCQkJCU9ybGVhbnMgQlAgNjc0NCA0NTA2NyAgY2VkZXgKKwkJCQlGUkFOQ0UKKworMDAtMEUtRDUgICAoaGV4KQkJQ09QQU4gU3lzdGVtcyBJbmMuCiswMDBFRDUgICAgIChiYXNlIDE2KQkJQ09QQU4gU3lzdGVtcyBJbmMuCisJCQkJMjYwNSBUcmFkZSBDZW50cmUgQXZlLgorCQkJCVN1aXRlIEQKKwkJCQlMb25nbW9udCBDTyA4MDUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRDYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRUQ2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRDcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRUQ3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRDggICAoaGV4KQkJQWt0aW5vLCBJbmMuCiswMDBFRDggICAgIChiYXNlIDE2KQkJQWt0aW5vLCBJbmMuCisJCQkJMTg1NTEgVm9uIEthcm1hbiBBdmVudWUKKwkJCQlTdWl0ZSAyMDEKKwkJCQlJcnZpbmUgQ0EgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUQ5ICAgKGhleCkJCUFrc3lzLCBMdGQuCiswMDBFRDkgICAgIChiYXNlIDE2KQkJQWtzeXMsIEx0ZC4KKwkJCQkyIE1hcnJpb3R0IERyaXZlCisJCQkJTGluY29sbnNoaXJlIElMIDYwMDY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1EQSAgIChoZXgpCQlDLVRFQ0ggVU5JVEVEIENPUlAuCiswMDBFREEgICAgIChiYXNlIDE2KQkJQy1URUNIIFVOSVRFRCBDT1JQLgorCQkJCTVGLCBObyA2NjUsIENIVU5HIENIRU4gUkQuCisJCQkJSFNJTiBDSFVBTkcgQ0lUVCAgb2YgVEFJUEVJIEhTSUVOICAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLURCICAgKGhleCkJCVhpTkNPTSBDb3JwLgorMDAwRURCICAgICAoYmFzZSAxNikJCVhpTkNPTSBDb3JwLgorCQkJCTI4NDAgSW5kdXN0cmlhbCBBdmUuCisJCQkJSHViYmFyZCBPUiA5NzAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtREMgICAoaGV4KQkJVGVsbGlvbiBJTkMuCiswMDBFREMgICAgIChiYXNlIDE2KQkJVGVsbGlvbiBJTkMuCisJCQkJNXRoIEZsLiBCT05BIFZlbnR1cmUgVG93bgorCQkJCTE1ODYtMSBTZW9jaG8gMy1kb25nLCBTZW9jaG8tZ3UKKwkJCQlTZW91bCBTZW9jaG8tZ3UuIDEzNy03MTkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtREQgICAoaGV4KQkJU0hVUkUgSU5DT1JQT1JBVEVECiswMDBFREQgICAgIChiYXNlIDE2KQkJU0hVUkUgSU5DT1JQT1JBVEVECisJCQkJNTgwMCBXLiBUT1VIWSBBVkUuCisJCQkJTklMRVMgSUwgNjA3MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLURFICAgKGhleCkJCVJFTUVDLCBJbmMuCiswMDBFREUgICAgIChiYXNlIDE2KQkJUkVNRUMsIEluYy4KKwkJCQkyMTQ0IEZyYW5rbGluIERyaXZlIE5FCisJCQkJUGFsbSBCYXkgRmxvcmlkYSAzMjkwNS00MDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1ERiAgIChoZXgpCQlQTFggVGVjaG5vbG9neQorMDAwRURGICAgICAoYmFzZSAxNikJCVBMWCBUZWNobm9sb2d5CisJCQkJODcwIE1hdWRlIEF2ZS4sCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1FMCAgIChoZXgpCQlNY2hhcmdlCiswMDBFRTAgICAgIChiYXNlIDE2KQkJTWNoYXJnZQorCQkJCUZpcnN0ZWMgQmxkZywuIDE1LTQgWW91aWRvLURvbmcKKwkJCQlZb3VuZ2RldW5ncG8tR3UsCisJCQkJc2VvdWwgWW91aWRvIDE1MC0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtRTEgICAoaGV4KQkJRXh0cmVtZVNwZWVkIEluYy4KKzAwMEVFMSAgICAgKGJhc2UgMTYpCQlFeHRyZW1lU3BlZWQgSW5jLgorCQkJCVBPIEJveCA2MDAKKwkJCQk0NjM0LTQ2dGggU3RyZWV0IFN1aXRlIDIwMQorCQkJCU1hbm52aWxsZSBBbGJlcnRhIFQwQiAyVzAKKwkJCQlDQU5BREEKKworMDAtMEUtRTIgICAoaGV4KQkJQ3VzdG9tIEVuZ2luZWVyaW5nIFMucC5BLgorMDAwRUUyICAgICAoYmFzZSAxNikJCUN1c3RvbSBFbmdpbmVlcmluZyBTLnAuQS4KKwkJCQlWaWEgQmVyZXR0dGluZSAyL2IKKwkJCQlGb250ZXZpdm8gUGFybWEgNDMwMTAKKwkJCQlJVEFMWQorCiswMC0wRS1FMyAgIChoZXgpCQlDaGl5dSBUZWNobm9sb2d5IENvLixMdGQKKzAwMEVFMyAgICAgKGJhc2UgMTYpCQlDaGl5dSBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlOby4gMjgsIFJlbmFpIFJvYWQsIENoaWF5aSwgNjAwCisJCQkJQ2hpYXlpICA2MDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUU0ICAgKGhleCkJCUJPRSBURUNITk9MT0dZIEdST1VQIENPLixMVEQKKzAwMEVFNCAgICAgKGJhc2UgMTYpCQlCT0UgVEVDSE5PTE9HWSBHUk9VUCBDTy4sTFRECisJCQkJTm8uMTAgSml1eGlhbnFpYW8gUm9hZCxDaGFveWFuZyBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwMTYKKwkJCQlDSElOQQorCiswMC0wRS1FNSAgIChoZXgpCQliaXRXYWxsZXQsIEluYy4KKzAwMEVFNSAgICAgKGJhc2UgMTYpCQliaXRXYWxsZXQsIEluYy4KKwkJCQlHYXRlIENpdHkgT2hzYWtpIFdlc3QgVG93ZXIgMThGLCAxLTExLTEgT3Nha2ksIFNoaW5hZ2F3YS1rdQorCQkJCVRva3lvICAxNDEwMDMyCisJCQkJSkFQQU4KKworMDAtMEUtRTYgICAoaGV4KQkJQWRpbW9zIFN5c3RlbXMgTFRECiswMDBFRTYgICAgIChiYXNlIDE2KQkJQWRpbW9zIFN5c3RlbXMgTFRECisJCQkJMTcgQXRpcmV5LVllZGEgU3RyZWV0CisJCQkJS2Zhci1TYWJhICA0NDY0MworCQkJCUlTUkFFTAorCiswMC0wRS1FNyAgIChoZXgpCQlBQUMgRUxFQ1RST05JQ1MgQ09SUC4KKzAwMEVFNyAgICAgKGJhc2UgMTYpCQlBQUMgRUxFQ1RST05JQ1MgQ09SUC4KKwkJCQlGTE9PUiA3LFNJWFRIIEJVSUxESU5HIE9GIE5BSUFOWU9VIFROQU4gSU5EVVNUUklBTCBBUkVBLE5BTlNIQU4gRElTVFJJQ1QKKwkJCQlTSEVOWkhFTiBQUk9WSU5DRSBHVUFOR0RPTkcgNTE4MDU0CisJCQkJQ0hJTkEKKworMDAtMEUtRTggICAoaGV4KQkJemlvbmNvbQorMDAwRUU4ICAgICAoYmFzZSAxNikJCXppb25jb20KKwkJCQlXZXN0IHdpbmcgNS9GIC4sIEJsb2NrIDEsIEdhb1hpbiBTb3V0aCBSaW5nIFJkL0tlamkgU291dGggUmQsCisJCQkJVmlzaW9uKFNoZW5aaGVuKUJ1c2luZXNzIFBhcmssIFNoZW56aGVuIEhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0wRS1FOSAgIChoZXgpCQlXYXlUZWNoIERldmVsb3BtZW50LCBJbmMuCiswMDBFRTkgICAgIChiYXNlIDE2KQkJV2F5VGVjaCBEZXZlbG9wbWVudCwgSW5jLgorCQkJCTExRmxvb3IsIDI1MyBNaW4tU2hlbmcgUm9hZAorCQkJCUhzaW5DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtRUEgICAoaGV4KQkJU2hhZG9uZyBMdW5lbmcgSmljaGVuZyBFbGVjdHJvbmljcyxDby4sTHRkCiswMDBFRUEgICAgIChiYXNlIDE2KQkJU2hhZG9uZyBMdW5lbmcgSmljaGVuZyBFbGVjdHJvbmljcyxDby4sTHRkCisJCQkJTm8uMTg4LGVhc3QsSHVheXVhbiBSb2FkCisJCQkJSmluYW4gU2hhbmRvbmcgMjUwMTAwCisJCQkJQ0hJTkEKKworMDAtMEUtRUIgICAoaGV4KQkJU2FuZG1hcnRpbih6aG9uZyBzaGFuKUVsZWN0cm9uaWNzIENvLixMdGQKKzAwMEVFQiAgICAgKGJhc2UgMTYpCQlTYW5kbWFydGluKHpob25nIHNoYW4pRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCTNzdCBJbmR1c3RyaWFsIEFyZWEsVGFuIFpob3UsCisJCQkJWmhvbmdzaGFuIEd1YW5nZG9uZyA1Mjg0NjcKKwkJCQlDSElOQQorCiswMC0wRS1FQyAgIChoZXgpCQlPcmJhbgorMDAwRUVDICAgICAoYmFzZSAxNikJCU9yYmFuCisJCQkJMTUyNSBBbHZhcmFkbyBTdC4KKwkJCQlTYW4gTGVhbmRybyBDQSA5NDU3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRUQgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMEVFRCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMEUtRUUgICAoaGV4KQkJTXVjbyBJbmR1c3RyaWUgQlYKKzAwMEVFRSAgICAgKGJhc2UgMTYpCQlNdWNvIEluZHVzdHJpZSBCVgorCQkJCVBsZWltdWlkZW4gMTJlCisJCQkJQW1zdGVyZGFtIE5IIDEwNDYgQUcKKwkJCQlORVRIRVJMQU5EUworCiswMC0wRS1FRiAgIChoZXgpCQlQUklWQVRFCiswMDBFRUYgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTBFLUYwICAgKGhleCkJCUZlc3RvIEFHICYgQ28uIEtHCiswMDBFRjAgICAgIChiYXNlIDE2KQkJRmVzdG8gQUcgJiBDby4gS0cKKwkJCQlSdWl0ZXJzdHJh32UgODIKKwkJCQlFc3NsaW5nZW4gIDczNzM0CisJCQkJR0VSTUFOWQorCiswMC0wRS1GMSAgIChoZXgpCQlFWlFVRVNUIElOQy4KKzAwMEVGMSAgICAgKGJhc2UgMTYpCQlFWlFVRVNUIElOQy4KKwkJCQkyMTEzMyBFLiBMQSBQQUxNQSBBVkUuCisJCQkJWU9SQkEgTElOREEgQ0EgOTI4ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUYyICAgKGhleCkJCUluZmluaWNvIENvcnBvcmF0aW9uCiswMDBFRjIgICAgIChiYXNlIDE2KQkJSW5maW5pY28gQ29ycG9yYXRpb24KKwkJCQk0RiwgRi0xIEJsZGcuLCAxLTItMTIsCisJCQkJSGFtYW1hdHN1Y2hvLCBNaXRhbm8ta3UKKwkJCQlUb2t5byAgMTA1LTAwMTMKKwkJCQlKQVBBTgorCiswMC0wRS1GMyAgIChoZXgpCQlTbWFydGhvbWUKKzAwMEVGMyAgICAgKGJhc2UgMTYpCQlTbWFydGhvbWUKKwkJCQkxNjU0MiBNaWxsaWthbiBBdmUuCisJCQkJSXJ2aW5lIENBIDkyNjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1GNCAgIChoZXgpCQlLYXNkYSBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAwRUY0ICAgICAoYmFzZSAxNikJCUthc2RhIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJMi9GLEJ1aWxkaW5nIDIsQmFndWEgMiByb2FkLEZ1dGlhbiwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgUHJvdmluY2UgNTE4MDI5CisJCQkJQ0hJTkEKKworMDAtMEUtRjUgICAoaGV4KQkJaVBBQyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwRUY1ICAgICAoYmFzZSAxNikJCWlQQUMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk2RiwgTm8uIDMwLCBTaGluZ2p1bmcgUm9hZCwgTmVpaHUKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtRjYgICAoaGV4KQkJRS1URU4gSW5mb3JtYXRpb24gU3lzdGVtcyBDby4sIEx0ZC4KKzAwMEVGNiAgICAgKGJhc2UgMTYpCQlFLVRFTiBJbmZvcm1hdGlvbiBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCU5vLiAyNTYsIFlhbmdndWFuZyBTdHJlZXQsIE5laWh1IENoaXUKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtRjcgICAoaGV4KQkJVnVsY2FuIFBvcnRhbHMgSW5jCiswMDBFRjcgICAgIChiYXNlIDE2KQkJVnVsY2FuIFBvcnRhbHMgSW5jCisJCQkJNTA1IDV0aCBBdmUgU291dGgsIFN1aXRlIDkwMAorCQkJCVNlYXR0bGUgV0EgOTgxMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUY4ICAgKGhleCkJCVNCQyBBU0kKKzAwMEVGOCAgICAgKGJhc2UgMTYpCQlTQkMgQVNJCisJCQkJTmV0d29yayAmIEluZnJhc3RydWN0dXJlIFRlY2huaWNhbCBTdXBwb3J0CisJCQkJMTAxMCBOIFNhaW50IE1hcnlzCisJCQkJU2FuIEFudG9uaW8gVGV4YXMgNzgyMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUY5ICAgKGhleCkJCVJFQSBFbGVrdHJvbmlrIEdtYkgKKzAwMEVGOSAgICAgKGJhc2UgMTYpCQlSRUEgRWxla3Ryb25payBHbWJICisJCQkJVGVpY2h3aWVzZW5zdHIuIDEKKwkJCQlNdWVobHRhbCBIZXNzZW4gNjQzNjcKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLUZBICAgKGhleCkJCU9wdG93YXkgVGVjaG5vbG9neSBJbmNvcnBvcmF0aW9uCiswMDBFRkEgICAgIChiYXNlIDE2KQkJT3B0b3dheSBUZWNobm9sb2d5IEluY29ycG9yYXRpb24KKwkJCQlOby4gMzgsIEt1YW5nIEZ1IFNvdXRoIFJvYWQKKwkJCQlIc2luIENodSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIdSBLb3UgSHNpbiBDaHUgMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS1GQiAgIChoZXgpCQlNYWNleSBFbnRlcnByaXNlcworMDAwRUZCICAgICAoYmFzZSAxNikJCU1hY2V5IEVudGVycHJpc2VzCisJCQkJUC5PLiBCb3ggNzI2NworCQkJCVRlbXBlIEFaIDg1MjgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1GQyAgIChoZXgpCQlKVEFHIFRlY2hub2xvZ2llcyBCLlYuCiswMDBFRkMgICAgIChiYXNlIDE2KQkJSlRBRyBUZWNobm9sb2dpZXMgQi5WLgorCQkJCUJvc2NoZGlqayA1MAorCQkJCUVpbmRob3ZlbiBOQiA1NjEyIEFOCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEUtRkQgICAoaGV4KQkJRlVKSU5PTiBDT1JQT1JBVElPTgorMDAwRUZEICAgICAoYmFzZSAxNikJCUZVSklOT04gQ09SUE9SQVRJT04KKwkJCQkxLTMyNCBVRVRBS0UsIEtJVEEtS1UsCisJCQkJU0FJVEFNQSBDSVRZIFNBSVRBTUEgMzMxLTk2MjQKKwkJCQlKQVBBTgorCiswMC0wRS1GRSAgIChoZXgpCQlFbmRSdW4gVGVjaG5vbG9naWVzIExMQworMDAwRUZFICAgICAoYmFzZSAxNikJCUVuZFJ1biBUZWNobm9sb2dpZXMgTExDCisJCQkJMjI3MCBOb3J0aHBvaW50IFBhcmt3YXkKKwkJCQlTYW50YSBSb3NhIENBIDk1NDA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1GRiAgIChoZXgpCQlNZWdhc29sdXRpb24sSW5jLgorMDAwRUZGICAgICAoYmFzZSAxNikJCU1lZ2Fzb2x1dGlvbixJbmMuCisJCQkJMi03LTEwIFNoaXRheWEKKwkJCQlUYWl0byBUT0tZTyAxMTAtMDAwNAorCQkJCUpBUEFOCisKKzAwLTBGLTAwICAgKGhleCkJCUxlZ3JhIFN5c3RlbXMsIEluYy4KKzAwMEYwMCAgICAgKGJhc2UgMTYpCQlMZWdyYSBTeXN0ZW1zLCBJbmMuCisJCQkJMyBCdXJsaW5ndG9uIFdvb2RzIERyaXZlCisJCQkJQnVybGluZ3RvbiBNQSAwMTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMDEgICAoaGV4KQkJRElHSVRBTEtTIElOQworMDAwRjAxICAgICAoYmFzZSAxNikJCURJR0lUQUxLUyBJTkMKKwkJCQkxNCBNQVJTSEFMTCBMQU5FCisJCQkJV0VTVE9OIENUIDA2ODgzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0wMiAgIChoZXgpCQlEaWdpY3ViZSBUZWNobm9sb2d5IENvLiwgTHRkCiswMDBGMDIgICAgIChiYXNlIDE2KQkJRGlnaWN1YmUgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCThGLE5vLiA1MSwgTGFuZSAgMzUsIEppaHUgUmQuLAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi0wMyAgIChoZXgpCQlDT00mQyBDTy4sIExURAorMDAwRjAzICAgICAoYmFzZSAxNikJCUNPTSZDIENPLiwgTFRECisJCQkJMkYgV29vamluIEJMRCAxNDQ1LTIgU2VjaG8tRG9uZworCQkJCVNlY2hvLUd1CisJCQkJU0VPVUwgIDEzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtMDQgICAoaGV4KQkJY2ltLXVzYSBpbmMKKzAwMEYwNCAgICAgKGJhc2UgMTYpCQljaW0tdXNhIGluYworCQkJCTEwODEzIG53IDMwdGggc3RyZWV0CisJCQkJbWlhbWkgZmxvcmlkYSAzMzE3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMDUgICAoaGV4KQkJM0IgU1lTVEVNIElOQy4KKzAwMEYwNSAgICAgKGJhc2UgMTYpCQkzQiBTWVNURU0gSU5DLgorCQkJCTE3MjcsIFNBTktZVUsyLURPTkcsIEJVSy1HVQorCQkJCURBRUdVICA3MDItODQ1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTA2ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwRjA2ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTBGLTA3ICAgKGhleCkJCU1hbmdyb3ZlIFN5c3RlbXMsIEluYy4KKzAwMEYwNyAgICAgKGJhc2UgMTYpCQlNYW5ncm92ZSBTeXN0ZW1zLCBJbmMuCisJCQkJMTAgRmFpcmZpZWxkIEJsdmQuCisJCQkJV2FsbGluZ2ZvcmQgQ1QgMDY0OTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTA4ICAgKGhleCkJCUluZGFnb24gT3kKKzAwMEYwOCAgICAgKGJhc2UgMTYpCQlJbmRhZ29uIE95CisJCQkJTnVpamFtaWVzdGVudGllIDUgQQorCQkJCUhlbHNpbmtpIC0gMDA0MDAKKwkJCQlGSU5MQU5ECisKKzAwLTBGLTA5ICAgKGhleCkJCVBSSVZBVEUKKzAwMEYwOSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMEYtMEEgICAoaGV4KQkJQ2xlYXIgRWRnZSBOZXR3b3JrcworMDAwRjBBICAgICAoYmFzZSAxNikJCUNsZWFyIEVkZ2UgTmV0d29ya3MKKwkJCQkxMTI1MCBFbCBDYW1pbm8gUmVhbAorCQkJCVNhbiBEaWVnbyBDQSA5MjEzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMEIgICAoaGV4KQkJS2VudGltYSBUZWNobm9sb2dpZXMgQUIKKzAwMEYwQiAgICAgKGJhc2UgMTYpCQlLZW50aW1hIFRlY2hub2xvZ2llcyBBQgorCQkJCUJveCAxNzQKKwkJCQlLYXN0YW5qZXbkZ2VuIDIKKwkJCQlTdGFmZmFuc3RvcnAgU2vlbmUgMjQ1IDQ0CisJCQkJU1dFREVOCisKKzAwLTBGLTBDICAgKGhleCkJCVNZTkNIUk9OSUMgRU5HSU5FRVJJTkcKKzAwMEYwQyAgICAgKGJhc2UgMTYpCQlTWU5DSFJPTklDIEVOR0lORUVSSU5HCisJCQkJMjUgQ0FQIERBUk5FVEFMCisJCQkJREFSTkVUQUwgRlJBTkNFIDc2MTYwCisJCQkJRlJBTkNFCisKKzAwLTBGLTBEICAgKGhleCkJCUh1bnQgRWxlY3Ryb25pYyBDby4sIEx0ZC4KKzAwMEYwRCAgICAgKGJhc2UgMTYpCQlIdW50IEVsZWN0cm9uaWMgQ28uLCBMdGQuCisJCQkJNkZJLCBOTy4gNTctNTksIEppdW4gSCBTaWVuIFJkLiwgQ2hpIFR1IERpc3RyaWN0CisJCQkJS2VlbHVuZyBUYWl3YW4gMjA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi0wRSAgIChoZXgpCQlXYXZlU3BsaXR0ZXIgVGVjaG5vbG9naWVzLCBJbmMuCiswMDBGMEUgICAgIChiYXNlIDE2KQkJV2F2ZVNwbGl0dGVyIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTIyNDggTm9ydGggRmlyc3QgU3RyZWV0CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTBGICAgKGhleCkJCVJlYWwgSUQgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMEYwRiAgICAgKGJhc2UgMTYpCQlSZWFsIElEIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJOUYgSGFubWkgQi9EIDE5Mi0xOQorCQkJCU5vbmh5ZW9uLURvbmcKKwkJCQlHYW5nbmFtLUd1IFNlb3VsIDEzNS0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtMTAgICAoaGV4KQkJUkRNIENvcnBvcmF0aW9uCiswMDBGMTAgICAgIChiYXNlIDE2KQkJUkRNIENvcnBvcmF0aW9uCisJCQkJNjA4IFdlYmVyIFN0LiBOCisJCQkJV2F0ZXJsb28gT04gTjJWIDFLNAorCQkJCUNBTkFEQQorCiswMC0wRi0xMSAgIChoZXgpCQlQcm9kcml2ZSBCLlYuCiswMDBGMTEgICAgIChiYXNlIDE2KQkJUHJvZHJpdmUgQi5WLgorCQkJCVAuTy4gMjgwMzAKKwkJCQlFaW5kaG92ZW4gIDU2MDIgSkEKKwkJCQlORVRIRVJMQU5EUworCiswMC0wRi0xMiAgIChoZXgpCQlQYW5hc29uaWMgRXVyb3BlIEx0ZC4KKzAwMEYxMiAgICAgKGJhc2UgMTYpCQlQYW5hc29uaWMgRXVyb3BlIEx0ZC4KKwkJCQlIZXNlYmVyZ3dlZyA0OS01MQorCQkJCVBlaW5lICBELTMxMjI4CisJCQkJR0VSTUFOWQorCiswMC0wRi0xMyAgIChoZXgpCQlOaXNjYSBjb3Jwb3JhdGlvbgorMDAwRjEzICAgICAoYmFzZSAxNikJCU5pc2NhIGNvcnBvcmF0aW9uCisJCQkJNDMwLTEKKwkJCQlLb2JheWFzaGkKKwkJCQlNYXN1aG8tQ2hvIFlhbWFuYXNoaS1LZW4gNDAwLTA1OTMKKwkJCQlKQVBBTgorCiswMC0wRi0xNCAgIChoZXgpCQlNaW5kcmF5IENvLiwgTHRkLgorMDAwRjE0ICAgICAoYmFzZSAxNikJCU1pbmRyYXkgQ28uLCBMdGQuCisJCQkJTWluZHJheSBCdWlsZGluZywgS2VqaSAxMnRoIFJvYWQgU291dGgKKwkJCQlIaWdoLXRlY2ggSW5kdXN0cmlhbCBQYXJrLCBOYW5zaGFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTBGLTE1ICAgKGhleCkJCUtqYWVydWxmZjEgQS9TCiswMDBGMTUgICAgIChiYXNlIDE2KQkJS2phZXJ1bGZmMSBBL1MKKwkJCQlDLkYuIFRpZXRnZW5zIEJvdWxldmFyZCAxOQorCQkJCU9kZW5zZSBT2CBGeW4gNTIyMAorCQkJCURFTk1BUksKKworMDAtMEYtMTYgICAoaGV4KQkJSkFZIEhPVyBURUNITk9MT0dZIENPLiwKKzAwMEYxNiAgICAgKGJhc2UgMTYpCQlKQVkgSE9XIFRFQ0hOT0xPR1kgQ08uLAorCQkJCU5PLjQ4NixTRUMuIDEsIFdBTiBTSE9VIFJELiwgS1VFSQorCQkJCVNIQU4gSFNJQU5HLCBUQU9ZVUFOIEhTSUVOCisJCQkJVEFPWVVBTiBIU0lFTiAgMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi0xNyAgIChoZXgpCQlJbnN0YSBFbGVrdHJvIEdtYkgKKzAwMEYxNyAgICAgKGJhc2UgMTYpCQlJbnN0YSBFbGVrdHJvIEdtYkgKKwkJCQlUYWxzdHJhc3NlIDEwNAorCQkJCUx1ZWRlbnNjaGVpZCBOUlcgRC01ODUxNQorCQkJCUdFUk1BTlkKKworMDAtMEYtMTggICAoaGV4KQkJSW5kdXN0cmlhbCBDb250cm9sIFN5c3RlbXMKKzAwMEYxOCAgICAgKGJhc2UgMTYpCQlJbmR1c3RyaWFsIENvbnRyb2wgU3lzdGVtcworCQkJCUhvdXRzY2hlbGYgMQorCQkJCUhhcmRpbnh2ZWxkIFp1aWQtSG9sbGFuZCBOTC0zMzcxIEtCCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEYtMTkgICAoaGV4KQkJQm9zdG9uIFNjaWVudGlmaWMKKzAwMEYxOSAgICAgKGJhc2UgMTYpCQlCb3N0b24gU2NpZW50aWZpYworCQkJCTQxMDAgSGFtbGluZSBBdmUgTi4KKwkJCQlTdC4gUGF1bCBNTiA1NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMUEgICAoaGV4KQkJR2FtaW5nIFN1cHBvcnQgQi5WLgorMDAwRjFBICAgICAoYmFzZSAxNikJCUdhbWluZyBTdXBwb3J0IEIuVi4KKwkJCQlJbmR1c3RyaWUgd2VnIDI5CisJCQkJUm90dGVyZGFtIDMwNDQgQVMKKwkJCQlORVRIRVJMQU5EUworCiswMC0wRi0xQiAgIChoZXgpCQlFZ28gU3lzdGVtcyBJbmMuCiswMDBGMUIgICAgIChiYXNlIDE2KQkJRWdvIFN5c3RlbXMgSW5jLgorCQkJCTEyMDYgV29vbGltIGUtQml6IENlbnRlciBJSQorCQkJCTE2IFlhbmdweW9uZ2RvbmczZ2EsIFlvdW5nZHVuZ3BvLWd1CisJCQkJU2VvdWwgIDE1MC04MzQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtMUMgICAoaGV4KQkJRGlnaXRBbGwgV29ybGQgQ28uLCBMdGQKKzAwMEYxQyAgICAgKGJhc2UgMTYpCQlEaWdpdEFsbCBXb3JsZCBDby4sIEx0ZAorCQkJCVNlamluIEJsZCAyRiwgNjg5IGlsd29uMi1kb25nLAorCQkJCWdhbmduYW0tZ3UgU2VvdWwgMTM1LTk0NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi0xRCAgIChoZXgpCQlDb3NtbyBUZWNocyBDby4sIEx0ZC4KKzAwMEYxRCAgICAgKGJhc2UgMTYpCQlDb3NtbyBUZWNocyBDby4sIEx0ZC4KKwkJCQkyLTYtMSwgTWF0c3VlCisJCQkJQXRzdWdpLXNoaSBLYW5hZ2F3YS1rZW4gMjQzLTAwMDUKKwkJCQlKQVBBTgorCiswMC0wRi0xRSAgIChoZXgpCQlDaGVuZ2R1IEtUIEVsZWN0cmljIENvLm9mIEhpZ2ggJiBOZXcgVGVjaG5vbG9neQorMDAwRjFFICAgICAoYmFzZSAxNikJCUNoZW5nZHUgS1QgRWxlY3RyaWMgQ28ub2YgSGlnaCAmIE5ldyBUZWNobm9sb2d5CisJCQkJTm8uMiBHYW9wZW5nIERvbmcgUm9hZCxIaWdoICYgTmV3IERldmVsb3BtZW50IFpvbmUsCisJCQkJTm8uOSBXdWtlIEVhc3QgTm8uMyBSb2FkLFd1aG91IFpvbmUsCisJCQkJQ2hlbmdkdSBTaWNodWFuIDYxMDA0MQorCQkJCUNISU5BCisKKzAwLTBGLTFGICAgKGhleCkJCVdXIFBDQkEgVGVzdAorMDAwRjFGICAgICAoYmFzZSAxNikJCVdXIFBDQkEgVGVzdAorCQkJCU9uZSBEZWxsIFdheQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTIwICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAwRjIwICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5IFNvdXRoCisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0yMSAgIChoZXgpCQlTY2llbnRpZmljIEF0bGFudGEsIEluYworMDAwRjIxICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMgQXRsYW50YSwgSW5jCisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCVBPIEJveCA0NjU0NDcKKwkJCQlMYXdyZW5jZXZpbGxlIEdhIDMwMDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0yMiAgIChoZXgpCQlIZWxpdXMsIEluYy4KKzAwMEYyMiAgICAgKGJhc2UgMTYpCQlIZWxpdXMsIEluYy4KKwkJCQkzMzMgU291dGggNTIwIFdlc3QKKwkJCQlTdWl0ZSAzMzAKKwkJCQlMaW5kb24gVVQgODQwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTIzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEYyMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTI0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEYyNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTI1ICAgKGhleCkJCUFpbVZhbGxleSBCLlYuCiswMDBGMjUgICAgIChiYXNlIDE2KQkJQWltVmFsbGV5IEIuVi4KKwkJCQlVdHJlY2h0c2V3ZWcgMzgsCisJCQkJSGlsdmVyc3VtIE5IIDEyMjMgVFYKKwkJCQlORVRIRVJMQU5EUworCiswMC0wRi0yNiAgIChoZXgpCQlXb3JsZEFjY3h4ICBMTEMKKzAwMEYyNiAgICAgKGJhc2UgMTYpCQlXb3JsZEFjY3h4ICBMTEMKKwkJCQk0MDM1IFRhbXBhIFJkLgorCQkJCVN1aXRlIDYwMDAKKwkJCQlPbGRzbWFyIEZMIDM0NjY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0yNyAgIChoZXgpCQlURUFMIEVsZWN0cm9uaWNzLCBJbmMuCiswMDBGMjcgICAgIChiYXNlIDE2KQkJVEVBTCBFbGVjdHJvbmljcywgSW5jLgorCQkJCTEwMzUwIFNvcnJlbnRvIFZhbGxleSBSb2FkCisJCQkJU2FuIERpZWdvIENhbGlmb3JuaWEgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTI4ICAgKGhleCkJCUl0cm9uaXggQ29ycG9yYXRpb24KKzAwMEYyOCAgICAgKGJhc2UgMTYpCQlJdHJvbml4IENvcnBvcmF0aW9uCisJCQkJU291dGggODAxIFN0ZXZlbnMgU3RyZWV0CisJCQkJU3Bva2FuZSBXQSA5OTIwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMjkgICAoaGV4KQkJQXVnbWVudGl4IENvcnBvcmF0aW9uCiswMDBGMjkgICAgIChiYXNlIDE2KQkJQXVnbWVudGl4IENvcnBvcmF0aW9uCisJCQkJNDAzMCBXIEJyYWtlciBMbgorCQkJCUJ1aWxkaW5nIDIsIFN1aXRlIDEwMAorCQkJCUF1c3RpbiBUZXhhcyA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMkEgICAoaGV4KQkJQ2FibGV3YXJlIEVsZWN0cm9uaWNzCiswMDBGMkEgICAgIChiYXNlIDE2KQkJQ2FibGV3YXJlIEVsZWN0cm9uaWNzCisJCQkJMTcwMiBXZXN0ZXJuIEF2ZS4KKwkJCQlTdWl0ZSBHCisJCQkJTGFzIFZlZ2FzIE5ldmFkYSA4OTEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMkIgICAoaGV4KQkJR1JFRU5CRUxMIFNZU1RFTVMKKzAwMEYyQiAgICAgKGJhc2UgMTYpCQlHUkVFTkJFTEwgU1lTVEVNUworCQkJCTJUSCBGbG9vciwgRG9vbmFtIEJsZGcsIDIzNi0xMSBOb25oeXVuLURvbmcsIEthbmduYW0tS3UKKwkJCQlTZW91bCAgMTM1LTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi0yQyAgIChoZXgpCQlVcGxvZ2l4LCBJbmMuCiswMDBGMkMgICAgIChiYXNlIDE2KQkJVXBsb2dpeCwgSW5jLgorCQkJCUJsZGcgMSwgU3VpdGUgMjM1CisJCQkJODYwMSBSUiAyMjIyCisJCQkJQXVzdGluIFRYIDc4NzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0yRCAgIChoZXgpCQlDSFVORy1IU0lOIEVMRUNUUklDICYgTUFDSElORVJZIE1GRy5DT1JQLgorMDAwRjJEICAgICAoYmFzZSAxNikJCUNIVU5HLUhTSU4gRUxFQ1RSSUMgJiBNQUNISU5FUlkgTUZHLkNPUlAuCisJCQkJTk8uIDI1LCBXZW4tVGUgUmQuLCBMby1TaGFuIFZpbGxhZ2UKKwkJCQlLd2VpIFNoYW4gSHNpYW5nIFRhb3l1YW4gSHNpZW4gMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi0yRSAgIChoZXgpCQlNZWdhcG93ZXIgSW50ZXJuYXRpb25hbCBDb3JwLgorMDAwRjJFICAgICAoYmFzZSAxNikJCU1lZ2Fwb3dlciBJbnRlcm5hdGlvbmFsIENvcnAuCisJCQkJUm0uIDQwMywgTm8gMjQgLCBXdS1DaHVhbiAybmQgUmQuLAorCQkJCUhzaW4tQ2h1YW5nCisJCQkJVGFpcGVpIEhzaWVuICAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLTJGICAgKGhleCkJCVctTElOWCBURUNITk9MT0dZIENPLiwgTFRELgorMDAwRjJGICAgICAoYmFzZSAxNikJCVctTElOWCBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCSAyRixFTExFTiBMLiBTS0VMVE9OIEJVSUxESU5HLEZJU0hFUiBMQU5FIFJPQUQKKwkJCQlUT1JUT0xBICAKKwkJCQlWSVJHSU4gSVNMQU5EUywgQlJJVElTSAorCiswMC0wRi0zMCAgIChoZXgpCQlSYXphIE1pY3JvZWxlY3Ryb25pY3MgSW5jCiswMDBGMzAgICAgIChiYXNlIDE2KQkJUmF6YSBNaWNyb2VsZWN0cm9uaWNzIEluYworCQkJCTMwODAgTm9ydGggRmlyc3QgU3RyZWV0CisJCQkJNXRoIEZsb29yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTMxICAgKGhleCkJCUFsbGllZCBWaXNpb24gVGVjaG5vbG9naWVzIENhbmFkYSBJbmMKKzAwMEYzMSAgICAgKGJhc2UgMTYpCQlBbGxpZWQgVmlzaW9uIFRlY2hub2xvZ2llcyBDYW5hZGEgSW5jCisJCQkJMTAxLTM3NTAgTm9ydGggRnJhc2VyIFdheQorCQkJCUJ1cm5hYnkgQkMgVjVKIDVFOQorCQkJCUNBTkFEQQorCiswMC0wRi0zMiAgIChoZXgpCQlMdVRvbmcgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLixMdGQKKzAwMEYzMiAgICAgKGJhc2UgMTYpCQlMdVRvbmcgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLixMdGQKKwkJCQkxMDYsIExpYW5nWGkgUm9hZAorCQkJCVd1WGkgSmlhbmdTdSAyMTQwNjMKKwkJCQlDSElOQQorCiswMC0wRi0zMyAgIChoZXgpCQlEVUFMaSBJbmMuCiswMDBGMzMgICAgIChiYXNlIDE2KQkJRFVBTGkgSW5jLgorCQkJCSM1MDUgU2Ftc3VuZyBUZWNobm8gUGFyayBCbGRnIDQ3MQorCQkJCVdvbmNoZW9uLWRvbmcsIFlvdW5ndG9uZy1ndQorCQkJCVN1d29uIEd5ZW9uZ2dpLWRvIDQ0Mi04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtMzQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRjM0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMzUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRjM1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMzYgICAoaGV4KQkJQWNjdXJhdGUgVGVjaGhub2xvZ2llcywgSW5jLgorMDAwRjM2ICAgICAoYmFzZSAxNikJCUFjY3VyYXRlIFRlY2hobm9sb2dpZXMsIEluYy4KKwkJCQk0NzE5OSBDYXJ0aWVyIERyLgorCQkJCVdpeG9tIE1pY2hpZ2FuIDQ4MzkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0zNyAgIChoZXgpCQlYYW1iYWxhIEluY29ycG9yYXRlZAorMDAwRjM3ICAgICAoYmFzZSAxNikJCVhhbWJhbGEgSW5jb3Jwb3JhdGVkCisJCQkJMjY3NCBOLiAxc3QgU3RyZWV0CisJCQkJU3VpdGUgMjE1CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTM4ICAgKGhleCkJCU5ldHN0YXIKKzAwMEYzOCAgICAgKGJhc2UgMTYpCQlOZXRzdGFyCisJCQkJM0YsTm8uMzQ3LCBZYW5nLWt1YW5nIFN0LixOZWktSHUgRGlzLiwKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtMzkgICAoaGV4KQkJSVJJUyBTRU5TT1JTCiswMDBGMzkgICAgIChiYXNlIDE2KQkJSVJJUyBTRU5TT1JTCisJCQkJWkEgbGVzIFVmZXJuZXRzCisJCQkJVE9VTEFVRCBBcmRlY2hlIEYwNzEzMAorCQkJCUZSQU5DRQorCiswMC0wRi0zQSAgIChoZXgpCQlISVNIQVJQCiswMDBGM0EgICAgIChiYXNlIDE2KQkJSElTSEFSUAorCQkJCU5PLjY3MyxDSEFORyBIU0lORyBST0FEIFBBVEUgQ0lUWSxUQU9ZVUFOLAorCQkJCVRBSVBFSSAgMzM0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi0zQiAgIChoZXgpCQlGdWppIFN5c3RlbSBNYWNoaW5lcyBDby4sIEx0ZC4KKzAwMEYzQiAgICAgKGJhc2UgMTYpCQlGdWppIFN5c3RlbSBNYWNoaW5lcyBDby4sIEx0ZC4KKwkJCQk1LTgtMTAKKwkJCQlIaWJhcmlnYW9rYQorCQkJCVphbWEtU2hpIEthbmFnYXdhLUtlbiAyMjgtMDAwMworCQkJCUpBUEFOCisKKzAwLTBGLTNDICAgKGhleCkJCUVuZGVsZW8gTGltaXRlZAorMDAwRjNDICAgICAoYmFzZSAxNikJCUVuZGVsZW8gTGltaXRlZAorCQkJCTc4IENhbm5vbiBTdHJlZXQKKwkJCQlMb25kb24gRW5nbGFuZCBFQzROIDZOUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBGLTNEICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAwRjNEICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5vLjgsTGktc2hpbmcgU2V2ZW50aCBSb2FkLFNjaWVuY2UtYmFzZWQgSW5kdXN0cmlhbCBQYXJrLEhzaW1jaHUsCisJCQkJSHNpbWNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi0zRSAgIChoZXgpCQlDYXJkaW9OZXQsIEluYworMDAwRjNFICAgICAoYmFzZSAxNikJCUNhcmRpb05ldCwgSW5jCisJCQkJMTAxMCBTZWNvbmQgQXZlbnVlCisJCQkJU3VpdGUgNzAwCisJCQkJU2FuIERpZWdvIENBIDkyMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0zRiAgIChoZXgpCQlCaWcgQmVhciBOZXR3b3JrcworMDAwRjNGICAgICAoYmFzZSAxNikJCUJpZyBCZWFyIE5ldHdvcmtzCisJCQkJMzQ1IFBvdHJlcm8gQXZlCisJCQkJU3VubnkgVmFsZSBDYWxpZm9ybmlhIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi00MCAgIChoZXgpCQlPcHRpY2FsIEludGVybmV0d29ya2luZyBGb3J1bQorMDAwRjQwICAgICAoYmFzZSAxNikJCU9wdGljYWwgSW50ZXJuZXR3b3JraW5nIEZvcnVtCisJCQkJNDgzNzcgRnJlbW9udCBCbHZkCisJCQkJU3RlIDExNworCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTQxICAgKGhleCkJCVppcGhlciBMdGQKKzAwMEY0MSAgICAgKGJhc2UgMTYpCQlaaXBoZXIgTHRkCisJCQkJNyBGYXJhZGF5IEJ1aWxkaW5nCisJCQkJTm90dGluZ2hhbSBTY2llbmNlIGFuZCBUZWNobm9sb2d5IFBhcmsKKwkJCQlOb3R0aW5naGFtIE5vdHRpbmdoYW1zaGlyZSBORzcgMlFQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEYtNDIgICAoaGV4KQkJWGFseW8gU3lzdGVtcworMDAwRjQyICAgICAoYmFzZSAxNikJCVhhbHlvIFN5c3RlbXMKKwkJCQlHcmVuaWVyIDkKKwkJCQlDb21tdWdueSBWRCAxMjkxCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEYtNDMgICAoaGV4KQkJV2FzYWJpIFN5c3RlbXMgSW5jLgorMDAwRjQzICAgICAoYmFzZSAxNikJCVdhc2FiaSBTeXN0ZW1zIEluYy4KKwkJCQk1MDAgRS4gTWFpbiBTdHJlZXQKKwkJCQlTdWl0ZSAxNTIwCisJCQkJTm9yZm9sayBWQSAyMzUxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNDQgICAoaGV4KQkJVGl2ZWxsYSBJbmMuCiswMDBGNDQgICAgIChiYXNlIDE2KQkJVGl2ZWxsYSBJbmMuCisJCQkJNzk1IE1haW4gU3RyZWV0CisJCQkJSGFsZiBNb29uIEJheSBDQSA5NDAxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNDUgICAoaGV4KQkJU3RyZXRjaCwgSW5jLgorMDAwRjQ1ICAgICAoYmFzZSAxNikJCVN0cmV0Y2gsIEluYy4KKwkJCQkxMzIyIE9ybGVhbnMgRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTQ2ICAgKGhleCkJCVNJTkFSIEFHCiswMDBGNDYgICAgIChiYXNlIDE2KQkJU0lOQVIgQUcKKwkJCQlTdGFkdHdlZyAyNAorCQkJCUZldWVydGhhbGVuIFpIIENILTgyNDUKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRi00NyAgIChoZXgpCQlST0JPWCBTUEEKKzAwMEY0NyAgICAgKGJhc2UgMTYpCQlST0JPWCBTUEEKKwkJCQl2aWEgU2VtcGlvbmUgODIKKwkJCQlDYXN0ZWxsZXR0byBTLlRpY2lubyBOTyAyODA1MworCQkJCUlUQUxZCisKKzAwLTBGLTQ4ICAgKGhleCkJCVBvbHlwaXggSW5jLgorMDAwRjQ4ICAgICAoYmFzZSAxNikJCVBvbHlwaXggSW5jLgorCQkJCTFGbCwgU3VuZ2RvIFZlbnR1cmUgVG93ZXIsIDE2NS0yIFNhbXN1bmctRG9uZywgS2FuZ25hbS1LdQorCQkJCVNlb3VsICAxMzUtODgxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTQ5ICAgKGhleCkJCU5vcnRob3ZlciBTb2x1dGlvbnMgTGltaXRlZAorMDAwRjQ5ICAgICAoYmFzZSAxNikJCU5vcnRob3ZlciBTb2x1dGlvbnMgTGltaXRlZAorCQkJCUhlYXRoIENvdHRhZ2UKKwkJCQlJbGxpbmd0b24gUm9hZAorCQkJCUxhcmxpbmcgTm9yZm9sayBOUjE2IDJSQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBGLTRBICAgKGhleCkJCUt5dXNodS1reW9oYW4gY28uLGx0ZAorMDAwRjRBICAgICAoYmFzZSAxNikJCUt5dXNodS1reW9oYW4gY28uLGx0ZAorCQkJCTItNi0zLEtvZ2FuZW1hY2hpCisJCQkJS29rdXJha2l0YS1rdQorCQkJCUtpdGFreXVzaHUtY2l0eSBGdWt1b2thIDgwMi0wMDcxCisJCQkJSkFQQU4KKworMDAtMEYtNEIgICAoaGV4KQkJT3JhY2xlIENvcnBvcmF0aW9uCiswMDBGNEIgICAgIChiYXNlIDE2KQkJT3JhY2xlIENvcnBvcmF0aW9uCisJCQkJOTAwIENoZWxtc2ZvcmQgU3RyZWV0CisJCQkJVG93ZXIgMSBGbG9vciAyCisJCQkJTG93ZWxsIE1BIDAxODUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi00QyAgIChoZXgpCQlFbGV4dGVjaCBJTkMKKzAwMEY0QyAgICAgKGJhc2UgMTYpCQlFbGV4dGVjaCBJTkMKKwkJCQk1NTQtMiwgR2FzYW4tRG9uZywgR3VtY2hlb24tR3UKKwkJCQlTZW91bCAgMTUzLTAyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi00RCAgIChoZXgpCQlUYWxrU3dpdGNoCiswMDBGNEQgICAgIChiYXNlIDE2KQkJVGFsa1N3aXRjaAorCQkJCTE1NDUgQ2FybGluZyBBdmUKKwkJCQlTdWl0ZSA1MTAKKwkJCQlPdHRhd2EgT250YXJpbyBLMVogOFA5CisJCQkJQ0FOQURBCisKKzAwLTBGLTRFICAgKGhleCkJCUNlbGxpbmsKKzAwMEY0RSAgICAgKGJhc2UgMTYpCQlDZWxsaW5rCisJCQkJQ2F0aGVyaW5hbGFhbiAzNworCQkJCVJvdHNlbGFhciBWbGFhbXMgQnJhYmFudCBCLTMxMTAKKwkJCQlCRUxHSVVNCisKKzAwLTBGLTRGICAgKGhleCkJCUNhZG11cyBUZWNobm9sb2d5IEx0ZAorMDAwRjRGICAgICAoYmFzZSAxNikJCUNhZG11cyBUZWNobm9sb2d5IEx0ZAorCQkJCTY2IEhpbGxzaWRlIFJkCisJCQkJR2xlbmZpZWxkCisJCQkJQXVja2xhbmQgIDEzMTAKKwkJCQlORVcgWkVBTEFORAorCiswMC0wRi01MCAgIChoZXgpCQlTdHJlYW1TY2FsZSBMaW1pdGVkCiswMDBGNTAgICAgIChiYXNlIDE2KQkJU3RyZWFtU2NhbGUgTGltaXRlZAorCQkJCVRoZSBDb3VydCwgQWxleGFuZHJhIFBhcmsKKwkJCQlQcmVzY290IFJvYWQKKwkJCQlTdCBIZWxlbnMgIFdBMTAgM1RQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEYtNTEgICAoaGV4KQkJQXp1bCBTeXN0ZW1zLCBJbmMuCiswMDBGNTEgICAgIChiYXNlIDE2KQkJQXp1bCBTeXN0ZW1zLCBJbmMuCisJCQkJMTYwMCBQbHltb3V0aCBTdHJlZXQKKwkJCQlNb3VudGFpbiBWaWV3IENhbGlmb3JuaWEgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTUyICAgKGhleCkJCVlPUksgUmVmcmlnZXJhdGlvbiwgTWFyaW5lICYgQ29udHJvbHMKKzAwMEY1MiAgICAgKGJhc2UgMTYpCQlZT1JLIFJlZnJpZ2VyYXRpb24sIE1hcmluZSAmIENvbnRyb2xzCisJCQkJSmVucyBKdXVsc3ZlaiAyOAorCQkJCVZpYnkgSiBESyA4MzYyCisJCQkJREVOTUFSSworCiswMC0wRi01MyAgIChoZXgpCQlTb2xhcmZsYXJlIENvbW11bmljYXRpb25zIEluYworMDAwRjUzICAgICAoYmFzZSAxNikJCVNvbGFyZmxhcmUgQ29tbXVuaWNhdGlvbnMgSW5jCisJCQkJOTUwMSBKZXJvbmltbyBSb2FkCisJCQkJU3VpdGUgMjUwCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi01NCAgIChoZXgpCQlFbnRyZWxvZ2ljIENvcnBvcmF0aW9uCiswMDBGNTQgICAgIChiYXNlIDE2KQkJRW50cmVsb2dpYyBDb3Jwb3JhdGlvbgorCQkJCTMzIEJvc3RvbiBQb3N0IFJkLiBXZXN0LgorCQkJCVN1aXRlIDE2MAorCQkJCU1hcmxib3JvdWdoIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi01NSAgIChoZXgpCQlEYXRhd2lyZSBDb21tdW5pY2F0aW9uIE5ldHdvcmtzIEluYy4KKzAwMEY1NSAgICAgKGJhc2UgMTYpCQlEYXRhd2lyZSBDb21tdW5pY2F0aW9uIE5ldHdvcmtzIEluYy4KKwkJCQkxMCBDYXJsc29uIENvdXJ0LCBTdWl0ZSAzMDAKKwkJCQlUb3JvbnRvIE9udGFyaW8gTTlXIDZMMgorCQkJCUNBTkFEQQorCiswMC0wRi01NiAgIChoZXgpCQlDb250aW51dW0gUGhvdG9uaWNzIEluYworMDAwRjU2ICAgICAoYmFzZSAxNikJCUNvbnRpbnV1bSBQaG90b25pY3MgSW5jCisJCQkJNSBGb3J0dW5lIERyaXZlCisJCQkJQmlsbGVyaWNhIE1BIDAxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi01NyAgIChoZXgpCQlDQUJMRUxPR0lDIENvLiwgTHRkLgorMDAwRjU3ICAgICAoYmFzZSAxNikJCUNBQkxFTE9HSUMgQ28uLCBMdGQuCisJCQkJM0YuLCBId2FpbiBCbGRnLiwgMTU1OS0xMiBTZW9jaG8gMy1kb25nLAorCQkJCVNlY2hvLWd1LAorCQkJCVNlb3VsICAxMzctODczCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTU4ICAgKGhleCkJCUFkZGVyIFRlY2hub2xvZ3kgTGltaXRlZAorMDAwRjU4ICAgICAoYmFzZSAxNikJCUFkZGVyIFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCVRlY2hub2xvZ3kgSG91c2UKKwkJCQlUcmFmYWxnYXIgV2F5CisJCQkJQmFyIEhpbGwgQ2FtYnJpZGdlc2hpcmUgQ0IzIDhTUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBGLTU5ICAgKGhleCkJCVBob25hayBDb21tdW5pY2F0aW9ucyBBRworMDAwRjU5ICAgICAoYmFzZSAxNikJCVBob25hayBDb21tdW5pY2F0aW9ucyBBRworCQkJCUzkbmdnYXNzZSAxNworCQkJCU11cnRlbiBGUiAzMjgwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEYtNUEgICAoaGV4KQkJUGVyaWJpdCBOZXR3b3JrcworMDAwRjVBICAgICAoYmFzZSAxNikJCVBlcmliaXQgTmV0d29ya3MKKwkJCQkyODU1IEJvd2VycyBBdmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNUIgICAoaGV4KQkJRGVsdGEgSW5mb3JtYXRpb24gU3lzdGVtcywgSW5jLgorMDAwRjVCICAgICAoYmFzZSAxNikJCURlbHRhIEluZm9ybWF0aW9uIFN5c3RlbXMsIEluYy4KKwkJCQkzMDAgV2Vsc2ggUm9hZCwgQmxkZy4gMworCQkJCUhvcnNoYW0gUEEgMTkwNDQtMjI3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNUMgICAoaGV4KQkJRGF5IE9uZSBEaWdpdGFsIE1lZGlhIExpbWl0ZWQKKzAwMEY1QyAgICAgKGJhc2UgMTYpCQlEYXkgT25lIERpZ2l0YWwgTWVkaWEgTGltaXRlZAorCQkJCTE5NyBBcmNoZXJzIFJkCisJCQkJR2xlbmZpZWxkCisJCQkJQXVja2xhbmQgTm9ydGggSXNsYW5kIDEzMTAKKwkJCQlORVcgWkVBTEFORAorCiswMC0wRi01RCAgIChoZXgpCQlQYWNrZXRGcm9udCBJbnRlcm5hdGlvbmFsIEFCCiswMDBGNUQgICAgIChiYXNlIDE2KQkJUGFja2V0RnJvbnQgSW50ZXJuYXRpb25hbCBBQgorCQkJCVBPLTEyMTcKKwkJCQlLaXN0YWdhbmdlbiAyLCBJVgorCQkJCUtpc3RhIFN0b2NraG9sbSBTRS0xNjQyOAorCQkJCVNXRURFTgorCiswMC0wRi01RSAgIChoZXgpCQlWZW8KKzAwMEY1RSAgICAgKGJhc2UgMTYpCQlWZW8KKwkJCQk5MTAgUmluY29uIENpcmNsZQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi01RiAgIChoZXgpCQlOaWNldHkgVGVjaG5vbG9naWVzIEluYy4gKE5UUykKKzAwMEY1RiAgICAgKGJhc2UgMTYpCQlOaWNldHkgVGVjaG5vbG9naWVzIEluYy4gKE5UUykKKwkJCQk3OTItMyBUb21pb2thIFRveW9kYS1jaG8KKwkJCQlJd2F0YS1ndW4gU2hpenVva2EgNDM4LTA4MDMKKwkJCQlKQVBBTgorCiswMC0wRi02MCAgIChoZXgpCQlMaWZldHJvbiBDby4sTHRkCiswMDBGNjAgICAgIChiYXNlIDE2KQkJTGlmZXRyb24gQ28uLEx0ZAorCQkJCTYtNyxUZW5qaW5uaXNoaW1hY2hpCisJCQkJS2l0YS1LdQorCQkJCU9zYWthIE9zYWthIFByZWZlY3R1cmUgNTMwLTAwNDUKKwkJCQlKQVBBTgorCiswMC0wRi02MSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMEY2MSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTYyICAgKGhleCkJCUFsY2F0ZWwgQmVsbCBTcGFjZSBOLlYuCiswMDBGNjIgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBCZWxsIFNwYWNlIE4uVi4KKwkJCQlCZXJrZW5yb2RlbGVpIDMzCisJCQkJSG9ib2tlbiBBbnR3ZXJwZW4gQi0yNjYwCisJCQkJQkVMR0lVTQorCiswMC0wRi02MyAgIChoZXgpCQlPYnplcnYgVGVjaG5vbG9naWVzCiswMDBGNjMgICAgIChiYXNlIDE2KQkJT2J6ZXJ2IFRlY2hub2xvZ2llcworCQkJCTQwMCBKZWFuIExlc2FnZQorCQkJCXN1aXRlIDIwMQorCQkJCVF1ZWJlYyBRQyBHMUs4VzEKKwkJCQlDQU5BREEKKworMDAtMEYtNjQgICAoaGV4KQkJRCZSIEVsZWN0cm9uaWNhIFdlZXNwIEJWCiswMDBGNjQgICAgIChiYXNlIDE2KQkJRCZSIEVsZWN0cm9uaWNhIFdlZXNwIEJWCisJCQkJUmlqbmthZGUgMTVCCisJCQkJV0VFU1AgTkggMTM4MkdTCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEYtNjUgICAoaGV4KQkJaWN1YmUgQ29ycC4KKzAwMEY2NSAgICAgKGJhc2UgMTYpCQlpY3ViZSBDb3JwLgorCQkJCU9seW1waWEgQ2VudGVyIDJGLDgyOC0xMCxZZW9rc2FtLWRvbmcsS2FuZ25hbS1rdQorCQkJCVNlb3VsIFNvdXRoIDEzNS05MzUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtNjYgICAoaGV4KQkJQ2lzY28tTGlua3N5cworMDAwRjY2ICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMKKwkJCQkxMjEgVGhlb3J5IERyLgorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNjcgICAoaGV4KQkJV2VzdCBJbnN0cnVtZW50cworMDAwRjY3ICAgICAoYmFzZSAxNikJCVdlc3QgSW5zdHJ1bWVudHMKKwkJCQlVbml0IDUsIFRoZSBIeWRlLCBMb3dlciBCZXZlbmRlYW4KKwkJCQlCcmlnaHRvbiBFYXN0IFN1c3NleCBCTjIgNEpVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEYtNjggICAoaGV4KQkJVmF2aWMgTmV0d29yayBUZWNobm9sb2d5LCBJbmMuCiswMDBGNjggICAgIChiYXNlIDE2KQkJVmF2aWMgTmV0d29yayBUZWNobm9sb2d5LCBJbmMuCisJCQkJMXN0IEZsb29yLCAxNSBKaWFuZ29uZyBSb2FkCisJCQkJVGlhbmhlICBTJlQgWm9uZQorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgNTEwNjY1CisJCQkJQ0hJTkEKKworMDAtMEYtNjkgICAoaGV4KQkJU0VXIEV1cm9kcml2ZSBHbWJIICYgQ28uIEtHCiswMDBGNjkgICAgIChiYXNlIDE2KQkJU0VXIEV1cm9kcml2ZSBHbWJIICYgQ28uIEtHCisJCQkJRXJuc3QgQmxpY2tsZSBTdHIuIDQyCisJCQkJQnJ1Y2hzYWwgIDc2NjQ2CisJCQkJR0VSTUFOWQorCiswMC0wRi02QSAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMEY2QSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0wRi02QiAgIChoZXgpCQlHYXRlV2FyZSBDb21tdW5pY2F0aW9ucyBHbWJICiswMDBGNkIgICAgIChiYXNlIDE2KQkJR2F0ZVdhcmUgQ29tbXVuaWNhdGlvbnMgR21iSAorCQkJCUFsbGVyc2JlcmdlciBTdHJhc3NlIDE4NSBGCisJCQkJTnVlcm5iZXJnIEJhdmFyaWEgRC05MDQ2MQorCQkJCUdFUk1BTlkKKworMDAtMEYtNkMgICAoaGV4KQkJQURESS1EQVRBIEdtYkgKKzAwMEY2QyAgICAgKGJhc2UgMTYpCQlBRERJLURBVEEgR21iSAorCQkJCURpZXNlbHN0cmFzc2UgMworCQkJCU9UVEVSU1dFSUVSIEJXIDc3ODMzCisJCQkJR0VSTUFOWQorCiswMC0wRi02RCAgIChoZXgpCQlNaWRhcyBFbmdpbmVlcmluZworMDAwRjZEICAgICAoYmFzZSAxNikJCU1pZGFzIEVuZ2luZWVyaW5nCisJCQkJQWNlIFRlY2huby1Ub3dlciBWICM5MDYgMTk3LTIyCisJCQkJS3Vyby1Eb25nLCBLdXJvLUd1CisJCQkJU2VvdWwgIDE1Mi04NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtNkUgICAoaGV4KQkJQkJveAorMDAwRjZFICAgICAoYmFzZSAxNikJCUJCb3gKKwkJCQlFcGl0b2sgdS4gMi00CisJCQkJQnVkYW9ycyAgSC0yMDQwCisJCQkJSFVOR0FSWQorCiswMC0wRi02RiAgIChoZXgpCQlGVEEgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMKKzAwMEY2RiAgICAgKGJhc2UgMTYpCQlGVEEgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMKKwkJCQkxMSwgcnVlIFBpZXJyZSBXZXJuZXIKKwkJCQlCZXR6ZG9yZiAgTC02ODMyCisJCQkJTFVYRU1CT1VSRworCiswMC0wRi03MCAgIChoZXgpCQlXaW50ZWMgSW5kdXN0cmllcywgaW5jLgorMDAwRjcwICAgICAoYmFzZSAxNikJCVdpbnRlYyBJbmR1c3RyaWVzLCBpbmMuCisJCQkJNjc1IFN5Y2Ftb3JlIERyaXZlCisJCQkJTWlscGl0YXMsIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi03MSAgIChoZXgpCQlTYW5tZWkgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAwRjcxICAgICAoYmFzZSAxNikJCVNhbm1laSBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJMi0yLTEsU2Vpa2FpLFNoaW1penUKKwkJCQlTaGl6dW9rYSAgNDI0LTA5MjQKKwkJCQlKQVBBTgorCiswMC0wRi03MiAgIChoZXgpCQlTYW5kYnVyc3QKKzAwMEY3MiAgICAgKGJhc2UgMTYpCQlTYW5kYnVyc3QKKwkJCQk2MDAgRmVkZXJhbCBTdAorCQkJCTJuZCBGbG9vcgorCQkJCUFuZG92ZXIgTUEgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTczICAgKGhleCkJCVJTIEF1dG9tYXRpb24gQ28uLCBMdGQKKzAwMEY3MyAgICAgKGJhc2UgMTYpCQlSUyBBdXRvbWF0aW9uIENvLiwgTHRkCisJCQkJNDQ3LTYsIEdvbmdzZS1Eb25nICwgR2loZXVuZy1HdQorCQkJCVlvdW5naW4tQ2l0eSBHeWVvbmdnaS1EbyA0NDktOTAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTc0ICAgKGhleCkJCVFhbWNvbSBUZWNobm9sb2d5IEFCCiswMDBGNzQgICAgIChiYXNlIDE2KQkJUWFtY29tIFRlY2hub2xvZ3kgQUIKKwkJCQlHcnV2Z2F0YW4gOAorCQkJCVNFLTQyMSAzMAorCQkJCVZhc3RyYSBGcm9sdW5kYSAKKwkJCQlTV0VERU4KKworMDAtMEYtNzUgICAoaGV4KQkJRmlyc3QgU2lsaWNvbiBTb2x1dGlvbnMKKzAwMEY3NSAgICAgKGJhc2UgMTYpCQlGaXJzdCBTaWxpY29uIFNvbHV0aW9ucworCQkJCTEzOTM5IEZvcmVzdCBMYW5lCisJCQkJTGFya3NwdXIgQ08gODAxMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTc2ICAgKGhleCkJCURpZ2l0YWwgS2V5c3RvbmUsIEluYy4KKzAwMEY3NiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIEtleXN0b25lLCBJbmMuCisJCQkJMTk3NSBFbCBDYW1pbm8gUmVhbAorCQkJCSMzMDYKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi03NyAgIChoZXgpCQlERU5UVU0gQ08uLExURAorMDAwRjc3ICAgICAoYmFzZSAxNikJCURFTlRVTSBDTy4sTFRECisJCQkJV29va3l1bmcgQi9EIDYwMiAjNjc4LTYKKwkJCQlEZXVuZ2Nob24tRG9uZyAsS2FuZ3Nlby1HdQorCQkJCVNlb3VsICAxNTctMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTc4ICAgKGhleCkJCURhdGFjYXAgU3lzdGVtcyBJbmMKKzAwMEY3OCAgICAgKGJhc2UgMTYpCQlEYXRhY2FwIFN5c3RlbXMgSW5jCisJCQkJMTAwIE5ldyBCcml0YWluIEJsdmQKKwkJCQlDaGFsZm9udCBQQSAxODkxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNzkgICAoaGV4KQkJQmx1ZXRvb3RoIEludGVyZXN0IEdyb3VwIEluYy4KKzAwMEY3OSAgICAgKGJhc2UgMTYpCQlCbHVldG9vdGggSW50ZXJlc3QgR3JvdXAgSW5jLgorCQkJCTRGLCBOby4gOSwgQWxsZXkgMiwgTGFuZSAzNSwgSmktSHUgUmQuCisJCQkJTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtN0EgICAoaGV4KQkJQmVpSmluZyBOdVFYIFRlY2hub2xvZ3kgQ08uLExURAorMDAwRjdBICAgICAoYmFzZSAxNikJCUJlaUppbmcgTnVRWCBUZWNobm9sb2d5IENPLixMVEQKKwkJCQlSb29tIDgxMiw4RiBUb3dlciBCLFlpbldhbmcgQ2VudGVyLCBOby4xMTMsWmhpIENodW4gUm9hZCwKKwkJCQlIYWlEaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg2CisJCQkJQ0hJTkEKKworMDAtMEYtN0IgICAoaGV4KQkJQXJjZSBTaXN0ZW1hcywgUy5BLgorMDAwRjdCICAgICAoYmFzZSAxNikJCUFyY2UgU2lzdGVtYXMsIFMuQS4KKwkJCQlDL1BhZHJlIExhcnJhbWVuZGksIDMgLSAyugorCQkJCUJpbGJhbyBWaXpjYXlhIDQ4MDEyCisJCQkJU1BBSU4KKworMDAtMEYtN0MgICAoaGV4KQkJQUNUaSBDb3Jwb3JhdGlvbgorMDAwRjdDICAgICAoYmFzZSAxNikJCUFDVGkgQ29ycG9yYXRpb24KKwkJCQk3Ri4sIE5vLiAxLCBBbGxleSAyMCwgTGFuZSA0MDcsIFNlYy4gMiwgVGlkaW5nIEJsdmQuLAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLTdEICAgKGhleCkJCVhpcnJ1cworMDAwRjdEICAgICAoYmFzZSAxNikJCVhpcnJ1cworCQkJCTMxMCBOb3J0aCBXZXN0bGFrZSBCbHZkLgorCQkJCVdlc3RsYWtlIFZpbGxhZ2UgQ0EgOTEzNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTdFICAgKGhleCkJCUFibGVyZXggRWxlY3Ryb25pY3MgQ28uLCBMVEQKKzAwMEY3RSAgICAgKGJhc2UgMTYpCQlBYmxlcmV4IEVsZWN0cm9uaWNzIENvLiwgTFRECisJCQkJMUYsIE5vLjMgTGFuZSA3LCBQYW9rYW8gUmQuCisJCQkJSHNpbnRpZW4gVGFpcGVpIEhzaWVuIDIzMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi03RiAgIChoZXgpCQlVQlNUT1JBR0UgQ28uLEx0ZC4KKzAwMEY3RiAgICAgKGJhc2UgMTYpCQlVQlNUT1JBR0UgQ28uLEx0ZC4KKwkJCQkjQS0xMDgsIFNlb3VsX1NhbnVwX0ppd29uX0NlbnRlcgorCQkJCTY0Ny0yNiwgRGV1bmdjaG9uZy1kb25nCisJCQkJR2Fuc2VvLWd1IFNlb3VsIDE1Ny04NDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtODAgICAoaGV4KQkJVHJpbml0eSBTZWN1cml0eSBTeXN0ZW1zLEluYy4KKzAwMEY4MCAgICAgKGJhc2UgMTYpCQlUcmluaXR5IFNlY3VyaXR5IFN5c3RlbXMsSW5jLgorCQkJCUFsdGUgQnVpbGRpbmcgSGlnYXNoaSBLYW5kYSA4RgorCQkJCTEtNy04IEhpZ2FzaGlrYW5kYQorCQkJCUNoaXlvZGEta3UgVG9reW8gMTAxLTAwMzEKKwkJCQlKQVBBTgorCiswMC0wRi04MSAgIChoZXgpCQlTZWN1cmUgSW5mbyBJbWFnaW5nCiswMDBGODEgICAgIChiYXNlIDE2KQkJU2VjdXJlIEluZm8gSW1hZ2luZworCQkJCVBPIEJveCAyMTg3CisJCQkJUGFsbSBTcHJpbmdzIENBIDkyMjYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi04MiAgIChoZXgpCQlNb3J0YXJhIEluc3RydW1lbnQsIEluYy4KKzAwMEY4MiAgICAgKGJhc2UgMTYpCQlNb3J0YXJhIEluc3RydW1lbnQsIEluYy4KKwkJCQk3ODY1IE4uIDg2dGggU3QuCisJCQkJTWlsd2F1a2VlIFdJIDUzMjI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi04MyAgIChoZXgpCQlCcmFpbml1bSBUZWNobm9sb2dpZXMgSW5jLgorMDAwRjgzICAgICAoYmFzZSAxNikJCUJyYWluaXVtIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJIzIwMSAtIDExNDkxIEtpbmdzdG9uIFN0cmVldAorCQkJCU1hcGxlIFJpZGdlIEJDIFYyWCAwWTYKKwkJCQlDQU5BREEKKworMDAtMEYtODQgICAoaGV4KQkJQXN0dXRlIE5ldHdvcmtzLCBJbmMuCiswMDBGODQgICAgIChiYXNlIDE2KQkJQXN0dXRlIE5ldHdvcmtzLCBJbmMuCisJCQkJMTY1MTYgVmlhIEVzcHJpbGxvCisJCQkJIzIwMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtODUgICAoaGV4KQkJQURETy1KYXBhbiBDb3Jwb3JhdGlvbgorMDAwRjg1ICAgICAoYmFzZSAxNikJCUFERE8tSmFwYW4gQ29ycG9yYXRpb24KKwkJCQlTaGluIEVkb2Jhc2hpIEJsZGcuIDRGLCA4LTYgTmlob21iYXNoaSBLb2J1bmEtY2hvCisJCQkJQ2h1by1rdSBUb2t5byAxMDMtMDAyNAorCQkJCUpBUEFOCisKKzAwLTBGLTg2ICAgKGhleCkJCVJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkCiswMDBGODYgICAgIChiYXNlIDE2KQkJUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQKKwkJCQkyOTUgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCAzVzgKKwkJCQlDQU5BREEKKworMDAtMEYtODcgICAoaGV4KQkJTWF4Y2VzcyBJbnRlcm5hdGlvbmFsCiswMDBGODcgICAgIChiYXNlIDE2KQkJTWF4Y2VzcyBJbnRlcm5hdGlvbmFsCisJCQkJMjIyIFcuIE1lbW9yaWFsIFJvYWQKKwkJCQlPa2xhaG9tYSBDaXR5IE9LIDczMTE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi04OCAgIChoZXgpCQlBTUVURUssIEluYy4KKzAwMEY4OCAgICAgKGJhc2UgMTYpCQlBTUVURUssIEluYy4KKwkJCQkxNTAgRnJlZXBvcnQgUm9hZAorCQkJCVBpdHRzYnVyZ2ggUEEgMTUyMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTg5ICAgKGhleCkJCVdpbm5lcnRlYyBTeXN0ZW0gQ28uLCBMdGQuCiswMDBGODkgICAgIChiYXNlIDE2KQkJV2lubmVydGVjIFN5c3RlbSBDby4sIEx0ZC4KKwkJCQkjNDA1LCA0dGggRmxvb3IuIEFjZS1UZWNobm8gVG93ZXIgSUlJLCAxOTctNDgsCisJCQkJS3VybyAzLURvbmcsIEt1cm8tS3UuCisJCQkJU2VvdWwgIDE1Mi03NjYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtOEEgICAoaGV4KQkJV2lkZVZpZXcKKzAwMEY4QSAgICAgKGJhc2UgMTYpCQlXaWRlVmlldworCQkJCUYuIDYsIE5vLiA4LCBXdS1jaHVhbiAyIFJkLCBIc2luLUNodWFuZyBDaXR5CisJCQkJVGFpcGVpIENvdW50cnkgIDI0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtOEIgICAoaGV4KQkJT3Jpb24gTXVsdGlTeXN0ZW1zIEluYworMDAwRjhCICAgICAoYmFzZSAxNikJCU9yaW9uIE11bHRpU3lzdGVtcyBJbmMKKwkJCQkzMzc1IFNjb3R0IEJsdmQgU3VpdGUgMzM4CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLThDICAgKGhleCkJCUdpZ2F3YXZldGVjaCBQdGUgTHRkCiswMDBGOEMgICAgIChiYXNlIDE2KQkJR2lnYXdhdmV0ZWNoIFB0ZSBMdGQKKwkJCQkxIEphbGFuIEtpbGFuZyBUaW1vcgorCQkJCSMwNy0wMiBQYWNpZmljIFRlY2ggQ2VudHJlCisJCQkJMTU5MzAzCisJCQkJU0lOR0FQT1JFCisKKzAwLTBGLThEICAgKGhleCkJCUZBU1QgVFYtU2VydmVyIEFHCiswMDBGOEQgICAgIChiYXNlIDE2KQkJRkFTVCBUVi1TZXJ2ZXIgQUcKKwkJCQlSdWVkZXNoZWltZXJzdHIuIDExLTEzCisJCQkJTXVuaWNoIEdlcm1hbnkgODA2ODYKKwkJCQlHRVJNQU5ZCisKKzAwLTBGLThFICAgKGhleCkJCURPTkdZQU5HIFRFTEVDT00gQ08uLExURC4KKzAwMEY4RSAgICAgKGJhc2UgMTYpCQlET05HWUFORyBURUxFQ09NIENPLixMVEQuCisJCQkJNjQyLTcsIERFVU5HQ0hPTi1ET05HLCBLQU5HU0VPLUdVCisJCQkJU0VPVUwgS0FOR1NFLUdVIDE1Ny04NDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtOEYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRjhGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtOTAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRjkwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtOTEgICAoaGV4KQkJQWVyb3RlbGVjb20gQ28uLEx0ZC4KKzAwMEY5MSAgICAgKGJhc2UgMTYpCQlBZXJvdGVsZWNvbSBDby4sTHRkLgorCQkJCTE5NS01OCBBbnlhbmcgNyBEb25nCisJCQkJQW55YW5nIEt5dW5nZ2kgNDMwLTgxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi05MiAgIChoZXgpCQlNaWNyb2hhcmQgU3lzdGVtcyBJbmMuCiswMDBGOTIgICAgIChiYXNlIDE2KQkJTWljcm9oYXJkIFN5c3RlbXMgSW5jLgorCQkJCSMxNywgMjEzNS0zMkF2ZSBORQorCQkJCUNhbGdhcnkgQUIgVDJFNlozCisJCQkJQ0FOQURBCisKKzAwLTBGLTkzICAgKGhleCkJCUxhbmRpcytHeXIgTHRkLgorMDAwRjkzICAgICAoYmFzZSAxNikJCUxhbmRpcytHeXIgTHRkLgorCQkJCUZlbGRzdHJhc3NlIDEKKwkJCQladWcgIENILTYzMDEKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRi05NCAgIChoZXgpCQlHZW5leGlzCiswMDBGOTQgICAgIChiYXNlIDE2KQkJR2VuZXhpcworCQkJCUxvZGV3aWprc3RyYWF0IDFBCisJCQkJRWluZGhvdmVuICA1NjQ2SFAKKwkJCQlORVRIRVJMQU5EUworCiswMC0wRi05NSAgIChoZXgpCQlFTEVDT00gQ28uLExURCBMYW5lZWQgRGl2aXNpb24KKzAwMEY5NSAgICAgKGJhc2UgMTYpCQlFTEVDT00gQ28uLExURCBMYW5lZWQgRGl2aXNpb24KKwkJCQk4RiBLYW5kYS1NdXJvbWFjaGkgQmxkZy4KKwkJCQkxIEthbmRhLU9nYXdhbWFjaGkgMSBDaG9tZSwKKwkJCQlDaGl5b2RhLUt1LCBUb2t5by4gIDEwMS0wMDUyCisJCQkJSkFQQU4KKworMDAtMEYtOTYgICAoaGV4KQkJVGVsY28gU3lzdGVtcywgSW5jLiAKKzAwMEY5NiAgICAgKGJhc2UgMTYpCQlUZWxjbyBTeXN0ZW1zLCBJbmMuIAorCQkJCTE1IEJlcmtzaGlyZSBSb2FkCisJCQkJTWFuc2ZpZWxkIE1BIDAyMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi05NyAgIChoZXgpCQlBdmFuZXggQ29ycG9yYXRpb24KKzAwMEY5NyAgICAgKGJhc2UgMTYpCQlBdmFuZXggQ29ycG9yYXRpb24KKwkJCQk0MDkxOSBFbmN5Y2xvcGVkaWEgQ2lyY2xlCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtOTggICAoaGV4KQkJQXZhbWF4IENvLiBMdGQuCiswMDBGOTggICAgIChiYXNlIDE2KQkJQXZhbWF4IENvLiBMdGQuCisJCQkJQjEsIE5vLiA1MSwgU2VjdGlvbiAyLCBDaG9uZ1FpbmcgUy4gUmQuCisJCQkJVGFpcGVpICAxMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLTk5ICAgKGhleCkJCUFQQUMgb3B0byBFbGVjdHJvbmljcyBJbmMuCiswMDBGOTkgICAgIChiYXNlIDE2KQkJQVBBQyBvcHRvIEVsZWN0cm9uaWNzIEluYy4KKwkJCQkzIFR6dSBDaGlhbmcgUm9hZCwgSHNpbmNodSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIdWtvdywgSHNpbmNodSBIc2llbiAgMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi05QSAgIChoZXgpCQlTeW5jaHJvbnksIEluYy4KKzAwMEY5QSAgICAgKGJhc2UgMTYpCQlTeW5jaHJvbnksIEluYy4KKwkJCQk2NDEwIENvbW1vbndlYWx0aCBEcml2ZQorCQkJCVJvYW5va2UgVkEgMjQwMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTlCICAgKGhleCkJCVJvc3MgVmlkZW8gTGltaXRlZAorMDAwRjlCICAgICAoYmFzZSAxNikJCVJvc3MgVmlkZW8gTGltaXRlZAorCQkJCTggSm9obiBTdHJlZXQKKwkJCQlQTyBCb3ggMjIwCisJCQkJSXJvcXVvaXMgT250YXJpbyBLMEUgMUswCisJCQkJQ0FOQURBCisKKzAwLTBGLTlDICAgKGhleCkJCVBhbmR1aXQgQ29ycAorMDAwRjlDICAgICAoYmFzZSAxNikJCVBhbmR1aXQgQ29ycAorCQkJCTE3MzAxIFJpZGdlbGFuZCBBdmUKKwkJCQlUaW5sZXkgUGFyayBJbGxpbm9pcyA2MDQ3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtOUQgICAoaGV4KQkJRGlzcGxheUxpbmsgKFVLKSBMdGQKKzAwMEY5RCAgICAgKGJhc2UgMTYpCQlEaXNwbGF5TGluayAoVUspIEx0ZAorCQkJCU1vdW50IFBsZWFzYW50IEhvdXNlCisJCQkJTW91bnQgUGxlYXNhbnQKKwkJCQlDYW1icmlkZ2UgQ2FtYnJpZGdlc2hpcmUgQ0IzIDBSTgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBGLTlFICAgKGhleCkJCU11cnJlbGVrdHJvbmlrIEdtYkgKKzAwMEY5RSAgICAgKGJhc2UgMTYpCQlNdXJyZWxla3Ryb25payBHbWJICisJCQkJRmFsa2Vuc3RyYXNzZSAzCisJCQkJT3BwZW53ZWlsZXIgQmFkZW4gV/xydHRlbWJlcmcgNzE1NzAKKwkJCQlHRVJNQU5ZCisKKzAwLTBGLTlGICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDBGOUYgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1BMCAgIChoZXgpCQlDQU5PTiBLT1JFQSBCVVNJTkVTUyBTT0xVVElPTlMgSU5DLgorMDAwRkEwICAgICAoYmFzZSAxNikJCUNBTk9OIEtPUkVBIEJVU0lORVNTIFNPTFVUSU9OUyBJTkMuCisJCQkJNzM2IFdvbnNpLURvbmcKKwkJCQlBbnNhbi1zaSBLeXVuZ2dpLWRvIDQyNS0wOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtQTEgICAoaGV4KQkJR2lnYWJpdCBTeXN0ZW1zIEluYy4KKzAwMEZBMSAgICAgKGJhc2UgMTYpCQlHaWdhYml0IFN5c3RlbXMgSW5jLgorCQkJCUZ1eW9oIFZpZGVvIEJ1aWxkaW5nIDNGCisJCQkJNy0yNSBIaWdhc2hpLUtpYm91Z2Fva2EsIEFzYWhpLUt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjQxLTA4MjYKKwkJCQlKQVBBTgorCiswMC0wRi1BMiAgIChoZXgpCQlEaWdpdGFsIFBhdGggTmV0d29ya3MKKzAwMEZBMiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFBhdGggTmV0d29ya3MKKwkJCQkyNzUgQWlycGFyayBCbHZkCisJCQkJU3VpdGUgNTAwCisJCQkJQ2hpY28gQ0EgOTU5NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUEzICAgKGhleCkJCUFscGhhIE5ldHdvcmtzIEluYy4KKzAwMEZBMyAgICAgKGJhc2UgMTYpCQlBbHBoYSBOZXR3b3JrcyBJbmMuCisJCQkJTm8uOCBMaS1zaGluZyA3dGggUmQuLFNjaWVuY2UtYmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi1BNCAgIChoZXgpCQlTcHJlY2hlciBBdXRvbWF0aW9uIEdtYkgKKzAwMEZBNCAgICAgKGJhc2UgMTYpCQlTcHJlY2hlciBBdXRvbWF0aW9uIEdtYkgKKwkJCQlGcmFuY2tzdHJhc3NlIDUxCisJCQkJTGlueiBPYmVy9nN0ZXJyZWljaCA0MDE4CisJCQkJQVVTVFJJQQorCiswMC0wRi1BNSAgIChoZXgpCQlCV0EgVGVjaG5vbG9neSBHbWJICiswMDBGQTUgICAgIChiYXNlIDE2KQkJQldBIFRlY2hub2xvZ3kgR21iSAorCQkJCUpvaGFubi1LcmFuZS1XZWcgMjEKKwkJCQlNdWVuc3RlciAgNDgxNDkKKwkJCQlHRVJNQU5ZCisKKzAwLTBGLUE2ICAgKGhleCkJCVMyIFNlY3VyaXR5IENvcnBvcmF0aW9uCiswMDBGQTYgICAgIChiYXNlIDE2KQkJUzIgU2VjdXJpdHkgQ29ycG9yYXRpb24KKwkJCQk2IEFiYm90dCBSb2FkCisJCQkJV2VsbGVzbGV5IE1BIDAyNDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1BNyAgIChoZXgpCQlSYXB0b3IgTmV0d29ya3MgVGVjaG5vbG9neQorMDAwRkE3ICAgICAoYmFzZSAxNikJCVJhcHRvciBOZXR3b3JrcyBUZWNobm9sb2d5CisJCQkJNjUgRW50ZXJwcmlzZSBSb2FkCisJCQkJQWxpc28gVmllam8gQ0EgOTI2NTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUE4ICAgKGhleCkJCVBob3RvbWV0cmljcywgSW5jLgorMDAwRkE4ICAgICAoYmFzZSAxNikJCVBob3RvbWV0cmljcywgSW5jLgorCQkJCTM0NDAgRSBCcml0YW5uaWEgRHJpdmUKKwkJCQlUdWNzb24gQVogODU3MDYtNTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtQTkgICAoaGV4KQkJUEMgRmFicmlrCiswMDBGQTkgICAgIChiYXNlIDE2KQkJUEMgRmFicmlrCisJCQkJQnVjaGVuc3RyYXNzZSAxMy0xNQorCQkJCURyZXNkZW4gU2FjaHNlbiAwMTA5NworCQkJCUdFUk1BTlkKKworMDAtMEYtQUEgICAoaGV4KQkJTmV4dXMgVGVjaG5vbG9naWVzCiswMDBGQUEgICAgIChiYXNlIDE2KQkJTmV4dXMgVGVjaG5vbG9naWVzCisJCQkJMTAgTmF0aW9uYWwgQXZlLgorCQkJCUZsZXRjaGVyIE5DIDI4NzMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1BQiAgIChoZXgpCQlLeXVzaHUgRWxlY3Ryb25pY3MgU3lzdGVtcyBJbmMuCiswMDBGQUIgICAgIChiYXNlIDE2KQkJS3l1c2h1IEVsZWN0cm9uaWNzIFN5c3RlbXMgSW5jLgorCQkJCTMtMywgS29uZ28gMi1DaG9tZSwgWWFoYXRhbmlzaGkgV2FyZAorCQkJCUtpdGFreXVzaHUgQ2l0eSBGdWt1b2thIFByZWYuIDgwNy0xMjYzCisJCQkJSkFQQU4KKworMDAtMEYtQUMgICAoaGV4KQkJSUVFRSA4MDIuMTEKKzAwMEZBQyAgICAgKGJhc2UgMTYpCQlJRUVFIDgwMi4xMQorCQkJCTQxMjUgSGlnaGxhbmRlciBQYXJrd2F5CisJCQkJUmljaGZpZWxkIE9oaW8gNDQyODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUFEICAgKGhleCkJCUZNTiBjb21tdW5pY2F0aW9ucyBHbWJICiswMDBGQUQgICAgIChiYXNlIDE2KQkJRk1OIGNvbW11bmljYXRpb25zIEdtYkgKKwkJCQlHcmltbWVsYWxsZWUgNAorCQkJCU5vcmRoYXVzZW4gVGj8cmluZ2VuIDk5NzM0CisJCQkJR0VSTUFOWQorCiswMC0wRi1BRSAgIChoZXgpCQlFMk8gQ29tbXVuaWNhdGlvbnMKKzAwMEZBRSAgICAgKGJhc2UgMTYpCQlFMk8gQ29tbXVuaWNhdGlvbnMKKwkJCQk1MiBTZXJhbmdvb24gTm9ydGggQXZlIDQKKwkJCQkjMDYtMDIgRXZlciBUZWNoIEJ1aWxkaW5nCisJCQkJNTU1ODUzCisJCQkJU0lOR0FQT1JFCisKKzAwLTBGLUFGICAgKGhleCkJCURpYWxvZyBJbmMuCiswMDBGQUYgICAgIChiYXNlIDE2KQkJRGlhbG9nIEluYy4KKwkJCQkxLTQ3LTkKKwkJCQlIaWdhc2hpaWtlYnVrdXJvCisJCQkJVG9zaGltYS1rdSBUb2t5byAxNzAwMDEzCisJCQkJSkFQQU4KKworMDAtMEYtQjAgICAoaGV4KQkJQ29tcGFsIEVsZWN0cm9uaWNzLElOQy4KKzAwMEZCMCAgICAgKGJhc2UgMTYpCQlDb21wYWwgRWxlY3Ryb25pY3MsSU5DLgorCQkJCTU4MSBKdWlrdWFuZyBSb2FkLE5laWh1LAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi1CMSAgIChoZXgpCQlDb2duaW8gSW5jLgorMDAwRkIxICAgICAoYmFzZSAxNikJCUNvZ25pbyBJbmMuCisJCQkJMTAxIE9yY2hhcmQgUmlkZ2UgRHJpdmUKKwkJCQlTdWl0ZSAzNTAKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUIyICAgKGhleCkJCUJyb2FkYmFuZCBQYWNlbmV0IChJbmRpYSkgUHZ0LiBMdGQuCiswMDBGQjIgICAgIChiYXNlIDE2KQkJQnJvYWRiYW5kIFBhY2VuZXQgKEluZGlhKSBQdnQuIEx0ZC4KKwkJCQk3LUIsIFNoYWggSW5kdXN0cmlhbCBFc3RhdGUsIE9mZiBWZWVyYSBEZXNhaSBSb2FkCisJCQkJQW5kaGVyaSBXZXN0CisJCQkJTXVtYmFpIE1haGFyYXNodHJhIDQwMCAwNTMKKwkJCQlJTkRJQQorCiswMC0wRi1CMyAgIChoZXgpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworMDAwRkIzICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1CNCAgIChoZXgpCQlUaW1lc3BhY2UgVGVjaG5vbG9neQorMDAwRkI0ICAgICAoYmFzZSAxNikJCVRpbWVzcGFjZSBUZWNobm9sb2d5CisJCQkJQmxhY2tzdG9uZSBSb2FkCisJCQkJSHVudGluZ2RvbiBDYW1icmlkZ2VzaGlyZSBQRTI5IDZUVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBGLUI1ICAgKGhleCkJCU5FVEdFQVIgSW5jCiswMDBGQjUgICAgIChiYXNlIDE2KQkJTkVUR0VBUiBJbmMKKwkJCQk0NTAwIEdyZWF0IEFtZXJpY2EgUGFya3dheQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1CNiAgIChoZXgpCQlFdXJvcGxleCBUZWNobm9sb2dpZXMKKzAwMEZCNiAgICAgKGJhc2UgMTYpCQlFdXJvcGxleCBUZWNobm9sb2dpZXMKKwkJCQlDbG9uc2hhdWdoIEJ1c2luZXNzICYgVGVjaC4gUGFyaworCQkJCUNsb25zaGF1Z2ggIER1YmxpbiAxNworCQkJCUlSRUxBTkQKKworMDAtMEYtQjcgICAoaGV4KQkJQ2F2aXVtIE5ldHdvcmtzCiswMDBGQjcgICAgIChiYXNlIDE2KQkJQ2F2aXVtIE5ldHdvcmtzCisJCQkJMjYxMCBBdWd1c3RpbmUgRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDYWxpZm9ybmlhIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1COCAgIChoZXgpCQlDYWxsVVJMIEluYy4KKzAwMEZCOCAgICAgKGJhc2UgMTYpCQlDYWxsVVJMIEluYy4KKwkJCQkzRi0xMSwgTm8uIDUwOCBTZWMuICA1LCBDaHVuZy1Ic2lhbyBFLiBSZC4KKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtQjkgICAoaGV4KQkJQWRhcHRpdmUgSW5zdHJ1bWVudHMKKzAwMEZCOSAgICAgKGJhc2UgMTYpCQlBZGFwdGl2ZSBJbnN0cnVtZW50cworCQkJCTU3NyBNYWluIFN0cmVldAorCQkJCUh1ZHNvbiBNQSAwMTc0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtQkEgICAoaGV4KQkJVGV2ZWJveCBBQgorMDAwRkJBICAgICAoYmFzZSAxNikJCVRldmVib3ggQUIKKwkJCQlCZXJnbGluZHMgdmFnIDEzCisJCQkJd2FybWRvICBTLTEzOTAwCisJCQkJU1dFREVOCisKKzAwLTBGLUJCICAgKGhleCkJCU5va2lhIFNpZW1lbnMgTmV0d29ya3MgR21iSCAmIENvLiBLRworMDAwRkJCICAgICAoYmFzZSAxNikJCU5va2lhIFNpZW1lbnMgTmV0d29ya3MgR21iSCAmIENvLiBLRworCQkJCVdlcm5lci12b24tU2llbWVucyBTdHIuIDItNgorCQkJCUJydWNoc2FsIEJhZGVuLVf8cnRlbWJlcmcgNzY2NDYKKwkJCQlHRVJNQU5ZCisKKzAwLTBGLUJDICAgKGhleCkJCU9ua2V5IFRlY2hub2xvZ2llcywgSW5jLgorMDAwRkJDICAgICAoYmFzZSAxNikJCU9ua2V5IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTc4MCBNb250YWd1ZSBFeHByZXNzd2F5LCBJbmMuCisJCQkJU3VpdGUgIzMwNgorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1CRCAgIChoZXgpCQlNUlYgQ29tbXVuaWNhdGlvbnMgKE5ldHdvcmtzKSBMVEQKKzAwMEZCRCAgICAgKGJhc2UgMTYpCQlNUlYgQ29tbXVuaWNhdGlvbnMgKE5ldHdvcmtzKSBMVEQKKwkJCQlQLk8gQm94IDYxNAorCQkJCVlva25lYW0gIDIwNjkyCisJCQkJSVNSQUVMCisKKzAwLTBGLUJFICAgKGhleCkJCWUtdy95b3UgSW5jLgorMDAwRkJFICAgICAoYmFzZSAxNikJCWUtdy95b3UgSW5jLgorCQkJCTNGIEZJTkUgQmxkZy4gNi0xNy0xNworCQkJCU1pbmFtaW9vaSwKKwkJCQlTaGluYWdhd2Eta3UsIFRva3lvIDE0MC0wMDEzCisJCQkJSkFQQU4KKworMDAtMEYtQkYgICAoaGV4KQkJREdUIFNwLiB6IG8uby4KKzAwMEZCRiAgICAgKGJhc2UgMTYpCQlER1QgU3AuIHogby5vLgorCQkJCXVsLiBKYXNrb3dhIERvbGluYSAxNQorCQkJCUdkYW5zayAgODAtMjUyCisJCQkJUE9MQU5ECisKKzAwLTBGLUMwICAgKGhleCkJCURFTENPTXAKKzAwMEZDMCAgICAgKGJhc2UgMTYpCQlERUxDT01wCisJCQkJVGVjaG5vbG9naWVsYWFuIDMKKwkJCQlMZXV2ZW4gIEItMzAwMAorCQkJCUJFTEdJVU0KKworMDAtMEYtQzEgICAoaGV4KQkJV0FWRSBDb3Jwb3JhdGlvbgorMDAwRkMxICAgICAoYmFzZSAxNikJCVdBVkUgQ29ycG9yYXRpb24KKwkJCQkzLTI1LTUgQ2hpZG9yaQorCQkJCU9odGEta3UgVG9reW8gMTQ2LTAwODMKKwkJCQlKQVBBTgorCiswMC0wRi1DMiAgIChoZXgpCQlVbml3ZWxsIENvcnBvcmF0aW9uCiswMDBGQzIgICAgIChiYXNlIDE2KQkJVW5pd2VsbCBDb3Jwb3JhdGlvbgorCQkJCTUtMjUsIDMtY2hvbWUsIFRlbm1hLCBLaXRhLWt1CisJCQkJT3Nha2EgIDUzMC0wMDQzCisJCQkJSkFQQU4KKworMDAtMEYtQzMgICAoaGV4KQkJUGFsbVBhbG0gVGVjaG5vbG9neSwgSW5jLgorMDAwRkMzICAgICAoYmFzZSAxNikJCVBhbG1QYWxtIFRlY2hub2xvZ3ksIEluYy4KKwkJCQlTYW1zdW5nLWRvbmcgMTU2LTMsIEdhbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTA5MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi1DNCAgIChoZXgpCQlOU1QgY28uLExURC4KKzAwMEZDNCAgICAgKGJhc2UgMTYpCQlOU1QgY28uLExURC4KKwkJCQk0LTMtMSBTSElOTUlZQUtPREEKKwkJCQlIQU1BTUFUU1UgU0hJWlVPS0EgNDMxLTIxMDMKKwkJCQlKQVBBTgorCiswMC0wRi1DNSAgIChoZXgpCQlLZXlNZWQgTHRkCiswMDBGQzUgICAgIChiYXNlIDE2KQkJS2V5TWVkIEx0ZAorCQkJCUtleU1lZCBIb3VzZQorCQkJCVN0b2NrIFJvYWQKKwkJCQlTb3V0aGVuZCBvbiBTZWEgRXNzZXggU1MyIDVRSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBGLUM2ICAgKGhleCkJCUV1cm9jb20gSW5kdXN0cmllcyBBL1MKKzAwMEZDNiAgICAgKGJhc2UgMTYpCQlFdXJvY29tIEluZHVzdHJpZXMgQS9TCisJCQkJcG9yc3ZlaiAyCisJCQkJQWFsYm9yZyBOViBESy05MjAwCisJCQkJREVOTUFSSworCiswMC0wRi1DNyAgIChoZXgpCQlEaW9uaWNhIFImRCBMdGQuCiswMDBGQzcgICAgIChiYXNlIDE2KQkJRGlvbmljYSBSJkQgTHRkLgorCQkJCUJvbG9nbmEgQ2VudHJlLCBGMTEKKwkJCQlNb3N0YSBUZWNobm9wYXJrCisJCQkJTW9zdGEgIE1TVDEzCisJCQkJTUFMVEEKKworMDAtMEYtQzggICAoaGV4KQkJQ2hhbnRyeSBOZXR3b3JrcworMDAwRkM4ICAgICAoYmFzZSAxNikJCUNoYW50cnkgTmV0d29ya3MKKwkJCQkxOTAwIE1pbm5lc290YSBDb3VydAorCQkJCVN1aXRlIDEyNQorCQkJCU1pc3Npc3NhdWdhIE9udGFyaW8gTDVOIDNDOQorCQkJCUNBTkFEQQorCiswMC0wRi1DOSAgIChoZXgpCQlBbGxuZXQgR21iSAorMDAwRkM5ICAgICAoYmFzZSAxNikJCUFsbG5ldCBHbWJICisJCQkJTWFpc3RyLiAyCisJCQkJR2VybWVyaW5nIEJhdmFyaWEgODIxMTAKKwkJCQlHRVJNQU5ZCisKKzAwLTBGLUNBICAgKGhleCkJCUEtSklOIFRFQ0hMSU5FIENPLCBMVEQKKzAwMEZDQSAgICAgKGJhc2UgMTYpCQlBLUpJTiBURUNITElORSBDTywgTFRECisJCQkJMzI3LTM1CisJCQkJS2FzYW4tRG9uZworCQkJCUt1bWNodW4tS3UgU2VvdWwgMTUzLTgwMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi1DQiAgIChoZXgpCQkzQ29tIEx0ZAorMDAwRkNCICAgICAoYmFzZSAxNikJCTNDb20gTHRkCisJCQkJUGVvcGxlYnVpbGRpbmcgMgorCQkJCVBlb3BsZWJ1aWxkaW5nIEVzdGF0ZSwgTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRi1DQyAgIChoZXgpCQlOZXRvcGlhLCBJbmMuCiswMDBGQ0MgICAgIChiYXNlIDE2KQkJTmV0b3BpYSwgSW5jLgorCQkJCTYwMDEgU2hlbGxtb3VuZCBTdHJlZXQKKwkJCQk0dGggRmxvb3IKKwkJCQlFbWVyeXZpbGxlIENBIDk0NjA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1DRCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMEZDRCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0wRi1DRSAgIChoZXgpCQlLaWt1c3VpIEVsZWN0cm9uaWNzIENvcnAuCiswMDBGQ0UgICAgIChiYXNlIDE2KQkJS2lrdXN1aSBFbGVjdHJvbmljcyBDb3JwLgorCQkJCTEtMS0zLEhpZ2FzaGkgeWFtYXRhCisJCQkJVHN1enVraS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyNC0wMDIzCisJCQkJSkFQQU4KKworMDAtMEYtQ0YgICAoaGV4KQkJRGF0YXdpbmQgUmVzZWFyY2gKKzAwMEZDRiAgICAgKGJhc2UgMTYpCQlEYXRhd2luZCBSZXNlYXJjaAorCQkJCTU1NSBSZW5lLUxldmVzcXVlIFdlc3QKKwkJCQlTdWl0ZSAxMTMwCisJCQkJTW9udHJlYWwgUXVlYmVjIEgyWiAxQjEKKwkJCQlDQU5BREEKKworMDAtMEYtRDAgICAoaGV4KQkJQVNUUkkKKzAwMEZEMCAgICAgKGJhc2UgMTYpCQlBU1RSSQorCQkJCTE4L0YgVG93ZXIgNiwgR2F0ZXdheSwgOSBDYW50b24gUmQKKwkJCQlUU1QsIEtvd2xvb24KKwkJCQlIT05HIEtPTkcKKworMDAtMEYtRDEgICAoaGV4KQkJQXBwbGllZCBXaXJlbGVzcyBJZGVudGlmaWNhdGlvbnMgR3JvdXAsIEluYy4KKzAwMEZEMSAgICAgKGJhc2UgMTYpCQlBcHBsaWVkIFdpcmVsZXNzIElkZW50aWZpY2F0aW9ucyBHcm91cCwgSW5jLgorCQkJCTM4MiBSb3V0ZSA1OSwgU2VjdGlvbiAyOTIKKwkJCQlNb25zZXkgTmV3IFlvcmsgMTA5NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUQyICAgKGhleCkJCUVXQSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEZEMiAgICAgKGJhc2UgMTYpCQlFV0EgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTM4NzMgUGFyayBDZW50ZXIgUm9hZAorCQkJCUhlcm5kb24gVkEgMjAxNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUQzICAgKGhleCkJCURpZ2l1bQorMDAwRkQzICAgICAoYmFzZSAxNikJCURpZ2l1bQorCQkJCTQ0NSBKYW4gRGF2aXMgRHJpdmUgTlcKKwkJCQlTdWl0ZSAxMDAKKwkJCQlIdW50c3ZpbGxlIEFMIDM1ODA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1ENCAgIChoZXgpCQlTb3VuZGNyYWZ0CiswMDBGRDQgICAgIChiYXNlIDE2KQkJU291bmRjcmFmdAorCQkJCUNyYW5ib3JuZSBIb3VzZQorCQkJCUNyYW5ib3JuZSBSb2FkCisJCQkJUG90dGVycyBCYXIgSGVydGZvcmRzaGlyZSBFTjYgM0pOCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEYtRDUgICAoaGV4KQkJU2Nod2VjaGF0IC0gUklTRQorMDAwRkQ1ICAgICAoYmFzZSAxNikJCVNjaHdlY2hhdCAtIFJJU0UKKwkJCQlBbSBDb25jb3JkZSBQYXJrIDJBCisJCQkJU2Nod2VjaGF0ICAyMzIwCisJCQkJQVVTVFJJQQorCiswMC0wRi1ENiAgIChoZXgpCQlTYXJvdGVjaCBDby4sIEx0ZAorMDAwRkQ2ICAgICAoYmFzZSAxNikJCVNhcm90ZWNoIENvLiwgTHRkCisJCQkJSGFuR2FuZyBCbGRnLCAxNTQ5LTcsIFNlb2Noby1Eb25nLAorCQkJCVNlb2Noby1rdSwKKwkJCQlTZW91bCAgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi1ENyAgIChoZXgpCQlIYXJtYW4gTXVzaWMgR3JvdXAKKzAwMEZENyAgICAgKGJhc2UgMTYpCQlIYXJtYW4gTXVzaWMgR3JvdXAKKwkJCQk4NzYwIFNhbmR5IFBhcmt3YXkKKwkJCQlTYW5keSBVdGFoIDg0MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1EOCAgIChoZXgpCQlGb3JjZSwgSW5jLgorMDAwRkQ4ICAgICAoYmFzZSAxNikJCUZvcmNlLCBJbmMuCisJCQkJODI1IFBhcmsgU3RyZWV0CisJCQkJQ2hyaXN0aWFuc2J1cmcgVmEgMjQwNzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUQ5ICAgKGhleCkJCUZsZXhEU0wgVGVsZWNvbW11bmljYXRpb25zIEFHCiswMDBGRDkgICAgIChiYXNlIDE2KQkJRmxleERTTCBUZWxlY29tbXVuaWNhdGlvbnMgQUcKKwkJCQlIYXVzIHp1bSBFbmdlbAorCQkJCUFsdGVuZG9yZiBTY2h3eXogODg1MgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBGLURBICAgKGhleCkJCVlBWkFLSSBDT1JQT1JBVElPTgorMDAwRkRBICAgICAoYmFzZSAxNikJCVlBWkFLSSBDT1JQT1JBVElPTgorCQkJCTE1MDAgTUlTSFVLVQorCQkJCVNVU09OTy1DSVRZIFNISVpVT0tBLVBSRUYgNDEwLTExOTQKKwkJCQlKQVBBTgorCiswMC0wRi1EQiAgIChoZXgpCQlXZXN0ZWxsIFRlY2hub2xvZ2llcworMDAwRkRCICAgICAoYmFzZSAxNikJCVdlc3RlbGwgVGVjaG5vbG9naWVzCisJCQkJNzUwIE4uIENvbW1vbnMgRHIuCisJCQkJQXVyb3JhIElMIDYwNTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1EQyAgIChoZXgpCQlVZWRhIEphcGFuICBSYWRpbyBDby4sIEx0ZC4KKzAwMEZEQyAgICAgKGJhc2UgMTYpCQlVZWRhIEphcGFuICBSYWRpbyBDby4sIEx0ZC4KKwkJCQlGdW1paXJpIDItMTAtMTkKKwkJCQlVZWRhIGNpdHkgTmFnYW5vIHByZWZlY3R1cmUgMzg2LTg2MDgKKwkJCQlKQVBBTgorCiswMC0wRi1ERCAgIChoZXgpCQlTT1JESU4gQUIKKzAwMEZERCAgICAgKGJhc2UgMTYpCQlTT1JESU4gQUIKKwkJCQlSb3JsYWdnYXJ2YWdlbiA4CisJCQkJVmFybmFtbyBTbWFsYW5kIFMtMzMxIDM0CisJCQkJU1dFREVOCisKKzAwLTBGLURFICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDBGREUgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworMDAtMEYtREYgICAoaGV4KQkJU09MT01PTiBUZWNobm9sb2d5IENvcnAuCiswMDBGREYgICAgIChiYXNlIDE2KQkJU09MT01PTiBUZWNobm9sb2d5IENvcnAuCisJCQkJTm8uNDIsU2luZyBaaG9uZyBSZC4sTmVpIEh1IERpc3QuLAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi1FMCAgIChoZXgpCQlOQ29tcHV0aW5nIENvLixMdGQuCiswMDBGRTAgICAgIChiYXNlIDE2KQkJTkNvbXB1dGluZyBDby4sTHRkLgorCQkJCTZ0aCBGbCwgSkVJLVBsYXR6IEIvRAorCQkJCTE0MjMtNiwgR3dhbnlhbmcxLURvbmcsIERvbmdhbi1HdQorCQkJCVNlb3VsIEdhc2FuLWRvbmcgR2V1bWNoZW9uLUd1IDQ1OS0xMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi1FMSAgIChoZXgpCQlJRCBESUdJVEFMIENPUlBPUkFUSU9OCiswMDBGRTEgICAgIChiYXNlIDE2KQkJSUQgRElHSVRBTCBDT1JQT1JBVElPTgorCQkJCTZ0aCBGbC4sIE1pcmFlIEJsZGcuLCAyNzEtMSwgU2VvaHl1bi1kb25nLCBCdW5kYW5nLWt1LCBTdW5nbmFtLXNpLCBLZW9uZ2tpLWRvLCBTb3V0aCBLb3JlYQorCQkJCVN1bmduYW0tU2kgS2VvbmdraS1kbyA0NjMtMDUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLUUyICAgKGhleCkJCUhhbmd6aG91IEgzQyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDBGRTIgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgSDNDIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlPcmllbnRhbCBFbGVjdHJvbmljIEJsZC4sIE5PLjIsQ2h1YW5neWUgUm9hZAorCQkJCVNoYW5nLURpIEluZm9ybWFpdG9uIEluZHVzdHJ5IEJhc2UsCisJCQkJSGFpLURpYW4gRGlzdHJpY3QgQmVpamluZyAxMDAwODUKKwkJCQlDSElOQQorCiswMC0wRi1FMyAgIChoZXgpCQlEYW1tIENlbGx1bGFyIFN5c3RlbXMgQS9TCiswMDBGRTMgICAgIChiYXNlIDE2KQkJRGFtbSBDZWxsdWxhciBTeXN0ZW1zIEEvUworCQkJCU1vZWxsZWdhZGUgNjgKKwkJCQlTb2VuZGVyYm9yZyAgRGstNjQwMAorCQkJCURFTk1BUksKKworMDAtMEYtRTQgICAoaGV4KQkJUGFudGVjaCBDby4sTHRkCiswMDBGRTQgICAgIChiYXNlIDE2KQkJUGFudGVjaCBDby4sTHRkCisJCQkJU2hpbnNvbmcgQi9EIDNGLCAyNS0xMiwKKwkJCQlZZW91aWRvLURvbmcsCisJCQkJWW91bmdkZXVuZ3BvLUdVIFNlb3VsIDE1MC03MTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtRTUgICAoaGV4KQkJTUVSQ1VSWSBTRUNVUklUWSBDT1JQT1JBVElPTgorMDAwRkU1ICAgICAoYmFzZSAxNikJCU1FUkNVUlkgU0VDVVJJVFkgQ09SUE9SQVRJT04KKwkJCQkyMzU1IE1JUkEgTUFSIEFWRS4KKwkJCQlMT05HIEJFQUNIIENBIDkwODE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1FNiAgIChoZXgpCQlNQlRlY2ggU3lzdGVtcywgSW5jLgorMDAwRkU2ICAgICAoYmFzZSAxNikJCU1CVGVjaCBTeXN0ZW1zLCBJbmMuCisJCQkJNDEyIDFzdCBBdmUgU0UKKwkJCQlTdWl0ZSAxMDAKKwkJCQlDdWxsbWFuIEFsYWJhbWEgMzUwNTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUU3ICAgKGhleCkJCUx1dHJvbiBFbGVjdHJvbmljcyBDby4sIEluYy4KKzAwMEZFNyAgICAgKGJhc2UgMTYpCQlMdXRyb24gRWxlY3Ryb25pY3MgQ28uLCBJbmMuCisJCQkJNzIwMCBTdXRlciBSZC4KKwkJCQlDb29wZXJzYnVyZyBQQSAxODAzNi0xMjk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1FOCAgIChoZXgpCQlMb2JvcywgSW5jLgorMDAwRkU4ICAgICAoYmFzZSAxNikJCUxvYm9zLCBJbmMuCisJCQkJVSZUIEJsZGcgM0YsIDEtMi0zIFNhcnVnYWt1LWNobywgQ2hpeW9kYS1rdSwKKwkJCQlUb2t5byAgMTAxLTAwNjQKKwkJCQlKQVBBTgorCiswMC0wRi1FOSAgIChoZXgpCQlHVyBURUNITk9MT0dJRVMgQ08uLExURC4KKzAwMEZFOSAgICAgKGJhc2UgMTYpCQlHVyBURUNITk9MT0dJRVMgQ08uLExURC4KKwkJCQlOby4zOCBTaGFuZ2RpIFhpbHUsSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTBGLUVBICAgKGhleCkJCUdpZ2EtQnl0ZSBUZWNobm9sb2d5IENvLixMVEQuCiswMDBGRUEgICAgIChiYXNlIDE2KQkJR2lnYS1CeXRlIFRlY2hub2xvZ3kgQ28uLExURC4KKwkJCQlOby4yMTUsTmFuLVBpbmcgUm9hZCxQaW5nLUplbiBDaXR5LAorCQkJCVBpbmctSmVuIFRhb3l1YW4gMzI0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi1FQiAgIChoZXgpCQlDeWxvbiBDb250cm9scworMDAwRkVCICAgICAoYmFzZSAxNikJCUN5bG9uIENvbnRyb2xzCisJCQkJQ2xvbnNoYXVnaCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCUNsb25zaGF1Z2gKKwkJCQlEdWJsaW4gMTcgIAorCQkJCUlSRUxBTkQKKworMDAtMEYtRUMgICAoaGV4KQkJQXJrdXMgSW5jLgorMDAwRkVDICAgICAoYmFzZSAxNikJCUFya3VzIEluYy4KKwkJCQkzLTggQ2h1by1jaG8KKwkJCQlPa2F5YW1hICA3MDAtMDgzNgorCQkJCUpBUEFOCisKKzAwLTBGLUVEICAgKGhleCkJCUFuYW0gRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzAwMEZFRCAgICAgKGJhc2UgMTYpCQlBbmFtIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJNjQ1IFN1bmdrb2stZG9uZworCQkJCURhbndvbi1ndQorCQkJCUFuc2FuLWNpdHkgS3l1bmdraS1kbyA0MjUtODM0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLUVFICAgKGhleCkJCVhUZWMsIEluY29ycG9yYXRlZAorMDAwRkVFICAgICAoYmFzZSAxNikJCVhUZWMsIEluY29ycG9yYXRlZAorCQkJCTU3NzUgQmx1ZSBMYWdvb24gRHJpdmUKKwkJCQlTdWl0ZSAyODAKKwkJCQlNaWFtaSBGbG9yaWRhIDMzMTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1FRiAgIChoZXgpCQlUaGFsZXMgZS1UcmFuc2FjdGlvbnMgR21iSAorMDAwRkVGICAgICAoYmFzZSAxNikJCVRoYWxlcyBlLVRyYW5zYWN0aW9ucyBHbWJICisJCQkJS29ucmFkLVp1c2UtU3RyYd9lIDE5LTIxCisJCQkJQmFkIEhlcnNmZWxkIEhlc3NlbiAzNjI1MQorCQkJCUdFUk1BTlkKKworMDAtMEYtRjAgICAoaGV4KQkJU3VucmF5IENvLiBMdGQuCiswMDBGRjAgICAgIChiYXNlIDE2KQkJU3VucmF5IENvLiBMdGQuCisJCQkJT3Nhd2EyLTUtNSBNaXRha2EKKwkJCQlUb2t5byAxODEtMDAxNQorCQkJCUpBUEFOCisKKzAwLTBGLUYxICAgKGhleCkJCW5leC1HIFN5c3RlbXMgUHRlLkx0ZAorMDAwRkYxICAgICAoYmFzZSAxNikJCW5leC1HIFN5c3RlbXMgUHRlLkx0ZAorCQkJCTI1IEthbGxhbmcgQXZlCisJCQkJIzA3LTA1CisJCQkJMzM5NDE2CisJCQkJU0lOR0FQT1JFCisKKzAwLTBGLUYyICAgKGhleCkJCUxvdWQgVGVjaG5vbG9naWVzIEluYy4KKzAwMEZGMiAgICAgKGJhc2UgMTYpCQlMb3VkIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMTYyMjAgV29vZC1SZWQgUmQuIE5FCisJCQkJV29vZGludmlsbGUgV0EgOTgwNzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUYzICAgKGhleCkJCUp1bmcgTXlvdW5nIENvbW11bmljYXRpb25zJlRlY2hub2xvZ3kKKzAwMEZGMyAgICAgKGJhc2UgMTYpCQlKdW5nIE15b3VuZyBDb21tdW5pY2F0aW9ucyZUZWNobm9sb2d5CisJCQkJMXRoIEZMLiwgRG9uZyBJTCBCbGRnLjEwNyBZYW5namFlLURvbmcKKwkJCQlTZW9jaG8tS3UgU2VvdWwgMTM3LTEzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi1GNCAgIChoZXgpCQlHdW50ZXJtYW5uICYgRHJ1bmNrIEdtYkgKKzAwMEZGNCAgICAgKGJhc2UgMTYpCQlHdW50ZXJtYW5uICYgRHJ1bmNrIEdtYkgKKwkJCQlEb3J0bXVuZGVyIFN0ci4gNGEKKwkJCQlXaWxuc2RvcmYgTlJXIDU3MjM0CisJCQkJR0VSTUFOWQorCiswMC0wRi1GNSAgIChoZXgpCQlHTiZTIGNvbXBhbnkKKzAwMEZGNSAgICAgKGJhc2UgMTYpCQlHTiZTIGNvbXBhbnkKKwkJCQkzMDEgQW5zYW4gUy9XIGNlbnRlciwgNjQzLTcgd29uZ29rLWRvbmcKKwkJCQlBbnNhbiBjaXR5IEd5ZW9uZ2dpLWRvIDQyNS0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtRjYgICAoaGV4KQkJRGFyZm9uIEVsZWN0cm9uaWNzIENvcnAuCiswMDBGRjYgICAgIChiYXNlIDE2KQkJRGFyZm9uIEVsZWN0cm9uaWNzIENvcnAuCisJCQkJMzEsIExhbmUxNywgWmloY2lhbmcgTi4gUm9hZAorCQkJCUd1ZWlzaGFuCisJCQkJVGFveXVhbiAgMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi1GNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBGRjcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERSLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1GOCAgIChoZXgpCQlDaXNjbyAgU3lzdGVtcworMDAwRkY4ICAgICAoYmFzZSAxNikJCUNpc2NvICBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUY5ICAgKGhleCkJCVZhbGNyZXRlYywgSW5jLgorMDAwRkY5ICAgICAoYmFzZSAxNikJCVZhbGNyZXRlYywgSW5jLgorCQkJCUJ5dWNrc2FuIERpZ2l0YWwgVmFsbGV5IElJIDE1RgorCQkJCTQ4MS0xMCwgR2FzYW4tRG9uZywgR2V1bWNoZW9uLUd1CisJCQkJU2VvdWwgIDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtRkEgICAoaGV4KQkJT3B0aW5lbCBTeXN0ZW1zLCBJbmMuCiswMDBGRkEgICAgIChiYXNlIDE2KQkJT3B0aW5lbCBTeXN0ZW1zLCBJbmMuCisJCQkJNjgzNSBEZWVycGF0aCBSZC4KKwkJCQlFbGtyaWRnZSBNRCAyMTA3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtRkIgICAoaGV4KQkJTmlwcG9uIERlbnNvIEluZHVzdHJ5IENvLiwgTHRkLgorMDAwRkZCICAgICAoYmFzZSAxNikJCU5pcHBvbiBEZW5zbyBJbmR1c3RyeSBDby4sIEx0ZC4KKwkJCQkzLTE0LTE5CisJCQkJU2hpYmF1cmEsIE1pbmF0by1rdSBUb2t5bywgMTA4LTg1NjAKKwkJCQlKQVBBTgorCiswMC0wRi1GQyAgIChoZXgpCQlNZXJpdCBMaS1MaW4gRW50LgorMDAwRkZDICAgICAoYmFzZSAxNikJCU1lcml0IExpLUxpbiBFbnQuCisJCQkJTm8uIDIwIFd1LUxvbmcgNiBSZC4KKwkJCQlXdS1LdSBUYWlwZWkgMjQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi1GRCAgIChoZXgpCQlHbG9yeXRlayBOZXR3b3JrIEluYy4KKzAwMEZGRCAgICAgKGJhc2UgMTYpCQlHbG9yeXRlayBOZXR3b3JrIEluYy4KKwkJCQk1Ri4tMywgTm8uMTYsIFNlYy4gMSwgRG9uZ2RhIFJkLiwKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLUZFICAgKGhleCkJCUctUFJPIENPTVBVVEVSCiswMDBGRkUgICAgIChiYXNlIDE2KQkJRy1QUk8gQ09NUFVURVIKKwkJCQlmaXJzdCBhcnJhbmdlIEMgWWluZ0h1IGluZHVzdHJpYWwgZXN0YXRlIFFpbmdYaSBjb3VudHJ5IERvbmdHdWFuIGNpdHkKKwkJCQlEb25nR3VhbiBHdWFuZ0RvbmcgNTIzNjQ4CisJCQkJQ0hJTkEKKworMDAtMEYtRkYgICAoaGV4KQkJQ29udHJvbDQKKzAwMEZGRiAgICAgKGJhc2UgMTYpCQlDb250cm9sNAorCQkJCTExNzM0IFMuIEVsZWN0aW9uIERyaXZlCisJCQkJRHJhcGVyIFVUIDg0MDIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0wMCAgIChoZXgpCQlDQUJMRSBURUxFVklTSU9OIExBQk9SQVRPUklFUywgSU5DLgorMDAxMDAwICAgICAoYmFzZSAxNikJCUNBQkxFIFRFTEVWSVNJT04gTEFCT1JBVE9SSUVTLCBJTkMuCisJCQkJODU4IENvYWwgQ3JlZWsgQ2lyY2xlCisJCQkJTG91aXN2aWxsZSBDTyA4MDAyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMDEgICAoaGV4KQkJQ2l0ZWwKKzAwMTAwMSAgICAgKGJhc2UgMTYpCQlDaXRlbAorCQkJCUxvdWdoYm9yb3VnaCBJbm5vdmF0aW9uIENlbnRyZQorCQkJCUVwaW5hbCBXYXkKKwkJCQlMb3VnaGJvcm91Z2ggIExFMTEgM0VICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTAtMDIgICAoaGV4KQkJQUNUSUEKKzAwMTAwMiAgICAgKGJhc2UgMTYpCQlBQ1RJQQorCQkJCTI1IENIRU1JTiBERSBQT1VWT1VSVklMTEUKKwkJCQkzMTQzMiBUT1VMT1VTRSwgIENFREVYIDA0ICAKKwkJCQlGUkFOQ0UKKworMDAtMTAtMDMgICAoaGV4KQkJSU1BVFJPTiwgSU5DLgorMDAxMDAzICAgICAoYmFzZSAxNikJCUlNQVRST04sIElOQy4KKwkJCQkzODkgT1lTVEVSIFBPSU5UIEJMVkQuCisJCQkJU08uIFNBTiBGUkFOQ0lTQ08gQ0EgOTQwODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTA0ICAgKGhleCkJCVRIRSBCUkFOVExFWSBDT0lMRSBDT01QQU5ZLElOQworMDAxMDA0ICAgICAoYmFzZSAxNikJCVRIRSBCUkFOVExFWSBDT0lMRSBDT01QQU5ZLElOQworCQkJCTU0NSBSRVNFQVJDSCBEUklWRQorCQkJCUFUSEVOUyBHQSAzMDYwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMDUgICAoaGV4KQkJVUVDIENPTU1FUkNJQUwKKzAwMTAwNSAgICAgKGJhc2UgMTYpCQlVRUMgQ09NTUVSQ0lBTAorCQkJCVAuTy4gQk9YIDU0LAorCQkJCU1ULiBFREdFQ09NQkUKKwkJCQk0MzAwIERVUkJBTiAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTEwLTA2ICAgKGhleCkJCVRoYWxlcyBDb250YWN0IFNvbHV0aW9ucyBMdGQuCiswMDEwMDYgICAgIChiYXNlIDE2KQkJVGhhbGVzIENvbnRhY3QgU29sdXRpb25zIEx0ZC4KKwkJCQlUb2xiYXIgV2F5CisJCQkJU291dGhhbXB0b24sIFNPMzAgMlpQICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMC0wNyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDEwMDcgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUgICBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTA4ICAgKGhleCkJCVZJRU5OQSBTWVNURU1TIENPUlBPUkFUSU9OCiswMDEwMDggICAgIChiYXNlIDE2KQkJVklFTk5BIFNZU1RFTVMgQ09SUE9SQVRJT04KKwkJCQk2NjUxIEZSQVNFUldPT0QgUExBQ0UKKwkJCQlTVUlURSAjMjUwCisJCQkJUklDSE1PTkQsIEIuQy4gVjZXIDFKMyAgCisJCQkJQ0FOQURBCisKKzAwLTEwLTA5ICAgKGhleCkJCUhPUk8gUVVBUlRaCiswMDEwMDkgICAgIChiYXNlIDE2KQkJSE9STyBRVUFSVFoKKwkJCQlaLkkuIFJPVVRFIERFIE5JT1JUCisJCQkJODUyMDAgLSBGT05URU5BWSBMRSBDT01URSAgCisJCQkJRlJFTkNIIEdVSUFOQQorCiswMC0xMC0wQSAgIChoZXgpCQlXSUxMSUFNUyBDT01NVU5JQ0FUSU9OUyBHUk9VUAorMDAxMDBBICAgICAoYmFzZSAxNikJCVdJTExJQU1TIENPTU1VTklDQVRJT05TIEdST1VQCisJCQkJQURWQU5DRUQgVEVDSE5PTE9HSUVTCisJCQkJMTExIEVBU1QgRklSU1QKKwkJCQlUVUxTQSBPSyA3NDEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMEIgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAxMDBCICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFICBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTBDICAgKGhleCkJCUlUTyBDTy4sIExURC4KKzAwMTAwQyAgICAgKGJhc2UgMTYpCQlJVE8gQ08uLCBMVEQuCisJCQkJOC0yIE1JWUFOT1NISVRBLUNITworCQkJCUhJUkFLQVRBLUNJVFksIE9TQUtBICAKKwkJCQlKQVBBTgorCiswMC0xMC0wRCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDEwMEQgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFIuLVNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMEUgICAoaGV4KQkJTUlDUk8gTElORUFSIENPUE9SQVRJT04KKzAwMTAwRSAgICAgKGJhc2UgMTYpCQlNSUNSTyBMSU5FQVIgQ09QT1JBVElPTgorCQkJCTIwOTIgQ09OQ09VUlNFIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTBGICAgKGhleCkJCUlORFVTVFJJQUwgQ1BVIFNZU1RFTVMKKzAwMTAwRiAgICAgKGJhc2UgMTYpCQlJTkRVU1RSSUFMIENQVSBTWVNURU1TCisJCQkJMTExLUQgVy4gRFlFUiBST0FECisJCQkJU0FOVEEgQU5BIENBIDkyNzA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0xMCAgIChoZXgpCQlJTklUSU8gQ09SUE9SQVRJT04KKzAwMTAxMCAgICAgKGJhc2UgMTYpCQlJTklUSU8gQ09SUE9SQVRJT04KKwkJCQkyMTg4IEIgREVMIEZSQU5DTyBTVFJFRVQKKwkJCQlTQU4gSk9TRSBDQSA5NTExOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMTEgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAxMDExICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMTIgICAoaGV4KQkJUFJPQ0VTU09SIFNZU1RFTVMgKEkpIFBWVCBMVEQKKzAwMTAxMiAgICAgKGJhc2UgMTYpCQlQUk9DRVNTT1IgU1lTVEVNUyAoSSkgUFZUIExURAorCQkJCTI0IFJJQ0hNT05EIFJPQUQKKwkJCQlCQU5HQUxPUkUgNTYwIDAyNSAgCisJCQkJSU5ESUEKKworMDAtMTAtMTMgICAoaGV4KQkJS29udHJvbiBBbWVyaWNhLCBJbmMuCiswMDEwMTMgICAgIChiYXNlIDE2KQkJS29udHJvbiBBbWVyaWNhLCBJbmMuCisJCQkJMTQxMTggU3Rvd2UgRHJpdmUKKwkJCQlQb3dheSwgQ0EgOTIwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMTQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAxMDE0ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMTUgICAoaGV4KQkJT09tb24gSW5jLgorMDAxMDE1ICAgICAoYmFzZSAxNikJCU9PbW9uIEluYy4KKwkJCQlQTyBCT1ggODI0MQorCQkJCUNPQlVSRyBPUiA5NzQwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMTYgICAoaGV4KQkJVC5TUVdBUkUKKzAwMTAxNiAgICAgKGJhc2UgMTYpCQlULlNRV0FSRQorCQkJCTYsIFBBUkMgQVJJQU5FCisJCQkJSU1NRVVCTEUgTUVSQ1VSRQorCQkJCTc4Mjg0IEdVWUFOQ09VUlQgQ0VERVggIAorCQkJCUZSQU5DRQorCiswMC0xMC0xNyAgIChoZXgpCQlCb3NjaCBBY2Nlc3MgU3lzdGVtcyBHbWJICiswMDEwMTcgICAgIChiYXNlIDE2KQkJQm9zY2ggQWNjZXNzIFN5c3RlbXMgR21iSAorCQkJCUNoYXJsb3R0ZW5idXJnZXIgQWxsZWUgNTAgICAgICAgICAgICAKKwkJCQlBQUNIRU4gICAgRC01MjA2OCAKKwkJCQlHRVJNQU5ZCisKKzAwLTEwLTE4ICAgKGhleCkJCUJST0FEQ09NIENPUlBPUkFUSU9OCiswMDEwMTggICAgIChiYXNlIDE2KQkJQlJPQURDT00gQ09SUE9SQVRJT04KKwkJCQkxNjIxNSBBTFRPTiBQQVJLV0FZCisJCQkJUC5PLiBCT1ggNTcwMTMKKwkJCQlJUlZJTkUgQ0EgOTI2MTktNzAxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMTkgICAoaGV4KQkJU0lST05BIERFTlRBTCBTWVNURU1TIEdtYkggJiBDby4gS0cKKzAwMTAxOSAgICAgKGJhc2UgMTYpCQlTSVJPTkEgREVOVEFMIFNZU1RFTVMgR21iSCAmIENvLiBLRworCQkJCUZBQlJJS1NUUkFTU0UgMzEKKwkJCQk2NDYyNSBCRU5TSEVJTSAgCisJCQkJR0VSTUFOWQorCiswMC0xMC0xQSAgIChoZXgpCQlQaWN0dXJlVGVsIENvcnAuCiswMDEwMUEgICAgIChiYXNlIDE2KQkJUGljdHVyZVRlbCBDb3JwLgorCQkJCTEwMCBNSU5VVEVNQU4gUk9BRCwgTVM2NDEKKwkJCQlBTkRPVkVSIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0xQiAgIChoZXgpCQlDT1JORVQgVEVDSE5PTE9HWSwgSU5DLgorMDAxMDFCICAgICAoYmFzZSAxNikJCUNPUk5FVCBURUNITk9MT0dZLCBJTkMuCisJCQkJN0YtNCwgTk8uIDQ2IENIVU5HIFNIQU4gTi5ST0FECisJCQkJU0VDLiAyLCBUQUlQRUkgIAorCQkJCVRBSklLSVNUQU4KKworMDAtMTAtMUMgICAoaGV4KQkJT0hNIFRFQ0hOT0xPR0lFUyBJTlRMLCBMTEMKKzAwMTAxQyAgICAgKGJhc2UgMTYpCQlPSE0gVEVDSE5PTE9HSUVTIElOVEwsIExMQworCQkJCTQgRVhFQ1VUSVZFIENJUkNMRSwgU3VpdGUgMTg1CisJCQkJSVJWSU5FIENBIDkyNjE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0xRCAgIChoZXgpCQlXSU5CT05EIEVMRUNUUk9OSUNTIENPUlAuCiswMDEwMUQgICAgIChiYXNlIDE2KQkJV0lOQk9ORCBFTEVDVFJPTklDUyBDT1JQLgorCQkJCU5PLiA0LCBDUkVBVElPTiBSRC4gSUlJCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOIENIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC0xRSAgIChoZXgpCQlNQVRTVVNISVRBIEVMRUNUUk9OSUMgSU5TVFJVTUVOVFMgQ09SUC4KKzAwMTAxRSAgICAgKGJhc2UgMTYpCQlNQVRTVVNISVRBIEVMRUNUUk9OSUMgSU5TVFJVTUVOVFMgQ09SUC4KKwkJCQkyMy05IEtJWU9IQVJBIElORFVTVFJJQUwgUEFSSworCQkJCVVUU1VOT01JWUEgVG9jaGlnaSAzMjEtMzIgIAorCQkJCUpBUEFOCisKKzAwLTEwLTFGICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTAxRiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUi4KKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0yMCAgIChoZXgpCQlIYW5kIEhlbGQgUHJvZHVjdHMgSW5jCiswMDEwMjAgICAgIChiYXNlIDE2KQkJSGFuZCBIZWxkIFByb2R1Y3RzIEluYworCQkJCTcwMCBWaXNpb25zIERyaXZlCisJCQkJU2thbmVhdGVsZXMgRmFsbHMgTlkgMTMxNTMtMDIwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMjEgICAoaGV4KQkJRU5DQU5UTyBORVRXT1JLUywgSU5DLgorMDAxMDIxICAgICAoYmFzZSAxNikJCUVOQ0FOVE8gTkVUV09SS1MsIElOQy4KKwkJCQkyOTUzIEJVTktFUiBISUxMIExBTkUKKwkJCQlTVUlURSAjNDAwCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTIyICAgKGhleCkJCVNhdENvbSBNZWRpYSBDb3Jwb3JhdGlvbgorMDAxMDIyICAgICAoYmFzZSAxNikJCVNhdENvbSBNZWRpYSBDb3Jwb3JhdGlvbgorCQkJCTMyNTUtNyBTQ09UVCBCTFZELgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0yMyAgIChoZXgpCQlOZXR3b3JrIEVxdWlwbWVudCBUZWNobm9sb2dpZXMKKzAwMTAyMyAgICAgKGJhc2UgMTYpCQlOZXR3b3JrIEVxdWlwbWVudCBUZWNobm9sb2dpZXMKKwkJCQk2OTAwIFBhc2VvIFBhZHJlIFBhcmt3YXkKKwkJCQlGcmVlbW9udCBDQSA5NDU1NS0zNjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0yNCAgIChoZXgpCQlOQUdPWUEgRUxFQ1RSSUMgV09SS1MgQ08uLCBMVEQKKzAwMTAyNCAgICAgKGJhc2UgMTYpCQlOQUdPWUEgRUxFQ1RSSUMgV09SS1MgQ08uLCBMVEQKKwkJCQkyOS0xIFNISU5PREEsIE1JV0EtQ0hPCisJCQkJQU1BLUdVTiwgQUlDSEkgNDkwLTEyICAKKwkJCQlKQVBBTgorCiswMC0xMC0yNSAgIChoZXgpCQlHcmF5aGlsbCwgSW5jCiswMDEwMjUgICAgIChiYXNlIDE2KQkJR3JheWhpbGwsIEluYworCQkJCTU2MSBIaWxsZ3JvdmUgQXZlCisJCQkJTGFHcmFuZ2UgSUwgNjA1MjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTI2ICAgKGhleCkJCUFDQ0VMRVJBVEVEIE5FVFdPUktTLCBJTkMuCiswMDEwMjYgICAgIChiYXNlIDE2KQkJQUNDRUxFUkFURUQgTkVUV09SS1MsIElOQy4KKwkJCQkzMTIzOCBWSUEgQ09MSU5BUywgVU5JVAorCQkJCVdFU1RMQUtFIFZJTExBR0UgQ0EgOTEzNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTI3ICAgKGhleCkJCUwtMyBDT01NVU5JQ0FUSU9OUyBFQVNUCiswMDEwMjcgICAgIChiYXNlIDE2KQkJTC0zIENPTU1VTklDQVRJT05TIEVBU1QKKwkJCQlPTkUgRkVERVJBTCBTVFJFRVQgLSBBJkUtM0VTCisJCQkJQ0FNREVOIE5KIDA4MTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0yOCAgIChoZXgpCQlDT01QVVRFUiBURUNITklDQSwgSU5DLgorMDAxMDI4ICAgICAoYmFzZSAxNikJCUNPTVBVVEVSIFRFQ0hOSUNBLCBJTkMuCisJCQkJMy01LTE5IEhJR0FTSElOQUtBIEhBS0FUQS1LVQorCQkJCUZVS1VPS0EtU0kKKwkJCQlGVUtVT0tBICA4MTYgIAorCQkJCUpBUEFOCisKKzAwLTEwLTI5ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTAyOSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTJBICAgKGhleCkJCVpGIE1JQ1JPU1lTVEVNUywgSU5DLgorMDAxMDJBICAgICAoYmFzZSAxNikJCVpGIE1JQ1JPU1lTVEVNUywgSU5DLgorCQkJCTEwNTIgRUxXRUxMIENPVVJUCisJCQkJUEFMTyBBTFRPIENBIDk0MzAzLTQzMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTJCICAgKGhleCkJCVVNQVggREFUQSBTWVNURU1TLCBJTkMuCiswMDEwMkIgICAgIChiYXNlIDE2KQkJVU1BWCBEQVRBIFNZU1RFTVMsIElOQy4KKwkJCQlOTy4gMS0xLCBSJkQgUk9BRCAyCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEwLTJDICAgKGhleCkJCUxhc2F0IE5ldHdvcmtzIEEvUworMDAxMDJDICAgICAoYmFzZSAxNikJCUxhc2F0IE5ldHdvcmtzIEEvUworCQkJCVNrYWxodXNlIDEzCisJCQkJU0stOTI0MCBOaWJlICAKKwkJCQlERU5NQVJLCisKKzAwLTEwLTJEICAgKGhleCkJCUhJVEFDSEkgU09GVFdBUkUgRU5HSU5FRVJJTkcKKzAwMTAyRCAgICAgKGJhc2UgMTYpCQlISVRBQ0hJIFNPRlRXQVJFIEVOR0lORUVSSU5HCisJCQkJNS03OSwgT05PRUNITywgTkFLQS1LVQorCQkJCVlPS09IQU1BIDIzMSAgCisJCQkJSkFQQU4KKworMDAtMTAtMkUgICAoaGV4KQkJTkVUV09SSyBTWVNURU1TICYgVEVDSE5PTE9HSUVTIFBWVC4gTFRELgorMDAxMDJFICAgICAoYmFzZSAxNikJCU5FVFdPUksgU1lTVEVNUyAmIFRFQ0hOT0xPR0lFUyBQVlQuIExURC4KKwkJCQlQTE9UIE5PLiAyLCBDT0NISU4gRVhQT1JUIFBST0NFU1NJTkcgIFpPCisJCQkJS0FLS0FOQUQsIENPQ0hJTiA2ODIgMDMwICAKKwkJCQlJTkRJQQorCiswMC0xMC0yRiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDEwMkYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFIuCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMzAgICAoaGV4KQkJRUlPTiBJbmMuCiswMDEwMzAgICAgIChiYXNlIDE2KQkJRUlPTiBJbmMuCisJCQkJMzIwIE1hcmNoIFJvYWQKKwkJCQlTdWl0ZSA1MDAKKwkJCQlPdHRhd2EgT04gSzJLIDJFMworCQkJCUNBTkFEQQorCiswMC0xMC0zMSAgIChoZXgpCQlPQkpFQ1RJVkUgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMTAzMSAgICAgKGJhc2UgMTYpCQlPQkpFQ1RJVkUgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk3NSBST0NIRVNURVIgQVZFLgorCQkJCVVOSVQgMQorCQkJCVBPUlRTTU9VVEggTkggMDM4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTMyICAgKGhleCkJCUFMVEEgVEVDSE5PTE9HWQorMDAxMDMyICAgICAoYmFzZSAxNikJCUFMVEEgVEVDSE5PTE9HWQorCQkJCTk1MDAgU09VVEggNTAwIFdFU1QgLSBTVEUgIzIxMgorCQkJCVNBTkRZIFVUIDg0MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0zMyAgIChoZXgpCQlBQ0NFU1NMQU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMTAzMyAgICAgKGJhc2UgMTYpCQlBQ0NFU1NMQU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk0NCBBSVJQT1JUIFBBUktXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMzQgICAoaGV4KQkJR05QIENvbXB1dGVycworMDAxMDM0ICAgICAoYmFzZSAxNikJCUdOUCBDb21wdXRlcnMKKwkJCQk1NTUgRS5IdW50aW5ndG9uIERyaXZlCisJCQkJTW9ucm92aWEgQ0EgOTEwMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTM1ICAgKGhleCkJCUVMSVRFR1JPVVAgQ09NUFVURVIgU1lTVEVNUyBDTy4sIExURAorMDAxMDM1ICAgICAoYmFzZSAxNikJCUVMSVRFR1JPVVAgQ09NUFVURVIgU1lTVEVNUyBDTy4sIExURAorCQkJCTZGLCBOTy4gODgsIFNFQy4gNgorCQkJCUNIVU5HIFNIQU4gTi4gUkQuCisJCQkJU2hpaCBMaW4gVEFJUEVJIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtMzYgICAoaGV4KQkJSU5URVItVEVMIElOVEVHUkFURUQgU1lTVEVNUworMDAxMDM2ICAgICAoYmFzZSAxNikJCUlOVEVSLVRFTCBJTlRFR1JBVEVEIFNZU1RFTVMKKwkJCQk3MzAwIFcuIEJPU1RPTiBTVFJFRVQKKwkJCQlDSEFORExFUiBBWiA4NTIyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMzcgICAoaGV4KQkJQ1lRJ3ZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDEwMzcgICAgIChiYXNlIDE2KQkJQ1lRJ3ZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJQ09TTU8gQkxERy4gMTBGLCBOTy4xLTcKKwkJCQlTSElOSlVLVSAxLUNIT01FCisJCQkJU0hJTkpVS1UtS1UsICBUT0tZTyAxNjAgIAorCQkJCUpBUEFOCisKKzAwLTEwLTM4ICAgKGhleCkJCU1JQ1JPIFJFU0VBUkNIIElOU1RJVFVURSwgSU5DLgorMDAxMDM4ICAgICAoYmFzZSAxNikJCU1JQ1JPIFJFU0VBUkNIIElOU1RJVFVURSwgSU5DLgorCQkJCTJGLCAyTC0yLTUgTUlOQU1JIFNISU5BR0FXQQorCQkJCVNISU5BR0FXQS1LVQorCQkJCVRPS1lPICAKKwkJCQlKQVBBTgorCiswMC0xMC0zOSAgIChoZXgpCQlWZWN0cm9uIFN5c3RlbXMgQUcKKzAwMTAzOSAgICAgKGJhc2UgMTYpCQlWZWN0cm9uIFN5c3RlbXMgQUcKKwkJCQlXaWxseS1CcmFuZHQtV2VnIDQxCisJCQkJNDgxNTUgTXVlbnN0ZXIgIAorCQkJCUdFUk1BTlkKKworMDAtMTAtM0EgICAoaGV4KQkJRElBTU9ORCBORVRXT1JLIFRFQ0gKKzAwMTAzQSAgICAgKGJhc2UgMTYpCQlESUFNT05EIE5FVFdPUksgVEVDSAorCQkJCVAuTy4gQk9YIDg0NTI1CisJCQkJR1JFRU5TSURFIDIwMzQgIAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xMC0zQiAgIChoZXgpCQlISVBQSSBORVRXT1JLSU5HIEZPUlVNCiswMDEwM0IgICAgIChiYXNlIDE2KQkJSElQUEkgTkVUV09SS0lORyBGT1JVTQorCQkJCVBPIEJPWCAxMDE3MworCQkJCUFMQlVRVUVSUVVFIE5NIDg3MTg0LTAxNzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTNDICAgKGhleCkJCUlDIEVOU0VNQkxFLCBJTkMuCiswMDEwM0MgICAgIChiYXNlIDE2KQkJSUMgRU5TRU1CTEUsIElOQy4KKwkJCQkzMjU1LTIgU0NPVFQgQkxWRC4tLVNURS4jMTA1CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTNEICAgKGhleCkJCVBIQVNFQ09NLCBMVEQuCiswMDEwM0QgICAgIChiYXNlIDE2KQkJUEhBU0VDT00sIExURC4KKwkJCQlQLk8uIEJPWCA0NTAxNworCQkJCUpFUlVTQUxFTSA5MTQ1MCAgCisJCQkJSVNSQUVMCisKKzAwLTEwLTNFICAgKGhleCkJCU5FVFNDSE9PTFMgQ09SUE9SQVRJT04KKzAwMTAzRSAgICAgKGJhc2UgMTYpCQlORVRTQ0hPT0xTIENPUlBPUkFUSU9OCisJCQkJMjAwMyBMQU5ESU5HUyBEUklWRQorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTNGICAgKGhleCkJCVRPTExHUkFERSBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDAxMDNGICAgICAoYmFzZSAxNikJCVRPTExHUkFERSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTQ5MyBOSVhPTiBST0FECisJCQkJQ0hFU1dJQ0sgUEEgMTUwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTQwICAgKGhleCkJCUlOVEVSTUVDIENPUlBPUkFUSU9OCiswMDEwNDAgICAgIChiYXNlIDE2KQkJSU5URVJNRUMgQ09SUE9SQVRJT04KKwkJCQk2MDAxIDM2VEggQVZFIFdFU1QKKwkJCQlQLk8uIEJPWCA0MjgwCisJCQkJRVZFUkVUVCBXQSA5ODIwMy05MjgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00MSAgIChoZXgpCQlCUklTVE9MIEJBQkNPQ0ssIElOQy4KKzAwMTA0MSAgICAgKGJhc2UgMTYpCQlCUklTVE9MIEJBQkNPQ0ssIElOQy4KKwkJCQkxMTAwIEJVQ0tJTkdIQU0gU1RSRUVUCisJCQkJV0FURVJUT1dOIENUIDA2Nzk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00MiAgIChoZXgpCQlBbGFjcml0ZWNoLCBJbmMuCiswMDEwNDIgICAgIChiYXNlIDE2KQkJQWxhY3JpdGVjaCwgSW5jLgorCQkJCTE5OTUgTi4gRmlyc3QgU3RyZWV0CisJCQkJU3VpdGUgMjAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTQzICAgKGhleCkJCUEyIENPUlBPUkFUSU9OCiswMDEwNDMgICAgIChiYXNlIDE2KQkJQTIgQ09SUE9SQVRJT04KKwkJCQk2LTE0LTExIFlVVEFLQS1DSE8KKwkJCQlTSElOQUdBV0EtS1UKKwkJCQlUT0tZTyAgCisJCQkJSkFQQU4KKworMDAtMTAtNDQgICAoaGV4KQkJSW5ub0xhYnMgQ29ycG9yYXRpb24KKzAwMTA0NCAgICAgKGJhc2UgMTYpCQlJbm5vTGFicyBDb3Jwb3JhdGlvbgorCQkJCTJGLTQsIE5PLiAxNiwgTEFORSA2MDksIENIVU5HLUhTSU4gUkQuCisJCQkJU0VDLiA1IFNBTi1DSFVORyBDSVRZCisJCQkJVGFpcGVpIEhzaWVuICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEwLTQ1ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAxMDQ1ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCU9QVGVyYSBTb2x1dGlvbnMgRGl2aXNpb24KKwkJCQkzNDAgVGVycnkgRm94IERyaXZlCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLLTJYMyAKKwkJCQlDQU5BREEKKworMDAtMTAtNDYgICAoaGV4KQkJQUxDT1JOIE1DQlJJREUgSU5DLgorMDAxMDQ2ICAgICAoYmFzZSAxNikJCUFMQ09STiBNQ0JSSURFIElOQy4KKwkJCQkzMzAwIFMuIEhJQVdBU1NFRSAgIzEwNQorCQkJCU9STEFORE8gRkwgMzI4MzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTQ3ICAgKGhleCkJCUVDSE8gRUxFVFJJQyBDTy4gTFRELgorMDAxMDQ3ICAgICAoYmFzZSAxNikJCUVDSE8gRUxFVFJJQyBDTy4gTFRELgorCQkJCU5PLjE4MDAgSUNISUdBTyBDSE8KKwkJCQlNSURPUkkgV0FSRAorCQkJCVlPS09IQU1BIENJVFkgIDIyNQorCQkJCUpBUEFOCisKKzAwLTEwLTQ4ICAgKGhleCkJCUhUUkMgQVVUT01BVElPTiwgSU5DLgorMDAxMDQ4ICAgICAoYmFzZSAxNikJCUhUUkMgQVVUT01BVElPTiwgSU5DLgorCQkJCTI4NSBMQVZBTCBTVFJFRVQKKwkJCQlCUk9NUFRPTlZJTExFCisJCQkJUVVFQkVDIEowQiAxSDAgIAorCQkJCUNBTkFEQQorCiswMC0xMC00OSAgIChoZXgpCQlTaG9yZVRlbCwgSW5jCiswMDEwNDkgICAgIChiYXNlIDE2KQkJU2hvcmVUZWwsIEluYworCQkJCTk2MCBTdGV3YXJ0IERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00QSAgIChoZXgpCQlUaGUgUGFydnVzIENvcnBvcmF0aW9uCiswMDEwNEEgICAgIChiYXNlIDE2KQkJVGhlIFBhcnZ1cyBDb3Jwb3JhdGlvbgorCQkJCTMyMjIgUyBXYXNoaW5ndG9uIFN0LgorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00QiAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMDEwNEIgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQkFZRlJPTlQgUExBWkEKKwkJCQlNQUlMU1RPUDogNDIyMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00QyAgIChoZXgpCQlMZUNyb3kgQ29ycG9yYXRpb24KKzAwMTA0QyAgICAgKGJhc2UgMTYpCQlMZUNyb3kgQ29ycG9yYXRpb24KKwkJCQkzMzg1IFNjb3R0IEJsdmQuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTREICAgKGhleCkJCVNVUlRFQyBJTkRVU1RSSUVTLCBJTkMuCiswMDEwNEQgICAgIChiYXNlIDE2KQkJU1VSVEVDIElORFVTVFJJRVMsIElOQy4KKwkJCQlOTy4xMSwgQUxMRVkgMTYsIExBTkUgMzM3CisJCQkJVEEtVFVORyBST0FEIFNFQy4xLCBTSEktQ0hJSAorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC00RSAgIChoZXgpCQlDRU9MT0dJQworMDAxMDRFICAgICAoYmFzZSAxNikJCUNFT0xPR0lDCisJCQkJWkEgREUgUElTU0FMT09QCisJCQkJUlVFIEVET1VBUkQgQlJBTkxZCisJCQkJNzgxOTIgVFJBUFBFUyAgCisJCQkJRlJBTkNFCisKKzAwLTEwLTRGICAgKGhleCkJCU9yYWNsZSBDb3Jwb3JhdGlvbgorMDAxMDRGICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbgorCQkJCTE3IE5ldHdvcmsgQ2lyY2xlCisJCQkJQnVpbGRpbmcgMTcsIFVNUEsxNy0xMzEKKwkJCQlNZW5sbyBQYXJrIENBIDk1MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC01MCAgIChoZXgpCQlSSU9OIENPLiwgTFRELgorMDAxMDUwICAgICAoYmFzZSAxNikJCVJJT04gQ08uLCBMVEQuCisJCQkJMy0yMC00MSBISUdBU0hJTU9UT01BQ0hJCisJCQkJS09LVUJVTkpJLCBUT0tZTyAxODUgIAorCQkJCUpBUEFOCisKKzAwLTEwLTUxICAgKGhleCkJCUNNSUNSTyBDT1JQT1JBVElPTgorMDAxMDUxICAgICAoYmFzZSAxNikJCUNNSUNSTyBDT1JQT1JBVElPTgorCQkJCTE3LTIwLTIgS0FNSU5PLUNITworCQkJCVRBS0FNQVRTVS1TSEksIEtBR0FXQSA3NjEgIAorCQkJCUpBUEFOCisKKzAwLTEwLTUyICAgKGhleCkJCU1FVFRMRVItVE9MRURPIChBTEJTVEFEVCkgR01CSAorMDAxMDUyICAgICAoYmFzZSAxNikJCU1FVFRMRVItVE9MRURPIChBTEJTVEFEVCkgR01CSAorCQkJCVAuTy4gQk9YIDIgNTAKKwkJCQlELTcyNDIzIEFMQlNUQURUICAKKwkJCQlHRVJNQU5ZCisKKzAwLTEwLTUzICAgKGhleCkJCUNPTVBVVEVSIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMTA1MyAgICAgKGJhc2UgMTYpCQlDT01QVVRFUiBURUNITk9MT0dZIENPUlAuCisJCQkJNTAgVy4gVEVDSE5FQ0VOVEVSIERSSVZFCisJCQkJTUlMRk9SRCBPSCA0NTE1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNTQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAxMDU0ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNTUgICAoaGV4KQkJRlVKSVRTVSBNSUNST0VMRUNUUk9OSUNTLCBJTkMuCiswMDEwNTUgICAgIChiYXNlIDE2KQkJRlVKSVRTVSBNSUNST0VMRUNUUk9OSUNTLCBJTkMuCisJCQkJMzU0NSBOT1JUSCBGSVJTVCBTVFJFRVQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xODA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC01NiAgIChoZXgpCQlTT0RJQ0sgQ08uLCBMVEQuCiswMDEwNTYgICAgIChiYXNlIDE2KQkJU09ESUNLIENPLiwgTFRELgorCQkJCTMtMTItMSBOQUtBTUFDSElEQUkKKwkJCQlUU1VaVUtJLUtVLCBZT0tPSEFNQSBLQU5BR0FXQSAyMjQgCisJCQkJSkFQQU4KKworMDAtMTAtNTcgICAoaGV4KQkJUmViZWwuY29tLCBJbmMuCiswMDEwNTcgICAgIChiYXNlIDE2KQkJUmViZWwuY29tLCBJbmMuCisJCQkJMTUwIElTQUJFTExBIFNUUkVFVC0tU1RFLiAxMDAwCisJCQkJT1RUQVdBLCBPTlRBUklPIEsxUyAxVjcgIAorCQkJCUNBTkFEQQorCiswMC0xMC01OCAgIChoZXgpCQlBcnJvd1BvaW50IENvbW11bmljYXRpb25zCiswMDEwNTggICAgIChiYXNlIDE2KQkJQXJyb3dQb2ludCBDb21tdW5pY2F0aW9ucworCQkJCTIzNSBMSVRUTEVUT04gUk9BRAorCQkJCVdFU1RGT1JEIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC01OSAgIChoZXgpCQlESUFCTE8gUkVTRUFSQ0ggQ08uIExMQworMDAxMDU5ICAgICAoYmFzZSAxNikJCURJQUJMTyBSRVNFQVJDSCBDTy4gTExDCisJCQkJODI1IFNURVdBUlQgRFJJVkUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTVBICAgKGhleCkJCTNDT00gQ09SUE9SQVRJT04KKzAwMTA1QSAgICAgKGJhc2UgMTYpCQkzQ09NIENPUlBPUkFUSU9OCisJCQkJNTQwMCBCQVlGUk9OVCBQTEFaQQorCQkJCU1BSUxTVE9QOiAgNDIyMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC01QiAgIChoZXgpCQlORVQgSU5TSUdIVCBBQgorMDAxMDVCICAgICAoYmFzZSAxNikJCU5FVCBJTlNJR0hUIEFCCisJCQkJVuRzdGJlcmdhIEFsbOkgOQorCQkJCVNFLTEyNjAgMzAgSORnZXJzdGVuIAorCQkJCVNXRURFTgorCiswMC0xMC01QyAgIChoZXgpCQlRVUFOVFVNIERFU0lHTlMgKEguSy4pIExURC4KKzAwMTA1QyAgICAgKGJhc2UgMTYpCQlRVUFOVFVNIERFU0lHTlMgKEguSy4pIExURC4KKwkJCQk1L0YuLCBTT01FUlNFVCBIT1VTRSwgVEFJS09PIFBMQUNFCisJCQkJOTc5IEtJTkcnUyBST0FELAorCQkJCVFVQVJSWSBCQVkgIAorCQkJCUhPTkcgS09ORworCiswMC0xMC01RCAgIChoZXgpCQlEcmFlZ2VyIE1lZGljYWwKKzAwMTA1RCAgICAgKGJhc2UgMTYpCQlEcmFlZ2VyIE1lZGljYWwKKwkJCQlNb2lzbGluZ2VyIEFsbGVlIDUzLTU1CisJCQkJTHVlYmVjayAgRC0yMzU0MgorCQkJCUdFUk1BTlkKKworMDAtMTAtNUUgICAoaGV4KQkJSEVLSU1JQU4gTEFCT1JBVE9SSUVTLCBJTkMuCiswMDEwNUUgICAgIChiYXNlIDE2KQkJSEVLSU1JQU4gTEFCT1JBVE9SSUVTLCBJTkMuCisJCQkJMTUyMDAgT01FR0EgRFJJVkUKKwkJCQlST0NLVklMTEUgTUQgMjA4NTAtMzI0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNUYgICAoaGV4KQkJWk9ESUFDIERBVEEgU1lTVEVNUworMDAxMDVGICAgICAoYmFzZSAxNikJCVpPRElBQyBEQVRBIFNZU1RFTVMKKwkJCQk1IEF2IERlcyBBbmRlcworCQkJCUxlcyBVbGlzICA5MTk0MAorCQkJCUZSQU5DRQorCiswMC0xMC02MCAgIChoZXgpCQlCSUxMSU9OVE9OIFNZU1RFTVMsIElOQy4KKzAwMTA2MCAgICAgKGJhc2UgMTYpCQlCSUxMSU9OVE9OIFNZU1RFTVMsIElOQy4KKwkJCQkzRi0xLCBOTy4gOCwgTEFORSA5OQorCQkJCVBVLURJTkcgUkQuCisJCQkJSFNJTi1DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtNjEgICAoaGV4KQkJSE9TVExJTksgQ09SUC4KKzAwMTA2MSAgICAgKGJhc2UgMTYpCQlIT1NUTElOSyBDT1JQLgorCQkJCTEwRi0xLCBOTy4gMTgxCisJCQkJU0VDLjEsIFRBLVRVTkcgUkQuCisJCQkJSFNJLUNISUgsIFRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC02MiAgIChoZXgpCQlOWCBTRVJWRVIsIElMTkMuCiswMDEwNjIgICAgIChiYXNlIDE2KQkJTlggU0VSVkVSLCBJTE5DLgorCQkJCTU0MDEgRS4gTEEgUEFMTUEgQVZFLgorCQkJCUFOQUhFSU0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTYzICAgKGhleCkJCVNUQVJHVUlERSBESUdJVEFMIE5FVFdPUktTCiswMDEwNjMgICAgIChiYXNlIDE2KQkJU1RBUkdVSURFIERJR0lUQUwgTkVUV09SS1MKKwkJCQk1NzU0IFBBQ0lGSUMgQ0VOVEVSIEJMVkQuCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC02NCAgIChoZXgpCQlETlBHLCBMTEMKKzAwMTA2NCAgICAgKGJhc2UgMTYpCQlETlBHLCBMTEMKKwkJCQkyMCBOb3J0aCBXZW50d29ydGggQXZlbnVlCisJCQkJTG9uZG9uZGVycnkgTkggMDMwNTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTY1ICAgKGhleCkJCVJBRFlORSBDT1JQT1JBVElPTgorMDAxMDY1ICAgICAoYmFzZSAxNikJCVJBRFlORSBDT1JQT1JBVElPTgorCQkJCTUyMjUgUy4gMzdUSCBTVFJFRVQKKwkJCQlQSE9FTklYIEFaIDg1MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC02NiAgIChoZXgpCQlBRFZBTkNFRCBDT05UUk9MIFNZU1RFTVMsIElOQy4KKzAwMTA2NiAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBDT05UUk9MIFNZU1RFTVMsIElOQy4KKwkJCQkyNzU1IE5PUlRIV09PRFMgUEFSS1dBWQorCQkJCU5PUkNST1NTIEdBIDMwMDcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC02NyAgIChoZXgpCQlSRURCQUNLIE5FVFdPUktTLCBJTkMuCiswMDEwNjcgICAgIChiYXNlIDE2KQkJUkVEQkFDSyBORVRXT1JLUywgSU5DLgorCQkJCTI1NzAgTk9SVEggMVNUIFNUUkVFVAorCQkJCVNVSVRFICM0MTAKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNjggICAoaGV4KQkJQ09NT1MgVEVMRUNPTQorMDAxMDY4ICAgICAoYmFzZSAxNikJCUNPTU9TIFRFTEVDT00KKwkJCQlTQUVIQU4gQi9ELywgMjctMSBTVVBZTy1ET05HCisJCQkJQ0hVTkctR1UsIFNFT1VMIDEwMC0yMzAgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMC02OSAgIChoZXgpCQlIRUxJT1NTIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDEwNjkgICAgIChiYXNlIDE2KQkJSEVMSU9TUyBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTM5MSBUT1RURU0gUE9ORCBSRC4tIFNURSMzMDMKKwkJCQlXQUxUSEFNIE1BIDAyMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC02QSAgIChoZXgpCQlESUdJVEFMIE1JQ1JPV0FWRSBDT1JQT1JBVElPTgorMDAxMDZBICAgICAoYmFzZSAxNikJCURJR0lUQUwgTUlDUk9XQVZFIENPUlBPUkFUSU9OCisJCQkJMTcwIFJPU0UgT1JDSEFSRCBXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNkIgICAoaGV4KQkJU09OVVMgTkVUV09SS1MsIElOQy4KKzAwMTA2QiAgICAgKGJhc2UgMTYpCQlTT05VUyBORVRXT1JLUywgSU5DLgorCQkJCTUgQ0FSTElTTEUgUk9BRAorCQkJCVdFU1RGT1JEIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC02QyAgIChoZXgpCQlJbmZyYXRlYyBBRworMDAxMDZDICAgICAoYmFzZSAxNikJCUluZnJhdGVjIEFHCisJCQkJV2VybmVyLXZvbi1TaWVtZW5zLVN0ci4gNworCQkJCTY0NjI1IEJlbnNoZWltIAorCQkJCUdFUk1BTlkKKworMDAtMTAtNkQgICAoaGV4KQkJQXh4Y2VsZXJhIEJyb2FkYmFuZCBXaXJlbGVzcworMDAxMDZEICAgICAoYmFzZSAxNikJCUF4eGNlbGVyYSBCcm9hZGJhbmQgV2lyZWxlc3MKKwkJCQkxNjAwIEVhc3QgUGFyaGFtIFJvYWQKKwkJCQlSaWNobW9uZCBWQSAyMzIyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNkUgICAoaGV4KQkJVEFESVJBTiBDT00uIExURC4KKzAwMTA2RSAgICAgKGJhc2UgMTYpCQlUQURJUkFOIENPTS4gTFRELgorCQkJCTI2IEhBU0hPRlRJTSBTVC4KKwkJCQlIT0xPTiAgNTgxMDIgIAorCQkJCUlTUkFFTAorCiswMC0xMC02RiAgIChoZXgpCQlUUkVOVE9OIFRFQ0hOT0xPR1kgSU5DLgorMDAxMDZGICAgICAoYmFzZSAxNikJCVRSRU5UT04gVEVDSE5PTE9HWSBJTkMuCisJCQkJMjM1MCBDRU5URU5OSUFMIERSSVZFCisJCQkJR0FJTkVTVklMTEUgR0EgMzA1MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTcwICAgKGhleCkJCUNBUkFET04gVFJFTkQgTFRELgorMDAxMDcwICAgICAoYmFzZSAxNikJCUNBUkFET04gVFJFTkQgTFRELgorCQkJCVAuTy4gQk9YIDM0LCBIT1JTSEFNCisJCQkJV0VTVCBTVVNTRVgsIFJIMTIgMllGIEVOR0xBTkQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTAtNzEgICAoaGV4KQkJQURWQU5FVCBJTkMuCiswMDEwNzEgICAgIChiYXNlIDE2KQkJQURWQU5FVCBJTkMuCisJCQkJMy0yMC04IE5PREEKKwkJCQlPS0FZQU1JIDcwMCAKKwkJCQlKQVBBTgorCiswMC0xMC03MiAgIChoZXgpCQlHVk4gVEVDSE5PTE9HSUVTLCBJTkMuCiswMDEwNzIgICAgIChiYXNlIDE2KQkJR1ZOIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTgyMDAgQlJZQU4gREFJUlkgUk9BRAorCQkJCVNVSVRFICMxMDAKKwkJCQlMQVJHTyBGTCAzMzc3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNzMgICAoaGV4KQkJVGVjaG5vYm94LCBJbmMuCiswMDEwNzMgICAgIChiYXNlIDE2KQkJVGVjaG5vYm94LCBJbmMuCisJCQkJMTQwIE1vdW50IEhvbGx5IEJ5cGFzcworCQkJCVVuaXQgMQorCQkJCUx1bWJlcnRvbiBOSiAwODA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNzQgICAoaGV4KQkJQVRFTiBJTlRFUk5BVElPTkFMIENPLiwgTFRELgorMDAxMDc0ICAgICAoYmFzZSAxNikJCUFURU4gSU5URVJOQVRJT05BTCBDTy4sIExURC4KKwkJCQkxMkYsIE5PLjEwMSwgU1VORyBDSElBTkcgUkQuCisJCQkJVEFJUEVJLCAxMDQyOCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC03NSAgIChoZXgpCQlNYXh0b3IgQ29ycG9yYXRpb24KKzAwMTA3NSAgICAgKGJhc2UgMTYpCQlNYXh0b3IgQ29ycG9yYXRpb24KKwkJCQkyNDUyIENsb3ZlciBCYXNpbiBEci4KKwkJCQlMb2dtb250IENPIDgwNTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC03NiAgIChoZXgpCQlFVVJFTSBHbWJICiswMDEwNzYgICAgIChiYXNlIDE2KQkJRVVSRU0gR21iSAorCQkJCUpVTElDSEVSIFNUUi4gMzM4QgorCQkJCUQtNTIwNzAgQUFDSEVOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTEwLTc3ICAgKGhleCkJCVNBRiBEUklWRSBTWVNURU1TLCBMVEQuCiswMDEwNzcgICAgIChiYXNlIDE2KQkJU0FGIERSSVZFIFNZU1RFTVMsIExURC4KKwkJCQk4OCBBUkRFTFQgQVZFLgorCQkJCUtJVENIRU5FUiwgT05UQVJJTyBOMkMgMkM5ICAKKwkJCQlDQU5BREEKKworMDAtMTAtNzggICAoaGV4KQkJTlVFUkEgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMTA3OCAgICAgKGJhc2UgMTYpCQlOVUVSQSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTEwNDQ1IFBBQ0lGSUMgQ0VOVEVSIENPVVJUCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC03OSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDEwNzkgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFIuCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtN0EgICAoaGV4KQkJQW1iaUNvbSwgSW5jLgorMDAxMDdBICAgICAoYmFzZSAxNikJCUFtYmlDb20sIEluYy4KKwkJCQkyNDUwIFNDT1RUIEJMVkQuLCAjMzA1CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTdCICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTA3QiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuVEFTTUFOIERSLi1TSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTdDICAgKGhleCkJCVAtQ09NLCBJTkMuCiswMDEwN0MgICAgIChiYXNlIDE2KQkJUC1DT00sIElOQy4KKwkJCQkzMTc1IFMuIFdJTkNIRVNURVIgQkxWRC4KKwkJCQlDQU1QQkVMTCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtN0QgICAoaGV4KQkJQVVST1JBIENPTU1VTklDQVRJT05TLCBMVEQuCiswMDEwN0QgICAgIChiYXNlIDE2KQkJQVVST1JBIENPTU1VTklDQVRJT05TLCBMVEQuCisJCQkJUC5PLiBCT1ggMTk0MgorCQkJCU1BQ1FVQVJJRSBDRU5UUkUsIE5PUlRIIFJZREUKKwkJCQlOU1cgMjExMyAgCisJCQkJQVVTVFJBTElBCisKKzAwLTEwLTdFICAgKGhleCkJCUJBQ0hNQU5OIEVMRUNUUk9OSUMgR21iSAorMDAxMDdFICAgICAoYmFzZSAxNikJCUJBQ0hNQU5OIEVMRUNUUk9OSUMgR21iSAorCQkJCUtSRVVaQUVDS0VSV0VHIDMzCisJCQkJQSA2ODA2IEZFTERLSVJDSCAgCisJCQkJQVVTVFJJQQorCiswMC0xMC03RiAgIChoZXgpCQlDUkVTVFJPTiBFTEVDVFJPTklDUywgSU5DLgorMDAxMDdGICAgICAoYmFzZSAxNikJCUNSRVNUUk9OIEVMRUNUUk9OSUNTLCBJTkMuCisJCQkJMTAxIEJST0FEV0FZCisJCQkJQ1JFU1NLSUxMIE5KIDA3NjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC04MCAgIChoZXgpCQlNRVRBV0FWRSBDT01NVU5JQ0FUSU9OUworMDAxMDgwICAgICAoYmFzZSAxNikJCU1FVEFXQVZFIENPTU1VTklDQVRJT05TCisJCQkJODcwMCAxNDhUSCBBVkVOVUUgTi5FLgorCQkJCVJFRE1PTkQgV0EgOTgwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTgxICAgKGhleCkJCURQUywgSU5DLgorMDAxMDgxICAgICAoYmFzZSAxNikJCURQUywgSU5DLgorCQkJCTQ5MjIgRUFTVCBZQUxFIEFWRU5VRQorCQkJCUZSRVNOTyBDQSA5MzcyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODIgICAoaGV4KQkJSk5BIFRFTEVDT01NVU5JQ0FUSU9OUyBMSU1JVEVECiswMDEwODIgICAgIChiYXNlIDE2KQkJSk5BIFRFTEVDT01NVU5JQ0FUSU9OUyBMSU1JVEVECisJCQkJMTYgU01JVEggU1QsIENIQVRTV09PRAorCQkJCU5TVyAyMDY3IAorCQkJCUFVU1RSQUxJQQorCiswMC0xMC04MyAgIChoZXgpCQlIRVdMRVRULVBBQ0tBUkQgQ09NUEFOWQorMDAxMDgzICAgICAoYmFzZSAxNikJCUhFV0xFVFQtUEFDS0FSRCBDT01QQU5ZCisJCQkJTUFJTCBTVE9QIDQyTEUKKwkJCQkxMTAwMDAgV09MRkUgUk9BRAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODQgICAoaGV4KQkJSy1CT1QgQ09NTVVOSUNBVElPTlMKKzAwMTA4NCAgICAgKGJhc2UgMTYpCQlLLUJPVCBDT01NVU5JQ0FUSU9OUworCQkJCVAuTy4gQk9YIDQxMAorCQkJCU5PUlRPTiBNQSAwMjc2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODUgICAoaGV4KQkJUE9MQVJJUyBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDAxMDg1ICAgICAoYmFzZSAxNikJCVBPTEFSSVMgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxMDIwMCBTVyBBTExFTiBCTFZELgorCQkJCUJFQVZFUlRPTiBPUiA5NzAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODYgICAoaGV4KQkJQVRUTyBUZWNobm9sb2d5LCBJbmMuCiswMDEwODYgICAgIChiYXNlIDE2KQkJQVRUTyBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTU1IENyb3NzcG9pbnQgUGt3eS4KKwkJCQlBbWhlcnN0IE5ZIDE0MDY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC04NyAgIChoZXgpCQlYc3RyZWFtaXMgUExDCiswMDEwODcgICAgIChiYXNlIDE2KQkJWHN0cmVhbWlzIFBMQworCQkJCU9YRk9SRCBTQ0lFTkNFIFBBUksKKwkJCQlHMTAuICAyIE1BR0RBTEVOIENFTlRSRSBST0JFUlQgUk9CSU5TT04KKwkJCQlPWEZPUkQgMFg0IDRHQSBFbmdsYW5kIAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODggICAoaGV4KQkJQU1FUklDQU4gTkVUV09SS1MgSU5DLgorMDAxMDg4ICAgICAoYmFzZSAxNikJCUFNRVJJQ0FOIE5FVFdPUktTIElOQy4KKwkJCQk2ODAwIE9SQU5HRVRIT1JQRSBBVkUuICNBCisJCQkJQlVFTkEgUEFSSyBDQSA5MDYyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODkgICAoaGV4KQkJV2ViU29uaWMKKzAwMTA4OSAgICAgKGJhc2UgMTYpCQlXZWJTb25pYworCQkJCTM0NjYgRURXQVJEIEFWRS4KKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOEEgICAoaGV4KQkJVGVyYUxvZ2ljLCBJbmMuCiswMDEwOEEgICAgIChiYXNlIDE2KQkJVGVyYUxvZ2ljLCBJbmMuCisJCQkJNzA3IENBTElGT1JOSUEgU1RSRUVUCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOEIgICAoaGV4KQkJTEFTRVJBTklNQVRJT04gU09MTElOR0VSIEdtYkgKKzAwMTA4QiAgICAgKGJhc2UgMTYpCQlMQVNFUkFOSU1BVElPTiBTT0xMSU5HRVIgR21iSAorCQkJCUNSRUxMRVNUUi4gMTkvMjAKKwkJCQlEIDEwODI3IEJFUkxJTiAgCisJCQkJR0VSTUFOWQorCiswMC0xMC04QyAgIChoZXgpCQlGVUpJVFNVIFRFTEVDT01NVU5JQ0FUSU9OUyBFVVJPUEUsIExURC4KKzAwMTA4QyAgICAgKGJhc2UgMTYpCQlGVUpJVFNVIFRFTEVDT01NVU5JQ0FUSU9OUyBFVVJPUEUsIExURC4KKwkJCQlTT0xJSFVMTCBQQVJLV0FZCisJCQkJQklSTUlOR0hBTSBCVVNJTkVTUyBQQVJLCisJCQkJQklSTUlOR0hBTSBCMzcgN1lVIEVuZ2xhbmQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTAtOEQgICAoaGV4KQkJSm9obnNvbiBDb250cm9scywgSW5jLgorMDAxMDhEICAgICAoYmFzZSAxNikJCUpvaG5zb24gQ29udHJvbHMsIEluYy4KKwkJCQk1MDcgRS4gTWljaGlnYW4gU3QuCisJCQkJUC5PLiBCb3ggNDIzIC8gTTczCisJCQkJTWlsd2F1a2VlIFdJIDUzMjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC04RSAgIChoZXgpCQlIVUdIIFNZTU9OUyBDT05DRVBUIFRlY2hub2xvZ2llcyBMdGQuCiswMDEwOEUgICAgIChiYXNlIDE2KQkJSFVHSCBTWU1PTlMgQ09OQ0VQVCBUZWNobm9sb2dpZXMgTHRkLgorCQkJCUFsZGVyIEhpbGxzIFBhcmsKKwkJCQkxNiBBbGRlciBIaWxscworCQkJCVBvb2xlLCBEb3JzZXQgQk0xMiA0QVIgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEwLThGICAgKGhleCkJCVJBUFRPUiBTWVNURU1TCiswMDEwOEYgICAgIChiYXNlIDE2KQkJUkFQVE9SIFNZU1RFTVMKKwkJCQk2OSBISUNLT1JZIEFWRS4KKwkJCQlXQUxUSEFNIE1BIDAyMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC05MCAgIChoZXgpCQlDSU1FVFJJQ1MsIElOQy4KKzAwMTA5MCAgICAgKGJhc2UgMTYpCQlDSU1FVFJJQ1MsIElOQy4KKwkJCQk1NSBURU1QTEUgUExBQ0UKKwkJCQlCT1NUT04gTUEgMDIxMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTkxICAgKGhleCkJCU5PIFdJUkVTIE5FRURFRCBCVgorMDAxMDkxICAgICAoYmFzZSAxNikJCU5PIFdJUkVTIE5FRURFRCBCVgorCQkJCVAuTy4gQk9YIDM0MworCQkJCTM3MjAgQUggQklMVEhPVkVOICAKKwkJCQlORVRIRVJMQU5EUworCiswMC0xMC05MiAgIChoZXgpCQlORVRDT1JFIElOQy4KKzAwMTA5MiAgICAgKGJhc2UgMTYpCQlORVRDT1JFIElOQy4KKwkJCQkxMkYtMiwgNTM3LCBTRUMuMgorCQkJCUtVQU5HLUZVIFJPQUQsCisJCQkJSFNJTkNIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC05MyAgIChoZXgpCQlDTVMgQ09NUFVURVJTLCBMVEQuCiswMDEwOTMgICAgIChiYXNlIDE2KQkJQ01TIENPTVBVVEVSUywgTFRELgorCQkJCTIwMSBBUkNBRElBCisJCQkJTkFSSU1BTiBQT0lOVAorCQkJCU1VTUJBSSA0MDAgMDAyMSAgCisJCQkJSU5ESUEKKworMDAtMTAtOTQgICAoaGV4KQkJUGVyZm9ybWFuY2UgQW5hbHlzaXMgQnJvYWRiYW5kLCBTcGlyZW50IHBsYworMDAxMDk0ICAgICAoYmFzZSAxNikJCVBlcmZvcm1hbmNlIEFuYWx5c2lzIEJyb2FkYmFuZCwgU3BpcmVudCBwbGMKKwkJCQkyNzM0OSBBZ291cmEgUm9hZAorCQkJCUNhbGFiYXNhcyBIaWxscyBDQSA5MTMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOTUgICAoaGV4KQkJVGhvbXNvbiBJbmMuCiswMDEwOTUgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBJbmMuCisJCQkJMTAxIFdlc3QgMTAzcmQgU3RyZWV0CisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjkwLTExMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTk2ICAgKGhleCkJCVRSQUNFV0VMTCBTWVNURU1TLCBJTkMuCiswMDEwOTYgICAgIChiYXNlIDE2KQkJVFJBQ0VXRUxMIFNZU1RFTVMsIElOQy4KKwkJCQk1NjcgRU5URVJQUklTRSBEUklWRQorCQkJCVdFU1RFUlZJTExFIE9IIDQzMDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC05NyAgIChoZXgpCQlXaW5OZXQgTWV0cm9wb2xpdGFuIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKzAwMTA5NyAgICAgKGJhc2UgMTYpCQlXaW5OZXQgTWV0cm9wb2xpdGFuIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKwkJCQk2NjEgRUFTVCBBUlFVRVMgQVZFLgorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOTggICAoaGV4KQkJU1RBUk5FVCBURUNITk9MT0dJRVMsIElOQy4KKzAwMTA5OCAgICAgKGJhc2UgMTYpCQlTVEFSTkVUIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTIyMTAgTydUT09MRSBBVkUuCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTk5ICAgKGhleCkJCUlubm9NZWRpYSwgSW5jLgorMDAxMDk5ICAgICAoYmFzZSAxNikJCUlubm9NZWRpYSwgSW5jLgorCQkJCTQ4MDAgR1JFQVQgQU1FUklDQSBQQVJLV0FZCisJCQkJU1VJVEUgIzQwMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC05QSAgIChoZXgpCQlORVRMSU5FCiswMDEwOUEgICAgIChiYXNlIDE2KQkJTkVUTElORQorCQkJCTcsIFJ1ZSBkZSBCaWV2cmVzCisJCQkJOTIxNDAgQ0xBTUFSVCAgCisJCQkJRlJBTkNFCisKKzAwLTEwLTlCICAgKGhleCkJCUVtdWxleCBDb3Jwb3JhdGlvbgorMDAxMDlCICAgICAoYmFzZSAxNikJCUVtdWxleCBDb3Jwb3JhdGlvbgorCQkJCTMzMzMgU3VzYW4gU3RyZWV0CisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOUMgICAoaGV4KQkJTS1TWVNURU0gQ08uLCBMVEQuCiswMDEwOUMgICAgIChiYXNlIDE2KQkJTS1TWVNURU0gQ08uLCBMVEQuCisJCQkJMS0xLTI1IFNISU4gVVJBU0hJTUEgQ0hPVQorCQkJCUtBTkFHQVdBLUtVCisJCQkJIFlPS09IQU1BIDIyMSAgCisJCQkJSkFQQU4KKworMDAtMTAtOUQgICAoaGV4KQkJQ0xBUklORVQgU1lTVEVNUywgSU5DLgorMDAxMDlEICAgICAoYmFzZSAxNikJCUNMQVJJTkVUIFNZU1RFTVMsIElOQy4KKwkJCQkxNDE1IEtPTEwgQ0lSQ0xFICMxMDEKKwkJCQlTQU4gSk9TRSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOUUgICAoaGV4KQkJQVdBUkUsIElOQy4KKzAwMTA5RSAgICAgKGJhc2UgMTYpCQlBV0FSRSwgSU5DLgorCQkJCU9ORSBPQUsgUEFSSworCQkJCUJFREZPUkQgTUEgMDE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTlGICAgKGhleCkJCVBBVk8sIElOQy4KKzAwMTA5RiAgICAgKGJhc2UgMTYpCQlQQVZPLCBJTkMuCisJCQkJOTUgWUVTTEVSIFdBWQorCQkJCVNFQVRUTEUgV0EgOTgxMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUEwICAgKGhleCkJCUlOTk9WRVggVEVDSE5PTE9HSUVTLCBJTkMuCiswMDEwQTAgICAgIChiYXNlIDE2KQkJSU5OT1ZFWCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQlLRVlTVE9ORSBDT01NT05TCisJCQkJNTI2IEJSQURET0NLIEFWRS4KKwkJCQlUVVJUTEUgQ1JFRUsgUEEgMTUxNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUExICAgKGhleCkJCUtFTkRJTiBTRU1JQ09ORFVDVE9SLCBJTkMuCiswMDEwQTEgICAgIChiYXNlIDE2KQkJS0VORElOIFNFTUlDT05EVUNUT1IsIElOQy4KKwkJCQkxNTUwIFMuIEJBU0NPTSBBVkUuLCBTVEUuICMyNTAKKwkJCQlDQU1QQkVMTCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQTIgICAoaGV4KQkJVE5TCiswMDEwQTIgICAgIChiYXNlIDE2KQkJVE5TCisJCQkJODAwIFRoaXJkIFN0cmVldCwgU3VpdGUgQjEwMAorCQkJCUhFUk5ET04gVkEgMjAxNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUEzICAgKGhleCkJCU9NTklUUk9OSVgsIElOQy4KKzAwMTBBMyAgICAgKGJhc2UgMTYpCQlPTU5JVFJPTklYLCBJTkMuCisJCQkJNzYwIEhBUlJJU09OIFNUUkVFVAorCQkJCVNFQVRUTEUgV0EgOTgxMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUE0ICAgKGhleCkJCVhJUkNPTQorMDAxMEE0ICAgICAoYmFzZSAxNikJCVhJUkNPTQorCQkJCTIzMDAgQ09SUE9SQVRFIENFTlRFUiBEUi4KKwkJCQlUSE9VU0FORCBPQUtTIENBIDkxMzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BNSAgIChoZXgpCQlPWEZPUkQgSU5TVFJVTUVOVFMKKzAwMTBBNSAgICAgKGJhc2UgMTYpCQlPWEZPUkQgSU5TVFJVTUVOVFMKKwkJCQlJTkRVU1RSSUFMIEFOQUxZU0lTIEdST1VQCisJCQkJMTkvMjAgTlVGRklFTEQgV0FZCisJCQkJQWJpbmdkb24sIE94b24gT1gxNCAxVFggIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEwLUE2ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTBBNiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUE3ICAgKGhleCkJCVVORVggVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorMDAxMEE3ICAgICAoYmFzZSAxNikJCVVORVggVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCThGLTUsICMxMzAsIFNaRSBXRUkgUkQuLAorCQkJCUhTSU5DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtQTggICAoaGV4KQkJUkVMSUFOQ0UgQ09NUFVURVIgQ09SUC4KKzAwMTBBOCAgICAgKGJhc2UgMTYpCQlSRUxJQU5DRSBDT01QVVRFUiBDT1JQLgorCQkJCTMwMzIgQlVOS0VSIEhJTEwgTEFORQorCQkJCVNVSVRFIDIwMQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BOSAgIChoZXgpCQlBREhPQyBURUNITk9MT0dJRVMKKzAwMTBBOSAgICAgKGJhc2UgMTYpCQlBREhPQyBURUNITk9MT0dJRVMKKwkJCQkxMTUwIEZJUlNUIFNUUkVFVAorCQkJCVNBTiBKT1NFIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BQSAgIChoZXgpCQlNRURJQTQsIElOQy4KKzAwMTBBQSAgICAgKGJhc2UgMTYpCQlNRURJQTQsIElOQy4KKwkJCQkyNTAgMTRUSCBTVC4gTlcgLSBTVEUgIzQwMDIKKwkJCQlBVExBTlRBIEdBIDMwMzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BQiAgIChoZXgpCQlLT0lUTyBJTkRVU1RSSUVTLCBMVEQuCiswMDEwQUIgICAgIChiYXNlIDE2KQkJS09JVE8gSU5EVVNUUklFUywgTFRELgorCQkJCTEwMCBNQUVEQS1DSE8sIFRPVFNVS0EtS1UKKwkJCQlZT0tPSEFNQSAyNDQgIAorCQkJCUpBUEFOCisKKzAwLTEwLUFDICAgKGhleCkJCUlNQ0kgVEVDSE5PTE9HSUVTCiswMDEwQUMgICAgIChiYXNlIDE2KQkJSU1DSSBURUNITk9MT0dJRVMKKwkJCQk4NDAxIE9MRCBDT1VSVCBIS09VU0UgUkQKKwkJCQlTVUlURSAjMjAwCisJCQkJVklFTk5BIFZBIDIyMTgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BRCAgIChoZXgpCQlTT0ZUUk9OSUNTIFVTQiwgSU5DLgorMDAxMEFEICAgICAoYmFzZSAxNikJCVNPRlRST05JQ1MgVVNCLCBJTkMuCisJCQkJNTA4NSBMSVNUIERSSVZFCisJCQkJQ09MT1JBRE8gU1BSSU5HUyBDTyA4MDkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQUUgICAoaGV4KQkJU0hJTktPIEVMRUNUUklDIElORFVTVFJJRVMgQ08uCiswMDEwQUUgICAgIChiYXNlIDE2KQkJU0hJTktPIEVMRUNUUklDIElORFVTVFJJRVMgQ08uCisJCQkJODAgT1NISU1BREEtTUFDSEkKKwkJCQlOQUdBTk8tU0hJIDM4MS0yMiAgCisJCQkJSkFQQU4KKworMDAtMTAtQUYgICAoaGV4KQkJVEFDIFNZU1RFTVMsIElOQy4KKzAwMTBBRiAgICAgKGJhc2UgMTYpCQlUQUMgU1lTVEVNUywgSU5DLgorCQkJCTEwMzUgUFVUTUFOIERSSVZFLS1TVEUuCisJCQkJSFVOVFNWSUxMRSBBTCAzNTgxNi0yMjcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1CMCAgIChoZXgpCQlNRVJJRElBTiBURUNITk9MT0dZIENPUlAuCiswMDEwQjAgICAgIChiYXNlIDE2KQkJTUVSSURJQU4gVEVDSE5PTE9HWSBDT1JQLgorCQkJCTExIE1DQlJJREUgQ09SUC4gQ0VOVEVSIERSLgorCQkJCUNIRVNURVJGSUVMRCBNRCA2MzAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQjEgICAoaGV4KQkJRk9SLUEgQ08uLCBMVEQuCiswMDEwQjEgICAgIChiYXNlIDE2KQkJRk9SLUEgQ08uLCBMVEQuCisJCQkJMi0zLTMgT09TQUtVCisJCQkJU0FLVVJBIENJVFksCisJCQkJQ0hJQkEgUFJFRi4gMjg1ICAKKwkJCQlKQVBBTgorCiswMC0xMC1CMiAgIChoZXgpCQlDT0FDVElWRSBBRVNUSEVUSUNTCiswMDEwQjIgICAgIChiYXNlIDE2KQkJQ09BQ1RJVkUgQUVTVEhFVElDUworCQkJCTQwMDAgQlJJREdFV0FZIC0gU1RFLiAjMzAzCisJCQkJU0FVU0FMSVRBIENBIDk0OTY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1CMyAgIChoZXgpCQlOT0tJQSBNVUxUSU1FRElBIFRFUk1JTkFMUworMDAxMEIzICAgICAoYmFzZSAxNikJCU5PS0lBIE1VTFRJTUVESUEgVEVSTUlOQUxTCisJCQkJTk9LSUEgSE9NRSBDT01NVU5JQ0FUSU9OUworCQkJCURJU0tFVFRHQVRBTiAxMQorCQkJCVNFLTU4MyAzNSBMSU5LT1BJTkcgIAorCQkJCVNXRURFTgorCiswMC0xMC1CNCAgIChoZXgpCQlBVE1PU1BIRVJFIE5FVFdPUktTCiswMDEwQjQgICAgIChiYXNlIDE2KQkJQVRNT1NQSEVSRSBORVRXT1JLUworCQkJCTEwNDYwIEJBTkRMRVkgRFJJVkUKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUI1ICAgKGhleCkJCUFDQ1RPTiBURUNITk9MT0dZIENPUlBPUkFUSU9OCiswMDEwQjUgICAgIChiYXNlIDE2KQkJQUNDVE9OIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKwkJCQlOTy4xLCBDUkVBVElPTiBSRC4gSUlJCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOQ0hVIDMwMCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC1CNiAgIChoZXgpCQlFTlRSQVRBIENPTU1VTklDQVRJT05TIENPUlAuCiswMDEwQjYgICAgIChiYXNlIDE2KQkJRU5UUkFUQSBDT01NVU5JQ0FUSU9OUyBDT1JQLgorCQkJCTU3NCBIRVJJVEFHRSBSRC4KKwkJCQlTT1VUSEJVUlkgQ1QgMDY0ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUI3ICAgKGhleCkJCUNPWU9URSBURUNITk9MT0dJRVMsIExMQworMDAxMEI3ICAgICAoYmFzZSAxNikJCUNPWU9URSBURUNITk9MT0dJRVMsIExMQworCQkJCTQzNjAgUEFSSyBURVJSQUNFIERSSVZFCisJCQkJV0VTVExBS0UgVklMTEFHRSBDQSA5MTM2MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQjggICAoaGV4KQkJSVNISUdBS0kgQ09NUFVURVIgU1lTVEVNIENPLgorMDAxMEI4ICAgICAoYmFzZSAxNikJCUlTSElHQUtJIENPTVBVVEVSIFNZU1RFTSBDTy4KKwkJCQkxLTEtMSwgS1lPQkFTSEksCisJCQkJQ0hVTy1LVQorCQkJCVRva3lvICAKKwkJCQlKQVBBTgorCiswMC0xMC1COSAgIChoZXgpCQlNQVhUT1IgQ09SUC4KKzAwMTBCOSAgICAgKGJhc2UgMTYpCQlNQVhUT1IgQ09SUC4KKwkJCQkyMTkwIE1JTExFUiBEUklWRQorCQkJCUxPTkdNT05UIENPIDgwNTAxLTY3NDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUJBICAgKGhleCkJCU1BUlRJTkhPLURBVklTIFNZU1RFTVMsIElOQy4KKzAwMTBCQSAgICAgKGJhc2UgMTYpCQlNQVJUSU5ITy1EQVZJUyBTWVNURU1TLCBJTkMuCisJCQkJMTI2MCBPTEQgSU5ORVMgUk9BRAorCQkJCU9UVEFXQSwgT05UQVJJTyBLMUIgM1YzICAKKwkJCQlDQU5BREEKKworMDAtMTAtQkIgICAoaGV4KQkJREFUQSAmIElORk9STUFUSU9OIFRFQ0hOT0xPR1kKKzAwMTBCQiAgICAgKGJhc2UgMTYpCQlEQVRBICYgSU5GT1JNQVRJT04gVEVDSE5PTE9HWQorCQkJCVRFQ0hOT0xPR1kgSE9VU0UKKwkJCQkxIE5PUk1BTlRPTiBMQU5FCisJCQkJQk9UVEVTRk9SRCwgTk9UVElOR0hBTSBORzEzIE9FTCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTAtQkMgICAoaGV4KQkJQWFzdHJhIFRlbGVjb20KKzAwMTBCQyAgICAgKGJhc2UgMTYpCQlBYXN0cmEgVGVsZWNvbQorCQkJCTggRmVkZXJhbCBTdHJlZXQKKwkJCQlCaWxsZXJpY2EgTUEgMDE4MjEtMzU3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQkQgICAoaGV4KQkJVEhFIFRFTEVDT01NVU5JQ0FUSU9OIFRFQ0hOT0xPR1kgQ09NTUlUVEVFIChUVEMpCiswMDEwQkQgICAgIChiYXNlIDE2KQkJVEhFIFRFTEVDT01NVU5JQ0FUSU9OIFRFQ0hOT0xPR1kgQ09NTUlUVEVFIChUVEMpCisJCQkJMS0xLTEyIFNoaWJhIEtvdWVuLCBNaW5hdG8ta3UKKwkJCQlNSU5BVE8tS1UsICAgVE9LWU8gMTA1LTAwMTEKKwkJCQlKQVBBTgorCiswMC0xMC1CRSAgIChoZXgpCQlNQVJDSCBORVRXT1JLUyBDT1JQT1JBVElPTgorMDAxMEJFICAgICAoYmFzZSAxNikJCU1BUkNIIE5FVFdPUktTIENPUlBPUkFUSU9OCisJCQkJMzAzIFRlcnJ5IEZveCBEcml2ZQorCQkJCU9UVEFXQSwgT05UQVJJTyAgIEsySyAzSjEKKwkJCQlDQU5BREEKKworMDAtMTAtQkYgICAoaGV4KQkJSW50ZXJBaXIgV2lyZWxlc3MKKzAwMTBCRiAgICAgKGJhc2UgMTYpCQlJbnRlckFpciBXaXJlbGVzcworCQkJCTQ4NSBDQVlVR0EgUk9BRAorCQkJCUJVRkZBTE8gTlkgMTQyMjUtMDIyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQzAgICAoaGV4KQkJQVJNQSwgSW5jLgorMDAxMEMwICAgICAoYmFzZSAxNikJCUFSTUEsIEluYy4KKwkJCQk0ODUxIE5vcnRoc2hvcmUgTGFuZQorCQkJCU5vcnRoIExpdHRsZSBSb2NrIEFSIDcyMTE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1DMSAgIChoZXgpCQlPSSBFTEVDVFJJQyBDTy4sIExURC4KKzAwMTBDMSAgICAgKGJhc2UgMTYpCQlPSSBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQk3LTMtMTYgS0lLVU5BCisJCQkJS09IT0tVLUtVCisJCQkJWU9LT0hBTUEgIDIyMiAgCisJCQkJSkFQQU4KKworMDAtMTAtQzIgICAoaGV4KQkJV0lMTE5FVCwgSU5DLgorMDAxMEMyICAgICAoYmFzZSAxNikJCVdJTExORVQsIElOQy4KKwkJCQlKT1dBLVRBS0FOQVdBICBCTERHLiA4RgorCQkJCVRBS0FOQVdBIDEtNS00LCBNSU5BVE8tS1UsCisJCQkJVE9LWU8gIAorCQkJCUpBUEFOCisKKzAwLTEwLUMzICAgKGhleCkJCUNTSS1DT05UUk9MIFNZU1RFTVMKKzAwMTBDMyAgICAgKGJhc2UgMTYpCQlDU0ktQ09OVFJPTCBTWVNURU1TCisJCQkJSU5URVJOQVRJT05BTAorCQkJCVBPQiA1OTQ2OQorCQkJCURBTExBUyBUWCA3NTIyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQzQgICAoaGV4KQkJTUVESUEgTElOS1MgQ08uLCBMVEQuCiswMDEwQzQgICAgIChiYXNlIDE2KQkJTUVESUEgTElOS1MgQ08uLCBMVEQuCisJCQkJS1NQIEVBU1QgQkxERy4gNjA0LCBTQUtBRE8gMy0yLTEsCisJCQkJIFRBS0FUU1UtS1UgS0FXQVNBS0ktU0hJLAorCQkJCUthbmFnYXdhLWtlbiAyMTQgIAorCQkJCUpBUEFOCisKKzAwLTEwLUM1ICAgKGhleCkJCVBST1RPQ09MIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAxMEM1ICAgICAoYmFzZSAxNikJCVBST1RPQ09MIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTQgRklSU1QgU1RSRUVUCisJCQkJQlJJREdFV0FURVIgTUEgMDIzMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUM2ICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAxMEM2ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTEFORSAzNTEsU0VDLjEsIFRBSVBJTkcgUkQuCisJCQkJVFNBT1RVRU4sIE5BTlRPVSA1NDI2MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtQzcgICAoaGV4KQkJREFUQSBUUkFOU01JU1NJT04gTkVUV09SSworMDAxMEM3ICAgICAoYmFzZSAxNikJCURBVEEgVFJBTlNNSVNTSU9OIE5FVFdPUksKKwkJCQk5MTEwIFcuIERPREdFIFJELiAtIFNURS4jMjAwCisJCQkJT01BSEEgTkUgNjgxMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUM4ICAgKGhleCkJCUNPTU1VTklDQVRJT05TIEVMRUNUUk9OSUNTIFNFQ1VSSVRZIEdST1VQCiswMDEwQzggICAgIChiYXNlIDE2KQkJQ09NTVVOSUNBVElPTlMgRUxFQ1RST05JQ1MgU0VDVVJJVFkgR1JPVVAKKwkJCQkxMC80VzIyIEZJRERMRVJTIEdSRUVOIExBTkUKKwkJCQlCZW5oYWxsLCBDaGVsdGVuaGFtIEdsb3VzdGVyIEdMNTIgNUFKIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEwLUM5ICAgKGhleCkJCU1JVFNVQklTSEkgRUxFQ1RST05JQ1MgTE9HSVNUSUMgU1VQUE9SVCBDTy4KKzAwMTBDOSAgICAgKGJhc2UgMTYpCQlNSVRTVUJJU0hJIEVMRUNUUk9OSUNTIExPR0lTVElDIFNVUFBPUlQgQ08uCisJCQkJCisJCQkJU0hPTkFOIFdvcmtzLCA3MzAtMTEsIEtBTUlNQUNISVlBCisJCQkJS2FtYWt1cmEtY2l0eSwgS2FuYWdhd2EgMjQ3ICAKKwkJCQlKQVBBTgorCiswMC0xMC1DQSAgIChoZXgpCQlUZWxjbyBTeXN0ZW1zLCBJbmMuIAorMDAxMENBICAgICAoYmFzZSAxNikJCVRlbGNvIFN5c3RlbXMsIEluYy4gCisJCQkJMTUgQmVya3NoaXJlIFJvYWQKKwkJCQlNYW5zZmllbGQsIE1BIDAyMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1DQiAgIChoZXgpCQlGQUNJVCBLLksuCiswMDEwQ0IgICAgIChiYXNlIDE2KQkJRkFDSVQgSy5LLgorCQkJCUhJTUVJIE5JSE9NQkFTSEkgQkxERy4gM0YKKwkJCQkxMi0zLU5JSE9NQkFTSEktS09CVU5BQ0hPCisJCQkJQ0hVTy1LVSwgVE9LWU8gMTAzICAKKwkJCQlKQVBBTgorCiswMC0xMC1DQyAgIChoZXgpCQlDTFAgQ09NUFVURVIgTE9HSVNUSUsgUExBTlVORyBHbWJICiswMDEwQ0MgICAgIChiYXNlIDE2KQkJQ0xQIENPTVBVVEVSIExPR0lTVElLIFBMQU5VTkcgR21iSAorCQkJCUJBU1NFUk1BTk5TVFIuIDIxCisJCQkJIEQtODEyNDUgTVVFTkNIRU4gIAorCQkJCUdFUk1BTlkKKworMDAtMTAtQ0QgICAoaGV4KQkJSU5URVJGQUNFIENPTkNFUFQKKzAwMTBDRCAgICAgKGJhc2UgMTYpCQlJTlRFUkZBQ0UgQ09OQ0VQVAorCQkJCTMgVkVORUxMRSBkZSBLRVJHT1MKKwkJCQkyOTAwMCBRVUlNUEVSICAKKwkJCQlGUkFOQ0UKKworMDAtMTAtQ0UgICAoaGV4KQkJVk9MQU1QLCBMVEQuCiswMDEwQ0UgICAgIChiYXNlIDE2KQkJVk9MQU1QLCBMVEQuCisJCQkJVU5JVCAzIFJJVkVSU0lERSBCVVNJTkVTUyBQQVJLCisJCQkJRE9HRkxVRCBXQVksCisJCQkJRkFSTkhBTSwgU1VSUkVZIEVOR0xBTkQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTAtQ0YgICAoaGV4KQkJRklCRVJMQU5FIENPTU1VTklDQVRJT05TCiswMDEwQ0YgICAgIChiYXNlIDE2KQkJRklCRVJMQU5FIENPTU1VTklDQVRJT05TCisJCQkJMTMxOCBSRURXT09EIFdBWSwgIzIwMAorCQkJCVBFVEFMVU1BIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1EMCAgIChoZXgpCQlXSVRDT00sIExURC4KKzAwMTBEMCAgICAgKGJhc2UgMTYpCQlXSVRDT00sIExURC4KKwkJCQlQLk8uQi4gMjI1MAorCQkJCUhBSUZBICAzMTAyMSAgCisJCQkJSVNSQUVMCisKKzAwLTEwLUQxICAgKGhleCkJCVRvcCBMYXllciBOZXR3b3JrcywgSW5jLgorMDAxMEQxICAgICAoYmFzZSAxNikJCVRvcCBMYXllciBOZXR3b3JrcywgSW5jLgorCQkJCTQgTUVDSEFOSUMgU1QuLSBTVEUjMjEyCisJCQkJTkFUSUNLIE1BIDAxNzYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1EMiAgIChoZXgpCQlOSVRUTyBUU1VTSElOS0kgQ08uLCBMVEQKKzAwMTBEMiAgICAgKGJhc2UgMTYpCQlOSVRUTyBUU1VTSElOS0kgQ08uLCBMVEQKKwkJCQk3LTI3LTExLCBUT0RPUk9LSSwgU0VUQUdBWUEtS1UKKwkJCQlUT0tZTyAxNTEgIAorCQkJCUpBUEFOCisKKzAwLTEwLUQzICAgKGhleCkJCUdSSVBTIEVMRUNUUk9OSUMgR01CSAorMDAxMEQzICAgICAoYmFzZSAxNikJCUdSSVBTIEVMRUNUUk9OSUMgR01CSAorCQkJCU5JRVNFTkJFUkdFUkdBU1NFIDM3CisJCQkJQS04MDIwIEdSQVogIAorCQkJCUFVU1RSSUEKKworMDAtMTAtRDQgICAoaGV4KQkJU1RPUkFHRSBDT01QVVRFUiBDT1JQT1JBVElPTgorMDAxMEQ0ICAgICAoYmFzZSAxNikJCVNUT1JBR0UgQ09NUFVURVIgQ09SUE9SQVRJT04KKwkJCQkxMSBSSVZFUlNJREUgU1RSRUVUCisJCQkJTkFTSFVBIE5IIDAzMDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1ENSAgIChoZXgpCQlJTUFTREUgQ0FOQVJJQVMsIFMuQS4KKzAwMTBENSAgICAgKGJhc2UgMTYpCQlJTUFTREUgQ0FOQVJJQVMsIFMuQS4KKwkJCQlVUkIuIEVMIENFQkFEQUwKKwkJCQlDL0RSLiBKVUFOIERHVUVaLlBFUkVaLCAzOS0yCisJCQkJMzUwMDggTEFTIFBBTE1BUyBHLkMuICAKKwkJCQlTUEFJTgorCiswMC0xMC1ENiAgIChoZXgpCQlJVFQgLSBBL0NECiswMDEwRDYgICAgIChiYXNlIDE2KQkJSVRUIC0gQS9DRAorCQkJCURFUFQuIDg1MjEKKwkJCQkxMDAgS0lOR1NMQU5EIFJPQUQKKwkJCQlDTElGVE9OIE5KIDA3MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1ENyAgIChoZXgpCQlBUkdPU1kgUkVTRUFSQ0ggSU5DLgorMDAxMEQ3ICAgICAoYmFzZSAxNikJCUFSR09TWSBSRVNFQVJDSCBJTkMuCisJCQkJTk8uIDQ0LCBMQU5FIDQxMSwgQ0hVTkcgSFVBIFJECisJCQkJU0VDLjQsIEhTSU5DSFUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEwLUQ4ICAgKGhleCkJCUNBTElTVEEKKzAwMTBEOCAgICAgKGJhc2UgMTYpCQlDQUxJU1RBCisJCQkJOTggSElHSCBTVFJFRVQsIFRIQU1FCisJCQkJT1hGT1JEU0hJUkUgT1g5IDNFSCBFTkdMQU5EIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEwLUQ5ICAgKGhleCkJCUlCTSBKQVBBTiwgRlVKSVNBV0EgTVQrRAorMDAxMEQ5ICAgICAoYmFzZSAxNikJCUlCTSBKQVBBTiwgRlVKSVNBV0EgTVQrRAorCQkJCUtJUklIQVJBLUNITyAxLCBGVUpJU0FXQSBDSVRZCisJCQkJS0FOQUdBV0EgMjUyICAKKwkJCQlKQVBBTgorCiswMC0xMC1EQSAgIChoZXgpCQlNT1RJT04gRU5HSU5FRVJJTkcsIElOQy4KKzAwMTBEQSAgICAgKGJhc2UgMTYpCQlNT1RJT04gRU5HSU5FRVJJTkcsIElOQy4KKwkJCQkzMyBTLkxBIFBBVEVSQSBMTgorCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLURCICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MsIEluYy4KKzAwMTBEQiAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzLCBJbmMuCisJCQkJMTE5NCBOLiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLURDICAgKGhleCkJCU1JQ1JPLVNUQVIgSU5URVJOQVRJT05BTCBDTy4sIExURC4KKzAwMTBEQyAgICAgKGJhc2UgMTYpCQlNSUNSTy1TVEFSIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCisJCQkJTk8uIDY5LCBMSS1ERSBTVC4sIEpVTkctSEUgQ0lUWQorCQkJCSBUQUlQRUkgSFNJRU4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtREQgICAoaGV4KQkJRU5BQkxFIFNFTUlDT05EVUNUT1IsIElOQy4KKzAwMTBERCAgICAgKGJhc2UgMTYpCQlFTkFCTEUgU0VNSUNPTkRVQ1RPUiwgSU5DLgorCQkJCTE3NDAgVEVDSE5PTE9HWSBEUklWRQorCQkJCVNVSVRFICMxMTAKKwkJCQlTQU4gSk9TRSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtREUgICAoaGV4KQkJSU5URVJOQVRJT05BTCBEQVRBQ0FTVElORyBDT1JQT1JBVElPTgorMDAxMERFICAgICAoYmFzZSAxNikJCUlOVEVSTkFUSU9OQUwgREFUQUNBU1RJTkcgQ09SUE9SQVRJT04KKwkJCQkyNjgwIFFVRUVOU1ZJRVcgRFJJVkUKKwkJCQlPVFRBV0EsIE9OVEFSSU8gSzJCIDhINgorCQkJCUNBTkFEQQorCiswMC0xMC1ERiAgIChoZXgpCQlSSVNFIENPTVBVVEVSIElOQy4KKzAwMTBERiAgICAgKGJhc2UgMTYpCQlSSVNFIENPTVBVVEVSIElOQy4KKwkJCQk5RiwgTk8uIDMwNi0zLCBUQVRVTkcgUkQuCisJCQkJU0VDLiAxLCBIU0kgQ0hJSCwKKwkJCQlUQUlQRUkgSFNJRU4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtRTAgICAoaGV4KQkJT3JhY2xlIENvcnBvcmF0aW9uCiswMDEwRTAgICAgIChiYXNlIDE2KQkJT3JhY2xlIENvcnBvcmF0aW9uCisJCQkJNTAwIE9yYWNsZSBQYXJrd2F5CisJCQkJUmVkd29vZCBTaG9yZXMgQ0EgOTQwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUUxICAgKGhleCkJCVMuSS4gVEVDSCwgSU5DLgorMDAxMEUxICAgICAoYmFzZSAxNikJCVMuSS4gVEVDSCwgSU5DLgorCQkJCVAuTy4gQk9YIDYwOQorCQkJCUdFTkVWQSBJTCA2MDEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRTIgICAoaGV4KQkJQXJyYXlDb21tLCBJbmMuCiswMDEwRTIgICAgIChiYXNlIDE2KQkJQXJyYXlDb21tLCBJbmMuCisJCQkJMzE0MSBaQU5LRVIgUk9BRAorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1FMyAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMTBFMyAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRTQgICAoaGV4KQkJTlNJIENPUlBPUkFUSU9OCiswMDEwRTQgICAgIChiYXNlIDE2KQkJTlNJIENPUlBPUkFUSU9OCisJCQkJUC5PLiBCT1ggNjM1CisJCQkJV0lMU09OVklMTEUgT1IgOTcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUU1ICAgKGhleCkJCVNPTEVDVFJPTiBURVhBUworMDAxMEU1ICAgICAoYmFzZSAxNikJCVNPTEVDVFJPTiBURVhBUworCQkJCTEyNDU1IFJFU0VBUkNIIEJMVkQuIE0vUyAyMjA1CisJCQkJQVVTVElOIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1FNiAgIChoZXgpCQlBUFBMSUVEIElOVEVMTElHRU5UIFNZU1RFTVMsIElOQy4KKzAwMTBFNiAgICAgKGJhc2UgMTYpCQlBUFBMSUVEIElOVEVMTElHRU5UIFNZU1RFTVMsIElOQy4KKwkJCQkzOTIzIFJBTkNIRVJPIERSSVZFCisJCQkJQU5OIEFSQk9SIE1JIDQ4MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1FNyAgIChoZXgpCQlCcmVlemVDb20KKzAwMTBFNyAgICAgKGJhc2UgMTYpCQlCcmVlemVDb20KKwkJCQlQTyBCb3ggMTMxMzkKKwkJCQlBdGlkaW0gVGVjaG5vbG9naWNhbCBQYXJrLCBCbGRnLiAxCisJCQkJVGVsLUF2aXYgIAorCQkJCUlTUkFFTAorCiswMC0xMC1FOCAgIChoZXgpCQlURUxPQ0lUWSwgSU5DT1JQT1JBVEVECiswMDEwRTggICAgIChiYXNlIDE2KQkJVEVMT0NJVFksIElOQ09SUE9SQVRFRAorCQkJCTk5MiBTT1VUSCBERSBBTlpBIEJMVkQKKwkJCQlTQU4gSk9TRSBDQSA5NTEyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRTkgICAoaGV4KQkJUkFJRFRFQyBMVEQuCiswMDEwRTkgICAgIChiYXNlIDE2KQkJUkFJRFRFQyBMVEQuCisJCQkJQ0FTVExFIFJPQUQKKwkJCQlMSVRUTEUgSVNMQU5EIElORFVTVFJJQUwgRVNUQVRFCisJCQkJTGl0dGxlIElzbGFuZCBDb3VudHkgQ29yayAKKwkJCQlJUkVMQU5ECisKKzAwLTEwLUVBICAgKGhleCkJCUFERVBUIFRFQ0hOT0xPR1kKKzAwMTBFQSAgICAgKGJhc2UgMTYpCQlBREVQVCBURUNITk9MT0dZCisJCQkJMTUwIFJPU0UgT1JDSEFSRCBXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRUIgICAoaGV4KQkJU0VMU0lVUyBTWVNURU1TLCBJTkMuCiswMDEwRUIgICAgIChiYXNlIDE2KQkJU0VMU0lVUyBTWVNURU1TLCBJTkMuCisJCQkJNTA1NyBLRUxMRVIgU1BSSU5HUyBSRC4KKwkJCQlEQUxMQVMgVFggNzUyNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUVDICAgKGhleCkJCVJQQ0csIExMQworMDAxMEVDICAgICAoYmFzZSAxNikJCVJQQ0csIExMQworCQkJCTc0OSBNSU5FUiBST0FECisJCQkJSElHSExBTkQgSFRTIE9IIDQ0MTQzLTIxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUVEICAgKGhleCkJCVNVTkRBTkNFIFRFQ0hOT0xPR1ksIElOQy4KKzAwMTBFRCAgICAgKGJhc2UgMTYpCQlTVU5EQU5DRSBURUNITk9MT0dZLCBJTkMuCisJCQkJMjAxMTEgU1RFVkVOUyBDUkVFSyBCTFZELgorCQkJCVNVSVRFICMxMzgKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUVFICAgKGhleCkJCUNUSSBQUk9EVUNUUywgSU5DLgorMDAxMEVFICAgICAoYmFzZSAxNikJCUNUSSBQUk9EVUNUUywgSU5DLgorCQkJCTEyMTEgVy4gU0hBUk9OIFJELgorCQkJCUNJTkNJTk5BVEkgT0ggNDUyNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUVGICAgKGhleCkJCURCVEVMIElOQ09SUE9SQVRFRAorMDAxMEVGICAgICAoYmFzZSAxNikJCURCVEVMIElOQ09SUE9SQVRFRAorCQkJCU5PLjI5IFRaVS1DSElBTkcgU1QuLAorCQkJCVRVLUNIRU5HIFRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC1GMSAgIChoZXgpCQlJLU8gQ09SUE9SQVRJT04KKzAwMTBGMSAgICAgKGJhc2UgMTYpCQlJLU8gQ09SUE9SQVRJT04KKwkJCQkyMjU2IFNPVVRIIDM2MDAgV0VTVAorCQkJCVNBTFQgTEFLRSBDSVRZIFVUIDg0MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1GMiAgIChoZXgpCQlBTlRFQworMDAxMEYyICAgICAoYmFzZSAxNikJCUFOVEVDCisJCQkJNDkyMCBBVkFMT04gUklER0UgUEtXWQorCQkJCVNVSVRFICM2MDAKKwkJCQlOT1JDUk9TUyBHQSAzMDA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRjMgICAoaGV4KQkJTmV4Y29tIEludGVybmF0aW9uYWwgQ28uLCBMdGQuCiswMDEwRjMgICAgIChiYXNlIDE2KQkJTmV4Y29tIEludGVybmF0aW9uYWwgQ28uLCBMdGQuCisJCQkJMThGLCBOby4gNzE2LCBDaHVuZy1DaGVuZyBSb2FkLAorCQkJCUNodW5nIEhvLAorCQkJCVRhaXBlaSBIc2llbiAyMzUsICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEwLUY0ICAgKGhleCkJCVZlcnRpY2FsIENvbW11bmljYXRpb25zCiswMDEwRjQgICAgIChiYXNlIDE2KQkJVmVydGljYWwgQ29tbXVuaWNhdGlvbnMKKwkJCQkzOTc5IEZyZWVkb20gQ2lyY2xlICM0MDAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NC0xMjQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1GNSAgIChoZXgpCQlBTUhFUlNUIFNZU1RFTVMsIElOQy4KKzAwMTBGNSAgICAgKGJhc2UgMTYpCQlBTUhFUlNUIFNZU1RFTVMsIElOQy4KKwkJCQkzMCBXSUxTT04gUk9BRAorCQkJCUJVRkZBTE8gTlkgMTQyMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUY2ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTBGNiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUY3ICAgKGhleCkJCUlSSUlDSEkgVEVDSE5PTE9HSUVTIEluYy4KKzAwMTBGNyAgICAgKGJhc2UgMTYpCQlJUklJQ0hJIFRFQ0hOT0xPR0lFUyBJbmMuCisJCQkJMS0yNi03IENIVU8sIE5BS0FOQS1LVQorCQkJCSBUT0tZTyAxNjQgIAorCQkJCUpBUEFOCisKKzAwLTEwLUY4ICAgKGhleCkJCU5paWtrZSBUZWNobm8gU3lzdGVtIENvLiBMdGQKKzAwMTBGOCAgICAgKGJhc2UgMTYpCQlOaWlra2UgVGVjaG5vIFN5c3RlbSBDby4gTHRkCisJCQkJMTg1MC0xIFRzdXJ1bWEsIE1hY2hpZGEtc2hpCisJCQkJVG9reW8gIDE5NC0wMDA0CisJCQkJSkFQQU4KKworMDAtMTAtRjkgICAoaGV4KQkJVU5JUVVFIFNZU1RFTVMsIElOQy4KKzAwMTBGOSAgICAgKGJhc2UgMTYpCQlVTklRVUUgU1lTVEVNUywgSU5DLgorCQkJCTE4MSBET04gUEFSSyBSRAorCQkJCU1BUktIQU0sIE9OVEFSSU8gTDNSIDFDMiAgCisJCQkJQ0FOQURBCisKKzAwLTEwLUZBICAgKGhleCkJCUFwcGxlIEluYworMDAxMEZBICAgICAoYmFzZSAxNikJCUFwcGxlIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCU1TIDM1LUdQTworCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRkIgICAoaGV4KQkJWklEQSBURUNITk9MT0dJRVMgTElNSVRFRAorMDAxMEZCICAgICAoYmFzZSAxNikJCVpJREEgVEVDSE5PTE9HSUVTIExJTUlURUQKKwkJCQk4L0YgQkxPQ0sgQSAgR09PRFZJRVcgSU5EVVNUUklBTCBCVUlMRElOCisJCQkJS0lOIEZBVCBTVFIgVE1UTCAyMTMKKwkJCQlUVUVOIE1VTiBOVCAgCisJCQkJSE9ORyBLT05HCisKKzAwLTEwLUZDICAgKGhleCkJCUJST0FEQkFORCBORVRXT1JLUywgSU5DLgorMDAxMEZDICAgICAoYmFzZSAxNikJCUJST0FEQkFORCBORVRXT1JLUywgSU5DLgorCQkJCTM3IFNURVZFTlNPTiBST0FECisJCQkJV0lOTklQRUcsIE1BTklUT0JBIFIzSCAwSDkgIAorCQkJCUNBTkFEQQorCiswMC0xMC1GRCAgIChoZXgpCQlDT0NPTSBBL1MKKzAwMTBGRCAgICAgKGJhc2UgMTYpCQlDT0NPTSBBL1MKKwkJCQlURUxFVE9OVkVKIDgKKwkJCQlESyAyODYwIFNPQk9SRyAgCisJCQkJREVOTUFSSworCiswMC0xMC1GRSAgIChoZXgpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorMDAxMEZFICAgICAoYmFzZSAxNikJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCisJCQkJMzAxIFJPQ0tSSU1NT04gQkxWRCwgU09VVEgKKwkJCQlNL1MgQ1hPMS0yL04yNgorCQkJCUNPTE9SQURPIFNQUklOR1MgQ08gODA5MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUZGICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTBGRiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTAwICAgKGhleCkJCVNjaG5laWRlciBFbGVjdHJpYworMDAxMTAwICAgICAoYmFzZSAxNikJCVNjaG5laWRlciBFbGVjdHJpYworCQkJCTU0NjAgUG90dHN2aWxsZSBQaWtlCisJCQkJTGVlc3BvcnQgUEEgMTk1MzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTAxICAgKGhleCkJCUNFVCBUZWNobm9sb2dpZXMgUHRlIEx0ZAorMDAxMTAxICAgICAoYmFzZSAxNikJCUNFVCBUZWNobm9sb2dpZXMgUHRlIEx0ZAorCQkJCTEwMCBKdXJvbmcgRWFzdCBTdHJlZXQgMjEKKwkJCQlTaW5nYXBvcmUgVGVjaG5vbG9naWVzIEJ1aWxkaW5nCisJCQkJNjA5NjAyCisJCQkJU0lOR0FQT1JFCisKKzAwLTExLTAyICAgKGhleCkJCUF1cm9yYSBNdWx0aW1lZGlhIENvcnAuCiswMDExMDIgICAgIChiYXNlIDE2KQkJQXVyb3JhIE11bHRpbWVkaWEgQ29ycC4KKwkJCQkyMDUgQ29tbWVyY2lhbCBDb3VydAorCQkJCU1vcmdhbnZpbGxlIE5ldyBKZXJzZXkgMDc3NTEtMTA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMDMgICAoaGV4KQkJa2F3YW11cmEgZWxlY3RyaWMgaW5jLgorMDAxMTAzICAgICAoYmFzZSAxNikJCWthd2FtdXJhIGVsZWN0cmljIGluYy4KKwkJCQkzLTg2IGFrYXRzdWtpLWNobworCQkJCXNldG8gYWljaGkgNDg5LTAwNzEKKwkJCQlKQVBBTgorCiswMC0xMS0wNCAgIChoZXgpCQlURUxFWFkKKzAwMTEwNCAgICAgKGJhc2UgMTYpCQlURUxFWFkKKwkJCQkxMTE2LCBIWVVOREFJIDQxIFRPV0VSLCA5MTctOQorCQkJCU1PSy1ET05HLCBZQU5HQ0hVTi1LVSwKKwkJCQlTRU9VTCAgMTU4LTcyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS0wNSAgIChoZXgpCQlTdW5wbHVzIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDExMDUgICAgIChiYXNlIDE2KQkJU3VucGx1cyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTE5LCBJbm5vdmF0aW9uIEZpcnN0IFJvYWQsIEhzaW5jaHUgU2NpZW5jZSBQYXJrCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS0wNiAgIChoZXgpCQlTaWVtZW5zIE5WIChCZWxnaXVtKQorMDAxMTA2ICAgICAoYmFzZSAxNikJCVNpZW1lbnMgTlYgKEJlbGdpdW0pCisJCQkJQXRlYWxhYW4gMzQKKwkJCQlIZXJlbnRhbHMgQW50d2VycCAyMjAwCisJCQkJQkVMR0lVTQorCiswMC0xMS0wNyAgIChoZXgpCQlSR0IgTmV0d29ya3MgSW5jLgorMDAxMTA3ICAgICAoYmFzZSAxNikJCVJHQiBOZXR3b3JrcyBJbmMuCisJCQkJMjkyOSBDYW1wdXMgRHJpdmUKKwkJCQlTdWl0ZSAxNjUKKwkJCQlTYW4gTWF0ZW8gQ0EgOTQ0MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTA4ICAgKGhleCkJCU9yYml0YWwgRGF0YSBDb3Jwb3JhdGlvbgorMDAxMTA4ICAgICAoYmFzZSAxNikJCU9yYml0YWwgRGF0YSBDb3Jwb3JhdGlvbgorCQkJCTE5MDAgUy4gTm9yZm9sayBTdC4gU3RlIDMyMAorCQkJCVNhbiBNYXRlbyBDQSA5NDQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMDkgICAoaGV4KQkJTWljcm8tU3RhciBJbnRlcm5hdGlvbmFsCiswMDExMDkgICAgIChiYXNlIDE2KQkJTWljcm8tU3RhciBJbnRlcm5hdGlvbmFsCisJCQkJTm8gNjksIExpLURlIFN0cmVldCwgSnVuZy1IZSBDaXR5LAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS0wQSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMTEwQSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDcwNDA1CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMEIgICAoaGV4KQkJRnJhbmtsaW4gVGVjaG5vbG9neSBTeXN0ZW1zCiswMDExMEIgICAgIChiYXNlIDE2KQkJRnJhbmtsaW4gVGVjaG5vbG9neSBTeXN0ZW1zCisJCQkJMjA0MDYgRWFybCBTdAorCQkJCVRvcnJhbmNlIENBIDkwNTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0wQyAgIChoZXgpCQlBdG1hcmsgVGVjaG5vLCBJbmMuCiswMDExMEMgICAgIChiYXNlIDE2KQkJQXRtYXJrIFRlY2hubywgSW5jLgorCQkJCTJGIFNEIEJMREcsIDItMi0zLTE0IEF0c3ViZXRzdS1uaXNoaSwgQXRzdWJldHN1LWt1CisJCQkJU2FwcG9ybyBIb2trYWlkbyAwMDQtMDA2MgorCQkJCUpBUEFOCisKKzAwLTExLTBEICAgKGhleCkJCVNBTkJsYXplIFRlY2hub2xvZ3ksIEluYy4KKzAwMTEwRCAgICAgKGJhc2UgMTYpCQlTQU5CbGF6ZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMiBDbG9jayBUb3dlciBQbGFjZQorCQkJCU1heW5hcmQgTUEgMDE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTBFICAgKGhleCkJCVRzdXJ1c2FraSBTZWFsYW5kIFRyYW5zcG9ydGF0aW9uIENvLiBMdGQuCiswMDExMEUgICAgIChiYXNlIDE2KQkJVHN1cnVzYWtpIFNlYWxhbmQgVHJhbnNwb3J0YXRpb24gQ28uIEx0ZC4KKwkJCQkxMDAwIE1pc2EKKwkJCQlPaXRhICA4NzAwMTk2CisJCQkJSkFQQU4KKworMDAtMTEtMEYgICAoaGV4KQkJbmV0cGxhdCxJbmMuCiswMDExMEYgICAgIChiYXNlIDE2KQkJbmV0cGxhdCxJbmMuCisJCQkJMkYgT2x5bXBpYSBDZW50ZXIsIDgyOC0xMCwgWWVva3NhbS1kb25nLCBHYW5nbmFtLWd1CisJCQkJU0VPVUwgIDEzNS05MzUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtMTAgICAoaGV4KQkJTWF4YW5uYSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxMTEwICAgICAoYmFzZSAxNikJCU1heGFubmEgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlSb29tMjAxLCBOby40Mi0zLCBMdXl1YW4gUm9hZAorCQkJCUd1YW5nemhvdSAgNTEwMDk1CisJCQkJQ0hJTkEKKworMDAtMTEtMTEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzAwMTExMSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCTIxMTEgTkUgMjV0aCBBdmVudWUKKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTEyICAgKGhleCkJCUhvbmV5d2VsbCBDTVNTCiswMDExMTIgICAgIChiYXNlIDE2KQkJSG9uZXl3ZWxsIENNU1MKKwkJCQk4MzIzIExpbmRiZXJnaCBDdAorCQkJCVNhcmFzb3RhIEZMIDM0MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0xMyAgIChoZXgpCQlGcmF1bmhvZmVyIEZPS1VTCiswMDExMTMgICAgIChiYXNlIDE2KQkJRnJhdW5ob2ZlciBGT0tVUworCQkJCUthaXNlcmluLUF1Z3VzdGEtQWxsZWUgMzEKKwkJCQlCZXJsaW4gIDEwNTg5CisJCQkJR0VSTUFOWQorCiswMC0xMS0xNCAgIChoZXgpCQlFdmVyRm9jdXMgRWxlY3Ryb25pY3MgQ29ycC4KKzAwMTExNCAgICAgKGJhc2UgMTYpCQlFdmVyRm9jdXMgRWxlY3Ryb25pY3MgQ29ycC4KKwkJCQkxMkYsIE5vLiA3OSwgU2VjLiAxLCBTaGluLVRhaSBXdSBSZC4KKwkJCQlIc2ktQ2hpIFRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTE1ICAgKGhleCkJCUVQSU4gVGVjaG5vbG9naWVzLCBJbmMuCiswMDExMTUgICAgIChiYXNlIDE2KQkJRVBJTiBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQlBY29ybiBDYW1wdXMKKwkJCQk2dGggUmVzdWx0IFdheSwgU3VpdGUgMjQ4CisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0xNiAgIChoZXgpCQlDT1RFQVUgVkVSVCBDTy4sIExURC4KKzAwMTExNiAgICAgKGJhc2UgMTYpCQlDT1RFQVUgVkVSVCBDTy4sIExURC4KKwkJCQkzLTMtMTkgS0FDSElET0tJCisJCQkJQ0hVTy1LVSBUT0tZTyAxMDQtMDA1NAorCQkJCUpBUEFOCisKKzAwLTExLTE3ICAgKGhleCkJCUNFU05FVAorMDAxMTE3ICAgICAoYmFzZSAxNikJCUNFU05FVAorCQkJCVppa292YSA0CisJCQkJUHJhaGEgNiAgMTYwIDAwCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMTEtMTggICAoaGV4KQkJQkxYIElDIERlc2lnbiBDb3JwLiwgTHRkLgorMDAxMTE4ICAgICAoYmFzZSAxNikJCUJMWCBJQyBEZXNpZ24gQ29ycC4sIEx0ZC4KKwkJCQlSbSAxMDA2LCBRdWFudHVtIFBsYXphCisJCQkJTm8uMjcsIFpoaWNodW4gUmQsIEhhaWRhbgorCQkJCUJlaWppbmcgIDEwMDA4MworCQkJCUNISU5BCisKKzAwLTExLTE5ICAgKGhleCkJCVNvbHRlcmFzLCBJbmMuCiswMDExMTkgICAgIChiYXNlIDE2KQkJU29sdGVyYXMsIEluYy4KKwkJCQk5MDAgVy4gU2FudGEgQW5pdGEgU3RyZWV0CisJCQkJU2FuIEdhYnJpZWwgQ0EgOTE3NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTFBICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDExMUEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0xQiAgIChoZXgpCQlUYXJnYSBTeXN0ZW1zIERpdiBMLTMgQ29tbXVuaWNhdGlvbnMgQ2FuYWRhCiswMDExMUIgICAgIChiYXNlIDE2KQkJVGFyZ2EgU3lzdGVtcyBEaXYgTC0zIENvbW11bmljYXRpb25zIENhbmFkYQorCQkJCTIwODEgTWVyaXZhbGUgUmQKKwkJCQlTdWl0ZSAyMDAKKwkJCQlPdHRhd2EgT250IEsyRyAxRzkKKwkJCQlDQU5BREEKKworMDAtMTEtMUMgICAoaGV4KQkJUGxlb3JhIFRlY2hub2xvZ2llcyBJbmMuCiswMDExMUMgICAgIChiYXNlIDE2KQkJUGxlb3JhIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMzU5IFRlcnJ5IEZveCBEcml2ZSwgU3VpdGUgMjMwCisJCQkJS2FuYXRhIE9OIEsySyAyRTcKKwkJCQlDQU5BREEKKworMDAtMTEtMUQgICAoaGV4KQkJSGVjdHJpeCBMaW1pdGVkCiswMDExMUQgICAgIChiYXNlIDE2KQkJSGVjdHJpeCBMaW1pdGVkCisJCQkJVW5pdCA5MDYtOTExLCA5L0YsIFN0YW5ob3BlIEhvc3VlLAorCQkJCTczNC03MzggS2luZydzIFJvYWQsCisJCQkJTm9ydGggUG9pbnQgSG9uZyBLb25nIAorCQkJCUNISU5BCisKKzAwLTExLTFFICAgKGhleCkJCUVQU0cgKEV0aGVybmV0IFBvd2VybGluayBTdGFuZGFyZGl6YXRpb24gR3JvdXApCiswMDExMUUgICAgIChiYXNlIDE2KQkJRVBTRyAoRXRoZXJuZXQgUG93ZXJsaW5rIFN0YW5kYXJkaXphdGlvbiBHcm91cCkKKwkJCQljL28gVW5pdmVyc2l0eSBvZiBBcHBsaWVkIFNjaWVuY2VzCisJCQkJUE8gQm94IDgwNQorCQkJCVdpbnRlcnRodXIgWkggQ0gtODQwMQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTExLTFGICAgKGhleCkJCURvcmVtaSBMYWJzLCBJbmMuCiswMDExMUYgICAgIChiYXNlIDE2KQkJRG9yZW1pIExhYnMsIEluYy4KKwkJCQkzMDYgRS4gQWxhbWVkYSBBdmUuCisJCQkJQnVyYmFuayBDQSA5MTUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMTIwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMTIxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjIgICAoaGV4KQkJQ0lNU1lTIEluYworMDAxMTIyICAgICAoYmFzZSAxNikJCUNJTVNZUyBJbmMKKwkJCQkjMzAxLFNpbnN1bmctY2xlYW4gQkxERywxNDAsIE5vbmdzZW8tUmksS2loZXVuZy1FdXAKKwkJCQlZb25naW4tQ2l0eSBLeXVuZ2dpLURvIDQ0OS03MTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtMjMgICAoaGV4KQkJQXBwb2ludGVjaCwgSW5jLgorMDAxMTIzICAgICAoYmFzZSAxNikJCUFwcG9pbnRlY2gsIEluYy4KKwkJCQk2Ri0yIE5vLjE5MiBUdW5nLUt1YW4gUmQuCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS0yNCAgIChoZXgpCQlBcHBsZSBDb21wdXRlcgorMDAxMTI0ICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyCisJCQkJMSBJbmlmaW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjUgICAoaGV4KQkJSUJNIENvcnAKKzAwMTEyNSAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTI2ICAgKGhleCkJCVZlbnN0YXIgSW5jLgorMDAxMTI2ICAgICAoYmFzZSAxNikJCVZlbnN0YXIgSW5jLgorCQkJCTkyNTAgT3dlbnNtb3V0aCBBdmUuCisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjcgICAoaGV4KQkJVEFTSSwgSW5jCiswMDExMjcgICAgIChiYXNlIDE2KQkJVEFTSSwgSW5jCisJCQkJNTU1MSBEcnkgRm9yayBSb2FkCisJCQkJQ2xldmVzIE9IIDQ1MDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0yOCAgIChoZXgpCQlTdHJlYW1pdAorMDAxMTI4ICAgICAoYmFzZSAxNikJCVN0cmVhbWl0CisJCQkJRmxpZ2h0IEZvcnVtIDM1NDMKKwkJCQlFaW5kaG92ZW4gNTY1NyBEVworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTExLTI5ICAgKGhleCkJCVBhcmFkaXNlIERhdGFjb20gTHRkLgorMDAxMTI5ICAgICAoYmFzZSAxNikJCVBhcmFkaXNlIERhdGFjb20gTHRkLgorCQkJCTEgV2hlYXRvbiBSb2FkCisJCQkJV2l0aGFtIEVzc2V4IFVLIENNOCAxVUoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS0yQSAgIChoZXgpCQlOaWtvIE5WCiswMDExMkEgICAgIChiYXNlIDE2KQkJTmlrbyBOVgorCQkJCUluZHVzdHJpZXBhcmsgV2VzdCA0MAorCQkJCVNpbnQtTmlrbGFhcyBPL1YgOTEwMAorCQkJCUJFTEdJVU0KKworMDAtMTEtMkIgICAoaGV4KQkJTmV0TW9kdWxlIEFHCiswMDExMkIgICAgIChiYXNlIDE2KQkJTmV0TW9kdWxlIEFHCisJCQkJTWVyaWVkd2VnIDExCisJCQkJTmllZGVyd2FuZ2VuIENIIDMxNzIKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xMS0yQyAgIChoZXgpCQlJWlQgR21iSAorMDAxMTJDICAgICAoYmFzZSAxNikJCUlaVCBHbWJICisJCQkJQW0gV2VpY2hzZWxnYXJ0ZW4gNQorCQkJCUVybGFuZ2VuIEJhdmFyaWEgOTEwNTgKKwkJCQlHRVJNQU5ZCisKKzAwLTExLTJEICAgKGhleCkJCWlQdWxzZSBTeXN0ZW1zCiswMDExMkQgICAgIChiYXNlIDE2KQkJaVB1bHNlIFN5c3RlbXMKKwkJCQkxc3QgRmxvb3IgTm92ZWxsIEhvdXNlLCBNb3JuaW5nc2lkZSBXZWRnZSBPZmZpY2UgUGFyaworCQkJCTI1NSBSaXZvbmlhIFJvYWQKKwkJCQlNb3JuaW5nc2lkZSBKb2hhbm5lc2J1cmcgMjEyOAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xMS0yRSAgIChoZXgpCQlDRUlDT00KKzAwMTEyRSAgICAgKGJhc2UgMTYpCQlDRUlDT00KKwkJCQkxNyBydWUgR2FzdG9uIEV2cmFyZAorCQkJCVRvdWxvdXNlIENlZGV4IDEgSGF1dGUtR2Fyb25uZSAzMTA5NAorCQkJCUZSQU5DRQorCiswMC0xMS0yRiAgIChoZXgpCQlBU1VTVGVrIENvbXB1dGVyIEluYy4KKzAwMTEyRiAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENvbXB1dGVyIEluYy4KKwkJCQlOby4xNTAsIExpLVRlIFJkLiwgUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTMwICAgKGhleCkJCUFsbGllZCBUZWxlc2lzIChIb25nIEtvbmcpIEx0ZC4KKzAwMTEzMCAgICAgKGJhc2UgMTYpCQlBbGxpZWQgVGVsZXNpcyAoSG9uZyBLb25nKSBMdGQuCisJCQkJUm9vbSBGLCAzL0YsIFlldW5nIFlpdSBDaG9uZyAobm8uIDgpIEluZHVzdHJpYWwgYnVpbGRpbmcsCisJCQkJMjAgV2FuZyBIb2kgUm9hZCwgS293bG9vbiBCYXksCisJCQkJSE9ORyBLT05HCisKKzAwLTExLTMxICAgKGhleCkJCVVOQVRFQ0guIENPLixMVEQKKzAwMTEzMSAgICAgKGJhc2UgMTYpCQlVTkFURUNILiBDTy4sTFRECisJCQkJQS03MjcgLEdFT1BZVU5HIFRPV04sMjAzLTEKKwkJCQlOT05IWVVORy1ET05HCisJCQkJS0FOR05BTS1HVSBTRU9VTCAxMzUtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLTMyICAgKGhleCkJCVN5bm9sb2d5IEluY29ycG9yYXRlZAorMDAxMTMyICAgICAoYmFzZSAxNikJCVN5bm9sb2d5IEluY29ycG9yYXRlZAorCQkJCTZGLTIsIE5vLjEwNiwgQ2hhbmcgQW4gVy4gUmQuLAorCQkJCVRhaXBlaSAgMTAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS0zMyAgIChoZXgpCQlTaWVtZW5zIEF1c3RyaWEgU0lNRUEKKzAwMTEzMyAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEF1c3RyaWEgU0lNRUEKKwkJCQlTaWVtZW5zc3RyYXNzZSA5MC05MgorCQkJCVZpZW5uYSAgMTIxMAorCQkJCUFVU1RSSUEKKworMDAtMTEtMzQgICAoaGV4KQkJTWVkaWFDZWxsLCBJbmMuCiswMDExMzQgICAgIChiYXNlIDE2KQkJTWVkaWFDZWxsLCBJbmMuCisJCQkJNjAwIDE3dGggU3QKKwkJCQlTdWl0ZSAyODAwIFNvdXRoCisJCQkJRGVudmVyIENPIDgwMjAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0zNSAgIChoZXgpCQlHcmFuZGV5ZSBMdGQKKzAwMTEzNSAgICAgKGJhc2UgMTYpCQlHcmFuZGV5ZSBMdGQKKwkJCQk2IEh1eGxleSBSb2FkCisJCQkJU3VycmV5IFJlc2VhcmNoIFBhcmsKKwkJCQlHdWlsZGZvcmQgU3VycmV5IEdVMiA3UkUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS0zNiAgIChoZXgpCQlHb29kcmljaCBTZW5zb3IgU3lzdGVtcworMDAxMTM2ICAgICAoYmFzZSAxNikJCUdvb2RyaWNoIFNlbnNvciBTeXN0ZW1zCisJCQkJMTQzMDAgSnVkaWNpYWwgUm9hZAorCQkJCUJ1cm5zdmlsbGUgTWlubmVzb3RhIDU1MzA2LTQ4OTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTM3ICAgKGhleCkJCUFJQ0hJIEVMRUNUUklDIENPLiwgTFRELgorMDAxMTM3ICAgICAoYmFzZSAxNikJCUFJQ0hJIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTEKKwkJCQlhaWNoaS1jaG8KKwkJCQlrYXN1Z2FpIGNpdHkgYWljaGkgcHJlZi4gNDg2LTg2NjYKKwkJCQlKQVBBTgorCiswMC0xMS0zOCAgIChoZXgpCQlUQUlTSElOIENPLiwgTFRELgorMDAxMTM4ICAgICAoYmFzZSAxNikJCVRBSVNISU4gQ08uLCBMVEQuCisJCQkJMjAwLTcgTmFrYW5vCisJCQkJTmFrYW5vIE5hZ2FubyAzODMtMDAxMworCQkJCUpBUEFOCisKKzAwLTExLTM5ICAgKGhleCkJCVNUT0VCRVIgQU5UUklFQlNURUNITklLIEdtYkggKyBDby4gS0cuCiswMDExMzkgICAgIChiYXNlIDE2KQkJU1RPRUJFUiBBTlRSSUVCU1RFQ0hOSUsgR21iSCArIENvLiBLRy4KKwkJCQlLaWVzZWxicm9ubmVyIFN0ci4gMTIKKwkJCQlQZm9yemhlaW0gIDc1MTc3CisJCQkJR0VSTUFOWQorCiswMC0xMS0zQSAgIChoZXgpCQlTSElOQk9SQU0KKzAwMTEzQSAgICAgKGJhc2UgMTYpCQlTSElOQk9SQU0KKwkJCQk0RiBEQUhOV09STEQgQlVJTERJTkcsIDE1NC0xMSBTQU1TVU5HLURPTkcKKwkJCQlLQU5HTkFNLUdVLAorCQkJCVNFT1VMICAxMzUtODc5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLTNCICAgKGhleCkJCU1pY3JvbmV0IENvbW11bmljYXRpb25zIEluYy4KKzAwMTEzQiAgICAgKGJhc2UgMTYpCQlNaWNyb25ldCBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJMTJGLTEsIE5vLiAxMDAsIE1pbi1DaHVhbiBSb2FkCisJCQkJSHNpbi1UaWVuIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTNDICAgKGhleCkJCU1pY3JvbmFzIEdtYkgKKzAwMTEzQyAgICAgKGJhc2UgMTYpCQlNaWNyb25hcyBHbWJICisJCQkJSGFucy1CdW50ZS1TdHJhc3NlIDE5CisJCQkJRnJlaWJ1cmcgQlcgRC03OTEwOAorCQkJCUdFUk1BTlkKKworMDAtMTEtM0QgICAoaGV4KQkJS04gU09MVEVDIENPLixMVEQuCiswMDExM0QgICAgIChiYXNlIDE2KQkJS04gU09MVEVDIENPLixMVEQuCisJCQkJOThCLTVMIE5BTURPTkcgSU5EVVNUUklBTCBDT01QTEVYICM2NjItNCBHT0pBTi1ET05HCisJCQkJTkFNRE9ORy1HVSBJTkNIRU9OIDQwNS04MTgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtM0UgICAoaGV4KQkJSkwgQ29ycG9yYXRpb24KKzAwMTEzRSAgICAgKGJhc2UgMTYpCQlKTCBDb3Jwb3JhdGlvbgorCQkJCTQtNC0xNyBTVUdFCisJCQkJVEFNQS1LVQorCQkJCUtBV0FTQUtJLUNJVFkgS0FOQUdBV0EtS0VOIDIxNC0wMDAxCisJCQkJSkFQQU4KKworMDAtMTEtM0YgICAoaGV4KQkJQWxjYXRlbCBESQorMDAxMTNGICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgREkKKwkJCQlaSSBsYXZvaXNpZXIKKwkJCQlFVSBOb3JtYW5kaWUgNzYyNjAKKwkJCQlGUkFOQ0UKKworMDAtMTEtNDAgICAoaGV4KQkJTmFub21ldHJpY3MgSW5jLgorMDAxMTQwICAgICAoYmFzZSAxNikJCU5hbm9tZXRyaWNzIEluYy4KKwkJCQkyNTAgSGVyemJlcmcgUmQuCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLIDJBMQorCQkJCUNBTkFEQQorCiswMC0xMS00MSAgIChoZXgpCQlHb29kTWFuIENvcnBvcmF0aW9uCiswMDExNDEgICAgIChiYXNlIDE2KQkJR29vZE1hbiBDb3Jwb3JhdGlvbgorCQkJCTJGLCBOby41NzIsIFNlYy4xLCBNaW5nLVNoZW5nIE4gUm9hZCwgS3dlaS1TaGFuIEhzaWFuZworCQkJCVRhb3l1YW4gSHNpZW4gIDMzMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS00MiAgIChoZXgpCQllLVNNQVJUQ09NICBJTkMuCiswMDExNDIgICAgIChiYXNlIDE2KQkJZS1TTUFSVENPTSAgSU5DLgorCQkJCTNGLCAyMTYsIEltb2stRG9uZworCQkJCUphbmdBbi1LdQorCQkJCVN1d29uIEt5b3VuZ2tpLURvIDQ0MC0zMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtNDMgICAoaGV4KQkJREVMTCBJTkMuCiswMDExNDMgICAgIChiYXNlIDE2KQkJREVMTCBJTkMuCisJCQkJT25lIERlbGwgV2F5CisJCQkJUlI1IE1TLTg1NDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS00NCAgIChoZXgpCQlBc3N1cmFuY2UgVGVjaG5vbG9neSBDb3JwCiswMDExNDQgICAgIChiYXNlIDE2KQkJQXNzdXJhbmNlIFRlY2hub2xvZ3kgQ29ycAorCQkJCTYzMDQgUG90b21hYyBBdmVudWUKKwkJCQlBbGV4YW5kcmlhIFZpcmdpbmlhIDIyMzA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS00NSAgIChoZXgpCQlWYWx1ZVBvaW50IE5ldHdvcmtzCiswMDExNDUgICAgIChiYXNlIDE2KQkJVmFsdWVQb2ludCBOZXR3b3JrcworCQkJCTM1MCBUb3duc2VuZCBTdCBTdGUgMzIwCisJCQkJU2FuIEZyYW5jaXNjbywgQ0EgOTQxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTQ2ICAgKGhleCkJCVRlbGVjYXJkLVByaWJvciBMdGQKKzAwMTE0NiAgICAgKGJhc2UgMTYpCQlUZWxlY2FyZC1Qcmlib3IgTHRkCisJCQkJTHVzdGRvcmZza2F5YSBkb3JvZ2EsIDE2MgorCQkJCU9kZXNzYSAgNjUxMTUKKwkJCQlVS1JBSU5FCisKKzAwLTExLTQ3ICAgKGhleCkJCVNlY29tLUluZHVzdHJ5IGNvLkxURC4KKzAwMTE0NyAgICAgKGJhc2UgMTYpCQlTZWNvbS1JbmR1c3RyeSBjby5MVEQuCisJCQkJRnVrdW8ga2FLdXJhbW90byBJY2hpaG9ua2kgMy0zCisJCQkJU2hpcm9pc2hpIE1peWFnaSA5ODktMDI5NQorCQkJCUpBUEFOCisKKzAwLTExLTQ4ICAgKGhleCkJCVByb2xvbiBDb250cm9sIFN5c3RlbXMKKzAwMTE0OCAgICAgKGJhc2UgMTYpCQlQcm9sb24gQ29udHJvbCBTeXN0ZW1zCisJCQkJSGVyc3RlZHZlc3RlcnN0cmFlZGUgNTYKKwkJCQlBbGJlcnRzbHVuZCAgREstMjYyMAorCQkJCURFTk1BUksKKworMDAtMTEtNDkgICAoaGV4KQkJUHJvbGlwaGl4IEluYy4KKzAwMTE0OSAgICAgKGJhc2UgMTYpCQlQcm9saXBoaXggSW5jLgorCQkJCTY2IFRhZG11Y2sgUmQuCisJCQkJV2VzdGZvcmQgTUEgMDE4ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTRBICAgKGhleCkJCUtBWUFCQSBJTkRVU1RSWSBDbywuTHRkLgorMDAxMTRBICAgICAoYmFzZSAxNikJCUtBWUFCQSBJTkRVU1RSWSBDbywuTHRkLgorCQkJCVdvcmxkIFRyYWRlIENlbnRlciBCbGRnLiwgNC0xCisJCQkJSGFtYW1hdHN1LWNobyAyLWNob21lLAorCQkJCU1pbmF0by1rdSwgVG9reW8gTWV0by4gMTA1LTYxMTEKKwkJCQlKQVBBTgorCiswMC0xMS00QiAgIChoZXgpCQlGcmFuY290eXAtUG9zdGFsaWEgR21iSAorMDAxMTRCICAgICAoYmFzZSAxNikJCUZyYW5jb3R5cC1Qb3N0YWxpYSBHbWJICisJCQkJVHJpZnR3ZWcgMjEtMjYKKwkJCQlCaXJrZW53ZXJkZXIgQnJhbmRlbmJ1cmcgMTY1NDcKKwkJCQlHRVJNQU5ZCisKKzAwLTExLTRDICAgKGhleCkJCWNhZmZlaW5hIGFwcGxpZWQgcmVzZWFyY2ggbHRkLgorMDAxMTRDICAgICAoYmFzZSAxNikJCWNhZmZlaW5hIGFwcGxpZWQgcmVzZWFyY2ggbHRkLgorCQkJCTEyNSBiYWlyZCBhdmUKKwkJCQljb2NocmFuZSBhbGJlcnRhIHQ0YyAxYzcKKwkJCQlDQU5BREEKKworMDAtMTEtNEQgICAoaGV4KQkJQXRzdW1pIEVsZWN0cmljIENvLixMVEQuCiswMDExNEQgICAgIChiYXNlIDE2KQkJQXRzdW1pIEVsZWN0cmljIENvLixMVEQuCisJCQkJNC0yLTIgU2hpbi1NaXlha29kYSwgS2l0YS1rdQorCQkJCUhhbWFtYXRzdSBTaGl6dW9rYSA0MzEtMjEwMworCQkJCUpBUEFOCisKKzAwLTExLTRFICAgKGhleCkJCTY5MDg4NSBPbnRhcmlvIEluYy4KKzAwMTE0RSAgICAgKGJhc2UgMTYpCQk2OTA4ODUgT250YXJpbyBJbmMuCisJCQkJMjA1IEFubmFnZW0gQmx2ZC4KKwkJCQlNaXNzaXNzYXVnYSBPbnRhcmlvIEw1VCAyVjEKKwkJCQlDQU5BREEKKworMDAtMTEtNEYgICAoaGV4KQkJVVMgRGlnaXRhbCBUZWxldmlzaW9uLCBJbmMKKzAwMTE0RiAgICAgKGJhc2UgMTYpCQlVUyBEaWdpdGFsIFRlbGV2aXNpb24sIEluYworCQkJCTU4MDcgTi4gQW5kcmV3cyBXYXkKKwkJCQlGb3J0IExhdWRlcmRhbGUgRkwgMzMzMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTUwICAgKGhleCkJCUJlbGtpbiBDb3Jwb3JhdGlvbgorMDAxMTUwICAgICAoYmFzZSAxNikJCUJlbGtpbiBDb3Jwb3JhdGlvbgorCQkJCTUwMSBXZXN0IFdhbG51dCBTdHJlZXQKKwkJCQlDb21wdG9uIENBIDkwMjIwLTUyMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTUxICAgKGhleCkJCU15a290cm9ueAorMDAxMTUxICAgICAoYmFzZSAxNikJCU15a290cm9ueAorCQkJCTM1OSBWYW4gTmVzcyBXYXkKKwkJCQlUb3JyYW5jZSBDQSA5MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNTIgICAoaGV4KQkJRWlkc3ZvbGwgRWxlY3Ryb25pY3MgQVMKKzAwMTE1MiAgICAgKGJhc2UgMTYpCQlFaWRzdm9sbCBFbGVjdHJvbmljcyBBUworCQkJCU5lZHJlIFZpbGJlcmcgdmVpIDgKKwkJCQlFaWRzdm9sbCAgTi0yMDgwCisJCQkJTk9SV0FZCisKKzAwLTExLTUzICAgKGhleCkJCVRyaWRlbnQgVGVrLCBJbmMuCiswMDExNTMgICAgIChiYXNlIDE2KQkJVHJpZGVudCBUZWssIEluYy4KKwkJCQk4MDQxIENlc3NuYSBBdmUgIzIwMAorCQkJCUdhaXRoZXJzYnVyZyBNRCAyMDg3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNTQgICAoaGV4KQkJV2VicHJvIFRlY2hub2xvZ2llcyBJbmMuCiswMDExNTQgICAgIChiYXNlIDE2KQkJV2VicHJvIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMkYtMSwgTm8uODEsIFNlYy4gNCwgQ2h1bmdjaGluZyBOLiBSZC4sCisJCQkJU2hybGluIENoaXUKKwkJCQlUYWlwZWkgIDExMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtNTUgICAoaGV4KQkJU2V2aXMgU3lzdGVtcworMDAxMTU1ICAgICAoYmFzZSAxNikJCVNldmlzIFN5c3RlbXMKKwkJCQkyODA1IE4gRGFsbGFzIFBhcmt3YXksIFNURSA1MzAKKwkJCQlQbGFubyBUZXhhcyA3NTA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNTYgICAoaGV4KQkJUGhhcm9zIFN5c3RlbXMgTloKKzAwMTE1NiAgICAgKGJhc2UgMTYpCQlQaGFyb3MgU3lzdGVtcyBOWgorCQkJCUxldmVsIDMsIDEyMyBDYXJsdG9uIEdvcmUgUm9hZAorCQkJCUdyYWZ0b24KKwkJCQlBdWNrbGFuZCBOWiAxMDAxCisJCQkJTkVXIFpFQUxBTkQKKworMDAtMTEtNTcgICAoaGV4KQkJT0YgTmV0d29ya3MgQ28uLCBMdGQuCiswMDExNTcgICAgIChiYXNlIDE2KQkJT0YgTmV0d29ya3MgQ28uLCBMdGQuCisJCQkJMS0zLUNiNCBOYWthc2UsIE1paGFtYS1rdQorCQkJCUNoaWJhIENpdHkgQ2hpYmEgMjYxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xMS01OCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMTE1OCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xMS01OSAgIChoZXgpCQlNQVRJU1NFIE5FVFdPUktTIElOQworMDAxMTU5ICAgICAoYmFzZSAxNikJCU1BVElTU0UgTkVUV09SS1MgSU5DCisJCQkJMzM5IE4gQkVSTkFSRE8gQVZFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNUEgICAoaGV4KQkJSXZvY2xhciBWaXZhZGVudCBBRworMDAxMTVBICAgICAoYmFzZSAxNikJCUl2b2NsYXIgVml2YWRlbnQgQUcKKwkJCQlCZW5kZXJlcnN0cmFzc2UgMgorCQkJCVNjaGFhbiAgOTQ5NAorCQkJCUxJRUNIVEVOU1RFSU4KKworMDAtMTEtNUIgICAoaGV4KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uIChFQ1MpCiswMDExNUIgICAgIChiYXNlIDE2KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uIChFQ1MpCisJCQkJTm8uMjIsIEFsbGV5IDM4LCBMYW5lIDkxLCBTZWMuIDEsIE5laSBIdSBSb2FkLAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS01QyAgIChoZXgpCQlDaXNjbworMDAxMTVDICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTVEICAgKGhleCkJCUNpc2NvCiswMDExNUQgICAgIChiYXNlIDE2KQkJQ2lzY28KKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNUUgICAoaGV4KQkJUHJvTWluZW50IERvc2llcnRlY2huaWsgR21iSAorMDAxMTVFICAgICAoYmFzZSAxNikJCVByb01pbmVudCBEb3NpZXJ0ZWNobmlrIEdtYkgKKwkJCQlJbSBTY2h1bWFjaGVyZ2V3YW5uIDUtMTEKKwkJCQlIZWlkZWxiZXJnIEJXIDY5MTIzCisJCQkJR0VSTUFOWQorCiswMC0xMS01RiAgIChoZXgpCQlJVFggU2VjdXJpdHkgQ28uLCBMdGQuCiswMDExNUYgICAgIChiYXNlIDE2KQkJSVRYIFNlY3VyaXR5IENvLiwgTHRkLgorCQkJCTlGIEtvbG9uIERpZ2l0YWwgVG93ZXIgQXN0b24gQmxkZy4gNTA1LTE0CisJCQkJR2FzYW4tZG9uZyBHZXVtY2hlb24tZ3UgU0VPVUwgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS02MCAgIChoZXgpCQlBUlRESU8gQ29tcGFueSBDby4sIExURAorMDAxMTYwICAgICAoYmFzZSAxNikJCUFSVERJTyBDb21wYW55IENvLiwgTFRECisJCQkJN3RoIEZMLi4sIE5vLjQ3NiwgTWluLUh1IFJELiwgSHNpbi1DaHUsCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS02MSAgIChoZXgpCQlOZXRTdHJlYW1zLCBMTEMKKzAwMTE2MSAgICAgKGJhc2UgMTYpCQlOZXRTdHJlYW1zLCBMTEMKKwkJCQkzNjAwIFcuIFBhcm1lciBMYW5lCisJCQkJU3VpdGUgMTAwCisJCQkJQXVzdGluIFRYIDc4NzI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS02MiAgIChoZXgpCQlTVEFSIE1JQ1JPTklDUyBDTy4sTFRELgorMDAxMTYyICAgICAoYmFzZSAxNikJCVNUQVIgTUlDUk9OSUNTIENPLixMVEQuCisJCQkJNTM2IFNoaW1penVuYW5hdHN1c2hpbnlhCisJCQkJU2hpenVva2EgIDQyNC0wMDY2CisJCQkJSkFQQU4KKworMDAtMTEtNjMgICAoaGV4KQkJU1lTVEVNIFNQQSBERVBULiBFTEVDVFJPTklDUworMDAxMTYzICAgICAoYmFzZSAxNikJCVNZU1RFTSBTUEEgREVQVC4gRUxFQ1RST05JQ1MKKwkJCQlWSUEgR0hJQVJPTEEgVkVDQ0hJQSA3MworCQkJCUZJT1JBTk8gTU9ERU5FU0UgTU9ERU5BIEktNDEwNDIKKwkJCQlJVEFMWQorCiswMC0xMS02NCAgIChoZXgpCQlBQ0FSRCBUZWNobm9sb2d5IENvcnAuCiswMDExNjQgICAgIChiYXNlIDE2KQkJQUNBUkQgVGVjaG5vbG9neSBDb3JwLgorCQkJCTZGIE5vLjc4IFNlYzEgS3dhbmcgRnUgUm9hZCwgU2FuY2h1bmcsCisJCQkJVGFpcGVpIEhzaWVuICAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTY1ICAgKGhleCkJCVpueXggTmV0d29ya3MKKzAwMTE2NSAgICAgKGJhc2UgMTYpCQlabnl4IE5ldHdvcmtzCisJCQkJNDg0MjEgTWlsbW9udCBEcml2ZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTY2ICAgKGhleCkJCVRhZWxpbSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMTE2NiAgICAgKGJhc2UgMTYpCQlUYWVsaW0gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJMTk2LTUsIEFOWUFORzctRE9ORyBNQU5BTi1HVQorCQkJCUFOWUFORy1TSSBLWVVHR0ktRE8gNDMwLTgxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS02NyAgIChoZXgpCQlJbnRlZ3JhdGVkIFN5c3RlbSBTb2x1dGlvbiBDb3JwLgorMDAxMTY3ICAgICAoYmFzZSAxNikJCUludGVncmF0ZWQgU3lzdGVtIFNvbHV0aW9uIENvcnAuCisJCQkJM0YsIE5vLiAyLTEsIGluZHVzdHJ5IEVhc3QgUmQuLCBJCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTY4ICAgKGhleCkJCUhvbWVMb2dpYyBMTEMKKzAwMTE2OCAgICAgKGJhc2UgMTYpCQlIb21lTG9naWMgTExDCisJCQkJMTAwIEhvb2RzIExhbmUKKwkJCQlNYXJibGVoZWFkIE1BIDAxOTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS02OSAgIChoZXgpCQlFTVMgU2F0Y29tCiswMDExNjkgICAgIChiYXNlIDE2KQkJRU1TIFNhdGNvbQorCQkJCUdyZWVuIExhbmUKKwkJCQlBc2hjaHVyY2gKKwkJCQlUZXdrZXNidXJ5IEdsb3VjZXN0ZXJzaGlyZSBHTDIwIDhIRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLTZBICAgKGhleCkJCURvbW8gTHRkCiswMDExNkEgICAgIChiYXNlIDE2KQkJRG9tbyBMdGQKKwkJCQlXZXNzZXggSG91c2UKKwkJCQlVcHBlciBNYXJrZXQgU3RyZWV0CisJCQkJRWFzdGxlaWdoIEhhbXBzaGlyZSBTTzUwIDlGRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLTZCICAgKGhleCkJCURpZ2l0YWwgRGF0YSBDb21tdW5pY2F0aW9ucyBBc2lhIENvLixMdGQKKzAwMTE2QiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIERhdGEgQ29tbXVuaWNhdGlvbnMgQXNpYSBDby4sTHRkCisJCQkJOEYsTm8uNDEsTGFuZSAyMjEsS2FuZy1DaGllbiBSRC4sTmVpLUh1IERpcy4sCisJCQkJVGFpcGVpIENpdHkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtNkMgICAoaGV4KQkJTmFud2FuZyBNdWx0aW1lZGlhIEluYy4sTHRkCiswMDExNkMgICAgIChiYXNlIDE2KQkJTmFud2FuZyBNdWx0aW1lZGlhIEluYy4sTHRkCisJCQkJRmxvb3IgMTIsVGlhbnl1YW4gQmxkZyxXZW5zYW4gUmQjNTA4CisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEzCisJCQkJQ0hJTkEKKworMDAtMTEtNkQgICAoaGV4KQkJQW1lcmljYW4gVGltZSBhbmQgU2lnbmFsCiswMDExNkQgICAgIChiYXNlIDE2KQkJQW1lcmljYW4gVGltZSBhbmQgU2lnbmFsCisJCQkJMTQwIFRoaXJkIFN0LiBTb3V0aAorCQkJCURhc3NlbCBNTiA1NTMyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNkUgICAoaGV4KQkJUGVQTGluayBMdGQuCiswMDExNkUgICAgIChiYXNlIDE2KQkJUGVQTGluayBMdGQuCisJCQkJMTcvRi4sIFBhcmsgQnVpbGRpbmcKKwkJCQk0NzYgQ2FzdGxlIFBlYWsgUm9hZAorCQkJCUNoZXVuZyBTaGEgV2FuIEtvd2xvb24gCisJCQkJSE9ORyBLT05HCisKKzAwLTExLTZGICAgKGhleCkJCU5ldGZvcnlvdSBDby4sIExURC4KKzAwMTE2RiAgICAgKGJhc2UgMTYpCQlOZXRmb3J5b3UgQ28uLCBMVEQuCisJCQkJMTEyMS00IDNGLCAgS3dhbnlhbmctZG9uZywgRG9uZ2FuLWd1CisJCQkJQW55YW5nLXNpIEt5dW5nZ2ktZG8gNDMxLTgwNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS03MCAgIChoZXgpCQlHU0MgU1JMCiswMDExNzAgICAgIChiYXNlIDE2KQkJR1NDIFNSTAorCQkJCVZJQSBQRVIgVklNRVJDQVRFCisJCQkJVVNNQVRFIFZFTEFURSBNSUxBTk8gMjAwNDAKKwkJCQlJVEFMWQorCiswMC0xMS03MSAgIChoZXgpCQlERVhURVIgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTE3MSAgICAgKGJhc2UgMTYpCQlERVhURVIgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyRiBTaGluc3VuZyBCL0QgNDA0LTEKKwkJCQlCYWNraHl1bi1Eb25nLCBCdW5kYW5nLUd1CisJCQkJU3VuZ25hbSBHeXVuZ2dpIDQ2My00MjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtNzIgICAoaGV4KQkJQ09UUk9OIENPUlBPUkFUSU9OCiswMDExNzIgICAgIChiYXNlIDE2KQkJQ09UUk9OIENPUlBPUkFUSU9OCisJCQkJMTJGTCxOby4xNTAsU2VjLjQsQ2hlbmctRGUgUmQKKwkJCQlTaGlobGluIERpc3RyaWN0CisJCQkJVGFpcGVpIENpdHkgIDExMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtNzMgICAoaGV4KQkJU01BUlQgTW9kdWxhciBUZWNobm9sb2dpZXMKKzAwMTE3MyAgICAgKGJhc2UgMTYpCQlTTUFSVCBNb2R1bGFyIFRlY2hub2xvZ2llcworCQkJCTQ0MTUgRSBDb3R0b24gQ2VudGVyIEJsdmQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlQaG9lbml4IEFaIDg1MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS03NCAgIChoZXgpCQlXaWJodSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTE3NCAgICAgKGJhc2UgMTYpCQlXaWJodSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxNTYxIEJsYWNraGF3ayBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNzUgICAoaGV4KQkJUGF0aFNjYWxlLCBJbmMuCiswMDExNzUgICAgIChiYXNlIDE2KQkJUGF0aFNjYWxlLCBJbmMuCisJCQkJNDc3IE4uIE1hdGhpbGRhIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTc2ICAgKGhleCkJCUludGVsbGFtYmRhIFN5c3RlbXMsIEluYy4KKzAwMTE3NiAgICAgKGJhc2UgMTYpCQlJbnRlbGxhbWJkYSBTeXN0ZW1zLCBJbmMuCisJCQkJNDg1MDEgV2FybSBTcHJpbmdzIEJsdmQsICMxMDcKKwkJCQlGcmVtb250IENhbGlmb3JuaWEgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTc3ICAgKGhleCkJCUNvYXhpYWwgTmV0d29ya3MsIEluYy4KKzAwMTE3NyAgICAgKGJhc2UgMTYpCQlDb2F4aWFsIE5ldHdvcmtzLCBJbmMuCisJCQkJNDYzMyBPbGQgSXJvbnNpZGVzIERyCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTc4ICAgKGhleCkJCUNoaXJvbiBUZWNobm9sb2d5IEx0ZAorMDAxMTc4ICAgICAoYmFzZSAxNikJCUNoaXJvbiBUZWNobm9sb2d5IEx0ZAorCQkJCVd5dm9scyBDb3VydAorCQkJCVN3YWxsb3dmaWVsZAorCQkJCVJlYWRpbmcgQmVya3NoaXJlIFJHNyAxV1kKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS03OSAgIChoZXgpCQlTaW5ndWxhciBUZWNobm9sb2d5IENvLiBMdGQuCiswMDExNzkgICAgIChiYXNlIDE2KQkJU2luZ3VsYXIgVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCTIxRiwgTm8uMzcsIFNlYy4yLCBTYW4gTWluIFJkLiwKKwkJCQlQYW4gQ2hpYW8gQ2l0eSwgVGFpcGVpIENvdW50eQorCQkJCVRhaXBlaSAgMjIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS03QSAgIChoZXgpCQlTaW5naW0gSW50ZXJuYXRpb25hbCBDb3JwLgorMDAxMTdBICAgICAoYmFzZSAxNikJCVNpbmdpbSBJbnRlcm5hdGlvbmFsIENvcnAuCisJCQkJNkYtMiwgTm8uIDE5MCwgU2VjLiAyIENodW5nIEhzaW4gUm9hZCwKKwkJCQlIc2luIFRpZW4gQ2l0eSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS03QiAgIChoZXgpCQlC/GNoaSBMYWJvcnRlY2huaWsgQUcKKzAwMTE3QiAgICAgKGJhc2UgMTYpCQlC/GNoaSBMYWJvcnRlY2huaWsgQUcKKwkJCQlNZWllcnNlZ2dzdHJhc3NlIDQwCisJCQkJRmxhd2lsIDkyMzAgU0cKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xMS03QyAgIChoZXgpCQllLXp5Lm5ldAorMDAxMTdDICAgICAoYmFzZSAxNikJCWUtenkubmV0CisJCQkJU21pcm5pcyAxNAorCQkJCVZlcmlhIEltYXRoaWEgNTkxMDAKKwkJCQlHUkVFQ0UKKworMDAtMTEtN0QgICAoaGV4KQkJWk1EIEFtZXJpY2EsIEluYy4KKzAwMTE3RCAgICAgKGJhc2UgMTYpCQlaTUQgQW1lcmljYSwgSW5jLgorCQkJCTE1MzczIElubm92YXRpb24gRHJpdmUKKwkJCQlTdWl0ZSAxMTUKKwkJCQlTYW4gRGllbyBDQSA5MjEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtN0UgICAoaGV4KQkJUHJvZ2VueSBJbmMuCiswMDExN0UgICAgIChiYXNlIDE2KQkJUHJvZ2VueSBJbmMuCisJCQkJMTQwNyBCYXJjbGF5IEJvdWxldmFyZAorCQkJCUJ1ZmZhbG8gR3JvdmUgSUwgNjAwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTdGICAgKGhleCkJCU5lb3R1bmUgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbiwuTFRECiswMDExN0YgICAgIChiYXNlIDE2KQkJTmVvdHVuZSBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uLC5MVEQKKwkJCQkxNzAzIyAgTm8uNzM3ICBOb3J0aCBvZiBDYW94aSBSZC4KKwkJCQlTaGFuZ2hhaSAgMjAwMDMwCisJCQkJQ0hJTkEKKworMDAtMTEtODAgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMTE4MCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTgxICAgKGhleCkJCUludGVyRW5lcmd5IENvLkx0ZCwKKzAwMTE4MSAgICAgKGJhc2UgMTYpCQlJbnRlckVuZXJneSBDby5MdGQsCisJCQkJNEYgU2hpbnlva29oYW1hIEJvc2VpIEJsZGcuCisJCQkJMy0yMC0xMyBTaGlueW9rb2hhbWEgS29oaG9rdS1rdQorCQkJCVlva29oYW1hIGNpdHkgS2FuYWdhd2EgMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0xMS04MiAgIChoZXgpCQlJTUkgTm9yZ3JlbiBMdGQKKzAwMTE4MiAgICAgKGJhc2UgMTYpCQlJTUkgTm9yZ3JlbiBMdGQKKwkJCQlQTyBCb3ggMjIKKwkJCQlFYXN0ZXJuIEF2ZW51ZQorCQkJCUxpY2hmaWVsZCBTdGFmZm9yZHNoaXJlIFdTMTMgNlNCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTEtODMgICAoaGV4KQkJRGF0YWxvZ2ljIE1vYmlsZSwgSW5jLgorMDAxMTgzICAgICAoYmFzZSAxNikJCURhdGFsb2dpYyBNb2JpbGUsIEluYy4KKwkJCQkxNTA1IFdlc3RlYyBEcml2ZQorCQkJCUV1Z2VuZSBPUiA5NzQwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtODQgICAoaGV4KQkJSHVtbyBMYWJvcmF0b3J5LEx0ZC4KKzAwMTE4NCAgICAgKGJhc2UgMTYpCQlIdW1vIExhYm9yYXRvcnksTHRkLgorCQkJCU5pc2hpb2dpLUtpdGEgNS0xOS0xMQorCQkJCVN1Z2luYW1pLWt1IFRva3lvIDE2Ny0wMDQyCisJCQkJSkFQQU4KKworMDAtMTEtODUgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDExODUgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkgU291dGgKKwkJCQlNUzA3MDQwNQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTg2ICAgKGhleCkJCVByaW1lIFN5c3RlbXMsIEluYy4KKzAwMTE4NiAgICAgKGJhc2UgMTYpCQlQcmltZSBTeXN0ZW1zLCBJbmMuCisJCQkJMTYyNjctMzMzCisJCQkJU3V3YS1ndW4gSGFyYS1tdXJhIE5hZ2FubyAzOTEtMDEwMAorCQkJCUpBUEFOCisKKzAwLTExLTg3ICAgKGhleCkJCUNhdGVnb3J5IFNvbHV0aW9ucywgSW5jCiswMDExODcgICAgIChiYXNlIDE2KQkJQ2F0ZWdvcnkgU29sdXRpb25zLCBJbmMKKwkJCQkxMDIxIFcuIEFkYW1zIFN0CisJCQkJQ2hpY2FnbyBJTCA2MDYwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtODggICAoaGV4KQkJRW50ZXJhc3lzCiswMDExODggICAgIChiYXNlIDE2KQkJRW50ZXJhc3lzCisJCQkJMzUgSW5kdXN0cmlhbCBXYXkKKwkJCQlSb2NoZXN0ZXIgTkggMDM4NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTg5ICAgKGhleCkJCUFlcm90ZWNoIEluYworMDAxMTg5ICAgICAoYmFzZSAxNikJCUFlcm90ZWNoIEluYworCQkJCTEwMSBaZXRhIERyaXZlCisJCQkJUGl0dHNidXJnaCBQQSAxNTIzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtOEEgICAoaGV4KQkJVmlld3RyYW4gVGVjaG5vbG9neSBMaW1pdGVkCiswMDExOEEgICAgIChiYXNlIDE2KQkJVmlld3RyYW4gVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJMy9GLCBSMi1BIGJ1aWxpZGluZywgSGlnaCBUZWNoIEluZHVzdHJpYWwgUGFyaywKKwkJCQlOYW5zaGFuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xMS04QiAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudCwgRW50ZXJwcmlzZSBCdXNpbmVzcyBHcm91cAorMDAxMThCICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50LCBFbnRlcnByaXNlIEJ1c2luZXNzIEdyb3VwCisJCQkJMjY4MDEgV2VzdCBBZ291cmEgUm9hZAorCQkJCUNhbGFiYXNhcyBDQSA5MTMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtOEMgICAoaGV4KQkJTWlzc291cmkgRGVwYXJ0bWVudCBvZiBUcmFuc3BvcnRhdGlvbgorMDAxMThDICAgICAoYmFzZSAxNikJCU1pc3NvdXJpIERlcGFydG1lbnQgb2YgVHJhbnNwb3J0YXRpb24KKwkJCQlQLk8uIEJveCAyNzAKKwkJCQlKZWZmZXJzb24gQ2l0eSBNaXNzb3VyaSA2NTEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtOEQgICAoaGV4KQkJSGFuY2hhbmcgU3lzdGVtIENvcnAuCiswMDExOEQgICAgIChiYXNlIDE2KQkJSGFuY2hhbmcgU3lzdGVtIENvcnAuCisJCQkJNzE1LTExIEJvZXVuLVRvd24sIEUtZG9uZywgU2FuZ3Jvay1ndSwKKwkJCQlBbnNhbi1zaGkgS3l1bmdraS1EbyA0MjUtODU3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLThFICAgKGhleCkJCUhhbHl0ZWNoIE1hY2UKKzAwMTE4RSAgICAgKGJhc2UgMTYpCQlIYWx5dGVjaCBNYWNlCisJCQkJVW5pdCAxMSwgMjIgTGV4aW5ndG9uIERyaXZlCisJCQkJTm9yd2VzdCBCdXNpbmVzcyBQYXJrCisJCQkJQmF1bGtoYW0gSGlsbHMgTlNXIDIxNTMKKwkJCQlBVVNUUkFMSUEKKworMDAtMTEtOEYgICAoaGV4KQkJRVVURUNIIElOU1RSVU1FTlRTIFBURS4gTFRELgorMDAxMThGICAgICAoYmFzZSAxNikJCUVVVEVDSCBJTlNUUlVNRU5UUyBQVEUuIExURC4KKwkJCQlCbGsgNTUsQXllciBSYWphaCBDcmVzY2VudCwgIzA0LTE2LzI0LgorCQkJCTEzOTk0OQorCQkJCVNJTkdBUE9SRQorCiswMC0xMS05MCAgIChoZXgpCQlEaWdpdGFsIERlc2lnbiBDb3Jwb3JhdGlvbgorMDAxMTkwICAgICAoYmFzZSAxNikJCURpZ2l0YWwgRGVzaWduIENvcnBvcmF0aW9uCisJCQkJMzgyMCBWZW50dXJhIERyaXZlCisJCQkJQXJsaW5ndG9uIEhlaWdodHMgSUwgNjAwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTkxICAgKGhleCkJCUNUUy1DbGltYSBUZW1wZXJhdHVyIFN5c3RlbWUgR21iSAorMDAxMTkxICAgICAoYmFzZSAxNikJCUNUUy1DbGltYSBUZW1wZXJhdHVyIFN5c3RlbWUgR21iSAorCQkJCUxvdHplbuRja2VyIDIxCisJCQkJSGVjaGluZ2VuIEJhZGVud/xydHRlbWJlcmcgNzIzNzkKKwkJCQlHRVJNQU5ZCisKKzAwLTExLTkyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTE5MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTkzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTE5MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otbS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTk0ICAgKGhleCkJCUNoaSBNZWkgQ29tbXVuaWNhdGlvbiBTeXN0ZW1zLCBJbmMuCiswMDExOTQgICAgIChiYXNlIDE2KQkJQ2hpIE1laSBDb21tdW5pY2F0aW9uIFN5c3RlbXMsIEluYy4KKwkJCQkxMUYsIE5vLjM5LCBDaHVuZyBIdWEgUkQuIFNlYyAxCisJCQkJVGFpcGVpICAxMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTk1ICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxMTk1ICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCTJGIE5vLiAyMzMtMiwgUGFvLUNoaWFvIFJvYWQKKwkJCQlIc2luLVRpZW4KKwkJCQlUYWlwZWkgVGFpd2FuIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtOTYgICAoaGV4KQkJQWN0dWFsaXR5IFN5c3RlbXMsIEluYy4KKzAwMTE5NiAgICAgKGJhc2UgMTYpCQlBY3R1YWxpdHkgU3lzdGVtcywgSW5jLgorCQkJCTI1IENvcnBvcmF0ZSBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCUJ1cmxpbmd0b24gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTk3ICAgKGhleCkJCU1vbml0b3JpbmcgVGVjaG5vbG9naWVzIExpbWl0ZWQKKzAwMTE5NyAgICAgKGJhc2UgMTYpCQlNb25pdG9yaW5nIFRlY2hub2xvZ2llcyBMaW1pdGVkCisJCQkJMTQgQXR0ZW5idXJ5cyBQYXJrIEVzdGF0ZQorCQkJCUF0dGVuYnVyeXMgTGFuZQorCQkJCVRpbXBlcmxleSBDaGVzaGlyZSBXQTE0IDVRRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLTk4ICAgKGhleCkJCVByaXNtIE1lZGlhIFByb2R1Y3RzIExpbWl0ZWQKKzAwMTE5OCAgICAgKGJhc2UgMTYpCQlQcmlzbSBNZWRpYSBQcm9kdWN0cyBMaW1pdGVkCisJCQkJV2lsbGlhbSBKYW1lcyBIb3VzZQorCQkJCUNvd2xleSBSb2FkCisJCQkJQ2FtYnJpZGdlIENhbWJyaWRnZXNoaXJlIENCNCAwV1gKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS05OSAgIChoZXgpCQkyd2NvbSBHbWJICiswMDExOTkgICAgIChiYXNlIDE2KQkJMndjb20gR21iSAorCQkJCVNjaGxlc3dpZ2VyIFN0cmFzc2UgODUKKwkJCQlGbGVuc2J1cmcgIDI0OTQxCisJCQkJR0VSTUFOWQorCiswMC0xMS05QSAgIChoZXgpCQlBbGtlcmlhIHNybAorMDAxMTlBICAgICAoYmFzZSAxNikJCUFsa2VyaWEgc3JsCisJCQkJMjUgVmlhIEdpdW50aW5pCisJCQkJTmF2YWNjaGlvIChQSSkgIEktNTYwMjMKKwkJCQlJVEFMWQorCiswMC0xMS05QiAgIChoZXgpCQlUZWxlc3luZXJneSBSZXNlYXJjaCBJbmMuCiswMDExOUIgICAgIChiYXNlIDE2KQkJVGVsZXN5bmVyZ3kgUmVzZWFyY2ggSW5jLgorCQkJCTRGLCBOby4gNDksIFR1bmcgSHNpbiBSZC4sCisJCQkJVGFpcGVpICAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTlDICAgKGhleCkJCUVQJlQgRW5lcmd5CiswMDExOUMgICAgIChiYXNlIDE2KQkJRVAmVCBFbmVyZ3kKKwkJCQkzNTggRWFzdGVybiBWYWxsZXkgV2F5CisJCQkJQ2hhdHN3b29kCisJCQkJU3lkbmV5IE5TVyAyMDY3CisJCQkJQVVTVFJBTElBCisKKzAwLTExLTlEICAgKGhleCkJCURpZ2luZm8gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxMTlEICAgICAoYmFzZSAxNikJCURpZ2luZm8gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTEwRmwuLCBOby44MiwgRnUgSHNpbmcgTm9ydGggUm9hZAorCQkJCVRhaXBlaSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS05RSAgIChoZXgpCQlTb2xlY3Ryb24gQnJhemlsCiswMDExOUUgICAgIChiYXNlIDE2KQkJU29sZWN0cm9uIEJyYXppbAorCQkJCVJvZC4gQ2FtcGluYXMgTW9naSBNaXJpbQorCQkJCUJhaXJybyBSb3NlaXJhCisJCQkJSmFndWFyaXVuYSBTUCAxMzgyMC0wMDAKKwkJCQlCUkFaSUwKKworMDAtMTEtOUYgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTE5RiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMTEtQTAgICAoaGV4KQkJVnRlY2ggRW5naW5lZXJpbmcgQ2FuYWRhIEx0ZAorMDAxMUEwICAgICAoYmFzZSAxNikJCVZ0ZWNoIEVuZ2luZWVyaW5nIENhbmFkYSBMdGQKKwkJCQkyMDAtNzY3MSBBbGRlcmJyaWRnZSBXYXkKKwkJCQlSaWNobW9uZCBCQyBWNlggMVo5CisJCQkJQ0FOQURBCisKKzAwLTExLUExICAgKGhleCkJCVZJU0lPTiBORVRXQVJFIENPLixMVEQKKzAwMTFBMSAgICAgKGJhc2UgMTYpCQlWSVNJT04gTkVUV0FSRSBDTy4sTFRECisJCQkJQWNlIFR3aW4gVG93ZXIgKDIpLCAjNzA5CisJCQkJMjEyLTMwLCBHdXJvLURvbmcKKwkJCQlTZW91bCBHdXJvLUd1IDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtQTIgICAoaGV4KQkJTWFudWZhY3R1cmluZyBUZWNobm9sb2d5IEluYworMDAxMUEyICAgICAoYmFzZSAxNikJCU1hbnVmYWN0dXJpbmcgVGVjaG5vbG9neSBJbmMKKwkJCQk3MCBSZWFkeSBBdmUgTlcKKwkJCQlGb3J0IFdhbHRvbiBCZWFjaCBGTCAzMjU0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQTMgICAoaGV4KQkJTGFuUmVhZHkgVGVjaG5vbG9naWVzIEluYy4KKzAwMTFBMyAgICAgKGJhc2UgMTYpCQlMYW5SZWFkeSBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTRGLCBOby4gMzM3LCBTaW5IdSAybmQgUm9hZC4sIE5laUh1IERpc3RyaWN0CisJCQkJVGFpcGVpIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtQTQgICAoaGV4KQkJSlN0cmVhbSBUZWNobm9sb2dpZXMgSW5jLgorMDAxMUE0ICAgICAoYmFzZSAxNikJCUpTdHJlYW0gVGVjaG5vbG9naWVzIEluYy4KKwkJCQlCbGRnLjUzLCBSNDA1LCAxOTUgU2VjLjQsIENodW5nIEhzaW5nIFJkLgorCQkJCUNodXR1bmcsICBIc2luY2h1IDMxMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtQTUgICAoaGV4KQkJRm9ydHVuYSBFbGVjdHJvbmljIENvcnAuCiswMDExQTUgICAgIChiYXNlIDE2KQkJRm9ydHVuYSBFbGVjdHJvbmljIENvcnAuCisJCQkJM0YsIE5vLjksIFNlYy4xLCBDaGFuZ0FuIEVhc3QgUmQuLAorCQkJCVRhaXBlaSAgMTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1BNiAgIChoZXgpCQlTeXBpeHggTmV0d29ya3MKKzAwMTFBNiAgICAgKGJhc2UgMTYpCQlTeXBpeHggTmV0d29ya3MKKwkJCQkxMDggQmFuayBTdHJlZXQKKwkJCQlXYXRlcmJ1cnkgQ1QgMDY3MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUE3ICAgKGhleCkJCUluZmlsY28gRGVncmVtb250IEluYy4KKzAwMTFBNyAgICAgKGJhc2UgMTYpCQlJbmZpbGNvIERlZ3JlbW9udCBJbmMuCisJCQkJODAwNyBEaXNjb3ZlcnkgRHIuCisJCQkJUE8gQm94IDcxMzkwCisJCQkJUmljaG1vbmQgVmlyZ2luaWEgMjMyNTUtMTM5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQTggICAoaGV4KQkJUXVlc3QgVGVjaG5vbG9naWVzCiswMDExQTggICAgIChiYXNlIDE2KQkJUXVlc3QgVGVjaG5vbG9naWVzCisJCQkJMTA2MCBDb3Jwb3JhdGUgQ2VudGVyIERyaXZlCisJCQkJT2Nvbm9tb3dvYyBXaXNjb25zaW4gNTMwNjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUE5ICAgKGhleCkJCU1PSU1TVE9ORSBDby4sIExURAorMDAxMUE5ICAgICAoYmFzZSAxNikJCU1PSU1TVE9ORSBDby4sIExURAorCQkJCTd0aCBGbG9vciBKb29uZ1B5dW5nIEJ1aWxkaW5nIDY0LTEKKwkJCQlXb29teXVuLURvbmcsIFNlb2Noby1HdQorCQkJCVNlb3VsICAxMzctOTAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLUFBICAgKGhleCkJCVVuaWNsYXNzIFRlY2hub2xvZ3ksIENvLiwgTFRECiswMDExQUEgICAgIChiYXNlIDE2KQkJVW5pY2xhc3MgVGVjaG5vbG9neSwgQ28uLCBMVEQKKwkJCQk0RiwgTm8uIDk4LCBNaW5nIGNodWFuIFJkCisJCQkJSHNpbnRpZW4gQ2l0eSBUYWlwZWkgSHNpZW4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1BQiAgIChoZXgpCQlUUlVTVEFCTEUgVEVDSE5PTE9HWSBDTy4sTFRELgorMDAxMUFCICAgICAoYmFzZSAxNikJCVRSVVNUQUJMRSBURUNITk9MT0dZIENPLixMVEQuCisJCQkJMTJGTC4tMSxOTy4xNjcsRnUtU2hpbmcgTi5SZC4sU3VuZy1TaGFuIGFyZWEKKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtQUMgICAoaGV4KQkJU2ltdGVjIEVsZWN0cm9uaWNzCiswMDExQUMgICAgIChiYXNlIDE2KQkJU2ltdGVjIEVsZWN0cm9uaWNzCisJCQkJQXZvbmRhbGUgRHJpdmUKKwkJCQlUYXJsZXRvbiBMYW5jYXNoaXJlIFBSNCA2QVgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS1BRCAgIChoZXgpCQlTaGFuZ2hhaSBSdWlqaWUgVGVjaG5vbG9neQorMDAxMUFEICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFJ1aWppZSBUZWNobm9sb2d5CisJCQkJMjdGLCA0MjAgSmlhbmduaW5nIFJkLgorCQkJCVNoYW5naGFpICAyMDAwNDEKKwkJCQlDSElOQQorCiswMC0xMS1BRSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxMUFFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQUYgICAoaGV4KQkJTWVkaWFsaW5rLWksSW5jCiswMDExQUYgICAgIChiYXNlIDE2KQkJTWVkaWFsaW5rLWksSW5jCisJCQkJMS05LTEwIEhhbWFtYXRzdS1DaG8KKwkJCQlCRUxJRVZFIEEgSEFNQU1BVFNVQ0hPCisJCQkJTWluYXRvLUt1IFRva3lvIDEwNS0wMDEzCisJCQkJSkFQQU4KKworMDAtMTEtQjAgICAoaGV4KQkJRm9ydGVsaW5rIEluYy4KKzAwMTFCMCAgICAgKGJhc2UgMTYpCQlGb3J0ZWxpbmsgSW5jLgorCQkJCTQyNTAxIEFsYnJhZSBzdHJlZXQgc3VpdGUgMjAyCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQjEgICAoaGV4KQkJQmx1ZUV4cGVydCBUZWNobm9sb2d5IENvcnAuCiswMDExQjEgICAgIChiYXNlIDE2KQkJQmx1ZUV4cGVydCBUZWNobm9sb2d5IENvcnAuCisJCQkJOEYsTm8uMTYsTGFuZSA3NyxYaW5nLUFpIFJkLE5laS1IdSBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTE0OTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUIyICAgKGhleCkJCTIwMDEgVGVjaG5vbG9neSBJbmMuCiswMDExQjIgICAgIChiYXNlIDE2KQkJMjAwMSBUZWNobm9sb2d5IEluYy4KKwkJCQk3Ri0xMCwgNzkgSHNpbiBUYWkgNXRoLiBSZC4gU2VjLjEKKwkJCQlIc2kgQ2hpaCBUYWlwZWkgQ291bnR5IDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtQjMgICAoaGV4KQkJWU9TSElNSVlBIENPLixMVEQuCiswMDExQjMgICAgIChiYXNlIDE2KQkJWU9TSElNSVlBIENPLixMVEQuCisJCQkJMi0zLTI0IEJhaW5hbgorCQkJCU5pc2hpbmFyaS1rdQorCQkJCU9TQUtBIE9TQUtBLVByZWYgNTU3LTAwMzMKKwkJCQlKQVBBTgorCiswMC0xMS1CNCAgIChoZXgpCQlXZXN0ZXJtbyBUZWxlaW5kdXN0cmkgQUIKKzAwMTFCNCAgICAgKGJhc2UgMTYpCQlXZXN0ZXJtbyBUZWxlaW5kdXN0cmkgQUIKKwkJCQlTdG9yYSBTdW5kYnkKKwkJCQlTRS02NDAgNDAKKwkJCQlTV0VERU4KKworMDAtMTEtQjUgICAoaGV4KQkJU2hlbnpoZW4gUG93ZXJjb20gQ28uLEx0ZAorMDAxMUI1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFBvd2VyY29tIENvLixMdGQKKwkJCQlGbG9vciAxNixUb3dlciBCLFpob25neWluIEJ1aWxkaW5nLE5vcnRoIENhaXRpYW4gUm9hZCxGdXRpYW4gRGlzdHJpY3QsU2hlbnpoZW4sUC5SLkNoaW5hCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIHByb3ZpbmNlIDUxODAyOAorCQkJCUNISU5BCisKKzAwLTExLUI2ICAgKGhleCkJCU9wZW4gU3lzdGVtcyBJbnRlcm5hdGlvbmFsCiswMDExQjYgICAgIChiYXNlIDE2KQkJT3BlbiBTeXN0ZW1zIEludGVybmF0aW9uYWwKKwkJCQkzNjAwIEhvbGx5IExhbmUgTm9ydGgKKwkJCQlTdWl0ZSA0MAorCQkJCU1pbm5lYXBvbGlzIE1OIDU1NDQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1CNyAgIChoZXgpCQlPY3RhbGl4IEIuVi4KKzAwMTFCNyAgICAgKGJhc2UgMTYpCQlPY3RhbGl4IEIuVi4KKwkJCQlNb2xlbnN0ZWlqbiA2MAorCQkJCURlIE1lZXJuICBOTC0zNDU0IFBUCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTEtQjggICAoaGV4KQkJTGllYmhlcnIgLSBFbGVrdHJvbmlrIEdtYkgKKzAwMTFCOCAgICAgKGJhc2UgMTYpCQlMaWViaGVyciAtIEVsZWt0cm9uaWsgR21iSAorCQkJCVBldGVyIC0gRG9ybmllciAtIFN0cmFzc2UgMTEKKwkJCQlMaW5kYXUgKEJvZGVuc2VlKSBCYXZhcmlhIDg4MTMxCisJCQkJR0VSTUFOWQorCiswMC0xMS1COSAgIChoZXgpCQlJbm5lciBSYW5nZSBQdHkuIEx0ZC4KKzAwMTFCOSAgICAgKGJhc2UgMTYpCQlJbm5lciBSYW5nZSBQdHkuIEx0ZC4KKwkJCQkxIE1pbGxlbml1bSBDb3VydAorCQkJCUtub3hmaWVsZCBWaWN0b3JpYSAzMTgwCisJCQkJQVVTVFJBTElBCisKKzAwLTExLUJBICAgKGhleCkJCUVsZXhvbCBQdHkgTHRkCiswMDExQkEgICAgIChiYXNlIDE2KQkJRWxleG9sIFB0eSBMdGQKKwkJCQlMZXZlbCAyIC8gMTQ2IEJ1bmRhbGwgUm9hZAorCQkJCUJ1bmRhbGwgUXVlZW5zbGFuZCA0MjE3CisJCQkJQVVTVFJBTElBCisKKzAwLTExLUJCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTFCQiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUJDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTFCQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUJEICAgKGhleCkJCUJvbWJhcmRpZXIgVHJhbnNwb3J0YXRpb24KKzAwMTFCRCAgICAgKGJhc2UgMTYpCQlCb21iYXJkaWVyIFRyYW5zcG9ydGF0aW9uCisJCQkJMTUwMSBMZWJhbm9uIENodXJjaCBSb2FkCisJCQkJUGl0dHNidXJnaCBQQSAxNTIzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQkUgICAoaGV4KQkJQUdQIFRlbGVjb20gQ28uIEx0ZAorMDAxMUJFICAgICAoYmFzZSAxNikJCUFHUCBUZWxlY29tIENvLiBMdGQKKwkJCQk5RiwgMTM0IENodW5nLUhzaWFvIEUuIFJECisJCQkJU2VjLiA0CisJCQkJVGFpcGVpICAxMDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUJGICAgKGhleCkJCUFFU1lTIFMucC5BLgorMDAxMUJGICAgICAoYmFzZSAxNikJCUFFU1lTIFMucC5BLgorCQkJCVZpYSBBcnRpZ2lhbmksIDQxCisJCQkJQnJ1c2Fwb3J0byBCZXJnYW1vIDI0MDYwCisJCQkJSVRBTFkKKworMDAtMTEtQzAgICAoaGV4KQkJQWRheSBUZWNobm9sb2d5IEluYworMDAxMUMwICAgICAoYmFzZSAxNikJCUFkYXkgVGVjaG5vbG9neSBJbmMKKwkJCQk5Ri4tMywgTm8uIDI0NywgU2VjLiAxLCBUYWljaHVuZyBQb3J0IFJkLiwKKwkJCQlUYWljaHVuZyBDaXR5IFRhaXcgNDAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1DMSAgIChoZXgpCQk0UCBNT0JJTEUgREFUQSBQUk9DRVNTSU5HCiswMDExQzEgICAgIChiYXNlIDE2KQkJNFAgTU9CSUxFIERBVEEgUFJPQ0VTU0lORworCQkJCVZJQUxFIFJFR0lPTkUgVkVORVRPIDI2CisJCQkJUEFET1ZBIFBEIDM1MTI3CisJCQkJSVRBTFkKKworMDAtMTEtQzIgICAoaGV4KQkJVW5pdGVkIEZpYmVyIE9wdGljIENvbW11bmljYXRpb24KKzAwMTFDMiAgICAgKGJhc2UgMTYpCQlVbml0ZWQgRmliZXIgT3B0aWMgQ29tbXVuaWNhdGlvbgorCQkJCTEzLTEsTk8uNzAwLEp1bmdqZW5nIFJELEp1bmdoZSBDaXR5CisJCQkJSnVuZ2hlIENpdHkgVGFpcGVpIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtQzMgICAoaGV4KQkJVHJhbnNjZWl2aW5nIFN5c3RlbSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDExQzMgICAgIChiYXNlIDE2KQkJVHJhbnNjZWl2aW5nIFN5c3RlbSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJTk8uODUsU2VjLjIsR29uZ2Rhb3d1IFJkLiwKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUM0ICAgKGhleCkJCVRlcm1pbmFsZXMgZGUgVGVsZWNvbXVuaWNhY2lvbiBUZXJyZXN0cmUsIFMuTC4KKzAwMTFDNCAgICAgKGJhc2UgMTYpCQlUZXJtaW5hbGVzIGRlIFRlbGVjb211bmljYWNpb24gVGVycmVzdHJlLCBTLkwuCisJCQkJUG9saWdvbm8gRXVyb3BvbGlzLCBDYWxsZSBDIDI2CisJCQkJTGFzIFJvemFzIE1hZHJpZCAyODIzMAorCQkJCVNQQUlOCisKKzAwLTExLUM1ICAgKGhleCkJCVRFTiBUZWNobm9sb2d5CiswMDExQzUgICAgIChiYXNlIDE2KQkJVEVOIFRlY2hub2xvZ3kKKwkJCQk1NTUgRWFzdCBPY2VhbiBCbHZkLgorCQkJCTl0aCBGbG9vcgorCQkJCUxvbmcgQmVhY2ggQ0EgOTA4MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUM2ICAgKGhleCkJCVNlYWdhdGUgVGVjaG5vbG9neSBMTEMKKzAwMTFDNiAgICAgKGJhc2UgMTYpCQlTZWFnYXRlIFRlY2hub2xvZ3kgTExDCisJCQkJMTI4MCBEaXNjIERyaXZlCisJCQkJU2hha29wZWUgTU4gNTUzNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUM3ICAgKGhleCkJCVJheW1hcmluZSBVSyBMdGQKKzAwMTFDNyAgICAgKGJhc2UgMTYpCQlSYXltYXJpbmUgVUsgTHRkCisJCQkJUXVheSBQb2ludAorCQkJCU5vcnRoYXJib3VyIFJvYWQKKwkJCQlQb3J0c21vdXRoIEhhbXBzaGlyZSBQTzYgM1RECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTEtQzggICAoaGV4KQkJUG93ZXJjb20gQ28uLCBMdGQuCiswMDExQzggICAgIChiYXNlIDE2KQkJUG93ZXJjb20gQ28uLCBMdGQuCisJCQkJOEYsIE5vLiAyNDYsIExpZW4gQ2hlbiBSZC4KKwkJCQlDaHVuZyBIbyBUYWlwZWkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1DOSAgIChoZXgpCQlNVFQgQ29ycG9yYXRpb24KKzAwMTFDOSAgICAgKGJhc2UgMTYpCQlNVFQgQ29ycG9yYXRpb24KKwkJCQkyLTctMTIKKwkJCQlNdXJvdGFuaQorCQkJCU5pc2hpLWt1IEtvYmUgNjUxLTIyNDEKKwkJCQlKQVBBTgorCiswMC0xMS1DQSAgIChoZXgpCQlMb25nIFJhbmdlIFN5c3RlbXMsIEluYy4KKzAwMTFDQSAgICAgKGJhc2UgMTYpCQlMb25nIFJhbmdlIFN5c3RlbXMsIEluYy4KKwkJCQk0NTUwIEV4Y2VsIFBhcmt3YXkKKwkJCQlTdWl0ZSAyMDAKKwkJCQlBZGRpc29uIFRleGFzIDc1MDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1DQiAgIChoZXgpCQlKYWNvYnNvbnMgQUIKKzAwMTFDQiAgICAgKGJhc2UgMTYpCQlKYWNvYnNvbnMgQUIKKwkJCQlOZWRyYWxpZCBzIDMyCisJCQkJTW90YWxhICA1OTEgOTcKKwkJCQlTV0VERU4KKworMDAtMTEtQ0MgICAoaGV4KQkJR3Vhbmd6aG91IEppbnBlbmcgR3JvdXAgQ28uLEx0ZC4KKzAwMTFDQyAgICAgKGJhc2UgMTYpCQlHdWFuZ3pob3UgSmlucGVuZyBHcm91cCBDby4sTHRkLgorCQkJCU5vLjkgU2hlbnpob3UgUm9hZCxHdWFuZ3pob3UgU2NpZW5jZSBDaXR5CisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2NjMKKwkJCQlDSElOQQorCiswMC0xMS1DRCAgIChoZXgpCQlBeHN1biBUZWNobm9sb2dpZXMKKzAwMTFDRCAgICAgKGJhc2UgMTYpCQlBeHN1biBUZWNobm9sb2dpZXMKKwkJCQkxIEZvcnR1bmUgRHJpdmUKKwkJCQlCaWxsZXJpY2EgTUEgMDI0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUNFICAgKGhleCkJCVViaXNlbnNlIExpbWl0ZWQKKzAwMTFDRSAgICAgKGJhc2UgMTYpCQlVYmlzZW5zZSBMaW1pdGVkCisJCQkJU3QuIEFuZHJld3MgSG91c2UKKwkJCQlTdC4gQW5kcmV3cyBSb2FkCisJCQkJQ2hlc3RlcnRvbiBDYW1icmlkZ2UgQ0I0IDFETAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLUNGICAgKGhleCkJCVRocmFuZSAmIFRocmFuZSBBL1MKKzAwMTFDRiAgICAgKGJhc2UgMTYpCQlUaHJhbmUgJiBUaHJhbmUgQS9TCisJCQkJTHVuZHRvZnRlZ2FhcmRzdmVqIDkzRAorCQkJCUx5bmdieSBL+GJlbmhhdm4gMjgwMAorCQkJCURFTk1BUksKKworMDAtMTEtRDAgICAoaGV4KQkJVGFuZGJlcmcgRGF0YSBBU0EKKzAwMTFEMCAgICAgKGJhc2UgMTYpCQlUYW5kYmVyZyBEYXRhIEFTQQorCQkJCUtqZWxz5XN2ZWllbiAxNjEKKwkJCQlPc2xvICAwNDExCisJCQkJTk9SV0FZCisKKzAwLTExLUQxICAgKGhleCkJCVNvZnQgSW1hZ2luZyBTeXN0ZW0gR21iSAorMDAxMUQxICAgICAoYmFzZSAxNikJCVNvZnQgSW1hZ2luZyBTeXN0ZW0gR21iSAorCQkJCUpvaGFubi1LcmFuZS1XZWcgMzkKKwkJCQlNdWVuc3RlciAgNDgxNDkKKwkJCQlHRVJNQU5ZCisKKzAwLTExLUQyICAgKGhleCkJCVBlcmNlcHRpb24gRGlnaXRhbCBMdGQKKzAwMTFEMiAgICAgKGJhc2UgMTYpCQlQZXJjZXB0aW9uIERpZ2l0YWwgTHRkCisJCQkJRmxhdCBBLCA4L0YsIFNoYXcgSG91c2UKKwkJCQlSTSBBCisJCQkJQ2xlYXIgV2F0ZXIgQmF5IE5UIAorCQkJCUhPTkcgS09ORworCiswMC0xMS1EMyAgIChoZXgpCQlOZXh0R2VuVGVsIEhvbGRpbmcgQVNBCiswMDExRDMgICAgIChiYXNlIDE2KQkJTmV4dEdlblRlbCBIb2xkaW5nIEFTQQorCQkJCVNhbmRzbGltYXJrYSAzMQorCQkJCVNhbmRzbGkKKwkJCQlCZXJnZW4gSG9yZGFsYW5kIDU4NjEKKwkJCQlOT1JXQVkKKworMDAtMTEtRDQgICAoaGV4KQkJTmV0RW5yaWNoLCBJbmMKKzAwMTFENCAgICAgKGJhc2UgMTYpCQlOZXRFbnJpY2gsIEluYworCQkJCTg5MCBIaWxsdmlldyBDdC4KKwkJCQlTdWl0ZSAxNTAKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtRDUgICAoaGV4KQkJSGFuZ3pob3UgU3VueWFyZCBTeXN0ZW0gRW5naW5lZXJpbmcgQ28uLEx0ZC4KKzAwMTFENSAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBTdW55YXJkIFN5c3RlbSBFbmdpbmVlcmluZyBDby4sTHRkLgorCQkJCVN1bnlhcmQgU2NpZW5jZSAmIFRlY2hub2xvZ3kgQnVpbGRpbmcgSGktVGVjaCBTb2Z0d2FyZSBQYXJrKFNlY29uZCBMYW5kIENvbnNvbGlkYXRpb24pCisJCQkJSGFuZ3pob3UgSGktVGVjaCBJbmR1c3RyaWFsIERldmVsb3BtZW50IFpvbmUoQmluamlhbmcgRGlzdHJpY3QpCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDUzCisJCQkJQ0hJTkEKKworMDAtMTEtRDYgICAoaGV4KQkJSGFuZEVyYSwgSW5jLgorMDAxMUQ2ICAgICAoYmFzZSAxNikJCUhhbmRFcmEsIEluYy4KKwkJCQkyODU5IDEwNHRoIFN0LgorCQkJCURlcyBNb2luZXMgSUEgNTAzMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUQ3ICAgKGhleCkJCWVXZXJrcyBJbmMKKzAwMTFENyAgICAgKGJhc2UgMTYpCQllV2Vya3MgSW5jCisJCQkJMzUxMCBNYWlud2F5CisJCQkJQnVybGluZ3RvbiBPbnRhcmlvIEw3TTFBOAorCQkJCUNBTkFEQQorCiswMC0xMS1EOCAgIChoZXgpCQlBU1VTVGVrIENvbXB1dGVyIEluYy4KKzAwMTFEOCAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENvbXB1dGVyIEluYy4KKwkJCQlOby4gMTUsIExpLVRlIFJkLiwgUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUQ5ICAgKGhleCkJCVRpVm8KKzAwMTFEOSAgICAgKGJhc2UgMTYpCQlUaVZvCisJCQkJMjE2MCBHb2xkIEF2ZQorCQkJCUFsdmlzbyBDQSA5NTAwMi0yMTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1EQSAgIChoZXgpCQlWaXZhYXMgVGVjaG5vbG9neSBJbmMuCiswMDExREEgICAgIChiYXNlIDE2KQkJVml2YWFzIFRlY2hub2xvZ3kgSW5jLgorCQkJCTE1RiwgTm8uIDEwLCBTZWMgMSwgUGVpLUhzaW4gUmQuLAorCQkJCUhzaW4tVGllbiBjaXR5IFRhaXBlaSBIc2llbiwgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1EQiAgIChoZXgpCQlMYW5kLUNlbGx1bGFyIENvcnBvcmF0aW9uCiswMDExREIgICAgIChiYXNlIDE2KQkJTGFuZC1DZWxsdWxhciBDb3Jwb3JhdGlvbgorCQkJCTEyMDU0IE1pcmFtYXIgUGFya3dheQorCQkJCU1pcmFtYXIgRkwgMzMwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLURDICAgKGhleCkJCUdsdW56ICYgSmVuc2VuCiswMDExREMgICAgIChiYXNlIDE2KQkJR2x1bnogJiBKZW5zZW4KKwkJCQlIYXNsZXZ2ZWogMTMKKwkJCQlSaW5nc3RlZCAgNDEwMAorCQkJCURFTk1BUksKKworMDAtMTEtREQgICAoaGV4KQkJRlJPTVVTIFRFQy4gQ28uLCBMdGQuCiswMDExREQgICAgIChiYXNlIDE2KQkJRlJPTVVTIFRFQy4gQ28uLCBMdGQuCisJCQkJMkYgODk2LTggSG9neWUyLWRvbmcgRG9uZ2FuLUd1CisJCQkJQW55YW5nLUNpdHksIEd5ZW9uZ2dpLWRvLAorCQkJCTQzMS04MzYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtREUgICAoaGV4KQkJRVVSSUxPR0lDCiswMDExREUgICAgIChiYXNlIDE2KQkJRVVSSUxPR0lDCisJCQkJQ2VudHJhbGUgUGFyYyBC4nQgNworCQkJCUF2ZW51ZSBzdWxseSBwcnVkJ2hvbW1lCisJCQkJQ2hhdGVuYXkgTWFsYWJyeSAgOTIyOTgKKwkJCQlGUkFOQ0UKKworMDAtMTEtREYgICAoaGV4KQkJQ3VycmVudCBFbmVyZ3kKKzAwMTFERiAgICAgKGJhc2UgMTYpCQlDdXJyZW50IEVuZXJneQorCQkJCTU0NDAgSGFydmVzdCBIaWxsLCBTdGUgMTAwCisJCQkJRGFsbGFzIFRYIDc1MjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1FMCAgIChoZXgpCQlVLU1FRElBIENvbW11bmljYXRpb25zLCBJbmMuCiswMDExRTAgICAgIChiYXNlIDE2KQkJVS1NRURJQSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCSA5RiwgTm8uMSBKaW4tU2hhbiBTdC4KKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUUxICAgKGhleCkJCUFyY2VsaWsgQS5TCiswMDExRTEgICAgIChiYXNlIDE2KQkJQXJjZWxpayBBLlMKKwkJCQlDdW1odXJpeWV0IE1haC4sIEU1IFlhbiBZb2wsIE5vOjEsCisJCQkJQmV5bGlrZHV6dQorCQkJCUlzdGFuYnVsICAzNDUyMCAKKwkJCQlUVVJLRVkKKworMDAtMTEtRTIgICAoaGV4KQkJSHVhIEp1bmcgQ29tcG9uZW50cyBDby4sIEx0ZC4KKzAwMTFFMiAgICAgKGJhc2UgMTYpCQlIdWEgSnVuZyBDb21wb25lbnRzIENvLiwgTHRkLgorCQkJCTVGLCBOby4xMywgTGFuZSAxMjAsIFNlYy4xLCBOZWkgSHUgUm9hZAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1FMyAgIChoZXgpCQlUaG9tc29uLCBJbmMuCiswMDExRTMgICAgIChiYXNlIDE2KQkJVGhvbXNvbiwgSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtRTQgICAoaGV4KQkJRGFuZWxlYyBFbGVjdHJvbmljcyBBL1MKKzAwMTFFNCAgICAgKGJhc2UgMTYpCQlEYW5lbGVjIEVsZWN0cm9uaWNzIEEvUworCQkJCUJsb2trZW4gNDQKKwkJCQlCaXJrZXJvZWQgQ29wZW5oYWdlbiAzNDYwCisJCQkJREVOTUFSSworCiswMC0xMS1FNSAgIChoZXgpCQlLQ29kZXMgQ29ycG9yYXRpb24KKzAwMTFFNSAgICAgKGJhc2UgMTYpCQlLQ29kZXMgQ29ycG9yYXRpb24KKwkJCQlGbG9vciAyLCBOdW1iZXIgNTAxLCBTZWN0aW9uIDIKKwkJCQlUaWRpbmcgQm91bGV2YXJkCisJCQkJTmVpaHUgRGlzdHJpY3QgVGFpcGVpIENpdHkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1FNiAgIChoZXgpCQlTY2llbnRpZmljIEF0bGFudGEKKzAwMTFFNiAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIEF0bGFudGEKKwkJCQk1MDMwIFN1Z2FybG9hZiBQYXJrd2F5CisJCQkJTWFpbCBTdG9wIDUuMi40MjgKKwkJCQlMYXdyZW5jZXZpbGxlIEdhIDMwMDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1FNyAgIChoZXgpCQlXT1JMRFNBVCAtIFRleGFzIGRlIEZyYW5jZQorMDAxMUU3ICAgICAoYmFzZSAxNikJCVdPUkxEU0FUIC0gVGV4YXMgZGUgRnJhbmNlCisJCQkJMjIwLCBydWUgR3VzdGF2ZSBFaWZmZWwKKwkJCQljZWRleCAzCisJCQkJQWl4IGVuIFByb3ZlbmNlIEJvdWNoZXMgZHUgUmhvbmUgMTM4NTQKKwkJCQlGUkFOQ0UKKworMDAtMTEtRTggICAoaGV4KQkJVGl4aS5Db20KKzAwMTFFOCAgICAgKGJhc2UgMTYpCQlUaXhpLkNvbQorCQkJCUthcm1lbGl0ZXJ3ZWcgMTE0CisJCQkJQmVybGluICAxMzQ2NQorCQkJCUdFUk1BTlkKKworMDAtMTEtRTkgICAoaGV4KQkJU1RBUk5FWCBDTy4sIExURC4KKzAwMTFFOSAgICAgKGJhc2UgMTYpCQlTVEFSTkVYIENPLiwgTFRELgorCQkJCTR0aCBGbG9vciwgQyZDIEJsZGcsIDIyOC0yCisJCQkJR3V1aS1kb25nCisJCQkJS3dhbmdqaW4tZ3UgU2VvdWwgMTQzLTIwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS1FQSAgIChoZXgpCQlJV0lDUyBJbmMuCiswMDExRUEgICAgIChiYXNlIDE2KQkJSVdJQ1MgSW5jLgorCQkJCTE5MTI1IE5vcnRoIENyZWVrIFBhcmt3YXkKKwkJCQlTdWl0ZSAxMjAKKwkJCQlCb3RoZWxsIFdBIDk4MDExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1FQiAgIChoZXgpCQlJbm5vdmF0aXZlIEludGVncmF0aW9uCiswMDExRUIgICAgIChiYXNlIDE2KQkJSW5ub3ZhdGl2ZSBJbnRlZ3JhdGlvbgorCQkJCTIzOTBBIFdhcmQgQXZlbnVlCisJCQkJU2ltaSBWYWxsZXkgQ0EgOTMwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUVDICAgKGhleCkJCUFWSVggSU5DLgorMDAxMUVDICAgICAoYmFzZSAxNikJCUFWSVggSU5DLgorCQkJCTEtMSwgRnVrdXVyYSwgS2FuYXphd2Eta3UKKwkJCQlZb2tvaGFtYS1zaGkgS2FuYWdhd2EgMjM2LTAwMDQKKwkJCQlKQVBBTgorCiswMC0xMS1FRCAgIChoZXgpCQk4MDIgR2xvYmFsCiswMDExRUQgICAgIChiYXNlIDE2KQkJODAyIEdsb2JhbAorCQkJCVN0dWRpbyAxMSxJbnRlYyAyLFdhZGUgUm9hZAorCQkJCUJhc2luZ3N0b2tlLAorCQkJCUhhbXBzaGlyZSAgUkcyNCBCTkUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS1FRSAgIChoZXgpCQlFc3RhcmksIEluYy4KKzAwMTFFRSAgICAgKGJhc2UgMTYpCQlFc3RhcmksIEluYy4KKwkJCQkxODAwIFBheHRvbiBTdAorCQkJCUhhcnJpc2J1cmcgUEEgMTcxMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUVGICAgKGhleCkJCUNvbml0ZWMgRGF0ZW5zeXN0ZW1lIEdtYkgKKzAwMTFFRiAgICAgKGJhc2UgMTYpCQlDb25pdGVjIERhdGVuc3lzdGVtZSBHbWJICisJCQkJRGllc2Vsc3RyLiAxMWMKKwkJCQlEaWVidXJnIEhlc3NlbiA2NDgwNworCQkJCUdFUk1BTlkKKworMDAtMTEtRjAgICAoaGV4KQkJV2lkZWZ1bCBMaW1pdGVkCiswMDExRjAgICAgIChiYXNlIDE2KQkJV2lkZWZ1bCBMaW1pdGVkCisJCQkJM0IsIFNwZWVkeSBJbmQuIEJsZGcuLCAxMTQgSG93IE1pbmcgU3RyZWV0CisJCQkJS3d1biBUb25nCisJCQkJSG9uZyBLb25nIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xMS1GMSAgIChoZXgpCQlRaW5ldGlRIEx0ZAorMDAxMUYxICAgICAoYmFzZSAxNikJCVFpbmV0aVEgTHRkCisJCQkJUm9vbSBFNjAxCisJCQkJU3QuIEFuZHJldydzIFJvYWQKKwkJCQlNYWx2ZXJuIFdvcmNlc3RlcnNoaXJlIFdSMTQgM1BTCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTEtRjIgICAoaGV4KQkJSW5zdGl0dXRlIG9mIE5ldHdvcmsgVGVjaG5vbG9naWVzCiswMDExRjIgICAgIChiYXNlIDE2KQkJSW5zdGl0dXRlIG9mIE5ldHdvcmsgVGVjaG5vbG9naWVzCisJCQkJMTctdGggTGluZSBWYXNpbGV2c2t5IE9zdHJvdiwgNTQtMQorCQkJCVN0LlBldGVyc2J1cmcgIDE5OTE3OAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xMS1GMyAgIChoZXgpCQlOZW9NZWRpYSBFdXJvcGUgQUcKKzAwMTFGMyAgICAgKGJhc2UgMTYpCQlOZW9NZWRpYSBFdXJvcGUgQUcKKwkJCQlKZW5zLU90dG8tS3JhZy1TdHIuIDExCisJCQkJV/xyc2VsZW4gTm9yZHJoZWluLVdlc3RmYWxlbiA1MjE0NgorCQkJCUdFUk1BTlkKKworMDAtMTEtRjQgICAoaGV4KQkJd29vcmktbmV0CiswMDExRjQgICAgIChiYXNlIDE2KQkJd29vcmktbmV0CisJCQkJIzUwOCwgSGFua29vayBNb29seXUsIDg1My0xIERvbmdjaHVuLURvbmcKKwkJCQlZb25naW4tU2kgS3l1bmdraS1EbyA0NDktODQzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLUY1ICAgKGhleCkJCUFTS0VZIENPTVBVVEVSIENPUlAuCiswMDExRjUgICAgIChiYXNlIDE2KQkJQVNLRVkgQ09NUFVURVIgQ09SUC4KKwkJCQkxMEYsIE5PLjExOSwgQ0hJRU5LQU5HICBSRC4sCisJCQkJQ0hVTkctSE8sIFRBSVBFSSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1GNiAgIChoZXgpCQlBc2lhIFBhY2lmaWMgTWljcm9zeXN0ZW1zICwgSW5jLgorMDAxMUY2ICAgICAoYmFzZSAxNikJCUFzaWEgUGFjaWZpYyBNaWNyb3N5c3RlbXMgLCBJbmMuCisJCQkJTm8uMixSJkQgUm9hZCA2ICxTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUY3ICAgKGhleCkJCVNoZW56aGVuIEZvcndhcmQgSW5kdXN0cnkgQ28uLCBMdGQKKzAwMTFGNyAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBGb3J3YXJkIEluZHVzdHJ5IENvLiwgTHRkCisJCQkJNGIxIEY1LjgsIFRpYW4gQW4gQ3liZXIgUGFyaywgQ2hlbmdvbmdtaWFvLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0xMS1GOCAgIChoZXgpCQlBSVJBWUEgQ29ycAorMDAxMUY4ICAgICAoYmFzZSAxNikJCUFJUkFZQSBDb3JwCisJCQkJNjM3IEFkYWlyIENvdXJ0CisJCQkJTW9yZ2FuIEhpbGwgQ0EgOTUwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUY5ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAxMUY5ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTExLUZBICAgKGhleCkJCVJhbmUgQ29ycG9yYXRpb24KKzAwMTFGQSAgICAgKGJhc2UgMTYpCQlSYW5lIENvcnBvcmF0aW9uCisJCQkJMTA4MDIgNDd0aCBBdmVudWUgV2VzdAorCQkJCU11a2lsdGVvIFdBIDk4Mjc1LTUwOTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUZCICAgKGhleCkJCUhlaWRlbGJlcmcgRW5naW5lZXJpbmcgR21iSAorMDAxMUZCICAgICAoYmFzZSAxNikJCUhlaWRlbGJlcmcgRW5naW5lZXJpbmcgR21iSAorCQkJCVRpZXJnYXJ0ZW5zdHIuIDE1CisJCQkJSGVpZGVsYmVyZyBCYWRlbi1XdWVydHRlbWJlcmcgNjkxMjEKKwkJCQlHRVJNQU5ZCisKKzAwLTExLUZDICAgKGhleCkJCUhBUlRJTkcgRWxlY3RyaWMgR21iaCAmIENvLktHCiswMDExRkMgICAgIChiYXNlIDE2KQkJSEFSVElORyBFbGVjdHJpYyBHbWJoICYgQ28uS0cKKwkJCQlXaWxoZWxtIEhhcnRpbmcgU3RyLiAxCisJCQkJRXNwZWxrYW1wIE5vcmRyaGVpbiBXZXN0ZmFsZW4gRC0zMjMzOQorCQkJCUdFUk1BTlkKKworMDAtMTEtRkQgICAoaGV4KQkJS09SRyBJTkMuCiswMDExRkQgICAgIChiYXNlIDE2KQkJS09SRyBJTkMuCisJCQkJNDAxNS0yLCBZYW5va3VjaGkKKwkJCQlJbmFnaS1DaXR5IFRPS1lPIDIwNi0wODEyCisJCQkJSkFQQU4KKworMDAtMTEtRkUgICAoaGV4KQkJS2VpeW8gU3lzdGVtIFJlc2VhcmNoLCBJbmMuCiswMDExRkUgICAgIChiYXNlIDE2KQkJS2VpeW8gU3lzdGVtIFJlc2VhcmNoLCBJbmMuCisJCQkJSGFtYWRhIHBhcmsgQmxkZy4gNkYKKwkJCQkxNy0zIFNoaW5tYWNoaSBDaHVvdS1rdQorCQkJCUNoaWJhLWNpdHkgQ2hpYmEtcHJlZiAyNjAtMDAyOAorCQkJCUpBUEFOCisKKzAwLTExLUZGICAgKGhleCkJCURpZ2l0cm8gVGVjbm9sb2dpYSBMdGRhCiswMDExRkYgICAgIChiYXNlIDE2KQkJRGlnaXRybyBUZWNub2xvZ2lhIEx0ZGEKKwkJCQlSdWE6IFByb2Zlc3NvcmEgU29maWEgUXVpbnQgZGUgU291emEsIDE2NworCQkJCUJhaXJybzogQ2Fwb2VpcmFzCisJCQkJRmxvcmlhbvNwb2xpcyBTYW50YSBDYXRhcmluYSA4ODA4NS0wNDAKKwkJCQlCUkFaSUwKKworMDAtMTItMDAgICAoaGV4KQkJQ2lzY28KKzAwMTIwMCAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0wMSAgIChoZXgpCQlDaXNjbworMDAxMjAxICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTAyICAgKGhleCkJCURlY3JhbmUgQWVyb3NwYWNlIC0gQXVkaW8gSW50ZXJuYXRpb25hbCBJbmMuCiswMDEyMDIgICAgIChiYXNlIDE2KQkJRGVjcmFuZSBBZXJvc3BhY2UgLSBBdWRpbyBJbnRlcm5hdGlvbmFsIEluYy4KKwkJCQk3MzAwIEluZHVzdHJ5IERyaXZlCisJCQkJTm9ydGggTGl0dGxlIFJvY2sgQVIgNzIxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTAzICAgKGhleCkJCUFjdGl2IE5ldHdvcmtzCiswMDEyMDMgICAgIChiYXNlIDE2KQkJQWN0aXYgTmV0d29ya3MKKwkJCQlCQVQgTCAtIDEgcnVlIGRlIFRlcnJlIE5ldXZlCisJCQkJQlAxMjcKKwkJCQlDT1VSVEFCT0VVRiBOL0EgOTE5NDQKKwkJCQlGUkFOQ0UKKworMDAtMTItMDQgICAoaGV4KQkJdTEwIE5ldHdvcmtzLCBJbmMuCiswMDEyMDQgICAgIChiYXNlIDE2KQkJdTEwIE5ldHdvcmtzLCBJbmMuCisJCQkJMi0yLTE0IEtha2lub2tpemFrYQorCQkJCU1lZ3VybyBUb2t5byAxNTItMDAyMgorCQkJCUpBUEFOCisKKzAwLTEyLTA1ICAgKGhleCkJCVRlcnJhc2F0IENvbW11bmljYXRpb25zLCBJbmMuCiswMDEyMDUgICAgIChiYXNlIDE2KQkJVGVycmFzYXQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyMzUgVmluZXlhcmQgQ291cnQsIHN1aXRlIDEwMAorCQkJCU1vcmdhbiBIaWxsIENhbGlmb3JuaWEgOTUwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTA2ICAgKGhleCkJCWlRdWVzdCAoTlopIEx0ZAorMDAxMjA2ICAgICAoYmFzZSAxNikJCWlRdWVzdCAoTlopIEx0ZAorCQkJCVAuTy5Cb3ggMTUxNjkKKwkJCQlEaW5zZGFsZQorCQkJCUhhbWlsdG9uIFdhaWthdG8gMjAzMQorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTEyLTA3ICAgKGhleCkJCUhlYWQgU3Ryb25nIEludGVybmF0aW9uYWwgTGltaXRlZAorMDAxMjA3ICAgICAoYmFzZSAxNikJCUhlYWQgU3Ryb25nIEludGVybmF0aW9uYWwgTGltaXRlZAorCQkJCVVuaXQgOSwgMjAvRiwgTWV0cm9wb2xlIFNxdWFyZSwKKwkJCQkyIE9uIFlpdSBTdHJlZXQsIFNoYXRpbgorCQkJCUd1YW5nZG9uZyAKKwkJCQlIT05HIEtPTkcKKworMDAtMTItMDggICAoaGV4KQkJR2FudG5lciBJbnN0cnVtZW50cyBHbWJICiswMDEyMDggICAgIChiYXNlIDE2KQkJR2FudG5lciBJbnN0cnVtZW50cyBHbWJICisJCQkJTW9udGFmb25lcnN0cmFzc2UgOAorCQkJCVNjaHJ1bnMgVm9yYXJsYmVyZyA2NzgwCisJCQkJQVVTVFJJQQorCiswMC0xMi0wOSAgIChoZXgpCQlGYXN0cmF4IEx0ZAorMDAxMjA5ICAgICAoYmFzZSAxNikJCUZhc3RyYXggTHRkCisJCQkJVmFsaW1vdGllIDcKKwkJCQlWYW50YWEgRkkgMDE1MTAKKwkJCQlGSU5MQU5ECisKKzAwLTEyLTBBICAgKGhleCkJCUVtZXJzb24gRWxlY3RyaWMgR21iSCAmIENvLiBPSEcKKzAwMTIwQSAgICAgKGJhc2UgMTYpCQlFbWVyc29uIEVsZWN0cmljIEdtYkggJiBDby4gT0hHCisJCQkJSGVlcnN0cmFzc2UgMTExCisJCQkJV2FpYmxpbmdlbiBCVyA3MTMzMgorCQkJCUdFUk1BTlkKKworMDAtMTItMEIgICAoaGV4KQkJQ2hpbmFzeXMgVGVjaG5vbG9naWVzIExpbWl0ZWQKKzAwMTIwQiAgICAgKGJhc2UgMTYpCQlDaGluYXN5cyBUZWNobm9sb2dpZXMgTGltaXRlZAorCQkJCTEwL0YsQ0FHVyBCdWlsZGluZyxOby4zMCBIYWlkaWFuIFNvdXRoIFJvYWQKKwkJCQlCZWlqaW5nICAxMDAwODAKKwkJCQlDSElOQQorCiswMC0xMi0wQyAgIChoZXgpCQlDRS1JbmZvc3lzIFB0ZSBMdGQKKzAwMTIwQyAgICAgKGJhc2UgMTYpCQlDRS1JbmZvc3lzIFB0ZSBMdGQKKwkJCQkzOTAgSGF2ZWxvY2sgUm9hZAorCQkJCSMwOC0wMiBLaW5nJ3MgQ2VudHJlCisJCQkJMTY5NjYyCisJCQkJU0lOR0FQT1JFCisKKzAwLTEyLTBEICAgKGhleCkJCUFkdmFuY2VkIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcywgSW5jLgorMDAxMjBEICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEwMzkwIFdpbHNoaXJlIEJvdWxldmFyZAorCQkJCVN1aXRlIDE4MDMKKwkJCQlMb3MgQW5nZWxlcyBDYWxpZm9ybmlhIDkwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0wRSAgIChoZXgpCQlBYm9Db20KKzAwMTIwRSAgICAgKGJhc2UgMTYpCQlBYm9Db20KKwkJCQkxRiAsIE5vLiAyMSwgWWFuZmEgMm5kIFJkLiwgU0JJUAorCQkJCUhzaW5jaHUgQ2l0eSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi0wRiAgIChoZXgpCQlJRUVFIDgwMi4zCiswMDEyMEYgICAgIChiYXNlIDE2KQkJSUVFRSA4MDIuMworCQkJCQorCQkJCTE1NTk5IEhhcnJvdyBMYW5lCisJCQkJUG93YXkgQ0EgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTEwICAgKGhleCkJCVdpZGVSYXkgQ29ycAorMDAxMjEwICAgICAoYmFzZSAxNikJCVdpZGVSYXkgQ29ycAorCQkJCTI1IEtlYXJueSBTdHJlZXQKKwkJCQk2dGggRmxvb3IKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0xMSAgIChoZXgpCQlQcm90ZWNobmEgSGVyYnN0IEdtYkggJiBDby4gS0cKKzAwMTIxMSAgICAgKGJhc2UgMTYpCQlQcm90ZWNobmEgSGVyYnN0IEdtYkggJiBDby4gS0cKKwkJCQlPdHRvIEhhaG4gU3RyLiAyNgorCQkJCU90dG9icnVubiBHZXJtYW55L0JhdmFyaWEgODU1MjEKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLTEyICAgKGhleCkJCVBMVVMgIENvcnBvcmF0aW9uCiswMDEyMTIgICAgIChiYXNlIDE2KQkJUExVUyAgQ29ycG9yYXRpb24KKwkJCQkxMDMzLTEsIE9zaGl0YXRlLCBJbmFnaS1zaGksCisJCQkJVG9reW8gU2FpdGFtYSAyMDYtMDgxMQorCQkJCUpBUEFOCisKKzAwLTEyLTEzICAgKGhleCkJCU1ldHJvaG0gQUcKKzAwMTIxMyAgICAgKGJhc2UgMTYpCQlNZXRyb2htIEFHCisJCQkJT2JlcmRvcmZzdHJhc3NlIDY4CisJCQkJSGVyaXNhdSBBUiA5MTAxCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTItMTQgICAoaGV4KQkJS29lbmlnICYgQmF1ZXIgQUcKKzAwMTIxNCAgICAgKGJhc2UgMTYpCQlLb2VuaWcgJiBCYXVlciBBRworCQkJCUZyaWVkcmljaC1Lb2VuaWctU3RyLiA0CisJCQkJV3VlcnpidXJnIEJhdmFyaWEgOTcwODAKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLTE1ICAgKGhleCkJCWlTdG9yIE5ldHdvcmtzLCBJbmMuCiswMDEyMTUgICAgIChiYXNlIDE2KQkJaVN0b3IgTmV0d29ya3MsIEluYy4KKwkJCQk3NTg1IElydmluZSBDZW50ZXIgRHJpdmUKKwkJCQlTdWl0ZSAyNTAKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTE2ICAgKGhleCkJCUlDUCBJbnRlcm5ldCBDb21tdW5pY2F0aW9uIFBheW1lbnQgQUcKKzAwMTIxNiAgICAgKGJhc2UgMTYpCQlJQ1AgSW50ZXJuZXQgQ29tbXVuaWNhdGlvbiBQYXltZW50IEFHCisJCQkJV2lsaGVsbS1TdGVpbi1XZWcgMjQKKwkJCQlIYW1idXJnICBELTIyMzM5CisJCQkJR0VSTUFOWQorCiswMC0xMi0xNyAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzAwMTIxNyAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyLgorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMTggICAoaGV4KQkJQVJVWkUgQ29ycG9yYXRpb24KKzAwMTIxOCAgICAgKGJhc2UgMTYpCQlBUlVaRSBDb3Jwb3JhdGlvbgorCQkJCUFyaWFrZSBGcm9udGllciBCdWlsZGluZyBBCisJCQkJMy0xLTI1IEFyaWFrZQorCQkJCUtvaHRvaC1rdSBUb2t5byAxMzUtMDA2MworCQkJCUpBUEFOCisKKzAwLTEyLTE5ICAgKGhleCkJCUFoZWFkIENvbW11bmljYXRpb24gU3lzdGVtcyBJbmMKKzAwMTIxOSAgICAgKGJhc2UgMTYpCQlBaGVhZCBDb21tdW5pY2F0aW9uIFN5c3RlbXMgSW5jCisJCQkJMTk5IFBhcmsgUm9hZCBFeHQKKwkJCQlQTyBCb3ggOTI5CisJCQkJTWlkZGxlYnVyeSBDVCAwNjc2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMUEgICAoaGV4KQkJVGVjaG5vIFNvZnQgU3lzdGVtbmljcyBJbmMuCiswMDEyMUEgICAgIChiYXNlIDE2KQkJVGVjaG5vIFNvZnQgU3lzdGVtbmljcyBJbmMuCisJCQkJMi01LTE3LCBFYmlzdS1uaXNoaSwgTmFuaXdhLWt1LAorCQkJCU9zYWthICA1NTYtMDAwMworCQkJCUpBUEFOCisKKzAwLTEyLTFCICAgKGhleCkJCVNvdW5kIERldmljZXMsIExMQworMDAxMjFCICAgICAoYmFzZSAxNikJCVNvdW5kIERldmljZXMsIExMQworCQkJCTMwMCBXZW5nZWwgRHJpdmUKKwkJCQlSZWVkc2J1cmcgV0kgNTM5NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTFDICAgKGhleCkJCVBBUlJPVCBTLkEuCiswMDEyMUMgICAgIChiYXNlIDE2KQkJUEFSUk9UIFMuQS4KKwkJCQkxNzQsIHF1YWkgZGUgSmVtbWFwZXMKKwkJCQlQQVJJUyAgNzUwMTAKKwkJCQlGUkFOQ0UKKworMDAtMTItMUQgICAoaGV4KQkJTmV0ZmFicmljIENvcnBvcmF0aW9uCiswMDEyMUQgICAgIChiYXNlIDE2KQkJTmV0ZmFicmljIENvcnBvcmF0aW9uCisJCQkJNjcgRmVkZXJhbCBSb2FkCisJCQkJU3VpdGUgMzAwCisJCQkJQnJvb2tmaWVsZCBDVCAwNjgwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMUUgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcywgSW5jLgorMDAxMjFFICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MsIEluYy4KKwkJCQkxMTk0IE4uIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMUYgICAoaGV4KQkJSGFyZGluZyBJbnRydW1lbnRzCiswMDEyMUYgICAgIChiYXNlIDE2KQkJSGFyZGluZyBJbnRydW1lbnRzCisJCQkJOTQzMS00MUF2ZQorCQkJCUVkbW9udG9uIEFCIFQ2RSA1WDcKKwkJCQlDQU5BREEKKworMDAtMTItMjAgICAoaGV4KQkJQ2FkY28gU3lzdGVtcworMDAxMjIwICAgICAoYmFzZSAxNikJCUNhZGNvIFN5c3RlbXMKKwkJCQkyMzYzIE1lcnJpdHQgRHIKKwkJCQlHYXJsYW5kIFRleGFzIDc1MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0yMSAgIChoZXgpCQlCLkJyYXVuIE1lbHN1bmdlbiBBRworMDAxMjIxICAgICAoYmFzZSAxNikJCUIuQnJhdW4gTWVsc3VuZ2VuIEFHCisJCQkJU2Nod2FyemVuYmVyZ2VyIFdlZyA3My03OQorCQkJCU1lbHN1bmdlbiBIZXNzZW4gMzQyMTIKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLTIyICAgKGhleCkJCVNrYXJkaW4gKFVLKSBMdGQKKzAwMTIyMiAgICAgKGJhc2UgMTYpCQlTa2FyZGluIChVSykgTHRkCisJCQkJTm8uIDUgR3JlZW53YXkgKFJPMjQpCisJCQkJSGFybG93IEJ1c2luZXNzIFBhcmsKKwkJCQlIYXJsb3cgRXNzZXggQ00xOSA1UUIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMi0yMyAgIChoZXgpCQlQaXhpbQorMDAxMjIzICAgICAoYmFzZSAxNikJCVBpeGltCisJCQkJOTE1IExpbmRhIFZpc3RhIEF2ZS4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0yNCAgIChoZXgpCQlOZXhRTCBDb3Jwb3JhdGlvbgorMDAxMjI0ICAgICAoYmFzZSAxNikJCU5leFFMIENvcnBvcmF0aW9uCisJCQkJMTIyNTAgSW53b29kIFJvYWQgIzYKKwkJCQlEYWxsYXMgVFggNzUyNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTI1ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxMjI1ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTI2ICAgKGhleCkJCUphcGFuIERpcmV4IENvcnBvcmF0aW9uCiswMDEyMjYgICAgIChiYXNlIDE2KQkJSmFwYW4gRGlyZXggQ29ycG9yYXRpb24KKwkJCQlLeW9jZXJhIEhhcmFqdWt1IEJsZGcuCisJCQkJNi0yNy04LCBKaW5ndW1hZQorCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUwLTAwMDEKKwkJCQlKQVBBTgorCiswMC0xMi0yNyAgIChoZXgpCQlGcmFua2xpbiBFbGVjdHJpYyBDby4sIEluYy4KKzAwMTIyNyAgICAgKGJhc2UgMTYpCQlGcmFua2xpbiBFbGVjdHJpYyBDby4sIEluYy4KKwkJCQk0MDAgRS4gU3ByaW5nIFN0cmVldAorCQkJCUJsdWZmdG9uIEluZGlhbmEgNDY3MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTI4ICAgKGhleCkJCURhdGEgTHRkLgorMDAxMjI4ICAgICAoYmFzZSAxNikJCURhdGEgTHRkLgorCQkJCUouIEhhZ2FydSA5CisJCQkJUC5PLiBCb3ggNworCQkJCUJyYXRpc2xhdmEgIDgzMCAwNQorCQkJCVNMT1ZBS0lBCisKKzAwLTEyLTI5ICAgKGhleCkJCUJyb2FkRWFzeSBUZWNobm9sb2dpZXMgQ28uLEx0ZAorMDAxMjI5ICAgICAoYmFzZSAxNikJCUJyb2FkRWFzeSBUZWNobm9sb2dpZXMgQ28uLEx0ZAorCQkJCTI0dGggRmxvb3IsVG93ZXIgQSxKaW5TaGFuIE1hbnNpb24sCisJCQkJTk8uOCBTaGFuWGkgUm9hZCxOYW5qaW5nLFAuUi5DLgorCQkJCU5hbmppbmcgSmlhbmdzdSAyMTAwMDkKKwkJCQlDSElOQQorCiswMC0xMi0yQSAgIChoZXgpCQlWVGVjaCBUZWxlY29tbXVuaWNhdGlvbnMgTHRkLgorMDAxMjJBICAgICAoYmFzZSAxNikJCVZUZWNoIFRlbGVjb21tdW5pY2F0aW9ucyBMdGQuCisJCQkJMjMvRiwgVGFpIFBpbmcgSW5kdXN0cmlhbCBDZW50cmUsIEJsb2NrIDEKKwkJCQk1NyBUaW5nIEtvayBSb2FkLCBUYWkgUG8KKwkJCQlIT05HIEtPTkcKKworMDAtMTItMkIgICAoaGV4KQkJVmlyYmlhZ2UgUHR5IEx0ZAorMDAxMjJCICAgICAoYmFzZSAxNikJCVZpcmJpYWdlIFB0eSBMdGQKKwkJCQlMZXZlbCA0CisJCQkJOCBNYXJrZXQgU3RyZWV0CisJCQkJTWVsYm91cm5lIFZpY3RvcmlhIDMwMDAKKwkJCQlBVVNUUkFMSUEKKworMDAtMTItMkMgICAoaGV4KQkJU29lbmVuIENvbnRyb2xzIE4uVi4KKzAwMTIyQyAgICAgKGJhc2UgMTYpCQlTb2VuZW4gQ29udHJvbHMgTi5WLgorCQkJCVdpam5lZGFsZXN0cmFhdCAxOTAKKwkJCQlSb2VzZWxhcmUgVy1WTCA4ODAwCisJCQkJQkVMR0lVTQorCiswMC0xMi0yRCAgIChoZXgpCQlTaU5ldHQgQ29ycG9yYXRpb24KKzAwMTIyRCAgICAgKGJhc2UgMTYpCQlTaU5ldHQgQ29ycG9yYXRpb24KKwkJCQk2NDAgVy4gQ2FsaWZvcm5pYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTJFICAgKGhleCkJCVNpZ25hbCBUZWNobm9sb2d5IC0gQUlTRAorMDAxMjJFICAgICAoYmFzZSAxNikJCVNpZ25hbCBUZWNobm9sb2d5IC0gQUlTRAorCQkJCTE4MjAgUHJlc3RvbiBQYXJrIEJsdmQuCisJCQkJU3VpdGUgMjgwMAorCQkJCVBsYW5vIFRYIDc1MDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0yRiAgIChoZXgpCQlTYW5laSBFbGVjdHJpYyBJbmMuCiswMDEyMkYgICAgIChiYXNlIDE2KQkJU2FuZWkgRWxlY3RyaWMgSW5jLgorCQkJCTVGIFRhaXNvdS1Ja2VidWt1cm8gQmxkZy4KKwkJCQkyLTYxLTEgSWtlYnVrdXJvCisJCQkJVG9zaGltYS1rdSBUb2t5byAxNzEtMDAxNAorCQkJCUpBUEFOCisKKzAwLTEyLTMwICAgKGhleCkJCVBpY2FzbyBJbmZvY29tbXVuaWNhdGlvbiBDTy4sIExURC4KKzAwMTIzMCAgICAgKGJhc2UgMTYpCQlQaWNhc28gSW5mb2NvbW11bmljYXRpb24gQ08uLCBMVEQuCisJCQkJM0YsIFN1bnRlY2hjaXR5LCBTYW5nZGFld29uIDEtZG9uZywKKwkJCQk1MTMtMTUsIEp1bmd3b24tZ3UKKwkJCQlTdW5nbmFtLWNpdHkgS3l1bmdnaS1kbyA0NjItNzI1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTMxICAgKGhleCkJCU1vdGlvbiBDb250cm9sIFN5c3RlbXMsIEluYy4KKzAwMTIzMSAgICAgKGJhc2UgMTYpCQlNb3Rpb24gQ29udHJvbCBTeXN0ZW1zLCBJbmMuCisJCQkJUE8gQm94IDExNQorCQkJCTY3MDEgVmlzY29lIFJvYWQKKwkJCQlOZXcgUml2ZXIgVkEgMjQxMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTMyICAgKGhleCkJCUxlV2l6IENvbW11bmljYXRpb25zIEluYy4KKzAwMTIzMiAgICAgKGJhc2UgMTYpCQlMZVdpeiBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJMTM3NiBOLiA0dGggU3QuICMzMDAKKwkJCQlTYW4gSm9zZSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMzMgICAoaGV4KQkJSlJDIFRPS0tJIENvLixMdGQuCiswMDEyMzMgICAgIChiYXNlIDE2KQkJSlJDIFRPS0tJIENvLixMdGQuCisJCQkJMy0yLTEgU2hpbnlvc2hpZGFoaWdhc2hpIEtvaG9rdS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyMy04NTcyCisJCQkJSkFQQU4KKworMDAtMTItMzQgICAoaGV4KQkJQ2FtaWxsZSBCYXVlcgorMDAxMjM0ICAgICAoYmFzZSAxNikJCUNhbWlsbGUgQmF1ZXIKKwkJCQlBYXJnYXVlcnN0ci4gNworCQkJCVdvaGxlbiBBRyA1NjEwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTItMzUgICAoaGV4KQkJQW5kcmV3IENvcnBvcmF0aW9uCiswMDEyMzUgICAgIChiYXNlIDE2KQkJQW5kcmV3IENvcnBvcmF0aW9uCisJCQkJMjYwMSBUZWxlY29tIFBrd3kKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0zNiAgIChoZXgpCQlDb25TZW50cnkgTmV0d29ya3MKKzAwMTIzNiAgICAgKGJhc2UgMTYpCQlDb25TZW50cnkgTmV0d29ya3MKKwkJCQkxNjkwIE1jQ2FuZGxlc3MgRHIKKwkJCQlNaWxpcGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTM3ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDEyMzcgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsCisJCQkJTVMgODcyMworCQkJCURhbGxhcyBUZXhhcyA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMzggICAoaGV4KQkJU2V0YUJveCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxMjM4ICAgICAoYmFzZSAxNikJCVNldGFCb3ggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk5Ri0xLCBOby4gMjkzLTMsIFNlYzIsIEZ1LUhzaW5nIFMuIFJkLgorCQkJCVRhaXBlaSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi0zOSAgIChoZXgpCQlTIE5ldCBTeXN0ZW1zIEluYy4KKzAwMTIzOSAgICAgKGJhc2UgMTYpCQlTIE5ldCBTeXN0ZW1zIEluYy4KKwkJCQkxMEYgU3VuZ3dvbiBCbGRnLiBTYW1zdW5nLWRvbmcKKwkJCQlHYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS0wOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTItM0EgICAoaGV4KQkJUG9zeXN0ZWNoIEluYy4sIENvLgorMDAxMjNBICAgICAoYmFzZSAxNikJCVBvc3lzdGVjaCBJbmMuLCBDby4KKwkJCQlSb29tIDQwNywgRGFlcnl1bmcgVGVjaG5vIFRvd24gNiwKKwkJCQk0OTMtNiwgR2FzYW4tRG9uZywgR2V1bWNoZW9uLUd1LAorCQkJCVNlb3VsICAxNTMtNzcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTNCICAgKGhleCkJCUtlUm8gU3lzdGVtcyBBcFMKKzAwMTIzQiAgICAgKGJhc2UgMTYpCQlLZVJvIFN5c3RlbXMgQXBTCisJCQkJQWxsaWtldmVqIDMKKwkJCQlI+HJzaG9sbSAgMjk3MAorCQkJCURFTk1BUksKKworMDAtMTItM0MgICAoaGV4KQkJU2Vjb25kIFJ1bGUgTExDCiswMDEyM0MgICAgIChiYXNlIDE2KQkJU2Vjb25kIFJ1bGUgTExDCisJCQkJNDExOSBXYWxudXQgU3RyZWV0CisJCQkJU3VpdGUgMjAwCisJCQkJUGhpbGFkZWxwaGlhIFBBIDE5MTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0zRCAgIChoZXgpCQlHRVMKKzAwMTIzRCAgICAgKGJhc2UgMTYpCQlHRVMKKwkJCQlSb29tIDU0MDMsIERvbmdTZW91bCBDb2xsZWdlLCA0MjMsIEJva2plb25nLURvbmcsIFN1amVvbmctR3UsIFNlb25nbmFtLVNpLCBHeWVvbmdnaS1EbywKKwkJCQlHeWVvbmdnaS1EbyBTZW9uZ25hbS1TaSA0NjEtNzE0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTNFICAgKGhleCkJCUVSVU5FIHRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDEyM0UgICAgIChiYXNlIDE2KQkJRVJVTkUgdGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gNDI5LCBDaGluLVNhbiAybmQgc3RyZWV0LAorCQkJCVlhbmctTWVpCisJCQkJVGFvIFl1YW4gIDMyNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItM0YgICAoaGV4KQkJRGVsbCBJbmMKKzAwMTIzRiAgICAgKGJhc2UgMTYpCQlEZWxsIEluYworCQkJCU9uZSBEZWxsIFdheQorCQkJCVJvdW5kIFJvY2sgIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi00MCAgIChoZXgpCQlBTU9JIEVMRUNUUk9OSUNTIENPLixMVEQKKzAwMTI0MCAgICAgKGJhc2UgMTYpCQlBTU9JIEVMRUNUUk9OSUNTIENPLixMVEQKKwkJCQkyOTUgTGFuZSxadWNob25nemhpIFJvYWQsWmhhbmcgamlhbmcsCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzAwLTEyLTQxICAgKGhleCkJCWEyaSBtYXJrZXRpbmcgY2VudGVyCiswMDEyNDEgICAgIChiYXNlIDE2KQkJYTJpIG1hcmtldGluZyBjZW50ZXIKKwkJCQkxMDI0LTQgIER1a3NhbiBCbGRnIEJhbmdiYWVkb25nIFNlb2Nob2d1IFNlb3VsIEtvcmVhCisJCQkJU0VPVUwgIDEzNy0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTItNDIgICAoaGV4KQkJTWlsbGVubmlhbCBOZXQKKzAwMTI0MiAgICAgKGJhc2UgMTYpCQlNaWxsZW5uaWFsIE5ldAorCQkJCSAyODUgQmlsbGVyaWNhIFJvYWQKKwkJCQlDaGVsbXNmb3JkIE1BIDAxODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi00MyAgIChoZXgpCQlDaXNjbworMDAxMjQzICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTQ0ICAgKGhleCkJCUNpc2NvCiswMDEyNDQgICAgIChiYXNlIDE2KQkJQ2lzY28KKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNDUgICAoaGV4KQkJWmVsbHdlZ2VyIEFuYWx5dGljcywgSW5jLgorMDAxMjQ1ICAgICAoYmFzZSAxNikJCVplbGx3ZWdlciBBbmFseXRpY3MsIEluYy4KKwkJCQk0MDUgQmFyY2xheSBCbHZkLgorCQkJCUxpbmNvbG5zaGlyZSBJbGxpbm9pcyA2MDA2OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNDYgICAoaGV4KQkJVC5PLk0gVEVDSE5PTE9HWSBJTkMuLgorMDAxMjQ2ICAgICAoYmFzZSAxNikJCVQuTy5NIFRFQ0hOT0xPR1kgSU5DLi4KKwkJCQk5MDYgV29vbGltIEUtYml6IENlbnRlciAyLAorCQkJCUd1cm8tM0RvbmcKKwkJCQlTZW91bCBHdXJvLUd1IDE4NC0xCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTQ3ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDEyNDcgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWktQ2l0eSBHeWVvbmctQnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTItNDggICAoaGV4KQkJRU1DIENvcnBvcmF0aW9uIChLYXNoeWEpCiswMDEyNDggICAgIChiYXNlIDE2KQkJRU1DIENvcnBvcmF0aW9uIChLYXNoeWEpCisJCQkJMTc2IFNvdXRoIFN0cmVldAorCQkJCUhvcGtpbnRvbiBNQSAwMTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNDkgICAoaGV4KQkJRGVsdGEgRWxldHRyb25pY2EgUy5wLkEuCiswMDEyNDkgICAgIChiYXNlIDE2KQkJRGVsdGEgRWxldHRyb25pY2EgUy5wLkEuCisJCQkJVmlhIEFzdGljbyA0MQorCQkJCVZhcmVzZSAgMjExMDAKKwkJCQlJVEFMWQorCiswMC0xMi00QSAgIChoZXgpCQlEZWRpY2F0ZWQgRGV2aWNlcywgSW5jLgorMDAxMjRBICAgICAoYmFzZSAxNikJCURlZGljYXRlZCBEZXZpY2VzLCBJbmMuCisJCQkJNTY4MCBFLiBGcmFua2xpbgorCQkJCVN1aXRlIDI1MAorCQkJCU5hbXBhIElkYWhvIDgzNjg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi00QiAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxMjRCICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJR2F1c3RhZGFsbGVlbiAyMQorCQkJCVRleGFzIEluc3RydW1lbnRzIE5vcndheSBBUworCQkJCU9zbG8gIE4tMDM0OQorCQkJCU5PUldBWQorCiswMC0xMi00QyAgIChoZXgpCQlCQldNIENvcnBvcmF0aW9uCiswMDEyNEMgICAgIChiYXNlIDE2KQkJQkJXTSBDb3Jwb3JhdGlvbgorCQkJCTZGLCBOby4gNTc4LCBSdWkgR3VhbmcgUm9hZCwgTmVpIEh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLTREICAgKGhleCkJCUluZHVjb24gQlYKKzAwMTI0RCAgICAgKGJhc2UgMTYpCQlJbmR1Y29uIEJWCisJCQkJS2Vya2xhYW4gMjYKKwkJCQlMZWltdWlkZW4gWkggMjU0MSBDRworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTEyLTRFICAgKGhleCkJCVhBQyBBVVRPTUFUSU9OIENPUlAuCiswMDEyNEUgICAgIChiYXNlIDE2KQkJWEFDIEFVVE9NQVRJT04gQ09SUC4KKwkJCQk0RiwgMzAgSW5kdXN0cnkgRS4gUm9hZCBJWAorCQkJCVNjaWVuY2UgUGFyaworCQkJCUhzaW4tQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLTRGICAgKGhleCkJCVR5Y28gVGhlcm1hbCBDb250cm9scyBMTEMuCiswMDEyNEYgICAgIChiYXNlIDE2KQkJVHljbyBUaGVybWFsIENvbnRyb2xzIExMQy4KKwkJCQkxMTAwNCAtIDE3NCBTdC4KKwkJCQlFZG1vbnRvbiBBbGJlcnRhIFQ1UyAyUDMKKwkJCQlDQU5BREEKKworMDAtMTItNTAgICAoaGV4KQkJVG9reW8gQWlyY2FmdCBJbnN0cnVtZW50IENvLiwgTHRkLgorMDAxMjUwICAgICAoYmFzZSAxNikJCVRva3lvIEFpcmNhZnQgSW5zdHJ1bWVudCBDby4sIEx0ZC4KKwkJCQkxLTM1LTEsIEl6dW1pLUhvbmNobworCQkJCUtvbWFlLVNoaSBUb2t5byAyMDEtODU1NQorCQkJCUpBUEFOCisKKzAwLTEyLTUxICAgKGhleCkJCVNJTElOSworMDAxMjUxICAgICAoYmFzZSAxNikJCVNJTElOSworCQkJCTEzIFJVRSBQT01FWVMKKwkJCQlMRSBUQUlMTEFOICAzMzMyMAorCQkJCUZSQU5DRQorCiswMC0xMi01MiAgIChoZXgpCQlDaXRyb25peCwgTExDCiswMDEyNTIgICAgIChiYXNlIDE2KQkJQ2l0cm9uaXgsIExMQworCQkJCTMwMzAgU0UgTG9vcCA4MjAKKwkJCQlGb3J0IFdvcnRoIFRleGFzIDc2MTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi01MyAgIChoZXgpCQlBdWRpb0RldiBBQgorMDAxMjUzICAgICAoYmFzZSAxNikJCUF1ZGlvRGV2IEFCCisJCQkJS2FiaW5nYXRhbiA5CisJCQkJTWFsbfYgIFNFLTIxMiAzOQorCQkJCVNXRURFTgorCiswMC0xMi01NCAgIChoZXgpCQlTcGVjdHJhIFRlY2hub2xvZ2llcyBIb2xkaW5ncyBDb21wYW55IEx0ZAorMDAxMjU0ICAgICAoYmFzZSAxNikJCVNwZWN0cmEgVGVjaG5vbG9naWVzIEhvbGRpbmdzIENvbXBhbnkgTHRkCisJCQkJVW5pdCAxMzAxLTA5LCBUb3dlciBJSQorCQkJCVBhY2lmaWMgQ2VudHVyeSBQbGFjZSwgTW9uZ2tvaworCQkJCTg1MgorCQkJCUhPTkcgS09ORworCiswMC0xMi01NSAgIChoZXgpCQlOZXRFZmZlY3QgSW5jb3Jwb3JhdGVkCiswMDEyNTUgICAgIChiYXNlIDE2KQkJTmV0RWZmZWN0IEluY29ycG9yYXRlZAorCQkJCTkyMTEgV2F0ZXJmb3JkIENlbnRyZSBCbHZkCisJCQkJU3VpdGUgMTAwCisJCQkJQXVzdGluIFRleGFzIDc4NzU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi01NiAgIChoZXgpCQlMRyBJTkZPUk1BVElPTiAmIENPTU0uCiswMDEyNTYgICAgIChiYXNlIDE2KQkJTEcgSU5GT1JNQVRJT04gJiBDT01NLgorCQkJCTQ1OS05LEtBU0FOLURPTkcsS1VNQ0hPTi1HVSwKKwkJCQlTRU9VTCAgMTUzLTAyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMi01NyAgIChoZXgpCQlMZWFwQ29tbSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBJbmMuCiswMDEyNTcgICAgIChiYXNlIDE2KQkJTGVhcENvbW0gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgSW5jLgorCQkJCVJNMTgwNC0wNSBTb3V0aCBUb3dlciBIb25nIEtvbmcgUGxhemEsIE5vLjI4MyBIdWFpaGFpIFpob25nIFJvYWQKKwkJCQlTaGFuZ2hhaSAgMjAwMDIxCisJCQkJQ0hJTkEKKworMDAtMTItNTggICAoaGV4KQkJQWN0aXZpcyBQb2xza2EKKzAwMTI1OCAgICAgKGJhc2UgMTYpCQlBY3RpdmlzIFBvbHNrYQorCQkJCVN3aWVyemF3c2thIDUKKwkJCQlQb3puYW4gV2llbGtvcG9sc2thIDYwLTMyMQorCQkJCVBPTEFORAorCiswMC0xMi01OSAgIChoZXgpCQlUSEVSTU8gRUxFQ1RST04gS0FSTFNSVUhFCiswMDEyNTkgICAgIChiYXNlIDE2KQkJVEhFUk1PIEVMRUNUUk9OIEtBUkxTUlVIRQorCQkJCURJRVNFTFNUUkFTU0UgNAorCQkJCUtBUkxTUlVIRSBCQURFTiBX3FJURU1CRVJHIDc2MjI3CisJCQkJR0VSTUFOWQorCiswMC0xMi01QSAgIChoZXgpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKzAwMTI1QSAgICAgKGJhc2UgMTYpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKwkJCQlPbmUgTWljcm9zb2Z0IFdheQorCQkJCVJlZG1vbmQgV2FzaGluZ3RvbiA5ODA1Mi02Mzk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi01QiAgIChoZXgpCQlLQUlNRUkgRUxFQ1RST05JCiswMDEyNUIgICAgIChiYXNlIDE2KQkJS0FJTUVJIEVMRUNUUk9OSQorCQkJCTE0LTNGLCBOTy44MSxTRUMuIDEsSFNJTi1UQUktV1UgUk9BRCxIU0lDSElILAorCQkJCVRBSVBFSSBIU0lFTiBIU0lDSElIIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItNUMgICAoaGV4KQkJR3JlZW4gSGlsbHMgU29mdHdhcmUsIEluYy4KKzAwMTI1QyAgICAgKGJhc2UgMTYpCQlHcmVlbiBIaWxscyBTb2Z0d2FyZSwgSW5jLgorCQkJCTMwIFdlc3QgU29sYSBTdHJlZXQKKwkJCQlTYW50YSBCYXJiYXJhIENBIDkzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi01RCAgIChoZXgpCQlDeWJlck5ldCBJbmMuCiswMDEyNUQgICAgIChiYXNlIDE2KQkJQ3liZXJOZXQgSW5jLgorCQkJCSMyMDUsIExvdHRlIFN1bnRlY2ggQ2l0eSwgNTEzLTE1CisJCQkJU2FuZ2RhZXdvbi1kb25nLCBDaHVuZ3dvbi1ndQorCQkJCVN1bmduYW0gS3l1bmdnaSA0NjItODA2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTVFICAgKGhleCkJCUNBRU4KKzAwMTI1RSAgICAgKGJhc2UgMTYpCQlDQUVOCisJCQkJdmlhIFZldHJhaWEsIDExCisJCQkJVmlhcmVnZ2lvIExVQ0NBIDU1MDQ5CisJCQkJSVRBTFkKKworMDAtMTItNUYgICAoaGV4KQkJQVdJTkQgSW5jLgorMDAxMjVGICAgICAoYmFzZSAxNikJCUFXSU5EIEluYy4KKwkJCQkxN0YuLCBOby4gODg2LTUsIEp1bmdqZW5nIFJkCisJCQkJSnVuZ2hlIENpdHkKKwkJCQlUYWlwZWkgQ291bnR5ICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLTYwICAgKGhleCkJCVN0YW50b24gTWFnbmV0aWNzLGluYy4KKzAwMTI2MCAgICAgKGJhc2UgMTYpCQlTdGFudG9uIE1hZ25ldGljcyxpbmMuCisJCQkJMzAwMCBTVyA0Mm5kIFN0cmVldAorCQkJCUhvbGx5d29vZCBGTCAzMzMxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNjEgICAoaGV4KQkJQWRhcHRpeCwgSW5jCiswMDEyNjEgICAgIChiYXNlIDE2KQkJQWRhcHRpeCwgSW5jCisJCQkJMTQwNyAxMTZ0aCBBdmUuIE5FCisJCQkJU3VpdGUgRTIxMAorCQkJCUJlbGxldnVlIFdBIDk4MDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi02MiAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxMjYyICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xMi02MyAgIChoZXgpCQlEYXRhIFZvaWNlIFRlY2hub2xvZ2llcyBHbWJICiswMDEyNjMgICAgIChiYXNlIDE2KQkJRGF0YSBWb2ljZSBUZWNobm9sb2dpZXMgR21iSAorCQkJCVN0b2NraG9sbWVyIEFsbGVlIDMyYgorCQkJCURvcnRtdW5kIE5SVyBELTQ0MjY5CisJCQkJR0VSTUFOWQorCiswMC0xMi02NCAgIChoZXgpCQlkYXVtIGVsZWN0cm9uaWMgZ21iaAorMDAxMjY0ICAgICAoYmFzZSAxNikJCWRhdW0gZWxlY3Ryb25pYyBnbWJoCisJCQkJZmx1Z3BsYXR6c3RyLiAxMDAKKwkJCQlGdWVydGggQmF2YXJpYSA5MDc2OAorCQkJCUdFUk1BTlkKKworMDAtMTItNjUgICAoaGV4KQkJRW5lcmR5bmUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDEyNjUgICAgIChiYXNlIDE2KQkJRW5lcmR5bmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTkzNSBDb3JkZWxsIENvdXJ0CisJCQkJRWwgQ2Fqb24gQ0EgOTIwMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTY2ICAgKGhleCkJCVN3aXNzY29tIEhvc3BpdGFsaXR5IFNlcnZpY2VzIFNBCiswMDEyNjYgICAgIChiYXNlIDE2KQkJU3dpc3Njb20gSG9zcGl0YWxpdHkgU2VydmljZXMgU0EKKwkJCQlDaGVtaW4gZGUgbCdFdGFuZyA2NQorCQkJCTEyMTEgR2VuZXZhIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTEyLTY3ICAgKGhleCkJCU1hdHN1c2hpdGEgRWxlY3Ryb25pYyBDb21wb25lbnRzIENvLiwgTHRkLgorMDAxMjY3ICAgICAoYmFzZSAxNikJCU1hdHN1c2hpdGEgRWxlY3Ryb25pYyBDb21wb25lbnRzIENvLiwgTHRkLgorCQkJCTEwMDYgS2Fkb21hCisJCQkJS2Fkb21hLUNpdHkgT3Nha2EgNTcxLTg1MDYKKwkJCQlKQVBBTgorCiswMC0xMi02OCAgIChoZXgpCQlJUFMgZC5vLm8uCiswMDEyNjggICAgIChiYXNlIDE2KQkJSVBTIGQuby5vLgorCQkJCUMuIExqdWJsamFuc2tlIGJyaWdhZGUgMTcKKwkJCQlManVibGphbmEgIFNJLTEwMDAKKwkJCQlTTE9WRU5JQQorCiswMC0xMi02OSAgIChoZXgpCQlWYWx1ZSBFbGVjdHJvbmljcworMDAxMjY5ICAgICAoYmFzZSAxNikJCVZhbHVlIEVsZWN0cm9uaWNzCisJCQkJRG9uZy1rd2FuIEIvRCwgNUYsIDE1NjYtMgorCQkJCVNlb2Noby1kb25nLCBTZW9jaG8tZ3UKKwkJCQlzZW91bCAgMTM3LTg3NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMi02QSAgIChoZXgpCQlPUFRPRUxFQ1RST05JQ1MgQ28uLCBMdGQuCiswMDEyNkEgICAgIChiYXNlIDE2KQkJT1BUT0VMRUNUUk9OSUNTIENvLiwgTHRkLgorCQkJCTMtMUthbWlhb2tpbmlzaGkgMS1jaG9tZQorCQkJCUthd2FndWNoaSBTYWl0YW1hIFByZWYuIDMzMy0wODQ1CisJCQkJSkFQQU4KKworMDAtMTItNkIgICAoaGV4KQkJQXNjYWxhZGUgQ29tbXVuaWNhdGlvbnMgTGltaXRlZAorMDAxMjZCICAgICAoYmFzZSAxNikJCUFzY2FsYWRlIENvbW11bmljYXRpb25zIExpbWl0ZWQKKwkJCQlVbml0IDEwLTExLCAzNS9GLCBDYWJsZSBUViBUb3dlciwKKwkJCQlOby45IEhvaSBTaGluZyBSb2FkLCBUc3VlbiBXYW4KKwkJCQlIT05HIEtPTkcKKworMDAtMTItNkMgICAoaGV4KQkJVmlzb25pYyBMdGQuCiswMDEyNkMgICAgIChiYXNlIDE2KQkJVmlzb25pYyBMdGQuCisJCQkJMjQgSGFiYXJ6ZWwgU3QuCisJCQkJVGVsIEF2aXYgIDY5NzEwCisJCQkJSVNSQUVMCisKKzAwLTEyLTZEICAgKGhleCkJCVVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgQmVya2VsZXkKKzAwMTI2RCAgICAgKGJhc2UgMTYpCQlVbml2ZXJzaXR5IG9mIENhbGlmb3JuaWEsIEJlcmtlbGV5CisJCQkJRUVDUyBEZXBhcnRtZW50CisJCQkJQmVya2VsZXkgQ0EgOTQ3MjAtMTc3NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNkUgICAoaGV4KQkJU2VpZGVsIEVsZWt0cm9uaWsgR21iSCBOZmcuS0cKKzAwMTI2RSAgICAgKGJhc2UgMTYpCQlTZWlkZWwgRWxla3Ryb25payBHbWJIIE5mZy5LRworCQkJCUZyYXVlbnRhbGVyc3RyYXNzZSAxMDAKKwkJCQlEZXV0c2NobGFuZHNiZXJnIFN0ZWllcm1hcmsgODUzMAorCQkJCUFVU1RSSUEKKworMDAtMTItNkYgICAoaGV4KQkJUmF5c29uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDEyNkYgICAgIChiYXNlIDE2KQkJUmF5c29uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMUYgTm8uOSBSJkQgUmQuSUksIFNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbi1DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItNzAgICAoaGV4KQkJTkdFUyBEZW5ybyBTeXN0ZW1zCiswMDEyNzAgICAgIChiYXNlIDE2KQkJTkdFUyBEZW5ybyBTeXN0ZW1zCisJCQkJOTMxOCBHYWl0aGVyIFJvYWQKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTcxICAgKGhleCkJCU1lYXN1cmVtZW50IENvbXB1dGluZyBDb3JwCiswMDEyNzEgICAgIChiYXNlIDE2KQkJTWVhc3VyZW1lbnQgQ29tcHV0aW5nIENvcnAKKwkJCQkxNiBDb21tZXJjZSBCbHZkCisJCQkJTWlkZGxlYm9ybyBNQSAwMjM0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNzIgICAoaGV4KQkJUmVkdXggQ29tbXVuaWNhdGlvbnMgTHRkLgorMDAxMjcyICAgICAoYmFzZSAxNikJCVJlZHV4IENvbW11bmljYXRpb25zIEx0ZC4KKwkJCQlQT0IgMTAxCisJCQkJTW9kaWluICA3MTcwMAorCQkJCUlTUkFFTAorCiswMC0xMi03MyAgIChoZXgpCQlTdG9rZSBJbmMKKzAwMTI3MyAgICAgKGJhc2UgMTYpCQlTdG9rZSBJbmMKKwkJCQkyMTg5IExlZ2hvcm4gU3RyZWV0CisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNzQgICAoaGV4KQkJTklUIGxhYgorMDAxMjc0ICAgICAoYmFzZSAxNikJCU5JVCBsYWIKKwkJCQlTa29yaW55IHN0ci4sIDY1LTMKKwkJCQlNaW5zayBNaW5za2F5YSBvYmwuIDIyMDAxMworCQkJCUJFTEFSVVMKKworMDAtMTItNzUgICAoaGV4KQkJU2VudGlsbGEgQ29ycG9yYXRpb24KKzAwMTI3NSAgICAgKGJhc2UgMTYpCQlTZW50aWxsYSBDb3Jwb3JhdGlvbgorCQkJCTIwMSBNYXJzaGFsbCBTdHJlZXQKKwkJCQlSZWR3b29kIENpdHkgQ0EgOTQwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTc2ICAgKGhleCkJCUNHIFBvd2VyIFN5c3RlbXMgSXJlbGFuZCBMaW1pdGVkCiswMDEyNzYgICAgIChiYXNlIDE2KQkJQ0cgUG93ZXIgU3lzdGVtcyBJcmVsYW5kIExpbWl0ZWQKKwkJCQlIZXJiZXJ0IEhvdXNlLiwgSGFybW9ueSBSb3csIAorCQkJCUR1YmxpbiAgRDIKKwkJCQlJUkVMQU5ECisKKzAwLTEyLTc3ICAgKGhleCkJCUtvcmVuaXggVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAxMjc3ICAgICAoYmFzZSAxNikJCUtvcmVuaXggVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCTExRi0xLCBOby4gMTA4LCBNaW5RdWFuIFJkLgorCQkJCVhpbmRpYW4gQ2l0eSBUYWlwZWkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi03OCAgIChoZXgpCQlJbnRlcm5hdGlvbmFsIEJhciBDb2RlCiswMDEyNzggICAgIChiYXNlIDE2KQkJSW50ZXJuYXRpb25hbCBCYXIgQ29kZQorCQkJCTE2MCBPYWsgU3RyZWV0CisJCQkJR2xhc3RvbmJ1cnkgQ1QgMDYwMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTc5ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxMjc5ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5IFNvdXRoCisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi03QSAgIChoZXgpCQlTYW55dSBJbmR1c3RyeSBDby4sTHRkLgorMDAxMjdBICAgICAoYmFzZSAxNikJCVNhbnl1IEluZHVzdHJ5IENvLixMdGQuCisJCQkJTWlkb3JpLWt1IEhha3VzYW4xLTExLTExCisJCQkJWW9rb2hhbWEtc2hpIEthbmFnYXdhLWtlbiAyMjYtMDAwNgorCQkJCUpBUEFOCisKKzAwLTEyLTdCICAgKGhleCkJCVZJQSBOZXR3b3JraW5nIFRlY2hub2xvZ2llcywgSW5jLgorMDAxMjdCICAgICAoYmFzZSAxNikJCVZJQSBOZXR3b3JraW5nIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCThGLDUzMywgQ2h1bmctQ2hlbmcgUm9hZCwgSHNpbi1UaWVuCisJCQkJVGFpcGVpICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLTdDICAgKGhleCkJCVNXRUdPTiBBQgorMDAxMjdDICAgICAoYmFzZSAxNikJCVNXRUdPTiBBQgorCQkJCUJveCAzMDAKKwkJCQlLVsROVU0gVsRTVFJBIEfWVEFMQU5EIFNFIDUzNSAyMworCQkJCVNXRURFTgorCiswMC0xMi03RCAgIChoZXgpCQlNb2JpbGVBcmlhCiswMDEyN0QgICAgIChiYXNlIDE2KQkJTW9iaWxlQXJpYQorCQkJCTgwMCBXIEVsIENhbWlubyBSZWFsICMyNDAKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi03RSAgIChoZXgpCQlEaWdpdGFsIExpZmVzdHlsZXMgR3JvdXAsIEluYy4KKzAwMTI3RSAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIExpZmVzdHlsZXMgR3JvdXAsIEluYy4KKwkJCQk4MDEgU291dGggU2VudG91cyBBdmUuCisJCQkJQ2l0eSBvZiBJbmR1c3RyeSBDQSA5MTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItN0YgICAoaGV4KQkJQ2lzY28KKzAwMTI3RiAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi04MCAgIChoZXgpCQlDaXNjbworMDAxMjgwICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTgxICAgKGhleCkJCU1hcmNoIE5ldHdvcmtzIFMucC5BLgorMDAxMjgxICAgICAoYmFzZSAxNikJCU1hcmNoIE5ldHdvcmtzIFMucC5BLgorCQkJCVZpYSBEZWkgTGF2b3JhdG9yaSBBdXRvYmlhbmNoaSBuLiAxLAorCQkJCURlc2lvIE1pbGFubyAyMDAzMworCQkJCUlUQUxZCisKKzAwLTEyLTgyICAgKGhleCkJCVFvdmlhCiswMDEyODIgICAgIChiYXNlIDE2KQkJUW92aWEKKwkJCQk3NDcwIE5ldyBUZWNobm9sb2d5IFdheQorCQkJCVN1aXRlIEUKKwkJCQlGcmVkZXJpY2sgTUQgMjE3MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTgzICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAxMjgzICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTEyLTg0ICAgKGhleCkJCUxhYjMzIFNybAorMDAxMjg0ICAgICAoYmFzZSAxNikJCUxhYjMzIFNybAorCQkJCUMuc28gRi4gUGVycm9uZSAyNAorCQkJCUdlbm9hIEdFIDE2MTUyCisJCQkJSVRBTFkKKworMDAtMTItODUgICAoaGV4KQkJR2l6bW9uZG8gRXVyb3BlIEx0ZAorMDAxMjg1ICAgICAoYmFzZSAxNikJCUdpem1vbmRvIEV1cm9wZSBMdGQKKwkJCQkxIE1lYWRvdyBHYXRlIEF2ZW51ZQorCQkJCUZhcm5ib3JvdWdoIEJ1c2luZXNzIFBhcmsKKwkJCQlGYXJuYm9yb3VnaCBIYW1wc2hpcmUgR1UxNCA2RkcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMi04NiAgIChoZXgpCQlFTkRFVkNPIENPUlAKKzAwMTI4NiAgICAgKGJhc2UgMTYpCQlFTkRFVkNPIENPUlAKKwkJCQkzMDcwMCBSQU5DSE8gVklFSk8gUk9BRAorCQkJCVNBTiBKVUFOIENBUElTVFJBTk8gQ0EgOTI2NzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTg3ICAgKGhleCkJCURpZ2l0YWwgRXZlcnl3aGVyZSBVbnRlcmhhbHR1bmdzZWxla3Ryb25payBHbWJICiswMDEyODcgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBFdmVyeXdoZXJlIFVudGVyaGFsdHVuZ3NlbGVrdHJvbmlrIEdtYkgKKwkJCQlNYXJpYSBHYWlsZXIgU3RyYXNzZSAxNgorCQkJCVZpbGxhY2ggS+RybnRlbiA5NTAwCisJCQkJQVVTVFJJQQorCiswMC0xMi04OCAgIChoZXgpCQkyV2lyZSwgSW5jCiswMDEyODggICAgIChiYXNlIDE2KQkJMldpcmUsIEluYworCQkJCTE3MDQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTg5ICAgKGhleCkJCUFkdmFuY2UgU3RlcmlsaXphdGlvbiBQcm9kdWN0cworMDAxMjg5ICAgICAoYmFzZSAxNikJCUFkdmFuY2UgU3RlcmlsaXphdGlvbiBQcm9kdWN0cworCQkJCTMzIFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlJcnZpbmUgQ2FsaWZvcm5pYSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItOEEgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDEyOEEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjQ1IE4uIFVTIEh3eSA0NQorCQkJCVJvb20gbm8uIE1XLTExMworCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItOEIgICAoaGV4KQkJU2Vuc29yeSBOZXR3b3JrcyBJbmMKKzAwMTI4QiAgICAgKGJhc2UgMTYpCQlTZW5zb3J5IE5ldHdvcmtzIEluYworCQkJCUxldmVsIDYsIDE0MCBXaWxsaWFtIFN0CisJCQkJRWFzdCBTeWRuZXkgTlNXIDIwMTEKKwkJCQlBVVNUUkFMSUEKKworMDAtMTItOEMgICAoaGV4KQkJV29vZHdhcmQgR292ZXJub3IKKzAwMTI4QyAgICAgKGJhc2UgMTYpCQlXb29kd2FyZCBHb3Zlcm5vcgorCQkJCTEwMDAgRS4gRHJha2UgUm9hZAorCQkJCUZ0LiBDb2xsaW5zIENPIDgwNTI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi04RCAgIChoZXgpCQlTVEIgRGF0ZW5zZXJ2aWNlIEdtYkgKKzAwMTI4RCAgICAgKGJhc2UgMTYpCQlTVEIgRGF0ZW5zZXJ2aWNlIEdtYkgKKwkJCQlXZWluc2JlcmdzdHJhc3NlIDE5MAorCQkJCUv2bG4gTlJXIDUwODI1CisJCQkJR0VSTUFOWQorCiswMC0xMi04RSAgIChoZXgpCQlRLUZyZWUgQVNBCiswMDEyOEUgICAgIChiYXNlIDE2KQkJUS1GcmVlIEFTQQorCQkJCVRoLiBPd2VzZW5zZ3QuIDM1YworCQkJCVRyb25kaGVpbSBTVCA3NDQzCisJCQkJTk9SV0FZCisKKzAwLTEyLThGICAgKGhleCkJCU1vbnRpbGlvCiswMDEyOEYgICAgIChiYXNlIDE2KQkJTW9udGlsaW8KKwkJCQkxIG1hc2tpdCBzdC4KKwkJCQlIZXJ0emVsaWEgIDQ2NzYzCisJCQkJSVNSQUVMCisKKzAwLTEyLTkwICAgKGhleCkJCUtZT1dBIEVsZWN0cmljICYgTWFjaGluZXJ5IENvcnAuCiswMDEyOTAgICAgIChiYXNlIDE2KQkJS1lPV0EgRWxlY3RyaWMgJiBNYWNoaW5lcnkgQ29ycC4KKwkJCQk0LTgtMTYsTWFzdWl6dW1pCisJCQkJS2FuYXphd2EgSXNoaWthd2EgOTIxLTgwMjUKKwkJCQlKQVBBTgorCiswMC0xMi05MSAgIChoZXgpCQlLV1MgQ29tcHV0ZXJzeXN0ZW1lIEdtYkgKKzAwMTI5MSAgICAgKGJhc2UgMTYpCQlLV1MgQ29tcHV0ZXJzeXN0ZW1lIEdtYkgKKwkJCQlDYXJsIFplaXNzIFN0ci4gMQorCQkJCUV0dGxpbmdlbiBCVyA3NjI3NQorCQkJCUdFUk1BTlkKKworMDAtMTItOTIgICAoaGV4KQkJR3JpZmZpbiBUZWNobm9sb2d5CiswMDEyOTIgICAgIChiYXNlIDE2KQkJR3JpZmZpbiBUZWNobm9sb2d5CisJCQkJMTkzMCBBaXIgTGFuZSBEcml2ZQorCQkJCU5hc2h2aWxsZSBUTiAzNzIxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItOTMgICAoaGV4KQkJR0UgRW5lcmd5CiswMDEyOTMgICAgIChiYXNlIDE2KQkJR0UgRW5lcmd5CisJCQkJMTUwMSBSb2Fub2tlIEJsdmQuCisJCQkJUm9vbSAyODMKKwkJCQlTYWxlbSBWQSAyNDE1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItOTQgICAoaGV4KQkJU1VNSVRPTU8gRUxFQ1RSSUMgREVWSUNFIElOTk9WQVRJT05TLCBJTkMKKzAwMTI5NCAgICAgKGJhc2UgMTYpCQlTVU1JVE9NTyBFTEVDVFJJQyBERVZJQ0UgSU5OT1ZBVElPTlMsIElOQworCQkJCTEwMDAgS2FtaXN1a2lhd2FyYSxTaG93YS1jaG8KKwkJCQlOYWtha29tYS1ndW4gWWFtYW5hc2hpIDQwOS0zODgzCisJCQkJSkFQQU4KKworMDAtMTItOTUgICAoaGV4KQkJQWl3YXJlIEluYy4KKzAwMTI5NSAgICAgKGJhc2UgMTYpCQlBaXdhcmUgSW5jLgorCQkJCUotVG93ZXIgMkYKKwkJCQkxLTEgTmlra29jaG8KKwkJCQlGdWNodS1zaGkgVG9reW8gMTgzLTAwNDQKKwkJCQlKQVBBTgorCiswMC0xMi05NiAgIChoZXgpCQlBZGRsb2dpeAorMDAxMjk2ICAgICAoYmFzZSAxNikJCUFkZGxvZ2l4CisJCQkJNDU5IFdhbGQKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTk3ICAgKGhleCkJCU8yTWljcm8sIEluYy4KKzAwMTI5NyAgICAgKGJhc2UgMTYpCQlPMk1pY3JvLCBJbmMuCisJCQkJMzExOCBQYXRyaWNrIEhlbnJ5IERyaXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTk4ICAgKGhleCkJCU1JQ08gRUxFQ1RSSUMoU0hFTlpIRU4pIExJTUlURUQKKzAwMTI5OCAgICAgKGJhc2UgMTYpCQlNSUNPIEVMRUNUUklDKFNIRU5aSEVOKSBMSU1JVEVECisJCQkJMjEvRiBCbG9jayBBLCBIYWlscnVuIENvbXBsZXgsIDYwMjEgU2hlbk5hbiBCbHZkLiwgU2hlblpoZW4sIFBSIENoaW5hLgorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0xMi05OSAgIChoZXgpCQlLdGVjaCBUZWxlY29tbXVuaWNhdGlvbnMgSW5jCiswMDEyOTkgICAgIChiYXNlIDE2KQkJS3RlY2ggVGVsZWNvbW11bmljYXRpb25zIEluYworCQkJCTIxNTQwIFByYWlyaWUgU3RyZWV0IFVuaXQgQgorCQkJCUNoYXRzd29ydGggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTlBICAgKGhleCkJCUlSVCBFbGVjdHJvbmljcyBQdHkgTHRkCiswMDEyOUEgICAgIChiYXNlIDE2KQkJSVJUIEVsZWN0cm9uaWNzIFB0eSBMdGQKKwkJCQkyNiBIb3RoYW0gUGFyYWRlCisJCQkJQXJ0YXJtb24gTlNXIDIwNjQKKwkJCQlBVVNUUkFMSUEKKworMDAtMTItOUIgICAoaGV4KQkJRTJTIEVsZWN0cm9uaWMgRW5naW5lZXJpbmcgU29sdXRpb25zLCBTLkwuCiswMDEyOUIgICAgIChiYXNlIDE2KQkJRTJTIEVsZWN0cm9uaWMgRW5naW5lZXJpbmcgU29sdXRpb25zLCBTLkwuCisJCQkJU2FudCBGZXJyYW4gMTAKKwkJCQlCYXJjZWxvbmEgIDA4MDMxCisJCQkJU1BBSU4KKworMDAtMTItOUMgICAoaGV4KQkJWXVsaW5ldAorMDAxMjlDICAgICAoYmFzZSAxNikJCVl1bGluZXQKKwkJCQkxMUYsIFNhbWhvbW9vbHNhbiBCL0QgMjc1LTYsIFlhbmdqYWUtZG9uZworCQkJCVNlb2NobyBTZW91bCAxMzctOTQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTlEICAgKGhleCkJCUZpcnN0IEludGVybmF0aW9uYWwgQ29tcHV0ZXIgZG8gQnJhc2lsCiswMDEyOUQgICAgIChiYXNlIDE2KQkJRmlyc3QgSW50ZXJuYXRpb25hbCBDb21wdXRlciBkbyBCcmFzaWwKKwkJCQlSb2RvdmlhIEJSIDQ1OQorCQkJCWttIDEyMSAtIERpc3RyaXRvIEluZHVzdHJpYWwKKwkJCQlTYW50YSBSaXRhIGRvIFNhcHVjYe0gTWluYXMgR2VyYWlzIAorCQkJCUJSQVpJTAorCiswMC0xMi05RSAgIChoZXgpCQlTdXJmIENvbW11bmljYXRpb25zIEluYy4KKzAwMTI5RSAgICAgKGJhc2UgMTYpCQlTdXJmIENvbW11bmljYXRpb25zIEluYy4KKwkJCQlSb29tIDMxMywgM0YsIEJsZGcuNTIsIE5vLiAxOTUsIENodW5nIEhzaW5nIFJkLiwgU2VjIDQsIENodXR1bmcsIEhzaW5DaHUsIFRhaXdhbgorCQkJCUhzaW5DaHUgIDMxMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItOUYgICAoaGV4KQkJUkFFIFN5c3RlbXMsIEluYy4KKzAwMTI5RiAgICAgKGJhc2UgMTYpCQlSQUUgU3lzdGVtcywgSW5jLgorCQkJCTEzMzkgTW9mZmV0dCBQYXJrIERyaXZlCisJCQkJU3Vubnl2YWxlIENhbGlmb3JuaWEgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUEwICAgKGhleCkJCU5lb01lcmlkaWFuIFNkbiBCaGQKKzAwMTJBMCAgICAgKGJhc2UgMTYpCQlOZW9NZXJpZGlhbiBTZG4gQmhkCisJCQkJM0EtMSwgUGVyZGFuYSBUaGUgUGxhY2UKKwkJCQlKYWxhbiBQSlUgOC81RworCQkJCUJhbmRhciBEYW1hbnNhcmEgUGVyZGFuYSBTZWxhbmdvciA0NzgyMAorCQkJCU1BTEFZU0lBCisKKzAwLTEyLUExICAgKGhleCkJCUJsdWVQYWNrZXQgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDEyQTEgICAgIChiYXNlIDE2KQkJQmx1ZVBhY2tldCBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQkxMEYtMSwgTm8uIDQyMCwgU2VjLiAxLCBLZWVsdW5nIFJkLiwgMTEwLAorCQkJCVRhaXBlaSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi1BMiAgIChoZXgpCQlWSVRBCiswMDEyQTIgICAgIChiYXNlIDE2KQkJVklUQQorCQkJCVBPIEJveCAxOTY1OAorCQkJCUZvdW50YWluIEhpbGxzIEFaIDg1MjY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1BMyAgIChoZXgpCQlUcnVzdCBJbnRlcm5hdGlvbmFsIEIuVi4KKzAwMTJBMyAgICAgKGJhc2UgMTYpCQlUcnVzdCBJbnRlcm5hdGlvbmFsIEIuVi4KKwkJCQlMYWFuIHZhbiBCYXJjZWxvbmEgNjAwCisJCQkJRG9yZHJlY2h0IFp1aWQgaG9sbGFuZCAzMzE3IERECisJCQkJTkVUSEVSTEFORFMKKworMDAtMTItQTQgICAoaGV4KQkJVGhpbmdNYWdpYywgTExDCiswMDEyQTQgICAgIChiYXNlIDE2KQkJVGhpbmdNYWdpYywgTExDCisJCQkJT25lIEJyb2Fkd2F5CisJCQkJMTR0aCBGbG9vcgorCQkJCUNhbWJyaWRnZSBNQSAwMjE0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQTUgICAoaGV4KQkJU3RhcmdlbiwgSW5jLgorMDAxMkE1ICAgICAoYmFzZSAxNikJCVN0YXJnZW4sIEluYy4KKwkJCQkyMjUgQ2VkYXIgSGlsbCBTdHJlZXQKKwkJCQlNYXJsYm9yb3VnaCBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQTYgICAoaGV4KQkJRG9sYnkgQXVzdHJhbGlhCiswMDEyQTYgICAgIChiYXNlIDE2KQkJRG9sYnkgQXVzdHJhbGlhCisJCQkJTGV2ZWwgNgorCQkJCTEzNiBDaGFsbWVycyBTdHJlZXQKKwkJCQlTdXJyeSBIaWxscyBOU1cgMjAxMAorCQkJCUFVU1RSQUxJQQorCiswMC0xMi1BNyAgIChoZXgpCQlJU1IgVEVDSE5PTE9HSUVTIEluYworMDAxMkE3ICAgICAoYmFzZSAxNikJCUlTUiBURUNITk9MT0dJRVMgSW5jCisJCQkJMTEwMCwgcnVlIE5vdHJlLURhbWUgT3Vlc3QKKwkJCQlNb250cmVhbCBRdWViZWMgSDNDIDFLMworCQkJCUNBTkFEQQorCiswMC0xMi1BOCAgIChoZXgpCQlpbnRlYyBHbWJICiswMDEyQTggICAgIChiYXNlIDE2KQkJaW50ZWMgR21iSAorCQkJCVJhaG1lZGVzdHIuIDkwCisJCQkJTHVlZGVuc2NoZWlkIE5SVyA1ODUwNworCQkJCUdFUk1BTlkKKworMDAtMTItQTkgICAoaGV4KQkJM0NvbSBMdGQKKzAwMTJBOSAgICAgKGJhc2UgMTYpCQkzQ29tIEx0ZAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlQZW9wbGVidWlsZGluZyBFc3RhdGUsIE1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cyBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTItQUEgICAoaGV4KQkJSUVFLCBJbmMuCiswMDEyQUEgICAgIChiYXNlIDE2KQkJSUVFLCBJbmMuCisJCQkJNzc0MCBMZW1vbmEgQXZlbnVlCisJCQkJVmFuIE51eXMsIENBIDkxNDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1BQiAgIChoZXgpCQlXaUxpZmUsIEluYy4KKzAwMTJBQiAgICAgKGJhc2UgMTYpCQlXaUxpZmUsIEluYy4KKwkJCQkxMzIgRS4gMTMwNjUgUy4sIFN1aXRlIDE1MAorCQkJCURyYXBlciBVVCA4NDAyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQUMgICAoaGV4KQkJT05USU1FVEVLIElOQy4KKzAwMTJBQyAgICAgKGJhc2UgMTYpCQlPTlRJTUVURUsgSU5DLgorCQkJCTlGbC4sT3duZXIncyBUb3dlcgorCQkJCTE2LTUsIFN1bmFlLURvbmcsIEJ1bmRhbmctR3UKKwkJCQlTdW5nbmFtLVNpIEt5dW5nZ2ktRG8gNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMi1BRCAgIChoZXgpCQlJRFMgR21iSAorMDAxMkFEICAgICAoYmFzZSAxNikJCUlEUyBHbWJICisJCQkJTm9iZWxzdHIsIDE4CisJCQkJRXR0bGluZ2VuIEJhZGVuLVf8cnR0ZW1iZXJnIDc2Mjc1CisJCQkJR0VSTUFOWQorCiswMC0xMi1BRSAgIChoZXgpCQlITFMgSEFSRC1MSU5FIFNvbHV0aW9ucyBJbmMuCiswMDEyQUUgICAgIChiYXNlIDE2KQkJSExTIEhBUkQtTElORSBTb2x1dGlvbnMgSW5jLgorCQkJCTUzIE1haW4gU3RyZWV0CisJCQkJRG93bGluZyBPbnRhcmlvIFAwTSAxUjAKKwkJCQlDQU5BREEKKworMDAtMTItQUYgICAoaGV4KQkJRUxQUk8gVGVjaG5vbG9naWVzCiswMDEyQUYgICAgIChiYXNlIDE2KQkJRUxQUk8gVGVjaG5vbG9naWVzCisJCQkJOSAvIDEyIEJpbGxhYm9uZyBTdC4KKwkJCQlTdGFmZm9yZCBRdWVlbnNsYW5kIDQwNTMKKwkJCQlBVVNUUkFMSUEKKworMDAtMTItQjAgICAoaGV4KQkJRWZvcmUgT3lqICAgKFBsYykKKzAwMTJCMCAgICAgKGJhc2UgMTYpCQlFZm9yZSBPeWogICAoUGxjKQorCQkJCVF1YXJ0ZXR0byBCdXNpbmVzcyBQYXJrCisJCQkJTGlubm9pdHVzdGllIDQgQgorCQkJCUVzcG9vICBGSSAtIDAyNjAwCisJCQkJRklOTEFORAorCiswMC0xMi1CMSAgIChoZXgpCQlEYWkgTmlwcG9uIFByaW50aW5nIENvLiwgTHRkCiswMDEyQjEgICAgIChiYXNlIDE2KQkJRGFpIE5pcHBvbiBQcmludGluZyBDby4sIEx0ZAorCQkJCTItOC0yMSxBa2FiYW5lLW1pbmFtaQorCQkJCUtpdGEta3UgVG9reW8gMTE1LTAwNDQKKwkJCQlKQVBBTgorCiswMC0xMi1CMiAgIChoZXgpCQlBVk9MSVRFUyBMVEQuCiswMDEyQjIgICAgIChiYXNlIDE2KQkJQVZPTElURVMgTFRELgorCQkJCTE4NCBQQVJLIEFWRU5VRQorCQkJCUxPTkRPTiAgTlcxMCA3WEwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMi1CMyAgIChoZXgpCQlBZHZhbmNlIFdpcmVsZXNzIFRlY2hub2xvZ3kgQ29ycC4KKzAwMTJCMyAgICAgKGJhc2UgMTYpCQlBZHZhbmNlIFdpcmVsZXNzIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkxMkYgTm8uIDI3LTYsIFNlYy4gMiwgQ2h1bmcgQ2hlbmcgRWFzdCBSb2FkCisJCQkJVGFtc2h1aSAgMjUxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi1CNCAgIChoZXgpCQlXb3JrIE1pY3Jvd2F2ZSBHbWJICiswMDEyQjQgICAgIChiYXNlIDE2KQkJV29yayBNaWNyb3dhdmUgR21iSAorCQkJCVJhaWZmZWlzZW5zdHJhc3NlIDEyCisJCQkJSG9semtpcmNoZW4gIDgzNjA3CisJCQkJR0VSTUFOWQorCiswMC0xMi1CNSAgIChoZXgpCQlWaWFsdGEsIEluYy4KKzAwMTJCNSAgICAgKGJhc2UgMTYpCQlWaWFsdGEsIEluYy4KKwkJCQk0ODQ2MSBGcmVtb250IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQjYgICAoaGV4KQkJU2FudGEgQmFyYmFyYSBJbmZyYXJlZCwgSW5jLgorMDAxMkI2ICAgICAoYmFzZSAxNikJCVNhbnRhIEJhcmJhcmEgSW5mcmFyZWQsIEluYy4KKwkJCQkzMCBTLiBDYWxsZSBDZXNhciBDaGF2ZXoKKwkJCQlTdWl0ZSBECisJCQkJU2FudGEgQmFyYmFyYSBDQSA5MzEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQjcgICAoaGV4KQkJUFRXIEZyZWlidXJnCiswMDEyQjcgICAgIChiYXNlIDE2KQkJUFRXIEZyZWlidXJnCisJCQkJTG9lcnJhY2hlciBTdHJhc3NlIDcKKwkJCQlGcmVpYnVyZyAgNzkxMTUKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLUI4ICAgKGhleCkJCUcyIE1pY3Jvc3lzdGVtcworMDAxMkI4ICAgICAoYmFzZSAxNikJCUcyIE1pY3Jvc3lzdGVtcworCQkJCTQwOCBFdWNsaWQgQXZlCisJCQkJT2FrbGFuZCBDQSA5NDYxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQjkgICAoaGV4KQkJRnVzaW9uIERpZ2l0YWwgVGVjaG5vbG9neQorMDAxMkI5ICAgICAoYmFzZSAxNikJCUZ1c2lvbiBEaWdpdGFsIFRlY2hub2xvZ3kKKwkJCQlWaWN0b3JpYSBNZXdzLCAyMyBNaWxsZmllbGQgUm9hZAorCQkJCUNvdHRpbmdsZXkgQnVzaW5lc3MgUGFyaworCQkJCUJpbmdsZXkgV2VzdCBZb3Jrc2hpcmUgQkQxNiAxUFkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMi1CQSAgIChoZXgpCQlGU0kgU3lzdGVtcywgSW5jLgorMDAxMkJBICAgICAoYmFzZSAxNikJCUZTSSBTeXN0ZW1zLCBJbmMuCisJCQkJNTg0NyBDb3VudHkgUm9hZCA0MQorCQkJCUZhcm1pbmd0b24gTlkgMTQ0MjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUJCICAgKGhleCkJCVRlbGVjb21tdW5pY2F0aW9ucyBJbmR1c3RyeSBBc3NvY2lhdGlvbiBUUi00MSBDb21taXR0ZWUKKzAwMTJCQiAgICAgKGJhc2UgMTYpCQlUZWxlY29tbXVuaWNhdGlvbnMgSW5kdXN0cnkgQXNzb2NpYXRpb24gVFItNDEgQ29tbWl0dGVlCisJCQkJMjUwMCBXaWxzb24gQmx2ZC4sIFN1aXRlIDMwMAorCQkJCUFybGluZ3RvbiBWQSAyMjIwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQkMgICAoaGV4KQkJRWNob2xhYiBMTEMKKzAwMTJCQyAgICAgKGJhc2UgMTYpCQlFY2hvbGFiIExMQworCQkJCTI2NyBCb3N0b24gUm9hZAorCQkJCVN1aXRlIDExCisJCQkJQmlsbGVyaWNhIE1BIDAxODYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1CRCAgIChoZXgpCQlBdmFudGVjIE1hbnVmYWN0dXJpbmcgTGltaXRlZAorMDAxMkJEICAgICAoYmFzZSAxNikJCUF2YW50ZWMgTWFudWZhY3R1cmluZyBMaW1pdGVkCisJCQkJVW5pdCBMLCA3L0YsIENhbWVscGFpbnQgQmxkZywgQmxvY2sgMworCQkJCTYwIEhvaSBZdWVuIFJvYWQsIEt3dW4gVG9uZywgS293bG9vbgorCQkJCTg1MgorCQkJCUhPTkcgS09ORworCiswMC0xMi1CRSAgIChoZXgpCQlBc3RlayBDb3Jwb3JhdGlvbgorMDAxMkJFICAgICAoYmFzZSAxNikJCUFzdGVrIENvcnBvcmF0aW9uCisJCQkJNTA1NSBDb3Jwb3JhdGUgUGxhemEgRHJpdmUKKwkJCQlDb2xvcmFkbyBTcHJpbmdzIENvbG9yYWRvIDgwOTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1CRiAgIChoZXgpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDEyQkYgICAgIChiYXNlIDE2KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLCBOby4gOSwgUGFyayBBdmVudWUgSUkKKwkJCQlTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItQzAgICAoaGV4KQkJSG90TGF2YSBTeXN0ZW1zLCBJbmMuCiswMDEyQzAgICAgIChiYXNlIDE2KQkJSG90TGF2YSBTeXN0ZW1zLCBJbmMuCisJCQkJNjMyOSBDaGVsdG9uIERyaXZlCisJCQkJT2FrbGFuZCBDQSA5NDYxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQzEgICAoaGV4KQkJQ2hlY2sgUG9pbnQgU29mdHdhcmUgVGVjaG5vbG9naWVzCiswMDEyQzEgICAgIChiYXNlIDE2KQkJQ2hlY2sgUG9pbnQgU29mdHdhcmUgVGVjaG5vbG9naWVzCisJCQkJNSBIYSdzb2xlbGltIFN0LgorCQkJCVRlbCBBdml2ICA2Nzg5NworCQkJCUlTUkFFTAorCiswMC0xMi1DMiAgIChoZXgpCQlBcGV4IEVsZWN0cm9uaWNzIEZhY3RvcnkKKzAwMTJDMiAgICAgKGJhc2UgMTYpCQlBcGV4IEVsZWN0cm9uaWNzIEZhY3RvcnkKKwkJCQlOby4zIEluZHVzdHJpYWwgWm9uZSwgTm8uNCBCbG9jaywKKwkJCQlGdSd5b25nIFRvd24sIEJhbydhbiBEaXN0cmljdAorCQkJCVNoZW4gWmhlbiBHdWFuZyBEb25nIDUxODEwMworCQkJCUNISU5BCisKKzAwLTEyLUMzICAgKGhleCkJCVdJVCBTLkEuCiswMDEyQzMgICAgIChiYXNlIDE2KQkJV0lUIFMuQS4KKwkJCQkxMzggYXZlbnVlIEzpb24gQulyZW5nZXIKKwkJCQlTYWludCBMYXVyZW50IGR1IFZhciBQQUNBIDA2NzAwCisJCQkJRlJBTkNFCisKKzAwLTEyLUM0ICAgKGhleCkJCVZpc2VvbiwgSW5jLgorMDAxMkM0ICAgICAoYmFzZSAxNikJCVZpc2VvbiwgSW5jLgorCQkJCTg0NDUgRnJlZXBvcnQgUGFya3dheQorCQkJCVN1aXRlIDI0NQorCQkJCUlydmluZyBUZXhhcyA3NTA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQzUgICAoaGV4KQkJVi1TaG93ICBUZWNobm9sb2d5IChDaGluYSkgQ28uLEx0ZAorMDAxMkM1ICAgICAoYmFzZSAxNikJCVYtU2hvdyAgVGVjaG5vbG9neSAoQ2hpbmEpIENvLixMdGQKKwkJCQk3RiwgVGVuZ2RhIFBsYXphLCBOby4xNjgKKwkJCQlYaXpoaW1lbiBXYWkgU3RyZWV0LAorCQkJCUhhaURpYW4gRGlzdHJpY3QsIEJlaWppbmcgMTAwMDg5CisJCQkJQ0hJTkEKKworMDAtMTItQzYgICAoaGV4KQkJVEdDIEFtZXJpY2EsIEluYworMDAxMkM2ICAgICAoYmFzZSAxNikJCVRHQyBBbWVyaWNhLCBJbmMKKwkJCQkyOTAxIFRhc21hbiBEcml2ZSwgU3VpdGUgMTExCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUM3ICAgKGhleCkJCVNFQ1VSQVkgVGVjaG5vbG9naWVzIEx0ZC5Dby4KKzAwMTJDNyAgICAgKGJhc2UgMTYpCQlTRUNVUkFZIFRlY2hub2xvZ2llcyBMdGQuQ28uCisJCQkJVGlhbmppbiBIYWl0YWkgSW5kdXN0cmlhbCBCYXNlIEVyV2VpIFJvYWQKKwkJCQlOby4gNiBCbG9jayBGIDgtNDAxCisJCQkJVGlhbmppbiAgMzAwMzg0CisJCQkJQ0hJTkEKKworMDAtMTItQzggICAoaGV4KQkJUGVyZmVjdCB0ZWNoCiswMDEyQzggICAgIChiYXNlIDE2KQkJUGVyZmVjdCB0ZWNoCisJCQkJM0YsTm8uOSxMQU5FMTc1LE5BTktBTiBSRC4sCisJCQkJTFVKSFUgVEFPWVVBTiAzMzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLUM5ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxMkM5ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUNBICAgKGhleCkJCU1lY2hhdHJvbmljIEJyaWNrIEFwcworMDAxMkNBICAgICAoYmFzZSAxNikJCU1lY2hhdHJvbmljIEJyaWNrIEFwcworCQkJCUFsc2lvbiAyCisJCQkJNjQwMCBTb25kZXJib3JnIAorCQkJCURFTk1BUksKKworMDAtMTItQ0IgICAoaGV4KQkJQ1NTIEluYy4KKzAwMTJDQiAgICAgKGJhc2UgMTYpCQlDU1MgSW5jLgorCQkJCTE1MSBTdXBlcmlvciBCbHZkLgorCQkJCVVuaXQgMTMgJiAxNAorCQkJCU1pc3Npc3NhdWdhIE9udGFyaW8gTDVUMkwxCisJCQkJQ0FOQURBCisKKzAwLTEyLUNDICAgKGhleCkJCUJpdGF0ZWsgQ08uLCBMVEQKKzAwMTJDQyAgICAgKGJhc2UgMTYpCQlCaXRhdGVrIENPLiwgTFRECisJCQkJNkYtMSwxOTAsVGEtVHVuZyBSb2FkLFNFQy4gMywKKwkJCQlIc2ljaGloIFRhaXBlaSBjb3VudHkgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi1DRCAgIChoZXgpCQlBU0VNIFNwQQorMDAxMkNEICAgICAoYmFzZSAxNikJCUFTRU0gU3BBCisJCQkJVmlhIEJ1aWEsIDQKKwkJCQlBUlRFR05BIFVkaW5lIEktMzMwMTEKKwkJCQlJVEFMWQorCiswMC0xMi1DRSAgIChoZXgpCQlBZHZhbmNlZCBDeWJlcm5ldGljcyBHcm91cAorMDAxMkNFICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIEN5YmVybmV0aWNzIEdyb3VwCisJCQkJMjk1MyBCdW5rZXIgSGlsbCBMYW5lCisJCQkJU3VpdGUgNDAwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUNGICAgKGhleCkJCUFjY3RvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDEyQ0YgICAgIChiYXNlIDE2KQkJQWNjdG9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQlOby4gMSBDcmVhdGlvbiBSZC4gSUlJLCBTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItRDAgICAoaGV4KQkJR29zc2VuLU1ldHJhd2F0dC1HbWJICiswMDEyRDAgICAgIChiYXNlIDE2KQkJR29zc2VuLU1ldHJhd2F0dC1HbWJICisJCQkJVGhvbWFzLU1hbm4tU3RyLiAxNi0yMAorCQkJCU78cm5iZXJnIEJhdmFyaWEgOTA0NzEKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLUQxICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzIEluYworMDAxMkQxICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzIEluYworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwKKwkJCQlNUyA4NzIzCisJCQkJRGFsbGFzIFRleGFzIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1EMiAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxMkQyICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJTVMgODcyMworCQkJCURhbGxhcyBUZXhhcyA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItRDMgICAoaGV4KQkJWmV0dGEgU3lzdGVtcywgSW5jLgorMDAxMkQzICAgICAoYmFzZSAxNikJCVpldHRhIFN5c3RlbXMsIEluYy4KKwkJCQkxNzMxMSAxMzV0aCBBVkUgTkUKKwkJCQlTdWl0ZSBCOTAwCisJCQkJV29vZGludmlsbGUgV0EgOTgwNzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUQ0ICAgKGhleCkJCVByaW5jZXRvbiBUZWNobm9sb2d5LCBMdGQKKzAwMTJENCAgICAgKGJhc2UgMTYpCQlQcmluY2V0b24gVGVjaG5vbG9neSwgTHRkCisJCQkJSy5BLkkuIEJsZGcuIDNGCisJCQkJMy05LTUgSXdhbW90by1jaG8KKwkJCQlDaGl5b2Rha3UgVG9reW8gMTAxLTAwMzIKKwkJCQlKQVBBTgorCiswMC0xMi1ENSAgIChoZXgpCQlNb3Rpb24gUmVhbGl0eSBJbmMuCiswMDEyRDUgICAgIChiYXNlIDE2KQkJTW90aW9uIFJlYWxpdHkgSW5jLgorCQkJCTIwMCBOb3J0aCBDb2JiIFBhcmt3YXkKKwkJCQlTdWl0ZSAxNDAKKwkJCQlNYXJpZXR0YSBHQSAzMDA2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItRDYgICAoaGV4KQkJSmlhbmdzdSBZaXRvbmcgSGlnaC1UZWNoIENvLixMdGQKKzAwMTJENiAgICAgKGJhc2UgMTYpCQlKaWFuZ3N1IFlpdG9uZyBIaWdoLVRlY2ggQ28uLEx0ZAorCQkJCU5vIDIxNiBIdWFuZ2hlIFJvYWQKKwkJCQlDaGFuZ3NodSBKaWFuZ3N1IDIxNTUwMAorCQkJCUNISU5BCisKKzAwLTEyLUQ3ICAgKGhleCkJCUludmVudG8gTmV0d29ya3MsIEluYy4KKzAwMTJENyAgICAgKGJhc2UgMTYpCQlJbnZlbnRvIE5ldHdvcmtzLCBJbmMuCisJCQkJMzc3IFNpbWFyYW5vIERyaXZlCisJCQkJTWFybGJvcm91Z2ggTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUQ4ICAgKGhleCkJCUludGVybmF0aW9uYWwgR2FtZXMgU3lzdGVtIENvLiwgTHRkLgorMDAxMkQ4ICAgICAoYmFzZSAxNikJCUludGVybmF0aW9uYWwgR2FtZXMgU3lzdGVtIENvLiwgTHRkLgorCQkJCU5vLjEzMCwgV3UtR3VuZyBSZC4sIFd1LUd1IEluZHVzdHJpYWwgUGFyaywKKwkJCQlUYWlwZWkgIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItRDkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMkQ5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItREEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMkRBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItREIgICAoaGV4KQkJWklFSEwgaW5kdXN0cmllLWVsZWt0cm9uaWsgR21iSCArIENvIEtHCiswMDEyREIgICAgIChiYXNlIDE2KQkJWklFSEwgaW5kdXN0cmllLWVsZWt0cm9uaWsgR21iSCArIENvIEtHCisJCQkJRGFpbWxlcnN0ci4gMTMKKwkJCQlTY2h3YWViaXNjaCBIYWxsICA3NDUyMworCQkJCUdFUk1BTlkKKworMDAtMTItREMgICAoaGV4KQkJU3VuQ29ycCBJbmR1c3RyaWFsIExpbWl0ZWQKKzAwMTJEQyAgICAgKGJhc2UgMTYpCQlTdW5Db3JwIEluZHVzdHJpYWwgTGltaXRlZAorCQkJCU5vLjY4IEd1b3dlaSBSb2FkLAorCQkJCUxpYW50YW5nIEluZHVzdHJpYWwgRGlzdHJpY3QsIFNoZW56aGVuLCAKKwkJCQlDSElOQQorCiswMC0xMi1ERCAgIChoZXgpCQlTaGVuZ3F1IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKFNoYW5naGFpKSBDby4sIEx0ZC4KKzAwMTJERCAgICAgKGJhc2UgMTYpCQlTaGVuZ3F1IEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKFNoYW5naGFpKSBDby4sIEx0ZC4KKwkJCQlOby4xIEJ1aWxkaW5nLE5vLiA2OTAgQmlibyBSb2FkLFB1ZG9uZyBOZXcgQXJlYQorCQkJCVNoYW5naGFpICAyMDEyMDMKKwkJCQlDSElOQQorCiswMC0xMi1ERSAgIChoZXgpCQlSYWRpbyBDb21wb25lbnRzIFN3ZWRlbiBBQgorMDAxMkRFICAgICAoYmFzZSAxNikJCVJhZGlvIENvbXBvbmVudHMgU3dlZGVuIEFCCisJCQkJVmlkZXJvZ2F0YW4gM0IKKwkJCQlLaXN0YSBTdG9ja2hvbG0gMTY0MjIKKwkJCQlTV0VERU4KKworMDAtMTItREYgICAoaGV4KQkJTm92b21hdGljIEFHCiswMDEyREYgICAgIChiYXNlIDE2KQkJTm92b21hdGljIEFHCisJCQkJV2llbmVyIFN0cmFzc2UgMTU4CisJCQkJR3VtcG9sZHNraXJjaGVuIE5pZWRlcvZzdGVycmVpY2ggQS0yMzUyCisJCQkJQVVTVFJJQQorCiswMC0xMi1FMCAgIChoZXgpCQlDb2RhbiBMaW1pdGVkCiswMDEyRTAgICAgIChiYXNlIDE2KQkJQ29kYW4gTGltaXRlZAorCQkJCTgxIEdyYXZlcyBTdHJlZXQKKwkJCQlOZXd0b24gU291dGggNTA3NAorCQkJCUFVU1RSQUxJQQorCiswMC0xMi1FMSAgIChoZXgpCQlBbGxpYW50IE5ldHdvcmtzLCBJbmMKKzAwMTJFMSAgICAgKGJhc2UgMTYpCQlBbGxpYW50IE5ldHdvcmtzLCBJbmMKKwkJCQkxMjU5IEJpcmNod29vZCBEci4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUUyICAgKGhleCkJCUFMQVhBTEEgTmV0d29ya3MgQ29ycG9yYXRpb24KKzAwMTJFMiAgICAgKGJhc2UgMTYpCQlBTEFYQUxBIE5ldHdvcmtzIENvcnBvcmF0aW9uCisJCQkJODkwIEthc2hpbWFkYSwgU2Fpd2FpLWt1CisJCQkJS2F3YXNha2ktc2hpIEthbmFnYXdhLWtlbiAyMTItMDA1OAorCQkJCUpBUEFOCisKKzAwLTEyLUUzICAgKGhleCkJCUFnYXQtUlQsIEx0ZC4KKzAwMTJFMyAgICAgKGJhc2UgMTYpCQlBZ2F0LVJULCBMdGQuCisJCQkJMTAxIHByLiBNaXJhICMxMjIwLAorCQkJCU1vc2NvdyAgMTI5MDg1CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTEyLUU0ICAgKGhleCkJCVpJRUhMIGluZHVzdHJpZS1lbGVjdHJvbmlrIEdtYkggKyBDbyBLRworMDAxMkU0ICAgICAoYmFzZSAxNikJCVpJRUhMIGluZHVzdHJpZS1lbGVjdHJvbmlrIEdtYkggKyBDbyBLRworCQkJCURhaW1sZXJzdHIuIDEzCisJCQkJU2Nod2FlYmlzY2ggSGFsbCAgNzQ1MjMKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLUU1ICAgKGhleCkJCVRpbWUgQW1lcmljYSwgSW5jLgorMDAxMkU1ICAgICAoYmFzZSAxNikJCVRpbWUgQW1lcmljYSwgSW5jLgorCQkJCTUxIFcuIDNyZCBTdHJlZXQgIzMxMAorCQkJCVRlbXBlIEFaIDg1MjgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1FNiAgIChoZXgpCQlTUEVDVEVDIENPTVBVVEVSIENPLiwgTFRELgorMDAxMkU2ICAgICAoYmFzZSAxNikJCVNQRUNURUMgQ09NUFVURVIgQ08uLCBMVEQuCisJCQkJNkYuLCBOby4gOTIsIE5hbmtpbmcgRS4gUmQuIFNlYy4gNSwKKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItRTcgICAoaGV4KQkJUHJvamVjdGVrIE5ldHdvcmtpbmcgRWxlY3Ryb25pY3MgQ29ycC4KKzAwMTJFNyAgICAgKGJhc2UgMTYpCQlQcm9qZWN0ZWsgTmV0d29ya2luZyBFbGVjdHJvbmljcyBDb3JwLgorCQkJCTVGLTksIE5vLiAxNiwgTGFuZSA2MDksIFNlYy4gNSwgQ2h1bmdzaGluIFJkLiwKKwkJCQlTYW5jaHVuZywgVGFpcGVpICAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLUU4ICAgKGhleCkJCUZyYXVuaG9mZXIgSU1TCiswMDEyRTggICAgIChiYXNlIDE2KQkJRnJhdW5ob2ZlciBJTVMKKwkJCQlGaW5rZW5zdHJhc3NlIDYxCisJCQkJRHVpc2J1cmcgTlJXIDQ3MDU3CisJCQkJR0VSTUFOWQorCiswMC0xMi1FOSAgIChoZXgpCQlBYmJleSBTeXN0ZW1zIEx0ZAorMDAxMkU5ICAgICAoYmFzZSAxNikJCUFiYmV5IFN5c3RlbXMgTHRkCisJCQkJTGV2ZWwgNCwgMjIwIFdpbGxpcyBTdAorCQkJCVBPIEJveCAyNy00OTcKKwkJCQlXZWxsaW5ndG9uICA2MDMwCisJCQkJTkVXIFpFQUxBTkQKKworMDAtMTItRUEgICAoaGV4KQkJVHJhbmUKKzAwMTJFQSAgICAgKGJhc2UgMTYpCQlUcmFuZQorCQkJCTQ4MzMgV2hpdGUgQmVhciBQYXJrd2F5CisJCQkJU3QuIFBhdWwgTU4gNTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUVCICAgKGhleCkJCVIyREksIExMQworMDAxMkVCICAgICAoYmFzZSAxNikJCVIyREksIExMQworCQkJCTI1NzUgTkUgS2F0aHJ5biBTdC4KKwkJCQlTdWl0ZSAxNAorCQkJCUhpbGxzYm9ybyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItRUMgICAoaGV4KQkJTW92YWNvbG9yIGIudi4KKzAwMTJFQyAgICAgKGJhc2UgMTYpCQlNb3ZhY29sb3IgYi52LgorCQkJCUtvcGVyc2xhZ2Vyc3N0cmFhdCAzMQorCQkJCVNuZWVrIEZyaWVzbGFuZCA4NjAxIFdMCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTItRUQgICAoaGV4KQkJQVZHIEFkdmFuY2VkIFRlY2hub2xvZ2llcworMDAxMkVEICAgICAoYmFzZSAxNikJCUFWRyBBZHZhbmNlZCBUZWNobm9sb2dpZXMKKwkJCQk0MTQwIFV0aWNhIFJpZGdlIFJvYWQKKwkJCQlCZXR0ZW5kb3JmIElBIDUyNzIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1FRSAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorMDAxMkVFICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKKzAwLTEyLUVGICAgKGhleCkJCU9uZUFjY2VzcyBTQQorMDAxMkVGICAgICAoYmFzZSAxNikJCU9uZUFjY2VzcyBTQQorCQkJCTI4IHJ1ZSBkZSBsYSBSZWRvdXRlCisJCQkJRm9udGVuYXkgYXV4IFJvc2VzICA5MjI2MAorCQkJCUZSQU5DRQorCiswMC0xMi1GMCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMTJGMCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktdGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTEyLUYxICAgKGhleCkJCUlGT1RFQworMDAxMkYxICAgICAoYmFzZSAxNikJCUlGT1RFQworCQkJCVpBQyBDaGFtcGZldWlsbGV0CisJCQkJQlAyNDcKKwkJCQlWT0lST04gIDM4NTA3CisJCQkJRlJBTkNFCisKKzAwLTEyLUYyICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCiswMDEyRjIgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItRjMgICAoaGV4KQkJY29ubmVjdEJsdWUgQUIKKzAwMTJGMyAgICAgKGJhc2UgMTYpCQljb25uZWN0Qmx1ZSBBQgorCQkJCU5vcnJhIFZhbGxnYXRhbiA2NAorCQkJCU1hbG1vZSAgU0UtMjExIDIyCisJCQkJU1dFREVOCisKKzAwLTEyLUY0ICAgKGhleCkJCUJlbGNvIEludGVybmF0aW9uYWwgQ28uLEx0ZC4KKzAwMTJGNCAgICAgKGJhc2UgMTYpCQlCZWxjbyBJbnRlcm5hdGlvbmFsIENvLixMdGQuCisJCQkJMjEyLCBZZW9rb2stRG9uZywgV29ubWktZ3UKKwkJCQlQdWNodW4tU2kgS3lvbmdraS1EbyA0MjAtMTAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLUY1ICAgKGhleCkJCUltYXJkYSBOZXcgWmVhbGFuZCBMaW1pdGVkCiswMDEyRjUgICAgIChiYXNlIDE2KQkJSW1hcmRhIE5ldyBaZWFsYW5kIExpbWl0ZWQKKwkJCQlTdWl0ZSBHMTYsIE5hdGlvbmFsIElubm92YXRpb24gQ2VudHJlLAorCQkJCUF1c3RyYWxpYW4gVGVjaG5vbG9neSBQYXJrLAorCQkJCUV2ZWxlaWdoIE5TVyAgIDIwMTUKKwkJCQlORVcgWkVBTEFORAorCiswMC0xMi1GNiAgIChoZXgpCQlNREsgQ08uLExURC4KKzAwMTJGNiAgICAgKGJhc2UgMTYpCQlNREsgQ08uLExURC4KKwkJCQkyLTYtMjcgSWJhcmFtZQorCQkJCUthc2hpd2F6YWtpIENpdHkgTmlpZ2F0YSA5NDUxMzQxCisJCQkJSkFQQU4KKworMDAtMTItRjcgICAoaGV4KQkJWGlhbWVuIFhpbmdsaWFuIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxMkY3ICAgICAoYmFzZSAxNikJCVhpYW1lbiBYaW5nbGlhbiBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQlYaW5nbGlhbiBFbGVjdHJvbmljcyAoWGluZ3RlbCkgQnVpbGRpbmcsQ2h1YW5neGluIFJvYWQsCisJCQkJVG9yY2ggSGktVGVjaCBJbmR1c3RyaWFsIERpc3RyaWN0LAorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA2CisJCQkJQ0hJTkEKKworMDAtMTItRjggICAoaGV4KQkJV05JIFJlc291cmNlcywgTExDCiswMDEyRjggICAgIChiYXNlIDE2KQkJV05JIFJlc291cmNlcywgTExDCisJCQkJMjE0NiBCZXJpbmcgRHJpdmUKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTMxLTIwMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUY5ICAgKGhleCkJCVVSWVUgU0VJU0FLVSwgTFRELgorMDAxMkY5ICAgICAoYmFzZSAxNikJCVVSWVUgU0VJU0FLVSwgTFRELgorCQkJCTEtMi0xMQorCQkJCUZVS0FFLU1JTkFNSQorCQkJCUhJR0FTSElOQVJJLUtVIE9TQUtBIDUzNy0wMDAyCisJCQkJSkFQQU4KKworMDAtMTItRkEgICAoaGV4KQkJVEhYIExURAorMDAxMkZBICAgICAoYmFzZSAxNikJCVRIWCBMVEQKKwkJCQk1MjAxIEdyZWF0IEFtZXJpY2EgUGFya3dheQorCQkJCVN1aXRlIDMyMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1GQiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCiswMDEyRkIgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCTQxNiwgTWFldGFuLTNEb25nLCBZZW9uZ3RvbmctR3UKKwkJCQlTdXdvbi1DaXR5IEd5ZW9uZ2dpLURvIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTItRkMgICAoaGV4KQkJUExBTkVUIFN5c3RlbSBDby4sTFRECiswMDEyRkMgICAgIChiYXNlIDE2KQkJUExBTkVUIFN5c3RlbSBDby4sTFRECisJCQkJNHRoIEZsb29yLCBEYWVoYW4gQi9ELCA4NzMtMjksCisJCQkJQmFuZ2JhZTQtRG9uZywgU2VvY2hvLUt1LAorCQkJCVNlb3VsICAxMzctMDY0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLUZEICAgKGhleCkJCU9QVElNVVMgSUMgUy5BLgorMDAxMkZEICAgICAoYmFzZSAxNikJCU9QVElNVVMgSUMgUy5BLgorCQkJCU5BV09KT1dTS0EgMTE4CisJCQkJTk9XWSBTQUNaIE1BTE9QT0xTS0EgMzMtMzAwCisJCQkJUE9MQU5ECisKKzAwLTEyLUZFICAgKGhleCkJCUxlbm92byBNb2JpbGUgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IEx0ZC4KKzAwMTJGRSAgICAgKGJhc2UgMTYpCQlMZW5vdm8gTW9iaWxlIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBMdGQuCisJCQkJWGlhbWVuIE92ZXJzZWFzIENoaW5lc2UgRWxlY3Ryb25pYyBTY2llbmNlIFBhcmssSHVvanUgSGlnaCBUZWNobm9sb2d5IERldmVsb3BtZW50IFpvbmUKKwkJCQlYSUEgTUVOIEZVIEpJQU4gMzYxMDA5CisJCQkJQ0hJTkEKKworMDAtMTItRkYgICAoaGV4KQkJTGVseSBJbmR1c3RyaWVzIE4uVi4KKzAwMTJGRiAgICAgKGJhc2UgMTYpCQlMZWx5IEluZHVzdHJpZXMgTi5WLgorCQkJCVdldmVyc2thZGUgMTEwCisJCQkJTWFhc3NsdWlzIFp1aWQtSG9sbGFuZCAzMTQ3UEEKKwkJCQlORVRIRVJMQU5EUworCiswMC0xMy0wMCAgIChoZXgpCQlJVC1GQUNUT1JZLCBJTkMuCiswMDEzMDAgICAgIChiYXNlIDE2KQkJSVQtRkFDVE9SWSwgSU5DLgorCQkJCTEtMTYtMjYgVEFLQUdJIE1JTkFNSS1LVQorCQkJCUZVS1VPS0EtU0hJIEZVS1VPS0EtS0VOIDgxNS0wMDA0CisJCQkJSkFQQU4KKworMDAtMTMtMDEgICAoaGV4KQkJSXJvbkdhdGUgUy5MLgorMDAxMzAxICAgICAoYmFzZSAxNikJCUlyb25HYXRlIFMuTC4KKwkJCQlDXEFsY2FsYSAyNjgsIHByaW1lcmEgcGxhbnRhCisJCQkJTWFkcmlkICAyODAyNworCQkJCVNQQUlOCisKKzAwLTEzLTAyICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxMzAyICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS10ZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTMtMDMgICAoaGV4KQkJR2F0ZUNvbm5lY3QgVGVjaG5vbG9naWVzIEdtYkgKKzAwMTMwMyAgICAgKGJhc2UgMTYpCQlHYXRlQ29ubmVjdCBUZWNobm9sb2dpZXMgR21iSAorCQkJCUFnYXN0cmFzc2UgMjQgUjIKKwkJCQkxMjQ4OSBCZXJsaW4gIDEyNDg5CisJCQkJR0VSTUFOWQorCiswMC0xMy0wNCAgIChoZXgpCQlGbGFpcmNvbW0gVGVjaG5vbG9naWVzIENvLiBMVEQKKzAwMTMwNCAgICAgKGJhc2UgMTYpCQlGbGFpcmNvbW0gVGVjaG5vbG9naWVzIENvLiBMVEQKKwkJCQkyMDg4IEh1YXNoYW4gUm9hZAorCQkJCVNvdXRoIEh1aXlpbiBCbGRnLiAjMjMwNgorCQkJCVNoYW5naGFpICAyMDAwMzAKKwkJCQlDSElOQQorCiswMC0xMy0wNSAgIChoZXgpCQlFcGljb20sIEluYy4KKzAwMTMwNSAgICAgKGJhc2UgMTYpCQlFcGljb20sIEluYy4KKwkJCQlQTyBCb3ggMTYxMzAKKwkJCQlPYWtsYW5kIENBIDk0NjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0wNiAgIChoZXgpCQlBbHdheXMgT24gV2lyZWxlc3MKKzAwMTMwNiAgICAgKGJhc2UgMTYpCQlBbHdheXMgT24gV2lyZWxlc3MKKwkJCQkzNzAxIEtpcmJ5IERyCisJCQkJU3VpdGUgMTA5MAorCQkJCUhvdXN0b24gVFggNzcwOTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTA3ICAgKGhleCkJCVBhcmF2aXJ0dWFsIENvcnBvcmF0aW9uCiswMDEzMDcgICAgIChiYXNlIDE2KQkJUGFyYXZpcnR1YWwgQ29ycG9yYXRpb24KKwkJCQkyOTUzIEJ1bmtlciBIaWxsIExhbmUKKwkJCQlTdWl0ZSA0MDYKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMDggICAoaGV4KQkJTnV2ZXJhIEZ1ZWwgQ2VsbHMKKzAwMTMwOCAgICAgKGJhc2UgMTYpCQlOdXZlcmEgRnVlbCBDZWxscworCQkJCTEyOSBDb25jb3JkIFJvYWQsICMxCisJCQkJQmlsbGVyaWNhIE1BIDAxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0wOSAgIChoZXgpCQlPY2VhbiBCcm9hZGJhbmQgTmV0d29ya3MKKzAwMTMwOSAgICAgKGJhc2UgMTYpCQlPY2VhbiBCcm9hZGJhbmQgTmV0d29ya3MKKwkJCQkyMDc4IFdhbHNoIEF2ZSwgU3VpdGUgQgorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTBBICAgKGhleCkJCU5vcnRlbAorMDAxMzBBICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTEzLTBCICAgKGhleCkJCU1leHRhbCBCLlYuCiswMDEzMEIgICAgIChiYXNlIDE2KQkJTWV4dGFsIEIuVi4KKwkJCQlEZSBUaWVuZGVuIDQ4CisJCQkJTnVlbmVuIE5vb3JkIEJyYWJhbnQgNTY3NFRCCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTMtMEMgICAoaGV4KQkJSEYgU3lzdGVtIENvcnBvcmF0aW9uCiswMDEzMEMgICAgIChiYXNlIDE2KQkJSEYgU3lzdGVtIENvcnBvcmF0aW9uCisJCQkJMTUyMC0xIEF5dWthaQorCQkJCVNoaXJhdGFrYS1NYWNoaQorCQkJCU5pc2hpb2tpdGFtYS1HdW4gWWFtYWdhdGEtS2VuIDk5Mi0wNzcxCisJCQkJSkFQQU4KKworMDAtMTMtMEQgICAoaGV4KQkJR0FMSUxFTyBBVklPTklDQQorMDAxMzBEICAgICAoYmFzZSAxNikJCUdBTElMRU8gQVZJT05JQ0EKKwkJCQlWSUFMRSBFVVJPUEEKKwkJCQkgTkVSVklBTk8gTUlMQU5PIDIwMDE0CisJCQkJSVRBTFkKKworMDAtMTMtMEUgICAoaGV4KQkJRm9jdXNyaXRlIEF1ZGlvIEVuZ2luZWVyaW5nIExpbWl0ZWQKKzAwMTMwRSAgICAgKGJhc2UgMTYpCQlGb2N1c3JpdGUgQXVkaW8gRW5naW5lZXJpbmcgTGltaXRlZAorCQkJCTE5IExpbmNvbG4gUm9hZAorCQkJCUNyZXNzZXggQnVzaW5lc3MgUGFyaworCQkJCUhpZ2ggV3ljb21iZSBCdWNrcyBIUDEyIDNGWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEzLTBGICAgKGhleCkJCUVHRU1FTiBCaWxnaXNheWFyIE11aCBTYW4gdmUgVGljIExURCBTVEkKKzAwMTMwRiAgICAgKGJhc2UgMTYpCQlFR0VNRU4gQmlsZ2lzYXlhciBNdWggU2FuIHZlIFRpYyBMVEQgU1RJCisJCQkJRmV2emkgQ2FrbWFrIDIgU29rIDMxL0EKKwkJCQlLSVpJTEFZCisJCQkJQU5LQVJBIENBTktBWUEgMDY0NDAKKwkJCQlUVVJLRVkKKworMDAtMTMtMTAgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCiswMDEzMTAgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeQorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMTEgICAoaGV4KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorMDAxMzExICAgICAoYmFzZSAxNikJCUFSUklTIEludGVybmF0aW9uYWwKKwkJCQkzODcxIExha2VmaWVsZCBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCVN1d2FuZWUgR0EgMzAwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTEyICAgKGhleCkJCUFtZWRpYSBOZXR3b3JrcyBJbmMuCiswMDEzMTIgICAgIChiYXNlIDE2KQkJQW1lZGlhIE5ldHdvcmtzIEluYy4KKwkJCQkxMDEgQ3Jhd2ZvcmRzIENvcm5lciBSZAorCQkJCUhvbG1kZWwgTkogMDc3MzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTEzICAgKGhleCkJCUd1YW5nWmhvdSBQb3N0ICYgVGVsZWNvbSBFcXVpcG1lbnQgbHRkCiswMDEzMTMgICAgIChiYXNlIDE2KQkJR3VhbmdaaG91IFBvc3QgJiBUZWxlY29tIEVxdWlwbWVudCBsdGQKKwkJCQkxMzkjIFpob25nc2hhbiBBdmUKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDYzMAorCQkJCUNISU5BCisKKzAwLTEzLTE0ICAgKGhleCkJCUFzaWFtYWpvciBJbmMuCiswMDEzMTQgICAgIChiYXNlIDE2KQkJQXNpYW1ham9yIEluYy4KKwkJCQk2Ri05LCBOby4gMjY4LCBMaWFuLUNoZW5nIFJkLiwgSnVuZ2hlIENpdHksCisJCQkJVGFpcGVpICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTE1ICAgKGhleCkJCVNPTlkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBpbmMsCiswMDEzMTUgICAgIChiYXNlIDE2KQkJU09OWSBDb21wdXRlciBFbnRlcnRhaW5tZW50IGluYywKKwkJCQkyLTYtMjEgTWluYW1pLUFveWFtYSwKKwkJCQlNaW5hdG8tS3UgVG9reW8gMTA3LTAwNjIKKwkJCQlKQVBBTgorCiswMC0xMy0xNiAgIChoZXgpCQlMLVMtQiBCcm9hZGNhc3QgVGVjaG5vbG9naWVzIEdtYkgKKzAwMTMxNiAgICAgKGJhc2UgMTYpCQlMLVMtQiBCcm9hZGNhc3QgVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlHdXN0YXYtU3RyZXNlbWFubi1TdHIuIDgKKwkJCQlCaW5nZW4gUmhlaW5sYW5kLVBmYWx6IDU1NDExCisJCQkJR0VSTUFOWQorCiswMC0xMy0xNyAgIChoZXgpCQlHTiBOZXRjb20gYXMKKzAwMTMxNyAgICAgKGJhc2UgMTYpCQlHTiBOZXRjb20gYXMKKwkJCQlNZXRhbGJ1ZW4gNjYKKwkJCQlQLk8uQm94IDIwMQorCQkJCUJhbGxlcnVwIFNrb3ZsdW5kZSBESy0yNzUwCisJCQkJREVOTUFSSworCiswMC0xMy0xOCAgIChoZXgpCQlER1NUQVRJT04gQ28uLCBMdGQuCiswMDEzMTggICAgIChiYXNlIDE2KQkJREdTVEFUSU9OIENvLiwgTHRkLgorCQkJCVJtLjQwMSwgQmxkZy5BLCBCdW5kYW5nIFRlY2hubyBQYXJrIDE1MCwgWWF0YXAtRG9uZywgQnVuZGFuZy1HdSwgU3VuZ25hbS1TaSwgR3l1bmdnaS1EbywgNDYzLTc2MCwgS29yZWEKKwkJCQlTdW5nbmFtIEd5dW5nZ2kgNDYzLTc2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy0xOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDEzMTkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0xQSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDEzMUEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0xQiAgIChoZXgpCQlCZUNlbGwgSW5ub3ZhdGlvbnMgQ29ycC4KKzAwMTMxQiAgICAgKGJhc2UgMTYpCQlCZUNlbGwgSW5ub3ZhdGlvbnMgQ29ycC4KKwkJCQkxMkYtOSwgTm8uIDc5LCBTaGluLVRhaSA1dGggUmQgU2VjIDEsCisJCQkJU2hpaC1jaGloLCBUYWlwZWkgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy0xQyAgIChoZXgpCQlMaXRlVG91Y2gsIEluYy4KKzAwMTMxQyAgICAgKGJhc2UgMTYpCQlMaXRlVG91Y2gsIEluYy4KKwkJCQkzNDAwIFNvdXRoIFdlc3QgVGVtcGxlCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTFEICAgKGhleCkJCVNjYW52YWVndCBJbnRlcm5hdGlvbmFsIEEvUworMDAxMzFEICAgICAoYmFzZSAxNikJCVNjYW52YWVndCBJbnRlcm5hdGlvbmFsIEEvUworCQkJCVAuTy5QZWRlcnNlbnMgdmVqIDE4CisJCQkJQWFyaHVzIEp5bGxhbmQgODIwMCBOCisJCQkJREVOTUFSSworCiswMC0xMy0xRSAgIChoZXgpCQlQZWlrZXIgYWN1c3RpYyBHbWJIICYgQ28uIEtHCiswMDEzMUUgICAgIChiYXNlIDE2KQkJUGVpa2VyIGFjdXN0aWMgR21iSCAmIENvLiBLRworCQkJCU1heC1QbGFuY2stU3RyYd9lIDMyCisJCQkJRnJpZWRyaWNoc2RvcmYgSGVzc2VuIDYxMzgxCisJCQkJR0VSTUFOWQorCiswMC0xMy0xRiAgIChoZXgpCQlOeHRQaGFzZSBUJkQsIENvcnAuCiswMDEzMUYgICAgIChiYXNlIDE2KQkJTnh0UGhhc2UgVCZELCBDb3JwLgorCQkJCTMwNDAgRS4gQnJvYWR3YXkKKwkJCQlWYW5jb3V2ZXIgQkMgVjVNIDFaNAorCQkJCUNBTkFEQQorCiswMC0xMy0yMCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMTMyMCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktdGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTEzLTIxICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxMzIxICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0yMiAgIChoZXgpCQlEQVEgRWxlY3Ryb25pY3MsIEluYy4KKzAwMTMyMiAgICAgKGJhc2UgMTYpCQlEQVEgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQkyNjJCIE9sZCBOZXcgQnJ1bnN3aWNrIFJvYWQKKwkJCQlQaXNjYXRhd2F5IE5KIDA4ODU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0yMyAgIChoZXgpCQlDYXAgQ28uLCBMdGQuCiswMDEzMjMgICAgIChiYXNlIDE2KQkJQ2FwIENvLiwgTHRkLgorCQkJCTExRiw2ODQtMixkZXVuZ2Nob24gMy1kb25nLGdhbmdzZW8tZ3UKKwkJCQlTZW91bCAgMTU3LTc1NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy0yNCAgIChoZXgpCQlTY2huZWlkZXIgRWxlY3RyaWMgVWx0cmEgVGVybWluYWwKKzAwMTMyNCAgICAgKGJhc2UgMTYpCQlTY2huZWlkZXIgRWxlY3RyaWMgVWx0cmEgVGVybWluYWwKKwkJCQlJbmR1c3RyaXBhcmtlbiAzMgorCQkJCUNvcGVuaGFnZW4gIDI3NTAKKwkJCQlERU5NQVJLCisKKzAwLTEzLTI1ICAgKGhleCkJCUNvcnRpbmEgU3lzdGVtcyBJbmMKKzAwMTMyNSAgICAgKGJhc2UgMTYpCQlDb3J0aW5hIFN5c3RlbXMgSW5jCisJCQkJODQwIFcgQ2FsaWZvcm5pYSBBdmUsIFN1aXRlIDEwMAorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMjYgICAoaGV4KQkJRUNNIFN5c3RlbXMgTHRkCiswMDEzMjYgICAgIChiYXNlIDE2KQkJRUNNIFN5c3RlbXMgTHRkCisJCQkJRWxsaWZvb3QgUGFyaworCQkJCUJ1cnN0d2ljaworCQkJCUhVTEwgRWFzdCBZb3Jrc2hpcmUgSFUxMiA5RFoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMy0yNyAgIChoZXgpCQlEYXRhIEFjcXVpc2l0aW9ucyBsaW1pdGVkCiswMDEzMjcgICAgIChiYXNlIDE2KQkJRGF0YSBBY3F1aXNpdGlvbnMgbGltaXRlZAorCQkJCTg0IEdhc3NvbiBzdHJlZXQKKwkJCQlDaHJpc3RjaHVyY2ggIAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTEzLTI4ICAgKGhleCkJCVdlc3RlY2ggS29yZWEgSW5jLiwKKzAwMTMyOCAgICAgKGJhc2UgMTYpCQlXZXN0ZWNoIEtvcmVhIEluYy4sCisJCQkJNTQ4LTksIEdhandhMy1Eb25nLFNlby1rdSwKKwkJCQlJbmNoZW9uICA0MDQtODE3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLTI5ICAgKGhleCkJCVZTU1QgQ28uLCBMVEQKKzAwMTMyOSAgICAgKGJhc2UgMTYpCQlWU1NUIENvLiwgTFRECisJCQkJc3VpdCAzMjAyLCBLb3JlYSBXb3JsZCBUcmFkZSBDZW50ZXIgMTU5LTEKKwkJCQlTYW1zdW5nLURvbmcsIEthbmduYW0tR3UKKwkJCQlTZW91bCAgMTM1LTcyOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy0yQSAgIChoZXgpCQlTaXRyb25pY3MgVGVsZWNvbSBTb2x1dGlvbnMKKzAwMTMyQSAgICAgKGJhc2UgMTYpCQlTaXRyb25pY3MgVGVsZWNvbSBTb2x1dGlvbnMKKwkJCQlNaWNoZWxza2EgNjAKKwkJCQlQcmFndWUgUHJhZ3VlIDQgLSBNaWNobGUgMTQwIDAwCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMTMtMkIgICAoaGV4KQkJUGhvZW5peCBEaWdpdGFsCiswMDEzMkIgICAgIChiYXNlIDE2KQkJUGhvZW5peCBEaWdpdGFsCisJCQkJNzY1MCBFYXN0IEV2YW5zIFJkLiBCbGRnLiBBCisJCQkJU2NvdHRzZGFsZSBBeiA4NTI2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMkMgICAoaGV4KQkJTUFaIEJyYW5kZW5idXJnIEdtYkgKKzAwMTMyQyAgICAgKGJhc2UgMTYpCQlNQVogQnJhbmRlbmJ1cmcgR21iSAorCQkJCU1pZWxlc3RyYd9lIDIKKwkJCQlXZXJkZXIgQnJhbmRlbmJ1cmcgMTQ1NDIKKwkJCQlHRVJNQU5ZCisKKzAwLTEzLTJEICAgKGhleCkJCWlXaXNlIENvbW11bmljYXRpb25zCiswMDEzMkQgICAgIChiYXNlIDE2KQkJaVdpc2UgQ29tbXVuaWNhdGlvbnMKKwkJCQlVbml0IDNDLCBBcmRlbiBHcm92ZQorCQkJCVJhY2Vjb3Vyc2UgUmQsTW9udGFndSBHYXJkZW5zCisJCQkJQ2FwZSBUb3duICA3NDQxCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTEzLTJFICAgKGhleCkJCUlUaWFuIENvcG9yYXRpb24KKzAwMTMyRSAgICAgKGJhc2UgMTYpCQlJVGlhbiBDb3BvcmF0aW9uCisJCQkJNEYgWW91bmdobyBCZC4xNjA1LTEgU2VvY2hvLWRvbmcKKwkJCQlTZW9jaG8tZ3UKKwkJCQlTZW91bCAgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy0yRiAgIChoZXgpCQlJbnRlcmFjdGVrCiswMDEzMkYgICAgIChiYXNlIDE2KQkJSW50ZXJhY3RlaworCQkJCVNpZ21hbCAyIEJMREcgI0MtMzE5LCAxOCBLdW1pLWRvbmcKKwkJCQlQdW5kYW5nLWt1CisJCQkJU2VvbmduYW0gS3l1bmctZ2kgNDYzLTc0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy0zMCAgIChoZXgpCQlFVVJPIFBST1RFQ1RJT04gU1VSVkVJTExBTkNFCiswMDEzMzAgICAgIChiYXNlIDE2KQkJRVVSTyBQUk9URUNUSU9OIFNVUlZFSUxMQU5DRQorCQkJCTMwIFJ1ZSBkdSBEb3VicworCQkJCVNUUkFTQk9VUkcgIDY3MTAwCisJCQkJRlJBTkNFCisKKzAwLTEzLTMxICAgKGhleCkJCUNlbGxQb2ludCBDb25uZWN0CiswMDEzMzEgICAgIChiYXNlIDE2KQkJQ2VsbFBvaW50IENvbm5lY3QKKwkJCQlCaWxsZWR2ZWogNAorCQkJCUNvcGVuaGFnZW4gIDIxMDAKKwkJCQlERU5NQVJLCisKKzAwLTEzLTMyICAgKGhleCkJCUJlaWppbmcgVG9wc2VjIE5ldHdvcmsgU2VjdXJpdHkgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTMzMiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFRvcHNlYyBOZXR3b3JrIFNlY3VyaXR5IFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJSHVha29uZyBUb3dlcgorCQkJCU5vLiAxIFNoYW5nZGkgRWFzdCBSb2FkCisJCQkJSGFpZGlhbiBEaXN0cmljdCBCZWlqaW5nIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTEzLTMzICAgKGhleCkJCUJhdWRUZWMgQ29ycG9yYXRpb24KKzAwMTMzMyAgICAgKGJhc2UgMTYpCQlCYXVkVGVjIENvcnBvcmF0aW9uCisJCQkJMTJGLCBOTy4xODEsIFNlYy4gIDEuIFRhdHVuZyBSZC4sCisJCQkJSHNpY2hpaCBUYWlwZWkgSHNpZW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy0zNCAgIChoZXgpCQlBcmthZG9zLCBJbmMuCiswMDEzMzQgICAgIChiYXNlIDE2KQkJQXJrYWRvcywgSW5jLgorCQkJCTk0OCBVUyBIV1kgMjIKKwkJCQlOb3J0aCBQbGFpbmZpZWxkIE5KIDA3MDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0zNSAgIChoZXgpCQlWUyBJbmR1c3RyeSBCZXJoYWQKKzAwMTMzNSAgICAgKGJhc2UgMTYpCQlWUyBJbmR1c3RyeSBCZXJoYWQKKwkJCQlQbG8gNDcsIFNlbmFpIEluZC4gRXN0LiBJSSwKKwkJCQlTZW5haSBKb2hvciA4MTQwMAorCQkJCU1BTEFZU0lBCisKKzAwLTEzLTM2ICAgKGhleCkJCVRpYW5qaW4gNzEyIENvbW11bmljYXRpb24gQnJvYWRjYXN0aW5nIGNvLiwgbHRkLgorMDAxMzM2ICAgICAoYmFzZSAxNikJCVRpYW5qaW4gNzEyIENvbW11bmljYXRpb24gQnJvYWRjYXN0aW5nIGNvLiwgbHRkLgorCQkJCU5vLjE4NSwgWGluZGEgUm9hZCwgSGViZWkgRGlzdHJpY3QKKwkJCQlUaWFuamluICAzMDAxNDAKKwkJCQlDSElOQQorCiswMC0xMy0zNyAgIChoZXgpCQlPcmllbnQgUG93ZXIgSG9tZSBOZXR3b3JrIEx0ZC4KKzAwMTMzNyAgICAgKGJhc2UgMTYpCQlPcmllbnQgUG93ZXIgSG9tZSBOZXR3b3JrIEx0ZC4KKwkJCQkzMDcgSGFyYm91ciBDZW50cmUsIFRvd2VyIDEsCisJCQkJMSBIb2sgQ2hldW5nIFN0cmVldCwgSHVuZyBIb20KKwkJCQlIT05HIEtPTkcKKworMDAtMTMtMzggICAoaGV4KQkJRlJFU0VOSVVTLVZJQUwKKzAwMTMzOCAgICAgKGJhc2UgMTYpCQlGUkVTRU5JVVMtVklBTAorCQkJCUxlIEdyYW5kIENoZW1pbgorCQkJCUJSRVpJTlMgIDM4NTkwCisJCQkJRlJBTkNFCisKKzAwLTEzLTM5ICAgKGhleCkJCUVMLU1FIEFHCiswMDEzMzkgICAgIChiYXNlIDE2KQkJRUwtTUUgQUcKKwkJCQlHZXdlcmJlcmluZyAxCisJCQkJQXUgaS4gZC4gSGFsbGVydGF1IEJheWVybiA4NDA3MgorCQkJCUdFUk1BTlkKKworMDAtMTMtM0EgICAoaGV4KQkJVmFkYVRlY2ggSW5jLgorMDAxMzNBICAgICAoYmFzZSAxNikJCVZhZGFUZWNoIEluYy4KKwkJCQkxMTU0MCBTLiBFYXN0ZXJuIEF2ZW51ZQorCQkJCUhlbmRlcnNvbiBOZXZhZGEgODkwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTNCICAgKGhleCkJCVNwZWVkIERyYWdvbiBNdWx0aW1lZGlhIExpbWl0ZWQKKzAwMTMzQiAgICAgKGJhc2UgMTYpCQlTcGVlZCBEcmFnb24gTXVsdGltZWRpYSBMaW1pdGVkCisJCQkJUm9vbSAxMzEyLCBWYW50YSBJbmR1c3RyaWFsIENlbnRyZSwKKwkJCQkzMyBUYWkgTGluIFBhaSBSb2FkLAorCQkJCUt3YWkgQ2h1bmcgTi5ULiAKKwkJCQlIT05HIEtPTkcKKworMDAtMTMtM0MgICAoaGV4KQkJUVVJTlRST04gU1lTVEVNUyBJTkMuCiswMDEzM0MgICAgIChiYXNlIDE2KQkJUVVJTlRST04gU1lTVEVNUyBJTkMuCisJCQkJMjEwNSBTTy4gQkxPU1NFUiBST0FECisJCQkJU0FOVEEgTUFSSUEgQ0FMSUZPUk5JQSA5MzQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtM0QgICAoaGV4KQkJTWljcm8gTWVtb3J5IEN1cnRpc3MgV3JpZ2h0IENvCiswMDEzM0QgICAgIChiYXNlIDE2KQkJTWljcm8gTWVtb3J5IEN1cnRpc3MgV3JpZ2h0IENvCisJCQkJOTU0MCBWYXNzYXIgQXZlbnVlCisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtM0UgICAoaGV4KQkJTWV0YVN3aXRjaAorMDAxMzNFICAgICAoYmFzZSAxNikJCU1ldGFTd2l0Y2gKKwkJCQkxNDExIEhhcmJvciBCYXkgUGFya3dheQorCQkJCVN1aXRlIDEwMDMKKwkJCQlBbGFtZWRhIENBIDk0NTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0zRiAgIChoZXgpCQlFcHBlbmRvcmYgSW5zdHJ1bWVudGUgR21iSAorMDAxMzNGICAgICAoYmFzZSAxNikJCUVwcGVuZG9yZiBJbnN0cnVtZW50ZSBHbWJICisJCQkJQmFya2hhdXNlbndlZyAxCisJCQkJQWJ0bC4gSUgtRkUKKwkJCQlIYW1idXJnIERFIDIyMzM5CisJCQkJR0VSTUFOWQorCiswMC0xMy00MCAgIChoZXgpCQlBRC5FTCBzLnIubC4KKzAwMTM0MCAgICAgKGJhc2UgMTYpCQlBRC5FTCBzLnIubC4KKwkJCQl2aWEgUy4gUGVydGluaSw1CisJCQkJTWFydGVsbGFnbyBWRU5FWklBIDMwMDMwCisJCQkJSVRBTFkKKworMDAtMTMtNDEgICAoaGV4KQkJU2hhbmRvbmcgTmV3IEJlaXlhbmcgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkCiswMDEzNDEgICAgIChiYXNlIDE2KQkJU2hhbmRvbmcgTmV3IEJlaXlhbmcgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJTk8uMTEgWGlud2VpIFJvYWQKKwkJCQlXZWloYWkgY2l0eSBTaGFuZG9uZyAyNjQyMDAKKwkJCQlDSElOQQorCiswMC0xMy00MiAgIChoZXgpCQlWaXNpb24gUmVzZWFyY2gsIEluYy4KKzAwMTM0MiAgICAgKGJhc2UgMTYpCQlWaXNpb24gUmVzZWFyY2gsIEluYy4KKwkJCQkxMDAgRGV5IFJvYWQKKwkJCQlXYXluZSBOSiAwNzQ3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNDMgICAoaGV4KQkJTWF0c3VzaGl0YSBFbGVjdHJvbmljIENvbXBvbmVudHMgKEV1cm9wZSkgR21iSAorMDAxMzQzICAgICAoYmFzZSAxNikJCU1hdHN1c2hpdGEgRWxlY3Ryb25pYyBDb21wb25lbnRzIChFdXJvcGUpIEdtYkgKKwkJCQlaZXBwZWxpbnN0cmHfZSAxOQorCQkJCUx1ZW5lYnVyZyBOaWVkZXJzYWNoc2VuIDIxMzM3CisJCQkJR0VSTUFOWQorCiswMC0xMy00NCAgIChoZXgpCQlGYXJnbyBFbGVjdHJvbmljcyBJbmMuCiswMDEzNDQgICAgIChiYXNlIDE2KQkJRmFyZ28gRWxlY3Ryb25pY3MgSW5jLgorCQkJCTY1MzMgRmx5aW5nIENsb3VkIERyaXZlCisJCQkJRWRlbiBQcmFpcmllIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy00NSAgIChoZXgpCQlFYXRvbiBDb3Jwb3JhdGlvbgorMDAxMzQ1ICAgICAoYmFzZSAxNikJCUVhdG9uIENvcnBvcmF0aW9uCisJCQkJNDIwMSBOb3J0aCAyN3RoIFN0cmVldAorCQkJCU1pbHdhdWtlZSBXaXNjb25zaW4gNTMyMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTQ2ICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxMzQ2ICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCTJGLCBOby4yMzMtMiwgUGFvLUNoaWFvIFJvYWQKKwkJCQlIc2luLVRpZW4sIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTQ3ICAgKGhleCkJCUJsdWVUcmVlIFdpcmVsZXNzIERhdGEgSW5jLgorMDAxMzQ3ICAgICAoYmFzZSAxNikJCUJsdWVUcmVlIFdpcmVsZXNzIERhdGEgSW5jLgorCQkJCTI0MjUgNDZlIEF2ZW51ZQorCQkJCUxhY2hpbmUgUXVlYmVjIEg4VCAzQzkKKwkJCQlDQU5BREEKKworMDAtMTMtNDggICAoaGV4KQkJQXJ0aWxhIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxMzQ4ICAgICAoYmFzZSAxNikJCUFydGlsYSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkyRi4sIE5vLjEsIEFsbGV5IDgsIFNpd2VpIExhbmUsIFpob25nemhlbmcgUmQuLAorCQkJCVhpbmRpYW4gQ2l0eSBUYWlwZWkgQ291bnR5IDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtNDkgICAoaGV4KQkJWnlYRUwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzAwMTM0OSAgICAgKGJhc2UgMTYpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorCQkJCU5vLiA2LCBJbm5vdmF0aW9uIFJvYWQgSUkgU2NpZW5jZSBQYXJrCisJCQkJSHNpbi1DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtNEEgICAoaGV4KQkJRW5naW0sIEluYy4KKzAwMTM0QSAgICAgKGJhc2UgMTYpCQlFbmdpbSwgSW5jLgorCQkJCTQwIE5hZ29nIFBhcmsKKwkJCQlBY3RvbiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNEIgICAoaGV4KQkJVG9Hb2xkZW5OZXQgVGVjaG5vbG9neSBJbmMuCiswMDEzNEIgICAgIChiYXNlIDE2KQkJVG9Hb2xkZW5OZXQgVGVjaG5vbG9neSBJbmMuCisJCQkJNUYtMSBOby4yNSxQdS1kaW5nLiwKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy00QyAgIChoZXgpCQlZRFQgVGVjaG5vbG9neSBJbnRlcm5hdGlvbmFsCiswMDEzNEMgICAgIChiYXNlIDE2KQkJWURUIFRlY2hub2xvZ3kgSW50ZXJuYXRpb25hbAorCQkJCTJGLiwgTm8uMjE4LCBSdWVpZ3VhbmcgUmQuLAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpLCAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy00RCAgIChoZXgpCQlJUEMgc3lzdGVtcworMDAxMzREICAgICAoYmFzZSAxNikJCUlQQyBzeXN0ZW1zCisJCQkJbm9vcmRlaW5kZSA3MgorCQkJCWxlaW11aWRlbiBub29yZGhvbGxhbmQgMjQ1MSBBSAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTEzLTRFICAgKGhleCkJCVZhbG94IFN5c3RlbXMsIEluYy4KKzAwMTM0RSAgICAgKGJhc2UgMTYpCQlWYWxveCBTeXN0ZW1zLCBJbmMuCisJCQkJIzcwNCwgQWNlIFR3aW4gdG93ZXIgMiwgMjEyLTMwLCBHdXJvLTNkb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi03NzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtNEYgICAoaGV4KQkJVHJhbnplbyBXaXJlbGVzcyBUZWNobm9sb2dpZXMgSW5jLgorMDAxMzRGICAgICAoYmFzZSAxNikJCVRyYW56ZW8gV2lyZWxlc3MgVGVjaG5vbG9naWVzIEluYy4KKwkJCQkyMDE1NSBTdGV3YXJ0IENyZXMuCisJCQkJTWFwbGUgUmlkZ2UgQnJpdGlzaCBDb2x1bWJpYSBWMlggMFQ2CisJCQkJQ0FOQURBCisKKzAwLTEzLTUwICAgKGhleCkJCVNpbHZlciBTcHJpbmcgTmV0d29ya3MsIEluYworMDAxMzUwICAgICAoYmFzZSAxNikJCVNpbHZlciBTcHJpbmcgTmV0d29ya3MsIEluYworCQkJCTU3NSBCcm9hZHdheSBTdHJlZXQKKwkJCQlSZWR3b29kIENpdHkgQ0EgOTQwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTUxICAgKGhleCkJCU5pbGVzIEF1ZGlvIENvcnBvcmF0aW9uCiswMDEzNTEgICAgIChiYXNlIDE2KQkJTmlsZXMgQXVkaW8gQ29ycG9yYXRpb24KKwkJCQkxMjMzMSBTVyAxMzB0aCBTdHJlZXQKKwkJCQlNaWFtaSBGTCAzMzE4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNTIgICAoaGV4KQkJTmF6dGVjLCBJbmMuCiswMDEzNTIgICAgIChiYXNlIDE2KQkJTmF6dGVjLCBJbmMuCisJCQkJODIwIFBhcmsgVHdvIERyLgorCQkJCVN1Z2FyIExhbmQgVFggNzc0NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTUzICAgKGhleCkJCUhZREFDIEZpbHRlcnRlY2huaWsgR01CSAorMDAxMzUzICAgICAoYmFzZSAxNikJCUhZREFDIEZpbHRlcnRlY2huaWsgR01CSAorCQkJCUluZHVzdHJpZWdlYmlldAorCQkJCVN1bHpiYWNoL1NhYXIgU2FhcmxhbmQgNjYyODAKKwkJCQlHRVJNQU5ZCisKKzAwLTEzLTU0ICAgKGhleCkJCVpjb21heCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTM1NCAgICAgKGJhc2UgMTYpCQlaY29tYXggVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJOTggRm9yZCBSb2FkCisJCQkJU3VpdGUgMy1GCisJCQkJRGVudmlsbGUgTkogMDc4MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTU1ICAgKGhleCkJCVRPTUVOIEN5YmVyLWJ1c2luZXNzIFNvbHV0aW9ucywgSW5jLgorMDAxMzU1ICAgICAoYmFzZSAxNikJCVRPTUVOIEN5YmVyLWJ1c2luZXNzIFNvbHV0aW9ucywgSW5jLgorCQkJCTItMTEtMTkgS29obmFuCisJCQkJTWluYXRva3Uta3UKKwkJCQlUT0tZTyAgMTA4LTAwNzUKKwkJCQlKQVBBTgorCiswMC0xMy01NiAgIChoZXgpCQlGTElSIFJhZGlhdGlvbiBHbWJICiswMDEzNTYgICAgIChiYXNlIDE2KQkJRkxJUiBSYWRpYXRpb24gR21iSAorCQkJCVBpZXBlcnNiZXJnIDEyLAorCQkJCVNvbGluZ2VuIE5SVyA0MjY1MworCQkJCUdFUk1BTlkKKworMDAtMTMtNTcgICAoaGV4KQkJU295YWwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTM1NyAgICAgKGJhc2UgMTYpCQlTb3lhbCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTEwRiwgTm8uIDI3LCBMYW5lIDE2OSwgS2FuZ25pbmcgU3QuLCBTaGlqciBDaXR5LAorCQkJCTJGLCBOby4gMjcsIExhbmUgMTY5LCBLYW5nbmluZyBTdC4sIFNoaWpyIENpdHksCisJCQkJVGFpcGVpICAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTU4ICAgKGhleCkJCVJlYWxtIFN5c3RlbXMsIEluYy4KKzAwMTM1OCAgICAgKGJhc2UgMTYpCQlSZWFsbSBTeXN0ZW1zLCBJbmMuCisJCQkJOTM1MCBTb3V0aCA1MzUgRWFzdAorCQkJCTl0aCBGbG9vcgorCQkJCVNhbmR5IFV0YWggODQwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTU5ICAgKGhleCkJCVByb1RlbGV2aXNpb24gVGVjaG5vbG9naWVzIEEvUworMDAxMzU5ICAgICAoYmFzZSAxNikJCVByb1RlbGV2aXNpb24gVGVjaG5vbG9naWVzIEEvUworCQkJCU1hcmllbHVuZHZlaiAxNiwyCisJCQkJSGVybGV2IENvcGVuaGFnZW4gMjczMAorCQkJCURFTk1BUksKKworMDAtMTMtNUEgICAoaGV4KQkJUHJvamVjdCBUJkUgTGltaXRlZAorMDAxMzVBICAgICAoYmFzZSAxNikJCVByb2plY3QgVCZFIExpbWl0ZWQKKwkJCQlSb29tIDNDLCAyL0YuIFdhaCBTaGluZyBDZW50ZXIsCisJCQkJMTEgU2hpbmcgWWlwIFN0cmVldCwKKwkJCQlLd3VuIFRvbmcsIEtvd2xvb24sIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xMy01QiAgIChoZXgpCQlQYW5lbExpbmsgQ2luZW1hLCBMTEMKKzAwMTM1QiAgICAgKGJhc2UgMTYpCQlQYW5lbExpbmsgQ2luZW1hLCBMTEMKKwkJCQkxMDcwIEUgQXJxdWVzIEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNUMgICAoaGV4KQkJT25TaXRlIFN5c3RlbXMsIEluYy4KKzAwMTM1QyAgICAgKGJhc2UgMTYpCQlPblNpdGUgU3lzdGVtcywgSW5jLgorCQkJCTM5MDAgRnJlZWRvbSBDaXJjbGUKKwkJCQlTdWl0ZSAxMDIKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NC0xMjIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy01RCAgIChoZXgpCQlOVFRQQyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAxMzVEICAgICAoYmFzZSAxNikJCU5UVFBDIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMy0yNSBLYW5kYSBKaW5iby1jaG8KKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMS0wMDUxCisJCQkJSkFQQU4KKworMDAtMTMtNUUgICAoaGV4KQkJRUFCL1JXSS9LCiswMDEzNUUgICAgIChiYXNlIDE2KQkJRUFCL1JXSS9LCisJCQkJRuRy9mdhdGFuIDYKKwkJCQlTdG9ja2hvbG0gS2lzdGEgMTY0IDgwCisJCQkJU1dFREVOCisKKzAwLTEzLTVGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTM1RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTYwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTM2MCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTYxICAgKGhleCkJCUJpb3NwYWNlIENvLiwgTHRkLgorMDAxMzYxICAgICAoYmFzZSAxNikJCUJpb3NwYWNlIENvLiwgTHRkLgorCQkJCTEwdGggRmxvb3IsIFBvb25nbGltIEJsZGcsIDgyMyBZZW9rc2FtIDEtZG9uZworCQkJCUdhbmduYW0tZ3UgU2VvdWwgMTM1LTc4NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy02MiAgIChoZXgpCQlTaGluSGV1bmcgUHJlY2lzaW9uIENvLiwgTHRkLgorMDAxMzYyICAgICAoYmFzZSAxNikJCVNoaW5IZXVuZyBQcmVjaXNpb24gQ28uLCBMdGQuCisJCQkJRGFlSGEgQmxkZy4gNDAxCisJCQkJMTAxLTcgU2hpbmdpbERvbmcKKwkJCQlZb3VuZ0R1bmdQb0d1IFNlb3VsIDE1MC0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtNjMgICAoaGV4KQkJVmVyYXNjYXBlLCBJbmMuCiswMDEzNjMgICAgIChiYXNlIDE2KQkJVmVyYXNjYXBlLCBJbmMuCisJCQkJMTEwMSAzMXN0IFN0LiwgU3VpdGUgIzE5MAorCQkJCURvd25lcnMgR3JvdmUgSUwgNjA1MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTY0ICAgKGhleCkJCVBhcmFkaWdtIFRlY2hub2xvZ3kgSW5jLi4KKzAwMTM2NCAgICAgKGJhc2UgMTYpCQlQYXJhZGlnbSBUZWNobm9sb2d5IEluYy4uCisJCQkJM0YsIE5vLiAyODUsIFNlYy4yLCBUaS1EaW5nIEJsdmQgTmVpLUh1LAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy02NSAgIChoZXgpCQlOb3J0ZWwKKzAwMTM2NSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xMy02NiAgIChoZXgpCQlOZXR1cml0eSBUZWNobm9sb2dpZXMgSW5jLgorMDAxMzY2ICAgICAoYmFzZSAxNikJCU5ldHVyaXR5IFRlY2hub2xvZ2llcyBJbmMuCisJCQkJODMwIFN0ZXdhcnQgRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTY3ICAgKGhleCkJCU5hcmF5b24uIENvLiwgTHRkLgorMDAxMzY3ICAgICAoYmFzZSAxNikJCU5hcmF5b24uIENvLiwgTHRkLgorCQkJCSM1MDIgSHlvY2hhbmcgVC9XIDE4MS0zCisJCQkJSmFtc2lsLWRvbmcsIFNvbmdwYS1ndQorCQkJCVNlb3VsICAxMzgtMjIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLTY4ICAgKGhleCkJCU1hZXJzayBEYXRhIERlZmVuY2UKKzAwMTM2OCAgICAgKGJhc2UgMTYpCQlNYWVyc2sgRGF0YSBEZWZlbmNlCisJCQkJRWxsZWdhYXJkdmVqIDI1CisJCQkJU29lbmRlcmJvcmcgREsgNjQwMAorCQkJCURFTk1BUksKKworMDAtMTMtNjkgICAoaGV4KQkJSG9uZGEgRWxlY3Ryb24gQ28uLCBMRUQuCiswMDEzNjkgICAgIChiYXNlIDE2KQkJSG9uZGEgRWxlY3Ryb24gQ28uLCBMRUQuCisJCQkJS2FuZW1hdHN1IEJ1aWxkaW5nIDMgRmxvb3IKKwkJCQkyLTE0LTEsIEt5b2Jhc2hpICAKKwkJCQlDaHVvLWt1IFRva3lvIDEwNC0wMDMxCisJCQkJSkFQQU4KKworMDAtMTMtNkEgICAoaGV4KQkJSGFjaCBMYW5nZSBTQQorMDAxMzZBICAgICAoYmFzZSAxNikJCUhhY2ggTGFuZ2UgU0EKKwkJCQk2LCByb3V0ZSBkZSBDb21wb2lzCisJCQkJQ1AgMjEyCisJCQkJVkVTRU5BWiBHRU5FVkEgMTIyMgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTEzLTZCICAgKGhleCkJCUUtVEVDCiswMDEzNkIgICAgIChiYXNlIDE2KQkJRS1URUMKKwkJCQkyLTE3LTE0LTUwMyBIYWthdGFla2ltYWUKKwkJCQlIYWthdGFrdSBGdWt1b2thc2hpCisJCQkJRnVrdW9rYSBGdWt1b2tha2VuIDgxMi0wMDExCisJCQkJSkFQQU4KKworMDAtMTMtNkMgICAoaGV4KQkJVG9tVG9tCiswMDEzNkMgICAgIChiYXNlIDE2KQkJVG9tVG9tCisJCQkJT29zdGVyZG9rc3N0cmFhdCAxMTQKKwkJCQkxMDExIERLIEFtc3RlcmRhbSAKKwkJCQlORVRIRVJMQU5EUworCiswMC0xMy02RCAgIChoZXgpCQlUZW50YWN1bHVzIEFCCiswMDEzNkQgICAgIChiYXNlIDE2KQkJVGVudGFjdWx1cyBBQgorCQkJCVN0dWRpZWdhbmdlbiAzCisJCQkJT3N0ZXJzdW5kIEphbXRsYW5kIFNFIC0gODMxIDQwCisJCQkJU1dFREVOCisKKzAwLTEzLTZFICAgKGhleCkJCVRlY2htZXRybyBDb3JwLgorMDAxMzZFICAgICAoYmFzZSAxNikJCVRlY2htZXRybyBDb3JwLgorCQkJCTRGLiBEb25nYW0gQi9ELiwgMjY0LTUsIFlhbmdKYWUtRG9uZworCQkJCVNlb2Noby1LdQorCQkJCVNlb3VsICAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLTZGICAgKGhleCkJCVBhY2tldE1vdGlvbiwgSW5jLgorMDAxMzZGICAgICAoYmFzZSAxNikJCVBhY2tldE1vdGlvbiwgSW5jLgorCQkJCTIxMjEgRWwgQ2FtaW5vIFJlYWwKKwkJCQkxMHRoIEZsb29yCisJCQkJU2FuIE1hdGVvIENBIDk0NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy03MCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxMzcwICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xMy03MSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxMzcxICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNzIgICAoaGV4KQkJRGVsbCBJbmMuCiswMDEzNzIgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNzMgICAoaGV4KQkJQkx3YXZlIEVsZWN0cm9uaWNzIENvLiwgTHRkCiswMDEzNzMgICAgIChiYXNlIDE2KQkJQkx3YXZlIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJMjNGR0gsIEJsb2NrIEEsWmhlblllIEJ1aWxkaW5nICwgQmFvQW4gTmFuIFJvYWQgLCBMdW9IdSAsIFNoZW56aGVuICwgQ2hpbmEKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworMDAtMTMtNzQgICAoaGV4KQkJQXRoZXJvcyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAxMzc0ICAgICAoYmFzZSAxNikJCUF0aGVyb3MgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk1NDgwIEdyZWF0IEFtZXJpY2EgUGFya3dheQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy03NSAgIChoZXgpCQlBbWVyaWNhbiBTZWN1cml0eSBQcm9kdWN0cyBDby4KKzAwMTM3NSAgICAgKGJhc2UgMTYpCQlBbWVyaWNhbiBTZWN1cml0eSBQcm9kdWN0cyBDby4KKwkJCQkxMTkyNSBQYWNpZmljIGF2ZS4KKwkJCQlGb250YW5hIENBIDkyMzM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy03NiAgIChoZXgpCQlUYWJvciBFbGVjdHJvbmljcyBMdGQuCiswMDEzNzYgICAgIChiYXNlIDE2KQkJVGFib3IgRWxlY3Ryb25pY3MgTHRkLgorCQkJCTkgSGF0YXRzaWEgU3QuCisJCQkJVGVsIEhhbmFuICAyMDMwMgorCQkJCUlTUkFFTAorCiswMC0xMy03NyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENPLiwgTFRECiswMDEzNzcgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDTy4sIExURAorCQkJCTQxNiwgTWFldGFuIDNEb25nLCBZZW9uZ3RvbmctR3UKKwkJCQlTdXdvbiBDaXR5LCBHZXlvbmdnaSBEbywgS29yZWEKKwkJCQlTdXdvbiBHZXlvbmdnaSA0NDM3NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtNzggICAoaGV4KQkJUVNBTiBUZWNobm9sb2d5LCBJbmMuCiswMDEzNzggICAgIChiYXNlIDE2KQkJUVNBTiBUZWNobm9sb2d5LCBJbmMuCisJCQkJMkYuLCBOby4zMSwgTGFuZSA1ODMsIFJ1ZWlHdWFuZyBSZC4sIE5laWh1IERpc3QuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTc5ICAgKGhleCkJCVBPTkRFUiBJTkZPUk1BVElPTiBJTkRVU1RSSUVTIExURC4KKzAwMTM3OSAgICAgKGJhc2UgMTYpCQlQT05ERVIgSU5GT1JNQVRJT04gSU5EVVNUUklFUyBMVEQuCisJCQkJMTRGLE5vLjc3LGxhbmU3MDAsIENodW5nLUNoZW5nIFJvYWQKKwkJCQlIc2luLVRpZW4gQ2l0eSBUYWlwZWkgSHNpZW4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy03QSAgIChoZXgpCQlOZXR2b3ggVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTM3QSAgICAgKGJhc2UgMTYpCQlOZXR2b3ggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4yMS0xIFNlYy4gMSBDaHVuZyBIdWEgV2VzdCBSb2FkCisJCQkJVGFpbmFuICA3MDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTdCICAgKGhleCkJCU1vdm9uIENvcnBvcmF0aW9uCiswMDEzN0IgICAgIChiYXNlIDE2KQkJTW92b24gQ29ycG9yYXRpb24KKwkJCQk1dGgsIEh5dW5qdWsgQi9ECisJCQkJMTQwLTI4LCBTYW1zdW5nLWRvbmcsIEthbmduYW0ta3UKKwkJCQlTZW91bCAgMTM1LTA5MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy03QyAgIChoZXgpCQlLYWljb20gY28uLCBMdGQuCiswMDEzN0MgICAgIChiYXNlIDE2KQkJS2FpY29tIGNvLiwgTHRkLgorCQkJCSMxMDksIEdheWFuZyBUZWNobm8gVG93biAxNDg3LCBHYXlhbmctZG9uZyxLYW5nc28tZ3UKKwkJCQlTZW91bCAgMTU3LTgxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy03RCAgIChoZXgpCQlEeW5hbGFiLCBJbmMuCiswMDEzN0QgICAgIChiYXNlIDE2KQkJRHluYWxhYiwgSW5jLgorCQkJCTU1NSBMYW5jYXN0ZXIgQXZlLgorCQkJCVJleW5vbGRzYnVyZyBPSCA0MzA2OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtN0UgICAoaGV4KQkJQ29yRWRnZSBOZXR3b3JrcywgSW5jLgorMDAxMzdFICAgICAoYmFzZSAxNikJCUNvckVkZ2UgTmV0d29ya3MsIEluYy4KKwkJCQk3NjAwIEJvb25lIEF2ZSBOCisJCQkJU3VpdGUgMQorCQkJCUJyb29rbHluIFBhcmsgTU4gNTU0MjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTdGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTM3RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTgwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTM4MCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTgxICAgKGhleCkJCUNISVBTICYgU3lzdGVtcywgSW5jLgorMDAxMzgxICAgICAoYmFzZSAxNikJCUNISVBTICYgU3lzdGVtcywgSW5jLgorCQkJCTQ3NTAgUGF0cmljayBIZW5yeSBEcml2ZQorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTgyICAgKGhleCkJCUNldGFjZWEgTmV0d29ya3MgQ29ycG9yYXRpb24KKzAwMTM4MiAgICAgKGJhc2UgMTYpCQlDZXRhY2VhIE5ldHdvcmtzIENvcnBvcmF0aW9uCisJCQkJMzcwOCBXZXN0IDM2dGggQXZlbnVlCisJCQkJVmFuY291dmVyIEJyaXRpc2ggQ29sdW1iaWEgVjZOIDJTNAorCQkJCUNBTkFEQQorCiswMC0xMy04MyAgIChoZXgpCQlBcHBsaWNhdGlvbiBUZWNobm9sb2dpZXMgYW5kIEVuZ2luZWVyaW5nIFJlc2VhcmNoIExhYm9yYXRvcnkKKzAwMTM4MyAgICAgKGJhc2UgMTYpCQlBcHBsaWNhdGlvbiBUZWNobm9sb2dpZXMgYW5kIEVuZ2luZWVyaW5nIFJlc2VhcmNoIExhYm9yYXRvcnkKKwkJCQlTaGluanVrdSAxLWNob21lIEJsZGcuCisJCQkJMS0xMC00LCBTaGluanVrdQorCQkJCVNoaW5qdWt1LWt1IFRva3lvIDE2MC0wMDIyCisJCQkJSkFQQU4KKworMDAtMTMtODQgICAoaGV4KQkJQWR2YW5jZWQgTW90aW9uIENvbnRyb2xzCiswMDEzODQgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgTW90aW9uIENvbnRyb2xzCisJCQkJMzgwNSBDYWxsZSBUZWNhdGUKKwkJCQlDYW1hcmlsbG8gQ2FsaWZvcm5pYSA5MzAxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtODUgICAoaGV4KQkJQWRkLU9uIFRlY2hub2xvZ3kgQ28uLCBMVEQuCiswMDEzODUgICAgIChiYXNlIDE2KQkJQWRkLU9uIFRlY2hub2xvZ3kgQ28uLCBMVEQuCisJCQkJMUYsIE5vLjExLCBMYW5lIDIwNiwgRGEtQW4gUm9hZCBTZWMuIDEsCisJCQkJVGFpcGVpICAxMDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTg2ICAgKGhleCkJCUFCQiBJbmMuL1RvdGFsZmxvdworMDAxMzg2ICAgICAoYmFzZSAxNikJCUFCQiBJbmMuL1RvdGFsZmxvdworCQkJCTcwNTEgSW5kdXN0cmlhbCBCbHZkLgorCQkJCUJhcnRsZXN2aWxsZSBPSyA3NDAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtODcgICAoaGV4KQkJMjdNIFRlY2hub2xvZ2llcyBBQgorMDAxMzg3ICAgICAoYmFzZSAxNikJCTI3TSBUZWNobm9sb2dpZXMgQUIKKwkJCQlEaXNrZXR0Z2F0YW4gMTEKKwkJCQlMaW5r9nBpbmcgIFMtNTgzIDM1CisJCQkJU1dFREVOCisKKzAwLTEzLTg4ICAgKGhleCkJCVdpTWVkaWEgQWxsaWFuY2UKKzAwMTM4OCAgICAgKGJhc2UgMTYpCQlXaU1lZGlhIEFsbGlhbmNlCisJCQkJMjQwMCBDYW1pbm8gUmFtb24KKwkJCQlTdWl0ZSAzNzUKKwkJCQlTYW4gUmFtb24gQ0EgOTQ1ODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTg5ICAgKGhleCkJCVJlZGVzIGRlIFRlbGVmb27tYSBN83ZpbCBTLkEuCiswMDEzODkgICAgIChiYXNlIDE2KQkJUmVkZXMgZGUgVGVsZWZvbu1hIE3zdmlsIFMuQS4KKwkJCQlDL1B1ZXJ0byBkZSBsYSBNb3JjdWVyYSAxNCBCNAorCQkJCUxlZ2Fu6XMgTWFkcmlkIDI4OTE4CisJCQkJU1BBSU4KKworMDAtMTMtOEEgICAoaGV4KQkJUUlOR0RBTyBHT0VSVEVLIEVMRUNUUk9OSUNTIENPLixMVEQuCiswMDEzOEEgICAgIChiYXNlIDE2KQkJUUlOR0RBTyBHT0VSVEVLIEVMRUNUUk9OSUNTIENPLixMVEQuCisJCQkJUm9vbSA2MDUsSW5ub3ZhdGlvbiBCdWlsZGluZyxIaS10ZWNoIEluZHVzdHJpYWwgUGFyaywKKwkJCQlRSU5HREFPIFNIQU5ET05HIDI2NjA2MQorCQkJCUNISU5BCisKKzAwLTEzLThCICAgKGhleCkJCVBoYW50b20gVGVjaG5vbG9naWVzIExMQworMDAxMzhCICAgICAoYmFzZSAxNikJCVBoYW50b20gVGVjaG5vbG9naWVzIExMQworCQkJCTc4MjUgRmF5IEF2ZW51ZSwgU3VpdGUgMjAwCisJCQkJTGEgSm9sbGEgQ0EgOTIwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLThDICAgKGhleCkJCUt1bXlvdW5nLkNvLkx0ZAorMDAxMzhDICAgICAoYmFzZSAxNikJCUt1bXlvdW5nLkNvLkx0ZAorCQkJCVNlb3VsIEtZIGJ1aWxkaW5nLCA0MC0xNyBIYW5nYW5nIFJvLCAzR2EsIFlvdW5nc2FuLUd1CisJCQkJU2VvdWwgIDE0MC04ODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtOEQgICAoaGV4KQkJS2luZ2hvbGQKKzAwMTM4RCAgICAgKGJhc2UgMTYpCQlLaW5naG9sZAorCQkJCTExRiwgTm8uIDk2NSwgSnVuZ2plbmcgUmQuCisJCQkJSnVuZ2hlIFRhaXBlaSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLThFICAgKGhleCkJCUZPQUIgRWxla3Ryb25payBBQgorMDAxMzhFICAgICAoYmFzZSAxNikJCUZPQUIgRWxla3Ryb25payBBQgorCQkJCVNhbmt0IEpvcmdlbnMgVmFnIDgKKwkJCQlHb3RoZW5idXJnICA0MjIgNDkKKwkJCQlTV0VERU4KKworMDAtMTMtOEYgICAoaGV4KQkJQXNpYXJvY2sgSW5jb3Jwb3JhdGlvbgorMDAxMzhGICAgICAoYmFzZSAxNikJCUFzaWFyb2NrIEluY29ycG9yYXRpb24KKwkJCQlQLk8uIEJveDk1NywgT2Zmc2hvcmUgSW5jb3Jwb3JhdGlvbnMgQ2VudHJlCisJCQkJUm9hZCBUb3duIFRvcnRvbGEgCisJCQkJVklSR0lOIElTTEFORFMsIEJSSVRJU0gKKworMDAtMTMtOTAgICAoaGV4KQkJVGVybXRlayBDb21wdXRlciBDby4sIEx0ZAorMDAxMzkwICAgICAoYmFzZSAxNikJCVRlcm10ZWsgQ29tcHV0ZXIgQ28uLCBMdGQKKwkJCQkyRiwgTm8uIDEwMCwgTGkgRGUgU3QuLAorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtOTEgICAoaGV4KQkJT1VFTiBDTy4sTFRELgorMDAxMzkxICAgICAoYmFzZSAxNikJCU9VRU4gQ08uLExURC4KKwkJCQlHb3RhbmRhIE5UIEJsZGcuN0YsCisJCQkJNS0yIEhpZ2FzaGkgR290YW5kYSA0LWNob21lCisJCQkJU2hpbmFnYXdhLWt1IFRva3lvIDE0MS0wMDIyCisJCQkJSkFQQU4KKworMDAtMTMtOTIgICAoaGV4KQkJUnVja3VzIFdpcmVsZXNzCiswMDEzOTIgICAgIChiYXNlIDE2KQkJUnVja3VzIFdpcmVsZXNzCisJCQkJODgwIFdlc3QgTWF1ZGUgQXZlbnVlCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy05MyAgIChoZXgpCQlQYW50YSBTeXN0ZW1zLCBJbmMuCiswMDEzOTMgICAgIChiYXNlIDE2KQkJUGFudGEgU3lzdGVtcywgSW5jLgorCQkJCTIwNDUwIFN0ZXZlbnMgQ3JlZWsgQmx2ZC4KKwkJCQlTdWl0ZSA0MDAKKwkJCQlDdXBlcnRpbm8gQ2FsaWZvcm5pYSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtOTQgICAoaGV4KQkJSW5mb2hhbmQgQ28uLEx0ZAorMDAxMzk0ICAgICAoYmFzZSAxNikJCUluZm9oYW5kIENvLixMdGQKKwkJCQlLcmFuei1UZWNobm8gIzEyMDcsIDU0NDItMSwgU2FuZ2RhZXdvbi1kb25nLCBKdW5nd29uLWd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8gNDYyLTgxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy05NSAgIChoZXgpCQljb25nYXRlYyBBRworMDAxMzk1ICAgICAoYmFzZSAxNikJCWNvbmdhdGVjIEFHCisJCQkJQXV3aWVzZW5zdHJhc3NlIDUKKwkJCQlEZWdnZW5kb3JmICA5NDQ2OQorCQkJCUdFUk1BTlkKKworMDAtMTMtOTYgICAoaGV4KQkJQWNiZWwgUG9seXRlY2ggSW5jLgorMDAxMzk2ICAgICAoYmFzZSAxNikJCUFjYmVsIFBvbHl0ZWNoIEluYy4KKwkJCQlOby4xNTksU2VjLjMsIFRhbS1LaW5nIFJkLiwKKwkJCQlUYW1zdWkgVGFpcGVpIDI1MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtOTcgICAoaGV4KQkJWHNpZ28gU3lzdGVtcywgSW5jLgorMDAxMzk3ICAgICAoYmFzZSAxNikJCVhzaWdvIFN5c3RlbXMsIEluYy4KKwkJCQk5NDAgU3Rld2FydCBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtOTggICAoaGV4KQkJVHJhZmZpY1NpbSBDby4sTHRkCiswMDEzOTggICAgIChiYXNlIDE2KQkJVHJhZmZpY1NpbSBDby4sTHRkCisJCQkJMjMtOSBNaXRhLWJpcnUgMkYsIENoaXlvZGEgMy1jaG9tZQorCQkJCU5ha2Eta3UsIE5hZ295YQorCQkJCUFpY2hpIE5vbiA0NjAtMDAxMgorCQkJCUpBUEFOCisKKzAwLTEzLTk5ICAgKGhleCkJCVNUQUMgQ29ycG9yYXRpb24uCiswMDEzOTkgICAgIChiYXNlIDE2KQkJU1RBQyBDb3Jwb3JhdGlvbi4KKwkJCQkyLTE2LTM3LGZ1amltaQorCQkJCXNheWFtYS1zaGkgc2FpdGFtYSAzNTAtMTMwNgorCQkJCUpBUEFOCisKKzAwLTEzLTlBICAgKGhleCkJCUstdWJpcXVlIElEIENvcnAuCiswMDEzOUEgICAgIChiYXNlIDE2KQkJSy11YmlxdWUgSUQgQ29ycC4KKwkJCQlZYW1hc2FuIEJsZGcuOEYsCisJCQkJTmlob25iYXNoaSBIb25jaG8yLTYtMTMKKwkJCQlDaHVvLWt1IFRva3lvIDEwMy0wMDIzCisJCQkJSkFQQU4KKworMDAtMTMtOUIgICAoaGV4KQkJaW9JTUFHRSBMdGQuCiswMDEzOUIgICAgIChiYXNlIDE2KQkJaW9JTUFHRSBMdGQuCisJCQkJMyBNYXNraXQgU3RyZWV0CisJCQkJSGVyemxpeWEgUGl0dWFjaCBJTCA0NjczMworCQkJCUlTUkFFTAorCiswMC0xMy05QyAgIChoZXgpCQlFeGF2ZXJhIFRlY2hub2xvZ2llcywgSW5jLgorMDAxMzlDICAgICAoYmFzZSAxNikJCUV4YXZlcmEgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTk1IE5ldyBIYW1wc2hpcmUgQXZlbnVlCisJCQkJU3VpdGUgMTU1CisJCQkJUG9ydHNtb3V0aCBOSCAwMzgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtOUQgICAoaGV4KQkJTWFydmVsbCBIaXNwYW5hIFMuTC4gCiswMDEzOUQgICAgIChiYXNlIDE2KQkJTWFydmVsbCBIaXNwYW5hIFMuTC4gCisJCQkJQy8gQ2hhcmxlcyBSb2JlcnQgRGFyd2luLCAyCisJCQkJUGFyYyBUZWNub2xvZ2ljIFBhdGVybmEgNDY5ODAKKwkJCQlTUEFJTgorCiswMC0xMy05RSAgIChoZXgpCQlDaWFyYSBUZWNobm9sb2dpZXMgSW5jLgorMDAxMzlFICAgICAoYmFzZSAxNikJCUNpYXJhIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJOTMwMCBUcmFucyBDYW5hZGEgSGlnaHdheQorCQkJCVNhaW50LUxhdXJlbnQgUXVlYmVjIEg0UyAxSzUKKwkJCQlDQU5BREEKKworMDAtMTMtOUYgICAoaGV4KQkJRWxlY3Ryb25pY3MgRGVzaWduIFNlcnZpY2VzLCBDby4sIEx0ZC4KKzAwMTM5RiAgICAgKGJhc2UgMTYpCQlFbGVjdHJvbmljcyBEZXNpZ24gU2VydmljZXMsIENvLiwgTHRkLgorCQkJCTUtMTAtMjAgVG9rdW1hcnUKKwkJCQlJdGFiYXNoaS1rdSBUb2t5byAxNzUtMDA4MworCQkJCUpBUEFOCisKKzAwLTEzLUEwICAgKGhleCkJCUFMR09TWVNURU0gQ28uLCBMdGQuCiswMDEzQTAgICAgIChiYXNlIDE2KQkJQUxHT1NZU1RFTSBDby4sIEx0ZC4KKwkJCQk2NTYga29iaXJhbyBtaWhhcmEtY2hvCisJCQkJc2FrYWkgb3Nha2EgNTg3LTAwMjEKKwkJCQlKQVBBTgorCiswMC0xMy1BMSAgIChoZXgpCQlDcm93IEVsZWN0cm9uaWMgRW5nZW5lZXJpbmcKKzAwMTNBMSAgICAgKGJhc2UgMTYpCQlDcm93IEVsZWN0cm9uaWMgRW5nZW5lZXJpbmcKKwkJCQkxMiBLaW5uZXJldCBzdC4KKwkJCQlBaXJwb3J0IENpdHkgIAorCQkJCUlTUkFFTAorCiswMC0xMy1BMiAgIChoZXgpCQlNYXhTdHJlYW0sIEluYworMDAxM0EyICAgICAoYmFzZSAxNikJCU1heFN0cmVhbSwgSW5jCisJCQkJMzU1IFNvdXRoIDUyMCBXZXN0IFN1aXRlIDE4MAorCQkJCUxpbmRvbiBVdCA4NDA0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQTMgICAoaGV4KQkJU2llbWVucyBDb20gQ1BFIERldmljZXMKKzAwMTNBMyAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIENvbSBDUEUgRGV2aWNlcworCQkJCTQ4NDkgQWxwaGEgUm9hZAorCQkJCURhbGxhcyBUZXhhcyA3NTI0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQTQgICAoaGV4KQkJS2V5RXllIENvbW11bmljYXRpb25zCiswMDEzQTQgICAgIChiYXNlIDE2KQkJS2V5RXllIENvbW11bmljYXRpb25zCisJCQkJOTc4NSBHb2V0aGUKKwkJCQlTYWNyYW1lbnRvIENBIDk1ODI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1BNSAgIChoZXgpCQlHZW5lcmFsIFNvbHV0aW9ucywgTFRELgorMDAxM0E1ICAgICAoYmFzZSAxNikJCUdlbmVyYWwgU29sdXRpb25zLCBMVEQuCisJCQkJNTkwMiBTb3ZlcmVpZ24gRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1BNiAgIChoZXgpCQlFeHRyaWNvbSBMdGQKKzAwMTNBNiAgICAgKGJhc2UgMTYpCQlFeHRyaWNvbSBMdGQKKwkJCQlHbGlsIFlhbQorCQkJCUhlcnpsaWEgIDQ2OTA1CisJCQkJSVNSQUVMCisKKzAwLTEzLUE3ICAgKGhleCkJCUJBVFRFTExFIE1FTU9SSUFMIElOU1RJVFVURQorMDAxM0E3ICAgICAoYmFzZSAxNikJCUJBVFRFTExFIE1FTU9SSUFMIElOU1RJVFVURQorCQkJCTUwNSBLSU5HIEFWRQorCQkJCUNPTFVNQlVTIE9ISU8gNDMyMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUE4ICAgKGhleCkJCVRhbmlzeXMgVGVjaG5vbG9neQorMDAxM0E4ICAgICAoYmFzZSAxNikJCVRhbmlzeXMgVGVjaG5vbG9neQorCQkJCTEyMjAxIFRlY2hub2xvZ3kgQmx2ZC4KKwkJCQlTdWl0ZSAxMjUKKwkJCQlBdXN0aW4gVFggNzg3MjctNjYwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQTkgICAoaGV4KQkJU29ueSBDb3Jwb3JhdGlvbgorMDAxM0E5ICAgICAoYmFzZSAxNikJCVNvbnkgQ29ycG9yYXRpb24KKwkJCQlHb3RlbnlhbWEgVGVjIDUtMS0yCisJCQkJS2l0YXNoaW5hZ2F3YSwKKwkJCQlTaGluYWdhd2Eta3UgVG9reW8gMTQxLTAwMDEKKwkJCQlKQVBBTgorCiswMC0xMy1BQSAgIChoZXgpCQlBTFMgICYgVEVDIEx0ZC4KKzAwMTNBQSAgICAgKGJhc2UgMTYpCQlBTFMgICYgVEVDIEx0ZC4KKwkJCQk2IEIuIEthemFjaHlhIHN0ci4KKwkJCQlTYXJhdG92IFNhcmF0b3YgcmVnaW9uIDQxMDYwMAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xMy1BQiAgIChoZXgpCQlUZWxlbW90aXZlIEFHCiswMDEzQUIgICAgIChiYXNlIDE2KQkJVGVsZW1vdGl2ZSBBRworCQkJCUJyZWl0d2llc2VuCisJCQkJTXVlaGxoYXVzZW4gQmFkZW4gV3VlcnR0ZW1iZXJnIDczMzQ3CisJCQkJR0VSTUFOWQorCiswMC0xMy1BQyAgIChoZXgpCQlTdW5teXVuZyBFbGVjdHJvbmljcyBDby4sIExURAorMDAxM0FDICAgICAoYmFzZSAxNikJCVN1bm15dW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECisJCQkJTEFSR08tUExBWkEgOEYsIEphbmdoYW5nLURvbmcKKwkJCQk4NTctMSwgSWxzYW4tS3UKKwkJCQlLb3lhbmcgS3l1bmdraSA0MTEtODM3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLUFEICAgKGhleCkJCVNlbmRvIEx0ZAorMDAxM0FEICAgICAoYmFzZSAxNikJCVNlbmRvIEx0ZAorCQkJCUhhdGNoZm9yZCBCcm9vaworCQkJCUhhdGNoZm9yZCBXYXkKKwkJCQlCaXJtaW5naGFtIFdlc3QgTWlkbGFuZHMgQjI2IDNSWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEzLUFFICAgKGhleCkJCVJhZGlhbmNlIFRlY2hub2xvZ2llcywgSW5jLgorMDAxM0FFICAgICAoYmFzZSAxNikJCVJhZGlhbmNlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTM1MCBXeW5uIERyLgorCQkJCUh1bnRzdmlsbGUgQWxhYmFtYSAzNTgwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQUYgICAoaGV4KQkJTlVNQSBUZWNobm9sb2d5LEluYy4KKzAwMTNBRiAgICAgKGJhc2UgMTYpCQlOVU1BIFRlY2hub2xvZ3ksSW5jLgorCQkJCTRGLE5vNzc4LFNlYyA0LFBhdGNoIFJkLgorCQkJCVRhaXBlaSAgMTE1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy1CMCAgIChoZXgpCQlKYWJsb3Ryb24KKzAwMTNCMCAgICAgKGJhc2UgMTYpCQlKYWJsb3Ryb24KKwkJCQlQb2QgU2thbGtvdSAzMworCQkJCUphYmxvbmVjIG5hZCBOaXNvdSAgNDY2MDEKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0xMy1CMSAgIChoZXgpCQlJbnRlbGxpZ2VudCBDb250cm9sIFN5c3RlbXMgKEFzaWEpIFB0ZSBMdGQKKzAwMTNCMSAgICAgKGJhc2UgMTYpCQlJbnRlbGxpZ2VudCBDb250cm9sIFN5c3RlbXMgKEFzaWEpIFB0ZSBMdGQKKwkJCQk3MCBVYmkgQ3Jlc2NlbnQgIzAxLTEyCisJCQkJVWJpIFRlY2ggUGFyaworCQkJCTQwODU3MAorCQkJCVNJTkdBUE9SRQorCiswMC0xMy1CMiAgIChoZXgpCQlDYXJhbGxvbiBMaW1pdGVkCiswMDEzQjIgICAgIChiYXNlIDE2KQkJQ2FyYWxsb24gTGltaXRlZAorCQkJCVN0dWRpbyBHMjAgU2hlcGhlcmRzIEJ1aWxkaW5nCisJCQkJUm9ja2xleSBSb2FkCisJCQkJTG9uZG9uIFcxNCAwREEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMy1CMyAgIChoZXgpCQlFY29tIENvbW11bmljYXRpb25zIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDEzQjMgICAgIChiYXNlIDE2KQkJRWNvbSBDb21tdW5pY2F0aW9ucyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCUZsb29yIDcsIE1hY2hpbmVyeSBJbmR1c3RyeSBCdWlsZGluZywgTm8uMjIsCisJCQkJQmFpd2Fuemh1YW5nIFN0cmVldCwgWGljaGVuZyBEaXN0cmljdAorCQkJCUJlaWppbmcgIAorCQkJCUNISU5BCisKKzAwLTEzLUI0ICAgKGhleCkJCUFwcGVhciBUVgorMDAxM0I0ICAgICAoYmFzZSAxNikJCUFwcGVhciBUVgorCQkJCUxpbGxlYWtlcnZlaWVuIDZkCisJCQkJUC5PLiBCb3ggOCBMaWxsZWFrZXIKKwkJCQlOTy0wMjE2IE9zbG8gCisJCQkJTk9SV0FZCisKKzAwLTEzLUI1ICAgKGhleCkJCVdhdmVzYXQKKzAwMTNCNSAgICAgKGJhc2UgMTYpCQlXYXZlc2F0CisJCQkJMTM3NSwgVHJhbnMtQ2FuYWRhIEhpZ2h3YXkKKwkJCQlTdWl0ZSAzMDAKKwkJCQlEb3J2YWwgUXVlYmVjIEg5UCAyVzgKKwkJCQlDQU5BREEKKworMDAtMTMtQjYgICAoaGV4KQkJU2xpbmcgTWVkaWEsIEluYy4KKzAwMTNCNiAgICAgKGJhc2UgMTYpCQlTbGluZyBNZWRpYSwgSW5jLgorCQkJCTE4NDAgR2F0ZXdheSBDZW50ZXIKKwkJCQkybmQgRmxvb3IKKwkJCQlTYW4gTWF0ZW8gQ0EgOTQ0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUI3ICAgKGhleCkJCVNjYW50ZWNoIElECiswMDEzQjcgICAgIChiYXNlIDE2KQkJU2NhbnRlY2ggSUQKKwkJCQlBbWVyc2Zvb3J0c2VzdHJhYXQgMTI0CisJCQkJU29lc3RlcmJlcmcgVXRyZWNodCAzNzY5IEFOCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTMtQjggICAoaGV4KQkJUnlDbyBFbGVjdHJvbmljIFN5c3RlbXMgTGltaXRlZAorMDAxM0I4ICAgICAoYmFzZSAxNikJCVJ5Q28gRWxlY3Ryb25pYyBTeXN0ZW1zIExpbWl0ZWQKKwkJCQlVbml0IEUsIENhcnRlbCBCdXNpbmVzcyBFc3RhdGUKKwkJCQlFZGluYnVyZ2ggV2F5CisJCQkJSGFybG93IEVzc2V4IENNMjAgMlRUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTMtQjkgICAoaGV4KQkJQk0gU1BBCiswMDEzQjkgICAgIChiYXNlIDE2KQkJQk0gU1BBCisJCQkJVklBIE1JTEFOTyA1NC81NgorCQkJCVJvenphbm8gIDIwMDg5CisJCQkJSVRBTFkKKworMDAtMTMtQkEgICAoaGV4KQkJUmVhZHlMaW5rcyBJbmMKKzAwMTNCQSAgICAgKGJhc2UgMTYpCQlSZWFkeUxpbmtzIEluYworCQkJCTY1OTUgRWRlbnZhbGUgQm91bGV2YXJkCisJCQkJU3VpdGUgMTgwCisJCQkJRWRlbiBQcmFpcmllIE1OIDU1MzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1CQiAgIChoZXgpCQlTbWFydHZ1ZSBDb3Jwb3JhdGlvbgorMDAxM0JCICAgICAoYmFzZSAxNikJCVNtYXJ0dnVlIENvcnBvcmF0aW9uCisJCQkJMTAyIFdvb2Rtb250IEJvdWxldmFyZAorCQkJCVN1aXRlIDIwMAorCQkJCU5hc2h2aWxsZSBUTiAzNzIwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQkMgICAoaGV4KQkJQXJ0aW1pIEx0ZAorMDAxM0JDICAgICAoYmFzZSAxNikJCUFydGltaSBMdGQKKwkJCQlCZXRqZW1hbiBIb3VzZQorCQkJCTEwNCBIaWxscyBSb2FkCisJCQkJQ2FtYnJpZGdlIENhbWJyaWRnZXNoaXJlIENCMiAxTFEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMy1CRCAgIChoZXgpCQlIWU1BVE9NIFNBCiswMDEzQkQgICAgIChiYXNlIDE2KQkJSFlNQVRPTSBTQQorCQkJCVpvbmUgSW5kdXN0cmllbGxlCisJCQkJMTc1IHJ1ZSBkZSBNYXNzYWNhbgorCQkJCVZFTkRBUkdVRVMgSEVSQVVMVCAzNDc0MAorCQkJCUZSQU5DRQorCiswMC0xMy1CRSAgIChoZXgpCQlWaXJ0dWFsIENvbmV4aW9ucworMDAxM0JFICAgICAoYmFzZSAxNikJCVZpcnR1YWwgQ29uZXhpb25zCisJCQkJNDEwIHJ1ZSBTdC1OaWNvbGFzLCBzdWl0ZSA2MDAKKwkJCQlNb250culhbCBRdeliZWMgSDJZIDJQNQorCQkJCUNBTkFEQQorCiswMC0xMy1CRiAgIChoZXgpCQlNZWRpYSBTeXN0ZW0gUGxhbm5pbmcgQ29ycC4KKzAwMTNCRiAgICAgKGJhc2UgMTYpCQlNZWRpYSBTeXN0ZW0gUGxhbm5pbmcgQ29ycC4KKwkJCQk0RiBWZWxjby1LdXJvbW9uIEJsZGcuCisJCQkJMy0xNC01IFVlbm8sCisJCQkJVGFpdG8ta3UsIFRva3lvIDExMC0wMDA1CisJCQkJSkFQQU4KKworMDAtMTMtQzAgICAoaGV4KQkJVHJpeCBUZWNub2xvZ2lhIEx0ZGEuCiswMDEzQzAgICAgIChiYXNlIDE2KQkJVHJpeCBUZWNub2xvZ2lhIEx0ZGEuCisJCQkJUnVhIGRhIFBheiwgMTk1NyAtIENo4WNhcmEgU2FudG8gQW509G5pbworCQkJCVPjbyBQYXVsbyAgMDQ3MTMtMDAyCisJCQkJQlJBWklMCisKKzAwLTEzLUMxICAgKGhleCkJCUFzb2thIFVTQSBDb3Jwb3JhdGlvbgorMDAxM0MxICAgICAoYmFzZSAxNikJCUFzb2thIFVTQSBDb3Jwb3JhdGlvbgorCQkJCTU1OCBQaWxncmltIERyaXZlCisJCQkJVW5pdCBICisJCQkJRm9zdGVyIENpdHkgQ0EgOTQ0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUMyICAgKGhleCkJCVdBQ09NIENvLixMdGQKKzAwMTNDMiAgICAgKGJhc2UgMTYpCQlXQUNPTSBDby4sTHRkCisJCQkJMi01MTAtMSBUb3lvbm9kYWkgT3RvbmUtbWFjaGkKKwkJCQlLaXRhc2FpdGFtYS1ndW4gU2FpdGFtYSAzNDktMTE0OAorCQkJCUpBUEFOCisKKzAwLTEzLUMzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTNDMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUM0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTNDNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUM1ICAgKGhleCkJCUxJR0hUUk9OIEZJQkVSLU9QVElDIERFVklDRVMgSU5DLgorMDAxM0M1ICAgICAoYmFzZSAxNikJCUxJR0hUUk9OIEZJQkVSLU9QVElDIERFVklDRVMgSU5DLgorCQkJCTUxLTEgTW9vbnB5dW5nLURvbmcsIFRhZWR1Y2stR3UKKwkJCQlUYWVqb24gMzA2LTIyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy1DNiAgIChoZXgpCQlPcGVuR2VhciwgSW5jCiswMDEzQzYgICAgIChiYXNlIDE2KQkJT3BlbkdlYXIsIEluYworCQkJCTc5ODQgU291dGggV2VsYnkgUGFyayAjMTAxCisJCQkJU2FsdCBMYWtlIENpdHkgVVRBSCA4NDA4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQzcgICAoaGV4KQkJSU9OT1MgQ28uLEx0ZC4KKzAwMTNDNyAgICAgKGJhc2UgMTYpCQlJT05PUyBDby4sTHRkLgorCQkJCTEtMzYtMTggTWl5YXNha2EKKwkJCQlTZXRhZ2F5YS1rdSBUb2t5byAxNTYtMDA1MQorCQkJCUpBUEFOCisKKzAwLTEzLUM4ICAgKGhleCkJCVBJUkVMTEkgQlJPQURCQU5EIFNPTFVUSU9OUyBTLlAuQS4KKzAwMTNDOCAgICAgKGJhc2UgMTYpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMgUy5QLkEuCisJCQkJVklBTEUgU0FSQ0EgMjIyCisJCQkJTUlMQU5PICAyMDEyNgorCQkJCUlUQUxZCisKKzAwLTEzLUM5ICAgKGhleCkJCUJleW9uZCBBY2hpZXZlIEVudGVycHJpc2VzIEx0ZC4KKzAwMTNDOSAgICAgKGJhc2UgMTYpCQlCZXlvbmQgQWNoaWV2ZSBFbnRlcnByaXNlcyBMdGQuCisJCQkJCisJCQkJUC5PLiBCb3ggOTU3LCBPZmZzaG9yZSBJbmNvcnBvcmF0aW9ucyBDZW50cmUKKwkJCQlSb2FkIFRvd24gVG9ydG9sYSAKKwkJCQlWSVJHSU4gSVNMQU5EUywgQlJJVElTSAorCiswMC0xMy1DQSAgIChoZXgpCQlQaWNvIERpZ2l0YWwKKzAwMTNDQSAgICAgKGJhc2UgMTYpCQlQaWNvIERpZ2l0YWwKKwkJCQk2MjYwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1DQiAgIChoZXgpCQlaZW5pdGVsIE5vcndheSBBUworMDAxM0NCICAgICAoYmFzZSAxNikJCVplbml0ZWwgTm9yd2F5IEFTCisJCQkJU2FuZGFrZXIgdiAyNCBjCisJCQkJUE8gQm94IDQ0OTgKKwkJCQlPc2xvIDA0MDMKKwkJCQlOT1JXQVkKKworMDAtMTMtQ0MgICAoaGV4KQkJVGFsbCBNYXBsZSBTeXN0ZW1zCiswMDEzQ0MgICAgIChiYXNlIDE2KQkJVGFsbCBNYXBsZSBTeXN0ZW1zCisJCQkJODUgU2FyYXRvZ2EgQXZlIFN1aXRlIDEzOQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1DRCAgIChoZXgpCQlNVEkgY28uIExURAorMDAxM0NEICAgICAoYmFzZSAxNikJCU1USSBjby4gTFRECisJCQkJMTY2LTEwIEthcmFrLWRvbmcKKwkJCQlSJkQgR3JvdXAgMworCQkJCVNvbmdwYS1rdSBTZW91bCAxMzgtODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLUNFICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxM0NFICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS10ZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTMtQ0YgICAoaGV4KQkJNEFjY2VzcyBDb21tdW5pY2F0aW9ucworMDAxM0NGICAgICAoYmFzZSAxNikJCTRBY2Nlc3MgQ29tbXVuaWNhdGlvbnMKKwkJCQkxIE4uIExhU2FsbGUgU3QuCisJCQkJU3VpdGUgMjAxNQorCQkJCUNoaWNhZ28gSUwgNjA2MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUQwICAgKGhleCkJCXQrIE1lZGljYWwgTHRkCiswMDEzRDAgICAgIChiYXNlIDE2KQkJdCsgTWVkaWNhbCBMdGQKKwkJCQkxNzRFIE1pbHRvbiBQYXJrCisJCQkJQWJpbmdkb24gIE9YMTQgNFNFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTMtRDEgICAoaGV4KQkJS0lSSyB0ZWxlY29tIEEvUworMDAxM0QxICAgICAoYmFzZSAxNikJCUtJUksgdGVsZWNvbSBBL1MKKwkJCQlMYW5nbWFya3N2ZWogMzQKKwkJCQlIb3JzZW5zICA4NzAwCisJCQkJREVOTUFSSworCiswMC0xMy1EMiAgIChoZXgpCQlQQUdFIElCRVJJQ0EsIFMuQS4KKzAwMTNEMiAgICAgKGJhc2UgMTYpCQlQQUdFIElCRVJJQ0EsIFMuQS4KKwkJCQlBVi4gREUgTEEgSU5EVVNUUklBLCAyNAorCQkJCVRSRVMgQ0FOVE9TIE1BRFJJRCAyODc2MAorCQkJCVNQQUlOCisKKzAwLTEzLUQzICAgKGhleCkJCU1JQ1JPLVNUQVIgSU5URVJOQVRJT05BTCBDTy4sIExURC4KKzAwMTNEMyAgICAgKGJhc2UgMTYpCQlNSUNSTy1TVEFSIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCisJCQkJTk8uIDY5LCBMSS1ERSBTVC4KKwkJCQlKVU5HLUhFIENJVFkgVEFJUEVJIEhTSUVOIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtRDQgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCiswMDEzRDQgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJTm8uNSBTaGluZyBZZWggU3RyZWV0CisJCQkJS3dlaSBTaGFuIEhzaWFuZworCQkJCVRhbyBZdWFuIEhzaWVuICAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLUQ1ICAgKGhleCkJCVdpTmV0d29ya3MgTFRECiswMDEzRDUgICAgIChiYXNlIDE2KQkJV2lOZXR3b3JrcyBMVEQKKwkJCQkzMiBNYXNraXQgU3QuCisJCQkJSGVyemVsaXlhICA0NjczMworCQkJCUlTUkFFTAorCiswMC0xMy1ENiAgIChoZXgpCQlUSUkgTkVUV09SSyBURUNITk9MT0dJRVMsIElOQy4KKzAwMTNENiAgICAgKGJhc2UgMTYpCQlUSUkgTkVUV09SSyBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkxMzg1IEFLUk9OIFNUUkVFVAorCQkJCUNPUElBR1VFIE5ZIDExNzI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1ENyAgIChoZXgpCQlTUElEQ09NIFRlY2hub2xvZ2llcyBTQQorMDAxM0Q3ICAgICAoYmFzZSAxNikJCVNQSURDT00gVGVjaG5vbG9naWVzIFNBCisJCQkJMTM3IGF2ZW51ZSBkdSBHZW5lcmFsIExFQ0xFUkMKKwkJCQlCT1VSRyBMQSBSRUlORSAgOTIzNDAKKwkJCQlGUkFOQ0UKKworMDAtMTMtRDggICAoaGV4KQkJUHJpbmNldG9uIEluc3RydW1lbnRzCiswMDEzRDggICAgIChiYXNlIDE2KQkJUHJpbmNldG9uIEluc3RydW1lbnRzCisJCQkJMzY2MCBRdWFrZXJicmlkZ2UgUm9hZAorCQkJCVRyZW50b24gTkogMDg2MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUQ5ICAgKGhleCkJCU1hdHJpeCBQcm9kdWN0IERldmVsb3BtZW50LCBJbmMuCiswMDEzRDkgICAgIChiYXNlIDE2KQkJTWF0cml4IFByb2R1Y3QgRGV2ZWxvcG1lbnQsIEluYy4KKwkJCQkxMyBOb3J0aCBCaXJkIFN0cmVldAorCQkJCVN1biBQcmFpcmllIFdJIDUzNTkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1EQSAgIChoZXgpCQlEaXNrd2FyZSBDby4sIEx0ZAorMDAxM0RBICAgICAoYmFzZSAxNikJCURpc2t3YXJlIENvLiwgTHRkCisJCQkJMS00LTEyIEtpYmEKKwkJCQlOYWtvamlraWJhIEJsZGcuNUYKKwkJCQlLb3RvLWt1IFRva3lvIDEzNS0wMDQyCisJCQkJSkFQQU4KKworMDAtMTMtREIgICAoaGV4KQkJU0hPRUkgRWxlY3RyaWMgQ28uLEx0ZAorMDAxM0RCICAgICAoYmFzZSAxNikJCVNIT0VJIEVsZWN0cmljIENvLixMdGQKKwkJCQkxLTI5LTIsV2FrYWJheWFzaGkKKwkJCQlTZXRhZ2F5YS1rdSBUb2t5byAxNTQtMDAyMworCQkJCUpBUEFOCisKKzAwLTEzLURDICAgKGhleCkJCUlCVEVLIElOQy4KKzAwMTNEQyAgICAgKGJhc2UgMTYpCQlJQlRFSyBJTkMuCisJCQkJMTZGLCAzMCwgUGVpLVBpbmcgRWFzdCBSZC4sCisJCQkJVGFpcGVpICAxMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLUREICAgKGhleCkJCUFiYm90dCBEaWFnbm9zdGljcworMDAxM0REICAgICAoYmFzZSAxNikJCUFiYm90dCBEaWFnbm9zdGljcworCQkJCTU0NDAgUGF0cmljayBIZW5yeSBEcml2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1ERSAgIChoZXgpCQlBZGFwdDQsIExMQworMDAxM0RFICAgICAoYmFzZSAxNikJCUFkYXB0NCwgTExDCisJCQkJMTA1MCBXIE5hc2EgQmx2ZCwKKwkJCQlTdWl0ZSAxMzQKKwkJCQlNZWxib3VybmUgRkwgMzI5MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLURGICAgKGhleCkJCVJ5dm9yIENvcnAuCiswMDEzREYgICAgIChiYXNlIDE2KQkJUnl2b3IgQ29ycC4KKwkJCQkxNTE0NSBSZWQgSGlsbCBBdmUuCisJCQkJU3VpdGUgQgorCQkJCVR1c3RpbiBDQSA5Mjc4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRTAgICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCiswMDEzRTAgICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJMjI4OCwgT3NoaW5vaGFyYSwKKwkJCQlZYXN1LXNoaSBTaGlnYSA1MjAtMjM5MworCQkJCUpBUEFOCisKKzAwLTEzLUUxICAgKGhleCkJCUlwcm9iZSBBQgorMDAxM0UxICAgICAoYmFzZSAxNikJCUlwcm9iZSBBQgorCQkJCUZpbmxhbmRzZ2F0YW4gMTIKKwkJCQlLaXN0YSBTRS0xNjQ3NAorCQkJCVNXRURFTgorCiswMC0xMy1FMiAgIChoZXgpCQlHZW9WaXNpb24gSW5jLgorMDAxM0UyICAgICAoYmFzZSAxNikJCUdlb1Zpc2lvbiBJbmMuCisJCQkJMTJGLixOby4zMTYsU2VjLjEsCisJCQkJTmVpaHUgUmQsTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtRTMgICAoaGV4KQkJQ29WaSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTNFMyAgICAgKGJhc2UgMTYpCQlDb1ZpIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTYzMDAgQnJpZGdlcG9pbnQgUGFya3dheQorCQkJCVN1aXRlIDMwMCwgQmxkZy4gSUkKKwkJCQlBdXN0aW4gVGV4YXMgNzg3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUU0ICAgKGhleCkJCVlBTkdKQUUgU1lTVEVNUyBDT1JQLgorMDAxM0U0ICAgICAoYmFzZSAxNikJCVlBTkdKQUUgU1lTVEVNUyBDT1JQLgorCQkJCTEyMDIuIEhBTlNISU4gSVQgVE9XRVIgR3Vyby0zRG9uZywKKwkJCQlHdXJvLUd1CisJCQkJU2VvdWwgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy1FNSAgIChoZXgpCQlURU5PU1lTLCBJTkMuCiswMDEzRTUgICAgIChiYXNlIDE2KQkJVEVOT1NZUywgSU5DLgorCQkJCVNlb2ppbiBCL0QsIDE1NjQtMSwgU2VvY2hvLWRvbmcsCisJCQkJU2VvY2hvLWd1CisJCQkJU2VvdWwgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy1FNiAgIChoZXgpCQlUZWNobm9sdXRpb24KKzAwMTNFNiAgICAgKGJhc2UgMTYpCQlUZWNobm9sdXRpb24KKwkJCQladWlkZWxpamtoYWxmcm9uZCAxCisJCQkJR09VREEgWkggMjgwMSBERAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTEzLUU3ICAgKGhleCkJCUhhbGNybworMDAxM0U3ICAgICAoYmFzZSAxNikJCUhhbGNybworCQkJCVN1aXRlIDEsIExldmVsIDEKKwkJCQk4IEdyZWVuaGlsbCBSZAorCQkJCVdheXZpbGxlIFNvdXRoIEF1c3RyYWxpYSA1MDM0CisJCQkJQVVTVFJBTElBCisKKzAwLTEzLUU4ICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxM0U4ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS10ZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTMtRTkgICAoaGV4KQkJVmVyaVdhdmUsIEluYy4KKzAwMTNFOSAgICAgKGJhc2UgMTYpCQlWZXJpV2F2ZSwgSW5jLgorCQkJCTk2MDAgU1cgT2FrIFN0LgorCQkJCVBvcnRsYW5kIE9SIDk3MjIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1FQSAgIChoZXgpCQlLYW1zdHJ1cCBBL1MKKzAwMTNFQSAgICAgKGJhc2UgMTYpCQlLYW1zdHJ1cCBBL1MKKwkJCQlJbmR1c3RyaXZlaiAyOAorCQkJCVN0aWxsaW5nICA4NjYwCisJCQkJREVOTUFSSworCiswMC0xMy1FQiAgIChoZXgpCQlTeXNtYXN0ZXIgQ29ycG9yYXRpb24KKzAwMTNFQiAgICAgKGJhc2UgMTYpCQlTeXNtYXN0ZXIgQ29ycG9yYXRpb24KKwkJCQk1ODAxIENocmlzdGllIEF2ZS4KKwkJCQlTdWl0ZSA0MDAKKwkJCQlFbWVyeXZpbGxlIENBIDk0NjA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1FQyAgIChoZXgpCQlTdW5iYXkgU29mdHdhcmUgQUcKKzAwMTNFQyAgICAgKGJhc2UgMTYpCQlTdW5iYXkgU29mdHdhcmUgQUcKKwkJCQlTZWVzdHJhc3NlIDc4CisJCQkJUnVlc2NobGlrb24gWkggODgwMworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTEzLUVEICAgKGhleCkJCVBTSUEKKzAwMTNFRCAgICAgKGJhc2UgMTYpCQlQU0lBCisJCQkJNTE3LTEzIEluZHVzcGlzIDV0aAorCQkJCVNhbmdEYWVXb25Eb25nIEp1bmdXb25HdQorCQkJCVN1bmdOYW0gS3l1bmdHaSAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtRUUgICAoaGV4KQkJSkJYIERlc2lnbnMgSW5jLgorMDAxM0VFICAgICAoYmFzZSAxNikJCUpCWCBEZXNpZ25zIEluYy4KKwkJCQlQTyBCb3ggOTcwMTU4CisJCQkJQm9jYSBSYXRvbiBGTCAzMzQ5NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRUYgICAoaGV4KQkJS2luZ2pvbiBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAxM0VGICAgICAoYmFzZSAxNikJCUtpbmdqb24gRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlSb29tIDgyNyxIdWFuYW4gRGlhbmxpIEJ1bGRpbmcsTm8uMjA1MAorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwMzEKKwkJCQlDSElOQQorCiswMC0xMy1GMCAgIChoZXgpCQlXYXZlZnJvbnQgU2VtaWNvbmR1Y3RvcgorMDAxM0YwICAgICAoYmFzZSAxNikJCVdhdmVmcm9udCBTZW1pY29uZHVjdG9yCisJCQkJNDc0NiA0NHRoIEF2ZSBTVworCQkJCVN1aXRlIDIwMQorCQkJCVNlYXR0bGUgV0EgOTgxMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUYxICAgKGhleCkJCUFNT0QgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTNGMSAgICAgKGJhc2UgMTYpCQlBTU9EIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMkYuLCBOby4gMTYsIFByb3NwZXJpdHkgUm9hZCBJSQorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUsICAzMDA3OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtRjIgICAoaGV4KQkJS2xhcyBMdGQKKzAwMTNGMiAgICAgKGJhc2UgMTYpCQlLbGFzIEx0ZAorCQkJCUJyYWNldG93biBCdXNpbmVzcyBQYXJrCisJCQkJQ2xvbmVlIENvIE1lYXRoIAorCQkJCUlSRUxBTkQKKworMDAtMTMtRjMgICAoaGV4KQkJR2lnYS1ieXRlIENvbW11bmljYXRpb25zIEluYy4KKzAwMTNGMyAgICAgKGJhc2UgMTYpCQlHaWdhLWJ5dGUgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCThGLCBOby40MywgRnUtSHNpbiBSb2FkLiBIc2luLVRpZW4KKwkJCQlUYWlwZWkgSHNpZW4gIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtRjQgICAoaGV4KQkJUHNpdGVrIChQdHkpIEx0ZAorMDAxM0Y0ICAgICAoYmFzZSAxNikJCVBzaXRlayAoUHR5KSBMdGQKKwkJCQlUaGUgVmluZXlhcmRzIE9mZmljZSBFc3RhdGUKKwkJCQk5OSBKaXAgZGUgSmFnZXIgRHJpdmUKKwkJCQlUeWdlciBWYWxsZXkgQ2FwZSBUb3duIDc1MzAKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMTMtRjUgICAoaGV4KQkJQWtpbWJpIFN5c3RlbXMKKzAwMTNGNSAgICAgKGJhc2UgMTYpCQlBa2ltYmkgU3lzdGVtcworCQkJCTE0MDAgRmFzaGlvbiBJc2xhbmQgQmx2ZAorCQkJCVN1aXRlIDkwMAorCQkJCVNhbiBNYXRlbyBDQSA5NDQwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRjYgICAoaGV4KQkJQ2ludGVjaAorMDAxM0Y2ICAgICAoYmFzZSAxNikJCUNpbnRlY2gKKwkJCQkyMWEgcm91dGUgZGUgbGEgd2FudHplbmF1CisJCQkJSG9lbmhlaW0gIDY3ODAwCisJCQkJRlJBTkNFCisKKzAwLTEzLUY3ICAgKGhleCkJCVNNQyBOZXR3b3JrcywgSW5jLgorMDAxM0Y3ICAgICAoYmFzZSAxNikJCVNNQyBOZXR3b3JrcywgSW5jLgorCQkJCTM4IFRlc2xhCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1GOCAgIChoZXgpCQlEZXggU2VjdXJpdHkgU29sdXRpb25zCiswMDEzRjggICAgIChiYXNlIDE2KQkJRGV4IFNlY3VyaXR5IFNvbHV0aW9ucworCQkJCTEwIEp1bmN0aW9uIFJvYWQgUGFya3Rvd24KKwkJCQkybmQgRmxvb3IgQlAgSG91c2UKKwkJCQlKb2hhbm5lc2J1cmcgR3V0ZW5nIDIwMDAKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMTMtRjkgICAoaGV4KQkJQ2F2ZXJhIFN5c3RlbXMKKzAwMTNGOSAgICAgKGJhc2UgMTYpCQlDYXZlcmEgU3lzdGVtcworCQkJCTIzNTUgT2FrbGFuZCBSZCwgU3VpdGUjMzMKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRkEgICAoaGV4KQkJTGlmZVNpemUgQ29tbXVuaWNhdGlvbnMsIEluYworMDAxM0ZBICAgICAoYmFzZSAxNikJCUxpZmVTaXplIENvbW11bmljYXRpb25zLCBJbmMKKwkJCQk5MDEgUy4gTW9wYWMKKwkJCQlCbGRnIDMsIFN1aXRlIDMwMAorCQkJCUF1c3RpbiBUWCA3ODc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRkIgICAoaGV4KQkJUktDIElOU1RSVU1FTlQgSU5DLgorMDAxM0ZCICAgICAoYmFzZSAxNikJCVJLQyBJTlNUUlVNRU5UIElOQy4KKwkJCQkxNi02LCBLdWdhaGFyYSA1LWNob21lLAorCQkJCU9odGEta3UgVG9reW8gMTQ2LTg1MTUKKwkJCQlKQVBBTgorCiswMC0xMy1GQyAgIChoZXgpCQlTaUNvcnRleCwgSW5jCiswMDEzRkMgICAgIChiYXNlIDE2KQkJU2lDb3J0ZXgsIEluYworCQkJCTMgQ2xvY2t0b3dlciBQbGFjZQorCQkJCVN1aXRlIDIxMAorCQkJCU1heW5hcmQgTUEgMDE3NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUZEICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDEzRkQgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTEzLUZFICAgKGhleCkJCUdSQU5EVEVDIEVMRUNUUk9OSUMgQ09SUC4KKzAwMTNGRSAgICAgKGJhc2UgMTYpCQlHUkFORFRFQyBFTEVDVFJPTklDIENPUlAuCisJCQkJOEYsTk8uMjY4LExpYW4gQ2hlbmcgUmQuLENodW5nIEhvIENpdHksCisJCQkJSHNpZW4gMjM1CisJCQkJVGFpcGVpICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLUZGICAgKGhleCkJCURhZ2UtTVRJIG9mIE1DLCBJbmMuCiswMDEzRkYgICAgIChiYXNlIDE2KQkJRGFnZS1NVEkgb2YgTUMsIEluYy4KKwkJCQk3MDEgTi4gUm9lc2tlIEF2ZS4KKwkJCQlNaWNoaWdhbiBDaXR5IElOIDQ2MzYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0wMCAgIChoZXgpCQlNSU5FUlZBIEtPUkVBIENPLiwgTFRECiswMDE0MDAgICAgIChiYXNlIDE2KQkJTUlORVJWQSBLT1JFQSBDTy4sIExURAorCQkJCSMyMDMsIFNIIFNpZW5uZSwgU2VvaHllb24tRG9uZworCQkJCUJ1bmRhbmctR3UKKwkJCQlTZW9uZ25hbS1TaSBHeWVvbmdnaS1EbyA0NjMtODIxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTAxICAgKGhleCkJCVJpdmVydHJlZSBOZXR3b3JrcyBDb3JwLgorMDAxNDAxICAgICAoYmFzZSAxNikJCVJpdmVydHJlZSBOZXR3b3JrcyBDb3JwLgorCQkJCVIjMzA0LCBLLUNlbnRlciwgMTU5MS05CisJCQkJQnVyaW0tZG9uZywgRG9uZ2Fobi1ndQorCQkJCUFueWFuZy1zaSBLeXVuZ2dpLWRvIDQzMS04MTUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtMDIgICAoaGV4KQkJa2stZWxlY3Ryb25pYyBhL3MKKzAwMTQwMiAgICAgKGJhc2UgMTYpCQlray1lbGVjdHJvbmljIGEvcworCQkJCUN5cHJlc3ZlaiA2CisJCQkJSGVybmluZyAgNzQwMAorCQkJCURFTk1BUksKKworMDAtMTQtMDMgICAoaGV4KQkJUmVuYXNpcywgTExDCiswMDE0MDMgICAgIChiYXNlIDE2KQkJUmVuYXNpcywgTExDCisJCQkJMTUzMCBOLiBTdGF0ZSBTdC4KKwkJCQlTdWl0ZSBFCisJCQkJTGVoaSBVVCA4NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMDQgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMTQwNCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTA1ICAgKGhleCkJCU9wZW5JQiwgSW5jLgorMDAxNDA1ICAgICAoYmFzZSAxNikJCU9wZW5JQiwgSW5jLgorCQkJCU9wZW5GYWJyaWNzLCBJbmMuLCBjL28gUUxvZ2ljIENvcnBvcmF0aW9uCisJCQkJMjA3MSBTdGllcmxpbiBDb3VydCwgU3VpdGUgMjAwCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0My00NjU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0wNiAgIChoZXgpCQlHbyBOZXR3b3JrcworMDAxNDA2ICAgICAoYmFzZSAxNikJCUdvIE5ldHdvcmtzCisJCQkJMTI2IFlpZ2FsIEFsb24gc3QuCisJCQkJVGVsIEF2aXYgIDY3NDQzCisJCQkJSVNSQUVMCisKKzAwLTE0LTA3ICAgKGhleCkJCVNwZXJpYW4gUHJvdGVjdGlvbiBJbnN0cnVtZW50YXRpb24KKzAwMTQwNyAgICAgKGJhc2UgMTYpCQlTcGVyaWFuIFByb3RlY3Rpb24gSW5zdHJ1bWVudGF0aW9uCisJCQkJNjUxIFNvdXRoIE1haW4gU3RyZWV0CisJCQkJTWlkZGxldG93biBDVCAwNjQ1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMDggICAoaGV4KQkJRWthIFN5c3RlbXMgSW5jLgorMDAxNDA4ICAgICAoYmFzZSAxNikJCUVrYSBTeXN0ZW1zIEluYy4KKwkJCQkyMDI1MSBDZW50dXJ5IEJsdmQKKwkJCQlTdWl0ZSAxMjAKKwkJCQlHZXJtYW50b3duIE1EIDIwODc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0wOSAgIChoZXgpCQlNQUdORVRJIE1BUkVMTEkgICBTLkUuIFMucC5BLgorMDAxNDA5ICAgICAoYmFzZSAxNikJCU1BR05FVEkgTUFSRUxMSSAgIFMuRS4gUy5wLkEuCisJCQkJWkkgTm9yZCwgQWxsZWUgZCdBcmdlbnNvbgorCQkJCUNIQVRFTExFUkFVTFQgIDg2MTAwCisJCQkJRlJBTkNFCisKKzAwLTE0LTBBICAgKGhleCkJCVdFUElPIENvLiwgTHRkLgorMDAxNDBBICAgICAoYmFzZSAxNikJCVdFUElPIENvLiwgTHRkLgorCQkJCSMxMTI1LCBPcHVzMSwgR3Vyb2Rvbmdjb21wbGV4IGJ1aWxkaW5nCisJCQkJNjExLTI2LEd1cm8tZG9uZyxHdXJvLWd1LAorCQkJCVNlb3VsICAxNTItMDUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTBCICAgKGhleCkJCUZJUlNUIElOVEVSTkFUSU9OQUwgQ09NUFVURVIsIElOQy4KKzAwMTQwQiAgICAgKGJhc2UgMTYpCQlGSVJTVCBJTlRFUk5BVElPTkFMIENPTVBVVEVSLCBJTkMuCisJCQkJRklDIEJVSUxESU5HLCBOTy4zMDAsIFlBTkcgR1VBTkcgU1QuLAorCQkJCU5FSUhVCisJCQkJVEFJUEVJIENPVU5UWSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTBDICAgKGhleCkJCUdLQiBDQ1RWIENPLiwgTFRELgorMDAxNDBDICAgICAoYmFzZSAxNikJCUdLQiBDQ1RWIENPLiwgTFRELgorCQkJCTdGLCBOby4gMSwgTGFuZSA2NDEsCisJCQkJU2hlbiBMaW5nIFNvdXRoIFJkLiwKKwkJCQlUYSBZYSBIc2lhbmcsIFRBSUNIVU5HIDQyOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtMEQgICAoaGV4KQkJTm9ydGVsCiswMDE0MEQgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTQtMEUgICAoaGV4KQkJTm9ydGVsCiswMDE0MEUgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTQtMEYgICAoaGV4KQkJRmVkZXJhbCBTdGF0ZSBVbml0YXJ5IEVudGVycHJpc2UgTGVuaW5ncmFkIFImRCBJbnN0aXR1dGUgb2YKKzAwMTQwRiAgICAgKGJhc2UgMTYpCQlGZWRlcmFsIFN0YXRlIFVuaXRhcnkgRW50ZXJwcmlzZSBMZW5pbmdyYWQgUiZEIEluc3RpdHV0ZSBvZgorCQkJCTExIFdhcnNoYXdza2F5YSBTdC4KKwkJCQlTdC4gUGV0ZXJzYnVyZyAxOTYxMjgKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMTQtMTAgICAoaGV4KQkJU3V6aG91IEtlZGEgVGVjaG5vbG9neSBDTy4sTHRkCiswMDE0MTAgICAgIChiYXNlIDE2KQkJU3V6aG91IEtlZGEgVGVjaG5vbG9neSBDTy4sTHRkCisJCQkJMTMxLEppbnNoYW4gUm9hZAorCQkJCVN1emhvdSBKaWFuZ1N1IDIxNTAxMQorCQkJCUNISU5BCisKKzAwLTE0LTExICAgKGhleCkJCURldXRzY2htYW5uIEF1dG9tYXRpb24gR21iSCAmIENvLiBLRworMDAxNDExICAgICAoYmFzZSAxNikJCURldXRzY2htYW5uIEF1dG9tYXRpb24gR21iSCAmIENvLiBLRworCQkJCUNhcmwtWmVpc3MtU3RyLiA4CisJCQkJQmFkIENhbWJlcmcgIEQgLSA2NTUyMAorCQkJCUdFUk1BTlkKKworMDAtMTQtMTIgICAoaGV4KQkJUy1URUMgZWxlY3Ryb25pY3MgQUcKKzAwMTQxMiAgICAgKGJhc2UgMTYpCQlTLVRFQyBlbGVjdHJvbmljcyBBRworCQkJCUluZHVzdHJpZXN0cmFzc2UgNDkKKwkJCQladWcgNjMwMAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE0LTEzICAgKGhleCkJCVRyZWJpbmcgJiBIaW1zdGVkdCBQcm96ZXNzYXV0b21hdGlvbiBHbWJIICYgQ28uIEtHCiswMDE0MTMgICAgIChiYXNlIDE2KQkJVHJlYmluZyAmIEhpbXN0ZWR0IFByb3plc3NhdXRvbWF0aW9uIEdtYkggJiBDby4gS0cKKwkJCQlXaWxoZWxtLUhlbm5lbWFubi1TdHIuIDEzCisJCQkJU2Nod2VyaW4gTWVja2xlbmJ1cmctVm9ycG9tbWVybiAxOTA2MQorCQkJCUdFUk1BTlkKKworMDAtMTQtMTQgICAoaGV4KQkJSnVtcG5vZGUgU3lzdGVtcyBMTEMuCiswMDE0MTQgICAgIChiYXNlIDE2KQkJSnVtcG5vZGUgU3lzdGVtcyBMTEMuCisJCQkJODAwIFdhc2hpbmd0b24gQXZlIE4uCisJCQkJU3VpdGUgMzA5CisJCQkJTWlubmVhcG9saXMgTU4gNTUwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTE1ICAgKGhleCkJCUludGVjIEF1dG9tYXRpb24gSW5jLgorMDAxNDE1ICAgICAoYmFzZSAxNikJCUludGVjIEF1dG9tYXRpb24gSW5jLgorCQkJCTI3NTEgQXJidXR1cyBSZC4KKwkJCQlWaWN0b3JpYSBCcml0aXNoIENvbHVtYmlhIFY4TiA1WDcKKwkJCQlDQU5BREEKKworMDAtMTQtMTYgICAoaGV4KQkJU2Nvc2NoZSBJbmR1c3RyaWVzLCBJbmMuCiswMDE0MTYgICAgIChiYXNlIDE2KQkJU2Nvc2NoZSBJbmR1c3RyaWVzLCBJbmMuCisJCQkJUE8gQm94IDI5MDEKKwkJCQlPeG5hcmQgQ0EgOTMwMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTE3ICAgKGhleCkJCVJTRSBJbmZvcm1hdGlvbnMgVGVjaG5vbG9naWUgR21iSAorMDAxNDE3ICAgICAoYmFzZSAxNikJCVJTRSBJbmZvcm1hdGlvbnMgVGVjaG5vbG9naWUgR21iSAorCQkJCVNpbGJlcmJlcmdzdHJhc3NlIDkKKwkJCQlXb2xmc2JlcmcgS+RybnRlbiA5NDAwCisJCQkJQVVTVFJJQQorCiswMC0xNC0xOCAgIChoZXgpCQlDNExpbmUKKzAwMTQxOCAgICAgKGJhc2UgMTYpCQlDNExpbmUKKwkJCQkxMDAxIEh5dW5kYWkgUGFyaXNpYW4sCisJCQkJOTA3LTEwIE1vazUtRG9uZworCQkJCVlhbmdjaHVuLUd1IFNlb3VsIDE1OC0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtMTkgICAoaGV4KQkJU0lEU0EKKzAwMTQxOSAgICAgKGJhc2UgMTYpCQlTSURTQQorCQkJCVBUTSAtIFRPUlJFUyBRVUVWRURPIDEKKwkJCQlUUkVTIENBTlRPUyBNQURSSUQgMjg3NjAKKwkJCQlTUEFJTgorCiswMC0xNC0xQSAgIChoZXgpCQlERUlDWSBDT1JQT1JBVElPTgorMDAxNDFBICAgICAoYmFzZSAxNikJCURFSUNZIENPUlBPUkFUSU9OCisJCQkJMy0zLTYsU2FrYWUtY2hvLEhhbXVyYS1zaGksCisJCQkJVG9reW8gMjA1LTAwMDIKKwkJCQlKQVBBTgorCiswMC0xNC0xQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE0MUIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0xQyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE0MUMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0xRCAgIChoZXgpCQlMdXN0IEFudHJpZWJzdGVjaG5payBHbWJICiswMDE0MUQgICAgIChiYXNlIDE2KQkJTHVzdCBBbnRyaWVic3RlY2huaWsgR21iSAorCQkJCUdld2VyYmVzdHJhc3NlIDUtOQorCQkJCUxhaG5hdSBIZXNzZW4gMzU2MzMKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LTFFICAgKGhleCkJCVAuQS4gU2VtaSwgSW5jLgorMDAxNDFFICAgICAoYmFzZSAxNikJCVAuQS4gU2VtaSwgSW5jLgorCQkJCTM5NjUgRnJlZWRvbSBDaXJjbGUsIEZsIDgKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMUYgICAoaGV4KQkJU3VuS3dhbmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzAwMTQxRiAgICAgKGJhc2UgMTYpCQlTdW5Ld2FuZyBFbGVjdHJvbmljcyBDby4sIEx0ZAorCQkJCSMzNjUoVGVjaG5vLXBhcmssIDMwMSBkb25nLCA5MDEgaG8sKSBTYW1qdW5nLWRvbmcsIE9oanVuZy1rdSwKKwkJCQlCdWNoZW9uLXNoaSBLeXVuZ2dpLWRvIDQyMS04MDkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtMjAgICAoaGV4KQkJRy1MaW5rcyBuZXR3b3JraW5nIGNvbXBhbnkKKzAwMTQyMCAgICAgKGJhc2UgMTYpCQlHLUxpbmtzIG5ldHdvcmtpbmcgY29tcGFueQorCQkJCTFGTC4gTk8uMTUtNDksIE1JTkcgREVSIFNFQ09ORCBST0FELAorCQkJCUNISSBEVSBESVNUUklDVCwKKwkJCQlLZWVsdW5nICAyMDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTIxICAgKGhleCkJCVRvdGFsIFdpcmVsZXNzIFRlY2hub2xvZ2llcyBQdGUuIEx0ZC4KKzAwMTQyMSAgICAgKGJhc2UgMTYpCQlUb3RhbCBXaXJlbGVzcyBUZWNobm9sb2dpZXMgUHRlLiBMdGQuCisJCQkJQmxrIDEwMDMsIEJ1a2l0IE1lcmFoIENlbnRyYWwsICMwNC0xOAorCQkJCVRlY2hub3ByZW5ldXIgQ2VudHJlCisJCQkJMTU5ODM2CisJCQkJU0lOR0FQT1JFCisKKzAwLTE0LTIyICAgKGhleCkJCURlbGwgSW5jLgorMDAxNDIyICAgICAoYmFzZSAxNikJCURlbGwgSW5jLgorCQkJCU9uZSBEZWxsIFdheQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTIzICAgKGhleCkJCUotUyBDby4gTkVVUk9DT00KKzAwMTQyMyAgICAgKGJhc2UgMTYpCQlKLVMgQ28uIE5FVVJPQ09NCisJCQkJRW5lcmdldGljaGVza2lpIHByb2V6ZCwgNgorCQkJCU1vc2NvdyAgMTExMjUwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTE0LTI0ICAgKGhleCkJCU1lcnJ5IEVsZWN0cmljcyBDTy4sIExURC4KKzAwMTQyNCAgICAgKGJhc2UgMTYpCQlNZXJyeSBFbGVjdHJpY3MgQ08uLCBMVEQuCisJCQkJTk8uMjIsMjNyZCBST0FECisJCQkJUEFSSyBUQUlDSFVORywKKwkJCQlUQUlDSFVORyBDSVRZICA0MDg1MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtMjUgICAoaGV4KQkJR2FsYWN0aWMgQ29tcHV0aW5nIENvcnAuCiswMDE0MjUgICAgIChiYXNlIDE2KQkJR2FsYWN0aWMgQ29tcHV0aW5nIENvcnAuCisJCQkJMS9GCisJCQkJMTIgTGVlIENodW5nIFN0cmVldAorCQkJCUNoYWkgV2FuIERpc3RyaWN0ICAKKwkJCQlIT05HIEtPTkcKKworMDAtMTQtMjYgICAoaGV4KQkJTkwgVGVjaG5vbG9neQorMDAxNDI2ICAgICAoYmFzZSAxNikJCU5MIFRlY2hub2xvZ3kKKwkJCQk4MDAgVHVybnBpa2UgU3RyZWV0CisJCQkJU1RFIDEwMAorCQkJCU5vcnRoIEFuZG92ZXIgTUEgMDE4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTI3ICAgKGhleCkJCUphenpNdXRhbnQKKzAwMTQyNyAgICAgKGJhc2UgMTYpCQlKYXp6TXV0YW50CisJCQkJMiBhbGxlZSBkdSBEb3llbiBHZW9yZ2VzIEJydXMKKwkJCQlQZXNzYWMgIDMzNjAwCisJCQkJRlJBTkNFCisKKzAwLTE0LTI4ICAgKGhleCkJCVZvY29sbGVjdCwgSW5jCiswMDE0MjggICAgIChiYXNlIDE2KQkJVm9jb2xsZWN0LCBJbmMKKwkJCQk3MDMgUm9kaSBSb2FkCisJCQkJUGl0dHNidXJnaCBQQSAxNTIzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMjkgICAoaGV4KQkJViBDZW50ZXIgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAxNDI5ICAgICAoYmFzZSAxNikJCVYgQ2VudGVyIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQk3Ri03LCBOTy4zNSwgSHNpbnRhaSBSZC4KKwkJCQlKdWJlaSBDaXR5IEhzaW5jaHUgMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC0yQSAgIChoZXgpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4sIEx0ZAorMDAxNDJBICAgICAoYmFzZSAxNikJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtIENvLiwgTHRkCisJCQkJTm8uMjIsIEFsbGV5IDM4LCBMYW5lIDkxLCBTZWMuIDEsCisJCQkJTmVpIEh1IFJvYWQKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtMkIgICAoaGV4KQkJRWRhdGEgQ29tbXVuaWNhdGlvbiBJbmMuCiswMDE0MkIgICAgIChiYXNlIDE2KQkJRWRhdGEgQ29tbXVuaWNhdGlvbiBJbmMuCisJCQkJMkYtMSwgTm8uIDg3MiwgQ2h1bmctQ2hlbmcgUmQKKwkJCQlDaHVuZy1IbyBDaXR5CisJCQkJVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtMkMgICAoaGV4KQkJS29uY2VwdCBJbnRlcm5hdGlvbmFsLCBJbmMuCiswMDE0MkMgICAgIChiYXNlIDE2KQkJS29uY2VwdCBJbnRlcm5hdGlvbmFsLCBJbmMuCisJCQkJMjUwMCBFIEZvb3RoaWxsIEJsdmQuICM0MDcKKwkJCQlQYXNhZGVuYSBDQSA5MTEwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMkQgICAoaGV4KQkJVG9yYWRleCBBRworMDAxNDJEICAgICAoYmFzZSAxNikJCVRvcmFkZXggQUcKKwkJCQlBbHRzYWdlbnN0cmFzc2UgNQorCQkJCUhvcncgTFUgNjA0OAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE0LTJFICAgKGhleCkJCTc3IEVsZWt0cm9uaWthIEtmdC4KKzAwMTQyRSAgICAgKGJhc2UgMTYpCQk3NyBFbGVrdHJvbmlrYSBLZnQuCisJCQkJRmVoZXJ2YXJpIHV0IDk4LgorCQkJCUJ1ZGFwZXN0IEgtMTE2MworCQkJCUhVTkdBUlkKKworMDAtMTQtMkYgICAoaGV4KQkJV2lsZFBhY2tldHMKKzAwMTQyRiAgICAgKGJhc2UgMTYpCQlXaWxkUGFja2V0cworCQkJCTEzNDAgVHJlYXQgQm91bGV2YXJkCisJCQkJU3VpdGUgNTAwCisJCQkJV2FsbnV0IENyZWVrIENBIDk0NTk3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0zMCAgIChoZXgpCQlWaVBvd0VSLCBJbmMKKzAwMTQzMCAgICAgKGJhc2UgMTYpCQlWaVBvd0VSLCBJbmMKKwkJCQk5Ri4sIE5vLjIwNS0zLCBTZWMuIDMsIEJlaXNpbiBSZAorCQkJCVNpbmRpYW4gVGFpcGVpIENvdW50eSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTMxICAgKGhleCkJCVBETCBFbGVjdHJvbmljcyBMdGQKKzAwMTQzMSAgICAgKGJhc2UgMTYpCQlQREwgRWxlY3Ryb25pY3MgTHRkCisJCQkJODEgQXVzdGluIFN0cmVldAorCQkJCU5hcGllciBIYXdrZXMgQmF5IDQwMTUKKwkJCQlORVcgWkVBTEFORAorCiswMC0xNC0zMiAgIChoZXgpCQlUYXJhbGxheCBXaXJlbGVzcywgSW5jLgorMDAxNDMyICAgICAoYmFzZSAxNikJCVRhcmFsbGF4IFdpcmVsZXNzLCBJbmMuCisJCQkJMTAgV2VzdCAxMDAgU291dGgsCisJCQkJU3VpdGUgNjAwCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTMzICAgKGhleCkJCUVtcG93ZXIgVGVjaG5vbG9naWVzKENhbmFkYSkgSW5jLgorMDAxNDMzICAgICAoYmFzZSAxNikJCUVtcG93ZXIgVGVjaG5vbG9naWVzKENhbmFkYSkgSW5jLgorCQkJCVVuaXQgNDA1IC0gNTYwMCBQYXJrd29vZCBXYXksCisJCQkJUmljaG1vbmQgQnJpdGlzaCBDb2x1bWJpYSBWNlYgMk0yCisJCQkJQ0FOQURBCisKKzAwLTE0LTM0ICAgKGhleCkJCUtlcmkgU3lzdGVtcywgSW5jCiswMDE0MzQgICAgIChiYXNlIDE2KQkJS2VyaSBTeXN0ZW1zLCBJbmMKKwkJCQlTdWl0ZSAxMDAKKwkJCQkxNTMwIE9ha2xhbmQgUmQKKwkJCQlTYW4gSm9zZSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMzUgICAoaGV4KQkJQ2l0eUNvbSBDb3JwLgorMDAxNDM1ICAgICAoYmFzZSAxNikJCUNpdHlDb20gQ29ycC4KKwkJCQkzRi4sIE5vLjUzMiwgU2VjLiAyLAorCQkJCUpob25nc2hhbiBSZC4KKwkJCQlKaG9uZ2hlIENpdHkgVGFpcGVpIEhzaWVuIDIzNTU3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC0zNiAgIChoZXgpCQlRd2VydHkgRWxla3Ryb25payBBQgorMDAxNDM2ICAgICAoYmFzZSAxNikJCVF3ZXJ0eSBFbGVrdHJvbmlrIEFCCisJCQkJQuRsaW5nZSBLbG9ja2FyZ+VyZAorCQkJCVR5c3RiZXJnYSAgNjEwIDYwCisJCQkJU1dFREVOCisKKzAwLTE0LTM3ICAgKGhleCkJCUdTVGVsZXRlY2ggQ28uLEx0ZC4KKzAwMTQzNyAgICAgKGJhc2UgMTYpCQlHU1RlbGV0ZWNoIENvLixMdGQuCisJCQkJMTM4NS0xNCwgSnVhbi1Eb25nLCBOYW0tZ3UKKwkJCQlJbmNoZW9uIDQwMi0yMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtMzggICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDE0MzggICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkgU291dGgKKwkJCQlNUzA3MDQwNQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTM5ICAgKGhleCkJCUJsb25kZXIgVG9uZ3VlIExhYm9yYXRvcmllcywgSW5jLgorMDAxNDM5ICAgICAoYmFzZSAxNikJCUJsb25kZXIgVG9uZ3VlIExhYm9yYXRvcmllcywgSW5jLgorCQkJCU9uZSBKYWtlIEJyb3duIFJvYWQKKwkJCQlPbGQgQnJpZGdlIE5ldyBKZXJzZXkgMDg4NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTNBICAgKGhleCkJCVJBWVRBTEsgSU5URVJOQVRJT05BTCBTUkwKKzAwMTQzQSAgICAgKGJhc2UgMTYpCQlSQVlUQUxLIElOVEVSTkFUSU9OQUwgU1JMCisJCQkJU3QuIE1hcmVjY2hpYSA3OQorCQkJCVZlcnVjY2hpbyAoUk4pIDQ3ODI2CisJCQkJSVRBTFkKKworMDAtMTQtM0IgICAoaGV4KQkJU2Vuc292YXRpb24gQUcKKzAwMTQzQiAgICAgKGJhc2UgMTYpCQlTZW5zb3ZhdGlvbiBBRworCQkJCUx1ZHdpZ3NoYWZlbmVyIFN0ci4gMjkKKwkJCQlTdG9ja2FjaCBCYWRlbi1XdWVydHRlbWJlcmcgNzgzMzMKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LTNDICAgKGhleCkJCVJoZWlubWV0YWxsIENhbmFkYSBJbmMuCiswMDE0M0MgICAgIChiYXNlIDE2KQkJUmhlaW5tZXRhbGwgQ2FuYWRhIEluYy4KKwkJCQkyMjUgYm91bCBkdSBzZW1pbmFpcmUgc3VkCisJCQkJU3QtSmVhbi1zdXItUmljaGVsaWV1IFF1ZWJlYyBKM0IgOEU5CisJCQkJQ0FOQURBCisKKzAwLTE0LTNEICAgKGhleCkJCUFldm9lIEluYy4KKzAwMTQzRCAgICAgKGJhc2UgMTYpCQlBZXZvZSBJbmMuCisJCQkJMTFGLCBObyAyMywgS2VlbHVuZyBSb2FkCisJCQkJVGFpcGVpIEhzaW5ZaSBEaXN0cmljdCAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTNFICAgKGhleCkJCUFpckxpbmsgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTQzRSAgICAgKGJhc2UgMTYpCQlBaXJMaW5rIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMzE1OSBDb3Jwb3JhdGUgUGxhY2UKKwkJCQlIYXl3YXJkIENBIDk0NTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0zRiAgIChoZXgpCQlIb3R3YXkgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxNDNGICAgICAoYmFzZSAxNikJCUhvdHdheSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJTm8uIDgxLCBIc2luIFRhaSA1dGggUm9hZCBTZWN0aW9uIDEKKwkJCQkxMUYtMworCQkJCVNoaUpyIFRhaXBlaSAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTQwICAgKGhleCkJCUFUT01JQyBDb3Jwb3JhdGlvbgorMDAxNDQwICAgICAoYmFzZSAxNikJCUFUT01JQyBDb3Jwb3JhdGlvbgorCQkJCU1BTVBPIEJMREcKKwkJCQkxLTMtMTEsQVNBS1VTQUJBU0hJCisJCQkJVEFJVE8tS1UgVE9LWU8gMTExLTAwNTMKKwkJCQlKQVBBTgorCiswMC0xNC00MSAgIChoZXgpCQlJbm5vdmF0aW9uIFNvdW5kIFRlY2hub2xvZ3kgQ28uLCBMVEQuCiswMDE0NDEgICAgIChiYXNlIDE2KQkJSW5ub3ZhdGlvbiBTb3VuZCBUZWNobm9sb2d5IENvLiwgTFRELgorCQkJCUJ1aWxkaW5nIDJ0aC4sQ3VpaGFpIEluZHVzdHJpYWwgQXJlYSwKKwkJCQlIdWFpZGUsIEZ1eW9uZyBUb3duCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwMworCQkJCUNISU5BCisKKzAwLTE0LTQyICAgKGhleCkJCUFUVE8gQ09SUE9SQVRJT04KKzAwMTQ0MiAgICAgKGJhc2UgMTYpCQlBVFRPIENPUlBPUkFUSU9OCisJCQkJMS0yNS0yMyBIb25nbywKKwkJCQlCdW5reW8ta3UsCisJCQkJVG9reW8gMTEzLTg0MjUKKwkJCQlKQVBBTgorCiswMC0xNC00MyAgIChoZXgpCQlDb25zdWx0cm9uaWNzIEV1cm9wZSBMdGQKKzAwMTQ0MyAgICAgKGJhc2UgMTYpCQlDb25zdWx0cm9uaWNzIEV1cm9wZSBMdGQKKwkJCQlFbGVjdHJvbiBXYXkKKwkJCQlDaGFuZGxlcnMgRm9yZCBIYW50cyBTTzUzIDRTRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE0LTQ0ICAgKGhleCkJCUdydW5kZm9zIEVsZWN0cm9uaWNzCiswMDE0NDQgICAgIChiYXNlIDE2KQkJR3J1bmRmb3MgRWxlY3Ryb25pY3MKKwkJCQlCaXJrZXZhZW5nZXQgMi0xMAorCQkJCUJqZXJyaW5nYnJvICBESzg4NTAKKwkJCQlERU5NQVJLCisKKzAwLTE0LTQ1ICAgKGhleCkJCVRlbGVmb24tR3JhZG5qYSBkLm8uby4KKzAwMTQ0NSAgICAgKGJhc2UgMTYpCQlUZWxlZm9uLUdyYWRuamEgZC5vLm8uCisJCQkJUGxlc2l2aWNrYSAzCisJCQkJU3ZldGEgTmVkZWxqYSBadXBhbmlqYSBaYWdyZWJhY2thIDEwNDMxCisJCQkJQ1JPQVRJQQorCiswMC0xNC00NiAgIChoZXgpCQlTdXBlclZpc2lvbiBTb2x1dGlvbnMgTExDCiswMDE0NDYgICAgIChiYXNlIDE2KQkJU3VwZXJWaXNpb24gU29sdXRpb25zIExMQworCQkJCTc2MiBJbmR1c3RyaWFsIERyLgorCQkJCUVsbWh1cnN0IElMIDYwMTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC00NyAgIChoZXgpCQlCT0FaIEluYy4KKzAwMTQ0NyAgICAgKGJhc2UgMTYpCQlCT0FaIEluYy4KKwkJCQkyODIgUHVrb2stcmkgU29uZ1Nhbi1teW9uIERhbmd6aW4tZ3VuIENodW5nY2hlb25nbmFtLWRvLCAgMzQzLTgzNAorCQkJCSMzMDEsIDE0MjktNyBTZW9DaG8tZG9uZworCQkJCVNlb3VsIFNlb0Noby1ndSAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTQ4ICAgKGhleCkJCUludmVudGVjIE11bHRpbWVkaWEgJiBUZWxlY29tIENvcnBvcmF0aW9uCiswMDE0NDggICAgIChiYXNlIDE2KQkJSW52ZW50ZWMgTXVsdGltZWRpYSAmIFRlbGVjb20gQ29ycG9yYXRpb24KKwkJCQk1RixOTy4zOTYsU2VjLjEgTmVpLUh1IFJvYWQKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtNDkgICAoaGV4KQkJU2ljaHVhbiBDaGFuZ2hvbmcgRWxlY3RyaWMgTHRkLgorMDAxNDQ5ICAgICAoYmFzZSAxNikJCVNpY2h1YW4gQ2hhbmdob25nIEVsZWN0cmljIEx0ZC4KKwkJCQlOby4zNSxFYXN0IE1pYW5YaW4gUm9hZAorCQkJCU1pYW5ZYW5nIFNpQ2h1YW4gUFJDIDYyMTAwMAorCQkJCUNISU5BCisKKzAwLTE0LTRBICAgKGhleCkJCVRhaXdhbiBUaGljay1GaWxtIEluZC4gQ29ycC4KKzAwMTQ0QSAgICAgKGJhc2UgMTYpCQlUYWl3YW4gVGhpY2stRmlsbSBJbmQuIENvcnAuCisJCQkJTk8uMTI2LFd1dSBHb25nIDJuZCBSRCwKKwkJCQlXdXUgR3V1IEluZHVzdHJpYWwgWm9uZQorCQkJCVRhaXBlaSBIc2llbiAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC00QiAgIChoZXgpCQlIaWZuLCBJbmMuCiswMDE0NEIgICAgIChiYXNlIDE2KQkJSGlmbiwgSW5jLgorCQkJCTc1MCBVbml2ZXJzaXR5IEF2ZQorCQkJCVN1aXRlIDIwMAorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNEMgICAoaGV4KQkJR2VuZXJhbCBNZXRlcnMgQ29ycC4KKzAwMTQ0QyAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIE1ldGVycyBDb3JwLgorCQkJCTE5MzUgRG9taW5pb24gV2F5CisJCQkJQ29sb3JhZG8gU3ByaW5ncyBDb2xvcmFkbyA4MDkxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNEQgICAoaGV4KQkJSW50ZWxsaWdlbnQgU3lzdGVtcworMDAxNDREICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IFN5c3RlbXMKKwkJCQkxMTEwMSBKb2hucyBIb3BraW5zIFJvYWQKKwkJCQlMYXVyZWwgTUQgMjA3MjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTRFICAgKGhleCkJCVNSSVNBCiswMDE0NEUgICAgIChiYXNlIDE2KQkJU1JJU0EKKwkJCQkzNi8xLCBOYWtoaW1vdnNraXkgcHItdAorCQkJCU1vc2NvdyAxMTcyMTgKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMTQtNEYgICAoaGV4KQkJT3JhY2xlIENvcnBvcmF0aW9uCiswMDE0NEYgICAgIChiYXNlIDE2KQkJT3JhY2xlIENvcnBvcmF0aW9uCisJCQkJMTcgTmV0d29yayBDaXJjbGUKKwkJCQlCbGRnLiAxNywgVU1QSzE3LTEzMQorCQkJCU1lbmxvIFBhcmsgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTUwICAgKGhleCkJCUhlaW0gU3lzdGVtcyBHbWJICiswMDE0NTAgICAgIChiYXNlIDE2KQkJSGVpbSBTeXN0ZW1zIEdtYkgKKwkJCQlGcmllZHJpY2ggRWJlcnQgU3RyYXNzZQorCQkJCVRlY2hub2xvZ2llUGFyaworCQkJCUJlcmdpc2NoIEdsYWRiYWNoIE5SVyA1MTQyOQorCQkJCUdFUk1BTlkKKworMDAtMTQtNTEgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIgSW5jLgorMDAxNDUxICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlNUzozNUdQTworCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNTIgICAoaGV4KQkJQ0FMQ1VMRVgsSU5DLgorMDAxNDUyICAgICAoYmFzZSAxNikJCUNBTENVTEVYLElOQy4KKwkJCQkxMzIgVy4gTEFTIENSVUNFUyBBVkUuCisJCQkJTEFTIENSVUNFUyBORVcgTUVYSUNPIDg4MDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC01MyAgIChoZXgpCQlBRFZBTlRFQ0ggVEVDSE5PTE9HSUVTIENPLixMVEQKKzAwMTQ1MyAgICAgKGJhc2UgMTYpCQlBRFZBTlRFQ0ggVEVDSE5PTE9HSUVTIENPLixMVEQKKwkJCQkjMTIwMiBBQ0UgVEVDSE5PIFRPV0VSLCA2ODQtMQorCQkJCURldW5nY2hvbi0zRG9uZywgS2FuZ3Nlby1LdQorCQkJCVNlb3VsIDE1Ny03MjEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtNTQgICAoaGV4KQkJU3ltd2F2ZQorMDAxNDU0ICAgICAoYmFzZSAxNikJCVN5bXdhdmUKKwkJCQkxMDI1MSBWaXN0YSBTb3JyZW50byBQYXJrd2F5CisJCQkJU3VpdGUgMTAwCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC01NSAgIChoZXgpCQlDb2RlciBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorMDAxNDU1ICAgICAoYmFzZSAxNikJCUNvZGVyIEVsZWN0cm9uaWNzIENvcnBvcmF0aW9uCisJCQkJVGFrZWRhIEJsZGcsIDEtMzAtNiBTaGlyYXNhZ2ksCisJCQkJTmFrYW5vLWt1IFRva3lvIDE2NS0wMDM1CisJCQkJSkFQQU4KKworMDAtMTQtNTYgICAoaGV4KQkJRWRnZSBQcm9kdWN0cworMDAxNDU2ICAgICAoYmFzZSAxNikJCUVkZ2UgUHJvZHVjdHMKKwkJCQkxMDgwIFNvdXRoIERlcG90IERyaXZlCisJCQkJT2dkZW4gVXRhaCA4NDQwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNTcgICAoaGV4KQkJVC1WSVBTIEFTCiswMDE0NTcgICAgIChiYXNlIDE2KQkJVC1WSVBTIEFTCisJCQkJT3N0ZW5zam92ZWllbiAxOAorCQkJCU9zbG8gTk8tMDY2MQorCQkJCU5PUldBWQorCiswMC0xNC01OCAgIChoZXgpCQlIUyBBdXRvbWF0aWMgQXBTCiswMDE0NTggICAgIChiYXNlIDE2KQkJSFMgQXV0b21hdGljIEFwUworCQkJCUJqZXJyaW5nYnJvdmVqIDcwCisJCQkJUm9kb3ZyZSAgMjYxMAorCQkJCURFTk1BUksKKworMDAtMTQtNTkgICAoaGV4KQkJTW9yYW0gQ28uLCBMdGQuCiswMDE0NTkgICAgIChiYXNlIDE2KQkJTW9yYW0gQ28uLCBMdGQuCisJCQkJM0YsIE1hbndvbCBCbGRnLiwgMTAyMi00CisJCQkJWW91bmd0b25nLWRvbmcsIFlvdW5ndG9uZy1ndQorCQkJCVN1d29uLXNoaSBHeW91bmdnaS1kbyA0NDMtODEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTVBICAgKGhleCkJCU5lcmF0ZWMgQUcKKzAwMTQ1QSAgICAgKGJhc2UgMTYpCQlOZXJhdGVjIEFHCisJCQkJUm9zc3dpZXNzdHJhc3NlIDI5CisJCQkJQ0gtODYwOCBCdWJpa29uIFpICisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTQtNUIgICAoaGV4KQkJU2Vla2VyTmV0IEluYy4KKzAwMTQ1QiAgICAgKGJhc2UgMTYpCQlTZWVrZXJOZXQgSW5jLgorCQkJCTMwMCBTYXRlbGxpdGUgQmx2ZC4KKwkJCQlTdXdhbmVlIEdlb3JnaWEgMzAwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTVDICAgKGhleCkJCUludHJvbmljcyBCLlYuCiswMDE0NUMgICAgIChiYXNlIDE2KQkJSW50cm9uaWNzIEIuVi4KKwkJCQlIZXJtZXN3ZWcgMjIKKwkJCQlCYXJuZXZlbGQgR2VsZGVybGFuZCAzNzcxIE5ECisJCQkJTkVUSEVSTEFORFMKKworMDAtMTQtNUQgICAoaGV4KQkJV0ogQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTQ1RCAgICAgKGJhc2UgMTYpCQlXSiBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTQwMSBSaXZlciBPYWtzIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNUUgICAoaGV4KQkJSUJNIENvcnAKKzAwMTQ1RSAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNUYgICAoaGV4KQkJQURJVEVDIENPLiBMVEQKKzAwMTQ1RiAgICAgKGJhc2UgMTYpCQlBRElURUMgQ08uIExURAorCQkJCTRGIEh5b3dvbiBCL0QsIDk5LTUsCisJCQkJS2FyYWstZG9uZyxTb25ncGEtZ3UKKwkJCQlTZW91bCAxMzgtODA1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTYwICAgKGhleCkJCUt5b2NlcmEgV2lyZWxlc3MgQ29ycC4KKzAwMTQ2MCAgICAgKGJhc2UgMTYpCQlLeW9jZXJhIFdpcmVsZXNzIENvcnAuCisJCQkJMTAzMDAgQ2FtcHVzIFBvaW50IERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC02MSAgIChoZXgpCQlDT1JPTkEgQ09SUE9SQVRJT04KKzAwMTQ2MSAgICAgKGJhc2UgMTYpCQlDT1JPTkEgQ09SUE9SQVRJT04KKwkJCQk3LTcsIEhJR0FTSEktU0hJTkJPCisJCQkJU0FOSk8tU0hJIE5JSUdBVEEgOTU1LTg1MTAKKwkJCQlKQVBBTgorCiswMC0xNC02MiAgIChoZXgpCQlEaWdpd2VsbCBUZWNobm9sb2d5LCBpbmMKKzAwMTQ2MiAgICAgKGJhc2UgMTYpCQlEaWdpd2VsbCBUZWNobm9sb2d5LCBpbmMKKwkJCQk0RiwgTm8uMSwgUHJvc3Blcml0eSAxc3QgUm9hZAorCQkJCUhzaW5jaHUgU2NpZW5jZSBQYXJrIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtNjMgICAoaGV4KQkJSURDUyBOLlYuCiswMDE0NjMgICAgIChiYXNlIDE2KQkJSURDUyBOLlYuCisJCQkJSGVsbGViZWVtZGVuIDkKKwkJCQlIYXNzZWx0IExpbWJ1cmcgMzUwMAorCQkJCUJFTEdJVU0KKworMDAtMTQtNjQgICAoaGV4KQkJQ3J5cHRvc29mdAorMDAxNDY0ICAgICAoYmFzZSAxNikJCUNyeXB0b3NvZnQKKwkJCQlMZXJtb250b3ZhIHN0ciwgMworCQkJCVBlbnphIHJlZ2lvbiA0NDAwMjYKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMTQtNjUgICAoaGV4KQkJTm92byBOb3JkaXNrIEEvUworMDAxNDY1ICAgICAoYmFzZSAxNikJCU5vdm8gTm9yZGlzayBBL1MKKwkJCQlOb3ZvIEFsbGUKKwkJCQlCYWdzdmFlcmQgIDI4ODAKKwkJCQlERU5NQVJLCisKKzAwLTE0LTY2ICAgKGhleCkJCUtsZWluaGVueiBFbGVrdHJvbmlrIEdtYkgKKzAwMTQ2NiAgICAgKGJhc2UgMTYpCQlLbGVpbmhlbnogRWxla3Ryb25payBHbWJICisJCQkJR3JlaW5lcmJlcmcgMTQKKwkJCQlNdW5pY2ggIDgxMzcxCisJCQkJR0VSTUFOWQorCiswMC0xNC02NyAgIChoZXgpCQlBcnJvd1NwYW4gSW5jLgorMDAxNDY3ICAgICAoYmFzZSAxNikJCUFycm93U3BhbiBJbmMuCisJCQkJNDY5OSBPbGQgSXJvbnNpZGVzIERyLiBTdWl0ZSAxMDAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNjggICAoaGV4KQkJQ2VsUGxhbiBJbnRlcm5hdGlvbmFsLCBJbmMuCiswMDE0NjggICAgIChiYXNlIDE2KQkJQ2VsUGxhbiBJbnRlcm5hdGlvbmFsLCBJbmMuCisJCQkJMTgzNSBBbGV4YW5kZXIgQmVsbCBEcml2ZQorCQkJCXN1aXRlIDIwMAorCQkJCVJlc3RvbiBWQSAyMDE5MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNjkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNDY5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNkEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNDZBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNkIgICAoaGV4KQkJQW5hZ3JhbiwgSW5jLgorMDAxNDZCICAgICAoYmFzZSAxNikJCUFuYWdyYW4sIEluYy4KKwkJCQk1ODAgTm9ydGggUGFzdG9yaWEgQXYKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTZDICAgKGhleCkJCU5ldGdlYXIgSW5jLgorMDAxNDZDICAgICAoYmFzZSAxNikJCU5ldGdlYXIgSW5jLgorCQkJCTQ1MDAgR3JlYXQgQW1lcmljYSBQYXJrd2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTZEICAgKGhleCkJCVJGIFRlY2hub2xvZ2llcworMDAxNDZEICAgICAoYmFzZSAxNikJCVJGIFRlY2hub2xvZ2llcworCQkJCTMxMjUgTiAxMjZ0aCBTdHJlZXQKKwkJCQlCcm9va2ZpZWxkIFdJIDUzMDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC02RSAgIChoZXgpCQlILiBTdG9sbCBHbWJIICYgQ28uIEtHCiswMDE0NkUgICAgIChiYXNlIDE2KQkJSC4gU3RvbGwgR21iSCAmIENvLiBLRworCQkJCVN0b2xsd2VnCisJCQkJUmV1dGxpbmdlbiBEZXV0c2NobGFuZCA3Mjc2MAorCQkJCUdFUk1BTlkKKworMDAtMTQtNkYgICAoaGV4KQkJS29obGVyIENvCiswMDE0NkYgICAgIChiYXNlIDE2KQkJS29obGVyIENvCisJCQkJNDQ0IEhpZ2hsYW5kIERyaXZlCisJCQkJTVMgMDcyCisJCQkJS29obGVyIFdJIDUzMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC03MCAgIChoZXgpCQlQcm9rb20gU29mdHdhcmUgU0EKKzAwMTQ3MCAgICAgKGJhc2UgMTYpCQlQcm9rb20gU29mdHdhcmUgU0EKKwkJCQlBbC4gSmVyb3pvbGltc2tpZSA2NS83OQorCQkJCVdhcnN6YXdhIE1hem93aWVja2llIDAwLTY5NworCQkJCVBPTEFORAorCiswMC0xNC03MSAgIChoZXgpCQlFYXN0ZXJuIEFzaWEgVGVjaG5vbG9neSBMaW1pdGVkCiswMDE0NzEgICAgIChiYXNlIDE2KQkJRWFzdGVybiBBc2lhIFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCTEzRiwgTm8uIDk5LCBTZWMuIDEsIE5hbmthbiBSb2FkLAorCQkJCUx1Y2h1LCBUYW95dWFuIDMzOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtNzIgICAoaGV4KQkJQ2hpbmEgQnJvYWRiYW5kIFdpcmVsZXNzIElQIFN0YW5kYXJkIEdyb3VwCiswMDE0NzIgICAgIChiYXNlIDE2KQkJQ2hpbmEgQnJvYWRiYW5kIFdpcmVsZXNzIElQIFN0YW5kYXJkIEdyb3VwCisJCQkJUC5PLkJPWCA4OCxXZXN0IEhpZ2gtdGVjaAorCQkJCURldmVsb3BtZW50IENlbnRlciwKKwkJCQlYaSdhbiBTaGFhbiBYaSA3MTAwNzUKKwkJCQlDSElOQQorCiswMC0xNC03MyAgIChoZXgpCQlCb29raGFtIEluYworMDAxNDczICAgICAoYmFzZSAxNikJCUJvb2toYW0gSW5jCisJCQkJMTAgQnJld2VyIEh1bnQgV2F5CisJCQkJS2FuYXRhIE9OIEsySyAyQjUKKwkJCQlDQU5BREEKKworMDAtMTQtNzQgICAoaGV4KQkJSzQwIEVsZWN0cm9uaWNzCiswMDE0NzQgICAgIChiYXNlIDE2KQkJSzQwIEVsZWN0cm9uaWNzCisJCQkJNjAwIFRvbGxnYXRlIFJkLiBVbml0IEEKKwkJCQlFbGdpbiBJTCA2MDEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNzUgICAoaGV4KQkJV2lsaW5lIE5ldHdvcmtzLCBJbmMuCiswMDE0NzUgICAgIChiYXNlIDE2KQkJV2lsaW5lIE5ldHdvcmtzLCBJbmMuCisJCQkJNzQxIEFsZXhhbmRlciBSZAorCQkJCVByaW5jZXRvbiBOSiAwODU0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNzYgICAoaGV4KQkJTXVsdGlDb20gSW5kdXN0cmllcyBMaW1pdGVkCiswMDE0NzYgICAgIChiYXNlIDE2KQkJTXVsdGlDb20gSW5kdXN0cmllcyBMaW1pdGVkCisJCQkJUm9vbSAxMjA2LTcsIE1hbmhhdHRhbiBDZW50ZXIsCisJCQkJOCBLd2FpIENoZW9uZyBSZC4KKwkJCQlLd2FpIENodW5nLCBOLlQuICAKKwkJCQlIT05HIEtPTkcKKworMDAtMTQtNzcgICAoaGV4KQkJTmVydGVjICBJbmMuCiswMDE0NzcgICAgIChiYXNlIDE2KQkJTmVydGVjICBJbmMuCisJCQkJOTUwIENvd2llIHN0LgorCQkJCUdyYW5ieSBRdWViZWMgSjJKIDFQMgorCQkJCUNBTkFEQQorCiswMC0xNC03OCAgIChoZXgpCQlTaGVuWmhlbiBUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMTQ3OCAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQkzL0YsQmxkZy5SMS1CLEhpLXRlY2ggSW5kdXN0cmlhbCBQYXJrLAorCQkJCVNoZW5uYW4gUmQuCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTE0LTc5ICAgKGhleCkJCU5FQyBNYWdudXMgQ29tbXVuaWNhdGlvbnMsTHRkLgorMDAxNDc5ICAgICAoYmFzZSAxNikJCU5FQyBNYWdudXMgQ29tbXVuaWNhdGlvbnMsTHRkLgorCQkJCTQtMjgKKwkJCQlNaXRhIDEtQ2hvbWUKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA4LTAwNzMKKwkJCQlKQVBBTgorCiswMC0xNC03QSAgIChoZXgpCQlFdWJ1cyBHbWJICiswMDE0N0EgICAgIChiYXNlIDE2KQkJRXVidXMgR21iSAorCQkJCUdvbGxpZXJzdHIuIDcwICBBdWZnYW5nIEUgIDQuU3RvY2sKKwkJCQlNdW5pY2ggQmF2YXJpYSA4MDMzOQorCQkJCUdFUk1BTlkKKworMDAtMTQtN0IgICAoaGV4KQkJSXRlcmlzLCBJbmMuCiswMDE0N0IgICAgIChiYXNlIDE2KQkJSXRlcmlzLCBJbmMuCisJCQkJMTUxNSBTLiBNYW5jaGVzdGVyIEF2ZS4KKwkJCQlBbmFoZWltIENBIDkyODAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC03QyAgIChoZXgpCQkzQ29tIEx0ZAorMDAxNDdDICAgICAoYmFzZSAxNikJCTNDb20gTHRkCisJCQkJUGVvcGxlYnVpbGRpbmcgMgorCQkJCVBlb3BsZWJ1aWxkaW5nIEVzdGF0ZSwgTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNC03RCAgIChoZXgpCQlBZW9uIERpZ2l0YWwgSW50ZXJuYXRpb25hbAorMDAxNDdEICAgICAoYmFzZSAxNikJCUFlb24gRGlnaXRhbCBJbnRlcm5hdGlvbmFsCisJCQkJMzEtNiwgVGhlIEJ1bmQgQ2VudGVyCisJCQkJMjIyIFlhbiBBbiBFLiBSZAorCQkJCVNoYW5naGFpIFNIIDIwMDAwMgorCQkJCUNISU5BCisKKzAwLTE0LTdFICAgKGhleCkJCUlubmVyV2lyZWxlc3MKKzAwMTQ3RSAgICAgKGJhc2UgMTYpCQlJbm5lcldpcmVsZXNzCisJCQkJMTE1NSBLYXMgRHJpdmUsIFN1aXRlIDIwMAorCQkJCVJpY2hhcmRzb24gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTdGICAgKGhleCkJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCiswMDE0N0YgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKwkJCQlQcmlucyBCb3VkZXdpam5sYWFuIDQ3CisJCQkJRWRlZ2VtIEFudHdlcnAgQi0yNjUwCisJCQkJQkVMR0lVTQorCiswMC0xNC04MCAgIChoZXgpCQlIaXRhY2hpLUxHIERhdGEgU3RvcmFnZSBLb3JlYSwgSW5jCiswMDE0ODAgICAgIChiYXNlIDE2KQkJSGl0YWNoaS1MRyBEYXRhIFN0b3JhZ2UgS29yZWEsIEluYworCQkJCTE5LTEsQ2hlb25naG8tcmkKKwkJCQlKaW53dXktTXl1bgorCQkJCVB5dW5ndGFpayBLeXVuZ2dpLURvIDQ1MS03MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtODEgICAoaGV4KQkJTXVsdGlsaW5rIEluYworMDAxNDgxICAgICAoYmFzZSAxNikJCU11bHRpbGluayBJbmMKKwkJCQk1ODAgVGVybmVzIEF2ZQorCQkJCUVseXJpYSBPSCA0NDAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtODIgICAoaGV4KQkJR29CYWNrVFYsIEluYworMDAxNDgyICAgICAoYmFzZSAxNikJCUdvQmFja1RWLCBJbmMKKwkJCQk5MzcgSGFtaWx0b24gQXZlbnVlCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtODMgICAoaGV4KQkJZVhTIEluYy4KKzAwMTQ4MyAgICAgKGJhc2UgMTYpCQllWFMgSW5jLgorCQkJCTE5MDAgQWxhbWVkYSBkZSBsYXMgUHVsZ2FzCisJCQkJU3VpdGUgMTAzCisJCQkJU2FuIE1hdGVvIENBIDk0NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC04NCAgIChoZXgpCQlDZXJtYXRlIFRlY2hub2xvZ2llcyBJbmMuCiswMDE0ODQgICAgIChiYXNlIDE2KQkJQ2VybWF0ZSBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTdGLTEsIE5vIDE2OCBMaWVuLUNoZW4gUmQuCisJCQkJQ2h1bmctSG8gQ2l0eSBUYWlwZWkgQ291bnR5IAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtODUgICAoaGV4KQkJR2lnYS1CeXRlCiswMDE0ODUgICAgIChiYXNlIDE2KQkJR2lnYS1CeXRlCisJCQkJTm8uMjE1LE5hbi1QaW5nIFJvYWQsCisJCQkJUGluLUplbiBUYW95dWFuIDMyNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtODYgICAoaGV4KQkJRWNobyBEaWdpdGFsIEF1ZGlvIENvcnBvcmF0aW9uCiswMDE0ODYgICAgIChiYXNlIDE2KQkJRWNobyBEaWdpdGFsIEF1ZGlvIENvcnBvcmF0aW9uCisJCQkJNjQ1MCBWaWEgUmVhbCAjMQorCQkJCUNhcnBpbnRlcmlhIENBIDkzMDEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC04NyAgIChoZXgpCQlBbWVyaWNhbiBUZWNobm9sb2d5IEludGVncmF0b3JzCiswMDE0ODcgICAgIChiYXNlIDE2KQkJQW1lcmljYW4gVGVjaG5vbG9neSBJbnRlZ3JhdG9ycworCQkJCTEzNTggUm9zYWxpYSBBdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtODggICAoaGV4KQkJQWtvcnJpCiswMDE0ODggICAgIChiYXNlIDE2KQkJQWtvcnJpCisJCQkJMzA1IEZvc3RlciBTdHJlZXQKKwkJCQlMaXR0bGV0b24gTUEgMDE0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTg5ICAgKGhleCkJCUIxNTQwMjEwMCAtIEpBTkRFSSwgUy5MLgorMDAxNDg5ICAgICAoYmFzZSAxNikJCUIxNTQwMjEwMCAtIEpBTkRFSSwgUy5MLgorCQkJCVBPTC4gSU5ELiBQT0NPTUFDTywgRS0yOAorCQkJCUxBIENPUlXRQSAgMTUxOTAKKwkJCQlTUEFJTgorCiswMC0xNC04QSAgIChoZXgpCQlFbGluIEViZyBUcmFjdGlvbiBHbWJoCiswMDE0OEEgICAgIChiYXNlIDE2KQkJRWxpbiBFYmcgVHJhY3Rpb24gR21iaAorCQkJCUN1bWJlcmxhbmRzdHJhc3NlIDMyCisJCQkJVmllbm5hICAxMTQwCisJCQkJQVVTVFJJQQorCiswMC0xNC04QiAgIChoZXgpCQlHbG9ibyBFbGVjdHJvbmljIEdtYkggJiBDby4gS0cKKzAwMTQ4QiAgICAgKGJhc2UgMTYpCQlHbG9ibyBFbGVjdHJvbmljIEdtYkggJiBDby4gS0cKKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDRhCisJCQkJTmllZGVybGF1ZXIgQmF5ZXJuIDk3NjE4CisJCQkJR0VSTUFOWQorCiswMC0xNC04QyAgIChoZXgpCQlGb3J0cmVzcyBUZWNobm9sb2dpZXMKKzAwMTQ4QyAgICAgKGJhc2UgMTYpCQlGb3J0cmVzcyBUZWNobm9sb2dpZXMKKwkJCQkyIFRlY2hub2xvZ3kgUGFyayBEcml2ZQorCQkJCVdlc3Rmb3JkIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC04RCAgIChoZXgpCQlDdWJpYyBEZWZlbnNlIFNpbXVsYXRpb24gU3lzdGVtcworMDAxNDhEICAgICAoYmFzZSAxNikJCUN1YmljIERlZmVuc2UgU2ltdWxhdGlvbiBTeXN0ZW1zCisJCQkJMjAwMSBXLiBPYWtyaWRnZSBSb2FkCisJCQkJT3JsYW5kbyBGTCAzMjgwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtOEUgICAoaGV4KQkJVGVsZSBQb3dlciBJbmMuCiswMDE0OEUgICAgIChiYXNlIDE2KQkJVGVsZSBQb3dlciBJbmMuCisJCQkJMS00Ni0xNSNCMUYKKwkJCQlBc2FoaWdhb2thCisJCQkJTmVyaW1hLWt1IFRva3lvIDE3Ni0wMDA1CisJCQkJSkFQQU4KKworMDAtMTQtOEYgICAoaGV4KQkJUHJvdHJvbmljIChGYXIgRWFzdCkgTHRkLgorMDAxNDhGICAgICAoYmFzZSAxNikJCVByb3Ryb25pYyAoRmFyIEVhc3QpIEx0ZC4KKwkJCQlSbS4gMjUwNCwgTmFueWFuZyBQbGF6YSwKKwkJCQk1NyBIdW5nIFRvIFJvYWQKKwkJCQlLd3VuIFRvbmcgS293bG9vbiA4NTIKKwkJCQlIT05HIEtPTkcKKworMDAtMTQtOTAgICAoaGV4KQkJQVNQIENvcnBvcmF0aW9uCiswMDE0OTAgICAgIChiYXNlIDE2KQkJQVNQIENvcnBvcmF0aW9uCisJCQkJNDY1IEluZHVzdHJpYWwgUGFyayBSb2FkCisJCQkJSGFydHdlbGwgR0EgMzA2NDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTkxICAgKGhleCkJCURhbmllbHMgRWxlY3Ryb25pY3MgTHRkLgorMDAxNDkxICAgICAoYmFzZSAxNikJCURhbmllbHMgRWxlY3Ryb25pY3MgTHRkLgorCQkJCTQzIEVyaWUgU3QKKwkJCQlWaWN0b3JpYSBCQyBWOFYgMVA4CisJCQkJQ0FOQURBCisKKzAwLTE0LTkyICAgKGhleCkJCUxpdGVvbiwgTW9iaWxlIE1lZGlhIFNvbHV0aW9uIFNCVQorMDAxNDkyICAgICAoYmFzZSAxNikJCUxpdGVvbiwgTW9iaWxlIE1lZGlhIFNvbHV0aW9uIFNCVQorCQkJCTRGLCAzLCBMYW5lIDc2OCwgU2VjLiA0LAorCQkJCVBhdGVoIFJvYWQsCisJCQkJVGFpcGVpICAxMTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTkzICAgKGhleCkJCVN5c3RpbWF4IFNvbHV0aW9ucworMDAxNDkzICAgICAoYmFzZSAxNikJCVN5c3RpbWF4IFNvbHV0aW9ucworCQkJCTEzMDAgRSBMb29rb3V0IERyaXZlCisJCQkJUmljaGFyZHNvbiBUZXhhcyA3NTA4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtOTQgICAoaGV4KQkJRVNVIEFHCiswMDE0OTQgICAgIChiYXNlIDE2KQkJRVNVIEFHCisJCQkJTHVrYXNzdHJhc3NlIDI5CisJCQkJU3QuIEdhbGxlbiAgOTAwOAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE0LTk1ICAgKGhleCkJCTJXaXJlLCBJbmMuCiswMDE0OTUgICAgIChiYXNlIDE2KQkJMldpcmUsIEluYy4KKwkJCQkxNzA0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC05NiAgIChoZXgpCQlQaG9uaWMgQ29ycC4KKzAwMTQ5NiAgICAgKGJhc2UgMTYpCQlQaG9uaWMgQ29ycC4KKwkJCQkxMnRoRmwsIDU5IFR1bmcgSHNpbmcgUmQKKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtOTcgICAoaGV4KQkJWkhJWVVBTiBFbGV0cm9uaWNzIGNvLixsdGQuCiswMDE0OTcgICAgIChiYXNlIDE2KQkJWkhJWVVBTiBFbGV0cm9uaWNzIGNvLixsdGQuCisJCQkJMiBGbG9vciwgTk8uMyBCdWlsZGluZywgSHVhbmd6aG91IEluZHVzdHJpYWwgRXN0YXRlLCBDaGViZWkgUm9hZCwKKwkJCQlUaWFuaGUKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDY2MAorCQkJCUNISU5BCisKKzAwLTE0LTk4ICAgKGhleCkJCVZpa2luZyBEZXNpZ24gVGVjaG5vbG9neQorMDAxNDk4ICAgICAoYmFzZSAxNikJCVZpa2luZyBEZXNpZ24gVGVjaG5vbG9neQorCQkJCTJGLCBOby4yLCBMYW5lIDQyLAorCQkJCUhvdS1HYW5nIFN0cmVldCwgU2hpaC1MaW4gRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtOTkgICAoaGV4KQkJSGVsaWNvbW0gSW5jCiswMDE0OTkgICAgIChiYXNlIDE2KQkJSGVsaWNvbW0gSW5jCisJCQkJMTk0NyBDYW1pbm8gVmlkYSBSb2JsZQorCQkJCVN1aXRlIDEwOQorCQkJCUNhcmxzYmFkIENBIDkyMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC05QSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMTQ5QSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2MDAgTiBVcyBId3kgNDUKKwkJCQlSbSBNVzExMworCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtOUIgICAoaGV4KQkJTm9rb3RhIENvbW11bmljYXRpb25zLCBMTEMKKzAwMTQ5QiAgICAgKGJhc2UgMTYpCQlOb2tvdGEgQ29tbXVuaWNhdGlvbnMsIExMQworCQkJCTIwMCBHYWxsZXJpYSBQYXJrd2F5CisJCQkJU3VpdGUgMTgyMAorCQkJCUF0bGFudGEgR2VvcmdpYSAzMDMzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtOUMgICAoaGV4KQkJSEYgQ29tcGFueQorMDAxNDlDICAgICAoYmFzZSAxNikJCUhGIENvbXBhbnkKKwkJCQlOb2RlIFBhcmsgVG91cmFpbmUKKwkJCQlCUDEgVGF1eGlnbnkgIDM3MzEwCisJCQkJRlJBTkNFCisKKzAwLTE0LTlEICAgKGhleCkJCVNvdW5kIElEIEluYy4KKzAwMTQ5RCAgICAgKGJhc2UgMTYpCQlTb3VuZCBJRCBJbmMuCisJCQkJMzQzMCBXZXN0IEJheXNob3JlIFJvYWQKKwkJCQlQYWxvIEFsdG8gQ2FsaWZvcm5pYSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtOUUgICAoaGV4KQkJVWJPTkUgQ28uLCBMdGQKKzAwMTQ5RSAgICAgKGJhc2UgMTYpCQlVYk9ORSBDby4sIEx0ZAorCQkJCVNoaW55b3VuZyBCLkQuIDYwMiwgU2VvSHllb24yLURvbmcKKwkJCQlCdW5kYW5nLUd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZy1kbyA0NjMtODI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTlGICAgKGhleCkJCVN5c3RlbSBhbmQgQ2hpcHMsIEluYy4KKzAwMTQ5RiAgICAgKGJhc2UgMTYpCQlTeXN0ZW0gYW5kIENoaXBzLCBJbmMuCisJCQkJNEYsTm8uIDEsIExhbmUgNTAsIE5hbkthbmcgUm9hZCwgU2VjdGlvbiAzLAorCQkJCVRhaXBlaSAgMTE1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC1BMCAgIChoZXgpCQlBY2NzZW5zZSwgSW5jLgorMDAxNEEwICAgICAoYmFzZSAxNikJCUFjY3NlbnNlLCBJbmMuCisJCQkJNDYwIFdhcmQgRHJpdmUKKwkJCQlTdWl0ZSBFMgorCQkJCVNhbnRhIEJhcmJhcmEgQ2FsaWZvcm5pYSA5MzExMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQTEgICAoaGV4KQkJU3luY2hyb25vdXMgQ29tbXVuaWNhdGlvbiBDb3JwCiswMDE0QTEgICAgIChiYXNlIDE2KQkJU3luY2hyb25vdXMgQ29tbXVuaWNhdGlvbiBDb3JwCisJCQkJOSBmbG9vciwgTm8xNjgsIFJ1ZWlndWFuZyBSb2FkLCBOZWlodSBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC1BMiAgIChoZXgpCQlDb3JlIE1pY3JvIFN5c3RlbXMgSW5jLgorMDAxNEEyICAgICAoYmFzZSAxNikJCUNvcmUgTWljcm8gU3lzdGVtcyBJbmMuCisJCQkJV2FqdW4gQmxkZy4gNkYsIDItMjItMiwgS29pc2hpa2F3YQorCQkJCUJ1bmt5by1LdSBUb2t5byAxMTItMDAwMgorCQkJCUpBUEFOCisKKzAwLTE0LUEzICAgKGhleCkJCVZpdGVsZWMgQlYKKzAwMTRBMyAgICAgKGJhc2UgMTYpCQlWaXRlbGVjIEJWCisJCQkJa2FwaXR0ZWx3ZWcgMTgKKwkJCQlQLk8uQm94IDY1NDMKKwkJCQlCcmVkYSBOQiBOTCA0ODI3IEhHCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTQtQTQgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMTRBNCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCTVGLTEsIDUgSFNJTi1BTiBST0FECisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOQ0hVICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LUE1ICAgKGhleCkJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxNEE1ICAgICAoYmFzZSAxNikJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLiAxIEplbiBBaSBSb2FkCisJCQkJSHNpbmNodSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIdWtvdSwgSHNpbmNodSAgMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC1BNiAgIChoZXgpCQlUZXJhbmV0aWNzLCBJbmMuCiswMDE0QTYgICAgIChiYXNlIDE2KQkJVGVyYW5ldGljcywgSW5jLgorCQkJCTM5NjUgRnJlZWRvbSBDaXJjbGUKKwkJCQkgU2l4dGggRmxvb3IKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQTcgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTRBNyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgMTc5MFYKKwkJCQlERU5NQVJLCisKKzAwLTE0LUE4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTRBOCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUE5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTRBOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUFBICAgKGhleCkJCUFzaGx5IEF1ZGlvLCBJbmMuCiswMDE0QUEgICAgIChiYXNlIDE2KQkJQXNobHkgQXVkaW8sIEluYy4KKwkJCQk4NDcgSG9sdCBSb2FkCisJCQkJV2Vic3RlciBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQUIgICAoaGV4KQkJU2VuaGFpIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTRBQiAgICAgKGJhc2UgMTYpCQlTZW5oYWkgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCVJtLjEwQS4gMjgvRi5TRUdQbGF6YSBIdWFxaWFuZ2JlaSBSb2FkCisJCQkJU2hlbmd6aGVuIEd1YW5nZG9uZyA1MTgwMzEKKwkJCQlDSElOQQorCiswMC0xNC1BQyAgIChoZXgpCQlCb3VudGlmdWwgV2lGaQorMDAxNEFDICAgICAoYmFzZSAxNikJCUJvdW50aWZ1bCBXaUZpCisJCQkJNzA3IFdlc3QgNzAwIFNvdXRoCisJCQkJV29vZHMgQ3Jvc3MgVXRhaCA4NDA4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQUQgICAoaGV4KQkJR2Fzc25lciBXaWVnZS0gdS4gTWXDn3RlY2huaWsgR21iSAorMDAxNEFEICAgICAoYmFzZSAxNikJCUdhc3NuZXIgV2llZ2UtIHUuIE1lw590ZWNobmlrIEdtYkgKKwkJCQlN77+9bmNobmVyIEJ1bmRlc3N0cmHvv71lIDEyMyAgIAorCQkJCVNhbHpidXJnICBBLTUwMjAKKwkJCQlBVVNUUklBCisKKzAwLTE0LUFFICAgKGhleCkJCVdpemxvZ2ljcyBDby4sIEx0ZC4KKzAwMTRBRSAgICAgKGJhc2UgMTYpCQlXaXpsb2dpY3MgQ28uLCBMdGQuCisJCQkJUm0jMTMyMSwgU2FtY2hhbmcgUGxhemEsIDE3MywKKwkJCQlEb3doYS1Eb25nIE1hcG8tR3UsCisJCQkJU2VvdWwgIDEyMS03NDUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtQUYgICAoaGV4KQkJRGF0YXN5bSBJbmMuCiswMDE0QUYgICAgIChiYXNlIDE2KQkJRGF0YXN5bSBJbmMuCisJCQkJNDM1IEVsZ2luIFN0cmVldAorCQkJCUJyYW50Zm9yZCBPbnRhcmlvIE4zUzdQNQorCQkJCUNBTkFEQQorCiswMC0xNC1CMCAgIChoZXgpCQlOYWVpbCBDb21tdW5pdHkKKzAwMTRCMCAgICAgKGJhc2UgMTYpCQlOYWVpbCBDb21tdW5pdHkKKwkJCQkjNTA2IEFjZVR3aW4gVG93ZXIgMSwgR3Vyby1Eb25nCisJCQkJU2VvdWwgR3Vyby1HdSAxNTI3NzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtQjEgICAoaGV4KQkJQXZpdGVjIEFCCiswMDE0QjEgICAgIChiYXNlIDE2KQkJQXZpdGVjIEFCCisJCQkJQm94IDcxMzkKKwkJCQlTVU5EQllCRVJHICBTRS0xNzQgMDcKKwkJCQlTV0VERU4KKworMDAtMTQtQjIgICAoaGV4KQkJbUN1YmVsb2dpY3MgQ29ycG9yYXRpb24KKzAwMTRCMiAgICAgKGJhc2UgMTYpCQltQ3ViZWxvZ2ljcyBDb3Jwb3JhdGlvbgorCQkJCTRGLCBVbmlib29rcyBCL0QsIDUxNC0xLCBEb2dvay1Eb25nLCBLYW5nTmFtCisJCQkJU2VvdWwgIDEzNS0yNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtQjMgICAoaGV4KQkJQ29yZVN0YXIgSW50ZXJuYXRpb25hbCBDb3JwCiswMDE0QjMgICAgIChiYXNlIDE2KQkJQ29yZVN0YXIgSW50ZXJuYXRpb25hbCBDb3JwCisJCQkJMTA0NCBTYW5keSBIaWxsIFJkCisJCQkJSXJ3aW4gUEEgMTU2NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUI0ICAgKGhleCkJCUdlbmVyYWwgRHluYW1pY3MgVW5pdGVkIEtpbmdkb20gTHRkCiswMDE0QjQgICAgIChiYXNlIDE2KQkJR2VuZXJhbCBEeW5hbWljcyBVbml0ZWQgS2luZ2RvbSBMdGQKKwkJCQlDYXN0bGVoYW0gUm9hZAorCQkJCVN0IExlb25hcmRzIG9uIFNlYSBFYXN0IFN1c3NleCBUTjM4IDlOSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE0LUI1ICAgKGhleCkJCVBIWVNJT01FVFJJWCxJTkMKKzAwMTRCNSAgICAgKGJhc2UgMTYpCQlQSFlTSU9NRVRSSVgsSU5DCisJCQkJMTAxIEJJTExFUklDQSBBVkUgIzUKKwkJCQlOLiBCSUxMRVJJQ0EgTUEgMDE4NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUI2ICAgKGhleCkJCUVuc3dlciBUZWNobm9sb2d5IEluYy4KKzAwMTRCNiAgICAgKGJhc2UgMTYpCQlFbnN3ZXIgVGVjaG5vbG9neSBJbmMuCisJCQkJMUYgTm8uNzAgU2VjLjIgQ2h1bmcgU2h1biBTdC4KKwkJCQlUYWlwZWkgIDExNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtQjcgICAoaGV4KQkJQVIgSW5mb3RlayBJbmMuCiswMDE0QjcgICAgIChiYXNlIDE2KQkJQVIgSW5mb3RlayBJbmMuCisJCQkJOUYsIE5vLjE4NSwgR2FuZ1FpYW4gUm9hZAorCQkJCU5laUh1IFRlY2hub2xvZ3kgUGFyaywKKwkJCQlUYWlwZWkgIDExNDk0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC1COCAgIChoZXgpCQlIaWxsLVJvbQorMDAxNEI4ICAgICAoYmFzZSAxNikJCUhpbGwtUm9tCisJCQkJMTEyNSBFLiBQZWFybCBTdHJlZXQKKwkJCQlCYXRlc3ZpbGxlIElOIDQ3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1COSAgIChoZXgpCQlNU1RBUiBTRU1JQ09ORFVDVE9SCiswMDE0QjkgICAgIChiYXNlIDE2KQkJTVNUQVIgU0VNSUNPTkRVQ1RPUgorCQkJCTExLTEzIHJ1ZSBSZW7pIEphY3F1ZXMKKwkJCQlJc3N5IGxlcyBNb3VsaW5lYXV4ICA5MjEzMAorCQkJCUZSQU5DRQorCiswMC0xNC1CQSAgIChoZXgpCQlDYXJ2ZXJzIFNBIGRlIENWCiswMDE0QkEgICAgIChiYXNlIDE2KQkJQ2FydmVycyBTQSBkZSBDVgorCQkJCUFsdmFyZXogZGVsIENhc3RpbGxvIDE1NTAKKwkJCQlDaGFwdWx0ZXBlYyBDb3VudHJ5CisJCQkJR3VhZGFsYWphcmEgSmFsaXNjbyA0NDYyMAorCQkJCU1FWElDTworCiswMC0xNC1CQiAgIChoZXgpCQlPcGVuIEludGVyZmFjZSBOb3J0aCBBbWVyaWNhCiswMDE0QkIgICAgIChiYXNlIDE2KQkJT3BlbiBJbnRlcmZhY2UgTm9ydGggQW1lcmljYQorCQkJCTUwNiAybmQgQXZlbnVlLCBTdWl0ZSA0MjAKKwkJCQlTZWF0dGxlIFdBIDk4MTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1CQyAgIChoZXgpCQlTWU5FQ1RJQyBURUxFQ09NIEVYUE9SVFMgUFZULiBMVEQuCiswMDE0QkMgICAgIChiYXNlIDE2KQkJU1lORUNUSUMgVEVMRUNPTSBFWFBPUlRTIFBWVC4gTFRELgorCQkJCTE5NiwgMXN0IE1haW4sIDNyZCBTdGFnZSwgNHRoIEJsb2NrCisJCQkJQmFzYXZlc2h3YXIgTmFnYXIKKwkJCQlCQU5HQUxPUkUgIDU2MDA3OQorCQkJCUlORElBCisKKzAwLTE0LUJEICAgKGhleCkJCWluY05FVFdPUktTLCBJbmMKKzAwMTRCRCAgICAgKGJhc2UgMTYpCQlpbmNORVRXT1JLUywgSW5jCisJCQkJMTk4IEJyaWdodG9uIEF2ZQorCQkJCUxvbmcgQnJhbmNoIE5KIDA3NzQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1CRSAgIChoZXgpCQlXaW5rIGNvbW11bmljYXRpb24gdGVjaG5vbG9neSBDTy5MVEQKKzAwMTRCRSAgICAgKGJhc2UgMTYpCQlXaW5rIGNvbW11bmljYXRpb24gdGVjaG5vbG9neSBDTy5MVEQKKwkJCQlIdWlqaWFuZyBJbmQgQmxkaW5nIERhc2hpIFRvd24KKwkJCQlQYW55dSBEaXN0cmljdAorCQkJCUd1YW5nIHpob3UgR3VhbmcgZG9uZyA1MTE0MzAKKwkJCQlDSElOQQorCiswMC0xNC1CRiAgIChoZXgpCQlDaXNjby1MaW5rc3lzIExMQworMDAxNEJGICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMgTExDCisJCQkJMTIxIFRoZW9yeSBEci4KKwkJCQlJcnZpbmUgQ0EgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUMwICAgKGhleCkJCVN5bXN0cmVhbSBUZWNobm9sb2d5IEdyb3VwIEx0ZAorMDAxNEMwICAgICAoYmFzZSAxNikJCVN5bXN0cmVhbSBUZWNobm9sb2d5IEdyb3VwIEx0ZAorCQkJCUxldmVsIDEsIDMgQ2hlc3RlciBTdHJlZXQKKwkJCQlPYWtsZWlnaCBWaWN0b3JpYSAzMTY2CisJCQkJQVVTVFJBTElBCisKKzAwLTE0LUMxICAgKGhleCkJCVUuUy4gUm9ib3RpY3MgQ29ycG9yYXRpb24KKzAwMTRDMSAgICAgKGJhc2UgMTYpCQlVLlMuIFJvYm90aWNzIENvcnBvcmF0aW9uCisJCQkJOTM1IE5hdGlvbmFsIFBhcmt3YXkKKwkJCQlTY2hhdW1idXJnIElMIDYwMTczLTUxNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUMyICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxNEMyICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFRvbWJhbGwgUGFya3dheQorCQkJCU1TMDcwNDA1CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQzMgICAoaGV4KQkJU2VhZ2F0ZSBUZWNobm9sb2d5IExMQworMDAxNEMzICAgICAoYmFzZSAxNikJCVNlYWdhdGUgVGVjaG5vbG9neSBMTEMKKwkJCQkxMjgwIERpc2MgRHJpdmUKKwkJCQlTaGFrb3BlZSBNTiA1NTM3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQzQgICAoaGV4KQkJVml0ZWxjb20gTW9iaWxlIFRlY2hub2xvZ3kKKzAwMTRDNCAgICAgKGJhc2UgMTYpCQlWaXRlbGNvbSBNb2JpbGUgVGVjaG5vbG9neQorCQkJCVBUQSwgQXZkYSwgSnVhbiBM83BleiBQZfFhbHZlciwgbrogNworCQkJCTI5NTkwLCBDYW1wYW5pbGxhcworCQkJCUNhbXBhbmlsbGFzLiBNYWxhZ2EuIAorCQkJCVNQQUlOCisKKzAwLTE0LUM1ICAgKGhleCkJCUFsaXZlIFRlY2hub2xvZ2llcyBQdHkgTHRkCiswMDE0QzUgICAgIChiYXNlIDE2KQkJQWxpdmUgVGVjaG5vbG9naWVzIFB0eSBMdGQKKwkJCQkxMSBUZWNobm9sb2d5IERyaXZlCisJCQkJQXJ1bmRlbCBRdWVlbnNsYW5kIDQyMTQKKwkJCQlBVVNUUkFMSUEKKworMDAtMTQtQzYgICAoaGV4KQkJUXVpeGFudCBMdGQKKzAwMTRDNiAgICAgKGJhc2UgMTYpCQlRdWl4YW50IEx0ZAorCQkJCTYxQSBNb3VudCBQbGVhc2FudAorCQkJCUJpZ2dpbiBIaWxsCisJCQkJRW5nbGFuZCBLZW50IFROMTYgM1RQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTQtQzcgICAoaGV4KQkJTm9ydGVsCiswMDE0QzcgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTQtQzggICAoaGV4KQkJQ29udGVtcG9yYXJ5IFJlc2VhcmNoIENvcnAKKzAwMTRDOCAgICAgKGJhc2UgMTYpCQlDb250ZW1wb3JhcnkgUmVzZWFyY2ggQ29ycAorCQkJCTE3NjMwIERhdmVucG9ydCBSZAorCQkJCVNURSAxMTMKKwkJCQlEYWxsYXMgVFggNzUyNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUM5ICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorMDAxNEM5ICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorCQkJCTE3NDUgVGVjaG5vbG9neSBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQ0EgICAoaGV4KQkJS2V5IFJhZGlvIFN5c3RlbXMgTGltaXRlZAorMDAxNENBICAgICAoYmFzZSAxNikJCUtleSBSYWRpbyBTeXN0ZW1zIExpbWl0ZWQKKwkJCQlWZW51cyBIb3VzZQorCQkJCUNhbGxldmEgUGFyaworCQkJCUFsZGVybWFzdG9uIEJlcmtzaGlyZSBSRzcgOERBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTQtQ0IgICAoaGV4KQkJTGlmZVN5bmMgQ29ycG9yYXRpb24KKzAwMTRDQiAgICAgKGJhc2UgMTYpCQlMaWZlU3luYyBDb3Jwb3JhdGlvbgorCQkJCTEgRSBCcm93YXJkIEJvdWxldmFyZCwgU3VpdGUgMTcwMQorCQkJCUZvcnQgTGF1ZGVyZGFsZSBGbG9yaWRhIDMzMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1DQyAgIChoZXgpCQlaZXRlYywgSW5jLgorMDAxNENDICAgICAoYmFzZSAxNikJCVpldGVjLCBJbmMuCisJCQkJODIyNiBCcmFja2VuIFBsYWNlIFNFCisJCQkJU25vcXVhbG1pZSBXQSA5ODA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQ0QgICAoaGV4KQkJRGlnaXRhbFpvbmUgQ28uLCBMdGQuCiswMDE0Q0QgICAgIChiYXNlIDE2KQkJRGlnaXRhbFpvbmUgQ28uLCBMdGQuCisJCQkJTm8uIDEwMDEgRSZDIFZlbnR1cmVEcmVhbVRvd2VyMgorCQkJCTE5Ny0xMCBHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC1DRSAgIChoZXgpCQlORiBDT1JQT1JBVElPTgorMDAxNENFICAgICAoYmFzZSAxNikJCU5GIENPUlBPUkFUSU9OCisJCQkJNi0zLTIwLCBUc3VuYXNoaW1hLWhpZ2FzaGkKKwkJCQlLb2hva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjMtODUwOAorCQkJCUpBUEFOCisKKzAwLTE0LUNGICAgKGhleCkJCUlOVklTSU8gQ29tbXVuaWNhdGlvbnMKKzAwMTRDRiAgICAgKGJhc2UgMTYpCQlJTlZJU0lPIENvbW11bmljYXRpb25zCisJCQkJU3RhbWhvbG1lbiAxNTcKKwkJCQlIdmlkb3ZyZSAgMjY1MAorCQkJCURFTk1BUksKKworMDAtMTQtRDAgICAoaGV4KQkJQlRJIFN5c3RlbXMgSW5jLgorMDAxNEQwICAgICAoYmFzZSAxNikJCUJUSSBTeXN0ZW1zIEluYy4KKwkJCQk1MCBOb3J0aHNpZGUgUm9hZAorCQkJCU90dGF3YSBPbnRhcmlvIEsySCA1WjYKKwkJCQlDQU5BREEKKworMDAtMTQtRDEgICAoaGV4KQkJVFJFTkRuZXQKKzAwMTREMSAgICAgKGJhc2UgMTYpCQlUUkVORG5ldAorCQkJCTIwNjc1IE1hbmhhdHRhbiBQbGFjZQorCQkJCVRvcnJhbmNlIENBIDkwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1EMiAgIChoZXgpCQlLWVVLSSBDT1JQT1JBVElPTgorMDAxNEQyICAgICAoYmFzZSAxNikJCUtZVUtJIENPUlBPUkFUSU9OCisJCQkJNC0xOS0xOCBTSElNSVpVLE1JTkFNSS1LVQorCQkJCUZVS1VPS0EgIDgxNS0wMDMxCisJCQkJSkFQQU4KKworMDAtMTQtRDMgICAoaGV4KQkJU0VQU0EKKzAwMTREMyAgICAgKGJhc2UgMTYpCQlTRVBTQQorCQkJCWNhbGxlIEFsYmF0cm9zLCA3IHkgOQorCQkJCVBvbC4gSW5kLiBMYSBFc3RhY2nzbgorCQkJCVBJTlRPIE1hZHJpZCAyODMyMAorCQkJCVNQQUlOCisKKzAwLTE0LUQ0ICAgKGhleCkJCUsgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxNEQ0ICAgICAoYmFzZSAxNikJCUsgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTMyNSBHYW5iYXJhCisJCQkJS2FtaS1tYWNoaQorCQkJCUthbWktZ3VuIE1peWFnaS1rZW4gOTgxLTQyNjMKKwkJCQlKQVBBTgorCiswMC0xNC1ENSAgIChoZXgpCQlEYXRhbmcgVGVsZWNvbSBUZWNobm9sb2d5IENPLiAsIExDRCxPcHRpY2FsIENvbW11bmljYXRpb24gQnIKKzAwMTRENSAgICAgKGJhc2UgMTYpCQlEYXRhbmcgVGVsZWNvbSBUZWNobm9sb2d5IENPLiAsIExDRCxPcHRpY2FsIENvbW11bmljYXRpb24gQnIKKwkJCQkzcmQgRmxvb3IsQnVpbGRpbmcgOCxIaS1UZWNoIEluY3ViYXRpb24gUGFyaywKKwkJCQlOYW55YW54aWFuLFRpYW5mdSBBdmUsY2hlbmdkdSBIaS1UZWNoIFpvbmUsCisJCQkJQ2hlbmdEdSBTaUNodWFuIDYxMDA0MQorCQkJCUNISU5BCisKKzAwLTE0LUQ2ICAgKGhleCkJCUplb25nbWluIEVsZWN0cm9uaWNzIENvLixMdGQuCiswMDE0RDYgICAgIChiYXNlIDE2KQkJSmVvbmdtaW4gRWxlY3Ryb25pY3MgQ28uLEx0ZC4KKwkJCQkjNzEwLCBCeXVrc2FuIERpZ2l0YWwgVmFsbGV5IDIsCisJCQkJS2FzYW4tRG9uZywgS2V1bWNoZW9uLUd1LAorCQkJCVNlb3VsICAxNTMgNzgzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LUQ3ICAgKGhleCkJCURhdGFzdG9yZSBUZWNobm9sb2d5IENvcnAKKzAwMTRENyAgICAgKGJhc2UgMTYpCQlEYXRhc3RvcmUgVGVjaG5vbG9neSBDb3JwCisJCQkJOUYsIE5PLjEwLCBTRUMuMSwgQ2h1bmcgSHNpbmcgUkQuLCBXdS1LdQorCQkJCVRhaXBlaSBIc2llbiwgIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtRDggICAoaGV4KQkJYmlvLWxvZ2ljIFNBCiswMDE0RDggICAgIChiYXNlIDE2KQkJYmlvLWxvZ2ljIFNBCisJCQkJMSwgcnVlIGRlIGwnRXVyb3BlCisJCQkJQ0xBSVggIDM4NjQwCisJCQkJRlJBTkNFCisKKzAwLTE0LUQ5ICAgKGhleCkJCUlQIEZhYnJpY3MsIEluYy4KKzAwMTREOSAgICAgKGJhc2UgMTYpCQlJUCBGYWJyaWNzLCBJbmMuCisJCQkJMTQ5NjQgTlcgR3JlZW5icmllciBQYXJrd2F5CisJCQkJQmVhdmVydG9uIE9yZWdvbiA5NzAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtREEgICAoaGV4KQkJSHVudGxlaWdoIEhlYWx0aGNhcmUKKzAwMTREQSAgICAgKGJhc2UgMTYpCQlIdW50bGVpZ2ggSGVhbHRoY2FyZQorCQkJCUh1bnRsZWlnaCBIZWFsdGhjYXJlIC0gRGlhZ25vc3RpYyBQcm9kdWN0cyBEaXZpc2lvbgorCQkJCTM1IFBvcnRtYW5tb29yIFJvYWQKKwkJCQlDYXJkaWZmICBDRjI0IDVITgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE0LURCICAgKGhleCkJCUVsbWEgVHJlbmV3IEVsZWN0cm9uaWMgR21iSAorMDAxNERCICAgICAoYmFzZSAxNikJCUVsbWEgVHJlbmV3IEVsZWN0cm9uaWMgR21iSAorCQkJCVN0dXR0Z2FydGVyIFN0cmFzc2UgMTEKKwkJCQlQZm9yemhlaW0gQlcgNzUxNzkKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LURDICAgKGhleCkJCUNvbW11bmljYXRpb24gU3lzdGVtIERlc2lnbiAmIE1hbnVmYWN0dXJpbmcgKENTRE0pCiswMDE0REMgICAgIChiYXNlIDE2KQkJQ29tbXVuaWNhdGlvbiBTeXN0ZW0gRGVzaWduICYgTWFudWZhY3R1cmluZyAoQ1NETSkKKwkJCQlQb3N0YnVzIDE4MQorCQkJCUJ1c3N1bSBOSCAxNDAwIEFECisJCQkJTkVUSEVSTEFORFMKKworMDAtMTQtREQgICAoaGV4KQkJQ292ZXJnZW5jZSBJbmMuCiswMDE0REQgICAgIChiYXNlIDE2KQkJQ292ZXJnZW5jZSBJbmMuCisJCQkJT25lIENsb2NrIFRvd2VyIFBsYWNlLCBTdWl0ZSAyMDAKKwkJCQlNYXluYXJkIE1BIDAxNzU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1ERSAgIChoZXgpCQlTYWdlIEluc3RydW1lbnRzIEluYy4KKzAwMTRERSAgICAgKGJhc2UgMTYpCQlTYWdlIEluc3RydW1lbnRzIEluYy4KKwkJCQkyNDAgQWlycG9ydCBCbHZkLgorCQkJCUZyZWVkb20gQ0EgOTUwMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LURGICAgKGhleCkJCUhJLVAgVGVjaCBDb3Jwb3JhdGlvbgorMDAxNERGICAgICAoYmFzZSAxNikJCUhJLVAgVGVjaCBDb3Jwb3JhdGlvbgorCQkJCTEtMjctMjMgSGlnYXNoaXRva29yb3phd2EKKwkJCQlUb2tvcm96YXdhIFNhaXRhbWEgMzU5LTAwMjEKKwkJCQlKQVBBTgorCiswMC0xNC1FMCAgIChoZXgpCQlMRVQnUyBDb3Jwb3JhdGlvbgorMDAxNEUwICAgICAoYmFzZSAxNikJCUxFVCdTIENvcnBvcmF0aW9uCisJCQkJQmFuY2hvIEJsZGcuIDRGLCAyLTE4LTIwIE1hcnVub3VjaGksIE5ha2EKKwkJCQlOYWdveWEgQWljaGkgNDYwLTAwMDIKKwkJCQlKQVBBTgorCiswMC0xNC1FMSAgIChoZXgpCQlEYXRhIERpc3BsYXkgQUcKKzAwMTRFMSAgICAgKGJhc2UgMTYpCQlEYXRhIERpc3BsYXkgQUcKKwkJCQlJbmR1c3RyaWVzdHJh32UgMQorCQkJCUdlcm1lcmluZyBCYXllcm4gODIxMTAKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LUUyICAgKGhleCkJCWRhdGFjb20gc3lzdGVtcyBpbmMuCiswMDE0RTIgICAgIChiYXNlIDE2KQkJZGF0YWNvbSBzeXN0ZW1zIGluYy4KKwkJCQk5IGFkbGVyIGRyaXZlCisJCQkJZWFzdCBzeXJhY3VzZSBuLnkuIDEzMDU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1FMyAgIChoZXgpCQltbS1sYWIgR21iSAorMDAxNEUzICAgICAoYmFzZSAxNikJCW1tLWxhYiBHbWJICisJCQkJU3RhbW1oZWltZXIgU3RyYXNzZSAxMAorCQkJCUQtNzA4MDYKKwkJCQlLb3Jud2VzdGhlaW0gIAorCQkJCUdFUk1BTlkKKworMDAtMTQtRTQgICAoaGV4KQkJSW50ZWdyYWwgVGVjaG5vbG9naWVzCiswMDE0RTQgICAgIChiYXNlIDE2KQkJSW50ZWdyYWwgVGVjaG5vbG9naWVzCisJCQkJOTg1NSBDcm9zc3BvaW50IEJsdmQKKwkJCQlTdGUgMTI2CisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1FNSAgIChoZXgpCQlBbHRpY2FzdAorMDAxNEU1ICAgICAoYmFzZSAxNikJCUFsdGljYXN0CisJCQkJMTZ0aCBmbG9vciwgTmFyYSBCbGRnLCAxMzI4LTMKKwkJCQlTZW9jaG8tZG9uZywgU2VvY2hvLWd1LAorCQkJCVNlb3VsIDEzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtRTYgICAoaGV4KQkJQUlNIEluZnJhcm90bW9kdWxlIEdtYkgKKzAwMTRFNiAgICAgKGJhc2UgMTYpCQlBSU0gSW5mcmFyb3Rtb2R1bGUgR21iSAorCQkJCVNvZWZsaW5nZXJzdHIuIDEwMAorCQkJCVVsbSBCVyA4OTA3NworCQkJCUdFUk1BTlkKKworMDAtMTQtRTcgICAoaGV4KQkJU3RvbGlueCwuIEluYworMDAxNEU3ICAgICAoYmFzZSAxNikJCVN0b2xpbngsLiBJbmMKKwkJCQkzRiBPaGNoYW5nIEJsZGcuLCA2MSBZYW5namFlLWRvbmcKKwkJCQlTZW9jaG8tZ3UKKwkJCQlTZW91bCAgMTM3LTg4OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC1FOCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxNEU4ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRTkgICAoaGV4KQkJTm9ydGVjaCBJbnRlcm5hdGlvbmFsCiswMDE0RTkgICAgIChiYXNlIDE2KQkJTm9ydGVjaCBJbnRlcm5hdGlvbmFsCisJCQkJMzJBIFdpZ2FudGhvcnBlIFJvYWQKKwkJCQlXaWxsb3d0b24gSHViCisJCQkJUGlldGVybWFydGl6YnVyZyBLd2FadWx1IE5hdGFsIDMyMDEKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMTQtRUEgICAoaGV4KQkJUyBEaWdtIEluYy4gKFNhZmUgUGFyYWRpZ20gSW5jLikKKzAwMTRFQSAgICAgKGJhc2UgMTYpCQlTIERpZ20gSW5jLiAoU2FmZSBQYXJhZGlnbSBJbmMuKQorCQkJCTVGLCBTaGluLWFuIEJsZGcuIDg5LTgsCisJCQkJTW9vbmp1bmctRG9uZworCQkJCVNvbmdwYS1HdSBTZW91bCAxMzgtMjAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LUVCICAgKGhleCkJCUF3YXJlUG9pbnQgQ29ycG9yYXRpb24KKzAwMTRFQiAgICAgKGJhc2UgMTYpCQlBd2FyZVBvaW50IENvcnBvcmF0aW9uCisJCQkJODg5OSBVbml2ZXJzaXR5IENlbnRlciBMYW5lCisJCQkJU2FuIERpZWdvIENBIDkyMTIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1FQyAgIChoZXgpCQlBY3JvIFRlbGVjb20KKzAwMTRFQyAgICAgKGJhc2UgMTYpCQlBY3JvIFRlbGVjb20KKwkJCQk3MTQgV29vbGltIGUtQml6IENlbnRlciAxNzAtNSBHdXJvLWRvbmcKKwkJCQlHdXJvLUd1IFNlb3VsIDE1Mi03NjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtRUQgICAoaGV4KQkJQWlyYWssIEluYy4KKzAwMTRFRCAgICAgKGJhc2UgMTYpCQlBaXJhaywgSW5jLgorCQkJCTIxNjQxIEJlYXVtZWFkZSBDaXJjbGUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlBc2hidXJuIFZpcmdpbmlhIDIwMTQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1FRSAgIChoZXgpCQlXZXN0ZXJuIERpZ2l0YWwgVGVjaG5vbG9naWVzLCBJbmMuCiswMDE0RUUgICAgIChiYXNlIDE2KQkJV2VzdGVybiBEaWdpdGFsIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTIwNTExIExha2UgRm9yZXN0IERyLgorCQkJCUxha2UgRm9yZXN0IENhIDkyNjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1FRiAgIChoZXgpCQlUWmVybyBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTRFRiAgICAgKGJhc2UgMTYpCQlUWmVybyBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk0NTUgVy4gTWF1ZGUgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1GMCAgIChoZXgpCQlCdXNpbmVzcyBTZWN1cml0eSBPTCBBQgorMDAxNEYwICAgICAoYmFzZSAxNikJCUJ1c2luZXNzIFNlY3VyaXR5IE9MIEFCCisJCQkJQm94IDExMCA2NQorCQkJCVN0b3JhIFJhYnkgQnlhdmFnIDg4CisJCQkJTHVuZCAgMjIwIDExCisJCQkJU1dFREVOCisKKzAwLTE0LUYxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTRGMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUYyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTRGMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUYzICAgKGhleCkJCVZpWFMgU3lzdGVtcyBJbmMKKzAwMTRGMyAgICAgKGJhc2UgMTYpCQlWaVhTIFN5c3RlbXMgSW5jCisJCQkJMjIzNSBTaGVwcGFyZCBBdmUgRWFzdAorCQkJCVN1aXRlMTcwNQorCQkJCVRPUk9OVE8gT05UQVJJTyBNMkogNUI1CisJCQkJQ0FOQURBCisKKzAwLTE0LUY0ICAgKGhleCkJCURla1RlYyBEaWdpdGFsIFZpZGVvIEIuVi4KKzAwMTRGNCAgICAgKGJhc2UgMTYpCQlEZWtUZWMgRGlnaXRhbCBWaWRlbyBCLlYuCisJCQkJVmFuIFJpZWJlZWNrd2VnIDQzQQorCQkJCUhpbHZlcnN1bSBOSCAxMjEyQUUKKwkJCQlORVRIRVJMQU5EUworCiswMC0xNC1GNSAgIChoZXgpCQlPU0kgU2VjdXJpdHkgRGV2aWNlcworMDAxNEY1ICAgICAoYmFzZSAxNikJCU9TSSBTZWN1cml0eSBEZXZpY2VzCisJCQkJMTU4MCBKYXlrZW4gV2F5CisJCQkJQ2h1bGEgVmlzdGEgQ2FsaWZvcm5pYSA5MTkxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRjYgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcywgSW5jLgorMDAxNEY2ICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MsIEluYy4KKwkJCQkxMTk0IE4uIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRjcgICAoaGV4KQkJQ3JldmlzCiswMDE0RjcgICAgIChiYXNlIDE2KQkJQ3JldmlzCisJCQkJRC0xMUYsIERpZ2l0YWwgRW1waXJlIEJsZGcuLCA5ODAtMworCQkJCVlvdW5ndG9uZworCQkJCVN1d29uICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtRjggICAoaGV4KQkJU2NpZW50aWZpYyBBdGxhbnRhCiswMDE0RjggICAgIChiYXNlIDE2KQkJU2NpZW50aWZpYyBBdGxhbnRhCisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCU1TIDUuMi40MjgKKwkJCQlMYXdyZW5jZXZpbGxlIEdhIDMwMDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1GOSAgIChoZXgpCQlWYW50YWdlIENvbnRyb2xzCiswMDE0RjkgICAgIChiYXNlIDE2KQkJVmFudGFnZSBDb250cm9scworCQkJCTEwNjEgU291dGggODAwIEVhc3QKKwkJCQlPcmVtIFVUIDg0MDk3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1GQSAgIChoZXgpCQlBc0dhIFMuQS4KKzAwMTRGQSAgICAgKGJhc2UgMTYpCQlBc0dhIFMuQS4KKwkJCQlSb2QgUm9iZXJ0byBNb3JlaXJhIEttIDA0CisJCQkJUGF1bGluaWEgU2FvIFBhdWxvIDEzMTQwLTAwMAorCQkJCUJSQVpJTAorCiswMC0xNC1GQiAgIChoZXgpCQlUZWNobmljYWwgU29sdXRpb25zIEluYy4KKzAwMTRGQiAgICAgKGJhc2UgMTYpCQlUZWNobmljYWwgU29sdXRpb25zIEluYy4KKwkJCQkxLTcxNTcgSG9uZXltYW4gU3RyZWV0CisJCQkJRGVsdGEgQkMgVjRHIDFFMgorCQkJCUNBTkFEQQorCiswMC0xNC1GQyAgIChoZXgpCQlFeHRhbmRvbiwgSW5jLgorMDAxNEZDICAgICAoYmFzZSAxNikJCUV4dGFuZG9uLCBJbmMuCisJCQkJMzkzNTAgQ2l2aWMgQ2VudGVyIERyaXZlIFN0ZS4gMTYwCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRkQgICAoaGV4KQkJVGhlY3VzIFRlY2hub2xvZ3kgQ29ycC4KKzAwMTRGRCAgICAgKGJhc2UgMTYpCQlUaGVjdXMgVGVjaG5vbG9neSBDb3JwLgorCQkJCTE1Ri4sTm8uIDc5LFNlYy4gMSxTaW50YWkgNXRoIFJELiwKKwkJCQlTaWpoaWggQ2l0eSBUYWlwZWkgQ291bnR5IDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtRkUgICAoaGV4KQkJQXJ0ZWNoIEVsZWN0cm9uaWNzCiswMDE0RkUgICAgIChiYXNlIDE2KQkJQXJ0ZWNoIEVsZWN0cm9uaWNzCisJCQkJIzMwMSwgWWFuZ2phZSBCbGRnLiwgMjc2LTIKKwkJCQlZYW5namFlLURvbmcsIFNlb2Noby1LdQorCQkJCVNlb3VsICAxMzctODk1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LUZGICAgKGhleCkJCVByZWNpc2UgQXV0b21hdGlvbiwgSW5jLgorMDAxNEZGICAgICAoYmFzZSAxNikJCVByZWNpc2UgQXV0b21hdGlvbiwgSW5jLgorCQkJCTE0MDIgQWxleGFuZHJhIEJsdmQKKwkJCQlDcnlzdGFsIExha2UgSUwgNjAwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTAwICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxNTAwICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTUtMDEgICAoaGV4KQkJTGV4Qm94CiswMDE1MDEgICAgIChiYXNlIDE2KQkJTGV4Qm94CisJCQkJMywgYXZlbnVlIERpZGllciBEYXVyYXQKKwkJCQlUT1VMT1VTRSAgMzE0MDAKKwkJCQlGUkFOQ0UKKworMDAtMTUtMDIgICAoaGV4KQkJQkVUQSB0ZWNoCiswMDE1MDIgICAgIChiYXNlIDE2KQkJQkVUQSB0ZWNoCisJCQkJMTUgcnVlIGQnYXBvbGxvCisJCQkJTCdVTklPTiAgMzEyNDAKKwkJCQlGUkFOQ0UKKworMDAtMTUtMDMgICAoaGV4KQkJUFJPRkljb21tcyBzLnIuby4KKzAwMTUwMyAgICAgKGJhc2UgMTYpCQlQUk9GSWNvbW1zIHMuci5vLgorCQkJCVR1cmdlbmV2b3ZhIDUKKwkJCQlCcm5vIEVVL0V1cm9wZSA2MTggMDAKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0xNS0wNCAgIChoZXgpCQlHQU1FIFBMVVMgQ08uLCBMVEQuCiswMDE1MDQgICAgIChiYXNlIDE2KQkJR0FNRSBQTFVTIENPLiwgTFRELgorCQkJCTE2NC01NywgWWVvbmdod2EtZG9uZywgSmFuZ2FuLWd1CisJCQkJU3V3b24gR3llb25nZ2ktZG8gNDQwLTgxOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0wNSAgIChoZXgpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworMDAxNTA1ICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0wNiAgIChoZXgpCQlOZW8gUGhvdG9uaWNzCiswMDE1MDYgICAgIChiYXNlIDE2KQkJTmVvIFBob3RvbmljcworCQkJCTkxMCBFLiBDYWxpZm9ybmlhIFN0LgorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMDcgICAoaGV4KQkJUmVuYWlzc2FuY2UgTGVhcm5pbmcgSW5jCiswMDE1MDcgICAgIChiYXNlIDE2KQkJUmVuYWlzc2FuY2UgTGVhcm5pbmcgSW5jCisJCQkJMjkxMSBQZWFjaCBTdHJlZXQKKwkJCQlQTyBCb3ggODAzNgorCQkJCVdpc2NvbnNpbiBSYXBpZHMgV2lzY29uc2luIDU0NDk0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0wOCAgIChoZXgpCQlHbG9iYWwgVGFyZ2V0IEVudGVycHJpc2UgSW5jCiswMDE1MDggICAgIChiYXNlIDE2KQkJR2xvYmFsIFRhcmdldCBFbnRlcnByaXNlIEluYworCQkJCTVGLCBOby4gMTg2LCBTZWMuIDIsIENodW5nLUhzaW5nIFJkLiwKKwkJCQlIc2luIFRpZW4sIFRhaXBlaSBjb3VudHkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS0wOSAgIChoZXgpCQlQbHVzIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMTUwOSAgICAgKGJhc2UgMTYpCQlQbHVzIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlPZmZpY2UgIzIwNSwgIEdheWFuZyBUZWNobm8tdG93biwKKwkJCQlHYXlhbmcgMy0gZG9uZywgR2FuZ3Nlby1rdQorCQkJCVNlb3VsIDE1Ny04MTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtMEEgICAoaGV4KQkJU29ub2EgU3lzdGVtcywgSW5jCiswMDE1MEEgICAgIChiYXNlIDE2KQkJU29ub2EgU3lzdGVtcywgSW5jCisJCQkJMzkwMCBGcmVlZG9tIENpcmNsZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0wQiAgIChoZXgpCQlTQUdFIElORk9URUNIIExURC4KKzAwMTUwQiAgICAgKGJhc2UgMTYpCQlTQUdFIElORk9URUNIIExURC4KKwkJCQkzRiwgTm8zMCwgSU5EVVNUUlkgRS4gOVRIIFJELixTQ0lFTkNFLUJBU0VECisJCQkJSU5EVVNUUklBTCBQQVJLCisJCQkJSFNJTi1DSFUgVEFJV0FOIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtMEMgICAoaGV4KQkJQVZNIEdtYkgKKzAwMTUwQyAgICAgKGJhc2UgMTYpCQlBVk0gR21iSAorCQkJCUFsdC1Nb2FiaXQgOTUKKwkJCQlCZXJsaW4gIDEwNTU5CisJCQkJR0VSTUFOWQorCiswMC0xNS0wRCAgIChoZXgpCQlIb2FuYSBNZWRpY2FsLCBJbmMuCiswMDE1MEQgICAgIChiYXNlIDE2KQkJSG9hbmEgTWVkaWNhbCwgSW5jLgorCQkJCTgyOCBGb3J0IFN0cmVldCBNYWxsCisJCQkJU3VpdGUgNjIwCisJCQkJSG9ub2x1bHUgSEkgOTY4MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTBFICAgKGhleCkJCU9QRU5CUkFJTiBURUNITk9MT0dJRVMgQ08uLCBMVEQuCiswMDE1MEUgICAgIChiYXNlIDE2KQkJT1BFTkJSQUlOIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQkjODA0LEFOWUFORyBLLUNFTlRFUiwxNTkxLTkgLCBCVVJJTS1ET05HLERPTkdBTi1HVSwKKwkJCQlBTllBTkcgS1lVTkdHSS1ETyA0MzEtODE1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTBGICAgKGhleCkJCW1pbmdqb25nCiswMDE1MEYgICAgIChiYXNlIDE2KQkJbWluZ2pvbmcKKwkJCQk4RixOTy4xLExBTkUgMTYsU1pFIENIVUFOIFJPQUQsU0VDLjIsUEFOQ0hJQU8gQ0lUWS4KKwkJCQlUQUlQRUkgIDIyMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtMTAgICAoaGV4KQkJVGVjaHNwaGVyZSBDby4sIEx0ZAorMDAxNTEwICAgICAoYmFzZSAxNikJCVRlY2hzcGhlcmUgQ28uLCBMdGQKKwkJCQk0RiwgV29uaWwgQmxkZy4sIDk4MC01NCwgQmFuZ2JhZS1kb25nLCBTZW9DaG8tZ3UKKwkJCQlTZW91bCAxMzctMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTExICAgKGhleCkJCURhdGEgQ2VudGVyIFN5c3RlbXMKKzAwMTUxMSAgICAgKGJhc2UgMTYpCQlEYXRhIENlbnRlciBTeXN0ZW1zCisJCQkJMTQ4MDIgVmVudHVyZSBEcml2ZQorCQkJCURhbGxhcyBUWCA3NTIzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMTIgICAoaGV4KQkJWnVyaWNoIFVuaXZlcnNpdHkgb2YgQXBwbGllZCBTY2llbmNlcworMDAxNTEyICAgICAoYmFzZSAxNikJCVp1cmljaCBVbml2ZXJzaXR5IG9mIEFwcGxpZWQgU2NpZW5jZXMKKwkJCQlUZWNobmlrdW1zdHJhc3NlIDkKKwkJCQlXaW50ZXJ0aHVyIFpIIENILTg0MDEKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xNS0xMyAgIChoZXgpCQlFRlMgc2FzCiswMDE1MTMgICAgIChiYXNlIDE2KQkJRUZTIHNhcworCQkJCUJQIDM0CisJCQkJTUlMTEVSWSAgRi02OTM5MAorCQkJCUZSQU5DRQorCiswMC0xNS0xNCAgIChoZXgpCQlIdSBaaG91IE5BVkEgTmV0d29ya3MmRWxlY3Ryb25pY3MgTHRkLgorMDAxNTE0ICAgICAoYmFzZSAxNikJCUh1IFpob3UgTkFWQSBOZXR3b3JrcyZFbGVjdHJvbmljcyBMdGQuCisJCQkJMy9GLE5vLjMyOC00LEd1YW5nIFl1YW4gUmQuCisJCQkJSHUgWmhvdSBaaGUgSmlhbmcgMzEzMDAwCisJCQkJQ0hJTkEKKworMDAtMTUtMTUgICAoaGV4KQkJTGVpcG9sZCtDby5HbWJICiswMDE1MTUgICAgIChiYXNlIDE2KQkJTGVpcG9sZCtDby5HbWJICisJCQkJS3JldXp3aWVzZSAxMgorCQkJCVJvY2tlbmhhdXNlbiBSTFAgRC02NzgwNgorCQkJCUdFUk1BTlkKKworMDAtMTUtMTYgICAoaGV4KQkJVVJJRUwgU1lTVEVNUyBJTkMuCiswMDE1MTYgICAgIChiYXNlIDE2KQkJVVJJRUwgU1lTVEVNUyBJTkMuCisJCQkJIzIwNCBCeXVja3NhbiBEaWdpdGFsdmFsbGV5IDFzdCwgMjEyLTE2LCBHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0xNyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMTUxNyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmxuIEhpLVRlY2ggIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTUtMTggICAoaGV4KQkJU2hlbnpoZW4gMTBNT09OUyBUZWNobm9sb2d5IERldmVsb3BtZW50IENPLixMdGQKKzAwMTUxOCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiAxME1PT05TIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ08uLEx0ZAorCQkJCUFkZDozRixIdWF4aW5nIGJ1aWxkaW5nLCBRaWFvWGlhbmcgcm9hZCwKKwkJCQlzaGVuemhlbiBndWFuZ2RvbmcgNTE4MDUzCisJCQkJQ0hJTkEKKworMDAtMTUtMTkgICAoaGV4KQkJU3RvcmVBZ2UgTmV0d29ya2luZyBUZWNobm9sb2dpZXMKKzAwMTUxOSAgICAgKGJhc2UgMTYpCQlTdG9yZUFnZSBOZXR3b3JraW5nIFRlY2hub2xvZ2llcworCQkJCTYzIEJhci1ZZWh1ZGEgc3QuCisJCQkJTmVzaGVyICAzNjY1MQorCQkJCUlTUkFFTAorCiswMC0xNS0xQSAgIChoZXgpCQlIdW50ZXIgRW5naW5lZXJpbmcgQ29tcGFueQorMDAxNTFBICAgICAoYmFzZSAxNikJCUh1bnRlciBFbmdpbmVlcmluZyBDb21wYW55CisJCQkJMTEyNTAgSHVudGVyIERyaXZlCisJCQkJQnJpZGdldG9uIE1pc3NvdXJpIDYzMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0xQiAgIChoZXgpCQlJc2lsb24gU3lzdGVtcyBJbmMuCiswMDE1MUIgICAgIChiYXNlIDE2KQkJSXNpbG9uIFN5c3RlbXMgSW5jLgorCQkJCTMxMDEgV2VzdGVybiBBdmVudWUKKwkJCQlTZWF0dGxlIFdBIDk4MTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0xQyAgIChoZXgpCQlMRU5FQ08KKzAwMTUxQyAgICAgKGJhc2UgMTYpCQlMRU5FQ08KKwkJCQk2dGguLERvbmcgTW9vbiBHb29kIE1vcm5pbmcgVG93ZXIKKwkJCQkxMzIzIEJlYWtzZW9rLURvbmcgSWxzYW4tR3UKKwkJCQlLeWVvbmcgS2ktRG8gR29ZYW5nLVNpIDQxMS04MTcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtMUQgICAoaGV4KQkJTTJJIENPUlBPUkFUSU9OCiswMDE1MUQgICAgIChiYXNlIDE2KQkJTTJJIENPUlBPUkFUSU9OCisJCQkJS3lvbmdnaSBWZW50dXJlIEFueWFuZyB0ZWNobmljYWwgY2VudGVyLCAxM3RoIEZsb29yLCA1NzItNSwgQW55YW5nIDgtRG9uZywgTWFuYW4tR3UKKwkJCQlBbnlhbmctU2hpIEt5b25nZ2ktRG8gNDMwLTczMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0xRSAgIChoZXgpCQlFdGhlcm5ldCBQb3dlcmxpbmsgU3RhbmRhcmRpemF0aW9uIEdyb3VwIChFUFNHKQorMDAxNTFFICAgICAoYmFzZSAxNikJCUV0aGVybmV0IFBvd2VybGluayBTdGFuZGFyZGl6YXRpb24gR3JvdXAgKEVQU0cpCisJCQkJYy9vIFp1cmljaCBVbml2ZXJzaXR5IG9mIEFwcGxpZWQgU2NpZW5jZXMKKwkJCQlUZWNobmlrdW1zdHJhc3NlIDkKKwkJCQlDSC04NDAxIFdpbnRlcnRodXIgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTUtMUYgICAoaGV4KQkJTXVsdGl2aXNpb24gSW50ZWxsaWdlbnQgU3VydmVpbGxhbmNlIChIb25nIEtvbmcpIEx0ZAorMDAxNTFGICAgICAoYmFzZSAxNikJCU11bHRpdmlzaW9uIEludGVsbGlnZW50IFN1cnZlaWxsYW5jZSAoSG9uZyBLb25nKSBMdGQKKwkJCQkyNi9GLCBBaXRrZW4gVmFuc29uIENlbnRyZSwKKwkJCQk2MSBIb2kgWXVlbiBSb2FkLCBLd3VuIFRvbmcsIEtvd2xvb24sCisJCQkJSE9ORyBLT05HCisKKzAwLTE1LTIwICAgKGhleCkJCVJhZGlvY3JhZnRzIEFTCiswMDE1MjAgICAgIChiYXNlIDE2KQkJUmFkaW9jcmFmdHMgQVMKKwkJCQlTYW5kYWtlcnZlaWVuIDY0CisJCQkJT3NsbyAwNDg0CisJCQkJTk9SV0FZCisKKzAwLTE1LTIxICAgKGhleCkJCUhvcm9xdWFydHoKKzAwMTUyMSAgICAgKGJhc2UgMTYpCQlIb3JvcXVhcnR6CisJCQkJQlAgMjUxCisJCQkJRk9OVEVOQVkgTEUgQ09NVEUgVkVOREVFIDg1MjA1CisJCQkJRlJBTkNFCisKKzAwLTE1LTIyICAgKGhleCkJCURlYSBTZWN1cml0eQorMDAxNTIyICAgICAoYmFzZSAxNikJCURlYSBTZWN1cml0eQorCQkJCVZpYSBNYWdlbnRhIDkKKwkJCQlNYXNzYSBNUyA1NDEwMAorCQkJCUlUQUxZCisKKzAwLTE1LTIzICAgKGhleCkJCU1ldGVvciBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorMDAxNTIzICAgICAoYmFzZSAxNikJCU1ldGVvciBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorCQkJCTIyNjE0IDY2dGggQXZlbnVlIFNvdXRoCisJCQkJS2VudCBXQSA5ODAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMjQgICAoaGV4KQkJTnVtYXRpY3MsIEluYy4KKzAwMTUyNCAgICAgKGJhc2UgMTYpCQlOdW1hdGljcywgSW5jLgorCQkJCTQ2MjgwIER5bGFuIERyLgorCQkJCU5vdmkgTWljaGlnYW4gNDgzNzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTI1ICAgKGhleCkJCUNoYW1iZXJsYWluIEFjY2VzcyBTb2x1dGlvbnMKKzAwMTUyNSAgICAgKGJhc2UgMTYpCQlDaGFtYmVybGFpbiBBY2Nlc3MgU29sdXRpb25zCisJCQkJOTE2MCBFLiBCYWhpYSBEci4KKwkJCQlTY290dHNkYWxlIEFaIDg1MjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0yNiAgIChoZXgpCQlSZW1vdGUgVGVjaG5vbG9naWVzIEluYworMDAxNTI2ICAgICAoYmFzZSAxNikJCVJlbW90ZSBUZWNobm9sb2dpZXMgSW5jCisJCQkJNzY1MSBBbmFncmFtIERyaXZlCisJCQkJRWRlbiBQcmFpcmllIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0yNyAgIChoZXgpCQlCYWxib2EgSW5zdHJ1bWVudHMKKzAwMTUyNyAgICAgKGJhc2UgMTYpCQlCYWxib2EgSW5zdHJ1bWVudHMKKwkJCQkxMzgyIEJlbGwgQXZlCisJCQkJVHVzdGluIENBIDkyNzgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0yOCAgIChoZXgpCQlGbG9vZGxpZ2h0IE1lZGljYWwgUHJvZHVjdHMgTExDIGQuYi5hLiBGbG9vZGxpZ2h0TWVkYWVzCiswMDE1MjggICAgIChiYXNlIDE2KQkJRmxvb2RsaWdodCBNZWRpY2FsIFByb2R1Y3RzIExMQyBkLmIuYS4gRmxvb2RsaWdodE1lZGFlcworCQkJCTE0NDA4IFcgMTA1VEggU1QKKwkJCQlMRU5FWEEgS1MgNjYyMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTI5ICAgKGhleCkJCU4zIENvcnBvcmF0aW9uCiswMDE1MjkgICAgIChiYXNlIDE2KQkJTjMgQ29ycG9yYXRpb24KKwkJCQkjNDAyIEd3YW5nTXllb25nIFRlY2hubyBUb3duCisJCQkJNjI2LTMgQ2x1bHNhbiAxLURvbmcsIEd3YW5nTXllb25nLUNpdHkKKwkJCQlHeWVvbmdHaS1EbyAgNDIzLTAzMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0yQSAgIChoZXgpCQlOb2tpYSBHbWJICiswMDE1MkEgICAgIChiYXNlIDE2KQkJTm9raWEgR21iSAorCQkJCVJlbnNpbmdzdHIuIDE1CisJCQkJQm9jaHVtIE5SVyA0NDgwNworCQkJCUdFUk1BTlkKKworMDAtMTUtMkIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNTJCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMkMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNTJDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMkQgICAoaGV4KQkJVGVuWCBOZXR3b3JrcywgTExDCiswMDE1MkQgICAgIChiYXNlIDE2KQkJVGVuWCBOZXR3b3JrcywgTExDCisJCQkJNDg1NSBXaWxleSBQb3N0IFdheQorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0yRSAgIChoZXgpCQlQYWNrZXRIb3AsIEluYy4KKzAwMTUyRSAgICAgKGJhc2UgMTYpCQlQYWNrZXRIb3AsIEluYy4KKwkJCQkxMzAxIFNob3Jld2F5IFJvYWQKKwkJCQlTdWl0ZSAyMDAKKwkJCQlCZWxtb250IENhbGlmb3JuaWEgOTQwMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTJGICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE1MkYgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0zMCAgIChoZXgpCQlCdXMtVGVjaCwgSW5jLgorMDAxNTMwICAgICAoYmFzZSAxNikJCUJ1cy1UZWNoLCBJbmMuCisJCQkJMTI5IE1pZGRsZXNleCBUdXJucGlrZQorCQkJCUJ1cmxpbmd0b24gTWEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTMxICAgKGhleCkJCUtPQ09NCiswMDE1MzEgICAgIChiYXNlIDE2KQkJS09DT00KKwkJCQk1RiwgS09DT00gQmxkZy4sIDI2MC03CisJCQkJWXVtY2hhbmctRG9uZywgS2FuZ3Nlby1HdQorCQkJCVNFT1VMICAxNTctMDQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTMyICAgKGhleCkJCUNvbnN1bWVyIFRlY2hub2xvZ2llcyBHcm91cCwgTExDCiswMDE1MzIgICAgIChiYXNlIDE2KQkJQ29uc3VtZXIgVGVjaG5vbG9naWVzIEdyb3VwLCBMTEMKKwkJCQkzNTAwIEpvcmRhbiBPYWtzIERyLgorCQkJCUVmbGFuZCBOQyAyNzI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMzMgICAoaGV4KQkJTkFEQU0uQ08uLExURAorMDAxNTMzICAgICAoYmFzZSAxNikJCU5BREFNLkNPLixMVEQKKwkJCQkjOTEtMyBXYW5ncmltLUxpCisJCQkJQm9uZ2RhbS1FdXAKKwkJCQlId2FzZW9uZyBHeWVvbmdnaSA0NDUtODk1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTM0ICAgKGhleCkJCUEgQkVMVFLTTklDQSwgQ29tcGFuaGlhIGRlIENvbXVuaWNh5/VlcywgTGRhCiswMDE1MzQgICAgIChiYXNlIDE2KQkJQSBCRUxUUtNOSUNBLCBDb21wYW5oaWEgZGUgQ29tdW5pY2Hn9WVzLCBMZGEKKwkJCQlSLiBEci4gSm9z6SBCYXB0aXN0YSBkZSBTb3VzYSwgMjcKKwkJCQlMaXNib24gIDE1NDktMDAyIExpcworCQkJCVBPUlRVR0FMCisKKzAwLTE1LTM1ICAgKGhleCkJCU9URSBTcGEKKzAwMTUzNSAgICAgKGJhc2UgMTYpCQlPVEUgU3BhCisJCQkJdmlhIEJhcnNhbnRpIDgKKwkJCQlGbG9yZW5jZSBGSSA1MDEyNworCQkJCUlUQUxZCisKKzAwLTE1LTM2ICAgKGhleCkJCVBvd2VydGVjaCBjby4sTHRkCiswMDE1MzYgICAgIChiYXNlIDE2KQkJUG93ZXJ0ZWNoIGNvLixMdGQKKwkJCQkjNzA1LCBkb25neW91bmcgVmVudHVyZXN0ZWwsIDE5OS0zMgorCQkJCUFueWFuZzctZG9uZywgTWFuYW4tZ3UKKwkJCQlBbnlhbmcgQ2l0eSBLeW91bmdraS1kbyA0MzAtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTM3ICAgKGhleCkJCVZlbnR1cyBOZXR3b3JrcworMDAxNTM3ICAgICAoYmFzZSAxNikJCVZlbnR1cyBOZXR3b3JrcworCQkJCTgwMCBDb25uZWN0aWN1dCBBdmUKKwkJCQkxc3QgZmxvb3Igd2VzdAorCQkJCU5vcndhbGsgQ1QgMDY4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTM4ICAgKGhleCkJCVJGSUQsIEluYy4KKzAwMTUzOCAgICAgKGJhc2UgMTYpCQlSRklELCBJbmMuCisJCQkJMTQxMDAgRWFzdCBKZXdlbGwgQXZlLgorCQkJCVN1aXRlIDEyCisJCQkJQXVyb3JhIENPIDgwMDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0zOSAgIChoZXgpCQlUZWNobm9kcml2ZSBTUkwKKzAwMTUzOSAgICAgKGJhc2UgMTYpCQlUZWNobm9kcml2ZSBTUkwKKwkJCQlWaWEgTGVvbmFyZG8gZGEgVmluY2kgMTYyCisJCQkJVHJlenphbm8gc3VsIE5hdmlnbGlvIE1pbGFubyAyMDA5MAorCQkJCUlUQUxZCisKKzAwLTE1LTNBICAgKGhleCkJCVNoZW56aGVuIFN5c2NhbiBUZWNobm9sb2d5IENvLixMdGQuCiswMDE1M0EgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gU3lzY2FuIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQkxM0YsIE9seW1waWMgUGxhemEsCisJCQkJU2hhbmcgYmFvIFJvYWQsIEZ1dGlhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDM0CisJCQkJQ0hJTkEKKworMDAtMTUtM0IgICAoaGV4KQkJRU1IIG1ldGVyaW5nIEdtYkggJiBDby4gS0cKKzAwMTUzQiAgICAgKGJhc2UgMTYpCQlFTUggbWV0ZXJpbmcgR21iSCAmIENvLiBLRworCQkJCVN1ZWRyaW5nIDUKKwkJCQlXaXR0ZW5idXJnIE1lY2tsZW5idXJnLVZvcnBvbW1lcm4gMTkyNDMKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LTNDICAgKGhleCkJCUtwcm90ZWNoIENvLiwgTHRkLgorMDAxNTNDICAgICAoYmFzZSAxNikJCUtwcm90ZWNoIENvLiwgTHRkLgorCQkJCTJuZCBGbG9vciwgIyAyMDIsIE15b3VuZy1qaSBlLVNwYWNlIElJCisJCQkJMjE4LCBBbi15YW5nIDcgRG9uZywgTWFuLWFuIEd1LAorCQkJCUFuLXlhbmcgQ2l0eSBHeWVvbmctZ2kgRG8gNDMwLTgxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0zRCAgIChoZXgpCQlFTElNIFBST0RVQ1QgQ08uCiswMDE1M0QgICAgIChiYXNlIDE2KQkJRUxJTSBQUk9EVUNUIENPLgorCQkJCTYwMi0yIEdBWUFORyBURUNITk8gVE9XTiwgR0FZQU5HLCAzLURPTkcKKwkJCQlLQU5HU0VPLUdVIFNFT1VMIEtPUkVBCisJCQkJU0VPVUwgMTU3LTc5MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0zRSAgIChoZXgpCQlRLU1hdGljIFN3ZWRlbiBBQgorMDAxNTNFICAgICAoYmFzZSAxNikJCVEtTWF0aWMgU3dlZGVuIEFCCisJCQkJTmVvbmdhdGFuIDgKKwkJCQlNb2xuZGFsICA0MzEgNTMKKwkJCQlTV0VERU4KKworMDAtMTUtM0YgICAoaGV4KQkJQWxjYXRlbCBBbGVuaWEgU3BhY2UgSXRhbGlhCiswMDE1M0YgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBBbGVuaWEgU3BhY2UgSXRhbGlhCisJCQkJU3RyYWRhIFBhZGFuYSBTdXBlcmlvcmUgMjkwCisJCQkJVmltb2Ryb25lIE1JIDIwMDkwCisJCQkJSVRBTFkKKworMDAtMTUtNDAgICAoaGV4KQkJTm9ydGVsCiswMDE1NDAgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTUtNDEgICAoaGV4KQkJU3RyYXRhTGlnaHQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTU0MSAgICAgKGJhc2UgMTYpCQlTdHJhdGFMaWdodCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTIxMDUgUy4gQmFzY29tIEF2ZW51ZQorCQkJCVN1aXRlIDMwMAorCQkJCUNhbXBiZWxsIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS00MiAgIChoZXgpCQlNSUNST0hBUkQgUy5SLkwuCiswMDE1NDIgICAgIChiYXNlIDE2KQkJTUlDUk9IQVJEIFMuUi5MLgorCQkJCVZpYSBQcmltbyBNYWdnaW8gMzYKKwkJCQlTYW4gVml0dG9yZSBPbG9uYSBNaWxhbm8gMjAwMjgKKwkJCQlJVEFMWQorCiswMC0xNS00MyAgIChoZXgpCQlBYmVyZGVlbiBUZXN0IENlbnRlcgorMDAxNTQzICAgICAoYmFzZSAxNikJCUFiZXJkZWVuIFRlc3QgQ2VudGVyCisJCQkJNDAwIENvbGxlcmFuIFJvYWQKKwkJCQlCbGRnLiAzNTAKKwkJCQlBYmVyZGVlbiBQcm92aW5nIEdyb3VuZHMgTUQgMjEwMDUtNTA1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNDQgICAoaGV4KQkJY29NLnMuYS50LiBBRworMDAxNTQ0ICAgICAoYmFzZSAxNikJCWNvTS5zLmEudC4gQUcKKwkJCQlCZXNzZWxzdHIuIDMKKwkJCQlNYW5uaGVpbSAgRC02ODIxOQorCQkJCUdFUk1BTlkKKworMDAtMTUtNDUgICAoaGV4KQkJU0VFQ09ERSBDby4sIEx0ZC4KKzAwMTU0NSAgICAgKGJhc2UgMTYpCQlTRUVDT0RFIENvLiwgTHRkLgorCQkJCTR0aCBGbG9vciwgQW1pbiBCbGRnLiwgMTEwLTEsIFlhbmdqYWVkb25nLCBTZW9jaG9ndQorCQkJCVNlb3VsICAxMzctODkxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTQ2ICAgKGhleCkJCUlURyBXb3JsZHdpZGUgU2RuIEJoZAorMDAxNTQ2ICAgICAoYmFzZSAxNikJCUlURyBXb3JsZHdpZGUgU2RuIEJoZAorCQkJCTIsIEphbGFuIEFzdGFrYVU4LzgzCisJCQkJU2Vrc3llbiBVOCwgQnVraXQgSmVsdXRvbmcKKwkJCQlTaGFoIEFsYW0gU2VsYW5nb3IgRGFydWwgRWhzYW4gNDAxNTAKKwkJCQlNQUxBWVNJQQorCiswMC0xNS00NyAgIChoZXgpCQlBaVplbiBTb2x1dGlvbnMgSW5jLgorMDAxNTQ3ICAgICAoYmFzZSAxNikJCUFpWmVuIFNvbHV0aW9ucyBJbmMuCisJCQkJMTBGLTEsIE5vLjI5LCBQdWRpbmcgUmQuCisJCQkJSHNpbmNodSBIc2luY2h1IENvdW50eSAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LTQ4ICAgKGhleCkJCUNVQkUgVEVDSE5PTE9HSUVTCiswMDE1NDggICAgIChiYXNlIDE2KQkJQ1VCRSBURUNITk9MT0dJRVMKKwkJCQkxMCwgcnVlIGRlcyBSb3Np6XJpc3RlcworCQkJCUNIQU1QQUdORSBBVSBNT05UIEQnT1IgRlJBTkNFIDY5NDEwCisJCQkJRlJBTkNFCisKKzAwLTE1LTQ5ICAgKGhleCkJCURpeHRhbCBCaW9tZWRpY2EgSW5kLiBDb20uIEx0ZGEKKzAwMTU0OSAgICAgKGJhc2UgMTYpCQlEaXh0YWwgQmlvbWVkaWNhIEluZC4gQ29tLiBMdGRhCisJCQkJUi4gRW5nLiBGcmFuY2lzY28gUGl0dGEgQnJpdG8sIDcwMworCQkJCVNhbyBQYXVsbyBTUCAwNDc1My0wODAKKwkJCQlCUkFaSUwKKworMDAtMTUtNEEgICAoaGV4KQkJV0FOU0hJSCBFTEVDVFJPTklDIENPLiwgTFRECiswMDE1NEEgICAgIChiYXNlIDE2KQkJV0FOU0hJSCBFTEVDVFJPTklDIENPLiwgTFRECisJCQkJM0YgNzIsIFdVIEtPTkcgNnRoIFJELiwKKwkJCQlXVSBLVSBJTkRVU1RSSUFMIERJU1RSSUNULAorCQkJCVRBSVBFSSBIU0lFTiBUQUlXQU4gMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS00QiAgIChoZXgpCQlXb25kZSBQcm91ZCBUZWNobm9sb2d5IENvLiwgTHRkCiswMDE1NEIgICAgIChiYXNlIDE2KQkJV29uZGUgUHJvdWQgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCTIxRi4sIE5vLjEwMCwgU2VjLjEsIFNoaW50YWkgNXRoIFJkCisJCQkJU2lqaGloIGNpdHkgVGFpcGVpIENvdW50eSAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LTRDICAgKGhleCkJCVNhdW5kZXJzIEVsZWN0cm9uaWNzCiswMDE1NEMgICAgIChiYXNlIDE2KQkJU2F1bmRlcnMgRWxlY3Ryb25pY3MKKwkJCQk4MiBJbmR1c3RyaWFsIFBhcmsgUmQKKwkJCQlTYWNvIE1FIDA0MDcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS00RCAgIChoZXgpCQlOZXRyb25vbWUgU3lzdGVtcywgSW5jLgorMDAxNTREICAgICAoYmFzZSAxNikJCU5ldHJvbm9tZSBTeXN0ZW1zLCBJbmMuCisJCQkJMTQ0IEVtZXJ5dmlsbGUgRHJpdmUKKwkJCQlTdWl0ZSAyMzAKKwkJCQlDcmFuYmVycnkgVHdwLiBQQSAxNjA2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNEUgICAoaGV4KQkJSUVDCiswMDE1NEUgICAgIChiYXNlIDE2KQkJSUVDCisJCQkJMywgcnVlIGRlIFZhcmVtYukKKwkJCQlQLk8uIEJveCAxMzEKKwkJCQlDSCAtIDEyMTEgR0VORVZBIDIwCisJCQkJR0VSTUFOWQorCiswMC0xNS00RiAgIChoZXgpCQlvbmUgUkYgVGVjaG5vbG9neQorMDAxNTRGICAgICAoYmFzZSAxNikJCW9uZSBSRiBUZWNobm9sb2d5CisJCQkJMTM2MCBSb3V0ZSBkZXMgRG9saW5lcworCQkJCUJhdCBCNCBMZXMgQ2FyZG91bGluZXMKKwkJCQlWYWxib25uZSBTb3BoaWEtQW50aXBvbGlzIFBBQ0EgMDY1NjAKKwkJCQlGUkFOQ0UKKworMDAtMTUtNTAgICAoaGV4KQkJTml0cyBUZWNobm9sb2d5IEluYworMDAxNTUwICAgICAoYmFzZSAxNikJCU5pdHMgVGVjaG5vbG9neSBJbmMKKwkJCQkyRkwuIE5vLiA4IEFsbGV5IDE2LCBMYW5lIDIzNSwgQmF1Y2hpYXUgUmQuLAorCQkJCVNoaW5kaWFuIENpdHkgVGFpcGVpIEhzaWVuIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtNTEgICAoaGV4KQkJUmFkaW9QdWxzZSBJbmMuCiswMDE1NTEgICAgIChiYXNlIDE2KQkJUmFkaW9QdWxzZSBJbmMuCisJCQkJMm5kIGZsLiBIYW5zIEIvRCwgMTExLTU1CisJCQkJU2VvbmduYWUtZG9uZywgR2FuZ2RvbmctZ3UKKwkJCQlTZW91bCAgMTM0LTg4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS01MiAgIChoZXgpCQlXaS1HZWFyIEluYy4KKzAwMTU1MiAgICAgKGJhc2UgMTYpCQlXaS1HZWFyIEluYy4KKwkJCQkzNDAgQ2h1cmNoIFN0cmVldAorCQkJCVN1aXRlIDEwCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDExNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNTMgICAoaGV4KQkJQ3l0eWMgQ29ycG9yYXRpb24KKzAwMTU1MyAgICAgKGJhc2UgMTYpCQlDeXR5YyBDb3Jwb3JhdGlvbgorCQkJCTI1MCBDYW1wdXMgRGl2ZQorCQkJCU1hcmxib3JvdWdoIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS01NCAgIChoZXgpCQlBdGFsdW0gV2lyZWxlc3MgUy5BLgorMDAxNTU0ICAgICAoYmFzZSAxNikJCUF0YWx1bSBXaXJlbGVzcyBTLkEuCisJCQkJQy8gT3JlbGxhbmEgNSwgMbogSQorCQkJCU1hZHJpZCAgMjgwMDQKKwkJCQlTUEFJTgorCiswMC0xNS01NSAgIChoZXgpCQlERk0gR21iSAorMDAxNTU1ICAgICAoYmFzZSAxNikJCURGTSBHbWJICisJCQkJTGFocmVyIFN0cmFzc2UgNgorCQkJCUxhaHIgQmFkZW4tV3VlcnR0ZW1iZXJnIDc3OTMzCisJCQkJR0VSTUFOWQorCiswMC0xNS01NiAgIChoZXgpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCiswMDE1NTYgICAgIChiYXNlIDE2KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorCQkJCUxlIFBvbm5hbnQgZGUgUGFyaXMKKwkJCQkyNyBSdWUgTGVibGFuYworCQkJCUNFREVYIFBhcmlzIDc1NTEyCisJCQkJRlJBTkNFCisKKzAwLTE1LTU3ICAgKGhleCkJCU9saXZldHRpCiswMDE1NTcgICAgIChiYXNlIDE2KQkJT2xpdmV0dGkKKwkJCQlWaWEgSmVydmlzIDc3CisJCQkJSXZyZWEgVG9yaW5vIDEwMDE1CisJCQkJSVRBTFkKKworMDAtMTUtNTggICAoaGV4KQkJRk9YQ09OTgorMDAxNTU4ICAgICAoYmFzZSAxNikJCUZPWENPTk4KKwkJCQlOby4yLDJuZCBEb25nSHVhbiBSb2FkLDEwdGggWW91U29uZworCQkJCUluZHVzdHJpYWwgRGlzdHJpY3QsTG9uZ0h1YSBTdHJlZXQsQmFvJ2FuLAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMDkKKwkJCQlDSElOQQorCiswMC0xNS01OSAgIChoZXgpCQlTZWN1cmFwbGFuZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTU1OSAgICAgKGJhc2UgMTYpCQlTZWN1cmFwbGFuZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMDgwMCBOLiBNYXZpbmVlIERyLgorCQkJCVR1Y3NvbiBBWiA4NTczNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNUEgICAoaGV4KQkJREFJTklQUE9OIFBIQVJNQUNFVVRJQ0FMIENPLiwgTFRELgorMDAxNTVBICAgICAoYmFzZSAxNikJCURBSU5JUFBPTiBQSEFSTUFDRVVUSUNBTCBDTy4sIExURC4KKwkJCQkyLTYtOCwgRE9TSE9NQUNISSwgQ0hVTy1LVQorCQkJCU9TQUtBIENJVFkgT1NBS0EgUFJFRi4gNTQxLTg1MjQKKwkJCQlKQVBBTgorCiswMC0xNS01QiAgIChoZXgpCQlTYW1wbyBDb3Jwb3JhdGlvbgorMDAxNTVCICAgICAoYmFzZSAxNikJCVNhbXBvIENvcnBvcmF0aW9uCisJCQkJMjE2IENodW5nIFNoYW4gUm9hZCwKKwkJCQlTZWMuIDEsIFBhbmNoaWFvIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4gMjIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS01QyAgIChoZXgpCQlEcmVzc2VyIFdheW5lCiswMDE1NUMgICAgIChiYXNlIDE2KQkJRHJlc3NlciBXYXluZQorCQkJCTM4MTQgSmFycmV0dCBXYXkKKwkJCQlBdXN0aW4gVGV4YXMgNzg3MjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTVEICAgKGhleCkJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorMDAxNTVEICAgICAoYmFzZSAxNikJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorCQkJCU9uZSBNaWNyb3NvZnQgV2F5CisJCQkJUmVkbW9uZCBXQSA5ODA1Mi04MzAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS01RSAgIChoZXgpCQlNb3JnYW4gU3RhbmxleQorMDAxNTVFICAgICAoYmFzZSAxNikJCU1vcmdhbiBTdGFubGV5CisJCQkJNzUwIDd0aCBBdmVudWUKKwkJCQlOZXcgWW9yayBOWSAxMDAxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNUYgICAoaGV4KQkJR3JlZW5QZWFrIFRlY2hub2xvZ2llcworMDAxNTVGICAgICAoYmFzZSAxNikJCUdyZWVuUGVhayBUZWNobm9sb2dpZXMKKwkJCQlMaW5kZXN0cmFhdCAxOQorCQkJCVplbGUgIDkyNDAKKwkJCQlCRUxHSVVNCisKKzAwLTE1LTYwICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxNTYwICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5IFNvdXRoCisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS02MSAgIChoZXgpCQlKSlBsdXMgQ29ycG9yYXRpb24KKzAwMTU2MSAgICAgKGJhc2UgMTYpCQlKSlBsdXMgQ29ycG9yYXRpb24KKwkJCQk2NzggTWFzc2FjaHVzZXR0cyBBdmUKKwkJCQlTdWl0ZSA1MDMKKwkJCQlDYW1icmlkZ2UgTUEgMDIxMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTYyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTU2MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTYzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTU2MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTY0ICAgKGhleCkJCUJFSFJJTkdFUiBTcGV6aWVsbGUgU3R1ZGlvdGVjaG5payBHbWJICiswMDE1NjQgICAgIChiYXNlIDE2KQkJQkVIUklOR0VSIFNwZXppZWxsZSBTdHVkaW90ZWNobmlrIEdtYkgKKwkJCQlIYW5ucy1NYXJ0aW4tU2NobGV5ZXItU3RyLiAzNi0zOAorCQkJCVdpbGxpY2ggIAorCQkJCUdFUk1BTlkKKworMDAtMTUtNjUgICAoaGV4KQkJWElBTUVOIFlFQUxJTksgTkVUV09SSyBURUNITk9MT0dZIENPLixMVEQKKzAwMTU2NSAgICAgKGJhc2UgMTYpCQlYSUFNRU4gWUVBTElOSyBORVRXT1JLIFRFQ0hOT0xPR1kgQ08uLExURAorCQkJCTdGIEh1YWxpYW4gRWxlY3Ryb25pYyBCTERHLjU4MCBKaWFoZSBSb2FkLFhpYW1lbiBDaGluYQorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA2CisJCQkJQ0hJTkEKKworMDAtMTUtNjYgICAoaGV4KQkJQS1GaXJzdCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxNTY2ICAgICAoYmFzZSAxNikJCUEtRmlyc3QgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk1RiwgTm8uIDExMS0yLCBTaGluLVRlaCBSZC4sCisJCQkJU2FuLUNodW5nIENpdHkgVGFpcGVpIFNoaWVuIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtNjcgICAoaGV4KQkJUkFEV0lOIEluYy4KKzAwMTU2NyAgICAgKGJhc2UgMTYpCQlSQURXSU4gSW5jLgorCQkJCTkwMCBDb3Jwb3JhdGUgRHJpdmUKKwkJCQlNYWh3YWggTkogMDc0MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTY4ICAgKGhleCkJCURpbGl0aGl1bSBOZXR3b3JrcworMDAxNTY4ICAgICAoYmFzZSAxNikJCURpbGl0aGl1bSBOZXR3b3JrcworCQkJCTU0MDEgT2xkIFJlZHdvb2QgSHd5CisJCQkJUGV0YWx1bWEgQ0EgOTQ5NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTY5ICAgKGhleCkJCVBFQ08gSUksIEluYy4KKzAwMTU2OSAgICAgKGJhc2UgMTYpCQlQRUNPIElJLCBJbmMuCisJCQkJNzA2MCBIdW50bGV5IFJvYWQKKwkJCQlDb2x1bWJ1cyBPSCA0MzIyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNkEgICAoaGV4KQkJREcyTCBUZWNobm9sb2dpZXMgUHZ0LiBMdGQuCiswMDE1NkEgICAgIChiYXNlIDE2KQkJREcyTCBUZWNobm9sb2dpZXMgUHZ0LiBMdGQuCisJCQkJQU1MIENlbnRlciAxLCBHbmQuIEZsb29yLCA4IE1haGFsIEluZGwuIEVzdC4KKwkJCQlPZmYuIE1haGFrYWxpIENhdmVzIFJvYWQsIEFuZGhlcmkgRQorCQkJCU11bWJhaSBNYWhhcmFzaHRyYSA0MDAwOTMKKwkJCQlJTkRJQQorCiswMC0xNS02QiAgIChoZXgpCQlQZXJmaXNhbnMgTmV0d29ya3MgQ29ycC4KKzAwMTU2QiAgICAgKGJhc2UgMTYpCQlQZXJmaXNhbnMgTmV0d29ya3MgQ29ycC4KKwkJCQk0MTE4IDE0dGggQXZlbnVlCisJCQkJVW5pdCA0CisJCQkJTWFya2hhbSBPbnRhcmlvIEwzUiAwSjMKKwkJCQlDQU5BREEKKworMDAtMTUtNkMgICAoaGV4KQkJU0FORSBTWVNURU0gQ08uLCBMVEQKKzAwMTU2QyAgICAgKGJhc2UgMTYpCQlTQU5FIFNZU1RFTSBDTy4sIExURAorCQkJCVBpa2EtQnVpbGRpbmcgNEYgIzg5NCBIb2d5ZS1Eb25nIERvbmdhbi1HVQorCQkJCUFueWFuZy1zaSBLeXVuZ2dpLWRvIDQzMS04MzYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtNkQgICAoaGV4KQkJVWJpcXVpdGkgTmV0d29ya3MgSW5jLgorMDAxNTZEICAgICAoYmFzZSAxNikJCVViaXF1aXRpIE5ldHdvcmtzIEluYy4KKwkJCQk0OTUgTW9udGFndWUgRXhwd3kuCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTZFICAgKGhleCkJCUEuIFcuIENvbW11bmljYXRpb24gU3lzdGVtcyBMdGQKKzAwMTU2RSAgICAgKGJhc2UgMTYpCQlBLiBXLiBDb21tdW5pY2F0aW9uIFN5c3RlbXMgTHRkCisJCQkJQ3Jvb2sgQmFybgorCQkJCVRoZSBDcm9vaywgUm93ZWx0b3duCisJCQkJQ2FybGlzbGUgQ3VtYnJpYSBDQTYgNkxICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtNkYgICAoaGV4KQkJWGlyYW5ldCBDb21tdW5pY2F0aW9ucyBHbWJICiswMDE1NkYgICAgIChiYXNlIDE2KQkJWGlyYW5ldCBDb21tdW5pY2F0aW9ucyBHbWJICisJCQkJQmVydG9sdC1CcmVjaHQtQWxsZWUgMjQKKwkJCQlEcmVzZGVuIFNheG9ueSAwMTMwOQorCQkJCUdFUk1BTlkKKworMDAtMTUtNzAgICAoaGV4KQkJU3ltYm9sIFRlY2hub2xvZ2llc1dob2xseSBvd25lZCBTdWJzaWRpYXJ5IG9mIE1vdG9yb2xhCiswMDE1NzAgICAgIChiYXNlIDE2KQkJU3ltYm9sIFRlY2hub2xvZ2llc1dob2xseSBvd25lZCBTdWJzaWRpYXJ5IG9mIE1vdG9yb2xhCisJCQkJT25lIE1vdG9yb2xhIFBsYXphCisJCQkJSG9sdHN2aWxsZSBOWSAxMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNzEgICAoaGV4KQkJTm9sYW4gU3lzdGVtcworMDAxNTcxICAgICAoYmFzZSAxNikJCU5vbGFuIFN5c3RlbXMKKwkJCQkxNTk1IENsZW8gU3ByaW5ncyBEci4KKwkJCQlTYW4gSm9zZSBDYS4gOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTcyICAgKGhleCkJCVJlZC1MZW1vbgorMDAxNTcyICAgICAoYmFzZSAxNikJCVJlZC1MZW1vbgorCQkJCVVuaXQgNCwgOS9GLCBQYXJhbW91bnQgQnVpbGRpbmcKKwkJCQlOby4gMTIsIEthIFlpcCBTdHJlZXQKKwkJCQlDaGFpIFdhbiAgCisJCQkJSE9ORyBLT05HCisKKzAwLTE1LTczICAgKGhleCkJCU5ld1NvZnQgIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMTU3MyAgICAgKGJhc2UgMTYpCQlOZXdTb2Z0ICBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJM0YsIDE5LTMsIFNhbkNob25nIFJELCBOYW5LYW5nLAorCQkJCVRhaXBlaSAgMTE1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS03NCAgIChoZXgpCQlIb3Jpem9uIFNlbWljb25kdWN0b3JzIEx0ZC4KKzAwMTU3NCAgICAgKGJhc2UgMTYpCQlIb3Jpem9uIFNlbWljb25kdWN0b3JzIEx0ZC4KKwkJCQk5IEhhbWVub2ZpbSBTdC4KKwkJCQlQT0IgMjE5MgorCQkJCUhlcnpsaXlhICA0NjEyMAorCQkJCUlTUkFFTAorCiswMC0xNS03NSAgIChoZXgpCQlOZXZpcyBOZXR3b3JrcyBJbmMuCiswMDE1NzUgICAgIChiYXNlIDE2KQkJTmV2aXMgTmV0d29ya3MgSW5jLgorCQkJCTM5NDUgRnJlZWRvbSBDaXJjbGUKKwkJCQlTdWl0ZSA3MjAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNzYgICAoaGV4KQkJc2NpbCBhbmltYWwgY2FyZSBjb21wYW55IEdtYkgKKzAwMTU3NiAgICAgKGJhc2UgMTYpCQlzY2lsIGFuaW1hbCBjYXJlIGNvbXBhbnkgR21iSAorCQkJCURpbmEtV2Vpc3NtYW5uLUFsbGVlIDYKKwkJCQlWaWVybmhlaW0gSGVzc2VuIDY4NTE5CisJCQkJR0VSTUFOWQorCiswMC0xNS03NyAgIChoZXgpCQlBbGxpZWQgVGVsZXNpcworMDAxNTc3ICAgICAoYmFzZSAxNikJCUFsbGllZCBUZWxlc2lzCisJCQkJMzIwMCBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS03OCAgIChoZXgpCQlBdWRpbyAvIFZpZGVvIElubm92YXRpb25zCiswMDE1NzggICAgIChiYXNlIDE2KQkJQXVkaW8gLyBWaWRlbyBJbm5vdmF0aW9ucworCQkJCUEzLTMzNzUgTm9ydGggU2VydmljZSBSb2FkCisJCQkJQnVybGluZ3RvbiBPTiBMN04gM0cyCisJCQkJQ0FOQURBCisKKzAwLTE1LTc5ICAgKGhleCkJCUx1bmF0b25lIEluZHVzdHJpZWxsZSBFbGVrdHJvbmlrIEdtYkgKKzAwMTU3OSAgICAgKGJhc2UgMTYpCQlMdW5hdG9uZSBJbmR1c3RyaWVsbGUgRWxla3Ryb25payBHbWJICisJCQkJUmVubmJhaG53ZWcgNTUKKwkJCQlXaWVuICAxMjIwCisJCQkJQVVTVFJJQQorCiswMC0xNS03QSAgIChoZXgpCQlUZWxlZmluIFMucC5BLgorMDAxNTdBICAgICAoYmFzZSAxNikJCVRlbGVmaW4gUy5wLkEuCisJCQkJVmlhIEFsYmVyZSA4Ny9BCisJCQkJVmVyb25hIFZSIDM3MTM4CisJCQkJSVRBTFkKKworMDAtMTUtN0IgICAoaGV4KQkJTGV1emUgZWxlY3Ryb25pYyBHbWJIICsgQ28uIEtHCiswMDE1N0IgICAgIChiYXNlIDE2KQkJTGV1emUgZWxlY3Ryb25pYyBHbWJIICsgQ28uIEtHCisJCQkJSW4gZGVyIEJyYWlrZSAxCisJCQkJT3dlbiBCYWRlbi1X/HJ0dGVtYmVyZyA3MzI3NworCQkJCUdFUk1BTlkKKworMDAtMTUtN0MgICAoaGV4KQkJRGF2ZSBOZXR3b3JrcywgSW5jLgorMDAxNTdDICAgICAoYmFzZSAxNikJCURhdmUgTmV0d29ya3MsIEluYy4KKwkJCQkyMTUxIE8ndG9vbCBBdmVudWUKKwkJCQlTdWl0ZSBICisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTdEICAgKGhleCkJCVBPU0RBVEEgQ08uLCBMVEQuCiswMDE1N0QgICAgIChiYXNlIDE2KQkJUE9TREFUQSBDTy4sIExURC4KKwkJCQkyNzYtMixTZW9oeWVvbi1kb25nLEJ1bmRhbmctZ3UsCisJCQkJU2VvbmduYW0tQ2l0eSBLeWVvbmdnaS1EbyA0NjMtNzc1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTdFICAgKGhleCkJCVdlaWRt77+9bGxlciBJbnRlcmZhY2UgR21iSCAmIENvLiBLRyAgIAorMDAxNTdFICAgICAoYmFzZSAxNikJCVdlaWRt77+9bGxlciBJbnRlcmZhY2UgR21iSCAmIENvLiBLRyAgIAorCQkJCUtsaW5nZW5iZXJnc3RyYe+/vWUgMTYKKwkJCQlEZXRtb2xkICAzMjc1OCAKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LTdGICAgKGhleCkJCUNodWFuRyBJbnRlcm5hdGlvbmFsIEhvbGRpbmcgQ08uLExURC4KKzAwMTU3RiAgICAgKGJhc2UgMTYpCQlDaHVhbkcgSW50ZXJuYXRpb25hbCBIb2xkaW5nIENPLixMVEQuCisJCQkJMUYsIE5PLjEyLCBBbGxleSAxLCBMYW5lIDEyNSwgR3VvbGlhbiBTdHJlZXQgNExpcm4sIFd1aGFuIFZpbGxhZ2UKKwkJCQlUYW95dWFuIExvbmd0YW4gMzI1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS04MCAgIChoZXgpCQlVLVdBWSBDT1JQT1JBVElPTgorMDAxNTgwICAgICAoYmFzZSAxNikJCVUtV0FZIENPUlBPUkFUSU9OCisJCQkJM0YtMiwgTk8uIDEyNSwgTEFORSAyMzUsIFBBTy1DSElBTworCQkJCUhTSU5USUVOIENJVFkgVEFJUEVJIEhTSUVOIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtODEgICAoaGV4KQkJTUFLVVMgSW5jLgorMDAxNTgxICAgICAoYmFzZSAxNikJCU1BS1VTIEluYy4KKwkJCQk0RiBEYWVkbyBCbGRnLiA3NDgtMTQgWWVva3NhbS1kb25nLCBLYW5nbmFtLWd1CisJCQkJU2VvdWwgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS04MiAgIChoZXgpCQlUVm9uaWNzIEx0ZAorMDAxNTgyICAgICAoYmFzZSAxNikJCVRWb25pY3MgTHRkCisJCQkJUGVub2NlZCBUZWNobm9sb2d5IFBhcmsKKwkJCQlQZW5jb2VkIE1pZCBHbGFtIENGMzUgNUhaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtODMgICAoaGV4KQkJSVZUIGNvcnBvcmF0aW9uCiswMDE1ODMgICAgIChiYXNlIDE2KQkJSVZUIGNvcnBvcmF0aW9uCisJCQkJU2hhbmdkaSBYaW54aSByb2FkLCBIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMTUtODQgICAoaGV4KQkJU2NoZW5jayBQcm9jZXNzIEdtYkgKKzAwMTU4NCAgICAgKGJhc2UgMTYpCQlTY2hlbmNrIFByb2Nlc3MgR21iSAorCQkJCVBhbGxhc3dpZXNlbnN0ci4gMTAwCisJCQkJRGFybXN0YWR0IEhlc3NlbiA2NDI5MworCQkJCUdFUk1BTlkKKworMDAtMTUtODUgICAoaGV4KQkJQW9udmlzaW9uIFRlY2hub2xvcHkgQ29ycC4KKzAwMTU4NSAgICAgKGJhc2UgMTYpCQlBb252aXNpb24gVGVjaG5vbG9weSBDb3JwLgorCQkJCTJGLCBOby4gNTgsIFBhcmsgMm5kIEF2ZS4gU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LTg2ICAgKGhleCkJCVhpYW1lbiBPdmVyc2VhcyBDaGluZXNlIEVsZWN0cm9uaWMgQ28uLCBMdGQuCiswMDE1ODYgICAgIChiYXNlIDE2KQkJWGlhbWVuIE92ZXJzZWFzIENoaW5lc2UgRWxlY3Ryb25pYyBDby4sIEx0ZC4KKwkJCQlOby4gMjIsIEh1bGkgU3RyZWV0LAorCQkJCUh1bGkgSW5kdXN0cmlhbCBEaXN0cmljdAorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA2CisJCQkJQ0hJTkEKKworMDAtMTUtODcgICAoaGV4KQkJVGFrZW5ha2EgU2Vpc2FrdXNobyBDby4sTHRkCiswMDE1ODcgICAgIChiYXNlIDE2KQkJVGFrZW5ha2EgU2Vpc2FrdXNobyBDby4sTHRkCisJCQkJMTc4IEhJU0hJRQorCQkJCUhJR0FTSEktT1NBS0EgQ0lUWSBPU0FLQSA1NzgtMDk4NAorCQkJCUpBUEFOCisKKzAwLTE1LTg4ICAgKGhleCkJCUJhbGRhIFNvbHV0aW9uIE1hbGF5c2lhIFNkbiBCaGQKKzAwMTU4OCAgICAgKGJhc2UgMTYpCQlCYWxkYSBTb2x1dGlvbiBNYWxheXNpYSBTZG4gQmhkCisJCQkJMyBKYWxhbiBaYXJpYiA2CisJCQkJS2F3YXNhbiBQZXJpbmR1c3RyaWFuIFphcmliCisJCQkJTGFoYXQsIElwb2ggUGVyYWsgMzE1MDAKKwkJCQlNQUxBWVNJQQorCiswMC0xNS04OSAgIChoZXgpCQlELU1BWCBUZWNobm9sb2d5IENvLixMdGQKKzAwMTU4OSAgICAgKGJhc2UgMTYpCQlELU1BWCBUZWNobm9sb2d5IENvLixMdGQKKwkJCQk3Ri02LE5PLjI2LExpYW4gQ2hlbmcgUkQuLENodW5nLUhvIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtOEEgICAoaGV4KQkJU1VSRUNPTSBUZWNobm9sb2d5IENvcnAuCiswMDE1OEEgICAgIChiYXNlIDE2KQkJU1VSRUNPTSBUZWNobm9sb2d5IENvcnAuCisJCQkJNkYsIE5vLiAxMjUsIFNlYy4gMiwgRGF0dW5nIFJkLgorCQkJCVNoaWpyIENpdHksIFRhaXBlaSBDb3VudHkgIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtOEIgICAoaGV4KQkJUGFyayBBaXIgU3lzdGVtcyBMdGQKKzAwMTU4QiAgICAgKGJhc2UgMTYpCQlQYXJrIEFpciBTeXN0ZW1zIEx0ZAorCQkJCU5vcnRoZmllbGRzCisJCQkJTWFya2V0IERlZXBpbmcKKwkJCQlQZXRlcmJvcm91Z2ggIFBFNiA4VUUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNS04QyAgIChoZXgpCQlMaWFiIEFwUworMDAxNThDICAgICAoYmFzZSAxNikJCUxpYWIgQXBTCisJCQkJT2VzdHJlIEFsbGUgNgorCQkJCVN0b2V2cmluZyAgREstOTUzMAorCQkJCURFTk1BUksKKworMDAtMTUtOEQgICAoaGV4KQkJSmVubmljIEx0ZAorMDAxNThEICAgICAoYmFzZSAxNikJCUplbm5pYyBMdGQKKwkJCQlGdXJuaXZhbCBTdHJlZXQKKwkJCQlTaGVmZmllbGQgWW9ya3NoaXJlIFMxIDRRVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE1LThFICAgKGhleCkJCVBsdXN0ZWsuSU5DCiswMDE1OEUgICAgIChiYXNlIDE2KQkJUGx1c3Rlay5JTkMKKwkJCQkxM0YtMSxObzMoQnVpbGRpbmcgRikgWXVhbiBRdSBTdHJlZXQKKwkJCQlUYWlwZWkgWXVhbiBRdSAxMTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LThGICAgKGhleCkJCU5UVCBBZHZhbmNlZCBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDE1OEYgICAgIChiYXNlIDE2KQkJTlRUIEFkdmFuY2VkIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQlTaGluanVrdSBNaXRzdWkgQmxkZy4gMi0xLTEsIE5pc2hpLXNoaW5qdWt1CisJCQkJU2hpbmp1a3Uta3UgVG9reW8gMTYzLTA0MzEKKwkJCQlKQVBBTgorCiswMC0xNS05MCAgIChoZXgpCQlIZWN0cm9uaWMgR21iSAorMDAxNTkwICAgICAoYmFzZSAxNikJCUhlY3Ryb25pYyBHbWJICisJCQkJQWxsbWVuZHN0cmFzc2UgMTUKKwkJCQlCb25uZG9yZiBCYWRlbi1X/HJ0dGVtYmVyZyA3OTg0OAorCQkJCUdFUk1BTlkKKworMDAtMTUtOTEgICAoaGV4KQkJUkxXIEluYy4KKzAwMTU5MSAgICAgKGJhc2UgMTYpCQlSTFcgSW5jLgorCQkJCTIwMjkgQ2F0byBBdmUuCisJCQkJU3RhdGUgQ29sbGVnZSBQQSAxNjgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtOTIgICAoaGV4KQkJRmFjb20gVUsgTHRkIChNZWxrc2hhbSkKKzAwMTU5MiAgICAgKGJhc2UgMTYpCQlGYWNvbSBVSyBMdGQgKE1lbGtzaGFtKQorCQkJCUxhbmNhc3RlciBIb3VzZQorCQkJCUJvd2VyaGlsbCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCU1lbGtzaGFtIFdpbHRzaGlyZSBTTjEwNEZCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtOTMgICAoaGV4KQkJVTRFQSBUZWNobm9sb2dpZXMgSW5jLgorMDAxNTkzICAgICAoYmFzZSAxNikJCVU0RUEgVGVjaG5vbG9naWVzIEluYy4KKwkJCQk0ODg2MCBNaWxtb250IERyaXZlCisJCQkJU3VpdGUxMDdDCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtOTQgICAoaGV4KQkJQklYT0xPTiBDTy4sTFRECiswMDE1OTQgICAgIChiYXNlIDE2KQkJQklYT0xPTiBDTy4sTFRECisJCQkJNTAyLTUwOCxEaWdpdGFsIEVtcGlyZSBCbGRnLgorCQkJCTk4MC0zIFllb25ndG9uZy1Eb25nCisJCQkJWWVvbmd0b25nLUd1LFN1d29uIEd5ZW9uZ2dpLURvIDQ0My04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtOTUgICAoaGV4KQkJUXVlc3RlciBUYW5nZW50IENvcnBvcmF0aW9uCiswMDE1OTUgICAgIChiYXNlIDE2KQkJUXVlc3RlciBUYW5nZW50IENvcnBvcmF0aW9uCisJCQkJMjAxIC0gOTg2NSBXZXN0IFNhYW5pY2ggUm9hZAorCQkJCVNpZG5leSBCQyBWOEwgNVk4CisJCQkJQ0FOQURBCisKKzAwLTE1LTk2ICAgKGhleCkJCUFSUklTIEludGVybmF0aW9uYWwKKzAwMTU5NiAgICAgKGJhc2UgMTYpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS05NyAgIChoZXgpCQlBRVRBIEFVRElPIFNZU1RFTVMKKzAwMTU5NyAgICAgKGJhc2UgMTYpCQlBRVRBIEFVRElPIFNZU1RFTVMKKwkJCQkxOC0yMiwgYXZlbnVlIEVkb3VhcmQgSGVycmlvdAorCQkJCUtlcGxlciA0CisJCQkJTGUgUGxlc3NpcyBSb2JpbnNvbiAgOTIzNTAKKwkJCQlGUkFOQ0UKKworMDAtMTUtOTggICAoaGV4KQkJS29sZWt0b3IgZ3JvdXAKKzAwMTU5OCAgICAgKGJhc2UgMTYpCQlLb2xla3RvciBncm91cAorCQkJCVZvamtvdmEgMTAKKwkJCQlJZHJpamEgIDUyODAKKwkJCQlTTE9WRU5JQQorCiswMC0xNS05OSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECiswMDE1OTkgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIExURAorCQkJCTQxNiwgTWFldGFuLTNEb25nLCBZZW9uZ3RvbmctR3UKKwkJCQlTdXdvbiBHeWVvbmdnaSA0NDMtNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTlBICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE1OUEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS05QiAgIChoZXgpCQlOb3J0ZWwKKzAwMTU5QiAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xNS05QyAgIChoZXgpCQlCLUtZVU5HIFNZU1RFTSBDby4sTHRkLgorMDAxNTlDICAgICAoYmFzZSAxNikJCUItS1lVTkcgU1lTVEVNIENvLixMdGQuCisJCQkJIzgxMixXT09MSU0gRS1CSVogQ0VOVEVSLDE3MC01CisJCQkJR1VSTy1ET05HIEdVUk8tR1UgMTUyLTg0NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS05RCAgIChoZXgpCQlNaW5pY29tIEFkdmFuY2VkIFN5c3RlbXMgbHRkCiswMDE1OUQgICAgIChiYXNlIDE2KQkJTWluaWNvbSBBZHZhbmNlZCBTeXN0ZW1zIGx0ZAorCQkJCTE2LCBIYXJ0b20gU3QuCisJCQkJSGFyLUhvdHp2aW0KKwkJCQlKZXJ1c2FsZW0gIDkxNDUwCisJCQkJSVNSQUVMCisKKzAwLTE1LTlFICAgKGhleCkJCU1hZCBDYXR6IEludGVyYWN0aXZlIEluYworMDAxNTlFICAgICAoYmFzZSAxNikJCU1hZCBDYXR6IEludGVyYWN0aXZlIEluYworCQkJCVVuaXRzIDMrNCBXZXN0IFBvaW50IFJvdworCQkJCUdyZWF0IFBhcmsgUmQsIEFsbW9uZHNidXJ5CisJCQkJQnJpc3RvbCBTb3V0aCBHbG91Y2VzdGVyc2hpcmUgQlMzMiA0UUcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNS05RiAgIChoZXgpCQlUZXJhc2NhbGEsIEluYy4KKzAwMTU5RiAgICAgKGJhc2UgMTYpCQlUZXJhc2NhbGEsIEluYy4KKwkJCQkxNDUgQm9kd2VsbCBTdHJlZXQKKwkJCQlBdm9uIE1BIDAyMzIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1BMCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxNUEwICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xNS1BMSAgIChoZXgpCQlFQ0EtU0lOVEVSUworMDAxNUExICAgICAoYmFzZSAxNikJCUVDQS1TSU5URVJTCisJCQkJNSwgcnVlIFBhdWwgTWVzcGzpCisJCQkJVE9VTE9VU0UgQ2VkZXggMDEgMzExMDYKKwkJCQlGUkFOQ0UKKworMDAtMTUtQTIgICAoaGV4KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorMDAxNUEyICAgICAoYmFzZSAxNikJCUFSUklTIEludGVybmF0aW9uYWwKKwkJCQkzODcxIExha2VmaWVsZCBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCVN1d2FuZWUgR0EgMzAwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUEzICAgKGhleCkJCUFSUklTIEludGVybmF0aW9uYWwKKzAwMTVBMyAgICAgKGJhc2UgMTYpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1BNCAgIChoZXgpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCiswMDE1QTQgICAgIChiYXNlIDE2KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQTUgICAoaGV4KQkJRENJIENvLiwgTHRkLgorMDAxNUE1ICAgICAoYmFzZSAxNikJCURDSSBDby4sIEx0ZC4KKwkJCQk0dGggRmwuIFN1c3VuZyBCL0QsIDg5My00CisJCQkJSmlqb2stZG9uZworCQkJCVl1c2VvbmctZ3UgRGFlamVvbiAzMDUtMzMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LUE2ICAgKGhleCkJCURpZ2l0YWwgRWxlY3Ryb25pY3MgUHJvZHVjdHMgTHRkLgorMDAxNUE2ICAgICAoYmFzZSAxNikJCURpZ2l0YWwgRWxlY3Ryb25pY3MgUHJvZHVjdHMgTHRkLgorCQkJCVJvb20gMzAxLCAzIHJkIEZsb29yLCBUc3VuIFlpcCBDZW50cmUKKwkJCQk0MSBUc3VuIFlpcCBTdHJlZXQKKwkJCQlLd3VuIFRvbmcgIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xNS1BNyAgIChoZXgpCQlSb2JhdGVjaCBBRworMDAxNUE3ICAgICAoYmFzZSAxNikJCVJvYmF0ZWNoIEFHCisJCQkJUGlsYXR1c3JpbmcgMTAKKwkJCQlNdXJpIEFHIDU2MzAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xNS1BOCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxNUE4ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4gVXMgSHd5IDQ1CisJCQkJUm0gTVcxMTMKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUE5ICAgKGhleCkJCUtXQU5HIFdPTyBJJkMgQ08uLExURAorMDAxNUE5ICAgICAoYmFzZSAxNikJCUtXQU5HIFdPTyBJJkMgQ08uLExURAorCQkJCTg5OC0yMywgSG9neWUtZG9uZyxEb25nYW4tZ3UKKwkJCQlBbnlhbmctc2ksR3llb25nZ2ktZG8KKwkJCQk0MzEtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LUFBICAgKGhleCkJCVJleHRlY2huaWsgSW50ZXJuYXRpb25hbCBDby4sCiswMDE1QUEgICAgIChiYXNlIDE2KQkJUmV4dGVjaG5payBJbnRlcm5hdGlvbmFsIENvLiwKKwkJCQlSb29tIDUtMywgTm8uNTEsIFNlY3Rpb24gMiwgS2VlbHVuZyBSb2FkCisJCQkJVGFpcGVpICAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LUFCICAgKGhleCkJCVBSTyBDTyBTT1VORCBJTkMKKzAwMTVBQiAgICAgKGJhc2UgMTYpCQlQUk8gQ08gU09VTkQgSU5DCisJCQkJMjI1IFBBUlNPTlMgU1RSRUVUCisJCQkJS0FMQU1BWk9PIE1JQ0hJR0FOIDQ5MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1BQyAgIChoZXgpCQlDYXBlbG9uIEFCCiswMDE1QUMgICAgIChiYXNlIDE2KQkJQ2FwZWxvbiBBQgorCQkJCUrkZ2VyaG9ybnMgduRnIDEKKwkJCQlLdW5nZW5zIEt1cnZhIFN0b2NraG9sbSBTLTE0MSA3NQorCQkJCVNXRURFTgorCiswMC0xNS1BRCAgIChoZXgpCQlBY2NlZGlhbiBOZXR3b3JrcworMDAxNUFEICAgICAoYmFzZSAxNikJCUFjY2VkaWFuIE5ldHdvcmtzCisJCQkJNDg3OCBMZXZ5LCBzdWl0ZSAyMDIKKwkJCQlzdWl0ZSAyMDIKKwkJCQlTdC1MYXVyZW50IFF1ZWJlYyBIOVAgMlY0CisJCQkJQ0FOQURBCisKKzAwLTE1LUFFICAgKGhleCkJCWt5dW5nIGlsCiswMDE1QUUgICAgIChiYXNlIDE2KQkJa3l1bmcgaWwKKwkJCQl3b2FyIHJvbmctbXluIHlvdWdhdGUtcmkgMTAxLTIKKwkJCQlwYWp1LWNpdHkgZ3llb25nIGdpIDQxMy04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtQUYgICAoaGV4KQkJQXp1cmVXYXZlIFRlY2hub2xvZ2llcywgSW5jLgorMDAxNUFGICAgICAoYmFzZSAxNikJCUF6dXJlV2F2ZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk4Ri4sIE5vLjk0LCBCYW96aG9uZyBSZC4sIFhpbmRpYW4KKwkJCQlUYWlwZWkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtQjAgICAoaGV4KQkJQVVUT1RFTEVORVQgQ08uLExURAorMDAxNUIwICAgICAoYmFzZSAxNikJCUFVVE9URUxFTkVUIENPLixMVEQKKwkJCQkyRiwgODk4LTI0LCBIb2d5ZTItZG9uZywgRG9uZ2FuLWd1CisJCQkJQW55YW5nLUNpdHkgS3l1bmdnaS1kbyA0MzEtODM2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LUIxICAgKGhleCkJCUFtYmllbnQgQ29ycG9yYXRpb24KKzAwMTVCMSAgICAgKGJhc2UgMTYpCQlBbWJpZW50IENvcnBvcmF0aW9uCisJCQkJNzkgQ2hhcGVsIFN0LgorCQkJCU5ld3RvbiBNQSAwMjQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQjIgICAoaGV4KQkJQWR2YW5jZWQgSW5kdXN0cmlhbCBDb21wdXRlciwgSW5jLgorMDAxNUIyICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIEluZHVzdHJpYWwgQ29tcHV0ZXIsIEluYy4KKwkJCQkxNzk3MCBFLiBBamF4IENpcmNsZQorCQkJCUNpdHkgb2YgSW5kdXN0cnkgQ0EgOTE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUIzICAgKGhleCkJCUNhcmV0ZWNoIEFCCiswMDE1QjMgICAgIChiYXNlIDE2KQkJQ2FyZXRlY2ggQUIKKwkJCQlOeWJvcmdzduRnZW4gMTk3CisJCQkJS2FsaXggIDk1MjkxCisJCQkJU1dFREVOCisKKzAwLTE1LUI0ICAgKGhleCkJCVBvbHltYXAgIFdpcmVsZXNzIExMQworMDAxNUI0ICAgICAoYmFzZSAxNikJCVBvbHltYXAgIFdpcmVsZXNzIExMQworCQkJCTMxMCBTLiBXaWxsaWFtcyBCbHZkLiBTdGUuIDM1MAorCQkJCVR1Y3NvbiBBWiA4NTcxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQjUgICAoaGV4KQkJQ0kgTmV0d29yayBDb3JwLgorMDAxNUI1ICAgICAoYmFzZSAxNikJCUNJIE5ldHdvcmsgQ29ycC4KKwkJCQkyRiBEYWluaSBJbm91ZSBCbGRnCisJCQkJMS02LTYgQWthc2FrYSBNaW5hdG8ta3UKKwkJCQlUb2t5byAgMTA3LTAwNTIKKwkJCQlKQVBBTgorCiswMC0xNS1CNiAgIChoZXgpCQlTaGluTWF5d2EgSW5kdXN0cmllcywgTHRkLgorMDAxNUI2ICAgICAoYmFzZSAxNikJCVNoaW5NYXl3YSBJbmR1c3RyaWVzLCBMdGQuCisJCQkJMS0xIFNoaW5tZWl3YS1jaG8KKwkJCQlUYWthcmF6dWthIEh5b2dvIDY2NS04NTUwCisJCQkJSkFQQU4KKworMDAtMTUtQjcgICAoaGV4KQkJVG9zaGliYQorMDAxNUI3ICAgICAoYmFzZSAxNikJCVRvc2hpYmEKKwkJCQkyLTksU3VlaGlyby1DaG8KKwkJCQlPbWUgVG9reW8gMTk4ODcxMAorCQkJCUpBUEFOCisKKzAwLTE1LUI4ICAgKGhleCkJCVRhaG9lCiswMDE1QjggICAgIChiYXNlIDE2KQkJVGFob2UKKwkJCQl1bC4gVW5pd2Vyc3l0ZWNrYSAxCisJCQkJV3JvY2xhdyAgNTA5NTEKKwkJCQlQT0xBTkQKKworMDAtMTUtQjkgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMTVCOSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCSM5NC0xCisJCQkJSW1zb28tRG9uZworCQkJCUd1bWktQ2l0eSBHeWVvbmctQnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtQkEgICAoaGV4KQkJaWJhIEFHCiswMDE1QkEgICAgIChiYXNlIDE2KQkJaWJhIEFHCisJCQkJS29lbmlnc3dhcnRlcnN0cmFzc2UgNDQKKwkJCQlGdWVydGggQmF2YXJpYSA5MDc2MgorCQkJCUdFUk1BTlkKKworMDAtMTUtQkIgICAoaGV4KQkJU01BIFNvbGFyIFRlY2hub2xvZ3kgQUcKKzAwMTVCQiAgICAgKGJhc2UgMTYpCQlTTUEgU29sYXIgVGVjaG5vbG9neSBBRworCQkJCVNvbm5lbmFsbGVlIDEKKwkJCQlOaWVzdGV0YWwgSGVzc2VuIDM0MjY2CisJCQkJR0VSTUFOWQorCiswMC0xNS1CQyAgIChoZXgpCQlEZXZlbGNvCiswMDE1QkMgICAgIChiYXNlIDE2KQkJRGV2ZWxjbworCQkJCU9sb2YgUGFsbWVzIEFsbOkgNDAKKwkJCQlBYXJodXMgTiAgODIwMAorCQkJCURFTk1BUksKKworMDAtMTUtQkQgICAoaGV4KQkJR3JvdXAgNCBUZWNobm9sb2d5IEx0ZAorMDAxNUJEICAgICAoYmFzZSAxNikJCUdyb3VwIDQgVGVjaG5vbG9neSBMdGQKKwkJCQlDaGFsbGVuZ2UgSG91c2UKKwkJCQlJbnRlcm5hdGlvbmFsIERyaXZlCisJCQkJVGV3a2VzYnVyeSBHbG91Y2VzdGVyc2hpcmUgR0wyMCA4VVEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNS1CRSAgIChoZXgpCQlJcXVhIEx0ZC4KKzAwMTVCRSAgICAgKGJhc2UgMTYpCQlJcXVhIEx0ZC4KKwkJCQlIeXZvbmlua2F0dSAxCisJCQkJU2FsbyBWYXJzaW5haXMtU3VvbWkgMjQyNDAKKwkJCQlGSU5MQU5ECisKKzAwLTE1LUJGICAgKGhleCkJCXRlY2huaWNvYgorMDAxNUJGICAgICAoYmFzZSAxNikJCXRlY2huaWNvYgorCQkJCTQgUnVlIENhbWlsbGUgU2FpbnQtU2FlbnMKKwkJCQlMQU5FU1RFUiBNb3JiaWhhbiA1NjYwMgorCQkJCUZSQU5DRQorCiswMC0xNS1DMCAgIChoZXgpCQlESUdJVEFMIFRFTEVNRURJQSBDTy4sTFRELgorMDAxNUMwICAgICAoYmFzZSAxNikJCURJR0lUQUwgVEVMRU1FRElBIENPLixMVEQuCisJCQkJMTdUSCBGTE9PUiwgQ0hJTkEgWVVTRSBCVUlMRElORywKKwkJCQlOTyA2MDEzIFNIRU5OQU4gUk9BRCxGVVRJQU4gRElTVFJJQ1QKKwkJCQlTSEVOWkhFTiBHVUFOR0RPTkcgNTE4MDQwCisJCQkJQ0hJTkEKKworMDAtMTUtQzEgICAoaGV4KQkJU09OWSBDb21wdXRlciBFbnRlcnRhaW5tZW50IGluYywKKzAwMTVDMSAgICAgKGJhc2UgMTYpCQlTT05ZIENvbXB1dGVyIEVudGVydGFpbm1lbnQgaW5jLAorCQkJCTYtMjEsMkNob21lCisJCQkJTWluYW1pLUFveWFtYQorCQkJCU1pbmF0by1rdSBUb2t5byAxMDctMDA2MgorCQkJCUpBUEFOCisKKzAwLTE1LUMyICAgKGhleCkJCTNNIEdlcm1hbnkKKzAwMTVDMiAgICAgKGJhc2UgMTYpCQkzTSBHZXJtYW55CisJCQkJQ2FybCBTY2h1cnogU3RyLiAxCisJCQkJTmV1c3MgTlJXIDQxNDUzCisJCQkJR0VSTUFOWQorCiswMC0xNS1DMyAgIChoZXgpCQlSdWYgVGVsZW1hdGlrIEFHCiswMDE1QzMgICAgIChiYXNlIDE2KQkJUnVmIFRlbGVtYXRpayBBRworCQkJCVJ1ZXRpc3RyYXNzZSAxMworCQkJCVNjaGxpZXJlbiBaSCA4OTUyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTUtQzQgICAoaGV4KQkJRkxPVkVMIENPLiwgTFRELgorMDAxNUM0ICAgICAoYmFzZSAxNikJCUZMT1ZFTCBDTy4sIExURC4KKwkJCQlUaGUgVGFjaGloaSBidWlsZGluZyBObywzIGhhbGwsIDYtMSwgU2FrYWUtY2hvLAorCQkJCVRhY2hpa2F3YS1zaGkKKwkJCQlUb2t5byAgMTkwLTAwMDMKKwkJCQlKQVBBTgorCiswMC0xNS1DNSAgIChoZXgpCQlEZWxsIEluYworMDAxNUM1ICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQzYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNUM2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQzcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNUM3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQzggICAoaGV4KQkJRmxleGlQYW5lbCBMdGQKKzAwMTVDOCAgICAgKGJhc2UgMTYpCQlGbGV4aVBhbmVsIEx0ZAorCQkJCTcgYmlzIHJ1ZSBMYWxvCisJCQkJUGFyaXMgNzUwMTYKKwkJCQlGUkFOQ0UKKworMDAtMTUtQzkgICAoaGV4KQkJR3Vtc3RpeCwgSW5jCiswMDE1QzkgICAgIChiYXNlIDE2KQkJR3Vtc3RpeCwgSW5jCisJCQkJMzEzMCBBbHBpbmUgUm9hZAorCQkJCVN1aXRlIDI4OC02MDYKKwkJCQlQb3J0b2xhIFZhbGxleSBDQSA5NDAyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQ0EgICAoaGV4KQkJVGVyYVJlY29uLCBJbmMuCiswMDE1Q0EgICAgIChiYXNlIDE2KQkJVGVyYVJlY29uLCBJbmMuCisJCQkJMjk1NSBDYW1wdXMgRHJpdmUsIFN1aXRlIDMyNQorCQkJCVNhbiBNYXRlbyBDQSA5NDQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQ0IgICAoaGV4KQkJU3VyZiBDb21tdW5pY2F0aW9uIFNvbHV0aW9ucyBMdGQuCiswMDE1Q0IgICAgIChiYXNlIDE2KQkJU3VyZiBDb21tdW5pY2F0aW9uIFNvbHV0aW9ucyBMdGQuCisJCQkJUC5PLiBCb3ggMzQzCisJCQkJU29sdGFtIEluZHVzdHJpYWwgWm9uZQorCQkJCVlva25lYW0gIDIwMTY0CisJCQkJSVNSQUVMCisKKzAwLTE1LUNDICAgKGhleCkJCVRFUENPIFVRVUVTVCwgTFRELgorMDAxNUNDICAgICAoYmFzZSAxNikJCVRFUENPIFVRVUVTVCwgTFRELgorCQkJCVNhbm5vbWl5YSBJbnRlcyBCbGRnLiA4RgorCQkJCTctMS04IElzb2dhbWktZG9yaSwgQ2h1by1rdQorCQkJCUtvYmUgSFlPR08gNjUxLTAwODYKKwkJCQlKQVBBTgorCiswMC0xNS1DRCAgIChoZXgpCQlFeGFydGVjaCBJbnRlcm5hdGlvbmFsIENvcnAuCiswMDE1Q0QgICAgIChiYXNlIDE2KQkJRXhhcnRlY2ggSW50ZXJuYXRpb25hbCBDb3JwLgorCQkJCTMvRiwgTm8uNjIsIExhbmUgMTg4LCBSdWVpIEd1YW5nIFJkLiwgTmVpaHUKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtQ0UgICAoaGV4KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorMDAxNUNFICAgICAoYmFzZSAxNikJCUFSUklTIEludGVybmF0aW9uYWwKKwkJCQkzODcxIExha2VmaWVsZCBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCVN1d2FuZWUgR0EgMzAwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUNGICAgKGhleCkJCUFSUklTIEludGVybmF0aW9uYWwKKzAwMTVDRiAgICAgKGJhc2UgMTYpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1EMCAgIChoZXgpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCiswMDE1RDAgICAgIChiYXNlIDE2KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtRDEgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMTVEMSAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtRDIgICAoaGV4KQkJWGFudGVjaCBDb3Jwb3JhdGlvbgorMDAxNUQyICAgICAoYmFzZSAxNikJCVhhbnRlY2ggQ29ycG9yYXRpb24KKwkJCQkxMzEwMCBUZWxmYWlyIEF2ZW51ZQorCQkJCVNlY29uZCBGbG9vcgorCQkJCVN5bG1hciBDQSA5MTM0Mi0zNTczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1EMyAgIChoZXgpCQlQYW50ZWNoJkN1cml0ZWwgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTVEMyAgICAgKGJhc2UgMTYpCQlQYW50ZWNoJkN1cml0ZWwgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkxNDUxLTM0LCBTZW9jaG8tZG9uZywgU2VvY2hvLUd1CisJCQkJU2VvdWwgIDEzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtRDQgICAoaGV4KQkJRW1pdG9yIEFCCiswMDE1RDQgICAgIChiYXNlIDE2KQkJRW1pdG9yIEFCCisJCQkJU2r2dmlrc2JhY2tlbiAxNAorCQkJCVN0b2NraG9sbSAgMTE3IDQzCisJCQkJU1dFREVOCisKKzAwLTE1LUQ1ICAgKGhleCkJCU5JQ0VWVAorMDAxNUQ1ICAgICAoYmFzZSAxNikJCU5JQ0VWVAorCQkJCVdhcnNoYXdza29lIHNob3NzZSAxMjUKKwkJCQlNb3Njb3cgIDExNzQwNQorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xNS1ENiAgIChoZXgpCQlPU0xpTksgU3AuIHogby5vLgorMDAxNUQ2ICAgICAoYmFzZSAxNikJCU9TTGlOSyBTcC4geiBvLm8uCisJCQkJdWwuIE1hcnNhIDI3CisJCQkJR2RhbnNrICA4MDI5OQorCQkJCVBPTEFORAorCiswMC0xNS1ENyAgIChoZXgpCQlSZXRpIENvcnBvcmF0aW9uCiswMDE1RDcgICAgIChiYXNlIDE2KQkJUmV0aSBDb3Jwb3JhdGlvbgorCQkJCTZGLE5vIDEzLCBMYW5lIDEyMCwgU2VjIDEsIE5laWh1IFJkLiwKKwkJCQlUYWlwZWkgQ2l0eSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS1EOCAgIChoZXgpCQlJbnRlcmxpbmsgRWxlY3Ryb25pY3MKKzAwMTVEOCAgICAgKGJhc2UgMTYpCQlJbnRlcmxpbmsgRWxlY3Ryb25pY3MKKwkJCQk1NDYgRmx5bm4gUm9hZAorCQkJCUNhbWFyaWxsbyBDQSA5MzAxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtRDkgICAoaGV4KQkJUEtDIEVsZWN0cm9uaWNzIE95CiswMDE1RDkgICAgIChiYXNlIDE2KQkJUEtDIEVsZWN0cm9uaWNzIE95CisJCQkJUGFqdW5paXR5bnRpZSA0MworCQkJCVJBQUhFICA5MjEyMAorCQkJCUZJTkxBTkQKKworMDAtMTUtREEgICAoaGV4KQkJSVJJVEVMIEEuRC4KKzAwMTVEQSAgICAgKGJhc2UgMTYpCQlJUklURUwgQS5ELgorCQkJCUJhdGFqbmlja2kgcHV0IDIzCisJCQkJQmVvZ3JhZCBTZXJiaWEgMTEwODAKKwkJCQlZVUdPU0xBVklBCisKKzAwLTE1LURCICAgKGhleCkJCUNhbmVzdGEgSW5jLgorMDAxNURCICAgICAoYmFzZSAxNikJCUNhbmVzdGEgSW5jLgorCQkJCTk2NSBXZXN0IE1hdWRlIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1EQyAgIChoZXgpCQlLVCZDIENvLiwgTHRkLgorMDAxNURDICAgICAoYmFzZSAxNikJCUtUJkMgQ28uLCBMdGQuCisJCQkJNDg3LTQsIEtUJkMgQmxkZy4KKwkJCQlCYW5nSHdhLURvbmcKKwkJCQlHYW5nU2VvLUt1IFNlb3VsIDE1Ny04NDkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtREQgICAoaGV4KQkJSVAgQ29udHJvbCBTeXN0ZW1zIEx0ZC4KKzAwMTVERCAgICAgKGJhc2UgMTYpCQlJUCBDb250cm9sIFN5c3RlbXMgTHRkLgorCQkJCVVuaXQgMTUsIEhpLVRlY2ggVmlsbGFnZSwKKwkJCQlXaXRuZXkgV2F5LCBCb2xkb24gQnVzaW5lc3MgUGFyaywKKwkJCQlCb2xkb24gVHluZSAmIFdlYXIgTkUzNSA5UEUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNS1ERSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxNURFICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwIFYKKwkJCQlERU5NQVJLCisKKzAwLTE1LURGICAgKGhleCkJCUNsaXZldCBTLnAuQS4KKzAwMTVERiAgICAgKGJhc2UgMTYpCQlDbGl2ZXQgUy5wLkEuCisJCQkJdmlhIENhbXAgTG9uYyAyNQorCQkJCUZlbHRyZSBCZWxsdW5vIDMyMDMwCisJCQkJSVRBTFkKKworMDAtMTUtRTAgICAoaGV4KQkJU1QtRXJpY3Nzb24KKzAwMTVFMCAgICAgKGJhc2UgMTYpCQlTVC1Fcmljc3NvbgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kICBTRS0yMjEgODMKKwkJCQlTV0VERU4KKworMDAtMTUtRTEgICAoaGV4KQkJUGljb2NoaXAgTHRkCiswMDE1RTEgICAgIChiYXNlIDE2KQkJUGljb2NoaXAgTHRkCisJCQkJVXBwZXIgQm9yb3VnaCBDb3VydAorCQkJCVVwcGVyIEJvcm91Z2ggV2FsbHMKKwkJCQlCYXRoICBCQTEgMVJHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtRTIgICAoaGV4KQkJRHIuSW5nLiBIZXJiZXJ0IEtuYXVlciBHbWJICiswMDE1RTIgICAgIChiYXNlIDE2KQkJRHIuSW5nLiBIZXJiZXJ0IEtuYXVlciBHbWJICisJCQkJSGVnYXVlciBXZWcgMzgKKwkJCQlCZXJsaW4gIDE0MTYzCisJCQkJR0VSTUFOWQorCiswMC0xNS1FMyAgIChoZXgpCQlEcmVhbSBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24KKzAwMTVFMyAgICAgKGJhc2UgMTYpCQlEcmVhbSBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24KKwkJCQlFYmlzdSBQcmltZSBTcXVhcmUsIDEtMS0zOSBIaXJvbworCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUwLTAwMTIKKwkJCQlKQVBBTgorCiswMC0xNS1FNCAgIChoZXgpCQlaaW1tZXIgRWxla3Ryb21lZGl6aW4KKzAwMTVFNCAgICAgKGJhc2UgMTYpCQlaaW1tZXIgRWxla3Ryb21lZGl6aW4KKwkJCQlKdW5rZXJzc3RyYXNzZSA5CisJCQkJTmV1LVVsbSBCYXllcm4gODkyMzEKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LUU1ICAgKGhleCkJCUNoZWVydGVrIEluYy4KKzAwMTVFNSAgICAgKGJhc2UgMTYpCQlDaGVlcnRlayBJbmMuCisJCQkJTm8uMiwgRHUtU2luZyBGaXJzdCBSb2FkLCBTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LUU2ICAgKGhleCkJCU1PQklMRSBURUNITklLQSBJbmMuCiswMDE1RTYgICAgIChiYXNlIDE2KQkJTU9CSUxFIFRFQ0hOSUtBIEluYy4KKwkJCQlTb3RvYm9yaSBTa3kgQmxkLiA1dGggRmxvb3IKKwkJCQkyLTExIEljaGlnYXlhIEhvbm11cmEtY2hvLAorCQkJCVNoaW5qdWt1LWt1IFRva3lvIDE2Mi0wODQ1CisJCQkJSkFQQU4KKworMDAtMTUtRTcgICAoaGV4KQkJUXVhbnRlYyBQcm9BdWRpbworMDAxNUU3ICAgICAoYmFzZSAxNikJCVF1YW50ZWMgUHJvQXVkaW8KKwkJCQlMZW9wb2xkc3RyYXNzZSAxOAorCQkJCU38bmNoZW4gIEQtODA4MDIKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LUU4ICAgKGhleCkJCU5vcnRlbAorMDAxNUU4ICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTE1LUU5ICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxNUU5ICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCTJGLCBOby4yMzMtMiwgUGFvLUNoaWFvIFJvYWQKKwkJCQlIc2luLVRpZW4sIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LUVBICAgKGhleCkJCVRlbGx1bWF0IChQdHkpIEx0ZAorMDAxNUVBICAgICAoYmFzZSAxNikJCVRlbGx1bWF0IChQdHkpIEx0ZAorCQkJCTY0Lzc0IFdoaXRlIFJvYWQKKwkJCQlSZXRyZWF0CisJCQkJQ2FwZSBUb3duIFdlc3Rlcm4gUHJvdmluY2UgNzk0NQorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xNS1FQiAgIChoZXgpCQlaVEUgQ09SUE9SQVRJT04KKzAwMTVFQiAgICAgKGJhc2UgMTYpCQlaVEUgQ09SUE9SQVRJT04KKwkJCQk1L0YsQSBXaW5nLFpURSBQbGF6YSxLZWppIFJvYWQgU291dGgsSGktVGVjaCBJbmR1c3RyaWFsIFBhcmssTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xNS1FQyAgIChoZXgpCQlCb2NhIERldmljZXMgTExDCiswMDE1RUMgICAgIChiYXNlIDE2KQkJQm9jYSBEZXZpY2VzIExMQworCQkJCTYzNTMgVy4gUm9nZXJzIENpcmNsZSAjNAorCQkJCUJvY2EgUmF0b24gRmxvcmlkYSAzMzQ4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtRUQgICAoaGV4KQkJRnVsY3J1bSBNaWNyb3N5c3RlbXMsIEluYy4KKzAwMTVFRCAgICAgKGJhc2UgMTYpCQlGdWxjcnVtIE1pY3Jvc3lzdGVtcywgSW5jLgorCQkJCTI2NjMwIEFnb3VyYSBSb2FkCisJCQkJQ2FsYWJhc2FzIENBIDkxMzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1FRSAgIChoZXgpCQlPbW5leCBDb250cm9sIFN5c3RlbXMKKzAwMTVFRSAgICAgKGJhc2UgMTYpCQlPbW5leCBDb250cm9sIFN5c3RlbXMKKwkJCQkjNzQgLSAxODMzIENvYXN0IE1lcmlkaWFuIFJkLgorCQkJCVBvcnQgQ29xdWl0bGFtIEJDIFYzQyA2RzUKKwkJCQlDQU5BREEKKworMDAtMTUtRUYgICAoaGV4KQkJTkVDIFRPS0lOIENvcnBvcmF0aW9uCiswMDE1RUYgICAgIChiYXNlIDE2KQkJTkVDIFRPS0lOIENvcnBvcmF0aW9uCisJCQkJMTEyMCwgU2hpbW9rdXphd2EKKwkJCQlTYWdhbWloYXJhIEthbmFnYXdhIDIyOS0xMTk4CisJCQkJSkFQQU4KKworMDAtMTUtRjAgICAoaGV4KQkJRUdPIEJWCiswMDE1RjAgICAgIChiYXNlIDE2KQkJRUdPIEJWCisJCQkJUGFyYWRlIDE1CisJCQkJJ3MtSGVydG9nZW5ib3NjaCBOb29yZC1CcmFiYW50IDUyMTFLTAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE1LUYxICAgKGhleCkJCUtZTElOSyBDb21tdW5pY2F0aW9ucyBDb3JwLgorMDAxNUYxICAgICAoYmFzZSAxNikJCUtZTElOSyBDb21tdW5pY2F0aW9ucyBDb3JwLgorCQkJCThGLTgsIE5vLiAzNTEsIFNlYy4gMiwgWmhvbmdzaGFuIFJkLiwgWmhvbmdoZSBDaXR5CisJCQkJVGFpcGVpIENvdW50eQorCQkJCTIzNTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS1GMiAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMTVGMiAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQlOby41IFNoaW5nIFllaCBTdHJlZXQsS3dlaSBTaGFuIEhzaWFuZyxUYW95dWFuCisJCQkJVGFpcGVpICAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LUYzICAgKGhleCkJCVBFTFRPUiBBQgorMDAxNUYzICAgICAoYmFzZSAxNikJCVBFTFRPUiBBQgorCQkJCUJveCAyMzQxCisJCQkJU0UtMzMxIDAyICBWxFJOQU1PICBTRS0zMzEgMDIKKwkJCQlTV0VERU4KKworMDAtMTUtRjQgICAoaGV4KQkJRXZlbnRpZGUKKzAwMTVGNCAgICAgKGJhc2UgMTYpCQlFdmVudGlkZQorCQkJCTEgQWxzYW4gV2F5CisJCQkJTGl0dGxlIEZlcnJ5IE5KIDA3NjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1GNSAgIChoZXgpCQlTdXN0YWluYWJsZSBFbmVyZ3kgU3lzdGVtcworMDAxNUY1ICAgICAoYmFzZSAxNikJCVN1c3RhaW5hYmxlIEVuZXJneSBTeXN0ZW1zCisJCQkJIzUwMCwgNjA5IDE0dGggU3RyZWV0IE5XCisJCQkJQ2FsZ2FyeSBBYiBUMlQgMVAzCisJCQkJQ0FOQURBCisKKzAwLTE1LUY2ICAgKGhleCkJCVNDSUVOQ0UgQU5EIEVOR0lORUVSSU5HIFNFUlZJQ0VTLCBJTkMuCiswMDE1RjYgICAgIChiYXNlIDE2KQkJU0NJRU5DRSBBTkQgRU5HSU5FRVJJTkcgU0VSVklDRVMsIElOQy4KKwkJCQk0MDE1IFBVTEFTS0kgUElLRSBOVworCQkJCUhVTlRTVklMTEUgQUwgMzU4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUY3ICAgKGhleCkJCVdpbnRlY3JvbmljcyBMdGQuCiswMDE1RjcgICAgIChiYXNlIDE2KQkJV2ludGVjcm9uaWNzIEx0ZC4KKwkJCQlOby4gNzE2LCAxMUYtMywgSnVuZyBKZW5nIFJkLgorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtRjggICAoaGV4KQkJS2luZ3Ryb25pY3MgSW5kdXN0cmlhbCBDby4gTHRkLgorMDAxNUY4ICAgICAoYmFzZSAxNikJCUtpbmd0cm9uaWNzIEluZHVzdHJpYWwgQ28uIEx0ZC4KKwkJCQlQZW50aG91c2UsIENlbnR1cnkgQ2VudHJlLAorCQkJCTQ0LTQ2IEh1bmcgVG8gUm9hZCwgS3d1biBUb25nCisJCQkJS293bG9vbiAgCisJCQkJSE9ORyBLT05HCisKKzAwLTE1LUY5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTVGOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUZBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTVGQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUZCICAgKGhleCkJCXNldGV4IHNjaGVybXVseSB0ZXh0aWxlIGNvbXB1dGVyIGdtYmgKKzAwMTVGQiAgICAgKGJhc2UgMTYpCQlzZXRleCBzY2hlcm11bHkgdGV4dGlsZSBjb21wdXRlciBnbWJoCisJCQkJSGF1cHRzdHJhc3NlIDI1CisJCQkJTWVuZ2Vyc2tpcmNoZW4gSGVzc2VuIDM1Nzk0CisJCQkJR0VSTUFOWQorCiswMC0xNS1GQyAgIChoZXgpCQlMaXR0ZWxmdXNlIFN0YXJ0Y28KKzAwMTVGQyAgICAgKGJhc2UgMTYpCQlMaXR0ZWxmdXNlIFN0YXJ0Y28KKwkJCQkzNzE0IEtpbm5lYXIgUGwKKwkJCQlTYXNrYXRvb24gU0sgUzdQIDBBNgorCQkJCUNBTkFEQQorCiswMC0xNS1GRCAgIChoZXgpCQlDb21wbGV0ZSBNZWRpYSBTeXN0ZW1zCiswMDE1RkQgICAgIChiYXNlIDE2KQkJQ29tcGxldGUgTWVkaWEgU3lzdGVtcworCQkJCUdyb3ZlIFBsYWNlCisJCQkJQ3Vja2ZpZWxkIExhbmUKKwkJCQlXYXJuaW5nbGlkIFdlc3Qgc3Vzc2V4IFJIMTcgNVNOCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtRkUgICAoaGV4KQkJU0NISUxMSU5HIFJPQk9USUNTIExMQworMDAxNUZFICAgICAoYmFzZSAxNikJCVNDSElMTElORyBST0JPVElDUyBMTEMKKwkJCQkyMDEgQ09VU1RFQVUgUEwKKwkJCQlEQVZJUyBDQSA5NTYxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtRkYgICAoaGV4KQkJTm92YXRlbCBXaXJlbGVzcywgSW5jLgorMDAxNUZGICAgICAoYmFzZSAxNikJCU5vdmF0ZWwgV2lyZWxlc3MsIEluYy4KKwkJCQk5NjQ1IFNjcmFudG9uIFJvYWQKKwkJCQlTdWl0ZSAyMDUKKwkJCQlTYW4gRGllZ28gQ2FsaWZvcm5pYSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMDAgICAoaGV4KQkJQ2VsbGVCcml0ZSBNb2JpbGUgU3luY2hyb25pemF0aW9uCiswMDE2MDAgICAgIChiYXNlIDE2KQkJQ2VsbGVCcml0ZSBNb2JpbGUgU3luY2hyb25pemF0aW9uCisJCQkJMjUgQmFzZWwgU3QuCisJCQkJUE9CIDc1NjUKKwkJCQlQZXRhY2ggVGlrdmEgIDQ5MTcwCisJCQkJSVNSQUVMCisKKzAwLTE2LTAxICAgKGhleCkJCUJ1ZmZhbG8gSW5jLgorMDAxNjAxICAgICAoYmFzZSAxNikJCUJ1ZmZhbG8gSW5jLgorCQkJCTQtMTUgU2hpYmF0YSBob25kb3JpCisJCQkJTmFnb3lhIE1pbmFtaS1rdSwgQWljaGkgNDU3LTg1MjAKKwkJCQlKQVBBTgorCiswMC0xNi0wMiAgIChoZXgpCQlDRVlPTiBURUNITk9MT0dZIENPLixMVEQuCiswMDE2MDIgICAgIChiYXNlIDE2KQkJQ0VZT04gVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCTEzRiBTYW1zdW5nIEluc3VyYW5jZSBCL0QuICM5NDItOQorCQkJCUluZ3llLURvbmcsUGFsZGFsLUd1CisJCQkJU3V3b24tQ2l0eSBHeWVvbmdnaS1EbyA0NDItODMyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTAzICAgKGhleCkJCUNPT0xLU0tZIENvLiwgTFRECiswMDE2MDMgICAgIChiYXNlIDE2KQkJQ09PTEtTS1kgQ28uLCBMVEQKKwkJCQlTaGluZ3N1bmcgb2ZmY2V0ZWwgQTUxMSwgMTU4OC0xCisJCQkJU2VjaG8gU2VvdWwgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi0wNCAgIChoZXgpCQlTaWdwcm8KKzAwMTYwNCAgICAgKGJhc2UgMTYpCQlTaWdwcm8KKwkJCQk2NTUgVyBFdmVseW4gU1QKKwkJCQlTdWl0ZSAyCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMDUgICAoaGV4KQkJWU9SS1ZJTExFIFNPVU5EIElOQy4KKzAwMTYwNSAgICAgKGJhc2UgMTYpCQlZT1JLVklMTEUgU09VTkQgSU5DLgorCQkJCTQ2MjUgV0lUTUVSIElORFVTVFJJQUwgRVNUQVRFCisJCQkJTklBR0FSQSBGQUxMUyBOWSAxNDMwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMDYgICAoaGV4KQkJSWRlYWwgSW5kdXN0cmllcworMDAxNjA2ICAgICAoYmFzZSAxNikJCUlkZWFsIEluZHVzdHJpZXMKKwkJCQk5MTQ1IEJhbGJvYSBBdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTA3ICAgKGhleCkJCUN1cnZlcyBJbnRlcm5hdGlvbmFsIEluYy4KKzAwMTYwNyAgICAgKGJhc2UgMTYpCQlDdXJ2ZXMgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJMTAwIFJpdGNoaWUgUm9hZAorCQkJCVdhY28gVGV4YXMgNzY3MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTA4ICAgKGhleCkJCVNlcXVhbnMgQ29tbXVuaWNhdGlvbnMKKzAwMTYwOCAgICAgKGJhc2UgMTYpCQlTZXF1YW5zIENvbW11bmljYXRpb25zCisJCQkJMTkgTGUgUGFydmlzIGRlIGxhIETpZmVuc2UKKwkJCQlC4nRpbWVudCBDaXRpQ2VudGVyCisJCQkJUEFSSVMgTEEgREVGRU5TRSBDRURFWCA5MjA3MworCQkJCUZSQU5DRQorCiswMC0xNi0wOSAgIChoZXgpCQlVbml0ZWNoIGVsZWN0cm9uaWNzIGNvLiwgbHRkLgorMDAxNjA5ICAgICAoYmFzZSAxNikJCVVuaXRlY2ggZWxlY3Ryb25pY3MgY28uLCBsdGQuCisJCQkJNUYsTm8uMTM2LExhbmUgMjM1ICxQYW8tY2hpYW8gUmQuLAorCQkJCUhzaW4tVGllbiBjaXR5IFRhaXBlaSBIc2llbiAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTBBICAgKGhleCkJCVNXRUVYIEV1cm9wZSBCVgorMDAxNjBBICAgICAoYmFzZSAxNikJCVNXRUVYIEV1cm9wZSBCVgorCQkJCUFtcGVyZXdlZyAzCisJCQkJRGVsZnQgWnVpZC1Ib2xsYW5kIDI2MjcgQkcKKwkJCQlORVRIRVJMQU5EUworCiswMC0xNi0wQiAgIChoZXgpCQlUVldvcmtzIExMQworMDAxNjBCICAgICAoYmFzZSAxNikJCVRWV29ya3MgTExDCisJCQkJVHdvIEJlbHZlZGVyZSBQbGFjZSwgIzIwMAorCQkJCU1pbGwgVmFsbGV5IENBIDk0OTQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0wQyAgIChoZXgpCQlMUEwgIERFVkVMT1BNRU5UIFMuQS4gREUgQy5WCiswMDE2MEMgICAgIChiYXNlIDE2KQkJTFBMICBERVZFTE9QTUVOVCBTLkEuIERFIEMuVgorCQkJCUxBR08gR0lORUJSQSAzODAgUDMKKwkJCQlDT0wuIEZSQU5DSVNDTyBJIE1BREVSTworCQkJCUQuRi4gMTE0ODAKKwkJCQlNRVhJQ08KKworMDAtMTYtMEQgICAoaGV4KQkJQmUgSGVyZSBDb3Jwb3JhdGlvbgorMDAxNjBEICAgICAoYmFzZSAxNikJCUJlIEhlcmUgQ29ycG9yYXRpb24KKwkJCQkzOTMwMCBDaXZpYyBDZW50ZXIgRHIuLCBTdWl0ZSAxODAKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0wRSAgIChoZXgpCQlPcHRpY2EgVGVjaG5vbG9naWVzIEluYy4KKzAwMTYwRSAgICAgKGJhc2UgMTYpCQlPcHRpY2EgVGVjaG5vbG9naWVzIEluYy4KKwkJCQkyMDUxIERvZ3dvb2QgU3RyZWV0CisJCQkJU3VpdGUgMjEwCisJCQkJTG91aXN2aWxsZSBDTyA4MDAyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMEYgICAoaGV4KQkJQkFER0VSIE1FVEVSIElOQworMDAxNjBGICAgICAoYmFzZSAxNikJCUJBREdFUiBNRVRFUiBJTkMKKwkJCQk0NTQ1IFcgQlJPV04gREVFUiBSRAorCQkJCU1JTFdBVUtFRSBXSSA1MzIyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMTAgICAoaGV4KQkJQ2FyaW5hIFRlY2hub2xvZ3kKKzAwMTYxMCAgICAgKGJhc2UgMTYpCQlDYXJpbmEgVGVjaG5vbG9neQorCQkJCTY5MEEgRGlzY292ZXJ5IERyaXZlCisJCQkJSHVudHN2aWxsZSBBTCAzNTgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMTEgICAoaGV4KQkJQWx0ZWNvbiBTcmwKKzAwMTYxMSAgICAgKGJhc2UgMTYpCQlBbHRlY29uIFNybAorCQkJCVZpYSBGLmxsaSBDYWlyb2xpLCAxNworCQkJCUxpc3NvbmUgTWlsYW5vIDIwMDM1CisJCQkJSVRBTFkKKworMDAtMTYtMTIgICAoaGV4KQkJT3RzdWthIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxNjEyICAgICAoYmFzZSAxNikJCU90c3VrYSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkxLTEwIFNhc2FnYW9rYSwgTWluYWt1Y2hpCisJCQkJa291a2Egc2hpZ2EgNTI4LTAwNjEKKwkJCQlKQVBBTgorCiswMC0xNi0xMyAgIChoZXgpCQlMaWJyZVN0cmVhbSBUZWNobm9sb2dpZXMgSW5jLgorMDAxNjEzICAgICAoYmFzZSAxNikJCUxpYnJlU3RyZWFtIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJODk1IFdhdmVybGV5IFN0cmVldAorCQkJCVN1aXRlIDExMAorCQkJCVdpbm5pcGVnIE1hbml0b2JhIFIzVCA1UDQKKwkJCQlDQU5BREEKKworMDAtMTYtMTQgICAoaGV4KQkJUGljb3NlY29uZCBQdWxzZSBMYWJzCiswMDE2MTQgICAgIChiYXNlIDE2KQkJUGljb3NlY29uZCBQdWxzZSBMYWJzCisJCQkJMjUwMCA1NXRoIFN0cmVldAorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTE1ICAgKGhleCkJCU5pdHRhbiBDb21wYW55LCBMaW1pdGVkCiswMDE2MTUgICAgIChiYXNlIDE2KQkJTml0dGFuIENvbXBhbnksIExpbWl0ZWQKKwkJCQkxMS02LCAxLWNob21lLCBIYXRhZ2F5YQorCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUxLTg1MzUKKwkJCQlKQVBBTgorCiswMC0xNi0xNiAgIChoZXgpCQlCUk9XQU4gQ09NTVVOSUNBVElPTiBJTkMuCiswMDE2MTYgICAgIChiYXNlIDE2KQkJQlJPV0FOIENPTU1VTklDQVRJT04gSU5DLgorCQkJCU5vLjEgSmVuLUFpIFJvYWQsIEhzaW5DaHUgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUh1S291IEhzaWFuZyBIc2luQ2h1IEhzaWVuIDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtMTcgICAoaGV4KQkJTVNJCiswMDE2MTcgICAgIChiYXNlIDE2KQkJTVNJCisJCQkJTm8uNjksIExpLURlIFN0LCBKdW5nLUhvIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtMTggICAoaGV4KQkJSElWSU9OIENvLiwgTHRkLgorMDAxNjE4ICAgICAoYmFzZSAxNikJCUhJVklPTiBDby4sIEx0ZC4KKwkJCQkyRi4sIEFreXVuZyBCbGRnLiwgNTQtMTAsIE11bmplb25nLWRvbmcsCisJCQkJU29uZ3BhLUd1IFNlb3VsIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi0xOSAgIChoZXgpCQlMYSBGYWN0b3LtYSBkZSBDb211bmljYWNpb25lcyBBcGxpY2FkYXMsUy5MLgorMDAxNjE5ICAgICAoYmFzZSAxNikJCUxhIEZhY3Rvcu1hIGRlIENvbXVuaWNhY2lvbmVzIEFwbGljYWRhcyxTLkwuCisJCQkJQy9BZ3JpY3VsdHVyYSwxMTEKKwkJCQlUZXJyYXNzYSBCYXJjZWxvbmEgMDgyMjMKKwkJCQlTUEFJTgorCiswMC0xNi0xQSAgIChoZXgpCQlEYW1ldHJpYyBBQgorMDAxNjFBICAgICAoYmFzZSAxNikJCURhbWV0cmljIEFCCisJCQkJQm94IDEyMAorCQkJCVNrYXJob2xtZW4gU3RvY2tob2xtIFNFLTEyNzIzCisJCQkJU1dFREVOCisKKzAwLTE2LTFCICAgKGhleCkJCU1pY3JvbmV0IENvcnBvcmF0aW9uCiswMDE2MUIgICAgIChiYXNlIDE2KQkJTWljcm9uZXQgQ29ycG9yYXRpb24KKwkJCQkxNzg4LTM4OCBOb211cmEgSGlyb29rYQorCQkJCVNoaW9qaXJpLXNoaSBOYWdhbm8ta2VuIDM5OS0wNzAyCisJCQkJSkFQQU4KKworMDAtMTYtMUMgICAoaGV4KQkJZTpjdWUKKzAwMTYxQyAgICAgKGJhc2UgMTYpCQllOmN1ZQorCQkJCUZyaWVkcmljaC1MaXN0LVN0cmFzc2UgMjMKKwkJCQlQYWRlcmJvcm4gIDMzMTAwCisJCQkJR0VSTUFOWQorCiswMC0xNi0xRCAgIChoZXgpCQlJbm5vdmF0aXZlIFdpcmVsZXNzIFRlY2hub2xvZ2llcywgSW5jLgorMDAxNjFEICAgICAoYmFzZSAxNikJCUlubm92YXRpdmUgV2lyZWxlc3MgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTA0NyBWaXN0YSBQYXJrIERyLgorCQkJCVN1aXRlIEEKKwkJCQlGb3Jlc3QgVkEgMjQ1NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTFFICAgKGhleCkJCVdvb2ppbm5ldAorMDAxNjFFICAgICAoYmFzZSAxNikJCVdvb2ppbm5ldAorCQkJCTI5MiBvc2FuIGRvbmd0YW4KKwkJCQlod2FzZW9uZyBreW9uZ2dpIDQ0NS04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtMUYgICAoaGV4KQkJU1VOV0FWRVRFQyBDby4sIEx0ZC4KKzAwMTYxRiAgICAgKGJhc2UgMTYpCQlTVU5XQVZFVEVDIENvLiwgTHRkLgorCQkJCSM4MjMsIEt3YW55YW5nLWRvbmcsIERvbmdhbi1rdQorCQkJCUFueWFuZy1zaSBLeXVuZ2tpLWRvIDQzMS0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtMjAgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKzAwMTYyMCAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNFIDIyMSA4OAorCQkJCVNXRURFTgorCiswMC0xNi0yMSAgIChoZXgpCQlDb2xvcmFkbyBWbmV0CiswMDE2MjEgICAgIChiYXNlIDE2KQkJQ29sb3JhZG8gVm5ldAorCQkJCTI1NSBFLiA2dGggU3QuCisJCQkJTG92ZWxhbmQgQ08gODA1MzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTIyICAgKGhleCkJCUJCSCBTWVNURU1TIEdNQkgKKzAwMTYyMiAgICAgKGJhc2UgMTYpCQlCQkggU1lTVEVNUyBHTUJICisJCQkJQvZ0dGdlcnN0cmFzc2UgNDAKKwkJCQlXZWlkZW4gaS5kLk9QZi4gQmF5ZXJuIDkyNjM3CisJCQkJR0VSTUFOWQorCiswMC0xNi0yMyAgIChoZXgpCQlJbnRlcnZhbCBNZWRpYQorMDAxNjIzICAgICAoYmFzZSAxNikJCUludGVydmFsIE1lZGlhCisJCQkJMzIwMCBBc2ggU3RyZWV0CisJCQkJUGFsbyBBbHRvIENBIDk0MzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0yNCAgIChoZXgpCQlUZW5lcm9zLCBJbmMuCiswMDE2MjQgICAgIChiYXNlIDE2KQkJVGVuZXJvcywgSW5jLgorCQkJCTIxNSBDYXN0cm8gU3QuCisJCQkJM3JkIEZsb29yCisJCQkJTXQuIFZpZXcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTI1ICAgKGhleCkJCUltcGluaiwgSW5jLgorMDAxNjI1ICAgICAoYmFzZSAxNikJCUltcGluaiwgSW5jLgorCQkJCTcwMSBOLiAzNHRoIFN0cmVldAorCQkJCVN1aXRlIDMwMAorCQkJCVNlYXR0bGUgV0EgOTgxMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTI2ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE2MjYgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0yNyAgIChoZXgpCQllbWJlZGRlZC1sb2dpYyBERVNJR04gQU5EIE1PUkUgR21iSAorMDAxNjI3ICAgICAoYmFzZSAxNikJCWVtYmVkZGVkLWxvZ2ljIERFU0lHTiBBTkQgTU9SRSBHbWJICisJCQkJSGFuc2VzdHJhc3NlIDI0CisJCQkJTXVlbnN0ZXIgTlJXIDQ4MTUzCisJCQkJR0VSTUFOWQorCiswMC0xNi0yOCAgIChoZXgpCQlVbHRyYSBFbGVjdHJvbmljcyBNYW51ZmFjdHVyaW5nIGFuZCBDYXJkIFN5c3RlbXMKKzAwMTYyOCAgICAgKGJhc2UgMTYpCQlVbHRyYSBFbGVjdHJvbmljcyBNYW51ZmFjdHVyaW5nIGFuZCBDYXJkIFN5c3RlbXMKKwkJCQlIYW1wc2hpcmUgUm9hZAorCQkJCUdyYW5ieSBFc3RhdGUKKwkJCQlXZXltb3V0aCBEb3JzZXQgRFQ0IDlYRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE2LTI5ICAgKGhleCkJCU5pdnVzIEdtYkgKKzAwMTYyOSAgICAgKGJhc2UgMTYpCQlOaXZ1cyBHbWJICisJCQkJSW0gVORsZSAyCisJCQkJRXBwaW5nZW4gQmFkZW4tV3VlcnR0ZW1iZXJnIDc1MDMxCisJCQkJR0VSTUFOWQorCiswMC0xNi0yQSAgIChoZXgpCQlBbnRpayBjb21wdXRlcnMgJiBjb21tdW5pY2F0aW9ucyBzLnIuby4KKzAwMTYyQSAgICAgKGJhc2UgMTYpCQlBbnRpayBjb21wdXRlcnMgJiBjb21tdW5pY2F0aW9ucyBzLnIuby4KKwkJCQlSYXp1c292YSAyCisJCQkJS29zaWNlIFNLIFNLLTA0MDAxCisJCQkJU0xPVkFLSUEKKworMDAtMTYtMkIgICAoaGV4KQkJVG9nYW1pIEVsZWN0cmljIE1mZy5jby4sTHRkLgorMDAxNjJCICAgICAoYmFzZSAxNikJCVRvZ2FtaSBFbGVjdHJpYyBNZmcuY28uLEx0ZC4KKwkJCQkxLTEgT2h0YWthcmEtS2l0YW1hY2hpCisJCQkJU2FnYS5QUkYgODQwLTA4MDIKKwkJCQlKQVBBTgorCiswMC0xNi0yQyAgIChoZXgpCQlYYW5ib28KKzAwMTYyQyAgICAgKGJhc2UgMTYpCQlYYW5ib28KKwkJCQkxMTUgV2VzdCAzMHRoLCA2dGggRmwKKwkJCQlOZXcgWW9yayBOWSAxMDAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMkQgICAoaGV4KQkJU1ROZXQgQ28uLCBMdGQuCiswMDE2MkQgICAgIChiYXNlIDE2KQkJU1ROZXQgQ28uLCBMdGQuCisJCQkJU2hpbi13aGEgQnVpbGRpbmcgNEYsIDk1NC0yNQorCQkJCUt3YW55YW5nLWRvbmcsIERvbmdhbi1ndQorCQkJCUFueWFuZy1zaSBLeXVuZ2tpLWRvICA0MzEtMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTJFICAgKGhleCkJCVNwYWNlIFNodXR0bGUgSGktVGVjaCBDby4sIEx0ZC4KKzAwMTYyRSAgICAgKGJhc2UgMTYpCQlTcGFjZSBTaHV0dGxlIEhpLVRlY2ggQ28uLCBMdGQuCisJCQkJTm8uIDIyNiwgV3UtSG8gU3QuLCBXdS1MdW5nIFZpbGxhZ2UsCisJCQkJQ2hpdW5nLUxpbiBIc2lhbmcsCisJCQkJSHNpbmNodSBIc2llbiAgMzA3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi0yRiAgIChoZXgpCQlHZXV0ZWJy/GNrIEdtYkgKKzAwMTYyRiAgICAgKGJhc2UgMTYpCQlHZXV0ZWJy/GNrIEdtYkgKKwkJCQlJbSBOYXNzZW4gNy05CisJCQkJV2luZGhhZ2VuICA1MzU3OAorCQkJCUdFUk1BTlkKKworMDAtMTYtMzAgICAoaGV4KQkJVmF0aXYgVGVjaG5vbG9naWVzCiswMDE2MzAgICAgIChiYXNlIDE2KQkJVmF0aXYgVGVjaG5vbG9naWVzCisJCQkJOTMzOSBHZW5lc2VlIEF2ZW51ZQorCQkJCVN1aXRlIDEzMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMzEgICAoaGV4KQkJWHRlYW0KKzAwMTYzMSAgICAgKGJhc2UgMTYpCQlYdGVhbQorCQkJCXJvb20gODAxLCBOby4xMDIgaW50ZXJuYXRpb25hbCBTY2llbmNlICYgVGVjaG9sb2d5IFBhcmsKKwkJCQlOby4yIFNoYW5nRGkgSW5mbyBSb2FkLCBIYWlEaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyA4NjEwCisJCQkJQ0hJTkEKKworMDAtMTYtMzIgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPTklDUyBDTy4sIExURC4KKzAwMTYzMiAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCTQxNiwgTUVUQU4tM0RPTkcsCisJCQkJWU9VTkdUT05HLUdVCisJCQkJU1VXT04gS1lVTkdLSS1ETyA0NDItNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTMzICAgKGhleCkJCU94Zm9yZCBEaWFnbm9zdGljcyBMdGQuCiswMDE2MzMgICAgIChiYXNlIDE2KQkJT3hmb3JkIERpYWdub3N0aWNzIEx0ZC4KKwkJCQlTYW5keWJyYWUKKwkJCQlXaGl0ZWJhcm4gRHIsIEJvYXJzIEhpbGwKKwkJCQlPeGZvcmQgT3hvbi4gT1gxIDVISgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE2LTM0ICAgKGhleCkJCU1hdGh0ZWNoLCBJbmMuCiswMDE2MzQgICAgIChiYXNlIDE2KQkJTWF0aHRlY2gsIEluYy4KKwkJCQk2NDAyIEFybGluZ3RvbiBCbHZkLiwKKwkJCQlTdWl0ZSAxMjAwCisJCQkJRmFsbHMgQ2h1cmNoIFZpcmdpbmlhIDIyMDQyLTIzNTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTM1ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxNjM1ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5IFNvdXRoCisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0zNiAgIChoZXgpCQlRdWFudGEgQ29tcHV0ZXIgSW5jLgorMDAxNjM2ICAgICAoYmFzZSAxNikJCVF1YW50YSBDb21wdXRlciBJbmMuCisJCQkJTm8uIDIxMSwgV2VuIEh3YSAyUmQuLCBLdWVpIFNoYW4gSHNpYW5nCisJCQkJVGFvIFl1YW4gU2hpZW4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtMzcgICAoaGV4KQkJQ2l0ZWwgU3JsCiswMDE2MzcgICAgIChiYXNlIDE2KQkJQ2l0ZWwgU3JsCisJCQkJVmlhIEwuIEcuIENvbHVtZWxsYSwgMzYKKwkJCQlNaWxhbiBNSSAyMDEyOAorCQkJCUlUQUxZCisKKzAwLTE2LTM4ICAgKGhleCkJCVRFQ09NIENvLiwgTHRkLgorMDAxNjM4ICAgICAoYmFzZSAxNikJCVRFQ09NIENvLiwgTHRkLgorCQkJCTIzIFImRCBSb2FkIDIgU2NpZW5jZSBCYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi0zOSAgIChoZXgpCQlVQklRVUFNIENvLixMdGQKKzAwMTYzOSAgICAgKGJhc2UgMTYpCQlVQklRVUFNIENvLixMdGQKKwkJCQlUZWNobm92aWxsIDRGLDI3Mi0zIFlhdGFwMworCQkJCUJ1bmRhbmcKKwkJCQlTZW9uZ25hbSBLeWVvbmdnaSA0NjMtODM2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTNBICAgKGhleCkJCVlWRVMgVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwMTYzQSAgICAgKGJhc2UgMTYpCQlZVkVTIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJTm8uNzQsIEZ1c2luZyAybmQgUmQuCisJCQkJR3VlaXNoYW4gVGFveXVhbiAzMzM3NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtM0IgICAoaGV4KQkJVmVydGV4UlNJL0dlbmVyYWwgRHluYW1pY3MKKzAwMTYzQiAgICAgKGJhc2UgMTYpCQlWZXJ0ZXhSU0kvR2VuZXJhbCBEeW5hbWljcworCQkJCTIxMjAgT2xkIEdhdGVzYnVyZyBSZC4KKwkJCQlTdGF0ZSBjb2xsZWdlIFBBIDE2ODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0zQyAgIChoZXgpCQlSZWJveCBCLlYuCiswMDE2M0MgICAgIChiYXNlIDE2KQkJUmVib3ggQi5WLgorCQkJCUhlbmRyaWsgRmlnZWV3ZWcgMVgKKwkJCQlIYWFybGVtIE5vb3JkLUhvbGxhbmQgMjAzMSBCSgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE2LTNEICAgKGhleCkJCVRzaW5naHVhIFRvbmdmYW5nIExlZ2VuZCBTaWxpY29uIFRlY2guIENvLiwgTHRkLgorMDAxNjNEICAgICAoYmFzZSAxNikJCVRzaW5naHVhIFRvbmdmYW5nIExlZ2VuZCBTaWxpY29uIFRlY2guIENvLiwgTHRkLgorCQkJCTI2RiBUU0lOR0hVQSBUT05HRkFORyBISS1URUNIIFBMQVpBCisJCQkJQkVJSklORyAgMTAwMDgzCisJCQkJQ0hJTkEKKworMDAtMTYtM0UgICAoaGV4KQkJWGVuc291cmNlLCBJbmMuCiswMDE2M0UgICAgIChiYXNlIDE2KQkJWGVuc291cmNlLCBJbmMuCisJCQkJMjMwMCBHZW5nIFJkLgorCQkJCVN1aXRlIDI1MAorCQkJCVBhbG8gQWx0byBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtM0YgICAoaGV4KQkJQ1JlVEUgU1lTVEVNUyBJbmMuCiswMDE2M0YgICAgIChiYXNlIDE2KQkJQ1JlVEUgU1lTVEVNUyBJbmMuCisJCQkJN0YsTm8uMjUwLFNlYy4zLFBlaSBTaGVuIFJkLixTaGVuIEtlbmcgSHNpYW5nCisJCQkJVGFpcGVpIENvdW50eSAgMjIyMDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTQwICAgKGhleCkJCUFzbW9iaWxlIENvbW11bmljYXRpb24gSW5jLgorMDAxNjQwICAgICAoYmFzZSAxNikJCUFzbW9iaWxlIENvbW11bmljYXRpb24gSW5jLgorCQkJCU5vLjExIExhbmUgMTIwLCBMaS1UZSBSZC4sIFBlaXRvdSAxMTIsIFRhaXBlaSwgVGFpd2FuLCBSLk8uQworCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi00MSAgIChoZXgpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzAwMTY0MSAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKwkJCQkxNDEsIExBTkUgMzUxLCBTRUMuMSxUQUlQSU5HIFJELiAKKwkJCQlUU0FPVFVFTiBOQU5UT1UgNTQyNjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTQyICAgKGhleCkJCVBhbmdvbGluCiswMDE2NDIgICAgIChiYXNlIDE2KQkJUGFuZ29saW4KKwkJCQk5NTAxIFNhdGVsbGl0ZSBCb3VsZXZhcmQsIFN1aXRlIDEwOQorCQkJCU9ybGFuZG8gRkwgMzI4MzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTQzICAgKGhleCkJCVN1bmhpbGxvIENvcnBvcmF0aW9uCiswMDE2NDMgICAgIChiYXNlIDE2KQkJU3VuaGlsbG8gQ29ycG9yYXRpb24KKwkJCQk0NDQgS2VsbGV5IERyaXZlCisJCQkJV2VzdCBCZXJsaW4gTmV3IEplcnNleSAwODA5MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNDQgICAoaGV4KQkJTElURS1PTiBUZWNobm9sb2d5IENvcnAuCiswMDE2NDQgICAgIChiYXNlIDE2KQkJTElURS1PTiBUZWNobm9sb2d5IENvcnAuCisJCQkJMThGLCBOby4zOTIsIFJ1ZXkgS3VhbmcgUm9hZCwgTmllaHUsCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTQ1ICAgKGhleCkJCVBvd2VyIERpc3RyaWJ1dGlvbiwgSW5jLgorMDAxNjQ1ICAgICAoYmFzZSAxNikJCVBvd2VyIERpc3RyaWJ1dGlvbiwgSW5jLgorCQkJCTQyMDAgT2FrbGV5cyBDdC4KKwkJCQlSaWNobW9uZCBWQSAyMzIyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNDYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNjQ2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNDcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNjQ3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNDggICAoaGV4KQkJU1NEIENvbXBhbnkgTGltaXRlZAorMDAxNjQ4ICAgICAoYmFzZSAxNikJCVNTRCBDb21wYW55IExpbWl0ZWQKKwkJCQkzLTMtNCBIaWdhc2hpeWFndXJhCisJCQkJS3VzYXRzdS1jaXR5IFNoaWdhIDUyNS0wMDU0CisJCQkJSkFQQU4KKworMDAtMTYtNDkgICAoaGV4KQkJU2V0T25lIEdtYkgKKzAwMTY0OSAgICAgKGJhc2UgMTYpCQlTZXRPbmUgR21iSAorCQkJCUhlZ2VuaGVpbWVyIFN0ci4gMgorCQkJCVdlaWwgYW0gUmhlaW4gQmFkZW4gV3VlcnRlbWJlcmcgRC03OTU3NgorCQkJCUdFUk1BTlkKKworMDAtMTYtNEEgICAoaGV4KQkJVmlicmF0aW9uIFRlY2hub2xvZ3kgTGltaXRlZAorMDAxNjRBICAgICAoYmFzZSAxNikJCVZpYnJhdGlvbiBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlWaWJ0ZWNoIEhvdXNlLCBDZW50cmFsIEJvdWxldmFyZAorCQkJCUNlbnRyYWwgUGFyaworCQkJCUxhcmJlcnQgU2NvdGxhbmQgRks1IDRSVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE2LTRCICAgKGhleCkJCVF1b3Jpb24gRGF0YSBTeXN0ZW1zIEdtYkgKKzAwMTY0QiAgICAgKGJhc2UgMTYpCQlRdW9yaW9uIERhdGEgU3lzdGVtcyBHbWJICisJCQkJQW4gZGVyIEtsaW5nZSA2CisJCQkJRXJmdXJ0IFRodXJpbmdpYSA5OTE5NQorCQkJCUdFUk1BTlkKKworMDAtMTYtNEMgICAoaGV4KQkJUExBTkVUIElOVCBDby4sIEx0ZAorMDAxNjRDICAgICAoYmFzZSAxNikJCVBMQU5FVCBJTlQgQ28uLCBMdGQKKwkJCQk4dGggRmxvb3IsIFNhZXVtIEIvRCwgMTM2MS01CisJCQkJU2VvY2hvLURvbmcsIFNlb2Noby1LdQorCQkJCVNlb3VsICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTREICAgKGhleCkJCUFsY2F0ZWwgTm9ydGggQW1lcmljYSBJUCBEaXZpc2lvbgorMDAxNjREICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTm9ydGggQW1lcmljYSBJUCBEaXZpc2lvbgorCQkJCTcwMSBFLiBNaWRkbGVmaWVsZCBSRC4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi00RSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxNjRFICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xNi00RiAgIChoZXgpCQlXb3JsZCBFdGhuaWMgQnJvYWRjYXN0aW4gSW5jLgorMDAxNjRGICAgICAoYmFzZSAxNikJCVdvcmxkIEV0aG5pYyBCcm9hZGNhc3RpbiBJbmMuCisJCQkJNTAgQ2FsaWZvcm5pYSBTdHJlZXQsIFN1aXRlIDE1MDAKKwkJCQlTYW4gRnJhbmNpc2NvIENhbGlmb3JuaWEgOTQxMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTUwICAgKGhleCkJCUhlcmxleSBHZW5lcmFsIE1pY3Jvd2F2ZSBJc3JhZWwuIAorMDAxNjUwICAgICAoYmFzZSAxNikJCUhlcmxleSBHZW5lcmFsIE1pY3Jvd2F2ZSBJc3JhZWwuIAorCQkJCUtJQkJVVFogRVlBTAorCQkJCUQuTi4gSEFTSEFST04gSEFUSUNIT04KKwkJCQk0NTg0MAorCQkJCUlTUkFFTAorCiswMC0xNi01MSAgIChoZXgpCQlFeGVvIFN5c3RlbXMKKzAwMTY1MSAgICAgKGJhc2UgMTYpCQlFeGVvIFN5c3RlbXMKKwkJCQkxNjUwLCBydWUgTWljaGVsaW4sIHN1aXRlIDIwMQorCQkJCUxhdmFsIFF16WJlYyBIN0wgNFIzCisJCQkJQ0FOQURBCisKKzAwLTE2LTUyICAgKGhleCkJCUhvYXRlY2ggVGVjaG5vbG9naWVzLCBJbmMuCiswMDE2NTIgICAgIChiYXNlIDE2KQkJSG9hdGVjaCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxRi4sIE5vLjIyNCwgR3Vvc2hlbmcgU3QuCisJCQkJWmh1YmVpIEhzaW5DaHUgSHNpZW4gMzAyNDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTUzICAgKGhleCkJCUxFR08gU3lzdGVtIEEvUyBJRSBFbGVjdHJvbmljcyBEaXZpc2lvbgorMDAxNjUzICAgICAoYmFzZSAxNikJCUxFR08gU3lzdGVtIEEvUyBJRSBFbGVjdHJvbmljcyBEaXZpc2lvbgorCQkJCUFhc3R2ZWogMQorCQkJCUJpbGx1bmQgS29tbXVuZSA3MTkwCisJCQkJREVOTUFSSworCiswMC0xNi01NCAgIChoZXgpCQlGbGV4LVAgSW5kdXN0cmllcyBTZG4uIEJoZC4KKzAwMTY1NCAgICAgKGJhc2UgMTYpCQlGbGV4LVAgSW5kdXN0cmllcyBTZG4uIEJoZC4KKwkJCQlOby4xMjgtMTItMiwgTWVuYXJhIFVNTk8sCisJCQkJSmFsYW4gTWFjYWxpc3RlciwKKwkJCQlHZW9yZ2V0b3duIFBlbmFuZyAxMDQwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE2LTU1ICAgKGhleCkJCUZVSE8gVEVDSE5PTE9HWSBDby4sIExURAorMDAxNjU1ICAgICAoYmFzZSAxNikJCUZVSE8gVEVDSE5PTE9HWSBDby4sIExURAorCQkJCU5vLiAzMCwgTGFuZSA3MjYsIEppbm1hIFJkLCBTZWMuIDMKKwkJCQlDaGFuZyBIdWEgVGFpd2EgNTAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi01NiAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMTY1NiAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xNi01NyAgIChoZXgpCQlBZWdhdGUgTHRkCiswMDE2NTcgICAgIChiYXNlIDE2KQkJQWVnYXRlIEx0ZAorCQkJCVRlY2hub2xvZ3kgQ2VudHJlCisJCQkJTWVsYm91cm4gSGVydGZvcmRzaGlyZSBTRzggNkRQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTYtNTggICAoaGV4KQkJRnVzaW9udGVjaCBUZWNobm9sb2dpZXMgSW5jLgorMDAxNjU4ICAgICAoYmFzZSAxNikJCUZ1c2lvbnRlY2ggVGVjaG5vbG9naWVzIEluYy4KKwkJCQk2RiwgTm8uNzgsIENoZW5nIEt1bmcgUmQuLCBTZWMuIDEsCisJCQkJTmFuIEthbmcKKwkJCQlUYWlwZWkgIDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtNTkgICAoaGV4KQkJWi5NLlAuIFJBRFdBRworMDAxNjU5ICAgICAoYmFzZSAxNikJCVouTS5QLiBSQURXQUcKKwkJCQlCcmFja2EgMjggc3RyZWV0CisJCQkJUkFET00gTWF6b3dpZWNraWUgMjYtNjAwCisJCQkJUE9MQU5ECisKKzAwLTE2LTVBICAgKGhleCkJCUhhcm1hbiBTcGVjaWFsdHkgR3JvdXAKKzAwMTY1QSAgICAgKGJhc2UgMTYpCQlIYXJtYW4gU3BlY2lhbHR5IEdyb3VwCisJCQkJMyBPYWsgUGFyayBEcml2ZQorCQkJCUJlZGZvcmQgTUEgMDE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTVCICAgKGhleCkJCUdyaXAgQXVkaW8KKzAwMTY1QiAgICAgKGJhc2UgMTYpCQlHcmlwIEF1ZGlvCisJCQkJNjM0NSBXLiBMb3Vpc2UgRHJpdmUKKwkJCQlHbGVuZGFsZSBBcml6b25hIDg1MzEwLTQyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTVDICAgKGhleCkJCVRyYWNrZmxvdyBMdGQKKzAwMTY1QyAgICAgKGJhc2UgMTYpCQlUcmFja2Zsb3cgTHRkCisJCQkJMTY3LTE2OSBLZW5zaW5ndG9uIEhpZ2ggU3RyZWV0CisJCQkJTG9uZG9uIEVuZ2xhbmQgVzg2U0gKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi01RCAgIChoZXgpCQlBaXJEZWZlbnNlLCBJbmMuCiswMDE2NUQgICAgIChiYXNlIDE2KQkJQWlyRGVmZW5zZSwgSW5jLgorCQkJCTQ4MDAgTm9ydGggUG9pbnQgUGt3eQorCQkJCVN0ZSAxMDAKKwkJCQlBbHBoYXJldHRhIEdBIDMwMDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi01RSAgIChoZXgpCQlQcmVjaXNpb24gSS9PCiswMDE2NUUgICAgIChiYXNlIDE2KQkJUHJlY2lzaW9uIEkvTworCQkJCTQwMDUgTWlyYW5kYSBBdmUuLCBTdWl0ZSAyMTAKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDQtMTIzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNUYgICAoaGV4KQkJRmFpcm1vdW50IEF1dG9tYXRpb24KKzAwMTY1RiAgICAgKGJhc2UgMTYpCQlGYWlybW91bnQgQXV0b21hdGlvbgorCQkJCTQ2MjEgV2VzdCBDaGVzdGVyIFBpa2UKKwkJCQlOZXd0b3duIFNxdWFyZSBQQSAxOTA3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNjAgICAoaGV4KQkJTm9ydGVsCiswMDE2NjAgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTYtNjEgICAoaGV4KQkJTm92YXRpdW0gU29sdXRpb25zIChQKSBMdGQKKzAwMTY2MSAgICAgKGJhc2UgMTYpCQlOb3ZhdGl1bSBTb2x1dGlvbnMgKFApIEx0ZAorCQkJCTNyZCBGbG9vciwgVGVtcGxlIFRvd2VycywgIzY3MgorCQkJCUFubmEgU2FsYWksIE5hbmRhbmFtLAorCQkJCUNoZW5uYWkgVGFtaWwgTmFkdSA2MDAwMzUKKwkJCQlJTkRJQQorCiswMC0xNi02MiAgIChoZXgpCQlMaXl1aCBUZWNobm9sb2d5IEx0ZC4KKzAwMTY2MiAgICAgKGJhc2UgMTYpCQlMaXl1aCBUZWNobm9sb2d5IEx0ZC4KKwkJCQk3Ri0xLCBOby4gOTIsIFNlYy4gMSwgSGVpIEh1IFJkLgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi02MyAgIChoZXgpCQlLQlQgTW9iaWxlCiswMDE2NjMgICAgIChiYXNlIDE2KQkJS0JUIE1vYmlsZQorCQkJCTRGLCBQb2xhcmlzIEksIDE1LTMsIEplb25namEtZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpLCBHeWVvbmdnaS1kbyA0NjMtODExCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTY0ICAgKGhleCkJCVByb2QtRWwgU3BBCiswMDE2NjQgICAgIChiYXNlIDE2KQkJUHJvZC1FbCBTcEEKKwkJCQlWaWEgUGFsbWFub3ZhIDE4NQorCQkJCU1pbGFubyBNSSAyMDEzMgorCQkJCUlUQUxZCisKKzAwLTE2LTY1ICAgKGhleCkJCUNlbGxvbiBGcmFuY2UKKzAwMTY2NSAgICAgKGJhc2UgMTYpCQlDZWxsb24gRnJhbmNlCisJCQkJUm91dGUgZCdBbmdlcnMgTGUgTWFucyBjZWRleCA5CisJCQkJTGUgTWFucyBTYXJ0aGUgNzIwODEKKwkJCQlGUkFOQ0UKKworMDAtMTYtNjYgICAoaGV4KQkJUXVhbnRpZXIgQ29tbXVuaWNhdGlvbiBJbmMuCiswMDE2NjYgICAgIChiYXNlIDE2KQkJUXVhbnRpZXIgQ29tbXVuaWNhdGlvbiBJbmMuCisJCQkJMUYsIE5vLiAzNiwgSW5kdXN0cnkgRS4gUmQgSVYsCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIHBhcmsKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi02NyAgIChoZXgpCQlBLVRFQyBTdWJzeXN0ZW0gSU5DLgorMDAxNjY3ICAgICAoYmFzZSAxNikJCUEtVEVDIFN1YnN5c3RlbSBJTkMuCisJCQkJNEYsIE5vLiA4NiwgQ2h1bmctSHNpbmcgUm9hZCwgU2hpanIgQ2l0eSwKKwkJCQlUYWlwZWkgQ291bnR5CisJCQkJMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi02OCAgIChoZXgpCQlFaXNoaW4gRWxlY3Ryb25pY3MKKzAwMTY2OCAgICAgKGJhc2UgMTYpCQlFaXNoaW4gRWxlY3Ryb25pY3MKKwkJCQlOaXNoaWt1IE1peWFzaGl0YSAxLTE5CisJCQkJS29iZSBDaXR5IEh5b2dvIFByZWZlY3R1cmUgNjUxLTIxNDYKKwkJCQlKQVBBTgorCiswMC0xNi02OSAgIChoZXgpCQlNUlYgQ29tbXVuaWNhdGlvbiAoTmV0d29ya3MpIExURAorMDAxNjY5ICAgICAoYmFzZSAxNikJCU1SViBDb21tdW5pY2F0aW9uIChOZXR3b3JrcykgTFRECisJCQkJUC5PIEJveCA2MTQKKwkJCQlZb2tuZWFtICAyMDY5MgorCQkJCUlTUkFFTAorCiswMC0xNi02QSAgIChoZXgpCQlUUFMKKzAwMTY2QSAgICAgKGJhc2UgMTYpCQlUUFMKKwkJCQkxNDUgcXVhaSBkZSBTdGFsaW5ncmFkCisJCQkJSXNzeSBMZXMgTW91bGluZWF1eCBJbGUgZGUgRnJhbmNlIDkyMTM3CisJCQkJRlJBTkNFCisKKzAwLTE2LTZCICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzAwMTY2QiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJNDE2LE1hZXRhbi0zRG9uZyxZZW9uZ3RvbmctR3UKKwkJCQlTdXdvbi1DaXR5IEt5ZW9uZ2dpLURvIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtNkMgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdG9uaWNzIERpZ2l0YWwgVmlkZW8gU3lzdGVtIERpdmlzaW9uCiswMDE2NkMgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdG9uaWNzIERpZ2l0YWwgVmlkZW8gU3lzdGVtIERpdmlzaW9uCisJCQkJNDE2LCBNYWV0YW4tM0RvbmcsWWVvbmd0b25nLUd1CisJCQkJU3V3b24gR3llb25nZ2ktRG8gNDQzLTc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi02RCAgIChoZXgpCQlZdWxvbmcgQ29tcHV0ZXIgVGVsZWNvbW11bmljYXRpb24gU2NpZW50aWZpYyhzaGVuemhlbilDby4sTHQKKzAwMTY2RCAgICAgKGJhc2UgMTYpCQlZdWxvbmcgQ29tcHV0ZXIgVGVsZWNvbW11bmljYXRpb24gU2NpZW50aWZpYyhzaGVuemhlbilDby4sTHQKKwkJCQk4L0YuaGlnaCBUZWNoIFBsYXphLFRpYW5BbiBDeWJlcnBhcmssQ2hlZ29uZ21pYW8KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworMDAtMTYtNkUgICAoaGV4KQkJQXJiaXRyb24gSW5jLgorMDAxNjZFICAgICAoYmFzZSAxNikJCUFyYml0cm9uIEluYy4KKwkJCQk5NzA1IFBhdHV4ZW50IFdvb2RzIERyaXZlCisJCQkJQ29sdW1iaWEgTUQgMjEwNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTZGICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDE2NkYgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmxuIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTYtNzAgICAoaGV4KQkJU0tORVQgQ29ycG9yYXRpb24KKzAwMTY3MCAgICAgKGJhc2UgMTYpCQlTS05FVCBDb3Jwb3JhdGlvbgorCQkJCUZvbnRhbmEgU2hpbnlva29oYW1hCisJCQkJU2hpbnlva29oYW1hIDIsMTcsMiBrb2hva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjItMDAzMworCQkJCUpBUEFOCisKKzAwLTE2LTcxICAgKGhleCkJCVN5bXBob3ggSW5mb3JtYXRpb24gQ28uCiswMDE2NzEgICAgIChiYXNlIDE2KQkJU3ltcGhveCBJbmZvcm1hdGlvbiBDby4KKwkJCQkxNUYsIE5vLiA1MSwgU2VjLiAzLCBNaW5zaGVuZyBFLiBSb2FkCisJCQkJVGFpcGVpIENpdHkgIDEwNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtNzIgICAoaGV4KQkJWmVud2F5IGVudGVycHJpc2UgbHRkCiswMDE2NzIgICAgIChiYXNlIDE2KQkJWmVud2F5IGVudGVycHJpc2UgbHRkCisJCQkJNkYuLCBOby4yMCwgTGFuZSAxNTAsIEpob25nc2luZyBSZC4sIFNpamhpaCBDaXR5CisJCQkJVGFpcGVpICA4ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTczICAgKGhleCkJCUJ1cnkgR21iSCAmIENvLiBLRworMDAxNjczICAgICAoYmFzZSAxNikJCUJ1cnkgR21iSCAmIENvLiBLRworCQkJCVJvYmVydC1Lb2NoLVN0ci4gMS03CisJCQkJTG9laG5lIEdlcm1hbnkgMzI1ODQKKwkJCQlHRVJNQU5ZCisKKzAwLTE2LTc0ICAgKGhleCkJCUV1cm9DQiAoUGhpbHMuKSwgSW5jLgorMDAxNjc0ICAgICAoYmFzZSAxNikJCUV1cm9DQiAoUGhpbHMuKSwgSW5jLgorCQkJCVNGQiBOby4yCisJCQkJTWFjdGFuIEVjb25vbWljIFpvbmUgLSBJCisJCQkJTGFwdWxhcHUgQ2l0eSBDZWJ1IDYwMTUKKwkJCQlQSElMSVBQSU5FUworCiswMC0xNi03NSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMTY3NSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2MDAgTiBVUyBId3kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSWxsaW5vaXMgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTc2ICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDE2NzYgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmxuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xNi03NyAgIChoZXgpCQlCaWhsK1dpZWRlbWFubiBHbWJICiswMDE2NzcgICAgIChiYXNlIDE2KQkJQmlobCtXaWVkZW1hbm4gR21iSAorCQkJCUZsb3Nzd29lcnRoc3RyLiA0MQorCQkJCU1hbm5oZWltIEJhZGVuIFf8cnRlbWJlcmcgNjgxOTkKKwkJCQlHRVJNQU5ZCisKKzAwLTE2LTc4ICAgKGhleCkJCVNIRU5aSEVOIEJBT0FOIEdBT0tFIEVMRUNUUk9OSUNTIENPLiwgTFRECiswMDE2NzggICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gQkFPQU4gR0FPS0UgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKwkJCQlHQU9LRSBJTkRVU1RSSUFMIFBBUkssIE5PLjggVEFOR0tFTkcgUk9BRCwgU0hJWUFOIFRPV04KKwkJCQlTSEVOWkhFTiBHVUFOR0RPTkcgNTE4MTA4CisJCQkJQ0hJTkEKKworMDAtMTYtNzkgICAoaGV4KQkJZU9uIENvbW11bmljYXRpb25zCiswMDE2NzkgICAgIChiYXNlIDE2KQkJZU9uIENvbW11bmljYXRpb25zCisJCQkJNDEwNSBSb3lhbCBEcml2ZSwgU3VpdGUgMTAwCisJCQkJS2VubmVzYXcgR2VvcmdpYSAzMDE0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtN0EgICAoaGV4KQkJU2t5d29ydGggT3ZlcnNlYXMgRHZlbG9wbWVudCBMdGQuCiswMDE2N0EgICAgIChiYXNlIDE2KQkJU2t5d29ydGggT3ZlcnNlYXMgRHZlbG9wbWVudCBMdGQuCisJCQkJUm9vbSAxNTA1LTA2LFdlc3RsYW5kcyBDZW50cmUKKwkJCQkyMCBXZXN0bGFuZHMgUm9hZCwgUXVhcnJ5IEJheSwKKwkJCQlIT05HIEtPTkcKKworMDAtMTYtN0IgICAoaGV4KQkJSGF2ZXImQm9lY2tlcgorMDAxNjdCICAgICAoYmFzZSAxNikJCUhhdmVyJkJvZWNrZXIKKwkJCQlDYXJsLUhhdmVyLVBsYXR6IDMKKwkJCQlPZWxkZSBOUlcgNTkzMDIKKwkJCQlHRVJNQU5ZCisKKzAwLTE2LTdDICAgKGhleCkJCWlSZXggVGVjaG5vbG9naWVzIEJWCiswMDE2N0MgICAgIChiYXNlIDE2KQkJaVJleCBUZWNobm9sb2dpZXMgQlYKKwkJCQlIaWdoVGVjaCBDYW1wdXMKKwkJCQlCdWlsZGluZyA0Niwgcm9vbSBwLTAwNQorCQkJCUVpbmRob3ZlbiBCcmFiYW50IDU2NTZBRQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE2LTdEICAgKGhleCkJCVNreS1MaW5lIEluZm9ybWF0aW9uIENvLiwgTHRkLgorMDAxNjdEICAgICAoYmFzZSAxNikJCVNreS1MaW5lIEluZm9ybWF0aW9uIENvLiwgTHRkLgorCQkJCThGLixOby4zOCxTaWh5dWFuIFJkLiwKKwkJCQlTaW5paHVhbmcgVGFpcGVpIDI0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtN0UgICAoaGV4KQkJRElCT1NTLkNPLixMVEQKKzAwMTY3RSAgICAgKGJhc2UgMTYpCQlESUJPU1MuQ08uLExURAorCQkJCTEyNi0xLCBHb25nZGFuLWRvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtOTAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTdGICAgKGhleCkJCUJsdWViaXJkIFNvZnQgSW5jLgorMDAxNjdGICAgICAoYmFzZSAxNikJCUJsdWViaXJkIFNvZnQgSW5jLgorCQkJCTU2Mi0yMSBHYW5nbmFtLWd1LAorCQkJCVNlb3VsICAxMzUtODkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTgwICAgKGhleCkJCUJhbGx5IEdhbWluZyArIFN5c3RlbXMKKzAwMTY4MCAgICAgKGJhc2UgMTYpCQlCYWxseSBHYW1pbmcgKyBTeXN0ZW1zCisJCQkJOTUwIFNhbmRoaWxsIFJvYWQKKwkJCQlSZW5vIE5WIDg5NTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi04MSAgIChoZXgpCQlWZWN0b3IgSW5mb3JtYXRpayBHbWJICiswMDE2ODEgICAgIChiYXNlIDE2KQkJVmVjdG9yIEluZm9ybWF0aWsgR21iSAorCQkJCUluZ2Vyc2hlaW1lciBTdHIuIDI0CisJCQkJU3R1dHRnYXJ0IEJhZGVuLVd1ZXJ0dGVtYmVyZyA3MDQ5OQorCQkJCUdFUk1BTlkKKworMDAtMTYtODIgICAoaGV4KQkJUHJvIERleCwgSW5jCiswMDE2ODIgICAgIChiYXNlIDE2KQkJUHJvIERleCwgSW5jCisJCQkJMTgwMCBOVyAxNjl0aCBQbGFjZQorCQkJCUMxMDAKKwkJCQlCZWF2ZXJ0b24gT3JlZ29uIDk3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi04MyAgIChoZXgpCQlXRUJJTyBJbnRlcm5hdGlvbmFsIENvLiwuTHRkLgorMDAxNjgzICAgICAoYmFzZSAxNikJCVdFQklPIEludGVybmF0aW9uYWwgQ28uLC5MdGQuCisJCQkJMjFGLixOby4xNzEgU29uZ2RlIFJkLixTaW55aSBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTEwODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTg0ICAgKGhleCkJCURvbmppbiBDby4sTHRkLgorMDAxNjg0ICAgICAoYmFzZSAxNikJCURvbmppbiBDby4sTHRkLgorCQkJCTIxRixDYW5nc29uZyBCdWlsZGluZyxUYWlyYW4sRnV0aWFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA0MAorCQkJCUNISU5BCisKKzAwLTE2LTg1ICAgKGhleCkJCUVsaXNhIE95agorMDAxNjg1ICAgICAoYmFzZSAxNikJCUVsaXNhIE95agorCQkJCUVsZWt0cm9uaWlra2F0aWUgNAorCQkJCTkwNTcwIE91bHUgCisJCQkJRklOTEFORAorCiswMC0xNi04NiAgIChoZXgpCQlLYXJsIFN0b3J6IEltYWdpbmcKKzAwMTY4NiAgICAgKGJhc2UgMTYpCQlLYXJsIFN0b3J6IEltYWdpbmcKKwkJCQkxNzUgQ3JlbW9uYSBEci4KKwkJCQlHb2xldGEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTg3ICAgKGhleCkJCUNodWJiIENTQy1WZW5kb3IgQVAKKzAwMTY4NyAgICAgKGJhc2UgMTYpCQlDaHViYiBDU0MtVmVuZG9yIEFQCisJCQkJT3R0YXdhIFNUTgorCQkJCVAuTy4gQk9YIDk4MzIKKwkJCQlPdHRhd2EgIEsxRyA2VzYKKwkJCQlDQU5BREEKKworMDAtMTYtODggICAoaGV4KQkJU2VydmVyRW5naW5lcyBMTEMKKzAwMTY4OCAgICAgKGJhc2UgMTYpCQlTZXJ2ZXJFbmdpbmVzIExMQworCQkJCTIwOSBOLiBGYWlyIE9ha3MgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi04OSAgIChoZXgpCQlQaWxrb3IgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzAwMTY4OSAgICAgKGJhc2UgMTYpCQlQaWxrb3IgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKwkJCQkzODEsV29uY2h1bi1Eb25nLFllb3VuZ3RvbmctR3UKKwkJCQlTdXdvbiBLeXVuZyBLaS1EbyA0NDItMzgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LThBICAgKGhleCkJCWlkLUNvbmZpcm0gSW5jCiswMDE2OEEgICAgIChiYXNlIDE2KQkJaWQtQ29uZmlybSBJbmMKKwkJCQkxODAwIEJvdWxkZXIgU3QKKwkJCQlTdWl0ZSA0MDAKKwkJCQlEZW52ZXIgQ08gODAyMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LThCICAgKGhleCkJCVBhcmFsYW4gQ29ycG9yYXRpb24KKzAwMTY4QiAgICAgKGJhc2UgMTYpCQlQYXJhbGFuIENvcnBvcmF0aW9uCisJCQkJNDY1NSBSdWZmbmVyIFN0LgorCQkJCVNhbiBEaWVnbyBDQSA5MjExMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtOEMgICAoaGV4KQkJRFNMIFBhcnRuZXIgQVMKKzAwMTY4QyAgICAgKGJhc2UgMTYpCQlEU0wgUGFydG5lciBBUworCQkJCUhhdnJldmVpZW4gNDkKKwkJCQlPc2xvICAwNjgwCisJCQkJTk9SV0FZCisKKzAwLTE2LThEICAgKGhleCkJCUtPUldJTiBDTy4sIEx0ZC4KKzAwMTY4RCAgICAgKGJhc2UgMTYpCQlLT1JXSU4gQ08uLCBMdGQuCisJCQkJM3JkIEZsb29yLCBIYW5hIEJsZGcsIDEyMy03IE5vbmh5dW4tZG9uZworCQkJCUthbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi04RSAgIChoZXgpCQlWaW1pY3JvIGNvcnBvcmF0aW9uCiswMDE2OEUgICAgIChiYXNlIDE2KQkJVmltaWNybyBjb3Jwb3JhdGlvbgorCQkJCTE1L0YsU2hpbmluZyBUb3dlcixOby4zNSx4dWV5dWFuCisJCQkJUm9hZCxIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgzCisJCQkJQ0hJTkEKKworMDAtMTYtOEYgICAoaGV4KQkJR04gTmV0Y29tIGFzCiswMDE2OEYgICAgIChiYXNlIDE2KQkJR04gTmV0Y29tIGFzCisJCQkJTWV0YWxidWVuIDY2CisJCQkJUC5PLkJveCAyMDEKKwkJCQlCYWxsZXJ1cCBTa292bHVuZGUgREsgLSAyNzUwCisJCQkJREVOTUFSSworCiswMC0xNi05MCAgIChoZXgpCQlKLVRFSyBJTkNPUlBPUkFUSU9OCiswMDE2OTAgICAgIChiYXNlIDE2KQkJSi1URUsgSU5DT1JQT1JBVElPTgorCQkJCTJGLTEsIE5vLiA4MywgU2VjLiAyLCBHb25nRGFvV3UgUmQuLAorCQkJCUhzaW5jaHUgQ2l0eSAgMzAwNzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTkxICAgKGhleCkJCU1vc2VyLUJhZXIgQUcKKzAwMTY5MSAgICAgKGJhc2UgMTYpCQlNb3Nlci1CYWVyIEFHCisJCQkJU3BpdGFsc3RyYXNzZSA3CisJCQkJU3VtaXN3YWxkIEJFIDM0NTQKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xNi05MiAgIChoZXgpCQlTY2llbnRpZmljLUF0bGFudGEsIEluYy4KKzAwMTY5MiAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljLUF0bGFudGEsIEluYy4KKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJQVRMIDEuMy40NzMKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi05MyAgIChoZXgpCQlQb3dlckxpbmsgVGVjaG5vbG9neSBJbmMuCiswMDE2OTMgICAgIChiYXNlIDE2KQkJUG93ZXJMaW5rIFRlY2hub2xvZ3kgSW5jLgorCQkJCU4wLiAxOCwgQWxsZXkgMSwgTGFuZSAxNTEsIFNlYy4gMSwgSmhvbmdzaW5nIFJkLiwgV3VndSBUb3duc2hpcAorCQkJCVRhaXBlaSBIc2llbiAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi05NCAgIChoZXgpCQlTZW5uaGVpc2VyIENvbW11bmljYXRpb25zIEEvUworMDAxNjk0ICAgICAoYmFzZSAxNikJCVNlbm5oZWlzZXIgQ29tbXVuaWNhdGlvbnMgQS9TCisJCQkJTGFuZ2FnZXIgNgorCQkJCVNvbHL4ZCBTdHJhbmQgQ29wZW5oYWdlbiAyNjgwCisJCQkJREVOTUFSSworCiswMC0xNi05NSAgIChoZXgpCQlBVkMgVGVjaG5vbG9neSBMaW1pdGVkCiswMDE2OTUgICAgIChiYXNlIDE2KQkJQVZDIFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCTYvRiBFbnRlcnByaXNlIFNxdWFyZSBJSUkKKwkJCQkzOSBXYW5nIENoaXUgUm9hZAorCQkJCUtvd2xvb24gQmF5ICAKKwkJCQlIT05HIEtPTkcKKworMDAtMTYtOTYgICAoaGV4KQkJUURJIFRlY2hub2xvZ3kgKEguSy4pIExpbWl0ZWQKKzAwMTY5NiAgICAgKGJhc2UgMTYpCQlRREkgVGVjaG5vbG9neSAoSC5LLikgTGltaXRlZAorCQkJCTE2L0YsIFN0YW5kYXJkIENoYXJ0ZXJlZCBCYW5rIEJ1aWxkaW5nIDQtNEEKKwkJCQlEZXMgVm9ldXggUm9hZCBDZW50cmFsCisJCQkJSG9uZyBLb25nICAKKwkJCQlDSElOQQorCiswMC0xNi05NyAgIChoZXgpCQlORUMgQ29ycG9yYXRpb24KKzAwMTY5NyAgICAgKGJhc2UgMTYpCQlORUMgQ29ycG9yYXRpb24KKwkJCQk3LTEsIFNoaWJhIDUtY2hvbWUgTWluYXRvLWt1LAorCQkJCVRva3lvIDEwOC04MDAxCisJCQkJSkFQQU4KKworMDAtMTYtOTggICAoaGV4KQkJVCZBIE1vYmlsZSBQaG9uZXMKKzAwMTY5OCAgICAgKGJhc2UgMTYpCQlUJkEgTW9iaWxlIFBob25lcworCQkJCTQvRiwgU291dGggQnVpbGRpbmcsTm8uMjk2NiwgSmlua2UgUm9hZAorCQkJCVpoYW5namlhbmcgSGlnaC1UZWNrIFBhcmsKKwkJCQlQdWRvbmcgU2hhbmdoYWkgMjAxMjAzCisJCQkJQ0hJTkEKKworMDAtMTYtOTkgICAoaGV4KQkJVG9uaWMgRFZCIE1hcmtldGluZyBMdGQKKzAwMTY5OSAgICAgKGJhc2UgMTYpCQlUb25pYyBEVkIgTWFya2V0aW5nIEx0ZAorCQkJCVVuaXQgQiwgMTAvRiwgU3VtbWl0IEJ1aWxkaW5nLAorCQkJCTMwIE1hbiBZdWUgU3RyZWV0LAorCQkJCUh1bmcgSG9tIEtvd2xvb24gCisJCQkJSE9ORyBLT05HCisKKzAwLTE2LTlBICAgKGhleCkJCVF1YWRyaWNzIEx0ZAorMDAxNjlBICAgICAoYmFzZSAxNikJCVF1YWRyaWNzIEx0ZAorCQkJCTEgQnJpZGV3ZWxsIFN0cmVldAorCQkJCUJyaXN0b2wgIEJTMSAyQUEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi05QiAgIChoZXgpCQlBbHN0b20gVHJhbnNwb3J0CiswMDE2OUIgICAgIChiYXNlIDE2KQkJQWxzdG9tIFRyYW5zcG9ydAorCQkJCTExLCAxMyBhdmVudWUgZGUgQmVsIEFpcgorCQkJCVZpbGxldXJiYW5uZSBSaG9uZSA2OTEwMAorCQkJCUZSQU5DRQorCiswMC0xNi05QyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE2OUMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi05RCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE2OUQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi05RSAgIChoZXgpCQlUViBPbmUgTHRkCiswMDE2OUUgICAgIChiYXNlIDE2KQkJVFYgT25lIEx0ZAorCQkJCVVuaXQgViBDb250aW5lbnRhbCBBcHByb2FjaAorCQkJCVdlc3R3b29kIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJTWFyZ2F0ZSBLZW50IENUOSA0SkcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi05RiAgIChoZXgpCQlWaW10cm9uIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxNjlGICAgICAoYmFzZSAxNikJCVZpbXRyb24gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJN0YuLCBOby45LCBBbGxleSAyLCBMYW5lIDM1CisJCQkJSmlodSBSZC4KKwkJCQlOZWlodSBEaXN0cmljdCBUYWlwZWkgQ2l0eSAxMTQ5MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtQTAgICAoaGV4KQkJQXV0by1NYXNraW4KKzAwMTZBMCAgICAgKGJhc2UgMTYpCQlBdXRvLU1hc2tpbgorCQkJCVNvcGhpZSBSYWRpY2hzIFZlaSA3CisJCQkJTElMTEVTVFJPTSBBa2Vyc2h1cyAyMDAzCisJCQkJTk9SV0FZCisKKzAwLTE2LUExICAgKGhleCkJCTNMZWFmIE5ldHdvcmtzCiswMDE2QTEgICAgIChiYXNlIDE2KQkJM0xlYWYgTmV0d29ya3MKKwkJCQkzMjU1LTEgU2NvdHQgQmx2ZAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1BMiAgIChoZXgpCQlDZW50cmFMaXRlIFN5c3RlbXMsIEluYy4KKzAwMTZBMiAgICAgKGJhc2UgMTYpCQlDZW50cmFMaXRlIFN5c3RlbXMsIEluYy4KKwkJCQk2NDIwIFdhbGwgU3RyZWV0CisJCQkJTW9iaWxlIEFMIDM2Njk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1BMyAgIChoZXgpCQlJbmdldGVhbSBUcmFuc21pc3Npb24mRGlzdHJpYnV0aW9uLCBTLkEuCiswMDE2QTMgICAgIChiYXNlIDE2KQkJSW5nZXRlYW0gVHJhbnNtaXNzaW9uJkRpc3RyaWJ1dGlvbiwgUy5BLgorCQkJCUMvIFVzYXVzdWFnYSwgNworCQkJCVBvbC4gQXJ0dW5kdWFnYQorCQkJCUJhc2F1cmkgQml6a2FpYSA0ODk3MAorCQkJCVNQQUlOCisKKzAwLTE2LUE0ICAgKGhleCkJCUV6dXJpbyBMdGQKKzAwMTZBNCAgICAgKGJhc2UgMTYpCQlFenVyaW8gTHRkCisJCQkJVW5pdCAyCisJCQkJMTI2IENvbGluZGFsZSBBdmVudWUKKwkJCQlMb25kb24gIE5XOSA1SEQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi1BNSAgIChoZXgpCQlUYW5kYmVyZyBTdG9yYWdlIEFTQQorMDAxNkE1ICAgICAoYmFzZSAxNikJCVRhbmRiZXJnIFN0b3JhZ2UgQVNBCisJCQkJUG9zdGJva3MgMTkxCisJCQkJMTMyNSBMeXNha2VyCisJCQkJTk9SV0FZCisKKzAwLTE2LUE2ICAgKGhleCkJCURvdmFkbyBGWi1MTEMKKzAwMTZBNiAgICAgKGJhc2UgMTYpCQlEb3ZhZG8gRlotTExDCisJCQkJQWwtVGh1cmF5YSBUb3dlciAxLCBvZmZpY2UgNTA0CisJCQkJUC5PLiBCb3ggNTAwNDIyCisJCQkJRHViYWkgIAorCQkJCVVOSVRFRCBBUkFCIEVNSVJBVEVTCisKKzAwLTE2LUE3ICAgKGhleCkJCUFXRVRBIEcmUAorMDAxNkE3ICAgICAoYmFzZSAxNikJCUFXRVRBIEcmUAorCQkJCUJ1cmcuIFdpbmtlbGxhYW4gMworCQkJCU5vb3Rkb3JwICAyNjMxIEhHCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTYtQTggICAoaGV4KQkJQ1dUIENPLiwgTFRELgorMDAxNkE4ICAgICAoYmFzZSAxNikJCUNXVCBDTy4sIExURC4KKwkJCQkxMEYgTm8uIDc0IFNlYy4gMSBDaHVuZy1IdWEgUmQuCisJCQkJVGFpcGVpICAxMDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUE5ICAgKGhleCkJCTJFSQorMDAxNkE5ICAgICAoYmFzZSAxNikJCTJFSQorCQkJCVJ1YSBkb3MgUnViaXMsIDc3IC0gQXNzdW1wY2FvCisJCQkJQWd1YXMgZGUgTGluZG9pYSBTYW8gUGF1bG8gMTM5NDAtMDAwCisJCQkJQlJBWklMCisKKzAwLTE2LUFBICAgKGhleCkJCUtlaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgSW5jLgorMDAxNkFBICAgICAoYmFzZSAxNikJCUtlaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgSW5jLgorCQkJCTgtQkFOIENIVU9VCisJCQkJS09CRSBIWU9HTyA2NTAtMDAyNAorCQkJCUpBUEFOCisKKzAwLTE2LUFCICAgKGhleCkJCVBCSS1EYW5zZW5zb3IgQS9TCiswMDE2QUIgICAgIChiYXNlIDE2KQkJUEJJLURhbnNlbnNvciBBL1MKKwkJCQlSb2VubmVkZXZlaiAxOAorCQkJCVJpbmdzdGVkICBESy00MTAwCisJCQkJREVOTUFSSworCiswMC0xNi1BQyAgIChoZXgpCQlUb2hvIFRlY2hub2xvZ3kgQ29ycC4KKzAwMTZBQyAgICAgKGJhc2UgMTYpCQlUb2hvIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQlISUdBU0hJIDUtMQorCQkJCU9SSVpVU0hJTU9NQUNISQorCQkJCUlOQVpBV0EtQ0lUWSBBSUNISSA0OTItODUwMQorCQkJCUpBUEFOCisKKzAwLTE2LUFEICAgKGhleCkJCUJULUxpbmtzIENvbXBhbnkgTGltaXRlZAorMDAxNkFEICAgICAoYmFzZSAxNikJCUJULUxpbmtzIENvbXBhbnkgTGltaXRlZAorCQkJCVJtIDgwMiwgTmFuIEZ1bmcgQ2VudHJlLCAyNjQtMjk4IENhc3RsZSBQZWFrIFJkCisJCQkJVHN1ZW4gV2FuCisJCQkJSE9ORyBLT05HCisKKzAwLTE2LUFFICAgKGhleCkJCUlOVkVOVEVMCiswMDE2QUUgICAgIChiYXNlIDE2KQkJSU5WRU5URUwKKwkJCQkzNSBydWUgVG91cm5lZm9ydAorCQkJCVBBUklTICA3NTAwNQorCQkJCUZSQU5DRQorCiswMC0xNi1BRiAgIChoZXgpCQlTaGVuemhlbiBVbmlvbiBOZXR3b3JrcyBFcXVpcG1lbnQgQ28uLEx0ZC4KKzAwMTZBRiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBVbmlvbiBOZXR3b3JrcyBFcXVpcG1lbnQgQ28uLEx0ZC4KKwkJCQlZaWhhaSBTcXVhcmUgZWFzdCBidWlsZGluZyAyMzA3LCBDaHVhbmd5ZSByb2FkLCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NAorCQkJCUNISU5BCisKKzAwLTE2LUIwICAgKGhleCkJCVZLIENvcnBvcmF0aW9uCiswMDE2QjAgICAgIChiYXNlIDE2KQkJVksgQ29ycG9yYXRpb24KKwkJCQlWSyBCL0QsIDU0OC02LCBBbnlhbmcgOGRvbmcsIE1hbmFuLWd1CisJCQkJQW55YW5nIEt5b3VuZ2dpIDQzMC04OTAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LUIxICAgKGhleCkJCUtCUworMDAxNkIxICAgICAoYmFzZSAxNikJCUtCUworCQkJCTg4IHJ1ZSBQaWVycmUgU+ltYXJkCisJCQkJQlAgNTUKKwkJCQlNb2lzc3kgY2VkZXggSWxlIGRlIEZyYW5jZSA3NzU1MgorCQkJCUZSQU5DRQorCiswMC0xNi1CMiAgIChoZXgpCQlEcml2ZUNhbSBJbmMKKzAwMTZCMiAgICAgKGJhc2UgMTYpCQlEcml2ZUNhbSBJbmMKKwkJCQkzOTU0IE11cnBoeSBDYW55b24gUm9hZAorCQkJCVN1aXRlIEQyMDUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUIzICAgKGhleCkJCVBob3RvbmljYnJpZGdlcyAoQ2hpbmEpIENvLiwgTHRkLgorMDAxNkIzICAgICAoYmFzZSAxNikJCVBob3RvbmljYnJpZGdlcyAoQ2hpbmEpIENvLiwgTHRkLgorCQkJCU5vLiA5MDAsIFlpc2hhbiByb2FkLAorCQkJCVNoYW5naGFpICAyMDAyMzMKKwkJCQlDSElOQQorCiswMC0xNi1CNCAgIChoZXgpCQlQUklWQVRFCiswMDE2QjQgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTE2LUI1ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE2QjUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1CNiAgIChoZXgpCQlDaXNjby1MaW5rc3lzCiswMDE2QjYgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cworCQkJCTEyMSBUaGVvcnkKKwkJCQlJcnZpbmUgQ0EgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUI3ICAgKGhleCkJCVNlb3VsIENvbW10ZWNoCiswMDE2QjcgICAgIChiYXNlIDE2KQkJU2VvdWwgQ29tbXRlY2gKKwkJCQk0NDgtMTEsIFNlb25nbmFlIDNkb25nLiBHYW5nZG9uZyBndSwKKwkJCQlTZW91bCAgMTM0MDMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LUI4ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCiswMDE2QjggICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTa+VuZSAyMjE4OAorCQkJCVNXRURFTgorCiswMC0xNi1COSAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nCiswMDE2QjkgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZworCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQKKwkJCQlNUyA1NjYyCisJCQkJUm9zZXZpbGxlIENBIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1CQSAgIChoZXgpCQlXRUFUSEVSTkVXUyBJTkMuCiswMDE2QkEgICAgIChiYXNlIDE2KQkJV0VBVEhFUk5FV1MgSU5DLgorCQkJCU5BS0FTRSAxLTMgTVRHCisJCQkJQ0hJQkEgIDI2Mi0wMDMyCisJCQkJSkFQQU4KKworMDAtMTYtQkIgICAoaGV4KQkJTGF3LUNoYWluIENvbXB1dGVyIFRlY2hub2xvZ3kgQ28gTHRkCiswMDE2QkIgICAgIChiYXNlIDE2KQkJTGF3LUNoYWluIENvbXB1dGVyIFRlY2hub2xvZ3kgQ28gTHRkCisJCQkJN0YtMiwgMjg2LTQsIGhzaW4geWEgcm9hZCwgY2hpZW4gY2hlbiBkaXN0cmljdAorCQkJCUthb2hzaXVuZyAgODA2NzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUJDICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDE2QkMgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTE2LUJEICAgKGhleCkJCUFUSSBJbmR1c3RyaWFsIEF1dG9tYXRpb24KKzAwMTZCRCAgICAgKGJhc2UgMTYpCQlBVEkgSW5kdXN0cmlhbCBBdXRvbWF0aW9uCisJCQkJMTAzMSBHb29kd29ydGggRHJpdmUKKwkJCQlBcGV4IE5vcnRoIENhcm9saW5hIDI3NTM5LTM4NjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUJFICAgKGhleCkJCUlORlJBTkVULCBJbmMuCiswMDE2QkUgICAgIChiYXNlIDE2KQkJSU5GUkFORVQsIEluYy4KKwkJCQk4dGggRmxvb3IsIENvd2VsbCBCL0QsIDY2LTEKKwkJCQlCYW5wby1Eb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCAgMTM3LTA0MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi1CRiAgIChoZXgpCQlQYWxvREV4IEdyb3VwIE95CiswMDE2QkYgICAgIChiYXNlIDE2KQkJUGFsb0RFeCBHcm91cCBPeQorCQkJCVAuTy4gQm94IDY0CisJCQkJTmFoa2VsYW50aWUgMTYwCisJCQkJVHV1c3VsYSAgMDQzMDEKKwkJCQlGSU5MQU5ECisKKzAwLTE2LUMwICAgKGhleCkJCVNlbXRlY2ggQ29ycG9yYXRpb24KKzAwMTZDMCAgICAgKGJhc2UgMTYpCQlTZW10ZWNoIENvcnBvcmF0aW9uCisJCQkJMjAwIEZseW5uIFJkCisJCQkJQ2FtYXJpbGxvIENhbGlmb3JuaWEgOTMwMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUMxICAgKGhleCkJCUVsZWtzZW4gTHRkCiswMDE2QzEgICAgIChiYXNlIDE2KQkJRWxla3NlbiBMdGQKKwkJCQlQaW5ld29vZCBTdHVkaW9zCisJCQkJSXZlciBIZWF0aAorCQkJCUl2ZXIgQnVja3MgU0wwIDBOSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE2LUMyICAgKGhleCkJCUF2dGVjIFN5c3RlbXMgSW5jCiswMDE2QzIgICAgIChiYXNlIDE2KQkJQXZ0ZWMgU3lzdGVtcyBJbmMKKwkJCQkxNDQzMiBBbGJlbWFybGUgUG9pbnQgUGxhY2UKKwkJCQlDaGFudGlsbHkgVmlyZ2luaWEgMjAxNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUMzICAgKGhleCkJCUJBIFN5c3RlbXMgSW5jCiswMDE2QzMgICAgIChiYXNlIDE2KQkJQkEgU3lzdGVtcyBJbmMKKwkJCQk2ODk1IFZpYSBEZWwgT3JvCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUM0ICAgKGhleCkJCVNpUkYgVGVjaG5vbG9neSwgSW5jLgorMDAxNkM0ICAgICAoYmFzZSAxNikJCVNpUkYgVGVjaG5vbG9neSwgSW5jLgorCQkJCTIxNyBEZXZjb24gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUM1ICAgKGhleCkJCVNoZW56aGVuIFhpbmcgRmVuZyBJbmR1c3RyeSBDby4sTHRkCiswMDE2QzUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gWGluZyBGZW5nIEluZHVzdHJ5IENvLixMdGQKKwkJCQlGbG9vciAxIC0gNCwgQmxvY2sgMjUsIEhvbmd0aWFuIEppbnl1YW4gSW5kdXN0cmlhbCwKKwkJCQlIb25ndGlhbiBSb2FkIEh1YW5ncHUsIFNoYWppbiwgQmFvYW4sCisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDg2CisJCQkJQ0hJTkEKKworMDAtMTYtQzYgICAoaGV4KQkJTm9ydGggQXRsYW50aWMgSW5kdXN0cmllcworMDAxNkM2ICAgICAoYmFzZSAxNikJCU5vcnRoIEF0bGFudGljIEluZHVzdHJpZXMKKwkJCQkxNzAgV2lsYnVyIFBsYWNlCisJCQkJQm9oZW1pYSBOWSAxMTcxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQzcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNkM3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQzggICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNkM4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQzkgICAoaGV4KQkJTkFUIFNlYXR0bGUsIEluYy4KKzAwMTZDOSAgICAgKGJhc2UgMTYpCQlOQVQgU2VhdHRsZSwgSW5jLgorCQkJCTIyMTI1IDE3dGggQXZlIFNFCisJCQkJQm90aGVsbCBXQSA5ODAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQ0EgICAoaGV4KQkJTm9ydGVsCiswMDE2Q0EgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTYtQ0IgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIKKzAwMTZDQiAgICAgKGJhc2UgMTYpCQlBcHBsZSBDb21wdXRlcgorCQkJCTEgSW5maW5pdGUgTG9vcCBNUzozNUdQTworCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQ0MgICAoaGV4KQkJWGN1dGUgTW9iaWxlIENvcnAuCiswMDE2Q0MgICAgIChiYXNlIDE2KQkJWGN1dGUgTW9iaWxlIENvcnAuCisJCQkJM0YuIE5vLjI1LCBBbGx5MTUsIExhbmUgMTIwLCBTZWMuMSwgTmVpaHUgUmQuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUNEICAgKGhleCkJCUhJSkkgSElHSC1URUNIIENPLiwgTFRELgorMDAxNkNEICAgICAoYmFzZSAxNikJCUhJSkkgSElHSC1URUNIIENPLiwgTFRELgorCQkJCU9oZ2EgODEzMworCQkJCUhpamkKKwkJCQlIYXlhbWkgT2l0YSA4NzktMTUwNAorCQkJCUpBUEFOCisKKzAwLTE2LUNFICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCiswMDE2Q0UgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKwkJCQk2NiwgQ2h1bmcgU2hhbiBSZC4gVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtQ0YgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMTZDRiAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCTY2LCBDaHVuZyBTaGFuIFJkLiBUdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi1EMCAgIChoZXgpCQlBVGVjaCBlbGVrdHJvbmlrYSBkLm8uby4KKzAwMTZEMCAgICAgKGJhc2UgMTYpCQlBVGVjaCBlbGVrdHJvbmlrYSBkLm8uby4KKwkJCQlCYWMgcHJpIE1hdGVyaWppIDMwCisJCQkJTWF0ZXJpamEgU0kgNjI0MgorCQkJCVNMT1ZFTklBCisKKzAwLTE2LUQxICAgKGhleCkJCVpBVCBhLnMuCiswMDE2RDEgICAgIChiYXNlIDE2KQkJWkFUIGEucy4KKwkJCQlLIFBvZGxlc2kgNTQxCisJCQkJUHJpYnJhbSBWSSAgMjYxODAKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0xNi1EMiAgIChoZXgpCQlDYXNwaWFuCiswMDE2RDIgICAgIChiYXNlIDE2KQkJQ2FzcGlhbgorCQkJCTE3MCBCYXl0ZWNoIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUQzICAgKGhleCkJCVdpc3Ryb24gQ29ycG9yYXRpb24KKzAwMTZEMyAgICAgKGJhc2UgMTYpCQlXaXN0cm9uIENvcnBvcmF0aW9uCisJCQkJMjFGLCA4OCwgU2VjLjEsIEhzaW4gVGFpIFd1IFJkLiwgSHNpY2hpaCwKKwkJCQlUYWlwZWkgSHNpZW4gIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtRDQgICAoaGV4KQkJQ29tcGFsIENvbW11bmljYXRpb25zLCBJbmMuCiswMDE2RDQgICAgIChiYXNlIDE2KQkJQ29tcGFsIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJN3RoLCBGTCwgTm8uIDMxOSwgU2VjLiA0LCBQYS1UZWggcmQuCisJCQkJVGFpcGVpICA4ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUQ1ICAgKGhleCkJCVN5bmNjb20gQ28uLCBMdGQKKzAwMTZENSAgICAgKGJhc2UgMTYpCQlTeW5jY29tIENvLiwgTHRkCisJCQkJIzMwNiBNeXVuZ2kgZS1zcGFjZSAgMjE4LTIwCisJCQkJQW55YW5nNy1kb25nIE1hbmFuLWd1CisJCQkJQW55YW5nLXNpIEt5dW5na2ktZG8gNDMwLTgxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi1ENiAgIChoZXgpCQlUREEgVGVjaCBQdHkgTHRkCiswMDE2RDYgICAgIChiYXNlIDE2KQkJVERBIFRlY2ggUHR5IEx0ZAorCQkJCTIxMCAvIDU0IEN1cnJpZSBTdHJlZXQKKwkJCQlBZGVsYWlkZSBTb3V0aCBBdXN0cmFsaWEgNTAwMAorCQkJCUFVU1RSQUxJQQorCiswMC0xNi1ENyAgIChoZXgpCQlTdW53YXlzIEFHCiswMDE2RDcgICAgIChiYXNlIDE2KQkJU3Vud2F5cyBBRworCQkJCU1hY2FpcmVzdHIuMy01CisJCQkJS29uc3RhbnogQmFkZW4gV/xydHRlbWJlcmcgNzg0NjcKKwkJCQlHRVJNQU5ZCisKKzAwLTE2LUQ4ICAgKGhleCkJCVNlbmVhIEFCCiswMDE2RDggICAgIChiYXNlIDE2KQkJU2VuZWEgQUIKKwkJCQlG9nJldGFnc2FsbGVuIDEyCisJCQkJxWtlcnNiZXJnYSAgMTg0ODQKKwkJCQlTV0VERU4KKworMDAtMTYtRDkgICAoaGV4KQkJTklOR0JPIEJJUkQgQ08uLExURC4KKzAwMTZEOSAgICAgKGJhc2UgMTYpCQlOSU5HQk8gQklSRCBDTy4sTFRELgorCQkJCU5vLjk5OSBEYWNoZW5nIEVhc3QgUm9hZAorCQkJCUZlbmdodWEgWmhlamlhbmcgMzE1NTAwCisJCQkJQ0hJTkEKKworMDAtMTYtREEgICAoaGV4KQkJRnV0cm9uaWMgVGVjaG5vbG9neSBDby4gTHRkLgorMDAxNkRBICAgICAoYmFzZSAxNikJCUZ1dHJvbmljIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKwkJCQlSb29tIDEwMTZBLCAxMC9GLiwgUHJvZml0IEluZC4gQmxkZy4sCisJCQkJMS0xNSBLd2FpIEZ1bmcgQ3Jlc2NlbnQsCisJCQkJS3dhaSBDaHVuZyAgMDAwMDAKKwkJCQlIT05HIEtPTkcKKworMDAtMTYtREIgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMTZEQiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaS1DaXR5IEd5ZW9uZy1CdWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi1EQyAgIChoZXgpCQlBUkNIT1MKKzAwMTZEQyAgICAgKGJhc2UgMTYpCQlBUkNIT1MKKwkJCQkxMiBydWUgQU1QRVJFCisJCQkJSUdOWSBFU1NPTk5FUyA5MTQzMAorCQkJCUZSQU5DRQorCiswMC0xNi1ERCAgIChoZXgpCQlHaWdhYmVhbSBDb3Jwb3JhdGlvbgorMDAxNkREICAgICAoYmFzZSAxNikJCUdpZ2FiZWFtIENvcnBvcmF0aW9uCisJCQkJNDA3IFNwcmluZ3BhcmsgUGxhY2UKKwkJCQlTdGUgOTAwCisJCQkJSGVybmRvbiBWQSAyMDE3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtREUgICAoaGV4KQkJRkFTVCBJbmMKKzAwMTZERSAgICAgKGJhc2UgMTYpCQlGQVNUIEluYworCQkJCTkwNSBIb25leXNwb3QgUmQKKwkJCQlTdHJhdGZvcmQgQ1QgMDY2MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LURGICAgKGhleCkJCUx1bmRpbm92YSBBQgorMDAxNkRGICAgICAoYmFzZSAxNikJCUx1bmRpbm92YSBBQgorCQkJCURhbGJ5dmFnZW4gMQorCQkJCUx1bmQgU2thYW5lIFNFLTIyNCA2MAorCQkJCVNXRURFTgorCiswMC0xNi1FMCAgIChoZXgpCQkzQ29tIEx0ZAorMDAxNkUwICAgICAoYmFzZSAxNikJCTNDb20gTHRkCisJCQkJUGVvcGxlYnVpbGRpbmcgMgorCQkJCVBlb3BsZWJ1aWxkaW5nIEVzdGF0ZSwgTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi1FMSAgIChoZXgpCQlTaWxpY29uU3RvciwgSW5jLgorMDAxNkUxICAgICAoYmFzZSAxNikJCVNpbGljb25TdG9yLCBJbmMuCisJCQkJNDg0MzAgTGFrZXZpZXcgQmx2ZC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1FMiAgIChoZXgpCQlBbWVyaWNhbiBGaWJlcnRlaywgSW5jLgorMDAxNkUyICAgICAoYmFzZSAxNikJCUFtZXJpY2FuIEZpYmVydGVrLCBJbmMuCisJCQkJMTIwIEJlbG1vbnQgRHJpdmUKKwkJCQlTb21lcnNldCBOZXcgSmVyc2V5IDA4ODczLTEyMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUUzICAgKGhleCkJCUFTS0VZIENPTVBVVEVSIENPUlAuCiswMDE2RTMgICAgIChiYXNlIDE2KQkJQVNLRVkgQ09NUFVURVIgQ09SUC4KKwkJCQkxMEYsIE5PLjExOSwgQ0hJRU5LQU5HIFJELiwKKwkJCQlDSFVORy1ITywgVEFJUEVJICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUU0ICAgKGhleCkJCVZBTkdVQVJEIFNFQ1VSSVRZIEVOR0lORUVSSU5HIENPUlAuCiswMDE2RTQgICAgIChiYXNlIDE2KQkJVkFOR1VBUkQgU0VDVVJJVFkgRU5HSU5FRVJJTkcgQ09SUC4KKwkJCQkzLCBMQU5FIDMyLCBLU08gQ0hJTkcgUkQuCisJCQkJWUFOR01FSSBUQU9ZVUFOIDMyNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtRTUgICAoaGV4KQkJRk9SRExFWSBERVZFTE9QTUVOVCBMSU1JVEVECiswMDE2RTUgICAgIChiYXNlIDE2KQkJRk9SRExFWSBERVZFTE9QTUVOVCBMSU1JVEVECisJCQkJUk9PTSA3MDYsIDdUSCBGTE9PUiwgWVUgU1VORyBCT09OIEJVSUxESU5HLCAxMDctMTExIERFUyBWT0VVWCBST0FELCBDRU5UUkFMLAorCQkJCUhPTkcgS09ORworCiswMC0xNi1FNiAgIChoZXgpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorMDAxNkU2ICAgICAoYmFzZSAxNikJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCisJCQkJUGluLUplbiBDaXR5LCBUYW95dWFuCisJCQkJMzI0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi1FNyAgIChoZXgpCQlEeW5hbWl4IFByb21vdGlvbnMgTGltaXRlZAorMDAxNkU3ICAgICAoYmFzZSAxNikJCUR5bmFtaXggUHJvbW90aW9ucyBMaW1pdGVkCisJCQkJNzg4LTc5MCwgRmluY2hsZXkgUm9hZAorCQkJCUxvbmRvbiAgTlcxMSA3VEoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi1FOCAgIChoZXgpCQlTaWdtYSBEZXNpZ25zLCBJbmMuCiswMDE2RTggICAgIChiYXNlIDE2KQkJU2lnbWEgRGVzaWducywgSW5jLgorCQkJCTE3NzggTWNDYXJ0aHkgQmx2ZC4KKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtRTkgICAoaGV4KQkJVGliYSBNZWRpY2FsIEluYworMDAxNkU5ICAgICAoYmFzZSAxNikJCVRpYmEgTWVkaWNhbCBJbmMKKwkJCQk1MDI0IExha2V3b29kIERyaXZlCisJCQkJUGxhbm8gVFggNzUwOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUVBICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDE2RUEgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCBQYXJrIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyayBLdWxpbSAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE2LUVCICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDE2RUIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsgS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xNi1FQyAgIChoZXgpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbXMgQ28uLCBMdGQuCiswMDE2RUMgICAgIChiYXNlIDE2KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCU5vLiAyMiwgQWxsZXkgMzgsIExhbmUgOTEsIFNlYy4gMSwgTmVpIEh1IFJvYWQsCisJCQkJVGFpcGVpICAxMTQ0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtRUQgICAoaGV4KQkJRGlnaXRhbCBTYWZldHkgVGVjaG5vbG9naWVzLCBJbmMKKzAwMTZFRCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFNhZmV0eSBUZWNobm9sb2dpZXMsIEluYworCQkJCTUxMSBEYXZpcyBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCU1vcnJpc3ZpbGxlIE5DIDI3NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1FRSAgIChoZXgpCQlSb3lhbERpZ2l0YWwgSW5jLgorMDAxNkVFICAgICAoYmFzZSAxNikJCVJveWFsRGlnaXRhbCBJbmMuCisJCQkJOEYuLCBOby4zMDgsIFNlYy4xLCBOZWlodSBSZC4KKwkJCQlOZWlodSBEaXN0cmljdCwKKwkJCQlUYWlwZWkgQ2l0eSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi1FRiAgIChoZXgpCQlLb2tvIEZpdG5lc3MsIEluYy4KKzAwMTZFRiAgICAgKGJhc2UgMTYpCQlLb2tvIEZpdG5lc3MsIEluYy4KKwkJCQkxMzYgTG9uZ3dhdGVyIERyaXZlCisJCQkJTm9yd2VsbCBNQSAwMjA2MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtRjAgICAoaGV4KQkJRGVsbAorMDAxNkYwICAgICAoYmFzZSAxNikJCURlbGwKKwkJCQk5MDkgSGVybW9zYSBDdAorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtRjEgICAoaGV4KQkJT21uaVNlbnNlLCBMTEMKKzAwMTZGMSAgICAgKGJhc2UgMTYpCQlPbW5pU2Vuc2UsIExMQworCQkJCTIgUm9iaW4gRHJpdmUKKwkJCQlMYWR5cyBJc2xhbmQgU0MgMjk5MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUYyICAgKGhleCkJCURtb2JpbGUgU3lzdGVtIENvLiwgTHRkLgorMDAxNkYyICAgICAoYmFzZSAxNikJCURtb2JpbGUgU3lzdGVtIENvLiwgTHRkLgorCQkJCTJGLCBOby4xMy0yMCwgU2VjLjYsIE1pbmN5dWFuIEUuUmQsCisJCQkJTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtRjMgICAoaGV4KQkJQ0FTVCBJbmZvcm1hdGlvbiBDby4sIEx0ZAorMDAxNkYzICAgICAoYmFzZSAxNikJCUNBU1QgSW5mb3JtYXRpb24gQ28uLCBMdGQKKwkJCQk1RiBNU0EgQmxkZy4gODkxLTQzIERhY2NoaS1Eb25nLAorCQkJCWdhbmduYW0tR3UKKwkJCQlTRU9VTCAgMTM1LTI4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi1GNCAgIChoZXgpCQlFaWRpY29tIENvLiwgTHRkLgorMDAxNkY0ICAgICAoYmFzZSAxNikJCUVpZGljb20gQ28uLCBMdGQuCisJCQkJUG9seWNoZW0gQi9EIDR0aCBGbG9vciwgOTAwLTEKKwkJCQlLd2FueWFuZy1kb25nLCBEb25nYW4ta3UKKwkJCQlBbnlhbmctc2kgS3llb25nZ2ktZG8gNDMxLTA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi1GNSAgIChoZXgpCQlEYWxpYW4gR29sZGVuIEh1YWx1IERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkCiswMDE2RjUgICAgIChiYXNlIDE2KQkJRGFsaWFuIEdvbGRlbiBIdWFsdSBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCU5vLjEgSHVhIFJvYWQsUWl4aWFubGluZworCQkJCURhbGlhbiBMaWFvTmluZyAxMTYwMjMKKwkJCQlDSElOQQorCiswMC0xNi1GNiAgIChoZXgpCQlWaWRlbyBQcm9kdWN0cyBHcm91cAorMDAxNkY2ICAgICAoYmFzZSAxNikJCVZpZGVvIFByb2R1Y3RzIEdyb3VwCisJCQkJMTYwMCBFbWVyc29uIEF2ZW51ZQorCQkJCU94bmFyZCBDYWxpZm9ybmlhIDkzMDMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1GNyAgIChoZXgpCQlMLTMgQ29tbXVuaWNhdGlvbnMsIEVsZWN0cm9keW5hbWljcywgSW5jLgorMDAxNkY3ICAgICAoYmFzZSAxNikJCUwtMyBDb21tdW5pY2F0aW9ucywgRWxlY3Ryb2R5bmFtaWNzLCBJbmMuCisJCQkJMTIwMCBIaWNrcyBSZC4KKwkJCQlSb2xsaW5nIE1lYWRvd3MgSUwgNjAwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUY4ICAgKGhleCkJCUFWSVFURUNIIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDE2RjggICAgIChiYXNlIDE2KQkJQVZJUVRFQ0ggVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQk2RiAxMiwgTGktaHNpbiBSb2FkLCBTQklQCisJCQkJSHNpbi1jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtRjkgICAoaGV4KQkJQ0VUUlRBIFBPVCwgZC5vLm8uLCBLcmFuagorMDAxNkY5ICAgICAoYmFzZSAxNikJCUNFVFJUQSBQT1QsIGQuby5vLiwgS3JhbmoKKwkJCQlQbGFuaW5hIDMKKwkJCQlLcmFuaiBTSSA0MDAwCisJCQkJU0xPVkVOSUEKKworMDAtMTYtRkEgICAoaGV4KQkJRUNJIFRlbGVjb20gTHRkLgorMDAxNkZBICAgICAoYmFzZSAxNikJCUVDSSBUZWxlY29tIEx0ZC4KKwkJCQkzMCBIYXNpdmltIFN0LgorCQkJCVBldGFoIFRpa3ZhICA0OTEzMworCQkJCUlTUkFFTAorCiswMC0xNi1GQiAgIChoZXgpCQlTSEVOWkhFTiBNVEMgQ08uLExURC4KKzAwMTZGQiAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBNVEMgQ08uLExURC4KKwkJCQk1L0YgQmVuWXVhbiBCbGRnLDYwMTUgU2hlbk5hbiBSb2FkCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA0MAorCQkJCUNISU5BCisKKzAwLTE2LUZDICAgKGhleCkJCVRPSEtFTiBDTy4sTFRELgorMDAxNkZDICAgICAoYmFzZSAxNikJCVRPSEtFTiBDTy4sTFRELgorCQkJCTItMTYtMjAgVGFtYWdhd2EKKwkJCQlDaG9mdSBUb2t5byAxODItMDAyNQorCQkJCUpBUEFOCisKKzAwLTE2LUZEICAgKGhleCkJCUphdHkgRWxlY3Ryb25pY3MKKzAwMTZGRCAgICAgKGJhc2UgMTYpCQlKYXR5IEVsZWN0cm9uaWNzCisJCQkJSmF0eSBCbGRnIDEwRiwgMTY1OS01IEJvbmdjaHVuMTEtRG9uZworCQkJCUt3YW5hay1LdQorCQkJCVNlb3VsICAxNTEtODMyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LUZFICAgKGhleCkJCUFscHMgRWxlY3RyaWMgQ28uLCBMdGQKKzAwMTZGRSAgICAgKGJhc2UgMTYpCQlBbHBzIEVsZWN0cmljIENvLiwgTHRkCisJCQkJMS0yLTEsIE9raW5vdWNoaSwKKwkJCQlTb21hLWNpdHksIEZ1a3VzaGltYS1wcmVmLiwgOTc2LTg1MDEKKwkJCQlKQVBBTgorCiswMC0xNi1GRiAgIChoZXgpCQlXYW1pbiBPcHRvY29tbSBNZmcgQ29ycAorMDAxNkZGICAgICAoYmFzZSAxNikJCVdhbWluIE9wdG9jb21tIE1mZyBDb3JwCisJCQkJTm8uIDIzOSBRaWFvaGUgUm9hZAorCQkJCVpob25naGUgQ2l0eSBUYWlwZWkgQ291bnR5IDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctMDAgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMTcwMCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVUyBId3kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTAxICAgKGhleCkJCUtERSwgSW5jLgorMDAxNzAxICAgICAoYmFzZSAxNikJCUtERSwgSW5jLgorCQkJCUtERSBUT1dOLCA0Mi03LCBNYW5nd29sLWRvbmcKKwkJCQlIYW5hbSBHeWVvbmdnaS1kbyA0NjUtMTUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTAyICAgKGhleCkJCU9zdW5nIE1pZGljb20gQ28uLCBMdGQKKzAwMTcwMiAgICAgKGJhc2UgMTYpCQlPc3VuZyBNaWRpY29tIENvLiwgTHRkCisJCQkJMjMxLTE4LCBEb3JpbTItZG9uZywKKwkJCQlTZW91bCwgWW91bmdkZXVuZ3BvLWd1IDE1MC04MzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctMDMgICAoaGV4KQkJTU9TREFOIEludGVybmF0aW9uIENvLixMdGQKKzAwMTcwMyAgICAgKGJhc2UgMTYpCQlNT1NEQU4gSW50ZXJuYXRpb24gQ28uLEx0ZAorCQkJCU5vLjc0IENoZWdndW5nIFNoaW50c3VlbixTaGFuaHVhIEplbiwKKwkJCQlUYWluYW4gIDc0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctMDQgICAoaGV4KQkJU2hpbmNvIEVsZWN0cm9uaWNzIEdyb3VwIENvLixMdGQKKzAwMTcwNCAgICAgKGJhc2UgMTYpCQlTaGluY28gRWxlY3Ryb25pY3MgR3JvdXAgQ28uLEx0ZAorCQkJCU5vLjUgV2FpaHVhbiBSb2FkCisJCQkJQ2hhbmd6aG91IEppYW5nc3UgMjEzMDIyCisJCQkJQ0hJTkEKKworMDAtMTctMDUgICAoaGV4KQkJTWV0aG9kZSBFbGVjdHJvbmljcworMDAxNzA1ICAgICAoYmFzZSAxNikJCU1ldGhvZGUgRWxlY3Ryb25pY3MKKwkJCQk3NDAxIFcuIFdpbHNvbgorCQkJCUNoaWNhZ28gSUwgNjA3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTA2ICAgKGhleCkJCVRlY2hmYWl0aCBXaXJlbGVzcyBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgTGltaXRlZC4KKzAwMTcwNiAgICAgKGJhc2UgMTYpCQlUZWNoZmFpdGggV2lyZWxlc3MgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IExpbWl0ZWQuCisJCQkJMi9GIE04IFdlc3QgTm8uMSBKaXUgWGlhbiBRaWFvIERvbmcgUm9hZCwKKwkJCQlDaGFvIFlhbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwMTYKKwkJCQlDSElOQQorCiswMC0xNy0wNyAgIChoZXgpCQlJbkdyaWQsIEluYworMDAxNzA3ICAgICAoYmFzZSAxNikJCUluR3JpZCwgSW5jCisJCQkJOTIwIENhc3NhdHQgUmQKKwkJCQlTdWl0ZSAyMjAKKwkJCQlCZXJ3eW4gUGEgMTkzMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTA4ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxNzA4ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctMDkgICAoaGV4KQkJRXhhbHQgQ29tbXVuaWNhdGlvbnMKKzAwMTcwOSAgICAgKGJhc2UgMTYpCQlFeGFsdCBDb21tdW5pY2F0aW9ucworCQkJCTU4MCBEaXZpc2lvbiBTdHJlZXQKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctMEEgICAoaGV4KQkJSU5FVyBESUdJVEFMIENPTVBBTlkKKzAwMTcwQSAgICAgKGJhc2UgMTYpCQlJTkVXIERJR0lUQUwgQ09NUEFOWQorCQkJCVN1cHBseSBCdXJlYXUgM3RoIGZsb29yIEtUJkcgMjAzLTEsCisJCQkJUHlvbmcgY2hvbi1kb25nLCBEYWVkZW9nCisJCQkJRGFlamVvbiAgMzA2LTcxMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy0wQiAgIChoZXgpCQlDb250ZWxhLCBJbmMuCiswMDE3MEIgICAgIChiYXNlIDE2KQkJQ29udGVsYSwgSW5jLgorCQkJCTYtOCBTb29uYWUtZG9uZywgQnVuZGFuZy1ndSwKKwkJCQk1dGggRmxvb3IsIEtvcmVhIEZpcnN0IEJsZGcuLAorCQkJCVN1bmduYW0gS3l1bmdnaS1kbyA0NjMtODI1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTBDICAgKGhleCkJCVR3aWcgQ29tIEx0ZC4gCiswMDE3MEMgICAgIChiYXNlIDE2KQkJVHdpZyBDb20gTHRkLiAKKwkJCQlNZXJpbmlpdHlua2F0dSAxMQorCQkJCVNhbG8gMjQwMAorCQkJCUZJTkxBTkQKKworMDAtMTctMEQgICAoaGV4KQkJRHVzdCBOZXR3b3JrcyBJbmMuCiswMDE3MEQgICAgIChiYXNlIDE2KQkJRHVzdCBOZXR3b3JrcyBJbmMuCisJCQkJMzA2OTUgSHVudHdvb2QgQXZlLgorCQkJCUhheXdhcmQgQ2EuIDk0NTQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0wRSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3MEUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0wRiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3MEYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0xMCAgIChoZXgpCQlDYXNhIFN5c3RlbXMgSW5jLgorMDAxNzEwICAgICAoYmFzZSAxNikJCUNhc2EgU3lzdGVtcyBJbmMuCisJCQkJMTAsIE5ldyBFbmdsYW5kIEJ1c2luZXNzIENlbnRlciBEci4KKwkJCQlTdWl0ZSAxMTAKKwkJCQlBbmRvdmVyIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0xMSAgIChoZXgpCQlHRSBIZWFsdGhjYXJlIEJpby1TY2llbmNlcyBBQgorMDAxNzExICAgICAoYmFzZSAxNikJCUdFIEhlYWx0aGNhcmUgQmlvLVNjaWVuY2VzIEFCCisJCQkJQmr2cmtnYXRhbiAzMAorCQkJCVVwcHNhbGEgU0UgNzUxODQKKwkJCQlTV0VERU4KKworMDAtMTctMTIgICAoaGV4KQkJSVNDTyBJbnRlcm5hdGlvbmFsCiswMDE3MTIgICAgIChiYXNlIDE2KQkJSVNDTyBJbnRlcm5hdGlvbmFsCisJCQkJMTAwMSBDYW1icmlkZ2UgRHJpdmUKKwkJCQlFbGsgR3JvdmUgVmlsbGFnZSBJTCA2MDAwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctMTMgICAoaGV4KQkJVGlnZXIgTmV0Q29tCiswMDE3MTMgICAgIChiYXNlIDE2KQkJVGlnZXIgTmV0Q29tCisJCQkJSi0xNSBNdWRhbiBDdW4sIFlpamluZyBIdWF5dWFuLAorCQkJCUFpZ3VvIFJvYWQsIEx1b2h1IERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDMKKwkJCQlDSElOQQorCiswMC0xNy0xNCAgIChoZXgpCQlCUiBDb250cm9scyBOZWRlcmxhbmQgYnYKKzAwMTcxNCAgICAgKGJhc2UgMTYpCQlCUiBDb250cm9scyBOZWRlcmxhbmQgYnYKKwkJCQlCcmFuZGVyd2VnIDEKKwkJCQlad29sbGUgT3Zlcmlqc3NlbCA4MDQyIFBECisJCQkJTkVUSEVSTEFORFMKKworMDAtMTctMTUgICAoaGV4KQkJUXN0aWsKKzAwMTcxNSAgICAgKGJhc2UgMTYpCQlRc3RpaworCQkJCUNhcnRlbCBCdXNpbmVzcyBFc3RhdGUKKwkJCQlFZGluYnVyZ2ggV2F5CisJCQkJSGFybG93IEVzc2V4IENNMjAgMlRUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctMTYgICAoaGV4KQkJUW5vIFRlY2hub2xvZ3kgSW5jLgorMDAxNzE2ICAgICAoYmFzZSAxNikJCVFubyBUZWNobm9sb2d5IEluYy4KKwkJCQk2Ri0yLCBOby4yNSwgUHVkaW5nIFJvYWQKKwkJCQlIc2luY2h1IFRhaXdhbiAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTE3ICAgKGhleCkJCUxlaWNhIEdlb3N5c3RlbXMgQUcKKzAwMTcxNyAgICAgKGJhc2UgMTYpCQlMZWljYSBHZW9zeXN0ZW1zIEFHCisJCQkJSGVpbnJpY2ggV2lsZCBTdHJhc3NlCisJCQkJSGVlcmJydWdnIFN0LiBHYWxsZW4gQ0gtOTQzNQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE3LTE4ICAgKGhleCkJCVZhbnNjbyBFbGVjdHJvbmljcyBPeQorMDAxNzE4ICAgICAoYmFzZSAxNikJCVZhbnNjbyBFbGVjdHJvbmljcyBPeQorCQkJCVRpaWxlbmx5b2phbmthdHUgNQorCQkJCUZPUlNTQSAgMzAxMDEKKwkJCQlGSU5MQU5ECisKKzAwLTE3LTE5ICAgKGhleCkJCUF1ZGlvQ29kZXMgVVNBLCBJbmMKKzAwMTcxOSAgICAgKGJhc2UgMTYpCQlBdWRpb0NvZGVzIFVTQSwgSW5jCisJCQkJMjcgV29ybGQncyBGYWlyIERyaXZlCisJCQkJU29tZXJzZXQgTkogMDg4NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTFBICAgKGhleCkJCVdpbmVnYXJkIENvbXBhbnkKKzAwMTcxQSAgICAgKGJhc2UgMTYpCQlXaW5lZ2FyZCBDb21wYW55CisJCQkJMzAwMCBLaXJrd29vZCBTdHJlZXQKKwkJCQlCdXJsaW5ndG9uIElBIDUyNjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0xQiAgIChoZXgpCQlJbm5vdmF0aW9uIExhYiBDb3JwLgorMDAxNzFCICAgICAoYmFzZSAxNikJCUlubm92YXRpb24gTGFiIENvcnAuCisJCQkJMTJGTC4sIE5vLiAyODUsIFNlYy4gMiwgVGlEaW5nIEJsdmQuLAorCQkJCVRhaXBlaSAgMTE0OTMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTFDICAgKGhleCkJCU5UIE1pY3JvU3lzdGVtcywgSW5jLgorMDAxNzFDICAgICAoYmFzZSAxNikJCU5UIE1pY3JvU3lzdGVtcywgSW5jLgorCQkJCTEtNS0zLTJGIFRhbWFnYXdhZGFpCisJCQkJU2V0YWdheWEgVG9reW8gMTU4LTAwOTYKKwkJCQlKQVBBTgorCiswMC0xNy0xRCAgIChoZXgpCQlESUdJVAorMDAxNzFEICAgICAoYmFzZSAxNikJCURJR0lUCisJCQkJVmlhIFBhc3RldXIgLCAxLzMKKwkJCQlTLlBpZXRybyBNb3NlenpvIE5PVkFSQSAyODA2MAorCQkJCUlUQUxZCisKKzAwLTE3LTFFICAgKGhleCkJCVRoZW8gQmVubmluZyBHbWJIICYgQ28uIEtHCiswMDE3MUUgICAgIChiYXNlIDE2KQkJVGhlbyBCZW5uaW5nIEdtYkggJiBDby4gS0cKKwkJCQlNdWVuc3RlcnN0cmHfZSAxMzUtMTM3CisJCQkJQm9jaG9sdCBOUlcgNDYzOTcKKwkJCQlHRVJNQU5ZCisKKzAwLTE3LTFGICAgKGhleCkJCUlNViBDb3Jwb3JhdGlvbgorMDAxNzFGICAgICAoYmFzZSAxNikJCUlNViBDb3Jwb3JhdGlvbgorCQkJCTItNi0xMCBUYWtlamltYQorCQkJCU5pc2hpeW9kb2dhd2Eta3UKKwkJCQlPc2FrYSAgNTU1LTAwMTEKKwkJCQlKQVBBTgorCiswMC0xNy0yMCAgIChoZXgpCQlJbWFnZSBTZW5zaW5nIFN5c3RlbXMsIEluYy4KKzAwMTcyMCAgICAgKGJhc2UgMTYpCQlJbWFnZSBTZW5zaW5nIFN5c3RlbXMsIEluYy4KKwkJCQkxNjAwIFVuaXZlcnNpdHkgQXZlLiBXLgorCQkJCVN1aXRlIDUwMAorCQkJCVN0LiBQYXVsIE1OIDU1MTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0yMSAgIChoZXgpCQlGSVRSRSBTLnAuQS4KKzAwMTcyMSAgICAgKGJhc2UgMTYpCQlGSVRSRSBTLnAuQS4KKwkJCQlWaWEgVmFsc29sZGEsIDE1CisJCQkJTUlMQU4gTUlMQU5PIDIwMTQyCisJCQkJSVRBTFkKKworMDAtMTctMjIgICAoaGV4KQkJSGFuYXplZGVyIEVsZWN0cm9uaWMgR21iSAorMDAxNzIyICAgICAoYmFzZSAxNikJCUhhbmF6ZWRlciBFbGVjdHJvbmljIEdtYkgKKwkJCQlKLk0uIERpbW1lbHN0ciAxMAorCQkJCVJpZWQgaS4gSS4gT2JlcvZzdGVycmVpY2ggNDkxMAorCQkJCUFVU1RSSUEKKworMDAtMTctMjMgICAoaGV4KQkJU3VtbWl0IERhdGEgQ29tbXVuaWNhdGlvbnMKKzAwMTcyMyAgICAgKGJhc2UgMTYpCQlTdW1taXQgRGF0YSBDb21tdW5pY2F0aW9ucworCQkJCTUyNiBTb3V0aCBNYWluIFN0cmVldAorCQkJCVN1aXRlIDgwNQorCQkJCUFrcm9uIE9oaW8gNDQzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTI0ICAgKGhleCkJCVN0dWRlciBQcm9mZXNzaW9uYWwgQXVkaW8gR21iSAorMDAxNzI0ICAgICAoYmFzZSAxNikJCVN0dWRlciBQcm9mZXNzaW9uYWwgQXVkaW8gR21iSAorCQkJCUFsdGhhcmRzdHJhc3NlIDMwCisJCQkJUmVnZW5zZG9yZiBa/HJpY2ggQ0gtODEwNQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE3LTI1ICAgKGhleCkJCUxpcXVpZCBDb21wdXRpbmcKKzAwMTcyNSAgICAgKGJhc2UgMTYpCQlMaXF1aWQgQ29tcHV0aW5nCisJCQkJMzQwIFRlcnJ5IEZveCBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCU90dGF3YSBPbnRhcmlvIEsySyAzQTIKKwkJCQlDQU5BREEKKworMDAtMTctMjYgICAoaGV4KQkJbTJjIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBMdGQuCiswMDE3MjYgICAgIChiYXNlIDE2KQkJbTJjIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBMdGQuCisJCQkJMjQwMywgMjQvRiwgTmFueWFuZyBQbGF6YQorCQkJCTU3IEh1bmcgVG8gUm9hZAorCQkJCUt3dW50b25nIEhvbmcgS29uZyA5OTkgOTk5CisJCQkJQ0hJTkEKKworMDAtMTctMjcgICAoaGV4KQkJVGhlcm1vIFJhbXNleSBJdGFsaWEgcy5yLmwuCiswMDE3MjcgICAgIChiYXNlIDE2KQkJVGhlcm1vIFJhbXNleSBJdGFsaWEgcy5yLmwuCisJCQkJU3RyYWRhIFJpdm9sdGFuYSBrbSA2LzcKKwkJCQlSb2Rhbm8gTWlsYW5vIDIwMDkwCisJCQkJSVRBTFkKKworMDAtMTctMjggICAoaGV4KQkJU2VsZXggQ29tbXVuaWNhdGlvbnMKKzAwMTcyOCAgICAgKGJhc2UgMTYpCQlTZWxleCBDb21tdW5pY2F0aW9ucworCQkJCVZpYSBQaWVyYWdvc3RpbmkgODAKKwkJCQlHZW5vdmEgIDE2MTUxCisJCQkJSVRBTFkKKworMDAtMTctMjkgICAoaGV4KQkJVWJpY29kIENvLkxURAorMDAxNzI5ICAgICAoYmFzZSAxNikJCVViaWNvZCBDby5MVEQKKwkJCQk3RiBDaHVuLWdpbiBCbGRnLCA1My01IFdvbmh5by1ybworCQkJCVlvbmdzYW4tZ3UKKwkJCQlTZW91bCAgMTQwLTcxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy0yQSAgIChoZXgpCQlQcm93YXJlIFRlY2hub2xvZ3kgQ29ycC4KKzAwMTcyQSAgICAgKGJhc2UgMTYpCQlQcm93YXJlIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQk2RmwuLCBOby4gNCwgQWxsZXkgMSwgTGFuZSAyMzUsIFBhb0NoYW8gUmQuCisJCQkJSHNpbiBUaWVuIENpdHkgVGFpcGVpIEhzaWVuIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctMkIgICAoaGV4KQkJR2xvYmFsIFRlY2hub2xvZ2llcyBJbmMuCiswMDE3MkIgICAgIChiYXNlIDE2KQkJR2xvYmFsIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNC9GIEtpY294IEJsZGcuLDE4OC01LEd1cm8tRG9uZyxHdXJvLWd1LAorCQkJCVNlb3VsIDE1Mi04NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctMkMgICAoaGV4KQkJVEFFSklOIElORk9URUNICiswMDE3MkMgICAgIChiYXNlIDE2KQkJVEFFSklOIElORk9URUNICisJCQkJNkYgV29vbGltIGUtQml6IENlbnRlciwgMTcwLTUKKwkJCQlHdXJvLURvbmcsIEd1cm8tR3UsCisJCQkJU2VvdWwgIDE1Mi03NjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctMkQgICAoaGV4KQkJQXhjZW4gUGhvdG9uaWNzIENvcnBvcmF0aW9uCiswMDE3MkQgICAgIChiYXNlIDE2KQkJQXhjZW4gUGhvdG9uaWNzIENvcnBvcmF0aW9uCisJCQkJNkYsIE5vLiAxMTksIEJhdWp1bmcgUmQuLAorCQkJCVNoaW5kaWFuIENpdHksIFRhaXBlaSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy0yRSAgIChoZXgpCQlGWEMgSW5jLgorMDAxNzJFICAgICAoYmFzZSAxNikJCUZYQyBJbmMuCisJCQkJMTAtMTYgNkYsIE5paG9uYmFzaGkgVG9taXphd2EtQ2hvdSwgQ2h1by1rdQorCQkJCVRva3lvICAxMDMtMDAwNgorCQkJCUpBUEFOCisKKzAwLTE3LTJGICAgKGhleCkJCU5ldUxpb24gSW5jb3Jwb3JhdGVkCiswMDE3MkYgICAgIChiYXNlIDE2KQkJTmV1TGlvbiBJbmNvcnBvcmF0ZWQKKwkJCQkxNjAwIE9sZCBDb3VudHJ5IFJvYWQKKwkJCQlQbGFpbnZpZXcgTlkgMTE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTMwICAgKGhleCkJCUF1dG9tYXRpb24gRWxlY3Ryb25pY3MKKzAwMTczMCAgICAgKGJhc2UgMTYpCQlBdXRvbWF0aW9uIEVsZWN0cm9uaWNzCisJCQkJMTExIEJpZyBIb3JuIFJkLgorCQkJCUNhc3BlciBXeSA4MjYwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctMzEgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCiswMDE3MzEgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJTm8uNSBTaGluZyBZZWggU3RyZWV0LEt3ZWkgU2hhbiBIc2lhbmcsVGFveXVhbgorCQkJCVRhaXBlaSAgMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy0zMiAgIChoZXgpCQlTY2llbmNlLVRlY2huaWNhbCBDZW50ZXIgIlJJU1NBIgorMDAxNzMyICAgICAoYmFzZSAxNikJCVNjaWVuY2UtVGVjaG5pY2FsIENlbnRlciAiUklTU0EiCisJCQkJc3QuIEFicmFtdHNldnNrYWphLCBoLjkKKwkJCQlNb3Njb3cgIDEyODU3MgorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xNy0zMyAgIChoZXgpCQlTRlIKKzAwMTczMyAgICAgKGJhc2UgMTYpCQlTRlIKKwkJCQk0MiBRdWFpIGR1IHBvaW50IGR1IGpvdXIKKwkJCQlCb3Vsb2duZSBCaWxsYW5jb3VydCBIYXV0cyBkZSBTZWluZSA5MjY1OQorCQkJCUZSQU5DRQorCiswMC0xNy0zNCAgIChoZXgpCQlBREMgVGVsZWNvbW11bmljYXRpb25zCiswMDE3MzQgICAgIChiYXNlIDE2KQkJQURDIFRlbGVjb21tdW5pY2F0aW9ucworCQkJCTU0MSBFIFRyaW1ibGUgUm9hZCAgICAKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTM0LTEyMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTM1ICAgKGhleCkJCVBSSVZBVEUKKzAwMTczNSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMTctMzYgICAoaGV4KQkJaWlUcm9uIEluYy4KKzAwMTczNiAgICAgKGJhc2UgMTYpCQlpaVRyb24gSW5jLgorCQkJCTg4IE1lcmN5IFN0LgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTM3ICAgKGhleCkJCUluZHVzdHJpZSBEaWFsIEZhY2UgUy5wLkEuCiswMDE3MzcgICAgIChiYXNlIDE2KQkJSW5kdXN0cmllIERpYWwgRmFjZSBTLnAuQS4KKwkJCQl2aWEgQ2Fuem8sIDQKKwkJCQlQZXNjaGllcmEgQm9ycm9tZW8gTWlsYW5vIDIwMDY4CisJCQkJSVRBTFkKKworMDAtMTctMzggICAoaGV4KQkJSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworMDAxNzM4ICAgICAoYmFzZSAxNikJCUludGVybmF0aW9uYWwgQnVzaW5lc3MgTWFjaGluZXMKKwkJCQkxIEF6cmllbGkgQ2VudGVyCisJCQkJVGVsIEF2aXYgIDY3MDIxCisJCQkJSVNSQUVMCisKKzAwLTE3LTM5ICAgKGhleCkJCUJyaWdodCBIZWFkcGhvbmUgRWxlY3Ryb25pY3MgQ29tcGFueQorMDAxNzM5ICAgICAoYmFzZSAxNikJCUJyaWdodCBIZWFkcGhvbmUgRWxlY3Ryb25pY3MgQ29tcGFueQorCQkJCThGLCAxMDksIExpIERlIFN0cmVldAorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIENvdW50eSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTNBICAgKGhleCkJCVJlYWNoIFN5c3RlbXMgSW5jLgorMDAxNzNBICAgICAoYmFzZSAxNikJCVJlYWNoIFN5c3RlbXMgSW5jLgorCQkJCTEzMzAgQnJvYWR3YXkKKwkJCQlTdWl0ZSAxMjAxCisJCQkJT2FrbGFuZCBDQSA5NDYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctM0IgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAxNzNCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctM0MgICAoaGV4KQkJRXh0cmVtZSBFbmdpbmVlcmluZyBTb2x1dGlvbnMKKzAwMTczQyAgICAgKGJhc2UgMTYpCQlFeHRyZW1lIEVuZ2luZWVyaW5nIFNvbHV0aW9ucworCQkJCTMyMjUgRGVtaW5nIFdheQorCQkJCVN1aXRlIDEyMAorCQkJCU1pZGRsZXRvbiBXSSA1MzU2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctM0QgICAoaGV4KQkJTmVvbG9neQorMDAxNzNEICAgICAoYmFzZSAxNikJCU5lb2xvZ3kKKwkJCQkxMzAwMCBHcmVnZyBTdHJlZXQgU3VpdGUgQQorCQkJCVBvd2F5IENBIDkyMDY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0zRSAgIChoZXgpCQlMZXVjb3Ryb25FcXVpcGFtZW50b3MgTHRkYS4KKzAwMTczRSAgICAgKGJhc2UgMTYpCQlMZXVjb3Ryb25FcXVpcGFtZW50b3MgTHRkYS4KKwkJCQlSdWEgSm9yZ2UgRGlvbmlzaW8gQmFyYm9zYSwgMzEyCisJCQkJU2FudGEgUml0YSBkbyBTYXB1Y2FpIE1pbmFzIEdlcmFpcyAzNy41NDAtMDAwCisJCQkJQlJBWklMCisKKzAwLTE3LTNGICAgKGhleCkJCUJlbGtpbiBDb3Jwb3JhdGlvbgorMDAxNzNGICAgICAoYmFzZSAxNikJCUJlbGtpbiBDb3Jwb3JhdGlvbgorCQkJCTUwMSBXLiBXYWxudXQgU3RyZWV0CisJCQkJQ29tcHRvbiBDQSA5MDIyMC01MjIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy00MCAgIChoZXgpCQlCbHViZXJpIEdhbWluZyBUZWNobm9sb2dpZXMgSW5jCiswMDE3NDAgICAgIChiYXNlIDE2KQkJQmx1YmVyaSBHYW1pbmcgVGVjaG5vbG9naWVzIEluYworCQkJCTIxMjUsIHJ1ZSBMZXRlbmRyZSBTdWl0ZSA0MjAKKwkJCQlEcnVtbW9uZHZpbGxlIFF1ZWJlYyBKMkMgN0cxCisJCQkJQ0FOQURBCisKKzAwLTE3LTQxICAgKGhleCkJCURFRklERVYKKzAwMTc0MSAgICAgKGJhc2UgMTYpCQlERUZJREVWCisJCQkJMjcgQXZlbnVlIGRlIFZlcmR1bgorCQkJCVZhbnZlcyAgOTIxNzAKKwkJCQlGUkFOQ0UKKworMDAtMTctNDIgICAoaGV4KQkJRlVKSVRTVSBMSU1JVEVECiswMDE3NDIgICAgIChiYXNlIDE2KQkJRlVKSVRTVSBMSU1JVEVECisJCQkJTXVzYXNoaS1rb3N1Z2kgVG93ZXIgUGxhY2UgQmxkZy4sNDAzCisJCQkJS29zdWdpLWNobyAxLWNob21lLE5ha2FoYXJhLWt1CisJCQkJS2F3YXNha2kgS2FuYWdhd2EgMjExLTg1ODgKKwkJCQlKQVBBTgorCiswMC0xNy00MyAgIChoZXgpCQlEZWNrIFNybAorMDAxNzQzICAgICAoYmFzZSAxNikJCURlY2sgU3JsCisJCQkJVmlhIEZhYmlvIEZpbHppIDIKKwkJCQlNaWxhbiAgMjAxMjQKKwkJCQlJVEFMWQorCiswMC0xNy00NCAgIChoZXgpCQlBcmFuZW8gTHRkLgorMDAxNzQ0ICAgICAoYmFzZSAxNikJCUFyYW5lbyBMdGQuCisJCQkJMTAzIE1lZGluYXQgSGF5ZWh1ZGltCisJCQkJSGVyemxpeWEgIDQ2NzMzCisJCQkJSVNSQUVMCisKKzAwLTE3LTQ1ICAgKGhleCkJCUlOTk9UWiBDTy4sIEx0ZAorMDAxNzQ1ICAgICAoYmFzZSAxNikJCUlOTk9UWiBDTy4sIEx0ZAorCQkJCTE0RiwgUHJpbWUgQ2VudGVyIDU0Ni00IEd1dWktRG9uZyBLd2FuZ2dpbi1HdQorCQkJCVNlb3VsIFNlb3VsIDE0My0yMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctNDYgICAoaGV4KQkJRnJlZWRvbTkgSW5jLgorMDAxNzQ2ICAgICAoYmFzZSAxNikJCUZyZWVkb205IEluYy4KKwkJCQk0MTQwQiBTTEFERVZJRVcgQ1JFLiwKKwkJCQlVTklUIDQsCisJCQkJTUlTU0lTU0FVR0EsIE9udGFyaW8gTDVMNkExCisJCQkJQ0FOQURBCisKKzAwLTE3LTQ3ICAgKGhleCkJCVRyaW1ibGUKKzAwMTc0NyAgICAgKGJhc2UgMTYpCQlUcmltYmxlCisJCQkJMzQ1IFNXIEF2ZXJ5IEF2ZQorCQkJCUNvcnZhbGxpcyBPUiA5NzMzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctNDggICAoaGV4KQkJTmVva29yb3MgQnJhc2lsIEx0ZGEKKzAwMTc0OCAgICAgKGJhc2UgMTYpCQlOZW9rb3JvcyBCcmFzaWwgTHRkYQorCQkJCVJ1YSA4NiwgbnVtZXJvIDUwMSwgU2V0b3IgU3VsCisJCQkJR29pYW5pYSBHb2lhcyA3NDA4My0zMzAKKwkJCQlCUkFaSUwKKworMDAtMTctNDkgICAoaGV4KQkJSFlVTkRBRSBZT05HLU8tU0EgQ08uLExURAorMDAxNzQ5ICAgICAoYmFzZSAxNikJCUhZVU5EQUUgWU9ORy1PLVNBIENPLixMVEQKKwkJCQk0NDgtMTAsIEh5dWNramFlIEIvRCBTZW9uZ25hZSwgS2FuZ2RvbmctZ3UKKwkJCQlTZW91bCAgMTM0LTg0NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy00QSAgIChoZXgpCQlTT0NPTUVDCiswMDE3NEEgICAgIChiYXNlIDE2KQkJU09DT01FQworCQkJCXJ1ZSBkZSBXZXN0aG91c2UKKwkJCQlCRU5GRUxEIENFREVYICA2NzIzNQorCQkJCUZSQU5DRQorCiswMC0xNy00QiAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxNzRCICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xNy00QyAgIChoZXgpCQlNaWxsaXBvcmUKKzAwMTc0QyAgICAgKGJhc2UgMTYpCQlNaWxsaXBvcmUKKwkJCQkxLCBydWUgSmFjcXVlcyBNb25vZAorCQkJCVJvbmQtcG9pbnQgZGVzIFNhbmdsaWVycworCQkJCUd1eWFuY291cnQgIDc4MjgwCisJCQkJRlJBTkNFCisKKzAwLTE3LTREICAgKGhleCkJCURZTkFNSUMgTkVUV09SSyBGQUNUT1JZLCBJTkMuCiswMDE3NEQgICAgIChiYXNlIDE2KQkJRFlOQU1JQyBORVRXT1JLIEZBQ1RPUlksIElOQy4KKwkJCQkyNjI1MCBFREVOIExBTkRJTkcgUkQuCisJCQkJSEFZV0FSRCBDQSA5NDU0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctNEUgICAoaGV4KQkJUGFyYW1hLXRlY2ggQ28uLEx0ZC4KKzAwMTc0RSAgICAgKGJhc2UgMTYpCQlQYXJhbWEtdGVjaCBDby4sTHRkLgorCQkJCTItMTktOCwgU2hhcnlvLCBIaWdhc2hpLWt1CisJCQkJRnVrdW9rYSAgODEyLTAwNjgKKwkJCQlKQVBBTgorCiswMC0xNy00RiAgIChoZXgpCQlpQ2F0Y2ggSW5jLgorMDAxNzRGICAgICAoYmFzZSAxNikJCWlDYXRjaCBJbmMuCisJCQkJMTBGLTIsIE5vLiAxMDksIFNlYy4gNiwgTWluY3l1YW4gRS4gUmQuLAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTUwICAgKGhleCkJCUdTSSBHcm91cCwgTWljcm9FIFN5c3RlbXMKKzAwMTc1MCAgICAgKGJhc2UgMTYpCQlHU0kgR3JvdXAsIE1pY3JvRSBTeXN0ZW1zCisJCQkJOCBFcmllIERyaXZlCisJCQkJTmF0aWNrIE1BIDAxNzYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy01MSAgIChoZXgpCQlPbmxpbmUgQ29ycG9yYXRpb24KKzAwMTc1MSAgICAgKGJhc2UgMTYpCQlPbmxpbmUgQ29ycG9yYXRpb24KKwkJCQkyMkYtMywgTm8uIDM5OCwgSHVhbiBQZWkgUm9hZCwKKwkJCQlDaHVuZyBMaSBUYW95dWFuIDMyMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctNTIgICAoaGV4KQkJREFHUywgSW5jCiswMDE3NTIgICAgIChiYXNlIDE2KQkJREFHUywgSW5jCisJCQkJQy01MTAsIFdvb2xpbSBMaW9uJ3MgVmFsbGV5LCAzNzEtMjgsIEdhc2FuIERvbmcsIEdldW1jaGVvbiBLdQorCQkJCVNlb3VsICAxNTMtNzg2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTUzICAgKGhleCkJCW5Gb3JlIFRlY2hub2xvZ3kgSW5jLgorMDAxNzUzICAgICAoYmFzZSAxNikJCW5Gb3JlIFRlY2hub2xvZ3kgSW5jLgorCQkJCTEwRiwgNDEgRG9uZyBYaW5nIFJkLAorCQkJCVRhaXBlaSBUYWlwZWkgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy01NCAgIChoZXgpCQlBcmtpbm8gSGlUT1AgQ29ycG9yYXRpb24gTGltaXRlZAorMDAxNzU0ICAgICAoYmFzZSAxNikJCUFya2lubyBIaVRPUCBDb3Jwb3JhdGlvbiBMaW1pdGVkCisJCQkJM0YuLCBOby44LCBTaW5naHVhIFJkLgorCQkJCUt3ZWkgU2hhbiBJbmQuIFBhcmsKKwkJCQlUYW95dWFuIENpdHkgVGFveXVhbiBDb3VudHkgIDMzMDY4LAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctNTUgICAoaGV4KQkJR0UgU2VjdXJpdHkKKzAwMTc1NSAgICAgKGJhc2UgMTYpCQlHRSBTZWN1cml0eQorCQkJCTEyMzQ1IFNXIExldmV0b24gRHJpdmUKKwkJCQlUdWFsYXRpbiBPUiA5NzA2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctNTYgICAoaGV4KQkJVmluY2kgTGFicyBPeQorMDAxNzU2ICAgICAoYmFzZSAxNikJCVZpbmNpIExhYnMgT3kKKwkJCQlGaW5sYXlzb25pbmt1amEgMjEgQQorCQkJCVRhbXBlcmUgTORuc2ktU3VvbWkgMzMyMTAKKwkJCQlGSU5MQU5ECisKKzAwLTE3LTU3ICAgKGhleCkJCVJJWCBURUNITk9MT0dZIExJTUlURUQKKzAwMTc1NyAgICAgKGJhc2UgMTYpCQlSSVggVEVDSE5PTE9HWSBMSU1JVEVECisJCQkJMTcgREFJIFdBTkcgU1RSRUVUCisJCQkJVEFJIFBPIElORFVTVFJJQUwgRVNUQVRFCisJCQkJVEFJIFBPIE5FVyBURVJSSVRPUklFUyAKKwkJCQlIT05HIEtPTkcKKworMDAtMTctNTggICAoaGV4KQkJVGhydVZpc2lvbiBMdGQKKzAwMTc1OCAgICAgKGJhc2UgMTYpCQlUaHJ1VmlzaW9uIEx0ZAorCQkJCUNlbnRyYWwgMTI3LCBOby4xOAorCQkJCU1pbHRvbiBQYXJrCisJCQkJQWJpbmdkb24gT3hmb3Jkc2hpcmUgT1gxNCA0U0EKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNy01OSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3NTkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy01QSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3NUEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy01QiAgIChoZXgpCQlBQ1MgU29sdXRpb25zIFN3aXR6ZXJsYW5kIEx0ZC4KKzAwMTc1QiAgICAgKGJhc2UgMTYpCQlBQ1MgU29sdXRpb25zIFN3aXR6ZXJsYW5kIEx0ZC4KKwkJCQlGcmFua2Vuc3RyYXNzZSA3MAorCQkJCUJlcm4tIEJ1ZW1wbGl6ICAzMDE4CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTctNUMgICAoaGV4KQkJU0hBUlAgQ09SUE9SQVRJT04KKzAwMTc1QyAgICAgKGJhc2UgMTYpCQlTSEFSUCBDT1JQT1JBVElPTgorCQkJCTIyLTIyLCBOQUdBSUtFLUNITywKKwkJCQlBQkVOTy1LVQorCQkJCU9TQUtBICA1NDUtODUyMgorCQkJCUpBUEFOCisKKzAwLTE3LTVEICAgKGhleCkJCURvbmdzZW8gc3lzdGVtLgorMDAxNzVEICAgICAoYmFzZSAxNikJCURvbmdzZW8gc3lzdGVtLgorCQkJCTk3NC0yMSBNYW5zdS1kb25nIE5hbWRvbmctZ3UKKwkJCQlJbmNoZW9uIEluLUNoZW9uIDQwNS04NjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctNUUgICAoaGV4KQkJWmVkLTMKKzAwMTc1RSAgICAgKGJhc2UgMTYpCQlaZWQtMworCQkJCTUwMSBWYWxsZXkgV2F5CisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTVGICAgKGhleCkJCVhFTk9MSU5LIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorMDAxNzVGICAgICAoYmFzZSAxNikJCVhFTk9MSU5LIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorCQkJCTJuZCBGbC4sIEp1bmd5b3UgQi9EIDc5Ny0yMgorCQkJCVllb2tzYW0tZG9uZyBHYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS05MzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctNjAgICAoaGV4KQkJTmFpdG8gRGVuc2VpIE1hY2hpZGEgTUZHLkNPLixMVEQKKzAwMTc2MCAgICAgKGJhc2UgMTYpCQlOYWl0byBEZW5zZWkgTWFjaGlkYSBNRkcuQ08uLExURAorCQkJCTItMTctMjggRnVjaGlub2JlCisJCQkJU2FnYW1paGFyYSBLYW5hZ2F3YSAyMjktMDAwNgorCQkJCUpBUEFOCisKKzAwLTE3LTYxICAgKGhleCkJCVpLU29mdHdhcmUgSW5jLgorMDAxNzYxICAgICAoYmFzZSAxNikJCVpLU29mdHdhcmUgSW5jLgorCQkJCVhpbndlaXphaSwgQmFudGlhbiwgTG9uZ2dhbmcgZGlzdHJpY3QsU2hlbnpoZW4gQ2hpbmEgNTE4MTI5CisJCQkJQ0hJTkEKKworMDAtMTctNjIgICAoaGV4KQkJU29sYXIgVGVjaG5vbG9neSwgSW5jLgorMDAxNzYyICAgICAoYmFzZSAxNikJCVNvbGFyIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk3NjIwIENldHJvbmlhIFJvYWQKKwkJCQlBbGxlbnRvd24gUEEgMTgxMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTYzICAgKGhleCkJCUVzc2VudGlhIFMucC5BLgorMDAxNzYzICAgICAoYmFzZSAxNikJCUVzc2VudGlhIFMucC5BLgorCQkJCVZpYSBHLkIuIFZpY28sIDI5CisJCQkJQ2VsbGEgKFJFKSBSZWdnaW8gRW1pbGlhIDQyMDQwCisJCQkJSVRBTFkKKworMDAtMTctNjQgICAoaGV4KQkJQVRNZWRpYSBHbWJICiswMDE3NjQgICAgIChiYXNlIDE2KQkJQVRNZWRpYSBHbWJICisJCQkJU3R1aGxzYXR6ZW5oYXVzd2VnIDY5CisJCQkJU2FhcmJydWVja2VuIFNhYXJsYW5kIDY2MTIzCisJCQkJR0VSTUFOWQorCiswMC0xNy02NSAgIChoZXgpCQlOb3J0ZWwKKzAwMTc2NSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTctNjYgICAoaGV4KQkJQWNjZW5zZSBUZWNobm9sb2d5LCBJbmMuCiswMDE3NjYgICAgIChiYXNlIDE2KQkJQWNjZW5zZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMzUgVGFuc3VtYWNoaQorCQkJCVNoaW5qeXVrdS1rdSBUb2t5byAxNjIwODMzCisJCQkJSkFQQU4KKworMDAtMTctNjcgICAoaGV4KQkJRWFyZm9yY2UgQVMKKzAwMTc2NyAgICAgKGJhc2UgMTYpCQlFYXJmb3JjZSBBUworCQkJCVAuTy5Cb3ggNAorCQkJCUJyeW5lICA0MzQ5CisJCQkJTk9SV0FZCisKKzAwLTE3LTY4ICAgKGhleCkJCVppbndhdmUgTHRkCiswMDE3NjggICAgIChiYXNlIDE2KQkJWmlud2F2ZSBMdGQKKwkJCQlaaW53YXZlIEx0ZCwgSGFyc3RvbiBNaWxsCisJCQkJSGFyc3RvbgorCQkJCUNhbWJyaWRnZSBDYW1icmlkZ2VzaGlyZSBDQjIgNUdHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctNjkgICAoaGV4KQkJQ3ltcGhvbml4IENvcnAKKzAwMTc2OSAgICAgKGJhc2UgMTYpCQlDeW1waG9uaXggQ29ycAorCQkJCTg4NzEgUy4gU2FuZHkgUGFya3dheSwgU3VpdGUgMTUwCisJCQkJU2FuZHkgVVQgODQwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTZBICAgKGhleCkJCUF2YWdvIFRlY2hub2xvZ2llcworMDAxNzZBICAgICAoYmFzZSAxNikJCUF2YWdvIFRlY2hub2xvZ2llcworCQkJCTM1MCBXZXN0IFRyaW1ibGUgUmQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctNkIgICAoaGV4KQkJS2l5b24sIEluYy4KKzAwMTc2QiAgICAgKGJhc2UgMTYpCQlLaXlvbiwgSW5jLgorCQkJCTkzODEgSnVkaWNpYWwgRHJpdmUKKwkJCQlTdWl0ZSAxNjAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTZDICAgKGhleCkJCVBpdm90MywgSW5jLgorMDAxNzZDICAgICAoYmFzZSAxNikJCVBpdm90MywgSW5jLgorCQkJCTY2MDUgQ3lwcmVzc3dvb2QgRHJpdmUsIFN0ZSAzNTAKKwkJCQlTcHJpbmcgVFggNzczNzktNzc0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctNkQgICAoaGV4KQkJQ09SRSBDT1JQT1JBVElPTgorMDAxNzZEICAgICAoYmFzZSAxNikJCUNPUkUgQ09SUE9SQVRJT04KKwkJCQkxLTIyLTMsIFNhbmdlbmpheWEsCisJCQkJU2V0YWdheWEta3UgVG9reW8tdG8gMTU0LTg1NTIKKwkJCQlKQVBBTgorCiswMC0xNy02RSAgIChoZXgpCQlEVUNBVEkgU0lTVEVNSQorMDAxNzZFICAgICAoYmFzZSAxNikJCURVQ0FUSSBTSVNURU1JCisJCQkJVklBIE1BUkNPIEVNSUxJTyBMRVBJRE8sIDE4MgorCQkJCUJPTE9HTkEgIDQwMTMyCisJCQkJSVRBTFkKKworMDAtMTctNkYgICAoaGV4KQkJUEFYIENvbXB1dGVyIFRlY2hub2xvZ3koU2hlbnpoZW4pIEx0ZC4KKzAwMTc2RiAgICAgKGJhc2UgMTYpCQlQQVggQ29tcHV0ZXIgVGVjaG5vbG9neShTaGVuemhlbikgTHRkLgorCQkJCTQvRiwgTm8uMyBCdWlsZGluZywgU29mdHdhcmUgUGFyaywgU2Vjb25kIENlbnRyYWwgU2NpZW5jZS1UZWNoIFJvYWQsIEhpZ2gtVGVjaAorCQkJCWluZHVzdHJpYWwgUGFyaworCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xNy03MCAgIChoZXgpCQlBcnRpIEluZHVzdHJpYWwgRWxlY3Ryb25pY3MgTHRkLgorMDAxNzcwICAgICAoYmFzZSAxNikJCUFydGkgSW5kdXN0cmlhbCBFbGVjdHJvbmljcyBMdGQuCisJCQkJR2VyLVNhbiBTaXRlc2ksIDY1Ny4gU29rYWsKKwkJCQlObzogODAsIEVyZ2F6aQorCQkJCUFua2FyYSBUUiAwNjM3MAorCQkJCVRVUktFWQorCiswMC0xNy03MSAgIChoZXgpCQlBUEQgQ29tbXVuaWNhdGlvbnMgTHRkCiswMDE3NzEgICAgIChiYXNlIDE2KQkJQVBEIENvbW11bmljYXRpb25zIEx0ZAorCQkJCU5ld2xhbmRzIENlbnRyZQorCQkJCUluZ2xlbWlyZSBMYW5lCisJCQkJSFVMTCBFYXN0IFlvcmtzaGlyZSBIVTYgN1RRCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctNzIgICAoaGV4KQkJQVNUUk8gU3Ryb2JlbCBLb21tdW5pa2F0aW9uc3N5c3RlbWUgR21iSAorMDAxNzcyICAgICAoYmFzZSAxNikJCUFTVFJPIFN0cm9iZWwgS29tbXVuaWthdGlvbnNzeXN0ZW1lIEdtYkgKKwkJCQlPbGVmYW50IDEtMworCQkJCUJlcmdpc2NoIEdsYWRiYWNoIE5SVyA1MTQyNworCQkJCUdFUk1BTlkKKworMDAtMTctNzMgICAoaGV4KQkJTGFrZXR1bmUgVGVjaG5vbG9naWVzIENvLiBMdGQKKzAwMTc3MyAgICAgKGJhc2UgMTYpCQlMYWtldHVuZSBUZWNobm9sb2dpZXMgQ28uIEx0ZAorCQkJCU5vLiAzOCBaaWppbmdodWEgUmQuIFdlc3RsYWtlIERpc3RyaWN0CisJCQkJR3VkYW5nIEluZHVzdHJpYWwgWm9uZSBCdWlsZGluZyAxMSwgNUYKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwMTMKKwkJCQlDSElOQQorCiswMC0xNy03NCAgIChoZXgpCQlFbGVzdGEgR21iSAorMDAxNzc0ICAgICAoYmFzZSAxNikJCUVsZXN0YSBHbWJICisJCQkJR290dGxpZWIgRGFpbWxlciBTdHJhc3NlIDEKKwkJCQlLb25zdGFueiAgNzg0NjcKKwkJCQlHRVJNQU5ZCisKKzAwLTE3LTc1ICAgKGhleCkJCVRURSBHZXJtYW55IEdtYkgKKzAwMTc3NSAgICAgKGJhc2UgMTYpCQlUVEUgR2VybWFueSBHbWJICisJCQkJSGVybWFubi1TY2h3ZXItU3RyLiAzCisJCQkJVmlsbGluZ2VuLVNjaHdlbm5pbmdlbiBCYWRlbi1X/HJ0dGVtYmVyZyA3ODA0OAorCQkJCUdFUk1BTlkKKworMDAtMTctNzYgICAoaGV4KQkJTWVzbyBTY2FsZSBEaWFnbm9zdGljcywgTExDCiswMDE3NzYgICAgIChiYXNlIDE2KQkJTWVzbyBTY2FsZSBEaWFnbm9zdGljcywgTExDCisJCQkJOTIzOCBHYWl0aGVyIFJkLgorCQkJCUdhaXRoZXJzYnVyZyBNRCAyMDg3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctNzcgICAoaGV4KQkJT2JzaWRpYW4gUmVzZWFyY2ggQ29ycG9yYXRpb24KKzAwMTc3NyAgICAgKGJhc2UgMTYpCQlPYnNpZGlhbiBSZXNlYXJjaCBDb3Jwb3JhdGlvbgorCQkJCUVkbW9udG9uIFJlc2VhcmNoIFBhcmsKKwkJCQlTdWl0ZSAxMDYgICA5NjUwLTIwIEF2ZQorCQkJCUVkbW9udG9uIEFsYmVydGEgVDZOMUcxCisJCQkJQ0FOQURBCisKKzAwLTE3LTc4ICAgKGhleCkJCUNlbnRyYWwgTXVzaWMgQ28uCiswMDE3NzggICAgIChiYXNlIDE2KQkJQ2VudHJhbCBNdXNpYyBDby4KKwkJCQkwNzExLTA3MTIgVG93ZXIgRCwgU09ITyBOZXcgVG93bgorCQkJCU5vLiA4OCBKaWFuZ3VvIFJvYWQsIENoYW95YW5nIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDIyCisJCQkJQ0hJTkEKKworMDAtMTctNzkgICAoaGV4KQkJUXVpY2tUZWwKKzAwMTc3OSAgICAgKGJhc2UgMTYpCQlRdWlja1RlbAorCQkJCUNvcm5pc2hlIEVsLU5pbGUsIE1hYXNhcmEKKwkJCQlDYWlybyAgMTE3NDMKKwkJCQlFR1lQVAorCiswMC0xNy03QSAgIChoZXgpCQlBU1NBIEFCTE9ZIEFCCiswMDE3N0EgICAgIChiYXNlIDE2KQkJQVNTQSBBQkxPWSBBQgorCQkJCVRoZXJlcyBTdmVuc3NvbnMgZ2F0YSAxNQorCQkJCTQxNzU1IEdvdGVib3JnCisJCQkJR290ZWJvcmcgIDQxNzU1CisJCQkJU1dFREVOCisKKzAwLTE3LTdCICAgKGhleCkJCUF6YWxlYSBOZXR3b3JrcyBpbmMKKzAwMTc3QiAgICAgKGJhc2UgMTYpCQlBemFsZWEgTmV0d29ya3MgaW5jCisJCQkJNjczIFMgTWlscGl0YXMgQmx2ZAorCQkJCVN1aXRlIDEwNQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy03QyAgIChoZXgpCQlTbWFydGxpbmsgTmV0d29yayBTeXN0ZW1zIExpbWl0ZWQKKzAwMTc3QyAgICAgKGJhc2UgMTYpCQlTbWFydGxpbmsgTmV0d29yayBTeXN0ZW1zIExpbWl0ZWQKKwkJCQlMLTcsIFZlcm5hIEVsZWN0cm9uaWMgY2l0eQorCQkJCVZlcm5hCisJCQkJTmFnb2EgR29hIDQwMyA3MjIKKwkJCQlJTkRJQQorCiswMC0xNy03RCAgIChoZXgpCQlJRFQgSW50ZXJuYXRpb25hbCBMaW1pdGVkCiswMDE3N0QgICAgIChiYXNlIDE2KQkJSURUIEludGVybmF0aW9uYWwgTGltaXRlZAorCQkJCUJsb2NrIEMsIDkvRiwgS2Fpc2VyIEVzdGF0ZSwgUGhhc2UgSQorCQkJCTQxIE1hbiBZdWUgU3RyZWV0LCBIdW5naG9tLCBLb3dsb29uCisJCQkJSE9ORyBLT05HCisKKzAwLTE3LTdFICAgKGhleCkJCU1lc2hjb20gVGVjaG5vbG9naWVzIEluYy4KKzAwMTc3RSAgICAgKGJhc2UgMTYpCQlNZXNoY29tIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJTWVyaXR1bGxpbmthdHUgMSBDCisJCQkJSGVsc2lua2kgIDAwMTcwCisJCQkJRklOTEFORAorCiswMC0xNy03RiAgIChoZXgpCQlXb3JsZHNtYXJ0IFJldGVjaAorMDAxNzdGICAgICAoYmFzZSAxNikJCVdvcmxkc21hcnQgUmV0ZWNoCisJCQkJMjMgSGktVGVjaCBDb3VydAorCQkJCUVpZ2h0IE1pbGUgUGxhaW5zIFFMRCA0MTEzCisJCQkJQVVTVFJBTElBCisKKzAwLTE3LTgwICAgKGhleCkJCUFwcGxpZWQgQmlvc3lzdGVtcyBCLlYuCiswMDE3ODAgICAgIChiYXNlIDE2KQkJQXBwbGllZCBCaW9zeXN0ZW1zIEIuVi4KKwkJCQlCbGsgMzMsIE1hcnNpbGluZyBJbmR1c3RyaWFsIEVzdGF0ZSBSb2FkIDMsCisJCQkJIzA1LTAzCisJCQkJNzM5MjU2CisJCQkJU0lOR0FQT1JFCisKKzAwLTE3LTgxICAgKGhleCkJCUdyZXlzdG9uZSBEYXRhIFN5c3RlbSwgSW5jLgorMDAxNzgxICAgICAoYmFzZSAxNikJCUdyZXlzdG9uZSBEYXRhIFN5c3RlbSwgSW5jLgorCQkJCTQwODAwIEVuY3ljb3BlZGlhIENpcmNsZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTgyICAgKGhleCkJCUxvQmVubiBJbmMuCiswMDE3ODIgICAgIChiYXNlIDE2KQkJTG9CZW5uIEluYy4KKwkJCQkxNTAgS2F0aW1hdmlrIFJvYWQKKwkJCQlTdWl0ZSAyMDIKKwkJCQlPdHRhd2EgT250YXJpbyBLMkwgMk4yCisJCQkJQ0FOQURBCisKKzAwLTE3LTgzICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDE3ODMgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTg0ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE3ODQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gSHd5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy04NSAgIChoZXgpCQlTcGFyciBFbGVjdHJvbmljcyBMdGQKKzAwMTc4NSAgICAgKGJhc2UgMTYpCQlTcGFyciBFbGVjdHJvbmljcyBMdGQKKwkJCQlTcGFyciBFbGVjdHJvbmljcyBMdGQKKwkJCQk0MyBITVQgTWFpbiBSb2FkIE1hdGhpa2VyZQorCQkJCUJhbmdhbG9yZSBLYXJuYXRha2EgNTYwMDU0CisJCQkJSU5ESUEKKworMDAtMTctODYgICAoaGV4KQkJd2lzZW1iZWQKKzAwMTc4NiAgICAgKGJhc2UgMTYpCQl3aXNlbWJlZAorCQkJCTgwOCwgaGFuc2luIElUIHRvd2VyLCAyMzUgZ3VybzMtZG9uZywgZ3Vyby1ndQorCQkJCVNlb3VsICAxNTItNzY4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTg3ICAgKGhleCkJCUJyb3RoZXIsIEJyb3RoZXIgJiBTb25zIEFwUworMDAxNzg3ICAgICAoYmFzZSAxNikJCUJyb3RoZXIsIEJyb3RoZXIgJiBTb25zIEFwUworCQkJCVZlZCBBbWFnZXJiYW5lbiA5CisJCQkJQ29wZW5oYWdlbiBTICBESy0yMzAwCisJCQkJREVOTUFSSworCiswMC0xNy04OCAgIChoZXgpCQlQaGlsaXBzIExpZ2h0aW5nIEJWCiswMDE3ODggICAgIChiYXNlIDE2KQkJUGhpbGlwcyBMaWdodGluZyBCVgorCQkJCU1hdGhpbGRlbGFhbiAxCisJCQkJRWluZGhvdmVuIE5vb3JkIEJyYWJhbnQgNTYxMSBCRAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE3LTg5ICAgKGhleCkJCVplbml0cm9uIENvcnBvcmF0aW9uCiswMDE3ODkgICAgIChiYXNlIDE2KQkJWmVuaXRyb24gQ29ycG9yYXRpb24KKwkJCQlOby4gOCwgTGFuZSAyNTAsIFNpbmh1IDJuZCBSZC4sIE5laWh1IERpc3RyaWN0LAorCQkJCVRhaXBlaSAgMTE0OTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LThBICAgKGhleCkJCURBUlRTIFRFQ0hOT0xPR0lFUyBDT1JQLgorMDAxNzhBICAgICAoYmFzZSAxNikJCURBUlRTIFRFQ0hOT0xPR0lFUyBDT1JQLgorCQkJCTJGLE5vLjExOSxDaGllbiBLYW5nIFJkLiwKKwkJCQlDaHVuZy1IbyBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy04QiAgIChoZXgpCQlUZWxlZHluZSBUZWNobm9sb2dpZXMgSW5jb3Jwb3JhdGVkCiswMDE3OEIgICAgIChiYXNlIDE2KQkJVGVsZWR5bmUgVGVjaG5vbG9naWVzIEluY29ycG9yYXRlZAorCQkJCTEyMzMzIFdlc3QgT2x5bXBpYyBCbHZkCisJCQkJTG9zIEFuZ2VsZXMgQ0EgOTAwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LThDICAgKGhleCkJCUluZGVwZW5kZW50IFdpdG5lc3MsIEluYworMDAxNzhDICAgICAoYmFzZSAxNikJCUluZGVwZW5kZW50IFdpdG5lc3MsIEluYworCQkJCTE1MTUgV2VzdCAyMjAwIFNvdXRoCisJCQkJU3VpdGUgRQorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy04RCAgIChoZXgpCQlDaGVja3BvaW50IFN5c3RlbXMsIEluYy4KKzAwMTc4RCAgICAgKGJhc2UgMTYpCQlDaGVja3BvaW50IFN5c3RlbXMsIEluYy4KKwkJCQkxMDEgV29sZiBEcml2ZQorCQkJCVRob3JvZmFyZSBOSiAwODA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctOEUgICAoaGV4KQkJR3VubmVibyBDYXNoIEF1dG9tYXRpb24gQUIKKzAwMTc4RSAgICAgKGJhc2UgMTYpCQlHdW5uZWJvIENhc2ggQXV0b21hdGlvbiBBQgorCQkJCUZhYnJpa3NnYXRhbiAxMAorCQkJCUf2dGVib3JnICA0MDIgMjcKKwkJCQlTV0VERU4KKworMDAtMTctOEYgICAoaGV4KQkJTklOR0JPIFlJRE9ORyBFTEVDVFJPTklDIENPLixMVEQuCiswMDE3OEYgICAgIChiYXNlIDE2KQkJTklOR0JPIFlJRE9ORyBFTEVDVFJPTklDIENPLixMVEQuCisJCQkJTm8uNjUgU2ltaW5nIEVhc3QgUmQKKwkJCQlZdXlhbyBDaXR5LCBaaGVqaWFuZyBQcm92aW5jZSBaaGVqaWFuZyBQcm92aW5jZSBDaGluYSBQLkMgMzE1NDAwCisJCQkJQ0hJTkEKKworMDAtMTctOTAgICAoaGV4KQkJSFlVTkRBSSBESUdJVEVDSCBDbywgTHRkLgorMDAxNzkwICAgICAoYmFzZSAxNikJCUhZVU5EQUkgRElHSVRFQ0ggQ28sIEx0ZC4KKwkJCQkxM3RoIEZsLCBDaG91bmctSmluIEJsZGcsIDUzLTUKKwkJCQlXb25oeW8tcm8gM0dhLCBZb25nc2FuLUd1CisJCQkJU2VvdWwgIDE0MC03MTkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctOTEgICAoaGV4KQkJTGluVGVjaCBHbWJICiswMDE3OTEgICAgIChiYXNlIDE2KQkJTGluVGVjaCBHbWJICisJCQkJRnJpZWRyaWNoLUVuZ2Vscy1TdHIuIDM1CisJCQkJQmVybGluICAxMzE1NgorCQkJCUdFUk1BTlkKKworMDAtMTctOTIgICAoaGV4KQkJRmFsY29tIFdpcmVsZXNzIENvbXVuaWNhdGlvbnMgR21iaAorMDAxNzkyICAgICAoYmFzZSAxNikJCUZhbGNvbSBXaXJlbGVzcyBDb211bmljYXRpb25zIEdtYmgKKwkJCQlHZXdlcmJlcmluZyA2CisJCQkJTGFuZ2V3aWVzZW4gVGh1cmluZ2lhIDk4NzA0CisJCQkJR0VSTUFOWQorCiswMC0xNy05MyAgIChoZXgpCQlUaWdpIENvcnBvcmF0aW9uCiswMDE3OTMgICAgIChiYXNlIDE2KQkJVGlnaSBDb3Jwb3JhdGlvbgorCQkJCTIwNzAgQ2hhaW4gQnJpZGdlIHJvYWQKKwkJCQlTdWl0ZSBHLTEwMAorCQkJCVZpZW5uYSBWYSAyMjE4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctOTQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNzk0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctOTUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNzk1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctOTYgICAoaGV4KQkJUml0dG1leWVyIEFHCiswMDE3OTYgICAgIChiYXNlIDE2KQkJUml0dG1leWVyIEFHCisJCQkJSW53aWxlcnJpZWRzdHJhc3NlIDU3CisJCQkJUG9zdGZhY2ggNDY0CisJCQkJQmFhciBaRyBDSC02MzQxCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTctOTcgICAoaGV4KQkJVGVsc3kgRWxldHRyb25pY2EgUy5wLkEuCiswMDE3OTcgICAgIChiYXNlIDE2KQkJVGVsc3kgRWxldHRyb25pY2EgUy5wLkEuCisJCQkJQ29yc28gU3ZpenplcmEgMTg1CisJCQkJVG9yaW5vICAxMDE0OQorCQkJCUlUQUxZCisKKzAwLTE3LTk4ICAgKGhleCkJCUF6b25pYyBUZWNobm9sb2d5IENvLiwgTFRECiswMDE3OTggICAgIChiYXNlIDE2KQkJQXpvbmljIFRlY2hub2xvZ3kgQ28uLCBMVEQKKwkJCQkxNUYtMywgTm8uIDE2MywgU2VjLiwgMSBLZWVsdW5nIFJkLgorCQkJCVRhaXBlaSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy05OSAgIChoZXgpCQlTbWFyVGlyZSBTeXN0ZW1zIEluYy4KKzAwMTc5OSAgICAgKGJhc2UgMTYpCQlTbWFyVGlyZSBTeXN0ZW1zIEluYy4KKwkJCQlTdWl0ZSAxNTAKKwkJCQkxMzE1MSBWYW5pZXIgUGxhY2UKKwkJCQlSaWNobW9uZCBCQyBWNlYgMkoxCisJCQkJQ0FOQURBCisKKzAwLTE3LTlBICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxNzlBICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5vLiAyODksIFNpbmh1IDNyZCBSZC4sIE5laWh1IERpc3RyaWN0LAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy05QiAgIChoZXgpCQlDaGFudCBTaW5jZXJlIENPLiwgTFRELgorMDAxNzlCICAgICAoYmFzZSAxNikJCUNoYW50IFNpbmNlcmUgQ08uLCBMVEQuCisJCQkJN0YtMixOTy4xODgsU2VjIDMsVGEgVHVuZyBSb29kLAorCQkJCUhzaSBDaGloIENpdHkgVGFpcGVpIEhzaWVuIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctOUMgICAoaGV4KQkJREVQUkFHIFNDSFVMWiBHTUJIIHUuIENPLgorMDAxNzlDICAgICAoYmFzZSAxNikJCURFUFJBRyBTQ0hVTFogR01CSCB1LiBDTy4KKwkJCQlLdXJm/HJzdGVucmluZyAxMi4xOAorCQkJCUFtYmVyZyBCYXllcm4gOTIyMjQKKwkJCQlHRVJNQU5ZCisKKzAwLTE3LTlEICAgKGhleCkJCUtlbG1hbiBMaW1pdGVkCiswMDE3OUQgICAgIChiYXNlIDE2KQkJS2VsbWFuIExpbWl0ZWQKKwkJCQlSYXRoZG93biBDbG9zZQorCQkJCUxpc3N1ZSBFYXN0IEluZHVzdHJpYWwgRXN0YXRlCisJCQkJTGlzYnVybiBDby4gQW50cmltIEJUMjggMlJCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctOUUgICAoaGV4KQkJU2lyaXQgSW5jCiswMDE3OUUgICAgIChiYXNlIDE2KQkJU2lyaXQgSW5jCisJCQkJMjUyNSBNZXJpZGlhbiBQYXJrd2F5CisJCQkJU3VpdGUgNjAKKwkJCQlEdXJoYW0gTkMgMjc3MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTlGICAgKGhleCkJCUFwcmljb3JuCiswMDE3OUYgICAgIChiYXNlIDE2KQkJQXByaWNvcm4KKwkJCQkxMjE5MSBLaXJraGFtIFJECisJCQkJUG93YXkgQ2FsaWZvcm5pYSA5MjA2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctQTAgICAoaGV4KQkJUm9ib1RlY2ggc3JsCiswMDE3QTAgICAgIChiYXNlIDE2KQkJUm9ib1RlY2ggc3JsCisJCQkJVmlhIE1henppbmkgODIKKwkJCQlTYXJ6YW5hIChTUCkgIEktMTkwMzgKKwkJCQlJVEFMWQorCiswMC0xNy1BMSAgIChoZXgpCQkzc29mdCBpbmMuCiswMDE3QTEgICAgIChiYXNlIDE2KQkJM3NvZnQgaW5jLgorCQkJCXNoaW55b3VuZyBibGRnIDRmLCBjaHVuZ2RhbS1kb25nLCBnYW5nbmFtLWd1CisJCQkJc2VvdWwgIDEzNS0xMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctQTIgICAoaGV4KQkJQ2Ftcml2b3ggTHRkLgorMDAxN0EyICAgICAoYmFzZSAxNikJCUNhbXJpdm94IEx0ZC4KKwkJCQlUaGUgSmVmZnJleXMgQnVpbGRpbmcKKwkJCQlDb3dsZXkgUm9hZAorCQkJCUNhbWJyaWRnZSBDYW1icmlkZ2VzaGlyZSBDQjQgMFdTCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctQTMgICAoaGV4KQkJTUlYIHMuci5sLgorMDAxN0EzICAgICAoYmFzZSAxNikJCU1JWCBzLnIubC4KKwkJCQlWaWEgQ2FsZGVyYSwgMjEKKwkJCQlNaWxhbiAgSS0yMDE1MworCQkJCUlUQUxZCisKKzAwLTE3LUE0ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDAxN0E0ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJTVMwNDA4MDEKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1BNSAgIChoZXgpCQlSYWxpbmsgVGVjaG5vbG9neSBDb3JwCiswMDE3QTUgICAgIChiYXNlIDE2KQkJUmFsaW5rIFRlY2hub2xvZ3kgQ29ycAorCQkJCVN1aXRlIDIxNSwgQmxkZyA1My4gMTk1LTYxIFNlYy40LCBDaHVuZyBIc2luZyBSZCwKKwkJCQlDaHV0dW5nIEhzaW5jaHUgMzEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy1BNiAgIChoZXgpCQlZT1NJTiBFTEVDVFJPTklDUyBDTy4sIExURC4KKzAwMTdBNiAgICAgKGJhc2UgMTYpCQlZT1NJTiBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQk2Ri0yLCBOby4xNywgTGFuIDE3NCwgU2hpbi1NaW5nIFJvYWQKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctQTcgICAoaGV4KQkJTW9iaWxlIENvbXB1dGluZyBQcm9tb3Rpb24gQ29uc29ydGl1bQorMDAxN0E3ICAgICAoYmFzZSAxNikJCU1vYmlsZSBDb21wdXRpbmcgUHJvbW90aW9uIENvbnNvcnRpdW0KKwkJCQkzLTUtMTIgU2hpYmEtS29lbgorCQkJCU1pbmF0by1rdQorCQkJCVRva3lvICAxMDUtMDAxMQorCQkJCUpBUEFOCisKKzAwLTE3LUE4ICAgKGhleCkJCUVETSBDb3Jwb3JhdGlvbgorMDAxN0E4ICAgICAoYmFzZSAxNikJCUVETSBDb3Jwb3JhdGlvbgorCQkJCTMtNS0yIEl0YWJhc2hpCisJCQkJSXRhYmFzaGkta3UgVG9reW8gMTczLTAwMDQKKwkJCQlKQVBBTgorCiswMC0xNy1BOSAgIChoZXgpCQlTZW50aXZpc2lvbgorMDAxN0E5ICAgICAoYmFzZSAxNikJCVNlbnRpdmlzaW9uCisJCQkJTWFyeW5hcnNrYSAxOWEKKwkJCQlXYXJzYXcgTWF6b3dpZWNraWUgMDItNjc0CisJCQkJUE9MQU5ECisKKzAwLTE3LUFBICAgKGhleCkJCWVsYWItZXhwZXJpZW5jZSBpbmMuCiswMDE3QUEgICAgIChiYXNlIDE2KQkJZWxhYi1leHBlcmllbmNlIGluYy4KKwkJCQkxMDQgQW5vdHN1cGlhCisJCQkJQW5vdHN1ZGFpIDQtNi0xCisJCQkJVHN1LXNoaSBtaWUgcHJlZmVjdHVyZSA1MTQtMDEzMQorCQkJCUpBUEFOCisKKzAwLTE3LUFCICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAxN0FCICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTE3LUFDICAgKGhleCkJCU8nTmVpbCBQcm9kdWN0IERldmVsb3BtZW50IEluYy4KKzAwMTdBQyAgICAgKGJhc2UgMTYpCQlPJ05laWwgUHJvZHVjdCBEZXZlbG9wbWVudCBJbmMuCisJCQkJOCBNYXNvbgorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctQUQgICAoaGV4KQkJQWNlTmV0IENvcnBvcmF0aW9uCiswMDE3QUQgICAgIChiYXNlIDE2KQkJQWNlTmV0IENvcnBvcmF0aW9uCisJCQkJN0YtNCwgTm8uMTQ2LCBXZW4tU2hpbiBSb2FkCisJCQkJR3VlaXNoYW4gVEFPWVVBTiAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LUFFICAgKGhleCkJCUdBSS1Ucm9uaWNzCiswMDE3QUUgICAgIChiYXNlIDE2KQkJR0FJLVRyb25pY3MKKwkJCQlCcnVuZWwgRHJpdmUKKwkJCQlTdHJldHRvbiBQYXJrCisJCQkJQnVydG9uIFVwb24gVHJlbnQgU3RhZmZvcmRzaGlyZSBERTEzIDBCWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE3LUFGICAgKGhleCkJCUVuZXJtZXQKKzAwMTdBRiAgICAgKGJhc2UgMTYpCQlFbmVybWV0CisJCQkJU2FsdmVzZW5pbnRpZQorCQkJCUp5c2vkICBGSU4tNDA0MjAKKwkJCQlGSU5MQU5ECisKKzAwLTE3LUIwICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDE3QjAgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTE3LUIxICAgKGhleCkJCUFDSVNUIE1lZGljYWwgU3lzdGVtcywgSW5jLgorMDAxN0IxICAgICAoYmFzZSAxNikJCUFDSVNUIE1lZGljYWwgU3lzdGVtcywgSW5jLgorCQkJCTc0NTAgRmx5aW5nIENsb3VkIERyaXZlCisJCQkJU3VpdGUgMTUwCisJCQkJRWRlbiBQcmFpcmllIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1CMiAgIChoZXgpCQlTSyBUZWxlc3lzCiswMDE3QjIgICAgIChiYXNlIDE2KQkJU0sgVGVsZXN5cworCQkJCTRGLCBLeXVuZ2RvbmcgYmxkZywgNC00LCBTdW5hZS1Eb25nLCBQdW5kYW5nLUd1CisJCQkJU3VuZ25hbS1DaXR5IEt1bmdnaS1EbyA0NjMtODI1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUIzICAgKGhleCkJCUFmdGVrIEluZm9zeXMgTGltaXRlZAorMDAxN0IzICAgICAoYmFzZSAxNikJCUFmdGVrIEluZm9zeXMgTGltaXRlZAorCQkJCVBhd2FuIENvbXBsZXgKKwkJCQlTaGVlbGEgVmloYXIgQ29sb255CisJCQkJUHVuZSBNYWhhcmFzaHRyYSA0MTEgMDM4CisJCQkJSU5ESUEKKworMDAtMTctQjQgICAoaGV4KQkJUmVtb3RlIFNlY3VyaXR5IFN5c3RlbXMsIExMQworMDAxN0I0ICAgICAoYmFzZSAxNikJCVJlbW90ZSBTZWN1cml0eSBTeXN0ZW1zLCBMTEMKKwkJCQk0ODA2IFVwcGVyIEJyYW5kb24gUGxhY2UKKwkJCQlNYXJpZXR0YSBHZW9yZ2lhIDMwMDY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1CNSAgIChoZXgpCQlQZWVybGVzcyBTeXN0ZW1zIENvcnBvcmF0aW9uCiswMDE3QjUgICAgIChiYXNlIDE2KQkJUGVlcmxlc3MgU3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTIzODEgUm9zZWNyYW5zIEF2ZW51ZSwgU3VpdGUgNDAwCisJCQkJRWwgU2VndW5kbyBDQSA5MDI0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctQjYgICAoaGV4KQkJQXF1YW50aWEKKzAwMTdCNiAgICAgKGJhc2UgMTYpCQlBcXVhbnRpYQorCQkJCTcwMCBUYXNtYW4gRHIuCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUI3ICAgKGhleCkJCVRvbnplIFRlY2hub2xvZ3kgQ28uCiswMDE3QjcgICAgIChiYXNlIDE2KQkJVG9uemUgVGVjaG5vbG9neSBDby4KKwkJCQk1Ri0xMCwgTm8uNiwgTGFuZSAxODAsCisJCQkJU2VjIDYsIE1pbmN5dWFuIEVhc3QgUm9hZAorCQkJCVRhaXBlaSAgMTE0OTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LUI4ICAgKGhleCkJCU5PVkFUUk9OIENPLiwgTFRELgorMDAxN0I4ICAgICAoYmFzZSAxNikJCU5PVkFUUk9OIENPLiwgTFRELgorCQkJCSM2MDEgcG9sYXJpcyBibGRnLiwgMTUtMyBqZW9uZ2phLWRvbmcsIGJ1bmRhbmctZ3UKKwkJCQlTZW9uZyBOYW0gR3llb25nZ2kgRG8gNDYzLTgxMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy1COSAgIChoZXgpCQlHYW1icm8gTHVuZGlhIEFCCiswMDE3QjkgICAgIChiYXNlIDE2KQkJR2FtYnJvIEx1bmRpYSBBQgorCQkJCUJPWCAxMDEwMQorCQkJCUxVTkQgU2vlbmUgMjIwMTAKKwkJCQlTV0VERU4KKworMDAtMTctQkEgICAoaGV4KQkJU0VETyBDTy4sIExURC4KKzAwMTdCQSAgICAgKGJhc2UgMTYpCQlTRURPIENPLiwgTFRELgorCQkJCTMwMiwgS1QgQmxkZywgMUFOTkVYLCAzNS0xCisJCQkJWWVvbmdkZXVuZ3BvLWRvbmcgOGdhLCBZZW9uZ2RldW5ncG8tZ3UKKwkJCQlTZW91bCAgMTUwLTAzOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy1CQiAgIChoZXgpCQlTeXJpbnggSW5kdXN0cmlhbCBFbGVjdHJvbmljcworMDAxN0JCICAgICAoYmFzZSAxNikJCVN5cmlueCBJbmR1c3RyaWFsIEVsZWN0cm9uaWNzCisJCQkJRGUgRmFjdG9yaWogMTMKKwkJCQlad2FhZyBOb29yZCBIb2xsYW5kIDE2ODkgQUsKKwkJCQlORVRIRVJMQU5EUworCiswMC0xNy1CQyAgIChoZXgpCQlUb3VjaHR1bmVzIE11c2ljIENvcnBvcmF0aW9uCiswMDE3QkMgICAgIChiYXNlIDE2KQkJVG91Y2h0dW5lcyBNdXNpYyBDb3Jwb3JhdGlvbgorCQkJCTMgUGxhY2UgZHUgQ29tbWVyY2UKKwkJCQk0dGggRmxvb3IKKwkJCQlNb250culhbCBRdeliZWMgSDNFIDFINworCQkJCUNBTkFEQQorCiswMC0xNy1CRCAgIChoZXgpCQlUaWJldHN5c3RlbQorMDAxN0JEICAgICAoYmFzZSAxNikJCVRpYmV0c3lzdGVtCisJCQkJNkYgSVQgQ2FzdGxlIElJIDU1MC0xIEdhc2FuLWRvbmcKKwkJCQlTZW91bCBHZXVtY2hlb24tZ3UgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy1CRSAgIChoZXgpCQlUcmF0ZWMgVGVsZWNvbSBCLlYuCiswMDE3QkUgICAgIChiYXNlIDE2KQkJVHJhdGVjIFRlbGVjb20gQi5WLgorCQkJCURlIFNtYWxsZSBaaWpkZSAxMgorCQkJCVZlZW5lbmRhYWwgIE5MMC0zOTAzIExQCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTctQkYgICAoaGV4KQkJQ29oZXJlbnQgUmVzZWFyY2ggTGltaXRlZAorMDAxN0JGICAgICAoYmFzZSAxNikJCUNvaGVyZW50IFJlc2VhcmNoIExpbWl0ZWQKKwkJCQk4IFByaW5jZXNzIE1ld3MKKwkJCQlIb3JhY2UgUm9hZAorCQkJCUtpbmdzdG9uIHVwb24gVGhhbWVzIFN1cnJleSBLVDEgMlNaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctQzAgICAoaGV4KQkJUHVyZVRlY2ggU3lzdGVtcywgSW5jLgorMDAxN0MwICAgICAoYmFzZSAxNikJCVB1cmVUZWNoIFN5c3RlbXMsIEluYy4KKwkJCQkyMDc1IFcgUGlubmFjbGUgUGVhayBSb2FkICMxMjAKKwkJCQlQaG9lbml4IEFaIDg1MDI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1DMSAgIChoZXgpCQlDTSBQcmVjaXNpb24gVGVjaG5vbG9neSBMVEQuCiswMDE3QzEgICAgIChiYXNlIDE2KQkJQ00gUHJlY2lzaW9uIFRlY2hub2xvZ3kgTFRELgorCQkJCTIgRmwsIE5vLiAxNzcsIENoaWVuLUUgUm9hZCwgQ2h1bmctSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy1DMiAgIChoZXgpCQlQaXJlbGxpIEJyb2FkYmFuZCBTb2x1dGlvbnMKKzAwMTdDMiAgICAgKGJhc2UgMTYpCQlQaXJlbGxpIEJyb2FkYmFuZCBTb2x1dGlvbnMKKwkJCQl2LlNhcmNhIDIyMgorCQkJCU1pbGFubyAgMjAxMjYKKwkJCQlJVEFMWQorCiswMC0xNy1DMyAgIChoZXgpCQlLVEYgVGVjaG5vbG9naWVzIEluYy4KKzAwMTdDMyAgICAgKGJhc2UgMTYpCQlLVEYgVGVjaG5vbG9naWVzIEluYy4KKwkJCQk0dGggRmwuLCBDZW50cmFsIFRvd2VyLCAyNjUtMywgU2VvaHl1bi1Eb25nCisJCQkJQnVuZG5hZy1HdQorCQkJCVN1bmduYW0tQ2l0eSBLeXVuZ2dpLURvIDQ2My03NjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctQzQgICAoaGV4KQkJUXVhbnRhIE1pY3Jvc3lzdGVtcywgSU5DLgorMDAxN0M0ICAgICAoYmFzZSAxNikJCVF1YW50YSBNaWNyb3N5c3RlbXMsIElOQy4KKwkJCQkxODggV2VuaHdhIDJuZCBSRC4sIEt1ZWlzaGFuIEhzaWFuZworCQkJCVRhb3l1YW4gU2hpZW4gIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctQzUgICAoaGV4KQkJU29uaWNXQUxMCiswMDE3QzUgICAgIChiYXNlIDE2KQkJU29uaWNXQUxMCisJCQkJMTE0MyBCb3JyZWdhcyBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTUxMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUM2ICAgKGhleCkJCUNyb3NzIE1hdGNoIFRlY2hub2xvZ2llcyBJbmMKKzAwMTdDNiAgICAgKGJhc2UgMTYpCQlDcm9zcyBNYXRjaCBUZWNobm9sb2dpZXMgSW5jCisJCQkJNDAwLCBib3VsLiBKZWFuLUxlc2FnZQorCQkJCUhhbGwgT3Vlc3QsIFN1aXRlIDMwCisJCQkJUXXpYmVjLCBRYyAgRzFLIDhXMQorCQkJCUNBTkFEQQorCiswMC0xNy1DNyAgIChoZXgpCQlNQVJBIFN5c3RlbXMgQ29uc3VsdGluZyBBQgorMDAxN0M3ICAgICAoYmFzZSAxNikJCU1BUkEgU3lzdGVtcyBDb25zdWx0aW5nIEFCCisJCQkJSW5zdHJ1bWVudHbkZ2VuIDQ1CisJCQkJU3RvY2tob2xtICAxMjYgNTMKKwkJCQlTV0VERU4KKworMDAtMTctQzggICAoaGV4KQkJS3lvY2VyYSBNaXRhIENvcnBvcmF0aW9uCiswMDE3QzggICAgIChiYXNlIDE2KQkJS3lvY2VyYSBNaXRhIENvcnBvcmF0aW9uCisJCQkJMi0xNC05LCBUYW1hZ2F3YWRhaQorCQkJCVNldGFnYXlhLVdhcmQKKwkJCQlUb2t5byAgMTU4LTg2MTAKKwkJCQlKQVBBTgorCiswMC0xNy1DOSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxN0M5ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJNDE2LCBNYWV0YW4tM0RvbmcsIFllb25ndG9uZy1HdQorCQkJCVN1d29uIEdleW9uZ2dpLURvIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctQ0EgICAoaGV4KQkJUWlzZGEgQ29ycG9yYXRpb24KKzAwMTdDQSAgICAgKGJhc2UgMTYpCQlRaXNkYSBDb3Jwb3JhdGlvbgorCQkJCTE1NyBTaGFuIFlpbmcgUm9hZCwKKwkJCQlHdWVpU2hhbiBUYW95dWFuLCAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LUNCICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzAwMTdDQiAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOb3J0aCBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ2FsaWZvcm5pYSA5NDA4OS0xMjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1DQyAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudAorMDAxN0NDICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50CisJCQkJNjAxIERhdGEgRHIuCisJCQkJTS9TIDMyMAorCQkJCVBsYW5vIFRYIDc1MDc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1DRCAgIChoZXgpCQlDRUMgV2lyZWxlc3MgUiZEIEx0ZC4KKzAwMTdDRCAgICAgKGJhc2UgMTYpCQlDRUMgV2lyZWxlc3MgUiZEIEx0ZC4KKwkJCQlXZXN0IE01IEJ1aWxkaW5nLE5vLjEgRWFzdCBSb2FkCisJCQkJSml1eGlhbnFpYW8gQ2hhbyBZYW5nIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDE2CisJCQkJQ0hJTkEKKworMDAtMTctQ0UgICAoaGV4KQkJTUIgSW50ZXJuYXRpb25hbCBUZWxlY29tIExhYnMgc3JsCiswMDE3Q0UgICAgIChiYXNlIDE2KQkJTUIgSW50ZXJuYXRpb25hbCBUZWxlY29tIExhYnMgc3JsCisJCQkJVmlhIE1pbGFubyAyNTUKKwkJCQlCYXJhbnphdGUgZGkgQm9sbGF0ZSBNaWxhbm8gMjAwMjEKKwkJCQlJVEFMWQorCiswMC0xNy1DRiAgIChoZXgpCQlpTUNBLUdtYkgKKzAwMTdDRiAgICAgKGJhc2UgMTYpCQlpTUNBLUdtYkgKKwkJCQlEb3Jmc3RyYXNzZSAyOGIKKwkJCQlJdHplaG9lIFNjaGxlc3dpZy1Ib2xzdGVpbiAyNTUyNAorCQkJCUdFUk1BTlkKKworMDAtMTctRDAgICAoaGV4KQkJT3B0aWNvbSBDb21tdW5pY2F0aW9ucywgTExDCiswMDE3RDAgICAgIChiYXNlIDE2KQkJT3B0aWNvbSBDb21tdW5pY2F0aW9ucywgTExDCisJCQkJMTA1MCBDb25uZWN0aWN1dCBBdmVudWUsIE5XCisJCQkJU3VpdGUgMTAwMAorCQkJCVdhc2hpbmd0b24gREMgMjAwMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUQxICAgKGhleCkJCU5vcnRlbAorMDAxN0QxICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xNy1EMiAgIChoZXgpCQlUSElOTElOWCBQVFkgTFRECiswMDE3RDIgICAgIChiYXNlIDE2KQkJVEhJTkxJTlggUFRZIExURAorCQkJCTMxIENhcndvb2xhIENyZXNjZW50CisJCQkJTW9vbG9vbGFiYSBRdWVlbnNsYW5kIDQ1NTcKKwkJCQlBVVNUUkFMSUEKKworMDAtMTctRDMgICAoaGV4KQkJRXR5bW90aWMgUmVzZWFyY2gsIEluYy4KKzAwMTdEMyAgICAgKGJhc2UgMTYpCQlFdHltb3RpYyBSZXNlYXJjaCwgSW5jLgorCQkJCTYxIE1hcnRpbiBMYW5lCisJCQkJRWxrIEdyb3ZlIFZpbGxhZ2UgSUwgNjAwNjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUQ0ICAgKGhleCkJCU1vbnNvb24gTXVsdGltZWRpYSwgSW5jCiswMDE3RDQgICAgIChiYXNlIDE2KQkJTW9uc29vbiBNdWx0aW1lZGlhLCBJbmMKKwkJCQkxNzMwIFNvdXRoIEFtcGhsZXR0IGJsdmQuIFN1aXRlIDEwMQorCQkJCVNhbiBNYXRlbyBDQSA5NDQwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRDUgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMTdENSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaS1DaXR5IEd5ZW9uZy1CdWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy1ENiAgIChoZXgpCQlCbHVlY2hpcHMgTWljcm9ob3VzZSBDby4sTHRkLgorMDAxN0Q2ICAgICAoYmFzZSAxNikJCUJsdWVjaGlwcyBNaWNyb2hvdXNlIENvLixMdGQuCisJCQkJMjEyLzIgTS4xMCBUYW1ib2wgVW1vbmcKKwkJCQlBbXBodXIgTXVhbmcKKwkJCQlMYW1waHVuICA1MTE1MAorCQkJCVRIQUlMQU5ECisKKzAwLTE3LUQ3ICAgKGhleCkJCUlPTiBHZW9waHlzaWNhbCBDb3Jwb3JhdGlvbiBJbmMuCiswMDE3RDcgICAgIChiYXNlIDE2KQkJSU9OIEdlb3BoeXNpY2FsIENvcnBvcmF0aW9uIEluYy4KKwkJCQk4NTAgRG9yb3RoeQorCQkJCVN1aXRlIDUxMAorCQkJCVJpY2hhcmRzb24gVGV4YXMgNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUQ4ICAgKGhleCkJCU1hZ251bSBTZW1pY29uZHVjdG9yLCBJbmMuCiswMDE3RDggICAgIChiYXNlIDE2KQkJTWFnbnVtIFNlbWljb25kdWN0b3IsIEluYy4KKwkJCQk1OTEgWW9zZW1pdGUgRHJpdmUKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRDkgICAoaGV4KQkJQUFJIENvcnBvcmF0aW9uCiswMDE3RDkgICAgIChiYXNlIDE2KQkJQUFJIENvcnBvcmF0aW9uCisJCQkJUC5PLiBCb3ggMTI2CisJCQkJSHVudCBWYWxsZXkgTWFyeWxhbmQgMjEwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LURBICAgKGhleCkJCVNwYW5zIExvZ2ljCiswMDE3REEgICAgIChiYXNlIDE2KQkJU3BhbnMgTG9naWMKKwkJCQkyMDEgU2FuIEFudG9uaW8gQ2lyY2xlCisJCQkJIzI4MAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LURCICAgKGhleCkJCUNBTktPIFRFQ0hOT0xPR0lFUyBJTkMuCiswMDE3REIgICAgIChiYXNlIDE2KQkJQ0FOS08gVEVDSE5PTE9HSUVTIElOQy4KKwkJCQk1IEZMLiBET05HIFNVTkcgQkxERy4gMTctOAorCQkJCVlPSURPLURPTkcsIFlFT05HREVVTkdQTy1LVQorCQkJCVNFT1VMICAxNTAtODc0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LURDICAgKGhleCkJCURBRU1ZVU5HIFpFUk8xCiswMDE3REMgICAgIChiYXNlIDE2KQkJREFFTVlVTkcgWkVSTzEKKwkJCQkjODA5LEh5b3N1bmcgSW50ZWxsaWFuCisJCQkJMTU5NC0xIEd3YW55YW5nLWRvbmcsRG9uZ2FuLWd1CisJCQkJQW55YW5nLXNpIEd5ZW9uZ2dpLWRvIDQzMS0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctREQgICAoaGV4KQkJQ2xpcHNhbCBBdXN0cmFsaWEKKzAwMTdERCAgICAgKGJhc2UgMTYpCQlDbGlwc2FsIEF1c3RyYWxpYQorCQkJCTMzLTM3IFBvcnQgV2FrZWZpZWxkIFJkCisJCQkJR2VwcHMgQ3Jvc3MgU291dGggQXVzdHJhbGlhIDUwOTQKKwkJCQlBVVNUUkFMSUEKKworMDAtMTctREUgICAoaGV4KQkJQWR2YW50YWdlIFNpeCBMdGQKKzAwMTdERSAgICAgKGJhc2UgMTYpCQlBZHZhbnRhZ2UgU2l4IEx0ZAorCQkJCTIwOCBHZW9yZ2UgU3QKKwkJCQlTaGF3CisJCQkJT0xESEFNIExhbmNzIE9MMiA4RFIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNy1ERiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3REYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1FMCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3RTAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1FMSAgIChoZXgpCQlEQUNPUyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDE3RTEgICAgIChiYXNlIDE2KQkJREFDT1MgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCTEwNCBEYWVyeXVuZy1UZWNobm90b3duIElJSSA0NDgKKwkJCQlHYXNhbi1Eb25nCisJCQkJU0VPVUwgS2V1bWNoZW9uLUd1IDE1My03NzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctRTIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDE3RTIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjAwIE4uIEh3eSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTMgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFMyAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTQgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFNCAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTUgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFNSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTYgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFNiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTcgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFNyAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTggICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFOCAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTkgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFOSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRUEgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFQSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRUIgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFQiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRUMgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFQyAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRUQgICAoaGV4KQkJV29vSm9vSVQgTHRkLgorMDAxN0VEICAgICAoYmFzZSAxNikJCVdvb0pvb0lUIEx0ZC4KKwkJCQlIYW5rb29rdGlyZSBCL0QgNHRoIGZsb29yLCA1MDEtMTksCisJCQkJU2lud29sMiAtZG9uZywKKwkJCQlZYW5nY2hlb24tZ3UsIFNlb3VsIDE1OC04MzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctRUUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMTdFRSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUVGICAgKGhleCkJCUlCTSBDb3JwCiswMDE3RUYgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkyMDUxIE1pc3Npb24gQ29sbGVnZSBCbHZkIAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1GMCAgIChoZXgpCQlTWkNPTSBCcm9hZGJhbmQgTmV0d29yayBUZWNobm9sb2d5IENvLixMdGQKKzAwMTdGMCAgICAgKGJhc2UgMTYpCQlTWkNPTSBCcm9hZGJhbmQgTmV0d29yayBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlSb29tIDYwMiBOby44IEJ1aWxkaW5nICxTaGVuemhlbiBTb2Z0d2FyZSBQYXJrLAorCQkJCUhpLVRlY2ggQy5ab25lICxOYW5zaGFuIEFyZWEKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMTctRjEgICAoaGV4KQkJUmVudSBFbGVjdHJvbmljcyBQdnQgTHRkCiswMDE3RjEgICAgIChiYXNlIDE2KQkJUmVudSBFbGVjdHJvbmljcyBQdnQgTHRkCisJCQkJU3IgTm8gMi82LCBCYW5lciBSb2FkLAorCQkJCUJhbmVyLAorCQkJCVB1bmUgTWFoYXJhc2h0cmEgNDExMDQ1CisJCQkJSU5ESUEKKworMDAtMTctRjIgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIKKzAwMTdGMiAgICAgKGJhc2UgMTYpCQlBcHBsZSBDb21wdXRlcgorCQkJCTEgSW5maW5pdGUgTG9vcCBNUzozNUdQTworCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRjMgICAoaGV4KQkJSGFycmlzIENvcnBhcmF0aW9uCiswMDE3RjMgICAgIChiYXNlIDE2KQkJSGFycmlzIENvcnBhcmF0aW9uCisJCQkJMTAyNSBXZXN0IE5BU0EgQmx2ZAorCQkJCU1lbGJvdXJuZSBGTCAzMjkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRjQgICAoaGV4KQkJWkVST04gQUxMSUFOQ0UKKzAwMTdGNCAgICAgKGJhc2UgMTYpCQlaRVJPTiBBTExJQU5DRQorCQkJCSAzRiBET09SSSBCVUlMRC4gMjQ0LTE0IGJ1bmppLCBQb2ktZG9uZywgR2FuZ25hbS1ndQorCQkJCVNFT1VMICAxMzUtOTY1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUY1ICAgKGhleCkJCUxJRyBORU9QVEVLCiswMDE3RjUgICAgIChiYXNlIDE2KQkJTElHIE5FT1BURUsKKwkJCQk5MjYgR29zYWVrLWRvbmcKKwkJCQlHd29uc2Vvbi1ndQorCQkJCVN1d29uLXNpIEd5ZW9uZ2dpLWRvIDQ0MS04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctRjYgICAoaGV4KQkJUHlyYW1pZCBNZXJpZGVuIEluYy4KKzAwMTdGNiAgICAgKGJhc2UgMTYpCQlQeXJhbWlkIE1lcmlkZW4gSW5jLgorCQkJCTQ1IEdyYWNleSBBdmUuCisJCQkJTWVyaWRlbiBDVCAwNjQ1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRjcgICAoaGV4KQkJQ0VNIFNvbHV0aW9ucyBQdnQgTHRkCiswMDE3RjcgICAgIChiYXNlIDE2KQkJQ0VNIFNvbHV0aW9ucyBQdnQgTHRkCisJCQkJNDksS2FuaWphIEJoYXZhbgorCQkJCVJhY2UgQ291cnNlIFJvYWQKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MCAwMDEKKwkJCQlJTkRJQQorCiswMC0xNy1GOCAgIChoZXgpCQlNb3RlY2ggSW5kdXN0cmllcyBJbmMuCiswMDE3RjggICAgIChiYXNlIDE2KQkJTW90ZWNoIEluZHVzdHJpZXMgSW5jLgorCQkJCTZGLCBOby4gMjQ4LCBTZWMuIDMsIFBlaS1TaGVuIFJkLiwKKwkJCQlTaGVuLUtlbmcgSHNpYW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMjIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LUY5ICAgKGhleCkJCUZvcmNvbSBTcC4geiBvLm8uCiswMDE3RjkgICAgIChiYXNlIDE2KQkJRm9yY29tIFNwLiB6IG8uby4KKwkJCQlHYWpvd2EgNgorCQkJCVBvem5hbiBXTEtQIDYwLTgxNQorCQkJCVBPTEFORAorCiswMC0xNy1GQSAgIChoZXgpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKzAwMTdGQSAgICAgKGJhc2UgMTYpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKwkJCQlPbmUgTWljcm9zb2Z0IFdheQorCQkJCVJFRC1CLzEwNzIKKwkJCQlSZWRtb25kIFdhc2hpbmd0b24gOTgwNTItNjM5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRkIgICAoaGV4KQkJRkEKKzAwMTdGQiAgICAgKGJhc2UgMTYpCQlGQQorCQkJCTYyOC03LCBEdW5nY2hvbi1Eb25nCisJCQkJU2VvdWwgS2FuZ3Nlby1LdSAxNTctODM4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUZDICAgKGhleCkJCVN1cHJlbWEgSW5jLgorMDAxN0ZDICAgICAoYmFzZSAxNikJCVN1cHJlbWEgSW5jLgorCQkJCTE2RiBQYXJrdmlldyBPZmZpY2UgVG93ZXIsCisJCQkJSmVvbmdqYS1kb25nLCBCdW5kYW5nLWd1LAorCQkJCVNlb25nbmFtIEd5ZW9uZ2dpIDQ2My04NjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctRkQgICAoaGV4KQkJQW11bGV0IEhvdGtleQorMDAxN0ZEICAgICAoYmFzZSAxNikJCUFtdWxldCBIb3RrZXkKKwkJCQlDYXZhbGllciBSb2FkCisJCQkJSGVhdGhmaWVsZCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCUhlYXRoZmllbGQgRGV2b24gVFExMiA2VFEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNy1GRSAgIChoZXgpCQlUQUxPUyBTWVNURU0gSU5DLgorMDAxN0ZFICAgICAoYmFzZSAxNikJCVRBTE9TIFNZU1RFTSBJTkMuCisJCQkJNjE5MSBDT1JORVJTVE9ORSBDVC4gU1RFICMxMDkKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUZGICAgKGhleCkJCVBMQVlMSU5FIENvLixMdGQuCiswMDE3RkYgICAgIChiYXNlIDE2KQkJUExBWUxJTkUgQ28uLEx0ZC4KKwkJCQkxLTQtMjEgTU9UT0FLQVNBS0EKKwkJCQlNSU5BVE9LVQorCQkJCVRPS1lPICAxMDctMDA1MQorCQkJCUpBUEFOCisKKzAwLTE4LTAwICAgKGhleCkJCVVOSUdSQU5EIExURAorMDAxODAwICAgICAoYmFzZSAxNikJCVVOSUdSQU5EIExURAorCQkJCTdGLTIsIE5vLjQ1LCBKaW5nZGUgU3QuLCBKaG9uZ2hlIENpdHksCisJCQkJVGFpcGVpIENvdW50eQorCQkJCTIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtMDEgICAoaGV4KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMKKzAwMTgwMSAgICAgKGJhc2UgMTYpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworCQkJCTc2MCBOb3J0aCBNYXJ5IEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMDIgICAoaGV4KQkJQWxwaGEgTmV0d29ya3MgSW5jLgorMDAxODAyICAgICAoYmFzZSAxNikJCUFscGhhIE5ldHdvcmtzIEluYy4KKwkJCQlOby44IExpLXNoaW5nIFNldmVudGggUm9hZCxTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtMDMgICAoaGV4KQkJQXJjU29mdCBTaGFuZ2hhaSBDby4gTFRECiswMDE4MDMgICAgIChiYXNlIDE2KQkJQXJjU29mdCBTaGFuZ2hhaSBDby4gTFRECisJCQkJMjB0aCBGbG9vciwgU3VpdGUgKEVBU1QpIDIwMDgsIENoaW5hIE1lcmNoYW50cyBQbGF6YSwgMzMzCisJCQkJU2hhbmdoYWkgIDIwMDA0MQorCQkJCUNISU5BCisKKzAwLTE4LTA0ICAgKGhleCkJCUUtVEVLIERJR0lUQUwgVEVDSE5PTE9HWSBMSU1JVEVECiswMDE4MDQgICAgIChiYXNlIDE2KQkJRS1URUsgRElHSVRBTCBURUNITk9MT0dZIExJTUlURUQKKwkJCQlVTklUMTUyMCwxNS9GLixUT1dFUiAyLEdSQU5EIENFTlRVUlkgUExBQ0UsMTkzIFBSSU5DRSBFRFdBUkQgUk9BRCBXRVNULEtPV0xPT04sCisJCQkJSE9ORyBLT05HCisKKzAwLTE4LTA1ICAgKGhleCkJCUJlaWppbmcgSW5IYW5kIE5ldHdvcmtpbmcgVGVjaG5vbG9neSBDby4sTHRkLgorMDAxODA1ICAgICAoYmFzZSAxNikJCUJlaWppbmcgSW5IYW5kIE5ldHdvcmtpbmcgVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTMvRixCdWlsZGluZyBBLEdFTSBUZWNoY2hlbnRlcgorCQkJCU5vLDkgM3JkIFN0cmVldCBvZiBTaGFuZ2RpCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMTgtMDYgICAoaGV4KQkJSG9ra2VpIEluZHVzdHJpZXMgQ28uLCBMdGQuCiswMDE4MDYgICAgIChiYXNlIDE2KQkJSG9ra2VpIEluZHVzdHJpZXMgQ28uLCBMdGQuCisJCQkJSW1haGlyYSA0MzIKKwkJCQlIYWt1c2FuIElzaGlrYXdhIDkyNC0wODI3CisJCQkJSkFQQU4KKworMDAtMTgtMDcgICAoaGV4KQkJRmFuc3RlbCBDb3JwLgorMDAxODA3ICAgICAoYmFzZSAxNikJCUZhbnN0ZWwgQ29ycC4KKwkJCQk3NDY2IEUuIE1vbnRlIENyaXN0byBBdmUuCisJCQkJU2NvdHRzZGFsZSBBcml6b25hIDg1MjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0wOCAgIChoZXgpCQlTaWdodExvZ2l4LCBJbmMuCiswMDE4MDggICAgIChiYXNlIDE2KQkJU2lnaHRMb2dpeCwgSW5jLgorCQkJCTc0NSBBbGV4YW5kZXIgUm9hZAorCQkJCVByaW5jZXRvbiBOSiAwODU0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMDkgICAoaGV4KQkJQ1JFU1lOCiswMDE4MDkgICAgIChiYXNlIDE2KQkJQ1JFU1lOCisJCQkJOC0yMixKYW13b24tZG9uZworCQkJCVNlb3VsIFNlb2Noby1HdSAjMTM3LTkwMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC0wQSAgIChoZXgpCQlNZXJha2ksIEluYy4KKzAwMTgwQSAgICAgKGJhc2UgMTYpCQlNZXJha2ksIEluYy4KKwkJCQk5OSBSaG9kZSBJc2xhbmQgU3QuCisJCQkJU2FuIEZyYW5jaXNjbywgQ0EgOTQxMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTBCICAgKGhleCkJCUJyaWxsaWFudCBUZWxlY29tbXVuaWNhdGlvbnMKKzAwMTgwQiAgICAgKGJhc2UgMTYpCQlCcmlsbGlhbnQgVGVsZWNvbW11bmljYXRpb25zCisJCQkJMzA3IE9yY2hhcmQgQ2l0eSBEci4KKwkJCQlTdWl0ZSAxMDIKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMEMgICAoaGV4KQkJT3B0ZWxpYW4gQWNjZXNzIE5ldHdvcmtzCiswMDE4MEMgICAgIChiYXNlIDE2KQkJT3B0ZWxpYW4gQWNjZXNzIE5ldHdvcmtzCisJCQkJMjJBLTEwNTEgQmF4dGVyIFJvYWQKKwkJCQlPdHRhd2EgT250YXJpbyBLMkMgM1AyCisJCQkJQ0FOQURBCisKKzAwLTE4LTBEICAgKGhleCkJCVRlcmFieXRlcyBTZXJ2ZXIgU3RvcmFnZSBUZWNoIENvcnAKKzAwMTgwRCAgICAgKGJhc2UgMTYpCQlUZXJhYnl0ZXMgU2VydmVyIFN0b3JhZ2UgVGVjaCBDb3JwCisJCQkJMTQyNTcgRSBEb24gSnVsaWFuIFJkCisJCQkJQ2l0eSBvZiBJbmR1c3RyeSBDQSA5MTc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMEUgICAoaGV4KQkJQXZlZ2EgU3lzdGVtcworMDAxODBFICAgICAoYmFzZSAxNikJCUF2ZWdhIFN5c3RlbXMKKwkJCQk1OSBWaWN0b3JpYSBTdHJlZXQKKwkJCQlNY01haG9ucyBQb2ludCBOU1cgMjA2MAorCQkJCUFVU1RSQUxJQQorCiswMC0xOC0wRiAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxODBGICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWIERlbm1hcmsgMTc5MFYKKwkJCQlERU5NQVJLCisKKzAwLTE4LTEwICAgKGhleCkJCUlQVHJhZGUgUy5BLgorMDAxODEwICAgICAoYmFzZSAxNikJCUlQVHJhZGUgUy5BLgorCQkJCVBhcmMgU2NpZW50aWZpcXVlCisJCQkJQXZlbnVlIGRlcyBDaGFzc2V1cnMgQXJkZW5uYWlzLCA0CisJCQkJU2FydC1UaWxtYW4gV2FsbG9uaWUgNDAzMQorCQkJCUJFTEdJVU0KKworMDAtMTgtMTEgICAoaGV4KQkJTmV1cm9zIFRlY2hub2xvZ3kgSW50ZXJuYXRpb25hbCwgTExDLgorMDAxODExICAgICAoYmFzZSAxNikJCU5ldXJvcyBUZWNobm9sb2d5IEludGVybmF0aW9uYWwsIExMQy4KKwkJCQk2NTAgVyBMYWtlIFN0CisJCQkJU3VpdGUgMzMwCisJCQkJQ2hpY2FnbyBJTCA2MDY2MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMTIgICAoaGV4KQkJQmVpamluZyBYaW53ZWkgVGVsZWNvbSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxODEyICAgICAoYmFzZSAxNikJCUJlaWppbmcgWGlud2VpIFRlbGVjb20gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlYaW53ZWkgQmxkZy4sIE5vLiA3IFpob25nZ3VhbmN1biBTb2Z0d2FyZSBQYXJrLAorCQkJCU5vLiA4IERvbmdiZWl3YW5nIFdlc3QgUm9hZAorCQkJCUhhaWRpYW4gRGlzdHJpY3QgQmVpamluZyAxMDAwOTQKKwkJCQlDSElOQQorCiswMC0xOC0xMyAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworMDAxODEzICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU2vlbmUgMjIxODgKKwkJCQlTV0VERU4KKworMDAtMTgtMTQgICAoaGV4KQkJTWl0dXRveW8gQ29ycG9yYXRpb24KKzAwMTgxNCAgICAgKGJhc2UgMTYpCQlNaXR1dG95byBDb3Jwb3JhdGlvbgorCQkJCTIwLTEsIFNha2FkbyAxLWNob21lLCBUYWthdHN1LWt1LAorCQkJCUthd2FzYWtpLXNoaSAgMjEzLTg1MzMKKwkJCQlKQVBBTgorCiswMC0xOC0xNSAgIChoZXgpCQlHWiBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTgxNSAgICAgKGJhc2UgMTYpCQlHWiBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQlSb29tIDEsIDVGLiwgTm8uOTQsIEJhb2pob25nIFJkLgorCQkJCVNpbmRpYW4gQ2l0eQorCQkJCVRhaXBlaSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC0xNiAgIChoZXgpCQlVYml4b24gQ28uLCBMdGQuCiswMDE4MTYgICAgIChiYXNlIDE2KQkJVWJpeG9uIENvLiwgTHRkLgorCQkJCUNoZW9uZ2RvbmcgQnVpbGRpbmcgMkYKKwkJCQkxMzQ0LTI5IFNlb2NobyBkb25nIFNlb2NobyBrdQorCQkJCVNlb3VsICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LTE3ICAgKGhleCkJCUQuIEUuIFNoYXcgUmVzZWFyY2gsIExMQworMDAxODE3ICAgICAoYmFzZSAxNikJCUQuIEUuIFNoYXcgUmVzZWFyY2gsIExMQworCQkJCTEyMCBXLiA0NXRoIFN0LiwgMzNyZCBGbG9vcgorCQkJCU5ldyBZb3JrIE5ZIDEwMDM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0xOCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE4MTggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0xOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE4MTkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0xQSAgIChoZXgpCQlBVmVyTWVkaWEgSW5mb3JtYXRpb24gSW5jLgorMDAxODFBICAgICAoYmFzZSAxNikJCUFWZXJNZWRpYSBJbmZvcm1hdGlvbiBJbmMuCisJCQkJN0YsIE5vLiAxMzcsIEppYW4gWWkgUmQuLAorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtMUIgICAoaGV4KQkJVGFpSmluIE1ldGFsIENvLiwgTHRkLgorMDAxODFCICAgICAoYmFzZSAxNikJCVRhaUppbiBNZXRhbCBDby4sIEx0ZC4KKwkJCQkjOTUtOSwgSGFuZ2Rvbmc3LUdhLCBKb29uZy1HdQorCQkJCUluIENoZW9uICA0MDAtMDM3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LTFDICAgKGhleCkJCUV4dGVyaXR5IExpbWl0ZWQKKzAwMTgxQyAgICAgKGJhc2UgMTYpCQlFeHRlcml0eSBMaW1pdGVkCisJCQkJUmlkZ2UgV2F5LCBIaWxsZW5kIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJRGFsZ2V0eSBCYXkKKwkJCQlEdW5mZXJtbGluZSBGaWZlIEtZMTEgOUpECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTgtMUQgICAoaGV4KQkJQVNJQSBFTEVDVFJPTklDUyBDTy4sTFRECiswMDE4MUQgICAgIChiYXNlIDE2KQkJQVNJQSBFTEVDVFJPTklDUyBDTy4sTFRECisJCQkJNjIwLTMgRE9DSEVPTi1ET05HCisJCQkJR1dBTkdTQU4tR1UKKwkJCQlHV0FOR0pVICA1MDYtMzAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LTFFICAgKGhleCkJCUdEWCBUZWNobm9sb2dpZXMgTHRkLgorMDAxODFFICAgICAoYmFzZSAxNikJCUdEWCBUZWNobm9sb2dpZXMgTHRkLgorCQkJCTYxLTYzIEJhY2sgU25lZGRvbiBTdHJlZXQKKwkJCQlQYWlzbGV5IFJlbmZyZXdzaGlyZSBQQTMgMkRECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTgtMUYgICAoaGV4KQkJUGFsbW1pY3JvIENvbW11bmljYXRpb25zCiswMDE4MUYgICAgIChiYXNlIDE2KQkJUGFsbW1pY3JvIENvbW11bmljYXRpb25zCisJCQkJUm9vbSAwNjExLCBCbGRnLkIgVHNpbmdodWEgVG9uZ2ZhbmcgVGVjaG5vbG9neSBQbGF6YQorCQkJCTEgV2FuZ3podWFuZyBSb2FkCisJCQkJQmVpamluZyAgMTAwMDgzCisJCQkJQ0hJTkEKKworMDAtMTgtMjAgICAoaGV4KQkJdzVuZXR3b3JrcworMDAxODIwICAgICAoYmFzZSAxNikJCXc1bmV0d29ya3MKKwkJCQk0ODM4OSBGcmVtb250IEJsdmQKKwkJCQlTdWl0ZSAxMDYKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0yMSAgIChoZXgpCQlTSU5ET1JJQ09ICiswMDE4MjEgICAgIChiYXNlIDE2KQkJU0lORE9SSUNPSAorCQkJCTI3Ny0yMiwgMmdhLCBTdW5nc3UtZG9uZywgU3VuZ2RvbmctZ3UsCisJCQkJU2VvdWwgIDEzMy0xMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtMjIgICAoaGV4KQkJQ0VDIFRFTEVDT00gQ08uLExURC4KKzAwMTgyMiAgICAgKGJhc2UgMTYpCQlDRUMgVEVMRUNPTSBDTy4sTFRELgorCQkJCTEwdGhGTC5DRUMgQnVpbGRpbmcsNiBaaG9uZ2d1YW5jdW4gU291dGggU3RyZWV0CisJCQkJQmVpamluZyAgMTAwMDg2CisJCQkJQ0hJTkEKKworMDAtMTgtMjMgICAoaGV4KQkJRGVsdGEgRWxlY3Ryb25pY3MsIEluYy4KKzAwMTgyMyAgICAgKGJhc2UgMTYpCQlEZWx0YSBFbGVjdHJvbmljcywgSW5jLgorCQkJCTE4NiBSdWV5IEt1YW5nIFJvYWQsIE5laWh1LAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC0yNCAgIChoZXgpCQlLaW1hbGRpIEVsZWN0cm9uaWNzLCBTLkwuCiswMDE4MjQgICAgIChiYXNlIDE2KQkJS2ltYWxkaSBFbGVjdHJvbmljcywgUy5MLgorCQkJCUN0cmEuIGRlIFJ1Yu0sIDI5MiBCCisJCQkJUG9sLiBJbmQuIENhbiBHdWl0YXJkCisJCQkJVGVycmFzc2EgQmFyY2Vsb25hIDA4MjI4CisJCQkJU1BBSU4KKworMDAtMTgtMjUgICAoaGV4KQkJUFJJVkFURQorMDAxODI1ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0xOC0yNiAgIChoZXgpCQlDYWxlIEFjY2VzcyBBQgorMDAxODI2ICAgICAoYmFzZSAxNikJCUNhbGUgQWNjZXNzIEFCCisJCQkJQm94IDEzMDcKKwkJCQlTb2xuYSAgU0UtMTcxIDI1CisJCQkJU1dFREVOCisKKzAwLTE4LTI3ICAgKGhleCkJCU5FQyBVTklGSUVEIFNPTFVUSU9OUyBORURFUkxBTkQgQi5WLgorMDAxODI3ICAgICAoYmFzZSAxNikJCU5FQyBVTklGSUVEIFNPTFVUSU9OUyBORURFUkxBTkQgQi5WLgorCQkJCUFOVE9OIFBISUxJUFNXRUcgMQorCQkJCUhJTFZFUlNVTSBOSCAxMjIzS1oKKwkJCQlORVRIRVJMQU5EUworCiswMC0xOC0yOCAgIChoZXgpCQllMnYgdGVjaG5vbG9naWVzIChVSykgbHRkLgorMDAxODI4ICAgICAoYmFzZSAxNikJCWUydiB0ZWNobm9sb2dpZXMgKFVLKSBsdGQuCisJCQkJMTA2IFdhdGVyaG91c2UgTGFuZQorCQkJCUNoZWxtc2ZvcmQgRXNzZXggQ00xIDJRVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE4LTI5ICAgKGhleCkJCUdhdHNvbWV0ZXIKKzAwMTgyOSAgICAgKGJhc2UgMTYpCQlHYXRzb21ldGVyCisJCQkJQ2xhZXMgVGlsbHl3ZWcgMgorCQkJCUhhYXJsZW0gTm9vcmQtSG9sbGFuZCAyMDMxIENXCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTgtMkEgICAoaGV4KQkJVGFpd2FuIFZpZGVvICYgTW9uaXRvcgorMDAxODJBICAgICAoYmFzZSAxNikJCVRhaXdhbiBWaWRlbyAmIE1vbml0b3IKKwkJCQkzRiwgMTQxIEplbiBBaSBSZCBTZWMuIDMKKwkJCQlUYWlwZWkgQ2l0eSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC0yQiAgIChoZXgpCQlTb2Z0aWVyCiswMDE4MkIgICAgIChiYXNlIDE2KQkJU29mdGllcgorCQkJCVRpZGhhciAzCisJCQkJTWlsbGVuaXVtIGJsZGcgZmxvb3IgMTEKKwkJCQlSYSdhbmFuYSBub25lIDQzNjY1CisJCQkJSVNSQUVMCisKKzAwLTE4LTJDICAgKGhleCkJCUFzY2VuZCBOZXR3b3JrcywgSW5jLgorMDAxODJDICAgICAoYmFzZSAxNikJCUFzY2VuZCBOZXR3b3JrcywgSW5jLgorCQkJCU5vLiA0IC0gNCwgTGFuZSA0MTMsIENodW5nQ2hhbiBSb2FkLAorCQkJCUJlblF1YW8gQ2l0eSBUYWlwZWkgMjIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC0yRCAgIChoZXgpCQlBcnRlYyBHcm91cCBP3AorMDAxODJEICAgICAoYmFzZSAxNikJCUFydGVjIEdyb3VwIE/cCisJCQkJVPxyaSAxMEMKKwkJCQlUYWxsaW5uIEhhcmp1bWFhIDExMzEzCisJCQkJRVNUT05JQQorCiswMC0xOC0yRSAgIChoZXgpCQlYU3RyZWFtSEQsIExMQworMDAxODJFICAgICAoYmFzZSAxNikJCVhTdHJlYW1IRCwgTExDCisJCQkJNzkwMEIgV2VzdHBhcmsgRHJpdmUKKwkJCQlTdWl0ZSAyMDBUCisJCQkJTWNMZWFuIFZBIDIyMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0yRiAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxODJGICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zMCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxODMwICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zMSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxODMxICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zMiAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxODMyICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zMyAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxODMzICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zNCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxODM0ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zNSAgIChoZXgpCQlUaG9yYXRlYyAvIElUQworMDAxODM1ICAgICAoYmFzZSAxNikJCVRob3JhdGVjIC8gSVRDCisJCQkJMjY1NiBQYXR0b24gUm9hZAorCQkJCVJvc2V2aWxsZSBNTiA1NTExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMzYgICAoaGV4KQkJUmVsaWFuY2UgRWxlY3RyaWMgTGltaXRlZAorMDAxODM2ICAgICAoYmFzZSAxNikJCVJlbGlhbmNlIEVsZWN0cmljIExpbWl0ZWQKKwkJCQkyLTMtMiBGdWt1dXJhLCBLYW5hemF3YS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIzNi04NjQxCisJCQkJSkFQQU4KKworMDAtMTgtMzcgICAoaGV4KQkJVW5pdmVyc2FsIEFCSVQgQ28uLCBMdGQuCiswMDE4MzcgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIEFCSVQgQ28uLCBMdGQuCisJCQkJN0YsIE5vLiAzMjMgWWFuZ2d1YW5nIFN0LiwKKwkJCQlOZWlodSBUYWlwZWkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC0zOCAgIChoZXgpCQlQYW5BY2Nlc3MgQ29tbXVuaWNhdGlvbnMsSW5jLgorMDAxODM4ICAgICAoYmFzZSAxNikJCVBhbkFjY2VzcyBDb21tdW5pY2F0aW9ucyxJbmMuCisJCQkJRmxvb3IgOCxUb3dlciBCLEdsb2JhbCBUcmFkZSBDZW50ZXIsMzYgQmVpc2FuaHVhbmRvbmdsdSxEb25nY2hlbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nIDEwMDAxMworCQkJCUNISU5BCisKKzAwLTE4LTM5ICAgKGhleCkJCUNpc2NvLUxpbmtzeXMgTExDCiswMDE4MzkgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cyBMTEMKKwkJCQkxMjEgVGhlb3J5CisJCQkJSXJ2aW5lIENBIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zQSAgIChoZXgpCQlXZXN0ZWxsIFRlY2hub2xvZ2llcworMDAxODNBICAgICAoYmFzZSAxNikJCVdlc3RlbGwgVGVjaG5vbG9naWVzCisJCQkJNzUwIE4uIENvbW1vbnMgRHIuCisJCQkJQXVyb3JhIElMIDYwNTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zQiAgIChoZXgpCQlDRU5JVFMgQ28uLCBMdGQuCiswMDE4M0IgICAgIChiYXNlIDE2KQkJQ0VOSVRTIENvLiwgTHRkLgorCQkJCTNGLCBZYW5namFlIEJsZGcuLCAyNjQtMworCQkJCVlhbmdqYWUtRG9uZywgU2VvY2hvLUd1CisJCQkJU2VvdWwgIDEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtM0MgICAoaGV4KQkJRW5jb3JlIFNvZnR3YXJlIExpbWl0ZWQKKzAwMTgzQyAgICAgKGJhc2UgMTYpCQlFbmNvcmUgU29mdHdhcmUgTGltaXRlZAorCQkJCTZGIExlbyBDb21wbGV4CisJCQkJNDQgUmVzaWRlbmN5IENyb3NzIFJvYWQKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MDAyNQorCQkJCUlORElBCisKKzAwLTE4LTNEICAgKGhleCkJCVZlcnRleCBMaW5rIENvcnBvcmF0aW9uCiswMDE4M0QgICAgIChiYXNlIDE2KQkJVmVydGV4IExpbmsgQ29ycG9yYXRpb24KKwkJCQlNZWl0ZXRzdSBGdWRvc2FuIFRha2ViYXNoaSBCbGRnIDZGCisJCQkJMy0xNSBLYW5kYSBOaXNoaWtpY2hvCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtMDA1NAorCQkJCUpBUEFOCisKKzAwLTE4LTNFICAgKGhleCkJCURpZ2lsZW50LCBJbmMKKzAwMTgzRSAgICAgKGJhc2UgMTYpCQlEaWdpbGVudCwgSW5jCisJCQkJMjE1IEUuIE1haW4gU3QuCisJCQkJU3VpdGUgRAorCQkJCVB1bGxtYW4gV0EgOTkxNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTNGICAgKGhleCkJCTJXaXJlLCBJbmMKKzAwMTgzRiAgICAgKGJhc2UgMTYpCQkyV2lyZSwgSW5jCisJCQkJMTcwNCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNDAgICAoaGV4KQkJMyBQaG9lbml4LCBJbmMuCiswMDE4NDAgICAgIChiYXNlIDE2KQkJMyBQaG9lbml4LCBJbmMuCisJCQkJMTMxMzUgTGVlIEphY2tzb24gSHd5CisJCQkJU3VpdGUgMzMwCisJCQkJRmFpcmZheCBWaXJnaW5pYSAyMjAzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNDEgICAoaGV4KQkJSGlnaCBUZWNoIENvbXB1dGVyIENvcnAKKzAwMTg0MSAgICAgKGJhc2UgMTYpCQlIaWdoIFRlY2ggQ29tcHV0ZXIgQ29ycAorCQkJCTIzIEhzaW4gSHVhIFJkLgorCQkJCVRhb3l1YW4gIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtNDIgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTg0MiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MCBWCisJCQkJREVOTUFSSworCiswMC0xOC00MyAgIChoZXgpCQlEYXdldmlzaW9uIEx0ZAorMDAxODQzICAgICAoYmFzZSAxNikJCURhd2V2aXNpb24gTHRkCisJCQkJMTk3IEhpZ2ggU3RyZWV0CisJCQkJQ290dGVuaGFtIENhbWJyaWRnZSBDQjQgOFJYCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTgtNDQgICAoaGV4KQkJSGVhZHMgVXAgVGVjaG5vbG9naWVzLCBJbmMuCiswMDE4NDQgICAgIChiYXNlIDE2KQkJSGVhZHMgVXAgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMjAzMyBDaGVubmF1bHQgRHJpdmUsIFN1aXRlIDEwMAorCQkJCUNhcnJvbGx0b24gVGV4YXMgNzUwMDYtNTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNDUgICAoaGV4KQkJTlBMIFB1bHNhciBMdGQuCiswMDE4NDUgICAgIChiYXNlIDE2KQkJTlBMIFB1bHNhciBMdGQuCisJCQkJWmFoYXJvdmEsIDE4YQorCQkJCVBlbnphICA0NDAwNDQKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMTgtNDYgICAoaGV4KQkJQ3J5cHRvIFMuQS4KKzAwMTg0NiAgICAgKGJhc2UgMTYpCQlDcnlwdG8gUy5BLgorCQkJCVYuIElwaXJvdSA0NQorCQkJCU1hcm91c2kgQXRoZW5zIDE1MTI1CisJCQkJR1JFRUNFCisKKzAwLTE4LTQ3ICAgKGhleCkJCUFjZU5ldCBUZWNobm9sb2d5IEluYy4KKzAwMTg0NyAgICAgKGJhc2UgMTYpCQlBY2VOZXQgVGVjaG5vbG9neSBJbmMuCisJCQkJMTMzIFZpZW5uYSBEci4KKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNDggICAoaGV4KQkJVmVjaW1hIE5ldHdvcmtzIEluYy4KKzAwMTg0OCAgICAgKGJhc2UgMTYpCQlWZWNpbWEgTmV0d29ya3MgSW5jLgorCQkJCTE1MCBDYXJkaW5hbCBQbGFjZQorCQkJCVNhc2thdG9vbiBTayBTN0wgNkg3CisJCQkJQ0FOQURBCisKKzAwLTE4LTQ5ICAgKGhleCkJCVBpZ2VvbiBQb2ludCBTeXN0ZW1zCiswMDE4NDkgICAgIChiYXNlIDE2KQkJUGlnZW9uIFBvaW50IFN5c3RlbXMKKwkJCQkyMTkxIFMuIEVsIENhbWlubyBSZWFsCisJCQkJU3VpdGUgMjA5CisJCQkJT2NlYW5zaWRlIENBIDkyMDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC00QSAgIChoZXgpCQlDYXRjaGVyLCBJbmMuCiswMDE4NEEgICAgIChiYXNlIDE2KQkJQ2F0Y2hlciwgSW5jLgorCQkJCTU4NjQgT3dlbnMgQXZlLgorCQkJCVN1aXRlIDEwMQorCQkJCUNhcmxzYmFkIENBIDkyMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC00QiAgIChoZXgpCQlMYXMgVmVnYXMgR2FtaW5nLCBJbmMuCiswMDE4NEIgICAgIChiYXNlIDE2KQkJTGFzIFZlZ2FzIEdhbWluZywgSW5jLgorCQkJCTQwMDAgV2VzdCBBbGkgQmFiYSBMYW5lLCBTdWl0ZSBECisJCQkJTGFzIFZlZ2FzIE5ldmFkYSA4OTExOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNEMgICAoaGV4KQkJQm9nZW4gQ29tbXVuaWNhdGlvbnMKKzAwMTg0QyAgICAgKGJhc2UgMTYpCQlCb2dlbiBDb21tdW5pY2F0aW9ucworCQkJCTUwIFNwcmluZyBTdC4KKwkJCQlSYW1zZXkgTkogMDc0NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTREICAgKGhleCkJCU5ldGdlYXIgSW5jLgorMDAxODREICAgICAoYmFzZSAxNikJCU5ldGdlYXIgSW5jLgorCQkJCTQ1MDAgR3JlYXQgQW1lcmljYSBQYXJrd2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTRFICAgKGhleCkJCUxpYW5oZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTg0RSAgICAgKGJhc2UgMTYpCQlMaWFuaGUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJM0YsICMxMTksIERhSHUgU2hhblpodWFuZyBTdC4KKwkJCQlOZWlodSBEaXN0cmljdCBUYWlwZWkgQ2l0eSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LTRGICAgKGhleCkJCTggV2F5cyBUZWNobm9sb2d5IENvcnAuCiswMDE4NEYgICAgIChiYXNlIDE2KQkJOCBXYXlzIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkyRi0xLCBOby4gMjE2LCBTZWMuIDMsIFJvb3NldmVsdCBSZC4KKwkJCQlUYWlwZWkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC01MCAgIChoZXgpCQlTZWNmb25lIEtmdAorMDAxODUwICAgICAoYmFzZSAxNikJCVNlY2ZvbmUgS2Z0CisJCQkJNTEgQmVyY3NlbnlpIHN0cgorCQkJCUphc3piZXJlbnkgIDUxMDAKKwkJCQlIVU5HQVJZCisKKzAwLTE4LTUxICAgKGhleCkJCVNXc29mdAorMDAxODUxICAgICAoYmFzZSAxNikJCVNXc29mdAorCQkJCTEzNzU1IFN1bnJpc2UgVmFsbGV5IERyaXZlLCBTdWl0ZSA2MDAKKwkJCQlIZXJuZG9uIFZBIDIwMTcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC01MiAgIChoZXgpCQlTdG9yTGluayBTZW1pY29uZHVjdG9ycywgSW5jLgorMDAxODUyICAgICAoYmFzZSAxNikJCVN0b3JMaW5rIFNlbWljb25kdWN0b3JzLCBJbmMuCisJCQkJMTgwNCBOLiBTaG9yZWxpbmUgQm91bGV2YXJkCisJCQkJU3VpdGUgMjQwCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNTMgICAoaGV4KQkJQXRlcmEgTmV0d29ya3MgTFRELgorMDAxODUzICAgICAoYmFzZSAxNikJCUF0ZXJhIE5ldHdvcmtzIExURC4KKwkJCQkzMSwgSGFiYXJ6ZWwgU3QuCisJCQkJUmFtYXQgSGFjaGF5YWwKKwkJCQlUZWwtQXZpdiAgNjk3MTAKKwkJCQlJU1JBRUwKKworMDAtMTgtNTQgICAoaGV4KQkJQXJnYXJkIENvLiwgTHRkCiswMDE4NTQgICAgIChiYXNlIDE2KQkJQXJnYXJkIENvLiwgTHRkCisJCQkJMjU3MSBMYXJkcHJhbyBSZC4KKwkJCQl3YW5ndGhvbmdsYW5nIEJhbmdrb2sgMTAzMTAKKwkJCQlUSEFJTEFORAorCiswMC0xOC01NSAgIChoZXgpCQlBZXJvbWFyaXRpbWUgU3lzdGVtYmF1IEdtYkgKKzAwMTg1NSAgICAgKGJhc2UgMTYpCQlBZXJvbWFyaXRpbWUgU3lzdGVtYmF1IEdtYkgKKwkJCQlMdWR3aWctRXJoYXJkLVN0ci4gMTYKKwkJCQlELTg1Mzc1IE5ldWZhaHJuIAorCQkJCUdFUk1BTlkKKworMDAtMTgtNTYgICAoaGV4KQkJRXllRmksIEluYworMDAxODU2ICAgICAoYmFzZSAxNikJCUV5ZUZpLCBJbmMKKwkJCQkxNDkgQ29tbW9ud2VhbHRoIERyaXZlCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNTcgICAoaGV4KQkJVW5pbGV2ZXIgUiZECiswMDE4NTcgICAgIChiYXNlIDE2KQkJVW5pbGV2ZXIgUiZECisJCQkJQmxkZy4gNTAKKwkJCQlTaGFybmJyb29rCisJCQkJQmVkZm9yZCBCZWRmb3Jkc2hpcmUgTUs0NCAxTFEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOC01OCAgIChoZXgpCQlUYWdNYXN0ZXIgQUIKKzAwMTg1OCAgICAgKGJhc2UgMTYpCQlUYWdNYXN0ZXIgQUIKKwkJCQlLcm9uYm9yZ3NncuRuZCAxCisJCQkJS2lzdGEgU3RvY2tob2xtIFMtMTY0ODcKKwkJCQlTV0VERU4KKworMDAtMTgtNTkgICAoaGV4KQkJU3RyYXdiZXJyeSBMaW51eCBDby4sTHRkLgorMDAxODU5ICAgICAoYmFzZSAxNikJCVN0cmF3YmVycnkgTGludXggQ28uLEx0ZC4KKwkJCQkxLTI4LTgtMjA0IEhpZ2FzaGlheWFzZQorCQkJCUFkYWNoaWt1IFRva3lvIDEyMC0wMDA0CisJCQkJSkFQQU4KKworMDAtMTgtNUEgICAoaGV4KQkJdUNvbnRyb2wsIEluYy4KKzAwMTg1QSAgICAgKGJhc2UgMTYpCQl1Q29udHJvbCwgSW5jLgorCQkJCTU5MTQgVy4gQ291cnR5YXJkIERyaXZlCisJCQkJU3VpdGUgMjEwCisJCQkJQXVzdGluIFRYIDc4NzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC01QiAgIChoZXgpCQlOZXR3b3JrIENoZW1pc3RyeSwgSW5jCiswMDE4NUIgICAgIChiYXNlIDE2KQkJTmV0d29yayBDaGVtaXN0cnksIEluYworCQkJCTE4MDQgRW1iYXJjYWRlcm8gUmQKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTVDICAgKGhleCkJCUVEUyBMYWIgUHRlIEx0ZAorMDAxODVDICAgICAoYmFzZSAxNikJCUVEUyBMYWIgUHRlIEx0ZAorCQkJCTIwIEF5ZXIgUmFqYWggQ3Jlc2NlbnQKKwkJCQkjMDgtMjYKKwkJCQkxMzk5NjQKKwkJCQlTSU5HQVBPUkUKKworMDAtMTgtNUQgICAoaGV4KQkJVEFJR1VFTiBURUNITk9MT0dZIChTSEVOLVpIRU4pIENPLiwgTFRELgorMDAxODVEICAgICAoYmFzZSAxNikJCVRBSUdVRU4gVEVDSE5PTE9HWSAoU0hFTi1aSEVOKSBDTy4sIExURC4KKwkJCQlOby4gMjMsIFRoZSBUaGlyZCBJbmR1c3RyaWFsIFBhcmsgb2YgWGlhIFZpbGxhZ2UsCisJCQkJR29uZ21pbmcsIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIENpdHksIEd1YW5nZG9uZywgODE1MTA2CisJCQkJQ0hJTkEKKworMDAtMTgtNUUgICAoaGV4KQkJTmV4dGVybSBJbmMuCiswMDE4NUUgICAgIChiYXNlIDE2KQkJTmV4dGVybSBJbmMuCisJCQkJMS0xMi0zLCBTaGliYXVyYSwgTWluYXRvLWt1LAorCQkJCVRva3lvICAxMDUtMDAyMworCQkJCUpBUEFOCisKKzAwLTE4LTVGICAgKGhleCkJCVRBQyBJbmMuCiswMDE4NUYgICAgIChiYXNlIDE2KQkJVEFDIEluYy4KKwkJCQk2NiBOaXNoaWlzaGlnYXRzdWJvY2hvIE5pc2hpbmFuYWp5byBTaGltb2d5b2t1CisJCQkJS3lvdG8gIDYwMC04ODk2CisJCQkJSkFQQU4KKworMDAtMTgtNjAgICAoaGV4KQkJU0lNIFRlY2hub2xvZ3kgR3JvdXAgU2hhbmdoYWkgU2ltY29tIEx0ZC4sCiswMDE4NjAgICAgIChiYXNlIDE2KQkJU0lNIFRlY2hub2xvZ3kgR3JvdXAgU2hhbmdoYWkgU2ltY29tIEx0ZC4sCisJCQkJU0lNIFRlY2hub2xvZ3kgYnVpbGRpbmcsCisJCQkJNzAwIFlpc2hhbiBSZCwgU2hhbmdoYWkgMjAwMjMzCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTE4LTYxICAgKGhleCkJCU9vbWEsIEluYy4KKzAwMTg2MSAgICAgKGJhc2UgMTYpCQlPb21hLCBJbmMuCisJCQkJNTU1IFVuaXZlcnNpdHkgQXZlbnVlCisJCQkJUGFsbyBBbHRvIENBIDk0MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC02MiAgIChoZXgpCQlTZWFnYXRlIFRlY2hub2xvZ3kKKzAwMTg2MiAgICAgKGJhc2UgMTYpCQlTZWFnYXRlIFRlY2hub2xvZ3kKKwkJCQkxMjgwIERpc2MgRHJpdmUKKwkJCQlTaGFrb3BlZSBNTiA1NTM3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNjMgICAoaGV4KQkJVmVyaXRlY2ggRWxlY3Ryb25pY3MgTGltaXRlZAorMDAxODYzICAgICAoYmFzZSAxNikJCVZlcml0ZWNoIEVsZWN0cm9uaWNzIExpbWl0ZWQKKwkJCQk4RiwgNjcsIFNlYy4gMSwgWmhvbmdzaGFuIFJvYWQsIFhpbnpodWFuZywKKwkJCQlUYWlwZWkgIDI0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtNjQgICAoaGV4KQkJQ3liZWN0ZWMgSW5jLgorMDAxODY0ICAgICAoYmFzZSAxNikJCUN5YmVjdGVjIEluYy4KKwkJCQk3MzAsIHJ1ZSBDb21tZXJjaWFsZQorCQkJCVN1aXRlIDIwMAorCQkJCVN0LUplYW4tQ2hyeXNvc3RvbWUgUUMgRzZaIDJDNQorCQkJCUNBTkFEQQorCiswMC0xOC02NSAgIChoZXgpCQlTaWVtZW5zIEhlYWx0aGNhcmUgRGlhZ25vc3RpY3MgTWFudWZhY3R1cmluZyBMdGQKKzAwMTg2NSAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEhlYWx0aGNhcmUgRGlhZ25vc3RpY3MgTWFudWZhY3R1cmluZyBMdGQKKwkJCQlOb3J0aGVybiBSb2FkCisJCQkJQ2hpbHRvbiBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCVN1ZGJ1cnkgU3VmZm9sayBDMDEwIDJYUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE4LTY2ICAgKGhleCkJCUxldXRyb24gVmlzaW9uCiswMDE4NjYgICAgIChiYXNlIDE2KQkJTGV1dHJvbiBWaXNpb24KKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDU3CisJCQkJR2xhdHRicnVnZyBaSCA4MTUyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTgtNjcgICAoaGV4KQkJRXZvbHV0aW9uIFJvYm90aWNzIFJldGFpbAorMDAxODY3ICAgICAoYmFzZSAxNikJCUV2b2x1dGlvbiBSb2JvdGljcyBSZXRhaWwKKwkJCQk0MzMgTi4gRmFpciBPYWtzIEF2ZQorCQkJCVBhc2FkZW5hIENBIDkxMTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC02OCAgIChoZXgpCQlTY2llbnRpZmljIEF0bGFudGEsIEEgQ2lzY28gQ29tcGFueQorMDAxODY4ICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMgQXRsYW50YSwgQSBDaXNjbyBDb21wYW55CisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTY5ICAgKGhleCkJCUtJTkdKSU0KKzAwMTg2OSAgICAgKGJhc2UgMTYpCQlLSU5HSklNCisJCQkJTm8uMTAtMTgsMi1DaG9tZQorCQkJCUhpZ2FzaGktS2FuZGEKKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMS0wMDMxCisJCQkJSkFQQU4KKworMDAtMTgtNkEgICAoaGV4KQkJR2xvYmFsIExpbmsgRGlnaXRhbCBUZWNobm9sb2d5IENvLC5MVEQKKzAwMTg2QSAgICAgKGJhc2UgMTYpCQlHbG9iYWwgTGluayBEaWdpdGFsIFRlY2hub2xvZ3kgQ28sLkxURAorCQkJCVFpYmFveWlkaW5nIEluZC5BcmVhCisJCQkJTGl1Y2hvbmd3ZWkgV2FuamlhbmcgdG93bgorCQkJCURvbmdndWFuIEd1YW5nZG9uZyA1MjMwNTEKKwkJCQlDSElOQQorCiswMC0xOC02QiAgIChoZXgpCQlTYW1idSBDb21tdW5pY3MgQ08uLCBMVEQuCiswMDE4NkIgICAgIChiYXNlIDE2KQkJU2FtYnUgQ29tbXVuaWNzIENPLiwgTFRELgorCQkJCTM4Qi0xTCBOYW1kb25nIEluZHVzdHJpYWwgQ29tcGxleAorCQkJCTYyNiBOYW1jaG9uLWRvbmcsIE5hbWRvbmctZ3UKKwkJCQlJbmNoZW9uICA0MDUtMTAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LTZDICAgKGhleCkJCU5lb25vZGUgQUIKKzAwMTg2QyAgICAgKGJhc2UgMTYpCQlOZW9ub2RlIEFCCisJCQkJQmlibGlvdGVrc2dhdGFuIDExLCAxc3QgZmxvb3IKKwkJCQlTdG9ja2hvbG0gIFMtMTExIDQ2CisJCQkJU1dFREVOCisKKzAwLTE4LTZEICAgKGhleCkJCVpoZW5qaWFuZyBTYXBwaGlyZSBFbGVjdHJvbmljIEluZHVzdHJ5IENPLgorMDAxODZEICAgICAoYmFzZSAxNikJCVpoZW5qaWFuZyBTYXBwaGlyZSBFbGVjdHJvbmljIEluZHVzdHJ5IENPLgorCQkJCVdlaSBTYW4gUm9hZCxEaW5nbWFvIERldmVsb3AgQXJlYQorCQkJCXpoZW5qaWFuZyBqaWFuZ3N1IDIxMjAwOQorCQkJCUNISU5BCisKKzAwLTE4LTZFICAgKGhleCkJCTNDb20gTHRkCiswMDE4NkUgICAgIChiYXNlIDE2KQkJM0NvbSBMdGQKKwkJCQlQZW9wbGVidWlsZGluZyAyCisJCQkJUGVvcGxlYnVpbGRpbmcgRXN0YXRlLCBNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSGVydHMuIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOC02RiAgIChoZXgpCQlTZXRoYSBJbmR1c3RyaWEgRWxldHJvbmljYSBMVERBCiswMDE4NkYgICAgIChiYXNlIDE2KQkJU2V0aGEgSW5kdXN0cmlhIEVsZXRyb25pY2EgTFREQQorCQkJCVJ1YSBBbHZhcm8gZGUgTWFjZWRvIDEzNAorCQkJCVBhcmFkYSBkZSBMdWNhcworCQkJCVJpbyBkZSBKYW5laXJvIFJKIDIxLjI1MC02MjAKKwkJCQlCUkFaSUwKKworMDAtMTgtNzAgICAoaGV4KQkJRTI4IFNoYW5naGFpIExpbWl0ZWQKKzAwMTg3MCAgICAgKGJhc2UgMTYpCQlFMjggU2hhbmdoYWkgTGltaXRlZAorCQkJCTIvRiBFYXN0ZXJuIFRvd2VyCisJCQkJNjg5IEJlaWppbmcgUm9hZCAoRWFzdCkKKwkJCQlTaGFuZ2hhaSAgMjAwMDAxCisJCQkJQ0hJTkEKKworMDAtMTgtNzEgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDE4NzEgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTcyICAgKGhleCkJCUV4cGVydGlzZSBFbmdpbmVlcmluZworMDAxODcyICAgICAoYmFzZSAxNikJCUV4cGVydGlzZSBFbmdpbmVlcmluZworCQkJCTQxODYgU29ycmVudG8gVmFsbGV5IEJsdmQgU3VpdGUgLUoKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTczICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTg3MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTc0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTg3NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTc1ICAgKGhleCkJCUFuYUNpc2UgVGVzdG5vbG9neSBQdGUgTHRkCiswMDE4NzUgICAgIChiYXNlIDE2KQkJQW5hQ2lzZSBUZXN0bm9sb2d5IFB0ZSBMdGQKKwkJCQkzIEJpc2hhbiBQbGFjZSAjMDItMDYKKwkJCQlDUEYgQmlzaGFuIEJ1aWxkaW5nCisJCQkJNTc5ODM4CisJCQkJU0lOR0FQT1JFCisKKzAwLTE4LTc2ICAgKGhleCkJCVdvd1dlZSBMdGQuCiswMDE4NzYgICAgIChiYXNlIDE2KQkJV293V2VlIEx0ZC4KKwkJCQk5MiBHcmFudmlsbGUgUmQuIFN1aXRlIDMwMUEtQworCQkJCUVuZXJneSBQbGF6YQorCQkJCVQuUy5ULiBFYXN0IEtvd2xvb24gCisJCQkJSE9ORyBLT05HCisKKzAwLTE4LTc3ICAgKGhleCkJCUFtcGxleCBBL1MKKzAwMTg3NyAgICAgKGJhc2UgMTYpCQlBbXBsZXggQS9TCisJCQkJU2lsa2Vib3JndmVqIDIKKwkJCQlBYXJodXMgQyAgODAwMAorCQkJCURFTk1BUksKKworMDAtMTgtNzggICAoaGV4KQkJTWFja3dhcmUgR21iSAorMDAxODc4ICAgICAoYmFzZSAxNikJCU1hY2t3YXJlIEdtYkgKKwkJCQlTY2jkbnpsZSAxMworCQkJCVdhaWJsaW5nZW4gQmFkZW4tV/xydHRlbWJlcmcgNzEzMzIKKwkJCQlHRVJNQU5ZCisKKzAwLTE4LTc5ICAgKGhleCkJCWRTeXMKKzAwMTg3OSAgICAgKGJhc2UgMTYpCQlkU3lzCisJCQkJU29lZmxpbmdlciBTdHIuIDEwMAorCQkJCVVsbSBCVyA4OTA3NworCQkJCUdFUk1BTlkKKworMDAtMTgtN0EgICAoaGV4KQkJV2lyZW1vbGQKKzAwMTg3QSAgICAgKGJhc2UgMTYpCQlXaXJlbW9sZAorCQkJCTYwIFdvb2RsYXduIFN0LgorCQkJCVdlc3QgSGFydGZvcmQgQ1QgMDYxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTdCICAgKGhleCkJCTROU1lTIENvLiBMdGQuCiswMDE4N0IgICAgIChiYXNlIDE2KQkJNE5TWVMgQ28uIEx0ZC4KKwkJCQkzRiwgSGFuYSBCbGRnCisJCQkJMTE4LTIsIE9yeXUtRG9uZworCQkJCUd1cm8tR3UgU2VvdWwgMTUyLTEwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC03QyAgIChoZXgpCQlJTlRFUkNST1NTLCBMTEMKKzAwMTg3QyAgICAgKGJhc2UgMTYpCQlJTlRFUkNST1NTLCBMTEMKKwkJCQlOb3Zvc2Vsb3Ygc3RyLiwgNTgvNworCQkJCVJ5YXphbiAgMzkwMDQ5CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTE4LTdEICAgKGhleCkJCUFybW9ybGluayBzaGFuZ2hhaSBDby4gTHRkCiswMDE4N0QgICAgIChiYXNlIDE2KQkJQXJtb3JsaW5rIHNoYW5naGFpIENvLiBMdGQKKwkJCQlOTyA1MTUsIFNoZW5nZnUgcm9hZAorCQkJCVNoYW5naGFpICAyMDExMDgKKwkJCQlDSElOQQorCiswMC0xOC03RSAgIChoZXgpCQlSR0IgU3BlY3RydW0KKzAwMTg3RSAgICAgKGJhc2UgMTYpCQlSR0IgU3BlY3RydW0KKwkJCQk5NTAgTWFyaW5hIFZpbGxhZ2UgUGt3eQorCQkJCUFsYW1lZGEgQ0EgOTQ1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTdGICAgKGhleCkJCVpPRElBTkVUCiswMDE4N0YgICAgIChiYXNlIDE2KQkJWk9ESUFORVQKKwkJCQkyMywgcnVlIGRlcyBGcmFpc2V0dGVzCisJCQkJUEFMQUlTRUFVIEVTU09OTkUgOTExMjAKKwkJCQlGUkFOQ0UKKworMDAtMTgtODAgICAoaGV4KQkJTWF4aW0gSW50ZWdyYXRlZCBDaXJjdWl0cworMDAxODgwICAgICAoYmFzZSAxNikJCU1heGltIEludGVncmF0ZWQgQ2lyY3VpdHMKKwkJCQkyOTAwIExha2VzaWRlIERyaXZlCisJCQkJU3VpdGUgMTAwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTgxICAgKGhleCkJCUJ1eWFuZyBFbGVjdHJvbmljcyBJbmR1c3RyaWFsIENvLiwgTHRkCiswMDE4ODEgICAgIChiYXNlIDE2KQkJQnV5YW5nIEVsZWN0cm9uaWNzIEluZHVzdHJpYWwgQ28uLCBMdGQKKwkJCQk0MzQtMTQwLCBPcnl1LURvbmcKKwkJCQlTZW8tS3UKKwkJCQlJbmNoZW9uICA0MDQtMzAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LTgyICAgKGhleCkJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDE4ODIgICAgIChiYXNlIDE2KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlGMS0yMCxTZWN0aW9uIEYsSHVhd2VpIEJhc2UsQmFudGlhbiwgTG9uZ2dhbmcgRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworMDAtMTgtODMgICAoaGV4KQkJRk9STU9TQTIxIElOQy4KKzAwMTg4MyAgICAgKGJhc2UgMTYpCQlGT1JNT1NBMjEgSU5DLgorCQkJCThGLTYsIE5PLjM1MSwgQ0hVTkcgU0hBTiBSRC4sIFNFQy4yCisJCQkJQ0hVTkcgSE8gQ0lUWQorCQkJCVRBSVBFSSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC04NCAgIChoZXgpCQlGT04KKzAwMTg4NCAgICAgKGJhc2UgMTYpCQlGT04KKwkJCQlBdmRhLiBCcnVzZWxhcywgbi4gNywgUGxhbnRhIDMsIEFsY29iZW5kYXMKKwkJCQlNYWRyaWQgMjgxMDAKKwkJCQlTUEFJTgorCiswMC0xOC04NSAgIChoZXgpCQlBdmlnaWxvbiBDb3Jwb3JhdGlvbgorMDAxODg1ICAgICAoYmFzZSAxNikJCUF2aWdpbG9uIENvcnBvcmF0aW9uCisJCQkJQm94IDM3OCwgMTAxIC0gMTAwMSBXZXN0IEJyb2Fkd2F5CisJCQkJVmFuY291dmVyIEJDIFY2SCA0RTQKKwkJCQlDQU5BREEKKworMDAtMTgtODYgICAoaGV4KQkJRUwtVEVDSCwgSU5DLgorMDAxODg2ICAgICAoYmFzZSAxNikJCUVMLVRFQ0gsIElOQy4KKwkJCQlBLTcxMSwgV09PTElNIExJT04nUyBWQUxMRVksIDM3MS0yOAorCQkJCUdBU0FOLURPTkcsIEdFVU1DSEVPTi1HVSwKKwkJCQlTRU9VTCAgMTUwLTgzNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC04NyAgIChoZXgpCQlNZXRhc3lzdGVtIFNwQQorMDAxODg3ICAgICAoYmFzZSAxNikJCU1ldGFzeXN0ZW0gU3BBCisJCQkJVmlhIE9iZXJkYW4gMTYKKwkJCQlSZWdnaW8gRW1pbGlhIFJFIDQyMTAwCisJCQkJSVRBTFkKKworMDAtMTgtODggICAoaGV4KQkJR09USVZFIGEucy4KKzAwMTg4OCAgICAgKGJhc2UgMTYpCQlHT1RJVkUgYS5zLgorCQkJCVrhbW9ja+EgMzQKKwkJCQlCcmF0aXNsYXZhICA4MTEwMQorCQkJCVNMT1ZBS0lBCisKKzAwLTE4LTg5ICAgKGhleCkJCVdpbk5ldCBTb2x1dGlvbnMgTGltaXRlZAorMDAxODg5ICAgICAoYmFzZSAxNikJCVdpbk5ldCBTb2x1dGlvbnMgTGltaXRlZAorCQkJCVJtODA0LCBLb3JuaGlsbCBNZXRybyBUb3dlciwgUXVhcnJ5IEJheQorCQkJCUhLIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xOC04QSAgIChoZXgpCQlJbmZpbm92YSBMTEMKKzAwMTg4QSAgICAgKGJhc2UgMTYpCQlJbmZpbm92YSBMTEMKKwkJCQk1MSBTdG91dHMgTGFuZSwgVW5pdCAxICYgMgorCQkJCU1vbm1vdXRoIEp1bmN0aW9uIE5ldyBKZXJzZXkgMDg4NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LThCICAgKGhleCkJCURlbGwKKzAwMTg4QiAgICAgKGJhc2UgMTYpCQlEZWxsCisJCQkJT25lIERlbGwgV2F5CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtOEMgICAoaGV4KQkJTW9iaWxlIEFjdGlvbiBUZWNobm9sb2d5IEluYy4KKzAwMTg4QyAgICAgKGJhc2UgMTYpCQlNb2JpbGUgQWN0aW9uIFRlY2hub2xvZ3kgSW5jLgorCQkJCTVGLCBOby4gMjA1LTMsIFNlYy4gMywgQmVpc2hpbiBSZC4KKwkJCQlTaGluZGlhbiBDaXR5LCBUYWlwZWkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtOEQgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTg4RCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgMTc5MAorCQkJCURFTk1BUksKKworMDAtMTgtOEUgICAoaGV4KQkJRWthaGF1LCBJbmMuCiswMDE4OEUgICAgIChiYXNlIDE2KQkJRWthaGF1LCBJbmMuCisJCQkJVGFsbGJlcmdpbmthdHUgMgorCQkJCUhFTFNJTktJIFVVU0lNQUEgMDAxODAKKwkJCQlGSU5MQU5ECisKKzAwLTE4LThGICAgKGhleCkJCU1vbnRnb21lcnkgVGVjaG5vbG9neSwgSW5jLgorMDAxODhGICAgICAoYmFzZSAxNikJCU1vbnRnb21lcnkgVGVjaG5vbG9neSwgSW5jLgorCQkJCTgwMCBFYXN0IENvbW1lcmNlIFN0cmVldAorCQkJCUdyZWVudmlsbGUgQUwgMzYwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTkwICAgKGhleCkJCVJhZGlvQ09NLCBzLnIuby4KKzAwMTg5MCAgICAgKGJhc2UgMTYpCQlSYWRpb0NPTSwgcy5yLm8uCisJCQkJTWlzaWtvdmEgMjIKKwkJCQlCcmF0aXNsYXZhICA4MTEgMDYKKwkJCQlTTE9WQUtJQQorCiswMC0xOC05MSAgIChoZXgpCQlaaG9uZ3NoYW4gR2VuZXJhbCBLLW1hdGUgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzAwMTg5MSAgICAgKGJhc2UgMTYpCQlaaG9uZ3NoYW4gR2VuZXJhbCBLLW1hdGUgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKwkJCQkzL0YgQjEgQnVpbGRpbmcsIEZ1d2FuIEluZC4gWm9uZSBTdW4gV2VuIEVhc3QgUm9hZAorCQkJCVpob25nc2hhbiBHdWFuZ2RvbmcgNTI4NDAzCisJCQkJQ0hJTkEKKworMDAtMTgtOTIgICAoaGV4KQkJYWRzLXRlYyBHbWJICiswMDE4OTIgICAgIChiYXNlIDE2KQkJYWRzLXRlYyBHbWJICisJCQkJUmFpZmZlaXNlbnN0cmFzc2UgMTQKKwkJCQlMZWluZmVsZGVuLUVjaHRlcmRpbmdlbiBCYWRlbi1X/HJ0dGVtYmVyZyA3MDc3MQorCQkJCUdFUk1BTlkKKworMDAtMTgtOTMgICAoaGV4KQkJU0hFTlpIRU4gUEhPVE9OIEJST0FEQkFORCBURUNITk9MT0dZIENPLixMVEQKKzAwMTg5MyAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBQSE9UT04gQlJPQURCQU5EIFRFQ0hOT0xPR1kgQ08uLExURAorCQkJCTIvRiBIaXZhYyBCTEQsMnRoIExhbmdzaGFuIFJkLE5vcnRoIEhpLVRlY2ggSW5kdXN0cmlhbAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xOC05NCAgIChoZXgpCQl6aW1vY29tCiswMDE4OTQgICAgIChiYXNlIDE2KQkJemltb2NvbQorCQkJCTN+NUYsIEJvbmdVaSBCbGRnLCA3Ni0xLCBNdW5qZW9uZy1kb25nCisJCQkJU29uZ3BhZ3UKKwkJCQlTZW91bCAgMTM4LTIwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC05NSAgIChoZXgpCQlIYW5zdW4gVGVjaG5vbG9naWVzIEluYy4KKzAwMTg5NSAgICAgKGJhc2UgMTYpCQlIYW5zdW4gVGVjaG5vbG9naWVzIEluYy4KKwkJCQlSb29tIDMwMSwgQnVpbGRpbmcgMTAzLCBXYW5namluZ2tlaml5dWFuLCBDaGFveWFuZyBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDEwMgorCQkJCUNISU5BCisKKzAwLTE4LTk2ICAgKGhleCkJCUdyZWF0IFdlbGwgRWxlY3Ryb25pYyBMVEQKKzAwMTg5NiAgICAgKGJhc2UgMTYpCQlHcmVhdCBXZWxsIEVsZWN0cm9uaWMgTFRECisJCQkJVGhlIFRoaXJkIEluZHVzdHJpYWwgIEFyZWEKKwkJCQlHdWFubGFuIFRvd24KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTEwCisJCQkJQ0hJTkEKKworMDAtMTgtOTcgICAoaGV4KQkJSkVTUy1MSU5LIFBST0RVQ1RTIENvLiwgTFRECiswMDE4OTcgICAgIChiYXNlIDE2KQkJSkVTUy1MSU5LIFBST0RVQ1RTIENvLiwgTFRECisJCQkJOUYsIE5vLiAxNzYsIEppYW4tWWkgUmQuLCBDaHVuZyBIbyBDaXR5CisJCQkJVGFpcGVpIENvdW50eSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC05OCAgIChoZXgpCQlLSU5HU1RBVEUgRUxFQ1RST05JQ1MgQ09SUE9SQVRJT04KKzAwMTg5OCAgICAgKGJhc2UgMTYpCQlLSU5HU1RBVEUgRUxFQ1RST05JQ1MgQ09SUE9SQVRJT04KKwkJCQkxMEYsIE5vLjY5LTExLCBTZWMuMiwgQ2h1bmcgQ2hlbmcgRS4gUmQuLAorCQkJCVRhbXNodWkgVG93bgorCQkJCVRhaXBlaSBDb3VudHkgIDI1MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtOTkgICAoaGV4KQkJU2hlblpoZW4gamllc2h1biBTY2llbmNlJlRlY2hub2xvZ3kgSW5kdXN0cnkgQ08sTFRELgorMDAxODk5ICAgICAoYmFzZSAxNikJCVNoZW5aaGVuIGppZXNodW4gU2NpZW5jZSZUZWNobm9sb2d5IEluZHVzdHJ5IENPLExURC4KKwkJCQlDaGluYSBHdWFuZ0Rvbmcgc3RhdGUgU2hlbnpoZW4gQ2l0eSBGdXRpYW4gc2VjdGlvbiBOTzE3LiBNZWlsaW4gUm9hZAorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwNDkKKwkJCQlDSElOQQorCiswMC0xOC05QSAgIChoZXgpCQlIQU5BIE1pY3JvbiBJbmMuCiswMDE4OUEgICAgIChiYXNlIDE2KQkJSEFOQSBNaWNyb24gSW5jLgorCQkJCSM5NS0xIFdvbm5hbS1MaSwgVW1ib25nLU15ZW9uCisJCQkJQ2h1bmctTmFtLCBTb3V0aCBLb3JlYS4KKwkJCQlBc2FuLUNpdHkgQ2h1bmctTmFtIDMzNi04NjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtOUIgICAoaGV4KQkJVGhvbXNvbiBJbmMuCiswMDE4OUIgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBJbmMuCisJCQkJMTAxIFdlc3QgMTAzcmQgU3RyZWV0CisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjkwLTExMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTlDICAgKGhleCkJCVdlbGRleCBDb3Jwb3JhdGlvbgorMDAxODlDICAgICAoYmFzZSAxNikJCVdlbGRleCBDb3Jwb3JhdGlvbgorCQkJCTY3NTEgS2F0ZWxsYSBBdmVudWUKKwkJCQlDeXByZXNzIENBIDkwNjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC05RCAgIChoZXgpCQlOYXZjYXN0IEluYy4KKzAwMTg5RCAgICAgKGJhc2UgMTYpCQlOYXZjYXN0IEluYy4KKwkJCQlTdWl0ZSA2MTIsIDY3MTEgTWlzc2lzc2F1Z2EgUm9hZAorCQkJCU1pc3Npc3NhdWdhIE9OIG0yciAxYTMKKwkJCQlDQU5BREEKKworMDAtMTgtOUUgICAoaGV4KQkJT01OSUtFWSBHbWJILgorMDAxODlFICAgICAoYmFzZSAxNikJCU9NTklLRVkgR21iSC4KKwkJCQlGZXJpaHVtZXJzdHJhc3NlIDEzCisJCQkJTGlueiBVcHBlcmF1c3RyaWEgNDA0MAorCQkJCUFVU1RSSUEKKworMDAtMTgtOUYgICAoaGV4KQkJTGVubnRlayBDb3Jwb3JhdGlvbgorMDAxODlGICAgICAoYmFzZSAxNikJCUxlbm50ZWsgQ29ycG9yYXRpb24KKwkJCQk0RiwgMTI1IEd1YW5nTWluZyAzcmQuIFJvYWQKKwkJCQlKaHUgQmVpIEhzaW4gQ2h1IDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtQTAgICAoaGV4KQkJQ2llcm1hIEFzY2Vuc2V1cnMKKzAwMThBMCAgICAgKGJhc2UgMTYpCQlDaWVybWEgQXNjZW5zZXVycworCQkJCTE3IGF2ZW51ZSBndWlnbGlvbmRhIGRlIHNhaW50IGFnYXRoZQorCQkJCU5pY2UgUEFDQSAwNjMwMAorCQkJCUZSQU5DRQorCiswMC0xOC1BMSAgIChoZXgpCQlUaXFpdCBDb21wdXRlcnMsIEluYy4KKzAwMThBMSAgICAgKGJhc2UgMTYpCQlUaXFpdCBDb21wdXRlcnMsIEluYy4KKwkJCQkyMjE1IE9sZCBQYWdlIE1pbGwgUmQKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUEyICAgKGhleCkJCVhJUCBUZWNobm9sb2d5IEFCCiswMDE4QTIgICAgIChiYXNlIDE2KQkJWElQIFRlY2hub2xvZ3kgQUIKKwkJCQlQTyBCb3ggNDM3CisJCQkJSvZua/ZwaW5nIFN3ZWRlbiBTRS0gNTUxIDE2CisJCQkJU1dFREVOCisKKzAwLTE4LUEzICAgKGhleCkJCVpJUFBZIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMThBMyAgICAgKGJhc2UgMTYpCQlaSVBQWSBURUNITk9MT0dZIENPUlAuCisJCQkJMTBGLCBOby4gNTAsIE1pbmN5dWFuIFJkLiwgU2luZGlhbiBDaXR5CisJCQkJVGFpcGVpICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LUE0ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsZSBEZXZpY2VzCiswMDE4QTQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxlIERldmljZXMKKwkJCQk2MDAgTi4gSHd5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1BNSAgIChoZXgpCQlBRGlnaXQgVGVjaG5vbG9naWVzIENvcnAuCiswMDE4QTUgICAgIChiYXNlIDE2KQkJQURpZ2l0IFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCVJtIEQzMDJFLE5vLjE4NSAzRi0yLEt1ci1Xb25nIFJvYWQsCisJCQkJTHVuZy1UYW5nLAorCQkJCVRhby15dWFuLCAgMzI1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC1BNiAgIChoZXgpCQlQZXJzaXN0ZW50IFN5c3RlbXMsIExMQworMDAxOEE2ICAgICAoYmFzZSAxNikJCVBlcnNpc3RlbnQgU3lzdGVtcywgTExDCisJCQkJMTE4IE4uIEhvd2FyZCBTdC4gIzcyCisJCQkJQmFsdGltb3JlIE1EIDIxMjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1BNyAgIChoZXgpCQlZb2dnaWUgU2VjdXJpdHkgU3lzdGVtcyBMVEQuCiswMDE4QTcgICAgIChiYXNlIDE2KQkJWW9nZ2llIFNlY3VyaXR5IFN5c3RlbXMgTFRELgorCQkJCVAuUC5Cb3ggMTU2CisJCQkJQmV0aCBIYWxldnkgIDQyODcwCisJCQkJSVNSQUVMCisKKzAwLTE4LUE4ICAgKGhleCkJCUFuTmVhbCBUZWNobm9sb2d5IEluYy4KKzAwMThBOCAgICAgKGJhc2UgMTYpCQlBbk5lYWwgVGVjaG5vbG9neSBJbmMuCisJCQkJTm8uMzAtMTEsIFd1bmh1YSBSZC4sIE1pbnN5b25nCisJCQkJQ2hpYXlpICA2MjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LUE5ICAgKGhleCkJCUV0aGVybmV0IERpcmVjdCBDb3Jwb3JhdGlvbgorMDAxOEE5ICAgICAoYmFzZSAxNikJCUV0aGVybmV0IERpcmVjdCBDb3Jwb3JhdGlvbgorCQkJCTE5RixOby4zNDUgQ2h1bmcgSG8gUm9hZCwgWXVuZyBIbyBDaXR5CisJCQkJVGFpcGVpICAyMzQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LUFBICAgKGhleCkJCVByb3RlYyBGaXJlIERldGVjdGlvbiBwbGMKKzAwMThBQSAgICAgKGJhc2UgMTYpCQlQcm90ZWMgRmlyZSBEZXRlY3Rpb24gcGxjCisJCQkJUHJvdGVjIEhvdXNlCisJCQkJQ2h1cmNoaWxsIFdheQorCQkJCU5lbHNvbiBMYW5jYXNoaXJlIEJCOSA2UlQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOC1BQiAgIChoZXgpCQlCRUlKSU5HIExIV1QgTUlDUk9FTEVDVFJPTklDUyBJTkMuCiswMDE4QUIgICAgIChiYXNlIDE2KQkJQkVJSklORyBMSFdUIE1JQ1JPRUxFQ1RST05JQ1MgSU5DLgorCQkJCTE4L0YsUVVBTlRVTSBQTEFaQSxOTy4yNyBaSEkgQ0hVTiBSRC4sSEFJIERJQU4gRElTVFJJQ1QsQkVJSklORworCQkJCUNISU5BCisKKzAwLTE4LUFDICAgKGhleCkJCVNoYW5naGFpIEppYW8gRGEgSElTWVMgVGVjaG5vbG9neSBDby4gTHRkLgorMDAxOEFDICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEppYW8gRGEgSElTWVMgVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCTdGIEhhb3JhbiBIaVRlY2ggQmxkZy4sIE5vLjE5NTQgSHVhc2hhbiBSb2FkCisJCQkJc2hhbmdoYWkgeHVodWkgMjAwMDMwCisJCQkJQ0hJTkEKKworMDAtMTgtQUQgICAoaGV4KQkJTklERUMgU0FOS1lPIENPUlBPUkFUSU9OCiswMDE4QUQgICAgIChiYXNlIDE2KQkJTklERUMgU0FOS1lPIENPUlBPUkFUSU9OCisJCQkJNTMyOSwgU2hpbW9zdXdhLW1hY2hpLCBTdXdhLWd1bgorCQkJCU5hZ2FubyAzOTMtODUxMQorCQkJCUpBUEFOCisKKzAwLTE4LUFFICAgKGhleCkJCVRWVCBDTy4sTFRECiswMDE4QUUgICAgIChiYXNlIDE2KQkJVFZUIENPLixMVEQKKwkJCQk1L0YsTm9ydGggQmxvY2ssQ0UgTGlnaHRpbmcgSG91c2UKKwkJCQlIaS10ZWNoIFBhcmssIE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODAyNgorCQkJCUNISU5BCisKKzAwLTE4LUFGICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDE4QUYgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWktQ2l0eSBHeWVvbmctQnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtQjAgICAoaGV4KQkJTm9ydGVsCiswMDE4QjAgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTE4LUIxICAgKGhleCkJCUlCTSBDb3JwCiswMDE4QjEgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkyMDUxIE1pc3Npb24gQ29sbGVnZSBCbHZkIAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1CMiAgIChoZXgpCQlBREVVTklTIFJGCiswMDE4QjIgICAgIChiYXNlIDE2KQkJQURFVU5JUyBSRgorCQkJCTI4MyBSdWUgTkVFTAorCQkJCUNST0xMRVMgSVNFUkUgMzg5MjAKKwkJCQlGUkFOQ0UKKworMDAtMTgtQjMgICAoaGV4KQkJVEVDIFdpekhvbWUgQ28uLCBMdGQuCiswMDE4QjMgICAgIChiYXNlIDE2KQkJVEVDIFdpekhvbWUgQ28uLCBMdGQuCisJCQkJMThmbC4sIEluLVNvbmcgYmxkZy4sIDE5NC0xNSwKKwkJCQlIZW9oeXVuLURvbmcsIDFHYSwgSnVuZy1HdQorCQkJCVNlb3VsICAxMDAtOTUyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LUI0ICAgKGhleCkJCURhd29uIE1lZGlhIEluYy4KKzAwMThCNCAgICAgKGJhc2UgMTYpCQlEYXdvbiBNZWRpYSBJbmMuCisJCQkJUm01MDMuIHdvb2xpbSBlLWJpeiBjZW50ZXIgMTcwLTUsIEd1cm8zZG9uZyBHdXJvZ3UsCisJCQkJU2VvdWwgIDE1Mi03NjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtQjUgICAoaGV4KQkJTWFnbmEgQ2FydGEKKzAwMThCNSAgICAgKGJhc2UgMTYpCQlNYWduYSBDYXJ0YQorCQkJCU5hcml0YXdlZyAxMjYKKwkJCQlBbXN0ZXJkYW0gTm9vcmQgSG9sbGFuZCAxMDQzIENBCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTgtQjYgICAoaGV4KQkJUzNDLCBJbmMuCiswMDE4QjYgICAgIChiYXNlIDE2KQkJUzNDLCBJbmMuCisJCQkJMTAxMCBTdGV3YXJ0IERyLgorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1CNyAgIChoZXgpCQlEMyBMRUQsIExMQworMDAxOEI3ICAgICAoYmFzZSAxNikJCUQzIExFRCwgTExDCisJCQkJMzgwIE1vdW50YWluIFJkCisJCQkJU3VpdGUgMTQxMgorCQkJCVVuaW9uIENpdHkgTkogMDcwODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUI4ICAgKGhleCkJCU5ldyBWb2ljZSBJbnRlcm5hdGlvbmFsIEFHCiswMDE4QjggICAgIChiYXNlIDE2KQkJTmV3IFZvaWNlIEludGVybmF0aW9uYWwgQUcKKwkJCQlTdC4gR2FsbGVyc3RyYXNzZSA4CisJCQkJTGFjaGVuIFNaIDg4NTMKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xOC1COSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE4QjkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1CQSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE4QkEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1CQiAgIChoZXgpCQlFbGl3ZWxsIENvbnRyb2xzIHNybAorMDAxOEJCICAgICAoYmFzZSAxNikJCUVsaXdlbGwgQ29udHJvbHMgc3JsCisJCQkJVmlhIGRlbGwnSW5kdXN0cmlhLCAxNQorCQkJCVBpZXZlIGQnQWxwYWdvIEJlbGx1bm8gMzIwMTAKKwkJCQlJVEFMWQorCiswMC0xOC1CQyAgIChoZXgpCQlaQU8gTlZQIEJvbGlkCiswMDE4QkMgICAgIChiYXNlIDE2KQkJWkFPIE5WUCBCb2xpZAorCQkJCVBpb25lcnNrYXlhIHN0ci4sIDQKKwkJCQlLb3JvbHlvdiBNb3Njb3cgcmVnaW9uIDE0MTA3MAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xOC1CRCAgIChoZXgpCQlTSEVOWkhFTiBEVkJXT1JMRCBURUNITk9MT0dZIENPLiwgTFRELgorMDAxOEJEICAgICAoYmFzZSAxNikJCVNIRU5aSEVOIERWQldPUkxEIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJMk5EIEZMT09SLCBCVUlMRElORyBBLCBRSU5HSFUgWElOUUlBTyBJTkRVU1RSWSBBUkVBLAorCQkJCUxPTkdIVUEsIEJBTyBBTiBESVNUUklDVAorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyA1MTgwMDAKKwkJCQlDSElOQQorCiswMC0xOC1CRSAgIChoZXgpCQlBTlNBIENvcnBvcmF0aW9uCiswMDE4QkUgICAgIChiYXNlIDE2KQkJQU5TQSBDb3Jwb3JhdGlvbgorCQkJCTE3Ri4sIE5vLjczOCwgQ2h1bmcgQ2hlbmcgUmQuCisJCQkJQ2h1bmcgSG8gQ2l0eSwgVGFpcGVpIENvdW50eSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC1CRiAgIChoZXgpCQlFc3NlbmNlIFRlY2hub2xvZ3kgU29sdXRpb24sIEluYy4KKzAwMThCRiAgICAgKGJhc2UgMTYpCQlFc3NlbmNlIFRlY2hub2xvZ3kgU29sdXRpb24sIEluYy4KKwkJCQlCMSwgTm8uIDIwNywgQmVpc2luIFJkLiwgU2VjLiAzCisJCQkJU2luZGlhbiwgVGFpcGVpIENvdW50eSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC1DMCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxOEMwICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtQzEgICAoaGV4KQkJQWxtaXRlYyBJbmZvcm3hdGljYSBlIENvbelyY2lvIEx0ZGEuCiswMDE4QzEgICAgIChiYXNlIDE2KQkJQWxtaXRlYyBJbmZvcm3hdGljYSBlIENvbelyY2lvIEx0ZGEuCisJCQkJNDYxLCBGcmFuY2lzY28gZGUgTW9yYWlzIFN0LgorCQkJCVPjbyBQYXVsbyAgMDQ3MTQtMDEwCisJCQkJQlJBWklMCisKKzAwLTE4LUMyICAgKGhleCkJCUZpcmV0aWRlLCBJbmMKKzAwMThDMiAgICAgKGJhc2UgMTYpCQlGaXJldGlkZSwgSW5jCisJCQkJMTY3OTUgTGFyayBBdiwgU3VpdGUgMjAwCisJCQkJTG9zIEdhdG9zIENBIDk1MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1DMyAgIChoZXgpCQlDJlMgTWljcm93YXZlCiswMDE4QzMgICAgIChiYXNlIDE2KQkJQyZTIE1pY3Jvd2F2ZQorCQkJCVN1bnRlY2ggQ2l0eSA4dGggZmxvb3IsIFNhbmcgRGFlIFdvbi1Eb25nLCBKdW5nIFdvbi1HdQorCQkJCVN1bmduYW0gR3l1bmdnaS1EbyA4MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC1DNCAgIChoZXgpCQlSYWJhIFRlY2hub2xvZ2llcyBMTEMKKzAwMThDNCAgICAgKGJhc2UgMTYpCQlSYWJhIFRlY2hub2xvZ2llcyBMTEMKKwkJCQk4ODMwIFN0YW5mb3JkIEJsdmQgU3VpdGUgMjA1CisJCQkJQ29sdW1iaWEgTWFyeWxhbmQgMjEwNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUM1ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDE4QzUgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIDE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTE4LUM2ICAgKGhleCkJCU9QVyBGdWVsIE1hbmFnZW1lbnQgU3lzdGVtcworMDAxOEM2ICAgICAoYmFzZSAxNikJCU9QVyBGdWVsIE1hbmFnZW1lbnQgU3lzdGVtcworCQkJCTY5MDAgU2FudGEgRmUgRHJpdmUKKwkJCQlIb2Rna2lucyBJbGxpbm9pcyA2MDUyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtQzcgICAoaGV4KQkJUmVhbCBUaW1lIEF1dG9tYXRpb24KKzAwMThDNyAgICAgKGJhc2UgMTYpCQlSZWFsIFRpbWUgQXV0b21hdGlvbgorCQkJCTI4MjUgTiBNYXlmYWlyIFJkIFN0ZSAxMQorCQkJCVdhdXdhdG9zYSBXSSA1MzIyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtQzggICAoaGV4KQkJSVNPTkFTIEluYy4KKzAwMThDOCAgICAgKGJhc2UgMTYpCQlJU09OQVMgSW5jLgorCQkJCTYzMjUgR3VucGFyayBEcml2ZQorCQkJCVN1aXRlIDEwMQorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUM5ICAgKGhleCkJCUVPcHMgVGVjaG5vbG9neSBMaW1pdGVkCiswMDE4QzkgICAgIChiYXNlIDE2KQkJRU9wcyBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlSb29tIDIwMDEsIEZhaXJtb250IEhvdXNlLAorCQkJCTggQ290dG9uIFRyZWUgRHJpdmUsIENlbnRyYWwsCisJCQkJSG9uZyBLb25nICAKKwkJCQlIT05HIEtPTkcKKworMDAtMTgtQ0EgICAoaGV4KQkJVmlwcmluZXQgR21iSAorMDAxOENBICAgICAoYmFzZSAxNikJCVZpcHJpbmV0IEdtYkgKKwkJCQlCYXNpbGlrYXN0cmFzc2UgMworCQkJCUJpbmdlbiBhbSBSaGVpbiAgNTU0MTEKKwkJCQlHRVJNQU5ZCisKKzAwLTE4LUNCICAgKGhleCkJCVRlY29iZXN0IFRlY2hub2xvZ3kgTGltaXRlZAorMDAxOENCICAgICAoYmFzZSAxNikJCVRlY29iZXN0IFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCTUzL0YuLEJsb2NrIEEsVW5pdGVkIFBsYXphLAorCQkJCU5vLjUwMjIsQmluIEhlIFJvYWQKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDI2CisJCQkJQ0hJTkEKKworMDAtMTgtQ0MgICAoaGV4KQkJQVhJT0hNIFNBUworMDAxOENDICAgICAoYmFzZSAxNikJCUFYSU9ITSBTQVMKKwkJCQkxIFJVRSBEJ0FSQ1VFSUwKKwkJCQlNT05UUk9VR0UgIDkyMTIwCisJCQkJRlJBTkNFCisKKzAwLTE4LUNEICAgKGhleCkJCUVyYWUgRWxlY3Ryb25pY3MgSW5kdXN0cnkgQ28uLCBMdGQKKzAwMThDRCAgICAgKGJhc2UgMTYpCQlFcmFlIEVsZWN0cm9uaWNzIEluZHVzdHJ5IENvLiwgTHRkCisJCQkJIzM3MS01MSwgR2FzYW4tZG9uZworCQkJCUdldW1jaGVuLWd1IFNlb3VsIDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtQ0UgICAoaGV4KQkJRHJlYW10ZWNoIENvLiwgTHRkCiswMDE4Q0UgICAgIChiYXNlIDE2KQkJRHJlYW10ZWNoIENvLiwgTHRkCisJCQkJIzM0MC01LCBZYW5nLWRhbmcgUmksIEppay1zYW4gTXllb24KKwkJCQlDaGVvbi1hbiBzaSBDaHVuZy1OYW0gMzMwODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LUNGICAgKGhleCkJCUJhbGRvciBFbGVjdHJpYyBDb21wYW55CiswMDE4Q0YgICAgIChiYXNlIDE2KQkJQmFsZG9yIEVsZWN0cmljIENvbXBhbnkKKwkJCQk2MDAgUy4gWmVybyBTdC4KKwkJCQlGb3J0IFNtaXRoIEFSIDcyOTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1EMCAgIChoZXgpCQlBdFJvYWQsICBBIFRyaW1ibGUgQ29tcGFueQorMDAxOEQwICAgICAoYmFzZSAxNikJCUF0Um9hZCwgIEEgVHJpbWJsZSBDb21wYW55CisJCQkJNDcwNzEgQmF5c2lkZSBQYXJrd2F5CisJCQkJRnJlbW9udCBDYWxpZm9ybmlhIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1EMSAgIChoZXgpCQlTaWVtZW5zIEhvbWUgJiBPZmZpY2UgQ29tbS4gRGV2aWNlcworMDAxOEQxICAgICAoYmFzZSAxNikJCVNpZW1lbnMgSG9tZSAmIE9mZmljZSBDb21tLiBEZXZpY2VzCisJCQkJNDg0OSBBbHBoYSBSZC4KKwkJCQlEYWxsYXMgVGV4YXMgNzUyNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUQyICAgKGhleCkJCUhpZ2gtR2FpbiBBbnRlbm5hcyBMTEMKKzAwMThEMiAgICAgKGJhc2UgMTYpCQlIaWdoLUdhaW4gQW50ZW5uYXMgTExDCisJCQkJMTE2NzkgUy4gQ29ybW9yYW50IENpcmNsZQorCQkJCVBhcmtlciBDTyA4MDEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtRDMgICAoaGV4KQkJVEVBTUNBU1QKKzAwMThEMyAgICAgKGJhc2UgMTYpCQlURUFNQ0FTVAorCQkJCUNlbnRyZSBFc3BhY2UgUGVyZm9ybWFuY2UKKwkJCQlTYWludCBHcmVnb2lyZSAgMzU3NjkKKwkJCQlGUkFOQ0UKKworMDAtMTgtRDQgICAoaGV4KQkJVW5pZmllZCBEaXNwbGF5IEludGVyZmFjZSBTSUcKKzAwMThENCAgICAgKGJhc2UgMTYpCQlVbmlmaWVkIERpc3BsYXkgSW50ZXJmYWNlIFNJRworCQkJCTE1MjAxIFNXIEdyZWVuYnJpZXIgUGFya3dheQorCQkJCUJlYXZlcnRvbiBPcmVnb24gOTcwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUQ1ICAgKGhleCkJCVJFSUdOQ09NCiswMDE4RDUgICAgIChiYXNlIDE2KQkJUkVJR05DT00KKwkJCQkxNEYgS2FtY28gWWFuamFlIFRvd2VyLCA5NDktMworCQkJCURvZ29rIDEtZG9uZ20sIEdhbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTczOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC1ENiAgIChoZXgpCQlTd2lybG5ldCBBL1MKKzAwMThENiAgICAgKGJhc2UgMTYpCQlTd2lybG5ldCBBL1MKKwkJCQlEaXBsb212ZWogMzgxCisJCQkJTHluZ2J5ICBESy0yODAwCisJCQkJREVOTUFSSworCiswMC0xOC1ENyAgIChoZXgpCQlKYXZhZCBOYXZpZ2F0aW9uIFN5c3RlbXMgSW5jLgorMDAxOEQ3ICAgICAoYmFzZSAxNikJCUphdmFkIE5hdmlnYXRpb24gU3lzdGVtcyBJbmMuCisJCQkJMTczMSBUZWNobm9sb2d5IERyaXZlLCBTdWl0ZSA2ODAKKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtRDggICAoaGV4KQkJQVJDSCBNRVRFUiBDb3Jwb3JhdGlvbgorMDAxOEQ4ICAgICAoYmFzZSAxNikJCUFSQ0ggTUVURVIgQ29ycG9yYXRpb24KKwkJCQk0RiwgTm8uMy0yLCBJbmR1c3RyeSBFLiBSZC4KKwkJCQk5LEhzaW5jaHUgU2NpZW5jZSBQYXJrCisJCQkJSHNpbmNodSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC1EOSAgIChoZXgpCQlTYW50b3NoYSBJbnRlcm5hdG9uYWwsIEluYworMDAxOEQ5ICAgICAoYmFzZSAxNikJCVNhbnRvc2hhIEludGVybmF0b25hbCwgSW5jCisJCQkJMzg0MyBTLiBCcmlzdG9sIFN0LiAjMjQyCisJCQkJU2FudGEgQW5hIENBIDkyNzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1EQSAgIChoZXgpCQlBTUJFUiB3aXJlbGVzcyBHbWJICiswMDE4REEgICAgIChiYXNlIDE2KQkJQU1CRVIgd2lyZWxlc3MgR21iSAorCQkJCUFsYmluLUtvZWJpcy1TdHIuIDE4CisJCQkJS29lbG4gIDUxMTQ3CisJCQkJR0VSTUFOWQorCiswMC0xOC1EQiAgIChoZXgpCQlFUEwgVGVjaG5vbG9neSBMdGQKKzAwMThEQiAgICAgKGJhc2UgMTYpCQlFUEwgVGVjaG5vbG9neSBMdGQKKwkJCQlMb25nRG9uZyxMb25nZ2FuZyBEaXN0cmljdAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMTYKKwkJCQlDSElOQQorCiswMC0xOC1EQyAgIChoZXgpCQlQcm9zdGFyIENvLiwgTHRkLgorMDAxOERDICAgICAoYmFzZSAxNikJCVByb3N0YXIgQ28uLCBMdGQuCisJCQkJQS03MDMgVGVjaG5vdG93biwgMjUwLTMgSGFneWUtZG9uZywgTm93b24tZ3UKKwkJCQlTZW91bCAgMTM5LTIzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC1ERCAgIChoZXgpCQlTaWxpY29uZHVzdCBFbmdpbmVlcmluZyBMdGQKKzAwMThERCAgICAgKGJhc2UgMTYpCQlTaWxpY29uZHVzdCBFbmdpbmVlcmluZyBMdGQKKwkJCQlQTyBCb3ggNzQtMjk5CisJCQkJTWFya2V0IFJkCisJCQkJQXVja2xhbmQgIAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTE4LURFICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDE4REUgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE4LURGICAgKGhleCkJCVRoZSBNb3JleSBDb3Jwb3JhdGlvbgorMDAxOERGICAgICAoYmFzZSAxNikJCVRoZSBNb3JleSBDb3Jwb3JhdGlvbgorCQkJCTEwMCBNb3JleSBEcml2ZQorCQkJCVdvb2RyaWRnZSBJTCA2MDUxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtRTAgICAoaGV4KQkJQU5BVkVPCiswMDE4RTAgICAgIChiYXNlIDE2KQkJQU5BVkVPCisJCQkJTGVzIENhcnLpcyBkdSBwYXJjCisJCQkJMTAgcnVlIGRlcyBSb3Np6XJpc3RlcworCQkJCUNIQU1QQUdORSBhdSBNT05UIEQnT1IgUmj0bmUgRi02OTQxMAorCQkJCUZSQU5DRQorCiswMC0xOC1FMSAgIChoZXgpCQlWZXJrZXJrIFNlcnZpY2UgU3lzdGVtZW4KKzAwMThFMSAgICAgKGJhc2UgMTYpCQlWZXJrZXJrIFNlcnZpY2UgU3lzdGVtZW4KKwkJCQlNb2xlbnZsaWV0IDEKKwkJCQlad2lqbmRyZWNodCBadWlkLUhvbGxhbmQgTkwtMzMzNUxICisJCQkJTkVUSEVSTEFORFMKKworMDAtMTgtRTIgICAoaGV4KQkJVG9wZGF0YSBTaXN0ZW1hcyBkZSBBdXRvbWFjYW8gTHRkYQorMDAxOEUyICAgICAoYmFzZSAxNikJCVRvcGRhdGEgU2lzdGVtYXMgZGUgQXV0b21hY2FvIEx0ZGEKKwkJCQlSdWEgRHIgQ2FydmFsaG8gQ2hhdmVzLCA2NjIKKwkJCQlDdXJpdGliYSBQUiA4MC4yMjAtMDEwCisJCQkJQlJBWklMCisKKzAwLTE4LUUzICAgKGhleCkJCVZpc3VhbGdhdGUgU3lzdGVtcywgSW5jLgorMDAxOEUzICAgICAoYmFzZSAxNikJCVZpc3VhbGdhdGUgU3lzdGVtcywgSW5jLgorCQkJCTY0IEJha2Vyc2ZpZWxkIFN0cmVldAorCQkJCVRvcm9udG8gT250YXJpbyBNM0ogMlc3CisJCQkJQ0FOQURBCisKKzAwLTE4LUU0ICAgKGhleCkJCVlJR1VBTkcKKzAwMThFNCAgICAgKGJhc2UgMTYpCQlZSUdVQU5HCisJCQkJMy9GTC5JbmR1c3RyeSB6b25lLEZ1eGlubGluLEhhbmdjaGVuZyxYaXhpYW5nLEJhb2FuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyNgorCQkJCUNISU5BCisKKzAwLTE4LUU1ICAgKGhleCkJCUFkaG9jbyBBRworMDAxOEU1ICAgICAoYmFzZSAxNikJCUFkaG9jbyBBRworCQkJCVRlY2hub3BhcmsKKwkJCQlKYWVnZXJzdHIuIDIKKwkJCQlXaW50ZXJ0aHVyIFpIIENILTg0MDYgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTgtRTYgICAoaGV4KQkJQ29tcHV0ZXIgSGFyZHdhcmUgRGVzaWduIFNJQQorMDAxOEU2ICAgICAoYmFzZSAxNikJCUNvbXB1dGVyIEhhcmR3YXJlIERlc2lnbiBTSUEKKwkJCQlEemVsemF2YXMgMTIwaQorCQkJCVJpZ2EgIExWLTEwMjEKKwkJCQlMQVRWSUEKKworMDAtMTgtRTcgICAoaGV4KQkJQ2FtZW8gQ29tbXVuaWNhdGlvbnMsIElOQy4KKzAwMThFNyAgICAgKGJhc2UgMTYpCQlDYW1lbyBDb21tdW5pY2F0aW9ucywgSU5DLgorCQkJCU5PLjQyLCBTZWMuIDYsIE1pbmN5dWFuIEUuIFJkLgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC1FOCAgIChoZXgpCQlIYWNldHJvbiBDb3Jwb3JhdGlvbgorMDAxOEU4ICAgICAoYmFzZSAxNikJCUhhY2V0cm9uIENvcnBvcmF0aW9uCisJCQkJTm8uIDU0MiwKKwkJCQlTZWMuMSwgWWFuZy1IVSBSZCwKKwkJCQlZYW5nLU1laSwgVGFvLVl1YW4sIDMyNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtRTkgICAoaGV4KQkJTnVtYXRhIENvcnBvcmF0aW9uCiswMDE4RTkgICAgIChiYXNlIDE2KQkJTnVtYXRhIENvcnBvcmF0aW9uCisJCQkJOC0yLTM5IG5hbmtvLWhpZ2FzaGkKKwkJCQlTdW1pbm9lLWt1CisJCQkJT3Nha2Etc2hpIE9zYWthLWZ1IDU1OS0wMDMxCisJCQkJSkFQQU4KKworMDAtMTgtRUEgICAoaGV4KQkJQWxsdGVjIEdtYkgKKzAwMThFQSAgICAgKGJhc2UgMTYpCQlBbGx0ZWMgR21iSAorCQkJCUFuIGRlciBUcmF2ZSAyNy0zMQorCQkJCVNlbG1zZG9yZiBNZWNrbGVuYnVyZy1Wb3Jwb21tZXJuIDIzOTIzCisJCQkJR0VSTUFOWQorCiswMC0xOC1FQiAgIChoZXgpCQlCcm9WaXMgV2lyZWxlc3MgTmV0d29ya3MKKzAwMThFQiAgICAgKGJhc2UgMTYpCQlCcm9WaXMgV2lyZWxlc3MgTmV0d29ya3MKKwkJCQkxOTkyNSBTdGV2ZW5zIENyZWVrIEJsdmQKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUVDICAgKGhleCkJCVdlbGRpbmcgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxOEVDICAgICAoYmFzZSAxNikJCVdlbGRpbmcgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTI0Nzc1IENyZXN0dmlldyBDb3VydAorCQkJCUZhcm1pbmd0b24gSGlsbHMgTUkgNDgzMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUVEICAgKGhleCkJCUFjY3V0ZWNoIFVsdHJhc3lzdGVtcyBDby4sIEx0ZC4KKzAwMThFRCAgICAgKGJhc2UgMTYpCQlBY2N1dGVjaCBVbHRyYXN5c3RlbXMgQ28uLCBMdGQuCisJCQkJMTFGLTQsIE5vLiAxNTAsCisJCQkJQ0hJRU4tWUkgUk9BRCwKKwkJCQlDSFVORy1ITyBDSVRZLCBUQUlQRUkgSFNJRU4sIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtRUUgICAoaGV4KQkJVmlkZW9sb2d5IEltYWdpbmcgU29sdXRpb25zLCBJbmMuCiswMDE4RUUgICAgIChiYXNlIDE2KQkJVmlkZW9sb2d5IEltYWdpbmcgU29sdXRpb25zLCBJbmMuCisJCQkJMzcgTSBMYXJrIEluZHVzdHJpYWwgUGFya3dheQorCQkJCUdyZWVudmlsbGUgUkkgMDI4MjgtMzAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtRUYgICAoaGV4KQkJRXNjYXBlIENvbW11bmljYXRpb25zLCBJbmMuCiswMDE4RUYgICAgIChiYXNlIDE2KQkJRXNjYXBlIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMjYxNSBQYWNpZmljIENvYXN0IEh3eQorCQkJCVN0ZSAzMjkKKwkJCQlIZXJtb3NhIEJlYWNoIENBIDkwMjU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1GMCAgIChoZXgpCQlKT1lUT1RPIENvLiwgTHRkLgorMDAxOEYwICAgICAoYmFzZSAxNikJCUpPWVRPVE8gQ28uLCBMdGQuCisJCQkJM0YgU3VuZ3dvbyBCbGRnLiA3MTctMywgU29vc2VvLURvbmcKKwkJCQlLYW5nbmFtLUd1CisJCQkJU2VvdWwgIDEzNS0yMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtRjEgICAoaGV4KQkJQ2h1bmljaGkgRGVuc2hpIENvLixMVEQuCiswMDE4RjEgICAgIChiYXNlIDE2KQkJQ2h1bmljaGkgRGVuc2hpIENvLixMVEQuCisJCQkJMSBEZW5qaXlhbWEKKwkJCQlOYXJ1bWkgY2hvIE1pZG9yaSBrdQorCQkJCU5hZ295YSBBaWNoaSA0NTgtODUyNQorCQkJCUpBUEFOCisKKzAwLTE4LUYyICAgKGhleCkJCUJlaWppbmcgVGlhbnl1IENvbW11bmljYXRpb24gRXF1aXBtZW50IENvLiwgTHRkCiswMDE4RjIgICAgIChiYXNlIDE2KQkJQmVpamluZyBUaWFueXUgQ29tbXVuaWNhdGlvbiBFcXVpcG1lbnQgQ28uLCBMdGQKKwkJCQkyN3RoIEZsb29yLCBUZW5nZGEgUGxhemEKKwkJCQlYaXpoaW1lbmd3YWkgU3RyZWV0LCBIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDQ0CisJCQkJQ0hJTkEKKworMDAtMTgtRjMgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCiswMDE4RjMgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdQorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC1GNCAgIChoZXgpCQlFTyBURUNITklDUyBDby4sIEx0ZC4KKzAwMThGNCAgICAgKGJhc2UgMTYpCQlFTyBURUNITklDUyBDby4sIEx0ZC4KKwkJCQk4NjQtNCwgS3dhbnlhbmcgMi1Eb25nCisJCQkJRG9uZ2FuLUd1CisJCQkJQW55YW5nIEt5ZW9uZ2dpLURvIDQzMS0wNjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtRjUgICAoaGV4KQkJU2hlbnpoZW4gU3RyZWFtaW5nIFZpZGVvIFRlY2hub2xvZ3kgQ29tcGFueSBMaW1pdGVkCiswMDE4RjUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gU3RyZWFtaW5nIFZpZGVvIFRlY2hub2xvZ3kgQ29tcGFueSBMaW1pdGVkCisJCQkJNS9GLCBCbG9jayAzLCBTb2Z0d2FyZSBQYXJ0IE5vLjEsIEtlamkgTWlkZGxlIDIgUm9hZCwKKwkJCQlTaGVuemhlbiBIaS1UZWNoIEluZHVzdHJpYWwgUGFyaworCQkJCVNoZW56aGVuIEdhdW5nRG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xOC1GNiAgIChoZXgpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorMDAxOEY2ICAgICAoYmFzZSAxNikJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCisJCQkJUHJpbnMgQm91ZGV3aWpubGFhbiA0NworCQkJCUVkZWdlbSBBbnR3ZXJwIEItMjY1MAorCQkJCUJFTEdJVU0KKworMDAtMTgtRjcgICAoaGV4KQkJS2FtZWxlb24gVGVjaG5vbG9naWVzCiswMDE4RjcgICAgIChiYXNlIDE2KQkJS2FtZWxlb24gVGVjaG5vbG9naWVzCisJCQkJMjE3LCBydWUgU3QgSG9ub3LpCisJCQkJUGFyaXMgIDc1MDAxCisJCQkJRlJBTkNFCisKKzAwLTE4LUY4ICAgKGhleCkJCUNpc2NvLUxpbmtzeXMgTExDCiswMDE4RjggICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cyBMTEMKKwkJCQkxMjEgVGhlb3J5IERyaXZlCisJCQkJSXJ2aW5lIENBIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1GOSAgIChoZXgpCQlWVk9ORCwgSW5jLgorMDAxOEY5ICAgICAoYmFzZSAxNikJCVZWT05ELCBJbmMuCisJCQkJMzAwMCBCcmlkZ2UgUGFya3dheQorCQkJCVN1aXRlIDEwMgorCQkJCVJlZHdvb2QgQ2l0eSBDQSA5NDA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtRkEgICAoaGV4KQkJWXVzaGluIFByZWNpc2lvbiBFcXVpcG1lbnQgQ28uLEx0ZC4KKzAwMThGQSAgICAgKGJhc2UgMTYpCQlZdXNoaW4gUHJlY2lzaW9uIEVxdWlwbWVudCBDby4sTHRkLgorCQkJCTExLTI2MCBLT0dBSE9OTUFDSEkKKwkJCQlGVVNISU1JLUtVCisJCQkJS1lPVE8gIDYxMi04NDkyIEpBUAorCQkJCUpBUEFOCisKKzAwLTE4LUZCICAgKGhleCkJCUNvbXBybyBUZWNobm9sb2d5CiswMDE4RkIgICAgIChiYXNlIDE2KQkJQ29tcHJvIFRlY2hub2xvZ3kKKwkJCQkzL0YgTm8gMTIsIEFsbGV5IDYsIExhbmUgNDUsIFBhbyBTaGluIFJkCisJCQkJSHNpbnRpZW4gIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtRkMgICAoaGV4KQkJQWx0ZWMgRWxlY3Ryb25pYyBBRworMDAxOEZDICAgICAoYmFzZSAxNikJCUFsdGVjIEVsZWN0cm9uaWMgQUcKKwkJCQlMZW5nZ2VuYmFjaHN0cmFzc2UgMworCQkJCUZhaHJ3ZWlkIFr8cmljaCBDSC04OTUxCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTgtRkQgICAoaGV4KQkJT3B0aW1hbCBUZWNobm9sb2dpZXMgSW50ZXJuYXRpb25hbCBJbmMuCiswMDE4RkQgICAgIChiYXNlIDE2KQkJT3B0aW1hbCBUZWNobm9sb2dpZXMgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJMTIgU3BhbmlzaCBNYWluIERyaXZlCisJCQkJUE8gQm94IEYtNDI0MDkvMzU5CisJCQkJRnJlZXBvcnQgR0JJIAorCQkJCUJBSEFNQVMKKworMDAtMTgtRkUgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDE4RkUgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA2MDMwOAorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUZGICAgKGhleCkJCVBvd2VyUXVhdHRybyBDby4KKzAwMThGRiAgICAgKGJhc2UgMTYpCQlQb3dlclF1YXR0cm8gQ28uCisJCQkJSuFub3MgdS4gMTc1LgorCQkJCUJ1ZGFwZXN0ICBILTExNjEKKwkJCQlIVU5HQVJZCisKKzAwLTE5LTAwICAgKGhleCkJCUludGVsbGl2ZXJlc2UgLSBEQkEgVm9pY2Vjb20KKzAwMTkwMCAgICAgKGJhc2UgMTYpCQlJbnRlbGxpdmVyZXNlIC0gREJBIFZvaWNlY29tCisJCQkJNTkwMCBXaW5kd2FyZCBQYXJrd2F5CisJCQkJU3VpdGUgNTAwCisJCQkJQWxwaGFyZXR0YSBHZW9yZ2lhIDMwMDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0wMSAgIChoZXgpCQlGMU1FRElBCiswMDE5MDEgICAgIChiYXNlIDE2KQkJRjFNRURJQQorCQkJCTYxMCwgS2V1bWthbmcgSGlnaHRlY2ggpbEsIDEzOC0xIFNhbmdkYWV3b24tRG9uZywgSnVuZ3dvbi1HdQorCQkJCVNlb25nbmFtLVNpIEd5ZW9uZ2dpLURvIDQ2Mi03MDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktMDIgICAoaGV4KQkJQ2FtYnJpZGdlIENvbnN1bHRhbnRzIEx0ZAorMDAxOTAyICAgICAoYmFzZSAxNikJCUNhbWJyaWRnZSBDb25zdWx0YW50cyBMdGQKKwkJCQlTY2llbmNlIFBhcmsKKwkJCQlNaWx0b24gUm9hZAorCQkJCUNhbWJyaWRnZSBDYW1icyBDQjQgMERXCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTktMDMgICAoaGV4KQkJQmlnZm9vdCBOZXR3b3JrcyBJbmMKKzAwMTkwMyAgICAgKGJhc2UgMTYpCQlCaWdmb290IE5ldHdvcmtzIEluYworCQkJCTM5MjUgV2VzdCBCcmFrZXIgTGFuZQorCQkJCUF1c3RpbiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMDQgICAoaGV4KQkJV0IgRWxlY3Ryb25pY3MgU3AuIHogby5vLgorMDAxOTA0ICAgICAoYmFzZSAxNikJCVdCIEVsZWN0cm9uaWNzIFNwLiB6IG8uby4KKwkJCQl1bC4gUG96bmFuc2thIDEyOS8xMzMKKwkJCQlPemFyb3cgTWF6b3dpZWNraSBNYXpvd2llY2tpZSAwNS04NTAKKwkJCQlQT0xBTkQKKworMDAtMTktMDUgICAoaGV4KQkJU0NIUkFDSyBTZWNvbmV0IEFHCiswMDE5MDUgICAgIChiYXNlIDE2KQkJU0NIUkFDSyBTZWNvbmV0IEFHCisJCQkJRWliZXNicnVubmVyZ2Fzc2UgMTgKKwkJCQlXaWVuINZzdGVycmVpY2ggMTEyMgorCQkJCUFVU1RSSUEKKworMDAtMTktMDYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOTA2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMDcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOTA3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMDggICAoaGV4KQkJRHVheGVzIENvcnBvcmF0aW9uCiswMDE5MDggICAgIChiYXNlIDE2KQkJRHVheGVzIENvcnBvcmF0aW9uCisJCQkJMi01LCBLYXN1bWlnYXNla2kgMy1jaG9tZSwgQ2hpeW9kYS1rdS4KKwkJCQlUb2t5byBGb3JlaWduIDEwMC02MDE0CisJCQkJSkFQQU4KKworMDAtMTktMDkgICAoaGV4KQkJRGV2aSBBL1MKKzAwMTkwOSAgICAgKGJhc2UgMTYpCQlEZXZpIEEvUworCQkJCVVsdmVoYXZldmVqIDYxCisJCQkJVmVqbGUgIDcxMDAKKwkJCQlERU5NQVJLCisKKzAwLTE5LTBBICAgKGhleCkJCUhBU1dBUkUgSU5DLgorMDAxOTBBICAgICAoYmFzZSAxNikJCUhBU1dBUkUgSU5DLgorCQkJCTQtMTItMyBISUdBU0hJCisJCQkJS1VOSVRBQ0hJIFRPS1lPIDE4Ni0wMDAyCisJCQkJSkFQQU4KKworMDAtMTktMEIgICAoaGV4KQkJU291dGhlcm4gVmlzaW9uIFN5c3RlbXMsIEluYy4KKzAwMTkwQiAgICAgKGJhc2UgMTYpCQlTb3V0aGVybiBWaXNpb24gU3lzdGVtcywgSW5jLgorCQkJCTgyMTUgTWFkaXNvbiBCbHZkLCBTdWl0ZSAxNTAKKwkJCQlNYWRpc29uIEFMIDM1NzU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0wQyAgIChoZXgpCQlFbmNvcmUgRWxlY3Ryb25pY3MsIEluYy4KKzAwMTkwQyAgICAgKGJhc2UgMTYpCQlFbmNvcmUgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQkxNjQ4MyBPbGQgVmFsbGV5IEJsdmQuCisJCQkJTGEgUHVlbnRlIENBIDkxNzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0wRCAgIChoZXgpCQlJRUVFIDEzOTRjCiswMDE5MEQgICAgIChiYXNlIDE2KQkJSUVFRSAxMzk0YworCQkJCWMvbyAxMzk0IFRyYWRlIEFzc29jaWF0aW9uCisJCQkJMTU2MCBFYXN0IFNvdXRobGFrZSBCbHZkLiwgU3VpdGUgMjIwCisJCQkJU291dGhsYWtlIFRYIDc2MDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0wRSAgIChoZXgpCQlBdGVjaCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxOTBFICAgICAoYmFzZSAxNikJCUF0ZWNoIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNCBGbC4sIE5vLiAxMDMsIFNlYyAyLCBKaXV6b25nIFJkLgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS0wRiAgIChoZXgpCQlBZHZhbnN1cyBDb3JwLgorMDAxOTBGICAgICAoYmFzZSAxNikJCUFkdmFuc3VzIENvcnAuCisJCQkJTm8uNSBTaGluZyBZZWggU3RyZWV0LCBLd2VpIEhzaWFuZworCQkJCVRhb3l1YW4gIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktMTAgICAoaGV4KQkJS25pY2sgRWxla3Ryb25pc2NoZSBNZXNzZ2VyYWV0ZSBHbWJIICYgQ28uIEtHCiswMDE5MTAgICAgIChiYXNlIDE2KQkJS25pY2sgRWxla3Ryb25pc2NoZSBNZXNzZ2VyYWV0ZSBHbWJIICYgQ28uIEtHCisJCQkJQmV1Y2tlc3RyLiAyMgorCQkJCUJlcmxpbiAgMTQxNjMKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTExICAgKGhleCkJCUp1c3QgSW4gTW9iaWxlIEluZm9ybWF0aW9uIFRlY2hub2xvZ2llcyAoU2hhbmdoYWkpIENvLiwgTHRkLgorMDAxOTExICAgICAoYmFzZSAxNikJCUp1c3QgSW4gTW9iaWxlIEluZm9ybWF0aW9uIFRlY2hub2xvZ2llcyAoU2hhbmdoYWkpIENvLiwgTHRkLgorCQkJCTV0aCBGbG9vciwgMm5kIEFyZWEsIEhhaXdhbmd4aW5nIEJ1aWxkaW5nLCA2MiBYaW5nZ3VhbmcgQXZlLiwgTi5IaWdoLVRlY2ggUGFyaworCQkJCUNob25ncWluZyAgNDAxMTIxCisJCQkJQ0hJTkEKKworMDAtMTktMTIgICAoaGV4KQkJV2VsY2F0IEluYworMDAxOTEyICAgICAoYmFzZSAxNikJCVdlbGNhdCBJbmMKKwkJCQlFYXN0IFRvd2VyIDZGLCBTaGluYWdhd2EgU2Vhc2lkZSwgNC0xMi04LCBIaWdhc2hpIFNoaW5hZ2F3YSwgU2hpbmFnYXdhIFNlY3Rpb24KKwkJCQlUb2t5byAgMTQwLTAwMDIKKwkJCQlKQVBBTgorCiswMC0xOS0xMyAgIChoZXgpCQlDaHVhbmctWWkgTmV0d29yayBFcXVpcG1lbnQgQ28uTHRkLgorMDAxOTEzICAgICAoYmFzZSAxNikJCUNodWFuZy1ZaSBOZXR3b3JrIEVxdWlwbWVudCBDby5MdGQuCisJCQkJMjM4IFRpYW5NdVNoYW4gUmQuLCBXZXN0IExha2UgZGlzdHJpY3QKKwkJCQlIYW5nWmhvdSBaaGVKaWFuZyAzMTAwMDAKKwkJCQlDSElOQQorCiswMC0xOS0xNCAgIChoZXgpCQlXaW5peCBDby4sIEx0ZAorMDAxOTE0ICAgICAoYmFzZSAxNikJCVdpbml4IENvLiwgTHRkCisJCQkJMzYzIEFuZ2FkZSBCbGRnLiwgWWFuZ2phZS1kb25nCisJCQkJU2VvY2hvLWd1CisJCQkJU2VvdWwgIDEzNy04OTgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktMTUgICAoaGV4KQkJVEVDT00gQ28uLCBMdGQuCiswMDE5MTUgICAgIChiYXNlIDE2KQkJVEVDT00gQ28uLCBMdGQuCisJCQkJMjMgUiZEIFJvYWQgMiBTY2llbmNlIEJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW4tQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTE2ICAgKGhleCkJCVBheVRlYyBBRworMDAxOTE2ICAgICAoYmFzZSAxNikJCVBheVRlYyBBRworCQkJCVJvc2VuZ2FydGVuc3RyYXNzZSAzCisJCQkJWm9sbGlrZXJiZXJnIFpIIDgxMjUKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xOS0xNyAgIChoZXgpCQlQb3NpZmxleCBJbmMuCiswMDE5MTcgICAgIChiYXNlIDE2KQkJUG9zaWZsZXggSW5jLgorCQkJCTYsIFd1LUNodWFuIFJvYWQKKwkJCQlXdSBLdQorCQkJCVRhaXBlaSBIc2llbiAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS0xOCAgIChoZXgpCQlJbnRlcmFjdGl2ZSBXZWFyIEFHCiswMDE5MTggICAgIChiYXNlIDE2KQkJSW50ZXJhY3RpdmUgV2VhciBBRworCQkJCVBldGVyc2JydW5uZXIgU3RyLiAzCisJCQkJU3Rhcm5iZXJnIEJhdmFyaWEgODIzMTkKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTE5ICAgKGhleCkJCUFTVEVMIEluYy4KKzAwMTkxOSAgICAgKGJhc2UgMTYpCQlBU1RFTCBJbmMuCisJCQkJNTktNyBKYW5nLWRvbmcgWXVzdW5nLUd1CisJCQkJRGFlamVvbiBDaHVuZ25hbSAzMDUtMzQzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LTFBICAgKGhleCkJCUlSTElOSworMDAxOTFBICAgICAoYmFzZSAxNikJCUlSTElOSworCQkJCUhhbllvdW5nIEIvRCA2RiwgNC02CisJCQkJTXVuamVvbmctZG9uZywgU29ucGEta3UKKwkJCQlTRU9VTCAgMTM4LTgyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS0xQiAgIChoZXgpCQlTcHV0bmlrIEVuZ2luZWVyaW5nIEFHCiswMDE5MUIgICAgIChiYXNlIDE2KQkJU3B1dG5payBFbmdpbmVlcmluZyBBRworCQkJCUj2aGV3ZWcgODUKKwkJCQlCaWVsLUJpZW5uZSBCRSAgMjUwMgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE5LTFDICAgKGhleCkJCVNlbnNpY2FzdCBTeXN0ZW1zCiswMDE5MUMgICAgIChiYXNlIDE2KQkJU2Vuc2ljYXN0IFN5c3RlbXMKKwkJCQkyMDAgUmVzZXJ2b2lyIFN0CisJCQkJU3VpdGUgMTAwCisJCQkJTmVlZGhhbSBNQSAwMjQ5NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMUQgICAoaGV4KQkJTmludGVuZG8gQ28uLEx0ZC4KKzAwMTkxRCAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTE5LTFFICAgKGhleCkJCUJleW9uZHdpeiBDby4sIEx0ZC4KKzAwMTkxRSAgICAgKGJhc2UgMTYpCQlCZXlvbmR3aXogQ28uLCBMdGQuCisJCQkJM0YsIERhZWNoYW5nIEJsZGcuLAorCQkJCTgtMiwgU29vbmFlLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTdW5nbmFtIEt5dW5na2ktZG8gNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS0xRiAgIChoZXgpCQlNaWNyb2xpbmsgY29tbXVuaWNhdGlvbnMgSW5jLgorMDAxOTFGICAgICAoYmFzZSAxNikJCU1pY3JvbGluayBjb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJOEYgLCAzMSAsIEhzaW50YWkgUm9hZCAsIENodXBlaSBDaXR5ICwgSHNpbmNodQorCQkJCUNodXBlaSBUYWl3YW4gMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS0yMCAgIChoZXgpCQlLVU1FIGVsZWN0cmljIENvLixMdGQuCiswMDE5MjAgICAgIChiYXNlIDE2KQkJS1VNRSBlbGVjdHJpYyBDby4sTHRkLgorCQkJCTQtMi0yNCBLaXRha2F3YXJhCisJCQkJSXRhbWktY2l0eSBIeW91Z28gCisJCQkJSkFQQU4KKworMDAtMTktMjEgICAoaGV4KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uCiswMDE5MjEgICAgIChiYXNlIDE2KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uCisJCQkJTm8uMjIsQWxsZXkgMzgsTGFuZSA5MSwgU2VjLiAxLE5laSBIdSBSb2FkLgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS0yMiAgIChoZXgpCQlDTSBDb21hbmRvcyBMaW5lYXJlcworMDAxOTIyICAgICAoYmFzZSAxNikJCUNNIENvbWFuZG9zIExpbmVhcmVzCisJCQkJQXYgRW5nIEFsYmVydG8gZGUgWmFnb3R0aXMsIDc2MAorCQkJCUp1cnViYXR1YmEKKwkJCQlTYW8gUGF1bG8gU1AgMDQ2NzUtMDg1CisJCQkJQlJBWklMCisKKzAwLTE5LTIzICAgKGhleCkJCVBob25leCBLb3JlYSBDby4sIExURC4KKzAwMTkyMyAgICAgKGJhc2UgMTYpCQlQaG9uZXggS29yZWEgQ28uLCBMVEQuCisJCQkJMzMtMywgR2VveWVvLURvbmcKKwkJCQlTZW91bCBTb25ncGEtR3UgMTM4LTgxNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS0yNCAgIChoZXgpCQlMQk5MICBFbmdpbmVlcmluZworMDAxOTI0ICAgICAoYmFzZSAxNikJCUxCTkwgIEVuZ2luZWVyaW5nCisJCQkJMSBDeWNsb3Ryb24gUmQuCisJCQkJTVM0NlIwMTI1CisJCQkJQmVya2VsZXkgQ0EgOTQ3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTI1ICAgKGhleCkJCUludGVsaWNpcyBDb3Jwb3JhdGlvbgorMDAxOTI1ICAgICAoYmFzZSAxNikJCUludGVsaWNpcyBDb3Jwb3JhdGlvbgorCQkJCTQ2MzMgT2xkIElyb25zaWRlcyBEcml2ZSwgU3VpdGUgMTUwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTI2ICAgKGhleCkJCUJpdHNHZW4gQ28uLCBMdGQuCiswMDE5MjYgICAgIChiYXNlIDE2KQkJQml0c0dlbiBDby4sIEx0ZC4KKwkJCQkjNTAyLCBPd25lcidzIFRvd2VyLCAjMTYtNSwgU3VuZWEtZG9uZworCQkJCUJ1bmRhbmctZ3UgU2VvbmduYW0tc2kgNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS0yNyAgIChoZXgpCQlJbUNvU3lzIEx0ZAorMDAxOTI3ICAgICAoYmFzZSAxNikJCUltQ29TeXMgTHRkCisJCQkJQnVuZGVzc3RyYXNzZSA1CisJCQkJWnVnIFpHIDYzMDAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xOS0yOCAgIChoZXgpCQlTaWVtZW5zIEFHLCBUcmFuc3BvcnRhdGlvbiBTeXN0ZW1zCiswMDE5MjggICAgIChiYXNlIDE2KQkJU2llbWVucyBBRywgVHJhbnNwb3J0YXRpb24gU3lzdGVtcworCQkJCVdlcm5lci12b24tU2llbWVucy1TdHJh32UgNjcKKwkJCQlFcmxhbmdlbiAgOTEwNTIKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTI5ICAgKGhleCkJCTJNMkIgTW9udGFkb3JhIGRlIE1hcXVpbmFzIEJhaGlhIEJyYXNpbCBMVERBCiswMDE5MjkgICAgIChiYXNlIDE2KQkJMk0yQiBNb250YWRvcmEgZGUgTWFxdWluYXMgQmFoaWEgQnJhc2lsIExUREEKKwkJCQlSdWEgRGphbG1hIGR1dHJhLCA2NjgsIFNldGUgUG9ydGFzCisJCQkJU2FsdmFkb3IgQmFoaWEgNDAyNDAwODAKKwkJCQlCUkFaSUwKKworMDAtMTktMkEgICAoaGV4KQkJQW50aW9wZSBBc3NvY2lhdGVzCiswMDE5MkEgICAgIChiYXNlIDE2KQkJQW50aW9wZSBBc3NvY2lhdGVzCisJCQkJMTggQ2xheSBTdHJlZXQKKwkJCQlGYWlyIEhhdmVuIE5ldyBKZXJzZXkgMDc3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTJCICAgKGhleCkJCUFjbGFyYSBSRiBTeXN0ZW1zIEluYy4KKzAwMTkyQiAgICAgKGJhc2UgMTYpCQlBY2xhcmEgUkYgU3lzdGVtcyBJbmMuCisJCQkJMzA0MDAgU29sb24gUm9hZAorCQkJCVNvbG9uIE9IIDQ0MTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0yQyAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMTkyQyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2MDAgTi4gSHd5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0yRCAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorMDAxOTJEICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJUmVuc2luZ3N0ci4gMTUKKwkJCQlCb2NodW0gTlJXIDQ0ODA3CisJCQkJR0VSTUFOWQorCiswMC0xOS0yRSAgIChoZXgpCQlTcGVjdHJhbCBJbnN0cnVtZW50cywgSW5jLgorMDAxOTJFICAgICAoYmFzZSAxNikJCVNwZWN0cmFsIEluc3RydW1lbnRzLCBJbmMuCisJCQkJNDIwIE4gQm9uaXRhIEF2ZQorCQkJCVR1Y3NvbiBBWiA4NTc0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMkYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOTJGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMzAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOTMwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMzEgICAoaGV4KQkJQmFsbHVmZiBHbWJICiswMDE5MzEgICAgIChiYXNlIDE2KQkJQmFsbHVmZiBHbWJICisJCQkJU2NodXJ3YWxkc3RyLiA5CisJCQkJTmV1aGF1c2VuIEJXIDczNzY1CisJCQkJR0VSTUFOWQorCiswMC0xOS0zMiAgIChoZXgpCQlHdWRlIEFuYWxvZy0gdW5kIERpZ2lhbHN5c3RlbWUgR21iSAorMDAxOTMyICAgICAoYmFzZSAxNikJCUd1ZGUgQW5hbG9nLSB1bmQgRGlnaWFsc3lzdGVtZSBHbWJICisJCQkJRWludHJhY2hzdHJhc3NlIDExMworCQkJCUNvbG9nbmUgTlJXIDUwNjY4CisJCQkJR0VSTUFOWQorCiswMC0xOS0zMyAgIChoZXgpCQlTdHJpeCBTeXN0ZW1zLCBJbmMuCiswMDE5MzMgICAgIChiYXNlIDE2KQkJU3RyaXggU3lzdGVtcywgSW5jLgorCQkJCTI2NjEwIEFnb3VyYSBSb2FkCisJCQkJQ2FsYWJhc2FzIENBIDkxMzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0zNCAgIChoZXgpCQlUUkVORE9OIFRPVUNIIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMTkzNCAgICAgKGJhc2UgMTYpCQlUUkVORE9OIFRPVUNIIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkyRiBOby41LCBBbGxleSAyMiwgTGFuZSA1MTMsIFJ1ZWlndWFuZyBSZC4sIE5laWh1CisJCQkJVGFpcGVpIENpdHkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktMzUgICAoaGV4KQkJRHVlcnIgRGVudGFsIEdtYkggJiBDby4gS0cKKzAwMTkzNSAgICAgKGJhc2UgMTYpCQlEdWVyciBEZW50YWwgR21iSCAmIENvLiBLRworCQkJCUhvZXBmaWdoZWltZXIgU3RyYXNzZSAxNworCQkJCUJpZXRpZ2hlaW0tQmlzc2luZ2VuIEJhZGVuLVd1ZXJ0dGVtYmVyZyA3NDMyMQorCQkJCUdFUk1BTlkKKworMDAtMTktMzYgICAoaGV4KQkJU1RFUkxJVEUgT1BUSUNBTCBURUNITk9MT0dJRVMgTElNSVRFRAorMDAxOTM2ICAgICAoYmFzZSAxNikJCVNURVJMSVRFIE9QVElDQUwgVEVDSE5PTE9HSUVTIExJTUlURUQKKwkJCQlFLTEsRS0yLCZFLTMKKwkJCQlNSURDICwgV0FMVUoKKwkJCQlBVVJBTkdBQkFEIE1BSEFSQVNUUkEgNDMxMTM2CisJCQkJSU5ESUEKKworMDAtMTktMzcgICAoaGV4KQkJQ29tbWVyY2VHdWFyZCBBQgorMDAxOTM3ICAgICAoYmFzZSAxNikJCUNvbW1lcmNlR3VhcmQgQUIKKwkJCQlHdXN0YXZzbHVuZHN2IDE1MUEKKwkJCQlCUk9NTUEgIDE2NzE0CisJCQkJU1dFREVOCisKKzAwLTE5LTM4ICAgKGhleCkJCVVNQiBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMTkzOCAgICAgKGJhc2UgMTYpCQlVTUIgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCisJCQkJMTAxMCwgNSwgQUNFIFRlY2hubyBUb3dlciwgMTk3LTIyLCBHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUxLTc2NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS0zOSAgIChoZXgpCQlHaWdhbWlwcworMDAxOTM5ICAgICAoYmFzZSAxNikJCUdpZ2FtaXBzCisJCQkJNXRoIEZsb29yLCBZYW5namFlIEJ1aWxkaW5nLCAyNjEsIFlhbmdqYWUtRG9uZworCQkJCVNlb2Noby1HdSBTZW91bCAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LTNBICAgKGhleCkJCU9FU09MVVRJT05TCiswMDE5M0EgICAgIChiYXNlIDE2KQkJT0VTT0xVVElPTlMKKwkJCQlUZWNobm9wYXJrLCA5NTgtMyBEYWVjaG9uLURvbmcsIEJ1ay1HdQorCQkJCUd3YW5nanUgQnVrLUd1IDUwMC03MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktM0IgICAoaGV4KQkJV2lsaWJveCBEZWxpYmVyYW50IEdyb3VwIExMQworMDAxOTNCICAgICAoYmFzZSAxNikJCVdpbGlib3ggRGVsaWJlcmFudCBHcm91cCBMTEMKKwkJCQkxNDQwIER1dGNoIFZhbGxleSBQbGFjZQorCQkJCVN1aXRlIDExNTUKKwkJCQlBdGxhbnRhIEdBIDMwMzI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0zQyAgIChoZXgpCQlIaWdoUG9pbnQgVGVjaG5vbG9naWVzIEluY29ycG9yYXRlZAorMDAxOTNDICAgICAoYmFzZSAxNikJCUhpZ2hQb2ludCBUZWNobm9sb2dpZXMgSW5jb3Jwb3JhdGVkCisJCQkJMTE2MSBDYWRpbGxhYyBDb3VydAorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0zRCAgIChoZXgpCQlHTUMgR3VhcmRpYW4gTW9iaWxpdHkgQ29ycC4KKzAwMTkzRCAgICAgKGJhc2UgMTYpCQlHTUMgR3VhcmRpYW4gTW9iaWxpdHkgQ29ycC4KKwkJCQlTdWl0ZSAyMDAKKwkJCQk0MyBBdXJpZ2EgRHIuCisJCQkJT3R0YXdhIE9OIEsyRSA3WTgKKwkJCQlDQU5BREEKKworMDAtMTktM0UgICAoaGV4KQkJUElSRUxMSSBCUk9BREJBTkQgU09MVVRJT05TCiswMDE5M0UgICAgIChiYXNlIDE2KQkJUElSRUxMSSBCUk9BREJBTkQgU09MVVRJT05TCisJCQkJVklBTEUgU0FSQ0EgMjIyCisJCQkJTUlMQU5PICAyMDEyNgorCQkJCUlUQUxZCisKKzAwLTE5LTNGICAgKGhleCkJCVJESSB0ZWNobm9sb2d5KFNoZW56aGVuKSBDby4sTFRECiswMDE5M0YgICAgIChiYXNlIDE2KQkJUkRJIHRlY2hub2xvZ3koU2hlbnpoZW4pIENvLixMVEQKKwkJCQlCdWlsZGluZyBDMSZDMiwgIFhpbiBUYW5nIEluZHVzdHJpYWwgWm9uZSxFYXN0IEJhaVNoaVhpYSBWaWxsYWdlLCBGdXlvbmcgVG93biwgQmFvYW4gRGlzdHJpY3QKKwkJCQlTSEVOWkhFTiBHVUFOR0RPTkcgcHJvdmluY2UgNTE4MTAzCisJCQkJQ0hJTkEKKworMDAtMTktNDAgICAoaGV4KQkJUmFja2FibGUgU3lzdGVtcworMDAxOTQwICAgICAoYmFzZSAxNikJCVJhY2thYmxlIFN5c3RlbXMKKwkJCQkxOTMzIE1pbG1vbnQgRHJpdmUKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNDEgICAoaGV4KQkJUGl0bmV5IEJvd2VzLCBJbmMKKzAwMTk0MSAgICAgKGJhc2UgMTYpCQlQaXRuZXkgQm93ZXMsIEluYworCQkJCTM1IFdhdGVydmlldyBEcml2ZQorCQkJCU1TQyAyNi0yMQorCQkJCVNoZWx0b24gQ1QgMDY0ODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTQyICAgKGhleCkJCU9OIFNPRlRXQVJFIElOVEVSTkFUSU9OQUwgTElNSVRFRAorMDAxOTQyICAgICAoYmFzZSAxNikJCU9OIFNPRlRXQVJFIElOVEVSTkFUSU9OQUwgTElNSVRFRAorCQkJCTlGLCBOTy4gMTcsIFNFQy4gMSwgQ0hFTkctVEUgUkQuCisJCQkJVEFJUEVJICAxMDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTQzICAgKGhleCkJCUJlbGRlbgorMDAxOTQzICAgICAoYmFzZSAxNikJCUJlbGRlbgorCQkJCTc5MyBGb3J0IE1pbGwgSGlnaHdheQorCQkJCUZvcnQgTWlsbCBTb3V0aCBDYXJvbGluYSAyOTcxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNDQgICAoaGV4KQkJRm9zc2lsIFBhcnRuZXJzLCBMLlAuCiswMDE5NDQgICAgIChiYXNlIDE2KQkJRm9zc2lsIFBhcnRuZXJzLCBMLlAuCisJCQkJMjI4MCBOLiBHcmVlbnZpbGxlIEF2ZS4KKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS00NSAgIChoZXgpCQlUZW4tVGVjIEluYy4KKzAwMTk0NSAgICAgKGJhc2UgMTYpCQlUZW4tVGVjIEluYy4KKwkJCQkxMTg1IERvbGx5IFBhcnRvbiBQa3d5CisJCQkJU2V2aWVydmlsbGUgVE4gMzc4NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTQ2ICAgKGhleCkJCUNpYW5ldCBJbmR1c3RyaWEgZSBDb21lcmNpbyBTL0EKKzAwMTk0NiAgICAgKGJhc2UgMTYpCQlDaWFuZXQgSW5kdXN0cmlhIGUgQ29tZXJjaW8gUy9BCisJCQkJcm9kIFNDNDAxLCBrbTAxIFRlY25vcG9saXMvQWxmYW1hIDRvLiBBbmRhcgorCQkJCUZsb3JpYW5vcG9saXMgU2FudGEgQ2F0YXJpbmEgODgwMzAtOTAyCisJCQkJQlJBWklMCisKKzAwLTE5LTQ3ICAgKGhleCkJCVNjaWVudGlmaWMgQXRsYW50YSwgQSBDaXNjbyBDb21wYW55CiswMDE5NDcgICAgIChiYXNlIDE2KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBBIENpc2NvIENvbXBhbnkKKwkJCQk1MDMwIFN1Z2FybG9hZiBQYXJrd2F5CisJCQkJQVRMIDEuMy40NzMKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS00OCAgIChoZXgpCQlBaXJlU3BpZGVyIE5ldHdvcmtzCiswMDE5NDggICAgIChiYXNlIDE2KQkJQWlyZVNwaWRlciBOZXR3b3JrcworCQkJCTExNzEgTW9udGFndWUgRXhwcmVzcyBXYXkKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNDkgICAoaGV4KQkJVEVOVEVMICBDT01URUNIIENPLiwgTFRELgorMDAxOTQ5ICAgICAoYmFzZSAxNikJCVRFTlRFTCAgQ09NVEVDSCBDTy4sIExURC4KKwkJCQkzL0YuLCBOTy4gNDIsIExBTkUgODAsIFNFQy4gMywgTkFOLUtBTkcgUkQuLAorCQkJCVRBSVBFSSAgMTE1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS00QSAgIChoZXgpCQlURVNUTyBBRworMDAxOTRBICAgICAoYmFzZSAxNikJCVRFU1RPIEFHCisJCQkJVGVzdG8gU3RyYXNzZSAxCisJCQkJTGVuemtpcmNoIEJhZGVuLVf8cnRlbWJlcmcgNzk4NTMKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTRCICAgKGhleCkJCVNBR0VNIENPTU1VTklDQVRJT04KKzAwMTk0QiAgICAgKGJhc2UgMTYpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCisJCQkJMjcgUlVFIExFQkxBTkMKKwkJCQlQQVJJUyAgNzU1MTIKKwkJCQlGUkFOQ0UKKworMDAtMTktNEMgICAoaGV4KQkJRnVqaWFuIFN0ZWxjb20gaW5mb3JtYXRpb24gJiBUZWNobm9sb2d5IENPLixMdGQKKzAwMTk0QyAgICAgKGJhc2UgMTYpCQlGdWppYW4gU3RlbGNvbSBpbmZvcm1hdGlvbiAmIFRlY2hub2xvZ3kgQ08uLEx0ZAorCQkJCTRGLEJ1aWxkaW5nIEEsU3RhcnQgU2NpZW5jZSBQYXJrLCBOby42OCxIb25nc2hhbnl1YW4gUmQKKwkJCQlGdXpob3UgRnVqaWFuIDM1MDAwMgorCQkJCUNISU5BCisKKzAwLTE5LTREICAgKGhleCkJCUF2YWdvIFRlY2hub2xvZ2llcyBTZG4gQmhkCiswMDE5NEQgICAgIChiYXNlIDE2KQkJQXZhZ28gVGVjaG5vbG9naWVzIFNkbiBCaGQKKwkJCQlCYXlhbiBMZXBhcyBGcmVlIEluZHVzdHJpYWwgWm9uZQorCQkJCUJheWFuIExlcGFzIFBlbmFuZyAxMTkwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE5LTRFICAgKGhleCkJCVVsdHJhIEVsZWN0cm9uaWNzIC0gVENTIChUYWN0aWNhbCBDb21tdW5pY2F0aW9uIFN5c3RlbXMpCiswMDE5NEUgICAgIChiYXNlIDE2KQkJVWx0cmEgRWxlY3Ryb25pY3MgLSBUQ1MgKFRhY3RpY2FsIENvbW11bmljYXRpb24gU3lzdGVtcykKKwkJCQk1OTkwIENvdGUgRGUgTGllc3NlCisJCQkJVE1SIFF1ZWJlYyBINFQgMVY3CisJCQkJQ0FOQURBCisKKzAwLTE5LTRGICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDE5NEYgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTE5LTUwICAgKGhleCkJCUhhcm1hbiBNdWx0aW1lZGlhCiswMDE5NTAgICAgIChiYXNlIDE2KQkJSGFybWFuIE11bHRpbWVkaWEKKwkJCQk4NDAwIEJhbGJvYSBCbHZkLgorCQkJCU5vcnRocmlkZ2UgQ0EgOTEzMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTUxICAgKGhleCkJCU5FVENPTlMsIHMuci5vLgorMDAxOTUxICAgICAoYmFzZSAxNikJCU5FVENPTlMsIHMuci5vLgorCQkJCVN0YXJhIFZham5vcnNrYSAzNworCQkJCUJyYXRpc2xhdmEgU2xvdmFraWEgODMxIDA0CisJCQkJU0xPVkFLSUEKKworMDAtMTktNTIgICAoaGV4KQkJQUNPR0lUTyBDby4sIEx0ZAorMDAxOTUyICAgICAoYmFzZSAxNikJCUFDT0dJVE8gQ28uLCBMdGQKKwkJCQkjNTAxIFNoaW55b3VuZyBQYWxhY2UgVG93ZXIsIDI0Ni0yLCBTZW9oeXVuCisJCQkJU3VuZ25hbSBLeXVuZ2dpIDQ2My04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktNTMgICAoaGV4KQkJQ2hhaW5sZWFkZXIgQ29tbXVuaWNhdGlvbnMgQ29ycC4KKzAwMTk1MyAgICAgKGJhc2UgMTYpCQlDaGFpbmxlYWRlciBDb21tdW5pY2F0aW9ucyBDb3JwLgorCQkJCTVGLCBOby4gNDAwLCBTZWMuIDIgQmFkZSBSZC4sCisJCQkJVGFpcGVpICAxMDUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTU0ICAgKGhleCkJCUxlYWYgQ29ycG9yYXRpb24uCiswMDE5NTQgICAgIChiYXNlIDE2KQkJTGVhZiBDb3Jwb3JhdGlvbi4KKwkJCQlBbXV6ZSAxRgorCQkJCUhpZ2FzaGkgTmFydXNlIDM1LTEwCisJCQkJSXNlaGFyYSBDaXR5IEthbmFnYXdhLVByZWYuIDI1OS0xMTE3CisJCQkJSkFQQU4KKworMDAtMTktNTUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOTU1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNTYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOTU2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNTcgICAoaGV4KQkJU2FhZm5ldCBDYW5hZGEgSW5jLgorMDAxOTU3ICAgICAoYmFzZSAxNikJCVNhYWZuZXQgQ2FuYWRhIEluYy4KKwkJCQkxMDctMTA4OSBFYXN0IEtlbnQgQXZlIChOKQorCQkJCVZhbmNvdXZlciBCQyBWNVggNFY5CisJCQkJQ0FOQURBCisKKzAwLTE5LTU4ICAgKGhleCkJCUJsdWV0b290aCBTSUcsIEluYy4KKzAwMTk1OCAgICAgKGJhc2UgMTYpCQlCbHVldG9vdGggU0lHLCBJbmMuCisJCQkJNTAwIDEwOHRoIEF2ZW51ZSBORQorCQkJCVN1aXRlIDI1MAorCQkJCUJlbGxldnVlIFdBIDk4MDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS01OSAgIChoZXgpCQlTdGFjY2F0byBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDE5NTkgICAgIChiYXNlIDE2KQkJU3RhY2NhdG8gQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTYxOTUgTHVzayBCbHZkLgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNUEgICAoaGV4KQkJSmVuYWVyIEFudHJpZWJzdGVjaG5payBHbWJICiswMDE5NUEgICAgIChiYXNlIDE2KQkJSmVuYWVyIEFudHJpZWJzdGVjaG5payBHbWJICisJCQkJQnVjaGFlciBTdHJhc3NlIDEKKwkJCQlKZW5hIFRodWVyaW5nZW4gMDc3NDUKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTVCICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxOTVCICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5PLjI4OSwgU2luaHUgM3JkIFJkLiwKKwkJCQlOZWlodSBEaXN0cmljdCwgVGFpcGVpIENpdHkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS01QyAgIChoZXgpCQlJbm5vdGVjaCBDb3Jwb3JhdGlvbgorMDAxOTVDICAgICAoYmFzZSAxNikJCUlubm90ZWNoIENvcnBvcmF0aW9uCisJCQkJMy0xNy02CisJCQkJU2hpbi1Zb2tvaGFtYSwgS29ob2t1LWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjIyLTg1ODAKKwkJCQlKQVBBTgorCiswMC0xOS01RCAgIChoZXgpCQlTaGVuWmhlbiBYaW5IdWFUb25nIE9wdG8gRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAxOTVEICAgICAoYmFzZSAxNikJCVNoZW5aaGVuIFhpbkh1YVRvbmcgT3B0byBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJNUYsQmFvZGFaaG91LFNoYW5jaGVuZyBJbmR1c3RyaWFsIFpvbmUsQmFvQW4gRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTA4CisJCQkJQ0hJTkEKKworMDAtMTktNUUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMTk1RSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTVGICAgKGhleCkJCVZhbGVtb3VudCBOZXR3b3JrcyBDb3Jwb3JhdGlvbgorMDAxOTVGICAgICAoYmFzZSAxNikJCVZhbGVtb3VudCBOZXR3b3JrcyBDb3Jwb3JhdGlvbgorCQkJCTEyMDEtIDV0aCBBdmUKKwkJCQlQTyBCb3ggNjg3CisJCQkJVmFsZW1vdW50IEJDIFYwRTJaMAorCQkJCUNBTkFEQQorCiswMC0xOS02MCAgIChoZXgpCQlEb0NvTW8gU3lzdGVtcywgSW5jLgorMDAxOTYwICAgICAoYmFzZSAxNikJCURvQ29NbyBTeXN0ZW1zLCBJbmMuCisJCQkJTWVndXJvIFRlY2hubyBCbGRnLiAybmQgRmxvb3IKKwkJCQk0LTMxLTE4IE5pc2hpLUdvdGFuZGEKKwkJCQlTaGluYWdhd2Eta3UgVG9reW8gMTQxLTAwMzEKKwkJCQlKQVBBTgorCiswMC0xOS02MSAgIChoZXgpCQlCbGF1cHVua3QgR21iSAorMDAxOTYxICAgICAoYmFzZSAxNikJCUJsYXVwdW5rdCBHbWJICisJCQkJUm9iZXJ0LUJvc2NoLVN0cmFzc2UgMjAwCisJCQkJSGlsZGVzaGVpbSBIZXNzZW4gMzExMzkKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTYyICAgKGhleCkJCUNvbW1lcmNpYW50LCBMUAorMDAxOTYyICAgICAoYmFzZSAxNikJCUNvbW1lcmNpYW50LCBMUAorCQkJCTI5MDEgV2lsY3Jlc3QKKwkJCQlTdWl0ZSAyNTAKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS02MyAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorMDAxOTYzICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU2vlbmUgMjIxIDg4CisJCQkJU1dFREVOCisKKzAwLTE5LTY0ICAgKGhleCkJCURvb3JraW5nIEluYy4KKzAwMTk2NCAgICAgKGJhc2UgMTYpCQlEb29ya2luZyBJbmMuCisJCQkJMTIwIEdsYXNnb3cgU3QuCisJCQkJSW5nbGV3b29kIENBLiA5MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNjUgICAoaGV4KQkJWXVIdWEgVGVsVGVjaCAoU2hhbmdIYWkpIENvLiwgTHRkLgorMDAxOTY1ICAgICAoYmFzZSAxNikJCVl1SHVhIFRlbFRlY2ggKFNoYW5nSGFpKSBDby4sIEx0ZC4KKwkJCQlZdUh1YSBSJkQgQnVpbGRpbmcsMjcgeGluIGppbiBxaWFvIHJvYWQsCisJCQkJUHVkb25nLAorCQkJCVNIQU5HSEFJICAyMDEyMDYKKwkJCQlDSElOQQorCiswMC0xOS02NiAgIChoZXgpCQlBc2lhcm9jayBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMTk2NiAgICAgKGJhc2UgMTYpCQlBc2lhcm9jayBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlQLk8uIEJveDk1NywgT2Zmc2hvcmUgSW5jb3Jwb3JhdGlvbnMgQ2VudHJlCisJCQkJUm9hZCBUb3duIFRvcnRvbGEgCisJCQkJVklSR0lOIElTTEFORFMsIEJSSVRJU0gKKworMDAtMTktNjcgICAoaGV4KQkJVEVMREFUIFNwLkouCiswMDE5NjcgICAgIChiYXNlIDE2KQkJVEVMREFUIFNwLkouCisJCQkJS2lqb3dza2EgNDQKKwkJCQlOSVAgNTU0IDE5IDI2IDA0MgorCQkJCUJ5ZGdvc3pjeiB3b2ouIGt1amF3c2tvLXBvbW9yc2tpZSA4NS03MDMKKwkJCQlQT0xBTkQKKworMDAtMTktNjggICAoaGV4KQkJRGlnaXRhbCBWaWRlbyBOZXR3b3JrcyhTaGFuZ2hhaSkgQ08uIExURC4KKzAwMTk2OCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFZpZGVvIE5ldHdvcmtzKFNoYW5naGFpKSBDTy4gTFRELgorCQkJCTl0aCBGbG9vcixIZWNodWFuIEJ1aWxkaW5nLCBOby4xMDI2IFlpU2hhbiBSZAorCQkJCVNoYW5naGFpICAyMDExMDMKKwkJCQlDSElOQQorCiswMC0xOS02OSAgIChoZXgpCQlOb3J0ZWwKKzAwMTk2OSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTktNkEgICAoaGV4KQkJTWlrcm9NIEdtYkgKKzAwMTk2QSAgICAgKGJhc2UgMTYpCQlNaWtyb00gR21iSAorCQkJCURvdmVzdHIuIDEKKwkJCQlCZXJsaW4gIDEwNTg3CisJCQkJR0VSTUFOWQorCiswMC0xOS02QiAgIChoZXgpCQlEYW5wZXggQ29ycG9yYXRpb24KKzAwMTk2QiAgICAgKGJhc2UgMTYpCQlEYW5wZXggQ29ycG9yYXRpb24KKwkJCQkyMTE0IFJpbmd3b29kIEF2ZW51ZQorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTZDICAgKGhleCkJCUVUUk9WSVNJT04gVEVDSE5PTE9HWQorMDAxOTZDICAgICAoYmFzZSAxNikJCUVUUk9WSVNJT04gVEVDSE5PTE9HWQorCQkJCTJGLCAxOS01IFNhbiBDaHVuZyBSZC4sCisJCQkJQmxvY2sgQywgTmFuIEthbmcgU29mdHdhcmUgUGFyaywgTmFuIEthbmcgRGlzdHJpY3QsCisJCQkJVEFJUEVJICAxMTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTZEICAgKGhleCkJCVJheWJpdCBTeXN0ZW1zIEtvcmVhLCBJbmMKKzAwMTk2RCAgICAgKGJhc2UgMTYpCQlSYXliaXQgU3lzdGVtcyBLb3JlYSwgSW5jCisJCQkJRHJlYW0gVG93ZXIgMTIyMQorCQkJCTkyMy0xNCwgTW9rZG9uZywgWWFuZ2NodW5rdQorCQkJCVNlb3VsICAxNTgtNzE4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LTZFICAgKGhleCkJCU1ldGFjb20gKFB0eSkgTHRkLgorMDAxOTZFICAgICAoYmFzZSAxNikJCU1ldGFjb20gKFB0eSkgTHRkLgorCQkJCTYgTmRhYmVuaSBCdXNpbmVzcyBQYXJrCisJCQkJSW55b25pIFN0ciwgTmRhYmVuaQorCQkJCUNhcGUgVG93biBXZXN0ZXJuIENhcGUgNzQwNQorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xOS02RiAgIChoZXgpCQlTZW5zb1BhcnQgR21iSAorMDAxOTZGICAgICAoYmFzZSAxNikJCVNlbnNvUGFydCBHbWJICisJCQkJQW0gV2llZGVuYmFjaCAxCisJCQkJV2llZGVuIEJhZGVuLVd1ZXJ0dGVtYmVyZyBELTc5Njk1CisJCQkJR0VSTUFOWQorCiswMC0xOS03MCAgIChoZXgpCQlaLUNvbSwgSW5jLgorMDAxOTcwICAgICAoYmFzZSAxNikJCVotQ29tLCBJbmMuCisJCQkJN0YtMiwgTk8uOSwgUFJPU1BFUklUWSAxU1QgUkQuCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOQ0hVICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTcxICAgKGhleCkJCUd1YW5nemhvdSBVbmljb21wIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAxOTcxICAgICAoYmFzZSAxNikJCUd1YW5nemhvdSBVbmljb21wIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTcvRixOb3J0aCBUb3dlcixKaW5zaGFuIEJ1aWxkaW5nLk5vLjI0OAorCQkJCVJkIFd1c2hhbiwgVGlhbmhlIERpc3RyaWN0CisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2MzAKKwkJCQlDSElOQQorCiswMC0xOS03MiAgIChoZXgpCQlQbGV4dXMgKFhpYW1lbikgQ28uLGx0ZAorMDAxOTcyICAgICAoYmFzZSAxNikJCVBsZXh1cyAoWGlhbWVuKSBDby4sbHRkCisJCQkJTm8uNiBYaWFuZ3hpbmcgMiBSb2FkCisJCQkJWGlhbmd5dSBGcmVlIFRyYWRlIFpvbmUKKwkJCQlYaWFtZW4gRnVqaWFuIDM2MTAwNgorCQkJCUNISU5BCisKKzAwLTE5LTczICAgKGhleCkJCVpldWdtYSBTeXN0ZW1zCiswMDE5NzMgICAgIChiYXNlIDE2KQkJWmV1Z21hIFN5c3RlbXMKKwkJCQlTdWl0ZSAyNTAKKwkJCQkxMzU3MSBDb21tZXJjZSBQYXJrd2F5CisJCQkJUmljaG1vbmQgQkMgVjZWIDJSMgorCQkJCUNBTkFEQQorCiswMC0xOS03NCAgIChoZXgpCQlBYm9Db20gU3lzdGVtcywgSW5jLgorMDAxOTc0ICAgICAoYmFzZSAxNikJCUFib0NvbSBTeXN0ZW1zLCBJbmMuCisJCQkJMUYgLCBOby4gMjEsIFlhbmZhIDJuZCBSZC4sIFNCSVAKKwkJCQlIc2luY2h1IENpdHkgSHNpbmNodSAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTc1ICAgKGhleCkJCUJlaWppbmcgSHVpc2VuIG5ldHdvcmtzIHRlY2hub2xvZ3kgSW5jCiswMDE5NzUgICAgIChiYXNlIDE2KQkJQmVpamluZyBIdWlzZW4gbmV0d29ya3MgdGVjaG5vbG9neSBJbmMKKwkJCQlKaWEjMiBvZiBYaWxpIG9mIEJhaXl1biByb2FkLFhpY2hlbmcgZGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwNDUKKwkJCQlDSElOQQorCiswMC0xOS03NiAgIChoZXgpCQlYaXBoZXIgVGVjaG5vbG9naWVzLCBMTEMKKzAwMTk3NiAgICAgKGJhc2UgMTYpCQlYaXBoZXIgVGVjaG5vbG9naWVzLCBMTEMKKwkJCQkxNTYgUml2ZXIgUm9hZAorCQkJCVdpbGxpbmd0b24gQ1QgMDYyNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTc3ICAgKGhleCkJCUFlcm9oaXZlIE5ldHdvcmtzLCBJbmMuCiswMDE5NzcgICAgIChiYXNlIDE2KQkJQWVyb2hpdmUgTmV0d29ya3MsIEluYy4KKwkJCQkzMTUwLUMgQ29yb25hZG8gRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNzggICAoaGV4KQkJRGF0dW0gU3lzdGVtcywgSW5jLgorMDAxOTc4ICAgICAoYmFzZSAxNikJCURhdHVtIFN5c3RlbXMsIEluYy4KKwkJCQkzNjY2IFRpZmZhbmkgQ3QuCisJCQkJU2FudGEgQ3J1eiBDQSA5NTA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNzkgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTk3OSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMTktN0EgICAoaGV4KQkJTUFaZVQgR21iSAorMDAxOTdBICAgICAoYmFzZSAxNikJCU1BWmVUIEdtYkgKKwkJCQlHb2VzY2h3aXR6ZXIgU3RyLiAzMgorCQkJCUplbmEgIEQtMDc3NDUKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTdCICAgKGhleCkJCVBpY290ZXN0IENvcnAuCiswMDE5N0IgICAgIChiYXNlIDE2KQkJUGljb3Rlc3QgQ29ycC4KKwkJCQk4Ri0xLCAyODYtOSwgSHNpbi1ZYSBSZC4sIDgwNjczCisJCQkJS2FvaHNpdW5nICA4MDY3MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktN0MgICAoaGV4KQkJUmllZGVsIENvbW11bmljYXRpb25zIEdtYkgKKzAwMTk3QyAgICAgKGJhc2UgMTYpCQlSaWVkZWwgQ29tbXVuaWNhdGlvbnMgR21iSAorCQkJCVVlbGxlbmRhaGxlciBTdHIuIDM1MworCQkJCVd1cHBlcnRhbCBOUlcgNDIxMDkKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTdEICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQKKzAwMTk3RCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkCisJCQkJNjYsIENodW5nIFNoYW4gUmQuVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktN0UgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZAorMDAxOTdFICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQKKwkJCQk2NiwgQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS03RiAgIChoZXgpCQlQTEFOVFJPTklDUywgSU5DLgorMDAxOTdGICAgICAoYmFzZSAxNikJCVBMQU5UUk9OSUNTLCBJTkMuCisJCQkJMzQ1IEVOQ0lOQUwgU1RSRUVUCisJCQkJU0FOVEEgQ1JVWiBDQUxJRk9STklBIDk1MDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS04MCAgIChoZXgpCQlHcmlkcG9pbnQgU3lzdGVtcworMDAxOTgwICAgICAoYmFzZSAxNikJCUdyaWRwb2ludCBTeXN0ZW1zCisJCQkJNDA0MyBDYXJsaW5nIEF2ZW51ZSwgU3VpdGUgMjAwCisJCQkJT3R0YXdhIE9udGFyaW8gSzJLIDJBMworCQkJCUNBTkFEQQorCiswMC0xOS04MSAgIChoZXgpCQlWaXZveCBJbmMKKzAwMTk4MSAgICAgKGJhc2UgMTYpCQlWaXZveCBJbmMKKwkJCQk0MCBTcGVlbiBTdHJlZXQKKwkJCQlTdWl0ZSA0MDIKKwkJCQlGcmFtaW5naGFtIE1BIDAxNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS04MiAgIChoZXgpCQlTbWFyRFRWCiswMDE5ODIgICAgIChiYXNlIDE2KQkJU21hckRUVgorCQkJCTUzMSBBdmVudWUgZHUgU2VycG9sZXQKKwkJCQlaRSBBdGjpbGlhIDIKKwkJCQlMYSBDaW90YXQgRnJhbmNlIDEzIDcwNAorCQkJCUZSQU5DRQorCiswMC0xOS04MyAgIChoZXgpCQlDQ1QgUiZEIExpbWl0ZWQKKzAwMTk4MyAgICAgKGJhc2UgMTYpCQlDQ1QgUiZEIExpbWl0ZWQKKwkJCQkxOC9GIENDVCBUZWxlY29tIEJ1aWxkaW5nCisJCQkJMTEgV28gU2hpbmcgU3RyZWV0CisJCQkJRm90YW4sIFNoYXRpbiBOLlQuIDAwMDAKKwkJCQlIT05HIEtPTkcKKworMDAtMTktODQgICAoaGV4KQkJRVNUSUMgQ29ycG9yYXRpb24KKzAwMTk4NCAgICAgKGJhc2UgMTYpCQlFU1RJQyBDb3Jwb3JhdGlvbgorCQkJCTItNS05IEhhc2hpYmFoaWdhc2hpbm8tY2hvCisJCQkJTW9yaWd1Y2hpIE9zYWthIDU3MC0wMDMxCisJCQkJSkFQQU4KKworMDAtMTktODUgICAoaGV4KQkJSVQgV2F0Y2hkb2dzLCBJbmMKKzAwMTk4NSAgICAgKGJhc2UgMTYpCQlJVCBXYXRjaGRvZ3MsIEluYworCQkJCTEyODg1IFJlc2VhcmNoLCBTdWl0ZSAyMTBCCisJCQkJQXVzdGluIFRYIDc4NzUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS04NiAgIChoZXgpCQlDaGVuZyBIb25namlhbgorMDAxOTg2ICAgICAoYmFzZSAxNikJCUNoZW5nIEhvbmdqaWFuCisJCQkJUm0uMjMwNUIuU2VnZSBQbGF6YSxIdWFxaWFuZyBOb3J0aCBSZC4sCisJCQkJRnV0aWFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTE5LTg3ICAgKGhleCkJCVBhbmFzb25pYyBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDE5ODcgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQk2MDAgU2FlZG8tY2hvLCBUc3V6dWtpLWt1LAorCQkJCVlva29oYW1hIENpdHkgS2FuYWdhd2EgUHJlZmVjdHVyZSAyMjQtODUzOQorCQkJCUpBUEFOCisKKzAwLTE5LTg4ICAgKGhleCkJCVdpMldpLCBJbmMKKzAwMTk4OCAgICAgKGJhc2UgMTYpCQlXaTJXaSwgSW5jCisJCQkJMjEwNyBOLiAxc3QgU3RyZWV0CisJCQkJU3VpdGUgNTQwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTg5ICAgKGhleCkJCVNvbml0cm9sIENvcnBvcmF0aW9uCiswMDE5ODkgICAgIChiYXNlIDE2KQkJU29uaXRyb2wgQ29ycG9yYXRpb24KKwkJCQkxNzA3IE9ybGFuZG8gQ2VudHJhbCBQa3d5LgorCQkJCVN1aXRlIDUwMAorCQkJCU9ybGFuZG8gRkwgMzI4MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LThBICAgKGhleCkJCU5vcnRocm9wIEdydW1tYW4gU3lzdGVtcyBDb3JwLgorMDAxOThBICAgICAoYmFzZSAxNikJCU5vcnRocm9wIEdydW1tYW4gU3lzdGVtcyBDb3JwLgorCQkJCTcwNTUgVHJveSBIaWxsIERyaXZlCisJCQkJRWxrcmlkZ2UgTWFyeWxhbmQgMjEwNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LThCICAgKGhleCkJCU5vdmVyYSBPcHRpY3MgS29yZWEsIEluYy4KKzAwMTk4QiAgICAgKGJhc2UgMTYpCQlOb3ZlcmEgT3B0aWNzIEtvcmVhLCBJbmMuCisJCQkJNDYzLTEgSmVvbiBNaW4gRG9uZyBZdXNlb25nIEd1CisJCQkJRGVhamVvbiAgMzA1LTgxMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS04QyAgIChoZXgpCQlpWFNlYQorMDAxOThDICAgICAoYmFzZSAxNikJCWlYU2VhCisJCQkJNTUgYXYgYXVndXN0ZSBSZW5vaXIKKwkJCQlNYXJseSBsZSBSb2kgIDc4MTYwCisJCQkJRlJBTkNFCisKKzAwLTE5LThEICAgKGhleCkJCU9jZWFuIE9wdGljcywgSW5jLgorMDAxOThEICAgICAoYmFzZSAxNikJCU9jZWFuIE9wdGljcywgSW5jLgorCQkJCTgzMCBEb3VnbGFzIEF2ZQorCQkJCUR1bmVkaW4gRkwgMzQ2OTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LThFICAgKGhleCkJCU90aWNvbiBBL1MKKzAwMTk4RSAgICAgKGJhc2UgMTYpCQlPdGljb24gQS9TCisJCQkJS29uZ2ViYWtrZW4gOQorCQkJCVNt+HJ1bSAgMjc2NQorCQkJCURFTk1BUksKKworMDAtMTktOEYgICAoaGV4KQkJQWxjYXRlbCBCZWxsIE4uVi4KKzAwMTk4RiAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIEJlbGwgTi5WLgorCQkJCUNvcGVybmljdXNsYWFuIDUwCisJCQkJQW50d2VycCAgQi0yMDE4CisJCQkJQkVMR0lVTQorCiswMC0xOS05MCAgIChoZXgpCQlFTE0gREFUQSBDby4sIEx0ZC4KKzAwMTk5MCAgICAgKGJhc2UgMTYpCQlFTE0gREFUQSBDby4sIEx0ZC4KKwkJCQkyLTE1IFRFQ0hOTy1QQVJLIDEtQ0hPTUUKKwkJCQlTSElNT05PUFBPUk8sIEFUU1VCRVRTVS1LVQorCQkJCVNBUFBPUk8gSE9LS0FJRE8gMDA0LTAwMTUKKwkJCQlKQVBBTgorCiswMC0xOS05MSAgIChoZXgpCQlhdmluZm8KKzAwMTk5MSAgICAgKGJhc2UgMTYpCQlhdmluZm8KKwkJCQlKaWFodWl5dWFuIDcwMyxIdWFhbyBDZW50ZXIsMzEjIFppemh1eXVhbiBSb2FkLAorCQkJCUhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODkKKwkJCQlDSElOQQorCiswMC0xOS05MiAgIChoZXgpCQlCbHVlc29ja2V0LCBJbmMKKzAwMTk5MiAgICAgKGJhc2UgMTYpCQlCbHVlc29ja2V0LCBJbmMKKwkJCQkxMCBOb3J0aCBBdmUKKwkJCQlCdXJsaW5ndG9uIE1BIDAxODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS05MyAgIChoZXgpCQlDaGFuZ3NodSBTd2l0Y2hnZWFyIE1GRy4gQ28uLEx0ZC4gKEZvcm1lciBDaGFuZ3NodSBTd2l0Y2hnZWEKKzAwMTk5MyAgICAgKGJhc2UgMTYpCQlDaGFuZ3NodSBTd2l0Y2hnZWFyIE1GRy4gQ28uLEx0ZC4gKEZvcm1lciBDaGFuZ3NodSBTd2l0Y2hnZWEKKwkJCQlOby4gOCBKaWFueWUgUm9hZAorCQkJCUNoYW5nc2h1IEppYW5nc3UgMjE1NTAwCisJCQkJQ0hJTkEKKworMDAtMTktOTQgICAoaGV4KQkJSm9yamluIFRlY2hub2xvZ2llcyBJbmMuCiswMDE5OTQgICAgIChiYXNlIDE2KQkJSm9yamluIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNUYsIE5vLjI4LCBMYW5lMTQxLCBTaW5nLWFpIFJkLgorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTk1ICAgKGhleCkJCUp1cm9uZyBIaS1UZWNoIChTdXpob3UpQ28ubHRkCiswMDE5OTUgICAgIChiYXNlIDE2KQkJSnVyb25nIEhpLVRlY2ggKFN1emhvdSlDby5sdGQKKwkJCQkyNzUsWGluZyBMb25nIFN0cmVldKOsU3V6aG91IEluZHVkdHJpYWwgUGFyaworCQkJCVN1emhvdSBKaWFuZyBTdSAyMTUwMjEKKwkJCQlDSElOQQorCiswMC0xOS05NiAgIChoZXgpCQlUdXJib0NoZWYgVGVjaG5vbG9naWVzIEluYy4KKzAwMTk5NiAgICAgKGJhc2UgMTYpCQlUdXJib0NoZWYgVGVjaG5vbG9naWVzIEluYy4KKwkJCQk0MjQwIEludGVybmF0aW9uYWwgUGFya3dheQorCQkJCVN1aXRlIDEwNQorCQkJCUNhcnJvbGx0b24gVGV4YXMgNzUwMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTk3ICAgKGhleCkJCVNvZnQgRGV2aWNlIFNkbiBCaGQKKzAwMTk5NyAgICAgKGJhc2UgMTYpCQlTb2Z0IERldmljZSBTZG4gQmhkCisJCQkJNjctMiBKYWxhbiAyLzI3RgorCQkJCUtMU0MgV2FuZ3NhIE1hanUKKwkJCQlLdWFsYSBMdW1wdXIgV1AgNTMzMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xOS05OCAgIChoZXgpCQlTQVRPIENPUlBPUkFUSU9OCiswMDE5OTggICAgIChiYXNlIDE2KQkJU0FUTyBDT1JQT1JBVElPTgorCQkJCTEtMjA3LE9OQVJJLUNITywKKwkJCQlPTUlZQS1LVQorCQkJCVNBSVRBTUEtU0hJIFNBSVRBTUEgMzMwLTA4NTIKKwkJCQlKQVBBTgorCiswMC0xOS05OSAgIChoZXgpCQlGdWppdHN1IFRlY2hub2xvZ3kgU29sdXRpb25zCiswMDE5OTkgICAgIChiYXNlIDE2KQkJRnVqaXRzdSBUZWNobm9sb2d5IFNvbHV0aW9ucworCQkJCUJ1ZXJnZXJtZWlzdGVyLVVscmljaC1TdHJhc3NlIDEwMAorCQkJCUF1Z3NidXJnICA4NjE5OQorCQkJCUdFUk1BTlkKKworMDAtMTktOUEgICAoaGV4KQkJRURPLUVWSQorMDAxOTlBICAgICAoYmFzZSAxNikJCUVETy1FVkkKKwkJCQk3MDY1IENvbHVtYmlhIEdhdGV3YXkgRHIuCisJCQkJQ29sdW1iaWEgTUQgMjEwNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTlCICAgKGhleCkJCURpdmVyc2lmaWVkIFRlY2huaWNhbCBTeXN0ZW1zLCBJbmMuCiswMDE5OUIgICAgIChiYXNlIDE2KQkJRGl2ZXJzaWZpZWQgVGVjaG5pY2FsIFN5c3RlbXMsIEluYy4KKwkJCQk5MDkgRWxlY3RyaWMgQXZlbnVlCisJCQkJU3VpdGUgMjA2CisJCQkJU2VhbCBCZWFjaCBDYWxpZm9ybmlhIDkwNzQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS05QyAgIChoZXgpCQlDVFJJTkcKKzAwMTk5QyAgICAgKGJhc2UgMTYpCQlDVFJJTkcKKwkJCQkjNTE0LCBXb3JsZCBNZXJpZGlhbiBWZW50dXJlIENlbnRlciBJSQorCQkJCUdhc25hLWRvbmcKKwkJCQlLZXVtY2hlb24tZ3UgU2VvdWwgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS05RCAgIChoZXgpCQlWSVpJTywgSW5jLgorMDAxOTlEICAgICAoYmFzZSAxNikJCVZJWklPLCBJbmMuCisJCQkJMzkgVGVzbGEKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTlFICAgKGhleCkJCVNIT1dBREVOU0hJIEVMRUNUUk9OSUNTLElOQy4KKzAwMTk5RSAgICAgKGJhc2UgMTYpCQlTSE9XQURFTlNISSBFTEVDVFJPTklDUyxJTkMuCisJCQkJMTk3OCBISVJPT0tBLU5PTVVSQQorCQkJCVNISU9KSVJJLUNJVFkgTkFHQU5PLVBSRUYuIDM5OS0wNzAyCisJCQkJSkFQQU4KKworMDAtMTktOUYgICAoaGV4KQkJREtUIEEvUworMDAxOTlGICAgICAoYmFzZSAxNikJCURLVCBBL1MKKwkJCQlGYW5vZXZlaiA2CisJCQkJS3IuIFNhYWJ5ICBESy00MDYwCisJCQkJREVOTUFSSworCiswMC0xOS1BMCAgIChoZXgpCQlOSUhPTiBEQVRBIFNZU1RFTlMsIElOQy4KKzAwMTlBMCAgICAgKGJhc2UgMTYpCQlOSUhPTiBEQVRBIFNZU1RFTlMsIElOQy4KKwkJCQk2LTksIEtveW8tY2hvIG5ha2EKKwkJCQlIaWdhc2hpbmFkYS1rdQorCQkJCUtvYmUtc2hpIEh5b2dvIDY1OC0wMDMyCisJCQkJSkFQQU4KKworMDAtMTktQTEgICAoaGV4KQkJTEcgSU5GT1JNQVRJT04gJiBDT01NLgorMDAxOUExICAgICAoYmFzZSAxNikJCUxHIElORk9STUFUSU9OICYgQ09NTS4KKwkJCQk2MC0zOSxLYXNhbi1kb25nLEt1bWNob24ta3UKKwkJCQlTZW91bCAgMTUzLTAyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS1BMiAgIChoZXgpCQlPUkRZTiBURUNITk9MT0dJRVMKKzAwMTlBMiAgICAgKGJhc2UgMTYpCQlPUkRZTiBURUNITk9MT0dJRVMKKwkJCQlPem9uZSBNYW5heSBUZWNoIFBhcmssIAorCQkJCTJuZCBGbG9vciwgVG93ZXIgQiwgQmVndXIgSG9ibGksIEhvbmdhc2FuZHJhLCBIb3N1ciBSb2FkLCAKKwkJCQlCYW5nYWxvcmUgICA1NjAgMDY4CisJCQkJSU5ESUEKKworMDAtMTktQTMgICAoaGV4KQkJYXN0ZWVsIGVsZWN0cm9uaXF1ZSBhdGxhbnRpcXVlCiswMDE5QTMgICAgIChiYXNlIDE2KQkJYXN0ZWVsIGVsZWN0cm9uaXF1ZSBhdGxhbnRpcXVlCisJCQkJemEgZGUgbGEgbGFuZGUgZGUgc2FpbnQgamVhbgorCQkJCWJwIDkwMTExCisJCQkJc2FpbnRlIG1hcmllIGRlIHJlZG9uICAzNTYwMAorCQkJCUZSQU5DRQorCiswMC0xOS1BNCAgIChoZXgpCQlBdXN0YXIgVGVjaG5vbG9neSAoaGFuZyB6aG91KSBDby4sTHRkCiswMDE5QTQgICAgIChiYXNlIDE2KQkJQXVzdGFyIFRlY2hub2xvZ3kgKGhhbmcgemhvdSkgQ28uLEx0ZAorCQkJCTctNDAyLFdlc3QgTGFrZSBTb2Z0d2FyZSBQYXJ0CisJCQkJTm8gMSxKaWFnb25nIFJkLgorCQkJCUhhbmcgWmhvdSBaaGUgSmlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworMDAtMTktQTUgICAoaGV4KQkJUmFkYXJGaW5kIENvcnBvcmF0aW9uCiswMDE5QTUgICAgIChiYXNlIDE2KQkJUmFkYXJGaW5kIENvcnBvcmF0aW9uCisJCQkJMjEwMCBHYXRld2F5IENlbnRyZSBCbHZkLiwgU3VpdGUgMTUwCisJCQkJTW9ycmlzdmlsbGUgTkMgMjc1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUE2ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxOUE2ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUE3ICAgKGhleCkJCUlUVS1UCiswMDE5QTcgICAgIChiYXNlIDE2KQkJSVRVLVQKKwkJCQlQbGFjZSBkZXMgTmF0aW9ucworCQkJCUdlbmV2YSAyMCAgQ0gtMTIxMQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE5LUE4ICAgKGhleCkJCVdpUXVlc3QgQ29tbXVuaWNhdGlvbnMKKzAwMTlBOCAgICAgKGJhc2UgMTYpCQlXaVF1ZXN0IENvbW11bmljYXRpb25zCisJCQkJOTE1IEVudGVycHJpc2UgQmx2ZC4KKwkJCQlTdWl0ZSAyMDAKKwkJCQlBbGxlbiBUZXhhcyA3NTAxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQTkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOUE5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQUEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOUFBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQUIgICAoaGV4KQkJUmF5Y29tIENPIC4sIExURAorMDAxOUFCICAgICAoYmFzZSAxNikJCVJheWNvbSBDTyAuLCBMVEQKKwkJCQlBLDMtNC9GTCwgQnVpbGRpbmcgMSwyNyBDaHVhbmd4aW4gUm9hZCwKKwkJCQlDaGFuZ3BpbmcgU2NpZW5jZSBQYXJrCisJCQkJQmVpamluZyAgMTAyMjAwCisJCQkJQ0hJTkEKKworMDAtMTktQUMgICAoaGV4KQkJR1NQIFNZU1RFTVMgSW5jLgorMDAxOUFDICAgICAoYmFzZSAxNikJCUdTUCBTWVNURU1TIEluYy4KKwkJCQkxM0ZMLCAxMDEgRG9uZywgQ2h1bnVpIFRlY2hubyBQYXJrIDEsCisJCQkJMjAwLTEsIENodW51aS1Eb25nLCBXb25taS1HVSwKKwkJCQlCdWNoZW9uLUNpdHkgR3llb25nZ2ktRG8gNDIwLTg1NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS1BRCAgIChoZXgpCQlCT0JTVCBTQQorMDAxOUFEICAgICAoYmFzZSAxNikJCUJPQlNUIFNBCisJCQkJcnRlIGRlcyBmbHVtZWF1eCA1MAorCQkJCUNhc2UgUG9zdGFsZSAxMDAxIExhdXNhbm5lCisJCQkJUFJJTExZIFZEIDEwMDgKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xOS1BRSAgIChoZXgpCQlIb3BsaW5nIFRlY2hub2xvZ2llcyBiLnYuCiswMDE5QUUgICAgIChiYXNlIDE2KQkJSG9wbGluZyBUZWNobm9sb2dpZXMgYi52LgorCQkJCUNhbWVyYXN0cmFhdCAxMAorCQkJCUFsbWVyZSBGbGV2b2xhbmQgMTMyMiBCQworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE5LUFGICAgKGhleCkJCVJpZ29sIFRlY2hub2xvZ2llcywgSW5jLgorMDAxOUFGICAgICAoYmFzZSAxNikJCVJpZ29sIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCU5vLiAxNTYgQ2FpIEhlIFZpbGxhZ2UsIFNoYSBIZSBUb3duCisJCQkJQ2hhbmcgUGluZyBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMjIwNgorCQkJCUNISU5BCisKKzAwLTE5LUIwICAgKGhleCkJCUhhbllhbmcgU3lzdGVtCiswMDE5QjAgICAgIChiYXNlIDE2KQkJSGFuWWFuZyBTeXN0ZW0KKwkJCQk3MDFIbywgS29mb21vIFRlY2hubyBDZW50ZXIgSUksIDEyODktNQorCQkJCUp1bmd3YW5nLURvbmcKKwkJCQlTaGlodW5nLVNoaSBLeXVuZ2dpLURvIDQyOS04NTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktQjEgICAoaGV4KQkJQXJyb3c3IENvcnBvcmF0aW9uCiswMDE5QjEgICAgIChiYXNlIDE2KQkJQXJyb3c3IENvcnBvcmF0aW9uCisJCQkJS2FtaWppbWEgMy0yNy03CisJCQkJSGFtYW1hdHN1IFNoaXp1b2thIDQzMy04MTIyCisJCQkJSkFQQU4KKworMDAtMTktQjIgICAoaGV4KQkJWFluZXRzb2Z0IENvLixMdGQKKzAwMTlCMiAgICAgKGJhc2UgMTYpCQlYWW5ldHNvZnQgQ28uLEx0ZAorCQkJCU5PLjE1OFpoZW55dSBTdHJlZXQgSGlnaCBJbmR1c3RyaWVzIERldmVsb3BtZW50IGFyZWEKKwkJCQlDaGFuZ0NodW4gSmlMaW4gMTMwMDAwCisJCQkJQ0hJTkEKKworMDAtMTktQjMgICAoaGV4KQkJU3RhbmZvcmQgUmVzZWFyY2ggU3lzdGVtcworMDAxOUIzICAgICAoYmFzZSAxNikJCVN0YW5mb3JkIFJlc2VhcmNoIFN5c3RlbXMKKwkJCQkxMjkwLUQgUmVhbXdvb2QgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1CNCAgIChoZXgpCQlWaWRlb0Nhc3QgTHRkLgorMDAxOUI0ICAgICAoYmFzZSAxNikJCVZpZGVvQ2FzdCBMdGQuCisJCQkJR3lhcm1hdCB1LiA5OS9CCisJCQkJQnVkYXBlc3QgIDExNDcKKwkJCQlIVU5HQVJZCisKKzAwLTE5LUI1ICAgKGhleCkJCUZhbWFyIEZ1ZWd1aW5hIFMuQS4KKzAwMTlCNSAgICAgKGJhc2UgMTYpCQlGYW1hciBGdWVndWluYSBTLkEuCisJCQkJUm9kbmV5IDcwCisJCQkJQnVlbm9zIEFpcmVzICAxNDI3CisJCQkJQVJHRU5USU5BCisKKzAwLTE5LUI2ICAgKGhleCkJCUV1cm8gRW1tZSBzLnIubC4KKzAwMTlCNiAgICAgKGJhc2UgMTYpCQlFdXJvIEVtbWUgcy5yLmwuCisJCQkJVmlhIEJlbHZlZGVyZSwgMjQKKwkJCQlHYWxsaWF0ZSBMb21iYXJkbyBWYXJlc2UgMjEwMjAKKwkJCQlJVEFMWQorCiswMC0xOS1CNyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxOUI3ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xOS1COCAgIChoZXgpCQlCb3VuZGFyeSBEZXZpY2VzCiswMDE5QjggICAgIChiYXNlIDE2KQkJQm91bmRhcnkgRGV2aWNlcworCQkJCTcyMDAgVy4gT2FrbGFuZAorCQkJCUNoYW5kbGVyIEFaIDg1MjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1COSAgIChoZXgpCQlEZWxsIEluYy4KKzAwMTlCOSAgICAgKGJhc2UgMTYpCQlEZWxsIEluYy4KKwkJCQlPbmUgRGVsbCBXYXkKKwkJCQlNUyA4NTQ1CisJCQkJUm91bmQgUm9jayBUWCA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQkEgICAoaGV4KQkJUGFyYWRveCBTZWN1cml0eSBTeXN0ZW1zIEx0ZAorMDAxOUJBICAgICAoYmFzZSAxNikJCVBhcmFkb3ggU2VjdXJpdHkgU3lzdGVtcyBMdGQKKwkJCQk3ODAgSW5kdXN0cmlhbCBCbHZkCisJCQkJU3QtRXVzdGFjaGUgUXVlYmVjIEo3UiA1VjMKKwkJCQlDQU5BREEKKworMDAtMTktQkIgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDE5QkIgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA2MDMwOAorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUJDICAgKGhleCkJCUVMRUNUUk8gQ0hBTkNFIFNSTAorMDAxOUJDICAgICAoYmFzZSAxNikJCUVMRUNUUk8gQ0hBTkNFIFNSTAorCQkJCUNBUkhVRSAzMTc5CisJCQkJQVYuIEVWQSBQRVJPTiA3MDQ5CisJCQkJQ0FQSVRBTCBGRURFUkFMIEJVRU5PUyBBSVJFUyAxNDQwCisJCQkJQVJHRU5USU5BCisKKzAwLTE5LUJEICAgKGhleCkJCU5ldyBNZWRpYSBMaWZlCiswMDE5QkQgICAgIChiYXNlIDE2KQkJTmV3IE1lZGlhIExpZmUKKwkJCQlIZWEgSnUgQmlsZCwgNUYsIDgzNy03LCBZZW9rc2FtLWRvbmcKKwkJCQlLYW5nbmFtLWd1IFNlb3VsIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktQkUgICAoaGV4KQkJQWx0YWkgVGVjaG5vbG9naWVzIExpbWl0ZWQKKzAwMTlCRSAgICAgKGJhc2UgMTYpCQlBbHRhaSBUZWNobm9sb2dpZXMgTGltaXRlZAorCQkJCVVuaXQgMTAzQiBhbmQgMTA1LCAxL0YsIEJsb2NrIDksCisJCQkJSG9uZyBLb25nIFNjaWVuY2UgUGFyaworCQkJCVNoYXRpbiBOZXcgVGVycml0b3JpZXMgCisJCQkJSE9ORyBLT05HCisKKzAwLTE5LUJGICAgKGhleCkJCUNpdGl3YXkgdGVjaG5vbG9neSBDby4sbHRkCiswMDE5QkYgICAgIChiYXNlIDE2KQkJQ2l0aXdheSB0ZWNobm9sb2d5IENvLixsdGQKKwkJCQlOby4yIEJ1aWxkaW5nLEppYSAzMixCZWloZXlhbiBBdmVudWUsRWFzdCBDaXR5CisJCQkJUGVpamluZyAgMTAwMDA2CisJCQkJQ0hJTkEKKworMDAtMTktQzAgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDE5QzAgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjAwIE4uIEh3eSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQzEgICAoaGV4KQkJQWxwcyBFbGVjdHJpYyBDby4sIEx0ZAorMDAxOUMxICAgICAoYmFzZSAxNikJCUFscHMgRWxlY3RyaWMgQ28uLCBMdGQKKwkJCQkxLTItMSwgT2tpbm91Y2hpLAorCQkJCVNvbWEtY2l0eSBGdWt1c2hpbWEtcHJlZi4gOTc2LTg1MDEKKwkJCQlKQVBBTgorCiswMC0xOS1DMiAgIChoZXgpCQlFcXV1c3RlayBTb2x1dGlvbnMsIEluYy4KKzAwMTlDMiAgICAgKGJhc2UgMTYpCQlFcXV1c3RlayBTb2x1dGlvbnMsIEluYy4KKwkJCQkjMjg2IC0gNTQ4OSBCeXJuZSBSb2FkLAorCQkJCUJ1cm5hYnkgQkMgVjVKIDNKMQorCQkJCUNBTkFEQQorCiswMC0xOS1DMyAgIChoZXgpCQlRdWFsaXRyb2wKKzAwMTlDMyAgICAgKGJhc2UgMTYpCQlRdWFsaXRyb2wKKwkJCQlXaWxkZmxvd2VyIFdheQorCQkJCUFwb2xsbyBSb2FkCisJCQkJQmVsZmFzdCBDby4gQW50cmltIEJUMTIgNlRBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTktQzQgICAoaGV4KQkJSW5mb2NyeXB0IEluYy4KKzAwMTlDNCAgICAgKGJhc2UgMTYpCQlJbmZvY3J5cHQgSW5jLgorCQkJCTcxMSwgQllVQ0tTQU4gRElHSVRBTCBWQUxMRVkgMSAyMTItMTYsCisJCQkJR3Vyby1ndQorCQkJCVNlb3VsICAxNTItMDUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LUM1ICAgKGhleCkJCVNPTlkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBpbmMsCiswMDE5QzUgICAgIChiYXNlIDE2KQkJU09OWSBDb21wdXRlciBFbnRlcnRhaW5tZW50IGluYywKKwkJCQk2LTIxLDJDaG9tZQorCQkJCU1pbmFtaS1Bb3lhbWEKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA3LTAwNjIKKwkJCQlKQVBBTgorCiswMC0xOS1DNiAgIChoZXgpCQlaVEUgQ29ycG9yYXRpb24KKzAwMTlDNiAgICAgKGJhc2UgMTYpCQlaVEUgQ29ycG9yYXRpb24KKwkJCQlUZWNobm9sb2d5IE1hbmFnZW1lbnQgRGVwYXJ0bWVudCwgCisJCQkJMTIvRi4sIFpURSBSJkQgQnVpbGRpbmcsIEtlamluYW4gUm9hZAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xOS1DNyAgIChoZXgpCQlDYW1icmlkZ2UgSW5kdXN0cmllcyhHcm91cCkgQ28uLEx0ZC4KKzAwMTlDNyAgICAgKGJhc2UgMTYpCQlDYW1icmlkZ2UgSW5kdXN0cmllcyhHcm91cCkgQ28uLEx0ZC4KKwkJCQlSb29tIDMwOSwzMzMgSG9uZyBRaWFvIFJvYWQKKwkJCQlTaGFuZ2hhaSAgMjAwMDMwCisJCQkJQ0hJTkEKKworMDAtMTktQzggICAoaGV4KQkJQW55REFUQSBDb3Jwb3JhdGlvbgorMDAxOUM4ICAgICAoYmFzZSAxNikJCUFueURBVEEgQ29ycG9yYXRpb24KKwkJCQkxODkwMiBCYXJkZWVuIEF2ZS4KKwkJCQlJcnZpbmUgQ0EgOTE2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUM5ICAgKGhleCkJCVMmQyBFTEVDVFJJQyBDT01QQU5ZCiswMDE5QzkgICAgIChiYXNlIDE2KQkJUyZDIEVMRUNUUklDIENPTVBBTlkKKwkJCQkxMTM1IEFUTEFOVElDIEFWRQorCQkJCUFMQU1FREEgQ0EgOTQ1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUNBICAgKGhleCkJCUJyb2FkYXRhIENvbW11bmljYXRpb25zLCBJbmMKKzAwMTlDQSAgICAgKGJhc2UgMTYpCQlCcm9hZGF0YSBDb21tdW5pY2F0aW9ucywgSW5jCisJCQkJMjU0NSBXIDIzN3RoIFN0IFN0ZSBLCisJCQkJVG9ycmFuY2UgQ2EgOTA1MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUNCICAgKGhleCkJCVp5WEVMIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCiswMDE5Q0IgICAgIChiYXNlIDE2KQkJWnlYRUwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKwkJCQlOby4gNiwgSW5ub3ZhdGlvbiBSb2FkIElJCisJCQkJSHNpbmNodSBTY2llbmNlIFBhcmssIEhzaW5jaHUgMzAwCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS1DQyAgIChoZXgpCQlSQ0cgKEhLKSBMdGQKKzAwMTlDQyAgICAgKGJhc2UgMTYpCQlSQ0cgKEhLKSBMdGQKKwkJCQk5L0YuLCBDb3JlIEMsIEN5YmVycG9ydCAzCisJCQkJMTAwIEN5YmVycG9ydCBSZAorCQkJCUhPTkcgS09ORworCiswMC0xOS1DRCAgIChoZXgpCQlDaGVuZ2R1IGV0aGVyY29tIGluZm9ybWF0aW9uIHRlY2hub2xvZ3kgTHRkLgorMDAxOUNEICAgICAoYmFzZSAxNikJCUNoZW5nZHUgZXRoZXJjb20gaW5mb3JtYXRpb24gdGVjaG5vbG9neSBMdGQuCisJCQkJU291dGggRXh0ZW5zaW9uIG9mIFRpYW5mdSBXaWRlIFJvYWQgTm8uNyBkZXBhcnRtZW50IHJvb20gMjAxCisJCQkJQ2hlbmdkdSBTaWNodWFuIDYxMDA0MQorCQkJCUNISU5BCisKKzAwLTE5LUNFICAgKGhleCkJCVByb2dyZXNzaXZlIEdhbWluZyBJbnRlcm5hdGlvbmFsCiswMDE5Q0UgICAgIChiYXNlIDE2KQkJUHJvZ3Jlc3NpdmUgR2FtaW5nIEludGVybmF0aW9uYWwKKwkJCQk5MjAgUGlsb3QgUm9hZAorCQkJCUxhcyBWZWdhcyBOViA4OTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQ0YgICAoaGV4KQkJU0FMSUNSVSwgUy5BLgorMDAxOUNGICAgICAoYmFzZSAxNikJCVNBTElDUlUsIFMuQS4KKwkJCQlBdi4gU2VycmEgLCAxMDAKKwkJCQlTdGEuTWEuUGFsYXV0b3JkZXJhIEJhcmNlbG9uYSAwODQ2MAorCQkJCVNQQUlOCisKKzAwLTE5LUQwICAgKGhleCkJCUNhdGhleGlzCiswMDE5RDAgICAgIChiYXNlIDE2KQkJQ2F0aGV4aXMKKwkJCQlQTyBCb3ggMTA5MQorCQkJCVVtaGxhbmdhIFJvY2tzCisJCQkJRHVyYmFuIEt3YVp1bHUgTmF0YWwgNDMyMAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xOS1EMSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAxOUQxICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xOS1EMiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAxOUQyICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xOS1EMyAgIChoZXgpCQlUUkFLIE1pY3Jvd2F2ZQorMDAxOUQzICAgICAoYmFzZSAxNikJCVRSQUsgTWljcm93YXZlCisJCQkJNDcyNiBFaXNlbmhvd2VyIEJsdmQKKwkJCQlUYW1wYSBGTCAzMzYzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRDQgICAoaGV4KQkJSUNYIFRlY2hub2xvZ2llcworMDAxOUQ0ICAgICAoYmFzZSAxNikJCUlDWCBUZWNobm9sb2dpZXMKKwkJCQkzNDQwIEZyYW5jaXMtSHVnaGVzCisJCQkJU3VpdGUgMTIwCisJCQkJTGF2YWwgUXVlYmVjIEg3TCA1QTkKKwkJCQlDQU5BREEKKworMDAtMTktRDUgICAoaGV4KQkJSVAgSW5ub3ZhdGlvbnMsIEluYy4KKzAwMTlENSAgICAgKGJhc2UgMTYpCQlJUCBJbm5vdmF0aW9ucywgSW5jLgorCQkJCTE1MTcgMTQ2dGggQXZlCisJCQkJRG9yciBNSSA0OTMyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRDYgICAoaGV4KQkJTFMgQ2FibGUgTHRkLgorMDAxOUQ2ICAgICAoYmFzZSAxNikJCUxTIENhYmxlIEx0ZC4KKwkJCQkxMkYgTFMgVG93ZXIsIDEwMjYtNiwgSG9nZXktZG9uZworCQkJCUFueWFuZy1zaSBHeWVvbmdnaS1kbyA0MzEtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LUQ3ICAgKGhleCkJCUZPUlRVTkVURUsgQ08uLCBMVEQKKzAwMTlENyAgICAgKGJhc2UgMTYpCQlGT1JUVU5FVEVLIENPLiwgTFRECisJCQkJMTJGLCBOby4gNzUsIFNlYyAxLCBDaG9uZ3FpbmcgUy4gUmQuLAorCQkJCVpob25nemhlbmcgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDEwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktRDggICAoaGV4KQkJTUFYRk9SCiswMDE5RDggICAgIChiYXNlIDE2KQkJTUFYRk9SCisJCQkJI0UgODA5LCBCdW5kYW5nLCBUZWNobm8tUGFyaworCQkJCVlhdGFwLURvbmcsIEJ1bmdkYW5nLUd1CisJCQkJU2VvbmduYW0tQ2l0eSBHeWVvbmdnaS1EbyA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LUQ5ICAgKGhleCkJCVpldXRzY2hlbCBHbWJICiswMDE5RDkgICAgIChiYXNlIDE2KQkJWmV1dHNjaGVsIEdtYkgKKwkJCQlIZWVyd2VnIDIKKwkJCQlU/GJpbmdlbi1IaXJzY2hhdSBCVyBELTcyMDcwCisJCQkJR0VSTUFOWQorCiswMC0xOS1EQSAgIChoZXgpCQlXZWxsdHJhbnMgTyZFIFRlY2hub2xvZ3kgQ28uICwgTHRkLgorMDAxOURBICAgICAoYmFzZSAxNikJCVdlbGx0cmFucyBPJkUgVGVjaG5vbG9neSBDby4gLCBMdGQuCisJCQkJdGhlIDNyZCBGbG9vciwgYnVpbGRpbmcgQy1ELCBIaS10ZWNoIERpZ2l0YWwgSGFyYm9yLCBHdWFuZG9uZyBJbmR1c3RyaWFsIFBhcmsKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzQKKwkJCQlDSElOQQorCiswMC0xOS1EQiAgIChoZXgpCQlNSUNSTy1TVEFSIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCiswMDE5REIgICAgIChiYXNlIDE2KQkJTUlDUk8tU1RBUiBJTlRFUk5BVElPTkFMIENPLiwgTFRELgorCQkJCU5PLiA2OSwgTEktREUgU1QuLCBKVU5HLUhFIENJVFkKKwkJCQlUQUlQRUkgSFNJRU4gIDIzNQorCQkJCVRVVkFMVQorCiswMC0xOS1EQyAgIChoZXgpCQlFTkVOU1lTIFRlY2hub2xvZ2llcworMDAxOURDICAgICAoYmFzZSAxNikJCUVORU5TWVMgVGVjaG5vbG9naWVzCisJCQkJTGUgR2VybWFuaXVtCisJCQkJODAgQXZlbnVlIGRlcyBidXR0ZXMgZGUgQ2/rc21lcworCQkJCVJFTk5FUyBCcml0dGFueSAzNTcwMAorCQkJCUZSQU5DRQorCiswMC0xOS1ERCAgIChoZXgpCQlGRUktWnlmZXIsIEluYy4KKzAwMTlERCAgICAgKGJhc2UgMTYpCQlGRUktWnlmZXIsIEluYy4KKwkJCQkxNTE1IFMuIE1hbmNoZXN0ZXIKKwkJCQlBbmFoZWltIENBIDkyODAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1ERSAgIChoZXgpCQlNT0JJVEVLCiswMDE5REUgICAgIChiYXNlIDE2KQkJTU9CSVRFSworCQkJCTVGLE5vLjYwLExhbmUgMzIxLFlhbmctS3dhbmcgU3RyZWV0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LURGICAgKGhleCkJCVRob21zb24gSW5jLgorMDAxOURGICAgICAoYmFzZSAxNikJCVRob21zb24gSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MC0xMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1FMCAgIChoZXgpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMTlFMCAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlTb3V0aCBCdWlsZGluZywgTm8uNSBLZXl1YW4gUm9hZAorCQkJCUNlbnRyYWwgWm9uZSwgU2NpZW5jZSAmIFRlY2hub2xvZ3kgUGFyaworCQkJCU5hbnNoYW4gU2hlbnpoZW4gNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMTktRTEgICAoaGV4KQkJTm9ydGVsCiswMDE5RTEgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTE5LUUyICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzAwMTlFMiAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOLiBNYXRoaWxkYSBBdmUuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1FMyAgIChoZXgpCQlBcHBsZSBDb21wdXRlciBJbmMuCiswMDE5RTMgICAgIChiYXNlIDE2KQkJQXBwbGUgQ29tcHV0ZXIgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDYWxpZm9ybmlhIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1FNCAgIChoZXgpCQkyV2lyZSwgSW5jCiswMDE5RTQgICAgIChiYXNlIDE2KQkJMldpcmUsIEluYworCQkJCTE3MDQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUU1ICAgKGhleCkJCUx5bnggU3R1ZGlvIFRlY2hub2xvZ3ksIEluYy4KKzAwMTlFNSAgICAgKGJhc2UgMTYpCQlMeW54IFN0dWRpbyBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTU0MCBCYXJ0b24gUmQgIyAyNjgKKwkJCQlSZWRsYW5kcyBDQSA5MjM3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRTYgICAoaGV4KQkJVE9ZTyBNRURJQyBDTy4sTFRELgorMDAxOUU2ICAgICAoYmFzZSAxNikJCVRPWU8gTUVESUMgQ08uLExURC4KKwkJCQkxLTE3LTIyIEtpdGFob3JpZSwgTmlzaGkta3UKKwkJCQlPc2FrYSAgNTUwLTAwMTQKKwkJCQlKQVBBTgorCiswMC0xOS1FNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE5RTcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1FOCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE5RTggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1FOSAgIChoZXgpCQlTLUluZm9ybWF0aW9uIFRlY2hub2xneSwgQ28uLCBMdGQuCiswMDE5RTkgICAgIChiYXNlIDE2KQkJUy1JbmZvcm1hdGlvbiBUZWNobm9sZ3ksIENvLiwgTHRkLgorCQkJCVN1bmd3b28gQmxkZywgNzE3LTMgU3VzZW8tZG9uZywKKwkJCQlHYW5nbmFtLWd1LAorCQkJCVNlb3VsICAxMzUtODg0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LUVBICAgKGhleCkJCVRlcmFNYWdlIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMTlFQSAgICAgKGJhc2UgMTYpCQlUZXJhTWFnZSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJR29sZGVuIExhbmQgQnVpbGRpbmcgU3VpdGUgOTA3CisJCQkJMzIgTGlhbmcgTWEgQnJpZGdlIFJvYWQKKwkJCQlCZWlqaW5nICAxMDAwMTYKKwkJCQlDSElOQQorCiswMC0xOS1FQiAgIChoZXgpCQlQeXJvbml4IEx0ZAorMDAxOUVCICAgICAoYmFzZSAxNikJCVB5cm9uaXggTHRkCisJCQkJQnJhaXRod2VsbCBXYXkKKwkJCQlIZWxsYWJ5CisJCQkJUm90aGVyaGFtIFNvdXRoIFlvcmtzaGlyZSBTNjYgOFFZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTktRUMgICAoaGV4KQkJU2FnYW1vcmUgU3lzdGVtcywgSW5jLgorMDAxOUVDICAgICAoYmFzZSAxNikJCVNhZ2Ftb3JlIFN5c3RlbXMsIEluYy4KKwkJCQk1NSBNaWRkbGVzZXggU3RyZWV0CisJCQkJU3VpdGUgMjE3CisJCQkJTm9ydGggQ2hlbG1zZm9yZCBNQSAwMTg2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRUQgICAoaGV4KQkJQXhlc3N0ZWwgSW5jLgorMDAxOUVEICAgICAoYmFzZSAxNikJCUF4ZXNzdGVsIEluYy4KKwkJCQk2ODE1IEZsYW5kZXJzIFNyLgorCQkJCVN0ZSAyMTAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUVFICAgKGhleCkJCUNBUkxPIEdBVkFaWkkgQ09OVFJPTFMgU1BBLUNvbnRyb2xzIERpdmlzaW9uCiswMDE5RUUgICAgIChiYXNlIDE2KQkJQ0FSTE8gR0FWQVpaSSBDT05UUk9MUyBTUEEtQ29udHJvbHMgRGl2aXNpb24KKwkJCQlWaWEgU2FmZm9yemUgOAorCQkJCUJFTExVTk8gQkwgSS0zMjEwMAorCQkJCUlUQUxZCisKKzAwLTE5LUVGICAgKGhleCkJCVNIRU5aSEVOIExJTk5LSU5HIEVMRUNUUk9OSUNTIENPLixMVEQKKzAwMTlFRiAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBMSU5OS0lORyBFTEVDVFJPTklDUyBDTy4sTFRECisJCQkJUm9vbSA5MDEsQiBCbG9jayxRaW5naHVhIEluZm9ybWF0aW9uIENlbnRlciBIaS10ZWMgcGFyayBOb3J0aCBEaXN0cmljdCxOYW5zaGFuIERpc3RyaWN0LFNoZW56aGVuCisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTE5LUYwICAgKGhleCkJCVVOSU9OTUFOIFRFQ0hOT0xPR1kgQ08uLExURAorMDAxOUYwICAgICAoYmFzZSAxNikJCVVOSU9OTUFOIFRFQ0hOT0xPR1kgQ08uLExURAorCQkJCTE4RiwgSFVBWUFORyBUT1dFUixZQU5EQVlJIFJPQUQKKwkJCQlIVUlaSE9VIEdVQU5HRE9ORyA1MTYwMDcKKwkJCQlDSElOQQorCiswMC0xOS1GMSAgIChoZXgpCQlTdGFyIENvbW11bmljYXRpb24gTmV0d29yayBUZWNobm9sb2d5IENvLixMdGQKKzAwMTlGMSAgICAgKGJhc2UgMTYpCQlTdGFyIENvbW11bmljYXRpb24gTmV0d29yayBUZWNobm9sb2d5IENvLixMdGQKKwkJCQkxMC9GLFRvd2VyIEIsU09ITyBOZXcgVG93bixOby44OCBqaWFuZ3VvUm9hZCxDaGFveWFuZyBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDAyMgorCQkJCUNISU5BCisKKzAwLTE5LUYyICAgKGhleCkJCVRlcmFkeW5lIEsuSy4KKzAwMTlGMiAgICAgKGJhc2UgMTYpCQlUZXJhZHluZSBLLksuCisJCQkJMjcyLTEzLCBIZWlzZWksIFRha2Fvbm8KKwkJCQlPenUtbWFjaGkKKwkJCQlLaWt1Y2hpLWd1biBLdW1hbW90byA4NjktMTIzMgorCQkJCUpBUEFOCisKKzAwLTE5LUYzICAgKGhleCkJCUNldGlzLCBJbmMKKzAwMTlGMyAgICAgKGJhc2UgMTYpCQlDZXRpcywgSW5jCisJCQkJNTAyNSBHYWxsZXkgUmQKKwkJCQlDb2xvcmFkbyBTcHJpbmdzIENPIDgwOTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1GNCAgIChoZXgpCQlDb252ZXJnZW5zIE95IEx0ZAorMDAxOUY0ICAgICAoYmFzZSAxNikJCUNvbnZlcmdlbnMgT3kgTHRkCisJCQkJV2VzdGVuZGludGllIDk5IEIKKwkJCQlFc3BvbyBVdXNpbWFhIEZJTi0wMjE2MAorCQkJCUZJTkxBTkQKKworMDAtMTktRjUgICAoaGV4KQkJSW1hZ2luYXRpb24gVGVjaG5vbG9naWVzIEx0ZAorMDAxOUY1ICAgICAoYmFzZSAxNikJCUltYWdpbmF0aW9uIFRlY2hub2xvZ2llcyBMdGQKKwkJCQladXJpY2ggSG91c2UKKwkJCQlDYW5hbCBXaGFyZgorCQkJCUxlZWRzIFdlc3QgWW9ya3NoaXJlIExTMTEgNURCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTktRjYgICAoaGV4KQkJQWNjb25ldCAoUFRFKSBMdGQKKzAwMTlGNiAgICAgKGJhc2UgMTYpCQlBY2NvbmV0IChQVEUpIEx0ZAorCQkJCU5vLiAxNiBBeWVyIFJhamFoIENyZXNjZW50CisJCQkJIyAwMy0wMworCQkJCVNpbmdhcG9yZSAgMTM5OTY1CisJCQkJU0lOR0FQT1JFCisKKzAwLTE5LUY3ICAgKGhleCkJCU9uc2V0IENvbXB1dGVyIENvcnBvcmF0aW9uCiswMDE5RjcgICAgIChiYXNlIDE2KQkJT25zZXQgQ29tcHV0ZXIgQ29ycG9yYXRpb24KKwkJCQlQLk8uIEJveCAzNDUwCisJCQkJUG9jYXNzZXQgTUEgMDI1NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUY4ICAgKGhleCkJCUVtYmVkZGVkIFN5c3RlbXMgRGVzaWduLCBJbmMuCiswMDE5RjggICAgIChiYXNlIDE2KQkJRW1iZWRkZWQgU3lzdGVtcyBEZXNpZ24sIEluYy4KKwkJCQk2ODEwIERlZXJwYXRoIFJvYWQKKwkJCQlTdWl0ZSAzMDAKKwkJCQlFbGtyaWRnZSBNRCAyMTA3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRjkgICAoaGV4KQkJVERLLUxhbWJkYQorMDAxOUY5ICAgICAoYmFzZSAxNikJCVRESy1MYW1iZGEKKwkJCQk0MDUgRXNzZXggUm9hZAorCQkJCU5lcHR1bmUgTkogMDc3NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUZBICAgKGhleCkJCUNhYmxlIFZpc2lvbiBFbGVjdHJvbmljcyBDTy4sIExURC4KKzAwMTlGQSAgICAgKGJhc2UgMTYpCQlDYWJsZSBWaXNpb24gRWxlY3Ryb25pY3MgQ08uLCBMVEQuCisJCQkJMTJGLTMsIE5vLjE2LCBDaGllbiBQYSBSZC4KKwkJCQlDaHVuZyBIbyBDaXR5IFRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LUZCICAgKGhleCkJCUJTa3lCIEx0ZAorMDAxOUZCICAgICAoYmFzZSAxNikJCUJTa3lCIEx0ZAorCQkJCTE2OSBLSU5HUyBST0FECisJCQkJQlJFTlRXT09EIEVTU0VYIENNMTQgNEVGCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTktRkMgICAoaGV4KQkJUFQuIFVmb2Frc2VzIFN1a3NlcyBMdWFyYmlhc2EKKzAwMTlGQyAgICAgKGJhc2UgMTYpCQlQVC4gVWZvYWtzZXMgU3Vrc2VzIEx1YXJiaWFzYQorCQkJCUpsLiBTdWx0YW4gSGFzYW51ZGluIE5vLiA0MQorCQkJCUtlYmF5b3JhbiBCYXJ1CisJCQkJSmFrYXJ0YSBTZWxhdGFuIERLSSBKYWthcnRhIDEyMTYwCisJCQkJSU5ET05FU0lBCisKKzAwLTE5LUZEICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAxOUZEICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTE5LUZFICAgKGhleCkJCVNIRU5aSEVOIFNFRUNPTU0gVEVDSE5PTE9HWSBDTy4sTFRELgorMDAxOUZFICAgICAoYmFzZSAxNikJCVNIRU5aSEVOIFNFRUNPTU0gVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCVJvb20gNjA5LDQwNFlhbm5hbiBSb2FkCisJCQkJU2hlblpoZW4gR3Vhbmdkb25nIDUxODAzMQorCQkJCUNISU5BCisKKzAwLTE5LUZGICAgKGhleCkJCUZpbm56eW1lcworMDAxOUZGICAgICAoYmFzZSAxNikJCUZpbm56eW1lcworCQkJCTgwMCBXZXN0IEN1bW1pbmdzIFBhcmsKKwkJCQlTdWl0ZSA1NTUwCisJCQkJV29idXJuIE1BIDAxODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0wMCAgIChoZXgpCQlNQVRSSVggSU5DLgorMDAxQTAwICAgICAoYmFzZSAxNikJCU1BVFJJWCBJTkMuCisJCQkJQVMgYmxkLjMtMTMtMjAKKwkJCQlOaXNoaS1UZW1tYSBLaXRhLUt1CisJCQkJT3Nha2EgIDUzMC0wMDQ3CisJCQkJSkFQQU4KKworMDAtMUEtMDEgICAoaGV4KQkJU21pdGhzIE1lZGljYWwKKzAwMUEwMSAgICAgKGJhc2UgMTYpCQlTbWl0aHMgTWVkaWNhbAorCQkJCTQzNTAgUml2ZXJncmVlbiBQYXJrd2F5CisJCQkJU3VpdGUgMjAwCisJCQkJRHVsdXRoIEdBIDMwMDk2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0wMiAgIChoZXgpCQlTRUNVUkUgQ0FSRSBQUk9EVUNUUywgSU5DCiswMDFBMDIgICAgIChiYXNlIDE2KQkJU0VDVVJFIENBUkUgUFJPRFVDVFMsIElOQworCQkJCTM5IENIRU5FTEwgRFJJVkUKKwkJCQlDT05DT1JEIE5IIDAzMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0wMyAgIChoZXgpCQlBbmdlbCBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMUEwMyAgICAgKGJhc2UgMTYpCQlBbmdlbCBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkxNywgTGFuZSAxMzQsIFNob3UgU2hhbiBSb2FkLCBUYWkgU2hhbiwKKwkJCQlUYWlwZWkgIDI0MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtMDQgICAoaGV4KQkJSW50ZXJheSBTb2x1dGlvbnMgQlYKKzAwMUEwNCAgICAgKGJhc2UgMTYpCQlJbnRlcmF5IFNvbHV0aW9ucyBCVgorCQkJCU1yLiBXLk0uIE9wcGVkaWprIHZhbiBWZWVud2VnIDgKKwkJCQlCVVJHVU0gRnJpZXNsYW5kIDkyNTEgR0EKKwkJCQlORVRIRVJMQU5EUworCiswMC0xQS0wNSAgIChoZXgpCQlPUFRJQkFTRSBMVEQKKzAwMUEwNSAgICAgKGJhc2UgMTYpCQlPUFRJQkFTRSBMVEQKKwkJCQk3IFNoYW5rYXIgU3QuCisJCQkJSGVyemxpeWEgSVNSQUVMIDQ2MTIwCisJCQkJSVNSQUVMCisKKzAwLTFBLTA2ICAgKGhleCkJCU9wVmlzdGEsIEluYy4KKzAwMUEwNiAgICAgKGJhc2UgMTYpCQlPcFZpc3RhLCBJbmMuCisJCQkJODcwIE5vcnRoIE1jQ2FydGh5IEJsdmQuCisJCQkJTWlscGl0YXMgQ2FsaWZvcm5pYSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMDcgICAoaGV4KQkJQXJlY29udCBWaXNpb24KKzAwMUEwNyAgICAgKGJhc2UgMTYpCQlBcmVjb250IFZpc2lvbgorCQkJCTI0MDAgTi4gTGluY29sbiBBdmUKKwkJCQlBbHRhZGVuYSBDQSA5MTAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMDggICAoaGV4KQkJRGFsbWFuIFRlY2huaWNhbCBTZXJ2aWNlcworMDAxQTA4ICAgICAoYmFzZSAxNikJCURhbG1hbiBUZWNobmljYWwgU2VydmljZXMKKwkJCQkzNiBEdWtlIENsb3NlCisJCQkJV2VzdCBXYXkKKwkJCQlBbmRvdmVyIEhhbXBzaGlyZSBTUDEwIDVBUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFBLTA5ICAgKGhleCkJCVdheWZhcmVyIFRyYW5zaXQgU3lzdGVtcyBMdGQKKzAwMUEwOSAgICAgKGJhc2UgMTYpCQlXYXlmYXJlciBUcmFuc2l0IFN5c3RlbXMgTHRkCisJCQkJMTAgV2lsbGlzIFdheQorCQkJCUZsZWV0cyBJbnNkdXN0cmlhbCBFc3QKKwkJCQlQb29sZSBEb3JzZXQgQkgxNSAzU1MKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQS0wQSAgIChoZXgpCQlBZGFwdGl2ZSBNaWNyby1XYXJlIEluYy4KKzAwMUEwQSAgICAgKGJhc2UgMTYpCQlBZGFwdGl2ZSBNaWNyby1XYXJlIEluYy4KKwkJCQk2OTE3IElubm92YXRpb24gQmx2ZAorCQkJCUZvcnQgV2F5bmUgSU4gNDY4MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTBCICAgKGhleCkJCUJPTkEgVEVDSE5PTE9HWSBJTkMuCiswMDFBMEIgICAgIChiYXNlIDE2KQkJQk9OQSBURUNITk9MT0dZIElOQy4KKwkJCQk0RiwgRS1QbGFjZSBCbGRnLiwgNzE5LTI0CisJCQkJWWVva3NhbS1Eb25nLCBHYW5nbmFtLUd1LAorCQkJCVNlb3VsICAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTBDICAgKGhleCkJCVN3ZS1EaXNoIFNhdGVsbGl0ZSBTeXN0ZW1zIEFCCiswMDFBMEMgICAgIChiYXNlIDE2KQkJU3dlLURpc2ggU2F0ZWxsaXRlIFN5c3RlbXMgQUIKKwkJCQlUb3JnZ2F0YW4gMTUKKwkJCQlTb2xuYSBTdG9ja2hvbG0gU0UtMTcxIDA2CisJCQkJU1dFREVOCisKKzAwLTFBLTBEICAgKGhleCkJCUhhbmRIZWxkIGVudGVydGFpbm1lbnQsIEluYy4KKzAwMUEwRCAgICAgKGJhc2UgMTYpCQlIYW5kSGVsZCBlbnRlcnRhaW5tZW50LCBJbmMuCisJCQkJNTM5IEJyeWFudCBTdHJlZXQsIFN1aXRlIDQwMworCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTBFICAgKGhleCkJCUNoZW5nIFVlaSBQcmVjaXNpb24gSW5kdXN0cnkgQ28uLEx0ZAorMDAxQTBFICAgICAoYmFzZSAxNikJCUNoZW5nIFVlaSBQcmVjaXNpb24gSW5kdXN0cnkgQ28uLEx0ZAorCQkJCUp1bmRhIEluZHVzdHJ5IERpc3RyaWN0LCBEb25na2VuZyBUb3duLERvbmdndWFuIENpdHkKKwkJCQlEb25nR3VhbiBHdWFuZyBEb25nIDUyMzQ1NQorCQkJCUNISU5BCisKKzAwLTFBLTBGICAgKGhleCkJCVNpc3RlbWFzIEF2YW56YWRvcyBkZSBDb250cm9sLCBTLkEuCiswMDFBMEYgICAgIChiYXNlIDE2KQkJU2lzdGVtYXMgQXZhbnphZG9zIGRlIENvbnRyb2wsIFMuQS4KKwkJCQljYWxsZSBDb2xxdWlkZSA2CisJCQkJTGFzIFJvemFzIE1hZHJpZCAyODIzMAorCQkJCVNQQUlOCisKKzAwLTFBLTEwICAgKGhleCkJCUxVQ0VOVCBUUkFOUyBFTEVDVFJPTklDUyBDTy4sTFRECiswMDFBMTAgICAgIChiYXNlIDE2KQkJTFVDRU5UIFRSQU5TIEVMRUNUUk9OSUNTIENPLixMVEQKKwkJCQk5Ri0xLE5vLjE2LENoaWVuIFBhaCBSZC4KKwkJCQlDaHVuZyBIbyBUYWlwZWkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS0xMSAgIChoZXgpCQlHb29nbGUgSW5jLgorMDAxQTExICAgICAoYmFzZSAxNikJCUdvb2dsZSBJbmMuCisJCQkJMTYwMCBBbXBoaXRoZWF0ZXIgUGFya3dheQorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTEyICAgKGhleCkJCUVzc2lsb3IKKzAwMUExMiAgICAgKGJhc2UgMTYpCQlFc3NpbG9yCisJCQkJNjQgQmlzIEF2ZW51ZSBBdWJlcnQKKwkJCQk5NDMwMCBWaW5jZW5uZXMgCisJCQkJRlJBTkNFCisKKzAwLTFBLTEzICAgKGhleCkJCVdhbmxpZGEgR3JvdXAgQ28uLCBMVEQKKzAwMUExMyAgICAgKGJhc2UgMTYpCQlXYW5saWRhIEdyb3VwIENvLiwgTFRECisJCQkJSmlhaGUgUm9hZCBOby42MTgKKwkJCQlYaWFtZW4gRnVqaWFuIDM2MTAwNgorCQkJCUNISU5BCisKKzAwLTFBLTE0ICAgKGhleCkJCVhpbiBIdWEgQ29udHJvbCBFbmdpbmVlcmluZyBDby4sTHRkLgorMDAxQTE0ICAgICAoYmFzZSAxNikJCVhpbiBIdWEgQ29udHJvbCBFbmdpbmVlcmluZyBDby4sTHRkLgorCQkJCTE2MCBXZW5qaW5nIFJkLiwgTWluaGFuZworCQkJCVNoYW5naGFpICAyMDAwMjQ1CisJCQkJQ0hJTkEKKworMDAtMUEtMTUgICAoaGV4KQkJZ2VtYWx0byBlLVBheW1lbnQKKzAwMUExNSAgICAgKGJhc2UgMTYpCQlnZW1hbHRvIGUtUGF5bWVudAorCQkJCTYgcnVlIGRlIGxhIFZlcnJlcmllCisJCQkJTWV1ZG9uICA5MjE5NworCQkJCUZSQU5DRQorCiswMC0xQS0xNiAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxQTE2ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xQS0xNyAgIChoZXgpCQlUZWFrIFRlY2hub2xvZ2llcywgSW5jLgorMDAxQTE3ICAgICAoYmFzZSAxNikJCVRlYWsgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMjkwMSBUYXNtYW4gRHIuLCBTdGUuICMyMTAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMTggICAoaGV4KQkJQWR2YW5jZWQgU2ltdWxhdGlvbiBUZWNobm9sb2d5IGluYy4KKzAwMUExOCAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBTaW11bGF0aW9uIFRlY2hub2xvZ3kgaW5jLgorCQkJCTUwMEEgSHVudG1hciBQYXJrIERyaXZlCisJCQkJSGVybmRvbiBWQSAyMDE3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMTkgICAoaGV4KQkJQ29tcHV0ZXIgRW5naW5lZXJpbmcgTGltaXRlZAorMDAxQTE5ICAgICAoYmFzZSAxNikJCUNvbXB1dGVyIEVuZ2luZWVyaW5nIExpbWl0ZWQKKwkJCQlQTyBCb3ggMjYtMjUKKwkJCQlFcHNvbQorCQkJCUF1Y2tsYW5kIEFLIDEzNDQKKwkJCQlORVcgWkVBTEFORAorCiswMC0xQS0xQSAgIChoZXgpCQlHZW50ZXggQ29ycG9yYXRpb24vRWxlY3Ryby1BY291c3RpYyBQcm9kdWN0cworMDAxQTFBICAgICAoYmFzZSAxNikJCUdlbnRleCBDb3Jwb3JhdGlvbi9FbGVjdHJvLUFjb3VzdGljIFByb2R1Y3RzCisJCQkJMjQ1NiBCcm93biBBdmVudWUKKwkJCQlNYW5jaGVzdGVyIE5IIDAzMTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0xQiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMUExQiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2MDAgTi4gSHd5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0xQyAgIChoZXgpCQlHVCZUIEVuZ2luZWVyaW5nIFB0ZSBMdGQKKzAwMUExQyAgICAgKGJhc2UgMTYpCQlHVCZUIEVuZ2luZWVyaW5nIFB0ZSBMdGQKKwkJCQkyIEFuZyBNbyBLaW8gU3QuNjQsIEVjb24gQnVpbGRpbmcsICMwNC0wMAorCQkJCVNpbmdhcG9yZSA1NjkwODQKKwkJCQlTSU5HQVBPUkUKKworMDAtMUEtMUQgICAoaGV4KQkJUENob21lIE9ubGluZSBJbmMuCiswMDFBMUQgICAgIChiYXNlIDE2KQkJUENob21lIE9ubGluZSBJbmMuCisJCQkJMTFGLCAxMDUsIFNlYy4gMiwgVHVuLUh3YSBTLiBSZC4KKwkJCQlUYWlwZWkgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS0xRSAgIChoZXgpCQlBcnViYSBOZXR3b3JrcworMDAxQTFFICAgICAoYmFzZSAxNikJCUFydWJhIE5ldHdvcmtzCisJCQkJMTMyMiBDcm9zc21hbiBBdgorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMUYgICAoaGV4KQkJQ29hc3RhbCBFbnZpcm9ubWVudGFsIFN5c3RlbXMKKzAwMUExRiAgICAgKGJhc2UgMTYpCQlDb2FzdGFsIEVudmlyb25tZW50YWwgU3lzdGVtcworCQkJCTgyMCBGaXJzdCBBdmVudWUgU291dGgKKwkJCQlTZWF0dGxlIHdhIDk4MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0yMCAgIChoZXgpCQlDTU9URUNIIENvLiBMdGQuCiswMDFBMjAgICAgIChiYXNlIDE2KQkJQ01PVEVDSCBDby4gTHRkLgorCQkJCTVGIEV0cm9uaXggQmxkZy4gMTctMTAKKwkJCQlZb2lkby1Eb25nCisJCQkJWW91bmdkdW5ncG8tR3UgU2VvdWwgMTUwLTg3NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS0yMSAgIChoZXgpCQlJbmRhYyBCLlYuCiswMDFBMjEgICAgIChiYXNlIDE2KQkJSW5kYWMgQi5WLgorCQkJCUluc3RpdHV0ZW53ZWcgMTVBCisJCQkJRW5zY2hlZGUgT3Zlcmlqc3NlbCA3NTIxIFBICisJCQkJTkVUSEVSTEFORFMKKworMDAtMUEtMjIgICAoaGV4KQkJZVEtMyBFbnR3aWNrbHVuZyBHbWJICiswMDFBMjIgICAgIChiYXNlIDE2KQkJZVEtMyBFbnR3aWNrbHVuZyBHbWJICisJCQkJTWFpYnVyZ2VyIFN0ci4gMzYKKwkJCQlMZWVyIE5pZWRlcnNhY2hzZW4gRC0yNjc4OQorCQkJCUdFUk1BTlkKKworMDAtMUEtMjMgICAoaGV4KQkJSWNlIFF1YmUsIEluYworMDAxQTIzICAgICAoYmFzZSAxNikJCUljZSBRdWJlLCBJbmMKKwkJCQkxNDEgV2lsc29uIEF2ZQorCQkJCUdyZWVuc2J1cmcgUGEgMTU2MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTI0ICAgKGhleCkJCUdhbGF4eSBUZWxlY29tIFRlY2hub2xvZ2llcyBMdGQKKzAwMUEyNCAgICAgKGJhc2UgMTYpCQlHYWxheHkgVGVsZWNvbSBUZWNobm9sb2dpZXMgTHRkCisJCQkJTm8uMjUsIFRoZSAxc3QgR2FveGluIFJvYWQKKwkJCQlYaSdhbiBDaXR5IFNoYW5ueGkgNzEwMDc1CisJCQkJQ0hJTkEKKworMDAtMUEtMjUgICAoaGV4KQkJREVMVEEgRE9SRQorMDAxQTI1ICAgICAoYmFzZSAxNikJCURFTFRBIERPUkUKKwkJCQlCT05ORU1BSU4KKwkJCQlDT01CT1VSRyBCUkVUQUdORSAzNSAzNTI3MAorCQkJCUZSQU5DRQorCiswMC0xQS0yNiAgIChoZXgpCQlEZWx0YW5vZGUgU29sdXRpb25zIEFCCiswMDFBMjYgICAgIChiYXNlIDE2KQkJRGVsdGFub2RlIFNvbHV0aW9ucyBBQgorCQkJCUJveCA5MiAxODQKKwkJCQlTdG9ja2hvbG0gIDEyMCAwOQorCQkJCVNXRURFTgorCiswMC0xQS0yNyAgIChoZXgpCQlVYmlzdGFyCiswMDFBMjcgICAgIChiYXNlIDE2KQkJVWJpc3RhcgorCQkJCThGLCBTZW9uZ2RvIEJ1aWxkaW5nLCA1ODctMjMKKwkJCQlTaW5zYS1Eb25nLCBHYW5nbmFtLUd1CisJCQkJU2VvdWwgIDEzNS03NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtMjggICAoaGV4KQkJQVNXVCBDby4sIExURC4gVGFpd2FuIEJyYW5jaCBILksuCiswMDFBMjggICAgIChiYXNlIDE2KQkJQVNXVCBDby4sIExURC4gVGFpd2FuIEJyYW5jaCBILksuCisJCQkJN0YuLCBOby4zIExhbmUgOTEsIERvbmdtZWkgUmQuCisJCQkJSHNpbmNodSAgMzAwNzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTI5ICAgKGhleCkJCVRlY2hzb25pYyBJbmR1c3RyaWVzIGQvYi9hIEh1bW1pbmJpcmQKKzAwMUEyOSAgICAgKGJhc2UgMTYpCQlUZWNoc29uaWMgSW5kdXN0cmllcyBkL2IvYSBIdW1taW5iaXJkCisJCQkJMTIyMCBPbGQgQWxwaGFyZXR0YSBSZAorCQkJCVN1aXRlIDM0MAorCQkJCUFscGhhcmV0dGEgR0EgMzAwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTJBICAgKGhleCkJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMUEyQSAgICAgKGJhc2UgMTYpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYuLCBOby4gOSAsIFBhcmsgQXZlbnVlIElJLAorCQkJCVNjaWVuY2UtYmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtMkIgICAoaGV4KQkJQXllY29tIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFBMkIgICAgIChiYXNlIDE2KQkJQXllY29tIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uIDI1LCBSJkQgUm9hZCAyLCBTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtMkMgICAoaGV4KQkJU0FURUMgQ28uLExURAorMDAxQTJDICAgICAoYmFzZSAxNikJCVNBVEVDIENvLixMVEQKKwkJCQkzNTgtNCwgUGFsZ29rMi1Eb25nLCBTYW5nbm9rLUd1CisJCQkJQW5zYW4tU2kgS3l1bmdraS1EbyA0MjYtMTkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTJEICAgKGhleCkJCVRoZSBOYXZ2byBHcm91cAorMDAxQTJEICAgICAoYmFzZSAxNikJCVRoZSBOYXZ2byBHcm91cAorCQkJCTQ0MDAgQmFrZXIgUm9hZAorCQkJCU1pbm5ldG9ua2EgTU4gNTUzNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTJFICAgKGhleCkJCVppb3ZhIENvcG9yYXRpb24KKzAwMUEyRSAgICAgKGJhc2UgMTYpCQlaaW92YSBDb3BvcmF0aW9uCisJCQkJVW5pdCAzLCA3LTkgU2hlcnJpZmZzIHJvYWQKKwkJCQlMb25zZGFsZSBTLkEuIDUxNjAKKwkJCQlBVVNUUkFMSUEKKworMDAtMUEtMkYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQTJGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMzAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQTMwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMzEgICAoaGV4KQkJU0NBTiBDT0lOIEluZHVzdHJpZXMgQUIKKzAwMUEzMSAgICAgKGJhc2UgMTYpCQlTQ0FOIENPSU4gSW5kdXN0cmllcyBBQgorCQkJCUphZ2Vyc2hpbGxnYXRhbiAyNgorCQkJCU1hbG1vZSBTa2FuZSAyMTM3NQorCQkJCVNXRURFTgorCiswMC0xQS0zMiAgIChoZXgpCQlBQ1RJVkEgTVVMVElNRURJQQorMDAxQTMyICAgICAoYmFzZSAxNikJCUFDVElWQSBNVUxUSU1FRElBCisJCQkJU0lDUCBDU0UKKwkJCQlTQU5UIEpPQU4gREVTUEkgQkFSQ0VMT05BIDA4OTcwCisJCQkJU1BBSU4KKworMDAtMUEtMzMgICAoaGV4KQkJQVNJIENvbW11bmljYXRpb25zLCBJbmMuCiswMDFBMzMgICAgIChiYXNlIDE2KQkJQVNJIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTA0MiBFIEd1YWRhbHVwZSBSZAorCQkJCVRlbXBlIEFaIDg1MjgzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0zNCAgIChoZXgpCQlLb25rYSBHcm91cCBDby4sIEx0ZC4KKzAwMUEzNCAgICAgKGJhc2UgMTYpCQlLb25rYSBHcm91cCBDby4sIEx0ZC4KKwkJCQlPdmVyc2VhIENoaW5lc2UgVG93bixOYW5zaGFuLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTMKKwkJCQlDSElOQQorCiswMC0xQS0zNSAgIChoZXgpCQlCQVJURUMgR21iSAorMDAxQTM1ICAgICAoYmFzZSAxNikJCUJBUlRFQyBHbWJICisJCQkJU2NodWxzdHIuIDMwCisJCQkJR290dGVzemVsbCBCYXZhcmlhIDk0MjM5CisJCQkJR0VSTUFOWQorCiswMC0xQS0zNiAgIChoZXgpCQlBaXBlcm1vbiBHbWJIICYgQ28uIEtHCiswMDFBMzYgICAgIChiYXNlIDE2KQkJQWlwZXJtb24gR21iSCAmIENvLiBLRworCQkJCVphbWRvcmZlciBTdHIuIDEwMAorCQkJCU11bmNoZW4KKwkJCQlNdW5pY2ggQmF2YXJpYSBELTgxNjc3CisJCQkJR0VSTUFOWQorCiswMC0xQS0zNyAgIChoZXgpCQlMZWFyIENvcnBvcmF0aW9uCiswMDFBMzcgICAgIChiYXNlIDE2KQkJTGVhciBDb3Jwb3JhdGlvbgorCQkJCUluZHVzdHJpZXN0cmFzc2UgNDgKKwkJCQlLcm9uYWNoIEJheWVybiA5NjMxNworCQkJCUdFUk1BTlkKKworMDAtMUEtMzggICAoaGV4KQkJU2FubWluYS1TQ0kKKzAwMUEzOCAgICAgKGJhc2UgMTYpCQlTYW5taW5hLVNDSQorCQkJCTEzMDAwIFNvdXRoIE1lbW9yaWFsIFBhcmt3YXkKKwkJCQlIdW50c3ZpbGxlIEFMIDM1ODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0zOSAgIChoZXgpCQlNZXJ0ZW4gR21iSCZDb0tHCiswMDFBMzkgICAgIChiYXNlIDE2KQkJTWVydGVuIEdtYkgmQ29LRworCQkJCUZyaXR6LUtvdHotU3RyLiA4CisJCQkJV2llaGwgTlJXIDUxNjc0CisJCQkJR0VSTUFOWQorCiswMC0xQS0zQSAgIChoZXgpCQlEb25nYWhlbGVjb21tCiswMDFBM0EgICAgIChiYXNlIDE2KQkJRG9uZ2FoZWxlY29tbQorCQkJCTY3OC0zLEplaWwtcmksWWFuZ2dpLW15dW4sQ2hlb2luLWd1CisJCQkJWW9uZ2luLXNpIEd5ZW9uZ2dpLWRvIDQ0OS04MjEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtM0IgICAoaGV4KQkJRG9haCBFbGVjb20gSW5jLgorMDAxQTNCICAgICAoYmFzZSAxNikJCURvYWggRWxlY29tIEluYy4KKwkJCQk4dGggZmwuIENlbnR1cnkgUGxhemEsIDI3Ny00MAorCQkJCVN1bmdzdS0yR2EgM0RvbmcKKwkJCQlTZW91bCAgMTMzLTEyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS0zQyAgIChoZXgpCQlUZWNobm93YXZlIEx0ZC4KKzAwMUEzQyAgICAgKGJhc2UgMTYpCQlUZWNobm93YXZlIEx0ZC4KKwkJCQlTYWt1cmFpIEJsZGcuMUYsCisJCQkJMS0zNS02IE5ha2FjaG8KKwkJCQlNdXNhc2hpbm8tc2hpIFRva3lvIDE4MC0wMDA2CisJCQkJSkFQQU4KKworMDAtMUEtM0QgICAoaGV4KQkJQWppbiBWaXNpb24gQ28uLEx0ZAorMDAxQTNEICAgICAoYmFzZSAxNikJCUFqaW4gVmlzaW9uIENvLixMdGQKKwkJCQkxNDA0LCBNYXJpby1Ub3dlciwgMjIyLTEyCisJCQkJR3Vyby1kb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtM0UgICAoaGV4KQkJRmFzdGVyIFRlY2hub2xvZ3kgTExDCiswMDFBM0UgICAgIChiYXNlIDE2KQkJRmFzdGVyIFRlY2hub2xvZ3kgTExDCisJCQkJMTgxMiBBdmVudWUgRAorCQkJCVN1aXRlIDIwMgorCQkJCUthdHkgVGV4YXMgNzc0OTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTNGICAgKGhleCkJCWludGVsYnJhcworMDAxQTNGICAgICAoYmFzZSAxNikJCWludGVsYnJhcworCQkJCXJvZG92aWEgYnIgMTAxIGttIDIxMAorCQkJCWludGVsYnJhcworCQkJCXNhbyBqb3NlIHNjIDg4MTA0ODAwCisJCQkJQlJBWklMCisKKzAwLTFBLTQwICAgKGhleCkJCUEtRk9VUiBURUNIIENPLiwgTFRELgorMDAxQTQwICAgICAoYmFzZSAxNikJCUEtRk9VUiBURUNIIENPLiwgTFRELgorCQkJCTZGLCBOby4gMTA4LCBNaW4tQ2h1YW4gUmQuLAorCQkJCUhzaW4tVGllbiBUYWlwZWkgMjMxNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTQxICAgKGhleCkJCUlOT0NPVkEgQ28uLEx0ZAorMDAxQTQxICAgICAoYmFzZSAxNikJCUlOT0NPVkEgQ28uLEx0ZAorCQkJCTVGIFNFT1VMIEJELjczNi0xNworCQkJCVllb2tzYW0tRG9uZywgS2FuZ25hbS1LdSBTRU9VTCAxMzUtOTI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTQyICAgKGhleCkJCVRlY2hjaXR5IFRlY2hub2xvZ3kgY28uLCBMdGQuCiswMDFBNDIgICAgIChiYXNlIDE2KQkJVGVjaGNpdHkgVGVjaG5vbG9neSBjby4sIEx0ZC4KKwkJCQk0RiwgTm8uIDQsIEFsbGV5IDEsIFN6dSBXZWkgTGFuZSwgQ2h1bmcgQ2hlbmcgUmQuLAorCQkJCUhzaW4gVGVpbiBDaXR5IFRhaXBlaSBIc2llbiAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTQzICAgKGhleCkJCUxvZ2ljYWwgTGluayBDb21tdW5pY2F0aW9ucworMDAxQTQzICAgICAoYmFzZSAxNikJCUxvZ2ljYWwgTGluayBDb21tdW5pY2F0aW9ucworCQkJCTE5MDkgQ2VudHJhbCBEcml2ZSBTdWl0ZSAyMDUKKwkJCQlCZWRmb3JkIFRYIDc2MDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS00NCAgIChoZXgpCQlKV1RyYWRpbmcgQ28uLCBMdGQKKzAwMUE0NCAgICAgKGJhc2UgMTYpCQlKV1RyYWRpbmcgQ28uLCBMdGQKKwkJCQkxNTkwIEt3YW55YW5nLWRvbmcsIERvbmdhbi1rdQorCQkJCUFobnlhbmcgS3l1bmdraSAtIGRvIDQzMS0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtNDUgICAoaGV4KQkJR04gTmV0Y29tIGFzCiswMDFBNDUgICAgIChiYXNlIDE2KQkJR04gTmV0Y29tIGFzCisJCQkJTWV0YWxidWVuIDY2CisJCQkJUC5PLkJveCAyMDEKKwkJCQlCYWxsZXJ1cCBTa292bHVuZGUgREsgLSAyNzUwCisJCQkJREVOTUFSSworCiswMC0xQS00NiAgIChoZXgpCQlEaWdpdGFsIE11bHRpbWVkaWEgVGVjaG5vbG9neSBDby4sIEx0ZAorMDAxQTQ2ICAgICAoYmFzZSAxNikJCURpZ2l0YWwgTXVsdGltZWRpYSBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJRG9vcmltIEJsZGcsIDNyZCBGbCwgMTY0LTIxIFBvaS1Eb25nLAorCQkJCVNlb3VsIEthbmduYW0tR3UgMTM1LTk2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS00NyAgIChoZXgpCQlBZ2FtaSBTeXN0ZW1zLCBJbmMuCiswMDFBNDcgICAgIChiYXNlIDE2KQkJQWdhbWkgU3lzdGVtcywgSW5jLgorCQkJCTEyNjkgSW5uc2JydWNrIERyaXZlCisJCQkJU3Vubnl2YWxlIENhbGlmb3JuaWEgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTQ4ICAgKGhleCkJCVRha2Fjb20gQ29ycG9yYXRpb24KKzAwMUE0OCAgICAgKGJhc2UgMTYpCQlUYWthY29tIENvcnBvcmF0aW9uCisJCQkJMzA0LTcwOSBBemEtTmlzaGl5YW5tYQorCQkJCU9yb3NoaS1jaG8KKwkJCQlUb2tpLXNoaSBHaWZ1LWtlbiA1MDktNTIwMgorCQkJCUpBUEFOCisKKzAwLTFBLTQ5ICAgKGhleCkJCU1pY3JvIFZpc2lvbiBDby4sTFRECiswMDFBNDkgICAgIChiYXNlIDE2KQkJTWljcm8gVmlzaW9uIENvLixMVEQKKwkJCQkxLTktMTUKKwkJCQlLYW5kb3VqaSBNaW5hbWkKKwkJCQlOaWlnYXRhLWNpdHkgTmlpZ2F0YS1rZW4gOTUwLTA5ODYKKwkJCQlKQVBBTgorCiswMC0xQS00QSAgIChoZXgpCQlRdW1yYW5ldCBJbmMuCiswMDFBNEEgICAgIChiYXNlIDE2KQkJUXVtcmFuZXQgSW5jLgorCQkJCTUzMCBMYWtlc2lkZSBEcml2ZQorCQkJCVN1aXRlIDIyMAorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS00QiAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMUE0QiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDYwMzA4CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNEMgICAoaGV4KQkJQ3Jvc3Nib3cgVGVjaG5vbG9neSwgSW5jCiswMDFBNEMgICAgIChiYXNlIDE2KQkJQ3Jvc3Nib3cgVGVjaG5vbG9neSwgSW5jCisJCQkJNDE0NSBOLiBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNEQgICAoaGV4KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKzAwMUE0RCAgICAgKGJhc2UgMTYpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCQorCQkJCVBpbi1KZW4gVGFveXVhbiAzMjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTRFICAgKGhleCkJCU5USSBBRyAvIExpbk1vdAorMDAxQTRFICAgICAoYmFzZSAxNikJCU5USSBBRyAvIExpbk1vdAorCQkJCUhhZXJkbGlzdHJhc3NlIDE1CisJCQkJU3ByZWl0ZW5iYWNoIEFHIDg5NTcKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xQS00RiAgIChoZXgpCQlBVk0gR21iSAorMDAxQTRGICAgICAoYmFzZSAxNikJCUFWTSBHbWJICisJCQkJQWx0LU1vYWJpdCA5NQorCQkJCUJlcmxpbiAgMTA1NTkKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLTUwICAgKGhleCkJCVBoZWVOZXQgVGVjaG5vbG9neSBDb3JwLgorMDAxQTUwICAgICAoYmFzZSAxNikJCVBoZWVOZXQgVGVjaG5vbG9neSBDb3JwLgorCQkJCVJtLiAzLCAyMEYsIE5vLiA3OSwgU2VjLiAxIEhzaW4gVGFpIFd1IFJkLgorCQkJCUhzaS1DaGloIFRhaXBlaSAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTUxICAgKGhleCkJCUFsZnJlZCBNYW5uIEZvdW5kYXRpb24KKzAwMUE1MSAgICAgKGJhc2UgMTYpCQlBbGZyZWQgTWFubiBGb3VuZGF0aW9uCisJCQkJUC5PLiBCb3ggOTA1CisJCQkJU2FudGEgQ2xhcml0YSBDQSA5MTM4MC05MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS01MiAgIChoZXgpCQlNZXNobGlueCBXaXJlbGVzcyBJbmMuCiswMDFBNTIgICAgIChiYXNlIDE2KQkJTWVzaGxpbnggV2lyZWxlc3MgSW5jLgorCQkJCTE0MTAgRyBBdmVudWUsIFN1aXRlIFQKKwkJCQlQbGFubyBUZXhhcyA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNTMgICAoaGV4KQkJWnlsYXlhCiswMDFBNTMgICAgIChiYXNlIDE2KQkJWnlsYXlhCisJCQkJNDQ0IE4uIEZyZWRlcmljayBBdmUuCisJCQkJU3VpdGUgMzE4CisJCQkJR2FpdGhlcnNidXJnIE1EIDIwODc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS01NCAgIChoZXgpCQlIaXAgU2hpbmcgRWxlY3Ryb25pY3MgTHRkLgorMDAxQTU0ICAgICAoYmFzZSAxNikJCUhpcCBTaGluZyBFbGVjdHJvbmljcyBMdGQuCisJCQkJVW5pdCAxLzIvMywgMjAvRiwgTmV3IFRyZWFzdXJlIENlbnRlcgorCQkJCTEwIE5nIEZvbmcgU3RyZWV0LCBTYW4gUG8gS29uZywgS293bG9vbgorCQkJCUhPTkcgS09ORworCiswMC0xQS01NSAgIChoZXgpCQlBQ0EtRGlnaXRhbCBDb3Jwb3JhdGlvbgorMDAxQTU1ICAgICAoYmFzZSAxNikJCUFDQS1EaWdpdGFsIENvcnBvcmF0aW9uCisJCQkJMTcgRiwgTm8uIDg2Ni03LCBDaHVuZyBDaGVuZyBSZC4sCisJCQkJQ2h1bmcgSG8gQ2l0eSBUYWlwZWkgQ291bnR5IDIzNTg2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS01NiAgIChoZXgpCQlWaWV3VGVsIENvLC4gTHRkLgorMDAxQTU2ICAgICAoYmFzZSAxNikJCVZpZXdUZWwgQ28sLiBMdGQuCisJCQkJI0ItNTAyLEJ1bmRhbmcgVGVjaG5vIFBhcmsgMTQ4CisJCQkJWWFUYXAtRG9uZworCQkJCUJ1bkRhbmctS3UsIFNlb25nTmFtLVNpIEd5ZW9uZ0dpLURvIDQ2My03NjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtNTcgICAoaGV4KQkJTWF0cml4IERlc2lnbiBHcm91cCwgTExDCiswMDFBNTcgICAgIChiYXNlIDE2KQkJTWF0cml4IERlc2lnbiBHcm91cCwgTExDCisJCQkJNTc0MSBQcm9zcGVjdCBEci4KKwkJCQlOZXdidXJnaCBJTiA0NzYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNTggICAoaGV4KQkJQ0NWIERldXRzY2hsYW5kIEdtYkggLSBDZWxlY3Ryb25pYyBlSGVhbHRoIERpdi4KKzAwMUE1OCAgICAgKGJhc2UgMTYpCQlDQ1YgRGV1dHNjaGxhbmQgR21iSCAtIENlbGVjdHJvbmljIGVIZWFsdGggRGl2LgorCQkJCU5vcmRsaWNodHN0cmFzc2UgNjMKKwkJCQlCZXJsaW4gIEQtMTM0MDUKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLTU5ICAgKGhleCkJCUlyY29uYQorMDAxQTU5ICAgICAoYmFzZSAxNikJCUlyY29uYQorCQkJCVVuaXQgNEItMSwgQ29ycG9yYXRlIFBhcmsKKwkJCQlCbGFuY2hhcmRzdG93biBEdWJsaW4gMTUKKwkJCQlJUkVMQU5ECisKKzAwLTFBLTVBICAgKGhleCkJCUtvcmVhIEVsZWN0cmljIFBvd2VyIERhdGEgTmV0d29yayAgKEtETikgQ28uLCBMdGQKKzAwMUE1QSAgICAgKGJhc2UgMTYpCQlLb3JlYSBFbGVjdHJpYyBQb3dlciBEYXRhIE5ldHdvcmsgIChLRE4pIENvLiwgTHRkCisJCQkJNjY1IE5BRVNPTi1ET05HLAorCQkJCUdZRU9OR0dJLURPIFVJV0FORy1TSSwgTkFFU09OLURPTkcgNDM3LTA4MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS01QiAgIChoZXgpCQlOZXRDYXJlIFNlcnZpY2UgQ28uLCBMdGQuCiswMDFBNUIgICAgIChiYXNlIDE2KQkJTmV0Q2FyZSBTZXJ2aWNlIENvLiwgTHRkLgorCQkJCTUtMTMtMTYgU2hpbWl6dSwgQXNhaGkta3UKKwkJCQlPc2FrYSAgNTM1LTAwMjEKKwkJCQlKQVBBTgorCiswMC0xQS01QyAgIChoZXgpCQlFdWNobmVyIEdtYkgrQ28uIEtHCiswMDFBNUMgICAgIChiYXNlIDE2KQkJRXVjaG5lciBHbWJIK0NvLiBLRworCQkJCUtvaGxoYW1tZXJzdHIuIDE2CisJCQkJTGVpbmZlbGRlbi1FY2h0ZXJkaW5nZW4gQlcgNzA3NzEKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLTVEICAgKGhleCkJCU1vYmlubm92YSBDb3JwLgorMDAxQTVEICAgICAoYmFzZSAxNikJCU1vYmlubm92YSBDb3JwLgorCQkJCTExRiwgODQ1LCBDSFVORyBTSEFOIFJECisJCQkJVEFPWVVBTiAgMzMwNTkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTVFICAgKGhleCkJCVRoaW5jb20gVGVjaG5vbG9neSBDby4sTHRkCiswMDFBNUUgICAgIChiYXNlIDE2KQkJVGhpbmNvbSBUZWNobm9sb2d5IENvLixMdGQKKwkJCQkxN0YtMywgTm8uMzk4LCBIdWFuYmVpIFJkLiwKKwkJCQlaaG9uZ2xpIENpdHkgVGFveXVhbiBDb250cnkgMzIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS01RiAgIChoZXgpCQlLaXRXb3Jrcy5maSBMdGQuCiswMDFBNUYgICAgIChiYXNlIDE2KQkJS2l0V29ya3MuZmkgTHRkLgorCQkJCVNub3dwb2xpcworCQkJCVZ1b2thdHRpIEthaW51dSA4ODYxMAorCQkJCUZJTkxBTkQKKworMDAtMUEtNjAgICAoaGV4KQkJV2F2ZSBFbGVjdHJvbmljcyBDby4sTHRkLgorMDAxQTYwICAgICAoYmFzZSAxNikJCVdhdmUgRWxlY3Ryb25pY3MgQ28uLEx0ZC4KKwkJCQkzdGggRmwuLERhZVNhbiBQbGF6YSBCL0QsR3V1bi1Eb25nLCAxMi0xLEd3b25zZW9uLUd1CisJCQkJU3V3b24tc2kgS3llb25nZ2ktRG8gNDQxLTgxNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS02MSAgIChoZXgpCQlQYWNTdGFyIENvcnAuCiswMDFBNjEgICAgIChiYXNlIDE2KQkJUGFjU3RhciBDb3JwLgorCQkJCTE1MDU1IFNXIFNlcXVvaWEgUGt3eSwgU3VpdGUgMTAwCisJCQkJUG9ydGxhbmQgT1IgOTcwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTYyICAgKGhleCkJCURhdGEgUm9ib3RpY3MsIEluY29ycG9yYXRlZAorMDAxQTYyICAgICAoYmFzZSAxNikJCURhdGEgUm9ib3RpY3MsIEluY29ycG9yYXRlZAorCQkJCTE4ODEgTGFuZGluZ3MgRHIKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS02MyAgIChoZXgpCQlFbHN0ZXIgU29sdXRpb25zLCBMTEMsCiswMDFBNjMgICAgIChiYXNlIDE2KQkJRWxzdGVyIFNvbHV0aW9ucywgTExDLAorCQkJCTIwOCBTb3V0aCBSb2dlcnMgTGFuZQorCQkJCVJhbGVpZ2ggTkMgMjc2MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTY0ICAgKGhleCkJCUlCTSBDb3JwCiswMDFBNjQgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTY1ICAgKGhleCkJCVNlbHV4aXQKKzAwMUE2NSAgICAgKGJhc2UgMTYpCQlTZWx1eGl0CisJCQkJTnloYXZuc2dhZGUgOSwgMi5zYWwKKwkJCQlBYWxib3JnIE5vcmQgSnlsbGFuZCA5MDAwCisJCQkJREVOTUFSSworCiswMC0xQS02NiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMUE2NiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS02NyAgIChoZXgpCQlJbmZpbml0ZSBRTCBTZG4gQmhkCiswMDFBNjcgICAgIChiYXNlIDE2KQkJSW5maW5pdGUgUUwgU2RuIEJoZAorCQkJCUcuMDIsIEJsb2NrIEEsIERhdGFyYW4gSGFtb2RhbAorCQkJCU5vLjQsIEphbGFuIDEzLzQsIFNlY3QuIDEzLAorCQkJCVBldGFsaW5nIEpheWEgU2VsYW5nb3IgRGFydWwgRWhzYW4gNDYzMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xQS02OCAgIChoZXgpCQlXZWx0ZWMgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKzAwMUE2OCAgICAgKGJhc2UgMTYpCQlXZWx0ZWMgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKwkJCQkyRiwgTm8uIDM1MSBZdW5nIEhvIFJkLgorCQkJCVRhaXBlaSBIc2llbgorCQkJCUNodW5nIEhvICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTY5ICAgKGhleCkJCVd1aGFuIFlhbmd0emUgT3B0aWNhbCBUZWNobm9sb2d5IENPLixMdGQuCiswMDFBNjkgICAgIChiYXNlIDE2KQkJV3VoYW4gWWFuZ3R6ZSBPcHRpY2FsIFRlY2hub2xvZ3kgQ08uLEx0ZC4KKwkJCQk0IyxHdWFuc2hhbiAyIFJvYWQKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzMKKwkJCQlDSElOQQorCiswMC0xQS02QSAgIChoZXgpCQlUcmFuemFzLCBJbmMuCiswMDFBNkEgICAgIChiYXNlIDE2KQkJVHJhbnphcywgSW5jLgorCQkJCVF1ZWVucyB0b3dlciBDMTcKKwkJCQlNaW5hdG9taXJhaSAyLTMtNSBOaXNoaS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhLWtlbiAyMjAtNjIxNworCQkJCUpBUEFOCisKKzAwLTFBLTZCICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAxQTZCICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTEFORSAzNTEsU2VjLjEsIFRBSVBJTkcgUkQuCisJCQkJVFNBT1RVRU4sCisJCQkJTkFOVE9VICA1NDI2MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNkMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQTZDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNkQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQTZEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNkUgICAoaGV4KQkJSW1wcm8gVGVjaG5vbG9naWVzCiswMDFBNkUgICAgIChiYXNlIDE2KQkJSW1wcm8gVGVjaG5vbG9naWVzCisJCQkJNDdCIEdpbGxpdHMgUmQKKwkJCQlQaW5ldG93biBLd2FadWx1LU5hdGFsIDM2MTAKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMUEtNkYgICAoaGV4KQkJTUkuVEVMIHMuci5sLgorMDAxQTZGICAgICAoYmFzZSAxNikJCU1JLlRFTCBzLnIubC4KKwkJCQlWSUEgR1VJRE8gUk9TU0EsIDIyCisJCQkJQ09STkFURSBEJ0FEREEgTUlMQU5PIDIwMDQwCisJCQkJSVRBTFkKKworMDAtMUEtNzAgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCiswMDFBNzAgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS03MSAgIChoZXgpCQlEaW9zdGVjaCBDby4sIEx0ZC4KKzAwMUE3MSAgICAgKGJhc2UgMTYpCQlEaW9zdGVjaCBDby4sIEx0ZC4KKwkJCQkxNTEtMjEsIEJ1ay1yaSwgTmFtc2EtbXllb24sCisJCQkJQ2hlb2luLWd1CisJCQkJWW9uZ2luLWNpdHkgR3llb25nZ2ktZG8gNDQ5IDg4NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS03MiAgIChoZXgpCQlNb3NhcnQgU2VtaWNvbmR1Y3RvciBDb3JwLgorMDAxQTcyICAgICAoYmFzZSAxNikJCU1vc2FydCBTZW1pY29uZHVjdG9yIENvcnAuCisJCQkJMjNGLiwgTm8uMzMsIFNlYy4xLAorCQkJCU1pbiBTaGVuZyBSZC4sIFBhbmNoaWFvIENpdHkKKwkJCQlUYWlwZWkgIDIyMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNzMgICAoaGV4KQkJR2VtdGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFBNzMgICAgIChiYXNlIDE2KQkJR2VtdGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uIDEgSmVuIEFpIFJvYWQsIEhzaW5jaHUgSW5kdXN0cmlhbCBQYXJrLCBIdWtvdSwKKwkJCQlIc2luY2h1ICAzMDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTc0ICAgKGhleCkJCVByb2NhcmUgSW50ZXJuYXRpb25hbCBDbworMDAxQTc0ICAgICAoYmFzZSAxNikJCVByb2NhcmUgSW50ZXJuYXRpb25hbCBDbworCQkJCTVGLCBOby44OCwgSmhvdXppaCBTdHJlZXQsIE5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTc1ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCiswMDFBNzUgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTa+VuZSAyMjE4OAorCQkJCVNXRURFTgorCiswMC0xQS03NiAgIChoZXgpCQlTRFQgaW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTFRELgorMDAxQTc2ICAgICAoYmFzZSAxNikJCVNEVCBpbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLixMVEQuCisJCQkJU2FtaWwgQi9CIDJGLCA1LTYzIEh5b2NoYW5nLWRvbmcKKwkJCQlZb25nc2FuLUt1LAorCQkJCVNlb3VsICAxNDAtODk2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTc3ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxQTc3ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTYwMCBOLiBId3kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTc4ICAgKGhleCkJCXVidG9zCiswMDFBNzggICAgIChiYXNlIDE2KQkJdWJ0b3MKKwkJCQlSbi4yMTMsIFdvb2xpbSBMaW9uoa9zIFZhbGxleSClsSwgIzY4MAorCQkJCXNlb3VsIEdhc2FuLWRvbmcgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS03OSAgIChoZXgpCQlURUxFQ09NVU5JQ0FUSU9OIFRFQ0hOT0xPR0lFUyBMVEQuCiswMDFBNzkgICAgIChiYXNlIDE2KQkJVEVMRUNPTVVOSUNBVElPTiBURUNITk9MT0dJRVMgTFRELgorCQkJCTREIFpIVUtPVkEgQkxWLgorCQkJCU9ERVNTQSAgNjUxMjEKKwkJCQlVS1JBSU5FCisKKzAwLTFBLTdBICAgKGhleCkJCUxpc21vcmUgSW5zdHJ1bWVudHMgTGltaXRlZAorMDAxQTdBICAgICAoYmFzZSAxNikJCUxpc21vcmUgSW5zdHJ1bWVudHMgTGltaXRlZAorCQkJCVVuaXQgMiBUcmlzdGFyIENlbnRyZSwgU3RhciBSb2FkCisJCQkJUGFydHJpZGdlIEdyZWVuCisJCQkJSG9yc2hhbSBXZXN0IFN1c3NleCBSSDEzIDhSQQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFBLTdCICAgKGhleCkJCVRlbGVjbywgSW5jLgorMDAxQTdCICAgICAoYmFzZSAxNikJCVRlbGVjbywgSW5jLgorCQkJCTQzMCBXb29kcnVmZiBSZC4KKwkJCQlTdWl0ZSAzMDAKKwkJCQlHcmVlbnZpbGxlIFNDIDI5NjA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS03QyAgIChoZXgpCQlIaXJzY2htYW5uIE11bHRpbWVkaWEgQi5WLgorMDAxQTdDICAgICAoYmFzZSAxNikJCUhpcnNjaG1hbm4gTXVsdGltZWRpYSBCLlYuCisJCQkJUGFtcHVzbGFhbiAxNzAKKwkJCQlXZWVzcCBOb29yZC1Ib2xsYW5kIDEzODIgSlMKKwkJCQlORVRIRVJMQU5EUworCiswMC0xQS03RCAgIChoZXgpCQljeWJlci1ibHVlKEhLKUx0ZAorMDAxQTdEICAgICAoYmFzZSAxNikJCWN5YmVyLWJsdWUoSEspTHRkCisJCQkJUm9vbSAxNDA4IGJsb2NrIEMgc3RhcnMgUGxhemEgSG9uZ0xpUm9hZCxGdVRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ0RvbmcgNTE4MDI4CisJCQkJQ0hJTkEKKworMDAtMUEtN0UgICAoaGV4KQkJTE4gU3JpdGhhaSBDb21tIEx0ZC4KKzAwMUE3RSAgICAgKGJhc2UgMTYpCQlMTiBTcml0aGFpIENvbW0gTHRkLgorCQkJCTcxLzEyIE0uNSwgQmFuZ25hLVRyYWQgUmQsIEtNLjUyLCBUaGFrYW0KKwkJCQlCYW5ncGFrb25nIENoYWNob2VuZ3NhbyAyNDEzMAorCQkJCVRIQUlMQU5ECisKKzAwLTFBLTdGICAgKGhleCkJCUdDSSBTY2llbmNlJlRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMUE3RiAgICAgKGJhc2UgMTYpCQlHQ0kgU2NpZW5jZSZUZWNobm9sb2d5IENvLixMdGQuCisJCQkJTm8uMzgxLCBYaW5nYW5nemhvbmcgUm9hZCwKKwkJCQlndWFuZ3pob3UgZ3Vhbmdkb25nIDUxMDMxMAorCQkJCUNISU5BCisKKzAwLTFBLTgwICAgKGhleCkJCVNvbnkgQ29ycG9yYXRpb24KKzAwMUE4MCAgICAgKGJhc2UgMTYpCQlTb255IENvcnBvcmF0aW9uCisJCQkJR290ZW55YW1hIFRlYyA1LTEtMgorCQkJCUtpdGFzaGluYWdhd2EKKwkJCQlTaGluYWdhd2Eta3UgVG9reW8gMTQxLTAwMDEKKwkJCQlKQVBBTgorCiswMC0xQS04MSAgIChoZXgpCQlaZWxheAorMDAxQTgxICAgICAoYmFzZSAxNikJCVplbGF4CisJCQkJMm5kIGJ1aWQuLCAxQiwgWmF2b2Rza2F5YSBzdC4sCisJCQkJTW9zY293ICAxMjQ2ODEKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUEtODIgICAoaGV4KQkJUFJPQkEgQnVpbGRpbmcgQXV0b21hdGlvbiBDby4sTFRECiswMDFBODIgICAgIChiYXNlIDE2KQkJUFJPQkEgQnVpbGRpbmcgQXV0b21hdGlvbiBDby4sTFRECisJCQkJUGVuZ2h1YW4gQnVpbGRpbmcgNTAxLCBTaGFuZ2RpIEVhc3QgUm9hZCAjMSwgSGFpZGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0xQS04MyAgIChoZXgpCQlQZWdhc3VzIFRlY2hub2xvZ2llcyBJbmMuCiswMDFBODMgICAgIChiYXNlIDE2KQkJUGVnYXN1cyBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTEwOCBQYXdub29rIEZhcm0gUmQuCisJCQkJTGVub2lyIENpdHkgVE4gMzc3NzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTg0ICAgKGhleCkJCVYgT25lIE11bHRpbWVkaWEgUHRlIEx0ZAorMDAxQTg0ICAgICAoYmFzZSAxNikJCVYgT25lIE11bHRpbWVkaWEgUHRlIEx0ZAorCQkJCUJsayA1NCwgS2FsbGFuZyBCYWhydQorCQkJCSMwMi0wNAorCQkJCTMzOTMzNgorCQkJCVNJTkdBUE9SRQorCiswMC0xQS04NSAgIChoZXgpCQlOViBNaWNoZWwgVmFuIGRlIFdpZWxlCiswMDFBODUgICAgIChiYXNlIDE2KQkJTlYgTWljaGVsIFZhbiBkZSBXaWVsZQorCQkJCU0uIFZhbmRld2llbGVzdHJhYXQgNworCQkJCU1hcmtlIFdlc3QtVmxhYW5kZXJlbiA4NTEwCisJCQkJQkVMR0lVTQorCiswMC0xQS04NiAgIChoZXgpCQlBZHZhbmNlZElPIFN5c3RlbXMgSW5jCiswMDFBODYgICAgIChiYXNlIDE2KQkJQWR2YW5jZWRJTyBTeXN0ZW1zIEluYworCQkJCTU5NSBIb3dlIFN0cmVldCwgU3VpdGUgNTAyCisJCQkJVmFuY291dmVyIEJDIFY2QyAyVDUKKwkJCQlDQU5BREEKKworMDAtMUEtODcgICAoaGV4KQkJQ2FuaG9sZCBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKzAwMUE4NyAgICAgKGJhc2UgMTYpCQlDYW5ob2xkIEludGVybmF0aW9uYWwgTGltaXRlZAorCQkJCUZsYXQgNCwgMTMvRi4sIEJsb2NrIDQsIFRhaSBQaW5nIEluZHVzdHJpYWwgQ2VudHJlCisJCQkJNTFBIFRpbmcgS29rIFJvYWQsIFRhaSBQbywgTi5ULiwKKwkJCQkwMDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xQS04OCAgIChoZXgpCQlWZW5lcmd5LENvLEx0ZAorMDAxQTg4ICAgICAoYmFzZSAxNikJCVZlbmVyZ3ksQ28sTHRkCisJCQkJV2VzdCA2dGggRmxvb3IsTS04IEJ1aWxkaW5nIE1hcXVlbGluZyBab25lLAorCQkJCVNoZW56aGVuIEhpZ2gtVGVjaCBQYXJrLCBOYW5zaGFuIGRpc3RyaWN0LAorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCiswMC0xQS04OSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxQTg5ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xQS04QSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxQThBICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pLUNpdHkgR3llb25nLUJ1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLThCICAgKGhleCkJCUNIVU5JTCBFTEVDVFJJQyBJTkQuLCBDTy4KKzAwMUE4QiAgICAgKGJhc2UgMTYpCQlDSFVOSUwgRUxFQ1RSSUMgSU5ELiwgQ08uCisJCQkJMzA4LEJ5dWNrU2FuIERpZ2l0YWwgVmFsbGV5LDEzMi03LEdhbWplb24tRG9uZyxTYXNhbmctR3UKKwkJCQlCdXNhbiBHeWVvbmdTYW5nTmFtRG8gNjE3LTgwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS04QyAgIChoZXgpCQlBc3Rhcm8gQUcKKzAwMUE4QyAgICAgKGJhc2UgMTYpCQlBc3Rhcm8gQUcKKwkJCQlBbWFsaWVuYmFkc3RyLiAzNgorCQkJCUJhdSAzM2EKKwkJCQlLYXJsc3J1aGUgQlcgNzYyMjcKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLThEICAgKGhleCkJCUFWRUNTIEJlcmdlbiBHbWJICiswMDFBOEQgICAgIChiYXNlIDE2KQkJQVZFQ1MgQmVyZ2VuIEdtYkgKKwkJCQlCaWxscm90aHN0ci4gMTEgYQorCQkJCUJlcmdlbiBhdWYgUvxnZW4gTS9WIDE4NTI4CisJCQkJR0VSTUFOWQorCiswMC0xQS04RSAgIChoZXgpCQkzV2F5IE5ldHdvcmtzIEx0ZAorMDAxQThFICAgICAoYmFzZSAxNikJCTNXYXkgTmV0d29ya3MgTHRkCisJCQkJNzIwMCBDYW1icmlkZ2UgUmVzZWFyY2ggUGFyaworCQkJCVdhdGVyYmVhY2gKKwkJCQlDYW1icmlkZ2UgQ2FtYnJpZGdlc2hpcmUgQ0I1IDlUTAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFBLThGICAgKGhleCkJCU5vcnRlbAorMDAxQThGICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xQS05MCAgIChoZXgpCQlUcvNwaWNvIFNpc3RlbWFzIGUgVGVsZWNvbXVuaWNh5/VlcyBkYSBBbWF69G5pYSBMVERBLgorMDAxQTkwICAgICAoYmFzZSAxNikJCVRy83BpY28gU2lzdGVtYXMgZSBUZWxlY29tdW5pY2Hn9WVzIGRhIEFtYXr0bmlhIExUREEuCisJCQkJUm9kLiAgQ2FtcGluYXMtTW9naS1NaXJpbSAoU1AgMzQwKSAgS20gMTE4LDUKKwkJCQlQb2xpcyBkZSBUZWNub2xvZ2lhIChDUHFEKS1QculkaW8gOUEKKwkJCQlDYW1waW5hcyBT428gUGF1bG8gMTMuMDg2LTkwMgorCQkJCUJSQVpJTAorCiswMC0xQS05MSAgIChoZXgpCQlGdXNpb25EeW5hbWljIEx0ZC4KKzAwMUE5MSAgICAgKGJhc2UgMTYpCQlGdXNpb25EeW5hbWljIEx0ZC4KKwkJCQkxIEIuUy5SLiB0b3dlcnMsIDQtdGggZmxvb3IKKwkJCQkyIEJlbiBHdXJpb24gc3RyZWV0CisJCQkJUmFtYXQgR2FuICA1MjU3MworCQkJCUlTUkFFTAorCiswMC0xQS05MiAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMUE5MiAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTkzICAgKGhleCkJCUVSQ08gTGV1Y2h0ZW4gR21iSAorMDAxQTkzICAgICAoYmFzZSAxNikJCUVSQ08gTGV1Y2h0ZW4gR21iSAorCQkJCUJyb2NraGF1c2VyIFdlZyA4MC04MgorCQkJCUz8ZGVuc2NoZWlkIE5SVyBELTU4NTA3CisJCQkJR0VSTUFOWQorCiswMC0xQS05NCAgIChoZXgpCQlWb3Ryb25pYyBHbWJICiswMDFBOTQgICAgIChiYXNlIDE2KQkJVm90cm9uaWMgR21iSAorCQkJCVNhYXJicnVlY2tlciBTdHIuIDgKKwkJCQlTdC4gSW5nYmVydCBTYWFybGFuZCA2NjM4NgorCQkJCUdFUk1BTlkKKworMDAtMUEtOTUgICAoaGV4KQkJSGlzZW5zZSBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgVGVjaG5vbGlneSBDby4sTHRkLgorMDAxQTk1ICAgICAoYmFzZSAxNikJCUhpc2Vuc2UgTW9iaWxlIENvbW11bmljYXRpb25zIFRlY2hub2xpZ3kgQ28uLEx0ZC4KKwkJCQkxMSxKaWFuZ1hpIFJvYWQsCisJCQkJUWluZ0RhbyBTaGFuRG9uZyAyNjYwNzEKKwkJCQlDSElOQQorCiswMC0xQS05NiAgIChoZXgpCQlFQ0xFUiBTLkEuCiswMDFBOTYgICAgIChiYXNlIDE2KQkJRUNMRVIgUy5BLgorCQkJCU1vdG9ycyAxNjYtMTY4CisJCQkJQmFyY2Vsb25hICAwODAzOAorCQkJCVNQQUlOCisKKzAwLTFBLTk3ICAgKGhleCkJCWZpdGl2aXNpb24gdGVjaG5vbG9neSBJbmMuCiswMDFBOTcgICAgIChiYXNlIDE2KQkJZml0aXZpc2lvbiB0ZWNobm9sb2d5IEluYy4KKwkJCQk4RiwgTm8uIDM1NiwgU2VjLiAxLCBOZWlodSBSZAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTk4ICAgKGhleCkJCUFzb3RlbCBDb21tdW5pY2F0aW9uIExpbWl0ZWQgVGFpd2FuIEJyYW5jaAorMDAxQTk4ICAgICAoYmFzZSAxNikJCUFzb3RlbCBDb21tdW5pY2F0aW9uIExpbWl0ZWQgVGFpd2FuIEJyYW5jaAorCQkJCTNHMTcsIE5vNSwgSHNpbiBZaSBSb2FkLCBTZWMuIDUKKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtOTkgICAoaGV4KQkJU21hcnR5IChIWikgSW5mb3JtYXRpb24gRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzAwMUE5OSAgICAgKGJhc2UgMTYpCQlTbWFydHkgKEhaKSBJbmZvcm1hdGlvbiBFbGVjdHJvbmljcyBDby4sIEx0ZAorCQkJCVlvbmdodWEgSW5kdXN0cmlhbCBEaXN0cmljdCxIdWlzaGVuIFJvYWQsWmhlbmxvbmcgVG93bgorCQkJCUh1aVpob3UgR3VhbmdEb25nIDUxNjIyNworCQkJCUNISU5BCisKKzAwLTFBLTlBICAgKGhleCkJCVNreXdvcnRoIERpZ2l0YWwgdGVjaG5vbG9neShzaGVuemhlbiljby5sdGQuCiswMDFBOUEgICAgIChiYXNlIDE2KQkJU2t5d29ydGggRGlnaXRhbCB0ZWNobm9sb2d5KHNoZW56aGVuKWNvLmx0ZC4KKwkJCQkxM0YsQmxvY2sgQSxTa3l3b3J0aCBCdWlsZGluZyxHYW94aW4gQVZFLjEuUywKKwkJCQlOYW5zaGFuIERpc3RyaWN0LAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xQS05QiAgIChoZXgpCQlBREVDICYgUGFydGVyIEFHCiswMDFBOUIgICAgIChiYXNlIDE2KQkJQURFQyAmIFBhcnRlciBBRworCQkJCVN0YWxkZW5iYWNoc3RyYXNzZSAzMAorCQkJCVBmYWVmZmlrb24gWkggODgwOAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFBLTlDICAgKGhleCkJCVJpZ2h0SGFuZCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMUE5QyAgICAgKGJhc2UgMTYpCQlSaWdodEhhbmQgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNjU0NSBOIE9sbXN0ZWQgQXZlbnVlCisJCQkJQ2hpY2FnbyBJTCA2MDYzMS0xNDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS05RCAgIChoZXgpCQlTa2lwcGVyIFdpcmVsZXNzLCBJbmMuCiswMDFBOUQgICAgIChiYXNlIDE2KQkJU2tpcHBlciBXaXJlbGVzcywgSW5jLgorCQkJCVNoaW5qdWt1LVN1bWl0b21vIEJsZGcuIDIwRgorCQkJCTItNi0xIE5pc2hpLVNoaW5qdWt1CisJCQkJU2hpbmp1a3UgVG9reW8gMTYzLTAyMjAKKwkJCQlKQVBBTgorCiswMC0xQS05RSAgIChoZXgpCQlJQ09OIERpZ2l0YWwgSW50ZXJuYXRpb25hbCBMaW1pdGVkCiswMDFBOUUgICAgIChiYXNlIDE2KQkJSUNPTiBEaWdpdGFsIEludGVybmF0aW9uYWwgTGltaXRlZAorCQkJCVN1aXRlMjIwOSwgMjIvRi4sIFNreUxpbmUgVG93ZXIsCisJCQkJMzkgV2FuZyBLd29uZyBSb2FkLCBLb3dsb29uIEJheQorCQkJCUNISU5BCisKKzAwLTFBLTlGICAgKGhleCkJCUEtTGluayBFdXJvcGUgTHRkCiswMDFBOUYgICAgIChiYXNlIDE2KQkJQS1MaW5rIEV1cm9wZSBMdGQKKwkJCQlQLk8uQm94IDMKKwkJCQlFc3BvbyAgRkktMDI5NDEKKwkJCQlGSU5MQU5ECisKKzAwLTFBLUEwICAgKGhleCkJCURlbGwgSW5jCiswMDFBQTAgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksICBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1BMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFBQTEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1BMiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFBQTIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1BMyAgIChoZXgpCQlERUxPUk1FCiswMDFBQTMgICAgIChiYXNlIDE2KQkJREVMT1JNRQorCQkJCTIgREVMT1JNRSBEUklWRQorCQkJCVlBUk1PVVRIIE1BSU5FIDA0MDk2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1BNCAgIChoZXgpCQlGdXR1cmUgVW5pdmVyc2l0eS1IYWtvZGF0ZQorMDAxQUE0ICAgICAoYmFzZSAxNikJCUZ1dHVyZSBVbml2ZXJzaXR5LUhha29kYXRlCisJCQkJMTE2LTIgS2FtZWRhbmFrYW5vLWNobworCQkJCUhha29kYXRlIEhva2thaWRvIDA0MS04NjU1CisJCQkJSkFQQU4KKworMDAtMUEtQTUgICAoaGV4KQkJQlJOIFBob2VuaXgKKzAwMUFBNSAgICAgKGJhc2UgMTYpCQlCUk4gUGhvZW5peAorCQkJCTI1MDAgQXVndXN0aW5lIERyaXZlLCBTdWl0ZSAyMDAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQTYgICAoaGV4KQkJVGVsZWZ1bmtlbiBSYWRpbyBDb21tdW5pY2F0aW9uIFN5c3RlbXMgR21iSCAmQ08uS0cKKzAwMUFBNiAgICAgKGJhc2UgMTYpCQlUZWxlZnVua2VuIFJhZGlvIENvbW11bmljYXRpb24gU3lzdGVtcyBHbWJIICZDTy5LRworCQkJCUViZXJoYXJkLUZpbmNraC1TdHJhc3NlIDU1CisJCQkJVWxtIEJhZGVuLVf8cnR0ZW1iZXJnIDg5MDc1CisJCQkJR0VSTUFOWQorCiswMC0xQS1BNyAgIChoZXgpCQlUb3JpYW4gV2lyZWxlc3MKKzAwMUFBNyAgICAgKGJhc2UgMTYpCQlUb3JpYW4gV2lyZWxlc3MKKwkJCQkyMDQgSm9obnN0b24gU3RyZWV0CisJCQkJQ29sbGluZ3dvb2QgVmljdG9yaWEgMzA2NgorCQkJCUFVU1RSQUxJQQorCiswMC0xQS1BOCAgIChoZXgpCQlNYW1peWEgRGlnaXRhbCBJbWFnaW5nIENvLiwgTHRkLgorMDAxQUE4ICAgICAoYmFzZSAxNikJCU1hbWl5YSBEaWdpdGFsIEltYWdpbmcgQ28uLCBMdGQuCisJCQkJMi0xNC0yMiBVZW5vCisJCQkJVGFpdG8ta3UgVG9reW8gMTEwLTAwMDUKKwkJCQlKQVBBTgorCiswMC0xQS1BOSAgIChoZXgpCQlGVUpJQU4gU1RBUi1ORVQgQ09NTVVOSUNBVElPTiBDTy4sTFRECiswMDFBQTkgICAgIChiYXNlIDE2KQkJRlVKSUFOIFNUQVItTkVUIENPTU1VTklDQVRJT04gQ08uLExURAorCQkJCTE5LTIyIyBCdWlsZGluZywgU3Rhci1uZXQgU2NpZW5jZSBQbGF6YSwgSnV5dWFuemhvdSwKKwkJCQk2MTggSmluc2hhbiBSb2FkLAorCQkJCUZVWkhPVSBGVUpJQU4gMzUwMDAyCisJCQkJQ0hJTkEKKworMDAtMUEtQUEgICAoaGV4KQkJQW5hbG9naWMgQ29ycC4KKzAwMUFBQSAgICAgKGJhc2UgMTYpCQlBbmFsb2dpYyBDb3JwLgorCQkJCTggQ2VudGVubmlhbCBEcml2ZQorCQkJCVBlYWJvZHkgTUEgMDE5NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUFCICAgKGhleCkJCWVXaW5ncyBzLnIubC4KKzAwMUFBQiAgICAgKGJhc2UgMTYpCQllV2luZ3Mgcy5yLmwuCisJCQkJdmlhIFMuIFF1YXNpbW9kbyA0NgorCQkJCUNhc3RlbCBNYWdnaW9yZSBCb2xvZ25hIDQwMDEzCisJCQkJSVRBTFkKKworMDAtMUEtQUMgICAoaGV4KQkJQ29yZWxhdHVzIEFCCiswMDFBQUMgICAgIChiYXNlIDE2KQkJQ29yZWxhdHVzIEFCCisJCQkJVGVnbmVyZ2F0YW4gMzcKKwkJCQlTdG9ja2hvbG0gIDExMTYxCisJCQkJU1dFREVOCisKKzAwLTFBLUFEICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDFBQUQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1BRSAgIChoZXgpCQlTYXZhbnQgU3lzdGVtcyBMTEMKKzAwMUFBRSAgICAgKGJhc2UgMTYpCQlTYXZhbnQgU3lzdGVtcyBMTEMKKwkJCQk3NzBBIE1haW4gU3QKKwkJCQlPc3RlcnZpbGxlIE1hc3NhY2h1c2V0dHMgMDI2NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUFGICAgKGhleCkJCUJMVVNFTlMgVEVDSE5PTE9HWQorMDAxQUFGICAgICAoYmFzZSAxNikJCUJMVVNFTlMgVEVDSE5PTE9HWQorCQkJCUVESUZJQ0lPIENOTCwtIEFWLgorCQkJCUZFUk5BTkRPIENBU0FTIE5PVk9BICxOuiAzN0IgMroKKwkJCQkxNTcwNyAtIFNBTlRJQUdPIERFIENPTVBPU1RFTEEgQSBDT1JV0UEgCisJCQkJU1BBSU4KKworMDAtMUEtQjAgICAoaGV4KQkJU2lnbmFsIE5ldHdvcmtzIFB2dC4gTHRkLiwKKzAwMUFCMCAgICAgKGJhc2UgMTYpCQlTaWduYWwgTmV0d29ya3MgUHZ0LiBMdGQuLAorCQkJCU5vLjEyLCBLYWxwYXRhcnUgQXBhcnRtZW50cywKKwkJCQlSYWNlIENvdXJzZSBDcm9zcyBSb2FkLCBNYWRoYXZuYWdhciwKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MDAwMQorCQkJCUlORElBCisKKzAwLTFBLUIxICAgKGhleCkJCUFzaWEgUGFjaWZpYyBTYXRlbGxpdGUgSW5kdXN0cmllcyBDby4sIEx0ZC4KKzAwMUFCMSAgICAgKGJhc2UgMTYpCQlBc2lhIFBhY2lmaWMgU2F0ZWxsaXRlIEluZHVzdHJpZXMgQ28uLCBMdGQuCisJCQkJOXRoIEZMLCBJVCBDYXN0bGUgMi1Eb25nLCAjNTUwLTEsIEdhc2FuLURvbmcsIEdldW1DaGVvbi1HdSwKKwkJCQlTZW91bCAgMTUzLTc2OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS1CMiAgIChoZXgpCQlDeWJlciBTb2x1dGlvbnMgSW5jLgorMDAxQUIyICAgICAoYmFzZSAxNikJCUN5YmVyIFNvbHV0aW9ucyBJbmMuCisJCQkJNi02LTMsIE1pbmFtaSBZb3NoaW5hcmkKKwkJCQlBb2JhLWt1CisJCQkJU2VuZGFpIE1peWFnaS1rZW4gOTg5LTMyMDQKKwkJCQlKQVBBTgorCiswMC0xQS1CMyAgIChoZXgpCQlWSVNJT05JVEUgSU5DLgorMDAxQUIzICAgICAoYmFzZSAxNikJCVZJU0lPTklURSBJTkMuCisJCQkJIzcwNyBEYWVyeXVuZyBUZWNobm90b3duLTIgNTY5LTIxCisJCQkJR2FzYW4tRG9uZyBHZXVtY2hlb24tR3UKKwkJCQlTZW91bCAgMTUzLTc3MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS1CNCAgIChoZXgpCQlGRkVJIEx0ZC4KKzAwMUFCNCAgICAgKGJhc2UgMTYpCQlGRkVJIEx0ZC4KKwkJCQlCbG9jayAyLCAgRWF0b24gQ291cnQKKwkJCQlFYXRvbiBSb2FkCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRmb3Jkc2hpcmUgSFAyIDdEUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFBLUI1ICAgKGhleCkJCUhvbWUgTmV0d29yayBTeXN0ZW0KKzAwMUFCNSAgICAgKGJhc2UgMTYpCQlIb21lIE5ldHdvcmsgU3lzdGVtCisJCQkJMTA3LCBIeXVuZGFpIEktVmFsbHkKKwkJCQlTYW5nZGFld29uIDEoaWwpLWRvbmcsIEp1bmd3b24tZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjItNzE0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLUI2ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDFBQjYgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMDggV2lsZCBCYXNpbiBTdGUgMzUwCisJCQkJQXVzdGluIFRYIDc4NzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1CNyAgIChoZXgpCQlFdGhvcyBOZXR3b3JrcyBMVEQuCiswMDFBQjcgICAgIChiYXNlIDE2KQkJRXRob3MgTmV0d29ya3MgTFRELgorCQkJCTIgTWFza2l0IFN0LgorCQkJCUJ1aWxkaW5nIEQsIFBPQm94IDQwOTAKKwkJCQlIZXJ6bGlhICA0Njc2NgorCQkJCUlTUkFFTAorCiswMC0xQS1COCAgIChoZXgpCQlBbnNlcmkgQ29ycG9yYXRpb24KKzAwMUFCOCAgICAgKGJhc2UgMTYpCQlBbnNlcmkgQ29ycG9yYXRpb24KKwkJCQkzNUUgSW5kdXN0cmlhbCBXYXkKKwkJCQlTdWl0ZSAxMDEKKwkJCQlSb2NoZXN0ZXIgTkggMDM4NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUI5ICAgKGhleCkJCVBNQworMDAxQUI5ICAgICAoYmFzZSAxNikJCVBNQworCQkJCTU2LCBhdmVudWUgUmFzcGFpbAorCQkJCVNhaW50IE1hdXIgdmFsIGRlIG1hcm5lIDk0MTAwCisJCQkJRlJBTkNFCisKKzAwLTFBLUJBICAgKGhleCkJCUNhdG9uIE92ZXJzZWFzIExpbWl0ZWQKKzAwMUFCQSAgICAgKGJhc2UgMTYpCQlDYXRvbiBPdmVyc2VhcyBMaW1pdGVkCisJCQkJUm9vbSAxMDIsIE5vLiAxMDEsIExhbmUgOTEKKwkJCQlFLVNoYW4gUm9hZCwgUHVkb25nIERpc3RyaWN0CisJCQkJU2hhbmdoYWkgIDIwMDEyNworCQkJCUNISU5BCisKKzAwLTFBLUJCICAgKGhleCkJCUZvbnRhbCBUZWNobm9sb2d5IEluY29ycG9yYXRpb24KKzAwMUFCQiAgICAgKGJhc2UgMTYpCQlGb250YWwgVGVjaG5vbG9neSBJbmNvcnBvcmF0aW9uCisJCQkJUm0uNTIyLCBCbGRnLiA1MiwgMTk1LCBTZWMuIDQsIENodW5nSHNpbmcgUmQuLCBDaHV0dW5nCisJCQkJSHNpbmNodSAgMzEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS1CQyAgIChoZXgpCQlVNEVBIFRlY2hub2xvZ2llcyBMdGQKKzAwMUFCQyAgICAgKGJhc2UgMTYpCQlVNEVBIFRlY2hub2xvZ2llcyBMdGQKKwkJCQlDaXR5IFBvaW50CisJCQkJVGVtcGxlIEdhdGUKKwkJCQlCcmlzdG9sICBCUzEgNlBMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUEtQkQgICAoaGV4KQkJSW1wYXRpY2EgSW5jLgorMDAxQUJEICAgICAoYmFzZSAxNikJCUltcGF0aWNhIEluYy4KKwkJCQkyMDUtMTcyNSBTdC4gTGF1cmVudCBCbHZkLgorCQkJCU90dGF3YSBPTiBLMUcgM1Y0CisJCQkJQ0FOQURBCisKKzAwLTFBLUJFICAgKGhleCkJCUNPTVBVVEVSIEhJLVRFQ0ggSU5DLgorMDAxQUJFICAgICAoYmFzZSAxNikJCUNPTVBVVEVSIEhJLVRFQ0ggSU5DLgorCQkJCUhpZ2FzaGlVZW5vMy0xOC03CisJCQkJVGFpdG9rdSBUb2t5byAxMTAtMDAxNQorCQkJCUpBUEFOCisKKzAwLTFBLUJGICAgKGhleCkJCVRSVU1QRiBMYXNlciBNYXJraW5nIFN5c3RlbXMgQUcKKzAwMUFCRiAgICAgKGJhc2UgMTYpCQlUUlVNUEYgTGFzZXIgTWFya2luZyBTeXN0ZW1zIEFHCisJCQkJQXVzc2VyZmVsZAorCQkJCUdydWVzY2ggR1IgNzIxNAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFBLUMwICAgKGhleCkJCUpPWUJJRU4gVEVDSE5PTE9HSUVTIENPLiwgTFRELgorMDAxQUMwICAgICAoYmFzZSAxNikJCUpPWUJJRU4gVEVDSE5PTE9HSUVTIENPLiwgTFRELgorCQkJCTE4Ri0xLCBOTy43MDAsIFpIT05HWkhFTkcgUkQuLAorCQkJCVpIT05HSEUgQ0lUWSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS1DMSAgIChoZXgpCQkzQ29tIEx0ZAorMDAxQUMxICAgICAoYmFzZSAxNikJCTNDb20gTHRkCisJCQkJUGVvcGxlYnVpbGRpbmcgMgorCQkJCVBlb3BsZWJ1aWxkaW5nIEVzdGF0ZSwgTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQS1DMiAgIChoZXgpCQlZRUMgQ28uLEx0ZC4KKzAwMUFDMiAgICAgKGJhc2UgMTYpCQlZRUMgQ28uLEx0ZC4KKwkJCQk1NDMtOSBUc3VydW1hCisJCQkJTWFjaGlkYSBUb2t5byAxOTQtMDAwNAorCQkJCUpBUEFOCisKKzAwLTFBLUMzICAgKGhleCkJCVNjaWVudGlmaWMtQXRsYW50YSwgSW5jCiswMDFBQzMgICAgIChiYXNlIDE2KQkJU2NpZW50aWZpYy1BdGxhbnRhLCBJbmMKKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJQVRMIDEuMy40NzMKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1DNCAgIChoZXgpCQkyV2lyZSwgSW5jCiswMDFBQzQgICAgIChiYXNlIDE2KQkJMldpcmUsIEluYworCQkJCTE3MDQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUM1ICAgKGhleCkJCUJyZWFraW5nUG9pbnQgU3lzdGVtcywgSW5jLgorMDAxQUM1ICAgICAoYmFzZSAxNikJCUJyZWFraW5nUG9pbnQgU3lzdGVtcywgSW5jLgorCQkJCTM5MDAgTi4gQ2FwaXRhbCBvZiBUZXhhcyBId3kKKwkJCQlTdWl0ZSAxODAKKwkJCQlBdXN0aW4gVFggNzg3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUM2ICAgKGhleCkJCU1pY3JvIENvbnRyb2wgRGVzaWducworMDAxQUM2ICAgICAoYmFzZSAxNikJCU1pY3JvIENvbnRyb2wgRGVzaWducworCQkJCTE3NDkwIENhcmlib3UgRHIKKwkJCQlNb251bWVudCBDby4gODAxMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUM3ICAgKGhleCkJCVVOSVBPSU5UCiswMDFBQzcgICAgIChiYXNlIDE2KQkJVU5JUE9JTlQKKwkJCQk3RiBHd2FuZ3N1bmcgQmxkIDgzMS00NyBZZW9rU2FtLURvbmcKKwkJCQlLYW5nbmFtLUd1IFNlb3VsIDEzNS05MzYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtQzggICAoaGV4KQkJSVNMIChJbnN0cnVtZW50YXRpb24gU2NpZW50aWZpcXVlIGRlIExhYm9yYXRvaXJlKQorMDAxQUM4ICAgICAoYmFzZSAxNikJCUlTTCAoSW5zdHJ1bWVudGF0aW9uIFNjaWVudGlmaXF1ZSBkZSBMYWJvcmF0b2lyZSkKKwkJCQlJbXBhc3NlIGRlcyA0IHZlbnRzCisJCQkJUGFyYyBkJ0FjdGl2aXTpIGRlIGxhIE1lc25pbGxp6XJlCisJCQkJVkVSU09OIENBTFZBRE9TIDE0NzkwCisJCQkJRlJBTkNFCisKKzAwLTFBLUM5ICAgKGhleCkJCVNVWlVLRU4gQ08uLExURAorMDAxQUM5ICAgICAoYmFzZSAxNikJCVNVWlVLRU4gQ08uLExURAorCQkJCVNVWlVLRU4gVE9NRUkgQkxERy4KKwkJCQkyNiBISU1FV0FLQS1DSE8gTUVJVE8tS1UKKwkJCQlOQUdPWUEtU0kgQUlDSEktS0VOIDQ2NS0wMDQ1CisJCQkJSkFQQU4KKworMDAtMUEtQ0EgICAoaGV4KQkJVGlsZXJhIENvcnBvcmF0aW9uCiswMDFBQ0EgICAgIChiYXNlIDE2KQkJVGlsZXJhIENvcnBvcmF0aW9uCisJCQkJMTkwMCBXZXN0IFBhcmsgRHJpdmUKKwkJCQlTdWl0ZSAyOTAKKwkJCQlXZXN0Ym9yb3VnaCBNQSAwMTU4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQ0IgICAoaGV4KQkJQXV0b2NvbSBQcm9kdWN0cyBMdGQKKzAwMUFDQiAgICAgKGJhc2UgMTYpCQlBdXRvY29tIFByb2R1Y3RzIEx0ZAorCQkJCVVuaXQgNCBUYWNoYnJvb2sgTGluaywgVGFjaGJyb29rIFBhcmsgRHJpdmUKKwkJCQlXYXJ3aWNrIFdhcndpY2tzaGlyZSBDVjM0IDZSSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFBLUNDICAgKGhleCkJCUNlbGVzdGlhbCBTZW1pY29uZHVjdG9yLCBMdGQKKzAwMUFDQyAgICAgKGJhc2UgMTYpCQlDZWxlc3RpYWwgU2VtaWNvbmR1Y3RvciwgTHRkCisJCQkJVWdsYW5kIEhvdXNlLCBTb3V0aCBDaHVyY2ggU3RyZWV0LAorCQkJCSBDYXltYW4gSXNsYW5kcworCQkJCUdlb3JnZSBUb3duLCAgQ2F5bWFuIElzbGFuZHMgMDAwMDAKKwkJCQlDQVlNQU4gSVNMQU5EUworCiswMC0xQS1DRCAgIChoZXgpCQlUaWRlbCBFbmdpbmVlcmluZyBMUAorMDAxQUNEICAgICAoYmFzZSAxNikJCVRpZGVsIEVuZ2luZWVyaW5nIExQCisJCQkJMjAyNSBXIEJlbHQgTGluZSBSb2FkIFN1aXRlIDExNAorCQkJCUNhcnJvbGx0b24gVFggNzUwMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUNFICAgKGhleCkJCVlVUElURVJVIENPUlBPUkFUSU9OCiswMDFBQ0UgICAgIChiYXNlIDE2KQkJWVVQSVRFUlUgQ09SUE9SQVRJT04KKwkJCQkzLCBEYW5ub3VlLCBJd2F6dS1jaG8sIE9rYXpha2ktY2l0eSwgQWljaGkKKwkJCQlPa2F6YWtpIEFpY2hpIDQ0NC0yMTQ0CisJCQkJSkFQQU4KKworMDAtMUEtQ0YgICAoaGV4KQkJQy5ULiBFTEVUVFJPTklDQQorMDAxQUNGICAgICAoYmFzZSAxNikJCUMuVC4gRUxFVFRST05JQ0EKKwkJCQlWaWEgQ2FkdXRpIGRpIE5hc3Npcml5YSA1IEIKKwkJCQlCYXJiZXJpbm8gVmFsIEQnRWxzYSAoRkkpICA1MDAyMQorCQkJCUlUQUxZCisKKzAwLTFBLUQwICAgKGhleCkJCUFsYmlzIFRlY2hub2xvZ2llcyBBRworMDAxQUQwICAgICAoYmFzZSAxNikJCUFsYmlzIFRlY2hub2xvZ2llcyBBRworCQkJCUFsYmlzcmllZGVyc3RyYXNzZSAxOTkKKwkJCQlDSCA4MDQ3IFp1ZXJpY2ggCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUEtRDEgICAoaGV4KQkJRkFSR08gQ08uLCBMVEQuCiswMDFBRDEgICAgIChiYXNlIDE2KQkJRkFSR08gQ08uLCBMVEQuCisJCQkJNEYuIEtZRU1ZVU5HIEIvRAorCQkJCTE2NS00IFNBTVNVTkctRE9ORywgS0FOR05BTS1LVQorCQkJCVNFT1VMICAxMzUgODg1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLUQyICAgKGhleCkJCUVsZXRyb25pY2EgTml0cm9uIEx0ZGEKKzAwMUFEMiAgICAgKGJhc2UgMTYpCQlFbGV0cm9uaWNhIE5pdHJvbiBMdGRhCisJCQkJUnVhIERyLiBVbGlzc2VzIEVzY29iYXIgNDE1CisJCQkJSmFyZGltIFZpc3RhIEFsZWdyZQorCQkJCUNhbWFuZHVjYWlhIE1pbmFzIEdlcmFpcyAzNzY1MC0wMDAKKwkJCQlCUkFaSUwKKworMDAtMUEtRDMgICAoaGV4KQkJVmFtcCBMdGQuCiswMDFBRDMgICAgIChiYXNlIDE2KQkJVmFtcCBMdGQuCisJCQkJUE8gQm94IDgxMAorCQkJCVZhYXNhICA2NTEwMQorCQkJCUZJTkxBTkQKKworMDAtMUEtRDQgICAoaGV4KQkJaVBPWCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxQUQ0ICAgICAoYmFzZSAxNikJCWlQT1ggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxNUYtMSwgTm8uMTg2LCBKaWFuLVlpIFJkLiwgQ2h1bmctSG8gQ2l0eSwKKwkJCQlUYWlwZWkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtRDUgICAoaGV4KQkJS01DIENIQUlOIElORFVTVFJJQUwgQ08uLCBMVEQuCiswMDFBRDUgICAgIChiYXNlIDE2KQkJS01DIENIQUlOIElORFVTVFJJQUwgQ08uLCBMVEQuCisJCQkJN0YtOCwgTm8uIDgxLCBTdWktTGloIFJkLiwgSHNpbmNodQorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtRDYgICAoaGV4KQkJSklBR05TVSBBRVROQSBFTEVDVFJJQyBDTy4sTFRECiswMDFBRDYgICAgIChiYXNlIDE2KQkJSklBR05TVSBBRVROQSBFTEVDVFJJQyBDTy4sTFRECisJCQkJTk8uNTcxIFFJQU5IVSBST0FELFFJQU5RSUFPIElORFVTVFJZIFBBUkssV1VYSSxKSUFOR1NVLENISU5BCisJCQkJV1VYSSBKSUFOR1NVIDIxNDE1MQorCQkJCUNISU5BCisKKzAwLTFBLUQ3ICAgKGhleCkJCUNocmlzdGllIERpZ2l0YWwgU3lzdGVtcywgSW5jLgorMDAxQUQ3ICAgICAoYmFzZSAxNikJCUNocmlzdGllIERpZ2l0YWwgU3lzdGVtcywgSW5jLgorCQkJCTgwOSBXZWxsaW5ndG9uIFN0cmVldCBOb3J0aAorCQkJCUtpdGNoZW5lciBPbnRhcmlvIE4yRyA0WTcKKwkJCQlDQU5BREEKKworMDAtMUEtRDggICAoaGV4KQkJQWxzdGVyQWVybyBHbWJICiswMDFBRDggICAgIChiYXNlIDE2KQkJQWxzdGVyQWVybyBHbWJICisJCQkJTPxiZWNrZXIgU3RyYd9lIDEKKwkJCQlIYW1idXJnICAyMjA4NworCQkJCUdFUk1BTlkKKworMDAtMUEtRDkgICAoaGV4KQkJSW50ZXJuYXRpb25hbCBCcm9hZGJhbmQgRWxlY3RyaWMgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMUFEOSAgICAgKGJhc2UgMTYpCQlJbnRlcm5hdGlvbmFsIEJyb2FkYmFuZCBFbGVjdHJpYyBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTI4NSBEdW5sb3AgQmx2ZC4gU1cKKwkJCQlTdWl0ZSBLCisJCQkJSHVudHN2aWxsZSBBTCAzNTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtREEgICAoaGV4KQkJQml6LTItTWUgSW5jLgorMDAxQURBICAgICAoYmFzZSAxNikJCUJpei0yLU1lIEluYy4KKwkJCQkxMzAxIFdlc3QgRWF1IEdhbGxpZSBCbHZkCisJCQkJU3VpdGUgMTA2CisJCQkJTWVsYm91cm5lIEZMIDMyOTM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1EQiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxQURCICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4uIEh3eSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtREMgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUFEQyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUEtREQgICAoaGV4KQkJUGVQV2F2ZSBMdGQKKzAwMUFERCAgICAgKGJhc2UgMTYpCQlQZVBXYXZlIEx0ZAorCQkJCTE3L0YuLCBQYXJrIEJ1aWxkaW5nLAorCQkJCTQ3NiBDYXN0bGUgUGVhayBSb2FkCisJCQkJQ2hldW5nIFNoYSBXYW4gS293bG9vbiAKKwkJCQlIT05HIEtPTkcKKworMDAtMUEtREUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUFERSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLURGICAgKGhleCkJCUludGVyYWN0aXZldHYgUHR5IExpbWl0ZWQKKzAwMUFERiAgICAgKGJhc2UgMTYpCQlJbnRlcmFjdGl2ZXR2IFB0eSBMaW1pdGVkCisJCQkJU3VpdGUgMTAgTGV2ZWwgMworCQkJCTU2IEJvd21hbiBTdHJlZXQKKwkJCQlQeXJtb250LCBTeWRuZXkgTlNXIDIwMDkKKwkJCQlBVVNUUkFMSUEKKworMDAtMUEtRTAgICAoaGV4KQkJTXl0aG9sb2d5IFRlY2ggRXhwcmVzcyBJbmMuCiswMDFBRTAgICAgIChiYXNlIDE2KQkJTXl0aG9sb2d5IFRlY2ggRXhwcmVzcyBJbmMuCisJCQkJMkYsIE5vLjEwLCBMYW5lIDIzNSwgQmFvIENoaWFvIHJvYWQsCisJCQkJSHNpbi1UaWVuLgorCQkJCVRhaXBlaSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS1FMSAgIChoZXgpCQlFREdFIEFDQ0VTUyBJTkMKKzAwMUFFMSAgICAgKGJhc2UgMTYpCQlFREdFIEFDQ0VTUyBJTkMKKwkJCQk1NDQwIEJFQVVNT05UIENFTlRFUiBCTFZECisJCQkJU1VJVEUgNDkwCisJCQkJVEFNUEEgRkwgMzM2MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUUyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUFFMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUUzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUFFMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUU0ICAgKGhleCkJCU1lZGljaXMgVGVjaG5vbG9naWVzIENvcnBvcmF0aW9uCiswMDFBRTQgICAgIChiYXNlIDE2KQkJTWVkaWNpcyBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24KKwkJCQkxMTgxOCBOb3J0aCBDcmVlayBQYXJrd2F5IE4uCisJCQkJQm90aGVsbCBXQSA5ODAxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRTUgICAoaGV4KQkJTXZveCBUZWNobm9sb2dpZXMgSW5jLgorMDAxQUU1ICAgICAoYmFzZSAxNikJCU12b3ggVGVjaG5vbG9naWVzIEluYy4KKwkJCQkxOTA1MCBQcnVuZXJpZGdlIEF2ZQorCQkJCVN0ZS4gMTI4CisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1FNiAgIChoZXgpCQlBdGxhbnRhIEFkdmFuY2VkIENvbW11bmljYXRpb25zIEhvbGRpbmdzIExpbWl0ZWQKKzAwMUFFNiAgICAgKGJhc2UgMTYpCQlBdGxhbnRhIEFkdmFuY2VkIENvbW11bmljYXRpb25zIEhvbGRpbmdzIExpbWl0ZWQKKwkJCQkxOTAwIFdlc3QgT2FrIENpcmNsZSwgTWFyaWV0dGEKKwkJCQlBdGxhbnRhIEdlb3JnaWEgMzAwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUU3ICAgKGhleCkJCUF6dGVrIE5ldHdvcmtzLCBJbmMuCiswMDFBRTcgICAgIChiYXNlIDE2KQkJQXp0ZWsgTmV0d29ya3MsIEluYy4KKwkJCQkyNDc3IDU1dGggU3QuICMyMDIKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1FOCAgIChoZXgpCQlTaWVtZW5zIEVudGVycHJpc2UgQ29tbXVuaWNhdGlvbnMgR21iSCAmIENvLiBLRworMDAxQUU4ICAgICAoYmFzZSAxNikJCVNpZW1lbnMgRW50ZXJwcmlzZSBDb21tdW5pY2F0aW9ucyBHbWJIICYgQ28uIEtHCisJCQkJU0VOIFNDIE1DCisJCQkJSG9mbWFubnN0cmFzc2UgNTEKKwkJCQlNdW5pY2ggODEzNzkKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLUU5ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAxQUU5ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFBLUVBICAgKGhleCkJCVJhZGlvIFRlcm1pbmFsIFN5c3RlbXMgUHR5IEx0ZAorMDAxQUVBICAgICAoYmFzZSAxNikJCVJhZGlvIFRlcm1pbmFsIFN5c3RlbXMgUHR5IEx0ZAorCQkJCTFzdCBGbG9vcgorCQkJCTEwOCBEb2hlcnR5cyBSb2FkCisJCQkJTGF2ZXJ0b24gTm9ydGggVmljdG9yaWEgMzAyNgorCQkJCUFVU1RSQUxJQQorCiswMC0xQS1FQiAgIChoZXgpCQlBbGxpZWQgVGVsZXNpcyBLLksuCiswMDFBRUIgICAgIChiYXNlIDE2KQkJQWxsaWVkIFRlbGVzaXMgSy5LLgorCQkJCU5vLjIgVE9DIEJsZGcuCisJCQkJNy0yMS0xMSBOaXNoaS1Hb3RhbmRhCisJCQkJU2hpbmFnYXdhLWt1IFRva3lvIDE0MS0wMDMxCisJCQkJSkFQQU4KKworMDAtMUEtRUMgICAoaGV4KQkJS2V1bWJlZSBFbGVjdHJvbmljcyBDby4sTHRkLgorMDAxQUVDICAgICAoYmFzZSAxNikJCUtldW1iZWUgRWxlY3Ryb25pY3MgQ28uLEx0ZC4KKwkJCQkzLTI2LCBKYW5nc2FuZy1kb25nLCBTYW5ncm9rLWd1CisJCQkJQW5zYW4tc2kgS3l1bmdraS1kbyA0MjYtNDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLUVEICAgKGhleCkJCUlOQ09URUMgR21iSAorMDAxQUVEICAgICAoYmFzZSAxNikJCUlOQ09URUMgR21iSAorCQkJCUJsb21lc3RyYXNzZSAyNSAtIDI3CisJCQkJQmllbGVmZWxkIE5SVyAzMzYwOQorCQkJCUdFUk1BTlkKKworMDAtMUEtRUUgICAoaGV4KQkJU2hlbnp0ZWNoIEx0ZAorMDAxQUVFICAgICAoYmFzZSAxNikJCVNoZW56dGVjaCBMdGQKKwkJCQk4MTMsIDhGLCBIT0xMWVdPT0QgUExBWkEsIDYxMCBOQVRIQU4gUk9BRCwKKwkJCQlLT1dMT09OICA4NTIKKwkJCQlIT05HIEtPTkcKKworMDAtMUEtRUYgICAoaGV4KQkJTG9vcGNvbW0gVGVjaG5vbG9neSwgSW5jLgorMDAxQUVGICAgICAoYmFzZSAxNikJCUxvb3Bjb21tIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxOEYtMSwgTm8uIDE1MCwgSmlhbiBZaSBSZC4sCisJCQkJQ2h1bmctSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS1GMCAgIChoZXgpCQlBbGNhdGVsIC0gSVBECiswMDFBRjAgICAgIChiYXNlIDE2KQkJQWxjYXRlbCAtIElQRAorCQkJCTcwMSBFLiBNaWRkbGVmaWVsZCBSZC4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1GMSAgIChoZXgpCQlFbWJlZGRlZCBBcnRpc3RzIEFCCiswMDFBRjEgICAgIChiYXNlIDE2KQkJRW1iZWRkZWQgQXJ0aXN0cyBBQgorCQkJCVNvZHJhIFByb21lbmFkZW4gNTEKKwkJCQlNYWxtb2UgIDIxMSAzOAorCQkJCVNXRURFTgorCiswMC0xQS1GMiAgIChoZXgpCQlEeW5hdmlzaW9ucyBTY2h3ZWl6IEFHCiswMDFBRjIgICAgIChiYXNlIDE2KQkJRHluYXZpc2lvbnMgU2Nod2VpeiBBRworCQkJCUZyZWlzaW5nZXIgTGFuZHN0cmFzc2UgMjEKKwkJCQlELTgwOTM5IE11ZW5jaGVuIAorCQkJCUdFUk1BTlkKKworMDAtMUEtRjMgICAoaGV4KQkJU2FteW91bmcgRWxlY3Ryb25pY3MKKzAwMUFGMyAgICAgKGJhc2UgMTYpCQlTYW15b3VuZyBFbGVjdHJvbmljcworCQkJCTE0Ni0xLCBzYW5nZGFld29uLWRvbmcsIGpvb25nd29uLWd1CisJCQkJc3VuZ25hbS1zaGkgR3l1bmdnaS1kbyA0NjItODA3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLUY0ICAgKGhleCkJCUhhbmRyZWFtbmV0CiswMDFBRjQgICAgIChiYXNlIDE2KQkJSGFuZHJlYW1uZXQKKwkJCQkjMTIwOSBNYXJpb1Rvd2VyLCAyMjItMTIKKwkJCQlHdXJvLURvbmcsIEd1cm8tR3UKKwkJCQlTZW91bCAgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS1GNSAgIChoZXgpCQlQRU5UQU9ORS4gQ08uLCBMVEQuCiswMDFBRjUgICAgIChiYXNlIDE2KQkJUEVOVEFPTkUuIENPLiwgTFRELgorCQkJCUh5byBDaGFuZyBCbGRnLCAzRiwgMTAxMy02LCBJbmt5ZS1kb25nIFBhbGRhbC1HdSwKKwkJCQlTdXdvbiBDaXR5IEd5dW5nZ2ktRG8gNDIyLTgzMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS1GNiAgIChoZXgpCQlXb3ZlbiBTeXN0ZW1zLCBJbmMuCiswMDFBRjYgICAgIChiYXNlIDE2KQkJV292ZW4gU3lzdGVtcywgSW5jLgorCQkJCTI0NTUgQXVndXN0aW5lIERyaXZlCisJCQkJU3VpdGUgMjExCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUY3ICAgKGhleCkJCWRhdGFzY2hhbHQgZSthIEdtYkgKKzAwMUFGNyAgICAgKGJhc2UgMTYpCQlkYXRhc2NoYWx0IGUrYSBHbWJICisJCQkJQW4gZGVyIEj8bHNob3JzdCA3LTkKKwkJCQlM/GJlY2sgIDIzNTY4CisJCQkJR0VSTUFOWQorCiswMC0xQS1GOCAgIChoZXgpCQlDb3BsZXkgQ29udHJvbHMgQ29ycG9yYXRpb24KKzAwMUFGOCAgICAgKGJhc2UgMTYpCQlDb3BsZXkgQ29udHJvbHMgQ29ycG9yYXRpb24KKwkJCQkyMCBEYW4gUm9hZAorCQkJCUNhbnRvbiBNQSAwMjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRjkgICAoaGV4KQkJQWVyb1ZJcm9ubWVudCAoQVYgSW5jKQorMDAxQUY5ICAgICAoYmFzZSAxNikJCUFlcm9WSXJvbm1lbnQgKEFWIEluYykKKwkJCQk0Njg1IEluZHVzdHJpYWwgU3QKKwkJCQlQTyBBMTgyNzEKKwkJCQlTaW1pIFZhbGxleSBDQSA5MzA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRkEgICAoaGV4KQkJV2VsY2ggQWxseW4sIEluYy4KKzAwMUFGQSAgICAgKGJhc2UgMTYpCQlXZWxjaCBBbGx5biwgSW5jLgorCQkJCTQ2MTkgSm9yZGFuIFJvYWQKKwkJCQlQTyBCb3ggMTg3CisJCQkJU2thbmVhdGVsZXMgRmFsbHMgTlkgMTMxNTMtMDE4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRkIgICAoaGV4KQkJSm9ieSBJbmMuCiswMDFBRkIgICAgIChiYXNlIDE2KQkJSm9ieSBJbmMuCisJCQkJMTUzNSBNaXNzaW9uIFN0LgorCQkJCUZsb29yIDIKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1GQyAgIChoZXgpCQlNb2R1c0xpbmsgQ29ycG9yYXRpb24KKzAwMUFGQyAgICAgKGJhc2UgMTYpCQlNb2R1c0xpbmsgQ29ycG9yYXRpb24KKwkJCQkyOTA1IFByZXN0b253b29kIERyaXZlCisJCQkJUGxhbm8gVGV4YXMgNzUwOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUZEICAgKGhleCkJCUVWT0xJUworMDAxQUZEICAgICAoYmFzZSAxNikJCUVWT0xJUworCQkJCTI5IGF2ZW51ZSBkZSBsYSBmb250YWluZQorCQkJCVpJIEFuZ2VycyBiZWF1Y291emUKKwkJCQlCZWF1Y291emUgIDQ5MDcwCisJCQkJRlJBTkNFCisKKzAwLTFBLUZFICAgKGhleCkJCVNPRkFDUkVBTAorMDAxQUZFICAgICAoYmFzZSAxNikJCVNPRkFDUkVBTAorCQkJCTE0OSBhdmVudWUgZHUgTUFJTkUKKwkJCQlQQVJJUyBSZWdpb24gUGFyaXNpZW5uZSA3NTAxNAorCQkJCUZSQU5DRQorCiswMC0xQS1GRiAgIChoZXgpCQlXaXp5b3VuZyBUZWNoLgorMDAxQUZGICAgICAoYmFzZSAxNikJCVdpenlvdW5nIFRlY2guCisJCQkJOUYsIE5vLiAyNSwgU2VjLiAxLCBOYW5qaW5nIEUuIFJkLgorCQkJCVRhaXBlaSAgMTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi0wMCAgIChoZXgpCQlOZW9wb3N0IFRlY2hub2xvZ2llcworMDAxQjAwICAgICAoYmFzZSAxNikJCU5lb3Bvc3QgVGVjaG5vbG9naWVzCisJCQkJMTEzIHJ1ZSBKZWFuLU1hcmluIE5hdWRpbgorCQkJCUJhZ25ldXggIDkyMjIwCisJCQkJRlJBTkNFCisKKzAwLTFCLTAxICAgKGhleCkJCUFwcGxpZWQgUmFkaW8gVGVjaG5vbG9naWVzCiswMDFCMDEgICAgIChiYXNlIDE2KQkJQXBwbGllZCBSYWRpbyBUZWNobm9sb2dpZXMKKwkJCQkxMTI0IFNvdXRoIFNlcnZpY2UgUm9hZCBXZXN0CisJCQkJT2FrdmlsbGUgT250YXJpbyBMNkwgNVQ3CisJCQkJQ0FOQURBCisKKzAwLTFCLTAyICAgKGhleCkJCUVEIENvLkx0ZAorMDAxQjAyICAgICAoYmFzZSAxNikJCUVEIENvLkx0ZAorCQkJCTUxNy0xNSBTYW5nRGFlV29uLURvbmcKKwkJCQlTZW9uZ05hbS1DaXR5IEd5ZW9uZ0dpLURvIDQ2Mi04MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItMDMgICAoaGV4KQkJQWN0aW9uIFRlY2hub2xvZ3kgKFNaKSBDby4sIEx0ZAorMDAxQjAzICAgICAoYmFzZSAxNikJCUFjdGlvbiBUZWNobm9sb2d5IChTWikgQ28uLCBMdGQKKwkJCQlBY3Rpb24gVGVjaG5vbG9neSBCdWlsZGluZyBCYW95dWFuIFJvYWQsIFhpeGlhbmcsIEJhbydhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDIKKwkJCQlDSElOQQorCiswMC0xQi0wNCAgIChoZXgpCQlBZmZpbml0eSBJbnRlcm5hdGlvbmFsIFMucC5hCiswMDFCMDQgICAgIChiYXNlIDE2KQkJQWZmaW5pdHkgSW50ZXJuYXRpb25hbCBTLnAuYQorCQkJCUMuc28gU2F2b25hIDUxCisJCQkJVmlsbGFzdGVsbG9uZSBUb3Jpbm8gSTEwMDI5CisJCQkJSVRBTFkKKworMDAtMUItMDUgICAoaGV4KQkJWU1DIEFHCiswMDFCMDUgICAgIChiYXNlIDE2KQkJWU1DIEFHCisJCQkJU29ubmVuc3RyYXNzZSA0CisJCQkJS3JldXpsaW5nZW4gVGh1cmdhdSA4MjgwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUItMDYgICAoaGV4KQkJQXRlbGllcnMgUi4gTEFVTU9OSUVSCiswMDFCMDYgICAgIChiYXNlIDE2KQkJQXRlbGllcnMgUi4gTEFVTU9OSUVSCisJCQkJMTEsIHJ1ZSBkdSBDaGVuaXZhbAorCQkJCUJQIDEKKwkJCQlOZXNsZXMgbGEgVmFsbOllIFZhbCBkJ09pc2UgOTU2OTAKKwkJCQlGUkFOQ0UKKworMDAtMUItMDcgICAoaGV4KQkJTWVuZG9jaW5vIFNvZnR3YXJlCiswMDFCMDcgICAgIChiYXNlIDE2KQkJTWVuZG9jaW5vIFNvZnR3YXJlCisJCQkJNDcwMDEgQmVuZWNpYSBTdC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0wOCAgIChoZXgpCQlEYW5mb3NzIERyaXZlcyBBL1MKKzAwMUIwOCAgICAgKGJhc2UgMTYpCQlEYW5mb3NzIERyaXZlcyBBL1MKKwkJCQlVbHNuYWVzIDEKKwkJCQlHcmFhc3RlbiA2MzAwIAorCQkJCURFTk1BUksKKworMDAtMUItMDkgICAoaGV4KQkJTWF0cml4IFRlbGVjb20gUHZ0LiBMdGQuCiswMDFCMDkgICAgIChiYXNlIDE2KQkJTWF0cml4IFRlbGVjb20gUHZ0LiBMdGQuCisJCQkJMzk0LCBHSURDLCBNYWthcnB1cmEsCisJCQkJVmFkb2RhcmEgR3VqYXJhdCAzOTAwMTAKKwkJCQlJTkRJQQorCiswMC0xQi0wQSAgIChoZXgpCQlJbnRlbGxpZ2VudCBEaXN0cmlidXRlZCBDb250cm9scyBMdGQKKzAwMUIwQSAgICAgKGJhc2UgMTYpCQlJbnRlbGxpZ2VudCBEaXN0cmlidXRlZCBDb250cm9scyBMdGQKKwkJCQlLZXluZXMgSG91c2UsIENoZXN0ZXIgUGFyaworCQkJCUFsZnJldG9uIFJvYWQKKwkJCQlEZXJieSBEZXJieXNoaXJlIERFMjEgNEFTCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUItMEIgICAoaGV4KQkJUGhpZGdldHMgSW5jLgorMDAxQjBCICAgICAoYmFzZSAxNikJCVBoaWRnZXRzIEluYy4KKwkJCQkyNzE1QSAxNkEgU3RyZWV0IE4uVy4KKwkJCQlDYWxnYXJ5IEFsYmVydGEgVDJNIDNSNworCQkJCUNBTkFEQQorCiswMC0xQi0wQyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFCMEMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0wRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFCMEQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0wRSAgIChoZXgpCQlJbm9UZWMgR21iSCBPcmdhbmlzYXRpb25zc3lzdGVtZQorMDAxQjBFICAgICAoYmFzZSAxNikJCUlub1RlYyBHbWJIIE9yZ2FuaXNhdGlvbnNzeXN0ZW1lCisJCQkJQmllZHJpY2hzdHJhc3NlIDExCisJCQkJV29lbGZlcnNoZWltIEhlc3NlbiBELTYxMjAwCisJCQkJR0VSTUFOWQorCiswMC0xQi0wRiAgIChoZXgpCQlQZXRyYXRlYworMDAxQjBGICAgICAoYmFzZSAxNikJCVBldHJhdGVjCisJCQkJRGVyZWNoIEhhLVNoYXJvbiAxMgorCQkJCUtmYXIgU2FiYSBTaGFyb24gNDQyNzEKKwkJCQlJU1JBRUwKKworMDAtMUItMTAgICAoaGV4KQkJU2hlblpoZW4gS2FuZyBIdWkgVGVjaG5vbG9neSBDby4sbHRkCiswMDFCMTAgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gS2FuZyBIdWkgVGVjaG5vbG9neSBDby4sbHRkCisJCQkJQ2hpbmEgIEd1YW5nRG9uZworCQkJCVR3byBzLGZsb29yIEJhb0FuIERpc3RyaWN0IExvbmdIdWEKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTA5CisJCQkJQ0hJTkEKKworMDAtMUItMTEgICAoaGV4KQkJRC1MaW5rIENvcnBvcmF0aW9uCiswMDFCMTEgICAgIChiYXNlIDE2KQkJRC1MaW5rIENvcnBvcmF0aW9uCisJCQkJTk8uMjg5LCBTaW5odSAzcmQgUmQuLAorCQkJCU5laWh1IERpc3RyaWN0LCBUYWlwZWkgQ2l0eSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTEyICAgKGhleCkJCUFwcHJpb24KKzAwMUIxMiAgICAgKGJhc2UgMTYpCQlBcHByaW9uCisJCQkJTmFzYSBBbWVzIFJlcmVhcmNoIENlbnRlcgorCQkJCVAuTy4gQm94IDk1IEJ1aWxkaW5nIDE5IFN1aXRlIDEwMDAKKwkJCQlNb2ZmZXR0IEZpZWxkIENhbGlmb3JuaWEgOTQwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTEzICAgKGhleCkJCUljcm9uIFRlY2hub2xvZ2llcyBDb3Jwb3JhdGlvbgorMDAxQjEzICAgICAoYmFzZSAxNikJCUljcm9uIFRlY2hub2xvZ2llcyBDb3Jwb3JhdGlvbgorCQkJCTIyMSAtIDQ2NjQgTG91Z2hlZWQgSGlnaHdheQorCQkJCUJ1cm5hYnkgQkMgVjVDIDVUNQorCQkJCUNBTkFEQQorCiswMC0xQi0xNCAgIChoZXgpCQlDYXJleCBMaWdodGluZyBFcXVpcG1lbnQgRmFjdG9yeQorMDAxQjE0ICAgICAoYmFzZSAxNikJCUNhcmV4IExpZ2h0aW5nIEVxdWlwbWVudCBGYWN0b3J5CisJCQkJNTAgQ2hhbmcgVGFuZyBSZC4sIFlhbiBUaWFuIERpc3RyaWN0LAorCQkJCUZ1bmdrb25nLCBEb25nR3VhbgorCQkJCUd1YW5nZG9uZyBwcm92aW5jZSAKKwkJCQlDSElOQQorCiswMC0xQi0xNSAgIChoZXgpCQlWb3h0ZWwsIEluYy4KKzAwMUIxNSAgICAgKGJhc2UgMTYpCQlWb3h0ZWwsIEluYy4KKwkJCQkxMjcyNSBTVyBNaWxsaWthbiBXYXkKKwkJCQlTdWl0ZSAyMzAKKwkJCQlCZWF2ZXJ0b24gT1IgOTcwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTE2ICAgKGhleCkJCUNlbHRybyBMdGQuCiswMDFCMTYgICAgIChiYXNlIDE2KQkJQ2VsdHJvIEx0ZC4KKwkJCQlBem9yaW0gQnVzaW5lc3MgUGFyaworCQkJCTk0IEVtIEhtb3NoYXZvdCBSb2FkLgorCQkJCVBldGFjaCBUaWt2YSAgNDk1MjcKKwkJCQlJU1JBRUwKKworMDAtMUItMTcgICAoaGV4KQkJUGFsbyBBbHRvIE5ldHdvcmtzCiswMDFCMTcgICAgIChiYXNlIDE2KQkJUGFsbyBBbHRvIE5ldHdvcmtzCisJCQkJMjEzMCBHb2xkIFN0cmVldCBTdWl0ZSAyMDAKKwkJCQlBbHZpc28gQ0EgOTUwMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTE4ICAgKGhleCkJCVRzdWtlbiBFbGVjdHJpYyBJbmQuIENvLixMdGQKKzAwMUIxOCAgICAgKGJhc2UgMTYpCQlUc3VrZW4gRWxlY3RyaWMgSW5kLiBDby4sTHRkCisJCQkJMy05IEFrZWRvdXJpIEl6dW1pLWt1CisJCQkJU2VuZGFpIENpdHkgTWl5YWdpIDk4MS0zMjA2CisJCQkJSkFQQU4KKworMDAtMUItMTkgICAoaGV4KQkJSUVFRSBJJk0gU29jaWV0eSBUQzkgCiswMDFCMTkgICAgIChiYXNlIDE2KQkJSUVFRSBJJk0gU29jaWV0eSBUQzkgCisJCQkJMTAwIEJ1cmVhdSBEci4sIE1haWwgU3RvcCA4MjIwCisJCQkJR2FpdGhlcnNidXJnIE1EIDIwODk5LTgyMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTFBICAgKGhleCkJCWUtdHJlZXMgSmFwYW4sIEluYy4KKzAwMUIxQSAgICAgKGJhc2UgMTYpCQllLXRyZWVzIEphcGFuLCBJbmMuCisJCQkJT293YWRhLWNobyAyLTktMgorCQkJCURhaXdhdW55dSBibGRnIDNGCisJCQkJSGFjaGlvamktY2l0eSBUb2t5byAxNTAtMDAwMQorCQkJCUpBUEFOCisKKzAwLTFCLTFCICAgKGhleCkJCVNpZW1lbnMgQUcsCiswMDFCMUIgICAgIChiYXNlIDE2KQkJU2llbWVucyBBRywKKwkJCQlJIElBIFNDIEVXSyBQVTEsIE9lc3RsaWNoZSBSaGVpbmJydWVja2Vuc3RyYXNzZSA1MAorCQkJCTc2MTgxLCBLYXJsc3J1aGUgQmFkZW4gV3VlcnR0ZW1iZXJnIAorCQkJCUdFUk1BTlkKKworMDAtMUItMUMgICAoaGV4KQkJQ29oZXJlbnQKKzAwMUIxQyAgICAgKGJhc2UgMTYpCQlDb2hlcmVudAorCQkJCTEyODAgQmx1ZXMgSGlsbHMgQXZlLgorCQkJCUJsb29tZmllbGQgQ1QgMDYwMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTFEICAgKGhleCkJCVBob2VuaXggSW50ZXJuYXRpb25hbCBDby4sIEx0ZAorMDAxQjFEICAgICAoYmFzZSAxNikJCVBob2VuaXggSW50ZXJuYXRpb25hbCBDby4sIEx0ZAorCQkJCTExRi4gTm8uNDItMSwgU2VjLjEsIFpob25neWFuZyBOLiBSZC4gQmVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTFFICAgKGhleCkJCUhBUlQgQ29tbXVuaWNhdGlvbiBGb3VuZGF0aW9uCiswMDFCMUUgICAgIChiYXNlIDE2KQkJSEFSVCBDb21tdW5pY2F0aW9uIEZvdW5kYXRpb24KKwkJCQlTVEUgMS0zNTAKKwkJCQk5MzkwIFJlc2VhcmNoIEJsdmQKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTFGICAgKGhleCkJCURFTFRBIC0gRGFuaXNoIEVsZWN0cm9uaWNzLCBMaWdodCAmIEFjb3VzdGljcworMDAxQjFGICAgICAoYmFzZSAxNikJCURFTFRBIC0gRGFuaXNoIEVsZWN0cm9uaWNzLCBMaWdodCAmIEFjb3VzdGljcworCQkJCVZlbmxpZ2hlZHN2ZWogNAorCQkJCUj4cnNob2xtICBESy0yOTcwCisJCQkJREVOTUFSSworCiswMC0xQi0yMCAgIChoZXgpCQlUUGluZSBUZWNobm9sb2d5CiswMDFCMjAgICAgIChiYXNlIDE2KQkJVFBpbmUgVGVjaG5vbG9neQorCQkJCTNGLCBOby4xLCBBTi1JIFJkLAorCQkJCUtlZWx1bmcgIDExMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItMjEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDFCMjEgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xQi0yMiAgIChoZXgpCQlQYWxpdCBNaWNyb3N5c3RlbXMgKCBILksuKSBMdGQuCiswMDFCMjIgICAgIChiYXNlIDE2KQkJUGFsaXQgTWljcm9zeXN0ZW1zICggSC5LLikgTHRkLgorCQkJCVJvb20gNC02LDExRixOYW4gRnVuZyBDb21tZXJjaWFsIENlbnRlcgorCQkJCTE5IExhbSBMb2sgUm9hZCxLb3dsb29uIEJheQorCQkJCUtvd2xvb24gIDExMQorCQkJCUhPTkcgS09ORworCiswMC0xQi0yMyAgIChoZXgpCQlTaW1wbGVDb21Ub29scworMDAxQjIzICAgICAoYmFzZSAxNikJCVNpbXBsZUNvbVRvb2xzCisJCQkJNTk4IEluZGlhbiBUcmFpbCBSZCBTLgorCQkJCVN1aXRlICMxMDIKKwkJCQlJbmRpYW4gVHJhaWwgTkMgMjgwNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTI0ICAgKGhleCkJCVF1YW50YSBDb21wdXRlciBJbmMuCiswMDFCMjQgICAgIChiYXNlIDE2KQkJUXVhbnRhIENvbXB1dGVyIEluYy4KKwkJCQlOby4gMjExLCBXZW4gSHdhIDJuZCBSZC4sCisJCQkJS3VlaSBTaGFuIEhzaWFuZyBUYW8gWXVhbiBTaGllbiAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTI1ICAgKGhleCkJCU5vcnRlbAorMDAxQjI1ICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xQi0yNiAgIChoZXgpCQlST04tVGVsZWNvbSBaQU8KKzAwMUIyNiAgICAgKGJhc2UgMTYpCQlST04tVGVsZWNvbSBaQU8KKwkJCQkxNSBBLCBaYXJlY2huYXlhIHN0LgorCQkJCVRyZWhnb3JueSBDaGVseWFiaW5zayByZWdpb24gNDU2MDgwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFCLTI3ICAgKGhleCkJCU1lcmxpbiBDU0kKKzAwMUIyNyAgICAgKGJhc2UgMTYpCQlNZXJsaW4gQ1NJCisJCQkJMTI2MjUgRGFuaWVsc29uIENvdXJ0CisJCQkJU3VpdGUgMTA5CisJCQkJUG93YXkgQ0EgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTI4ICAgKGhleCkJCVBPTFlHT04sIEpTQworMDAxQjI4ICAgICAoYmFzZSAxNikJCVBPTFlHT04sIEpTQworCQkJCTM3LzEsIEthcmwgTWFyeCBzdHIuLCBmbG9vciA1CisJCQkJVWZhIEJhc2hrb3J0b3N0YW4gNDUwMDc3CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFCLTI5ICAgKGhleCkJCUF2YW50aXMuQ28uLEx0ZAorMDAxQjI5ICAgICAoYmFzZSAxNikJCUF2YW50aXMuQ28uLEx0ZAorCQkJCTUwMiBTRU9JTCBCTERHLgorCQkJCTE1NDMtOCBTRU9DSE8tRE9ORywgU0VPQ0hPLUdVCisJCQkJU0VPVUwgIDEzMi04NzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItMkEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQjJBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMkIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQjJCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMkMgICAoaGV4KQkJQVRST04gZWxlY3Ryb25pYyBHbWJICiswMDFCMkMgICAgIChiYXNlIDE2KQkJQVRST04gZWxlY3Ryb25pYyBHbWJICisJCQkJQW0gWmllZ2Vsc3RhZGVsIDEyICsgMTQKKwkJCQlNYXJrdCBTY2h3YWJlbiAgODU1NzAKKwkJCQlHRVJNQU5ZCisKKzAwLTFCLTJEICAgKGhleCkJCU1lZC1FbmcgU3lzdGVtcyBJbmMuCiswMDFCMkQgICAgIChiYXNlIDE2KQkJTWVkLUVuZyBTeXN0ZW1zIEluYy4KKwkJCQkyNDAwIFN0LiBMYXVyZW50IEJsdmQuCisJCQkJT3R0YXdhIE9udGFyaW8gSzFHIDZDNAorCQkJCUNBTkFEQQorCiswMC0xQi0yRSAgIChoZXgpCQlTaW5reW8gRWxlY3Ryb24gSW5jCiswMDFCMkUgICAgIChiYXNlIDE2KQkJU2lua3lvIEVsZWN0cm9uIEluYworCQkJCTMtMy0yMSBhc2FoaWdhb2thCisJCQkJaGluby1jaXR5IFRva3lvIDE5MS0wMDY1CisJCQkJSkFQQU4KKworMDAtMUItMkYgICAoaGV4KQkJTkVUR0VBUiBJbmMuCiswMDFCMkYgICAgIChiYXNlIDE2KQkJTkVUR0VBUiBJbmMuCisJCQkJNDUwMCBHcmVhdCBBbWVyaWNhIFBhcmt3YXkKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMzAgICAoaGV4KQkJU29saXRlY2ggSW5jLgorMDAxQjMwICAgICAoYmFzZSAxNikJCVNvbGl0ZWNoIEluYy4KKwkJCQkxODM4IE1haW4gU3RyZWV0CisJCQkJU3RldmVuc3ZpbGxlIE1EIDIxNjY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0zMSAgIChoZXgpCQlOZXVyYWwgSW1hZ2UuIENvLiBMdGQuCiswMDFCMzEgICAgIChiYXNlIDE2KQkJTmV1cmFsIEltYWdlLiBDby4gTHRkLgorCQkJCUEzMDcsIENBU0ksIE9zYWthIFVuaXYuCisJCQkJMi0xLCBZYW1hZGEtb2thCisJCQkJU3VpdGEgY2l0eSBPc2FrYSA1NjUtMDg3MQorCQkJCUpBUEFOCisKKzAwLTFCLTMyICAgKGhleCkJCVFMb2dpYyBDb3Jwb3JhdGlvbgorMDAxQjMyICAgICAoYmFzZSAxNikJCVFMb2dpYyBDb3Jwb3JhdGlvbgorCQkJCTI2NjUwIEFsaXNvIFZpZWpvIFBhcmt3YXkKKwkJCQlBbGlzbyBWaWVqbyBDYWxpZm9ybmlhIDkyNjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0zMyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxQjMzICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xQi0zNCAgIChoZXgpCQlGb2N1cyBTeXN0ZW0gSW5jLgorMDAxQjM0ICAgICAoYmFzZSAxNikJCUZvY3VzIFN5c3RlbSBJbmMuCisJCQkJMTlGLTEsIE5vLiAyNjYgV2VuIEh3YSAybmQgUmQuLCBTZWMuIDEKKwkJCQlMaW5rb3UgVGFpcGVpIENvdW50eSAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTM1ICAgKGhleCkJCUNob25nUWluZyBKSU5PVSBTY2llbmNlICYgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDTy4sTHRkCiswMDFCMzUgICAgIChiYXNlIDE2KQkJQ2hvbmdRaW5nIEpJTk9VIFNjaWVuY2UgJiBUZWNobm9sb2d5IERldmVsb3BtZW50IENPLixMdGQKKwkJCQlDaHVhbmd5ZXl1YW4gMjA4IyBLZXl1YW4gM3JkIFJvYWQgMTA2IworCQkJCSBIaS1UZWNoIERldmVsb3BtZW50IFpvbmUKKwkJCQlDaG9uZ3FpbmcgIDQwMDAzMAorCQkJCUNISU5BCisKKzAwLTFCLTM2ICAgKGhleCkJCVRzdWJhdGEgRW5naW5lZXJpbmcgQ28uLEx0ZC4gKEhlYWQgT2ZmaWNlKQorMDAxQjM2ICAgICAoYmFzZSAxNikJCVRzdWJhdGEgRW5naW5lZXJpbmcgQ28uLEx0ZC4gKEhlYWQgT2ZmaWNlKQorCQkJCUtveWFuYWdpIDEtMgorCQkJCVNlbmp1IGJsZC4KKwkJCQlJYmFyYWtpIE9zYWthIDU2Ny0wODUyCisJCQkJSkFQQU4KKworMDAtMUItMzcgICAoaGV4KQkJQ29tcHV0ZWMgT3kKKzAwMUIzNyAgICAgKGJhc2UgMTYpCQlDb21wdXRlYyBPeQorCQkJCUp1aG9sYW5rYXR1IDgKKwkJCQlQTCA2NgorCQkJCUtvdXZvbGEgS3ltaSA0NTIwMAorCQkJCUZJTkxBTkQKKworMDAtMUItMzggICAoaGV4KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIExURC4KKzAwMUIzOCAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELgorCQkJCU5PLiAyNSwgVEhFIDNSRCBBVkVOVUUKKwkJCQlLVU5TSEFOIEVYUE9SVCBQUk9DRVNTSU5HIFpPTkUKKwkJCQlLVU5TSEFOIENJVFkgU1VaSE9VIFBST1ZJTkNFIDIxNTMwMAorCQkJCUNISU5BCisKKzAwLTFCLTM5ICAgKGhleCkJCVByb3hpY2FzdAorMDAxQjM5ICAgICAoYmFzZSAxNikJCVByb3hpY2FzdAorCQkJCTMxMiBTdW5ueWZpZWxkIERyaXZlCisJCQkJU3VpdGUgMjAwCisJCQkJR2xlbnNoYXcgUEEgMTUxMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTNBICAgKGhleCkJCVNJTVMgQ29ycC4KKzAwMUIzQSAgICAgKGJhc2UgMTYpCQlTSU1TIENvcnAuCisJCQkJUkFPTiBCbGRnLCA5RiwgOTItOCwgV29uaHlvcm8tMmdhLCBZb25nc2FuLWd1CisJCQkJU2VvdWwgIDE0MC04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItM0IgICAoaGV4KQkJWWktUWluZyBDTy4sIExURAorMDAxQjNCICAgICAoYmFzZSAxNikJCVlpLVFpbmcgQ08uLCBMVEQKKwkJCQkzMTAgUk9PTSwxMkYKKwkJCQlOTy41LTEgSEVORyBZQU5HIFJELgorCQkJCVRBSVBFSSAgMTAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi0zQyAgIChoZXgpCQlTb2Z0d2FyZSBUZWNobm9sb2dpZXMgR3JvdXAsSW5jLgorMDAxQjNDICAgICAoYmFzZSAxNikJCVNvZnR3YXJlIFRlY2hub2xvZ2llcyBHcm91cCxJbmMuCisJCQkJMTAzMzAgVy4gUm9vc2V2ZWx0IFJvYWQKKwkJCQlTdWl0ZSAzMTAKKwkJCQlXZXNjaGVzdGVyIElMIDYwMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0zRCAgIChoZXgpCQlFdXJvVGVsIFNwYQorMDAxQjNEICAgICAoYmFzZSAxNikJCUV1cm9UZWwgU3BhCisJCQkJdmlhbGUgTWFydGlyaSBkZWxsYSBMaWJlcnRhLDQKKwkJCQlMaXNzb25lIE1pbGFuIDIwMDM1CisJCQkJSVRBTFkKKworMDAtMUItM0UgICAoaGV4KQkJQ3VydGlzLCBJbmMuCiswMDFCM0UgICAgIChiYXNlIDE2KQkJQ3VydGlzLCBJbmMuCisJCQkJMjQwNSBBbm5hcG9saXMgTGFuZQorCQkJCVN1aXRlIDIyMAorCQkJCU1pbm5lYXBvbGlzIE1OIDU1NDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0zRiAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCiswMDFCM0YgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQuCisJCQkJUm9zZXZpbGxlIENhbGlmb3JuaWEgOTU3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTQwICAgKGhleCkJCU5ldHdvcmsgQXV0b21hdGlvbiBteGMgQUIKKzAwMUI0MCAgICAgKGJhc2UgMTYpCQlOZXR3b3JrIEF1dG9tYXRpb24gbXhjIEFCCisJCQkJQm94IDcyOTQKKwkJCQlTdG9ja2hvbG0gIDEwMzkwCisJCQkJU1dFREVOCisKKzAwLTFCLTQxICAgKGhleCkJCUdlbmVyYWwgSW5maW5pdHkgQ28uLEx0ZC4KKzAwMUI0MSAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIEluZmluaXR5IENvLixMdGQuCisJCQkJM0YsTm8uMTY5LCBYaW5nLWFpIFJkLAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTQyICAgKGhleCkJCVdpc2UgJiBCbHVlCiswMDFCNDIgICAgIChiYXNlIDE2KQkJV2lzZSAmIEJsdWUKKwkJCQkjNzE1LTMgQW55YW5nIE1lZ2F2YWxsZXkKKwkJCQk3OTkgR3dhbnlhbmctRG9uZywgRG9uZ2FuLUd1CisJCQkJQW55YW5nLVNpIEd5dW5nZ2ktRG8gNDMxLTc2NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi00MyAgIChoZXgpCQlCZWlqaW5nIERHIFRlbGVjb21tdW5pY2F0aW9ucyBlcXVpcG1lbnQgQ28uLEx0ZAorMDAxQjQzICAgICAoYmFzZSAxNikJCUJlaWppbmcgREcgVGVsZWNvbW11bmljYXRpb25zIGVxdWlwbWVudCBDby4sTHRkCisJCQkJTm8uNSBKaWFuZ3RhaSBSb2FkLCBDaGFveWFuZyBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDAxNgorCQkJCUNISU5BCisKKzAwLTFCLTQ0ICAgKGhleCkJCVNhbkRpc2sgQ29ycG9yYXRpb24KKzAwMUI0NCAgICAgKGJhc2UgMTYpCQlTYW5EaXNrIENvcnBvcmF0aW9uCisJCQkJNjAxIE1jQ2FydGh5IEJvdWxldmFyZAorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi00NSAgIChoZXgpCQlBQkIgQVMsIERpdmlzaW9uIEF1dG9tYXRpb24gUHJvZHVjdHMKKzAwMUI0NSAgICAgKGJhc2UgMTYpCQlBQkIgQVMsIERpdmlzaW9uIEF1dG9tYXRpb24gUHJvZHVjdHMKKwkJCQlCZXJnZXJ2ZWllbiAxMgorCQkJCVBPQiA5MAorCQkJCUJpbGxpbmdzdGFkICBOTy0xMzc1CisJCQkJTk9SV0FZCisKKzAwLTFCLTQ2ICAgKGhleCkJCUJsdWVvbmUgVGVjaG5vbG9neSBDby4sTHRkCiswMDFCNDYgICAgIChiYXNlIDE2KQkJQmx1ZW9uZSBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlSb29tIDMwOSwzIEZsb29yLCA0MDQgQnVpbGRpbmcsIFNoYW5nQnUgaW5kdXN0cmlhbAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMjgKKwkJCQlDSElOQQorCiswMC0xQi00NyAgIChoZXgpCQlGdXRhcnF1ZSBBL1MKKzAwMUI0NyAgICAgKGJhc2UgMTYpCQlGdXRhcnF1ZSBBL1MKKwkJCQlBYWdhZGUgMTVCCisJCQkJQWFsYm9yZyAgOTAwMAorCQkJCURFTk1BUksKKworMDAtMUItNDggICAoaGV4KQkJU2hlbnpoZW4gTGFudGVjaCBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMUI0OCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBMYW50ZWNoIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTMwNiBSb29tLCBOYW5zaGFuIFdhdGVyIEJ1aWxkaW5nLAorCQkJCU5hbmhhaSBSb2FkLCBOYW5zaGFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1MgorCQkJCUNISU5BCisKKzAwLTFCLTQ5ICAgKGhleCkJCVJvYmVydHMgUmFkaW8gbGltaXRlZAorMDAxQjQ5ICAgICAoYmFzZSAxNikJCVJvYmVydHMgUmFkaW8gbGltaXRlZAorCQkJCVN3aW50b24gV29ya3MKKwkJCQlUYWxib3QgUm9hZAorCQkJCU1leGJvcm91Z2ggU291dGggWW9ya3NoaXJlIFM2NCA4QUoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQi00QSAgIChoZXgpCQlXJlcgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMUI0QSAgICAgKGJhc2UgMTYpCQlXJlcgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyOTAzIEJ1bmtlciBIaWxsIExhbmUKKwkJCQlTdWl0ZSAxMDcKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNEIgICAoaGV4KQkJU0FOSU9OIENvLiwgTHRkLgorMDAxQjRCICAgICAoYmFzZSAxNikJCVNBTklPTiBDby4sIEx0ZC4KKwkJCQkjMjA4IEFDRVRFQ0hOTyBUT1dFUiwgNTUtNywgTVVMTEFFLURPTkcgM0dBLAorCQkJCVlFT05HREVVTkdQTy1HVSBTRU9VTCAxNTAtOTkyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLTRDICAgKGhleCkJCVNpZ250ZWNoCiswMDFCNEMgICAgIChiYXNlIDE2KQkJU2lnbnRlY2gKKwkJCQk2MDkgU2VvbmlsIFRlY2hub3BpYSA2MDkKKwkJCQlTYW5nZGFld29uIDFEb25nIEp1bmd3b24gZ3UKKwkJCQlTdW5nbmFtc2kgS3l1bmdnaWRvIDQ2Mi0xMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItNEQgICAoaGV4KQkJQXJlY2EgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxQjREICAgICAoYmFzZSAxNikJCUFyZWNhIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk4Ri4sIE5vLiAyMiwgTGFuZSAzNSwgSmktSHUgUmQuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTRFICAgKGhleCkJCU5hdm1hbiBOZXcgWmVhbGFuZAorMDAxQjRFICAgICAoYmFzZSAxNikJCU5hdm1hbiBOZXcgWmVhbGFuZAorCQkJCTctMjEgS2F3YW5hIFN0cmVldAorCQkJCU5vcnRoY290ZQorCQkJCUF1Y2tsYW5kICAwNjI3CisJCQkJTkVXIFpFQUxBTkQKKworMDAtMUItNEYgICAoaGV4KQkJQXZheWEgSW5jLgorMDAxQjRGICAgICAoYmFzZSAxNikJCUF2YXlhIEluYy4KKwkJCQlSb29tIDFBIDMwOQorCQkJCTMwNyBNaWRkbGV0b3duIExpbmNyb2Z0IFJkCisJCQkJTGluY3JvZnQgTkogMDc3MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTUwICAgKGhleCkJCU5pemhueSBOb3Znb3JvZCBGYWN0b3J5IG5hbWVkIGFmdGVyIE0uRnJ1bnplLCBGU1VFIChOWmlGKQorMDAxQjUwICAgICAoYmFzZSAxNikJCU5pemhueSBOb3Znb3JvZCBGYWN0b3J5IG5hbWVkIGFmdGVyIE0uRnJ1bnplLCBGU1VFIChOWmlGKQorCQkJCTE3NCwgR2FnYXJpbmEgQXZlbnVlCisJCQkJTml6aG55IE5vdmdvcm9kICA2MDM5NTAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUItNTEgICAoaGV4KQkJVmVjdG9yIFRlY2hub2xvZ3kgQ29ycC4KKzAwMUI1MSAgICAgKGJhc2UgMTYpCQlWZWN0b3IgVGVjaG5vbG9neSBDb3JwLgorCQkJCU5vLjcsIExhbmUxMiwgWWFqb3UgUm9hZC4KKwkJCQlUdWNoZW5nIFRhaXBlaSAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTUyICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxQjUyICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTYwMCBOLiBId3kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTUzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUI1MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTU0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUI1NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTU1ICAgKGhleCkJCUh1cmNvIEF1dG9tYXRpb24gTHRkLgorMDAxQjU1ICAgICAoYmFzZSAxNikJCUh1cmNvIEF1dG9tYXRpb24gTHRkLgorCQkJCTZGLCBOby4gMzEsIFNoaW50YWkgUmQuCisJCQkJSnViZWkgQ2l0eSwgSHNpbmNodSBIc2llbiAzMDI0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItNTYgICAoaGV4KQkJVGVodXRpIE5ldHdvcmtzIEx0ZC4KKzAwMUI1NiAgICAgKGJhc2UgMTYpCQlUZWh1dGkgTmV0d29ya3MgTHRkLgorCQkJCTEsIFNoZW5rYXIgU3QuCisJCQkJSGVydHpsaXlhICA0NjEwNQorCQkJCUlTUkFFTAorCiswMC0xQi01NyAgIChoZXgpCQlTRU1JTkRJQSBTWVNURU1TIFBSSVZBVEUgTElNSVRFRAorMDAxQjU3ICAgICAoYmFzZSAxNikJCVNFTUlORElBIFNZU1RFTVMgUFJJVkFURSBMSU1JVEVECisJCQkJIzExMDYvOSxBLk0uSW5kdXN0cmlhbCBFc3RhdGUsR2FydmViaGFpIHBhbHlhLAorCQkJCTd0aCBNaWxlLCBIb3N1ciBSb2FkLAorCQkJCUJBTkdBTE9SRSBLQVJOQVRBS0EgNTYwMDY4CisJCQkJSU5ESUEKKworMDAtMUItNTggICAoaGV4KQkJQUNFIENBRCBFbnRlcnByaXNlIENvLiwgTHRkLgorMDAxQjU4ICAgICAoYmFzZSAxNikJCUFDRSBDQUQgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKwkJCQkyRiwgTm8uIDk0LCBCYW8gQ2h1bmcgUm9hZCwKKwkJCQlIc2luIFRpZW4gQ2l0eSwgVGFpcGVpIEhzaWVuIDIzMTQ0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi01OSAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorMDAxQjU5ICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKKzAwLTFCLTVBICAgKGhleCkJCUFwb2xsbyBJbWFnaW5nIFRlY2hub2xvZ2llcywgSW5jLgorMDAxQjVBICAgICAoYmFzZSAxNikJCUFwb2xsbyBJbWFnaW5nIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE4NTQ1IFJhbmdlbGFuZCBSZAorCQkJCVJhbW9uYSBDQSA5MjA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNUIgICAoaGV4KQkJMldpcmUsIEluYy4KKzAwMUI1QiAgICAgKGJhc2UgMTYpCQkyV2lyZSwgSW5jLgorCQkJCTE3MDQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTVDICAgKGhleCkJCUF6dXJldGVjIENvLiwgTHRkLgorMDAxQjVDICAgICAoYmFzZSAxNikJCUF6dXJldGVjIENvLiwgTHRkLgorCQkJCTNGLCBOby44LCBBbGxleSA4LCBMYW5lIDQ1LCBCYW94aW5nIFJkLiwKKwkJCQlYaW5kaWFuIENpdHkgVGFpcGVpIENvdW50eSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTVEICAgKGhleCkJCVZvbG9saW5rIFB0eSBMdGQKKzAwMUI1RCAgICAgKGJhc2UgMTYpCQlWb2xvbGluayBQdHkgTHRkCisJCQkJTGV2ZWwgMiwgNTQxIEJsYWNrYnVybiBSb2FkCisJCQkJTW91bnQgV2F2ZXJsZXkgVmljdG9yaWEgMzE0OQorCQkJCUFVU1RSQUxJQQorCiswMC0xQi01RSAgIChoZXgpCQlCUEwgTGltaXRlZAorMDAxQjVFICAgICAoYmFzZSAxNikJCUJQTCBMaW1pdGVkCisJCQkJQlBMIFRvd2VycworCQkJCTEzLCBLYXN0dXJiYSBSb2FkCisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAwMDEKKwkJCQlJTkRJQQorCiswMC0xQi01RiAgIChoZXgpCQlBbGllbiBUZWNobm9sb2d5CiswMDFCNUYgICAgIChiYXNlIDE2KQkJQWxpZW4gVGVjaG5vbG9neQorCQkJCTE4MjIwIEJ1dHRlcmZpZWxkIEJsdmQuCisJCQkJTW9yZ2FuIEhpbGwgQ0EgOTUwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTYwICAgKGhleCkJCU5BVklHT04gQUcKKzAwMUI2MCAgICAgKGJhc2UgMTYpCQlOQVZJR09OIEFHCisJCQkJQmVybGluZXIgUGxhdHogMTEKKwkJCQlXdWVyemJ1cmcgQmF2YXJpYSA5NzA4MAorCQkJCUdFUk1BTlkKKworMDAtMUItNjEgICAoaGV4KQkJRGlnaXRhbCBBY291c3RpY3MsIExMQworMDAxQjYxICAgICAoYmFzZSAxNikJCURpZ2l0YWwgQWNvdXN0aWNzLCBMTEMKKwkJCQkzNyBTaGVyd29vZCBUZXJyYWNlCisJCQkJTGFrZSBCbHVmZiBJTCA2MDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNjIgICAoaGV4KQkJSkhUIE9wdG9lbGVjdHJvbmljcyBDby4sTHRkLgorMDAxQjYyICAgICAoYmFzZSAxNikJCUpIVCBPcHRvZWxlY3Ryb25pY3MgQ28uLEx0ZC4KKwkJCQlIZXRpYW4gSW5kdXN0cmlhbCBQYXJrIDJyZCxIb3VqaWUgVG93biwgRG9uZ3VhbiwKKwkJCQlEb25nZ3VhbiBHdWFuZ2RvbmcgNTIzOTQ1CisJCQkJQ0hJTkEKKworMDAtMUItNjMgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIgSW5jLgorMDAxQjYzICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ2FsaWZvcm5pYSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNjQgICAoaGV4KQkJSXNhYWNMYW5kS29yZWEgQ28uLCBMdGQsCiswMDFCNjQgICAgIChiYXNlIDE2KQkJSXNhYWNMYW5kS29yZWEgQ28uLCBMdGQsCisJCQkJUm0gNjA4LCBIYW5nYW5nLUh5dW5kYWktSHllbCBCbGRnLiAyLTM2LAorCQkJCUhhbmdhbmdubyAyLWdhLCBZb25nc2FuLWd1LAorCQkJCVNlb3VsICAxNDAtODcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLTY1ICAgKGhleCkJCUNoaW5hIEdyaWRjb20gQ28uLCBMdGQKKzAwMUI2NSAgICAgKGJhc2UgMTYpCQlDaGluYSBHcmlkY29tIENvLiwgTHRkCisJCQkJMjEvRiwgSHVhbmVuZyBCdWlsZGluZywgTm8uIDIwNjggU2hlbm5hbiBNYWluIFJvYWQKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgMDA4NgorCQkJCUNISU5BCisKKzAwLTFCLTY2ICAgKGhleCkJCVNlbm5oZWlzZXIgZWxlY3Ryb25pYyBHbWJIICYgQ28uIEtHCiswMDFCNjYgICAgIChiYXNlIDE2KQkJU2VubmhlaXNlciBlbGVjdHJvbmljIEdtYkggJiBDby4gS0cKKwkJCQlBbSBMYWJvciAxCisJCQkJV2VkZW1hcmsgTmllZGVyc2FjaHNlbiAzMDkwMAorCQkJCUdFUk1BTlkKKworMDAtMUItNjcgICAoaGV4KQkJVWJpcXVpc3lzIEx0ZAorMDAxQjY3ICAgICAoYmFzZSAxNikJCVViaXF1aXN5cyBMdGQKKwkJCQlUaGUgU3RlbGxhIEJ1aWxkaW5nCisJCQkJV2luZG1pbGwgSGlsbCBCdXNpbmVzcyBQYXJrCisJCQkJU3dpbmRvbiBXaWx0c2hpcmUgU041IDZOWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFCLTY4ICAgKGhleCkJCU1vZG5uZXQgQ28uLCBMdGQKKzAwMUI2OCAgICAgKGJhc2UgMTYpCQlNb2RubmV0IENvLiwgTHRkCisJCQkJMjEzOSBEYWVteXVuZy1Eb25nIERJUCBtYWluIEIvRCBSb29tIzUwNSwgTmFtZ3UKKwkJCQlEYWVndSBLeXVuZ3NhbmcgQm9va2RvIDcwNS03MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItNjkgICAoaGV4KQkJRXF1YWxpbmUgQ29ycG9yYXRpb24KKzAwMUI2OSAgICAgKGJhc2UgMTYpCQlFcXVhbGluZSBDb3Jwb3JhdGlvbgorCQkJCTlGLCBOby4gMjM0LCBTZWN0aW9uIDQsIENoZW5nLURlIFJvYWQsCisJCQkJVGFpcGVpIEhzaWVuIDI1MTYyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi02QSAgIChoZXgpCQlQb3dlcndhdmUgVGVjaG5vbG9naWVzIFN3ZWRlbiBBQgorMDAxQjZBICAgICAoYmFzZSAxNikJCVBvd2Vyd2F2ZSBUZWNobm9sb2dpZXMgU3dlZGVuIEFCCisJCQkJMTY0IDI2CisJCQkJS2lzdGEKKwkJCQlLbmFycmFybuRzZ2F0YW4gNywgS2lzdGEgIAorCQkJCVNXRURFTgorCiswMC0xQi02QiAgIChoZXgpCQlTd3l4IFNvbHV0aW9ucyBBRworMDAxQjZCICAgICAoYmFzZSAxNikJCVN3eXggU29sdXRpb25zIEFHCisJCQkJSm9zZXBoLXZvbi1GcmF1bmhvZmVyLXN0ci4xM2EKKwkJCQlEb3J0bXVuZCBOUlcgNDQyMjcKKwkJCQlHRVJNQU5ZCisKKzAwLTFCLTZDICAgKGhleCkJCUxvb2tYIERpZ2l0YWwgTWVkaWEgQlYKKzAwMUI2QyAgICAgKGJhc2UgMTYpCQlMb29rWCBEaWdpdGFsIE1lZGlhIEJWCisJCQkJUm9la2VudmVsZHdlZyAxCisJCQkJQnJ1bnNzdW0gTGltYnVyZyA2NDQ2REsKKwkJCQlORVRIRVJMQU5EUworCiswMC0xQi02RCAgIChoZXgpCQlNaWR0cm9uaWNzLCBJbmMuCiswMDFCNkQgICAgIChiYXNlIDE2KQkJTWlkdHJvbmljcywgSW5jLgorCQkJCTcwMDAgTW9ucm9lIFN0LgorCQkJCVdpbGxvd2Jyb29rIElMIDYwNTI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi02RSAgIChoZXgpCQlBbnVlIFN5c3RlbXMsIEluYy4KKzAwMUI2RSAgICAgKGJhc2UgMTYpCQlBbnVlIFN5c3RlbXMsIEluYy4KKwkJCQk5MTExIEpvbGx5dmlsbGUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUF1c3RpbiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNkYgICAoaGV4KQkJVGVsZXRyYWsgTHRkCiswMDFCNkYgICAgIChiYXNlIDE2KQkJVGVsZXRyYWsgTHRkCisJCQkJMjE0IEtlcGEgUm9hZAorCQkJCU1pc3Npb24gQmF5CisJCQkJQXVja2xhbmQgIDEwNzEKKwkJCQlORVcgWkVBTEFORAorCiswMC0xQi03MCAgIChoZXgpCQlJUkkgVWJpdGVxLCBJTkMuCiswMDFCNzAgICAgIChiYXNlIDE2KQkJSVJJIFViaXRlcSwgSU5DLgorCQkJCVNoaW5qdWt1LU5vbXVyYSBCbGRnLiA0N0YsCisJCQkJMS0yNi0yIE5pc2hpLXNoaW5qdWt1LAorCQkJCVNoaW5qdWt1LWt1IFRva3lvIDE2My0wNTQ3CisJCQkJSkFQQU4KKworMDAtMUItNzEgICAoaGV4KQkJVGVsdWxhciBDb3JwLgorMDAxQjcxICAgICAoYmFzZSAxNikJCVRlbHVsYXIgQ29ycC4KKwkJCQkzMTEgU291dGggV2Fja2VyIERyaXZlCisJCQkJU3VpdGUgNDMwMAorCQkJCUNoaWNhZ28gSUwgNjA2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTcyICAgKGhleCkJCVNpY2VwIHMucC5hLgorMDAxQjcyICAgICAoYmFzZSAxNikJCVNpY2VwIHMucC5hLgorCQkJCVZpYSBjYWxhYnJpYSwgMTQKKwkJCQlDZXJ0YWxkbyAgNTAwNTIKKwkJCQlJVEFMWQorCiswMC0xQi03MyAgIChoZXgpCQlEVEwgQnJvYWRjYXN0IEx0ZAorMDAxQjczICAgICAoYmFzZSAxNikJCURUTCBCcm9hZGNhc3QgTHRkCisJCQkJSm9obnNvbidzIEVzdGF0ZQorCQkJCVNpbHZlcmRhbGUgUm9hZAorCQkJCUhBWUVTIE1pZGRsZXNleCBVQjMgM0JBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUItNzQgICAoaGV4KQkJTWlyYUxpbmsgQ29ycG9yYXRpb24KKzAwMUI3NCAgICAgKGJhc2UgMTYpCQlNaXJhTGluayBDb3Jwb3JhdGlvbgorCQkJCTExMSBTVyA1dGggQXZlLgorCQkJCVN0ZS4gMTAwMAorCQkJCVBvcnRsYW5kIE9SIDk3MjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi03NSAgIChoZXgpCQlIeXBlcm1lZGlhIFN5c3RlbXMKKzAwMUI3NSAgICAgKGJhc2UgMTYpCQlIeXBlcm1lZGlhIFN5c3RlbXMKKwkJCQkyQiBCZXJnbWFuIFN0LgorCQkJCVJhYmJpbiBJbmR1c3RyaWFsIFBhcmsKKwkJCQlSZWhvdm90ICA3NjcwNQorCQkJCUlTUkFFTAorCiswMC0xQi03NiAgIChoZXgpCQlSaXBjb2RlLCBJbmMuCiswMDFCNzYgICAgIChiYXNlIDE2KQkJUmlwY29kZSwgSW5jLgorCQkJCTExMzAgRS4gQXJhcGFobyBSb2FkCisJCQkJU3VpdGUgNDM1CisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNzcgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDFCNzcgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xQi03OCAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMUI3OCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCW1zMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNzkgICAoaGV4KQkJRkFJVkVMRVkgVFJBTlNQT1JUCiswMDFCNzkgICAgIChiYXNlIDE2KQkJRkFJVkVMRVkgVFJBTlNQT1JUCisJCQkJWkkgZHUgYm9pcyBkZSBwbGFudGUKKwkJCQlydWUgYW1lbGlhIGVhcmhhcnQKKwkJCQlMQSBWSUxMRSBBVVggREFNRVMgIDM3NzAwCisJCQkJRlJBTkNFCisKKzAwLTFCLTdBICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAxQjdBICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFCLTdCICAgKGhleCkJCVRoZSBUaW50b21ldGVyIEx0ZAorMDAxQjdCICAgICAoYmFzZSAxNikJCVRoZSBUaW50b21ldGVyIEx0ZAorCQkJCVNvbGFyIFdheQorCQkJCVNvbHN0aWNlIFBhcmsKKwkJCQlBbWVzYnVyeSBXaWx0c2hpcmUgU1A0IDdTWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFCLTdDICAgKGhleCkJCUEgJiBSIENhbWJyaWRnZQorMDAxQjdDICAgICAoYmFzZSAxNikJCUEgJiBSIENhbWJyaWRnZQorCQkJCVBlbWJyb2tlIEF2ZW51ZQorCQkJCVdhdGVyYmVhY2gKKwkJCQlDYW1icmlkZ2UgQ0FNQlMgQ0IyNSA5UVIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQi03RCAgIChoZXgpCQlDWFIgQW5kZXJzb24gSmFjb2Jzb24KKzAwMUI3RCAgICAgKGJhc2UgMTYpCQlDWFIgQW5kZXJzb24gSmFjb2Jzb24KKwkJCQlSdWUgZGUgbCdvcm5ldHRlCisJCQkJQWJvbmRhbnQgIDI4NDEwCisJCQkJRlJBTkNFCisKKzAwLTFCLTdFICAgKGhleCkJCUJlY2ttYW5uIEdtYkgKKzAwMUI3RSAgICAgKGJhc2UgMTYpCQlCZWNrbWFubiBHbWJICisJCQkJQnJhbmR0c3RyLiAxCisJCQkJSG9ldmVsaG9mIE5SVyAzMzE2MQorCQkJCUdFUk1BTlkKKworMDAtMUItN0YgICAoaGV4KQkJVE1OIFRlY2hub2xvZ2llcyBUZWxlY29tdW5pY2Fjb2VzIEx0ZGEKKzAwMUI3RiAgICAgKGJhc2UgMTYpCQlUTU4gVGVjaG5vbG9naWVzIFRlbGVjb211bmljYWNvZXMgTHRkYQorCQkJCVJ1YSBOaWx6YSwgNDIyCisJCQkJU2FvIFBhdWxvIFNQIDAzNjUxLTEyMAorCQkJCUJSQVpJTAorCiswMC0xQi04MCAgIChoZXgpCQlMT1JEIENvcnBvcmF0aW9uCiswMDFCODAgICAgIChiYXNlIDE2KQkJTE9SRCBDb3Jwb3JhdGlvbgorCQkJCTIwMDAgV2VzdCBHcmFuZHZpZXcgQmx2ZAorCQkJCUVyaWUgUGEgMTY1MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTgxICAgKGhleCkJCURBVEFRIEluc3RydW1lbnRzLCBJbmMuCiswMDFCODEgICAgIChiYXNlIDE2KQkJREFUQVEgSW5zdHJ1bWVudHMsIEluYy4KKwkJCQkyNDEgU3ByaW5nc2lkZSBEcml2ZQorCQkJCUFrcm9uIE9oaW8gNDQzMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTgyICAgKGhleCkJCVRhaXdhbiBTZW1pY29uZHVjdG9yIENvLiwgTHRkLgorMDAxQjgyICAgICAoYmFzZSAxNikJCVRhaXdhbiBTZW1pY29uZHVjdG9yIENvLiwgTHRkLgorCQkJCTExRiwgTm8uIDIwNSwgU2VjLiAzLCBCZWlzaGluIFJkLAorCQkJCVNoaW5kaWFuIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTgzICAgKGhleCkJCUZpbnNvZnQgTHRkCiswMDFCODMgICAgIChiYXNlIDE2KQkJRmluc29mdCBMdGQKKwkJCQkxNi0xOCBIYXR0b24gR2FyZGVuCisJCQkJTG9uZG9uICBFQzFOIDhBVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFCLTg0ICAgKGhleCkJCVNjYW4gRW5naW5lZXJpbmcgVGVsZWNvbQorMDAxQjg0ICAgICAoYmFzZSAxNikJCVNjYW4gRW5naW5lZXJpbmcgVGVsZWNvbQorCQkJCVN2b2JvZHkgc3RyLiA3NQorCQkJCVZvcm9uZXpoICAzOTQwMzAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUItODUgICAoaGV4KQkJTUFOIERpZXNlbCBTRQorMDAxQjg1ICAgICAoYmFzZSAxNikJCU1BTiBEaWVzZWwgU0UKKwkJCQlUZWdsaG9sbXNnYWRlIDQxCisJCQkJQ29wZW5oYWdlbiAgMjQ1MAorCQkJCURFTk1BUksKKworMDAtMUItODYgICAoaGV4KQkJQm9zY2ggQWNjZXNzIFN5c3RlbXMgR21iSAorMDAxQjg2ICAgICAoYmFzZSAxNikJCUJvc2NoIEFjY2VzcyBTeXN0ZW1zIEdtYkgKKwkJCQlDaGFybG90dGVuYnVyZ2VyIEFsbGVlIDUwICAgICAgICAgICAgCisJCQkJQUFDSEVOICAgIEQtNTIwNjggCisJCQkJR0VSTUFOWQorCiswMC0xQi04NyAgIChoZXgpCQlEZWVwc291bmQgVGVjaC4gQ28uLCBMdGQKKzAwMUI4NyAgICAgKGJhc2UgMTYpCQlEZWVwc291bmQgVGVjaC4gQ28uLCBMdGQKKwkJCQkzRiBOby4gNTc2IFNlYy4gMSwgTWluc2hlbmcgTi4gUmQuLCBHdWVpc2hhbiBUb3duc2hpcCwKKwkJCQlUYW95dWFuICAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTg4ICAgKGhleCkJCURpdmluZXQgQWNjZXNzIFRlY2hub2xvZ2llcyBMdGQKKzAwMUI4OCAgICAgKGJhc2UgMTYpCQlEaXZpbmV0IEFjY2VzcyBUZWNobm9sb2dpZXMgTHRkCisJCQkJNHRoIEZsb29yLCBNZWRpYSBDZW50ZXIsCisJCQkJU2FrYWFsIE5hZ2FyLCBCYW5lciBSb2FkCisJCQkJUHVuZSBNYWhhcmFzaHRyYSA0MTEwMDcKKwkJCQlJTkRJQQorCiswMC0xQi04OSAgIChoZXgpCQlFTVpBIFZpc3VhbCBTZW5zZSBMdGQuCiswMDFCODkgICAgIChiYXNlIDE2KQkJRU1aQSBWaXN1YWwgU2Vuc2UgTHRkLgorCQkJCTIwIEhhJ3RhJ2FzIFN0LiwgQmVpdGggSGFwYW1vbgorCQkJCXN1aXRlIDM5MQorCQkJCUtmYXIgU2FiYSAgNDQ0MjUKKwkJCQlJU1JBRUwKKworMDAtMUItOEEgICAoaGV4KQkJMk0gRWxlY3Ryb25pYyBBL1MKKzAwMUI4QSAgICAgKGJhc2UgMTYpCQkyTSBFbGVjdHJvbmljIEEvUworCQkJCU1hbGVydmVqIDEwCisJCQkJVGFhc3RydXAgIDI2MzAKKwkJCQlERU5NQVJLCisKKzAwLTFCLThCICAgKGhleCkJCU5FQyBBY2Nlc3NUZWNobmljYSwgTHRkLgorMDAxQjhCICAgICAoYmFzZSAxNikJCU5FQyBBY2Nlc3NUZWNobmljYSwgTHRkLgorCQkJCTgwMCBTaGltb21hdGEKKwkJCQlLYWtlZ2F3YSBTaGl6dW9rYSA0MzYtODUwMQorCQkJCUpBUEFOCisKKzAwLTFCLThDICAgKGhleCkJCUpNaWNyb24gVGVjaG5vbG9neSBDb3JwLgorMDAxQjhDICAgICAoYmFzZSAxNikJCUpNaWNyb24gVGVjaG5vbG9neSBDb3JwLgorCQkJCTFGLCBOby4xMywgSW5ub3ZhdGlvbiBSb2FkIDEKKwkJCQlIc2luY2h1IFNjaWVuY2UgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItOEQgICAoaGV4KQkJRWxlY3Ryb25pYyBDb21wdXRlciBTeXN0ZW1zLCBJbmMuCiswMDFCOEQgICAgIChiYXNlIDE2KQkJRWxlY3Ryb25pYyBDb21wdXRlciBTeXN0ZW1zLCBJbmMuCisJCQkJNDE4IERvbmVnYWwgRHJpdmUKKwkJCQlUb3dzb24gTUQgMjEyODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLThFICAgKGhleCkJCUh1bHUgU3dlZGVuIEFCCiswMDFCOEUgICAgIChiYXNlIDE2KQkJSHVsdSBTd2VkZW4gQUIKKwkJCQlCb3ggMTIzMjgsIDEwMjI4CisJCQkJS2lzdGEgU3RvY2tob2xtIDE2NCA0MAorCQkJCVNXRURFTgorCiswMC0xQi04RiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFCOEYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi05MCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFCOTAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi05MSAgIChoZXgpCQlFRktPTiBBRworMDAxQjkxICAgICAoYmFzZSAxNikJCUVGS09OIEFHCisJCQkJQW5kcml0emVyIFJlaWNoc3N0cmFzc2UgNjYKKwkJCQlHcmF6IFN0eXJpYSA4MDQ1CisJCQkJQVVTVFJJQQorCiswMC0xQi05MiAgIChoZXgpCQlsLWFjb3VzdGljcworMDAxQjkyICAgICAoYmFzZSAxNikJCWwtYWNvdXN0aWNzCisJCQkJcGFyYyBkZSBsYSBmb250YWluZSBkZSBqb3V2ZW5jZQorCQkJCW1hcmNvdXNzaXMgZXNzb25uZSA5MTQ2MgorCQkJCUZSQU5DRQorCiswMC0xQi05MyAgIChoZXgpCQlKQyBEZWNhdXggU0EgRE5UCiswMDFCOTMgICAgIChiYXNlIDE2KQkJSkMgRGVjYXV4IFNBIEROVAorCQkJCTIxIHJ1ZSBjbGF1ZGUgQmVybmFyZAorCQkJCU1BVVJFUEFTICA3ODMxMAorCQkJCUZSQU5DRQorCiswMC0xQi05NCAgIChoZXgpCQlULkUuTS5BLiBTLnAuQS4KKzAwMUI5NCAgICAgKGJhc2UgMTYpCQlULkUuTS5BLiBTLnAuQS4KKwkJCQl2aWEgZGVsbGEgU2NpZW56YSAyMSBBL0MKKwkJCQlDYXN0ZWxudW92byBSYW5nb25lIE1vZGVuYSA0MTA1MQorCQkJCUlUQUxZCisKKzAwLTFCLTk1ICAgKGhleCkJCVZJREVPIFNZU1RFTVMgU1JMCiswMDFCOTUgICAgIChiYXNlIDE2KQkJVklERU8gU1lTVEVNUyBTUkwKKwkJCQlMb2MuIEdvcml6em8sIDE2CisJCQkJMzMwMzAKKwkJCQlDQU1JTk8gQUwgVEFHTElBTUVOVE8gVUQgCisJCQkJSVRBTFkKKworMDAtMUItOTYgICAoaGV4KQkJR2VuZXJhbCBTZW5zaW5nCiswMDFCOTYgICAgIChiYXNlIDE2KQkJR2VuZXJhbCBTZW5zaW5nCisJCQkJMTA4IExpbmNvbG4gU3QuCisJCQkJQm9zdG9uIE1BIDAyMTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi05NyAgIChoZXgpCQlWaW9saW4gVGVjaG5vbG9naWVzCiswMDFCOTcgICAgIChiYXNlIDE2KQkJVmlvbGluIFRlY2hub2xvZ2llcworCQkJCTMzIFdvb2QgQXZlIFNvdXRoCisJCQkJSXNlbGluIE5KIDA4ODMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi05OCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxQjk4ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHVU1JIEd5ZW9uZy1CdWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi05OSAgIChoZXgpCQlLUyBTeXN0ZW0gR21iSAorMDAxQjk5ICAgICAoYmFzZSAxNikJCUtTIFN5c3RlbSBHbWJICisJCQkJQWxleGFuZGVyc3RyLiAzNworCQkJCU11ZWxoZWltIE5SVyA0NTQ3MgorCQkJCUdFUk1BTlkKKworMDAtMUItOUEgICAoaGV4KQkJQXBvbGxvIEZpcmUgRGV0ZWN0b3JzIEx0ZAorMDAxQjlBICAgICAoYmFzZSAxNikJCUFwb2xsbyBGaXJlIERldGVjdG9ycyBMdGQKKwkJCQkzNiBCcm9va3NpZGUgUm9hZAorCQkJCUhhdmFudCBIYW1wc2hpcmUgUDA5IDFKUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFCLTlCICAgKGhleCkJCUhvc2UtTWNDYW5uIENvbW11bmljYXRpb25zCiswMDFCOUIgICAgIChiYXNlIDE2KQkJSG9zZS1NY0Nhbm4gQ29tbXVuaWNhdGlvbnMKKwkJCQkxMjQxIFdlc3QgTmV3cG9ydCBDZW50ZXIgRHJpdmUKKwkJCQlEZWVyZmllbGQgQmVhY2ggRkwgMzM0NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTlDICAgKGhleCkJCVNBVEVMIHNwLiB6IG8uby4KKzAwMUI5QyAgICAgKGJhc2UgMTYpCQlTQVRFTCBzcC4geiBvLm8uCisJCQkJU2NodWJlcnRhIDc5CisJCQkJR2RhbnNrIHBvbW9yc2tpZSA4MC0xNzIKKwkJCQlQT0xBTkQKKworMDAtMUItOUQgICAoaGV4KQkJTm92dXMgU2VjdXJpdHkgU3AuIHogby5vLgorMDAxQjlEICAgICAoYmFzZSAxNikJCU5vdnVzIFNlY3VyaXR5IFNwLiB6IG8uby4KKwkJCQl1bC4gUHWzYXdza2EgNDMxCisJCQkJV2Fyc2F3IHdvai4gbWF6b3dpZWNraWUgMDItODAxCisJCQkJUE9MQU5ECisKKzAwLTFCLTlFICAgKGhleCkJCUFTS0VZICBDT01QVVRFUiAgQ09SUAorMDAxQjlFICAgICAoYmFzZSAxNikJCUFTS0VZICBDT01QVVRFUiAgQ09SUAorCQkJCTEwRixOTy4xMTksQ0hJRU5LQU5HIFJELAorCQkJCUNIVU5HLUhPLFRQSVBFSSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi05RiAgIChoZXgpCQlDYWx5cHRlY2ggUHR5IEx0ZAorMDAxQjlGICAgICAoYmFzZSAxNikJCUNhbHlwdGVjaCBQdHkgTHRkCisJCQkJNS80ODYgTG93ZXIgSGVpZGVsYmVyZyBSb2FkCisJCQkJSGVpZGVsYmVyZyBWaWN0b3JpYSAzMDg0CisJCQkJQVVTVFJBTElBCisKKzAwLTFCLUEwICAgKGhleCkJCUF3b3gKKzAwMUJBMCAgICAgKGJhc2UgMTYpCQlBd294CisJCQkJOTMsIFBsYWNlIFBpZXJyZSBEdWhlbSwKKwkJCQlMZXMgQ2VudHVyaWVzCisJCQkJMzQwMDAgTW9udHBlbGxpZXIgCisJCQkJRlJBTkNFCisKKzAwLTFCLUExICAgKGhleCkJCcVtaWMgQUIKKzAwMUJBMSAgICAgKGJhc2UgMTYpCQnFbWljIEFCCisJCQkJVXBwc2FsYSBzY2llbmNlIHBhcmsKKwkJCQlEYWcgSGFtbXJza2r2bGRzIHbkZyA1MiBCCisJCQkJVXBwc2FsYSAgNzUxODMKKwkJCQlTV0VERU4KKworMDAtMUItQTIgICAoaGV4KQkJSURTIEltYWdpbmcgRGV2ZWxvcG1lbnQgU3lzdGVtcyBHbWJICiswMDFCQTIgICAgIChiYXNlIDE2KQkJSURTIEltYWdpbmcgRGV2ZWxvcG1lbnQgU3lzdGVtcyBHbWJICisJCQkJRGltYmFjaGVyIFN0ci4gNgorCQkJCU9iZXJzdWxtIEJXIDc0MTgyCisJCQkJR0VSTUFOWQorCiswMC0xQi1BMyAgIChoZXgpCQlGbGV4aXQgR3JvdXAgR21iSAorMDAxQkEzICAgICAoYmFzZSAxNikJCUZsZXhpdCBHcm91cCBHbWJICisJCQkJQnLkdWhhdXNzdHJh32UgMTQKKwkJCQlTYWx6YnVyZyBTYWx6YnVyZyA1MDIwCisJCQkJQVVTVFJJQQorCiswMC0xQi1BNCAgIChoZXgpCQlTLkEuRSBBZmlraW0KKzAwMUJBNCAgICAgKGJhc2UgMTYpCQlTLkEuRSBBZmlraW0KKwkJCQlLaWJ1dHogQWZpa2ltCisJCQkJS2lidXR6IEFmaWtpbSAgMTUxNDgKKwkJCQlJU1JBRUwKKworMDAtMUItQTUgICAoaGV4KQkJTXl1bmdNaW4gU3lzdGVtcywgSW5jLgorMDAxQkE1ICAgICAoYmFzZSAxNikJCU15dW5nTWluIFN5c3RlbXMsIEluYy4KKwkJCQkjNDEwLERvb3NhbiBWZW50dXJlIERpbWUgMi1jaGEsMTMwNy0zNworCQkJCUt3YW55YW5nLURvbmcsCisJCQkJS3l1bmdraS1kbyAgNDMxLTA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi1BNiAgIChoZXgpCQlpbnRvdGVjaCBpbmMuCiswMDFCQTYgICAgIChiYXNlIDE2KQkJaW50b3RlY2ggaW5jLgorCQkJCSAxM0YgRE1DIFImRCBDZW50ZXIgRTMtMiBCdWlsZGluZyBMYW5kIERldmVsb3BtZW50IERpc3RyaWN0IFNhbmdhbS1Eb25nCisJCQkJTWFwb2d1IFNlb3VsIDEyMS0yNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItQTcgICAoaGV4KQkJTG9yaWNhIFNvbHV0aW9ucworMDAxQkE3ICAgICAoYmFzZSAxNikJCUxvcmljYSBTb2x1dGlvbnMKKwkJCQkyNzUgTm9ydGhwb2ludGUgUGFya3dheQorCQkJCUFtaGVyc3QgTlkgMTQyMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUE4ICAgKGhleCkJCVVCSSZNT0JJLC5JbmMKKzAwMUJBOCAgICAgKGJhc2UgMTYpCQlVQkkmTU9CSSwuSW5jCisJCQkJM0YsIER1aWRvIEJsZGcsICMyODgtNSwgWWFuZ2phZS1Eb25nCisJCQkJU2VvY2hvLUd1IFNlb3VsIDEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItQTkgICAoaGV4KQkJQlJPVEhFUiBJTkRVU1RSSUVTLCBMVEQuCiswMDFCQTkgICAgIChiYXNlIDE2KQkJQlJPVEhFUiBJTkRVU1RSSUVTLCBMVEQuCisJCQkJUHJpbnRpbmcgJiBTb2x1dGlvbnMgQ29tcGFueSwgRGV2ZWxvcG1lbnQgTWFuYWdlbWVudCBEZXB0LgorCQkJCTE1LTEgTmFlc2hpcm8tY2hvLCBNaXp1aG8ta3UKKwkJCQlOYWdveWEgQWljaGkgNDY3LTg1NjEKKwkJCQlKQVBBTgorCiswMC0xQi1BQSAgIChoZXgpCQlYZW5JQ3MgbnYKKzAwMUJBQSAgICAgKGJhc2UgMTYpCQlYZW5JQ3MgbnYKKwkJCQlBbWJhY2h0ZW5sYWFuIDQ0CisJCQkJTGV1dmVuIFZsYWFtcy1CcmFiYW50IEItMzAwMQorCQkJCUJFTEdJVU0KKworMDAtMUItQUIgICAoaGV4KQkJVGVsY2hlbXksIEluY29ycG9yYXRlZAorMDAxQkFCICAgICAoYmFzZSAxNikJCVRlbGNoZW15LCBJbmNvcnBvcmF0ZWQKKwkJCQkyOTA1IFByZW1pZXJlIFBhcmt3YXkKKwkJCQlTdWl0ZSAyODAKKwkJCQlEdWx1dGggR0EgMzAwOTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUFDICAgKGhleCkJCUN1cnRpc3MgV3JpZ2h0IENvbnRyb2xzIEVtYmVkZGVkIENvbXB1dGluZworMDAxQkFDICAgICAoYmFzZSAxNikJCUN1cnRpc3MgV3JpZ2h0IENvbnRyb2xzIEVtYmVkZGVkIENvbXB1dGluZworCQkJCTEwMjAxIFdhdGVyaWRnZSBDaXJjbGUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUFEICAgKGhleCkJCWlDb250cm9sIEluY29ycG9yYXRlZAorMDAxQkFEICAgICAoYmFzZSAxNikJCWlDb250cm9sIEluY29ycG9yYXRlZAorCQkJCTMyMzUgS2lmZXIgUm9hZAorCQkJCVN1aXRlIDI2MAorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUFFICAgKGhleCkJCU1pY3JvIENvbnRyb2wgU3lzdGVtcywgSW5jCiswMDFCQUUgICAgIChiYXNlIDE2KQkJTWljcm8gQ29udHJvbCBTeXN0ZW1zLCBJbmMKKwkJCQk1ODc3IEVudGVycHJpc2UgUGFya3dheQorCQkJCUZvcnQgTXllcnMgRmxvcmlkYSAzMzkwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItQUYgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUJBRiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUItQjAgICAoaGV4KQkJQkhBUkFUIEVMRUNUUk9OSUNTCiswMDFCQjAgICAgIChiYXNlIDE2KQkJQkhBUkFUIEVMRUNUUk9OSUNTCisJCQkJSkFMQUhBTExJIFBPU1QKKwkJCQlCQU5HQUxPUkUgS0FSTkFUQUtBIDU2MDAxMworCQkJCUlORElBCisKKzAwLTFCLUIxICAgKGhleCkJCVdpc3Ryb24gTmV3ZWIgQ29ycC4KKzAwMUJCMSAgICAgKGJhc2UgMTYpCQlXaXN0cm9uIE5ld2ViIENvcnAuCisJCQkJTm8uIDEwLTEsIExpLWhzaW4gUm9hZCBJLCBIc2luY2h1IFNjaWVuY2UgUGFyaywKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLUIyICAgKGhleCkJCUludGVsbGVjdCBJbnRlcm5hdGlvbmFsIE5WCiswMDFCQjIgICAgIChiYXNlIDE2KQkJSW50ZWxsZWN0IEludGVybmF0aW9uYWwgTlYKKwkJCQlLbGVpbmUgS2xvb3N0ZXJzdHJhYXQgMjMKKwkJCQlaYXZlbnRlbSBWbGFhbXNlIGJyYWJhbnQgMTkzMgorCQkJCUJFTEdJVU0KKworMDAtMUItQjMgICAoaGV4KQkJQ29uZGFsbyBHbWJICiswMDFCQjMgICAgIChiYXNlIDE2KQkJQ29uZGFsbyBHbWJICisJCQkJS29obHN0YXR0IDMKKwkJCQlMaWNodGVuYXUgQmF2YXJpYSA4NjcwNgorCQkJCUdFUk1BTlkKKworMDAtMUItQjQgICAoaGV4KQkJQWlydm9kIExpbWl0ZWQKKzAwMUJCNCAgICAgKGJhc2UgMTYpCQlBaXJ2b2QgTGltaXRlZAorCQkJCUhlYXRoZXIgSG91c2UKKwkJCQlIZWF0aGVyIFJvYWQKKwkJCQlTYW5keWZvcmQgSW5kIEVzdCBEdWJsaW4gMTggRDE4CisJCQkJSVJFTEFORAorCiswMC0xQi1CNSAgIChoZXgpCQlaRiBFbGVjdHJvbmljcyBHbWJICiswMDFCQjUgICAgIChiYXNlIDE2KQkJWkYgRWxlY3Ryb25pY3MgR21iSAorCQkJCUNoZXJyeXN0cmFzc2UgMQorCQkJCUF1ZXJiYWNoIGkuIGQuIE9wZi4gQmF5ZXJuIEQtOTEyNzUKKwkJCQlHRVJNQU5ZCisKKzAwLTFCLUI2ICAgKGhleCkJCUJpcmQgRWxlY3Ryb25pYyBDb3JwLgorMDAxQkI2ICAgICAoYmFzZSAxNikJCUJpcmQgRWxlY3Ryb25pYyBDb3JwLgorCQkJCTMwMzAzIEF1cm9yYSBSb2FkCisJCQkJU29sb24gT2hpbyA0NDEzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItQjcgICAoaGV4KQkJQWx0YSBIZWlnaHRzIFRlY2hub2xvZ3kgQ29ycC4KKzAwMUJCNyAgICAgKGJhc2UgMTYpCQlBbHRhIEhlaWdodHMgVGVjaG5vbG9neSBDb3JwLgorCQkJCTEwOCBBbHRhIEhlaWdodHMgQ291cnQKKwkJCQlMb3MgR2F0b3MgQ2FsaWZvcm5pYSA5NTAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItQjggICAoaGV4KQkJQkxVRVdBWSBFTEVDVFJPTklDIENPO0xURAorMDAxQkI4ICAgICAoYmFzZSAxNikJCUJMVUVXQVkgRUxFQ1RST05JQyBDTztMVEQKKwkJCQlXb3Jrc2hvcCBCLERvbmcgRmVuZyBWaWxsYWdlLAorCQkJCUZyb250IEJhaXl1bixHdSBUYW5nIEFvCisJCQkJSHVpWmhvdSBHdWFuZ0RvbmcgNTE2MDA4CisJCQkJQ0hJTkEKKworMDAtMUItQjkgICAoaGV4KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uCiswMDFCQjkgICAgIChiYXNlIDE2KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uCisJCQkJTm8uMjIsIEFsbGV5IDM4LCBMYW5lIDkxICwgU2VjLiAxICwgTmVpIEh1IFJvYWQKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItQkEgICAoaGV4KQkJTm9ydGVsCiswMDFCQkEgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTFCLUJCICAgKGhleCkJCVJGVGVjaCBDby4sTHRkCiswMDFCQkIgICAgIChiYXNlIDE2KQkJUkZUZWNoIENvLixMdGQKKwkJCQkzMzktMTcgSndhaGFuZy1SaSxXb25zYW0tTXl1biwKKwkJCQlDaGVvaW4tR3UKKwkJCQlZb25naW4tU2kgS3l1bmdraS1EbyA0NDktODcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLUJDICAgKGhleCkJCVNpbHZlciBQZWFrIFN5c3RlbXMsIEluYy4KKzAwMUJCQyAgICAgKGJhc2UgMTYpCQlTaWx2ZXIgUGVhayBTeXN0ZW1zLCBJbmMuCisJCQkJNDcxIEVsIENhbWlubyBSZWFsCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUJEICAgKGhleCkJCUZNQyBLb25nc2JlcmcgU3Vic2VhIEFTCiswMDFCQkQgICAgIChiYXNlIDE2KQkJRk1DIEtvbmdzYmVyZyBTdWJzZWEgQVMKKwkJCQlLaXJrZWdhYXJkc3ZlaWVuIDQ1CisJCQkJS29uZ3NiZXJnIEJ1c2tlcnVkIDM2MDEKKwkJCQlOT1JXQVkKKworMDAtMUItQkUgICAoaGV4KQkJSUNPUCBEaWdpdGFsCiswMDFCQkUgICAgIChiYXNlIDE2KQkJSUNPUCBEaWdpdGFsCisJCQkJMTY4MDEgVy4gMTE2dGggU3QuCisJCQkJTGVuZXhhIEtTIDY2MjE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1CRiAgIChoZXgpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCiswMDFCQkYgICAgIChiYXNlIDE2KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorCQkJCTE0IFJ1ZSBQYXVsIERhdXRpZXIKKwkJCQlW6WxpenkgIDc4NDU3CisJCQkJRlJBTkNFCisKKzAwLTFCLUMwICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzAwMUJDMCAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItQzEgICAoaGV4KQkJSE9MVVggVGVjaG5vbG9neSwgSW5jLgorMDAxQkMxICAgICAoYmFzZSAxNikJCUhPTFVYIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxRiwgTm8uIDMwLCBSJkQgUmQuIElJLAorCQkJCVNjaWVuY2UtYmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1DMiAgIChoZXgpCQlJbnRlZ3JhdGVkIENvbnRyb2wgVGVjaG5vbG9neSBMaW1pdGllZAorMDAxQkMyICAgICAoYmFzZSAxNikJCUludGVncmF0ZWQgQ29udHJvbCBUZWNobm9sb2d5IExpbWl0aWVkCisJCQkJNkMgQXNjZW5zaW9uIFBsYWNlCisJCQkJTWFpcmFuZ2kgQmF5CisJCQkJQXVja2xhbmQgQXVja2xhbmQgMDczNQorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTFCLUMzICAgKGhleCkJCU1vYmlzb2x1dGlvbiBDby4sTHRkCiswMDFCQzMgICAgIChiYXNlIDE2KQkJTW9iaXNvbHV0aW9uIENvLixMdGQKKwkJCQk4NDgtMTYKKwkJCQlHdXllb25nLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLUM0ICAgKGhleCkJCVVsdHJhdGVjLCBJbmMuCiswMDFCQzQgICAgIChiYXNlIDE2KQkJVWx0cmF0ZWMsIEluYy4KKwkJCQk0NTAgU2NpZW5jZSBEcml2ZQorCQkJCU1hZGlzb24gV0kgNTM3MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUM1ICAgKGhleCkJCUlFRUUgUmVnaXN0cmF0aW9uIEF1dGhvcml0eQorMDAxQkM1ICAgICAoYmFzZSAxNikJCUlFRUUgUmVnaXN0cmF0aW9uIEF1dGhvcml0eQorCQkJCTQ0NSBIb2VzIExhbmUKKwkJCQlQaXNjYXRhd2F5IE5KIDA4ODU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1DNiAgIChoZXgpCQlTdHJhdG8gUmVjaGVuemVudHJ1bSBBRworMDAxQkM2ICAgICAoYmFzZSAxNikJCVN0cmF0byBSZWNoZW56ZW50cnVtIEFHCisJCQkJUGFzY2Fsc3RyYXNzZSAxMAorCQkJCUQtMTA1ODcgQmVybGluIAorCQkJCUdFUk1BTlkKKworMDAtMUItQzcgICAoaGV4KQkJU3RhclZlZGlhIFRlY2hub2xvZ3kgSW5jLgorMDAxQkM3ICAgICAoYmFzZSAxNikJCVN0YXJWZWRpYSBUZWNobm9sb2d5IEluYy4KKwkJCQkzRiwgTm8uIDI0NywgRG9uZSBTZWMuIDEsIEd1YW5nbWluZyA2dGggUmQuCisJCQkJSmh1YmVpIEhzaW4tQ2h1IENvdW50eSAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLUM4ICAgKGhleCkJCU1JVVJBIENPLixMVEQKKzAwMUJDOCAgICAgKGJhc2UgMTYpCQlNSVVSQSBDTy4sTFRECisJCQkJODY0LTEsSG9qeW90c3VqaQorCQkJCU1hdHN1eWFtYSBFaGltZSA3OTktMjQzMAorCQkJCUpBUEFOCisKKzAwLTFCLUM5ICAgKGhleCkJCUZTTiBESVNQTEFZIElOQworMDAxQkM5ICAgICAoYmFzZSAxNikJCUZTTiBESVNQTEFZIElOQworCQkJCUJhZWtzdWstRG9uZyAxMTQxLTEsIElsc2FuIFRlY2hubyBUb3duIDEwMDkKKwkJCQlLb3lhbmctU2ksIElsc2FuLUd1LCBLeWVvbmdnaS1EbywgUmVwdWJsaWMgb2YgS29yZWEKKwkJCQlLb3lhbmctc2kgS3llb25nZ2ktRG8gNDEwNzIyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLUNBICAgKGhleCkJCUJlaWppbmcgUnVuIFRlY2hub2xvZ3kgTFRELiBDb21wYW55CiswMDFCQ0EgICAgIChiYXNlIDE2KQkJQmVpamluZyBSdW4gVGVjaG5vbG9neSBMVEQuIENvbXBhbnkKKwkJCQk0L0YsIEhhbmd0aWFuIFRlY2hub2xvZ3kgQnVpbGRpbmcKKwkJCQlCZWlqaW5nIDEwMDAzNworCQkJCUNISU5BCisKKzAwLTFCLUNCICAgKGhleCkJCVBFTVBFSyBTWVNURU1TIFBUWSBMVEQKKzAwMUJDQiAgICAgKGJhc2UgMTYpCQlQRU1QRUsgU1lTVEVNUyBQVFkgTFRECisJCQkJVU5JVCAzIC8gMTMgSE9ZTEUgQVZFTlVFCisJCQkJQ0FTVExFIEhJTEwgTlNXIDIxNTQKKwkJCQlBVVNUUkFMSUEKKworMDAtMUItQ0MgICAoaGV4KQkJS0lOR1RFSyBDQ1RWIEFMTElBTkNFIENPLiwgTFRELgorMDAxQkNDICAgICAoYmFzZSAxNikJCUtJTkdURUsgQ0NUViBBTExJQU5DRSBDTy4sIExURC4KKwkJCQk1Ri0zLCBOTy4gMTA2LCBTRUMuIDMsIEhTSU4gWUkgUk9BRAorCQkJCVRBSVBFSSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1DRCAgIChoZXgpCQlEQVZJU0NPTU1TIChTKSBQVEUgTFRECiswMDFCQ0QgICAgIChiYXNlIDE2KQkJREFWSVNDT01NUyAoUykgUFRFIExURAorCQkJCUJsayA3MCBVYmkgQ3Jlc2NlbnQgIzAxLTA3CisJCQkJVWJpIFRlY2hwYXJrCisJCQkJNDA4NTcwCisJCQkJU0lOR0FQT1JFCisKKzAwLTFCLUNFICAgKGhleCkJCU1lYXN1cmVtZW50IERldmljZXMgTHRkCiswMDFCQ0UgICAgIChiYXNlIDE2KQkJTWVhc3VyZW1lbnQgRGV2aWNlcyBMdGQKKwkJCQlTaWx2ZXJidXJuIENyZXNjZW50CisJCQkJQnJpZGdlIG9mIERvbgorCQkJCUFiZXJkZWVuIEFiZXJkZWVuc2hpcmUgQUIyMyA4RVcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQi1DRiAgIChoZXgpCQlEYXRhdXBpYSBDb3Jwb3JhdGlvbgorMDAxQkNGICAgICAoYmFzZSAxNikJCURhdGF1cGlhIENvcnBvcmF0aW9uCisJCQkJT25lIEFsZXdpZmUgQ2VudGVyCisJCQkJQ2FtYnJpZGdlIE1BIDAyMTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1EMCAgIChoZXgpCQlJREVOVEVDIFNPTFVUSU9OUworMDAxQkQwICAgICAoYmFzZSAxNikJCUlERU5URUMgU09MVVRJT05TCisJCQkJSGVydHpzdHIuIDEwCisJCQkJV2VpbmhlaW0gIDY5NDY5CisJCQkJR0VSTUFOWQorCiswMC0xQi1EMSAgIChoZXgpCQlTT0dFU1RNQVRJQworMDAxQkQxICAgICAoYmFzZSAxNikJCVNPR0VTVE1BVElDCisJCQkJNDA5IFJvdXRlIGRlIGxhIEdhcmUKKwkJCQlDSEFURUFVTkVVRiBERSBHQURBR05FIFBBQ0EgODQ0NzAKKwkJCQlGUkFOQ0UKKworMDAtMUItRDIgICAoaGV4KQkJVUxUUkEtWCBBU0lBIFBBQ0lGSUMgSW5jLgorMDAxQkQyICAgICAoYmFzZSAxNikJCVVMVFJBLVggQVNJQSBQQUNJRklDIEluYy4KKwkJCQk1LTEtMTUgU290b2thbmRhCisJCQkJVG9reW8gQ2hpeW9kYS1rdSAxMDEtMDAyMQorCQkJCUpBUEFOCisKKzAwLTFCLUQzICAgKGhleCkJCU1hdHN1c2hpdGEgRWxlY3RyaWMgUGFuYXNvbmljIEFWQworMDAxQkQzICAgICAoYmFzZSAxNikJCU1hdHN1c2hpdGEgRWxlY3RyaWMgUGFuYXNvbmljIEFWQworCQkJCTEtMTUgTWF0c3VvLWNobworCQkJCTY3OC01MTgKKwkJCQlLYWRvbWEgT3Nha2EgNTcxLTg1MDQKKwkJCQlKQVBBTgorCiswMC0xQi1ENCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFCRDQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItRDUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQkQ1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUQ2ICAgKGhleCkJCUtlbHZpbiBIdWdoZXMgTHRkCiswMDFCRDYgICAgIChiYXNlIDE2KQkJS2VsdmluIEh1Z2hlcyBMdGQKKwkJCQlOZXcgTm9ydGggUm9hZAorCQkJCUhhaW5hdWx0CisJCQkJSWxmb3JkIEVzc2V4IElHNiAyVVIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQi1ENyAgIChoZXgpCQlTY2llbnRpZmljIEF0bGFudGEsIEEgQ2lzY28gQ29tcGFueQorMDAxQkQ3ICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMgQXRsYW50YSwgQSBDaXNjbyBDb21wYW55CisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCUFUTCAxLjMuNDczCisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItRDggICAoaGV4KQkJRFZUZWwgTFRECiswMDFCRDggICAgIChiYXNlIDE2KQkJRFZUZWwgTFRECisJCQkJNSBTYXBpcgorCQkJCTQ2ODUyIEhlcnplbGlhIAorCQkJCUlTUkFFTAorCiswMC0xQi1EOSAgIChoZXgpCQlFZGdld2F0ZXIgQ29tcHV0ZXIgU3lzdGVtcworMDAxQkQ5ICAgICAoYmFzZSAxNikJCUVkZ2V3YXRlciBDb21wdXRlciBTeXN0ZW1zCisJCQkJMTEyNSBJbm5vdmF0aW9uIERyaXZlCisJCQkJT3R0YXdhIE9udGFyaW8gSzJLLTNHNgorCQkJCUNBTkFEQQorCiswMC0xQi1EQSAgIChoZXgpCQlVVFN0YXJjb20gSW5jCiswMDFCREEgICAgIChiYXNlIDE2KQkJVVRTdGFyY29tIEluYworCQkJCTEyNzUgSGFyYm9yIEJheSBQS1dZCisJCQkJQWxhbWVkYSBDQSA5NDUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItREIgICAoaGV4KQkJVmFsZW8gVkVDUworMDAxQkRCICAgICAoYmFzZSAxNikJCVZhbGVvIFZFQ1MKKwkJCQkyIEF2ZW51ZSBGZXJuYW5kIFBvdWlsbG9uCisJCQkJRXVyb3BhcmMKKwkJCQlDUkVURUlMIElsZSBkZSBGcmFuY2UgOTQwNDIKKwkJCQlGUkFOQ0UKKworMDAtMUItREMgICAoaGV4KQkJVmVuY2VyIENvLiwgTHRkLgorMDAxQkRDICAgICAoYmFzZSAxNikJCVZlbmNlciBDby4sIEx0ZC4KKwkJCQkyMEYtMSwgTm8uNzcsIFNlYy4xLCBIc2luIFRhaSBXdSBSZC4sCisJCQkJSHNpIENoaWggVGFpcGVpIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItREQgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDFCREQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItREUgICAoaGV4KQkJUmVua3VzLUhlaW56LCBJbmMuCiswMDFCREUgICAgIChiYXNlIDE2KQkJUmVua3VzLUhlaW56LCBJbmMuCisJCQkJMTkyMDEgQ29vayBTdC4KKwkJCQlGb290aGlsbCBSYW5jaCBDQSA5MjYxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItREYgICAoaGV4KQkJSXNrcmEgTUlTCiswMDFCREYgICAgIChiYXNlIDE2KQkJSXNrcmEgTUlTCisJCQkJTGp1YmxqYW5za2EgY2VzdGEgMjRhCisJCQkJS3JhbmogU2xvdmVuaWEgNDAwMAorCQkJCVNMT1ZFTklBCisKKzAwLTFCLUUwICAgKGhleCkJCVRFTEVOT1QgRUxFQ1RST05JQyBHbWJICiswMDFCRTAgICAgIChiYXNlIDE2KQkJVEVMRU5PVCBFTEVDVFJPTklDIEdtYkgKKwkJCQlXaWVzZW50YWxzdHJh32UgNDIKKwkJCQlBYWxlbiBCYWRlbi1X/HJ0dGVtYmVyZyA3MzQzNAorCQkJCUdFUk1BTlkKKworMDAtMUItRTEgICAoaGV4KQkJVmlhTG9neQorMDAxQkUxICAgICAoYmFzZSAxNikJCVZpYUxvZ3kKKwkJCQkyNDAwIExpbmNvbG4gQXZlCisJCQkJQWx0YWRlbmEgQ0EgOTEwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUUyICAgKGhleCkJCUFobkxhYixJbmMuCiswMDFCRTIgICAgIChiYXNlIDE2KQkJQWhuTGFiLEluYy4KKwkJCQk2dGggRmwsIENDTU0gQmxkZywgMTIgWWVvdWlkby1kb25nCisJCQkJU2VvdWwgIDE1MDg2OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi1FMyAgIChoZXgpCQlIZWFsdGggSGVybyBOZXR3b3JrLCBJbmMuCiswMDFCRTMgICAgIChiYXNlIDE2KQkJSGVhbHRoIEhlcm8gTmV0d29yaywgSW5jLgorCQkJCTIwMDAgU2VhcG9ydCBCbHZkLgorCQkJCVN1aXRlIDQwMAorCQkJCVJlZHdvb2QgQ2l0eSBDQSA5NDA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItRTQgICAoaGV4KQkJVE9XTkVUIFNSTAorMDAxQkU0ICAgICAoYmFzZSAxNikJCVRPV05FVCBTUkwKKwkJCQlWSUEgREVJIEZJTkFMRSwgMjAKKwkJCQk2MTA0MyBDQUdMSSAoUFUpIAorCQkJCUlUQUxZCisKKzAwLTFCLUU1ICAgKGhleCkJCTgwMmF1dG9tYXRpb24gTGltaXRlZAorMDAxQkU1ICAgICAoYmFzZSAxNikJCTgwMmF1dG9tYXRpb24gTGltaXRlZAorCQkJCTE4IEZpcnN0IEF2ZW51ZQorCQkJCVdvcnRoaW5nIFdlc3QgU3Vzc2V4IEJOMTQgOU5KCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUItRTYgICAoaGV4KQkJVlIgQUcKKzAwMUJFNiAgICAgKGJhc2UgMTYpCQlWUiBBRworCQkJCVL8dGlzdHJhc3NlIDE4CisJCQkJU2NobGllcmVuICBDSC04OTUyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUItRTcgICAoaGV4KQkJUG9zdGVrIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxQkU3ICAgICAoYmFzZSAxNikJCVBvc3RlayBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQlTdWl0ZSA1MTAsIFNoYW5naGFuZyBCdWlsZGluZworCQkJCUhvbmdsaSBSb2FkCisJCQkJU2hlbiBaaGVuIEd1YW5nIERvbmcgNTE4MDI4CisJCQkJQ0hJTkEKKworMDAtMUItRTggICAoaGV4KQkJVWx0cmF0cm9uaWsgR21iSAorMDAxQkU4ICAgICAoYmFzZSAxNikJCVVsdHJhdHJvbmlrIEdtYkgKKwkJCQlHZXdlcmJlc3RyLiA1MgorCQkJCUhlcnJzY2hpbmcgQmF2YXJpYSBELTgyMjExCisJCQkJR0VSTUFOWQorCiswMC0xQi1FOSAgIChoZXgpCQlCcm9hZGNvbSBDb3Jwb3JhdGlvbgorMDAxQkU5ICAgICAoYmFzZSAxNikJCUJyb2FkY29tIENvcnBvcmF0aW9uCisJCQkJMTYyMTUgQWx0b24gUGFya3dheQorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItRUEgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDFCRUEgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMUItRUIgICAoaGV4KQkJRE1QIEVsZWN0cm9uaWNzIElOQy4KKzAwMUJFQiAgICAgKGJhc2UgMTYpCQlETVAgRWxlY3Ryb25pY3MgSU5DLgorCQkJCThGLiwgTm8uMTIsIFd1Y3l1YW4gN3RoIFJkLgorCQkJCVd1Z3UgVG93bnNoaXAKKwkJCQlUYWlwZWkgQ291bnR5ICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLUVDICAgKGhleCkJCU5ldGlvIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorMDAxQkVDICAgICAoYmFzZSAxNikJCU5ldGlvIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCTRGLTEsIE5vLiA1ODIsIFJ1ZWlndWFuZyBSZC4sIE5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQ5MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItRUQgICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKzAwMUJFRCAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworCQkJCTE3NDUgVGVjaG5vbG9neSBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1FRSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxQkVFICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xQi1FRiAgIChoZXgpCQlCbG9zc29tcyBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMUJFRiAgICAgKGJhc2UgMTYpCQlCbG9zc29tcyBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQlCTEsyNSxIZW5nZmVuZyBJbmQuQ2l0eSxIZXpob3UKKwkJCQlYaXhpYW5nIFRvd24KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTI2CisJCQkJQ0hJTkEKKworMDAtMUItRjAgICAoaGV4KQkJVmFsdWUgUGxhdGZvcm1zIExpbWl0ZWQKKzAwMUJGMCAgICAgKGJhc2UgMTYpCQlWYWx1ZSBQbGF0Zm9ybXMgTGltaXRlZAorCQkJCVJtIDcxMi03MTMsIEJ1aWxkaW5nIDksIDUsIFNjaWVuY2UgUGFyayBXZXN0IEF2ZS4sCisJCQkJSG9uZyBLb25nIFNjaWVuY2UgUGFyaywKKwkJCQlTaGF0aW4sICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUItRjEgICAoaGV4KQkJTmFuamluZyBTaWx2ZXJOZXQgU29mdHdhcmUgQ28uLCBMdGQuCiswMDFCRjEgICAgIChiYXNlIDE2KQkJTmFuamluZyBTaWx2ZXJOZXQgU29mdHdhcmUgQ28uLCBMdGQuCisJCQkJMy9GLCAxMCBidWlsZGluZywgTmFuamluZyBXb3JsZCBXaW5kb3cgVGVjaG5vbG9neSAmIFNvZnR3YXJlIFBhcmsKKwkJCQkxMiBEaW5nSHVhaU1lbiwgR3Vsb3UgRGlzdHJpY3QsIE5hbmppbmcKKwkJCQlOYW5qaW5nIEppYW5nc3UgMjEwMDEzCisJCQkJQ0hJTkEKKworMDAtMUItRjIgICAoaGV4KQkJS1dPUkxEIENPTVBVVEVSIENPLiwgTFRECiswMDFCRjIgICAgIChiYXNlIDE2KQkJS1dPUkxEIENPTVBVVEVSIENPLiwgTFRECisJCQkJTm8uIDExMywgSmlhbiAybmQgUmQuLAorCQkJCUpob25naGUgVGFpcGVpIGNvdW50eSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLUYzICAgKGhleCkJCVRSQU5TUkFESU8gU2VuZGVyU3lzdGVtZSBCZXJsaW4gQUcKKzAwMUJGMyAgICAgKGJhc2UgMTYpCQlUUkFOU1JBRElPIFNlbmRlclN5c3RlbWUgQmVybGluIEFHCisJCQkJTWVydGVuc3N0cmFzc2UgNjMKKwkJCQlCZXJsaW4gMTM1ODcKKwkJCQlHRVJNQU5ZCisKKzAwLTFCLUY0ICAgKGhleCkJCUtFTldJTiBJTkRVU1RSSUFMKEhLKSBMVEQuCiswMDFCRjQgICAgIChiYXNlIDE2KQkJS0VOV0lOIElORFVTVFJJQUwoSEspIExURC4KKwkJCQlSTS4xNTEyIDE1L0YgU0hBVElOIEdBTExFUklBCisJCQkJMTgtMjQgU0hBTiBNRUkgU1QsIEZPVEFOCisJCQkJSE9ORyBLT05HCisKKzAwLTFCLUY1ICAgKGhleCkJCVRlbGxpbmsgU2lzdGVtYXMgZGUgVGVsZWNvbXVuaWNhY2nzbiBTLkwuCiswMDFCRjUgICAgIChiYXNlIDE2KQkJVGVsbGluayBTaXN0ZW1hcyBkZSBUZWxlY29tdW5pY2FjafNuIFMuTC4KKwkJCQlDLyBNYXLtYSBUdWJhdSBOuiA1IEJham8gQgorCQkJCU1hZHJpZCAgMjgwNTAKKwkJCQlTUEFJTgorCiswMC0xQi1GNiAgIChoZXgpCQlDT05XSVNFIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTHRkLgorMDAxQkY2ICAgICAoYmFzZSAxNikJCUNPTldJU0UgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbiBMdGQuCisJCQkJMkYgTm8uNDQsIFBhcmsgQXZlLiAyLCBIc2luY2h1IFNjaWVuY2UgUGFyaworCQkJCUhzaW5jaHUgQ2l0eSAgMzAwNzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLUY3ICAgKGhleCkJCUx1bmQgSVAgUHJvZHVjdHMgQUIKKzAwMUJGNyAgICAgKGJhc2UgMTYpCQlMdW5kIElQIFByb2R1Y3RzIEFCCisJCQkJRGFsYnl2LiAxCisJCQkJTHVuZCBTa2FuZSAyMjQgNjAKKwkJCQlTV0VERU4KKworMDAtMUItRjggICAoaGV4KQkJRGlnaXRyYXggSW5jLgorMDAxQkY4ICAgICAoYmFzZSAxNikJCURpZ2l0cmF4IEluYy4KKwkJCQkyNDQzIFRyYW5zbWl0dGVyIFJkLAorCQkJCVN1aXRlIDIwNgorCQkJCVBhbmFtYSBDaXR5IEZMIDMyNDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1GOSAgIChoZXgpCQlJbnRlbGxpdGVjdCBXYXRlciBMdGQKKzAwMUJGOSAgICAgKGJhc2UgMTYpCQlJbnRlbGxpdGVjdCBXYXRlciBMdGQKKwkJCQlTdWl0ZSAxOSwgQmFzZXBvaW50IEJ1c2luZXNzIENlbnRyZQorCQkJCUF2aWF0aW9uIFBhcmsgV2VzdAorCQkJCUNocmlzdGNodXJjaCBEb3JzZXQgQkgyMyBeTlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQi1GQSAgIChoZXgpCQlHLmkuTi4gbWJICiswMDFCRkEgICAgIChiYXNlIDE2KQkJRy5pLk4uIG1iSAorCQkJCVJhaWZmZWlzZW5zdHIuIDE1CisJCQkJR3JpZXNoZWltIEhlc3NlbiA2NDM0NworCQkJCUdFUk1BTlkKKworMDAtMUItRkIgICAoaGV4KQkJQWxwcyBFbGVjdHJpYyBDby4sIEx0ZAorMDAxQkZCICAgICAoYmFzZSAxNikJCUFscHMgRWxlY3RyaWMgQ28uLCBMdGQKKwkJCQkxLTItMSwgT2tpbm91Y2hpCisJCQkJU29tYS1jaXR5IEZ1a3VzaGltYS0tcHJlZiA5NzYtODUwMQorCQkJCUpBUEFOCisKKzAwLTFCLUZDICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorMDAxQkZDICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItRkQgICAoaGV4KQkJRGlnbnN5cyBJbmMuCiswMDFCRkQgICAgIChiYXNlIDE2KQkJRGlnbnN5cyBJbmMuCisJCQkJMTRGLCBEaWdpdGFsIEVtcGlyZSBCbGRnLiwgQi0xNDA4CisJCQkJWWVvbmd0b25nLWd1LAorCQkJCVN1d29uIEd5ZW9uZ2dpLWRvIDQ0My04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItRkUgICAoaGV4KQkJWmF2aW8gSW5jLgorMDAxQkZFICAgICAoYmFzZSAxNikJCVphdmlvIEluYy4KKwkJCQlOby4xLExpc2luZyAxc3QgUmQuIFNjaWVuY2UgQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItRkYgICAoaGV4KQkJTWlsbGVubmlhIE1lZGlhIGluYy4KKzAwMUJGRiAgICAgKGJhc2UgMTYpCQlNaWxsZW5uaWEgTWVkaWEgaW5jLgorCQkJCTQyMDAgRGF5IFNwcmluZyBDVAorCQkJCVBsYWNlcnZpbGxlIENBIDk1NjY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0wMCAgIChoZXgpCQlFbnRyeSBQb2ludCwgTExDCiswMDFDMDAgICAgIChiYXNlIDE2KQkJRW50cnkgUG9pbnQsIExMQworCQkJCVAuTy4gQm94IDMzNTQKKwkJCQk5MzAgRWFzdCBMaW5jb2xuIFJvYWQKKwkJCQlJZGFobyBGYWxscyBJZGFobyA4MzQwMy0zMzU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0wMSAgIChoZXgpCQlBQkIgT3kgRHJpdmVzCiswMDFDMDEgICAgIChiYXNlIDE2KQkJQUJCIE95IERyaXZlcworCQkJCUhpb21vdGllIDEzCisJCQkJSGVsc2lua2kgIEZJLTAwMzgwCisJCQkJRklOTEFORAorCiswMC0xQy0wMiAgIChoZXgpCQlQYW5vIExvZ2ljCiswMDFDMDIgICAgIChiYXNlIDE2KQkJUGFubyBMb2dpYworCQkJCTIwMDAgU2VhcG9ydCBEcml2ZSwgU3VpdGUgMjAwCisJCQkJU3VpdGUgMjAwCisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0wMyAgIChoZXgpCQlCZXR0eSBUViBUZWNobm9sb2d5IEFHCiswMDFDMDMgICAgIChiYXNlIDE2KQkJQmV0dHkgVFYgVGVjaG5vbG9neSBBRworCQkJCUhhcmR0dXJtc3RyYXNzZSAyCisJCQkJWnVyaWNoICA4MDAwNQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFDLTA0ICAgKGhleCkJCUFpcmdhaW4sIEluYy4KKzAwMUMwNCAgICAgKGJhc2UgMTYpCQlBaXJnYWluLCBJbmMuCisJCQkJMTkzMCBQYWxvbWFyIFBvaW50IFdheQorCQkJCVN1aXRlIDEwNworCQkJCUNhcmxzYmFkIENBIDkyMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0wNSAgIChoZXgpCQlOb25pbiBNZWRpY2FsIEluYy4KKzAwMUMwNSAgICAgKGJhc2UgMTYpCQlOb25pbiBNZWRpY2FsIEluYy4KKwkJCQkxMzcwMCAxc3QgQXZlbnVlIE5vcnRoCisJCQkJUGx5bW91dGggTU4gNTU0NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTA2ICAgKGhleCkJCVNpZW1lbnMgTnVtZXJpY2FsIENvbnRyb2wgTHRkLiwgTmFuamluZworMDAxQzA2ICAgICAoYmFzZSAxNikJCVNpZW1lbnMgTnVtZXJpY2FsIENvbnRyb2wgTHRkLiwgTmFuamluZworCQkJCU5vLiAxOCBTaWVtZW5zIFJvYWQsIEppYW5nbmluZyBEZXZlbG9wbWVudCBab25lCisJCQkJTmFuamluZyBKaWFuZ1N1IDIxMTEwMAorCQkJCUNISU5BCisKKzAwLTFDLTA3ICAgKGhleCkJCUN3bGludXggTGltaXRlZAorMDAxQzA3ICAgICAoYmFzZSAxNikJCUN3bGludXggTGltaXRlZAorCQkJCVVuaXQgMTM4LCAxMy9GLCBXZXN3aWNrIENvbW1lcmNpYWwgQnVpbGRpbmcsCisJCQkJMTQ3LTE1MSBRdWVlbidzIFJvYWQgRWFzdCwKKwkJCQlXYW4gQ2hhaSAgCisJCQkJSE9ORyBLT05HCisKKzAwLTFDLTA4ICAgKGhleCkJCUVjaG8zNjAsIEluYy4KKzAwMUMwOCAgICAgKGJhc2UgMTYpCQlFY2hvMzYwLCBJbmMuCisJCQkJMjEwMDAgQXRsYW50aWMgQmx2ZAorCQkJCVN1aXRlIDYwMAorCQkJCUR1bGxlcyBWQSAyMDE2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMDkgICAoaGV4KQkJU0FFIEVsZWN0cm9uaWMgQ28uLEx0ZC4KKzAwMUMwOSAgICAgKGJhc2UgMTYpCQlTQUUgRWxlY3Ryb25pYyBDby4sTHRkLgorCQkJCTIzL0YsWWluZyBMb25nIFpoYW4gWWUgQnVpbGRpbmcsCisJCQkJTm8uNjAyNSwgU2hlbiBOYW4gUm9hZCxGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZyBEb25nIDUxODA0MAorCQkJCUNISU5BCisKKzAwLTFDLTBBICAgKGhleCkJCVNoZW56aGVuIEFFRSBUZWNobm9sb2d5IENvLixMdGQuCiswMDFDMEEgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQUVFIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQkxc3QgRmxvb3IgQiBCdWlsZGluZywgU2hlbnpoZW4sCisJCQkJVHNpbmdodWEgSGktVGVjaCBQYXJrLCBOYW5zaGFuIEhpLVRlY2ggUGFyayBOb3J0aCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMUMtMEIgICAoaGV4KQkJU21hcnRBbnQgVGVsZWNvbQorMDAxQzBCICAgICAoYmFzZSAxNikJCVNtYXJ0QW50IFRlbGVjb20KKwkJCQkyRiwgTm8uIDY2OSwgU2VjLiA0LCBDaHVuZyBIc2luZyBSZC4sIENodXR1bmcKKwkJCQlIc2luY2h1ICAzMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLTBDICAgKGhleCkJCVRBTklUQSBDb3Jwb3JhdGlvbgorMDAxQzBDICAgICAoYmFzZSAxNikJCVRBTklUQSBDb3Jwb3JhdGlvbgorCQkJCTEtMTQtMixNYWVuby1jaG8KKwkJCQlJdGFiYXNoaS1rdQorCQkJCVRva3lvICAxNzQtODYzMAorCQkJCUpBUEFOCisKKzAwLTFDLTBEICAgKGhleCkJCUctVGVjaG5vbG9neSwgSW5jLgorMDAxQzBEICAgICAoYmFzZSAxNikJCUctVGVjaG5vbG9neSwgSW5jLgorCQkJCTE2NTMgU3RhbmZvcmQgU3RyZWV0CisJCQkJU2FudGEgTW9uaWNhIENBIDkwNDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0wRSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFDMEUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMEYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQzBGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTEwICAgKGhleCkJCUNpc2NvLUxpbmtzeXMsIExMQworMDAxQzEwICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMsIExMQworCQkJCTEyMSBUaGVvcnkgRHJpdmUKKwkJCQlJcnZpbmUgQ2FsaWZvcm5pYSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMTEgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUMxMSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTEyICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDFDMTIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gVVMgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSWxsaW5vaXMgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTEzICAgKGhleCkJCU9QVFNZUyBURUNITk9MT0dZIENPLiwgTFRELgorMDAxQzEzICAgICAoYmFzZSAxNikJCU9QVFNZUyBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCVNVSVRFIEItODAyIEJVTkRBTkcgVEVDSE5PIFBBUksKKwkJCQlZQVRBUC1ET05HLCBCVU5EQU5HLUtVCisJCQkJU0VPTkdOQU0tU0kgR1lFT05HR0ktRE8gNDYzLTc2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy0xNCAgIChoZXgpCQlWTXdhcmUsIEluYworMDAxQzE0ICAgICAoYmFzZSAxNikJCVZNd2FyZSwgSW5jCisJCQkJMzQwMSBIaWxsdmlldyBBdmVudWUKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTE1ICAgKGhleCkJCVRYUCBDb3Jwb3JhdGlvbgorMDAxQzE1ICAgICAoYmFzZSAxNikJCVRYUCBDb3Jwb3JhdGlvbgorCQkJCTEyOTkgQ29tbWVyY2UgRHIuCisJCQkJUmljaGFyZHNvbiBUZXhhcyA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMTYgICAoaGV4KQkJVGh5c3NlbktydXBwIEVsZXZhdG9yCiswMDFDMTYgICAgIChiYXNlIDE2KQkJVGh5c3NlbktydXBwIEVsZXZhdG9yCisJCQkJOTI4MCBDcmVzdHd5biBIaWxscyBEcml2ZQorCQkJCU1lbXBoaXMgVE4gMzgxMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTE3ICAgKGhleCkJCU5vcnRlbAorMDAxQzE3ICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xQy0xOCAgIChoZXgpCQlTaWNlcnQgUy5yLkwuCiswMDFDMTggICAgIChiYXNlIDE2KQkJU2ljZXJ0IFMuci5MLgorCQkJCVZpYSBCZXJuYXJkaW5vIEFsaW1lbmEsIDEyOAorCQkJCVJvbWUgIDAwMTczCisJCQkJSVRBTFkKKworMDAtMUMtMTkgICAoaGV4KQkJc2VjdW5ldCBTZWN1cml0eSBOZXR3b3JrcyBBRworMDAxQzE5ICAgICAoYmFzZSAxNikJCXNlY3VuZXQgU2VjdXJpdHkgTmV0d29ya3MgQUcKKwkJCQlLcm9ucHJpbnplbnN0cmHfZSAzMAorCQkJCUVzc2VuIE5SVyA0NTEyOAorCQkJCUdFUk1BTlkKKworMDAtMUMtMUEgICAoaGV4KQkJVGhvbWFzIEluc3RydW1lbnRhdGlvbiwgSW5jCiswMDFDMUEgICAgIChiYXNlIDE2KQkJVGhvbWFzIEluc3RydW1lbnRhdGlvbiwgSW5jCisJCQkJMTMzIExhbmRpbmcgUmQKKwkJCQlDYXBlIE1heSBDb3VydCBIb3VzZSBOSiAwODIxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMUIgICAoaGV4KQkJSHlwZXJzdG9uZSBHbWJICiswMDFDMUIgICAgIChiYXNlIDE2KQkJSHlwZXJzdG9uZSBHbWJICisJCQkJTGluZS1FaWQtU3RyLiAzCisJCQkJS29uc3RhbnogQmFkZW4tV/xydHRlbWJlcmcgNzg0NjcKKwkJCQlHRVJNQU5ZCisKKzAwLTFDLTFDICAgKGhleCkJCUNlbnRlciBDb21tdW5pY2F0aW9uIFN5c3RlbXMgR21iSAorMDAxQzFDICAgICAoYmFzZSAxNikJCUNlbnRlciBDb21tdW5pY2F0aW9uIFN5c3RlbXMgR21iSAorCQkJCUlnbmF6LUtvZWNrLVN0cmFzc2UgMTkKKwkJCQlWaWVubmEgIEEtMTIxMAorCQkJCUFVU1RSSUEKKworMDAtMUMtMUQgICAoaGV4KQkJQ0hFTlpIT1UgR09TUEVMTCBESUdJVEFMIFRFQ0hOT0xPR1kgQ08uLExURAorMDAxQzFEICAgICAoYmFzZSAxNikJCUNIRU5aSE9VIEdPU1BFTEwgRElHSVRBTCBURUNITk9MT0dZIENPLixMVEQKKwkJCQlCQUlMVVRBTkcsU1VYSUFOIERJU1RSSUNULAorCQkJCUNIRU5aSE9VIEhVTkFOIDQyMzAyNQorCQkJCUNISU5BCisKKzAwLTFDLTFFICAgKGhleCkJCWVtdHJpb24gR21iSAorMDAxQzFFICAgICAoYmFzZSAxNikJCWVtdHJpb24gR21iSAorCQkJCUdyZXNjaGJhY2hzdHJhc3NlIDEyCisJCQkJS2FybHNydWhlIEJhZGVuIFd1ZXJ0dGVtYmVyZyA3NjIyOQorCQkJCUdFUk1BTlkKKworMDAtMUMtMUYgICAoaGV4KQkJUXVlc3QgUmV0YWlsIFRlY2hub2xvZ3kgUHR5IEx0ZAorMDAxQzFGICAgICAoYmFzZSAxNikJCVF1ZXN0IFJldGFpbCBUZWNobm9sb2d5IFB0eSBMdGQKKwkJCQkzNy0zOSBXYWxzaCBTdHJlZXQKKwkJCQlUaGViYXJ0b24gU0EgNTAzMQorCQkJCUFVU1RSQUxJQQorCiswMC0xQy0yMCAgIChoZXgpCQlDTEIgQmVuZWx1eAorMDAxQzIwICAgICAoYmFzZSAxNikJCUNMQiBCZW5lbHV4CisJCQkJUmFtZ2F0c2V3ZWcgMTcKKwkJCQlSYWFtc2RvbmtzdmVlciBOQlIgNDk0MSBWTgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTFDLTIxICAgKGhleCkJCU51Y3NhZmUgSW5jLgorMDAxQzIxICAgICAoYmFzZSAxNikJCU51Y3NhZmUgSW5jLgorCQkJCTYwMSBPYWsgUmlkZ2UgVHVybnBpa2UKKwkJCQlPYWsgUmlkZ2UgVGVubmVzc2VlIDM3ODMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0yMiAgIChoZXgpCQlBZXJpcyBFbGV0dHJvbmljYSBzLnIubC4KKzAwMUMyMiAgICAgKGJhc2UgMTYpCQlBZXJpcyBFbGV0dHJvbmljYSBzLnIubC4KKwkJCQlab25hIEluZC5sZSBWYWxsZWN1cGEKKwkJCQlDb2xvbm5lbGxhIFRlcmFtbyA2NDAxMAorCQkJCUlUQUxZCisKKzAwLTFDLTIzICAgKGhleCkJCURlbGwgSW5jCiswMDFDMjMgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksICBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0yNCAgIChoZXgpCQlGb3Jtb3NhIFdpcmVsZXNzIFN5c3RlbXMgQ29ycC4KKzAwMUMyNCAgICAgKGJhc2UgMTYpCQlGb3Jtb3NhIFdpcmVsZXNzIFN5c3RlbXMgQ29ycC4KKwkJCQlOby4gNDA4LCBHdWFuZG9uZyBSZC4sCisJCQkJSHNpbkNodSBDaXR5ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLTI1ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzAwMUMyNSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJNjYsQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy0yNiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCiswMDFDMjYgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCTY2LENodW5nIFNoYW4gUmQuVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtMjcgICAoaGV4KQkJU3VuZWxsIEVsZWN0cm9uaWNzIENvLgorMDAxQzI3ICAgICAoYmFzZSAxNikJCVN1bmVsbCBFbGVjdHJvbmljcyBDby4KKwkJCQkzcmQgRmxvb3IsQmxkZy41MTQsQmFHdWEgUmQKKwkJCQlGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ2RvbmcgNTE4MDI5CisJCQkJQ0hJTkEKKworMDAtMUMtMjggICAoaGV4KQkJU3BoYWlyb24gVGVjaG5vbG9naWVzIEdtYkggCiswMDFDMjggICAgIChiYXNlIDE2KQkJU3BoYWlyb24gVGVjaG5vbG9naWVzIEdtYkggCisJCQkJUGhpbGlwcC1SZWlzLVN0cmFzc2UgMQorCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisJCQkJQmF1dHplbiBTYXhvbnkgMDI2MjUgICAgCisJCQkJR0VSTUFOWQorCiswMC0xQy0yOSAgIChoZXgpCQlDT1JFIERJR0lUQUwgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKzAwMUMyOSAgICAgKGJhc2UgMTYpCQlDT1JFIERJR0lUQUwgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKwkJCQkxMDA2IyAxMDIgQ0hVTlVJVEVDSE5PUEFSSyAyMDAtMQorCQkJCUNIVU5VSS1ET05HLCBXT05NSS1HVQorCQkJCUJVQ0hFT04tQ0lUWSBHWVVOR0dJLURPIDQyMC04NTcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtMkEgICAoaGV4KQkJRW52aXNhY29yIFRlY2hub2xvZ2llcyBJbmMuCiswMDFDMkEgICAgIChiYXNlIDE2KQkJRW52aXNhY29yIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMTQ4NDUtNiBZb25nZSBTdHJlZXQsIFN1aXRlIDMxMAorCQkJCUF1cm9yYSBPTiBMNEcgNkg4CisJCQkJQ0FOQURBCisKKzAwLTFDLTJCICAgKGhleCkJCUFsZXJ0bWUuY29tIExpbWl0ZWQKKzAwMUMyQiAgICAgKGJhc2UgMTYpCQlBbGVydG1lLmNvbSBMaW1pdGVkCisJCQkJMjctMjggQnJpZGdlIFN0cmVldAorCQkJCUNhbWJyaWRnZSBDYW1icmlkZ2VzaGlyZSBDQjIgMVVKCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUMtMkMgICAoaGV4KQkJU3luYXBzZQorMDAxQzJDICAgICAoYmFzZSAxNikJCVN5bmFwc2UKKwkJCQkxMzIgRXhwb3J0IENpcmNsZQorCQkJCUh1bnRzdmlsbGUgQUwgMzU4MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTJEICAgKGhleCkJCUZsZXhSYWRpbyBTeXN0ZW1zCiswMDFDMkQgICAgIChiYXNlIDE2KQkJRmxleFJhZGlvIFN5c3RlbXMKKwkJCQk4OTAwIE1hcnliYW5rIERyLgorCQkJCUF1c3RpbiBUWCA3ODc1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMkUgICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorMDAxQzJFICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkCisJCQkJUm9zZXZpbGxlIENBIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0yRiAgIChoZXgpCQlQZmlzdGVyIEdtYkgKKzAwMUMyRiAgICAgKGJhc2UgMTYpCQlQZmlzdGVyIEdtYkgKKwkJCQlTdOR0emxpbmdlciBTdHJh32UgNzAKKwkJCQlBdWdzYnVyZyBCYXZhcmlhIDg2MTY1CisJCQkJR0VSTUFOWQorCiswMC0xQy0zMCAgIChoZXgpCQlNb2RlIExpZ2h0aW5nIChVSyApIEx0ZC4KKzAwMUMzMCAgICAgKGJhc2UgMTYpCQlNb2RlIExpZ2h0aW5nIChVSyApIEx0ZC4KKwkJCQlUaGUgTWFsdGluZ3MKKwkJCQk2MyBIaWdoIFN0cmVldAorCQkJCVdhcmUgSGVydGZvcmRzaGlyZSBTRzEyIDlBRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFDLTMxICAgKGhleCkJCU1vYmlsZSBYUCBUZWNobm9sb2d5IENvLiwgTFRECiswMDFDMzEgICAgIChiYXNlIDE2KQkJTW9iaWxlIFhQIFRlY2hub2xvZ3kgQ28uLCBMVEQKKwkJCQlSb29tIE5vLjI1MDYsVHJpLXRvd2VyIEMgYnVpbGRpbmcsTm8uNjajrFpob25nZ3VhbmN1biBFYXN0IFJvYWQsSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4MAorCQkJCUNISU5BCisKKzAwLTFDLTMyICAgKGhleCkJCVRlbGlhbiBDb3Jwb3JhdGlvbgorMDAxQzMyICAgICAoYmFzZSAxNikJCVRlbGlhbiBDb3Jwb3JhdGlvbgorCQkJCTRGTC4gTmFtamVvbiBCbGRnLiA1My0zIEhhYW5kb25nCisJCQkJS3dhbmdteXVuZ3NpIEt5b3VuZ2tpZG8gNDIzMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTMzICAgKGhleCkJCVN1dHJvbgorMDAxQzMzICAgICAoYmFzZSAxNikJCVN1dHJvbgorCQkJCTIxMzAwIFJpZGdldG9wIENpcgorCQkJCVN0ZXJsaW5nIFZBIDIwMTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0zNCAgIChoZXgpCQlIVUVZIENISUFPIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCiswMDFDMzQgICAgIChiYXNlIDE2KQkJSFVFWSBDSElBTyBJTlRFUk5BVElPTkFMIENPLiwgTFRELgorCQkJCTVGLCBOTy4gNjQ5LTEsCisJCQkJQ0hVTkcgQ0hFTkcgUkQuLAorCQkJCUhTSU4gQ0hVQU5HIENJVFkgVEFJUEVJIDI0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtMzUgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUMzNSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MFYKKwkJCQlERU5NQVJLCisKKzAwLTFDLTM2ICAgKGhleCkJCWlORVdpVCBOVgorMDAxQzM2ICAgICAoYmFzZSAxNikJCWlORVdpVCBOVgorCQkJCVNjaGFsaetuaG9ldmVkcmVlZiAyMEQKKwkJCQlNZWNoZWxlbiBBbnR3ZXJwIDI4MDAKKwkJCQlCRUxHSVVNCisKKzAwLTFDLTM3ICAgKGhleCkJCUNhbGxwb2QsIEluYy4KKzAwMUMzNyAgICAgKGJhc2UgMTYpCQlDYWxscG9kLCBJbmMuCisJCQkJODUwIFcuIEphY2tzb24KKwkJCQlTdWl0ZSAyNjAKKwkJCQlDaGljYWdvIElMIDYwNjA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0zOCAgIChoZXgpCQlCaW8tUmFkIExhYm9yYXRvcmllcywgSW5jLgorMDAxQzM4ICAgICAoYmFzZSAxNikJCUJpby1SYWQgTGFib3JhdG9yaWVzLCBJbmMuCisJCQkJMjQ1IFdpbnRlciBTdC4KKwkJCQlTdWl0ZSAxMDAKKwkJCQlXYWx0aGFtIE1BIDAyNDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0zOSAgIChoZXgpCQlTIE5ldHN5c3RlbXMgSW5jLgorMDAxQzM5ICAgICAoYmFzZSAxNikJCVMgTmV0c3lzdGVtcyBJbmMuCisJCQkJMTBGIFN1bmd3b24gQmxkZy4sIDE0MSBTYW1zdW5nLURvbmcKKwkJCQlLYW5nbmFtLUt1CisJCQkJU2VvdWwgIDEzNS03MTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtM0EgICAoaGV4KQkJRWxlbWVudCBMYWJzLCBJbmMuCiswMDFDM0EgICAgIChiYXNlIDE2KQkJRWxlbWVudCBMYWJzLCBJbmMuCisJCQkJMzM1MCBTY290dCBCb3VsZXZhcmQKKwkJCQlCdWlsZGluZyAjMgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0zQiAgIChoZXgpCQlBbVJvYWQgVGVjaG5vbG9neSBJbmMuCiswMDFDM0IgICAgIChiYXNlIDE2KQkJQW1Sb2FkIFRlY2hub2xvZ3kgSW5jLgorCQkJCTE4Ri0zIE5vLiAxNTAgLCBDaGllbiBJIFJkCisJCQkJQ2h1bmcgSG8gVGFpcGVpIEhzaWVuIDIzNTExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy0zQyAgIChoZXgpCQlTZW9uIERlc2lnbiBJbmMuCiswMDFDM0MgICAgIChiYXNlIDE2KQkJU2VvbiBEZXNpZ24gSW5jLgorCQkJCTExMS0zQiBCdXJiaWRnZSBTdHJlZXQKKwkJCQlDb3F1aXRsYW0gQkMgVjNLIDdCMgorCQkJCUNBTkFEQQorCiswMC0xQy0zRCAgIChoZXgpCQlXYXZlU3Rvcm0KKzAwMUMzRCAgICAgKGJhc2UgMTYpCQlXYXZlU3Rvcm0KKwkJCQk0MCBydWUgZCdPcmFkb3VyLXN1ci1HbGFuZQorCQkJCVBhcmlzIM5sZS1kZS1GcmFuY2UgNzUwMTUKKwkJCQlGUkFOQ0UKKworMDAtMUMtM0UgICAoaGV4KQkJRUNLZXkgTGltaXRlZAorMDAxQzNFICAgICAoYmFzZSAxNikJCUVDS2V5IExpbWl0ZWQKKwkJCQlQTyBCb3ggMTI4IDA1NworCQkJCVJlbXVlcmEKKwkJCQlBdWNrbGFuZCAgMTA1MAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTFDLTNGICAgKGhleCkJCUludGVybmF0aW9uYWwgUG9saWNlIFRlY2hub2xvZ2llcywgSW5jLgorMDAxQzNGICAgICAoYmFzZSAxNikJCUludGVybmF0aW9uYWwgUG9saWNlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTQxNTAgUy4gODd0aCBFLiBBdmVudWUKKwkJCQlUdWxzYSBPSyA3NDE0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNDAgICAoaGV4KQkJVkRHLVNlY3VyaXR5IGJ2CiswMDFDNDAgICAgIChiYXNlIDE2KQkJVkRHLVNlY3VyaXR5IGJ2CisJCQkJUmFkb25zdHJhYXQgMTAtMTQKKwkJCQlab2V0ZXJtZWVyIFpIIDI3MTggVEEKKwkJCQlORVRIRVJMQU5EUworCiswMC0xQy00MSAgIChoZXgpCQlzY2VtdGVjIFRyYW5zcG9uZGVyIFRlY2hub2xvZ3kgR21iSAorMDAxQzQxICAgICAoYmFzZSAxNikJCXNjZW10ZWMgVHJhbnNwb25kZXIgVGVjaG5vbG9neSBHbWJICisJCQkJR2V3ZXJiZXBhcmtzdHIuIDIwCisJCQkJUmVpY2hzaG9mIE5SVyA1MTU4MAorCQkJCUdFUk1BTlkKKworMDAtMUMtNDIgICAoaGV4KQkJUGFyYWxsZWxzLCBJbmMuCiswMDFDNDIgICAgIChiYXNlIDE2KQkJUGFyYWxsZWxzLCBJbmMuCisJCQkJNjYwIFNXIDM5aCBTdHJlZXQKKwkJCQlTdWl0ZSAyMDUKKwkJCQlSZW50b24gV0EgOTgwNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTQzICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAxQzQzICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy00NCAgIChoZXgpCQlCb3NjaCBTZWN1cml0eSBTeXN0ZW1zIEJWCiswMDFDNDQgICAgIChiYXNlIDE2KQkJQm9zY2ggU2VjdXJpdHkgU3lzdGVtcyBCVgorCQkJCUthcGl0dGVsd2VnIDEwCisJCQkJNDgyNyBIRyAgQnJlZGEgQnJhYmFudCA0ODI3CisJCQkJTkVUSEVSTEFORFMKKworMDAtMUMtNDUgICAoaGV4KQkJQ2hlbmJybyBNaWNvbSBDby4sIEx0ZC4KKzAwMUM0NSAgICAgKGJhc2UgMTYpCQlDaGVuYnJvIE1pY29tIENvLiwgTHRkLgorCQkJCTE1RmwuLCBOby4gMTUwLCBKaWFuIFlpIFJvYWQKKwkJCQlDaHVuZyBIbyBDaXR5IFRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLTQ2ICAgKGhleCkJCVFUVU0KKzAwMUM0NiAgICAgKGJhc2UgMTYpCQlRVFVNCisJCQkJIzUwNyBCeXVja3Nhbi9LeXVuZ2luIERpZ2l0YWwgVmFsbGV5IDIgNDgxLTEwCisJCQkJR2FzYW4tZG9uZyBHZXVtY2hlb24tZ3UKKwkJCQlTZW91bCAgMTUzLTc4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy00NyAgIChoZXgpCQlIYW5nemhvdSBIb2xseXN5cyBBdXRvbWF0aW9uIENvLiwgTHRkCiswMDFDNDcgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgSG9sbHlzeXMgQXV0b21hdGlvbiBDby4sIEx0ZAorCQkJCU5vLjEwIE1pZGRsZSBSb2FkLCBKaWFuY2FpY2hlbmcsIEhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDk2CisJCQkJQ0hJTkEKKworMDAtMUMtNDggICAoaGV4KQkJV2lEZUZpLCBJbmMuCiswMDFDNDggICAgIChiYXNlIDE2KQkJV2lEZUZpLCBJbmMuCisJCQkJMTMzMyBHYXRld2F5IEJsdmQKKwkJCQlTdWl0ZSAxMDEyCisJCQkJTWVsYm91cm5lIEZMIDMyOTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy00OSAgIChoZXgpCQlab2x0YW4gVGVjaG5vbG9neSBJbmMuCiswMDFDNDkgICAgIChiYXNlIDE2KQkJWm9sdGFuIFRlY2hub2xvZ3kgSW5jLgorCQkJCTRGLCBOby4zMCwgV3Vuc2kgU3QuCisJCQkJSmh1YmVpIEhzaW5jaHUgMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy00QSAgIChoZXgpCQlBVk0gR21iSAorMDAxQzRBICAgICAoYmFzZSAxNikJCUFWTSBHbWJICisJCQkJQWx0LU1vYWJpdCA5NQorCQkJCUJlcmxpbiAgMTA1NTkKKwkJCQlHRVJNQU5ZCisKKzAwLTFDLTRCICAgKGhleCkJCUdlbmVyOCwgSW5jLgorMDAxQzRCICAgICAoYmFzZSAxNikJCUdlbmVyOCwgSW5jLgorCQkJCTg5NyBJbmRlcGVuZGVuY2UgQXZlCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNEMgICAoaGV4KQkJUGV0cm90ZXN0IEluc3RydW1lbnRzCiswMDFDNEMgICAgIChiYXNlIDE2KQkJUGV0cm90ZXN0IEluc3RydW1lbnRzCisJCQkJTHVkd2lnLUVyaGFyZC1SaW5nIDEzCisJCQkJRGFobGV3aXR6IEJCRyAxNTgyNworCQkJCUdFUk1BTlkKKworMDAtMUMtNEQgICAoaGV4KQkJWmVldG9vLCBJbmMuCiswMDFDNEQgICAgIChiYXNlIDE2KQkJWmVldG9vLCBJbmMuCisJCQkJMTI4IEdyZWF0IFJvYWQKKwkJCQlCZWRmb3JkIE1BIDAxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy00RSAgIChoZXgpCQlUQVNBIEludGVybmF0aW9uYWwgTGltaXRlZAorMDAxQzRFICAgICAoYmFzZSAxNikJCVRBU0EgSW50ZXJuYXRpb25hbCBMaW1pdGVkCisJCQkJNUajrEJ1aWxkaW5nMqOsTm8uMTI5NSAsWGluIEppbnFpYW8gUm9hZCwKKwkJCQlTaGFuZ2hhaSAgMjAxMjA2CisJCQkJQ0hJTkEKKworMDAtMUMtNEYgICAoaGV4KQkJTUFDQUIgQUIKKzAwMUM0RiAgICAgKGJhc2UgMTYpCQlNQUNBQiBBQgorCQkJCVZhbm5o9mdzZ2F0YW4gNworCQkJCVRyZWxsZWJvcmcgIDIzMTY2CisJCQkJU1dFREVOCisKKzAwLTFDLTUwICAgKGhleCkJCVRDTCBUZWNobm9seSBFbGVjdHJvbmljcyhIdWl6aG91KUNvLixMdGQKKzAwMUM1MCAgICAgKGJhc2UgMTYpCQlUQ0wgVGVjaG5vbHkgRWxlY3Ryb25pY3MoSHVpemhvdSlDby4sTHRkCisJCQkJMTAvRiwgQmxvY2sgQSAsIFRDTCBUb3dlcgorCQkJCTEgR2FveGluIE5hbiBSb2FkLCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTFDLTUxICAgKGhleCkJCUNlbGVubyBDb21tdW5pY2F0aW9ucworMDAxQzUxICAgICAoYmFzZSAxNikJCUNlbGVubyBDb21tdW5pY2F0aW9ucworCQkJCTIyIFphcmhpbiBTdHJlZXQKKwkJCQlSYSdhbmFuYSAgNDM2NjUKKwkJCQlJU1JBRUwKKworMDAtMUMtNTIgICAoaGV4KQkJVklTSU9ORUUgU1JMCiswMDFDNTIgICAgIChiYXNlIDE2KQkJVklTSU9ORUUgU1JMCisJCQkJVklBTEUgREVMTEEgUkVQVUJCTElDQSwgMjIKKwkJCQlWSUxMT1JCQSBUUkVWSVNPIDMxMDUwCisJCQkJSVRBTFkKKworMDAtMUMtNTMgICAoaGV4KQkJU3luZXJneSBMaWdodGluZyBDb250cm9scworMDAxQzUzICAgICAoYmFzZSAxNikJCVN5bmVyZ3kgTGlnaHRpbmcgQ29udHJvbHMKKwkJCQlPbmUgTGl0aG9uaWEgV2F5CisJCQkJQ29ueWVycyBHQSAzMDAxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNTQgICAoaGV4KQkJSGlsbHN0b25lIE5ldHdvcmtzIEluYworMDAxQzU0ICAgICAoYmFzZSAxNikJCUhpbGxzdG9uZSBOZXR3b3JrcyBJbmMKKwkJCQlBLTE5MDUgZS1XaW5nIENlbnRlcgorCQkJCVpoaWNodW4gUm9hZCwgSGFpZGlhbgorCQkJCUJlaWppbmcgIDEwMDA4NgorCQkJCUNISU5BCisKKzAwLTFDLTU1ICAgKGhleCkJCVNoZW56aGVuIEthaWZhIFRlY2hub2xvZ3kgQ28uCiswMDFDNTUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gS2FpZmEgVGVjaG5vbG9neSBDby4KKwkJCQk3MDA2IENhaXRpYW4gUm9hZCwgRnV0aWFuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMzUKKwkJCQlDSElOQQorCiswMC0xQy01NiAgIChoZXgpCQlQYWRvIFN5c3RlbXMsIEluYy4KKzAwMUM1NiAgICAgKGJhc2UgMTYpCQlQYWRvIFN5c3RlbXMsIEluYy4KKwkJCQkjNzA2IExvYWRsYW5kIEVaIFRvd2VyIDE1MworCQkJCUd1bWktRG9uZywgQnVuZGFuZy1HdQorCQkJCVN1bmdOYW0gR3l1bmcgZ2ktRG8gNDYzLTgxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy01NyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFDNTcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNTggICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQzU4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTU5ICAgKGhleCkJCURFVk9OIElUCiswMDFDNTkgICAgIChiYXNlIDE2KQkJREVWT04gSVQKKwkJCQkxMTAwIEZJUlNUIEFWRU5VRQorCQkJCVNVSVRFIDEwMAorCQkJCUtJTkcgT0YgUFJVU1NJQSBQQSAxOTQwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNUEgICAoaGV4KQkJQWR2YW5jZWQgUmVsYXkgQ29ycG9yYXRpb24KKzAwMUM1QSAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBSZWxheSBDb3Jwb3JhdGlvbgorCQkJCTE4OTYgQ29sdW1iaWEgU3QKKwkJCQlFdWdlbmUgT1IgOTc0MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTVCICAgKGhleCkJCUNodWJiIEVsZWN0cm9uaWMgU2VjdXJpdHkgU3lzdGVtcyBMdGQKKzAwMUM1QiAgICAgKGJhc2UgMTYpCQlDaHViYiBFbGVjdHJvbmljIFNlY3VyaXR5IFN5c3RlbXMgTHRkCisJCQkJU2hhZHN3b3J0aCBSb2FkCisJCQkJQmxhY2tidXJuIExhbmNhc2hpcmUgQkIxIDJQUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFDLTVDICAgKGhleCkJCUludGVncmF0ZWQgTWVkaWNhbCBTeXN0ZW1zLCBJbmMuCiswMDFDNUMgICAgIChiYXNlIDE2KQkJSW50ZWdyYXRlZCBNZWRpY2FsIFN5c3RlbXMsIEluYy4KKwkJCQkxOTg0IE9iaXNwbyBBdmVudWUKKwkJCQlTaWduYWwgSGlsbCBDQSA5MDc1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNUQgICAoaGV4KQkJTGVpY2EgTWljcm9zeXN0ZW1zCiswMDFDNUQgICAgIChiYXNlIDE2KQkJTGVpY2EgTWljcm9zeXN0ZW1zCisJCQkJUE9Cb3ggODAKKwkJCQk1MTUgQ29sZGhhbXMgTGFuZQorCQkJCUNhbWJyaWRnZSAgQ0IxIDNZWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFDLTVFICAgKGhleCkJCUFTVE9OIEZyYW5jZQorMDAxQzVFICAgICAoYmFzZSAxNikJCUFTVE9OIEZyYW5jZQorCQkJCTE1MSBBdmVudWUgR2FsbGllbmkKKwkJCQlCQUdOT0xFVCBpbGUgZGUgZnJhbmNlIDkzMTc3CisJCQkJRlJBTkNFCisKKzAwLTFDLTVGICAgKGhleCkJCVdpbmxhbmQgRWxlY3Ryb25pY3MsIEluYy4KKzAwMUM1RiAgICAgKGJhc2UgMTYpCQlXaW5sYW5kIEVsZWN0cm9uaWNzLCBJbmMuCisJCQkJMTk1MCBFeGNlbCBEcml2ZQorCQkJCU1hbmthdG8gTU4gNTYwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTYwICAgKGhleCkJCUNTUCBGcm9udGllciBUZWNobm9sb2dpZXMsSW5jLgorMDAxQzYwICAgICAoYmFzZSAxNikJCUNTUCBGcm9udGllciBUZWNobm9sb2dpZXMsSW5jLgorCQkJCTMtMi0zLFNhc2F6dWthCisJCQkJU2hpYnV5YS1rdSBUb2t5byAxNTEtMDA3MworCQkJCUpBUEFOCisKKzAwLTFDLTYxICAgKGhleCkJCUdhbGF4eSBUZWNobm9sb2d5IChISykgTHRkLgorMDAxQzYxICAgICAoYmFzZSAxNikJCUdhbGF4eSBUZWNobm9sb2d5IChISykgTHRkLgorCQkJCVVuaXQgODAyLCA4L0YsIFNodWkgSGluZyBDZW50cmUsIDEzIFNoZXVuZyBZdWV0IFJvYWQsCisJCQkJS293bG9vbiBCYXkgIEtsbi4sIAorCQkJCUhPTkcgS09ORworCiswMC0xQy02MiAgIChoZXgpCQlMRyBFbGVjdHJvbmljcyBJbmMKKzAwMUM2MiAgICAgKGJhc2UgMTYpCQlMRyBFbGVjdHJvbmljcyBJbmMKKwkJCQk2MC0zOSwgR2FzYW4tRG9uZworCQkJCUt1bWNob24tR3UKKwkJCQlTZW91bCAgMTUzLTAyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy02MyAgIChoZXgpCQlUUlVFTgorMDAxQzYzICAgICAoYmFzZSAxNikJCVRSVUVOCisJCQkJNEYgU0FNV09OIEJMREcuLCA0NTEtNworCQkJCSBCQU5HQkFFLURPTkcsIFNFT0NITy1HVQorCQkJCVNFT1VMICAxMzctODE4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTY0ICAgKGhleCkJCUNlbGxuZXQrSHVudAorMDAxQzY0ICAgICAoYmFzZSAxNikJCUNlbGxuZXQrSHVudAorCQkJCTY0MzYgQ291bnR5IFJvYWQgMTEKKwkJCQlQZXF1b3QgTGFrZXMgTWlubmVzb3RhIDU2NDcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy02NSAgIChoZXgpCQlKb2VTY2FuLCBJbmMuCiswMDFDNjUgICAgIChiYXNlIDE2KQkJSm9lU2NhbiwgSW5jLgorCQkJCTExOSBFIDh0aCBTdC4KKwkJCQlWYW5jb3V2ZXIgV0EgOTg2NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTY2ICAgKGhleCkJCVVDQU1QIENPLixMVEQKKzAwMUM2NiAgICAgKGJhc2UgMTYpCQlVQ0FNUCBDTy4sTFRECisJCQkJIzEwMTUsIEtvbG9uIFNjaWVuY2UgVmFsbGV5IKWxCisJCQkJU2VvdWwgR3Vyby1Eb25nLEd1cm8tZ3UsIDE1Mi04NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtNjcgICAoaGV4KQkJUHVtcGtpbiBOZXR3b3JrcywgSW5jLgorMDAxQzY3ICAgICAoYmFzZSAxNikJCVB1bXBraW4gTmV0d29ya3MsIEluYy4KKwkJCQkzRkwgSnVuZ0hvIEJsZGcsIDEwOC00IFNhbmdkby1Eb25nLCBEb25namFrLUd1CisJCQkJU0VPVUwgIDE1Ni0wMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtNjggICAoaGV4KQkJQW5odWkgU3VuIENyZWF0ZSBFbGVjdHJvbmljcyBDby4sIEx0ZAorMDAxQzY4ICAgICAoYmFzZSAxNikJCUFuaHVpIFN1biBDcmVhdGUgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKwkJCQlOTy4xOTkgWGlhbmd6aGFuZyBSb2FkCisJCQkJSGVmZWkgQW5odWkgMjMwMDg4CisJCQkJQ0hJTkEKKworMDAtMUMtNjkgICAoaGV4KQkJUGFja2V0IFZpc2lvbiBMdGQKKzAwMUM2OSAgICAgKGJhc2UgMTYpCQlQYWNrZXQgVmlzaW9uIEx0ZAorCQkJCVNDIEhvdXNlCisJCQkJVmFud2FsbCBSb2FkCisJCQkJTWFpZGVuaGVhZCBCZXJrcyBTTDYgNFVCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUMtNkEgICAoaGV4KQkJV2Vpc3MgRW5naW5lZXJpbmcgTHRkLgorMDAxQzZBICAgICAoYmFzZSAxNikJCVdlaXNzIEVuZ2luZWVyaW5nIEx0ZC4KKwkJCQlGbG9yYXN0cmFzc2UgNDIKKwkJCQlVc3RlciBaSCA4NjEwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUMtNkIgICAoaGV4KQkJQ09WQVggIENvLiBMdGQKKzAwMUM2QiAgICAgKGJhc2UgMTYpCQlDT1ZBWCAgQ28uIEx0ZAorCQkJCTMtMjctMjIga2l0YWhhbmFkYS1jaG8ga2l0YWt1CisJCQkJc2FrYWktc2hpIG9vc2FrYSA1OTEtODAwMgorCQkJCUpBUEFOCisKKzAwLTFDLTZDICAgKGhleCkJCUphYmlsIENpcmN1aXQgKEd1YW5nemhvdSkgTGltaXRlZAorMDAxQzZDICAgICAoYmFzZSAxNikJCUphYmlsIENpcmN1aXQgKEd1YW5nemhvdSkgTGltaXRlZAorCQkJCTEyOCwgSnVuIENoZW5nIFJvYWQsdWFuZ3pob3UgRWNvbm9taWMgYW5kIFRlY2hub2xvZ2ljYWwgRGV2ZWxvcG1lbnQgRGlzdHJpY3QKKwkJCQlHdWFuZ2RvbmcgUHJvdmluY2UKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDUzMAorCQkJCUNISU5BCisKKzAwLTFDLTZEICAgKGhleCkJCUtZT0hSSVRTVSBFTEVDVFJPTklDIElORFVTVFJZIENPLiwgTFRELgorMDAxQzZEICAgICAoYmFzZSAxNikJCUtZT0hSSVRTVSBFTEVDVFJPTklDIElORFVTVFJZIENPLiwgTFRELgorCQkJCTItNS0xLCBOSVBQT05CQVNISS1OSVNISSwKKwkJCQlOQU5JV0EtS1UKKwkJCQlPU0FLQSAgNTU2LTAwMDQKKwkJCQlKQVBBTgorCiswMC0xQy02RSAgIChoZXgpCQlOZXdidXJ5IE5ldHdvcmtzLCBJbmMuCiswMDFDNkUgICAgIChiYXNlIDE2KQkJTmV3YnVyeSBOZXR3b3JrcywgSW5jLgorCQkJCTQxOSBCb3lsc3RvbiBTdHJlZXQKKwkJCQlCb3N0b24gTUEgMDIxMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTZGICAgKGhleCkJCUVtZml0IEx0ZAorMDAxQzZGICAgICAoYmFzZSAxNikJCUVtZml0IEx0ZAorCQkJCUtvbnR0aXNlbnRpZSA4IEIKKwkJCQlWYWFqYWtvc2tpICA0MDgwMAorCQkJCUZJTkxBTkQKKworMDAtMUMtNzAgICAoaGV4KQkJTk9WQUNPTU0gTFREQQorMDAxQzcwICAgICAoYmFzZSAxNikJCU5PVkFDT01NIExUREEKKwkJCQlSVUEgQkVJSlVJLCA3MAorCQkJCVNBTlRPIEFNQVJPCisJCQkJU0FPIFBBVUxPICAwNDY4OS0wMDAKKwkJCQlCUkFaSUwKKworMDAtMUMtNzEgICAoaGV4KQkJRW1lcmdlbnQgRWxlY3Ryb25pY3MKKzAwMUM3MSAgICAgKGJhc2UgMTYpCQlFbWVyZ2VudCBFbGVjdHJvbmljcworCQkJCUJsZGcgMiBMZXZlbCAzIFN1aXRlIDMwNQorCQkJCTI1OTEgV2V4Zm9yZC1CYXluZSBSb2FkCisJCQkJU2V3aWNrbGV5IFBBIDE1MTQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy03MiAgIChoZXgpCQlNYXllciAmIENpZSBHbWJIICYgQ28gS0cKKzAwMUM3MiAgICAgKGJhc2UgMTYpCQlNYXllciAmIENpZSBHbWJIICYgQ28gS0cKKwkJCQlFbWlsIE1heWVyIFN0cmFzc2UgMTAKKwkJCQlBbGJzdGFkdCBCYWRlbiBX/HJ0dGVtYmVyZyA3MjQ2MQorCQkJCUdFUk1BTlkKKworMDAtMUMtNzMgICAoaGV4KQkJQXJpc3RhIE5ldHdvcmtzLCBJbmMuCiswMDFDNzMgICAgIChiYXNlIDE2KQkJQXJpc3RhIE5ldHdvcmtzLCBJbmMuCisJCQkJMjc1IE1pZGRsZWZpZWxkIFJvYWQsIFN0ZSA1MAorCQkJCU1lbmxvIFBhcmsgQ2FsaWZvcm5pYSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNzQgICAoaGV4KQkJU3lzd2FuIFRlY2hub2xvZ2llcyBJbmMuCiswMDFDNzQgICAgIChiYXNlIDE2KQkJU3lzd2FuIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMjA1MCBCZWF2ZXJjcmVlayBSb2FkCisJCQkJU3VpdGUgMTAxICMzODgKKwkJCQlPcmVnb24gQ2l0eSBPcmVnb24gOTcwNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTc1ICAgKGhleCkJCVJGIFN5c3RlbXMgR21iSAorMDAxQzc1ICAgICAoYmFzZSAxNikJCVJGIFN5c3RlbXMgR21iSAorCQkJCUVpbnN0ZWluc3RyYd9lIDExCisJCQkJVmllcm5oZWltIEhlc3NlbiBEIDY4NTE5CisJCQkJR0VSTUFOWQorCiswMC0xQy03NiAgIChoZXgpCQlUaGUgV2FuZHN3b3J0aCBHcm91cCBMdGQKKzAwMUM3NiAgICAgKGJhc2UgMTYpCQlUaGUgV2FuZHN3b3J0aCBHcm91cCBMdGQKKwkJCQlBbGJlcnQgRHJpdmUKKwkJCQlTaGVlcndhdGVyCisJCQkJV29raW5nIFN1cnJleSBHVTIxIDVTRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFDLTc3ICAgKGhleCkJCVByb2R5cworMDAxQzc3ICAgICAoYmFzZSAxNikJCVByb2R5cworCQkJCUMvVHJpZ28gNTQgUG9sLiBJbmQuIFBvbHZvcmFuY2EKKwkJCQlMZWdhbmVzIE1BRFJJRCAyODkxNAorCQkJCVNQQUlOCisKKzAwLTFDLTc4ICAgKGhleCkJCVdZUExBWSBTQVMKKzAwMUM3OCAgICAgKGJhc2UgMTYpCQlXWVBMQVkgU0FTCisJCQkJMjAwIGF2ZW51ZSBkZSBQcm92ZW5jZQorCQkJCUFMTEFVQ0ggQmRSIDEzMTkwCisJCQkJRlJBTkNFCisKKzAwLTFDLTc5ICAgKGhleCkJCUNvaGVzaXZlIEZpbmFuY2lhbCBUZWNobm9sb2dpZXMgTExDCiswMDFDNzkgICAgIChiYXNlIDE2KQkJQ29oZXNpdmUgRmluYW5jaWFsIFRlY2hub2xvZ2llcyBMTEMKKwkJCQkyMDAgU291dGggV2Fja2VyIERyLgorCQkJCVN1aXRlIDE1MDAKKwkJCQlDaGljYWdvIElMIDYwNjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy03QSAgIChoZXgpCQlQZXJmZWN0b25lIE5ldHdhcmUgQ29tcGFueSBMdGQKKzAwMUM3QSAgICAgKGJhc2UgMTYpCQlQZXJmZWN0b25lIE5ldHdhcmUgQ29tcGFueSBMdGQKKwkJCQlVbml0IDgxNSwgU3VuIEZ1bmcgQ2VudHJlLAorCQkJCUt3b2sgU2h1aSBSZCwKKwkJCQlLd2FpIENodW5nICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUMtN0IgICAoaGV4KQkJQ2FzdGxlbmV0IFRlY2hub2xvZ3kgSW5jLgorMDAxQzdCICAgICAoYmFzZSAxNikJCUNhc3RsZW5ldCBUZWNobm9sb2d5IEluYy4KKwkJCQlOby42NCwgQ2h1bmctU2hhbiBSZC4KKwkJCQlUdS1DaGVuZyBDaXR5IFRhaXBlaSAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLTdDICAgKGhleCkJCVBFUlEgU1lTVEVNUyBDT1JQT1JBVElPTgorMDAxQzdDICAgICAoYmFzZSAxNikJCVBFUlEgU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCTI2MDAgTElCRVJFVFkgQVZFTlVFCisJCQkJUC5PLiBCT1ggMjYwMAorCQkJCVBJVFRTQlVSR0ggUEEgMTUyMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTdEICAgKGhleCkJCUV4Y2VscG9pbnQgTWFudWZhY3R1cmluZyBQdGUgTHRkCiswMDFDN0QgICAgIChiYXNlIDE2KQkJRXhjZWxwb2ludCBNYW51ZmFjdHVyaW5nIFB0ZSBMdGQKKwkJCQkxNSwgQ2hhbmdpIEJ1c2luZXNzIFBhcmsKKwkJCQlDZW50cmFsIDEsIDV0aCBMZXZlbAorCQkJCTQ4NjA1NworCQkJCVNJTkdBUE9SRQorCiswMC0xQy03RSAgIChoZXgpCQlUb3NoaWJhCiswMDFDN0UgICAgIChiYXNlIDE2KQkJVG9zaGliYQorCQkJCTItOSxTdWVoaXJvLUNobworCQkJCU9tZSBUb2t5byAxOTg4NzEwCisJCQkJSkFQQU4KKworMDAtMUMtN0YgICAoaGV4KQkJQ2hlY2sgUG9pbnQgU29mdHdhcmUgVGVjaG5vbG9naWVzCiswMDFDN0YgICAgIChiYXNlIDE2KQkJQ2hlY2sgUG9pbnQgU29mdHdhcmUgVGVjaG5vbG9naWVzCisJCQkJM0EgSmFib3RpbnNreSBTdC4KKwkJCQlEaWFtb25kIFRvd2VyCisJCQkJUmFtYXQgR2FuICA1MjUyMAorCQkJCUlTUkFFTAorCiswMC0xQy04MCAgIChoZXgpCQlOZXcgQnVzaW5lc3MgRGl2aXNpb24vUmhlYS1JbmZvcm1hdGlvbiBDTy4sIExURC4KKzAwMUM4MCAgICAgKGJhc2UgMTYpCQlOZXcgQnVzaW5lc3MgRGl2aXNpb24vUmhlYS1JbmZvcm1hdGlvbiBDTy4sIExURC4KKwkJCQk0RiA1OTQgWWVvbmcgUHVuZyBCbGRnLCBHdWV1aS1Eb25nCisJCQkJU2VvdWwgR3dhbmdqaW4tR3UgMTQzLTIwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy04MSAgIChoZXgpCQlOZXh0R2VuIFZlbnR1cmkgTFRECiswMDFDODEgICAgIChiYXNlIDE2KQkJTmV4dEdlbiBWZW50dXJpIExURAorCQkJCVRlY2huaXVtIDIKKwkJCQlLaW5ncyBSb2FkCisJCQkJU3dhbnNlYSBXZXN0IEdsYW1vcmdhbiBTQTE4UEoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQy04MiAgIChoZXgpCQlHZW5ldyBUZWNobm9sb2dpZXMKKzAwMUM4MiAgICAgKGJhc2UgMTYpCQlHZW5ldyBUZWNobm9sb2dpZXMKKwkJCQkzQTMgQnVpbGRpbmcgQjEsIEN5YmVyLXRlY2ggWm9uZSwKKwkJCQlHYW94aW4gQXZlLiA3UywgSGktdGVjaCBJbmR1c3RyaWFsIFBhcmssCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTFDLTgzICAgKGhleCkJCU5ldyBMZXZlbCBUZWxlY29tIENvLiwgTHRkLgorMDAxQzgzICAgICAoYmFzZSAxNikJCU5ldyBMZXZlbCBUZWxlY29tIENvLiwgTHRkLgorCQkJCUlOTk9QTEVYIDEtNzAzCisJCQkJMzcxLTQ3LCAgR2FzYW4tRG9uZywgR2V1bWNoZW9uLUd1CisJCQkJU2VvdWwgIDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtODQgICAoaGV4KQkJU1RMIFNvbHV0aW9uIENvLixMdGQuCiswMDFDODQgICAgIChiYXNlIDE2KQkJU1RMIFNvbHV0aW9uIENvLixMdGQuCisJCQkJIzcxMCwgV29ybGQgTWVyaWRpYW4gVmVudHVyZSBDZW50ZXIgSQorCQkJCTYwLTI0LCBHYXNhbi1kb25nLCBHZXVtY2hlb24tZ3UKKwkJCQlTZW91bCAgMTUyNzgxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTg1ICAgKGhleCkJCUV1bmljb3JuCiswMDFDODUgICAgIChiYXNlIDE2KQkJRXVuaWNvcm4KKwkJCQkyMjYtMTYgdW5ibyBiL2Qgc3Vja2Nob24tZG9uZyBzb25ncGEtZ3UKKwkJCQlzZW91bCAgMTM4ODQ1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTg2ICAgKGhleCkJCUNyYW5pdGUgU3lzdGVtcywgSW5jLgorMDAxQzg2ICAgICAoYmFzZSAxNikJCUNyYW5pdGUgU3lzdGVtcywgSW5jLgorCQkJCTEyMSBBbGJyaWdodCBXYXkKKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTg3ICAgKGhleCkJCVVyaXZlciBJbmMuCiswMDFDODcgICAgIChiYXNlIDE2KQkJVXJpdmVyIEluYy4KKwkJCQkzcmQuLCBGbC4sIEJvZ3dhbmcgQmxkZy4sIFBvaS1kb25nLCAyMzgtNyBHYW5nbmFtLWd1LAorCQkJCVNlb3VsICAxMzUtOTY0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTg4ICAgKGhleCkJCVRSQU5TWVNURU0gSU5DLgorMDAxQzg4ICAgICAoYmFzZSAxNikJCVRSQU5TWVNURU0gSU5DLgorCQkJCU5vLiAxLTIsIExpLUhzaW4gUmQgMSwgU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLTg5ICAgKGhleCkJCUZvcmNlIENvbW11bmljYXRpb25zLCBJbmMuCiswMDFDODkgICAgIChiYXNlIDE2KQkJRm9yY2UgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQlQTyBCb3ggMjUwMjg2CisJCQkJUGxhbm8gVFggNzUwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLThBICAgKGhleCkJCUNpcnJhc2NhbGUgQ29ycG9yYXRpb24KKzAwMUM4QSAgICAgKGJhc2UgMTYpCQlDaXJyYXNjYWxlIENvcnBvcmF0aW9uCisJCQkJOTQ0OSBDYXJyb2xsIFBhcmsgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLThCICAgKGhleCkJCU1KIElubm92YXRpb25zIEx0ZC4KKzAwMUM4QiAgICAgKGJhc2UgMTYpCQlNSiBJbm5vdmF0aW9ucyBMdGQuCisJCQkJMzMzIFd5ZWNyb2Z0IFJvYWQKKwkJCQlVbml0IDMKKwkJCQlPYWt2aWxsZSBPbnRhcmlvIEw2SyAySDIKKwkJCQlDQU5BREEKKworMDAtMUMtOEMgICAoaGV4KQkJRElBTCBURUNITk9MT0dZIExURC4KKzAwMUM4QyAgICAgKGJhc2UgMTYpCQlESUFMIFRFQ0hOT0xPR1kgTFRELgorCQkJCTZGLTQsIE5PLjE4LCBMQU5FLjYwOSwgU0VDLjUsIENIT05HU0lOIFJELiwKKwkJCQlTQU5DSE9ORyBDSVRZIFRBSVBFSSBDT1VOVFkgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy04RCAgIChoZXgpCQlNZXNhIEltYWdpbmcKKzAwMUM4RCAgICAgKGJhc2UgMTYpCQlNZXNhIEltYWdpbmcKKwkJCQlCYWRlbmVyc3RyYXNzZSA1NjkKKwkJCQla/HJpY2ggWkggODA0OAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFDLThFICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50IElQRAorMDAxQzhFICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50IElQRAorCQkJCTcwMSBFLiBNaWRkbGVmaWVsZCBSZC4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy04RiAgIChoZXgpCQlBZHZhbmNlZCBFbGVjdHJvbmljIERlc2lnbiwgSW5jLgorMDAxQzhGICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIEVsZWN0cm9uaWMgRGVzaWduLCBJbmMuCisJCQkJMzQ0IEpvaG4gTCBEaWV0c2NoIEJsdmQuLCBVbml0ICMyCisJCQkJTm9ydGggQXR0bGVib3JvIE1BIDAyNzYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy05MCAgIChoZXgpCQlFbXBhY2tldCBDb3Jwb3JhdGlvbgorMDAxQzkwICAgICAoYmFzZSAxNikJCUVtcGFja2V0IENvcnBvcmF0aW9uCisJCQkJT3Nha2kgS0kgYmxkZy4KKwkJCQkxLTE5LTEwIE9zYWtpCisJCQkJU2hpbmFnYXdhIFRva3lvIDE0MS0wMDMyCisJCQkJSkFQQU4KKworMDAtMUMtOTEgICAoaGV4KQkJR2VmZW4gSW5jLgorMDAxQzkxICAgICAoYmFzZSAxNikJCUdlZmVuIEluYy4KKwkJCQkyMDYwMCBOb3JkaG9mZiBTdHJlZXQKKwkJCQlDaGF0c3dvcnRoIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy05MiAgIChoZXgpCQlUZXJ2ZWxhCiswMDFDOTIgICAgIChiYXNlIDE2KQkJVGVydmVsYQorCQkJCTQzIE5hZ29nIFBhcmsKKwkJCQlTdWl0ZSAyMDEKKwkJCQlBY3RvbiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtOTMgICAoaGV4KQkJRXhhRGlnbSBJbmMKKzAwMUM5MyAgICAgKGJhc2UgMTYpCQlFeGFEaWdtIEluYworCQkJCTI4NzEgUHVsbG1hbiBTdAorCQkJCVNhbnRhIEFuYSBDQSA5MjcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtOTQgICAoaGV4KQkJTEktQ09SIEJpb3NjaWVuY2VzCiswMDFDOTQgICAgIChiYXNlIDE2KQkJTEktQ09SIEJpb3NjaWVuY2VzCisJCQkJNDY0NyBTdXBlcmlvciBTdHJlZXQKKwkJCQlMaW5jb2xuIE5FIDY4NTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy05NSAgIChoZXgpCQlPcHRpY29tbSBDb3Jwb3JhdGlvbgorMDAxQzk1ICAgICAoYmFzZSAxNikJCU9wdGljb21tIENvcnBvcmF0aW9uCisJCQkJNjgyNyBOYW5jeSBSaWRnZSBEcgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtOTYgICAoaGV4KQkJTGlua3dpc2UgVGVjaG5vbG9neSBQdGUgTHRkCiswMDFDOTYgICAgIChiYXNlIDE2KQkJTGlua3dpc2UgVGVjaG5vbG9neSBQdGUgTHRkCisJCQkJQmxrIDMsIEFuZyBNbyBLaW8gSW5kdXN0cmlhbCBQYXJrIDJBCisJCQkJIzA2LTAzLiBBTUsgVGVjaCBJCisJCQkJNTY4MDUwCisJCQkJU0lOR0FQT1JFCisKKzAwLTFDLTk3ICAgKGhleCkJCUVuenl0ZWsgVGVjaG5vbG9neSBJbmMuLAorMDAxQzk3ICAgICAoYmFzZSAxNikJCUVuenl0ZWsgVGVjaG5vbG9neSBJbmMuLAorCQkJCTdGLCBOby4zNSwgSHN1ZWggRnUgUmQuLAorCQkJCUhzaW5jaHUgIDMwMCwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLTk4ICAgKGhleCkJCUxVQ0tZIFRFQ0hOT0xPR1kgKEhLKSBDT01QQU5ZIExJTUlURUQKKzAwMUM5OCAgICAgKGJhc2UgMTYpCQlMVUNLWSBURUNITk9MT0dZIChISykgQ09NUEFOWSBMSU1JVEVECisJCQkJRkxBVC9STSAxNTAzIDE1L0YgSVNMQU5EIEJFVkVSTEVZIE5PIDEgR1JFQVQgR0VPUkdFIFNUUkVFVCBDQVVTRVdBWSBCQVkKKwkJCQk5OTkwNzcKKwkJCQlIT05HIEtPTkcKKworMDAtMUMtOTkgICAoaGV4KQkJU2h1bnJhIFNvZnR3YXJlIEx0ZC4KKzAwMUM5OSAgICAgKGJhc2UgMTYpCQlTaHVucmEgU29mdHdhcmUgTHRkLgorCQkJCTIwIEhhdGEnYXMgU3QuCisJCQkJS2VmYXItU2FiYSAgNDQ0MjUKKwkJCQlJU1JBRUwKKworMDAtMUMtOUEgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUM5QSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUMtOUIgICAoaGV4KQkJRkVJRyBFTEVDVFJPTklDIEdtYkgKKzAwMUM5QiAgICAgKGJhc2UgMTYpCQlGRUlHIEVMRUNUUk9OSUMgR21iSAorCQkJCUxhbmdlIFN0cmHfZSA0CisJCQkJV2VpbGJ1cmcgSGVzc2VuIDM1NzgxCisJCQkJR0VSTUFOWQorCiswMC0xQy05QyAgIChoZXgpCQlOb3J0ZWwKKzAwMUM5QyAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMUMtOUQgICAoaGV4KQkJTGllY3RoaSBBRworMDAxQzlEICAgICAoYmFzZSAxNikJCUxpZWN0aGkgQUcKKwkJCQkxMCBVbnRlcmhvbHogU3RyZWV0CisJCQkJS3JpZWdzdGV0dGVuIFNvbG90aHVybiA0NTY2CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUMtOUUgICAoaGV4KQkJRHVhbHRlY2ggSVQgQUIKKzAwMUM5RSAgICAgKGJhc2UgMTYpCQlEdWFsdGVjaCBJVCBBQgorCQkJCUJhbmVoYWdzZ2F0YW4gMUYKKwkJCQlHT1RIRU5CVVJHIFbkc3RyYSBH9nRhbGFuZCA0MTQ1MQorCQkJCVNXRURFTgorCiswMC0xQy05RiAgIChoZXgpCQlSYXpvcnN0cmVhbSwgTExDCiswMDFDOUYgICAgIChiYXNlIDE2KQkJUmF6b3JzdHJlYW0sIExMQworCQkJCTIzODEtQyBSZW5haXNzYW5jZSBEcml2ZQorCQkJCUxhcyBWZWdhcyBOViA4OTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtQTAgICAoaGV4KQkJUHJvZHVjdGlvbiBSZXNvdXJjZSBHcm91cCwgTExDCiswMDFDQTAgICAgIChiYXNlIDE2KQkJUHJvZHVjdGlvbiBSZXNvdXJjZSBHcm91cCwgTExDCisJCQkJNTM5IFRlbXBsZSBIaWxsIFJvYWQKKwkJCQlOZXcgV2luZHNvciBOWSAxMjU1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtQTEgICAoaGV4KQkJQUtBTUFJIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAxQ0ExICAgICAoYmFzZSAxNikJCUFLQU1BSSBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk4IENBTUJSSURHRSBDRU5URVIKKwkJCQlDQU1CUklER0UgTUEgMDIxNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUEyICAgKGhleCkJCVBJUkVMTEkgQlJPQURCQU5EIFNPTFVUSU9OUworMDAxQ0EyICAgICAoYmFzZSAxNikJCVBJUkVMTEkgQlJPQURCQU5EIFNPTFVUSU9OUworCQkJCVZJQUxFIFNBUkNBIDIyMgorCQkJCU1JTEFOTyAgMjAxMjYKKwkJCQlJVEFMWQorCiswMC0xQy1BMyAgIChoZXgpCQlUZXJyYQorMDAxQ0EzICAgICAoYmFzZSAxNikJCVRlcnJhCisJCQkJRHJhdWd5c3RlcyBzdHIuIDIyCisJCQkJS2F1bmFzICBMVC01MTI1NgorCQkJCUxJVEhVQU5JQQorCiswMC0xQy1BNCAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworMDAxQ0E0ICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU2vlbmUgMjIxODgKKwkJCQlTV0VERU4KKworMDAtMUMtQTUgICAoaGV4KQkJWnlnbyBDb3Jwb3JhdGlvbgorMDAxQ0E1ICAgICAoYmFzZSAxNikJCVp5Z28gQ29ycG9yYXRpb24KKwkJCQkyMSBMYXVyZWwgQnJvb2sgUmQuCisJCQkJTWlkZGxlZmllbGQgQ1QgMDY0NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUE2ICAgKGhleCkJCVdpbjRORVQKKzAwMUNBNiAgICAgKGJhc2UgMTYpCQlXaW40TkVUCisJCQkJMTMwMSBLT0xPTiBEaWdpdGFsIFRvd2VyLAorCQkJCTIyMi03IEt1cm8tZG9uZworCQkJCUt1cm8tZ3UgU2VvdWwgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy1BNyAgIChoZXgpCQlJbnRlcm5hdGlvbmFsIFF1YXJ0eiBMaW1pdGVkCiswMDFDQTcgICAgIChiYXNlIDE2KQkJSW50ZXJuYXRpb25hbCBRdWFydHogTGltaXRlZAorCQkJCTJuZCBGbG9vciwgMiwgRGFpIFdhbmcgU3RyZWV0LAorCQkJCVRhaSBQbyBJbmR1c3RyaWFsIEVzdGF0ZSwgVGFpIFBvLCBOLlQuCisJCQkJSG9uZyBLb25nIDg1MgorCQkJCUNISU5BCisKKzAwLTFDLUE4ICAgKGhleCkJCUFpclRpZXMgV2lyZWxlc3MgTmV0d29ya3MKKzAwMUNBOCAgICAgKGJhc2UgMTYpCQlBaXJUaWVzIFdpcmVsZXNzIE5ldHdvcmtzCisJCQkJQnV5dWtkZXJlIENhZCBObyAxMDMgS2F0IDUKKwkJCQlNZWNpZGl5ZWtveSwgSXN0YW5idWwgMzQ0NjAKKwkJCQlUVVJLRVkKKworMDAtMUMtQTkgICAoaGV4KQkJQXVkaW9tYXRpY2EgU3JsCiswMDFDQTkgICAgIChiYXNlIDE2KQkJQXVkaW9tYXRpY2EgU3JsCisJCQkJVmlhIE1hbmZyZWRpIDEyCisJCQkJRmxvcmVuY2UgSXRhbHkgNTAxMzYKKwkJCQlJVEFMWQorCiswMC0xQy1BQSAgIChoZXgpCQlCZWxsb24gUHR5IEx0ZAorMDAxQ0FBICAgICAoYmFzZSAxNikJCUJlbGxvbiBQdHkgTHRkCisJCQkJVW5pdCAxMi8xMi0xOCBWaWN0b3JpYSBTdCBFYXN0CisJCQkJTGlkY29tYmUgTlNXIDIwMDAKKwkJCQlBVVNUUkFMSUEKKworMDAtMUMtQUIgICAoaGV4KQkJTWV5ZXIgU291bmQgTGFib3JhdG9yaWVzLCBJbmMuCiswMDFDQUIgICAgIChiYXNlIDE2KQkJTWV5ZXIgU291bmQgTGFib3JhdG9yaWVzLCBJbmMuCisJCQkJMjgzMiBTYW4gUGFibG8gQXZlLgorCQkJCUJlcmtlbGV5IENBIDk0NzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1BQyAgIChoZXgpCQlRbmlxIFRlY2hub2xvZ3kgQ29ycC4KKzAwMUNBQyAgICAgKGJhc2UgMTYpCQlRbmlxIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQk1RiwgTm8uMTMzLCBTZWMuNCwgTWluc2hlbmcgRS4gUmQuLAorCQkJCVNvbmdzaGFuIERpc3RyaWN0LAorCQkJCVRhaXBlaSAgMTA1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy1BRCAgIChoZXgpCQlXdWhhbiBUZWxlY29tbXVuaWNhdGlvbiBEZXZpY2VzIENvLixMdGQKKzAwMUNBRCAgICAgKGJhc2UgMTYpCQlXdWhhbiBUZWxlY29tbXVuaWNhdGlvbiBEZXZpY2VzIENvLixMdGQKKwkJCQk4OCBZb3VrZXl1YW4gUm9hZCxIb25nc2hhbiBEaXN0cmljdAorCQkJCVd1aGFuIEh1YmVpIDQzMDA3NAorCQkJCUNISU5BCisKKzAwLTFDLUFFICAgKGhleCkJCVdpQ2hvcnVzLCBJbmMuCiswMDFDQUUgICAgIChiYXNlIDE2KQkJV2lDaG9ydXMsIEluYy4KKwkJCQkzNTkwIE4gMXN0IFN0cmVldCwgU3VpdGUgMzAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUFGICAgKGhleCkJCVBsYXRvIE5ldHdvcmtzIEluYy4KKzAwMUNBRiAgICAgKGJhc2UgMTYpCQlQbGF0byBOZXR3b3JrcyBJbmMuCisJCQkJMjg1NSBLaWZlciBSb2FkCisJCQkJU3VpdGUgMjA0CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUIwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUNCMCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1CMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFDQjEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtQjIgICAoaGV4KQkJQlBUIFNQQQorMDAxQ0IyICAgICAoYmFzZSAxNikJCUJQVCBTUEEKKwkJCQlWaWEgU3RhemlvbmUsNDgKKwkJCQlTZXN0byBhbCBSZWdoZW5hIFBvcmRlbm9uZSAzMzA3OQorCQkJCUlUQUxZCisKKzAwLTFDLUIzICAgKGhleCkJCUFQUExFLCBJTkMKKzAwMUNCMyAgICAgKGJhc2UgMTYpCQlBUFBMRSwgSU5DCisJCQkJMSBJTkZJTklURSBMT09QCisJCQkJQ1VQRVJUSU5PIENBTElGT1JOSUEgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUI0ICAgKGhleCkJCUlyaWRpdW0gU2F0ZWxsaXRlIExMQworMDAxQ0I0ICAgICAoYmFzZSAxNikJCUlyaWRpdW0gU2F0ZWxsaXRlIExMQworCQkJCTg0NDAgUy4gUml2ZXIgUGFya3dheQorCQkJCVRlbXBlIEFaIDg1Mjg0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1CNSAgIChoZXgpCQlOZWlodWEgTmV0d29yayBUZWNobm9sb2d5IENvLixMVEQuKE5ITikKKzAwMUNCNSAgICAgKGJhc2UgMTYpCQlOZWlodWEgTmV0d29yayBUZWNobm9sb2d5IENvLixMVEQuKE5ITikKKwkJCQlQbG90IFhpbm1laSBSb2FkIDEwMi1RLE5ldyBEaXN0cmljdAorCQkJCVd1WGkgSmlhbmdzdSAyMTQwMjgKKwkJCQlDSElOQQorCiswMC0xQy1CNiAgIChoZXgpCQlEdXpvbiBDTlQgQ28uLCBMdGQuCiswMDFDQjYgICAgIChiYXNlIDE2KQkJRHV6b24gQ05UIENvLiwgTHRkLgorCQkJCTE0dGggRmxvb3IsIElSRSBidWlsZGluZyAyCisJCQkJWWFuZ3B5dW5nLWRvbmcgNGdhLCBZb3VuZ2R1bmdwby1ndQorCQkJCVNlb3VsICAxNTAtOTY3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLUI3ICAgKGhleCkJCVVTQyBEaWdpQXJrIENvcnBvcmF0aW9uCiswMDFDQjcgICAgIChiYXNlIDE2KQkJVVNDIERpZ2lBcmsgQ29ycG9yYXRpb24KKwkJCQk2RiBUZW5ub3ogQ2VudHJhbCBUb3dlciAyLTItMjQgSGlnYXNoaXNoaW5hZ2F3YQorCQkJCVRva3lvIFNoaW5hZ2F3YS1rdSAxNDAtMDAwMgorCQkJCUpBUEFOCisKKzAwLTFDLUI4ICAgKGhleCkJCUNCQyBDby4sIEx0ZAorMDAxQ0I4ICAgICAoYmFzZSAxNikJCUNCQyBDby4sIEx0ZAorCQkJCTItMTUtMTMsIFRzdWtpc2hpbWEsIENodW8ta3UKKwkJCQlUb2t5byAgMTA0LTAwNTIKKwkJCQlKQVBBTgorCiswMC0xQy1COSAgIChoZXgpCQlLV0FORyBTVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDAxQ0I5ICAgICAoYmFzZSAxNikJCUtXQU5HIFNVTkcgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJMjAxLCBXT1JMRCBWRU5UVVJFIFRPV04gNjAtMjQsIEdBU0FOLURPTkcgR0VVTUNIVU4tR1UsCisJCQkJU0VPVUwgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtQkEgICAoaGV4KQkJVmVyU2NpZW50LCBJbmMuCiswMDFDQkEgICAgIChiYXNlIDE2KQkJVmVyU2NpZW50LCBJbmMuCisJCQkJNzcwMCBFcXVpdGFibGUgRHJpdmUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlFZGVuIFByYWlyaWUgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUJCICAgKGhleCkJCU11c2ljaWFuTGluaworMDAxQ0JCICAgICAoYmFzZSAxNikJCU11c2ljaWFuTGluaworCQkJCTI0MDEgQ29yeSBBdmUuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUJDICAgKGhleCkJCUNhc3RHcmFiYmVyLCBMTEMKKzAwMUNCQyAgICAgKGJhc2UgMTYpCQlDYXN0R3JhYmJlciwgTExDCisJCQkJNjUwNyBXaWxraW5zIEF2ZW51ZQorCQkJCVBpdHRzYnVyZ2ggUEEgMTUyMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUJEICAgKGhleCkJCUV6emUgTW9iaWxlIFRlY2guLCBJbmMuCiswMDFDQkQgICAgIChiYXNlIDE2KQkJRXp6ZSBNb2JpbGUgVGVjaC4sIEluYy4KKwkJCQkzRiwgQnVibXVzYSBCbGRnLiwgMTUxLTMxCisJCQkJTm9uaHl1bi1kb25nLCBLYW5nbmFtLWt1CisJCQkJU2VvdWwgMTM1LTgyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy1CRSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMUNCRSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyBLWU9UTyA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFDLUJGICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxQ0JGICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMUMtQzAgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDFDQzAgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xQy1DMSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMUNDMSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2MDAgTi4gVVMgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSWxsaW5vaXMgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUMyICAgKGhleCkJCVBhcnQgSUkgUmVzZWFyY2gsIEluYy4KKzAwMUNDMiAgICAgKGJhc2UgMTYpCQlQYXJ0IElJIFJlc2VhcmNoLCBJbmMuCisJCQkJNDYwMSBFLiBBaXJwb3J0IERyLgorCQkJCU9udGFyaW8gQ0EgOTE3NjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUMzICAgKGhleCkJCVBhY2UgcGxjCiswMDFDQzMgICAgIChiYXNlIDE2KQkJUGFjZSBwbGMKKwkJCQlTYWx0cyBNaWxsCisJCQkJVmljdG9yaWEgUm9hZAorCQkJCUJyYWRmb3JkIFdlc3QgWW9ya3NoaXJlIEJEMTggM0xGCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUMtQzQgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDFDQzQgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQltczA0MDgwMQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUM1ICAgKGhleCkJCTNDT00gTFRECiswMDFDQzUgICAgIChiYXNlIDE2KQkJM0NPTSBMVEQKKwkJCQkzQ29tIEV1cm9wZSBMdGQsIFBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlQZW9wbGVidWlsZGluZyBFc3RhdGUsIE1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cyBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUMtQzYgICAoaGV4KQkJUHJvU3RvciBTeXN0ZW1zCiswMDFDQzYgICAgIChiYXNlIDE2KQkJUHJvU3RvciBTeXN0ZW1zCisJCQkJNTU1NSBDZW50cmFsIEF2ZW51ZQorCQkJCVN1aXRlIDEwMAorCQkJCUJvdWxkZXIgQ29sb3JhZG8gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUM3ICAgKGhleCkJCVJlbWJyYW5kdCBUZWNobm9sb2dpZXMsIExMQyBkL2IvYSBSRU1TVFJFQU0KKzAwMUNDNyAgICAgKGJhc2UgMTYpCQlSZW1icmFuZHQgVGVjaG5vbG9naWVzLCBMTEMgZC9iL2EgUkVNU1RSRUFNCisJCQkJMTQwIFNvdXRoIEJldmVybHkgRHJpdmUKKwkJCQlTdWl0ZSAyMDMKKwkJCQlCZXZlcmx5IEhpbGxzIENBIDkwMjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1DOCAgIChoZXgpCQlJTkRVU1RST05JQyBJbmR1c3RyaWUtRWxlY3Ryb25pYyBHbWJIICYgQ28uIEtHCiswMDFDQzggICAgIChiYXNlIDE2KQkJSU5EVVNUUk9OSUMgSW5kdXN0cmllLUVsZWN0cm9uaWMgR21iSCAmIENvLiBLRworCQkJCUNhcmwtSmFjb2ItS29sYi1XZWcgMQorCQkJCVdlcnRoZWltIEJhZGVuLVd1ZXJ0dGVtYmVyZyA5Nzg3NworCQkJCUdFUk1BTlkKKworMDAtMUMtQzkgICAoaGV4KQkJS2Fpc2UgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxQ0M5ICAgICAoYmFzZSAxNikJCUthaXNlIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby42NzgsIFd1bnN5dWUgUmQuLCBadW95aW5nIERpc3RyaWN0LAorCQkJCUthb2hzaXVuZyAgODEzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy1DQSAgIChoZXgpCQlTaGFuZ2hhaSBHYW96aGkgU2NpZW5jZSAmIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ28uCiswMDFDQ0EgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgR2FvemhpIFNjaWVuY2UgJiBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLgorCQkJCU5vLjI4MyBRaW4gSmlhbmcgUmQuIFNoYW5naGFpLENoaW5hCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTFDLUNCICAgKGhleCkJCUZvcnRoIENvcnBvcmF0aW9uIFB1YmxpYyBDb21wYW55IExpbWl0ZWQKKzAwMUNDQiAgICAgKGJhc2UgMTYpCQlGb3J0aCBDb3Jwb3JhdGlvbiBQdWJsaWMgQ29tcGFueSBMaW1pdGVkCisJCQkJMjI2LzEyLDEzLDE2IFBhaG9seW90aGluIFJvYWQKKwkJCQlTYW1zZW5uYWksIFBheWF0aGFpCisJCQkJQmFuZ2tvayAgMTA0MDAKKwkJCQlUSEFJTEFORAorCiswMC0xQy1DQyAgIChoZXgpCQlSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZAorMDAxQ0NDICAgICAoYmFzZSAxNikJCVJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkCisJCQkJMzA1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzAwLTFDLUNEICAgKGhleCkJCUFsZWt0cm9uYSBDb3Jwb3JhdGlvbgorMDAxQ0NEICAgICAoYmFzZSAxNikJCUFsZWt0cm9uYSBDb3Jwb3JhdGlvbgorCQkJCTk1IEhhdGhhd2F5IFN0cmVldCwgU3VpdGUgMTAKKwkJCQlQcm92aWRlbmNlIFJJIDAyOTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1DRSAgIChoZXgpCQlCeSBUZWNoZGVzaWduCiswMDFDQ0UgICAgIChiYXNlIDE2KQkJQnkgVGVjaGRlc2lnbgorCQkJCUMvIE1hcnF1ZXMgZGUgQWh1bWFkYSAxMQorCQkJCU1hZHJpZCAgMjgwMjgKKwkJCQlTUEFJTgorCiswMC0xQy1DRiAgIChoZXgpCQlMSU1FVEVLCiswMDFDQ0YgICAgIChiYXNlIDE2KQkJTElNRVRFSworCQkJCSMyMTMtMSwgQnl1Y2tzYW4gRGlnaXRhbCBWYWxsZXkgSUksIDQ4MC0xMCwgR2FzYW4tZG9uZywKKwkJCQlHZXVtY2hlbi1ndQorCQkJCVNlb3VsICAxNTMtNzgzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLUQwICAgKGhleCkJCUNpcmNsZW9uZSBDby4sTHRkLgorMDAxQ0QwICAgICAoYmFzZSAxNikJCUNpcmNsZW9uZSBDby4sTHRkLgorCQkJCTg2MC0xLE5vZGEKKwkJCQlCZXBwdS1zaGkgT29pdGEta2VuIDg3NC0wMDE2CisJCQkJSkFQQU4KKworMDAtMUMtRDEgICAoaGV4KQkJV2F2ZXMgQXVkaW8gTFRECiswMDFDRDEgICAgIChiYXNlIDE2KQkJV2F2ZXMgQXVkaW8gTFRECisJCQkJQXpyaWxlaSBDZW50ZXIgMywgVHJpYW5nbGUgdG93ZXIKKwkJCQkzMm5kIGZsb29yCisJCQkJVGVsIEF2aXYgQ2VudHJhbCA2NzAyMworCQkJCUlTUkFFTAorCiswMC0xQy1EMiAgIChoZXgpCQlLaW5nIENoYW1waW9uIChIb25nIEtvbmcpIExpbWl0ZWQKKzAwMUNEMiAgICAgKGJhc2UgMTYpCQlLaW5nIENoYW1waW9uIChIb25nIEtvbmcpIExpbWl0ZWQKKwkJCQlVbml0IDE1MjAsIDE1L0YsIFBoYXNlIDEsIE1ldHJvIENlbnRyZSwKKwkJCQkzMiBMYW0gSGluZyBTdHJlZXQsIEtvd2xvb24gQmF5LAorCQkJCUtvd2xvb24gIAorCQkJCUhPTkcgS09ORworCiswMC0xQy1EMyAgIChoZXgpCQlaUCBFbmdpbmVlcmluZyBTRUwKKzAwMUNEMyAgICAgKGJhc2UgMTYpCQlaUCBFbmdpbmVlcmluZyBTRUwKKwkJCQl2aWEgQXJkaXRvIERlc2lvLCA2MAorCQkJCVRlY25vcG9sbyBUaWJ1cnRpbm8KKwkJCQlST01FICAwMDEzMQorCQkJCUlUQUxZCisKKzAwLTFDLUQ0ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFDRDQgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTFDLUQ1ICAgKGhleCkJCVplZVZlZSwgSW5jLgorMDAxQ0Q1ICAgICAoYmFzZSAxNikJCVplZVZlZSwgSW5jLgorCQkJCTEgTW9uYXJjaCBEcml2ZQorCQkJCVN1aXRlIDIwMAorCQkJCUxpdHRsZXRvbiBNQSAwMTQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRDYgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUNENiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUMtRDcgICAoaGV4KQkJSGFybWFuL0JlY2tlciBBdXRvbW90aXZlIFN5c3RlbXMgR21iSAorMDAxQ0Q3ICAgICAoYmFzZSAxNikJCUhhcm1hbi9CZWNrZXIgQXV0b21vdGl2ZSBTeXN0ZW1zIEdtYkgKKwkJCQlCZWNrZXItR/ZyaW5nLVN0ci4gMTYKKwkJCQlLYXJsc2JhZCBCYWRlbiAtIFf8cnR0ZW1iZXJnIDc2MzA3CisJCQkJR0VSTUFOWQorCiswMC0xQy1EOCAgIChoZXgpCQlCbHVlQW50IFdpcmVsZXNzCiswMDFDRDggICAgIChiYXNlIDE2KQkJQmx1ZUFudCBXaXJlbGVzcworCQkJCTI0NSBTdC5LaWxkYSBSZCwgU3QgS2lsZGEKKwkJCQlNZWxib3VybmUgVmljdG9yaWEgMzE4MgorCQkJCUFVU1RSQUxJQQorCiswMC0xQy1EOSAgIChoZXgpCQlHbG9iYWxUb3AgVGVjaG5vbG9neSBJbmMuCiswMDFDRDkgICAgIChiYXNlIDE2KQkJR2xvYmFsVG9wIFRlY2hub2xvZ3kgSW5jLgorCQkJCTE2IE5hbi1rZSA5dGggUmQuIFNjaWVuY2UtYmFzZSBJbmR1c3RyaWFsIFBhcmssCisJCQkJU2hhbkh1YSBUYWluYW4gY291bnR5IDc0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtREEgICAoaGV4KQkJRXhlZ2luIFRlY2hub2xvZ2llcyBMaW1pdGVkCiswMDFDREEgICAgIChiYXNlIDE2KQkJRXhlZ2luIFRlY2hub2xvZ2llcyBMaW1pdGVkCisJCQkJMjA0IC0gMjA3MSBLaW5nc3dheSBBdmVudWUKKwkJCQlQb3J0IENvcXVpdGxhbSBCQyBWM0MgNk4yCisJCQkJQ0FOQURBCisKKzAwLTFDLURCICAgKGhleCkJCUNBUlBPSU5UIENPLixMVEQKKzAwMUNEQiAgICAgKGJhc2UgMTYpCQlDQVJQT0lOVCBDTy4sTFRECisJCQkJMTM0MC02LCBOYW1nYW5nIEJsZCA3RiwgU2VvY2hvLURvbmcKKwkJCQlTZW9jaG8tS3UsCisJCQkJU0VPVUwgIDEzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtREMgICAoaGV4KQkJQ3VzdG9tIENvbXB1dGVyIFNlcnZpY2VzLCBJbmMuCiswMDFDREMgICAgIChiYXNlIDE2KQkJQ3VzdG9tIENvbXB1dGVyIFNlcnZpY2VzLCBJbmMuCisJCQkJMTAyMCBTcHJpbmcgQ2l0eSBEcml2ZQorCQkJCVdhdWtlc2hhIFdJIDUzMTg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1ERCAgIChoZXgpCQlDT1dCRUxMIEVOR0lORUVSSU5HIENPLiwgTFRELgorMDAxQ0REICAgICAoYmFzZSAxNikJCUNPV0JFTEwgRU5HSU5FRVJJTkcgQ08uLCBMVEQuCisJCQkJMTczOS0xIE5hZ2F0b3JvCisJCQkJU0FLVSBOYWdhbm8gMzg1LTAwMjEKKwkJCQlKQVBBTgorCiswMC0xQy1ERSAgIChoZXgpCQlJbnRlcmFjdGl2ZSBNdWx0aW1lZGlhIGVYY2hhbmdlIEluYy4KKzAwMUNERSAgICAgKGJhc2UgMTYpCQlJbnRlcmFjdGl2ZSBNdWx0aW1lZGlhIGVYY2hhbmdlIEluYy4KKwkJCQlOTy4gMTY1IFdlbmxpbiBSb2FkLgorCQkJCVRhaXBlaSBUYWl3YW4gMTExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy1ERiAgIChoZXgpCQlCZWxraW4gSW50ZXJuYXRpb25hbCBJbmMuCiswMDFDREYgICAgIChiYXNlIDE2KQkJQmVsa2luIEludGVybmF0aW9uYWwgSW5jLgorCQkJCTUwMSBXLiBXYWxudXQgU3QuCisJCQkJQ29tcHRvbiBDYSA5MDIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRTAgICAoaGV4KQkJREFTQU4gVFBTCiswMDFDRTAgICAgIChiYXNlIDE2KQkJREFTQU4gVFBTCisJCQkJSFVNQVggVmlsbGFnZSA2RiwgMTEtNCBTdW5hZS1kb25nLCBCdW5kYW5nLWd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8gNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy1FMSAgIChoZXgpCQlJTkRSQSBTSVNURU1BUywgUy5BLgorMDAxQ0UxICAgICAoYmFzZSAxNikJCUlORFJBIFNJU1RFTUFTLCBTLkEuCisJCQkJQ3RyYS4gZGUgTG9lY2hlcywgbi66IDkKKwkJCQlUT1JSRUrTTiBERSBBUkRPWiBNQURSSUQgMjg4NTAKKwkJCQlTUEFJTgorCiswMC0xQy1FMiAgIChoZXgpCQlBdHRlcm8gVGVjaCwgTExDLgorMDAxQ0UyICAgICAoYmFzZSAxNikJCUF0dGVybyBUZWNoLCBMTEMuCisJCQkJMTMxNSBEaXJlY3RvcnMgUm93IC0gU3VpdGUgMTA3CisJCQkJRm9ydCBXYXluZSBJbmRpYW5hIDQ2ODA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1FMyAgIChoZXgpCQlPcHRpbWVkaWNhbCBTeXN0ZW1zCiswMDFDRTMgICAgIChiYXNlIDE2KQkJT3B0aW1lZGljYWwgU3lzdGVtcworCQkJCTIzNSBIZW1icmVlIFBhcmsgRHJpdmUKKwkJCQlSb3N3ZWxsIEdBIDMwMDc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1FNCAgIChoZXgpCQlFbGVTeSBKU0MKKzAwMUNFNCAgICAgKGJhc2UgMTYpCQlFbGVTeSBKU0MKKwkJCQlBbHRheXNrYXlhIHN0cmVldCwgMTYxYQorCQkJCVRvbXNrIG9ibGFzdCA2MzQwMjEKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUMtRTUgICAoaGV4KQkJTUJTIEVsZWN0cm9uaWMgU3lzdGVtcyBHbWJICiswMDFDRTUgICAgIChiYXNlIDE2KQkJTUJTIEVsZWN0cm9uaWMgU3lzdGVtcyBHbWJICisJCQkJUmluZ3N0cmFzc2UgMworCQkJCTgyMzE5IFN0YXJuYmVyZyBCYXZhcmlhIDgyMzE5CisJCQkJR0VSTUFOWQorCiswMC0xQy1FNiAgIChoZXgpCQlJTk5FUworMDAxQ0U2ICAgICAoYmFzZSAxNikJCUlOTkVTCisJCQkJODAgYXZlbnVlIGRlcyBCdXR0ZXMgZGUgQ2/rc21lcworCQkJCVJFTk5FUyAgMzU3MDAKKwkJCQlGUkFOQ0UKKworMDAtMUMtRTcgICAoaGV4KQkJUm9jb24gUExDIFJlc2VhcmNoIENlbnRyZQorMDAxQ0U3ICAgICAoYmFzZSAxNikJCVJvY29uIFBMQyBSZXNlYXJjaCBDZW50cmUKKwkJCQkyMSBWZWsgNTZBIHN0ci4KKwkJCQlTb2ZpYSAgMTcwMAorCQkJCUJVTEdBUklBCisKKzAwLTFDLUU4ICAgKGhleCkJCUN1bW1pbnMgSW5jCiswMDFDRTggICAgIChiYXNlIDE2KQkJQ3VtbWlucyBJbmMKKwkJCQkxNDAwIDczcmQgQXZlIE5FCisJCQkJRnJpZGxleSBNTiA1NTQzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRTkgICAoaGV4KQkJR2FsYXh5IFRlY2hub2xvZ3kgTGltaXRlZAorMDAxQ0U5ICAgICAoYmFzZSAxNikJCUdhbGF4eSBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQk5L0YgV2luIEZ1bGwgQ29tbWVyaWNhbCBCdWlsZGluZywgMTcyLTE3NiBXaW5nIExvayBTdHJlZXQsCisJCQkJU2hldW5nIFdhbiwgIAorCQkJCUhPTkcgS09ORworCiswMC0xQy1FQSAgIChoZXgpCQlTY2llbnRpZmljLUF0bGFudGEsIEluYworMDAxQ0VBICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMtQXRsYW50YSwgSW5jCisJCQkJNTAzMCBTdWdhcmxvYWYgUGt3eQorCQkJCUFUTCAyLlQuNjAzCisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRUIgICAoaGV4KQkJTm9ydGVsCiswMDFDRUIgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTFDLUVDICAgKGhleCkJCU1vYmlsZXNvZnQgKEF1c3QuKSBQdHkgTHRkCiswMDFDRUMgICAgIChiYXNlIDE2KQkJTW9iaWxlc29mdCAoQXVzdC4pIFB0eSBMdGQKKwkJCQlTdWl0ZSAyLCAyNy0zNSBHcm9zdmVub3IgU3RyZWV0CisJCQkJTmV1dHJhbCBCYXkKKwkJCQlTeWRuZXkgTlNXIDIwODkKKwkJCQlBVVNUUkFMSUEKKworMDAtMUMtRUQgICAoaGV4KQkJRU5WSVJPTk5FTUVOVCBTQQorMDAxQ0VEICAgICAoYmFzZSAxNikJCUVOVklST05ORU1FTlQgU0EKKwkJCQkxMTEgYmQuIFJvYmVzcGllcnJlCisJCQkJUE9JU1NZIFl2ZWxpbmVzIDc4MzAwCisJCQkJRlJBTkNFCisKKzAwLTFDLUVFICAgKGhleCkJCVNIQVJQIENvcnBvcmF0aW9uCiswMDFDRUUgICAgIChiYXNlIDE2KQkJU0hBUlAgQ29ycG9yYXRpb24KKwkJCQkyMi0yMixOYWdhaWtlLWNobyxBYmVuby1rdQorCQkJCU9zYWthICA1NDUtODUyMgorCQkJCUpBUEFOCisKKzAwLTFDLUVGICAgKGhleCkJCVByaW1heCBFbGVjdHJvbmljcyBMVEQKKzAwMUNFRiAgICAgKGJhc2UgMTYpCQlQcmltYXggRWxlY3Ryb25pY3MgTFRECisJCQkJNjY5LCBSdWV5IEt1YW5nIFJvYWQsIE5laWh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLUYwICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxQ0YwICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5PLjI4OSwgU2luaHUgM3JkIFJkLiwKKwkJCQlOZWlodSBEaXN0cmljdCwgVGFpcGVpIENpdHkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy1GMSAgIChoZXgpCQlTVVBvWCBUZWNobm9sb2d5IENvLiAsIExURC4KKzAwMUNGMSAgICAgKGJhc2UgMTYpCQlTVVBvWCBUZWNobm9sb2d5IENvLiAsIExURC4KKwkJCQk3RiwgNDE5ICwgQ2h1bmcgU2FuIFJkLiAsIFNlYyAyCisJCQkJQ2h1bmcgSG8gVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtRjIgICAoaGV4KQkJVGVubG9uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMUNGMiAgICAgKGJhc2UgMTYpCQlUZW5sb24gVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTQvRi4sU2hlbmh1YSBCbGRnLE5vLjMxNTUsQmluaGUgUm9hZCxGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDMzCisJCQkJQ0hJTkEKKworMDAtMUMtRjMgICAoaGV4KQkJRVZTIEJST0FEQ0FTVCBFUVVJUE1FTlQKKzAwMUNGMyAgICAgKGJhc2UgMTYpCQlFVlMgQlJPQURDQVNUIEVRVUlQTUVOVAorCQkJCUxpZWdlIFNjaWVuY2UgUGFyaworCQkJCXJ1ZSBCb2lzIFN0IEplYW4gMTYKKwkJCQlPdWdyZWUgTGllZ2UgNDEwMgorCQkJCUJFTEdJVU0KKworMDAtMUMtRjQgICAoaGV4KQkJTWVkaWEgVGVjaG5vbG9neSBTeXN0ZW1zIEluYworMDAxQ0Y0ICAgICAoYmFzZSAxNikJCU1lZGlhIFRlY2hub2xvZ3kgU3lzdGVtcyBJbmMKKwkJCQk3NjYgTGFrZWZpZWxkIFJvYWQKKwkJCQlVbml0IEYKKwkJCQlXZXN0bGFrZSBWaWxsYWdlIENBIDkxMzc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1GNSAgIChoZXgpCQlXaXNlYmx1ZSBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMUNGNSAgICAgKGJhc2UgMTYpCQlXaXNlYmx1ZSBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlSbSBHNSwgNS9GLCBLaW5nc2ZvcmQgSW5kdXN0cmlhbCBCdWlsZGluZyBQaGFzZSBJSSwgMjYtMzIgS3dhaSBIZWkgU3RyZWV0LAorCQkJCUt3YWkgQ2h1bmcgTi5ULiAKKwkJCQlIT05HIEtPTkcKKworMDAtMUMtRjYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQ0Y2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUY3ICAgKGhleCkJCUF1ZGlvU2NpZW5jZQorMDAxQ0Y3ICAgICAoYmFzZSAxNikJCUF1ZGlvU2NpZW5jZQorCQkJCTcyOSB3ZXN0IDE2dGggc3QKKwkJCQlTdWl0ZSBDMgorCQkJCUNvc3RhIE1lc2EgQ2FsaWZvcm5pYSA5MjYyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRjggICAoaGV4KQkJUGFyYWRlIFRlY2hub2xvZ2llcywgTHRkLgorMDAxQ0Y4ICAgICAoYmFzZSAxNikJCVBhcmFkZSBUZWNobm9sb2dpZXMsIEx0ZC4KKwkJCQlDL08gUGFyYWRlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTUzMCBMYWtlc2lkZSBEci4gU3VpdGUgMjMwCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1GOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFDRjkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRkEgICAoaGV4KQkJQWxhcm0uY29tCiswMDFDRkEgICAgIChiYXNlIDE2KQkJQWxhcm0uY29tCisJCQkJODE1MCBMZWVzYnVyZyBQaWtlCisJCQkJU3VpdGUgMTQwMAorCQkJCVZpZW5uYSBWQSAyMjE4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRkIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUNGQiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUZDICAgKGhleCkJCVN1bWluZXQgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgKFNoYW5naGFpKSBDby4sIEx0ZC4KKzAwMUNGQyAgICAgKGJhc2UgMTYpCQlTdW1pbmV0IENvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIChTaGFuZ2hhaSkgQ28uLCBMdGQuCisJCQkJNEYsIDNCbGQuIDY0NyBMb25nLCBTb25nVGFvIFJvYWQsIFpoYW5nSmlhbmcgSGktVGVjaCBQYXJrCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzAwLTFDLUZEICAgKGhleCkJCVVuaXZlcnNhbCBFbGVjdHJvbmljcworMDAxQ0ZEICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBFbGVjdHJvbmljcworCQkJCTYxMDEgR2F0ZXdheSBEcml2ZQorCQkJCUN5cHJlc3MgQ2FsaWZvcm5pYSA5MDYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRkUgICAoaGV4KQkJUXVhcnRpY3MgSW5jCiswMDFDRkUgICAgIChiYXNlIDE2KQkJUXVhcnRpY3MgSW5jCisJCQkJMTUyNDEgTGFndW5hIENhbnlvbiBSb2FkCisJCQkJU3RlIDIwMAorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRkYgICAoaGV4KQkJTmFwZXJhIE5ldHdvcmtzIEluYworMDAxQ0ZGICAgICAoYmFzZSAxNikJCU5hcGVyYSBOZXR3b3JrcyBJbmMKKwkJCQk3NjgzIFNFIDI3dGgKKwkJCQlTdWl0ZSAxMjAKKwkJCQlNZXJjZXIgSXNsYW5kIFdBIDk4MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0wMCAgIChoZXgpCQlCcml2byBTeXN0ZW1zLCBMTEMKKzAwMUQwMCAgICAgKGJhc2UgMTYpCQlCcml2byBTeXN0ZW1zLCBMTEMKKwkJCQk0MzMwIEVhc3QgV2VzdCBIaWdod2F5CisJCQkJU3VpdGUgMjUwCisJCQkJQmV0aGVzZGEgTUQgMjA4MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTAxICAgKGhleCkJCU5lcHR1bmUgRGlnaXRhbAorMDAxRDAxICAgICAoYmFzZSAxNikJCU5lcHR1bmUgRGlnaXRhbAorCQkJCU1lZG5hcm9kbmkgbWVqbmkgcHJlaG9kIDYKKwkJCQlWcnRvamJhIE5vdmEgR29yaWNhIDUyOTAKKwkJCQlTTE9WRU5JQQorCiswMC0xRC0wMiAgIChoZXgpCQlDeWJlcnRlY2ggVGVsZWNvbSBEZXZlbG9wbWVudAorMDAxRDAyICAgICAoYmFzZSAxNikJCUN5YmVydGVjaCBUZWxlY29tIERldmVsb3BtZW50CisJCQkJSGF6ZW5rb29nIDI1CisJCQkJQWxrbWFhciBOb29yZCBIb2xsYW5kIDE4MjIgQlMKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRC0wMyAgIChoZXgpCQlEZXNpZ24gU29sdXRpb25zIEluYy4KKzAwMUQwMyAgICAgKGJhc2UgMTYpCQlEZXNpZ24gU29sdXRpb25zIEluYy4KKwkJCQk4MSBEYXZpZCBMb3ZlIFBsYWNlCisJCQkJR29sZXRhIENhIDkzMTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0wNCAgIChoZXgpCQlaaXBpdCBXaXJlbGVzcywgSW5jLgorMDAxRDA0ICAgICAoYmFzZSAxNikJCVppcGl0IFdpcmVsZXNzLCBJbmMuCisJCQkJNDkgU2FsdGVycyBSb2FkLgorCQkJCVN1aXRlIDYKKwkJCQlHcmVlbnZpbGxlIFNDIDI5NjA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0wNSAgIChoZXgpCQlpTGlnaHQKKzAwMUQwNSAgICAgKGJhc2UgMTYpCQlpTGlnaHQKKwkJCQlVbml0IDQgRW50ZXJwcmlzZSBDZW50cmUKKwkJCQlSb2d1ZXMgSGlsbAorCQkJCVBlbnNodXJzdCBLZW50IFROMTEgOEJHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUQtMDYgICAoaGV4KQkJSE0gRWxlY3Ryb25pY3MsIEluYy4KKzAwMUQwNiAgICAgKGJhc2UgMTYpCQlITSBFbGVjdHJvbmljcywgSW5jLgorCQkJCTE0MTEwIFN0b3dlIERyaXZlCisJCQkJUG93YXkgQ0EgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTA3ICAgKGhleCkJCVNoZW56aGVuIFNhbmcgRmVpIENvbnN1bWVyIENvbW11bmljYXRpb25zIENvLixMdGQKKzAwMUQwNyAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBTYW5nIEZlaSBDb25zdW1lciBDb21tdW5pY2F0aW9ucyBDby4sTHRkCisJCQkJMTEgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSBSb2FkLAorCQkJCVNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgSW5kdXN0cmlhbCBQYXJrIE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTFELTA4ICAgKGhleCkJCUpJQU5HU1UgWUlOSEUgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKzAwMUQwOCAgICAgKGJhc2UgMTYpCQlKSUFOR1NVIFlJTkhFIEVMRUNUUk9OSUNTIENPLiwgTFRECisJCQkJMTg4IE5BTkhVQU4gUk9BRAorCQkJCVRBTkdRSUFPCisJCQkJWkhBTkdKSUFHQU5HIEpJQU5HU1UgMjE1NjExCisJCQkJQ0hJTkEKKworMDAtMUQtMDkgICAoaGV4KQkJRGVsbCBJbmMKKzAwMUQwOSAgICAgKGJhc2UgMTYpCQlEZWxsIEluYworCQkJCU9uZSBEZWxsIFdheSwgTVMgUlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtMEEgICAoaGV4KQkJRGF2aXMgSW5zdHJ1bWVudHMsIEluYy4KKzAwMUQwQSAgICAgKGJhc2UgMTYpCQlEYXZpcyBJbnN0cnVtZW50cywgSW5jLgorCQkJCTM0NjUgRGlhYmxvIEF2ZS4KKwkJCQlIYXl3YXJkIENBIDk0NTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0wQiAgIChoZXgpCQlQb3dlciBTdGFuZGFyZHMgTGFiCiswMDFEMEIgICAgIChiYXNlIDE2KQkJUG93ZXIgU3RhbmRhcmRzIExhYgorCQkJCTEyMDEgTWFyaW5hIFZpbGxhZ2UgUGFya3dheSAjMTAxCisJCQkJQWxhbWVkYSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtMEMgICAoaGV4KQkJTW9iaWxlQ29tcGlhCiswMDFEMEMgICAgIChiYXNlIDE2KQkJTW9iaWxlQ29tcGlhCisJCQkJRG9uZ3dvbiBCbGRnLCA3MjUtMzAsIFllb2tzYW0tZG9uZywgR2FuZ25hbS1ndSwKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRC0wRCAgIChoZXgpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgaW5jLgorMDAxRDBEICAgICAoYmFzZSAxNikJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBpbmMuCisJCQkJNi0yMSwyQ2hvbWUKKwkJCQlNaW5hbWktQW95YW1hCisJCQkJTWluYXRvLUt1IFRva3lvIDEwNy0wMDYyCisJCQkJSkFQQU4KKworMDAtMUQtMEUgICAoaGV4KQkJQWdhcGhhIFRlY2hub2xvZ3kgY28uLCBMdGQuCiswMDFEMEUgICAgIChiYXNlIDE2KQkJQWdhcGhhIFRlY2hub2xvZ3kgY28uLCBMdGQuCisJCQkJOUYgTm8uMTIxLCBTaGluZ2RlIFJkLiwKKwkJCQlTYW5jaHVuZyBDaXR5IFRhaXBlaSBDb3VudHkgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC0wRiAgIChoZXgpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMUQwRiAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQkzL0YsIEJsZGcuIFIxLUIsCisJCQkJSGktdGVjaCBJbmR1c3RyaWFsIFBhcmssIFNoZW5uYW4gUmQuLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xRC0xMCAgIChoZXgpCQlMaWdodEhhdXMgTG9naWMsIEluYy4KKzAwMUQxMCAgICAgKGJhc2UgMTYpCQlMaWdodEhhdXMgTG9naWMsIEluYy4KKwkJCQkxMjYtMTAyMCBNYWlubGFuZCBTdHJlZXQKKwkJCQlWYW5jb3V2ZXIgQkMgVjZCIDJUNAorCQkJCUNBTkFEQQorCiswMC0xRC0xMSAgIChoZXgpCQlBbmFsb2d1ZSAmIE1pY3JvIEx0ZAorMDAxRDExICAgICAoYmFzZSAxNikJCUFuYWxvZ3VlICYgTWljcm8gTHRkCisJCQkJTGFrZXNpZGUgSG91c2UKKwkJCQlMYWtlc2lkZQorCQkJCUxsYW50YXJuYW0gSW5kdXN0cmlhbCBQYXJrIEN3bWJyYW4gTlA0NCAzWFMKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRC0xMiAgIChoZXgpCQlST0hNIENPLiwgTFRELgorMDAxRDEyICAgICAoYmFzZSAxNikJCVJPSE0gQ08uLCBMVEQuCisJCQkJMjEgU2FpaW4tTWl6b3Nha2ktY2hvLAorCQkJCVVreW8ta3UsCisJCQkJS3lvdG8tc2hpIEtZT1RPIDYxNS04NTg1CisJCQkJSkFQQU4KKworMDAtMUQtMTMgICAoaGV4KQkJTmV4dEdUVgorMDAxRDEzICAgICAoYmFzZSAxNikJCU5leHRHVFYKKwkJCQkxM0YgQnl1Y2tzYW4vS3l1bmdpbiBEaWdpdGFsIFZhbGxleSBsbAorCQkJCUdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELTE0ICAgKGhleCkJCVNQRVJBRFRPTkUgSU5GT1JNQVRJT04gVEVDSE5PTE9HWSBMSU1JVEVECiswMDFEMTQgICAgIChiYXNlIDE2KQkJU1BFUkFEVE9ORSBJTkZPUk1BVElPTiBURUNITk9MT0dZIExJTUlURUQKKwkJCQlSb29tIDEwMDEgTk8uNDE4IEd1aSBQaW5nIFJvYWQsCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTFELTE1ICAgKGhleCkJCVNoZW56aGVuIERvbHBoaW4gRWxlY3Ryb25pYyBDby4sIEx0ZAorMDAxRDE1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIERvbHBoaW4gRWxlY3Ryb25pYyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nMjEsQmFveXVhbiwgTm8uMSBJbmR1c3RyaWFsIFpvbmUsCisJCQkJWGl4aWFuZywgQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwMworCQkJCUNISU5BCisKKzAwLTFELTE2ICAgKGhleCkJCUVmaXhvCiswMDFEMTYgICAgIChiYXNlIDE2KQkJRWZpeG8KKwkJCQk1IGF2ZW51ZSBkZSBTYWludCBNZW5ldAorCQkJCUltbWV1YmxlIEF4aW9tZSwgQuJ0IEIKKwkJCQlNQVJTRUlMTEUgUEFDQSAxMzAxMQorCQkJCUZSQU5DRQorCiswMC0xRC0xNyAgIChoZXgpCQlEaWdpdGFsIFNreSBDb3Jwb3JhdGlvbgorMDAxRDE3ICAgICAoYmFzZSAxNikJCURpZ2l0YWwgU2t5IENvcnBvcmF0aW9uCisJCQkJNS01LTE1IFNvdG9rYW5kYSwKKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMS0wMDIxCisJCQkJSkFQQU4KKworMDAtMUQtMTggICAoaGV4KQkJUG93ZXIgSW5ub3ZhdGlvbiBHbWJICiswMDFEMTggICAgIChiYXNlIDE2KQkJUG93ZXIgSW5ub3ZhdGlvbiBHbWJICisJCQkJUmVobGFuZCAyCisJCQkJQWNoaW0gTmllZGVyc2FjaHNlbiAyODgzMgorCQkJCUdFUk1BTlkKKworMDAtMUQtMTkgICAoaGV4KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxRDE5ICAgICAoYmFzZSAxNikJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Ri4sIE5vLiA5ICwgUGFyayBBdmVudWUgSUksCisJCQkJU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC0xQSAgIChoZXgpCQlPdmlzTGluayBTLkEuCiswMDFEMUEgICAgIChiYXNlIDE2KQkJT3Zpc0xpbmsgUy5BLgorCQkJCUMvQW5kcmVzIE9iaXNwbywgMzcuIFBsLiA0LgorCQkJCU1hZHJpZCAgMjgwNDMKKwkJCQlTUEFJTgorCiswMC0xRC0xQiAgIChoZXgpCQlTYW5nZWFuIEVsZWN0cm9uaWNzIEluYy4KKzAwMUQxQiAgICAgKGJhc2UgMTYpCQlTYW5nZWFuIEVsZWN0cm9uaWNzIEluYy4KKwkJCQlOby4gMTgsIExhbmUgNywgTGktRGUgc3RyZWV0CisJCQkJQ2h1bmcgSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC0xQyAgIChoZXgpCQlHZW5uZXQgcy5hLgorMDAxRDFDICAgICAoYmFzZSAxNikJCUdlbm5ldCBzLmEuCisJCQkJMiBNZXNvZ2Vpb24gYXZlLgorCQkJCVBpcmdvcyBBdGhpbm9uCisJCQkJQXRoZW5zIEF0dGlraSAxMTUyNworCQkJCUdSRUVDRQorCiswMC0xRC0xRCAgIChoZXgpCQlJbnRlci1NIENvcnBvcmF0aW9uCiswMDFEMUQgICAgIChiYXNlIDE2KQkJSW50ZXItTSBDb3Jwb3JhdGlvbgorCQkJCTY1My01IEJhbmdoYWstRG9uZywgRG9ib25nLUt1CisJCQkJU2VvdWwgIDEzMi04NDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUQtMUUgICAoaGV4KQkJS1lVU0hVIFRFTiBDTy4sTFRECiswMDFEMUUgICAgIChiYXNlIDE2KQkJS1lVU0hVIFRFTiBDTy4sTFRECisJCQkJMjM2MCBZVU5PS0lNT1RPTUFDSEkKKwkJCQlTQVNFQk8tQ2l0eSBOQUdBU0FLSSBQcmVmZWN0dXJlIDg1Ny0wMTE1CisJCQkJSkFQQU4KKworMDAtMUQtMUYgICAoaGV4KQkJU2lhdWxpdSBUYXVybyBUZWxldml6b3JpYWksIEpTQworMDAxRDFGICAgICAoYmFzZSAxNikJCVNpYXVsaXUgVGF1cm8gVGVsZXZpem9yaWFpLCBKU0MKKwkJCQlQcmFtb25lcywxNQorCQkJCVNpYXVsaWFpICBMVC01NzMxOAorCQkJCUxJVEhVQU5JQQorCiswMC0xRC0yMCAgIChoZXgpCQlDT01UUkVORCBDTy4KKzAwMUQyMCAgICAgKGJhc2UgMTYpCQlDT01UUkVORCBDTy4KKwkJCQkzRi0xIDEwIExBTkUgNjA5IENIVU5HIEhTSU4gUk9BRCwgU0VDIDUsIFNBTiBDSFVORyBDSVRZLCBUQUlQRUkgVEFJV0FOIDI0MQorCQkJCVRBSVBFSSAgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC0yMSAgIChoZXgpCQlBbGNhZCBTTAorMDAxRDIxICAgICAoYmFzZSAxNikJCUFsY2FkIFNMCisJCQkJUG9sLiBJbmQuIEFycmVjaGUtVWdhbGRlLCAxCisJCQkJSXL6biBHdWlw+npjb2EgRS0yMDMwNQorCQkJCVNQQUlOCisKKzAwLTFELTIyICAgKGhleCkJCUZvc3MgQW5hbHl0aWNhbCBBL1MKKzAwMUQyMiAgICAgKGJhc2UgMTYpCQlGb3NzIEFuYWx5dGljYWwgQS9TCisJCQkJU2xhbmdlcnVwZ2FkZSA2OQorCQkJCUhpbGxlcvhkIFNlZWxhbmQgMzQwMAorCQkJCURFTk1BUksKKworMDAtMUQtMjMgICAoaGV4KQkJU0VOU1VTIAorMDAxRDIzICAgICAoYmFzZSAxNikJCVNFTlNVUyAKKwkJCQk0NCBDQVNUSUxJQU4gRFJJVkUKKwkJCQlHT0xFVEEgQ0FMSUZPUk5JQSA5MzExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtMjQgICAoaGV4KQkJQWNsYXJhIFBvd2VyLUxpbmUgU3lzdGVtcyBJbmMuCiswMDFEMjQgICAgIChiYXNlIDE2KQkJQWNsYXJhIFBvd2VyLUxpbmUgU3lzdGVtcyBJbmMuCisJCQkJOTQ1IEhvcm5ldCBEcml2ZQorCQkJCUhhemVsd29vZCBNTyA2MzA0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtMjUgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswMDFEMjUgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELTI2ICAgKGhleCkJCVJvY2tyaWRnZXNvdW5kIFRlY2hub2xvZ3kgQ28uCiswMDFEMjYgICAgIChiYXNlIDE2KQkJUm9ja3JpZGdlc291bmQgVGVjaG5vbG9neSBDby4KKwkJCQlGdW1pbiBJbmR1c3RyaWFsIFBhcmssIEhvdWppZSBUb3duCisJCQkJRG9uZyBHdWFuIEd1YW5nIERvbmcgNTIzOTU2CisJCQkJQ0hJTkEKKworMDAtMUQtMjcgICAoaGV4KQkJTkFDLUlOVEVSQ09NCiswMDFEMjcgICAgIChiYXNlIDE2KQkJTkFDLUlOVEVSQ09NCisJCQkJQy4gUVVJTlRFTEEsIDI3IFBPUlRBTCA0IExPQ0FMCisJCQkJVklHTyBQT05URVZFRFJBIDM2MjA5CisJCQkJU1BBSU4KKworMDAtMUQtMjggICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKzAwMUQyOCAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNFIDIyMSA4OAorCQkJCVNXRURFTgorCiswMC0xRC0yOSAgIChoZXgpCQlEb3JvIEFCCiswMDFEMjkgICAgIChiYXNlIDE2KQkJRG9ybyBBQgorCQkJCU1hZ2lzdHJhdHN25GdlbiAxMAorCQkJCUx1bmQgIDIyNiA0MworCQkJCVNXRURFTgorCiswMC0xRC0yQSAgIChoZXgpCQlUaWRld2F5IEVsZWN0cm9uaWMgTFRECiswMDFEMkEgICAgIChiYXNlIDE2KQkJVGlkZXdheSBFbGVjdHJvbmljIExURAorCQkJCVpoaUppIEluZHVzdHJpYWwgIEFyZWEgLEppblllIFJvYWQKKwkJCQlCNCBEb25nLiBrdWl5b25nIFRvd24KKwkJCQlzaGVuZ3poZW4gbG9uZ2dhbmcgZ3Vhbmdkb25nIDUxODExOQorCQkJCUNISU5BCisKKzAwLTFELTJCICAgKGhleCkJCVd1aGFuIFBvbnQgVGVjaG5vbG9neSBDTy4gLCBMVEQKKzAwMUQyQiAgICAgKGJhc2UgMTYpCQlXdWhhbiBQb250IFRlY2hub2xvZ3kgQ08uICwgTFRECisJCQkJQnVpbGRpbmcgRSwgR3VhbmRvbmcgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSBJbmR1c3RyeSAgUGFyaywKKwkJCQlFYXN0IExha2UgSGlnaCBUZWNobm9sb2d5IERldmVsb3BtZW50IFpvbmUsCisJCQkJV3VoYW4gSHViZWkgNDMwMDc0CisJCQkJQ0hJTkEKKworMDAtMUQtMkMgICAoaGV4KQkJV2F2ZXRyZW5kIFRlY2hub2xvZ2llcyAoUHR5KSBMaW1pdGVkCiswMDFEMkMgICAgIChiYXNlIDE2KQkJV2F2ZXRyZW5kIFRlY2hub2xvZ2llcyAoUHR5KSBMaW1pdGVkCisJCQkJV2F2ZXRyZW5kIEhvdXNlLCBCdWlsZGluZyA4MTYvMworCQkJCUhhbW1ldHMgQ3Jvc3NpbmcgT2ZmaWNlIFBhcmssU2VsYm91cm5lIHJvYWQsIGZvdXJ3YXlzCisJCQkJR2F1dGVuZyAgMjAyMQorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xRC0yRCAgIChoZXgpCQlQeWxvbmUsIEluYy4KKzAwMUQyRCAgICAgKGJhc2UgMTYpCQlQeWxvbmUsIEluYy4KKwkJCQk0RiBOYWthbm8gQmxkZy4gNC0zMC04IEtpdGEtU2hpbmp1a3UKKwkJCQlTaGluanVrdS1rdSwgVG9reW8gMTY5LTAwNzQKKwkJCQlKQVBBTgorCiswMC0xRC0yRSAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzAwMUQyRSAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0yRiAgIChoZXgpCQlRdWFudHVtVmlzaW9uIENvcnBvcmF0aW9uCiswMDFEMkYgICAgIChiYXNlIDE2KQkJUXVhbnR1bVZpc2lvbiBDb3Jwb3JhdGlvbgorCQkJCTMzNSBQbGFudGF0aW9uIFdheQorCQkJCVJvc3dlbGwgR2EgMzAwNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTMwICAgKGhleCkJCVlYIFdpcmVsZXNzIFMuQS4KKzAwMUQzMCAgICAgKGJhc2UgMTYpCQlZWCBXaXJlbGVzcyBTLkEuCisJCQkJQXYuIFZpY3XxYSBNYWNrZW5uYSAjNDg2MAorCQkJCUVkaWZpY2lvIDUxMiwgcGlzbyAzLiBNYWN1bAorCQkJCVNhbnRpYWdvICA4NTgwNzEwCisJCQkJQ0hJTEUKKworMDAtMUQtMzEgICAoaGV4KQkJSElHSFBSTyBJTlRFUk5BVElPTkFMIFImRCBDTywuTFRELgorMDAxRDMxICAgICAoYmFzZSAxNikJCUhJR0hQUk8gSU5URVJOQVRJT05BTCBSJkQgQ08sLkxURC4KKwkJCQkzRixOby4yOTUsUnVpR3VhbmcgUmQsTmVpIEh1LAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC0zMiAgIChoZXgpCQlMb25na2F5IENvbW11bmljYXRpb24gJiBUZWNobm9sb2d5IChTaGFuZ2hhaSkgQ28uIEx0ZAorMDAxRDMyICAgICAoYmFzZSAxNikJCUxvbmdrYXkgQ29tbXVuaWNhdGlvbiAmIFRlY2hub2xvZ3kgKFNoYW5naGFpKSBDby4gTHRkCisJCQkJTm8uNSBCdWlsZGluZywgVW5pdCAyLCBMYW5lIDI5OSBCaXNoZW5nIFJkLAorCQkJCVNoYW5naGFpICAyMDEyMDQKKwkJCQlDSElOQQorCiswMC0xRC0zMyAgIChoZXgpCQlNYXZlcmljayBTeXN0ZW1zIEluYy4KKzAwMUQzMyAgICAgKGJhc2UgMTYpCQlNYXZlcmljayBTeXN0ZW1zIEluYy4KKwkJCQk5MDgsIERhZXJ1bmdwb3N0dG93ZXIgMi1jaGEsIDE4Mi0xMworCQkJCUd1cm8tZG9uZywgR3Vyby1ndQorCQkJCVNlb3VsICAxNTItNzkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELTM0ICAgKGhleCkJCVNZUklTIFRlY2hub2xvZ3kgQ29ycAorMDAxRDM0ICAgICAoYmFzZSAxNikJCVNZUklTIFRlY2hub2xvZ3kgQ29ycAorCQkJCTIxIEYtMiwgIE5PLiAxMiwgIFNFQy4gMSwgIFRhaWp1bmdnYW5nIFJkLgorCQkJCVRhaWNodW5nICA0MDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTM1ICAgKGhleCkJCVZpY29uaWNzIEVsZWN0cm9uaWNzIEluYy4KKzAwMUQzNSAgICAgKGJhc2UgMTYpCQlWaWNvbmljcyBFbGVjdHJvbmljcyBJbmMuCisJCQkJOTI0NSBMYW5nZWxpZXIKKwkJCQlTYWludCBMZW9uYXJkIFF1ZWJlYyBIMVAzSzkKKwkJCQlDQU5BREEKKworMDAtMUQtMzYgICAoaGV4KQkJRUxFQ1RST05JQ1MgQ09SUE9SQVRJT04gT0YgSU5ESUEgTElNSVRFRAorMDAxRDM2ICAgICAoYmFzZSAxNikJCUVMRUNUUk9OSUNTIENPUlBPUkFUSU9OIE9GIElORElBIExJTUlURUQKKwkJCQlDT05UUk9MIEFORCBBVVRPTUFUSU9OIERJVklTSU9OLTMKKwkJCQlFQ0lMIFBPU1QKKwkJCQlIWURFUkFCQUQgQU5ESFJBIFBSQURFU0ggNTAwIDA2MgorCQkJCUlORElBCisKKzAwLTFELTM3ICAgKGhleCkJCVRoYWxlcy1QYW5kYSBUcmFuc3BvcnRhdGlvbiBTeXN0ZW0KKzAwMUQzNyAgICAgKGJhc2UgMTYpCQlUaGFsZXMtUGFuZGEgVHJhbnNwb3J0YXRpb24gU3lzdGVtCisJCQkJNnRoIGZsb29yLCBIVUlKSUUgUGxhemEsIDI2OCBaaG9uZ3NoYW4gUmQuCisJCQkJbmFuamluZyBqaWFuZ3N1IDIxMDAwOAorCQkJCUNISU5BCisKKzAwLTFELTM4ICAgKGhleCkJCVNlYWdhdGUgVGVjaG5vbG9neQorMDAxRDM4ICAgICAoYmFzZSAxNikJCVNlYWdhdGUgVGVjaG5vbG9neQorCQkJCTEyODAgRGlzYyBEcml2ZQorCQkJCVNoYWtvcGVlIE1OIDU1Mzc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0zOSAgIChoZXgpCQlNT09IQURJR0lUQUwgQ08uLCBMVEQKKzAwMUQzOSAgICAgKGJhc2UgMTYpCQlNT09IQURJR0lUQUwgQ08uLCBMVEQKKwkJCQlTZW91bCBIaWdodGVjaCBWZW50dXJlIENlbnRlciBDLTMwNyA2NDctMjYKKwkJCQlEZXVuZ2Nob24tRG9uZyBHYW5nc2VvLUd1CisJCQkJU0VPVUwgIDE1Ny0wMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUQtM0EgICAoaGV4KQkJbWggYWNvdXN0aWNzIExMQworMDAxRDNBICAgICAoYmFzZSAxNikJCW1oIGFjb3VzdGljcyBMTEMKKwkJCQkyNUEgU3VtbWl0IEF2ZQorCQkJCVN1bW1pdCBOSiAwNzkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtM0IgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUQzQiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUQtM0MgICAoaGV4KQkJTXVzY2xlIENvcnBvcmF0aW9uCiswMDFEM0MgICAgIChiYXNlIDE2KQkJTXVzY2xlIENvcnBvcmF0aW9uCisJCQkJMi01LTM1LCBLaWthd2EtaGlnYXNoaQorCQkJCU9zYWthICA1MzItMDAxMgorCQkJCUpBUEFOCisKKzAwLTFELTNEICAgKGhleCkJCUF2aWR5bmUgQ29ycG9yYXRpb24KKzAwMUQzRCAgICAgKGJhc2UgMTYpCQlBdmlkeW5lIENvcnBvcmF0aW9uCisJCQkJMjAyIFdlc3QgRHIKKwkJCQlNZWxib3VybmUgRkwgMzI5MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTNFICAgKGhleCkJCVNBS0EgVEVDSE5PIFNDSUVOQ0UgQ08uLExURAorMDAxRDNFICAgICAoYmFzZSAxNikJCVNBS0EgVEVDSE5PIFNDSUVOQ0UgQ08uLExURAorCQkJCU5pc2hpIDEwNS0xCisJCQkJS2l0YXp1a2EtbWFjaGkKKwkJCQlLYW5hemF3YSBJc2hpa2F3YSA5MjAtMDM2NworCQkJCUpBUEFOCisKKzAwLTFELTNGICAgKGhleCkJCU1pdHJvbiBQdHkgTHRkCiswMDFEM0YgICAgIChiYXNlIDE2KQkJTWl0cm9uIFB0eSBMdGQKKwkJCQlVbml0IDExCisJCQkJMTItMTggQ2xhcmVuZG9uIFN0cmVldAorCQkJCUFydGFybW9uIE5TVyAyMDY1CisJCQkJQVVTVFJBTElBCisKKzAwLTFELTQwICAgKGhleCkJCUxpdmluZyBJbmRlcGVuZGVudGx5IEdyb3VwLCBJbmMuCiswMDFENDAgICAgIChiYXNlIDE2KQkJTGl2aW5nIEluZGVwZW5kZW50bHkgR3JvdXAsIEluYy4KKwkJCQk3NjcgVGhpcmQgQXZlLCAxNHRoIEZsb29yCisJCQkJTmV3IFlvcmsgTlkgMTAwMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTQxICAgKGhleCkJCUhhcmR5IEluc3RydW1lbnRzCiswMDFENDEgICAgIChiYXNlIDE2KQkJSGFyZHkgSW5zdHJ1bWVudHMKKwkJCQkzODYwIENhbGxlIEZvcnR1bmFkYQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNDIgICAoaGV4KQkJTm9ydGVsCiswMDFENDIgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTFELTQzICAgKGhleCkJCVNoZW56aGVuIEctbGluayBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFENDMgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gRy1saW5rIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk0RiwgRSBCdWlsZGluZyxIdWFjaHVhbmcgRGEgVGVjaG5vbG9neSBab25lICxIYW5nY2hlbmcgSGlnaHdheSxHdXNodSxYaXhpYW5nICwKKwkJCQlzaGVuemhlbiBHdWFuZ0RvbmcgNTE4MTI2CisJCQkJQ0hJTkEKKworMDAtMUQtNDQgICAoaGV4KQkJS3JvaG5lCiswMDFENDQgICAgIChiYXNlIDE2KQkJS3JvaG5lCisJCQkJS2Vya2VwbGFhdCAxMgorCQkJCURvcmRyZWNodCBaSCAzMzEzIExDCisJCQkJTkVUSEVSTEFORFMKKworMDAtMUQtNDUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRDQ1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTQ2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUQ0NiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC00NyAgIChoZXgpCQlDb3ZvdGUgR21iSCAmIENvIEtHCiswMDFENDcgICAgIChiYXNlIDE2KQkJQ292b3RlIEdtYkggJiBDbyBLRworCQkJCVJpdHRlcmh1ZmVuIDMwCisJCQkJQmVybGluICAxNDE2NQorCQkJCUdFUk1BTlkKKworMDAtMUQtNDggICAoaGV4KQkJU2Vuc29yLVRlY2huaWsgV2llZGVtYW5uIEdtYkgKKzAwMUQ0OCAgICAgKGJhc2UgMTYpCQlTZW5zb3ItVGVjaG5payBXaWVkZW1hbm4gR21iSAorCQkJCUFtIELkcmVud2FsZCA2CisJCQkJS2F1ZmJldXJlbiBCYXllcm4gODc2MDAKKwkJCQlHRVJNQU5ZCisKKzAwLTFELTQ5ICAgKGhleCkJCUlubm92YXRpb24gV2lyZWxlc3MgSW5jLgorMDAxRDQ5ICAgICAoYmFzZSAxNikJCUlubm92YXRpb24gV2lyZWxlc3MgSW5jLgorCQkJCTRGLTEsIE5PLjgxLCBTSFVFSUxJIFJELgorCQkJCUhTSU5DSFUgIDMwMDU5CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC00QSAgIChoZXgpCQlDYXJlc3RyZWFtIEhlYWx0aCwgSW5jLgorMDAxRDRBICAgICAoYmFzZSAxNikJCUNhcmVzdHJlYW0gSGVhbHRoLCBJbmMuCisJCQkJMTUwIFZlcm9uYSBTdHJlZXQKKwkJCQlSb2NoZXN0c2VyIE5ZIDE0NjA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC00QiAgIChoZXgpCQlHcmlkIENvbm5lY3QgSW5jLgorMDAxRDRCICAgICAoYmFzZSAxNikJCUdyaWQgQ29ubmVjdCBJbmMuCisJCQkJMTYzMCBXLiBEaWVobCBSZAorCQkJCU5hcGVydmlsbGUgSUwgNjA1NjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTRDICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50CiswMDFENEMgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQKKwkJCQk2MDEgRGF0YSBEcml2ZQorCQkJCU0vUyAzMjAKKwkJCQlQbGFubyBUWCA3NTA3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNEQgICAoaGV4KQkJQWRhcHRpdmUgUmVjb2duaXRpb24gSHVuZ2FyeSwgSW5jCiswMDFENEQgICAgIChiYXNlIDE2KQkJQWRhcHRpdmUgUmVjb2duaXRpb24gSHVuZ2FyeSwgSW5jCisJCQkJS2lyYWx5aGFnbyB0ZXIgOC05CisJCQkJQnVkYXBlc3QgRXVyb3BlIDExMjYKKwkJCQlIVU5HQVJZCisKKzAwLTFELTRFICAgKGhleCkJCVRDTSBNb2JpbGUgTExDCiswMDFENEUgICAgIChiYXNlIDE2KQkJVENNIE1vYmlsZSBMTEMKKwkJCQk5MjE4IE1ldGNhbGYsCisJCQkJU3VpdGUgIzI5MworCQkJCU92ZXJsYW5kIFBhcmsgS2Fuc2FzIDY2MjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC00RiAgIChoZXgpCQlBcHBsZSBDb21wdXRlciBJbmMuCiswMDFENEYgICAgIChiYXNlIDE2KQkJQXBwbGUgQ29tcHV0ZXIgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDYWxpZm9ybmlhIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC01MCAgIChoZXgpCQlTUElORVRJWCBTQQorMDAxRDUwICAgICAoYmFzZSAxNikJCVNQSU5FVElYIFNBCisJCQkJUGFyYyBTY2llbnRpZmlxdWUgZGUgbCdFUEZMLCBC4nRpbWVudCBDCisJCQkJTGF1c2FubmUgVkQgMTAxNQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFELTUxICAgKGhleCkJCUJhYmNvY2sgJiBXaWxjb3ggUG93ZXIgR2VuZXJhdGlvbiBHcm91cCwgSW5jCiswMDFENTEgICAgIChiYXNlIDE2KQkJQmFiY29jayAmIFdpbGNveCBQb3dlciBHZW5lcmF0aW9uIEdyb3VwLCBJbmMKKwkJCQkxMTg2NCBDYW5vbiBCbHZkLCBTdWl0ZSAxMDUKKwkJCQlOZXdwb3J0IE5ld3MgVkEgMjM2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTUyICAgKGhleCkJCURlZnpvbmUgQi5WLgorMDAxRDUyICAgICAoYmFzZSAxNikJCURlZnpvbmUgQi5WLgorCQkJCVRyYW5zcG9ydGNlbnRydW0gMTAKKwkJCQlFbnNjaGVkZSBPdmVyaWpzc2VsIDc1NDcgUlcKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRC01MyAgIChoZXgpCQlTJk8gRWxlY3Ryb25pY3MgKE1hbGF5c2lhKSBTZG4uIEJoZC4KKzAwMUQ1MyAgICAgKGJhc2UgMTYpCQlTJk8gRWxlY3Ryb25pY3MgKE1hbGF5c2lhKSBTZG4uIEJoZC4KKwkJCQlMb3QgMjAyLCBCYWthciBBcmFuZworCQkJCUluZHVzdHJpYWwgRXN0YXRlCisJCQkJMDgwMDAgU3VuZ2FpIFBldGFuaSBLZWRhaCAKKwkJCQlNQUxBWVNJQQorCiswMC0xRC01NCAgIChoZXgpCQlTdW5uaWMgVGVjaG5vbG9neSAmIE1lcmNoYW5kaXNlIElOQy4KKzAwMUQ1NCAgICAgKGJhc2UgMTYpCQlTdW5uaWMgVGVjaG5vbG9neSAmIE1lcmNoYW5kaXNlIElOQy4KKwkJCQk2RiwgTk8uNzQsWkhPVS1aIFNULiwKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtNTUgICAoaGV4KQkJWkFOVEFaLCBJbmMKKzAwMUQ1NSAgICAgKGJhc2UgMTYpCQlaQU5UQVosIEluYworCQkJCTU3NTggVy4gTGFzIFBvc2l0YXMgQXZlbnVlCisJCQkJUGxlYXNhbnRvbiBDQSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNTYgICAoaGV4KQkJS3JhbWVyIEVsZWN0cm9uaWNzIEx0ZC4KKzAwMUQ1NiAgICAgKGJhc2UgMTYpCQlLcmFtZXIgRWxlY3Ryb25pY3MgTHRkLgorCQkJCTMgQW0gVmVPbGFtbyBTdHJlZXQKKwkJCQlKZXJ1c2FsZW0gIDk1NDYzCisJCQkJSVNSQUVMCisKKzAwLTFELTU3ICAgKGhleCkJCUNBRVRFQyBNZXNzdGVjaG5paworMDAxRDU3ICAgICAoYmFzZSAxNikJCUNBRVRFQyBNZXNzdGVjaG5paworCQkJCVNjaGxvc3NzdHJhc3NlIDk1YQorCQkJCU9sY2hpbmcgQmF5ZXJuIDgyMTQwCisJCQkJR0VSTUFOWQorCiswMC0xRC01OCAgIChoZXgpCQlDUSBJbmMKKzAwMUQ1OCAgICAgKGJhc2UgMTYpCQlDUSBJbmMKKwkJCQk1RiwgTm8uIDQzLCBMYW5lIDc2LCBSdWkgR3VhbmcgUm9hZAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC01OSAgIChoZXgpCQlNaXRyYSBFbmVyZ3kgJiBJbmZyYXN0cnVjdHVyZQorMDAxRDU5ICAgICAoYmFzZSAxNikJCU1pdHJhIEVuZXJneSAmIEluZnJhc3RydWN0dXJlCisJCQkJQm91bGV2YXJkIGRlIGwnRXVyb3BlIDEzMQorCQkJCTEzMDEgV2F2cmUgCisJCQkJQkVMR0lVTQorCiswMC0xRC01QSAgIChoZXgpCQkyV2lyZSBJbmMuCiswMDFENUEgICAgIChiYXNlIDE2KQkJMldpcmUgSW5jLgorCQkJCTE3MDQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuICBKb3NlIENhbGlmb3JuaWEgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTVCICAgKGhleCkJCVRlY3ZhbiBJbmZvcm1hdGljYSBMdGRhCiswMDFENUIgICAgIChiYXNlIDE2KQkJVGVjdmFuIEluZm9ybWF0aWNhIEx0ZGEKKwkJCQlSdWEgR3VhaWN1cnVzLCAxNDUKKwkJCQlWaWxhIENvbmNlaWPjbworCQkJCURpYWRlbWEgU+NvIFBhdWxvIDA5OTExLTYzMAorCQkJCUJSQVpJTAorCiswMC0xRC01QyAgIChoZXgpCQlUb20gQ29tbXVuaWNhdGlvbiBJbmR1c3RyaWFsIENvLixMdGQuCiswMDFENUMgICAgIChiYXNlIDE2KQkJVG9tIENvbW11bmljYXRpb24gSW5kdXN0cmlhbCBDby4sTHRkLgorCQkJCTExNzMgTmlwcGEtY2hvaCBLb2hva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjMtMDA1NworCQkJCUpBUEFOCisKKzAwLTFELTVEICAgKGhleCkJCUNvbnRyb2wgRHluYW1pY3MgUHR5LiBMdGQuCiswMDFENUQgICAgIChiYXNlIDE2KQkJQ29udHJvbCBEeW5hbWljcyBQdHkuIEx0ZC4KKwkJCQlQTyBCb3ggNjM2CisJCQkJTU9STEVZIFdlc3Rlcm4gQXVzdHJhbGlhIDY5NDMKKwkJCQlBVVNUUkFMSUEKKworMDAtMUQtNUUgICAoaGV4KQkJQ09NSU5HIE1FRElBIENPUlAuCiswMDFENUUgICAgIChiYXNlIDE2KQkJQ09NSU5HIE1FRElBIENPUlAuCisJCQkJQk9OQSBCbGQuIDR0aCBGbC4sIDU0OC0xOAorCQkJCURvZ29rLTFEb25nLCBLYW5nbmFtLUt1LAorCQkJCVNlb3VsICAxMzUtMTU4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELTVGICAgKGhleCkJCU92ZXJTcGVlZCBTQVJMCiswMDFENUYgICAgIChiYXNlIDE2KQkJT3ZlclNwZWVkIFNBUkwKKwkJCQkxNSwgYWxsZWUgZHUgQm9pcyBDYWlsbGV5CisJCQkJTGUgVGh1aXQtU2lnbm9sIE5vcm1hbmRpZSAyNzM3MAorCQkJCUZSQU5DRQorCiswMC0xRC02MCAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMUQ2MCAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTYxICAgKGhleCkJCUJJSiBDb3Jwb3JhdGlvbgorMDAxRDYxICAgICAoYmFzZSAxNikJCUJJSiBDb3Jwb3JhdGlvbgorCQkJCTdGIFRha2FtaXphd2EgQnVpbGRpbmcsMi03LTEwLAorCQkJCUtpdGFzYWl3YWksTmlzaGkKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjAtMDAwNAorCQkJCUpBUEFOCisKKzAwLTFELTYyICAgKGhleCkJCUluUGhhc2UgVGVjaG5vbG9naWVzCiswMDFENjIgICAgIChiYXNlIDE2KQkJSW5QaGFzZSBUZWNobm9sb2dpZXMKKwkJCQkyMDAwIFBpa2UgUm9hZAorCQkJCUxvbmdtb250IENvbG9yYWRvIDgwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC02MyAgIChoZXgpCQlNaWVsZSAmIENpZS4gS0cKKzAwMUQ2MyAgICAgKGJhc2UgMTYpCQlNaWVsZSAmIENpZS4gS0cKKwkJCQlDYXJsLU1pZWxlLVN0ci4gMjkKKwkJCQlH/HRlcnNsb2ggIDMzMzMyCisJCQkJR0VSTUFOWQorCiswMC0xRC02NCAgIChoZXgpCQlBZGFtIENvbW11bmljYXRpb25zIFN5c3RlbXMgSW50IEx0ZAorMDAxRDY0ICAgICAoYmFzZSAxNikJCUFkYW0gQ29tbXVuaWNhdGlvbnMgU3lzdGVtcyBJbnQgTHRkCisJCQkJVGhlIE1pc3Npb24KKwkJCQlXZWxsaW5ndG9uIFN0cmVldAorCQkJCVN0b2NrcG9ydCBDaGVzaGlyZSBTSzEgM0FICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUQtNjUgICAoaGV4KQkJTWljcm93YXZlIFJhZGlvIENvbW11bmljYXRpb25zCiswMDFENjUgICAgIChiYXNlIDE2KQkJTWljcm93YXZlIFJhZGlvIENvbW11bmljYXRpb25zCisJCQkJMTAxIEJpbGxlcmljYSBBdmVtdWUsIEJsZGcgNgorCQkJCU4uIEJpbGxlcmljYSBNQSAwMTg2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNjYgICAoaGV4KQkJSHl1bmRhaSBUZWxlY29tCiswMDFENjYgICAgIChiYXNlIDE2KQkJSHl1bmRhaSBUZWxlY29tCisJCQkJSHl1bmRhaSBUZWxlY29tIEJsZGcuLCA0MjczLTEyLCBTaGluZ2lsLURvbmcsIFlvdW5nZHVuZ3BvLUd1LAorCQkJCVNlb3VsICAxNTAtODU5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELTY3ICAgKGhleCkJCUFNRUMKKzAwMUQ2NyAgICAgKGJhc2UgMTYpCQlBTUVDCisJCQkJOUYsTm8uMzYwLFJ1ZWwgR3VhbmcgUmQsTmVpaHUKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtNjggICAoaGV4KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKzAwMUQ2OCAgICAgKGJhc2UgMTYpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorCQkJCVByaW5zIEJvdWRld2lqbmxhYW4gNDcgQgorCQkJCUVkZWdlbSBBbnR3ZXJwIEItMjY1MAorCQkJCUJFTEdJVU0KKworMDAtMUQtNjkgICAoaGV4KQkJS25vcnItQnJlbXNlIEFHCiswMDFENjkgICAgIChiYXNlIDE2KQkJS25vcnItQnJlbXNlIEFHCisJCQkJTW9vc2FjaGVyIFN0ci4gODAKKwkJCQlNdWVuY2hlbiBCWSA4MDgwOQorCQkJCUdFUk1BTlkKKworMDAtMUQtNkEgICAoaGV4KQkJQWxwaGEgTmV0d29ya3MgSW5jLgorMDAxRDZBICAgICAoYmFzZSAxNikJCUFscGhhIE5ldHdvcmtzIEluYy4KKwkJCQlOby44IExpLXNoaW5nIFNldmVudGggUm9hZCxTY2llbmNlLWJhc2VkCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC02QiAgIChoZXgpCQlNb3Rvcm9sYSAoZm9ybWVybHkgTmV0b3BpYSwgSW5jCiswMDFENkIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgKGZvcm1lcmx5IE5ldG9waWEsIEluYworCQkJCTYwMDEgU2hlbGxtb3VuZCBTdAorCQkJCTR0aCBGbG9vcgorCQkJCUVtZXJ5dmlsbGUgQ0EgOTQ2MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTZDICAgKGhleCkJCUNsYXJpUGh5IENvbW11bmljYXRpb25zLCBJbmMuCiswMDFENkMgICAgIChiYXNlIDE2KQkJQ2xhcmlQaHkgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkxNiBUZWNobm9sb2d5IERyLiwgU3VpdGUgMTY1CisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC02RCAgIChoZXgpCQlDb25maWRhbnQgSW50ZXJuYXRpb25hbCBMTEMKKzAwMUQ2RCAgICAgKGJhc2UgMTYpCQlDb25maWRhbnQgSW50ZXJuYXRpb25hbCBMTEMKKwkJCQkyNTMwIE1lcmlkaWFuIFBrd3kKKwkJCQlEdXJoYW0gTm9ydGggQ2Fyb2xpbmEgMjc3MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTZFICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFENkUgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUQtNkYgICAoaGV4KQkJQ2hhaW56b25lIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMUQ2RiAgICAgKGJhc2UgMTYpCQlDaGFpbnpvbmUgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCUNoYWluem9uZSBUZWNoLiBJbmQgUGFyaywgTmFueGluIDFzdCBSZC4KKwkJCQlHdWljaGVuZyBOYW5oYWkKKwkJCQlGb3NoYW4gR3Vhbmdkb25nIDUyODIwMAorCQkJCUNISU5BCisKKzAwLTFELTcwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUQ3MCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC03MSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFENzEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNzIgICAoaGV4KQkJV2lzdHJvbiBDb3Jwb3JhdGlvbgorMDAxRDcyICAgICAoYmFzZSAxNikJCVdpc3Ryb24gQ29ycG9yYXRpb24KKwkJCQkyMUYsIDg4LCBTZWMuMSwgSHNpbiBUYWkgV3UgUmQuLCBIc2ljaGloLAorCQkJCVRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTczICAgKGhleCkJCUJ1ZmZhbG8gSW5jLgorMDAxRDczICAgICAoYmFzZSAxNikJCUJ1ZmZhbG8gSW5jLgorCQkJCTE1LFNoaWJhdGEgSG9uZG9yaSA0LWNob21lLAorCQkJCU1pbmFtaS1rdQorCQkJCU5hZ295YSBBaWNoaSBQcmVmLiA0NTctODUyMAorCQkJCUpBUEFOCisKKzAwLTFELTc0ICAgKGhleCkJCVRpYW5qaW4gQ2hpbmEtU2lsaWNvbiBNaWNyb2VsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxRDc0ICAgICAoYmFzZSAxNikJCVRpYW5qaW4gQ2hpbmEtU2lsaWNvbiBNaWNyb2VsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTMwMSwzRiBCdWlsZGluZyAyMTEsTm8uMjE0IEhvbmdxaSBSb2FkLCBOYW5rYWkgRGlzdHJpY3QsIFRpYW5qaW4gQ2hpbmEKKwkJCQlUaWFuamluICAzMDAxOTAKKwkJCQlDSElOQQorCiswMC0xRC03NSAgIChoZXgpCQlSYWRpb3NjYXBlIFBMQworMDAxRDc1ICAgICAoYmFzZSAxNikJCVJhZGlvc2NhcGUgUExDCisJCQkJMSBBbGJhbnkgVGVycmFjZQorCQkJCVJlZ2VudCdzIFBhcmsgTG9uZG9uIE5XMSA0RFMKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRC03NiAgIChoZXgpCQlFeWVoZWlnaHQgTHRkLgorMDAxRDc2ICAgICAoYmFzZSAxNikJCUV5ZWhlaWdodCBMdGQuCisJCQkJVW5pdCAzNCwgUGFyayBIb3VzZQorCQkJCTE1LTE5IEdyZWVuaGlsbCBDcmVzY2VudAorCQkJCVdhdGZvcmQgSGVydHMgV0QxOCA4UEgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRC03NyAgIChoZXgpCQlOU0dhdGUKKzAwMUQ3NyAgICAgKGJhc2UgMTYpCQlOU0dhdGUKKwkJCQlSbSAxMzA0LCAzOSBLaXJwaWNobmF5YSBTdHJlZXQKKwkJCQlNb3Njb3cgIDEwNTE4NworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRC03OCAgIChoZXgpCQlJbnZlbmdvIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAxRDc4ICAgICAoYmFzZSAxNikJCUludmVuZ28gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJMy9GLE5vLlQyLUIsSGlnaC1UZWNoIEluZHVzdHJpYWwgUGFyayBTb3V0aAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xRC03OSAgIChoZXgpCQlTSUdOQU1BWCBMTEMKKzAwMUQ3OSAgICAgKGJhc2UgMTYpCQlTSUdOQU1BWCBMTEMKKwkJCQkxMDkwIFZlcm1vbnQgQXZlbnVlCisJCQkJV2FzaGluZ3RvbiBXYXNoaW5ndG9uIEQuQy4gMjAwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTdBICAgKGhleCkJCVdpZGViYW5kIFNlbWljb25kdWN0b3IsIEluYy4KKzAwMUQ3QSAgICAgKGJhc2UgMTYpCQlXaWRlYmFuZCBTZW1pY29uZHVjdG9yLCBJbmMuCisJCQkJMTM1MCBQZWFyIEF2ZQorCQkJCVN1aXRlIEMKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC03QiAgIChoZXgpCQlJY2UgRW5lcmd5LCBJbmMuCiswMDFEN0IgICAgIChiYXNlIDE2KQkJSWNlIEVuZXJneSwgSW5jLgorCQkJCTkzNTEgRWFzdG1hbiBQYXJrIERyaXZlCisJCQkJU3VpdGUgQgorCQkJCVdpbmRzb3IgQ29sb3JhZG8gODA1NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTdDICAgKGhleCkJCUFCRSBFbGV0dHJvbmljYSBTLnAuQS4KKzAwMUQ3QyAgICAgKGJhc2UgMTYpCQlBQkUgRWxldHRyb25pY2EgUy5wLkEuCisJCQkJVmlhIExlb25hcmRvIGRhIFZpbmNpLCA5MgorCQkJCUNBUkFWQUdHSU8gQkcgMjQwNDMKKwkJCQlJVEFMWQorCiswMC0xRC03RCAgIChoZXgpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorMDAxRDdEICAgICAoYmFzZSAxNikJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCisJCQkJUGluLUplbiBDaXR5LCBUYW95dWFuLAorCQkJCVBpbi1KZW4gVGFveXVhbiAzMjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTdFICAgKGhleCkJCUNpc2NvLUxpbmtzeXMsIExMQworMDAxRDdFICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMsIExMQworCQkJCTEyMSBUaGVvcnkgRHJpdmUKKwkJCQlJcnZpbmUgQ2FsaWZvcm5pYSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtN0YgICAoaGV4KQkJVGVrcm9uIEludGVybmF0aW9uYWwgTHRkCiswMDFEN0YgICAgIChiYXNlIDE2KQkJVGVrcm9uIEludGVybmF0aW9uYWwgTHRkCisJCQkJNDA5IEN1YmEgU3RyZWV0LCBBbGljZXRvd24KKwkJCQlQTyBCb3ggMzEtMjg1CisJCQkJTG93ZXIgSHV0dCBXZWxsaW5ndG9uIDUwMTAKKwkJCQlORVcgWkVBTEFORAorCiswMC0xRC04MCAgIChoZXgpCQlCZWlqaW5nIEh1YWh1YW4gRWxldHJvbmljcyBDby4sTHRkCiswMDFEODAgICAgIChiYXNlIDE2KQkJQmVpamluZyBIdWFodWFuIEVsZXRyb25pY3MgQ28uLEx0ZAorCQkJCU5vLjI2LFNoYW5nZGkgNnRoIFN0LkhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMUQtODEgICAoaGV4KQkJR1VBTkdaSE9VIEdBVEVXQVkgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKzAwMUQ4MSAgICAgKGJhc2UgMTYpCQlHVUFOR1pIT1UgR0FURVdBWSBFTEVDVFJPTklDUyBDTy4sIExURAorCQkJCUIyMCMsNEYsTm8uOSBKaWFuZ29uZyBSb2FkLFRpYW5oZSBTb2Z0d2FyZSBQYXJrLFRpYW5oZSBEaXN0cmljdCwKKwkJCQlHVUFOR1pIT1UgR3Vhbmdkb25nIDUxMDY2NQorCQkJCUNISU5BCisKKzAwLTFELTgyICAgKGhleCkJCUdOIEEvUyAoR04gTmV0Y29tIEEvUykKKzAwMUQ4MiAgICAgKGJhc2UgMTYpCQlHTiBBL1MgKEdOIE5ldGNvbSBBL1MpCisJCQkJTGF1dHJ1cGJqZXJnIDcKKwkJCQlQLk8uQm94IDk5CisJCQkJQmFsbGVydXAgIERLIC0gMjc1MAorCQkJCURFTk1BUksKKworMDAtMUQtODMgICAoaGV4KQkJRW1pdGVjaCBDb3Jwb3JhdGlvbgorMDAxRDgzICAgICAoYmFzZSAxNikJCUVtaXRlY2ggQ29ycG9yYXRpb24KKwkJCQkyRixOby43LTEsSW5kdXN0cnkgRSxSZC45CisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgMzA4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC04NCAgIChoZXgpCQlHYXRld2F5LCBJbmMuCiswMDFEODQgICAgIChiYXNlIDE2KQkJR2F0ZXdheSwgSW5jLgorCQkJCTYxMCBHYXRld2F5IERyaXZlCisJCQkJUC5PLiBCb3ggMjAwMAorCQkJCU5vcnRoIFNpb3V4IENpdHkgU291dGggRGFrb3RhIDU3MDQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC04NSAgIChoZXgpCQlDYWxsIERpcmVjdCBDZWxsdWxhciBTb2x1dGlvbnMKKzAwMUQ4NSAgICAgKGJhc2UgMTYpCQlDYWxsIERpcmVjdCBDZWxsdWxhciBTb2x1dGlvbnMKKwkJCQlTdWl0ZSAxNDUsIE5hdGlvbmFsIElubm92YXRpb24gQ2VudHJlCisJCQkJQXVzdHJhbGlhbiBUZWNobm9sb2d5IFBhcmsKKwkJCQlFdmVsZWlnaCBOU1cgMTQzMAorCQkJCUFVU1RSQUxJQQorCiswMC0xRC04NiAgIChoZXgpCQlTaGlud2EgSW5kdXN0cmllcyhDaGluYSkgTHRkLgorMDAxRDg2ICAgICAoYmFzZSAxNikJCVNoaW53YSBJbmR1c3RyaWVzKENoaW5hKSBMdGQuCisJCQkJOCBQaW5nbmFuemhvbmcgUm9hZCwgUGluZ25hbiBJbmR1c3RyaWFsIFBhcmssIFpob25na2FpIE5vLjQgUm9hZCwKKwkJCQlIdWl6aG91IENpdHkgR3Vhbmdkb25nIFByb3ZpbmNlIDUxNjAwNgorCQkJCUNISU5BCisKKzAwLTFELTg3ICAgKGhleCkJCVZpZ1RlY2ggTGFicyBTZG4gQmhkCiswMDFEODcgICAgIChiYXNlIDE2KQkJVmlnVGVjaCBMYWJzIFNkbiBCaGQKKwkJCQk0NS0xMSBUaGUgQm91bGV2YXJkIE1pZCBWYWxsZXkgQ2l0eQorCQkJCUxpbmdrYXJhbiBTeWVkIFB1dHJhCisJCQkJS3VhbGEgTHVtcHVyIFNlbGFuZ29yIDU5MjAwCisJCQkJTUFMQVlTSUEKKworMDAtMUQtODggICAoaGV4KQkJQ2xlYXJ3aXJlCiswMDFEODggICAgIChiYXNlIDE2KQkJQ2xlYXJ3aXJlCisJCQkJNDQwMCBDYXJpbGxvbiBQb2ludAorCQkJCUtpcmtsYW5kIFdhc2hpbmd0b24gOTgwMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTg5ICAgKGhleCkJCVZhdWx0U3RvciBDb3Jwb3JhdGlvbgorMDAxRDg5ICAgICAoYmFzZSAxNikJCVZhdWx0U3RvciBDb3Jwb3JhdGlvbgorCQkJCTEwMTAgQnJpb3NvIERyaXZlCisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtOEEgICAoaGV4KQkJVGVjaFRyZXggSW5jCiswMDFEOEEgICAgIChiYXNlIDE2KQkJVGVjaFRyZXggSW5jCisJCQkJNjIyMSBIaWdod2F5IDcsIFVuaXQgMTIKKwkJCQlXb29kYnJpZGdlIE9udGFsaW8gTDRIIDBLOAorCQkJCUNBTkFEQQorCiswMC0xRC04QiAgIChoZXgpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMKKzAwMUQ4QiAgICAgKGJhc2UgMTYpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMKKwkJCQlWSUFMRSBTQVJDQSAyMjIKKwkJCQlNSUxBTk8gIDIwMTI2CisJCQkJSVRBTFkKKworMDAtMUQtOEMgICAoaGV4KQkJTGEgQ3Jvc3NlIFRlY2hub2xvZ3kgTFRECiswMDFEOEMgICAgIChiYXNlIDE2KQkJTGEgQ3Jvc3NlIFRlY2hub2xvZ3kgTFRECisJCQkJMjgwOSBMb3NleSBCbHZkLiBTby4KKwkJCQlMYSBDcm9zc2UgV0kgNTQ2MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELThEICAgKGhleCkJCVJheXRlayBHbWJICiswMDFEOEQgICAgIChiYXNlIDE2KQkJUmF5dGVrIEdtYkgKKwkJCQlCbGFua2VuYnVyZ2VyIFN0ci4gMTM1CisJCQkJQmVybGluICAxMzEyNworCQkJCUdFUk1BTlkKKworMDAtMUQtOEUgICAoaGV4KQkJQWxlcmVvbiwgSW5jLgorMDAxRDhFICAgICAoYmFzZSAxNikJCUFsZXJlb24sIEluYy4KKwkJCQk3NjAwIE4uIENhcGl0YWwgb2YgVGV4YXMgSHd5CisJCQkJQmxkZyBDLCAjMjAwCisJCQkJQXVzdGluIFRYIDc4NzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC04RiAgIChoZXgpCQlQdXJlV2F2ZSBOZXR3b3JrcworMDAxRDhGICAgICAoYmFzZSAxNikJCVB1cmVXYXZlIE5ldHdvcmtzCisJCQkJMjY2MC1DIE1hcmluZSBXYXkKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC05MCAgIChoZXgpCQlFTUNPIEZsb3cgU3lzdGVtcworMDAxRDkwICAgICAoYmFzZSAxNikJCUVNQ08gRmxvdyBTeXN0ZW1zCisJCQkJMjE1MCBNaWxsZXIgRHJpdmUKKwkJCQlMb25nbW9udCBDTyA4MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtOTEgICAoaGV4KQkJRGlnaXRpemUsIEluYworMDAxRDkxICAgICAoYmFzZSAxNikJCURpZ2l0aXplLCBJbmMKKwkJCQkxNTggRWRpc29uIFJvYWQKKwkJCQlMYWtlIEhvcGF0Y29uZyBOZXcgSmVyc2V5IDA3ODQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC05MiAgIChoZXgpCQlNSUNSTy1TVEFSIElOVCdMIENPLixMVEQuCiswMDFEOTIgICAgIChiYXNlIDE2KQkJTUlDUk8tU1RBUiBJTlQnTCBDTy4sTFRELgorCQkJCU5vLjY5LExpLURlIFN0LEp1bmctSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTkzICAgKGhleCkJCU1vZGFjb20KKzAwMUQ5MyAgICAgKGJhc2UgMTYpCQlNb2RhY29tCisJCQkJSmluc3VrIEJ1aWxkaW5nIDE1MzYtNworCQkJCVNlb2Noby1Eb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCAgMTM3LTA3MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRC05NCAgIChoZXgpCQlDbGltYXggVGVjaG5vbG9neSBDby4sIEx0ZAorMDAxRDk0ICAgICAoYmFzZSAxNikJCUNsaW1heCBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJTm8uIDI1OCwgSHNpbiBIdSAybmQgUm9hZAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpIENpdHkgVGFpcGVpIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtOTUgICAoaGV4KQkJRmxhc2gsIEluYy4KKzAwMUQ5NSAgICAgKGJhc2UgMTYpCQlGbGFzaCwgSW5jLgorCQkJCTM3MDMgTi4gMjAwdGggU3QuCisJCQkJRWxraG9ybiBORSA2ODAyMi0yOTIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC05NiAgIChoZXgpCQlXYXRjaEd1YXJkIFZpZGVvCiswMDFEOTYgICAgIChiYXNlIDE2KQkJV2F0Y2hHdWFyZCBWaWRlbworCQkJCTMwMDEgU3VtbWl0IEF2ZS4KKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtOTcgICAoaGV4KQkJQWxlcnR1cyBUZWNobm9sb2dpZXMgTExDCiswMDFEOTcgICAgIChiYXNlIDE2KQkJQWxlcnR1cyBUZWNobm9sb2dpZXMgTExDCisJCQkJMTE3ODUgQmVsdHN2aWxsZSBEcml2ZQorCQkJCVN1aXRlIDEzMjUKKwkJCQlCZWx0c3ZpbGxlIE1EIDIwNzA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC05OCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRDk4ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRC05OSAgIChoZXgpCQlDeWFuIE9wdGljLCBJbmMuCiswMDFEOTkgICAgIChiYXNlIDE2KQkJQ3lhbiBPcHRpYywgSW5jLgorCQkJCTEzOTAgTi4gTWNEb3dlbGwgQmx2ZAorCQkJCVN1aXRlIEctMzI3CisJCQkJUGV0YWx1bWEgQ0EgOTQ5NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTlBICAgKGhleCkJCUdPREVYIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQKKzAwMUQ5QSAgICAgKGJhc2UgMTYpCQlHT0RFWCBJTlRFUk5BVElPTkFMIENPLiwgTFRECisJCQkJNEYuIE5PLjE2OCwgTGlhbi1DaGVuZyBSb2FkIENodW5nLUhvIENpdHksCisJCQkJVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtOUIgICAoaGV4KQkJSG9rdXlvIEF1dG9tYXRpYyBDby4sIEx0ZC4KKzAwMUQ5QiAgICAgKGJhc2UgMTYpCQlIb2t1eW8gQXV0b21hdGljIENvLiwgTHRkLgorCQkJCU5paXRha2EgMS0xMC05CisJCQkJWW9kb2dhd2EtS3UKKwkJCQlPc2FrYSAgNTMyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0xRC05QyAgIChoZXgpCQlSb2Nrd2VsbCBBdXRvbWF0aW9uCiswMDFEOUMgICAgIChiYXNlIDE2KQkJUm9ja3dlbGwgQXV0b21hdGlvbgorCQkJCTEgQWxsZW4tQnJhZGxleSBEcml2ZQorCQkJCUNTLUMyMzkKKwkJCQlNYXlmaWVsZCBIZWlnaHRzIE9oaW8gNDQxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTlEICAgKGhleCkJCUFSVEpPWSBJTlRFUk5BVElPTkFMIExJTUlURUQKKzAwMUQ5RCAgICAgKGJhc2UgMTYpCQlBUlRKT1kgSU5URVJOQVRJT05BTCBMSU1JVEVECisJCQkJUm9vbSAxNjAxLE5vLjIzOSBaaG9uZ1hpbmcgUm9hZCxMdW9IdSBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDEKKwkJCQlDSElOQQorCiswMC0xRC05RSAgIChoZXgpCQlBWElPTiBURUNITk9MT0dJRVMKKzAwMUQ5RSAgICAgKGJhc2UgMTYpCQlBWElPTiBURUNITk9MT0dJRVMKKwkJCQkxNTEgUlVFIFBBUkMgSU5OT1ZBVElPTgorCQkJCUxBIFBPQ0FUSUVSRSBRVUVCRUMgRzBSMVowCisJCQkJQ0FOQURBCisKKzAwLTFELTlGICAgKGhleCkJCU1BVFQgICBSLlAuVHJhY3p5bnNjeSBTcC5KLgorMDAxRDlGICAgICAoYmFzZSAxNikJCU1BVFQgICBSLlAuVHJhY3p5bnNjeSBTcC5KLgorCQkJCVBvbG5vY25hIDQ0CisJCQkJS29zY2lhbiB3aWVsa29wb2xza2llIFBMLTY0MDAwCisJCQkJUE9MQU5ECisKKzAwLTFELUEwICAgKGhleCkJCUhlbmcgWXUgRWxlY3Ryb25pYyBNYW51ZmFjdHVyaW5nIENvbXBhbnkgTGltaXRlZAorMDAxREEwICAgICAoYmFzZSAxNikJCUhlbmcgWXUgRWxlY3Ryb25pYyBNYW51ZmFjdHVyaW5nIENvbXBhbnkgTGltaXRlZAorCQkJCVJvb20gMTAwNCwgSFNIIE1vbmdrb2sgUGxhemEsCisJCQkJNzk0LTgwMiBOYXRoYW4gUm9hZCwKKwkJCQlLb3dsb29uICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUQtQTEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxREExICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUEyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMURBMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1BMyAgIChoZXgpCQlTYWJpT3NvCiswMDFEQTMgICAgIChiYXNlIDE2KQkJU2FiaU9zbworCQkJCTE4OSBTIFN0YXRlIFN1aXRlICMyNTAKKwkJCQlDbGVhcmZpZWxkIFV0YWggODQwMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUE0ICAgKGhleCkJCUhhbmd6aG91IFN5c3RlbSBUZWNobm9sb2d5IENPLiwgTFRECiswMDFEQTQgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgU3lzdGVtIFRlY2hub2xvZ3kgQ08uLCBMVEQKKwkJCQlST09NIEExNTA1IEh1YVhpbmcgdGltZXMgcGxhemEsTk8gNDc4IFdlbnNhbiBSb2FkCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworMDAtMUQtQTUgICAoaGV4KQkJV0IgRWxlY3Ryb25pY3MKKzAwMURBNSAgICAgKGJhc2UgMTYpCQlXQiBFbGVjdHJvbmljcworCQkJCUxhbmdlbGFuZHN2ZWogMUEKKwkJCQlIZXJuaW5nIEhlcm5pbmcgNzQwMAorCQkJCURFTk1BUksKKworMDAtMUQtQTYgICAoaGV4KQkJTWVkaWEgTnVtZXJpY3MgTGltaXRlZAorMDAxREE2ICAgICAoYmFzZSAxNikJCU1lZGlhIE51bWVyaWNzIExpbWl0ZWQKKwkJCQlSb2RlbmJhY2hlciBDaGF1c3NlZSA2CisJCQkJSGFuYXUgSGVzc2VuIDYzNDU3CisJCQkJR0VSTUFOWQorCiswMC0xRC1BNyAgIChoZXgpCQlTZWFtbGVzcyBJbnRlcm5ldAorMDAxREE3ICAgICAoYmFzZSAxNikJCVNlYW1sZXNzIEludGVybmV0CisJCQkJMjA1MCBSdXNzZXR0IFdheSBTdWl0ZSAzMzgKKwkJCQlDYXJzb24gQ2l0eSBOZXZhZGEgODk3MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUE4ICAgKGhleCkJCVRha2FoYXRhIEVsZWN0cm9uaWNzIENvLixMdGQKKzAwMURBOCAgICAgKGJhc2UgMTYpCQlUYWthaGF0YSBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJMTE4OCxLdWJvdGEsS3Vib3RhLW1hY2hpCisJCQkJWW9uZXphd2Etc2hpIFlhbWFnYXRhLVByZWYuIDk5Mi0wMDAzCisJCQkJSkFQQU4KKworMDAtMUQtQTkgICAoaGV4KQkJQ2FzdGxlcyBUZWNobm9sb2d5LCBDby4sIExURAorMDAxREE5ICAgICAoYmFzZSAxNikJCUNhc3RsZXMgVGVjaG5vbG9neSwgQ28uLCBMVEQKKwkJCQkyRiwgTm8uMjA1LCBTZWMgMyBCZWlzaGluIFJkLiwKKwkJCQlIc2luLVRpZW4gQ2l0eSBUYWlwZWkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC1BQSAgIChoZXgpCQlEcmF5VGVrIENvcnAuCiswMDFEQUEgICAgIChiYXNlIDE2KQkJRHJheVRlayBDb3JwLgorCQkJCU5vLiAyNiwgRnUtU2hpbmcgUm9hZAorCQkJCUh1S291IENvdW50eSwgSHNpbi1DaHUgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbi1DaHUgIDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtQUIgICAoaGV4KQkJU3dpc3NRdWFsIExpY2Vuc2UgQUcKKzAwMURBQiAgICAgKGJhc2UgMTYpCQlTd2lzc1F1YWwgTGljZW5zZSBBRworCQkJCUJhYXJlcnN0cmFzc2UgNzgKKwkJCQladWcgUG9zdGZhY2ggMTE3CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUQtQUMgICAoaGV4KQkJR2lnYW1vbiBTeXN0ZW1zIExMQworMDAxREFDICAgICAoYmFzZSAxNikJCUdpZ2Ftb24gU3lzdGVtcyBMTEMKKwkJCQk1OTggR2licmFsdGFyIERyaXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUFEICAgKGhleCkJCVNpbm90ZWNoIEVuZ2luZWVyaW5nIENvbnN1bHRhbnRzLCBJbmMuICBHZW90ZWNobmljYWwgRW5naW5lZQorMDAxREFEICAgICAoYmFzZSAxNikJCVNpbm90ZWNoIEVuZ2luZWVyaW5nIENvbnN1bHRhbnRzLCBJbmMuICBHZW90ZWNobmljYWwgRW5naW5lZQorCQkJCUJhc2VtZW50IE5vLjcgTGFuZSAyNiwgWWF0LVNlbiBSZC4KKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtQUUgICAoaGV4KQkJQ0hBTkcgVFNFTkcgVEVDSE5PTE9HWSBDTy4sIExURAorMDAxREFFICAgICAoYmFzZSAxNikJCUNIQU5HIFRTRU5HIFRFQ0hOT0xPR1kgQ08uLCBMVEQKKwkJCQkyRiBOTy4xNjAgQkFDSyBCVUlMRElORywgTEVOIENIRU5HIFJELiwgQ0hVTkcgSE8gQ0lUWQorCQkJCVRBSVBFSSBIU0lFTiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELUFGICAgKGhleCkJCU5vcnRlbAorMDAxREFGICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xRC1CMCAgIChoZXgpCQlGdUppYW4gSGVuZ1RvbmcgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkCiswMDFEQjAgICAgIChiYXNlIDE2KQkJRnVKaWFuIEhlbmdUb25nIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCU5vLjE0LTgwNCxCdWlsZGluZyAyLEppblhpdUZ1Q2hlbmcsTm8uMzM4LEh1YUxpbiBSb2FkCisJCQkJRnVaaG91IENpdHkgRnVKaWFuIFByb3ZpbmNlIDM1MDAwMQorCQkJCUNISU5BCisKKzAwLTFELUIxICAgKGhleCkJCUNyZXNjZW5kbyBOZXR3b3JrcworMDAxREIxICAgICAoYmFzZSAxNikJCUNyZXNjZW5kbyBOZXR3b3JrcworCQkJCTYgWW9uaSBOZXRhbnlhaHUgU3QuCisJCQkJT3ItWWVodWRhICA2MDM3NgorCQkJCUlTUkFFTAorCiswMC0xRC1CMiAgIChoZXgpCQlIT0tLQUlETyBFTEVDVFJJQyBFTkdJTkVFUklORyBDTy4sTFRELgorMDAxREIyICAgICAoYmFzZSAxNikJCUhPS0tBSURPIEVMRUNUUklDIEVOR0lORUVSSU5HIENPLixMVEQuCisJCQkJU291dGgxNS1XZXN0MjMKKwkJCQlOYW5wb3JvLUNobyBIb2trYWlkbyAwNjktMDIxNQorCQkJCUpBUEFOCisKKzAwLTFELUIzICAgKGhleCkJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKzAwMURCMyAgICAgKGJhc2UgMTYpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCisJCQkJODAwMCBGb290aGlsbHMgQmx2ZAorCQkJCVJvc2V2aWxsZSBDQSA5NTc0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQjQgICAoaGV4KQkJS1VNSE8gRU5HIENPLixMVEQKKzAwMURCNCAgICAgKGJhc2UgMTYpCQlLVU1ITyBFTkcgQ08uLExURAorCQkJCTQ5OC0xMywgSFlVTkRBSSBCL0QgNUYKKwkJCQlQWUVPTkdSSSAzLURPTkcsIFNFTy1HVQorCQkJCURBRUdVICA3MDMtODM1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELUI1ICAgKGhleCkJCUp1bmlwZXIgbmV0d29ya3MKKzAwMURCNSAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIG5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUI2ICAgKGhleCkJCUJlc3RDb21tIE5ldHdvcmtzLCBJbmMuCiswMDFEQjYgICAgIChiYXNlIDE2KQkJQmVzdENvbW0gTmV0d29ya3MsIEluYy4KKwkJCQk0NDAwIEUuIEJyb2Fkd2F5IEJsdmQuCisJCQkJU3VpdGUgMjAxCisJCQkJVHVjc29uIEFaIDg1NzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1CNyAgIChoZXgpCQlUZW5kcmlsIE5ldHdvcmtzLCBJbmMuCiswMDFEQjcgICAgIChiYXNlIDE2KQkJVGVuZHJpbCBOZXR3b3JrcywgSW5jLgorCQkJCTU3MDAtRCBGbGF0aXJvbiBQYXJrd2F5CisJCQkJU3VpdGUgNTcwMC1ECisJCQkJQm91bGRlciBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQjggICAoaGV4KQkJSW50b3RvIEluYy4KKzAwMURCOCAgICAgKGJhc2UgMTYpCQlJbnRvdG8gSW5jLgorCQkJCTMxMDAgRGUgTGEgQ3J1eiBCbHZkLiAgIzMwMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1COSAgIChoZXgpCQlXZWxsc3ByaW5nIFdpcmVsZXNzCiswMDFEQjkgICAgIChiYXNlIDE2KQkJV2VsbHNwcmluZyBXaXJlbGVzcworCQkJCTEwNyBNYWdlbGxhIENvdXJ0CisJCQkJTm9ydGggV2FsZXMgUGEgMTk0NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUJBICAgKGhleCkJCVNvbnkgQ29ycG9yYXRpb24KKzAwMURCQSAgICAgKGJhc2UgMTYpCQlTb255IENvcnBvcmF0aW9uCisJCQkJR290ZW55YW1hIFRlYyw1LTEtMTIsCisJCQkJS2l0YXNoaW5hZ2F3YQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAwMQorCQkJCUpBUEFOCisKKzAwLTFELUJCICAgKGhleCkJCUR5bmFtaWMgU3lzdGVtIEVsZWN0cm9uaWNzIENvcnAuCiswMDFEQkIgICAgIChiYXNlIDE2KQkJRHluYW1pYyBTeXN0ZW0gRWxlY3Ryb25pY3MgQ29ycC4KKwkJCQk1RixOTyw5LExBTkUgMTMwLFNFQyAxLEtVQU5HRyBGVSBSRC5TQU4gQ0hVTkcgQ0lUWSwKKwkJCQlUYWlwZWkgSHNpZW4gMjQxNTgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELUJDICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAxREJDICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFELUJEICAgKGhleCkJCVZlcnNhbWVkIEluYy4KKzAwMURCRCAgICAgKGJhc2UgMTYpCQlWZXJzYW1lZCBJbmMuCisJCQkJMiBCbHVlIEhpbGwgUGxhemEKKwkJCQlQZWFybCBSaXZlciBOWSAxMDk2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQkUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDFEQkUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjAwIE4uIFVTIDQ1CisJCQkJTGliZXJ0eXZpbGxlIElsbGlub2lzIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1CRiAgIChoZXgpCQlSYWRpaWVudCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMURCRiAgICAgKGJhc2UgMTYpCQlSYWRpaWVudCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyMDg0LUEgV2Fsc2ggQXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUMwICAgKGhleCkJCUVucGhhc2UgRW5lcmd5CiswMDFEQzAgICAgIChiYXNlIDE2KQkJRW5waGFzZSBFbmVyZ3kKKwkJCQkyMDEgMXN0IFN0cmVldCwgU3VpdGUgMTExCisJCQkJUGV0YWx1bWEgQ0EgOTQ5NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUMxICAgKGhleCkJCUF1ZGluYXRlIFB0eSBMCiswMDFEQzEgICAgIChiYXNlIDE2KQkJQXVkaW5hdGUgUHR5IEwKKwkJCQlMZXZlbCAxLCA0NTggV2F0dGxlIFN0CisJCQkJVWx0aW1vIE5TVyAyMDA3CisJCQkJQVVTVFJBTElBCisKKzAwLTFELUMyICAgKGhleCkJCVhPUlRFQyBPWQorMDAxREMyICAgICAoYmFzZSAxNikJCVhPUlRFQyBPWQorCQkJCUj2eXTkbfZudGllIDYKKwkJCQlMZW1w5ORs5CBQaXJrYW5tYWEgMzM4ODAKKwkJCQlGSU5MQU5ECisKKzAwLTFELUMzICAgKGhleCkJCVJJS09SIFRWLCBMdGQKKzAwMURDMyAgICAgKGJhc2UgMTYpCQlSSUtPUiBUViwgTHRkCisJCQkJS29zdG9tYXJvdnNreSBwZXIuLDMKKwkJCQlNb3Njb3cgIDEwNTEyMAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRC1DNCAgIChoZXgpCQlBSU9JIFN5c3RlbXMgQ28uLCBMdGQuCiswMDFEQzQgICAgIChiYXNlIDE2KQkJQUlPSSBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCUtEWCBPbW9yaSwgQmxkZy4gOEYKKwkJCQkxLTYtOCBPbW9yaSBLaXRhLCBPdGEta3UKKwkJCQlUb2t5byAgMTQzLTAwMTYKKwkJCQlKQVBBTgorCiswMC0xRC1DNSAgIChoZXgpCQlCZWlqaW5nIEppYXh1biBGZWlob25nIEVsZWN0cmljaWFsIENvLiwgTHRkLgorMDAxREM1ICAgICAoYmFzZSAxNikJCUJlaWppbmcgSmlheHVuIEZlaWhvbmcgRWxlY3RyaWNpYWwgQ28uLCBMdGQuCisJCQkJRWxlY3RyaWNhbCBCdWlsZGluZyxOby4gMzEgSmlhb2RhIEVhc3QgUm9hZCwKKwkJCQlCZWlqaW5nIEhhaWRpYW4gRGlzdHJpY3QsIDEwMDA0NAorCQkJCUNISU5BCisKKzAwLTFELUM2ICAgKGhleCkJCVNOUiBJbmMuCiswMDFEQzYgICAgIChiYXNlIDE2KQkJU05SIEluYy4KKwkJCQlWQklDIFQyMjNobywgSUNVLCAxMDMtNiBNdW5qaS1kb25nLCBZb3VzZW9uZy1ndQorCQkJCURhZWplb24gIDMwNS03MzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUQtQzcgICAoaGV4KQkJTC0zIENvbW11bmljYXRpb25zIEdlbmV2YSBBZXJvc3BhY2UKKzAwMURDNyAgICAgKGJhc2UgMTYpCQlMLTMgQ29tbXVuaWNhdGlvbnMgR2VuZXZhIEFlcm9zcGFjZQorCQkJCTQyNDAgSW50ZXJuYXRpb25hbCBQYXJrd2F5CisJCQkJU3VpdGUgMTAwCisJCQkJQ2Fycm9sbHRvbiBUZXhhcyA3NTAwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQzggICAoaGV4KQkJU2NhZGFNZXRyY3MsIExMQy4KKzAwMURDOCAgICAgKGJhc2UgMTYpCQlTY2FkYU1ldHJjcywgTExDLgorCQkJCTU5NSBWaXN0YSBIaWxscyBDb3VydAorCQkJCUV1cmVrYSBNaXNzb3VyaSA2MzAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQzkgICAoaGV4KQkJR2FpblNwYW4gQ29ycC4KKzAwMURDOSAgICAgKGJhc2UgMTYpCQlHYWluU3BhbiBDb3JwLgorCQkJCVAuTy4gQm94IDIyMzU4MAorCQkJCUNhcm1lbCBDQSA5MzkyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQ0EgICAoaGV4KQkJUEFWIEVsZWN0cm9uaWNzIExpbWl0ZWQKKzAwMURDQSAgICAgKGJhc2UgMTYpCQlQQVYgRWxlY3Ryb25pY3MgTGltaXRlZAorCQkJCTcgTGF2ZXJvY2sgUm9hZAorCQkJCVN0aXJsaW5nIFJvYWQgSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlBaXJkcmllIExhbmFya3NoaXJlIE1MNiA3VUQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRC1DQiAgIChoZXgpCQlFeOlucyBEZXZlbG9wbWVudCBPeQorMDAxRENCICAgICAoYmFzZSAxNikJCUV46W5zIERldmVsb3BtZW50IE95CisJCQkJS2F1cHBha2F0dSAzNgorCQkJCUthamFhbmkgS2FpbnV1IDg3MTAwCisJCQkJRklOTEFORAorCiswMC0xRC1DQyAgIChoZXgpCQlIZXRyYSBTZWN1cmUgU29sdXRpb25zCiswMDFEQ0MgICAgIChiYXNlIDE2KQkJSGV0cmEgU2VjdXJlIFNvbHV0aW9ucworCQkJCTIzNTAgQ29tbWVyY2UgUGFyayBEci4KKwkJCQlQYWxtIEJheSBGTCAzMjkwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQ0QgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMURDRCAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQ0UgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMURDRSAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQ0YgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMURDRiAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDAgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMUREMCAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDEgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMUREMSAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDIgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMUREMiAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDMgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMUREMyAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDQgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMURENCAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDUgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMURENSAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDYgICAoaGV4KQkJQVJSSVMgR3JvdXAsIEluYy4KKzAwMURENiAgICAgKGJhc2UgMTYpCQlBUlJJUyBHcm91cCwgSW5jLgorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDcgICAoaGV4KQkJQWxnb2xpdGgKKzAwMURENyAgICAgKGJhc2UgMTYpCQlBbGdvbGl0aAorCQkJCTQwMCBJc2FiZXkKKwkJCQlTYWludC1MYXVyZW50IFFjIEg0VCAxVjMKKwkJCQlDQU5BREEKKworMDAtMUQtRDggICAoaGV4KQkJTWljcm9zb2Z0IENvcnBvcmF0aW9uCiswMDFERDggICAgIChiYXNlIDE2KQkJTWljcm9zb2Z0IENvcnBvcmF0aW9uCisJCQkJT25lIE1pY3Jvc29mdCBXYXkKKwkJCQlSZWRtb25kIFdhc2hpbmd0b24gOTgwNTItNjM5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRDkgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLixMdGQuCiswMDFERDkgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLixMdGQuCisJCQkJNjYsQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELURBICAgKGhleCkJCU1pa3JvZWxla3Ryb25pa2Egc3BvbC4gcyByLiBvLgorMDAxRERBICAgICAoYmFzZSAxNikJCU1pa3JvZWxla3Ryb25pa2Egc3BvbC4gcyByLiBvLgorCQkJCURy4WJ5IDg0OQorCQkJCVZ5c29r6SBN/XRvIENaIDU2NiAwMQorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTFELURCICAgKGhleCkJCUMtQkVMIENvcnBvcmF0aW9uCiswMDFEREIgICAgIChiYXNlIDE2KQkJQy1CRUwgQ29ycG9yYXRpb24KKwkJCQlGdXRhYmFjaG8gMzUtMTIKKwkJCQk2RiBPa2FkYSBCaWxkZworCQkJCUl0YWJhc2hpLWt1IFRva3lvIDE3My0wMDExCisJCQkJSkFQQU4KKworMDAtMUQtREMgICAoaGV4KQkJSGFuZ1pob3UgRGVDaGFuZ0xvbmcgVGVjaCZJbmZvIENvLixMdGQKKzAwMUREQyAgICAgKGJhc2UgMTYpCQlIYW5nWmhvdSBEZUNoYW5nTG9uZyBUZWNoJkluZm8gQ28uLEx0ZAorCQkJCVJvb20gMTEwMixLZUppIE1hbnNpb24sCisJCQkJRWFzdCBTb2Z0d2FyZSBQYXJrLDkwIFdlblNhbiBSb2FkLgorCQkJCUhhbmdaaG91IFpoZUppYW5nIDMxMDAxMgorCQkJCUNISU5BCisKKzAwLTFELUREICAgKGhleCkJCURBVCBILksuIExJTUlURUQKKzAwMURERCAgICAgKGJhc2UgMTYpCQlEQVQgSC5LLiBMSU1JVEVECisJCQkJU3VpdGUgMTQwNSAxNC9GLiwgQ2l0eSBQbGF6YSA0LCBUYWkgS29vIFdhbiBSZCwKKwkJCQlUYWkgS29vIFNoaW5nIEhvbmcgS29uZyBJc2xhbmQgMDY0ODI4CisJCQkJSE9ORyBLT05HCisKKzAwLTFELURFICAgKGhleCkJCVpoZWppYW5nIEJyb2FkY2FzdCZUZWxldmlzaW9uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMURERSAgICAgKGJhc2UgMTYpCQlaaGVqaWFuZyBCcm9hZGNhc3QmVGVsZXZpc2lvbiBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJQnVpbGRpbmcgTm8uMTYsWGlkb3VtZW4gSW5kdXN0cnkgUGFyayxXZW55aSBSb2FkLAorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDAxMgorCQkJCUNISU5BCisKKzAwLTFELURGICAgKGhleCkJCVN1bml0ZWMgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKzAwMURERiAgICAgKGJhc2UgMTYpCQlTdW5pdGVjIEVudGVycHJpc2UgQ28uLCBMdGQuCisJCQkJM0YuLCBOby4gOTgtMSwgTWluY3l1YW4gUmQuCisJCQkJU2luZGlhbiBDaXR5IFRhaXBlaSBDb3VudHkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC1FMCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMURFMCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFELUUxICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxREUxICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMUQtRTIgICAoaGV4KQkJUmFkaW9ub3IgQ29tbXVuaWNhdGlvbnMKKzAwMURFMiAgICAgKGJhc2UgMTYpCQlSYWRpb25vciBDb21tdW5pY2F0aW9ucworCQkJCUluZ3ZhbGQgWXN0Z2FhcmRzIHZlZyAyMworCQkJCVRyb25kaGVpbSBUUkQgNzA0NgorCQkJCU5PUldBWQorCiswMC0xRC1FMyAgIChoZXgpCQlJbnR1aWNvbQorMDAxREUzICAgICAoYmFzZSAxNikJCUludHVpY29tCisJCQkJMTg4MCBTLiBGbGF0aXJvbiBDdC4KKwkJCQlTdWl0ZSBSCisJCQkJQm91bGRlciBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRTQgICAoaGV4KQkJVmlzaW9uZWVyZWQgSW1hZ2UgU3lzdGVtcworMDAxREU0ICAgICAoYmFzZSAxNikJCVZpc2lvbmVlcmVkIEltYWdlIFN5c3RlbXMKKwkJCQkxMDU2MSBHYXJkZW4gR3JvdmUgQmx2ZAorCQkJCUdhcmRlbiBHcm92ZSBDYWxpZm9ybmlhIDkyODQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1FNSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFERTUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRTYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxREU2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUU3ICAgKGhleCkJCU1hcmluZSBTb25pYyBUZWNobm9sb2d5LCBMdGQuCiswMDFERTcgICAgIChiYXNlIDE2KQkJTWFyaW5lIFNvbmljIFRlY2hub2xvZ3ksIEx0ZC4KKwkJCQk1NTA4IEdlb3JnZSBXYXNoaW5ndG9uIE1lbW9yaWFsIEhpZ2h3YXkKKwkJCQlQLk8uIEJveCA3MzAKKwkJCQlXaGl0ZSBNYXJzaCBWaXJnaW5pYSAyMzE4MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRTggICAoaGV4KQkJTmlra28gRGVua2kgVHN1c2hpbiBDb21wYW55KE5EVEMpCiswMDFERTggICAgIChiYXNlIDE2KQkJTmlra28gRGVua2kgVHN1c2hpbiBDb21wYW55KE5EVEMpCisJCQkJNDQwIEthbW9zaGlkYS10b3duLCBBb2JhLWt1CisJCQkJWW9rb2hhbWEgIDIyNy0wMDMzCisJCQkJSkFQQU4KKworMDAtMUQtRTkgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMURFOSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUQtRUEgICAoaGV4KQkJQ29tbXRlc3QgSW5zdHJ1bWVudHMgTHRkCiswMDFERUEgICAgIChiYXNlIDE2KQkJQ29tbXRlc3QgSW5zdHJ1bWVudHMgTHRkCisJCQkJTGV2ZWwgMiwgMjIgTW9vcmhvdXNlIEF2ZQorCQkJCUNocmlzdGNodXJjaCBDYW50ZXJidXJ5IDgyNDMKKwkJCQlORVcgWkVBTEFORAorCiswMC0xRC1FQiAgIChoZXgpCQlESU5FQyBJbnRlcm5hdGlvbmFsCiswMDFERUIgICAgIChiYXNlIDE2KQkJRElORUMgSW50ZXJuYXRpb25hbAorCQkJCVJ1ZSBkZSBsYSBHYXJlLCAzMAorCQkJCUJSQUlORSBMJ0FMTEVVRCBCUkFCQU5UIFdBTExPTiAxNDIwCisJCQkJQkVMR0lVTQorCiswMC0xRC1FQyAgIChoZXgpCQlNYXJ1c3lzCiswMDFERUMgICAgIChiYXNlIDE2KQkJTWFydXN5cworCQkJCUV1bnN1bmcgQmxkZy4gNUYKKwkJCQk1My04IENodW5nRGFtLURvbmcgS2FuZ05hbS1LdQorCQkJCVNlb3VsICAxMzUtNzYzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELUVEICAgKGhleCkJCUdyaWQgTmV0LCBJbmMuCiswMDFERUQgICAgIChiYXNlIDE2KQkJR3JpZCBOZXQsIEluYy4KKwkJCQkzNDAgQnJhbm5hbiBTdHJlZXQKKwkJCQlTdWl0ZSA1MDEKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1FRSAgIChoZXgpCQlORVhUVklTSU9OIFNJU1RFTUFTIERJR0lUQUlTIERFIFRFTEVWSVPDTyBMVERBLgorMDAxREVFICAgICAoYmFzZSAxNikJCU5FWFRWSVNJT04gU0lTVEVNQVMgRElHSVRBSVMgREUgVEVMRVZJU8NPIExUREEuCisJCQkJQWxhbWVkYSBSaW8gTmVncm8sIDEwMzAgLSAxOW8uIGFuZGFyIGNvbmouIDE5MDQKKwkJCQlCYXJ1ZXJpIFPjbyBQYXVsbyAwNjQ1NC0wMDAKKwkJCQlCUkFaSUwKKworMDAtMUQtRUYgICAoaGV4KQkJVFJJTU0sIElOQy4KKzAwMURFRiAgICAgKGJhc2UgMTYpCQlUUklNTSwgSU5DLgorCQkJCTQwNyBSQUlMUk9BRCBTVFJFRVQKKwkJCQlCVVRORVIgTkMgMjc1MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUYwICAgKGhleCkJCVZpZGllbnQgU3lzdGVtcywgSW5jLgorMDAxREYwICAgICAoYmFzZSAxNikJCVZpZGllbnQgU3lzdGVtcywgSW5jLgorCQkJCTQwMDAgQnVydG9uIERyaXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTQwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUYxICAgKGhleCkJCUludGVnbyBTeXN0ZW1zLCBJbmMuCiswMDFERjEgICAgIChiYXNlIDE2KQkJSW50ZWdvIFN5c3RlbXMsIEluYy4KKwkJCQk1MzQzIEJvd2RlbiBSb2FkCisJCQkJSmFja3NvbnZpbGxlIEZMIDMyMjE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1GMiAgIChoZXgpCQlOZXRmbGl4LCBJbmMuCiswMDFERjIgICAgIChiYXNlIDE2KQkJTmV0ZmxpeCwgSW5jLgorCQkJCTEwMCBXaW5jaGVzdGVyIENpcmNsZQorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRjMgICAoaGV4KQkJU0JTIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLiwgTHRkCiswMDFERjMgICAgIChiYXNlIDE2KQkJU0JTIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJVzItQjUvNiBIaWdoLXRlY2ggaW5kdXN0cmlhbCBwYXJrCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTFELUY0ICAgKGhleCkJCU1hZ2VsbGFuIFRlY2hub2xvZ3kgUHR5IExpbWl0ZWQKKzAwMURGNCAgICAgKGJhc2UgMTYpCQlNYWdlbGxhbiBUZWNobm9sb2d5IFB0eSBMaW1pdGVkCisJCQkJNjUgSm9obnN0b24gU3RyZWV0CisJCQkJQW5uYW5kYWxlIE5TVyAyMDAwCisJCQkJQVVTVFJBTElBCisKKzAwLTFELUY1ICAgKGhleCkJCVN1bnNoaW5lIENvLExURAorMDAxREY1ICAgICAoYmFzZSAxNikJCVN1bnNoaW5lIENvLExURAorCQkJCTEtMy01IEtvamltYWNoaQorCQkJCUNoaXlvZGEta3UKKwkJCQlUT0tZTyBLYW50byByZWdpb24gMTAyLTAwODMKKwkJCQlKQVBBTgorCiswMC0xRC1GNiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzAwMURGNiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUQtRjcgICAoaGV4KQkJUi4gU1RBSEwgU2NoYWx0Z2Vy5HRlIEdtYkgKKzAwMURGNyAgICAgKGJhc2UgMTYpCQlSLiBTVEFITCBTY2hhbHRnZXLkdGUgR21iSAorCQkJCWFtIEJhaG5ob2YgMzAKKwkJCQlXYWxkZW5idXJnIEJhZGVuIFf8cnR0ZW1iZXJnIDc0NjM4CisJCQkJR0VSTUFOWQorCiswMC0xRC1GOCAgIChoZXgpCQlXZWJwcm8gVmlzaW9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMURGOCAgICAgKGJhc2UgMTYpCQlXZWJwcm8gVmlzaW9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Ri4sIE5vLjU3MywgQ2luZ3BpbmcgUmQuCisJCQkJQW5waW5nIERpc3RyaWN0ICA3MDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELUY5ICAgKGhleCkJCUN5YmlvdHJvbmljcyAoRmFyIEVhc3QpIExpbWl0ZWQKKzAwMURGOSAgICAgKGJhc2UgMTYpCQlDeWJpb3Ryb25pY3MgKEZhciBFYXN0KSBMaW1pdGVkCisJCQkJVW5pdCAxOTA2LCBFYXN0ZXJuIENlbnRyZSwKKwkJCQkxMDY1IEtpbmcncyBSb2FkLAorCQkJCVF1YXJyeSBCYXkgIAorCQkJCUhPTkcgS09ORworCiswMC0xRC1GQSAgIChoZXgpCQlGdWppYW4gTEFOREkgQ29tbWVyY2lhbCBFcXVpcG1lbnQgQ28uLEx0ZAorMDAxREZBICAgICAoYmFzZSAxNikJCUZ1amlhbiBMQU5ESSBDb21tZXJjaWFsIEVxdWlwbWVudCBDby4sTHRkCisJCQkJQnVpbGRpbmcgMjMsdGhlIDFzdCBzZWN0aW9uLFNvZnR3YXJlIEdhcmRlbgorCQkJCU5vLjg5IFNvZnR3YXJlIFJvYWQsCisJCQkJRnV6aG91IEZ1amlhbiAzNTAwMDMKKwkJCQlDSElOQQorCiswMC0xRC1GQiAgIChoZXgpCQlORVRDTEVVUyBTeXN0ZW1zIENvcnBvcmF0aW9uCiswMDFERkIgICAgIChiYXNlIDE2KQkJTkVUQ0xFVVMgU3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTNGLCBEYWlpY2hpLW1hZWRhIEJsZGcuCisJCQkJMy01LTMsIFlhbWF0by1oaWdhc2hpCisJCQkJWWFtYXRvLXNoaSAgMjQyLTAwMTcKKwkJCQlKQVBBTgorCiswMC0xRC1GQyAgIChoZXgpCQlLU0lDCiswMDFERkMgICAgIChiYXNlIDE2KQkJS1NJQworCQkJCSM2RiwgS29yZWEgRmVkZXJhdGlvbiBvZiBUZWFjaGVyJ3MgQXNzb2NpYXRpb25zLCAxMTQtMSwgVGFlQm9uZy1SbywKKwkJCQlTZW91bCBTZW9jaG8tS3UgMTM3LTcxNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRC1GRCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxREZEICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRC1GRSAgIChoZXgpCQlQYWxtLCBJbmMKKzAwMURGRSAgICAgKGJhc2UgMTYpCQlQYWxtLCBJbmMKKwkJCQk5NTAgV2VzdCBNYXVkZSBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUZGICAgKGhleCkJCU5ldHdvcmsgQ3JpdGljYWwgU29sdXRpb25zIEx0ZAorMDAxREZGICAgICAoYmFzZSAxNikJCU5ldHdvcmsgQ3JpdGljYWwgU29sdXRpb25zIEx0ZAorCQkJCTEyQiBTb3V0aHZpZXcgUGFyaworCQkJCUNhdmVyc2hhbQorCQkJCVJlYWRpbmcgQmVya3NoaXJlIFJHNDVBRgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFFLTAwICAgKGhleCkJCVNoYW50b3UgSW5zdGl0dXRlIG9mIFVsdHJhc29uaWMgSW5zdHJ1bWVudHMKKzAwMUUwMCAgICAgKGJhc2UgMTYpCQlTaGFudG91IEluc3RpdHV0ZSBvZiBVbHRyYXNvbmljIEluc3RydW1lbnRzCisJCQkJTm8uNzcsIEppbnNoYSBSb2FkLAorCQkJCVNoYW50b3UgR3Vhbmdkb25nIDUxNTA0MQorCQkJCUNISU5BCisKKzAwLTFFLTAxICAgKGhleCkJCVJlbmVzYXMgVGVjaG5vbG9neSBTYWxlcyBDby4sIEx0ZC4KKzAwMUUwMSAgICAgKGJhc2UgMTYpCQlSZW5lc2FzIFRlY2hub2xvZ3kgU2FsZXMgQ28uLCBMdGQuCisJCQkJMi02LTIKKwkJCQlPdGVtYWNoaQorCQkJCUNoaXlvZGEta3UgVG9reW8gMTAwLTAwMDQKKwkJCQlKQVBBTgorCiswMC0xRS0wMiAgIChoZXgpCQlTb3Vnb3UgS2Vpa2FrdSBLb3VneW91IENvLixMdGQuCiswMDFFMDIgICAgIChiYXNlIDE2KQkJU291Z291IEtlaWtha3UgS291Z3lvdSBDby4sTHRkLgorCQkJCUhLMiBibGQuIDItMjEtMTAKKwkJCQlOaXNoaW9naW1pbmFtaQorCQkJCVN1Z2luYW1pa3UgVG9reW8gMTY3LTAwNTMKKwkJCQlKQVBBTgorCiswMC0xRS0wMyAgIChoZXgpCQlMaUNvbW0gQ28uLCBMdGQuCiswMDFFMDMgICAgIChiYXNlIDE2KQkJTGlDb21tIENvLiwgTHRkLgorCQkJCTkwOC0xIFNFTy1SSSwgSURPTkctTVlFT04KKwkJCQlZT05HSU4tU0kgR1lFT05HR0ktRE8gNDQ5LTgzNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS0wNCAgIChoZXgpCQlIYW5zb24gUmVzZWFyY2ggQ29ycG9yYXRpb24KKzAwMUUwNCAgICAgKGJhc2UgMTYpCQlIYW5zb24gUmVzZWFyY2ggQ29ycG9yYXRpb24KKwkJCQk5ODEwIFZhcmllbCBBdmUuCisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMDUgICAoaGV4KQkJWHNlZWQgVGVjaG5vbG9naWVzICYgQ29tcHV0aW5nCiswMDFFMDUgICAgIChiYXNlIDE2KQkJWHNlZWQgVGVjaG5vbG9naWVzICYgQ29tcHV0aW5nCisJCQkJVG9wYXogSG91c2UsIE1BVEFNCisJCQkJNSBOYWh1bSBIYXQgU3QuCisJCQkJSGFpZmEgIDM5MTAwCisJCQkJSVNSQUVMCisKKzAwLTFFLTA2ICAgKGhleCkJCVdJQlJBSU4KKzAwMUUwNiAgICAgKGJhc2UgMTYpCQlXSUJSQUlOCisJCQkJMzA2IEpFSSBQbGF0cyBCL0QgNDU5LTExIEdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNFT1VMICAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTA3ICAgKGhleCkJCVdpbnkgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMUUwNyAgICAgKGJhc2UgMTYpCQlXaW55IFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMzA1LTMwMywgQnVjaGVvbiBUZWNobm8tcGFyaywgIzM2NQorCQkJCVNhbWplb25nLWRvbmcsIE9qZW9uZy1ndQorCQkJCUJ1Y2hlb24gR3llb25nZ2ktZG8gNDIxLTc0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS0wOCAgIChoZXgpCQlDZW50ZWMgTmV0d29ya3MgSW5jCiswMDFFMDggICAgIChiYXNlIDE2KQkJQ2VudGVjIE5ldHdvcmtzIEluYworCQkJCVNjaWVuY2UgUGxhemEgMTBGICwgMzI4IEFpcnBvcnQgUmQKKwkJCQlTdXpob3UgSW5kdXN0cmlhbCBQYXJrCisJCQkJU3V6aG91IEppYW5nc3UgMjE1MDIxCisJCQkJQ0hJTkEKKworMDAtMUUtMDkgICAoaGV4KQkJWkVGQVRFSyBDby4sTFRECiswMDFFMDkgICAgIChiYXNlIDE2KQkJWkVGQVRFSyBDby4sTFRECisJCQkJMzI2LTQgR2FzYW5kb25nLCBHZXVtY2hlb25ndQorCQkJCVNlb3VsICAxNTMtODAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTBBICAgKGhleCkJCVN5YmEgVGVjaCBMaW1pdGVkCiswMDFFMEEgICAgIChiYXNlIDE2KQkJU3liYSBUZWNoIExpbWl0ZWQKKwkJCQlSTTEzMDEsIFZhbnRhIEluZHVzdHJpYWwgQ2VudHJlLAorCQkJCTIxLTMzIFRhaSBMaW4gUGFpIFJkLgorCQkJCUt3YWkgQ2h1bmcgIAorCQkJCUhPTkcgS09ORworCiswMC0xRS0wQiAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMUUwQiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMEMgICAoaGV4KQkJU2hlcndvb2QgSW5mb3JtYXRpb24gUGFydG5lcnMsIEluYy4KKzAwMUUwQyAgICAgKGJhc2UgMTYpCQlTaGVyd29vZCBJbmZvcm1hdGlvbiBQYXJ0bmVycywgSW5jLgorCQkJCTExMjAgVywgMTIybmQgQXZlLCBTdGUgMzAwCisJCQkJV2VzdG1pbnN0ZXIgQ08gODAyMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTBEICAgKGhleCkJCU1pY3JhbiBMdGQuCiswMDFFMEQgICAgIChiYXNlIDE2KQkJTWljcmFuIEx0ZC4KKwkJCQlWZXJzaGluaW5hIHN0LiA0NworCQkJCVRvbXNrIFRvbXNrIFJlZ2lvbiA2MzQwMzQKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUUtMEUgICAoaGV4KQkJTUFYSSBWSUVXIEhPTERJTkdTIExJTUlURUQKKzAwMUUwRSAgICAgKGJhc2UgMTYpCQlNQVhJIFZJRVcgSE9MRElOR1MgTElNSVRFRAorCQkJCVN1aXRlIDIzMDIsMjMvRiBHcmVhdCBFYWdsZSBDZW50cmUsIDIzIEhhcmJvdXIgUm9hZCwgV2FuY2hhaQorCQkJCUhvbmcgS29uZyAgCisJCQkJQ0hJTkEKKworMDAtMUUtMEYgICAoaGV4KQkJQnJpb3QgSW50ZXJuYXRpb25hbAorMDAxRTBGICAgICAoYmFzZSAxNikJCUJyaW90IEludGVybmF0aW9uYWwKKwkJCQkyIHJ1ZSByb2dlciBCb25uZXQKKwkJCQlQb250IGRlIGwnQXJjaGUgRXVyZSAyNzM0MAorCQkJCUZSQU5DRQorCiswMC0xRS0xMCAgIChoZXgpCQlTaGVuWmhlbiBIdWF3ZWkgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzAwMUUxMCAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBIdWF3ZWkgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKwkJCQlIVUFXRUkgSU5EVVNUUklBTCBQSyBCQU5USUFOLCBMT05HR0FORyBESVNUIFNIRU5aSEVOCisJCQkJU0hFTlpIRU4gR1VBTkdET05HIDUxODA3NworCQkJCUNISU5BCisKKzAwLTFFLTExICAgKGhleCkJCUVMRUxVWCBJTlRFUk5BVElPTkFMIExURAorMDAxRTExICAgICAoYmFzZSAxNikJCUVMRUxVWCBJTlRFUk5BVElPTkFMIExURAorCQkJCTNGLiwgTk8uMTAzIENIT1cgVFpFIFNUUkVFVAorCQkJCU5FSS1IVSBESVNUUklDVCAoMTE0KQorCQkJCVRBSVBFSSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS0xMiAgIChoZXgpCQlFY29sYWIKKzAwMUUxMiAgICAgKGJhc2UgMTYpCQlFY29sYWIKKwkJCQk2NTUgTG9uZSBPYWsgRHJpdmUKKwkJCQlSZXNlYXJjaCBDZW50ZXIgRG9jayAtLSBGNDQxNgorCQkJCUVhZ2FuIE1OIDU1MTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS0xMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFFMTMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMTQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRTE0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTE1ICAgKGhleCkJCUJlZWNoIEhpbGwgRWxlY3Ryb25pY3MKKzAwMUUxNSAgICAgKGJhc2UgMTYpCQlCZWVjaCBIaWxsIEVsZWN0cm9uaWNzCisJCQkJQmVlY2hjcm9mdCwgQmVlY2ggSGlsbCBSb2FkCisJCQkJQmVlY2ggSGlsbAorCQkJCVJlYWRpbmcgQmVya3NoaXJlIFJHNyAyQVUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRS0xNiAgIChoZXgpCQlLZXl0cm9uaXgKKzAwMUUxNiAgICAgKGJhc2UgMTYpCQlLZXl0cm9uaXgKKwkJCQlVbmdhcmdhc3NlIDY0LTY2LzEvMTA5CisJCQkJVmllbm5hICAxMDMwCisJCQkJQVVTVFJJQQorCiswMC0xRS0xNyAgIChoZXgpCQlTVE4gQlYKKzAwMUUxNyAgICAgKGJhc2UgMTYpCQlTVE4gQlYKKwkJCQlBbWVyaWthd2VnIDQKKwkJCQlIdWxzdCBaZWVsYW5kIDQ1NjEgUEIKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRS0xOCAgIChoZXgpCQlSYWRpbyBBY3Rpdml0eSBzcmwKKzAwMUUxOCAgICAgKGJhc2UgMTYpCQlSYWRpbyBBY3Rpdml0eSBzcmwKKwkJCQlWaWEgUG9udGUgTnVvdm8gOAorCQkJCU1pbGFubyBNSSAyMDEyOAorCQkJCUlUQUxZCisKKzAwLTFFLTE5ICAgKGhleCkJCUdUUkkKKzAwMUUxOSAgICAgKGJhc2UgMTYpCQlHVFJJCisJCQkJTS9TIDA4MjEKKwkJCQlBdGxhbnRhIEdBIDMwMzMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS0xQSAgIChoZXgpCQlCZXN0IFNvdXJjZSBUYWl3YW4gSW5jLgorMDAxRTFBICAgICAoYmFzZSAxNikJCUJlc3QgU291cmNlIFRhaXdhbiBJbmMuCisJCQkJMkYsIE5vLjE2LCBMYW5lIDU2LCBKaG9uZ2poZW5nIFcuIFJkLiwKKwkJCQlKaHViZWkgQ2l0eSwgSHNpbmNodSBDb3VudHkgMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS0xQiAgIChoZXgpCQlEaWdpdGFsIFN0cmVhbSBUZWNobm9sb2d5LCBJbmMuCiswMDFFMUIgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBTdHJlYW0gVGVjaG5vbG9neSwgSW5jLgorCQkJCTQsNSw2dGggRmwuLCBUYWVDaGFuZyBCL0QsIDQ1MS0xCisJCQkJU3VuZ05hZS1Eb25nLCBHYW5nRG9uZy1LdQorCQkJCVNlb3VsICAxMzQtMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTFDICAgKGhleCkJCVNXUyBBdXN0cmFsaWEgUHR5IExpbWl0ZWQKKzAwMUUxQyAgICAgKGJhc2UgMTYpCQlTV1MgQXVzdHJhbGlhIFB0eSBMaW1pdGVkCisJCQkJMjMgU2NhbmxvbiBEcml2ZQorCQkJCUVwcGluZyBWaWN0b3JpYSAzMDc2CisJCQkJQVVTVFJBTElBCisKKzAwLTFFLTFEICAgKGhleCkJCUVhc3QgQ29hc3QgRGF0YWNvbSwgSW5jLgorMDAxRTFEICAgICAoYmFzZSAxNikJCUVhc3QgQ29hc3QgRGF0YWNvbSwgSW5jLgorCQkJCTI0NSBHdXMgSGlwcCBCbHZkLiwgU1RFIDMKKwkJCQlSb2NrbGVkZ2UgRkwgMzI5NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTFFICAgKGhleCkJCUhvbmV5d2VsbCBMaWZlIFNhZmV0eQorMDAxRTFFICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbCBMaWZlIFNhZmV0eQorCQkJCTEyIENsaW50b252aWxsZSBSb2FkCisJCQkJTm9ydGhmb3JkIENUIDA0MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTFGICAgKGhleCkJCU5vcnRlbAorMDAxRTFGICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xRS0yMCAgIChoZXgpCQlJbnRlcnRhaW4gSW5jLgorMDAxRTIwICAgICAoYmFzZSAxNikJCUludGVydGFpbiBJbmMuCisJCQkJU3VpdGUgNjA4IExHIEVjbGF0LTIsIDI0NS00IFNlb2h5dW4tZG9uZywgQnVuZGFuZy1ndQorCQkJCVN1bmduZ20tc2hpIEt5dW5nZ2ktZG8gNDYzLTgyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS0yMSAgIChoZXgpCQlRaXNkYSBDby4KKzAwMUUyMSAgICAgKGJhc2UgMTYpCQlRaXNkYSBDby4KKwkJCQkxNTcgU2hhbi1ZaW5nIFJvYWQsIEd1ZWlzaGFuCisJCQkJVGFveXVhbiAgMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS0yMiAgIChoZXgpCQlBUlZPTyBJbWFnaW5nIFByb2R1Y3RzIEJWCiswMDFFMjIgICAgIChiYXNlIDE2KQkJQVJWT08gSW1hZ2luZyBQcm9kdWN0cyBCVgorCQkJCVBPIEJveCA0MzkKKwkJCQlXb2VyZGVuIFVUIDM0NDAgQUsKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRS0yMyAgIChoZXgpCQlFbGVjdHJvbmljIEVkdWNhdGlvbmFsIERldmljZXMsIEluYworMDAxRTIzICAgICAoYmFzZSAxNikJCUVsZWN0cm9uaWMgRWR1Y2F0aW9uYWwgRGV2aWNlcywgSW5jCisJCQkJMTkwMyBTIEdyYW50IFN0CisJCQkJRGVudmVyIENPIDgwMjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS0yNCAgIChoZXgpCQlaaGVqaWFuZyBCZWxsIFRlY2hub2xvZ3kgQ28uLGx0ZAorMDAxRTI0ICAgICAoYmFzZSAxNikJCVpoZWppYW5nIEJlbGwgVGVjaG5vbG9neSBDby4sbHRkCisJCQkJNiBYaWRvdW1lbiBSZC4gV2VzdCBMYWtlIGRpc3RyaWN0CisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworMDAtMUUtMjUgICAoaGV4KQkJSW50ZWsgRGlnaXRhbCBJbmMKKzAwMUUyNSAgICAgKGJhc2UgMTYpCQlJbnRlayBEaWdpdGFsIEluYworCQkJCTExMDEsIDExdGggRmwuLCBBbnlhbmcgSy1jZW50ZXIgYnVpbGRpbmcsIDE1OTEtOQorCQkJCUd3YW55YW5nLWRvbmcsIERvbmdhbi1ndQorCQkJCUFueWFuZyBHeWVvbmdnaS1kbyA0MzEtODE1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTI2ICAgKGhleCkJCURpZ2lmcmllbmRzIENvLiBMdGQKKzAwMUUyNiAgICAgKGJhc2UgMTYpCQlEaWdpZnJpZW5kcyBDby4gTHRkCisJCQkJSm95YW5nIEIvRCA2dGggRmxvb3IKKwkJCQkxMTMgU2Ftc3VuZy1kb25nLCBLYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS0wOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtMjcgICAoaGV4KQkJU0JOIFRFQ0ggQ28uLEx0ZC4KKzAwMUUyNyAgICAgKGJhc2UgMTYpCQlTQk4gVEVDSCBDby4sTHRkLgorCQkJCSM3MDYgSW5kdXN0cmlhbCBBY2FkZW1pYyBDZW50ZXIsIEtvbmt1ayBVbml2ZXJzaXR5LCBId2F5YW5nLWRvbmcsIEd3YW5namluLWd1CisJCQkJU2VvdWwgIDE0My03MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtMjggICAoaGV4KQkJTHVtZXhpcyBDb3Jwb3JhdGlvbgorMDAxRTI4ICAgICAoYmFzZSAxNikJCUx1bWV4aXMgQ29ycG9yYXRpb24KKwkJCQkzMTg0IEFpcndheSBBdmUgQmxkZyBECisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMjkgICAoaGV4KQkJSHlwZXJ0aGVybSBJbmMKKzAwMUUyOSAgICAgKGJhc2UgMTYpCQlIeXBlcnRoZXJtIEluYworCQkJCTE1IEdyZWF0IEhvbGxvdyBSZAorCQkJCVBPIEJveCA1MDEwCisJCQkJSGFub3ZlciBOSCAwMzc1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMkEgICAoaGV4KQkJTmV0Z2VhciBJbmMuCiswMDFFMkEgICAgIChiYXNlIDE2KQkJTmV0Z2VhciBJbmMuCisJCQkJNDUwMCBHcmVhdCBBbWVyaWNhIFBhcmt3YXkKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMkIgICAoaGV4KQkJUmFkaW8gU3lzdGVtcyBEZXNpZ24sIEluYy4KKzAwMUUyQiAgICAgKGJhc2UgMTYpCQlSYWRpbyBTeXN0ZW1zIERlc2lnbiwgSW5jLgorCQkJCTYwMSBIZXJvbiBEcml2ZQorCQkJCUxvZ2FuIFR3cCBOZXcgSmVyc2V5IDA4MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS0yQyAgIChoZXgpCQlDeVZlcnNlIENvcnBvcmF0aW9uCiswMDFFMkMgICAgIChiYXNlIDE2KQkJQ3lWZXJzZSBDb3Jwb3JhdGlvbgorCQkJCVNob3V0b3UgUm91a3ViYW5rYW4gQmxkZy4gNEYKKwkJCQkxLTI4LTQsIFNob3V0b3UKKwkJCQlTaGlidXlhLWt1IFRva3lvIDE1MC0wMDQ2CisJCQkJSkFQQU4KKworMDAtMUUtMkQgICAoaGV4KQkJU1RJTQorMDAxRTJEICAgICAoYmFzZSAxNikJCVNUSU0KKwkJCQlaQUMgbGVzIENPVVNURUxMSUVSUworCQkJCTYgUnVlIGRlIEwnQUJSSVZBRE8KKwkJCQlDQVNUUklFUyBIRVJBVUxUIDM0MTYwCisJCQkJRlJBTkNFCisKKzAwLTFFLTJFICAgKGhleCkJCVNJUlRJIFMucC5BLgorMDAxRTJFICAgICAoYmFzZSAxNikJCVNJUlRJIFMucC5BLgorCQkJCVZpYSBTdGFtaXJhIGQnQW5jb25hIDkKKwkJCQlNSUxBTiAgMjAxMjcKKwkJCQlJVEFMWQorCiswMC0xRS0yRiAgIChoZXgpCQlEaU1vdG8gUHR5IEx0ZAorMDAxRTJGICAgICAoYmFzZSAxNikJCURpTW90byBQdHkgTHRkCisJCQkJNyBNZWxqYXJlbiBQbGFjZQorCQkJCUJ1ZGVyaW0gUXVlZW5zbGFuZCA0NTU2CisJCQkJQVVTVFJBTElBCisKKzAwLTFFLTMwICAgKGhleCkJCVNoaXJlZW4gSW5jCiswMDFFMzAgICAgIChiYXNlIDE2KQkJU2hpcmVlbiBJbmMKKwkJCQk4NTMxIFppZ2d5IExhbmUKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTMxICAgKGhleCkJCUlORk9NQVJLIENPLixMVEQuCiswMDFFMzEgICAgIChiYXNlIDE2KQkJSU5GT01BUksgQ08uLExURC4KKwkJCQk1Ri4sR2Vvd24gQmxkZy4sMTM2MC01MworCQkJCVNlb3VsIFNlb2Noby1kb25nLFNlb2Noby1ndSAxMzctODYzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTMyICAgKGhleCkJCVplbnN5cworMDAxRTMyICAgICAoYmFzZSAxNikJCVplbnN5cworCQkJCUVtZHJ1cHZlaiAyNgorCQkJCUNvcGVuaGFnZW4gTyAgREstMjEwMAorCQkJCURFTk1BUksKKworMDAtMUUtMzMgICAoaGV4KQkJSW52ZW50ZWMgQ29ycG9yYXRpb24KKzAwMUUzMyAgICAgKGJhc2UgMTYpCQlJbnZlbnRlYyBDb3Jwb3JhdGlvbgorCQkJCUludmVudGVjIEJ1aWxkaW5nLCA2NiBIb3UtS2FuZyBTdHJlZXQKKwkJCQlTaGluLUxpbiBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS0zNCAgIChoZXgpCQlDcnlwdG9NZXRyaWNzCiswMDFFMzQgICAgIChiYXNlIDE2KQkJQ3J5cHRvTWV0cmljcworCQkJCTE2MCBNaWNoYWVsIENvd3BsYW5kIERyCisJCQkJT3R0YXdhIE9udGFyaW8gSzJNIDFQNgorCQkJCUNBTkFEQQorCiswMC0xRS0zNSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMUUzNSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyBLWU9UTyA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFFLTM2ICAgKGhleCkJCUlQVEUKKzAwMUUzNiAgICAgKGJhc2UgMTYpCQlJUFRFCisJCQkJR2VsZWVubGFhbiA1CisJCQkJR2VuayBMaW1idXJnIDM2MDAKKwkJCQlCRUxHSVVNCisKKzAwLTFFLTM3ICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAxRTM3ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTEFORSAzNTEsIFNFQy4xLFRBSVBJTkcgUkQuCisJCQkJVFNBT1RVRU4KKwkJCQlOQU5UT1UgNTQyNjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLTM4ICAgKGhleCkJCUJsdWVjYXJkIFNvZnR3YXJlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFFMzggICAgIChiYXNlIDE2KQkJQmx1ZWNhcmQgU29mdHdhcmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlELTgwMSBTaGFuZ2RpIFNjaWVuY2UgQnVpbGRpbmcKKwkJCQlOby44IFNoYW5nZGkgV2VzdCBSb2FkCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMUUtMzkgICAoaGV4KQkJQ29tc3lzIENvbW11bmljYXRpb24gTHRkLgorMDAxRTM5ICAgICAoYmFzZSAxNikJCUNvbXN5cyBDb21tdW5pY2F0aW9uIEx0ZC4KKwkJCQk5IEhhbWVub2ZpbSBzdC4KKwkJCQlIZXJ6ZWxpYSAgNDY3MjUKKwkJCQlJU1JBRUwKKworMDAtMUUtM0EgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUUzQSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRS0zQiAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRTNCICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRS0zQyAgIChoZXgpCQlMeW5nYm94IE1lZGlhIEFCCiswMDFFM0MgICAgIChiYXNlIDE2KQkJTHluZ2JveCBNZWRpYSBBQgorCQkJCURpc2tldHRnYXRhbiAxMUIKKwkJCQlMaW5rb3BpbmcgIFNFLTU4MzM1CisJCQkJU1dFREVOCisKKzAwLTFFLTNEICAgKGhleCkJCUFscHMgRWxlY3RyaWMgQ28uLCBMdGQKKzAwMUUzRCAgICAgKGJhc2UgMTYpCQlBbHBzIEVsZWN0cmljIENvLiwgTHRkCisJCQkJMS0yLTEsIE9raW5vdWNoaQorCQkJCVNvbWEgY2l0eSBGdWt1c2hpbS1wcmVmIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMUUtM0UgICAoaGV4KQkJS01XIEluYy4KKzAwMUUzRSAgICAgKGJhc2UgMTYpCQlLTVcgSW5jLgorCQkJCTY1IFlvdW5nY2h1bi1yaSwgRG9uZ3Rhbi1teXVuCisJCQkJSHdhc3VuZy1zaSBLeXVuZ2tpLWRvIDQ0NS04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtM0YgICAoaGV4KQkJVHJlbGxpc1dhcmUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDFFM0YgICAgIChiYXNlIDE2KQkJVHJlbGxpc1dhcmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTY1MTYgVmlhIEVzcHJpbGxvLCBTdWl0ZSAzMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTQwICAgKGhleCkJCVNoYW5naGFpIERhcmVHbG9iYWwgVGVjaG5vbG9naWVzICBDby4sTHRkLgorMDAxRTQwICAgICAoYmFzZSAxNikJCVNoYW5naGFpIERhcmVHbG9iYWwgVGVjaG5vbG9naWVzICBDby4sTHRkLgorCQkJCTIyRiwgbG5mbyBUZWNoIEJ1aWxkaW5nLCBOTy4xNTU1IEtvbmdqaWFuZyBSb2FkLAorCQkJCVNoYW5naGFpICAyMDAwOTIKKwkJCQlDSElOQQorCiswMC0xRS00MSAgIChoZXgpCQlNaWNyb3dhdmUgQ29tbXVuaWNhdGlvbiAmIENvbXBvbmVudCwgSW5jLgorMDAxRTQxICAgICAoYmFzZSAxNikJCU1pY3Jvd2F2ZSBDb21tdW5pY2F0aW9uICYgQ29tcG9uZW50LCBJbmMuCisJCQkJIzIwNCwgV09PTElNIExJT05gUyBWQUxMRVkgMiwgNjgwCisJCQkJR2FzYW4tRG9uZywgR2V1bWNob24tR1UKKwkJCQlTZW91bCAgMTUwLTc4NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS00MiAgIChoZXgpCQlUZWx0b25pa2EKKzAwMUU0MiAgICAgKGJhc2UgMTYpCQlUZWx0b25pa2EKKwkJCQlaaXJtdW51IDI3CisJCQkJVmlsbml1cyAgTFQgLSAwOTEwNQorCQkJCUxJVEhVQU5JQQorCiswMC0xRS00MyAgIChoZXgpCQlBSVNJTiBBVyBDTy4sTFRELgorMDAxRTQzICAgICAoYmFzZSAxNikJCUFJU0lOIEFXIENPLixMVEQuCisJCQkJNi0xOCBIQVJBWUFNQQorCQkJCU9LQS1DSE8KKwkJCQlPS0FaQUtJIEFJQ0hJIDQ0NC04NTY0CisJCQkJSkFQQU4KKworMDAtMUUtNDQgICAoaGV4KQkJU0FOVEVDCiswMDFFNDQgICAgIChiYXNlIDE2KQkJU0FOVEVDCisJCQkJQW4gZGVyIFN0cnVzYmVrIDMxCisJCQkJQWhyZW5zYnVyZyBTY2hsZXN3aWcgSG9sc3RlaW4gMjI5MjYKKwkJCQlHRVJNQU5ZCisKKzAwLTFFLTQ1ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDFFNDUgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworMDAtMUUtNDYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUU0NiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTQ3ICAgKGhleCkJCVBULiBIYXJpZmYgRGF5YSBUdW5nZ2FsIEVuZ2luZWVyaW5nCiswMDFFNDcgICAgIChiYXNlIDE2KQkJUFQuIEhhcmlmZiBEYXlhIFR1bmdnYWwgRW5naW5lZXJpbmcKKwkJCQlKbC4gU29la2Fybm8gSGF0dGEgTm8uIDQ1MAorCQkJCUJhbmR1bmcgSmF3YSBCYXJhdCA0MDI2NgorCQkJCUlORE9ORVNJQQorCiswMC0xRS00OCAgIChoZXgpCQlXaS1MaW5rcworMDAxRTQ4ICAgICAoYmFzZSAxNikJCVdpLUxpbmtzCisJCQkJMzMyIEF5aW91IHN0cmVldAorCQkJCUxpbWFzc29sICAzNzI1CisJCQkJQ1lQUlVTCisKKzAwLTFFLTQ5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUU0OSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS00QSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFFNEEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNEIgICAoaGV4KQkJQ2l0eSBUaGVhdHJpY2FsCiswMDFFNEIgICAgIChiYXNlIDE2KQkJQ2l0eSBUaGVhdHJpY2FsCisJCQkJNDc1IEJhcmVsbCBBdmUKKwkJCQlDYXJsc3RhZHQgTmV3IEplcnNleSAwNzA3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNEMgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLiwgTHRkLgorMDAxRTRDICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC5Dby4sIEx0ZC4KKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtNEQgICAoaGV4KQkJV2Vsa2luIFNjaWVuY2VzLCBMTEMKKzAwMUU0RCAgICAgKGJhc2UgMTYpCQlXZWxraW4gU2NpZW5jZXMsIExMQworCQkJCTEwMiBTLiBUZWpvbiBTdCwgU3VpdGUgMjAwCisJCQkJQ29sb3JhZG8gU3ByaW5ncyBDTyA4MDkwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNEUgICAoaGV4KQkJREFLTyBFRFYtSW5nZW5pZXVyLSB1bmQgU3lzdGVtaGF1cyBHbWJICiswMDFFNEUgICAgIChiYXNlIDE2KQkJREFLTyBFRFYtSW5nZW5pZXVyLSB1bmQgU3lzdGVtaGF1cyBHbWJICisJCQkJRXJuc3QtSGFlY2tlbC1QbGF0eiA1LzYKKwkJCQlKZW5hIFRodXJpbmdpYSAwNzc0NQorCQkJCUdFUk1BTlkKKworMDAtMUUtNEYgICAoaGV4KQkJRGVsbCBJbmMuCiswMDFFNEYgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS01MCAgIChoZXgpCQlCQVRUSVNUT05JIFJFU0VBUkNICiswMDFFNTAgICAgIChiYXNlIDE2KQkJQkFUVElTVE9OSSBSRVNFQVJDSAorCQkJCVBBUkNPIERPTklDQSA1NgorCQkJCUZJU0NJQU5PIFNBTEVSTk8gODQwODQKKwkJCQlJVEFMWQorCiswMC0xRS01MSAgIChoZXgpCQlDb252ZXJ0ZXIgSW5kdXN0cnkgU3JsCiswMDFFNTEgICAgIChiYXNlIDE2KQkJQ29udmVydGVyIEluZHVzdHJ5IFNybAorCQkJCVZpYSBFdWNsaWRlLCAxMgorCQkJCUZvcmxpJyBGQyA0NzEwMAorCQkJCUlUQUxZCisKKzAwLTFFLTUyICAgKGhleCkJCUFwcGxlIENvbXB1dGVyIEluYworMDAxRTUyICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDYWxpZm9ybmlhIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS01MyAgIChoZXgpCQlGdXJ0aGVyIFRlY2ggQ28uLCBMVEQKKzAwMUU1MyAgICAgKGJhc2UgMTYpCQlGdXJ0aGVyIFRlY2ggQ28uLCBMVEQKKwkJCQk4RixOTyA0MjEsIFN1bmdzaGFuIFJELixUYWlwZWksIFRhaXduLFIuTy5DLgorCQkJCVRhaXBlaSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS01NCAgIChoZXgpCQlUT1lPIEVMRUNUUklDIENvcnBvcmF0aW9uCiswMDFFNTQgICAgIChiYXNlIDE2KQkJVE9ZTyBFTEVDVFJJQyBDb3Jwb3JhdGlvbgorCQkJCTEtMzkgSElLSVNBV0EKKwkJCQlLQUdJWUEtQ0hPCisJCQkJS0FTVUdBSSBBSUNISSA0ODAtMDM5MworCQkJCUpBUEFOCisKKzAwLTFFLTU1ICAgKGhleCkJCUNPV09OIFNZU1RFTVMsSW5jLgorMDAxRTU1ICAgICAoYmFzZSAxNikJCUNPV09OIFNZU1RFTVMsSW5jLgorCQkJCTZ0aCBGbC4gQ09XT04gVE9XRVIsNjg5LTMsCisJCQkJWWVva3NhbS1Eb25nLEdhbmduYW0tR3UsCisJCQkJU2VvdWwgIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtNTYgICAoaGV4KQkJQmFsbHkgV3VsZmYgRW50ZXJ0YWlubWVudCBHbWJICiswMDFFNTYgICAgIChiYXNlIDE2KQkJQmFsbHkgV3VsZmYgRW50ZXJ0YWlubWVudCBHbWJICisJCQkJTWF5YmFjaHVmZXIgNDgtNTEKKwkJCQlCZXJsaW4gIDEyMDQ1CisJCQkJR0VSTUFOWQorCiswMC0xRS01NyAgIChoZXgpCQlBTENPTUEsIHNwb2wuIHMgci5vLgorMDAxRTU3ICAgICAoYmFzZSAxNikJCUFMQ09NQSwgc3BvbC4gcyByLm8uCisJCQkJS2x1a292aWNlIDMxMywgUHJhaGEgLSA1CisJCQkJUHJhaGEgIDE1MiAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTFFLTU4ICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxRTU4ICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5PLjI4OSwgU2luaHUgM3JkIFJkLiwKKwkJCQlOZWlodSBEaXN0cmljdCwgVGFpcGVpIENpdHkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS01OSAgIChoZXgpCQlTaWxpY29uIFR1cm5rZXkgRXhwcmVzcywgTExDCiswMDFFNTkgICAgIChiYXNlIDE2KQkJU2lsaWNvbiBUdXJua2V5IEV4cHJlc3MsIExMQworCQkJCTc0OSBNaW5lciBSb2FkCisJCQkJSGlnaGxhbmQgSGVpZ2h0cyBPaGlvIDQ0MTQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS01QSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxRTVBICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNUIgICAoaGV4KQkJVW5pdHJvbiBDb21wYW55LCBJbmMuCiswMDFFNUIgICAgIChiYXNlIDE2KQkJVW5pdHJvbiBDb21wYW55LCBJbmMuCisJCQkJMTA5MjUgTWlsbGVyIFJvYWQKKwkJCQlEYWxsYXMgVFggNzUyMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTVDICAgKGhleCkJCVJCIEdlbmVyYWxFa29ub21paworMDAxRTVDICAgICAoYmFzZSAxNikJCVJCIEdlbmVyYWxFa29ub21paworCQkJCUJ1bGV2YXIgZGVzcG90YSBzdGVmYW5hIDU5YQorCQkJCUJlb2dyYWQgU2VyYmlhIDExMDAwCisJCQkJWVVHT1NMQVZJQQorCiswMC0xRS01RCAgIChoZXgpCQlIb2xvc3lzIGQuby5vLgorMDAxRTVEICAgICAoYmFzZSAxNikJCUhvbG9zeXMgZC5vLm8uCisJCQkJTWF0aWplIEd1cGNhIDcKKwkJCQlPcm9zbGF2amUgIDQ5MjQzCisJCQkJQ1JPQVRJQQorCiswMC0xRS01RSAgIChoZXgpCQlDT21wdXRpbWUgTHRkLgorMDAxRTVFICAgICAoYmFzZSAxNikJCUNPbXB1dGltZSBMdGQuCisJCQkJMTcvRiBHcmVhdCBFYWdsZSBDZW50cmUKKwkJCQkyMyBIYXJib3VyIFJvYWQKKwkJCQlXYW5jaGFpICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUUtNUYgICAoaGV4KQkJS3dpa0J5dGUsIExMQworMDAxRTVGICAgICAoYmFzZSAxNikJCUt3aWtCeXRlLCBMTEMKKwkJCQkyNDMwIFcuIDEydGggU3RyZWV0CisJCQkJVGVtcGUgQVogODUyODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTYwICAgKGhleCkJCURpZ2l0YWwgTGlnaHRpbmcgU3lzdGVtcywgSW5jCiswMDFFNjAgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBMaWdodGluZyBTeXN0ZW1zLCBJbmMKKwkJCQkxMjMwMiBTdyAxMjh0aCBjdCwgICAjMTA1CisJCQkJTWlhbWkgRkwgMzMxODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTYxICAgKGhleCkJCUlURUMgR21iSAorMDAxRTYxICAgICAoYmFzZSAxNikJCUlURUMgR21iSAorCQkJCUxhc3NuaXR6dGhhbCAzMDAKKwkJCQlBLTgyMDAgIEdsZWlzZG9yZgorCQkJCUFVU1RSSUEKKworMDAtMUUtNjIgICAoaGV4KQkJU2llbW9uCiswMDFFNjIgICAgIChiYXNlIDE2KQkJU2llbW9uCisJCQkJMjcgU2llbW9uIENvbXBhbnkgRHJpdmUKKwkJCQlXYXRlcnRvd24gQ1QgMDY3OTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTYzICAgKGhleCkJCVZpYnJvLU1ldGVyIFNBCiswMDFFNjMgICAgIChiYXNlIDE2KQkJVmlicm8tTWV0ZXIgU0EKKwkJCQlSb3V0ZSBkZSBNb25jb3IgNAorCQkJCUZyaWJvdXJnICBDSC0xNzAxCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUUtNjQgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDFFNjQgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xRS02NSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMUU2NSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFFLTY2ICAgKGhleCkJCVJFU09MIEVsZWt0cm9uaXNjaGUgUmVnZWx1bmdlbiBHbWJICiswMDFFNjYgICAgIChiYXNlIDE2KQkJUkVTT0wgRWxla3Ryb25pc2NoZSBSZWdlbHVuZ2VuIEdtYkgKKwkJCQlIZWlza2FtcHN0ci4gMTAKKwkJCQlIYXR0aW5nZW4gTlJXIDQ1NTI3CisJCQkJR0VSTUFOWQorCiswMC0xRS02NyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMUU2NyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFFLTY4ICAgKGhleCkJCVF1YW50YSBDb21wdXRlcgorMDAxRTY4ICAgICAoYmFzZSAxNikJCVF1YW50YSBDb21wdXRlcgorCQkJCU5PLiAyMTEsIFdFTiBIV0EgMlJELiwgS1VFSSBTSEFOIEhTSUFORworCQkJCVRBSVBFSSBUQU8gWVVBTiBTSElFTiAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLTY5ICAgKGhleCkJCVRob21zb24gSW5jLgorMDAxRTY5ICAgICAoYmFzZSAxNikJCVRob21zb24gSW5jLgorCQkJCTEwMSBXZXN0LiAxMDNyZCBTdHJlZXQKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTZBICAgKGhleCkJCUJlaWppbmcgQmx1ZXhvbiBUZWNobm9sb2d5IENvLixMdGQKKzAwMUU2QSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEJsdWV4b24gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJSmlucWl1emhpY2h1biA3LTMwMSxaaGljaHVuIFJkLiwKKwkJCQlIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg4CisJCQkJQ0hJTkEKKworMDAtMUUtNkIgICAoaGV4KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBBIENpc2NvIENvbXBhbnkKKzAwMUU2QiAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIEF0bGFudGEsIEEgQ2lzY28gQ29tcGFueQorCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS02QyAgIChoZXgpCQlDYXJib24gTW91bnRhaW4gTExDCiswMDFFNkMgICAgIChiYXNlIDE2KQkJQ2FyYm9uIE1vdW50YWluIExMQworCQkJCTQ4MjAgRmlzaGVyIFJvYWQKKwkJCQlBdGhlbnMgT0ggNDU3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTZEICAgKGhleCkJCUlUIFImRCBDZW50ZXIKKzAwMUU2RCAgICAgKGJhc2UgMTYpCQlJVCBSJkQgQ2VudGVyCisJCQkJNDYxLTI1LCBKZW9ubWluLWRvbmcsWXVzZW9uZy1HdQorCQkJCURhZWplb24gIDMwNS04MTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtNkUgICAoaGV4KQkJU2hlbnpoZW4gRmlyc3QgTWlsZSBDb21tdW5pY2F0aW9ucyBMdGQKKzAwMUU2RSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBGaXJzdCBNaWxlIENvbW11bmljYXRpb25zIEx0ZAorCQkJCTV0aCBGbG9vciwgQmxvY2sgUjMtQQorCQkJCUhpZ2gtVGVjaCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMUUtNkYgICAoaGV4KQkJTWFnbmEtUG93ZXIgRWxlY3Ryb25pY3MsIEluYy4KKzAwMUU2RiAgICAgKGJhc2UgMTYpCQlNYWduYS1Qb3dlciBFbGVjdHJvbmljcywgSW5jLgorCQkJCTM5IFJveWFsIFJvYWQKKwkJCQlGbGVtaW5ndG9uIE5KIDA4ODIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS03MCAgIChoZXgpCQlDb2JoYW0gRGVmZW5jZSBDb21tdW5pY2F0aW9ucyBMdGQKKzAwMUU3MCAgICAgKGJhc2UgMTYpCQlDb2JoYW0gRGVmZW5jZSBDb21tdW5pY2F0aW9ucyBMdGQKKwkJCQlIYXNsaW5nZGVuIFJvYWQKKwkJCQlCbGFja2J1cm4gTGFuY2FzaGlyZSBCQjEgMkVFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUUtNzEgICAoaGV4KQkJSWdlYUNhcmUgU3lzdGVtcyBJbmMuCiswMDFFNzEgICAgIChiYXNlIDE2KQkJSWdlYUNhcmUgU3lzdGVtcyBJbmMuCisJCQkJOTEgR3JhbnRvbiBEcml2ZQorCQkJCVJpY2htb25kIEhpbGwgT250YXJpbyBMNEIgMk41CisJCQkJQ0FOQURBCisKKzAwLTFFLTcyICAgKGhleCkJCVBDUworMDAxRTcyICAgICAoYmFzZSAxNikJCVBDUworCQkJCVJVRSBTQUlOVCBFWFVQRVJZCisJCQkJQlA3MDMyMgorCQkJCUxFU0NBUiBQWVJFTkVFUyBBVExBTlRJUVVFUyA2NDIzMAorCQkJCUZSQU5DRQorCiswMC0xRS03MyAgIChoZXgpCQlaVEUgQ09SUE9SQVRJT04KKzAwMUU3MyAgICAgKGJhc2UgMTYpCQlaVEUgQ09SUE9SQVRJT04KKwkJCQkxMi9GIFpURSBQbGF6YSxLZWppIFJvYWQgU291dGgsSGktVGVjaCBJbmR1c3RyaWFsIFBhcmssTmFuc2hhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHVUFOR0RPTkcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMUUtNzQgICAoaGV4KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorMDAxRTc0ICAgICAoYmFzZSAxNikJCVNBR0VNIENPTU1VTklDQVRJT04KKwkJCQkxNCBSdWUgUGF1bCBEYXV0aWVyCisJCQkJVmVsaXp5ICA3ODQ1NworCQkJCUZSQU5DRQorCiswMC0xRS03NSAgIChoZXgpCQlMRyBFbGVjdHJvbmljcworMDAxRTc1ICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzCisJCQkJNjAtMzksS2FzYW4tZG9uZyxLdW1jaG9uLWt1CisJCQkJU2VvdWwgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtNzYgICAoaGV4KQkJVGhlcm1vIEZpc2hlciBTY2llbnRpZmljCiswMDFFNzYgICAgIChiYXNlIDE2KQkJVGhlcm1vIEZpc2hlciBTY2llbnRpZmljCisJCQkJMjIxNSBHcmFuZCBBdmVudWUgUGFya3dheQorCQkJCUF1c3RpbiBUZXhhcyA3ODcyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNzcgICAoaGV4KQkJQWlyMkFwcAorMDAxRTc3ICAgICAoYmFzZSAxNikJCUFpcjJBcHAKKwkJCQk1MCBPbGQgRm9yZ2UgUmQKKwkJCQlIYW5vdmVyIE1BIDAyMzM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS03OCAgIChoZXgpCQlPd2l0ZWsgVGVjaG5vbG9neSBMdGQuLAorMDAxRTc4ICAgICAoYmFzZSAxNikJCU93aXRlayBUZWNobm9sb2d5IEx0ZC4sCisJCQkJTm8uMiwgTGFuZSA3OCwgQ2luZ3NoYW4gNnRoIFN0LiwKKwkJCQlZYW5nbWVpIFRvd25zaGlwLAorCQkJCVRhb3l1YW4gQ291bnR5ICAzMjY1NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtNzkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRTc5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTdBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUU3QSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS03QiAgIChoZXgpCQlSLkkuQ08uIFMuci5sLgorMDAxRTdCICAgICAoYmFzZSAxNikJCVIuSS5DTy4gUy5yLmwuCisJCQkJdmlhIEFkcmlhdGljYSwgMTcKKwkJCQlDYXN0ZWxmaWRhcmRvIEFOIDYwMDIyCisJCQkJSVRBTFkKKworMDAtMUUtN0MgICAoaGV4KQkJVGFpd2ljayBMaW1pdGVkCiswMDFFN0MgICAgIChiYXNlIDE2KQkJVGFpd2ljayBMaW1pdGVkCisJCQkJNS9GLiwgQmxvY2sgRSwgSGluZyBZaXAgRmFjdG9yeSBCbGRnLiwKKwkJCQkzMSBIaW5nIFlpcCBTdHJlZXQuLCBLd3VuIFRvbmcsIEtsbi4sIEhLLgorCQkJCUNoaW5hIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xRS03RCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzAwMUU3RCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtN0UgICAoaGV4KQkJTm9ydGVsCiswMDFFN0UgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTFFLTdGICAgKGhleCkJCUNCTSBvZiBBbWVyaWNhCiswMDFFN0YgICAgIChiYXNlIDE2KQkJQ0JNIG9mIEFtZXJpY2EKKwkJCQkxNDU1IFdlc3QgTmV3cG9ydCBDZW50ZXIgRHJpdmUKKwkJCQlEZWVyZmllbGQgQmVhY2ggRmxvcmlkYSAzMzQ0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtODAgICAoaGV4KQkJTGFzdCBNaWxlIEx0ZC4KKzAwMUU4MCAgICAgKGJhc2UgMTYpCQlMYXN0IE1pbGUgTHRkLgorCQkJCTEyL0YgVklQIENvbW1lcmNpYWwgQ2VudHJlCisJCQkJMTIwIENhbnRvbiBSb2FkCisJCQkJVHNpbXNoYXRzdWkgIAorCQkJCUhPTkcgS09ORworCiswMC0xRS04MSAgIChoZXgpCQlDTkIgVGVjaG5vbG9neSBJbmMuCiswMDFFODEgICAgIChiYXNlIDE2KQkJQ05CIFRlY2hub2xvZ3kgSW5jLgorCQkJCSM3MDEgU3RhciBWYWxsZXksIDYwLTExIEdhc2FuLURvbmcsCisJCQkJR2V1bWNoZW9uLUd1CisJCQkJU2VvdWwgIDE1Mzc3NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS04MiAgIChoZXgpCQlQbGlhbnQgVGVjaG5vbG9neSwgSW5jLgorMDAxRTgyICAgICAoYmFzZSAxNikJCVBsaWFudCBUZWNobm9sb2d5LCBJbmMuCisJCQkJNjMwIEFsZGVyIERyaXZlLAorCQkJCVN1aXRlIDIwMgorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS04MyAgIChoZXgpCQlMQU4vTUFOIFN0YW5kYXJkcyBBc3NvY2lhdGlvbiAoTE1TQykKKzAwMUU4MyAgICAgKGJhc2UgMTYpCQlMQU4vTUFOIFN0YW5kYXJkcyBBc3NvY2lhdGlvbiAoTE1TQykKKwkJCQlDL08gSUVFRSBTdGFuZGFyZHMgQXNzb2NpYXRpb24KKwkJCQk0NDUgSG9lcyBMYW5lLAorCQkJCVBpc2NhdGF3YXkgTkogMDg4NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTg0ICAgKGhleCkJCVBpa2EgVGVjaG5vbG9naWVzIEluYy4KKzAwMUU4NCAgICAgKGJhc2UgMTYpCQlQaWthIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNTM1IExlZ2dldCBEcml2ZQorCQkJCVN1aXRlIDQwMAorCQkJCU90dGF3YSBPbnRhcmlvIEsySyAzQjgKKwkJCQlDQU5BREEKKworMDAtMUUtODUgICAoaGV4KQkJTGFnb3RlayBDb3Jwb3JhdGlvbgorMDAxRTg1ICAgICAoYmFzZSAxNikJCUxhZ290ZWsgQ29ycG9yYXRpb24KKwkJCQkxMTY2MSBTRSAxc3QgU3QuICMyMDgKKwkJCQlCZWxsZXZ1ZSBXQSA5ODAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtODYgICAoaGV4KQkJTUVMIENvLixMdGQuCiswMDFFODYgICAgIChiYXNlIDE2KQkJTUVMIENvLixMdGQuCisJCQkJVHN1a2Fnb3NoaSA1LTUtMSxXYXJhYmktc2hpLFNhaXRhbWEsSmFwbmEKKwkJCQlXYXJhYmkgU2FpdGFtYSAzMzUtMDAwMgorCQkJCUpBUEFOCisKKzAwLTFFLTg3ICAgKGhleCkJCVJlYWxlYXNlIExpbWl0ZWQKKzAwMUU4NyAgICAgKGJhc2UgMTYpCQlSZWFsZWFzZSBMaW1pdGVkCisJCQkJMTUvRiwgTW9ycmlzb24gQ29tbWVyY2lhbCBCdWlsZGluZworCQkJCTMxIE1vcnJpc29uIEhpbGwgUm9hZAorCQkJCVdhbkNoYWkgIAorCQkJCUhPTkcgS09ORworCiswMC0xRS04OCAgIChoZXgpCQlBTkRPUiBTWVNURU0gU1VQUE9SVCBDTy4sIExURC4KKzAwMUU4OCAgICAgKGJhc2UgMTYpCQlBTkRPUiBTWVNURU0gU1VQUE9SVCBDTy4sIExURC4KKwkJCQlNaW5hbWktU2hpbmFnYXdhIDItMTUtOAorCQkJCVNpbmFnYXdhIFRva3lvIDE0MC0wMDA0CisJCQkJSkFQQU4KKworMDAtMUUtODkgICAoaGV4KQkJQ1JGUyBMaW1pdGVkCiswMDFFODkgICAgIChiYXNlIDE2KQkJQ1JGUyBMaW1pdGVkCisJCQkJQnVpbGRpbmcgNzIwMAorCQkJCUNhbWJyaWRnZSBSZXNlYXJjaCBQYXJrCisJCQkJV2F0ZXJiZWFjaCBDYW1icmlkZ2VzaGlyZSBDQjI1IDlUTAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFFLThBICAgKGhleCkJCWVDb3B5LCBJbmMKKzAwMUU4QSAgICAgKGJhc2UgMTYpCQllQ29weSwgSW5jCisJCQkJMSBPcmFjbGUgRHIKKwkJCQlOYXNodWEgTkggMDMwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLThCICAgKGhleCkJCUluZnJhIEFjY2VzcyBLb3JlYSBDby4sIEx0ZC4KKzAwMUU4QiAgICAgKGJhc2UgMTYpCQlJbmZyYSBBY2Nlc3MgS29yZWEgQ28uLCBMdGQuCisJCQkJOUYgRGFleWFuZyBCL0QsCisJCQkJNzM1LTExIEJvbmdjaHVuIDFkb25nLAorCQkJCUt3YW5hay1ndSwgU2VvdWwgMTUxLTgzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS04QyAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMUU4QyAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLThEICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDFFOEQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gVVMgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSWxsaW5vaXMgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLThFICAgKGhleCkJCUh1bmtlbGVyIEFHCiswMDFFOEUgICAgIChiYXNlIDE2KQkJSHVua2VsZXIgQUcKKwkJCQlCYWhuaG9mc3RyYXNzZSAzMQorCQkJCVdpa29uIENIIDQ4MDYKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xRS04RiAgIChoZXgpCQlDQU5PTiBJTkMuCiswMDFFOEYgICAgIChiYXNlIDE2KQkJQ0FOT04gSU5DLgorCQkJCTMtMzAtMgorCQkJCVNoaW1vbWFydWtvCisJCQkJT2h0YS1LdSBUb2t5byAxNDYtODUwMQorCQkJCUpBUEFOCisKKzAwLTFFLTkwICAgKGhleCkJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtcyBDbworMDAxRTkwICAgICAoYmFzZSAxNikJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtcyBDbworCQkJCU5vLjIzOSwgU2VjLiAyLCBUaSBEaW5nIEJsdmQKKwkJCQlUYWlwZWkgIDExNDkzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS05MSAgIChoZXgpCQlLSU1JTiBFbGVjdHJvbmljIENvLiwgTHRkLgorMDAxRTkxICAgICAoYmFzZSAxNikJCUtJTUlOIEVsZWN0cm9uaWMgQ28uLCBMdGQuCisJCQkJMjkzLTQsIERvbmdkYW4tRG9uZworCQkJCUd1bWktY2l0eSBHeWVvbmdCdWsgNzMwLTkwNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS05MiAgIChoZXgpCQlKRVVMSU4gUy5BLgorMDAxRTkyICAgICAoYmFzZSAxNikJCUpFVUxJTiBTLkEuCisJCQkJWkkgTrAxCisJCQkJcnVlIEphY3F1ZXMgTW9ub2QKKwkJCQlFdnJldXggIEYyNzAxOQorCQkJCUZSQU5DRQorCiswMC0xRS05MyAgIChoZXgpCQlDaXJpVGVjaCBTeXN0ZW1zIEluYworMDAxRTkzICAgICAoYmFzZSAxNikJCUNpcmlUZWNoIFN5c3RlbXMgSW5jCisJCQkJOTIwIEhpbGx2aWV3IEN0CisJCQkJIzE3MAorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS05NCAgIChoZXgpCQlTVVBFUkNPTSBURUNITk9MT0dZIENPUlBPUkFUSU9OCiswMDFFOTQgICAgIChiYXNlIDE2KQkJU1VQRVJDT00gVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCThGLCBOTyAxMDAtMSwgTWluZy1DaHVhbiBSZC4KKwkJCQlTaGluZyBUaWVuIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLTk1ICAgKGhleCkJCVNJR01BTElOSworMDAxRTk1ICAgICAoYmFzZSAxNikJCVNJR01BTElOSworCQkJCURvb1NhbiBWZW50dXJlRGlnbSAxMDI4LAorCQkJCTEyNi0xIFB5dW5nY2hvbi1kb25nLCBEb25nYW4tS3UKKwkJCQlBbnlhbmctQ2l0eSBLeXVuZ2dpLWRvIDQzMS0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtOTYgICAoaGV4KQkJU2VwdXJhIFBsYworMDAxRTk2ICAgICAoYmFzZSAxNikJCVNlcHVyYSBQbGMKKwkJCQlSYWRpbyBIb3VzZQorCQkJCVN0IEFuZHJld3MgUm9hZAorCQkJCUNhbWJyaWRnZSBDQU1CUklER0VTSElSRSBDQjQgMUdSCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUUtOTcgICAoaGV4KQkJTWVkaXVtIExpbmsgU3lzdGVtIFRlY2hub2xvZ3kgQ08uLCBMVEQsCiswMDFFOTcgICAgIChiYXNlIDE2KQkJTWVkaXVtIExpbmsgU3lzdGVtIFRlY2hub2xvZ3kgQ08uLCBMVEQsCisJCQkJMTFGLi0yLCBOby43LCBBbGxleSA5MiwgTGFuZSA3NywgU2VjLiA0LCBTaW5oYWkgUmQuLAorCQkJCVd1bnNoYW4gRGlzdHJpY3QsIFRhaXBlaSAxMTY5MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtOTggICAoaGV4KQkJR3JlZW5MaW5lIENvbW11bmljYXRpb25zCiswMDFFOTggICAgIChiYXNlIDE2KQkJR3JlZW5MaW5lIENvbW11bmljYXRpb25zCisJCQkJQWxyYWJpYWgsIEFscmFiZWVhIHN0cmVldAorCQkJCUJ1aWxkaW5nIDgsIFAuTy4gQm94IDkyMQorCQkJCUFtbWFuIENlbnRyYWwgUmVnaW9uIDExOTUzCisJCQkJSk9SREFOCisKKzAwLTFFLTk5ICAgKGhleCkJCVZhbnRhbm9sIEluZHVzdHJpYWwgQ29ycG9yYXRpb24KKzAwMUU5OSAgICAgKGJhc2UgMTYpCQlWYW50YW5vbCBJbmR1c3RyaWFsIENvcnBvcmF0aW9uCisJCQkJOUYsIE5PIDMxIC4gU2hpbi1UYWkgUm9hZAorCQkJCUp1YmVpIENpdHkgU2hpbmNodSAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLTlBICAgKGhleCkJCUhBTUlMVE9OIEJvbmFkdXogQUcKKzAwMUU5QSAgICAgKGJhc2UgMTYpCQlIQU1JTFRPTiBCb25hZHV6IEFHCisJCQkJVmlhIENydXNjaCA4CisJCQkJQm9uYWR1eiBHcmF1YnVlbmRlbiA3NDAyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUUtOUIgICAoaGV4KQkJU2FuLUVpc2hhLCBMdGQuCiswMDFFOUIgICAgIChiYXNlIDE2KQkJU2FuLUVpc2hhLCBMdGQuCisJCQkJMi0xIEViYXJhIDUtY2hvbWUKKwkJCQlTaGluYWdhd2Eta3UgVG9reW8gMTQyLTg2MTEKKwkJCQlKQVBBTgorCiswMC0xRS05QyAgIChoZXgpCQlGaWR1c3Ryb24gSU5DCiswMDFFOUMgICAgIChiYXNlIDE2KQkJRmlkdXN0cm9uIElOQworCQkJCU5PLjc3MC02LCBKaG9uZ2loZW5nIFJkLgorCQkJCUpob25naGUgQ2l0eSBUYWlwZWkgQ291bnR5IDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtOUQgICAoaGV4KQkJUmVjYWxsIFRlY2hub2xvZ2llcywgSW5jLgorMDAxRTlEICAgICAoYmFzZSAxNikJCVJlY2FsbCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMzAgRW50ZXJwcmlzZSBBdmUuCisJCQkJU3VpdGUgRgorCQkJCVBhbG0gQmF5IEZMIDMyOTA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS05RSAgIChoZXgpCQlkZG0gaG9wdCArIHNjaHVsZXIgR21iaCArIENvLiBLRworMDAxRTlFICAgICAoYmFzZSAxNikJCWRkbSBob3B0ICsgc2NodWxlciBHbWJoICsgQ28uIEtHCisJCQkJS29lbmlnc2JlcmdlciBTdHJhc3NlIDEyCisJCQkJUm90dHdlaWwgQmFkZW4tV3VlcnR0ZW1iZXJnIDc4NjI2CisJCQkJR0VSTUFOWQorCiswMC0xRS05RiAgIChoZXgpCQlWaXNpb25lZXJpbmcgU3lzdGVtcywgSW5jLgorMDAxRTlGICAgICAoYmFzZSAxNikJCVZpc2lvbmVlcmluZyBTeXN0ZW1zLCBJbmMuCisJCQkJNTkzMSBTZWEgTGlvbiBQbGFjZQorCQkJCVN1aXRlIDEwOQorCQkJCUNhcmxzYmFkIENhbGlmb3JuaWEgOTIwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUEwICAgKGhleCkJCVhMTi10CiswMDFFQTAgICAgIChiYXNlIDE2KQkJWExOLXQKKwkJCQlIb29nc3RyYWF0IDUyCisJCQkJUHV0dGUgQW50d2VycCBCMjU4MAorCQkJCUJFTEdJVU0KKworMDAtMUUtQTEgICAoaGV4KQkJQnJ1bmF0YSBhL3MKKzAwMUVBMSAgICAgKGJhc2UgMTYpCQlCcnVuYXRhIGEvcworCQkJCVZlc3Rlcmx1bmR2ZWogMTQKKwkJCQlIZXJsZXYgIDI3MzAKKwkJCQlERU5NQVJLCisKKzAwLTFFLUEyICAgKGhleCkJCVN5bXggU3lzdGVtcywgSW5jLgorMDAxRUEyICAgICAoYmFzZSAxNikJCVN5bXggU3lzdGVtcywgSW5jLgorCQkJCTYzMjAgTlcgODR0aCBBdmVudWUKKwkJCQlNaWFtaSBGbG9yaWRhIDMzMTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1BMyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRUEzICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRS1BNCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRUE0ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRS1BNSAgIChoZXgpCQlST0JPVE9VUywgSW5jLgorMDAxRUE1ICAgICAoYmFzZSAxNikJCVJPQk9UT1VTLCBJbmMuCisJCQkJTmV4IENlbnRlci0yMDEoTGFiLiksIFNLIG4gVGVjaG5vcGFyaworCQkJCVNhbmdkYWV3b24tZG9uZywgSnVuZ3dvbi1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2Mi0xMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtQTYgICAoaGV4KQkJQmVzdCBJVCBXb3JsZCAoSW5kaWEpIFB2dC4gTHRkLgorMDAxRUE2ICAgICAoYmFzZSAxNikJCUJlc3QgSVQgV29ybGQgKEluZGlhKSBQdnQuIEx0ZC4KKwkJCQk4Ny83MC85MyBNaXN0cnkgSW5kdXN0cmlhbCBDb21wbGV4LAorCQkJCU1JREMgQ3Jvc3MgUm9hZCAnQScsIEFuZGhlcmkgKEVhc3QpCisJCQkJTXVtYmFpIE1haGFyYXNodHJhIDQwMDA5MworCQkJCUlORElBCisKKzAwLTFFLUE3ICAgKGhleCkJCUFjdGlvblRlYyBFbGVjdHJvbmljcywgSW5jCiswMDFFQTcgICAgIChiYXNlIDE2KQkJQWN0aW9uVGVjIEVsZWN0cm9uaWNzLCBJbmMKKwkJCQk3NjAgTm9ydGggTWFyeSBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUE4ICAgKGhleCkJCURhdGFuZyBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgRXF1aXBtZW50IENPLixMVEQKKzAwMUVBOCAgICAgKGJhc2UgMTYpCQlEYXRhbmcgTW9iaWxlIENvbW11bmljYXRpb25zIEVxdWlwbWVudCBDTy4sTFRECisJCQkJTm8uMjksWHVleXVhbiBSZC4sSGFpZGlhbiBEaXN0cmljdCxCZWlqaW5nLDEwMDA4MyBQLlIuQ2hpbmEKKwkJCQlCZWlqaW5nICAxMDAwODMKKwkJCQlDSElOQQorCiswMC0xRS1BOSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMUVBOSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyBLWU9UTyA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFFLUFBICAgKGhleCkJCUUtU2VuemEgVGVjaG5vbG9naWVzIEdtYkgKKzAwMUVBQSAgICAgKGJhc2UgMTYpCQlFLVNlbnphIFRlY2hub2xvZ2llcyBHbWJICisJCQkJQmxhcmVyc3RyYXNzZSA1NgorCQkJCUtvbnN0YW56IEJXIDc4NDYyCisJCQkJR0VSTUFOWQorCiswMC0xRS1BQiAgIChoZXgpCQlUZWxlV2VsbCBPeQorMDAxRUFCICAgICAoYmFzZSAxNikJCVRlbGVXZWxsIE95CisJCQkJQWxhaG90aWUgMTQgYgorCQkJCUphcnZlbnBhYSBVdXNpbWFhIDA0NDMwCisJCQkJRklOTEFORAorCiswMC0xRS1BQyAgIChoZXgpCQlBcm1hZGV1cyBTeXN0ZW1zCiswMDFFQUMgICAgIChiYXNlIDE2KQkJQXJtYWRldXMgU3lzdGVtcworCQkJCVRlY2hub3BvbGUgLSAgNDAsIHJ1ZSBNYXJjIFNlZ3VpbgorCQkJCUJQIDIxMTgKKwkJCQlNVUxIT1VTRSBjZWRleCBIYXV0LVJoaW4gNjgwNjAKKwkJCQlGUkFOQ0UKKworMDAtMUUtQUQgICAoaGV4KQkJV2luZ3RlY2ggR3JvdXAgTGltaXRlZAorMDAxRUFEICAgICAoYmFzZSAxNikJCVdpbmd0ZWNoIEdyb3VwIExpbWl0ZWQKKwkJCQk2dGggZmxvb3IsIFVuaXQgRywgTm8uNjY4LCBFYXN0IEJlaWppbmcgUm9hZCwKKwkJCQlTaGFuZ2hhaSAgMjAwMDAxCisJCQkJQ0hJTkEKKworMDAtMUUtQUUgICAoaGV4KQkJQ29udGluZW50YWwgQXV0b21vdGl2ZSBTeXN0ZW1zCiswMDFFQUUgICAgIChiYXNlIDE2KQkJQ29udGluZW50YWwgQXV0b21vdGl2ZSBTeXN0ZW1zCisJCQkJMjE0NDAgV2VzdCBMYWtlIENvb2sgUm9hZAorCQkJCURlZXIgUGFyayBJTCA2MDAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtQUYgICAoaGV4KQkJT3BoaXIgT3B0cm9uaWNzIEx0ZAorMDAxRUFGICAgICAoYmFzZSAxNikJCU9waGlyIE9wdHJvbmljcyBMdGQKKwkJCQlQT0IgNDUwMjEKKwkJCQlKZXJ1c2FsZW0gIDkxNDUwCisJCQkJSVNSQUVMCisKKzAwLTFFLUIwICAgKGhleCkJCUltZXNEIEVsZWN0cm9uaWNhIFMuTC4KKzAwMUVCMCAgICAgKGJhc2UgMTYpCQlJbWVzRCBFbGVjdHJvbmljYSBTLkwuCisJCQkJRW50ZW7nYSA4MQorCQkJCUJhcmNlbG9uYSAgMDgwMTUKKwkJCQlTUEFJTgorCiswMC0xRS1CMSAgIChoZXgpCQlDcnlwdHNvZnQgUHR5IEx0ZAorMDAxRUIxICAgICAoYmFzZSAxNikJCUNyeXB0c29mdCBQdHkgTHRkCisJCQkJUC5PLiBCb3ggNjM4OQorCQkJCUZhaXJmaWVsZCBHYXJkZW5zIFF1ZWVuc2xhbmQgNDEwMworCQkJCUFVU1RSQUxJQQorCiswMC0xRS1CMiAgIChoZXgpCQlMRyBpbm5vdGVrCiswMDFFQjIgICAgIChiYXNlIDE2KQkJTEcgaW5ub3RlaworCQkJCUhhbnlhbmcgVW5pdi4gMTI3MSwgU2EtZG9uZywgU2FuZ3Jvay1ndQorCQkJCUFuc2FuLXNpIEd5ZW9uZ2dpLWRvIDQyNi03OTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtQjMgICAoaGV4KQkJUHJpbWV4IFdpcmVsZXNzCiswMDFFQjMgICAgIChiYXNlIDE2KQkJUHJpbWV4IFdpcmVsZXNzCisJCQkJOTY1IFdlbGxzIFN0cmVldAorCQkJCUxha2UgR2VuZXZhIFdJIDUzMTQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1CNCAgIChoZXgpCQlVTklGQVQgVEVDSE5PTE9HWSBMVEQuCiswMDFFQjQgICAgIChiYXNlIDE2KQkJVU5JRkFUIFRFQ0hOT0xPR1kgTFRELgorCQkJCTcvRkxPT1IgU1VJIEhPTkcgSU5ELiBCTERHLiwKKwkJCQk1NDctNTQ5IENBU1RMRSBQRUFLIFJPQUQKKwkJCQlLV0FJIENIVU5HLCBOLlQuIAorCQkJCUhPTkcgS09ORworCiswMC0xRS1CNSAgIChoZXgpCQlFdmVyIFNwYXJrbGUgVGVjaG5vbG9naWVzIEx0ZAorMDAxRUI1ICAgICAoYmFzZSAxNikJCUV2ZXIgU3BhcmtsZSBUZWNobm9sb2dpZXMgTHRkCisJCQkJVW5pdCA0MDMsIE5hbiBGdW5nIENvbW1lcmNpYWwgQ2VudHJlCisJCQkJMTksIExhbSBMb2sgU3QuCisJCQkJS293bG9vbiBCYXkgS293bG9vbiAKKwkJCQlIT05HIEtPTkcKKworMDAtMUUtQjYgICAoaGV4KQkJVEFHIEhldWVyIFNBCiswMDFFQjYgICAgIChiYXNlIDE2KQkJVEFHIEhldWVyIFNBCisJCQkJUnVlIExvdWlzLUpvc2VwaCBDaGV2cm9sZXQgNkEKKwkJCQlsYSBDaGF1eC1kZS1Gb25kcyBORSAyMzAwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUUtQjcgICAoaGV4KQkJVEJUZWNoLCBDby4sIEx0ZC4KKzAwMUVCNyAgICAgKGJhc2UgMTYpCQlUQlRlY2gsIENvLiwgTHRkLgorCQkJCTExMDksIEh5dW5kYWkgS3JpbSwgMTMzMC0xOCwgU2VvY2hvLWRvbmcsCisJCQkJU2VvY2hvLUd1LAorCQkJCVNlb3VsICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLUI4ICAgKGhleCkJCUZvcnRpcywgSW5jLgorMDAxRUI4ICAgICAoYmFzZSAxNikJCUZvcnRpcywgSW5jLgorCQkJCSM1MDIgVGVjaG5vIHBsYXphLCAxNDktMTAgWWF0YXAtZG9uZywKKwkJCQlCdW5kYW5nLWd1LAorCQkJCVNlb25nbmFtLXNpLCBHeWVvbmdnaS1kbywgNDYzLTgxNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS1COSAgIChoZXgpCQlTaW5nIEZhaSBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMUVCOSAgICAgKGJhc2UgMTYpCQlTaW5nIEZhaSBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlOby43MDAsIEthb2hzaXVuZyBVbml2ZXJzaXR5IFJkLiwgTmFuLVR6dSBEaXN0LgorCQkJCU5VSyBBZHZhbmNlZCBCdXNpbmVzcyBJbmN1YmF0aW9uIENlbnRlcgorCQkJCUthb2hzaXVuZyAgODExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS1CQSAgIChoZXgpCQlIaWdoIERlbnNpdHkgRGV2aWNlcyBBUworMDAxRUJBICAgICAoYmFzZSAxNikJCUhpZ2ggRGVuc2l0eSBEZXZpY2VzIEFTCisJCQkJVmVzdHJlIFN0cmFuZGdhdGUgMjYKKwkJCQlLcmlzdGlhbnNhbmQgIDQ2MTEKKwkJCQlOT1JXQVkKKworMDAtMUUtQkIgICAoaGV4KQkJQkxVRUxJR0hUIFRFQ0hOT0xPR1kgSU5DLgorMDAxRUJCICAgICAoYmFzZSAxNikJCUJMVUVMSUdIVCBURUNITk9MT0dZIElOQy4KKwkJCQk2NDcyIENBTURFTiBBVkUuLCBTVUlURSAxMDJCCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUJDICAgKGhleCkJCVdJTlRFQ0ggQVVUT01BVElPTiBDTy4sTFRELgorMDAxRUJDICAgICAoYmFzZSAxNikJCVdJTlRFQ0ggQVVUT01BVElPTiBDTy4sTFRELgorCQkJCSMxMTE1LCBUQUVLV0FORyBCTFZELgorCQkJCVlPVU5HUk9ORy1ET05HLCBZT1VOR1RPTkctR1UKKwkJCQlTVVdPTi1TSSBLWVVOR0dJIDQ0My04MTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtQkQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRUJEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUJFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUVCRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1CRiAgIChoZXgpCQlIYWFzIEF1dG9tYXRpb24gSW5jLgorMDAxRUJGICAgICAoYmFzZSAxNikJCUhhYXMgQXV0b21hdGlvbiBJbmMuCisJCQkJMjgwMCBTdHVyZ2lzIFJkCisJCQkJT3huYXJkIENBIDkzMDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1DMCAgIChoZXgpCQlNaWNyb2NoaXAgVGVjaG5vbG9neSBJbmMuCiswMDFFQzAgICAgIChiYXNlIDE2KQkJTWljcm9jaGlwIFRlY2hub2xvZ3kgSW5jLgorCQkJCTIzNTUgVy4gQ2hhbmRsZXIgQmx2ZC4sCisJCQkJQ2hhbmRsZXIgQVogODUyMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUMxICAgKGhleCkJCTNDT00gRVVST1BFIExURAorMDAxRUMxICAgICAoYmFzZSAxNikJCTNDT00gRVVST1BFIExURAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSEVSVFMuIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRS1DMiAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDFFQzIgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5pZmludGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtQzMgICAoaGV4KQkJS296aW8sIEluYy4KKzAwMUVDMyAgICAgKGJhc2UgMTYpCQlLb3ppbywgSW5jLgorCQkJCTI0MDAgVHJhZGUgQ2VudHJlIEF2ZQorCQkJCUxvbmdtb250IENPIDgwNTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1DNCAgIChoZXgpCQlDZWxpbyBDb3JwCiswMDFFQzQgICAgIChiYXNlIDE2KQkJQ2VsaW8gQ29ycAorCQkJCTI2NSBFIDEwMCBTICAjIDI4MAorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1DNSAgIChoZXgpCQlNaWRkbGUgQXRsYW50aWMgUHJvZHVjdHMgSW5jCiswMDFFQzUgICAgIChiYXNlIDE2KQkJTWlkZGxlIEF0bGFudGljIFByb2R1Y3RzIEluYworCQkJCTMwMCBGYWlyZmllbGQgUm9hZAorCQkJCUZhaXJmaWVsZCBOSiAwNzAwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtQzYgICAoaGV4KQkJT2J2aXVzIEhvbGRpbmdzIExMQworMDAxRUM2ICAgICAoYmFzZSAxNikJCU9idml1cyBIb2xkaW5ncyBMTEMKKwkJCQkyMDgxMSBOVyBDb3JuZWxsIFJvYWQKKwkJCQlTdWl0ZSA3MDAKKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUM3ICAgKGhleCkJCTJXaXJlCiswMDFFQzcgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzA0IEF1dG9tYXRpb24gUHJrd3kKKwkJCQlTYW4gSm9zZSBDYSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtQzggICAoaGV4KQkJUmFwaWQgTW9iaWxlIChQdHkpIEx0ZAorMDAxRUM4ICAgICAoYmFzZSAxNikJCVJhcGlkIE1vYmlsZSAoUHR5KSBMdGQKKwkJCQlCdWlsZGluZyBDLEQsRSBBcGV4IENvcnBvcmF0ZSBQYXJrCisJCQkJUXVpbnRpbiBCcmFuZCBTdHJlZXQsIFBlcnNlcXVvciBUZWNobm9wYXJrCisJCQkJUHJldG9yaWEgR2F1dGVuZyAwMDIwCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTFFLUM5ICAgKGhleCkJCURlbGwgSW5jCiswMDFFQzkgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUNBICAgKGhleCkJCU5vcnRlbAorMDAxRUNBICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xRS1DQiAgIChoZXgpCQkiUlBDICJFbmVyZ29hdXRvbWF0aWthIiBMdGQKKzAwMUVDQiAgICAgKGJhc2UgMTYpCQkiUlBDICJFbmVyZ29hdXRvbWF0aWthIiBMdGQKKwkJCQlLcmFzbm9rYXphcm1lbm5heWEgc3QuLCAxMy8xCisJCQkJTW9zY293ICAxMTEyNTAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUUtQ0MgICAoaGV4KQkJQ0RWSQorMDAxRUNDICAgICAoYmFzZSAxNikJCUNEVkkKKwkJCQkzMSBBdmVudWUgZHUgR+lu6XJhbCBMZWNsZXJjCisJCQkJUEFOVElOIElsZSBkZSBGcmFuY2UgOTM1MDAKKwkJCQlGUkFOQ0UKKworMDAtMUUtQ0QgICAoaGV4KQkJS1lMQU5ECiswMDFFQ0QgICAgIChiYXNlIDE2KQkJS1lMQU5ECisJCQkJTm85NSBCdWlsZGluZywKKwkJCQlTb3V0aGVhc3QgQ29ybmVyIG9mIFhpc2FucWkgQnJpZGdlLAorCQkJCUhhaWRpYW4gQmVpamluZyAxMDAwOTYKKwkJCQlDSElOQQorCiswMC0xRS1DRSAgIChoZXgpCQlCSVNBIFRlY2hub2xvZ2llcyAoSG9uZyBLb25nKSBMaW1pdGVkCiswMDFFQ0UgICAgIChiYXNlIDE2KQkJQklTQSBUZWNobm9sb2dpZXMgKEhvbmcgS29uZykgTGltaXRlZAorCQkJCTExMDIsIFRyYW5zIEFzaWEgQ2VudHJlLAorCQkJCTE4IEtpbiBIb25nIFN0cmVldCwKKwkJCQlLd2FpIENodW5nICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUUtQ0YgICAoaGV4KQkJUEhJTElQUyBFTEVDVFJPTklDUyBVSyBMVEQKKzAwMUVDRiAgICAgKGJhc2UgMTYpCQlQSElMSVBTIEVMRUNUUk9OSUNTIFVLIExURAorCQkJCVBISUxJUFMgQ0VOVFJFCisJCQkJR1VJTERGT1JEIEJVU0lORVNTIFBBUksKKwkJCQlHVUlMREZPUkQgU1VSUkVZIEdVMiA4WEgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRS1EMCAgIChoZXgpCQlDT05ORVhJVU0KKzAwMUVEMCAgICAgKGJhc2UgMTYpCQlDT05ORVhJVU0KKwkJCQkzOSBMJ0FMQkFSRURFCisJCQkJQVVaSUVMTEUgIDMxNjUwCisJCQkJRlJBTkNFCisKKzAwLTFFLUQxICAgKGhleCkJCUtleXByb2Nlc3NvciBCLlYuCiswMDFFRDEgICAgIChiYXNlIDE2KQkJS2V5cHJvY2Vzc29yIEIuVi4KKwkJCQlQYWFzaGV1dmVsd2VnIDIwCisJCQkJQW1zdGVyZGFtIE5IIDExMDUgQkoKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRS1EMiAgIChoZXgpCQlSYXkgU2hpbmUgVmlkZW8gVGVjaG5vbG9neSBJbmMKKzAwMUVEMiAgICAgKGJhc2UgMTYpCQlSYXkgU2hpbmUgVmlkZW8gVGVjaG5vbG9neSBJbmMKKwkJCQk2RixOby45OCxTZWMuMSxYaW50YWkgNXRoIFJkLgorCQkJCVhpemhpIENpdHkgVGFpcGVpIENvdW50eSAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLUQzICAgKGhleCkJCURvdCBUZWNobm9sb2d5IEludCdsIENvLiwgTHRkLgorMDAxRUQzICAgICAoYmFzZSAxNikJCURvdCBUZWNobm9sb2d5IEludCdsIENvLiwgTHRkLgorCQkJCVVuaXQgMTAwMSwgRm91cnNlYXMgQnVpbGRpbmcgMjA4LTIxMiwgTmF0aGFuIFJvYWQKKwkJCQlLb3dsb29uICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUUtRDQgICAoaGV4KQkJRG9ibGUgRW5naW5lZXJpbmcKKzAwMUVENCAgICAgKGJhc2UgMTYpCQlEb2JsZSBFbmdpbmVlcmluZworCQkJCTg1IFdhbG51dCBTdHJlZXQKKwkJCQlXYXRlcnRvd24gTWFzc2FjaHVzZXR0cyAwMjQ3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtRDUgICAoaGV4KQkJVGVrb24tQXV0b21hdGljcworMDAxRUQ1ICAgICAoYmFzZSAxNikJCVRla29uLUF1dG9tYXRpY3MKKwkJCQlaZWxlbm9ncmFkLCA1MTItMjkKKwkJCQlNb3Njb3cgIDEyNDQ4MgorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRS1ENiAgIChoZXgpCQlBbGVudGVjICYgT3Jpb24gQUIKKzAwMUVENiAgICAgKGJhc2UgMTYpCQlBbGVudGVjICYgT3Jpb24gQUIKKwkJCQlCb3ggMTA4CisJCQkJMTMyIDIzIFNhbHRzavYtQm9vIAorCQkJCVNXRURFTgorCiswMC0xRS1ENyAgIChoZXgpCQlILVN0cmVhbSBXaXJlbGVzcywgSW5jLgorMDAxRUQ3ICAgICAoYmFzZSAxNikJCUgtU3RyZWFtIFdpcmVsZXNzLCBJbmMuCisJCQkJMjU5NSBFYXN0IEJheXNob3JlIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUQ4ICAgKGhleCkJCURpZ2l0YWwgVW5pdGVkIEluYy4KKzAwMUVEOCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFVuaXRlZCBJbmMuCisJCQkJOUYsIE5vLjIyMCwgR2FuZ2NpYW4gUmQuCisJCQkJVGFpcGVpICAxMTQ0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtRDkgICAoaGV4KQkJTWl0c3ViaXNoaSBQcmVjaXNpb24gQ28uLExUZC4KKzAwMUVEOSAgICAgKGJhc2UgMTYpCQlNaXRzdWJpc2hpIFByZWNpc2lvbiBDby4sTFRkLgorCQkJCTM0NSBLQU1JTUFDSElZQQorCQkJCUtBTUFLVVJBLUNpdHkgS0FOQUdBV0EtUHJlZmVjdHVyZSAyNDctODUwNQorCQkJCUpBUEFOCisKKzAwLTFFLURBICAgKGhleCkJCVdlc2VtYW5uIEVsZWt0cm90ZWNobmllayBCLlYuCiswMDFFREEgICAgIChiYXNlIDE2KQkJV2VzZW1hbm4gRWxla3Ryb3RlY2huaWVrIEIuVi4KKwkJCQlEcm9vZ2Jsb2VtIDMxCisJCQkJUm90dGVyZGFtIFp1aWQtSG9sbGFuZCAzMDY4IEFXCisJCQkJTkVUSEVSTEFORFMKKworMDAtMUUtREIgICAoaGV4KQkJR2lrZW4gVHJhc3RlbSBDby4sIEx0ZC4KKzAwMUVEQiAgICAgKGJhc2UgMTYpCQlHaWtlbiBUcmFzdGVtIENvLiwgTHRkLgorCQkJCTQtMSBUYWtlZGEgRGFua2F3YXJhY2hvIEZ1c2hpbWlrdQorCQkJCUt5b3RvICA2MTItODQxNAorCQkJCUpBUEFOCisKKzAwLTFFLURDICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDFFREMgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworMDAtMUUtREQgICAoaGV4KQkJV0FTS08gUy5BLgorMDAxRUREICAgICAoYmFzZSAxNikJCVdBU0tPIFMuQS4KKwkJCQlCZXJiZWNraWVnbyA2CisJCQkJR2xpd2ljZSBTaWxlc2lhIDQ0LTEwMAorCQkJCVBPTEFORAorCiswMC0xRS1ERSAgIChoZXgpCQlCWUQgQ09NUEFOWSBMSU1JVEVECiswMDFFREUgICAgIChiYXNlIDE2KQkJQllEIENPTVBBTlkgTElNSVRFRAorCQkJCU5PLjEsQmFvcGluZyBSb2FkLEJhb2xvbmcgSW5kdXN0cmlhbCBUb3duLExvbmdnYW5nCisJCQkJU0hFTiBaSEVOIEd1YW5nZG9uZyA1MTgxMTYKKwkJCQlDSElOQQorCiswMC0xRS1ERiAgIChoZXgpCQlNYXN0ZXIgSW5kdXN0cmlhbGl6YXRpb24gQ2VudGVyIEtpc3RhCiswMDFFREYgICAgIChiYXNlIDE2KQkJTWFzdGVyIEluZHVzdHJpYWxpemF0aW9uIENlbnRlciBLaXN0YQorCQkJCVRvcnNoYW1uc2dhdGFuIDM2CisJCQkJS2lzdGEKKwkJCQlTdG9ja2hvbG0gIFNFLTE2NCA4MAorCQkJCVNXRURFTgorCiswMC0xRS1FMCAgIChoZXgpCQlVcm1ldCBEb211cyBTcEEKKzAwMUVFMCAgICAgKGJhc2UgMTYpCQlVcm1ldCBEb211cyBTcEEKKwkJCQlWaWEgQm9sb2duYSAxODgvQworCQkJCVRvcmlubyBUTyBJLTEwMTU0CisJCQkJSVRBTFkKKworMDAtMUUtRTEgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswMDFFRTEgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLUUyICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAxRUUyICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS1FMyAgIChoZXgpCQlUJlcgRWxlY3Ryb25pY3MgKFNoZW5aaGVuKSBDby4sTHRkCiswMDFFRTMgICAgIChiYXNlIDE2KQkJVCZXIEVsZWN0cm9uaWNzIChTaGVuWmhlbikgQ28uLEx0ZAorCQkJCTJGIEJhaXlpbmcgQnVpbGRpbmcsIE5vLjE5LCBOYW5oYWlSZC4sIE5hbnNoYW4gRGlzdAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNTIKKwkJCQlDSElOQQorCiswMC0xRS1FNCAgIChoZXgpCQlBQ1MgU29sdXRpb25zIEZyYW5jZQorMDAxRUU0ICAgICAoYmFzZSAxNikJCUFDUyBTb2x1dGlvbnMgRnJhbmNlCisJCQkJUnVlIENsYXVkZSBDaGFwcGUKKwkJCQlHdWlsaGVyYW5kIEdyYW5nZXMgQXJkZWNoZSAwNzUwMworCQkJCUZSQU5DRQorCiswMC0xRS1FNSAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzAwMUVFNSAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUU2ICAgKGhleCkJCVNoZW56aGVuIEFkdmFuY2VkIFZpZGVvIEluZm8tVGVjaCBDby4sIEx0ZC4KKzAwMUVFNiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBBZHZhbmNlZCBWaWRlbyBJbmZvLVRlY2ggQ28uLCBMdGQuCisJCQkJVGlhbnhpYW5nIDExQSwgIFRpYW4nYW4gQ3liZXIgUGFyayAsIEZ1dGlhbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNDgKKwkJCQlDSElOQQorCiswMC0xRS1FNyAgIChoZXgpCQlFcGljIFN5c3RlbXMgSW5jCiswMDFFRTcgICAgIChiYXNlIDE2KQkJRXBpYyBTeXN0ZW1zIEluYworCQkJCTM5MCBTLiBBYmJvdHQgQXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUU4ICAgKGhleCkJCU15dGVrCiswMDFFRTggICAgIChiYXNlIDE2KQkJTXl0ZWsKKwkJCQkxNTEgTGFmYXlldHRlIFN0ciAzIEZsCisJCQkJTmV3IFlvcmsgTlkgMTAwMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUU5ICAgKGhleCkJCVN0b25lcmlkZ2UgRWxlY3Ryb25pY3MgQUIKKzAwMUVFOSAgICAgKGJhc2UgMTYpCQlTdG9uZXJpZGdlIEVsZWN0cm9uaWNzIEFCCisJCQkJR+VyZHNmb2dkZXbkZ2VuIDE4QQorCQkJCUJyb21tYSBTdG9ja2hvbG0gMTY4IDY2CisJCQkJU1dFREVOCisKKzAwLTFFLUVBICAgKGhleCkJCVNlbnNvciBTd2l0Y2gsIEluYy4KKzAwMUVFQSAgICAgKGJhc2UgMTYpCQlTZW5zb3IgU3dpdGNoLCBJbmMuCisJCQkJOTAwIE5vcnRocm9wIFJvYWQKKwkJCQlXYWxsaW5nZm9yZCBDVCAwNjQ5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtRUIgICAoaGV4KQkJVGFsay1BLVBob25lIENvLgorMDAxRUVCICAgICAoYmFzZSAxNikJCVRhbGstQS1QaG9uZSBDby4KKwkJCQk1MDEzIE4uIEtlZHppZSBBdmUuCisJCQkJQ2hpY2FnbyBJTCA2MDYyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtRUMgICAoaGV4KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIExURC4KKzAwMUVFQyAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELgorCQkJCU5PLiAyNSwgVEhFIDNSRCBTdHJlZXQKKwkJCQlLVU5TSEFOIEVYUE9SVCBQUk9DRVNTSU5HIFpPTkUKKwkJCQlLVU5TSEFOIENJVFkgU1VaSE9VIFBST1ZJTkNFIDIxNTMwMAorCQkJCUNISU5BCisKKzAwLTFFLUVEICAgKGhleCkJCUFkdmVudGlxIEx0ZC4KKzAwMUVFRCAgICAgKGJhc2UgMTYpCQlBZHZlbnRpcSBMdGQuCisJCQkJVGVjaG5vbG9neSBIb3VzZQorCQkJCVRyYWZhbGdhciBXYXkKKwkJCQlCYXIgSGlsbCBDYW1icy4gQ0IzIDhTUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFFLUVFICAgKGhleCkJCUVUTCBTeXN0ZW1zIEx0ZAorMDAxRUVFICAgICAoYmFzZSAxNikJCUVUTCBTeXN0ZW1zIEx0ZAorCQkJCUNvbGR3ZWxsIFJhZGlvIFN0YXRpb24KKwkJCQlNYWRsZXkKKwkJCQlIZXJlZm9yZCBIZXJlZm9yZHNoaXJlIEhSMiA5TkUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRS1FRiAgIChoZXgpCQlDYW50cm9uaWMgSW50ZXJuYXRpb25hbCBMaW1pdGVkCiswMDFFRUYgICAgIChiYXNlIDE2KQkJQ2FudHJvbmljIEludGVybmF0aW9uYWwgTGltaXRlZAorCQkJCVVuaXQgNTE1LTUxNiwgQnVpbGRpbmcgMTUsIEVhc3QgV2luZywgTm8gOCBTY2llbmNlIFBhcmsgV2VzdCBBdmVudWUsIEhvbmcgS29uZyBTY2llbmNlIFBhcmsgUGhhc2UgSUkKKwkJCQlTaGF0aW4gTmV3IFRlcnJpdG9yaWVzIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xRS1GMCAgIChoZXgpCQlHaWdhZmluIE5ldHdvcmtzCiswMDFFRjAgICAgIChiYXNlIDE2KQkJR2lnYWZpbiBOZXR3b3JrcworCQkJCTE5MDUwIFBydW5lcmlkZ2UKKwkJCQlTdWl0ZSAyMDAKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUYxICAgKGhleCkJCVNlcnZpbWF0CiswMDFFRjEgICAgIChiYXNlIDE2KQkJU2VydmltYXQKKwkJCQlaQUVUIExlcyBIYWllcworCQkJCVJ1ZSBCZW5vaXQgRnJhY2hvbgorCQkJCVN0IE1heGltaW4gT2lzZSA2MDc0MAorCQkJCUZSQU5DRQorCiswMC0xRS1GMiAgIChoZXgpCQlNaWNybyBNb3Rpb24gSW5jCiswMDFFRjIgICAgIChiYXNlIDE2KQkJTWljcm8gTW90aW9uIEluYworCQkJCTcwNzAgV2luY2hlc3RlciBDaXJjbGUKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1GMyAgIChoZXgpCQlGcm9tMgorMDAxRUYzICAgICAoYmFzZSAxNikJCUZyb20yCisJCQkJMkYsIE1lc3RlciBpbmMKKwkJCQkxNjg3LTMsIFNpbmlsLWRvbmcKKwkJCQlEYWVqZW9uICAzMDYtMjMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLUY0ICAgKGhleCkJCUwtMyBDb21tdW5pY2F0aW9ucyBEaXNwbGF5IFN5c3RlbXMKKzAwMUVGNCAgICAgKGJhc2UgMTYpCQlMLTMgQ29tbXVuaWNhdGlvbnMgRGlzcGxheSBTeXN0ZW1zCisJCQkJMTM1NSBCbHVlZ3Jhc3MgTGFrZXMgUGFya3dheQorCQkJCUFscGhhcmV0dGEgR0EgMzAwMDQtODQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtRjUgICAoaGV4KQkJSGl0ZWsgQXV0b21hdGVkIEluYy4KKzAwMUVGNSAgICAgKGJhc2UgMTYpCQlIaXRlayBBdXRvbWF0ZWQgSW5jLgorCQkJCVJvb20gQzMtOTAxLCBOby4zODMsIEh1YW1lbiBTaGlqaWEKKwkJCQlXZW5zYW5sdSBSb2FkLAorCQkJCUhhbmd6aG91ICAzMTAwMTIKKwkJCQlDSElOQQorCiswMC0xRS1GNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFFRjYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtRjcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRUY3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUY4ICAgKGhleCkJCUVtZmluaXR5IEluYy4KKzAwMUVGOCAgICAgKGJhc2UgMTYpCQlFbWZpbml0eSBJbmMuCisJCQkJMTExIEVsbSBTdHJlZXQKKwkJCQlTdWl0ZSAyMDEKKwkJCQlTdWRidXJ5IE9udGFyaW8gUDNDMVQzCisJCQkJQ0FOQURBCisKKzAwLTFFLUY5ICAgKGhleCkJCVBhc2NvbSBLb21tdW5pa2F0aW9ucyBzeXN0ZW1lIEdtYkguCiswMDFFRjkgICAgIChiYXNlIDE2KQkJUGFzY29tIEtvbW11bmlrYXRpb25zIHN5c3RlbWUgR21iSC4KKwkJCQlUZWNobm9sb2dpZXN0ci4gNAorCQkJCUFyYmluZyBVcHBlciBBdXN0cmlhIDQzMzIKKwkJCQlBVVNUUklBCisKKzAwLTFFLUZBICAgKGhleCkJCVBST1RFSSBMdGQuCiswMDFFRkEgICAgIChiYXNlIDE2KQkJUFJPVEVJIEx0ZC4KKwkJCQk2MEEgQi5TYW1wc29uaWV2c2t5LCAgQnVzaW5lc3MgQ2VudGVyCisJCQkJU3QuUGV0ZXJzYnVyZyBSVSAxOTQwNDQKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUUtRkIgICAoaGV4KQkJVHJpbyBNb3Rpb24gVGVjaG5vbG9neSBMdGQKKzAwMUVGQiAgICAgKGJhc2UgMTYpCQlUcmlvIE1vdGlvbiBUZWNobm9sb2d5IEx0ZAorCQkJCVNoYW5ub24gV2F5CisJCQkJVGV3a2VzYnVyeSBHbG91Y2VzdGVyc2hpcmUgR0wyMCA4TkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRS1GQyAgIChoZXgpCQlKU0MgIk1BU1NBLUsiCiswMDFFRkMgICAgIChiYXNlIDE2KQkJSlNDICJNQVNTQS1LIgorCQkJCTE1LCBBLCBQaXJvZ292c2theWEgbmFiLgorCQkJCVNhaW50LVBldGVyc2J1cmcgTGVuaW5ncmFkc2tpeSByZWcuIDE5NDA0NAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRS1GRCAgIChoZXgpCQlNaWNyb2JpdCAyLjAgQUIKKzAwMUVGRCAgICAgKGJhc2UgMTYpCQlNaWNyb2JpdCAyLjAgQUIKKwkJCQlOeXN0YWRlbiAxCisJCQkJS0FMSVggIDk1MjYxCisJCQkJU1dFREVOCisKKzAwLTFFLUZFICAgKGhleCkJCUxFVkVMIHMuci5vLgorMDAxRUZFICAgICAoYmFzZSAxNikJCUxFVkVMIHMuci5vLgorCQkJCVBsaG92c2vhIDE5OTcKKwkJCQlO4WNob2QgIDU0NyAwMQorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTFFLUZGICAgKGhleCkJCU11ZWxsZXItRWxla3Ryb25payBHbWJIICYgQ28uIEtHCiswMDFFRkYgICAgIChiYXNlIDE2KQkJTXVlbGxlci1FbGVrdHJvbmlrIEdtYkggJiBDby4gS0cKKwkJCQlGcmFuei1LbGVpbmUtU3RyLiAxOAorCQkJCVNhbHprb3R0ZW4gTlJXIDMzMTU0CisJCQkJR0VSTUFOWQorCiswMC0xRi0wMCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRjAwICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwVgorCQkJCURFTk1BUksKKworMDAtMUYtMDEgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUYwMSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MHYKKwkJCQlERU5NQVJLCisKKzAwLTFGLTAyICAgKGhleCkJCVBpeGVsbWV0cml4IENvcnBvcmF0aW9uIFB0ZSBMdGQKKzAwMUYwMiAgICAgKGJhc2UgMTYpCQlQaXhlbG1ldHJpeCBDb3Jwb3JhdGlvbiBQdGUgTHRkCisJCQkJMzEgS2FraSBCdWtpdCBSb2FkIDMKKwkJCQkjMDctMDMsIFRlY2hsaW5rCisJCQkJNDE3ODE4CisJCQkJU0lOR0FQT1JFCisKKzAwLTFGLTAzICAgKGhleCkJCU5VTSBBRworMDAxRjAzICAgICAoYmFzZSAxNikJCU5VTSBBRworCQkJCUJhdHRlbmh1c3N0cmFzc2UgMTYKKwkJCQlUZXVmZW4gQVIgOTA1MworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFGLTA0ICAgKGhleCkJCUdyYW5jaCBMdGQuCiswMDFGMDQgICAgIChiYXNlIDE2KQkJR3JhbmNoIEx0ZC4KKwkJCQk0MCBLb3JvbGV2YSBzdHIuCisJCQkJNTMgUGlzYXJldmEgc3RyLgorCQkJCU5vdm9zaWJpcnNrIE5TTyA2MzAwMTUKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUYtMDUgICAoaGV4KQkJaVRBUyBUZWNobm9sb2d5IENvcnAuCiswMDFGMDUgICAgIChiYXNlIDE2KQkJaVRBUyBUZWNobm9sb2d5IENvcnAuCisJCQkJTm8uIDc1LCBTaHVpeXVhbiBTdC4KKwkJCQlIc2luY2h1IENpdHkgIDMwMDY5CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi0wNiAgIChoZXgpCQlJbnRlZ3JhdGVkIERpc3BhdGNoIFNvbHV0aW9ucworMDAxRjA2ICAgICAoYmFzZSAxNikJCUludGVncmF0ZWQgRGlzcGF0Y2ggU29sdXRpb25zCisJCQkJNjQ1IE1vdW50YWluIEF2ZQorCQkJCVd5Y2tvZmYgTkogMDc0ODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTA3ICAgKGhleCkJCUFaVEVRIE1vYmlsZQorMDAxRjA3ICAgICAoYmFzZSAxNikJCUFaVEVRIE1vYmlsZQorCQkJCVN1aXRlIDIxMCwgNTI1IFVuaXZlcnNpdHkgQXZlCisJCQkJUGFsbyBBbHRvIENBIDk0MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi0wOCAgIChoZXgpCQlSSVNDTyBMVEQKKzAwMUYwOCAgICAgKGJhc2UgMTYpCQlSSVNDTyBMVEQKKwkJCQkzMiBIYWNoYXJvc2hldCBTdAorCQkJCUtpcmlhdCBNYWxhY2hpICA4MzEwMQorCQkJCUlTUkFFTAorCiswMC0xRi0wOSAgIChoZXgpCQlKQVNURUMgQ08uLCBMVEQuCiswMDFGMDkgICAgIChiYXNlIDE2KQkJSkFTVEVDIENPLiwgTFRELgorCQkJCUphc3RlYyBCL0QsIDkyLTcKKwkJCQlLdW0tZ29rIERvbmcsIEJvb24tRGFuZyBHdQorCQkJCVNlb25nLW5hbSBTaSAgS3l1bmctZ2kgRG8gNDYzLTgwNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi0wQSAgIChoZXgpCQlOb3J0ZWwKKzAwMUYwQSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQkxODMwIE1hdGhlc29uIEJvdWxldmFyZAorCQkJCVN1aXRlIDEKKwkJCQlNaXNzaXNzYXVnYSBPbnRhcmlvIEw0VyAwQjMKKwkJCQlDQU5BREEKKworMDAtMUYtMEIgICAoaGV4KQkJRmVkZXJhbCBTdGF0ZSBVbml0YXJ5IEVudGVycHJpc2UgSW5kdXN0cmlhbCBVbmlvbiJFbGVjdHJvcHJpYm9yIgorMDAxRjBCICAgICAoYmFzZSAxNikJCUZlZGVyYWwgU3RhdGUgVW5pdGFyeSBFbnRlcnByaXNlIEluZHVzdHJpYWwgVW5pb24iRWxlY3Ryb3ByaWJvciIKKwkJCQkKKwkJCQlQZW56YSAgNDQwMDExCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFGLTBDICAgKGhleCkJCUludGVsbGlnZW50IERpZ2l0YWwgU2VydmljZXMgR21iSAorMDAxRjBDICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IERpZ2l0YWwgU2VydmljZXMgR21iSAorCQkJCUdyZXZlc211ZWhsZW5lciBTdHJhc3NlIDgKKwkJCQlNYWxsZW50aW4gTWVja2xlbmJ1cmctVm9ycG9tbWVybiAyMzYzOQorCQkJCUdFUk1BTlkKKworMDAtMUYtMEQgICAoaGV4KQkJTDMgQ29tbXVuaWNhdGlvbnMgLSBUZWxlbWV0cnkgV2VzdAorMDAxRjBEICAgICAoYmFzZSAxNikJCUwzIENvbW11bmljYXRpb25zIC0gVGVsZW1ldHJ5IFdlc3QKKwkJCQk5MDIwIEJhbGJvYSBBdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTBFICAgKGhleCkJCUphcGFuIEt5YXN0ZW0gQ28uLCBMdGQKKzAwMUYwRSAgICAgKGJhc2UgMTYpCQlKYXBhbiBLeWFzdGVtIENvLiwgTHRkCisJCQkJMS00LTQKKwkJCQlOaXNoaWtpLWNobworCQkJCVRhY2hpa2F3YSBUb2t5byAxOTAtMDAyMgorCQkJCUpBUEFOCisKKzAwLTFGLTBGICAgKGhleCkJCVNlbGVjdCBFbmdpbmVlcmVkIFN5c3RlbXMKKzAwMUYwRiAgICAgKGJhc2UgMTYpCQlTZWxlY3QgRW5naW5lZXJlZCBTeXN0ZW1zCisJCQkJNzk5MSBXLiAyNiBBdmUKKwkJCQlIaWFsZWFoIEZsb3JpZGEgMzMwMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTEwICAgKGhleCkJCVRPTEVETyBETyBCUkFTSUwgSU5EVVNUUklBIERFIEJBTEFOQ0FTICBMVERBCiswMDFGMTAgICAgIChiYXNlIDE2KQkJVE9MRURPIERPIEJSQVNJTCBJTkRVU1RSSUEgREUgQkFMQU5DQVMgIExUREEKKwkJCQlSVUEgTUFOT0VMIENSRU1PTkVTSSwgMQorCQkJCUVTVFJBREEgU0FNVUVMIEFJWkVNQkVSRywgMzQ1CisJCQkJU0FPIEJFUk5BUkRPIERPIENBTVBPIFNQIDA5ODUxLTkwMAorCQkJCUJSQVpJTAorCiswMC0xRi0xMSAgIChoZXgpCQlPUEVOTU9LTywgSU5DLgorMDAxRjExICAgICAoYmFzZSAxNikJCU9QRU5NT0tPLCBJTkMuCisJCQkJN0YsIE5vIDMwMCwgWWFuZyBHdWFuZyBTdHJlZXQKKwkJCQlOZWlIdQorCQkJCVRhaXBlaSAgMTE0OTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTEyICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzAwMUYxMiAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMTMgICAoaGV4KQkJUy4mIEEuUy4gTHRkLgorMDAxRjEzICAgICAoYmFzZSAxNikJCVMuJiBBLlMuIEx0ZC4KKwkJCQlCb3V0cm9zIEJsZGcuIDFzdCBic210CisJCQkJR2hhYmkgU3RyZWV0CisJCQkJQmVpcnV0ICAyMDY3IDc4MDgKKwkJCQlMRUJBTk9OCisKKzAwLTFGLTE0ICAgKGhleCkJCU5leEcKKzAwMUYxNCAgICAgKGJhc2UgMTYpCQlOZXhHCisJCQkJNUYgU2VvdWwgQWNhZGVteSBCbGRnLCBEYWVjaGktRG9uZywgR2FuZ25hbS1HdSwKKwkJCQlTZW91bCAgMTM1LTI4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi0xNSAgIChoZXgpCQlCaW9zY3J5cHQgSW5jCiswMDFGMTUgICAgIChiYXNlIDE2KQkJQmlvc2NyeXB0IEluYworCQkJCTUwNSBDb2NocmFuZSBEcml2ZQorCQkJCU1hcmtoYW0gT250YXJpbyBMM1IgOEUzCisJCQkJQ0FOQURBCisKKzAwLTFGLTE2ICAgKGhleCkJCVdpc3Ryb24gQ29ycG9yYXRpb24KKzAwMUYxNiAgICAgKGJhc2UgMTYpCQlXaXN0cm9uIENvcnBvcmF0aW9uCisJCQkJMjFGLCA4OCwgU2VjLjEsSHNpbiBUYWkgV3UgUmQuLCBIc2ljaGloLAorCQkJCVRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTE3ICAgKGhleCkJCUlEWCBDb21wYW55LCBMdGQuCiswMDFGMTcgICAgIChiYXNlIDE2KQkJSURYIENvbXBhbnksIEx0ZC4KKwkJCQk2LTI4LTExIFNodWt1Z2F3YXJhLCBUYW5hLWt1CisJCQkJS2F3YXNha2ktU2hpIEthbmFnYXdhLUtlbiAyMTQwMDIxCisJCQkJSkFQQU4KKworMDAtMUYtMTggICAoaGV4KQkJSGFrdXNhbi5NZmcuQ28sLkx0ZAorMDAxRjE4ICAgICAoYmFzZSAxNikJCUhha3VzYW4uTWZnLkNvLC5MdGQKKwkJCQlUb21pbi1Lb3VneW91LUlrZWJ1a3VybyBCTEQuNUYKKwkJCQkyLTI2LTUgIE1pbmFtaS1Ja2VidWt1cm8KKwkJCQlUb3NpbWEgV2FyZCBUb2t5by1NZXQuIDE3MS0wMDIyCisJCQkJSkFQQU4KKworMDAtMUYtMTkgICAoaGV4KQkJQkVOLVJJIEVMRUNUUk9OSUNBIFMuQS4KKzAwMUYxOSAgICAgKGJhc2UgMTYpCQlCRU4tUkkgRUxFQ1RST05JQ0EgUy5BLgorCQkJCVBPTC4gSU5ELiBWRU5UT1JSTyBERUwgQ0FOTworCQkJCUMvLiBMT1pPWUEgOAorCQkJCUFMQ09SQ09OIE1BRFJJRCAyODkyNQorCQkJCVNQQUlOCisKKzAwLTFGLTFBICAgKGhleCkJCVByb21pbnZlc3QKKzAwMUYxQSAgICAgKGJhc2UgMTYpCQlQcm9taW52ZXN0CisJCQkJNywgQm9icnVpc2theWEgdWxpY2EKKwkJCQlTYWludC1QZXRlcnNidXJnIE5vcnRoLVdlc3QgRmVkZXJhbCBEaXN0cmljdCAxOTUwMDkKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUYtMUIgICAoaGV4KQkJUm95YWxUZWsgQ29tcGFueSBMdGQuCiswMDFGMUIgICAgIChiYXNlIDE2KQkJUm95YWxUZWsgQ29tcGFueSBMdGQuCisJCQkJU3VpdGUgOUYtMSwgTm8uIDEwNzEsIENodW5nIENoZW5nIFJkLgorCQkJCVRhb3l1YW4gU2hpZW4gVGFveXVhbiAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTFDICAgKGhleCkJCUtPQklTSEkgRUxFQ1RSSUMgQ28uLEx0ZC4KKzAwMUYxQyAgICAgKGJhc2UgMTYpCQlLT0JJU0hJIEVMRUNUUklDIENvLixMdGQuCisJCQkJMTgwNS0xCisJCQkJS2FtaXlhCisJCQkJS291bm9zdS1zaGkgU2FpdGFtYS1rZW4gMzY1LTAwMjcKKwkJCQlKQVBBTgorCiswMC0xRi0xRCAgIChoZXgpCQlBdGxhcyBNYXRlcmlhbCBUZXN0aW5nIFRlY2hub2xvZ3kgTExDCiswMDFGMUQgICAgIChiYXNlIDE2KQkJQXRsYXMgTWF0ZXJpYWwgVGVzdGluZyBUZWNobm9sb2d5IExMQworCQkJCTQxMTQgTi4gUmF2ZW5zd29vZCBBdmUuCisJCQkJQ2hpY2FnbyBJTCA2MDYxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMUUgICAoaGV4KQkJQXN0ZWMgVGVjaG5vbG9neSBDby4sIEx0ZAorMDAxRjFFICAgICAoYmFzZSAxNikJCUFzdGVjIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQkxMkYsIE5vLjIsIEppYW4gQmEgUmQuCisJCQkJQ2h1bmcgSG8gVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtMUYgICAoaGV4KQkJRWRpbWF4IFRlY2hub2xvZ3kgQ28uIEx0ZC4KKzAwMUYxRiAgICAgKGJhc2UgMTYpCQlFZGltYXggVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCU5vLiAzLCBXdS1DaHVhbiAzcmQgUm9hZCwgV3UtS3UgSW5kdXN0cmlhbCBQYXJrLAorCQkJCVRhaXBlaSBIc2llbiAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTIwICAgKGhleCkJCUxvZ2l0ZWNoIEV1cm9wZSBTQQorMDAxRjIwICAgICAoYmFzZSAxNikJCUxvZ2l0ZWNoIEV1cm9wZSBTQQorCQkJCU1vdWxpbiBkdSBDaG9jIEQKKwkJCQlSb21hbmVsIHN1ciBNb3JnZXMgQ0ggMTEyMgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFGLTIxICAgKGhleCkJCUlubmVyIE1vbmdvbGlhIFlpbiBBbiBTY2llbmNlICYgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby4sTAorMDAxRjIxICAgICAoYmFzZSAxNikJCUlubmVyIE1vbmdvbGlhIFlpbiBBbiBTY2llbmNlICYgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby4sTAorCQkJCVlpbkFuIEJ1aWxkaW5nIFlpd2VpIFJvYWQuUnVZaQorCQkJCURldmVsb3BtZW50IFpvbmUsSG9oaG90CisJCQkJQmVpamluZyAgMDEwMDEwCisJCQkJQ0hJTkEKKworMDAtMUYtMjIgICAoaGV4KQkJRmliZXJ4b24sIEluYy4KKzAwMUYyMiAgICAgKGJhc2UgMTYpCQlGaWJlcnhvbiwgSW5jLgorCQkJCTUyMDEgR3JlYXQgQW1lcmljYSBQYXJrd2F5CisJCQkJU3VpdGUgMzQwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTIzICAgKGhleCkJCUludGVyYWNvdXN0aWNzCiswMDFGMjMgICAgIChiYXNlIDE2KQkJSW50ZXJhY291c3RpY3MKKwkJCQlEcmVqZXJ2YWVuZ2V0IDgKKwkJCQlBc3NlbnMgREsgNTYxMAorCQkJCURFTk1BUksKKworMDAtMUYtMjQgICAoaGV4KQkJRElHSVRWSUVXIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDFGMjQgICAgIChiYXNlIDE2KQkJRElHSVRWSUVXIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJTk8uIDE0LTIyLCBUSUFOLUZVICwKKwkJCQlTQU5TSUEgVE9XTlNISVAsCisJCQkJVEFJUEVJIENPVU5UWSAgMjM3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi0yNSAgIChoZXgpCQlNQlMgR21iSAorMDAxRjI1ICAgICAoYmFzZSAxNikJCU1CUyBHbWJICisJCQkJUvZtZXJzdHJh32UgMTUKKwkJCQlLcmVmZWxkIE5vcmRyaGVpbi1XZXN0ZmFsZW4gNDc4MDkKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLTI2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUYyNiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi0yNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFGMjcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMjggICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorMDAxRjI4ICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkCisJCQkJUm9zZXZpbGxlIENBIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi0yOSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMUYyOSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAyCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMkEgICAoaGV4KQkJQUNDTQorMDAxRjJBICAgICAoYmFzZSAxNikJCUFDQ00KKwkJCQlPYm91ciBJbmR1c3RyaWFsIENpdHksIEluZHVzdHJpYWwgem9uZSBBLCBsb3QxNCwgYmxvY2sgMTIwMDYuCisJCQkJQ2Fpcm8gIAorCQkJCUVHWVBUCisKKzAwLTFGLTJCICAgKGhleCkJCU9yYW5nZSBMb2dpYworMDAxRjJCICAgICAoYmFzZSAxNikJCU9yYW5nZSBMb2dpYworCQkJCSM3MDYgQWNlVGVjaG5vVG93ZXIgMTAtY2hhLDQ3MC01CisJCQkJR2FzYW4tZG9uZyBHZXVtY2hlb24tZ3UKKwkJCQlTRU9VTCAgMTUzLTc4OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi0yQyAgIChoZXgpCQlTdGFyYnJpZGdlIE5ldHdvcmtzCiswMDFGMkMgICAgIChiYXNlIDE2KQkJU3RhcmJyaWRnZSBOZXR3b3JrcworCQkJCTMyNjUgTWVyaWRpYW4gUGFya3dheQorCQkJCVN1aXRlIDEzNAorCQkJCVdlc3RvbiBGTCAzMzMzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMkQgICAoaGV4KQkJRWxlY3Ryby1PcHRpY2FsIEltYWdpbmcsIEluYy4KKzAwMUYyRCAgICAgKGJhc2UgMTYpCQlFbGVjdHJvLU9wdGljYWwgSW1hZ2luZywgSW5jLgorCQkJCTQzMDAgRm9ydHVuZSBQbGFjZSwgU3VpdGUgQworCQkJCVdlc3QgTWVsYm91cm5lIEZMIDMyOTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi0yRSAgIChoZXgpCQlUcmlhbmdsZSBSZXNlYXJjaCBJbnQnbCBQdGUgTHRkCiswMDFGMkUgICAgIChiYXNlIDE2KQkJVHJpYW5nbGUgUmVzZWFyY2ggSW50J2wgUHRlIEx0ZAorCQkJCTEwIFViaSBDcmVzY2VudCAjMDUtODMKKwkJCQlVYmkgVGVjaHBhcmsgU0cgNDA4NjY0CisJCQkJU0lOR0FQT1JFCisKKzAwLTFGLTJGICAgKGhleCkJCUJlcmtlciBHbWJIICYgQ28uIEtHCiswMDFGMkYgICAgIChiYXNlIDE2KQkJQmVya2VyIEdtYkggJiBDby4gS0cKKwkJCQlLbGFnZWJhY2ggMzgKKwkJCQlTY2hhbGtzbXVlaGxlIE5SVyA1ODU3OQorCQkJCUdFUk1BTlkKKworMDAtMUYtMzAgICAoaGV4KQkJVHJhdmVscGluZworMDAxRjMwICAgICAoYmFzZSAxNikJCVRyYXZlbHBpbmcKKwkJCQkKKwkJCQlMZWlwemlnZXIgU3RyLiA0NgorCQkJCUNoZW1uaXR6IFNheG9ueSAwOTExMworCQkJCUdFUk1BTlkKKworMDAtMUYtMzEgICAoaGV4KQkJUmFkaW9jb21wCiswMDFGMzEgICAgIChiYXNlIDE2KQkJUmFkaW9jb21wCisJCQkJS3Jha2VzdmVqIDE3CisJCQkJSGlsbGVyb2VkIENvcGVuaGFnZW4gMzQwMAorCQkJCURFTk1BUksKKworMDAtMUYtMzIgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDFGMzIgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gS1lPVE8gNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xRi0zMyAgIChoZXgpCQlOZXRnZWFyIEluYy4KKzAwMUYzMyAgICAgKGJhc2UgMTYpCQlOZXRnZWFyIEluYy4KKwkJCQk0NTAwIEdyZWF0IEFtZXJpY2EgUGt3eQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi0zNCAgIChoZXgpCQlMdW5nIEh3YSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMUYzNCAgICAgKGJhc2UgMTYpCQlMdW5nIEh3YSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkzRiwgMjQ4LCBQZWkgU2hlbmcgUmQuIFNlYy4gMywKKwkJCQlTaGVuZyBLZW5nCisJCQkJVGFpcGVpIEhzaWVuIDIyMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtMzUgICAoaGV4KQkJQUlSODAyIExMQworMDAxRjM1ICAgICAoYmFzZSAxNikJCUFJUjgwMiBMTEMKKwkJCQkxMTY5IEJhbnlvbiBDb3VydAorCQkJCU5hcGVydmlsbGUgSUwgNjA1NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTM2ICAgKGhleCkJCUJlbGx3aW4gSW5mb3JtYXRpb24gQ28uIEx0ZC4sCiswMDFGMzYgICAgIChiYXNlIDE2KQkJQmVsbHdpbiBJbmZvcm1hdGlvbiBDby4gTHRkLiwKKwkJCQkxN0YtMSxOby4xMjgsQ2h1bmcgRGUgUmQuCisJCQkJVGFpY2h1bmcgIDQwNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtMzcgICAoaGV4KQkJR2VuZXNpcyBJJkMKKzAwMUYzNyAgICAgKGJhc2UgMTYpCQlHZW5lc2lzIEkmQworCQkJCSM1MTUgbGlzYW50ZWtldW5vdGF1bgorCQkJCTExNDEtMSBCYWVrc2Vvay1Eb25nLCBsaXNhbmRvbmctR3UKKwkJCQlHb3lhbmcgR3llb25nZ2kgNDEwLTcyMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi0zOCAgIChoZXgpCQlQT1NJVFJPTgorMDAxRjM4ICAgICAoYmFzZSAxNikJCVBPU0lUUk9OCisJCQkJRVNUUkFEQSBURUxFQlJBUy1VTklDQU1QLCBLTTAsOTcgLSBDSi4wMQorCQkJCUJBSVJSTzogQ0lEQURFIFVOSVZFUlNJVEFSSUEKKwkJCQlDQU1QSU5BUyBTQU8gUEFVTE8gMTMwODQtOTcxCisJCQkJQlJBWklMCisKKzAwLTFGLTM5ICAgKGhleCkJCUNvbnN0cnVjY2lvbmVzIHkgQXV4aWxpYXIgZGUgRmVycm9jYXJyaWxlcywgUy5BLgorMDAxRjM5ICAgICAoYmFzZSAxNikJCUNvbnN0cnVjY2lvbmVzIHkgQXV4aWxpYXIgZGUgRmVycm9jYXJyaWxlcywgUy5BLgorCQkJCUMvIEouTS4gSXR1cnJpb3osIDI2CisJCQkJQmVhc2FpbiBHdWlw+npjb2EgRS0yMDIwMAorCQkJCVNQQUlOCisKKzAwLTFGLTNBICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC5Dby4sIEx0ZC4KKzAwMUYzQSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uLCBMdGQuCisJCQkJNjYsIENodW5nIFNoYW4gUmQuVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi0zQiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMUYzQiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFGLTNDICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxRjNDICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMUYtM0QgICAoaGV4KQkJUWJpdCBHbWJICiswMDFGM0QgICAgIChiYXNlIDE2KQkJUWJpdCBHbWJICisJCQkJU3RlZ3dpZXNlbnN0cmFzc2UgMzIKKwkJCQlCcnVjaHNhbCBHZXJtYW55IDc2NjQ2CisJCQkJR0VSTUFOWQorCiswMC0xRi0zRSAgIChoZXgpCQlSUC1UZWNobmlrIGUuSy4KKzAwMUYzRSAgICAgKGJhc2UgMTYpCQlSUC1UZWNobmlrIGUuSy4KKwkJCQlIZXJtYW5uLVN0YXVkaW5nZXItU3RyLiAxMC0xNgorCQkJCVJvZGdhdSBIZXNzZW4gNjMxMTAKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLTNGICAgKGhleCkJCUFWTSBHbWJICiswMDFGM0YgICAgIChiYXNlIDE2KQkJQVZNIEdtYkgKKwkJCQlBbHQtTW9hYml0IDk1CisJCQkJQmVybGluICAxMDU1OQorCQkJCUdFUk1BTlkKKworMDAtMUYtNDAgICAoaGV4KQkJU3BlYWtlcmNyYWZ0IEluYy4KKzAwMUY0MCAgICAgKGJhc2UgMTYpCQlTcGVha2VyY3JhZnQgSW5jLgorCQkJCTk0MCBDb2x1bWJpYSBBdmUuLAorCQkJCVJpdmVyc2lkZSBDQSA5MjUwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNDEgICAoaGV4KQkJUnVja3VzIFdpcmVsZXNzCiswMDFGNDEgICAgIChiYXNlIDE2KQkJUnVja3VzIFdpcmVsZXNzCisJCQkJODgwIFdlc3QgTWF1ZGUgQXZlLgorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNDIgICAoaGV4KQkJRXRoZXJzdGFjayBQdHkgTHRkCiswMDFGNDIgICAgIChiYXNlIDE2KQkJRXRoZXJzdGFjayBQdHkgTHRkCisJCQkJMjAxIE5hdGlvbmFsIElubm92YXRpb24gQ2VudHJlCisJCQkJQXVzdHJhbGlhbiBUZWNobm9sb2d5IFBhcmsgTlNXIDIyMzQKKwkJCQlBVVNUUkFMSUEKKworMDAtMUYtNDMgICAoaGV4KQkJRU5URVMgRUxFS1RST05JSworMDAxRjQzICAgICAoYmFzZSAxNikJCUVOVEVTIEVMRUtUUk9OSUsKKwkJCQlZLiBEdWR1bGx1IE9yZy4gU2FuLiBCb2wuIEFuZCBTYW5heWkgU2l0LiBOby42CisJCQkJVW1yYW5peWUKKwkJCQlJc3RhbmJ1bCBEdWR1bGx1IDM0Nzc1CisJCQkJVFVSS0VZCisKKzAwLTFGLTQ0ICAgKGhleCkJCUdFIFRyYW5zcG9ydGF0aW9uIFN5c3RlbXMKKzAwMUY0NCAgICAgKGJhc2UgMTYpCQlHRSBUcmFuc3BvcnRhdGlvbiBTeXN0ZW1zCisJCQkJMjkwMSBFYXN0IExha2UgUm9hZAorCQkJCUVyaWUgUEEgMTY1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTQ1ICAgKGhleCkJCUVudGVyYXN5cworMDAxRjQ1ICAgICAoYmFzZSAxNikJCUVudGVyYXN5cworCQkJCTUwIE1pbnV0ZW1hbiBSb2FkCisJCQkJQW5kb3ZlciBNQSAwMTgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNDYgICAoaGV4KQkJTm9ydGVsCiswMDFGNDYgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJMjIyMSBMYWtlc2lkZSBCbHZkCisJCQkJUmljaGFyZHNvbiBUZXhhcyA3NTA4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNDcgICAoaGV4KQkJTUNTIExvZ2ljIEluYy4KKzAwMUY0NyAgICAgKGJhc2UgMTYpCQlNQ1MgTG9naWMgSW5jLgorCQkJCTZGLiBTYW1obyBDZW50ZXIgQiBCbGRnLiwgMjc1LTYKKwkJCQlZYW5namFlLURvbmcsIFNlY2hvLUt1CisJCQkJU2VvdWwgIDEzNy05NDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtNDggICAoaGV4KQkJTW9qaXggSW5jLgorMDAxRjQ4ICAgICAoYmFzZSAxNikJCU1vaml4IEluYy4KKwkJCQkxMTA3NSBTYW50YSBNb25pY2EgQmx2ZC4KKwkJCQlTdWl0ZSAzNTAKKwkJCQlMb3MgQW5nZWxlcyBDYSA5MDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNDkgICAoaGV4KQkJRXVyb3NhdCBEaXN0cmlidXRpb24gTHRkCiswMDFGNDkgICAgIChiYXNlIDE2KQkJRXVyb3NhdCBEaXN0cmlidXRpb24gTHRkCisJCQkJNSBPeGdhdGUgQ2VudHJlCisJCQkJT3hnYXRlIExhbmUKKwkJCQlMb25kb24gIE5XMiA3SkEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRi00QSAgIChoZXgpCQlBbGJlbnRpYSBTeXN0ZW1zIFMuQS4KKzAwMUY0QSAgICAgKGJhc2UgMTYpCQlBbGJlbnRpYSBTeXN0ZW1zIFMuQS4KKwkJCQlBbGJhbGEgMTMKKwkJCQlNYWRyaWQgIDI4MDM3CisJCQkJU1BBSU4KKworMDAtMUYtNEIgICAoaGV4KQkJTGluZWFnZSBQb3dlcgorMDAxRjRCICAgICAoYmFzZSAxNikJCUxpbmVhZ2UgUG93ZXIKKwkJCQkzMDAwIFNreWxpbmUgRHIuCisJCQkJTWVzcXVpdGUgVFggNzUxNDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTRDICAgKGhleCkJCVJvc2VtYW4gRW5naW5lZXJpbmcgTHRkCiswMDFGNEMgICAgIChiYXNlIDE2KQkJUm9zZW1hbiBFbmdpbmVlcmluZyBMdGQKKwkJCQk2NSBXZWl6bWFuIFN0cmVldAorCQkJCUdpdmF0YWltIElzcmFlbCA1MzQ2OAorCQkJCUlTUkFFTAorCiswMC0xRi00RCAgIChoZXgpCQlTZWduZXRpY3MgTExDCiswMDFGNEQgICAgIChiYXNlIDE2KQkJU2VnbmV0aWNzIExMQworCQkJCVNoa2lwZXJza2kgcHJvdG9rIDE0CisJCQkJU2FpbnQtUGV0ZXJzYnVyZyAgMTk5MTA2CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFGLTRFICAgKGhleCkJCUNvbk1lZCBMaW52YXRlYworMDAxRjRFICAgICAoYmFzZSAxNikJCUNvbk1lZCBMaW52YXRlYworCQkJCTExMzExIENvbmNlcHQgQmx2ZC4KKwkJCQlMYXJnbyBGTCAzMzc3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNEYgICAoaGV4KQkJVGhpbmt3YXJlIENvLiBMdGQuCiswMDFGNEYgICAgIChiYXNlIDE2KQkJVGhpbmt3YXJlIENvLiBMdGQuCisJCQkJMTVGTCwgSGFubWkgVG93ZXIsIDQ1LAorCQkJCUJhbmdpLURvbmcsIFNvbmdwYS1ndQorCQkJCVNlb3VsICAxMzgtNzI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLTUwICAgKGhleCkJCVN3aXNzZGlzIEFHCiswMDFGNTAgICAgIChiYXNlIDE2KQkJU3dpc3NkaXMgQUcKKwkJCQlHcmFzd2VnIDcKKwkJCQlTY2h3YXJ6aGFldXNlcm4gQkUgNDkxMQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFGLTUxICAgKGhleCkJCUhEIENvbW11bmljYXRpb25zIENvcnAKKzAwMUY1MSAgICAgKGJhc2UgMTYpCQlIRCBDb21tdW5pY2F0aW9ucyBDb3JwCisJCQkJMjE4MCBGaWZ0aCBBdmUKKwkJCQlSb25rb25rb21hIE5ZIDExNzc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi01MiAgIChoZXgpCQlVVlQgVW50ZXJuZWhtZW5zYmVyYXR1bmcgZvxyIFZlcmtlaHIgdW5kIFRlY2huaWsgR21iSAorMDAxRjUyICAgICAoYmFzZSAxNikJCVVWVCBVbnRlcm5laG1lbnNiZXJhdHVuZyBm/HIgVmVya2VociB1bmQgVGVjaG5payBHbWJICisJCQkJSm9zZWZzc3RyLjU0LTU2CisJCQkJTWFpbnogUkxQIDU1MTE4CisJCQkJR0VSTUFOWQorCiswMC0xRi01MyAgIChoZXgpCQlHRU1BQyBHZXNlbGxzY2hhZnQgZvxyIE1pa3JvZWxla3Ryb25pa2Fud2VuZHVuZyBDaGVtbml0eiBtYkgKKzAwMUY1MyAgICAgKGJhc2UgMTYpCQlHRU1BQyBHZXNlbGxzY2hhZnQgZvxyIE1pa3JvZWxla3Ryb25pa2Fud2VuZHVuZyBDaGVtbml0eiBtYkgKKwkJCQlad2lja2F1ZXIgU3RyLiAyMjcKKwkJCQlDaGVtbml0eiBTYWNoc2VuIDA5MTE2CisJCQkJR0VSTUFOWQorCiswMC0xRi01NCAgIChoZXgpCQlMb3JleCBUZWNobm9sb2d5IEluYy4KKzAwMUY1NCAgICAgKGJhc2UgMTYpCQlMb3JleCBUZWNobm9sb2d5IEluYy4KKwkJCQkzMDAgQWxkZW4gUm9hZAorCQkJCU1hcmtoYW0gT250YXJpbyBMM1I0QzEKKwkJCQlDQU5BREEKKworMDAtMUYtNTUgICAoaGV4KQkJSG9uZXl3ZWxsIFNlY3VyaXR5IChDaGluYSkgQ28uLCBMdGQuCiswMDFGNTUgICAgIChiYXNlIDE2KQkJSG9uZXl3ZWxsIFNlY3VyaXR5IChDaGluYSkgQ28uLCBMdGQuCisJCQkJQmxvY2sgMjgsIFNlY3Rpb24gMiwgSHVhaSAgRGUgQ3VpIEdhbmcgSW5kdXN0cmlhbCAgRXN0YXRlLCBGdSBZb25nLCBCYW8gQW4sIFNoZW5aaGVuLCBQLlIuIENoaW5hCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODEwMworCQkJCUNISU5BCisKKzAwLTFGLTU2ICAgKGhleCkJCURJR0lUQUwgRk9SRUNBU1QKKzAwMUY1NiAgICAgKGJhc2UgMTYpCQlESUdJVEFMIEZPUkVDQVNUCisJCQkJNXRoIEZsLiwgNTA3LCBFJkMgVmVudHVyZSBEcmVhbSBUb3dlciBJSUksIDE5Ny0zMworCQkJCUd1cm8gMy1kb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgR3l1bmdnaS1kbyAxNTItNzE5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLTU3ICAgKGhleCkJCVBob25payBJbm5vdmF0aW9uIENvLixMVEQKKzAwMUY1NyAgICAgKGJhc2UgMTYpCQlQaG9uaWsgSW5ub3ZhdGlvbiBDby4sTFRECisJCQkJMjkvMTY3IE1vbzIsIDM0NSBSZCwgTGFtcG8sCisJCQkJQmFuZ2J1YXRob25nCisJCQkJTm9udGhhYnVyaSAgMTExMTAKKwkJCQlUSEFJTEFORAorCiswMC0xRi01OCAgIChoZXgpCQlFTUggRW5lcmdpZW1lc3N0ZWNobmlrIEdtYkgKKzAwMUY1OCAgICAgKGJhc2UgMTYpCQlFTUggRW5lcmdpZW1lc3N0ZWNobmlrIEdtYkgKKwkJCQlWb3IgZGVtIEhhc3NlbCAyCisJCQkJQnJhY2tlbCBOaWVkZXJzYWNoc2VuIDIxNDM4CisJCQkJR0VSTUFOWQorCiswMC0xRi01OSAgIChoZXgpCQlLcm9uYmFjayBUcmFjZXJzCiswMDFGNTkgICAgIChiYXNlIDE2KQkJS3JvbmJhY2sgVHJhY2VycworCQkJCWMvbyBJSEssIE0xNDYKKwkJCQlMYXV0cnVwdmFuZyAxNQorCQkJCUJhbGxlcnVwIENvcGVuaGFnZW4gMjc1MAorCQkJCURFTk1BUksKKworMDAtMUYtNUEgICAoaGV4KQkJQmVja3dpdGggRWxlY3RyaWMgQ28uCiswMDFGNUEgICAgIChiYXNlIDE2KQkJQmVja3dpdGggRWxlY3RyaWMgQ28uCisJCQkJNjE5MCAxMTh0aCBBdmUgTm8KKwkJCQlMYXJnbyBGbG9yaWRhIDMzNzczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi01QiAgIChoZXgpCQlBcHBsZSwgSW5jLgorMDAxRjVCICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJTVMgMzUtR1BPCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi01QyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRjVDICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRi01RCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRjVEICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRi01RSAgIChoZXgpCQlEeW5hIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMUY1RSAgICAgKGJhc2UgMTYpCQlEeW5hIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQlIYW9IYWkgQnVpbGRpbmcgMUYsTm8uNyw1dGggU3RyZWV0LFNoYW5nZGksCisJCQkJSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTFGLTVGICAgKGhleCkJCUJsYXRhbmQgR21iSAorMDAxRjVGICAgICAoYmFzZSAxNikJCUJsYXRhbmQgR21iSAorCQkJCUxpY2h0ZW5iZXJnc3RyYd9lIDgKKwkJCQlHYXJjaGluZyBCYXZhcmlhIDg1NzQ4CisJCQkJR0VSTUFOWQorCiswMC0xRi02MCAgIChoZXgpCQlDT01QQVNTIFNZU1RFTVMgQ09SUC4KKzAwMUY2MCAgICAgKGJhc2UgMTYpCQlDT01QQVNTIFNZU1RFTVMgQ09SUC4KKwkJCQk2RiwgTm8uIDQxMywgU2VjLiAyLCBUaS1EaW5nIEJsdmQuLAorCQkJCVRhaXBlaSBOZWlodURpc3QgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi02MSAgIChoZXgpCQlUYWxlbnQgQ29tbXVuaWNhdGlvbiBOZXR3b3JrcyBJbmMuCiswMDFGNjEgICAgIChiYXNlIDE2KQkJVGFsZW50IENvbW11bmljYXRpb24gTmV0d29ya3MgSW5jLgorCQkJCVJtLiA5MTAgUiZGIFBsYXphLCAjNzYsIEh1YW5ncHUgQXZlLiBXZXN0LAorCQkJCUd1YW5nemhvdSAoQ2FudG9uKSBHdWFuZ2RvbmcgUHJvdmluY2UgNTEwMzYwCisJCQkJQ0hJTkEKKworMDAtMUYtNjIgICAoaGV4KQkJSlNDICJTdGlsc29mdCIKKzAwMUY2MiAgICAgKGJhc2UgMTYpCQlKU0MgIlN0aWxzb2Z0IgorCQkJCU1heWFrb3Zza29nbyAxNQorCQkJCVN0YXZyb3BvbCAgMzU1MDAwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFGLTYzICAgKGhleCkJCUpTQyBHb29kd2luLUV1cm9wYQorMDAxRjYzICAgICAoYmFzZSAxNikJCUpTQyBHb29kd2luLUV1cm9wYQorCQkJCTIwLzUgTWFya3Npc3Rza2F5YSBzdC4KKwkJCQlNb3Njb3cgIDEwOTE0NworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRi02NCAgIChoZXgpCQlCZWlqaW5nIEF1dGVsYW4gVGVjaG5vbG9neSBJbmMuCiswMDFGNjQgICAgIChiYXNlIDE2KQkJQmVpamluZyBBdXRlbGFuIFRlY2hub2xvZ3kgSW5jLgorCQkJCVJvb20gQi0xMkIwMSwgS2VzaGkgUGxhemEsIFhpbnhpIHJvYWQsCisJCQkJU2hhbmdkaSBwYXJrLEhhaWRpYW4sCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMUYtNjUgICAoaGV4KQkJS09SRUEgRUxFQ1RSSUMgVEVSTUlOQUwgQ08uLCBMVEQuCiswMDFGNjUgICAgIChiYXNlIDE2KQkJS09SRUEgRUxFQ1RSSUMgVEVSTUlOQUwgQ08uLCBMVEQuCisJCQkJIzctMzggU09OR0RPLURPTkcKKwkJCQlZRU9OU1UtR1UgSU5DSEVPTiA0MDYtODQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLTY2ICAgKGhleCkJCVBMQU5BUiBMTEMKKzAwMUY2NiAgICAgKGJhc2UgMTYpCQlQTEFOQVIgTExDCisJCQkJMzIsIEVsa2luYSBzdHIKKwkJCQlDaGVseWFiaW5zayBTVSA0NTQwOTEKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUYtNjcgICAoaGV4KQkJSGl0YWNoaSxMdGQuCiswMDFGNjcgICAgIChiYXNlIDE2KQkJSGl0YWNoaSxMdGQuCisJCQkJTWluYW1pb2kgNi0yNy0xOCwgU2hpbmFnYXdhLWt1CisJCQkJVG9reW8gMTQwLTg1NzIKKwkJCQlKQVBBTgorCiswMC0xRi02OCAgIChoZXgpCQlNYXJ0aW5zc29uIEVsZWt0cm9uaWsgQUIKKzAwMUY2OCAgICAgKGJhc2UgMTYpCQlNYXJ0aW5zc29uIEVsZWt0cm9uaWsgQUIKKwkJCQlCb3ggOTA2MAorCQkJCUjkZ2Vyc3RlbiBTdG9ja2hvbG0gMTI2IDA5CisJCQkJU1dFREVOCisKKzAwLTFGLTY5ICAgKGhleCkJCVBpbmdvb2QgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMUY2OSAgICAgKGJhc2UgMTYpCQlQaW5nb29kIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJUm0xOTE3LCBTb3V0aCBCbG9jaywgQ2FuZ3NvbmcgQmxkZy4sIFRhaXJhbiBJbmR1c3RyaWFsIFpvbmUsIEZ1dGlhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0xRi02QSAgIChoZXgpCQlQYWNrZXRGbHV4IFRlY2hub2xvZ2llcywgSW5jLgorMDAxRjZBICAgICAoYmFzZSAxNikJCVBhY2tldEZsdXggVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNTAgMTF0aCBBdmVudWUKKwkJCQlIZWxlbmEgTVQgNTk2MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTZCICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzCiswMDFGNkIgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MKKwkJCQk2MC0zOSxLYXNhbi1kb25nLEt1bWNob24ta3UKKwkJCQlTZW91bCAgMTUzLTAyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi02QyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFGNkMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNkQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRjZEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTZFICAgKGhleCkJCVZ0ZWNoIEVuZ2luZWVyaW5nIENvcnBvcmF0aW9uCiswMDFGNkUgICAgIChiYXNlIDE2KQkJVnRlY2ggRW5naW5lZXJpbmcgQ29ycG9yYXRpb24KKwkJCQkyMCBOZXcgRW5nbGFuZCBCdXNpbmVzcyBDZW50ZXIKKwkJCQlBbmRvdmVyIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi02RiAgIChoZXgpCQlGdWppYW4gU3VubmFkYSBDb21tdW5pY2F0aW9uIENvLixMdGQuCiswMDFGNkYgICAgIChiYXNlIDE2KQkJRnVqaWFuIFN1bm5hZGEgQ29tbXVuaWNhdGlvbiBDby4sTHRkLgorCQkJCTcvRqOsTWFpbiBCdWlsZGluZ6OsRnVqaWFuIFRvcmNoIEhpLVRlY2ggSW5ub3ZhdGlvbiBQYXJro6wjNjExIEluZHVzdHJpYWwgUm9hZKOsIEZ1emhvdaOsUFJDIDM1MDAwMgorCQkJCTcjIEJ1aWxkaW5nIEIgRGlzdHJpY3QsIFNvZnR3YXJlIFBhcmssIFRvbmdQYW4gUm9hZCBGdXpob3UsIFBSQyAzNTAwMDMKKwkJCQlGdXpob3UgRnVqaWFuIDM1MDAwMgorCQkJCUNISU5BCisKKzAwLTFGLTcwICAgKGhleCkJCUJvdGlrIFRlY2hub2xvZ2llcyBMVEQKKzAwMUY3MCAgICAgKGJhc2UgMTYpCQlCb3RpayBUZWNobm9sb2dpZXMgTFRECisJCQkJVHJ1ZG92YXlhLCAxCisJCQkJUGVyZXNsYXZsLVphbGVzc2t5IFlhcm9zbGF2c2theWEgMTUyMDIwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFGLTcxICAgKGhleCkJCXhHIFRlY2hub2xvZ3ksIEluYy4KKzAwMUY3MSAgICAgKGJhc2UgMTYpCQl4RyBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjQwIFMuIFBpbmVhcHBsZSBBdmVudWUKKwkJCQlTdWl0ZSA3MDEKKwkJCQlTYXJhc290YSBGTCAzNDIzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNzIgICAoaGV4KQkJUWluZ0RhbyBIaXBob25lIFRlY2hub2xvZ3kgQ28sLkx0ZAorMDAxRjcyICAgICAoYmFzZSAxNikJCVFpbmdEYW8gSGlwaG9uZSBUZWNobm9sb2d5IENvLC5MdGQKKwkJCQlOTy4xMDYsSmlhbmdYaSBSb2FkCisJCQkJUWluZ0RhbyBTaGFuRG9uZyAyNjYwNzEKKwkJCQlDSElOQQorCiswMC0xRi03MyAgIChoZXgpCQlUZXJhdmlldyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxRjczICAgICAoYmFzZSAxNikJCVRlcmF2aWV3IFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMjNGLCBOby4gMjktNSwgU2VjLiAyLCBKaG9uZ2poZW5nIEUuIFJvYWQsCisJCQkJRGFuc2h1aSBUb3duc2hpcCwKKwkJCQlUYWlwZWkgQ291bnR5ICAyNTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTc0ICAgKGhleCkJCUVpZ2VuIERldmVsb3BtZW50CiswMDFGNzQgICAgIChiYXNlIDE2KQkJRWlnZW4gRGV2ZWxvcG1lbnQKKwkJCQkxODA3IFcxMHRoIEF2ZQorCQkJCVZhbmNvdXZlciBCQyBWNkogMkE5CisJCQkJQ0FOQURBCisKKzAwLTFGLTc1ICAgKGhleCkJCUdpQmFobiBNZWRpYQorMDAxRjc1ICAgICAoYmFzZSAxNikJCUdpQmFobiBNZWRpYQorCQkJCTE4MTYgUm9zZWRhbGUgU3VzZW8tZG9uZworCQkJCUthbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTg4NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi03NiAgIChoZXgpCQlBaXJMb2dpYyBTeXN0ZW1zIEluYy4KKzAwMUY3NiAgICAgKGJhc2UgMTYpCQlBaXJMb2dpYyBTeXN0ZW1zIEluYy4KKwkJCQkzMDIyIFBlbGVrZSBTdC5TdWl0ZSAxCisJCQkJTGlodSdlIEhJIDk2NzY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi03NyAgIChoZXgpCQlIRU9MIERFU0lHTgorMDAxRjc3ICAgICAoYmFzZSAxNikJCUhFT0wgREVTSUdOCisJCQkJMSBiZCBkJ2FybW9yCisJCQkJTEFOTklPTiBCUkVUQUdORSAyMjMwMAorCQkJCUZSQU5DRQorCiswMC0xRi03OCAgIChoZXgpCQlCbHVlIEZveCBQb3JpbmkgVGV4dGlsZQorMDAxRjc4ICAgICAoYmFzZSAxNikJCUJsdWUgRm94IFBvcmluaSBUZXh0aWxlCisJCQkJMTIwOCBQb2ludGUgQ2VudHJlIERyaXZlCisJCQkJU1RFIDIwMAorCQkJCUNoYXR0YW5vb2dhIFROIDM3NDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi03OSAgIChoZXgpCQlMb2RhbSBFbGVjdHJvbmljcyBBL1MKKzAwMUY3OSAgICAgKGJhc2UgMTYpCQlMb2RhbSBFbGVjdHJvbmljcyBBL1MKKwkJCQlL5nJ2ZWogNzcKKwkJCQlT+G5kZXJib3JnIEFscyBESy02NDAwCisJCQkJREVOTUFSSworCiswMC0xRi03QSAgIChoZXgpCQlXaVdpZGUgSW5jLgorMDAxRjdBICAgICAoYmFzZSAxNikJCVdpV2lkZSBJbmMuCisJCQkJMTBCMTAsIEh1YSBKaWUgUGxhemEKKwkJCQkjMTMgRGEgWmhvbmcgU2ksIEhhaWRpYW4KKwkJCQlCZWlqaW5nICAxMDAwODkKKwkJCQlDSElOQQorCiswMC0xRi03QiAgIChoZXgpCQlUZWNoTmV4aW9uIEx0ZC4KKzAwMUY3QiAgICAgKGJhc2UgMTYpCQlUZWNoTmV4aW9uIEx0ZC4KKwkJCQkxN0YtMSwgTm8uIDE2LCBKaWFuIEJhIFJvYWQsCisJCQkJQ2h1bmcgSG8gIFRhaXBlaSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTdDICAgKGhleCkJCVdpdGVsY29tIEFTCiswMDFGN0MgICAgIChiYXNlIDE2KQkJV2l0ZWxjb20gQVMKKwkJCQlWZXJmdHNndCAxMAorCQkJCU1vc3MgT3N0Zm9sZCAxNTExCisJCQkJTk9SV0FZCisKKzAwLTFGLTdEICAgKGhleCkJCWVtYmVkZGVkIHdpcmVsZXNzIEdtYkgKKzAwMUY3RCAgICAgKGJhc2UgMTYpCQllbWJlZGRlZCB3aXJlbGVzcyBHbWJICisJCQkJU/ZmbGluZ2VyIFN0ci4gMTAwCisJCQkJVWxtIEJXIDg5MDc3CisJCQkJR0VSTUFOWQorCiswMC0xRi03RSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxRjdFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4uIFVTIDQ1CisJCQkJTGliZXJ0eXZpbGxlIElsbGlub2lzIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi03RiAgIChoZXgpCQlQaGFicml4IExpbWl0ZWQKKzAwMUY3RiAgICAgKGJhc2UgMTYpCQlQaGFicml4IExpbWl0ZWQKKwkJCQlCbGluZG1hbnMgR2F0ZSBDb3R0YWdlCisJCQkJV29vbHRvbiBIaWxsCisJCQkJTmV3YnVyeSBIYW1wc2hpcmUgUkcyMCA5WEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRi04MCAgIChoZXgpCQlMdWNhcyBIb2xkaW5nIGJ2CiswMDFGODAgICAgIChiYXNlIDE2KQkJTHVjYXMgSG9sZGluZyBidgorCQkJCURvbWVpbiAyOAorCQkJCUdlbWVydCBOQiA1NDIxQVIKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRi04MSAgIChoZXgpCQlBY2NlbCBTZW1pY29uZHVjdG9yIENvcnAKKzAwMUY4MSAgICAgKGJhc2UgMTYpCQlBY2NlbCBTZW1pY29uZHVjdG9yIENvcnAKKwkJCQkxRixNYWluYmxkZywxNDkgQ2h1biBYaWFvIFJvYWQsCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzAwLTFGLTgyICAgKGhleCkJCUNhbC1Db21wIEVsZWN0cm9uaWNzICYgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQKKzAwMUY4MiAgICAgKGJhc2UgMTYpCQlDYWwtQ29tcCBFbGVjdHJvbmljcyAmIENvbW11bmljYXRpb25zIENvLiwgTHRkCisJCQkJM0YsICMyMDUsIFNlYy4zIFBlaWhzaW4gUmQuCisJCQkJSHNpbnRlaW4gVGFpcGVpIENvdW50eSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTgzICAgKGhleCkJCVRlbGVwbGFuIFRlY2hub2xvZ3kgU2VydmljZXMgU2RuIEJoZAorMDAxRjgzICAgICAoYmFzZSAxNikJCVRlbGVwbGFuIFRlY2hub2xvZ3kgU2VydmljZXMgU2RuIEJoZAorCQkJCTI1ODAsIFRpbmdrYXQgUGVydXNhaGFhbiA0QgorCQkJCVpvbiBQZXJkYWdhbmdhbiBCZWJhcyBEdWEKKwkJCQlQZXJhaSBQZW5hbmcgMTM2MDAKKwkJCQlNQUxBWVNJQQorCiswMC0xRi04NCAgIChoZXgpCQlHaWdsZSBTZW1pY29uZHVjdG9yCiswMDFGODQgICAgIChiYXNlIDE2KQkJR2lnbGUgU2VtaWNvbmR1Y3RvcgorCQkJCUJhcmNlbG9uYSBBY3RpdmEgLSBWaXZlcm8gR2xvcmlhcworCQkJCUxsYWN1bmEgMTYyCisJCQkJQmFyY2Vsb25hICAwODAxOAorCQkJCVNQQUlOCisKKzAwLTFGLTg1ICAgKGhleCkJCUFwcml2YSBJU1MsIExMQworMDAxRjg1ICAgICAoYmFzZSAxNikJCUFwcml2YSBJU1MsIExMQworCQkJCTY5MDAgRSBDYW1lbGJhY2sgUmQKKwkJCQlTdWl0ZSA3MDAKKwkJCQlTY290dHNkYWxlIEFaIDg1MjUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi04NiAgIChoZXgpCQlkaWdFY29yCiswMDFGODYgICAgIChiYXNlIDE2KQkJZGlnRWNvcgorCQkJCTE2MjUgTi4gMTEwMCBXLgorCQkJCVNwcmluZ3ZpbGxlIFVUIDg0NjYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi04NyAgIChoZXgpCQlTa3lkaWdpdGFsIEluYy4KKzAwMUY4NyAgICAgKGJhc2UgMTYpCQlTa3lkaWdpdGFsIEluYy4KKwkJCQkjMjgtOSBXb25oeW9ybzEtZ2EsIFlvbmdzYW4tZ3UsCisJCQkJU2VvdWwgIDE0MC04NDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtODggICAoaGV4KQkJRk1TIEZvcmNlIE1lYXN1cmluZyBTeXN0ZW1zIEFHCiswMDFGODggICAgIChiYXNlIDE2KQkJRk1TIEZvcmNlIE1lYXN1cmluZyBTeXN0ZW1zIEFHCisJCQkJQXNwc3RyYXNzZSA2CisJCQkJT2JlcmdsYXR0IFp1cmljaCA4MTU0CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUYtODkgICAoaGV4KQkJU2lnbmFsaW9uIEdtYkgKKzAwMUY4OSAgICAgKGJhc2UgMTYpCQlTaWduYWxpb24gR21iSAorCQkJCVN1ZGhhdXN3ZWcgNQorCQkJCURyZXNkZW4gU2F4b255IDAxMDk5CisJCQkJR0VSTUFOWQorCiswMC0xRi04QSAgIChoZXgpCQlFbGxpb24gRGlnaXRhbCBJbmMuCiswMDFGOEEgICAgIChiYXNlIDE2KQkJRWxsaW9uIERpZ2l0YWwgSW5jLgorCQkJCVN1aXRlIDgwOSwgU2ljb3ggVG93ZXIsIDUxMy0xNCwgU2FuZ2RhZXdvbi1kb25nLCBKdW5nd29uLWd1CisJCQkJU3VuZ25hbS1jaXR5IEt5b25nZ2ktZG8gNDI2LTcyNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi04QiAgIChoZXgpCQlDYWNoZSBJUQorMDAxRjhCICAgICAoYmFzZSAxNikJCUNhY2hlIElRCisJCQkJODgzNCBOb3J0aCBDYXBpdGFsIG9mIFRleGFzIEh3eQorCQkJCUF1c3RpbiBUZXhhcyA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOEMgICAoaGV4KQkJQ0NTIEluYy4KKzAwMUY4QyAgICAgKGJhc2UgMTYpCQlDQ1MgSW5jLgorCQkJCVNoaW1vZGFjaGl1cmktYWdhcnUKKwkJCQlLYXJhc3VtYS1kb3JpLCBLYW1pZ3lvLWt1CisJCQkJS3lvdG8gS3lvdG8gNjAyLTgwMTEKKwkJCQlKQVBBTgorCiswMC0xRi04RCAgIChoZXgpCQlJbmdlbmlldXJidWVybyBTdGFyayBHbWJIIHVuZCBLby4gS0cKKzAwMUY4RCAgICAgKGJhc2UgMTYpCQlJbmdlbmlldXJidWVybyBTdGFyayBHbWJIIHVuZCBLby4gS0cKKwkJCQlSdWRvbGYtRGllc2VsLVN0cmFzc2UgNDQKKwkJCQlMYWljaGluZ2VuIEJXIDg5MTUwCisJCQkJR0VSTUFOWQorCiswMC0xRi04RSAgIChoZXgpCQlNZXRyaXMgVVNBIEluYy4KKzAwMUY4RSAgICAgKGJhc2UgMTYpCQlNZXRyaXMgVVNBIEluYy4KKwkJCQkxMjcwMSBHcmFuZCBSaXZlcgorCQkJCUJyaWdodG9uIE1JIDQ4MTE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi04RiAgIChoZXgpCQlTaGFuZ2hhaSBCZWxsbWFubiBEaWdpdGFsIFNvdXJjZSBDby4sTHRkLgorMDAxRjhGICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEJlbGxtYW5uIERpZ2l0YWwgU291cmNlIENvLixMdGQuCisJCQkJNDA0LTQwOCBNYWluIEJkLCBGRFVTUCwgTm8uMTEgR3VvdGFpIFJkLgorCQkJCVNoYW5naGFpICAyMDA0MzMKKwkJCQlDSElOQQorCiswMC0xRi05MCAgIChoZXgpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworMDAxRjkwICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi05MSAgIChoZXgpCQlEQlMgTG9kZ2luZyBUZWNobm9sb2dpZXMsIExMQworMDAxRjkxICAgICAoYmFzZSAxNikJCURCUyBMb2RnaW5nIFRlY2hub2xvZ2llcywgTExDCisJCQkJMjExOTYgTGltYmVyCisJCQkJTWlzc2lvbiBWaWVqbyBDQSA5MjY5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOTIgICAoaGV4KQkJVmlkZW9JUSwgSW5jLgorMDAxRjkyICAgICAoYmFzZSAxNikJCVZpZGVvSVEsIEluYy4KKwkJCQkyMTMgQnVybGluZ3RvbiBSb2FkCisJCQkJU3VpdGUgMTA0CisJCQkJQmVkZm9yZCBNQSAwMTczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOTMgICAoaGV4KQkJWGlvdGVjaCBDb3Jwb3JhdGlvbgorMDAxRjkzICAgICAoYmFzZSAxNikJCVhpb3RlY2ggQ29ycG9yYXRpb24KKwkJCQk2NDU1IEZseWluZyBDbG91ZCBEcml2ZQorCQkJCUVkZW4gUHJhaXJpZSBNTiA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOTQgICAoaGV4KQkJTGFzY2FyIEVsZWN0cm9uaWNzIEx0ZAorMDAxRjk0ICAgICAoYmFzZSAxNikJCUxhc2NhciBFbGVjdHJvbmljcyBMdGQKKwkJCQlNb2R1bGUgSG91c2UKKwkJCQlXaGl0ZXBhcmlzaAorCQkJCU5yIFNhbGlzYnVyeSBXaWx0c2hpcmUgU1A1IDJTSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFGLTk1ICAgKGhleCkJCVNBR0VNIENPTU1VTklDQVRJT04KKzAwMUY5NSAgICAgKGJhc2UgMTYpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCisJCQkJMTQgUnVlIFBhdWwgRGF1dGllcgorCQkJCVZlbGl6eSAgNzg0NTcKKwkJCQlGUkFOQ0UKKworMDAtMUYtOTYgICAoaGV4KQkJQVBST1RFQ0ggQ08uTFRECiswMDFGOTYgICAgIChiYXNlIDE2KQkJQVBST1RFQ0ggQ08uTFRECisJCQkJS09MT05ESUdJVEFMIFRPV0VSIEFTVE9OIDIwMSwgNTA1LTE0CisJCQkJR0FTQU4tRE9ORyxLVU1DSE9OLUdVCisJCQkJU0VPVUwgIEtTWFggMDAyMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi05NyAgIChoZXgpCQlCRVJUQU5BIFNSTAorMDAxRjk3ICAgICAoYmFzZSAxNikJCUJFUlRBTkEgU1JMCisJCQkJVklBTEUgR0FMSUxFTyBGRVJSQVJJUyAyNworCQkJCUJSVUlOTyBUT1JJTk8gMTAwOTAKKwkJCQlJVEFMWQorCiswMC0xRi05OCAgIChoZXgpCQlEQUlJQ0hJLURFTlRTVSBMVEQuCiswMDFGOTggICAgIChiYXNlIDE2KQkJREFJSUNISS1ERU5UU1UgTFRELgorCQkJCU9PTU9SSSA2OTAtMQorCQkJCUtBTkkgR0lGVSA1MDktMDIzOAorCQkJCUpBUEFOCisKKzAwLTFGLTk5ICAgKGhleCkJCVNFUk9OSUNTIGNvLmx0ZAorMDAxRjk5ICAgICAoYmFzZSAxNikJCVNFUk9OSUNTIGNvLmx0ZAorCQkJCSM0MDEgVGVjaG5vcG9saXMsCisJCQkJNzExSG9zYW4tZG9uZywgRGFsc2VvLWd1CisJCQkJRGFlZ3UgR3llb25nLWJ1ayA3MDQtMjMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLTlBICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAxRjlBICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTIyMjEgTGFrZXNpZGUgQmx2ZAorCQkJCVJpY2hhcmRzb24gVFggNzUwODItNDM5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOUIgICAoaGV4KQkJUE9TQlJPCiswMDFGOUIgICAgIChiYXNlIDE2KQkJUE9TQlJPCisJCQkJU2hpbnlvdW5nR3Rvd2VyIDZGLCAyNzEtMQorCQkJCVNlb2h5dW4tZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpIEt5dW5nZ2ktZG8gNDYzLTgyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi05QyAgIChoZXgpCQlMRURDTworMDAxRjlDICAgICAoYmFzZSAxNikJCUxFRENPCisJCQkJNDc4MDEgVyBBbmNob3IgQ291cnQKKwkJCQlQbHltb3V0aCBNSSA0ODE3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOUQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRjlEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTlFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUY5RSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi05RiAgIChoZXgpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorMDAxRjlGICAgICAoYmFzZSAxNikJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCisJCQkJUHJpbnMgQm91ZGV3aWpubGFhbiA0NworCQkJCUVkZWdlbSBBbnR3ZXJwIEItMjY1MAorCQkJCUJFTEdJVU0KKworMDAtMUYtQTAgICAoaGV4KQkJQTEwIE5ldHdvcmtzCiswMDFGQTAgICAgIChiYXNlIDE2KQkJQTEwIE5ldHdvcmtzCisJCQkJMjMwOSBCZXJpbmcgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQTEgICAoaGV4KQkJR3RyYW4gSW5jCiswMDFGQTEgICAgIChiYXNlIDE2KQkJR3RyYW4gSW5jCisJCQkJMjY1MSBMYXZlcnkgQ291cnQKKwkJCQlOZXdidXJ5IFBhcmsgQ0EgOTEzMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUEyICAgKGhleCkJCURhdHJvbiBXb3JsZCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAxRkEyICAgICAoYmFzZSAxNikJCURhdHJvbiBXb3JsZCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTMwMzAgRW50ZXJwcmlzZSBDb3VydAorCQkJCVZpc3RhIENhbGlmb3JuaWEgOTIwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUEzICAgKGhleCkJCVQmVyBFbGVjdHJvbmljcyhTaGVuemhlbilDby4sTHRkLgorMDAxRkEzICAgICAoYmFzZSAxNikJCVQmVyBFbGVjdHJvbmljcyhTaGVuemhlbilDby4sTHRkLgorCQkJCTJGLEJhaXlpbmcgQnVpbGRpbmcsIE5vLjEwMTksCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA2NworCQkJCUNISU5BCisKKzAwLTFGLUE0ICAgKGhleCkJCVNoZW5aaGVuIEdvbmdqaW4gRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAxRkE0ICAgICAoYmFzZSAxNikJCVNoZW5aaGVuIEdvbmdqaW4gRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCTRGLEJhaXlpbmcgQnVpbGRpbmcsIE5vLjEwMTksTmFuaGFpIFJELFNoZWtvdSwKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDY3CisJCQkJQ0hJTkEKKworMDAtMUYtQTUgICAoaGV4KQkJQmx1ZS1XaGl0ZSBJbmR1c3RyaWVzCiswMDFGQTUgICAgIChiYXNlIDE2KQkJQmx1ZS1XaGl0ZSBJbmR1c3RyaWVzCisJCQkJNTMwMCBCdXNpbmVzcyBEcml2ZQorCQkJCUh1bnRpbmd0b24gQmVhY2ggQ0EgOTI2NDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUE2ICAgKGhleCkJCVN0aWxvIHNybAorMDAxRkE2ICAgICAoYmFzZSAxNikJCVN0aWxvIHNybAorCQkJCVZpYSBCZXNhbmEsIDQKKwkJCQkyMDEyMiBNaWxhbm8gCisJCQkJSVRBTFkKKworMDAtMUYtQTcgICAoaGV4KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50IEluYy4KKzAwMUZBNyAgICAgKGJhc2UgMTYpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgSW5jLgorCQkJCTItNi0yMSBNaW5hbWktQW95YW1hLAorCQkJCU1pbmF0by1rdSBUb2t5byAxMDctMDA2MgorCQkJCUpBUEFOCisKKzAwLTFGLUE4ICAgKGhleCkJCVNtYXJ0IEVuZXJneSBJbnN0cnVtZW50cyBJbmMuCiswMDFGQTggICAgIChiYXNlIDE2KQkJU21hcnQgRW5lcmd5IEluc3RydW1lbnRzIEluYy4KKwkJCQkyOTcgTGFrZXNob3JlIFJvYWQgRWFzdAorCQkJCVVuaXQgMQorCQkJCU9ha3ZpbGxlIE9udGFyaW8gTDZKIDFKMworCQkJCUNBTkFEQQorCiswMC0xRi1BOSAgIChoZXgpCQlBdGxhbnRhIERUSCwgSW5jLgorMDAxRkE5ICAgICAoYmFzZSAxNikJCUF0bGFudGEgRFRILCBJbmMuCisJCQkJNTM4OCBOZXcgUGVhY2h0cmVlIFJkCisJCQkJQ2hhbWJsZWUgR0EgMzAzNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUFBICAgKGhleCkJCVRhc2VvbiwgSW5jLgorMDAxRkFBICAgICAoYmFzZSAxNikJCVRhc2VvbiwgSW5jLgorCQkJCSAzMDk5IE4uIEZpcnN0IFN0cmVldAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1BQiAgIChoZXgpCQlJLlMgSElHSCBURUNILklOQworMDAxRkFCICAgICAoYmFzZSAxNikJCUkuUyBISUdIIFRFQ0guSU5DCisJCQkJNjAzLTEsU3VuZ2Jvbi1yaSxEYWVzby1teXVuCisJCQkJRXVtc3VuZy1ndW4gQ2h1bmdjaGVvbmdidWstZG8gMzY5LTgyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi1BQyAgIChoZXgpCQlHb29kbWlsbCBTeXN0ZW1zIEx0ZAorMDAxRkFDICAgICAoYmFzZSAxNikJCUdvb2RtaWxsIFN5c3RlbXMgTHRkCisJCQkJU2luaWthbGxpb250aWUgMTAKKwkJCQlFc3BvbyBVdXNpbWFhIDAyNjMwCisJCQkJRklOTEFORAorCiswMC0xRi1BRCAgIChoZXgpCQlCcm93biBJbm5vdmF0aW9ucywgSW5jCiswMDFGQUQgICAgIChiYXNlIDE2KQkJQnJvd24gSW5ub3ZhdGlvbnMsIEluYworCQkJCTM2OSBDb25ncmVzcyBTdHJlZXQKKwkJCQlGb3VydGggRmxvb3IKKwkJCQlCb3N0b24gTUEgMDIyMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUFFICAgKGhleCkJCUJsaWNrIFNvdXRoIEFmcmljYSAoUHR5KSBMdGQKKzAwMUZBRSAgICAgKGJhc2UgMTYpCQlCbGljayBTb3V0aCBBZnJpY2EgKFB0eSkgTHRkCisJCQkJUE8gQm94IDE5MDgKKwkJCQlSaXZvbmlhCisJCQkJSm9oYW5uZXNidXJnIEdhdXRlbmcgMjEwOAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xRi1BRiAgIChoZXgpCQlOZXh0SU8sIEluYy4KKzAwMUZBRiAgICAgKGJhc2UgMTYpCQlOZXh0SU8sIEluYy4KKwkJCQkxMjQwMSBSZXNlYXJjaCBCbHZkLgorCQkJCUJsZGcuIDIgU3VpdGUgMjAwCisJCQkJQXVzdGluIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1CMCAgIChoZXgpCQlUaW1lSVBTLCBJbmMuCiswMDFGQjAgICAgIChiYXNlIDE2KQkJVGltZUlQUywgSW5jLgorCQkJCTM1MjIgTiBDb21vdGFyYSBTdAorCQkJCVdpY2hpdGEgS1MgNjcyMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUIxICAgKGhleCkJCUN5YmVydGVjaCBJbmMuCiswMDFGQjEgICAgIChiYXNlIDE2KQkJQ3liZXJ0ZWNoIEluYy4KKwkJCQk5MzUgSG9yc2hhbSBSZAorCQkJCVVuaXQgSQorCQkJCUhvcnNoYW0gUEEgMTkwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUIyICAgKGhleCkJCVNvbnRoZWltIEluZHVzdHJpZSBFbGVrdHJvbmlrIEdtYkgKKzAwMUZCMiAgICAgKGJhc2UgMTYpCQlTb250aGVpbSBJbmR1c3RyaWUgRWxla3Ryb25payBHbWJICisJCQkJRGllc2Vsc3RyYXNzZSA3CisJCQkJS2VtcHRlbiBBbGxnYWV1IEJhdmFyaWEgRC04NzQzNworCQkJCUdFUk1BTlkKKworMDAtMUYtQjMgICAoaGV4KQkJMldpcmUKKzAwMUZCMyAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUI0ICAgKGhleCkJCVNtYXJ0U2hhcmUgU3lzdGVtcworMDAxRkI0ICAgICAoYmFzZSAxNikJCVNtYXJ0U2hhcmUgU3lzdGVtcworCQkJCVRvYmFrc3ZlamVuIDI1LCAxLiB0aC4KKwkJCQlTb2Vib3JnICBESy0yODYwCisJCQkJREVOTUFSSworCiswMC0xRi1CNSAgIChoZXgpCQlJL08gSW50ZXJjb25uZWN0IEluYy4KKzAwMUZCNSAgICAgKGJhc2UgMTYpCQlJL08gSW50ZXJjb25uZWN0IEluYy4KKwkJCQkxMjAyIEUgV2FrZWhhbSBBdmUKKwkJCQlTYW50YSBBbmEgQ0EgOTI3MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUI2ICAgKGhleCkJCUNoaSBMaW4gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMUZCNiAgICAgKGJhc2UgMTYpCQlDaGkgTGluIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uMTgsIFNoZW5nIExpIDFzdCBTdC4sIEplbiBUZSBIc2lhbmcsCisJCQkJVGFpbmFuIFRhaXdhbiA3MTc1OAorCQkJCUNISU5BCisKKzAwLTFGLUI3ICAgKGhleCkJCVdpTWF0ZSBUZWNobm9sb2dpZXMgQ29ycC4KKzAwMUZCNyAgICAgKGJhc2UgMTYpCQlXaU1hdGUgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJMTRBIEJ1aWxkaW5nIDIsIEd1aW1pYW8gR2FyZGVuLCBOYW5ndWFuZ2x1LCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NAorCQkJCUNISU5BCisKKzAwLTFGLUI4ICAgKGhleCkJCVVuaXZlcnNhbCBSZW1vdGUgQ29udHJvbCwgSW5jLgorMDAxRkI4ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBSZW1vdGUgQ29udHJvbCwgSW5jLgorCQkJCTUwMCBNYW1hcm9uZWNrIEF2ZW51ZQorCQkJCVN1aXRlIDUwMgorCQkJCUhhcnJpc29uIE5ZIDEwNTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1COSAgIChoZXgpCQlQYWx0cm9uaWNzCiswMDFGQjkgICAgIChiYXNlIDE2KQkJUGFsdHJvbmljcworCQkJCTExNDUgUGFsdHJvbmljcyBDdAorCQkJCUNyeXN0YWwgTGFrZSBJTCA2MDAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQkEgICAoaGV4KQkJQm9Zb3VuZyBUZWNoLiAmIE1hcmtldGluZywgSW5jLgorMDAxRkJBICAgICAoYmFzZSAxNikJCUJvWW91bmcgVGVjaC4gJiBNYXJrZXRpbmcsIEluYy4KKwkJCQlZb3VuZ2RldW5ncG8tR3UgTXVucmFlM2dhIDg0LTIKKwkJCQlEb25nZ3VrIE1lcnRpYW4gNjAyCisJCQkJU2VvdWwgIDE1MC0wOTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtQkIgICAoaGV4KQkJWGVuYXRlY2ggQ28uLExURAorMDAxRkJCICAgICAoYmFzZSAxNikJCVhlbmF0ZWNoIENvLixMVEQKKwkJCQkgNTE0LTIgWWEgVGFiLURvbmcgQnVuIERhbmcgR3UKKwkJCQlTZW9uZyBuYW1zaSBHeW9uZyBnaS1kbyA0NjMtODM5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLUJDICAgKGhleCkJCUVWR0EgQ29ycG9yYXRpb24KKzAwMUZCQyAgICAgKGJhc2UgMTYpCQlFVkdBIENvcnBvcmF0aW9uCisJCQkJMjkwMCBTYXR1cm4gU3QuCisJCQkJU3VpdGUgQgorCQkJCUJyZWEgQ0EgOTI4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUJEICAgKGhleCkJCUt5b2NlcmEgV2lyZWxlc3MgQ29ycC4KKzAwMUZCRCAgICAgKGJhc2UgMTYpCQlLeW9jZXJhIFdpcmVsZXNzIENvcnAuCisJCQkJMTAzMDAgQ2FtcHVzIFBvaW50IERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1CRSAgIChoZXgpCQlTaGVuemhlbiBNb3BuZXQgSW5kdXN0cmlhbCBDby4sTHRkCiswMDFGQkUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gTW9wbmV0IEluZHVzdHJpYWwgQ28uLEx0ZAorCQkJCUYgMy5Oby4zIEtleXVhbiBSZC4KKwkJCQlTaGVuemhlbiBOYW5zaGFuIFNjaWVuY2UmSW5kdXN0cnkgUGFyaworCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xRi1CRiAgIChoZXgpCQlGdWxodWEgTWljcm9lbGVjdHJvbmljcyBDb3JwLiBUYWl3YW4gQnJhbmNoCiswMDFGQkYgICAgIChiYXNlIDE2KQkJRnVsaHVhIE1pY3JvZWxlY3Ryb25pY3MgQ29ycC4gVGFpd2FuIEJyYW5jaAorCQkJCTFGLCBOby4xMiwgUiZEIFJvYWQsCisJCQkJU2NpZW5jZS1iYXNlZCBJbmQuIFBhcmssCisJCQkJSHNpbi1DaHUsIDMwMCAgODg2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi1DMCAgIChoZXgpCQlDb250cm9sIEV4cHJlc3MgRmlubGFuZCBPeQorMDAxRkMwICAgICAoYmFzZSAxNikJCUNvbnRyb2wgRXhwcmVzcyBGaW5sYW5kIE95CisJCQkJTGFpdGFhdHNpbGxhbnRpZSAzCisJCQkJU2F2b25saW5uYSAgNTcxNzAKKwkJCQlGSU5MQU5ECisKKzAwLTFGLUMxICAgKGhleCkJCUhhbmxvbmcgVGVjaG5vbG9neSBDby4sTFRECiswMDFGQzEgICAgIChiYXNlIDE2KQkJSGFubG9uZyBUZWNobm9sb2d5IENvLixMVEQKKwkJCQlSTS4yMjIwLEJsb2NrIEIsTmV3IENlbnR1cnkgUGxhemEsMSBUYWkgUGluZyBOYW4gUm9hZCwKKwkJCQlOYW5qaW5nIEppYW5nc3UgMjEwMDAyCisJCQkJQ0hJTkEKKworMDAtMUYtQzIgICAoaGV4KQkJSm93IFRvbmcgVGVjaG5vbG9neSBDbyBMdGQKKzAwMUZDMiAgICAgKGJhc2UgMTYpCQlKb3cgVG9uZyBUZWNobm9sb2d5IENvIEx0ZAorCQkJCTQ2IExhbmUgMzM3IENodW5nIENoZW5nIFJkCisJCQkJWXVuZyBLYW5nIENpdHkgVGFpbmFuIENvdW50eSA3MTA2NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtQzMgICAoaGV4KQkJU21hcnRTeW5jaCwgSW5jCiswMDFGQzMgICAgIChiYXNlIDE2KQkJU21hcnRTeW5jaCwgSW5jCisJCQkJNDQwMCBPbGQgQ2FudG9uIFJkCisJCQkJU3VpdGUgMzAwCisJCQkJSmFja3NvbiBNUyAzOTIxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQzQgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDFGQzQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQzUgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDFGQzUgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gS1lPVE8gNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xRi1DNiAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMUZDNiAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91LFRhaXBlaSAxMTIKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtQzcgICAoaGV4KQkJQ2FzaW8gSGl0YWNoaSBNb2JpbGUgQ29tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMUZDNyAgICAgKGJhc2UgMTYpCQlDYXNpbyBIaXRhY2hpIE1vYmlsZSBDb211bmljYXRpb25zIENvLiwgTHRkLgorCQkJCTItMjI5LTEsIFNha3VyYWdhb2thCisJCQkJSGlnYXNoaXlhbWF0by1zaGkgVG9reW8gMjA3LTg1MDEKKwkJCQlKQVBBTgorCiswMC0xRi1DOCAgIChoZXgpCQlVcC1Ub2RheSBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAxRkM4ICAgICAoYmFzZSAxNikJCVVwLVRvZGF5IEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJNy9GLiwgVW5pZnkgQ29tbWVyY2lhbCAmIEluZHVzdHJpYWwgQnVpbGRpbmcKKwkJCQkzMSBUYWkgWWlwIFN0cmVldCwgS3d1biBUb25nLAorCQkJCUtvd2xvb24gIAorCQkJCUhPTkcgS09ORworCiswMC0xRi1DOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFGQzkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQ0EgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRkNBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUNCICAgKGhleCkJCU5JVyBTb2x1dGlvbnMKKzAwMUZDQiAgICAgKGJhc2UgMTYpCQlOSVcgU29sdXRpb25zCisJCQkJUC5PLiBCb3ggNjIKKwkJCQlPbmUgVHJlZSBIaWxsIFNvdXRoIEF1c3RyYWxpYSA1MTE0CisJCQkJQVVTVFJBTElBCisKKzAwLTFGLUNDICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAxRkNDICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi1DRCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCiswMDFGQ0QgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi1DRSAgIChoZXgpCQlRVEVDSCBMTEMKKzAwMUZDRSAgICAgKGJhc2UgMTYpCQlRVEVDSCBMTEMKKwkJCQlOb3ZvemF2b2Rza2F5YSBzdC4gMTggYnVpbGQuIDEKKwkJCQlNb3Njb3cgTW9zY293IHJlZ2lvbiAxMjEzMDkKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUYtQ0YgICAoaGV4KQkJTVNJIFRlY2hub2xvZ3kgR21iSAorMDAxRkNGICAgICAoYmFzZSAxNikJCU1TSSBUZWNobm9sb2d5IEdtYkgKKwkJCQlIYW5hdWVyIExhbmRzdHJh32UgMzI4LTMzMAorCQkJCUZyYW5rZnVydCBhbSBNYWluIEhlc3NlbiA2MDMxNAorCQkJCUdFUk1BTlkKKworMDAtMUYtRDAgICAoaGV4KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKzAwMUZEMCAgICAgKGJhc2UgMTYpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCU5vLjIxNSxOYW4tUGluZyBSb2FkLAorCQkJCVBpbi1KZW4gVGFveXVhbiAzMjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLUQxICAgKGhleCkJCU9QVEVYIENPLixMVEQuCiswMDFGRDEgICAgIChiYXNlIDE2KQkJT1BURVggQ08uLExURC4KKwkJCQk1LTgtMTIKKwkJCQlPZ290bworCQkJCU90c3UgU2hpZ2EgNTIwLTAxMDEKKwkJCQlKQVBBTgorCiswMC0xRi1EMiAgIChoZXgpCQlDT01NVEVDSCBURUNITk9MT0dZIE1BQ0FPIENPTU1FUkNJQUwgT0ZGU0hPUkUgTFRELgorMDAxRkQyICAgICAoYmFzZSAxNikJCUNPTU1URUNIIFRFQ0hOT0xPR1kgTUFDQU8gQ09NTUVSQ0lBTCBPRkZTSE9SRSBMVEQuCisJCQkJMzEsVEFJIFlJUCBTVFJFRVQsIDcvRiBLV1VOIFRPTkcsCisJCQkJS09XTE9PTiwgSE9OR0tPTkcgCisJCQkJQ0hJTkEKKworMDAtMUYtRDMgICAoaGV4KQkJUklWQSBOZXR3b3JrcyBJbmMuCiswMDFGRDMgICAgIChiYXNlIDE2KQkJUklWQSBOZXR3b3JrcyBJbmMuCisJCQkJNTU1IFJpdmEgQXZlCisJCQkJRWFzdCBCcnVuc3dpY2sgTkogMDg4MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUQ0ICAgKGhleCkJCTRJUE5FVCwgSU5DLgorMDAxRkQ0ICAgICAoYmFzZSAxNikJCTRJUE5FVCwgSU5DLgorCQkJCTM4MTI5IENBTUJSSURHRSBDT1VSVAorCQkJCUZSRU1PTlQgQ0EgOTQ1MzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUQ1ICAgKGhleCkJCU1JQ1JPUklTQyBzLnIuby4KKzAwMUZENSAgICAgKGJhc2UgMTYpCQlNSUNST1JJU0Mgcy5yLm8uCisJCQkJRGVsbmlja2EgMjIyCisJCQkJSmljaW4ga3JhbG92ZWhyYWRlY2t5IGtyYWogNTA2MDEKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0xRi1ENiAgIChoZXgpCQlTaGVuemhlbiBBbGx5d2xsCiswMDFGRDYgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQWxseXdsbAorCQkJCUtlaml5dWFuIE5hbnNoYW4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMUYtRDcgICAoaGV4KQkJVEVMRVJBRCBTQQorMDAxRkQ3ICAgICAoYmFzZSAxNikJCVRFTEVSQUQgU0EKKwkJCQkyLCBhdmVudWUgZGUgbGEgYnV0dGUgYXV4IGNhaWxsZXMKKwkJCQlBTkdMRVQgIDY0NjAwCisJCQkJRlJBTkNFCisKKzAwLTFGLUQ4ICAgKGhleCkJCUEtVFJVU1QgQ09NUFVURVIgQ09SUE9SQVRJT04KKzAwMUZEOCAgICAgKGJhc2UgMTYpCQlBLVRSVVNUIENPTVBVVEVSIENPUlBPUkFUSU9OCisJCQkJM0YuLCBOTy4zNjEsIEZVU0lORyAxU1QgUkQuLCBHVUVJU0hBTiBUT1dOU0hJUCwKKwkJCQlUQU9ZVUFOICAzMzM3NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtRDkgICAoaGV4KQkJUlNEIENvbW11bmljYXRpb25zIEx0ZAorMDAxRkQ5ICAgICAoYmFzZSAxNikJCVJTRCBDb21tdW5pY2F0aW9ucyBMdGQKKwkJCQk4IEJvcnJvd21lYWRvdyBSb2FkCisJCQkJU3ByaW5na2Vyc2UgSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlTdGlybGluZyBTY290bGFuZCBGSzcgN1VXCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUYtREEgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDFGREEgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJMjIyMSBMYWtlc2lkZSBCbHZkCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtREIgICAoaGV4KQkJTmV0d29yayBTdXBwbHkgQ29ycC4sCiswMDFGREIgICAgIChiYXNlIDE2KQkJTmV0d29yayBTdXBwbHkgQ29ycC4sCisJCQkJMTkzOCBOQUtBREFJUkEgS0FOQUUKKwkJCQlJSURBIE5BR0FOTyAzOTUtMDgwMQorCQkJCUpBUEFOCisKKzAwLTFGLURDICAgKGhleCkJCU1vYmlsZSBTYWZlIFRyYWNrIEx0ZAorMDAxRkRDICAgICAoYmFzZSAxNikJCU1vYmlsZSBTYWZlIFRyYWNrIEx0ZAorCQkJCU5pZW1lbmthdHUgNzMKKwkJCQkxNTE0OSBMYWh0aSAKKwkJCQlGSU5MQU5ECisKKzAwLTFGLUREICAgKGhleCkJCUdESSBMTEMKKzAwMUZERCAgICAgKGJhc2UgMTYpCQlHREkgTExDCisJCQkJT25lIE1pZEFtZXJpY2EgUGxhemEKKwkJCQlTdWl0ZSAxMDEwCisJCQkJT2FrYnJvb2sgVGVycmFjZSBJTCA2MDE4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtREUgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUZERSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUYtREYgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUZERiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUYtRTAgICAoaGV4KQkJRWRnZVZlbG9jaXR5IENvcnAKKzAwMUZFMCAgICAgKGJhc2UgMTYpCQlFZGdlVmVsb2NpdHkgQ29ycAorCQkJCTMgQm91cmJvbiBTdHJlZXQKKwkJCQlQZWFib2R5IE1BIDAxOTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1FMSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorMDAxRkUxICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCisJCQkJNjYsIENodW5nIFNoYW4gUmQuVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtRTIgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMUZFMiAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCTY2LCBDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLUUzICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzCiswMDFGRTMgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MKKwkJCQk2MC0zOSxLYXNhbi1kb25nLEt1bWNob24ta3UsCisJCQkJU2VvdWwgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtRTQgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKzAwMUZFNCAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNr5W5lIDIyMTg4CisJCQkJU1dFREVOCisKKzAwLTFGLUU1ICAgKGhleCkJCUluLUNpcmN1aXQgR21iSAorMDAxRkU1ICAgICAoYmFzZSAxNikJCUluLUNpcmN1aXQgR21iSAorCQkJCUv2bmlnc2Jy/GNrZXIgU3RyYXNzZSA2OQorCQkJCURyZXNkZW4gIDAxMDk5CisJCQkJR0VSTUFOWQorCiswMC0xRi1FNiAgIChoZXgpCQlBbHBoaW9uIENvcnBvcmF0aW9uCiswMDFGRTYgICAgIChiYXNlIDE2KQkJQWxwaGlvbiBDb3Jwb3JhdGlvbgorCQkJCTE5NiBQcmluY2V0b24gSGlnaHRzdG93biBSb2FkCisJCQkJU3VpdGUgMUEKKwkJCQlQcmluY2V0b24gSnVuY3Rpb24gTmV3IEplcnNleSAwODU1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtRTcgICAoaGV4KQkJU2ltZXQKKzAwMUZFNyAgICAgKGJhc2UgMTYpCQlTaW1ldAorCQkJCVN0cmFkYSBkZWwgUG9ydG9uZSAxMjkKKwkJCQlHcnVnbGlhc2NvIFRvcmlubyAxMDA5NQorCQkJCUlUQUxZCisKKzAwLTFGLUU4ICAgKGhleCkJCUtVUlVTVUdBV0EgRWxlY3Ryb25pY3MgSW5kdXN0cnkgSW5jLC4KKzAwMUZFOCAgICAgKGJhc2UgMTYpCQlLVVJVU1VHQVdBIEVsZWN0cm9uaWNzIEluZHVzdHJ5IEluYywuCisJCQkJMkYsIDUyLTUsIE5vZ2F0YSA2Y2hvbWUKKwkJCQlOYWthbm8tS3UgVE9LWU8gMTY1LTAwMjcKKwkJCQlKQVBBTgorCiswMC0xRi1FOSAgIChoZXgpCQlQcmludHJleCwgSW5jLgorMDAxRkU5ICAgICAoYmFzZSAxNikJCVByaW50cmV4LCBJbmMuCisJCQkJMjc2IEVhc3QgR2lzaCBSb2FkCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUVBICAgKGhleCkJCUFwcGxpZWQgTWVkaWEgVGVjaG5vbG9naWVzIENvcnBvcmF0aW9uCiswMDFGRUEgICAgIChiYXNlIDE2KQkJQXBwbGllZCBNZWRpYSBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24KKwkJCQk0MDkxIEFNVEMgQ2VudGVyIERyaXZlCisJCQkJQ2xlYXJ3YXRlciBGTCAzMzc2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtRUIgICAoaGV4KQkJVHJpbyBEYXRhY29tIFB0eSBMdGQKKzAwMUZFQiAgICAgKGJhc2UgMTYpCQlUcmlvIERhdGFjb20gUHR5IEx0ZAorCQkJCTQxIEFzdGVyIEF2ZW51ZQorCQkJCUNhcnJ1bSBEb3ducyBWaWN0b3JpYSAzMjAxCisJCQkJQVVTVFJBTElBCisKKzAwLTFGLUVDICAgKGhleCkJCVN5bmFwc2Ug6WxlY3Ryb25pcXVlCiswMDFGRUMgICAgIChiYXNlIDE2KQkJU3luYXBzZSDpbGVjdHJvbmlxdWUKKwkJCQkxMDEwLCA3ZSBBdmVudWUKKwkJCQlHcmFuZC1N6HJlIFF16WJlYyBHOVQgMkI4CisJCQkJQ0FOQURBCisKKzAwLTFGLUVEICAgKGhleCkJCVRlY2FuIFN5c3RlbXMgSW5jLgorMDAxRkVEICAgICAoYmFzZSAxNikJCVRlY2FuIFN5c3RlbXMgSW5jLgorCQkJCTI0NTAgWmFua2VyIFJvYWQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtRUUgICAoaGV4KQkJdWJpc3lzIHRlY2hub2xvZ2llcyBHbWJICiswMDFGRUUgICAgIChiYXNlIDE2KQkJdWJpc3lzIHRlY2hub2xvZ2llcyBHbWJICisJCQkJQW0gV2VocmhhaG4gNDUKKwkJCQlE/HNzZWxkb3JmIE5SVyA0MDIxMQorCQkJCUdFUk1BTlkKKworMDAtMUYtRUYgICAoaGV4KQkJU0hJTlNFSSBJTkRVU1RSSUVTIENPLixMVEQKKzAwMUZFRiAgICAgKGJhc2UgMTYpCQlTSElOU0VJIElORFVTVFJJRVMgQ08uLExURAorCQkJCTQtMTItMTUsSE9SSUZVTkUsIEtJVEEtS1UsCisJCQkJVE9LT1lPICAxMTQtMDAwNAorCQkJCUpBUEFOCisKKzAwLTFGLUYwICAgKGhleCkJCUF1ZGlvIFBhcnRuZXJzaGlwCiswMDFGRjAgICAgIChiYXNlIDE2KQkJQXVkaW8gUGFydG5lcnNoaXAKKwkJCQlHYWxsZXJ5IENvdXJ0CisJCQkJSGFua2V5IFBsYWNlCisJCQkJTG9uZG9uICBTRTEgNEJCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUYtRjEgICAoaGV4KQkJUGFyYWRveCBIZWxsYXMgUy5BLgorMDAxRkYxICAgICAoYmFzZSAxNikJCVBhcmFkb3ggSGVsbGFzIFMuQS4KKwkJCQkzIEtvcmludGhveSBTdAorCQkJCU1ldGFtb3Jmb3NpCisJCQkJQXRoZW5zIEF0dGlraSAxNDQ1MQorCQkJCUdSRUVDRQorCiswMC0xRi1GMiAgIChoZXgpCQlWSUEgVGVjaG5vbG9naWVzLCBJbmMuCiswMDFGRjIgICAgIChiYXNlIDE2KQkJVklBIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTFGLCA1MzEsIENodW5nLUNoZW5nIFJvYWQKKwkJCQlIc2luLVRpZW4gVGFpcGVpIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtRjMgICAoaGV4KQkJQXBwbGUsIEluYworMDAxRkYzICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUY0ICAgKGhleCkJCVBvd2VyIE1vbml0b3JzLCBJbmMuCiswMDFGRjQgICAgIChiYXNlIDE2KQkJUG93ZXIgTW9uaXRvcnMsIEluYy4KKwkJCQk4MDAgTm9ydGggTWFpbiBTdHJlZXQKKwkJCQlNdC4gQ3Jhd2ZvcmQgVmlyZ2luaWEgMjI4NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUY1ICAgKGhleCkJCUtvbmdzYmVyZyBEZWZlbmNlICYgQWVyb3NwYWNlCiswMDFGRjUgICAgIChiYXNlIDE2KQkJS29uZ3NiZXJnIERlZmVuY2UgJiBBZXJvc3BhY2UKKwkJCQlPbGF2IEJydW5ib3JncyB2ZWkgNgorCQkJCUJpbGxpbmdzdGFkICAxMzk2CisJCQkJTk9SV0FZCisKKzAwLTFGLUY2ICAgKGhleCkJCVBTIEF1ZGlvIEludGVybmF0aW9uYWwKKzAwMUZGNiAgICAgKGJhc2UgMTYpCQlQUyBBdWRpbyBJbnRlcm5hdGlvbmFsCisJCQkJNDgyNiBTdGVybGluZyBEcml2ZQorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUY3ICAgKGhleCkJCU5ha2FqaW1hIEFsbCBQcmVjaXNpb24gQ28uLCBMdGQuCiswMDFGRjcgICAgIChiYXNlIDE2KQkJTmFrYWppbWEgQWxsIFByZWNpc2lvbiBDby4sIEx0ZC4KKwkJCQlLYW1pLUdvbXlvMTQ4MAorCQkJCVNha2FraS1NYWNoaQorCQkJCUhhbmlzaGluYS1HdW4gTmFnYW5vLUtlbiAzODktMDYwNgorCQkJCUpBUEFOCisKKzAwLTFGLUY4ICAgKGhleCkJCVNpZW1lbnMgQUcsIFNlY3RvciBJbmR1c3RyeSwgRHJpdmUgVGVjaG5vbG9naWVzLCBNb3Rpb24gQ29udHJvbCBTeXN0ZW1zCiswMDFGRjggICAgIChiYXNlIDE2KQkJU2llbWVucyBBRywgU2VjdG9yIEluZHVzdHJ5LCBEcml2ZSBUZWNobm9sb2dpZXMsIE1vdGlvbiBDb250cm9sIFN5c3RlbXMKKwkJCQlGcmF1ZW5hdXJhY2hlcnN0cmFzc2UgODAKKwkJCQlFcmxhbmdlbiBCYXZhcmlhIDkxMDU2CisJCQkJR0VSTUFOWQorCiswMC0xRi1GOSAgIChoZXgpCQlBZHZhbmNlZCBLbm93bGVkZ2UgQXNzb2NpYXRlcworMDAxRkY5ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIEtub3dsZWRnZSBBc3NvY2lhdGVzCisJCQkJMzM1MCBTY290dCBCbHZkLCBTdWl0ZSA0MAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0LTMxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUZBICAgKGhleCkJCUNvcmV0cmVlLCBDbywgTHRkCiswMDFGRkEgICAgIChiYXNlIDE2KQkJQ29yZXRyZWUsIENvLCBMdGQKKwkJCQkjNTAyIElUIFZlbnR1cmUgVG93biwgNjk0CisJCQkJVGFwcmliLWRvbmcsIFl1c3VuZy1HdQorCQkJCURhZWplb24gIDMwNS01MTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtRkIgICAoaGV4KQkJR3JlZW4gUGFja2V0IEJoZAorMDAxRkZCICAgICAoYmFzZSAxNikJCUdyZWVuIFBhY2tldCBCaGQKKwkJCQlMb3QgMS00LCBJbmN1YmF0b3IgMiwgVGVjaG5vbG9neSBQYXJrIE1hbGF5c2lhCisJCQkJTGVidWhyYXlhIFB1Y2hvbmcgLSBTZyBCZXNpLCBCdWtpdCBKYWxpbAorCQkJCUt1YWxhIEx1bXB1ciBXaWxheWFoIFBlcnNla3V0dWFuIDU3MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMUYtRkMgICAoaGV4KQkJUmljY2l1cytTb2huIEdtYkgKKzAwMUZGQyAgICAgKGJhc2UgMTYpCQlSaWNjaXVzK1NvaG4gR21iSAorCQkJCUhheW5hdWVyIFN0ci4gNDkKKwkJCQlCZXJsaW4gIDEyMjQ5CisJCQkJR0VSTUFOWQorCiswMC0xRi1GRCAgIChoZXgpCQlJbmRpZ28gTW9iaWxlIFRlY2hub2xvZ2llcyBDb3JwLgorMDAxRkZEICAgICAoYmFzZSAxNikJCUluZGlnbyBNb2JpbGUgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJMTFGLCBObzIyLCBMYW40MDcsVGlEaW5nIEJsdmQgU2VjdGlvbjIsIE5laWh1IFRlY2hub2xvZ3kgUGFyaworCQkJCVRhaXBlaSBDaXR5ICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLUZFICAgKGhleCkJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKzAwMUZGRSAgICAgKGJhc2UgMTYpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCisJCQkJODAwMCBGb290aGlsbHMgQmx2ZAorCQkJCVJvc2V2aWxsZSBDQSA5NTc0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtRkYgICAoaGV4KQkJUmVzcGlyb25pY3MsIEluYy4KKzAwMUZGRiAgICAgKGJhc2UgMTYpCQlSZXNwaXJvbmljcywgSW5jLgorCQkJCTE3NDAgR29sZGVuIE1pbGUgSGlnaHdheQorCQkJCU1vbnJvZXZpbGxlIFBBIDE1MTQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0wMCAgIChoZXgpCQlMRVhNQVJLIElOVEVSTkFUSU9OQUwsIElOQy4KKzAwMjAwMCAgICAgKGJhc2UgMTYpCQlMRVhNQVJLIElOVEVSTkFUSU9OQUwsIElOQy4KKwkJCQk3NDAgTkVXIENJUkNMRSBST0FECisJCQkJQkxERy4gMzUKKwkJCQlMRVhJTkdUT04gS1kgNDA1NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTAxICAgKGhleCkJCURTUCBTT0xVVElPTlMsIElOQy4KKzAwMjAwMSAgICAgKGJhc2UgMTYpCQlEU1AgU09MVVRJT05TLCBJTkMuCisJCQkJMjQ2NCBFTUJBUkNBREVSTyBXQVkKKwkJCQlQQUxPIEFMVE8gQ0EgOTQzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTAyICAgKGhleCkJCVNFUklURUNIIEVOVEVSUFJJU0UgQ08uLCBMVEQuCiswMDIwMDIgICAgIChiYXNlIDE2KQkJU0VSSVRFQ0ggRU5URVJQUklTRSBDTy4sIExURC4KKwkJCQlGTC4gMTgyLCBOTy4gNTMxLTEKKwkJCQlDSFVORyBDSEVORyBST0FEIEhTSU4gVElFTiBDSVRZCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLTAzICAgKGhleCkJCVBJWEVMIFBPV0VSIExURC4KKzAwMjAwMyAgICAgKGJhc2UgMTYpCQlQSVhFTCBQT1dFUiBMVEQuCisJCQkJVW5pdCA1IENvbGxlZ2UgQnVzaW5lc3MgUGFyaworCQkJCUNvbGRoYW1zIExhbmUKKwkJCQlDQU1CUklER0UgIENCMSAzSEQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC0wNCAgIChoZXgpCQlZQU1BVEFLRS1IT05FWVdFTEwgQ08uLCBMVEQuCiswMDIwMDQgICAgIChiYXNlIDE2KQkJWUFNQVRBS0UtSE9ORVlXRUxMIENPLiwgTFRELgorCQkJCTU0IFNVWlVLQVdBLCBJU0VIQVJBCisJCQkJS0FOQUdBV0EgMjU5LTExICAKKwkJCQlKQVBBTgorCiswMC0yMC0wNSAgIChoZXgpCQlTSU1QTEUgVEVDSE5PTE9HWQorMDAyMDA1ICAgICAoYmFzZSAxNikJCVNJTVBMRSBURUNITk9MT0dZCisJCQkJMzAwMSBEQUlNTEVSIFJPQUQKKwkJCQlTQU5UQSBBTkEgQ0EgOTI3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTA2ICAgKGhleCkJCUdBUlJFVFQgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMjAwNiAgICAgKGJhc2UgMTYpCQlHQVJSRVRUIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJNDg1MzEgV0FSTVNQUklOR1MgQkxWRC4KKwkJCQlGUkVNT05UIENBIDk0NTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0wNyAgIChoZXgpCQlTRkEsIElOQy4KKzAwMjAwNyAgICAgKGJhc2UgMTYpCQlTRkEsIElOQy4KKwkJCQkxNDAxIE1DQ09STUlDSyBEUklWRQorCQkJCUxBTkRPVkVSIE1EIDIwNzg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0wOCAgIChoZXgpCQlDQUJMRSAmIENPTVBVVEVSIFRFQ0hOT0xPR1kKKzAwMjAwOCAgICAgKGJhc2UgMTYpCQlDQUJMRSAmIENPTVBVVEVSIFRFQ0hOT0xPR1kKKwkJCQkxNTU1IFNPLiBTSU5DTEFJUiBTVFJFRVQKKwkJCQlBTkFIRUlNIENBIDkyODA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0wOSAgIChoZXgpCQlQQUNLQVJEIEJFTEwgRUxFQy4sIElOQy4KKzAwMjAwOSAgICAgKGJhc2UgMTYpCQlQQUNLQVJEIEJFTEwgRUxFQy4sIElOQy4KKwkJCQk5NDI1IENBTk9HQSBBVkVOVUUKKwkJCQlDSEFUU1dPUlRIIENBIDkxMzIxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMEEgICAoaGV4KQkJU09VUkNFLUNPTU0gQ09SUC4KKzAwMjAwQSAgICAgKGJhc2UgMTYpCQlTT1VSQ0UtQ09NTSBDT1JQLgorCQkJCTI1MDIwIFcuIEFWRU5VRSBTVEFORk9SRAorCQkJCVVOSVQgMTgwCisJCQkJVkFMRU5DSUEgQ0EgOTEzNTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTBCICAgKGhleCkJCU9DVEFHT04gU1lTVEVNUyBDT1JQLgorMDAyMDBCICAgICAoYmFzZSAxNikJCU9DVEFHT04gU1lTVEVNUyBDT1JQLgorCQkJCTY1MTAgVy4gOTFTVCBBVkVOVUUKKwkJCQlXRVNUTUlOU1RFUiBDTyA4MDAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMEMgICAoaGV4KQkJQURBU1RSQSBTWVNURU1TIENPUlAuCiswMDIwMEMgICAgIChiYXNlIDE2KQkJQURBU1RSQSBTWVNURU1TIENPUlAuCisJCQkJMjgzMTAgSU5EVVNUUklBTCBCTFZELi1TVEUtSworCQkJCUhBWVdBUkQgQ0EgOTQ1NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTBEICAgKGhleCkJCUNBUkwgWkVJU1MKKzAwMjAwRCAgICAgKGJhc2UgMTYpCQlDQVJMIFpFSVNTCisJCQkJUE9TVEZBQ0ggMTM4MAorCQkJCUFCVC4gIDEtRUwgNzM0NDQgT0JFUktPQ0hFTgorCQkJCUdFUk1BTlkKKworMDAtMjAtMEUgICAoaGV4KQkJU0FURUxMSVRFIFRFQ0hOT0xPR1kgTUdNVCwgSU5DCiswMDIwMEUgICAgIChiYXNlIDE2KQkJU0FURUxMSVRFIFRFQ0hOT0xPR1kgTUdNVCwgSU5DCisJCQkJMzUzMCBIWUxBTkQgQVZFTlVFCisJCQkJQ09TVEEgTUVTQSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMEYgICAoaGV4KQkJVEFOQkFDIENPLiwgTFRELgorMDAyMDBGICAgICAoYmFzZSAxNikJCVRBTkJBQyBDTy4sIExURC4KKwkJCQlTQUtVUkFJIERBSSAyIEJHCisJCQkJMjctNCBJUklZQSAxLUNIT01FIFRBSVRPLUtVIFRPS1lPIDExMAorCQkJCUpBUEFOCisKKzAwLTIwLTEwICAgKGhleCkJCUpFT0wgU1lTVEVNIFRFQ0hOT0xPR1kgQ08uIExURAorMDAyMDEwICAgICAoYmFzZSAxNikJCUpFT0wgU1lTVEVNIFRFQ0hOT0xPR1kgQ08uIExURAorCQkJCTMtMS0yIE11c2FzaGlubworCQkJCUFraXNoaW1hLXNoaSBUb2t5byAxOTYtODU1OAorCQkJCUpBUEFOCisKKzAwLTIwLTExICAgKGhleCkJCUNBTk9QVVMgQ08uLCBMVEQuCiswMDIwMTEgICAgIChiYXNlIDE2KQkJQ0FOT1BVUyBDTy4sIExURC4KKwkJCQlLT0JFIEhJLVRFQ0ggUEFSSworCQkJCTEtMi0yIE1VUk9UQU5JIE5JU0hJLUtVIEtPQkUKKwkJCQk2NTEtMjIgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0yMC0xMiAgIChoZXgpCQlDQU1UUk9OSUNTIE1FRElDQUwgU1lTVEVNUworMDAyMDEyICAgICAoYmFzZSAxNikJCUNBTVRST05JQ1MgTUVESUNBTCBTWVNURU1TCisJCQkJUC5PLiBCT1ggOTUwCisJCQkJSEFSVExBTkQgV0kgNTMwMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTEzICAgKGhleCkJCURJVkVSU0lGSUVEIFRFQ0hOT0xPR1ksIElOQy4KKzAwMjAxMyAgICAgKGJhc2UgMTYpCQlESVZFUlNJRklFRCBURUNITk9MT0dZLCBJTkMuCisJCQkJMTEyIEUuIFNUQVRFIFNUUkVFVAorCQkJCVJJREdFTEFORCBNUyAzOTE1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMTQgICAoaGV4KQkJR0xPQkFMIFZJRVcgQ08uLCBMVEQuCiswMDIwMTQgICAgIChiYXNlIDE2KQkJR0xPQkFMIFZJRVcgQ08uLCBMVEQuCisJCQkJNEYsIE5PLiAyMywgTEFORSAzMDYKKwkJCQlGVS1URUggMSBSRC4gSFNJLUNISUgsIFRBSVBFSSwgSFNJRU4KKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMC0xNSAgIChoZXgpCQlBQ1RJUyBDT01QVVRFUiBTQQorMDAyMDE1ICAgICAoYmFzZSAxNikJCUFDVElTIENPTVBVVEVSIFNBCisJCQkJMTYgQ0hFTUlOIERFUyBBVUxYCisJCQkJMTIyOCBQTEFOIExFUyBPVkFURVMKKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTIwLTE2ICAgKGhleCkJCVNIT1dBIEVMRUNUUklDIFdJUkUgJiBDQUJMRSBDTworMDAyMDE2ICAgICAoYmFzZSAxNikJCVNIT1dBIEVMRUNUUklDIFdJUkUgJiBDQUJMRSBDTworCQkJCU5PLiAyMC0yNSwgU0VJU0hJTiA4LUNIT01FCisJCQkJU0FHQU1JSEFSQSwgS0FOQUdBV0EKKwkJCQkyMjkgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0yMC0xNyAgIChoZXgpCQlPUkJPVEVDSAorMDAyMDE3ICAgICAoYmFzZSAxNikJCU9SQk9URUNICisJCQkJSU5EVVNUUklBTCBaT05FCisJCQkJUC5PLiBCT1ggMjE1IDcwNjUxICBZQVZORQorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0yMC0xOCAgIChoZXgpCQlDSVMgVEVDSE5PTE9HWSBJTkMuCiswMDIwMTggICAgIChiYXNlIDE2KQkJQ0lTIFRFQ0hOT0xPR1kgSU5DLgorCQkJCUZMLiA5LTEsIE5PLiA5NCwgUEFPIENIVU5HIFJELgorCQkJCUhTSU4gVElFTiBDSVRZCisJCQkJVEFJUEVJIEhTSUVOICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLTE5ICAgKGhleCkJCU9ITEVSIEdtYkgKKzAwMjAxOSAgICAgKGJhc2UgMTYpCQlPSExFUiBHbWJICisJCQkJTUFZQkFDSFNUUkFTRSAzMAorCQkJCTcxMzMyIFdBSUJMSU5HRU4gIAorCQkJCUdFUk1BTlkKKworMDAtMjAtMUEgICAoaGV4KQkJTVJWIENvbW11bmljYXRpb25zLCBJbmMuCiswMDIwMUEgICAgIChiYXNlIDE2KQkJTVJWIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMjA0MTUgTm9yZGhvZmYgU3QuCisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMUIgICAoaGV4KQkJTk9SVEhFUk4gVEVMRUNPTS9ORVRXT1JLCiswMDIwMUIgICAgIChiYXNlIDE2KQkJTk9SVEhFUk4gVEVMRUNPTS9ORVRXT1JLCisJCQkJU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCTI1MCBTSURORVkgU1RSRUVUIEJFTExFVklMTEUsIE9OVEFSSU8KKwkJCQlLOE4gNUI3CisJCQkJQ0FOQURBCisKKzAwLTIwLTFDICAgKGhleCkJCUVYQ0VMLCBJTkMuCiswMDIwMUMgICAgIChiYXNlIDE2KQkJRVhDRUwsIElOQy4KKwkJCQkzNTUgT0xEIFBMWU1PVVRIIFJPQUQKKwkJCQlTQUdBTU9SRSBCRUFDSCBNQSAwMjU2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMUQgICAoaGV4KQkJS0FUQU5BIFBST0RVQ1RTCiswMDIwMUQgICAgIChiYXNlIDE2KQkJS0FUQU5BIFBST0RVQ1RTCisJCQkJVEhFIFNUVURJTywgUVVBUlJZIEhJTEwgQk9YLAorCQkJCVdJTFRTSElSRSBTTjE0IDlIVCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtMUUgICAoaGV4KQkJTkVUUVVFU1QgQ09SUE9SQVRJT04KKzAwMjAxRSAgICAgKGJhc2UgMTYpCQlORVRRVUVTVCBDT1JQT1JBVElPTgorCQkJCTUyMyBGRUxMT1dTSElQIFJPQUQtU1RFLiMyMDUKKwkJCQlNVC4gTEFVUkVMIE5KIDA4MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0xRiAgIChoZXgpCQlCRVNUIFBPV0VSIFRFQ0hOT0xPR1ksIElOQy4KKzAwMjAxRiAgICAgKGJhc2UgMTYpCQlCRVNUIFBPV0VSIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQlQLk8uIEJPWCAyODAKKwkJCQlORUNFREFIIFdJIDU0NjQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0yMCAgIChoZXgpCQlNRUdBVFJPTiBDT01QVVRFUiBJTkRVU1RSSUVTIFBUWSwgTFRELgorMDAyMDIwICAgICAoYmFzZSAxNikJCU1FR0FUUk9OIENPTVBVVEVSIElORFVTVFJJRVMgUFRZLCBMVEQuCisJCQkJCisJCQkJVU5JVCAyLCAgNjItNjQgQ0hBUlRFUiBTVFJFRVQgUklOR1dPT0QgVgorCQkJCUFVU1RSQUxJQQorCiswMC0yMC0yMSAgIChoZXgpCQlBTEdPUklUSE1TIFNPRlRXQVJFIFBWVC4gTFRELgorMDAyMDIxICAgICAoYmFzZSAxNikJCUFMR09SSVRITVMgU09GVFdBUkUgUFZULiBMVEQuCisJCQkJODMgSk9MTFkgTUFLRVIgQ0hBTUJFUlMgSUkKKwkJCQlOQVJJTUFOIFBPSU5UIEJPTUJBWSAgNDAwMDIxCisJCQkJSU5ESUEKKwkJCQlJTkRJQQorCiswMC0yMC0yMiAgIChoZXgpCQlOTVMgQ29tbXVuaWNhdGlvbnMKKzAwMjAyMiAgICAgKGJhc2UgMTYpCQlOTVMgQ29tbXVuaWNhdGlvbnMKKwkJCQkxMDAgQ3Jvc3NpbmcgQm91bGV2YXJkCisJCQkJRnJhbWluZ2hhbSBNQSAwMTcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMjMgICAoaGV4KQkJVC5DLiBURUNITk9MT0dJRVMgUFRZLiBMVEQKKzAwMjAyMyAgICAgKGJhc2UgMTYpCQlULkMuIFRFQ0hOT0xPR0lFUyBQVFkuIExURAorCQkJCTYvNjAgRkFJUkZPUkQgUkQuCisJCQkJUEFEU1RPVyAgTlNXMjIxMQorCQkJCUFVU1RSQUxJQQorCiswMC0yMC0yNCAgIChoZXgpCQlQQUNJRklDIENPTU1VTklDQVRJT04gU0NJRU5DRVMKKzAwMjAyNCAgICAgKGJhc2UgMTYpCQlQQUNJRklDIENPTU1VTklDQVRJT04gU0NJRU5DRVMKKwkJCQk5NjQ1IFNDUkFOVE9OIFJPQUQKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTI1ICAgKGhleCkJCUNPTlRST0wgVEVDSE5PTE9HWSwgSU5DLgorMDAyMDI1ICAgICAoYmFzZSAxNikJCUNPTlRST0wgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTU3MzQgTUlERExFQlJPT0sgUElLRQorCQkJCUtOT1hWSUxMRSBUTiAzNzkyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMjYgICAoaGV4KQkJQU1LTFkgU1lTVEVNUywgSU5DLgorMDAyMDI2ICAgICAoYmFzZSAxNikJCUFNS0xZIFNZU1RFTVMsIElOQy4KKwkJCQkxNTgwMSBST0NLRklFTEQgQkxWRC4sICNQCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0yNyAgIChoZXgpCQlNSU5HIEZPUlRVTkUgSU5EVVNUUlkgQ08uLCBMVEQKKzAwMjAyNyAgICAgKGJhc2UgMTYpCQlNSU5HIEZPUlRVTkUgSU5EVVNUUlkgQ08uLCBMVEQKKwkJCQk0RiwgTk8uIDgwMCBDSFVORyBDSEVORyBSRCwKKwkJCQlDSFVORyBITyBDSVRZLCBUQUlQRUkgSFNJRU4KKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjAtMjggICAoaGV4KQkJV0VTVCBFR0cgU1lTVEVNUywgSU5DLgorMDAyMDI4ICAgICAoYmFzZSAxNikJCVdFU1QgRUdHIFNZU1RFTVMsIElOQy4KKwkJCQk2NSBISUdIIFJJREdFIFJPQUQtU1RFLiMyODYKKwkJCQlTVEFNRk9SRCBDVCAwNjkwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMjkgICAoaGV4KQkJVEVMRVBST0NFU1NJTkcgUFJPRFVDVFMsIElOQy4KKzAwMjAyOSAgICAgKGJhc2UgMTYpCQlURUxFUFJPQ0VTU0lORyBQUk9EVUNUUywgSU5DLgorCQkJCTQ1NjUgRS4gSU5EVVNUUklBTCBTVFJFRVQKKwkJCQlCVUlMRElORyAjN0sKKwkJCQlTSU1JIFZBTExFWSBDQSA5MzA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMkEgICAoaGV4KQkJTi5WLiBEWklORQorMDAyMDJBICAgICAoYmFzZSAxNikJCU4uVi4gRFpJTkUKKwkJCQlLT05JTkcgTEVPUE9MRCBJSUkgTEFBTiAyCisJCQkJQiAtIDg1MDAgS09SVFJJSksKKwkJCQlCRUxHSVVNCisJCQkJQkVMR0lVTQorCiswMC0yMC0yQiAgIChoZXgpCQlBRFZBTkNFRCBURUxFQ09NTVVOSUNBVElPTlMgTU9EVUxFUywgTFRELgorMDAyMDJCICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIFRFTEVDT01NVU5JQ0FUSU9OUyBNT0RVTEVTLCBMVEQuCisJCQkJCisJCQkJTU9VTlQgUExFQVNBTlQgSE9VU0UgSFVOVElOR0RPTiBST0FELAorCQkJCUNhbWJyaWRnZSBDQjMgT0JMICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC0yQyAgIChoZXgpCQlXRUxMVFJPTklYIENPLiwgTFRELgorMDAyMDJDICAgICAoYmFzZSAxNikJCVdFTExUUk9OSVggQ08uLCBMVEQuCisJCQkJM0YsIE5PLiAzNi0xLCBIV0FORyBIU0kgU1RSRUVUCisJCQkJU0hJTi1MSU4gVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLTJEICAgKGhleCkJCVRBSVlPIENPUlBPUkFUSU9OCiswMDIwMkQgICAgIChiYXNlIDE2KQkJVEFJWU8gQ09SUE9SQVRJT04KKwkJCQkxLTItNiBTQU5OT0gsIE9IVEEtS1UKKwkJCQlUT0tZTworCQkJCTE0MyAKKwkJCQlKQVBBTgorCiswMC0yMC0yRSAgIChoZXgpCQlEQVlTVEFSIERJR0lUQUwKKzAwMjAyRSAgICAgKGJhc2UgMTYpCQlEQVlTVEFSIERJR0lUQUwKKwkJCQk1NTU2IEFUTEFOVEEgSElHSFdBWQorCQkJCUZMT1dFUlkgQlJBTkNIIEdBIDMwNTQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0yRiAgIChoZXgpCQlaRVRBIENPTU1VTklDQVRJT05TLCBMVEQuCiswMDIwMkYgICAgIChiYXNlIDE2KQkJWkVUQSBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCVpFTklUSCBIT1VTRQorCQkJCUdSRVNGT1JEIElORFVTVFJJQUwgUEFSSworCQkJCVdSRVhIQU0sIENMV1lELCBMTDEyIDhMWCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtMzAgICAoaGV4KQkJQU5BTE9HICYgRElHSVRBTCBTWVNURU1TCiswMDIwMzAgICAgIChiYXNlIDE2KQkJQU5BTE9HICYgRElHSVRBTCBTWVNURU1TCisJCQkJMS8yIExBVkVMTEUgUk9BRAorCQkJCUJBTkdBTE9SRSAtIDU2MDAwMQorCQkJCUlORElBCisJCQkJSU5ESUEKKworMDAtMjAtMzEgICAoaGV4KQkJRVJURUMgR21iSAorMDAyMDMxICAgICAoYmFzZSAxNikJCUVSVEVDIEdtYkgKKwkJCQlBTSBQRVNUQUxPWlpJUklORyAyNAorCQkJCUQtOTEwNTggRVJMQU5HRU4gIAorCQkJCUdFUk1BTlkKKworMDAtMjAtMzIgICAoaGV4KQkJQUxDQVRFTCBUQUlTRUwKKzAwMjAzMiAgICAgKGJhc2UgMTYpCQlBTENBVEVMIFRBSVNFTAorCQkJCTQsIE1JTkcgU0hFTkcgU1RSRUVUIFRVLUNIRU5HCisJCQkJSU5EVVNUUklBTCBESVNUUklDVCBUQUlQRUkgSFNJRUgKKwkJCQlUQUlXQU4gUk9DCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMC0zMyAgIChoZXgpCQlTWU5BUFNFIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAyMDMzICAgICAoYmFzZSAxNikJCVNZTkFQU0UgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNDgyMiBBTEJFTUFSTEUgUk9BRCwgIzEwNAorCQkJCUNIQVJMT1RURSBOQyAyODIwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMzQgICAoaGV4KQkJUk9URUMgSU5EVVNUUklFQVVUT01BVElPTiBHTUJICiswMDIwMzQgICAgIChiYXNlIDE2KQkJUk9URUMgSU5EVVNUUklFQVVUT01BVElPTiBHTUJICisJCQkJR1VURU5CRVJHU1RSLiAxNQorCQkJCTc2NDM3IFJBU1RBVFQKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTM1ICAgKGhleCkJCUlCTSBDb3JwCiswMDIwMzUgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTM2ICAgKGhleCkJCUJNQyBTT0ZUV0FSRQorMDAyMDM2ICAgICAoYmFzZSAxNikJCUJNQyBTT0ZUV0FSRQorCQkJCTE2MDAgQ0lUWSBXRVNUIEJMVkQuLCAjMTYwMAorCQkJCUhPVVNUT04gVFggNzcwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTM3ICAgKGhleCkJCVNFQUdBVEUgVEVDSE5PTE9HWQorMDAyMDM3ICAgICAoYmFzZSAxNikJCVNFQUdBVEUgVEVDSE5PTE9HWQorCQkJCTgwMDEgRS4gQkxPT01JTkdUT04gRldZCisJCQkJTS9TIC0gTVBTMDQzCisJCQkJQkxPT01JTkdUT04gTU4gNTU0MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTM4ICAgKGhleCkJCVZNRSBNSUNST1NZU1RFTVMgSU5URVJOQVRJT05BTCBDT1JQT1JBVElPTgorMDAyMDM4ICAgICAoYmFzZSAxNikJCVZNRSBNSUNST1NZU1RFTVMgSU5URVJOQVRJT05BTCBDT1JQT1JBVElPTgorCQkJCTEyMDkwIFMuIE1FTU9SSUFMIFBBUktXQVkKKwkJCQlIVU5UU1ZJTExFIEFMIDM1ODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0zOSAgIChoZXgpCQlTQ0lORVRTCiswMDIwMzkgICAgIChiYXNlIDE2KQkJU0NJTkVUUworCQkJCTE1NzUgVEVOQUtBIC0gU1RFIyBOOAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtM0EgICAoaGV4KQkJRElHSVRBTCBCSTBNRVRSSUNTIElOQy4KKzAwMjAzQSAgICAgKGJhc2UgMTYpCQlESUdJVEFMIEJJME1FVFJJQ1MgSU5DLgorCQkJCTU2MDAgUk9XTEFORCBST0FELSBTVEUuIzIwNQorCQkJCU1JTk5FVE9OS0EgTU4gNTUzNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTNCICAgKGhleCkJCVdJU0RNIExURC4KKzAwMjAzQiAgICAgKGJhc2UgMTYpCQlXSVNETSBMVEQuCisJCQkJU1QuIEpPSE5TIElOTk9WQVRJT04gQ0VOVFJFCisJCQkJQ09XTEVZIFJPQUQgQ0FNQlJJREdFICBDQjQgNFdTCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLTNDICAgKGhleCkJCUVVUk9USU1FIEFCCiswMDIwM0MgICAgIChiYXNlIDE2KQkJRVVST1RJTUUgQUIKKwkJCQlCT1ggMjc3CisJCQkJUy01MzIyNCBTS0FSQQorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC0yMC0zRCAgIChoZXgpCQlIb25leXdlbGwgRUNDCiswMDIwM0QgICAgIChiYXNlIDE2KQkJSG9uZXl3ZWxsIEVDQworCQkJCTE5ODUgRG91Z2xhcyBEcml2ZQorCQkJCU1OMTAtMTIxQQorCQkJCUdvbGRlbiBWYWxsZXkgTU4gNTU0MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTNFICAgKGhleCkJCUxvZ2lDYW4gVGVjaG5vbG9naWVzLCBJbmMuCiswMDIwM0UgICAgIChiYXNlIDE2KQkJTG9naUNhbiBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxNTAgS0FSTCBDTEFSSyBST0FECisJCQkJRURNT05UT04sIEFMQkVSVEEgVDZOIDFFMiAgCisJCQkJQ0FOQURBCisKKzAwLTIwLTNGICAgKGhleCkJCUpVS0kgQ09SUE9SQVRJT04KKzAwMjAzRiAgICAgKGJhc2UgMTYpCQlKVUtJIENPUlBPUkFUSU9OCisJCQkJOC0yLTEgS09LVVJZTy1DSE8KKwkJCQlDSE9GVS1TSEkgVE9LWU8gIDE4MgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMjAtNDAgICAoaGV4KQkJTW90b3JvbGEgQnJvYWRiYW5kIENvbW11bmljYXRpb25zIFNlY3RvcgorMDAyMDQwICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIEJyb2FkYmFuZCBDb21tdW5pY2F0aW9ucyBTZWN0b3IKKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC00MSAgIChoZXgpCQlEQVRBIE5FVAorMDAyMDQxICAgICAoYmFzZSAxNikJCURBVEEgTkVUCisJCQkJU1VXT04gUC5PLiBCT1ggMTA2LCBTVVdPTgorCQkJCUtZVU5HR0ktRE8KKwkJCQlLT1JFQSA0NDAtNjAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIwLTQyICAgKGhleCkJCURBVEFNRVRSSUNTIENPUlAuCiswMDIwNDIgICAgIChiYXNlIDE2KQkJREFUQU1FVFJJQ1MgQ09SUC4KKwkJCQk4OTY2IENPTUFOQ0hFIEFWRS4KKwkJCQlDSEFUU1dPUlRIIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC00MyAgIChoZXgpCQlORVVST04gQ09NUEFOWSBMSU1JVEVECiswMDIwNDMgICAgIChiYXNlIDE2KQkJTkVVUk9OIENPTVBBTlkgTElNSVRFRAorCQkJCTE1IEtXQUkgWUkgUk9BRCwgIEJMT0NLIDIsCisJCQkJMjFTVCBGTE9PUiwgRkxBVCBCCisJCQkJS1dBSSBDSFVORywgICBOLlQuICAKKwkJCQlIT05HIEtPTkcKKworMDAtMjAtNDQgICAoaGV4KQkJR0VOSVRFQ0ggUFRZIExURAorMDAyMDQ0ICAgICAoYmFzZSAxNikJCUdFTklURUNIIFBUWSBMVEQKKwkJCQlQLk8uIEJPWCAxOTYKKwkJCQlBU1FVSVRIIE5TVyAyMDc3CisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLTIwLTQ1ICAgKGhleCkJCUlPTiBOZXR3b3JrcywgSW5jLgorMDAyMDQ1ICAgICAoYmFzZSAxNikJCUlPTiBOZXR3b3JrcywgSW5jLgorCQkJCTE1NTEgU291dGggV2FzaGluZ3RvbiBBdmUuCisJCQkJUGlzY2F0YXdheSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNDYgICAoaGV4KQkJQ0lQUklDTywgSU5DLgorMDAyMDQ2ICAgICAoYmFzZSAxNikJCUNJUFJJQ08sIElOQy4KKwkJCQkyODAwIENBTVBVUyBEUklWRS0tU1VJVEUgIzYwCisJCQkJUExZTU9VVEggTU4gNTU0NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTQ3ICAgKGhleCkJCVNURUlOQlJFQ0hFUiBDT1JQLgorMDAyMDQ3ICAgICAoYmFzZSAxNikJCVNURUlOQlJFQ0hFUiBDT1JQLgorCQkJCTMwIE5PUlRIIEFWRU5VRQorCQkJCUJVUkxJTkdUT04gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTQ4ICAgKGhleCkJCU1hcmNvbmkgQ29tbXVuaWNhdGlvbnMKKzAwMjA0OCAgICAgKGJhc2UgMTYpCQlNYXJjb25pIENvbW11bmljYXRpb25zCisJCQkJMTAwMCBGb3JlIERyaXZlCisJCQkJV2FycmVuZGFsZSBQQSAxNTA4Ni03NTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC00OSAgIChoZXgpCQlDT01UUk9OLCBJTkMuCiswMDIwNDkgICAgIChiYXNlIDE2KQkJQ09NVFJPTiwgSU5DLgorCQkJCVNBTkNBVEhFUklOQSBCTERHLgorCQkJCTM2LTEyIFNISU5KVUtVIDEtQ0hPTUUgU0hJTkpVS1UtS1UKKwkJCQlUT0tZTyAxNjAgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0yMC00QSAgIChoZXgpCQlQUk9ORVQgR01CSAorMDAyMDRBICAgICAoYmFzZSAxNikJCVBST05FVCBHTUJICisJCQkJS0FSTFNUUkFTU0UgNDkKKwkJCQlELTc4MDUgRiBWSUxMSU5HRU4tU0NIV0VOTklOR0VOCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMjAtNEIgICAoaGV4KQkJQVVUT0NPTVBVVEVSIENPLiwgTFRELgorMDAyMDRCICAgICAoYmFzZSAxNikJCUFVVE9DT01QVVRFUiBDTy4sIExURC4KKwkJCQlOTy4gMTgsIFBFSSBZVUFOIFJPQUQKKwkJCQlDSFVORy1MSSBDSVRZLCBUQU8tWVVBTiBIU0lFTgorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMC00QyAgIChoZXgpCQlNSVRST04gQ09NUFVURVIgUFRFIExURC4KKzAwMjA0QyAgICAgKGJhc2UgMTYpCQlNSVRST04gQ09NUFVURVIgUFRFIExURC4KKwkJCQkxMDIwIEhPVUdBTkcgQVZFTlVFIDEgIzAzLTM1MDQKKwkJCQlTSU5HQVBPUkUgMTk1MworCQkJCVNJTkdBUE9SRQorCiswMC0yMC00RCAgIChoZXgpCQlJTk9WSVMgR01CSAorMDAyMDREICAgICAoYmFzZSAxNikJCUlOT1ZJUyBHTUJICisJCQkJSEFOTlMtQlJBVU4gU1RSQVNTRSA1MAorCQkJCTg1Mzc1IE5FVUZBSFJOCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMjAtNEUgICAoaGV4KQkJTkVUV09SSyBTRUNVUklUWSBTWVNURU1TLCBJTkMuCiswMDIwNEUgICAgIChiYXNlIDE2KQkJTkVUV09SSyBTRUNVUklUWSBTWVNURU1TLCBJTkMuCisJCQkJOTQwMSBXQVBMRVMgU1RSRUVULFNURS4gIzEwMAorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNEYgICAoaGV4KQkJREVVVFNDSEUgQUVST1NQQUNFIEFHCiswMDIwNEYgICAgIChiYXNlIDE2KQkJREVVVFNDSEUgQUVST1NQQUNFIEFHCisJCQkJR0VTQ0hBRUZUU0ZFTEQKKwkJCQlWRVJURUlESUdVTkcgVU5EIFpJVklMRSBTWVNURU0gODE2NjMgTVVFCisJCQkJQlVOREVTUkVQVUJMSUsgREVVVFNDSExBTkQKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTUwICAgKGhleCkJCUtPUkVBIENPTVBVVEVSIElOQy4KKzAwMjA1MCAgICAgKGJhc2UgMTYpCQlLT1JFQSBDT01QVVRFUiBJTkMuCisJCQkJNDY5LCBEQUVIRVVORy1ET05HCisJCQkJTUFQTy1HVSwgU0VPVUwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMC01MSAgIChoZXgpCQlWZXJpbGluayBDb3Jwb3JhdGlvbgorMDAyMDUxICAgICAoYmFzZSAxNikJCVZlcmlsaW5rIENvcnBvcmF0aW9uCisJCQkJMTI3IEpldHBsZXggQ2lyY2xlCisJCQkJTWFkaXNvbiBBTCAzNTc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNTIgICAoaGV4KQkJUkFHVUxBIFNZU1RFTVMKKzAwMjA1MiAgICAgKGJhc2UgMTYpCQlSQUdVTEEgU1lTVEVNUworCQkJCTQ1NDAgUy4gSlVQSVRFUiBEUklWRQorCQkJCVNBTFQgTEFLRSBDSVRZIFVUIDg0MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC01MyAgIChoZXgpCQlIVU5UU1ZJTExFIE1JQ1JPU1lTVEVNUywgSU5DLgorMDAyMDUzICAgICAoYmFzZSAxNikJCUhVTlRTVklMTEUgTUlDUk9TWVNURU1TLCBJTkMuCisJCQkJUC5PLiBCT1ggMTI0MTUKKwkJCQlIVU5UU1ZJTExFIEFMIDM1ODE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC01NCAgIChoZXgpCQlTeWNhbW9yZSBOZXR3b3JrcworMDAyMDU0ICAgICAoYmFzZSAxNikJCVN5Y2Ftb3JlIE5ldHdvcmtzCisJCQkJMjIwIE1pbGwgUmQKKwkJCQlDaGVsbXNmb3JkIE1BIDAxODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC01NSAgIChoZXgpCQlBTFRFQ0ggQ08uLCBMVEQuCiswMDIwNTUgICAgIChiYXNlIDE2KQkJQUxURUNIIENPLiwgTFRELgorCQkJCU9ISVNISSBCTERHLiwgMi0yMy0xMQorCQkJCU5JU0hJLU5JUFBPUkksIEFSQUtBV0EtS1UKKwkJCQkgVE9LWU8gMTE2ICAKKwkJCQlKQVBBTgorCiswMC0yMC01NiAgIChoZXgpCQlORU9QUk9EVUNUUworMDAyMDU2ICAgICAoYmFzZSAxNikJCU5FT1BST0RVQ1RTCisJCQkJMjUgQ0hBUE1BTiBTVFJFRVQKKwkJCQlCTEFDS0JVUk4gTk9SVEggVklDVE9SSUEgMzEzMAorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC0yMC01NyAgIChoZXgpCQlUSVRaRSBEQVRFTlRFQ0hOSUsgR21iSAorMDAyMDU3ICAgICAoYmFzZSAxNikJCVRJVFpFIERBVEVOVEVDSE5JSyBHbWJICisJCQkJRElFU0VMU1RSQVNTRSAxMAorCQkJCURTLTcxMjcyIFJFTk5JTkdFTi0yICAKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTU4ICAgKGhleCkJCUFMTElFRCBTSUdOQUwgSU5DLgorMDAyMDU4ICAgICAoYmFzZSAxNikJCUFMTElFRCBTSUdOQUwgSU5DLgorCQkJCVJPVVRFIDQ2CisJCQkJVEVURVJCT1JPIE5KIDA3NjA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC01OSAgIChoZXgpCQlNSVJPIENPTVBVVEVSIFBST0RVQ1RTIEFHCiswMDIwNTkgICAgIChiYXNlIDE2KQkJTUlSTyBDT01QVVRFUiBQUk9EVUNUUyBBRworCQkJCUNBUkwgTUlFTEUgU1RSLiA0CisJCQkJRC0zODExMiBCUkFVTlNDSFdFSUcgIAorCQkJCUdFUk1BTlkKKworMDAtMjAtNUEgICAoaGV4KQkJQ09NUFVURVIgSURFTlRJQ1MKKzAwMjA1QSAgICAgKGJhc2UgMTYpCQlDT01QVVRFUiBJREVOVElDUworCQkJCTUgU0hBV01VVCBST0FECisJCQkJQ0FOVE9OIE1BIDAyMDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC01QiAgIChoZXgpCQlLZW50cm94LCBMTEMKKzAwMjA1QiAgICAgKGJhc2UgMTYpCQlLZW50cm94LCBMTEMKKwkJCQkyMDAxMCBOVyBUYW5hc2JvdXJuZSBEci4KKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTVDICAgKGhleCkJCUludGVyTmV0IFN5c3RlbXMgb2YgRmxvcmlkYSwgSW5jLgorMDAyMDVDICAgICAoYmFzZSAxNikJCUludGVyTmV0IFN5c3RlbXMgb2YgRmxvcmlkYSwgSW5jLgorCQkJCVAuTy4gQk9YIDU3OAorCQkJCUNSRVNUVklFVyBGTCAzMjUzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNUQgICAoaGV4KQkJTkFOT01BVElDIE9ZCiswMDIwNUQgICAgIChiYXNlIDE2KQkJTkFOT01BVElDIE9ZCisJCQkJUFVJU1RPTEFOIFJBSVRUSSA0CisJCQkJMDA3NjAgSEVMU0lOS0kKKwkJCQlGSU5MQU5ECisJCQkJRklOTEFORAorCiswMC0yMC01RSAgIChoZXgpCQlDQVNUTEUgUk9DSywgSU5DLgorMDAyMDVFICAgICAoYmFzZSAxNikJCUNBU1RMRSBST0NLLCBJTkMuCisJCQkJMjAgU09VVEggU0FOVEEgQ1JVWiBBVkUuCisJCQkJU1VJVEUgIzMxMAorCQkJCUxPUyBHQVRPUyBDQSA5NTAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNUYgICAoaGV4KQkJR0FNTUFEQVRBIENPTVBVVEVSIEdNQkgKKzAwMjA1RiAgICAgKGJhc2UgMTYpCQlHQU1NQURBVEEgQ09NUFVURVIgR01CSAorCQkJCUdVVEVOQkVSR1NUUi4gMTMKKwkJCQk4MjE2OCBQVUNISEVJTQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTYwICAgKGhleCkJCUFMQ0FURUwgSVRBTElBIFMucC5BLgorMDAyMDYwICAgICAoYmFzZSAxNikJCUFMQ0FURUwgSVRBTElBIFMucC5BLgorCQkJCVZJQSBUUkVOVE8sIDMwCisJCQkJMjAwNTkgVklNRVJDQVRFIChNSSkgIAorCQkJCUlUQUxZCisKKzAwLTIwLTYxICAgKGhleCkJCUdhcnJldHRDb20sIEluYy4KKzAwMjA2MSAgICAgKGJhc2UgMTYpCQlHYXJyZXR0Q29tLCBJbmMuCisJCQkJOTkxIEFOTkFQT0xJUyBXQVkKKwkJCQlOb3J0aCBBbmRvdmVyIE1BIDAxODQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC02MiAgIChoZXgpCQlTQ09SUElPTiBMT0dJQywgTFRELgorMDAyMDYyICAgICAoYmFzZSAxNikJCVNDT1JQSU9OIExPR0lDLCBMVEQuCisJCQkJMTkgQlJPT0tTSURFIFJPQUQKKwkJCQlPWEhFWSwgV0FURk9SRAorCQkJCUhFUlRTIFdEMSA0QlcgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLTYzICAgKGhleCkJCVdJUFJPIElORk9URUNIIExURC4KKzAwMjA2MyAgICAgKGJhc2UgMTYpCQlXSVBSTyBJTkZPVEVDSCBMVEQuCisJCQkJVU5JVFMgNDctNDgsIFNERiBCTE9DSyBWSUkKKwkJCQlNRVBaLCBLQURBUFBFUkkgTUFEUkFTLTYwMDA0NQorCQkJCUlORElBCisKKzAwLTIwLTY0ICAgKGhleCkJCVBST1RFQyBNSUNST1NZU1RFTVMsIElOQy4KKzAwMjA2NCAgICAgKGJhc2UgMTYpCQlQUk9URUMgTUlDUk9TWVNURU1TLCBJTkMuCisJCQkJMjk3IExBQlJPU1NFCisJCQkJUE9JTlRFLUNMQUlSRSwgUVVFQkVDIEg5UiAxQTMgIAorCQkJCUNBTkFEQQorCiswMC0yMC02NSAgIChoZXgpCQlTVVBFUk5FVCBORVRXT1JLSU5HIElOQy4KKzAwMjA2NSAgICAgKGJhc2UgMTYpCQlTVVBFUk5FVCBORVRXT1JLSU5HIElOQy4KKwkJCQkxNiBUT1pFUkVUIEhBJ0FSRVRaIFNULgorCQkJCVRFTC1BVklWIDY3ODkxICAKKwkJCQlJU1JBRUwKKworMDAtMjAtNjYgICAoaGV4KQkJR0VORVJBTCBNQUdJQywgSU5DLgorMDAyMDY2ICAgICAoYmFzZSAxNikJCUdFTkVSQUwgTUFHSUMsIElOQy4KKwkJCQkyNDY1IExBVEhBTSBTVFJFRVQKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC02NyAgIChoZXgpCQlQUklWQVRFCiswMDIwNjcgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTIwLTY4ICAgKGhleCkJCUlTRFlORQorMDAyMDY4ICAgICAoYmFzZSAxNikJCUlTRFlORQorCQkJCTExIFJPWEJVUlkgQVZFTlVFCisJCQkJTkFUSUNLIE1BIDAxNzYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC02OSAgIChoZXgpCQlJU0ROIFNZU1RFTVMgQ09SUE9SQVRJT04KKzAwMjA2OSAgICAgKGJhc2UgMTYpCQlJU0ROIFNZU1RFTVMgQ09SUE9SQVRJT04KKwkJCQk4MzIwIE9MRCBDT1VSVEhPVVNFIFJELgorCQkJCVNVSVRFICMyMDMKKwkJCQlWSUVOTkEgVkEgMjIxODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTZBICAgKGhleCkJCU9TQUtBIENPTVBVVEVSIENPUlAuCiswMDIwNkEgICAgIChiYXNlIDE2KQkJT1NBS0EgQ09NUFVURVIgQ09SUC4KKwkJCQkyLTggS09ZQUNIT1UgTkVZQUdBVy1TSEkKKwkJCQlPU0FLQSA1NzIKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTIwLTZCICAgKGhleCkJCUtPTklDQSBNSU5PTFRBIEhPTERJTkdTLCBJTkMuCiswMDIwNkIgICAgIChiYXNlIDE2KQkJS09OSUNBIE1JTk9MVEEgSE9MRElOR1MsIElOQy4KKwkJCQkxLTYtMSwgTWFydW5vdWNoaSwKKwkJCQlDaGl5b2RhLWt1CisJCQkJVG9reW8gIDEwMC0wMDA1CisJCQkJSkFQQU4KKworMDAtMjAtNkMgICAoaGV4KQkJRVZFUkdSRUVOIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMjA2QyAgICAgKGJhc2UgMTYpCQlFVkVSR1JFRU4gVEVDSE5PTE9HWSBDT1JQLgorCQkJCTIzMSBFTUVSU09OIFNUUkVFVAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNkQgICAoaGV4KQkJREFUQSBSQUNFLCBJTkMuCiswMDIwNkQgICAgIChiYXNlIDE2KQkJREFUQSBSQUNFLCBJTkMuCisJCQkJMTE1NTAgSUgtMTBXRVNUICBTVEUjMzk1CisJCQkJU0FOIEFOVE9OSU8gVFggNzgyMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTZFICAgKGhleCkJCVhBQ1QsIElOQy4KKzAwMjA2RSAgICAgKGJhc2UgMTYpCQlYQUNULCBJTkMuCisJCQkJUC5PLiBCT1ggNTUKKwkJCQlBUkdZTEUgVFggNzYyMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTZGICAgKGhleCkJCUZMT1dQT0lOVCBDT1JQT1JBVElPTgorMDAyMDZGICAgICAoYmFzZSAxNikJCUZMT1dQT0lOVCBDT1JQT1JBVElPTgorCQkJCTcyOTEgQ09ST05BRE8gRFJJVkUsIFNURSMgNAorCQkJCVNBTiBKT1NFIENBIDk1MTI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC03MCAgIChoZXgpCQlIWU5FVCwgTFRELgorMDAyMDcwICAgICAoYmFzZSAxNikJCUhZTkVULCBMVEQuCisJCQkJMTAyIEpBQk9USU5TS1kgU1QuCisJCQkJUE8gQk9YIDM2MzgKKwkJCQlQRVRBQ0ggVElLVkEgNDkxMzAgIAorCQkJCUlTUkFFTAorCiswMC0yMC03MSAgIChoZXgpCQlJQlIgR01CSAorMDAyMDcxICAgICAoYmFzZSAxNikJCUlCUiBHTUJICisJCQkJS09ITEVSU1RSLiA0NQorCQkJCUQtNDYyODYgRE9SU1RFTiAgCisJCQkJR0VSTUFOWQorCiswMC0yMC03MiAgIChoZXgpCQlXT1JLTElOSyBJTk5PVkFUSU9OUworMDAyMDcyICAgICAoYmFzZSAxNikJCVdPUktMSU5LIElOTk9WQVRJT05TCisJCQkJMjQ1MiBBUk1TVFJPTkcgU1RSRUVUCisJCQkJTElWRVJNT1JFIENBIDk0NTVPCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC03MyAgIChoZXgpCQlGVVNJT04gU1lTVEVNUyBDT1JQT1JBVElPTgorMDAyMDczICAgICAoYmFzZSAxNikJCUZVU0lPTiBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJNzYwMCBTVEFORElTSCBQTEFDRQorCQkJCVJPQ0tWSUxMRSBNRCAyMDg1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNzQgICAoaGV4KQkJU1VOR1dPT04gU1lTVEVNUworMDAyMDc0ICAgICAoYmFzZSAxNikJCVNVTkdXT09OIFNZU1RFTVMKKwkJCQlZVVNVTiBCTERHLjQ0LTQKKwkJCQlTQU1TVU5HLURPTkcgS0FOR05BTS1LVSwgU0VPVUwgMTM1LTA5MAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIwLTc1ICAgKGhleCkJCU1PVE9ST0xBIENPTU1VTklDQVRJT04gSVNSQUVMCiswMDIwNzUgICAgIChiYXNlIDE2KQkJTU9UT1JPTEEgQ09NTVVOSUNBVElPTiBJU1JBRUwKKwkJCQkzIEtSRU1FTkVUU0tJIFNUUkVFVAorCQkJCVBPQiAyNTAxNgorCQkJCVRFTC1BVklWICA2MTI1MCAgCisJCQkJSVNSQUVMCisKKzAwLTIwLTc2ICAgKGhleCkJCVJFVURPIENPUlBPUkFUSU9OCiswMDIwNzYgICAgIChiYXNlIDE2KQkJUkVVRE8gQ09SUE9SQVRJT04KKwkJCQk0LTEtMTAgU0hJTlNBTgorCQkJCU5BR0FPS0EgQ0lUWSwgTklJR0FUQSA5NDAtMjEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTIwLTc3ICAgKGhleCkJCUtBUkRJT1MgU1lTVEVNUyBDT1JQLgorMDAyMDc3ICAgICAoYmFzZSAxNikJCUtBUkRJT1MgU1lTVEVNUyBDT1JQLgorCQkJCTI2IE4gU1VNTUlUIEFWRS4KKwkJCQlHQUlUSEVSU0JVUkcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTc4ICAgKGhleCkJCVJVTlRPUCwgSU5DLgorMDAyMDc4ICAgICAoYmFzZSAxNikJCVJVTlRPUCwgSU5DLgorCQkJCTUvRiwgTk8uIDEwLCBBTExFWSA4LCBMQU5FIDQ1CisJCQkJUEFPIFNISU4gUk9BRCwgSFNJTlRJRU4gVEFJUEVJIEhTSUVOCisJCQkJVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjAtNzkgICAoaGV4KQkJTUlLUk9OIEdNQkgKKzAwMjA3OSAgICAgKGJhc2UgMTYpCQlNSUtST04gR01CSAorCQkJCUJSRVNMQVVFUlNUUi4gMS0zCisJCQkJODUzODYgRUNISU5HICAKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTdBICAgKGhleCkJCVdpU0UgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMjA3QSAgICAgKGJhc2UgMTYpCQlXaVNFIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTMwIEtOT1dMRVMgRFJJVkUKKwkJCQlMT1MgR0FUT1MgQ0EgOTUwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTdCICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDIwN0IgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQkyMTExIE5FIDI1dGggQXZlbnVlCisJCQkJSkYzLTQyMAorCQkJCUhpbGxzYm9ybyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtN0MgICAoaGV4KQkJQVVURUMgR21iSAorMDAyMDdDICAgICAoYmFzZSAxNikJCUFVVEVDIEdtYkgKKwkJCQlCQUhOSE9GU1RSLiA1NworCQkJCTU1MjM0IEZSQU1FUlNIRUlNICAKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTdEICAgKGhleCkJCUFEVkFOQ0VEIENPTVBVVEVSIEFQUExJQ0FUSU9OUworMDAyMDdEICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIENPTVBVVEVSIEFQUExJQ0FUSU9OUworCQkJCTEwNyBQRU5OUyBUUkFJTAorCQkJCU5FV1RPV04gUEEgMTg5NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTdFICAgKGhleCkJCUZJTkVDT00gQ28uLCBMdGQuCiswMDIwN0UgICAgIChiYXNlIDE2KQkJRklORUNPTSBDby4sIEx0ZC4KKwkJCQkxMTA4IEhXQUtPSy1ET05HLCBLQU5HU0VPLUtVCisJCQkJU0VPVUwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMC03RiAgIChoZXgpCQlLWU9FSSBTQU5HWU8gQ08uLCBMVEQuCiswMDIwN0YgICAgIChiYXNlIDE2KQkJS1lPRUkgU0FOR1lPIENPLiwgTFRELgorCQkJCURJUi4gJiBHRU4nTCBNR1IuSU5ELiBTWVNURU1TCisJCQkJMjAtNCwgU0hPVE8gMi1DSE9NRSBTSElCVVlBLUtVCisJCQkJVE9LWU8KKwkJCQlKQVBBTgorCiswMC0yMC04MCAgIChoZXgpCQlTWU5FUkdZIChVSykgTFRELgorMDAyMDgwICAgICAoYmFzZSAxNikJCVNZTkVSR1kgKFVLKSBMVEQuCisJCQkJSEFSVENSQU4gSE9VU0UKKwkJCQlDQVJQRU5ERVJTIFBBUkssCisJCQkJV0FURk9SRCBIRVJUUy4gIFdEMSA1RVogIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLTgxICAgKGhleCkJCVRJVEFOIEVMRUNUUk9OSUNTCiswMDIwODEgICAgIChiYXNlIDE2KQkJVElUQU4gRUxFQ1RST05JQ1MKKwkJCQkzMDMzIFNDSUVOQ0UgUEFSSyBST0FECisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC04MiAgIChoZXgpCQlPTkVBQyBDT1JQT1JBVElPTgorMDAyMDgyICAgICAoYmFzZSAxNikJCU9ORUFDIENPUlBPUkFUSU9OCisJCQkJMjc5NDQgTi4gQlJBRExFWSBSRC4KKwkJCQlMSUJFUlRZVklMTEUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTgzICAgKGhleCkJCVBSRVNUSUNPTSBJTkNPUlBPUkFURUQKKzAwMjA4MyAgICAgKGJhc2UgMTYpCQlQUkVTVElDT00gSU5DT1JQT1JBVEVECisJCQkJMzI3NSwgMVNUIFNUUkVFVCwgU1RFLiAjMQorCQkJCVNULUhVQkVSVCAoUVVFQkVDKQorCQkJCUNBTkFEQSBKM1kgOFk2CisJCQkJQ0FOQURBCisKKzAwLTIwLTg0ICAgKGhleCkJCU9DRSBQUklOVElORyBTWVNURU1TLCBHTUJICiswMDIwODQgICAgIChiYXNlIDE2KQkJT0NFIFBSSU5USU5HIFNZU1RFTVMsIEdNQkgKKwkJCQlTSUVNRU5TQUxMRUUgMgorCQkJCUQtODU1ODYgUE9JTkcKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTg1ICAgKGhleCkJCUVYSURFIEVMRUNUUk9OSUNTCiswMDIwODUgICAgIChiYXNlIDE2KQkJRVhJREUgRUxFQ1RST05JQ1MKKwkJCQlQLk8uIEJPWCAgNTgxODkKKwkJCQlSQUxFSUdIIE5DIDI3NjU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC04NiAgIChoZXgpCQlNSUNST1RFQ0ggRUxFQ1RST05JQ1MgTElNSVRFRAorMDAyMDg2ICAgICAoYmFzZSAxNikJCU1JQ1JPVEVDSCBFTEVDVFJPTklDUyBMSU1JVEVECisJCQkJTEFOQ0FTVEVSIFJPQUQKKwkJCQlDUkVTU0VYIElORFVTVFJJQUwgRVNUQVRFIEhJR0ggV1lDT01CRSwKKwkJCQlLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtODcgICAoaGV4KQkJTUVNT1RFQywgSU5DLgorMDAyMDg3ICAgICAoYmFzZSAxNikJCU1FTU9URUMsIElOQy4KKwkJCQk3NzU1IEhlbnJpLUJvdXJhc3NhCisJCQkJTU9OVFJFQUwsIFFVRUJFQyAgIEg0UyAxUDcKKwkJCQlDQU5BREEKKworMDAtMjAtODggICAoaGV4KQkJR0xPQkFMIFZJTExBR0UgQ09NTVVOSUNBVElPTgorMDAyMDg4ICAgICAoYmFzZSAxNikJCUdMT0JBTCBWSUxMQUdFIENPTU1VTklDQVRJT04KKwkJCQkxMTQ0IEVBU1QgQVJRVUVTIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtODkgICAoaGV4KQkJVDNQTFVTIE5FVFdPUktJTkcsIElOQy4KKzAwMjA4OSAgICAgKGJhc2UgMTYpCQlUM1BMVVMgTkVUV09SS0lORywgSU5DLgorCQkJCTI4NDAgU0FOIFRPTUFTIEVYUFJFU1NXQVkKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtOEEgICAoaGV4KQkJU09OSVggQ09NTVVOSUNBVElPTlMsIExURC4KKzAwMjA4QSAgICAgKGJhc2UgMTYpCQlTT05JWCBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCVdJTEtJTlNPTiBST0FECisJCQkJQ0lSRU5DRVNURVIsIEdMT1MuIEdMNyAxWVQKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtOEIgICAoaGV4KQkJTEFQSVMgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDIwOEIgICAgIChiYXNlIDE2KQkJTEFQSVMgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTEwMCBNQVJJTkEgVklMTEFHRSBQS1dZCisJCQkJU1VJVEUgIzEwMAorCQkJCUFMQU1FREEgQ0EgOTQ1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLThDICAgKGhleCkJCUdBTEFYWSBORVRXT1JLUywgSU5DLgorMDAyMDhDICAgICAoYmFzZSAxNikJCUdBTEFYWSBORVRXT1JLUywgSU5DLgorCQkJCTkzNDggREUgU09UTyBBVkVOVUUKKwkJCQlDSEFUU1dPUlRIIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC04RCAgIChoZXgpCQlDTUQgVEVDSE5PTE9HWQorMDAyMDhEICAgICAoYmFzZSAxNikJCUNNRCBURUNITk9MT0dZCisJCQkJMSBWQU5ERVJCSUxUCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC04RSAgIChoZXgpCQlDSEVWSU4gU09GVFdBUkUgRU5HLiBMVEQuCiswMDIwOEUgICAgIChiYXNlIDE2KQkJQ0hFVklOIFNPRlRXQVJFIEVORy4gTFRELgorCQkJCTIgQk9ST1VHSEdBVEUsIE9UTEVZLAorCQkJCUxFRURTLCBXRVNULCBZT1JLU0hJUkUKKwkJCQlMUzIxIDNBTCBVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLThGICAgKGhleCkJCUVDSSBURUxFQ09NIExURC4KKzAwMjA4RiAgICAgKGJhc2UgMTYpCQlFQ0kgVEVMRUNPTSBMVEQuCisJCQkJSEFTSVZJTSBTVC4gMzAsCisJCQkJUEVUQUNILVRJS1ZBIDQ5MTMzICAKKwkJCQlJU1JBRUwKKworMDAtMjAtOTAgICAoaGV4KQkJQURWQU5DRUQgQ09NUFJFU1NJT04gVEVDSE5PTE9HWSwgSU5DLgorMDAyMDkwICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIENPTVBSRVNTSU9OIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk4MjAgRkxZTk4gUk9BRAorCQkJCUNBTUFSSUxMTyBDQSA5MzAxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtOTEgICAoaGV4KQkJSjEyNSwgTkFUSU9OQUwgU0VDVVJJVFkgQUdFTkNZCiswMDIwOTEgICAgIChiYXNlIDE2KQkJSjEyNSwgTkFUSU9OQUwgU0VDVVJJVFkgQUdFTkNZCisJCQkJOTgwMCBTQVZBR0UgUk9BRAorCQkJCUZULiBNRUFERSBNRCAyMDc1NS02MDAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC05MiAgIChoZXgpCQlDSEVTUyBFTkdJTkVFUklORyBCLlYuCiswMDIwOTIgICAgIChiYXNlIDE2KQkJQ0hFU1MgRU5HSU5FRVJJTkcgQi5WLgorCQkJCU5JRVVXRSBHUkFDSFQgNzQKKwkJCQkyMDExIE5KIEhBQVJMRU0KKwkJCQlORVRIRVJMQU5EUworCiswMC0yMC05MyAgIChoZXgpCQlMQU5ESU5HUyBURUNITk9MT0dZIENPUlAuCiswMDIwOTMgICAgIChiYXNlIDE2KQkJTEFORElOR1MgVEVDSE5PTE9HWSBDT1JQLgorCQkJCTE2MyBXQVRFUiBTVFJFRVQKKwkJCQlNRVJSSUxMIEJMT0NLIFVOSVQgQTIKKwkJCQlFWEVURVIgTkggMDM4MzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTk0ICAgKGhleCkJCUNVQklYIENPUlBPUkFUSU9OCiswMDIwOTQgICAgIChiYXNlIDE2KQkJQ1VCSVggQ09SUE9SQVRJT04KKwkJCQkyODAwIExPQ0tIRUVEIFdBWQorCQkJCUNBUlNPTiBDSVRZIE5WIDg5NzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC05NSAgIChoZXgpCQlSSVZBIEVMRUNUUk9OSUNTCiswMDIwOTUgICAgIChiYXNlIDE2KQkJUklWQSBFTEVDVFJPTklDUworCQkJCVVOSVQgMTcsIEJBUlJTRk9MRCBSRC4KKwkJCQlXSU5HQVRFUyBJTkRVU1RSSUFMIFBBUksgV0VTVEhPVUdIVE9OLCBCCisJCQkJTEFOQ0FTSElSRSBFTkdMQU5EIEJMNSAzWFcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC05NiAgIChoZXgpCQlJbnZlbnN5cworMDAyMDk2ICAgICAoYmFzZSAxNikJCUludmVuc3lzCisJCQkJMTM1NCBDbGlmZm9yZCBBdmVudWUKKwkJCQlMb3ZlcyBQYXJrIElMIDYxMTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC05NyAgIChoZXgpCQlBUFBMSUVEIFNJR05BTCBURUNITk9MT0dZCiswMDIwOTcgICAgIChiYXNlIDE2KQkJQVBQTElFRCBTSUdOQUwgVEVDSE5PTE9HWQorCQkJCTE2MCBTT0JSQU5URSBXQVkKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTk4ICAgKGhleCkJCUhFQ1RST05JQyBBQgorMDAyMDk4ICAgICAoYmFzZSAxNikJCUhFQ1RST05JQyBBQgorCQkJCUJPWCAzMDAyCisJCQkJUy03NTAwMyBVUFBTQUxBICAKKwkJCQlTV0VERU4KKworMDAtMjAtOTkgICAoaGV4KQkJQk9OIEVMRUNUUklDIENPLiwgTFRELgorMDAyMDk5ICAgICAoYmFzZSAxNikJCUJPTiBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQk0LTQgMjgsIE1JWlVETy1DSE8KKwkJCQlBTUFHQVNBS0ksIDY2MQorCQkJCUhZT0dPIEhZT0dPIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMjAtOUEgICAoaGV4KQkJVEhFIDNETyBDT01QQU5ZCiswMDIwOUEgICAgIChiYXNlIDE2KQkJVEhFIDNETyBDT01QQU5ZCisJCQkJNjAwIEdBTFZFU1RPTiBEUklWRQorCQkJCVJFRFdPT0QgQ0lUWSBDQSA5NDA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtOUIgICAoaGV4KQkJRVJTQVQgRUxFQ1RST05JQyBHTUJICiswMDIwOUIgICAgIChiYXNlIDE2KQkJRVJTQVQgRUxFQ1RST05JQyBHTUJICisJCQkJSEFBUkJFUkdTVFIuIDYxCisJCQkJRC05OTA5NyBFUkZVUlQKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0yMC05QyAgIChoZXgpCQlQUklNQVJZIEFDQ0VTUyBDT1JQLgorMDAyMDlDICAgICAoYmFzZSAxNikJCVBSSU1BUlkgQUNDRVNTIENPUlAuCisJCQkJMTAwODAgQ0FSUk9MTCBDQU5ZT04gUkQKKwkJCQlTQU4gRElFR08gQ0EgOTIxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTlEICAgKGhleCkJCUxJUFBFUlQgQVVUT01BVElPTlNURUNITklLCiswMDIwOUQgICAgIChiYXNlIDE2KQkJTElQUEVSVCBBVVRPTUFUSU9OU1RFQ0hOSUsKKwkJCQlELTY4MTY1IE1BTk5IRUlNCisJCQkJS1JBUFBNVUVITFNUUi4gMzQKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0yMC05RSAgIChoZXgpCQlCUk9XTidTIE9QRVJBVElORyBTWVNURU0gU0VSVklDRVMsIExURC4KKzAwMjA5RSAgICAgKGJhc2UgMTYpCQlCUk9XTidTIE9QRVJBVElORyBTWVNURU0gU0VSVklDRVMsIExURC4KKwkJCQlTVC4gQUdORVMgSE9VU0UsIENSRVNTV0VMTCBQSywKKwkJCQlCTEFDS0hFQVRILCBMb25kb24gU0UzIDlSRCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtOUYgICAoaGV4KQkJTUVSQ1VSWSBDT01QVVRFUiBTWVNURU1TLCBJTkMuCiswMDIwOUYgICAgIChiYXNlIDE2KQkJTUVSQ1VSWSBDT01QVVRFUiBTWVNURU1TLCBJTkMuCisJCQkJMTk5IFJJVkVSTkVDSyBST0FECisJCQkJQ0hFTE1TRk9SRCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQTAgICAoaGV4KQkJT0EgTEFCT1JBVE9SWSBDTy4sIExURC4KKzAwMjBBMCAgICAgKGJhc2UgMTYpCQlPQSBMQUJPUkFUT1JZIENPLiwgTFRELgorCQkJCTIyOCBLQU1JTUFDSElZQSBLQU1BS1VSQQorCQkJCUtBTkFHQVdBIDI0NworCQkJCUpBUEFOCisKKzAwLTIwLUExICAgKGhleCkJCURPVkFUUk9OCiswMDIwQTEgICAgIChiYXNlIDE2KQkJRE9WQVRST04KKwkJCQlQUk9EVUNUUyBESVZJU0lPTgorCQkJCTExOTggQk9TVE9OIEFWRU5VRQorCQkJCUxPTkdNT05UIENPIDgwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1BMiAgIChoZXgpCQlHQUxDT00gTkVUV09SS0lORyBMVEQuCiswMDIwQTIgICAgIChiYXNlIDE2KQkJR0FMQ09NIE5FVFdPUktJTkcgTFRELgorCQkJCVAuTy4gQk9YIDE1NjgKKwkJCQlSQU1BVCBIQVNIQVJPTiA0NzExMyAgCisJCQkJSVNSQUVMCisKKzAwLTIwLUEzICAgKGhleCkJCURJVklDT00gSU5DLgorMDAyMEEzICAgICAoYmFzZSAxNikJCURJVklDT00gSU5DLgorCQkJCTU4MCBDT1RUT05XT09EIERSSVZFCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUE0ICAgKGhleCkJCU1VTFRJUE9JTlQgTkVUV09SS1MKKzAwMjBBNCAgICAgKGJhc2UgMTYpCQlNVUxUSVBPSU5UIE5FVFdPUktTCisJCQkJMTkgREFWSVMgRFJJVkUKKwkJCQlCRUxNT05UIENBIDk0MDAyLTMwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUE1ICAgKGhleCkJCUFQSSBFTkdJTkVFUklORworMDAyMEE1ICAgICAoYmFzZSAxNikJCUFQSSBFTkdJTkVFUklORworCQkJCTI2ODkgUE9QTEFSV09PRCBXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQTYgICAoaGV4KQkJUHJveGltIFdpcmVsZXNzCiswMDIwQTYgICAgIChiYXNlIDE2KQkJUHJveGltIFdpcmVsZXNzCisJCQkJMTU2MSBCdWNrZXllIERyaXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUE3ICAgKGhleCkJCVBBSVJHQUlOIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAyMEE3ICAgICAoYmFzZSAxNikJCVBBSVJHQUlOIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTE0NDAyIEZSQU5LTElOIEFWRU5VRQorCQkJCVRVU1RJTiBDQSA5MjY4MC03MDEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1BOCAgIChoZXgpCQlTQVNUIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMjBBOCAgICAgKGJhc2UgMTYpCQlTQVNUIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkyMjUgT0xEIE5FVyBCUlVOU1dJQ0sgUkQuCisJCQkJU1VJVEUgIzEwMQorCQkJCVBJU0NBVEFXQVkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUE5ICAgKGhleCkJCVdISVRFIEhPUlNFIElORFVTVFJJQUwKKzAwMjBBOSAgICAgKGJhc2UgMTYpCQlXSElURSBIT1JTRSBJTkRVU1RSSUFMCisJCQkJNEYuIE5PLjE2LCBBTExFWSA1NiwgTEFORSAxODEKKwkJCQlTRUMuNCwgQ0hVTkcgSFNJQU8gRUFTVCBST0FEIFRBSVBFSQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjAtQUEgICAoaGV4KQkJRElHSU1FRElBIFZJU0lPTiBMVEQuCiswMDIwQUEgICAgIChiYXNlIDE2KQkJRElHSU1FRElBIFZJU0lPTiBMVEQuCisJCQkJQ1JBV0xFWSBDT1VSVAorCQkJCVdJTkNIRVNURVIsIEhBTVBTSElSRQorCQkJCVNPMjEgMlFBIFVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtQUIgICAoaGV4KQkJTUlDUk8gSU5EVVNUUklFUyBDT1JQLgorMDAyMEFCICAgICAoYmFzZSAxNikJCU1JQ1JPIElORFVTVFJJRVMgQ09SUC4KKwkJCQk4Mzk5IEdSRUVOIE1FQURPV1MgRFIuIE4uCisJCQkJV0VTVEVSVklMTEUgT0ggNDMwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUFDICAgKGhleCkJCUlOVEVSRkxFWCBEQVRFTlNZU1RFTUUgR01CSAorMDAyMEFDICAgICAoYmFzZSAxNikJCUlOVEVSRkxFWCBEQVRFTlNZU1RFTUUgR01CSAorCQkJCUdST0JXSUVTRU5TVFJBU0UgMjQKKwkJCQlXLTcyMDEgRFVSQ0hIQVVTRU4KKwkJCQlXRVNUR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMjAtQUQgICAoaGV4KQkJTElOUSBTWVNURU1TCiswMDIwQUQgICAgIChiYXNlIDE2KQkJTElOUSBTWVNURU1TCisJCQkJUC5PLiBCT1ggMTEwNDAKKwkJCQlUVUNTT04gQVogODU3MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUFFICAgKGhleCkJCU9STkVUIERBVEEgQ09NTVVOSUNBVElPTiBURUNILgorMDAyMEFFICAgICAoYmFzZSAxNikJCU9STkVUIERBVEEgQ09NTVVOSUNBVElPTiBURUNILgorCQkJCVAuTy4gQk9YIDMyMworCQkJCUNBUk1JRUwgIDIwMTAwCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTIwLUFGICAgKGhleCkJCTNDT00gQ09SUE9SQVRJT04KKzAwMjBBRiAgICAgKGJhc2UgMTYpCQkzQ09NIENPUlBPUkFUSU9OCisJCQkJNTQwMCBCQVlGUk9OVCBQTEFaQQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1CMCAgIChoZXgpCQlHQVRFV0FZIERFVklDRVMsIElOQy4KKzAwMjBCMCAgICAgKGJhc2UgMTYpCQlHQVRFV0FZIERFVklDRVMsIElOQy4KKwkJCQkyNDQwIFNUQU5XRUxMIERSSVZFCisJCQkJQ09OQ09SRCBDQSA5NDUyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQjEgICAoaGV4KQkJQ09NVEVDSCBSRVNFQVJDSCBJTkMuCiswMDIwQjEgICAgIChiYXNlIDE2KQkJQ09NVEVDSCBSRVNFQVJDSCBJTkMuCisJCQkJMjQyNzEgVEFIT0UKKwkJCQlMQUdVTkEgTklHVUVMIENBIDkyNjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1CMiAgIChoZXgpCQlHS0QgR2VzZWxsc2NoYWZ0IEZ1ciBLb21tdW5pa2F0aW9uIFVuZCBEYXRlbnRlY2huaWsKKzAwMjBCMiAgICAgKGJhc2UgMTYpCQlHS0QgR2VzZWxsc2NoYWZ0IEZ1ciBLb21tdW5pa2F0aW9uIFVuZCBEYXRlbnRlY2huaWsKKwkJCQkKKwkJCQlTQUFSQlVSR0VSIFJJTkcgMTAtMTIKKwkJCQk2ODIyOSBNQU5OSEVJTSAgCisJCQkJR0VSTUFOWQorCiswMC0yMC1CMyAgIChoZXgpCQlTQ0xURUMgQ09NTVVOSUNBVElPTlMgU1lTVEVNUworMDAyMEIzICAgICAoYmFzZSAxNikJCVNDTFRFQyBDT01NVU5JQ0FUSU9OUyBTWVNURU1TCisJCQkJMyBBUE9MTE8gUExBQ0UKKwkJCQlMQU5FIENPVkUgTi5TLlcuIDIwNjYKKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtMjAtQjQgICAoaGV4KQkJVEVSTUEgRUxFS1RST05JSyBBUworMDAyMEI0ICAgICAoYmFzZSAxNikJCVRFUk1BIEVMRUtUUk9OSUsgQVMKKwkJCQlIT1ZNQVJLRU4gNCwKKwkJCQlESy04NTIwIExZU1RSVVAgIAorCQkJCURFTk1BUksKKworMDAtMjAtQjUgICAoaGV4KQkJWUFTS0FXQSBFTEVDVFJJQyBDT1JQT1JBVElPTgorMDAyMEI1ICAgICAoYmFzZSAxNikJCVlBU0tBV0EgRUxFQ1RSSUMgQ09SUE9SQVRJT04KKwkJCQkyLTEgS1VST1NBS0ktU0hJUk9JU0hJCisJCQkJWUFIQVRBTklTSEktS1UgS0lUQUtZVVNIVS1DSVRZCisJCQkJSkFQQU4KKworMDAtMjAtQjYgICAoaGV4KQkJQUdJTEUgTkVUV09SS1MsIElOQy4KKzAwMjBCNiAgICAgKGJhc2UgMTYpCQlBR0lMRSBORVRXT1JLUywgSU5DLgorCQkJCTIwMCBCQUtFUiBBVkVOVUUKKwkJCQlDT05DT1JEIE1BIDAxNzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1CNyAgIChoZXgpCQlOQU1BUVVBIENPTVBVVEVSV0FSRQorMDAyMEI3ICAgICAoYmFzZSAxNikJCU5BTUFRVUEgQ09NUFVURVJXQVJFCisJCQkJUC5PLiBCT1ggNzE1NQorCQkJCVNURUxMRU4gQk9TQ0ggNzU5OQorCQkJCVNPVVRIIEFGUklDQQorCiswMC0yMC1COCAgIChoZXgpCQlQUklNRSBPUFRJT04sIElOQy4KKzAwMjBCOCAgICAgKGJhc2UgMTYpCQlQUklNRSBPUFRJT04sIElOQy4KKwkJCQkyMzQxIFcuIDIwNVRIIFNUUkVFVCAjMTE2CisJCQkJVE9SUkFOQ0UgQ0EgOTA1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUI5ICAgKGhleCkJCU1FVFJJQ09NLCBJTkMuCiswMDIwQjkgICAgIChiYXNlIDE2KQkJTUVUUklDT00sIElOQy4KKwkJCQk5ODAgVU5JVkVSU0lUWSBBVkVOVUUKKwkJCQlMT1MgR0FUT1MgQ0EgOTUwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUJBICAgKGhleCkJCUNFTlRFUiBGT1IgSElHSCBQRVJGT1JNQU5DRQorMDAyMEJBICAgICAoYmFzZSAxNikJCUNFTlRFUiBGT1IgSElHSCBQRVJGT1JNQU5DRQorCQkJCUNPTVBVVElORyBPRiBXUEkKKwkJCQlTVUlURSAjMTcwIDI5MyBCT1NUT04gUE9TVCBST0FEIFcuCisJCQkJTUFSTEJPUk8gTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUJCICAgKGhleCkJCVpBWCBDT1JQT1JBVElPTgorMDAyMEJCICAgICAoYmFzZSAxNikJCVpBWCBDT1JQT1JBVElPTgorCQkJCTIwLTEyIE9HSUtVQk8gNS1DSE9NRQorCQkJCVNVR0lOQU1JLUtVIFRPS1lPCisJCQkJMTY3IEpBUEFOCisJCQkJSkFQQU4KKworMDAtMjAtQkMgICAoaGV4KQkJTG9uZyBSZWFjaCBOZXR3b3JrcyBQdHkgTHRkCiswMDIwQkMgICAgIChiYXNlIDE2KQkJTG9uZyBSZWFjaCBOZXR3b3JrcyBQdHkgTHRkCisJCQkJVW5pdCAzLCAxMTgtMTIyIEJvd2RlbiBTdAorCQkJCU1FQURPV0JBTksgTlNXIDIxMTQgIAorCQkJCUFVU1RSQUxJQQorCiswMC0yMC1CRCAgIChoZXgpCQlOSU9CUkFSQSBSICYgRCBDT1JQT1JBVElPTgorMDAyMEJEICAgICAoYmFzZSAxNikJCU5JT0JSQVJBIFIgJiBEIENPUlBPUkFUSU9OCisJCQkJUE8gQk9YIDM0MTgKKwkJCQlKT1BMSU4gTU8gNjQ4MDMtMzQxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQkUgICAoaGV4KQkJTEFOIEFDQ0VTUyBDT1JQLgorMDAyMEJFICAgICAoYmFzZSAxNikJCUxBTiBBQ0NFU1MgQ09SUC4KKwkJCQkyNzMwIE1PTlRFUkVZIFNUUkVFVCwgU1RFLiMxMDIKKwkJCQlUT1JSQU5DRSBDQSA5MDUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQkYgICAoaGV4KQkJQUVIUiBURVNUIFNZU1RFTVMKKzAwMjBCRiAgICAgKGJhc2UgMTYpCQlBRUhSIFRFU1QgU1lTVEVNUworCQkJCTE2NjcgUExZTU9VVEggU1RSRUVUCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQzAgICAoaGV4KQkJUFVMU0UgRUxFQ1RST05JQ1MsIElOQy4KKzAwMjBDMCAgICAgKGJhc2UgMTYpCQlQVUxTRSBFTEVDVFJPTklDUywgSU5DLgorCQkJCTU3MDYgRlJFREVSSUNLIEFWRU5VRQorCQkJCVJPQ0tWSUxMRSBNRCAyMDg1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQzEgICAoaGV4KQkJU0FYQSwgSW5jLgorMDAyMEMxICAgICAoYmFzZSAxNikJCVNBWEEsIEluYy4KKwkJCQlOQkYgUGxhdGludW0gVG93ZXIgMS0xNy0zIFNoaXJva2FuZQorCQkJCU1pbmF0by1rdQorCQkJCVRva3lvICAxMDgtODA1MAorCQkJCUpBUEFOCisKKzAwLTIwLUMyICAgKGhleCkJCVRFWEFTIE1FTU9SWSBTWVNURU1TLCBJTkMuCiswMDIwQzIgICAgIChiYXNlIDE2KQkJVEVYQVMgTUVNT1JZIFNZU1RFTVMsIElOQy4KKwkJCQkxMTIwMCBXRVNUSEVJTUVSIFJELVNURSMxMDAwCisJCQkJSE9VU1RPTiBUWCA3NzA0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQzMgICAoaGV4KQkJQ09VTlRFUiBTT0xVVElPTlMgTFRELgorMDAyMEMzICAgICAoYmFzZSAxNikJCUNPVU5URVIgU09MVVRJT05TIExURC4KKwkJCQkyNjMgSEVBR0UgUk9BRAorCQkJCVJJUExFWSwgREVSQllTIERFNSAzR0ggIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLUM0ICAgKGhleCkJCUlORVQsSU5DLgorMDAyMEM0ICAgICAoYmFzZSAxNikJCUlORVQsSU5DLgorCQkJCTgwMSBFLiBDQU1QQkVMTC1TVEUuIzMzMAorCQkJCVJJQ0hBUkRTT04gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUM1ICAgKGhleCkJCUVBR0xFIFRFQ0hOT0xPR1kKKzAwMjBDNSAgICAgKGJhc2UgMTYpCQlFQUdMRSBURUNITk9MT0dZCisJCQkJMjg2NSBaQU5LRVIgUk9BRAorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1DNiAgIChoZXgpCQlORUNURUMKKzAwMjBDNiAgICAgKGJhc2UgMTYpCQlORUNURUMKKwkJCQlSQU1BIFZJIFJPQUQKKwkJCQlSQUpUSEVWSSBCQU5HS09LICAxMDQwMAorCQkJCVRIQUlMQU5ECisJCQkJVEhBSUxBTkQKKworMDAtMjAtQzcgICAoaGV4KQkJQUtBSSBQcm9mZXNzaW9uYWwgTS5JLiBDb3JwLgorMDAyMEM3ICAgICAoYmFzZSAxNikJCUFLQUkgUHJvZmVzc2lvbmFsIE0uSS4gQ29ycC4KKwkJCQkxLTMsIEhpcmFudW1hIDEtQ2hvbWUsCisJCQkJTmlzaGkta3UsIFlva29oYW1hLAorCQkJCTIyMC0wMDIzIAorCQkJCUpBUEFOCisKKzAwLTIwLUM4ICAgKGhleCkJCUxBUlNDT00gSU5DT1JQT1JBVEVECiswMDIwQzggICAgIChiYXNlIDE2KQkJTEFSU0NPTSBJTkNPUlBPUkFURUQKKwkJCQk0NjAwIFBBVFJJQ0sgSEVOUlkgRFJJVkUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQzkgICAoaGV4KQkJVklDVFJPTiBCVgorMDAyMEM5ICAgICAoYmFzZSAxNikJCVZJQ1RST04gQlYKKwkJCQlQT0IgMzEKKwkJCQlOTCA5NzAwIEFBIEdST05JTkdFTgorCQkJCVRIRSBORVRIRVJMQU5EUworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIwLUNBICAgKGhleCkJCURJR0lUQUwgT0NFQU4KKzAwMjBDQSAgICAgKGJhc2UgMTYpCQlESUdJVEFMIE9DRUFOCisJCQkJMTEyMDYgVEhPTVBTT04gQVZFTlVFCisJCQkJTEVORVhBIEtTIDY2MjE5LTIzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUNCICAgKGhleCkJCVBSRVRFQyBFTEVDVFJPTklDUyBDT1JQLgorMDAyMENCICAgICAoYmFzZSAxNikJCVBSRVRFQyBFTEVDVFJPTklDUyBDT1JQLgorCQkJCTM5ODk5IEJBTEVOVElORSBEUi4KKwkJCQlTVUlURSAjMzA1CisJCQkJTkVXQVJLIENBIDk0NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1DQyAgIChoZXgpCQlESUdJVEFMIFNFUlZJQ0VTLCBMVEQuCiswMDIwQ0MgICAgIChiYXNlIDE2KQkJRElHSVRBTCBTRVJWSUNFUywgTFRELgorCQkJCTkgV0FZVEUgU1RSRUVUCisJCQkJQ09TSEFNIEhBTVBTSElSRQorCQkJCUVOR0xBTkQgUE82IDNCUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLUNEICAgKGhleCkJCUhZQlJJRCBORVRXT1JLUywgSU5DLgorMDAyMENEICAgICAoYmFzZSAxNikJCUhZQlJJRCBORVRXT1JLUywgSU5DLgorCQkJCTEwMjAxIEJVQkIgUk9BRAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNC00MTY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1DRSAgIChoZXgpCQlMT0dJQ0FMIERFU0lHTiBHUk9VUCwgSU5DLgorMDAyMENFICAgICAoYmFzZSAxNikJCUxPR0lDQUwgREVTSUdOIEdST1VQLCBJTkMuCisJCQkJNjMwMSBDSEFQRUwgSElMTCBST0FECisJCQkJUkFMRUlHSCBOQyAyNzYwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQ0YgICAoaGV4KQkJVEVTVCAmIE1FQVNVUkVNRU5UIFNZU1RFTVMgSU5DCiswMDIwQ0YgICAgIChiYXNlIDE2KQkJVEVTVCAmIE1FQVNVUkVNRU5UIFNZU1RFTVMgSU5DCisJCQkJMjA0NSBTSVRLQSBDT1VSVAorCQkJCUxPVkVMQU5EIENPIDgwNTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1EMCAgIChoZXgpCQlWRVJTQUxZTlggQ09SUE9SQVRJT04KKzAwMjBEMCAgICAgKGJhc2UgMTYpCQlWRVJTQUxZTlggQ09SUE9SQVRJT04KKwkJCQk4OTUwIENBUkxFWSBDSVJDTEUKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUQxICAgKGhleCkJCU1JQ1JPQ09NUFVURVIgU1lTVEVNUyAoTSkgU0ROLgorMDAyMEQxICAgICAoYmFzZSAxNikJCU1JQ1JPQ09NUFVURVIgU1lTVEVNUyAoTSkgU0ROLgorCQkJCTIzLTI1LCBKQUxBTiBKRUpBS0EgVFVKVUgKKwkJCQlUQU1BTiBNQUxVUkksIENIRVJBUyA1NTEwMCBLVUFMQSBMVU1QVVIKKwkJCQlNQUxBWVNJQQorCQkJCU1BTEFZU0lBCisKKzAwLTIwLUQyICAgKGhleCkJCVJBRCBEQVRBIENPTU1VTklDQVRJT05TLCBMVEQuCiswMDIwRDIgICAgIChiYXNlIDE2KQkJUkFEIERBVEEgQ09NTVVOSUNBVElPTlMsIExURC4KKwkJCQk4IEhBTkVDSE9TSEVUIFNUUkVFVAorCQkJCVRFTC1BVklWICA2OTcxMAorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0yMC1EMyAgIChoZXgpCQlPU1QgKE9VRVNUIFNUQU5EQVJEIFRFTEVNQVRJUVUKKzAwMjBEMyAgICAgKGJhc2UgMTYpCQlPU1QgKE9VRVNUIFNUQU5EQVJEIFRFTEVNQVRJUVUKKwkJCQlSVUUgRFUgQkFTIFZJTExBR0UKKwkJCQlCUCAxNTgsIFouSS4gU1VELUVTVCAzNTUxNSBDRVNTT04tU0VWSUdOCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTIwLUQ0ICAgKGhleCkJCUNBQkxFVFJPTiAtIFpFSVRUTkVUIElOQy4KKzAwMjBENCAgICAgKGJhc2UgMTYpCQlDQUJMRVRST04gLSBaRUlUVE5FVCBJTkMuCisJCQkJMzUgSU5EVVNUUklBTCBXQVkKKwkJCQlQLk8uIEJPWCA1MDA1CisJCQkJUk9IRVNURVIgTkggMDM4NjYtNTAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRDUgICAoaGV4KQkJVklQQSBHTUJICiswMDIwRDUgICAgIChiYXNlIDE2KQkJVklQQSBHTUJICisJCQkJV0VUVEVSS1JFVVogMjcKKwkJCQlELTkxMDU4IEVSTEFOR0VOCisJCQkJR0VSTUFOWQorCiswMC0yMC1ENiAgIChoZXgpCQlCUkVFWkVDT00KKzAwMjBENiAgICAgKGJhc2UgMTYpCQlCUkVFWkVDT00KKwkJCQlBVElESU0gVEVDSE5PTE9HSUNBTCBQSy1CTERHLjMKKwkJCQlURUwtQVZJViAgNjExMzEKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMjAtRDcgICAoaGV4KQkJSkFQQU4gTUlOSUNPTVBVVEVSIFNZU1RFTVMgQ08uLCBMdGQuCiswMDIwRDcgICAgIChiYXNlIDE2KQkJSkFQQU4gTUlOSUNPTVBVVEVSIFNZU1RFTVMgQ08uLCBMdGQuCisJCQkJMy0zMy0xOCBUQUtBSURPSElHQVNISQorCQkJCVNVR0lOQU1JLUtVCisJCQkJVE9LWU8gMTY4ICAKKwkJCQlKQVBBTgorCiswMC0yMC1EOCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMjBEOCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk0NDAxIEdyZWF0IEFtZXJpY2EgUGt3eS4KKwkJCQlTYW50YSBDbGFyYSBDQSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRDkgICAoaGV4KQkJUEFOQVNPTklDIFRFQ0hOT0xPR0lFUywgSU5DLi9NSUVDTy1VUworMDAyMEQ5ICAgICAoYmFzZSAxNikJCVBBTkFTT05JQyBURUNITk9MT0dJRVMsIElOQy4vTUlFQ08tVVMKKwkJCQkxNzAzIE4uIFJBTkRBTEwgUkQuCisJCQkJRUxHSU4gSUwgNjAxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLURBICAgKGhleCkJCUFsY2F0ZWwgTm9ydGggQW1lcmljYSBFU0QKKzAwMjBEQSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIE5vcnRoIEFtZXJpY2EgRVNECisJCQkJMjY4MDEgV2VzdCBBZ291cmEgUm9hZAorCQkJCUNBTEFCQVNBUyBDQSA5MTMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtREIgICAoaGV4KQkJWE5FVCBURUNITk9MT0dZLCBJTkMuCiswMDIwREIgICAgIChiYXNlIDE2KQkJWE5FVCBURUNITk9MT0dZLCBJTkMuCisJCQkJNDI2IFMuIEhJTExWSUVXIERSSVZFCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLURDICAgKGhleCkJCURFTlNJVFJPTiBUQUlXQU4gTFRELgorMDAyMERDICAgICAoYmFzZSAxNikJCURFTlNJVFJPTiBUQUlXQU4gTFRELgorCQkJCUtZT1dBIE5BTkFCQU5LQU4gNUYKKwkJCQkxLTExLTUgT01PUkktS0lUQSBPVEEtS1UsICBUT0tZTyAxNDMKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTIwLUREICAgKGhleCkJCUN5YmVydGVjIFB0eSBMdGQKKzAwMjBERCAgICAgKGJhc2UgMTYpCQlDeWJlcnRlYyBQdHkgTHRkCisJCQkJVW5pdCAxMSwgNDEgSGlnZ2luYm90aGFtIFJvYWQKKwkJCQlHbGFkZXN2aWxsZSBOU1cgMjExMQorCQkJCUFVU1RSQUxJQQorCiswMC0yMC1ERSAgIChoZXgpCQlKQVBBTiBESUdJVEFMIExBQk9SQVQnWSBDTy5MVEQKKzAwMjBERSAgICAgKGJhc2UgMTYpCQlKQVBBTiBESUdJVEFMIExBQk9SQVQnWSBDTy5MVEQKKwkJCQlKREwgS0FXQVNBS0kgUiAmIEQgQ0VOVEVSCisJCQkJMTAtMSBNSU5BTUktS1VST0tBV0EgQVNBTy1LVSwgS0FXQVNLQUtJLQorCQkJCUtBTkFHQVdBLUtFTiAgMjE1CisJCQkJSkFQQU4KKworMDAtMjAtREYgICAoaGV4KQkJS1lPU0FOIEVMRUNUUklDIE1GRy4gQ08uLCBMVEQuCiswMDIwREYgICAgIChiYXNlIDE2KQkJS1lPU0FOIEVMRUNUUklDIE1GRy4gQ08uLCBMVEQuCisJCQkJMi0yOSwgSEVJQU4tQ0hPLCBUU1VSVU1JLUtVCisJCQkJWU9LT0hBTUEsIDIzMAorCQkJCUpBUEFOCisKKzAwLTIwLUUwICAgKGhleCkJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jLgorMDAyMEUwICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jLgorCQkJCTc2MCBOb3J0aCBNYXJ5IEF2ZS4KKwkJCQlTdW5ueXZhbGUuIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1FMSAgIChoZXgpCQlBTEFNQVIgRUxFQ1RST05JQ1MKKzAwMjBFMSAgICAgKGJhc2UgMTYpCQlBTEFNQVIgRUxFQ1RST05JQ1MKKwkJCQk0ODkgRElWSVNJT04gU1RSRUVUCisJCQkJQ0FNUEJFTEwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUUyICAgKGhleCkJCUlORk9STUFUSU9OIFJFU09VUkNFIEVOR0lORUVSSU5HCiswMDIwRTIgICAgIChiYXNlIDE2KQkJSU5GT1JNQVRJT04gUkVTT1VSQ0UgRU5HSU5FRVJJTkcKKwkJCQk4MDI5IENPUlBPUkFURSBEUklWRQorCQkJCUJBTFRJTU9SRSBNRCAyMTIzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRTMgICAoaGV4KQkJTUNEIEtFTkNPTSBDT1JQT1JBVElPTgorMDAyMEUzICAgICAoYmFzZSAxNikJCU1DRCBLRU5DT00gQ09SUE9SQVRJT04KKwkJCQkyMDk1MCBDQVNUTEUgUk9DSyBST0FECisJCQkJTEFHVU5BIEJFQUNIIENBIDkyNjUxLTExMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUU0ICAgKGhleCkJCUhTSU5HIFRFQ0ggRU5URVJQUklTRSBDTy4sIExURAorMDAyMEU0ICAgICAoYmFzZSAxNikJCUhTSU5HIFRFQ0ggRU5URVJQUklTRSBDTy4sIExURAorCQkJCU5PLiAyLCBMQU5FIDEyOCwgU0VDLiAyCisJCQkJQ0hVTkcgU0hBTiBOLiBSRC4KKwkJCQlURUlQRUksICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLUU1ICAgKGhleCkJCUFQRVggREFUQSwgSU5DLgorMDAyMEU1ICAgICAoYmFzZSAxNikJCUFQRVggREFUQSwgSU5DLgorCQkJCTY2MjQgT1dFTlMgRFJJVkUKKwkJCQlQTEVBU0FOVE9OIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1FNiAgIChoZXgpCQlMSURLT1BJTkcgTUFDSElORSBUT09MUyBBQgorMDAyMEU2ICAgICAoYmFzZSAxNikJCUxJREtPUElORyBNQUNISU5FIFRPT0xTIEFCCisJCQkJQk9YIDkxMAorCQkJCTUzMSAxOSBMSURLT1BJTkcKKwkJCQlTV0VERU4KKworMDAtMjAtRTcgICAoaGV4KQkJQiZXIE5VQ0xFQVIgU0VSVklDRSBDT01QQU5ZCiswMDIwRTcgICAgIChiYXNlIDE2KQkJQiZXIE5VQ0xFQVIgU0VSVklDRSBDT01QQU5ZCisJCQkJU1BFQ0lBTCBQUk9EVUNUUyAmIElOVEVHLlNWQ1MuCisJCQkJMTU1IE1JTEwgUklER0UgUk9BRAorCQkJCUxZTkNIQlVSRyBWQSAyNDUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRTggICAoaGV4KQkJREFUQVRSRUsgQ09SUE9SQVRJT04KKzAwMjBFOCAgICAgKGJhc2UgMTYpCQlEQVRBVFJFSyBDT1JQT1JBVElPTgorCQkJCTQ1MDUgV1lMQU5EIERSSVZFCisJCQkJRUxLSEFSVCBJTiA0NjUxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRTkgICAoaGV4KQkJREFOVEVMCiswMDIwRTkgICAgIChiYXNlIDE2KQkJREFOVEVMCisJCQkJUC5PLiBCT1ggNTUwMTMKKwkJCQkyOTkxIE5PUlRIIEFSR1lMRSBBVkUuCisJCQkJRlJFU05PIENBIDkzNzI3LTEzODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUVBICAgKGhleCkJCUVGRklDSUVOVCBORVRXT1JLUywgSU5DLgorMDAyMEVBICAgICAoYmFzZSAxNikJCUVGRklDSUVOVCBORVRXT1JLUywgSU5DLgorCQkJCTQyMDEgU1BSSU5HIFZBTExFWSBST0FECisJCQkJU1VJVEUgIzEyMDAKKwkJCQlEQUxMQVMgVFggNzUyNDQtMzY2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRUIgICAoaGV4KQkJQ0lOQ0lOTkFUSSBNSUNST1dBVkUsIElOQy4KKzAwMjBFQiAgICAgKGJhc2UgMTYpCQlDSU5DSU5OQVRJIE1JQ1JPV0FWRSwgSU5DLgorCQkJCU9ORSBNSUNST1dBVkUgUExBWkEKKwkJCQlDSU5DSU5OQVRJIE9IIDQ1MjQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1FQyAgIChoZXgpCQlURUNIV0FSRSBTWVNURU1TIENPUlAuCiswMDIwRUMgICAgIChiYXNlIDE2KQkJVEVDSFdBUkUgU1lTVEVNUyBDT1JQLgorCQkJCSMxMDAgLSAxMjA1MSBIT1JTRVNIT0UgV0FZCisJCQkJUklDSE1PTkQsIEIuQy4gQ0FOQURBCisJCQkJVjdBIDRWNAorCQkJCUNBTkFEQQorCiswMC0yMC1FRCAgIChoZXgpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwMjBFRCAgICAgKGJhc2UgMTYpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQkzNjUgQ0xPVkVSTEVBRgorCQkJCUJBTERXSU4gUEFSSyBDQSA5MTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRUUgICAoaGV4KQkJR1RFQ0ggQ09SUE9SQVRJT04KKzAwMjBFRSAgICAgKGJhc2UgMTYpCQlHVEVDSCBDT1JQT1JBVElPTgorCQkJCTU1IFRFQ0hOT0xPR1kgV0FZCisJCQkJV0VTVCBHUkVFTldJQ0ggUkkgMDI4MTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUVGICAgKGhleCkJCVVTQyBDT1JQT1JBVElPTgorMDAyMEVGICAgICAoYmFzZSAxNikJCVVTQyBDT1JQT1JBVElPTgorCQkJCTYtNCwgT1NBS0kgMS1DSE9NRQorCQkJCVNISU5BR0FXQS1LVSBUT0tZTywKKwkJCQkxNDEgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0yMC1GMCAgIChoZXgpCQlVTklWRVJTQUwgTUlDUk9FTEVDVFJPTklDUyBDTy4KKzAwMjBGMCAgICAgKGJhc2UgMTYpCQlVTklWRVJTQUwgTUlDUk9FTEVDVFJPTklDUyBDTy4KKwkJCQkzLCAyN1RIIFJELiwgVEFJQ0hVTkcgSU5ELlBBUksKKwkJCQlUQUlDSFVOCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLUYxICAgKGhleCkJCUFMVE9TIElORElBIExJTUlURUQKKzAwMjBGMSAgICAgKGJhc2UgMTYpCQlBTFRPUyBJTkRJQSBMSU1JVEVECisJCQkJRC02MCwgT0tMSExBIElORFVTVFJJQUwKKwkJCQlBUkVBLCBQSEFTRSAxIE5FVyBERUxISSAtMTEwMDIwCisJCQkJSU5ESUEKKwkJCQlJTkRJQQorCiswMC0yMC1GMiAgIChoZXgpCQlPcmFjbGUgQ29ycG9yYXRpb24gCiswMDIwRjIgICAgIChiYXNlIDE2KQkJT3JhY2xlIENvcnBvcmF0aW9uIAorCQkJCTUwMCBPcmFjbGUgUGFya3dheQorCQkJCVJlZHdvb2QgU2hvcmVzIENBIDk1MDY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1GMyAgIChoZXgpCQlSQVlORVQgQ09SUE9SQVRJT04KKzAwMjBGMyAgICAgKGJhc2UgMTYpCQlSQVlORVQgQ09SUE9SQVRJT04KKwkJCQkxNTUgQ09OU1RJVFVUSU9OIERSSVZFCisJCQkJTUVOTE8gUEFSSyBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRjQgICAoaGV4KQkJU1BFQ1RSSVggQ09SUE9SQVRJT04KKzAwMjBGNCAgICAgKGJhc2UgMTYpCQlTUEVDVFJJWCBDT1JQT1JBVElPTgorCQkJCTEwNiBXSUxNT1QgUk9BRCwgU1VJVEUgMjUwCisJCQkJREVFUkZJRUxEIElMIDYwMDE1LTUxNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUY1ICAgKGhleCkJCVBBTkRBVEVMIEFHCiswMDIwRjUgICAgIChiYXNlIDE2KQkJUEFOREFURUwgQUcKKwkJCQlGQVNBTkVOV0VHIDI1CisJCQkJRC0yMjE0NSAgSEFNQlVSRworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLUY2ICAgKGhleCkJCU5FVCBURUsgIEFORCBLQVJMTkVULCBJTkMuCiswMDIwRjYgICAgIChiYXNlIDE2KQkJTkVUIFRFSyAgQU5EIEtBUkxORVQsIElOQy4KKwkJCQlMSVRUTEUgU1RSRUFNUworCQkJCVRIRSBBQkJPVFNCUk9PSywgQk9VUk5FIEVORCBCVUNLUywgU0w4IDUKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLUY3ICAgKGhleCkJCUNZQkVSREFUQSBDT1JQT1JBVElPTgorMDAyMEY3ICAgICAoYmFzZSAxNikJCUNZQkVSREFUQSBDT1JQT1JBVElPTgorCQkJCTMgSnVzdGluIENvdXJ0CisJCQkJTU9OVEVSRVkgQ0EgOTM5NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUY4ICAgKGhleCkJCUNBUlJFUkEgQ09NUFVURVJTLCBJTkMuCiswMDIwRjggICAgIChiYXNlIDE2KQkJQ0FSUkVSQSBDT01QVVRFUlMsIElOQy4KKwkJCQkyMzE4MSBWRVJEVUdPIERSSVZFLVNURS4jMTA1QQorCQkJCUxBR1VOQSBISUxMUyBDQSA5MjY1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRjkgICAoaGV4KQkJUEFSQUxJTksgTkVUV09SS1MsIElOQy4KKzAwMjBGOSAgICAgKGJhc2UgMTYpCQlQQVJBTElOSyBORVRXT1JLUywgSU5DLgorCQkJCTRGLCBOTy4gMjcsIFNFQy4zLCBQQVRFSCBSRC4KKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjAtRkEgICAoaGV4KQkJR0RFIFNZU1RFTVMsIElOQy4KKzAwMjBGQSAgICAgKGJhc2UgMTYpCQlHREUgU1lTVEVNUywgSU5DLgorCQkJCVAuTy4gQk9YIDg1NDY4IC0gQkxERy4jNjEKKwkJCQlTQU4gRElFR08gQ0EgOTIxODYtNTQ2OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRkIgICAoaGV4KQkJT0NURUwgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwMjBGQiAgICAgKGJhc2UgMTYpCQlPQ1RFTCBDT01NVU5JQ0FUSU9OUyBDT1JQLgorCQkJCTEwMDEgTVVSUEhZIFJBTkNIIFJECisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUZDICAgKGhleCkJCU1BVFJPWAorMDAyMEZDICAgICAoYmFzZSAxNikJCU1BVFJPWAorCQkJCTEwNTUgU1QuIFJFR0lTLAorCQkJCURPUlZBTCwgUVVFQkVDICBIOVAtMlQ0ICAKKwkJCQlDQU5BREEKKworMDAtMjAtRkQgICAoaGV4KQkJSVRWIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAyMEZEICAgICAoYmFzZSAxNikJCUlUViBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk2ODAwIE9XRU5TTU9VVEggQVZFLiAgIzIzMAorCQkJCUNBTk9HQSBQQVJLIENBIDkxMzAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1GRSAgIChoZXgpCQlUT1BXQVJFIElOQy4gLyBHUkFORCBDT01QVVRFUgorMDAyMEZFICAgICAoYmFzZSAxNikJCVRPUFdBUkUgSU5DLiAvIEdSQU5EIENPTVBVVEVSCisJCQkJQ09SUE9SQVRJT04KKwkJCQlCMSwgTk8uIDksIExBTkUgNTAgU0VDVElPTiAzLCBOQU4gS0FORyBSCisJCQkJVEFJUEVJICBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLUZGICAgKGhleCkJCVNZTU1FVFJJQ0FMIFRFQ0hOT0xPR0lFUworMDAyMEZGICAgICAoYmFzZSAxNikJCVNZTU1FVFJJQ0FMIFRFQ0hOT0xPR0lFUworCQkJCTUwMCBIVU5UTUFSIFBBUksgRFJJVkUKKwkJCQlIRVJORE9OIFZBIDIyMDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0wMCAgIChoZXgpCQlHZW1UZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMjEwMCAgICAgKGJhc2UgMTYpCQlHZW1UZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4xIEplbiBBaSBSb2FkLCBIc2luY2h1IEluZHVzdHJpYWwgUGFyaywKKwkJCQlIdWtvdSwgSHNpbmNodSAzMDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIxLTAxICAgKGhleCkJCUFwbGljYWNpb25lcyBFbGVjdHJvbmljYXMgUXVhc2FyIChBRVEpCiswMDIxMDEgICAgIChiYXNlIDE2KQkJQXBsaWNhY2lvbmVzIEVsZWN0cm9uaWNhcyBRdWFzYXIgKEFFUSkKKwkJCQlDL1JleSBQYXN0b3IgNDAKKwkJCQlQb2xpZ29ubyBJbmR1c3RyaWFsIEJ1dGFycXVlCisJCQkJTGVnYW5lcyBNYWRyaWQgMjg5MTQKKwkJCQlTUEFJTgorCiswMC0yMS0wMiAgIChoZXgpCQlVcGRhdGVMb2dpYyBJbmMuCiswMDIxMDIgICAgIChiYXNlIDE2KQkJVXBkYXRlTG9naWMgSW5jLgorCQkJCTIgV2lsbG93IFN0cmVldCwgU3VpdGUgMTAxCisJCQkJU291dGhib3JvdWdoIE1BIDAxNzQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0wMyAgIChoZXgpCQlHSEkgRWxlY3Ryb25pY3MsIExMQworMDAyMTAzICAgICAoYmFzZSAxNikJCUdISSBFbGVjdHJvbmljcywgTExDCisJCQkJMzU1NTUgR2FyZmllbGQgUmQuCisJCQkJU3VpdGUgNEIKKwkJCQlDbGludG9uIFRvd25zaGlwIE1JIDQ4MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0wNCAgIChoZXgpCQlHaWdhc2V0IENvbW11bmljYXRpb25zIEdtYkgKKzAwMjEwNCAgICAgKGJhc2UgMTYpCQlHaWdhc2V0IENvbW11bmljYXRpb25zIEdtYkgKKwkJCQlGcmFua2Vuc3RyYXNzZSAyCisJCQkJNDYzOTUgQm9jaG9sdCAKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLTA1ICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50CiswMDIxMDUgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQKKwkJCQk3MDEgRS4gTWlkZGxlZmllbGQgUmQuCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMDYgICAoaGV4KQkJUklNIFRlc3RpbmcgU2VydmljZXMKKzAwMjEwNiAgICAgKGJhc2UgMTYpCQlSSU0gVGVzdGluZyBTZXJ2aWNlcworCQkJCTQ0MCBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9OIE4yTCA1UjkKKwkJCQlDQU5BREEKKworMDAtMjEtMDcgICAoaGV4KQkJU2Vvd29uaW50ZWNoIENvIEx0ZC4KKzAwMjEwNyAgICAgKGJhc2UgMTYpCQlTZW93b25pbnRlY2ggQ28gTHRkLgorCQkJCTY4OS00NyBHZXVtamVvbmdkb25nCisJCQkJR3VucG9zaSBLeW91bmdraWRvIDQzNi04NjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtMDggICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjEwOCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjEtMDkgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjEwOSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjEtMEEgICAoaGV4KQkJYnlkOnNpZ24gQ29ycG9yYXRpb24KKzAwMjEwQSAgICAgKGJhc2UgMTYpCQlieWQ6c2lnbiBDb3Jwb3JhdGlvbgorCQkJCTItMTAtNiBUc3VraWppCisJCQkJQlBTIFNRVUFSRSAyRgorCQkJCUNodW8ta3UgVG9reW8gMTA0LTAwNDUKKwkJCQlKQVBBTgorCiswMC0yMS0wQiAgIChoZXgpCQlHRU1JTkkgVFJBWkUgUkZJRCBQVlQuIExURC4KKzAwMjEwQiAgICAgKGJhc2UgMTYpCQlHRU1JTkkgVFJBWkUgUkZJRCBQVlQuIExURC4KKwkJCQkxLCBEUi4gUkFOR0EgUk9BRAorCQkJCUFMV0FSUEVUCisJCQkJQ0hFTk5BSSBUQU1JTE5BRFUgNjAwMDE4CisJCQkJSU5ESUEKKworMDAtMjEtMEMgICAoaGV4KQkJQ3ltdGVjIFN5c3RlbXMsIEluYy4KKzAwMjEwQyAgICAgKGJhc2UgMTYpCQlDeW10ZWMgU3lzdGVtcywgSW5jLgorCQkJCTEwODQ1IE9saXZlIEJvdWxldmVhcmQKKwkJCQlTdWl0ZSAzMDYKKwkJCQlTdCBMb3VpcyBNTyA2MzE0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMEQgICAoaGV4KQkJU0FNU0lOIElOTk9URUMKKzAwMjEwRCAgICAgKGJhc2UgMTYpCQlTQU1TSU4gSU5OT1RFQworCQkJCVNBUklZVU5ET05HIElMU0FORE9ORy1HVQorCQkJCTI1Mi0yMworCQkJCUdPWUFORyBLWVVOR0dJIDQxMTUzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS0wRSAgIChoZXgpCQlPcnBhayBTeXN0ZW1zIEwuVC5ELgorMDAyMTBFICAgICAoYmFzZSAxNikJCU9ycGFrIFN5c3RlbXMgTC5ULkQuCisJCQkJMzEgTGVjaGkgU3QKKwkJCQlCbmVpIC0gQnJhayAgNTExMTQKKwkJCQlJU1JBRUwKKworMDAtMjEtMEYgICAoaGV4KQkJQ2Vybml1bSBDb3JwCiswMDIxMEYgICAgIChiYXNlIDE2KQkJQ2Vybml1bSBDb3JwCisJCQkJMTk0MyBJc2FhYyBOZXd0b24gU3EKKwkJCQlTdWl0ZSAyMDAKKwkJCQlSZXN0b24gVkEgMjAxOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTEwICAgKGhleCkJCUNsZWFyYm94IFN5c3RlbXMKKzAwMjExMCAgICAgKGJhc2UgMTYpCQlDbGVhcmJveCBTeXN0ZW1zCisJCQkJVW5pdCAxMSwgMTItMTQgQmVhdW1vbnQgUm9hZAorCQkJCU10IEt1cmluZy1HYWkgTlNXIDIwODAKKwkJCQlBVVNUUkFMSUEKKworMDAtMjEtMTEgICAoaGV4KQkJVW5pcGhvbmUgSW5jLgorMDAyMTExICAgICAoYmFzZSAxNikJCVVuaXBob25lIEluYy4KKwkJCQk3OTUgTWFpbiBTdHJlZXQKKwkJCQlIYWxmIE1vb24gQmF5IENBIDk0MDE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0xMiAgIChoZXgpCQlXSVNDT00gU1lTVEVNIENPLixMVEQKKzAwMjExMiAgICAgKGJhc2UgMTYpCQlXSVNDT00gU1lTVEVNIENPLixMVEQKKwkJCQkxMDAgSmlhbmdqdW4gUm9hZCxKaWFuZ25pbmcsCisJCQkJTmFuamluZyAgMjExMTAwCisJCQkJQ0hJTkEKKworMDAtMjEtMTMgICAoaGV4KQkJUGFkdGVjIFMvQQorMDAyMTEzICAgICAoYmFzZSAxNikJCVBhZHRlYyBTL0EKKwkJCQlSb2FkIENhbXBpbmFzIE1vZ2ktTWlyaW0ga20gMTE4LDUKKwkJCQlDYW1waW5hcyBT428gUGF1bG8gMTMwODYtOTAyCisJCQkJQlJBWklMCisKKzAwLTIxLTE0ICAgKGhleCkJCUh5bGFiIFRlY2hub2xvZ3kgSW5jLgorMDAyMTE0ICAgICAoYmFzZSAxNikJCUh5bGFiIFRlY2hub2xvZ3kgSW5jLgorCQkJCTE1Ri0yLixOby44NzIsSmhvbmdqaGVuZyBSZC4KKwkJCQlKaG9uZ2hlIENpdHksIFRhaXBlaSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIxLTE1ICAgKGhleCkJCVBIWVdFIFN5c3RlbWUgR21iSCAmIENvLiBLRworMDAyMTE1ICAgICAoYmFzZSAxNikJCVBIWVdFIFN5c3RlbWUgR21iSCAmIENvLiBLRworCQkJCVJvYmVydC1Cb3NjaC1CcmVpdGUgMTAKKwkJCQlHb2V0dGluZ2VuIE5pZWRlcnNhY2hzZW4gMzcwNzkKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLTE2ICAgKGhleCkJCVRyYW5zY29uIEVsZWN0cm9uaWMgU3lzdGVtcywgc3BvbC4gcyByLiBvLgorMDAyMTE2ICAgICAoYmFzZSAxNikJCVRyYW5zY29uIEVsZWN0cm9uaWMgU3lzdGVtcywgc3BvbC4gcyByLiBvLgorCQkJCUt2YXBpbG92YSAyMTMzCisJCQkJRnJ5ZGVrLU1pc3RlayAgNzM4MDIKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0yMS0xNyAgIChoZXgpCQlUZWxsb3JkCiswMDIxMTcgICAgIChiYXNlIDE2KQkJVGVsbG9yZAorCQkJCUd1cm9ndSBHdXJvZG9uZyAxNzAtNSBXb29saW0gZS1CaXogQ2VudGVyIDcwOQorCQkJCVNlb3VsICAxNTItMDUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTE4ICAgKGhleCkJCUF0aGVuYSBUZWNoLCBJbmMuCiswMDIxMTggICAgIChiYXNlIDE2KQkJQXRoZW5hIFRlY2gsIEluYy4KKwkJCQkzNzIxIE1hY2ludG9zaCBEcgorCQkJCVZpbnQgSGlsbCBUZWNoIFBhcmsKKwkJCQlXYXJyZW50b24gVkEgMjAxODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTE5ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryby1NZWNoYW5pY3MKKzAwMjExOSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm8tTWVjaGFuaWNzCisJCQkJMzE0LCBNZXRhbiAzIGRvbmcKKwkJCQlTdXdvbiBLeXVuZy1naSBkbyA0NDMtNzQzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTFBICAgKGhleCkJCUxJblRlY2ggQ29ycG9yYXRpb24KKzAwMjExQSAgICAgKGJhc2UgMTYpCQlMSW5UZWNoIENvcnBvcmF0aW9uCisJCQkJS3Jhc25va2F6YXJtZW5uYXlhIHN0LiwgMTIKKwkJCQlNb3Njb3cgIDExMTI1MAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yMS0xQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIxMUIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMUMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMTFDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTFEICAgKGhleCkJCURhdGFsaW5lIEFCCiswMDIxMUQgICAgIChiYXNlIDE2KQkJRGF0YWxpbmUgQUIKKwkJCQlLYXRyaW5lZGFsc2dhdGFuIDUzCisJCQkJQk9SxVMgIFMtNTA0NTEKKwkJCQlTV0VERU4KKworMDAtMjEtMUUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjExRSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTFGICAgKGhleCkJCVNISU5TVU5HIERFTFRBVEVDSCBDTy4sTFRELgorMDAyMTFGICAgICAoYmFzZSAxNikJCVNISU5TVU5HIERFTFRBVEVDSCBDTy4sTFRELgorCQkJCTQ0LTEwCisJCQkJVU5HTkFNLURPTkcKKwkJCQlDSEFOR1dPTi1DSVRZIEtZVU5HTkFNLURPIDY0MS0yOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtMjAgICAoaGV4KQkJU2VxdWVsIFRlY2hub2xvZ2llcworMDAyMTIwICAgICAoYmFzZSAxNikJCVNlcXVlbCBUZWNobm9sb2dpZXMKKwkJCQkyOTUxIENsZXZlbGFuZCBBdmUgTgorCQkJCVJvc2V2aWxsZSBNTiA1NTExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMjEgICAoaGV4KQkJVlJtYWdpYyBHbWJICiswMDIxMjEgICAgIChiYXNlIDE2KQkJVlJtYWdpYyBHbWJICisJCQkJQXVndXN0YWFubGFnZSAzMgorCQkJCU1hbm5oZWltIEJXIDY4MTY1CisJCQkJR0VSTUFOWQorCiswMC0yMS0yMiAgIChoZXgpCQlDaGlwLXBybyBMdGQuCiswMDIxMjIgICAgIChiYXNlIDE2KQkJQ2hpcC1wcm8gTHRkLgorCQkJCTVGLi00LCBOby42MywgU2l3ZWkgUmQuLCBOb3J0aCBEaXN0cmljdCwKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIxLTIzICAgKGhleCkJCUFlcm9zYXQgQXZpb25pY3MKKzAwMjEyMyAgICAgKGJhc2UgMTYpCQlBZXJvc2F0IEF2aW9uaWNzCisJCQkJNjIgU3RhdGUgUmQuCisJCQkJMTAxQSBTdWl0ZSAyQgorCQkJCUFtaGVyc3QgTkggMDMwMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTI0ICAgKGhleCkJCU9wdG9zIFBsYworMDAyMTI0ICAgICAoYmFzZSAxNikJCU9wdG9zIFBsYworCQkJCVF1ZWVuc2ZlcnJ5IEhvdXNlCisJCQkJQ2FybmVnaWUgQnVzaW5lc3MgQ2FtcHVzCisJCQkJRHVuZmVybWxpbmUgRmlmZSBLWTExIDhHUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIxLTI1ICAgKGhleCkJCUtVSyBKRSBUT05HIFNISU4gQ28uLExURAorMDAyMTI1ICAgICAoYmFzZSAxNikJCUtVSyBKRSBUT05HIFNISU4gQ28uLExURAorCQkJCTQ3Ni0zCisJCQkJSmFrSmVvbi1Eb25nLAorCQkJCUluY2hlb24gS3dhbmd5b3VrLVNpIDQwNy0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtMjYgICAoaGV4KQkJU2hlbnpoZW4gVG9yY2ggRXF1aXBtZW50IENvLiwgTHRkLgorMDAyMTI2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFRvcmNoIEVxdWlwbWVudCBDby4sIEx0ZC4KKwkJCQlGbG9vciA1LCBCbG9jayAzLCBMaW1pbmcgSW5kdXN0cmlhbCBEaXN0cmljdCwgWmhvbmdzaGFueXVhbiBSb2FkLCBOYW5zaGFuLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTIKKwkJCQlDSElOQQorCiswMC0yMS0yNyAgIChoZXgpCQlUUC1MSU5LIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDIxMjcgICAgIChiYXNlIDE2KQkJVFAtTElOSyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCVNvdXRoIEJ1aWxkaW5nLCBOby41IEtleXVhbiBSb2FkLCBDZW50cmFsIFpvbmUsCisJCQkJU2NpZW5jZSAmIFRlY2hub2xvZ3kgUGFyayxOYW5zaGFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzAwLTIxLTI4ICAgKGhleCkJCU9yYWNsZSBDb3Jwb3JhdGlvbgorMDAyMTI4ICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbgorCQkJCTE3IE5ldHdvcmsgQ2lyY2xlCisJCQkJQnVpbGRpbmcgMTcsIFVNUEsxNy0xMzEKKwkJCQlNZW5sbyBQYXJrIENBIDk1MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0yOSAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzAwMjEyOSAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTJBICAgKGhleCkJCUF1ZGlvdm94IENvcnBvcmF0aW9uCiswMDIxMkEgICAgIChiYXNlIDE2KQkJQXVkaW92b3ggQ29ycG9yYXRpb24KKwkJCQkxNTAgTWFyY3VzIEJsdmQKKwkJCQlIYXVwcGF1Z2UgTlkgMTE3ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTJCICAgKGhleCkJCU1TQSBBdWVyCiswMDIxMkIgICAgIChiYXNlIDE2KQkJTVNBIEF1ZXIKKwkJCQlUaGllbWFubnN0ci4gMQorCQkJCUJlcmxpbiAgMTIwNTkKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLTJDICAgKGhleCkJCVNlbUluZGlhIFN5c3RlbSBQcml2YXRlIExpbWl0ZWQKKzAwMjEyQyAgICAgKGJhc2UgMTYpCQlTZW1JbmRpYSBTeXN0ZW0gUHJpdmF0ZSBMaW1pdGVkCisJCQkJTm8uIDExMDYvOSwgQS5NIEluZHVzdHJpYWwgRXN0YXRlLCBHYXJ2ZWJoYXZpcGFseWEKKwkJCQk3dGggbWlsZSwgSG9zdXIgUm9hZAorCQkJCUJhbmdhbG9yZSBLYXJuYXRha2EgNTYwIDA2OAorCQkJCUlORElBCisKKzAwLTIxLTJEICAgKGhleCkJCVNDSU1PTEVYIENPUlBPUkFUSU9OCiswMDIxMkQgICAgIChiYXNlIDE2KQkJU0NJTU9MRVggQ09SUE9SQVRJT04KKwkJCQkyNDMwLCBTYWlqb3UsIFNob3dhLWNobworCQkJCU5ha2Frb21hLWd1biwgWWFtYW5hc2hpICA0MDktMzg2NgorCQkJCUpBUEFOCisKKzAwLTIxLTJFICAgKGhleCkJCWRyZXNkZW4tZWxla3Ryb25paworMDAyMTJFICAgICAoYmFzZSAxNikJCWRyZXNkZW4tZWxla3Ryb25paworCQkJCUdsYXNld2FsZHRzdHJh32UgMjIKKwkJCQlEcmVzZGVuIFNheG9ueSBELTAxMjc3CisJCQkJR0VSTUFOWQorCiswMC0yMS0yRiAgIChoZXgpCQlQaG9lYmUgTWljcm8gSW5jLgorMDAyMTJGICAgICAoYmFzZSAxNikJCVBob2ViZSBNaWNybyBJbmMuCisJCQkJNDc2MDYgS2F0byBSZAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTMwICAgKGhleCkJCUtlaWNvIEhpZ2h0ZWNoIEluYy4KKzAwMjEzMCAgICAgKGJhc2UgMTYpCQlLZWljbyBIaWdodGVjaCBJbmMuCisJCQkJQWNlIHR3aW4gdG93ZXIgSSwgMTJ0aCBGbC4KKwkJCQkyMTItMSwgR3Vyby1kb25nLCBndXJvLWd1CisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtMzEgICAoaGV4KQkJQmx5bmtlIEluYy4KKzAwMjEzMSAgICAgKGJhc2UgMTYpCQlCbHlua2UgSW5jLgorCQkJCTEzMyBSaWNobW9uZCBTdC4gV2VzdAorCQkJCVN1aXRlIDYwMAorCQkJCVRvcm9udG8gT250YXJpbyBNNUggMkwzCisJCQkJQ0FOQURBCisKKzAwLTIxLTMyICAgKGhleCkJCU1hc3RlcmNsb2NrLCBJbmMuCiswMDIxMzIgICAgIChiYXNlIDE2KQkJTWFzdGVyY2xvY2ssIEluYy4KKwkJCQkyNDg0IFdlc3QgQ2xheSBTdC4KKwkJCQlTdC4gQ2hhcmxlcyBNTyA2MzMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMzMgICAoaGV4KQkJQnVpbGRpbmcgQiwgSW5jCiswMDIxMzMgICAgIChiYXNlIDE2KQkJQnVpbGRpbmcgQiwgSW5jCisJCQkJMTAwMCBOVyA2NXRoIFN0cmVldCwgU3VpdGUgMzAwCisJCQkJRnQuIExhdWRlcmRhbGUgRkwgMzMzMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTM0ICAgKGhleCkJCUJyYW5keXdpbmUgQ29tbXVuaWNhdGlvbnMKKzAwMjEzNCAgICAgKGJhc2UgMTYpCQlCcmFuZHl3aW5lIENvbW11bmljYXRpb25zCisJCQkJMTE1MyBXYXJuZXIgQXZlCisJCQkJVHVzdGluIENBIDkyNzgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0zNSAgIChoZXgpCQlBTENBVEVMLUxVQ0VOVAorMDAyMTM1ICAgICAoYmFzZSAxNikJCUFMQ0FURUwtTFVDRU5UCisJCQkJUmFtaXJleiBkZSBQcmFkbyA1CisJCQkJTWFkcmlkICAyODA0NQorCQkJCVNQQUlOCisKKzAwLTIxLTM2ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIxMzYgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gVVMgSGlnaHdheSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMzcgICAoaGV4KQkJQmF5IENvbnRyb2xzLCBMTEMKKzAwMjEzNyAgICAgKGJhc2UgMTYpCQlCYXkgQ29udHJvbHMsIExMQworCQkJCTY1MjggV2VhdGhlcmZpZWxkIEN0CisJCQkJTWF1bWVlIE9IIDQzNTM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0zOCAgIChoZXgpCQlDZXBoZWlkCiswMDIxMzggICAgIChiYXNlIDE2KQkJQ2VwaGVpZAorCQkJCTkwNCBDYXJpYmJlYW4gRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTM5ICAgKGhleCkJCUVzY2hlcmxvZ2ljIEluYy4KKzAwMjEzOSAgICAgKGJhc2UgMTYpCQlFc2NoZXJsb2dpYyBJbmMuCisJCQkJMTQ4MSBSb3NlYmFuayBSZC4KKwkJCQlQaWNrZXJpbmcgT250YXJpbyBMMVYgMVAzCisJCQkJQ0FOQURBCisKKzAwLTIxLTNBICAgKGhleCkJCVdpbmNoZXN0ZXIgU3lzdGVtcyBJbmMuCiswMDIxM0EgICAgIChiYXNlIDE2KQkJV2luY2hlc3RlciBTeXN0ZW1zIEluYy4KKwkJCQkxMDEgQmlsbGVyaWNhIEF2ZW51ZQorCQkJCUJsZGcgNSBzdWl0ZSAxMDEKKwkJCQlCaWxsZXJpY2EsIE1BIDAxODYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0zQiAgIChoZXgpCQlCZXJrc2hpcmUgUHJvZHVjdHMsIEluYworMDAyMTNCICAgICAoYmFzZSAxNikJCUJlcmtzaGlyZSBQcm9kdWN0cywgSW5jCisJCQkJUE8gQm94IDI4MTkKKwkJCQlDdW1taW5nIEdBIDMwMDI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0zQyAgIChoZXgpCQlBbGlwaENvbQorMDAyMTNDICAgICAoYmFzZSAxNikJCUFsaXBoQ29tCisJCQkJMTUwIEV4ZWN1dGl2ZSBQYXJrIEJsdmQKKwkJCQlTdWl0ZSA0NTUwCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtM0QgICAoaGV4KQkJQ2VybWV0ZWsgTWljcm9lbGVjdHJvbmljcywgSW5jLgorMDAyMTNEICAgICAoYmFzZSAxNikJCUNlcm1ldGVrIE1pY3JvZWxlY3Ryb25pY3MsIEluYy4KKwkJCQkzNzQgVHVycXVvaXNlIFN0cmVldAorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0zRSAgIChoZXgpCQlUb21Ub20KKzAwMjEzRSAgICAgKGJhc2UgMTYpCQlUb21Ub20KKwkJCQlPb3N0ZXJkb2tzc3RyYWF0IDExNAorCQkJCUFtc3RlcmRhbSBOb3J0aCBIb2xsYW5kIDEwMTEgREsKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMS0zRiAgIChoZXgpCQlBLVRlYW0gVGVjaG5vbG9neSBMdGQuCiswMDIxM0YgICAgIChiYXNlIDE2KQkJQS1UZWFtIFRlY2hub2xvZ3kgTHRkLgorCQkJCVJtLiAxNjA4LCAxNi9GLiwgTWV0cm9wb2xlIFNxdWFyZSwKKwkJCQkyIE9uIFlpdSBTdC4sIFNoYXRpbiwKKwkJCQlOZXcgVGVycml0b3JpZXMsICAKKwkJCQlIT05HIEtPTkcKKworMDAtMjEtNDAgICAoaGV4KQkJRU4gVGVjaG5vbG9naWVzIEluYy4KKzAwMjE0MCAgICAgKGJhc2UgMTYpCQlFTiBUZWNobm9sb2dpZXMgSW5jLgorCQkJCUdldW1ib2sgQmxkZy4gOUYsIEJhbmQteWktZG9uZyA0NS0yLCBTb25ncGEtZ3UKKwkJCQlTZW91bCAgMTM4LTgyOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS00MSAgIChoZXgpCQlSQURMSVZFCiswMDIxNDEgICAgIChiYXNlIDE2KQkJUkFETElWRQorCQkJCTQgSGFuZWNob3NoZXQgU3QuCisJCQkJVGVsIEF2aXYgIDY5NzEwCisJCQkJSVNSQUVMCisKKzAwLTIxLTQyICAgKGhleCkJCUFkdmFuY2VkIENvbnRyb2wgU3lzdGVtcyBkb28KKzAwMjE0MiAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBDb250cm9sIFN5c3RlbXMgZG9vCisJCQkJQnVsZXZhciBab3JhbmEgRGppbmRqaWNhIDhhCisJCQkJQmVsZ3JhZGUgU2VyYmlhIDExMDcwCisKKzAwLTIxLTQzICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIxNDMgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS00NCAgIChoZXgpCQlTUyBUZWxlY29tcworMDAyMTQ0ICAgICAoYmFzZSAxNikJCVNTIFRlbGVjb21zCisJCQkJMjMgQm90aGEgQXZlbnVlCisJCQkJTHl0dGVsdG9uIE1hbm9yCisJCQkJQ2VudHVyaW9uIEdhdXRlbmcgMDE0MAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0yMS00NSAgIChoZXgpCQlTZW1wdGlhbiBUZWNobm9sb2dpZXMgTHRkLgorMDAyMTQ1ICAgICAoYmFzZSAxNikJCVNlbXB0aWFuIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJTm8uIDgwOSwgIFRvd2VyIEIsIFNoaSBKaSBLZSBNYW8KKwkJCQlOby4gNjYgUmQuIFpob25nZ3VhbiBDdW4gRG9uZworCQkJCUJlaWppbmcgIDEwMDE5MAorCQkJCUNISU5BCisKKzAwLTIxLTQ2ICAgKGhleCkJCVNDSSBUZWNobm9sb2d5CiswMDIxNDYgICAgIChiYXNlIDE2KQkJU0NJIFRlY2hub2xvZ3kKKwkJCQlQT0IgMTAwMAorCQkJCUh1bnRzdmlsbGUgQUwgMzU4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTQ3ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyMTQ3ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTIxLTQ4ICAgKGhleCkJCUthY28gU29sYXIgS29yZWEKKzAwMjE0OCAgICAgKGJhc2UgMTYpCQlLYWNvIFNvbGFyIEtvcmVhCisJCQkJQ2h1bmctd29uLWt1IFNhbmctZGVhLXdvbi1kb25nIDMzMy0xCisJCQkJU29uZ25hbSBLeXVuZy1raWRvIDQ2Mi04MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtNDkgICAoaGV4KQkJQ2hpbmEgRGFoZW5nIEdyb3VwICxJbmMuCiswMDIxNDkgICAgIChiYXNlIDE2KQkJQ2hpbmEgRGFoZW5nIEdyb3VwICxJbmMuCisJCQkJMTJGIERhaGVuZyBTY2llbmNlICYgVGVjaG5vbG9neSBUb3dlciAsTk8uMyBTdXpob3UgU3RyLgorCQkJCUJlaWppbmcgIDEwMDA4MAorCQkJCUNISU5BCisKKzAwLTIxLTRBICAgKGhleCkJCVBpeGVsIFZlbG9jaXR5LCBJbmMKKzAwMjE0QSAgICAgKGJhc2UgMTYpCQlQaXhlbCBWZWxvY2l0eSwgSW5jCisJCQkJMzkxNyBSZXNlYXJjaCBQYXJrIERyLgorCQkJCVN1aXRlIEI3CisJCQkJQW5uIEFyYm9yIE1JIDQ4MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS00QiAgIChoZXgpCQlTaGVuemhlbiBIQU1QIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLixMdGQKKzAwMjE0QiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBIQU1QIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlOby4zMDItMzAzLDMgRmxvb3IsRGlzdHJpY3QgQSxUQ0wgVG93ZXIsR2FveGluIE5hbiBZaSBSb2FkLE5hblNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjEtNEMgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPTklDUyBDTy4sIExURC4KKzAwMjE0QyAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCTQxNiwgTUVUQU4tM0RPTkcsCisJCQkJWU9VTkdUT05HLUdVCisJCQkJU1VXT04gS1lVTkdLSS1ETyA0NDItNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTREICAgKGhleCkJCUd1YW5nemhvdSBTa3l0b25lIFRyYW5zbWlzc2lvbiBUZWNobm9sb2d5IENvbS4gTHRkLgorMDAyMTREICAgICAoYmFzZSAxNikJCUd1YW5nemhvdSBTa3l0b25lIFRyYW5zbWlzc2lvbiBUZWNobm9sb2d5IENvbS4gTHRkLgorCQkJCTMvRiBXZXN0LCBCbG9jayA0LCBIdWFuZ3pob3UKKwkJCQlJbmR1c3RyaWFsIFBhcmssIENoZWJlaSBSb2FkLgorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgNTEwNjYwCisJCQkJQ0hJTkEKKworMDAtMjEtNEUgICAoaGV4KQkJR1MgWXVhc2EgUG93ZXIgU3VwcGx5IEx0ZC4KKzAwMjE0RSAgICAgKGJhc2UgMTYpCQlHUyBZdWFzYSBQb3dlciBTdXBwbHkgTHRkLgorCQkJCTEsIElub2JhbmJhLWNobywgTmlzaGlub3NobywgS2lzc2hvaW4sIE1pbmFtaS1rdSwKKwkJCQlLeW90byAgNjAxLTg1MjAKKwkJCQlKQVBBTgorCiswMC0yMS00RiAgIChoZXgpCQlBTFBTIEVsZWN0cmljIENvLiwgTHRkCiswMDIxNEYgICAgIChiYXNlIDE2KQkJQUxQUyBFbGVjdHJpYyBDby4sIEx0ZAorCQkJCTEtMi0xLCBPa2lub3VjaGkKKwkJCQlTb21hIGNpdHkgRnVrdXNoaW1hIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMjEtNTAgICAoaGV4KQkJRVlFVklFVyBFTEVDVFJPTklDUworMDAyMTUwICAgICAoYmFzZSAxNikJCUVZRVZJRVcgRUxFQ1RST05JQ1MKKwkJCQkzIEZsb29yLCBOby4gODYsIEt1bmcgWWVoIDMyIFJvYWQKKwkJCQlUQUlDSFVORyAgNDA3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMS01MSAgIChoZXgpCQlNaWxsaW5ldCBDby4sIEx0ZC4KKzAwMjE1MSAgICAgKGJhc2UgMTYpCQlNaWxsaW5ldCBDby4sIEx0ZC4KKwkJCQkyRiwgV2VzdCBCdWlsZGluZywgSVQgVmVudHVyZSBUb3dlciwgNzgsIEdhcmFrYm9uLURvbmcKKwkJCQlTb25ncGEtZ3UgU2VvdWwgMTM4LTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS01MiAgIChoZXgpCQlHZW5lcmFsIFNhdGVsbGl0ZSBSZXNlYXJjaCAmIERldmVsb3BtZW50IExpbWl0ZWQKKzAwMjE1MiAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIFNhdGVsbGl0ZSBSZXNlYXJjaCAmIERldmVsb3BtZW50IExpbWl0ZWQKKwkJCQlMaXQuICJFIiwgYnVpbGRpbmcgMiwgNCBOb3ZvbGFkb3poc2theWEgc3RyCisJCQkJU2FpbnQgUGV0ZXJzYnVyZyAgMTk3MTEwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTIxLTUzICAgKGhleCkJCVNlYU1pY3JvIEluYy4KKzAwMjE1MyAgICAgKGJhc2UgMTYpCQlTZWFNaWNybyBJbmMuCisJCQkJMzI1MCBKYXkgU3RyZWV0CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTU0ICAgKGhleCkJCUQtVEFDUSBTb2x1dGlvbnMgTHRkCiswMDIxNTQgICAgIChiYXNlIDE2KQkJRC1UQUNRIFNvbHV0aW9ucyBMdGQKKwkJCQlKYW1lcyBXYXR0IEJ1aWxkaW5nCisJCQkJU0VUUAorCQkJCUVhc3QgS2lsYnJpZGUgTGFuYXJrc2hpcmUgRzc1IDBRRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIxLTU1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjE1NSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS01NiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIxNTYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNTcgICAoaGV4KQkJTmF0aW9uYWwgRGF0YWNhc3QsIEluYy4KKzAwMjE1NyAgICAgKGJhc2UgMTYpCQlOYXRpb25hbCBEYXRhY2FzdCwgSW5jLgorCQkJCTIxMDAgQ3J5c3RhbCBEcml2ZSwgU3VpdGUgNzUwCisJCQkJQXJsaW5ndG9uIFZBIDIyMjAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS01OCAgIChoZXgpCQlTdHlsZSBGbHlpbmcgVGVjaG5vbG9neSBDby4KKzAwMjE1OCAgICAgKGJhc2UgMTYpCQlTdHlsZSBGbHlpbmcgVGVjaG5vbG9neSBDby4KKwkJCQkyMi9GLEN5YmVyIFRvd2VyIEIsTm8uMiBaaG9uZyBHdWFuIEN1biBTb3V0aCBTdHJlZXQsSGFpZGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwODYKKwkJCQlDSElOQQorCiswMC0yMS01OSAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCiswMDIxNTkgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTi4gTWF0aGlsZGEgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS01QSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMjE1QSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAyCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNUIgICAoaGV4KQkJSW5vdGl2ZQorMDAyMTVCICAgICAoYmFzZSAxNikJCUlub3RpdmUKKwkJCQlEZSBQaW5ja2FydCA1NAorCQkJCU51ZW5lbiBOb29yZCBCcmFiYW50IDU2NzQgQ0MKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMS01QyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjE1QyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTIxLTVEICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAyMTVEICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMjEtNUUgICAoaGV4KQkJSUJNIENvcnAKKzAwMjE1RSAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNUYgICAoaGV4KQkJSUhTRSBHbWJICiswMDIxNUYgICAgIChiYXNlIDE2KQkJSUhTRSBHbWJICisJCQkJTWF5YmFjaHN0cmFzc2UgMTEKKwkJCQlPYmVydGV1cmluZ2VuIEJhZGVuLVf8cnR0ZW1iZXJnIDg4MDk0CisJCQkJR0VSTUFOWQorCiswMC0yMS02MCAgIChoZXgpCQlIaWRlYSBTb2x1dGlvbnMgQ28uIEx0ZC4KKzAwMjE2MCAgICAgKGJhc2UgMTYpCQlIaWRlYSBTb2x1dGlvbnMgQ28uIEx0ZC4KKwkJCQk0RiwgRG8mQ2FuIGhvdXNlIERsZGcuLCAjNjU2LTE2ODMsIFNlb25nc3UgMS1nYSAyLWRvbmcsIFNlb25nZG9uZy1ndQorCQkJCVNlb3VsICA2NTYtMTY4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS02MSAgIChoZXgpCQlZb3VybmV0IEluYy4KKzAwMjE2MSAgICAgKGJhc2UgMTYpCQlZb3VybmV0IEluYy4KKwkJCQlLVCBSJkQgQ2VudGVyCisJCQkJMTcgVW15ZW9uLWRvbmcsIFNlb2Noby1ndQorCQkJCVNlb3VsICAxMzctNzkyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTYyICAgKGhleCkJCU5vcnRlbAorMDAyMTYyICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTE4MzAgTWF0aGVzb24gQm91bGV2YXJkCisJCQkJU3VpdGUgMQorCQkJCU1pc3Npc3NhdWdhIE9udGFyaW8gTDRXIDBCMworCQkJCUNBTkFEQQorCiswMC0yMS02MyAgIChoZXgpCQlBU0tFWSBDT01QVVRFUiBDT1JQCiswMDIxNjMgICAgIChiYXNlIDE2KQkJQVNLRVkgQ09NUFVURVIgQ09SUAorCQkJCTEwRixOTy4xMTkuQ0hJRU5LQU5HIFJELENIVU5HLUhPLAorCQkJCVRBSVBFSSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIxLTY0ICAgKGhleCkJCVNwZWNpYWwgRGVzaWduIEJ1cmVhdSBmb3IgU2Vpc21pYyBJbnN0cnVtZW50YXRpb24KKzAwMjE2NCAgICAgKGJhc2UgMTYpCQlTcGVjaWFsIERlc2lnbiBCdXJlYXUgZm9yIFNlaXNtaWMgSW5zdHJ1bWVudGF0aW9uCisJCQkJMTI5LCBLcmFpbnlheWEgU3RyLgorCQkJCVNhcmF0b3YgU2FyYXRvdiByZWdpb24gNDEwMDE5CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTIxLTY1ICAgKGhleCkJCVByZXNzdGVrIEluYy4KKzAwMjE2NSAgICAgKGJhc2UgMTYpCQlQcmVzc3RlayBJbmMuCisJCQkJNTUgRXhlY3V0aXZlIERyaXZlCisJCQkJSHVkc29uIE5ldyBIYW1wc2hpcmUgMDMwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTY2ICAgKGhleCkJCU5vdkF0ZWwgSW5jLgorMDAyMTY2ICAgICAoYmFzZSAxNikJCU5vdkF0ZWwgSW5jLgorCQkJCTExMjAgLSA2OCBBdmUgTkUKKwkJCQlDYWxnYXJ5IEFsYmVydGEgVDJFIDhTNQorCQkJCUNBTkFEQQorCiswMC0yMS02NyAgIChoZXgpCQlIV0EgSklOIFQmSSBDb3JwLgorMDAyMTY3ICAgICAoYmFzZSAxNikJCUhXQSBKSU4gVCZJIENvcnAuCisJCQkJNUYuLCBTRUhXQSBCbGRnIDE2NC0yNCwgUG9pLWRvbmcsIEdhbmduYW0tZ3UsIFNlb3VsLCBLb3JlYQorCQkJCUdhbmduYW0tZ3UgU2VvdWwgMTM1LTk2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS02OCAgIChoZXgpCQlpVmVpYSwgTExDCiswMDIxNjggICAgIChiYXNlIDE2KQkJaVZlaWEsIExMQworCQkJCTUxIEZyYW5rbGluIFN0cmVldAorCQkJCVN1aXRlIDMwMQorCQkJCUFubmFwb2xpcyBNRCAyMTQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNjkgICAoaGV4KQkJUHJvbG9naXgsIExMQy4KKzAwMjE2OSAgICAgKGJhc2UgMTYpCQlQcm9sb2dpeCwgTExDLgorCQkJCTE3MjE3IE5FIDEzM3JkIFBsYWNlCisJCQkJUmVkbW9uZCBXYXNoaW5ndG9uIDk4MDUyLTIxNTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTZBICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAyMTZBICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMjEtNkIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDIxNkIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yMS02QyAgIChoZXgpCQlPRFZBCiswMDIxNkMgICAgIChiYXNlIDE2KQkJT0RWQQorCQkJCTQyMjAgVmFyc2l0eSBEcml2ZQorCQkJCVN1aXRlIEEKKwkJCQlBbm4gQXJib3IgTUkgNDgxMDgtNTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNkQgICAoaGV4KQkJU29sdGVjaCBDby4sIEx0ZC4KKzAwMjE2RCAgICAgKGJhc2UgMTYpCQlTb2x0ZWNoIENvLiwgTHRkLgorCQkJCSMzMC0zLDNGCisJCQkJV29uaHlvcm8yLUthCisJCQkJWW9uZ3NhbiBLdSBTZW91bCAxNDA4MzcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtNkUgICAoaGV4KQkJRnVuY3Rpb24gQVRJIChIdWl6aG91KSBUZWxlY29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDIxNkUgICAgIChiYXNlIDE2KQkJRnVuY3Rpb24gQVRJIChIdWl6aG91KSBUZWxlY29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCisJCQkJTm8uIDgsIEh1aXRhaSBSb2FkLCBIdWl0YWkgSW5kdXN0cmlhbCBab25lCisJCQkJSHVpemhvdSBDaXR5IEd1YW5nZG9uZyBQcm92aW5jZSA1MTYwMDYKKwkJCQlDSElOQQorCiswMC0yMS02RiAgIChoZXgpCQlTeW1Db20sIEluYy4KKzAwMjE2RiAgICAgKGJhc2UgMTYpCQlTeW1Db20sIEluYy4KKwkJCQkyODgwIE5vcnRoIFBsYXphIERyaXZlCisJCQkJUmFwaWQgQ2l0eSBTRCA1NzcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNzAgICAoaGV4KQkJRGVsbCBJbmMKKzAwMjE3MCAgICAgKGJhc2UgMTYpCQlEZWxsIEluYworCQkJCU9uZSBEZWxsIFdheSwgTVMgUlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNzEgICAoaGV4KQkJV2VzdW5nIFROQyBDby4sIEx0ZC4KKzAwMjE3MSAgICAgKGJhc2UgMTYpCQlXZXN1bmcgVE5DIENvLiwgTHRkLgorCQkJCTEwMi0xNDA5LCBCdWNoZW9uIENodW51aSBUZWNobm9wYXJrIDFzdCwKKwkJCQkyMDAtMSwgQ2h1bnVpLWRvbmcsIFdvbm1pLUd1CisJCQkJQnVjaGVvbi1DaXR5LCBHeWVvbmdnZ2ktRG8gNDIwLTg1NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS03MiAgIChoZXgpCQlTZW91bHRlayBWYWxsZXkKKzAwMjE3MiAgICAgKGJhc2UgMTYpCQlTZW91bHRlayBWYWxsZXkKKwkJCQlCYW5nLWkgRG9uZyA1MS01LCBTb25ncGEKKwkJCQlTZW91bCAgMTM4LTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS03MyAgIChoZXgpCQlJb24gVG9ycmVudCBTeXN0ZW1zLCBJbmMuCiswMDIxNzMgICAgIChiYXNlIDE2KQkJSW9uIFRvcnJlbnQgU3lzdGVtcywgSW5jLgorCQkJCTM3IFNvdW5kdmlldyBSZAorCQkJCVN1aXRlICAyCisJCQkJR3VpbGZvcmQgQ1QgMDY0MzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTc0ICAgKGhleCkJCUF2YUxBTiBXaXJlbGVzcworMDAyMTc0ICAgICAoYmFzZSAxNikJCUF2YUxBTiBXaXJlbGVzcworCQkJCTk1OCBTYW4gTGVhbmRybyBBdmUsIFN1aXRlIDkwMAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTc1ICAgKGhleCkJCVBhY2lmaWMgU2F0ZWxsaXRlIEludGVybmF0aW9uYWwgTHRkLgorMDAyMTc1ICAgICAoYmFzZSAxNikJCVBhY2lmaWMgU2F0ZWxsaXRlIEludGVybmF0aW9uYWwgTHRkLgorCQkJCTIwL0YgVGFpIFR1bmcgQnVpbGRpbmcsCisJCQkJOCBGbGVtaW5nIFJvYWQsCisJCQkJV2FuY2hhaSAgMTAwMDAwCisJCQkJSE9ORyBLT05HCisKKzAwLTIxLTc2ICAgKGhleCkJCVlNYXggVGVsZWNvbSBMdGQuCiswMDIxNzYgICAgIChiYXNlIDE2KQkJWU1heCBUZWxlY29tIEx0ZC4KKwkJCQkxMSBNb3NoZSBMZXZpIHN0ci4KKwkJCQlVTUkgQnVpbGRpbmcKKwkJCQlSaXNob24gTGUgWmlvbiAgNzU2NTgKKwkJCQlJU1JBRUwKKworMDAtMjEtNzcgICAoaGV4KQkJVy4gTC4gR29yZSAmIEFzc29jaWF0ZXMKKzAwMjE3NyAgICAgKGJhc2UgMTYpCQlXLiBMLiBHb3JlICYgQXNzb2NpYXRlcworCQkJCTQwMiBWaWV2ZXMgV2F5CisJCQkJRWxrdG9uIE1EIDIxOTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS03OCAgIChoZXgpCQlNYXR1c2NoZWsgTWVzc3RlY2huaWsgR21iSAorMDAyMTc4ICAgICAoYmFzZSAxNikJCU1hdHVzY2hlayBNZXNzdGVjaG5payBHbWJICisJCQkJV2VybmVyIEhlaXNlbmJlcmcgU3RyYd9lIDE0CisJCQkJQWxzZG9yZiBOUlcgNTI0NzcKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLTc5ICAgKGhleCkJCUlPR0VBUiwgSW5jLgorMDAyMTc5ICAgICAoYmFzZSAxNikJCUlPR0VBUiwgSW5jLgorCQkJCTIzIEh1YmJsZQorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtN0EgICAoaGV4KQkJU2VqaW4gRWxlY3Ryb24sIEluYy4KKzAwMjE3QSAgICAgKGJhc2UgMTYpCQlTZWppbiBFbGVjdHJvbiwgSW5jLgorCQkJCVNKIFRlY2hub3ZpbGxlCisJCQkJNHRoIEZsb29yIFJvb20gNDEyLCA2MC0xOSBLYVNhbi1Eb25nLCBLZXVtQ2hvbi1LdQorCQkJCVNlb3VsICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTdCICAgKGhleCkJCUJhc3RlYyBBQgorMDAyMTdCICAgICAoYmFzZSAxNikJCUJhc3RlYyBBQgorCQkJCUjkc3R25GdlbiA0QQorCQkJCU1hbG32IE0gMjEyIDM1CisJCQkJU1dFREVOCisKKzAwLTIxLTdDICAgKGhleCkJCTJXaXJlCiswMDIxN0MgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS03RCAgIChoZXgpCQlQWVhJUyBTLlIuTC4KKzAwMjE3RCAgICAgKGJhc2UgMTYpCQlQWVhJUyBTLlIuTC4KKwkJCQlDL08gRElQLiBJTkZPUk1BVElDQSBFIFNJU1RFTUlTVElDQSAtIFVOSVZFUlNJVFkgT0YgUEFWSUEKKwkJCQlWSUEgRkVSUkFUQSAxCisJCQkJUEFWSUEgIDI3MTAwCisJCQkJSVRBTFkKKworMDAtMjEtN0UgICAoaGV4KQkJVGVsaXQgQ29tbXVuaWNhdGlvbiBzLnAuYQorMDAyMTdFICAgICAoYmFzZSAxNikJCVRlbGl0IENvbW11bmljYXRpb24gcy5wLmEKKwkJCQlWaWEgc3RhemlvbmUgZGkgcHJvc2VjY28gNUIKKwkJCQlTR09OSUNPIFRyaWVzdGUgMzQwMTAKKwkJCQlJVEFMWQorCiswMC0yMS03RiAgIChoZXgpCQlJbnRyYWNvIFRlY2hub2xvZ3kgUHRlIEx0ZAorMDAyMTdGICAgICAoYmFzZSAxNikJCUludHJhY28gVGVjaG5vbG9neSBQdGUgTHRkCisJCQkJNzUwZSBDaGFpIENoZWUgUm9hZCAjMDUtMDEKKwkJCQlTaW5nYXBvcmUgIDQ2OTAwMDUKKwkJCQlTSU5HQVBPUkUKKworMDAtMjEtODAgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjE4MCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTgxICAgKGhleCkJCVNpMiBNaWNyb3N5c3RlbXMgTGltaXRlZAorMDAyMTgxICAgICAoYmFzZSAxNikJCVNpMiBNaWNyb3N5c3RlbXMgTGltaXRlZAorCQkJCU5vIDg0LCBTeSBObyAxNTAsIEVQSVAsIFdoaXRlZmllbGQgSW5kdXN0cmlhbCBBcmVhCisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAwNjYKKwkJCQlJTkRJQQorCiswMC0yMS04MiAgIChoZXgpCQlTYW5kTGlua3MgU3lzdGVtcywgTHRkLgorMDAyMTgyICAgICAoYmFzZSAxNikJCVNhbmRMaW5rcyBTeXN0ZW1zLCBMdGQuCisJCQkJUC5PLkJveCA0NjI5CisJCQkJUGV0YWgtVGlxd2EgSXNyYWVsIDQ5Mjc3CisJCQkJSVNSQUVMCisKKzAwLTIxLTgzICAgKGhleCkJCVZBVEVDSCBIWURSTworMDAyMTgzICAgICAoYmFzZSAxNikJCVZBVEVDSCBIWURSTworCQkJCVdpZW5lcmJlcmdzdHJhc3NlIDQxCisJCQkJT2JqZWN0IEQKKwkJCQlWaWVubmEgIEEtMTEyMAorCQkJCUFVU1RSSUEKKworMDAtMjEtODQgICAoaGV4KQkJUE9XRVJTT0ZUIFNSTAorMDAyMTg0ICAgICAoYmFzZSAxNikJCVBPV0VSU09GVCBTUkwKKwkJCQlWSUEgRU5SSUNPIENPTlRJLCA1CisJCQkJU0NBTkRJQ0NJIEZJIDUwMDE4CisJCQkJSVRBTFkKKworMDAtMjEtODUgICAoaGV4KQkJTUlDUk8tU1RBUiBJTlQnTCBDTy4sTFRELgorMDAyMTg1ICAgICAoYmFzZSAxNikJCU1JQ1JPLVNUQVIgSU5UJ0wgQ08uLExURC4KKwkJCQlOby42OSxMaS1EZSBTdCxKdW5nLUhvIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjEtODYgICAoaGV4KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQKKzAwMjE4NiAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZAorCQkJCTE0MSwgTGFuZSAzNTEsIFNlYy4xLCBUYWlwaW5nIFJvYWQsCisJCQkJVFNBT1RVRU4gCisJCQkJTkFOVE9VICA1NDI2MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjEtODcgICAoaGV4KQkJSW1hY3MgR21iSAorMDAyMTg3ICAgICAoYmFzZSAxNikJCUltYWNzIEdtYkgKKwkJCQlNaXR0ZWxmZWxkc3RyYXNzZSAyNQorCQkJCUtvcm53ZXN0aGVpbSBHZXJtYW55IEQtNzA4MDYKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLTg4ICAgKGhleCkJCUVNQyBDb3Jwb3JhdGlvbgorMDAyMTg4ICAgICAoYmFzZSAxNikJCUVNQyBDb3Jwb3JhdGlvbgorCQkJCTI0MjEgTWlzc2lvbiBDb2xsZWdlIEJsdmQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtODkgICAoaGV4KQkJQXBwVGVjaCwgSW5jLgorMDAyMTg5ICAgICAoYmFzZSAxNikJCUFwcFRlY2gsIEluYy4KKwkJCQkzNjMgR3JleWhvdW5kIFBhc3MKKwkJCQlDYXJtZWwgSW5kaWFuYSA0NjAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtOEEgICAoaGV4KQkJRWxlY3Ryb25pYyBEZXNpZ24gYW5kIE1hbnVmYWN0dXJpbmcgQ29tcGFueQorMDAyMThBICAgICAoYmFzZSAxNikJCUVsZWN0cm9uaWMgRGVzaWduIGFuZCBNYW51ZmFjdHVyaW5nIENvbXBhbnkKKwkJCQkzMSBNaWxscmFjZSBEcgorCQkJCUx5bmNoYnVyZyBWQSAyNDUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtOEIgICAoaGV4KQkJV2VzY29uIFRlY2hub2xvZ3ksIEluYy4KKzAwMjE4QiAgICAgKGJhc2UgMTYpCQlXZXNjb24gVGVjaG5vbG9neSwgSW5jLgorCQkJCTQ2NTUtMTcwIE9sZCBJcm9uc2lkZXMgRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDYWxpZm9ybmlhIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS04QyAgIChoZXgpCQlUb3BDb250cm9sIEdNQkgKKzAwMjE4QyAgICAgKGJhc2UgMTYpCQlUb3BDb250cm9sIEdNQkgKKwkJCQlFbnplbmJlcmd3ZWcgMjQvQQorCQkJCVRlcmxhbiAoQlopICAzOTAxOAorCQkJCUlUQUxZCisKKzAwLTIxLThEICAgKGhleCkJCUFQIFJvdXRlciBJbmQuIEVsZXRyb25pY2EgTFREQQorMDAyMThEICAgICAoYmFzZSAxNikJCUFQIFJvdXRlciBJbmQuIEVsZXRyb25pY2EgTFREQQorCQkJCUF2LiBMb21hbnRvIEp1bmlvciwgMTAwMAorCQkJCUJhaXJybyBQb250YWwKKwkJCQlJbGhldXMgQmFoaWEgNDU2NTQtMDAwCisJCQkJQlJBWklMCisKKzAwLTIxLThFICAgKGhleCkJCU1FS0lDUyBDTy4sIExURC4KKzAwMjE4RSAgICAgKGJhc2UgMTYpCQlNRUtJQ1MgQ08uLCBMVEQuCisJCQkJSW5kdXN0cmlhbCBab25lIDg2MS0xMCwgVGFlZ3llLURvbmcKKwkJCQlDaHVuY2hvbiBLYW5nd29uIDIwMC05NDQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtOEYgICAoaGV4KQkJQXZhbnRnYXJkZSBBY291c3RpYyBMYXV0c3ByZWNoZXJzeXN0ZW1lIEdtYkgKKzAwMjE4RiAgICAgKGJhc2UgMTYpCQlBdmFudGdhcmRlIEFjb3VzdGljIExhdXRzcHJlY2hlcnN5c3RlbWUgR21iSAorCQkJCU5pYmVsdW5nZW5zdHIuIDM0OQorCQkJCUxhdXRlcnRhbCAtIFJlaWNoZW5iYWNoIEhlc3NlbiBELTY0Njg2CisJCQkJR0VSTUFOWQorCiswMC0yMS05MCAgIChoZXgpCQlHb2xpYXRoIFNvbHV0aW9ucworMDAyMTkwICAgICAoYmFzZSAxNikJCUdvbGlhdGggU29sdXRpb25zCisJCQkJMzA4MiBTdGVybGluZyBDaXJjbGUKKwkJCQlCb3VsZGVyIENvbG9yYWRvIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS05MSAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzAwMjE5MSAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOTy4yODksIFNpbmh1IDNyZCBSRC4KKwkJCQlOZWlodSBEaXN0cmljdCBUYWlwZWkgQ2l0eSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIxLTkyICAgKGhleCkJCUJhb2RpbmcgR2FsYXh5IEVsZWN0cm9uaWMgVGVjaG5vbG9neSAgQ28uLEx0ZAorMDAyMTkyICAgICAoYmFzZSAxNikJCUJhb2RpbmcgR2FsYXh5IEVsZWN0cm9uaWMgVGVjaG5vbG9neSAgQ28uLEx0ZAorCQkJCU5PLjkxIEZlbmdmYW4gUmQuLEdhb0thaSBEaXN0cmljdCxCYW9kaW5nIENpdHksSGViZWkgUHJvdi5DaGluYSAwNzEwNTEKKwkJCQlCYW9kaW5nIENpdHkgSGViZWkgUHJvdi4gMDcxMDUxCisJCQkJQ0hJTkEKKworMDAtMjEtOTMgICAoaGV4KQkJVmlkZW9mb24gTVYKKzAwMjE5MyAgICAgKGJhc2UgMTYpCQlWaWRlb2ZvbiBNVgorCQkJCTYgQmxhY2tvYWsgTWV3cworCQkJCU5ld3Rvd24gUEEgMTg5NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTk0ICAgKGhleCkJCVBpbmcgQ29tbXVuaWNhdGlvbgorMDAyMTk0ICAgICAoYmFzZSAxNikJCVBpbmcgQ29tbXVuaWNhdGlvbgorCQkJCVNhbmRha2VydmVpZW4gMjRDCisJCQkJT3NsbyAgMDQ3MworCQkJCU5PUldBWQorCiswMC0yMS05NSAgIChoZXgpCQlHV0QgTWVkaWEgTGltaXRlZAorMDAyMTk1ICAgICAoYmFzZSAxNikJCUdXRCBNZWRpYSBMaW1pdGVkCisJCQkJMTAgTGVlZHMgUm9hZAorCQkJCVNoZWZmaWVsZCBTb3V0aCBZb3Jrc2hpcmUgUzkgM1RZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjEtOTYgICAoaGV4KQkJVGVsc2V5ICBTLnAuQS4KKzAwMjE5NiAgICAgKGJhc2UgMTYpCQlUZWxzZXkgIFMucC5BLgorCQkJCVZpYWxlIGRlbGwnSW5kdXN0cmlhLCAxCisJCQkJUXVpbnRvIERpVHJldmlzbyAzMTA1NQorCQkJCUlUQUxZCisKKzAwLTIxLTk3ICAgKGhleCkJCUVMSVRFR1JPVVAgQ09NUFVURVIgU1lTVEVNCiswMDIxOTcgICAgIChiYXNlIDE2KQkJRUxJVEVHUk9VUCBDT01QVVRFUiBTWVNURU0KKwkJCQlOTy4yMzksIFNlYy4gMiwgVGkgRGluZyBCbHZkLiwKKwkJCQlUYWlwZWkgIDExNDkzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMS05OCAgIChoZXgpCQlUaGFpIFJhZGlvIENvLCBMVEQKKzAwMjE5OCAgICAgKGJhc2UgMTYpCQlUaGFpIFJhZGlvIENvLCBMVEQKKwkJCQlIaS1UZWNoIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJNzg3IE0wMCAxIEJhYW5sYW5lIFN1YiBEaXN0cmljdCBCYW5nIFBhLUluIERpc3RyaWN0CisJCQkJQXl1dHRoYXlhICAxMzE2MAorCQkJCVRIQUlMQU5ECisKKzAwLTIxLTk5ICAgKGhleCkJCVZhY29uIFBsYworMDAyMTk5ICAgICAoYmFzZSAxNikJCVZhY29uIFBsYworCQkJCVAuTy5Cb3ggMjUKKwkJCQlWYWFzYSAgNjUzODAKKwkJCQlGSU5MQU5ECisKKzAwLTIxLTlBICAgKGhleCkJCUNhbWJyaWRnZSBWaXN1YWwgTmV0d29ya3MgTHRkCiswMDIxOUEgICAgIChiYXNlIDE2KQkJQ2FtYnJpZGdlIFZpc3VhbCBOZXR3b3JrcyBMdGQKKwkJCQk2MSBTZWx3eW4gUm9hZAorCQkJCUNhbWJyaWRnZSBDYW1icmlkZ2VzaGlyZSBDQjMgOUVBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjEtOUIgICAoaGV4KQkJRGVsbCBJbmMKKzAwMjE5QiAgICAgKGJhc2UgMTYpCQlEZWxsIEluYworCQkJCU9uZSBEZWxsIFdheSwgTVMgUlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtOUMgICAoaGV4KQkJSG9uZXl3bGQgVGVjaG5vbG9neSBDb3JwLgorMDAyMTlDICAgICAoYmFzZSAxNikJCUhvbmV5d2xkIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQlOby40MCxIc3VlaC1GdSBSZC4KKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIxLTlEICAgKGhleCkJCUFkZXN5cyBCVgorMDAyMTlEICAgICAoYmFzZSAxNikJCUFkZXN5cyBCVgorCQkJCU1vbGVud2VlciA0CisJCQkJV2F0ZXJpbmdlbiBadWlkIEhvbGxhbmQgMjI5MSBOUgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIxLTlFICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCiswMDIxOUUgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTa+VuZSAyMjE4OAorCQkJCVNXRURFTgorCiswMC0yMS05RiAgIChoZXgpCQlTQVRFTCBPWQorMDAyMTlGICAgICAoYmFzZSAxNikJCVNBVEVMIE9ZCisJCQkJTWVyaW5paXR5bmthdHUgMTcKKwkJCQlTQUxPIExhbnNpLVN1b21lbiBMYWFuaSAyNDEwMAorCQkJCUZJTkxBTkQKKworMDAtMjEtQTAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMUEwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUExICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjFBMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1BMiAgIChoZXgpCQlFS0UtRWxlY3Ryb25pY3MgTHRkLgorMDAyMUEyICAgICAoYmFzZSAxNikJCUVLRS1FbGVjdHJvbmljcyBMdGQuCisJCQkJUGlpc3BhbnBvcnR0aSA3CisJCQkJRVNQT08gIDAyMjQwCisJCQkJRklOTEFORAorCiswMC0yMS1BMyAgIChoZXgpCQlNaWNyb21pbnQKKzAwMjFBMyAgICAgKGJhc2UgMTYpCQlNaWNyb21pbnQKKwkJCQkxMTEgQ29tbWVyY2UgU3QKKwkJCQlMYWtlIE1hcnkgRkwgMzI3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUE0ICAgKGhleCkJCURiaWkgTmV0d29ya3MKKzAwMjFBNCAgICAgKGJhc2UgMTYpCQlEYmlpIE5ldHdvcmtzCisJCQkJMjIxNyBWaWEgQmxhbmNhCisJCQkJT2NlYW5zaWRlIENBIDkyMDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1BNSAgIChoZXgpCQlFUkxQaGFzZSBQb3dlciBUZWNobm9sb2dpZXMgTHRkLgorMDAyMUE1ICAgICAoYmFzZSAxNikJCUVSTFBoYXNlIFBvd2VyIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJNzQgU2N1cmZpZWxkIEJsdmQuCisJCQkJV2lubmlwZWcgTWFuaXRvYmEgUjNZIDFHNAorCQkJCUNBTkFEQQorCiswMC0yMS1BNiAgIChoZXgpCQlWaWRlb3RlYyBTcGEKKzAwMjFBNiAgICAgKGJhc2UgMTYpCQlWaWRlb3RlYyBTcGEKKwkJCQlWaWEgRnJpdWxpLDYKKwkJCQlTY2hpbyBWaWNlbnphIDM2MDE1CisJCQkJSVRBTFkKKworMDAtMjEtQTcgICAoaGV4KQkJSGFudGxlIFN5c3RlbSBDby4sIEx0ZC4KKzAwMjFBNyAgICAgKGJhc2UgMTYpCQlIYW50bGUgU3lzdGVtIENvLiwgTHRkLgorCQkJCTQ4MS0xMCBCeXVja3NhbiBEaWdpdGFsIFZhbGx5IElJLCBSTSAxNTExCisJCQkJR2FzYW4tRG9uZywgR3VtY2hvbi1HdQorCQkJCVNlb3VsIENpdHkgU2VvdWwgMTUzLTc4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS1BOCAgIChoZXgpCQlUZWxlcGhvbmljcyBDb3Jwb3JhdGlvbgorMDAyMUE4ICAgICAoYmFzZSAxNikJCVRlbGVwaG9uaWNzIENvcnBvcmF0aW9uCisJCQkJODE1IEJyb2FkIEhvbGxvdyBSb2FkCisJCQkJRmFybWluZ2RhbGUgTmV3IFlvcmsgMTE3OTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUE5ICAgKGhleCkJCU1vYmlsaW5rIFRlbGVjb20gQ28uLEx0ZAorMDAyMUE5ICAgICAoYmFzZSAxNikJCU1vYmlsaW5rIFRlbGVjb20gQ28uLEx0ZAorCQkJCTI5Mi0zIFNpbmRhbmctcmksIFNhbmRvbmctbXl1bgorCQkJCUd1bWkgR3llb25nYnVrIDczMC04NTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtQUEgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjFBQSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjEtQUIgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjFBQiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MCBWCisJCQkJREVOTUFSSworCiswMC0yMS1BQyAgIChoZXgpCQlJbmZyYXJlZCBJbnRlZ3JhdGVkIFN5c3RlbXMgTHRkCiswMDIxQUMgICAgIChiYXNlIDE2KQkJSW5mcmFyZWQgSW50ZWdyYXRlZCBTeXN0ZW1zIEx0ZAorCQkJCVBhcmsgQ2lyY2xlLCBUaXRoZSBCYXJuIFdheQorCQkJCVN3YW4gVmFsbGV5CisJCQkJTm9ydGhhbXB0b24gTm9ydGhhbnRzIE5ONCA5QkcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMS1BRCAgIChoZXgpCQlOb3JkaWMgSUQgT3kKKzAwMjFBRCAgICAgKGJhc2UgMTYpCQlOb3JkaWMgSUQgT3kKKwkJCQlNeWxseW9qYW5rYXR1IDJBCisJCQkJU0FMTyAgRklOLTI0MTAwCisJCQkJRklOTEFORAorCiswMC0yMS1BRSAgIChoZXgpCQlBTENBVEVMLUxVQ0VOVCBGUkFOQ0UgLSBXVEQKKzAwMjFBRSAgICAgKGJhc2UgMTYpCQlBTENBVEVMLUxVQ0VOVCBGUkFOQ0UgLSBXVEQKKwkJCQk3LTksIEF2ZW51ZSBNb3JhbmUgU2F1bG5pZXIKKwkJCQlCUCA1NworCQkJCVZFTElaWSAgNzgxNDEKKwkJCQlGUkFOQ0UKKworMDAtMjEtQUYgICAoaGV4KQkJUmFkaW8gRnJlcXVlbmN5IFN5c3RlbXMKKzAwMjFBRiAgICAgKGJhc2UgMTYpCQlSYWRpbyBGcmVxdWVuY3kgU3lzdGVtcworCQkJCUthYmVsa2FtcCAyMAorCQkJCUhhbm5vdmVyICAzMDE3OQorCQkJCUdFUk1BTlkKKworMDAtMjEtQjAgICAoaGV4KQkJVHljbyBUZWxlY29tbXVuaWNhdGlvbnMKKzAwMjFCMCAgICAgKGJhc2UgMTYpCQlUeWNvIFRlbGVjb21tdW5pY2F0aW9ucworCQkJCTEwMTEgUGF3dHVja2V0IEJsdmQKKwkJCQlMb3dlbGwgTWFzc2FjaHVzZXR0cyAwMTg1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtQjEgICAoaGV4KQkJRElHSVRBTCBTT0xVVElPTlMgTFRECiswMDIxQjEgICAgIChiYXNlIDE2KQkJRElHSVRBTCBTT0xVVElPTlMgTFRECisJCQkJVHNhcmlncmFkc2tvIFNob3NlIDdrbSBCTFZECisJCQkJSGkgVGVjaCBQYXJrIEl6b3QsCisJCQkJU29maWEgU29maWEgMTc4NAorCQkJCUJVTEdBUklBCisKKzAwLTIxLUIyICAgKGhleCkJCUZpYmVyYmxhemUgQS9TCiswMDIxQjIgICAgIChiYXNlIDE2KQkJRmliZXJibGF6ZSBBL1MKKwkJCQlLaWxkZXZhbmdzdmVqIDkKKwkJCQlHb2VkZXJ1cAorCQkJCVJvc2tpbGRlICA0MDAwCisJCQkJREVOTUFSSworCiswMC0yMS1CMyAgIChoZXgpCQlSb3NzIENvbnRyb2xzCiswMDIxQjMgICAgIChiYXNlIDE2KQkJUm9zcyBDb250cm9scworCQkJCU9uZSBSb3NzIFdheQorCQkJCUxhdm9uaWEgR0EgMzA1NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUI0ICAgKGhleCkJCUFQUk8gTUVESUEgQ08uLCBMVEQKKzAwMjFCNCAgICAgKGJhc2UgMTYpCQlBUFJPIE1FRElBIENPLiwgTFRECisJCQkJIzEzLTUsRG9kYW5nLURvbmcsV29ubWktR3UsCisJCQkJQnVjaGVvbi1DaXR5IEt5dW5nZ2ktRG8gNDIwLTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS1CNSAgIChoZXgpCQlWeXJvIEdhbWVzIExpbWl0ZWQKKzAwMjFCNSAgICAgKGJhc2UgMTYpCQlWeXJvIEdhbWVzIExpbWl0ZWQKKwkJCQkxNCBTdC4gU3RlcGhlbidzIEdyZWVuCisJCQkJRHVibGluICAyCisJCQkJSVJFTEFORAorCiswMC0yMS1CNiAgIChoZXgpCQlUcmlhY3RhIFBvd2VyIFRlY2hub2xvZ2llcyBJbmMuCiswMDIxQjYgICAgIChiYXNlIDE2KQkJVHJpYWN0YSBQb3dlciBUZWNobm9sb2dpZXMgSW5jLgorCQkJCUJveCA1ODIsIDcgTWlsbCBTdHJlZXQKKwkJCQlBbG1vbnRlIE9udGFyaW8gSzBBIDFBMAorCQkJCUNBTkFEQQorCiswMC0yMS1CNyAgIChoZXgpCQlMZXhtYXJrIEludGVybmF0aW9uYWwgSW5jLgorMDAyMUI3ICAgICAoYmFzZSAxNikJCUxleG1hcmsgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJNzQwIFdlc3QgTmV3IENpcmNsZSBSb2FkCisJCQkJTGV4aW5ndG9uIEtZIDQwNTUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1COCAgIChoZXgpCQlJbnBoaSBDb3Jwb3JhdGlvbgorMDAyMUI4ICAgICAoYmFzZSAxNikJCUlucGhpIENvcnBvcmF0aW9uCisJCQkJMjM5MyBUb3duc0dhdGUgUmQuLCBTdWl0ZSAxMDEKKwkJCQlXZXN0bGFrZSBWaWxsYWdlIENBIDkxMzYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1COSAgIChoZXgpCQlVbml2ZXJzYWwgRGV2aWNlcyBJbmMuCiswMDIxQjkgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIERldmljZXMgSW5jLgorCQkJCTUzNTMgWWFybW91dGggQXZlLiAjMjA5CisJCQkJRW5jaW5vIENBIDkxMzE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1CQSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAyMUJBICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1CQiAgIChoZXgpCQlSaWtlbiBLZWlraSBDby4sIEx0ZC4KKzAwMjFCQiAgICAgKGJhc2UgMTYpCQlSaWtlbiBLZWlraSBDby4sIEx0ZC4KKwkJCQkgMi03LTYgQXp1c2F3YQorCQkJCUl0YWJhc2hpLUt1IFRva3lvIDE3NC04NzQ0CisJCQkJSkFQQU4KKworMDAtMjEtQkMgICAoaGV4KQkJWkFMQSBDT01QVVRFUgorMDAyMUJDICAgICAoYmFzZSAxNikJCVpBTEEgQ09NUFVURVIKKwkJCQlFTCBCT1VOSQorCQkJCUFOTkFCQSAgMjMwMDAKKwkJCQlBTEdFUklBCisKKzAwLTIxLUJEICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyMUJEICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTIxLUJFICAgKGhleCkJCUNpc2NvLCBTZXJ2aWNlIFByb3ZpZGVyIFZpZGVvIFRlY2hub2xvZ3kgR3JvdXAKKzAwMjFCRSAgICAgKGJhc2UgMTYpCQlDaXNjbywgU2VydmljZSBQcm92aWRlciBWaWRlbyBUZWNobm9sb2d5IEdyb3VwCisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCU1haWwgU3RvcCAyLlQuNjAzCisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtQkYgICAoaGV4KQkJSGl0YWNoaSBIaWdoLVRlY2ggQ29udHJvbCBTeXN0ZW1zIENvcnBvcmF0aW9uCiswMDIxQkYgICAgIChiYXNlIDE2KQkJSGl0YWNoaSBIaWdoLVRlY2ggQ29udHJvbCBTeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJNTAwLE1peXUtY2hvCisJCQkJTWl0by1zaGkgSWJhcmFraS1rZW4gMzE5LTAzMTYKKwkJCQlKQVBBTgorCiswMC0yMS1DMCAgIChoZXgpCQlNb2JpbGUgQXBwbGlhbmNlLCBJbmMuCiswMDIxQzAgICAgIChiYXNlIDE2KQkJTW9iaWxlIEFwcGxpYW5jZSwgSW5jLgorCQkJCSM4MTkgS3JhbnogVGVjaG5vLAorCQkJCVNhbmdkYWV3b24tMSBEb25nLCBKdW5nd29uLUd1CisJCQkJU2VvbmcgbmFtIEd5ZW9uZ2dpLURvIDQ2Mi03MjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtQzEgICAoaGV4KQkJQUJCIE95IC8gRGlzdHJpYnV0aW9uIEF1dG9tYXRpb24KKzAwMjFDMSAgICAgKGJhc2UgMTYpCQlBQkIgT3kgLyBEaXN0cmlidXRpb24gQXV0b21hdGlvbgorCQkJCVBPIEJveCA2OTkKKwkJCQlWYWFzYSAgRkktNjUxMDEKKwkJCQlGSU5MQU5ECisKKzAwLTIxLUMyICAgKGhleCkJCUdMIENvbW11bmljYXRpb25zIEluYworMDAyMUMyICAgICAoYmFzZSAxNikJCUdMIENvbW11bmljYXRpb25zIEluYworCQkJCTgxOCBXZXN0IERpYW1vbmQgQXZlCisJCQkJVGhpcmQgRmxvb3IKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUMzICAgKGhleCkJCUNPUk5FTEwgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMjFDMyAgICAgKGJhc2UgMTYpCQlDT1JORUxMIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNzkxNSBOLiA4MXN0IFN0cmVldAorCQkJCU1pbHdhdWtlZSBXaXNjb25zaW4gNTMyMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUM0ICAgKGhleCkJCUNvbnNpbGl1bSBBQgorMDAyMUM0ICAgICAoYmFzZSAxNikJCUNvbnNpbGl1bSBBQgorCQkJCVbkc3RyYSBGaW5uYm9kYXbkZ2VuIDItNAorCQkJCU5hY2thIFN0b2NraG9sbSAxMzEzMQorCQkJCVNXRURFTgorCiswMC0yMS1DNSAgIChoZXgpCQkzRFNQIENvcnAKKzAwMjFDNSAgICAgKGJhc2UgMTYpCQkzRFNQIENvcnAKKwkJCQkxNjI3MSBMYWd1bmEgQ2FueW9uIFJvYWQKKwkJCQlTdWl0ZSAyMDAKKwkJCQlJcnZpbmUsIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1DNiAgIChoZXgpCQlDU0ogR2xvYmFsLCBJbmMuCiswMDIxQzYgICAgIChiYXNlIDE2KQkJQ1NKIEdsb2JhbCwgSW5jLgorCQkJCTl0aCBGbC4gU2Ftd2hhbiBCbGRnLiBBbm5leCwgMTctMjYgWWVvdWlkby1kb25nLAorCQkJCVlvdW5nZGV1bmdwby1HdQorCQkJCVNlb3VsICAxNTAtODc0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLUM3ICAgKGhleCkJCVJ1c3NvdW5kCiswMDIxQzcgICAgIChiYXNlIDE2KQkJUnVzc291bmQKKwkJCQk1IEZvcmJlcyBSb2FkCisJCQkJTmV3bWFya2V0IE5IIDAzODU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1DOCAgIChoZXgpCQlMT0hVSVMgTmV0d29ya3MKKzAwMjFDOCAgICAgKGJhc2UgMTYpCQlMT0hVSVMgTmV0d29ya3MKKwkJCQkyNjgxIFRWIE1vbnN0ZXIKKwkJCQlWb3RsYWFuIDQwOCBWb3RsYWFuIDMxCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjEtQzkgICAoaGV4KQkJV2F2ZWNvbSBBc2lhIFBhY2lmaWMgTGltaXRlZAorMDAyMUM5ICAgICAoYmFzZSAxNikJCVdhdmVjb20gQXNpYSBQYWNpZmljIExpbWl0ZWQKKwkJCQkyMDEgQmlvLUluZm9ybWF0aWNzIENlbnRyZSwgIE5vLjIgU2NpZW5jZSBQYXJrIFdlc3QgQXZlCisJCQkJSG9uZyBLb25nIFNjaWVuY2UgUGFyaywgU2hhdGluLCBOVAorCQkJCUhPTkcgS09ORworCiswMC0yMS1DQSAgIChoZXgpCQlBUlQgU3lzdGVtIENvLiwgTHRkLgorMDAyMUNBICAgICAoYmFzZSAxNikJCUFSVCBTeXN0ZW0gQ28uLCBMdGQuCisJCQkJTW9iaWxlIFRlY2hubyBCbGRnIFJvb20gOTEwCisJCQkJNTczLTEzLCBCb2toeWVvbi1kb25nLCBCdWstZ3UKKwkJCQlEYWUtR3UgIDcwMi0wMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtQ0IgICAoaGV4KQkJU01TIFRFQ05PTE9HSUEgRUxFVFJPTklDQSBMVERBCiswMDIxQ0IgICAgIChiYXNlIDE2KQkJU01TIFRFQ05PTE9HSUEgRUxFVFJPTklDQSBMVERBCisJCQkJQXYuIFBpcuJtaWRlLCA2NjEKKwkJCQlESUFERU1BIFPDTyBQQVVMTyAwOTk3MDMzMAorCQkJCUJSQVpJTAorCiswMC0yMS1DQyAgIChoZXgpCQlGbGV4dHJvbmljcyBJbnRlcm5hdGlvbmFsCiswMDIxQ0MgICAgIChiYXNlIDE2KQkJRmxleHRyb25pY3MgSW50ZXJuYXRpb25hbAorCQkJCTIyNDEgTHVuZHkgQXZlLgorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1DRCAgIChoZXgpCQlMaXZlVFYKKzAwMjFDRCAgICAgKGJhc2UgMTYpCQlMaXZlVFYKKwkJCQkxMzMzIEdhdGV3YXkgRHJpdmUsIFN1aXRlIDEwMDcKKwkJCQlNZWxib3VybmUgRmxvcmlkYSAzMjkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtQ0UgICAoaGV4KQkJTlRDLU1ldHJvdGVrCiswMDIxQ0UgICAgIChiYXNlIDE2KQkJTlRDLU1ldHJvdGVrCisJCQkJOSwgTmV2em9yb3ZveSBzdHJlZXQKKwkJCQlTYWludC1QZXRlcnNidXJnICAxOTIxNDgKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjEtQ0YgICAoaGV4KQkJVGhlIENyeXB0byBHcm91cAorMDAyMUNGICAgICAoYmFzZSAxNikJCVRoZSBDcnlwdG8gR3JvdXAKKwkJCQladWdlcnN0cmFzc2UgNDIKKwkJCQlTdGVpbmhhdXNlbiBadWcgNjMxMgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTIxLUQwICAgKGhleCkJCUdsb2JhbCBEaXNwbGF5IFNvbHV0aW9ucyBTcGEKKzAwMjFEMCAgICAgKGJhc2UgMTYpCQlHbG9iYWwgRGlzcGxheSBTb2x1dGlvbnMgU3BhCisJCQkJVmlhIFRlenplLCAyMC9BCisJCQkJVkFUIElUMDI5NDAxODAyNDkKKwkJCQlDb3JuZWRvIFZpY2VudGlubyBWaWNlbnphIDM2MDczCisJCQkJSVRBTFkKKworMDAtMjEtRDEgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswMDIxRDEgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLUQyICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAyMUQyICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS1EMyAgIChoZXgpCQlCT0NPTSBTRUNVUklUWShBU0lBIFBBQ0lGSUMpIExJTUlURUQKKzAwMjFEMyAgICAgKGJhc2UgMTYpCQlCT0NPTSBTRUNVUklUWShBU0lBIFBBQ0lGSUMpIExJTUlURUQKKwkJCQlGbHIuMyxOTy4yOSwjNjkgR3VpcWluZyBSRAorCQkJCUNoaW5hCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTIxLUQ0ICAgKGhleCkJCVZvbGxtZXIgV2Vya2UgR21iSAorMDAyMUQ0ICAgICAoYmFzZSAxNikJCVZvbGxtZXIgV2Vya2UgR21iSAorCQkJCU1hc2NoaW5lbmZhYnJpaworCQkJCUJpYmVyYWNoIEJhZGVuLVf8cnR0ZW1iZXJnIDg4NDAwCisJCQkJR0VSTUFOWQorCiswMC0yMS1ENSAgIChoZXgpCQlYMkUgR21iSAorMDAyMUQ1ICAgICAoYmFzZSAxNikJCVgyRSBHbWJICisJCQkJUmFpZmZlaXNlbnN0cmFzc2UgOQorCQkJCVdpbmRlbiBSaGVpbmxhbmQtUGZhbHogNzY4NzIKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLUQ2ICAgKGhleCkJCUxYSSBDb25zb3J0aXVtCiswMDIxRDYgICAgIChiYXNlIDE2KQkJTFhJIENvbnNvcnRpdW0KKwkJCQlQLk8uIEJveCAxMDE2CisJCQkJTml3b3QgQ08gODA1NDQtMTAxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRDcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMUQ3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUQ4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjFEOCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1EOSAgIChoZXgpCQlTRUtPTklDIENPUlBPUkFUSU9OCiswMDIxRDkgICAgIChiYXNlIDE2KQkJU0VLT05JQyBDT1JQT1JBVElPTgorCQkJCTctMjQtMTQKKwkJCQlPSVpVTUktR0FLVUVOLUNITworCQkJCU5FUklNQS1LVSBUT0tZTyAxNzgtODY4NgorCQkJCUpBUEFOCisKKzAwLTIxLURBICAgKGhleCkJCUF1dG9tYXRpb24gUHJvZHVjdHMgR3JvdXAgSW5jLgorMDAyMURBICAgICAoYmFzZSAxNikJCUF1dG9tYXRpb24gUHJvZHVjdHMgR3JvdXAgSW5jLgorCQkJCTEwMjUgV2VzdCAxNzAwIE5vcnRoCisJCQkJTG9nYW4gVXRhaCA4NDMyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtREIgICAoaGV4KQkJU2FudGFjaGkgVmlkZW8gVGVjaG5vbG9neSAoU2hlbnpoZW4pIENvLiwgTHRkLgorMDAyMURCICAgICAoYmFzZSAxNikJCVNhbnRhY2hpIFZpZGVvIFRlY2hub2xvZ3kgKFNoZW56aGVuKSBDby4sIEx0ZC4KKwkJCQlTYW50YWNoaSBCdWlsZGluZywjMTQgS2FpZmVuZyBSb2FkLE1laWxpbiwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQ5CisJCQkJQ0hJTkEKKworMDAtMjEtREMgICAoaGV4KQkJVEVDTk9BTEFSTSBTLnIubC4KKzAwMjFEQyAgICAgKGJhc2UgMTYpCQlURUNOT0FMQVJNIFMuci5sLgorCQkJCVZpYSBDaXJpZScKKwkJCQlTYW4gTWF1cm8gVG9yaW5lc2UgVG9yaW5vIDEwMDk5CisJCQkJSVRBTFkKKworMDAtMjEtREQgICAoaGV4KQkJTm9ydGhzdGFyIFN5c3RlbXMgQ29ycAorMDAyMUREICAgICAoYmFzZSAxNikJCU5vcnRoc3RhciBTeXN0ZW1zIENvcnAKKwkJCQk1RiwgTm8uMjAwIEdhbmcgUWlhbiBSZAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMS1ERSAgIChoZXgpCQlGaXJlcHJvIFdpcmVsZXNzCiswMDIxREUgICAgIChiYXNlIDE2KQkJRmlyZXBybyBXaXJlbGVzcworCQkJCTI3LCBaYW1ydWRwdXIgQ29tbXVuaXR5IENlbnRlciwKKwkJCQlLYWlsYXNoIENvbG9ueQorCQkJCU5ldyBEZWxoaSBIYXJ5YW5hIDExMDAyMAorCQkJCUlORElBCisKKzAwLTIxLURGICAgKGhleCkJCU1hcnRpbiBDaHJpc3QgR21iSAorMDAyMURGICAgICAoYmFzZSAxNikJCU1hcnRpbiBDaHJpc3QgR21iSAorCQkJCUFuIGRlciBVbnRlcmVuIFNvZXNlIDUwCisJCQkJT3N0ZXJvZGUgTmllZGVyc2FjaHNlbiAzNzUyMAorCQkJCUdFUk1BTlkKKworMDAtMjEtRTAgICAoaGV4KQkJQ29tbUFnaWxpdHkgTHRkCiswMDIxRTAgICAgIChiYXNlIDE2KQkJQ29tbUFnaWxpdHkgTHRkCisJCQkJSW5ub3ZhdGlvbiBDZW50cmUKKwkJCQlFcGluYWwgV2F5CisJCQkJTG91Z2hib3JvdWdoIExlaWNzIExFMTEgM0VICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjEtRTEgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDIxRTEgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJMjIyMSBMYWtlc2lkZSBCbHZkCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4Mi00Mzk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1FMiAgIChoZXgpCQlDcmVhdGl2ZSBFbGVjdHJvbmljIEdtYkgKKzAwMjFFMiAgICAgKGJhc2UgMTYpCQlDcmVhdGl2ZSBFbGVjdHJvbmljIEdtYkgKKwkJCQlMb3JjaGVyIFN0cmFzc2UgNTIKKwkJCQlCaXJlbmJhY2ggQmFkZW4tV/xydHRlbWJlcmcgNzMxMDIKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLUUzICAgKGhleCkJCVNlcmlhbFRlayBMTEMKKzAwMjFFMyAgICAgKGJhc2UgMTYpCQlTZXJpYWxUZWsgTExDCisJCQkJMTYzMCBPYWtsYW5kIFJkCisJCQkJU3VpdGUgQTExNworCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1FNCAgIChoZXgpCQlJLVdJTgorMDAyMUU0ICAgICAoYmFzZSAxNikJCUktV0lOCisJCQkJMjcgUnVlIGRlcyBFY29uZGVhdXgKKwkJCQlFUElOQVkgU1VSIFNFSU5FIFNlaW5lIFNhaW50IERlbmlzIDkzODAwCisJCQkJRlJBTkNFCisKKzAwLTIxLUU1ICAgKGhleCkJCURpc3BsYXkgU29sdXRpb24gQUcKKzAwMjFFNSAgICAgKGJhc2UgMTYpCQlEaXNwbGF5IFNvbHV0aW9uIEFHCisJCQkJVGFsaG9mc3RyLiAzMmEKKwkJCQlHaWxjaGluZyBEIDgyMjA1CisJCQkJR0VSTUFOWQorCiswMC0yMS1FNiAgIChoZXgpCQlTdGFybGlnaHQgVmlkZW8gTGltaXRlZAorMDAyMUU2ICAgICAoYmFzZSAxNikJCVN0YXJsaWdodCBWaWRlbyBMaW1pdGVkCisJCQkJNS9GLiwgU2hpbmcgRGFvIEluZHVzdHJpYWwgQnVpbGRpbmcsCisJCQkJMjMyIEFiZXJkZWVuIE1haW4gUm9hZCwKKwkJCQlIT05HIEtPTkcKKworMDAtMjEtRTcgICAoaGV4KQkJSW5mb3JtYXRpY3MgU2VydmljZXMgQ29ycG9yYXRpb24KKzAwMjFFNyAgICAgKGJhc2UgMTYpCQlJbmZvcm1hdGljcyBTZXJ2aWNlcyBDb3Jwb3JhdGlvbgorCQkJCTE0MCwgTmVnaW4gQmxkZy4sCisJCQkJTWlyZGFtYWQgQmx2ZAorCQkJCVRlaHJhbiAgMTU0OTUzNDUxMQorCQkJCUlSQU4sIElTTEFNSUMgUkVQVUJMSUMgT0YKKworMDAtMjEtRTggICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCiswMDIxRTggICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJMTAtMSwgSGlnYXNoaWtvdGFyaSAxLWNob21lCisJCQkJTmFnYW9rYWt5by1zaGkgS3lvdG8gNjE3LTg1NTUKKwkJCQlKQVBBTgorCiswMC0yMS1FOSAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDIxRTkgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRUEgICAoaGV4KQkJQnlzdHJvbmljIExhc2VyIEFHCiswMDIxRUEgICAgIChiYXNlIDE2KQkJQnlzdHJvbmljIExhc2VyIEFHCisJCQkJSW5kdXN0cmllc3RyLiAyMQorCQkJCTMzNjIgTmllZGVy9m56IAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTIxLUVCICAgKGhleCkJCUVTUCBTWVNURU1TLCBMTEMKKzAwMjFFQiAgICAgKGJhc2UgMTYpCQlFU1AgU1lTVEVNUywgTExDCisJCQkJMTQyMiBFYXN0IEZvdXJ0aCBTdHJlZXQKKwkJCQlDaGFybG90dGUgTkMgMjgyMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUVDICAgKGhleCkJCVNvbHV0cm9uaWMgR21iSAorMDAyMUVDICAgICAoYmFzZSAxNikJCVNvbHV0cm9uaWMgR21iSAorCQkJCUt1ZWZlcnN0cmFzc2UgMTgKKwkJCQlLb2VuZ2VuICA3MzI1NworCQkJCUdFUk1BTlkKKworMDAtMjEtRUQgICAoaGV4KQkJVGVsZWdlc2lzCiswMDIxRUQgICAgIChiYXNlIDE2KQkJVGVsZWdlc2lzCisJCQkJODQgU3RhdGlvbiBSb2FkCisJCQkJTWFybG93IEJ1Y2tzIFNMNyAxTlgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMS1FRSAgIChoZXgpCQlGdWxsIFNwZWN0cnVtIEluYy4KKzAwMjFFRSAgICAgKGJhc2UgMTYpCQlGdWxsIFNwZWN0cnVtIEluYy4KKwkJCQkxMTQ5IENoZXN0bnV0IFN0cmVldCwgU3VpdGUgMTAwCisJCQkJTWVubG8gUGFyayBDYWxpZm9ybmlhIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1FRiAgIChoZXgpCQlLYXBzeXMKKzAwMjFFRiAgICAgKGJhc2UgMTYpCQlLYXBzeXMKKwkJCQk3OTAgQXYgZHUgRG9jdGV1ciBNYXVyaWNlIERvbmF0CisJCQkJTGUgTWFyY28gUG9sbyBBMQorCQkJCTA2MjUwIE1vdWdpbnMgU29waGlhIEFudGlwb2xpcyAKKwkJCQlGUkFOQ0UKKworMDAtMjEtRjAgICAoaGV4KQkJRVczIFRlY2hub2xvZ2llcyBMTEMKKzAwMjFGMCAgICAgKGJhc2UgMTYpCQlFVzMgVGVjaG5vbG9naWVzIExMQworCQkJCTIwIEhvbWVzdGVhZCBWaWxsYWdlIERyaXZlCisJCQkJV2Fyd2ljayBOWSAxMDk5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRjEgICAoaGV4KQkJVHV0dXMgRGF0YSBBQgorMDAyMUYxICAgICAoYmFzZSAxNikJCVR1dHVzIERhdGEgQUIKKwkJCQlTdmFyZHZhZ2VuIDExCisJCQkJRGFuZGVyeWQgU3RvY2tob2xtIDE4MjMzCisJCQkJU1dFREVOCisKKzAwLTIxLUYyICAgKGhleCkJCUVBU1kzQ0FMTCBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMjFGMiAgICAgKGJhc2UgMTYpCQlFQVNZM0NBTEwgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJUm9vbSAxOTAzLTYsIDE5L0YuLCBISU5HIFlJUCBDb21tZXJjaWFsIENlbnRyZQorCQkJCTI3Mi0yODQgREVTIFZPRVVYIFJvYWQgQ2VudHJhbAorCQkJCUhvbmcgS29uZyAgOTk5MDc3CisJCQkJQ0hJTkEKKworMDAtMjEtRjMgICAoaGV4KQkJU2kxNCBTcEEKKzAwMjFGMyAgICAgKGJhc2UgMTYpCQlTaTE0IFNwQQorCQkJCVZpYSBUb21tYXNlbyA3NworCQkJCVBhZG92YSBQRCAzNTEzMQorCQkJCUlUQUxZCisKKzAwLTIxLUY0ICAgKGhleCkJCUlOUmFuZ2UgU3lzdGVtcywgSW5jCiswMDIxRjQgICAgIChiYXNlIDE2KQkJSU5SYW5nZSBTeXN0ZW1zLCBJbmMKKwkJCQkyMjAgTGFrZW1vbnQgUGFyayBCbHZkCisJCQkJQWx0b29uYSBQQSAxNjYwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRjUgICAoaGV4KQkJV2VzdGVybiBFbmdyYXZlcnMgU3VwcGx5LCBJbmMuCiswMDIxRjUgICAgIChiYXNlIDE2KQkJV2VzdGVybiBFbmdyYXZlcnMgU3VwcGx5LCBJbmMuCisJCQkJMTc2MjEgTiBCbGFjayBDYW55b24gSGlnaHdheQorCQkJCVBob2VuaXggQVogODUwMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUY2ICAgKGhleCkJCU9yYWNsZSBDb3Jwb3JhdGlvbgorMDAyMUY2ICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbgorCQkJCTkwMCBDaGVsbXNmb3JkIFN0cmVldAorCQkJCUxvd2VsbCBNQSAwMTg1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRjcgICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorMDAyMUY3ICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkCisJCQkJUm9zZXZpbGxlIENBIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1GOCAgIChoZXgpCQlFbnNlbywgSW5jLgorMDAyMUY4ICAgICAoYmFzZSAxNikJCUVuc2VvLCBJbmMuCisJCQkJNDAxIEludGVybmF0aW9uYWwgUGFya3dheQorCQkJCVN1aXRlIDEwMAorCQkJCVJpY2hhcmRzb24gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUY5ICAgKGhleCkJCVdJUkVDT00gVGVjaG5vbG9naWVzCiswMDIxRjkgICAgIChiYXNlIDE2KQkJV0lSRUNPTSBUZWNobm9sb2dpZXMKKwkJCQkxMzUsIHJ1ZSBKYWNxdWVzIENoYXJsZXMKKwkJCQlPTElWRVQgTG9pcmV0IDQ1MTY2CisJCQkJRlJBTkNFCisKKzAwLTIxLUZBICAgKGhleCkJCUE0U1AgVGVjaG5vbG9naWVzIEx0ZC4KKzAwMjFGQSAgICAgKGJhc2UgMTYpCQlBNFNQIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJS2VpbGFyYW50YSAxOSBECisJCQkJRXNwb28gVXVzaW1hYSAwMjE1MAorCQkJCUZJTkxBTkQKKworMDAtMjEtRkIgICAoaGV4KQkJTEcgRWxlY3Ryb25pY3MKKzAwMjFGQiAgICAgKGJhc2UgMTYpCQlMRyBFbGVjdHJvbmljcworCQkJCTYwLTM5LEthc2FuLWRvbmcsS3VtY2hvbi1rdSwKKwkJCQlTZW91bCAgMTUzLTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS1GQyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyMUZDICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yMS1GRCAgIChoZXgpCQlEU1RBIFMuTC4KKzAwMjFGRCAgICAgKGJhc2UgMTYpCQlEU1RBIFMuTC4KKwkJCQlNYWphZGEgNAorCQkJCVRyZXMgQ2FudG9zIE1hZHJpZCAyODc2MAorCQkJCVNQQUlOCisKKzAwLTIxLUZFICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDIxRkUgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTIxLUZGICAgKGhleCkJCUN5ZnJvd3kgUG9sc2F0IFNBCiswMDIxRkYgICAgIChiYXNlIDE2KQkJQ3lmcm93eSBQb2xzYXQgU0EKKwkJCQmjdWJpbm93YSA0QQorCQkJCVdhcnNhdyBNYXpvd2llY2tpZSAwMy04NzgKKwkJCQlQT0xBTkQKKworMDAtMjItMDAgICAoaGV4KQkJSUJNIENvcnAKKzAwMjIwMCAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTIwNTEgTWlzc2lvbiBDb2xsZWdlIEJsdmQgCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTAxICAgKGhleCkJCUFrc3lzIE5ldHdvcmtzIEluYworMDAyMjAxICAgICAoYmFzZSAxNikJCUFrc3lzIE5ldHdvcmtzIEluYworCQkJCTQyOCwgMzU1MyAtIDMxIFN0cmVldCBOVworCQkJCUNhbGdhcnkgIFQyTCAySzcKKwkJCQlDQU5BREEKKworMDAtMjItMDIgICAoaGV4KQkJRXhjaXRvIEVsZWt0cm9uaWsgaSBTa+VuZSBBQgorMDAyMjAyICAgICAoYmFzZSAxNikJCUV4Y2l0byBFbGVrdHJvbmlrIGkgU2vlbmUgQUIKKwkJCQlCb3ggMTI2CisJCQkJTPZkZGVr9nBpbmdlICAyNDYgMjIKKwkJCQlTV0VERU4KKworMDAtMjItMDMgICAoaGV4KQkJR2xlbnNvdW5kIEVsZWN0cm9uaWNzIEx0ZAorMDAyMjAzICAgICAoYmFzZSAxNikJCUdsZW5zb3VuZCBFbGVjdHJvbmljcyBMdGQKKwkJCQkxIC0gNiBCcm9va3MgUGxhY2UKKwkJCQlNYWlkc3RvbmUgS2VudCBNRTE3IDFVTgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIyLTA0ICAgKGhleCkJCUtPUkFURUsKKzAwMjIwNCAgICAgKGJhc2UgMTYpCQlLT1JBVEVLCisJCQkJR2V1bWplb25nLWRvbmcKKwkJCQlHdW5wby1zaSBHeWVvbmdnaS1kbyA0MzUtODI1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIyLTA1ICAgKGhleCkJCVdlTGluayBTb2x1dGlvbnMsIEluYy4KKzAwMjIwNSAgICAgKGJhc2UgMTYpCQlXZUxpbmsgU29sdXRpb25zLCBJbmMuCisJCQkJM0YsIE5vLiA4OCwgU2VjLiAxLCBOZWktSHUgUmQuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLTA2ICAgKGhleCkJCUN5YmVyZHluZSBJbmMuCiswMDIyMDYgICAgIChiYXNlIDE2KQkJQ3liZXJkeW5lIEluYy4KKwkJCQk1MDSBQEM0OS0yCisJCQkJVHN1a3ViYS1zaGkgSWJhcmFraS1rZW4gMzA1LTA4MTcKKwkJCQlKQVBBTgorCiswMC0yMi0wNyAgIChoZXgpCQlJbnRlbm8gQnJvYWRiYW5kIFRlY2hub2xvZ3kgQUIKKzAwMjIwNyAgICAgKGJhc2UgMTYpCQlJbnRlbm8gQnJvYWRiYW5kIFRlY2hub2xvZ3kgQUIKKwkJCQlEcml2aGp1bHN25GdlbiAyMgorCQkJCVN0b2NraG9sbSBTRSAxMjYzMAorCQkJCVNXRURFTgorCiswMC0yMi0wOCAgIChoZXgpCQlDZXJ0aWNvbSBDb3JwCiswMDIyMDggICAgIChiYXNlIDE2KQkJQ2VydGljb20gQ29ycAorCQkJCTU1MjAgRXhwbG9yZXIgRHJpdmUsIDR0aCBGbG9vcgorCQkJCU1pc3Npc3NhdWdhIE9OIEw0VyA1TDEKKwkJCQlDQU5BREEKKworMDAtMjItMDkgICAoaGV4KQkJT21yb24gSGVhbHRoY2FyZSBDby4sIEx0ZAorMDAyMjA5ICAgICAoYmFzZSAxNikJCU9tcm9uIEhlYWx0aGNhcmUgQ28uLCBMdGQKKwkJCQkyNCBZYW1hbm9zaGl0YS1jaG8gWWFtYW5vdWNoaQorCQkJCVVreW9rdQorCQkJCUt5b3RvICA2MTUwMDg0CisJCQkJSkFQQU4KKworMDAtMjItMEEgICAoaGV4KQkJT25MaXZlLCBJbmMKKzAwMjIwQSAgICAgKGJhc2UgMTYpCQlPbkxpdmUsIEluYworCQkJCTE4MSBMeXR0b24gQXZlCisJCQkJUGFsbyBBbHRvIENhbGlmb3JuaWEgOTQzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTBCICAgKGhleCkJCU5hdGlvbmFsIFNvdXJjZSBDb2RpbmcgQ2VudGVyCiswMDIyMEIgICAgIChiYXNlIDE2KQkJTmF0aW9uYWwgU291cmNlIENvZGluZyBDZW50ZXIKKwkJCQlTdWl0ZSA3MDEsUG93ZXIgQ3JlYXRpdmUgQSxOby4xCisJCQkJU2hhbmdkaSBFYXN0IFJvYWQsSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTIyLTBDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjIwQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0wRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIyMEQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMEUgICAoaGV4KQkJSW5kaWdvIFNlY3VyaXR5IENvLiwgTHRkLgorMDAyMjBFICAgICAoYmFzZSAxNikJCUluZGlnbyBTZWN1cml0eSBDby4sIEx0ZC4KKwkJCQkybmQgRmxvb3IsIDI3Ny0xNjkgU3VuZ3NvbzItR2EsIFN1bmdkb25nLUd1CisJCQkJU2VvdWwgIDEzMy04MzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItMEYgICAoaGV4KQkJTW9DQSAoTXVsdGltZWRpYSBvdmVyIENvYXggQWxsaWFuY2UpCiswMDIyMEYgICAgIChiYXNlIDE2KQkJTW9DQSAoTXVsdGltZWRpYSBvdmVyIENvYXggQWxsaWFuY2UpCisJCQkJOTAgSW52ZXJuZXNzIENpcmNsZSBFYXN0CisJCQkJRW5nbGV3b29kIENBIDk0NTgzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0xMCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyMjEwICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMTEgICAoaGV4KQkJUm9oYXRpIFN5c3RlbXMKKzAwMjIxMSAgICAgKGJhc2UgMTYpCQlSb2hhdGkgU3lzdGVtcworCQkJCTExOTIgQm9ycmVnYXMgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0xMiAgIChoZXgpCQlDQUkgTmV0d29ya3MsIEluYy4KKzAwMjIxMiAgICAgKGJhc2UgMTYpCQlDQUkgTmV0d29ya3MsIEluYy4KKwkJCQkxNzE1IEUuIFdpbHNoaXJlIEF2ZW51ZQorCQkJCVNURSA3MTkKKwkJCQlTYW50YSBBbmEgQ2FsaWZvcm5pYSA5MjcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMTMgICAoaGV4KQkJUENJIENPUlBPUkFUSU9OCiswMDIyMTMgICAgIChiYXNlIDE2KQkJUENJIENPUlBPUkFUSU9OCisJCQkJTm8uMjUsIExhbmUgNjYsIEhlYmVpIDFzdCBTdC4sICBCZWl0dW4gRGlzdHJpY3QKKwkJCQlUYWljaHVuZyAgNDA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi0xNCAgIChoZXgpCQlSSU5OQUkgS09SRUEKKzAwMjIxNCAgICAgKGJhc2UgMTYpCQlSSU5OQUkgS09SRUEKKwkJCQk1NjAtMiwgU2hpYmpvbmctMWRvbmcsIFB1cHlvdW5nLWd1CisJCQkJNXRoIFJlc2VhcmNoIFRlYW0KKwkJCQlQdXB5b3VuZy1ndSBJbmNoZW9uIDQwMy04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItMTUgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCiswMDIyMTUgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdSwKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItMTYgICAoaGV4KQkJU0hJQkFVUkEgVkVORElORyBNQUNISU5FIENPUlBPUkFUSU9OCiswMDIyMTYgICAgIChiYXNlIDE2KQkJU0hJQkFVUkEgVkVORElORyBNQUNISU5FIENPUlBPUkFUSU9OCisJCQkJRWtpbWFlLWNobzEzLTEwCisJCQkJT2JhbWEtc2hpIEZ1a3VpLWtlbiA5MTctMDA3NworCQkJCUpBUEFOCisKKzAwLTIyLTE3ICAgKGhleCkJCU5lYXQgRWxlY3Ryb25pY3MKKzAwMjIxNyAgICAgKGJhc2UgMTYpCQlOZWF0IEVsZWN0cm9uaWNzCisJCQkJVmFydXbkZ2VuIDIKKwkJCQlM9mRkZWv2cGluZ2UgU2vlbmUgU0UtMjQ2NDIKKwkJCQlTV0VERU4KKworMDAtMjItMTggICAoaGV4KQkJVmVyaXZ1ZSBJbmMuCiswMDIyMTggICAgIChiYXNlIDE2KQkJVmVyaXZ1ZSBJbmMuCisJCQkJMyBDYXJsaXNsZSBSb2FkCisJCQkJV2VzdGZvcmQgTUEgMDE4ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTE5ICAgKGhleCkJCURlbGwgSW5jCiswMDIyMTkgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTFBICAgKGhleCkJCUF1ZGlvIFByZWNpc2lvbgorMDAyMjFBICAgICAoYmFzZSAxNikJCUF1ZGlvIFByZWNpc2lvbgorCQkJCTU3NTAgU1cgQXJjdGljIERyaXZlCisJCQkJQmVhdmVydG9uIE9SIDk3MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0xQiAgIChoZXgpCQlNb3JlZ2EgU3lzdGVtcworMDAyMjFCICAgICAoYmFzZSAxNikJCU1vcmVnYSBTeXN0ZW1zCisJCQkJNTc3MCBIdXJvbnRhcmlvIFN0cmVldAorCQkJCVN1aXRlIDUwMQorCQkJCU1pc3Npc3NhdWdhIE9udGFyaW8gTDVSIDNHNQorCQkJCUNBTkFEQQorCiswMC0yMi0xQyAgIChoZXgpCQlQUklWQVRFCiswMDIyMUMgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTIyLTFEICAgKGhleCkJCUZyZWVnZW5lIFRlY2hub2xvZ3kgTFRECiswMDIyMUQgICAgIChiYXNlIDE2KQkJRnJlZWdlbmUgVGVjaG5vbG9neSBMVEQKKwkJCQkzL0YgLEMgQkxERyxXZWlwZW5nZGEgSW5kdXN0cmlhbCBQYXJrCisJCQkJbG9uZ2tvdSBpbmR1c3RyaWFsIGFyZWEsYmFvLWFuIGRpc3RyaWN0CisJCQkJU2hlbnpoZW4gR29uZ2RvbmcgNTE4MTA5CisJCQkJQ0hJTkEKKworMDAtMjItMUUgICAoaGV4KQkJTWVkaWEgRGV2aWNlcyBDby4sIEx0ZC4KKzAwMjIxRSAgICAgKGJhc2UgMTYpCQlNZWRpYSBEZXZpY2VzIENvLiwgTHRkLgorCQkJCVJtMTAwMiBBY2UgVGVjaG5vVG93ZXIoOXRoKSAzNDUtMzAKKwkJCQlLYXNhbi1kb25nLCBLdW1jaG9uLWt1CisJCQkJU2VvdWwgIDE1My04MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItMUYgICAoaGV4KQkJZVNhbmcgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAyMjFGICAgICAoYmFzZSAxNikJCWVTYW5nIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQkjMS04MTcsIElUIENhc3RsZSA1NTAtMSwgR2FzYW4tRG9uZywKKwkJCQlHZXVtY2hlb24tR3UsCisJCQkJU2VvdWwgIDE1My03NjgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItMjAgICAoaGV4KQkJTWl0YWMgVGVjaG5vbG9neSBDb3JwCiswMDIyMjAgICAgIChiYXNlIDE2KQkJTWl0YWMgVGVjaG5vbG9neSBDb3JwCisJCQkJOXRoIEZsLiwgIzc1LCBNaW4tc2hlbmcgRS4gUm9hZCwgU2VjLiAzLAorCQkJCVRhaXBlaSAgMTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi0yMSAgIChoZXgpCQlJVE9IIERFTktJIENPLExURC4KKzAwMjIyMSAgICAgKGJhc2UgMTYpCQlJVE9IIERFTktJIENPLExURC4KKwkJCQkxMTQ2LTIsIEFzYXp1bWEtY2hvCisJCQkJS2FzYWkgSHlvZ28gNjc5LTAxODAKKwkJCQlKQVBBTgorCiswMC0yMi0yMiAgIChoZXgpCQlTY2hhZmZuZXIgRGV1dHNjaGxhbmQgR21iSCAKKzAwMjIyMiAgICAgKGJhc2UgMTYpCQlTY2hhZmZuZXIgRGV1dHNjaGxhbmQgR21iSCAKKwkJCQlO77+9cnRpbmdlbiBCcmFuY2gKKwkJCQlSYWlkd2FuZ2VyIFN0ci4gMTIgCisJCQkJTu+/vXJ0aW5nZW4gQlcgRC03MjYyMiAKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLTIzICAgKGhleCkJCVRpbWVLZWVwaW5nIFN5c3RlbXMsIEluYy4KKzAwMjIyMyAgICAgKGJhc2UgMTYpCQlUaW1lS2VlcGluZyBTeXN0ZW1zLCBJbmMuCisJCQkJMzA3MDAgQmFpbmJyaWRnZSBSb2FkCisJCQkJU3VpdGUgSAorCQkJCVNvbG9uIE9IIDQ0MTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0yNCAgIChoZXgpCQlHb29kIFdpbGwgSW5zdHJ1bWVudCBDby4sIEx0ZC4KKzAwMjIyNCAgICAgKGJhc2UgMTYpCQlHb29kIFdpbGwgSW5zdHJ1bWVudCBDby4sIEx0ZC4KKwkJCQlOby4gNy0xIEpob25nc2luZyBSb2FkLAorCQkJCVR1Y2hlbmcgQ2l0eQorCQkJCVRhaXBlaSAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi0yNSAgIChoZXgpCQlUaGFsZXMgQXZpb25pY3MgTHRkCiswMDIyMjUgICAgIChiYXNlIDE2KQkJVGhhbGVzIEF2aW9uaWNzIEx0ZAorCQkJCTg2IEJ1c2hleSBSb2FkCisJCQkJUmF5bmVzIFBhcmsKKwkJCQlMb25kb24gIFNXMjAgMEpXCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjItMjYgICAoaGV4KQkJQXZhYWssIEluYy4KKzAwMjIyNiAgICAgKGJhc2UgMTYpCQlBdmFhaywgSW5jLgorCQkJCTk2NDUgU2NyYW50b24gUmQuLCBTdWl0ZSAxMTAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTI3ICAgKGhleCkJCXV2LWVsZWN0cm9uaWMgR21iSAorMDAyMjI3ICAgICAoYmFzZSAxNikJCXV2LWVsZWN0cm9uaWMgR21iSAorCQkJCUdyb3Nzd2llc2Vuc3RyYXNzZSAyMAorCQkJCUR1cmNoaGF1c2VuIEJhZGVuLVf8cnR0ZW1iZXJnIDc4NTkxCisJCQkJR0VSTUFOWQorCiswMC0yMi0yOCAgIChoZXgpCQlCcmVlemUgSW5ub3ZhdGlvbnMgTHRkLgorMDAyMjI4ICAgICAoYmFzZSAxNikJCUJyZWV6ZSBJbm5vdmF0aW9ucyBMdGQuCisJCQkJSGFyIEhvdHp2aW0sIFAuTy4gQm94IDQ1Mzk3CisJCQkJSmVydXNhbGVtIElzcmFlbCA5MTQ1MQorCQkJCUlTUkFFTAorCiswMC0yMi0yOSAgIChoZXgpCQlDb21wdW1lZGljcyBMdGQKKzAwMjIyOSAgICAgKGJhc2UgMTYpCQlDb21wdW1lZGljcyBMdGQKKwkJCQkzMCAtIDQwIEZsb2NraGFydCBTdHJlZXQKKwkJCQlBYmJvdHNmb3JkIFZpY3RvcmlhIDMwNjcKKwkJCQlBVVNUUkFMSUEKKworMDAtMjItMkEgICAoaGV4KQkJU291bmRFYXIgQS9TCiswMDIyMkEgICAgIChiYXNlIDE2KQkJU291bmRFYXIgQS9TCisJCQkJUmVudGVtZXN0ZXJ2ZWogODAKKwkJCQlDb3BlbmhhZ2VuIE5WIERlbm1hcmsgREstMjQwMAorCQkJCURFTk1BUksKKworMDAtMjItMkIgICAoaGV4KQkJTnVjb21tLCBJbmMuCiswMDIyMkIgICAgIChiYXNlIDE2KQkJTnVjb21tLCBJbmMuCisJCQkJMTAxIEJpbGJ5IFJvYWQKKwkJCQlIYWNrZXR0c3Rvd24gTkogMDc4NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTJDICAgKGhleCkJCUNldG9uIENvcnAKKzAwMjIyQyAgICAgKGJhc2UgMTYpCQlDZXRvbiBDb3JwCisJCQkJODI1OSAxMjJuZCBBdmUgTkUsIFN1aXRlIDI3NQorCQkJCUtpcmtsYW5kIFdhc2hpbmd0b24gOTgwMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTJEICAgKGhleCkJCVNNQyBOZXR3b3JrcyBJbmMuCiswMDIyMkQgICAgIChiYXNlIDE2KQkJU01DIE5ldHdvcmtzIEluYy4KKwkJCQkyMCBNYXNvbgorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMkUgICAoaGV4KQkJbWFpbnRlY2ggR21iSAorMDAyMjJFICAgICAoYmFzZSAxNikJCW1haW50ZWNoIEdtYkgKKwkJCQlTZWV3ZWcgNjAKKwkJCQlI9mNoYmVyZyBCYXZhcmlhIDk3MjA0CisJCQkJR0VSTUFOWQorCiswMC0yMi0yRiAgIChoZXgpCQlPcGVuIEdyaWQgQ29tcHV0aW5nLCBJbmMuCiswMDIyMkYgICAgIChiYXNlIDE2KQkJT3BlbiBHcmlkIENvbXB1dGluZywgSW5jLgorCQkJCTQwMzAtMSBXZXN0IEJyYWtlciBMYW5lIFNURTEzMAorCQkJCUF1c3RpbiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMzAgICAoaGV4KQkJRnV0dXJlTG9naWMgSW5jLgorMDAyMjMwICAgICAoYmFzZSAxNikJCUZ1dHVyZUxvZ2ljIEluYy4KKwkJCQk0MjUgRS4gQ29sb3JhZG8gU3QuLCBTdGUuIDEwMAorCQkJCUdsZW5kYWxlIENBIDkxMjA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0zMSAgIChoZXgpCQlTTVQmQyBDby4sIEx0ZC4KKzAwMjIzMSAgICAgKGJhc2UgMTYpCQlTTVQmQyBDby4sIEx0ZC4KKwkJCQkyRnIuIEhha3NhbiBCbGRnLiAxMTAsIEd3YW5namFuZy1kb25nLCBHd2FuZ2ppbi1ndQorCQkJCVNlb3VsICAxNDMtODAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIyLTMyICAgKGhleCkJCURlc2lnbiBEZXNpZ24gVGVjaG5vbG9neSBMdGQKKzAwMjIzMiAgICAgKGJhc2UgMTYpCQlEZXNpZ24gRGVzaWduIFRlY2hub2xvZ3kgTHRkCisJCQkJVW5pdCA5LCBBc2ggUm9hZCBTb3V0aAorCQkJCVdyZXhoYW0gSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlXcmV4aGFtIE5vcnRoIFdhbGVzIExMMTMgOVVHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjItMzMgICAoaGV4KQkJUGlyZWxsaSBCcm9hZGJhbmQgU29sdXRpb25zCiswMDIyMzMgICAgIChiYXNlIDE2KQkJUGlyZWxsaSBCcm9hZGJhbmQgU29sdXRpb25zCisJCQkJVklBTEUgU0FSQ0EgMjIyCisJCQkJTUlMQU5PICAyMDEyNgorCQkJCUlUQUxZCisKKzAwLTIyLTM0ICAgKGhleCkJCUNvcnZlbnRpcyBJbmMuCiswMDIyMzQgICAgIChiYXNlIDE2KQkJQ29ydmVudGlzIEluYy4KKwkJCQkxNDEwIEVuZXJneSBQYXJrIERyLiBTdWl0ZSAjMQorCQkJCVN0LiBQYXVsIE1pbm5lc290YSA1NTEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMzUgICAoaGV4KQkJU3RydWt0b24gU3lzdGVtcyBidgorMDAyMjM1ICAgICAoYmFzZSAxNikJCVN0cnVrdG9uIFN5c3RlbXMgYnYKKwkJCQlXZXN0a2FuYWFsZGlqayAyCisJCQkJVXRyZWNodCAgMzU0MiBEQQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIyLTM2ICAgKGhleCkJCVZFQ1RPUiBTUC4gWiBPLk8uCiswMDIyMzYgICAgIChiYXNlIDE2KQkJVkVDVE9SIFNQLiBaIE8uTy4KKwkJCQlLUlpFTU9XQSA2CisJCQkJR0RZTklBICA4MS01NzcKKwkJCQlQT0xBTkQKKworMDAtMjItMzcgICAoaGV4KQkJU2hpbmhpbnQgR3JvdXAKKzAwMjIzNyAgICAgKGJhc2UgMTYpCQlTaGluaGludCBHcm91cAorCQkJCVVuaXQgMTUwNiwgMTUvRiwgTmFueWFuZyBQbGF6YSwsIDU3IEh1bmcgVG8gUm9hZCwKKwkJCQlLd3VuIFRvbmcsIEtsbgorCQkJCUhPTkcgS09ORworCiswMC0yMi0zOCAgIChoZXgpCQlMT0dJUExVUworMDAyMjM4ICAgICAoYmFzZSAxNikJCUxPR0lQTFVTCisJCQkJMSwgUlVFIENMRU1FTlQgQURFUgorCQkJCUItNjA0MSBHT1NTRUxFSUVTCisJCQkJR09TU0VMSUVTIEhBSU5BVVQgQi02MDQxCisJCQkJQkVMR0lVTQorCiswMC0yMi0zOSAgIChoZXgpCQlJbmRpYW5hIExpZmUgU2NpZW5jZXMgSW5jb3Jwb3JhdGVkCiswMDIyMzkgICAgIChiYXNlIDE2KQkJSW5kaWFuYSBMaWZlIFNjaWVuY2VzIEluY29ycG9yYXRlZAorCQkJCTg4NzUgQmFzaCBTdHJlZXQKKwkJCQlJbmRpYW5hcG9saXMgSW5kaWFuYSA0NjI1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItM0EgICAoaGV4KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBDaXNjbyBTUFZUIEdyb3VwCiswMDIyM0EgICAgIChiYXNlIDE2KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBDaXNjbyBTUFZUIEdyb3VwCisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTNCICAgKGhleCkJCUNvbW11bmljYXRpb24gTmV0d29ya3MsIExMQworMDAyMjNCICAgICAoYmFzZSAxNikJCUNvbW11bmljYXRpb24gTmV0d29ya3MsIExMQworCQkJCTMgQ29ycG9yYXRlIERyaXZlCisJCQkJRGFuYnVyeSBDVCAwNjgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItM0MgICAoaGV4KQkJUkFUSU8gRW50d2lja2x1bmdlbiBHbWJICiswMDIyM0MgICAgIChiYXNlIDE2KQkJUkFUSU8gRW50d2lja2x1bmdlbiBHbWJICisJCQkJTHVkd2lnLUVyaGFyZC1TdHJhc3NlIDIyCisJCQkJSGFtYnVyZyAgMjA0NTkKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLTNEICAgKGhleCkJCUp1bXBHZW4gU3lzdGVtcywgTExDCiswMDIyM0QgICAgIChiYXNlIDE2KQkJSnVtcEdlbiBTeXN0ZW1zLCBMTEMKKwkJCQkyMTExIFBhbG9tYXIgQWlycG9ydCBSZCwgU3RlIDE0MAorCQkJCUNhcmxzYmFkIENBIDkyMDExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0zRSAgIChoZXgpCQlJUlRyYW5zIEdtYkgKKzAwMjIzRSAgICAgKGJhc2UgMTYpCQlJUlRyYW5zIEdtYkgKKwkJCQlFaW5zdGVpbnN0cmFzc2UgMTQKKwkJCQlVbnRlcnNjaGxlaXNzaGVpbSBCQVlFUk4gODU3MTYKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLTNGICAgKGhleCkJCU5ldGdlYXIgSW5jLgorMDAyMjNGICAgICAoYmFzZSAxNikJCU5ldGdlYXIgSW5jLgorCQkJCTQ1MDAgR3JlYXQgQW1lcmljYSBQa3kKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNDAgICAoaGV4KQkJVW5pdmVyc2FsIFRlbGVjb20gUy9BCiswMDIyNDAgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIFRlbGVjb20gUy9BCisJCQkJQXZlbmlkYSBQYXVsaXN0YSwgMjQ0NCAtIDE3IGFuZGFyCisJCQkJU2FvIFBhdWxvICAwMTMxMC0zMDAKKwkJCQlCUkFaSUwKKworMDAtMjItNDEgICAoaGV4KQkJQXBwbGUsIEluYworMDAyMjQxICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTQyICAgKGhleCkJCUFsYWNyb24gSW5jLgorMDAyMjQyICAgICAoYmFzZSAxNikJCUFsYWNyb24gSW5jLgorCQkJCTcxIFNwaXQgQnJvb2sgUmQuCisJCQkJU3VpdGUgMjA0CisJCQkJTmFzaHVhIE5IIDAzMDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi00MyAgIChoZXgpCQlBenVyZVdhdmUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDIyNDMgICAgIChiYXNlIDE2KQkJQXp1cmVXYXZlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCThGLiwgTm8uIDk0LCBCYW96aG9uZyBSZC4sIFhpbmRpYW4KKwkJCQlUYWlwZWkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItNDQgICAoaGV4KQkJQ2hlbmdkdSBMaW5rb24gQ29tbXVuaWNhdGlvbnMgRGV2aWNlIENvLiwgTHRkCiswMDIyNDQgICAgIChiYXNlIDE2KQkJQ2hlbmdkdSBMaW5rb24gQ29tbXVuaWNhdGlvbnMgRGV2aWNlIENvLiwgTHRkCisJCQkJNWYtMDIsIEp1bnRvbmcgQnVpbGRpbmcsIE5vLiA1MyxTaHVhbmdmZW5nIFJvYWQsIFd1aG91IERpc3RyaWN0LAorCQkJCUNoZW5nZHUgU2ljaHVhbiA2MTAwNDEKKwkJCQlDSElOQQorCiswMC0yMi00NSAgIChoZXgpCQlMZWluZSAmIExpbmRlIEFCCiswMDIyNDUgICAgIChiYXNlIDE2KQkJTGVpbmUgJiBMaW5kZSBBQgorCQkJCUJveCA4CisJCQkJU3Ry5G5nbuRzIFP2ZGVybWFubGFuZCBTRS02NDUgMjEKKwkJCQlTV0VERU4KKworMDAtMjItNDYgICAoaGV4KQkJRXZvYyBJbnRlbGxpZ2VudCBUZWNobm9sb2d5IENvLixMdGQuCiswMDIyNDYgICAgIChiYXNlIDE2KQkJRXZvYyBJbnRlbGxpZ2VudCBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJTm8uMzEgR2FveGluIENlbnRlcmFsIEF2ZW51ZSA0dGggUm9hZCxOYW5zaGFuIERpc3RyaWN0IFNoZW56aGVuIENpdHkKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjItNDcgICAoaGV4KQkJREFDIEVOR0lORUVSSU5HIENPLiwgTFRELgorMDAyMjQ3ICAgICAoYmFzZSAxNikJCURBQyBFTkdJTkVFUklORyBDTy4sIExURC4KKwkJCQkxLTUgT3lhbmFnaS1jaG8KKwkJCQlLYW1pdG9iYSwgTWluYW1pLWt1CisJCQkJS3lvdG8gIDYwMS04MTI4CisJCQkJSkFQQU4KKworMDAtMjItNDggICAoaGV4KQkJTWljcm9zb2Z0IENvcnBvcmF0aW9uCiswMDIyNDggICAgIChiYXNlIDE2KQkJTWljcm9zb2Z0IENvcnBvcmF0aW9uCisJCQkJT25lIE1pY3Jvc29mdCBXYXkKKwkJCQlSZWRtb25kIFdhc2hpbmd0b24gOTgwNTItNjM5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNDkgICAoaGV4KQkJSE9NRSBNVUxUSUVORVJHWSBTTAorMDAyMjQ5ICAgICAoYmFzZSAxNikJCUhPTUUgTVVMVElFTkVSR1kgU0wKKwkJCQlDQVBJVMFOIEhBWUEgMQorCQkJCUVESUZJQ0lPIEVVQ09DRU5UUk8gQkFKTworCQkJCU1BRFJJRCAgMjgwMjAKKwkJCQlTUEFJTgorCiswMC0yMi00QSAgIChoZXgpCQlSQVlMQVNFIEFHCiswMDIyNEEgICAgIChiYXNlIDE2KQkJUkFZTEFTRSBBRworCQkJCUFyZ2Vsc3JpZWRlciBGZWxkIDItNAorCQkJCVdlc3NsaW5nIEJhdmFyaWEgODIyMzQKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLTRCICAgKGhleCkJCUFJUlRFQ0ggVEVDSE5PTE9HSUVTLCBJTkMuCiswMDIyNEIgICAgIChiYXNlIDE2KQkJQUlSVEVDSCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkxOWZsLTQsIG5vLjc3LCBIc2luIFRhaSBXdSBSZC4sIHNlYy4xLCBIc2luLUNoaWgKKwkJCQlUYWlwZWkgIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItNEMgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDIyNEMgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMjItNEQgICAoaGV4KQkJTUlUQUMgSU5URVJOQVRJT05BTCBDT1JQLgorMDAyMjREICAgICAoYmFzZSAxNikJCU1JVEFDIElOVEVSTkFUSU9OQUwgQ09SUC4KKwkJCQk2VEggRkwuLCBOTzE4NywgVElESU5HIEJMVkQuLCBTRUMuIDIKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItNEUgICAoaGV4KQkJU0VFbmVyZ3kgQ29ycC4KKzAwMjI0RSAgICAgKGJhc2UgMTYpCQlTRUVuZXJneSBDb3JwLgorCQkJCTRGLCBOby42MSwgRG9uZ3NpbmcgUkQuCisJCQkJVGFpcGVpICAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLTRGICAgKGhleCkJCUJ5em9ybyBOZXR3b3JrcyBMdGQuCiswMDIyNEYgICAgIChiYXNlIDE2KQkJQnl6b3JvIE5ldHdvcmtzIEx0ZC4KKwkJCQlSb29tIDVBMSxCbG9jayBBLCBLZXNoaSBQbGF6YSxOby4gMjhBIEluZm8uIFJvYWQsCisJCQkJSGFpRGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTIyLTUwICAgKGhleCkJCVBvaW50IFNpeCBXaXJlbGVzcywgTExDCiswMDIyNTAgICAgIChiYXNlIDE2KQkJUG9pbnQgU2l4IFdpcmVsZXNzLCBMTEMKKwkJCQkyMzMzIEFsdW1uaSBQYXJrIFBsYXphCisJCQkJU3VpdGUgMzA1CisJCQkJTGV4aW5ndG9uIEtZIDQwNTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi01MSAgIChoZXgpCQlMdW1hc2Vuc2UgVGVjaG5vbG9naWVzCiswMDIyNTEgICAgIChiYXNlIDE2KQkJTHVtYXNlbnNlIFRlY2hub2xvZ2llcworCQkJCTMwMzMgU2NvdHQgQmx2ZC4KKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNTIgICAoaGV4KQkJWk9MTCBMaWZlY29yIENvcnBvcmF0aW9uCiswMDIyNTIgICAgIChiYXNlIDE2KQkJWk9MTCBMaWZlY29yIENvcnBvcmF0aW9uCisJCQkJMTIxIEZyZWVwb3J0IFJvYWQKKwkJCQlQaXR0c2J1cmdoIFBBIDE1MjM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi01MyAgIChoZXgpCQlFbnRvcmlhbiBUZWNobm9sb2dpZXMKKzAwMjI1MyAgICAgKGJhc2UgMTYpCQlFbnRvcmlhbiBUZWNobm9sb2dpZXMKKwkJCQk4OTAwIFNob2FsIENyZWVrIEJsdmQKKwkJCQlBdXN0aW4gVFggNzg3NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTU0ICAgKGhleCkJCUJpZ2Vsb3cgQWVyb3NwYWNlCiswMDIyNTQgICAgIChiYXNlIDE2KQkJQmlnZWxvdyBBZXJvc3BhY2UKKwkJCQkxODk5IFcuIEJyb29rcyBBdmUKKwkJCQlOb3J0aCBMYXMgVmVnYXMgTlYgODkwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTU1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjI1NSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi01NiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIyNTYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNTcgICAoaGV4KQkJM0NvbSBFdXJvcGUgTHRkCiswMDIyNTcgICAgIChiYXNlIDE2KQkJM0NvbSBFdXJvcGUgTHRkCisJCQkJUGVvcGxlYnVpbGRpbmcgMgorCQkJCU1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cy4gSFAyIDROVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIyLTU4ICAgKGhleCkJCVRhaXlvIFl1ZGVuIENvLiwgTHRkLgorMDAyMjU4ICAgICAoYmFzZSAxNikJCVRhaXlvIFl1ZGVuIENvLiwgTHRkLgorCQkJCTgtMSwgU2FrYWUtY2hvCisJCQkJVGFrYXNha2ktc2hpIEd1bm1hLWtlbiAzNzAtODUyMgorCQkJCUpBUEFOCisKKzAwLTIyLTU5ICAgKGhleCkJCUd1YW5nemhvdSBOZXcgUG9zdGNvbSBFcXVpcG1lbnQgQ28uLEx0ZC4KKzAwMjI1OSAgICAgKGJhc2UgMTYpCQlHdWFuZ3pob3UgTmV3IFBvc3Rjb20gRXF1aXBtZW50IENvLixMdGQuCisJCQkJTm8uM6GhR3VhbmdwdXhpIFJvYWQsR3Vhbmd6aG91IFNjaWVuY2UgQ2l0eSwKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDY2MworCQkJCUNISU5BCisKKzAwLTIyLTVBICAgKGhleCkJCUdhcmRlIFNlY3VyaXR5IEFCCiswMDIyNUEgICAgIChiYXNlIDE2KQkJR2FyZGUgU2VjdXJpdHkgQUIKKwkJCQlCb3ggNzgKKwkJCQlTb2RlcmhhbW4gIFMtODI2IDIyCisJCQkJU1dFREVOCisKKzAwLTIyLTVCICAgKGhleCkJCVRlcmFkaWNpIENvcnBvcmF0aW9uCiswMDIyNUIgICAgIChiYXNlIDE2KQkJVGVyYWRpY2kgQ29ycG9yYXRpb24KKwkJCQkjNTAwIC0gNDQwMCBEb21pbmlvbiBTdC4KKwkJCQlCdXJuYWJ5IEJDIFY1RyAkRzMKKwkJCQlDQU5BREEKKworMDAtMjItNUMgICAoaGV4KQkJTXVsdGltZWRpYSAmIENvbW11bmljYXRpb24gVGVjaG5vbG9neQorMDAyMjVDICAgICAoYmFzZSAxNikJCU11bHRpbWVkaWEgJiBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kKKwkJCQlEaWdpdGFsIEVtcGlyZSBELTgwMSAjOTgwLTMKKwkJCQlZZW9uZ1RvbmctRG9uZworCQkJCVN1d29uLUNpdHkgS3llb25nR2ktRG8gNDQzLTgxMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMi01RCAgIChoZXgpCQlEaWdpY2FibGUgTmV0d29yayBJbmRpYSBQdnQuIEx0ZC4KKzAwMjI1RCAgICAgKGJhc2UgMTYpCQlEaWdpY2FibGUgTmV0d29yayBJbmRpYSBQdnQuIEx0ZC4KKwkJCQk3QiwgU2hhaCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCU9mZi4gVmVlcmEgRGVzYWkgUm9hZCwKKwkJCQlBbmRoZXJpIC0gV2VzdCwgTXVtYmFpLiBNYWhhcmFzaHRyYSA0MDAgMDUzCisJCQkJSU5ESUEKKworMDAtMjItNUUgICAoaGV4KQkJVXdpbiBUZWNobm9sb2dpZXMgQ28uLExURAorMDAyMjVFICAgICAoYmFzZSAxNikJCVV3aW4gVGVjaG5vbG9naWVzIENvLixMVEQKKwkJCQkyRixOby4yMi5SJkQgUkQgSUksU0JJUAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItNUYgICAoaGV4KQkJTGl0ZW9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMjI1RiAgICAgKGJhc2UgMTYpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLDkwLENoaWVuIDEgUm9hZCxDaHVuZ0hvLAorCQkJCVRhaXBlaSBIc2llbiwgMjM1ODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLTYwICAgKGhleCkJCUFGUkVFWSBJbmMuCiswMDIyNjAgICAgIChiYXNlIDE2KQkJQUZSRUVZIEluYy4KKwkJCQk2RiwgTm8uMjQ5LCBDaGllbiBJIFJvYWQKKwkJCQlDaHVuZyBIbyBDaXR5IFRhaXBlaSBDb3VudHkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi02MSAgIChoZXgpCQlGcm9udGllciBTaWxpY29uIEx0ZAorMDAyMjYxICAgICAoYmFzZSAxNikJCUZyb250aWVyIFNpbGljb24gTHRkCisJCQkJR2xlbmVhZ2xlcywgVGhlIEJlbGZyeQorCQkJCUNvbG9uaWFsIFdheQorCQkJCVdhdGZvcmQgSGVydGZvcmRzaGlyZSBXRDI0IDRXSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIyLTYyICAgKGhleCkJCUJFUCBNYXJpbmUKKzAwMjI2MiAgICAgKGJhc2UgMTYpCQlCRVAgTWFyaW5lCisJCQkJMTMgVGFybmRhbGUgR3JvdmUgQWxiYW55CisJCQkJTm9ydGggU2hvcmUKKwkJCQlBdWNrbGFuZCAgMDYzMgorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTIyLTYzICAgKGhleCkJCUtvb3MgVGVjaG5pY2FsIFNlcnZpY2VzLCBJbmMuCiswMDIyNjMgICAgIChiYXNlIDE2KQkJS29vcyBUZWNobmljYWwgU2VydmljZXMsIEluYy4KKwkJCQkxMDI1IEdyZWVud29vZCBCbHZkLgorCQkJCVN1aXRlIDM5MQorCQkJCUxha2UgTWFyeSBGTCAzMjc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNjQgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDIyNjQgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMgorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTY1ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDIyNjUgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTIyLTY2ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDIyNjYgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTIyLTY3ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAyMjY3ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTIyMjEgTGFrZXNpZGUgQmx2ZAorCQkJCVJpY2hhcmRzb24gVGV4YXMgNzUwODItNDM5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNjggICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMjI2OCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCTY2LCBDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLTY5ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCiswMDIyNjkgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKwkJCQk2NiwgQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi02QSAgIChoZXgpCQlIb25leXdlbGwKKzAwMjI2QSAgICAgKGJhc2UgMTYpCQlIb25leXdlbGwKKwkJCQk4ODQwIEV2ZXJncmVlbiBCbHZkLgorCQkJCU1pbm5lYXBvbGlzIE1OIDU1NDMzLTYwNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTZCICAgKGhleCkJCUNpc2NvLUxpbmtzeXMsIExMQworMDAyMjZCICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMsIExMQworCQkJCTEyMSBUaGVvcnkgRHJpdmUKKwkJCQlJcnZpbmUgQ2FsaWZvcm5pYSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNkMgICAoaGV4KQkJTGlua1Nwcml0ZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMjI2QyAgICAgKGJhc2UgMTYpCQlMaW5rU3ByaXRlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE0MTAgQ2Fubm9uIE1vdW50YWluIERyCisJCQkJTG9uZ21vbnQgQ08gODA1MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTZEICAgKGhleCkJCVNoZW56aGVuIEdJRUMgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDIyNkQgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gR0lFQyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkyNC9GLCBYaU5pYW4gQ2VudGVyLCBTaGVuTmFuIFJvYWQgNjAyMSMsIEZ1dGlhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyBQcm92aW5jZSA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0yMi02RSAgIChoZXgpCQlHb3dlbGwgRWxlY3Ryb25pYyBMaW1pdGVkCiswMDIyNkUgICAgIChiYXNlIDE2KQkJR293ZWxsIEVsZWN0cm9uaWMgTGltaXRlZAorCQkJCVJvb20gMzYwMSAsMzYgRmxvb3IsR29sZGVuIENlbnRyYWwgVG93ZXIsSmludGlhbiBSb2FkLEZ1dGlhbiBDZW50cmFsIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwNDgKKwkJCQlDSElOQQorCiswMC0yMi02RiAgIChoZXgpCQkzb25lZGF0YSBUZWNobm9sb2d5IENvLiBMdGQuCiswMDIyNkYgICAgIChiYXNlIDE2KQkJM29uZWRhdGEgVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCTMvRiwgQi8yLCBKaXV4aWFuZ2xpbmcgSW5kdXN0cmlhbCBEaXN0cmljdCwgWGlsaSBUb3duLCBOYW5zaGFuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTUKKwkJCQlDSElOQQorCiswMC0yMi03MCAgIChoZXgpCQlBQksgTm9ydGggQW1lcmljYSwgTExDCiswMDIyNzAgICAgIChiYXNlIDE2KQkJQUJLIE5vcnRoIEFtZXJpY2EsIExMQworCQkJCTQ0MCBOb3J0aCBXb2xmZSBSZC4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTcxICAgKGhleCkJCUrkZ2VyIENvbXB1dGVyZ2VzdGV1ZXJ0ZSBNZXNzdGVjaG5payBHbWJICiswMDIyNzEgICAgIChiYXNlIDE2KQkJSuRnZXIgQ29tcHV0ZXJnZXN0ZXVlcnRlIE1lc3N0ZWNobmlrIEdtYkgKKwkJCQlSaGVpbnN0cmHfZSAyLTQKKwkJCQlMb3JzY2ggSGVzc2VuIDY0NjUzCisJCQkJR0VSTUFOWQorCiswMC0yMi03MiAgIChoZXgpCQlBbWVyaWNhbiBNaWNyby1GdWVsIERldmljZSBDb3JwLgorMDAyMjcyICAgICAoYmFzZSAxNikJCUFtZXJpY2FuIE1pY3JvLUZ1ZWwgRGV2aWNlIENvcnAuCisJCQkJMjE4MSBCdWNoYW5hbiBMb29wCisJCQkJRmVybmRhbGUgV0EgOTgyNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTczICAgKGhleCkJCVRlY2h3YXkKKzAwMjI3MyAgICAgKGJhc2UgMTYpCQlUZWNod2F5CisJCQkJUm0gMTAwMiwgRGFlaHl1biBUZWNobm8gV29ybGQgQmQsCisJCQkJMTc0LCBPanVuLURvbmcsCisJCQkJVWl3YW5nLVNpLCBLeXVuZ2tpLURvIDQzNy04MjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItNzQgICAoaGV4KQkJRmFtaWx5UGhvbmUgQUIKKzAwMjI3NCAgICAgKGJhc2UgMTYpCQlGYW1pbHlQaG9uZSBBQgorCQkJCUFuY2thcmdyaXBzZ2F0YW4gMworCQkJCU1hbG32ICAyMTExOQorCQkJCVNXRURFTgorCiswMC0yMi03NSAgIChoZXgpCQlCZWxraW4gSW50ZXJuYXRpb25hbCwgSW5jLgorMDAyMjc1ICAgICAoYmFzZSAxNikJCUJlbGtpbiBJbnRlcm5hdGlvbmFsLCBJbmMuCisJCQkJNTAxIFcuIFdhbG51dCBTdC4KKwkJCQlDb21wdG9uIENBLiA5MDIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNzYgICAoaGV4KQkJVHJpcGxlIEVZRSBCLlYuCiswMDIyNzYgICAgIChiYXNlIDE2KQkJVHJpcGxlIEVZRSBCLlYuCisJCQkJVmFhc3NlbnNld2VnIDcxCisJCQkJRW1zdCAgODE2NiBBVAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIyLTc3ICAgKGhleCkJCU5FQyBBdXN0cmFsaWEgUHR5IEx0ZAorMDAyMjc3ICAgICAoYmFzZSAxNikJCU5FQyBBdXN0cmFsaWEgUHR5IEx0ZAorCQkJCTY0OS02NTUgU3ByaW5ndmFsZSBSZAorCQkJCU11bGdyYXZlIFZpY3RvcmlhIDMxNzAKKwkJCQlBVVNUUkFMSUEKKworMDAtMjItNzggICAoaGV4KQkJU2hlbnpoZW4gIFRvbmdmYW5nIE11bHRpbWVkaWEgIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMjI3OCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiAgVG9uZ2ZhbmcgTXVsdGltZWRpYSAgVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTl0aCBGbG9vcixCdWlsZGluZyAjRCxUb25nZmFuZyBJbmZvcm1hdGlvbiBIYXJib3VyLEhpZ2gtdGVjaCBJbmR1c3RyaWFsIFBhcmssTGFuZ3NoYW4gUkQsIE5hblNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW5nIEd1YW5nRG9uZyA1MTgwNTgKKwkJCQlDSElOQQorCiswMC0yMi03OSAgIChoZXgpCQlOaXBwb24gQ29ubHV4IENvLiwgTHRkLgorMDAyMjc5ICAgICAoYmFzZSAxNikJCU5pcHBvbiBDb25sdXggQ28uLCBMdGQuCisJCQkJNS0zLTgsIENoaXlvZGEKKwkJCQlTYWthZG8tc2hpIFNhaXRhbWEgMzUwLTAyMTQKKwkJCQlKQVBBTgorCiswMC0yMi03QSAgIChoZXgpCQlUZWxlY29tIERlc2lnbgorMDAyMjdBICAgICAoYmFzZSAxNikJCVRlbGVjb20gRGVzaWduCisJCQkJWmEgUmVtb3JhCisJCQkJVm9pZSBSb21haW5lCisJCQkJMzMxNzAgR3JhZGlnbmFuIAorCQkJCUZSQU5DRQorCiswMC0yMi03QiAgIChoZXgpCQlBcG9nZWUgTGFicywgSW5jLgorMDAyMjdCICAgICAoYmFzZSAxNikJCUFwb2dlZSBMYWJzLCBJbmMuCisJCQkJMjEwIFMuIDNyZCBTdC4KKwkJCQlOb3J0aCBXYWxlcyBQQSAxOTQ1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItN0MgICAoaGV4KQkJV29vcmkgU01UIENvLixsdGQKKzAwMjI3QyAgICAgKGJhc2UgMTYpCQlXb29yaSBTTVQgQ28uLGx0ZAorCQkJCTY0OS0yLFN1d29sYW0tcmksU2VvdGFuLU15dW4KKwkJCQlQeW9uZ3RhZWsgS3lvbmdnaS1EbyA0NTEtODUyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIyLTdEICAgKGhleCkJCVlFIERBVEEgSU5DLgorMDAyMjdEICAgICAoYmFzZSAxNikJCVlFIERBVEEgSU5DLgorCQkJCTE4MiBTaGlua28KKwkJCQlJcnVtYSBTYWl0YW1hIDM1OC0wMDU1CisJCQkJSkFQQU4KKworMDAtMjItN0UgICAoaGV4KQkJQ2hlbmdkdSAzMEthaXRpYW4gQ29tbXVuaWNhdGlvbiBJbmR1c3RyeSBDby5MdGQKKzAwMjI3RSAgICAgKGJhc2UgMTYpCQlDaGVuZ2R1IDMwS2FpdGlhbiBDb21tdW5pY2F0aW9uIEluZHVzdHJ5IENvLkx0ZAorCQkJCU5vLjYgQ2h1YW5neWUgUm9hZAorCQkJCUNoZW5nZHUgU2ljaHVhbiA2MTAwNDEKKwkJCQlDSElOQQorCiswMC0yMi03RiAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzAwMjI3RiAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi04MCAgIChoZXgpCQlBMkIgRWxlY3Ryb25pY3MgQUIKKzAwMjI4MCAgICAgKGJhc2UgMTYpCQlBMkIgRWxlY3Ryb25pY3MgQUIKKwkJCQlCb3ggMTQKKwkJCQlNb3RhbGEgIFMtNTkxIDIxCisJCQkJU1dFREVOCisKKzAwLTIyLTgxICAgKGhleCkJCURhaW50cmVlIE5ldHdvcmtzIEluYworMDAyMjgxICAgICAoYmFzZSAxNikJCURhaW50cmVlIE5ldHdvcmtzIEluYworCQkJCTMzNDAgV2FsbnV0IEF2ZQorCQkJCVN1aXRlIDI3NQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTgyICAgKGhleCkJCTgwODYgTGltaXRlZAorMDAyMjgyICAgICAoYmFzZSAxNikJCTgwODYgTGltaXRlZAorCQkJCTE3IExvd2ZpZWxkIExhbmUKKwkJCQlCYWxkZXJ0b24KKwkJCQlOZXdhcmsgTm90dHMgTkcyNCAzSEoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMi04MyAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCiswMDIyODMgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTg0ICAgKGhleCkJCURFU0FZIEEmViBTQ0lFTkNFIEFORCBURUNITk9MT0dZIENPLixMVEQKKzAwMjI4NCAgICAgKGJhc2UgMTYpCQlERVNBWSBBJlYgU0NJRU5DRSBBTkQgVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJREVTQVkgM3JkIFpvbmUsQ2hlbmppYW5nLAorCQkJCUh1aXpob3UgR3Vhbmdkb25nIDUxNjIyOQorCQkJCUNISU5BCisKKzAwLTIyLTg1ICAgKGhleCkJCU5PTVVTIENPTU0gU1lTVEVNUworMDAyMjg1ICAgICAoYmFzZSAxNikJCU5PTVVTIENPTU0gU1lTVEVNUworCQkJCTYwMSwgR3VuamFuIFRvd2VyLAorCQkJCU9mZi4gQWxlbWJpYyBHb3J3YSBSb2FkCisJCQkJQmFyb2RhIEd1amFyYXQgMzkwMDIzCisJCQkJSU5ESUEKKworMDAtMjItODYgICAoaGV4KQkJQVNUUk9OCiswMDIyODYgICAgIChiYXNlIDE2KQkJQVNUUk9OCisJCQkJT3VkZWhvb2dldmVlbnNlZGlqayA0CisJCQkJRHdpbmdlbG9vIERyZW50aGUgNzk5MVBECisJCQkJTkVUSEVSTEFORFMKKworMDAtMjItODcgICAoaGV4KQkJVGl0YW4gV2lyZWxlc3MgTExDCiswMDIyODcgICAgIChiYXNlIDE2KQkJVGl0YW4gV2lyZWxlc3MgTExDCisJCQkJMzkxNCBHYXR0aXMgU2Nob29sIFJkCisJCQkJU3VpdGUgMTAyCisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItODggICAoaGV4KQkJU2FncmFkLCBJbmMuCiswMDIyODggICAgIChiYXNlIDE2KQkJU2FncmFkLCBJbmMuCisJCQkJNzUxIE5vcnRoIERyaXZlCisJCQkJTWVsYm91cm5lIEZMIDMyOTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi04OSAgIChoZXgpCQlPcHRvc2VjdXJpdHkgSW5jLgorMDAyMjg5ICAgICAoYmFzZSAxNikJCU9wdG9zZWN1cml0eSBJbmMuCisJCQkJNTA1LCBCb3VsLiBkdSBQYXJjIFRlY2hub2xvZ2lxdWUKKwkJCQlRdWViZWMgIEcxUCA0UzkKKwkJCQlDQU5BREEKKworMDAtMjItOEEgICAoaGV4KQkJVGVyYXRyb25payBlbGVrdHJvbmlzY2hlIHN5c3RlbWUgZ21iaAorMDAyMjhBICAgICAoYmFzZSAxNikJCVRlcmF0cm9uaWsgZWxla3Ryb25pc2NoZSBzeXN0ZW1lIGdtYmgKKwkJCQlLYXJsLVVscmljaC1TdHJhc3NlIDEKKwkJCQlHcm9zcy1VbXN0YWR0ICBELTY0ODIzCisJCQkJR0VSTUFOWQorCiswMC0yMi04QiAgIChoZXgpCQlLZW5zaW5ndG9uIENvbXB1dGVyIFByb2R1Y3RzIEdyb3VwCiswMDIyOEIgICAgIChiYXNlIDE2KQkJS2Vuc2luZ3RvbiBDb21wdXRlciBQcm9kdWN0cyBHcm91cAorCQkJCTMzMyBUd2luIERvbHBoaW4gRHIuCisJCQkJU2l4dGggRmxvb3IKKwkJCQlSZWR3b29kIFNob3JlcyBDQSA5NDA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItOEMgICAoaGV4KQkJUGhvdG9uIEV1cm9wZSBHbWJICiswMDIyOEMgICAgIChiYXNlIDE2KQkJUGhvdG9uIEV1cm9wZSBHbWJICisJCQkJSvxsaWNoZXIgU3RyYd9lIDM3NgorCQkJCUFhY2hlbiBOb3JkcmhlaW4tV2VzdGZhbGVuIDUyMDcwCisJCQkJR0VSTUFOWQorCiswMC0yMi04RCAgIChoZXgpCQlHQlMgTGFib3JhdG9yaWVzIExMQworMDAyMjhEICAgICAoYmFzZSAxNikJCUdCUyBMYWJvcmF0b3JpZXMgTExDCisJCQkJMjMyNSBEdWxsZXMgQ29ybmVyIEJsdmQKKwkJCQlIZXJuZG9uIFZBIDIwMTcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi04RSAgIChoZXgpCQlUVi1OVU1FUklDCiswMDIyOEUgICAgIChiYXNlIDE2KQkJVFYtTlVNRVJJQworCQkJCTI0LTI2IHJ1ZSBMb3VpcyBBcm1hbmQKKwkJCQlQYXJpcyAgNzUwMTUKKwkJCQlGUkFOQ0UKKworMDAtMjItOEYgICAoaGV4KQkJQ05SUworMDAyMjhGICAgICAoYmFzZSAxNikJCUNOUlMKKwkJCQlNUkNUCisJCQkJMSBwbGFjZSBBcmlzdGlkZSBCcmlhbmQKKwkJCQlNZXVkb24gSWxlIGRlIEZyYW5jZSA5MjE5NQorCQkJCUZSQU5DRQorCiswMC0yMi05MCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIyOTAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItOTEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMjkxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTkyICAgKGhleCkJCUNpbmV0YWwKKzAwMjI5MiAgICAgKGJhc2UgMTYpCQlDaW5ldGFsCisJCQkJODY1MSBDYXN0bGUgUGFyaworCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItOTMgICAoaGV4KQkJWlRFIENvcnBvcmF0aW9uCiswMDIyOTMgICAgIChiYXNlIDE2KQkJWlRFIENvcnBvcmF0aW9uCisJCQkJMTIvRiB6dGUgcGxhemEsa2VqaSBSb2FkIFNvdXRoLEhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrLE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjItOTQgICAoaGV4KQkJS3lvY2VyYSBDb3Jwb3JhdGlvbgorMDAyMjk0ICAgICAoYmFzZSAxNikJCUt5b2NlcmEgQ29ycG9yYXRpb24KKwkJCQkyLTEtMSxLYWdhaGFyYQorCQkJCVRzdXp1a2kta3UKKwkJCQlZb2tvaGFtYS1zaGkgS2FuYWdhd2EgMjI0LTg1MDIKKwkJCQlKQVBBTgorCiswMC0yMi05NSAgIChoZXgpCQlTR00gVGVjaG5vbG9neSBmb3IgbGlnaHRpbmcgc3BhCiswMDIyOTUgICAgIChiYXNlIDE2KQkJU0dNIFRlY2hub2xvZ3kgZm9yIGxpZ2h0aW5nIHNwYQorCQkJCVZpYSBQaW8gTGEgVG9ycmUgMQorCQkJCVRhdnVsbGlhIFBVIDYxMDEwCisJCQkJSVRBTFkKKworMDAtMjItOTYgICAoaGV4KQkJTGlub1dhdmUgQ29ycG9yYXRpb24KKzAwMjI5NiAgICAgKGJhc2UgMTYpCQlMaW5vV2F2ZSBDb3Jwb3JhdGlvbgorCQkJCTEwMDEtMTAxIENoYW1wbGFpbiBBdmVudWUKKwkJCQlCdXJsaW5ndG9uIE9uYXRhcmlvIEw3TCA1WjQKKwkJCQlDQU5BREEKKworMDAtMjItOTcgICAoaGV4KQkJWE1PUyBTZW1pY29uZHVjdG9yCiswMDIyOTcgICAgIChiYXNlIDE2KQkJWE1PUyBTZW1pY29uZHVjdG9yCisJCQkJVmVudHVyZXJzIEhvdXNlCisJCQkJS2luZyBTdHJlZXQKKwkJCQlCcmlzdG9sICBCUzEgNFBCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjItOTggICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKzAwMjI5OCAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNr5W5lIDIyMTg4CisJCQkJU1dFREVOCisKKzAwLTIyLTk5ICAgKGhleCkJCVNlYU1pY3JvIEluYy4KKzAwMjI5OSAgICAgKGJhc2UgMTYpCQlTZWFNaWNybyBJbmMuCisJCQkJNDY3NyBPbGQgSXJvbnNpZGVzIERyLiwKKwkJCQlTdWl0ZSAzMTAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItOUEgICAoaGV4KQkJTGFzdGFyLCBJbmMuCiswMDIyOUEgICAgIChiYXNlIDE2KQkJTGFzdGFyLCBJbmMuCisJCQkJMzU1NSBLZXR0ZXJpbmcgQkxWRC4KKwkJCQlNb3JhaW5lIE9oaW8gNDU0MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTlCICAgKGhleCkJCUF2ZXJMb2dpYyBUZWNobm9sb2dpZXMsIEluYy4KKzAwMjI5QiAgICAgKGJhc2UgMTYpCQlBdmVyTG9naWMgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJN0YtMiwgTm8uMiwgTGFuZSAyNTgsIFJ1aSBHdWFuZyBSZC4sIE5laS1IdSBEaXN0LiwKKwkJCQlUYWlwZWkgVGFpd2FuIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItOUMgICAoaGV4KQkJVmVyaXNtbyBOZXR3b3JrcyBJbmMKKzAwMjI5QyAgICAgKGJhc2UgMTYpCQlWZXJpc21vIE5ldHdvcmtzIEluYworCQkJCTI5NSBCZXJuYW5kbyBBdmVudWUKKwkJCQlTdGUgIyAzMDAKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi05RCAgIChoZXgpCQlQWVVORy1IV0EgSU5ELkNPLixMVEQKKzAwMjI5RCAgICAgKGJhc2UgMTYpCQlQWVVORy1IV0EgSU5ELkNPLixMVEQKKwkJCQkyMzAtMQorCQkJCUR1Y2t3b28tUkksIFBhbHRhbi1NWVVOCisJCQkJSFdBU1VORy1TSSBLWVVOR0dJLURPIDQ0NS05MTIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItOUUgICAoaGV4KQkJU29jaWFsIEFpZCBSZXNlYXJjaCBDby4sIEx0ZC4KKzAwMjI5RSAgICAgKGJhc2UgMTYpCQlTb2NpYWwgQWlkIFJlc2VhcmNoIENvLiwgTHRkLgorCQkJCVNvdXRoIDMsIFdlc3QgMTAsIENodW8ta3UKKwkJCQk3RiwgRnVrdXlhbWEtTWluYW1pLTNqeW91IEJ1aWxkLgorCQkJCVNhcHBvcm8gSG9ra2FpZG8gMDYwLTAwNjMKKwkJCQlKQVBBTgorCiswMC0yMi05RiAgIChoZXgpCQlTZW5zeXMgVHJhZmZpYyBBQgorMDAyMjlGICAgICAoYmFzZSAxNikJCVNlbnN5cyBUcmFmZmljIEFCCisJCQkJU2xvdHRzZ2F0YW4gMTQKKwkJCQlCb3ggMjE3NAorCQkJCUpvbmtvcGluZyBTbWFsYW5kIDU1MzIyCisJCQkJU1dFREVOCisKKzAwLTIyLUEwICAgKGhleCkJCURlbHBoaSBDb3Jwb3JhdGlvbgorMDAyMkEwICAgICAoYmFzZSAxNikJCURlbHBoaSBDb3Jwb3JhdGlvbgorCQkJCU0vQy00ODAtNDA1LTI1NQorCQkJCTU4MjAgRGVscGhpIERyaXZlCisJCQkJVHJveSBNSSA0ODQ0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQTEgICAoaGV4KQkJSHVhd2VpIFN5bWFudGVjIFRlY2hub2xvZ2llcyBDby4sTHRkLgorMDAyMkExICAgICAoYmFzZSAxNikJCUh1YXdlaSBTeW1hbnRlYyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKwkJCQlCdWlsZGluZyAxLFRoZSBXZXN0IFpvbmUgU2NpZW5jZSBQYXJrIG9mIFVFU1RDLE5vLjg4LFRpYW5jaGVuIFJvYWQKKwkJCQlDaGVuZ2R1IFNpY2h1YW4gNjExNzMxCisJCQkJQ0hJTkEKKworMDAtMjItQTIgICAoaGV4KQkJWHRyYW11cyBUZWNobm9sb2dpZXMKKzAwMjJBMiAgICAgKGJhc2UgMTYpCQlYdHJhbXVzIFRlY2hub2xvZ2llcworCQkJCTV0aCBGbC4sIE5vLiAxMDIsIExpZGUgU3QuLAorCQkJCVpob25naGUgQ2l0eSBUYWlwZWkgQ291bnR5IDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItQTMgICAoaGV4KQkJQ2FsaWZvcm5pYSBFYXN0ZXJuIExhYm9yYXRvcmllcworMDAyMkEzICAgICAoYmFzZSAxNikJCUNhbGlmb3JuaWEgRWFzdGVybiBMYWJvcmF0b3JpZXMKKwkJCQk0NTkwIFBhdHJpY2sgSGVucnkgRHIuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUE0ICAgKGhleCkJCTJXaXJlCiswMDIyQTQgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1BNSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAyMkE1ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1BNiAgIChoZXgpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgQW1lcmljYQorMDAyMkE2ICAgICAoYmFzZSAxNikJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBBbWVyaWNhCisJCQkJOTE5IEVhc3QgSGlsbHNkYWxlIEJsdmQKKwkJCQlGb3N0ZXIgQ2l0eSBDYWxpZm9ybmlhIDk0NDA0LTIxNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUE3ICAgKGhleCkJCVR5Y28gRWxlY3Ryb25pY3MgQU1QIEdtYkgKKzAwMjJBNyAgICAgKGJhc2UgMTYpCQlUeWNvIEVsZWN0cm9uaWNzIEFNUCBHbWJICisJCQkJQW1wZXJlc3RyLiAxMi0xNAorCQkJCUJlbnNoZWltIEhlc3NlbiA2NDYyNQorCQkJCUdFUk1BTlkKKworMDAtMjItQTggICAoaGV4KQkJT3VtYW4gRmlubGFuZCBPeQorMDAyMkE4ICAgICAoYmFzZSAxNikJCU91bWFuIEZpbmxhbmQgT3kKKwkJCQlWb2ltYXRpZSA2CisJCQkJS2VtcGVsZSAgRklOLTkwNDQwCisJCQkJRklOTEFORAorCiswMC0yMi1BOSAgIChoZXgpCQlMRyBFbGVjdHJvbmljcyBJbmMKKzAwMjJBOSAgICAgKGJhc2UgMTYpCQlMRyBFbGVjdHJvbmljcyBJbmMKKwkJCQk2MC0zOSxHYXNhbi1kb25nCisJCQkJR3VtY2hvbi1ndQorCQkJCVNlb3VsICAxNTMtMDIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIyLUFBICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyMkFBICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTIyLUFCICAgKGhleCkJCVNoZW56aGVuIFR1cmJvc2lnaHQgVGVjaG5vbG9neSBMdGQKKzAwMjJBQiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBUdXJib3NpZ2h0IFRlY2hub2xvZ3kgTHRkCisJCQkJVW5pdCBDLThBLFNoZW5uYW4gR2FyZGVuIEJsZGcsSGlnaHRlY2ggUGFyayxOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTIyLUFDICAgKGhleCkJCUhhbmd6aG91IFNpeXVhbiBUZWNoLiBDby4sIEx0ZAorMDAyMkFDICAgICAoYmFzZSAxNikJCUhhbmd6aG91IFNpeXVhbiBUZWNoLiBDby4sIEx0ZAorCQkJCTUgRiwgVG93ZXIgQiwgTm8uIDM3LCBYaWFuZyBZdWFuIFJvYWQKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwMTIKKwkJCQlDSElOQQorCiswMC0yMi1BRCAgIChoZXgpCQlURUxFU0lTIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAyMkFEICAgICAoYmFzZSAxNikJCVRFTEVTSVMgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMjgxODEgUml2ZXIgRHJpdmUKKwkJCQlDaXJjbGV2aWxsZSBPaGlvIDQzMTEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1BRSAgIChoZXgpCQlNYXR0ZWwgSW5jLgorMDAyMkFFICAgICAoYmFzZSAxNikJCU1hdHRlbCBJbmMuCisJCQkJMzMzIENvbnRpbmVudGFsIEJsdmQuCisJCQkJRWwgU2VndW5kbyBDQSA5MDI0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQUYgICAoaGV4KQkJU2FmZXR5IFZpc2lvbgorMDAyMkFGICAgICAoYmFzZSAxNikJCVNhZmV0eSBWaXNpb24KKwkJCQk2MTAwIFcuIFNhbSBIb3VzdG9uIFBrd3kuIE5vcnRoCisJCQkJSG91c3RvbiBUZXhhcyA3NzA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQjAgICAoaGV4KQkJRC1MaW5rIENvcnBvcmF0aW9uCiswMDIyQjAgICAgIChiYXNlIDE2KQkJRC1MaW5rIENvcnBvcmF0aW9uCisJCQkJTm8uMjg5LCBTaW5odSAzcmQgUkQuLAorCQkJCU5laWh1IERpc3RyaWN0LCBUYWlwZWkgQ2l0eSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLUIxICAgKGhleCkJCUVsYml0IFN5c3RlbXMKKzAwMjJCMSAgICAgKGJhc2UgMTYpCQlFbGJpdCBTeXN0ZW1zCisJCQkJUE9CIDUzOQorCQkJCUhhaWZhICAzMTA1MworCQkJCUlTUkFFTAorCiswMC0yMi1CMiAgIChoZXgpCQk0UkYgQ29tbXVuaWNhdGlvbnMgTHRkCiswMDIyQjIgICAgIChiYXNlIDE2KQkJNFJGIENvbW11bmljYXRpb25zIEx0ZAorCQkJCTI2IEdsb3ZlciBTdHJlZXQKKwkJCQlOZ2F1cmFuZ2EgV2VsbGluZ3RvbiA2MDM1CisJCQkJTkVXIFpFQUxBTkQKKworMDAtMjItQjMgICAoaGV4KQkJU2VpIFMucC5BLgorMDAyMkIzICAgICAoYmFzZSAxNikJCVNlaSBTLnAuQS4KKwkJCQlWaWEgUnVmZmlsbGksIDEKKwkJCQlDdXJubyBCZXJnYW1vIDI0MDM1CisJCQkJSVRBTFkKKworMDAtMjItQjQgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjJCNCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVLlMuIEhpZ2h3YXkgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSWxsaW5vaXMgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUI1ICAgKGhleCkJCU5PVklUQQorMDAyMkI1ICAgICAoYmFzZSAxNikJCU5PVklUQQorCQkJCTNGMzAxLE5hbXN1bmcgQi9EIDM0MC0zMAorCQkJCUdhc2FuLURvbmcKKwkJCQlHZXVtY2hlb24tR3UgU2VvdWwgMTUzLTc4MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMi1CNiAgIChoZXgpCQlTdXBlcmZsb3cgVGVjaG5vbG9naWVzIEdyb3VwCiswMDIyQjYgICAgIChiYXNlIDE2KQkJU3VwZXJmbG93IFRlY2hub2xvZ2llcyBHcm91cAorCQkJCTQwNjAgRGl4b24gU3RyZWV0CisJCQkJRGVzIE1vaW5lcyBJQSA1MDI2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQjcgICAoaGV4KQkJR1NTIEdydW5kaWcgU0FULVN5c3RlbXMgR21iSAorMDAyMkI3ICAgICAoYmFzZSAxNikJCUdTUyBHcnVuZGlnIFNBVC1TeXN0ZW1zIEdtYkgKKwkJCQlCZXV0aGVybmVyIFN0cmFzc2UgNDMKKwkJCQlOdWVybmJlcmcgQmF5ZXJuIDkwNDcxCisJCQkJR0VSTUFOWQorCiswMC0yMi1COCAgIChoZXgpCQlOb3Jjb3R0CiswMDIyQjggICAgIChiYXNlIDE2KQkJTm9yY290dAorCQkJCUJyb29rZmllbGQgSG91c2UKKwkJCQlHcmltc2RpdGNoIExhbmUgb2ZmIFRhcnBvcmxleSBSb2FkCisJCQkJTm9yY290dCBCcm9vayBDaGVzaGlyZSBXQTQgNEVBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjItQjkgICAoaGV4KQkJQW5hbG9naXggU2VtaW5jb25kdWN0b3IsIEluYworMDAyMkI5ICAgICAoYmFzZSAxNikJCUFuYWxvZ2l4IFNlbWluY29uZHVjdG9yLCBJbmMKKwkJCQkzMjExIFNjb3R0IEJsdmQuLCBTdWl0ZSAxMDAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQkEgICAoaGV4KQkJSFVUSCBFbGVrdHJvbmlrIFN5c3RlbWUgR21iSAorMDAyMkJBICAgICAoYmFzZSAxNikJCUhVVEggRWxla3Ryb25payBTeXN0ZW1lIEdtYkgKKwkJCQlFY2h0ZXJuYWNoZXIgU3RyLiAxMAorCQkJCVRyb2lzZG9yZi1TcGljaCBOUlcgNTM4NDIKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLUJCICAgKGhleCkJCWJleWVyZHluYW1pYyBHbWJIICYgQ28uIEtHCiswMDIyQkIgICAgIChiYXNlIDE2KQkJYmV5ZXJkeW5hbWljIEdtYkggJiBDby4gS0cKKwkJCQlUaGVyZXNpZW5zdHIuIDgKKwkJCQlIZWlsYnJvbm4gIDc0MDcyCisJCQkJR0VSTUFOWQorCiswMC0yMi1CQyAgIChoZXgpCQlKRFNVIEZyYW5jZSBTQVMKKzAwMjJCQyAgICAgKGJhc2UgMTYpCQlKRFNVIEZyYW5jZSBTQVMKKwkJCQkzNCBydWUgTmVja2VyCisJCQkJU0FJTlQgRVRJRU5ORSBMT0lSRSA0MjAwMAorCQkJCUZSQU5DRQorCiswMC0yMi1CRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIyQkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQkUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMkJFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUJGICAgKGhleCkJCVNpZUFtcCBHcm91cCBvZiBDb21wYW5pZXMKKzAwMjJCRiAgICAgKGJhc2UgMTYpCQlTaWVBbXAgR3JvdXAgb2YgQ29tcGFuaWVzCisJCQkJMiBBbmcgTW8gS2lvIFN0cmVldCA2NAorCQkJCUFuZyBNbyBLaW8gSW5kdXN0cmlhbCBQYXJrIDMsIFVuaXQgMDItMDFEIEVjb24gQnVpbGRpbmcKKwkJCQlTaW5nYXBvcmUgIDU2OTA4NAorCQkJCVNJTkdBUE9SRQorCiswMC0yMi1DMCAgIChoZXgpCQlTaGVuemhlbiBGb3JjZWxpbmsgRWxlY3Ryb25pYyBDbywgTHRkCiswMDIyQzAgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gRm9yY2VsaW5rIEVsZWN0cm9uaWMgQ28sIEx0ZAorCQkJCTJuZCBhbmQgM3JkIGZsb29yLCBIYXNzZSBtYW51ZmFjdHVyZSBidWlsZGluZywgSGFzZWUgaW5kdXN0cmlhbCBwYXJrCisJCQkJQmFueHVlZ2FuZyBpbmR1c3RyaWFsIGFyZWEsIExvbmdnYW5nIGRpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODExMgorCQkJCUNISU5BCisKKzAwLTIyLUMxICAgKGhleCkJCUFjdGl2ZSBTdG9yYWdlIEluYy4KKzAwMjJDMSAgICAgKGJhc2UgMTYpCQlBY3RpdmUgU3RvcmFnZSBJbmMuCisJCQkJMjI5NSBKZWZmZXJzb24gU3RyZWV0CisJCQkJVG9ycmFuY2UgQ0EgOTA1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUMyICAgKGhleCkJCVByb3ZpZXcgRWxldHJvbmljYSBkbyBCcmFzaWwgTFREQQorMDAyMkMyICAgICAoYmFzZSAxNikJCVByb3ZpZXcgRWxldHJvbmljYSBkbyBCcmFzaWwgTFREQQorCQkJCVIuIEFjYXLhLCAyMDMgLSBEaXN0cml0byBJbmR1c3RyaWFsCisJCQkJTWFuYXVzIEFtYXpvbmFzIDY5MDc1LTAzMAorCQkJCUJSQVpJTAorCiswMC0yMi1DMyAgIChoZXgpCQlaZWVwb3J0IFRlY2hub2xvZ3kgSW5jLgorMDAyMkMzICAgICAoYmFzZSAxNikJCVplZXBvcnQgVGVjaG5vbG9neSBJbmMuCisJCQkJMUYsTm8yMzEsWGlhbnpoZW5nIDJuZCBSZC4KKwkJCQlIc2luQ2h1IFRhaXdhbiAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLUM0ICAgKGhleCkJCWVwcm8gR21iSAorMDAyMkM0ICAgICAoYmFzZSAxNikJCWVwcm8gR21iSAorCQkJCUpvZWJrZXN3ZWcgMworCQkJCUdyb25hdSBOUlcgNDg1OTkKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLUM1ICAgKGhleCkJCUlORk9SU09OIENvLEx0ZC4KKzAwMjJDNSAgICAgKGJhc2UgMTYpCQlJTkZPUlNPTiBDbyxMdGQuCisJCQkJUm9vbSA3MDQsVG93ZXIgQjEsIENoYW5nWXVhblRpYW5EaSBQbGF6YQorCQkJCVN1WmhvdSBTdHJlZXQsIEhhaURpYW4gRGlzdHJpY3QKKwkJCQlCZWlKaW5nIENpdHkgIDEwMDA4MAorCQkJCUNISU5BCisKKzAwLTIyLUM2ICAgKGhleCkJCVN1dHVzIEluYworMDAyMkM2ICAgICAoYmFzZSAxNikJCVN1dHVzIEluYworCQkJCTMwMS0zOTk5IEhlbm5pbmcgRHJpdmUKKwkJCQlCdXJuYWJ5IEJyaXRpc2ggQ29sdW1iaWEgVjVDIDZQOQorCQkJCUNBTkFEQQorCiswMC0yMi1DNyAgIChoZXgpCQlTRUdHRVIgTWljcm9jb250cm9sbGVyIEdtYkggJiBDby4gS0cKKzAwMjJDNyAgICAgKGJhc2UgMTYpCQlTRUdHRVIgTWljcm9jb250cm9sbGVyIEdtYkggJiBDby4gS0cKKwkJCQlJbiBkZW4gV2VpZGVuIDExCisJCQkJSGlsZGVuIE5SVyA0MDcyMQorCQkJCUdFUk1BTlkKKworMDAtMjItQzggICAoaGV4KQkJQXBwbGllZCBJbnN0cnVtZW50cworMDAyMkM4ICAgICAoYmFzZSAxNikJCUFwcGxpZWQgSW5zdHJ1bWVudHMKKwkJCQlFZGlzb253ZWcgMzlkCisJCQkJVmxpc3NpbmdlbiBaZWVsYW5kIE5MLTQzODJOVgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIyLUM5ICAgKGhleCkJCUxlbm9yZCwgQmF1ZXIgJiBDbyBHbWJICiswMDIyQzkgICAgIChiYXNlIDE2KQkJTGVub3JkLCBCYXVlciAmIENvIEdtYkgKKwkJCQlEb2hsZW5zdHIgMzIKKwkJCQlPYmVyaGF1c2VuIE5SVyA0NjE0NQorCQkJCUdFUk1BTlkKKworMDAtMjItQ0EgICAoaGV4KQkJQW52aXogQmlvbWV0cmljIFRlY2guIENvLiwgTHRkLgorMDAyMkNBICAgICAoYmFzZSAxNikJCUFudml6IEJpb21ldHJpYyBUZWNoLiBDby4sIEx0ZC4KKwkJCQk1dGggRmxvb3IsIDQyOTkgSmluZHUgUm9hZCwKKwkJCQlTaGFuZ2hhaSAgMjAxMTA4CisJCQkJQ0hJTkEKKworMDAtMjItQ0IgICAoaGV4KQkJSU9OT0RFUyBJbmMuCiswMDIyQ0IgICAgIChiYXNlIDE2KQkJSU9OT0RFUyBJbmMuCisJCQkJMTU1NSBBdmVuaXIKKwkJCQlTdWl0ZSAxMDMKKwkJCQlMYXZhbCBRdWViZWMgSDdTMk41CisJCQkJQ0FOQURBCisKKzAwLTIyLUNDICAgKGhleCkJCVNjaUxvZywgSW5jLgorMDAyMkNDICAgICAoYmFzZSAxNikJCVNjaUxvZywgSW5jLgorCQkJCTg4NDUgU291dGggR3JlZW52aWV3IERyaXZlCisJCQkJU3VpdGUgNAorCQkJCU1pZGRsZXRvbiBXaXNjb25zaW4gNTM1NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUNEICAgKGhleCkJCUFyZWQgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMjJDRCAgICAgKGJhc2UgMTYpCQlBcmVkIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNkYtOCBOby44MyBTZWMuMSwgTmFua2FuIFJkLiBMdXpodSBTaGlhbmcKKwkJCQlUYW95dWFuIENvdW50eSBUYWl3YW4gMzM4NTkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLUNFICAgKGhleCkJCUNpc2NvLCBTZXJ2aWNlIFByb3ZpZGVyIFZpZGVvIFRlY2hub2xvZ3kgR3JvdXAKKzAwMjJDRSAgICAgKGJhc2UgMTYpCQlDaXNjbywgU2VydmljZSBQcm92aWRlciBWaWRlbyBUZWNobm9sb2d5IEdyb3VwCisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUNGICAgKGhleCkJCVBMQU5FWCBDb21tdW5pY2F0aW9ucyBJTkMKKzAwMjJDRiAgICAgKGJhc2UgMTYpCQlQTEFORVggQ29tbXVuaWNhdGlvbnMgSU5DCisJCQkJMkYgRoFFTklTU0FZIEViaXN1IEJsZGczLTE2LTMKKwkJCQlTaGlidXlhLWt1IFRva3lvIDE1MC0wMDExCisJCQkJSkFQQU4KKworMDAtMjItRDAgICAoaGV4KQkJUG9sYXIgRWxlY3RybyBPeQorMDAyMkQwICAgICAoYmFzZSAxNikJCVBvbGFyIEVsZWN0cm8gT3kKKwkJCQlQcm9mZXNzb3JpbnRpZSA1CisJCQkJS2VtcGVsZSBPdWx1IDkwNDQwCisJCQkJRklOTEFORAorCiswMC0yMi1EMSAgIChoZXgpCQlBbGJyZWNodCBKdW5nIEdtYkggJiBDby4gS0cKKzAwMjJEMSAgICAgKGJhc2UgMTYpCQlBbGJyZWNodCBKdW5nIEdtYkggJiBDby4gS0cKKwkJCQlWb2xtZXN0cmHfZSAxCisJCQkJU2NoYWxrc238aGxlIE5SVyA1ODU3OQorCQkJCUdFUk1BTlkKKworMDAtMjItRDIgICAoaGV4KQkJQWxsIEVhcnRoIENvbelyY2lvIGRlIEVsZXRy9G5pY29zIExUREEuCiswMDIyRDIgICAgIChiYXNlIDE2KQkJQWxsIEVhcnRoIENvbelyY2lvIGRlIEVsZXRy9G5pY29zIExUREEuCisJCQkJUnVhIEJlbnRvIGRlIEFycnVkYSBDYW1hcmdvCisJCQkJMjcwIC0gSmQuIFNhbnRhbmEKKwkJCQlDYW1waW5hcyBT428gUGF1bG8gMTMwODgtNjUwCisJCQkJQlJBWklMCisKKzAwLTIyLUQzICAgKGhleCkJCUh1Yi1UZWNoCiswMDIyRDMgICAgIChiYXNlIDE2KQkJSHViLVRlY2gKKwkJCQk3NywgSW1hZS1kb25nCisJCQkJQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2My04MjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItRDQgICAoaGV4KQkJQ29tV29ydGggQ28uLCBMdGQuCiswMDIyRDQgICAgIChiYXNlIDE2KQkJQ29tV29ydGggQ28uLCBMdGQuCisJCQkJMi0zNS03IE5pc2hpbWFnb21lCisJCQkJT2h0YS1rdSBUb2t5byAxNDMtMDAyNgorCQkJCUpBUEFOCisKKzAwLTIyLUQ1ICAgKGhleCkJCUVhdG9uIENvcnAuIEVsZWN0cmljYWwgR3JvdXAgRGF0YSBDZW50ZXIgU29sdXRpb25zIC0gUHVsaXp6aQorMDAyMkQ1ICAgICAoYmFzZSAxNikJCUVhdG9uIENvcnAuIEVsZWN0cmljYWwgR3JvdXAgRGF0YSBDZW50ZXIgU29sdXRpb25zIC0gUHVsaXp6aQorCQkJCTMyMDAgUy4gU3VzYW4gU3QuCisJCQkJU2FudGEgQW5hIENBIDkyNzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1ENiAgIChoZXgpCQlDeXBhayBBQgorMDAyMkQ2ICAgICAoYmFzZSAxNikJCUN5cGFrIEFCCisJCQkJUC5PLiBCT1ggMjMzMgorCQkJCUZ1bmNrZW5zIEdy5G5kIDEKKwkJCQlTdG9ja2hvbG0gIDEwMyAxOAorCQkJCVNXRURFTgorCiswMC0yMi1ENyAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMjJENyAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yMi1EOCAgIChoZXgpCQlTaGVuemhlbiBHU1QgU2VjdXJpdHkgYW5kIFNhZmV0eSBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMjJEOCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBHU1QgU2VjdXJpdHkgYW5kIFNhZmV0eSBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlSb29tIDUwMixCdWlsZGluZyA2IG9mIEt1cGFpIEluZm9tYXRpb24gSGFyYm91ciwKKwkJCQlOby4yIE1lbmd4aSBSb2FkLCBITlRJQShOb3J0aCBhcmVhKSxOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA0MAorCQkJCUNISU5BCisKKzAwLTIyLUQ5ICAgKGhleCkJCUZvcnRleCBJbmR1c3RyaWFsIEx0ZC4KKzAwMjJEOSAgICAgKGJhc2UgMTYpCQlGb3J0ZXggSW5kdXN0cmlhbCBMdGQuCisJCQkJRmxhdCAxNiwgMTIgL0YuLFBhY2lmaWMgVHJhZGUgQ2VudHJlCisJCQkJMiBLYWkgSGluZyBSb2FkLEtvd2xvb24gQmF5LAorCQkJCUtvd2xvb24gSG9uZyBLb25nIDg1MgorCQkJCUNISU5BCisKKzAwLTIyLURBICAgKGhleCkJCUFOQVRFSywgTExDCiswMDIyREEgICAgIChiYXNlIDE2KQkJQU5BVEVLLCBMTEMKKwkJCQkzMjE5IEVhc3QgQ2FtZWxiYWNrIFJvYWQKKwkJCQlTdWl0ZSA1MDIKKwkJCQlQaG9lbml4IEFaIDg1MDE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1EQiAgIChoZXgpCQlUcmFuc2xvZ2ljIENvcnBvcmF0aW9uCiswMDIyREIgICAgIChiYXNlIDE2KQkJVHJhbnNsb2dpYyBDb3Jwb3JhdGlvbgorCQkJCTEwODI1IEUuIDQ3dGggQXZlbnVlCisJCQkJRGVudmVyIENvbG9yYWRvIDgwMjM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1EQyAgIChoZXgpCQlWaWdpbCBIZWFsdGggU29sdXRpb25zIEluYy4KKzAwMjJEQyAgICAgKGJhc2UgMTYpCQlWaWdpbCBIZWFsdGggU29sdXRpb25zIEluYy4KKwkJCQkyMTAyLTQ0NjQgTWFya2hhbSBTdAorCQkJCVZpY3RvcmlhIEJDIFY4WiA3WDgKKwkJCQlDQU5BREEKKworMDAtMjItREQgICAoaGV4KQkJUHJvdGVjdGEgRWxlY3Ryb25pY3MgTHRkCiswMDIyREQgICAgIChiYXNlIDE2KQkJUHJvdGVjdGEgRWxlY3Ryb25pY3MgTHRkCisJCQkJS2VzbWFyayBzdHIgNy9BCisJCQkJQnVkYXBlc3QgSHVuZ2FyeSAxMTU4CisJCQkJSFVOR0FSWQorCiswMC0yMi1ERSAgIChoZXgpCQlPUFBPIERpZ2l0YWwsIEluYy4KKzAwMjJERSAgICAgKGJhc2UgMTYpCQlPUFBPIERpZ2l0YWwsIEluYy4KKwkJCQkyNjI5QiBUZXJtaW5hbCBCbHZkCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItREYgICAoaGV4KQkJVEFNVVogTW9uaXRvcnMKKzAwMjJERiAgICAgKGJhc2UgMTYpCQlUQU1VWiBNb25pdG9ycworCQkJCVRpZWRlbmthbXAgMTYKKwkJCQlIZW5zdGVkdC1VbHpidXJnIFNIIDI0NTU4CisJCQkJR0VSTUFOWQorCiswMC0yMi1FMCAgIChoZXgpCQlBdGxhbnRpYyBTb2Z0d2FyZSBUZWNobm9sb2dpZXMgUy5yLkwuCiswMDIyRTAgICAgIChiYXNlIDE2KQkJQXRsYW50aWMgU29mdHdhcmUgVGVjaG5vbG9naWVzIFMuci5MLgorCQkJCVZpYSBNYXJ0aW5vIEJhc3NpLCA5CisJCQkJTWlsYW5vICAyMDE0OAorCQkJCUlUQUxZCisKKzAwLTIyLUUxICAgKGhleCkJCVpPUlQgTGFicywgTExDLgorMDAyMkUxICAgICAoYmFzZSAxNikJCVpPUlQgTGFicywgTExDLgorCQkJCTQ0SCBEb3ZlciBQb2ludCBSb2FkCisJCQkJRG92ZXIgTkggMDM4MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUUyICAgKGhleCkJCVdBQlRFQyBUcmFuc2l0IERpdmlzaW9uCiswMDIyRTIgICAgIChiYXNlIDE2KQkJV0FCVEVDIFRyYW5zaXQgRGl2aXNpb24KKwkJCQkxMzAgUmlkZ2V2aWV3IENpcmNsZQorCQkJCUR1bmNhbiBTQyAyOTMzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItRTMgICAoaGV4KQkJQW1lcmlnb24KKzAwMjJFMyAgICAgKGJhc2UgMTYpCQlBbWVyaWdvbgorCQkJCTIxNjgwIEhhZ2dlcnR5IFJvYWQKKwkJCQlTdWl0ZSAxMDEKKwkJCQlOb3J0aHZpbGxlIE1pY2hpZ2FuIDQ4MTY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1FNCAgIChoZXgpCQlBUEFTUyBURUNITk9MT0dZIENPLiwgTFRELgorMDAyMkU0ICAgICAoYmFzZSAxNikJCUFQQVNTIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJMkYsIE5vLiAyNjcsIFNlYy4gMywgQ2hlbmdkZSBSZC4sCisJCQkJRGF0b25nIERpc3RyaWN0CisJCQkJVEVJUEVJICAxMTMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLUU1ICAgKGhleCkJCUZpc2hlci1Sb3NlbW91bnQgU3lzdGVtcyBJbmMuCiswMDIyRTUgICAgIChiYXNlIDE2KQkJRmlzaGVyLVJvc2Vtb3VudCBTeXN0ZW1zIEluYy4KKwkJCQkxMjMwMSBSZXNlYXJjaCBCbHZkCisJCQkJQnVpbGRpbmcgMworCQkJCUF1c3RpbiBUZXhhcyA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItRTYgICAoaGV4KQkJSW50ZWxsaWdlbnQgRGF0YQorMDAyMkU2ICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IERhdGEKKwkJCQlFZGYuIEludmVyaW5ub3ZhIOKAkyBBdmRhLiBQdW50byBNb2JpLCA0LiBQYXJxdWUgQ2llbnTDrWZpY28gVGVjbm9sw7NnaWNvCisJCQkJVEVDTk9BTENBTMOBLiBDcnRhLiBOYWNpb25hbCBJSSBNYWRyaWQtQmFyY2Vsb25hIEttLiAzMSw2MDAKKwkJCQlBbGNhbMOhIGRlIEhlbmFyZXMgTWFkcmlkIDI4ODA1CisJCQkJU1BBSU4KKworMDAtMjItRTcgICAoaGV4KQkJV1BTIFBhcmtpbmcgU3lzdGVtcworMDAyMkU3ICAgICAoYmFzZSAxNikJCVdQUyBQYXJraW5nIFN5c3RlbXMKKwkJCQlIb2V2ZW53ZWcgMTEKKwkJCQlFaW5kaG92ZW4gTm9vcmQtQnJhYmFudCA1NjUyIEFXCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjItRTggICAoaGV4KQkJQXBwbGl0aW9uIENvLiwgTHRkLgorMDAyMkU4ICAgICAoYmFzZSAxNikJCUFwcGxpdGlvbiBDby4sIEx0ZC4KKwkJCQk1MDktMSwgQnVuZGFuZyBUZWNobm8gUGFyayBELWRvbmcsCisJCQkJMTUxIFlhdGFwLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ05hbSBLeXVuZ2dpLWRvIDQ2My03NjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItRTkgICAoaGV4KQkJUHJvVmlzaW9uIENvbW11bmljYXRpb25zCiswMDIyRTkgICAgIChiYXNlIDE2KQkJUHJvVmlzaW9uIENvbW11bmljYXRpb25zCisJCQkJMSBQb3J0bGFuZCBTcXVhcmUKKwkJCQlCcmlzdG9sICBCUzIgOFJSCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjItRUEgICAoaGV4KQkJUnVzdGVsY29tIEluYy4KKzAwMjJFQSAgICAgKGJhc2UgMTYpCQlSdXN0ZWxjb20gSW5jLgorCQkJCUdhcmFnbml5IHByb2V6ZCwgMQorCQkJCVN0Li1QZXRlcnNidXJnICAxOTIyODgKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjItRUIgICAoaGV4KQkJRGF0YSBSZXNwb25zIEEvUworMDAyMkVCICAgICAoYmFzZSAxNikJCURhdGEgUmVzcG9ucyBBL1MKKwkJCQlFbGxla+ZyIDYKKwkJCQlIZXJsZXYgIDI3MzAKKwkJCQlERU5NQVJLCisKKzAwLTIyLUVDICAgKGhleCkJCUlERUFMQlQgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorMDAyMkVDICAgICAoYmFzZSAxNikJCUlERUFMQlQgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCTZGLiwgTk8uOCwgTEFORSAzNDUsIFlBTkdHVUFORyBTVC4sIE5FSUhVIERJU1RSSUNUCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLUVEICAgKGhleCkJCVRTSSBQb3dlciBDb3Jwb3JhdGlvbgorMDAyMkVEICAgICAoYmFzZSAxNikJCVRTSSBQb3dlciBDb3Jwb3JhdGlvbgorCQkJCTExMDMgV2VzdCBQaWVyY2UgQXZlbnVlCisJCQkJQW50aWdvIFdJIDU0NDA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1FRSAgIChoZXgpCQlBbGdvIENvbW11bmljYXRpb24gUHJvZHVjdHMgTHRkCiswMDIyRUUgICAgIChiYXNlIDE2KQkJQWxnbyBDb21tdW5pY2F0aW9uIFByb2R1Y3RzIEx0ZAorCQkJCTQ1MDAgQmVlZGllIFN0cmVldAorCQkJCUJ1cm5hYnkgQkMgVjVKIDVMMgorCQkJCUNBTkFEQQorCiswMC0yMi1FRiAgIChoZXgpCQlJYmlzIFRlaywgTExDCiswMDIyRUYgICAgIChiYXNlIDE2KQkJSWJpcyBUZWssIExMQworCQkJCTkxMiBQaXR0c2J1cmdoIFJvYWQKKwkJCQlCdXRsZXIgUEEgMTYwMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUYwICAgKGhleCkJCTMgR3JlZW5zIEF2aWF0aW9uIExpbWl0ZWQKKzAwMjJGMCAgICAgKGJhc2UgMTYpCQkzIEdyZWVucyBBdmlhdGlvbiBMaW1pdGVkCisJCQkJMTAgSGVkaW5naGFtIENsb3NlCisJCQkJTWFjY2xlc2ZpZWxkICBTSzEwIDNMWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIyLUYxICAgKGhleCkJCVBSSVZBVEUKKzAwMjJGMSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMjItRjIgICAoaGV4KQkJU3VuUG93ZXIgQ29ycAorMDAyMkYyICAgICAoYmFzZSAxNikJCVN1blBvd2VyIENvcnAKKwkJCQkxNDE0IEhhcmJvdXIgV2F5IFNvdXRoCisJCQkJUmljaG1vbmQgQ0EgOTQ4MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUYzICAgKGhleCkJCVNIQVJQIENPUlBPUkFUSU9OCiswMDIyRjMgICAgIChiYXNlIDE2KQkJU0hBUlAgQ09SUE9SQVRJT04KKwkJCQkyMi0yMixOYWdhaWtlLWNobywKKwkJCQlBYmVuby1LVSwKKwkJCQlPc2FrYSwgNTQ1LTg1MjIsCisJCQkJSkFQQU4KKworMDAtMjItRjQgICAoaGV4KQkJQU1QQUsgVGVjaG5vbG9neSwgSW5jLgorMDAyMkY0ICAgICAoYmFzZSAxNikJCUFNUEFLIFRlY2hub2xvZ3ksIEluYy4KKwkJCQlOby4gOC0xLCBOYW55dWFuIDJuZCBSZC4KKwkJCQlKaG9uZ2xpIFRhb3l1YW4gMzIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi1GNSAgIChoZXgpCQlBZHZhbmNlZCBSZWFsdGltZSBUcmFja2luZyBHbWJICiswMDIyRjUgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgUmVhbHRpbWUgVHJhY2tpbmcgR21iSAorCQkJCUFtIE9lZmVybCA2CisJCQkJV2VpbGhlaW0gQmF5ZXJuIEQtODIzNjIKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLUY2ICAgKGhleCkJCVN5cmFjdXNlIFJlc2VhcmNoIENvcnBvcmF0aW9uCiswMDIyRjYgICAgIChiYXNlIDE2KQkJU3lyYWN1c2UgUmVzZWFyY2ggQ29ycG9yYXRpb24KKwkJCQk2MjI1IFJ1bm5pbmcgUmlkZ2UgUm9hZAorCQkJCU5vcnRoIFN5cmFjdXNlIE5ZIDEzMjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1GNyAgIChoZXgpCQlDb25jZXB0cm9uaWMKKzAwMjJGNyAgICAgKGJhc2UgMTYpCQlDb25jZXB0cm9uaWMKKwkJCQlEYXRhYmFua3dlZyA3CisJCQkJQU1FUlNGT09SVCB1dHJlY2h0IDM4MjEgQUwKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMi1GOCAgIChoZXgpCQlQSU1BIEVsZWN0cm9uaWMgU3lzdGVtcyBMdGQuCiswMDIyRjggICAgIChiYXNlIDE2KQkJUElNQSBFbGVjdHJvbmljIFN5c3RlbXMgTHRkLgorCQkJCTUgSGF0em9yZWYgU3QuCisJCQkJSG9sb24gIDU4ODU2CisJCQkJSVNSQUVMCisKKzAwLTIyLUY5ICAgKGhleCkJCVBvbGxpbiBFbGVjdHJvbmljIEdtYkgKKzAwMjJGOSAgICAgKGJhc2UgMTYpCQlQb2xsaW4gRWxlY3Ryb25pYyBHbWJICisJCQkJTWF4LVBvbGxpbi1TdHIuIDEKKwkJCQlQZm9lcnJpbmcgIDg1MTA0CisJCQkJR0VSTUFOWQorCiswMC0yMi1GQSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjJGQSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTIyLUZCICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAyMkZCICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMjItRkMgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjJGQyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjItRkQgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjJGRCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjItRkUgICAoaGV4KQkJTWljcm9wcm9jZXNzb3IgRGVzaWducyBJbmMKKzAwMjJGRSAgICAgKGJhc2UgMTYpCQlNaWNyb3Byb2Nlc3NvciBEZXNpZ25zIEluYworCQkJCTY1IExvbmdtZWFkb3cgRHJpdmUKKwkJCQlQTyBCb3ggMTYwCisJCQkJU2hlbGJ1cm5lIFZlcm1vbnQgMDU0ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUZGICAgKGhleCkJCU5JVklTIExMQworMDAyMkZGICAgICAoYmFzZSAxNikJCU5JVklTIExMQworCQkJCTEwMDAgQ2lyY2xlIDc1CisJCQkJU3VpdGUgMzAwCisJCQkJQXRsYW50YSBHQSAzMDMzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMDAgICAoaGV4KQkJQ2F5ZWUgQ29tcHV0ZXIgTHRkLgorMDAyMzAwICAgICAoYmFzZSAxNikJCUNheWVlIENvbXB1dGVyIEx0ZC4KKwkJCQlVbml0cyAxMDAyLTEwMDMsIDEwL0YsIEpvaW4tSW4gSGFuZyBTaW5nIENlbnRyZQorCQkJCTcxLTc1IENvbnRhaW5lciBQb3J0IFJvYWQKKwkJCQlLd2FpIENodW5nIE4uVCAKKwkJCQlIT05HIEtPTkcKKworMDAtMjMtMDEgICAoaGV4KQkJV2l0cm9uIFRlY2hub2xvZ3kgTGltaXRlZAorMDAyMzAxICAgICAoYmFzZSAxNikJCVdpdHJvbiBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQk2L0YsIFhpbiBSdWkgQnVpbGRpbmcsIDMyIFRhbyBIdWEgUm9hZCwgRnV0aWFuIEZyZWUgVHJhZGUgWm9uZSwKKwkJCQlTaGVuemhlbiA4NgorCQkJCUNISU5BCisKKzAwLTIzLTAyICAgKGhleCkJCUNvYmFsdCBEaWdpdGFsLCBJbmMuCiswMDIzMDIgICAgIChiYXNlIDE2KQkJQ29iYWx0IERpZ2l0YWwsIEluYy4KKwkJCQkyNDA2IEVhc3QgVW5pdmVyc2l0eSBBdmVudWUKKwkJCQlVcmJhbmEgSUwgNjE4MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTAzICAgKGhleCkJCUxJVEUtT04gSVQgQ29ycG9yYXRpb24KKzAwMjMwMyAgICAgKGJhc2UgMTYpCQlMSVRFLU9OIElUIENvcnBvcmF0aW9uCisJCQkJMTRGLCBOby4gMzkyLCBSdWV5IEt1YW5nIFJvYWQsIE5laWh1CisJCQkJVGFpcGVpIENpdHkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjMtMDQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMzA0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTA1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjMwNSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0wNiAgIChoZXgpCQlBTFBTIEVsZWN0cmljIENvLiwgTHRkCiswMDIzMDYgICAgIChiYXNlIDE2KQkJQUxQUyBFbGVjdHJpYyBDby4sIEx0ZAorCQkJCTEtMi0xLCBPa2lub3VjaGkKKwkJCQlTb21hIGNpdHkgRnVrdXNoaW1hIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMjMtMDcgICAoaGV4KQkJRlVUVVJFIElOTk9WQVRJT04gVEVDSCBDTy4sTFRECiswMDIzMDcgICAgIChiYXNlIDE2KQkJRlVUVVJFIElOTk9WQVRJT04gVEVDSCBDTy4sTFRECisJCQkJMzEyIDMtRE9ORywgR1dBTkdNWVVORyBJTkRVU1RSSUFMIENPTVBMRVggMjAxCisJCQkJSEFBTi1ET05HCisJCQkJR1dBTkdNWVVORyBHWVVOR0dJIDQyMzA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy0wOCAgIChoZXgpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDIzMDggICAgIChiYXNlIDE2KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLiwgTm8uIDkgLCBQYXJrIEF2ZW51ZSBJSSwKKwkJCQlTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1IFRhaXdhbiAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTA5ICAgKGhleCkJCUphbmFtIFRlY2hub2xvZ2llcyBMTEMKKzAwMjMwOSAgICAgKGJhc2UgMTYpCQlKYW5hbSBUZWNobm9sb2dpZXMgTExDCisJCQkJMTAwIENyb3Nzd2F5cyBQYXJrIFdlc3QKKwkJCQlTdWl0ZSAxMDUKKwkJCQlXb29kYnVyeSBOWSAxMTc5NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMEEgICAoaGV4KQkJQVJCVVJHIEdtYkggJiBDbyBLRworMDAyMzBBICAgICAoYmFzZSAxNikJCUFSQlVSRyBHbWJIICYgQ28gS0cKKwkJCQlBcnRodXIgSGVobCBTdHJhc3NlCisJCQkJTG9zc2J1cmcgIEQtNzIyOTAKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLTBCICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIzMEIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0wQyAgIChoZXgpCQlDTE9WRVIgRUxFQ1RST05JQ1MgQ08uLExURC4KKzAwMjMwQyAgICAgKGJhc2UgMTYpCQlDTE9WRVIgRUxFQ1RST05JQ1MgQ08uLExURC4KKwkJCQlBS0VOTyAzMDYtMQorCQkJCU9CQVRBIENoeW91CisJCQkJSVNFIENpdHkgTUlFIFByZWZlY3R1cmUgNTE5LTA1MDEKKwkJCQlKQVBBTgorCiswMC0yMy0wRCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMjMwRCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQkyMjIxIExha2VzaWRlIEJsdmQKKwkJCQlSaWNoYXJkc29uIFRleGFzIDc1MDgyLTQzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTBFICAgKGhleCkJCUdvcmJhIEFHCiswMDIzMEUgICAgIChiYXNlIDE2KQkJR29yYmEgQUcKKwkJCQlTYW5kYWNrZXJzdHJhc3NlCisJCQkJT2JlcmL8cmVuIFNHIENIIC0gOTI0NQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTIzLTBGICAgKGhleCkJCUhpcnNjaCBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorMDAyMzBGICAgICAoYmFzZSAxNikJCUhpcnNjaCBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorCQkJCTE5MDAgQ2FybmVnaWUsIEJsZGcgQgorCQkJCVNhbnRhIEFuYSBDQSA5MjcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMTAgICAoaGV4KQkJTE5DIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDIzMTAgICAgIChiYXNlIDE2KQkJTE5DIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMTlGLCBOby4gNzgtMiwgU2VjLiAzLCBUYWljaHVuZyBLYW5nIFJkLgorCQkJCVRhaWNodW5nICA0MDc2NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjMtMTEgICAoaGV4KQkJR2xvc2NvbSBDby4sIEx0ZC4KKzAwMjMxMSAgICAgKGJhc2UgMTYpCQlHbG9zY29tIENvLiwgTHRkLgorCQkJCSM1MDcgQ2hhbmdoeXVuIEJsZGcuCisJCQkJOTYwLTEgSG9neWUtZG9uZworCQkJCUFueWFuZyBDaXR5IEt5dW5nZ28tZG8gNDMxLTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy0xMiAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDIzMTIgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMTMgICAoaGV4KQkJUW9vbCBUZWNobm9sb2dpZXMgTHRkLgorMDAyMzEzICAgICAoYmFzZSAxNikJCVFvb2wgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQlHb3RhbmRhIE5vLjMgSGFuYXRhbmkgQmxkZyAzRiwKKwkJCQk1LTI4LTksSGlnYXNoaS1nb3RhbmRhCisJCQkJU2hpbmFnYXdhLWt1IFRva3lvIDE0MS0wMDIyCisJCQkJSkFQQU4KKworMDAtMjMtMTQgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDIzMTQgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yMy0xNSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjMxNSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTIzLTE2ICAgKGhleCkJCUtJU0FOIEVMRUNUUk9OSUNTIENPCiswMDIzMTYgICAgIChiYXNlIDE2KQkJS0lTQU4gRUxFQ1RST05JQ1MgQ08KKwkJCQkzMTctMTUKKwkJCQlTVU5HIFNVIDJHQSAzRE9ORworCQkJCVNFT1VORy1ET05HIEdVIFNFT1VMIDEzMy0xMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtMTcgICAoaGV4KQkJTGFzZXJjcmFmdCBJbmMKKzAwMjMxNyAgICAgKGJhc2UgMTYpCQlMYXNlcmNyYWZ0IEluYworCQkJCTE0NTAgT2FrYnJvb2sgRHJpdmUKKwkJCQlTdWl0ZSA5MDAKKwkJCQlOb3Jjcm9zcyBHQSAzMDA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMTggICAoaGV4KQkJVG9zaGliYQorMDAyMzE4ICAgICAoYmFzZSAxNikJCVRvc2hpYmEKKwkJCQkyLTksU3VlaGlyby1DaG8KKwkJCQlPbWUgVG9reW8gMTk4ODcxMAorCQkJCUpBUEFOCisKKzAwLTIzLTE5ICAgKGhleCkJCVNpZWxveCBMTEMKKzAwMjMxOSAgICAgKGJhc2UgMTYpCQlTaWVsb3ggTExDCisJCQkJMTcwIEVhc3QgTmludGggQXZlLgorCQkJCVJ1bm5lbWVkZSBOSiAwODA3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMUEgICAoaGV4KQkJSVRGIENvLiwgTHRkLgorMDAyMzFBICAgICAoYmFzZSAxNikJCUlURiBDby4sIEx0ZC4KKwkJCQkyLTItMTEgTmlzaGlraS1jaG8KKwkJCQlUYWNoaWthd2Etc2hpIFRva3lvIDE5MC0wMDIyCisJCQkJSkFQQU4KKworMDAtMjMtMUIgICAoaGV4KQkJRGFuYWhlciBNb3Rpb24gLSBLb2xsbW9yZ2VuCiswMDIzMUIgICAgIChiYXNlIDE2KQkJRGFuYWhlciBNb3Rpb24gLSBLb2xsbW9yZ2VuCisJCQkJMjAxIFcuIFJvY2sgUm9hZAorCQkJCVJhZGZvcmQgVkEgMjQxNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTFDICAgKGhleCkJCUZvdXJpZXIgU3lzdGVtcyBMdGQuCiswMDIzMUMgICAgIChiYXNlIDE2KQkJRm91cmllciBTeXN0ZW1zIEx0ZC4KKwkJCQkxNiBIYW1lbGFjaGEgU3QKKwkJCQlSb3NoIEhhYXlpbiAgNDgwOTEKKwkJCQlJU1JBRUwKKworMDAtMjMtMUQgICAoaGV4KQkJRGVsdGFjb20gRWxlY3Ryb25pY3MgTHRkCiswMDIzMUQgICAgIChiYXNlIDE2KQkJRGVsdGFjb20gRWxlY3Ryb25pY3MgTHRkCisJCQkJMkYsWklULDdrbSBUemFyaWdyYWRza28gU2hvc2UKKwkJCQlTb2ZpYSBTb2ZpYS1ncmFkIDE3ODQKKwkJCQlCVUxHQVJJQQorCiswMC0yMy0xRSAgIChoZXgpCQlDZXp6ZXIgTXVsdGltZWRpYSBUZWNobm9sb2dpZXMKKzAwMjMxRSAgICAgKGJhc2UgMTYpCQlDZXp6ZXIgTXVsdGltZWRpYSBUZWNobm9sb2dpZXMKKwkJCQlQ6XBpbmnocmUgZCdlbnRyZXByaXNlcyBDUkVBVElDCisJCQkJMTE1IHJ1ZSBDbGF1ZGUgQ2hhcHBlCisJCQkJUGxvdXphbukgIDI5MjgwCisJCQkJRlJBTkNFCisKKzAwLTIzLTFGICAgKGhleCkJCUd1YW5nZGEgRWxlY3Ryb25pYyAmIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ28uLCBMdGQuCiswMDIzMUYgICAgIChiYXNlIDE2KQkJR3VhbmdkYSBFbGVjdHJvbmljICYgVGVsZWNvbW11bmljYXRpb24gVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKwkJCQkjOCBHYW9wZW5nZG9uZyBSb2FkLCBHYW94aW4gRGlzdHJpY3QKKwkJCQlDaGVuZ2R1IFNpY2h1YW4gNjEwMDQxCisJCQkJQ0hJTkEKKworMDAtMjMtMjAgICAoaGV4KQkJTmljaXJhIE5ldHdvcmtzCiswMDIzMjAgICAgIChiYXNlIDE2KQkJTmljaXJhIE5ldHdvcmtzCisJCQkJMzYwMCBXLiBCYXlzaG9yZSBSZC4sIAorCQkJCVN1aXRlIDIwNQorCQkJCVBhbG8gQWx0byBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMjEgICAoaGV4KQkJQXZpdGVjaCBJbnRlcm5hdGlvbmFsIENvcnAKKzAwMjMyMSAgICAgKGJhc2UgMTYpCQlBdml0ZWNoIEludGVybmF0aW9uYWwgQ29ycAorCQkJCTE1MzMzIE5FIDkwdGggU3RyZWV0CisJCQkJUmVkbW9uZCBXQSA5ODA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMjIgICAoaGV4KQkJS0lTUyBUZWtuaWNhbCBTb2x1dGlvbnMsIEluYy4KKzAwMjMyMiAgICAgKGJhc2UgMTYpCQlLSVNTIFRla25pY2FsIFNvbHV0aW9ucywgSW5jLgorCQkJCTE1ODMgUy4gTmF2YWpvIFdheQorCQkJCUNoYW5kbGVyIEFyaXpvbmEgODUyODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTIzICAgKGhleCkJCVp5bGluIEFTCiswMDIzMjMgICAgIChiYXNlIDE2KQkJWnlsaW4gQVMKKwkJCQlBdWdsZW5kc2RhbGVuIDc4CisJCQkJU3RhdmFuZ2VyICA0MDE3CisJCQkJTk9SV0FZCisKKzAwLTIzLTI0ICAgKGhleCkJCUctUFJPIENPTVBVVEVSCiswMDIzMjQgICAgIChiYXNlIDE2KQkJRy1QUk8gQ09NUFVURVIKKwkJCQlmaXJzdCBhcnJhbmdlIEMsIFlpbmdIdSBpbmR1c3RyaWFsIGVzdGF0ZQorCQkJCVFpbmdYaSBDb3VudHJ5CisJCQkJRG9uZ0d1YW4gQ2l0eSBHdWFuZ0RvbmcgUHJvdmluY2UgNTIzNjQ4CisJCQkJQ0hJTkEKKworMDAtMjMtMjUgICAoaGV4KQkJSU9MQU4gSG9sZGluZworMDAyMzI1ICAgICAoYmFzZSAxNikJCUlPTEFOIEhvbGRpbmcKKwkJCQlNb24gUGxhaXNpciAyNgorCQkJCUV0dGVuIExldXIgIDQ4NzlBTgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIzLTI2ICAgKGhleCkJCUZ1aml0c3UgTGltaXRlZAorMDAyMzI2ICAgICAoYmFzZSAxNikJCUZ1aml0c3UgTGltaXRlZAorCQkJCU11c2FzaGkta29zdWdpIFRvd2VyIFBsYWNlIEJsZGcuLAorCQkJCTQwMywgS29zdWdpLWNobyAxLWNob21lLE5ha2FoYXJhLWt1CisJCQkJS2F3YXNha2kgS2FuYWdhd2EgMjExLTAwNjMKKwkJCQlKQVBBTgorCiswMC0yMy0yNyAgIChoZXgpCQlTaG91eW8gRWxlY3Ryb25pY3MgQ08uLCBMVEQKKzAwMjMyNyAgICAgKGJhc2UgMTYpCQlTaG91eW8gRWxlY3Ryb25pY3MgQ08uLCBMVEQKKwkJCQk0Ri4sIE5vLjgsIExhbmUgMzQ1LCBZYW5nIEt1bmcgU3QuCisJCQkJVGFpcGVpICAxMTQ5MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjMtMjggICAoaGV4KQkJQUxDT04gVEVMRUNPTU1VTklDQVRJT05TIENPLiwgTFRELgorMDAyMzI4ICAgICAoYmFzZSAxNikJCUFMQ09OIFRFTEVDT01NVU5JQ0FUSU9OUyBDTy4sIExURC4KKwkJCQkybmQgRkwsIE5PIDQ4MC01LCBTRUMuIDYsIFlFTi1QSU5HIE4uIFJELiwKKwkJCQlTSElILUxJTgorCQkJCVRBSVBFSSBUQUlXQU4gMTExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy0yOSAgIChoZXgpCQlERFJkcml2ZSBMTEMKKzAwMjMyOSAgICAgKGJhc2UgMTYpCQlERFJkcml2ZSBMTEMKKwkJCQkxMTA3NiBFbGF0aSBTdAorCQkJCU5vcnRoZ2xlbm4gQ08gODAyMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTJBICAgKGhleCkJCWVvbmFzIElULUJlcmF0dW5nIHVuZCAtRW50d2lja2x1bmcgR21iSAorMDAyMzJBICAgICAoYmFzZSAxNikJCWVvbmFzIElULUJlcmF0dW5nIHVuZCAtRW50d2lja2x1bmcgR21iSAorCQkJCUdyZWlmZW5oYWdlbmVyIFN0ci4gNTQKKwkJCQlCZXJsaW4gIDEwNDM3CisJCQkJR0VSTUFOWQorCiswMC0yMy0yQiAgIChoZXgpCQlJUkQgQS9TCiswMDIzMkIgICAgIChiYXNlIDE2KQkJSVJEIEEvUworCQkJCUt1bGxpbmdnYWRlIDMxCisJCQkJU3ZlbmRib3JnIEZ5biA1NzAwCisJCQkJREVOTUFSSworCiswMC0yMy0yQyAgIChoZXgpCQlTZW50aWNhcmUKKzAwMjMyQyAgICAgKGJhc2UgMTYpCQlTZW50aWNhcmUKKwkJCQkxNjEgV29yY2VzdGVyIFJkCisJCQkJU3VpdGUgMzA1CisJCQkJRnJhbWluZ2hhbSBNQSAwMTcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMkQgICAoaGV4KQkJU2FuZEZvcmNlCiswMDIzMkQgICAgIChiYXNlIDE2KQkJU2FuZEZvcmNlCisJCQkJMTI5NTAgU2FyYXRvZ2EgQXZlLgorCQkJCVNhcmF0b2dhIENhbGlmb3JuaWEgOTUwNzAtNDY1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMkUgICAoaGV4KQkJS2VkYWggRWxlY3Ryb25pY3MgRW5naW5lZXJpbmcsIExMQworMDAyMzJFICAgICAoYmFzZSAxNikJCUtlZGFoIEVsZWN0cm9uaWNzIEVuZ2luZWVyaW5nLCBMTEMKKwkJCQlaZWxlbm9ncmFkLCA0NDUKKwkJCQlNb3Njb3cgIDEyNDQ5OAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yMy0yRiAgIChoZXgpCQlBZHZhbmNlZCBDYXJkIFN5c3RlbXMgTHRkLgorMDAyMzJGICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIENhcmQgU3lzdGVtcyBMdGQuCisJCQkJVW5pdCAyMDEwLTEzLCBDaGV2YWxpZXIgQ29tbWVyY2lhbCBDZW50cmUsCisJCQkJOCBXYW5nIEhvaSBSb2FkLAorCQkJCUtvd2xvb24gQmF5LCBTQVIgCisJCQkJSE9ORyBLT05HCisKKzAwLTIzLTMwICAgKGhleCkJCURJWklQSUEsIElOQy4KKzAwMjMzMCAgICAgKGJhc2UgMTYpCQlESVpJUElBLCBJTkMuCisJCQkJMTV0aCBGbG9vciwgRWFzdCBXaW5nLCBJVCBWZW50dXJlIFRvd2VyCisJCQkJNzggR2FyYWstZG9uZywgU29uZ3BhLUd1LAorCQkJCVNlb3VsICAxMzgxNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtMzEgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDIzMzEgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gS1lPVE8gNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yMy0zMiAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDIzMzIgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMzMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMzMzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTM0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjMzNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0zNSAgIChoZXgpCQlMaW5rZmxleCBDby4sTHRkCiswMDIzMzUgICAgIChiYXNlIDE2KQkJTGlua2ZsZXggQ28uLEx0ZAorCQkJCTVGLiBNaW4gWW91bmcgQmxkZy4gMTc1LTIKKwkJCQlOb25oeWVvbi1Eb25nLCBHYW5nbmFtLUd1CisJCQkJU2VvdWwgIDEzNS0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtMzYgICAoaGV4KQkJTUVURUwgcy5yLm8uCiswMDIzMzYgICAgIChiYXNlIDE2KQkJTUVURUwgcy5yLm8uCisJCQkJVmVsa2EgSmVzZW5pY2UgMTI1CisJCQkJVmVsa2EgSmVzZW5pY2UgTmFjaG9kIDU1MjI0CisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMjMtMzcgICAoaGV4KQkJR2xvYmFsIFN0YXIgU29sdXRpb25zIFVMQworMDAyMzM3ICAgICAoYmFzZSAxNikJCUdsb2JhbCBTdGFyIFNvbHV0aW9ucyBVTEMKKwkJCQk0NjAwIEphY29tYnMgUm9hZAorCQkJCVJpY2htb25kIEJDIFY2ViAzQjEKKwkJCQlDQU5BREEKKworMDAtMjMtMzggICAoaGV4KQkJT0otRWxlY3Ryb25pY3MgQS9TCiswMDIzMzggICAgIChiYXNlIDE2KQkJT0otRWxlY3Ryb25pY3MgQS9TCisJCQkJU3RlbmFnZXIgMTNCCisJCQkJU/huZGVyYm9yZyAgNjQwMAorCQkJCURFTk1BUksKKworMDAtMjMtMzkgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworMDAyMzM5ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtM0EgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswMDIzM0EgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLTNCICAgKGhleCkJCUMtTWF0aWMgU3lzdGVtcyBMdGQKKzAwMjMzQiAgICAgKGJhc2UgMTYpCQlDLU1hdGljIFN5c3RlbXMgTHRkCisJCQkJV2FycmVuIENvdXJ0CisJCQkJUGFyayBSb2FkCisJCQkJQ3Jvd2Jvcm91Z2ggRWFzdCBTdXNzZXggVE42IDJRWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIzLTNDICAgKGhleCkJCUFsZmxleAorMDAyMzNDICAgICAoYmFzZSAxNikJCUFsZmxleAorCQkJCUJsYXV3LXJvb2RsYWFuIDMwMAorCQkJCVpPRVRFUk1FRVIgIDI3MTggU0sKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMy0zRCAgIChoZXgpCQlub3Zlcm8gR21iSAorMDAyMzNEICAgICAoYmFzZSAxNikJCW5vdmVybyBHbWJICisJCQkJUmVuc2luZ3N0cmFzc2UgMTUKKwkJCQlCb2NodW0gIDQ0ODA3CisJCQkJR0VSTUFOWQorCiswMC0yMy0zRSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudC1JUEQKKzAwMjMzRSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudC1JUEQKKwkJCQk3MDEgRS4gTWlkZGxlZmllbGQgUmQuCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtM0YgICAoaGV4KQkJUHVyZWNob2ljZSBJbmMKKzAwMjMzRiAgICAgKGJhc2UgMTYpCQlQdXJlY2hvaWNlIEluYworCQkJCTExNDgxIFJ1cHAgRHJpdmUKKwkJCQlCdXJuc3ZpbGxlIE1OIDU1MzM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy00MCAgIChoZXgpCQlNaVggVGVsZW1hdGljcworMDAyMzQwICAgICAoYmFzZSAxNikJCU1pWCBUZWxlbWF0aWNzCisJCQkJQmxhYXV3a2xpcCBPZmZpY2UgUGFyayAyCisJCQkJQ25yIFN0cmFuZCAmIFdlYmVyc3ZhbGxlaSBSZAorCQkJCVN0ZWxsZW5ib3NjaCBXZXN0ZXJuIENhcGUgNzYwMAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0yMy00MSAgIChoZXgpCQlTaWVtZW5zIEFHCiswMDIzNDEgICAgIChiYXNlIDE2KQkJU2llbWVucyBBRworCQkJCUluZHVzdHJ5IFNlY3RvciwgQnVpbGRpbmcgVGVjaG5vbG9naWVzIERpdmlzaW9uCisJCQkJSSBCVCBERSBTUCwgU2llbWVuc2FsbGVlIDg0CisJCQkJS2FybHNydWhlIERldXRzY2hsYW5kIEQtNzYxODcKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLTQyICAgKGhleCkJCUNvZmZlZSBFcXVpcG1lbnQgQ29tcGFueQorMDAyMzQyICAgICAoYmFzZSAxNikJCUNvZmZlZSBFcXVpcG1lbnQgQ29tcGFueQorCQkJCTQyMTYgNnRoIEF2ZSBOVworCQkJCVNlYXR0bGUgV0EgOTgxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTQzICAgKGhleCkJCVRFTSBBRworMDAyMzQzICAgICAoYmFzZSAxNikJCVRFTSBBRworCQkJCVRyaXN0c3RyYXNzZSA4CisJCQkJQ2h1ciAgNzAwNworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTIzLTQ0ICAgKGhleCkJCU9iamVjdGl2ZSBJbnRlcmZhY2UgU3lzdGVtcworMDAyMzQ0ICAgICAoYmFzZSAxNikJCU9iamVjdGl2ZSBJbnRlcmZhY2UgU3lzdGVtcworCQkJCTEzODczIFBhcmsgQ2VudGVyIFJkCisJCQkJU3VpdGUgMzYwCisJCQkJSGVybmRvbiBWQSAyMDE3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNDUgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKzAwMjM0NSAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNr5W5lIDIyMTg4CisJCQkJU1dFREVOCisKKzAwLTIzLTQ2ICAgKGhleCkJCVZlc3RhYworMDAyMzQ2ICAgICAoYmFzZSAxNikJCVZlc3RhYworCQkJCVAuTy4gQm94IDczNTgKKwkJCQlTaHJld3NidXJ5IE5KIDA3NzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy00NyAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCiswMDIzNDcgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQKKwkJCQlSb3NldmlsbGUgQ2FsaWZvcm5pYSA5NTc0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNDggICAoaGV4KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorMDAyMzQ4ICAgICAoYmFzZSAxNikJCVNBR0VNIENPTU1VTklDQVRJT04KKwkJCQkxNCBSdWUgUGF1bCBEYXV0aWVyCisJCQkJVmVsaXp5ICA3ODQ1NworCQkJCUZSQU5DRQorCiswMC0yMy00OSAgIChoZXgpCQlIZWxtaG9sdHogQ2VudHJlIEJlcmxpbiBmb3IgTWF0ZXJpYWwgYW5kIEVuZXJneQorMDAyMzQ5ICAgICAoYmFzZSAxNikJCUhlbG1ob2x0eiBDZW50cmUgQmVybGluIGZvciBNYXRlcmlhbCBhbmQgRW5lcmd5CisJCQkJRGVwYXJ0bWVudCBGTUQKKwkJCQlHbGllbmlja2VyIFN0cmFzc2UgMTAwCisJCQkJQmVybGluICAxNDEwOQorCQkJCUdFUk1BTlkKKworMDAtMjMtNEEgICAoaGV4KQkJUFJJVkFURQorMDAyMzRBICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0yMy00QiAgIChoZXgpCQlJbnl1YW4gVGVjaG5vbG9neSBJbmMuCiswMDIzNEIgICAgIChiYXNlIDE2KQkJSW55dWFuIFRlY2hub2xvZ3kgSW5jLgorCQkJCU5vLiAzLCBTaW5neWUgU3QuLAorCQkJCUd1ZWlzaGFuIFRvd25zaGlwCisJCQkJVGFveXVhbiBDb3VudHkgIDMzMzQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy00QyAgIChoZXgpCQlLVEMgQUIKKzAwMjM0QyAgICAgKGJhc2UgMTYpCQlLVEMgQUIKKwkJCQlGIE8gUGV0ZXJzb25zIGdhdGEgNgorCQkJCVZhc3RyYSBGcm9sdW5kYSBHb3RoZW5idXJnIFNFLTQyMTMxCisJCQkJU1dFREVOCisKKzAwLTIzLTREICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCiswMDIzNEQgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKwkJCQk2NiwgQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiBUYWl3YW4gMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy00RSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorMDAyMzRFICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCisJCQkJNjYsQ2h1bmcgU2hhbiBSZC5UdS1jaGVuZworCQkJCVRhaXBlaSBIc2llbiBUYWl3YW4gMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy00RiAgIChoZXgpCQlMdW1pbm91cyBQb3dlciBUZWNobm9sb2dpZXMgUHZ0LiBMdGQuCiswMDIzNEYgICAgIChiYXNlIDE2KQkJTHVtaW5vdXMgUG93ZXIgVGVjaG5vbG9naWVzIFB2dC4gTHRkLgorCQkJCUM4LUM5LCBDb21tdW5pdHkgQ2VudGVyLAorCQkJCUJlaGluZCBKYW5hayBDaW5lbWEsIEphbmFrcHVyaSwKKwkJCQlOZXcgRGVsaGkgIDExMDA1OAorCQkJCUlORElBCisKKzAwLTIzLTUwICAgKGhleCkJCUx5blRlYworMDAyMzUwICAgICAoYmFzZSAxNikJCUx5blRlYworCQkJCTg0MDEgTWVscm9zZSBEcml2ZQorCQkJCUxlbmV4YSBLUyA2NjIxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNTEgICAoaGV4KQkJMldpcmUKKzAwMjM1MSAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTUyICAgKGhleCkJCURBVEFTRU5TT1IgUy5wLkEuCiswMDIzNTIgICAgIChiYXNlIDE2KQkJREFUQVNFTlNPUiBTLnAuQS4KKwkJCQlWaWEgTGF2aW5vLCAyNjUKKwkJCQlNb250ZSBTYW4gUGlldHJvIChCTykgIDQwMDUwCisJCQkJSVRBTFkKKworMDAtMjMtNTMgICAoaGV4KQkJRiBFIFQgRWxldHRyb25pY2Egc25jCiswMDIzNTMgICAgIChiYXNlIDE2KQkJRiBFIFQgRWxldHRyb25pY2Egc25jCisJCQkJVmlhIEEuTWFuem9uaSAxNC9hCisJCQkJQ1AzMDMgUFBUVCBQb2dnaWJvbnNpIENlbnRybworCQkJCVBvZ2dpYm9uc2kgU2llbmEgNTMwMzYKKwkJCQlJVEFMWQorCiswMC0yMy01NCAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMjM1NCAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91LAorCQkJCVRhaXBlaSBUYWl3YW4gMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy01NSAgIChoZXgpCQlLaW5jbyBBdXRvbWF0aW9uKFNoYW5naGFpKSBMdGQuCiswMDIzNTUgICAgIChiYXNlIDE2KQkJS2luY28gQXV0b21hdGlvbihTaGFuZ2hhaSkgTHRkLgorCQkJCUJsZGcxLCBOby4xMzg3LCBaaGFuZ2RvbmcgUm9hZCwKKwkJCQlaaGFuZ2ppYW5nIEhpLXRlY2ggUGFyaywgUHVkb25nLgorCQkJCVNoYW5naGFpIDIwMTIwMworCQkJCUNISU5BCisKKzAwLTIzLTU2ICAgKGhleCkJCVBhY2tldCBGb3JlbnNpY3MgTExDCiswMDIzNTYgICAgIChiYXNlIDE2KQkJUGFja2V0IEZvcmVuc2ljcyBMTEMKKwkJCQk0MjAgUyBTbWl0aCBSZAorCQkJCVRlbXBlIEFaIDg1MjgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy01NyAgIChoZXgpCQlQaXRyb25vdCBUZWNobm9sb2dpZXMgYW5kIEVuZ2luZWVyaW5nIFAuVC5FLiBMdGQuCiswMDIzNTcgICAgIChiYXNlIDE2KQkJUGl0cm9ub3QgVGVjaG5vbG9naWVzIGFuZCBFbmdpbmVlcmluZyBQLlQuRS4gTHRkLgorCQkJCTggSGF0dXQgc3QKKwkJCQlQYXJkZXNpeWEgIDQyODE1CisJCQkJSVNSQUVMCisKKzAwLTIzLTU4ICAgKGhleCkJCVNZU1RFTCBTQQorMDAyMzU4ICAgICAoYmFzZSAxNikJCVNZU1RFTCBTQQorCQkJCVpJIERFIEJFTExFIEFJUkUKKwkJCQlCUCAzMQorCQkJCUFZVFJFICAxNzQ0MAorCQkJCUZSQU5DRQorCiswMC0yMy01OSAgIChoZXgpCQlCZW5jaG1hcmsgRWxlY3Ryb25pY3MgKCBUaGFpbGFuZCApIFB1YmxpYyBDb21wYW55IExpbWl0ZWQKKzAwMjM1OSAgICAgKGJhc2UgMTYpCQlCZW5jaG1hcmsgRWxlY3Ryb25pY3MgKCBUaGFpbGFuZCApIFB1YmxpYyBDb21wYW55IExpbWl0ZWQKKwkJCQk5NCBNb28gMSwgSGktVGVjaCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCUJhbmxhbmUKKwkJCQlCYW5nIFBhLWluIEF5dWRoYXlhIDEzMTYwCisJCQkJVEhBSUxBTkQKKworMDAtMjMtNUEgICAoaGV4KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIEx0ZC4KKzAwMjM1QSAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTHRkLgorCQkJCU5PIDI1LCBUaGUgM3JkIHN0cmVldCwKKwkJCQlLdWFuU2hhbiBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJS3VhblNoYW4gU1VaSE9VIDIxNTMwMAorCQkJCUNISU5BCisKKzAwLTIzLTVCICAgKGhleCkJCUd1bGZzdHJlYW0KKzAwMjM1QiAgICAgKGJhc2UgMTYpCQlHdWxmc3RyZWFtCisJCQkJMzIgTHVtbXVzIERyaXZlCisJCQkJUkRDIExhYiBSLTA4CisJCQkJU2F2YW5uYWggR0EgMzE0MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTVDICAgKGhleCkJCUFwcml1cywgSW5jLgorMDAyMzVDICAgICAoYmFzZSAxNikJCUFwcml1cywgSW5jLgorCQkJCTQ0MCBOLiBXb2xmZSBSZAorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNUQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMzVEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTVFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjM1RSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy01RiAgIChoZXgpCQlTaWxpY29uIE1pY3JvIFNlbnNvcnMgR21iSAorMDAyMzVGICAgICAoYmFzZSAxNikJCVNpbGljb24gTWljcm8gU2Vuc29ycyBHbWJICisJCQkJR3JlbnpzdHJhc3NlIDI4IC8gR2Vi5HVkZSAzMgorCQkJCURyZXNkZW4gU2F4b255IDAxMTA5CisJCQkJR0VSTUFOWQorCiswMC0yMy02MCAgIChoZXgpCQlMb29raXQgVGVjaG5vbG9neSBDby4sIEx0ZAorMDAyMzYwICAgICAoYmFzZSAxNikJCUxvb2tpdCBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJRkwgOCBTZWFzaG9yZSBNYW5zaW9uCisJCQkJQmFvJ2FuIENCRCBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDAKKwkJCQlDSElOQQorCiswMC0yMy02MSAgIChoZXgpCQlVbmlnZW4gQ29ycG9yYXRpb24KKzAwMjM2MSAgICAgKGJhc2UgMTYpCQlVbmlnZW4gQ29ycG9yYXRpb24KKwkJCQk0NTM4OCBXYXJtIFNwcmluZ3MgQmx2ZAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTYyICAgKGhleCkJCUdvbGRsaW5lIENvbnRyb2xzCiswMDIzNjIgICAgIChiYXNlIDE2KQkJR29sZGxpbmUgQ29udHJvbHMKKwkJCQk2MSBXaGl0ZWNhcCBEcgorCQkJCU5vcnRoIEtpbmdzdG93biBSSSAwMjg1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNjMgICAoaGV4KQkJWmh1aGFpIFJheVNoYXJwIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDIzNjMgICAgIChiYXNlIDE2KQkJWmh1aGFpIFJheVNoYXJwIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uMTE5IG9mIEh1YXdlaSBSb2FkLCBRaWFuc2hhbiBTY2llbmNlICYgVGVjaG5vbG9neSBQYXJrLAorCQkJCVpodWhhaSBHdWFuZ2RvbmcgNTE5MDcwCisJCQkJQ0hJTkEKKworMDAtMjMtNjQgICAoaGV4KQkJUG93ZXIgSW5zdHJ1bWVudHMgUHRlIEx0ZAorMDAyMzY0ICAgICAoYmFzZSAxNikJCVBvd2VyIEluc3RydW1lbnRzIFB0ZSBMdGQKKwkJCQlCTEsgNDAgVE9IIEdVQU4gUkQgRUFTVCwgIzAxLTYyIEVOVEVSUFJJU0UgSFVCCisJCQkJNjA4NTgyCisJCQkJU0lOR0FQT1JFCisKKzAwLTIzLTY1ICAgKGhleCkJCUVMS0EtRWxla3Ryb25payBHbWJICiswMDIzNjUgICAgIChiYXNlIDE2KQkJRUxLQS1FbGVrdHJvbmlrIEdtYkgKKwkJCQlUYWxzdHJhc3NlIDEwNAorCQkJCUz8ZGVuc2NoZWlkIE5SVyA1ODUxNQorCQkJCUdFUk1BTlkKKworMDAtMjMtNjYgICAoaGV4KQkJQmVpamluZyBTaWFzdW4gRWxlY3Ryb25pYyBTeXN0ZW0gQ28uLEx0ZC4KKzAwMjM2NiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFNpYXN1biBFbGVjdHJvbmljIFN5c3RlbSBDby4sTHRkLgorCQkJCVJtLjEwMTggSHVhdGlhbiBCbGRnLCBOby42IEJlaSBYaWFvbWFjaGFuZworCQkJCUhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwMzgKKwkJCQlDSElOQQorCiswMC0yMy02NyAgIChoZXgpCQlVbmlDb250cm9scyBhLnMuCiswMDIzNjcgICAgIChiYXNlIDE2KQkJVW5pQ29udHJvbHMgYS5zLgorCQkJCUtyZW5pY2thIDIyNTcKKwkJCQlQcmFndWUgMTAgIDEwMCAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTIzLTY4ICAgKGhleCkJCU1vdG9yb2xhCiswMDIzNjggICAgIChiYXNlIDE2KQkJTW90b3JvbGEKKwkJCQkxIE1vdG9yb2xhIFBsYXphCisJCQkJSG9sdHN2aWxsZSBOWSAxMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNjkgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCiswMDIzNjkgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy02QSAgIChoZXgpCQlDbGVhckFjY2VzcywgSW5jLgorMDAyMzZBICAgICAoYmFzZSAxNikJCUNsZWFyQWNjZXNzLCBJbmMuCisJCQkJMTMwMSBORSAxNDR0aCBTdHJlZXQKKwkJCQlTdWl0ZSAxMTkKKwkJCQlWYW5jb3V2ZXIgV0EgOTg2ODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTZCICAgKGhleCkJCVhlbWJlZGRlZCwgSW5jLgorMDAyMzZCICAgICAoYmFzZSAxNikJCVhlbWJlZGRlZCwgSW5jLgorCQkJCTEwNTAgSGlnaGxhbmQgRHIKKwkJCQlTdWl0ZSBFCisJCQkJQW5uIEFyYm9yIE1JIDQ4MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy02QyAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDIzNkMgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNkQgICAoaGV4KQkJUmVzTWVkIEx0ZAorMDAyMzZEICAgICAoYmFzZSAxNikJCVJlc01lZCBMdGQKKwkJCQkxLCBFbGl6YWJldGggTWFjYXJ0aHVyIERyaXZlCisJCQkJQmVsbGEgVmlzdGEgTlNXIDIxNTMKKwkJCQlBVVNUUkFMSUEKKworMDAtMjMtNkUgICAoaGV4KQkJQnVyc3RlciBHbWJIICYgQ28gS0cKKzAwMjM2RSAgICAgKGJhc2UgMTYpCQlCdXJzdGVyIEdtYkggJiBDbyBLRworCQkJCVRhbHN0cmFzc2UgMS01CisJCQkJR2VybnNiYWNoIEJhZGVuLVf8cnR0ZW1iZXJnIDc2NTkzCisJCQkJR0VSTUFOWQorCiswMC0yMy02RiAgIChoZXgpCQlEQVEgU3lzdGVtCiswMDIzNkYgICAgIChiYXNlIDE2KQkJREFRIFN5c3RlbQorCQkJCTcwOS0xLCBCdW5kYW5nIFRlY2hubyBQYXJrIEEtRG9uZywKKwkJCQlZYXRhcC1Eb25nLCBCdW5kYW5nLUd1CisJCQkJU3VuZ25hbS1TaSBLeXVuZ2dpLURvLCA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLTcwICAgKGhleCkJCVNuZWxsCiswMDIzNzAgICAgIChiYXNlIDE2KQkJU25lbGwKKwkJCQlIYXJ0bWFuIEhvdXNlCisJCQkJRGFuZWhpbGwKKwkJCQlSZWFkaW5nIEJlcmtzIFJHNiA0UEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMy03MSAgIChoZXgpCQlTT0FNIFN5c3RlbAorMDAyMzcxICAgICAoYmFzZSAxNikJCVNPQU0gU3lzdGVsCisJCQkJMTgyLTEzLCBEYWVydW5nIFBvc3QgVG93ZXIgSUksIDE1MDQKKwkJCQlTZW91bCBHdXJvLWRvbmcsIEd1cm8tZ3UgMTUyLTg0NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy03MiAgIChoZXgpCQlNT1JFIFNUQVIgSU5EVVNUUklBTCBHUk9VUCBMSU1JVEVECiswMDIzNzIgICAgIChiYXNlIDE2KQkJTU9SRSBTVEFSIElORFVTVFJJQUwgR1JPVVAgTElNSVRFRAorCQkJCVJtMTIyMS0xMjI1LCBGMTIgU2FuZ2RhIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgQnVpbGRpbmcgLAorCQkJCUtlamkgUm9hZCAsIEhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0yMy03MyAgIChoZXgpCQlHcmlkSXJvbiBTeXN0ZW1zLCBJbmMuCiswMDIzNzMgICAgIChiYXNlIDE2KQkJR3JpZElyb24gU3lzdGVtcywgSW5jLgorCQkJCTcyNiBQYWxvbWFyIEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNzQgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjM3NCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTc1ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIzNzUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy03NiAgIChoZXgpCQlIVEMgQ29ycG9yYXRpb24KKzAwMjM3NiAgICAgKGJhc2UgMTYpCQlIVEMgQ29ycG9yYXRpb24KKwkJCQlOby4yMyBYaW5naHVhIFJvYWQKKwkJCQlUYW95dWFuIENpdHkKKwkJCQlUYW95dWFuIENvdW50eSAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy03NyAgIChoZXgpCQlJc290ZWsgRWxlY3Ryb25pY3MgTHRkCiswMDIzNzcgICAgIChiYXNlIDE2KQkJSXNvdGVrIEVsZWN0cm9uaWNzIEx0ZAorCQkJCTkgQ2xheXRvbiBXb29kIEJhbmsKKwkJCQlXZXN0IFBhcmsgUmluZyBSb2FkCisJCQkJTGVlZHMgIExTMTYgNlFaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjMtNzggICAoaGV4KQkJR04gTmV0Y29tIEEvUworMDAyMzc4ICAgICAoYmFzZSAxNikJCUdOIE5ldGNvbSBBL1MKKwkJCQlMYXV0cnVwYmplcmcgNworCQkJCVAuTy5Cb3ggOTkKKwkJCQlCYWxsZXJ1cCAgREsgLSAyNzUwCisJCQkJREVOTUFSSworCiswMC0yMy03OSAgIChoZXgpCQlVbmlvbiBCdXNpbmVzcyBNYWNoaW5lcyBDby4gTHRkLgorMDAyMzc5ICAgICAoYmFzZSAxNikJCVVuaW9uIEJ1c2luZXNzIE1hY2hpbmVzIENvLiBMdGQuCisJCQkJVW5pdCAyLCAyL0YsIEJsb2NrIEEsIEhvbmcgS29uZyBJbmR1c3RyaWFsIENlbnRyZSwKKwkJCQk0ODktNDkxIENhc3RsZSBQZWFrIFJvYWQsCisJCQkJTGFpIENoaSBLb2sgS293bG9vbiAKKwkJCQlIT05HIEtPTkcKKworMDAtMjMtN0EgICAoaGV4KQkJUklNCiswMDIzN0EgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzAwLTIzLTdCICAgKGhleCkJCVdIREkgTExDCiswMDIzN0IgICAgIChiYXNlIDE2KQkJV0hESSBMTEMKKwkJCQkyMzUwIE1pc3Npb24gQ29sbGVnZSBCbHZkLgorCQkJCVN1aXRlIDUwMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy03QyAgIChoZXgpCQlORU9USU9OCiswMDIzN0MgICAgIChiYXNlIDE2KQkJTkVPVElPTgorCQkJCVpJIGxlcyBQYWx1ZHMKKwkJCQkxNjUsIGF2ZW51ZSBkdSBNYXJpbiBCbGFuYworCQkJCUFVQkFHTkUgIEYtMTM0MDAKKwkJCQlGUkFOQ0UKKworMDAtMjMtN0QgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDIzN0QgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMgorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTdFICAgKGhleCkJCUVMU1RFUiBHTUJICiswMDIzN0UgICAgIChiYXNlIDE2KQkJRUxTVEVSIEdNQkgKKwkJCQlLVUhCUlVFQ0tFTlNUUkFTU0UgMi00CisJCQkJSEFNRUxOICAzMTc4NQorCQkJCUdFUk1BTlkKKworMDAtMjMtN0YgICAoaGV4KQkJUExBTlRST05JQ1MKKzAwMjM3RiAgICAgKGJhc2UgMTYpCQlQTEFOVFJPTklDUworCQkJCTM0NSBFTkNJTkFMIFNUCisJCQkJU0FOVEEgQ1JVWiBDQSA5NTA2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtODAgICAoaGV4KQkJTmFub3RlcQorMDAyMzgwICAgICAoYmFzZSAxNikJCU5hbm90ZXEKKwkJCQkgUE8gQm94IDc5OTEKKwkJCQkxIFBpZXRlciBTdHJlZXQsIEhpZ2h2ZWxkIFBhcmsKKwkJCQlDZW50dXJpb24gR2F1dGVuZyAwMDQ2CisJCQkJU09VVEggQUZSSUNBCisKKzAwLTIzLTgxICAgKGhleCkJCUxlbmdkYSBUZWNobm9sb2d5KFhpYW1lbikgQ28uLEx0ZC4KKzAwMjM4MSAgICAgKGJhc2UgMTYpCQlMZW5nZGEgVGVjaG5vbG9neShYaWFtZW4pIENvLixMdGQuCisJCQkJNS9GLCA0NyBIYWlqaW5nIFNvdXRoIDJuZCBSb2FkLFhpYW1lbiBFeHBvcnQgUHJvY2Vzc2luZyBab25lLCBIYWljYW5nIERpc3RyaWN0LAorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDI2CisJCQkJQ0hJTkEKKworMDAtMjMtODIgICAoaGV4KQkJTGloIFJvbmcgRWxlY3Ryb25pYyBFbnRlcnByaXNlIENvLiwgTHRkLgorMDAyMzgyICAgICAoYmFzZSAxNikJCUxpaCBSb25nIEVsZWN0cm9uaWMgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKwkJCQlOby4gMiwgTGFuZSAzODcsIEhzaW4gU2h1IFJkLgorCQkJCUhzaW4gQ2h1YW5nIENpdHksIFRhaXBlaSAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTgzICAgKGhleCkJCUluTWFnZSBTeXN0ZW1zIEluYworMDAyMzgzICAgICAoYmFzZSAxNikJCUluTWFnZSBTeXN0ZW1zIEluYworCQkJCTMyNTUtMSBTY290dCBCbHZkLCAjMTA0CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTg0ICAgKGhleCkJCUdHSCBFbmdpbmVlcmluZyBzLnIubC4KKzAwMjM4NCAgICAgKGJhc2UgMTYpCQlHR0ggRW5naW5lZXJpbmcgcy5yLmwuCisJCQkJVmlhIEFndWNjaGkgODQvMgorCQkJCUJvbG9nbmEgIDQwMTMzCisJCQkJSVRBTFkKKworMDAtMjMtODUgICAoaGV4KQkJQU5USVBPREUKKzAwMjM4NSAgICAgKGJhc2UgMTYpCQlBTlRJUE9ERQorCQkJCTUgUlVFIERFIERPVUFJCisJCQkJUEFSSVMgSUxFIERFIEZSQU5DRSA3NTAwOQorCQkJCUZSQU5DRQorCiswMC0yMy04NiAgIChoZXgpCQlUb3VyICYgQW5kZXJzc29uIEFCCiswMDIzODYgICAgIChiYXNlIDE2KQkJVG91ciAmIEFuZGVyc3NvbiBBQgorCQkJCUFubmVsdW5kCisJCQkJTGp1bmcgIDUyNCA4MAorCQkJCVNXRURFTgorCiswMC0yMy04NyAgIChoZXgpCQlUaGlua0Zsb29kLCBJbmMuCiswMDIzODcgICAgIChiYXNlIDE2KQkJVGhpbmtGbG9vZCwgSW5jLgorCQkJCTEzOCBDbGFmbGluIFN0CisJCQkJQmVsbW9udCBNQSAwMjQ3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtODggICAoaGV4KQkJVi5ULiBUZWxlbWF0aWNhIFMucC5hLgorMDAyMzg4ICAgICAoYmFzZSAxNikJCVYuVC4gVGVsZW1hdGljYSBTLnAuYS4KKwkJCQlWaWEgR29ya3ksIDIxCisJCQkJU2FuIEdpdWxpYW5vIE1pbGFuZXNlIE1pbGFubyAyMDA5OAorCQkJCUlUQUxZCisKKzAwLTIzLTg5ICAgKGhleCkJCUhBTkdaSE9VIEgzQyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDIzODkgICAgIChiYXNlIDE2KQkJSEFOR1pIT1UgSDNDIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlPcmllbnRhbCBFbGVjdHJvbmljcyBCbGRnLiwgIzIsIENodWFuZ3llIFJvYWSjrFNoYW5nZGkgSW5mb3JtYXRpb24gSW5kdXN0cnkgQmFzZSwKKwkJCQlIYWlkaWFuIERpc3RyaWN0LCBCZWlqaW5nLCBQLlIuQ2hpbmEKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0yMy04QSAgIChoZXgpCQlDaWVuYSBDb3Jwb3JhdGlvbgorMDAyMzhBICAgICAoYmFzZSAxNikJCUNpZW5hIENvcnBvcmF0aW9uCisJCQkJOTIwIEVsa3JpZGdlIExhbmRpbmcKKwkJCQlMaW50aGljdW0gTUQgMjEwOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLThCICAgKGhleCkJCVF1YW50YSBDb21wdXRlciBJbmMuCiswMDIzOEIgICAgIChiYXNlIDE2KQkJUXVhbnRhIENvbXB1dGVyIEluYy4KKwkJCQlOTy4gMjExLCBXRU4gSFdBIDJSRC4sS1VFSSBTSEFOIEhTSUFORywgVEFPIFlVQU4gU0hJRU4sCisJCQkJVEFJUEVJIFRBSVdBTiAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLThDICAgKGhleCkJCVBSSVZBVEUKKzAwMjM4QyAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMjMtOEQgICAoaGV4KQkJVGVjaG5vIERlc2lnbiBDby4sIEx0ZC4KKzAwMjM4RCAgICAgKGJhc2UgMTYpCQlUZWNobm8gRGVzaWduIENvLiwgTHRkLgorCQkJCTMxMi0yCisJCQkJVG9yaWtvLCBOaXNoaWhhcmEtbXVyYQorCQkJCUFzby1ndW4gS3VtYW1vdG8ta2VuIDg2MS0yNDAxCisJCQkJSkFQQU4KKworMDAtMjMtOEUgICAoaGV4KQkJUElSRUxMSSBCUk9BREJBTkQgU09MVVRJT05TCiswMDIzOEUgICAgIChiYXNlIDE2KQkJUElSRUxMSSBCUk9BREJBTkQgU09MVVRJT05TCisJCQkJVklBTEUgU0FSQ0EgMjIyCisJCQkJTUlMQU5PICAyMDEyNgorCQkJCUlUQUxZCisKKzAwLTIzLThGICAgKGhleCkJCU5JREVDIENPUEFMIENPUlBPUkFUSU9OCiswMDIzOEYgICAgIChiYXNlIDE2KQkJTklERUMgQ09QQUwgQ09SUE9SQVRJT04KKwkJCQkyLTE4LTEwLFNISU1VUkEKKwkJCQlJVEFCQVNISS1LVSBUT0tZTyAxNzQtODU1MAorCQkJCUpBUEFOCisKKzAwLTIzLTkwICAgKGhleCkJCUFsZ29sd2FyZSBDb3Jwb3JhdGlvbgorMDAyMzkwICAgICAoYmFzZSAxNikJCUFsZ29sd2FyZSBDb3Jwb3JhdGlvbgorCQkJCTEzRi01LCBOby4gNzcsIFNlYy4gMSwgU2ludGFpIDV0aCBSZC4sCisJCQkJU2lqaGloIENpdHksCisJCQkJVGFpcGVpIENvdW50eSBUYWl3YW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy05MSAgIChoZXgpCQlNYXhpYW4KKzAwMjM5MSAgICAgKGJhc2UgMTYpCQlNYXhpYW4KKwkJCQkyMXRoIEZsLiBLSU5TIHRvd2VyLCAyNS0xCisJCQkJSmVvbmphLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbS1jaXR5IEd5ZW9uZ2dpLWRvIDQ2My04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtOTIgICAoaGV4KQkJUHJvdGV1cyBJbmR1c3RyaWVzIEluYy4KKzAwMjM5MiAgICAgKGJhc2UgMTYpCQlQcm90ZXVzIEluZHVzdHJpZXMgSW5jLgorCQkJCTM0MCBQaW9uZWVyIFdheQorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTkzICAgKGhleCkJCUFKSU5FWFRFSworMDAyMzkzICAgICAoYmFzZSAxNikJCUFKSU5FWFRFSworCQkJCTktMywgSG9saW1kb25nLCBEYWxzZW9ndQorCQkJCURhZWd1ICA3MDQtMjQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLTk0ICAgKGhleCkJCVNhbWplb24KKzAwMjM5NCAgICAgKGJhc2UgMTYpCQlTYW1qZW9uCisJCQkJIzEzMTMtMSBKb2lsLVJpLCBTYW1kb25nLU15ZXVuLFVsanUtR3VuCisJCQkJVWxzYW4gQ2l0eSBTb3V0aCBLb3JlYSA2ODktOTM0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLTk1ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIzOTUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy05NiAgIChoZXgpCQlBTkRFUyBURUNITk9MT0dZIENPUlBPUkFUSU9OCiswMDIzOTYgICAgIChiYXNlIDE2KQkJQU5ERVMgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCTJGLE5vLiAxLCBMaS1Ic2luIEZpcnN0IFJvYWQsCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luLUNodSBUYWl3YW4gMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy05NyAgIChoZXgpCQlXZXN0ZWxsIFRlY2hub2xvZ2llcyBJbmMuCiswMDIzOTcgICAgIChiYXNlIDE2KQkJV2VzdGVsbCBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTExODUyIFByZXNsZXkgQ3IKKwkJCQlQbGFpbmZpZWxkIElMIDYwNTg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy05OCAgIChoZXgpCQlTa3kgQ29udHJvbAorMDAyMzk4ICAgICAoYmFzZSAxNikJCVNreSBDb250cm9sCisJCQkJdWwuIFN2b3Jub3N0aSA0MQorCQkJCUJyYXRpc2xhdmEgQkEgODIgMTA3CisJCQkJU0xPVkFLSUEKKworMDAtMjMtOTkgICAoaGV4KQkJVkQgRGl2aXNpb24sIFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uCiswMDIzOTkgICAgIChiYXNlIDE2KQkJVkQgRGl2aXNpb24sIFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uCisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIHllb25ndG9uZy1ndSwgU3V3b24tY2l0eQorCQkJCUtvcmVhCisJCQkJU3V3b24gIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtOUEgICAoaGV4KQkJRWFzeURhdGEgU29mdHdhcmUgR21iSAorMDAyMzlBICAgICAoYmFzZSAxNikJCUVhc3lEYXRhIFNvZnR3YXJlIEdtYkgKKwkJCQlTdGVpbmJhY2hlciBTdHJh32UgMTQtMjQKKwkJCQlFc2NoYm9ybiAvIFRzLiBIZXNzZW4gRC02NTc2MAorCQkJCUdFUk1BTlkKKworMDAtMjMtOUIgICAoaGV4KQkJRWxzdGVyIFNvbHV0aW9ucywgTExDCiswMDIzOUIgICAgIChiYXNlIDE2KQkJRWxzdGVyIFNvbHV0aW9ucywgTExDCisJCQkJMjA4IFNvdXRoIFJvZ2VycyBMYW5lCisJCQkJUmFsZWlnaCBOb3J0aCBDYXJvbGluYSAyNzYxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtOUMgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworMDAyMzlDICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy05RCAgIChoZXgpCQlNYXBvd2VyIEVsZWN0cm9uaWNzIENvLiwgTHRkCiswMDIzOUQgICAgIChiYXNlIDE2KQkJTWFwb3dlciBFbGVjdHJvbmljcyBDby4sIEx0ZAorCQkJCU5vLiA1MCBNaW5xdWFuIFJvYWQKKwkJCQlMdXpodSBTaGlhbmcKKwkJCQlUYW95dWFuIENvdW50eSAgMzM4NDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTlFICAgKGhleCkJCUppYW5nc3UgTGVtb3RlIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTGltaXRlZAorMDAyMzlFICAgICAoYmFzZSAxNikJCUppYW5nc3UgTGVtb3RlIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTGltaXRlZAorCQkJCU1lbmdsYW4gSW5kdXN0cmlhbCBQYXJrLFl1c2hhbgorCQkJCUNoYW5nc2h1IEppYW5nc3UgMjE1NTAwCisJCQkJQ0hJTkEKKworMDAtMjMtOUYgICAoaGV4KQkJSW5zdGl0dXQgZvxyIFBy/GZ0ZWNobmlrCiswMDIzOUYgICAgIChiYXNlIDE2KQkJSW5zdGl0dXQgZvxyIFBy/GZ0ZWNobmlrCisJCQkJU2NodWxzdHIuIDMKKwkJCQlUb2R0ZW53ZWlzIEJheWVybiA4NjQ0NworCQkJCUdFUk1BTlkKKworMDAtMjMtQTAgICAoaGV4KQkJSGFuYSBDTlMgQ28uLCBMVEQuCiswMDIzQTAgICAgIChiYXNlIDE2KQkJSGFuYSBDTlMgQ28uLCBMVEQuCisJCQkJVGFlamFuZy1kb25nIDE3MjAtNTIgVGFlamFuZy1Ob25nR29uZy1EYW5qaQorCQkJCVdvbmp1IEdhbmd3b24tZG8gMjIwLTk2MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy1BMSAgIChoZXgpCQlUcmVuZCBFbGVjdHJvbmljcyBMdGQKKzAwMjNBMSAgICAgKGJhc2UgMTYpCQlUcmVuZCBFbGVjdHJvbmljcyBMdGQKKwkJCQlHdXQgTm8uIDM1MAorCQkJCVZpbGxhZ2UgLSBCaGFsZ2FvbgorCQkJCUF1cmFuYWdhYmFkIE1haGFyYXNodHJhIDQzMTIxMAorCQkJCUlORElBCisKKzAwLTIzLUEyICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIzQTIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1BMyAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyM0EzICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQTQgICAoaGV4KQkJTmV3IENvbmNlcHRzIERldmVsb3BtZW50IENvcnAuCiswMDIzQTQgICAgIChiYXNlIDE2KQkJTmV3IENvbmNlcHRzIERldmVsb3BtZW50IENvcnAuCisJCQkJMjY1MCBCcmlkZ2UgTGFuZQorCQkJCVdvb2RzdG9jayBJTCA2MDA5OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQTUgICAoaGV4KQkJU2FnZVRWLCBMTEMKKzAwMjNBNSAgICAgKGJhc2UgMTYpCQlTYWdlVFYsIExMQworCQkJCTk4MDAgUy4gTGEgQ2llbmVnYSBCbHZkCisJCQkJU3VpdGUgOTA1CisJCQkJSW5nbGV3b29kIENBIDkwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1BNiAgIChoZXgpCQlFLU1vbgorMDAyM0E2ICAgICAoYmFzZSAxNikJCUUtTW9uCisJCQkJT25lIE94Zm9yZCBWYWxsZXksIFN1aXRlIDQxOAorCQkJCUxhbmdob3JuZSBQQSAxOTA0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQTcgICAoaGV4KQkJUmVkcGluZSBTaWduYWxzLCBJbmMuCiswMDIzQTcgICAgIChiYXNlIDE2KQkJUmVkcGluZSBTaWduYWxzLCBJbmMuCisJCQkJUGxvdCA4NywgU2FnYXIgU29jaWV0eQorCQkJCUJhbmphcmEgSGlsbHMgUm9hZCBOby4gMgorCQkJCUh5ZGVyYWJhZCBBUCA1MDAwMzQKKwkJCQlJTkRJQQorCiswMC0yMy1BOCAgIChoZXgpCQlNYXJzaGFsbCBFbGVjdHJvbmljcworMDAyM0E4ICAgICAoYmFzZSAxNikJCU1hcnNoYWxsIEVsZWN0cm9uaWNzCisJCQkJMTkxMCBFIE1hcGxlIEF2ZQorCQkJCUVsIFNlZ3VuZG8gQ2EgOTAyNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUE5ICAgKGhleCkJCUJlaWppbmcgRGV0aWFucXVhbiBFbGVjdHJvbWVjaGFuaWNhbCBFcXVpcG1lbnQgQ28uLCBMdGQKKzAwMjNBOSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIERldGlhbnF1YW4gRWxlY3Ryb21lY2hhbmljYWwgRXF1aXBtZW50IENvLiwgTHRkCisJCQkJTm8uIDIgQ2hhcGVuZyBSb2FkLCBIYWlkaWFuIERpc3RyaWN0LAorCQkJCUJlaWppbmcgIDEwMDA5MQorCQkJCUNISU5BCisKKzAwLTIzLUFBICAgKGhleCkJCUhGUiwgSW5jLgorMDAyM0FBICAgICAoYmFzZSAxNikJCUhGUiwgSW5jLgorCQkJCTVGLCBIYW5hIEVaIFRvd2VyCisJCQkJMTU4LCBHdW1pLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTdW5nbmFtLXNpIEt5dW5nZ2ktZG8gNDYzLTg3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy1BQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIzQUIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQUMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyM0FDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUFEICAgKGhleCkJCVhtYXJrIENvcnBvcmF0aW9uCiswMDIzQUQgICAgIChiYXNlIDE2KQkJWG1hcmsgQ29ycG9yYXRpb24KKwkJCQkzMDkgTGVnZ2V0ICBEcml2ZQorCQkJCU90dGF3YSBPbnRhcmlvIEsySyAzQTMKKwkJCQlDQU5BREEKKworMDAtMjMtQUUgICAoaGV4KQkJRGVsbCBJbmMuCiswMDIzQUUgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1BRiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyM0FGICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4uIFUuUy4gSGlnaHdheSA0NQorCQkJCUxpYmVydHl2aWxsZSBJbGxpbm9pcyA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQjAgICAoaGV4KQkJQ09NWElPTiBUZWNobm9sb2d5IEluYy4KKzAwMjNCMCAgICAgKGJhc2UgMTYpCQlDT01YSU9OIFRlY2hub2xvZ3kgSW5jLgorCQkJCTExRiwgTm8uIDExMSwgU2VjIDIsIEtlZWx1bmcgUmQuLCBTaW55aSBEaXN0cmljCisJCQkJVGFpcGVpIFRhaXdhbiAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLUIxICAgKGhleCkJCUxvbmdjaGVlciBUZWNobm9sb2d5IChTaW5nYXBvcmUpIFB0ZSBMdGQKKzAwMjNCMSAgICAgKGJhc2UgMTYpCQlMb25nY2hlZXIgVGVjaG5vbG9neSAoU2luZ2Fwb3JlKSBQdGUgTHRkCisJCQkJNDMgS2FraSBCdWtpdCBWaWV3LCAgIzA0LTAxICAsCisJCQkJS2FraSBCdWtpdCBUZWNoIFBhcmsgSUksCisJCQkJNDE1OTcwCisJCQkJU0lOR0FQT1JFCisKKzAwLTIzLUIyICAgKGhleCkJCUludGVsbGlnZW50IE1lY2hhdHJvbmljIFN5c3RlbXMgSW5jCiswMDIzQjIgICAgIChiYXNlIDE2KQkJSW50ZWxsaWdlbnQgTWVjaGF0cm9uaWMgU3lzdGVtcyBJbmMKKwkJCQkxNjEgUm9nZXIgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkogMUIxCisJCQkJQ0FOQURBCisKKzAwLTIzLUIzICAgKGhleCkJCUx5eW4gQUIKKzAwMjNCMyAgICAgKGJhc2UgMTYpCQlMeXluIEFCCisJCQkJSURFT04gU2NpZW5jZSBQYXJrCisJCQkJU2NoZWVsZXbkZ2VuIDE3CisJCQkJTHVuZCAgMjIzIDcwCisJCQkJU1dFREVOCisKKzAwLTIzLUI0ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDIzQjQgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIHYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTIzLUI1ICAgKGhleCkJCU9SVEFOQSBMVEQKKzAwMjNCNSAgICAgKGJhc2UgMTYpCQlPUlRBTkEgTFRECisJCQkJT1NUSU0gS09DQVNJTkFOIFNBTkFZSSBTSVRFU0kKKwkJCQkxMy4gU09LQUsgTk86MzctMzkgWS4gTUFIQUxMRQorCQkJCUFOS0FSQSAgMDYzNzAKKwkJCQlUVVJLRVkKKworMDAtMjMtQjYgICAoaGV4KQkJU0VDVVJJVEUgQ09NTVVOSUNBVElPTlMgLyBIT05FWVdFTEwKKzAwMjNCNiAgICAgKGJhc2UgMTYpCQlTRUNVUklURSBDT01NVU5JQ0FUSU9OUyAvIEhPTkVZV0VMTAorCQkJCUZPTlQgREUgTCdPUk1FCisJCQkJMTE5OCBBViBEVSBET0NURVVSIERPTkFUCisJCQkJTU9VR0lOUyBGUkFOQ0UgMDYyNTAKKwkJCQlGUkFOQ0UKKworMDAtMjMtQjcgICAoaGV4KQkJUS1MaWdodCBDby4sIEx0ZC4KKzAwMjNCNyAgICAgKGJhc2UgMTYpCQlRLUxpZ2h0IENvLiwgTHRkLgorCQkJCTE3OC0xIFdvb2d5ZS1SaSwgU2FuZ2RvbmctTXl1biwKKwkJCQlHaW1oYWUtU2kgR3l1bmdzYW5nTmFtLURvIDYyMS04MTIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtQjggICAoaGV4KQkJU2ljaHVhbiBKaXV6aG91IEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4sTHRkCiswMDIzQjggICAgIChiYXNlIDE2KQkJU2ljaHVhbiBKaXV6aG91IEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJTm8uMjU5IEppdXpob3UgUm9hZCwKKwkJCQlNaWFueWFuZyBTaWNodWFuIDYyMTAwMAorCQkJCUNISU5BCisKKzAwLTIzLUI5ICAgKGhleCkJCUVBRFMgRGV1dHNjaGxhbmQgR21iSAorMDAyM0I5ICAgICAoYmFzZSAxNikJCUVBRFMgRGV1dHNjaGxhbmQgR21iSAorCQkJCVdpbGx5IE1lc3NlcnNjaG1pdHQgU3RyLgorCQkJCU90dG9icnVubiBCYXZhcmlhIDg1NTIxCisJCQkJR0VSTUFOWQorCiswMC0yMy1CQSAgIChoZXgpCQlDaHJvbWEKKzAwMjNCQSAgICAgKGJhc2UgMTYpCQlDaHJvbWEKKwkJCQk2OCwgSHdhLVlhIDFzdCBSZC4sIEh3YS1ZYSBUZWNobmljYWwgUGFyaywKKwkJCQlLdWVpLVNoYW4gSHNpYW5nLAorCQkJCVRhb3l1YW4gSHNpZW4gVGFpd2FuIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjMtQkIgICAoaGV4KQkJU2NobWl0dCBJbmR1c3RyaWVzCiswMDIzQkIgICAgIChiYXNlIDE2KQkJU2NobWl0dCBJbmR1c3RyaWVzCisJCQkJMjc2NSBOVyBOaWNvbGFpIFN0CisJCQkJUG9ydGxhbmQgT3JlZ29uIDk3MjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1CQyAgIChoZXgpCQlFUS1TWVMgR21iSAorMDAyM0JDICAgICAoYmFzZSAxNikJCUVRLVNZUyBHbWJICisJCQkJSGludGVyIGRlbiBH5HJ0ZW4gMTViCisJCQkJVHJldWVuYnJpZXR6ZW4gT1QgRmVsZGhlaW0gQnJhbmRlbmJ1cmcgMTQ5MjkKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLUJEICAgKGhleCkJCURpZ2l0YWwgQWxseSwgSW5jLgorMDAyM0JEICAgICAoYmFzZSAxNikJCURpZ2l0YWwgQWxseSwgSW5jLgorCQkJCTEyMTggVmFsbGV5IFJpZGdlIERyaXZlCisJCQkJR3JhaW4gVmFsbGV5IE1PIDY0MDI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1CRSAgIChoZXgpCQlDaXNjbyBTUFZURworMDAyM0JFICAgICAoYmFzZSAxNikJCUNpc2NvIFNQVlRHCisJCQkJNTAzMCBTdWdhcmxvYWYgUGt3eQorCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUJGICAgKGhleCkJCU1haW5waW5lLCBJbmMuCiswMDIzQkYgICAgIChiYXNlIDE2KQkJTWFpbnBpbmUsIEluYy4KKwkJCQlQTyBCb3ggMjQxCisJCQkJV2lsc29udmlsbGUgT3JlZ29uIDk3MDcwLTAyNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUMwICAgKGhleCkJCUJyb2Fkd2F5IE5ldHdvcmtzCiswMDIzQzAgICAgIChiYXNlIDE2KQkJQnJvYWR3YXkgTmV0d29ya3MKKwkJCQkxNzU0IFRlY2hub2xvZ3kgRHJpdmUsIFN1aXRlIDIwOAorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUMxICAgKGhleCkJCVNlY3VyaXRhcyBEaXJlY3QgQUIKKzAwMjNDMSAgICAgKGJhc2UgMTYpCQlTZWN1cml0YXMgRGlyZWN0IEFCCisJCQkJS2FsZW5kZWdhdGFuIDI2CisJCQkJTWFsbfYgIDIwMzIwCisJCQkJU1dFREVOCisKKzAwLTIzLUMyICAgKGhleCkJCVNBTVNVTkcgRWxlY3Ryb25pY3MuIENvLiBMVEQKKzAwMjNDMiAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEVsZWN0cm9uaWNzLiBDby4gTFRECisJCQkJMTl0aCBGbC4sIEtvcmVhIExpZmUgQmxkZy4gMTMzOC0xMgorCQkJCVNlb2NobyAyIERvbmcgU2VvY2hvLWd1IERvbWFzdGljIFNhbGVzJiBNYXJrZXRpbmcgRGl2aXNpb24KKwkJCQlTZW91bCAgMTM3LTg2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy1DMyAgIChoZXgpCQlMb2dNZUluLCBJbmMuCiswMDIzQzMgICAgIChiYXNlIDE2KQkJTG9nTWVJbiwgSW5jLgorCQkJCTUwMCBVbmljb3JuIFBhcmsgRHJpdmUKKwkJCQlXb2J1cm4gTWFzc2FjaHVzZXR0cyAwMTgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQzQgICAoaGV4KQkJTHV4IEx1bWVuCiswMDIzQzQgICAgIChiYXNlIDE2KQkJTHV4IEx1bWVuCisJCQkJS2VybmVuZXJnaWVzdHJhYXQgNTNBCisJCQkJV2lscmlqayBBbnR3ZXJwIDI2MTAKKwkJCQlCRUxHSVVNCisKKzAwLTIzLUM1ICAgKGhleCkJCVJhZGlhdGlvbiBTYWZldHkgYW5kIENvbnRyb2wgU2VydmljZXMgSW5jCiswMDIzQzUgICAgIChiYXNlIDE2KQkJUmFkaWF0aW9uIFNhZmV0eSBhbmQgQ29udHJvbCBTZXJ2aWNlcyBJbmMKKwkJCQk5MSBQb3J0c21vdXRoIEF2ZQorCQkJCVN0cmF0aGFtIE5ldyBIYW1wc2hpcmUgMDM4ODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUM2ICAgKGhleCkJCVNNQyBDb3Jwb3JhdGlvbgorMDAyM0M2ICAgICAoYmFzZSAxNikJCVNNQyBDb3Jwb3JhdGlvbgorCQkJCTQtMi0yLCBLaW51bm9kYWkKKwkJCQlUc3VrdWJhIE1pcmFpLXNoaSBJYmFyYWtpLWtlbiAzMDAtMjQ5MworCQkJCUpBUEFOCisKKzAwLTIzLUM3ICAgKGhleCkJCUFWU3lzdGVtCiswMDIzQzcgICAgIChiYXNlIDE2KQkJQVZTeXN0ZW0KKwkJCQl1bC4gRnJpZWRsZWluYSA0CisJCQkJS3Jha/N3IG1hs29wb2xza2llIDMwLTAwOQorCQkJCVBPTEFORAorCiswMC0yMy1DOCAgIChoZXgpCQlURUFNLVIKKzAwMjNDOCAgICAgKGJhc2UgMTYpCQlURUFNLVIKKwkJCQlHcmFnZGFuc2tpIHN0ci4xMTEsIEEsIDktTgorCQkJCVN0LiBQZXRlcnNidXJnICAxOTUyNjUKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjMtQzkgICAoaGV4KQkJU2ljaHVhbiBUaWFueWkgSW5mb3JtYXRpb24gU2NpZW5jZSAmIFRlY2hub2xvZ3kgU3RvY2sgQ08uLExURAorMDAyM0M5ICAgICAoYmFzZSAxNikJCVNpY2h1YW4gVGlhbnlpIEluZm9ybWF0aW9uIFNjaWVuY2UgJiBUZWNobm9sb2d5IFN0b2NrIENPLixMVEQKKwkJCQlOby4xLEhvdCBTcHJpbmcgSGlnaHdheSxEYXlpIENvdW50eQorCQkJCUNoZW5nZHUgU2ljaHVhbiA2MTEzMzAKKwkJCQlDSElOQQorCiswMC0yMy1DQSAgIChoZXgpCQlCZWhpbmQgVGhlIFNldCwgTExDCiswMDIzQ0EgICAgIChiYXNlIDE2KQkJQmVoaW5kIFRoZSBTZXQsIExMQworCQkJCTIxODUgS25vbGx3b29kIERyLgorCQkJCUJvdWxkZXIgQ08gODAzMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUNCICAgKGhleCkJCVNoZW56aGVuIEZ1bGwtam9pbiBUZWNobm9sb2d5IENvLixMdGQKKzAwMjNDQiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBGdWxsLWpvaW4gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJOS9GLE5vLjEsWGlucnVpIFJvYWQsSG91cnVpICxYaXhpYW5nIFRvd24sIEJhbydhbiBEaXN0cmljdAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCiswMC0yMy1DQyAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMjNDQyAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yMy1DRCAgIChoZXgpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKzAwMjNDRCAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQlTb3V0aCBCdWlsZGluZywgTm8uNSBLZXl1YW4gUm9hZCwgQ2VudHJhbCBab25lLAorCQkJCVNjaWVuY2UgJiBUZWNobm9sb2d5IFBhcmsgTmFuc2hhbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCiswMC0yMy1DRSAgIChoZXgpCQlLSVRBIERFTlNISSBDT1JQT1JBVElPTgorMDAyM0NFICAgICAoYmFzZSAxNikJCUtJVEEgREVOU0hJIENPUlBPUkFUSU9OCisJCQkJMTJGIFRPS1lPLU5JU0hJSUtFQlVLVVJPIEJpbGcuLAorCQkJCTEtNy03LCBOaXNoaS1pa2VidWt1cm8KKwkJCQlUb3NoaW1hLWt1LCBUb2t5byAxNzEtMDAyMQorCQkJCUpBUEFOCisKKzAwLTIzLUNGICAgKGhleCkJCUNVTU1JTlMtQUxMSVNPTiBDT1JQLgorMDAyM0NGICAgICAoYmFzZSAxNikJCUNVTU1JTlMtQUxMSVNPTiBDT1JQLgorCQkJCTg5MSBGRUVIQU5WSUxMRSBEUklWRQorCQkJCU1ULiBQUk9TUEVDVCBJTCA2MDA1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRDAgICAoaGV4KQkJVW5pbG9jIFVTQSBJbmMuCiswMDIzRDAgICAgIChiYXNlIDE2KQkJVW5pbG9jIFVTQSBJbmMuCisJCQkJMzMzMyBNaWNoZWxzb24gRHJpdmUKKwkJCQlTdWl0ZSA2MDAKKwkJCQlJcnZpbmUgQ0EgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUQxICAgKGhleCkJCVRSRworMDAyM0QxICAgICAoYmFzZSAxNikJCVRSRworCQkJCVdpc21hIEtvc2dvcm8gMTN0aCBGbG9vcgorCQkJCUpsLiBNSC4gVGhhbXJpbiA1MworCQkJCUpha2FydGEgUHVzYXQgIDEwMzUwCisJCQkJSU5ET05FU0lBCisKKzAwLTIzLUQyICAgKGhleCkJCUluaGFuZCBFbGVjdHJvbmljcywgSW5jLgorMDAyM0QyICAgICAoYmFzZSAxNikJCUluaGFuZCBFbGVjdHJvbmljcywgSW5jLgorCQkJCTMwIFdlc3QgR3VkZSBEcml2ZQorCQkJCVN1aXRlIDU1MAorCQkJCVJvY2t2aWxsZSBNYXJ5bGFuZCAyMDg1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRDMgICAoaGV4KQkJQWlyTGluayBXaUZpIE5ldHdvcmtpbmcgQ29ycC4KKzAwMjNEMyAgICAgKGJhc2UgMTYpCQlBaXJMaW5rIFdpRmkgTmV0d29ya2luZyBDb3JwLgorCQkJCTE5Ri0xIFJvb20gQSAsIE5vLjk3LCBTZWMgNCwgQ2h1bmcgSHNpbiBSZC4sCisJCQkJU2FuIENodW5nIENpdHksIFRhaXBlaSBIc2llbiAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLUQ0ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDIzRDQgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUQ1ICAgKGhleCkJCVdBUkVNQSBlbGVjdHJvbmljIEdtYkgKKzAwMjNENSAgICAgKGJhc2UgMTYpCQlXQVJFTUEgZWxlY3Ryb25pYyBHbWJICisJCQkJRGlsbGJlcmcgMzMKKwkJCQlNYXJrdGhlaWRlbmZlbGQgQmF2YXJpYSA5NzgyOAorCQkJCUdFUk1BTlkKKworMDAtMjMtRDYgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTFRECiswMDIzRDYgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTFRECisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLUQ3ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzAwMjNENyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLUQ4ICAgKGhleCkJCUJhbGwtSXQgT3kKKzAwMjNEOCAgICAgKGJhc2UgMTYpCQlCYWxsLUl0IE95CisJCQkJVXVzaWthdHUgMjQgRyA3NgorCQkJCU91bHUgIDkwMTAwCisJCQkJRklOTEFORAorCiswMC0yMy1EOSAgIChoZXgpCQlCYW5uZXIgRW5naW5lZXJpbmcKKzAwMjNEOSAgICAgKGJhc2UgMTYpCQlCYW5uZXIgRW5naW5lZXJpbmcKKwkJCQk5NzE0IDEwdGggQXZlLiBOLgorCQkJCVBseW1vdXRoIE1OIDU1NDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1EQSAgIChoZXgpCQlJbmR1c3RyaWFsIENvbXB1dGVyIFNvdXJjZSAoRGV1dHNjaGxhbmQpR21iSAorMDAyM0RBICAgICAoYmFzZSAxNikJCUluZHVzdHJpYWwgQ29tcHV0ZXIgU291cmNlIChEZXV0c2NobGFuZClHbWJICisJCQkJTWFyaWUtQ3VyaWUtU3RyYd9lIDkKKwkJCQlQdWxoZWltIE5SVyA1MDI1OQorCQkJCUdFUk1BTlkKKworMDAtMjMtREIgICAoaGV4KQkJc2F4bmV0IGdtYmgKKzAwMjNEQiAgICAgKGJhc2UgMTYpCQlzYXhuZXQgZ21iaAorCQkJCVdpbGx5LUJyYW5kdC1SaW5nIDEKKwkJCQlPZWxzbml0eiBTYWNoc2VuIDA4NjA2CisJCQkJR0VSTUFOWQorCiswMC0yMy1EQyAgIChoZXgpCQlCZW5laW4sIEluYworMDAyM0RDICAgICAoYmFzZSAxNikJCUJlbmVpbiwgSW5jCisJCQkJSHlvamFjaG9uamVzYW5nZ2EyMjggQjksIDI5NywKKwkJCQlzZW9oeXVuLWRvbmcsIGJ1bmRhbmctZ3UKKwkJCQlTZW5nbmFtLXNpIEt5dW5nZ2ktZG8gNDYzLTgxOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy1ERCAgIChoZXgpCQlFTEdJTiBTLkEuCiswMDIzREQgICAgIChiYXNlIDE2KQkJRUxHSU4gUy5BLgorCQkJCVJVQSBCQVJBTyBERSBDQU1QSU5BUywgMzA1CisJCQkJQ0FNUE9TIEVMSVNFT1MKKwkJCQlTQU8gUEFVTE8gIDAxMjAxLTkwMQorCQkJCUJSQVpJTAorCiswMC0yMy1ERSAgIChoZXgpCQlBbnN5bmMgSW5jLgorMDAyM0RFICAgICAoYmFzZSAxNikJCUFuc3luYyBJbmMuCisJCQkJNDk3MCBSb2JlcnQgSiBNYXR0aGV3cyBQa3kKKwkJCQlTdWl0ZSAxNjAKKwkJCQlFbCBEb3JhZG8gSGlsbHMgQ0EgOTU3NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLURGICAgKGhleCkJCUFwcGxlLCBJbmMKKzAwMjNERiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1FMCAgIChoZXgpCQlJTk8gVGhlcmFwZXV0aWNzIExMQworMDAyM0UwICAgICAoYmFzZSAxNikJCUlOTyBUaGVyYXBldXRpY3MgTExDCisJCQkJMjkwMiBEYWlyeSBEcml2ZQorCQkJCU1hZGlzb24gV0kgNTM3MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUUxICAgKGhleCkJCUNhdmVuYSBJbWFnZSBQcm9kdWN0cyBBQgorMDAyM0UxICAgICAoYmFzZSAxNikJCUNhdmVuYSBJbWFnZSBQcm9kdWN0cyBBQgorCQkJCU55dG9ycHN2YWdlbiAyNgorCQkJCVTkYnkgU3RvY2tob2xtIHNlLTE4MyA1MworCQkJCVNXRURFTgorCiswMC0yMy1FMiAgIChoZXgpCQlTRUEgU2lnbmFsaXNhdGlvbgorMDAyM0UyICAgICAoYmFzZSAxNikJCVNFQSBTaWduYWxpc2F0aW9uCisJCQkJMjAtMjIgUnVlIFBpZXJyZSBNZW5k6HMgRnJhbmNlCisJCQkJQlAgMjMxCisJCQkJVmF1bHggZW4gVmVsaW4gQ0VERVggIDY5NTE1CisJCQkJRlJBTkNFCisKKzAwLTIzLUUzICAgKGhleCkJCU1pY3JvdHJvbmljIEFHCiswMDIzRTMgICAgIChiYXNlIDE2KQkJTWljcm90cm9uaWMgQUcKKwkJCQlEdWVubmVybnN0cmFzc2UgMzIKKwkJCQlPZW5zaW5nZW4gU29sb3RodXJuIDQ3MDIKKwkJCQlTV0lUWkVSTEFORAorCiswMC0yMy1FNCAgIChoZXgpCQlJUG5lY3QgY28uIGx0ZC4KKzAwMjNFNCAgICAgKGJhc2UgMTYpCQlJUG5lY3QgY28uIGx0ZC4KKwkJCQk4MDggYWxiYXRyb3NzIEIvRCAyMzctMTgKKwkJCQlHYXNhbi1kb25nLCBHZXVtY2hlb24tZ3UKKwkJCQlTZW91bCAgMTUzLTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy1FNSAgIChoZXgpCQlJUGFYaW9tIE5ldHdvcmtzCiswMDIzRTUgICAgIChiYXNlIDE2KQkJSVBhWGlvbSBOZXR3b3JrcworCQkJCUFzdG9uIENvdXJ0CisJCQkJS2luZ3NtZWFkIEJ1c2luZXNzIFBhcmssIEZyZWRlcmljayBQbGFjZQorCQkJCUhpZ2ggV3ljb21iZSBCdWNraW5naGFtc2hpcmUgSFAxMSAxTEEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMy1FNiAgIChoZXgpCQlQaXJrdXMsIEluYy4KKzAwMjNFNiAgICAgKGJhc2UgMTYpCQlQaXJrdXMsIEluYy4KKwkJCQkyRiwxLTEtMgorCQkJCVNoaW11cmEKKwkJCQlJdGFiYXNoaS1rdSBUb2t5byAxNzQtMDA1NgorCQkJCUpBUEFOCisKKzAwLTIzLUU3ICAgKGhleCkJCUhpbmtlIEEvUworMDAyM0U3ICAgICAoYmFzZSAxNikJCUhpbmtlIEEvUworCQkJCVRpbmdiamVyZ3ZlaiAyCisJCQkJQmphZXZlcnNrb3YgIERLLTQ2MzIKKwkJCQlERU5NQVJLCisKKzAwLTIzLUU4ICAgKGhleCkJCURlbWNvIENvcnAuCiswMDIzRTggICAgIChiYXNlIDE2KQkJRGVtY28gQ29ycC4KKwkJCQkjOTE5LCBEb29zYW4gVmVudHVyZWRpZ20sIDEyNi0xCisJCQkJUHl1bmdjaG9uLURvbmcsIERvbmdhbi1LdQorCQkJCUFueWFuZy1TaSBLeXVuZ2tpLURvIDQzMS0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtRTkgICAoaGV4KQkJRjUgTmV0d29ya3MsIEluYy4KKzAwMjNFOSAgICAgKGJhc2UgMTYpCQlGNSBOZXR3b3JrcywgSW5jLgorCQkJCTQwMSBFbGxpb3R0IEF2ZS4gVy4KKwkJCQlTZWF0dGxlIFdBIDk4MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1FQSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIzRUEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRUIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyM0VCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUVDICAgKGhleCkJCUFsZ29yaXRobWl4IEdtYkgKKzAwMjNFQyAgICAgKGJhc2UgMTYpCQlBbGdvcml0aG1peCBHbWJICisJCQkJS2xldHRnYXVzdHJhc3NlIDIxCisJCQkJV2FsZHNodXQtVGllbmdlbiBCVyA3OTc2MQorCQkJCUdFUk1BTlkKKworMDAtMjMtRUQgICAoaGV4KQkJTW90b3JvbGEgQ0hTCiswMDIzRUQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgQ0hTCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRUUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjNFRSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUVGICAgKGhleCkJCVp1ZW5kIFN5c3RlbXRlY2huaWsgQUcKKzAwMjNFRiAgICAgKGJhc2UgMTYpCQladWVuZCBTeXN0ZW10ZWNobmlrIEFHCisJCQkJSW5kdXN0cmllc3RyYXNzZSA4CisJCQkJQWx0c3RhZXR0ZW4gU0cgOTQ1MAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTIzLUYwICAgKGhleCkJCVNoYW5naGFpIEppbmdoYW4gV2VpZ2hpbmcgQXBwYXJhdHVzIENvLiBMdGQuCiswMDIzRjAgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgSmluZ2hhbiBXZWlnaGluZyBBcHBhcmF0dXMgQ28uIEx0ZC4KKwkJCQlCdWlsZGluZyA1OCwgTm8uOTkgQ2h1bmd1YW5nIFJvYWQsIFhpbnpodWFuZyBJbmR1c3RyaWFsIFpvbmUsTWluaGFuZywKKwkJCQlTaGFuZ2hhaSAgMjAxMTA4CisJCQkJQ0hJTkEKKworMDAtMjMtRjEgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKzAwMjNGMSAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNr5W5lIDIyMTg4CisJCQkJU1dFREVOCisKKzAwLTIzLUYyICAgKGhleCkJCVRWTG9naWMKKzAwMjNGMiAgICAgKGJhc2UgMTYpCQlUVkxvZ2ljCisJCQkJc3VpdGUgOTE0IEFDRSBUZWNobm8gVG93ZXItOXRoCisJCQkJR2FzYW4tZG9uZworCQkJCUdldW1jaGVvbi1ndSBTRU9VTCAxNTMtNzgyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLUYzICAgKGhleCkJCUdsb2NvbSwgSW5jLgorMDAyM0YzICAgICAoYmFzZSAxNikJCUdsb2NvbSwgSW5jLgorCQkJCTIyIEZpcnN0ZmllbGQgUm9hZAorCQkJCVN1aXRlIDEyNQorCQkJCUdhaXRoZXJzYnVyZyBNYXJ5bGFuZCAyMDg3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRjQgICAoaGV4KQkJTWFzdGVybmF1dAorMDAyM0Y0ICAgICAoYmFzZSAxNikJCU1hc3Rlcm5hdXQKKwkJCQk0LCBydWUgQ2hhcmxlcyBDcm9zCisJCQkJTG91dmllcnMgIDI3NDA3CisJCQkJRlJBTkNFCisKKzAwLTIzLUY1ICAgKGhleCkJCVdJTE8gU0UKKzAwMjNGNSAgICAgKGJhc2UgMTYpCQlXSUxPIFNFCisJCQkJTm9ydGtpcmNoZW5zdHIuIDEwMAorCQkJCUQgLSA0NDI2MyBEb3J0bXVuZCBOUlcgNDQyNjMKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLUY2ICAgKGhleCkJCVNvZnR3ZWxsIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDIzRjYgICAgIChiYXNlIDE2KQkJU29mdHdlbGwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk0RiwgTm8uIDQxOSwgSmhvbmdoZSBSZC4sIFlvbmdoZSBDaXR5LAorCQkJCVRhaXBlaSBDb3VudHkgIDIzNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjMtRjcgICAoaGV4KQkJUFJJVkFURQorMDAyM0Y3ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0yMy1GOCAgIChoZXgpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorMDAyM0Y4ICAgICAoYmFzZSAxNikJCVp5WEVMIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCisJCQkJTk8uNiBJbm5vdmF0aW9uIFJvYWQgSUksCisJCQkJU2NpZW5jZSBQYXJrLAorCQkJCUhzaW4tQ2h1LCBUYWl3YW4gMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy1GOSAgIChoZXgpCQlEb3VibGUtVGFrZSBTb2Z0d2FyZSwgSU5DLgorMDAyM0Y5ICAgICAoYmFzZSAxNikJCURvdWJsZS1UYWtlIFNvZnR3YXJlLCBJTkMuCisJCQkJODQ3MCBBbGxpc29uIFBvaW50ZSBCbHZkCisJCQkJU3VpdGUgMzAwCisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1GQSAgIChoZXgpCQlSRyBOZXRzLCBJbmMuCiswMDIzRkEgICAgIChiYXNlIDE2KQkJUkcgTmV0cywgSW5jLgorCQkJCTEwMDAgRS4gV2lsbGlhbSBTdHJlZXQKKwkJCQlTdWl0ZSAyMDQKKwkJCQlDYXJzb24gQ2l0eSBOViA4OTcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRkIgICAoaGV4KQkJSVAgRGF0YXRlbCwgSW5jLgorMDAyM0ZCICAgICAoYmFzZSAxNikJCUlQIERhdGF0ZWwsIEluYy4KKwkJCQkxMzExMCBTb3V0aHdlc3QgRnJlZXdheQorCQkJCVN1Z2FyIExhbmQgVGV4YXMgNzc0NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUZDICAgKGhleCkJCVVsdHJhIFN0ZXJlbyBMYWJzLCBJbmMKKzAwMjNGQyAgICAgKGJhc2UgMTYpCQlVbHRyYSBTdGVyZW8gTGFicywgSW5jCisJCQkJMTgxIEJvbmV0dGkgRHJpdmUKKwkJCQlTYW4gTHVpcyBPYmlzcG8gQ0EgOTM0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUZEICAgKGhleCkJCUFGVCBBdGxhcyBGYWhyemV1Z3RlY2huaWsgR21iSAorMDAyM0ZEICAgICAoYmFzZSAxNikJCUFGVCBBdGxhcyBGYWhyemV1Z3RlY2huaWsgR21iSAorCQkJCUdld2VyYmVzdHIuIDE0CisJCQkJV2VyZG9obCAgNTg3OTEKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLUZFICAgKGhleCkJCUJpb2RldmljZXMsIFNBCiswMDIzRkUgICAgIChiYXNlIDE2KQkJQmlvZGV2aWNlcywgU0EKKwkJCQlSdWEgNSBkZSBPdXR1YnJvIDMwOQorCQkJCVBvcnRvICA0MTAwLTE3NQorCQkJCVBPUlRVR0FMCisKKzAwLTIzLUZGICAgKGhleCkJCUJlaWppbmcgSFRUQyBUZWNobm9sb2d5IEx0ZC4KKzAwMjNGRiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEhUVEMgVGVjaG5vbG9neSBMdGQuCisJCQkJQi0xM0QtMyBLZXNoaSBCdWlsZGluZyxKaWEgTm8uMjggWGlueGkgUm9hZCxTSEFOR0RJIElUIEluZHVzdHJ5IEJhc2UKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0yNC0wMCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMjQwMCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQkyMjIxIExha2VzaWRlIEJsdmQKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0wMSAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzAwMjQwMSAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOby4yODksIFhpbmh1IDNyZC4KKwkJCQlOZWlodSBEaXN0cmljdCBUYWlwZWkgQ2l0eSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTAyICAgKGhleCkJCU9wLVRlY3Rpb24gR21iSAorMDAyNDAyICAgICAoYmFzZSAxNikJCU9wLVRlY3Rpb24gR21iSAorCQkJCUJvcnNpZ3N0cmHfZSA4MAorCQkJCUhlaW5zYmVyZyBHZXJtYW55IDUyNTI1CisJCQkJR0VSTUFOWQorCiswMC0yNC0wMyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNDAzICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yNC0wNCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNDA0ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yNC0wNSAgIChoZXgpCQlEaWxvZyBOb3JkaWMgQUIKKzAwMjQwNSAgICAgKGJhc2UgMTYpCQlEaWxvZyBOb3JkaWMgQUIKKwkJCQlGYWt0b3J25GdlbiA5CisJCQkJS3VuZ3NiYWNrYSBIYWxsYW5kIDQzOSAzNAorCQkJCVNXRURFTgorCiswMC0yNC0wNiAgIChoZXgpCQlQb2ludG1vYmlsZQorMDAyNDA2ICAgICAoYmFzZSAxNikJCVBvaW50bW9iaWxlCisJCQkJMzAxLFdvcmxkIE1lcmlkaWFuIFZlcnR1cmUgQ2VudGVyLTEgNjAtMjQKKwkJCQlHYXNhbi1kb25nCisJCQkJU2VvdWwgR2V1bWNoZW9uLWd1IDE1Mzc4MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC0wNyAgIChoZXgpCQlURUxFTSBTQVMKKzAwMjQwNyAgICAgKGJhc2UgMTYpCQlURUxFTSBTQVMKKwkJCQkxNiwgUlVFIERFIEwnRVRBTkcKKwkJCQlHSUVSRVMgUkhPTkUgQUxQRVMgMzg2MTAKKwkJCQlGUkFOQ0UKKworMDAtMjQtMDggICAoaGV4KQkJUGFjaWZpYyBCaW9zY2llbmNlcworMDAyNDA4ICAgICAoYmFzZSAxNikJCVBhY2lmaWMgQmlvc2NpZW5jZXMKKwkJCQkxNTA1IEFkYW1zIERyaXZlCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMDkgICAoaGV4KQkJVGhlIFRvcm8gQ29tcGFueQorMDAyNDA5ICAgICAoYmFzZSAxNikJCVRoZSBUb3JvIENvbXBhbnkKKwkJCQk1ODI1IEphc21pbmUgU3RyZWV0CisJCQkJUml2ZXJzaWRlIENBIDkyNTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0wQSAgIChoZXgpCQlVUyBCZXZlcmFnZSBOZXQKKzAwMjQwQSAgICAgKGJhc2UgMTYpCQlVUyBCZXZlcmFnZSBOZXQKKwkJCQkxMDAxIFcuIEZheWV0dGUgU3RyZWV0CisJCQkJM0EKKwkJCQlTeXJhY3VzZSBOWSAxMzIwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMEIgICAoaGV4KQkJVmlydHVhbCBDb21wdXRlciBJbmMuCiswMDI0MEIgICAgIChiYXNlIDE2KQkJVmlydHVhbCBDb21wdXRlciBJbmMuCisJCQkJMyBMQU4gRHJpdmUKKwkJCQlXZXN0Zm9yZCBNQSAwMTg4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMEMgICAoaGV4KQkJREVMRUMgR21iSAorMDAyNDBDICAgICAoYmFzZSAxNikJCURFTEVDIEdtYkgKKwkJCQlSdWhld2VnIDE3LTIxCisJCQkJR/ZsbGhlaW0gUmhlaW5sYW5kLVBmYWx6IDY3MzA3CisJCQkJR0VSTUFOWQorCiswMC0yNC0wRCAgIChoZXgpCQlPbmVQYXRoIE5ldHdvcmtzIExURC4KKzAwMjQwRCAgICAgKGJhc2UgMTYpCQlPbmVQYXRoIE5ldHdvcmtzIExURC4KKwkJCQk4IEhhcnRvbSBTdAorCQkJCUplcnVzYWxlbSAgOTE0NTAKKwkJCQlJU1JBRUwKKworMDAtMjQtMEUgICAoaGV4KQkJSW52ZW50ZWMgQmVzdGEgQ28uLCBMdGQuCiswMDI0MEUgICAgIChiYXNlIDE2KQkJSW52ZW50ZWMgQmVzdGEgQ28uLCBMdGQuCisJCQkJMTBGTCwgTm8uMzYsIExhbmUgNTEzLCBSdWkgR3VhbmcgUm9hZCwgTmVpIEh1IERpc3QuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTBGICAgKGhleCkJCUlzaGlpIFRvb2wgJiBFbmdpbmVlcmluZyBDb3Jwb3JhdGlvbgorMDAyNDBGICAgICAoYmFzZSAxNikJCUlzaGlpIFRvb2wgJiBFbmdpbmVlcmluZyBDb3Jwb3JhdGlvbgorCQkJCTItNS02MCBIaWdhc2hpLU9taWNoaQorCQkJCU9pdGEgIDg3MC0wODIzCisJCQkJSkFQQU4KKworMDAtMjQtMTAgICAoaGV4KQkJTlVFVEVRIFRlY2hub2xvZ3ksSW5jLgorMDAyNDEwICAgICAoYmFzZSAxNikJCU5VRVRFUSBUZWNobm9sb2d5LEluYy4KKwkJCQkxMUYsIE5vLiAxMTIsIFNlYy4gMSwgWmhvbmctWGlhbyBFIFJkLgorCQkJCVRhaXBlaSAgMTAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC0xMSAgIChoZXgpCQlQaGFybWFTbWFydCBMTEMKKzAwMjQxMSAgICAgKGJhc2UgMTYpCQlQaGFybWFTbWFydCBMTEMKKwkJCQkzNDk1IFdpbnRvbiBQbGFjZQorCQkJCUJsZGcgQSwgU3VpdGUgMQorCQkJCVJvY2hlc3RlciBOWSAxNDYyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMTIgICAoaGV4KQkJQmVuaWduIFRlY2hub2xvZ2llcyBDbywgTHRkLgorMDAyNDEyICAgICAoYmFzZSAxNikJCUJlbmlnbiBUZWNobm9sb2dpZXMgQ28sIEx0ZC4KKwkJCQk1MDQgcm9vbSwgNUYsIFNvdXRoIGJ1aWxkaW5nLCBGb3JzYWZlIFRvd2VyLAorCQkJCVNvdXRoIE9uZSBTdHJlZXQsIEhpLVRlY2ggWm9uZSwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjQtMTMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNDEzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTE0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjQxNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0xNSAgIChoZXgpCQlNYWduZXRpYyBBdXRvY29udHJvbCBHbWJICiswMDI0MTUgICAgIChiYXNlIDE2KQkJTWFnbmV0aWMgQXV0b2NvbnRyb2wgR21iSAorCQkJCUdyaWVubWF0dCAyMAorCQkJCVNjaG9wZmhlaW0gIEQtNzk2NTAKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LTE2ICAgKGhleCkJCUFueSBVc2UKKzAwMjQxNiAgICAgKGJhc2UgMTYpCQlBbnkgVXNlCisJCQkJTEcgQVBUIDIxMS0xODA1LAorCQkJCVNoaW5ib25nLURvbmcsIFN1amktR3UsCisJCQkJWW9uZ2luIENpdHkgR3llb25nLUdpIFByb3ZpbmNlIDQ0OC0xNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtMTcgICAoaGV4KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKzAwMjQxNyAgICAgKGJhc2UgMTYpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorCQkJCVByaW5zIEJvdWRld2lqbmxhYW4gNDcKKwkJCQlFZGVnZW0gLSBBbnR3ZXJwICBCLTI2NTAKKwkJCQlCRUxHSVVNCisKKzAwLTI0LTE4ICAgKGhleCkJCU5leHR3YXZlIFNlbWljb25kdWN0b3IKKzAwMjQxOCAgICAgKGJhc2UgMTYpCQlOZXh0d2F2ZSBTZW1pY29uZHVjdG9yCisJCQkJMzYxMSBWYWxsZXkgQ2VudHJlIERyCisJCQkJU2FuIERpZWdvIENBIDkyMTMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0xOSAgIChoZXgpCQlQUklWQVRFCiswMDI0MTkgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTI0LTFBICAgKGhleCkJCVJlZCBCZWV0bGUgSW5jLgorMDAyNDFBICAgICAoYmFzZSAxNikJCVJlZCBCZWV0bGUgSW5jLgorCQkJCTg5OCBTaWxhcyBEZWFuZSBIaWdod2F5CisJCQkJV2V0aGVyc2ZpZWxkIENUIDA2MTA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0xQiAgIChoZXgpCQlpV09XIENvbW11bmljYXRpb25zIFB0ZSBMdGQKKzAwMjQxQiAgICAgKGJhc2UgMTYpCQlpV09XIENvbW11bmljYXRpb25zIFB0ZSBMdGQKKwkJCQkxIExvcm9uZyAyIFRvYSBQYXlvaCAjMDQtMDEKKwkJCQlZZWxsb3cgUGFnZXMgQnVpbGRpbmcKKwkJCQkzMTk2MzcKKwkJCQlTSU5HQVBPUkUKKworMDAtMjQtMUMgICAoaGV4KQkJRnVHYW5nIEVsZWN0cm9uaWMgKERHKSBDby4sTHRkCiswMDI0MUMgICAgIChiYXNlIDE2KQkJRnVHYW5nIEVsZWN0cm9uaWMgKERHKSBDby4sTHRkCisJCQkJSW5kdXN0cnkgU3RyZWV0LCBEb25nLUtlbmcKKwkJCQlHdWFuZyBEb25nIFByb3ZpbmNlCisJCQkJRG9uZyBHdWFuIENpdHkgIDUyMzQ0OAorCQkJCUNISU5BCisKKzAwLTI0LTFEICAgKGhleCkJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCiswMDI0MUQgICAgIChiYXNlIDE2KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQlOby4yMTUsTmFuLVBpbmcgUm9hZCwKKwkJCQlQaW4tSmVuIFRhb3l1YW4gMzI0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC0xRSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMjQxRSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yNC0xRiAgIChoZXgpCQlEQ1QtRGVsdGEgR21iSAorMDAyNDFGICAgICAoYmFzZSAxNikJCURDVC1EZWx0YSBHbWJICisJCQkJQm9kYW5ydWVja3N0cmFzc2UgMQorCQkJCUJvZG1hbiAtIEx1ZHdpZ3NoYWZlbiBCYWRlbiAtIFf8cnR0ZW1iZXJnIDc4MzUxCisJCQkJR0VSTUFOWQorCiswMC0yNC0yMCAgIChoZXgpCQlOZXRVUCBJbmMuCiswMDI0MjAgICAgIChiYXNlIDE2KQkJTmV0VVAgSW5jLgorCQkJCU9sb2YgUGFsbWUgc3QuLCAxLCBzZWN0LiA3CisJCQkJTW9zY293ICAxMTkzMTEKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjQtMjEgICAoaGV4KQkJTUlDUk8tU1RBUiBJTlQnTCBDTy4sIExURC4KKzAwMjQyMSAgICAgKGJhc2UgMTYpCQlNSUNSTy1TVEFSIElOVCdMIENPLiwgTFRELgorCQkJCU5vLjY5LCBMaS1EZSBTdAorCQkJCUp1bmctSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC0yMiAgIChoZXgpCQlLbmFwcCBMb2dpc3RpayBBdXRvbWF0aW9uIEdtYkgKKzAwMjQyMiAgICAgKGJhc2UgMTYpCQlLbmFwcCBMb2dpc3RpayBBdXRvbWF0aW9uIEdtYkgKKwkJCQlH/G50ZXItS25hcHAtU3RyYXNzZSA1LTcKKwkJCQlIYXJ0IGJlaSBHcmF6IFN0eXJpYSA4MDc1CisJCQkJQVVTVFJJQQorCiswMC0yNC0yMyAgIChoZXgpCQlBenVyZVdhdmUgVGVjaG5vbG9naWVzIChTaGFuZ2hhaSkgSW5jLgorMDAyNDIzICAgICAoYmFzZSAxNikJCUF6dXJlV2F2ZSBUZWNobm9sb2dpZXMgKFNoYW5naGFpKSBJbmMuCisJCQkJTk8uIDgsIExBTkUgNjYsIENIRU5HQkFPIFJELgorCQkJCU1BTFUgQ09VTlRZLCBKSUFESU5HIERJU1RSSUNULAorCQkJCVNIQU5HSEFJICAyMDE4MDEKKwkJCQlDSElOQQorCiswMC0yNC0yNCAgIChoZXgpCQlBeGlzIE5ldHdvcmsgVGVjaG5vbG9neQorMDAyNDI0ICAgICAoYmFzZSAxNikJCUF4aXMgTmV0d29yayBUZWNobm9sb2d5CisJCQkJVW5pdCAxMCwgTWlkc2hpcmVzIEJ1cyBQYXJrCisJCQkJU21lYXRvbiBDbG9zZQorCQkJCUF5bGVzYnVyeSBCdWNrcyBIUDE5IDhITAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI0LTI1ICAgKGhleCkJCVNoZW56aGVuc2hpIGNodWFuZ3poaWNoZW5nIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAyNDI1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuc2hpIGNodWFuZ3poaWNoZW5nIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTV0aCBGbG9vcixCbG9jazIsMjV0aCBCdWlsZGluZyxJbmR1c3RyaWFsIFpvbmUgV2VzdCBLZXl1YW4gU2NpLXRlY2ggR2FyZGVuIE5hbnNoYW4gRGlzdHJpY2gsU2hlbnpoZW4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjQtMjYgICAoaGV4KQkJTk9ITUkgQk9TQUkgTFRELgorMDAyNDI2ICAgICAoYmFzZSAxNikJCU5PSE1JIEJPU0FJIExURC4KKwkJCQk3LTMsS3VkYW4tTWluYW1pIDQtQ2hvbWUsCisJCQkJQ2hpeW9kYS1rdQorCQkJCVRva3lvICAxMDItODI3NworCQkJCUpBUEFOCisKKzAwLTI0LTI3ICAgKGhleCkJCVNTSSBDT01QVVRFUiBDT1JQCiswMDI0MjcgICAgIChiYXNlIDE2KQkJU1NJIENPTVBVVEVSIENPUlAKKwkJCQk0RiwgTk80LCBMQU5FIDIzNSwgQkFPIENISUFPIFJPQUQKKwkJCQlIU0lOIFRJRU4gVEFJUEVJIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtMjggICAoaGV4KQkJRW5lcmd5SUNUCiswMDI0MjggICAgIChiYXNlIDE2KQkJRW5lcmd5SUNUCisJCQkJVGhlb2Rvb3IgU2V2ZW5zbGFhbiAxMDRhCisJCQkJS29ydHJpamsgIDg1MDAKKwkJCQlCRUxHSVVNCisKKzAwLTI0LTI5ICAgKGhleCkJCU1LIE1BU1RFUiBJTkMuCiswMDI0MjkgICAgIChiYXNlIDE2KQkJTUsgTUFTVEVSIElOQy4KKwkJCQk2RiwgLTEsIE5PLiAxMTAsU0VDLiAzLCBKSE9OR1NIQU4gUkQuLAorCQkJCUpIT05HLUhFIENJVFksIFRBSVBFSSBDT1VOVFkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC0yQSAgIChoZXgpCQlIaXR0aXRlIE1pY3Jvd2F2ZSBDb3Jwb3JhdGlvbgorMDAyNDJBICAgICAoYmFzZSAxNikJCUhpdHRpdGUgTWljcm93YXZlIENvcnBvcmF0aW9uCisJCQkJMjAgQWxwaGEgUmQKKwkJCQlDaGVsbXNmb3JkIE1BIDAxODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0yQiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uLEx0ZC4KKzAwMjQyQiAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uLEx0ZC4KKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuIFRhaXdhbiAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTJDICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCiswMDI0MkMgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTJFICAgKGhleCkJCURhdGFzdHJpcCBJbmMuCiswMDI0MkUgICAgIChiYXNlIDE2KQkJRGF0YXN0cmlwIEluYy4KKwkJCQkxIFdhdGVydmlldyBEcml2ZQorCQkJCVN1aXRlIDEwMworCQkJCVNoZWx0b24gQ1QgMDY0ODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTJGICAgKGhleCkJCVZpcnRlblN5cyBJbmMKKzAwMjQyRiAgICAgKGJhc2UgMTYpCQlWaXJ0ZW5TeXMgSW5jCisJCQkJODcwNSBOaW1idXMgQXZlIFN0ZSAxMDAKKwkJCQlCZWF2ZXJ0b24gT1IgOTcwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTMwICAgKGhleCkJCVJ1YnkgVGVjaCBDb3JwLgorMDAyNDMwICAgICAoYmFzZSAxNikJCVJ1YnkgVGVjaCBDb3JwLgorCQkJCTNGLCBOTy4gMSwgTGFuZSA1MCwgTmFuIEthbmcgUm9hZCwgU2VjLiAzLAorCQkJCVRhaXBlaSAgMTE1MTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTMxICAgKGhleCkJCVVuaS12IGNvLixsdGQKKzAwMjQzMSAgICAgKGJhc2UgMTYpCQlVbmktdiBjby4sbHRkCisJCQkJNS9GLENPRkNPIFByb3BlcnR5IFRvd2VyLAorCQkJCXRoZSAzcmQgQXJlYSwgQmFvJ2FuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyNgorCQkJCUNISU5BCisKKzAwLTI0LTMyICAgKGhleCkJCU5lb3N0YXIgVGVjaG5vbG9neSBDby4sTFRECiswMDI0MzIgICAgIChiYXNlIDE2KQkJTmVvc3RhciBUZWNobm9sb2d5IENvLixMVEQKKwkJCQk4Ri4sIE5vLjEwMiwgU2VjLiAxLCBTaW50YWkgNXRoIFJkLgorCQkJCVNpamhpaCBDaXR5IFRhaXBlaSAyMjE2MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtMzMgICAoaGV4KQkJQWxwcyBFbGVjdHJpYyBDby4sIEx0ZAorMDAyNDMzICAgICAoYmFzZSAxNikJCUFscHMgRWxlY3RyaWMgQ28uLCBMdGQKKwkJCQkxLTItMSwgT2tpbm91Y2hpCisJCQkJU29tYSBjaXR5IEZ1a3VzaGltYS1rZW4gOTc2LTg1MDEKKwkJCQlKQVBBTgorCiswMC0yNC0zNCAgIChoZXgpCQlMZWN0cm9zb25pY3MsIEluYy4KKzAwMjQzNCAgICAgKGJhc2UgMTYpCQlMZWN0cm9zb25pY3MsIEluYy4KKwkJCQk1ODEgTGFzZXIgUmQuCisJCQkJUmlvIFJhbmNobyBOTSA4NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMzUgICAoaGV4KQkJV0lERSBDT1JQT1JBVElPTgorMDAyNDM1ICAgICAoYmFzZSAxNikJCVdJREUgQ09SUE9SQVRJT04KKwkJCQlMRUFERVJTIFRPV0VSIDdUSCBGTC4sIEdPTUFFLURPTkcsIEdJSEVVTkctR1UKKwkJCQlZT05HSU4gR1lFT05HR0kgNDQ2LTkwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC0zNiAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDI0MzYgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMzcgICAoaGV4KQkJTW90b3JvbGEgLSBCU0cKKzAwMjQzNyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSAtIEJTRworCQkJCTExMDEgTWFyaW5hIFZpbGxhZ2UgUGt3eQorCQkJCVN0ZSAyMDAKKwkJCQlBbGFtZWRhIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0zOCAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworMDAyNDM4ICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCisJCQkJMTc0NSBUZWNobm9sb2d5IERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTM5ICAgKGhleCkJCUVzc2VudGlhbCBWaWV3aW5nIFN5c3RlbXMgTGltaXRlZAorMDAyNDM5ICAgICAoYmFzZSAxNikJCUVzc2VudGlhbCBWaWV3aW5nIFN5c3RlbXMgTGltaXRlZAorCQkJCUhpbGxpbmd0b24gUGFyayBJbm5vdmF0aW9uIENlbnRyZQorCQkJCTEgQWluc2xpZSBSb2FkCisJCQkJR2xhc2dvdyBSZW5mcmV3c2hpcmUgRzUyIDRSVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI0LTNBICAgKGhleCkJCUx1ZGwgRWxlY3Ryb25pYyBQcm9kdWN0cworMDAyNDNBICAgICAoYmFzZSAxNikJCUx1ZGwgRWxlY3Ryb25pYyBQcm9kdWN0cworCQkJCTE3MSBCcmFkeSBBdmUKKwkJCQlIYXd0aG9ybmUgTlkgMTA1MzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTNCICAgKGhleCkJCUNTU0kgKFMpIFB0ZSBMdGQKKzAwMjQzQiAgICAgKGJhc2UgMTYpCQlDU1NJIChTKSBQdGUgTHRkCisJCQkJNzAgQmVuZGVtZWVyIFJvYWQgVW5pdCAwNC0wNAorCQkJCTMzOTk0MAorCQkJCVNJTkdBUE9SRQorCiswMC0yNC0zQyAgIChoZXgpCQlTLkEuQS5BLgorMDAyNDNDICAgICAoYmFzZSAxNikJCVMuQS5BLkEuCisJCQkJWi5BLiBDcm9peCBTYWludCBNYXRoaWV1CisJCQkJR0FMTEFSRE9OIEV1cmUgZXQgTG9pciAyODMyMAorCQkJCUZSQU5DRQorCiswMC0yNC0zRCAgIChoZXgpCQlFbWVyc29uIEFwcGxpYW5jZSBNb3RvcnMgYW5kIENvbnRyb2xzCiswMDI0M0QgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBBcHBsaWFuY2UgTW90b3JzIGFuZCBDb250cm9scworCQkJCTE5MDEgU291dGggU3QuCisJCQkJRWxnaW4gSUwgNjAxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTNGICAgKGhleCkJCVN0b3J3aXplLCBJbmMuCiswMDI0M0YgICAgIChiYXNlIDE2KQkJU3RvcndpemUsIEluYy4KKwkJCQkxMSBBbGF0bGVmIFN0LgorCQkJCVllaHVkICA1NjIxNgorCQkJCUlTUkFFTAorCiswMC0yNC00MCAgIChoZXgpCQlIYWxvIE1vbml0b3JpbmcsIEluYy4KKzAwMjQ0MCAgICAgKGJhc2UgMTYpCQlIYWxvIE1vbml0b3JpbmcsIEluYy4KKwkJCQk1MTUgU3BhcmttYW4gRHIuCisJCQkJSHVudHN2aWxsZSBBTCAzNTgxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNDEgICAoaGV4KQkJV2FuemwgTWV0YWxsd2FyZW5mYWJyaWsgR21iSAorMDAyNDQxICAgICAoYmFzZSAxNikJCVdhbnpsIE1ldGFsbHdhcmVuZmFicmlrIEdtYkgKKwkJCQlCdWJlc2hlaW1lciBTdHJhc3NlIDQKKwkJCQlMZWlwaGVpbSBCYXZhcmlhIDg5MzQwCisJCQkJR0VSTUFOWQorCiswMC0yNC00MiAgIChoZXgpCQlBeG9uYSBMaW1pdGVkCiswMDI0NDIgICAgIChiYXNlIDE2KQkJQXhvbmEgTGltaXRlZAorCQkJCTE0OCBHcmVlbiBMYW5lCisJCQkJU3QuIEFsYmFucyBIZXJ0cyBBTDMgNkVVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjQtNDMgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDI0NDMgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJMjIyMSBMYWtlc2lkZSBCbHZkCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNDQgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDI0NDQgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gS1lPVE8gNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yNC00NSAgIChoZXgpCQlMaXF1aWR4U3RyZWFtIFN5c3RlbXMgSW5jLgorMDAyNDQ1ICAgICAoYmFzZSAxNikJCUxpcXVpZHhTdHJlYW0gU3lzdGVtcyBJbmMuCisJCQkJODQ4MCBCb3VsLiBEdSBHb2xmCisJCQkJTW9udHJlYWwgUXVlYmVjIEgxSiAzQTEKKwkJCQlDQU5BREEKKworMDAtMjQtNDYgICAoaGV4KQkJTU1CIFJlc2VhcmNoIEluYy4KKzAwMjQ0NiAgICAgKGJhc2UgMTYpCQlNTUIgUmVzZWFyY2ggSW5jLgorCQkJCTM1IFByaW5jZSBBcnRodXIgQXZlLgorCQkJCVRvcm9udG8gT250YXJpbyBNNVIgMUIyCisJCQkJQ0FOQURBCisKKzAwLTI0LTQ3ICAgKGhleCkJCUthenRlayBTeXN0ZW1zCiswMDI0NDcgICAgIChiYXNlIDE2KQkJS2F6dGVrIFN5c3RlbXMKKwkJCQkxNyBCcm9tZmllbGQgUm9hZAorCQkJCUFjdG9uIE1BIDAxNzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC00OCAgIChoZXgpCQlTcGlkZXJDbG91ZCBXaXJlbGVzcywgSW5jCiswMDI0NDggICAgIChiYXNlIDE2KQkJU3BpZGVyQ2xvdWQgV2lyZWxlc3MsIEluYworCQkJCTM5MDAgRnJlZWRvbSBDaXJjbGUsIFN1aXRlIDEwNAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC00OSAgIChoZXgpCQlTaGVuIFpoZW4gTGl0ZSBTdGFyIEVsZWN0cm9uaWNzIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMjQ0OSAgICAgKGJhc2UgMTYpCQlTaGVuIFpoZW4gTGl0ZSBTdGFyIEVsZWN0cm9uaWNzIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlYaW5naG9uZyBTY2llbmNlIFBhcmssMXN0IEluZC5BcmVhLAorCQkJCUZlbmdodWFuZ2d1YW5nLCBYaXhpYW5nLEJhb2FuIEFyZWEKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTAyCisJCQkJQ0hJTkEKKworMDAtMjQtNEEgICAoaGV4KQkJVm95YW50IEludGVybmF0aW9uYWwKKzAwMjQ0QSAgICAgKGJhc2UgMTYpCQlWb3lhbnQgSW50ZXJuYXRpb25hbAorCQkJCTQ0NCBDYXN0cm8gU3QKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC00QiAgIChoZXgpCQlQRVJDRVBUUk9OIElOQworMDAyNDRCICAgICAoYmFzZSAxNikJCVBFUkNFUFRST04gSU5DCisJCQkJNDc4MjcgSEFMWUFSRCBEUgorCQkJCVBPICNDQzY3MzQ4CisJCQkJUExZTU9VVEggTUkgNDgxNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTRDICAgKGhleCkJCVNvbGFydHJvbiBNZXRyb2xvZ3kgTHRkCiswMDI0NEMgICAgIChiYXNlIDE2KQkJU29sYXJ0cm9uIE1ldHJvbG9neSBMdGQKKwkJCQlTdGV5bmluZyBXYXkKKwkJCQlCb2dub3IgUmVnaXMgV2VzdCBTdXNzZXggUE8yMCA5U1QKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yNC00RCAgIChoZXgpCQlIb2trYWlkbyBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorMDAyNDREICAgICAoYmFzZSAxNikJCUhva2thaWRvIEVsZWN0cm9uaWNzIENvcnBvcmF0aW9uCisJCQkJMS0xIEVhc3QgMTAgTm9ydGggMTAKKwkJCQlIaWdhc2hpLWt1CisJCQkJU2FwcG9ybyBIb2trYWlkbyAwNjUtMDAxMAorCQkJCUpBUEFOCisKKzAwLTI0LTRFICAgKGhleCkJCVJhZENoaXBzLCBJbmMuCiswMDI0NEUgICAgIChiYXNlIDE2KQkJUmFkQ2hpcHMsIEluYy4KKwkJCQk0MjIgRWFzdCBWZXJtaWpvIEF2ZS4KKwkJCQlTdWl0ZSA0MDEKKwkJCQlDb2xvcmFkbyBTcHJpbmdzIENPIDgwOTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC00RiAgIChoZXgpCQlBc2FudHJvbiBUZWNobm9sb2dpZXMgTHRkLgorMDAyNDRGICAgICAoYmFzZSAxNikJCUFzYW50cm9uIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJM0YtMSwgTm8uMzAgSmloZSBSZC4sIDExMQorCQkJCVNoaWhsaW4gRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExMTY2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC01MCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI0NTAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNTEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNDUxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTUyICAgKGhleCkJCVNpbGljb24gU29mdHdhcmUgR21iSAorMDAyNDUyICAgICAoYmFzZSAxNikJCVNpbGljb24gU29mdHdhcmUgR21iSAorCQkJCVN0ZXViZW5zdHIuIDQ2CisJCQkJTWFubmhlaW0gQmFkZW4tV/xydHRlbWJlcmcgNjgxNjMKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LTUzICAgKGhleCkJCUluaXRyYSBkLm8uby4KKzAwMjQ1MyAgICAgKGJhc2UgMTYpCQlJbml0cmEgZC5vLm8uCisJCQkJU2xvbXNrb3ZhIDMzCisJCQkJTGp1YmxqYW5hICAxMDAwCisJCQkJU0xPVkVOSUEKKworMDAtMjQtNTQgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIExURAorMDAyNDU0ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMVEQKKwkJCQk0MTYsIE1hZXRhbiAzRG9uZywgWWVvbmd0b25nLUd1LAorCQkJCVN1d29uIEd5ZW9uZ2dpLURvIDQ0Mzc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC01NSAgIChoZXgpCQlNdUxvZ2ljIEJWCiswMDI0NTUgICAgIChiYXNlIDE2KQkJTXVMb2dpYyBCVgorCQkJCU9saXZpZXIgdmFuIE5vb3J0c3RyYWF0IDQKKwkJCQlTY2hpZWRhbSBaSCAzMTI0TEEKKwkJCQlORVRIRVJMQU5EUworCiswMC0yNC01NiAgIChoZXgpCQkyV2lyZQorMDAyNDU2ICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNTggICAoaGV4KQkJUEEgQmFzdGlvbiBDQworMDAyNDU4ICAgICAoYmFzZSAxNikJCVBBIEJhc3Rpb24gQ0MKKwkJCQk5NywgbGl0ZXIgSywgQnVkZHlvbm5vdnNreSBhdmUuCisJCQkJUm9zdG92LW9uLURvbiAgMzQ0MDExCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTI0LTU5ICAgKGhleCkJCUFCQiBTVE9UWi1LT05UQUtUIEdtYkgKKzAwMjQ1OSAgICAgKGJhc2UgMTYpCQlBQkIgU1RPVFotS09OVEFLVCBHbWJICisJCQkJRXBwZWxoZWltZXIgU3RyYd9lIDgyCisJCQkJU1RPL0tFMQorCQkJCUhlaWRlbGJlcmcgIDY5MTIzCisJCQkJR0VSTUFOWQorCiswMC0yNC01QSAgIChoZXgpCQlOYW5qaW5nIFBhbmRhIEVsZWN0cm9uaWNzIENvbXBhbnkgTGltaXRlZAorMDAyNDVBICAgICAoYmFzZSAxNikJCU5hbmppbmcgUGFuZGEgRWxlY3Ryb25pY3MgQ29tcGFueSBMaW1pdGVkCisJCQkJWmhvbmdzaGFuIEVhc3RSb2FkIDMwMSwKKwkJCQlOQU5KSU5HIEpJQU5HU1UgMjEwMDE2CisJCQkJQ0hJTkEKKworMDAtMjQtNUIgICAoaGV4KQkJUkFJRE9OIFRFQ0hOT0xPR1ksIElOQy4KKzAwMjQ1QiAgICAgKGJhc2UgMTYpCQlSQUlET04gVEVDSE5PTE9HWSwgSU5DLgorCQkJCTRGLTgsIE5PLjE2LCBMYW5lIDYwOSwgU2VjLjUsIENodW5nLUhzaW4gUmQuLAorCQkJCVNhbi1DaHVuZyBDaXR5IFRhaXBlaSBjb3VudHksIDI0MTU5CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC01QyAgIChoZXgpCQlEZXNpZ24tQ29tIFRlY2hub2xvZ2llcyBQdHkuIEx0ZC4KKzAwMjQ1QyAgICAgKGJhc2UgMTYpCQlEZXNpZ24tQ29tIFRlY2hub2xvZ2llcyBQdHkuIEx0ZC4KKwkJCQkxNCBSZWRsYW5kIERyaXZlCisJCQkJTWl0Y2hhbSBWaWN0b3JpYSAzMTMyCisJCQkJQVVTVFJBTElBCisKKzAwLTI0LTVEICAgKGhleCkJCVRlcmJlcmcgYmVzdHVyaW5nc3RlY2huaWVrIEIuVi4KKzAwMjQ1RCAgICAgKGJhc2UgMTYpCQlUZXJiZXJnIGJlc3R1cmluZ3N0ZWNobmllayBCLlYuCisJCQkJTGFnZSBEaWprLU5vb3JkIDMKKwkJCQlJSnNzZWxzdGVpbiBVdHJlY2h0IDM0MDEgVkEKKwkJCQlORVRIRVJMQU5EUworCiswMC0yNC01RSAgIChoZXgpCQlIaXZpc2lvbiBDby4sbHRkCiswMDI0NUUgICAgIChiYXNlIDE2KQkJSGl2aXNpb24gQ28uLGx0ZAorCQkJCTIyMDEtMjIwMiwgQ09GQ08gUHJvcGVydHkgVG93ZXIsCisJCQkJM3JkIEJhbydhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDEKKwkJCQlDSElOQQorCiswMC0yNC01RiAgIChoZXgpCQlWaW5lIFRlbGVjb20gQ08uLEx0ZC4KKzAwMjQ1RiAgICAgKGJhc2UgMTYpCQlWaW5lIFRlbGVjb20gQ08uLEx0ZC4KKwkJCQkxOTEtNCwgNEYsIEFueWFuZy1kb25nLCBNYW5hbi1ndQorCQkJCUFueWFuZy1zaSBHeWVvbmdnaS1kbyA0MzAtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LTYwICAgKGhleCkJCUdpYXZhbCBTY2llbmNlIERldmVsb3BtZW50IENvLiBMdGQuCiswMDI0NjAgICAgIChiYXNlIDE2KQkJR2lhdmFsIFNjaWVuY2UgRGV2ZWxvcG1lbnQgQ28uIEx0ZC4KKwkJCQk1OCBCZWkgU2kgSHVhbiBYaSBSZAorCQkJCUlkZWFsIFBsYXphLCBTdWl0ZSA0MTMKKwkJCQlCZWlqaW5nIDEwMDA4MAorCQkJCUNISU5BCisKKzAwLTI0LTYxICAgKGhleCkJCVNoaW4gV2FuZyBUZWNoLgorMDAyNDYxICAgICAoYmFzZSAxNikJCVNoaW4gV2FuZyBUZWNoLgorCQkJCTYzMi02MiwgR3Vyby1Eb25nLCBHdXJvLUd1CisJCQkJMTA1LUhvLCBDLURvbmcsIEd1cm9jdWxhdGlvbiBEZXB0LgorCQkJCVNlb3VsICAxNTItODY2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LTYyICAgKGhleCkJCVJheXpvbmUgQ29ycG9yYXRpb24KKzAwMjQ2MiAgICAgKGJhc2UgMTYpCQlSYXl6b25lIENvcnBvcmF0aW9uCisJCQkJIzIwMDgsIEItRG9uZywgU2FtaG8gQkxERworCQkJCVlhbmdqYWUyLURvbmcsIFNlb2Noby1HdQorCQkJCVNlb3VsICAxMzctOTQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LTYzICAgKGhleCkJCVBoeWJyaWRnZSBJbmMKKzAwMjQ2MyAgICAgKGJhc2UgMTYpCQlQaHlicmlkZ2UgSW5jCisJCQkJMTIwMCBTcGVlcnMgUm9hZAorCQkJCVVuaXQgMzcKKwkJCQlPYWt2aWxsZSBPbnRhcmlvIEw2TDJYNAorCQkJCUNBTkFEQQorCiswMC0yNC02NCAgIChoZXgpCQlCcmlkZ2UgVGVjaG5vbG9naWVzIENvIEFTCiswMDI0NjQgICAgIChiYXNlIDE2KQkJQnJpZGdlIFRlY2hub2xvZ2llcyBDbyBBUworCQkJCU34bGxlcGFya2VuIDQKKwkJCQlPc2xvICAwNDU5CisJCQkJTk9SV0FZCisKKzAwLTI0LTY1ICAgKGhleCkJCUVsZW50ZWMKKzAwMjQ2NSAgICAgKGJhc2UgMTYpCQlFbGVudGVjCisJCQkJNDAxLTEzIENodW5nZ3llLVJpLERvbmd0YW4tTXl1bgorCQkJCUh3YXN1bmcgS3l1bmdnaSA0NDUtODExCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LTY2ICAgKGhleCkJCVVuaXRyb24gbnYKKzAwMjQ2NiAgICAgKGJhc2UgMTYpCQlVbml0cm9uIG52CisJCQkJRnJhbnJraWprbGFhbiAyNworCQkJCVBvcGVyaW5nZSBXLXZsIDg5NzAKKwkJCQlCRUxHSVVNCisKKzAwLTI0LTY3ICAgKGhleCkJCUFPQyBJbnRlcm5hdGlvbmFsIChFdXJvcGUpIEdtYkgKKzAwMjQ2NyAgICAgKGJhc2UgMTYpCQlBT0MgSW50ZXJuYXRpb25hbCAoRXVyb3BlKSBHbWJICisJCQkJTGFobnN0cmFzc2UgODZBCisJCQkJQmVybGluICAxMjA1NQorCQkJCUdFUk1BTlkKKworMDAtMjQtNjggICAoaGV4KQkJU3VtYXZpc2lvbiBUZWNobm9sb2dpZXMgQ28uLEx0ZAorMDAyNDY4ICAgICAoYmFzZSAxNikJCVN1bWF2aXNpb24gVGVjaG5vbG9naWVzIENvLixMdGQKKwkJCQk2RiwgQmxvY2sgQTIsIFBvd2VyIENyZWF0aXZlIEJ1aWxkaW5nLE5vLjEgU2hhbmdkaSBFYXN0IFJvYWQsIEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0yNC02OSAgIChoZXgpCQlTbWFydCBEb29ycGhvbmVzCiswMDI0NjkgICAgIChiYXNlIDE2KQkJU21hcnQgRG9vcnBob25lcworCQkJCVNwaWV2ZWxkc3RyYWF0IDI0CisJCQkJTG9rZXJlbiAgOTE2MAorCQkJCUJFTEdJVU0KKworMDAtMjQtNkEgICAoaGV4KQkJU29saWQgWWVhciBDby4sIEx0ZC4KKzAwMjQ2QSAgICAgKGJhc2UgMTYpCQlTb2xpZCBZZWFyIENvLiwgTHRkLgorCQkJCTJGLTEsIE5vLiA5NCwgQmFvLWNodW5nIFJvYWQsCisJCQkJSHNpbi10aWVuIENpdHkgVGFpcGVpIEhzaWVuIDIzMTQ3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC02QiAgIChoZXgpCQlDb3ZpYSwgSW5jLgorMDAyNDZCICAgICAoYmFzZSAxNikJCUNvdmlhLCBJbmMuCisJCQkJQmVuZXggUy0zIEJsZGcuLCAzLTIwLTgsIFNoaW55b2tvaGFtYSxLb2hva3Uta3UsCisJCQkJWW9rb2hhbWEtY2l0eSBLYW5hZ2F3YS1wcmVmLiAyMjItMDAzMworCQkJCUpBUEFOCisKKzAwLTI0LTZDICAgKGhleCkJCUFSVUJBIE5FVFdPUktTLCBJTkMuCiswMDI0NkMgICAgIChiYXNlIDE2KQkJQVJVQkEgTkVUV09SS1MsIElOQy4KKwkJCQkxMzQ0IENyb3NzbWFuIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNkQgICAoaGV4KQkJV2VpbnppZXJsIEVuZ2luZWVyaW5nIEdtYkgKKzAwMjQ2RCAgICAgKGJhc2UgMTYpCQlXZWluemllcmwgRW5naW5lZXJpbmcgR21iSAorCQkJCUJhaG5ob2ZzdHIuIDYKKwkJCQlUeXJsYWNoaW5nIEJhdmFyaWEgODQ1NTgKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LTZFICAgKGhleCkJCVBoaWhvbmcgVVNBIENvcnAuCiswMDI0NkUgICAgIChiYXNlIDE2KQkJUGhpaG9uZyBVU0EgQ29ycC4KKwkJCQk0NzgwMCBGcmVtb250IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNkYgICAoaGV4KQkJT25kYSBDb21tdW5pY2F0aW9uIHNwYQorMDAyNDZGICAgICAoYmFzZSAxNikJCU9uZGEgQ29tbXVuaWNhdGlvbiBzcGEKKwkJCQl2aWEgZGVsIGxhdm9ybyA5CisJCQkJcG9yZGVub25lICAzMzE3MAorCQkJCUlUQUxZCisKKzAwLTI0LTcwICAgKGhleCkJCUFVUk9URUNIIHVsdHJhc291bmQgQVMuCiswMDI0NzAgICAgIChiYXNlIDE2KQkJQVVST1RFQ0ggdWx0cmFzb3VuZCBBUy4KKwkJCQlTdmluZ2VuIDEKKwkJCQlUeWRhbCBTci1UciBOLTc1OTAKKwkJCQlOT1JXQVkKKworMDAtMjQtNzEgICAoaGV4KQkJRnVzaW9uIE11bHRpU3lzdGVtcyBkYmEgRnVzaW9uLWlvCiswMDI0NzEgICAgIChiYXNlIDE2KQkJRnVzaW9uIE11bHRpU3lzdGVtcyBkYmEgRnVzaW9uLWlvCisJCQkJNjM1MCBTLiAzMDAwIEUuLCA2dGggZmxvb3IKKwkJCQlTYWx0IGxha2UgQ2l0eSBVVCA4NDEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNzIgICAoaGV4KQkJUmVEcml2ZW4gUG93ZXIgSW5jLgorMDAyNDcyICAgICAoYmFzZSAxNikJCVJlRHJpdmVuIFBvd2VyIEluYy4KKwkJCQkyNEEgQmF0aCBSZC4KKwkJCQlJcm9xdW9pcyBPbnRhcmlvIEswRSAxSzAKKwkJCQlDQU5BREEKKworMDAtMjQtNzMgICAoaGV4KQkJM0NvbSBFdXJvcGUgTHRkCiswMDI0NzMgICAgIChiYXNlIDE2KQkJM0NvbSBFdXJvcGUgTHRkCisJCQkJUGVvcGxlIEJ1aWxkaW5nIDIKKwkJCQlNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSGVydHMuIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yNC03NCAgIChoZXgpCQlBdXRyb25pY2EgRmlyZSBBbmQgU2VjdXJpcnR5CiswMDI0NzQgICAgIChiYXNlIDE2KQkJQXV0cm9uaWNhIEZpcmUgQW5kIFNlY3VyaXJ0eQorCQkJCUhhYWtvbiBWSUkncyBnLjQKKwkJCQlUcm9uZGhlaW0gTi03NDgzCisJCQkJTk9SV0FZCisKKzAwLTI0LTc1ICAgKGhleCkJCUNvbXBhc3MgU3lzdGVtKEVtYmVkZGVkIERlcHQuKQorMDAyNDc1ICAgICAoYmFzZSAxNikJCUNvbXBhc3MgU3lzdGVtKEVtYmVkZGVkIERlcHQuKQorCQkJCTE0MDMgQUNFIFRlY2hub1Rvd2VyIDh0aAorCQkJCTE5MS03LCBHdXJvLWRvbmcsIEd1cm8tR3UKKwkJCQlTZW91bCAgMTUyLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC03NiAgIChoZXgpCQlUQVAudHYKKzAwMjQ3NiAgICAgKGJhc2UgMTYpCQlUQVAudHYKKwkJCQkxNnczNjEgU291dGggRnJvbnRhZ2UgUm9hZAorCQkJCVN1aXRlIDEyOAorCQkJCUJ1cnIgUmlkZ2UgSUwgNjA1MjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTc3ICAgKGhleCkJCVRpYmJvIFRlY2hub2xvZ3kKKzAwMjQ3NyAgICAgKGJhc2UgMTYpCQlUaWJibyBUZWNobm9sb2d5CisJCQkJOUYtMywgTm8gMzEsIExhbmUgMTY5LCBLYW5nLU5pbmcgU3QuLAorCQkJCUhzaS1DaGloIFRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTc4ICAgKGhleCkJCU1hZyBUZWNoIEVsZWN0cm9uaWNzIENvIExpbWl0ZWQKKzAwMjQ3OCAgICAgKGJhc2UgMTYpCQlNYWcgVGVjaCBFbGVjdHJvbmljcyBDbyBMaW1pdGVkCisJCQkJRmxhdCAvIFJvb20gVDc4IEdPRiBCYW5na29rIEJ1aWxkaW5nCisJCQkJMTggQm9uaGFtIFN0cmFuZCBXZXN0CisJCQkJU2hldW5nIFdhbiBISyAKKwkJCQlIT05HIEtPTkcKKworMDAtMjQtNzkgICAoaGV4KQkJT3B0ZWMgRGlzcGxheXMsIEluYy4KKzAwMjQ3OSAgICAgKGJhc2UgMTYpCQlPcHRlYyBEaXNwbGF5cywgSW5jLgorCQkJCTUyOCBTLiA2dGggQXZlbnVlCisJCQkJQ2l0eSBvZiBJbmR1c3RyeSBDYWxpZm9ybmlhIDkxNzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC03QSAgIChoZXgpCQlGVSBZSSBDSEVORyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAyNDdBICAgICAoYmFzZSAxNikJCUZVIFlJIENIRU5HIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMTNGLCBOby4gMTA1LTEsIEppbGluIFJkLiwgTHVqdSBTaGlhbmcsCisJCQkJVGFveXVhbiAgMzM4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC03QiAgIChoZXgpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworMDAyNDdCICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC03QyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNDdDICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwVgorCQkJCURFTk1BUksKKworMDAtMjQtN0QgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjQ3RCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjQtN0UgICAoaGV4KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQKKzAwMjQ3RSAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZAorCQkJCTE0MSwgTEFORSAzNTEsU0VDLjEsICBUQUlQSU5HIFJELgorCQkJCVRTQU9UVUVOCisJCQkJTkFOVE9VIDU0MjYxCisJCQkJVEFOWkFOSUEsIFVOSVRFRCBSRVBVQkxJQyBPRgorCiswMC0yNC03RiAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMjQ3RiAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQkyMjIxIExha2VzaWRlIEJsdmQKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgyLTQzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTgwICAgKGhleCkJCU1ldGVvY29udHJvbCBHbWJICiswMDI0ODAgICAgIChiYXNlIDE2KQkJTWV0ZW9jb250cm9sIEdtYkgKKwkJCQlTcGljaGVyZXJzdHJhc3NlIDQ4CisJCQkJQXVnc2J1cmcgQmF2YXJpYSA4NjE1MgorCQkJCUdFUk1BTlkKKworMDAtMjQtODEgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDI0ODEgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMgorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTgyICAgKGhleCkJCVJ1Y2t1cyBXaXJlbGVzcworMDAyNDgyICAgICAoYmFzZSAxNikJCVJ1Y2t1cyBXaXJlbGVzcworCQkJCTg4MCBXZXN0IE1hdWRlIEF2ZS4KKwkJCQlTdWl0ZSAxMDEKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTgzICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzCiswMDI0ODMgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MKKwkJCQk2MC0zOSxLYXNhbi1kb25nLEt1bWNob24ta3UsCisJCQkJU2VvdWwgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtODQgICAoaGV4KQkJQmFuZyBhbmQgT2x1ZnNlbiBNZWRpY29tIGEvcworMDAyNDg0ICAgICAoYmFzZSAxNikJCUJhbmcgYW5kIE9sdWZzZW4gTWVkaWNvbSBhL3MKKwkJCQlHaW1zaW5nbHVuZHZlaiAyMAorCQkJCVN0cnVlciBESyBESzc2MDAKKwkJCQlERU5NQVJLCisKKzAwLTI0LTg1ICAgKGhleCkJCUNvbnRlWHRyZWFtIEx0ZAorMDAyNDg1ICAgICAoYmFzZSAxNikJCUNvbnRlWHRyZWFtIEx0ZAorCQkJCTk0IEVtLUhhTW9zaGF2b3QKKwkJCQlQT0IgMzI0NgorCQkJCVBldGFjaC1UaWt2YSAgNDk1MjcKKwkJCQlJU1JBRUwKKworMDAtMjQtODYgICAoaGV4KQkJRGVzaWduQXJ0IE5ldHdvcmtzCiswMDI0ODYgICAgIChiYXNlIDE2KQkJRGVzaWduQXJ0IE5ldHdvcmtzCisJCQkJNCBIYSdoYXJvc2hldCBTdAorCQkJCVAuTy4gQm94IDIyNzgKKwkJCQlSYSdhbmFuYSAgNDMxMDEKKwkJCQlJU1JBRUwKKworMDAtMjQtODcgICAoaGV4KQkJQmxhY2tib2FyZCBJbmMuCiswMDI0ODcgICAgIChiYXNlIDE2KQkJQmxhY2tib2FyZCBJbmMuCisJCQkJMjI2MDEgTm9ydGggMTl0aCBBdmVudWUKKwkJCQlTdWl0ZSAyMDAKKwkJCQlQaG9lbml4IEFaIDg1MDI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC04OCAgIChoZXgpCQlDZW50cmUgRm9yIERldmVsb3BtZW50IE9mIFRlbGVtYXRpY3MKKzAwMjQ4OCAgICAgKGJhc2UgMTYpCQlDZW50cmUgRm9yIERldmVsb3BtZW50IE9mIFRlbGVtYXRpY3MKKwkJCQlCMDEsIEVsZWN0cm9uaWMgQ2l0eSwgUGhhc2UgMQorCQkJCUhvc3VyIFJvYWQKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MDEwMAorCQkJCUlORElBCisKKzAwLTI0LTg5ICAgKGhleCkJCVZvZGFmb25lIE9tbml0ZWwgTi5WLgorMDAyNDg5ICAgICAoYmFzZSAxNikJCVZvZGFmb25lIE9tbml0ZWwgTi5WLgorCQkJCVZpYSBKZXJ2aXMgMTMKKwkJCQkxMDAxNSBJdnJlYSBUb3Jpbm8KKwkJCQlJVEFMWQorCiswMC0yNC04QSAgIChoZXgpCQlLYWdhIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAyNDhBICAgICAoYmFzZSAxNikJCUthZ2EgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJSG9uZ28gMi0yLTkKKwkJCQlCdW5reW8ta3UKKwkJCQlUb2t5byAxMTMtODUwMworCQkJCUpBUEFOCisKKzAwLTI0LThCICAgKGhleCkJCUhZQlVTIENPLiwgTFRELgorMDAyNDhCICAgICAoYmFzZSAxNikJCUhZQlVTIENPLiwgTFRELgorCQkJCVJtIyA3MDEsIERhZXJ1bmcgUG9zdCBUb3dlciAxc3QKKwkJCQkyMTItOCwgR3Vyby0zZG9uZywgR3Vyby1ndQorCQkJCVNFT1VMICAxNTItNzkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LThDICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorMDAyNDhDICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UsCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LThEICAgKGhleCkJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBJbmMuCiswMDI0OEQgICAgIChiYXNlIDE2KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50IEluYy4KKwkJCQkyLTYtMjEgTWluYW1pLUFveWFtYSwKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA3LTAwNjIKKwkJCQlKQVBBTgorCiswMC0yNC04RSAgIChoZXgpCQlJbmZvd2FyZSBaUnQuCiswMDI0OEUgICAgIChiYXNlIDE2KQkJSW5mb3dhcmUgWlJ0LgorCQkJCUh1c2VnIHUuIDEwL2EKKwkJCQlCdWRhcGVzdCAgMTIyMworCQkJCUhVTkdBUlkKKworMDAtMjQtOEYgICAoaGV4KQkJRE8tTU9OSVgKKzAwMjQ4RiAgICAgKGJhc2UgMTYpCQlETy1NT05JWAorCQkJCSM1MDEsIEtvcmVhbmEgQi9ECisJCQkJNy01LCBTdW5hZS1kb25nLCBCdW5kYW5nLWd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8gODIKKwkJCQlLT1JFQSwgREVNT0NSQVRJQyBQRU9QTEUnUyBSRVBVQkxJCisKKzAwLTI0LTkwICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLExURAorMDAyNDkwICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLExURAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC05MSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCiswMDI0OTEgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC05MiAgIChoZXgpCQlNb3Rvcm9sYSwgQnJvYWRiYW5kIFNvbHV0aW9ucyBHcm91cAorMDAyNDkyICAgICAoYmFzZSAxNikJCU1vdG9yb2xhLCBCcm9hZGJhbmQgU29sdXRpb25zIEdyb3VwCisJCQkJMTEwMSBNYXJpbmEgVmlsbGFnZSBQYXJrd2F5CisJCQkJU3VpdGUgMjAwCisJCQkJQWxhbWVkYSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtOTMgICAoaGV4KQkJTW90b3JvbGEsIEluYworMDAyNDkzICAgICAoYmFzZSAxNikJCU1vdG9yb2xhLCBJbmMKKwkJCQkxMTAxIE1hcmluYSBWaWxsYWdlIFBhcmt3YXkKKwkJCQlTdWl0ZSAyMDAKKwkJCQlBbGFtZWRhIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC05NCAgIChoZXgpCQlTaGVuemhlbiBCYW94aW4gVGVjaCBDTy4sIEx0ZC4KKzAwMjQ5NCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBCYW94aW4gVGVjaCBDTy4sIEx0ZC4KKwkJCQk2RiBIdWFsZSBCTERHLiwgWmhvbmdoYW5nYmVpIFJkLiwKKwkJCQlGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ0RvbmcgNTE4MDI4CisJCQkJQ0hJTkEKKworMDAtMjQtOTUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjQ5NSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVLlMuIEhpZ2h3YXkgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSWxsaW5vaXMgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTk2ICAgKGhleCkJCUdpbnppbmdlciBlbGVjdHJvbmljIHN5c3RlbXMKKzAwMjQ5NiAgICAgKGJhc2UgMTYpCQlHaW56aW5nZXIgZWxlY3Ryb25pYyBzeXN0ZW1zCisJCQkJR2V3ZXJiZWdlYmlldCBQaXJhdGggMTYKKwkJCQlXZW5nIFVwcGVyIEF1c3RyaWEgNDk1MgorCQkJCUFVU1RSSUEKKworMDAtMjQtOTcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNDk3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTk4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjQ5OCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC05OSAgIChoZXgpCQlBcXVpbGEgVGVjaG5vbG9naWVzCiswMDI0OTkgICAgIChiYXNlIDE2KQkJQXF1aWxhIFRlY2hub2xvZ2llcworCQkJCTg0MjlBIFdhc2hpbmd0b24gUGxhY2UgTkUKKwkJCQlBbGJ1cXVlcnF1ZSBOTSA4NzExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtOUEgICAoaGV4KQkJQmVpamluZyBaaG9uZ2NodWFuZyBUZWxlY29tbXVuaWNhdGlvbiBUZXN0IENvLiwgTHRkLgorMDAyNDlBICAgICAoYmFzZSAxNikJCUJlaWppbmcgWmhvbmdjaHVhbmcgVGVsZWNvbW11bmljYXRpb24gVGVzdCBDby4sIEx0ZC4KKwkJCQkxMi0xNCxCbG9jayBDLEJlaWppbmcgSW50ZXJuYXRpb25hbCBCdWlsZGluZywjMTgsWmhvbmcgR3VhbiBDdW4gTmFuIFJvYWQsCisJCQkJSGFpIERpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODEKKwkJCQlDSElOQQorCiswMC0yNC05QiAgIChoZXgpCQlBY3Rpb24gU3RhciBFbnRlcnByaXNlIENvLiwgTHRkLgorMDAyNDlCICAgICAoYmFzZSAxNikJCUFjdGlvbiBTdGFyIEVudGVycHJpc2UgQ28uLCBMdGQuCisJCQkJMTBGLCBOby4xNTksIFRhLVR1bmcgUmQuLCBTZWMuMgorCQkJCUhzaWNoaWggVGFpcGVpIEhzaWVuIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtOUMgICAoaGV4KQkJQmltZW5nIENvbXVuaWNhdGlvbiBTeXN0ZW0gQ28uIEx0ZAorMDAyNDlDICAgICAoYmFzZSAxNikJCUJpbWVuZyBDb211bmljYXRpb24gU3lzdGVtIENvLiBMdGQKKwkJCQlMZXZlbCAxNi9mLCBUb3dlciBCLFNpbm90cmFucyBQbGF6YSxOby40MywgWGkgWmhpIE1lbiBOb3J0aGVybiBSb2FkLEhhaSBkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDQ0CisJCQkJQ0hJTkEKKworMDAtMjQtOUQgICAoaGV4KQkJTkVTIFRlY2hub2xvZ3kgSW5jLgorMDAyNDlEICAgICAoYmFzZSAxNikJCU5FUyBUZWNobm9sb2d5IEluYy4KKwkJCQkjMjA1IEFDRSBUZWNobm90b3dlciAxMCwgNDcwLTUgR2FzYW4tZG9uZworCQkJCUdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtNzg5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LTlFICAgKGhleCkJCUFEQy1FbGVrdHJvbmlrIEdtYkgKKzAwMjQ5RSAgICAgKGJhc2UgMTYpCQlBREMtRWxla3Ryb25payBHbWJICisJCQkJ1nN0aW5nc3RyYd9lIDEzYgorCQkJCUhhbW0gTlJXIEQtNTkwNjMKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LTlGICAgKGhleCkJCVJJTSBUZXN0aW5nIFNlcnZpY2VzCiswMDI0OUYgICAgIChiYXNlIDE2KQkJUklNIFRlc3RpbmcgU2VydmljZXMKKwkJCQk0NDAgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCA1UjkKKwkJCQlDQU5BREEKKworMDAtMjQtQTAgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjRBMCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUExICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDI0QTEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1BMiAgIChoZXgpCQlIb25nIEtvbmcgTWlkZGxld2FyZSBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMjRBMiAgICAgKGJhc2UgMTYpCQlIb25nIEtvbmcgTWlkZGxld2FyZSBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlSb29tIDEzMTUgLExlaWdodG9uIENlbnRyZSw3NyBMZWlnaHRvbiBSb2FkCisJCQkJQ2F1c2V3YXkgQmF5ICA4NTIKKwkJCQlIT05HIEtPTkcKKworMDAtMjQtQTMgICAoaGV4KQkJU29uaW0gVGVjaG5vbG9naWVzIEluYworMDAyNEEzICAgICAoYmFzZSAxNikJCVNvbmltIFRlY2hub2xvZ2llcyBJbmMKKwkJCQkxODc1IFMuR3JhbnQgU3RyZWV0CisJCQkJU3RlIzYyMAorCQkJCVNhbm1hdGVvIENBIDk0NDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1BNCAgIChoZXgpCQlTaWtsdSBDb21tdW5pY2F0aW9uCiswMDI0QTQgICAgIChiYXNlIDE2KQkJU2lrbHUgQ29tbXVuaWNhdGlvbgorCQkJCTcgU2hvaGFtIFN0LiwgLCAzcmQgRmxvb3IKKwkJCQlQZXRhaCBUaWt2YSAgNDk1MTcKKwkJCQlJU1JBRUwKKworMDAtMjQtQTUgICAoaGV4KQkJQnVmZmFsbyBJbmMuCiswMDI0QTUgICAgIChiYXNlIDE2KQkJQnVmZmFsbyBJbmMuCisJCQkJMTUsIFNoaWJhdGEgSG9uZG9yaSA0LWNob21lCisJCQkJTWluYW1pLWt1LE5hZ295YSBBaWNoaSBQcmVmLiA0NTctODUyMAorCQkJCUpBUEFOCisKKzAwLTI0LUE2ICAgKGhleCkJCVRFTEVTVEFSIERJR0lUQUwgR21iSAorMDAyNEE2ICAgICAoYmFzZSAxNikJCVRFTEVTVEFSIERJR0lUQUwgR21iSAorCQkJCVZ1bGthbmj2aGUgLyBCNDEwCisJCQkJRHJlaXMgLSBCcvxjayAgNTQ1NTIKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LUE3ICAgKGhleCkJCUFkdmFuY2VkIFZpZGVvIENvbW11bmljYXRpb25zIEluYy4KKzAwMjRBNyAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBWaWRlbyBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJNjMzIFcgNXRoIFN0cmVldAorCQkJCTY4MDAKKwkJCQlMb3MgQW5nZWxlcyBDQSA5MDAxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQTggICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorMDAyNEE4ICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkCisJCQkJUm9zZXZpbGxlIENhbGlmb3JuaWEgOTU3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUE5ICAgKGhleCkJCUFnIExlYWRlciBUZWNobm9sb2d5CiswMDI0QTkgICAgIChiYXNlIDE2KQkJQWcgTGVhZGVyIFRlY2hub2xvZ3kKKwkJCQkyMjAyIFMgUml2ZXJzaWRlIERyLgorCQkJCVBPIEJveCAyMzQ4CisJCQkJQW1lcyBJQSA1MDAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQUEgICAoaGV4KQkJRHljb3IgVGVjaG5vbG9naWVzIEx0ZC4KKzAwMjRBQSAgICAgKGJhc2UgMTYpCQlEeWNvciBUZWNobm9sb2dpZXMgTHRkLgorCQkJCTE4NTEgOTQgU3RyZWV0CisJCQkJRWRtb250b24gQWxiZXJ0YSBUNk4gMUU2CisJCQkJQ0FOQURBCisKKzAwLTI0LUFCICAgKGhleCkJCUE3IEVuZ2luZWVyaW5nLCBJbmMuCiswMDI0QUIgICAgIChiYXNlIDE2KQkJQTcgRW5naW5lZXJpbmcsIEluYy4KKwkJCQkxMjEyNyBLaXJraGFtIFJvYWQgU3VpdGUgMTAxCisJCQkJUG93YXkgQ0EgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUFDICAgKGhleCkJCUhhbmd6aG91IERQdGVjaCBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDI0QUMgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgRFB0ZWNoIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlIdWFyb25nIFNoaWRhaSBCbGQuLCBOTy4zODgwLEppYW5nLU5hbiBBdmVudWUsIEJpbmppYW5nIERpc3RyaWN0CisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDUxCisJCQkJQ0hJTkEKKworMDAtMjQtQUQgICAoaGV4KQkJQWRvbGYgVGhpZXMgR21iaCAmIENvLiBLRworMDAyNEFEICAgICAoYmFzZSAxNikJCUFkb2xmIFRoaWVzIEdtYmggJiBDby4gS0cKKwkJCQlIYXVwdHN0ci4gNzYKKwkJCQlH9nR0aW5nZW4gIDM3MDgzCisJCQkJR0VSTUFOWQorCiswMC0yNC1BRSAgIChoZXgpCQlNb3JwaG8KKzAwMjRBRSAgICAgKGJhc2UgMTYpCQlNb3JwaG8KKwkJCQkxOCBjaGF1c3NlZSBKdWxlcyBDZXNhcgorCQkJCU9TTlkgIDk1NTIwCisJCQkJRlJBTkNFCisKKzAwLTI0LUFGICAgKGhleCkJCUVjaG9TdGFyIFRlY2hub2xvZ2llcworMDAyNEFGICAgICAoYmFzZSAxNikJCUVjaG9TdGFyIFRlY2hub2xvZ2llcworCQkJCTk0IEludmVybmVzcyBDaXJjbGUKKwkJCQlFbmdsZXdvb2QgQ08gODAxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUIwICAgKGhleCkJCUVTQUIgQUIKKzAwMjRCMCAgICAgKGJhc2UgMTYpCQlFU0FCIEFCCisJCQkJQm94IDgwMDQKKwkJCQlMaW5kaG9sbXNhbGzpbiA5CisJCQkJR290aGVuYnVyZyAgU0UtNDAyIDc3CisJCQkJU1dFREVOCisKKzAwLTI0LUIxICAgKGhleCkJCUNvdWxvbWIgVGVjaG5vbG9naWVzCiswMDI0QjEgICAgIChiYXNlIDE2KQkJQ291bG9tYiBUZWNobm9sb2dpZXMKKwkJCQkxNjkyIERlbGwgQXZlCisJCQkJQ2FtcGJlbGwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUIyICAgKGhleCkJCU5ldGdlYXIKKzAwMjRCMiAgICAgKGJhc2UgMTYpCQlOZXRnZWFyCisJCQkJMzUwIEVhc3QgUGx1bWVyaWEgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQjMgICAoaGV4KQkJR3JhZi1TeXRlY28gR21iSCAmIENvLiBLRworMDAyNEIzICAgICAoYmFzZSAxNikJCUdyYWYtU3l0ZWNvIEdtYkggJiBDby4gS0cKKwkJCQlLYWlzZXJzdHIuIDE4CisJCQkJVHVuaW5nZW4gQmFkZW4tV/xydHRlbWJlcmcgNzg2MDkKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LUI0ICAgKGhleCkJCUVTQ0FUUk9OSUMgR21iSAorMDAyNEI0ICAgICAoYmFzZSAxNikJCUVTQ0FUUk9OSUMgR21iSAorCQkJCVd1ZXJ6YnVyZ2VyIFN0ci4gOAorCQkJCUxhYXR6ZW4gTG93ZXIgU2F4b255IDMwODgwCisJCQkJR0VSTUFOWQorCiswMC0yNC1CNSAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMjRCNSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQkyMjIxIExha2VzaWRlIEJsdmQKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgyLTQzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUI2ICAgKGhleCkJCVNlYWdhdGUgVGVjaG5vbG9neQorMDAyNEI2ICAgICAoYmFzZSAxNikJCVNlYWdhdGUgVGVjaG5vbG9neQorCQkJCTEyODAgRGlzYyBEcml2ZQorCQkJCVNoYWtvcGVlIE1OIDU1Mzc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1CNyAgIChoZXgpCQlHcmlkUG9pbnQsIEluYy4KKzAwMjRCNyAgICAgKGJhc2UgMTYpCQlHcmlkUG9pbnQsIEluYy4KKwkJCQkyODAxIENsYXJlbmRvbiBCbHZkLgorCQkJCVN1aXRlIDEwMAorCQkJCUFybGluZ3RvbiBWQSAyMjIwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQjggICAoaGV4KQkJZnJlZSBhbGxpYW5jZSBzZG4gYmhkCiswMDI0QjggICAgIChiYXNlIDE2KQkJZnJlZSBhbGxpYW5jZSBzZG4gYmhkCisJCQkJQi0zLTIgUGxhemEgRGFtYXMKKwkJCQlTcmkgSGFydGFtYXMKKwkJCQlLdWFsYSBMdW1wdXIgV1AgNTA0ODAKKwkJCQlNQUxBWVNJQQorCiswMC0yNC1COSAgIChoZXgpCQlXdWhhbiBIaWdoZWFzeSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ28uTHRkCiswMDI0QjkgICAgIChiYXNlIDE2KQkJV3VoYW4gSGlnaGVhc3kgRWxlY3Ryb25pYyBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLkx0ZAorCQkJCUJsZGcgQTIgT3B0aWNzIFZhbGxleSBTb2Z0d2FyZSBQYXJrLEd1YW5zaGFuIDFzdCBSZCwKKwkJCQlXdWhhbiBIdWJlaSA0MzAwMzMKKwkJCQlDSElOQQorCiswMC0yNC1CQSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAyNEJBICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1CQiAgIChoZXgpCQlDRU5UUkFMIENvcnBvcmF0aW9uCiswMDI0QkIgICAgIChiYXNlIDE2KQkJQ0VOVFJBTCBDb3Jwb3JhdGlvbgorCQkJCU5JU1NPIDE3IEJsZGcuN0YgMi0xNC0zMAorCQkJCVNoaW55b2tvaGFtYSBLb3Vob2t1LWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0yNC1CQyAgIChoZXgpCQlIdVJvYiBDby4sTHRkCiswMDI0QkMgICAgIChiYXNlIDE2KQkJSHVSb2IgQ28uLEx0ZAorCQkJCTIxMjEsIEplb25nd2FuZy1Eb25nCisJCQkJU2loZXVuZy1TaSBHeWVvbmdnaS1EbyA0MjktNzkzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LUJEICAgKGhleCkJCUhhaW56bCBJbmR1c3RyaWVzeXN0ZW1lIEdtYkgKKzAwMjRCRCAgICAgKGJhc2UgMTYpCQlIYWluemwgSW5kdXN0cmllc3lzdGVtZSBHbWJICisJCQkJSW5kdXN0cmllemVpbGUgNTYKKwkJCQlQb3N0ZmFjaCAxMDAKKwkJCQlMaW56IFVwcGVyIEF1c3RyaWEgNDAyMQorCQkJCUFVU1RSSUEKKworMDAtMjQtQkUgICAoaGV4KQkJU29ueSBDb3Jwb3JhdGlvbgorMDAyNEJFICAgICAoYmFzZSAxNikJCVNvbnkgQ29ycG9yYXRpb24KKwkJCQlHb3RlbnlhbWEgVGVjLiA1LTEtMTIKKwkJCQlLaXRhc2hpbmFnYXdhCisJCQkJU2hpbmFnYXdhLWt1IFRva3lvIDE0MS0wMDAxCisJCQkJSkFQQU4KKworMDAtMjQtQkYgICAoaGV4KQkJQ0lBVAorMDAyNEJGICAgICAoYmFzZSAxNikJCUNJQVQKKwkJCQkzMCwgQXZlbnVlIEplYW4gRmFsY29ubmllcgorCQkJCUN1bG96ICAwMTM1MAorCQkJCUZSQU5DRQorCiswMC0yNC1DMCAgIChoZXgpCQlOVEkgQ09NT0RPIElOQworMDAyNEMwICAgICAoYmFzZSAxNikJCU5USSBDT01PRE8gSU5DCisJCQkJUm0jNTAyLCBLYW5neW9uZyBCbGRnLCBTdW5nbmFtLWRvbmcKKwkJCQlDaGV1bmd3b24tZ3UKKwkJCQlTdW5nbmFtLXNpIEt5dW5nZ2ktZG8gNDYyLTgyNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC1DMSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyNEMxICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJTm8uMTE4NyBCaW5BbiBSb2FkLCBCaW5qaWFuZyBEaXN0cmljdCwKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwNTMKKwkJCQlDSElOQQorCiswMC0yNC1DMiAgIChoZXgpCQlBc3VtbyBDby4sTHRkLgorMDAyNEMyICAgICAoYmFzZSAxNikJCUFzdW1vIENvLixMdGQuCisJCQkJT3lhLUtpdGEgMS0zLTEKKwkJCQlFQklOQS1DSVRZIEtBTkFHQVdBLVBSRUYuIDI0My0wNDE5CisJCQkJSkFQQU4KKworMDAtMjQtQzMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNEMzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUM0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjRDNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1DNSAgIChoZXgpCQlNZXJpZGlhbiBBdWRpbyBMaW1pdGVkCiswMDI0QzUgICAgIChiYXNlIDE2KQkJTWVyaWRpYW4gQXVkaW8gTGltaXRlZAorCQkJCTExIExhdGhhbSBSb2FkCisJCQkJSHVudGluZ2RvbiBDYW1icyBQRTI5IDZZRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI0LUM2ICAgKGhleCkJCUhhZ2VyIEVsZWN0cm8gU0FTCiswMDI0QzYgICAgIChiYXNlIDE2KQkJSGFnZXIgRWxlY3RybyBTQVMKKwkJCQkxMzIsIGJvdWxldmFyZCBkJ0V1cm9wZQorCQkJCU9iZXJuYWkgQmFzLVJoaW4gNjcyMTUKKwkJCQlGUkFOQ0UKKworMDAtMjQtQzcgICAoaGV4KQkJTW9iaWxhcm0gTHRkCiswMDI0QzcgICAgIChiYXNlIDE2KQkJTW9iaWxhcm0gTHRkCisJCQkJNzY4IENhbm5pbmcgSGlnaHdheQorCQkJCUFwcGxlY3Jvc3MKKwkJCQlXZXN0ZXJuIEF1c3RyYWxpYSA2MTUzCisJCQkJQVVTVFJBTElBCisKKzAwLTI0LUM4ICAgKGhleCkJCUJyb2FkYmFuZCBTb2x1dGlvbnMgR3JvdXAKKzAwMjRDOCAgICAgKGJhc2UgMTYpCQlCcm9hZGJhbmQgU29sdXRpb25zIEdyb3VwCisJCQkJMTEwMSBNYXJpbmEgVmlsbGFnZSBQYXJrd2F5CisJCQkJQWxhbWVkYSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQzkgICAoaGV4KQkJQnJvYWRiYW5kIFNvbHV0aW9ucyBHcm91cAorMDAyNEM5ICAgICAoYmFzZSAxNikJCUJyb2FkYmFuZCBTb2x1dGlvbnMgR3JvdXAKKwkJCQkxMTAxIE1hcmluYSBWaWxsYWdlIFBhcmt3YXkKKwkJCQlBbGFtZWRhIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1DQSAgIChoZXgpCQlUb2JpaSBUZWNobm9sb2d5IEFCCiswMDI0Q0EgICAgIChiYXNlIDE2KQkJVG9iaWkgVGVjaG5vbG9neSBBQgorCQkJCUthcmxzcm925GdlbiAyRAorCQkJCURhbmRlcnlkICAxODI1MworCQkJCVNXRURFTgorCiswMC0yNC1DQiAgIChoZXgpCQlBdXRvbmV0IE1vYmlsZQorMDAyNENCICAgICAoYmFzZSAxNikJCUF1dG9uZXQgTW9iaWxlCisJCQkJMjIzNSBNZXJjdXJ5IFdheSBTdGUuIDE0NQorCQkJCVNhbnRhIFJvc2EgQ0EgOTU0MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUNDICAgKGhleCkJCUZhc2NpbmF0aW9ucyBUb3lzIGFuZCBHaWZ0cywgSW5jLgorMDAyNENDICAgICAoYmFzZSAxNikJCUZhc2NpbmF0aW9ucyBUb3lzIGFuZCBHaWZ0cywgSW5jLgorCQkJCTE5MjI0IERlcyBNb2luZXMgV2F5IFMKKwkJCQlTdGUgMTAwCisJCQkJU2VhdHRsZSBXYXNoaW5ndG9uIDk4MTQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1DRCAgIChoZXgpCQlXaWxsb3cgR2FyYWdlLCBJbmMuCiswMDI0Q0QgICAgIChiYXNlIDE2KQkJV2lsbG93IEdhcmFnZSwgSW5jLgorCQkJCTY4IFdpbGxvdyBSZC4KKwkJCQlNZW5sbyBQYXJrIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1DRSAgIChoZXgpCQlFeGVsdGVjaCBJbmMKKzAwMjRDRSAgICAgKGJhc2UgMTYpCQlFeGVsdGVjaCBJbmMKKwkJCQk3MzE3IEphY2sgTmV3ZWxsIEJsdmQgTm9ydGgKKwkJCQlGb3J0IFdvcnRoIFRYIDc2MTE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1DRiAgIChoZXgpCQlJbnNjYXBlIERhdGEgQ29ycG9yYXRpb24KKzAwMjRDRiAgICAgKGJhc2UgMTYpCQlJbnNjYXBlIERhdGEgQ29ycG9yYXRpb24KKwkJCQkxNjExIFNvdXRoIE1haW4gU3RyZWV0CisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUQwICAgKGhleCkJCVNoZW56aGVuIFNPR09PRCBJbmR1c3RyeSBDTy4sTFRELgorMDAyNEQwICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFNPR09PRCBJbmR1c3RyeSBDTy4sTFRELgorCQkJCVNPR09PRCBTY2llbmNlIFBhcmssQXZpYXRpb24gUm9hZCxYaVhpYW5nIFRvd24sQmFvJ2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nemhvdSA1MTgxMDIKKwkJCQlDSElOQQorCiswMC0yNC1EMSAgIChoZXgpCQlUaG9tc29uIEluYy4KKzAwMjREMSAgICAgKGJhc2UgMTYpCQlUaG9tc29uIEluYy4KKwkJCQkxMDEgV2VzdCAxMDNyZCBTdHJlZXQKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUQyICAgKGhleCkJCUFza2V5IENvbXB1dGVyCiswMDI0RDIgICAgIChiYXNlIDE2KQkJQXNrZXkgQ29tcHV0ZXIKKwkJCQkxMEYsTk8uMTE5LENISUVOS0FORyBSRCxDSFVORy1ITyxUQUlQRUksCisJCQkJVEFJV0FOIFRBSVBFSSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LUQzICAgKGhleCkJCVFVQUxJQ0EgSW5jLgorMDAyNEQzICAgICAoYmFzZSAxNikJCVFVQUxJQ0EgSW5jLgorCQkJCTUtMjktMTUsVG95bywKKwkJCQlLb3RvLWt1LAorCQkJCVRva3lvICAxMzUtMDAxNgorCQkJCUpBUEFOCisKKzAwLTI0LUQ0ICAgKGhleCkJCUZSRUVCT1ggU0EKKzAwMjRENCAgICAgKGJhc2UgMTYpCQlGUkVFQk9YIFNBCisJCQkJOCBydWUgZGUgbGEgVmlsbGUgbCdFdmVxdWUKKwkJCQlQQVJJUyBJZEYgNzUwMDgKKwkJCQlGUkFOQ0UKKworMDAtMjQtRDUgICAoaGV4KQkJV2lud2FyZCBJbmR1c3RyaWFsIExpbWl0ZWQKKzAwMjRENSAgICAgKGJhc2UgMTYpCQlXaW53YXJkIEluZHVzdHJpYWwgTGltaXRlZAorCQkJCVJtLjcsIFAgRmxvb3IsIFRvd2VyIEEsCisJCQkJSHVuZyBIb20gQ29tbWVyY2lhbCBDZW50cmUsCisJCQkJSG9uZ0tvbmcgIDg1MgorCQkJCUNISU5BCisKKzAwLTI0LUQ2ICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAyNEQ2ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMjQtRDcgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDI0RDcgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yNC1EOCAgIChoZXgpCQlJbFN1bmcgUHJlY2lzaW9uCiswMDI0RDggICAgIChiYXNlIDE2KQkJSWxTdW5nIFByZWNpc2lvbgorCQkJCTE4Mi0yLCBKZWdpLXJpLCBKZW9uZ25hbS1teWVvbgorCQkJCUh3YW5zZW9uZy1zaSBHeWVvbmdnaS1kbyA0NDUtOTY0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LUQ5ICAgKGhleCkJCUJJQ09NLCBJbmMuCiswMDI0RDkgICAgIChiYXNlIDE2KQkJQklDT00sIEluYy4KKwkJCQk3NTUgTWFpbiBTdHJlZXQKKwkJCQlCdWlsZGluZyAzCisJCQkJTW9ucm9lIENUIDA2NDY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1EQSAgIChoZXgpCQlJbm5vdmFyIFN5c3RlbXMgTGltaXRlZAorMDAyNERBICAgICAoYmFzZSAxNikJCUlubm92YXIgU3lzdGVtcyBMaW1pdGVkCisJCQkJMTIxNTUgQ29tbWlzc2lvbmVyIERyaXZlCisJCQkJUE8gQm94IDY2OAorCQkJCU5vcnRoIEphY2tzb24gT2hpbyA0NDQ1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtREIgICAoaGV4KQkJQWxjb2hvbCBNb25pdG9yaW5nIFN5c3RlbXMKKzAwMjREQiAgICAgKGJhc2UgMTYpCQlBbGNvaG9sIE1vbml0b3JpbmcgU3lzdGVtcworCQkJCTEyNDEgVy4gTWluZXJhbCBBdmVudWUKKwkJCQlTdWl0ZSAyMDAKKwkJCQlMaXR0bGV0b24gQ08gODAxMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LURDICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzAwMjREQyAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtREQgICAoaGV4KQkJQ2VudHJhaywgSW5jLgorMDAyNEREICAgICAoYmFzZSAxNikJCUNlbnRyYWssIEluYy4KKwkJCQkyMDcgUGVubnMgVHJhaWwKKwkJCQlOZXd0b3duIFBBIDE4OTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1ERSAgIChoZXgpCQlHTE9CQUwgVGVjaG5vbG9neSBJbmMuCiswMDI0REUgICAgIChiYXNlIDE2KQkJR0xPQkFMIFRlY2hub2xvZ3kgSW5jLgorCQkJCU5vLjE2OCxTaGFuc2hhbiBSZC4sIFdhbmdjaHVuIEluZHVzdHJpYWwgUGFyaywKKwkJCQlOaW5nYm8gIDMxNTE3NgorCQkJCUNISU5BCisKKzAwLTI0LURGICAgKGhleCkJCURpZ2l0YWxib3ggRXVyb3BlIEdtYkgKKzAwMjRERiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsYm94IEV1cm9wZSBHbWJICisJCQkJU2FuZHN0cmHfZSA2NQorCQkJCVJhdGluZ2VuICA0MDg3OAorCQkJCUdFUk1BTlkKKworMDAtMjQtRTAgICAoaGV4KQkJRFMgVGVjaCwgTExDCiswMDI0RTAgICAgIChiYXNlIDE2KQkJRFMgVGVjaCwgTExDCisJCQkJMjIxMCBIdXR0b24gRHJpdmUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlDYXJyb2xsdG9uIFRYIDc1MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1FMSAgIChoZXgpCQlDb252ZXkgQ29tcHV0ZXIgQ29ycC4KKzAwMjRFMSAgICAgKGJhc2UgMTYpCQlDb252ZXkgQ29tcHV0ZXIgQ29ycC4KKwkJCQkxMzAyIEUuIENvbGxpbnMgQmx2ZC4KKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1FMiAgIChoZXgpCQlIQVNFR0FXQSBFTEVDVFJJQyBDTy4sTFRELgorMDAyNEUyICAgICAoYmFzZSAxNikJCUhBU0VHQVdBIEVMRUNUUklDIENPLixMVEQuCisJCQkJNS02LTIwIFNISU9FCisJCQkJTElHSFROSU5HIFRFQ0hOT0xPR1kgQ0VOVEVSCisJCQkJQU1BR0FTQUtJIEhZT0dPIDY2MS0wOTc2CisJCQkJSkFQQU4KKworMDAtMjQtRTMgICAoaGV4KQkJQ0FPIEdyb3VwCiswMDI0RTMgICAgIChiYXNlIDE2KQkJQ0FPIEdyb3VwCisJCQkJNDYyOCBXZXN0IFNreWhhd2sgRHJpdmUKKwkJCQlXZXN0IEpvcmRhbiBVVCA4NDA4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRTQgICAoaGV4KQkJV2l0aGluZ3MKKzAwMjRFNCAgICAgKGJhc2UgMTYpCQlXaXRoaW5ncworCQkJCTM3YmlzIHJ1ZSBkdSBHZW5lcmFsIExlY2xlcmMKKwkJCQlJc3N5IGxlcyBNb3VsaW5lYXV4ICA5MjQ0MgorCQkJCUZSQU5DRQorCiswMC0yNC1FNSAgIChoZXgpCQlTZWVyIFRlY2hub2xvZ3ksIEluYworMDAyNEU1ICAgICAoYmFzZSAxNikJCVNlZXIgVGVjaG5vbG9neSwgSW5jCisJCQkJMjY4MSBQYXJsZXlzIFdheQorCQkJCVN1aXRlIDIwMQorCQkJCVNhbHQgTGFrZSBDaXR5IFV0YWggODQxMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUU2ICAgKGhleCkJCUluIE1vdGlvbiBUZWNobm9sb2d5IEluYy4KKzAwMjRFNiAgICAgKGJhc2UgMTYpCQlJbiBNb3Rpb24gVGVjaG5vbG9neSBJbmMuCisJCQkJIzM1MCwgNjI1IEFnbmVzIFN0cmVldAorCQkJCU5ldyBXZXN0bWluc3RlciBCQyBWM00gNVk0CisJCQkJQ0FOQURBCisKKzAwLTI0LUU3ICAgKGhleCkJCVBsYXN0ZXIgTmV0d29ya3MKKzAwMjRFNyAgICAgKGJhc2UgMTYpCQlQbGFzdGVyIE5ldHdvcmtzCisJCQkJOTM1IEhhbWlsdG9uIEF2ZW51ZQorCQkJCU1lbmxvIFBhcmsgQ0EgOTQwMjUtMTQzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRTggICAoaGV4KQkJRGVsbCBJbmMuCiswMDI0RTggICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1FOSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLiwgU3RvcmFnZSBTeXN0ZW0gRGl2aXNpb24KKzAwMjRFOSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLiwgU3RvcmFnZSBTeXN0ZW0gRGl2aXNpb24KKwkJCQk0MTYsIE1hZXRhbiAzRG9uZywgWWVvbmd0b25nLUd1CisJCQkJU3V3b24gQ2l0eSBHZXlvbmdnaSBEbyA0NDMtNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LUVBICAgKGhleCkJCWlyaXMtR21iSCBpbmZyYXJlZCAmIGludGVsbGlnZW50IHNlbnNvcnMKKzAwMjRFQSAgICAgKGJhc2UgMTYpCQlpcmlzLUdtYkggaW5mcmFyZWQgJiBpbnRlbGxpZ2VudCBzZW5zb3JzCisJCQkJT3N0ZW5kc3RyYXNzZSAxLTE0CisJCQkJQmVybGluICAxMjQ1OQorCQkJCUdFUk1BTlkKKworMDAtMjQtRUIgICAoaGV4KQkJQ2xlYXJQYXRoIE5ldHdvcmtzLCBJbmMuCiswMDI0RUIgICAgIChiYXNlIDE2KQkJQ2xlYXJQYXRoIE5ldHdvcmtzLCBJbmMuCisJCQkJMTk0MCBFLiBNYXJpcG9zYSBBdmUuCisJCQkJU3VpdGUgMTUwCisJCQkJRWwgU2VndW5kbyBDQSA5MDI0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRUMgICAoaGV4KQkJVW5pdGVkIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMjRFQyAgICAgKGJhc2UgMTYpCQlVbml0ZWQgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTUvRiw5dGggQnVpbGRpbmcsU29mdHdhcmUgUGFyaywybmQgS2VqaS16aG9uZyBSb2FkLEhpZ2gtVGVjaCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjQtRUQgICAoaGV4KQkJWVQgRWxlYy4gQ28sLkx0ZC4KKzAwMjRFRCAgICAgKGJhc2UgMTYpCQlZVCBFbGVjLiBDbywuTHRkLgorCQkJCUJsb2NrIEIsMiBGbG9vciAsQmFvIFlpbmcgSW5kdXN0cmlhbCBEaXN0cmljdCwKKwkJCQlMb25nIEdhbmcgTG9uZ1hpLAorCQkJCVd1IExpYW4gTHUgU2hlbnpoZW4gNTE4MTE2CisJCQkJQ0hJTkEKKworMDAtMjQtRUUgICAoaGV4KQkJV3lubWF4IEluYy4KKzAwMjRFRSAgICAgKGJhc2UgMTYpCQlXeW5tYXggSW5jLgorCQkJCTE4Ri4sIE5vLiA3NSwgU2VjLiAxLCBYaW5UYWkgNXRoICBSZC4sCisJCQkJWGl6aGkgIENpdHksIFRhaXBlaSBDb3VudHkgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC1FRiAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworMDAyNEVGICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgIDIyMTg4CisJCQkJU1dFREVOCisKKzAwLTI0LUYwICAgKGhleCkJCVNlYW5vZGVzCiswMDI0RjAgICAgIChiYXNlIDE2KQkJU2Vhbm9kZXMKKwkJCQlCYXRpbWVudCBQbGF0b24KKwkJCQkyNSBCdmQgVmljdG9yIEh1Z28KKwkJCQlDb2xvbWllcnMgIDMxNzcwCisJCQkJRlJBTkNFCisKKzAwLTI0LUYxICAgKGhleCkJCVNoZW56aGVuIEZhbmhhaSBTYW5qaWFuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMjRGMSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBGYW5oYWkgU2FuamlhbmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJM0ajrEd1YW5nY2FpIFhpbnRpYW5kaSBCdWlsZGluZyxOYW5zaGFuIFJkLE5hbnNoYW4sCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NAorCQkJCUNISU5BCisKKzAwLTI0LUYyICAgKGhleCkJCVVuaXBob25lIFRlbGVjb21tdW5pY2F0aW9uIENvLiwgTHRkLgorMDAyNEYyICAgICAoYmFzZSAxNikJCVVuaXBob25lIFRlbGVjb21tdW5pY2F0aW9uIENvLiwgTHRkLgorCQkJCU5vLiAyNSwgQ2h1LUt1bmcgM3JkIExhbmUsIENodS1Ib3UgVHN1bmcsIEplbi1XdSBIc2lhbmcsCisJCQkJS2FvaHNpdW5nIEhzaWVuICA4MTQ0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtRjMgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDI0RjMgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gS1lPVE8gNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yNC1GNCAgIChoZXgpCQlLYW1pbmFyaW8gVGVjaG5vbG9naWVzIEx0ZC4KKzAwMjRGNCAgICAgKGJhc2UgMTYpCQlLYW1pbmFyaW8gVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQlZYXRhbSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlDUEMgQnVpbGRpbmcKKwkJCQlZb2tuZWFtIElTUkFFTCAyMDY5MgorCQkJCUlTUkFFTAorCiswMC0yNC1GNSAgIChoZXgpCQlORFMgU3VyZ2ljYWwgSW1hZ2luZworMDAyNEY1ICAgICAoYmFzZSAxNikJCU5EUyBTdXJnaWNhbCBJbWFnaW5nCisJCQkJNTc1MCBIZWxseWVyIEF2ZS4KKwkJCQlTYW4gSm9zZSBDQS4gOTUxMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUY2ICAgKGhleCkJCU1JWU9TSEkgRUxFQ1RST05JQ1MgQ09SUE9SQVRJT04KKzAwMjRGNiAgICAgKGJhc2UgMTYpCQlNSVlPU0hJIEVMRUNUUk9OSUNTIENPUlBPUkFUSU9OCisJCQkJMy0xMy0yMSBLVVNISVJPCisJCQkJS0FXQU5JU0hJLUNJVFkgSFlPR08tUFJFRi4gNjY2LTAwMjQKKwkJCQlKQVBBTgorCiswMC0yNC1GNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI0RjcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRjggICAoaGV4KQkJVGVjaG5pY2FsIFNvbHV0aW9ucyBDb21wYW55IEx0ZC4KKzAwMjRGOCAgICAgKGJhc2UgMTYpCQlUZWNobmljYWwgU29sdXRpb25zIENvbXBhbnkgTHRkLgorCQkJCUJveCAzMTc1MAorCQkJCVdoaXRlaG9yc2UgWXVrb24gWTFBIDZMMworCQkJCUNBTkFEQQorCiswMC0yNC1GOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI0RjkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRkEgICAoaGV4KQkJSGlsZ2VyIHUuIEtlcm4gR01CSAorMDAyNEZBICAgICAoYmFzZSAxNikJCUhpbGdlciB1LiBLZXJuIEdNQkgKKwkJCQlLYWVmZXJ0YWxlciBTdHJhc3NlIDI1My0yNTUKKwkJCQlNYW5uaGVpbSBCYWRlbi1XdWVydHRlbWJlcmcgNjgxNjcKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LUZCICAgKGhleCkJCVBSSVZBVEUKKzAwMjRGQiAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMjQtRkMgICAoaGV4KQkJUXVvUGluIENvLiwgTHRkLgorMDAyNEZDICAgICAoYmFzZSAxNikJCVF1b1BpbiBDby4sIEx0ZC4KKwkJCQkjMTA5LCBSJkQgQ2VudGVyIGZvciBBZHZhbmNlZCBUZWNobm9sb2d5IDY4IFlhdGFwLWRvbmcgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtIEt5dW5na2ktZG8gNDYzLTgxNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC1GRCAgIChoZXgpCQlQcm9zaWxpZW50IFRlY2hub2xvZ2llcyBBQgorMDAyNEZEICAgICAoYmFzZSAxNikJCVByb3NpbGllbnQgVGVjaG5vbG9naWVzIEFCCisJCQkJxXJzdGHkbmdzduRnZW4gMjUgKDNyZCBmbG9vciksIChCb3ggNDcyMzEpCisJCQkJU3RvY2tob2xtICBTRS0xMDA3NAorCQkJCVNXRURFTgorCiswMC0yNC1GRSAgIChoZXgpCQlBVk0gR21iSAorMDAyNEZFICAgICAoYmFzZSAxNikJCUFWTSBHbWJICisJCQkJQWx0LU1vYWJpdCA5NQorCQkJCUJlcmxpbiAgMTA1NTkKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LUZGICAgKGhleCkJCVFMb2dpYyBDb3Jwb3JhdGlvbgorMDAyNEZGICAgICAoYmFzZSAxNikJCVFMb2dpYyBDb3Jwb3JhdGlvbgorCQkJCTI2NjUwIEFsaXNvIFZpZWpvIFBhcmt3YXkKKwkJCQlBbGlzbyBWaWVqbyBDQSA5MjY1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMDAgICAoaGV4KQkJQXBwbGUsIEluYworMDAyNTAwICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTAxICAgKGhleCkJCUpTQyAiU3VwZXJ0ZWwiCiswMDI1MDEgICAgIChiYXNlIDE2KQkJSlNDICJTdXBlcnRlbCIKKwkJCQkzOEEgUGV0cm9ncmFkc2theWEgZW1iLgorCQkJCVN0LlBldGVyc2J1cmcgIDE5NzEwMQorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yNS0wMiAgIChoZXgpCQlOYXR1cmFsUG9pbnQKKzAwMjUwMiAgICAgKGJhc2UgMTYpCQlOYXR1cmFsUG9pbnQKKwkJCQlQTyBCb3ggMjMxNworCQkJCUNvcnZhbGxpcyBPUiA5NzMzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMDMgICAoaGV4KQkJSUJNIENvcnAKKzAwMjUwMyAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTIwNTEgTWlzc2lvbiBDb2xsZWdlIEJsdmQgCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTA0ICAgKGhleCkJCVZhbGlhbnQgQ29tbXVuaWNhdGlvbnMgTGltaXRlZAorMDAyNTA0ICAgICAoYmFzZSAxNikJCVZhbGlhbnQgQ29tbXVuaWNhdGlvbnMgTGltaXRlZAorCQkJCTcxLTEgU2hpdmFqaSBNYXJnCisJCQkJTmV3IERlbGhpIERlbGhpIDExMDAxNQorCQkJCUlORElBCisKKzAwLTI1LTA1ICAgKGhleCkJCWVrcyBFbmdlbCBHbWJIICYgQ28uIEtHCiswMDI1MDUgICAgIChiYXNlIDE2KQkJZWtzIEVuZ2VsIEdtYkggJiBDby4gS0cKKwkJCQlTY2h1ZXR6ZW5zdHJhc3NlIDIKKwkJCQlXZW5kZW4tSGlsbG1pY2tlIE5SVyA1NzQ4MgorCQkJCUdFUk1BTlkKKworMDAtMjUtMDYgICAoaGV4KQkJQS5JLiBBTlRJVEFDQ0hFR0dJTyBJVEFMSUEgU1JMCiswMDI1MDYgICAgIChiYXNlIDE2KQkJQS5JLiBBTlRJVEFDQ0hFR0dJTyBJVEFMSUEgU1JMCisJCQkJVklDT0xPIERFTExFIERBTUUgNAorCQkJCUJPTE9HTkEgIDQwMTI0CisJCQkJSVRBTFkKKworMDAtMjUtMDcgICAoaGV4KQkJQVNUQUsgSW5jLgorMDAyNTA3ICAgICAoYmFzZSAxNikJCUFTVEFLIEluYy4KKwkJCQkxOTExIEhhcnRvZyBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0wOCAgIChoZXgpCQlNYXF1ZXQgQ2FyZGlvcHVsbW9uYXJ5IEFHCiswMDI1MDggICAgIChiYXNlIDE2KQkJTWFxdWV0IENhcmRpb3B1bG1vbmFyeSBBRworCQkJCUhlY2hpbmdlciBTdHJhc3NlIDM4CisJCQkJSGlycmxpbmdlbiAgNzIxNDUKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTA5ICAgKGhleCkJCVNIQVJFVFJPTklDIEdyb3VwIExURAorMDAyNTA5ICAgICAoYmFzZSAxNikJCVNIQVJFVFJPTklDIEdyb3VwIExURAorCQkJCVNoYUppbmcsQmFvJ2FuIFpvbmUsCisJCQkJU2hlblpoZW4gR3Vhbmdkb25nIDUxODEwNAorCQkJCUNISU5BCisKKzAwLTI1LTBBICAgKGhleCkJCVNlY3VyaXR5IEV4cGVydCBDby4gTHRkCiswMDI1MEEgICAgIChiYXNlIDE2KQkJU2VjdXJpdHkgRXhwZXJ0IENvLiBMdGQKKwkJCQk4Ri0zLCBOby4yLCBKaWFuIDh0aCBSZC4sCisJCQkJSmhvbmdoZSBUYWlwZWkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNS0wQiAgIChoZXgpCQlDRU5UUk9GQUNUT1IgIElOQworMDAyNTBCICAgICAoYmFzZSAxNikJCUNFTlRST0ZBQ1RPUiAgSU5DCisJCQkJUm9hZCBUb3duLCBUb3J0b2xhLCBQLk8uQm94IDMxNjEsCisJCQkJVG9ydG9sYSAgMTk0Mjk1CisJCQkJVklSR0lOIElTTEFORFMsIEJSSVRJU0gKKworMDAtMjUtMEMgICAoaGV4KQkJRW5lcnRyYWMKKzAwMjUwQyAgICAgKGJhc2UgMTYpCQlFbmVydHJhYworCQkJCTk0IFJpdmVyIFJkCisJCQkJU3VpdGUgMTAwCisJCQkJSHVkc29uIE5IIDAzMDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0wRCAgIChoZXgpCQlHWlQgVGVsa29tLVRlbG1vciBzcC4geiBvLm8uCiswMDI1MEQgICAgIChiYXNlIDE2KQkJR1pUIFRlbGtvbS1UZWxtb3Igc3AuIHogby5vLgorCQkJCU1pY2tpZXdpY3phIDUvNworCQkJCUdkYW5zayBwb21vcnNraWUgODAtNDI1CisJCQkJUE9MQU5ECisKKzAwLTI1LTBFICAgKGhleCkJCWd0IGdlcm1hbiB0ZWxlbWF0aWNzIGdtYmgKKzAwMjUwRSAgICAgKGJhc2UgMTYpCQlndCBnZXJtYW4gdGVsZW1hdGljcyBnbWJoCisJCQkJUmFua2VzdHJhc3NlIDI2CisJCQkJQmVybGluICBELTEwNzg5CisJCQkJR0VSTUFOWQorCiswMC0yNS0wRiAgIChoZXgpCQlPbi1SYW1wIFdpcmVsZXNzLCBJbmMuCiswMDI1MEYgICAgIChiYXNlIDE2KQkJT24tUmFtcCBXaXJlbGVzcywgSW5jLgorCQkJCTE2ODg1IFdlc3QgQmVybmFyZG8gRHJpdmUKKwkJCQlTdWl0ZSAyNTUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTEwICAgKGhleCkJCVBpY28tVGVzbGEgTWFnbmV0aWMgVGhlcmFwaWVzCiswMDI1MTAgICAgIChiYXNlIDE2KQkJUGljby1UZXNsYSBNYWduZXRpYyBUaGVyYXBpZXMKKwkJCQk3ODUyIFNvdXRoIEVsYXRpCisJCQkJIzIwMgorCQkJCUxpdHRsZXRvbiBDTyA4MDEyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMTEgICAoaGV4KQkJRUxJVEVHUk9VUCBDT01QVVRFUiBTWVNURU0gQ08uLCBMVEQuCiswMDI1MTEgICAgIChiYXNlIDE2KQkJRUxJVEVHUk9VUCBDT01QVVRFUiBTWVNURU0gQ08uLCBMVEQuCisJCQkJTk8uIDIzOSwgU2VjLiAyLCBUaSBEaW5nIEJsdmQuCisJCQkJVGFpcGVpIFRhaXdhbiAxMTQ5MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtMTIgICAoaGV4KQkJWlRFIENvcnBvcmF0aW9uCiswMDI1MTIgICAgIChiYXNlIDE2KQkJWlRFIENvcnBvcmF0aW9uCisJCQkJMTJGLCBSJkQgQnVpbGRpbmcsIFp0ZSwgSGktVGVjaCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjUtMTMgICAoaGV4KQkJQ1hQIERJR0lUQUwgQlYKKzAwMjUxMyAgICAgKGJhc2UgMTYpCQlDWFAgRElHSVRBTCBCVgorCQkJCURlIFJldWx2ZXIgOTdBCisJCQkJRW5zY2hlZGUgIDc1NDRSVAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTI1LTE0ICAgKGhleCkJCVBDIFdvcnRoIEludCdsIENvLiwgTHRkLgorMDAyNTE0ICAgICAoYmFzZSAxNikJCVBDIFdvcnRoIEludCdsIENvLiwgTHRkLgorCQkJCTE4RiwgTm8uMTAwLCBIc2luLVRhaS1XdSBSZC4sIFNlYy4gMSwKKwkJCQlIc2ktQ2hpaCwgVGFpcGVpIDIyMTAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNS0xNSAgIChoZXgpCQlTRlIKKzAwMjUxNSAgICAgKGJhc2UgMTYpCQlTRlIKKwkJCQk0MiBRdWFpIGR1IHBvaW50IGR1IGpvdXIKKwkJCQlCb3Vsb2duZSBiaWxsYW5jb3VydCAuIDkyNjU5CisJCQkJRlJBTkNFCisKKzAwLTI1LTE2ICAgKGhleCkJCUludGVncmF0ZWQgRGVzaWduIFRvb2xzLCBJbmMuCiswMDI1MTYgICAgIChiYXNlIDE2KQkJSW50ZWdyYXRlZCBEZXNpZ24gVG9vbHMsIEluYy4KKwkJCQkxMjAyIEUgUGFyayBBdmVudWUKKwkJCQlUYWxsYWhhc3NlZSBGTCAzMjMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMTcgICAoaGV4KQkJVmVubnRpcywgTExDCiswMDI1MTcgICAgIChiYXNlIDE2KQkJVmVubnRpcywgTExDCisJCQkJMTEzMDEgSmFtZXMgU3RyZWV0CisJCQkJSG9sbGFuZCBNSSA0OTQyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMTggICAoaGV4KQkJUG93ZXIgUExVUyBDb21tdW5pY2F0aW9ucyBBRworMDAyNTE4ICAgICAoYmFzZSAxNikJCVBvd2VyIFBMVVMgQ29tbXVuaWNhdGlvbnMgQUcKKwkJCQlBbSBFeGVyemllcnBsYXR6IDIKKwkJCQlNYW5uaGVpbSBCYWRlbiBXdWVydHRlbWJlcmcgNjgxNjcKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTE5ICAgKGhleCkJCVZpYWFzIEluYworMDAyNTE5ICAgICAoYmFzZSAxNikJCVZpYWFzIEluYworCQkJCTMxNzUgU291dGggV2luY2hlc3RlciBCbHZkCisJCQkJQ2FtcGJlbGwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTFBICAgKGhleCkJCVBzaWJlciBEYXRhIFN5c3RlbXMgSW5jLgorMDAyNTFBICAgICAoYmFzZSAxNikJCVBzaWJlciBEYXRhIFN5c3RlbXMgSW5jLgorCQkJCTcwNzUtSyBNaXNzaW9uIEdvcmdlIFJkCisJCQkJU2FuIERpZWdvIENBIDkyMTIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0xQiAgIChoZXgpCQlQaGlsaXBzIENhcmVTZXJ2YW50CiswMDI1MUIgICAgIChiYXNlIDE2KQkJUGhpbGlwcyBDYXJlU2VydmFudAorCQkJCUhpZ2ggVGVjaCBDYW1wdXMgMjcKKwkJCQlFaW5kaG92ZW4gTm9vcmQtQnJhYmFudCA1NjU2IEFFCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjUtMUMgICAoaGV4KQkJRURUCiswMDI1MUMgICAgIChiYXNlIDE2KQkJRURUCisJCQkJMTQwMCBTVyBDb21wdG9uCisJCQkJU3VpdGUgMzE1CisJCQkJQmVhdmVydG9uIE9SIDk3MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0xRCAgIChoZXgpCQlEU0EgRW5jb3JlLCBMTEMKKzAwMjUxRCAgICAgKGJhc2UgMTYpCQlEU0EgRW5jb3JlLCBMTEMKKwkJCQk1MCBQb2Nvbm8gUmQKKwkJCQlCcm9va2ZpZWxkIENUIDA2ODA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0xRSAgIChoZXgpCQlST1RFTCBURUNITk9MT0dJRVMKKzAwMjUxRSAgICAgKGJhc2UgMTYpCQlST1RFTCBURUNITk9MT0dJRVMKKwkJCQlDRVZJWkxJREVSRSAxNC5DRCBOTzoyLzE5IEJBTEdBVAorCQkJCUFOS0FSQSAgMDY1MjAKKwkJCQlUVVJLRVkKKworMDAtMjUtMUYgICAoaGV4KQkJWllOVVMgVklTSU9OIElOQy4KKzAwMjUxRiAgICAgKGJhc2UgMTYpCQlaWU5VUyBWSVNJT04gSU5DLgorCQkJCTEtMS03LTFBCisJCQkJU0FHQU1JSEFSQSBLQU5BR0FXQSAyMjktMDAzOQorCQkJCUpBUEFOCisKKzAwLTI1LTIwICAgKGhleCkJCVNNQSBSYWlsd2F5IFRlY2hub2xvZ3kgR21iSAorMDAyNTIwICAgICAoYmFzZSAxNikJCVNNQSBSYWlsd2F5IFRlY2hub2xvZ3kgR21iSAorCQkJCU1pcmFtc3RyLiA4NworCQkJCUthc3NlbCBIZXNzZSAzNDEyMworCQkJCUdFUk1BTlkKKworMDAtMjUtMjEgICAoaGV4KQkJTG9naXRlayBFbGVjdHJvbmljIFN5c3RlbXMsIEluYy4KKzAwMjUyMSAgICAgKGJhc2UgMTYpCQlMb2dpdGVrIEVsZWN0cm9uaWMgU3lzdGVtcywgSW5jLgorCQkJCTU2MjIgRWRnZW1vb3IgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0yMiAgIChoZXgpCQlBU1JvY2sgSW5jb3Jwb3JhdGlvbgorMDAyNTIyICAgICAoYmFzZSAxNikJCUFTUm9jayBJbmNvcnBvcmF0aW9uCisJCQkJMkYuLCBOby4gMzcsIFNlYy4gMiwgSmhvbmd5YW5nIFMuIFJkLiwgQmVpdG91IERpc3RyaWN0LAorCQkJCVRhaXBlaSBUYWl3YW4gMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNS0yMyAgIChoZXgpCQlPQ1AgSW5jLgorMDAyNTIzICAgICAoYmFzZSAxNikJCU9DUCBJbmMuCisJCQkJMTg0OTUgUyBEaXhpZSBId3kgICAgUE1CIDEwNworCQkJCU1pYW1pIEZsb3JpZGEgMzMxNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTI0ICAgKGhleCkJCUxpZ2h0Y29tbSBUZWNobm9sb2d5IENvLiwgTHRkCiswMDI1MjQgICAgIChiYXNlIDE2KQkJTGlnaHRjb21tIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQk5L0YuLEhpLVRlY2ggVmVudHVyZSBQYXJrIFRvd2VyIEEsCisJCQkJVGlhbiBhbiBDeWJlciBQYXJrLEZ1dGlhbgorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0yNS0yNSAgIChoZXgpCQlDVEVSQSBOZXR3b3JrcyBMdGQuCiswMDI1MjUgICAgIChiYXNlIDE2KQkJQ1RFUkEgTmV0d29ya3MgTHRkLgorCQkJCTI0IEltYmVyIFN0LgorCQkJCVBldGFjaC1UaWt2YSAgNDk1MTExCisJCQkJSVNSQUVMCisKKzAwLTI1LTI2ICAgKGhleCkJCUdlbnVpbmUgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAyNTI2ICAgICAoYmFzZSAxNikJCUdlbnVpbmUgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCUtsaW5nZWxuYmVyZyBCbGRnLgorCQkJCTEtMTMtMTIgU2hpbi1Zb2tvaGFtYSBLb3Vob2t1LWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0yNS0yNyAgIChoZXgpCQlCaXRyb2RlIENvcnAuCiswMDI1MjcgICAgIChiYXNlIDE2KQkJQml0cm9kZSBDb3JwLgorCQkJCTE2NDIgTWFudWZhY3R1cmVycyBEci4KKwkJCQlGZW50b24gTU8gNjMwMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTI4ICAgKGhleCkJCURhaWRvIFNpZ25hbCBDby4sIEx0ZC4KKzAwMjUyOCAgICAgKGJhc2UgMTYpCQlEYWlkbyBTaWduYWwgQ28uLCBMdGQuCisJCQkJMi0yMC0yCisJCQkJTmFrYWlrZWdhbWkKKwkJCQlPaHRhLWt1IFRPS1lPIDE0Ni04Njc4CisJCQkJSkFQQU4KKworMDAtMjUtMjkgICAoaGV4KQkJQ09NRUxJVCBHUk9VUCBTLlAuQQorMDAyNTI5ICAgICAoYmFzZSAxNikJCUNPTUVMSVQgR1JPVVAgUy5QLkEKKwkJCQlET04gQVJSSUdPTkkgTi4gNQorCQkJCVNBTiBMT1JFTlpPLCBST1ZFVFRBIEJFUkdBTU8gMjQwMjAKKwkJCQlJVEFMWQorCiswMC0yNS0yQSAgIChoZXgpCQlDaGVuZ2R1IEdlZVlhIFRlY2hub2xvZ3kgQ28uLExURAorMDAyNTJBICAgICAoYmFzZSAxNikJCUNoZW5nZHUgR2VlWWEgVGVjaG5vbG9neSBDby4sTFRECisJCQkJNTAgU2h1eGkgUm9hZCwKKwkJCQlDaGVuZ2R1IFNpQ2h1YW4gNjEwMDkxCisJCQkJQ0hJTkEKKworMDAtMjUtMkIgICAoaGV4KQkJU3RpcmxpbmcgRW5lcmd5IFN5c3RlbXMKKzAwMjUyQiAgICAgKGJhc2UgMTYpCQlTdGlybGluZyBFbmVyZ3kgU3lzdGVtcworCQkJCVNhbmRpYSBOYXRpb25hbCBMYWJzIC0gTlNUVEYKKwkJCQlQTyBCb3ggNTgwMCBNUyAxMTI3CisJCQkJQWxidXF1ZXJxdWUgTk0gODcxODUtMTEyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMkMgICAoaGV4KQkJRW50b3VyYWdlIFN5c3RlbXMsIEluYy4KKzAwMjUyQyAgICAgKGJhc2UgMTYpCQlFbnRvdXJhZ2UgU3lzdGVtcywgSW5jLgorCQkJCTc5MDEgSm9uZXMgQnJhbmNoIERyaXZlCisJCQkJU3VpdGUgNzAwCisJCQkJTWNMZWFuIFZpcmdpbmlhIDIyMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0yRCAgIChoZXgpCQlLaXJ5dW5nIEVsZWN0cm9uaWNzCiswMDI1MkQgICAgIChiYXNlIDE2KQkJS2lyeXVuZyBFbGVjdHJvbmljcworCQkJCUtpcnl1bmcgQmxkZy4gNjg2LTcwLCBTaW5kYWViYW5nLWRvbmcKKwkJCQlEb25namFrLWd1LAorCQkJCVNlb3VsICAxNTYtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LTJFICAgKGhleCkJCUNpc2NvIFNQVlRHCiswMDI1MkUgICAgIChiYXNlIDE2KQkJQ2lzY28gU1BWVEcKKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMkYgICAoaGV4KQkJRW5lcmd5LCBJbmMuCiswMDI1MkYgICAgIChiYXNlIDE2KQkJRW5lcmd5LCBJbmMuCisJCQkJMzI5NyBQYWNpZmljIFN0cmVldAorCQkJCUNoYXJsZXN0b24gU0MgMjk0MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTMwICAgKGhleCkJCUFldGFzIFN5c3RlbXMgSW5jLgorMDAyNTMwICAgICAoYmFzZSAxNikJCUFldGFzIFN5c3RlbXMgSW5jLgorCQkJCTNBMywgTm8uIDEsIExpSHNpbiBSb2FkIEkKKwkJCQlIc2luQ2h1IFRhaXdhbiAzMDA3OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtMzEgICAoaGV4KQkJQ2xvdWQgRW5naW5lcywgSW5jLgorMDAyNTMxICAgICAoYmFzZSAxNikJCUNsb3VkIEVuZ2luZXMsIEluYy4KKwkJCQk4NTcgTW9udGdvbWVyeSBTdHJlZXQKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0zMiAgIChoZXgpCQlEaWdpdGFsIFJlY29yZGVycworMDAyNTMyICAgICAoYmFzZSAxNikJCURpZ2l0YWwgUmVjb3JkZXJzCisJCQkJNDAxOCBQYXRyaW90IERyaXZlCisJCQkJU3VpdGUgMTAwCisJCQkJRHVyaGFtIE5DIDI3NzA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0zMyAgIChoZXgpCQlXSVRURU5TVEVJTiBBRworMDAyNTMzICAgICAoYmFzZSAxNikJCVdJVFRFTlNURUlOIEFHCisJCQkJV2FsdGVyLVdpdHRlbnN0ZWluLVN0ci4gMQorCQkJCUlnZXJzaGVpbSAgOTc5OTkKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTM1ICAgKGhleCkJCU1pbmltYXggR21iSCAmIENvIEtHCiswMDI1MzUgICAgIChiYXNlIDE2KQkJTWluaW1heCBHbWJIICYgQ28gS0cKKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDEwLzEyCisJCQkJQmFkIE9sZGVzbG9lIFNIIDIzODQwCisJCQkJR0VSTUFOWQorCiswMC0yNS0zNiAgIChoZXgpCQlPa2kgRWxlY3RyaWMgSW5kdXN0cnkgQ28uLCBMdGQuCiswMDI1MzYgICAgIChiYXNlIDE2KQkJT2tpIEVsZWN0cmljIEluZHVzdHJ5IENvLiwgTHRkLgorCQkJCTEtMTYtOCBDaHVvdQorCQkJCVdhcmFiaS1zaGkgU2FpdGFtYSAzMzUtODUxMAorCQkJCUpBUEFOCisKKzAwLTI1LTM3ICAgKGhleCkJCVJ1bmNvbSBUZWNobm9sb2dpZXMgTHRkLgorMDAyNTM3ICAgICAoYmFzZSAxNikJCVJ1bmNvbSBUZWNobm9sb2dpZXMgTHRkLgorCQkJCTExIE1vc2hlIExldmkgU3RyLiAxMXRoIEZsci4KKwkJCQlVTUkgQnVpbGRpbmcKKwkJCQlSaXNob24gTGUgWmlvbiAgNzU2NTgKKwkJCQlJU1JBRUwKKworMDAtMjUtMzggICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4sIE1lbW9yeSBEaXZpc2lvbgorMDAyNTM4ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuLCBNZW1vcnkgRGl2aXNpb24KKwkJCQlTYW4gIzE2IEJhbndvbC1Eb25nLCBUYWVhbi1HdQorCQkJCUh3YXN1bmcgQ2l0eSBHeWVvbmdnaSBEbyA0NDUtNzAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LTM5ICAgKGhleCkJCUlmVEEgR21iSAorMDAyNTM5ICAgICAoYmFzZSAxNikJCUlmVEEgR21iSAorCQkJCUluZHVzdHJpZXN0cmFzc2UgMzMKKwkJCQlHcm9lYmVuemVsbCBCYXZhcmlhIDgyMTk0CisJCQkJR0VSTUFOWQorCiswMC0yNS0zQSAgIChoZXgpCQlDRVZBLCBMdGQuCiswMDI1M0EgICAgIChiYXNlIDE2KQkJQ0VWQSwgTHRkLgorCQkJCTIgTWFza2l0IFN0cmVldC4KKwkJCQlQLk8uIEJveCAyMDY4CisJCQkJSGVyemVsaWEgIDQ2MTIwCisJCQkJSVNSQUVMCisKKzAwLTI1LTNCICAgKGhleCkJCWRpbiBEaWV0bWFyIE5vY2tlciBGYWNpbGl0eW1hbmFnZW1lbnQgR21iSAorMDAyNTNCICAgICAoYmFzZSAxNikJCWRpbiBEaWV0bWFyIE5vY2tlciBGYWNpbGl0eW1hbmFnZW1lbnQgR21iSAorCQkJCUtvdHppbmFzdHJhc3NlIDUKKwkJCQlMaW56IFVwcGVyIEF1c3RyaWEgNDAzMAorCQkJCUFVU1RSSUEKKworMDAtMjUtM0MgICAoaGV4KQkJMldpcmUKKzAwMjUzQyAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTNEICAgKGhleCkJCURSUyBDb25zb2xpZGF0ZWQgQ29udHJvbHMKKzAwMjUzRCAgICAgKGJhc2UgMTYpCQlEUlMgQ29uc29saWRhdGVkIENvbnRyb2xzCisJCQkJMjEgU291dGggU3RyZWV0CisJCQkJRGFuYnVyeSBDVCAwNjgxMC04MTQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0zRSAgIChoZXgpCQlTZW5zdXMgTWV0ZXJpbmcgU3lzdGVtcworMDAyNTNFICAgICAoYmFzZSAxNikJCVNlbnN1cyBNZXRlcmluZyBTeXN0ZW1zCisJCQkJOTk0MSBXLiBFbWVyYWxkIFN0cmVldAorCQkJCUJvaXNlIElkYWhvIDgzNzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS00MCAgIChoZXgpCQlRdWFzYXIgVGVjaG5vbG9naWVzLCBJbmMuCiswMDI1NDAgICAgIChiYXNlIDE2KQkJUXVhc2FyIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE3MDEgQmFycmV0dCBMYWtlcyBCb3VsZXZhcmQKKwkJCQlTdWl0ZSAxNjAKKwkJCQlLZW5uZXNhdyBHQSAzMDE0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNDEgICAoaGV4KQkJTWFxdWV0IENyaXRpY2FsIENhcmUgQUIKKzAwMjU0MSAgICAgKGJhc2UgMTYpCQlNYXF1ZXQgQ3JpdGljYWwgQ2FyZSBBQgorCQkJCVL2bnRnZW525GdlbiAyCisJCQkJU29sbmEgIFNFLTE3MSA5NQorCQkJCVNXRURFTgorCiswMC0yNS00MiAgIChoZXgpCQlQaXR0YXNvZnQKKzAwMjU0MiAgICAgKGJhc2UgMTYpCQlQaXR0YXNvZnQKKwkJCQkjOTEzIERhZXJ5dW5nIFRlY2hubyBUb3duIDh0aCA0ODEtMTFnYQorCQkJCUdhc2FuLWRvbmcKKwkJCQlHZXVtY2hlb24tZ3UgU2VvdWwgMTUzLTc3NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS00MyAgIChoZXgpCQlNT05FWVRFQ0gKKzAwMjU0MyAgICAgKGJhc2UgMTYpCQlNT05FWVRFQ0gKKwkJCQlSdWEgR3VpcmF0aW5nYSA5MzEgdW4uIDEwMworCQkJCUNoYWNhcmEgSW5nbGVzYQorCQkJCVNhbyBQYXVsbyBTUCAwNDE0MS0wMDEKKwkJCQlCUkFaSUwKKworMDAtMjUtNDQgICAoaGV4KQkJTG9KYWNrIENvcnBvcmF0aW9uCiswMDI1NDQgICAgIChiYXNlIDE2KQkJTG9KYWNrIENvcnBvcmF0aW9uCisJCQkJNzgwIERlZGhhbSBTdHJlZXQKKwkJCQlNQSAwMjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNDUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNTQ1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTQ2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjU0NiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS00NyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNTQ3ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yNS00OCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNTQ4ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yNS00OSAgIChoZXgpCQlKZW9yaWNoIFRlY2guIENvLixMdGQuCiswMDI1NDkgICAgIChiYXNlIDE2KQkJSmVvcmljaCBUZWNoLiBDby4sTHRkLgorCQkJCTRGLiwgTm8uNiwgTG4uIDcwLCBTZWMuIDIsIEFjYWRlbWlhIFJkLiwgTmFuZ2FuZyBEaXN0cmljdCwgVGFpcGVpIENpdHkgMTE1LCBUYWl3YW4gKFIuTy5DLikKKwkJCQlUYWlwZWkgVGFpd2FuIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtNEEgICAoaGV4KQkJUmluZ0N1YmUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDI1NEEgICAgIChiYXNlIDE2KQkJUmluZ0N1YmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTAwIFdlc3QgRXZlbHluIEF2ZSwgU3VpdGUgMjEwCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNEIgICAoaGV4KQkJQXBwbGUsIEluYworMDAyNTRCICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQljdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTRDICAgKGhleCkJCVZpZGVvbiBDZW50cmFsLCBJbmMuCiswMDI1NEMgICAgIChiYXNlIDE2KQkJVmlkZW9uIENlbnRyYWwsIEluYy4KKwkJCQkyMTcxIFNhbmR5IERyaXZlCisJCQkJU3RhdGUgQ29sbGVnZSBQQSAxNjgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNEQgICAoaGV4KQkJU2luZ2Fwb3JlIFRlY2hub2xvZ2llcyBFbGVjdHJvbmljcyBMaW1pdGVkCiswMDI1NEQgICAgIChiYXNlIDE2KQkJU2luZ2Fwb3JlIFRlY2hub2xvZ2llcyBFbGVjdHJvbmljcyBMaW1pdGVkCisJCQkJMjQgQW5nIE1vIEtpbworCQkJCVN0cmVldCA2NQorCQkJCTU2OTA2MQorCQkJCVNJTkdBUE9SRQorCiswMC0yNS00RSAgIChoZXgpCQlWZXJ0ZXggV2lyZWxlc3MgQ28uLCBMdGQuCiswMDI1NEUgICAgIChiYXNlIDE2KQkJVmVydGV4IFdpcmVsZXNzIENvLiwgTHRkLgorCQkJCTVGLCBTZW9oeWVvbiBQbGF6YSwgMjU0LTUsIFNlb2h5ZW9uLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjMtODI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LTRGICAgKGhleCkJCUVMRVRUUk9MQUIgU3JsCiswMDI1NEYgICAgIChiYXNlIDE2KQkJRUxFVFRST0xBQiBTcmwKKwkJCQlWaWEgRGVsbCdJbmR1c3RyaWEgMjUKKwkJCQlTYW4gVmVuZGVtaWFubyBUcmV2aXNvIDMxMDIwCisJCQkJSVRBTFkKKworMDAtMjUtNTAgICAoaGV4KQkJUml2ZXJiZWQgVGVjaG5vbG9neQorMDAyNTUwICAgICAoYmFzZSAxNikJCVJpdmVyYmVkIFRlY2hub2xvZ3kKKwkJCQkxMjUgQ2FtYnJpZGdlIFBhcmsgRHJpdmUKKwkJCQlDYW1icmlkZ2UgTUEgMDIxNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTUxICAgKGhleCkJCVNFLUVsZWt0cm9uaWMgR21iSAorMDAyNTUxICAgICAoYmFzZSAxNikJCVNFLUVsZWt0cm9uaWMgR21iSAorCQkJCUV5dGhzdHIuIDE2CisJCQkJR29lcHBpbmdlbiAgNzMwMzcKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTUyICAgKGhleCkJCVZYSSBDT1JQT1JBVElPTgorMDAyNTUyICAgICAoYmFzZSAxNikJCVZYSSBDT1JQT1JBVElPTgorCQkJCU9uZSBGcm9udCBTcmVldAorCQkJCVJvbGxpbnNmb3JkIE5IIDAzODY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS01MyAgIChoZXgpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMKKzAwMjU1MyAgICAgKGJhc2UgMTYpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMKKwkJCQlWSUFMRSBTQVJDQSAyMjIKKwkJCQlNSUxBTk8gSVRBTFkgMjAxMjYKKwkJCQlJVEFMWQorCiswMC0yNS01NCAgIChoZXgpCQlQaXhlbDggTmV0d29ya3MKKzAwMjU1NCAgICAgKGJhc2UgMTYpCQlQaXhlbDggTmV0d29ya3MKKwkJCQkyMiBHcmVhdCBPYWtzIEJsdmQsIFN1aXRlIDE1MAorCQkJCVNhbiBKb3NlIENBIDk1MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS01NSAgIChoZXgpCQlWaXNvbmljIFRlY2hub2xvZ2llcyAxOTkzIEx0ZAorMDAyNTU1ICAgICAoYmFzZSAxNikJCVZpc29uaWMgVGVjaG5vbG9naWVzIDE5OTMgTHRkCisJCQkJMjMgSGFiYXJ6ZWwgc3QnCisJCQkJVGVsIC0gQXZpdiAgNjk3MTAKKwkJCQlJU1JBRUwKKworMDAtMjUtNTYgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMjU1NiAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCU5vLjE5MjUsIE5hbmxlIFJvYWQKKwkJCQlTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZQorCQkJCVNoYW5nSGFpICAyMDE2MTMKKwkJCQlDSElOQQorCiswMC0yNS01NyAgIChoZXgpCQlSZXNlYXJjaCBJbiBNb3Rpb24KKzAwMjU1NyAgICAgKGJhc2UgMTYpCQlSZXNlYXJjaCBJbiBNb3Rpb24KKwkJCQk0NDAgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCA1VzkKKwkJCQlDQU5BREEKKworMDAtMjUtNTggICAoaGV4KQkJTVBFRElBCiswMDI1NTggICAgIChiYXNlIDE2KQkJTVBFRElBCisJCQkJU2hpbnlvdW5nIFRvd2VyIDEyRiAyNDYtMgorCQkJCVNlb2h5ZW9uLWRpbmcgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtIEd5ZW9uZ2dpLWRvIDQ2My04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtNTkgICAoaGV4KQkJU3lwaGFuIFRlY2hub2xvZ2llcyBMdGQKKzAwMjU1OSAgICAgKGJhc2UgMTYpCQlTeXBoYW4gVGVjaG5vbG9naWVzIEx0ZAorCQkJCVRoZSBXYXRlcm1pbGwKKwkJCQlCcm91Z2h0b24gSGFsbAorCQkJCVNraXB0b24gTm9ydGggWW9ya3NoaXJlIEJEMjMgM0FHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjUtNUEgICAoaGV4KQkJVGFudGFsdXMgU3lzdGVtcyBDb3JwLgorMDAyNTVBICAgICAoYmFzZSAxNikJCVRhbnRhbHVzIFN5c3RlbXMgQ29ycC4KKwkJCQkzMDEtMzQ4MCBHaWxtb3JlIFdheQorCQkJCUJ1cm5hYnkgQkMgVjVHIDRZMQorCQkJCUNBTkFEQQorCiswMC0yNS01QiAgIChoZXgpCQlDb2FjaENvbW0sIExMQworMDAyNTVCICAgICAoYmFzZSAxNikJCUNvYWNoQ29tbSwgTExDCisJCQkJMjA1IFRlY2hub2xvZ3kgUGFya3dheQorCQkJCUF1YnVybiBBTCAzNjgzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNUMgICAoaGV4KQkJTkVDIENvcnBvcmF0aW9uCiswMDI1NUMgICAgIChiYXNlIDE2KQkJTkVDIENvcnBvcmF0aW9uCisJCQkJMTc1MywgU2hpbW9udW1hYmUsIE5ha2FoYXJhLUt1LCBLYXdhc2FraQorCQkJCUthbmFnYXdhICAyMTEtODY2NgorCQkJCUpBUEFOCisKKzAwLTI1LTVEICAgKGhleCkJCU1vcm5pbmdzdGFyIENvcnBvcmF0aW9uCiswMDI1NUQgICAgIChiYXNlIDE2KQkJTW9ybmluZ3N0YXIgQ29ycG9yYXRpb24KKwkJCQk5MDU1IEd1aWxmb3JkIFJkLgorCQkJCVN1aXRlIEcKKwkJCQlDb2x1bWJpYSBNRCAyMTA0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNUUgICAoaGV4KQkJU2hhbmdoYWkgRGFyZSBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzAwMjU1RSAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBEYXJlIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCTIyRixJbmZvIFRlY2ggQnVpbGRpbmcsIE5vLjE1NTUsS29uZ2ppYW5nIFJvYWQsCisJCQkJU2hhbmdoYWkgMjAwMDkyCisJCQkJQ0hJTkEKKworMDAtMjUtNUYgICAoaGV4KQkJU2VuVGVjIEFHCiswMDI1NUYgICAgIChiYXNlIDE2KQkJU2VuVGVjIEFHCisJCQkJUmluZ3N0cmFzc2UgMzkKKwkJCQlUaGVyd2lsICA0MTA2CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMjUtNjAgICAoaGV4KQkJSWJyaWRnZSBOZXR3b3JrcyAmIENvbW11bmljYXRpb25zIEx0ZC4KKzAwMjU2MCAgICAgKGJhc2UgMTYpCQlJYnJpZGdlIE5ldHdvcmtzICYgQ29tbXVuaWNhdGlvbnMgTHRkLgorCQkJCTI4LEJlZGZvcmQgUm9hZCBFYXN0IEhhbQorCQkJCUxvbmRvbiAgRTYgMk5OCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjUtNjEgICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorMDAyNTYxICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkLgorCQkJCVJvc2V2aWxsZSBDYWxpZm9ybmlhIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS02MiAgIChoZXgpCQlpbnRlcmJybyBDby4gTHRkLgorMDAyNTYyICAgICAoYmFzZSAxNikJCWludGVyYnJvIENvLiBMdGQuCisJCQkJNkYgSm95YW5nIEIvRCwgMTEzIFNhbXNlb25nLURvbmcsIEdhbmduYW0tR3UKKwkJCQlTZW91bCAgMTM1LTA5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS02MyAgIChoZXgpCQlMdXh0ZXJhIEluYworMDAyNTYzICAgICAoYmFzZSAxNikJCUx1eHRlcmEgSW5jCisJCQkJMjMyMC4gQ2FtaW5vIFZpZGEgUm9ibGUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlDYXJsc2JhZCBDQSA5MjAxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNjQgICAoaGV4KQkJRGVsbCBJbmMuCiswMDI1NjQgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS02NSAgIChoZXgpCQlWaXppbWF4IEluYy4KKzAwMjU2NSAgICAgKGJhc2UgMTYpCQlWaXppbWF4IEluYy4KKwkJCQkyMjg0LCBydWUgZGUgbGEgUHJvdmluY2UKKwkJCQlMb25ndWV1aWwgUXXpYmVjIEo0RyAxRzEKKwkJCQlDQU5BREEKKworMDAtMjUtNjYgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswMDI1NjYgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LTY3ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzAwMjU2NyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LTY4ICAgKGhleCkJCVNoZW56aGVuIEh1YXdlaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorMDAyNTY4ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEh1YXdlaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwOAorCQkJCUNISU5BCisKKzAwLTI1LTY5ICAgKGhleCkJCVNBR0VNIENPTU1VTklDQVRJT04KKzAwMjU2OSAgICAgKGJhc2UgMTYpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCisJCQkJMTQgUnVlIFBhdWwgRGF1dGllcgorCQkJCVZlbGl6eSAgNzg0NTcKKwkJCQlGUkFOQ0UKKworMDAtMjUtNkEgICAoaGV4KQkJaW5JVCAtIEluc3RpdHV0IEluZHVzdHJpYWwgSVQKKzAwMjU2QSAgICAgKGJhc2UgMTYpCQlpbklUIC0gSW5zdGl0dXQgSW5kdXN0cmlhbCBJVAorCQkJCUxpZWJpZ3N0cmFzc2UgODcKKwkJCQlMZW1nbyBOb3J0aHJoaW5lLVdlc3RmYWxpYSAzMjY1NworCQkJCUdFUk1BTlkKKworMDAtMjUtNkIgICAoaGV4KQkJQVRFTklYIEUuRS4gcy5yLmwuCiswMDI1NkIgICAgIChiYXNlIDE2KQkJQVRFTklYIEUuRS4gcy5yLmwuCisJCQkJVmlhIFRvcnJpY2VsbGksIDE1L2IKKwkJCQlWRVJPTkEgVlIgMzcxMzUKKwkJCQlJVEFMWQorCiswMC0yNS02QyAgIChoZXgpCQkiQXppbXV0IiBQcm9kdWN0aW9uIEFzc29jaWF0aW9uIEpTQworMDAyNTZDICAgICAoYmFzZSAxNikJCSJBemltdXQiIFByb2R1Y3Rpb24gQXNzb2NpYXRpb24gSlNDCisJCQkJMi1CIEF0YWV2YSBTdHJlZXQKKwkJCQlNYWtoYWNoa2FsYSBEYWdlc3RhbiAzNjcwMDUKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjUtNkQgICAoaGV4KQkJQnJvYWRiYW5kIEZvcnVtCiswMDI1NkQgICAgIChiYXNlIDE2KQkJQnJvYWRiYW5kIEZvcnVtCisJCQkJNDgzNzcgRnJlbW9udCBCb3VsZXZhcmQKKwkJCQlTdWl0ZSAxMTcKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS02RSAgIChoZXgpCQlWYW4gQnJlZGEgQi5WLgorMDAyNTZFICAgICAoYmFzZSAxNikJCVZhbiBCcmVkYSBCLlYuCisJCQkJTWVyY3VyaXVzd2VnIDIxCisJCQkJQnJ1bW1lbiBHZWxkZXJsYW5kIDY5NzEgR1YKKwkJCQlORVRIRVJMQU5EUworCiswMC0yNS02RiAgIChoZXgpCQlEYW50aGVybSBQb3dlcgorMDAyNTZGICAgICAoYmFzZSAxNikJCURhbnRoZXJtIFBvd2VyCisJCQkJTWFyaWVubHlzdHZlaiA2NQorCQkJCVNraXZlICA3ODAwCisJCQkJREVOTUFSSworCiswMC0yNS03MCAgIChoZXgpCQlFYXN0ZXJuIENvbW11bmljYXRpb25zIENvbXBhbnkgTGltaXRlZAorMDAyNTcwICAgICAoYmFzZSAxNikJCUVhc3Rlcm4gQ29tbXVuaWNhdGlvbnMgQ29tcGFueSBMaW1pdGVkCisJCQkJTm8uMzk4IFdlbnNhbiBSb2FkLAorCQkJCU5vLjY2IERvbmd4aW4gUm9hZCxSJkQgYnVpbGRpbmcsQjMxMQorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDAxMworCQkJCUNISU5BCisKKzAwLTI1LTcxICAgKGhleCkJCVpoZWppYW5nIFRpYW5sZSBEaWdpdGFsIEVsZWN0cmljIENvLixMdGQKKzAwMjU3MSAgICAgKGJhc2UgMTYpCQlaaGVqaWFuZyBUaWFubGUgRGlnaXRhbCBFbGVjdHJpYyBDby4sTHRkCisJCQkJTm8uOCBUaWFubGUgUmQsRWNvbm9taWMgRGV2ZWxvcG1lbnQgWm9uZQorCQkJCVNoZW5nemhvdSBaaGVqaWFuZyAzMTI0MDAKKwkJCQlDSElOQQorCiswMC0yNS03MiAgIChoZXgpCQlOZW1vLVEgSW50ZXJuYXRpb25hbCBBQgorMDAyNTcyICAgICAoYmFzZSAxNikJCU5lbW8tUSBJbnRlcm5hdGlvbmFsIEFCCisJCQkJQm94IDIxMAorCQkJCVNvbGxlbnR1bmEgIDE5MTIzCisJCQkJU1dFREVOCisKKzAwLTI1LTczICAgKGhleCkJCVNUIEVsZWN0cm9uaWNzIChJbmZvLVNlY3VyaXR5KSBQdGUgTHRkCiswMDI1NzMgICAgIChiYXNlIDE2KQkJU1QgRWxlY3Ryb25pY3MgKEluZm8tU2VjdXJpdHkpIFB0ZSBMdGQKKwkJCQkxMDAsIEp1cm9uZyBFYXN0IFN0cmVldCAyMSwgU1QgRWxlY3Ryb25pY3MgSnVyb25nIEVhc3QgQmxkZworCQkJCTYwOTYwMgorCQkJCVNJTkdBUE9SRQorCiswMC0yNS03NCAgIChoZXgpCQlLVU5JTUkgTUVESUEgREVWSUNFIENvLiwgTHRkLgorMDAyNTc0ICAgICAoYmFzZSAxNikJCUtVTklNSSBNRURJQSBERVZJQ0UgQ28uLCBMdGQuCisJCQkJMyBLSVRBTUFDSElEQSBZQU1BWkFLSQorCQkJCUtVTklNSSwgREFURSBGVUtVU0hJTUEgOTY5LTE3NzEKKwkJCQlKQVBBTgorCiswMC0yNS03NSAgIChoZXgpCQlGaWJlclBsZXggSW5jCiswMDI1NzUgICAgIChiYXNlIDE2KQkJRmliZXJQbGV4IEluYworCQkJCTEwODQwLTQxMiBHdWlsZm9yZCBSZAorCQkJCUFubmFwb2xpcyBKdW5jdGlvbiBNRCAyMDcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNzYgICAoaGV4KQkJTkVMSSBURUNITk9MT0dJRVMKKzAwMjU3NiAgICAgKGJhc2UgMTYpCQlORUxJIFRFQ0hOT0xPR0lFUworCQkJCVJvdXRlIE5hdGlvbmFsZQorCQkJCUltbWV1YmxlIE9yY2hpcworCQkJCUxFIFJIRVUgIDM1NjUwCisJCQkJRlJBTkNFCisKKzAwLTI1LTc3ICAgKGhleCkJCUQtQk9YIFRlY2hub2xvZ2llcworMDAyNTc3ICAgICAoYmFzZSAxNikJCUQtQk9YIFRlY2hub2xvZ2llcworCQkJCTIxNzIgZGUgbGEgUHJvdmluY2UKKwkJCQlMb25ndWV1aWwgUXVlYmVjIEo0RyAxUjcKKwkJCQlDQU5BREEKKworMDAtMjUtNzggICAoaGV4KQkJSlNDICJDb25jZXJuICJTb3p2ZXpkaWUiCiswMDI1NzggICAgIChiYXNlIDE2KQkJSlNDICJDb25jZXJuICJTb3p2ZXpkaWUiCisJCQkJUGxla2hhbm92c2theWEgc3QuLCAxNAorCQkJCVZvcm9uZXpoICAzOTQwMTgKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjUtNzkgICAoaGV4KQkJSiAmIEYgTGFicworMDAyNTc5ICAgICAoYmFzZSAxNikJCUogJiBGIExhYnMKKwkJCQkxMjE0IFcuIEJvc3RvbiBQb3N0IFJvYWQKKwkJCQlNYW1hcm9uZWNrIE5ZIDEwNTQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS03QSAgIChoZXgpCQlDQU1DTyBQcm9kdWt0aW9ucy0gdW5kIFZlcnRyaWVicy1HbWJIIGb8ciBCZXNjaGFsbHVuZ3MtIHVuZCBCZWxldWNodHVuZ3NhbmxhZ2VuCiswMDI1N0EgICAgIChiYXNlIDE2KQkJQ0FNQ08gUHJvZHVrdGlvbnMtIHVuZCBWZXJ0cmllYnMtR21iSCBm/HIgQmVzY2hhbGx1bmdzLSB1bmQgQmVsZXVjaHR1bmdzYW5sYWdlbgorCQkJCUZpc2NocGlja2UgNQorCQkJCVdlbmRlbiBOUlcgNTc0ODIKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTdCICAgKGhleCkJCVNUSiAgRUxFQ1RST05JQ1MgIFBWVCAgTFRECiswMDI1N0IgICAgIChiYXNlIDE2KQkJU1RKICBFTEVDVFJPTklDUyAgUFZUICBMVEQKKwkJCQlYLTI0IE9LSExBICBJTkRVU1RSSUFMICBBUkVBCisJCQkJUEhBU0UgLSAyCisJCQkJTkVXICBERUxISSBERUxISSAxMTAgMDIwCisJCQkJSU5ESUEKKworMDAtMjUtN0MgICAoaGV4KQkJSHVhY2hlbnRlbCBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLiwgTHRkCiswMDI1N0MgICAgIChiYXNlIDE2KQkJSHVhY2hlbnRlbCBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLiwgTHRkCisJCQkJNzQ3IFhpbll1IFJkLiBIaWdoLVRlY2ggWm9uZQorCQkJCUppbmFuIFNoYW5kb25nIFByb3ZpbmNlIDI1MDEwMQorCQkJCUNISU5BCisKKzAwLTI1LTdEICAgKGhleCkJCVBvaW50UmVkIFRlbGVjb20gUHJpdmF0ZSBMdGQuCiswMDI1N0QgICAgIChiYXNlIDE2KQkJUG9pbnRSZWQgVGVsZWNvbSBQcml2YXRlIEx0ZC4KKwkJCQkxNUYgLSA1LiwgTm8uIDEwNzEsIFpob25nemhlbmcgUm9hZCwKKwkJCQlUYW95dWFuIENpdHkgMzMwICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LTdFICAgKGhleCkJCU5FVyBQT1MgVGVjaG5vbG9neSBMaW1pdGVkCiswMDI1N0UgICAgIChiYXNlIDE2KQkJTkVXIFBPUyBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQk2RlJNLCA2RiwgQ2hpbmEgRWNvbm9taWMgVHJhZGUgQnVpbGRpbmcKKwkJCQk3UmQgWml6aHUsIFpodXppbGluLCBGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworMDAtMjUtN0YgICAoaGV4KQkJQ2FsbFRlY2hTb2x1dGlvbiBDby4sTHRkCiswMDI1N0YgICAgIChiYXNlIDE2KQkJQ2FsbFRlY2hTb2x1dGlvbiBDby4sTHRkCisJCQkJIzEyMyxEYWV3b29wcnVnaW8gQi9ELDM0NC0xLCBTZW9neW8tRG9uZyxNYXBvLWd1CisJCQkJU2VvdWwgIDEyMS04MzcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtODAgICAoaGV4KQkJRXF1aXBzb24gUy5BLgorMDAyNTgwICAgICAoYmFzZSAxNikJCUVxdWlwc29uIFMuQS4KKwkJCQlQb2xpZ29ubyBJbmQuIEy0QWx0ZXLzCisJCQkJQXZkYS4gU2FsZXIsIDE0CisJCQkJU2lsbGEgVmFsZW5jaWEgNDY0NjAKKwkJCQlTUEFJTgorCiswMC0yNS04MSAgIChoZXgpCQl4LXN0YXIgbmV0d29ya3MgSW5jLgorMDAyNTgxICAgICAoYmFzZSAxNikJCXgtc3RhciBuZXR3b3JrcyBJbmMuCisJCQkJMUYsTk8xLTIsQ2h1bmdjaGluZyBTLlJkLlNlYyAzCisJCQkJVGFpcGVpICAxMDA3NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtODIgICAoaGV4KQkJTWFrc2F0IFRlY2hub2xvZ2llcyAoUCkgTHRkCiswMDI1ODIgICAgIChiYXNlIDE2KQkJTWFrc2F0IFRlY2hub2xvZ2llcyAoUCkgTHRkCisJCQkJRC0xMC82LCBPa2hsYSwgUGhhc2UtSQorCQkJCU5ldyBEZWxoaSAgMTEwMDIwCisJCQkJSU5ESUEKKworMDAtMjUtODMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNTgzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTg0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjU4NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS04NSAgIChoZXgpCQlLT0tVWU8gUyZUIENvLiwgTHRkLgorMDAyNTg1ICAgICAoYmFzZSAxNikJCUtPS1VZTyBTJlQgQ28uLCBMdGQuCisJCQkJMS04LTM1CisJCQkJS29uYW4KKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA4LTg3MTAKKwkJCQlKQVBBTgorCiswMC0yNS04NiAgIChoZXgpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMjU4NiAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlCdWlsZGluZyA3LCBTZWNvbmQgUGFydCwgSG9uZ2h1YWxpbmcgSW5kdXN0cmlhbCBab25lCisJCQkJWGlsaSB0b3duLCBOYW5zaGFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTI1LTg3ICAgKGhleCkJCVZpdGFsaXR5LCBJbmMuCiswMDI1ODcgICAgIChiYXNlIDE2KQkJVml0YWxpdHksIEluYy4KKwkJCQlPbmUgQnJvYWR3YXkKKwkJCQkxNHRoIEZsb29yCisJCQkJQ2FtYnJpZGdlIE1BIDAyMTQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS04OCAgIChoZXgpCQlHZW5pZSBJbmR1c3RyaWVzLCBJbmMuCiswMDI1ODggICAgIChiYXNlIDE2KQkJR2VuaWUgSW5kdXN0cmllcywgSW5jLgorCQkJCTE4NjIwIE5FIDY3dGggQ3QKKwkJCQlSZWRtb25kIFdBIDk4MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS04OSAgIChoZXgpCQlIaWxscyBJbmR1c3RyaWVzIExpbWl0ZWQKKzAwMjU4OSAgICAgKGJhc2UgMTYpCQlIaWxscyBJbmR1c3RyaWVzIExpbWl0ZWQKKwkJCQk1IENhbWJyaWEgUm9hZAorCQkJCUtleXNib3JvdWdoCisJCQkJTWVsYm91cm5lIFZJQyAzMTczCisJCQkJQVVTVFJBTElBCisKKzAwLTI1LThBICAgKGhleCkJCVBvbGUvWmVybyBDb3Jwb3JhdGlvbgorMDAyNThBICAgICAoYmFzZSAxNikJCVBvbGUvWmVybyBDb3Jwb3JhdGlvbgorCQkJCTU1MzAgVW5pb24gQ2VudHJlIERyaXZlCisJCQkJV2VzdCBDaGVzdGVyIE9IIDQ1MDY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS04QiAgIChoZXgpCQlNZWxsYW5veCBUZWNobm9sb2dpZXMgTHRkCiswMDI1OEIgICAgIChiYXNlIDE2KQkJTWVsbGFub3ggVGVjaG5vbG9naWVzIEx0ZAorCQkJCTM1MCBPYWttZWFkIFBhcmt3YXkKKwkJCQlTdW5ueXZhbGUsIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS04QyAgIChoZXgpCQlFU1VTIEVMRUtUUk9OSUsgU0FOLiBWRSBESVMuIFRJQy4gTFRELiBTVEkuCiswMDI1OEMgICAgIChiYXNlIDE2KQkJRVNVUyBFTEVLVFJPTklLIFNBTi4gVkUgRElTLiBUSUMuIExURC4gU1RJLgorCQkJCUVTRU5TRUhJUiBNQUhBTExFU0kgS1VSS0NVTEVSIENBRERFU0kKKwkJCQlTQUZJUiBTT0tBSyBOTzoxMS8xIERVRFVMTFUgVU1SQU5JWUUKKwkJCQlJU1RBTkJVTCAgMzQ3NzYKKwkJCQlUVVJLRVkKKworMDAtMjUtOEQgICAoaGV4KQkJSGFpZXIKKzAwMjU4RCAgICAgKGJhc2UgMTYpCQlIYWllcgorCQkJCU5vLjEsSGFpZXIgUm9hZAorCQkJCVFpbmdkYW8gU2hhbmRvbmcgMjY2MTAxCisJCQkJQ0hJTkEKKworMDAtMjUtOEUgICAoaGV4KQkJVGhlIFdlYXRoZXIgQ2hhbm5lbAorMDAyNThFICAgICAoYmFzZSAxNikJCVRoZSBXZWF0aGVyIENoYW5uZWwKKwkJCQlNYWlsIFN0b3AgNTAwCisJCQkJMzAwIEludGVyc3RhdGUgTm9ydGggUGt3eQorCQkJCUF0bGFudGEgR0EgMzAzMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LThGICAgKGhleCkJCVRyaWRlbnQgTWljcm9zeXN0ZW1zLCBJbmMuCiswMDI1OEYgICAgIChiYXNlIDE2KQkJVHJpZGVudCBNaWNyb3N5c3RlbXMsIEluYy4KKwkJCQkzNDA4IEdhcnJldHQgRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtOTAgICAoaGV4KQkJU3VwZXIgTWljcm8gQ29tcHV0ZXIsIEluYy4KKzAwMjU5MCAgICAgKGJhc2UgMTYpCQlTdXBlciBNaWNybyBDb21wdXRlciwgSW5jLgorCQkJCTk4MCBSb2NrIEF2ZW51ZQorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTkxICAgKGhleCkJCU5FWFRFSywgSW5jLgorMDAyNTkxICAgICAoYmFzZSAxNikJCU5FWFRFSywgSW5jLgorCQkJCTQxMCBEb3VnbGFzcyBTdHJlZXQKKwkJCQlSZWFkaW5nIFBBIDE5NjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS05MiAgIChoZXgpCQlHdWFuZ3pob3UgU2hpcnVpIEVsZWN0cm9uaWMgQ28uLCBMdGQKKzAwMjU5MiAgICAgKGJhc2UgMTYpCQlHdWFuZ3pob3UgU2hpcnVpIEVsZWN0cm9uaWMgQ28uLCBMdGQKKwkJCQkzMDFELCBOby45LCBDYWlwaW4gUm9hZCwKKwkJCQlHdWFuZ3pob3UgU2NpZW5jZSBQYXJrCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2NjMKKwkJCQlDSElOQQorCiswMC0yNS05MyAgIChoZXgpCQlEYXROZXQgSW5mb3JtYXRpa2FpIEtmdC4KKzAwMjU5MyAgICAgKGJhc2UgMTYpCQlEYXROZXQgSW5mb3JtYXRpa2FpIEtmdC4KKwkJCQlI6XR2ZXrpciB1LiA1LgorCQkJCVN6aWdldHN6ZW50bWlrbPNzIFBlc3QgbWVneWUgMjMxMAorCQkJCUhVTkdBUlkKKworMDAtMjUtOTQgICAoaGV4KQkJRXVyb2Rlc2lnbiBCRyBMVEQKKzAwMjU5NCAgICAgKGJhc2UgMTYpCQlFdXJvZGVzaWduIEJHIExURAorCQkJCTE1LTE3IFRpbnRpYXZhIFN0ci4sCisJCQkJU29maWEgIDExMTMKKwkJCQlCVUxHQVJJQQorCiswMC0yNS05NSAgIChoZXgpCQlOb3J0aHdlc3QgU2lnbmFsIFN1cHBseSwgSW5jCiswMDI1OTUgICAgIChiYXNlIDE2KQkJTm9ydGh3ZXN0IFNpZ25hbCBTdXBwbHksIEluYworCQkJCTEyOTY1IFNXIEhlcm1hbiBSZAorCQkJCVR1YWxhdGluIE9SIDk3MDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS05NiAgIChoZXgpCQlHSUdBVklTSU9OIHNybAorMDAyNTk2ICAgICAoYmFzZSAxNikJCUdJR0FWSVNJT04gc3JsCisJCQkJVmlhIEZpZ2luaSwgMTYKKwkJCQlNdWdnafIgTWlsYW5vIDIwMDUzCisJCQkJSVRBTFkKKworMDAtMjUtOTcgICAoaGV4KQkJS2Fsa2kgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMKKzAwMjU5NyAgICAgKGJhc2UgMTYpCQlLYWxraSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcworCQkJCSMxNDcsMm5kIEZsb29yLCBBbmFudGFQdXNocGEgQnVpbGRpbmcsCisJCQkJNXRoIE1haW4gUm9hZCw3dGggU2VjdG9yLEhTUiBMYXlvdXQKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MDAzNAorCQkJCUlORElBCisKKzAwLTI1LTk4ICAgKGhleCkJCVpob25nIFNoYW4gQ2l0eSBMaXRhaSBFbGVjdHJvbmljIEluZHVzdHJpYWwgQ28uIEx0ZAorMDAyNTk4ICAgICAoYmFzZSAxNikJCVpob25nIFNoYW4gQ2l0eSBMaXRhaSBFbGVjdHJvbmljIEluZHVzdHJpYWwgQ28uIEx0ZAorCQkJCU5vLjMgSW5kdXN0cmlhbCBEaXN0cmljdCwgV3VndWlzaGFuLCBDaGVuZyBndWkgUm9hZAorCQkJCVpob25nIHNoYW4gQ2l0eSBHdWFuZyBkb25nIFByb3ZpbmNlIDUyODQ1OAorCQkJCUNISU5BCisKKzAwLTI1LTk5ICAgKGhleCkJCUhlZG9uIGUuZC4gQi5WLgorMDAyNTk5ICAgICAoYmFzZSAxNikJCUhlZG9uIGUuZC4gQi5WLgorCQkJCUVsZWt0cm9uaWNhd2VnIDE1CisJCQkJRGVsZnQgWnVpZCBIb2xsYW5kIDI2MjggWEcKKwkJCQlORVRIRVJMQU5EUworCiswMC0yNS05QSAgIChoZXgpCQlDRVN0cm9uaWNzIEdtYkgKKzAwMjU5QSAgICAgKGJhc2UgMTYpCQlDRVN0cm9uaWNzIEdtYkgKKwkJCQlGcmllZHJpY2hzdHIuIDI0MworCQkJCVZlbGJlcnQgIDQyNTUxCisJCQkJR0VSTUFOWQorCiswMC0yNS05QiAgIChoZXgpCQlCZWlqaW5nIFBLVU5JVFkgTWljcm9zeXN0ZW1zIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMjU5QiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFBLVU5JVFkgTWljcm9zeXN0ZW1zIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQkxMXRoIEZsb29yLCBSZXNvdXJjZSBQbGF6YSwgTm8uMTUxIE5vcnRoIFpob25nZ3VhbmN1biBTdHJlZXQKKwkJCQlIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgwCisJCQkJQ0hJTkEKKworMDAtMjUtOUMgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCiswMDI1OUMgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS05RCAgIChoZXgpCQlQUklWQVRFCiswMDI1OUQgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTI1LTlFICAgKGhleCkJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDI1OUUgICAgIChiYXNlIDE2KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlCMS03LEh1YXdlaSBCYXNlLEJhbnRpYW4sIExvbmdnYW5nIERpc3RyaWN0LFNoZW5aaGVuLEd1YW5nRG9uZyxDSElOQQorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCiswMC0yNS05RiAgIChoZXgpCQlUZWNobm9EaWdpdGFsIFRlY2hub2xvZ2llcyBHbWJICiswMDI1OUYgICAgIChiYXNlIDE2KQkJVGVjaG5vRGlnaXRhbCBUZWNobm9sb2dpZXMgR21iSAorCQkJCUhhZXNzbGVyc3RyLiA4CisJCQkJRXJmdXJ0IFRodXJpbmdpYSA5OTA5NgorCQkJCUdFUk1BTlkKKworMDAtMjUtQTAgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDI1QTAgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMjUtQTEgICAoaGV4KQkJRW5hbGFzeXMKKzAwMjVBMSAgICAgKGJhc2UgMTYpCQlFbmFsYXN5cworCQkJCTI1MCBBdmVuaWRhIENhbXBpbGxvCisJCQkJQ2FsZXhpY28gQ2FsaWZvcm5pYSA5MjIzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQTIgICAoaGV4KQkJQWx0YSBEZWZpbmljaW9uIExJTkNFTyBTLkwuCiswMDI1QTIgICAgIChiYXNlIDE2KQkJQWx0YSBEZWZpbmljaW9uIExJTkNFTyBTLkwuCisJCQkJTWFyaWEgZGUgTHVuYSAxMSwgbmF2ZSA0CisJCQkJWmFyYWdvemEgIEVzLTUwMDE4CisJCQkJU1BBSU4KKworMDAtMjUtQTMgICAoaGV4KQkJVHJpbWF4IFdpcmVsZXNzLCBJbmMuCiswMDI1QTMgICAgIChiYXNlIDE2KQkJVHJpbWF4IFdpcmVsZXNzLCBJbmMuCisJCQkJMjY3NSBTIEhvcnNlc2hvZSBEcgorCQkJCVN1aXRlIDQwMQorCQkJCU5hcGxlcyBGTCAzNDEwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQTQgICAoaGV4KQkJRXVyb0Rlc2lnbiBlbWJlZGRlZCB0ZWNobm9sb2dpZXMgR21iSAorMDAyNUE0ICAgICAoYmFzZSAxNikJCUV1cm9EZXNpZ24gZW1iZWRkZWQgdGVjaG5vbG9naWVzIEdtYkgKKwkJCQlXYWxkc3RyYd9lIDRBCisJCQkJS2lyY2hkb3JmIGEuZC4gQW1wZXIgQmF5ZXJuIDg1NDE0CisJCQkJR0VSTUFOWQorCiswMC0yNS1BNSAgIChoZXgpCQlXYWxudXQgTWVkaWEgTmV0d29yaworMDAyNUE1ICAgICAoYmFzZSAxNikJCVdhbG51dCBNZWRpYSBOZXR3b3JrCisJCQkJNDQwIE4gV29sZmUgUmQKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUE2ICAgKGhleCkJCUNlbnRyYWwgTmV0d29yayBTb2x1dGlvbiBDby4sIEx0ZC4KKzAwMjVBNiAgICAgKGJhc2UgMTYpCQlDZW50cmFsIE5ldHdvcmsgU29sdXRpb24gQ28uLCBMdGQuCisJCQkJNTg0LTEsIFBhamFuZy1Eb25nLCBKYW5nQW4tR3UKKwkJCQlTdXdvbi1TaSwgS3l1bmdnaS1EbyA0NDAtODU0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LUE3ICAgKGhleCkJCUNvbXZlcmdlLCBJbmMuCiswMDI1QTcgICAgIChiYXNlIDE2KQkJQ29tdmVyZ2UsIEluYy4KKwkJCQk1MzkwIFRyaWFuZ2xlIFBhcmt3YXkKKwkJCQlTdWl0ZSAzMDAKKwkJCQlOb3Jjcm9zcyBHQSAzMDA5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQTggICAoaGV4KQkJS29udHJvbiAoQmVpSmluZykgVGVjaG5vbG9neSBDby4sTHRkCiswMDI1QTggICAgIChiYXNlIDE2KQkJS29udHJvbiAoQmVpSmluZykgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJMTcgQnVpbGRpbmcsIEJsb2NrICMxLEFCUC4gIDE4OCBXZXN0ZXJuIFNvdXRoIDR0aCBSaW5nIFJvYWQKKwkJCQlCZWlKaW5nICAxMDAwNzAKKwkJCQlDSElOQQorCiswMC0yNS1BOSAgIChoZXgpCQlTaGFuZ2hhaSBFbWJlZHdheSBJbmZvcm1hdGlvbiBUZWNobm9sb2dpZXMgQ28uLEx0ZAorMDAyNUE5ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEVtYmVkd2F5IEluZm9ybWF0aW9uIFRlY2hub2xvZ2llcyBDby4sTHRkCisJCQkJMkYsQnVpbGRpbmcgOSxMdWppYXp1aSBTb2Z0d2FyZSBQYXJrLCBOby4yMCxMYW5lIDkxLEUnU2hhbiBSb2FkCisJCQkJU2hhbmdoYWkgIDIwMDEyNworCQkJCUNISU5BCisKKzAwLTI1LUFBICAgKGhleCkJCUJlaWppbmcgU291bCBUZWNobm9sb2d5IENvLixMdGQuCiswMDI1QUEgICAgIChiYXNlIDE2KQkJQmVpamluZyBTb3VsIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQlSb29tIDYwNixYaW56aGVuZyBPZmZpY2UgQnVpbGRpbmcKKwkJCQlOby4xIENoYW5nd2EgTWlkZGxlIFN0cmVldCxIYWlkaWFuIERpc3RyaWN0LgorCQkJCUJFSUpJTkcgIDEwMDA4OQorCQkJCUNISU5BCisKKzAwLTI1LUFCICAgKGhleCkJCUFJTyBMQ0QgUEMgQlUgLyBUUFYKKzAwMjVBQiAgICAgKGJhc2UgMTYpCQlBSU8gTENEIFBDIEJVIC8gVFBWCisJCQkJMTBGLiwgTm8uLCAyMzAsIExpYW5jaGVuZyBSZC4KKwkJCQlaaG9uZ2hlIENpdHkgVGFpcGVpIFRhaXdhbiAyMzU1MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtQUMgICAoaGV4KQkJSS1UZWNoIGNvcnBvcmF0aW9uCiswMDI1QUMgICAgIChiYXNlIDE2KQkJSS1UZWNoIGNvcnBvcmF0aW9uCisJCQkJMS0xNSBTaGluLW9nYXdhIG1hY2hpCisJCQkJU2hpbmp5dWt1LWt1IFRva3lvIDE2Mi0wODE0CisJCQkJSkFQQU4KKworMDAtMjUtQUQgICAoaGV4KQkJTWFudWZhY3R1cmluZyBSZXNvdXJjZXMgSW50ZXJuYXRpb25hbAorMDAyNUFEICAgICAoYmFzZSAxNikJCU1hbnVmYWN0dXJpbmcgUmVzb3VyY2VzIEludGVybmF0aW9uYWwKKwkJCQkxNjAwIFVuaW9uIEhpbGwgUm9hZAorCQkJCUFscGhhcmV0dGEgR0EgMzAwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUFFICAgKGhleCkJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorMDAyNUFFICAgICAoYmFzZSAxNikJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorCQkJCU9uZSBNaWNyb3NvZnQgV2F5CisJCQkJUmVkbW9uZCBXYXNoaW5ndG9uIDk4MDUyLTYzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUFGICAgKGhleCkJCUNPTUZJTEUgVGVjaG5vbG9neQorMDAyNUFGICAgICAoYmFzZSAxNikJCUNPTUZJTEUgVGVjaG5vbG9neQorCQkJCUd1cm8gNSBkb25nLCBHdXJvLWd1CisJCQkJMTA0LTUKKwkJCQlTZW91bCAgMTUyLTg0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS1CMCAgIChoZXgpCQlTY2htYXJ0eiBJbmMKKzAwMjVCMCAgICAgKGJhc2UgMTYpCQlTY2htYXJ0eiBJbmMKKwkJCQkyMzA3IFZhbGVyaWFuIFRybAorCQkJCVJvdW5kIFJvY2sgVFggNzg2NjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUIxICAgKGhleCkJCU1heWEtQ3JlYXRpb24gQ29ycG9yYXRpb24KKzAwMjVCMSAgICAgKGJhc2UgMTYpCQlNYXlhLUNyZWF0aW9uIENvcnBvcmF0aW9uCisJCQkJM0YsIEJ1aWxkaW5nIE0tMTAsIENlbnRyZSBvZCBIaS1UZWNoIEluZC4gRGlzdC4KKwkJCQlTaGVuemhlbiAgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjUtQjIgICAoaGV4KQkJTEZLLUxlbmtmbHVna/ZycGVyc3lzdGVtZSBHbWJICiswMDI1QjIgICAgIChiYXNlIDE2KQkJTEZLLUxlbmtmbHVna/ZycGVyc3lzdGVtZSBHbWJICisJCQkJTGFuZHNodXRlciBTdHJh32UgIDI2CisJCQkJVW50ZXJzY2hsZWnfaGVpbSBCYXZhcmlhIDg1NzE2CisJCQkJR0VSTUFOWQorCiswMC0yNS1CMyAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMjVCMyAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTVMgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUI0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjVCNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1CNSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI1QjUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQjYgICAoaGV4KQkJVGVsZWNvbSBGTQorMDAyNUI2ICAgICAoYmFzZSAxNikJCVRlbGVjb20gRk0KKwkJCQk4OTUgUGx5bW91dGggUm9hZAorCQkJCVNsb3VnaCBCZXJrcyBTTDEgNExQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjUtQjcgICAoaGV4KQkJQ29zdGFyICBlbGVjdHJvbmljcywgaW5jLiwKKzAwMjVCNyAgICAgKGJhc2UgMTYpCQlDb3N0YXIgIGVsZWN0cm9uaWNzLCBpbmMuLAorCQkJCTNmbCwtMSBubyAxMyxsYW5lIDEyMCxuZWktaHUgcm9hZCBzZWMuMSwKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtQjggICAoaGV4KQkJQWdpbGUgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMjVCOCAgICAgKGJhc2UgMTYpCQlBZ2lsZSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTEyNDI3IFJlbndpY2sgRHIKKwkJCQlSYW5jaG8gQ3VjYW1vbmdhIENhbGlmb3JuaWEgOTE3MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUI5ICAgKGhleCkJCUFnaWxpbmsgU3lzdGVtcyBDb3JwLgorMDAyNUI5ICAgICAoYmFzZSAxNikJCUFnaWxpbmsgU3lzdGVtcyBDb3JwLgorCQkJCSMzMDAtMTI3NSBXZXN0IDZ0aCBBdmUKKwkJCQlWYW5jb3V2ZXIgQkMgVjZIIDFBNgorCQkJCUNBTkFEQQorCiswMC0yNS1CQSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudCBJUEQKKzAwMjVCQSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudCBJUEQKKwkJCQk3MDEgRS4gTWlkZGxlZmllbGQgUmQuCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQkIgICAoaGV4KQkJSU5ORVJJTlQgQ28uLCBMdGQuCiswMDI1QkIgICAgIChiYXNlIDE2KQkJSU5ORVJJTlQgQ28uLCBMdGQuCisJCQkJRG9uZ3lvdW5nIENlbnRyYWxUb3dlciAjMjAyLCBHZXVtanVuZy1kb25nLAorCQkJCUd1bnBvLXNpLEt5dW5nZ2ktZG8sNDM1LTA1MCBTb3V0aCBLT1JFQS4KKwkJCQlHdW5wby1zaSBLeXVuZ2dpLWRvIDQzMDA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS1CQyAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDI1QkMgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQkQgICAoaGV4KQkJSXRhbGRhdGEgSW5nZWduZXJpYSBkZWxsJ0lkZWEgUy5wLkEuCiswMDI1QkQgICAgIChiYXNlIDE2KQkJSXRhbGRhdGEgSW5nZWduZXJpYSBkZWxsJ0lkZWEgUy5wLkEuCisJCQkJdmlhbGUgRXJvaSBkaSBDZWZhbG9uaWEgMTIzCisJCQkJUm9tYSAgMDAxMjgKKwkJCQlJVEFMWQorCiswMC0yNS1CRSAgIChoZXgpCQlUZWt0cmFwIFN5c3RlbXMgSW5jLgorMDAyNUJFICAgICAoYmFzZSAxNikJCVRla3RyYXAgU3lzdGVtcyBJbmMuCisJCQkJMTUgQnV0ZWF1IFN0LgorCQkJCVN1aXRlIDIzMC05CisJCQkJR2F0aW5lYXUgUXVlYmVjIEo4WiAxVjQKKwkJCQlDQU5BREEKKworMDAtMjUtQkYgICAoaGV4KQkJV2lyZWxlc3MgQ2FibGVzIEluYy4KKzAwMjVCRiAgICAgKGJhc2UgMTYpCQlXaXJlbGVzcyBDYWJsZXMgSW5jLgorCQkJCTI4ODAgWmFua2VyIFJkLCBTdGUgMjAzCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUMwICAgKGhleCkJCVppbGxpb25UViBDb3Jwb3JhdGlvbgorMDAyNUMwICAgICAoYmFzZSAxNikJCVppbGxpb25UViBDb3Jwb3JhdGlvbgorCQkJCTExNzAgS2lmZXIgUm9hZAorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQzEgICAoaGV4KQkJTmF3b28gS29yZWEgQ29ycC4KKzAwMjVDMSAgICAgKGJhc2UgMTYpCQlOYXdvbyBLb3JlYSBDb3JwLgorCQkJCTRGbC4sIEhhbndvbiBCbGRnLiwgNi0xLCBTdW5hZS1kb25nLCBCdW5kYW5nLWd1LAorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2My04MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtQzIgICAoaGV4KQkJUmluZ0JlbGwgQ28uLEx0ZC4KKzAwMjVDMiAgICAgKGJhc2UgMTYpCQlSaW5nQmVsbCBDby4sTHRkLgorCQkJCTEwNTg2IEtpbmdHZW9yZ2UgSHd5CisJCQkJU3VycmV5IEIuQyBWM1QgMlgzCisJCQkJQ0FOQURBCisKKzAwLTI1LUMzICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAyNUMzICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCUNBUlJFVEVSQSBCQVNFIEFFUkVBICMgNTg1MAorCQkJCVphcG9wYW4gSmFsaXNjbyA0NDEzMAorCQkJCU1FWElDTworCiswMC0yNS1DNCAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzAwMjVDNCAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1DNSAgIChoZXgpCQlTdGFyIExpbmsgQ29tbXVuaWNhdGlvbiBQdnQuIEx0ZC4KKzAwMjVDNSAgICAgKGJhc2UgMTYpCQlTdGFyIExpbmsgQ29tbXVuaWNhdGlvbiBQdnQuIEx0ZC4KKwkJCQlIUjExNC82ICYgSHIxMzIvNiwgUHVscHJlaGxhZHB1ciwKKwkJCQlTdXJhaiBrdW5kIFJvYWQsIE5lYXIgQmFkYXJwdXIsCisJCQkJTmV3IERlbGhpICAxMTAwNDQKKwkJCQlJTkRJQQorCiswMC0yNS1DNiAgIChoZXgpCQlrYXNlcmNvcnAsIGx0ZAorMDAyNUM2ICAgICAoYmFzZSAxNikJCWthc2VyY29ycCwgbHRkCisJCQkJU291dGggMjAsR2FvYnUgUm9hZCxHYW9idSBUb3duCisJCQkJRG9uZ3dhbiBHdWFuZ2RvbmcgNTIzMDAwCisJCQkJQ0hJTkEKKworMDAtMjUtQzcgICAoaGV4KQkJYWx0ZWsgQ29ycG9yYXRpb24KKzAwMjVDNyAgICAgKGJhc2UgMTYpCQlhbHRlayBDb3Jwb3JhdGlvbgorCQkJCTNGLCBOby4gMTAsIExpLUhzaW4gUm9hZCwgU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNS1DOCAgIChoZXgpCQlTLUFjY2VzcyBHbWJICiswMDI1QzggICAgIChiYXNlIDE2KQkJUy1BY2Nlc3MgR21iSAorCQkJCU9iZXJoYXVzZW5zdHJhc3NlIDQ3CisJCQkJV2V0dHN3aWwgYS9BIFp1ZXJpY2ggODkwNworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTI1LUM5ICAgKGhleCkJCVNIRU5aSEVOIEhVQVBVIERJR0lUQUwgQ08uLCBMVEQKKzAwMjVDOSAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBIVUFQVSBESUdJVEFMIENPLiwgTFRECisJCQkJRnV0aWFuIERpc3RyaWN0LENoZWdvbmdtaWFvLFRpYW5BbiBDeWJlcnBhcmsKKwkJCQkxNy9GIEVhc3QsSGlnaC1UZWNoIFBsYXphLCBQaGFzZSCi8gorCQkJCVNoZW5aaGVuIEd1YW5nZG9uZyBQcm92aW5jZSA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0yNS1DQSAgIChoZXgpCQlMUyBSZXNlYXJjaCwgTExDCiswMDI1Q0EgICAgIChiYXNlIDE2KQkJTFMgUmVzZWFyY2gsIExMQworCQkJCVc2NiBOMjIwIENvbW1lcmNlIENvdXJ0CisJCQkJQ2VkYXJidXJnIFdJIDUzMDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1DQiAgIChoZXgpCQlSZWluZXIgU0NUCiswMDI1Q0IgICAgIChiYXNlIDE2KQkJUmVpbmVyIFNDVAorCQkJCVJlaW5lciBLYXJ0ZW5nZXLkdGUgR21iSCAmIENvLiBLRy4KKwkJCQlHb2V0aGVzdHIuIDE0CisJCQkJRnVydHdhbmdlbiAgNzgxMjAKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LUNDICAgKGhleCkJCU1vYmlsZSBDb21tdW5pY2F0aW9ucyBLb3JlYSBJbmNvcnBvcmF0ZWQKKzAwMjVDQyAgICAgKGJhc2UgMTYpCQlNb2JpbGUgQ29tbXVuaWNhdGlvbnMgS29yZWEgSW5jb3Jwb3JhdGVkCisJCQkJMTAxMS0xMDEyLCBTdXdvbiBIaWdoIFZlbnR1cmUgVmFsbGV5LAorCQkJCTk1OCBHb3NhZWstZG9uZywgR3dvbnNlb24tZ3UsCisJCQkJU3V3b24tc2ksIEd5ZW9uZ2dpLWRvLCA0NDEtMzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LUNEICAgKGhleCkJCVNreWxhbmUgT3B0aWNzCiswMDI1Q0QgICAgIChiYXNlIDE2KQkJU2t5bGFuZSBPcHRpY3MKKwkJCQlSdWUgZCdBcmxvbiwgNgorCQkJCVdpbmRob2YgIDgzOTkKKwkJCQlMVVhFTUJPVVJHCisKKzAwLTI1LUNFICAgKGhleCkJCUlubmVyU3BhY2UKKzAwMjVDRSAgICAgKGJhc2UgMTYpCQlJbm5lclNwYWNlCisJCQkJUE8gQm94IDIxODYKKwkJCQlHcmFuZCBSYXBpZHMgTUkgNDk1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUNGICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDI1Q0YgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTI1LUQwICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDI1RDAgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQkgQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yNS1EMSAgIChoZXgpCQlFYXN0ZWNoIEVsZWN0cm9uaWNzIChUYWl3YW4pIEluYy4KKzAwMjVEMSAgICAgKGJhc2UgMTYpCQlFYXN0ZWNoIEVsZWN0cm9uaWNzIChUYWl3YW4pIEluYy4KKwkJCQkxM0YsIE5vLiA5OSwgU2VjLiAxLCBOYW5rYW4gUm9hZCwgTHVjaHUgU2hpYW5nCisJCQkJVGFveXVhbiBIc2llbiAzMzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LUQyICAgKGhleCkJCUlucGVnVmlzaW9uIENvLiwgTHRkCiswMDI1RDIgICAgIChiYXNlIDE2KQkJSW5wZWdWaXNpb24gQ28uLCBMdGQKKwkJCQkyMjYtMywgQnVnb2stZG9uZywgR2V1bWplb25nLWd1LAorCQkJCUJ1c2FuICA2MDktMzIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LUQzICAgKGhleCkJCUF6dXJlV2F2ZSBUZWNobm9sb2dpZXMsIEluYworMDAyNUQzICAgICAoYmFzZSAxNikJCUF6dXJlV2F2ZSBUZWNobm9sb2dpZXMsIEluYworCQkJCThGIC4sIE5vLjk0LCBCYW96aG9uZyBSZC4KKwkJCQlYaW5kaWFuIENpdHkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtRDQgICAoaGV4KQkJRm9ydHJlc3MgVGVjaG5vbG9naWVzCiswMDI1RDQgICAgIChiYXNlIDE2KQkJRm9ydHJlc3MgVGVjaG5vbG9naWVzCisJCQkJMiBUZWNobm9sb2d5IFBhcmsgRHIKKwkJCQlXZXN0Zm9yZCBNQSAwMTg4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtRDUgICAoaGV4KQkJUm9ib25pY2EgKFB0eSkgTHRkCiswMDI1RDUgICAgIChiYXNlIDE2KQkJUm9ib25pY2EgKFB0eSkgTHRkCisJCQkJNDEgUGFyayBBdmVudWUgTm9ydGgKKwkJCQlIaWdod2F5IEJ1c2luZXNzIFBhcmsKKwkJCQlDZW50dXJpb24gR2F1dGVuZyAwMDQ2CisJCQkJU09VVEggQUZSSUNBCisKKzAwLTI1LUQ2ICAgKGhleCkJCVRoZSBLcm9nZXIgQ28uCiswMDI1RDYgICAgIChiYXNlIDE2KQkJVGhlIEtyb2dlciBDby4KKwkJCQkxMTQ1MCBHcm9vbXMgUm9hZAorCQkJCUJsdWUgQXNoIE9IIDQ1MjQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1ENyAgIChoZXgpCQlDRURPCiswMDI1RDcgICAgIChiYXNlIDE2KQkJQ0VETworCQkJCVZpZGVuc2thIDEyNworCQkJCUJSTk8gIDYxOTAwCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMjUtRDggICAoaGV4KQkJS09SRUEgTUFJTlRFTkFOQ0UKKzAwMjVEOCAgICAgKGJhc2UgMTYpCQlLT1JFQSBNQUlOVEVOQU5DRQorCQkJCTNGIEhBRUxJTSBCVUlESU5HIDEwMy03LCBHVVJPLTVET05HCisJCQkJR1VSTy1HVSwKKwkJCQlTRU9VTCAgMTUyLTg0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS1EOSAgIChoZXgpCQlEYXRhRmFiIFN5c3RlbXMgSW5jLgorMDAyNUQ5ICAgICAoYmFzZSAxNikJCURhdGFGYWIgU3lzdGVtcyBJbmMuCisJCQkJMzg1LTMgSG9uZ3p1biBSb2FkCisJCQkJUGluZ3poZW4gQ2l0eSBUYW95dWFuIENvdW50eSAzMjQ2NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtREEgICAoaGV4KQkJU2VjdXJhIEtleQorMDAyNURBICAgICAoYmFzZSAxNikJCVNlY3VyYSBLZXkKKwkJCQkyMDMwMSBOb3JkaG9mZiBTdC4KKwkJCQlDaGF0c3dvcnRoIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1EQiAgIChoZXgpCQlBVEkgRWxlY3Ryb25pY3MoU2hlbnpoZW4pIENvLiwgTFRECiswMDI1REIgICAgIChiYXNlIDE2KQkJQVRJIEVsZWN0cm9uaWNzKFNoZW56aGVuKSBDby4sIExURAorCQkJCTJGLDFzdCBCdWxpZGluZyxUYW5neWFuc2hhbiBJbmR1c3RyaWFsIFBhcmssCisJCQkJVGFuZ2tlbmcgVmlsbGFnZSxTaGl5YW4gVG93biwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTA4CisJCQkJQ0hJTkEKKworMDAtMjUtREMgICAoaGV4KQkJU3VtaXRvbW8gRWxlY3RyaWMgTmV0d29ya3MsIEluYworMDAyNURDICAgICAoYmFzZSAxNikJCVN1bWl0b21vIEVsZWN0cmljIE5ldHdvcmtzLCBJbmMKKwkJCQkxLTEtMywgU2hpbWF5YSwgS29ub2hhbmEta3UKKwkJCQlPc2FrYSBPc2FrYSBQcmVmZWN0dXJlIDU1NC0wMDI0CisJCQkJSkFQQU4KKworMDAtMjUtREQgICAoaGV4KQkJU1VOTllURUsgSU5GT1JNQVRJT04gQ08uLCBMVEQuCiswMDI1REQgICAgIChiYXNlIDE2KQkJU1VOTllURUsgSU5GT1JNQVRJT04gQ08uLCBMVEQuCisJCQkJMTJGLCBOTy4gODgsIEhTSU4tVEUgUk9BRAorCQkJCVNBTiBDSFVORyBDSVRZCisJCQkJVEFJUEVJIEhTSUVOICAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LURFICAgKGhleCkJCVByb2JpdHMgQ28uLCBMVEQuCiswMDI1REUgICAgIChiYXNlIDE2KQkJUHJvYml0cyBDby4sIExURC4KKwkJCQkjMTUwMiwgS29sb24gU2NpZW5jZSBWYWxsZXkgSUksIDgxMQorCQkJCUd1cm8tRG9uZywgR3Vyby1HdSwKKwkJCQlTZW91bCAgMTUyLTg3OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS1ERiAgIChoZXgpCQlQUklWQVRFCiswMDI1REYgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTI1LUUwICAgKGhleCkJCUNlZWRUZWMgU2RuIEJoZAorMDAyNUUwICAgICAoYmFzZSAxNikJCUNlZWRUZWMgU2RuIEJoZAorCQkJCTMwMy00LTUsIEtyeXN0YWwgUG9pbnQgQnVzaW5lc3MgQ2VudGVyCisJCQkJQmF5YW4gTGVwYXMgUGVuYW5nIDExOTAwCisJCQkJTUFMQVlTSUEKKworMDAtMjUtRTEgICAoaGV4KQkJU0hBTkdIQUkgU0VFWU9PIEVMRUNUUk9OSUMgJiBURUNITk9MT0dZIENPLiwgTFRECiswMDI1RTEgICAgIChiYXNlIDE2KQkJU0hBTkdIQUkgU0VFWU9PIEVMRUNUUk9OSUMgJiBURUNITk9MT0dZIENPLiwgTFRECisJCQkJUk03MDEsWElOJ0FOIEJVSUxESU5HLDk5IFRJQU5aSE9VIFJELFhVSFVJIERJU1RSSUNULFNIQU5HSEFJCisJCQkJU0hBTkdIQUkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTI1LUUyICAgKGhleCkJCUV2ZXJzcHJpbmcgSW5kdXN0cnkgQ28uLCBMdGQuCiswMDI1RTIgICAgIChiYXNlIDE2KQkJRXZlcnNwcmluZyBJbmR1c3RyeSBDby4sIEx0ZC4KKwkJCQk3Ri4sIE5vLiA2MDksIFNlYyAxLCBXYW5zaG91IFJkLgorCQkJCUd1ZWlzaGFuIFRvd25zaGlwIFRhb3l1YW4gQ291bnR5IDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtRTMgICAoaGV4KQkJSGFuc2hpbml0IEluYy4KKzAwMjVFMyAgICAgKGJhc2UgMTYpCQlIYW5zaGluaXQgSW5jLgorCQkJCURvbmctV29uIEJsZCAzRiwgMzk1LTEzLCBHYWwtTWEgMiwgU2VvLUd1CisJCQkJRGFlamVvbiAgMzAyLTgwOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS1FNCAgIChoZXgpCQlPTU5JLVdpRmksIExMQworMDAyNUU0ICAgICAoYmFzZSAxNikJCU9NTkktV2lGaSwgTExDCisJCQkJMTA3IFBpbmUgSGlsbCBSb2FkCisJCQkJQmVyd2ljayBNYWluZSAwMzkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtRTUgICAoaGV4KQkJTEcgRWxlY3Ryb25pY3MgSW5jCiswMDI1RTUgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MgSW5jCisJCQkJNjAtMzkgLEdhc2FuLURvbmcKKwkJCQlHdW1jaG9uLWd1CisJCQkJU2VvdWwgIDE1My0wMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtRTYgICAoaGV4KQkJQmVsZ2lhbiBNb25pdG9yaW5nIFN5c3RlbXMgYnZiYQorMDAyNUU2ICAgICAoYmFzZSAxNikJCUJlbGdpYW4gTW9uaXRvcmluZyBTeXN0ZW1zIGJ2YmEKKwkJCQlUaC4gU2V2ZW5zbGFhbiAxMDYKKwkJCQlLb3J0cmlqayBXVkwgODUwMAorCQkJCUJFTEdJVU0KKworMDAtMjUtRTcgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKzAwMjVFNyAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kICAyMjE4OAorCQkJCVNXRURFTgorCiswMC0yNS1FOCAgIChoZXgpCQlJZGFobyBUZWNobm9sb2d5CiswMDI1RTggICAgIChiYXNlIDE2KQkJSWRhaG8gVGVjaG5vbG9neQorCQkJCTM5MCBXYWthcmEgd2F5CisJCQkJU2FsdCBsYWtlIENpdHkgVVQgODQxMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUU5ICAgKGhleCkJCWktbWF0ZSBEZXZlbG9wbWVudCwgSW5jLgorMDAyNUU5ICAgICAoYmFzZSAxNikJCWktbWF0ZSBEZXZlbG9wbWVudCwgSW5jLgorCQkJCTgzODMgMTU4dGggQXZlLiBOLkUuLCBTdWl0ZSAzMDAsIFJlZG1vbmQsCisJCQkJV0EgOTgwNTItMzg3MQorCQkJCVdhc2hpbmd0b24gV0EgOTgwNTItMzg3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtRUEgICAoaGV4KQkJSXBoaW9uIEJWCiswMDI1RUEgICAgIChiYXNlIDE2KQkJSXBoaW9uIEJWCisJCQkJV2lsbGVtc3RyYWF0IDEwNgorCQkJCUVpbmRob3ZlbiAgNTYxNkdFCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjUtRUIgICAoaGV4KQkJUmV1dGVjaCBSYWRhciBTeXN0ZW1zIChQVFkpIEx0ZAorMDAyNUVCICAgICAoYmFzZSAxNikJCVJldXRlY2ggUmFkYXIgU3lzdGVtcyAoUFRZKSBMdGQKKwkJCQkzNSBFbGVjdHJvbiBBdmVudWUKKwkJCQlUZWNobm9wYXJrCisJCQkJU3RlbGxlbmJvc2NoIFdlc3Rlcm4gQ2FwZSA3NjAwCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTI1LUVDICAgKGhleCkJCUh1bWFud2FyZQorMDAyNUVDICAgICAoYmFzZSAxNikJCUh1bWFud2FyZQorCQkJCTQ0NSBydWUgZHUgUGFyYyBJbmR1c3RyaWVsCisJCQkJTG9uZ3VldWlsIFF16WJlYyBKNEggM1Y3CisJCQkJQ0FOQURBCisKKzAwLTI1LUVEICAgKGhleCkJCU51Vm8gVGVjaG5vbG9naWVzIExMQworMDAyNUVEICAgICAoYmFzZSAxNikJCU51Vm8gVGVjaG5vbG9naWVzIExMQworCQkJCTMwMTUgS3VzdG9tIERyaXZlCisJCQkJSGVicm9uIEtZIDQxMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1FRSAgIChoZXgpCQlBdnRleCBMdGQKKzAwMjVFRSAgICAgKGJhc2UgMTYpCQlBdnRleCBMdGQKKwkJCQlVbml0IEc1IENhcGl0YWwgQnVzaW5lc3MgUGFyaworCQkJCVBhcmt3YXkKKwkJCQlDYXJkaWZmICBDRjMgMlBYCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjUtRUYgICAoaGV4KQkJSS1URUMgQ28uLCBMdGQuCiswMDI1RUYgICAgIChiYXNlIDE2KQkJSS1URUMgQ28uLCBMdGQuCisJCQkJNy9GLEtBV0FSQU1BQ0hJIEtPWU8gQkxERy4zLTQtMyxLQVdBUkFNQ0hJLENIVU8tS1UsCisJCQkJT1NBS0EgIDU0MS0wMDQ4CisJCQkJSkFQQU4KKworMDAtMjUtRjAgICAoaGV4KQkJU3VnYSBFbGVjdHJvbmljcyBMaW1pdGVkCiswMDI1RjAgICAgIChiYXNlIDE2KQkJU3VnYSBFbGVjdHJvbmljcyBMaW1pdGVkCisJCQkJVW5pdHMgMTkwNC0xOTA3LCBDaGV2YWxpZXIgQ29tbWVyY2lhbCBDZW50cmUsCisJCQkJOCBXYW5nIEhvaSBSb2FkLCAsCisJCQkJS293bG9vbiBCYXkgSG9uZyBLb25nIAorCQkJCUNISU5BCisKKzAwLTI1LUYxICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDI1RjEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1GMiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyNUYyICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtRjMgICAoaGV4KQkJTm9yZHdlc3RkZXV0c2NoZSBa5GhsZXJyZXZpc2lvbgorMDAyNUYzICAgICAoYmFzZSAxNikJCU5vcmR3ZXN0ZGV1dHNjaGUgWuRobGVycmV2aXNpb24KKwkJCQlJbmcuIEF1Zy4gS25lbWV5ZXIgR21iSCAmIENvLiBLRworCQkJCUhlaWRld2VnIDMzCisJCQkJQmFkIExhZXIgTmllZGVyc2FjaHNlbiA0OTE5NgorCQkJCUdFUk1BTlkKKworMDAtMjUtRjQgICAoaGV4KQkJS29DbyBDb25uZWN0b3IgQUcKKzAwMjVGNCAgICAgKGJhc2UgMTYpCQlLb0NvIENvbm5lY3RvciBBRworCQkJCU1hcmllbnN0cmHfZSAxMgorCQkJCUJlcmxpbiAgMTAxMTcKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LUY1ICAgKGhleCkJCURWUyBLb3JlYSwgQ28uLCBMdGQKKzAwMjVGNSAgICAgKGJhc2UgMTYpCQlEVlMgS29yZWEsIENvLiwgTHRkCisJCQkJNDk3LTMsIFNhbmdIYS1Eb25nLCBHaWhldW5nLWd1CisJCQkJUiZEIEhhcmR3YXJlIDJUZWFtCisJCQkJWW9uZy1JbiBjaXR5IEd5ZW9uZ2dpLWRvIDQ0Ni05MTQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtRjYgICAoaGV4KQkJbmV0VEFMSy5jb20sIEluYy4KKzAwMjVGNiAgICAgKGJhc2UgMTYpCQluZXRUQUxLLmNvbSwgSW5jLgorCQkJCTExMDAgTlcgMTYzUkQgRFJJVkUKKwkJCQlTVUlURSBCLTQKKwkJCQlOT1JUSCBNSUFNSSBCRUFDSCBGTCAzMzE2OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtRjcgICAoaGV4KQkJQW5zYWxkbyBTVFMgVVNBCiswMDI1RjcgICAgIChiYXNlIDE2KQkJQW5zYWxkbyBTVFMgVVNBCisJCQkJMTAwMCBUZWNobm9sb2d5IERyaXZlCisJCQkJVW5pb24gU3dpdGNoICYgU2lnbmFsIEJ1aWxkaW5nCisJCQkJUGl0dHNidXJnaCBQQSAxNTIxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtRjkgICAoaGV4KQkJR01LIGVsZWN0cm9uaWMgZGVzaWduIEdtYkgKKzAwMjVGOSAgICAgKGJhc2UgMTYpCQlHTUsgZWxlY3Ryb25pYyBkZXNpZ24gR21iSAorCQkJCURhaW1sZXJzdHIuIDgKKwkJCQlXZXJuYmVyZy1Lb2VibGl0eiBCYXZhcmlhIEQtOTI1MzMKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LUZBICAgKGhleCkJCUomTSBBbmFseXRpayBBRworMDAyNUZBICAgICAoYmFzZSAxNikJCUomTSBBbmFseXRpayBBRworCQkJCVdpbGx5LU1lc3NlcnNjaG1pdHQtU3RyYXNzZSA4CisJCQkJRXNzaW5nZW4gQlcgNzM0NTcKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LUZCICAgKGhleCkJCVR1bnN0YWxsIEhlYWx0aGNhcmUgQS9TCiswMDI1RkIgICAgIChiYXNlIDE2KQkJVHVuc3RhbGwgSGVhbHRoY2FyZSBBL1MKKwkJCQlTdHJvZW1tZW4gNgorCQkJCU5vZXJyZXN1bmRieSAgOTQwMAorCQkJCURFTk1BUksKKworMDAtMjUtRkMgICAoaGV4KQkJRU5EQSBFTkRVU1RSSVlFTCBFTEVLVFJPTklLIExURC4gU1RJLgorMDAyNUZDICAgICAoYmFzZSAxNikJCUVOREEgRU5EVVNUUklZRUwgRUxFS1RST05JSyBMVEQuIFNUSS4KKwkJCQlZLiBEdWR1bGx1IEJhcmJhcm9zIEMuIEt1dHVwIFMuIE5vLiAyMAorCQkJCVVtcmFuaXllCisJCQkJSXN0YW5idWwgIDM0Nzc1CisJCQkJVFVSS0VZCisKKzAwLTI1LUZEICAgKGhleCkJCU9CUiBDZW50cnVtIFRlY2huaWtpIE1vcnNraWVqIFMuQS4KKzAwMjVGRCAgICAgKGJhc2UgMTYpCQlPQlIgQ2VudHJ1bSBUZWNobmlraSBNb3Jza2llaiBTLkEuCisJCQkJRGlja21hbmEgNjIKKwkJCQlHZHluaWEgIDgxLTEwOQorCQkJCVBPTEFORAorCiswMC0yNS1GRSAgIChoZXgpCQlQaWxvdCBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorMDAyNUZFICAgICAoYmFzZSAxNikJCVBpbG90IEVsZWN0cm9uaWNzIENvcnBvcmF0aW9uCisJCQkJTm8uIDIsIFR6dS1DaGlhbmcgM3JkIFJvYWQsIENodW5nLUxpIEluZHVzdHJpYWwgWm9uZSwKKwkJCQlUYW95dWFuICBIc2llbiAzMjA2MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtRkYgICAoaGV4KQkJQ3JlTm92YSBUZWNobm9sb2d5IEdtYkgKKzAwMjVGRiAgICAgKGJhc2UgMTYpCQlDcmVOb3ZhIFRlY2hub2xvZ3kgR21iSAorCQkJCUFuIGRlciBTY2hpbmRob2hsIDcKKwkJCQlTdWx6YmFjaCBIZXNzZW4gNjU4NDMKKwkJCQlHRVJNQU5ZCisKKzAwLTI2LTAwICAgKGhleCkJCVRFQUMgQXVzdHJhbGlhIFB0eSBMdGQuCiswMDI2MDAgICAgIChiYXNlIDE2KQkJVEVBQyBBdXN0cmFsaWEgUHR5IEx0ZC4KKwkJCQk3NSBOb3J0aGdhdGUgRHJpdmUKKwkJCQlUaG9tYXN0b3duIFZpY3RvcmlhIDMwNzQKKwkJCQlBVVNUUkFMSUEKKworMDAtMjYtMDEgICAoaGV4KQkJUFJJVkFURQorMDAyNjAxICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0yNi0wMiAgIChoZXgpCQlTTUFSVCBUZW1wcyBMTEMKKzAwMjYwMiAgICAgKGJhc2UgMTYpCQlTTUFSVCBUZW1wcyBMTEMKKwkJCQkzMDMgUyBCeXJraXQgU3QKKwkJCQlNaXNoYXdha2EgSU4gNDY1NDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTAzICAgKGhleCkJCVNoZW56aGVuIFdpc3RhciBUZWNobm9sb2d5IENvLiwgTHRkCiswMDI2MDMgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gV2lzdGFyIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlSbTkxOSwgU2NpZW5jZSAmVGVjaG5vbG9neSBTZXJ2aWNlIENlbnRlcgorCQkJCU5vLjEgUWlsaW4gUmQKKwkJCQlTaGVuemhlbiBHdWFuZyBEb25nIDUxODAwMAorCQkJCUNISU5BCisKKzAwLTI2LTA0ICAgKGhleCkJCUF1ZGlvIFByb2Nlc3NpbmcgVGVjaG5vbG9neSBMdGQKKzAwMjYwNCAgICAgKGJhc2UgMTYpCQlBdWRpbyBQcm9jZXNzaW5nIFRlY2hub2xvZ3kgTHRkCisJCQkJV2hpdGVyb2NrIEJ1c2luZXNzIFBhcmsKKwkJCQk3MjkgU3ByaW5nZmllbGQgUm9hZAorCQkJCUJlbGZhc3QgQ291bnR5IEFudHJpbSBCVDEyIDdGUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI2LTA1ICAgKGhleCkJCUNDIFN5c3RlbXMgQUIKKzAwMjYwNSAgICAgKGJhc2UgMTYpCQlDQyBTeXN0ZW1zIEFCCisJCQkJQm94IDgzCisJCQkJQWxmdGEgU3dlZGVuIDgyMjIyCisJCQkJU1dFREVOCisKKzAwLTI2LTA2ICAgKGhleCkJCVJBVU1GRUxEIEdtYkgKKzAwMjYwNiAgICAgKGJhc2UgMTYpCQlSQVVNRkVMRCBHbWJICisJCQkJUmVpY2hlbmJlcmdlciBTdHIuIDEyNAorCQkJCUJlcmxpbiAgMTA5OTkKKwkJCQlHRVJNQU5ZCisKKzAwLTI2LTA3ICAgKGhleCkJCUVuYWJsaW5nIFRlY2hub2xvZ3kgUHR5IEx0ZAorMDAyNjA3ICAgICAoYmFzZSAxNikJCUVuYWJsaW5nIFRlY2hub2xvZ3kgUHR5IEx0ZAorCQkJCTIzLzQ0IEtpbmdzIFBhcmsgUm9hZAorCQkJCVdlc3QgUGVydGggV2VzdGVybiBBdXN0cmFsaWEgNjAwNQorCQkJCUFVU1RSQUxJQQorCiswMC0yNi0wOCAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDI2MDggICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMDkgICAoaGV4KQkJUGh5bGxpcyBDby4sIEx0ZC4KKzAwMjYwOSAgICAgKGJhc2UgMTYpCQlQaHlsbGlzIENvLiwgTHRkLgorCQkJCTl0aCBGbC4sIFJvb20gMy80LCBOby4gNTIsIFNlYy4gMiwgQ2h1bmcgU2hhbiBOb3J0aCBSb2FkLAorCQkJCVRhaXBlaSAgMTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi0wQSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI2MEEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMEIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNjBCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTBDICAgKGhleCkJCURhdGFyYW0KKzAwMjYwQyAgICAgKGJhc2UgMTYpCQlEYXRhcmFtCisJCQkJMTg2IFByaW5jZXRvbiBSZC4KKwkJCQlCbGRnLiAzQQorCQkJCVdlc3QgV2luZHNvciBOSiAwODU1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMEQgICAoaGV4KQkJTWljcm9uZXRpY3MsIEluYy4KKzAwMjYwRCAgICAgKGJhc2UgMTYpCQlNaWNyb25ldGljcywgSW5jLgorCQkJCTI2IEhhbXBzaGlyZSBEcgorCQkJCUh1ZHNvbiBOSCAwMzA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMEUgICAoaGV4KQkJQWJsYXplIFN5c3RlbXMsIExMQworMDAyNjBFICAgICAoYmFzZSAxNikJCUFibGF6ZSBTeXN0ZW1zLCBMTEMKKwkJCQk1MjMgV2VzdCBWYWxsZXkgUm9hZAorCQkJCVdheW5lIFBlbm5zeWx2YW5pYSAxOTA4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMEYgICAoaGV4KQkJTGlubiBQcm9kdWN0cyBMdGQKKzAwMjYwRiAgICAgKGJhc2UgMTYpCQlMaW5uIFByb2R1Y3RzIEx0ZAorCQkJCUdsYXNnb3cgUm9hZAorCQkJCVdhdGVyZm9vdAorCQkJCUdsYXNnb3cgIEc3NiAwRVEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yNi0xMCAgIChoZXgpCQlBcGFjZXdhdmUgVGVjaG5vbG9naWVzCiswMDI2MTAgICAgIChiYXNlIDE2KQkJQXBhY2V3YXZlIFRlY2hub2xvZ2llcworCQkJCTQ4Mzg5IEZyZW1vbnQgQmx2ZCwgU1RFIzEwMAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTExICAgKGhleCkJCUxpY2VyYSBBQgorMDAyNjExICAgICAoYmFzZSAxNikJCUxpY2VyYSBBQgorCQkJCVRla25pa3JpbmdlbiAxQworCQkJCUxpbmv2cGluZyAgNTgzMzAKKwkJCQlTV0VERU4KKworMDAtMjYtMTIgICAoaGV4KQkJU3BhY2UgRXhwbG9yYXRpb24gVGVjaG5vbG9naWVzCiswMDI2MTIgICAgIChiYXNlIDE2KQkJU3BhY2UgRXhwbG9yYXRpb24gVGVjaG5vbG9naWVzCisJCQkJMSBSb2NrZXQgUm9hZAorCQkJCUhhd3Rob3JuZSBDQSA5MDI1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMTMgICAoaGV4KQkJRW5nZWwgQXhpbCBTLkwuCiswMDI2MTMgICAgIChiYXNlIDE2KQkJRW5nZWwgQXhpbCBTLkwuCisJCQkJUHVpZyBkZWxzIFR1ZG9ucywgNgorCQkJCVBvbC4gSW5kdXN0cmlhbCBTYW50aWdhCisJCQkJQmFyYmVyYSBkZWwgVmFsbGVzIEJhcmNlbG9uYSAwODIxMAorCQkJCVNQQUlOCisKKzAwLTI2LTE0ICAgKGhleCkJCUtUTkYKKzAwMjYxNCAgICAgKGJhc2UgMTYpCQlLVE5GCisJCQkJMjA0LERhZXJ5dW5ndGVjaG5vdG93bjEsMzI3LEdhc2FuLURvbmcsCisJCQkJR2V1bWNoZW9uLUd1LAorCQkJCVNlb3VsICAxNTMtNzcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LTE1ICAgKGhleCkJCVRlcmFjb20gTGltaXRlZAorMDAyNjE1ICAgICAoYmFzZSAxNikJCVRlcmFjb20gTGltaXRlZAorCQkJCUItODQKKwkJCQlTZWN0b3IgLSA2MAorCQkJCU5vaWRhIFV0dGFyIFByYWRlc2ggMjAxMzAxCisJCQkJSU5ESUEKKworMDAtMjYtMTYgICAoaGV4KQkJUm9zZW1vdW50IEluYy4KKzAwMjYxNiAgICAgKGJhc2UgMTYpCQlSb3NlbW91bnQgSW5jLgorCQkJCTgyMDAgTWFya2V0IEJvdWxldmFyZAorCQkJCUNoYW5oYXNzZW4gTU4gNTUzMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTE3ICAgKGhleCkJCU9FTSBXb3JsZHdpZGUKKzAwMjYxNyAgICAgKGJhc2UgMTYpCQlPRU0gV29ybGR3aWRlCisJCQkJMjkyMCBLZWxseSBBdmUKKwkJCQlXYXRlcnRvd24gU0QgNTcyMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTE4ICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorMDAyNjE4ICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UKKwkJCQlUYWlwZWkgVGFpd2FuIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtMTkgICAoaGV4KQkJRlJDCiswMDI2MTkgICAgIChiYXNlIDE2KQkJRlJDCisJCQkJMTUxMSBTb3V0aCBCZW5qYW1pbiBBdmVudWUKKwkJCQlNYXNvbiBDaXR5IElBIDUwNDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0xQSAgIChoZXgpCQlGZW10b2NvbW0gU3lzdGVtIFRlY2hub2xvZ3kgQ29ycC4KKzAwMjYxQSAgICAgKGJhc2UgMTYpCQlGZW10b2NvbW0gU3lzdGVtIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkyRi4tMixOby4yOCwgVGFpeXVhbiBTdC4sCisJCQkJSmh1YmVpIENpdHksIEhzaW5jaHUgQ291bnRyeSwgMzAyODgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTFCICAgKGhleCkJCUxBVVJFTCBCQU5LIE1BQ0hJTkVTIENPLiwgTFRELgorMDAyNjFCICAgICAoYmFzZSAxNikJCUxBVVJFTCBCQU5LIE1BQ0hJTkVTIENPLiwgTFRELgorCQkJCTEyLTYKKwkJCQloaWdhc2hpdGFiYXRhIDEtQ2hvbWUKKwkJCQlLaXRhLUt1IFRva3lvIDExNC0wMDEzCisJCQkJSkFQQU4KKworMDAtMjYtMUMgICAoaGV4KQkJTkVPVklBIElOQy4KKzAwMjYxQyAgICAgKGJhc2UgMTYpCQlORU9WSUEgSU5DLgorCQkJCTUwMyBMT1RURSBJVCBDQVNUTEUgMURPTkcsNTUwLTEKKwkJCQlHQVNBTi1ET05HLCBHRVVNQ0hFT04tR1UKKwkJCQlTRU9VTCAgMTUzLTc2OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi0xRCAgIChoZXgpCQlDT1AgU0VDVVJJVFkgU1lTVEVNIENPUlAuCiswMDI2MUQgICAgIChiYXNlIDE2KQkJQ09QIFNFQ1VSSVRZIFNZU1RFTSBDT1JQLgorCQkJCTR+N0YsIE5vLjUsIExhbmUgMTMwLCBNaW4tQ2h1bmcgUmQuLAorCQkJCUhzaW4gVGllbiBDaXR5CisJCQkJVGFpcGVpICAyMzE0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtMUUgICAoaGV4KQkJUUlOR0JBTkcgRUxFQyhTWikgQ08uLCBMVEQKKzAwMjYxRSAgICAgKGJhc2UgMTYpCQlRSU5HQkFORyBFTEVDKFNaKSBDTy4sIExURAorCQkJCU5vLiAyLCBxaW1pbiBSZC4gTm9ydGggRGlzdHJpY3QsIEhpZ2gtdGVjaCBJbmR1c3RyaWFsIFBhcmssIE5hbnNoYW4sCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzAwLTI2LTFGICAgKGhleCkJCVNBRSBNYWduZXRpY3MgKEguSy4pIEx0ZC4KKzAwMjYxRiAgICAgKGJhc2UgMTYpCQlTQUUgTWFnbmV0aWNzIChILksuKSBMdGQuCisJCQkJU0FFIFRlY2hub2xvZ3kgQ2VudHJlCisJCQkJNiBTY2llbmNlIFBhcmsgRWFzdCBBdmVudWUKKwkJCQlIb25nIEtvbmcgU2NpZW5jZSBQYXJrIFNoYXRpbiwgTmV3IFRlcnJpdG9yaWVzIAorCQkJCUhPTkcgS09ORworCiswMC0yNi0yMCAgIChoZXgpCQlJU0dVUyBHbWJICiswMDI2MjAgICAgIChiYXNlIDE2KQkJSVNHVVMgR21iSAorCQkJCU9iZXJkb3Jmc3RyYd9lIDE4IC0gMjIKKwkJCQlWUyAtIFNjaHdlbm5pbmdlbiBCVyA3ODA1NAorCQkJCUdFUk1BTlkKKworMDAtMjYtMjEgICAoaGV4KQkJSW50ZWxpQ2xvdWQgVGVjaG5vbG9neSBJbmMuCiswMDI2MjEgICAgIChiYXNlIDE2KQkJSW50ZWxpQ2xvdWQgVGVjaG5vbG9neSBJbmMuCisJCQkJODk1IERvdmUgU3QuCisJCQkJU3RlLiAzMDAKKwkJCQlOZXdwb3J0IEJlYWNoIENBIDkyNjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0yMiAgIChoZXgpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELgorMDAyNjIyICAgICAoYmFzZSAxNikJCUNPTVBBTCBJTkZPUk1BVElPTiAoS1VOU0hBTikgQ08uLCBMVEQuCisJCQkJTk8uIDI1LCBUSEUgM1JEIFN0cmVldCBLVU5TSEFOIEVYUE9SVCBQUk9DRVNTSU5HIFpPTkUKKwkJCQlLVU5TSEFOIFNVWkhPVSAyMTUzMDAKKwkJCQlDSElOQQorCiswMC0yNi0yMyAgIChoZXgpCQlKUkQgQ29tbXVuaWNhdGlvbiBJbmMKKzAwMjYyMyAgICAgKGJhc2UgMTYpCQlKUkQgQ29tbXVuaWNhdGlvbiBJbmMKKwkJCQkxNi9GLCBUQ0wgVG93ZXIsIEdhb3hpbiBOYW55aSBSb2FkLCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTI2LTI0ICAgKGhleCkJCVRob21zb24gSW5jLgorMDAyNjI0ICAgICAoYmFzZSAxNikJCVRob21zb24gSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMjUgICAoaGV4KQkJTWVkaWFTcHV0bmlrCiswMDI2MjUgICAgIChiYXNlIDE2KQkJTWVkaWFTcHV0bmlrCisJCQkJWWFyb3NsYXZza29lIHNob3NzZSwgMTksCisJCQkJTW9zY293ICAxMjkzMzcKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjYtMjYgICAoaGV4KQkJR2VvcGh5c2ljYWwgU3VydmV5IFN5c3RlbXMsIEluYy4KKzAwMjYyNiAgICAgKGJhc2UgMTYpCQlHZW9waHlzaWNhbCBTdXJ2ZXkgU3lzdGVtcywgSW5jLgorCQkJCTEyIEluZHVzdHJpYWwgV2F5CisJCQkJU2FsZW0gTkggMDMwNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTI3ICAgKGhleCkJCVRydWVzZWxsCiswMDI2MjcgICAgIChiYXNlIDE2KQkJVHJ1ZXNlbGwKKwkJCQkzMDEgU3VuZ3l1biBCbGRnLCA4OS0yCisJCQkJWWFuZ2phZS1kb25nLAorCQkJCVNlb2Noby1ndSwgU2VvdWwgMTM3LTEzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi0yOCAgIChoZXgpCQljb21wYW55dGVjIGF1dG9tYefjbyBlIGNvbnRyb2xlIGx0ZGEKKzAwMjYyOCAgICAgKGJhc2UgMTYpCQljb21wYW55dGVjIGF1dG9tYefjbyBlIGNvbnRyb2xlIGx0ZGEKKwkJCQlSdWEgTWFyY2lsaW8gRGlhcyAzMDA1CisJCQkJUGVsb3RhcyBSaW8gR3JhbmRlIGRvIFN1bCA5NjAyMC00ODAKKwkJCQlCUkFaSUwKKworMDAtMjYtMjkgICAoaGV4KQkJSnVwaG9vbiBTeXN0ZW0gU29mdHdhcmUgSW5jLgorMDAyNjI5ICAgICAoYmFzZSAxNikJCUp1cGhvb24gU3lzdGVtIFNvZnR3YXJlIEluYy4KKwkJCQlSb29tIDkxMCxCdWlsZGluZyAyCisJCQkJU2hhbmdkb25nIEludGVybmF0aW9uIEJ1aWxkaW5nLEppYW5nZG9uZyBEaXN0cmljdAorCQkJCU5pbmdibyBaaGVqaWFuZyAzMTUwNDEKKwkJCQlDSElOQQorCiswMC0yNi0yQSAgIChoZXgpCQlQcm94ZW5zZSwgTExDCiswMDI2MkEgICAgIChiYXNlIDE2KQkJUHJveGVuc2UsIExMQworCQkJCTY4OSBOVyBTdG9uZXBpbmUgRHIKKwkJCQlCZW5kIE9yZWdvbiA5NzcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMkIgICAoaGV4KQkJV29uZ3MgRWxlY3Ryb25pY3MgQ28uIEx0ZC4KKzAwMjYyQiAgICAgKGJhc2UgMTYpCQlXb25ncyBFbGVjdHJvbmljcyBDby4gTHRkLgorCQkJCVdhbmZlbmcgSW5kLiBFc2F0YSwgU2hhamluZywgQmFvYW4sCisJCQkJU2hlbnpoZW4gR3VhbmcgRG9uZyA1MTgxMDQKKwkJCQlDSElOQQorCiswMC0yNi0yQyAgIChoZXgpCQlJS1QgQWR2YW5jZWQgVGVjaG5vbG9naWVzIHMuci5vLgorMDAyNjJDICAgICAoYmFzZSAxNikJCUlLVCBBZHZhbmNlZCBUZWNobm9sb2dpZXMgcy5yLm8uCisJCQkJUGlzZWNrZWhvIDMzNC8xOQorCQkJCVByYWhhIDUgIDE1MDAwCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMjYtMkQgICAoaGV4KQkJV2lzdHJvbiBDb3Jwb3JhdGlvbgorMDAyNjJEICAgICAoYmFzZSAxNikJCVdpc3Ryb24gQ29ycG9yYXRpb24KKwkJCQkyMUYsIDg4LCBTZWMuMSwgSHNpbiBUYWkgV3UgUmQuLCBIc2ljaGloLAorCQkJCVRhaXBlaSBIc2llbiBUYWl3YW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi0yRSAgIChoZXgpCQlDaGVuZ2R1IEppdXpob3UgRWxlY3Ryb25pYyBUZWNobm9sb2d5IEluYworMDAyNjJFICAgICAoYmFzZSAxNikJCUNoZW5nZHUgSml1emhvdSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgSW5jCisJCQkJQTIgQnVpbGRpbmcsVGlhbmZ1IFNvZnR3YXJlIFBhcmsKKwkJCQlOby43NjUsTWlkIFRpYW5mdSBBdmVudWUsSGlnaC10ZWNoIGluZHVzdHJpYWwgRGV2ZWxvcG1lbnQgWm9uZQorCQkJCUNoZW5nZHUgU2ljaHVhbiA2MTAwNDEKKwkJCQlDSElOQQorCiswMC0yNi0yRiAgIChoZXgpCQlIQU1BTUFUU1UgVE9BIEVMRUNUUk9OSUNTCiswMDI2MkYgICAgIChiYXNlIDE2KQkJSEFNQU1BVFNVIFRPQSBFTEVDVFJPTklDUworCQkJCTkxNjItMQorCQkJCU1JWUFLT0RBLUNITworCQkJCUhBTUFNQVRTVSBTSVpVT0tBIDQzMS0yMTAyCisJCQkJSkFQQU4KKworMDAtMjYtMzAgICAoaGV4KQkJQUNPUkVMIFMuQS5TCiswMDI2MzAgICAgIChiYXNlIDE2KQkJQUNPUkVMIFMuQS5TCisJCQkJMywgUnVlIFBhdWwgTEFOR0VWSU4KKwkJCQlTQUlOVC1QRVJBWSAgRi0wNzEzMAorCQkJCUZSQU5DRQorCiswMC0yNi0zMSAgIChoZXgpCQlDT01NVEFDVCBMVEQKKzAwMjYzMSAgICAgKGJhc2UgMTYpCQlDT01NVEFDVCBMVEQKKwkJCQlOYWhhbCBTbmlyIDEwCisJCQkJUE8gQm94IDE2OQorCQkJCVlhem5lICA4MTEwMQorCQkJCUlTUkFFTAorCiswMC0yNi0zMiAgIChoZXgpCQlJbnN0cnVtZW50YXRpb24gVGVjaG5vbG9naWVzIGQuZC4KKzAwMjYzMiAgICAgKGJhc2UgMTYpCQlJbnN0cnVtZW50YXRpb24gVGVjaG5vbG9naWVzIGQuZC4KKwkJCQlWZWxpa2EgcG90IDIyCisJCQkJU29sa2FuIE5vdmEgR29yaWNhIDUyNTAKKwkJCQlTTE9WRU5JQQorCiswMC0yNi0zMyAgIChoZXgpCQlNSVIgLSBNZWRpY2FsIEludGVybmF0aW9uYWwgUmVzZWFyY2gKKzAwMjYzMyAgICAgKGJhc2UgMTYpCQlNSVIgLSBNZWRpY2FsIEludGVybmF0aW9uYWwgUmVzZWFyY2gKKwkJCQlWaWEgZGVsIE1hZ2dpb2xpbm8gMTI1CisJCQkJUm9tZSBSTSAwMDE1NQorCQkJCUlUQUxZCisKKzAwLTI2LTM0ICAgKGhleCkJCUluZmluZXRhIFN5c3RlbXMsIEluYworMDAyNjM0ICAgICAoYmFzZSAxNikJCUluZmluZXRhIFN5c3RlbXMsIEluYworCQkJCTI4NzAgWmFua2VyIFJkCisJCQkJU3VpdGUgMTAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTM1ICAgKGhleCkJCUJsdWV0ZWNobml4IEdtYkgKKzAwMjYzNSAgICAgKGJhc2UgMTYpCQlCbHVldGVjaG5peCBHbWJICisJCQkJV2FpZGhhdXNlbnN0ci4gMy8xOQorCQkJCVZpZW5uYSAgMTE0MAorCQkJCUFVU1RSSUEKKworMDAtMjYtMzYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjYzNiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVUyA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMzcgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvLU1lY2hhbmljcworMDAyNjM3ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryby1NZWNoYW5pY3MKKwkJCQkzMTQsIE1ldGFuIGRvbmcKKwkJCQlTdXdvbiBLeXVuZy1raSBkbyA0NDMtNzQzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LTM4ICAgKGhleCkJCVhpYSBNZW4gSm95YXRlY2ggQ28uLCBMdGQuCiswMDI2MzggICAgIChiYXNlIDE2KQkJWGlhIE1lbiBKb3lhdGVjaCBDby4sIEx0ZC4KKwkJCQlSb29tIDMwNCwgMjh0aCBCdWlsZGluZywgR3VhbnJpIFJvYWQsIFhpYW1lbiBTb2Z0d2FyZSBQYXJrCisJCQkJWGlhbWVuIEZ1amlhbiBQcm92aW5jZSAzNjEwMDgKKwkJCQlDSElOQQorCiswMC0yNi0zOSAgIChoZXgpCQlULk0uIEVsZWN0cm9uaWNzLCBJbmMuCiswMDI2MzkgICAgIChiYXNlIDE2KQkJVC5NLiBFbGVjdHJvbmljcywgSW5jLgorCQkJCTQ1IE1haW4gU3QKKwkJCQlCb3lsc3RvbiBNQSAwMTUwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtM0EgICAoaGV4KQkJRGlnaXRlYyBTeXN0ZW1zCiswMDI2M0EgICAgIChiYXNlIDE2KQkJRGlnaXRlYyBTeXN0ZW1zCisJCQkJQzVBLzI1NywgMXN0IEZsb29yCisJCQkJSmFuYWtwdXJpCisJCQkJTmV3IERlbGhpIERlbGhpIDExMDA1OAorCQkJCUlORElBCisKKzAwLTI2LTNCICAgKGhleCkJCU9uYm5ldGVjaAorMDAyNjNCICAgICAoYmFzZSAxNikJCU9uYm5ldGVjaAorCQkJCTUwNiwgU2Ftc3VuZyBJVCBWYWxsZXksIDE5Ny01CisJCQkJR3Vyby1Eb25nCisJCQkJR3Vyby1HdSBTZW91bCAxNTItODQ4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LTNDICAgKGhleCkJCUJhY2htYW5uIEdtYkggJiBDby4gS0cKKzAwMjYzQyAgICAgKGJhc2UgMTYpCQlCYWNobWFubiBHbWJIICYgQ28uIEtHCisJCQkJRXJuc3RoYWxkZW5zdHJhc3NlIDMzCisJCQkJU3R1dHRnYXJ0IEJXIDcwNTY1CisJCQkJR0VSTUFOWQorCiswMC0yNi0zRCAgIChoZXgpCQlNSUEgQ29ycG9yYXRpb24KKzAwMjYzRCAgICAgKGJhc2UgMTYpCQlNSUEgQ29ycG9yYXRpb24KKwkJCQkxLTMtMTUgWW9zaGluby1jaG8sIE1pbmFtaS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIzMi0wMDE0CisJCQkJSkFQQU4KKworMDAtMjYtM0UgICAoaGV4KQkJVHJhcGV6ZSBOZXR3b3JrcworMDAyNjNFICAgICAoYmFzZSAxNikJCVRyYXBlemUgTmV0d29ya3MKKwkJCQk1NzUzIFdlc3QgTGFzIFBvc2l0YXMgQmx2ZC4KKwkJCQlQbGVhc2FudG9uIENhbGlmb3JuaWEgOTQ1ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTNGICAgKGhleCkJCUxJT1MgVGVjaG5vbG9neSBHbWJICiswMDI2M0YgICAgIChiYXNlIDE2KQkJTElPUyBUZWNobm9sb2d5IEdtYkgKKwkJCQlTY2hhbnplbnN0cmHfZSAzOQorCQkJCUJ1aWxkaW5nIEQ5LUQxMworCQkJCUv2bG4gR2VybWFueSBELTUxMDYzCisJCQkJR0VSTUFOWQorCiswMC0yNi00MCAgIChoZXgpCQlCYXVzdGVtIEJyb2FkYmFuZCBUZWNobm9sb2dpZXMsIEx0ZC4KKzAwMjY0MCAgICAgKGJhc2UgMTYpCQlCYXVzdGVtIEJyb2FkYmFuZCBUZWNobm9sb2dpZXMsIEx0ZC4KKwkJCQk5MTAgUXVhbnR1bSBQbGF6YQorCQkJCU5vLjIzIFpoaWNodW4gUm9hZAorCQkJCUJlaWppbmcgIDEwMDE5MQorCQkJCUNISU5BCisKKzAwLTI2LTQxICAgKGhleCkJCU1vdG9yb2xhLCBJbmMKKzAwMjY0MSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSwgSW5jCisJCQkJMTEwMSBNYXJpbmEgVmlsbGFnZSBQYXJrd2F5CisJCQkJU3VpdGUgMjAwCisJCQkJQWxhbWVkYSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNDIgICAoaGV4KQkJTW90b3JvbGEsIEluYworMDAyNjQyICAgICAoYmFzZSAxNikJCU1vdG9yb2xhLCBJbmMKKwkJCQkxMTAxIE1hcmluYSBWaWxsYWdlIFBhcmt3YXkKKwkJCQlTdWl0ZSAyMDAKKwkJCQlBbGFtZWRhIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi00MyAgIChoZXgpCQlBbHBzIEVsZWN0cmljIENvLiwgTHRkCiswMDI2NDMgICAgIChiYXNlIDE2KQkJQWxwcyBFbGVjdHJpYyBDby4sIEx0ZAorCQkJCTEtMi0xLE9raW5vdWNoaQorCQkJCVNvbWEtY2l0eSBGdWt1c2hpbWEta2VuIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMjYtNDQgICAoaGV4KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKzAwMjY0NCAgICAgKGJhc2UgMTYpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorCQkJCVByaW5zIEJvdWRld2lqbmxhYW4gNDcKKwkJCQlFZGVnZW0gQW50d2VycCBCLTI2NTAKKwkJCQlCRUxHSVVNCisKKzAwLTI2LTQ1ICAgKGhleCkJCUNpcmNvbnRyb2wgUy5BLgorMDAyNjQ1ICAgICAoYmFzZSAxNikJCUNpcmNvbnRyb2wgUy5BLgorCQkJCUxlcGFudCA0MworCQkJCVRlcnJhc3NhIEJhcmNlbG9uYSAwODIyMworCQkJCVNQQUlOCisKKzAwLTI2LTQ2ICAgKGhleCkJCVNIRU5ZQU5HIFRPTkdGQU5HIE1VTFRJTUVESUEgVEVDSE5PTE9HWSBDT01QQU5ZIExJTUlURUQKKzAwMjY0NiAgICAgKGJhc2UgMTYpCQlTSEVOWUFORyBUT05HRkFORyBNVUxUSU1FRElBIFRFQ0hOT0xPR1kgQ09NUEFOWSBMSU1JVEVECisJCQkJTm8uMTAgUGluZyBOYW4gRWFzdCBSb2FkCisJCQkJSHVubmFuIE5ldyBEaXN0cmljdC4KKwkJCQlTaGVueWFuZyBMaWFvIE5pbmcgMTEwMDE0CisJCQkJQ0hJTkEKKworMDAtMjYtNDcgICAoaGV4KQkJV0ZFIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMjY0NyAgICAgKGJhc2UgMTYpCQlXRkUgVEVDSE5PTE9HWSBDT1JQLgorCQkJCTE3RiBOTy4yMzgsQ2hpbi1IdWEgTiBSZCwKKwkJCQlUYWljaHVuZyAgNDA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi00OCAgIChoZXgpCQlFbWl0ZWNoIENvcnAuCiswMDI2NDggICAgIChiYXNlIDE2KQkJRW1pdGVjaCBDb3JwLgorCQkJCU5vLiAxNTYtNUEsIENoZW5nR29uZyAxc3QgU3QuLAorCQkJCUpodWJlaSBDaXR5IEhzaW5jaHUgQ291bnR5IDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtNEEgICAoaGV4KQkJQXBwbGUsIEluYworMDAyNjRBICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi00QyAgIChoZXgpCQlTaGFuZ2hhaSBEaWdpVmlzaW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDI2NEMgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgRGlnaVZpc2lvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLiAzMzMgR3VhbmdqaSBSZC4KKwkJCQlTaGFuZ2hhaSAgMjAwMDgzCisJCQkJQ0hJTkEKKworMDAtMjYtNEQgICAoaGV4KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAyNjREICAgICAoYmFzZSAxNikJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Ri4sIE5vLiA5ICwgUGFyayBBdmVudWUgSUkgLAorCQkJCUhzaW5jaHUgU2NpZW5jZSBQYXJrICwKKwkJCQlIc2luY2h1IFRhaXdhbiAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTRFICAgKGhleCkJCVJhaWwgJiBSb2FkIFByb3RlYyBHbWJICiswMDI2NEUgICAgIChiYXNlIDE2KQkJUmFpbCAmIFJvYWQgUHJvdGVjIEdtYkgKKwkJCQlOb3JkZXJob2ZlbmRlbiAxMi0xMworCQkJCUZsZW5zYnVyZyAgMjQ5MzcKKwkJCQlHRVJNQU5ZCisKKzAwLTI2LTRGICAgKGhleCkJCUty/GdlciZHb3RoZSBHbWJICiswMDI2NEYgICAgIChiYXNlIDE2KQkJS3L8Z2VyJkdvdGhlIEdtYkgKKwkJCQlBdHplbmRvcmZlciBTdHJhc3NlIDE5CisJCQkJU3Rhc3NmdXJ0IFNhY2hzZW4gQW5oYWx0IDM5NDE4CisJCQkJR0VSTUFOWQorCiswMC0yNi01MCAgIChoZXgpCQkyV2lyZQorMDAyNjUwICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNTEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNjUxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTUyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjY1MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi01MyAgIChoZXgpCQlEYXlTZXF1ZXJyYSBDb3Jwb3JhdGlvbgorMDAyNjUzICAgICAoYmFzZSAxNikJCURheVNlcXVlcnJhIENvcnBvcmF0aW9uCisJCQkJMTU0IENvb3BlciBSb2FkCisJCQkJU3VpdGUgIzkwMgorCQkJCVdlc3QgQmVybGluIE5KIDA4MDkxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi01NCAgIChoZXgpCQkzQ29tIENvcnBvcmF0aW9uCiswMDI2NTQgICAgIChiYXNlIDE2KQkJM0NvbSBDb3Jwb3JhdGlvbgorCQkJCTUzNTMgQmV0c3kgUm9zcyBEcml2ZQorCQkJCUJsZGcgMTQsIE0vUyAxNDI1CisJCQkJU2FudGEgQ2xhcmEgQ2FsaWZvcm5pYSA5NTA1NC0xMTYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi01NSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwMjY1NSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTXMgMDYwMzAyCisJCQkJSG91c3RvbiBUZXhhcyA3NzA5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNTYgICAoaGV4KQkJU2Fuc29uaWMgRWxlY3Ryb25pY3MgVVNBCiswMDI2NTYgICAgIChiYXNlIDE2KQkJU2Fuc29uaWMgRWxlY3Ryb25pY3MgVVNBCisJCQkJOTk1MCBCYWxkd2luIFBsYWNlCisJCQkJRWwgTW9udGUgQ2FpbGZvcm5pYSA5MTczMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNTcgICAoaGV4KQkJT09PIE5QUCBFS1JBCiswMDI2NTcgICAgIChiYXNlIDE2KQkJT09PIE5QUCBFS1JBCisJCQkJSS5ZYWtvdmxldmEgU3QuLCAzCisJCQkJQ2hlYm9rc2FyeSBDaHV2YXNoIFJlcHVibGljIDQyODAwMworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yNi01OCAgIChoZXgpCQlULVBsYXRmb3JtcyAoQ3lwcnVzKSBMaW1pdGVkCiswMDI2NTggICAgIChiYXNlIDE2KQkJVC1QbGF0Zm9ybXMgKEN5cHJ1cykgTGltaXRlZAorCQkJCVRoZW1pc3Rva2xpIERlcnZpIDMsIEp1bGlhIEhvdXNlCisJCQkJTmljb3NpYSAgUC5DLi0xMDY2CisJCQkJQ1lQUlVTCisKKzAwLTI2LTU5ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyNjU5ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTI2LTVBICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAyNjVBICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5vLjI4OSwgU2luaHUgM3JkIFJkLiwKKwkJCQlOZWlodSBEaXN0cmljdCAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi01QiAgIChoZXgpCQlIaXRyb24gVGVjaG5vbG9naWVzLiBJbmMKKzAwMjY1QiAgICAgKGJhc2UgMTYpCQlIaXRyb24gVGVjaG5vbG9naWVzLiBJbmMKKwkJCQlOby4gMS04LCBMaXNpbmcgMXN0IFJkLiBIc2luY2h1IFNjaWVuY2UgUGFyaywKKwkJCQlIc2luLWNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi01QyAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCiswMDI2NUMgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUKKwkJCQlTaGFuZ2hhaSAgMjAxNjEzCisJCQkJQ0hJTkEKKworMDAtMjYtNUQgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworMDAyNjVEICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtNUUgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorMDAyNjVFICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKKzAwLTI2LTVGICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAyNjVGICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi02MCAgIChoZXgpCQlMb2dpd2F5cworMDAyNjYwICAgICAoYmFzZSAxNikJCUxvZ2l3YXlzCisJCQkJMjQvMjYgcnVlIExvdWlzIEFSTUFORAorCQkJCVBBUklTICA3NTAxNQorCQkJCUZSQU5DRQorCiswMC0yNi02MSAgIChoZXgpCQlJcnVtdGVrIENvLiwgTHRkLgorMDAyNjYxICAgICAoYmFzZSAxNikJCUlydW10ZWsgQ28uLCBMdGQuCisJCQkJQXB0IDcwOCAgNTEzLTIyIEpvb25naWwgRWluZXMgUGxhdHoKKwkJCQlTYW5nZGFld29uLWRvbmcsIEp1bmd3b24tR3UKKwkJCQlTZW9uZ25hbS1DaXR5IEd5dW5nZ2ktZG8gNDYyLTEyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi02MiAgIChoZXgpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworMDAyNjYyICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi02MyAgIChoZXgpCQlTaGVuemhlbiBIdWl0YWl3ZWkgVGVjaC4gTHRkLCBjby4KKzAwMjY2MyAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBIdWl0YWl3ZWkgVGVjaC4gTHRkLCBjby4KKwkJCQlKaWFuRGEgQnVpbGRpbmcsNTAxLTUwMgorCQkJCUtld2VpIE5vLiAxCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzAwLTI2LTY0ICAgKGhleCkJCUNvcmUgU3lzdGVtIEphcGFuCiswMDI2NjQgICAgIChiYXNlIDE2KQkJQ29yZSBTeXN0ZW0gSmFwYW4KKwkJCQlCdW5zaHUgQmxkZywyLTI3LTYsTXlvamluCisJCQkJSGFjaGlvamkgVG9reW8gMTkyMDA0NgorCQkJCUpBUEFOCisKKzAwLTI2LTY1ICAgKGhleCkJCVByb3RlY3RlZExvZ2ljIENvcnBvcmF0aW9uCiswMDI2NjUgICAgIChiYXNlIDE2KQkJUHJvdGVjdGVkTG9naWMgQ29ycG9yYXRpb24KKwkJCQlQTyBCb3ggNjc3MDcKKwkJCQlBbGJ1cXVlcnF1ZSBOTSA4NzE5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNjYgICAoaGV4KQkJRUZNIE5ldHdvcmtzCiswMDI2NjYgICAgIChiYXNlIDE2KQkJRUZNIE5ldHdvcmtzCisJCQkJNkYgQmVucG9zcmEgSUkgQi9EIDE4MDItMQorCQkJCUJvamVvbmctZG9uZyBHaWhldW5nLWd1LAorCQkJCVlvbmcgSW4gS3l1bmdnaS1kbyA0NDYtOTEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LTY3ICAgKGhleCkJCUNBUkVDT00gQ08uLExURC4KKzAwMjY2NyAgICAgKGJhc2UgMTYpCQlDQVJFQ09NIENPLixMVEQuCisJCQkJMy0zNS00CisJCQkJVGFtYWdhd2EKKwkJCQlDaG9mdSBUb2t5byAxODItMDAyNQorCQkJCUpBUEFOCisKKzAwLTI2LTY4ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDI2NjggICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTI2LTY5ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDI2NjkgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTI2LTZBICAgKGhleCkJCUVTU0VOU0lVTSBOVgorMDAyNjZBICAgICAoYmFzZSAxNikJCUVTU0VOU0lVTSBOVgorCQkJCUdhc3RvbiBHZWVuc2xhYW4gOQorCQkJCUxFVVZFTiBWTCBCUkFCQU5UIDMwMDEKKwkJCQlCRUxHSVVNCisKKzAwLTI2LTZCICAgKGhleCkJCVNISU5FIFVOSU9OIEVOVEVSUFJJU0UgTElNSVRFRAorMDAyNjZCICAgICAoYmFzZSAxNikJCVNISU5FIFVOSU9OIEVOVEVSUFJJU0UgTElNSVRFRAorCQkJCVVOSVQgMTIxMSwgMTJGTC4sIENIRVZBTElFUiBDT01NRVJDSUFMIENFTlRFUiwKKwkJCQlOTy44IFdBTkcgSE9JIFJPQUQsIEtPV0xPT05CQVkKKwkJCQlLT1dMT09OICBOSUwKKwkJCQlIT05HIEtPTkcKKworMDAtMjYtNkMgICAoaGV4KQkJSW52ZW50ZWMKKzAwMjY2QyAgICAgKGJhc2UgMTYpCQlJbnZlbnRlYworCQkJCUludmVudGVjIEJ1aWxkaW5nLCA2NiBIb3UtS2FuZyBTdHJlZXQgU2hpaC1MaW4gRGlzdHJpY3QsCisJCQkJVGFpcGVpICAxMTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTZEICAgKGhleCkJCU1vYmlsZUFjY2VzcyBOZXR3b3JrcworMDAyNjZEICAgICAoYmFzZSAxNikJCU1vYmlsZUFjY2VzcyBOZXR3b3JrcworCQkJCTgzOTEgT2xkIENvdXJ0aG91c2UgUmQuCisJCQkJU3VpdGUgMzAwCisJCQkJVmllbm5hIFZBIDIyMTgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi02RSAgIChoZXgpCQlOaXNzaG8tZGVua2kgQ28uLExURC4KKzAwMjY2RSAgICAgKGJhc2UgMTYpCQlOaXNzaG8tZGVua2kgQ28uLExURC4KKwkJCQkzLTctNixjaGlkb3JpCisJCQkJb2h0YSBUb2t5byAxNDYtMDA4MworCQkJCUpBUEFOCisKKzAwLTI2LTZGICAgKGhleCkJCUNvb3JkaXdpc2UgVGVjaG5vbG9neSBDb3JwLgorMDAyNjZGICAgICAoYmFzZSAxNikJCUNvb3JkaXdpc2UgVGVjaG5vbG9neSBDb3JwLgorCQkJCTJGLiwgTm8uMTIzLCBTZWMuIDEsIExpb3VqaWEgNXRoIFJkLgorCQkJCUpodWJlaSBDaXR5LCBIc2luY2h1IENvdW50eSAgMzAyNzIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTcwICAgKGhleCkJCUNpbmNoIENvbm5lY3RvcnMKKzAwMjY3MCAgICAgKGJhc2UgMTYpCQlDaW5jaCBDb25uZWN0b3JzCisJCQkJMTcwMCBGaW5sZXkgUm9hZAorCQkJCUxvbWJhcmQgSUwgNjAxNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTcxICAgKGhleCkJCUFVVE9WSVNJT04gQ28uLCBMdGQKKzAwMjY3MSAgICAgKGJhc2UgMTYpCQlBVVRPVklTSU9OIENvLiwgTHRkCisJCQkJU2hpbnNlZ2FlIFlCUyBCbGRnLiAxMDIKKwkJCQkyMjctMSwgWW9uZ2RhcC1Eb25nCisJCQkJU2Vvbmdkb25nLWd1IFNlb3VsIDEzMy04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtNzIgICAoaGV4KQkJQUFNUCBvZiBBbWVyaWNhCiswMDI2NzIgICAgIChiYXNlIDE2KQkJQUFNUCBvZiBBbWVyaWNhCisJCQkJMTMxOTAgNTZ0aCBDb3VydAorCQkJCVN1aXRlIDQwMQorCQkJCUNsZWFyd2F0ZXIgRmxvcmlkYSAzMzc2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNzMgICAoaGV4KQkJUklDT0ggQ09NUEFOWSBMVEQuCiswMDI2NzMgICAgIChiYXNlIDE2KQkJUklDT0ggQ09NUEFOWSBMVEQuCisJCQkJODEwIFNISU1PSU1BSVpVTUkKKwkJCQlFYmluYSBDaXR5IEtBTkFHQVdBIFBSRUYgMjQzLTA0NjAKKwkJCQlKQVBBTgorCiswMC0yNi03NCAgIChoZXgpCQlFbGVjdHJvbmljIFNvbHV0aW9ucywgSW5jLgorMDAyNjc0ICAgICAoYmFzZSAxNikJCUVsZWN0cm9uaWMgU29sdXRpb25zLCBJbmMuCisJCQkJMTM1NSBIb3Jpem9uIEF2ZW51ZQorCQkJCUxhZmF5ZXR0ZSBDTyA4MDAyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNzUgICAoaGV4KQkJQXp0ZWNoIEVsZWN0cm9uaWNzIFB0ZSBMdGQKKzAwMjY3NSAgICAgKGJhc2UgMTYpCQlBenRlY2ggRWxlY3Ryb25pY3MgUHRlIEx0ZAorCQkJCTMxIFViaSBSb2FkIDEKKwkJCQlBenRlY2ggQnVpbGRpbmcKKwkJCQlTaW5nYXBvcmUgIDQwODY5NAorCQkJCVNJTkdBUE9SRQorCiswMC0yNi03NiAgIChoZXgpCQlDT01NaWR0IEFTCiswMDI2NzYgICAgIChiYXNlIDE2KQkJQ09NTWlkdCBBUworCQkJCUtpa3JlZ2F0YSA1Ny01OQorCQkJCUxldmFuZ2VyIE5vcmQtVHJvZW5kZWxhZyA3NjAwCisJCQkJTk9SV0FZCisKKzAwLTI2LTc3ICAgKGhleCkJCURFSUYgQS9TCiswMDI2NzcgICAgIChiYXNlIDE2KQkJREVJRiBBL1MKKwkJCQlGcmlzZW5ib3JndmVqIDMzCisJCQkJU2tpdmUgIDc4MDAKKwkJCQlERU5NQVJLCisKKzAwLTI2LTc4ICAgKGhleCkJCUxvZ2ljIEluc3RydW1lbnQgU0EKKzAwMjY3OCAgICAgKGJhc2UgMTYpCQlMb2dpYyBJbnN0cnVtZW50IFNBCisJCQkJNDMsIEF2ZW51ZSBkZSBsJ0V1cm9wZQorCQkJCUJQIDYwMDEyCisJCQkJRG9tb250ICA5NTMzMAorCQkJCUZSQU5DRQorCiswMC0yNi03OSAgIChoZXgpCQlFdXBob25pYyBUZWNobm9sb2dpZXMsIEluYy4KKzAwMjY3OSAgICAgKGJhc2UgMTYpCQlFdXBob25pYyBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyLTUtMTAgU2hpbi15b2tvaGFtYSwgS291aG9rdS1rdQorCQkJCVlva29oYW1hICAyMjItMDAzMworCQkJCUpBUEFOCisKKzAwLTI2LTdBICAgKGhleCkJCXd1aGFuIGhvbmd4aW4gdGVsZWNvbW11bmljYXRpb24gdGVjaG5vbG9naWVzIGNvLixsdGQKKzAwMjY3QSAgICAgKGJhc2UgMTYpCQl3dWhhbiBob25neGluIHRlbGVjb21tdW5pY2F0aW9uIHRlY2hub2xvZ2llcyBjby4sbHRkCisJCQkJTm8uNSBEb254aW4gUm9hZCxXdWhhbiBFYXN0IExha2UgSGlnaC1UZWNoIERldmVsb3BtZW50IFpvbmUKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzMKKwkJCQlDSElOQQorCiswMC0yNi03QiAgIChoZXgpCQlHU0kgSGVsbWhvbHR6emVudHJ1bSBm/HIgU2Nod2VyaW9uZW5mb3JzY2h1bmcgR21iSAorMDAyNjdCICAgICAoYmFzZSAxNikJCUdTSSBIZWxtaG9sdHp6ZW50cnVtIGb8ciBTY2h3ZXJpb25lbmZvcnNjaHVuZyBHbWJICisJCQkJUGxhbmNrc3RyYd9lIDEKKwkJCQlEYXJtc3RhZHQgSGVzc2VuIDY0MjkxCisJCQkJR0VSTUFOWQorCiswMC0yNi03QyAgIChoZXgpCQlNZXR6LVdlcmtlIEdtYkggJiBDbyBLRworMDAyNjdDICAgICAoYmFzZSAxNikJCU1ldHotV2Vya2UgR21iSCAmIENvIEtHCisJCQkJT2htc3RyYXNzZSA1NQorCQkJCVppcm5kb3JmICA5MDUxMworCQkJCUdFUk1BTlkKKworMDAtMjYtN0QgICAoaGV4KQkJQS1NYXggVGVjaG5vbG9neSBNYWNhbyBDb21tZXJjaWFsIE9mZnNob3JlIENvbXBhbnkgTGltaXRlZAorMDAyNjdEICAgICAoYmFzZSAxNikJCUEtTWF4IFRlY2hub2xvZ3kgTWFjYW8gQ29tbWVyY2lhbCBPZmZzaG9yZSBDb21wYW55IExpbWl0ZWQKKwkJCQlBdmVuaWRhIERhIFByYWlhIEdyYW5kZSBOby4gNDA5CisJCQkJRWRpZmljaW8gRG9zIFNlcnZpY29zIEp1cmlkaWNvcyBEYSBDaGluYSA1QQorCQkJCU1hY2F1ICAKKwkJCQlDSElOQQorCiswMC0yNi03RSAgIChoZXgpCQlQYXJyb3QgU0EKKzAwMjY3RSAgICAgKGJhc2UgMTYpCQlQYXJyb3QgU0EKKwkJCQkxNzQgcXVhaSBkZSBKZW1tYXBlcworCQkJCVBhcmlzICA3ODEwMAorCQkJCUZSQU5DRQorCiswMC0yNi03RiAgIChoZXgpCQlaZW50ZXJpbyBBQgorMDAyNjdGICAgICAoYmFzZSAxNikJCVplbnRlcmlvIEFCCisJCQkJRGlza2V0dGdhdGFuIDExQgorCQkJCUxpbmv2cGluZyAgNTgzMzUKKwkJCQlTV0VERU4KKworMDAtMjYtODAgICAoaGV4KQkJTG9ja2llIElubm92YXRpb24gUHR5IEx0ZAorMDAyNjgwICAgICAoYmFzZSAxNikJCUxvY2tpZSBJbm5vdmF0aW9uIFB0eSBMdGQKKwkJCQlVbml0IDI0CisJCQkJMi0xMiBUZW1wbGUgU3RyZWV0CisJCQkJQXNod29vZCBWSUNUT1JJQSAzMTQ3CisJCQkJQVVTVFJBTElBCisKKzAwLTI2LTgxICAgKGhleCkJCUludGVyc3Bpcm8gQUIKKzAwMjY4MSAgICAgKGJhc2UgMTYpCQlJbnRlcnNwaXJvIEFCCisJCQkJQm94IDEwMDYwCisJCQkJTGlkaW5n9iAgMTgxMTAKKwkJCQlTV0VERU4KKworMDAtMjYtODIgICAoaGV4KQkJR2VtdGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDI2ODIgICAgIChiYXNlIDE2KQkJR2VtdGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uMSBKZW4gQWkgUm9hZCwgSHNpbmNodSBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSBUYWl3YW4gMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi04MyAgIChoZXgpCQlBam9obyBFbnRlcnByaXNlIENvLiwgTHRkLgorMDAyNjgzICAgICAoYmFzZSAxNikJCUFqb2hvIEVudGVycHJpc2UgQ28uLCBMdGQuCisJCQkJMUYuLCBOby4zMDAtMywgU2VjLiAzLCBIb3BpbmcgVy4gUmQuLCBXYW4tSHVhIDEwOAorCQkJCVRhaXBlaSBUYWl3YW4gMTA4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi04NCAgIChoZXgpCQlLSVNBTiBTWVNURU0KKzAwMjY4NCAgICAgKGJhc2UgMTYpCQlLSVNBTiBTWVNURU0KKwkJCQlZVUNIRU9OIFBBQ1RPUElBIDYyMywgQU5ZQU5HNworCQkJCUFOWUFORyBHWUVPTkdHSSA0MzAtNzI3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LTg1ICAgKGhleCkJCURpZ2l0YWwgSW5ub3ZhdGlvbgorMDAyNjg1ICAgICAoYmFzZSAxNikJCURpZ2l0YWwgSW5ub3ZhdGlvbgorCQkJCVRyYXZiYW5ldmVpZW4gNgorCQkJCVRyb25kaGVpbSAgNzA0NAorCQkJCU5PUldBWQorCiswMC0yNi04NiAgIChoZXgpCQlRdWFudGVubmEgQ29tbXVuY2F0aW9ucywgSW5jLgorMDAyNjg2ICAgICAoYmFzZSAxNikJCVF1YW50ZW5uYSBDb21tdW5jYXRpb25zLCBJbmMuCisJCQkJMzQ1MCBXLiBXYXJyZW4gQXZlLgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTg3ICAgKGhleCkJCUFMTElFRCBURUxFU0lTLCBLLksgY29yZWdhIGRpdmlzaW9uLgorMDAyNjg3ICAgICAoYmFzZSAxNikJCUFMTElFRCBURUxFU0lTLCBLLksgY29yZWdhIGRpdmlzaW9uLgorCQkJCTEtMTktMjAsIFNoaW55b2tvaGFtYQorCQkJCUtvdWhva3Uta3UKKwkJCQlZb2tvaGFtYS1jaXR5IEthbmFnYXdhLWtlbiAyMjItMDAzMworCQkJCUpBUEFOCisKKzAwLTI2LTg4ICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzAwMjY4OCAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtODkgICAoaGV4KQkJR2VuZXJhbCBEeW5hbWljcyBSb2JvdGljIFN5c3RlbXMKKzAwMjY4OSAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIER5bmFtaWNzIFJvYm90aWMgU3lzdGVtcworCQkJCTEyMzEgVGVjaCBDb3VydAorCQkJCVdlc3RtaW5zdGVyIE1EIDIxMTU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi04QSAgIChoZXgpCQlUZXJyaWVyIFNDIEx0ZAorMDAyNjhBICAgICAoYmFzZSAxNikJCVRlcnJpZXIgU0MgTHRkCisJCQkJU3RyZXR0aXQgRmFybQorCQkJCVNub2xsIEhhdGNoIFJvYWQKKwkJCQlFYXN0IFBlY2toYW0gS2VudCBUTjEyIDVFRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI2LThCICAgKGhleCkJCUd1YW5nemhvdSBFc2NlbmUgQ29tcHV0ZXIgVGVjaG5vbG9neSBMaW1pdGVkCiswMDI2OEIgICAgIChiYXNlIDE2KQkJR3Vhbmd6aG91IEVzY2VuZSBDb21wdXRlciBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlSb29tIDIwOSwgTm8uNTQtNTYgWXVlaGUgQnVpbGRpbmcsIEh1YWN1aSBTdHJlZXQsIFRpYW5oZSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIFByb3ZpbmNlIDUxMDA2NQorCQkJCUNISU5BCisKKzAwLTI2LThDICAgKGhleCkJCVN0YXJMZWFmIEx0ZC4KKzAwMjY4QyAgICAgKGJhc2UgMTYpCQlTdGFyTGVhZiBMdGQuCisJCQkJQ2hhc3RvbiBIb3VzZSwgTWlsbCBDb3VydAorCQkJCUdyZWF0IFNoZWxmb3JkCisJCQkJQ2FtYnJpZGdlICBDQjIyIDVMRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI2LThEICAgKGhleCkJCUNlbGxUZWwgUy5wLkEuCiswMDI2OEQgICAgIChiYXNlIDE2KQkJQ2VsbFRlbCBTLnAuQS4KKwkJCQlWaWEgUm9tYW5vIDcyCisJCQkJU2Nhcm1hZ25vIFRvcmlubyAxMDAxMAorCQkJCUlUQUxZCisKKzAwLTI2LThFICAgKGhleCkJCUFsdGEgU29sdXRpb25zLCBJbmMuCiswMDI2OEUgICAgIChiYXNlIDE2KQkJQWx0YSBTb2x1dGlvbnMsIEluYy4KKwkJCQkxMTMwNSBSYW5jaG8gQmVybmFyZG8gUm9hZAorCQkJCVN1aXRlIDEwNAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtOEYgICAoaGV4KQkJTVRBIFNwQQorMDAyNjhGICAgICAoYmFzZSAxNikJCU1UQSBTcEEKKwkJCQlWaWFsZSBkZWxsIEluZHVzdHJpYSAxMgorCQkJCUNvZG9nbm8gTE9ESSAyNjg0NQorCQkJCUlUQUxZCisKKzAwLTI2LTkwICAgKGhleCkJCUkgRE8gSVQKKzAwMjY5MCAgICAgKGJhc2UgMTYpCQlJIERPIElUCisJCQkJMTMwOCwgV29vbGltTGlvbnMybmQgRG9rc2FuIFN0YXRpb24KKwkJCQlTZW91bCAgMTUzLTc4NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi05MSAgIChoZXgpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCiswMDI2OTEgICAgIChiYXNlIDE2KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorCQkJCTE0IFJ1ZSBQYXVsIERhdXRpZXIKKwkJCQlWZWxpenkgIDc4NDU3CisJCQkJRlJBTkNFCisKKzAwLTI2LTkyICAgKGhleCkJCU1pdHN1YmlzaGkgRWxlY3RyaWMgQ28uCiswMDI2OTIgICAgIChiYXNlIDE2KQkJTWl0c3ViaXNoaSBFbGVjdHJpYyBDby4KKwkJCQkyLTctMyBNYXJ1bm91Y2hpCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDAtODMxMAorCQkJCUpBUEFOCisKKzAwLTI2LTkzICAgKGhleCkJCVFWaWRpdW0gVGVjaG5vbG9naWVzLCBJbmMuCiswMDI2OTMgICAgIChiYXNlIDE2KQkJUVZpZGl1bSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMjk4OSBDaGFwYXJyYWwgUmlkZ2UgUmQKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTk0ICAgKGhleCkJCVNlbnNjaWVudCBMdGQKKzAwMjY5NCAgICAgKGJhc2UgMTYpCQlTZW5zY2llbnQgTHRkCisJCQkJVW5pdCAyLCBCbG9jayBBLCBBcmVuYSBCdXNpbmVzcyBDZW50cmUKKwkJCQlIb2x5IFJvb2QgQ2xvc2UKKwkJCQlQb29sZSBEb3JzZXQgQkgxNyA3RkoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yNi05NSAgIChoZXgpCQlaVCBHcm91cCBJbnQnbCBJbmMKKzAwMjY5NSAgICAgKGJhc2UgMTYpCQlaVCBHcm91cCBJbnQnbCBJbmMKKwkJCQkzNTAgTWVhZG93bGFuZHMgUGFya3dheQorCQkJCVNlY2F1Y3VzIE5KIDA3MDk0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi05NiAgIChoZXgpCQlOT09MSVggQ28uLCBMdGQKKzAwMjY5NiAgICAgKGJhc2UgMTYpCQlOT09MSVggQ28uLCBMdGQKKwkJCQlEQUVDSEFORyBCL0QgM0YsIDgtMiBTVU5BRS1ET05HCisJCQkJQlVEQU5HLUdVCisJCQkJU1VOR05BTS1TSSBLWVVOR0dJLURPIDQ2My04MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtOTcgICAoaGV4KQkJQ2hlZXRhaCBUZWNobm9sb2dpZXMsIEwuUC4KKzAwMjY5NyAgICAgKGJhc2UgMTYpCQlDaGVldGFoIFRlY2hub2xvZ2llcywgTC5QLgorCQkJCTM4MSBNYW5zZmllbGQgQXZlbnVlCisJCQkJU3VpdGUgMjAwCisJCQkJUGl0dHNidXJnaCBQQSAxNTIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtOTggICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNjk4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTk5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjY5OSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi05QSAgIChoZXgpCQljYXJpbmEgc3lzdGVtIGNvLiwgbHRkLgorMDAyNjlBICAgICAoYmFzZSAxNikJCWNhcmluYSBzeXN0ZW0gY28uLCBsdGQuCisJCQkJMS01LTIgTWluYXRvamltYS1taW5hbWltYWNoaQorCQkJCUNodW8ta3UKKwkJCQlLb2JlIEh5b2dvIDY1MC0wMDQ3CisJCQkJSkFQQU4KKworMDAtMjYtOUIgICAoaGV4KQkJU09LUkFUIEx0ZC4KKzAwMjY5QiAgICAgKGJhc2UgMTYpCQlTT0tSQVQgTHRkLgorCQkJCVZvbGtvbnNrb2dvIDIKKwkJCQlJcmt1dHNrICA2NjQwMDcKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjYtOUMgICAoaGV4KQkJSVRVUyBKQVBBTiBDTy4gTFRECiswMDI2OUMgICAgIChiYXNlIDE2KQkJSVRVUyBKQVBBTiBDTy4gTFRECisJCQkJN0YgU2hpbmthd2EgQi9ECisJCQkJMS0xLTcgU2hpbmthd2EKKwkJCQlDaHVva3UgVG9reW8gMTA0MDAzMworCQkJCUpBUEFOCisKKzAwLTI2LTlEICAgKGhleCkJCU0yTW5ldCBDby4sIEx0ZC4KKzAwMjY5RCAgICAgKGJhc2UgMTYpCQlNMk1uZXQgQ28uLCBMdGQuCisJCQkJNjA3IERvd250b3duIEJsZC4gMTA0My0xIEhvZ3llLURvbmcgRG9uZ2FuLUd1CisJCQkJQW55YW5nLUNpdHkgS3l1bmdnaS1EbyA0MzEtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LTlFICAgKGhleCkJCVF1YW50YSBDb21wdXRlciBJbmMKKzAwMjY5RSAgICAgKGJhc2UgMTYpCQlRdWFudGEgQ29tcHV0ZXIgSW5jCisJCQkJTk8uIDIxMSwgV0VOIEhXQSAyUkQuLCBLVUVJIFNIQU4gSFNJQU5HLCBUQUlQRUksIFNISUVOCisJCQkJVEFPIFlVQU4gIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtOUYgICAoaGV4KQkJUFJJVkFURQorMDAyNjlGICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0yNi1BMCAgIChoZXgpCQltb2JsaWMKKzAwMjZBMCAgICAgKGJhc2UgMTYpCQltb2JsaWMKKwkJCQk3RiwgMjcxLTEsIFNlb2h5ZW9uLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbS1zaSBLeWVvbmdnaS1kbyA0NjMtODI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LUExICAgKGhleCkJCU1lZ2dlcgorMDAyNkExICAgICAoYmFzZSAxNikJCU1lZ2dlcgorCQkJCTQyNzEgQnJvbnplIFdheQorCQkJCURhbGxhcyBUZXhhcyA3NTIzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQTIgICAoaGV4KQkJSW5zdHJ1bWVudGF0aW9uIFRlY2hub2xvZ3kgU3lzdGVtcworMDAyNkEyICAgICAoYmFzZSAxNikJCUluc3RydW1lbnRhdGlvbiBUZWNobm9sb2d5IFN5c3RlbXMKKwkJCQkxOTM2MCBCdXNpbmVzcyBDZW50ZXIgRHJpdmUKKwkJCQlOb3J0aHJpZGdlIENBIDkxMzI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1BMyAgIChoZXgpCQlGUSBJbmdlbmllcmlhIEVsZWN0cm9uaWNhIFMuQS4KKzAwMjZBMyAgICAgKGJhc2UgMTYpCQlGUSBJbmdlbmllcmlhIEVsZWN0cm9uaWNhIFMuQS4KKwkJCQlDb3JzZWdhIDM3MiAxIDIKKwkJCQlCYXJjZWxvbmEgIDA4MDM3CisJCQkJU1BBSU4KKworMDAtMjYtQTQgICAoaGV4KQkJTm92dXMgUHJvZHV0b3MgRWxldHJvbmljb3MgTHRkYQorMDAyNkE0ICAgICAoYmFzZSAxNikJCU5vdnVzIFByb2R1dG9zIEVsZXRyb25pY29zIEx0ZGEKKwkJCQlSdWEgQWx2YXJvIENoYXZlcywgMTU1CisJCQkJQmFpcnJvIEZsb3Jlc3RhCisJCQkJUG9ydG8gQWxlZ3JlIFJTIDkwMjIwLTA0MAorCQkJCUJSQVpJTAorCiswMC0yNi1BNSAgIChoZXgpCQlNSUNST1JPQk9ULkNPLixMVEQKKzAwMjZBNSAgICAgKGJhc2UgMTYpCQlNSUNST1JPQk9ULkNPLixMVEQKKwkJCQkxNjctMyBHdW5ncHllb25nLXJpCisJCQkJRG9jaGVvay1teWVvbgorCQkJCUd3YW5nanUtc2kgR3llb25nZ2ktRG8gNDY0LTg4MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1BNiAgIChoZXgpCQlUUklYRUxMCiswMDI2QTYgICAgIChiYXNlIDE2KQkJVFJJWEVMTAorCQkJCTQ2MCwgUnVlIGR1IHBvbW1hcmluCisJCQkJTU9JUkFOUyAgMzgyMTAKKwkJCQlGUkFOQ0UKKworMDAtMjYtQTcgICAoaGV4KQkJQ09OTkVDVCBTUkwKKzAwMjZBNyAgICAgKGJhc2UgMTYpCQlDT05ORUNUIFNSTAorCQkJCVZpYSBDZXJuYWlhLCAxMQorCQkJCU1pbGFuICAyMDEyMQorCQkJCUlUQUxZCisKKzAwLTI2LUE4ICAgKGhleCkJCURBRUhBUCBIWVBFUi1URUNICiswMDI2QTggICAgIChiYXNlIDE2KQkJREFFSEFQIEhZUEVSLVRFQ0gKKwkJCQlNZWdhIGNlbnRlciAjMTEwOCwgU0sgVGVjaG5vLVBhcmssICMxOTAtMSwgU2FuZ2RhZXdvbi1Eb25nLCBKdW5nd29uLUd1CisJCQkJU2VvbmduYW0gR3llb25nZ2ktRG8gNDYyLTgwNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1BOSAgIChoZXgpCQlTdHJvbmcgVGVjaG5vbG9naWVzIFB0eSBMdGQKKzAwMjZBOSAgICAgKGJhc2UgMTYpCQlTdHJvbmcgVGVjaG5vbG9naWVzIFB0eSBMdGQKKwkJCQk2MCBXZWRnZXdvb2QgUm9hZAorCQkJCUhhbGxhbSBWaWN0b3JpYSAzODAzCisJCQkJQVVTVFJBTElBCisKKzAwLTI2LUFBICAgKGhleCkJCUtlbm1lYyBNZWNoYW5pY2FsIEVuZ2luZWVyaW5nIENvLiwgTHRkLgorMDAyNkFBICAgICAoYmFzZSAxNikJCUtlbm1lYyBNZWNoYW5pY2FsIEVuZ2luZWVyaW5nIENvLiwgTHRkLgorCQkJCTNGLCBOby4gOTcsIFNlYy4yIE5hbi1LYW5nIFJkLiwKKwkJCQlUYWlwZWkgIDExNTc4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi1BQiAgIChoZXgpCQlTRUlLTyBFUFNPTiBDT1JQT1JBVElPTgorMDAyNkFCICAgICAoYmFzZSAxNikJCVNFSUtPIEVQU09OIENPUlBPUkFUSU9OCisJCQkJMy0zLTUgT1dBCisJCQkJU1VXQS1TSEkgTkFHQU5PLUtFTiAzOTItODUwMgorCQkJCUpBUEFOCisKKzAwLTI2LUFDICAgKGhleCkJCVNoYW5naGFpIExVU1RFUiBUZXJhYmFuZCBwaG90b25pYyBDby4sIEx0ZC4KKzAwMjZBQyAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBMVVNURVIgVGVyYWJhbmQgcGhvdG9uaWMgQ28uLCBMdGQuCisJCQkJRjQsIE5vLjM5IENoZW5nWmhvbmcgUmQuCisJCQkJSmlhRGluZyBEaXN0cmljdAorCQkJCVNoYW5naGFpICAyMDE4MDAKKwkJCQlDSElOQQorCiswMC0yNi1BRCAgIChoZXgpCQlBcmFkYSBTeXN0ZW1zLCBJbmMuCiswMDI2QUQgICAgIChiYXNlIDE2KQkJQXJhZGEgU3lzdGVtcywgSW5jLgorCQkJCTEwMjQgTW9yc2UgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1BRSAgIChoZXgpCQlXaXJlbGVzcyBNZWFzdXJlbWVudCBMdGQKKzAwMjZBRSAgICAgKGJhc2UgMTYpCQlXaXJlbGVzcyBNZWFzdXJlbWVudCBMdGQKKwkJCQlUaGUgQ3Jlc2NlbnQKKwkJCQlFTVNXT1JUSCAgUE8xMCA4SlMKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yNi1BRiAgIChoZXgpCQlEdWVsY28gQS9TCiswMDI2QUYgICAgIChiYXNlIDE2KQkJRHVlbGNvIEEvUworCQkJCU1vbW1hcmt2ZWogNQorCQkJCVZvbGxlcnVwCisJCQkJU29lbmRlcmJvcmcgU29lbmRlcmp5bGxhbmQgREs2NDAwCisJCQkJREVOTUFSSworCiswMC0yNi1CMCAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDI2QjAgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQjEgICAoaGV4KQkJTmF2aXMgQXV0byBNb3RpdmUgU3lzdGVtcywgSW5jLgorMDAyNkIxICAgICAoYmFzZSAxNikJCU5hdmlzIEF1dG8gTW90aXZlIFN5c3RlbXMsIEluYy4KKwkJCQkzcmQgRkxPT1IsIEhZVU5EQUkgQVFVQSBQQUxBQ0UgNzg1LCBXT08gMS1ET05HLCBIQUVVTkRBRUdVCisJCQkJQlVTQU4gIDYxMi04MjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtQjIgICAoaGV4KQkJU2V0cml4IEFHCiswMDI2QjIgICAgIChiYXNlIDE2KQkJU2V0cml4IEFHCisJCQkJVGhlcmVzaWVuc3RyYXNzZSA2LTgKKwkJCQlNdWVuY2hlbiBCYXllcm4gODAzMzMKKwkJCQlHRVJNQU5ZCisKKzAwLTI2LUIzICAgKGhleCkJCVRoYWxlcyBDb21tdW5pY2F0aW9ucyBJbmMKKzAwMjZCMyAgICAgKGJhc2UgMTYpCQlUaGFsZXMgQ29tbXVuaWNhdGlvbnMgSW5jCisJCQkJMjI2MDUgR2F0ZXdheSBDZW50ZXIgRHJpdmUKKwkJCQlDbGFya3NidXJnIE1EIDIwODcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1CNCAgIChoZXgpCQlGb3JkIE1vdG9yIENvbXBhbnkKKzAwMjZCNCAgICAgKGJhc2UgMTYpCQlGb3JkIE1vdG9yIENvbXBhbnkKKwkJCQkyMDMwMCBSb3R1bmRhIERyaXZlCisJCQkJQnVpbGRpbmcgIzUsIDJFMDk5CisJCQkJRGVhcmJvcm4gTUkgNDgxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUI1ICAgKGhleCkJCUlDT01NIFRlbGUgTHRkCiswMDI2QjUgICAgIChiYXNlIDE2KQkJSUNPTU0gVGVsZSBMdGQKKwkJCQkzMDQsIFRyZW5kc2V0IFRvd2VycywKKwkJCQlSYW9kICMgMiwgQmFuamFyYSBIaWxscworCQkJCUh5ZGVyYWJhZCBBUCA1MDAwMzQKKwkJCQlJTkRJQQorCiswMC0yNi1CNiAgIChoZXgpCQlBc2tleSBDb21wdXRlcgorMDAyNkI2ICAgICAoYmFzZSAxNikJCUFza2V5IENvbXB1dGVyCisJCQkJMTBGLE5PLjExOSxDSElFTktBTkcgUkQsQ0hVTkctSE8KKwkJCQlUQUlQRUkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtQjcgICAoaGV4KQkJS2luZ3N0b24gVGVjaG5vbG9neSBDb21wYW55LCBJbmMuCiswMDI2QjcgICAgIChiYXNlIDE2KQkJS2luZ3N0b24gVGVjaG5vbG9neSBDb21wYW55LCBJbmMuCisJCQkJMTc2MDAgTmV3aG9wZSBTdC4KKwkJCQlGb3VudGFpbiBWYWxsZXkgQ0EgOTI3MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUI4ICAgKGhleCkJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCiswMDI2QjggICAgIChiYXNlIDE2KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMKKwkJCQk3NjAgTm9ydGggTWFyeSBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUI5ICAgKGhleCkJCURlbGwgSW5jCiswMDI2QjkgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUJBICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDI2QkEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTiwgVVMgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUJCICAgKGhleCkJCUFwcGxlLCBJbmMKKzAwMjZCQiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQkMgICAoaGV4KQkJR2VuZXJhbCBKYWNrIFRlY2hub2xvZ3kgTHRkLgorMDAyNkJDICAgICAoYmFzZSAxNikJCUdlbmVyYWwgSmFjayBUZWNobm9sb2d5IEx0ZC4KKwkJCQlUaGUgQXJlYSBvZiBBZG1pbmlzdHJhdGlvbiBvZiBMaWFuIEJlaSwKKwkJCQlDaGFuZyBQaW5nCisJCQkJRG9uZyBHdWFuIEd1YW5nIERvbmcgNTIzNTgwCisJCQkJQ0hJTkEKKworMDAtMjYtQkQgICAoaGV4KQkJSlRFQyBDYXJkICYgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKzAwMjZCRCAgICAgKGJhc2UgMTYpCQlKVEVDIENhcmQgJiBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorCQkJCURhYm8gQmxkZywgNEYsIDYxLTEsIEd5ZXN1LWRvbmcsIFNvc2EtZ3UKKwkJCQlCdWNoZW9uIEd5dW5nZ2ktZG8gNDIyLTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1CRSAgIChoZXgpCQlTY2hvb25kZXJiZWVrIEVsZWt0cm9uaWNhIFN5c3RlbWVuIEIuVi4KKzAwMjZCRSAgICAgKGJhc2UgMTYpCQlTY2hvb25kZXJiZWVrIEVsZWt0cm9uaWNhIFN5c3RlbWVuIEIuVi4KKwkJCQlSb2dnZXN0cmFhdCAzLTUKKwkJCQlOaWV1dyBWZW5uZXAgTm9vcmQgSG9sbGFuZCAyMTUzR0MKKwkJCQlORVRIRVJMQU5EUworCiswMC0yNi1CRiAgIChoZXgpCQlTaGVuWmhlbiBUZW1vYmkgU2NpZW5jZSZUZWNoIERldmVsb3BtZW50IENvLixMdGQKKzAwMjZCRiAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBUZW1vYmkgU2NpZW5jZSZUZWNoIERldmVsb3BtZW50IENvLixMdGQKKwkJCQk0Rmxvb3JHLCBKaW5ydW4gVG93ZXIsIDYwMTkgU2hlbm5hbiBSb2FkCisJCQkJRnVUaWFuIERpc3RyaWN0CisJCQkJU2hlblpoZW4gIDUxODAwMAorCQkJCUNISU5BCisKKzAwLTI2LUMwICAgKGhleCkJCUVuZXJneUh1YgorMDAyNkMwICAgICAoYmFzZSAxNikJCUVuZXJneUh1YgorCQkJCTIzMiAzcmQgU3QgQzIwMQorCQkJCUJyb29rbHluIE5ZIDExMjE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1DMSAgIChoZXgpCQlBUlRSQVkgQ08uLCBMVEQuCiswMDI2QzEgICAgIChiYXNlIDE2KQkJQVJUUkFZIENPLiwgTFRELgorCQkJCTVGIFVlbm8gQmxkZywgMS0xNy01IEtvdWVuamlraXRhLAorCQkJCVN1Z2luYW1pLWt1LAorCQkJCVRva3lvICAxNjYtMDAwMgorCQkJCUpBUEFOCisKKzAwLTI2LUMyICAgKGhleCkJCVNDREkgQ28uIExURAorMDAyNkMyICAgICAoYmFzZSAxNikJCVNDREkgQ28uIExURAorCQkJCSM0NTEsIEhhZ2FsLURvbmcsIEdpaGV1bmctR3UsCisJCQkJWW9uZ2luLVNpIEd5ZW9uZ2dpLURvIDQ0Ni05MzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtQzMgICAoaGV4KQkJSW5zaWdodGVrIENvcnAuCiswMDI2QzMgICAgIChiYXNlIDE2KQkJSW5zaWdodGVrIENvcnAuCisJCQkJNUYsTk8uNzU1LENodW5nIENoZW5nIFJkLiwKKwkJCQlDaHVuZyBIbyBDaXR5IFRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LUM0ICAgKGhleCkJCUNhZG1vcyBtaWNyb3N5c3RlbXMgUy5yLmwuCiswMDI2QzQgICAgIChiYXNlIDE2KQkJQ2FkbW9zIG1pY3Jvc3lzdGVtcyBTLnIubC4KKwkJCQlWaWEgUGlldHJvIEZyYXR0aW5pLCAyNTUKKwkJCQlSb21hICAwMDE0OQorCQkJCUlUQUxZCisKKzAwLTI2LUM1ICAgKGhleCkJCUd1YW5nZG9uZyBHb3N1biBUZWxlY29tbXVuaWNhdGlvbnMgQ28uLEx0ZAorMDAyNkM1ICAgICAoYmFzZSAxNikJCUd1YW5nZG9uZyBHb3N1biBUZWxlY29tbXVuaWNhdGlvbnMgQ28uLEx0ZAorCQkJCUd1YW5nZG9uZyBzb2Z0d2FyZSBwYXJrIEQsIE5vLjExLCBDYWlQaW5nIHJvYWQgLCBHdWFuZ3pob3Ugc2NpZW5jZSBjaXR5CisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2NjMKKwkJCQlDSElOQQorCiswMC0yNi1DNiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjZDNiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTI2LUM3ICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAyNkM3ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMjYtQzggICAoaGV4KQkJU3lzdGVtIFNlbnNvcgorMDAyNkM4ICAgICAoYmFzZSAxNikJCVN5c3RlbSBTZW5zb3IKKwkJCQkzODI1IE9oaW8gQXZlbnVlCisJCQkJU2FpbnQgQ2hhcmxlcyBJTCA2MDE3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQzkgICAoaGV4KQkJUHJvdmVudGl4IFN5c3RlbXMsIEluYy4KKzAwMjZDOSAgICAgKGJhc2UgMTYpCQlQcm92ZW50aXggU3lzdGVtcywgSW5jLgorCQkJCTQ1MTggVmFsbGV5ZGFsZSBSb2FkCisJCQkJU3VpdGUgMjAyCisJCQkJQmlybWluZ2hhbSBBTCAzNTI0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQ0EgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNkNBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUNCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjZDQiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1DQyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNkNDICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwIFYKKwkJCQlERU5NQVJLCisKKzAwLTI2LUNEICAgKGhleCkJCVB1cnBsZUNvbW0sIEluYy4KKzAwMjZDRCAgICAgKGJhc2UgMTYpCQlQdXJwbGVDb21tLCBJbmMuCisJCQkJMjYyMCBBdWd1c3RpbmUgRHIuLCBTdGUuIDEwMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1DRSAgIChoZXgpCQlLb3p1bWkgVVNBIENvcnAuCiswMDI2Q0UgICAgIChiYXNlIDE2KQkJS296dW1pIFVTQSBDb3JwLgorCQkJCTMwMDUgSGFydHJpZGdlIFRlcnJhY2UKKwkJCQlXZWxsaW5ndG9uIEZMIDMzNDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1DRiAgIChoZXgpCQlERUtBIFImRAorMDAyNkNGICAgICAoYmFzZSAxNikJCURFS0EgUiZECisJCQkJMzQwIENvbW1lcmNpYWwgU3RyZWV0CisJCQkJTWFuY2hlc3RlciBOSCAwMzEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtRDAgICAoaGV4KQkJU2VtaWhhbGYKKzAwMjZEMCAgICAgKGJhc2UgMTYpCQlTZW1paGFsZgorCQkJCXVsLiBSYWNpYm9yc2thIDE1RC8zMgorCQkJCUtyYWtvdyAgMzAtMzg0CisJCQkJUE9MQU5ECisKKzAwLTI2LUQxICAgKGhleCkJCVMgU3F1YXJlZCBJbm5vdmF0aW9ucyBJbmMuCiswMDI2RDEgICAgIChiYXNlIDE2KQkJUyBTcXVhcmVkIElubm92YXRpb25zIEluYy4KKwkJCQk2ODA3LTEwNCBTdHJlZXQKKwkJCQlFZG1vbnRvbiBBQiBUNkggMkw1CisJCQkJQ0FOQURBCisKKzAwLTI2LUQyICAgKGhleCkJCVBjdWJlIFN5c3RlbXMsIEluYy4KKzAwMjZEMiAgICAgKGJhc2UgMTYpCQlQY3ViZSBTeXN0ZW1zLCBJbmMuCisJCQkJMTg1NyBPJ1Rvb2xlIExhbmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtRDMgICAoaGV4KQkJWmVubyBJbmZvcm1hdGlvbiBTeXN0ZW0KKzAwMjZEMyAgICAgKGJhc2UgMTYpCQlaZW5vIEluZm9ybWF0aW9uIFN5c3RlbQorCQkJCSMxNDA0IEEtRG9uZyBEaWdpdGFsIEVtcGlyZSBCbGRnLCA5ODAtMywgWW91bmd0b25nLWRvbmcsIFlvdW5ndG9uZy1ndQorCQkJCVN1d29uIENpdHkgR3llb25nZ2ktRG8gNDQzLTcwMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1ENCAgIChoZXgpCQlJUkNBIFNwQQorMDAyNkQ0ICAgICAoYmFzZSAxNikJCUlSQ0EgU3BBCisJCQkJVmlhbGUgVmVuZXppYSAzMSAtIEMuUC4gMjQ4CisJCQkJU2FuIFZlbmRlbWlhbm8gKFRyZXZpc28pIEl0YWx5IDMxMDIwCisJCQkJSVRBTFkKKworMDAtMjYtRDUgICAoaGV4KQkJT3J5IFNvbHVjb2VzIGVtIENvbWVyY2lvIGRlIEluZm9ybWF0aWNhIEx0ZGEuCiswMDI2RDUgICAgIChiYXNlIDE2KQkJT3J5IFNvbHVjb2VzIGVtIENvbWVyY2lvIGRlIEluZm9ybWF0aWNhIEx0ZGEuCisJCQkJQXYuIFVuaXNpbm9zLCA2MTUKKwkJCQlTYW8gTGVvcG9sZG8gUlMgOTMwMjIwMDAKKwkJCQlCUkFaSUwKKworMDAtMjYtRDYgICAoaGV4KQkJTmluZ2JvIEFuZHkgT3B0b2VsZWN0cm9uaWMgQ28uLCBMdGQuCiswMDI2RDYgICAgIChiYXNlIDE2KQkJTmluZ2JvIEFuZHkgT3B0b2VsZWN0cm9uaWMgQ28uLCBMdGQuCisJCQkJTGFuamlhbmcgU3RyZWV0IEluZHVzdHJpYWwgWm9uZQorCQkJCVl1eWFvIFpoZWppYW5nIDMxNTQwMAorCQkJCUNISU5BCisKKzAwLTI2LUQ3ICAgKGhleCkJCVhpYW1lbiBCQiBFbGVjdHJvbiAmIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDI2RDcgICAgIChiYXNlIDE2KQkJWGlhbWVuIEJCIEVsZWN0cm9uICYgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkzMDMsIEFuZ3llIEJ1aWxkaW5nLCBUb3JjaCBIaWdoLXRlY2ggRGV2ZWxvcG1lbnQgWm9uZQorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA5CisJCQkJQ0hJTkEKKworMDAtMjYtRDggICAoaGV4KQkJTWFnaWMgUG9pbnQgSW5jLgorMDAyNkQ4ICAgICAoYmFzZSAxNikJCU1hZ2ljIFBvaW50IEluYy4KKwkJCQlTdWl0ZSAyMDMsIEJ1aWxkaW5nIDE3LCBOby4gMjk1IExpbiBOYW4gUm9hZCwgUHVkb25nIFNvZnR3YXJlIFBhcmsgU2FubGluIFdvcmxkIEV4cG8gQmxvY2sKKwkJCQlTaGFuZ2hhaSAgMjAwMDEyNgorCQkJCUNISU5BCisKKzAwLTI2LUQ5ICAgKGhleCkJCVBhY2UgcGxjCiswMDI2RDkgICAgIChiYXNlIDE2KQkJUGFjZSBwbGMKKwkJCQlTYWx0cyBNaWxsCisJCQkJVmljdG9yaWEgUm9hZAorCQkJCUJyYWRmb3JkIFdlc3QgWW9ya3NoaXJlIEJEMTggM0xGCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjYtREEgICAoaGV4KQkJVW5pdmVyc2FsIE1lZGlhIENvcnBvcmF0aW9uIC9TbG92YWtpYS8gcy5yLm8uCiswMDI2REEgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIE1lZGlhIENvcnBvcmF0aW9uIC9TbG92YWtpYS8gcy5yLm8uCisJCQkJTWlja2lld2ljem92YSA3MTA0LzE0CisJCQkJQnJhdGlzbGF2YSAgODExIDA3CisJCQkJU0xPVkFLSUEKKworMDAtMjYtREIgICAoaGV4KQkJSW9uaWNzIEVNUyBJbmMuCiswMDI2REIgICAgIChiYXNlIDE2KQkJSW9uaWNzIEVNUyBJbmMuCisJCQkJQ2FybWVscmF5IEluZHVzdHJpYWwgUGFyayAyLCBCcmd5LiBUdWxvCisJCQkJQ2FsYW1iYSBMYWd1bmEgNDAyNworCQkJCVBISUxJUFBJTkVTCisKKzAwLTI2LURDICAgKGhleCkJCU9wdGljYWwgU3lzdGVtcyBEZXNpZ24KKzAwMjZEQyAgICAgKGJhc2UgMTYpCQlPcHRpY2FsIFN5c3RlbXMgRGVzaWduCisJCQkJNy8xIFZ1a28gUGxhY2UKKwkJCQlXYXJyaWV3b29kIE5TVyAyMTAyCisJCQkJQVVTVFJBTElBCisKKzAwLTI2LUREICAgKGhleCkJCUZpdmFsIENvcnBvcmF0aW9uCiswMDI2REQgICAgIChiYXNlIDE2KQkJRml2YWwgQ29ycG9yYXRpb24KKwkJCQlyb29tIDIwMS03IHNhZ2l0dGFyaXVzIEIKKwkJCQl3dXhpIHNvZnR3YXJlIHBhcmsKKwkJCQlqaWFuZ3N1IHByb3ZpbmNlIDIxNDAyOAorCQkJCUNISU5BCisKKzAwLTI2LURFICAgKGhleCkJCUZESSBNQVRFTEVDCiswMDI2REUgICAgIChiYXNlIDE2KQkJRkRJIE1BVEVMRUMKKwkJCQlSb3V0ZSBkZSBzYWludCBzeW1waG9yaWVuCisJCQkJQlAgNjkKKwkJCQlMZXMgbGFuZGVzIEfpbnVzc29uICA4NTEzMAorCQkJCUZSQU5DRQorCiswMC0yNi1ERiAgIChoZXgpCQlUYWlEb2MgVGVjaG5vbG9neSBDb3JwLgorMDAyNkRGICAgICAoYmFzZSAxNikJCVRhaURvYyBUZWNobm9sb2d5IENvcnAuCisJCQkJN0YsIE5vLiAxMjcsIFd1Z29uZyAybmQgUmQuLCAyNDg4OCBXdWd1IFRvd25zaGlwCisJCQkJVGFpcGVpIENvdW50eSBUYWl3YW4gMjQ4ODgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LUUwICAgKGhleCkJCUFTSVRFUQorMDAyNkUwICAgICAoYmFzZSAxNikJCUFTSVRFUQorCQkJCTVGLCBET05HWU9VTkcgQmxkZywzODItNixZYXRhcCBkb25nCisJCQkJQnVuZGFuZyBHdSwKKwkJCQlTdW5nIE5hbSBzaSBLeW91bmdnaS1kbyA0NjMtODI3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LUUxICAgKGhleCkJCVN0YW5mb3JkIFVuaXZlcnNpdHksIE9wZW5GbG93IEdyb3VwCiswMDI2RTEgICAgIChiYXNlIDE2KQkJU3RhbmZvcmQgVW5pdmVyc2l0eSwgT3BlbkZsb3cgR3JvdXAKKwkJCQkzNTMgU2VycmEgTWFsbAorCQkJCUVFIC0gQ29tcHV0ZXIgU3lzdGVtcyBMYWJvcmF0b3J5CisJCQkJU3RhbmZvcmQgQ0EgOTQzMDUtOTAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtRTIgICAoaGV4KQkJTEcgRWxlY3Ryb25pY3MKKzAwMjZFMiAgICAgKGJhc2UgMTYpCQlMRyBFbGVjdHJvbmljcworCQkJCTYwLTM5LEdhc2FuLWRvbmcsR3VtY2hlb24tZ3UKKwkJCQlTZW91bCAgMTUzLTAyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1FMyAgIChoZXgpCQlEVEkKKzAwMjZFMyAgICAgKGJhc2UgMTYpCQlEVEkKKwkJCQlSdWUgZGUgbGEgZ2FyZSwgMzUKKwkJCQlOQU5JTk5FIE5BTVVSIDUxMDAKKwkJCQlCRUxHSVVNCisKKzAwLTI2LUU0ICAgKGhleCkJCUNBTkFMIE9WRVJTRUFTCiswMDI2RTQgICAgIChiYXNlIDE2KQkJQ0FOQUwgT1ZFUlNFQVMKKwkJCQk0OCBxdWFpIGR1IHBvaW50IGR1IGpvdXIKKwkJCQlCb3Vsb2duZS1CaWxsYW5jb3VydCAgOTI2NTkKKwkJCQlGUkFOQ0UKKworMDAtMjYtRTUgICAoaGV4KQkJQUVHIFBvd2VyIFNvbHV0aW9ucworMDAyNkU1ICAgICAoYmFzZSAxNikJCUFFRyBQb3dlciBTb2x1dGlvbnMKKwkJCQlFbWlsIFNpZXBtYW5uc3RyLiAzMgorCQkJCVdhcnN0ZWluIE5SVyA1OTU4MQorCQkJCUdFUk1BTlkKKworMDAtMjYtRTYgICAoaGV4KQkJVmlzaW9uaGl0ZWNoIENvLiwgTHRkLgorMDAyNkU2ICAgICAoYmFzZSAxNikJCVZpc2lvbmhpdGVjaCBDby4sIEx0ZC4KKwkJCQlWaXNpb24gYmxkZy4gMTUwLTMKKwkJCQlTaW1nb2stRG9uZywgV29ubWktS3UKKwkJCQlCdWNob24gS3l1bmdnaS1EbyA0MjAtODIyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LUU3ICAgKGhleCkJCVNoYW5naGFpIE9OTEFOIENvbW11bmljYXRpb24gVGVjaC4gQ28uLCBMdGQuCiswMDI2RTcgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgT05MQU4gQ29tbXVuaWNhdGlvbiBUZWNoLiBDby4sIEx0ZC4KKwkJCQkzRiwgNkMsIE5vLiAxNjU4LCBHdW1laSBSb2FkLCBYdWh1aSBEaXN0cmljdAorCQkJCVNoYW5naGFpICAyMDAyMzMKKwkJCQlDSElOQQorCiswMC0yNi1FOCAgIChoZXgpCQlNdXJhdGEgTWFudWZhY3R1cmluZyBDby4sIEx0ZC4KKzAwMjZFOCAgICAgKGJhc2UgMTYpCQlNdXJhdGEgTWFudWZhY3R1cmluZyBDby4sIEx0ZC4KKwkJCQkxMC0xLCBIaWdhc2hpa290YXJpIDEtY2hvbWUKKwkJCQlOYWdhb2tha3lvLXNoaSBLeW90byA2MTctODU1NQorCQkJCUpBUEFOCisKKzAwLTI2LUU5ICAgKGhleCkJCVNQIENvcnAKKzAwMjZFOSAgICAgKGJhc2UgMTYpCQlTUCBDb3JwCisJCQkJR3VybyAzLWRvbmcgLEd1cm8tZ3UKKwkJCQlBY2UgVGVjaG5vIDggQ2hhIDEzMDUKKwkJCQlTZW91bCAgMTUyLTc4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1FQSAgIChoZXgpCQlDaGVlcmNoaXAgRWxlY3Ryb25pYyBUZWNobm9sb2d5IChTaGFuZ0hhaSkgQ28uLCBMdGQuCiswMDI2RUEgICAgIChiYXNlIDE2KQkJQ2hlZXJjaGlwIEVsZWN0cm9uaWMgVGVjaG5vbG9neSAoU2hhbmdIYWkpIENvLiwgTHRkLgorCQkJCVJPT00gMTIwMiwgTk8uIDUxLCA3IEFyZWEsIE5PLiAxNDY3IENBT0JBTyBST0FEOworCQkJCU1JTkhBTkcgQVJFQQorCQkJCVNIQU5HSEFJICAyMDExMDEKKwkJCQlDSElOQQorCiswMC0yNi1FQiAgIChoZXgpCQlBZHZhbmNlZCBTcGVjdHJ1bSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAyNkVCICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIFNwZWN0cnVtIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMUYuLCBOby42NyBKaG9uZ2poZW5nIFJkLgorCQkJCVNpbmpodWFuZyBUYWl3YW4gMjQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi1FQyAgIChoZXgpCQlMZWdyYW5kIEhvbWUgU3lzdGVtcywgSW5jCiswMDI2RUMgICAgIChiYXNlIDE2KQkJTGVncmFuZCBIb21lIFN5c3RlbXMsIEluYworCQkJCTMwMSBGdWxsaW5nIE1pbGwgUmQKKwkJCQlTdWl0ZSBHCisJCQkJTWlkZGxldG93biBQQSAxNzA1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtRUQgICAoaGV4KQkJenRlIGNvcnBvcmF0aW9uCiswMDI2RUQgICAgIChiYXNlIDE2KQkJenRlIGNvcnBvcmF0aW9uCisJCQkJMTIvRiB6dGUgcGxhemEsa2VqaSBSb2FkIFNvdXRoLEhJLVRlY2ggSW5kdXN0cmlhbCBQYXJrLE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlzaGVuemhlbiBndWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjYtRUUgICAoaGV4KQkJVEtNIEdtYkgKKzAwMjZFRSAgICAgKGJhc2UgMTYpCQlUS00gR21iSAorCQkJCVNjaGxvc3NzdHJh32UgMTIzCisJCQkJTfZuY2hlbmdsYWRiYWNoIE5SVyA0MTIzOAorCQkJCUdFUk1BTlkKKworMDAtMjYtRUYgICAoaGV4KQkJVGVjaG5vbG9neSBBZHZhbmNlbWVudCBHcm91cCwgSW5jLgorMDAyNkVGICAgICAoYmFzZSAxNikJCVRlY2hub2xvZ3kgQWR2YW5jZW1lbnQgR3JvdXAsIEluYy4KKwkJCQkyMjM1NSBUYWcgV2F5CisJCQkJRHVsbGVzIFZBIDIwMTY2LTkzMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUYwICAgKGhleCkJCWNUcml4cyBJbnRlcm5hdGlvbmFsIEdtYkguCiswMDI2RjAgICAgIChiYXNlIDE2KQkJY1RyaXhzIEludGVybmF0aW9uYWwgR21iSC4KKwkJCQlMaWVmZXJpbmdlciBIYXVwdHN0ci4gMTQwCisJCQkJU2FsemJ1cmcgU2FsemJ1cmcgNTAyMAorCQkJCUFVU1RSSUEKKworMDAtMjYtRjEgICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorMDAyNkYxICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkLgorCQkJCVJvc2V2aWxsZSBDYWxpZm9ybmlhIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1GMiAgIChoZXgpCQlOZXRnZWFyCiswMDI2RjIgICAgIChiYXNlIDE2KQkJTmV0Z2VhcgorCQkJCTM1MCBFYXN0IFBsdW1lcmlhIERyaXZlCisJCQkJU2FuIEpvc2UgQ2FsaWZvcm5pYSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtRjMgICAoaGV4KQkJU01DIE5ldHdvcmtzCiswMDI2RjMgICAgIChiYXNlIDE2KQkJU01DIE5ldHdvcmtzCisJCQkJMjAgTWFzb24KKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUY0ICAgKGhleCkJCU5lc3NsYWIKKzAwMjZGNCAgICAgKGJhc2UgMTYpCQlOZXNzbGFiCisJCQkJNDg5LTIgTWFldGFuIDMtZG9uZywgWWVvbmcgVG9uZy1ndQorCQkJCVN1d29uLXNpIEd5ZW9uZ2dpLWRvIDQ0My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtRjUgICAoaGV4KQkJWFJQTFVTIEluYy4KKzAwMjZGNSAgICAgKGJhc2UgMTYpCQlYUlBMVVMgSW5jLgorCQkJCSM4MDUgQWNlIFRlY2hubyBUb3dlciAybmQgMTk3LTE3CisJCQkJR3VybzNEb25nLCBHdXJvLUd1CisJCQkJU2VvdWwgIDE1Mi03NjYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtRjYgICAoaGV4KQkJTWlsaXRhcnkgQ29tbXVuaWNhdGlvbiBJbnN0aXR1dGUKKzAwMjZGNiAgICAgKGJhc2UgMTYpCQlNaWxpdGFyeSBDb21tdW5pY2F0aW9uIEluc3RpdHV0ZQorCQkJCXVsLiBXYXJzemF3c2thIDIyQQorCQkJCVplZ3J6ZSAgMDUtMTMwCisJCQkJUE9MQU5ECisKKzAwLTI2LUY3ICAgKGhleCkJCUluZm9zeXMgVGVjaG5vbG9naWVzIEx0ZC4KKzAwMjZGNyAgICAgKGJhc2UgMTYpCQlJbmZvc3lzIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJNDQsIEVsZWN0cm9uaWNzIENpdHkKKwkJCQlIb3N1ciBSb2FkCisJCQkJQmFuZ2Fsb3JlIEthcm5ha2F0YSA1NjAxMDAKKwkJCQlJTkRJQQorCiswMC0yNi1GOCAgIChoZXgpCQlHb2xkZW4gSGlnaHdheSBJbmR1c3RyeSBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKzAwMjZGOCAgICAgKGJhc2UgMTYpCQlHb2xkZW4gSGlnaHdheSBJbmR1c3RyeSBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKwkJCQlGbG9vciA3LCBCbG9jayA4LCBWaXNpb24gU2hlbnpoZW4gQnVzaW5lc3MgUGFyaywgTm8uOSBHYW94aW4gOXRoIFNvdXRoIFJvYWQKKwkJCQlTaGVuemhlbiBIaS10ZWNoIEluZHVzdHJpYWwgUGFyaywgTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIENpdHkgR3Vhbmdkb25nIFByb3ZpbmNlIDUxODA1NworCQkJCUNISU5BCisKKzAwLTI2LUY5ICAgKGhleCkJCVMuRS5NLiBzcmwKKzAwMjZGOSAgICAgKGJhc2UgMTYpCQlTLkUuTS4gc3JsCisJCQkJdmlhIExlY2NvLCA2MQorCQkJCVZpbWVyY2F0ZSBNb256YSBCcmlhbnphIDIwMDU5CisJCQkJSVRBTFkKKworMDAtMjYtRkEgICAoaGV4KQkJQmFuZFJpY2ggSW5jLgorMDAyNkZBICAgICAoYmFzZSAxNikJCUJhbmRSaWNoIEluYy4KKwkJCQk3Ri4sIE5vLjE4OCwgQmFvY2lhbyBSb2FkCisJCQkJU2luZGlhbiBDaXR5IFRhaXBlaSAyMzE0NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtRkIgICAoaGV4KQkJQWlyRGlvIFdpcmVsZXNzLCBJbmMuCiswMDI2RkIgICAgIChiYXNlIDE2KQkJQWlyRGlvIFdpcmVsZXNzLCBJbmMuCisJCQkJMTMtNSwgTm8uIDc5LCBTZWMuIDEsIEhzaW4gVGFpIFd1IFJvYWQKKwkJCQlIc2ljaGloIENpdHksIFRhaXBlaSBDb3VudHkgVGFpd2FuIDIyMTAxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi1GQyAgIChoZXgpCQlBY1NpUCBUZWNobm9sb2d5IENvcnAuCiswMDI2RkMgICAgIChiYXNlIDE2KQkJQWNTaVAgVGVjaG5vbG9neSBDb3JwLgorCQkJCTNGLiwgTm8uMjIsIERhbGluIFJkLiwKKwkJCQlUYW95dWFuIENpdHksIFRhb3l1YW4gQ291bnR5IDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtRkQgICAoaGV4KQkJSW50ZXJhY3RpdmUgSW50ZWxsaWdlbmNlCiswMDI2RkQgICAgIChiYXNlIDE2KQkJSW50ZXJhY3RpdmUgSW50ZWxsaWdlbmNlCisJCQkJNzYwMSBJbnRlcmFjdGl2ZSBXYXkKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyNzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUZFICAgKGhleCkJCU1LRCBUZWNobm9sb2d5IEluYy4KKzAwMjZGRSAgICAgKGJhc2UgMTYpCQlNS0QgVGVjaG5vbG9neSBJbmMuCisJCQkJIFIuQjgsIE5vLjEgTGlzaW5nIDFzdCAgUmQuLAorCQkJCUhzaW5jaHUgIDMwMDc4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi1GRiAgIChoZXgpCQlSZXNlYXJjaCBJbiBNb3Rpb24KKzAwMjZGRiAgICAgKGJhc2UgMTYpCQlSZXNlYXJjaCBJbiBNb3Rpb24KKwkJCQkyOTUgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCAzVzgKKwkJCQlDQU5BREEKKworMDAtMjctMDAgICAoaGV4KQkJU2hlbnpoZW4gU2lnbGVudCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAyNzAwICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFNpZ2xlbnQgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlCVUlMRElORyBBOCxUQU5HTEFORyBJTkRVU1RSSUFMIFpPTkUsWElMSSxOQU5TSEFOCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzAwLTI3LTAxICAgKGhleCkJCUlOQ09zdGFydGVjIEdtYkgKKzAwMjcwMSAgICAgKGJhc2UgMTYpCQlJTkNPc3RhcnRlYyBHbWJICisJCQkJUmhlaW5zdHIuIDE3CisJCQkJVGVsdG93IEdlcm1hbnkgMTQ1MTMKKwkJCQlHRVJNQU5ZCisKKzAwLTI3LTAyICAgKGhleCkJCVNvbGFyRWRnZSBUZWNobm9sb2dpZXMKKzAwMjcwMiAgICAgKGJhc2UgMTYpCQlTb2xhckVkZ2UgVGVjaG5vbG9naWVzCisJCQkJMSBBYmJhIEViYW4gU3QuCisJCQkJUE9CIDEyNzY2CisJCQkJSGVyemVsaWEgIDQ2NzI1CisJCQkJSVNSQUVMCisKKzAwLTI3LTAzICAgKGhleCkJCVRlc3RlY2ggRWxlY3Ryb25pY3MgUHRlIEx0ZAorMDAyNzAzICAgICAoYmFzZSAxNikJCVRlc3RlY2ggRWxlY3Ryb25pY3MgUHRlIEx0ZAorCQkJCUJsb2NrIDExOCwgIzA1LTExMCwKKwkJCQlBbGp1bmllZCBBdmUgMgorCQkJCVNpbmdhcG9yZSAgMzgwMTE4CisJCQkJU0lOR0FQT1JFCisKKzAwLTI3LTA0ICAgKGhleCkJCUFjY2VsZXJhdGVkIENvbmNlcHRzLCBMTEMKKzAwMjcwNCAgICAgKGJhc2UgMTYpCQlBY2NlbGVyYXRlZCBDb25jZXB0cywgTExDCisJCQkJNDAxNyBXIERyIE1hcnRpbiBMdXRoZXIgS2luZyBKciBCbHZkCisJCQkJVGFtcGEgRkwgMzM2MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI3LTA1ICAgKGhleCkJCVNlY3Ryb25pYworMDAyNzA1ICAgICAoYmFzZSAxNikJCVNlY3Ryb25pYworCQkJCVouSS4gTGVzIFNhdWxuaWVycworCQkJCVNhaW50ZS1NYXVyZSBkZSBUb3VyYWluZSAgMzc4MDAKKwkJCQlGUkFOQ0UKKworMDAtMjctMDYgICAoaGV4KQkJWU9JU1lTCiswMDI3MDYgICAgIChiYXNlIDE2KQkJWU9JU1lTCisJCQkJMzA5LTUyIFNVTkdTVS0yR0EsIDFET05HLCBTVU5HRE9ORy1HVQorCQkJCVNFT1VMICAxMzMtODI3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI3LTA3ICAgKGhleCkJCUxpZnQgQ29tcGxleCBEUywgSlNDCiswMDI3MDcgICAgIChiYXNlIDE2KQkJTGlmdCBDb21wbGV4IERTLCBKU0MKKwkJCQltaWtyb3JheW9uIEdvcnNreSwgNgorCQkJCU5vdm9zaWJpcnNrICA2MzAwNzMKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjctMDggICAoaGV4KQkJTm9yZGlhZyBBU0EKKzAwMjcwOCAgICAgKGJhc2UgMTYpCQlOb3JkaWFnIEFTQQorCQkJCUZyeXNqYXZlaWVuIDQwCisJCQkJT3NsbyAgMDg4NAorCQkJCU5PUldBWQorCiswMC0yNy0wOSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMjcwOSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yNy0wQSAgIChoZXgpCQlJRUUgUy5BLgorMDAyNzBBICAgICAoYmFzZSAxNikJCUlFRSBTLkEuCisJCQkJWkFFIFdlaWVyZ2V3YW4KKwkJCQkxMSwgcnVlIEVkbW9uZCBSZXV0ZXIKKwkJCQlDb250ZXJuICBMLTUzMjYKKwkJCQlMVVhFTUJPVVJHCisKKzAwLTI3LTBCICAgKGhleCkJCUFkdXJhIFRlY2hub2xvZ2llcworMDAyNzBCICAgICAoYmFzZSAxNikJCUFkdXJhIFRlY2hub2xvZ2llcworCQkJCTI4IFNlY29uZCBTdHJlZXQKKwkJCQk0dGggRmxvb3IKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNy0wQyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI3MEMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjctMEQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNzBEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI3LTBFICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAyNzBFICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMjctMEYgICAoaGV4KQkJRW52aXNpb25ub3ZhdGlvbiBJbmMKKzAwMjcwRiAgICAgKGJhc2UgMTYpCQlFbnZpc2lvbm5vdmF0aW9uIEluYworCQkJCTQgV2FyZWhhbSBEcml2ZQorCQkJCU1pc3Npc3NhdWdhIE9udGFyaW8gTDVNIDFCNgorCQkJCUNBTkFEQQorCiswMC0yNy0xMCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjcxMCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTI3LTExICAgKGhleCkJCUxhblBybyBJbmMKKzAwMjcxMSAgICAgKGJhc2UgMTYpCQlMYW5Qcm8gSW5jCisJCQkJMTg4MCBOVyA5M0F2CisJCQkJTWlhbWkgRmxvcmlkYSAzMzE3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjctMTIgICAoaGV4KQkJTWF4VmlzaW9uIExMQworMDAyNzEyICAgICAoYmFzZSAxNikJCU1heFZpc2lvbiBMTEMKKwkJCQk0OTUgUHJvZHVjdGlvbiBBdmUKKwkJCQlNYWRpc29uIEFMIDM1NzU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNy0xMyAgIChoZXgpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzAwMjcxMyAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKwkJCQkxNDEsIExBTkUgMzUxLCBTRUMuMSwgVEFJUElORyBSRC4KKwkJCQlUU0FPVFVFTgorCQkJCU5BTlRPVSA1NDI2MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjctMTQgICAoaGV4KQkJR3JhaW5tdXN0YXJkcywgQ28sbHRkLgorMDAyNzE0ICAgICAoYmFzZSAxNikJCUdyYWlubXVzdGFyZHMsIENvLGx0ZC4KKwkJCQlIRUlXQSBNSyBCbGRnLDItNDgtNCxOaWhvbmJhc2hpLUhhbWEtY2hvCisJCQkJQ2h1by1rdSwKKwkJCQlUb2t5byAgMTAzLTAwMDcKKwkJCQlKQVBBTgorCiswMC0yNy0xNSAgIChoZXgpCQlSZWJvdW5kIFRlbGVjb20uIENvLiwgTHRkCiswMDI3MTUgICAgIChiYXNlIDE2KQkJUmVib3VuZCBUZWxlY29tLiBDby4sIEx0ZAorCQkJCTEyRixCdWlsZGluZyBOby44MixOby4xMTk4LE5vcnRoIFFpbnpob3UgUmQsCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTI3LTE2ICAgKGhleCkJCUFkYWNoaS1TeW9rYWkgQ28uLCBMdGQuCiswMDI3MTYgICAgIChiYXNlIDE2KQkJQWRhY2hpLVN5b2thaSBDby4sIEx0ZC4KKwkJCQkyMjgtMiBIYXphbWEgTWFraQorCQkJCUZ1a3VjaGl5YW1hLXNoaSBLeW90byA2MjAtMDkxMworCQkJCUpBUEFOCisKKzAwLTI3LTE3ICAgKGhleCkJCUNFIERpZ2l0YWwoWmhlbmppYW5nKUNvLixMdGQKKzAwMjcxNyAgICAgKGJhc2UgMTYpCQlDRSBEaWdpdGFsKFpoZW5qaWFuZylDby4sTHRkCisJCQkJV2VpIDMgUm9hZCwgRGluZ21hbywgRWNvLkRldi5ab25lLAorCQkJCUppYW5nc3UKKwkJCQlaaGVuamlhbmcgIDIxMjAwOQorCQkJCUNISU5BCisKKzAwLTI3LTE4ICAgKGhleCkJCVN1emhvdSBORVcgU0VBVU5JT04gVmlkZW8gVGVjaG5vbG9neSBDby4sTHRkCiswMDI3MTggICAgIChiYXNlIDE2KQkJU3V6aG91IE5FVyBTRUFVTklPTiBWaWRlbyBUZWNobm9sb2d5IENvLixMdGQKKwkJCQkzODMgSmluZ21hbyBSb2FkLCBJbmR1c3RyeSBQYXJrCisJCQkJU3V6aG91IEppYW5nc3UgMjE1MDIxCisJCQkJQ0hJTkEKKworMDAtMjctMTkgICAoaGV4KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCiswMDI3MTkgICAgIChiYXNlIDE2KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCisJCQkJQnVpbGRpbmcgNywgU2Vjb25kIFBhcnQsIEhvbmdodWFsaW5nIEluZHVzdHJpYWwgWm9uZSwgWGlsaSB0b3duCisJCQkJTmFuc2hhbgorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0yNy0xQSAgIChoZXgpCQlHZWVub3ZvIFRlY2hub2xvZ3kgTHRkLgorMDAyNzFBICAgICAoYmFzZSAxNikJCUdlZW5vdm8gVGVjaG5vbG9neSBMdGQuCisJCQkJVW5pdCA0MDIsIDQvRi4sIFRvd2VyIEksU0hVSSBRSU5HIE1VIEhVQSBZVUFOLAorCQkJCUhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODAKKwkJCQlDSElOQQorCiswMC0yNy0xQiAgIChoZXgpCQlBbGVjIFNpY2hlcmhlaXRzc3lzdGVtZSBHbWJICiswMDI3MUIgICAgIChiYXNlIDE2KQkJQWxlYyBTaWNoZXJoZWl0c3N5c3RlbWUgR21iSAorCQkJCUZyaWVkcmljaC1Ib2Vsc2NoZXItU3RyYXNzZSAzNjcKKwkJCQlEb3J0bXVuZCAgNDQzMjgKKwkJCQlHRVJNQU5ZCisKKzAwLTI3LTFDICAgKGhleCkJCU1FUkNVUlkgQ09SUE9SQVRJT04KKzAwMjcxQyAgICAgKGJhc2UgMTYpCQlNRVJDVVJZIENPUlBPUkFUSU9OCisJCQkJNTMxLTYsIEdhandhZG9uZywKKwkJCQlTZW9ndQorCQkJCUluY2hlb24gIDQwNC0yNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjctMUQgICAoaGV4KQkJQ29tYmEgVGVsZWNvbSBTeXN0ZW1zIChDaGluYSkgTHRkLgorMDAyNzFEICAgICAoYmFzZSAxNikJCUNvbWJhIFRlbGVjb20gU3lzdGVtcyAoQ2hpbmEpIEx0ZC4KKwkJCQkxMCBTaGVuemhvdSBSb2FkCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2NjMKKwkJCQlDSElOQQorCiswMC0yNy0xRSAgIChoZXgpCQlYYWd5bCBDb21tdW5pY2F0aW9ucworMDAyNzFFICAgICAoYmFzZSAxNikJCVhhZ3lsIENvbW11bmljYXRpb25zCisJCQkJMTY2NyBNYXJyb25pZXIgQ3J0CisJCQkJQ3VtYmVybGFuZCBPbnRhcmlvIEs0QyAxQzIKKwkJCQlDQU5BREEKKworMDAtMjctMUYgICAoaGV4KQkJTUlQUk8gRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzAwMjcxRiAgICAgKGJhc2UgMTYpCQlNSVBSTyBFbGVjdHJvbmljcyBDby4sIEx0ZAorCQkJCTgxNCxQZWlrYW5nIFJvYWQKKwkJCQlDaGlheWkgIDYwMDk2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNy0yMCAgIChoZXgpCQlORVctU09MIENPTQorMDAyNzIwICAgICAoYmFzZSAxNikJCU5FVy1TT0wgQ09NCisJCQkJQnVjaGVvbiBUZWNub3BhcmsgNDAzLTYwMgorCQkJCVlha2RhZS1kb25nIFdvbm1pLWd1CisJCQkJQnVjaGVvbiBjaXR5IEt5b3VuZ2tpLWRvIDQyMC03MzQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjctMjEgICAoaGV4KQkJU2hlbnpoZW4gQmFvYW4gRmVuZGEgSW5kdXN0cmlhbCBDby4sIEx0ZAorMDAyNzIxICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEJhb2FuIEZlbmRhIEluZHVzdHJpYWwgQ28uLCBMdGQKKwkJCQlGZW5kYSBIaS1UZWNoIFBhcmsKKwkJCQlaaG91c2hpIFJvYWQsIFNoaXlhbgorCQkJCUJhb2FuIFNoZW56aGVuIDUxODEwOAorCQkJCUNISU5BCisKKzAwLTI3LTIyICAgKGhleCkJCVViaXF1aXRpIE5ldHdvcmtzCiswMDI3MjIgICAgIChiYXNlIDE2KQkJVWJpcXVpdGkgTmV0d29ya3MKKwkJCQk5MSBFLiBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI3LUY4ICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCiswMDI3RjggICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHIKKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMDAgICAoaGV4KQkJQUxMV0VMTCBURUNITk9MT0dZIENPUlAuCiswMDMwMDAgICAgIChiYXNlIDE2KQkJQUxMV0VMTCBURUNITk9MT0dZIENPUlAuCisJCQkJNEYsICMxNSwgTEFORTMsIFNFQy4yCisJCQkJQ0hJRU4gS1dPIE4uIFJPQUQgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTAxICAgKGhleCkJCVNNUAorMDAzMDAxICAgICAoYmFzZSAxNikJCVNNUAorCQkJCTIyLCBSVUUgREVTIENPU01PTkFVVEVTCisJCQkJMzE0MDAgVE9VTE9VU0UKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMzAtMDIgICAoaGV4KQkJRXhwYW5kIE5ldHdvcmtzCiswMDMwMDIgICAgIChiYXNlIDE2KQkJRXhwYW5kIE5ldHdvcmtzCisJCQkJQXRpZGltIFRlY2ggUGFyaywgQmxkZy4gNAorCQkJCVAuTy4gQm94IDU4MTQyCisJCQkJVGVsLUF2aXYgNjE1ODAgIAorCQkJCUlTUkFFTAorCiswMC0zMC0wMyAgIChoZXgpCQlQaGFzeXMgTHRkLgorMDAzMDAzICAgICAoYmFzZSAxNikJCVBoYXN5cyBMdGQuCisJCQkJIzEwMC05NDA0IDQxc3QgQXZlbnVlCisJCQkJRWRtb250b24gQWxiZXJ0YSBUNlggMVIyIAorCQkJCUNBTkFEQQorCiswMC0zMC0wNCAgIChoZXgpCQlMRUFEVEVLIFJFU0VBUkNIIElOQy4KKzAwMzAwNCAgICAgKGJhc2UgMTYpCQlMRUFEVEVLIFJFU0VBUkNIIElOQy4KKwkJCQkxOEYsIE5vLjE2NiwgQ2hpZW4tWWkgUm9hZAorCQkJCUNodW5nLUhvIFRhaXBlaSwKKwkJCQlIc2llbiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC0wNSAgIChoZXgpCQlGdWppdHN1IFNpZW1lbnMgQ29tcHV0ZXJzCiswMDMwMDUgICAgIChiYXNlIDE2KQkJRnVqaXRzdSBTaWVtZW5zIENvbXB1dGVycworCQkJCUJ1ZXJnZXJtZWlzdGVyIHVscmljaCAxMDAKKwkJCQk4NjE5OSBBdWdzYnVyZyAgCisJCQkJR0VSTUFOWQorCiswMC0zMC0wNiAgIChoZXgpCQlTVVBFUlBPV0VSIENPTVBVVEVSCiswMDMwMDYgICAgIChiYXNlIDE2KQkJU1VQRVJQT1dFUiBDT01QVVRFUgorCQkJCUVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCU5PLiAyMCBXVS1HT05HIDZUSCBST0FEIFdVLUtVIElORFVTVFInTAorCQkJCVRhaXBlaSAyNDggIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtMDcgICAoaGV4KQkJT1BUSSwgSU5DLgorMDAzMDA3ICAgICAoYmFzZSAxNikJCU9QVEksIElOQy4KKwkJCQkxNDQwIE1DQ0FSVEhZIEJMVkQuCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTA4ICAgKGhleCkJCUFWSU8gRElHSVRBTCwgSU5DLgorMDAzMDA4ICAgICAoYmFzZSAxNikJCUFWSU8gRElHSVRBTCwgSU5DLgorCQkJCTk1NyBJTkRVU1RSSUFMIFJPQUQKKwkJCQlTQU4gQ0FSTE9TIENBIDk0MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0wOSAgIChoZXgpCQlUYWNoaW9uIE5ldHdvcmtzLCBJbmMuCiswMDMwMDkgICAgIChiYXNlIDE2KQkJVGFjaGlvbiBOZXR3b3JrcywgSW5jLgorCQkJCTIgTWVyaWRpYW4gUm9hZAorCQkJCUVhdG9udG93biBOSiAwNzcyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMEEgICAoaGV4KQkJQVpURUNIIEVsZWN0cm9uaWNzIFB0ZSBMdGQKKzAwMzAwQSAgICAgKGJhc2UgMTYpCQlBWlRFQ0ggRWxlY3Ryb25pY3MgUHRlIEx0ZAorCQkJCTMxIFVCSSBST0FEIDEKKwkJCQlBWlRFQ0ggQlVJTERJTkcKKwkJCQk0MDg2OTQKKwkJCQlTSU5HQVBPUkUKKworMDAtMzAtMEIgICAoaGV4KQkJbVBIQVNFIFRlY2hub2xvZ2llcywgSW5jLgorMDAzMDBCICAgICAoYmFzZSAxNikJCW1QSEFTRSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyNTAgMTR0aCBTdHJlZXQKKwkJCQlHQ0FUVCBCbGRnLiAtIFJvb20gIzI0OEEKKwkJCQlBdGxhbnRhIEdBIDMwMzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0wQyAgIChoZXgpCQlDT05HUlVFTkNZLCBMVEQuCiswMDMwMEMgICAgIChiYXNlIDE2KQkJQ09OR1JVRU5DWSwgTFRELgorCQkJCTIzIEhBU0lWSU0gU1RSRUVUCisJCQkJUE9CIDc4MTMKKwkJCQlQRVRBSC1USUtWQSA0OTE3MCAgCisJCQkJSVNSQUVMCisKKzAwLTMwLTBEICAgKGhleCkJCU1NQyBUZWNobm9sb2d5LCBJbmMuCiswMDMwMEQgICAgIChiYXNlIDE2KQkJTU1DIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkjMTUwMiwgU2VvdWwgVmVudHVyZSBUb3duLCBBanUgQmxkZworCQkJCTY3OS01LCBZZW9rc2FtLURvbmcsIEthbmduYW0tR3UKKwkJCQlTZW91bCAxMzUtMDgwICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMzAtMEUgICAoaGV4KQkJS2xvdHogRGlnaXRhbCBBRworMDAzMDBFICAgICAoYmFzZSAxNikJCUtsb3R6IERpZ2l0YWwgQUcKKwkJCQlIYW5zLVN0aWVzc2JlcmdlcnN0ci4gMkEKKwkJCQlELTg1NTQwIEhhYXIgIAorCQkJCUdFUk1BTlkKKworMDAtMzAtMEYgICAoaGV4KQkJSU1UIC0gSW5mb3JtYXRpb24gTWFuYWdlbWVudCBUCiswMDMwMEYgICAgIChiYXNlIDE2KQkJSU1UIC0gSW5mb3JtYXRpb24gTWFuYWdlbWVudCBUCisJCQkJR2V3ZXJiZXN0cmFzc2UgOAorCQkJCUNILTk0NzAgQnVjaHMgIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTMwLTEwICAgKGhleCkJCVZJU0lPTkVUSUNTIElOVEVSTkFUSU9OQUwKKzAwMzAxMCAgICAgKGJhc2UgMTYpCQlWSVNJT05FVElDUyBJTlRFUk5BVElPTkFMCisJCQkJM0YsIE5PLiAzLCBQUk9TUEVSSVRZIFJPQUQgMQorCQkJCVNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLIEhTSU5DSFUKKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC0xMSAgIChoZXgpCQlITVMgRklFTERCVVMgU1lTVEVNUyBBQgorMDAzMDExICAgICAoYmFzZSAxNikJCUhNUyBGSUVMREJVUyBTWVNURU1TIEFCCisJCQkJUElMRUZFTFRTR0FUQU4gOTMtOTUKKwkJCQkzMDI1MCBIQUxNU1NUQUQKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtMzAtMTIgICAoaGV4KQkJRElHSVRBTCBFTkdJTkVFUklORyBMVEQuCiswMDMwMTIgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFTkdJTkVFUklORyBMVEQuCisJCQkJMiBUUkVOQ0ggUk9BRCwgTUFMTFVTSworCQkJCUJFTEZBU1QgQlQzNiA0VFkKKwkJCQlOT1JUSEVSTiBJUkVMQU5ECisJCQkJSVJFTEFORAorCiswMC0zMC0xMyAgIChoZXgpCQlORUMgQ29ycG9yYXRpb24KKzAwMzAxMyAgICAgKGJhc2UgMTYpCQlORUMgQ29ycG9yYXRpb24KKwkJCQkxLTEwIE5pc3NoaW5jaG8sIEZ1Y2h1CisJCQkJVG9reW8gMTgzLTg1MDEgIAorCQkJCUpBUEFOCisKKzAwLTMwLTE0ICAgKGhleCkJCURJVklPLCBJTkMuCiswMDMwMTQgICAgIChiYXNlIDE2KQkJRElWSU8sIElOQy4KKwkJCQk5OTcgRS4gQVJRVUVTIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMTUgICAoaGV4KQkJQ1AgQ0xBUkUgQ09SUC4KKzAwMzAxNSAgICAgKGJhc2UgMTYpCQlDUCBDTEFSRSBDT1JQLgorCQkJCTc4IENIRVJSWSBISUxMIERSSVZFCisJCQkJQkVWRVJMWSBNQSAwMTkxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMTYgICAoaGV4KQkJSVNISURBIENPLiwgTFRELgorMDAzMDE2ICAgICAoYmFzZSAxNikJCUlTSElEQSBDTy4sIExURC4KKwkJCQk5NTktMSBTSElNT01BR0FSSQorCQkJCVJJVFRPLUNITyBLVVJJVEEtR1VOIFNISUdBICA1MjAtMzAyNgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMzAtMTcgICAoaGV4KQkJQmx1ZUFyYyBVSyBMdGQKKzAwMzAxNyAgICAgKGJhc2UgMTYpCQlCbHVlQXJjIFVLIEx0ZAorCQkJCVF1ZWVuc2dhdGUgSG91c2UKKwkJCQlDb29raGFtIFJvYWQKKwkJCQlCcmFja25lbGwgIFJHMTIgMVJCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMzAtMTggICAoaGV4KQkJSmV0d2F5IEluZm9ybWF0aW9uIENvLiwgTHRkLgorMDAzMDE4ICAgICAoYmFzZSAxNikJCUpldHdheSBJbmZvcm1hdGlvbiBDby4sIEx0ZC4KKwkJCQk0RiwgTm8uIDE2OCwgTEkgVEhFIFNULgorCQkJCUNodW5nIEhvIENpdHkgMjM1IFRhaXBlaSAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTE5ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMzAxOSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMUEgICAoaGV4KQkJU01BUlRCUklER0VTIFBURS4gTFRELgorMDAzMDFBICAgICAoYmFzZSAxNikJCVNNQVJUQlJJREdFUyBQVEUuIExURC4KKwkJCQk3NDUgVG9hIFBheW9oIExvcm9uZyA1CisJCQkJIzA0LTAxCisJCQkJMzE5NDU1CisJCQkJU0lOR0FQT1JFCisKKzAwLTMwLTFCICAgKGhleCkJCVNIVVRUTEUsIElOQy4KKzAwMzAxQiAgICAgKGJhc2UgMTYpCQlTSFVUVExFLCBJTkMuCisJCQkJNUYsIE5vLiAzNCwgTGFuZSA2MAorCQkJCVdlbi1IdSBTdC4sIE5laS1IdSBEaXN0LiwKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtMUMgICAoaGV4KQkJQUxUVkFURVIgQUlSREFUQSBTWVNURU1TCiswMDMwMUMgICAgIChiYXNlIDE2KQkJQUxUVkFURVIgQUlSREFUQSBTWVNURU1TCisJCQkJR01CSCAmIENPLiBLRworCQkJCVJJRU1FTlNUUkFTU0UgMzAgNzQ5MDYgQkFEIFJBUFBFTkFVCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMzAtMUQgICAoaGV4KQkJU0tZU1RSRUFNLCBJTkMuCiswMDMwMUQgICAgIChiYXNlIDE2KQkJU0tZU1RSRUFNLCBJTkMuCisJCQkJNDU1IERlR3VpZ25lIERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2LTM4MzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTFFICAgKGhleCkJCTNDT00gRXVyb3BlIEx0ZC4KKzAwMzAxRSAgICAgKGJhc2UgMTYpCQkzQ09NIEV1cm9wZSBMdGQuCisJCQkJM0NPTSBDZW50cmUKKwkJCQlCb3VuZGFyeSBXYXksIEhlbWVsIEhlbXBzdGVhZAorCQkJCUhlcnRzLiAgSFAyIDdZVSAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMzAtMUYgICAoaGV4KQkJT1BUSUNBTCBORVRXT1JLUywgSU5DLgorMDAzMDFGICAgICAoYmFzZSAxNikJCU9QVElDQUwgTkVUV09SS1MsIElOQy4KKwkJCQkxNjYgQkFZUE9JTlRFIFBBUktXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMjAgICAoaGV4KQkJVFNJLCBJbmMuLgorMDAzMDIwICAgICAoYmFzZSAxNikJCVRTSSwgSW5jLi4KKwkJCQk1MDAgQ2FyZGlnYW4gUm9hZAorCQkJCVNob3JldmlldyBNTiA1NTEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMjEgICAoaGV4KQkJSFNJTkcgVEVDSC4gRU5URVJQUklTRSBDTy4sTFRECiswMDMwMjEgICAgIChiYXNlIDE2KQkJSFNJTkcgVEVDSC4gRU5URVJQUklTRSBDTy4sTFRECisJCQkJMkYsIE5PLiAyMiwgQUxMTEVZIDM4LCBMQU5FIDkxCisJCQkJU0VDLiAxLCBORUkgSFUgUk9BRAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC0yMiAgIChoZXgpCQlGb25nIEthaSBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAzMDIyICAgICAoYmFzZSAxNikJCUZvbmcgS2FpIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJNEYtMywgTm8uIDEzLCBXdSBDaHVhbiAxc3QgUm9hZAorCQkJCUhzaW4gQ2h1YW5nIENpdHksIFRhaXBlaSBIc2llbiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC0yMyAgIChoZXgpCQlDT0dFTlQgQ09NUFVURVIgU1lTVEVNUywgSU5DLgorMDAzMDIzICAgICAoYmFzZSAxNikJCUNPR0VOVCBDT01QVVRFUiBTWVNURU1TLCBJTkMuCisJCQkJMTAgUklWRVIgUk9BRCAtIFNURS4gIzIwNQorCQkJCVVYQlJJREdFIE1BIDAxNTY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0yNCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDMwMjQgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRSAtU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMjUgICAoaGV4KQkJQ0hFQ0tPVVQgQ09NUFVURVIgU1lTVEVNUywgTFRECiswMDMwMjUgICAgIChiYXNlIDE2KQkJQ0hFQ0tPVVQgQ09NUFVURVIgU1lTVEVNUywgTFRECisJCQkJVE9XTlNFTkQgRkFSTSBST0FECisJCQkJSE9VR0hUT04gUkVHSVMsIERVTlNUQUJMRSBCRURGT1JEU0hJUkUKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTMwLTI2ICAgKGhleCkJCUhlaVRlbCBEaWdpdGFsIFZpZGVvIEdtYkgKKzAwMzAyNiAgICAgKGJhc2UgMTYpCQlIZWlUZWwgRGlnaXRhbCBWaWRlbyBHbWJICisJCQkJU3R1dGhhZ2VuIDI1CisJCQkJMjQxMTMgTW9sZnNlZQorCQkJCUdFUk1BTlkKKworMDAtMzAtMjcgICAoaGV4KQkJS0VSQkFOR08sIElOQy4KKzAwMzAyNyAgICAgKGJhc2UgMTYpCQlLRVJCQU5HTywgSU5DLgorCQkJCTIxNzcxIFNURVZFTlMgQ1JFRUsgQkxWRC4gIzEwMAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMjggICAoaGV4KQkJRkFTRSBTYWxkYXR1cmEgc3JsCiswMDMwMjggICAgIChiYXNlIDE2KQkJRkFTRSBTYWxkYXR1cmEgc3JsCisJCQkJVi5SLiBCZXJuYXJkaSA1CisJCQkJMTAwNDIgU3R1cGluaXFpLU5pY2hlbGlubworCQkJCVRPUklOTyAgCisJCQkJSVRBTFkKKworMDAtMzAtMjkgICAoaGV4KQkJT1BJQ09NCiswMDMwMjkgICAgIChiYXNlIDE2KQkJT1BJQ09NCisJCQkJUk9PTSAjMzAyLCBTVFlMRSBGQUNUT1JZIDE1MQorCQkJCVlBVEFCLURPTkcsIEJVTkRBTkctR1UgU1VOR05BTS1TSSwgS1lVTkcKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC0yQSAgIChoZXgpCQlTT1VUSEVSTiBJTkZPUk1BVElPTgorMDAzMDJBICAgICAoYmFzZSAxNikJCVNPVVRIRVJOIElORk9STUFUSU9OCisJCQkJU1lTVEVNLCBJTkMuCisJCQkJTk8uOCwgUiZEIFJELiBJViBTQ0lFTkNFLUJBU0VEIElORFVTVFJJQQorCQkJCUhTSU5DSFUgVEFJV0FOLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTJCICAgKGhleCkJCUlOQUxQIE5FVFdPUktTLCBJTkMuCiswMDMwMkIgICAgIChiYXNlIDE2KQkJSU5BTFAgTkVUV09SS1MsIElOQy4KKwkJCQlNRVJJRURXRUcgNworCQkJCUNILTMxNzIgTklFREVSV0FOR0VOCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC0zMC0yQyAgIChoZXgpCQlTWUxBTlRSTyBTWVNURU1TIENPUlBPUkFUSU9OCiswMDMwMkMgICAgIChiYXNlIDE2KQkJU1lMQU5UUk8gU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCTE2ODYgREVMTCBBVkVOVUUKKwkJCQlDQU1QQkVMTCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMkQgICAoaGV4KQkJUVVBTlRVTSBCUklER0UgQ09NTVVOSUNBVElPTlMKKzAwMzAyRCAgICAgKGJhc2UgMTYpCQlRVUFOVFVNIEJSSURHRSBDT01NVU5JQ0FUSU9OUworCQkJCU9ORSBISUdIIFNUUkVFVAorCQkJCU5PUlRIIEFORE9WRVIgTUEgMDE4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTJFICAgKGhleCkJCUhvZnQgJiBXZXNzZWwgQUcKKzAwMzAyRSAgICAgKGJhc2UgMTYpCQlIb2Z0ICYgV2Vzc2VsIEFHCisJCQkJUm90ZW5idXJnZXIgU3RyYXNzZSAyMAorCQkJCTMwNjU5IEhhbm5vdmVyICAKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLTJGICAgKGhleCkJCUdFIEF2aWF0aW9uIFN5c3RlbQorMDAzMDJGICAgICAoYmFzZSAxNikJCUdFIEF2aWF0aW9uIFN5c3RlbQorCQkJCTMyOTAgUGF0dGVyc29uIEF2ZS4sIFMuRS4KKwkJCQlHcmFuZCBSYXBpZHMgTUkgNDk1MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTMwICAgKGhleCkJCUhBUk1PTklYIENPUlBPUkFUSU9OCiswMDMwMzAgICAgIChiYXNlIDE2KQkJSEFSTU9OSVggQ09SUE9SQVRJT04KKwkJCQkxNzU1IE9TR09PRCBTVFJFRVQKKwkJCQlOT1JUSCBBTkRPVkVSIE1BIDAxODQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0zMSAgIChoZXgpCQlMSUdIVFdBVkUgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMzAzMSAgICAgKGJhc2UgMTYpCQlMSUdIVFdBVkUgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkyNjEgUEVQRSdTIEZBUk0gUk9BRAorCQkJCU1JTEZPUkQgQ1QgMDY0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTMyICAgKGhleCkJCU1hZ2ljUmFtLCBJbmMuCiswMDMwMzIgICAgIChiYXNlIDE2KQkJTWFnaWNSYW0sIEluYy4KKwkJCQkxODUwIEJldmVybHkgQmx2ZC4KKwkJCQlMb3MgQW5nZWxlcyBDQSA5MDA1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMzMgICAoaGV4KQkJT1JJRU5UIFRFTEVDT00gQ08uLCBMVEQuCiswMDMwMzMgICAgIChiYXNlIDE2KQkJT1JJRU5UIFRFTEVDT00gQ08uLCBMVEQuCisJCQkJTUlTVU5HIEJVTERJTkcgMTE1LTcKKwkJCQlOT05IWVVOLURPTkcsIEtBTkdNQU4tS1UgU0VPVUwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC0zNCAgIChoZXgpCQlTRVQgRU5HSU5FRVJJTkcKKzAwMzAzNCAgICAgKGJhc2UgMTYpCQlTRVQgRU5HSU5FRVJJTkcKKwkJCQkxNTc1MCBWSU5FWUFSRCBCTFZELiBTVEUuICMxMDAKKwkJCQlNT1JHQU4gSElMTCBDQSA5NTAzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMzUgICAoaGV4KQkJQ29ybmluZyBJbmNvcnBvcmF0ZWQKKzAwMzAzNSAgICAgKGJhc2UgMTYpCQlDb3JuaW5nIEluY29ycG9yYXRlZAorCQkJCURhdGEgQ2VudGVyCisJCQkJTS9TIC0gU1AtV1ctMDEKKwkJCQlDb3JuaW5nIE5ZIDE0ODMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0zNiAgIChoZXgpCQlSTVAgRUxFS1RST05JS1NZU1RFTUUgR01CSAorMDAzMDM2ICAgICAoYmFzZSAxNikJCVJNUCBFTEVLVFJPTklLU1lTVEVNRSBHTUJICisJCQkJSEFOTlMtTUFSVElOLVNDSExFJ1ItU1RSLjEyLTE0CisJCQkJRC00Nzg3NyBXSUxMSUNILU1VTkNISEVJREUKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0zMC0zNyAgIChoZXgpCQlQYWNrYXJkIEJlbGwgTmVjIFNlcnZpY2VzCiswMDMwMzcgICAgIChiYXNlIDE2KQkJUGFja2FyZCBCZWxsIE5lYyBTZXJ2aWNlcworCQkJCTI5OSBhdmVudWUgUGF0dG9uLCBCUCA2NDUKKwkJCQk0OTAwNiBBbmdlcnMgQ2VkZXggMDEgIAorCQkJCUZSQU5DRQorCiswMC0zMC0zOCAgIChoZXgpCQlYQ1AsIElOQy4KKzAwMzAzOCAgICAgKGJhc2UgMTYpCQlYQ1AsIElOQy4KKwkJCQk0MCBFTE0gU1RSRUVUCisJCQkJRFJZREVOIE5ZIDEzMDUzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0zOSAgIChoZXgpCQlTT0ZUQk9PSyBQUkVTUworMDAzMDM5ICAgICAoYmFzZSAxNikJCVNPRlRCT09LIFBSRVNTCisJCQkJNzc0NSBIRVJTQ0hFTCBBVkVOVUUKKwkJCQlMQSBKT0xMQSBDQSA5MjAzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtM0EgICAoaGV4KQkJTUFBVEVMCiswMDMwM0EgICAgIChiYXNlIDE2KQkJTUFBVEVMCisJCQkJNDk1IFJVRSBERSBQT01NQVJJTgorCQkJCTM4MzYwIFZPUkVQUEUgIAorCQkJCUZSQU5DRQorCiswMC0zMC0zQiAgIChoZXgpCQlQb3dlckNvbSBUZWNobm9sb2d5CiswMDMwM0IgICAgIChiYXNlIDE2KQkJUG93ZXJDb20gVGVjaG5vbG9neQorCQkJCTJGLCBOby4gMzQsIEluZHVzdHJ5IEUuIFJvYWQgSVYKKwkJCQlIc2luY2h1IFNjaWVuY2UtYmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSAzMDAgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtM0MgICAoaGV4KQkJT05OVE8gQ09SUC4KKzAwMzAzQyAgICAgKGJhc2UgMTYpCQlPTk5UTyBDT1JQLgorCQkJCTEyRi0yLCAgTk8uIDE2MQorCQkJCVNVTkcgVEVIIFJELiwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTNEICAgKGhleCkJCUlWQSBDT1JQT1JBVElPTgorMDAzMDNEICAgICAoYmFzZSAxNikJCUlWQSBDT1JQT1JBVElPTgorCQkJCTI5IEhVRFNPTiBST0FECisJCQkJU1VEQlVSWSBNQSAwMTc3NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtM0UgICAoaGV4KQkJUmFkY29tIEx0ZC4KKzAwMzAzRSAgICAgKGJhc2UgMTYpCQlSYWRjb20gTHRkLgorCQkJCTEyIEhhbmVjaG9zaGV0IFN0cmVldAorCQkJCVRlbC1Bdml2IDY5NzEwICAKKwkJCQlJU1JBRUwKKworMDAtMzAtM0YgICAoaGV4KQkJVHVyYm9Db21tIFRlY2ggSW5jLgorMDAzMDNGICAgICAoYmFzZSAxNikJCVR1cmJvQ29tbSBUZWNoIEluYy4KKwkJCQk0Ri0yLCBObyAxNzEsIFN1bmctVGNoIFJvYWQKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtNDAgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAzMDQwICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUgLVNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTQxICAgKGhleCkJCVNBRUpJTiBUICYgTSBDTy4sIExURC4KKzAwMzA0MSAgICAgKGJhc2UgMTYpCQlTQUVKSU4gVCAmIE0gQ08uLCBMVEQuCisJCQkJMk5EIEZMLiwgU0FFSklOIEJMREcuIDY4OQorCQkJCUlMV09OLURPTkcsIEtBTkdOQU0tR1UsIFNFT1VMCisJCQkJMTM1LTIzMCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC00MiAgIChoZXgpCQlEZVRlV2UtRGV1dHNjaGUgVGVsZXBob253ZXJrZQorMDAzMDQyICAgICAoYmFzZSAxNikJCURlVGVXZS1EZXV0c2NoZSBUZWxlcGhvbndlcmtlCisJCQkJWmV1Z2hvZnN0cmFzc2UgMQorCQkJCUQtMTA5OTcgQmVybGluICAKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLTQzICAgKGhleCkJCUlEUkVBTSBURUNITk9MT0dJRVMsIFBURS4gTFRELgorMDAzMDQzICAgICAoYmFzZSAxNikJCUlEUkVBTSBURUNITk9MT0dJRVMsIFBURS4gTFRELgorCQkJCTU0IEtBTExBTkcgQkFIUlUsICMwMi0xNAorCQkJCVNJTkdBUE9SRSAzMzkzMzYKKwkJCQlTSU5HQVBPUkUKKwkJCQlTSU5HQVBPUkUKKworMDAtMzAtNDQgICAoaGV4KQkJQ3JhZGxlUG9pbnQsIEluYworMDAzMDQ0ICAgICAoYmFzZSAxNikJCUNyYWRsZVBvaW50LCBJbmMKKwkJCQk4MDUgVy4gRnJhbmtsaW4gU3QuCisJCQkJQm9pc2UgSUQgODM3MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTQ1ICAgKGhleCkJCVZpbGxhZ2UgTmV0d29ya3MsIEluYy4gKFZOSSkKKzAwMzA0NSAgICAgKGJhc2UgMTYpCQlWaWxsYWdlIE5ldHdvcmtzLCBJbmMuIChWTkkpCisJCQkJMTAwIFZpbGxhZ2UgQ291cnQgLSBTdGUuICMzMDEKKwkJCQlIYXpsZXQgTkogMDc3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTQ2ICAgKGhleCkJCUNvbnRyb2xsZWQgRWxlY3Ryb25pYyBNYW5hZ2VtZQorMDAzMDQ2ICAgICAoYmFzZSAxNikJCUNvbnRyb2xsZWQgRWxlY3Ryb25pYyBNYW5hZ2VtZQorCQkJCVVuaXQgNCBSYXZlbmhpbGwgQnVzaW5lc3MgUGFyaworCQkJCVJhdmVuaGlsbCBSb2FkCisJCQkJQmVsZmFzdCAgCisJCQkJSVJFTEFORAorCiswMC0zMC00NyAgIChoZXgpCQlOSVNTRUkgRUxFQ1RSSUMgQ08uLCBMVEQuCiswMDMwNDcgICAgIChiYXNlIDE2KQkJTklTU0VJIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTMyIE1JWUFXQUtFLCBTSElNT05PSVNISUtJLUNITworCQkJCU5BS0FHQVdBLUtVLCBOQUdPWUEgNDU0LTA5NDUKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTMwLTQ4ICAgKGhleCkJCVN1cGVybWljcm8gQ29tcHV0ZXIsIEluYy4KKzAwMzA0OCAgICAgKGJhc2UgMTYpCQlTdXBlcm1pY3JvIENvbXB1dGVyLCBJbmMuCisJCQkJMjA1MSBKdW5jdGlvbiBBdmVudWUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNDkgICAoaGV4KQkJQlJZQU5UIFRFQ0hOT0xPR1ksIExURC4KKzAwMzA0OSAgICAgKGJhc2UgMTYpCQlCUllBTlQgVEVDSE5PTE9HWSwgTFRELgorCQkJCVAuTy4gQk9YIDY5NTU3CisJCQkJQlJZQU5TVE9OLCAyMDIxCisJCQkJU09VVEggQUZSSUNBCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTMwLTRBICAgKGhleCkJCUZyYXVuaG9mZXIgSVBNUworMDAzMDRBICAgICAoYmFzZSAxNikJCUZyYXVuaG9mZXIgSVBNUworCQkJCU1hcmlhLVJlaWNoZS1TdHJhc3NlIDIKKwkJCQkwMTEwOQorCQkJCUdFUk1BTlkKKworMDAtMzAtNEIgICAoaGV4KQkJT1JCQUNPTSBTWVNURU1TLCBJTkMuCiswMDMwNEIgICAgIChiYXNlIDE2KQkJT1JCQUNPTSBTWVNURU1TLCBJTkMuCisJCQkJMTcwNCBUQVlMT1JTIExBTkUKKwkJCQlDSU5OQU1JTlNPTiBOSiAwODA3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNEMgICAoaGV4KQkJQVBQSUFOIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDMwNEMgICAgIChiYXNlIDE2KQkJQVBQSUFOIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJODAgQ0VOVFJBTCBTVFJFRVQKKwkJCQlCT1hCT1JPVUdIIE1BIDAxNzE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC00RCAgIChoZXgpCQlFU0kKKzAwMzA0RCAgICAgKGJhc2UgMTYpCQlFU0kKKwkJCQkyNjAxIFN1bW1pdCBBdmVudWUKKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNEUgICAoaGV4KQkJQlVTVEVDIFBST0RVQ1RJT04gTFRELgorMDAzMDRFICAgICAoYmFzZSAxNikJCUJVU1RFQyBQUk9EVUNUSU9OIExURC4KKwkJCQlXT1JMRCBBVklBVElPTiBQQVJLCisJCQkJU2hhbm5vbiBDb3VudHkgQ2xhcmUgCisJCQkJSVJFTEFORAorCiswMC0zMC00RiAgIChoZXgpCQlQTEFORVQgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAzMDRGICAgICAoYmFzZSAxNikJCVBMQU5FVCBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJMTFGLCBOby4gOTYsIE1pbi1DaHVhbiBSb2FkCisJCQkJSHNpbi1UaWVuIFRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC01MCAgIChoZXgpCQlWZXJzYSBUZWNobm9sb2d5CiswMDMwNTAgICAgIChiYXNlIDE2KQkJVmVyc2EgVGVjaG5vbG9neQorCQkJCTQ0MzAgRS4gTWlyYWxvbWEgQXZlLiwgLSBTdGUuCisJCQkJQW5haGVpbSBDQSA5MjgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNTEgICAoaGV4KQkJT1JCSVQgQVZJT05JQyAmIENPTU1VTklDQVRJT04KKzAwMzA1MSAgICAgKGJhc2UgMTYpCQlPUkJJVCBBVklPTklDICYgQ09NTVVOSUNBVElPTgorCQkJCVNZU1RFTVMsIExURC4KKwkJCQlQLk8uIEJPWCAzMTcxIElORFVTVFJJQUwgWk9ORSwgTkVUQU5ZQSA0CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTMwLTUyICAgKGhleCkJCUVMQVNUSUMgTkVUV09SS1MKKzAwMzA1MiAgICAgKGJhc2UgMTYpCQlFTEFTVElDIE5FVFdPUktTCisJCQkJNjEyMCBXSU5EV0FSRCBQQVJLV0FZIC1TVEUjMTAwCisJCQkJQUxQSEFSRVRUQSBHQSAzMDAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNTMgICAoaGV4KQkJQmFzbGVyIEFHCiswMDMwNTMgICAgIChiYXNlIDE2KQkJQmFzbGVyIEFHCisJCQkJQW4gRGVyIFN0cnVzYmVrIDYwLTYyCisJCQkJMjI5MjYgQWhyZW5zYnVyZyAgCisJCQkJR0VSTUFOWQorCiswMC0zMC01NCAgIChoZXgpCQlDQVNUTEVORVQgVEVDSE5PTE9HWSwgSU5DLgorMDAzMDU0ICAgICAoYmFzZSAxNikJCUNBU1RMRU5FVCBURUNITk9MT0dZLCBJTkMuCisJCQkJTk8uIDEzMCBXVS1LVU5HIFJELiwKKwkJCQlXVS1LVSBIU0lBTkcgVEFJUEVJIEhTSUVOCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTU1ICAgKGhleCkJCVJlbmVzYXMgVGVjaG5vbG9neSBBbWVyaWNhLCBJbmMuCiswMDMwNTUgICAgIChiYXNlIDE2KQkJUmVuZXNhcyBUZWNobm9sb2d5IEFtZXJpY2EsIEluYy4KKwkJCQk0NTAgSG9sZ2VyIFdheQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC01NiAgIChoZXgpCQlCZWNrIElQQyBHbWJICiswMDMwNTYgICAgIChiYXNlIDE2KQkJQmVjayBJUEMgR21iSAorCQkJCUdy/G5pbmdlciBXZWcgMjQKKwkJCQlELTM1NDE1IFBvaGxoZWltIAorCQkJCUdFUk1BTlkKKworMDAtMzAtNTcgICAoaGV4KQkJUVRlbE5ldCwgSW5jLgorMDAzMDU3ICAgICAoYmFzZSAxNikJCVFUZWxOZXQsIEluYy4KKwkJCQk0MDAgLSAzMTE1IDEydGggU3RyZWV0IE5FCisJCQkJQ2FsZ2FyeSBBbGJlcnRhIFQyRSA3SjIKKwkJCQlDQU5BREEKKworMDAtMzAtNTggICAoaGV4KQkJQVBJIE1PVElPTgorMDAzMDU4ICAgICAoYmFzZSAxNikJCUFQSSBNT1RJT04KKwkJCQk0NSBIQVpFTFdPT0QgRFJJVkUKKwkJCQlBTUhFUlNUIE5ZIDE0MjI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC01OSAgIChoZXgpCQlLT05UUk9OIENPTVBBQ1QgQ09NUFVURVJTIEFHCiswMDMwNTkgICAgIChiYXNlIDE2KQkJS09OVFJPTiBDT01QQUNUIENPTVBVVEVSUyBBRworCQkJCU5vcmRzdHJhc3NlIDExL0YKKwkJCQkgTFVURVJCQUNIICA0NTQyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMzAtNUEgICAoaGV4KQkJVEVMR0VOIENPUlBPUkFUSU9OCiswMDMwNUEgICAgIChiYXNlIDE2KQkJVEVMR0VOIENPUlBPUkFUSU9OCisJCQkJMzEwMSBTT1ZFUkVJR04gRFIuIC0gU1RFLgorCQkJCUxBTlNJTkcgTUkgNDg5MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTVCICAgKGhleCkJCVRva28gSW5jLgorMDAzMDVCICAgICAoYmFzZSAxNikJCVRva28gSW5jLgorCQkJCTE4IENPTUlHQVlBLCBUU1VSVUdBU0hJTUEtU0hJCisJCQkJU0FJVEFNQS1LRU4KKwkJCQlKQVBBTiAzNTAtMjI4MQorCQkJCUpBUEFOCisKKzAwLTMwLTVDICAgKGhleCkJCVNNQVIgTGFib3JhdG9yaWVzIENvcnAuCiswMDMwNUMgICAgIChiYXNlIDE2KQkJU01BUiBMYWJvcmF0b3JpZXMgQ29ycC4KKwkJCQkxMDk2MCBNaWxscmlkZ2UgTm9ydGggLSBTdGUuICMxMDcKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC01RCAgIChoZXgpCQlESUdJVFJBIFNZU1RFTVMsIElOQy4KKzAwMzA1RCAgICAgKGJhc2UgMTYpCQlESUdJVFJBIFNZU1RFTVMsIElOQy4KKwkJCQk4LTYxLCBHQVdPTC1ET05HCisJCQkJWU9OR1NBTi1LVSBTRU9VTAorCQkJCUtPUkVBIDE0MC0xNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMzAtNUUgICAoaGV4KQkJQWJlbGtvIElubm92YXRpb24KKzAwMzA1RSAgICAgKGJhc2UgMTYpCQlBYmVsa28gSW5ub3ZhdGlvbgorCQkJCUJveCA4MDgKKwkJCQlTLTk3MTI1IEx1bGVhICAKKwkJCQlTV0VERU4KKworMDAtMzAtNUYgICAoaGV4KQkJSGFzc2VsYmxhZAorMDAzMDVGICAgICAoYmFzZSAxNikJCUhhc3NlbGJsYWQKKwkJCQlIZWpyZXZlaiAzMAorCQkJCUNvcGVuaGFnZW4gTlYgREstMjQwMAorCQkJCURFTk1BUksKKworMDAtMzAtNjAgICAoaGV4KQkJUG93ZXJmaWxlLCBJbmMuCiswMDMwNjAgICAgIChiYXNlIDE2KQkJUG93ZXJmaWxlLCBJbmMuCisJCQkJMzM1MCBUaG9tYXMgUm9hZAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0LTIwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTYxICAgKGhleCkJCU1vYnlURUwKKzAwMzA2MSAgICAgKGJhc2UgMTYpCQlNb2J5VEVMCisJCQkJNDMwMSBDb25uZWN0aWN1dCBBdmUuIE5XCisJCQkJU3RlLiAjNDU0CisJCQkJV2FzaGluZ3RvbiBEQyAyMDAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNjIgICAoaGV4KQkJUEFUSCAxIE5FVFdPUksgVEVDSE5PTCdTIElOQy4KKzAwMzA2MiAgICAgKGJhc2UgMTYpCQlQQVRIIDEgTkVUV09SSyBURUNITk9MJ1MgSU5DLgorCQkJCTM2MzYgTk9CRUwgRFJJVkUgLSBTVEUuICMyNzUKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTYzICAgKGhleCkJCVNBTlRFUkEgU1lTVEVNUywgSU5DLgorMDAzMDYzICAgICAoYmFzZSAxNikJCVNBTlRFUkEgU1lTVEVNUywgSU5DLgorCQkJCTI5MDEgU1VNTUlUIEFWRU5VRSAtIFNURS4gIzEwMAorCQkJCVBMQU5PIFRYIDc1MDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC02NCAgIChoZXgpCQlBRExJTksgVEVDSE5PTE9HWSwgSU5DLgorMDAzMDY0ICAgICAoYmFzZSAxNikJCUFETElOSyBURUNITk9MT0dZLCBJTkMuCisJCQkJOUYsIE5PLiAxNjYsIEpJRU4tWUkgUi5ELgorCQkJCUNIVU5HLUhPIENJVFkgVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTY1ICAgKGhleCkJCUFQUExFIENPTVBVVEVSLCBJTkMuCiswMDMwNjUgICAgIChiYXNlIDE2KQkJQVBQTEUgQ09NUFVURVIsIElOQy4KKwkJCQkyMDY1MCBWQUxMRVkgR1JFRU4gRFJJVkUKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTY2ICAgKGhleCkJCVJGTQorMDAzMDY2ICAgICAoYmFzZSAxNikJCVJGTQorCQkJCTMwNzkgUHJlbWllcmUgUGt3eQorCQkJCVN1aXRlIDE0MAorCQkJCUR1bHV0aCBHQSAzMDA5NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNjcgICAoaGV4KQkJQklPU1RBUiBNSUNST1RFQ0ggSU5UJ0wgQ09SUC4KKzAwMzA2NyAgICAgKGJhc2UgMTYpCQlCSU9TVEFSIE1JQ1JPVEVDSCBJTlQnTCBDT1JQLgorCQkJCTJGTC4gTk8uIDEwOC0yIE1JTiBDSFVBTiBST0FECisJCQkJSFNJTiBUSUVOIENJVFksIFRBSVBFSSBIU0lFTiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC02OCAgIChoZXgpCQlDWUJFUk5FVElDUyBURUNILiBDTy4sIExURC4KKzAwMzA2OCAgICAgKGJhc2UgMTYpCQlDWUJFUk5FVElDUyBURUNILiBDTy4sIExURC4KKwkJCQlEQUlUT0ggQkxERy4gNEYgMy0zMi0xCisJCQkJVEFLQURBLCBUT1NISU1BLUtVLCBUT0tZTworCQkJCUpBUEFOIDE3MS0wMDMzCisJCQkJSkFQQU4KKworMDAtMzAtNjkgICAoaGV4KQkJSU1QQUNDVCBURUNITk9MT0dZIENPUlAuCiswMDMwNjkgICAgIChiYXNlIDE2KQkJSU1QQUNDVCBURUNITk9MT0dZIENPUlAuCisJCQkJMkYsIE5PLiAxMiwgUiZEIFJELiBJSQorCQkJCVNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLIEhTSU4tQ0hVCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTZBICAgKGhleCkJCVBFTlRBIE1FRElBIENPLiwgTFRELgorMDAzMDZBICAgICAoYmFzZSAxNikJCVBFTlRBIE1FRElBIENPLiwgTFRELgorCQkJCUUtNTA0IEJ1bmRhbmcgVGVjaG5vcGFyaywxNTEKKwkJCQlZYXRvcC1kb25nIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbSBHeWVvbmdnaS1kbyAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMzAtNkIgICAoaGV4KQkJQ01PUyBTWVNURU1TLCBJTkMuCiswMDMwNkIgICAgIChiYXNlIDE2KQkJQ01PUyBTWVNURU1TLCBJTkMuCisJCQkJMjM0NDAgSEFXVEhPUk5FIEJMVkQtU1RFICMyOTAKKwkJCQlUT1JSQU5DRSBDQSA5MDUwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNkMgICAoaGV4KQkJSGl0ZXggSG9sZGluZyBHbWJICiswMDMwNkMgICAgIChiYXNlIDE2KQkJSGl0ZXggSG9sZGluZyBHbWJICisJCQkJR3Jlc2NoYmFjaHN0ci4gMTIKKwkJCQk3NjIyOSBLYXJsc3J1aGUgIAorCQkJCUdFUk1BTlkKKworMDAtMzAtNkQgICAoaGV4KQkJTFVDRU5UIFRFQ0hOT0xPR0lFUworMDAzMDZEICAgICAoYmFzZSAxNikJCUxVQ0VOVCBURUNITk9MT0dJRVMKKwkJCQkzMDAgQkFLRVIgQVZFTlVFIC0gU1RFLiAjMTAwCisJCQkJQ09OQ09SRCBNQSAwMTc0Mi0yMTY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC02RSAgIChoZXgpCQlIRVdMRVRUIFBBQ0tBUkQKKzAwMzA2RSAgICAgKGJhc2UgMTYpCQlIRVdMRVRUIFBBQ0tBUkQKKwkJCQkxMTAwMCBXT0xGRSBST0FECisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC02RiAgIChoZXgpCQlTRVlFT04gVEVDSC4gQ08uLCBMVEQuCiswMDMwNkYgICAgIChiYXNlIDE2KQkJU0VZRU9OIFRFQ0guIENPLiwgTFRELgorCQkJCU5BTUNIRU9OIEJMREcuIDZGLAorCQkJCURBRUNISS1ET05HLCA5NTctMDEzIEtBTkdOQU0tR1UsIFNFT1VMCisJCQkJS09SRUEgMTM1LTI4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC03MCAgIChoZXgpCQkxTmV0IENvcnBvcmF0aW9uCiswMDMwNzAgICAgIChiYXNlIDE2KQkJMU5ldCBDb3Jwb3JhdGlvbgorCQkJCTM0NyBFbGl6YWJldGggQXZlbnVlIC0gU3RlLiAjMTAwCisJCQkJU29tZXJzZXQgTkogMDg4NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTcxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMzA3MSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXYgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC03MiAgIChoZXgpCQlJbnRlbGxpYnl0ZSBJbmMuCiswMDMwNzIgICAgIChiYXNlIDE2KQkJSW50ZWxsaWJ5dGUgSW5jLgorCQkJCUNhbmFkYSBUcnVzdCBUb3dlciAtIEJDRSBQbGFjZQorCQkJCTE2MSBCYXkgU3QuIDI3dGggRmxvb3IsCisJCQkJVG9yb250byBPbnRhcmlvIE01SiAyUzEKKwkJCQlDQU5BREEKKworMDAtMzAtNzMgICAoaGV4KQkJSW50ZXJuYXRpb25hbCBNaWNyb3N5c3RlbXMsIEluCiswMDMwNzMgICAgIChiYXNlIDE2KQkJSW50ZXJuYXRpb25hbCBNaWNyb3N5c3RlbXMsIEluCisJCQkJNTIxIFZhbGxleSBXYXkKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNzQgICAoaGV4KQkJRVFVSUlORVQgTFRELgorMDAzMDc0ICAgICAoYmFzZSAxNikJCUVRVUlJTkVUIExURC4KKwkJCQlFRElTT04gSE9VU0UKKwkJCQlFRElTT04gUk9BRAorCQkJCSBTV0lORE9OLCBTTjMgNUpBICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0zMC03NSAgIChoZXgpCQlBRFRFQ0gKKzAwMzA3NSAgICAgKGJhc2UgMTYpCQlBRFRFQ0gKKwkJCQlSVUUgRFUgVkFMIFNUIExBTUJFUlQgMTkxIC8gaQorCQkJCSBTRVJBSU5HICA0MTAwCisJCQkJQkVMR0lVTQorCiswMC0zMC03NiAgIChoZXgpCQlBa2FtYmEgQ29ycG9yYXRpb24KKzAwMzA3NiAgICAgKGJhc2UgMTYpCQlBa2FtYmEgQ29ycG9yYXRpb24KKwkJCQkxNTU5NSBMb3MgR2F0b3MgQmx2ZC4KKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTc3ICAgKGhleCkJCU9OUFJFTSBORVRXT1JLUworMDAzMDc3ICAgICAoYmFzZSAxNikJCU9OUFJFTSBORVRXT1JLUworCQkJCTQyNTAxIEFMQlJBRSBTVFJFRVQKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC03OCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDMwNzggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZSAtIFNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTc5ICAgKGhleCkJCUNRT1MsIElOQy4KKzAwMzA3OSAgICAgKGJhc2UgMTYpCQlDUU9TLCBJTkMuCisJCQkJMjUgTUFVQ0hMWSAgLSBTVEUuICMzMjkKKwkJCQlJUlZJTkUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTdBICAgKGhleCkJCUFkdmFuY2VkIFRlY2hub2xvZ3kgJiBTeXN0ZW1zCiswMDMwN0EgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgVGVjaG5vbG9neSAmIFN5c3RlbXMKKwkJCQlZb2tvaGFtYSBCdXNpbmVzcyBQYXJrIEVhc3QgVG93ZXIgOUYsCisJCQkJMTM0IEdvdWRvLWNobywgSG9kb2dheWEta3UsIFlva29oYW1hLCBLYQorCQkJCTI0MC0wMDA1CisJCQkJSkFQQU4KKworMDAtMzAtN0IgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAzMDdCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC03QyAgIChoZXgpCQlBRElEIFNBCiswMDMwN0MgICAgIChiYXNlIDE2KQkJQURJRCBTQQorCQkJCTcwIFJVIEFOQVRPTEUgRlJBTkNFCisJCQkJOTIgMzAwIExFVkFMTE9JUy1QRVJSRVQgQ0VERVggIAorCQkJCUZSQU5DRQorCiswMC0zMC03RCAgIChoZXgpCQlHUkUgQU1FUklDQSwgSU5DLgorMDAzMDdEICAgICAoYmFzZSAxNikJCUdSRSBBTUVSSUNBLCBJTkMuCisJCQkJNDI1IEhBUkJPUiBCTFZELgorCQkJCUJFTE1PTlQgQ0EgOTQwMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTdFICAgKGhleCkJCVJlZGZsZXggQ29tbXVuaWNhdGlvbiBTeXN0ZW1zCiswMDMwN0UgICAgIChiYXNlIDE2KQkJUmVkZmxleCBDb21tdW5pY2F0aW9uIFN5c3RlbXMKKwkJCQkxMS0yOSBFYXN0ZXJuIFJvYWQKKwkJCQlTb3V0aCBNZWxib3VybmUgVmljdG9yaWEgMzIwNSAKKwkJCQlBVVNUUkFMSUEKKworMDAtMzAtN0YgICAoaGV4KQkJSVJMQU4gTFRELgorMDAzMDdGICAgICAoYmFzZSAxNikJCUlSTEFOIExURC4KKwkJCQkxIEhBVEFNQVIgU1RSRUVUCisJCQkJUC5PLiBCT1ggMjg4IFlPS05FQU0gMjA2OTIKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMzAtODAgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAzMDgwICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUgLSBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC04MSAgIChoZXgpCQlBTFRPUyBDJkMKKzAwMzA4MSAgICAgKGJhc2UgMTYpCQlBTFRPUyBDJkMKKwkJCQkxNTAtMDEwIFJNLiAxMDEyLCA0NC0xCisJCQkJREFFIFlPVU5HIEIvRCwgWU9WSURPLURPTkcgWU9VTkdDSFVOR1BPLQorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTMwLTgyICAgKGhleCkJCVRBSUhBTiBFTEVDVFJJQyBXSVJFIENPLiwgTFRELgorMDAzMDgyICAgICAoYmFzZSAxNikJCVRBSUhBTiBFTEVDVFJJQyBXSVJFIENPLiwgTFRELgorCQkJCUNvbW11bmljYXRpb24gRW5naW5lZXJpbmcgVGVhbQorCQkJCTk5NiBTaWhldW5nLURvbmcgS2V5bSBDaGVvbi1rdQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMzAtODMgICAoaGV4KQkJSXZyb24gU3lzdGVtcworMDAzMDgzICAgICAoYmFzZSAxNikJCUl2cm9uIFN5c3RlbXMKKwkJCQkxOS0yMCBZT1JLIFJPQUQKKwkJCQlEVU4gTEFPR0hBSVJFIENPVU5UWSBEVUJMSU4KKwkJCQlJUkVMQU5ECisJCQkJSVJFTEFORAorCiswMC0zMC04NCAgIChoZXgpCQlBTExJRUQgVEVMRVNZTiBJTlRFUk5BSU9OQUwKKzAwMzA4NCAgICAgKGJhc2UgMTYpCQlBTExJRUQgVEVMRVNZTiBJTlRFUk5BSU9OQUwKKwkJCQlDT1JQT1JBVElPTgorCQkJCTk2MCBTVEVXQVJUIERSSVZFLCAgU1RFLgorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtODUgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAzMDg1ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtODYgICAoaGV4KQkJVHJhbnNpc3RvciBEZXZpY2VzLCBJbmMuCiswMDMwODYgICAgIChiYXNlIDE2KQkJVHJhbnNpc3RvciBEZXZpY2VzLCBJbmMuCisJCQkJMzZBIE5ld2J1cmdoIFJvYWQKKwkJCQlIYWNrZXR0c3Rvd24gTkogMDc4NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTg3ICAgKGhleCkJCVZFR0EgR1JJRVNIQUJFUiBLRworMDAzMDg3ICAgICAoYmFzZSAxNikJCVZFR0EgR1JJRVNIQUJFUiBLRworCQkJCUFNIEhPSEVOU1RFSU4gMTEzCisJCQkJNzc3NjEgU0NIVUxUQUNICisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMzAtODggICAoaGV4KQkJU2lhcmEgU3lzdGVtcywgSW5jLgorMDAzMDg4ICAgICAoYmFzZSAxNikJCVNpYXJhIFN5c3RlbXMsIEluYy4KKwkJCQkzMDAgRmVyZ3Vzb24gRHJpdmUgLSAybmQgRmxvb3IKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC04OSAgIChoZXgpCQlTcGVjdHJhcG9pbnQgV2lyZWxlc3MsIExMQworMDAzMDg5ICAgICAoYmFzZSAxNikJCVNwZWN0cmFwb2ludCBXaXJlbGVzcywgTExDCisJCQkJMTEyNSBFLiBDb2xsaW5zIEJsdmQuCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtOEEgICAoaGV4KQkJTklDT1RSQSBTSVNURU1JIFMuUC5BCiswMDMwOEEgICAgIChiYXNlIDE2KQkJTklDT1RSQSBTSVNURU1JIFMuUC5BCisJCQkJNDEgVmlhIFByaW1vIE1hZ2dpbworCQkJCUJhcmFuemF0ZSAoTUkpIDIwMDIxCisJCQkJSVRBTFkKKworMDAtMzAtOEIgICAoaGV4KQkJQnJpeCBOZXR3b3JrcworMDAzMDhCICAgICAoYmFzZSAxNikJCUJyaXggTmV0d29ya3MKKwkJCQkzMDAgQ29uY29yZCBSb2FkCisJCQkJQmlsbGVyaWNhIE1BIDAxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC04QyAgIChoZXgpCQlRdWFudHVtIENvcnBvcmF0aW9uCiswMDMwOEMgICAgIChiYXNlIDE2KQkJUXVhbnR1bSBDb3Jwb3JhdGlvbgorCQkJCTEwMTI1IEZlZGVyYWwgRHJpdmUKKwkJCQlDb2xvcmFkbyBTcHJpbmdzIENPIDgwOTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC04RCAgIChoZXgpCQlQaW5uYWNsZSBTeXN0ZW1zLCBJbmMuCiswMDMwOEQgICAgIChiYXNlIDE2KQkJUGlubmFjbGUgU3lzdGVtcywgSW5jLgorCQkJCUZyYW5rZnVydGVyIFN0ci4gM2MKKwkJCQlELTM4MTIyIEJyYXVuc2Nod2VpZyAKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLThFICAgKGhleCkJCUNST1NTIE1BVENIIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAzMDhFICAgICAoYmFzZSAxNikJCUNST1NTIE1BVENIIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTM5NjAgUkNBIEJsdmQuLCBTdWl0ZSA2MDAxCisJCQkJUGFsbSBCZWFjaCBGTCAzMzQxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtOEYgICAoaGV4KQkJTUlDUklMT1IsIEluYy4KKzAwMzA4RiAgICAgKGJhc2UgMTYpCQlNSUNSSUxPUiwgSW5jLgorCQkJCTE3IExha2VzaWRlIE9mZmljZSBQYXJrCisJCQkJNjA3IE5vcnRoIEF2ZW51ZQorCQkJCVdha2VmaWVsZCBNQSAwMTg4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtOTAgICAoaGV4KQkJQ1lSQSBURUNITk9MT0dJRVMsIElOQy4KKzAwMzA5MCAgICAgKGJhc2UgMTYpCQlDWVJBIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTgwMDAgQ0FQV0VMTCBEUklWRQorCQkJCU9BS0xBTkQgQ0EgOTQ2MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTkxICAgKGhleCkJCVRBSVdBTiBGSVJTVCBMSU5FIEVMRUMuIENPUlAuCiswMDMwOTEgICAgIChiYXNlIDE2KQkJVEFJV0FOIEZJUlNUIExJTkUgRUxFQy4gQ09SUC4KKwkJCQk0MCBDaHVuZy1TaGFuIFJvYWQKKwkJCQlUdS1DaGVuZyBJbmR1c3RyaWFsIFBhcmsKKwkJCQlUYWlwZWkgQ291bnR5ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTkyICAgKGhleCkJCU1vZHVOT1JNIEdtYkgKKzAwMzA5MiAgICAgKGJhc2UgMTYpCQlNb2R1Tk9STSBHbWJICisJCQkJTGFuZ3J1dGlzdHJhc3NlIDMzCisJCQkJQ0gtODg0MCBFaW5zbGVkZWxuICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0zMC05MyAgIChoZXgpCQlTb25uZXQgVGVjaG5vbG9naWVzLCBJbmMKKzAwMzA5MyAgICAgKGJhc2UgMTYpCQlTb25uZXQgVGVjaG5vbG9naWVzLCBJbmMKKwkJCQk4IEF1dHJ5CisJCQkJSXJ2aW5lLCBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtOTQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAzMDk0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05NSAgIChoZXgpCQlQcm9jb21wIEluZm9ybWF0aWNzLCBMdGQuCiswMDMwOTUgICAgIChiYXNlIDE2KQkJUHJvY29tcCBJbmZvcm1hdGljcywgTHRkLgorCQkJCTVGLCA2OS0xMCwgU2VjLiAyLAorCQkJCUNodW5nIENoZW5nIEUuIFJvYWQKKwkJCQlUYW1zaHVpLCBUYWlwZWksIEhzaWVuICBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTk2ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMzA5NiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtOTcgICAoaGV4KQkJQUIgUmVnaW4KKzAwMzA5NyAgICAgKGJhc2UgMTYpCQlBQiBSZWdpbgorCQkJCUJveCAzNjYKKwkJCQlTRS0yNjEyMyBMYW5kc2tyb25hIAorCQkJCVNXRURFTgorCiswMC0zMC05OCAgIChoZXgpCQlHbG9iYWwgQ29udmVyZ2luZyBUZWNobm9sb2dpZXMKKzAwMzA5OCAgICAgKGJhc2UgMTYpCQlHbG9iYWwgQ29udmVyZ2luZyBUZWNobm9sb2dpZXMKKwkJCQkxODAwIFByZXN0b24gUGFyayBCbHZkLgorCQkJCVN1aXRlICMyNTAKKwkJCQlQbGFubyBUWCA3NTA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtOTkgICAoaGV4KQkJQk9FTklHIFVORCBLQUxMRU5CQUNIIE9IRworMDAzMDk5ICAgICAoYmFzZSAxNikJCUJPRU5JRyBVTkQgS0FMTEVOQkFDSCBPSEcKKwkJCQlBTSBTUE9FUktFTCAxMDAKKwkJCQk0NDIyNyBET1JUTVVORAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLTlBICAgKGhleCkJCUFTVFJPIFRFUlJBIENPUlAuCiswMDMwOUEgICAgIChiYXNlIDE2KQkJQVNUUk8gVEVSUkEgQ09SUC4KKwkJCQkxMTUyNiBTT1JSRU5UTyBWQUxMRVkgUk9BRAorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtOUIgICAoaGV4KQkJU21hcnR3YXJlCiswMDMwOUIgICAgIChiYXNlIDE2KQkJU21hcnR3YXJlCisJCQkJNDkgQVYgQXJpc3RpZGUKKwkJCQlCcmlhbmQKKwkJCQk5MjE2MCBBbnRvbnkgIAorCQkJCUZSQU5DRQorCiswMC0zMC05QyAgIChoZXgpCQlUaW1pbmcgQXBwbGljYXRpb25zLCBJbmMuCiswMDMwOUMgICAgIChiYXNlIDE2KQkJVGltaW5nIEFwcGxpY2F0aW9ucywgSW5jLgorCQkJCTQ3NzUgV2FsbnV0IFN0LgorCQkJCVN1aXRlIDFCCisJCQkJQm91bGRlciBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtOUQgICAoaGV4KQkJTmltYmxlIE1pY3Jvc3lzdGVtcywgSW5jLgorMDAzMDlEICAgICAoYmFzZSAxNikJCU5pbWJsZSBNaWNyb3N5c3RlbXMsIEluYy4KKwkJCQk1MCBDaHVyY2ggU3RyZWV0IC0gNXRoIEZsb29yCisJCQkJQ2FtYnJpZGdlIE1BIDAyMTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05RSAgIChoZXgpCQlXT1JLQklUIENPUlBPUkFUSU9OLgorMDAzMDlFICAgICAoYmFzZSAxNikJCVdPUktCSVQgQ09SUE9SQVRJT04uCisJCQkJMS0yLTIgQ2h1b3UsIFlhbWF0bworCQkJCUthbmFnYXdhICAyNDItMDAyMSAgCisJCQkJSkFQQU4KKworMDAtMzAtOUYgICAoaGV4KQkJQU1CRVIgTkVUV09SS1MKKzAwMzA5RiAgICAgKGJhc2UgMTYpCQlBTUJFUiBORVRXT1JLUworCQkJCTI0NzUgQVVHVVNUSU5FIERSLgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1BMCAgIChoZXgpCQlUWUNPIFNVQk1BUklORSBTWVNURU1TLCBMVEQuCiswMDMwQTAgICAgIChiYXNlIDE2KQkJVFlDTyBTVUJNQVJJTkUgU1lTVEVNUywgTFRELgorCQkJCTI1MCBJTkRVU1RSSUFMIFdBWSBXRVNUCisJCQkJRUFUT05UT1dOIE5KIDA3NzI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1BMSAgIChoZXgpCQlXRUJHQVRFIEluYy4KKzAwMzBBMSAgICAgKGJhc2UgMTYpCQlXRUJHQVRFIEluYy4KKwkJCQk0RiwgUGlrYSBCbGRnLiwgODk0LTIwLCBIb3lrZSAyLWRvbmcKKwkJCQlEb25nYW4tS3UsCisJCQkJQW55YW5nLVNpIEt5dW5nZ2ktRG8gCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTMwLUEyICAgKGhleCkJCUxpZ2h0bmVyIEVuZ2luZWVyaW5nCiswMDMwQTIgICAgIChiYXNlIDE2KQkJTGlnaHRuZXIgRW5naW5lZXJpbmcKKwkJCQk4NTUxIExhIEpvbGxhIFNob3JlcyBEcgorCQkJCUxhIEpvbGxhIENBIDkyMDM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1BMyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDMwQTMgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRSAtU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQTQgICAoaGV4KQkJV29vZHdpbmQgQ29tbXVuaWNhdGlvbnMgU3lzdGVtCiswMDMwQTQgICAgIChiYXNlIDE2KQkJV29vZHdpbmQgQ29tbXVuaWNhdGlvbnMgU3lzdGVtCisJCQkJMjAzMDAgQ2VudHVyeSBCbHZkLiwgU3VpdGUgMjAwQgorCQkJCUdlcm1hbnRvd24gTUQgMjA4NzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUE1ICAgKGhleCkJCUFDVElWRSBQT1dFUgorMDAzMEE1ICAgICAoYmFzZSAxNikJCUFDVElWRSBQT1dFUgorCQkJCTExNTI1IFNUT05FSE9MTE9XIC0gU1RFLiMyNTUKKwkJCQlBVVNUSU4gVFggNzg3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUE2ICAgKGhleCkJCVZJQU5FVCBURUNITk9MT0dJRVMsIExURC4KKzAwMzBBNiAgICAgKGJhc2UgMTYpCQlWSUFORVQgVEVDSE5PTE9HSUVTLCBMVEQuCisJCQkJOCBIQUNIQVJBU0ggU1RSRUVUCisJCQkJUkFNQVQgSEFTSEFST04gNDcyNjIKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMzAtQTcgICAoaGV4KQkJU0NIV0VJVFpFUiBFTkdJTkVFUklORworMDAzMEE3ICAgICAoYmFzZSAxNikJCVNDSFdFSVRaRVIgRU5HSU5FRVJJTkcKKwkJCQlMQUJPUkFUT1JJRVMsIElOQy4KKwkJCQkyMzUwIE5FIEhPUEtJTlMgQ09VUlQKKwkJCQlQVUxMTUFOIFdBIDk5MTYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1BOCAgIChoZXgpCQlPTCdFIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDMwQTggICAgIChiYXNlIDE2KQkJT0wnRSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTE5NjIgWkFOS0VSIFJPQUQKKwkJCQlTQU4gSk9TRSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQTkgICAoaGV4KQkJTmV0aXZlcnNlLCBJbmMuCiswMDMwQTkgICAgIChiYXNlIDE2KQkJTmV0aXZlcnNlLCBJbmMuCisJCQkJMTAwIENlbnR1cnkgQ2VudGVyIENvdXJ0CisJCQkJU3VpdGUgIzYwMAorCQkJCVNhbiBKb3NlIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1BQSAgIChoZXgpCQlBWFVTIE1JQ1JPU1lTVEVNUywgSU5DLgorMDAzMEFBICAgICAoYmFzZSAxNikJCUFYVVMgTUlDUk9TWVNURU1TLCBJTkMuCisJCQkJMkYtNCwgTk8uMTgvTi4gNjA5LCBTRUMuIDUKKwkJCQlDSFVOLUhTSU4gUk9BRCwgU0FOIENIVU5HIFRBSVBFSSBDT1VOVFkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtQUIgICAoaGV4KQkJREVMVEEgTkVUV09SS1MsIElOQy4KKzAwMzBBQiAgICAgKGJhc2UgMTYpCQlERUxUQSBORVRXT1JLUywgSU5DLgorCQkJCTgsIEtPTiBKQU4gV0VTVCBST0FECisJCQkJTElVVFUgSU5EVVNUUklBTCBaT05FIEtFRUxVTkcKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtQUMgICAoaGV4KQkJU3lzdGVtZSBMYXVlciBHbWJIICYgQ28uLCBMdGQuCiswMDMwQUMgICAgIChiYXNlIDE2KQkJU3lzdGVtZSBMYXVlciBHbWJIICYgQ28uLCBMdGQuCisJCQkJS2VsdGVyc3RyYXNzZSA1OQorCQkJCTcyNjY5IFVudGVyZW5zaW5nZW4gIAorCQkJCUdFUk1BTlkKKworMDAtMzAtQUQgICAoaGV4KQkJU0hBTkdIQUkgQ09NTVVOSUNBVElPTgorMDAzMEFEICAgICAoYmFzZSAxNikJCVNIQU5HSEFJIENPTU1VTklDQVRJT04KKwkJCQlURUNITk9MT0dJRVMgQ0VOVEVSCisJCQkJMTUgR1VJLVFJTkcgUk9BRCBTSEFOR0hBSSAyMDAyMzMKKwkJCQlQLlIuIENISU5BCisJCQkJQ0hJTkEKKworMDAtMzAtQUUgICAoaGV4KQkJVGltZXMgTiBTeXN0ZW0sIEluYy4KKzAwMzBBRSAgICAgKGJhc2UgMTYpCQlUaW1lcyBOIFN5c3RlbSwgSW5jLgorCQkJCTE4MjYgS3JhbWVyIExhbmUgLSBTdGUuCisJCQkJQXVzdGluIFRYIDc4NzU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1BRiAgIChoZXgpCQlIb25leXdlbGwgR21iSAorMDAzMEFGICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbCBHbWJICisJCQkJQm9lYmxpbmdlciBTdHIuIDE3CisJCQkJUC5PLiBCb3ggMTE2NAorCQkJCUQtNzEwOTggU2Nob2VuYWljaCAgCisJCQkJR0VSTUFOWQorCiswMC0zMC1CMCAgIChoZXgpCQlDb252ZXJnZW5ldCBUZWNobm9sb2dpZXMKKzAwMzBCMCAgICAgKGJhc2UgMTYpCQlDb252ZXJnZW5ldCBUZWNobm9sb2dpZXMKKwkJCQkyMjIyIFRyYWRlIFpvbmUgQm91bGV2YXJkCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUIxICAgKGhleCkJCVRydW5rTmV0CiswMDMwQjEgICAgIChiYXNlIDE2KQkJVHJ1bmtOZXQKKwkJCQlBdWJlcmdlbnZpbGxlciBBbGxlZSA1MQorCQkJCURpZWJ1cmcgIEQtNjQ4MDcKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLUIyICAgKGhleCkJCUwtMyBTb25vbWEgRU8KKzAwMzBCMiAgICAgKGJhc2UgMTYpCQlMLTMgU29ub21hIEVPCisJCQkJNDI4IEF2aWF0aW9uIEJsdmQKKwkJCQlTYW50YSBSb3NhIENBIDk1NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1CMyAgIChoZXgpCQlTYW4gVmFsbGV5IFN5c3RlbXMsIEluYy4KKzAwMzBCMyAgICAgKGJhc2UgMTYpCQlTYW4gVmFsbGV5IFN5c3RlbXMsIEluYy4KKwkJCQkyMTA1IFMuIEJhc2NvbSBBdmUuIC0gU3RlLiAjMzkwCisJCQkJQ2FtcGJlbGwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUI0ICAgKGhleCkJCUlOVEVSU0lMIENPUlAuCiswMDMwQjQgICAgIChiYXNlIDE2KQkJSU5URVJTSUwgQ09SUC4KKwkJCQlQLk8uIEJPWCA4ODMKKwkJCQkyNDAxIFBBTE0gQkFZIFJPQUQKKwkJCQlNRUxCT1VSTkUgRkwgMzI5MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUI1ICAgKGhleCkJCVRhZGlyYW4gTWljcm93YXZlIE5ldHdvcmtzCiswMDMwQjUgICAgIChiYXNlIDE2KQkJVGFkaXJhbiBNaWNyb3dhdmUgTmV0d29ya3MKKwkJCQk0MDAwIEdyZWVuYnJpYXIgRHJpdmUKKwkJCQlTdGFmZm9yZCBUWCA3NzQ3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQjYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAzMEI2ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUgLSBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1CNyAgIChoZXgpCQlUZWxldHJvbCBTeXN0ZW1zLCBJbmMuCiswMDMwQjcgICAgIChiYXNlIDE2KQkJVGVsZXRyb2wgU3lzdGVtcywgSW5jLgorCQkJCVRlY2hub2xvZ3kgQ2VudGVyCisJCQkJMjg2IENvbW1lcmNpYWwgU3RyZWV0CisJCQkJTWFuY2hlc3RlciBOSCAwMzEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQjggICAoaGV4KQkJUml2ZXJEZWx0YSBOZXR3b3JrcworMDAzMEI4ICAgICAoYmFzZSAxNikJCVJpdmVyRGVsdGEgTmV0d29ya3MKKwkJCQlUaHJlZSBIaWdod29vZCBEcml2ZSBFYXN0CisJCQkJVGV3a3NidXJ5IE1BIDAxODc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1COSAgIChoZXgpCQlFQ1RFTAorMDAzMEI5ICAgICAoYmFzZSAxNikJCUVDVEVMCisJCQkJMjIyNDAgQ09NU0FUIERSSVZFCisJCQkJQ0xBUktTQlVSRyBNRCAyMDg3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQkEgICAoaGV4KQkJQUMmVCBTWVNURU0gQ08uLCBMVEQuCiswMDMwQkEgICAgIChiYXNlIDE2KQkJQUMmVCBTWVNURU0gQ08uLCBMVEQuCisJCQkJUk9PTSA3MDIsIEtFVU0tV0hBIFBMQVpBCisJCQkJMTE0Mi01LCBTQU5CT04tRE9ORyBLT09OUE8tU0hJLCBLWU9OR0tJLQorCQkJCTQzNS0wNDAgU09VVEggS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMzAtQkIgICAoaGV4KQkJQ2FjaGVGbG93LCBJbmMuCiswMDMwQkIgICAgIChiYXNlIDE2KQkJQ2FjaGVGbG93LCBJbmMuCisJCQkJNjUwIEFsbWFub3IgRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUJDICAgKGhleCkJCU9wdHJvbmljIEFHCiswMDMwQkMgICAgIChiYXNlIDE2KQkJT3B0cm9uaWMgQUcKKwkJCQl1bnRlcmVnZ2Vyc3RyYXNzZSA1MworCQkJCTk0MDMgR29sZGFjaCAgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMzAtQkQgICAoaGV4KQkJQkVMS0lOIENPTVBPTkVOVFMKKzAwMzBCRCAgICAgKGJhc2UgMTYpCQlCRUxLSU4gQ09NUE9ORU5UUworCQkJCTUwMSBXRVNUIFdBTE5VVCBTVFJFRVQKKwkJCQlDT01QVE9OIENBIDkwMjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1CRSAgIChoZXgpCQlDaXR5LU5ldCBUZWNobm9sb2d5LCBJbmMuCiswMDMwQkUgICAgIChiYXNlIDE2KQkJQ2l0eS1OZXQgVGVjaG5vbG9neSwgSW5jLgorCQkJCTEzNSBFLiBDaGVzbnV0IEF2ZS4sIFN0ZS4KKwkJCQlNb25yb3ZpYSBDQSA5MTAxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQkYgICAoaGV4KQkJTVVMVElEQVRBIEdNQkgKKzAwMzBCRiAgICAgKGJhc2UgMTYpCQlNVUxUSURBVEEgR01CSAorCQkJCUFMU0ZFTERFUiBTVFIuIDMKKwkJCQlELTY0Mjg5IERBUk1TVEFEVAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLUMwICAgKGhleCkJCUxhcmEgVGVjaG5vbG9neSwgSW5jLgorMDAzMEMwICAgICAoYmFzZSAxNikJCUxhcmEgVGVjaG5vbG9neSwgSW5jLgorCQkJCTIzNDUgTm9ydGggRmlyc3QgU3RyZWV0CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUMxICAgKGhleCkJCUhFV0xFVFQtUEFDS0FSRAorMDAzMEMxICAgICAoYmFzZSAxNikJCUhFV0xFVFQtUEFDS0FSRAorCQkJCTExMDAwIFdPTEZFIFJPQUQKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUMyICAgKGhleCkJCUNPTU9ORQorMDAzMEMyICAgICAoYmFzZSAxNikJCUNPTU9ORQorCQkJCVBhcmMgRGUgTWFydGljb3QKKwkJCQkzMzYxMCBDZXN0YXMgIAorCQkJCUZSQU5DRQorCiswMC0zMC1DMyAgIChoZXgpCQlGTFVFQ0tJR0VSIEVMRUtUUk9OSUsgQUcKKzAwMzBDMyAgICAgKGJhc2UgMTYpCQlGTFVFQ0tJR0VSIEVMRUtUUk9OSUsgQUcKKwkJCQlLSVJDSEJBUkdTVFJBU1NFIDIwMQorCQkJCUNILTM0MDAgQlVSR0RPUkYKKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTMwLUM0ICAgKGhleCkJCUNhbm9uIEltYWdpbmcgU3lzdGVtcyBJbmMuCiswMDMwQzQgICAgIChiYXNlIDE2KQkJQ2Fub24gSW1hZ2luZyBTeXN0ZW1zIEluYy4KKwkJCQkxLTI0IFlvbmV5YW1hLCBDaHVvLWt1CisJCQkJTmlpZ2F0YS1zaGkgTmlpZ2F0YSA5NTAtMDkxNgorCQkJCUpBUEFOCisKKzAwLTMwLUM1ICAgKGhleCkJCUNBREVOQ0UgREVTSUdOIFNZU1RFTVMKKzAwMzBDNSAgICAgKGJhc2UgMTYpCQlDQURFTkNFIERFU0lHTiBTWVNURU1TCisJCQkJQ0FOQURBLCBMVEQuCisJCQkJMjQwLTExMzAgTU9SUklTT04gRFJJVkUgT1RUQVdBLCBPTlRBUklPCisJCQkJQ0FOQURBCisJCQkJQ0FOQURBCisKKzAwLTMwLUM2ICAgKGhleCkJCUNPTlRST0wgU09MVVRJT05TLCBJTkMuCiswMDMwQzYgICAgIChiYXNlIDE2KQkJQ09OVFJPTCBTT0xVVElPTlMsIElOQy4KKwkJCQkyMDEgODVUSCBBVkVOVUUgTlcKKwkJCQlNSU5ORUFQT0xJUyBNTiA1NTQzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQzcgICAoaGV4KQkJTWFjcm9tYXRlIENvcnAuCiswMDMwQzcgICAgIChiYXNlIDE2KQkJTWFjcm9tYXRlIENvcnAuCisJCQkJOEYsVW5pdmVyc2FsIENlbnRlcixOdW1iZXIgMTc5CisJCQkJU2VjLjEsVGEtVHVuZyBSb2FkLCBIc2ktQ2hpaAorCQkJCVRhaXBlaSBIc2llbiAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLUM4ICAgKGhleCkJCUdBRCBMSU5FLCBMVEQuCiswMDMwQzggICAgIChiYXNlIDE2KQkJR0FEIExJTkUsIExURC4KKwkJCQlCRUlUIFJPS0FSIEhBUiBIT1RaVklNCisJCQkJSkVSVVNBTEVNCisJCQkJSVNSQUVMCisKKzAwLTMwLUM5ICAgKGhleCkJCUx1eE4sIE4KKzAwMzBDOSAgICAgKGJhc2UgMTYpCQlMdXhOLCBOCisJCQkJNTcwIE1hdWRlIENvdXJ0CisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1DQSAgIChoZXgpCQlEaXNjb3ZlcnkgQ29tCiswMDMwQ0EgICAgIChiYXNlIDE2KQkJRGlzY292ZXJ5IENvbQorCQkJCTQ5MzUgQ2VudHVyeSBTdHJlZXQKKwkJCQlIdW50c3ZpbGxlIEFMIDM1ODE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1DQiAgIChoZXgpCQlPTU5JIEZMT1cgQ09NUFVURVJTLCBJTkMuCiswMDMwQ0IgICAgIChiYXNlIDE2KQkJT01OSSBGTE9XIENPTVBVVEVSUywgSU5DLgorCQkJCTEwNzAxIENPUlBPUkFURSBEUklWRS1TVEUuIzMwMAorCQkJCVNUQUZGT1JEIFRYIDc3NDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1DQyAgIChoZXgpCQlUZW5vciBOZXR3b3JrcywgSW5jLgorMDAzMENDICAgICAoYmFzZSAxNikJCVRlbm9yIE5ldHdvcmtzLCBJbmMuCisJCQkJNTAgTmFnb2cgUGFyaworCQkJCUFjdG9uIE1BIDAxNzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1DRCAgIChoZXgpCQlDT05FWEFOVCBTWVNURU1TLCBJTkMuCiswMDMwQ0QgICAgIChiYXNlIDE2KQkJQ09ORVhBTlQgU1lTVEVNUywgSU5DLgorCQkJCTQzMTEgSkFNQk9SRUUgUk9BRAorCQkJCU5FV1BPUlQgQkVBQ0ggQ0EgOTI2NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUNFICAgKGhleCkJCVphZmZpcmUKKzAwMzBDRSAgICAgKGJhc2UgMTYpCQlaYWZmaXJlCisJCQkJMjYzMCBPcmNoYXJkIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNC0yMDIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1DRiAgIChoZXgpCQlUV08gVEVDSE5PTE9HSUVTLCBJTkMuCiswMDMwQ0YgICAgIChiYXNlIDE2KQkJVFdPIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTQxOSBTQVJHT04gV0FZCisJCQkJSE9SU0hBTSBQQSAxOTA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRDAgICAoaGV4KQkJVGVsbGFicworMDAzMEQwICAgICAoYmFzZSAxNikJCVRlbGxhYnMKKwkJCQkxNzUwIEZvdW5kZXIncyBQYXJrd2F5CisJCQkJU3VpdGUgMTAwCisJCQkJQWxwaGFyZXR0YSBHQSAzMDAwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRDEgICAoaGV4KQkJSU5PVkEgQ09SUE9SQVRJT04KKzAwMzBEMSAgICAgKGJhc2UgMTYpCQlJTk9WQSBDT1JQT1JBVElPTgorCQkJCTExMCBBVk9OIFNUUkVFVAorCQkJCUNIQVJMT1RURVNWSUxFIFZBIDIyOTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1EMiAgIChoZXgpCQlXSU4gVEVDSE5PTE9HSUVTLCBDTy4sIExURC4KKzAwMzBEMiAgICAgKGJhc2UgMTYpCQlXSU4gVEVDSE5PTE9HSUVTLCBDTy4sIExURC4KKwkJCQk0Ri02LCBOby4gODEsIFNlYy4gMQorCQkJCUhzaW4gVGFpIFd1IFJvYWQsIEhzaS1DaGkKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtRDMgICAoaGV4KQkJQWdpbGVudCBUZWNobm9sb2dpZXMKKzAwMzBEMyAgICAgKGJhc2UgMTYpCQlBZ2lsZW50IFRlY2hub2xvZ2llcworCQkJCTE1MDEgUGFnZSBNaWxsIFJvYWQKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDQtMTEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRDQgICAoaGV4KQkJQUFFIFN5c3RlbXMsIEluYworMDAzMEQ0ICAgICAoYmFzZSAxNikJCUFBRSBTeXN0ZW1zLCBJbmMKKwkJCQk2NDIgTm9ydGggUGFzdG9yaWEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1ENSAgIChoZXgpCQlEUmVzZWFyY2ggR21iSAorMDAzMEQ1ICAgICAoYmFzZSAxNikJCURSZXNlYXJjaCBHbWJICisJCQkJT3R0by1TY2htaXJnYWwtU3RyLjMKKwkJCQkxMDMxOSBCZXJsaW4gIAorCQkJCUdFUk1BTlkKKworMDAtMzAtRDYgICAoaGV4KQkJTVNDIFZFUlRSSUVCUyBHTUJICiswMDMwRDYgICAgIChiYXNlIDE2KQkJTVNDIFZFUlRSSUVCUyBHTUJICisJCQkJSU5EVVNUUklFU1RSLiAxNgorCQkJCUQtNzYyOTcgU1RVVEVOU0VFCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMzAtRDcgICAoaGV4KQkJSW5ub3ZhdGl2ZSBTeXN0ZW1zLCBMLkwuQy4KKzAwMzBENyAgICAgKGJhc2UgMTYpCQlJbm5vdmF0aXZlIFN5c3RlbXMsIEwuTC5DLgorCQkJCTEwMDAgSW5ub3ZhdGl2ZSBEcml2ZQorCQkJCU1pdGNoZWxsIFNEIDU3MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1EOCAgIChoZXgpCQlTSVRFSworMDAzMEQ4ICAgICAoYmFzZSAxNikJCVNJVEVLCisJCQkJVklBIE1PTlRFIEZJT1JJTk8gOQorCQkJCTM3MDU3IC0gUy4gR0lPVkFOTkkgTFVQLiBWRVJPTkEKKwkJCQlJVEFMWQorCQkJCUlUQUxZCisKKzAwLTMwLUQ5ICAgKGhleCkJCURBVEFDT1JFIFNPRlRXQVJFIENPUlAuCiswMDMwRDkgICAgIChiYXNlIDE2KQkJREFUQUNPUkUgU09GVFdBUkUgQ09SUC4KKwkJCQlDT1JQT1JBVEUgUEFSSworCQkJCTYyNjEgTlcgNlRIIFdBWSAjMTEwCisJCQkJRk9SVCBMQVVERVJEQUxFIEZMIDMzMzA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1EQSAgIChoZXgpCQlDT01UUkVORCBDTy4KKzAwMzBEQSAgICAgKGJhc2UgMTYpCQlDT01UUkVORCBDTy4KKwkJCQkzRi0xIDEwIExBTkUgNjA5IENIVU5HCisJCQkJSFNJTiBST0FELCBTRUMgNSwgU0FOIENIVU5HIENJVFksIFRBSVBFSQorCQkJCVRBSVdBTiAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLURCICAgKGhleCkJCU1pbmRyZWFkeSBTb2x1dGlvbnMsIEluYy4KKzAwMzBEQiAgICAgKGJhc2UgMTYpCQlNaW5kcmVhZHkgU29sdXRpb25zLCBJbmMuCisJCQkJMjgwMCBNYXJpZS1DdXJpZSBBdmVudWUKKwkJCQlTYWludC1MYXVyZW50CisJCQkJUXVlYmVjICBINFMgMkMyCisJCQkJQ0FOQURBCisKKzAwLTMwLURDICAgKGhleCkJCVJJR0hURUNIIENPUlBPUkFUSU9OCiswMDMwREMgICAgIChiYXNlIDE2KQkJUklHSFRFQ0ggQ09SUE9SQVRJT04KKwkJCQk0RiwgTk8uIDM1MSwgQ0hVTkctU0hVTiBSRC4KKwkJCQlTRUMuIDIsIENIVU5HLUhPIENJVFkgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLUREICAgKGhleCkJCUlORElHSVRBIENPUlBPUkFUSU9OCiswMDMwREQgICAgIChiYXNlIDE2KQkJSU5ESUdJVEEgQ09SUE9SQVRJT04KKwkJCQkzMCBDb3Jwb3JhdGUgUGFyayBEcml2ZQorCQkJCVN1aXRlIDMxMAorCQkJCUlydmluZSBDQSA5MjYwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtREUgICAoaGV4KQkJV0FHTyBLb250YWt0dGVjaG5payBHbWJICiswMDMwREUgICAgIChiYXNlIDE2KQkJV0FHTyBLb250YWt0dGVjaG5payBHbWJICisJCQkJSGFuc2FzdHJhc3NlIDI3CisJCQkJMzI0MjMgTWluZGVuICAKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLURGICAgKGhleCkJCUtCL1RFTCBURUxFQ09NVU5JQ0FDSU9ORVMKKzAwMzBERiAgICAgKGJhc2UgMTYpCQlLQi9URUwgVEVMRUNPTVVOSUNBQ0lPTkVTCisJCQkJUy5BLiBERSBDLlYuCisJCQkJVE9SUkUgVEVMTUVYIDQgIFBJU08sIFBMQVpBIENVSUNVSUxDTworCQkJCU1leGljbyBDaXR5IDE0MDYwICAKKwkJCQlNRVhJQ08KKworMDAtMzAtRTAgICAoaGV4KQkJT1hGT1JEIFNFTUlDT05EVUNUT1IgTFRELgorMDAzMEUwICAgICAoYmFzZSAxNikJCU9YRk9SRCBTRU1JQ09ORFVDVE9SIExURC4KKwkJCQkyNSBNSUxUT04gUEFSSworCQkJCUFiaW5nZG9uIE94b24gT1gxNCA0U0gKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0zMC1FMSAgIChoZXgpCQlOZXR3b3JrIEVxdWlwbWVudCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMzBFMSAgICAgKGJhc2UgMTYpCQlOZXR3b3JrIEVxdWlwbWVudCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk2OTAwIFBhc2VvIFBhZHJlIFBhcmt3YXkKKwkJCQlGcmVtb250IENBIDk0NTU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1FMiAgIChoZXgpCQlHQVJORVQgU1lTVEVNUyBDTy4sIExURC4KKzAwMzBFMiAgICAgKGJhc2UgMTYpCQlHQVJORVQgU1lTVEVNUyBDTy4sIExURC4KKwkJCQlTdW5nd29uIEJsZGcuIDU0NS03CisJCQkJRG9nb2stRG9uZywgS2FuZ25hbS1HdQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMzAtRTMgICAoaGV4KQkJU0VET05BIE5FVFdPUktTIENPUlAuCiswMDMwRTMgICAgIChiYXNlIDE2KQkJU0VET05BIE5FVFdPUktTIENPUlAuCisJCQkJMTBBIEhFQVJTVCBXQVkKKwkJCQlLQU5BVEEsICBPTlRBUklPCisJCQkJQ0FOQURBIEsyTCAyUDQKKwkJCQlDQU5BREEKKworMDAtMzAtRTQgICAoaGV4KQkJQ0hJWU9EQSBTWVNURU0gUklLRU4KKzAwMzBFNCAgICAgKGJhc2UgMTYpCQlDSElZT0RBIFNZU1RFTSBSSUtFTgorCQkJCTItNywgS0FOREEtTklTSElLSS1DSE8KKwkJCQlDSElZT0RBLUtVIFRPS1lPCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0zMC1FNSAgIChoZXgpCQlBbXBlciBEYXRvcyBTLkEuCiswMDMwRTUgICAgIChiYXNlIDE2KQkJQW1wZXIgRGF0b3MgUy5BLgorCQkJCUMvTWFyY29uaSBuKjMgIChQVE0pCisJCQkJVHJlcyBDYW50b3MKKwkJCQkyODc2MCBNYWRyaWQgIAorCQkJCVNQQUlOCisKKzAwLTMwLUU2ICAgKGhleCkJCURyYWVnZXIgTWVkaWNhbCBTeXN0ZW1zLCBJbmMuCiswMDMwRTYgICAgIChiYXNlIDE2KQkJRHJhZWdlciBNZWRpY2FsIFN5c3RlbXMsIEluYy4KKwkJCQk2IFRlY2ggRHJpdmUKKwkJCQlBbmRvdmVyIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1FNyAgIChoZXgpCQlDTkYgTU9CSUxFIFNPTFVUSU9OUywgSU5DLgorMDAzMEU3ICAgICAoYmFzZSAxNikJCUNORiBNT0JJTEUgU09MVVRJT05TLCBJTkMuCisJCQkJNzcyMiBFLiBHUkFZIFJPQUQKKwkJCQlTQ09UVFNEQUxFIEFaIDg1MjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1FOCAgIChoZXgpCQlFTlNJTSBDT1JQLgorMDAzMEU4ICAgICAoYmFzZSAxNikJCUVOU0lNIENPUlAuCisJCQkJMTIxNSBUZXJyYSBCZWxsYSBBdmUuCisJCQkJTW91bnRhaW52aWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1FOSAgIChoZXgpCQlHTUEgQ09NTVVOSUNBVElPTiBNQU5VRkFDVCdHCiswMDMwRTkgICAgIChiYXNlIDE2KQkJR01BIENPTU1VTklDQVRJT04gTUFOVUZBQ1QnRworCQkJCU1BUktFVElORywgKDE5OTEpIExURC4KKwkJCQkxMDIgSkFCVVRJTlNLSSBTVFJFRVQgS0lSWUFUIEFSSUUsIFBFVEFDCisJCQkJSVNSQUVMIElTUkFFTCA0OTEzMAorCQkJCUlTUkFFTAorCiswMC0zMC1FQSAgIChoZXgpCQlUZXJhRm9yY2UgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAzMEVBICAgICAoYmFzZSAxNikJCVRlcmFGb3JjZSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJMTEwMCBFWEVDVVRJVkUgRFJJVkUKKwkJCQlSSUNIQVJEU09OIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1FQiAgIChoZXgpCQlUVVJCT05FVCBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDAzMEVCICAgICAoYmFzZSAxNikJCVRVUkJPTkVUIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTlGLTEsIE5PLiAxNzEsIFNVTkctVEVIIFJPQUQKKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtRUMgICAoaGV4KQkJQk9SR0FSRFQKKzAwMzBFQyAgICAgKGJhc2UgMTYpCQlCT1JHQVJEVAorCQkJCURJRVNFTFNUUi4gMTUKKwkJCQlENzE2NjUgVkFJSElOR0VOL0VOWgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLUVEICAgKGhleCkJCUV4cGVydCBNYWduZXRpY3MgQ29ycC4KKzAwMzBFRCAgICAgKGJhc2UgMTYpCQlFeHBlcnQgTWFnbmV0aWNzIENvcnAuCisJCQkJMTIvRi4sIFVuaXQgRCwgTVRHIEJsZGcuLCAxLTMsIE5ha2FzZQorCQkJCU1paGFtYS1rdSwgQ2hpYmEtY2l0eSwgMjYxLTg1MDEgIAorCQkJCUpBUEFOCisKKzAwLTMwLUVFICAgKGhleCkJCURTRyBUZWNobm9sb2d5LCBJbmMuCiswMDMwRUUgICAgIChiYXNlIDE2KQkJRFNHIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk2Ri00IE5vLiAyNzAsIENod2lnIEhzaWFvCisJCQkJRWFzdCBSb2FkLCBTZWMuIDQKKwkJCQkgVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLUVGICAgKGhleCkJCU5FT04gVEVDSE5PTE9HWSwgSU5DLgorMDAzMEVGICAgICAoYmFzZSAxNikJCU5FT04gVEVDSE5PTE9HWSwgSU5DLgorCQkJCTg1IFdFU1QgTU9OVEFHVUUgRVhQUkVTU1dBWQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1GMCAgIChoZXgpCQlVbmlmb3JtIEluZHVzdHJpYWwgQ29ycC4KKzAwMzBGMCAgICAgKGJhc2UgMTYpCQlVbmlmb3JtIEluZHVzdHJpYWwgQ29ycC4KKwkJCQkxOEYsIDE3MSwgU2h1bmcgVGVoIFJvYWQKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtRjEgICAoaGV4KQkJQWNjdG9uIFRlY2hub2xvZ3kgQ29ycC4KKzAwMzBGMSAgICAgKGJhc2UgMTYpCQlBY2N0b24gVGVjaG5vbG9neSBDb3JwLgorCQkJCU5vLiAxLCBDcmVhdGlvbiBSZC4gSVYKKwkJCQlTLkcuWi5QCisJCQkJSHNpbmNodSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC1GMiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDMwRjIgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRSAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgODUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUYzICAgKGhleCkJCUF0IFdvcmsgQ29tcHV0ZXJzCiswMDMwRjMgICAgIChiYXNlIDE2KQkJQXQgV29yayBDb21wdXRlcnMKKwkJCQlQLk8uIEJveCA5NDcKKwkJCQlDb3J2YWxsaXMgT1IgOTczMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUY0ICAgKGhleCkJCVNUQVJET1QgVEVDSE5PTE9HSUVTCiswMDMwRjQgICAgIChiYXNlIDE2KQkJU1RBUkRPVCBURUNITk9MT0dJRVMKKwkJCQk2ODIwLUggT1JBTkdFIFRIT1JQRSBBVkUuCisJCQkJQlVFTkEgUEFSSyBDQSA5MDYyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRjUgICAoaGV4KQkJV2lsZCBMYWIuIEx0ZC4KKzAwMzBGNSAgICAgKGJhc2UgMTYpCQlXaWxkIExhYi4gTHRkLgorCQkJCTEtMzMtMTctNjA0IEhhcmF5YW1hCisJCQkJVXJhd2EgQ2l0eSBTYWl0YW1hIHByaWYuIDMzNi0wOTMxIAorCQkJCUpBUEFOCisKKzAwLTMwLUY2ICAgKGhleCkJCVNFQ1VSRUxPR0lYIENPUlBPUkFUSU9OCiswMDMwRjYgICAgIChiYXNlIDE2KQkJU0VDVVJFTE9HSVggQ09SUE9SQVRJT04KKwkJCQkxMzc1MCBTQU4gUEVEUk8KKwkJCQlTQU4gQU5UT05JTyBUWCA3ODIzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRjcgICAoaGV4KQkJUkFNSVggSU5DLgorMDAzMEY3ICAgICAoYmFzZSAxNikJCVJBTUlYIElOQy4KKwkJCQkxNjcyIERPTkxPTiBTVFJFRVQKKwkJCQlWRU5UVVJBIENBIDkzMDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1GOCAgIChoZXgpCQlEeW5hcHJvIFN5c3RlbXMsIEluYy4KKzAwMzBGOCAgICAgKGJhc2UgMTYpCQlEeW5hcHJvIFN5c3RlbXMsIEluYy4KKwkJCQk4MDAgQ2FybGV0b24gQ291cnQKKwkJCQlBbm5hY2lzIElzbGFuZAorCQkJCU5ldyBXZXN0bWluc3RlciBCcml0aXNoIENvbHVtYmlhIFYzTSA2TDMgCisJCQkJQ0FOQURBCisKKzAwLTMwLUY5ICAgKGhleCkJCVNvbGxhZSBTeXN0ZW1zIENvLiwgTHRkLgorMDAzMEY5ICAgICAoYmFzZSAxNikJCVNvbGxhZSBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCTYwNyBJbmNoZW8gSVQgVG93ZXIKKwkJCQk1OTItNSwgRG9od2EtMS1kb25nCisJCQkJTmFtLWd1IEluY2hlb24gCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTMwLUZBICAgKGhleCkJCVRFTElDQSwgSU5DLgorMDAzMEZBICAgICAoYmFzZSAxNikJCVRFTElDQSwgSU5DLgorCQkJCTczNCBGT1JFU1QgU1RSRUVULCBCTERHLgorCQkJCVNVSVRFICMxMDAKKwkJCQlNQVJMQk9STyBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRkIgICAoaGV4KQkJQVpTIFRlY2hub2xvZ3kgQUcKKzAwMzBGQiAgICAgKGJhc2UgMTYpCQlBWlMgVGVjaG5vbG9neSBBRworCQkJCVN0ZWluYmVpc3N0cmFzc2UgMi00CisJCQkJNzI1MTAgU3RldHRlbiBBLksuTS4gIAorCQkJCUdFUk1BTlkKKworMDAtMzAtRkMgICAoaGV4KQkJVGVyYXdhdmUgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMzBGQyAgICAgKGJhc2UgMTYpCQlUZXJhd2F2ZSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTMwNjk1IEh1bnR3b29kIEF2ZW51ZQorCQkJCUhheXdhcmQgQ0EgOTQ1NDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUZEICAgKGhleCkJCUlOVEVHUkFURUQgU1lTVEVNUyBERVNJR04KKzAwMzBGRCAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIFNZU1RFTVMgREVTSUdOCisJCQkJMzY1MC1HIENFTlRSRSBDSVJDTEUgRFJJVkUKKwkJCQlGT1JUIE1JTEwgU0MgMjk3MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUZFICAgKGhleCkJCURTQSBHbWJICiswMDMwRkUgICAgIChiYXNlIDE2KQkJRFNBIEdtYkgKKwkJCQlQYXNjYWxzdHIuIDI4CisJCQkJNTIwNzYgQWFjaGVuICAKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLUZGICAgKGhleCkJCURBVEFGQUIgU1lTVEVNUywgSU5DLgorMDAzMEZGICAgICAoYmFzZSAxNikJCURBVEFGQUIgU1lTVEVNUywgSU5DLgorCQkJCVJPT00gIzE5MTAsIDE5RiwgTk8uIDMzMworCQkJCUtFRUxVTkcgUk9BRCBTRUMuIDEsIFRBSVBFSQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMy02QyAgIChoZXgpCQlTeW5hcFNlbnNlIENvcnBvcmF0aW9uCiswMDMzNkMgICAgIChiYXNlIDE2KQkJU3luYXBTZW5zZSBDb3Jwb3JhdGlvbgorCQkJCTIzNjUgSXJvbiBQb2ludCBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlGb2xzb20gQ0EgOTU2MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTM0LUYxICAgKGhleCkJCVJhZGljb20gUmVzZWFyY2gsIEluYy4KKzAwMzRGMSAgICAgKGJhc2UgMTYpCQlSYWRpY29tIFJlc2VhcmNoLCBJbmMuCisJCQkJMjE0OCBCZXJpbmcgRHJpdmUKKwkJCQlTYW4gSm9zZSBDYSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzUtMzIgICAoaGV4KQkJRWxlY3Ryby1NZXRyaWNzIENvcnBvcmF0aW9uCiswMDM1MzIgICAgIChiYXNlIDE2KQkJRWxlY3Ryby1NZXRyaWNzIENvcnBvcmF0aW9uCisJCQkJMjMxIEVudGVycHJpc2UgUm9hZAorCQkJCUpvaG5zdG93biBOZXcgWW9yayAxMjA5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtM0EtOTggICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAzQTk4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtM0EtOTkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAzQTk5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtM0EtOUEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAzQTlBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtM0EtOUIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAzQTlCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtM0EtOUMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAzQTlDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtM0EtOUQgICAoaGV4KQkJTkVDIEFjY2Vzc1RlY2huaWNhLCBMdGQuCiswMDNBOUQgICAgIChiYXNlIDE2KQkJTkVDIEFjY2Vzc1RlY2huaWNhLCBMdGQuCisJCQkJODAwIFNoaW1vbWF0YQorCQkJCUtha2VnYXdhIFNoaXp1b2thIDQzNi04NTAxCisJCQkJSkFQQU4KKworMDAtM0EtQUYgICAoaGV4KQkJQmx1ZUJpdCBMdGQuCiswMDNBQUYgICAgIChiYXNlIDE2KQkJQmx1ZUJpdCBMdGQuCisJCQkJVW5pdCBCLCAyMS9GLiwgNzggSHVuZyBUbyBSb2FkLAorCQkJCUt3dW4gVG9uZywgCisJCQkJS293bG9vbiwgICAKKwkJCQlIT05HIEtPTkcKKworMDAtM0MtQzUgICAoaGV4KQkJV09OV09PIEVuZ2luZWVyaW5nIENvLiwgTHRkCiswMDNDQzUgICAgIChiYXNlIDE2KQkJV09OV09PIEVuZ2luZWVyaW5nIENvLiwgTHRkCisJCQkJN0YgMjAxLCBUZWNobm8tUGFyayBTc2FuZ1lvbmcgSUlJLCAKKwkJCQkzNi0xIFNhbWplb25nLWRvbmcgT2plb25nLWd1LAorCQkJCUJ1Y2hlb24gQ2l0eSBHeWVvbmdnaS1EbyA0MjEtODA4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTNELTQxICAgKGhleCkJCUhhdHRlbGFuZCBDb21wdXRlciBBUworMDAzRDQxICAgICAoYmFzZSAxNikJCUhhdHRlbGFuZCBDb21wdXRlciBBUworCQkJCUFhbXNvc2VuCisJCQkJTmVkcmUgVmF0cyBSb2dhbGFuZCA1NTc4CisJCQkJTk9SV0FZCisKKzAwLTQwLTAwICAgKGhleCkJCVBDSSBDT01QT05FTlRFUyBEQSBBTVpPTklBIExURAorMDA0MDAwICAgICAoYmFzZSAxNikJCVBDSSBDT01QT05FTlRFUyBEQSBBTVpPTklBIExURAorCQkJCVJVQSBKT1NFRiBLUllTUworCQkJCTEyOSAtIFNBTyBQQVVMTyAtIFNQCisJCQkJMDExNDAgQlJBU0lMCisJCQkJQlJBWklMCisKKzAwLTQwLTAxICAgKGhleCkJCVpZWEVMIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDQwMDEgICAgIChiYXNlIDE2KQkJWllYRUwgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk0RiwgMTExLCBDSFVORyBTSEFOIE4uIFJPQUQKKwkJCQlTRUMgMiwgIFRBSVBFSQorCQkJCVRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLTAyICAgKGhleCkJCVBFUkxFIFNZU1RFTVMgTElNSVRFRAorMDA0MDAyICAgICAoYmFzZSAxNikJCVBFUkxFIFNZU1RFTVMgTElNSVRFRAorCQkJCTYwIFJFTkZSRVcgRFJJVkUKKwkJCQlNQVJLSEFNIE9OVEFSSU8KKwkJCQlDQU5BREEgTDNSIDBFMQorCQkJCUNBTkFEQQorCiswMC00MC0wMyAgIChoZXgpCQlFbWVyc29uIFByb2Nlc3MgTWFuYWdlbWVudCBQb3dlciAmIFdhdGVyIFNvbHV0aW9ucywgSW5jLgorMDA0MDAzICAgICAoYmFzZSAxNikJCUVtZXJzb24gUHJvY2VzcyBNYW5hZ2VtZW50IFBvd2VyICYgV2F0ZXIgU29sdXRpb25zLCBJbmMuCisJCQkJMjAwIEJldGEgRHJpdmUKKwkJCQlQSVRUU0JVUkdIIFBBIDE1MjM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0wNCAgIChoZXgpCQlJQ00gQ08uIExURC4KKzAwNDAwNCAgICAgKGJhc2UgMTYpCQlJQ00gQ08uIExURC4KKwkJCQk0LTItOSBOSUhPTkJBU0hJIE5BTklXQS1LVQorCQkJCU9TQUtBLCAoNTU2KQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtMDUgICAoaGV4KQkJQU5JIENPTU1VTklDQVRJT05TIElOQy4KKzAwNDAwNSAgICAgKGJhc2UgMTYpCQlBTkkgQ09NTVVOSUNBVElPTlMgSU5DLgorCQkJCTggQU5aSU8KKwkJCQlJUlZJTkUgQ0EgOTI3MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTA2ICAgKGhleCkJCVNBTVBPIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKzAwNDAwNiAgICAgKGJhc2UgMTYpCQlTQU1QTyBURUNITk9MT0dZIENPUlBPUkFUSU9OCisJCQkJMjYtMiBUSU5HLUhVLAorCQkJCVRBLUtBTkcgVFNVTiBLVUVJLVNIQU4gSFNJQU5HLCBUQU9ZVUFOIEgKKwkJCQkzMzMzNCBUQUlXQU4gMzMzMzQgVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNDAtMDcgICAoaGV4KQkJVEVMTUFUIElORk9STUFUSVFVRQorMDA0MDA3ICAgICAoYmFzZSAxNikJCVRFTE1BVCBJTkZPUk1BVElRVUUKKwkJCQk2IFJVRSBERSBMJ0lORFVTVFJJRQorCQkJCUJQIDEyICA2ODM2MCBTT1VMVFoKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtNDAtMDggICAoaGV4KQkJQSBQTFVTIElORk8gQ09SUE9SQVRJT04KKzAwNDAwOCAgICAgKGJhc2UgMTYpCQlBIFBMVVMgSU5GTyBDT1JQT1JBVElPTgorCQkJCTVGLCBOTy4yLCBMQU5FIDIzNQorCQkJCUJBTyBDSElBTyBST0FEIEhTSU4gVElFTiwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLTA5ICAgKGhleCkJCVRBQ0hJQkFOQSBURUNUUk9OIENPLiwgTFRELgorMDA0MDA5ICAgICAoYmFzZSAxNikJCVRBQ0hJQkFOQSBURUNUUk9OIENPLiwgTFRELgorCQkJCVNZU1RFTUFUSUMgRVFVSVBNRU5UIERJVklTSU9OCisJCQkJMi0yLTUgSElHQVNISVlBTUEsIE1FR1VST0tVIFRPS1lPLCAxNTMKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLTBBICAgKGhleCkJCVBJVk9UQUwgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDQwMEEgICAgIChiYXNlIDE2KQkJUElWT1RBTCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkxMDAgVy4gUklOQ09OIEFWRU5VRS1TVEUgIzIxMQorCQkJCUNBTVBCRUxMIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0wQiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDQwMEIgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTBDICAgKGhleCkJCUdFTkVSQUwgTUlDUk8gU1lTVEVNUywgSU5DLgorMDA0MDBDICAgICAoYmFzZSAxNikJCUdFTkVSQUwgTUlDUk8gU1lTVEVNUywgSU5DLgorCQkJCVAuTy4gQk9YIDM2ODkKKwkJCQlSQU5DSE8gQ1VDQU1PTkdBIENBIDkxNzI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0wRCAgIChoZXgpCQlMQU5ORVQgREFUQSBDT01NVU5JQ0FUSU9OUyxMVEQKKzAwNDAwRCAgICAgKGJhc2UgMTYpCQlMQU5ORVQgREFUQSBDT01NVU5JQ0FUSU9OUyxMVEQKKwkJCQlBVElESU0gVEVDSE5PTE9HJ0wgUEFSSywgQkcuIzMKKwkJCQlURUwgQVZJViA2MTEzMQorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC00MC0wRSAgIChoZXgpCQlNRU1PVEVDLCBJTkMuCiswMDQwMEUgICAgIChiYXNlIDE2KQkJTUVNT1RFQywgSU5DLgorCQkJCTc3NTUgSGVucmktQm91cmFzc2EKKwkJCQlNT05UUkVBTCwgUVVFQkVDICAgSDRTIDFQNworCQkJCUNBTkFEQQorCiswMC00MC0wRiAgIChoZXgpCQlEQVRBQ09NIFRFQ0hOT0xPR0lFUworMDA0MDBGICAgICAoYmFzZSAxNikJCURBVEFDT00gVEVDSE5PTE9HSUVTCisJCQkJMTEwMDEgMzFTVCBQTEFDRSBXRVNUCisJCQkJRVZFUkVUVCBXQSA5ODIwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMTAgICAoaGV4KQkJU09OSUMgU1lTVEVNUywgSU5DLgorMDA0MDEwICAgICAoYmFzZSAxNikJCVNPTklDIFNZU1RFTVMsIElOQy4KKwkJCQk1NzUgUEFTVE9SSUEgTk9SVEggQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMTEgICAoaGV4KQkJQU5ET1ZFUiBDT05UUk9MUyBDT1JQT1JBVElPTgorMDA0MDExICAgICAoYmFzZSAxNikJCUFORE9WRVIgQ09OVFJPTFMgQ09SUE9SQVRJT04KKwkJCQkzMDAgQlJJQ0tTVE9ORSBTUVVBUkUKKwkJCQlBTkRPVkVSIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0xMiAgIChoZXgpCQlXSU5EQVRBLCBJTkMuCiswMDQwMTIgICAgIChiYXNlIDE2KQkJV0lOREFUQSwgSU5DLgorCQkJCTEwIEJFQVJGT09UIFJPQUQKKwkJCQlOT1JUSEJPUk8gTUEgMDE1MzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTEzICAgKGhleCkJCU5UVCBEQVRBIENPTU0uIFNZU1RFTVMgQ09SUC4KKzAwNDAxMyAgICAgKGJhc2UgMTYpCQlOVFQgREFUQSBDT01NLiBTWVNURU1TIENPUlAuCisJCQkJREVWRUxPUE1FTlQgSEVBRFFVQVJURVJTCisJCQkJVE9ZT1NVIENFTlRFUiBCTERHLiwgMy0zLTMgVE9ZT1NVLCBLT1RPLQorCQkJCVRPS1lPIDEzNSBUT0tZTyAxMzUgSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC0xNCAgIChoZXgpCQlDT01TT0ZUIEdNQkgKKzAwNDAxNCAgICAgKGJhc2UgMTYpCQlDT01TT0ZUIEdNQkgKKwkJCQlXQUNISEFVU1NUUi4gNUEKKwkJCQk3NTAwIEtBUkxTUlVIRSA0MQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLTE1ICAgKGhleCkJCUFTQ09NIElORlJBU1lTIEFHCiswMDQwMTUgICAgIChiYXNlIDE2KQkJQVNDT00gSU5GUkFTWVMgQUcKKwkJCQlEUFQuIEVBU08gMzcyNgorCQkJCUdMVVRaLUJMT1RaSEVJTVNUUi4gMSBDSC00NTAzICBTT0xPVEhVUk4KKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTQwLTE2ICAgKGhleCkJCUFEQyAtIEdsb2JhbCBDb25uZWN0aXZpdHkgU29sdXRpb25zIERpdmlzaW9uCiswMDQwMTYgICAgIChiYXNlIDE2KQkJQURDIC0gR2xvYmFsIENvbm5lY3Rpdml0eSBTb2x1dGlvbnMgRGl2aXNpb24KKwkJCQlQLk8uIEJveCAxMTAxCisJCQkJTWlubmVhcG9saXMgTU4gNTU0NDAtMTEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMTcgICAoaGV4KQkJU2lsZXggVGVjaG5vbG9neSBBbWVyaWNhCiswMDQwMTcgICAgIChiYXNlIDE2KQkJU2lsZXggVGVjaG5vbG9neSBBbWVyaWNhCisJCQkJMTU3IFdlc3QgNzA2NSBTb3V0aAorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MDQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0xOCAgIChoZXgpCQlBRE9CRSBTWVNURU1TLCBJTkMuCiswMDQwMTggICAgIChiYXNlIDE2KQkJQURPQkUgU1lTVEVNUywgSU5DLgorCQkJCTE1ODUgQ0hBUkxFU1RPTiBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMTkgICAoaGV4KQkJQUVPTiBTWVNURU1TLCBJTkMuCiswMDQwMTkgICAgIChiYXNlIDE2KQkJQUVPTiBTWVNURU1TLCBJTkMuCisJCQkJODQwMSBXQVNISU5HVE9OIFBMQUNFIE5FCisJCQkJQUxCVVFVRVJRVUUgTk0gODcxMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTFBICAgKGhleCkJCUZVSkkgRUxFQ1RSSUMgQ08uLCBMVEQuCiswMDQwMUEgICAgIChiYXNlIDE2KQkJRlVKSSBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQlORVcgWVVSQUtVQ0hPIEJMREcKKwkJCQkxMi0xIFlVUkFLVUNITyAxLUNIT01FIENISVlPREEtS1UsIFRPS1lPCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC0xQiAgIChoZXgpCQlQUklOVEVSIFNZU1RFTVMgQ09SUC4KKzAwNDAxQiAgICAgKGJhc2UgMTYpCQlQUklOVEVSIFNZU1RFTVMgQ09SUC4KKwkJCQkyMDcgUEVSUlkgUEFSS1dBWQorCQkJCUdBSVRIRVJTQlVSRyBNRCAyMDg3Ny0yMTQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0xQyAgIChoZXgpCQlBU1QgUkVTRUFSQ0gsIElOQy4KKzAwNDAxQyAgICAgKGJhc2UgMTYpCQlBU1QgUkVTRUFSQ0gsIElOQy4KKwkJCQlNUyAyLTc4CisJCQkJMTYxNSBBTFRPTiBQQVJLV0FZCisJCQkJSVJWSU5FIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0xRCAgIChoZXgpCQlJTlZJU0lCTEUgU09GVFdBUkUsIElOQy4KKzAwNDAxRCAgICAgKGJhc2UgMTYpCQlJTlZJU0lCTEUgU09GVFdBUkUsIElOQy4KKwkJCQkxMTQyIENIRVNTIERSSVZFCisJCQkJRk9TVEVSIENJVFkgQ0EgOTQ0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTFFICAgKGhleCkJCUlDQworMDA0MDFFICAgICAoYmFzZSAxNikJCUlDQworCQkJCTgyMzAgTU9OVEdPTUVSWSBST0FECisJCQkJQ0lOQ0lOTkFUSSBPSCA0NTIzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMUYgICAoaGV4KQkJQ09MT1JHUkFQSCBMVEQKKzAwNDAxRiAgICAgKGJhc2UgMTYpCQlDT0xPUkdSQVBIIExURAorCQkJCVVOSVQgMiwgTUFSUyBIT1VTRQorCQkJCUNBTExFVkEgUEFSSywgQUxERVJNQVNUT04gTlIuIFJFQURJTkcsIEIKKwkJCQlSRzcgNFFXIC0gVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC00MC0yMCAgIChoZXgpCQlURSBDb25uZWN0aXZpdHkgTHRkLgorMDA0MDIwICAgICAoYmFzZSAxNikJCVRFIENvbm5lY3Rpdml0eSBMdGQuCisJCQkJS2lubWVsIFBhcmsKKwkJCQlCb2RlbHd5ZGRhbiBSSFlMIExMMTggNVRaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtMjEgICAoaGV4KQkJUkFTVEVSIEdSQVBISUNTCiswMDQwMjEgICAgIChiYXNlIDE2KQkJUkFTVEVSIEdSQVBISUNTCisJCQkJMjg1IE4uIFdPTEZFIFJPQUQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTIyICAgKGhleCkJCUtMRVZFUiBDT01QVVRFUlMsIElOQy4KKzAwNDAyMiAgICAgKGJhc2UgMTYpCQlLTEVWRVIgQ09NUFVURVJTLCBJTkMuCisJCQkJMTAyOCBXLiBNQVVERSBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTIzICAgKGhleCkJCUxPR0lDIENPUlBPUkFUSU9OCiswMDQwMjMgICAgIChiYXNlIDE2KQkJTE9HSUMgQ09SUE9SQVRJT04KKwkJCQkzLTE0LTEwIE1FSUpJLVNFSU1FSSBCVUlMRElORworCQkJCU1JVEEgTUlOQVRPLUtVIFRPS1lPCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC0yNCAgIChoZXgpCQlDT01QQUMgSU5DLgorMDA0MDI0ICAgICAoYmFzZSAxNikJCUNPTVBBQyBJTkMuCisJCQkJMTYtNyBOSUhPTkJBU0kgSEFNQUNITyAzLUNITworCQkJCUNIVU8tS1UsIFRPS1lPCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC0yNSAgIChoZXgpCQlNT0xFQ1VMQVIgRFlOQU1JQ1MKKzAwNDAyNSAgICAgKGJhc2UgMTYpCQlNT0xFQ1VMQVIgRFlOQU1JQ1MKKwkJCQk4ODAgRUFTVCBBUlFVRVMgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2LTQ1MzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTI2ICAgKGhleCkJCUJ1ZmZhbG8sIEluYworMDA0MDI2ICAgICAoYmFzZSAxNikJCUJ1ZmZhbG8sIEluYworCQkJCU1FTENPIEhJLVRFQ0ggQ0VOVEVSLAorCQkJCTQtMTUgIFNoaWJhdGEsIEhvbmRvcmksIAorCQkJCU1JTkFNSS1LVSwgTkFHT1lBIEFpY2hpIDQ1Ny04NTIwCisJCQkJSkFQQU4KKworMDAtNDAtMjcgICAoaGV4KQkJU01DIE1BU1NBQ0hVU0VUVFMsIElOQy4KKzAwNDAyNyAgICAgKGJhc2UgMTYpCQlTTUMgTUFTU0FDSFVTRVRUUywgSU5DLgorCQkJCTI1IFdBTEtFUlMgQlJPT0sgRFJJVkUKKwkJCQlSRUFESU5HIE1BIDAxODY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0yOCAgIChoZXgpCQlORVRDT01NIExJTUlURUQKKzAwNDAyOCAgICAgKGJhc2UgMTYpCQlORVRDT01NIExJTUlURUQKKwkJCQkzIE9MWU1QSUMgQlVTSU5FU1MgQ0VOVFJFCisJCQkJUEFZQ09DS0UgUk9BRCBCQVNJTERPTiwgRVNTRVggU1MxNCAzRVgKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLTI5ICAgKGhleCkJCUNPTVBFWAorMDA0MDI5ICAgICAoYmFzZSAxNikJCUNPTVBFWAorCQkJCUIuUC4gMzUKKwkJCQk3NDM3MSBQUklOR1ktRlJBTkNFCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTQwLTJBICAgKGhleCkJCUNBTk9HQS1QRVJLSU5TCiswMDQwMkEgICAgIChiYXNlIDE2KQkJQ0FOT0dBLVBFUktJTlMKKwkJCQkyMTAxMiBMQVNTRU4gU1RSRUVUCisJCQkJQ0hBVFNXT1JUSCBDQSA5MTMxMS00MjQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0yQiAgIChoZXgpCQlUUklHRU0gQ09NUFVURVIsIElOQy4KKzAwNDAyQiAgICAgKGJhc2UgMTYpCQlUUklHRU0gQ09NUFVURVIsIElOQy4KKwkJCQlLSVNVTkcgQi9EIDRGLCA3ODQtNgorCQkJCVlFT0tTQU0tRE9ORywgS0FOR05BTS1HVQorCQkJCVNFT1VMIEtPUkVBIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNDAtMkMgICAoaGV4KQkJSVNJUyBESVNUUklCVVRFRCBTWVNURU1TLCBJTkMuCiswMDQwMkMgICAgIChiYXNlIDE2KQkJSVNJUyBESVNUUklCVVRFRCBTWVNURU1TLCBJTkMuCisJCQkJMTExIFNPVVRIIENBWVVHQSBTVFJFRVQKKwkJCQlTVUlURSAjMjAwCisJCQkJSVRIQUNBIE5ZIDE0ODUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0yRCAgIChoZXgpCQlIQVJSSVMgQURBQ09NIENPUlBPUkFUSU9OCiswMDQwMkQgICAgIChiYXNlIDE2KQkJSEFSUklTIEFEQUNPTSBDT1JQT1JBVElPTgorCQkJCTExMDAgVkVOVFVSRSBDT1VSVAorCQkJCUNBUlJPTExUT04gVFggNzUwMDYtNTQxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMkUgICAoaGV4KQkJUFJFQ0lTSU9OIFNPRlRXQVJFLCBJTkMuCiswMDQwMkUgICAgIChiYXNlIDE2KQkJUFJFQ0lTSU9OIFNPRlRXQVJFLCBJTkMuCisJCQkJNjAwIFMgRkVERVJBTCBIV1kgU1RFCisJCQkJREVFUkZJRUxEIEJFQUNIIEZMIDMzNDQxLTQxOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTJGICAgKGhleCkJCVhMTlQgREVTSUdOUyBJTkMuCiswMDQwMkYgICAgIChiYXNlIDE2KQkJWExOVCBERVNJR05TIElOQy4KKwkJCQkxNTA1MCBBVkVOVUUgT0YgU0NJRU5DRQorCQkJCVNVSVRFIDIwMAorCQkJCVNBTiBESUVHTyBDQSA5MjEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMzAgICAoaGV4KQkJR0sgQ09NUFVURVIKKzAwNDAzMCAgICAgKGJhc2UgMTYpCQlHSyBDT01QVVRFUgorCQkJCUJBU0xFUiBTVFJBU1NFIDEwMworCQkJCUQtNzgwMCBGUkVJQlVSRworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLTMxICAgKGhleCkJCUtPS1VTQUkgRUxFQ1RSSUMgQ08uLCBMVEQKKzAwNDAzMSAgICAgKGJhc2UgMTYpCQlLT0tVU0FJIEVMRUNUUklDIENPLiwgTFRECisJCQkJMi0xIFlBU1VVQ0hJCisJCQkJWUFUU1VPLU1BQ0hJIE5FSUdVTgorCQkJCVRPWUFNQSA5MzktMjMgSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC0zMiAgIChoZXgpCQlESUdJVEFMIENPTU1VTklDQVRJT05TCiswMDQwMzIgICAgIChiYXNlIDE2KQkJRElHSVRBTCBDT01NVU5JQ0FUSU9OUworCQkJCUFTU09DSUFURVMsIElOQy4KKwkJCQkyMDEwIEZPUlRVTkUgRFJJVkUsICMxMDEKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMzMgICAoaGV4KQkJQUREVFJPTiBURUNITk9MT0dZIENPLiwgTFRELgorMDA0MDMzICAgICAoYmFzZSAxNikJCUFERFRST04gVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQk0NjU2MCBGUkVNT05UIEJMVkQuICMzMDMKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0zNCAgIChoZXgpCQlCVVNURUsgQ09SUE9SQVRJT04KKzAwNDAzNCAgICAgKGJhc2UgMTYpCQlCVVNURUsgQ09SUE9SQVRJT04KKwkJCQk0MTUxIEJVUlRPTiBEUklWRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0zNSAgIChoZXgpCQlPUENPTQorMDA0MDM1ICAgICAoYmFzZSAxNikJCU9QQ09NCisJCQkJMTIxNSBXLiBDUk9TQlkgUkQuCisJCQkJQ0FSUk9MTFRPTiBUWCA3NTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMzYgICAoaGV4KQkJVFJJQkUgQ09NUFVURVIgV09SS1MsIElOQy4KKzAwNDAzNiAgICAgKGJhc2UgMTYpCQlUUklCRSBDT01QVVRFUiBXT1JLUywgSU5DLgorCQkJCTExOTUgUEFSSyBBVkVOVUUtU1RFICMyMTEKKwkJCQlFTUVSWVZJTExFIENBIDk0NjA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0zNyAgIChoZXgpCQlTRUEtSUxBTiwgSU5DLgorMDA0MDM3ICAgICAoYmFzZSAxNikJCVNFQS1JTEFOLCBJTkMuCisJCQkJMTQ2MDIgTk9SVEggVVMgSElHSFdBWSAjMzEKKwkJCQlDQVJNRUwgSU4gNDYwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTM4ICAgKGhleCkJCVRBTEVOVCBFTEVDVFJJQyBJTkNPUlBPUkFURUQKKzAwNDAzOCAgICAgKGJhc2UgMTYpCQlUQUxFTlQgRUxFQ1RSSUMgSU5DT1JQT1JBVEVECisJCQkJM1JEIEZMLiwgTk8uIDI2MCwgUEEgVEVIIFJPQUQKKwkJCQlTRUMuIDIgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLTM5ICAgKGhleCkJCU9QVEVDIERBSUlDSEkgREVOS08gQ08uLCBMVEQuCiswMDQwMzkgICAgIChiYXNlIDE2KQkJT1BURUMgREFJSUNISSBERU5LTyBDTy4sIExURC4KKwkJCQlGSUJFUiBPUFRJQ1MgJiBURUxFQ09NLiBESVYuCisJCQkJMy0xLTEgTUFSVU5PVUNISSBDSElZT0RBS1UgVE9LWU8gMTAwCisJCQkJSkFQQU4KKworMDAtNDAtM0EgICAoaGV4KQkJSU1QQUNUIFRFQ0hOT0xPR0lFUworMDA0MDNBICAgICAoYmFzZSAxNikJCUlNUEFDVCBURUNITk9MT0dJRVMKKwkJCQk2IFJVRSBERSBMJ0FDQURJRQorCQkJCVouQS4gQ09VUlRBQk9FVUYgOTE5NTMgTEVTIFVMSVMgQ0VERVgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtNDAtM0IgICAoaGV4KQkJU1lORVJKRVQgSU5URVJOQVRJT05BTCBDT1JQLgorMDA0MDNCICAgICAoYmFzZSAxNikJCVNZTkVSSkVUIElOVEVSTkFUSU9OQUwgQ09SUC4KKwkJCQk1RiwgTk8gMzUsIEtVQU5HIEZVIFMuIFJPQUQKKwkJCQlUQUlQRUksCisJCQkJVEFJV0FOIFIuIE8uIEMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC00MC0zQyAgIChoZXgpCQlGT1JLUywgSU5DLgorMDA0MDNDICAgICAoYmFzZSAxNikJCUZPUktTLCBJTkMuCisJCQkJMS0yNy00IElSSVlBLAorCQkJCUlSSVlBIDEtMjctNCBUQUlUTywKKwkJCQkxMTAgSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC0zRCAgIChoZXgpCQlURVJBREFUQQorMDA0MDNEICAgICAoYmFzZSAxNikJCVRFUkFEQVRBCisJCQkJMTAwIE4uIFNFUFVMVkVEQSBCTFZELgorCQkJCUVMIFNFR1VORE8gQ0EgOTAyNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTNFICAgKGhleCkJCVJBU1RFUiBPUFMgQ09SUE9SQVRJT04KKzAwNDAzRSAgICAgKGJhc2UgMTYpCQlSQVNURVIgT1BTIENPUlBPUkFUSU9OCisJCQkJMjUwMCBXQUxTSCBBVkVOVUUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtM0YgICAoaGV4KQkJU1NBTkdZT05HIENPTVBVVEVSIFNZU1RFTVMKKzAwNDAzRiAgICAgKGJhc2UgMTYpCQlTU0FOR1lPTkcgQ09NUFVURVIgU1lTVEVNUworCQkJCUNPUlBPUkFUSU9OCisJCQkJNjAtMSwgM0dBLCBDSFVOR01VLVJPLCBKVU5HLUdVIFNFT1VMCisJCQkJS09SRUEgMTAwLTcwNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC00MC00MCAgIChoZXgpCQlSSU5HIEFDQ0VTUywgSU5DLgorMDA0MDQwICAgICAoYmFzZSAxNikJCVJJTkcgQUNDRVNTLCBJTkMuCisJCQkJOTU3LVIgSU5EVVNUUklBTCBST0FECisJCQkJU0FOIENBUkxPUyBDQSA5NDA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNDEgICAoaGV4KQkJRlVKSUtVUkEgTFRELgorMDA0MDQxICAgICAoYmFzZSAxNikJCUZVSklLVVJBIExURC4KKwkJCQkxLTUtMSwgS0lCQSwgS09UTy1LVQorCQkJCVRPS1lPIDEzNQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtNDIgICAoaGV4KQkJTi5BLlQuIEdNQkgKKzAwNDA0MiAgICAgKGJhc2UgMTYpCQlOLkEuVC4gR01CSAorCQkJCUdPRVRIRVNUUi4gMgorCQkJCTUyMTAgVFJPSVNET1JGLVNJRUdMQVIKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC00MyAgIChoZXgpCQlOb2tpYSBTaWVtZW5zIE5ldHdvcmtzIEdtYkggJiBDby4gS0cuCiswMDQwNDMgICAgIChiYXNlIDE2KQkJTm9raWEgU2llbWVucyBOZXR3b3JrcyBHbWJIICYgQ28uIEtHLgorCQkJCVdlcm5lci12b24tU2llbWVucyBTdHIuIDItNgorCQkJCUJydWNoc2FsIEJhZGVuLVf8cnRlbWJlcmcgNzY2NDYKKwkJCQlGSU5MQU5ECisKKzAwLTQwLTQ0ICAgKGhleCkJCVFOSVggQ09NUFVURVIgQ08uLCBMVEQuCiswMDQwNDQgICAgIChiYXNlIDE2KQkJUU5JWCBDT01QVVRFUiBDTy4sIExURC4KKwkJCQk4LDlGIEtPUkVBTiBURUFDSEVSJ1MgTVVULkJMREcKKwkJCQkzNS0zLCBZRU9VSURPX0RPTkcsIFlFT05HREVVTkdQT19HVQorCQkJCVNFT1VMIEtPUkVBIDE1MC0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNDAtNDUgICAoaGV4KQkJVFdJTkhFQUQgQ09SUE9SQVRJT04KKzAwNDA0NSAgICAgKGJhc2UgMTYpCQlUV0lOSEVBRCBDT1JQT1JBVElPTgorCQkJCTE1MzcgQ0VOVFJFIFBPSU5URSBEUklWRQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC00NiAgIChoZXgpCQlVREMgUkVTRUFSQ0ggTElNSVRFRAorMDA0MDQ2ICAgICAoYmFzZSAxNikJCVVEQyBSRVNFQVJDSCBMSU1JVEVECisJCQkJOEEgS0lORyBXQU4gSU5EVVNUUklBTCBCTERHLgorCQkJCTU0IEhVTkcgVE8gUk9BRCwgS1dVTiBUT05HCisJCQkJSE9ORyBLT05HCisJCQkJSE9ORyBLT05HCisKKzAwLTQwLTQ3ICAgKGhleCkJCVdJTkQgUklWRVIgU1lTVEVNUworMDA0MDQ3ICAgICAoYmFzZSAxNikJCVdJTkQgUklWRVIgU1lTVEVNUworCQkJCTEwMTAgQVRMQU5USUMgQVZFTlVFCisJCQkJQUxBTUVEQSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNDggICAoaGV4KQkJU01EIElORk9STUFUSUNBIFMuQS4KKzAwNDA0OCAgICAgKGJhc2UgMTYpCQlTTUQgSU5GT1JNQVRJQ0EgUy5BLgorCQkJCUxBUkdPIE1PVklNRU5UTyBEQVMgRk9SQ0FTCisJCQkJQVJNQURBUywgNCBBTEZSQUdJREUsICAyNzAwIEFNQURPUkEKKwkJCQlQT1JUVUdBTAorCQkJCVBPUlRVR0FMCisKKzAwLTQwLTQ5ICAgKGhleCkJCVRFR0lNRU5UQSBBRworMDA0MDQ5ICAgICAoYmFzZSAxNikJCVRFR0lNRU5UQSBBRworCQkJCUZPUlJFTlNUUkFTU0UKKwkJCQlDSC02MzQzIFJPVEtSRVVaCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC00MC00QSAgIChoZXgpCQlXRVNUIEFVU1RSQUxJQU4gREVQQVJUTUVOVAorMDA0MDRBICAgICAoYmFzZSAxNikJCVdFU1QgQVVTVFJBTElBTiBERVBBUlRNRU5UCisJCQkJT0YgRU1QTE9ZTUVOVCAoREVWRVQpCisJCQkJTEVWRVIgMiwgMTUxIFJPWUFMIFNULiBFQVNUIFBFUlRIICA2MDAxCisJCQkJV0VTVEVSTiBBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtNDAtNEIgICAoaGV4KQkJTUFQTEUgQ09NUFVURVIgU1lTVEVNUworMDA0MDRCICAgICAoYmFzZSAxNikJCU1BUExFIENPTVBVVEVSIFNZU1RFTVMKKwkJCQlQLk8uIEJPWCAxMDA1MAorCQkJCVNULiBKT0hOJ1MsIE5GCisJCQkJQ0FOQURBIEFMQSA0TDUKKwkJCQlDQU5BREEKKworMDAtNDAtNEMgICAoaGV4KQkJSFlQRVJURUMgUFRZIExURC4KKzAwNDA0QyAgICAgKGJhc2UgMTYpCQlIWVBFUlRFQyBQVFkgTFRELgorCQkJCVAuTy4gQk9YIDE3ODIKKwkJCQlNQUNRVUFSSUUgQ0VOVFJFIE5TVywgMjExMworCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC00MC00RCAgIChoZXgpCQlURUxFQ09NTVVOSUNBVElPTlMgVEVDSE5JUVVFUworMDA0MDREICAgICAoYmFzZSAxNikJCVRFTEVDT01NVU5JQ0FUSU9OUyBURUNITklRVUVTCisJCQkJTS9TCisJCQkJMjA0MDAgT0JTRVJWQVRJT04gRFJJVkUKKwkJCQlHRVJNQU5UT1dOIE1EIDIwODc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC00RSAgIChoZXgpCQlGTFVFTlQsIElOQy4KKzAwNDA0RSAgICAgKGJhc2UgMTYpCQlGTFVFTlQsIElOQy4KKwkJCQk1OTQgV09SQ0VTVEVSIFJPQUQtU1RFLiMzMDgKKwkJCQlOQVRJQ0sgTUEgMDE3NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTRGICAgKGhleCkJCVNQQUNFICYgTkFWQUwgV0FSRkFSRSBTWVNURU1TCiswMDQwNEYgICAgIChiYXNlIDE2KQkJU1BBQ0UgJiBOQVZBTCBXQVJGQVJFIFNZU1RFTVMKKwkJCQlOVVdDCisJCQkJQ09ERSAyMjIyLCAgQkxERyAxMTcxLTMKKwkJCQlORVdQT1JUIFJJIDAyODQxLTUwNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTUwICAgKGhleCkJCUlST05JQ1MsIElOQ09SUE9SQVRFRAorMDA0MDUwICAgICAoYmFzZSAxNikJCUlST05JQ1MsIElOQ09SUE9SQVRFRAorCQkJCTc2NyBXQVJSRU4gUkQKKwkJCQlJVEhBQ0EgTi5ZLiAxNDg1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNTEgICAoaGV4KQkJR1JBQ0lMSVMsIElOQy4KKzAwNDA1MSAgICAgKGJhc2UgMTYpCQlHUkFDSUxJUywgSU5DLgorCQkJCTYyMyBQQUxBQ0UgU1RSRUVUCisJCQkJQVVST1JBIElMIDYwNTA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC01MiAgIChoZXgpCQlTVEFSIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA0MDUyICAgICAoYmFzZSAxNikJCVNUQVIgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNTE1IFNIQVcgUk9BRAorCQkJCVNURVJMSU5HIFZBIDIyMDc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC01MyAgIChoZXgpCQlBTVBSTyBDT01QVVRFUlMKKzAwNDA1MyAgICAgKGJhc2UgMTYpCQlBTVBSTyBDT01QVVRFUlMKKwkJCQk5OTAgQUxNT05ET1IgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC01NCAgIChoZXgpCQlDT05ORUNUSU9OIE1BQ0hJTkVTIFNFUlZJQ0VTCiswMDQwNTQgICAgIChiYXNlIDE2KQkJQ09OTkVDVElPTiBNQUNISU5FUyBTRVJWSUNFUworCQkJCTEyIEhFTlNIQVcgU1RSRUVUCisJCQkJV09CVVJOIE1BIDAxODAxLTQ2NjY2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNTUgICAoaGV4KQkJTUVUUk9OSVggR01CSAorMDA0MDU1ICAgICAoYmFzZSAxNikJCU1FVFJPTklYIEdNQkgKKwkJCQlORVVFIEtOT0NIRU5IQVVFUlNUUkFCRSA1CisJCQkJRC0zMzAwIEJSQVVOU0NIV0VJRworCQkJCVdFU1QgR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtNTYgICAoaGV4KQkJTUNNIEpBUEFOIExURC4KKzAwNDA1NiAgICAgKGJhc2UgMTYpCQlNQ00gSkFQQU4gTFRELgorCQkJCVNZVVVLQUVOIEJMRC4gMi0xMS0xCisJCQkJS09NQVpBV0EgU0VUQUdBWUEtS1UgVE9LWU8gMTU0CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC01NyAgIChoZXgpCQlMT0NLSEVFRCAtIFNBTkRFUlMKKzAwNDA1NyAgICAgKGJhc2UgMTYpCQlMT0NLSEVFRCAtIFNBTkRFUlMKKwkJCQlEQU5JRUwgV0VCU1RFUiBISUdIV0FZIFNPVVRICisJCQkJUC5PLiBCT1ggODY4CisJCQkJTkFTSFVBIE5IIDAzMDYxLTA4NjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTU4ICAgKGhleCkJCUtST05PUywgSU5DLgorMDA0MDU4ICAgICAoYmFzZSAxNikJCUtST05PUywgSU5DLgorCQkJCTQwMCBGSUZUSCBBVkVOVUUKKwkJCQlXQUxUSEFNIE1BIDAyMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC01OSAgIChoZXgpCQlZT1NISURBIEtPR1lPIEsuIEsuCiswMDQwNTkgICAgIChiYXNlIDE2KQkJWU9TSElEQSBLT0dZTyBLLiBLLgorCQkJCVRFQ0hOSUNBTCBSRVNFQVJDSCBERVBULgorCQkJCTIwMCBZT1NISURBIEtVUk9CRSBDSVRZIFRPWUFNQSBQUkVGLgorCQkJCTkzOSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLTVBICAgKGhleCkJCUdPTERTVEFSIElORk9STUFUSU9OICYgQ09NTS4KKzAwNDA1QSAgICAgKGJhc2UgMTYpCQlHT0xEU1RBUiBJTkZPUk1BVElPTiAmIENPTU0uCisJCQkJNTMzLCBIT0dBRS1ET05HLCBBTllBTkctU0hJCisJCQkJS1lPTkdLSS1ETyA0MzAtMDgwCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNDAtNUIgICAoaGV4KQkJRlVOQVNTRVQgTElNSVRFRAorMDA0MDVCICAgICAoYmFzZSAxNikJCUZVTkFTU0VUIExJTUlURUQKKwkJCQlPUkNIQVJEUywgMTQgVE9XTlNFTkQKKwkJCQlTT01FUlNFVCBUQTE5IE9BVSBJTE1JTlNURVIKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLTVDICAgKGhleCkJCUZVVFVSRSBTWVNURU1TLCBJTkMuCiswMDQwNUMgICAgIChiYXNlIDE2KQkJRlVUVVJFIFNZU1RFTVMsIElOQy4KKwkJCQlST09NIDEwMiBET05HIEJBTkcgQi9ELAorCQkJCVlFT0cgU0FNLURPTkcgNzQwLTUsIEtBTkcgTkFNLUtVCisJCQkJU0VPVUwgMTMwLTA4MCBTRU9VTCAxMzAtMDgwIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTQwLTVEICAgKGhleCkJCVNUQVItVEVLLCBJTkMuCiswMDQwNUQgICAgIChiYXNlIDE2KQkJU1RBUi1URUssIElOQy4KKwkJCQk3MSBMWU1BTiBTVFJFRVQKKwkJCQlOT1JUSEJPUk8gTUEgMDE1MzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTVFICAgKGhleCkJCU5PUlRIIEhJTExTIElTUkFFTAorMDA0MDVFICAgICAoYmFzZSAxNikJCU5PUlRIIEhJTExTIElTUkFFTAorCQkJCVAuTy4gQk9YIDEyODAKKwkJCQlZT0tORUFNIDIwNjkyCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTQwLTVGICAgKGhleCkJCUFGRSBDT01QVVRFUlMgTFRELgorMDA0MDVGICAgICAoYmFzZSAxNikJCUFGRSBDT01QVVRFUlMgTFRELgorCQkJCTYyIEFOQ0hPUkFHRSBST0FECisJCQkJU1VUVE9OIENPTERGSUVMRCBXRVNUIE1JRExBTkRTIEI3NCAyUEcKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLTYwICAgKGhleCkJCUNPTUVOREVDIExURAorMDA0MDYwICAgICAoYmFzZSAxNikJCUNPTUVOREVDIExURAorCQkJCUVOVEVSUFJJU0UgV0FZLAorCQkJCUFTVE9OIFNDSUVOQ0UgUEFSSywgQVNUT04gVFJJQU5HTEUKKwkJCQlCSVJNSU5HSEFNIEJJUk1JTkdIQU0gRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLTYxICAgKGhleCkJCURBVEFURUNIIEVOVEVSUFJJU0VTIENPLiwgTFRELgorMDA0MDYxICAgICAoYmFzZSAxNikJCURBVEFURUNIIEVOVEVSUFJJU0VTIENPLiwgTFRELgorCQkJCShMSU4gS09VIElORFVTVFJJQUwgWk9ORSBTRUMsNAorCQkJCTI3LCBIU0ktU0hJSCBMQUtFIFJPQUQgS1VFSS1TSEFOIEhTSUFORworCQkJCVRBT1lVQU4gQ09VTlRZIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLTYyICAgKGhleCkJCUUtU1lTVEVNUywgSU5DLi9HQVJMQU5EIERJVi4KKzAwNDA2MiAgICAgKGJhc2UgMTYpCQlFLVNZU1RFTVMsIElOQy4vR0FSTEFORCBESVYuCisJCQkJUC5PLiBCT1ggNjYwMDIzCisJCQkJTUFJTCBTVE9QIDYzMDAwCisJCQkJREFMTEFTIFRYIDc1MjY2LTAwMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTYzICAgKGhleCkJCVZJQSBURUNITk9MT0dJRVMsIElOQy4KKzAwNDA2MyAgICAgKGJhc2UgMTYpCQlWSUEgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNTAyMCBCUkFORElOIENPVVJUCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNjQgICAoaGV4KQkJS0xBIElOU1RSVU1FTlRTIENPUlBPUkFUSU9OCiswMDQwNjQgICAgIChiYXNlIDE2KQkJS0xBIElOU1RSVU1FTlRTIENPUlBPUkFUSU9OCisJCQkJMTYwIFJJTyBST0JMRVMKKwkJCQlTQU4gSk9TRSBDQSA5NTE2MS05MDU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC02NSAgIChoZXgpCQlHVEUgU1BBQ0VORVQKKzAwNDA2NSAgICAgKGJhc2UgMTYpCQlHVEUgU1BBQ0VORVQKKwkJCQkxNzAwIE9MRCBNRUFET1cgUk9BRAorCQkJCU1DTEVBTiBWQSAyMjEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNjYgICAoaGV4KQkJSElUQUNISSBDQUJMRSwgTFRELgorMDA0MDY2ICAgICAoYmFzZSAxNikJCUhJVEFDSEkgQ0FCTEUsIExURC4KKwkJCQlPUFRPIEVMRUNUUk9OSUMgU1lTVEVNIExBQgorCQkJCTg4MCBJU0FHT1pBVy1DSE8sIEhJVEFDSEktU0hJIElCQVJBS0ktS0UKKwkJCQkzMTktMTQgSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC02NyAgIChoZXgpCQlPTU5JQllURSBDT1JQT1JBVElPTgorMDA0MDY3ICAgICAoYmFzZSAxNikJCU9NTklCWVRFIENPUlBPUkFUSU9OCisJCQkJMjQ1IFdFU1QgUk9PU0VWRUxUIFJPQUQKKwkJCQlXRVNUIENISUNBR08gSUwgNjAxODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTY4ICAgKGhleCkJCUVYVEVOREVEIFNZU1RFTVMKKzAwNDA2OCAgICAgKGJhc2UgMTYpCQlFWFRFTkRFRCBTWVNURU1TCisJCQkJNjEyMyBOT1JUSCBNRUVLRVIgQVZFTlVFCisJCQkJQk9JU0UgSUQgODM3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTY5ICAgKGhleCkJCUxFTUNPTSBTWVNURU1TLCBJTkMuCiswMDQwNjkgICAgIChiYXNlIDE2KQkJTEVNQ09NIFNZU1RFTVMsIElOQy4KKwkJCQkyMTA0IFdFU1QgUEVPUklBIEFWRU5VRQorCQkJCVBIT0VOSVggQVogODUwMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTZBICAgKGhleCkJCUtFTlRFSyBJTkZPUk1BVElPTiBTWVNURU1TLElOQworMDA0MDZBICAgICAoYmFzZSAxNikJCUtFTlRFSyBJTkZPUk1BVElPTiBTWVNURU1TLElOQworCQkJCTI5NDUgV0lMREVSTkVTUyBQTEFDRQorCQkJCUJPVUxERVIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTZCICAgKGhleCkJCVNZU0dFTgorMDA0MDZCICAgICAoYmFzZSAxNikJCVNZU0dFTgorCQkJCTU1NiBHSUJSQUxUQVIgRFJJVkUKKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNkMgICAoaGV4KQkJQ09QRVJOSVFVRQorMDA0MDZDICAgICAoYmFzZSAxNikJCUNPUEVSTklRVUUKKwkJCQk2LCBNQUlMIERFIEwnRVVST1BFIEJQIDI1CisJCQkJNzgxNzAgTEEgQ0VMTEUtU0FJTlQtQ0xPVUQKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtNDAtNkQgICAoaGV4KQkJTEFOQ08sIElOQy4KKzAwNDA2RCAgICAgKGJhc2UgMTYpCQlMQU5DTywgSU5DLgorCQkJCTgwMCBXRVNUIEFJUlBPUlQgRlJFRVdBWQorCQkJCVNVSVRFICMxMTAwCisJCQkJSVJWSU5HIFRYIDc1MDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC02RSAgIChoZXgpCQlDT1JPTExBUlksIElOQy4KKzAwNDA2RSAgICAgKGJhc2UgMTYpCQlDT1JPTExBUlksIElOQy4KKwkJCQkyODAyIEtFTFZJTgorCQkJCUlSVklORSBDQSA5MjcxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNkYgICAoaGV4KQkJU1lOQyBSRVNFQVJDSCBJTkMuCiswMDQwNkYgICAgIChiYXNlIDE2KQkJU1lOQyBSRVNFQVJDSCBJTkMuCisJCQkJNyBTVFVERUJBS0VSCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC03MCAgIChoZXgpCQlJTlRFUldBUkUgQ08uLCBMVEQuCiswMDQwNzAgICAgIChiYXNlIDE2KQkJSU5URVJXQVJFIENPLiwgTFRELgorCQkJCTdGIEtVREFOIE5FVyBDRU5UUkFMIEJMREcuLAorCQkJCTEtNC01IEtVREFOLUtJVEEsIENISVlPREEtS1UKKwkJCQlUT0tZTyAxMDIgVE9LWU8gMTAyIEpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtNzEgICAoaGV4KQkJQVRNIENPTVBVVEVSIEdNQkgKKzAwNDA3MSAgICAgKGJhc2UgMTYpCQlBVE0gQ09NUFVURVIgR01CSAorCQkJCUJVQ0tMRVNUUi4gMS01LFBPU1RGQUNIIDEwMTA0MworCQkJCUQ3NzUwIEtPTlNUQU5aCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtNzIgICAoaGV4KQkJQXBwbGllZCBJbm5vdmF0aW9uIEluYy4KKzAwNDA3MiAgICAgKGJhc2UgMTYpCQlBcHBsaWVkIElubm92YXRpb24gSW5jLgorCQkJCTU4MDAgSW5ub3ZhdGlvbiBEcml2ZQorCQkJCUR1YmxpbiBPSCA0MzAxNi0zMjcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC03MyAgIChoZXgpCQlCQVNTIEFTU09DSUFURVMKKzAwNDA3MyAgICAgKGJhc2UgMTYpCQlCQVNTIEFTU09DSUFURVMKKwkJCQk0MzUgVEFTU08gU1RSRUVULCBTVEUuICMzMjUKKwkJCQlQQUxPIEFMVE8gQ0EgOTQzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTc0ICAgKGhleCkJCUNBQkxFIEFORCBXSVJFTEVTUworMDA0MDc0ICAgICAoYmFzZSAxNikJCUNBQkxFIEFORCBXSVJFTEVTUworCQkJCUNPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTkxOSBHQUxMT1dTIFJPQUQKKwkJCQlWSUVOTkEgVkEgMjIxODItMzk2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNzUgICAoaGV4KQkJTS1UUkFERSAoVUspIExURAorMDA0MDc1ICAgICAoYmFzZSAxNikJCU0tVFJBREUgKFVLKSBMVEQKKwkJCQkxMS0xMiBOT1JUSEZJRUxEIFBST1NQRUNUCisJCQkJUFVUTkVZIEJSSURHRSBST0FEIExPTkRPTiBTVzE4IDFIUgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtNzYgICAoaGV4KQkJU3VuIENvbnZlcnNpb24gVGVjaG5vbG9naWVzCiswMDQwNzYgICAgIChiYXNlIDE2KQkJU3VuIENvbnZlcnNpb24gVGVjaG5vbG9naWVzCisJCQkJMTAwIENvbW1lcmNlIEJvdWxldmFyZAorCQkJCVF1YWtlcnRvd24gUEEgNzg5NTEtMjIzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNzcgICAoaGV4KQkJTUFYVE9OIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKzAwNDA3NyAgICAgKGJhc2UgMTYpCQlNQVhUT04gVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCTRGSywgMjQ5LCBTRUMuIDMsCisJCQkJQ0hVTkcgSFNJQU8gRS4gUkQuLCBUQUlQRUkKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLTc4ICAgKGhleCkJCVdFQVJORVMgQVVUT01BVElPTiBQVEUgTFRECiswMDQwNzggICAgIChiYXNlIDE2KQkJV0VBUk5FUyBBVVRPTUFUSU9OIFBURSBMVEQKKwkJCQk4MDEgTE9ST05HIDcsIFRPQSBQQVlPSAorCQkJCVNJTkdBUE9SRSAxMjMxCisJCQkJU0lOR0FQT1JFCisKKzAwLTQwLTc5ICAgKGhleCkJCUpVS08gTUFOVUZBQ1RVUkUgQ09NUEFOWSwgTFRELgorMDA0MDc5ICAgICAoYmFzZSAxNikJCUpVS08gTUFOVUZBQ1RVUkUgQ09NUEFOWSwgTFRELgorCQkJCUZMQVQgQywgM1JEIEZMT09SLCBDRFcgQkxERy4KKwkJCQkzODggQ0FTVExFIFBFQUsgUk9BRCwgVFNVRU4gV0FOLCBOLlQuCisJCQkJSE9ORyBLT05HCisJCQkJSE9ORyBLT05HCisKKzAwLTQwLTdBICAgKGhleCkJCVNPQ0lFVEUgRCdFWFBMT0lUQVRJT04gRFUgQ05JVAorMDA0MDdBICAgICAoYmFzZSAxNikJCVNPQ0lFVEUgRCdFWFBMT0lUQVRJT04gRFUgQ05JVAorCQkJCTIgR0xBQ0UgREUgTEEgREVGRU5TRSA5MjA1MworCQkJCVBBUklTLUxBLURFRkVOU0UKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtNDAtN0IgICAoaGV4KQkJU0NJRU5USUZJQyBBVExBTlRBCiswMDQwN0IgICAgIChiYXNlIDE2KQkJU0NJRU5USUZJQyBBVExBTlRBCisJCQkJSW5mb3JtYXRpb24gVGVjaG5vbG9neQorCQkJCTQzMTEgQ29tbXVuaWNhdGlvbnMgRHJpdmUgTWFpbCBDb2RlOiAgMzAKKwkJCQlOb3Jjcm9zcyBHQSAzMDA5MS02ODUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC03QyAgIChoZXgpCQlRVU1FIENPUlBPUkFUSU9OCiswMDQwN0MgICAgIChiYXNlIDE2KQkJUVVNRSBDT1JQT1JBVElPTgorCQkJCTUwMCBZT1NFTUlURSBEUklWRSwgTS9TLTI5CisJCQkJTUlMUElUQVMgQ0EgOTUwMzUtNTQyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtN0QgICAoaGV4KQkJRVhURU5TSU9OIFRFQ0hOT0xPR1kgQ09SUC4KKzAwNDA3RCAgICAgKGJhc2UgMTYpCQlFWFRFTlNJT04gVEVDSE5PTE9HWSBDT1JQLgorCQkJCTMwIEhPTExJUyBTVFJFRVQKKwkJCQlGUkFNSU5HSEFNIE1BIDAxNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC03RSAgIChoZXgpCQlFVkVSR1JFRU4gU1lTVEVNUywgSU5DLgorMDA0MDdFICAgICAoYmFzZSAxNikJCUVWRVJHUkVFTiBTWVNURU1TLCBJTkMuCisJCQkJMTIwIExBTkRJTkcgQ09VUlQtU1VJVEUKKwkJCQlOT1ZBVE8gQ0EgOTQ5NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTdGICAgKGhleCkJCUZMSVIgU3lzdGVtcworMDA0MDdGICAgICAoYmFzZSAxNikJCUZMSVIgU3lzdGVtcworCQkJCUJPWCAzCisJCQkJMTgyLTExICBEQU5ERVJZRAorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC00MC04MCAgIChoZXgpCQlBVEhFTklYIENPUlBPUkFUSU9OCiswMDQwODAgICAgIChiYXNlIDE2KQkJQVRIRU5JWCBDT1JQT1JBVElPTgorCQkJCTY3NSBBTE1BTk9SIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtODEgICAoaGV4KQkJTUFOTkVTTUFOTiBTQ0FOR1JBUEhJQyBHTUJICiswMDQwODEgICAgIChiYXNlIDE2KQkJTUFOTkVTTUFOTiBTQ0FOR1JBUEhJQyBHTUJICisJCQkJUklTU0VORVIgU1RSQVNTRSAxMTItMTE0CisJCQkJVy0yMDAwIFdFREVMCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtODIgICAoaGV4KQkJTEFCT1JBVE9SWSBFUVVJUE1FTlQgQ09SUC4KKzAwNDA4MiAgICAgKGJhc2UgMTYpCQlMQUJPUkFUT1JZIEVRVUlQTUVOVCBDT1JQLgorCQkJCTEtNy0zIE1JTkFUT01BQ0hJCisJCQkJVFVDSElVUkEtQ0lUWSBJQkFSQUdJLUtFTiwKKwkJCQkzMDAgSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC04MyAgIChoZXgpCQlUREEgSU5EVVNUUklBIERFIFBST0RVVE9TCiswMDQwODMgICAgIChiYXNlIDE2KQkJVERBIElORFVTVFJJQSBERSBQUk9EVVRPUworCQkJCUVMRVRST05JQ09TIFMuQS4KKwkJCQlSVUUgQUdPU1RJTk8gVE9HTkVSSSwgOTIgMDQ2OTAgLSBTQU8gUEFVCisJCQkJQlJBWklMCisJCQkJQlJBWklMCisKKzAwLTQwLTg0ICAgKGhleCkJCUhPTkVZV0VMTCBBQ1MKKzAwNDA4NCAgICAgKGJhc2UgMTYpCQlIT05FWVdFTEwgQUNTCisJCQkJCisJCQkJNTEyIFZpcmdpbmlhIERyaXZlCisJCQkJRm9ydCBXYXNoaW5ndG9uIFBBIDE5MDM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC04NSAgIChoZXgpCQlTQUFCIElOU1RSVU1FTlRTIEFCCiswMDQwODUgICAgIChiYXNlIDE2KQkJU0FBQiBJTlNUUlVNRU5UUyBBQgorCQkJCVAuTy4gQk9YIDEwMTcKKwkJCQlTLTU1MSAxMSBKT05LT1BJTkcKKwkJCQlTV0VERU4KKworMDAtNDAtODYgICAoaGV4KQkJTUlDSEVMUyAmIEtMRUJFUkhPRkYgQ09NUFVURVIKKzAwNDA4NiAgICAgKGJhc2UgMTYpCQlNSUNIRUxTICYgS0xFQkVSSE9GRiBDT01QVVRFUgorCQkJCUdBVEhFIDExNworCQkJCTU2MDAgV1VQUEVSVEFMIDEKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC04NyAgIChoZXgpCQlVQklUUkVYIENPUlBPUkFUSU9OCiswMDQwODcgICAgIChiYXNlIDE2KQkJVUJJVFJFWCBDT1JQT1JBVElPTgorCQkJCTE5VEggRkxPT1IsIDE1NSBDQVJMVE9OIFNUUkVFVAorCQkJCVdJTk5JUEVHLCBNQU5JVE9CQQorCQkJCUNBTkFEQSBSM0MgM0g4CisJCQkJQ0FOQURBCisKKzAwLTQwLTg4ICAgKGhleCkJCU1PQklVUyBURUNITk9MT0dJRVMsIElOQy4KKzAwNDA4OCAgICAgKGJhc2UgMTYpCQlNT0JJVVMgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNTgzNSBET1lMRSBTVFJFRVQKKwkJCQlFTUVSWVZJTExFIENBIDk0NjA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC04OSAgIChoZXgpCQlNRUlERU5TSEEgQ09SUE9SQVRJT04KKzAwNDA4OSAgICAgKGJhc2UgMTYpCQlNRUlERU5TSEEgQ09SUE9SQVRJT04KKwkJCQlGQUNUT1JZIE5PLjQsIDUxNSBLQU1JTkFLQU1JWk8KKwkJCQlISUdBU0hJIE1BS0FETyBOVU1BWlUtQ0lUWSBTSElaVU9LQS1QUkVGCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC04QSAgIChoZXgpCQlUUFMgVEVMRVBST0NFU1NJTkcgU1lTLiBHTUJICiswMDQwOEEgICAgIChiYXNlIDE2KQkJVFBTIFRFTEVQUk9DRVNTSU5HIFNZUy4gR01CSAorCQkJCVNDSFdBREVSTVVDSExTVFJBU1NFIDQtOAorCQkJCVctODUwMSBDQURPTFpCVVJHCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtOEIgICAoaGV4KQkJUkFZTEFOIENPUlBPUkFUSU9OCiswMDQwOEIgICAgIChiYXNlIDE2KQkJUkFZTEFOIENPUlBPUkFUSU9OCisJCQkJMTIwIElOREVQRU5ERU5DRSBEUklWRQorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLThDICAgKGhleCkJCUFYSVMgQ09NTVVOSUNBVElPTlMgQUIKKzAwNDA4QyAgICAgKGJhc2UgMTYpCQlBWElTIENPTU1VTklDQVRJT05TIEFCCisJCQkJU0NIRUVMRVZBR0VOIDE2CisJCQkJUy0yMjMgNzAgTFVORAorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC00MC04RCAgIChoZXgpCQlUSEUgR09PRFlFQVIgVElSRSAmIFJVQkJFUiBDTy4KKzAwNDA4RCAgICAgKGJhc2UgMTYpCQlUSEUgR09PRFlFQVIgVElSRSAmIFJVQkJFUiBDTy4KKwkJCQkxMTQ0IEVBU1QgTUFSS0VUIFNUUkVFVAorCQkJCUFLUk9OIE9IIDQ0MzE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC04RSAgIChoZXgpCQlESUdJTE9HLCBJTkMuCiswMDQwOEUgICAgIChiYXNlIDE2KQkJRElHSUxPRywgSU5DLgorCQkJCTIzNjAgTUFSWUxBTkQgUk9BRAorCQkJCVdJTExPVyBHUk9WRSBQQSAxOTA5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtOEYgICAoaGV4KQkJV00tREFUQSBNSU5GTyBBQgorMDA0MDhGICAgICAoYmFzZSAxNikJCVdNLURBVEEgTUlORk8gQUIKKwkJCQlPTE9GIEFTS0xVTkRTIEdBVEEgMTQKKwkJCQlCT1ggMjA2NSA0MjEgMDIgR09URUJPUkcKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtNDAtOTAgICAoaGV4KQkJQU5TRUwgQ09NTVVOSUNBVElPTlMKKzAwNDA5MCAgICAgKGJhc2UgMTYpCQlBTlNFTCBDT01NVU5JQ0FUSU9OUworCQkJCTE3MDEgSlVOQ1RJT04gQ09VUlQKKwkJCQlTQU4gSk9TRSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtOTEgICAoaGV4KQkJUFJPQ09NUCBJTkRVU1RSSUEgRUxFVFJPTklDQQorMDA0MDkxICAgICAoYmFzZSAxNikJCVBST0NPTVAgSU5EVVNUUklBIEVMRVRST05JQ0EKKwkJCQlBVi4gS0VOS0lUSSBTSU1PTU9UTywgNzY3CisJCQkJMDUzNDcgLSBTQU8gUEFVTE8gLyBTUAorCQkJCUJSQVpJTAorCQkJCUJSQVpJTAorCiswMC00MC05MiAgIChoZXgpCQlBU1AgQ09NUFVURVIgUFJPRFVDVFMsIElOQy4KKzAwNDA5MiAgICAgKGJhc2UgMTYpCQlBU1AgQ09NUFVURVIgUFJPRFVDVFMsIElOQy4KKwkJCQkxNjAgU0FOIEdBQlJJRUwgRFJJVkUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTkzICAgKGhleCkJCVBBWERBVEEgTkVUV09SS1MgTFRELgorMDA0MDkzICAgICAoYmFzZSAxNikJCVBBWERBVEEgTkVUV09SS1MgTFRELgorCQkJCUNPTU1VTklDQVRJT05TIEhPVVNFLAorCQkJCUZST0dNT1JFIFJPQUQgSEVNRUwgSEVNUFNURUFELCBIRVJUUyBIUDMKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtOTQgICAoaGV4KQkJU0hPR1JBUEhJQ1MsIElOQy4KKzAwNDA5NCAgICAgKGJhc2UgMTYpCQlTSE9HUkFQSElDUywgSU5DLgorCQkJCTE4OTAgTi4gU0hPUkVMSU5FIEJMVkQuCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtOTUgICAoaGV4KQkJUi5QLlQuIElOVEVSR1JPVVBTIElOVCdMIExURC4KKzAwNDA5NSAgICAgKGJhc2UgMTYpCQlSLlAuVC4gSU5URVJHUk9VUFMgSU5UJ0wgTFRELgorCQkJCTlGLCA1MCBNSU4gQ0hVQU4gUkQKKwkJCQlIU0lOIFRJRU4sIFRBSVBFSQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC00MC05NiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDQwOTYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtOTcgICAoaGV4KQkJREFURVggRElWSVNJT04gT0YKKzAwNDA5NyAgICAgKGJhc2UgMTYpCQlEQVRFWCBESVZJU0lPTiBPRgorCQkJCUlOU1RSVU1FTlRBUklVTSBDT1JQLgorCQkJCVAuTy4gQk9YIDQ0NiwgU0YtMDAxMDEgSEVMU0lOS0kKKwkJCQlGSU5MQU5ECisJCQkJRklOTEFORAorCiswMC00MC05OCAgIChoZXgpCQlEUkVTU0xFUiBHTUJIICYgQ08uCiswMDQwOTggICAgIChiYXNlIDE2KQkJRFJFU1NMRVIgR01CSCAmIENPLgorCQkJCUtBQ0tFUlRTVFJBU1NFIDEwCisJCQkJRC01MjA3MiBBQUNIRU4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC05OSAgIChoZXgpCQlORVdHRU4gU1lTVEVNUyBDT1JQLgorMDA0MDk5ICAgICAoYmFzZSAxNikJCU5FV0dFTiBTWVNURU1TIENPUlAuCisJCQkJMTc1ODAgTkVXSE9QRSBTVFJFRVQKKwkJCQlGT1VOVEFJTiBWQUxMRVkgQ0EgOTI3MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTlBICAgKGhleCkJCU5FVFdPUksgRVhQUkVTUywgSU5DLgorMDA0MDlBICAgICAoYmFzZSAxNikJCU5FVFdPUksgRVhQUkVTUywgSU5DLgorCQkJCTIyMDAgR1JFRU4gUk9BRCAtIFNURQorCQkJCUFOTiBBUkJPUiBNSSA0ODE3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtOUIgICAoaGV4KQkJSEFMIENPTVBVVEVSIFNZU1RFTVMgSU5DLgorMDA0MDlCICAgICAoYmFzZSAxNikJCUhBTCBDT01QVVRFUiBTWVNURU1TIElOQy4KKwkJCQkxMzE1IERFTEwgQVZFTlVFCisJCQkJQ0FNUEJFTEwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTlDICAgKGhleCkJCVRSQU5TV0FSRQorMDA0MDlDICAgICAoYmFzZSAxNikJCVRSQU5TV0FSRQorCQkJCTIxLCBSVUUgRFUgOCBNQUkgMTk0NQorCQkJCTk0MTEwNyBBUkNVRUlMCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTQwLTlEICAgKGhleCkJCURJR0lCT0FSRCwgSU5DLgorMDA0MDlEICAgICAoYmFzZSAxNikJCURJR0lCT0FSRCwgSU5DLgorCQkJCTY0MDAgRkxZSU5HIENMT1VEIERSSVZFCisJCQkJRURFTiBQUkFJUklFIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC05RSAgIChoZXgpCQlDT05DVVJSRU5UIFRFQ0hOT0xPR0lFUyAgTFRELgorMDA0MDlFICAgICAoYmFzZSAxNikJCUNPTkNVUlJFTlQgVEVDSE5PTE9HSUVTICBMVEQuCisJCQkJNjU0IFRIRSBDUkVTQ0VOVAorCQkJCUNPTENIRVNURVIgQlVTSU5FU1MgUEFSSyBDT0xDSEVTVEVSLCBFU1MKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLTlGICAgKGhleCkJCVRlbGNvIFN5c3RlbXMsIEluYy4gCiswMDQwOUYgICAgIChiYXNlIDE2KQkJVGVsY28gU3lzdGVtcywgSW5jLiAKKwkJCQkxNSBCZXJrc2hpcmUgUm9hZAorCQkJCU1hbnNmaWVsZCwgTUEgMDIwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUEwICAgKGhleCkJCUdPTERTVEFSIENPLiwgTFRELgorMDA0MEEwICAgICAoYmFzZSAxNikJCUdPTERTVEFSIENPLiwgTFRELgorCQkJCTYgR0EgM0IgTVVOTEFFIFlFT05HREVVTkdQTworCQkJCVNFT1VMCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNDAtQTEgICAoaGV4KQkJRVJHTyBDT01QVVRJTkcKKzAwNDBBMSAgICAgKGJhc2UgMTYpCQlFUkdPIENPTVBVVElORworCQkJCU9ORSBJTlRFUkNPTlRJTkVOVEFMIFdBWQorCQkJCVBFQUJPRFkgTUEgMDE5NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUEyICAgKGhleCkJCUtJTkdTVEFSIFRFQ0hOT0xPR1kgSU5DLgorMDA0MEEyICAgICAoYmFzZSAxNikJCUtJTkdTVEFSIFRFQ0hOT0xPR1kgSU5DLgorCQkJCTEtM0YsIE5PLiAxODUsIFNFQy4gMywKKwkJCQlDSEVORyBURUggUk9BRAorCQkJCVRBSVBFSSBUQUlXQU4sIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNDAtQTMgICAoaGV4KQkJTUlDUk9VTklUWSBTWVNURU1TIEVOR0lORUVSSU5HCiswMDQwQTMgICAgIChiYXNlIDE2KQkJTUlDUk9VTklUWSBTWVNURU1TIEVOR0lORUVSSU5HCisJCQkJMjU1IENBU1BJQU4gRFJJVkUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODktMTAxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQTQgICAoaGV4KQkJUk9TRSBFTEVDVFJPTklDUworMDA0MEE0ICAgICAoYmFzZSAxNikJCVJPU0UgRUxFQ1RST05JQ1MKKwkJCQlQLk8uIEJPWCA3NDI1NzEKKwkJCQlIT1VTVE9OIFRYIDc3Mjc0LTI1NzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUE1ICAgKGhleCkJCUNMSU5JQ09NUCBJTlRMLgorMDA0MEE1ICAgICAoYmFzZSAxNikJCUNMSU5JQ09NUCBJTlRMLgorCQkJCTQ1MTAgRVhFQ0NVVElWRSBEUklWRS1TVEUuIzIwMAorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQTYgICAoaGV4KQkJQ3JheSwgSW5jLgorMDA0MEE2ICAgICAoYmFzZSAxNikJCUNyYXksIEluYy4KKwkJCQk2NTVGIExPTkUgT0FLIERSSVZFCisJCQkJRUFHQU4gTU4gNTUxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUE3ICAgKGhleCkJCUlUQVVURUMgUEhJTENPIFMuQS4KKzAwNDBBNyAgICAgKGJhc2UgMTYpCQlJVEFVVEVDIFBISUxDTyBTLkEuCisJCQkJR1JVUE8gSVRBVVRFQyBQSElMQ08KKwkJCQlSVUEgU0FOVEEgQ0FUQVJJTkEsIDEgMDMwODYtMDIwIFNBTyBQQVVMCisJCQkJQlJBWklMCisJCQkJQlJBWklMCisKKzAwLTQwLUE4ICAgKGhleCkJCUlNRiBJTlRFUk5BVElPTkFMIExURC4KKzAwNDBBOCAgICAgKGJhc2UgMTYpCQlJTUYgSU5URVJOQVRJT05BTCBMVEQuCisJCQkJTk8uNSAyL0YgS0lOR1NGT1JEIElORC4gQ0VOVFJFCisJCQkJMTMgV0FORyBIT0kgUk9BRCBLT1dMT09OIEJBWSwgS09XTE9PTgorCQkJCUhPTkcgS09ORworCQkJCUhPTkcgS09ORworCiswMC00MC1BOSAgIChoZXgpCQlEQVRBQ09NIElOQy4KKzAwNDBBOSAgICAgKGJhc2UgMTYpCQlEQVRBQ09NIElOQy4KKwkJCQkxNDYgSElHSFdBWSBST1VURSAzNCAtIFNURSAyNTAKKwkJCQlIT0xNREVMIE5KIDA3NzMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1BQSAgIChoZXgpCQlWQUxNRVQgQVVUT01BVElPTiBJTkMuCiswMDQwQUEgICAgIChiYXNlIDE2KQkJVkFMTUVUIEFVVE9NQVRJT04gSU5DLgorCQkJCVAuTy4gQk9YIDIzNworCQkJCVNGLTMzMTAxIFRBTVBFUkUKKwkJCQlGSU5MQU5ECisJCQkJRklOTEFORAorCiswMC00MC1BQiAgIChoZXgpCQlST0xBTkQgREcgQ09SUE9SQVRJT04KKzAwNDBBQiAgICAgKGJhc2UgMTYpCQlST0xBTkQgREcgQ09SUE9SQVRJT04KKwkJCQkxMjI3IE9LVUJPLUNITywgSEFNQU1BVFNVLVNISQorCQkJCVNISVpVT0tBLUtFTgorCQkJCTQzMiBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLUFDICAgKGhleCkJCVNVUEVSIFdPUktTVEFUSU9OLCBJTkMuCiswMDQwQUMgICAgIChiYXNlIDE2KQkJU1VQRVIgV09SS1NUQVRJT04sIElOQy4KKwkJCQkyMTkwIFBBUkFHT04gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQUQgICAoaGV4KQkJU01BIFJFR0VMU1lTVEVNRSBHTUJICiswMDQwQUQgICAgIChiYXNlIDE2KQkJU01BIFJFR0VMU1lTVEVNRSBHTUJICisJCQkJSEFOTk9WRVJTQ0hFIFNUUi4gMS01CisJCQkJRCAzNTAxIE5JRVNURVRBTAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLUFFICAgKGhleCkJCURFTFRBIENPTlRST0xTLCBJTkMuCiswMDQwQUUgICAgIChiYXNlIDE2KQkJREVMVEEgQ09OVFJPTFMsIElOQy4KKwkJCQkxMzUyMCA3OFRIIEFWRU5VRQorCQkJCVNVUlJFWSwgQi5DLgorCQkJCUNBTkFEQSBWM1cgOEo2CisJCQkJQ0FOQURBCisKKzAwLTQwLUFGICAgKGhleCkJCURJR0lUQUwgUFJPRFVDVFMsIElOQy4KKzAwNDBBRiAgICAgKGJhc2UgMTYpCQlESUdJVEFMIFBST0RVQ1RTLCBJTkMuCisJCQkJNDExIFdBVkVSTFkgT0FLUyBST0FECisJCQkJV0FMVEhBTSBNQSAwMjE1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQjAgICAoaGV4KQkJQllURVggQ09SUE9SQVRJT04sIEVOR0lORUVSSU5HCiswMDQwQjAgICAgIChiYXNlIDE2KQkJQllURVggQ09SUE9SQVRJT04sIEVOR0lORUVSSU5HCisJCQkJMTM4NzMgUEFSSyBDRU5URVIgUk9BRAorCQkJCUhFUk5ET04gVkEgMjIwNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUIxICAgKGhleCkJCUNPRE9OSUNTIElOQy4KKzAwNDBCMSAgICAgKGJhc2UgMTYpCQlDT0RPTklDUyBJTkMuCisJCQkJMTc5OTEgRU5HTEVXT09EIERSSVZFCisJCQkJTUlERExFQlVSRyBIVFMgT0ggNDQxMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUIyICAgKGhleCkJCVNZU1RFTUZPUlNDSFVORworMDA0MEIyICAgICAoYmFzZSAxNikJCVNZU1RFTUZPUlNDSFVORworCQkJCUtPTklHU1RSQVNTRSAzM0EKKwkJCQk1MzAwIEJPTk4gMQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLUIzICAgKGhleCkJCVBhclRlY2ggSW5jLgorMDA0MEIzICAgICAoYmFzZSAxNikJCVBhclRlY2ggSW5jLgorCQkJCTgzODMgU2VuZWNhIFR1cm5waWtlCisJCQkJTkVXIEhBUlRGT1JEIE5ZIDEzNDEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1CNCAgIChoZXgpCQlORVhUQ09NIEsuSy4KKzAwNDBCNCAgICAgKGJhc2UgMTYpCQlORVhUQ09NIEsuSy4KKwkJCQkxLTEyLTEgU0hJQlVZQQorCQkJCVNISUJVWUEtS1UsIFRPS1lPLCAxNTAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLUI1ICAgKGhleCkJCVZJREVPIFRFQ0hOT0xPR1kgQ09NUFVURVJTIExURAorMDA0MEI1ICAgICAoYmFzZSAxNikJCVZJREVPIFRFQ0hOT0xPR1kgQ09NUFVURVJTIExURAorCQkJCTMzL0YuLCBCTE9DSyAjMSwKKwkJCQlUQUkgUElORyBJTkRVU1RSSUFMIENFTlRFUiA1NyBUSU5HIEtPSyBSCisJCQkJTi5ULiBIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtNDAtQjYgICAoaGV4KQkJQ09NUFVURVJNICBDT1JQT1JBVElPTgorMDA0MEI2ICAgICAoYmFzZSAxNikJCUNPTVBVVEVSTSAgQ09SUE9SQVRJT04KKwkJCQkxMTEgV09PRCBTVFJFRVQKKwkJCQlQSVRUU0JVUkdIIFBBIDE1MjIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1CNyAgIChoZXgpCQlTVEVBTFRIIENPTVBVVEVSIFNZU1RFTVMKKzAwNDBCNyAgICAgKGJhc2UgMTYpCQlTVEVBTFRIIENPTVBVVEVSIFNZU1RFTVMKKwkJCQkyMzQxIFJFR0lOQSBDVC4KKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQjggICAoaGV4KQkJSURFQSBBU1NPQ0lBVEVTCiswMDQwQjggICAgIChiYXNlIDE2KQkJSURFQSBBU1NPQ0lBVEVTCisJCQkJMjkgRFVOSEFNIFJPQUQKKwkJCQlCSUxMRVJJQ0EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUI5ICAgKGhleCkJCU1BQ1EgRUxFQ1RST05JUVVFIFNBCiswMDQwQjkgICAgIChiYXNlIDE2KQkJTUFDUSBFTEVDVFJPTklRVUUgU0EKKwkJCQlSVUUgREUgTCdBRVJPTkVGIDIKKwkJCQlCIC0gMTE0MCBCUlVTU0VMUworCQkJCUJFTEdJVU0KKwkJCQlCRUxHSVVNCisKKzAwLTQwLUJBICAgKGhleCkJCUFMTElBTlQgQ09NUFVURVIgU1lTVEVNUyBDT1JQLgorMDA0MEJBICAgICAoYmFzZSAxNikJCUFMTElBTlQgQ09NUFVURVIgU1lTVEVNUyBDT1JQLgorCQkJCU9ORSBNT05BUkNIIERSSVZFCisJCQkJTElUVExFVE9OIE1BIDAxNDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1CQiAgIChoZXgpCQlHT0xEU1RBUiBDQUJMRSBDTy4sIExURC4KKzAwNDBCQiAgICAgKGJhc2UgMTYpCQlHT0xEU1RBUiBDQUJMRSBDTy4sIExURC4KKwkJCQk1NTUsIEhPR1lFLURPTkcsIEFOWUFORy1TSEkKKwkJCQlLWVVOR0tJLURPLCA0MzAtMDgwCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNDAtQkMgICAoaGV4KQkJQUxHT1JJVEhNSUNTIExURC4KKzAwNDBCQyAgICAgKGJhc2UgMTYpCQlBTEdPUklUSE1JQ1MgTFRELgorCQkJCTMgRFJBWVRPTiBQQVJLCisJCQkJTE9ORE9OIE41IDFOVQorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC00MC1CRCAgIChoZXgpCQlTVEFSTElHSFQgTkVUV09SS1MsIElOQy4KKzAwNDBCRCAgICAgKGJhc2UgMTYpCQlTVEFSTElHSFQgTkVUV09SS1MsIElOQy4KKwkJCQk0NDQgQ0FTVFJPIFNUUkVFVCBTVEUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1CRSAgIChoZXgpCQlCT0VJTkcgREVGRU5TRSAmIFNQQUNFCiswMDQwQkUgICAgIChiYXNlIDE2KQkJQk9FSU5HIERFRkVOU0UgJiBTUEFDRQorCQkJCVAuTy4gQk9YIDM5OTkKKwkJCQlNQUlMIFNUT1AgODgtMTIKKwkJCQlTRUFUVExFIFdBIDk4MTI0LTI0OTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUJGICAgKGhleCkJCUNIQU5ORUwgU1lTVEVNUyBJTlRFUk4nTCBJTkMuCiswMDQwQkYgICAgIChiYXNlIDE2KQkJQ0hBTk5FTCBTWVNURU1TIElOVEVSTidMIElOQy4KKwkJCQk5MyBTTy4gTEEgUEFURVJBIExBTkUKKwkJCQlTQU5UQSBCQVJCQVJBIENBIDkzMTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1DMCAgIChoZXgpCQlWSVNUQSBDT05UUk9MUyBDT1JQT1JBVElPTgorMDA0MEMwICAgICAoYmFzZSAxNikJCVZJU1RBIENPTlRST0xTIENPUlBPUkFUSU9OCisJCQkJMjc4MjUgRlJFTU9OVCBDT1VSVAorCQkJCVZBTEVOQ0lBIENBIDkxMzU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1DMSAgIChoZXgpCQlCSVpFUkJBLVdFUktFIFdJTEhFSU0gS1JBVVQKKzAwNDBDMSAgICAgKGJhc2UgMTYpCQlCSVpFUkJBLVdFUktFIFdJTEhFSU0gS1JBVVQKKwkJCQlHTUJIICYgQ08uIEtHLAorCQkJCVdJTEhFTE0tS1JBVVQtU1RSLiA2NSBQLk8uIEJPWCAxMDAxNjQKKwkJCQlELTc0NjAgQkFMSU5HRU4gRC03NDYwIEJBTElOR0VOIEdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLUMyICAgKGhleCkJCUFQUExJRUQgQ09NUFVUSU5HIERFVklDRVMKKzAwNDBDMiAgICAgKGJhc2UgMTYpCQlBUFBMSUVEIENPTVBVVElORyBERVZJQ0VTCisJCQkJQUxFUEggUEFSSworCQkJCTEwMCBTT1VUSCBDQU1QVVMgRFJJVkUKKwkJCQlURVJSRSBIQVVURSBJTiA0NzgwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQzMgICAoaGV4KQkJRklTQ0hFUiBBTkQgUE9SVEVSIENPLgorMDA0MEMzICAgICAoYmFzZSAxNikJCUZJU0NIRVIgQU5EIFBPUlRFUiBDTy4KKwkJCQkxMjUgRS4gQ09VTlRZIExJTkUgUk9BRAorCQkJCVdBUk1JTlNURVIgUEEgMTg5NzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUM0ICAgKGhleCkJCUtJTktFSSBTWVNURU0gQ09SUE9SQVRJT04KKzAwNDBDNCAgICAgKGJhc2UgMTYpCQlLSU5LRUkgU1lTVEVNIENPUlBPUkFUSU9OCisJCQkJMS0yMi0xNywgS0FNSUtJVEEsIEhJUkFOT0tVCisJCQkJT1NBS0EsIDU0NworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtQzUgICAoaGV4KQkJTUlDT00gQ09NTVVOSUNBVElPTlMgSU5DLgorMDA0MEM1ICAgICAoYmFzZSAxNikJCU1JQ09NIENPTU1VTklDQVRJT05TIElOQy4KKwkJCQk0MTAwIExPUyBBTkdFTEVTIEFWRU5VRQorCQkJCVNJTUkgVkFMTEVZIENBIDkzMDYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1DNiAgIChoZXgpCQlGSUJFUk5FVCBSRVNFQVJDSCwgSU5DLgorMDA0MEM2ICAgICAoYmFzZSAxNikJCUZJQkVSTkVUIFJFU0VBUkNILCBJTkMuCisJCQkJMSBUQVJBIEJPVUxFVkFSRC0jNDA1CisJCQkJTkFTSFVBIE5IIDAzMDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1DNyAgIChoZXgpCQlSVUJZIFRFQ0ggQ09SUE9SQVRJT04KKzAwNDBDNyAgICAgKGJhc2UgMTYpCQlSVUJZIFRFQ0ggQ09SUE9SQVRJT04KKwkJCQk2Ri0xLCBOTy4zLCBMQU5FIDI1MCwKKwkJCQlTRUMuIDUgTkFOS0lORyBFLlJPQUQKKwkJCQlUQUlQRUkgVEFJV0FOLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLUM4ICAgKGhleCkJCU1JTEFOIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKzAwNDBDOCAgICAgKGJhc2UgMTYpCQlNSUxBTiBURUNITk9MT0dZIENPUlBPUkFUSU9OCisJCQkJODk0IFJPU1MgRFJJVkUtLVNURSAjMTA1CisJCQkJU1VOTllWQUxFIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1DOSAgIChoZXgpCQlOQ1VCRQorMDA0MEM5ICAgICAoYmFzZSAxNikJCU5DVUJFCisJCQkJOTE5IEVBU1QgSElMTFNEQUxFIEJMVkQuCisJCQkJU1VJVEUgMjAwCisJCQkJRk9TVEVSIENJVFkgQ0EgOTQ0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUNBICAgKGhleCkJCUZJUlNUIElOVEVSTkFUJ0wgQ09NUFVURVIsIElOQworMDA0MENBICAgICAoYmFzZSAxNikJCUZJUlNUIElOVEVSTkFUJ0wgQ09NUFVURVIsIElOQworCQkJCUZJQyBCdWlsZGluZworCQkJCU5vIDMwMCBZYW5nIEd1YW5nIFN0cmVldAorCQkJCU5laWh1IFRhaXBlaSAxMTQgVGFpcGVpIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNDAtQ0IgICAoaGV4KQkJTEFOV0FOIFRFQ0hOT0xPR0lFUworMDA0MENCICAgICAoYmFzZSAxNikJCUxBTldBTiBURUNITk9MT0dJRVMKKwkJCQkxNTY2IExBIFBSQURFUkEgRFJJVkUKKwkJCQlDQU1QQkVMTCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQ0MgICAoaGV4KQkJU0lMQ09NIE1BTlVGJ0cgVEVDSE5PTE9HWSBJTkMuCiswMDQwQ0MgICAgIChiYXNlIDE2KQkJU0lMQ09NIE1BTlVGJ0cgVEVDSE5PTE9HWSBJTkMuCisJCQkJNTYyMCBUSU1CRVJMRUEgQk9VTEVWQVJECisJCQkJTUlTU0lTU0FVR0EsIE9OVEFSSU8KKwkJCQlDQU5BREEgTDRXIDRNNgorCQkJCUNBTkFEQQorCiswMC00MC1DRCAgIChoZXgpCQlURVJBIE1JQ1JPU1lTVEVNUywgSU5DLgorMDA0MENEICAgICAoYmFzZSAxNikJCVRFUkEgTUlDUk9TWVNURU1TLCBJTkMuCisJCQkJMjUwMCBHUkVBVCBBTUVSSUNBIFBBUktXQVkKKwkJCQlTVEUuICMyNTAKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQ0UgICAoaGV4KQkJTkVULVNPVVJDRSwgSU5DLgorMDA0MENFICAgICAoYmFzZSAxNikJCU5FVC1TT1VSQ0UsIElOQy4KKwkJCQkxMjY1IEVMIENBTUlOTyBSRUFMCisJCQkJU1VJVEUgMTAxCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUNGICAgKGhleCkJCVNUUkFXQkVSUlkgVFJFRSwgSU5DLgorMDA0MENGICAgICAoYmFzZSAxNikJCVNUUkFXQkVSUlkgVFJFRSwgSU5DLgorCQkJCTE2MCBTT1VUSCBXT0xGRSBST0FECisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1EMCAgIChoZXgpCQlNSVRBQyBJTlRFUk5BVElPTkFMIENPUlAuCiswMDQwRDAgICAgIChiYXNlIDE2KQkJTUlUQUMgSU5URVJOQVRJT05BTCBDT1JQLgorCQkJCThUSCBGTC4gNTg1IE1JTkcgU0hFTkcgRS4gUkQuCisJCQkJVEFJUEVJCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC00MC1EMSAgIChoZXgpCQlGVUtVREEgREVOU0hJIENPLiwgTFRELgorMDA0MEQxICAgICAoYmFzZSAxNikJCUZVS1VEQSBERU5TSEkgQ08uLCBMVEQuCisJCQkJUiAmIEQgREVQQVJUTUVOVCBOTy4gMQorCQkJCTM1LTgsIEhPTkdPIDItQ0hPTUUsIEJVTktZTy1LVSBUT0tZTyAxMTMKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLUQyICAgKGhleCkJCVBBR0lORSBDT1JQT1JBVElPTgorMDA0MEQyICAgICAoYmFzZSAxNikJCVBBR0lORSBDT1JQT1JBVElPTgorCQkJCTE5NjEtQSBDT05DT1VSU0UgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRDMgICAoaGV4KQkJS0lNUFNJT04gSU5URVJOQVRJT05BTCBDT1JQLgorMDA0MEQzICAgICAoYmFzZSAxNikJCUtJTVBTSU9OIElOVEVSTkFUSU9OQUwgQ09SUC4KKwkJCQk0NzAxIFBBVFJJQ0sgSEVOUlkgRFJJVkUKKwkJCQlTVUlURSA0MDEKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRDQgICAoaGV4KQkJR0FHRSBUQUxLRVIgQ09SUC4KKzAwNDBENCAgICAgKGJhc2UgMTYpCQlHQUdFIFRBTEtFUiBDT1JQLgorCQkJCTEzNjgwIE5FIDE2VEggU1RSRUVUCisJCQkJQkVMTEVWVUUgV0EgOTgwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUQ1ICAgKGhleCkJCVNhcnRvcml1cyBNZWNoYXRyb25pY3MgVCZIIEdtYkggCiswMDQwRDUgICAgIChiYXNlIDE2KQkJU2FydG9yaXVzIE1lY2hhdHJvbmljcyBUJkggR21iSCAKKwkJCQlXRUVOREVSIExBTkRTVFI6IDk0IC0gMTA4CisJCQkJMzQwMCBHT1RUSU5HRU4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC1ENiAgIChoZXgpCQlMT0NBTUFUSU9OIEIuVi4KKzAwNDBENiAgICAgKGJhc2UgMTYpCQlMT0NBTUFUSU9OIEIuVi4KKwkJCQlQT1NUQk9YIDM2MAorCQkJCTc1MDAgQUogRU5TQ0hFREUKKwkJCQlIT0xMQU5ECisJCQkJTkVUSEVSTEFORFMKKworMDAtNDAtRDcgICAoaGV4KQkJU1RVRElPIEdFTiBJTkMuCiswMDQwRDcgICAgIChiYXNlIDE2KQkJU1RVRElPIEdFTiBJTkMuCisJCQkJMy0xMi04IFRBS0FOQVdBICMyMDIKKwkJCQlNSU5BVE9LVSwgVE9LWU8gMTA4CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC1EOCAgIChoZXgpCQlPQ0VBTiBPRkZJQ0UgQVVUT01BVElPTiBMVEQuCiswMDQwRDggICAgIChiYXNlIDE2KQkJT0NFQU4gT0ZGSUNFIEFVVE9NQVRJT04gTFRELgorCQkJCTRUSCAmIDVUSCBGTE9PUiwgS0FERVIgQkxERy4KKwkJCQkyMiBLQUkgQ0hFVU5HIFJPQUQgS09XTE9PTiBCQVksIEtPV0xPT04KKwkJCQlIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtNDAtRDkgICAoaGV4KQkJQU1FUklDQU4gTUVHQVRSRU5EUyBJTkMuCiswMDQwRDkgICAgIChiYXNlIDE2KQkJQU1FUklDQU4gTUVHQVRSRU5EUyBJTkMuCisJCQkJNjE0NUYgTiBCRUxUIFBBUktXQVkKKwkJCQlOT1JDUk9TUyBHQSAzMDA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtREEgICAoaGV4KQkJVEVMU1BFQyBMVEQKKzAwNDBEQSAgICAgKGJhc2UgMTYpCQlURUxTUEVDIExURAorCQkJCUxBTkNBU1RFUiBQQVJLRVIgUk9BRAorCQkJCVJPQ0hFU1RFUiBBSVJQT1JULCBST0NIRVNURVIgS0VOVCBNRTEgM1EKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtREIgICAoaGV4KQkJQURWQU5DRUQgVEVDSE5JQ0FMIFNPTFVUSU9OUworMDA0MERCICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIFRFQ0hOSUNBTCBTT0xVVElPTlMKKwkJCQk4MDUwIFNFTUlOT0xFIE9GRklDRSBDRU5URVIKKwkJCQlTVUlURSAyMTAKKwkJCQlTRU1JTk9MRSBGTCAzNDY0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtREMgICAoaGV4KQkJVFJJVEVDIEVMRUNUUk9OSUMgR01CSAorMDA0MERDICAgICAoYmFzZSAxNikJCVRSSVRFQyBFTEVDVFJPTklDIEdNQkgKKwkJCQlST0JFUlQgS09DSCBTVFIuIDM1CisJCQkJRDY1MDAgTUFJTlogNDIKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC1ERCAgIChoZXgpCQlIT05HIFRFQ0hOT0xPR0lFUworMDA0MEREICAgICAoYmFzZSAxNikJCUhPTkcgVEVDSE5PTE9HSUVTCisJCQkJNTMyIFdFRERFTEwgRFJJVkUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLURFICAgKGhleCkJCUVsc2FnIERhdGFtYXQgc3BhCiswMDQwREUgICAgIChiYXNlIDE2KQkJRWxzYWcgRGF0YW1hdCBzcGEKKwkJCQlFTFNBRyBTLlAuQS4KKwkJCQlWSUEgRy4gUFVDQ0lOSSwgMgorCQkJCUdFTk9WQSAgMTYxNTQKKwkJCQlJVEFMWQorCiswMC00MC1ERiAgIChoZXgpCQlESUdBTE9HIFNZU1RFTVMsIElOQy4KKzAwNDBERiAgICAgKGJhc2UgMTYpCQlESUdBTE9HIFNZU1RFTVMsIElOQy4KKwkJCQkzMTgwIFNPVVRIIDE2NlRIIFNUUkVFVAorCQkJCU5FVyBCRVJMSU4gV0kgNTMxNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUUwICAgKGhleCkJCUFUT01XSURFIExURC4KKzAwNDBFMCAgICAgKGJhc2UgMTYpCQlBVE9NV0lERSBMVEQuCisJCQkJMjMgVEhFIEdSRUVOV0FZCisJCQkJT1JQSU5HVE9OIEJSNSAyQVkKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLUUxICAgKGhleCkJCU1BUk5FUiBJTlRFUk5BVElPTkFMLCBJTkMuCiswMDQwRTEgICAgIChiYXNlIDE2KQkJTUFSTkVSIElOVEVSTkFUSU9OQUwsIElOQy4KKwkJCQkxNjE3IDkzUkQgTEFORSBORQorCQkJCUJMQUlORSBNTiA1NTQ0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRTIgICAoaGV4KQkJTUVTQSBSSURHRSBURUNITk9MT0dJRVMsIElOQy4KKzAwNDBFMiAgICAgKGJhc2UgMTYpCQlNRVNBIFJJREdFIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTY3MjUgTUVTQSBSSURHRSBST0FELVNURSMxMDAKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUUzICAgKGhleCkJCVFVSU4gU1lTVEVNUyBMVEQKKzAwNDBFMyAgICAgKGJhc2UgMTYpCQlRVUlOIFNZU1RFTVMgTFRECisJCQkJT0FLTEFORFMgQlVTSU5FU1MgQ0VOVFJFCisJCQkJT0FLTEFORFMgUEFSSywgV09LSU5HSEFNIEJFUktTICBSRzExIDJGRAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtRTQgICAoaGV4KQkJRS1NIFRFQ0hOT0xPR1ksIElOQy4KKzAwNDBFNCAgICAgKGJhc2UgMTYpCQlFLU0gVEVDSE5PTE9HWSwgSU5DLgorCQkJCTkyNDUgU09VVEhXRVNUIE5JTUJVUyBBVkUuCisJCQkJQkVBVkVSVE9OIE9SIDk3MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1FNSAgIChoZXgpCQlTWUJVUyBDT1JQT1JBVElPTgorMDA0MEU1ICAgICAoYmFzZSAxNikJCVNZQlVTIENPUlBPUkFUSU9OCisJCQkJMjMwMCBUQUxMIFBJTkUgRFJJVkUtU1RFLiAjMTAwCisJCQkJTEFSR08gRkwgMzQ2NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUU2ICAgKGhleCkJCUMuQS5FLk4uCiswMDQwRTYgICAgIChiYXNlIDE2KQkJQy5BLkUuTi4KKwkJCQkyLCBDSEVNSU4gTEFURVJBTAorCQkJCUY5NDI5MCBWSUxMRU5FVVZFIExFIFJPSQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC00MC1FNyAgIChoZXgpCQlBUk5PUyBJTlNUUlVNRU5UUyAmIENPTVBVVEVSCiswMDQwRTcgICAgIChiYXNlIDE2KQkJQVJOT1MgSU5TVFJVTUVOVFMgJiBDT01QVVRFUgorCQkJCVNZU1RFTVMgKEdST1VQKSBDTy4sIExURC4KKwkJCQk0L0YuLCBFVVJFS0EgSU5ELiBCTERHLiwgMS0xNyBTQUkgTEFVIEtPCisJCQkJVFNVRU4gV0FOIE4uVC4gSE9ORyBLT05HCisJCQkJSE9ORyBLT05HCisKKzAwLTQwLUU4ICAgKGhleCkJCUNIQVJMRVMgUklWRVIgREFUQSBTWVNURU1TLElOQworMDA0MEU4ICAgICAoYmFzZSAxNikJCUNIQVJMRVMgUklWRVIgREFUQSBTWVNURU1TLElOQworCQkJCTk4MyBDT05DT1JEIFNUUkVFVAorCQkJCUZSQU1JTkdIQU0gTUEgMDE3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUU5ICAgKGhleCkJCUFDQ09SRCBTWVNURU1TLCBJTkMuCiswMDQwRTkgICAgIChiYXNlIDE2KQkJQUNDT1JEIFNZU1RFTVMsIElOQy4KKwkJCQk1NzIgVkFMTEVZIFdBWQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1FQSAgIChoZXgpCQlQTEFJTiBUUkVFIFNZU1RFTVMgSU5DCiswMDQwRUEgICAgIChiYXNlIDE2KQkJUExBSU4gVFJFRSBTWVNURU1TIElOQworCQkJCUNISUVGIEVYRUNUVVZJRSBPRkZJQ0VSCisJCQkJNTkgSUJFUiBST0FELCBTVElUVFNWSUxMRSBPTlRBUklPIEsyUyAxRQorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC00MC1FQiAgIChoZXgpCQlNQVJUSU4gTUFSSUVUVEEgQ09SUE9SQVRJT04KKzAwNDBFQiAgICAgKGJhc2UgMTYpCQlNQVJUSU4gTUFSSUVUVEEgQ09SUE9SQVRJT04KKwkJCQkxMjUwNiBMQUtFIFVOREVSSElMTAorCQkJCU9STEFORE8gRkwgMzI4MjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUVDICAgKGhleCkJCU1JS0FTQSBTWVNURU0gRU5HSU5FRVJJTkcKKzAwNDBFQyAgICAgKGJhc2UgMTYpCQlNSUtBU0EgU1lTVEVNIEVOR0lORUVSSU5HCisJCQkJQ08uLCBMVEQuCisJCQkJMS0zLTEwLCBNSU5BTUktU0hJTk1BQ0hJLCBDSFVPLUtVLCBPU0FLQQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtRUQgICAoaGV4KQkJTkVUV09SSyBDT05UUk9MUyBJTlQnTkFUTCBJTkMuCiswMDQwRUQgICAgIChiYXNlIDE2KQkJTkVUV09SSyBDT05UUk9MUyBJTlQnTkFUTCBJTkMuCisJCQkJOSBXT09ETEFXTiBHUkVFTgorCQkJCUNIQVJMT1RURSBOQyAyODIxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRUUgICAoaGV4KQkJT1BUSU1FTQorMDA0MEVFICAgICAoYmFzZSAxNikJCU9QVElNRU0KKwkJCQkyOTcgTi4gQkVSTkFSRE8gQVZFTlVFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0My01MjA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1FRiAgIChoZXgpCQlIWVBFUkNPTSwgSU5DLgorMDA0MEVGICAgICAoYmFzZSAxNikJCUhZUEVSQ09NLCBJTkMuCisJCQkJMjg1MSBXRVNUIEtBVEhMRUVOIFJPQUQKKwkJCQlQSE9FTklYIEFaIDg1MDIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1GMCAgIChoZXgpCQlNaWNyb0JyYWluLEluYy4KKzAwNDBGMCAgICAgKGJhc2UgMTYpCQlNaWNyb0JyYWluLEluYy4KKwkJCQlZdXphbiBCbGRnLiA0RiwKKwkJCQkyMDUsS2lidXRha2UsTmFnYWt1dGUmIzgyMDg7IENobywKKwkJCQlBaWNoaS1ndW4gQUlDSEkgIDQ4MC0xMTE3CisJCQkJSkFQQU4KKworMDAtNDAtRjEgICAoaGV4KQkJQ0hVTyBFTEVDVFJPTklDUyBDTy4sIExURC4KKzAwNDBGMSAgICAgKGJhc2UgMTYpCQlDSFVPIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCTEtOS05LCBNT1RPSE9OR08tQ0hPCisJCQkJSEFDSElPSkktU0hJIFRPS1lPIDE5MgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtRjIgICAoaGV4KQkJSkFOSUNIICYgS0xBU1MgQ09NUFVURVJURUNITklLCiswMDQwRjIgICAgIChiYXNlIDE2KQkJSkFOSUNIICYgS0xBU1MgQ09NUFVURVJURUNITklLCisJCQkJWlVNIEFMVEVOIFpPTExIQVVTIDIwCisJCQkJVy01NjAwIFdVUFBFUlRBTCAyCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtRjMgICAoaGV4KQkJTkVUQ09SCiswMDQwRjMgICAgIChiYXNlIDE2KQkJTkVUQ09SCisJCQkJODUwIEFVQlVSTiBDT1VSVAorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUY0ICAgKGhleCkJCUNBTUVPIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDQwRjQgICAgIChiYXNlIDE2KQkJQ0FNRU8gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk3MSBTUElUQlJPT0sgUk9BRCwgU1RFICM0MTAKKwkJCQlOQVNIVUEgTkggMDMwNjAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1GNSAgIChoZXgpCQlPRU0gRU5HSU5FUworMDA0MEY1ICAgICAoYmFzZSAxNikJCU9FTSBFTkdJTkVTCisJCQkJMTE5MCBERUxMIEFWRU5VRSwgU1RFLgorCQkJCUNBTVBCRUxMIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1GNiAgIChoZXgpCQlLQVRST04gQ09NUFVURVJTIElOQy4KKzAwNDBGNiAgICAgKGJhc2UgMTYpCQlLQVRST04gQ09NUFVURVJTIElOQy4KKwkJCQk0IEZMLiBOTy4gMiwgQUxMRVkgMjMKKwkJCQlMQU5FIDkxIFNFQy4gMSBORUkgSFUgUk9BRAorCQkJCVRBSVBFSSBUQUlQRUkgVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC00MC1GNyAgIChoZXgpCQlQb2xhcm9pZCBDb3Jwb3JhdGlvbgorMDA0MEY3ICAgICAoYmFzZSAxNikJCVBvbGFyb2lkIENvcnBvcmF0aW9uCisJCQkJMzAwIEJha2VyIEF2ZW51ZQorCQkJCUNvbmNvcmQgTUEgMDE3NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUY4ICAgKGhleCkJCVNZU1RFTUhBVVMgRElTQ09NCiswMDQwRjggICAgIChiYXNlIDE2KQkJU1lTVEVNSEFVUyBESVNDT00KKwkJCQlESVNUUklCVVRFRCBDT01QVVRJTkcgR01CSAorCQkJCVJPRVJNT05ERVJTVFIuIDYxNSBELTUxMDAgQUFDSEVOCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtRjkgICAoaGV4KQkJQ09NQklORVQKKzAwNDBGOSAgICAgKGJhc2UgMTYpCQlDT01CSU5FVAorCQkJCTMzMyBXLiBFTCBDQU1JTk8gUkVBTC1TVEUjMzEwCisJCQkJU1VOTllWQUxFIENBIDk0MDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1GQSAgIChoZXgpCQlNSUNST0JPQVJEUywgSU5DLgorMDA0MEZBICAgICAoYmFzZSAxNikJCU1JQ1JPQk9BUkRTLCBJTkMuCisJCQkJMzEtOCwgVEFLQVNFQ0hPLEZVTkFCQVNISS1DSVRZCisJCQkJQ0hJQkEgMjczIENISUJBIDI3MyBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLUZCICAgKGhleCkJCUNBU0NBREUgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwNDBGQiAgICAgKGJhc2UgMTYpCQlDQVNDQURFIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJUFJPRFVDVElPTiBRVUFMSVRZIEVOR0lORUVSCisJCQkJMjM5IExJVFRMRVRPTiBST0FELVVOSVQgNEEKKwkJCQlXRVNURk9SRCBNQSAwMTg4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRkMgICAoaGV4KQkJSUJSIENPTVBVVEVSIFRFQ0hOSUsgR01CSAorMDA0MEZDICAgICAoYmFzZSAxNikJCUlCUiBDT01QVVRFUiBURUNITklLIEdNQkgKKwkJCQlGUkFOS0ZVUlRFUiBTVFIuIDExNAorCQkJCUQgNjA1NiBIRVVTRU5TVEFNTQorCQkJCVdFU1QgR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtRkQgICAoaGV4KQkJTFhFCiswMDQwRkQgICAgIChiYXNlIDE2KQkJTFhFCisJCQkJMzAzIFJFU0VBUkNIIERSSVZFCisJCQkJTk9SQ1JPU1MgR0EgMzAwOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUZFICAgKGhleCkJCVNZTVBMRVggQ09NTVVOSUNBVElPTlMKKzAwNDBGRSAgICAgKGJhc2UgMTYpCQlTWU1QTEVYIENPTU1VTklDQVRJT05TCisJCQkJNSBSRVNFQVJDSCBEUklWRQorCQkJCUFOTiBBUkJPUiBNSSA0ODEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRkYgICAoaGV4KQkJVEVMRUJJVCBDT1JQT1JBVElPTgorMDA0MEZGICAgICAoYmFzZSAxNikJCVRFTEVCSVQgQ09SUE9SQVRJT04KKwkJCQkxMzE1IENIRVNBUEVBS0UgVEVSUkFDRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OS0xMTAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00Mi01MiAgIChoZXgpCQlSTFggVGVjaG5vbG9naWVzCiswMDQyNTIgICAgIChiYXNlIDE2KQkJUkxYIFRlY2hub2xvZ2llcworCQkJCTI1MjMxIEdyb2dyYW5zIE1pbGwgUmQKKwkJCQlTdWl0ZSA2MDAKKwkJCQlUaGUgV29vZGxhbmRzIFR4IDc3MzgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00NS0wMSAgIChoZXgpCQlWZXJzdXMgVGVjaG5vbG9neSwgSW5jLgorMDA0NTAxICAgICAoYmFzZSAxNikJCVZlcnN1cyBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjYwMCBNaWxsZXIgQ3JlZWsgUm9hZAorCQkJCVRyYXZlcnNlIENpdHkgTUkgNDk2ODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTAwICAgKGhleCkJCU5FWE8gQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwNTAwMCAgICAgKGJhc2UgMTYpCQlORVhPIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMk5EIEZMLiwgMTYwLCBNSU5HQ0hVIFJPQUQKKwkJCQlIU0lOQ0hVIENJVFkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtMDEgICAoaGV4KQkJWUFNQVNISVRBIFNZU1RFTVMgQ09SUC4KKzAwNTAwMSAgICAgKGJhc2UgMTYpCQlZQU1BU0hJVEEgU1lTVEVNUyBDT1JQLgorCQkJCTUtNy0xMiBJS0VHQU1JCisJCQkJT1RBLUtVIFRPS1lPICAKKwkJCQlKQVBBTgorCiswMC01MC0wMiAgIChoZXgpCQlPTU5JU0VDIEFHCiswMDUwMDIgICAgIChiYXNlIDE2KQkJT01OSVNFQyBBRworCQkJCVJJRVRTVFJBU1NFIDE0CisJCQkJQ0gtODEwOCBEQUVMTElLT04gIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTUwLTAzICAgKGhleCkJCUdSRVRBRyBNQUNCRVRIIEFHCiswMDUwMDMgICAgIChiYXNlIDE2KQkJR1JFVEFHIE1BQ0JFVEggQUcKKwkJCQlBTFRIQVJEU1RSQVNTRSA3MAorCQkJCUNILTgxMDUgUkVHRU5TRE9SRiAgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtNTAtMDQgICAoaGV4KQkJM0NPTSBDT1JQT1JBVElPTgorMDA1MDA0ICAgICAoYmFzZSAxNikJCTNDT00gQ09SUE9SQVRJT04KKwkJCQk1NDAwIEJBWUZST05UIFBMQVpBCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTA2ICAgKGhleCkJCVRBQyBBQgorMDA1MDA2ICAgICAoYmFzZSAxNikJCVRBQyBBQgorCQkJCUpBR0VSU0hJTExHQVRPTiAxOAorCQkJCTIxMzc1IE1BTE1PICAKKwkJCQlTV0VERU4KKworMDAtNTAtMDcgICAoaGV4KQkJU0lFTUVOUyBURUxFQ09NTVVOSUNBVElPTiBTWVNURU1TIExJTUlURUQKKzAwNTAwNyAgICAgKGJhc2UgMTYpCQlTSUVNRU5TIFRFTEVDT01NVU5JQ0FUSU9OIFNZU1RFTVMgTElNSVRFRAorCQkJCU5PLiA5MCwgU0VDLiAxLCBDSElFTiBLVU8gTk9SVEggUk9BRAorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC0wOCAgIChoZXgpCQlUSVZBIE1JQ1JPQ09NUFVURVIgQ09SUC4gKFRNQykKKzAwNTAwOCAgICAgKGJhc2UgMTYpCQlUSVZBIE1JQ1JPQ09NUFVURVIgQ09SUC4gKFRNQykKKwkJCQk0ODU1MCBGUkVNT05UIEJMVkQuCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMDkgICAoaGV4KQkJUEhJTElQUyBCUk9BREJBTkQgTkVUV09SS1MKKzAwNTAwOSAgICAgKGJhc2UgMTYpCQlQSElMSVBTIEJST0FEQkFORCBORVRXT1JLUworCQkJCTY0IFBFUklNRVRFUiBDRU5UUkUgRUFTVAorCQkJCUFUTEFOVEEgR0EgMzAzNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTBBICAgKGhleCkJCUlSSVMgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDUwMEEgICAgIChiYXNlIDE2KQkJSVJJUyBURUNITk9MT0dJRVMsIElOQy4KKwkJCQlXRVNUTU9SRUxBTkQgSU5EVVNSSUFMIFBBUksKKwkJCQlSLlIuIDEyICBCT1ggMzYKKwkJCQlHUkVFTlNCVVJHIFBBIDE1NjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0wQiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwMEIgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlNL1MgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0wQyAgIChoZXgpCQllLVRlayBMYWJzLCBJbmMuCiswMDUwMEMgICAgIChiYXNlIDE2KQkJZS1UZWsgTGFicywgSW5jLgorCQkJCTEwNTcgRUFTVCBIRU5SSUVUVEEgUkQuCisJCQkJUk9DSEVTVEVSIE5ZIDE0NjIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0wRCAgIChoZXgpCQlTQVRPUkkgRUxFQ1RPUklDIENPLiwgTFRELgorMDA1MDBEICAgICAoYmFzZSAxNikJCVNBVE9SSSBFTEVDVE9SSUMgQ08uLCBMVEQuCisJCQkJVElHVVNBREFJIDM4LTggIE1JRE9SSS1LVQorCQkJCVlPS09IQU1BLCBLQU5BR0FXQSAgCisJCQkJSkFQQU4KKworMDAtNTAtMEUgICAoaGV4KQkJQ0hST01BVElTIE5FVFdPUktTLCBJTkMuCiswMDUwMEUgICAgIChiYXNlIDE2KQkJQ0hST01BVElTIE5FVFdPUktTLCBJTkMuCisJCQkJMyBCRVRIRVNEQSBNRVRSTyBDRU5URVIKKwkJCQlCRVRIRVNEQSBNRCAyMDgxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMEYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MDBGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0xMCAgIChoZXgpCQlOb3ZhTkVUIExlYXJuaW5nLCBJbmMuCiswMDUwMTAgICAgIChiYXNlIDE2KQkJTm92YU5FVCBMZWFybmluZywgSW5jLgorCQkJCTEyNSBXLiBDSFVSQ0ggU1RSRUVULVNURS4gIzMwMAorCQkJCUNIQU1QQUlHTiBJTCA2MTgyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMTIgICAoaGV4KQkJQ0JMIC0gR01CSAorMDA1MDEyICAgICAoYmFzZSAxNikJCUNCTCAtIEdNQkgKKwkJCQlEQVJNU1RBRURURVIgU1RSLiA4MQorCQkJCUQtNjQ4MzkgTVVFTlNURVIgIAorCQkJCUdFUk1BTlkKKworMDAtNTAtMTMgICAoaGV4KQkJQ2hhcGFycmFsIE5ldHdvcmsgU3RvcmFnZQorMDA1MDEzICAgICAoYmFzZSAxNikJCUNoYXBhcnJhbCBOZXR3b3JrIFN0b3JhZ2UKKwkJCQk3NDIwIEUuIERyeSBDcmVlayBQYXJrd2F5CisJCQkJTG9uZ21vbnQgQ08gODA1MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTE0ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNTAxNCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJTS9TLyBTSkEtMgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0xNSAgIChoZXgpCQlCUklHSFQgU1RBUiBFTkdJTkVFUklORworMDA1MDE1ICAgICAoYmFzZSAxNikJCUJSSUdIVCBTVEFSIEVOR0lORUVSSU5HCisJCQkJMTkgRU5GSUVMRCBEUklWRQorCQkJCUFORE9WRVIgTUEgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTE2ICAgKGhleCkJCVNTVC9XT09ESEVBRCBJTkRVU1RSSUVTCiswMDUwMTYgICAgIChiYXNlIDE2KQkJU1NUL1dPT0RIRUFEIElORFVTVFJJRVMKKwkJCQk1MCBOT1JUSExBTkQgUk9BRAorCQkJCVdBVEVSTE9PCisJCQkJT05UQVJJTyBOMlYgMU4zICAKKwkJCQlDQU5BREEKKworMDAtNTAtMTcgICAoaGV4KQkJUlNSIFMuUi5MLgorMDA1MDE3ICAgICAoYmFzZSAxNikJCVJTUiBTLlIuTC4KKwkJCQlWSUEgU0lOSUdBR0xJQSwgMzgKKwkJCQlMVVJBVEUgQ0FDQ0lWSU8gKENPKQorCQkJCTIyMDc1IElUQUxZCisJCQkJSVRBTFkKKworMDAtNTAtMTggICAoaGV4KQkJQU1JVCwgSW5jLgorMDA1MDE4ICAgICAoYmFzZSAxNikJCUFNSVQsIEluYy4KKwkJCQlOby4zMiwgSHVhbmdvbmcgUmQuLAorCQkJCVlvbmdrYW5nIENpdHksIFRhaW5hbiBDb3VudHkgNzEwNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLTE5ICAgKGhleCkJCVNQUklORyBUSURFIE5FVFdPUktTLCBJTkMuCiswMDUwMTkgICAgIChiYXNlIDE2KQkJU1BSSU5HIFRJREUgTkVUV09SS1MsIElOQy4KKwkJCQk4NSBTV0FOU09OIFJPQUQKKwkJCQlCT1hCT1JPVUdIIE1BIDAxNzE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0xQSAgIChoZXgpCQlJUWluVmlzaW9uCiswMDUwMUEgICAgIChiYXNlIDE2KQkJSVFpblZpc2lvbgorCQkJCTMzMTIyIFZhbGxlIFJvYWQKKwkJCQlTYW4gSnVhbiBDYXBpc3RyYW5vIENBIDkyNjc1LTQ4NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTFCICAgKGhleCkJCUFCTCBDQU5BREEsIElOQy4KKzAwNTAxQiAgICAgKGJhc2UgMTYpCQlBQkwgQ0FOQURBLCBJTkMuCisJCQkJODU1MCBDT1RFIERFIExJRVNTRQorCQkJCVNULUxBVVJFTlQgKFFVRUJFQykgSDRUIDFIMiAgCisJCQkJQ0FOQURBCisKKzAwLTUwLTFDICAgKGhleCkJCUpBVE9NIFNZU1RFTVMsIElOQy4KKzAwNTAxQyAgICAgKGJhc2UgMTYpCQlKQVRPTSBTWVNURU1TLCBJTkMuCisJCQkJOTkgTUlDSEFFTCBDT1dQTEFORCBEUklWRQorCQkJCUtBTkFUQQorCQkJCU9OVEFSSU8sIEsyTSAxWDMgIAorCQkJCUNBTkFEQQorCiswMC01MC0xRSAgIChoZXgpCQlNaXJhbmRhIFRlY2hub2xvZ2llcywgSW5jLgorMDA1MDFFICAgICAoYmFzZSAxNikJCU1pcmFuZGEgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMzQ5OSwgRG91Z2xhcyBCLiBGbG9yZWFuaQorCQkJCVNhbml0LUxhdXJlbnQsIFFDCisJCQkJSDRTIDJDNiAKKwkJCQlDQU5BREEKKworMDAtNTAtMUYgICAoaGV4KQkJTVJHIFNZU1RFTVMsIExURC4KKzAwNTAxRiAgICAgKGJhc2UgMTYpCQlNUkcgU1lTVEVNUywgTFRELgorCQkJCVdJTExPVyBIT1VTRSwgU0xBRCBST0FECisJCQkJU1RST1VECisJCQkJR0xPUy4gIEdMNSAxUUcgRW5nbGFuZCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNTAtMjAgICAoaGV4KQkJTUVESUFTVEFSIENPLiwgTFRELgorMDA1MDIwICAgICAoYmFzZSAxNikJCU1FRElBU1RBUiBDTy4sIExURC4KKwkJCQkzRkwsIFNPSFVOIEJMREcuCisJCQkJOTUxLTMzIERPR09LLURPTkcsIEtBTkdOQU0tS1UgU0VPVUwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC01MC0yMSAgIChoZXgpCQlFSVMgSU5URVJOQVRJT05BTCwgSU5DLgorMDA1MDIxICAgICAoYmFzZSAxNikJCUVJUyBJTlRFUk5BVElPTkFMLCBJTkMuCisJCQkJMTM1MSBXQVNISU5HVE9OIEJMVkQuCisJCQkJU1RBTUZPUkQgQ1QgMDY5MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTIyICAgKGhleCkJCVpPTkVUIFRFQ0hOT0xPR1ksIElOQy4KKzAwNTAyMiAgICAgKGJhc2UgMTYpCQlaT05FVCBURUNITk9MT0dZLCBJTkMuCisJCQkJODMwIFJPT00sIEJMREcuIDUzLCAxOTUsIFNFQy40CisJCQkJQ0hVTkcgSFNJVU5HIFJELCBDSFVUVU5HCisJCQkJSFNJTkNIQSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC0yMyAgIChoZXgpCQlQRyBERVNJR04gRUxFQ1RST05JQ1MsIElOQy4KKzAwNTAyMyAgICAgKGJhc2UgMTYpCQlQRyBERVNJR04gRUxFQ1RST05JQ1MsIElOQy4KKwkJCQk0ODcwMCBTVFJVQ1RVUkFMIERSSVZFCisJCQkJQ0hFU1RFUkZJRUxEIE1JIDQ4MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0yNCAgIChoZXgpCQlOQVZJQyBTWVNURU1TLCBJTkMuCiswMDUwMjQgICAgIChiYXNlIDE2KQkJTkFWSUMgU1lTVEVNUywgSU5DLgorCQkJCTc0IENSRVNDRU5UIFNUUkVFVAorCQkJCU5FRURIQU0gTUEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTI2ICAgKGhleCkJCUNPU1lTVEVNUywgSU5DLgorMDA1MDI2ICAgICAoYmFzZSAxNikJCUNPU1lTVEVNUywgSU5DLgorCQkJCTEyNjMgT0FLTUVBRCBQQVJLV0FZCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0yNyAgIChoZXgpCQlHRU5JQ09NIENPUlBPUkFUSU9OCiswMDUwMjcgICAgIChiYXNlIDE2KQkJR0VOSUNPTSBDT1JQT1JBVElPTgorCQkJCTkwMCBDTE9QUEVSIFJPQUQgLSBTVEUuICMxMTAKKwkJCQlHQUlUSEVSU0JVUkcgTUQgMjA4NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTI4ICAgKGhleCkJCUFWQUwgQ09NTVVOSUNBVElPTlMKKzAwNTAyOCAgICAgKGJhc2UgMTYpCQlBVkFMIENPTU1VTklDQVRJT05TCisJCQkJMTc3NyBOT1JUSCBDQUxJRk9STklBIEJMVkQuCisJCQkJV0FMTlVUIENSRUVLIENBIDk0NTk2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0yOSAgIChoZXgpCQkxMzk0IFBSSU5URVIgV09SS0lORyBHUk9VUAorMDA1MDI5ICAgICAoYmFzZSAxNikJCTEzOTQgUFJJTlRFUiBXT1JLSU5HIEdST1VQCisJCQkJUC5PLiBCT1ggMjMxNTgKKwkJCQlTQU4gSk9TRSBDQSA5NTE1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMkEgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MDJBICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQlNL1MgU0pBLTIKKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMkIgICAoaGV4KQkJR0VOUkFEIExURC4KKzAwNTAyQiAgICAgKGJhc2UgMTYpCQlHRU5SQUQgTFRELgorCQkJCU9SSU9OIEJVU0lORVNTIFBBUksKKwkJCQlCSVJESEFMTCBMQU5FIFNUT0NLUE9SVCwgQ0hFU0hJUkUKKwkJCQlVTklURUQgS0lOR0RPTSBTSzMgT1hHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNTAtMkMgICAoaGV4KQkJU09ZTyBDT01QVVRFUiwgSU5DLgorMDA1MDJDICAgICAoYmFzZSAxNikJCVNPWU8gQ09NUFVURVIsIElOQy4KKwkJCQlOTy4gMjEgV1UtS1VORyA1IFJELgorCQkJCUhTSU5HIENIVUFORyBDSVRZIFRBSVBFSSBIU0lFTgorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC0yRCAgIChoZXgpCQlBQ0NFTCwgSU5DLgorMDA1MDJEICAgICAoYmFzZSAxNikJCUFDQ0VMLCBJTkMuCisJCQkJMUYsIE5PLiA3LCBSJkQgMVNUIFJPQUQKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU5DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtMkUgICAoaGV4KQkJQ0FNQkVYIENPUlBPUkFUSU9OCiswMDUwMkUgICAgIChiYXNlIDE2KQkJQ0FNQkVYIENPUlBPUkFUSU9OCisJCQkJMTE1IEZsYW5kZXJzIFJvYWQKKwkJCQlXZXN0Ym9yb3VnaCBNQSAwMTU4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMkYgICAoaGV4KQkJVG9sbEJyaWRnZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwNTAyRiAgICAgKGJhc2UgMTYpCQlUb2xsQnJpZGdlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTg3MiBIRVJNT1NBIERSSVZFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0zMCAgIChoZXgpCQlGVVRVUkUgUExVUyBTWVNURU1TCiswMDUwMzAgICAgIChiYXNlIDE2KQkJRlVUVVJFIFBMVVMgU1lTVEVNUworCQkJCTM2IE9MREUgRU5HTElTSCBSRC4KKwkJCQlCRURGT1JEIE5IIDAzMTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0zMSAgIChoZXgpCQlBRVJPRkxFWCBMQUJPUkFUT1JJRVMsIElOQy4KKzAwNTAzMSAgICAgKGJhc2UgMTYpCQlBRVJPRkxFWCBMQUJPUkFUT1JJRVMsIElOQy4KKwkJCQkzNSBTT1VUSCBTRVJWSUNFIFJPQUQKKwkJCQlQTEFJTlZJRVcgTlkgMTE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTMyICAgKGhleCkJCVBJQ0FaTyBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDA1MDMyICAgICAoYmFzZSAxNikJCVBJQ0FaTyBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTYxIERBR0dFVFQgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMzMgICAoaGV4KQkJTUFZQU4gTkVUV09SS1MKKzAwNTAzMyAgICAgKGJhc2UgMTYpCQlNQVlBTiBORVRXT1JLUworCQkJCTMzNTAgU0NPVFQgQkxWRC4gLSBCTERHLiAjOQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0zNiAgIChoZXgpCQlORVRDQU0sIExURC4KKzAwNTAzNiAgICAgKGJhc2UgMTYpCQlORVRDQU0sIExURC4KKwkJCQk2MDcxIE4uIFBBU0VPIFpBTERJVkFSCisJCQkJVFVDU09OIEFaIDg1NzUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0zNyAgIChoZXgpCQlLT0dBIEVMRUNUUk9OSUNTIENPLgorMDA1MDM3ICAgICAoYmFzZSAxNikJCUtPR0EgRUxFQ1RST05JQ1MgQ08uCisJCQkJNS04LTEwLCBURUhBUkEsIFJJVFRPLUNITworCQkJCUtVUklUQSBHVU4KKwkJCQlTSElHQSwgNDIwLTMwNDcgIAorCQkJCUpBUEFOCisKKzAwLTUwLTM4ICAgKGhleCkJCURBSU4gVEVMRUNPTSBDTy4sIExURC4KKzAwNTAzOCAgICAgKGJhc2UgMTYpCQlEQUlOIFRFTEVDT00gQ08uLCBMVEQuCisJCQkJMk5EIEZsci4sIE9ILVNVTkcgQkxERy4gIzItMjgKKwkJCQlZQU5HSkFFLURPTkcsIFNFT0NITy1HVSBTRU9VTCAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNTAtMzkgICAoaGV4KQkJTUFSSU5FUiBORVRXT1JLUworMDA1MDM5ICAgICAoYmFzZSAxNikJCU1BUklORVIgTkVUV09SS1MKKwkJCQkxNTg1IFMuIE1BTkNIRVNURVIgQVZFLgorCQkJCUFOQUhFSU0gQ0EgOTI4MDItMjkwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtM0EgICAoaGV4KQkJREFUT05HIEVMRUNUUk9OSUNTIExURC4KKzAwNTAzQSAgICAgKGJhc2UgMTYpCQlEQVRPTkcgRUxFQ1RST05JQ1MgTFRELgorCQkJCUNMQVlUT04gV09PRCBDTE9TRQorCQkJCVdFU1QgUEFSSworCQkJCUxlZWRzIExTMTYgNlFFICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC01MC0zQiAgIChoZXgpCQlNRURJQUZJUkUgQ09SUE9SQVRJT04KKzAwNTAzQiAgICAgKGJhc2UgMTYpCQlNRURJQUZJUkUgQ09SUE9SQVRJT04KKwkJCQkxMTMxNyBGUkVERVJJQ0sgQVZFTlVFCisJCQkJQkVMVFNWSUxMRSBNRCAyMDcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtM0MgICAoaGV4KQkJVFNJTkdIVUEgTk9WRUwgRUxFQ1RST05JQ1MKKzAwNTAzQyAgICAgKGJhc2UgMTYpCQlUU0lOR0hVQSBOT1ZFTCBFTEVDVFJPTklDUworCQkJCUNPLiwgTFRELgorCQkJCVJPT00gMTIwNSwgSFVBWUUgQlVJTERJTkcgVFNJTkdIVUEgVU5JVkUKKwkJCQkxMDAwODQgMTAwMDg0IENISU5BCisJCQkJQ0hJTkEKKworMDAtNTAtM0UgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MDNFICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJTS9TLyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTNGICAgKGhleCkJCUFOQ0hPUiBHQU1FUworMDA1MDNGICAgICAoYmFzZSAxNikJCUFOQ0hPUiBHQU1FUworCQkJCTgxNSBQSUxPVCBST0FELCBTdWl0ZSBHCisJCQkJTEFTIFZFR0FTIE5WIDg5MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC00MCAgIChoZXgpCQlQYW5hc29uaWMgRWxlY3RyaWMgV29ya3MgQ28uLCBMdGQuCiswMDUwNDAgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIEVsZWN0cmljIFdvcmtzIENvLiwgTHRkLgorCQkJCVRzdS1GYWN0b3J5LCAxNjY4LCBGdWppa2F0YQorCQkJCVRzdS1zaGkgTWllLWtlbiA1MTQtODU1NQorCQkJCUpBUEFOCisKKzAwLTUwLTQxICAgKGhleCkJCUNvcmV0cm9uaWMgQ29ycG9yYXRpb24KKzAwNTA0MSAgICAgKGJhc2UgMTYpCQlDb3JldHJvbmljIENvcnBvcmF0aW9uCisJCQkJTk8uMTEsIExJIEhTSU4gUkQuCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksgSElTTkNIVQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtNDIgICAoaGV4KQkJU0NJIE1BTlVGQUNUVVJJTkcgU0lOR0FQT1JFIFBURSwgTFRELgorMDA1MDQyICAgICAoYmFzZSAxNikJCVNDSSBNQU5VRkFDVFVSSU5HIFNJTkdBUE9SRSBQVEUsIExURC4KKwkJCQkzIERFUE9UIENMT1NFCisJCQkJU0lOR0FQT1JFIDEwOTg0MCAKKwkJCQlTSU5HQVBPUkUKKworMDAtNTAtNDMgICAoaGV4KQkJTUFSVkVMTCBTRU1JQ09ORFVDVE9SLCBJTkMuCiswMDUwNDMgICAgIChiYXNlIDE2KQkJTUFSVkVMTCBTRU1JQ09ORFVDVE9SLCBJTkMuCisJCQkJNjQ1IEFMTUFOT1IgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC00NCAgIChoZXgpCQlBU0FDQSBDT1JQT1JBVElPTgorMDA1MDQ0ICAgICAoYmFzZSAxNikJCUFTQUNBIENPUlBPUkFUSU9OCisJCQkJNDIwIENPUlBPUkFURSBDSVJDTEUsIFVuaXQgSAorCQkJCUdPTERFTiBDTyA4MDQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNDUgICAoaGV4KQkJUklPV09SS1MgU09MVVRJT05TLCBJTkMuCiswMDUwNDUgICAgIChiYXNlIDE2KQkJUklPV09SS1MgU09MVVRJT05TLCBJTkMuCisJCQkJNEYsIE5PLjI4LCBMQU5FIDU4MworCQkJCUpVSS1LV0FORyBST0FEIFRBSVBFSSwgIDExNDU3CisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLTQ2ICAgKGhleCkJCU1FTklDWCBJTlRFUk5BVElPTkFMIENPLiwgTFRELgorMDA1MDQ2ICAgICAoYmFzZSAxNikJCU1FTklDWCBJTlRFUk5BVElPTkFMIENPLiwgTFRELgorCQkJCU5PLjksIE1JTkcgVFNVTiBST0FECisJCQkJQ0hVVFVORywgSFNJTkNIVQorCQkJCVRBSVdBTiAzMTAgVEFJV0FOIDMxMCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLTQ3ICAgKGhleCkJCVBSSVZBVEUKKzAwNTA0NyAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtNTAtNDggICAoaGV4KQkJSU5GT0xJQlJJQQorMDA1MDQ4ICAgICAoYmFzZSAxNikJCUlORk9MSUJSSUEKKwkJCQk0MTEgV0FWRVJMWSBPQUtTIFJELVNURSAjMzIzCisJCQkJV0FMVEhBTSBNQSAwMjE1NC04NDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC00OSAgIChoZXgpCQlBcmJvciBOZXR3b3JrcyBJbmMKKzAwNTA0OSAgICAgKGJhc2UgMTYpCQlBcmJvciBOZXR3b3JrcyBJbmMKKwkJCQk2IE9tbmkgV2F5CisJCQkJQ2hlbG1zZm9yZCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNEEgICAoaGV4KQkJRUxURUNPIEEuUy4KKzAwNTA0QSAgICAgKGJhc2UgMTYpCQlFTFRFQ08gQS5TLgorCQkJCVJPU0lOU0tBIENFU1RBICBQLk8uIEJPWCBDLTkKKwkJCQkwMTAwMSBaSUxJTkEKKwkJCQlTTE9WQUtJQQorCQkJCVNMT1ZBS0lBCisKKzAwLTUwLTRCICAgKGhleCkJCUJBUkNPTkVUIE4uVi4KKzAwNTA0QiAgICAgKGJhc2UgMTYpCQlCQVJDT05FVCBOLlYuCisJCQkJTFVJUEFBUkRTVFJBQVQgMTIKKwkJCQk4NTAwIEtPUlRSSUpLCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtNTAtNEMgICAoaGV4KQkJR2FsaWwgTW90aW9uIENvbnRyb2wKKzAwNTA0QyAgICAgKGJhc2UgMTYpCQlHYWxpbCBNb3Rpb24gQ29udHJvbAorCQkJCTI3MCBUZWNobm9sb2d5IFdheQorCQkJCVJvY2tsaW4gQ0EgOTU3NjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTREICAgKGhleCkJCVRva3lvIEVsZWN0cm9uIERldmljZSBMaW1pdGVkCiswMDUwNEQgICAgIChiYXNlIDE2KQkJVG9reW8gRWxlY3Ryb24gRGV2aWNlIExpbWl0ZWQKKwkJCQkxLCBIaWdhc2hpa2F0YS1tYWNoaSwgVHN1enVraS1rdSwKKwkJCQlZb2tvaGFtYS1zaGkgS2FuYWdhd2Eta2VuIAorCQkJCUpBUEFOCisKKzAwLTUwLTRFICAgKGhleCkJCVNJRVJSQSBNT05JVE9SIENPUlAuCiswMDUwNEUgICAgIChiYXNlIDE2KQkJU0lFUlJBIE1PTklUT1IgQ09SUC4KKwkJCQkxOTkxIFRBUk9CIENPVVJUCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTRGICAgKGhleCkJCU9MRU5DT00gRUxFQ1RST05JQ1MKKzAwNTA0RiAgICAgKGJhc2UgMTYpCQlPTEVOQ09NIEVMRUNUUk9OSUNTCisJCQkJU09MVEFNIElORFVTVFJJQUwgUEFSSworCQkJCVAuTy4gQk9YIDE5NgorCQkJCVlPS05FQU0gMjA2OTIgIAorCQkJCUlTUkFFTAorCiswMC01MC01MCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwNTAgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNTEgICAoaGV4KQkJSVdBVFNVIEVMRUNUUklDIENPLiwgTFRELgorMDA1MDUxICAgICAoYmFzZSAxNikJCUlXQVRTVSBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQk3LTQxLCBLVUdBWUFNQSAxLUNIT01FCisJCQkJU1VHSU5BTUktS1UsIFRPS1lPIDE2OC04NTAxICAKKwkJCQlKQVBBTgorCiswMC01MC01MiAgIChoZXgpCQlUSUFSQSBORVRXT1JLUywgSU5DLgorMDA1MDUyICAgICAoYmFzZSAxNikJCVRJQVJBIE5FVFdPUktTLCBJTkMuCisJCQkJMTEzIEZPT1JJRVIgQVZFTlVFCisJCQkJRlJFTU9OVCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNTMgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MDUzICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFLVNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNTQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MDU0ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQlNL1MgU0pBLTIKKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNTUgICAoaGV4KQkJRE9NUyBBL1MKKzAwNTA1NSAgICAgKGJhc2UgMTYpCQlET01TIEEvUworCQkJCUZPUk1FUlZBTkdFTiAyOAorCQkJCURLLTI2MDAgR0xPU1RSVVAKKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswMC01MC01NiAgIChoZXgpCQlWTXdhcmUsIEluYy4KKzAwNTA1NiAgICAgKGJhc2UgMTYpCQlWTXdhcmUsIEluYy4KKwkJCQkzNDAxIEhpbGx2aWV3IEF2ZW51ZQorCQkJCVBBTE8gQUxUTyBDQSA5NDMwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNTcgICAoaGV4KQkJQlJPQURCQU5EIEFDQ0VTUyBTWVNURU1TCiswMDUwNTcgICAgIChiYXNlIDE2KQkJQlJPQURCQU5EIEFDQ0VTUyBTWVNURU1TCisJCQkJMjAxIEZPUkVTVCBTVFJFRVQKKwkJCQlNQVJMQk9ST1VHSCBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNTggICAoaGV4KQkJVmVnYVN0cmVhbSBHcm91cCBMaW10ZWQKKzAwNTA1OCAgICAgKGJhc2UgMTYpCQlWZWdhU3RyZWFtIEdyb3VwIExpbXRlZAorCQkJCUFzbWVjIENlbnRyZSwgRWFnbGUgSG91c2UKKwkJCQlUaGUgUmluZworCQkJCUJyYWNrbmVsbCBCZXJrc2hpcmUgUkcxMiAxSEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC01MC01OSAgIChoZXgpCQlpQkFITgorMDA1MDU5ICAgICAoYmFzZSAxNikJCWlCQUhOCisJCQkJMTA3NTcgUy4gUml2ZXIgRnJvbnQgUGFya3dheQorCQkJCVN1aXRlIDMwMAorCQkJCVNvdXRoIEpvcmRhbiBVVCA4NDA5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNUEgICAoaGV4KQkJTkVUV09SSyBBTENIRU1ZLCBJTkMuCiswMDUwNUEgICAgIChiYXNlIDE2KQkJTkVUV09SSyBBTENIRU1ZLCBJTkMuCisJCQkJMTUyMS41IFBBQ0lGSUMgQVZFTlVFCisJCQkJU0FOVEEgQ1JVWiBDQSA5NTA2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNUIgICAoaGV4KQkJS0FXQVNBS0kgTFNJIFUuUy5BLiwgSU5DLgorMDA1MDVCICAgICAoYmFzZSAxNikJCUtBV0FTQUtJIExTSSBVLlMuQS4sIElOQy4KKwkJCQkyNTcwIE5PUlRIRklSU1QgU1RSRUVUCisJCQkJU1VJVEUgIzMwMQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC01QyAgIChoZXgpCQlUVU5ETyBDT1JQT1JBVElPTgorMDA1MDVDICAgICAoYmFzZSAxNikJCVRVTkRPIENPUlBPUkFUSU9OCisJCQkJNyBHSUJPUkVJIElTUkFFTCBTVFJFRVQKKwkJCQlOQVRBTllBIDQyNTA0ICAKKwkJCQlJU1JBRUwKKworMDAtNTAtNUUgICAoaGV4KQkJRElHSVRFSyBNSUNST0xPR0lDIFMuQS4KKzAwNTA1RSAgICAgKGJhc2UgMTYpCQlESUdJVEVLIE1JQ1JPTE9HSUMgUy5BLgorCQkJCVNBTlQgSk9BTiBERSBMQSBTQUxMRSA2CisJCQkJRTA4MDIyIEJBUkNFTE9OQQorCQkJCVNQQUlOCisJCQkJU1BBSU4KKworMDAtNTAtNUYgICAoaGV4KQkJQlJBTkQgSU5OT1ZBVE9SUworMDA1MDVGICAgICAoYmFzZSAxNikJCUJSQU5EIElOTk9WQVRPUlMKKwkJCQlERSBQSU5DSyBBUlQgNTQKKwkJCQk1Njc0IENDIE5VRU5FTiAgCisJCQkJTkVUSEVSTEFORFMKKworMDAtNTAtNjAgICAoaGV4KQkJVEFOREJFUkcgVEVMRUNPTSBBUworMDA1MDYwICAgICAoYmFzZSAxNikJCVRBTkRCRVJHIFRFTEVDT00gQVMKKwkJCQlQaGlsaXAgUGVkZXJzZW5zIHZlaSAyMAorCQkJCTEzNjEgTHlzYWtlciAKKwkJCQlOT1JXQVkKKworMDAtNTAtNjIgICAoaGV4KQkJS09VV0VMTCBFTEVDVFJPTklDUyBDT1JQLiAgKioKKzAwNTA2MiAgICAgKGJhc2UgMTYpCQlLT1VXRUxMIEVMRUNUUk9OSUNTIENPUlAuICAqKgorCQkJCTdGLCBOTy45OSwgTkFOLUtBTkcgUk9BRAorCQkJCVNFQy4gMywgVEFJUEVJCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC02MyAgIChoZXgpCQlPWSBDT01TRUwgU1lTVEVNIEFCCiswMDUwNjMgICAgIChiYXNlIDE2KQkJT1kgQ09NU0VMIFNZU1RFTSBBQgorCQkJCVRFR0VMQlJVS1NHQVRBTiA1LTcKKwkJCQlGSU4tNjUxMDAgVkFTQSAgCisJCQkJRklOTEFORAorCiswMC01MC02NCAgIChoZXgpCQlDQUUgRUxFQ1RST05JQ1MKKzAwNTA2NCAgICAgKGJhc2UgMTYpCQlDQUUgRUxFQ1RST05JQ1MKKwkJCQlQLk8uIEJPWCAxODAwCisJCQkJU1QuIExBVVJFTlQsIFFVRUJFQyBINEwgNFg0ICAKKwkJCQlDQU5BREEKKworMDAtNTAtNjUgICAoaGV4KQkJVERLLUxhbWJkYSBDb3Jwb3JhdGlvbgorMDA1MDY1ICAgICAoYmFzZSAxNikJCVRESy1MYW1iZGEgQ29ycG9yYXRpb24KKwkJCQkzNi0xIEthc3VtaW5vc2F0bworCQkJCUFtaS1NYWNoaSBJbmFzaGlraS1HdW4gSWJhcmFraSwgMzAwLTAzOTYKKwkJCQlKQVBBTgorCiswMC01MC02NiAgIChoZXgpCQlBdGVjb00gR21iSCBhZHZhbmNlZCB0ZWxlY29tdW5pY2F0aW9uIG1vZHVsZXMKKzAwNTA2NiAgICAgKGJhc2UgMTYpCQlBdGVjb00gR21iSCBhZHZhbmNlZCB0ZWxlY29tdW5pY2F0aW9uIG1vZHVsZXMKKwkJCQlLQUlTRVJTVFIuIDEwMAorCQkJCUQtNTIxMzQgSEVSWk9HRU5SQVRIICAKKwkJCQlHRVJNQU5ZCisKKzAwLTUwLTY3ICAgKGhleCkJCUFFUk9DT01NLCBJTkMuCiswMDUwNjcgICAgIChiYXNlIDE2KQkJQUVST0NPTU0sIElOQy4KKwkJCQkxMzI1NiBXLiA5OFRIIFNUUkVFVAorCQkJCUxFTkVYQSBLUyA2NjIxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNjggICAoaGV4KQkJRUxFQ1RST05JQyBJTkRVU1RSSUVTIEFTU09DSUFUSU9OCiswMDUwNjggICAgIChiYXNlIDE2KQkJRUxFQ1RST05JQyBJTkRVU1RSSUVTIEFTU09DSUFUSU9OCisJCQkJMjUwMCBXSUxTT04gQkxWRC4KKwkJCQlBUkxJTkdUT04gVkEgMjIyMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTY5ICAgKGhleCkJCVBpeFN0cmVhbSBJbmNvcnBvcmF0ZWQKKzAwNTA2OSAgICAgKGJhc2UgMTYpCQlQaXhTdHJlYW0gSW5jb3Jwb3JhdGVkCisJCQkJMTgwIENPTFVNQklBIFNULiBXLgorCQkJCVdBVEVSTE9PCisJCQkJT250YXJpbyBOMkwgM0wzICAKKwkJCQlDQU5BREEKKworMDAtNTAtNkEgICAoaGV4KQkJRURFVkEsIElOQy4KKzAwNTA2QSAgICAgKGJhc2UgMTYpCQlFREVWQSwgSU5DLgorCQkJCTI5OCBTLiBTVU5OWVZBTEUgQVZFLiAtICMyMDgKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTZCICAgKGhleCkJCVNQWC1BVEVHCiswMDUwNkIgICAgIChiYXNlIDE2KQkJU1BYLUFURUcKKwkJCQk4MDIgUy4gTUFJTiBTVFJFRVQKKwkJCQlXQVlMQU5EIE1JIDQ5MzQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC02QyAgIChoZXgpCQlCZWlqZXIgRWxlY3Ryb25pY3MgUHJvZHVjdHMgQUIKKzAwNTA2QyAgICAgKGJhc2UgMTYpCQlCZWlqZXIgRWxlY3Ryb25pY3MgUHJvZHVjdHMgQUIKKwkJCQlCb3ggNDI2CisJCQkJU0UtMjAxIDI0IE1hbG1vZSAKKwkJCQlTV0VERU4KKworMDAtNTAtNkQgICAoaGV4KQkJVklERU9KRVQgU1lTVEVNUworMDA1MDZEICAgICAoYmFzZSAxNikJCVZJREVPSkVUIFNZU1RFTVMKKwkJCQlJTlRFUk5BVElPTkFMIElOQy4KKwkJCQkxNTAwIE1JVFRFTCBCTFZELgorCQkJCVdPT0REQUxFIElMIDYwMDkxLTEwNzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTZFICAgKGhleCkJCUNPUkRFUiBFTkdJTkVFUklORyBDT1JQT1JBVElPTgorMDA1MDZFICAgICAoYmFzZSAxNikJCUNPUkRFUiBFTkdJTkVFUklORyBDT1JQT1JBVElPTgorCQkJCTE1MSBLQUxNVVMgRFJJVkUgLSBTVEUgI0ExMDMKKwkJCQlDT1NUQSBNRVNBIENBIDkyNjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC02RiAgIChoZXgpCQlHLUNPTk5FQ1QKKzAwNTA2RiAgICAgKGJhc2UgMTYpCQlHLUNPTk5FQ1QKKwkJCQlQLk8uIEJPWCAyMjAwCisJCQkJSEVSWkxJWUEgNDYxMjAgIAorCQkJCUlTUkFFTAorCiswMC01MC03MCAgIChoZXgpCQlDSEFJTlRFQ0ggQ09NUFVURVIgQ08uLCBMVEQuCiswMDUwNzAgICAgIChiYXNlIDE2KQkJQ0hBSU5URUNIIENPTVBVVEVSIENPLiwgTFRELgorCQkJCTVUSCBGLCBBTExFWSAyLCBMQU5FIDIyMgorCQkJCUxJRU4tQ0hFTkcgUkQuLCBDSFVORy1ITyBUQUlQRUktSFNJRU4KKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC03MSAgIChoZXgpCQlBSVdBIENPLiwgTFRELgorMDA1MDcxICAgICAoYmFzZSAxNikJCUFJV0EgQ08uLCBMVEQuCisJCQkJMS0xMSwgS0FNSVRPTUFUU1VSSSA0LUNIT01FCisJCQkJVVRTVU5PTUlZQS1TSEksIFRPQ0hJR0ktS0VOIDMyMC04NSAgCisJCQkJSkFQQU4KKworMDAtNTAtNzIgICAoaGV4KQkJQ09SVklTIENPUlBPUkFUSU9OCiswMDUwNzIgICAgIChiYXNlIDE2KQkJQ09SVklTIENPUlBPUkFUSU9OCisJCQkJODMyMCBHVUlMRk9SRCBST0FECisJCQkJQ09MVU1CSUEgTUQgMjEwNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTczICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNTA3MyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCU0vUyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTc0ICAgKGhleCkJCUFEVkFOQ0VEIEhJLVRFQ0ggQ09SUC4KKzAwNTA3NCAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBISS1URUNIIENPUlAuCisJCQkJMTk5MCBFQVNUIEdSQU5EIEFWRS4KKwkJCQlFTCBTRUdVTkRPIENBIDkwNTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC03NSAgIChoZXgpCQlLRVNUUkVMIFNPTFVUSU9OUworMDA1MDc1ICAgICAoYmFzZSAxNikJCUtFU1RSRUwgU09MVVRJT05TCisJCQkJMjM3MCBDSEFSTEVTVE9OIFJPQUQKKwkJCQlNVC4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNzYgICAoaGV4KQkJSUJNIENvcnAKKzAwNTA3NiAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQIE8gQm94IDEyMTk1CisJCQkJUmVlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTc3ICAgKGhleCkJCVBST0xJRklDIFRFQ0hOT0xPR1ksIElOQy4KKzAwNTA3NyAgICAgKGJhc2UgMTYpCQlQUk9MSUZJQyBURUNITk9MT0dZLCBJTkMuCisJCQkJNkYgMSwgTEFORSA1MSwgU0VDIDEKKwkJCQlOQU4tQ0hBTiBST0FEIFRBSVBFSQorCQkJCTEwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtNzggICAoaGV4KQkJTUVHQVRPTiBIT1VTRSwgTFRELgorMDA1MDc4ICAgICAoYmFzZSAxNikJCU1FR0FUT04gSE9VU0UsIExURC4KKwkJCQlaSVA6IDIyNCBOTy4xLTMtNSBOQUtBTUFDSElCQUkKKwkJCQlUU1VEVUtJIFdBUkQKKwkJCQlZT0tPSEFNQSAgCisJCQkJSkFQQU4KKworMDAtNTAtNzkgICAoaGV4KQkJUFJJVkFURQorMDA1MDc5ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC01MC03QSAgIChoZXgpCQlYUEVFRCwgSU5DLgorMDA1MDdBICAgICAoYmFzZSAxNikJCVhQRUVELCBJTkMuCisJCQkJNDY5OSBPTEQgSVJPTlNJREVTIERSSVZFCisJCQkJU1VJVEUgIzMwMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC03QiAgIChoZXgpCQlNRVJMT1QgQ09NTVVOSUNBVElPTlMKKzAwNTA3QiAgICAgKGJhc2UgMTYpCQlNRVJMT1QgQ09NTVVOSUNBVElPTlMKKwkJCQlCRVJLU0hJUkUgQ09SUE9SQVRFIFBBUksKKwkJCQk0IEJFUktTSElSRSBCTFZELgorCQkJCUJFVEhFTCBDVCAwNjgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtN0MgICAoaGV4KQkJVklERU9DT04gQUcKKzAwNTA3QyAgICAgKGJhc2UgMTYpCQlWSURFT0NPTiBBRworCQkJCUFMQkVSVC1TQ0hXRUlUWkVSLVNUUi4gNjQKKwkJCQlELTgxNzM1IE1VTklDSAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTUwLTdEICAgKGhleCkJCUlGUAorMDA1MDdEICAgICAoYmFzZSAxNikJCUlGUAorCQkJCUxFU1NJTkdTVFIuIDQKKwkJCQlELTc4MzE1IFJBRE9MRlpFTEwgIAorCQkJCUdFUk1BTlkKKworMDAtNTAtN0UgICAoaGV4KQkJTkVXRVIgVEVDSE5PTE9HWQorMDA1MDdFICAgICAoYmFzZSAxNikJCU5FV0VSIFRFQ0hOT0xPR1kKKwkJCQk0ODQ4IFdFU1QgSVJWSU5HIFNULgorCQkJCVdJQ0hJVEEgS1MgNjcyMDktMjYyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtN0YgICAoaGV4KQkJRHJheVRlayBDb3JwLgorMDA1MDdGICAgICAoYmFzZSAxNikJCURyYXlUZWsgQ29ycC4KKwkJCQkyNiwgRnVzaGluZyBSZC4KKwkJCQlIc2luY2h1IEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgSHVrb3UgMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC04MCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwODAgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCU0vUyBTSkEtMgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC04MSAgIChoZXgpCQlNVVJBVEEgTUFDSElORVJZLCBMVEQuCiswMDUwODEgICAgIChiYXNlIDE2KQkJTVVSQVRBIE1BQ0hJTkVSWSwgTFRELgorCQkJCTEzNiwgVEFLRURBLU1VS0FJU0hJUk8tQ0hPCisJCQkJRlVTSElNSS1LVSwgS1lPVE8gNjEyLTg2ODYgIAorCQkJCUpBUEFOCisKKzAwLTUwLTgyICAgKGhleCkJCUZPUkVTU09OIENPUlBPUkFUSU9OCiswMDUwODIgICAgIChiYXNlIDE2KQkJRk9SRVNTT04gQ09SUE9SQVRJT04KKwkJCQkzRiwgTk8uOSBTRUMuMQorCQkJCUNIQU5HIEFOIEVBU1QgUk9BRAorCQkJCVRBSVBFSSAxMDQwNCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC04MyAgIChoZXgpCQlHSUxCQVJDTywgSU5DLgorMDA1MDgzICAgICAoYmFzZSAxNikJCUdJTEJBUkNPLCBJTkMuCisJCQkJUE9CIDIyMDg3CisJCQkJR1JFRU5TQk9STyBOQyAyNzQyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtODQgICAoaGV4KQkJQVRMIFBST0RVQ1RTCiswMDUwODQgICAgIChiYXNlIDE2KQkJQVRMIFBST0RVQ1RTCisJCQkJMjgwMSBLRUxWSU4gQVZFTlVFCisJCQkJSVJWSU5FIENBIDkyNjE0LTU4NzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTg2ICAgKGhleCkJCVRFTEtPTSBTQSwgTFRELgorMDA1MDg2ICAgICAoYmFzZSAxNikJCVRFTEtPTSBTQSwgTFRELgorCQkJCVRFTEtPTSBMQUJPUkFUT1JZCisJCQkJUC4gQkFHIFg3NAorCQkJCVBSRVRPUklBICAKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtNTAtODcgICAoaGV4KQkJVEVSQVNBS0kgRUxFQ1RSSUMgQ08uLCBMVEQuCiswMDUwODcgICAgIChiYXNlIDE2KQkJVEVSQVNBS0kgRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJNy0yLTEwIEhBTk5BTi1DSE8gQUJFTk8tS1UKKwkJCQlPU0FLQSwgNTQ1LTAwMjEgIAorCQkJCUpBUEFOCisKKzAwLTUwLTg4ICAgKGhleCkJCUFNQU5PIENPUlBPUkFUSU9OCiswMDUwODggICAgIChiYXNlIDE2KQkJQU1BTk8gQ09SUE9SQVRJT04KKwkJCQkyNzUsIE1BTUVETy1DSE8KKwkJCQlLT1VIT0tVLUtVLCBZT0tPSEFNQQorCQkJCTIyMi04NTU4ICAKKwkJCQlKQVBBTgorCiswMC01MC04OSAgIChoZXgpCQlTQUZFVFkgTUFOQUdFTUVOVCBTWVNURU1TCiswMDUwODkgICAgIChiYXNlIDE2KQkJU0FGRVRZIE1BTkFHRU1FTlQgU1lTVEVNUworCQkJCUJSQU5ERVJJSlNUUkFBVCA2CisJCQkJNTIyMyBBUyAnUy1IRVJUT0dFTkJPU0NIJyAgTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC01MC04QiAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzAwNTA4QiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtOEMgICAoaGV4KQkJUlNJIFNZU1RFTVMKKzAwNTA4QyAgICAgKGJhc2UgMTYpCQlSU0kgU1lTVEVNUworCQkJCTU1NTUgVy4gNzhUSCBTVFJFRVQsIFN1aXRlIEYKKwkJCQlFRElOQSBNTiA1NTQzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtOEQgICAoaGV4KQkJQUJJVCBDT01QVVRFUiBDT1JQT1JBVElPTgorMDA1MDhEICAgICAoYmFzZSAxNikJCUFCSVQgQ09NUFVURVIgQ09SUE9SQVRJT04KKwkJCQkzRi03LCBOTy4gNzksIFNFQy4xCisJCQkJSFNJTiBUQUkgV1UgUk9BRCwgSFNJIENISQorCQkJCVRBSVBFSSBIU0lFTiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC04RSAgIChoZXgpCQlPUFRJTUFUSU9OLCBJTkMuCiswMDUwOEUgICAgIChiYXNlIDE2KQkJT1BUSU1BVElPTiwgSU5DLgorCQkJCVAuTy4gQk9YIDE0MzU3CisJCQkJSFVOVFNWSUxMRSBBTCAzNTgxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtOEYgICAoaGV4KQkJQVNJVEEgVEVDSE5PTE9HSUVTIElOVCdMIExURC4KKzAwNTA4RiAgICAgKGJhc2UgMTYpCQlBU0lUQSBURUNITk9MT0dJRVMgSU5UJ0wgTFRELgorCQkJCVVOSVQgMiBCQUxMWUJSSVQgQlVTSU5FU1MgUEFSSworCQkJCUdBTFdBWQorCQkJCUlSRUxBTkQKKworMDAtNTAtOTAgICAoaGV4KQkJRENUUkkKKzAwNTA5MCAgICAgKGJhc2UgMTYpCQlEQ1RSSQorCQkJCU5PLjQwIFhVRSBZVUFOIFJECisJCQkJSEFJRElBTiBESVNUUklDVCBCRUlKSU5HLCAxMDAwODMsIFAuUi4KKwkJCQlDSElOQQorCQkJCUNISU5BCisKKzAwLTUwLTkxICAgKGhleCkJCU5FVEFDQ0VTUywgSU5DLgorMDA1MDkxICAgICAoYmFzZSAxNikJCU5FVEFDQ0VTUywgSU5DLgorCQkJCTE4IEtFRVdBWURJTiBEUklWRQorCQkJCVNBTEVNIE5IIDAzMDc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC05MiAgIChoZXgpCQlSSUdBS1UgSU5EVVNUUklBTCBDT1JQT1JBVElPTgorMDA1MDkyICAgICAoYmFzZSAxNikJCVJJR0FLVSBJTkRVU1RSSUFMIENPUlBPUkFUSU9OCisJCQkJMTQtOCBBS0FPSkktQ0hPCisJCQkJVEFLQVRTVUtJLVNISSwgT1NBS0EgNTY5LTExNDYgIAorCQkJCUpBUEFOCisKKzAwLTUwLTkzICAgKGhleCkJCUJPRUlORworMDA1MDkzICAgICAoYmFzZSAxNikJCUJPRUlORworCQkJCTMzNzAgTWlyYWxvbWEgQXZlbnVlCisJCQkJQW5haGVpbSBDQSA5MjgwMy0zMTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC05NCAgIChoZXgpCQlQQUNFIHBsYworMDA1MDk0ICAgICAoYmFzZSAxNikJCVBBQ0UgcGxjCisJCQkJVklDVE9SSUEgUkQsIFNBTFRBSVJFCisJCQkJU0hJUExFWSwgVy4gWU9SS1NISVJFIEJSQURGT1JEICBCRDI4IDNMRgorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC01MC05NSAgIChoZXgpCQlQRVJBQ09NIE5FVFdPUktTCiswMDUwOTUgICAgIChiYXNlIDE2KQkJUEVSQUNPTSBORVRXT1JLUworCQkJCTEzMDAwIFdFU1RPTiBQQVJLV0FZCisJCQkJU1VJVEUgIzEwNQorCQkJCUNBUlkgTkMgMjc1MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTk2ICAgKGhleCkJCVNBTElYIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA1MDk2ICAgICAoYmFzZSAxNikJCVNBTElYIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTkwNCBXSU5EIFJJVkVSIExBTkUtIFNURS4gIzEwMQorCQkJCUdBSVRIRVJTQlVSRyBNRCAyMDg3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtOTcgICAoaGV4KQkJTU1DLUVNQkVEREVEIENPTVBVVEVSVEVDSE5JSyBHbWJICiswMDUwOTcgICAgIChiYXNlIDE2KQkJTU1DLUVNQkVEREVEIENPTVBVVEVSVEVDSE5JSyBHbWJICisJCQkJVUxSSUNIU0JFUkdFUlNUUi4gMTcKKwkJCQlELTk0NDY5IERFR0dFTkRPUkYgIAorCQkJCUdFUk1BTlkKKworMDAtNTAtOTggICAoaGV4KQkJR0xPQkFMT09QLCBMVEQuCiswMDUwOTggICAgIChiYXNlIDE2KQkJR0xPQkFMT09QLCBMVEQuCisJCQkJMTIgSEFTSEFST04gUk9BRAorCQkJCUtGQVIgU0FCQSA0NDI2OSAgCisJCQkJSVNSQUVMCisKKzAwLTUwLTk5ICAgKGhleCkJCTNDT00gRVVST1BFLCBMVEQuCiswMDUwOTkgICAgIChiYXNlIDE2KQkJM0NPTSBFVVJPUEUsIExURC4KKwkJCQlCT1VOREFSWSBXQVkKKwkJCQlIRU1FTCBIRU1QU1RFQUQKKwkJCQlIRVJUUy4gSFAyIDdZVSAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNTAtOUEgICAoaGV4KQkJVEFHIEVMRUNUUk9OSUMgU1lTVEVNUworMDA1MDlBICAgICAoYmFzZSAxNikJCVRBRyBFTEVDVFJPTklDIFNZU1RFTVMKKwkJCQlHRU5FU0lTIEJVU0lORVNTIFBBUksKKwkJCQlBbGJlcnQgRHJpdmUKKwkJCQlXT0tJTkcsIFNVUlJFWSBHVTIxIDVSVyAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNTAtOUIgICAoaGV4KQkJU1dJVENIQ09SRSBBQgorMDA1MDlCICAgICAoYmFzZSAxNikJCVNXSVRDSENPUkUgQUIKKwkJCQlQT1NJVElPTkVOIDE1MworCQkJCTExNSA3NCBTVE9DS0hPTE0KKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtNTAtOUMgICAoaGV4KQkJQkVUQSBSRVNFQVJDSAorMDA1MDlDICAgICAoYmFzZSAxNikJCUJFVEEgUkVTRUFSQ0gKKwkJCQlCRVRBU1RSLiAxCisJCQkJODU3NzQgVU5URVJGT0VIUklORyAgCisJCQkJR0VSTUFOWQorCiswMC01MC05RCAgIChoZXgpCQlUSEUgSU5EVVNUUkVFIEIuVi4KKzAwNTA5RCAgICAgKGJhc2UgMTYpCQlUSEUgSU5EVVNUUkVFIEIuVi4KKwkJCQlQLk8uIEJPWCA0NjIKKwkJCQk1NjAwIEFMIEVJTkRIT1ZFTgorCQkJCVRIRSBORVRIRVJMQU5EUworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTUwLTlFICAgKGhleCkJCUxlcyBUZWNobm9sb2dpZXMgU29mdEFjb3VzdGlrIEluYy4KKzAwNTA5RSAgICAgKGJhc2UgMTYpCQlMZXMgVGVjaG5vbG9naWVzIFNvZnRBY291c3RpayBJbmMuCisJCQkJCisJCQkJMzkwLCBSVUUgU0FJTlQtVkFMTElFUiBFU1QsIDR0aCBmbG9vcgorCQkJCVF1ZWJlYyBHMUsgIDNQNiAgCisJCQkJQ0FOQURBCisKKzAwLTUwLTlGICAgKGhleCkJCUhPUklaT04gQ09NUFVURVIKKzAwNTA5RiAgICAgKGJhc2UgMTYpCQlIT1JJWk9OIENPTVBVVEVSCisJCQkJVFJJTklUWSBCTERHLiA0LTIyLTcKKwkJCQlOSVNISS1BWkFCVSwgTUlOQVRPLUtVCisJCQkJIFRPS1lPIDEwNiAgCisJCQkJSkFQQU4KKworMDAtNTAtQTAgICAoaGV4KQkJREVMVEEgQ09NUFVURVIgU1lTVEVNUywgSU5DLgorMDA1MEEwICAgICAoYmFzZSAxNikJCURFTFRBIENPTVBVVEVSIFNZU1RFTVMsIElOQy4KKwkJCQkxMTcxOSBORSA5NVRIIFNUUkVFVCAtIFNURS4KKwkJCQlWQU5DT1VWRVIgV0EgOTg2ODItMjQ0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQTEgICAoaGV4KQkJQ0FSTE8gR0FWQVpaSSwgSU5DLgorMDA1MEExICAgICAoYmFzZSAxNikJCUNBUkxPIEdBVkFaWkksIElOQy4KKwkJCQkyMjIgUEVOTkJSSUdIVCBEUi4gLSBTVEUuIzIxMAorCQkJCUhPVVNUT04gVFggNzcwOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUEyICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNTBBMiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRSAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQTMgICAoaGV4KQkJVHJhbnNNZWRpYSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDA1MEEzICAgICAoYmFzZSAxNikJCVRyYW5zTWVkaWEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyMCBHUkVBVCBPQUtTIEJMVkQuLCAjMjEwCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUE0ICAgKGhleCkJCUlPIFRFQ0gsIElOQy4KKzAwNTBBNCAgICAgKGJhc2UgMTYpCQlJTyBURUNILCBJTkMuCisJCQkJMjU5NzEgQ0FOTk9OIFJPQUQKKwkJCQlDTEVWRUxBTkQgT0ggNDQxNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUE1ICAgKGhleCkJCUNBUElUT0wgQlVTSU5FU1MgU1lTVEVNUywgTFRELgorMDA1MEE1ICAgICAoYmFzZSAxNikJCUNBUElUT0wgQlVTSU5FU1MgU1lTVEVNUywgTFRELgorCQkJCTQzLzQ0IFJJVkVSU0lERQorCQkJCVNJUiBUSE9NQVMgTE9OR0xFWSBST0FECisJCQkJUk9DSEVTVEVSLCBLRU5UIEVuZ2xhbmQgTUUyIDREUCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC01MC1BNiAgIChoZXgpCQlPUFRST05JQ1MKKzAwNTBBNiAgICAgKGJhc2UgMTYpCQlPUFRST05JQ1MKKwkJCQkxNzUgQ1JFTU9OQSBEUklWRQorCQkJCUdPTEVUQSBDQSA5MzExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQTcgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MEE3ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJTS9TIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQTggICAoaGV4KQkJT3BlbkNvbiBTeXN0ZW1zLCBJbmMuCiswMDUwQTggICAgIChiYXNlIDE2KQkJT3BlbkNvbiBTeXN0ZW1zLCBJbmMuCisJCQkJMzc3IEhPRVMgTEFORQorCQkJCVBJU0NBVEFXQVkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUE5ICAgKGhleCkJCU1PTERBVCBXSVJFTEVTUyBURUNITk9MR0lFUworMDA1MEE5ICAgICAoYmFzZSAxNikJCU1PTERBVCBXSVJFTEVTUyBURUNITk9MR0lFUworCQkJCTMgU0hJTU9OIElTUkFFTEkgU1RSRUVUCisJCQkJUklTSE9OIExFIFpJT04gNzU2NTQKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtNTAtQUEgICAoaGV4KQkJS09OSUNBIE1JTk9MVEEgSE9MRElOR1MsIElOQy4KKzAwNTBBQSAgICAgKGJhc2UgMTYpCQlLT05JQ0EgTUlOT0xUQSBIT0xESU5HUywgSU5DLgorCQkJCTEtNi0xLCBNYXJ1bm91Y2hpLAorCQkJCUNoaXlvZGEta3UKKwkJCQlUb2t5byAgMTAwLTAwMDUKKwkJCQlKQVBBTgorCiswMC01MC1BQiAgIChoZXgpCQlOQUxURUMsIEluYy4KKzAwNTBBQiAgICAgKGJhc2UgMTYpCQlOQUxURUMsIEluYy4KKwkJCQkxLTEtMTUsIE5ha2Fub2dvLCBTaGltaXp1LWt1CisJCQkJU2hpenVva2Etc2hpIFNoaXp1b2thIDQyNC0wODg4CisJCQkJSkFQQU4KKworMDAtNTAtQUMgICAoaGV4KQkJTUFQTEUgQ09NUFVURVIgQ09SUE9SQVRJT04KKzAwNTBBQyAgICAgKGJhc2UgMTYpCQlNQVBMRSBDT01QVVRFUiBDT1JQT1JBVElPTgorCQkJCTJGLCBOTy4gMTg0LCBTRUMuIDIKKwkJCQlDSEFORy1BTiBFLiBSRC4KKwkJCQlUYWlwZWkgIAorCQkJCVRBSklLSVNUQU4KKworMDAtNTAtQUQgICAoaGV4KQkJQ29tbVVuaXF1ZSBXaXJlbGVzcyBDb3JwLgorMDA1MEFEICAgICAoYmFzZSAxNikJCUNvbW1VbmlxdWUgV2lyZWxlc3MgQ29ycC4KKwkJCQkxMDcwIE1BUklOQSBWSUxMQUdFIFBBUktXQVkKKwkJCQlTVUlURSAjMjA2CisJCQkJQUxBTUVEQSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQUUgICAoaGV4KQkJSVdBS0kgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCiswMDUwQUUgICAgIChiYXNlIDE2KQkJSVdBS0kgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJMSwgS0FNQU5PTUFFCisJCQkJSk9CQU4tS0FNSVlVTkFHQVlBLU1BQ0hJCisJCQkJSVdBS0ktQ0lUWSwgRlVLVVNISU1BIDk3Mi04MzIyIDk3Mi04MzIyIAorCQkJCUpBUEFOCisKKzAwLTUwLUFGICAgKGhleCkJCUlOVEVSR09OLCBJTkMuCiswMDUwQUYgICAgIChiYXNlIDE2KQkJSU5URVJHT04sIElOQy4KKwkJCQk1ODAwIFJBTkNIRVNURVIgRFJJVkUKKwkJCQlIT1VTVE9OIFRYIDc3MDM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1CMCAgIChoZXgpCQlURUNITk9MT0dZIEFUTEFOVEEgQ09SUE9SQVRJT04KKzAwNTBCMCAgICAgKGJhc2UgMTYpCQlURUNITk9MT0dZIEFUTEFOVEEgQ09SUE9SQVRJT04KKwkJCQk1MDAgU3VnYXIgTWlsbCBSb2FkCisJCQkJU3VpdGUgMjAyQQorCQkJCUF0bGFudGEgR0EgMzAzNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUIxICAgKGhleCkJCUdJRERJTkdTICYgTEVXSVMKKzAwNTBCMSAgICAgKGJhc2UgMTYpCQlHSURESU5HUyAmIExFV0lTCisJCQkJNjYwIFMuIE1JTElUQVJZIFJELgorCQkJCUZPTkQgRFUgTEFDIFdJIDU0OTM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1CMiAgIChoZXgpCQlCUk9ERUwgQVVUT01BVElPTgorMDA1MEIyICAgICAoYmFzZSAxNikJCUJST0RFTCBBVVRPTUFUSU9OCisJCQkJRGlzdGVsYnVzY2ggMjQKKwkJCQk0MjU0OSBWZWxiZXJ0IAorCQkJCUdFUk1BTlkKKworMDAtNTAtQjMgICAoaGV4KQkJVk9JQ0VCT0FSRCBDT1JQT1JBVElPTgorMDA1MEIzICAgICAoYmFzZSAxNikJCVZPSUNFQk9BUkQgQ09SUE9SQVRJT04KKwkJCQkzMTUxIFdFU1QgRklGVEggU1RSRUVUCisJCQkJT1hOQVJEIENBIDkzMDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1CNCAgIChoZXgpCQlTQVRDSFdFTEwgQ09OVFJPTCBTWVNURU1TLCBMVEQKKzAwNTBCNCAgICAgKGJhc2UgMTYpCQlTQVRDSFdFTEwgQ09OVFJPTCBTWVNURU1TLCBMVEQKKwkJCQlQLk8uIEJPWCA1NywgIDk0IEZBUk5IQU0gUk9BRAorCQkJCVNMT1VHSCwKKwkJCQlCRVJLU0hJUkUgU0wxIDRVSCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNTAtQjUgICAoaGV4KQkJRklDSEVULUJBVUNIRQorMDA1MEI1ICAgICAoYmFzZSAxNikJCUZJQ0hFVC1CQVVDSEUKKwkJCQkxNS0xNyBBVkUuIE1PUkFORS1TQVVMTklFUgorCQkJCTc4MTQwIFZFTElaWQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC01MC1CNiAgIChoZXgpCQlHT09EIFdBWSBJTkQuIENPLiwgTFRELgorMDA1MEI2ICAgICAoYmFzZSAxNikJCUdPT0QgV0FZIElORC4gQ08uLCBMVEQuCisJCQkJNUYsIE5PLjgsIEFMTEVZIDYsCisJCQkJTEFORSA0NSBQQU8tSFNJTiBSRC4tSFNJTiBUSUVOIFRBSVBFSSBIUworCQkJCVRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLUI3ICAgKGhleCkJCUJPU0VSIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDUwQjcgICAgIChiYXNlIDE2KQkJQk9TRVIgVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQkxNUYtNiwgNzcgSFNJTiBUQUkgV1UgUk9BRAorCQkJCVNFQy4gMSwgSFNJLUNISQorCQkJCVRBSVBFSSBIU0lFTiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC1COCAgIChoZXgpCQlJTk9WQSBDT01QVVRFUlMgR01CSCAmIENPLiBLRworMDA1MEI4ICAgICAoYmFzZSAxNikJCUlOT1ZBIENPTVBVVEVSUyBHTUJIICYgQ08uIEtHCisJCQkJU1VERVRFTlNUUkFTU0UgNQorCQkJCTg3NjAwIEtBVUZCRVVSRU4gIAorCQkJCUdFUk1BTlkKKworMDAtNTAtQjkgICAoaGV4KQkJWElUUk9OIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA1MEI5ICAgICAoYmFzZSAxNikJCVhJVFJPTiBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk2Mjk1LUQgRkVSUklTIFNRVUFSRQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQkEgICAoaGV4KQkJRC1MSU5LCiswMDUwQkEgICAgIChiYXNlIDE2KQkJRC1MSU5LCisJCQkJMkYsIE5PLiAyMzNMLTIsIFBBTy1DSElBTyBSRC4KKwkJCQlIc2luLVRpZW4gMjMxCisJCQkJVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLUJCICAgKGhleCkJCUNNUyBURUNITk9MT0dJRVMKKzAwNTBCQiAgICAgKGJhc2UgMTYpCQlDTVMgVEVDSE5PTE9HSUVTCisJCQkJMTM5NTUgRkFSTUlOR1RPTiBSQU9ECisJCQkJTElWT05JQSBNSSA0ODE1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQkMgICAoaGV4KQkJSEFNTUVSIFNUT1JBR0UgU09MVVRJT05TCiswMDUwQkMgICAgIChiYXNlIDE2KQkJSEFNTUVSIFNUT1JBR0UgU09MVVRJT05TCisJCQkJODQ1MCBDRU5UUkFMIEFWRU5VRQorCQkJCU5FV0FSSyBDQSA5NDU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQkQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MEJEICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1CRSAgIChoZXgpCQlGQVNUIE1VTFRJTUVESUEgQUcKKzAwNTBCRSAgICAgKGJhc2UgMTYpCQlGQVNUIE1VTFRJTUVESUEgQUcKKwkJCQlSVUVERVNIRUlNRVJTVFIuIDExLTEzCisJCQkJODA2ODYgTVVOSUNIICAKKwkJCQlHRVJNQU5ZCisKKzAwLTUwLUJGICAgKGhleCkJCU1ldGFsbGlnZW5jZSBUZWNobm9sb2d5IENvcnAuCiswMDUwQkYgICAgIChiYXNlIDE2KQkJTWV0YWxsaWdlbmNlIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQlOTy45LCBQQVJLIEFWRU5VRSBJSQorCQkJCVNDSUVOQ0UtQkFTRSBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOLUNIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC1DMCAgIChoZXgpCQlHQVRBTiwgSU5DLgorMDA1MEMwICAgICAoYmFzZSAxNikJCUdBVEFOLCBJTkMuCisJCQkJNTkzMyBDT1JPTkFETyBMQU5FCisJCQkJUExFQVNBTlRPTiBDQSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQzEgICAoaGV4KQkJR0VNRkxFWCBORVRXT1JLUywgTFRELgorMDA1MEMxICAgICAoYmFzZSAxNikJCUdFTUZMRVggTkVUV09SS1MsIExURC4KKwkJCQkyMzAtNjY1MSBGUkFTRVJXT09EIFBMLgorCQkJCVJJQ0hNT05ELCBCLkMuCisJCQkJQ0FOQURBIFY2VyAxSjMKKwkJCQlDQU5BREEKKworMDAtNTAtQzIgICAoaGV4KQkJSUVFRSBSRUdJU1RSQVRJT04gQVVUSE9SSVRZCiswMDUwQzIgICAgIChiYXNlIDE2KQkJSUVFRSBSRUdJU1RSQVRJT04gQVVUSE9SSVRZCisJCQkJNDQ1IEhPRVMgTEFORQorCQkJCVBJU0NBVEFXQVkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUM0ICAgKGhleCkJCUlNRAorMDA1MEM0ICAgICAoYmFzZSAxNikJCUlNRAorCQkJCUhFUkJTVFJBU1NFIDgKKwkJCQlELTgyMTc4IFBVQ0hIRUlNICAKKwkJCQlHRVJNQU5ZCisKKzAwLTUwLUM1ICAgKGhleCkJCUFEUyBUZWNobm9sb2dpZXMsIEluYworMDA1MEM1ICAgICAoYmFzZSAxNikJCUFEUyBUZWNobm9sb2dpZXMsIEluYworCQkJCTEyNjI3IEhpZGRlbmNyZWVrIFdheQorCQkJCUNlcnJpdG9zIENBIDkwNzAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1DNiAgIChoZXgpCQlMT09QIFRFTEVDT01NVU5JQ0FUSU9OIElOVEVSTkFUSU9OQUwsIElOQy4KKzAwNTBDNiAgICAgKGJhc2UgMTYpCQlMT09QIFRFTEVDT01NVU5JQ0FUSU9OIElOVEVSTkFUSU9OQUwsIElOQy4KKwkJCQkyRiwgTk8uIDIyLCBQUk9TUEVSSVRZIFJELiAyCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIU0lOQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLUM4ICAgKGhleCkJCSBBZGRvbmljcyBUZWNobm9sb2dpZXMsIEluYy4KKzAwNTBDOCAgICAgKGJhc2UgMTYpCQkgQWRkb25pY3MgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTkxOCBKdW5jdGlvbiBBdmUuLAorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1DOSAgIChoZXgpCQlNQVNQUk8gREVOS09IIENPUlAuCiswMDUwQzkgICAgIChiYXNlIDE2KQkJTUFTUFJPIERFTktPSCBDT1JQLgorCQkJCUFTQURBIE5JU1NISU4gQUlDSEkKKwkJCQk0NzAtMDE5NAorCQkJCUpBUEFOCisKKzAwLTUwLUNBICAgKGhleCkJCU5FVCBUTyBORVQgVEVDSE5PTE9HSUVTCiswMDUwQ0EgICAgIChiYXNlIDE2KQkJTkVUIFRPIE5FVCBURUNITk9MT0dJRVMKKwkJCQk2ODAgQ0VOVFJBTCBBVkVOVUUgLSBTVEUuICMzMDEKKwkJCQlET1ZFUiBOSCAwMzgyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQ0IgICAoaGV4KQkJSkVUVEVSCiswMDUwQ0IgICAgIChiYXNlIDE2KQkJSkVUVEVSCisJCQkJR1JBRVRFUlNUUkFTU0UgMgorCQkJCUQ3MTY0MiAgTFVEV0lHU0JVUkcKKwkJCQlHRVJNQU5ZCisKKzAwLTUwLUNDICAgKGhleCkJCVhZUkFURVgKKzAwNTBDQyAgICAgKGJhc2UgMTYpCQlYWVJBVEVYCisJCQkJTUFJTCBQT0lOVDogMjYvMTM7IERFUFQ6ICBTVE9SQUdFIFNZU1RFTQorCQkJCUxhbmdzdG9uZSBSb2FkCisJCQkJSGF2YW50IFBPOSAxU0EgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTUwLUNEICAgKGhleCkJCURJR0lBTlNXRVIgQS9TCiswMDUwQ0QgICAgIChiYXNlIDE2KQkJRElHSUFOU1dFUiBBL1MKKwkJCQlTS0FMSFVTRSA1CisJCQkJOTI0MCBOSUJFCisJCQkJREVOTUFSSworCiswMC01MC1DRSAgIChoZXgpCQlMRyBJTlRFUk5BVElPTkFMIENPUlAuCiswMDUwQ0UgICAgIChiYXNlIDE2KQkJTEcgSU5URVJOQVRJT05BTCBDT1JQLgorCQkJCUxHIFRXSU4gVE9XRVJTCisJCQkJMjAgWU9JRE8tRE9ORywgWU9VTkdEVU5HUE8tR1UKKwkJCQlTRU9VTCwgIDE1MC02MDYgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC01MC1DRiAgIChoZXgpCQlWQU5MSU5LIENPTU1VTklDQVRJT04gVEVDSE5PTE9HWSBSRVNFQVJDSCBJTlNUSVRVVEUKKzAwNTBDRiAgICAgKGJhc2UgMTYpCQlWQU5MSU5LIENPTU1VTklDQVRJT04gVEVDSE5PTE9HWSBSRVNFQVJDSCBJTlNUSVRVVEUKKwkJCQkyMTAgWUFESSBPRkZJQ0UgQlVJTERJTkcKKwkJCQkgTk8uIDQ4IEJFSSBTQU4gSHVhbiBaaG9uZyBMdQorCQkJCUJFSUpJTkcgMTAwMDg4ICAKKwkJCQlDSElOQQorCiswMC01MC1EMCAgIChoZXgpCQlNSU5FUlZBIFNZU1RFTVMKKzAwNTBEMCAgICAgKGJhc2UgMTYpCQlNSU5FUlZBIFNZU1RFTVMKKwkJCQkxNTg1IENIQVJMRVNUT04gUk9BRAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgODQ5NDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUQxICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNTBEMSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCU0vUyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUQyICAgKGhleCkJCUNNQyBFbGVjdHJvbmljcyBJbmMKKzAwNTBEMiAgICAgKGJhc2UgMTYpCQlDTUMgRWxlY3Ryb25pY3MgSW5jCisJCQkJNjAwIERyLkZyZWRlcmlrLVBoaWxpcHMgQmx2ZAorCQkJCU1vbnRyZWFsICBRQyBINE0gMlM5CisJCQkJQ0FOQURBCisKKzAwLTUwLUQzICAgKGhleCkJCURJR0lUQUwgQVVESU8gUFJPQ0VTU0lORyBQVFkuIExURC4KKzAwNTBEMyAgICAgKGJhc2UgMTYpCQlESUdJVEFMIEFVRElPIFBST0NFU1NJTkcgUFRZLiBMVEQuCisJCQkJUE8gQk9YIDQwCisJCQkJQ09OQ09SRCBXRVNUCisJCQkJTlNXIDIxMzggIAorCQkJCUFVU1RSQUxJQQorCiswMC01MC1ENCAgIChoZXgpCQlKT09IT05HIElORk9STUFUSU9OICYKKzAwNTBENCAgICAgKGJhc2UgMTYpCQlKT09IT05HIElORk9STUFUSU9OICYKKwkJCQlDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCUpVTkdOQU0gQi9ELCA3MjEtMzkgWUVPS1NBTS1ET05HLCBLQU5HTkEKKwkJCQlTRU9VTCBTRU9VTCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC01MC1ENSAgIChoZXgpCQlBRCBTWVNURU1TIENPUlAuCiswMDUwRDUgICAgIChiYXNlIDE2KQkJQUQgU1lTVEVNUyBDT1JQLgorCQkJCTEtNC0xLCBOQUtBQ0hPLCBNVVNBU0hJTk8gQ0lUWQorCQkJCVRPS1lPIDE4MC0wMDA2ICAKKwkJCQlKQVBBTgorCiswMC01MC1ENiAgIChoZXgpCQlBVExBUyBDT1BDTyBUT09MUyBBQgorMDA1MEQ2ICAgICAoYmFzZSAxNikJCUFUTEFTIENPUENPIFRPT0xTIEFCCisJCQkJCisJCQkJUy0xMDUgMjMgU1RPQ0tIT0xNICAKKwkJCQlTV0VERU4KKworMDAtNTAtRDcgICAoaGV4KQkJVEVMU1RSQVQKKzAwNTBENyAgICAgKGJhc2UgMTYpCQlURUxTVFJBVAorCQkJCTM2MDAgQVZFTlVFCisJCQkJUExBTk8gVFggNzUwNzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUQ4ICAgKGhleCkJCVVOSUNPUk4gQ09NUFVURVIgQ09SUC4KKzAwNTBEOCAgICAgKGJhc2UgMTYpCQlVTklDT1JOIENPTVBVVEVSIENPUlAuCisJCQkJNyBGTC4sICBOTy4gOTYgS1dBTkcgRlUgTk9SVEggUk9BRAorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC1EOSAgIChoZXgpCQlFTkdFVFJPTi1FTkdFTkhBUklBIEVMRVRST05JQ0EgSU5ELiBlIENPTS4gTFREQQorMDA1MEQ5ICAgICAoYmFzZSAxNikJCUVOR0VUUk9OLUVOR0VOSEFSSUEgRUxFVFJPTklDQSBJTkQuIGUgQ09NLiBMVERBCisJCQkJVklBIFNPQ1JBVEVTIE0uIEJJVFRFTkNPVVJULCAxMDk5CisJCQkJMzIwMTAtMDEwIENvbnRhZ2VtIE1HICAKKwkJCQlCUkFaSUwKKworMDAtNTAtREEgICAoaGV4KQkJM0NPTSBDT1JQT1JBVElPTgorMDA1MERBICAgICAoYmFzZSAxNikJCTNDT00gQ09SUE9SQVRJT04KKwkJCQk1NDAwIEJBWUZST05UIFBMQVpBCisJCQkJTVM6IDQyMjAKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtREIgICAoaGV4KQkJQ09OVEVNUE9SQVJZIENPTlRST0wKKzAwNTBEQiAgICAgKGJhc2UgMTYpCQlDT05URU1QT1JBUlkgQ09OVFJPTAorCQkJCVNZU1RFTVMsIElOQy4KKwkJCQkyNDMxIENVUlRJU1MgU1RSRUVUCisJCQkJRE9XTkVSUyBHUk9WRSBJTCA2MDUxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtREMgICAoaGV4KQkJVEFTIFRFTEVGT05CQVUgQS4gU0NIV0FCRSBHTUJIICYgQ08uIEtHCiswMDUwREMgICAgIChiYXNlIDE2KQkJVEFTIFRFTEVGT05CQVUgQS4gU0NIV0FCRSBHTUJIICYgQ08uIEtHCisJCQkJCisJCQkJTEFOR01BQVIgMjUKKwkJCQlELTQxMjM4IE1PTkNIRU5HTEFEQkFDSCAgCisJCQkJR0VSTUFOWQorCiswMC01MC1ERCAgIChoZXgpCQlTRVJSQSBTT0xEQURVUkEsIFMuQS4KKzAwNTBERCAgICAgKGJhc2UgMTYpCQlTRVJSQSBTT0xEQURVUkEsIFMuQS4KKwkJCQlQT0wuIElORC4gWk9OQSBGUkFOQ0EsCisJCQkJU0VDVE9SIEMsIENBTExFIEQsIE4uIDI5IDA4MDQwIEJBUkNFTE9OQQorCQkJCVNQQUlOCisJCQkJU1BBSU4KKworMDAtNTAtREUgICAoaGV4KQkJU0lHTlVNIFNZU1RFTVMgQ09SUC4KKzAwNTBERSAgICAgKGJhc2UgMTYpCQlTSUdOVU0gU1lTVEVNUyBDT1JQLgorCQkJCTEyMTEgRmx5bm4gUmQsCisJCQkJIzEwNAorCQkJCUNhbWFyaWxsbyBDQSA5MzAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtREYgICAoaGV4KQkJQWlyRmliZXIsIEluYy4KKzAwNTBERiAgICAgKGJhc2UgMTYpCQlBaXJGaWJlciwgSW5jLgorCQkJCVAuTy4gQk9YIDUwMjE0OAorCQkJCVNBTiBESUVHTyBDQSA5MjE1MC0yMTQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1FMSAgIChoZXgpCQlOUyBURUNIIEVMRUNUUk9OSUNTIFNETiBCSEQKKzAwNTBFMSAgICAgKGJhc2UgMTYpCQlOUyBURUNIIEVMRUNUUk9OSUNTIFNETiBCSEQKKwkJCQlOTy4gMjEgJiAyMyBKQUxBTiBDQU5HR0lIIDEwCisJCQkJVEFNQU4gUEVSSU5EVVNUUklBTiBDRU1FUkxBTkcKKwkJCQk4MTgwMCBVbHUgVGlyYW0tSm9ob3IgQmFocnUgIAorCQkJCU1BTEFZU0lBCisKKzAwLTUwLUUyICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNTBFMiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRSAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRTMgICAoaGV4KQkJTW90b3JvbGEsIEluYy4KKzAwNTBFMyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSwgSW5jLgorCQkJCTI0NTAgV2Fsc2ggQXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUU0ICAgKGhleCkJCUFQUExFIENPTVBVVEVSLCBJTkMuCiswMDUwRTQgICAgIChiYXNlIDE2KQkJQVBQTEUgQ09NUFVURVIsIElOQy4KKwkJCQkyMDY1MCBWQUxMRVkgR1JFRU4gRFIuCisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1FNiAgIChoZXgpCQlIQUtVU0FOIENPUlBPUkFUSU9OCiswMDUwRTYgICAgIChiYXNlIDE2KQkJSEFLVVNBTiBDT1JQT1JBVElPTgorCQkJCUogVE9XRVIsIDEtMSwgTklLS09VLUNITworCQkJCUZVQ0hVLVNISSBUT0tZTyAxODMtMDA0NAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtNTAtRTcgICAoaGV4KQkJUEFSQURJU0UgSU5OT1ZBVElPTlMgKEFTSUEpCiswMDUwRTcgICAgIChiYXNlIDE2KQkJUEFSQURJU0UgSU5OT1ZBVElPTlMgKEFTSUEpCisJCQkJUFRFLiBMVEQuCisJCQkJMjUgU0VSQU5HT09OIE5PUlRIIEFWRS4gNSA2VEggRkxPT1IgVVJBQworCQkJCVNJTkdBUE9SRSA1NTQ5MTQKKwkJCQlTSU5HQVBPUkUKKworMDAtNTAtRTggICAoaGV4KQkJTk9NQURJWCBJTkMuCiswMDUwRTggICAgIChiYXNlIDE2KQkJTk9NQURJWCBJTkMuCisJCQkJMjcwMSBPQ0VBTiBQQVJLIEJMVkQuLVNURS4jMjMxCisJCQkJU0FOVEEgTU9OSUNBIENBIDkwNDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1FQSAgIChoZXgpCQlYRUwgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwNTBFQSAgICAgKGJhc2UgMTYpCQlYRUwgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxNzEwMSBFLiBPSElPIERSSVZFCisJCQkJQVVST1JBIENPIDgwMDE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1FQiAgIChoZXgpCQlBTFBIQS1UT1AgQ09SUE9SQVRJT04KKzAwNTBFQiAgICAgKGJhc2UgMTYpCQlBTFBIQS1UT1AgQ09SUE9SQVRJT04KKwkJCQkxOUYuLCBOTy4gMiwgTEFORSAxNTAKKwkJCQlTRUMuIDUsIEhTSU4tWUkgUk9BRAorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC1FQyAgIChoZXgpCQlPTElDT00gQS9TCiswMDUwRUMgICAgIChiYXNlIDE2KQkJT0xJQ09NIEEvUworCQkJCU5ZQlJPVkVKIDExNAorCQkJCURLLTI4MDAgTFlOR0JZCisJCQkJREVOTUFSSworCiswMC01MC1FRCAgIChoZXgpCQlBTkRBIE5FVFdPUktTCiswMDUwRUQgICAgIChiYXNlIDE2KQkJQU5EQSBORVRXT1JLUworCQkJCTI5MjEgQ09QUEVSIFJPQUQKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRUUgICAoaGV4KQkJVEVLIERJR0lURUwgQ09SUE9SQVRJT04KKzAwNTBFRSAgICAgKGJhc2UgMTYpCQlURUsgRElHSVRFTCBDT1JQT1JBVElPTgorCQkJCTIwMDEwIENFTlRVUlkgQkxWRC4gIzMwMAorCQkJCUdFUk1BTlRPV04gTUQgMjA4NzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUVGICAgKGhleCkJCVNQRSBTeXN0ZW1oYXVzIEdtYkgKKzAwNTBFRiAgICAgKGJhc2UgMTYpCQlTUEUgU3lzdGVtaGF1cyBHbWJICisJCQkJV0FMRFNUUkFTU0UgNworCQkJCTYzMTUwIEhFVVNFTlNUQU1NICAKKwkJCQlHRVJNQU5ZCisKKzAwLTUwLUYwICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNTBGMCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCU0vUyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUYxICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDUwRjEgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQk5NCBFbS1IYW1vc2hhdm90IFdheS4KKwkJCQlQYXJrIEF6b3JpbSxQLk8uIEJveCAxMDA5NworCQkJCVBldGFjaC1UaWt2YSAgCisJCQkJSVNSQUVMCisKKzAwLTUwLUYyICAgKGhleCkJCU1JQ1JPU09GVCBDT1JQLgorMDA1MEYyICAgICAoYmFzZSAxNikJCU1JQ1JPU09GVCBDT1JQLgorCQkJCU9ORSBNSUNST1NPRlQgV0FZCisJCQkJUkVETU9ORCBXQSA5ODA1Mi02Mzk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1GMyAgIChoZXgpCQlHTE9CQUwgTkVUIElORk9STUFUSU9OIENPLiwgTHRkLgorMDA1MEYzICAgICAoYmFzZSAxNikJCUdMT0JBTCBORVQgSU5GT1JNQVRJT04gQ08uLCBMdGQuCisJCQkJTk9SVEggVE9XRVItIFJNIDEzMDUKKwkJCQlXT1JMRCBUUkFERSBDRU5UUkUgQ09NUExFWCBOTy4zNzEtMzc1LCBICisJCQkJR1VBTkcgWkhPVSA1MTAwOTUgIAorCQkJCUNISU5BCisKKzAwLTUwLUY0ICAgKGhleCkJCVNJR01BVEVLIEdNQkggJiBDTy4gS0cKKzAwNTBGNCAgICAgKGJhc2UgMTYpCQlTSUdNQVRFSyBHTUJIICYgQ08uIEtHCisJCQkJQS01MTEyIExBTVBSRUNIVFNIQVVTRU4sCisJCQkJQlVSTU9PU0VSIFNUUkFTU0UgMTAKKwkJCQlBVVNUUklBCisJCQkJQVVTVFJJQQorCiswMC01MC1GNiAgIChoZXgpCQlQQU4tSU5URVJOQVRJT05BTCBJTkRVU1RSSUFMIENPUlAuCiswMDUwRjYgICAgIChiYXNlIDE2KQkJUEFOLUlOVEVSTkFUSU9OQUwgSU5EVVNUUklBTCBDT1JQLgorCQkJCUdGLCBOTy4gMTc2LCBDSEFORyBDSFVOIFJELgorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC1GNyAgIChoZXgpCQlWRU5UVVJFIE1BTlVGQUNUVVJJTkcgKFNJTkdBUE9SRSkgTFRELgorMDA1MEY3ICAgICAoYmFzZSAxNikJCVZFTlRVUkUgTUFOVUZBQ1RVUklORyAoU0lOR0FQT1JFKSBMVEQuCisJCQkJCisJCQkJNTAwNiBBTkcgTU8gS0lPIEFWRU5VRQorCQkJCSMwNS0wMSBUZWNocGxhY2UgSUkgIDU2OTg3MworCQkJCVNJTkdBUE9SRQorCiswMC01MC1GOCAgIChoZXgpCQlFTlRSRUdBIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA1MEY4ICAgICAoYmFzZSAxNikJCUVOVFJFR0EgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMjU2OTEgQVRMQU5USUMgT0NFQU4gRFJJVkUKKwkJCQlTVUlURSAjMTgKKwkJCQlMQUtFIEZPUkVTVCBDQSA5MjYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRjkgICAoaGV4KQkJU0VOU09STUFUSUMgQUNECiswMDUwRjkgICAgIChiYXNlIDE2KQkJU0VOU09STUFUSUMgQUNECisJCQkJNzAgV0VTVFZJRVcgU1RSRUVUCisJCQkJTEVYSU5HVE9OIE1BIDAyMTczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1GQSAgIChoZXgpCQlPWFRFTCwgTFRELgorMDA1MEZBICAgICAoYmFzZSAxNikJCU9YVEVMLCBMVEQuCisJCQkJVEhFIE1BUktFVCBQTEFDRQorCQkJCURJRENPVAorCQkJCTBYMTEgN0xFIEVuZ2xhbmQgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTUwLUZCICAgKGhleCkJCVZTSyBFTEVDVFJPTklDUworMDA1MEZCICAgICAoYmFzZSAxNikJCVZTSyBFTEVDVFJPTklDUworCQkJCVZFTkVUSUVMQUFOIDM5CisJCQkJODUzMCBIQVJFTEJFS0UKKwkJCQlCRUxHSVVNCisJCQkJQkVMR0lVTQorCiswMC01MC1GQyAgIChoZXgpCQlFRElNQVggVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwNTBGQyAgICAgKGJhc2UgMTYpCQlFRElNQVggVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQkzIFdVLUNIVU4gM3JkIFJPQUQKKwkJCQlXdS1LdSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlUQUlQRUkgSHNpZW4gIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtRkQgICAoaGV4KQkJVklTSU9OQ09NTSBDTy4sIExURC4KKzAwNTBGRCAgICAgKGJhc2UgMTYpCQlWSVNJT05DT01NIENPLiwgTFRELgorCQkJCTQsIDVGLCBEQUVXT04gQi9ECisJCQkJMTk4LTgsIFNFT0JJTkdHTy1ET05HCisJCQkJWU9OR1NBTi1HVSwgU0VPVUwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC01MC1GRSAgIChoZXgpCQlQQ1RWbmV0IEFTQQorMDA1MEZFICAgICAoYmFzZSAxNikJCVBDVFZuZXQgQVNBCisJCQkJU1RSQU5EVkVJTEVOIDUwCisJCQkJTi0xMzI0IExZU0FLRVIgIAorCQkJCU5PUldBWQorCiswMC01MC1GRiAgIChoZXgpCQlIQUtLTyBFTEVDVFJPTklDUyBDTy4sIExURC4KKzAwNTBGRiAgICAgKGJhc2UgMTYpCQlIQUtLTyBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQkyMzgsIEtBTUlLQVNISVdBTk8tTUFDSEkKKwkJCQlNQVRUTy1TSEksIElTSElLQVdBIDkyNC0wMDM1ICAKKwkJCQlKQVBBTgorCiswMC01Mi0xOCAgIChoZXgpCQlXdXhpIEtlYm9kYSBFbGVjdHJvbiBDby5MdGQKKzAwNTIxOCAgICAgKGJhc2UgMTYpCQlXdXhpIEtlYm9kYSBFbGVjdHJvbiBDby5MdGQKKwkJCQlOby4xNTUgQ2h1bmh1aSBSb2FkLCBYaXNoYW4gRGlzdHJpY3QsIAorCQkJCVd1eGkgSmlhbmdzdSAyMTQxMDEKKwkJCQlDSElOQQorCiswMC01NC1BRiAgIChoZXgpCQlDb250aW5lbnRhbCBBdXRvbW90aXZlIFN5c3RlbXMgSW5jLgorMDA1NEFGICAgICAoYmFzZSAxNikJCUNvbnRpbmVudGFsIEF1dG9tb3RpdmUgU3lzdGVtcyBJbmMuCisJCQkJMjE0NDAgVy4gTGFrZSBDb29rIFJkLgorCQkJCURlZXIgUGFyayBJTCA2MDAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMDAgICAoaGV4KQkJWFlDT00gSU5DLgorMDA2MDAwICAgICAoYmFzZSAxNikJCVhZQ09NIElOQy4KKwkJCQk3NTAgTi4gTUFQTEUKKwkJCQlTQUxJTkUgTUkgNDgxNzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTAxICAgKGhleCkJCUlubm9TeXMsIEluYy4KKzAwNjAwMSAgICAgKGJhc2UgMTYpCQlJbm5vU3lzLCBJbmMuCisJCQkJMzA5NSBSSUNITU9ORCBQS1dZICMyMDcKKwkJCQlSSUNITU9ORCBDQSA5NDgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMDIgICAoaGV4KQkJU0NSRUVOIFNVQlRJVExJTkcgU1lTVEVNUywgTFRECiswMDYwMDIgICAgIChiYXNlIDE2KQkJU0NSRUVOIFNVQlRJVExJTkcgU1lTVEVNUywgTFRECisJCQkJVEhFIE9MRCBSRUNUT1JZCisJCQkJQ0hVUkNIIExBTkUKKwkJCQlDTEFZRE9OIElQU1dJQ0ggIElQNiBPRVEgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNjAtMDMgICAoaGV4KQkJVEVSQU9LQSBXRUlHSCBTWVNURU0gUFRFLCBMVEQuCiswMDYwMDMgICAgIChiYXNlIDE2KQkJVEVSQU9LQSBXRUlHSCBTWVNURU0gUFRFLCBMVEQuCisJCQkJM0EgVFVBUyBBVkVOVUUgOAorCQkJCVNJTkdBUE9SRSA2MzkxMjggCisJCQkJU0lOR0FQT1JFCisKKzAwLTYwLTA0ICAgKGhleCkJCUNPTVBVVEFET1JFUyBNT0RVTEFSRVMgU0EKKzAwNjAwNCAgICAgKGJhc2UgMTYpCQlDT01QVVRBRE9SRVMgTU9EVUxBUkVTIFNBCisJCQkJQVZEQSBNT05URVNJRVJSQSBTL04KKwkJCQlFRElGSUNJTyBDT05HUkVTT1MgMzE0CisJCQkJNDEwMjAtU0VWSUxMQSAgCisJCQkJU1BBSU4KKworMDAtNjAtMDUgICAoaGV4KQkJRkVFREJBQ0sgREFUQSBMVEQuCiswMDYwMDUgICAgIChiYXNlIDE2KQkJRkVFREJBQ0sgREFUQSBMVEQuCisJCQkJUEFSSyBST0FECisJCQkJQ1JPV0JPUk9VR0gKKwkJCQlFQVNUIFNVU1NFWCwgVE42IDJRUiAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNjAtMDYgICAoaGV4KQkJU09URUMgQ08uLCBMVEQKKzAwNjAwNiAgICAgKGJhc2UgMTYpCQlTT1RFQyBDTy4sIExURAorCQkJCVlPS09IQU1BIEJBU0hBTUlDSEkgQkxERy4sCisJCQkJNC01NSBPSFRBLUNITyBOQUtBLUtVCisJCQkJWU9LT0hBTUEgIDIzMSAgCisJCQkJSkFQQU4KKworMDAtNjAtMDcgICAoaGV4KQkJQUNSRVMgR0FNSU5HLCBJTkMuCiswMDYwMDcgICAgIChiYXNlIDE2KQkJQUNSRVMgR0FNSU5HLCBJTkMuCisJCQkJODE1IE5XIDlUSCBTVFJFRVQKKwkJCQlDT1JWQUxMSVMgT1IgOTczMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTA4ICAgKGhleCkJCTNDT00gQ09SUE9SQVRJT04KKzAwNjAwOCAgICAgKGJhc2UgMTYpCQkzQ09NIENPUlBPUkFUSU9OCisJCQkJNTQwMCBCQVlGUk9OVCBQTEFaQQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0wOSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDYwMDkgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0wQSAgIChoZXgpCQlTT1JEIENPTVBVVEVSIENPUlBPUkFUSU9OCiswMDYwMEEgICAgIChiYXNlIDE2KQkJU09SRCBDT01QVVRFUiBDT1JQT1JBVElPTgorCQkJCTIwLTcsIE1BU0FHTyA1LUNIT01FCisJCQkJTUlIQU1BLUtVLCBDSElCQS1TSEkKKwkJCQlDSElCQSAyNjEgIAorCQkJCUpBUEFOCisKKzAwLTYwLTBCICAgKGhleCkJCUxPR1dBUkUgR21iSAorMDA2MDBCICAgICAoYmFzZSAxNikJCUxPR1dBUkUgR21iSAorCQkJCVNDSFdFREVOU1RSLiA5CisJCQkJRC0xMzM1OSBCRVJMSU4gIAorCQkJCUdFUk1BTlkKKworMDAtNjAtMEMgICAoaGV4KQkJRXVyb3RlY2ggSW5jLgorMDA2MDBDICAgICAoYmFzZSAxNikJCUV1cm90ZWNoIEluYy4KKwkJCQkxMDI2MCBPbGQgQ29sdW1iaWEgUm9hZAorCQkJCUNPTFVNQklBIE1EIDIxMDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0wRCAgIChoZXgpCQlEaWdpdGFsIExvZ2ljIEdtYkgKKzAwNjAwRCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIExvZ2ljIEdtYkgKKwkJCQlTdGFobHdlcmtzdHIuIDI1CisJCQkJTXVkZXJzYmFjaCAgNTc1NTUKKwkJCQlHRVJNQU5ZCisKKzAwLTYwLTBFICAgKGhleCkJCVdBVkVORVQgSU5URVJOQVRJT05BTCwgSU5DLgorMDA2MDBFICAgICAoYmFzZSAxNikJCVdBVkVORVQgSU5URVJOQVRJT05BTCwgSU5DLgorCQkJCTU4MjUgS0VOTkVEWSBST0FECisJCQkJTUlTU0lTU0FVR0EsIE9OVEFSSU8gTDRaIDJHMyAgCisJCQkJQ0FOQURBCisKKzAwLTYwLTBGICAgKGhleCkJCVdFU1RFTEwsIElOQy4KKzAwNjAwRiAgICAgKGJhc2UgMTYpCQlXRVNURUxMLCBJTkMuCisJCQkJNzUgRVhFQ1VUSVZFIERSSVZFCisJCQkJQVVST1JBIElMIDYwNTA0LTQxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTEwICAgKGhleCkJCU5FVFdPUksgTUFDSElORVMsIElOQy4KKzAwNjAxMCAgICAgKGJhc2UgMTYpCQlORVRXT1JLIE1BQ0hJTkVTLCBJTkMuCisJCQkJMjU1IE9MRCBORVcgQlJVTlNXSUNLIFJELiwgIyBOMzIwCisJCQkJUElTQ0FUQVdBWSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMTEgICAoaGV4KQkJQ1JZU1RBTCBTRU1JQ09ORFVDVE9SIENPUlAuCiswMDYwMTEgICAgIChiYXNlIDE2KQkJQ1JZU1RBTCBTRU1JQ09ORFVDVE9SIENPUlAuCisJCQkJUC5PLiBCT1ggMTc4NDcKKwkJCQlBVVNUSU4gVFggNzg3NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTEyICAgKGhleCkJCVBPV0VSIENPTVBVVElORyBDT1JQT1JBVElPTgorMDA2MDEyICAgICAoYmFzZSAxNikJCVBPV0VSIENPTVBVVElORyBDT1JQT1JBVElPTgorCQkJCTEwMjYxIEJVQkIgUk9BRAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMTMgICAoaGV4KQkJTkVUU1RBTCBNQVNDSElORU4gQUcKKzAwNjAxMyAgICAgKGJhc2UgMTYpCQlORVRTVEFMIE1BU0NISU5FTiBBRworCQkJCUlORFVTVFJJRVNUUkFTU0UKKwkJCQlDSC04NzUyIE5BRUZFTFMgIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTYwLTE0ICAgKGhleCkJCUVERUMgQ08uLCBMVEQuCiswMDYwMTQgICAgIChiYXNlIDE2KQkJRURFQyBDTy4sIExURC4KKwkJCQk5RiBPRiBULk8uQy4gQlVJTERJTkcKKwkJCQk3LTIyLTE3IE5JU0hJR09UQU5EQQorCQkJCVNISU5BR0FXQUtVLCAgVE9LWU8gIAorCQkJCUpBUEFOCisKKzAwLTYwLTE1ICAgKGhleCkJCU5FVDJORVQgQ09SUE9SQVRJT04KKzAwNjAxNSAgICAgKGJhc2UgMTYpCQlORVQyTkVUIENPUlBPUkFUSU9OCisJCQkJMTMxIENPT0xJREdFIFNUUkVFVAorCQkJCUhVRFNPTiBNQSAwMTc0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMTYgICAoaGV4KQkJQ0xBUklJT04KKzAwNjAxNiAgICAgKGJhc2UgMTYpCQlDTEFSSUlPTgorCQkJCUNPU0xJTiBEUklWRQorCQkJCU1haWwgU3RvcCBDMjUKKwkJCQlTT1VUSEJPUk8gTUEgMDE3NzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTE3ICAgKGhleCkJCVRPS0lNRUMgSU5DLgorMDA2MDE3ICAgICAoYmFzZSAxNikJCVRPS0lNRUMgSU5DLgorCQkJCTItMTYsIE1JTkFNSS1LQU1BVEEsIE9IVEEtS1UKKwkJCQlUT0tZTyAxNDQgIAorCQkJCUpBUEFOCisKKzAwLTYwLTE4ICAgKGhleCkJCVNURUxMQVIgT05FIENPUlBPUkFUSU9OCiswMDYwMTggICAgIChiYXNlIDE2KQkJU1RFTExBUiBPTkUgQ09SUE9SQVRJT04KKwkJCQk1MDAgMTA4VEggQVZFLiBORS0tU1RFLiAjMjIwMAorCQkJCUJFTExFVlVFIFdBIDk4MDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0xOSAgIChoZXgpCQlSb2NoZSBEaWFnbm9zdGljcworMDA2MDE5ICAgICAoYmFzZSAxNikJCVJvY2hlIERpYWdub3N0aWNzCisJCQkJOTExNSBIYWd1ZSBSb2FkCisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjUwLTA0NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTFBICAgKGhleCkJCUtFSVRITEVZIElOU1RSVU1FTlRTCiswMDYwMUEgICAgIChiYXNlIDE2KQkJS0VJVEhMRVkgSU5TVFJVTUVOVFMKKwkJCQkzMDUwMCBCQUlOQlJJREdFIFJELgorCQkJCVNPTE9OIE9IIDQ0MTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0xQiAgIChoZXgpCQlNRVNBIEVMRUNUUk9OSUNTCiswMDYwMUIgICAgIChiYXNlIDE2KQkJTUVTQSBFTEVDVFJPTklDUworCQkJCTEzMjMgNjFTVCBTVFJFRVQKKwkJCQlFTUVSWVZJTExFIENBIDk0NjA4LTIxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTFDICAgKGhleCkJCVRFTFhPTiBDT1JQT1JBVElPTgorMDA2MDFDICAgICAoYmFzZSAxNikJCVRFTFhPTiBDT1JQT1JBVElPTgorCQkJCTMzMzAgVy4gTUFSS0VUIFNUUkVFVAorCQkJCVBPIEJPWCA1NTgyCisJCQkJQUtST04gT0ggNDQzMzQtMDU4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMUQgICAoaGV4KQkJTFVDRU5UIFRFQ0hOT0xPR0lFUworMDA2MDFEICAgICAoYmFzZSAxNikJCUxVQ0VOVCBURUNITk9MT0dJRVMKKwkJCQkxMDEgQ1JBV0ZPUkRTIENPUk5FUiBSRC4KKwkJCQlST09NICA0Sy0zMjEKKwkJCQlIT0xNREVMIE5KIDA3NzMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0xRSAgIChoZXgpCQlTT0ZUTEFCLCBJTkMuCiswMDYwMUUgICAgIChiYXNlIDE2KQkJU09GVExBQiwgSU5DLgorCQkJCVAuTy4gQk9YIDgKKwkJCQlDSElNTkVZIFJPQ0sgQ08gODExMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTFGICAgKGhleCkJCVNUQUxMSU9OIFRFQ0hOT0xPR0lFUworMDA2MDFGICAgICAoYmFzZSAxNikJCVNUQUxMSU9OIFRFQ0hOT0xPR0lFUworCQkJCTMzIFdPT0RTVE9DSyBST0FECisJCQkJVE9PV09ORyBRLUwtRC0gNDA2NiAgCisJCQkJQVVTVFJBTElBCisKKzAwLTYwLTIwICAgKGhleCkJCVBJVk9UQUwgTkVUV09SS0lORywgSU5DLgorMDA2MDIwICAgICAoYmFzZSAxNikJCVBJVk9UQUwgTkVUV09SS0lORywgSU5DLgorCQkJCTcyNDYgU0hBUk9OIERSLiwgU1RFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTIxICAgKGhleCkJCURTQyBDT1JQT1JBVElPTgorMDA2MDIxICAgICAoYmFzZSAxNikJCURTQyBDT1JQT1JBVElPTgorCQkJCVJFQ1JVSVQtU0hJTk9IVFNVS0EgQkxERy4sCisJCQkJMi0yNS0xNSBNSU5BTUlPSFRTVUtBLCBUT1NISU1BLUtVLAorCQkJCVRPS1lPIDE3MCAgCisJCQkJSkFQQU4KKworMDAtNjAtMjIgICAoaGV4KQkJVklDT00gU1lTVEVNUywgSU5DLgorMDA2MDIyICAgICAoYmFzZSAxNikJCVZJQ09NIFNZU1RFTVMsIElOQy4KKwkJCQkxOTYxIExBTkRJTkdTIERSSVZFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMjMgICAoaGV4KQkJUEVSSUNPTSBTRU1JQ09ORFVDVE9SIENPUlAuCiswMDYwMjMgICAgIChiYXNlIDE2KQkJUEVSSUNPTSBTRU1JQ09ORFVDVE9SIENPUlAuCisJCQkJMjM4MCBCRVJJTkcgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMjQgICAoaGV4KQkJR1JBRElFTlQgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDYwMjQgICAgIChiYXNlIDE2KQkJR1JBRElFTlQgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMiBNT1VOVCBST1lBTCBBVkVOVUUKKwkJCQlNQVJMQk9STyBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMjUgICAoaGV4KQkJQUNUSVZFIElNQUdJTkcgUExDCiswMDYwMjUgICAgIChiYXNlIDE2KQkJQUNUSVZFIElNQUdJTkcgUExDCisJCQkJSEFUVE9SSSBIT1VTRQorCQkJCVZBTldBTEwgQlVTSU5FU1MgUEFSSworCQkJCU1BSURFTkhFQUQgQmVya3NoaXJlIFNMNiA0VUIgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNjAtMjYgICAoaGV4KQkJVklLSU5HIE1vZHVsYXIgU29sdXRpb25zCiswMDYwMjYgICAgIChiYXNlIDE2KQkJVklLSU5HIE1vZHVsYXIgU29sdXRpb25zCisJCQkJMTEgQ09MVU1CSUEKKwkJCQlMQUdVTkEgSElMTFMgQ0EgOTI2NTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTI3ICAgKGhleCkJCVN1cGVyaW9yIE1vZHVsYXIgUHJvZHVjdHMKKzAwNjAyNyAgICAgKGJhc2UgMTYpCQlTdXBlcmlvciBNb2R1bGFyIFByb2R1Y3RzCisJCQkJR2VuZXJhbCBUZWNobm9sb2d5IERpdmlzaW9uCisJCQkJNDE1IFBJTkVEQSBDT1VSVAorCQkJCU1FTEJPVVJORSBGTCAzMjk0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMjggICAoaGV4KQkJTUFDUk9WSVNJT04gQ09SUE9SQVRJT04KKzAwNjAyOCAgICAgKGJhc2UgMTYpCQlNQUNST1ZJU0lPTiBDT1JQT1JBVElPTgorCQkJCTI4MzAgRGUgTGEgQ3J1eiBCb3VsZXZhcmQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMjkgICAoaGV4KQkJQ0FSWSBQRVJJUEhFUkFMUyBJTkMuCiswMDYwMjkgICAgIChiYXNlIDE2KQkJQ0FSWSBQRVJJUEhFUkFMUyBJTkMuCisJCQkJMTkwIENPTE9OTkFERSBST0FEIFMsIFVOSVQgOQorCQkJCU5FUEVBTiwgT05UQVJJTyBLMkUgN0o1ICAKKwkJCQlDQU5BREEKKworMDAtNjAtMkEgICAoaGV4KQkJU1lNSUNST04gQ09NUFVURVIgQ09NTVVOSUNBVElPTlMsIExURC4KKzAwNjAyQSAgICAgKGJhc2UgMTYpCQlTWU1JQ1JPTiBDT01QVVRFUiBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCVVOSVQgNCBHUkVFTiBMQU5FIEJVU0lORVNTIFBBUksKKwkJCQkyMzggR3JlZW4gbGFuZQorCQkJCUxvbmRvbiBTRTkgM1RMICAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTJCICAgKGhleCkJCVBFQUsgQVVESU8KKzAwNjAyQiAgICAgKGJhc2UgMTYpCQlQRUFLIEFVRElPCisJCQkJMTc5MCAzMFRIIFNUUkVFVCBTVEUgIzQxNAorCQkJCUJPVUxERVIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTJDICAgKGhleCkJCUxJTlggRGF0YSBUZXJtaW5hbHMsIEluYy4KKzAwNjAyQyAgICAgKGJhc2UgMTYpCQlMSU5YIERhdGEgVGVybWluYWxzLCBJbmMuCisJCQkJNjI1IERJR0lUQUwgRFJJVkUtU1RFICMxMDAKKwkJCQlQTEFOTyBUWCA3NTA3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMkQgICAoaGV4KQkJQUxFUlRPTiBURUNITk9MT0dJRVMsIElOQy4KKzAwNjAyRCAgICAgKGJhc2UgMTYpCQlBTEVSVE9OIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTY2NzAgMTg1VEggQVZFLiBOLkUuCisJCQkJUkVETU9ORCBXQSA5ODA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMkUgICAoaGV4KQkJQ1lDTEFERVMgQ09SUE9SQVRJT04KKzAwNjAyRSAgICAgKGJhc2UgMTYpCQlDWUNMQURFUyBDT1JQT1JBVElPTgorCQkJCTQxOTM0IENIUklTVFkgU1RSRUVUCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMkYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA2MDJGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMzAgICAoaGV4KQkJVklMTEFHRSBUUk9OSUMgRU5UV0lDS0xVTkcKKzAwNjAzMCAgICAgKGJhc2UgMTYpCQlWSUxMQUdFIFRST05JQyBFTlRXSUNLTFVORworCQkJCVdFTExXRUcgOTUKKwkJCQkzMTE1NyBTQVJTVEVEVCAgCisJCQkJR0VSTUFOWQorCiswMC02MC0zMSAgIChoZXgpCQlIUksgU1lTVEVNUworMDA2MDMxICAgICAoYmFzZSAxNikJCUhSSyBTWVNURU1TCisJCQkJUC5PLiBCT1ggNTE0CisJCQkJV0VTVFZJTExFIDM2MzAgIAorCQkJCVNPVVRIIEFGUklDQQorCiswMC02MC0zMiAgIChoZXgpCQlJLUNVQkUsIElOQy4KKzAwNjAzMiAgICAgKGJhc2UgMTYpCQlJLUNVQkUsIElOQy4KKwkJCQkyMzI4LUMgV0FMU0ggQVZFTlVFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTMzICAgKGhleCkJCUFDVUlUWSBJTUFHSU5HLCBJTkMuCiswMDYwMzMgICAgIChiYXNlIDE2KQkJQUNVSVRZIElNQUdJTkcsIElOQy4KKwkJCQk5IFRPV05TRU5EIFdFU1QKKwkJCQlOQVNIVUEgTkggMDMwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTM0ICAgKGhleCkJCVJPQkVSVCBCT1NDSCBHbWJICiswMDYwMzQgICAgIChiYXNlIDE2KQkJUk9CRVJUIEJPU0NIIEdtYkgKKwkJCQlQT1NUQk9YIDExIDYyCisJCQkJRC02NDcwMSBFUkJBQ0ggIAorCQkJCUdFUk1BTlkKKworMDAtNjAtMzUgICAoaGV4KQkJREFMTEFTIFNFTUlDT05EVUNUT1IsIElOQy4KKzAwNjAzNSAgICAgKGJhc2UgMTYpCQlEQUxMQVMgU0VNSUNPTkRVQ1RPUiwgSU5DLgorCQkJCTQ0MDEgU09VVEggQkVMVFdPT0QgUEFSS1dBWQorCQkJCURBTExBUyBUWCA3NTI0NC0zMjkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0zNiAgIChoZXgpCQlBSVQgQXVzdHJpYW4gSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3kgR21iSAorMDA2MDM2ICAgICAoYmFzZSAxNikJCUFJVCBBdXN0cmlhbiBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSBHbWJICisJCQkJRG9uYXUtQ2l0eS1TdHJh32UgMQorCQkJCVZpZW5uYSAgMTIyMAorCQkJCUFVU1RSSUEKKworMDAtNjAtMzcgICAoaGV4KQkJTlhQIFNlbWljb25kdWN0b3JzCiswMDYwMzcgICAgIChiYXNlIDE2KQkJTlhQIFNlbWljb25kdWN0b3JzCisJCQkJTWlsbGJyb29rIFRlY2hub2xvZ3kgQ2FtcHVzCisJCQkJTWlsbGJyb29rIFNvdXRoYW1wdG9uIFNPMTUgMERKCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNjAtMzggICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDYwMzggICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJR2xvYmFsIE9wZXJhdGlvbnMgRW5naW5lZXJpbmcKKwkJCQlEZXAgNjgwMCBQcm9ncmFtIE1hbmFnZXIgODIwMCBEaXhpZSBSb2FkCisJCQkJQnJhbXB0b24gT250YXJpbyAxNlQgNVA2IAorCQkJCUNBTkFEQQorCiswMC02MC0zOSAgIChoZXgpCQlTYW5Db20gVGVjaG5vbG9neSwgSW5jLgorMDA2MDM5ICAgICAoYmFzZSAxNikJCVNhbkNvbSBUZWNobm9sb2d5LCBJbmMuCisJCQkJNzcxOSBXT09EIEhPTExPVyBEUklWRQorCQkJCVNVSVRFICMxNTYKKwkJCQlBVVNUSU4gVFggNzg3MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTNBICAgKGhleCkJCVFVSUNLIENPTlRST0xTIExURC4KKzAwNjAzQSAgICAgKGJhc2UgMTYpCQlRVUlDSyBDT05UUk9MUyBMVEQuCisJCQkJRFVSSEFNIEhPVVNFLCBXQVJXSUNLIENPVVJUCisJCQkJUEFSSyBST0FELCBNSURETEVUT04KKwkJCQlNQU5DSEVTVEVSICBNMjQgMUFFICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC02MC0zQiAgIChoZXgpCQlBTVRFQyBzcGEKKzAwNjAzQiAgICAgKGJhc2UgMTYpCQlBTVRFQyBzcGEKKwkJCQlMT0MuIFMuIE1BUlRJTk8KKwkJCQk1MzAyNSBQSUFOQ0FTVEFHTkFJTyAoU0lFTkEpICAKKwkJCQlJVEFMWQorCiswMC02MC0zQyAgIChoZXgpCQlIQUdJV0FSQSBTWVMtQ09NIENPLiwgTFRELgorMDA2MDNDICAgICAoYmFzZSAxNikJCUhBR0lXQVJBIFNZUy1DT00gQ08uLCBMVEQuCisJCQkJMi00LTMgTklTSElLSSBOQUtBLUtVCisJCQkJTkFHT1lBCisJCQkJQUlDSEkgNDYwICAKKwkJCQlKQVBBTgorCiswMC02MC0zRCAgIChoZXgpCQkzQ1gKKzAwNjAzRCAgICAgKGJhc2UgMTYpCQkzQ1gKKwkJCQkyMDg1IEhBTUlMVE9OIEFWRS4sIC1TVEUuIzIyMAorCQkJCVNBTiBKT1NFIENBIDk1MTI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0zRSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDYwM0UgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0zRiAgIChoZXgpCQlQQVRBUFNDTyBERVNJR05TCiswMDYwM0YgICAgIChiYXNlIDE2KQkJUEFUQVBTQ08gREVTSUdOUworCQkJCTUzNTAgUEFSVE5FUlMgQ09VUlQKKwkJCQlGUkVERVJJQ0sgTUQgMjE3MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTQwICAgKGhleCkJCU5FVFJPIENPUlAuCiswMDYwNDAgICAgIChiYXNlIDE2KQkJTkVUUk8gQ09SUC4KKwkJCQkzMTIwIFNDT1RUIEJMVkQuCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTQxICAgKGhleCkJCVlva29nYXdhIEVsZWN0cmljIENvcnBvcmF0aW9uCiswMDYwNDEgICAgIChiYXNlIDE2KQkJWW9rb2dhd2EgRWxlY3RyaWMgQ29ycG9yYXRpb24KKwkJCQkyLTktMzEgTmFrYWNobywgTXVzYXNoaW5vLXNoaQorCQkJCVRva3lvIDE4MC04NzUwICAKKwkJCQlKQVBBTgorCiswMC02MC00MiAgIChoZXgpCQlUS1MgKFVTQSksIElOQy4KKzAwNjA0MiAgICAgKGJhc2UgMTYpCQlUS1MgKFVTQSksIElOQy4KKwkJCQkxMjAxIENPTU1FUkNFCisJCQkJUklDSEFSRFNPTiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNDMgICAoaGV4KQkJaURpcmVjdCwgSU5DLgorMDA2MDQzICAgICAoYmFzZSAxNikJCWlEaXJlY3QsIElOQy4KKwkJCQkxMzg2NSBTdW5yaXNlIFZhbGx5IERyaXZlCisJCQkJU3VpdGUgMTAwCisJCQkJSGVybmRvbiBWQSAyMDE3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNDQgICAoaGV4KQkJTElUVE9OL1BPTFktU0NJRU5USUZJQworMDA2MDQ0ICAgICAoYmFzZSAxNikJCUxJVFRPTi9QT0xZLVNDSUVOVElGSUMKKwkJCQkyMjAwIFNPVVRIIE1BSU4gU1RSRUVUCisJCQkJQkxBQ0tTQlVSRyBWQSAyNDA2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNDUgICAoaGV4KQkJUEFUSExJR0hUIFRFQ0hOT0xPR0lFUworMDA2MDQ1ICAgICAoYmFzZSAxNikJCVBBVEhMSUdIVCBURUNITk9MT0dJRVMKKwkJCQk3NjcgV0FSUkVOIFJPQUQKKwkJCQlJVEhBQ0EgTlkgMTQ4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTQ2ICAgKGhleCkJCVZNRVRSTywgSU5DLgorMDA2MDQ2ICAgICAoYmFzZSAxNikJCVZNRVRSTywgSU5DLgorCQkJCTE4ODAgREFJUlkgQVNIRk9SRC0gU1RFICM1MzUKKwkJCQlIT1VTVE9OIFRYIDc3MDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC00NyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDYwNDcgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC00OCAgIChoZXgpCQlFTUMgQ09SUE9SQVRJT04KKzAwNjA0OCAgICAgKGJhc2UgMTYpCQlFTUMgQ09SUE9SQVRJT04KKwkJCQkxNzEgU09VVEggU1QuLAorCQkJCUhPUEtJTlRPTiBNQSAwMTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNDkgICAoaGV4KQkJVklOQSBURUNITk9MT0dJRVMKKzAwNjA0OSAgICAgKGJhc2UgMTYpCQlWSU5BIFRFQ0hOT0xPR0lFUworCQkJCTYgVU5JT04gU1FVQVJFIC0gU1RFIEYKKwkJCQlVTklPTiBDSVRZIENBIDk0NTg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC00QSAgIChoZXgpCQlTQUlDIElERUFTIEdST1VQCiswMDYwNEEgICAgIChiYXNlIDE2KQkJU0FJQyBJREVBUyBHUk9VUAorCQkJCTcxMjAgQ09MVU1CSUEgR0FURVdBWSBEUklWRQorCQkJCUNPTFVNQklBIE1EIDIxMDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC00QiAgIChoZXgpCQlTYWZlLWNvbSBHbWJIICYgQ28uIEtHCiswMDYwNEIgICAgIChiYXNlIDE2KQkJU2FmZS1jb20gR21iSCAmIENvLiBLRworCQkJCUJ1cmcgTGljaHRlbmZlbHMKKwkJCQkzNTEwNCBMaWNodGVuZmVscyAgCisJCQkJR0VSTUFOWQorCiswMC02MC00QyAgIChoZXgpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCiswMDYwNEMgICAgIChiYXNlIDE2KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorCQkJCTI3IFJVRSBMRUJMQU5DCisJCQkJQ0VERVggMTUgUEFSSVMgNzU1MTIKKwkJCQlGUkFOQ0UKKworMDAtNjAtNEQgICAoaGV4KQkJTU1DIE5FVFdPUktTLCBJTkMuCiswMDYwNEQgICAgIChiYXNlIDE2KQkJTU1DIE5FVFdPUktTLCBJTkMuCisJCQkJMTEzNCBFQVNUIEFSUVVFUyBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYtNDYwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNEUgICAoaGV4KQkJQ1lDTEUgQ09NUFVURVIgQ09SUE9SQVRJT04sIElOQy4KKzAwNjA0RSAgICAgKGJhc2UgMTYpCQlDWUNMRSBDT01QVVRFUiBDT1JQT1JBVElPTiwgSU5DLgorCQkJCTIwMjQ1IFNURVZFTlMgQ1JFRUsgQkxWRC4KKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTRGICAgKGhleCkJCVNVWlVLSSBNRkcuIENPLiwgTFRELgorMDA2MDRGICAgICAoYmFzZSAxNikJCVNVWlVLSSBNRkcuIENPLiwgTFRELgorCQkJCTU1Mi01MSBBSklHQVVSQQorCQkJCUhJVEFDSElOQUtBCisJCQkJSUJBUkFLSSwgMzExLTEyICAKKwkJCQlKQVBBTgorCiswMC02MC01MCAgIChoZXgpCQlJTlRFUk5JWCBJTkMuCiswMDYwNTAgICAgIChiYXNlIDE2KQkJSU5URVJOSVggSU5DLgorCQkJCTU5LTEwIFRBS0FLVVJBLUNITworCQkJCUhBQ0hJT0pJCisJCQkJVE9LWU8gMTkyIAorCQkJCUpBUEFOCisKKzAwLTYwLTUxICAgKGhleCkJCVFVQUxJVFkgU0VNSUNPTkRVQ1RPUgorMDA2MDUxICAgICAoYmFzZSAxNikJCVFVQUxJVFkgU0VNSUNPTkRVQ1RPUgorCQkJCTg1MSBNQVJUSU4gQVZFTlVFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTUyICAgKGhleCkJCVBFUklQSEVSQUxTIEVOVEVSUFJJU0UgQ08uLCBMdGQuCiswMDYwNTIgICAgIChiYXNlIDE2KQkJUEVSSVBIRVJBTFMgRU5URVJQUklTRSBDTy4sIEx0ZC4KKwkJCQkzRiwgTk8uMTAsIEFMTEVZIDYsIExBTkUgNDUKKwkJCQlQQU8gU0hJTiBST0FELCBIU0lOIFRJRU4gQ0lUWQorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC02MC01MyAgIChoZXgpCQlUT1lPREEgTUFDSElORSBXT1JLUywgTFRELgorMDA2MDUzICAgICAoYmFzZSAxNikJCVRPWU9EQSBNQUNISU5FIFdPUktTLCBMVEQuCisJCQkJMS03IEtJVEFKSVpPWUFNQSBOT0RBQ0hPVQorCQkJCUtBUklZQSBDSVRZLCBBSUNISSAgCisJCQkJSkFQQU4KKworMDAtNjAtNTQgICAoaGV4KQkJQ09OVFJPTFdBUkUgR01CSAorMDA2MDU0ICAgICAoYmFzZSAxNikJCUNPTlRST0xXQVJFIEdNQkgKKwkJCQlXQUxEU1RSQVNTRSA5MgorCQkJCTYzMTI4IERJRVRaRU5CQUNIICAKKwkJCQlHRVJNQU5ZCisKKzAwLTYwLTU1ICAgKGhleCkJCUNPUk5FTEwgVU5JVkVSU0lUWQorMDA2MDU1ICAgICAoYmFzZSAxNikJCUNPUk5FTEwgVU5JVkVSU0lUWQorCQkJCTExMCBNQVBMRSBBVkVOVUUKKwkJCQlJVEhBQ0EgTlkgMTQ4NTAtNDkwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNTYgICAoaGV4KQkJTkVUV09SSyBUT09MUywgSU5DLgorMDA2MDU2ICAgICAoYmFzZSAxNikJCU5FVFdPUksgVE9PTFMsIElOQy4KKwkJCQkyOTc1IEJPV0VSUyBBVkVOVUUsICMyMDIKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MS0wOTU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC01NyAgIChoZXgpCQlNVVJBVEEgTUFOVUZBQ1RVUklORyBDTy4sIExURC4KKzAwNjA1NyAgICAgKGJhc2UgMTYpCQlNVVJBVEEgTUFOVUZBQ1RVUklORyBDTy4sIExURC4KKwkJCQkxLTE4LTEgSEFLVVNBTiBNSURPUkktS1UKKwkJCQlZT0tPSEFNQSAgMjI2ICAKKwkJCQlKQVBBTgorCiswMC02MC01OCAgIChoZXgpCQlDT1BQRVIgTU9VTlRBSU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwNjA1OCAgICAgKGJhc2UgMTYpCQlDT1BQRVIgTU9VTlRBSU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk2NjUwIExVU0sgQkxWRC4tU1RFICNCMTAzCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC01OSAgIChoZXgpCQlURUNITklDQUwgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwNjA1OSAgICAgKGJhc2UgMTYpCQlURUNITklDQUwgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQkxMDAgRE9NSU5PIERSSVZFCisJCQkJQ09OQ09SRCBNQSAwMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNUEgICAoaGV4KQkJQ0VMQ09SRSwgSU5DLgorMDA2MDVBICAgICAoYmFzZSAxNikJCUNFTENPUkUsIElOQy4KKwkJCQk4MDAxIENFTlRFUlZJRVcgUEFSS1dBWQorCQkJCVNVSVRFICMyMDEKKwkJCQlNRU1QSElTIFROIDM4MDE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC01QiAgIChoZXgpCQlJbnRyYVNlcnZlciBUZWNobm9sb2d5LCBJbmMuCiswMDYwNUIgICAgIChiYXNlIDE2KQkJSW50cmFTZXJ2ZXIgVGVjaG5vbG9neSwgSW5jLgorCQkJCTEyNSBIT1BQSU5HIEJST09LIFBBUksKKwkJCQlIT0xMSVNUT04gTUEgMDE3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTVDICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNjA1QyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTVEICAgKGhleCkJCVNDQU5JVkFMVkUgQ09SUC4KKzAwNjA1RCAgICAgKGJhc2UgMTYpCQlTQ0FOSVZBTFZFIENPUlAuCisJCQkJMTcyMiBOLiBNQURTT04gU1RSRUVUCisJCQkJTElCRVJUWSBMQUtFIFdBIDk5MDE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC01RSAgIChoZXgpCQlMSUJFUlRZIFRFQ0hOT0xPR1kgTkVUV09SS0lORworMDA2MDVFICAgICAoYmFzZSAxNikJCUxJQkVSVFkgVEVDSE5PTE9HWSBORVRXT1JLSU5HCisJCQkJUC5PLiBCT1ggMTE1NjYKKwkJCQlIQVRGSUVMRCwgUFJFVE9SSUEgMDAyOCAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTYwLTVGICAgKGhleCkJCU5JUFBPTiBVTklTT0ZUIENPUlBPUkFUSU9OCiswMDYwNUYgICAgIChiYXNlIDE2KQkJTklQUE9OIFVOSVNPRlQgQ09SUE9SQVRJT04KKwkJCQlCUiBOSU5HWU9DSE8gMSwyLTEzLTkKKwkJCQlOSUhPTkJBU0hJLU5JTkdZT0NITywgQ0hVTy1LVQorCQkJCVRPS1lPIDEwMyAgCisJCQkJSkFQQU4KKworMDAtNjAtNjAgICAoaGV4KQkJREFXTklORyBURUNITk9MT0dJRVMsIElOQy4KKzAwNjA2MCAgICAgKGJhc2UgMTYpCQlEQVdOSU5HIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTQwOSBNQVNPTiBST0FECisJCQkJRkFJUlBPUlQgTlkgMTQ0NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTYxICAgKGhleCkJCVdISVNUTEUgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwNjA2MSAgICAgKGJhc2UgMTYpCQlXSElTVExFIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJMTEwIE1BUlNIIERSSVZFLVNURSAjMTAwCisJCQkJRk9TVEVSIENJVFkgQ0EgOTQ0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTYyICAgKGhleCkJCVRFTEVTWU5DLCBJTkMuCiswMDYwNjIgICAgIChiYXNlIDE2KQkJVEVMRVNZTkMsIElOQy4KKwkJCQk1NTU1IE9BS0JST09LIFBLV1ktU1RFICMxMTAKKwkJCQlOT1JDUk9TUyBHQSAzMDA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNjMgICAoaGV4KQkJUFNJT04gREFDT00gUExDLgorMDA2MDYzICAgICAoYmFzZSAxNikJCVBTSU9OIERBQ09NIFBMQy4KKwkJCQlQU0lPTiBEQUNPTSBIT1VTRQorCQkJCVBSRVNMRVkgV0FZLAorCQkJCUNST1dOSElMTCBNSUxUT04gS0VZTkVTICBNSzggMEVGIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTYwLTY0ICAgKGhleCkJCU5FVENPTU0gTElNSVRFRAorMDA2MDY0ICAgICAoYmFzZSAxNikJCU5FVENPTU0gTElNSVRFRAorCQkJCVBPIEJPWCAzNzkKKwkJCQlOT1JUSCBSWURFLCBOU1csIDIxMTMgIAorCQkJCUFVU1RSQUxJQQorCiswMC02MC02NSAgIChoZXgpCQlCRVJORUNLRVIgJiBSQUlORVIgSU5EVVNUUklFLUVMRUtUUk9OSUMgR21iSAorMDA2MDY1ICAgICAoYmFzZSAxNikJCUJFUk5FQ0tFUiAmIFJBSU5FUiBJTkRVU1RSSUUtRUxFS1RST05JQyBHbWJICisJCQkJRUdHRUxTQkVSRyAxMjAKKwkJCQk1MTQyIEVHR0VMU0JFUkcgIAorCQkJCUFVU1RSSUEKKworMDAtNjAtNjYgICAoaGV4KQkJTEFDUk9JWCBUcmFmaWMKKzAwNjA2NiAgICAgKGJhc2UgMTYpCQlMQUNST0lYIFRyYWZpYworCQkJCTEgZXJlIEF2ZW51ZSwgMTEgZW1lIHJ1ZQorCQkJCTA2NTE2IENBUlJPUyAgCisJCQkJRlJBTkNFCisKKzAwLTYwLTY3ICAgKGhleCkJCUFDRVIgTkVUWFVTIElOQy4KKzAwNjA2NyAgICAgKGJhc2UgMTYpCQlBQ0VSIE5FVFhVUyBJTkMuCisJCQkJNUYtMywgNSBIU0lOIEFOTiBST0FEICBTQklQCisJCQkJSFNJTkNIVSAzMDAgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNjAtNjggICAoaGV4KQkJRGlhbG9naWMgQ29ycG9yYXRpb24KKzAwNjA2OCAgICAgKGJhc2UgMTYpCQlEaWFsb2dpYyBDb3Jwb3JhdGlvbgorCQkJCTk4MDAgQ2F2ZW5kaXNoIEJsdmQsIDV0aCBGbG9vcgorCQkJCU1vbnRyZWFsIFF1ZWJlYyBINE0gMlY5CisJCQkJQ0FOQURBCisKKzAwLTYwLTY5ICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorMDA2MDY5ICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorCQkJCTE3NDUgVGVjaG5vbG9neSBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC02QSAgIChoZXgpCQlNSVRTVUJJU0hJIFdJUkVMRVNTIENPTU1VTklDQVRJT05TLiBJTkMuCiswMDYwNkEgICAgIChiYXNlIDE2KQkJTUlUU1VCSVNISSBXSVJFTEVTUyBDT01NVU5JQ0FUSU9OUy4gSU5DLgorCQkJCTIwMDEgQ0hFUlJZIERSSVZFCisJCQkJQlJBU0VMVE9OIEdBIDMwNTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC02QiAgIChoZXgpCQlTeW5jbGF5ZXIgSW5jLgorMDA2MDZCICAgICAoYmFzZSAxNikJCVN5bmNsYXllciBJbmMuCisJCQkJMS0yMCBIaW1lZ2Fva2EKKwkJCQlLYW5pLUNpdHkKKwkJCQlHSUZVIDUwOS0wMjQ5ICAKKwkJCQlKQVBBTgorCiswMC02MC02QyAgIChoZXgpCQlBUkVTQ09NCiswMDYwNkMgICAgIChiYXNlIDE2KQkJQVJFU0NPTQorCQkJCTI4MzMgSlVOQ1RJT04gQVZFLiAtIFNURSAjMjA2CisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTZEICAgKGhleCkJCURJR0lUQUwgRVFVSVBNRU5UIENPUlAuCiswMDYwNkQgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUC4KKwkJCQk1NTAgS0lORyBTVFJFRVQKKwkJCQlNL1MgTEtHMS0zL0ExMAorCQkJCUxJVFRMRVRPTiBNQSAwMTQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNkUgICAoaGV4KQkJREFWSUNPTSBTRU1JQ09ORFVDVE9SLCBJTkMuCiswMDYwNkUgICAgIChiYXNlIDE2KQkJREFWSUNPTSBTRU1JQ09ORFVDVE9SLCBJTkMuCisJCQkJMjQ1NyBBVUdVU1RJTkUgRFJJVkUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNkYgICAoaGV4KQkJQ0xBUklPTiBDT1JQT1JBVElPTiBPRiBBTUVSSUNBCiswMDYwNkYgICAgIChiYXNlIDE2KQkJQ0xBUklPTiBDT1JQT1JBVElPTiBPRiBBTUVSSUNBCisJCQkJMTcgTEFLRVNJREUgT0ZGSUNFIFBBUksKKwkJCQk2MDcgTk9SVEggQVZFTlVFCisJCQkJV0FLRUZJRUxEIE1BIDAxODgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC03MCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDYwNzAgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC03MSAgIChoZXgpCQlNSURBUyBMQUIsIElOQy4KKzAwNjA3MSAgICAgKGJhc2UgMTYpCQlNSURBUyBMQUIsIElOQy4KKwkJCQk0IEtBVEFNQUNISSwKKwkJCQlTSElOSlVLVS1LVQorCQkJCVRPS1lPIDE2MCAKKwkJCQlKQVBBTgorCiswMC02MC03MiAgIChoZXgpCQlWWEwgSU5TVFJVTUVOVFMsIExJTUlURUQKKzAwNjA3MiAgICAgKGJhc2UgMTYpCQlWWEwgSU5TVFJVTUVOVFMsIExJTUlURUQKKwkJCQlQTE9UIE5PLiAxNywgS09OQVBQQU5BIEFHUkFIQVJBCisJCQkJRUxFQ1RST05JQyBDSVRZCisJCQkJQkFOR0FMT1JFIC0gIDU2MSAyMjkgIAorCQkJCUlORElBCisKKzAwLTYwLTczICAgKGhleCkJCVJFRENSRUVLIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDYwNzMgICAgIChiYXNlIDE2KQkJUkVEQ1JFRUsgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkzOTAwIE5FV1BBUksgTUFMTCBST0FECisJCQkJTkVXQVJLIENBIDk0NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC03NCAgIChoZXgpCQlRU0MgQVVESU8gUFJPRFVDVFMKKzAwNjA3NCAgICAgKGJhc2UgMTYpCQlRU0MgQVVESU8gUFJPRFVDVFMKKwkJCQkxNjc1IE1BQ0FSVEhVUiBCTFZELgorCQkJCUNPU1RBIE1FU0EgQ0EgOTI2MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTc1ICAgKGhleCkJCVBFTlRFSywgSU5DLgorMDA2MDc1ICAgICAoYmFzZSAxNikJCVBFTlRFSywgSU5DLgorCQkJCTEgUEFSSyBXQVkKKwkJCQlVUFBFUiBTQURETEUgUklWRVIgTkogMDc0NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTc2ICAgKGhleCkJCVNDSExVTUJFUkdFUiBURUNITk9MT0dJRVMgUkVUQUlMIFBFVFJPTEVVTSBTWVNURU1TCiswMDYwNzYgICAgIChiYXNlIDE2KQkJU0NITFVNQkVSR0VSIFRFQ0hOT0xPR0lFUyBSRVRBSUwgUEVUUk9MRVVNIFNZU1RFTVMKKwkJCQk4MjUtTSBHUkVFTkJSSUVSIENJUkNMRQorCQkJCUNIRVNBUEVBS0UgVkEgMjMzMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTc3ICAgKGhleCkJCVBSSVNBIE5FVFdPUktTCiswMDYwNzcgICAgIChiYXNlIDE2KQkJUFJJU0EgTkVUV09SS1MKKwkJCQk2NjIwIE1lc2EgUmlkZ2UgUm9hZCwKKwkJCQlTdWl0ZSAyMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTc4ICAgKGhleCkJCVBPV0VSIE1FQVNVUkVNRU5UIExURC4KKzAwNjA3OCAgICAgKGJhc2UgMTYpCQlQT1dFUiBNRUFTVVJFTUVOVCBMVEQuCisJCQkJMjE5NSBLRUFUSU5HIENST1NTIFJPQUQKKwkJCQlTQUFOSUNIVE9OLCBCLkMuIFY4TSAyQTUgIAorCQkJCUNBTkFEQQorCiswMC02MC03OSAgIChoZXgpCQlNYWluc3RyZWFtIERhdGEsIEluYy4KKzAwNjA3OSAgICAgKGJhc2UgMTYpCQlNYWluc3RyZWFtIERhdGEsIEluYy4KKwkJCQkzNzUgQ2hpcGV0YSBXYXksIFN1aXRlIEIKKwkJCQlTYWx0IExha2UgQ2l0eSBVVCA4NDEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtN0EgICAoaGV4KQkJRFZTIEdtYkgKKzAwNjA3QSAgICAgKGJhc2UgMTYpCQlEVlMgR21iSAorCQkJCUtSRVBFTlNUUkFTU0UgOAorCQkJCUQtMzAxNjUgSEFOTk9WRVIgIAorCQkJCUdFUk1BTlkKKworMDAtNjAtN0IgICAoaGV4KQkJRk9SRSBTWVNURU1TLCBJTkMuCiswMDYwN0IgICAgIChiYXNlIDE2KQkJRk9SRSBTWVNURU1TLCBJTkMuCisJCQkJMTAwMCBGT1JFIERSSVZFCisJCQkJV0FSUkVOREFMRSBQQSAxNTA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtN0MgICAoaGV4KQkJV2F2ZUFjY2VzcywgTHRkLgorMDA2MDdDICAgICAoYmFzZSAxNikJCVdhdmVBY2Nlc3MsIEx0ZC4KKwkJCQlQLk8uIEJPWCAyNDczCisJCQkJMTAgSEFZRVpJUkEgU1RSRUVUCisJCQkJUkEnQU5BTkEgNDM2NjMgIAorCQkJCUlTUkFFTAorCiswMC02MC03RCAgIChoZXgpCQlTRU5USUVOVCBORVRXT1JLUyBJTkMuCiswMDYwN0QgICAgIChiYXNlIDE2KQkJU0VOVElFTlQgTkVUV09SS1MgSU5DLgorCQkJCTIyMDEgQ0FOVFUgQ09VUlQtU1RFICMyMDUKKwkJCQlTQVJBU09UQSBGTCAzNDIzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtN0UgICAoaGV4KQkJR0lHQUxBQlMsIElOQy4KKzAwNjA3RSAgICAgKGJhc2UgMTYpCQlHSUdBTEFCUywgSU5DLgorCQkJCTI5MCBTQU5UQSBBTkEgQ09VUlQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTdGICAgKGhleCkJCUFVUk9SQSBURUNITk9MT0dJRVMsIElOQy4KKzAwNjA3RiAgICAgKGJhc2UgMTYpCQlBVVJPUkEgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTc2IFNFQ09ORCBBVkVOVUUKKwkJCQlXQUxUSEFNIE1BIDAyMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04MCAgIChoZXgpCQlNSUNST1RST05JWCBEQVRBQ09NIExURC4KKzAwNjA4MCAgICAgKGJhc2UgMTYpCQlNSUNST1RST05JWCBEQVRBQ09NIExURC4KKwkJCQkyMDAgQUJFUkRFRU4gRFJJVkUKKwkJCQlMT05ET04sIE9OVEFSSU8gTjVWIDROMiAgCisJCQkJQ0FOQURBCisKKzAwLTYwLTgxICAgKGhleCkJCVRWL0NPTSBJTlRFUk5BVElPTkFMCiswMDYwODEgICAgIChiYXNlIDE2KQkJVFYvQ09NIElOVEVSTkFUSU9OQUwKKwkJCQkxNjUxNiBWSUEgRVNQUklMTE8KKwkJCQlTQU4gRElFR08gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTgyICAgKGhleCkJCU5PVkFMSU5LIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA2MDgyICAgICAoYmFzZSAxNikJCU5PVkFMSU5LIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTQ4NTExIFdBUk0gU1BSSU5HUyBCTFZELiAjMjA4CisJCQkJRlJFTU9OVCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtODMgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA2MDgzICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtODQgICAoaGV4KQkJRElHSVRBTCBWSURFTworMDA2MDg0ICAgICAoYmFzZSAxNikJCURJR0lUQUwgVklERU8KKwkJCQk0OTIwIEFWQUxPTiBSSURHRSBQS1dZCisJCQkJU1VJVEUgIzYwMAorCQkJCU5PUkNST1NTIEdBIDMwMDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04NSAgIChoZXgpCQlTdG9yYWdlIENvbmNlcHRzCiswMDYwODUgICAgIChiYXNlIDE2KQkJU3RvcmFnZSBDb25jZXB0cworCQkJCTE0MzUyIENoYW1iZXIgUm9hZAorCQkJCVR1c3RpbiBDQSA5Mjc4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtODYgICAoaGV4KQkJTE9HSUMgUkVQTEFDRU1FTlQgVEVDSC4gTFRELgorMDA2MDg2ICAgICAoYmFzZSAxNikJCUxPR0lDIFJFUExBQ0VNRU5UIFRFQ0guIExURC4KKwkJCQkxNCBBUktXUklHSFQgUk9BRAorCQkJCVJFQURJTkcgQkVSS1MgUkcyMExTCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC02MC04NyAgIChoZXgpCQlLQU5TQUkgRUxFQ1RSSUMgQ08uLCBMVEQuCiswMDYwODcgICAgIChiYXNlIDE2KQkJS0FOU0FJIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTYtMTQtOSBNSURPUklJLCBBU0FNSU5BTUktS1UKKwkJCQlISVJPU0hJTUEgNzMxLTAxICAKKwkJCQlKQVBBTgorCiswMC02MC04OCAgIChoZXgpCQlXSElURSBNT1VOVEFJTiBEU1AsIElOQy4KKzAwNjA4OCAgICAgKGJhc2UgMTYpCQlXSElURSBNT1VOVEFJTiBEU1AsIElOQy4KKwkJCQk0MTAgQU1IRVJTVCBTVFJFRVQtU1RFICMzMjUKKwkJCQlOQVNIVUEgTkggMDMwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTg5ICAgKGhleCkJCVhBVEEKKzAwNjA4OSAgICAgKGJhc2UgMTYpCQlYQVRBCisJCQkJMTUxIEVBU1QgQ0xJRkYgUk9BRC1TVEUuIzEwCisJCQkJQlVSTlNWSUxMRSBNTiA1NTMzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtOEEgICAoaGV4KQkJQ0lUQURFTCBDT01QVVRFUgorMDA2MDhBICAgICAoYmFzZSAxNikJCUNJVEFERUwgQ09NUFVURVIKKwkJCQkyOSBBUk1PUlkgUkQKKwkJCQlNSUxGT1JEIE1BIDAzMDU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04QiAgIChoZXgpCQlDb25mZXJUZWNoIEludGVybmF0aW9uYWwKKzAwNjA4QiAgICAgKGJhc2UgMTYpCQlDb25mZXJUZWNoIEludGVybmF0aW9uYWwKKwkJCQkxMjExMCBOLiBQRUNPUyBTVFJFRVQKKwkJCQlXRVNUTUlOU1RFUiBDTyA4MDIzNC0yMDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04QyAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMDYwOEMgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQkFZRlJPTlQgUExBWkEKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1Mi04MTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04RCAgIChoZXgpCQlVTklQVUxTRSBDT1JQLgorMDA2MDhEICAgICAoYmFzZSAxNikJCVVOSVBVTFNFIENPUlAuCisJCQkJMi03LCBTRU5HRU5EQUktTklTSEkKKwkJCQlLT1NISUdBWUEtQ0lUWQorCQkJCVNBSVRBTUEgMzQzICAKKwkJCQlKT1JEQU4KKworMDAtNjAtOEUgICAoaGV4KQkJSEUgRUxFQ1RST05JQ1MsIFRFQ0hOT0xPR0lFICYgU1lTVEVNVEVDSE5JSyBHbWJICiswMDYwOEUgICAgIChiYXNlIDE2KQkJSEUgRUxFQ1RST05JQ1MsIFRFQ0hOT0xPR0lFICYgU1lTVEVNVEVDSE5JSyBHbWJICisJCQkJQU0gR05FSVNFTkFVRkxPVCA4CisJCQkJIEQtNjY1MzggTkVVTkhJUkNIRU4gIAorCQkJCUdFUk1BTlkKKworMDAtNjAtOEYgICAoaGV4KQkJVEVLUkFNIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDYwOEYgICAgIChiYXNlIDE2KQkJVEVLUkFNIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJQjEsIE5PLiAxNywgTEFORSAxNTksIFNFQy4gNgorCQkJCVJPT1NFVkVMVCBSRCwKKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNjAtOTAgICAoaGV4KQkJQXJ0aXphIE5ldHdvcmtzIEluYworMDA2MDkwICAgICAoYmFzZSAxNikJCUFydGl6YSBOZXR3b3JrcyBJbmMKKwkJCQlGYXJldCBUYWNoaWthd2EgQ2VudGVyIFNxdWFyZSwgMi0zNi0yIEFrZWJvbm8tY2hvLCAKKwkJCQlUYWNoaWthd2Etc2hpLCBUb2t5byAgMTkwLTAwMTIKKwkJCQlKQVBBTgorCiswMC02MC05MSAgIChoZXgpCQlGSVJTVCBQQUNJRklDIE5FVFdPUktTLCBJTkMuCiswMDYwOTEgICAgIChiYXNlIDE2KQkJRklSU1QgUEFDSUZJQyBORVRXT1JLUywgSU5DLgorCQkJCTg3MSBGT1ggTEFORQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC05MiAgIChoZXgpCQlNSUNSTy9TWVMsIElOQy4KKzAwNjA5MiAgICAgKGJhc2UgMTYpCQlNSUNSTy9TWVMsIElOQy4KKwkJCQkzNDQ3IE9DRUFOIFZJRVcgQkxWRC4KKwkJCQlHTEVOREFMRSBDQSA5MTIwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtOTMgICAoaGV4KQkJVkFSSUFOCiswMDYwOTMgICAgIChiYXNlIDE2KQkJVkFSSUFOCisJCQkJMjcwMCBNSVRDSEVMTCBEUi4KKwkJCQlXQUxOVVQgR1JFRUsgQ0EgOTQ1OTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTk0ICAgKGhleCkJCUlCTSBDb3JwCiswMDYwOTQgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUE8gQk9YIDEyMTk1CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0yMTk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC05NSAgIChoZXgpCQlBQ0NVLVRJTUUgU1lTVEVNUywgSU5DLgorMDA2MDk1ICAgICAoYmFzZSAxNikJCUFDQ1UtVElNRSBTWVNURU1TLCBJTkMuCisJCQkJNDIwIFNPTUVSUyBST0FECisJCQkJRUxMSU5HVE9OIENUIDA2MDI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC05NiAgIChoZXgpCQlULlMuIE1JQ1JPVEVDSCBJTkMuCiswMDYwOTYgICAgIChiYXNlIDE2KQkJVC5TLiBNSUNST1RFQ0ggSU5DLgorCQkJCTIwODE4IEhJR0dJTlMgQ09VUlQKKwkJCQlUT1JSQU5DRSBDQSA5MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtOTcgICAoaGV4KQkJM0NPTSBDT1JQT1JBVElPTgorMDA2MDk3ICAgICAoYmFzZSAxNikJCTNDT00gQ09SUE9SQVRJT04KKwkJCQk1NDAwIEJBWUZST05UIFBMQVpBCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTk4ICAgKGhleCkJCUhUIENPTU1VTklDQVRJT05TCiswMDYwOTggICAgIChiYXNlIDE2KQkJSFQgQ09NTVVOSUNBVElPTlMKKwkJCQk0NDgwIFNIT1BQSU5HIExBTkUKKwkJCQlTSU1JIFZBTExFWSBDQSA5MzA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtOTkgICAoaGV4KQkJU0JFLCBJbmMuCiswMDYwOTkgICAgIChiYXNlIDE2KQkJU0JFLCBJbmMuCisJCQkJMjMwNSBDYW1pbm8gUmFtb24KKwkJCQlTdWl0ZSAyMDAKKwkJCQlTYW4gUmFtb24gQ0EgOTQ1ODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTlBICAgKGhleCkJCU5KSyBURUNITk8gQ08uCiswMDYwOUEgICAgIChiYXNlIDE2KQkJTkpLIFRFQ0hOTyBDTy4KKwkJCQlOMS0yNSBLQU1JWUFTQVRPCisJCQkJS09NQVRTVSAgIzkyMyAgCisJCQkJSkFQQU4KKworMDAtNjAtOUIgICAoaGV4KQkJQVNUUk8tTUVELCBJTkMuCiswMDYwOUIgICAgIChiYXNlIDE2KQkJQVNUUk8tTUVELCBJTkMuCisJCQkJNjAwIEVBU1QgR1JFRU5XSUNIIEFWRS4KKwkJCQlXRVNUIFdBUldJQ0sgUkkgMDI4OTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTlDICAgKGhleCkJCVBlcmtpbi1FbG1lciBJbmNvcnBvcmF0ZWQKKzAwNjA5QyAgICAgKGJhc2UgMTYpCQlQZXJraW4tRWxtZXIgSW5jb3Jwb3JhdGVkCisJCQkJNzEwIEJyaWRnZXBvcnQgQXZlLgorCQkJCVNoZWx0b24gQ1QgMDY0ODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTlEICAgKGhleCkJCVBNSSBGT09EIEVRVUlQTUVOVCBHUk9VUAorMDA2MDlEICAgICAoYmFzZSAxNikJCVBNSSBGT09EIEVRVUlQTUVOVCBHUk9VUAorCQkJCTcwMSBSSURHRSBBVkVOVUUKKwkJCQlUUk9ZIE9IIDQ1Mzc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC05RSAgIChoZXgpCQlBU0MgWDMgLSBJTkZPUk1BVElPTiBURUNITk9MT0dZIFNUQU5EQVJEUyBTRUNSRVRBUklBVFMKKzAwNjA5RSAgICAgKGJhc2UgMTYpCQlBU0MgWDMgLSBJTkZPUk1BVElPTiBURUNITk9MT0dZIFNUQU5EQVJEUyBTRUNSRVRBUklBVFMKKwkJCQkxMjUwIEVZRSBTVFJFRVQgTlcgLSBTVEUgIzIwMAorCQkJCVdBU0hJTkdUT04gREMgMjAwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTlGICAgKGhleCkJCVBIQVNUIENPUlBPUkFUSU9OCiswMDYwOUYgICAgIChiYXNlIDE2KQkJUEhBU1QgQ09SUE9SQVRJT04KKwkJCQk3OSBXRVNUIDQ1MDAgU09VVEggLSBCTERHLiMxNAorCQkJCVNBTFQgTEFLRSBDSVRZIFVUIDg0MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1BMCAgIChoZXgpCQlTV0lUQ0hFRCBORVRXT1JLIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA2MEEwICAgICAoYmFzZSAxNikJCVNXSVRDSEVEIE5FVFdPUksgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTM4MDUgMVNUIEFWRU5VRSBOT1JUSAorCQkJCVBMWU1PVVRIIE1OIDU1NDQxLTU0NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUExICAgKGhleCkJCVZQTmV0LCBJbmMuCiswMDYwQTEgICAgIChiYXNlIDE2KQkJVlBOZXQsIEluYy4KKwkJCQk1NTUgTi4gTUFUSElMREEgQVZFLiwtU1RFICMxMTAKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUEyICAgKGhleCkJCU5JSE9OIFVOSVNZUyBMSU1JVEVEIENPLgorMDA2MEEyICAgICAoYmFzZSAxNikJCU5JSE9OIFVOSVNZUyBMSU1JVEVEIENPLgorCQkJCVAuTy4gQk9YIDEzNQorCQkJCVRPS1lPLVRPLCAgS09VVE9VLUtVCisJCQkJU0hJTk9OT01FIDEtMTAtOSAgCisJCQkJSkFQQU4KKworMDAtNjAtQTMgICAoaGV4KQkJQ09OVElOVVVNIFRFQ0hOT0xPR1kgQ09SUC4KKzAwNjBBMyAgICAgKGJhc2UgMTYpCQlDT05USU5VVU0gVEVDSE5PTE9HWSBDT1JQLgorCQkJCTIyMCBDT05USU5VVU0gRFJJVkUKKwkJCQlGTEVUQ0hFUiBOQyAyODczMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQTQgICAoaGV4KQkJR1JJTkFLRVIgU1lTVEVNIFRFQ0hOT0xPR0lFUworMDA2MEE0ICAgICAoYmFzZSAxNikJCUdSSU5BS0VSIFNZU1RFTSBURUNITk9MT0dJRVMKKwkJCQlCT1ggOTEyLTU2MQorCQkJCVNJTFZFUlRPTiAgMDEyNyAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTYwLUE1ICAgKGhleCkJCVBFUkZPUk1BTkNFIFRFTEVDT00gQ09SUC4KKzAwNjBBNSAgICAgKGJhc2UgMTYpCQlQRVJGT1JNQU5DRSBURUxFQ09NIENPUlAuCisJCQkJMTAgQ0FSTFNPTiBST0FECisJCQkJUk9DSEVTVEVSIE5ZIDE0NjEwLTEwMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUE2ICAgKGhleCkJCVBBUlRJQ0xFIE1FQVNVUklORyBTWVNURU1TCiswMDYwQTYgICAgIChiYXNlIDE2KQkJUEFSVElDTEUgTUVBU1VSSU5HIFNZU1RFTVMKKwkJCQk1NDc1IEFJUlBPUlQgQkxWRC4KKwkJCQlCT1VMREVSIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1BNyAgIChoZXgpCQlNSUNST1NFTlMgR21iSCAmIENPLiBLRworMDA2MEE3ICAgICAoYmFzZSAxNikJCU1JQ1JPU0VOUyBHbWJIICYgQ08uIEtHCisJCQkJS3VlZmVyc3RyYXNzZSAxNgorCQkJCUQtNTkwNjcgSGFtbSAgCisJCQkJR0VSTUFOWQorCiswMC02MC1BOCAgIChoZXgpCQlUSURPTUFUIEFCCiswMDYwQTggICAgIChiYXNlIDE2KQkJVElET01BVCBBQgorCQkJCQorCQkJCVMtMTIwODkgU1RPQ0tIT0xNICAKKwkJCQlTV0VERU4KKworMDAtNjAtQTkgICAoaGV4KQkJR0VTWVRFQyBNYkgKKzAwNjBBOSAgICAgKGJhc2UgMTYpCQlHRVNZVEVDIE1iSAorCQkJCVBBU0NBTFNUUkFTU0UgNgorCQkJCUQgNTIwNzYgQUFDSEVOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTYwLUFBICAgKGhleCkJCUlOVEVMTElHRU5UIERFVklDRVMgSU5DLiAoSURJKQorMDA2MEFBICAgICAoYmFzZSAxNikJCUlOVEVMTElHRU5UIERFVklDRVMgSU5DLiAoSURJKQorCQkJCTE3MTgtTCBCRUxNT05UIEFWRU5VRQorCQkJCUJBTFRJTU9SRSBNRCAyMTI0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQUIgICAoaGV4KQkJTEFSU0NPTSBJTkNPUlBPUkFURUQKKzAwNjBBQiAgICAgKGJhc2UgMTYpCQlMQVJTQ09NIElOQ09SUE9SQVRFRAorCQkJCTE4NDUgTUNDQU5ETEVTUyBEUklWRQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1BQyAgIChoZXgpCQlSRVNJTElFTkNFIENPUlBPUkFUSU9OCiswMDYwQUMgICAgIChiYXNlIDE2KQkJUkVTSUxJRU5DRSBDT1JQT1JBVElPTgorCQkJCTE3NTUgRU1CQVJDQURFUk8gUk9BRC1TVEUgIzEyMAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQUQgICAoaGV4KQkJTWVnYUNoaXBzIENvcnBvcmF0aW9uCiswMDYwQUQgICAgIChiYXNlIDE2KQkJTWVnYUNoaXBzIENvcnBvcmF0aW9uCisJCQkJNC0xLTYsTWl5YWhhcmEKKwkJCQlZb2RvZ2F3YS1rdQorCQkJCU9zYWthIDUzMi0wMDAzCisJCQkJSkFQQU4KKworMDAtNjAtQUUgICAoaGV4KQkJVFJJTyBJTkZPUk1BVElPTiBTWVNURU1TIEFCCiswMDYwQUUgICAgIChiYXNlIDE2KQkJVFJJTyBJTkZPUk1BVElPTiBTWVNURU1TIEFCCisJCQkJRk9HREVWQUdFTiA0QgorCQkJCVMtMTgzIDY0IFRBQlkgCisJCQkJU1dFREVOCisKKzAwLTYwLUFGICAgKGhleCkJCVBBQ0lGSUMgTUlDUk8gREFUQSwgSU5DLgorMDA2MEFGICAgICAoYmFzZSAxNikJCVBBQ0lGSUMgTUlDUk8gREFUQSwgSU5DLgorCQkJCTE2NzUxIE1JTExJS0FOIEFWRU5VRQorCQkJCUlSVklORSBDQSA5MjcxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQjAgICAoaGV4KQkJSEVXTEVUVC1QQUNLQVJEIENPLgorMDA2MEIwICAgICAoYmFzZSAxNikJCUhFV0xFVFQtUEFDS0FSRCBDTy4KKwkJCQlNUyA0MkxFCisJCQkJMTAwMDAgV09MRkUgUk9BRAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQjEgICAoaGV4KQkJSU5QVVQvT1VUUFVULCBJTkMuCiswMDYwQjEgICAgIChiYXNlIDE2KQkJSU5QVVQvT1VUUFVULCBJTkMuCisJCQkJMTIzMDAgUEFSQyBDUkVTVCBEUklWRQorCQkJCVNUQUZGT1JEIFRYIDc3NDc3LTI0MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUIyICAgKGhleCkJCVBST0NFU1MgQ09OVFJPTCBDT1JQLgorMDA2MEIyICAgICAoYmFzZSAxNikJCVBST0NFU1MgQ09OVFJPTCBDT1JQLgorCQkJCTY4NzUgTUlNTVMgRFJJVkUKKwkJCQlBVExBTlRBIEdBIDMwMzQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1CMyAgIChoZXgpCQlaLUNPTSwgSU5DLgorMDA2MEIzICAgICAoYmFzZSAxNikJCVotQ09NLCBJTkMuCisJCQkJN0YtMiwgTk8uOSwgUFJPU1BFUklUWSAxU1QgUkQuCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTYwLUI0ICAgKGhleCkJCUdMRU5BWVJFIFImRCBJTkMuCiswMDYwQjQgICAgIChiYXNlIDE2KQkJR0xFTkFZUkUgUiZEIElOQy4KKwkJCQkxNTcwIEtPT1RFTkFZIFNUUkVFVAorCQkJCVZBTkNPVVZFUiwgQkMgVjVLIDVCOCAgCisJCQkJQ0FOQURBCisKKzAwLTYwLUI1ICAgKGhleCkJCUtFQkEgR21iSAorMDA2MEI1ICAgICAoYmFzZSAxNikJCUtFQkEgR21iSAorCQkJCUdFV0VSQkVQQVJLIFVSRkFIUgorCQkJCUEtNDA0MSBMSU5aICAKKwkJCQlBVVNUUklBCisKKzAwLTYwLUI2ICAgKGhleCkJCUxBTkQgQ09NUFVURVIgQ08uLCBMVEQuCiswMDYwQjYgICAgIChiYXNlIDE2KQkJTEFORCBDT01QVVRFUiBDTy4sIExURC4KKwkJCQk3LTQtMTcgTklTSElOQUtBSklNQQorCQkJCVlPRE9HQVdBS1UgNTMyICAKKwkJCQlKQVBBTgorCiswMC02MC1CNyAgIChoZXgpCQlDSEFOTkVMTUFUSUMsIElOQy4KKzAwNjBCNyAgICAgKGJhc2UgMTYpCQlDSEFOTkVMTUFUSUMsIElOQy4KKwkJCQkxNzAwIEdJTExFU1BJRSBXQVkKKwkJCQlFTCBDQUpPTiBDQSA5MjAyMC0wOTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1COCAgIChoZXgpCQlDT1JFTElTIEluYy4KKzAwNjBCOCAgICAgKGJhc2UgMTYpCQlDT1JFTElTIEluYy4KKwkJCQkxMjYwNyBIaWRkZW5jcmVlayBXYXkKKwkJCQlDZXJyaXRvcyBDQSA5MDcwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQjkgICAoaGV4KQkJTkVDIEluZnJvbnRpYSBDb3Jwb3JhdGlvbgorMDA2MEI5ICAgICAoYmFzZSAxNikJCU5FQyBJbmZyb250aWEgQ29ycG9yYXRpb24KKwkJCQkyLTYtMSxLaXRhbWlrYXRhLFRha2F0c3Uta3UKKwkJCQlLYXdhc2FraSAgMjEzLTg1MTEKKwkJCQlKQVBBTgorCiswMC02MC1CQSAgIChoZXgpCQlTQUhBUkEgTkVUV09SS1MsIElOQy4KKzAwNjBCQSAgICAgKGJhc2UgMTYpCQlTQUhBUkEgTkVUV09SS1MsIElOQy4KKwkJCQkzMzUgSElHSExBTkQgQVZFLgorCQkJCUNIRVNISVJFIENUIDA2NDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1CQiAgIChoZXgpCQlDQUJMRVRST04gLSBORVRMSU5LLCBJTkMuCiswMDYwQkIgICAgIChiYXNlIDE2KQkJQ0FCTEVUUk9OIC0gTkVUTElOSywgSU5DLgorCQkJCTM1IElORFVTVFJJQUwgV0FZCisJCQkJUC5PLiBCT1ggNTAwNQorCQkJCVJPQ0hFU1RFUiBOSCAwMzg2Ni01MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1CQyAgIChoZXgpCQlLZXVuWW91bmcgRWxlY3Ryb25pY3MgJiBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorMDA2MEJDICAgICAoYmFzZSAxNikJCUtldW5Zb3VuZyBFbGVjdHJvbmljcyAmIENvbW11bmljYXRpb24gQ28uLCBMdGQuCisJCQkJMzI1LTc2LCBEQUVIRVVORy1ET05HLCBNQVBPLUdVLAorCQkJCVNFT1VMICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNjAtQkQgICAoaGV4KQkJSFVCQkVMTC1QVUxTRUNPTQorMDA2MEJEICAgICAoYmFzZSAxNikJCUhVQkJFTEwtUFVMU0VDT00KKwkJCQkyOTAwIFRPV0VSVklFVyBST0FECisJCQkJSEVSTkRPTiBWQSAyMTA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQkUgICAoaGV4KQkJV0VCVFJPTklDUworMDA2MEJFICAgICAoYmFzZSAxNikJCVdFQlRST05JQ1MKKwkJCQkzQi0xICA4LTItMTIKKwkJCQlOSVNISS1HT1RBTkRBCisJCQkJU0hJTkFHQVdBLUtVIFRPS1lPIDE0MSAgCisJCQkJSkFQQU4KKworMDAtNjAtQkYgICAoaGV4KQkJTUFDUkFJR09SIFNZU1RFTVMsIElOQy4KKzAwNjBCRiAgICAgKGJhc2UgMTYpCQlNQUNSQUlHT1IgU1lTVEVNUywgSU5DLgorCQkJCVBPIEJPWCAxMDA4CisJCQkJQlJPT0tMSU5FIFZJTExBR0UgTUEgMDIxNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUMwICAgKGhleCkJCU5lcmEgTmV0d29ya3MgQVMKKzAwNjBDMCAgICAgKGJhc2UgMTYpCQlOZXJhIE5ldHdvcmtzIEFTCisJCQkJS29rc3RhZHZlaWVuIDIzCisJCQkJQmVyZ2VuICA1MDIwCisJCQkJTk9SV0FZCisKKzAwLTYwLUMxICAgKGhleCkJCVdhdmVTcGFuIENvcnBvcmF0aW9uCiswMDYwQzEgICAgIChiYXNlIDE2KQkJV2F2ZVNwYW4gQ29ycG9yYXRpb24KKwkJCQk1MDAgTi4gQkVSTkFSRE8gQVZFLgorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUMyICAgKGhleCkJCU1QTCBBRworMDA2MEMyICAgICAoYmFzZSAxNikJCU1QTCBBRworCQkJCVRhZWZlcm5zdHJhc3NlIDIwCisJCQkJQ0gtNTQwNSBEYWV0dHdpbCAKKwkJCQlTV0lUWkVSTEFORAorCiswMC02MC1DMyAgIChoZXgpCQlORVRWSVNJT04gQ09SUE9SQVRJT04KKzAwNjBDMyAgICAgKGJhc2UgMTYpCQlORVRWSVNJT04gQ09SUE9SQVRJT04KKwkJCQlNUyMgMUEKKwkJCQlPTkUgQ09NQUMgTE9PUAorCQkJCVJPTktPTktPTUEgTlkgMTE3NzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUM0ICAgKGhleCkJCVNPTElUT04gU1lTVEVNUyBLLksuCiswMDYwQzQgICAgIChiYXNlIDE2KQkJU09MSVRPTiBTWVNURU1TIEsuSy4KKwkJCQkyLTQtMyBTSElOSlVLVSwgU0hJTkpVS1UtS1UKKwkJCQlUT0tZTyAxNjAgIAorCQkJCUpBUEFOCisKKzAwLTYwLUM1ICAgKGhleCkJCUFOQ09UIENPUlAuCiswMDYwQzUgICAgIChiYXNlIDE2KQkJQU5DT1QgQ09SUC4KKwkJCQkxMTUgQ09OU1RJVFVUSU9OIERSLgorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUM2ICAgKGhleCkJCURDUyBBRworMDA2MEM2ICAgICAoYmFzZSAxNikJCURDUyBBRworCQkJCVNBTFpBQ0hTVFJBU1MgMzEKKwkJCQlELTE0MTI5ICBCRVJMSU4gIAorCQkJCUdFUk1BTlkKKworMDAtNjAtQzcgICAoaGV4KQkJQU1BVEkgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwNjBDNyAgICAgKGJhc2UgMTYpCQlBTUFUSSBDT01NVU5JQ0FUSU9OUyBDT1JQLgorCQkJCTIwNDMgU0FNQVJJVEFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUM4ICAgKGhleCkJCUtVS0EgV0VMRElORyBTWVNURU1TICYgUk9CT1RTCiswMDYwQzggICAgIChiYXNlIDE2KQkJS1VLQSBXRUxESU5HIFNZU1RFTVMgJiBST0JPVFMKKwkJCQlCTFVFQ0hFUlNUUkFTU0UgMTQ0CisJCQkJREVQVC4gUkUtU0gKKwkJCQlELTg2MTY1IEFVR1NCVVJHICAKKwkJCQlHRVJNQU5ZCisKKzAwLTYwLUM5ICAgKGhleCkJCUNvbnRyb2xOZXQsIEluYy4KKzAwNjBDOSAgICAgKGJhc2UgMTYpCQlDb250cm9sTmV0LCBJbmMuCisJCQkJNzQ3IENBTURFTiwgU1RFLiBBCisJCQkJQ0FNUEJFTEwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUNBICAgKGhleCkJCUhBUk1PTklDIFNZU1RFTVMgSU5DT1JQT1JBVEVECiswMDYwQ0EgICAgIChiYXNlIDE2KQkJSEFSTU9OSUMgU1lTVEVNUyBJTkNPUlBPUkFURUQKKwkJCQkxOTkgMVNUIFNUUkVFVCAtIFNURSAjMzAyCisJCQkJTE9TIEFMVE9TIENBIDk0MDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1DQiAgIChoZXgpCQlISVRBQ0hJIFpPU0VOIENPUlBPUkFUSU9OCiswMDYwQ0IgICAgIChiYXNlIDE2KQkJSElUQUNISSBaT1NFTiBDT1JQT1JBVElPTgorCQkJCTMtNCwgU0FLVVJBSklNQSAxLUNIT01FCisJCQkJS09OT0hBTkEtS1UsIE9TQUtBIDU1NCAgCisJCQkJSkFQQU4KKworMDAtNjAtQ0MgICAoaGV4KQkJRU1UUkFLLCBJTkNPUlBPUkFURUQKKzAwNjBDQyAgICAgKGJhc2UgMTYpCQlFTVRSQUssIElOQ09SUE9SQVRFRAorCQkJCTcxNTAgQ0FNUFVTIERSSVZFLCBTVEUgIzE4MAorCQkJCUNPTE9SQURPIFNQUklOR1MgQ08gODA5MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUNEICAgKGhleCkJCVZpZGVvU2VydmVyLCBJbmMuCiswMDYwQ0QgICAgIChiYXNlIDE2KQkJVmlkZW9TZXJ2ZXIsIEluYy4KKwkJCQk1IEZPUkJFUyBST0FECisJCQkJTEVYSU5HVE9OIE1BIDAyMTczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1DRSAgIChoZXgpCQlBQ0NMQUlNIENPTU1VTklDQVRJT05TCiswMDYwQ0UgICAgIChiYXNlIDE2KQkJQUNDTEFJTSBDT01NVU5JQ0FUSU9OUworCQkJCTUwMDAgT0xEIElST05TSURFUyBEUklWRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1DRiAgIChoZXgpCQlBTFRFT04gTkVUV09SS1MsIElOQy4KKzAwNjBDRiAgICAgKGJhc2UgMTYpCQlBTFRFT04gTkVUV09SS1MsIElOQy4KKwkJCQk1MCBHUkVBVCBPQUtTIEJMVkQuCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUQwICAgKGhleCkJCVNOTVAgUkVTRUFSQ0ggSU5DT1JQT1JBVEVECiswMDYwRDAgICAgIChiYXNlIDE2KQkJU05NUCBSRVNFQVJDSCBJTkNPUlBPUkFURUQKKwkJCQkzMDAxIEtJTUJFUkxJTiBIRUlHSFRTIFJPQUQKKwkJCQlLTk9YVklMTEUgVE4gMzc5MjAtOTcxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRDEgICAoaGV4KQkJQ0FTQ0FERSBDT01NVU5JQ0FUSU9OUworMDA2MEQxICAgICAoYmFzZSAxNikJCUNBU0NBREUgQ09NTVVOSUNBVElPTlMKKwkJCQk2IFRFQ0hOT0xPR1kgUEFSSyBEUklWRQorCQkJCVdFU1RGT1JEIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1EMiAgIChoZXgpCQlMVUNFTlQgVEVDSE5PTE9HSUVTIFRBSVdBTiBURUxFQ09NTVVOSUNBVElPTlMgQ08uLCBMVEQuCiswMDYwRDIgICAgIChiYXNlIDE2KQkJTFVDRU5UIFRFQ0hOT0xPR0lFUyBUQUlXQU4gVEVMRUNPTU1VTklDQVRJT05TIENPLiwgTFRELgorCQkJCSMyLCBJTk5PVkFUSU9OIFJPQUQgSUkKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU4gQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTYwLUQzICAgKGhleCkJCUFUJlQKKzAwNjBEMyAgICAgKGJhc2UgMTYpCQlBVCZUCisJCQkJMTAxIENSQVdGT1JEUyBDT1JORVIgUk9BRCwgUmQuIDFKMzIxCisJCQkJUC5PLiBCT1ggMzAzMAorCQkJCUhPTE1ERUwgTkogMDc3MzMtMzAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRDQgICAoaGV4KQkJRUxEQVQgQ09NTVVOSUNBVElPTiBMVEQuCiswMDYwRDQgICAgIChiYXNlIDE2KQkJRUxEQVQgQ09NTVVOSUNBVElPTiBMVEQuCisJCQkJMTAgSEFLSVNIT04gU1RSRUVUCisJCQkJQk5FSS1CUkFLICA1MTIwMyAgCisJCQkJSVNSQUVMCisKKzAwLTYwLUQ1ICAgKGhleCkJCU1JWUFDSEkgVEVDSE5PUyBDT1JQLgorMDA2MEQ1ICAgICAoYmFzZSAxNikJCU1JWUFDSEkgVEVDSE5PUyBDT1JQLgorCQkJCTk1LTMsIEZVVEFTVVpVS0EKKwkJCQlOT0RBIENJVFksIENISUJBLCAyNzggIAorCQkJCUpBUEFOCisKKzAwLTYwLUQ2ICAgKGhleCkJCU5vdkF0ZWwgV2lyZWxlc3MgVGVjaG5vbG9naWVzIEx0ZC4KKzAwNjBENiAgICAgKGJhc2UgMTYpCQlOb3ZBdGVsIFdpcmVsZXNzIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJU1VJVEUgMjAwLCA2NzE1LThUSCBTVFJFRVQgTkUKKwkJCQlDQUxHQVJZLCBBTEJFUlRBIFQyRSA4TTQgIAorCQkJCUNBTkFEQQorCiswMC02MC1ENyAgIChoZXgpCQlFQ09MRSBQT0xZVEVDSE5JUVVFIEZFREVSQUxFIERFIExBVVNBTk5FIChFUEZMKQorMDA2MEQ3ICAgICAoYmFzZSAxNikJCUVDT0xFIFBPTFlURUNITklRVUUgRkVERVJBTEUgREUgTEFVU0FOTkUgKEVQRkwpCisJCQkJRUNVQkxFTlMKKwkJCQlDSC0xMDE1IExBVVNBTk5FICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC02MC1EOCAgIChoZXgpCQlFTE1JQyBTWVNURU1TLCBJTkMuCiswMDYwRDggICAgIChiYXNlIDE2KQkJRUxNSUMgU1lTVEVNUywgSU5DLgorCQkJCURBSS1JQ0hJIFNFSU1FSSBCTERHLgorCQkJCTQtNTkgQkVOVEVOLURPUkksIE5BS0EtS1UKKwkJCQlZT0tPSEFNQSAyMzEgIAorCQkJCUpBUEFOCisKKzAwLTYwLUQ5ICAgKGhleCkJCVRSQU5TWVMgTkVUV09SS1MgSU5DLgorMDA2MEQ5ICAgICAoYmFzZSAxNikJCVRSQU5TWVMgTkVUV09SS1MgSU5DLgorCQkJCTM0MDMgR1JJRkZJVEgKKwkJCQlTVC4gTEFVUkVOVCwgUVVFQkVDIEg0VCAxVzUgIAorCQkJCUNBTkFEQQorCiswMC02MC1EQSAgIChoZXgpCQlKQk0gRUxFQ1RST05JQ1MgQ08uCiswMDYwREEgICAgIChiYXNlIDE2KQkJSkJNIEVMRUNUUk9OSUNTIENPLgorCQkJCTQ2NDUgTGFHdWFyZGlhbiBEcml2ZQorCQkJCVNULiBMT1VJUyBNTyA2MzEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtREIgICAoaGV4KQkJTlRQIEVMRUtUUk9OSUsgQS9TCiswMDYwREIgICAgIChiYXNlIDE2KQkJTlRQIEVMRUtUUk9OSUsgQS9TCisJCQkJS05BUEhPTE0gNworCQkJCURLLTI3MzAgSEVSTEVWICAKKwkJCQlERU5NQVJLCisKKzAwLTYwLURDICAgKGhleCkJCVRveW8gTmV0d29yayBTeXN0ZW1zICAmIFN5c3RlbSBJbnRlZ3JhdGlvbiBDby4gTFRECiswMDYwREMgICAgIChiYXNlIDE2KQkJVG95byBOZXR3b3JrIFN5c3RlbXMgICYgU3lzdGVtIEludGVncmF0aW9uIENvLiBMVEQKKwkJCQkxOCBOaWhvbi1vZG9yaSxOYWthLWt1CisJCQkJWW9rb2hhbWEsIEthbmFnYXdhICAyMzEtMDAyMQorCQkJCUpBUEFOCisKKzAwLTYwLUREICAgKGhleCkJCU1ZUklDT00sIElOQy4KKzAwNjBERCAgICAgKGJhc2UgMTYpCQlNWVJJQ09NLCBJTkMuCisJCQkJMzI1QiBOLiBTQU5UQSBBTklUQSBBVkUuCisJCQkJQVJDQURJQSBDQSA5MTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtREUgICAoaGV4KQkJS2F5c2VyLVRocmVkZSBHbWJICiswMDYwREUgICAgIChiYXNlIDE2KQkJS2F5c2VyLVRocmVkZSBHbWJICisJCQkJV29sZnJhdHNoYXVzZXIgU3RyLiA0OAorCQkJCUQtODEzNzkgTXVuaWNoIAorCQkJCUdFUk1BTlkKKworMDAtNjAtREYgICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCiswMDYwREYgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJMTc0NSBUZWNobm9sb2d5IERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1FMCAgIChoZXgpCQlBWElPTSBURUNITk9MT0dZIENPLiwgTFRELgorMDA2MEUwICAgICAoYmFzZSAxNikJCUFYSU9NIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJM0YsIDE0LCBMQU5FIDIzNQorCQkJCVBBTyBDSElBTyBST0FELCBIU0lOIFRJRU4KKwkJCQlUQUlQRUkgSFNJRU4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNjAtRTEgICAoaGV4KQkJT1JDS0lUIENPTU1VTklDQVRJT05TIExURC4KKzAwNjBFMSAgICAgKGJhc2UgMTYpCQlPUkNLSVQgQ09NTVVOSUNBVElPTlMgTFRELgorCQkJCTM4IE5BSEFMQVQgWUlaSEFLIFNUUkVFVAorCQkJCVRFTC1BVklWICA2NzQ0OCAgCisJCQkJSVNSQUVMCisKKzAwLTYwLUUyICAgKGhleCkJCVFVRVNUIEVOR0lORUVSSU5HICYgREVWRUxPUE1FTlQKKzAwNjBFMiAgICAgKGJhc2UgMTYpCQlRVUVTVCBFTkdJTkVFUklORyAmIERFVkVMT1BNRU5UCisJCQkJMTM0NSBFQVNUIFJPQ0sgV1JFTiBST0FECisJCQkJUEhPRU5JWCBBWiA4NTA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRTMgICAoaGV4KQkJQVJCSU4gSU5TVFJVTUVOVFMKKzAwNjBFMyAgICAgKGJhc2UgMTYpCQlBUkJJTiBJTlNUUlVNRU5UUworCQkJCTMyMDYgTE9OR01JUkUgRFJJVkUKKwkJCQlDT0xMRUdFIFNUQVRJT04gVFggNzc4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUU0ICAgKGhleCkJCUNPTVBVU0VSVkUsIElOQy4KKzAwNjBFNCAgICAgKGJhc2UgMTYpCQlDT01QVVNFUlZFLCBJTkMuCisJCQkJNTAwMCBBUkxJTkdUT04gQ0VOVFJFIEJMVkQuCisJCQkJUC5PLiBCT1ggMjAyMTIKKwkJCQlDT0xVTUJVUyBPSCA0MzIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRTUgICAoaGV4KQkJRlVKSSBBVVRPTUFUSU9OIENPLiwgTFRELgorMDA2MEU1ICAgICAoYmFzZSAxNikJCUZVSkkgQVVUT01BVElPTiBDTy4sIExURC4KKwkJCQkzLTIzLTEwLCBORUdJU0hJCisJCQkJVVJBV0EtU0hJLCAzMzYgU0FJVEFNQSAgCisJCQkJSkFQQU4KKworMDAtNjAtRTYgICAoaGV4KQkJU0hPTUlUSSBTWVNURU1TIElOQ09SUE9SQVRFRAorMDA2MEU2ICAgICAoYmFzZSAxNikJCVNIT01JVEkgU1lTVEVNUyBJTkNPUlBPUkFURUQKKwkJCQkyMDk5IEdBVEVXQVkgUExBQ0UgLSBTVEUuIzIyMAorCQkJCVNBTiBKT1NFIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1FNyAgIChoZXgpCQlSQU5EQVRBCiswMDYwRTcgICAgIChiYXNlIDE2KQkJUkFOREFUQQorCQkJCVBPIEJPWCAyMDkKKwkJCQlIQVdUSE9STiAgVklDICAzMTIyICAKKwkJCQlBVVNUUkFMSUEKKworMDAtNjAtRTggICAoaGV4KQkJSElUQUNISSBDT01QVVRFUiBQUk9EVUNUUyAoQU1FUklDQSksIElOQy4KKzAwNjBFOCAgICAgKGJhc2UgMTYpCQlISVRBQ0hJIENPTVBVVEVSIFBST0RVQ1RTIChBTUVSSUNBKSwgSU5DLgorCQkJCTMxMDEgVEFTTUFOIERSSVZFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUU5ICAgKGhleCkJCUFUT1AgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDYwRTkgICAgIChiYXNlIDE2KQkJQVRPUCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQlTVUlURSAzMDUsIE5PLiA0NywgUEFSSyBBVkVOVUUgSUksCisJCQkJIFNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLCisJCQkJSFNJTkNIVSAzMDA0NyAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC02MC1FQSAgIChoZXgpCQlTdHJlYW1Mb2dpYworMDA2MEVBICAgICAoYmFzZSAxNikJCVN0cmVhbUxvZ2ljCisJCQkJMjEzMjkgTk9SREhPRkYgU1RSRUVUCisJCQkJQ0hBVFNXT1JUSCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRUIgICAoaGV4KQkJRk9VUlRIVFJBQ0sgU1lTVEVNUworMDA2MEVCICAgICAoYmFzZSAxNikJCUZPVVJUSFRSQUNLIFNZU1RFTVMKKwkJCQlVTklUIDMgVEhFIFNZQ0FNT1JFUworCQkJCTI3IE1JTEwgUk9BRAorCQkJCU1BUkxPVyAtIFNMNyAxUUIgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTYwLUVDICAgKGhleCkJCUhFUk1BUlkgT1BUTyBFTEVDVFJPTklDUyBJTkMuCiswMDYwRUMgICAgIChiYXNlIDE2KQkJSEVSTUFSWSBPUFRPIEVMRUNUUk9OSUNTIElOQy4KKwkJCQkyMDEtNDA1MCBHUkFWRUxFWSBTVAorCQkJCUJVUk5BQlksIEJDIFY1Qy0zVDYgIAorCQkJCUNBTkFEQQorCiswMC02MC1FRCAgIChoZXgpCQlSSUNBUkRPIFRFU1QgQVVUT01BVElPTiBMVEQuCiswMDYwRUQgICAgIChiYXNlIDE2KQkJUklDQVJETyBURVNUIEFVVE9NQVRJT04gTFRELgorCQkJCUxPV0VTTU9PUiBXSEFSRgorCQkJCVdPUkNFU1RFUiwgV1IxMlJTICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC02MC1FRSAgIChoZXgpCQlBUE9MTE8KKzAwNjBFRSAgICAgKGJhc2UgMTYpCQlBUE9MTE8KKwkJCQkzNjEwIEJJUkNIIFNUUkVFVC0tU1RFICMxMDAKKwkJCQlORVdQT1JUIEJFQUNIIENBIDkyNjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1FRiAgIChoZXgpCQlGTFlURUNIIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDYwRUYgICAgIChiYXNlIDE2KQkJRkxZVEVDSCBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCU5vLjE2OCBTaW5nLWFpIFJkLiwgTmVpaHUgRGlzdHJpY3QKKwkJCQlUQUlQRUkgQ0lUWSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC02MC1GMCAgIChoZXgpCQlKT0hOU09OICYgSk9ITlNPTiBNRURJQ0FMLCBJTkMKKzAwNjBGMCAgICAgKGJhc2UgMTYpCQlKT0hOU09OICYgSk9ITlNPTiBNRURJQ0FMLCBJTkMKKwkJCQk0MTEwIEdFT1JHRSBSRC4KKwkJCQlUQU1QQSBGTCAzMzYzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRjEgICAoaGV4KQkJRVhQIENPTVBVVEVSLCBJTkMuCiswMDYwRjEgICAgIChiYXNlIDE2KQkJRVhQIENPTVBVVEVSLCBJTkMuCisJCQkJMTQxIEVJTEVFTiBXQVkKKwkJCQlTWU9TU0VUIE5ZIDExNzkxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1GMiAgIChoZXgpCQlMQVNFUkdSQVBISUNTLCBJTkMuCiswMDYwRjIgICAgIChiYXNlIDE2KQkJTEFTRVJHUkFQSElDUywgSU5DLgorCQkJCTIwIEFEQQorCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRjMgICAoaGV4KQkJUGVyZm9ybWFuY2UgQW5hbHlzaXMgQnJvYWRiYW5kLCBTcGlyZW50IHBsYworMDA2MEYzICAgICAoYmFzZSAxNikJCVBlcmZvcm1hbmNlIEFuYWx5c2lzIEJyb2FkYmFuZCwgU3BpcmVudCBwbGMKKwkJCQkyNzM0OSBBZ291cmEgUm9hZAorCQkJCUNhbGFiYXNhcyBIaWxscyBDQSA5MTMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRjQgICAoaGV4KQkJQURWQU5DRUQgQ09NUFVURVIgU09MVVRJT05TLCBJbmMuCiswMDYwRjQgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgQ09NUFVURVIgU09MVVRJT05TLCBJbmMuCisJCQkJMTI2NzUgREFOSUVMU09OIENPVVJUCisJCQkJU1VJVEUgIzQwNworCQkJCVBPV0FZIENBIDkyMDY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1GNSAgIChoZXgpCQlJQ09OIFdFU1QsIElOQy4KKzAwNjBGNSAgICAgKGJhc2UgMTYpCQlJQ09OIFdFU1QsIElOQy4KKwkJCQkzMzQyIFNPVVRIIDMwMCBFQVNUCisJCQkJU0FMVCBMQUtFIENJVFkgVVQgODQxMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUY2ICAgKGhleCkJCU5FWFRFU1QgQ09NTVVOSUNBVElPTlMgUFJPRFVDVFMsIElOQy4KKzAwNjBGNiAgICAgKGJhc2UgMTYpCQlORVhURVNUIENPTU1VTklDQVRJT05TIFBST0RVQ1RTLCBJTkMuCisJCQkJVFdPIE1JRCBBTUVSSUNBIFBMQVpBLCBTVEUuNTAwCisJCQkJT0FLQlJPT0sgVEVSUkFDRSBJTCA2MDE4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRjcgICAoaGV4KQkJREFUQUZVU0lPTiBTWVNURU1TCiswMDYwRjcgICAgIChiYXNlIDE2KQkJREFUQUZVU0lPTiBTWVNURU1TCisJCQkJUC5PLiBCT1ggNTgyCisJCQkJU1RFTExFTkJPU0NILCAgNzU5OSAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTYwLUY4ICAgKGhleCkJCUxvcmFuIEludGVybmF0aW9uYWwgVGVjaG5vbG9naWVzIEluYy4KKzAwNjBGOCAgICAgKGJhc2UgMTYpCQlMb3JhbiBJbnRlcm5hdGlvbmFsIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJOTU1IEdSRUVOIFZBTExFWSBDUkVTQ0VOVAorCQkJCVNVSVRFICMxNjUKKwkJCQlPVFRBV0EsIE9OVEFSSU8gSzJDIDNWNCAgCisJCQkJQ0FOQURBCisKKzAwLTYwLUY5ICAgKGhleCkJCURJQU1PTkQgTEFORSBDT01NVU5JQ0FUSU9OUworMDA2MEY5ICAgICAoYmFzZSAxNikJCURJQU1PTkQgTEFORSBDT01NVU5JQ0FUSU9OUworCQkJCTEzMTAgUkVEV09PRCBXQVkgLSBTVEUuCisJCQkJUEVUQUxVTUEgQ0EgOTQ5NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUZBICAgKGhleCkJCUVEVUNBVElPTkFMIFRFQ0hOT0xPR1kgUkVTT1VSQ0VTLCBJTkMuCiswMDYwRkEgICAgIChiYXNlIDE2KQkJRURVQ0FUSU9OQUwgVEVDSE5PTE9HWSBSRVNPVVJDRVMsIElOQy4KKwkJCQkxNzQyIENIVVJDSCBTVFJFRVQKKwkJCQlIT0xCUk9PSyBOWSAxMTc0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRkIgICAoaGV4KQkJUEFDS0VURUVSLCBJTkMuCiswMDYwRkIgICAgIChiYXNlIDE2KQkJUEFDS0VURUVSLCBJTkMuCisJCQkJMTAyMDEgTi4gREUgQU5aQSBCT1VMRVZBUkQKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUZDICAgKGhleCkJCUNPTlNFUlZBVElPTiBUSFJPVUdIIElOTk9WQVRJT04gTFRELgorMDA2MEZDICAgICAoYmFzZSAxNikJCUNPTlNFUlZBVElPTiBUSFJPVUdIIElOTk9WQVRJT04gTFRELgorCQkJCTEwNDAgV0hJUFBMRSBTVC4tIFNURS4gIzIyNQorCQkJCVBSRVNDT1RUIEFaIDg2MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1GRCAgIChoZXgpCQlOZXRJQ3MsIEluYy4KKzAwNjBGRCAgICAgKGJhc2UgMTYpCQlOZXRJQ3MsIEluYy4KKwkJCQk0MiBOQUdPRyBQQVJLCisJCQkJQUNUT04gTUEgMDE3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUZFICAgKGhleCkJCUxZTlggU1lTVEVNIERFVkVMT1BFUlMsIElOQy4KKzAwNjBGRSAgICAgKGJhc2UgMTYpCQlMWU5YIFNZU1RFTSBERVZFTE9QRVJTLCBJTkMuCisJCQkJMTc1TiBORVcgQk9TVE9OIFNUUkVFVAorCQkJCVdPQlVSTiBNQSAwMTgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRkYgICAoaGV4KQkJUXVWaXMsIEluYy4KKzAwNjBGRiAgICAgKGJhc2UgMTYpCQlRdVZpcywgSW5jLgorCQkJCTI5MjEgU1cgV0FOQU1BS0VSIERSSVZFCisJCQkJU1VJVEUgIzEwNworCQkJCVRPUEVLQSBLUyA2NjYxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjQtNDAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDA2NDQwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNkQtRkIgICAoaGV4KQkJVnV0cml4IChVSykgTHRkCiswMDZERkIgICAgIChiYXNlIDE2KQkJVnV0cml4IChVSykgTHRkCisJCQkJVW5pdCAxIFJlZCBMb2RnZSBCdXNpbmVzcyBQYXJrCisJCQkJV2FybGV5cyBMYW5lCisJCQkJV2VzdG9uLXN1cGVyLW1hcmUgTm9ydGggU29tZXJzZXQgQlMyNCA3VE4KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC03MC1CMCAgIChoZXgpCQlNL0EtQ09NIElOQy4gQ09NUEFOSUVTCiswMDcwQjAgICAgIChiYXNlIDE2KQkJTS9BLUNPTSBJTkMuIENPTVBBTklFUworCQkJCTExNzE3IEVYUExPUkFUSU9OIExBTkUKKwkJCQlHRVJNQU5UT1dOIE1EIDIwNzY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC03MC1CMyAgIChoZXgpCQlEQVRBIFJFQ0FMTCBMVEQuCiswMDcwQjMgICAgIChiYXNlIDE2KQkJREFUQSBSRUNBTEwgTFRELgorCQkJCVNPTkRFUyBQTEFDRQorCQkJCURPUktJTkcgU1VSUkVZIFJINCAzRUYKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTcyLTk4ICAgKGhleCkJCUtBT04gTUVESUEgQ28uLCBMdGQuCiswMDcyOTggICAgIChiYXNlIDE2KQkJS0FPTiBNRURJQSBDby4sIEx0ZC4KKwkJCQlLYW9ubWVkaWEgQnVpbGRpbmcsIDUxMy00CisJCQkJWWF0YXAtRG9uZywgQnVuZGFuZy1HdQorCQkJCVN1bmduYW0tQ2l0eSBLeW9uZ2dpLURvIDQ2My04MzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNzgtOUUgICAoaGV4KQkJU0FHRU1DT00KKzAwNzg5RSAgICAgKGJhc2UgMTYpCQlTQUdFTUNPTQorCQkJCTI1MCByb3V0ZSBkZSBsJ0VtcGVyZXVyCisJCQkJUlVFSUwgTUFMTUFJU09OICA5Mjg0OAorCQkJCUZSQU5DRQorCiswMC03Ri0yOCAgIChoZXgpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworMDA3RjI4ICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0wMCAgIChoZXgpCQlNVUxUSVRFQ0ggU1lTVEVNUywgSU5DLgorMDA4MDAwICAgICAoYmFzZSAxNikJCU1VTFRJVEVDSCBTWVNURU1TLCBJTkMuCisJCQkJMjIwNSBXT09EQUxFIERSSVZFCisJCQkJTU9VTkRTIFZJRVcgTU4gNTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTAxICAgKGhleCkJCVBFUklQSE9OSUNTIENPUlBPUkFUSU9OCiswMDgwMDEgICAgIChiYXNlIDE2KQkJUEVSSVBIT05JQ1MgQ09SUE9SQVRJT04KKwkJCQk0MDAwIFZFVEVSQU5TIE1FTU9SSUFMIEhJR0hXQVkKKwkJCQlCT0hFTUlBIE5FVyBZT1JLIDExNzE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0wMiAgIChoZXgpCQlTQVRFTENPTSAoVUspIExURAorMDA4MDAyICAgICAoYmFzZSAxNikJCVNBVEVMQ09NIChVSykgTFRECisJCQkJVEVDSE5PTE9HWSBUUkFOU0ZFUiBDRU5UUkUKKwkJCQlTSUxXT09EIFBBUkssIEJVQ0tIVVJTVCBST0FEIEFTQ09ULCBCRVJLCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTAzICAgKGhleCkJCUhZVEVDIEVMRUNUUk9OSUNTIExURC4KKzAwODAwMyAgICAgKGJhc2UgMTYpCQlIWVRFQyBFTEVDVFJPTklDUyBMVEQuCisJCQkJNSBDUkFET0NLIFJPQUQKKwkJCQlSRUFESU5HIEJFUktTIFJHNSA0RFgKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtMDQgICAoaGV4KQkJQU5UTE9XIENPTU1VTklDQVRJT05TLCBMVEQuCiswMDgwMDQgICAgIChiYXNlIDE2KQkJQU5UTE9XIENPTU1VTklDQVRJT05TLCBMVEQuCisJCQkJNCBDT0xUSFJPUCBXQVkKKwkJCQlUSEFUQ0hBTSBSRzE5IDRMVworCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC0wNSAgIChoZXgpCQlDQUNUVVMgQ09NUFVURVIgSU5DLgorMDA4MDA1ICAgICAoYmFzZSAxNikJCUNBQ1RVUyBDT01QVVRFUiBJTkMuCisJCQkJMTEyMCBNRVRST0NSRVNUIERSSVZFCisJCQkJU1VJVEUgMTAzCisJCQkJQ0FSUk9MTFRPTiBUWCA3NTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMDYgICAoaGV4KQkJQ09NUFVBREQgQ09SUE9SQVRJT04KKzAwODAwNiAgICAgKGJhc2UgMTYpCQlDT01QVUFERCBDT1JQT1JBVElPTgorCQkJCUVOR0lORUVSSU5HCisJCQkJMTIzMDMgVEVDSE5PTE9HWSBCTFZELgorCQkJCUFVU1RJTiBUWCA3ODcyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMDcgICAoaGV4KQkJRExPRyBOQy1TWVNURU1FCiswMDgwMDcgICAgIChiYXNlIDE2KQkJRExPRyBOQy1TWVNURU1FCisJCQkJV0VSTkVSLVZPTi1TSUVNRU5TIFNUUkFTU0UgMTMKKwkJCQlELTgwMzcsIE9MQ0hJTkcKKwkJCQlHRVJNQU5ZCisKKzAwLTgwLTA4ICAgKGhleCkJCURZTkFURUNIIENPTVBVVEVSIFNZU1RFTVMKKzAwODAwOCAgICAgKGJhc2UgMTYpCQlEWU5BVEVDSCBDT01QVVRFUiBTWVNURU1TCisJCQkJMjgwIEJFUk5BUkRPIEFWRU5VRQorCQkJCVAuTy4gQk9YIDc0MDAKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDM5LTc0MDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTA5ICAgKGhleCkJCUpVUElURVIgU1lTVEVNUywgSU5DLgorMDA4MDA5ICAgICAoYmFzZSAxNikJCUpVUElURVIgU1lTVEVNUywgSU5DLgorCQkJCTMwNzMgVEVBR0FSREVOIFNUUkVFVAorCQkJCVNBTiBMRUFORFJPIENBIDk0NTc3LTU3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTBBICAgKGhleCkJCUpBUEFOIENPTVBVVEVSIENPUlAuCiswMDgwMEEgICAgIChiYXNlIDE2KQkJSkFQQU4gQ09NUFVURVIgQ09SUC4KKwkJCQlMLiBLLiBCTERHLiBISUdBU0hJIEtBTkRBCisJCQkJMi02LTkgQ0hJWU9EQS1LVSBUT0tZTyAxMDEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTBCICAgKGhleCkJCUNTSyBDT1JQT1JBVElPTgorMDA4MDBCICAgICAoYmFzZSAxNikJCUNTSyBDT1JQT1JBVElPTgorCQkJCTE4RiBNQVRTVVNISVRBIElNUCBCTERHLAorCQkJCTEtMy03IFNISVJPTUkgQ0hVTy1LVSBPU0FLQQorCQkJCUpBUEFOIDU0MAorCQkJCUpBUEFOCisKKzAwLTgwLTBDICAgKGhleCkJCVZJREVDT00gTElNSVRFRAorMDA4MDBDICAgICAoYmFzZSAxNikJCVZJREVDT00gTElNSVRFRAorCQkJCU5FV1RPV04gRVNUQVRFCisJCQkJSEVOTEVZLU9OLVRIQU1FUyBPWE9OICBSRzkgMUhHCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTBEICAgKGhleCkJCVZPU1NXSU5LRUwgRi5VLgorMDA4MDBEICAgICAoYmFzZSAxNikJCVZPU1NXSU5LRUwgRi5VLgorCQkJCUFNIEpPU1RFTkhPRiAxNQorCQkJCUQtNDEzMCBNT0VSUworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTgwLTBFICAgKGhleCkJCUFUTEFOVElYIENPUlBPUkFUSU9OCiswMDgwMEUgICAgIChiYXNlIDE2KQkJQVRMQU5USVggQ09SUE9SQVRJT04KKwkJCQk1NDAxIE5XIEJST0tFTlNPVU5EIEJMVkQuCisJCQkJQk9DQSBSQVRPTiBGTCAzMzQzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMEYgICAoaGV4KQkJU1RBTkRBUkQgTUlDUk9TWVNURU1TCiswMDgwMEYgICAgIChiYXNlIDE2KQkJU1RBTkRBUkQgTUlDUk9TWVNURU1TCisJCQkJMzAwIEtFTk5FRFkgRFJJVkUKKwkJCQlIQVVQUEFVR0UgTlkgMTE3ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTEwICAgKGhleCkJCUNPTU1PRE9SRSBJTlRFUk5BVElPTkFMCiswMDgwMTAgICAgIChiYXNlIDE2KQkJQ09NTU9ET1JFIElOVEVSTkFUSU9OQUwKKwkJCQkxMjAwIFdJTFNPTiBEUklWRQorCQkJCVdFU1QgQ0hFU1RFUiBQQSAxOTM4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMTEgICAoaGV4KQkJRElHSVRBTCBTWVNURU1TIElOVCdMLiBJTkMuCiswMDgwMTEgICAgIChiYXNlIDE2KQkJRElHSVRBTCBTWVNURU1TIElOVCdMLiBJTkMuCisJCQkJNzY1OSAxNzhUSCBQTC4gTkUKKwkJCQlQLk8uIEJPWCA5MDgKKwkJCQlSRURNT05EIFdBIDk4MDczLTA5MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTEyICAgKGhleCkJCUlOVEVHUkFURUQgTUVBU1VSRU1FTlQgU1lTVEVNUworMDA4MDEyICAgICAoYmFzZSAxNikJCUlOVEVHUkFURUQgTUVBU1VSRU1FTlQgU1lTVEVNUworCQkJCTk1MjUgU1cgR0VNSU5JIERSSVZFCisJCQkJQkVBVkVSVE9OIE9SIDk3MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0xMyAgIChoZXgpCQlUSE9NQVMtQ09OUkFEIENPUlBPUkFUSU9OCiswMDgwMTMgICAgIChiYXNlIDE2KQkJVEhPTUFTLUNPTlJBRCBDT1JQT1JBVElPTgorCQkJCTE5MDgtUiBLUkFNRVIgTEFORQorCQkJCUFVU1RJTiBUWCA3ODc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMTQgICAoaGV4KQkJRVNQUklUIFNZU1RFTVMKKzAwODAxNCAgICAgKGJhc2UgMTYpCQlFU1BSSVQgU1lTVEVNUworCQkJCTE0RiwgTk8uIDEsIFNFQy4gNAorCQkJCU5BTiBLSU5HIEVBU1QgUk9BRCAxMDU2OSBUQUlQRUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtODAtMTUgICAoaGV4KQkJU0VJS08gU1lTVEVNUywgSU5DLgorMDA4MDE1ICAgICAoYmFzZSAxNikJCVNFSUtPIFNZU1RFTVMsIElOQy4KKwkJCQlTWVNURU1TIERFVkVMT1BNRU5UIERJVklTSU9OCisJCQkJNS00IEhBQ0NIT0JPUkkgNC1DSE9VTUUgQ0hVVU9VLUtVIFRPS09ZTworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtMTYgICAoaGV4KQkJV0FOREVMIEFORCBHT0xURVJNQU5OCiswMDgwMTYgICAgIChiYXNlIDE2KQkJV0FOREVMIEFORCBHT0xURVJNQU5OCisJCQkJMTAzMCBTV0FCSUEgQ09VUlQKKwkJCQlSRVNFQVJDSCBUUklBTkdMRSBQQVJLCisJCQkJTkMgMjc3MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTE3ICAgKGhleCkJCVBGVSBMSU1JVEVECiswMDgwMTcgICAgIChiYXNlIDE2KQkJUEZVIExJTUlURUQKKwkJCQlORVRXT1JLIFNFQy4KKwkJCQk2NTgtMSwgVFNVUlVNQSBNQUNISURBLVNISSwgVE9LWU8gMTk0LTAwCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC0xOCAgIChoZXgpCQlLT0JFIFNURUVMLCBMVEQuCiswMDgwMTggICAgIChiYXNlIDE2KQkJS09CRSBTVEVFTCwgTFRELgorCQkJCUtPQkUgSVNVWlUgUkVDUlVJVCBCTERHLgorCQkJCTdUSCBGTE9PUiAyLTIsIDQtQ0hPTUUsIEtVTU9JLURPUkksIENIVU8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTE5ICAgKGhleCkJCURBWU5BIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDgwMTkgICAgIChiYXNlIDE2KQkJREFZTkEgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk1MCBTT1VUSCBNQUlOIFNUUkVFVC0jNTMwCisJCQkJU0FMVCBMQUtFIENJVFkgVVRBSCA4NDE0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMUEgICAoaGV4KQkJQkVMTCBBVExBTlRJQworMDA4MDFBICAgICAoYmFzZSAxNikJCUJFTEwgQVRMQU5USUMKKwkJCQlOOTIgVzE0NjEyICBBTlRIT05ZIEFWRU5VRQorCQkJCU1FTk9NT05FRSBGQUxMUyBXSSA1MzA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMUIgICAoaGV4KQkJS09ESUFLIFRFQ0hOT0xPR1kKKzAwODAxQiAgICAgKGJhc2UgMTYpCQlLT0RJQUsgVEVDSE5PTE9HWQorCQkJCTIzNDAgSEFSUklTIFdBWQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0xQyAgIChoZXgpCQlORVdQT1JUIFNZU1RFTVMgU09MVVRJT05TCiswMDgwMUMgICAgIChiYXNlIDE2KQkJTkVXUE9SVCBTWVNURU1TIFNPTFVUSU9OUworCQkJCTQwMTkgV0VTVEVSTFkgQVZFTlVFCisJCQkJU1VJVEUgMTAzCisJCQkJTkVXUE9SVCBCRUFDSCBDQSA5MjY2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMUQgICAoaGV4KQkJSU5URUdSQVRFRCBJTkZFUkVOQ0UgTUFDSElORVMKKzAwODAxRCAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIElORkVSRU5DRSBNQUNISU5FUworCQkJCTE0NjggRUFTVCBLQVRFTExBCisJCQkJQU5BSEVJTSBDQSA5MjgwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMUUgICAoaGV4KQkJWElORVRST04sIElOQy4KKzAwODAxRSAgICAgKGJhc2UgMTYpCQlYSU5FVFJPTiwgSU5DLgorCQkJCTIzMzAgQi4gV0FMU0ggQVZFLgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0xRiAgIChoZXgpCQlLUlVQUCBBVExBUyBFTEVDVFJPTklLIEdNQkgKKzAwODAxRiAgICAgKGJhc2UgMTYpCQlLUlVQUCBBVExBUyBFTEVDVFJPTklLIEdNQkgKKwkJCQlQLk8uIEJPWCA0NDg1NDUKKwkJCQlELTI4MDAgQlJFTUVOIDQ0CisJCQkJR0VSTUFOWQorCiswMC04MC0yMCAgIChoZXgpCQlORVRXT1JLIFBST0RVQ1RTCiswMDgwMjAgICAgIChiYXNlIDE2KQkJTkVUV09SSyBQUk9EVUNUUworCQkJCURJVklTSU9OIE9GIEFORFJFVyBDT1JQT1JBVElPTgorCQkJCTI3NzEgUExBWkEgREVMIEFNTzMKKwkJCQlUT1JSQU5DRSBDQSA5MDUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMjEgICAoaGV4KQkJQWxjYXRlbCBDYW5hZGEgSW5jLgorMDA4MDIxICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgQ2FuYWRhIEluYy4KKwkJCQkzNDkgVGVycnkgRm94IERyaXZlCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLIDJWNgorCQkJCUNBTkFEQQorCiswMC04MC0yMiAgIChoZXgpCQlTQ0FOLU9QVElDUworMDA4MDIyICAgICAoYmFzZSAxNikJCVNDQU4tT1BUSUNTCisJCQkJMjAxIFRFQ0hOT0xPR1kgRFJJVkUKKwkJCQlJUlZJTkUgQ0EgOTI3MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTIzICAgKGhleCkJCUlOVEVHUkFURUQgQlVTSU5FU1MgTkVUV09SS1MKKzAwODAyMyAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIEJVU0lORVNTIE5FVFdPUktTCisJCQkJMUJOIFRIRSBTWVNURU1TIENFTlRSRQorCQkJCTE0LCBCUklER0VHQVRFIEJVU0lORVNTIFBBUkssIEdBVEVIT1VTRQorCQkJCUJVQ0tTIEhQMTkgM1hOIC0gRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTI0ICAgKGhleCkJCUtBTFBBTkEsIElOQy4KKzAwODAyNCAgICAgKGJhc2UgMTYpCQlLQUxQQU5BLCBJTkMuCisJCQkJMTE1NCBFQVNUIEFSUVVFUyBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTI1ICAgKGhleCkJCVNUT0xMTUFOTiBHTUJICiswMDgwMjUgICAgIChiYXNlIDE2KQkJU1RPTExNQU5OIEdNQkgKKwkJCQlNQVgtQlJBVUVSLUFMTEVFIDgxCisJCQkJRC0yMDAwIEhBTUJVUkcgNTAKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC04MC0yNiAgIChoZXgpCQlORVRXT1JLIFBST0RVQ1RTIENPUlBPUkFUSU9OCiswMDgwMjYgICAgIChiYXNlIDE2KQkJTkVUV09SSyBQUk9EVUNUUyBDT1JQT1JBVElPTgorCQkJCTE0NDAgV0VTVCBDT0xPUkFETyBCTFZELgorCQkJCVBBU0FERU5BIENBIDkxMTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0yNyAgIChoZXgpCQlBREFQVElWRSBTWVNURU1TLCBJTkMuCiswMDgwMjcgICAgIChiYXNlIDE2KQkJQURBUFRJVkUgU1lTVEVNUywgSU5DLgorCQkJCTE0MDAgTi5XLiBDT01QVE9OIERSSVZFCisJCQkJU1VJVEUgMzQwCisJCQkJQkVBVkVSVE9OIE9SIDk3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0yOCAgIChoZXgpCQlUUkFEUE9TVCAoSEspIExURAorMDA4MDI4ICAgICAoYmFzZSAxNikJCVRSQURQT1NUIChISykgTFRECisJCQkJNS9GLCBTVEFSIENFTlRSRQorCQkJCTQ0My00NTEgQ0FTVExFIFBFQUsgUk9BRCBLV0FJIENIVU5HLCBOLlQKKwkJCQlIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtODAtMjkgICAoaGV4KQkJRUFHTEUgVEVDSE5PTE9HWSwgSU5DLgorMDA4MDI5ICAgICAoYmFzZSAxNikJCUVBR0xFIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk2ODAwIE9SQU5HRVRIT1JQRSBBVkUuVU5JVAorCQkJCUJVRU5BIFBBUksgQ0EgOTA2MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTJBICAgKGhleCkJCVRFU1QgU1lTVEVNUyAmIFNJTVVMQVRJT05TIElOQworMDA4MDJBICAgICAoYmFzZSAxNikJCVRFU1QgU1lTVEVNUyAmIFNJTVVMQVRJT05TIElOQworCQkJCTMyNDI5IElORFVTVFJJQUwgRFJJVkUKKwkJCQlNQURJU09OIEhFSUdIVFMgTUkgNDgwNzEtMTUyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMkIgICAoaGV4KQkJSU5URUdSQVRFRCBNQVJLRVRJTkcgQ08KKzAwODAyQiAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIE1BUktFVElORyBDTworCQkJCTEzNjAgQk9SREVBVVggRFJJVkUKKwkJCQlCTERHLiAjNAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMkMgICAoaGV4KQkJVEhFIFNBR0UgR1JPVVAgUExDCiswMDgwMkMgICAgIChiYXNlIDE2KQkJVEhFIFNBR0UgR1JPVVAgUExDCisJCQkJU0FHRSBIT1VTRSwgQkVOVE9OIFBBUksgUk9BRAorCQkJCU5FV0NBU1RMRSBVUE9OIFRZTkUgTkU3IDdMWgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtMkQgICAoaGV4KQkJWFlMT0dJQ1MgSU5DCiswMDgwMkQgICAgIChiYXNlIDE2KQkJWFlMT0dJQ1MgSU5DCisJCQkJNTMgVEhJUkQgQVZFTlVFCisJCQkJQlVSTElOR1RPTiBNQSAwMTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMkUgICAoaGV4KQkJQ0FTVExFIFJPQ0sgQ09NUFVUSU5HCiswMDgwMkUgICAgIChiYXNlIDE2KQkJQ0FTVExFIFJPQ0sgQ09NUFVUSU5HCisJCQkJMjA4MzcgQk9ZQ0UgTEFORQorCQkJCVNBUkFUT0dBIENBIDk1MDcwLTQ4MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTJGICAgKGhleCkJCU5BVElPTkFMIElOU1RSVU1FTlRTIENPUlAuCiswMDgwMkYgICAgIChiYXNlIDE2KQkJTkFUSU9OQUwgSU5TVFJVTUVOVFMgQ09SUC4KKwkJCQkxMTUwMCBOb3J0aCBNb3BhYyBFeHByZXNzd2F5CisJCQkJQVVTVElOIFRYIDc4NzU5LTM1MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTMwICAgKGhleCkJCU5FWFVTIEVMRUNUUk9OSUNTCiswMDgwMzAgICAgIChiYXNlIDE2KQkJTkVYVVMgRUxFQ1RST05JQ1MKKwkJCQkzOSBTUFJJTkdGSUVMRCBST0FECisJCQkJQ0FNQlJJREdFIENCNCAxQUQKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTMxICAgKGhleCkJCUJBU1lTLCBDT1JQLgorMDA4MDMxICAgICAoYmFzZSAxNikJCUJBU1lTLCBDT1JQLgorCQkJCTUwMSBNQUNBUkEgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0zMiAgIChoZXgpCQlBQ0NFU1MgQ08uLCBMVEQuCiswMDgwMzIgICAgIChiYXNlIDE2KQkJQUNDRVNTIENPLiwgTFRELgorCQkJCUhJRUktS1VEQU4gQkxERy4gQjEKKwkJCQkzLTgtMTEgS1VEQU4tTUlOQU1JLCBDSElZT0RBLUtVLCBUT0tZTyAxCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC0zMyAgIChoZXgpCQlFTVMgQXZpYXRpb24sIEluYy4KKzAwODAzMyAgICAgKGJhc2UgMTYpCQlFTVMgQXZpYXRpb24sIEluYy4KKwkJCQkxMjEgV0hJVFRFTkRBTEUgRFJJVkUKKwkJCQlTdWl0ZSBBCisJCQkJTU9PUkVTVE9XTiBOSiAwODA1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMzQgICAoaGV4KQkJU01UIEdPVVBJTAorMDA4MDM0ICAgICAoYmFzZSAxNikJCVNNVCBHT1VQSUwKKwkJCQkzIFJVRSBERVMgQVJDSElWRVMKKwkJCQk5NDAwMCBDUkVURUlMCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTgwLTM1ICAgKGhleCkJCVRFQ0hOT0xPR1kgV09SS1MsIElOQy4KKzAwODAzNSAgICAgKGJhc2UgMTYpCQlURUNITk9MT0dZIFdPUktTLCBJTkMuCisJCQkJNDAzMCBCUkFLRVIgTEFORSAjMzUwCisJCQkJQVVTVElOIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0zNiAgIChoZXgpCQlSRUZMRVggTUFOVUZBQ1RVUklORyBTWVNURU1TCiswMDgwMzYgICAgIChiYXNlIDE2KQkJUkVGTEVYIE1BTlVGQUNUVVJJTkcgU1lTVEVNUworCQkJCVVOSVQgRCwgVEhFIEZMRU1JTkcgQ0VOVFJFLAorCQkJCUZMRU1JTkcgV0FZLCBDUkFXTEVZIFdFU1QgU1VTU0VYIFJIMTAgMk4KKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtMzcgICAoaGV4KQkJRXJpY3Nzb24gR3JvdXAKKzAwODAzNyAgICAgKGJhc2UgMTYpCQlFcmljc3NvbiBHcm91cAorCQkJCVRlbGVmb25ha3RpZWJvbGFnZXQKKwkJCQlMTSBFcmljc3NvbiBDb3JwLiAxMjYgMjUgU1RPQ0tIT0xNCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLTgwLTM4ICAgKGhleCkJCURBVEEgUkVTRUFSQ0ggJiBBUFBMSUNBVElPTlMKKzAwODAzOCAgICAgKGJhc2UgMTYpCQlEQVRBIFJFU0VBUkNIICYgQVBQTElDQVRJT05TCisJCQkJOTA0MSBFWEVDVVRJVkUgUEFSSyBEUi4KKwkJCQlTVUlURSAyMDAKKwkJCQlLTk9YVklMTEUgVE4gMzc5MjMtNDYwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMzkgICAoaGV4KQkJQUxDQVRFTCBTVEMgQVVTVFJBTElBCiswMDgwMzkgICAgIChiYXNlIDE2KQkJQUxDQVRFTCBTVEMgQVVTVFJBTElBCisJCQkJMjUyLTI4MCBCT1RBTlkgUk9BRAorCQkJCUFMRVhBTkRSSUEsIE5TVyAyMDE1CisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLTgwLTNBICAgKGhleCkJCVZBUklUWVBFUiwgSU5DLgorMDA4MDNBICAgICAoYmFzZSAxNikJCVZBUklUWVBFUiwgSU5DLgorCQkJCTkwMCBNSURETEVTRVggVFVSTlBJS0UKKwkJCQlCSUxMRVJJQ0EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTNCICAgKGhleCkJCUFQVCBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDA4MDNCICAgICAoYmFzZSAxNikJCUFQVCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTk2MDcgRFIuIFBFUlJZIFJPQUQKKwkJCQlJSkFNU1ZJTExFIE1EIDIxNzU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0zQyAgIChoZXgpCQlUVlMgRUxFQ1RST05JQ1MgTFRECiswMDgwM0MgICAgIChiYXNlIDE2KQkJVFZTIEVMRUNUUk9OSUNTIExURAorCQkJCTQ0LCBNSUxMRVIgUk9BRAorCQkJCUJBTkdBTE9SRSA1NjAgMDUyCisJCQkJSU5ESUEKKwkJCQlJTkRJQQorCiswMC04MC0zRCAgIChoZXgpCQlTVVJJR0lLRU4gQ08uLCAgTFRELgorMDA4MDNEICAgICAoYmFzZSAxNikJCVNVUklHSUtFTiBDTy4sICBMVEQuCisJCQkJWU9VVEggQkxERywgNC0xLTkgU0hJTkpVS1UKKwkJCQlTSElOSlVLVS1LVSwgVE9LWU8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTNFICAgKGhleCkJCVNZTkVSTkVUSUNTCiswMDgwM0UgICAgIChiYXNlIDE2KQkJU1lORVJORVRJQ1MKKwkJCQk4NSBSQU5HRVdBWSBST0FECisJCQkJTk9SVEggQklMTEVSSUNBIE1BIDAxODYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0zRiAgIChoZXgpCQlUQVRVTkcgQ09NUEFOWQorMDA4MDNGICAgICAoYmFzZSAxNikJCVRBVFVORyBDT01QQU5ZCisJCQkJMjIgQ0hVTkdTSEFORyBOLiBSRC4gM1JEIFNFQy4KKwkJCQlUQUlQRUkgVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtODAtNDAgICAoaGV4KQkJSk9ITiBGTFVLRSBNQU5VRkFDVFVSSU5HIENPLgorMDA4MDQwICAgICAoYmFzZSAxNikJCUpPSE4gRkxVS0UgTUFOVUZBQ1RVUklORyBDTy4KKwkJCQlQLk8uIEJPWCBDOTA5MC1NL1MgMjQ0RgorCQkJCUVWRVJFVFQgV0EgOTgyMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTQxICAgKGhleCkJCVZFQiBLT01CSU5BVCBST0JPVFJPTgorMDA4MDQxICAgICAoYmFzZSAxNikJCVZFQiBLT01CSU5BVCBST0JPVFJPTgorCQkJCUdSVU5BRVIgU1RSQUJFIDIsIERSRVNERU4gODAxMAorCQkJCUdEUiBFQVNUIEdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTgwLTQyICAgKGhleCkJCUVtZXJzb24gTmV0d29yayBQb3dlcgorMDA4MDQyICAgICAoYmFzZSAxNikJCUVtZXJzb24gTmV0d29yayBQb3dlcgorCQkJCTI5MDAgUy4gRGlhYmxvIFdheQorCQkJCVRlbXBlIEFaIDg1MjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC00MyAgIChoZXgpCQlORVRXT1JMRCwgSU5DLgorMDA4MDQzICAgICAoYmFzZSAxNikJCU5FVFdPUkxELCBJTkMuCisJCQkJS0FOREEgMyBBTUVSRVggQkxERy4KKwkJCQkzLTEwIEtBTkRBSklOQk9DSE8gQ0hJWU9EQS1LVSAgICBUT0tZTyAxCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC00NCAgIChoZXgpCQlTWVNURUNIIENPTVBVVEVSIENPUlAuCiswMDgwNDQgICAgIChiYXNlIDE2KQkJU1lTVEVDSCBDT01QVVRFUiBDT1JQLgorCQkJCTY0NjUgTkFOQ1kgUklER0UgRFJJVkUKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTQ1ICAgKGhleCkJCU1BVFNVU0hJVEEgRUxFQ1RSSUMgSU5ELiBDTworMDA4MDQ1ICAgICAoYmFzZSAxNikJCU1BVFNVU0hJVEEgRUxFQ1RSSUMgSU5ELiBDTworCQkJCUNPTVBVVEVSIERJVklTSU9OCisJCQkJMTAwNiwgS0FET01BLAorCQkJCU9TQUtBIDU3MSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTQ2ICAgKGhleCkJCVVOSVZFUlNJVFkgT0YgVE9ST05UTworMDA4MDQ2ICAgICAoYmFzZSAxNikJCVVOSVZFUlNJVFkgT0YgVE9ST05UTworCQkJCURFUFQuIE9GIEVMRUNUUklDQUwgRU5HSU4nSU5HCisJCQkJMTAgS0lOR1MgQ09MTEVHRSBSRC4gVE9ST05UTywgT05UQVJJTyBNNQorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC04MC00NyAgIChoZXgpCQlJTi1ORVQgQ09SUC4KKzAwODA0NyAgICAgKGJhc2UgMTYpCQlJTi1ORVQgQ09SUC4KKwkJCQkxNjcyMCBXRVNUIEJFUk5BUkRPIERSSVZFCisJCQkJU0FOIERJRUdPIENBIDkyMTI3LTE5MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTQ4ICAgKGhleCkJCUNPTVBFWCBJTkNPUlBPUkFURUQKKzAwODA0OCAgICAgKGJhc2UgMTYpCQlDT01QRVggSU5DT1JQT1JBVEVECisJCQkJNDA1NSBFQVNUIExBIFBBTE1BCisJCQkJVU5JVAorCQkJCUFOQUhFSU0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTQ5ICAgKGhleCkJCU5JU1NJTiBFTEVDVFJJQyBDTy4sIExURC4KKzAwODA0OSAgICAgKGJhc2UgMTYpCQlOSVNTSU4gRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJNDcsIFVNRVpVIC0gVEFLQVNFIC0gQ0hPCisJCQkJVUtZTy1LVSwgS1lPVE8sIDYxNQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtNEEgICAoaGV4KQkJUFJPLUxPRworMDA4MDRBICAgICAoYmFzZSAxNikJCVBSTy1MT0cKKwkJCQkxMiBVUFBFUiBSQUdTREFMRSBEUklWRQorCQkJCU1PTlRFUkVZIENBIDkzOTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC00QiAgIChoZXgpCQlFQUdMRSBURUNITk9MT0dJRVMgUFRZLkxURC4KKzAwODA0QiAgICAgKGJhc2UgMTYpCQlFQUdMRSBURUNITk9MT0dJRVMgUFRZLkxURC4KKwkJCQk3MCBLRVlTIFJPQUQKKwkJCQlNT09SQUJCSU4gIFZJQy4gMzE4OQorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC04MC00QyAgIChoZXgpCQlDT05URUMgQ08uLCBMVEQuCiswMDgwNEMgICAgIChiYXNlIDE2KQkJQ09OVEVDIENPLiwgTFRELgorCQkJCTMtOS0zMSwgSElNRVNBVE8KKwkJCQlOSVNISVlPRE9HQVdBLUtVIE9TQUtBLCA1NTUKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTREICAgKGhleCkJCUNZQ0xPTkUgTUlDUk9TWVNURU1TLCBJTkMuCiswMDgwNEQgICAgIChiYXNlIDE2KQkJQ1lDTE9ORSBNSUNST1NZU1RFTVMsIElOQy4KKwkJCQkyNSBTQ0lFTkNFIFBBUksKKwkJCQlORVcgSEFWRU4gQ1QgMDY1MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTRFICAgKGhleCkJCUFQRVggQ09NUFVURVIgQ09NUEFOWQorMDA4MDRFICAgICAoYmFzZSAxNikJCUFQRVggQ09NUFVURVIgQ09NUEFOWQorCQkJCTQ1MDAgMTUwVEggQVZFTlVFLCBORQorCQkJCVJFRE1PTkQgV0EgOTgwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTRGICAgKGhleCkJCURBSUtJTiBJTkRVU1RSSUVTLCBMVEQuCiswMDgwNEYgICAgIChiYXNlIDE2KQkJREFJS0lOIElORFVTVFJJRVMsIExURC4KKwkJCQlFTEVDVFJPTklDUyBESVZJU0lPTgorCQkJCVNISUdBIFBMQU5UIDEwMDAtMiBPSFRBTkkgT0tBTU9UTy1DSE8sIEsKKwkJCQlKQVBBTiA1MjUKKwkJCQlKQVBBTgorCiswMC04MC01MCAgIChoZXgpCQlaSUFURUNIIENPUlBPUkFUSU9OCiswMDgwNTAgICAgIChiYXNlIDE2KQkJWklBVEVDSCBDT1JQT1JBVElPTgorCQkJCTM0MzMgUk9CRVJUTyBDT1VSVAorCQkJCVNBTiBMVUlTIE9CSVNQTyBDQSA5MzQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNTEgICAoaGV4KQkJRklCRVJNVVgKKzAwODA1MSAgICAgKGJhc2UgMTYpCQlGSUJFUk1VWAorCQkJCTkzMTAgVE9QQU5HQSBDQU5ZT04gQkxWRC4KKwkJCQlDSEFUU1dPUlRIIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC01MiAgIChoZXgpCQlURUNITklDQUxMWSBFTElURSBDT05DRVBUUworMDA4MDUyICAgICAoYmFzZSAxNikJCVRFQ0hOSUNBTExZIEVMSVRFIENPTkNFUFRTCisJCQkJMjYxNSBQQUNJRklDIENPQVNUIEhJR0hXQVkKKwkJCQlIRVJNT1NBIEJFQUNIIENBIDkwMjUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC01MyAgIChoZXgpCQlJTlRFTExJQ09NLCBJTkMuCiswMDgwNTMgICAgIChiYXNlIDE2KQkJSU5URUxMSUNPTSwgSU5DLgorCQkJCTIwNDE1IE5PUkRIT0ZGIFNUUkVFVAorCQkJCUNIQVRTV09SVEggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTU0ICAgKGhleCkJCUZST05USUVSIFRFQ0hOT0xPR0lFUyBDT1JQLgorMDA4MDU0ICAgICAoYmFzZSAxNikJCUZST05USUVSIFRFQ0hOT0xPR0lFUyBDT1JQLgorCQkJCTEwMjAxIE5PLiBQVC4gV0FTSElOR1RPTiBST0FECisJCQkJTUVRVU9OIFdJIDUzMDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC01NSAgIChoZXgpCQlGRVJNSUxBQgorMDA4MDU1ICAgICAoYmFzZSAxNikJCUZFUk1JTEFCCisJCQkJUC5PLiBCT1ggNTAwLCBNUy0yMzQKKwkJCQlCQVRBVklBIElMIDYwNTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC01NiAgIChoZXgpCQlTUEhJTlggRUxFS1RST05JSyBHTUJICiswMDgwNTYgICAgIChiYXNlIDE2KQkJU1BISU5YIEVMRUtUUk9OSUsgR01CSAorCQkJCVdBTERNQVRURU5TVFIsIDEzCisJCQkJNzgwOCBXQUxES0lSQ0ggMyBSQVBQRU5FQ0tTVFJBQkUgMQorCQkJCVdFU1QgR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtODAtNTcgICAoaGV4KQkJQURTT0ZULCBMVEQuCiswMDgwNTcgICAgIChiYXNlIDE2KQkJQURTT0ZULCBMVEQuCisJCQkJSW0gQmF1bWdhcnRlbiA2CisJCQkJTU9ITElOIENILTQzMTMgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtODAtNTggICAoaGV4KQkJUFJJTlRFUiBTWVNURU1TIENPUlBPUkFUSU9OCiswMDgwNTggICAgIChiYXNlIDE2KQkJUFJJTlRFUiBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJMjA3IFBBUlJZIFBBUktXQVkKKwkJCQlHQUlUSEVSU0JVUkcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTU5ICAgKGhleCkJCVNUQU5MRVkgRUxFQ1RSSUMgQ08uLCBMVEQKKzAwODA1OSAgICAgKGJhc2UgMTYpCQlTVEFOTEVZIEVMRUNUUklDIENPLiwgTFRECisJCQkJUiZEIExBQk9SQVRPUlkKKwkJCQkxLTMtMSBFREEtTklTSEksIE1JRE9SSS1LVSwgWU9LT0hBTUEtU0hJCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC01QSAgIChoZXgpCQlUVUxJUCBDT01QVVRFUlMgSU5URVJOQVQnTCBCLlYKKzAwODA1QSAgICAgKGJhc2UgMTYpCQlUVUxJUCBDT01QVVRFUlMgSU5URVJOQVQnTCBCLlYKKwkJCQlQLk8uIEJPWCAzMzMzCisJCQkJNTIwMyBESCAnUy1IRVJUT0dFTkJPU0NICisJCQkJVEhFIE5FVEhFUkxBTkRTCisJCQkJTkVUSEVSTEFORFMKKworMDAtODAtNUIgICAoaGV4KQkJQ09ORE9SIFNZU1RFTVMsIElOQy4KKzAwODA1QiAgICAgKGJhc2UgMTYpCQlDT05ET1IgU1lTVEVNUywgSU5DLgorCQkJCTIxMzMgU0FNQVJJTFRBTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC01QyAgIChoZXgpCQlBR0lMSVMgQ09SUE9SQVRJT04KKzAwODA1QyAgICAgKGJhc2UgMTYpCQlBR0lMSVMgQ09SUE9SQVRJT04KKwkJCQkxMTAxIFNBTiBBTlRPTklPIFJPQUQKKwkJCQlTVUlURSAxMDEKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzLTEwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTVEICAgKGhleCkJCUNBTlNUQVIKKzAwODA1RCAgICAgKGJhc2UgMTYpCQlDQU5TVEFSCisJCQkJMzkwMCBWSUNUT1JJQSBQQVJLIEFWRU5VRQorCQkJCU5PUlRIIFlPUksgT05UQVJJTywgQ0FOQURBCisJCQkJTTJIIDNINworCQkJCUNBTkFEQQorCiswMC04MC01RSAgIChoZXgpCQlMU0kgTE9HSUMgQ09SUE9SQVRJT04KKzAwODA1RSAgICAgKGJhc2UgMTYpCQlMU0kgTE9HSUMgQ09SUE9SQVRJT04KKwkJCQkxNTUxIE1DQ0FSVEhZIEJPVUxFVkFSRAorCQkJCU1TIEc4MTMKKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNUYgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCiswMDgwNUYgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTYwICAgKGhleCkJCU5FVFdPUksgSU5URVJGQUNFIENPUlBPUkFUSU9OCiswMDgwNjAgICAgIChiYXNlIDE2KQkJTkVUV09SSyBJTlRFUkZBQ0UgQ09SUE9SQVRJT04KKwkJCQkxNTAxOSBXRVNUIDk1IFNUUkVFVAorCQkJCUxFTkVYQSBLUyA2NjIxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNjEgICAoaGV4KQkJTElUVE9OIFNZU1RFTVMsIElOQy4KKzAwODA2MSAgICAgKGJhc2UgMTYpCQlMSVRUT04gU1lTVEVNUywgSU5DLgorCQkJCU0vUyA0NC0yMAorCQkJCTI5ODUxIEFHT1VSQSBST0FECisJCQkJQUdPVVJBIEhJTExTIENBIDkxMzAxLTA1MDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTYyICAgKGhleCkJCUlOVEVSRkFDRSAgQ08uCiswMDgwNjIgICAgIChiYXNlIDE2KQkJSU5URVJGQUNFICBDTy4KKwkJCQk4LTI2IE9aVSA1LUNIT01FIE1JTkFNSS1LVQorCQkJCUhJUk9TSElNQSA3MzIKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTYzICAgKGhleCkJCUhpcnNjaG1hbm4gQXV0b21hdGlvbiBhbmQgQ29udHJvbCBHbWJICiswMDgwNjMgICAgIChiYXNlIDE2KQkJSGlyc2NobWFubiBBdXRvbWF0aW9uIGFuZCBDb250cm9sIEdtYkgKKwkJCQlTdHV0dGdhcnRlciBTdHJhc3NlIDQ1LTUxIAorCQkJCU5lY2thcnRlbnpsaW5nZW4gICBELTcyNjU0IAorCQkJCUdFUk1BTlkKKworMDAtODAtNjQgICAoaGV4KQkJV1lTRSBURUNITk9MT0dZCiswMDgwNjQgICAgIChiYXNlIDE2KQkJV1lTRSBURUNITk9MT0dZCisJCQkJMzQ3MSBOT1JUSCBGSVJTVCBTVFJFRVQgTS9TCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTY1ICAgKGhleCkJCUNZQkVSR1JBUEhJQyBTWVNURU1TIFBUWSBMVEQuCiswMDgwNjUgICAgIChiYXNlIDE2KQkJQ1lCRVJHUkFQSElDIFNZU1RFTVMgUFRZIExURC4KKwkJCQkyOTAgQlVSV09PRCBST0FECisJCQkJSEFXVEhPUk4sIFZJQ1RPUklBIDMxMjIKKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtODAtNjYgICAoaGV4KQkJQVJDT00gQ09OVFJPTCBTWVNURU1TLCBMVEQuCiswMDgwNjYgICAgIChiYXNlIDE2KQkJQVJDT00gQ09OVFJPTCBTWVNURU1TLCBMVEQuCisJCQkJVU5JVCA4LCBDTElGVE9OIFJPQUQKKwkJCQlDQU1CUklER0UgQ0JJIDRXSAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtNjcgICAoaGV4KQkJU1FVQVJFIEQgQ09NUEFOWQorMDA4MDY3ICAgICAoYmFzZSAxNikJCVNRVUFSRSBEIENPTVBBTlkKKwkJCQk0MDQxIE5PUlRIIFJJQ0hBUkQgU1RSRUVUCisJCQkJUC5PLiBCT1ggNDcyCisJCQkJTUlMV0FVS0VFIFdJIDUzMjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC02OCAgIChoZXgpCQlZQU1BVEVDSCBTQ0lFTlRJRklDIExURC4KKzAwODA2OCAgICAgKGJhc2UgMTYpCQlZQU1BVEVDSCBTQ0lFTlRJRklDIExURC4KKwkJCQkxMjU1IExBSVJELCBTVUlURSAyNjAKKwkJCQlNT05UUkVBTCwgUVVFQkVDIEgzUCAyVDEKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtODAtNjkgICAoaGV4KQkJQ09NUFVUT05FIFNZU1RFTVMKKzAwODA2OSAgICAgKGJhc2UgMTYpCQlDT01QVVRPTkUgU1lTVEVNUworCQkJCTExMDAgTk9SVEhNRUFET1cgUEFSS1dBWQorCQkJCVNVSVRFIDE1MAorCQkJCVJPU1dFTEwgR0EgMzAwNzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTZBICAgKGhleCkJCUVSSSAoRU1QQUMgUkVTRUFSQ0ggSU5DLikKKzAwODA2QSAgICAgKGJhc2UgMTYpCQlFUkkgKEVNUEFDIFJFU0VBUkNIIElOQy4pCisJCQkJNDc1NjAgU0VBQlJJREdFIERSSVZFCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNkIgICAoaGV4KQkJU0NITUlEIFRFTEVDT01NVU5JQ0FUSU9OCiswMDgwNkIgICAgIChiYXNlIDE2KQkJU0NITUlEIFRFTEVDT01NVU5JQ0FUSU9OCisJCQkJQklOWlNUUkFTU0UgMzUsCisJCQkJQ0gtODA0NSBaVVJJQ0gKKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTgwLTZDICAgKGhleCkJCUNFR0VMRUMgUFJPSkVDVFMgTFRECiswMDgwNkMgICAgIChiYXNlIDE2KQkJQ0VHRUxFQyBQUk9KRUNUUyBMVEQKKwkJCQlERVBULiBNREQsCisJCQkJQk9VR0hUT04gUkQsICBSVUdCWSBXQVJLUywgQ08yMSAxQlUKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtNkQgICAoaGV4KQkJQ0VOVFVSWSBTWVNURU1TIENPUlAuCiswMDgwNkQgICAgIChiYXNlIDE2KQkJQ0VOVFVSWSBTWVNURU1TIENPUlAuCisJCQkJMi04LTEyIE1JTkFNSS1DSE8KKwkJCQlLT0tVQlVOSkktU0hJLCBUT0tZTworCQkJCTE4NSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTZFICAgKGhleCkJCU5JUFBPTiBTVEVFTCBDT1JQT1JBVElPTgorMDA4MDZFICAgICAoYmFzZSAxNikJCU5JUFBPTiBTVEVFTCBDT1JQT1JBVElPTgorCQkJCTMxLTEgU0hJTktBV0EgMi1DSE9VTUUKKwkJCQlDSFVPLUtVIFRPS1lPIDEwNAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtNkYgICAoaGV4KQkJT05FTEFOIExURC4KKzAwODA2RiAgICAgKGJhc2UgMTYpCQlPTkVMQU4gTFRELgorCQkJCVAuTy4gQk9YIDEwNworCQkJCUhFTkxFWSBPTiBUSEFNRVMgT1hGT1JEU0hJUkUgUkc5IDNOT1EKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTcwICAgKGhleCkJCUNPTVBVVEFET1JBUyBNSUNST04KKzAwODA3MCAgICAgKGJhc2UgMTYpCQlDT01QVVRBRE9SQVMgTUlDUk9OCisJCQkJR1VFUlJFUk8gMjAwMSAtIDE5CisJCQkJSVJBUFVBVE8gR1RPICAzNjY2MAorCQkJCU1FWElDTworCQkJCU1FWElDTworCiswMC04MC03MSAgIChoZXgpCQlTQUkgVEVDSE5PTE9HWQorMDA4MDcxICAgICAoYmFzZSAxNikJCVNBSSBURUNITk9MT0dZCisJCQkJNDIyNCBDQU1QVVMgUE9JTlQgQ09VUlQKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEtMTUxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNzIgICAoaGV4KQkJTUlDUk9QTEVYIFNZU1RFTVMgTFRELgorMDA4MDcyICAgICAoYmFzZSAxNikJCU1JQ1JPUExFWCBTWVNURU1TIExURC4KKwkJCQkxMDQtMjA3MSBLaW5nc3dheQorCQkJCVBvcnQgQ29xdWl0bGFtLCAgQkMgVjNDIDZOMgorCQkJCUNBTkFEQQorCiswMC04MC03MyAgIChoZXgpCQlEV0IgQVNTT0NJQVRFUworMDA4MDczICAgICAoYmFzZSAxNikJCURXQiBBU1NPQ0lBVEVTCisJCQkJOTM2MCBTVyBHRU1JTkkgRFJJVkUKKwkJCQlCRUFWRVJUT04gT1IgOTcwMDUtNzE1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNzQgICAoaGV4KQkJRklTSEVSIENPTlRST0xTCiswMDgwNzQgICAgIChiYXNlIDE2KQkJRklTSEVSIENPTlRST0xTCisJCQkJMTcxMiBDRU5UUkUgQ1JFRUsgRFJJVkUKKwkJCQlBVVNUSU4gVFggNzg3NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTc1ICAgKGhleCkJCVBBUlNZVEVDIEdNQkgKKzAwODA3NSAgICAgKGJhc2UgMTYpCQlQQVJTWVRFQyBHTUJICisJCQkJSlVFTElDSEVSIFNUUi4gMzM4CisJCQkJRDUxMDAgQUFDSEVOCisJCQkJRi5SLiBHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC04MC03NiAgIChoZXgpCQlNQ05DCiswMDgwNzYgICAgIChiYXNlIDE2KQkJTUNOQworCQkJCVAuTy4gQk9YIDEyODg5CisJCQkJUlRQIE5DIDI3NzA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC03NyAgIChoZXgpCQlCUk9USEVSIElORFVTVFJJRVMsIExURC4KKzAwODA3NyAgICAgKGJhc2UgMTYpCQlCUk9USEVSIElORFVTVFJJRVMsIExURC4KKwkJCQlSRVNFQVJDSCBMQUJPUkFUT1JZCisJCQkJOS0zNSBIT1JJVEEtRE9SSSwgTUlaVUhPLUtVIE5BR09ZQSwgNDY3CisJCQkJSkFQQU4KKworMDAtODAtNzggICAoaGV4KQkJUFJBQ1RJQ0FMIFBFUklQSEVSQUxTLCBJTkMuCiswMDgwNzggICAgIChiYXNlIDE2KQkJUFJBQ1RJQ0FMIFBFUklQSEVSQUxTLCBJTkMuCisJCQkJMzc1IENPTkVKTyBSSURHRSBBVkVOVUUKKwkJCQlUSE9VU0FORCBPQUtTIENBIDkxMzYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC03OSAgIChoZXgpCQlNSUNST0JVUyBERVNJR05TIExURC4KKzAwODA3OSAgICAgKGJhc2UgMTYpCQlNSUNST0JVUyBERVNJR05TIExURC4KKwkJCQlUUkVBREFXQVkgSElMTAorCQkJCUxPVURXQVRFUiBISUdIIFdZQ09NQkUgQlVDS1MgSFAxMCA5UUwKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTdBICAgKGhleCkJCUFJVEVDSCBTWVNURU1TIExURC4KKzAwODA3QSAgICAgKGJhc2UgMTYpCQlBSVRFQ0ggU1lTVEVNUyBMVEQuCisJCQkJMzA4MCBPTENPVFQgU1RSRUVUCisJCQkJU1VJVEUgMTA1QQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC03QiAgIChoZXgpCQlBUlRFTCBDT01NVU5JQ0FUSU9OUyBDT1JQLgorMDA4MDdCICAgICAoYmFzZSAxNikJCUFSVEVMIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJMjIgS0FORSBJTkRVU1RSSUFMIERSSVZFCisJCQkJSFVEU09OIE1BIDAxNzQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC03QyAgIChoZXgpCQlGSUJFUkNPTSwgSU5DLgorMDA4MDdDICAgICAoYmFzZSAxNikJCUZJQkVSQ09NLCBJTkMuCisJCQkJMzM1MyBPUkFOR0UgQVZFTlVFIE5FCisJCQkJUk9BTk9LRSBWQSAyNDAxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtN0QgICAoaGV4KQkJRVFVSU5PWCBTWVNURU1TIElOQy4KKzAwODA3RCAgICAgKGJhc2UgMTYpCQlFUVVJTk9YIFNZU1RFTVMgSU5DLgorCQkJCTE0MjYwIFNXIDExOVRIIEFWRU5VRQorCQkJCU1JQU1JIEZMIDMzMTg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC03RSAgIChoZXgpCQlTT1VUSEVSTiBQQUNJRklDIExURC4KKzAwODA3RSAgICAgKGJhc2UgMTYpCQlTT1VUSEVSTiBQQUNJRklDIExURC4KKwkJCQlTQU5XQSBCTERHLiwgMi0xNi0yMAorCQkJCU1JTkFNSVNBSVdBSSBOSVNISSBZT0tPSEFNQQorCQkJCUpBUEFOIEpBUEFOIDIyMAorCQkJCUpBUEFOCisKKzAwLTgwLTdGICAgKGhleCkJCURZLTQgSU5DT1JQT1JBVEVECiswMDgwN0YgICAgIChiYXNlIDE2KQkJRFktNCBJTkNPUlBPUkFURUQKKwkJCQkzMzMgUEFMTEFESVVNIERSSVZFLCBNUyAzMTIKKwkJCQlLQU5BVEEsIE9OVEFSSU8sIEsyViAxQTYKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtODAtODAgICAoaGV4KQkJREFUQU1FRElBIENPUlBPUkFUSU9OCiswMDgwODAgICAgIChiYXNlIDE2KQkJREFUQU1FRElBIENPUlBPUkFUSU9OCisJCQkJNzQwMSBDRU5UUkFMIEhJR0hXQVkKKwkJCQlQRU5OU0FVS0VOIE5KIDA4MTA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC04MSAgIChoZXgpCQlLRU5EQUxMIFNRVUFSRSBSRVNFQVJDSCBDT1JQLgorMDA4MDgxICAgICAoYmFzZSAxNikJCUtFTkRBTEwgU1FVQVJFIFJFU0VBUkNIIENPUlAuCisJCQkJMTcwIFRSQUNFUiBMQU5FCisJCQkJV0FMVEhBTSBNQSAwMjE1NC0xMzc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC04MiAgIChoZXgpCQlQRVAgTU9EVUxBUiBDT01QVVRFUlMgR01CSAorMDA4MDgyICAgICAoYmFzZSAxNikJCVBFUCBNT0RVTEFSIENPTVBVVEVSUyBHTUJICisJCQkJQVBGRUxTVFJBTkdFUiBTVFIuIDE2CisJCQkJRCAtIDg5NTAgS0FVRkJFVVJFTgorCQkJCVdFU1QgR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtODAtODMgICAoaGV4KQkJQU1EQUhMCiswMDgwODMgICAgIChiYXNlIDE2KQkJQU1EQUhMCisJCQkJMTI1MCBFQVNUIEFSUVVFUyBBVkVOVUUKKwkJCQlNL1MgMjg2IFAuTy4gQk9YIDM0NzAKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODgtMzQ3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtODQgICAoaGV4KQkJVEhFIENMT1VEIElOQy4KKzAwODA4NCAgICAgKGJhc2UgMTYpCQlUSEUgQ0xPVUQgSU5DLgorCQkJCUNMT1VEIEJMREcuCisJCQkJNzEtMSwgQ0hFT05HLURBTSBET05HIEtBTkctTkFNIEtVLCBTRU9VTAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTgwLTg1ICAgKGhleCkJCUgtVEhSRUUgU1lTVEVNUyBDT1JQT1JBVElPTgorMDA4MDg1ICAgICAoYmFzZSAxNikJCUgtVEhSRUUgU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCTEwMCBQQVJLIERSSVZFLCBTVUlURSAyMDQKKwkJCQlSRVNFQVJDSCBUUklBTkdMRSBQQVJLCisJCQkJTkMgMjc3MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTg2ICAgKGhleCkJCUNPTVBVVEVSIEdFTkVSQVRJT04gSU5DLgorMDA4MDg2ICAgICAoYmFzZSAxNikJCUNPTVBVVEVSIEdFTkVSQVRJT04gSU5DLgorCQkJCTM4NTUgUFJFU0lERU5USUFMIFBBUktXQVkKKwkJCQlBVExBTlRBIEdBIDMwMzQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC04NyAgIChoZXgpCQlPS0kgRUxFQ1RSSUMgSU5EVVNUUlkgQ08uLCBMVEQKKzAwODA4NyAgICAgKGJhc2UgMTYpCQlPS0kgRUxFQ1RSSUMgSU5EVVNUUlkgQ08uLCBMVEQKKwkJCQkxMC0zIFNISUJBVVJBIDQtQ0hPTUUKKwkJCQlNSU5BVE8tS1UsIFRPS1lPIDEwOAorCQkJCUpBUEFOCisKKzAwLTgwLTg4ICAgKGhleCkJCVZJQ1RPUiBDT01QQU5ZIE9GIEpBUEFOLCBMVEQuCiswMDgwODggICAgIChiYXNlIDE2KQkJVklDVE9SIENPTVBBTlkgT0YgSkFQQU4sIExURC4KKwkJCQk1OC03IFNISU5NRUktQ0hPLCBZT0tPU1VLQQorCQkJCUtBTkFHQVdBICAgMjM5CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC04OSAgIChoZXgpCQlURUNORVRJQ1MgKFBUWSkgTFRELgorMDA4MDg5ICAgICAoYmFzZSAxNikJCVRFQ05FVElDUyAoUFRZKSBMVEQuCisJCQkJUC5PLiBCT1gvUE9TQlVTIDU2NDEyCisJCQkJUElORUdPV1JJRSwgMjEyMworCQkJCVNPVVRIIEFGUklDQQorCQkJCVNPVVRIIEFGUklDQQorCiswMC04MC04QSAgIChoZXgpCQlTVU1NSVQgTUlDUk9TWVNURU1TIENPUlAuCiswMDgwOEEgICAgIChiYXNlIDE2KQkJU1VNTUlUIE1JQ1JPU1lTVEVNUyBDT1JQLgorCQkJCTcxMCBMQUtFV0FZLVNURS4jMTUwCisJCQkJU1VOTllWQUxFIENBIDk0MDg2NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtOEIgICAoaGV4KQkJREFDT0xMIExJTUlURUQKKzAwODA4QiAgICAgKGJhc2UgMTYpCQlEQUNPTEwgTElNSVRFRAorCQkJCURBQ09MTCBIT1VTRSwgR0FSRE5FUlMgTEFORQorCQkJCUJBVEhHQVRFIFdFU1QgTE9USElBTgorCQkJCVNDT1RMQU5EIEVINDggMVRQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtOEMgICAoaGV4KQkJTmV0U2NvdXQgU3lzdGVtcywgSW5jLgorMDA4MDhDICAgICAoYmFzZSAxNikJCU5ldFNjb3V0IFN5c3RlbXMsIEluYy4KKwkJCQkxNTAxIE1BSU4gU1RSRUVUCisJCQkJU1VJVEUgIzQwCisJCQkJVEVXS1NCVVJZIE1BIDAxODc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC04RCAgIChoZXgpCQlXRVNUQ09BU1QgVEVDSE5PTE9HWSBCLlYuCiswMDgwOEQgICAgIChiYXNlIDE2KQkJV0VTVENPQVNUIFRFQ0hOT0xPR1kgQi5WLgorCQkJCVAuTy4gQk9YIDMzMTcKKwkJCQkyNjAxIERIIERFTEZUCisJCQkJTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC04MC04RSAgIChoZXgpCQlSQURTVE9ORSBURUNITk9MT0dZCiswMDgwOEUgICAgIChiYXNlIDE2KQkJUkFEU1RPTkUgVEVDSE5PTE9HWQorCQkJCVdBVEVSIExBTkUsIFRPV0NFU1RFUgorCQkJCU5PUlRIQU5UUyBOTjEyIDdKTgorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC04RiAgIChoZXgpCQlDLiBJVE9IIEVMRUNUUk9OSUNTLCBJTkMuCiswMDgwOEYgICAgIChiYXNlIDE2KQkJQy4gSVRPSCBFTEVDVFJPTklDUywgSU5DLgorCQkJCTI1MDUgTUNDQUJFIFdBWQorCQkJCUlSVklORSBDQSA5MjcxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtOTAgICAoaGV4KQkJTUlDUk9URUsgSU5URVJOQVRJT05BTCwgSU5DLgorMDA4MDkwICAgICAoYmFzZSAxNikJCU1JQ1JPVEVLIElOVEVSTkFUSU9OQUwsIElOQy4KKwkJCQkzMzAwIE5XIDIxMVRIIFRFUlJBQ0UKKwkJCQlISUxMU0JPUiBPUiA5NzEyNC03MTM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC05MSAgIChoZXgpCQlUT0tZTyBFTEVDVFJJQyBDTy4sTFRECiswMDgwOTEgICAgIChiYXNlIDE2KQkJVE9LWU8gRUxFQ1RSSUMgQ08uLExURAorCQkJCTEwLTE0IFVDSElLQU5EQQorCQkJCTEtQ0hPTUUgQ0hJWU9EQS1LVQorCQkJCVRPS1lPIEpBUEFOIDEwMQorCQkJCUpBUEFOCisKKzAwLTgwLTkyICAgKGhleCkJCVNpbGV4IFRlY2hub2xvZ3ksIEluYy4KKzAwODA5MiAgICAgKGJhc2UgMTYpCQlTaWxleCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMi0zLTEgSGlrYXJpZGFpLAorCQkJCVNlaWthLWNobworCQkJCUt5b3RvICA2MTktMDIzNworCQkJCUpBUEFOCisKKzAwLTgwLTkzICAgKGhleCkJCVhZUk9OIENPUlBPUkFUSU9OCiswMDgwOTMgICAgIChiYXNlIDE2KQkJWFlST04gQ09SUE9SQVRJT04KKwkJCQk3ODY0IExJTFkgQ09VUlQKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTk0ICAgKGhleCkJCUFMRkEgTEFWQUwgQVVUT01BVElPTiBBQgorMDA4MDk0ICAgICAoYmFzZSAxNikJCUFMRkEgTEFWQUwgQVVUT01BVElPTiBBQgorCQkJCUFETgorCQkJCVMtMjA1IDIyIE1BTE1PCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLTgwLTk1ICAgKGhleCkJCUJBU0lDIE1FUlRPTiBIQU5ERUxTR0VTLk0uQi5ILgorMDA4MDk1ICAgICAoYmFzZSAxNikJCUJBU0lDIE1FUlRPTiBIQU5ERUxTR0VTLk0uQi5ILgorCQkJCURVUkNITEFTUy1TVFJBU1NFIDQyCisJCQkJQSAtIDkwMjAgS0xBR0VORlVSVAorCQkJCUFVU1RSSUEKKwkJCQlBVVNUUklBCisKKzAwLTgwLTk2ICAgKGhleCkJCUhVTUFOIERFU0lHTkVEIFNZU1RFTVMsIElOQy4KKzAwODA5NiAgICAgKGJhc2UgMTYpCQlIVU1BTiBERVNJR05FRCBTWVNURU1TLCBJTkMuCisJCQkJNDIxIEZFSEVMRVkgRFJJVkUKKwkJCQlLSU5HIE9GIFBSVVNTSUEgUEEgMTk0MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTk3ICAgKGhleCkJCUNFTlRSQUxQIEFVVE9NQVRJU01FUworMDA4MDk3ICAgICAoYmFzZSAxNikJCUNFTlRSQUxQIEFVVE9NQVRJU01FUworCQkJCTIxLCBSVUUgTUFSQ0VMIFBBR05PTCA2OTY5NAorCQkJCVZFTklTU0lFVVggQ0VERVgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtODAtOTggICAoaGV4KQkJVERLIENPUlBPUkFUSU9OCiswMDgwOTggICAgIChiYXNlIDE2KQkJVERLIENPUlBPUkFUSU9OCisJCQkJQ09SUC4gUiZEIERFUFQuIFRFQ0guIEhEUVRFUlMuCisJCQkJMi0xNS03LCBISUdBU0hJLU9XQURBLCBJQ0hJS0FXQS1TSEkKKwkJCQlDSElCQS1LRU4gMjcyLCBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTk5ICAgKGhleCkJCUtMT0NLTkVSIE1PRUxMRVIgSVBDCiswMDgwOTkgICAgIChiYXNlIDE2KQkJS0xPQ0tORVIgTU9FTExFUiBJUEMKKwkJCQlGUklUWi1LT1RaLVNUUi4gOAorCQkJCVAuTy4gQk9YIDEzIDgwIEQtNTI3NiBXSUVITCAxLUJPTUlHCisJCQkJV0VTVCBHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC04MC05QSAgIChoZXgpCQlOT1ZVUyBORVRXT1JLUyBMVEQKKzAwODA5QSAgICAgKGJhc2UgMTYpCQlOT1ZVUyBORVRXT1JLUyBMVEQKKwkJCQlKT0hOIFNDT1RUIEhPVVNFCisJCQkJTUFSS0VUIFNUUkVFVCBCUkFDS05FTEwsIEJFUktXICBSRzEyIDFKQgorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC05QiAgIChoZXgpCQlKVVNUU1lTVEVNIENPUlBPUkFUSU9OCiswMDgwOUIgICAgIChiYXNlIDE2KQkJSlVTVFNZU1RFTSBDT1JQT1JBVElPTgorCQkJCTMtNDYgT0tJTk9IQU1BSElHQVNISQorCQkJCVRPS1VTSU1BU0hJIDc3MAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtOUMgICAoaGV4KQkJTFVYQ09NLCBJTkMuCiswMDgwOUMgICAgIChiYXNlIDE2KQkJTFVYQ09NLCBJTkMuCisJCQkJMzI0OSBMQVVSRUxWSUVXIENPVVJUCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtOUQgICAoaGV4KQkJQ29tbXNjcmFmdCBMdGQuCiswMDgwOUQgICAgIChiYXNlIDE2KQkJQ29tbXNjcmFmdCBMdGQuCisJCQkJUE8gQk9YIDE2MAorCQkJCUJFTlRMRVksIFcuQS4gNjEwMgorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC04MC05RSAgIChoZXgpCQlEQVRVUyBHTUJICiswMDgwOUUgICAgIChiYXNlIDE2KQkJREFUVVMgR01CSAorCQkJCUlORFVTVFJJRVNUUi4gMgorCQkJCUQtNTEwMiBXVVJTRUxFTi9BQUNIRU4KKwkJCQlXRVNUIEdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTgwLTlGICAgKGhleCkJCUFMQ0FURUwgQlVTSU5FU1MgU1lTVEVNUworMDA4MDlGICAgICAoYmFzZSAxNikJCUFMQ0FURUwgQlVTSU5FU1MgU1lTVEVNUworCQkJCTU0LCBBVkVOVUUgSkVBTiBKQVVSRVMKKwkJCQk5MjcwNyBDT0xPTUJFUyBDRURFWAorCQkJCUZSQU5DRQorCiswMC04MC1BMCAgIChoZXgpCQlFRElTQSBIRVdMRVRUIFBBQ0tBUkQgUy9BCiswMDgwQTAgICAgIChiYXNlIDE2KQkJRURJU0EgSEVXTEVUVCBQQUNLQVJEIFMvQQorCQkJCUFMQU1FREEgUklPIE5FR1JPLAorCQkJCTc1MC1BTFBIQVZJTExFIDA2NDU0LTAwMCAgQkFSVUVSSSBTUAorCQkJCUJSQVpJTAorCQkJCUJSQVpJTAorCiswMC04MC1BMSAgIChoZXgpCQlNSUNST1RFU1QsIElOQy4KKzAwODBBMSAgICAgKGJhc2UgMTYpCQlNSUNST1RFU1QsIElOQy4KKwkJCQk0NzQ3IE4uIDIyTkQgU1RSRUVUCisJCQkJUEhPRU5JWCBBWiA4NTAxNi00NzA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1BMiAgIChoZXgpCQlDUkVBVElWRSBFTEVDVFJPTklDIFNZU1RFTVMKKzAwODBBMiAgICAgKGJhc2UgMTYpCQlDUkVBVElWRSBFTEVDVFJPTklDIFNZU1RFTVMKKwkJCQk3MCBST1VURSBEVSBQT05UIC0gQlVUSU4KKwkJCQlDSC0xMjEzIFBFVElULUxBTkNZIEdFTkVWQQorCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDAtODAtQTMgICAoaGV4KQkJTGFudHJvbml4CiswMDgwQTMgICAgIChiYXNlIDE2KQkJTGFudHJvbml4CisJCQkJMTUzNTMgQmFycmFuY2EgUGFya3dheQorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQTQgICAoaGV4KQkJTElCRVJUWSBFTEVDVFJPTklDUworMDA4MEE0ICAgICAoYmFzZSAxNikJCUxJQkVSVFkgRUxFQ1RST05JQ1MKKwkJCQkzMzIgSEFSQk9SIFdBWQorCQkJCVNPVVRIIFNBTiBGUkFOQ0lTQ08gQ0EgOTQwODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUE1ICAgKGhleCkJCVNQRUVEIElOVEVSTkFUSU9OQUwKKzAwODBBNSAgICAgKGJhc2UgMTYpCQlTUEVFRCBJTlRFUk5BVElPTkFMCisJCQkJMTMyMCBBUkJPTElUQSBEUi4KKwkJCQlMQSBIQUJSQSBDQSA5MDYzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQTYgICAoaGV4KQkJUkVQVUJMSUMgVEVDSE5PTE9HWSwgSU5DLgorMDA4MEE2ICAgICAoYmFzZSAxNikJCVJFUFVCTElDIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQlQLk8uIEJPWCAxNDEwMDYKKwkJCQlBVVNUSU4gVFggNzg3MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUE3ICAgKGhleCkJCUhvbmV5d2VsbCBJbnRlcm5hdGlvbmFsIEluYworMDA4MEE3ICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbCBJbnRlcm5hdGlvbmFsIEluYworCQkJCVZhbmNvdXZlciBDZW50ZXIgb2YgRXhjZWxsZW5jZSAKKwkJCQk1MDAgQnJvb2tzYmFuayBBdmVudWUgCisJCQkJTm9ydGggVmFuY291dmVyICBWN0ogM1M0IAorCQkJCUNBTkFEQQorCiswMC04MC1BOCAgIChoZXgpCQlWSVRBQ09NIENPUlBPUkFUSU9OCiswMDgwQTggICAgIChiYXNlIDE2KQkJVklUQUNPTSBDT1JQT1JBVElPTgorCQkJCTEzMzAgQ0hBUkxFU1RPTiBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQTkgICAoaGV4KQkJQ0xFQVJQT0lOVCBSRVNFQVJDSAorMDA4MEE5ICAgICAoYmFzZSAxNikJCUNMRUFSUE9JTlQgUkVTRUFSQ0gKKwkJCQkxOTAgTk9SVEggTUFJTiBTVFJFRVQKKwkJCQlOQVRJQ0sgTUEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUFBICAgKGhleCkJCU1BWFBFRUQKKzAwODBBQSAgICAgKGJhc2UgMTYpCQlNQVhQRUVECisJCQkJMTEyMCBDSEVTUyBEUklWRQorCQkJCUZPU1RFUiBDSVRZIENBIDk0NDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1BQiAgIChoZXgpCQlEVUtBTkUgTkVUV09SSyBJTlRFR1JBVElPTgorMDA4MEFCICAgICAoYmFzZSAxNikJCURVS0FORSBORVRXT1JLIElOVEVHUkFUSU9OCisJCQkJMjkwMCBEVUtBTkUgRFJJVkUKKwkJCQlTVC4gQ0hBUkxFUyBJTCA2MDE3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQUMgICAoaGV4KQkJSU1MT0dJWCwgRElWSVNJT04gT0YgR0VORVNZUworMDA4MEFDICAgICAoYmFzZSAxNikJCUlNTE9HSVgsIERJVklTSU9OIE9GIEdFTkVTWVMKKwkJCQkxOTAwIFNVTU1JVCBUT1dFUiBCTFZELlNURSM3NzAKKwkJCQlPUkxBTkRPIEZMIDMyODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1BRCAgIChoZXgpCQlDTkVUIFRFQ0hOT0xPR1ksIElOQy4KKzAwODBBRCAgICAgKGJhc2UgMTYpCQlDTkVUIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkyMTk5IFpBTktFUiBST0FECisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUFFICAgKGhleCkJCUhVR0hFUyBORVRXT1JLIFNZU1RFTVMKKzAwODBBRSAgICAgKGJhc2UgMTYpCQlIVUdIRVMgTkVUV09SSyBTWVNURU1TCisJCQkJMTE3MTcgRVhQTE9SQVRJT04gTEFORQorCQkJCUdFUk1BTlRPV04gTUQgMjA4NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUFGICAgKGhleCkJCUFMTFVNRVIgQ08uLCBMVEQuCiswMDgwQUYgICAgIChiYXNlIDE2KQkJQUxMVU1FUiBDTy4sIExURC4KKwkJCQkyLTgtOCBDSFVPLUNITywgTUVHVVJPLUtVCisJCQkJVE9LWU8gMTUyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC1CMCAgIChoZXgpCQlBRFZBTkNFRCBJTkZPUk1BVElPTgorMDA4MEIwICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIElORk9STUFUSU9OCisJCQkJVEVDSE5PTE9HWSwgSU5DLgorCQkJCTVGIDEtMi02IE5JSE9OQkFTSEktSE9OQ0hPIENIVU8tS1UsICBUT0sKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLUIxICAgKGhleCkJCVNPRlRDT00gQS9TCiswMDgwQjEgICAgIChiYXNlIDE2KQkJU09GVENPTSBBL1MKKwkJCQlTVFVESUVTVFJBRURFIDIxCisJCQkJREsgMTQ1NSBDT1BFTk5IQUdFTiBLLgorCQkJCURFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLTgwLUIyICAgKGhleCkJCU5FVFdPUksgRVFVSVBNRU5UIFRFQ0hOT0xPR0lFUworMDA4MEIyICAgICAoYmFzZSAxNikJCU5FVFdPUksgRVFVSVBNRU5UIFRFQ0hOT0xPR0lFUworCQkJCTY5MDAgUEFTRU8gUEFEUkUgUEFSS1dBWQorCQkJCUZSRU1PTlQgQ0EgOTQ1NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUIzICAgKGhleCkJCUFWQUwgREFUQSBDT1JQT1JBVElPTgorMDA4MEIzICAgICAoYmFzZSAxNikJCUFWQUwgREFUQSBDT1JQT1JBVElPTgorCQkJCU1BQ0hJREEgRU5HSU5FRVJJTkcgQ0VOVEVSCisJCQkJMTc1Ny0xIEtBTkFJLUNITyBNQUNISURBIENJVFkgVE9LWU8gSkFQQQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtQjQgICAoaGV4KQkJU09QSElBIFNZU1RFTVMKKzAwODBCNCAgICAgKGJhc2UgMTYpCQlTT1BISUEgU1lTVEVNUworCQkJCTMzMzcgS0lGRVIgUk9BRAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1CNSAgIChoZXgpCQlVTklURUQgTkVUV09SS1MgSU5DLgorMDA4MEI1ICAgICAoYmFzZSAxNikJCVVOSVRFRCBORVRXT1JLUyBJTkMuCisJCQkJMjE3OCBQQVJBR09OIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUI2ICAgKGhleCkJCVRIRU1JUyBDT01QVVRFUgorMDA4MEI2ICAgICAoYmFzZSAxNikJCVRIRU1JUyBDT01QVVRFUgorCQkJCTY2ODEgT1dFTlMgRFJJVkUKKwkJCQlQTEVBU09OVE9OIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1CNyAgIChoZXgpCQlTVEVMTEFSIENPTVBVVEVSCiswMDgwQjcgICAgIChiYXNlIDE2KQkJU1RFTExBUiBDT01QVVRFUgorCQkJCTk1IFdFTExTIEFWRU5VRQorCQkJCU5FV1RPTiBNQSAwMjE1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQjggICAoaGV4KQkJQlVHLCBJTkNPUlBPUkFURUQKKzAwODBCOCAgICAgKGJhc2UgMTYpCQlCVUcsIElOQ09SUE9SQVRFRAorCQkJCTEtMTQgVEVDSE5PLVBBUksgIDEtQ0hPTUUKKwkJCQlTSElNT05PUFBPUk8sIEFUU1VCRVRTVS1LVSBTQVBQT1JPIDAwNCwKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLUI5ICAgKGhleCkJCUFSQ0hFIFRFQ0hOT0xJR0lFUyBJTkMuCiswMDgwQjkgICAgIChiYXNlIDE2KQkJQVJDSEUgVEVDSE5PTElHSUVTIElOQy4KKwkJCQk0ODUwMiBLQVRPIFJPQUQKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUyBNSU5PUiBPVVRMWUlORyBJU0xBTgorCiswMC04MC1CQSAgIChoZXgpCQlTUEVDSUFMSVggKEFTSUEpIFBURSwgTFRECiswMDgwQkEgICAgIChiYXNlIDE2KQkJU1BFQ0lBTElYIChBU0lBKSBQVEUsIExURAorCQkJCTMgV0lOVEVSU0VMTFMgUk9BRAorCQkJCUJZRkxFRVQgU1VSUkVZICBLVDE0N0xGCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC1CQiAgIChoZXgpCQlIVUdIRVMgTEFOIFNZU1RFTVMKKzAwODBCQiAgICAgKGJhc2UgMTYpCQlIVUdIRVMgTEFOIFNZU1RFTVMKKwkJCQkxMjI1IENIQVJMRVNUT04gUk9BRAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUJDICAgKGhleCkJCUhJVEFDSEkgRU5HSU5FRVJJTkcgQ08uLCBMVEQKKzAwODBCQyAgICAgKGJhc2UgMTYpCQlISVRBQ0hJIEVOR0lORUVSSU5HIENPLiwgTFRECisJCQkJNC04LTI2LCBPTUlLQUNITworCQkJCUhJVEFDSEkgQ0lUWSBJQkFSQUtJIFBSRUZFQ1RVUkUgMzE5LTEyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC1CRCAgIChoZXgpCQlUSEUgRlVSVUtBV0EgRUxFQ1RSSUMgQ08uLCBMVEQKKzAwODBCRCAgICAgKGJhc2UgMTYpCQlUSEUgRlVSVUtBV0EgRUxFQ1RSSUMgQ08uLCBMVEQKKwkJCQk2LTEsIE1BUlVOT1VDSEkgMi1DSE9NRQorCQkJCUNISVlPREEtS1UsIFRPS1lPCisJCQkJMTAwIEpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtQkUgICAoaGV4KQkJQVJJRVMgUkVTRUFSQ0gKKzAwODBCRSAgICAgKGJhc2UgMTYpCQlBUklFUyBSRVNFQVJDSAorCQkJCTQ2NzkxIEZSRU1PTkQgQkxWRC4KKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1CRiAgIChoZXgpCQlUQUtBT0tBIEVMRUNUUklDIE1GRy4gQ08uIExURC4KKzAwODBCRiAgICAgKGJhc2UgMTYpCQlUQUtBT0tBIEVMRUNUUklDIE1GRy4gQ08uIExURC4KKwkJCQlLQU5EQSBCUkFOQ0ggT0ZGSUNFIFRPTkVOCisJCQkJMi0xLTExLCBTQVJVR0FLVS1DSE8gQ0hJWU9EQS1LVSwgVE9LWU8sCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC1DMCAgIChoZXgpCQlQRU5SSUwgREFUQUNPTU0KKzAwODBDMCAgICAgKGJhc2UgMTYpCQlQRU5SSUwgREFUQUNPTU0KKwkJCQkxMzAwIFFVSU5DRSBPUkNIQVJEIEJMVkQuCisJCQkJR0FJVEhFUlNCVVJHIE1EIDIwODc4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1DMSAgIChoZXgpCQlMQU5FWCBDT1JQT1JBVElPTgorMDA4MEMxICAgICAoYmFzZSAxNikJCUxBTkVYIENPUlBPUkFUSU9OCisJCQkJMTA3MjcgVFVDS0VSIFNUUkVFVAorCQkJCUJFTFRTVklMTEUgTUQgMjA3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUMyICAgKGhleCkJCUlFRUUgODAyLjEgQ09NTUlUVEVFCiswMDgwQzIgICAgIChiYXNlIDE2KQkJSUVFRSA4MDIuMSBDT01NSVRURUUKKwkJCQk4MDIuMSBDaGFpciwgYy9vIElFRUUgU3RhbmRhcmRzIEFzc29jaWF0aW9uCisJCQkJNDQ1IEhvZXMgTGFuZQorCQkJCVBpc2NhdGF3YXkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUMzICAgKGhleCkJCUJJQ0MgSU5GT1JNQVRJT04gU1lTVEVNUyAmIFNWQworMDA4MEMzICAgICAoYmFzZSAxNikJCUJJQ0MgSU5GT1JNQVRJT04gU1lTVEVNUyAmIFNWQworCQkJCTUwMCBDQVBBQklMSVRZIEdSRUVOLCBMVVRPTgorCQkJCUJFREZPUkRTSElSRQorCQkJCUVOR0xBTkQgTFUxIDNMVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLUM0ICAgKGhleCkJCURPQ1VNRU5UIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA4MEM0ICAgICAoYmFzZSAxNikJCURPQ1VNRU5UIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTEzMDAgQ0hBUkxFU1RPTiBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQzUgICAoaGV4KQkJTk9WRUxMQ08gREUgTUVYSUNPCiswMDgwQzUgICAgIChiYXNlIDE2KQkJTk9WRUxMQ08gREUgTUVYSUNPCisJCQkJQ09OU1RJVFVZRU5URVMgTk8uIDkwNworCQkJCUNPTC4gTE9NQVMgQUxUQVMKKwkJCQkxMTk1MCBNRVhJQ08gMTE5NTAgTUVYSUNPIEQuRi4KKwkJCQlNRVhJQ08KKworMDAtODAtQzYgICAoaGV4KQkJTkFUSU9OQUwgREFUQUNPTU0gQ09SUE9SQVRJT04KKzAwODBDNiAgICAgKGJhc2UgMTYpCQlOQVRJT05BTCBEQVRBQ09NTSBDT1JQT1JBVElPTgorCQkJCTJGLCAyOCwgSU5EVVNUUlkgRUFTVCA5VEggUkQuCisJCQkJU0NJRU5DRSBQQVJLLCBIU0lOLUNIVQorCQkJCVRBSVdBTiAgMzAwNzcgVEFJV0FOICAzMDA3NyBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTgwLUM3ICAgKGhleCkJCVhJUkNPTQorMDA4MEM3ICAgICAoYmFzZSAxNikJCVhJUkNPTQorCQkJCTI2MDI1IE1VUkVBVSBST0FECisJCQkJQ0FMQUJBU0FTIENBIDkxMzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1DOCAgIChoZXgpCQlELUxJTksgU1lTVEVNUywgSU5DLgorMDA4MEM4ICAgICAoYmFzZSAxNikJCUQtTElOSyBTWVNURU1TLCBJTkMuCisJCQkJNTMgRGlzY292ZXIgRHIuCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1DOSAgIChoZXgpCQlBTEJFUlRBIE1JQ1JPRUxFQ1RST05JQyBDRU5UUkUKKzAwODBDOSAgICAgKGJhc2UgMTYpCQlBTEJFUlRBIE1JQ1JPRUxFQ1RST05JQyBDRU5UUkUKKwkJCQkzMTgsIDExMzE1IC0gODcgQVZFTlVFCisJCQkJRURNT05UT04sIEFCIFQ2RyAyQzIKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtODAtQ0EgICAoaGV4KQkJTkVUQ09NIFJFU0VBUkNIIElOQ09SUE9SQVRFRAorMDA4MENBICAgICAoYmFzZSAxNikJCU5FVENPTSBSRVNFQVJDSCBJTkNPUlBPUkFURUQKKwkJCQkyMDEgVEVDSE5PTE9HWSBEUklWRQorCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQ0IgICAoaGV4KQkJRkFMQ08gREFUQSBQUk9EVUNUUworMDA4MENCICAgICAoYmFzZSAxNikJCUZBTENPIERBVEEgUFJPRFVDVFMKKwkJCQk0NDAgUE9UUkVSTyBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYtNDE5NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQ0MgICAoaGV4KQkJTUlDUk9XQVZFIEJZUEFTUyBTWVNURU1TCiswMDgwQ0MgICAgIChiYXNlIDE2KQkJTUlDUk9XQVZFIEJZUEFTUyBTWVNURU1TCisJCQkJMjUgQlJBSU5UUkVFIEhJTEwgT0ZGSUNFIFBBUksKKwkJCQlCUkFJTlRSRUUgTUEgMDIxODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUNEICAgKGhleCkJCU1JQ1JPTklDUyBDT01QVVRFUiwgSU5DLgorMDA4MENEICAgICAoYmFzZSAxNikJCU1JQ1JPTklDUyBDT01QVVRFUiwgSU5DLgorCQkJCTQ1MzY1IE5PUlRIUE9SVCBMT09QIFdFU1QKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1DRSAgIChoZXgpCQlCUk9BRENBU1QgVEVMRVZJU0lPTiBTWVNURU1TCiswMDgwQ0UgICAgIChiYXNlIDE2KQkJQlJPQURDQVNUIFRFTEVWSVNJT04gU1lTVEVNUworCQkJCVAuTy4gQk9YIDMwODE2CisJCQkJU0FMVCBMQUtFIENJVFksIFVUQUgKKwkJCQlVdGFoIDg0MTMwLTA4MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUNGICAgKGhleCkJCUVNQkVEREVEIFBFUkZPUk1BTkNFIElOQy4KKzAwODBDRiAgICAgKGJhc2UgMTYpCQlFTUJFRERFRCBQRVJGT1JNQU5DRSBJTkMuCisJCQkJMzM4NSBTQ09UVCBCTFZELgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0LTMxMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUQwICAgKGhleCkJCUNPTVBVVEVSIFBFUklQSEVSQUxTLCBJTkMuCiswMDgwRDAgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgUEVSSVBIRVJBTFMsIElOQy4KKwkJCQk2NjcgUkFOQ0hPIENPTkVKTyBCTFZELgorCQkJCU5FV0JVUlkgUEFSSyBDQSA5MTMyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRDEgICAoaGV4KQkJS0lNVFJPTiBDT1JQT1JBVElPTgorMDA4MEQxICAgICAoYmFzZSAxNikJCUtJTVRST04gQ09SUE9SQVRJT04KKwkJCQkxNzA5IEpVTkNUSU9OIENPVVJUCisJCQkJQlVJTERJTkcgMzgwCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUQyICAgKGhleCkJCVNISU5OSUhPTkRFTktPIENPLiwgTFRELgorMDA4MEQyICAgICAoYmFzZSAxNikJCVNISU5OSUhPTkRFTktPIENPLiwgTFRELgorCQkJCTYtOCBOSVNISVRFTk1BIDIgQ0hPTUUKKwkJCQlLSVRBLUtVLCBPU0FLQSA1MzAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLUQzICAgKGhleCkJCVNISVZBIENPUlAuCiswMDgwRDMgICAgIChiYXNlIDE2KQkJU0hJVkEgQ09SUC4KKwkJCQkyMDUgQlVSTElOR1RPTiBST0FECisJCQkJQkVERk9SRCBNQSAwMTczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRDQgICAoaGV4KQkJQ0hBU0UgUkVTRUFSQ0ggTFRELgorMDA4MEQ0ICAgICAoYmFzZSAxNikJCUNIQVNFIFJFU0VBUkNIIExURC4KKwkJCQk3IENISU5FSEFNIEJVU0lORVNTIFBBUksKKwkJCQlCQVNJTkdTVE9LRSwgUkcgMjQgT1dECisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLUQ1ICAgKGhleCkJCUNBRFJFIFRFQ0hOT0xPR0lFUworMDA4MEQ1ICAgICAoYmFzZSAxNikJCUNBRFJFIFRFQ0hOT0xPR0lFUworCQkJCTE5NTQ1IE5XIFZPTiBORVVNQU5OIERSSVZFCisJCQkJQkVBVkVSVE9OIE9SIDk3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1ENiAgIChoZXgpCQlOVVZPVEVDSCwgSU5DLgorMDA4MEQ2ICAgICAoYmFzZSAxNikJCU5VVk9URUNILCBJTkMuCisJCQkJMjAxNSBCUklER0VXQVksIFNVSVRFIDIwNAorCQkJCVNBVVNBTElUTyBDQSA5NDk2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRDcgICAoaGV4KQkJRmFudHVtIEVuZ2luZWVyaW5nCiswMDgwRDcgICAgIChiYXNlIDE2KQkJRmFudHVtIEVuZ2luZWVyaW5nCisJCQkJCisJCQkJUC5PLiBCb3ggMTUwOQorCQkJCVJvY2t3YWxsIFRYIDc1MDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1EOCAgIChoZXgpCQlORVRXT1JLIFBFUklQSEVSQUxTIElOQy4KKzAwODBEOCAgICAgKGJhc2UgMTYpCQlORVRXT1JLIFBFUklQSEVSQUxTIElOQy4KKwkJCQkyODkwIFpPTktFUiBST0FEIFNVSVRFIDIwOQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1EOSAgIChoZXgpCQlFTUsgRWxla3Ryb25payBHbWJIICYgQ28uIEtHCiswMDgwRDkgICAgIChiYXNlIDE2KQkJRU1LIEVsZWt0cm9uaWsgR21iSCAmIENvLiBLRworCQkJCU9iZXJlIEJlcmdzdHJhc3NlIDE2CisJCQkJNzUzMzUgRG9iZWwgCisJCQkJR0VSTUFOWQorCiswMC04MC1EQSAgIChoZXgpCQlCUlVFTCAmIEtKQUVSCiswMDgwREEgICAgIChiYXNlIDE2KQkJQlJVRUwgJiBLSkFFUgorCQkJCTE4LCBOQUVSVU0gSE9WRURHQURFCisJCQkJREstMjg1MCBOQUVSVU0KKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswMC04MC1EQiAgIChoZXgpCQlHUkFQSE9OIENPUlBPUkFUSU9OCiswMDgwREIgICAgIChiYXNlIDE2KQkJR1JBUEhPTiBDT1JQT1JBVElPTgorCQkJCTE1MDYgREVMTCBBVkUgLSAjCisJCQkJQ0FNUEJFTEwgQ0EgOTUwMDgtNjkxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtREMgICAoaGV4KQkJUElDS0VSIElOVEVSTkFUSU9OQUwKKzAwODBEQyAgICAgKGJhc2UgMTYpCQlQSUNLRVIgSU5URVJOQVRJT05BTAorCQkJCTU5NSBNSU5FUiBST0FECisJCQkJQ0xFVkVMQU5EIE9IIDQ0MTQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1ERCAgIChoZXgpCQlHTVggSU5DL0dJTUlYCiswMDgwREQgICAgIChiYXNlIDE2KQkJR01YIElOQy9HSU1JWAorCQkJCTMyMjMgQVJOT0xEIExBTkUKKwkJCQlOT1JUSEJST09LIElMIDYwMDYyLTI0MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLURFICAgKGhleCkJCUdJUFNJIFMuQS4KKzAwODBERSAgICAgKGJhc2UgMTYpCQlHSVBTSSBTLkEuCisJCQkJMixCRCBWQVVCQU4gLSBCLlAuIDI2OAorCQkJCTc4MDUzIFNULiBRVUVOVElOIEVOIFlWRUxJTkVTIENFREVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTgwLURGICAgKGhleCkJCUFEQyBDT0RFTk9MTCBURUNITk9MT0dZIENPUlAuCiswMDgwREYgICAgIChiYXNlIDE2KQkJQURDIENPREVOT0xMIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkyMDAgQ09SUE9SQVRFIEJMVkQuIFNPLgorCQkJCVlPTktFUlMgTlkgMTA3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUUwICAgKGhleCkJCVhUUCBTWVNURU1TLCBJTkMuCiswMDgwRTAgICAgIChiYXNlIDE2KQkJWFRQIFNZU1RFTVMsIElOQy4KKwkJCQkxOTAwIFNUQVRFIFNUUkVFVCAsIFNURQorCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUUxICAgKGhleCkJCVNUTUlDUk9FTEVDVFJPTklDUworMDA4MEUxICAgICAoYmFzZSAxNikJCVNUTUlDUk9FTEVDVFJPTklDUworCQkJCTEwMDAgQVpURUMgV0VTVAorCQkJCUFMTU9ORFNCVVJZIEJSSVNUT0wgQlMzMiA0U1EKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC1FMiAgIChoZXgpCQlULkQuSS4gQ08uLCBMVEQuCiswMDgwRTIgICAgIChiYXNlIDE2KQkJVC5ELkkuIENPLiwgTFRELgorCQkJCURFVkVMT1BNRU5UIERJVi4gICMzIEZVSkkgQkxERworCQkJCTEtMy0xMyBJVEFDSElCT1JJIE5JU0hJLUtVIE9TQUtBIDU1MAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtRTMgICAoaGV4KQkJQ09SQUwgTkVUV09SSyBDT1JQT1JBVElPTgorMDA4MEUzICAgICAoYmFzZSAxNikJCUNPUkFMIE5FVFdPUksgQ09SUE9SQVRJT04KKwkJCQkoTk9XIEJBWSBORVRXT1JLUykKKwkJCQk0NDAxIEdSRUFUIEFNRVJJQ0FOIFBLV1kgTS9TOiBTQzAxLTA1CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTItODE4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRTQgICAoaGV4KQkJTk9SVEhXRVNUIERJR0lUQUwgU1lTVEVNUywgSU5DCiswMDgwRTQgICAgIChiYXNlIDE2KQkJTk9SVEhXRVNUIERJR0lUQUwgU1lTVEVNUywgSU5DCisJCQkJUC5PLiBCT1ggMTUyODgKKwkJCQlTRUFUVExFIFdBIDk4MTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1FNSAgIChoZXgpCQlMU0kgTG9naWMgQ29ycG9yYXRpb24KKzAwODBFNSAgICAgKGJhc2UgMTYpCQlMU0kgTG9naWMgQ29ycG9yYXRpb24KKwkJCQkzNzE4IE4uIFJvY2sgUm9hZAorCQkJCVdpY2hpdGEgS1MgNjcyMjYtMTM5NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRTYgICAoaGV4KQkJUEVFUiBORVRXT1JLUywgSU5DLgorMDA4MEU2ICAgICAoYmFzZSAxNikJCVBFRVIgTkVUV09SS1MsIElOQy4KKwkJCQkzMzUwIFNDT1RUIEJMVkQuIEJMREcuIDE0CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUU3ICAgKGhleCkJCUxZTldPT0QgU0NJRU5USUZJQyBERVYuIExURC4KKzAwODBFNyAgICAgKGJhc2UgMTYpCQlMWU5XT09EIFNDSUVOVElGSUMgREVWLiBMVEQuCisJCQkJRkFSTkhBTSBUUkFESU5HIEVTVEFURQorCQkJCUZBUk5IQU0sIFNVUlJFWSwgR1U5IDlOTgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtRTggICAoaGV4KQkJQ1VNVUxVUyBDT1JQT1JBVElJT04KKzAwODBFOCAgICAgKGJhc2UgMTYpCQlDVU1VTFVTIENPUlBPUkFUSUlPTgorCQkJCTIzNTAwIE1FUkNBTlRJTEUgUk9BRAorCQkJCUNMRVZFTEFORCBPSCA0NDEyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRTkgICAoaGV4KQkJTWFkZ2UgTHRkLgorMDA4MEU5ICAgICAoYmFzZSAxNikJCU1hZGdlIEx0ZC4KKwkJCQlNYWRnZSBIb3VzZQorCQkJCVByaW9ycyBXYXkKKwkJCQlNYWluZGVuaGVhZCBCZXJrc2hpcmUgU0w2IDJIUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLUVBICAgKGhleCkJCUFEVkEgT3B0aWNhbCBOZXR3b3JraW5nIEx0ZC4KKzAwODBFQSAgICAgKGJhc2UgMTYpCQlBRFZBIE9wdGljYWwgTmV0d29ya2luZyBMdGQuCisJCQkJT25lIFRlY2hub2xvZ3kgUGFya3dheSBTb3V0aAorCQkJCU5vcmNyb3NzIEdBIDMwMDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1FQiAgIChoZXgpCQlDT01QQ09OVFJPTCBCLlYuCiswMDgwRUIgICAgIChiYXNlIDE2KQkJQ09NUENPTlRST0wgQi5WLgorCQkJCVNUUkFUVU1TRUQgSzMxCisJCQkJNTYxMSBOQiBFSU5ESE9WRU4KKwkJCQlUSEUgTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC04MC1FQyAgIChoZXgpCQlTVVBFUkNPTVBVVElORyBTT0xVVElPTlMsIElOQy4KKzAwODBFQyAgICAgKGJhc2UgMTYpCQlTVVBFUkNPTVBVVElORyBTT0xVVElPTlMsIElOQy4KKwkJCQk2MTc1IE5BTkNZIFJJREdFIEJMVkQuCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1FRCAgIChoZXgpCQlJUSBURUNITk9MT0dJRVMsIElOQy4KKzAwODBFRCAgICAgKGJhc2UgMTYpCQlJUSBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkxMTgxMSBORSBGSVJTVCBTVFJFRVQKKwkJCQlTVUlURSAyMDEKKwkJCQlCRUxMRVZVRSBXQSA5ODAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRUUgICAoaGV4KQkJVEhPTVNPTiBDU0YKKzAwODBFRSAgICAgKGJhc2UgMTYpCQlUSE9NU09OIENTRgorCQkJCTUxIEVTUExBTkFERSBEVSBHRU5FUkFMCisJCQkJREUgR0FVTExFIDkyMDQ1IC0gUEFSSVMgTEEgIERFRkVOU0UgLSBDRQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC04MC1FRiAgIChoZXgpCQlSQVRJT05BTAorMDA4MEVGICAgICAoYmFzZSAxNikJCVJBVElPTkFMCisJCQkJMzMyMCBTQ09UVCBCT1VMRVZBUkQKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRjAgICAoaGV4KQkJUGFuYXNvbmljIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorMDA4MEYwICAgICAoYmFzZSAxNikJCVBhbmFzb25pYyBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQk0LTEtNjIgTWlub3NoaW1hIEhha2F0YSBGdWt1b2thCisJCQkJODEyLTg1MzEKKwkJCQlKQVBBTgorCiswMC04MC1GMSAgIChoZXgpCQlPUFVTIFNZU1RFTVMKKzAwODBGMSAgICAgKGJhc2UgMTYpCQlPUFVTIFNZU1RFTVMKKwkJCQkzMDAwIENPUk9OQURPIERSSVZFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUYyICAgKGhleCkJCVJBWUNPTSBTWVNURU1TIElOQworMDA4MEYyICAgICAoYmFzZSAxNikJCVJBWUNPTSBTWVNURU1TIElOQworCQkJCTE2NTI1IFNIRVJNQU4gV0FZICNDLTgKKwkJCQlWQU4gTlVZUyBDQSA5MTQwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRjMgICAoaGV4KQkJU1VOIEVMRUNUUk9OSUNTIENPUlAuCiswMDgwRjMgICAgIChiYXNlIDE2KQkJU1VOIEVMRUNUUk9OSUNTIENPUlAuCisJCQkJMjUwIEFTQUhJIEtPQ0hJTk8tQ0hPCisJCQkJS09OQU4tQ0lUWSBBSUNISQorCQkJCTQ4MyBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLUY0ICAgKGhleCkJCVRFTEVNRUNBTklRVUUgRUxFQ1RSSVFVRQorMDA4MEY0ICAgICAoYmFzZSAxNikJCVRFTEVNRUNBTklRVUUgRUxFQ1RSSVFVRQorCQkJCTMzIEJJUyBBVkVOVUUsCisJCQkJRFUgTUFSRUNIQUwgSk9GRlJFIDkyMDAyIE5BTlRFUlJFIENFREVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTgwLUY1ICAgKGhleCkJCVF1YW50ZWwgTHRkCiswMDgwRjUgICAgIChiYXNlIDE2KQkJUXVhbnRlbCBMdGQKKwkJCQlUdXJucGlrZSBSb2FkCisJCQkJTmV3YnVyeSBCZXJrc2hpcmUgUkcxNCAyTlgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC1GNiAgIChoZXgpCQlTWU5FUkdZIE1JQ1JPU1lTVEVNUworMDA4MEY2ICAgICAoYmFzZSAxNikJCVNZTkVSR1kgTUlDUk9TWVNURU1TCisJCQkJOTYwNSBTQ1JBTlRPTiBST0FELVNURSAjNzAwCisJCQkJU0FOIERJRUdPIENBIDkyMTIxLTE3NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUY3ICAgKGhleCkJCVpFTklUSCBFTEVDVFJPTklDUworMDA4MEY3ICAgICAoYmFzZSAxNikJCVpFTklUSCBFTEVDVFJPTklDUworCQkJCTEwMDAgTUlMV0FVS0VFIEFWRU5VRQorCQkJCUdMRU5WSUVXIElMIDYwMDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1GOCAgIChoZXgpCQlNSVpBUiwgSU5DLgorMDA4MEY4ICAgICAoYmFzZSAxNikJCU1JWkFSLCBJTkMuCisJCQkJMTQxOSBEVU5OIERSSVZFCisJCQkJQ0FSUk9MTFRPTiBUWCA3NTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRjkgICAoaGV4KQkJSEVVUklLT04gQ09SUE9SQVRJT04KKzAwODBGOSAgICAgKGJhc2UgMTYpCQlIRVVSSUtPTiBDT1JQT1JBVElPTgorCQkJCTgzMTAgRVhDRUxTSU9SIERSSVZFCisJCQkJTUFESVNPTiBXSSA1MzcxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRkEgICAoaGV4KQkJUldUIEdNQkgKKzAwODBGQSAgICAgKGJhc2UgMTYpCQlSV1QgR01CSAorCQkJCVRBTEFOR0VSU1RSLiA1LTcKKwkJCQlEIC0gODAzMyBLUkFJTExJTkcKKwkJCQlXRVNUIEdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTgwLUZCICAgKGhleCkJCUJWTSBMSU1JVEVECiswMDgwRkIgICAgIChiYXNlIDE2KQkJQlZNIExJTUlURUQKKwkJCQlIT0JCIExBTkUKKwkJCQlIRURHRSBFTkQgU09VVEhBTVBUT04KKwkJCQlFTkdMQU5EIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLUZDICAgKGhleCkJCUFWQVRBUiBDT1JQT1JBVElPTgorMDA4MEZDICAgICAoYmFzZSAxNikJCUFWQVRBUiBDT1JQT1JBVElPTgorCQkJCTY1IFNPVVRIIFNUUkVFVAorCQkJCUhPUEtJTlRPTiBNQSAwMTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRkQgICAoaGV4KQkJRVhTQ0VFRCBDT1JQUkFUSU9OCiswMDgwRkQgICAgIChiYXNlIDE2KQkJRVhTQ0VFRCBDT1JQUkFUSU9OCisJCQkJMS0xNS0xMiwgS0lUQUtBU0UsIFNBSVdBSS1LVQorCQkJCUtBV0FTQUtJLUNJVFksIDIxMSBLQU5BR0FXQQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtRkUgICAoaGV4KQkJQVpVUkUgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDgwRkUgICAgIChiYXNlIDE2KQkJQVpVUkUgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNjMgU09VVEggU1RSRUVUCisJCQkJSE9QS0lOVE9OIE1BIDAxNzQ4LTIyMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUZGICAgKGhleCkJCVNPQy4gREUgVEVMRUlORk9STUFUSVFVRSBSVEMKKzAwODBGRiAgICAgKGJhc2UgMTYpCQlTT0MuIERFIFRFTEVJTkZPUk1BVElRVUUgUlRDCisJCQkJUC5PLiBCT1ggOTU1IFBMQUNFIERVIFBBUkMKKwkJCQkzMDAgTEVPLVBBUklTVEFVICAgIFNVSVRFIDcyNSBNT05UUkVBTCAoCisJCQkJQ0FOQURBIEgyVyAyTjEKKwkJCQlDQU5BREEKKworMDAtOEMtMTAgICAoaGV4KQkJQmxhY2sgQm94IENvcnAuCiswMDhDMTAgICAgIChiYXNlIDE2KQkJQmxhY2sgQm94IENvcnAuCisJCQkJMTAwMCBQYXJrIERyaXZlCisJCQkJTGF3cmVuY2UgUEEgMTUwNTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLThDLUZBICAgKGhleCkJCUludmVudGVjIENvcnBvcmF0aW9uCiswMDhDRkEgICAgIChiYXNlIDE2KQkJSW52ZW50ZWMgQ29ycG9yYXRpb24KKwkJCQlOby4gMjU1LCBKZW4tSG8gUm9hZCBTZWMuIDIsIDMzNTQ3LAorCQkJCVRhY2hpIFRhb3l1YW4gMzM1NDcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLThELTRFICAgKGhleCkJCUNKU0MgTklJIFNUVAorMDA4RDRFICAgICAoYmFzZSAxNikJCUNKU0MgTklJIFNUVAorCQkJCU4uTGVuaW5ncmFkc2theWEgc3RyLCAxMAorCQkJCVNtb2xlbnNrICAyMTQwMTIKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtOTAtMDAgICAoaGV4KQkJRElBTU9ORCBNVUxUSU1FRElBCiswMDkwMDAgICAgIChiYXNlIDE2KQkJRElBTU9ORCBNVUxUSU1FRElBCisJCQkJMzEyIFNFIFNUT05FTUlMTCBEUklWRQorCQkJCVNVSVRFICMxNTAKKwkJCQlWQU5DT1VWRVIgV0EgOTg2ODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTAxICAgKGhleCkJCU5JU0hJTVUgRUxFQ1RST05JQ1MgSU5EVVNUUklFUyBDTy4sIExURC4KKzAwOTAwMSAgICAgKGJhc2UgMTYpCQlOSVNISU1VIEVMRUNUUk9OSUNTIElORFVTVFJJRVMgQ08uLCBMVEQuCisJCQkJNzAwIFRBVEVOTyBNSVRBR0FXQS1DSE8KKwkJCQlLQU5aQUtJLUdVTiBTQUdBIFBSRUYuICAKKwkJCQlKQVBBTgorCiswMC05MC0wMiAgIChoZXgpCQlBTExHT04gQUIKKzAwOTAwMiAgICAgKGJhc2UgMTYpCQlBTExHT04gQUIKKwkJCQlHQVJEQVRPUkdFVCAxCisJCQkJNDEyIDUwIEdPVEVCT1JHIAorCQkJCVNXRURFTgorCiswMC05MC0wMyAgIChoZXgpCQlBUExJTworMDA5MDAzICAgICAoYmFzZSAxNikJCUFQTElPCisJCQkJMTggQXZlbnVlIER1IDggTWFpIDE5NDUKKwkJCQk5NTIwMCBTQVJDRUxMRVMKKwkJCQlGUkFOQ0UKKworMDAtOTAtMDQgICAoaGV4KQkJM0NPTSBFVVJPUEUgTFRELgorMDA5MDA0ICAgICAoYmFzZSAxNikJCTNDT00gRVVST1BFIExURC4KKwkJCQkzQ09NIENFTlRSRSwgQk9VTkRBUlkgV0FZCisJCQkJSEVNRUwgSEVNUFNURUFECisJCQkJSEVSVFMuICBIUDIgN1lVICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC05MC0wNSAgIChoZXgpCQlQUk9URUNIIFNZU1RFTVMgQ08uLCBMVEQuCiswMDkwMDUgICAgIChiYXNlIDE2KQkJUFJPVEVDSCBTWVNURU1TIENPLiwgTFRELgorCQkJCTVGLCBOTy4gMzQsIExBTkUgODAsIFNFQy4gMworCQkJCU5BTktBTkcgUk9BRAorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC0wNiAgIChoZXgpCQlIQU1BTUFUU1UgUEhPVE9OSUNTIEsuSy4KKzAwOTAwNiAgICAgKGJhc2UgMTYpCQlIQU1BTUFUU1UgUEhPVE9OSUNTIEsuSy4KKwkJCQk4MTIgSk9LTy1DSE8KKwkJCQlIQU1BTUFUU1UgIDQzMS0zMTk2CisJCQkJSkFQQU4KKworMDAtOTAtMDcgICAoaGV4KQkJRE9NRVggVEVDSE5PTE9HWSBDT1JQLgorMDA5MDA3ICAgICAoYmFzZSAxNikJCURPTUVYIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQlOTy4gMiwgVEVDSE5PTE9HWSBSRC4gMQorCQkJCVNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLCisJCQkJIEhTSU5DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtMDggICAoaGV4KQkJSGFuQSBTeXN0ZW1zIEluYy4KKzAwOTAwOCAgICAgKGJhc2UgMTYpCQlIYW5BIFN5c3RlbXMgSW5jLgorCQkJCUVBSE8gQi9EIDc0MC0xCisJCQkJWUVPSyBTQU0tRE9ORywgS0FOR05BTS1LVQorCQkJCVNFT1VMICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtOTAtMDkgICAoaGV4KQkJaSBDb250cm9scywgSW5jLgorMDA5MDA5ICAgICAoYmFzZSAxNikJCWkgQ29udHJvbHMsIEluYy4KKwkJCQkybmQgRmwsIEknUGFyayAzMDIsIDExIEplb25namEtRG9uZywKKwkJCQlCdW5kYW5nLUdVLCBTZW9uZ25hbSwKKwkJCQlHeWVvbmdnaS1EbyA0NjMtODU5IAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC05MC0wQSAgIChoZXgpCQlQUk9UT04gRUxFQ1RST05JQyBJTkRVU1RSSUFMIENPLiwgTFRELgorMDA5MDBBICAgICAoYmFzZSAxNikJCVBST1RPTiBFTEVDVFJPTklDIElORFVTVFJJQUwgQ08uLCBMVEQuCisJCQkJCisJCQkJNEYsIDQ1LCBTRUNUSU9OIDEsIFNBTi1NSU4gUkQKKwkJCQlQYW5jaGlhbywgVGFpcGVpIENvdW50eSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC0wQiAgIChoZXgpCQlMQU5ORVIgRUxFQ1RST05JQ1MsIElOQy4KKzAwOTAwQiAgICAgKGJhc2UgMTYpCQlMQU5ORVIgRUxFQ1RST05JQ1MsIElOQy4KKwkJCQk4Ri00LCBOTy4gNzcsIFNFQy4gMQorCQkJCUhTSU4gVEFJIFdVIFJELiwgSFNJQ0hJSAorCQkJCVRBSVBFSSBIU0lFTiAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLTBDICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwOTAwQyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRSAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMEQgICAoaGV4KQkJT3ZlcmxhbmQgU3RvcmFnZSBJbmMuCiswMDkwMEQgICAgIChiYXNlIDE2KQkJT3ZlcmxhbmQgU3RvcmFnZSBJbmMuCisJCQkJNDgyMCBPdmVybGFuZCBBdmVudWUKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTBFICAgKGhleCkJCUhBTkRMSU5LIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA5MDBFICAgICAoYmFzZSAxNikJCUhBTkRMSU5LIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTVGLCAyNC0yLCBJbmR1c3RyeSBFLiBSb2FkIElWLAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgMzAwNzcgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtMEYgICAoaGV4KQkJS0FXQVNBS0kgSEVBVlkgSU5EVVNUUklFUywgTFRECiswMDkwMEYgICAgIChiYXNlIDE2KQkJS0FXQVNBS0kgSEVBVlkgSU5EVVNUUklFUywgTFRECisJCQkJRUxFQy4gJiBDT05UUk9MIFRFQ0ggQ0VOVEVSCisJCQkJMS0xIEtBV0FTQUtJLUNITyBBS0FTSEkgNjczLTg2NjYKKwkJCQlKQVBBTgorCiswMC05MC0xMCAgIChoZXgpCQlTSU1VTEFUSU9OIExBQk9SQVRPUklFUywgSU5DLgorMDA5MDEwICAgICAoYmFzZSAxNikJCVNJTVVMQVRJT04gTEFCT1JBVE9SSUVTLCBJTkMuCisJCQkJMTAwNzggVFlMRVIgUExBQ0UgI0EKKwkJCQlJSkFNU1ZJTExFIE1EIDIxNzU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0xMSAgIChoZXgpCQlXQVZUcmFjZSwgSW5jLgorMDA5MDExICAgICAoYmFzZSAxNikJCVdBVlRyYWNlLCBJbmMuCisJCQkJMTU1NSAxMzJORCBBVkUuIE5FCisJCQkJQkVMTEVWVUUgV0EgOTgwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTEyICAgKGhleCkJCUdMT0JFU1BBTiBTRU1JQ09ORFVDVE9SLCBJTkMuCiswMDkwMTIgICAgIChiYXNlIDE2KQkJR0xPQkVTUEFOIFNFTUlDT05EVUNUT1IsIElOQy4KKwkJCQkxMDAgU0NIVUxaIERSSVZFCisJCQkJUkVEIEJBTksgTkogMDc3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTEzICAgKGhleCkJCVNBTVNBTiBDT1JQLgorMDA5MDEzICAgICAoYmFzZSAxNikJCVNBTVNBTiBDT1JQLgorCQkJCUVMRUNUUk9OSUNTICYgQ09NTSBESVZJU0lPTgorCQkJCVNBTVNBTiBCTERHLiwgNTA2LTcsIEFNU0EtRE9ORworCQkJCUthbmdkb25nLUd1IFNlb3VsIDEzNC0wNTAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTkwLTE0ICAgKGhleCkJCVJPVE9SSyBJTlNUUlVNRU5UUywgTFRELgorMDA5MDE0ICAgICAoYmFzZSAxNikJCVJPVE9SSyBJTlNUUlVNRU5UUywgTFRELgorCQkJCUNIQVVMIEVORCBMQU5FCisJCQkJTFVUT04gQkVERk9SRFNISVJFCisJCQkJTFU0IDhFWiBFbmdsYW5kIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTkwLTE1ICAgKGhleCkJCUNFTlRJR1JBTSBDT01NVU5JQ0FUSU9OUyBDT1JQLgorMDA5MDE1ICAgICAoYmFzZSAxNikJCUNFTlRJR1JBTSBDT01NVU5JQ0FUSU9OUyBDT1JQLgorCQkJCTkxIEVBU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTE2ICAgKGhleCkJCVpBQworMDA5MDE2ICAgICAoYmFzZSAxNikJCVpBQworCQkJCVN077+9dmVzdHIuIDkKKwkJCQlELTMxMTQxIEhpbGRlc2hlaW0gIAorCQkJCUdFUk1BTlkKKworMDAtOTAtMTcgICAoaGV4KQkJWnlwY29tLCBJbmMKKzAwOTAxNyAgICAgKGJhc2UgMTYpCQlaeXBjb20sIEluYworCQkJCTI4NDAwIEtvaG91dGVrIFdheQorCQkJCVN1aXRlIDE3MAorCQkJCVVuaW9uIENpdHkgQ0EgOTQ1ODctMTIxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMTggICAoaGV4KQkJSVRPIEVMRUNUUklDIElORFVTVFJZIENPLCBMVEQuCiswMDkwMTggICAgIChiYXNlIDE2KQkJSVRPIEVMRUNUUklDIElORFVTVFJZIENPLCBMVEQuCisJCQkJNC0yNi0xMiBNRUlFS0kgTkFLQU1VUkEtS1UKKwkJCQlOQUdPWUEtQ0lUWSBBSUNISSA0NTAtMDAwMiAgCisJCQkJSkFQQU4KKworMDAtOTAtMTkgICAoaGV4KQkJSEVSTUVTIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDA5MDE5ICAgICAoYmFzZSAxNikJCUhFUk1FUyBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQkzLTItMTIgWVVTSElNQSwgQlVOS1lPLUtVCisJCQkJVE9LWU8sIDExMy0wMDM0ICAKKwkJCQlKQVBBTgorCiswMC05MC0xQSAgIChoZXgpCQlVTklTUEhFUkUgU09MVVRJT05TCiswMDkwMUEgICAgIChiYXNlIDE2KQkJVU5JU1BIRVJFIFNPTFVUSU9OUworCQkJCTUgQ0FSTElTTEUgUk9BRAorCQkJCVdFU1RGT1JEIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0xQiAgIChoZXgpCQlESUdJVEFMIENPTlRST0xTCiswMDkwMUIgICAgIChiYXNlIDE2KQkJRElHSVRBTCBDT05UUk9MUworCQkJCTMwNSBQSU9ORUVSIEJMVkQuCisJCQkJU1BSSU5HQk9STyBPSCA0NTA2Ni0xMTAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0xQyAgIChoZXgpCQltcHMgU29mdHdhcmUgR21iaAorMDA5MDFDICAgICAoYmFzZSAxNikJCW1wcyBTb2Z0d2FyZSBHbWJoCisJCQkJTFVEV0lHU1RSIDM2CisJCQkJODU1NTEgS0lSQ0hIRUlNICAKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLTFEICAgKGhleCkJCVBFQyAoTlopIExURC4KKzAwOTAxRCAgICAgKGJhc2UgMTYpCQlQRUMgKE5aKSBMVEQuCisJCQkJMiBTVEFUSU9OIFJPQUQKKwkJCQlQLk8uIEJPWCAzMDgKKwkJCQlNQVJUT04gIAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTkwLTFFICAgKGhleCkJCVNlbGVzdGEgSW5nZWduZXJpYSBTLnAuQS4KKzAwOTAxRSAgICAgKGJhc2UgMTYpCQlTZWxlc3RhIEluZ2VnbmVyaWEgUy5wLkEuCisJCQkJdmlhIGRpIEZyYW5jaWEsIDI4CisJCQkJR2Vub3ZhICAxNjE0OQorCQkJCUlUQUxZCisKKzAwLTkwLTFGICAgKGhleCkJCUFEVEVDIFBST0RVQ1RJT05TLCBJTkMuCiswMDkwMUYgICAgIChiYXNlIDE2KQkJQURURUMgUFJPRFVDVElPTlMsIElOQy4KKwkJCQk0MDggUlVTU0VMTCBTVFJFRVQKKwkJCQlOQVNIVklMTEUgVE4gMzcyMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTIwICAgKGhleCkJCVBISUxJUFMgQU5BTFlUSUNBTCBYLVJBWSBCLlYuCiswMDkwMjAgICAgIChiYXNlIDE2KQkJUEhJTElQUyBBTkFMWVRJQ0FMIFgtUkFZIEIuVi4KKwkJCQlMRUxZV0VHIDEKKwkJCQk3NjAyIEVBIEFMTUVMTyAgCisJCQkJTkVUSEVSTEFORFMKKworMDAtOTAtMjEgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MDIxICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSLiAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMjIgICAoaGV4KQkJSVZFWAorMDA5MDIyICAgICAoYmFzZSAxNikJCUlWRVgKKwkJCQk0Mjk1IElOVEVSTkFUSU9OQUwgQkxWRC4KKwkJCQlTVUlURQorCQkJCU5PUkNST1NTIEdBIDMwMDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0yMyAgIChoZXgpCQlaSUxPRyBJTkMuCiswMDkwMjMgICAgIChiYXNlIDE2KQkJWklMT0cgSU5DLgorCQkJCTkxMCBFYXN0IEhhbWlsdG9uIEF2ZS4KKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMjQgICAoaGV4KQkJUElQRUxJTktTLCBJTkMuCiswMDkwMjQgICAgIChiYXNlIDE2KQkJUElQRUxJTktTLCBJTkMuCisJCQkJMjcxMCBXQUxTSCBBVkUuLCBTVEUgIzMwMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0yNSAgIChoZXgpCQlCQUUgU3lzdGVtcyBBdXN0cmFsaWEgKEVsZWN0cm9uaWMgU3lzdGVtcykgUHR5IEx0ZAorMDA5MDI1ICAgICAoYmFzZSAxNikJCUJBRSBTeXN0ZW1zIEF1c3RyYWxpYSAoRWxlY3Ryb25pYyBTeXN0ZW1zKSBQdHkgTHRkCisJCQkJMyBTZWNvbmQgQXZlCisJCQkJTWF3c29uIExha2VzIFNvdXRoIEF1c3RyYWxpYSA1MDk1CisJCQkJQVVTVFJBTElBCisKKzAwLTkwLTI2ICAgKGhleCkJCUFEVkFOQ0VEIFNXSVRDSElORyBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDA5MDI2ICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIFNXSVRDSElORyBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTgzMzAgQk9PTkUgQk9VTEVWQVJELS01VEggRkwuCisJCQkJVklFTk5BIFZBIDIyMTgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0yNyAgIChoZXgpCQlJTlRFTCBDT1JQT1JBVElPTgorMDA5MDI3ICAgICAoYmFzZSAxNikJCUlOVEVMIENPUlBPUkFUSU9OCisJCQkJSEYxLTA2CisJCQkJNTIwMCBOLkUuIEVMQU0gWU9VTkcgUEFSS1dBWQorCQkJCUhJTExTQk9STyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMjggICAoaGV4KQkJTklQUE9OIFNJR05BTCBDTy4sIExURC4KKzAwOTAyOCAgICAgKGJhc2UgMTYpCQlOSVBQT04gU0lHTkFMIENPLiwgTFRELgorCQkJCTExIEhJUkFJREUtS09HSU8tREFOQ0hJCisJCQkJVUlTVU5PTUlZQSBUT0NISUdJIDMyMS04NjUxICAKKwkJCQlKQVBBTgorCiswMC05MC0yOSAgIChoZXgpCQlDUllQVE8gQUcKKzAwOTAyOSAgICAgKGJhc2UgMTYpCQlDUllQVE8gQUcKKwkJCQlQLk8uIEJPWAorCQkJCUNILTYzMDEgWnVnICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC05MC0yQSAgIChoZXgpCQlDT01NVU5JQ0FUSU9OIERFVklDRVMsIElOQy4KKzAwOTAyQSAgICAgKGJhc2UgMTYpCQlDT01NVU5JQ0FUSU9OIERFVklDRVMsIElOQy4KKwkJCQk4NSBGdWx0b24gU3RyZWV0CisJCQkJQm9vbnRvbiBOSiAwNzAwNS0xOTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0yQiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDkwMkIgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCVNKQS0yCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTJDICAgKGhleCkJCURBVEEgJiBDT05UUk9MIEVRVUlQTUVOVCBMVEQuCiswMDkwMkMgICAgIChiYXNlIDE2KQkJREFUQSAmIENPTlRST0wgRVFVSVBNRU5UIExURC4KKwkJCQlDT1VOVFkgRkFSTSwgV0VORE9WRVIgUkQuCisJCQkJU1RPS0UgTUFOREVWSUxMRQorCQkJCUJVQ0tTLiBIUDIyIFNUQSAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtOTAtMkQgICAoaGV4KQkJREFUQSBFTEVDVFJPTklDUyAoQVVTVC4pIFBUWSwgTFRELgorMDA5MDJEICAgICAoYmFzZSAxNikJCURBVEEgRUxFQ1RST05JQ1MgKEFVU1QuKSBQVFksIExURC4KKwkJCQk3IFNFSVNNSUMgQ09VUlQKKwkJCQlST1dWSUxMRQorCQkJCVZJQ1RPUklBIDMxNzggIAorCQkJCUFVU1RSQUxJQQorCiswMC05MC0yRSAgIChoZXgpCQlOQU1DTyBMSU1JVEVECiswMDkwMkUgICAgIChiYXNlIDE2KQkJTkFNQ08gTElNSVRFRAorCQkJCTEtMS0zMiBTSElOLVVSQVNISU1BLUNITworCQkJCUtBTkFHQVdBLUtVLCBZT0tPSEFNQQorCQkJCUtBTkFHQVdBIDIyMS0wMDMxICAKKwkJCQlKQVBBTgorCiswMC05MC0yRiAgIChoZXgpCQlORVRDT1JFIFNZU1RFTVMsIElOQy4KKzAwOTAyRiAgICAgKGJhc2UgMTYpCQlORVRDT1JFIFNZU1RFTVMsIElOQy4KKwkJCQkxODcgQkFMTEFSRFZBTEUgU1RSRUVUCisJCQkJV0lMTUlOR1RPTiBNQSAwMTg4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMzAgICAoaGV4KQkJSE9ORVlXRUxMLURBVElORworMDA5MDMwICAgICAoYmFzZSAxNikJCUhPTkVZV0VMTC1EQVRJTkcKKwkJCQlWSUEgVElOVE9SRVRUTywgMTUKKwkJCQkyMTAxMiBDQVNTQU5PIE1BR05BR08gKFZBKSAgCisJCQkJSVRBTFkKKworMDAtOTAtMzEgICAoaGV4KQkJTVlTVElDT00sIExURC4KKzAwOTAzMSAgICAgKGJhc2UgMTYpCQlNWVNUSUNPTSwgTFRELgorCQkJCVAuTy4gODM2NAorCQkJCU5BVEFOSUEgNDI1MDQgIAorCQkJCUlTUkFFTAorCiswMC05MC0zMiAgIChoZXgpCQlQRUxDT01CRSBHUk9VUCBMVEQuCiswMDkwMzIgICAgIChiYXNlIDE2KQkJUEVMQ09NQkUgR1JPVVAgTFRELgorCQkJCU1BSU4gUk9BRAorCQkJCURPVkVSQ09VUlQsIEhBUldJQ0gKKwkJCQlFU1NFWCBDMDEyIDRMUCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC05MC0zMyAgIChoZXgpCQlJTk5PVkFQSE9ORSBBRworMDA5MDMzICAgICAoYmFzZSAxNikJCUlOTk9WQVBIT05FIEFHCisJCQkJQm9lYmxpbmdlciBTdHIuIDc2CisJCQkJU0lOREVMRklOR0VOICBENzEwNjUKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLTM0ICAgKGhleCkJCUlNQUdJQywgSU5DLgorMDA5MDM0ICAgICAoYmFzZSAxNikJCUlNQUdJQywgSU5DLgorCQkJCTIzNSBXZXN0IFJvYWQgIzcKKwkJCQlQb3J0c21vdXRoIE5IIDAzODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0zNSAgIChoZXgpCQlBTFBIQSBURUxFQ09NLCBJTkMuCiswMDkwMzUgICAgIChiYXNlIDE2KQkJQUxQSEEgVEVMRUNPTSwgSU5DLgorCQkJCTJGLCBOTy4yLCBMSSBIU0lOIFJPQUQKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU4tQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLTM2ICAgKGhleCkJCWVucywgaW5jLgorMDA5MDM2ICAgICAoYmFzZSAxNikJCWVucywgaW5jLgorCQkJCVAuTy4gQk9YIDE5MjA3CisJCQkJUkFMRUlHSCBOQyAyNzYxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMzcgICAoaGV4KQkJQUNVQ09NTSwgSU5DLgorMDA5MDM3ICAgICAoYmFzZSAxNikJCUFDVUNPTU0sIElOQy4KKwkJCQk0NjMzIE9MRCBJUk9OU0lERVMgLSBTVEUgIzMxMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0zOCAgIChoZXgpCQlGT1VOVEFJTiBURUNITk9MT0dJRVMsIElOQy4KKzAwOTAzOCAgICAgKGJhc2UgMTYpCQlGT1VOVEFJTiBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk1MCBSQU5ET0xQSCBST0FECisJCQkJU09NRVJTRVQgTkogMDg4NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTM5ICAgKGhleCkJCVNIQVNUQSBORVRXT1JLUworMDA5MDM5ICAgICAoYmFzZSAxNikJCVNIQVNUQSBORVRXT1JLUworCQkJCTI0OSBIVU1CT0xEVCBDT1VSVAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OS0xMzAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0zQSAgIChoZXgpCQlOSUhPTiBNRURJQSBUT09MIElOQy4KKzAwOTAzQSAgICAgKGJhc2UgMTYpCQlOSUhPTiBNRURJQSBUT09MIElOQy4KKwkJCQkxODc1IE9ZQU1BLUNITworCQkJCVlPS0tBSUNISS1DSVRZCisJCQkJTUlFIDUxMi0xMTAyICAKKwkJCQlKQVBBTgorCiswMC05MC0zQiAgIChoZXgpCQlUcmlFTVMgUmVzZWFyY2ggTGFiLCBJbmMuCiswMDkwM0IgICAgIChiYXNlIDE2KQkJVHJpRU1TIFJlc2VhcmNoIExhYiwgSW5jLgorCQkJCTEyNzUgTi4gVFVTVElOIEFWRU5VRQorCQkJCUFOQUhFSU0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTNDICAgKGhleCkJCUFUTEFOVElDIE5FVFdPUksgU1lTVEVNUworMDA5MDNDICAgICAoYmFzZSAxNikJCUFUTEFOVElDIE5FVFdPUksgU1lTVEVNUworCQkJCUlNTUVVQkxFICJLZW5uZWR5IgorCQkJCVpJVEVSIEFWRU5VRSBKRiBLRU5ORURZCisJCQkJMzM3MDAgTUVSSUdOQUMgCisJCQkJRlJBTkNFCisKKzAwLTkwLTNEICAgKGhleCkJCUJJT1BBQyBTWVNURU1TLCBJTkMuCiswMDkwM0QgICAgIChiYXNlIDE2KQkJQklPUEFDIFNZU1RFTVMsIElOQy4KKwkJCQk0MiBBRVJPIENBTUlOTworCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTNFICAgKGhleCkJCU4uVi4gUEhJTElQUyBJTkRVU1RSSUFMIEFDVElWSVRJRVMKKzAwOTAzRSAgICAgKGJhc2UgMTYpCQlOLlYuIFBISUxJUFMgSU5EVVNUUklBTCBBQ1RJVklUSUVTCisJCQkJCisJCQkJSU5URVJMRVVWRU5MQUFOIDc0LTc2CisJCQkJQi0zMDAxIExFVVZFTiAgCisJCQkJQkVMR0lVTQorCiswMC05MC0zRiAgIChoZXgpCQlBWlRFQyBSQURJT01FRElBCiswMDkwM0YgICAgIChiYXNlIDE2KQkJQVpURUMgUkFESU9NRURJQQorCQkJCTMxLCBSVUUgRFUgQ0hFTUlOREVGRVIKKwkJCQk2NzIwMCBTVFJBU0JPVVJHICAKKwkJCQlGUkFOQ0UKKworMDAtOTAtNDAgICAoaGV4KQkJU2llbWVucyBOZXR3b3JrIENvbnZlcmdlbmNlIExMQworMDA5MDQwICAgICAoYmFzZSAxNikJCVNpZW1lbnMgTmV0d29yayBDb252ZXJnZW5jZSBMTEMKKwkJCQlUZW4gVGVjaG5vbG9neSBQYXJrIERyaXZlCisJCQkJV2VzdGZvcmQgTUEgMDE4ODYtMzE0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNDEgICAoaGV4KQkJQVBQTElFRCBESUdJVEFMIEFDQ0VTUworMDA5MDQxICAgICAoYmFzZSAxNikJCUFQUExJRUQgRElHSVRBTCBBQ0NFU1MKKwkJCQk5ODU1IFNDUkFOVE9OIFJPQUQKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTQyICAgKGhleCkJCUVDQ1MsIEluYy4KKzAwOTA0MiAgICAgKGJhc2UgMTYpCQlFQ0NTLCBJbmMuCisJCQkJT05FIFNIRUlMQSBEUklWRQorCQkJCVRJTlRPTiBGQUxMUyBOSiAwNzcyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNDMgICAoaGV4KQkJTklDSElCRUkgREVOU0hJIENPLiwgTFRELgorMDA5MDQzICAgICAoYmFzZSAxNikJCU5JQ0hJQkVJIERFTlNISSBDTy4sIExURC4KKwkJCQkxLTEzLTEwIFNISVJPR0FORSAgQ0hVTy1LVQorCQkJCUZVS1VPS0EtQ0lUWSAgCisJCQkJSkFQQU4KKworMDAtOTAtNDQgICAoaGV4KQkJQVNTVVJFRCBESUdJVEFMLCBJTkMuCiswMDkwNDQgICAgIChiYXNlIDE2KQkJQVNTVVJFRCBESUdJVEFMLCBJTkMuCisJCQkJOS0xMSBHT0xEU01JVEggU1QuCisJCQkJTElUVExFVE9OIE1BIDAxNDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC00NSAgIChoZXgpCQlNYXJjb25pIENvbW11bmljYXRpb25zCiswMDkwNDUgICAgIChiYXNlIDE2KQkJTWFyY29uaSBDb21tdW5pY2F0aW9ucworCQkJCTEwMDAgRm9yZSBEcml2ZQorCQkJCVdhcnJlbmRhbGUgUEEgMTUwODYtNzUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNDYgICAoaGV4KQkJREVYRFlORSwgTFRELgorMDA5MDQ2ICAgICAoYmFzZSAxNikJCURFWERZTkUsIExURC4KKwkJCQkxNSBNQVJLRVQgUEwuCisJCQkJQ0lSRU5DRVNURVIKKwkJCQlHTE9DRVNURVJTSElSRSBHTDcgMlBCICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC05MC00NyAgIChoZXgpCQlHSUdBIEZBU1QgRS4gTFRELgorMDA5MDQ3ICAgICAoYmFzZSAxNikJCUdJR0EgRkFTVCBFLiBMVEQuCisJCQkJMTRGLCBOTy4xMTIsIFNFQy4gMQorCQkJCUhTSU4tVEFJIFdVIFJELgorCQkJCUhzaS1DaGloIFRhaXBlaSBIc2llbiAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLTQ4ICAgKGhleCkJCVpFQUwgQ09SUE9SQVRJT04KKzAwOTA0OCAgICAgKGJhc2UgMTYpCQlaRUFMIENPUlBPUkFUSU9OCisJCQkJMzAxLCBISVJBSUtFCisJCQkJTkFHQUtVVEUtQ0hPLCBBSUNISS1QUkVGLiA0ODAtMTE1NSAgCisJCQkJSkFQQU4KKworMDAtOTAtNDkgICAoaGV4KQkJRU5UUklESUEgQ09SUE9SQVRJT04KKzAwOTA0OSAgICAgKGJhc2UgMTYpCQlFTlRSSURJQSBDT1JQT1JBVElPTgorCQkJCTEwMSBQQVJLIENFTlRFUiBQTEFaQQorCQkJCVNVSVRFICM1MDAKKwkJCQlTQU4gSk9TRSBDQSA5NTExMy0yMjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC00QSAgIChoZXgpCQlDT05DVVIgU1lTVEVNIFRFQ0hOT0xPR0lFUworMDA5MDRBICAgICAoYmFzZSAxNikJCUNPTkNVUiBTWVNURU0gVEVDSE5PTE9HSUVTCisJCQkJMjUyNSBXQUxMSU5HV09PRCBEUi4tU1RFLiAjODA0CisJCQkJQVVTVElOIFRYIDc4NzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC00QiAgIChoZXgpCQlHZW1UZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwOTA0QiAgICAgKGJhc2UgMTYpCQlHZW1UZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gMSBKZW4gQWkgUm9hZCwKKwkJCQlIc2luY2h1IEluZHVzdHJpYWwgUGFyaywKKwkJCQlIdWtvdSwgSHNpbmNodSwgVGFpd2FuIDMwMzUyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC00QyAgIChoZXgpCQlFUElHUkFNLCBJTkMuCiswMDkwNEMgICAgIChiYXNlIDE2KQkJRVBJR1JBTSwgSU5DLgorCQkJCTg3MCBXRVNUIE1BVURFIEFWRS4KKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTREICAgKGhleCkJCVNQRUMgUy5BLgorMDA5MDREICAgICAoYmFzZSAxNikJCVNQRUMgUy5BLgorCQkJCUNBU1AgMTcyIDMtQgorCQkJCTA4MDEzIEJBUkNFTE9OQSAgCisJCQkJU1BBSU4KKworMDAtOTAtNEUgICAoaGV4KQkJREVMRU0gQlYKKzAwOTA0RSAgICAgKGJhc2UgMTYpCQlERUxFTSBCVgorCQkJCUxVQ0hUSEFWRU4gV0VHIDQyCisJCQkJNTY1NyBFQiBFSU5ESE9WRU4gIAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTkwLTRGICAgKGhleCkJCUFCQiBQT1dFUiBUJkQgQ09NUEFOWSwgSU5DLgorMDA5MDRGICAgICAoYmFzZSAxNikJCUFCQiBQT1dFUiBUJkQgQ09NUEFOWSwgSU5DLgorCQkJCTcwMzYgU05PV0RSSUZUIFJPQUQKKwkJCQlBTExFTlRPV04gUEEgMTgxMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTUwICAgKGhleCkJCVRFTEVTVEUgT1kKKzAwOTA1MCAgICAgKGJhc2UgMTYpCQlURUxFU1RFIE9ZCisJCQkJU0VQT05LQVRVIDEKKwkJCQlMSVRUT0lORU4gIEZJTi0yMDY2MAorCQkJCUZJTkxBTkQKKworMDAtOTAtNTEgICAoaGV4KQkJVUxUSU1BVEUgVEVDSE5PTE9HWSBDT1JQLgorMDA5MDUxICAgICAoYmFzZSAxNikJCVVMVElNQVRFIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkxMDAgUkFXU09OIFJPQUQKKwkJCQlWSUNUT1IgTlkgMTQ1NjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTUyICAgKGhleCkJCVNFTENPTSBFTEVUVFJPTklDQSBTLlIuTC4KKzAwOTA1MiAgICAgKGJhc2UgMTYpCQlTRUxDT00gRUxFVFRST05JQ0EgUy5SLkwuCisJCQkJVklBIEdSQU5ESSwgNQorCQkJCTQwMDEzIENBU1RFTE1BR0dJT1JFIEJPICAKKwkJCQlJVEFMWQorCiswMC05MC01MyAgIChoZXgpCQlEQUVXT08gRUxFQ1RST05JQ1MgQ08uLCBMVEQuCiswMDkwNTMgICAgIChiYXNlIDE2KQkJREFFV09PIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCURJVCBSRVNFQVJDSCBDRU5URVIKKwkJCQlEQUVXT08gQ0VOVEVSIDU0MSBOQU1EQUVNVU5OTyA1LUdBCisJCQkJQ0hVTkctR1UgU0VPVUwgMTAwLTcxNCAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtOTAtNTQgICAoaGV4KQkJSU5OT1ZBVElWRSBTRU1JQ09ORFVDVE9SUywgSU5DCiswMDkwNTQgICAgIChiYXNlIDE2KQkJSU5OT1ZBVElWRSBTRU1JQ09ORFVDVE9SUywgSU5DCisJCQkJMjU3MCBXLiBFTCBDQU1JTk8gUkVBTAorCQkJCVNVSVRFICMyMDUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC01NSAgIChoZXgpCQlQQVJLRVIgSEFOTklGSU4gQ09SUE9SQVRJT04gQ09NUFVNT1RPUiBESVZJU0lPTgorMDA5MDU1ICAgICAoYmFzZSAxNikJCVBBUktFUiBIQU5OSUZJTiBDT1JQT1JBVElPTiBDT01QVU1PVE9SIERJVklTSU9OCisJCQkJNTUwMCBCVVNJTkVTUyBQQVJLIERSSVZFCisJCQkJUk9ITkVSVCBQQVJLIENBIDk0OTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC01NiAgIChoZXgpCQlURUxFU1RSRUFNLCBJTkMuCiswMDkwNTYgICAgIChiYXNlIDE2KQkJVEVMRVNUUkVBTSwgSU5DLgorCQkJCTg0OCBHT0xEIEZMQVQgUkQuLCBTVUlURSAxCisJCQkJTkVWQURBIENJVFkgQ0EgOTU5NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTU3ICAgKGhleCkJCUFBTmV0Y29tLCBJbmMuCiswMDkwNTcgICAgIChiYXNlIDE2KQkJQUFOZXRjb20sIEluYy4KKwkJCQk0OTQ5IExJQkVSVFkgTEFORSAtIFNURS4gIzIwMAorCQkJCUFMTEVOVE9XTiBQQSAxODEwNi05MDE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC01OCAgIChoZXgpCQlVbHRyYSBFbGVjdHJvbmljcyBMdGQuLCBDb21tYW5kIGFuZCBDb250cm9sIFN5c3RlbXMKKzAwOTA1OCAgICAgKGJhc2UgMTYpCQlVbHRyYSBFbGVjdHJvbmljcyBMdGQuLCBDb21tYW5kIGFuZCBDb250cm9sIFN5c3RlbXMKKwkJCQlLTkFWRVMgQkVFQ0ggQlVTSU5FU1MgQ0VOVFJFCisJCQkJTE9VRFdBVEVSLCBISUdIIFdZQ09NQkUKKwkJCQlCVUNLSU5HSEFNU0hJUkUgSFAxMCA5VVQgRW5nbGFuZCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC05MC01OSAgIChoZXgpCQlURUxFQ09NIERFVklDRSBLLksuCiswMDkwNTkgICAgIChiYXNlIDE2KQkJVEVMRUNPTSBERVZJQ0UgSy5LLgorCQkJCVNBTk1JWUFOQUdBIEJMREcuIDNGLCAxLTUtMTIKKwkJCQlNT1RPQUtBU0FLQSwgTUlOQVRPLUtVCisJCQkJVE9LWU8gMTA3IAorCQkJCUpBUEFOCisKKzAwLTkwLTVBICAgKGhleCkJCURFQVJCT1JOIEdST1VQLCBJTkMuCiswMDkwNUEgICAgIChiYXNlIDE2KQkJREVBUkJPUk4gR1JPVVAsIElOQy4KKwkJCQkyNzAwNyBISUxMUyBURUNIIENULgorCQkJCUZBUk1JTkdUT04gSElMTFMgTUkgNDgzMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTVCICAgKGhleCkJCVJBWU1PTkQgQU5EIExBRSBFTkdJTkVFUklORworMDA5MDVCICAgICAoYmFzZSAxNikJCVJBWU1PTkQgQU5EIExBRSBFTkdJTkVFUklORworCQkJCTIwOCBDT01NRVJDRSBEUi4sICBVTklUICMzQworCQkJCUZPUlQgQ09MTElOUyBDTyA4MDUyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNUMgICAoaGV4KQkJRURNSQorMDA5MDVDICAgICAoYmFzZSAxNikJCUVETUkKKwkJCQk2MjYgT0xEIEdZTVBJRSBST0FECisJCQkJTkFSQU5HQkEgUUxEIDQ1MDQgCisJCQkJQVVTVFJBTElBCisKKzAwLTkwLTVEICAgKGhleCkJCU5FVENPTSBTSUNIRVJIRUlUU1RFQ0hOSUsgR21iSAorMDA5MDVEICAgICAoYmFzZSAxNikJCU5FVENPTSBTSUNIRVJIRUlUU1RFQ0hOSUsgR21iSAorCQkJCUJPUFBTVFJBU1NFIDM4CisJCQkJNTUxMTggTUFJTloKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLTVFICAgKGhleCkJCVJBVUxBTkQtQk9SRyBDT1JQT1JBVElPTgorMDA5MDVFICAgICAoYmFzZSAxNikJCVJBVUxBTkQtQk9SRyBDT1JQT1JBVElPTgorCQkJCTM0NTAgVy4gT0FLVE9OIFNULgorCQkJCVNLT0tJRSBJTCA2MDA3NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNUYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MDVGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQlTSkEtMgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02MCAgIChoZXgpCQlTWVNURU0gQ1JFQVRFIENPUlAuCiswMDkwNjAgICAgIChiYXNlIDE2KQkJU1lTVEVNIENSRUFURSBDT1JQLgorCQkJCTMtMTMtNiBZT1NISUtBV0EgQkxELgorCQkJCUtJbXNoaSBTVU1JREEtS1UKKwkJCQlUT0tZTyAgCisJCQkJSkFQQU4KKworMDAtOTAtNjEgICAoaGV4KQkJUEFDSUZJQyBSRVNFQVJDSCAmIEVOR0lORUVSSU5HIENPUlBPUkFUSU9OCiswMDkwNjEgICAgIChiYXNlIDE2KQkJUEFDSUZJQyBSRVNFQVJDSCAmIEVOR0lORUVSSU5HIENPUlBPUkFUSU9OCisJCQkJMjA3MCBMQVMgUEFMTUFTIERSSVZFCisJCQkJQ0FSTFNCQUQgQ0EgOTIwMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTYyICAgKGhleCkJCUlDUCBWT1JURVggQ09NUFVURVJTWVNURU1FIEdtYkgKKzAwOTA2MiAgICAgKGJhc2UgMTYpCQlJQ1AgVk9SVEVYIENPTVBVVEVSU1lTVEVNRSBHbWJICisJCQkJRkFMVEVSU1RSQVNTRSA1MS01MworCQkJCUQgNzQyMjMgRkxFSU4gIAorCQkJCUdFUk1BTlkKKworMDAtOTAtNjMgICAoaGV4KQkJQ09IRVJFTlQgQ09NTVVOSUNBVElPTlMgU1lTVEVNUyBDT1JQT1JBVElPTgorMDA5MDYzICAgICAoYmFzZSAxNikJCUNPSEVSRU5UIENPTU1VTklDQVRJT05TIFNZU1RFTVMgQ09SUE9SQVRJT04KKwkJCQk0NTA4NSBVTklWRVJTSVRZIERSSVZFCisJCQkJQVNIQlVSTiBWQSAyMDE0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNjQgICAoaGV4KQkJVGhvbXNvbiBJbmMuCiswMDkwNjQgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBJbmMuCisJCQkJMTAxIFdlc3QgMTAzcmQgU3RyZWV0CisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjkwLTExMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTY1ICAgKGhleCkJCUZJTklTQVIgQ09SUE9SQVRJT04KKzAwOTA2NSAgICAgKGJhc2UgMTYpCQlGSU5JU0FSIENPUlBPUkFUSU9OCisJCQkJMTM4OSBNb2ZmZXR0IFBhcmsgRHIKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTY2ICAgKGhleCkJCVRyb2lrYSBOZXR3b3JrcywgSW5jLgorMDA5MDY2ICAgICAoYmFzZSAxNikJCVRyb2lrYSBOZXR3b3JrcywgSW5jLgorCQkJCTI4MjkgVG93bnNnYXRlIFJvYWQsCisJCQkJU3VpdGUgMjAwCisJCQkJV2VzdGxha2UgVmlsbGFnZSBDQSA5MTM2MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNjcgICAoaGV4KQkJV2Fsa0Fib3V0IENvbXB1dGVycywgSW5jLgorMDA5MDY3ICAgICAoYmFzZSAxNikJCVdhbGtBYm91dCBDb21wdXRlcnMsIEluYy4KKwkJCQkyNjU1IE4uIE9DRUFOIERSSVZFLS1TVEUuICM1MTAKKwkJCQlTSU5HRVIgSVNMQU5EIEZMIDMzNDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02OCAgIChoZXgpCQlEVlQgQ09SUC4KKzAwOTA2OCAgICAgKGJhc2UgMTYpCQlEVlQgQ09SUC4KKwkJCQkxNjcwIE9BS0JST09LIERSLiAtIFNURS4gIzMzMAorCQkJCU5PUkNST1NTIEdBIDMwMDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02OSAgIChoZXgpCQlKVU5JUEVSIE5FVFdPUktTLCBJTkMuCiswMDkwNjkgICAgIChiYXNlIDE2KQkJSlVOSVBFUiBORVRXT1JLUywgSU5DLgorCQkJCTExOTQgTi4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5LTEyMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTZBICAgKGhleCkJCVRVUk5TVE9ORSBTWVNURU1TLCBJTkMuCiswMDkwNkEgICAgIChiYXNlIDE2KQkJVFVSTlNUT05FIFNZU1RFTVMsIElOQy4KKwkJCQkyNzQgRmVyZ3Vzb24gRHJpdmUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02QiAgIChoZXgpCQlBUFBMSUVEIFJFU09VUkNFUywgSU5DLgorMDA5MDZCICAgICAoYmFzZSAxNikJCUFQUExJRUQgUkVTT1VSQ0VTLCBJTkMuCisJCQkJOTgyMSBXSURNRVIgUk9BRAorCQkJCUxFTkVYQSBLUyA2NjIxNS0xMjM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02QyAgIChoZXgpCQlTYXJ0b3JpdXMgSGFtYnVyZyBHbWJICiswMDkwNkMgICAgIChiYXNlIDE2KQkJU2FydG9yaXVzIEhhbWJ1cmcgR21iSAorCQkJCU1laWVuZG9yZmVyc3RyLiAyMDUKKwkJCQlIYW1idXJnICBELTIyMTQ1CisJCQkJR0VSTUFOWQorCiswMC05MC02RCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDkwNkQgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFIuIC0gIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNkUgICAoaGV4KQkJUFJBWE9OLCBJTkMuCiswMDkwNkUgICAgIChiYXNlIDE2KQkJUFJBWE9OLCBJTkMuCisJCQkJMTcwMCBERUxMIEFWRU5VRQorCQkJCUNBTVBCRUxMIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02RiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDkwNkYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFIuIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC03MCAgIChoZXgpCQlORU8gTkVUV09SS1MsIElOQy4KKzAwOTA3MCAgICAgKGJhc2UgMTYpCQlORU8gTkVUV09SS1MsIElOQy4KKwkJCQkxMDMwMCBCUkVOIFJPQUQgRUFTVAorCQkJCU1JTk5FVE9OS0EgTU4gNTUzNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTcxICAgKGhleCkJCUFwcGxpZWQgSW5ub3ZhdGlvbiBJbmMuCiswMDkwNzEgICAgIChiYXNlIDE2KQkJQXBwbGllZCBJbm5vdmF0aW9uIEluYy4KKwkJCQk1ODAwIElubm92YXRpb24gRHJpdmUKKwkJCQlEdWJsaW4gT0ggNDMwMTYtMzI3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNzIgICAoaGV4KQkJU0lNUkFEIEFTCiswMDkwNzIgICAgIChiYXNlIDE2KQkJU0lNUkFEIEFTCisJCQkJUC5PLiBCT1ggMTExCisJCQkJMzE5MSBIT1JURU4gCisJCQkJTk9SV0FZCisKKzAwLTkwLTczICAgKGhleCkJCUdBSU8gVEVDSE5PTE9HWQorMDA5MDczICAgICAoYmFzZSAxNikJCUdBSU8gVEVDSE5PTE9HWQorCQkJCU9BSy1ZT0tPSEFNQSBCTERHLgorCQkJCTItMTUtMTAgS0lUQS1TQUlXQUksCisJCQkJTklTSEktS1UgWU9LT0hBTUEtQ0lUWSBLYW5hZ2F3YSAKKwkJCQlKQVBBTgorCiswMC05MC03NCAgIChoZXgpCQlBUkdPTiBORVRXT1JLUywgSU5DLgorMDA5MDc0ICAgICAoYmFzZSAxNikJCUFSR09OIE5FVFdPUktTLCBJTkMuCisJCQkJMjUgUE9SVEVSIFJPQUQKKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTc1ICAgKGhleCkJCU5FQyBETyBCUkFTSUwgUy5BLgorMDA5MDc1ICAgICAoYmFzZSAxNikJCU5FQyBETyBCUkFTSUwgUy5BLgorCQkJCVJPRE9WSUEgUFJFU0lERU5URSBEVVRSQSwgS00gMjE4CisJCQkJQ1VNQklDQS1HVUFSVUxIT1MKKwkJCQlTQU8gUEFVTE8tU1AgQ0VQIC0gMDcyMTAtOTAyIAorCQkJCUJSQVpJTAorCiswMC05MC03NiAgIChoZXgpCQlGTVQgQUlSQ1JBRlQgR0FURSBTVVBQT1JUIFNZU1RFTVMgQUIKKzAwOTA3NiAgICAgKGJhc2UgMTYpCQlGTVQgQUlSQ1JBRlQgR0FURSBTVVBQT1JUIFNZU1RFTVMgQUIKKwkJCQkKKwkJCQlEQUxBU0xJTkdBTiA4CisJCQkJU0UtMjMxIDMyIFRSRUxMRUJPUkcgIAorCQkJCVNXRURFTgorCiswMC05MC03NyAgIChoZXgpCQlBRFZBTkNFRCBGSUJSRSBDT01NVU5JQ0FUSU9OUworMDA5MDc3ICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIEZJQlJFIENPTU1VTklDQVRJT05TCisJCQkJUE8gQk9YICM3NTEyMzkKKwkJCQkxIFdJTExPV0JST09LIENUCisJCQkJUEVUQUxVTUEgQ0EgOTQ5NzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTc4ICAgKGhleCkJCU1FUiBURUxFTUFOQUdFTUVOVCBTT0xVVElPTlMsIExURC4KKzAwOTA3OCAgICAgKGJhc2UgMTYpCQlNRVIgVEVMRU1BTkFHRU1FTlQgU09MVVRJT05TLCBMVEQuCisJCQkJNSBIQVRTT1JFRiBTVFIuCisJCQkJSU5ELiBBUkVBCisJCQkJSE9MT04gIAorCQkJCUlTUkFFTAorCiswMC05MC03OSAgIChoZXgpCQlDbGVhck9uZSwgSW5jLgorMDA5MDc5ICAgICAoYmFzZSAxNikJCUNsZWFyT25lLCBJbmMuCisJCQkJMjk5IFdBU0hJTkdUT04gU1RSRUVUCisJCQkJV09CVVJOIE1BIDAxODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC03QSAgIChoZXgpCQlQb2x5Y29tLCBJbmMuCiswMDkwN0EgICAgIChiYXNlIDE2KQkJUG9seWNvbSwgSW5jLgorCQkJCTU3NTUgQ0VOVFJBTCBBVkVOVUUKKwkJCQlCT1VMREVSIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC03QiAgIChoZXgpCQlFLVRFQ0gsIElOQy4KKzAwOTA3QiAgICAgKGJhc2UgMTYpCQlFLVRFQ0gsIElOQy4KKwkJCQkzMCwgUiZEIFJPQUQgMgorCQkJCVNDSUVOQ0UgUEFSSworCQkJCUhTSU5DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtN0MgICAoaGV4KQkJRElHSVRBTENBU1QsIElOQy4KKzAwOTA3QyAgICAgKGJhc2UgMTYpCQlESUdJVEFMQ0FTVCwgSU5DLgorCQkJCTUwMywgSUxLV0FORyBCTERHLiwgMTY1Ni0yCisJCQkJU0VPQ0hPLURPTkcKKwkJCQlTRU9DSE8tS1UgIFNFT1VMIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC05MC03RCAgIChoZXgpCQlMYWtlIENvbW11bmljYXRpb25zCiswMDkwN0QgICAgIChiYXNlIDE2KQkJTGFrZSBDb21tdW5pY2F0aW9ucworCQkJCUJlZWNoIEhvdXNlLCBHcmVlbmhpbGxzIFJvYWQKKwkJCQlEdWJsaW4gMjQKKwkJCQlJUkVMQU5ECisKKzAwLTkwLTdFICAgKGhleCkJCVZFVFJPTklYIENPUlAuCiswMDkwN0UgICAgIChiYXNlIDE2KQkJVkVUUk9OSVggQ09SUC4KKwkJCQkyMDMwIEFMQU1FREUgUEFEUkUgU0VSUkEKKwkJCQlTQU5UQSBCQVJCQVJBIENBIDkzMTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC03RiAgIChoZXgpCQlXYXRjaEd1YXJkIFRlY2hub2xvZ2llcywgSW5jLgorMDA5MDdGICAgICAoYmFzZSAxNikJCVdhdGNoR3VhcmQgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNTA1IEZpZnRoIEF2ZSBTb3V0aAorCQkJCVN1aXRlIDUwMAorCQkJCVNlYXR0bGUgV0EgOTgxMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTgwICAgKGhleCkJCU5PVCBMSU1JVEVELCBJTkMuCiswMDkwODAgICAgIChiYXNlIDE2KQkJTk9UIExJTUlURUQsIElOQy4KKwkJCQk1MDAgQUxMRVJUT04gU1RSRUVULCBTVEUgIzEwMgorCQkJCVJFRFdPT0QgQ0lUWSBDQSA5NDA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtODEgICAoaGV4KQkJQUxPSEEgTkVUV09SS1MsIElOQy4KKzAwOTA4MSAgICAgKGJhc2UgMTYpCQlBTE9IQSBORVRXT1JLUywgSU5DLgorCQkJCTEwMDFBIE8nUkVJTExZIEFWRU5VRQorCQkJCVAuTy4gQk9YIDI5NDcyCisJCQkJU0FOIEZSQU5DSVNDTyBDQSA5NDEyOS0wNDcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC04MiAgIChoZXgpCQlGT1JDRSBJTlNUSVRVVEUKKzAwOTA4MiAgICAgKGJhc2UgMTYpCQlGT1JDRSBJTlNUSVRVVEUKKwkJCQlQQVJLIEFMTEUgMzQ1CisJCQkJREstMjYwNSBCUk9FTkRCWSAgCisJCQkJREVOTUFSSworCiswMC05MC04MyAgIChoZXgpCQlUVVJCTyBDT01NVU5JQ0FUSU9OLCBJTkMuCiswMDkwODMgICAgIChiYXNlIDE2KQkJVFVSQk8gQ09NTVVOSUNBVElPTiwgSU5DLgorCQkJCTRGLTIsIE5PLiAxNzEsIFNVTkctVEVIIFJPQUQKKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtODQgICAoaGV4KQkJQVRFQ0ggU1lTVEVNCiswMDkwODQgICAgIChiYXNlIDE2KQkJQVRFQ0ggU1lTVEVNCisJCQkJNEYgREFFQk9PTkcgQkxERy4gMTQ1MS03OAorCQkJCVNFT0NITy1ET05HIFNFT0NITy1LVQorCQkJCSBTRU9VTCAgMTM3LTA3MCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTkwLTg1ICAgKGhleCkJCUdPTERFTiBFTlRFUlBSSVNFUywgSU5DLgorMDA5MDg1ICAgICAoYmFzZSAxNikJCUdPTERFTiBFTlRFUlBSSVNFUywgSU5DLgorCQkJCTQ0NTAgV0VTVCBFQVUgR0FMTElFIEJMVkQuCisJCQkJMjUwIFBFUklNRVRFUiBDRU5URVIKKwkJCQlNRUxCT1VSTkUgRkwgMzI5MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTg2ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwOTA4NiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUi4gLSBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTg3ICAgKGhleCkJCUlUSVMKKzAwOTA4NyAgICAgKGJhc2UgMTYpCQlJVElTCisJCQkJQ0VOVFJFIEVTUEFDRSBQRVJGT1JNQU5DRQorCQkJCUFMUEhBU0lTLUJBVElNRU5UIEMxCisJCQkJMzU3NjkgU0FJTlQtR1JFR09JUkUgQ0VERVggIAorCQkJCUZSQU5DRQorCiswMC05MC04OCAgIChoZXgpCQlCQVhBTEwgU0VDVVJJVFkgTFRELgorMDA5MDg4ICAgICAoYmFzZSAxNikJCUJBWEFMTCBTRUNVUklUWSBMVEQuCisJCQkJVU5JVCAxIENBU1RMRUhJTEwKKwkJCQlIT1JTRUZJRUxEIFdBWSwgQlJFREJVUlkgUEFSSyBJTkQuIEVzdGF0CisJCQkJU1RPQ0tQT1JUIEdyZWF0IEJyaXRhaW4gU0s2IDJTViAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC05MC04OSAgIChoZXgpCQlTT0ZUQ09NIE1JQ1JPU1lTVEVNUywgSU5DLgorMDA5MDg5ICAgICAoYmFzZSAxNikJCVNPRlRDT00gTUlDUk9TWVNURU1TLCBJTkMuCisJCQkJNDc1MDkgU0VBQlJJREdFIERSSVZFCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOEEgICAoaGV4KQkJQkFZTFkgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwOTA4QSAgICAgKGJhc2UgMTYpCQlCQVlMWSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTEwNSBHUkVFTiBDT1VSVAorCQkJCUFKQVggT250YXJpbyAgTDFTIDZXOSAKKwkJCQlDQU5BREEKKworMDAtOTAtOEIgICAoaGV4KQkJUEZVIFN5c3RlbXMsIEluYy4KKzAwOTA4QiAgICAgKGJhc2UgMTYpCQlQRlUgU3lzdGVtcywgSW5jLgorCQkJCTI2MDAgRmVybmJyb29rIExhbmUKKwkJCQlTdWl0ZSAxMzAKKwkJCQlQbHltb3V0aCBNTiA1NTQ0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOEMgICAoaGV4KQkJRVRSRU5EIEVMRUNUUk9OSUNTLCBJTkMuCiswMDkwOEMgICAgIChiYXNlIDE2KQkJRVRSRU5EIEVMRUNUUk9OSUNTLCBJTkMuCisJCQkJMkYsIDIyIElORFVTVFJZIEUuIDlUSCBST0FECisJCQkJSFNJTkNIVSBTQ0lFTkNFIFBBUksKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLThEICAgKGhleCkJCVZJQ0tFUlMgRUxFQ1RST05JQ1MgU1lTVEVNUworMDA5MDhEICAgICAoYmFzZSAxNikJCVZJQ0tFUlMgRUxFQ1RST05JQ1MgU1lTVEVNUworCQkJCTExNTEgVy4gTUFTT04tTU9SUk9XIFJELgorCQkJCUxFQkFOT04gT0ggNDUwMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLThFICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcyBCcm9hZGJhbmQgQWNjZXNzCiswMDkwOEUgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzIEJyb2FkYmFuZCBBY2Nlc3MKKwkJCQkzOTY2MCBFdXJla2EgRHJpdmUKKwkJCQlOZXdhcmsgQ0EgOTQ1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLThGICAgKGhleCkJCUFVRElPIENPREVTIExURC4KKzAwOTA4RiAgICAgKGJhc2UgMTYpCQlBVURJTyBDT0RFUyBMVEQuCisJCQkJM0EgTkVUQU5ZQUhVIFNUUkVFVAorCQkJCU9SIFlFSFVEQSA2MDI1NiAgCisJCQkJSVNSQUVMCisKKzAwLTkwLTkwICAgKGhleCkJCUktQlVTCiswMDkwOTAgICAgIChiYXNlIDE2KQkJSS1CVVMKKwkJCQk5MTc0IFNLWSBQQVJLIENPVVJUCisJCQkJU0FOIERJRUdPIENBIDkyMTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05MSAgIChoZXgpCQlEaWdpdGFsU2NhcGUsIEluYy4KKzAwOTA5MSAgICAgKGJhc2UgMTYpCQlEaWdpdGFsU2NhcGUsIEluYy4KKwkJCQk2IE1PUkdBTiAgLSBTVEUuIzEwMAorCQkJCUlSVklORSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOTIgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MDkyICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJTS9TIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOTMgICAoaGV4KQkJTkFOQU8gQ09SUE9SQVRJT04KKzAwOTA5MyAgICAgKGJhc2UgMTYpCQlOQU5BTyBDT1JQT1JBVElPTgorCQkJCTE1MyBTSElNT0tBU0hJV0FOTywgTUFUVE8KKwkJCQlJU0hJS0FXQSA5MjQtODU2NiAgCisJCQkJSkFQQU4KKworMDAtOTAtOTQgICAoaGV4KQkJT1NQUkVZIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA5MDk0ICAgICAoYmFzZSAxNikJCU9TUFJFWSBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk2MDAgQUlSUE9SVCBCTFZELiAtIFNURS4gIzkwMAorCQkJCU1PUlJJU1ZJTExFIE5DIDI3NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05NSAgIChoZXgpCQlVTklWRVJTQUwgQVZJT05JQ1MKKzAwOTA5NSAgICAgKGJhc2UgMTYpCQlVTklWRVJTQUwgQVZJT05JQ1MKKwkJCQkxMTM1MSBXSUxMT1dTIFJPQUQgTkUKKwkJCQlSRURNT05EIFdBIDk4MDUyLTI1NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTk2ICAgKGhleCkJCUFTS0VZIENPTVBVVEVSIENPUlAuCiswMDkwOTYgICAgIChiYXNlIDE2KQkJQVNLRVkgQ09NUFVURVIgQ09SUC4KKwkJCQkyRiwgTk8uIDIsIExBTkUgNDk3CisJCQkJQ0hVTkctQ0hFTkcgUkQuLCBIU0lOLVRJRU4KKwkJCQlUQUlQRUkgIDIzMTM2ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLTk3ICAgKGhleCkJCVN5Y2Ftb3JlIE5ldHdvcmtzCiswMDkwOTcgICAgIChiYXNlIDE2KQkJU3ljYW1vcmUgTmV0d29ya3MKKwkJCQkyMjAgTWlsbCBSZAorCQkJCUNoZWxtc2ZvcmQgTUEgMDE4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTk4ICAgKGhleCkJCVNCQyBERVNJR05TLCBJTkMuCiswMDkwOTggICAgIChiYXNlIDE2KQkJU0JDIERFU0lHTlMsIElOQy4KKwkJCQkzMDc3LUggTEVFTUFOIEZFUlJZIFJPQUQKKwkJCQlIVU5UU1ZJTExFIEFMIDM1ODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05OSAgIChoZXgpCQlBTExJRUQgVEVMRVNJUywgSy5LLgorMDA5MDk5ICAgICAoYmFzZSAxNikJCUFMTElFRCBURUxFU0lTLCBLLksuCisJCQkJTk8uIDIgIFRPQyBCVUlMRElORywgNy0yMS0xMU5pc2hpLUdvdGFuZAorCQkJCVNoaW5hZ2F3YS1LdSBUb2t5byAxNDEgCisJCQkJSkFQQU4KKworMDAtOTAtOUEgICAoaGV4KQkJT05FIFdPUkxEIFNZU1RFTVMsIElOQy4KKzAwOTA5QSAgICAgKGJhc2UgMTYpCQlPTkUgV09STEQgU1lTVEVNUywgSU5DLgorCQkJCTExNDQgRUFTVCBBUlFVRVMgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05QiAgIChoZXgpCQlJTUFKRQorMDA5MDlCICAgICAoYmFzZSAxNikJCUlNQUpFCisJCQkJR/Z0YXZlcmtzZ2F0YW4gNkEKKwkJCQlHb3RoZW5idXJnICA0MTcgNTUKKwkJCQlTV0VERU4KKworMDAtOTAtOUMgICAoaGV4KQkJTW90b3JvbGEsIEluYy4KKzAwOTA5QyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSwgSW5jLgorCQkJCTI0NTAgV2Fsc2ggQXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTlEICAgKGhleCkJCU5vdmFUZWNoIFByb2Nlc3MgU29sdXRpb25zLCBMTEMKKzAwOTA5RCAgICAgKGJhc2UgMTYpCQlOb3ZhVGVjaCBQcm9jZXNzIFNvbHV0aW9ucywgTExDCisJCQkJMTE1MDAgQ3JvbnJpZGdlIERyaXZlCisJCQkJU3VpdGUgMTEwCisJCQkJT3dpbmdzIE1pbGxzIE1EIDIxMTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05RSAgIChoZXgpCQlDcml0aWNhbCBJTywgTExDCiswMDkwOUUgICAgIChiYXNlIDE2KQkJQ3JpdGljYWwgSU8sIExMQworCQkJCTQ4NSBFLiAxN3RoIFN0cmVldAorCQkJCVN1aXRlIDIwMTAKKwkJCQlDb3N0YSBNZXNhIENBIDkyNjI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05RiAgIChoZXgpCQlESUdJLURBVEEgQ09SUE9SQVRJT04KKzAwOTA5RiAgICAgKGJhc2UgMTYpCQlESUdJLURBVEEgQ09SUE9SQVRJT04KKwkJCQk4OTIwLUQgUm91dGUgMTA4CisJCQkJQ29sdW1iaWEgTUQgMjEwNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUEwICAgKGhleCkJCThYOCBJTkMuCiswMDkwQTAgICAgIChiYXNlIDE2KQkJOFg4IElOQy4KKwkJCQkyNDQ1IE1JU1NJT04gQ09MTEVHRSBCTFZELgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BMSAgIChoZXgpCQlGbHlpbmcgUGlnIFN5c3RlbXMvSGlnaCBFbmQgU3lzdGVtcyBJbmMuCiswMDkwQTEgICAgIChiYXNlIDE2KQkJRmx5aW5nIFBpZyBTeXN0ZW1zL0hpZ2ggRW5kIFN5c3RlbXMgSW5jLgorCQkJCTIxMDUgR3JhY3kgRmFybXMgTGFuZQorCQkJCUF1c3RpbiBUWCA3ODc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQTIgICAoaGV4KQkJQ1lCRVJUQU4gVEVDSE5PTE9HWSwgSU5DLgorMDA5MEEyICAgICAoYmFzZSAxNikJCUNZQkVSVEFOIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQlCTERHLjUzLCAxOTUtNTYgU0VDLiA0LAorCQkJCUNIVU5HIEhTSU5HIFJPQUQsCisJCQkJQ0hVVFVORyBIU0lOQ0hVIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtQTMgICAoaGV4KQkJQ29yZWNlc3MgSW5jLgorMDA5MEEzICAgICAoYmFzZSAxNikJCUNvcmVjZXNzIEluYy4KKwkJCQkxMzUtNzI2LCBLZW9weXVuZyBCLVRvd24gMUYsIDIwMywgTm9uaHl1CisJCQkJS2FuZ25hbS1ndSwKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTkwLUE0ICAgKGhleCkJCUFMVElHQSBORVRXT1JLUworMDA5MEE0ICAgICAoYmFzZSAxNikJCUFMVElHQSBORVRXT1JLUworCQkJCTEyNCBHUk9WRSBTVFJFRVQKKwkJCQlGUkFOS0xJTiBNQSAwMjAzOC0zMjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BNSAgIChoZXgpCQlTUEVDVFJBIExPR0lDCiswMDkwQTUgICAgIChiYXNlIDE2KQkJU1BFQ1RSQSBMT0dJQworCQkJCTE3MDAgTi4gNTVUSCBTVFJFRVQKKwkJCQlCT1VMREVSIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BNiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDkwQTYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFIuIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BNyAgIChoZXgpCQlDTElFTlRFQyBDT1JQT1JBVElPTgorMDA5MEE3ICAgICAoYmFzZSAxNikJCUNMSUVOVEVDIENPUlBPUkFUSU9OCisJCQkJODE3NSBTLiBWSVJHSU5JQSBTVC4KKwkJCQlTVUlURSAjODUwLTI0OQorCQkJCVJFTk8gTlYgODk1MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUE4ICAgKGhleCkJCU5pbmVUaWxlcyBOZXR3b3JrcywgTHRkLgorMDA5MEE4ICAgICAoYmFzZSAxNikJCU5pbmVUaWxlcyBOZXR3b3JrcywgTHRkLgorCQkJCTkgU3RhdGlvbiBSb2FkCisJCQkJV2F0ZXJiZWFjaCBDYW1icmlkZ2UgQ0I1IDlIVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTkwLUE5ICAgKGhleCkJCVdFU1RFUk4gRElHSVRBTAorMDA5MEE5ICAgICAoYmFzZSAxNikJCVdFU1RFUk4gRElHSVRBTAorCQkJCTE1OTkgTk9SVEggQlJPQURXQVkKKwkJCQlST0NIRVNURVIgTU4gNTU5MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUFBICAgKGhleCkJCUlORElHTyBBQ1RJVkUgVklTSU9OIFNZU1RFTVMgTElNSVRFRAorMDA5MEFBICAgICAoYmFzZSAxNikJCUlORElHTyBBQ1RJVkUgVklTSU9OIFNZU1RFTVMgTElNSVRFRAorCQkJCVRIRSBFRElOQlVSR0ggVEVDSE5PUE9MRQorCQkJCUJBU0ggTE9BTgorCQkJCUVkaW5idXJnaCBFSDI2IE9QSiAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtOTAtQUIgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MEFCICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFICAgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BQyAgIChoZXgpCQlPUFRJVklTSU9OLCBJTkMuCiswMDkwQUMgICAgIChiYXNlIDE2KQkJT1BUSVZJU0lPTiwgSU5DLgorCQkJCTM0NTAgSElMTFZJRVcgQVZFTlVFCisJCQkJUEFMTyBBTFRPIENBIDk0MzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BRCAgIChoZXgpCQlBU1BFQ1QgRUxFQ1RST05JQ1MsIElOQy4KKzAwOTBBRCAgICAgKGJhc2UgMTYpCQlBU1BFQ1QgRUxFQ1RST05JQ1MsIElOQy4KKwkJCQkxMjc0MCBFQVJIQVJUIEFWRS4KKwkJCQlBVUJVUk4gQ0EgOTU2MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUFFICAgKGhleCkJCUlUQUxURUwgUy5wLkEuCiswMDkwQUUgICAgIChiYXNlIDE2KQkJSVRBTFRFTCBTLnAuQS4KKwkJCQlMT0NBTElUQScgQk9TQ0hFVFRPCisJCQkJNjcxMDAgTCdBUVVJTEEgIAorCQkJCUlUQUxZCisKKzAwLTkwLUFGICAgKGhleCkJCUouIE1PUklUQSBNRkcuIENPUlAuCiswMDkwQUYgICAgIChiYXNlIDE2KQkJSi4gTU9SSVRBIE1GRy4gQ09SUC4KKwkJCQk2ODAgSElHQVNISUhBTUEgTUlOQU1JLUNITworCQkJCUZVU0hJTUktS1UsIEtZT1RPIDYxMi04MjEzIAorCQkJCUpBUEFOCisKKzAwLTkwLUIwICAgKGhleCkJCVZBREVNCiswMDkwQjAgICAgIChiYXNlIDE2KQkJVkFERU0KKwkJCQkxOTYwIFpBTktFUiBSRAorCQkJCVNBTiBKT1NFIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1CMSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDkwQjEgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFIuIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1CMiAgIChoZXgpCQlBVklDSSBTWVNURU1TIElOQy4KKzAwOTBCMiAgICAgKGJhc2UgMTYpCQlBVklDSSBTWVNURU1TIElOQy4KKwkJCQkxMiBFTElaQUJFVEggRFJJVkUKKwkJCQlDSEVMTVNGT1JEIE1BIDAxODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1CMyAgIChoZXgpCQlBR1JBTkFUIFNZU1RFTVMKKzAwOTBCMyAgICAgKGJhc2UgMTYpCQlBR1JBTkFUIFNZU1RFTVMKKwkJCQkxMzQ1IE1BSU4gU1RSRUVUCisJCQkJV0FMVEhBTSBNQSAwMjE1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQjQgICAoaGV4KQkJV0lMTE9XQlJPT0sgVEVDSE5PTE9HSUVTCiswMDkwQjQgICAgIChiYXNlIDE2KQkJV0lMTE9XQlJPT0sgVEVDSE5PTE9HSUVTCisJCQkJNzEyMCBIQVlWRU5IVVJTVCBBVkUuLVNURS4jNDAxCisJCQkJVkFOIE5VWVMgQ0EgOTE0MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUI1ICAgKGhleCkJCU5JS09OIENPUlBPUkFUSU9OCiswMDkwQjUgICAgIChiYXNlIDE2KQkJTklLT04gQ09SUE9SQVRJT04KKwkJCQlFbGVjdHJvbmljIEltYWdpbmcgRGl2aXNpb24sIERlc2lnbmluZyBECisJCQkJMS02LTMsIE5JU0hJLU9ISSwgU0hJTkFHQVdBLUtVCisJCQkJVE9LWU8gMTQwLTg2MDEgIAorCQkJCUpBUEFOCisKKzAwLTkwLUI2ICAgKGhleCkJCUZJQkVYIFNZU1RFTVMKKzAwOTBCNiAgICAgKGJhc2UgMTYpCQlGSUJFWCBTWVNURU1TCisJCQkJNTM1MCBPTEQgUkVEV09PRCBISUdIV0FZCisJCQkJUEVUQUxVTUEgQ0EgOTQ5NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUI3ICAgKGhleCkJCURJR0lUQUwgTElHSFRXQVZFLCBJTkMuCiswMDkwQjcgICAgIChiYXNlIDE2KQkJRElHSVRBTCBMSUdIVFdBVkUsIElOQy4KKwkJCQk2MDEgQ0xFVkVMQU5EIFNUUkVFVC0gNVRIIEZMLgorCQkJCUNMRUFSV0FURVIgRkwgMzM3NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUI4ICAgKGhleCkJCVJPSERFICYgU0NIV0FSWiBHTUJIICYgQ08uIEtHCiswMDkwQjggICAgIChiYXNlIDE2KQkJUk9IREUgJiBTQ0hXQVJaIEdNQkggJiBDTy4gS0cKKwkJCQlQT1NURkFDSDogODAgMTQgNjkvQUJULjogM0NLCisJCQkJRC04MTYxNCBNVU5DSEVOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLUI5ICAgKGhleCkJCUJFUkFOIElOU1RSVU1FTlRTIExURC4KKzAwOTBCOSAgICAgKGJhc2UgMTYpCQlCRVJBTiBJTlNUUlVNRU5UUyBMVEQuCisJCQkJSEFUQ0hNT09SIElORFVTVFJJQUwgRVNUQVRFCisJCQkJVE9SUklOR1RPTgorCQkJCU4gREVWT04gRVgzOCA3SFAgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTkwLUJBICAgKGhleCkJCVZBTElEIE5FVFdPUktTLCBJTkMuCiswMDkwQkEgICAgIChiYXNlIDE2KQkJVkFMSUQgTkVUV09SS1MsIElOQy4KKwkJCQk2IENST01XRUxMICMxMDIKKwkJCQlJUlZJTkUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUJCICAgKGhleCkJCVRBSU5FVCBDT01NVU5JQ0FUSU9OIFNZU1RFTSBDb3JwLgorMDA5MEJCICAgICAoYmFzZSAxNikJCVRBSU5FVCBDT01NVU5JQ0FUSU9OIFNZU1RFTSBDb3JwLgorCQkJCTMgRkwsIE5PLiA2LCBBTExFWSAyMywgTEFORSA5MSBTRUMuIDEKKwkJCQlOZWktSHUgUm9hZAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC1CQyAgIChoZXgpCQlURUxFTUFOTiBDTy4sIExURC4KKzAwOTBCQyAgICAgKGJhc2UgMTYpCQlURUxFTUFOTiBDTy4sIExURC4KKwkJCQk2RiBET05HU0lOIEJMREcuCisJCQkJNTQzLCBET0dPSy1ET05HLCBLQU5HTkFNLUtVCisJCQkJU0VPVUwsIDEzNS0yNzAgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC05MC1CRCAgIChoZXgpCQlPTU5JQSBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDA5MEJEICAgICAoYmFzZSAxNikJCU9NTklBIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTAwIE5JQ0tFUlNPTiBST0FECisJCQkJTUFSTEJPUk9VR0ggTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUJFICAgKGhleCkJCUlCQy9JTlRFR1JBVEVEIEJVU0lORVNTIENPTVBVVEVSUworMDA5MEJFICAgICAoYmFzZSAxNikJCUlCQy9JTlRFR1JBVEVEIEJVU0lORVNTIENPTVBVVEVSUworCQkJCTI2ODUgQyBQQVJLIENFTlRFUiBEUklWRQorCQkJCVNJTUkgVkFMTEVZIENBIDkzMDY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1CRiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDkwQkYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUgICBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUMwICAgKGhleCkJCUsuSi4gTEFXIEVOR0lORUVSUywgSU5DLgorMDA5MEMwICAgICAoYmFzZSAxNikJCUsuSi4gTEFXIEVOR0lORUVSUywgSU5DLgorCQkJCTQyMzAwIFcuIE5JTkUgTUlMRSBST0FECisJCQkJTk9WSSBNSSA0ODM3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQzEgICAoaGV4KQkJUGVjbyBJSSwgSW5jLgorMDA5MEMxICAgICAoYmFzZSAxNikJCVBlY28gSUksIEluYy4KKwkJCQk3MDYwIEh1bnRsZXkgUm9hZAorCQkJCUNvbHVtYnVzIE9IIDQzMjI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1DMiAgIChoZXgpCQlKSyBtaWNyb3N5c3RlbXMsIEluYy4KKzAwOTBDMiAgICAgKGJhc2UgMTYpCQlKSyBtaWNyb3N5c3RlbXMsIEluYy4KKwkJCQkxMjc1IFlVQkEgQVZFTlVFCisJCQkJU0FOIFBBQkxPIENBIDk0ODA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1DMyAgIChoZXgpCQlUT1BJQyBTRU1JQ09ORFVDVE9SIENPUlAuCiswMDkwQzMgICAgIChiYXNlIDE2KQkJVE9QSUMgU0VNSUNPTkRVQ1RPUiBDT1JQLgorCQkJCTExRi0xLCBOTy4gMiwgV1UtTElOIFJELgorCQkJCUhTSU4tQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLUM0ICAgKGhleCkJCUpBVkVMSU4gU1lTVEVNUywgSU5DLgorMDA5MEM0ICAgICAoYmFzZSAxNikJCUpBVkVMSU4gU1lTVEVNUywgSU5DLgorCQkJCTE4ODEgTEFOR0xFWSBBVkUuCisJCQkJSVJWSU5FIENBIDkyNjE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1DNSAgIChoZXgpCQlJTlRFUk5FVCBNQUdJQywgSU5DLgorMDA5MEM1ICAgICAoYmFzZSAxNikJCUlOVEVSTkVUIE1BR0lDLCBJTkMuCisJCQkJNjQ1MCBMVVNLIEJMVkQuLVNURS4gI0UtMjAxCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1DNiAgIChoZXgpCQlPUFRJTSBTWVNURU1TLCBJTkMuCiswMDkwQzYgICAgIChiYXNlIDE2KQkJT1BUSU0gU1lTVEVNUywgSU5DLgorCQkJCTgyMDEgR1JFRU5TQk9STyBEUi4tU1RFLiAjMTAwMAorCQkJCU1DTEVBTiBWQSAyMjEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQzcgICAoaGV4KQkJSUNPTSBJTkMuCiswMDkwQzcgICAgIChiYXNlIDE2KQkJSUNPTSBJTkMuCisJCQkJNi05LTE2IEtBTUlISUdBU0hJCisJCQkJSElSQU5PLUtVLCBPU0FLQSAgCisJCQkJSkFQQU4KKworMDAtOTAtQzggICAoaGV4KQkJV0FWRVJJREVSIENPTU1VTklDQVRJT05TIChDQU5BREEpIElOQy4KKzAwOTBDOCAgICAgKGJhc2UgMTYpCQlXQVZFUklERVIgQ09NTVVOSUNBVElPTlMgKENBTkFEQSkgSU5DLgorCQkJCQorCQkJCUJyaXRpc2ggQ29sdW1iaWEgVjFFIDRSOSAKKwkJCQlDQU5BREEKKworMDAtOTAtQzkgICAoaGV4KQkJRFBBQyBUZWNobm9sb2dpZXMKKzAwOTBDOSAgICAgKGJhc2UgMTYpCQlEUEFDIFRlY2hub2xvZ2llcworCQkJCTczMjEgTGluY29sbiBXYXkKKwkJCQlHYXJkZW4gR3JvdmUgQ0EgOTI4NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUNBICAgKGhleCkJCUFDQ09SRCBWSURFTyBURUxFQ09NTVVOSUNBVElPTlMsIExURC4KKzAwOTBDQSAgICAgKGJhc2UgMTYpCQlBQ0NPUkQgVklERU8gVEVMRUNPTU1VTklDQVRJT05TLCBMVEQuCisJCQkJMTAsIE1BUlRJTiBHRUhMIFNUUiwgUE8gQk9YIDM1NjQKKwkJCQlQZXRhY2gtVGlrdmEgNDkxMzAgIAorCQkJCUlTUkFFTAorCiswMC05MC1DQiAgIChoZXgpCQlXaXJlbGVzcyBPbkxpbmUsIEluYy4KKzAwOTBDQiAgICAgKGJhc2UgMTYpCQlXaXJlbGVzcyBPbkxpbmUsIEluYy4KKwkJCQk0NDEwIEVMIENBTUlOTyBSRUFMLCAgU1RFICMxMDEKKwkJCQlMT1MgQUxUT1MgQ0EgOTQwMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUNDICAgKGhleCkJCVBsYW5leCBDb21tdW5pY2F0aW9ucworMDA5MENDICAgICAoYmFzZSAxNikJCVBsYW5leCBDb21tdW5pY2F0aW9ucworCQkJCTJGIEZFTklTU0FZIEViaXN1IEJsZGcKKwkJCQkzLTE2LTMgSGlnYXNoaSwKKwkJCQlTaGlidXlhLWt1LCBUb2t5byAxNTAtMDAxMQorCQkJCUpBUEFOCisKKzAwLTkwLUNEICAgKGhleCkJCUVOVC1FTVBSRVNBIE5BQ0lPTkFMIERFIFRFTEVDT01NVU5JQ0FDT0VTLCBTLkEuCiswMDkwQ0QgICAgIChiYXNlIDE2KQkJRU5ULUVNUFJFU0EgTkFDSU9OQUwgREUgVEVMRUNPTU1VTklDQUNPRVMsIFMuQS4KKwkJCQlSLiBFTkcgRlJFREVSSUNPIFVMUklDSCAtICBBUEFSVEFETyAzMDgxCisJCQkJR3VhcmRlaXJhcyAtIDQ0NzAgTW9yZWlyYSBNYWlhICAKKwkJCQlQT1JUVUdBTAorCiswMC05MC1DRSAgIChoZXgpCQlURVRSQSBHbWJICiswMDkwQ0UgICAgIChiYXNlIDE2KQkJVEVUUkEgR21iSAorCQkJCUdFV0VSQkVQQVJLICJBbVdhbGQiIDQKKwkJCQlELTk4NjkzIElMTUVOQVUgIAorCQkJCUdFUk1BTlkKKworMDAtOTAtQ0YgICAoaGV4KQkJTk9SVEVMCiswMDkwQ0YgICAgIChiYXNlIDE2KQkJTk9SVEVMCisJCQkJMjUwIFNJRE5FWSBTVFJFRVQKKwkJCQlCZWxsZXZpbGxlIE9udGFyaW8gSzhOIDVCNyAKKwkJCQlDQU5BREEKKworMDAtOTAtRDAgICAoaGV4KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKzAwOTBEMCAgICAgKGJhc2UgMTYpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorCQkJCVByaW5zIEJvdWRld2lqbmxhYW4gNDcKKwkJCQlCLTI2NTAgRURFR0VNICAKKwkJCQlCRUxHSVVNCisKKzAwLTkwLUQxICAgKGhleCkJCUxFSUNIVSBFTlRFUlBSSVNFIENPLiwgTFRELgorMDA5MEQxICAgICAoYmFzZSAxNikJCUxFSUNIVSBFTlRFUlBSSVNFIENPLiwgTFRELgorCQkJCThGLCBOTy4gMjAzLCBQQS1URUggUk9BRCwgU0VDLjIKKwkJCQlUQUlQRUkgQ0lUWQorCQkJCVRBSVdBTiAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLUQyICAgKGhleCkJCUFSVEVMIFZJREVPIFNZU1RFTVMKKzAwOTBEMiAgICAgKGJhc2UgMTYpCQlBUlRFTCBWSURFTyBTWVNURU1TCisJCQkJMjM3IENFREFSIEhJTEwgU1QuCisJCQkJTUFSTEJPUk8gTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUQzICAgKGhleCkJCUdJRVNFQ0tFICYgREVWUklFTlQgR21iSAorMDA5MEQzICAgICAoYmFzZSAxNikJCUdJRVNFQ0tFICYgREVWUklFTlQgR21iSAorCQkJCVBSSU5aUkVHRU5URU5TVFJBU1NFIDE1OQorCQkJCUQtODE2NzcgIE1VTkNIRU4gIAorCQkJCUdFUk1BTlkKKworMDAtOTAtRDQgICAoaGV4KQkJQmluZFZpZXcgRGV2ZWxvcG1lbnQgQ29ycC4KKzAwOTBENCAgICAgKGJhc2UgMTYpCQlCaW5kVmlldyBEZXZlbG9wbWVudCBDb3JwLgorCQkJCTMzNTUgV0VTVCBBTEFCQU1BICMxMjAwCisJCQkJSE9VU1RPTiBUWCA3NzA5OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRDUgICAoaGV4KQkJRVVQSE9OSVgsIElOQy4KKzAwOTBENSAgICAgKGJhc2UgMTYpCQlFVVBIT05JWCwgSU5DLgorCQkJCTIyMCBQT1JUQUdFIEFWRS4KKwkJCQlQQUxPIEFMVE8gQ0EgOTQzMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUQ2ICAgKGhleCkJCUNSWVNUQUwgR1JPVVAKKzAwOTBENiAgICAgKGJhc2UgMTYpCQlDUllTVEFMIEdST1VQCisJCQkJODUwIEtBQ0VOQSBSRC4KKwkJCQlISUFXQVRIQSBJQSA1MjIzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRDcgICAoaGV4KQkJTmV0Qm9vc3QgQ29ycC4KKzAwOTBENyAgICAgKGJhc2UgMTYpCQlOZXRCb29zdCBDb3JwLgorCQkJCTM5MCBDQU1CUklER0UgQVZFTlVFCisJCQkJUEFMTyBBTFRPIENBIDk0MzA2LTE1MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUQ4ICAgKGhleCkJCVdISVRFQ1JPU1MgU1lTVEVNUworMDA5MEQ4ICAgICAoYmFzZSAxNikJCVdISVRFQ1JPU1MgU1lTVEVNUworCQkJCTNBIFdBVEVSU0lERSBQQVJLLCBDT09LSEFNIFJECisJCQkJQlJBQ0tORUxMCisJCQkJQkVSS1NISVJFIFJHMTIgMVJCICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC05MC1EOSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDkwRDkgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlNL1MvIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtREEgICAoaGV4KQkJRFlOQVJDLCBJTkMuCiswMDkwREEgICAgIChiYXNlIDE2KQkJRFlOQVJDLCBJTkMuCisJCQkJMTg4NyBMQU5ESU5HUyBEUklWRQorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLURCICAgKGhleCkJCU5FWFQgTEVWRUwgQ09NTVVOSUNBVElPTlMKKzAwOTBEQiAgICAgKGJhc2UgMTYpCQlORVhUIExFVkVMIENPTU1VTklDQVRJT05TCisJCQkJNjA4NSBTVEFURSBGQVJNIERSSVZFCisJCQkJUk9ITkVSVCBQQVJLIENBIDk0OTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1EQyAgIChoZXgpCQlURUNPIElORk9STUFUSU9OIFNZU1RFTVMKKzAwOTBEQyAgICAgKGJhc2UgMTYpCQlURUNPIElORk9STUFUSU9OIFNZU1RFTVMKKwkJCQlDTy4sIExURC4KKwkJCQkyODQxIEpVTkNUSU9OIEFWRS4sIFNURS4gIzExNgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1ERCAgIChoZXgpCQlUSEUgTUlIQVJVIENPTU1VTklDQVRJT05TIENPLiwgTFRELgorMDA5MEREICAgICAoYmFzZSAxNikJCVRIRSBNSUhBUlUgQ09NTVVOSUNBVElPTlMgQ08uLCBMVEQuCisJCQkJCisJCQkJMTI4NSwgSVdBU0UsIEtBTUFLVVJBLUNJVFkKKwkJCQlLQU5BR0FXQSAgCisJCQkJSkFQQU4KKworMDAtOTAtREUgICAoaGV4KQkJQ0FSREtFWSBTWVNURU1TLCBJTkMuCiswMDkwREUgICAgIChiYXNlIDE2KQkJQ0FSREtFWSBTWVNURU1TLCBJTkMuCisJCQkJMTc1NyBUQVBPIENBTllPTiBST0FECisJCQkJU0lNSSBWQUxMRVkgQ0EgOTMwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLURGICAgKGhleCkJCU1JVFNVQklTSEkgQ0hFTUlDQUwgQU1FUklDQSwgSU5DLgorMDA5MERGICAgICAoYmFzZSAxNikJCU1JVFNVQklTSEkgQ0hFTUlDQUwgQU1FUklDQSwgSU5DLgorCQkJCTQ0NSBJTkRJTyBXQVkKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUUwICAgKGhleCkJCVNZU1RSQU4gQ09SUC4KKzAwOTBFMCAgICAgKGJhc2UgMTYpCQlTWVNUUkFOIENPUlAuCisJCQkJNDEyNiBMSU5ERU4gQVZFTlVFCisJCQkJREFZVE9OIE9IIDQ1NDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1FMSAgIChoZXgpCQlURUxFTkEgUy5QLkEuCiswMDkwRTEgICAgIChiYXNlIDE2KQkJVEVMRU5BIFMuUC5BLgorCQkJCVZJQSBTQVZPTkEsIDE0NgorCQkJCTIwMTQ0IE1JTEFOTyAgCisJCQkJSVRBTFkKKworMDAtOTAtRTIgICAoaGV4KQkJRElTVFJJQlVURUQgUFJPQ0VTU0lORyBURUNITk9MT0dZCiswMDkwRTIgICAgIChiYXNlIDE2KQkJRElTVFJJQlVURUQgUFJPQ0VTU0lORyBURUNITk9MT0dZCisJCQkJMTQwIENBTkRBQ0UgRFJJVkUKKwkJCQlPUkxBTkRPIEZMIDMyNzUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1FMyAgIChoZXgpCQlBVkVYIEVMRUNUUk9OSUNTIElOQy4KKzAwOTBFMyAgICAgKGJhc2UgMTYpCQlBVkVYIEVMRUNUUk9OSUNTIElOQy4KKwkJCQk0ODA3IEJSQURGT1JEIERSSVZFCisJCQkJSFVOVFNWSUxMRSBBTCAzNTgwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRTQgICAoaGV4KQkJTkVDIEFNRVJJQ0EsIElOQy4KKzAwOTBFNCAgICAgKGJhc2UgMTYpCQlORUMgQU1FUklDQSwgSU5DLgorCQkJCTMxMDAgTi5FLiBTSFVURSBST0FECisJCQkJSElMTFNCT1JPIE9SIDk3MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1FNSAgIChoZXgpCQlURUtORU1BLCBJTkMuCiswMDkwRTUgICAgIChiYXNlIDE2KQkJVEVLTkVNQSwgSU5DLgorCQkJCTI2NTYgRS4gQkFZU0hPUkUgUk9BRAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRTYgICAoaGV4KQkJQUxpIENvcnBvcmF0aW9uCiswMDkwRTYgICAgIChiYXNlIDE2KQkJQUxpIENvcnBvcmF0aW9uCisJCQkJNkYsIDI0NiBOZWlIdSBSb2FkLCBTZWMuIDEKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtRTcgICAoaGV4KQkJSE9SU0NIIEVMRUtUUk9OSUsgQUcKKzAwOTBFNyAgICAgKGJhc2UgMTYpCQlIT1JTQ0ggRUxFS1RST05JSyBBRworCQkJCUhBQUdFUlNUUkFTU0UKKwkJCQlQT1NURkFDSAorCQkJCUNILTk0NzMgR0FNUyAgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtOTAtRTggICAoaGV4KQkJTU9YQSBURUNITk9MT0dJRVMgQ09SUC4sIExURC4KKzAwOTBFOCAgICAgKGJhc2UgMTYpCQlNT1hBIFRFQ0hOT0xPR0lFUyBDT1JQLiwgTFRELgorCQkJCTdGLCBOTy4gMiwgQUxZNiwgTE4gMjM1CisJCQkJUEFPLUNISUFPIFJELAorCQkJCVNISUVORy1USUVOIENJVFkgVEFJUEVJIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtRTkgICAoaGV4KQkJSkFOWiBDT01QVVRFUiBBRworMDA5MEU5ICAgICAoYmFzZSAxNikJCUpBTlogQ09NUFVURVIgQUcKKwkJCQlJbSBE9nJlbmVyIEZlbGQgOAorCQkJCUQtMzMxMDAgUGFkZXJib3JuIAorCQkJCUdFUk1BTlkKKworMDAtOTAtRUEgICAoaGV4KQkJQUxQSEEgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDkwRUEgICAgIChiYXNlIDE2KQkJQUxQSEEgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMzc2NyBBTFBIQSBXQVkKKwkJCQlCRUxMSU5HSEFNIFdBIDk4MjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1FQiAgIChoZXgpCQlTRU5UUlkgVEVMRUNPTSBTWVNURU1TCiswMDkwRUIgICAgIChiYXNlIDE2KQkJU0VOVFJZIFRFTEVDT00gU1lTVEVNUworCQkJCTg2NjQgQ09NTUVSQ0UgQ09VUlQKKwkJCQlCVVJOQUJZIEJDIFY1QSA0TjcgCisJCQkJQ0FOQURBCisKKzAwLTkwLUVDICAgKGhleCkJCVBZUkVTQ09NCiswMDkwRUMgICAgIChiYXNlIDE2KQkJUFlSRVNDT00KKwkJCQkzIEFMTEVFIERVIE1PVUxJTgorCQkJCTY2NjgwIENBTk9IRVMgIAorCQkJCUZSQU5DRQorCiswMC05MC1FRCAgIChoZXgpCQlDRU5UUkFMIFNZU1RFTSBSRVNFQVJDSCBDTy4sIExURC4KKzAwOTBFRCAgICAgKGJhc2UgMTYpCQlDRU5UUkFMIFNZU1RFTSBSRVNFQVJDSCBDTy4sIExURC4KKwkJCQk0LTEzLTIgSElZT1NISUNITworCQkJCUtPS1VCVU5KSS1DSVRZIFRPS1lPIDE4NTAwMDMyIAorCQkJCUpBUEFOCisKKzAwLTkwLUVFICAgKGhleCkJCVBFUlNPTkFMIENPTU1VTklDQVRJT05TIFRFQ0hOT0xPR0lFUworMDA5MEVFICAgICAoYmFzZSAxNikJCVBFUlNPTkFMIENPTU1VTklDQVRJT05TIFRFQ0hOT0xPR0lFUworCQkJCTUwIFNUSUxFUyBST0FECisJCQkJU0FMRU0gTkggMDMwNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUVGICAgKGhleCkJCUlOVEVHUklYLCBJTkMuCiswMDkwRUYgICAgIChiYXNlIDE2KQkJSU5URUdSSVgsIElOQy4KKwkJCQkyMDAxIENPUlBPUkFURSBDRU5URVIgRFJJVkUKKwkJCQlORVdCVVJZIFBBUksgQ0EgOTEzMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUYwICAgKGhleCkJCUhhcm1vbmljIFZpZGVvIFN5c3RlbXMgTHRkLgorMDA5MEYwICAgICAoYmFzZSAxNikJCUhhcm1vbmljIFZpZGVvIFN5c3RlbXMgTHRkLgorCQkJCTE5IEFMT04gSEFUQVZPUiBTVFJFRVQKKwkJCQlab25lIDMsIFBPIEJveCAzNjAwCisJCQkJQ0FFU0FSRUEgIEluZHVzdHJpYWwgUGFyayAgMzg5MDAKKwkJCQlJU1JBRUwKKworMDAtOTAtRjEgICAoaGV4KQkJRE9UIEhJTEwgU1lTVEVNUyBDT1JQT1JBVElPTgorMDA5MEYxICAgICAoYmFzZSAxNikJCURPVCBISUxMIFNZU1RFTVMgQ09SUE9SQVRJT04KKwkJCQk2MzA1IEVsIENhbWlubyBSZWFsCisJCQkJQ2FybHNiYWQgQ0EgOTIwMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUYyICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwOTBGMiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRSAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRjMgICAoaGV4KQkJQVNQRUNUIENPTU1VTklDQVRJT05TCiswMDkwRjMgICAgIChiYXNlIDE2KQkJQVNQRUNUIENPTU1VTklDQVRJT05TCisJCQkJMTMxMCBSaWRkZXIgUGFyayBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTMxLTIzMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUY0ICAgKGhleCkJCUxJR0hUTklORyBJTlNUUlVNRU5UQVRJT04KKzAwOTBGNCAgICAgKGJhc2UgMTYpCQlMSUdIVE5JTkcgSU5TVFJVTUVOVEFUSU9OCisJCQkJQk9WRVJFU1NFUyA1MAorCQkJCTEwMTAgTEFVU0FOTkUgIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTkwLUY1ICAgKGhleCkJCUNMRVZPIENPLgorMDA5MEY1ICAgICAoYmFzZSAxNikJCUNMRVZPIENPLgorCQkJCTM1LCBXVS1HT04gNlRIIFJPQUQKKwkJCQlXVS1LVSBJTkRVU1RSSUFMIFBBUksKKwkJCQlUQUlQRUkgSFNJRU4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtRjYgICAoaGV4KQkJRVNDQUxBVEUgTkVUV09SS1MsIElOQy4KKzAwOTBGNiAgICAgKGJhc2UgMTYpCQlFU0NBTEFURSBORVRXT1JLUywgSU5DLgorCQkJCTYgSFVHSEVTCisJCQkJSVJWSU5FIENBIDkyNjE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1GNyAgIChoZXgpCQlOQkFTRSBDT01NVU5JQ0FUSU9OUyBMVEQuCiswMDkwRjcgICAgIChiYXNlIDE2KQkJTkJBU0UgQ09NTVVOSUNBVElPTlMgTFRELgorCQkJCUlORFVTVFJJQUwgUEFSSworCQkJCVlPUU5FQU0gSUxJVCBQLk8uIEJPWCAxMTQKKwkJCQlJU1JBRUwKKworMDAtOTAtRjggICAoaGV4KQkJTUVESUFUUklYIFRFTEVDT00KKzAwOTBGOCAgICAgKGJhc2UgMTYpCQlNRURJQVRSSVggVEVMRUNPTQorCQkJCTQyMjkgR0FSTE9DSworCQkJCVNIRVJCUk9PS0UKKwkJCQlRVUVCRUMgSjFMIDJDOCAgCisJCQkJQ0FOQURBCisKKzAwLTkwLUY5ICAgKGhleCkJCUxFSVRDSAorMDA5MEY5ICAgICAoYmFzZSAxNikJCUxFSVRDSAorCQkJCTEwIERZQVMgUk9BRAorCQkJCURPTiBNSUxMUworCQkJCU9OVEFSSU8gTTNCIDFWNSAgCisJCQkJQ0FOQURBCisKKzAwLTkwLUZBICAgKGhleCkJCUVNVUxFWCBDb3JwCiswMDkwRkEgICAgIChiYXNlIDE2KQkJRU1VTEVYIENvcnAKKwkJCQkzMzMzIFN1c2FuIFN0cmVldAorCQkJCUNvc3RhIE1lc2EgQ0EgOTI2MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUZCICAgKGhleCkJCVBPUlRXRUxMLCBJTkMuCiswMDkwRkIgICAgIChiYXNlIDE2KQkJUE9SVFdFTEwsIElOQy4KKwkJCQk3Ri00LCBOTy4gMTYwLCBTRUMuIDYKKwkJCQlNSU5HLUNIVUFORyBFLiBSRC4KKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtRkMgICAoaGV4KQkJTkVUV09SSyBDT01QVVRJTkcgREVWSUNFUworMDA5MEZDICAgICAoYmFzZSAxNikJCU5FVFdPUksgQ09NUFVUSU5HIERFVklDRVMKKwkJCQkzMDEgUkFWRU5EQUxFIERSSVZFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRkQgICAoaGV4KQkJQ29wcGVyQ29tLCBJbmMuCiswMDkwRkQgICAgIChiYXNlIDE2KQkJQ29wcGVyQ29tLCBJbmMuCisJCQkJMzI1NS0xIFNDT1RUIEJMVkQuLC0tU1RFLiMxMDMKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRkUgICAoaGV4KQkJRUxFQ09NIENPLiwgTFRELiAgKExBTkVFRCBESVYuKQorMDA5MEZFICAgICAoYmFzZSAxNikJCUVMRUNPTSBDTy4sIExURC4gIChMQU5FRUQgRElWLikKKwkJCQlTVU1JVE9NTyBGVURPU0FOCisJCQkJSElHQVNISSBJS0VCVUtVUk8gQkxERy4gNkYsIDMtMTMtMiBISUdBUworCQkJCVRPU0hJTUEtS1UgVE9LWU8gMTcwLTAwMTMgCisJCQkJSkFQQU4KKworMDAtOTAtRkYgICAoaGV4KQkJVEVMTFVTIFRFQ0hOT0xPR1kgSU5DLgorMDA5MEZGICAgICAoYmFzZSAxNikJCVRFTExVUyBURUNITk9MT0dZIElOQy4KKwkJCQk0MDk5MCBFTkNZQ0xPUEVESUEgQ0lSLgorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgtMjQ3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTEtRDYgICAoaGV4KQkJQ3J5c3RhbCBHcm91cCwgSW5jLgorMDA5MUQ2ICAgICAoYmFzZSAxNikJCUNyeXN0YWwgR3JvdXAsIEluYy4KKwkJCQk4NTAgS2FjZW5hIFJkLgorCQkJCUhpYXdhdGhhIElBIDUyMjMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05My02MyAgIChoZXgpCQlVbmktTGluayBUZWNobm9sb2d5IENvLiwgTHRkLgorMDA5MzYzICAgICAoYmFzZSAxNikJCVVuaS1MaW5rIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNy01LCBOby42NiwgU2VjLjIsIE5hbi1LYW4gUmQuLCBMdS1DaHUgSHNpYW5nLAorCQkJCVRhb3l1YW4gIDMzOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTctRkYgICAoaGV4KQkJSGVpbWFubiBTZW5zb3IgR21iSAorMDA5N0ZGICAgICAoYmFzZSAxNikJCUhlaW1hbm4gU2Vuc29yIEdtYkgKKwkJCQlHcmVuenN0cmFzc2UgMjIKKwkJCQlEcmVzZGVuIFNhY2hzZW4gMDExMDkKKwkJCQlHRVJNQU5ZCisKKzAwLTlELThFICAgKGhleCkJCUNBUkRJQUMgUkVDT1JERVJTLCBJTkMuCiswMDlEOEUgICAgIChiYXNlIDE2KQkJQ0FSRElBQyBSRUNPUkRFUlMsIElOQy4KKwkJCQkzNCBTQ0FSQk9STyBST0FECisJCQkJTE9ORE9OICBONCA0TCBVCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC0wMCAgIChoZXgpCQlDRU5USUxMSU9OIE5FVFdPUktTLCBJTkMuCiswMEEwMDAgICAgIChiYXNlIDE2KQkJQ0VOVElMTElPTiBORVRXT1JLUywgSU5DLgorCQkJCTM1OSBSQVZFTkRBTEUgRFJJVkUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0wMSAgIChoZXgpCQlEUlMgU2lnbmFsIFNvbHV0aW9ucworMDBBMDAxICAgICAoYmFzZSAxNikJCURSUyBTaWduYWwgU29sdXRpb25zCisJCQkJNzAwIFF1aW5jZSBPcmNoYXJkIFJvYWQKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzgtMTc5NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMDIgICAoaGV4KQkJTEVFRFMgJiBOT1JUSFJVUCBBVVNUUkFMSUEgUFRZIExURAorMDBBMDAyICAgICAoYmFzZSAxNikJCUxFRURTICYgTk9SVEhSVVAgQVVTVFJBTElBIFBUWSBMVEQKKwkJCQlQTyBCT1ggNDAwOQorCQkJCUVJR0hUIE1JTEUgUExBSU5TICBRTEQgNDExMyAgCisJCQkJQVVTVFJBTElBCisKKzAwLUEwLTAzICAgKGhleCkJCVNpZW1lbnMgU3dpdHplcmxhbmQgTHRkLiwgSSBCIFQgSFZQCiswMEEwMDMgICAgIChiYXNlIDE2KQkJU2llbWVucyBTd2l0emVybGFuZCBMdGQuLCBJIEIgVCBIVlAKKwkJCQlCdWlsZGluZyBUZWNobm9sb2dpZXMgRGl2aXNpb24sIEludGVybmF0aW9uYWwgSGVhZHF1YXJ0ZXJzCisJCQkJSSBCVCBIVlAgU1lTIFJEIEVVIEd1YmVsc3RyYXNzZSAyMgorCQkJCVp1ZyAgNjMwMQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLUEwLTA0ICAgKGhleCkJCU5FVFBPV0VSLCBJTkMuCiswMEEwMDQgICAgIChiYXNlIDE2KQkJTkVUUE9XRVIsIElOQy4KKwkJCQk1NDUgT0FLTUVBRCBQQVJLV0FZCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0wNSAgIChoZXgpCQlEQU5JRUwgSU5TVFJVTUVOVFMsIExURC4KKzAwQTAwNSAgICAgKGJhc2UgMTYpCQlEQU5JRUwgSU5TVFJVTUVOVFMsIExURC4KKwkJCQlUUk9MTFNUUkFTU0UgMzMKKwkJCQlDSC04NDAwIFdJTlRFUlRIVVIgIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLUEwLTA2ICAgKGhleCkJCUlNQUdFIERBVEEgUFJPQ0VTU0lORyBTWVNURU0gR1JPVVAKKzAwQTAwNiAgICAgKGJhc2UgMTYpCQlJTUFHRSBEQVRBIFBST0NFU1NJTkcgU1lTVEVNIEdST1VQCisJCQkJU0hJTlRPWU9GVVRBIDItMQorCQkJCUtBU0hJV0EtQ0lUWSwgQ0hJQkEgMjc3ICAKKwkJCQlKQVBBTgorCiswMC1BMC0wNyAgIChoZXgpCQlBUEVYWCBURUNITk9MT0dZLCBJTkMuCiswMEEwMDcgICAgIChiYXNlIDE2KQkJQVBFWFggVEVDSE5PTE9HWSwgSU5DLgorCQkJCTUwNiBTLiAxMVRICisJCQkJUE8gQk9YIDkyOTEKKwkJCQlCT0lTRSBJRCA4MzcwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMDggICAoaGV4KQkJTkVUQ09SUAorMDBBMDA4ICAgICAoYmFzZSAxNikJCU5FVENPUlAKKwkJCQk4IFBMQUNFIE9GIENPTU1FUkNFLS1TVEUgIzIwMAorCQkJCUJST1NTQVJELCBRVUVCRUMKKwkJCQlDQU5BREEgSjRXIDNIMgorCQkJCUNBTkFEQQorCiswMC1BMC0wOSAgIChoZXgpCQlXSElURVRSRUUgTkVUV09SSworMDBBMDA5ICAgICAoYmFzZSAxNikJCVdISVRFVFJFRSBORVRXT1JLCisJCQkJVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMzIwMCBBU0ggU1RSRUVUCisJCQkJUEFMTyBBTFRPIENBIDk0MzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0wQSAgIChoZXgpCQlBaXJzcGFuCiswMEEwMEEgICAgIChiYXNlIDE2KQkJQWlyc3BhbgorCQkJCVVuaXRyb25pY3MgQnVpbGRpbmcsIEFyYXZhIFN0cmVldCwgQWlycG9ydCBDaXR5CisJCQkJUE9CIDE5OQorCQkJCTcwMTAwCisJCQkJSVNSQUVMCisKKzAwLUEwLTBCICAgKGhleCkJCUNPTVBVVEVYIENPLiwgTFRELgorMDBBMDBCICAgICAoYmFzZSAxNikJCUNPTVBVVEVYIENPLiwgTFRELgorCQkJCTQzMi0xMyBHT0pZT0JBU0hJLUhJR0FTSEkgNC1DSFlPTUUKKwkJCQkgSElHQVNISVlBTUFLVSwgS1lPVE8tQ0lUWSA2MDUgIAorCQkJCUpBUEFOCisKKzAwLUEwLTBDICAgKGhleCkJCUtJTkdNQVggVEVDSE5PTE9HWSwgSU5DLgorMDBBMDBDICAgICAoYmFzZSAxNikJCUtJTkdNQVggVEVDSE5PTE9HWSwgSU5DLgorCQkJCTJGTC4sIE5PLiA0LCBMQU5FIDkwMiwgU0VDLjIKKwkJCQlLVUFORyBGVSBSRC4sIEhTSU4tQ0hVIENJVFkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUEwLTBEICAgKGhleCkJCVRIRSBQQU5EQSBQUk9KRUNUCiswMEEwMEQgICAgIChiYXNlIDE2KQkJVEhFIFBBTkRBIFBST0pFQ1QKKwkJCQk1MjAxIENPTkdSRVNTIEFWRS4gLSBDLTEwMAorCQkJCUJPQ0EgUkFUT04gRkwgMzM0ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTBFICAgKGhleCkJCVZJU1VBTCBORVRXT1JLUywgSU5DLgorMDBBMDBFICAgICAoYmFzZSAxNikJCVZJU1VBTCBORVRXT1JLUywgSU5DLgorCQkJCTIwOTIgR0FJVEhFUiBST0FELSBTVEUgIzIyMAorCQkJCVJPQ0tWSUxMRSBNRCAyMDg1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMEYgICAoaGV4KQkJQnJvYWRiYW5kIFRlY2hub2xvZ2llcworMDBBMDBGICAgICAoYmFzZSAxNikJCUJyb2FkYmFuZCBUZWNobm9sb2dpZXMKKwkJCQlQLk8uIEJveCAxMzczNworCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmssIE5DIDI3NzA5LTM3MzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTEwICAgKGhleCkJCVNZU0xPR0lDIERBVEVOVEVDSE5JSyBBRworMDBBMDEwICAgICAoYmFzZSAxNikJCVNZU0xPR0lDIERBVEVOVEVDSE5JSyBBRworCQkJCUJydWdnZXJzdHJhc3NlIDY5CisJCQkJQ0gtNTQwMCBCYWRlbiAgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtQTAtMTEgICAoaGV4KQkJTVVUT0ggSU5EVVNUUklFUyBMVEQuCiswMEEwMTEgICAgIChiYXNlIDE2KQkJTVVUT0ggSU5EVVNUUklFUyBMVEQuCisJCQkJMjUzIEtBTkFHQVdBLUtFTiwKKwkJCQlDSElHQVNBS0ktU0hJIFNISU1PTUFDSElZQSAxLTMtMQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQTAtMTIgICAoaGV4KQkJVGVsY28gU3lzdGVtcywgSW5jLiAKKzAwQTAxMiAgICAgKGJhc2UgMTYpCQlUZWxjbyBTeXN0ZW1zLCBJbmMuIAorCQkJCTE1IEJlcmtzaGlyZSBSb2FkCisJCQkJTWFuc2ZpZWxkLCBNQSAwMjA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMTMgICAoaGV4KQkJVEVMVFJFTkQgTFRELgorMDBBMDEzICAgICAoYmFzZSAxNikJCVRFTFRSRU5EIExURC4KKwkJCQlSSU5HV0FZIEhPVVNFLCBCRUxMIFJPQUQKKwkJCQlEQU5FU0hJTEwsCisJCQkJQkFTSU5HU1RPS0UgSEFNUFNISVJFIFJHMjQgOEYgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLTE0ICAgKGhleCkJCUNTSVIKKzAwQTAxNCAgICAgKGJhc2UgMTYpCQlDU0lSCisJCQkJUC5PLiBCT1ggMzk1CisJCQkJUFJFVE9SSUEgMDAwMQorCQkJCVNPVVRIIEFGUklDQQorCQkJCVNPVVRIIEFGUklDQQorCiswMC1BMC0xNSAgIChoZXgpCQlXWUxFCiswMEEwMTUgICAgIChiYXNlIDE2KQkJV1lMRQorCQkJCTMwMDAgQk9XRVJTIEFWRU5VRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0xNiAgIChoZXgpCQlNSUNST1BPTElTIENPUlAuCiswMEEwMTYgICAgIChiYXNlIDE2KQkJTUlDUk9QT0xJUyBDT1JQLgorCQkJCTIxMjExIE5PUkRIT0ZGIFNUUkVFVAorCQkJCUNIQVRTV09SVEggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTE3ICAgKGhleCkJCUogQiBNIENPUlBPUkFUSU9OCiswMEEwMTcgICAgIChiYXNlIDE2KQkJSiBCIE0gQ09SUE9SQVRJT04KKwkJCQkxMC0xLCBBUkFNT1RPU0hJTiBNQUNISQorCQkJCUhJR0FTSEkgT1NBS0EKKwkJCQk1NzcKKwkJCQlKQVBBTgorCiswMC1BMC0xOCAgIChoZXgpCQlDUkVBVElWRSBDT05UUk9MTEVSUywgSU5DLgorMDBBMDE4ICAgICAoYmFzZSAxNikJCUNSRUFUSVZFIENPTlRST0xMRVJTLCBJTkMuCisJCQkJMTI4IEtFTkRSSUNLIExBTkUKKwkJCQlQSUNBWVVORSBNUyAzOTQ2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMTkgICAoaGV4KQkJTkVCVUxBIENPTlNVTFRBTlRTLCBJTkMuCiswMEEwMTkgICAgIChiYXNlIDE2KQkJTkVCVUxBIENPTlNVTFRBTlRTLCBJTkMuCisJCQkJMTQ0OSBEVU5DQU4gRFJJVkUKKwkJCQlERUxUQSwgQkMgVjRMIDFSNSAgCisJCQkJQ0FOQURBCisKKzAwLUEwLTFBICAgKGhleCkJCUJJTkFSIEVMRUtUUk9OSUsgQUIKKzAwQTAxQSAgICAgKGJhc2UgMTYpCQlCSU5BUiBFTEVLVFJPTklLIEFCCisJCQkJTUFHTkVUVUFHRU4gMTgKKwkJCQlTLTQ2MTM4IFRST0xMSEFUVEFOCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLUEwLTFCICAgKGhleCkJCVBSRU1JU1lTIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEEwMUIgICAgIChiYXNlIDE2KQkJUFJFTUlTWVMgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk0ODY2NCBNSUxNT05UIERSSVZFCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMUMgICAoaGV4KQkJTkFTQ0VOVCBORVRXT1JLUyBDT1JQT1JBVElPTgorMDBBMDFDICAgICAoYmFzZSAxNikJCU5BU0NFTlQgTkVUV09SS1MgQ09SUE9SQVRJT04KKwkJCQkyNzcgTUFJTiBTVFJFRVQsICAzUkQgRkxSLgorCQkJCU1BUkxCT1JPIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0xRCAgIChoZXgpCQlTSVhORVQKKzAwQTAxRCAgICAgKGJhc2UgMTYpCQlTSVhORVQKKwkJCQlQLk8uIEJPWCA3NjcKKwkJCQlDTElGVE9OIFBBUksgTlkgMTIwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTFFICAgKGhleCkJCUVTVCBDT1JQT1JBVElPTgorMDBBMDFFICAgICAoYmFzZSAxNikJCUVTVCBDT1JQT1JBVElPTgorCQkJCTEyMCBST1lBTEwgU1RSRUVUCisJCQkJQ0FOVE9OIE1BIDAyMDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0xRiAgIChoZXgpCQlUUklDT1JEIFNZU1RFTVMsIElOQy4KKzAwQTAxRiAgICAgKGJhc2UgMTYpCQlUUklDT1JEIFNZU1RFTVMsIElOQy4KKwkJCQkyODAwIE5PUlRIV0VTVCBCT1VMRVZBUkQKKwkJCQlQTFlNT1VUSCBNTiA1NTQ0MS0yNjI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0yMCAgIChoZXgpCQlDSVRJQ09SUC9UVEkKKzAwQTAyMCAgICAgKGJhc2UgMTYpCQlDSVRJQ09SUC9UVEkKKwkJCQkzMTAwIE9DRUFOIFBBUksgQkxWRC4KKwkJCQlTQU5UQSBNT05JQ0EgQ0EgOTA0MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTIxICAgKGhleCkJCUdlbmVyYWwgRHluYW1pY3MKKzAwQTAyMSAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIER5bmFtaWNzCisJCQkJQ29tbXVuaWNhdGlvbiBTeXN0ZW1zCisJCQkJNzdBIFN0cmVldAorCQkJCU5lZWRoYW0gSGVpZ2h0cyBNQSAwMjQ5NC0yODkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0yMiAgIChoZXgpCQlDRU5UUkUgRk9SIERFVkVMT1BNRU5UIE9GIEFEVkFOQ0VEIENPTVBVVElORworMDBBMDIyICAgICAoYmFzZSAxNikJCUNFTlRSRSBGT1IgREVWRUxPUE1FTlQgT0YgQURWQU5DRUQgQ09NUFVUSU5HCisJCQkJVU5JVkVSU0lUWSBPRiBQT09OQSBDQU1QVVMKKwkJCQlHQU5FU0ggS0hJTkQsIFB1bmUgLSA0MTEgMDA4ICAKKwkJCQlJTkRJQQorCiswMC1BMC0yMyAgIChoZXgpCQlBUFBMSUVEIENSRUFUSVZFIFRFQ0hOT0xPR1ksIElOQy4KKzAwQTAyMyAgICAgKGJhc2UgMTYpCQlBUFBMSUVEIENSRUFUSVZFIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkyNjI2IExPTUJBUkRZIExBTkUtLVNURS4jMTA3CisJCQkJREFMTEFTIFRYIDc1MjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0yNCAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMEEwMjQgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQkFZRlJPTlQgUExBWkEKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMjUgICAoaGV4KQkJUkVEQ09NIExBQlMgSU5DLgorMDBBMDI1ICAgICAoYmFzZSAxNikJCVJFRENPTSBMQUJTIElOQy4KKwkJCQlPTkUgUkVEQ09NIENFTlRFUgorCQkJCVZJQ1RPUiBOWSAxNDU2NC0wOTk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0yNiAgIChoZXgpCQlURUxEQVQsIFMuQS4KKzAwQTAyNiAgICAgKGJhc2UgMTYpCQlURUxEQVQsIFMuQS4KKwkJCQlQQVJRVUUgVEVDTk9MT0dJQ08gTUFEUklECisJCQkJMjg3NjAgVEFDUyBDQU4gVE9TIChNQURSSUQpICAKKwkJCQlTUEFJTgorCiswMC1BMC0yNyAgIChoZXgpCQlGSVJFUE9XRVIgU1lTVEVNUywgSU5DLgorMDBBMDI3ICAgICAoYmFzZSAxNikJCUZJUkVQT1dFUiBTWVNURU1TLCBJTkMuCisJCQkJMTkwIElOREVQRU5ERU5DRSBEUklWRQorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTI4ICAgKGhleCkJCUNPTk5FUiBQRVJJUEhFUkFMUworMDBBMDI4ICAgICAoYmFzZSAxNikJCUNPTk5FUiBQRVJJUEhFUkFMUworCQkJCTMwNjEgWkFOS0VSIFJPQUQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0yMTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0yOSAgIChoZXgpCQlDT1VMVEVSIENPUlBPUkFUSU9OCiswMEEwMjkgICAgIChiYXNlIDE2KQkJQ09VTFRFUiBDT1JQT1JBVElPTgorCQkJCTExODAwIFMuVy4gMTQ3VEggQVZFLgorCQkJCU1JQU1JIEZMIDMzMTk2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0yQSAgIChoZXgpCQlUUkFOQ0VMTCBTWVNURU1TCiswMEEwMkEgICAgIChiYXNlIDE2KQkJVFJBTkNFTEwgU1lTVEVNUworCQkJCTMxODAgREUgTEEgQ1JVWiBCTFZELi1TVEUjMjAwCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQtMjQwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMkIgICAoaGV4KQkJVFJBTlNJVElPTlMgUkVTRUFSQ0ggQ09SUC4KKzAwQTAyQiAgICAgKGJhc2UgMTYpCQlUUkFOU0lUSU9OUyBSRVNFQVJDSCBDT1JQLgorCQkJCVNIRUxURVIgUk9DSyBMQU5FCisJCQkJREFOQlVSWSBDVCAwNjgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMkMgICAoaGV4KQkJaW50ZXJXQVZFIENvbW11bmljYXRpb25zCiswMEEwMkMgICAgIChiYXNlIDE2KQkJaW50ZXJXQVZFIENvbW11bmljYXRpb25zCisJCQkJNjU2IEJBSVIgSVNMQU5EIEJMVkQuLVNURS4jMTA4CisJCQkJUkVEV09PRCBDSVRZIENBIDk0MDYzLTI3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTJEICAgKGhleCkJCTEzOTQgVHJhZGUgQXNzb2NpYXRpb24KKzAwQTAyRCAgICAgKGJhc2UgMTYpCQkxMzk0IFRyYWRlIEFzc29jaWF0aW9uCisJCQkJMzkyNSBXRVNUIEJSQUtFUiBMQU5FCisJCQkJQVVTVElOIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0yRSAgIChoZXgpCQlCUkFORCBDT01NVU5JQ0FUSU9OUywgTFRELgorMDBBMDJFICAgICAoYmFzZSAxNikJCUJSQU5EIENPTU1VTklDQVRJT05TLCBMVEQuCisJCQkJRU5URVJQUklTRSBIT1VTRSwgQ0hJVkVSUyBXQVksCisJCQkJSElTVE9OLCBDQU1CUklER0UgQ0I0IDRaUiAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtMkYgICAoaGV4KQkJUElSRUxMSSBDQVZJCiswMEEwMkYgICAgIChiYXNlIDE2KQkJUElSRUxMSSBDQVZJCisJCQkJVklBTEUgU0FSQ0EgMjIyCisJCQkJMjAxMjYgTUlMQU4gIAorCQkJCUlUQUxZCisKKzAwLUEwLTMwICAgKGhleCkJCUNBUFRPUiBOVi9TQQorMDBBMDMwICAgICAoYmFzZSAxNikJCUNBUFRPUiBOVi9TQQorCQkJCURFIEhFTkUgMTMKKwkJCQlCLTE3ODAgV0VNTUVMCisJCQkJQkVMR0lVTQorCiswMC1BMC0zMSAgIChoZXgpCQlIQVpFTFRJTkUgQ09SUE9SQVRJT04sIE1TIDEtMTcKKzAwQTAzMSAgICAgKGJhc2UgMTYpCQlIQVpFTFRJTkUgQ09SUE9SQVRJT04sIE1TIDEtMTcKKwkJCQk0NTAgRS4gUFVMQVNLSSBST0FECisJCQkJR1JFRU5MQVdOIE5ZIDExNzQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0zMiAgIChoZXgpCQlHRVMgU0lOR0FQT1JFIFBURS4gTFRELgorMDBBMDMyICAgICAoYmFzZSAxNikJCUdFUyBTSU5HQVBPUkUgUFRFLiBMVEQuCisJCQkJMTQgU1VOR0VJIEtBRFVUIEFWRU5VRQorCQkJCVNJTkdBUE9SRSAyNTcyCisJCQkJU0lOR0FQT1JFCisKKzAwLUEwLTMzICAgKGhleCkJCWltYyBNZUJzeXN0ZW1lIEdtYkgKKzAwQTAzMyAgICAgKGJhc2UgMTYpCQlpbWMgTWVCc3lzdGVtZSBHbWJICisJCQkJVk9MVEFTVFJBU1NFIDUKKwkJCQlELTEzMzU1IEJFUkxJTiAgCisJCQkJR0VSTUFOWQorCiswMC1BMC0zNCAgIChoZXgpCQlBWEVMCiswMEEwMzQgICAgIChiYXNlIDE2KQkJQVhFTAorCQkJCTE2LCBBVkVOVUUgRFUgUVVFQkVDCisJCQkJWi5BLiBDT1VSVEFCT0VVRiA5MTk2MiBMRVMgVUxJUworCQkJCUZSQU5DRQorCiswMC1BMC0zNSAgIChoZXgpCQlDWUxJTksgQ09SUE9SQVRJT04KKzAwQTAzNSAgICAgKGJhc2UgMTYpCQlDWUxJTksgQ09SUE9SQVRJT04KKwkJCQkzMTMxIEpBWSBTVFJFRVQKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMzYgICAoaGV4KQkJQVBQTElFRCBORVRXT1JLIFRFQ0hOT0xPR1kKKzAwQTAzNiAgICAgKGJhc2UgMTYpCQlBUFBMSUVEIE5FVFdPUksgVEVDSE5PTE9HWQorCQkJCTMxOSBMSVRUTEVUT04gUk9BRC0tU1RFICMxMDEKKwkJCQlXRVNURk9SRCBNQSAwMTg4Ni00MTMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0zNyAgIChoZXgpCQlNaW5kcmF5IERTIFVTQSwgSW5jLgorMDBBMDM3ICAgICAoYmFzZSAxNikJCU1pbmRyYXkgRFMgVVNBLCBJbmMuCisJCQkJODAwIE1hY2FydGh1ciBCbHZkLgorCQkJCU1haHdhaCBOSiAwNzQzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMzggICAoaGV4KQkJRU1BSUwgRUxFQ1RST05JQ1MKKzAwQTAzOCAgICAgKGJhc2UgMTYpCQlFTUFJTCBFTEVDVFJPTklDUworCQkJCVAuTy4gQk9YIDE1NAorCQkJCU1PT1JPT0xCQVJLLCAzMTM4ICAKKwkJCQlBVVNUUkFMSUEKKworMDAtQTAtMzkgICAoaGV4KQkJUk9TUyBURUNITk9MT0dZLCBJTkMuCiswMEEwMzkgICAgIChiYXNlIDE2KQkJUk9TUyBURUNITk9MT0dZLCBJTkMuCisJCQkJNTMxNiBIV1kgMjkwIFdFU1QgLSBTVEUuICM1MDAKKwkJCQlBVVNUSU4gVFggNzg3MzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTNBICAgKGhleCkJCUtVQk9URUsgQ09SUE9SQVRJT04KKzAwQTAzQSAgICAgKGJhc2UgMTYpCQlLVUJPVEVLIENPUlBPUkFUSU9OCisJCQkJNTYgTklTSElBS0VUQS1DSE8sIEhJR0FTSElLVUpPCisJCQkJTUlOQU1JLUtVLCBLWU9UTyA2MDEKKwkJCQlKQVBBTgorCiswMC1BMC0zQiAgIChoZXgpCQlUT1NISU4gRUxFQ1RSSUMgQ08uLCBMVEQuCiswMEEwM0IgICAgIChiYXNlIDE2KQkJVE9TSElOIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTNGTC4gUklWRVItU1RPTkUgM1JELiBCTEcuMjM0CisJCQkJTUlaT05PS1VDSEksIFRBS0FUU1UtS1YsIEtBV0FTQUtJLVNISSwKKwkJCQkyMTMgSkFQQU4KKwkJCQlKQVBBTgorCiswMC1BMC0zQyAgIChoZXgpCQlFRyZHIE5VQ0xFQVIgSU5TVFJVTUVOVFMKKzAwQTAzQyAgICAgKGJhc2UgMTYpCQlFRyZHIE5VQ0xFQVIgSU5TVFJVTUVOVFMKKwkJCQkxMDAgTUlETEFORCBST0FECisJCQkJT0FLIFJJREdFIFROIDM3ODMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0zRCAgIChoZXgpCQlPUFRPLTIyCiswMEEwM0QgICAgIChiYXNlIDE2KQkJT1BUTy0yMgorCQkJCTQzMDQ0IEJVU0lORVNTIFBBUksgRFIuCisJCQkJVEVNRUNVTEEgQ0EgOTI1OTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTNFICAgKGhleCkJCUFUTSBGT1JVTQorMDBBMDNFICAgICAoYmFzZSAxNikJCUFUTSBGT1JVTQorCQkJCVdPUkxEV0lERSBIRUFEUVVBUlRFUlMKKwkJCQkzMDMgVklOVEFHRSBQQVJLIERSSVZFCisJCQkJRk9TVEVSIENJVFkgQ0EgOTQ0MDQtMTEzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtM0YgICAoaGV4KQkJQ09NUFVURVIgU09DSUVUWSBNSUNST1BST0NFU1NPUiAmIE1JQ1JPUFJPQ0VTU09SIFNUQU5EQVJEUyBDCiswMEEwM0YgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgU09DSUVUWSBNSUNST1BST0NFU1NPUiAmIE1JQ1JPUFJPQ0VTU09SIFNUQU5EQVJEUyBDCisJCQkJJSBBUFBMRSBDT01QVVRFUiwgSU5DLgorCQkJCSAxIElORklOSVRFIExPT1AsCisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC00MCAgIChoZXgpCQlBUFBMRSBDT01QVVRFUgorMDBBMDQwICAgICAoYmFzZSAxNikJCUFQUExFIENPTVBVVEVSCisJCQkJMjA2NTAgVkFMTEVZIEdSRUVOIERSSVZFCisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC00MSAgIChoZXgpCQlJTkZJQ09OCiswMEEwNDEgICAgIChiYXNlIDE2KQkJSU5GSUNPTgorCQkJCTIgVGVjaG5vbG9neSBQbGFjZQorCQkJCUUuIFN5cmFjdXNlIE5ZIDEzMDU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC00MiAgIChoZXgpCQlTUFVSIFBST0RVQ1RTIENPUlAuCiswMEEwNDIgICAgIChiYXNlIDE2KQkJU1BVUiBQUk9EVUNUUyBDT1JQLgorCQkJCTkyODggVy4gRU1FUkFMRCBTVFJFRVQKKwkJCQlCT0lTRSBJRCA4MzcwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNDMgICAoaGV4KQkJQU1FUklDQU4gVEVDSE5PTE9HWSBMQUJTLCBJTkMuCiswMEEwNDMgICAgIChiYXNlIDE2KQkJQU1FUklDQU4gVEVDSE5PTE9HWSBMQUJTLCBJTkMuCisJCQkJMTE1IFdFU1QgM1JEIFNUUkVFVAorCQkJCUxPV0VSIExFVkVMCisJCQkJU1RFVkVOU1ZJTExFIE1UIDU5ODcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC00NCAgIChoZXgpCQlOVFQgSVQgQ08uLCBMVEQuCiswMEEwNDQgICAgIChiYXNlIDE2KQkJTlRUIElUIENPLiwgTFRELgorCQkJCQorCQkJCUtBTk5BSS1XSVNFIEJMREcuLCAyLTktMSBGVVJPVS1DSE8sIE5BS0EKKwkJCQkyMzEgCisJCQkJSkFQQU4KKworMDAtQTAtNDUgICAoaGV4KQkJUEhPRU5JWCBDT05UQUNUIEdNQkggJiBDTy4KKzAwQTA0NSAgICAgKGJhc2UgMTYpCQlQSE9FTklYIENPTlRBQ1QgR01CSCAmIENPLgorCQkJCVBPU1RGQUNIIDEzNDEKKwkJCQlELTMyODE5IEJMT01CRVJHCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQTAtNDYgICAoaGV4KQkJU0NJVEVYIENPUlAuIExURC4KKzAwQTA0NiAgICAgKGJhc2UgMTYpCQlTQ0lURVggQ09SUC4gTFRELgorCQkJCVAuTy5CT1ggMzMwCisJCQkJSEVSWkxJQSBCIDQ2MTAzCisJCQkJSVNSQUVMCisKKzAwLUEwLTQ3ICAgKGhleCkJCUlOVEVHUkFURUQgRklUTkVTUyBDT1JQLgorMDBBMDQ3ICAgICAoYmFzZSAxNikJCUlOVEVHUkFURUQgRklUTkVTUyBDT1JQLgorCQkJCTI2IDZUSCBTVFJFRVQKKwkJCQlTVEFNRk9SRCBDVCAwNjkwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNDggICAoaGV4KQkJUVVFU1RFQ0gsIExURC4KKzAwQTA0OCAgICAgKGJhc2UgMTYpCQlRVUVTVEVDSCwgTFRELgorCQkJCUVBU1RIRUFUSCBBVkVOVUUKKwkJCQlXT0tJTkdIQU0KKwkJCQlCRVJLUywgUkcxMSAyUFAgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLTQ5ICAgKGhleCkJCURJR0lURUNIIElORFVTVFJJRVMsIElOQy4KKzAwQTA0OSAgICAgKGJhc2UgMTYpCQlESUdJVEVDSCBJTkRVU1RSSUVTLCBJTkMuCisJCQkJUE8gQk9YIDIyNjcKKwkJCQk1NSBLRU5PU0lBIEFWRU5VRQorCQkJCURBTkJVUlkgQ1QgMDY4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTRBICAgKGhleCkJCU5JU1NISU4gRUxFQ1RSSUMgQ08uLCBMVEQuCiswMEEwNEEgICAgIChiYXNlIDE2KQkJTklTU0hJTiBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQk1LCBNRU9UT0dPU0hJLCBNVVRTVVNISSwKKwkJCQlTSElLQVRTVS1DWU8sIE5JU0hJS0FTVUdBSSwKKwkJCQlBSUNISSA0ODEgIAorCQkJCUpBUEFOCisKKzAwLUEwLTRCICAgKGhleCkJCVRGTCBMQU4gSU5DLgorMDBBMDRCICAgICAoYmFzZSAxNikJCVRGTCBMQU4gSU5DLgorCQkJCTlGLCBOTy4gNDk5IENIVU5HIENIRU5HIFJPQUQKKwkJCQlTSElILUxJTiBESVNUUklDVCwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUEwLTRDICAgKGhleCkJCUlOTk9WQVRJVkUgU1lTVEVNUyAmIFRFQ0hOT0xPR0lFUywgSU5DLgorMDBBMDRDICAgICAoYmFzZSAxNikJCUlOTk9WQVRJVkUgU1lTVEVNUyAmIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTQ4NTExIFdBUk0gU1BSSU5HUyBCTFZELgorCQkJCVNVSVRFICAjIDIxMUMKKwkJCQlGUkVNT05UIENBIDk0NTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC00RCAgIChoZXgpCQlFREEgSU5TVFJVTUVOVFMsIElOQy4KKzAwQTA0RCAgICAgKGJhc2UgMTYpCQlFREEgSU5TVFJVTUVOVFMsIElOQy4KKwkJCQk0IFRIT1JOQ0xJRkZFIFBBUksgRFJJVkUKKwkJCQlUT1JPTlRPLCBPTlRBUklPCisJCQkJTTRIIDFIMQorCQkJCUNBTkFEQQorCiswMC1BMC00RSAgIChoZXgpCQlWT0VMS0VSIFRFQ0hOT0xPR0lFUywgSU5DLgorMDBBMDRFICAgICAoYmFzZSAxNikJCVZPRUxLRVIgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMjIgTkVXIEJPU1RPTiBDT1VSVAorCQkJCURBTlZJTExFIENBIDk0NTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC00RiAgIChoZXgpCQlBTUVSSVRFQyBDT1JQLgorMDBBMDRGICAgICAoYmFzZSAxNikJCUFNRVJJVEVDIENPUlAuCisJCQkJNzYwIEFSUk9XIEdSQU5EIENJUkNMRQorCQkJCUNPVklOQSBDQSA5MTcyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNTAgICAoaGV4KQkJQ1lQUkVTUyBTRU1JQ09ORFVDVE9SCiswMEEwNTAgICAgIChiYXNlIDE2KQkJQ1lQUkVTUyBTRU1JQ09ORFVDVE9SCisJCQkJMzkwMSBOT1JUSCBGSVJTVCBTVFJFRVQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNTEgICAoaGV4KQkJQU5HSUEgQ09NTVVOSUNBVElPTlMuIElOQy4KKzAwQTA1MSAgICAgKGJhc2UgMTYpCQlBTkdJQSBDT01NVU5JQ0FUSU9OUy4gSU5DLgorCQkJCTQ0MSBFQVNUIEJBWSBCTFZELgorCQkJCVBST1ZPIFVUQUggODQ2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTUyICAgKGhleCkJCVNUQU5JTElURSBFTEVDVFJPTklDUyBQVFkuIExURAorMDBBMDUyICAgICAoYmFzZSAxNikJCVNUQU5JTElURSBFTEVDVFJPTklDUyBQVFkuIExURAorCQkJCTQyNCwgTEFORSBDT1ZFIFJPQUQKKwkJCQlOT1JUSCBSWURFIE5TVyAyMTEzICAKKwkJCQlBVVNUUkFMSUEKKworMDAtQTAtNTMgICAoaGV4KQkJQ09NUEFDVCBERVZJQ0VTLCBJTkMuCiswMEEwNTMgICAgIChiYXNlIDE2KQkJQ09NUEFDVCBERVZJQ0VTLCBJTkMuCisJCQkJMTY3OTUgTEFSSyBBVkVOVUUKKwkJCQlMT1MgR0FUT1MgQ0EgOTUwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTU0ICAgKGhleCkJCVBSSVZBVEUKKzAwQTA1NCAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtQTAtNTUgICAoaGV4KQkJRGF0YSBEZXZpY2UgQ29ycG9yYXRpb24KKzAwQTA1NSAgICAgKGJhc2UgMTYpCQlEYXRhIERldmljZSBDb3Jwb3JhdGlvbgorCQkJCTEwNSBXaWxidXIgUGxhY2UKKwkJCQlCb2hlbWlhIE5ZIDExNzE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC01NiAgIChoZXgpCQlNSUNST1BST1NTCiswMEEwNTYgICAgIChiYXNlIDE2KQkJTUlDUk9QUk9TUworCQkJCTMzLCBSVUUgR0FOVE9JUworCQkJCTU5MDAwIExJTExFICAKKwkJCQlGUkFOQ0UKKworMDAtQTAtNTcgICAoaGV4KQkJTEFOQ09NIFN5c3RlbXMgR21iSAorMDBBMDU3ICAgICAoYmFzZSAxNikJCUxBTkNPTSBTeXN0ZW1zIEdtYkgKKwkJCQlBZGVuYXVlciBTdHIuMjAgL0IyCisJCQkJRC01MjA3MCBBQUNIRU4KKwkJCQlX/HJzZWxlbiAgNTIxNDYKKwkJCQlHRVJNQU5ZCisKKzAwLUEwLTU4ICAgKGhleCkJCUdMT1JZLCBMVEQuCiswMEEwNTggICAgIChiYXNlIDE2KQkJR0xPUlksIExURC4KKwkJCQkxLTMtMSBTSElNT1RFTk8sIEhJTUVKSQorCQkJCUhZT0dPIFBSRUYuIDY3MCAgCisJCQkJSkFQQU4KKworMDAtQTAtNTkgICAoaGV4KQkJSEFNSUxUT04gSEFMTE1BUksKKzAwQTA1OSAgICAgKGJhc2UgMTYpCQlIQU1JTFRPTiBIQUxMTUFSSworCQkJCTIxMDUgTFVORFkgQVZFTlVFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTVBICAgKGhleCkJCUtPRkFYIElNQUdFIFBST0RVQ1RTCiswMEEwNUEgICAgIChiYXNlIDE2KQkJS09GQVggSU1BR0UgUFJPRFVDVFMKKwkJCQkzIEpFTk5FUiBTVFJFRVQKKwkJCQlJUlZJTkUgQ0EgOTI3MTgtMzgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNUIgICAoaGV4KQkJTUFSUVVJUCwgSU5DLgorMDBBMDVCICAgICAoYmFzZSAxNikJCU1BUlFVSVAsIElOQy4KKwkJCQkxMjQ1IEUuIFdBU0hJTkdUT04gQVZFLgorCQkJCU1BRElTT04gV0kgNTM3MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTVDICAgKGhleCkJCUlOVkVOVE9SWSBDT05WRVJTSU9OLCBJTkMuLworMDBBMDVDICAgICAoYmFzZSAxNikJCUlOVkVOVE9SWSBDT05WRVJTSU9OLCBJTkMuLworCQkJCU5FS09URUNIIERJVklTSU9OCisJCQkJMTAyIFRJREUgTUlMTCBST0FEIC1TVUlURSAjIDYKKwkJCQlIQU1QVE9OIE5IIDAzODQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC01RCAgIChoZXgpCQlDUyBDT01QVVRFUiBTWVNURU1FIEdtYkgKKzAwQTA1RCAgICAgKGJhc2UgMTYpCQlDUyBDT01QVVRFUiBTWVNURU1FIEdtYkgKKwkJCQlJU0FSU1RSQVNTRSAzLAorCQkJCTgyMDY1IEJBSUVSQlJVTk4gIAorCQkJCUdFUk1BTlkKKworMDAtQTAtNUUgICAoaGV4KQkJTVlSSUFEIExPR0lDIElOQy4KKzAwQTA1RSAgICAgKGJhc2UgMTYpCQlNWVJJQUQgTE9HSUMgSU5DLgorCQkJCTExMDkgU1BSSU5HIFNUUkVFVAorCQkJCVNJTFZFUiBTUFJJTkcgTUQgMjA5MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTVGICAgKGhleCkJCUJURyBFbGVjdHJvbmljcyBEZXNpZ24gQlYKKzAwQTA1RiAgICAgKGJhc2UgMTYpCQlCVEcgRWxlY3Ryb25pY3MgRGVzaWduIEJWCisJCQkJUC5PLiBCb3ggMTU0MworCQkJCTMyNjAKKwkJCQlCQSBPdWQgQmVpamVybGFuZCAgCisJCQkJTkVUSEVSTEFORFMKKworMDAtQTAtNjAgICAoaGV4KQkJQUNFUiBQRVJJUEhFUkFMUywgSU5DLgorMDBBMDYwICAgICAoYmFzZSAxNikJCUFDRVIgUEVSSVBIRVJBTFMsIElOQy4KKwkJCQk5RiwgMTM1IENISUFOIEtVTyBOLiBSRC4gU0VDIDIKKwkJCQlUQUlQRUksICAxMDQ3OQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQTAtNjEgICAoaGV4KQkJUFVSSVRBTiBCRU5ORVRUCiswMEEwNjEgICAgIChiYXNlIDE2KQkJUFVSSVRBTiBCRU5ORVRUCisJCQkJMjIwMCBGQVJBREFZIEFWRU5VRQorCQkJCUNBUkxTQkFEIENBIDkyMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC02MiAgIChoZXgpCQlBRVMgUFJPREFUQQorMDBBMDYyICAgICAoYmFzZSAxNikJCUFFUyBQUk9EQVRBCisJCQkJMjQ5IEJBTENBVFRBIFJPQUQKKwkJCQlCQUxDQVRUQQorCQkJCVdFU1RFUk4gQVVTVFJBTElBIDYwMjEKKwkJCQlBVVNUUkFMSUEKKworMDAtQTAtNjMgICAoaGV4KQkJSlJMIFNZU1RFTVMsIElOQy4KKzAwQTA2MyAgICAgKGJhc2UgMTYpCQlKUkwgU1lTVEVNUywgSU5DLgorCQkJCTgzMDUgSFdZIDcxIFdFU1QKKwkJCQlBVVNUSU4gVFggNzg3MzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTY0ICAgKGhleCkJCUtWQi9BTkFMRUNUCiswMEEwNjQgICAgIChiYXNlIDE2KQkJS1ZCL0FOQUxFQ1QKKwkJCQk5NDIwIEpFUk9OSU1PIFJPQUQKKwkJCQlJUlZJTkUgQ0EgOTI3MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTY1ICAgKGhleCkJCVN5bWFudGVjIENvcnBvcmF0aW9uCiswMEEwNjUgICAgIChiYXNlIDE2KQkJU3ltYW50ZWMgQ29ycG9yYXRpb24KKwkJCQkyMDMzMCBTdGV2ZW5zIENyZWVrIEJsdmQuCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC02NiAgIChoZXgpCQlJU0EgQ08uLCBMVEQuCiswMEEwNjYgICAgIChiYXNlIDE2KQkJSVNBIENPLiwgTFRELgorCQkJCVNISU5KVUtVIExBTUJEQVggQkxERy4gNUYuLAorCQkJCTItNC0xMiBPS1VCTywgU0hJTkpVS1UtS1UgVE9LWU8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUEwLTY3ICAgKGhleCkJCU5FVFdPUksgU0VSVklDRVMgR1JPVVAKKzAwQTA2NyAgICAgKGJhc2UgMTYpCQlORVRXT1JLIFNFUlZJQ0VTIEdST1VQCisJCQkJMzQyMSBDT01NSVNTSU9OIENPVVJULVNURSAjMjAyCisJCQkJV09PREJSSURHRSBWQSAyMjE5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNjggICAoaGV4KQkJQkhQIExJTUlURUQKKzAwQTA2OCAgICAgKGJhc2UgMTYpCQlCSFAgTElNSVRFRAorCQkJCUdQTyBCT1ggODZBCisJCQkJTUVMQk9VUk5FIDMwMDEgVklDVE9SSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtQTAtNjkgICAoaGV4KQkJU3ltbWV0cmljb20sIEluYy4KKzAwQTA2OSAgICAgKGJhc2UgMTYpCQlTeW1tZXRyaWNvbSwgSW5jLgorCQkJCTM3NTAgV2VzdHdpbmQgQmx2ZC4KKwkJCQlTYW50YSBSb3NhIENBIDk1NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC02QSAgIChoZXgpCQlWZXJpbGluayBDb3Jwb3JhdGlvbgorMDBBMDZBICAgICAoYmFzZSAxNikJCVZlcmlsaW5rIENvcnBvcmF0aW9uCisJCQkJMTI3IEpldHBsZXggQ2lyY2xlCisJCQkJTWFkaXNvbiBBTCAzNTc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNkIgICAoaGV4KQkJRE1TIERPUlNDSCBNSUtST1NZU1RFTSBHTUJICiswMEEwNkIgICAgIChiYXNlIDE2KQkJRE1TIERPUlNDSCBNSUtST1NZU1RFTSBHTUJICisJCQkJSE9MTUxVRUNLIDEzLTE1CisJCQkJRC0yNDk3MiBTVEVJTkJFUlFLSVJDSEUKKwkJCQlHRVJNQU5ZCisKKzAwLUEwLTZDICAgKGhleCkJCVNISU5ERU5HRU4gRUxFQ1RSSUMgTUZHLiBDTy4sIExURC4KKzAwQTA2QyAgICAgKGJhc2UgMTYpCQlTSElOREVOR0VOIEVMRUNUUklDIE1GRy4gQ08uLCBMVEQuCisJCQkJMTAtMTMsIE1JTkFNSS1DSE8sIEhBTk5PVS1DSVRZCisJCQkJU0FJVEFNQSAzNTcgIAorCQkJCUpPUkRBTgorCiswMC1BMC02RCAgIChoZXgpCQlNQU5ORVNNQU5OIFRBTExZIENPUlBPUkFUSU9OCiswMEEwNkQgICAgIChiYXNlIDE2KQkJTUFOTkVTTUFOTiBUQUxMWSBDT1JQT1JBVElPTgorCQkJCVAuTy4gQk9YIDk3MDE4CisJCQkJS0VOVCBXQSA5ODA2NC05NzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC02RSAgIChoZXgpCQlBVVNUUk9OLCBJTkMuCiswMEEwNkUgICAgIChiYXNlIDE2KQkJQVVTVFJPTiwgSU5DLgorCQkJCVAuTy4gQk9YIDE0NzY2CisJCQkJQVVTVElOIFRYIDc4NzYxLTQ3NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTZGICAgKGhleCkJCVRIRSBBUFBDT04gR1JPVVAsIElOQy4KKzAwQTA2RiAgICAgKGJhc2UgMTYpCQlUSEUgQVBQQ09OIEdST1VQLCBJTkMuCisJCQkJMjMgUklDSE1PTkQgU1RSRUVUCisJCQkJUk9DSEVTVEVSIE5ZIDE0NjA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC03MCAgIChoZXgpCQlDT0FTVENPTQorMDBBMDcwICAgICAoYmFzZSAxNikJCUNPQVNUQ09NCisJCQkJMTE1MSBIQVJCT1IgQkFZIFBBUktXQVkKKwkJCQlBTEFNRURBIENBIDk0NTAyLTY1MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTcxICAgKGhleCkJCVZJREVPIExPVFRFUlkgVEVDSE5PTE9HSUVTLElOQworMDBBMDcxICAgICAoYmFzZSAxNikJCVZJREVPIExPVFRFUlkgVEVDSE5PTE9HSUVTLElOQworCQkJCTIzMTEgU09VVEggN1RIIEFWRU5VRQorCQkJCUJPWkVNQU4gTVQgNTk3MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTcyICAgKGhleCkJCU9WQVRJT04gU1lTVEVNUyBMVEQuCiswMEEwNzIgICAgIChiYXNlIDE2KQkJT1ZBVElPTiBTWVNURU1TIExURC4KKwkJCQlHUkVBVCBIQVNFTEVZIFRSQUQuIEVTVC4KKwkJCQlHUkVBVCBIQVNFTEVZLCAgT1hGT1JEU0hJUkUgT1g5IDdQRgorCQkJCUVOR0xBTkQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtNzMgICAoaGV4KQkJQ09NMjEsIElOQy4KKzAwQTA3MyAgICAgKGJhc2UgMTYpCQlDT00yMSwgSU5DLgorCQkJCTIxMTMgTEFORElOR1MgRFJJVkUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC03NCAgIChoZXgpCQlQRVJDRVBUSU9OIFRFQ0hOT0xPR1kKKzAwQTA3NCAgICAgKGJhc2UgMTYpCQlQRVJDRVBUSU9OIFRFQ0hOT0xPR1kKKwkJCQk0MCBTSEFXTVVUIFJPQUQKKwkJCQlDQU5UT04gTUEgMDIwMjEtMTQwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNzUgICAoaGV4KQkJTUlDUk9OIFRFQ0hOT0xPR1ksIElOQy4KKzAwQTA3NSAgICAgKGJhc2UgMTYpCQlNSUNST04gVEVDSE5PTE9HWSwgSU5DLgorCQkJCTgwMDAgUy4gRmVkZXJhbCBXYXkKKwkJCQlQLk8uIEJveCA2CisJCQkJQm9pc2UgSUQgODM3MDctMDAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNzYgICAoaGV4KQkJQ0FSRFdBUkUgTEFCLCBJTkMuCiswMEEwNzYgICAgIChiYXNlIDE2KQkJQ0FSRFdBUkUgTEFCLCBJTkMuCisJCQkJMjg1IFNPQlJBTlRFIFdBWSwgU1RFLgorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNzcgICAoaGV4KQkJRlVKSVRTVSBORVhJT04sIElOQy4KKzAwQTA3NyAgICAgKGJhc2UgMTYpCQlGVUpJVFNVIE5FWElPTiwgSU5DLgorCQkJCTI4OSBHUkVBVCBST0FECisJCQkJQUNUT04gTUEgMDE3MjAtNDczOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNzggICAoaGV4KQkJTWFyY29uaSBDb21tdW5pY2F0aW9ucworMDBBMDc4ICAgICAoYmFzZSAxNikJCU1hcmNvbmkgQ29tbXVuaWNhdGlvbnMKKwkJCQkxMDAwIEZvcmUgRHJpdmUKKwkJCQlXYXJyZW5kYWxlIFBBIDE1MDg2LTc1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTc5ICAgKGhleCkJCUFMUFMgRUxFQ1RSSUMgKFVTQSksIElOQy4KKzAwQTA3OSAgICAgKGJhc2UgMTYpCQlBTFBTIEVMRUNUUklDIChVU0EpLCBJTkMuCisJCQkJMzU1MyBOT1JUSCAxU1QgU1RSRUVUCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTdBICAgKGhleCkJCUFEVkFOQ0VEIFBFUklQSEVSQUxTIFRFQ0hOT0xPR0lFUywgSU5DLgorMDBBMDdBICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIFBFUklQSEVSQUxTIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCQorCQkJCUtPSklNQSBCVUlMRElORywgMTAzMSBGVUpJU0FXQQorCQkJCUZVSklTQVdBLVNISSwgS0FOQUdBV0EtS0VOIDI1MSAgCisJCQkJSkFQQU4KKworMDAtQTAtN0IgICAoaGV4KQkJREFXTiBDT01QVVRFUiBJTkNPUlBPUkFUSU9OCiswMEEwN0IgICAgIChiYXNlIDE2KQkJREFXTiBDT01QVVRFUiBJTkNPUlBPUkFUSU9OCisJCQkJNiBLRVhVRVlVQU4gU09VVEggUk9BRAorCQkJCVpIT05HIEdVQU4gQ1VOIEJFSUpJTkcgMTAwMDgwCisJCQkJQ0hJTkEKKworMDAtQTAtN0MgICAoaGV4KQkJVE9OWUFORyBOWUxPTiBDTy4sIExURC4KKzAwQTA3QyAgICAgKGJhc2UgMTYpCQlUT05ZQU5HIE5ZTE9OIENPLiwgTFRELgorCQkJCUVMRUNUUk9OSUMgUkVTRUFSQ0ggTEFCCisJCQkJMTgzLCBIT0dFLURPTkcsIERPTkdBTi1HVQorCQkJCUFOWUFORy1DSVRZLCBLWVVOR0tJLURPIDQzMC0wODAgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1BMC03RCAgIChoZXgpCQlTRUVRIFRFQ0hOT0xPR1ksIElOQy4KKzAwQTA3RCAgICAgKGJhc2UgMTYpCQlTRUVRIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk0NzEzMSBCQVlTSURFIFBBUktXQVkKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC03RSAgIChoZXgpCQlBVklEIFRFQ0hOT0xPR1ksIElOQy4KKzAwQTA3RSAgICAgKGJhc2UgMTYpCQlBVklEIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQlNRVRST1BPTElUQU4gVEVDSE5PTE9HWSBQQVJLCisJCQkJT05FIFBBUksgV0VTVAorCQkJCVRFV0tTQlVSWSBNQSAwMTg3NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtN0YgICAoaGV4KQkJR1NNLVNZTlRFTCwgTFRELgorMDBBMDdGICAgICAoYmFzZSAxNikJCUdTTS1TWU5URUwsIExURC4KKwkJCQlWSUNUT1JJQSBXT1JLUywgUVVFRU5TIE1JTEwgUkQKKwkJCQlIVURERVJTRklFTEQgV0VTVCBZT1JLU0hJUkUKKwkJCQlIRDEgM1BHIEVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC04MCAgIChoZXgpCQlTQkUsIEluYy4KKzAwQTA4MCAgICAgKGJhc2UgMTYpCQlTQkUsIEluYy4KKwkJCQk0MDAwIEV4ZWN1dGl2ZSBQYXJrd2F5CisJCQkJU3VpdGUgMjAwCisJCQkJU2FuIFJhbW9uIENBIDk0NTgzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC04MSAgIChoZXgpCQlBTENBVEVMIERBVEEgTkVUV09SS1MKKzAwQTA4MSAgICAgKGJhc2UgMTYpCQlBTENBVEVMIERBVEEgTkVUV09SS1MKKwkJCQkxMjUwMiBTVU5SSVNFIFZBTExFWSBEUklWRQorCQkJCVJFU1RPTiBWQSAyMjA5NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtODIgICAoaGV4KQkJTktUIEVMRUtUUk9OSUsgQS9TCiswMEEwODIgICAgIChiYXNlIDE2KQkJTktUIEVMRUtUUk9OSUsgQS9TCisJCQkJTktUIEFMTEUgODUKKwkJCQlESy0yNjA1IEJST05EQlkKKwkJCQlERU5NQVJLCisKKzAwLUEwLTgzICAgKGhleCkJCUFTSU1NUEhPTlkgVFVSS0VZCiswMEEwODMgICAgIChiYXNlIDE2KQkJQVNJTU1QSE9OWSBUVVJLRVkKKwkJCQlFTEVDVFJPTklDUywgTFRELgorCQkJCSMxNjAuMjYwIC0gNjY1MSBFTE1CUklER0UgV0FZIFJJQ0hNT05EIEIKKwkJCQlWN0MgNE4xCisJCQkJQ0FOQURBCisKKzAwLUEwLTg0ICAgKGhleCkJCURhdGFwbGV4IFB0eSBMdGQKKzAwQTA4NCAgICAgKGJhc2UgMTYpCQlEYXRhcGxleCBQdHkgTHRkCisJCQkJTGV2ZWwgMiwgNzEgRXBwaW5nIFJkLAorCQkJCU5PUlRIICBSWURFIE5TVyAyMTEzCisJCQkJQVVTVFJBTElBCisKKzAwLUEwLTg1ICAgKGhleCkJCVBSSVZBVEUKKzAwQTA4NSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtQTAtODYgICAoaGV4KQkJQU1CRVIgV0FWRSBTWVNURU1TLCBJTkMuCiswMEEwODYgICAgIChiYXNlIDE2KQkJQU1CRVIgV0FWRSBTWVNURU1TLCBJTkMuCisJCQkJNDAzIE1BU1NBQ0hVU0VUVFMgQVZFTlVFCisJCQkJU1VJVEUgIzIwMgorCQkJCUFDVE9OIE1BIDAxNzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC04NyAgIChoZXgpCQlaYXJsaW5rIFNlbWljb25kdWN0b3IgTHRkLgorMDBBMDg3ICAgICAoYmFzZSAxNikJCVphcmxpbmsgU2VtaWNvbmR1Y3RvciBMdGQuCisJCQkJQ2hlbmV5IE1hbm9yLCBTd2luZG9uCisJCQkJV2lsdHNoaXJlIFNOMiAyUVcgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLTg4ICAgKGhleCkJCUVTU0VOVElBTCBDT01NVU5JQ0FUSU9OUworMDBBMDg4ICAgICAoYmFzZSAxNikJCUVTU0VOVElBTCBDT01NVU5JQ0FUSU9OUworCQkJCTQzNzQgQUxFWEFOREVSIEJMVkQuIE5FLVNURQorCQkJCUFMQlVRVUVSUVVFIE5NIDg3MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC04OSAgIChoZXgpCQlYUE9JTlQgVEVDSE5PTE9HSUVTLCBJTkMuCiswMEEwODkgICAgIChiYXNlIDE2KQkJWFBPSU5UIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTkwMiBDTElOVCBNT09SRSBSRC4tU1RFIzEzMgorCQkJCUJPQ0EgUkFUT04gRkwgMzM0ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLThBICAgKGhleCkJCUJST09LVFJPVVQgVEVDSE5PTE9HWSwgSU5DLgorMDBBMDhBICAgICAoYmFzZSAxNikJCUJST09LVFJPVVQgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTE0NCBHT1VMRCBTVFJFRVQtIFNVSVRFICMyMDAKKwkJCQlORUVESEFNIE1BIDAyMTk0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC04QiAgIChoZXgpCQlBU1RPTiBFTEVDVFJPTklDIERFU0lHTlMgTFRELgorMDBBMDhCICAgICAoYmFzZSAxNikJCUFTVE9OIEVMRUNUUk9OSUMgREVTSUdOUyBMVEQuCisJCQkJMTIzLzEyNyBERUVQQ1VUIEJSSURHRSBST0FECisJCQkJREVFUENVVCwgIENBTUJFUkxFWSBTVVJSRVksIEdVMTYgNlNECisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLThDICAgKGhleCkJCU11bHRpTWVkaWEgTEFOcywgSW5jLgorMDBBMDhDICAgICAoYmFzZSAxNikJCU11bHRpTWVkaWEgTEFOcywgSW5jLgorCQkJCTU2MDAgRVhFQ1VUSVZFIENFTlRFUiBEUklWRQorCQkJCVNVSVRFICMzMTIKKwkJCQlDSEFSTE9UVEUgTkMgMjgyMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLThEICAgKGhleCkJCUpBQ09NTyBDT1JQT1JBVElPTgorMDBBMDhEICAgICAoYmFzZSAxNikJCUpBQ09NTyBDT1JQT1JBVElPTgorCQkJCTI2OTAwIEUuIFBJTksgSElMTCBST0FECisJCQkJSU5ERVBFTkRFTkNFIE1PIDY0MDU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC04RSAgIChoZXgpCQlDaGVjayBQb2ludCBTb2Z0d2FyZSBUZWNobm9sb2dpZXMKKzAwQTA4RSAgICAgKGJhc2UgMTYpCQlDaGVjayBQb2ludCBTb2Z0d2FyZSBUZWNobm9sb2dpZXMKKwkJCQk4MzMzIFJpZGdlcG9pbnQgRHIuCisJCQkJU3VpdGUgMTUwCisJCQkJSXJ2aW5nIFRYIDc1MDYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC04RiAgIChoZXgpCQlERVNLTkVUIFNZU1RFTVMsIElOQy4KKzAwQTA4RiAgICAgKGJhc2UgMTYpCQlERVNLTkVUIFNZU1RFTVMsIElOQy4KKwkJCQk4MCBCVVNJTkVTUyBQQVJLIERSSVZFCisJCQkJQVJNT05LIE5ZIDEwNTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC05MCAgIChoZXgpCQlUaW1lU3RlcCBDb3Jwb3JhdGlvbgorMDBBMDkwICAgICAoYmFzZSAxNikJCVRpbWVTdGVwIENvcnBvcmF0aW9uCisJCQkJMzU5IFRFUlJZIEZPWCBEUklWRQorCQkJCUtBTkFUQSwgT05UQVJJTyBLMksgMkU3ICAKKwkJCQlDQU5BREEKKworMDAtQTAtOTEgICAoaGV4KQkJQVBQTElDT00gSU5URVJOQVRJT05BTAorMDBBMDkxICAgICAoYmFzZSAxNikJCUFQUExJQ09NIElOVEVSTkFUSU9OQUwKKwkJCQk0MywgUlVFIE1BWkFHUkFOCisJCQkJNzYzMjAgQ0FVREVCRUMtTEVTLUVMQkVVRgorCQkJCUZSQU5DRQorCiswMC1BMC05MiAgIChoZXgpCQlILiBCT0xMTUFOTiBNQU5VRkFDVFVSRVJTLCBMVEQKKzAwQTA5MiAgICAgKGJhc2UgMTYpCQlILiBCT0xMTUFOTiBNQU5VRkFDVFVSRVJTLCBMVEQKKwkJCQkyNiBWSUNUT1JJQSBXQVkKKwkJCQlCVVJHRVNTIEhJTEwgVy4gU1VTU0VYIFJIIDE1IDlORgorCQkJCUVOR0xBTkQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtOTMgICAoaGV4KQkJQi9FIEFFUk9TUEFDRSwgSW5jLgorMDBBMDkzICAgICAoYmFzZSAxNikJCUIvRSBBRVJPU1BBQ0UsIEluYy4KKwkJCQkxNzQ4MSBSRUQgSElMTAorCQkJCUlSVklORSBDQSA5MjcxNC01NjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC05NCAgIChoZXgpCQlDT01TQVQgQ09SUE9SQVRJT04KKzAwQTA5NCAgICAgKGJhc2UgMTYpCQlDT01TQVQgQ09SUE9SQVRJT04KKwkJCQkyMjMwMCBDT01TQVQgRFJJVkUKKwkJCQlDTEFSS1NCVVJHIE1EIDIwODcxLTk0NzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTk1ICAgKGhleCkJCUFDQUNJQSBORVRXT1JLUywgSU5DLgorMDBBMDk1ICAgICAoYmFzZSAxNikJCUFDQUNJQSBORVRXT1JLUywgSU5DLgorCQkJCTgzMSBXT0JVUk4gU1RSRUVUCisJCQkJV0lMTUlOR1RPTiBNQSAwMTg4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOTYgICAoaGV4KQkJTUlUVU1JIEVMRUNUUklDIENPLiwgTFRELgorMDBBMDk2ICAgICAoYmFzZSAxNikJCU1JVFVNSSBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQk4LTgtMiwgIEtPS1VSWU8tQ0hPCisJCQkJQ0hPRlUtU0hJIFRPS1lPIDE4MiAgCisJCQkJSkFQQU4KKworMDAtQTAtOTcgICAoaGV4KQkJSkMgSU5GT1JNQVRJT04gU1lTVEVNUworMDBBMDk3ICAgICAoYmFzZSAxNikJCUpDIElORk9STUFUSU9OIFNZU1RFTVMKKwkJCQk0NDg3IFRFQ0hOT0xPR1kgRFJJVkUKKwkJCQlGUkVNT05UIENBIDk0NTM4LTYzNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTk4ICAgKGhleCkJCU5ldEFwcAorMDBBMDk4ICAgICAoYmFzZSAxNikJCU5ldEFwcAorCQkJCTQ5NSBFYXN0IEphdmEgRHJpdmUKKwkJCQlTdW5ueXZhbGUsIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC05OSAgIChoZXgpCQlLLU5FVCBMVEQuCiswMEEwOTkgICAgIChiYXNlIDE2KQkJSy1ORVQgTFRELgorCQkJCVNBRERMRVJTIEhPVVNFCisJCQkJMTAwIFJFQURJTkcgUkQuCisJCQkJWUFURUxFWSwgU1VSUkVZIEdVMTcgN1JYICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC05QSAgIChoZXgpCQlOSUhPTiBLT0hERU4gQU1FUklDQQorMDBBMDlBICAgICAoYmFzZSAxNikJCU5JSE9OIEtPSERFTiBBTUVSSUNBCisJCQkJMjQ0NiBEVVBPTlQgRFJJVkUKKwkJCQlJUlZJTkUgQ0EgOTI3MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTlCICAgKGhleCkJCVFQU1ggQ09NTVVOSUNBVElPTlMsIExURC4KKzAwQTA5QiAgICAgKGJhc2UgMTYpCQlRUFNYIENPTU1VTklDQVRJT05TLCBMVEQuCisJCQkJMzMgUklDSEFSRFNPTiBTVFJFRVQKKwkJCQlXRVNUIFBFUlRIIDYwMDUKKwkJCQlBVVNUUkFMSUEKKworMDAtQTAtOUMgICAoaGV4KQkJWHlwbGV4LCBJbmMuCiswMEEwOUMgICAgIChiYXNlIDE2KQkJWHlwbGV4LCBJbmMuCisJCQkJMjUgRk9TVEVSIFNUUkVFVAorCQkJCUxJVFRMRVRPTiBNQSAwMTQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOUQgICAoaGV4KQkJSk9ITkFUSE9OIEZSRUVNQU4gVEVDSE5PTE9HSUVTCiswMEEwOUQgICAgIChiYXNlIDE2KQkJSk9ITkFUSE9OIEZSRUVNQU4gVEVDSE5PTE9HSUVTCisJCQkJUC5PLiBCT1ggODgwMTE0CisJCQkJU0FOIEZSQU5DSVNDTyBDQSA5NDE4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOUUgICAoaGV4KQkJSUNUVgorMDBBMDlFICAgICAoYmFzZSAxNikJCUlDVFYKKwkJCQkxNDYwMCBXSU5DSEVTVEVSIEJMVkQuCisJCQkJTE9TIEdBVE9TIENBIDk1MDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC05RiAgIChoZXgpCQlDT01NVklTSU9OIENPUlAuCiswMEEwOUYgICAgIChiYXNlIDE2KQkJQ09NTVZJU0lPTiBDT1JQLgorCQkJCTUxMCBMT0dVRSBBVkUuCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQTAgICAoaGV4KQkJQ09NUEFDVCBEQVRBLCBMVEQuCiswMEEwQTAgICAgIChiYXNlIDE2KQkJQ09NUEFDVCBEQVRBLCBMVEQuCisJCQkJNTggRElUVE9OIFdBTEsKKwkJCQlDQU1CUklER0UgQ0I1IDhRRSAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtQTEgICAoaGV4KQkJRVBJQyBEQVRBIElOQy4KKzAwQTBBMSAgICAgKGJhc2UgMTYpCQlFUElDIERBVEEgSU5DLgorCQkJCTcyODAgUklWRVIgUk9BRAorCQkJCVJJQ0hNT05ELCAgQi5DLgorCQkJCUNBTkFEQSBWNlggMVg1CisJCQkJQ0FOQURBCisKKzAwLUEwLUEyICAgKGhleCkJCURJR0lDT00gUy5QLkEuCiswMEEwQTIgICAgIChiYXNlIDE2KQkJRElHSUNPTSBTLlAuQS4KKwkJCQlWSUEgVk9MVEEgMzkKKwkJCQkyMTAxMCBDQVJEQU5PIEFMIENBTVBPIChWQSkKKwkJCQlJVEFMWQorCiswMC1BMC1BMyAgIChoZXgpCQlSRUxJQUJMRSBQT1dFUiBNRVRFUlMKKzAwQTBBMyAgICAgKGJhc2UgMTYpCQlSRUxJQUJMRSBQT1dFUiBNRVRFUlMKKwkJCQk0MDAgQkxPU1NPTSBISUxMIFJPQUQKKwkJCQlMT1MgR0FUT1MgQ0EgOTUwMzItNDUxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQTQgICAoaGV4KQkJTUlDUk9TIFNZU1RFTVMsIElOQy4KKzAwQTBBNCAgICAgKGJhc2UgMTYpCQlNSUNST1MgU1lTVEVNUywgSU5DLgorCQkJCTEyMDAwIEJBTFRJTU9SRSBBVkVOVUUKKwkJCQlCRUxUU1ZJTExFIE1EIDIwNzA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1BNSAgIChoZXgpCQlURUtOT1IgTUlDUk9TWVNURU1FLCBJTkMuCiswMEEwQTUgICAgIChiYXNlIDE2KQkJVEVLTk9SIE1JQ1JPU1lTVEVNRSwgSU5DLgorCQkJCTYxNiBDVVJFIEJPSVZJTgorCQkJCUJPSVNCUklBTkQgUVVFQkVDCisJCQkJSjdHIDJBNworCQkJCUNBTkFEQQorCiswMC1BMC1BNiAgIChoZXgpCQlNLkkuIFNZU1RFTVMsIEsuSy4KKzAwQTBBNiAgICAgKGJhc2UgMTYpCQlNLkkuIFNZU1RFTVMsIEsuSy4KKwkJCQkyLTctMTItMzA4IFNhdHN1a2lnYW9rYQorCQkJCUlrZWRhLVNoaSBPc2FrYSA1NjMtMDAyOQorCQkJCUpBUEFOCisKKzAwLUEwLUE3ICAgKGhleCkJCVZPUkFYIENPUlBPUkFUSU9OCiswMEEwQTcgICAgIChiYXNlIDE2KQkJVk9SQVggQ09SUE9SQVRJT04KKwkJCQkxMDMxIEVBU1QgRFVBTkUgQVZFTlVFLCBTVEUgSAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQTggICAoaGV4KQkJUkVORVggQ09SUE9SQVRJT04KKzAwQTBBOCAgICAgKGJhc2UgMTYpCQlSRU5FWCBDT1JQT1JBVElPTgorCQkJCTI3NTAgS0lMTEFSTkVZIERSSVZFCisJCQkJV09PREJSSURHRSBWQSAyMjE5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQTkgICAoaGV4KQkJTkFWVEVMIENPTU1VTklDQVRJT05TIElOQy4KKzAwQTBBOSAgICAgKGJhc2UgMTYpCQlOQVZURUwgQ09NTVVOSUNBVElPTlMgSU5DLgorCQkJCTU1IFJFTkZSRVcgRFJJVkUKKwkJCQlNQVJLSEFNLCBPTlRBUklPIEwzUiA4SDMgIAorCQkJCUNBTkFEQQorCiswMC1BMC1BQSAgIChoZXgpCQlTUEFDRUxBQlMgTUVESUNBTAorMDBBMEFBICAgICAoYmFzZSAxNikJCVNQQUNFTEFCUyBNRURJQ0FMCisJCQkJNTE1MCAyMjAgQXZlIFNFCisJCQkJSXNzYXF1YWggV0EgOTgwMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUFCICAgKGhleCkJCU5FVENTIElORk9STUFUSU9OU1RFQ0hOSUsgR01CSAorMDBBMEFCICAgICAoYmFzZSAxNikJCU5FVENTIElORk9STUFUSU9OU1RFQ0hOSUsgR01CSAorCQkJCUtBVEhBUklORU5TVFJBU1NFIDE3LTE4CisJCQkJRC0xMDcxMSBCRVJMSU4sCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQTAtQUMgICAoaGV4KQkJR0lMQVQgU0FURUxMSVRFIE5FVFdPUktTLCBMVEQuCiswMEEwQUMgICAgIChiYXNlIDE2KQkJR0lMQVQgU0FURUxMSVRFIE5FVFdPUktTLCBMVEQuCisJCQkJMjRBIEhBQkFSWkVMIFNUUkVFVAorCQkJCVRFTCBBVklWICA2OTcxMAorCQkJCUlTUkFFTAorCiswMC1BMC1BRCAgIChoZXgpCQlNQVJDT05JIFNQQQorMDBBMEFEICAgICAoYmFzZSAxNikJCU1BUkNPTkkgU1BBCisJCQkJVklBIE5FR1JPTkUsIDFBCisJCQkJMTYxNTMgR0VOT1ZBIENPUk5JR0xJQU5PICAKKwkJCQlJVEFMWQorCiswMC1BMC1BRSAgIChoZXgpCQlOVUNPTSBTWVNURU1TLCBJTkMuCiswMEEwQUUgICAgIChiYXNlIDE2KQkJTlVDT00gU1lTVEVNUywgSU5DLgorCQkJCTlGLTYsIE5PIDQsIExBTkUKKwkJCQk2MDkgQ0hVTkcgSFNJTiBST0FELCBTRUMuIDUsIFNBTiBDSFVORyBDCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUEwLUFGICAgKGhleCkJCVdNUyBJTkRVU1RSSUVTCiswMEEwQUYgICAgIChiYXNlIDE2KQkJV01TIElORFVTVFJJRVMKKwkJCQkzNDAxIE4uIENBTElGT1JOSUEKKwkJCQlDSElDQUdPIElMIDYwNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CMCAgIChoZXgpCQlJLU8gREFUQSBERVZJQ0UsIElOQy4KKzAwQTBCMCAgICAgKGJhc2UgMTYpCQlJLU8gREFUQSBERVZJQ0UsIElOQy4KKwkJCQkyNC0xLCBTQUtVUkFEQS1NQUNISQorCQkJCUtBTkFaQVdBLCBJU0hJS0FXQSA5MjAgIAorCQkJCUpBUEFOCisKKzAwLUEwLUIxICAgKGhleCkJCUZJUlNUIFZJUlRVQUwgQ09SUE9SQVRJT04KKzAwQTBCMSAgICAgKGJhc2UgMTYpCQlGSVJTVCBWSVJUVUFMIENPUlBPUkFUSU9OCisJCQkJMzM5MyBPQ1RBVklVUyBEUi4tU1RFLiMgMTAyCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUIyICAgKGhleCkJCVNISU1BIFNFSUtJCiswMEEwQjIgICAgIChiYXNlIDE2KQkJU0hJTUEgU0VJS0kKKwkJCQk4NSwgU0FLQVRBIFdBS0FZQU1BLUNJVFkKKwkJCQlXQUtBWUFNQSA2NDEKKwkJCQlKQVBBTgorCiswMC1BMC1CMyAgIChoZXgpCQlaWUtST05JWAorMDBBMEIzICAgICAoYmFzZSAxNikJCVpZS1JPTklYCisJCQkJNzI0OCBTT1VUSCBUVUNTT04gV0FZCisJCQkJRU5HTEVXT09EIENPIDgwMTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CNCAgIChoZXgpCQlURVhBUyBNSUNST1NZU1RFTVMsIElOQy4KKzAwQTBCNCAgICAgKGJhc2UgMTYpCQlURVhBUyBNSUNST1NZU1RFTVMsIElOQy4KKwkJCQk1OTU5IENPUlBPUkFURSBEUklWRQorCQkJCUhPVVNUT04gVFggNzcwMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUI1ICAgKGhleCkJCTNIIFRFQ0hOT0xPR1kKKzAwQTBCNSAgICAgKGJhc2UgMTYpCQkzSCBURUNITk9MT0dZCisJCQkJMzM3NSBTQ09UVCBCTFZELiAjMzM2CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUI2ICAgKGhleCkJCVNBTlJJVFogQVVUT01BVElPTiBDTy4sIExURC4KKzAwQTBCNiAgICAgKGJhc2UgMTYpCQlTQU5SSVRaIEFVVE9NQVRJT04gQ08uLCBMVEQuCisJCQkJNC0yMSBNSU5BTUkgTkFSVVNFCisJCQkJTUFDSElEQSBDSVRZIFRPS1lPICAxOTQKKwkJCQlKQVBBTgorCiswMC1BMC1CNyAgIChoZXgpCQlDT1JEQU5ULCBJTkMuCiswMEEwQjcgICAgIChiYXNlIDE2KQkJQ09SREFOVCwgSU5DLgorCQkJCTExNDAwIENPTU1FUkNFIFBBUksgRFIuCisJCQkJUkVTVE9OIFZBIDIyMDkxLTE1MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUI4ICAgKGhleCkJCVNZTUJJT1MgTE9HSUMgSU5DLgorMDBBMEI4ICAgICAoYmFzZSAxNikJCVNZTUJJT1MgTE9HSUMgSU5DLgorCQkJCTIwMDEgRGFuZmllbGQgQ3QuCisJCQkJRm9ydCBDb2xsaW5zIENPIDgwNTI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1COSAgIChoZXgpCQlFQUdMRSBURUNITk9MT0dZLCBJTkMuCiswMEEwQjkgICAgIChiYXNlIDE2KQkJRUFHTEUgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTY4MDAgT1JBTkdFVEhPUlBFIEFWRS4sIFVOSVQgQQorCQkJCUJVRU5BIFBBUksgQ0EgOTA2MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUJBICAgKGhleCkJCVBBVFRPTiBFTEVDVFJPTklDUyBDTy4KKzAwQTBCQSAgICAgKGJhc2UgMTYpCQlQQVRUT04gRUxFQ1RST05JQ1MgQ08uCisJCQkJNzYyMiBSSUNLRU5CQUNLRVIgRFJJVkUKKwkJCQlHQUlUSEVSU0JVUkcgTUQgMjA4NzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUJCICAgKGhleCkJCUhJTEFOIEdNQkgKKzAwQTBCQiAgICAgKGJhc2UgMTYpCQlISUxBTiBHTUJICisJCQkJSEFJRC1VTkQtTkVVLVNUUkFTU0UgNworCQkJCUQtNzYxMzEgS0FSTFNSVUhFCisJCQkJR0VSTUFOWQorCiswMC1BMC1CQyAgIChoZXgpCQlWSUFTQVQsIElOQ09SUE9SQVRFRAorMDBBMEJDICAgICAoYmFzZSAxNikJCVZJQVNBVCwgSU5DT1JQT1JBVEVECisJCQkJNjE1NSBFbCBDYW1pbm8gUmVhbAorCQkJCUNhcmxzYmFkIENhIDkyMDA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CRCAgIChoZXgpCQlJLVRFQ0ggQ09SUC4KKzAwQTBCRCAgICAgKGJhc2UgMTYpCQlJLVRFQ0ggQ09SUC4KKwkJCQkxMDIwMCBWQUxMRVkgVklFVyBST0FECisJCQkJRURFTiBQUkFJUklFIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CRSAgIChoZXgpCQlJTlRFR1JBVEVEIENJUkNVSVQgU1lTVEVNUywgSU5DLiBDT01NVU5JQ0FUSU9OUyBHUk9VUAorMDBBMEJFICAgICAoYmFzZSAxNikJCUlOVEVHUkFURUQgQ0lSQ1VJVCBTWVNURU1TLCBJTkMuIENPTU1VTklDQVRJT05TIEdST1VQCisJCQkJMTI3MSBQQVJLTU9PUiBBVkVOVUUKKwkJCQlTQU4gSk9TRSBDQSA5NTEyNi0zNDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CRiAgIChoZXgpCQlXSVJFTEVTUyBEQVRBIEdST1VQIE1PVE9ST0xBCiswMEEwQkYgICAgIChiYXNlIDE2KQkJV0lSRUxFU1MgREFUQSBHUk9VUCBNT1RPUk9MQQorCQkJCTEyMDEgRS4gV0lMRVkgUk9BRAorCQkJCVNDSEFVTUJVUkcgSUwgNjAxNzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUMwICAgKGhleCkJCURJR0lUQUwgTElOSyBDT1JQLgorMDBBMEMwICAgICAoYmFzZSAxNikJCURJR0lUQUwgTElOSyBDT1JQLgorCQkJCTIxNyBIVU1CT0xEVCBDT1VSVAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQzEgICAoaGV4KQkJT1JUSVZVUyBNRURJQ0FMIEFCCiswMEEwQzEgICAgIChiYXNlIDE2KQkJT1JUSVZVUyBNRURJQ0FMIEFCCisJCQkJQk9YIDUxMworCQkJCVMtMTgzMjUgVEFCWQorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC1BMC1DMiAgIChoZXgpCQlSLkEuIFNZU1RFTVMgQ08uLCBMVEQuCiswMEEwQzIgICAgIChiYXNlIDE2KQkJUi5BLiBTWVNURU1TIENPLiwgTFRELgorCQkJCTE4NTAtMyBISVJPT0tBTk9NVVJBCisJCQkJU0hJT0pJUkktU0hJLCBOQUdBTU8gMzk5LTA3CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1BMC1DMyAgIChoZXgpCQlVTklDT01QVVRFUiBHTUJICiswMEEwQzMgICAgIChiYXNlIDE2KQkJVU5JQ09NUFVURVIgR01CSAorCQkJCUxJTUJVUkdFUiBTVFJBU1NFIDQ4CisJCQkJRC02MTQ3NiBLUk9OQkVSRyBJLlQuUy4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1BMC1DNCAgIChoZXgpCQlDUklTVElFIEVMRUNUUk9OSUNTIExURC4KKzAwQTBDNCAgICAgKGJhc2UgMTYpCQlDUklTVElFIEVMRUNUUk9OSUNTIExURC4KKwkJCQlCT05EJ1MgTUlMTAorCQkJCVNUT05FSE9VU0UKKwkJCQlHTE9VQ0VTVEVSU0hJUkUgR0wxMCAzUkcgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLUM1ICAgKGhleCkJCVpZWEVMIENPTU1VTklDQVRJT04KKzAwQTBDNSAgICAgKGJhc2UgMTYpCQlaWVhFTCBDT01NVU5JQ0FUSU9OCisJCQkJMk5EIEZMUi4sICA1OCBQQVJLIEFWRU5VRSBJSQorCQkJCVNDSUVOQ0UgQkFTRUQgSU5EVVNUUklBTCBQQVJLCisJCQkJSFNJTkNIVSAzMDA3NyAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1BMC1DNiAgIChoZXgpCQlRVUFMQ09NTSBJTkNPUlBPUkFURUQKKzAwQTBDNiAgICAgKGJhc2UgMTYpCQlRVUFMQ09NTSBJTkNPUlBPUkFURUQKKwkJCQkgNTc3NSBNb3JlaG91c2UgRHIKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUM3ICAgKGhleCkJCVRBRElSQU4gVEVMRUNPTU1VTklDQVRJT05TCiswMEEwQzcgICAgIChiYXNlIDE2KQkJVEFESVJBTiBURUxFQ09NTVVOSUNBVElPTlMKKwkJCQlQLk8uIEJPWCA1MDAKKwkJCQlQRVRBSC1USUtWQSA0OTEwNCAgCisJCQkJSVNSQUVMCisKKzAwLUEwLUM4ICAgKGhleCkJCUFEVFJBTiBJTkMuCiswMEEwQzggICAgIChiYXNlIDE2KQkJQURUUkFOIElOQy4KKwkJCQk5MDEgRVhQTE9SRVIgQkxWRC4KKwkJCQlIVU5UU1ZJTExFIEFMIDM1ODA2LTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUM5ICAgKGhleCkJCUlOVEVMIENPUlBPUkFUSU9OIC0gSEYxLTA2CiswMEEwQzkgICAgIChiYXNlIDE2KQkJSU5URUwgQ09SUE9SQVRJT04gLSBIRjEtMDYKKwkJCQk1MjAwIE5FIEVMQU0gWU9VTkcgUEFSS1dBWQorCQkJCUhJTExTQk9STyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQ0EgICAoaGV4KQkJRlVKSVRTVSBERU5TTyBMVEQuCiswMEEwQ0EgICAgIChiYXNlIDE2KQkJRlVKSVRTVSBERU5TTyBMVEQuCisJCQkJMzA1NSBPUkNIQVJEIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUNCICAgKGhleCkJCUFSSyBURUxFQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwQTBDQiAgICAgKGJhc2UgMTYpCQlBUksgVEVMRUNPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTI0IENBUk1FTiBMQU5FLS1TVUlURQorCQkJCVNBTlRBIE1BUklBIENBIDkzNDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1DQyAgIChoZXgpCQlMSVRFLU9OIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEEwQ0MgICAgIChiYXNlIDE2KQkJTElURS1PTiBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTcyMCBTLiBISUxMVklFVyBEUklWRQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1DRCAgIChoZXgpCQlEUi4gSk9IQU5ORVMgSEVJREVOSEFJTiBHbWJICiswMEEwQ0QgICAgIChiYXNlIDE2KQkJRFIuIEpPSEFOTkVTIEhFSURFTkhBSU4gR21iSAorCQkJCURSLi1KT0hBTk5FUy1IRUlERU5IQUlOIFNUUi4KKwkJCQk4MzMwMSBUUkFVTlJFVVQgIAorCQkJCUdFUk1BTlkKKworMDAtQTAtQ0UgICAoaGV4KQkJRWNlc3NhCiswMEEwQ0UgICAgIChiYXNlIDE2KQkJRWNlc3NhCisJCQkJMjgwMCBDYW1wdXMgRHJpdmUgCisJCQkJU3VpdGUgMTQwCisJCQkJUGx5bW91dGggTU4gNTU0NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUNGICAgKGhleCkJCVNPVEFTLCBJTkMuCiswMEEwQ0YgICAgIChiYXNlIDE2KQkJU09UQVMsIElOQy4KKwkJCQkyIFJFU0VBUkNIIFBMQUNFLCBTVEUuCisJCQkJUk9DS1ZJTExFIE1EIDIwODUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1EMCAgIChoZXgpCQlURU4gWCBURUNITk9MT0dZLCBJTkMuCiswMEEwRDAgICAgIChiYXNlIDE2KQkJVEVOIFggVEVDSE5PTE9HWSwgSU5DLgorCQkJCTEzMDkxIFBPTkQgU1BSSU5HUyBST0FELCBTdWl0ZSBCLTIwMAorCQkJCUFVU1RJTiBUWCA3ODcyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRDEgICAoaGV4KQkJSU5WRU5URUMgQ09SUE9SQVRJT04KKzAwQTBEMSAgICAgKGJhc2UgMTYpCQlJTlZFTlRFQyBDT1JQT1JBVElPTgorCQkJCUlOVkVOVEVDIEJVSUxESU5HCisJCQkJNjYgSE9VLUtBTkcgU1RSRUVUIFNISS1MSU4gRElTVFJJQ1QsIFRBSQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1BMC1EMiAgIChoZXgpCQlBTExJRUQgVEVMRVNJUyBJTlRFUk5BVElPTkFMIENPUlBPUkFUSU9OCiswMEEwRDIgICAgIChiYXNlIDE2KQkJQUxMSUVEIFRFTEVTSVMgSU5URVJOQVRJT05BTCBDT1JQT1JBVElPTgorCQkJCTk1MCBLSUZFUiBST0FECisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1EMyAgIChoZXgpCQlJTlNURU0gQ09NUFVURVIgU1lTVEVNUywgTFRELgorMDBBMEQzICAgICAoYmFzZSAxNikJCUlOU1RFTSBDT01QVVRFUiBTWVNURU1TLCBMVEQuCisJCQkJV0FMVE9OIElORFVTVFJJQUwgRVNUQVRFCisJCQkJU1RPTkUsIFNUQUZGT1JEU0hJUkUgU1QxNSBPTFQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC1ENCAgIChoZXgpCQlSQURJT0xBTiwgIElOQy4KKzAwQTBENCAgICAgKGJhc2UgMTYpCQlSQURJT0xBTiwgIElOQy4KKwkJCQk0NTQgREVHVUlHTkUgRFJJVkUgLSBTVEUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUQ1ICAgKGhleCkJCVNJRVJSQSBXSVJFTEVTUyBJTkMuCiswMEEwRDUgICAgIChiYXNlIDE2KQkJU0lFUlJBIFdJUkVMRVNTIElOQy4KKwkJCQkxMzgxMSBXaXJlbGVzcyBXYXkKKwkJCQlSSUNITU9ORCBCLkMuIFY2ViAzQTQKKwkJCQlDQU5BREEKKworMDAtQTAtRDYgICAoaGV4KQkJU0JFLCBJTkMuCiswMEEwRDYgICAgIChiYXNlIDE2KQkJU0JFLCBJTkMuCisJCQkJMjMwNSBDYW1pbm8gUmFtb24KKwkJCQlTQU4gUkFNT04gQ0EgOTQ1ODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUQ3ICAgKGhleCkJCUtBU1RFTiBDSEFTRSBBUFBMSUVEIFJFU0VBUkNICiswMEEwRDcgICAgIChiYXNlIDE2KQkJS0FTVEVOIENIQVNFIEFQUExJRUQgUkVTRUFSQ0gKKwkJCQk1MTAwIE9SQklUT1IgRFJJVkUKKwkJCQlNSVNTSVNTQVVHQSwgT05UQVJJTworCQkJCUw0VyA0WjQKKwkJCQlDQU5BREEKKworMDAtQTAtRDggICAoaGV4KQkJU1BFQ1RSQSAtIFRFSworMDBBMEQ4ICAgICAoYmFzZSAxNikJCVNQRUNUUkEgLSBURUsKKwkJCQlPVVRHQU5HIExBTkUKKwkJCQlQSUNLRVJJTkcgTk9SVEggWU9SS1NISVJFCisJCQkJRU5HTEFORCBZMDE4IEZKQQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLUQ5ICAgKGhleCkJCUNPTlZFWCBDT01QVVRFUiBDT1JQT1JBVElPTgorMDBBMEQ5ICAgICAoYmFzZSAxNikJCUNPTlZFWCBDT01QVVRFUiBDT1JQT1JBVElPTgorCQkJCTMwMDAgV0FURVJWSUVXIFBBUktXQVkKKwkJCQlQLk8uIEJPWCA4MzM4NTEKKwkJCQlSSUNIQVJEU09OIFRYIDc1MDgzLTM4NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLURBICAgKGhleCkJCUlOVEVHUkFURUQgU1lTVEVNUyBUZWNobm9sb2d5LCBJbmMuCiswMEEwREEgICAgIChiYXNlIDE2KQkJSU5URUdSQVRFRCBTWVNURU1TIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk0NjAxIFBSRVNJREVOVFMgRFJJVkUKKwkJCQlTVUlURSAjMjEwCisJCQkJTEFOSEFNIE1EIDIwNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1EQiAgIChoZXgpCQlGSVNIRVIgJiBQQVlLRUwgUFJPRFVDVElPTgorMDBBMERCICAgICAoYmFzZSAxNikJCUZJU0hFUiAmIFBBWUtFTCBQUk9EVUNUSU9OCisJCQkJTUFDSElORVJZIExJTUlURUQKKwkJCQlQLk8uIEJPWCA1OC0yMjMsIEdSRUVOTU9VTlQgQVVDS0xBTkQKKwkJCQlORVcgWkVBTEFORAorCiswMC1BMC1EQyAgIChoZXgpCQlPLk4uIEVMRUNUUk9OSUMgQ08uLCBMVEQuCiswMEEwREMgICAgIChiYXNlIDE2KQkJTy5OLiBFTEVDVFJPTklDIENPLiwgTFRELgorCQkJCTMtMjAtMjcsIFRBUlVNSQorCQkJCVNVSVRBLCBPU0FLQSA1NjQgIAorCQkJCUpBUEFOCisKKzAwLUEwLUREICAgKGhleCkJCUFaT05JWCBDT1JQT1JBVElPTgorMDBBMEREICAgICAoYmFzZSAxNikJCUFaT05JWCBDT1JQT1JBVElPTgorCQkJCTkwMCBNSURETEVTRVggVFVSTlBJS0UKKwkJCQlCTERHLgorCQkJCUJJTExFUklDQSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtREUgICAoaGV4KQkJWUFNQUhBIENPUlBPUkFUSU9OCiswMEEwREUgICAgIChiYXNlIDE2KQkJWUFNQUhBIENPUlBPUkFUSU9OCisJCQkJRUxFQ1RST05JQyBERVZJQ0VTIERJVklTSU9OCisJCQkJMjAzIE1BVFNVTk9LSUpJTUEgVE9ZT09LQS1NVVJBIElXQVRBLUdVTgorCQkJCTQzOC0wMQorCQkJCUpBUEFOCisKKzAwLUEwLURGICAgKGhleCkJCVNUUyBURUNITk9MT0dJRVMsIElOQy4KKzAwQTBERiAgICAgKGJhc2UgMTYpCQlTVFMgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTM3NjUgU1QuIENIQVJMRVMgUk9DSyBSRC4KKwkJCQlTVUlURSAjMTA4CisJCQkJQlJJREdFVE9OIE1PIDYzMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1FMCAgIChoZXgpCQlURU5OWVNPTiBURUNITk9MT0dJRVMgUFRZIExURAorMDBBMEUwICAgICAoYmFzZSAxNikJCVRFTk5ZU09OIFRFQ0hOT0xPR0lFUyBQVFkgTFRECisJCQkJMTQgQlVTSU5FU1MgUEFSSyBEUklWRQorCQkJCU5PVFRJTkcgSElMTAorCQkJCVZJQ1RPUklBIC0gMzE2OCAgCisJCQkJQVVTVFJBTElBCisKKzAwLUEwLUUxICAgKGhleCkJCVdFU1RQT1JUIFJFU0VBUkNIIEFTU09DSUFURVMsIElOQy4KKzAwQTBFMSAgICAgKGJhc2UgMTYpCQlXRVNUUE9SVCBSRVNFQVJDSCBBU1NPQ0lBVEVTLCBJTkMuCisJCQkJNjEwMiBBUkxJTkdUT04KKwkJCQlSQVlUT1dOIE1PIDY0MTMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1FMiAgIChoZXgpCQlLZWlzb2t1Z2lrZW4gQ29ycG9yYXRpb24KKzAwQTBFMiAgICAgKGJhc2UgMTYpCQlLZWlzb2t1Z2lrZW4gQ29ycG9yYXRpb24KKwkJCQkyMDIxLTUgSG91c2hha3VqaQorCQkJCVRha2FuZXphd2EtbWFjaGkKKwkJCQlTaGlveWEtZ3VuIFRvY2hpZ2kgMzI5LTEyMzMKKwkJCQlKQVBBTgorCiswMC1BMC1FMyAgIChoZXgpCQlYS0wgU1lTVEVNUyBDT1JQLgorMDBBMEUzICAgICAoYmFzZSAxNikJCVhLTCBTWVNURU1TIENPUlAuCisJCQkJODQyMCAxNTRUSCBBVkUuIE5FCisJCQkJUkVETU9ORCBXQSA5ODA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRTQgICAoaGV4KQkJT1BUSVFVRVNUCiswMEEwRTQgICAgIChiYXNlIDE2KQkJT1BUSVFVRVNUCisJCQkJMjA0OTAgQlVTSU5FU1MgUEFSS1dBWQorCQkJCVdBTE5VVCBDQSA5MTc4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRTUgICAoaGV4KQkJTkhDIENPTU1VTklDQVRJT05TCiswMEEwRTUgICAgIChiYXNlIDE2KQkJTkhDIENPTU1VTklDQVRJT05TCisJCQkJNTQ1MCBDT1RFIERFIExJRVNTRQorCQkJCU1PTlRSRUFMLCBRVUVCRUMgSDRQIDFBNQorCQkJCUNBTkFEQQorCiswMC1BMC1FNiAgIChoZXgpCQlESUFMT0dJQyBDT1JQT1JBVElPTgorMDBBMEU2ICAgICAoYmFzZSAxNikJCURJQUxPR0lDIENPUlBPUkFUSU9OCisJCQkJMTUxNSBST1VURSAxMAorCQkJCVBBUlNJUFBBTlkgTkogMDcwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUU3ICAgKGhleCkJCUNFTlRSQUwgREFUQSBDT1JQT1JBVElPTgorMDBBMEU3ICAgICAoYmFzZSAxNikJCUNFTlRSQUwgREFUQSBDT1JQT1JBVElPTgorCQkJCTE2MDIgTkVXVE9OIERSSVZFCisJCQkJQ0hBTVBBSUdOIElMIDYxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1FOCAgIChoZXgpCQlSRVVURVJTIEhPTERJTkdTIFBMQworMDBBMEU4ICAgICAoYmFzZSAxNikJCVJFVVRFUlMgSE9MRElOR1MgUExDCisJCQkJODUsIEZMRUVUIFNUUkVFVAorCQkJCUxPTkRPTiAgRUM0UCA0QUoKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtRTkgICAoaGV4KQkJRUxFQ1RST05JQyBSRVRBSUxJTkcgU1lTVEVNUyBJTlRFUk5BVElPTkFMCiswMEEwRTkgICAgIChiYXNlIDE2KQkJRUxFQ1RST05JQyBSRVRBSUxJTkcgU1lTVEVNUyBJTlRFUk5BVElPTkFMCisJCQkJMzcyIERBTkJVUlkgUk9BRAorCQkJCVdJTFRPTiBDVCAwNjg5Ny0yNTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1FQSAgIChoZXgpCQlFVEhFUkNPTSBDT1JQLgorMDBBMEVBICAgICAoYmFzZSAxNikJCUVUSEVSQ09NIENPUlAuCisJCQkJNDU5OTAgSE9UQ0hLSVNTIFNULgorCQkJCUZSRUVNT05UIENBIDk0NTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1FQiAgIChoZXgpCQlFbmNvcmUgTmV0d29ya3MsIEluYy4KKzAwQTBFQiAgICAgKGJhc2UgMTYpCQlFbmNvcmUgTmV0d29ya3MsIEluYy4KKwkJCQkzODAwIENvbmNvcmRlIFBhcmt3YXksCisJCQkJU3VpdGUgMTUwMAorCQkJCUNoYW50aWxseSwgVkEgMjAxNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUVDICAgKGhleCkJCVRSQU5TTUlUVE9OIExURC4KKzAwQTBFQyAgICAgKGJhc2UgMTYpCQlUUkFOU01JVFRPTiBMVEQuCisJCQkJU01JU0JZIFJPQUQKKwkJCQlBU0hCWSBERSBMQSBaT1VDSAorCQkJCUxFSUNFU1RFUlNISVJFIExFNjUgMlVHICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC1FRCAgIChoZXgpCQlCcm9va3MgQXV0b21hdGlvbiwgSW5jLgorMDBBMEVEICAgICAoYmFzZSAxNikJCUJyb29rcyBBdXRvbWF0aW9uLCBJbmMuCisJCQkJMTUgRWxpemFiZXRoIERyaXZlCisJCQkJQ2hlbG1zZm9yZCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRUUgICAoaGV4KQkJTkFTSE9CQSBORVRXT1JLUworMDBBMEVFICAgICAoYmFzZSAxNikJCU5BU0hPQkEgTkVUV09SS1MKKwkJCQk5LTExIEdPTERTTUlUSCBTVC4KKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUVGICAgKGhleCkJCUxVQ0lEQVRBIExURC4KKzAwQTBFRiAgICAgKGJhc2UgMTYpCQlMVUNJREFUQSBMVEQuCisJCQkJTFVDSURBVEEgSE9VU0UKKwkJCQlTRUxXWU4gQ0xPU0UsCisJCQkJR1JFQVQgU0hFTEZPUkQgQ0FNQlJJREdFICBDQjIgNUhBIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLUYwICAgKGhleCkJCVRPUk9OVE8gTUlDUk9FTEVDVFJPTklDUyBJTkMuCiswMEEwRjAgICAgIChiYXNlIDE2KQkJVE9ST05UTyBNSUNST0VMRUNUUk9OSUNTIElOQy4KKwkJCQk1MTQ5IEJSQURDTyBCT1VMRVZBUkQKKwkJCQlNSVNTSVNTQVVHQSwgT05UQVJJTworCQkJCUw0VyAyQTYKKwkJCQlDQU5BREEKKworMDAtQTAtRjEgICAoaGV4KQkJTVRJCiswMEEwRjEgICAgIChiYXNlIDE2KQkJTVRJCisJCQkJNDkwNSBFLiBMQSBQQUxNQSBBVkVOVUUKKwkJCQlBTkFIRUlNIENBIDkyODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1GMiAgIChoZXgpCQlJTkZPVEVLIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEEwRjIgICAgIChiYXNlIDE2KQkJSU5GT1RFSyBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTExMSBBTlpBIEJMVkQuLCAjMjAzCisJCQkJQlVSTElOR0FNRSBDQSA5NDAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRjMgICAoaGV4KQkJU1RBVUJMSQorMDBBMEYzICAgICAoYmFzZSAxNikJCVNUQVVCTEkKKwkJCQkxODMgUlVFIERFUyBVU0lORVMKKwkJCQlCUCA3MCBGNzQyMTAgRkFWRVJHRVMKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtQTAtRjQgICAoaGV4KQkJR0UKKzAwQTBGNCAgICAgKGJhc2UgMTYpCQlHRQorCQkJCVctNjU3CisJCQkJMzAwMCBOLiBHUkFORFZJRVcgQkxWRC4KKwkJCQlXQVVLRVNIQSBXSSA1MzE4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRjUgICAoaGV4KQkJUkFER1VBUkQgTFRELgorMDBBMEY1ICAgICAoYmFzZSAxNikJCVJBREdVQVJEIExURC4KKwkJCQk4IEhBTkVDSE9TSEVUIFNUUkVFVAorCQkJCVRFTC1BVklWICA2OTcxMCAgCisJCQkJSVNSQUVMCisKKzAwLUEwLUY2ICAgKGhleCkJCUF1dG9HYXMgU3lzdGVtcyBJbmMuCiswMEEwRjYgICAgIChiYXNlIDE2KQkJQXV0b0dhcyBTeXN0ZW1zIEluYy4KKwkJCQlQLk8uIEJPWCA2OTU3CisJCQkJQUJJT0xFTkUgVFggNzk2MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUY3ICAgKGhleCkJCVYuSSBDT01QVVRFUiBDT1JQLgorMDBBMEY3ICAgICAoYmFzZSAxNikJCVYuSSBDT01QVVRFUiBDT1JQLgorCQkJCTUzMSBFTkNJTklUQVMgQkxWRC0tIzExNAorCQkJCUVOQ0lOSVRBUyBDQSA5MjAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRjggICAoaGV4KQkJU1lNQk9MIFRFQ0hOT0xPR0lFUywgSU5DLgorMDBBMEY4ICAgICAoYmFzZSAxNikJCVNZTUJPTCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkxMTAxIFNPVVRIIFdJTkNIRVNURVIgQkxWRC4KKwkJCQlTVUlURSAgIyBCLTExMAorCQkJCVNBTiBKT1NFIENBIDk1MTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1GOSAgIChoZXgpCQlCSU5URUMgQ09NTVVOSUNBVElPTlMgR01CSAorMDBBMEY5ICAgICAoYmFzZSAxNikJCUJJTlRFQyBDT01NVU5JQ0FUSU9OUyBHTUJICisJCQkJU1VFRFdFU1RQQVJLIDk0CisJCQkJOTA0NDkgTlVFUk5CRVJHICAKKwkJCQlHRVJNQU5ZCisKKzAwLUEwLUZBICAgKGhleCkJCU1hcmNvbmkgQ29tbXVuaWNhdGlvbiBHbWJICiswMEEwRkEgICAgIChiYXNlIDE2KQkJTWFyY29uaSBDb21tdW5pY2F0aW9uIEdtYkgKKwkJCQlHZXJiZXJzdHJhc3NlIDMzCisJCQkJRC03MTUyMiBCYWNua25hbmcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1BMC1GQiAgIChoZXgpCQlUT1JBWSBFTkdJTkVFUklORyBDTy4sIExURC4KKzAwQTBGQiAgICAgKGJhc2UgMTYpCQlUT1JBWSBFTkdJTkVFUklORyBDTy4sIExURC4KKwkJCQkxLTQ1LCBPRSAxLUNIT01FLCBPVFNVIENJVFkKKwkJCQlTSElHQSwKKwkJCQk1MjAtMjEgSkFQQU4KKwkJCQlKQVBBTgorCiswMC1BMC1GQyAgIChoZXgpCQlJTUFHRSBTQ0lFTkNFUywgSU5DLgorMDBBMEZDICAgICAoYmFzZSAxNikJCUlNQUdFIFNDSUVOQ0VTLCBJTkMuCisJCQkJNzUwMCBJTk5PVkFUSU9OIFdBWQorCQkJCU1BU09OIE9IIDQ1MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1GRCAgIChoZXgpCQlTQ0lURVggRElHSVRBTCBQUklOVElORywgSU5DLgorMDBBMEZEICAgICAoYmFzZSAxNikJCVNDSVRFWCBESUdJVEFMIFBSSU5USU5HLCBJTkMuCisJCQkJMzEwMCBSRVNFQVJDSCBCTFZELgorCQkJCURBWVRPTiBPSCA0NTQyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRkUgICAoaGV4KQkJQk9TVE9OIFRFQ0hOT0xPR1ksIElOQy4KKzAwQTBGRSAgICAgKGJhc2UgMTYpCQlCT1NUT04gVEVDSE5PTE9HWSwgSU5DLgorCQkJCTEwMCBRVUFOTkFQT1dJVFQgUEFSS1dBWQorCQkJCVdBS0VGSUVMRCBNQSAwMTg4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRkYgICAoaGV4KQkJVEVMTEFCUyBPUEVSQVRJT05TLCBJTkMuCiswMEEwRkYgICAgIChiYXNlIDE2KQkJVEVMTEFCUyBPUEVSQVRJT05TLCBJTkMuCisJCQkJMTAwMCBSRU1JTkdUT04gQkxWRC4KKwkJCQlCT0xJTkdCUk9PSyAgSUwgIDYwNDQwCisJCQkJNjA0NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUExLURFICAgKGhleCkJCVNoZW5aaGVuIFNoaUh1YSBUZWNobm9sb2d5IENPLixMVEQKKzAwQTFERSAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBTaGlIdWEgVGVjaG5vbG9neSBDTy4sTFRECisJCQkJUm9vbTUwNSw1L0YgVHNpbmdZaSBCdWlsZGluZyxMYW5nU2hhbiAyZWQgUm9hZCxIaWdoLVRlY2ggSW5kdXN0cmlhbCBQYXJrLAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNTIKKwkJCQlDSElOQQorCiswMC1BMi1EQSAgIChoZXgpCQlJTkFUIEdtYkgKKzAwQTJEQSAgICAgKGJhc2UgMTYpCQlJTkFUIEdtYkgKKwkJCQlPc3RlbmRzdHIuIDUwQQorCQkJCU51cmVtYmVyZyBCYXZhcmlhIDkwNDgyCisJCQkJR0VSTUFOWQorCiswMC1BQS0wMCAgIChoZXgpCQlJTlRFTCBDT1JQT1JBVElPTgorMDBBQTAwICAgICAoYmFzZSAxNikJCUlOVEVMIENPUlBPUkFUSU9OCisJCQkJNTIwMCBORSBFTEFNIFlPVU5HIFBBUktXQVkKKwkJCQlISUxMU0JPUk8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUFBLTAxICAgKGhleCkJCUlOVEVMIENPUlBPUkFUSU9OCiswMEFBMDEgICAgIChiYXNlIDE2KQkJSU5URUwgQ09SUE9SQVRJT04KKwkJCQkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUFBLTAyICAgKGhleCkJCUlOVEVMIENPUlBPUkFUSU9OCiswMEFBMDIgICAgIChiYXNlIDE2KQkJSU5URUwgQ09SUE9SQVRJT04KKwkJCQkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUFBLTNDICAgKGhleCkJCU9MSVZFVFRJIFRFTEVDT00gU1BBIChPTFRFQ08pCiswMEFBM0MgICAgIChiYXNlIDE2KQkJT0xJVkVUVEkgVEVMRUNPTSBTUEEgKE9MVEVDTykKKwkJCQkxMDA2MiBNSUxMRVIgQVZFLi1TVEUuIzIwNAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtMDkgICAoaGV4KQkJR3Jhc3MgVmFsbGV5IEdyb3VwCiswMEIwMDkgICAgIChiYXNlIDE2KQkJR3Jhc3MgVmFsbGV5IEdyb3VwCisJCQkJUC5PLiBCb3ggNTk5MDAwCisJCQkJTmV2YWRhIENpdHkgQ0EgOTU5NTktNzkwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtMTcgICAoaGV4KQkJSW5mb0dlYXIgVGVjaG5vbG9neSBDb3JwLgorMDBCMDE3ICAgICAoYmFzZSAxNikJCUluZm9HZWFyIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkyMDU1IFdvb2RzaWRlIFJvYWQKKwkJCQlSZWR3b29kIENpdHkgQ0EgOTQwNjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTE5ICAgKGhleCkJCUNhc2ktUnVzY28KKzAwQjAxOSAgICAgKGJhc2UgMTYpCQlDYXNpLVJ1c2NvCisJCQkJMTE1NSBCcm9rZW4gU291bmQgUGt3eQorCQkJCUJvY2EgUmF0b24gRkwgMzM0OTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTFDICAgKGhleCkJCVdlc3Rwb3J0IFRlY2hub2xvZ2llcworMDBCMDFDICAgICAoYmFzZSAxNikJCVdlc3Rwb3J0IFRlY2hub2xvZ2llcworCQkJCTE1IENhcGVsbGEgQ291cnQsIFVuaXQgMTE2CisJCQkJTmVwZWFuIE9udGFyaW8gCisJCQkJQ0FOQURBCisKKzAwLUIwLTFFICAgKGhleCkJCVJhbnRpYyBMYWJzLCBJbmMuCiswMEIwMUUgICAgIChiYXNlIDE2KQkJUmFudGljIExhYnMsIEluYy4KKwkJCQk3MDIgQnJhem9zLCAgU3VpdGUgIzUwMAorCQkJCUF1c3RpbiBUWCA3ODcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtMkEgICAoaGV4KQkJT1JTWVMgR21iSAorMDBCMDJBICAgICAoYmFzZSAxNikJCU9SU1lTIEdtYkgKKwkJCQlBbSBTdGFkdGdyYWJlbiAyNQorCQkJCUQtODg2NzcgTWFya2RvcmYgIAorCQkJCUdFUk1BTlkKKworMDAtQjAtMkQgICAoaGV4KQkJVmlhR2F0ZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwQjAyRCAgICAgKGJhc2UgMTYpCQlWaWFHYXRlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTc0NSBSb3V0ZSAyMDIvMjA2CisJCQkJU3VpdGUgNQorCQkJCUJyaWRnZXdhdGVyIE5KIDA4ODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC0zMyAgIChoZXgpCQlPQU8gIkl6aGV2c2tpeSByYWRpb3phdm9kIgorMDBCMDMzICAgICAoYmFzZSAxNikJCU9BTyAiSXpoZXZza2l5IHJhZGlvemF2b2QiCisJCQkJMTkgQmF6aXNuYXlhIHN0cmVldAorCQkJCUl6aGV2c2sgVWRtdXJ0IFJlcHVibGljIDQyNjAzNAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC1CMC0zQiAgIChoZXgpCQlIaVEgTmV0d29ya3MKKzAwQjAzQiAgICAgKGJhc2UgMTYpCQlIaVEgTmV0d29ya3MKKwkJCQkyNDc1IEF1Z3VzdGluZSBEcml2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC00OCAgIChoZXgpCQlNYXJjb25pIENvbW11bmljYXRpb25zIEluYy4KKzAwQjA0OCAgICAgKGJhc2UgMTYpCQlNYXJjb25pIENvbW11bmljYXRpb25zIEluYy4KKwkJCQk4NjE2IEZyZWVwb3J0IFBhcmt3YXkKKwkJCQlNUyBBMgorCQkJCUlydmluZyBUWCA3NTA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtNEEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDBCMDRBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC01MiAgIChoZXgpCQlBdGhlcm9zIENvbW11bmljYXRpb25zCiswMEIwNTIgICAgIChiYXNlIDE2KQkJQXRoZXJvcyBDb21tdW5pY2F0aW9ucworCQkJCTU5NTUgVC5HLiBMZWUgQmx2ZCwgU3RlLiA2MDAKKwkJCQlPY2FsYSBGTCAzMjgyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtNjQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDBCMDY0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC02OSAgIChoZXgpCQlIb25ld2VsbCBPeQorMDBCMDY5ICAgICAoYmFzZSAxNikJCUhvbmV3ZWxsIE95CisJCQkJUC5PLiBCb3ggMTY4LCBGSU4tNzgyMDEKKwkJCQlWYXJrYXVzCisJCQkJRklOTEFORAorCiswMC1CMC02RCAgIChoZXgpCQlKb25lcyBGdXR1cmV4IEluYy4KKzAwQjA2RCAgICAgKGJhc2UgMTYpCQlKb25lcyBGdXR1cmV4IEluYy4KKwkJCQkzNzE1IEF0aGVydG9uIFJvYWQKKwkJCQlSb2NrbGluIENBIDk1NzY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC04MCAgIChoZXgpCQlNYW5uZXNtYW5uIElwdWxzeXMgQi5WLgorMDBCMDgwICAgICAoYmFzZSAxNikJCU1hbm5lc21hbm4gSXB1bHN5cyBCLlYuCisJCQkJQm9yZGV3aWprbGFhbiAxOAorCQkJCTI1OTEgWFIgVGhlIEhhZ3VlICAKKwkJCQlORVRIRVJMQU5EUworCiswMC1CMC04NiAgIChoZXgpCQlMb2NTb2Z0IExpbWl0ZWQKKzAwQjA4NiAgICAgKGJhc2UgMTYpCQlMb2NTb2Z0IExpbWl0ZWQKKwkJCQk3IEJyaWdodCBTdHJlZXQKKwkJCQlDbGl0aGVyb2UgTGFuY2FzaGlyZSBCQjcgMU5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQjAtOEUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDBCMDhFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLVNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTkxICAgKGhleCkJCVRyYW5zbWV0YSBDb3JwLgorMDBCMDkxICAgICAoYmFzZSAxNikJCVRyYW5zbWV0YSBDb3JwLgorCQkJCTM5NDAgRnJlZWRvbSBDaXJjbGUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtOTQgICAoaGV4KQkJQWxhcmlzLCBJbmMuCiswMEIwOTQgICAgIChiYXNlIDE2KQkJQWxhcmlzLCBJbmMuCisJCQkJNDczMzggRnJlbW9udCBCb3VsZXZhcmQKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC05QSAgIChoZXgpCQlNb3Jyb3cgVGVjaG5vbG9naWVzIENvcnAuCiswMEIwOUEgICAgIChiYXNlIDE2KQkJTW9ycm93IFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCTIzMDAgVGFsbCBQaW5lcyBEcml2ZQorCQkJCUxhcmdvIEZMIDMzNzcxLTUzNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTlEICAgKGhleCkJCVBvaW50IEdyZXkgUmVzZWFyY2ggSW5jLgorMDBCMDlEICAgICAoYmFzZSAxNikJCVBvaW50IEdyZXkgUmVzZWFyY2ggSW5jLgorCQkJCTMwNS0xODQ3IFdlc3QgQnJvYWR3YXkKKwkJCQlWYW5jb3V2ZXIgQnJpdGlzaCBDb2x1bWJpYSBWNkogMVk2IAorCQkJCUNBTkFEQQorCiswMC1CMC1BQyAgIChoZXgpCQlTSUFFLU1pY3JvZWxldHRyb25pY2EgUy5wLkEuCiswMEIwQUMgICAgIChiYXNlIDE2KQkJU0lBRS1NaWNyb2VsZXR0cm9uaWNhIFMucC5BLgorCQkJCVZpYSBNaWNoZWxhbmdlbG8gQnVvbmFycm90aSwgMjEKKwkJCQkyMDA5MyBDb2xvZ25vIE0uIChNbCkgIAorCQkJCUlUQUxZCisKKzAwLUIwLUFFICAgKGhleCkJCVN5bW1ldHJpY29tCiswMEIwQUUgICAgIChiYXNlIDE2KQkJU3ltbWV0cmljb20KKwkJCQkyMzAwIE9yY2hhcmQgUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC1CMyAgIChoZXgpCQlYc3RyZWFtaXMgUExDCiswMEIwQjMgICAgIChiYXNlIDE2KQkJWHN0cmVhbWlzIFBMQworCQkJCU1hZ2RhbGVuIENlbnRyZQorCQkJCU94Zm9yZCBTY2llbmNlIFBhcmsKKwkJCQlPeGZvcmQgMFg0IDRHQSAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQjAtQzIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDBCMEMyICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC1DNyAgIChoZXgpCQlUZWxsYWJzIE9wZXJhdGlvbnMsIEluYy4KKzAwQjBDNyAgICAgKGJhc2UgMTYpCQlUZWxsYWJzIE9wZXJhdGlvbnMsIEluYy4KKwkJCQlPbmUgVGVsbGFicyBDZW50ZXIKKwkJCQkxNDE1IFdlc3QgRGllaGwgUm9hZAorCQkJCU5hcGVydmlsbGUgSUwgNjA1NjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLUNFICAgKGhleCkJCVRFQ0hOT0xPR1kgUkVTQ1VFCiswMEIwQ0UgICAgIChiYXNlIDE2KQkJVEVDSE5PTE9HWSBSRVNDVUUKKwkJCQk0NiBBdmVudWUgZGVzIFNwZXJlcyBMdW1pZXJlCisJCQkJNzgxOSBUcm9wcGVzICAKKwkJCQlGUkFOQ0UKKworMDAtQjAtRDAgICAoaGV4KQkJRGVsbCBDb21wdXRlciBDb3JwLgorMDBCMEQwICAgICAoYmFzZSAxNikJCURlbGwgQ29tcHV0ZXIgQ29ycC4KKwkJCQlPbmUgRGVsbCBXYXkKKwkJCQlSb3VuZCBSb2NrIFRYIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC1EQiAgIChoZXgpCQlOZXh0Y2VsbCwgSW5jLgorMDBCMERCICAgICAoYmFzZSAxNikJCU5leHRjZWxsLCBJbmMuCisJCQkJNjUxIEVhc3QgMTh0aCBTdHJlZXQKKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtREYgICAoaGV4KQkJUkVMREFUQSBJbmMKKzAwQjBERiAgICAgKGJhc2UgMTYpCQlSRUxEQVRBIEluYworCQkJCTE3MTkgUm91dGUgMTAgIC0gIFN1aXRlICMyMDkKKwkJCQlQYXJzaXBwYW55IE5KIDA3MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC1FNyAgIChoZXgpCQlCcml0aXNoIEZlZGVyYWwgTHRkLgorMDBCMEU3ICAgICAoYmFzZSAxNikJCUJyaXRpc2ggRmVkZXJhbCBMdGQuCisJCQkJQ2FzdGxlIE1pbGwgV29ya3MKKwkJCQlEdWRsZXkgRFkxIDREQSBFbmdsYW5kIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUIwLUVDICAgKGhleCkJCUVBQ0VNCiswMEIwRUMgICAgIChiYXNlIDE2KQkJRUFDRU0KKwkJCQlBdmVudWUgTG91aXNlIDE0MCwgQnRlIDYKKwkJCQlCLTEwNTAgQlJVU1NFTFMgIAorCQkJCUJFTEdJVU0KKworMDAtQjAtRUUgICAoaGV4KQkJQWppbGUgU3lzdGVtcywgSW5jLgorMDBCMEVFICAgICAoYmFzZSAxNikJCUFqaWxlIFN5c3RlbXMsIEluYy4KKwkJCQkyMDQgQ29sbGlucyBSZCBORQorCQkJCVN1aXRlIDEwMAorCQkJCUNlZGFyIFJhcGlkcyBJQSA1MjQwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtRjAgICAoaGV4KQkJQ0FMWSBORVRXT1JLUworMDBCMEYwICAgICAoYmFzZSAxNikJCUNBTFkgTkVUV09SS1MKKwkJCQkyOTUgU2FudGEgQW5uYSBDb3VydAorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtRjUgICAoaGV4KQkJTmV0V29ydGggVGVjaG5vbG9naWVzLCBJbmMuCiswMEIwRjUgICAgIChiYXNlIDE2KQkJTmV0V29ydGggVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTAwMCBHZXJtYW50b3duIFBpa2UKKwkJCQlsZGcuIEotMQorCQkJCVBseW1vdXRoIE1ldHRpbmcgUEEgMTk0NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIzLTQyICAgKGhleCkJCU1hY3JvU0FOIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwQjM0MiAgICAgKGJhc2UgMTYpCQlNYWNyb1NBTiBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJUm9vbSAxMDIsIE5vLjIgQnVpbGRpbmcKKwkJCQkzMDEgQmluIFhpbmcgUm9hZCxCaW5qaWFuZyBEaXN0cmljdAorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDA1MgorCQkJCUNISU5BCisKKzAwLUI1LUQ2ICAgKGhleCkJCU9tbmliaXQgSW5jLgorMDBCNUQ2ICAgICAoYmFzZSAxNikJCU9tbmliaXQgSW5jLgorCQkJCTItNy05LCBTb3RvLUthbmRhCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtMDAyMQorCQkJCUpBUEFOCisKKzAwLUJBLUMwICAgKGhleCkJCUJpb21ldHJpYyBBY2Nlc3MgQ29tcGFueQorMDBCQUMwICAgICAoYmFzZSAxNikJCUJpb21ldHJpYyBBY2Nlc3MgQ29tcGFueQorCQkJCTI1NTUgTm9ydGggSUggMzUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CQi0wMSAgIChoZXgpCQlPQ1RPVEhPUlBFIENPUlAuCiswMEJCMDEgICAgIChiYXNlIDE2KQkJT0NUT1RIT1JQRSBDT1JQLgorCQkJCTI4NSBXRVNUIEdSRUVOIFNUUkVFVAorCQkJCVBBU0FERU5BIENBIDkxMTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CQi04RSAgIChoZXgpCQlITUUgQ28uLCBMdGQuCiswMEJCOEUgICAgIChiYXNlIDE2KQkJSE1FIENvLiwgTHRkLgorCQkJCU5vLjIwMCAsIExpYW8gQmVpIFN0ci4sU2FuIE1pbiBEaXN0LiwKKwkJCQlLYW9oc2l1bmcgIDgwNworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQkItRjAgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBCQkYwICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUJELTI3ICAgKGhleCkJCUV4YXIgQ29ycC4KKzAwQkQyNyAgICAgKGJhc2UgMTYpCQlFeGFyIENvcnAuCisJCQkJNDg3MjAgS2F0byBSZC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CRC0zQSAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorMDBCRDNBICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTcwCisJCQkJRklOTEFORAorCiswMC1DMC0wMCAgIChoZXgpCQlMQU5PUFRJQ1MsIExURC4KKzAwQzAwMCAgICAgKGJhc2UgMTYpCQlMQU5PUFRJQ1MsIExURC4KKwkJCQlQLk8uIEJPWCAxODQKKwkJCQlNSUdEQUwgSEEtRU1FSworCQkJCUlTUkFFTCBJU1JBRUwgMTA1NTEKKwkJCQlJU1JBRUwKKworMDAtQzAtMDEgICAoaGV4KQkJRElBVEVLIFBBVElFTlQgTUFOQUdNRU5UCiswMEMwMDEgICAgIChiYXNlIDE2KQkJRElBVEVLIFBBVElFTlQgTUFOQUdNRU5UCisJCQkJU1lTVEVNUywgSU5DLgorCQkJCTU3MjAgT0JFUkxJTiBEUklWRQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMS0xNzIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0wMiAgIChoZXgpCQlTRVJDT01NIENPUlBPUkFUSU9OCiswMEMwMDIgICAgIChiYXNlIDE2KQkJU0VSQ09NTSBDT1JQT1JBVElPTgorCQkJCTNGLE5PLjgxLFlVLVlJSCBST0FELENIVS1OQU4gQ0hFTgorCQkJCU1JQU8tTElIIEhTVUFOIDM1MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQzAtMDMgICAoaGV4KQkJR0xPQkFMTkVUIENPTU1VTklDQVRJT05TCiswMEMwMDMgICAgIChiYXNlIDE2KQkJR0xPQkFMTkVUIENPTU1VTklDQVRJT05TCisJCQkJOTEyLCBQTEFDRSBUUkFOUyBDQU5BREEKKwkJCQlMT05HVUVVSUwsIFFDCisJCQkJQ0FOQURBIEo0RyAyTTEKKwkJCQlDQU5BREEKKworMDAtQzAtMDQgICAoaGV4KQkJSkFQQU4gQlVTSU5FU1MgQ09NUFVURVIgQ08uTFRECiswMEMwMDQgICAgIChiYXNlIDE2KQkJSkFQQU4gQlVTSU5FU1MgQ09NUFVURVIgQ08uTFRECisJCQkJMTM2OCBGVVRPTy1DSE8sIEtPSE9LVS1LVQorCQkJCVlPS09IQU1BLUNJVFkKKwkJCQkyMjIgSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC0wNSAgIChoZXgpCQlMSVZJTkdTVE9OIEVOVEVSUFJJU0VTLCBJTkMuCiswMEMwMDUgICAgIChiYXNlIDE2KQkJTElWSU5HU1RPTiBFTlRFUlBSSVNFUywgSU5DLgorCQkJCTY5MjAgS09MTCBDRU5URVIgUEFSS1dBWSAjMjIwCisJCQkJUExFQVNBTlRPTiBDQSA5NDU2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMDYgICAoaGV4KQkJTklQUE9OIEFWSU9OSUNTIENPLiwgTFRELgorMDBDMDA2ICAgICAoYmFzZSAxNikJCU5JUFBPTiBBVklPTklDUyBDTy4sIExURC4KKwkJCQlJTkRVU1RSSUFMIFNZU1RFTSBESVZJU0lPTgorCQkJCTI4LTIsIEhPTkdPSCAyLUNIT01FLCBTRVlBLUtVIFlPS09IQU1BCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC0wNyAgIChoZXgpCQlQSU5OQUNMRSBEQVRBIFNZU1RFTVMsIElOQy4KKzAwQzAwNyAgICAgKGJhc2UgMTYpCQlQSU5OQUNMRSBEQVRBIFNZU1RFTVMsIElOQy4KKwkJCQkxMzUwIFdFU1QgRklGVEggQVZFTlVFCisJCQkJQ09MVU1CVVMgT0ggNDMyMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTA4ICAgKGhleCkJCVNFQ08gU1JMCiswMEMwMDggICAgIChiYXNlIDE2KQkJU0VDTyBTUkwKKwkJCQlWSUEgQ0FMQU1BTkRSRUkgOTEKKwkJCQk1MjEwMCBBUkVaWk8KKwkJCQlJVEFMWQorCQkJCUlUQUxZCisKKzAwLUMwLTA5ICAgKGhleCkJCUtUIFRFQ0hOT0xPR1kgKFMpIFBURSBMVEQKKzAwQzAwOSAgICAgKGJhc2UgMTYpCQlLVCBURUNITk9MT0dZIChTKSBQVEUgTFRECisJCQkJS1QgQlVJTERJTkcKKwkJCQkxMDBFIFBBU0lSIFBBTkpBTkcgUk9BRAorCQkJCVNJTkdBUE9SRSAwNTExCisJCQkJU0lOR0FQT1JFCisKKzAwLUMwLTBBICAgKGhleCkJCU1JQ1JPIENSQUZUCiswMEMwMEEgICAgIChiYXNlIDE2KQkJTUlDUk8gQ1JBRlQKKwkJCQkyLTQtMyBOSVNISUZVUlVNQVRTVQorCQkJCU9LQVlBTUEgQ0lUWSBPS0FZQU1BIFBSRUYuIDcwMAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtMEIgICAoaGV4KQkJTk9SQ09OVFJPTCBBLlMuCiswMEMwMEIgICAgIChiYXNlIDE2KQkJTk9SQ09OVFJPTCBBLlMuCisJCQkJUC5PLiBCT1ggMTAyNAorCQkJCU4tMzE5NCBIT1JURU4KKwkJCQlOT1JXQVkKKwkJCQlOT1JXQVkKKworMDAtQzAtMEMgICAoaGV4KQkJUkVMSUEgVEVDSE5PTEdJRVMKKzAwQzAwQyAgICAgKGJhc2UgMTYpCQlSRUxJQSBURUNITk9MR0lFUworCQkJCTFGLiwgTk8uIDI0LCBJTkRVU1RSWSBFLiA5VEgKKwkJCQlSRC4sIFNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLIEhTSU4tCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUMwLTBEICAgKGhleCkJCUFEVkFOQ0VEIExPR0lDIFJFU0VBUkNILCBJTkMuCiswMEMwMEQgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgTE9HSUMgUkVTRUFSQ0gsIElOQy4KKwkJCQk5NDAxIEpFUk9OSU1PCisJCQkJSVJWSU5FIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0wRSAgIChoZXgpCQlQU0lURUNILCBJTkMuCiswMEMwMEUgICAgIChiYXNlIDE2KQkJUFNJVEVDSCwgSU5DLgorCQkJCTE4MzY4IEJBTkRJTElFUiBDSVJDTEUKKwkJCQlGT1VOVEFJTiBWQUxMRVkgQ0EgOTI3MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTBGICAgKGhleCkJCVFVQU5UVU0gU09GVFdBUkUgU1lTVEVNUyBMVEQuCiswMEMwMEYgICAgIChiYXNlIDE2KQkJUVVBTlRVTSBTT0ZUV0FSRSBTWVNURU1TIExURC4KKwkJCQkxNzUgVEVSUkVOQ0UgTUFUVEhFV1MgQ1JFU0NFTlQKKwkJCQlLQU5BVEEsIE9OVEFSSU8gQ0FOQURBCisJCQkJSzJMIDNUNQorCQkJCUNBTkFEQQorCiswMC1DMC0xMCAgIChoZXgpCQlISVJBS0FXQSBIRVdURUNIIENPUlAuCiswMEMwMTAgICAgIChiYXNlIDE2KQkJSElSQUtBV0EgSEVXVEVDSCBDT1JQLgorCQkJCTdGLCBCTERHLkIsIE9NT1JJIEJFTExQT1JUCisJCQkJNi0yNi0yLCBNSU5BTUktT0ksU0hJTkFHQVdBLUtVIFRPS1lPIDE0MAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtMTEgICAoaGV4KQkJSU5URVJBQ1RJVkUgQ09NUFVUSU5HIERFVklDRVMKKzAwQzAxMSAgICAgKGJhc2UgMTYpCQlJTlRFUkFDVElWRSBDT01QVVRJTkcgREVWSUNFUworCQkJCTE3MzUgVEVDSE5PTE9HWSBEUklWRS1TVEUgIzcyMAorCQkJCVNBTiBKT1NFIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0xMiAgIChoZXgpCQlORVRTUEFOIENPUlBPUkFUSU9OCiswMEMwMTIgICAgIChiYXNlIDE2KQkJTkVUU1BBTiBDT1JQT1JBVElPTgorCQkJCTE0MTEgRS4gQ0FNUEJFTEwgUkQKKwkJCQlTVUlURSAjMTAwMAorCQkJCVJJQ0hBUkRTT04gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTEzICAgKGhleCkJCU5FVFJJWAorMDBDMDEzICAgICAoYmFzZSAxNikJCU5FVFJJWAorCQkJCTEzNTk1IERVTExFUyBURUNITk9MT0dZIERSSVZFCisJCQkJSEVSTkRPTiBWQSAyMjA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMTQgICAoaGV4KQkJVEVMRU1BVElDUyBDQUxBQkFTQVMgSU5UJ0wsSU5DCiswMEMwMTQgICAgIChiYXNlIDE2KQkJVEVMRU1BVElDUyBDQUxBQkFTQVMgSU5UJ0wsSU5DCisJCQkJMjY2MzAgQUdPVVJBIFJPQUQKKwkJCQlDQUxBQkFTQVMgQ0EgOTEzMDItMTk4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMTUgICAoaGV4KQkJTkVXIE1FRElBIENPUlBPUkFUSU9OCiswMEMwMTUgICAgIChiYXNlIDE2KQkJTkVXIE1FRElBIENPUlBPUkFUSU9OCisJCQkJMTUzNzUgQkFSUkFOQ0EgUEFSS1dBWQorCQkJCUJVSUxESU5HCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0xNiAgIChoZXgpCQlFTEVDVFJPTklDIFRIRUFUUkUgQ09OVFJPTFMKKzAwQzAxNiAgICAgKGJhc2UgMTYpCQlFTEVDVFJPTklDIFRIRUFUUkUgQ09OVFJPTFMKKwkJCQkzMDMwIExBVVJBIExBTkUKKwkJCQlNSURETEVUT04gV0kgNTM1NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTE3ICAgKGhleCkJCUZsdWtlIENvcnBvcmF0aW9uCiswMEMwMTcgICAgIChiYXNlIDE2KQkJRmx1a2UgQ29ycG9yYXRpb24KKwkJCQk2OTIwIFNlYXdheSBCbHZkLgorCQkJCUV2ZXJldHQgV0EgOTgyMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTE4ICAgKGhleCkJCUxBTkFSVCBDT1JQT1JBVElPTgorMDBDMDE4ICAgICAoYmFzZSAxNikJCUxBTkFSVCBDT1JQT1JBVElPTgorCQkJCTE0NSBST1NFTUFSWSBTVFJFRVQKKwkJCQlORUVESEFNIE1BIDAyMTk0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0xOSAgIChoZXgpCQlMRUFQIFRFQ0hOT0xPR1ksIElOQy4KKzAwQzAxOSAgICAgKGJhc2UgMTYpCQlMRUFQIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkyMAorCQkJCUJVUkxJTkdUT04gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTFBICAgKGhleCkJCUNPUk9NRVRSSUNTIE1FRElDQUwgU1lTVEVNUworMDBDMDFBICAgICAoYmFzZSAxNikJCUNPUk9NRVRSSUNTIE1FRElDQUwgU1lTVEVNUworCQkJCTYxIEJBUk5FUyBQQVJLIFJPQUQgTk9SVEgKKwkJCQlXQUxMSU5HRk9SRCBDVCAwNjQ5Mi0wMzMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0xQiAgIChoZXgpCQlTT0NLRVQgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwQzAxQiAgICAgKGJhc2UgMTYpCQlTT0NLRVQgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkyODIzIFdISVBQTEUgUkQuCisJCQkJVU5JT04gQ0lUWSBDQSA5NDU4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMUMgICAoaGV4KQkJSU5URVJMSU5LIENPTU1VTklDQVRJT05TIExURC4KKzAwQzAxQyAgICAgKGJhc2UgMTYpCQlJTlRFUkxJTksgQ09NTVVOSUNBVElPTlMgTFRELgorCQkJCUJSVU5FTCBST0FELAorCQkJCUdPUlNFIExBTkUgSU5EVVNUUklBTCBFU1RBVEUgQ0xBQ1RPTi1PTi0KKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtMUQgICAoaGV4KQkJR1JBTkQgSlVOQ1RJT04gTkVUV09SS1MsIElOQy4KKzAwQzAxRCAgICAgKGJhc2UgMTYpCQlHUkFORCBKVU5DVElPTiBORVRXT1JLUywgSU5DLgorCQkJCTMxMDEgV0hJUFBMRSBSRC4sICMyNworCQkJCVVOSU9OIENJVFkgQ0EgOTQ1ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTFFICAgKGhleCkJCUxBIEZSQU5DQUlTRSBERVMgSkVVWAorMDBDMDFFICAgICAoYmFzZSAxNikJCUxBIEZSQU5DQUlTRSBERVMgSkVVWAorCQkJCUNFTlRSRSBERSBST1VTU1kvRFRJCisJCQkJNzcyMzAgUk9VU1NZLUxFLVZJRVVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLUMwLTFGICAgKGhleCkJCVMuRS5SLkMuRS5MLgorMDBDMDFGICAgICAoYmFzZSAxNikJCVMuRS5SLkMuRS5MLgorCQkJCUIuUC4gNDM5CisJCQkJNDQ0NzQgQ0FSUVVFRk9VIENFREVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLUMwLTIwICAgKGhleCkJCUFSQ08gRUxFQ1RST05JQywgQ09OVFJPTCBMVEQuCiswMEMwMjAgICAgIChiYXNlIDE2KQkJQVJDTyBFTEVDVFJPTklDLCBDT05UUk9MIExURC4KKwkJCQkyNzUwIE5PUlRIIDI5VEggQVZFLi1TVEUuIzMxNgorCQkJCUhPTExZV09PRCBGTCAzMzAyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMjEgICAoaGV4KQkJTkVURVhQUkVTUworMDBDMDIxICAgICAoYmFzZSAxNikJCU5FVEVYUFJFU1MKKwkJCQk5ODkgRUFTVCBISUxMU0RBTEUgQkxWRC4KKwkJCQlTVUlURSAjMjkwCisJCQkJRk9TVEVSIENJVFkgQ0EgOTQ0MDQtMjExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMjIgICAoaGV4KQkJTEFTRVJNQVNURVIgVEVDSE5PTE9HSUVTLCBJTkMuCiswMEMwMjIgICAgIChiYXNlIDE2KQkJTEFTRVJNQVNURVIgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNzE1NiBTSEFEWSBPQUsgUk9BRAorCQkJCUVERU4gUFJBSVJJRSBNTiA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMjMgICAoaGV4KQkJVFVUQU5LSEFNT04gRUxFQ1RST05JQ1MKKzAwQzAyMyAgICAgKGJhc2UgMTYpCQlUVVRBTktIQU1PTiBFTEVDVFJPTklDUworCQkJCTI0NDYgRVNUQU5EIFdBWQorCQkJCVBMRUFTQU5UIEhJTEwgQ0EgOTQ1MjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTI0ICAgKGhleCkJCUVERU4gU0lTVEVNQVMgREUgQ09NUFVUQUNBTyBTQQorMDBDMDI0ICAgICAoYmFzZSAxNikJCUVERU4gU0lTVEVNQVMgREUgQ09NUFVUQUNBTyBTQQorCQkJCVJVQSBETyBPVVZJRE9SIDEyMSA1IEFOREFSCisJCQkJUklPIERFIEpBTkVJUk8KKwkJCQlCUkFaSUwKKwkJCQlCUkFaSUwKKworMDAtQzAtMjUgICAoaGV4KQkJREFUQVBST0RVQ1RTIENPUlBPUkFUSU9OCiswMEMwMjUgICAgIChiYXNlIDE2KQkJREFUQVBST0RVQ1RTIENPUlBPUkFUSU9OCisJCQkJNjIxOSBERVNPVE8gQVZFTlVFCisJCQkJV09PRExBTkQgSElMTFMgQ0EgOTEzNjUtMDc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMjYgICAoaGV4KQkJTEFOUyBURUNITk9MT0dZIENPLiwgTFRELgorMDBDMDI2ICAgICAoYmFzZSAxNikJCUxBTlMgVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQkxNTMgTUlOVFNVIFJELiAyRiwgVEFPWVVBTiwKKwkJCQlUQUlXQU4gUi4gTy4gQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUMwLTI3ICAgKGhleCkJCUNJUEhFUiBTWVNURU1TLCBJTkMuCiswMEMwMjcgICAgIChiYXNlIDE2KQkJQ0lQSEVSIFNZU1RFTVMsIElOQy4KKwkJCQkxODAwIE5XIDE2OXRoIFBsYWNlCisJCQkJU3VpdGUgQi0xMDAKKwkJCQlCZWF2ZXJ0b24gT1IgOTcwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTI4ICAgKGhleCkJCUpBU0NPIENPUlBPUkFUSU9OCiswMEMwMjggICAgIChiYXNlIDE2KQkJSkFTQ08gQ09SUE9SQVRJT04KKwkJCQkyOTY3LTUgSVNISUtBV0EtQ0hPLAorCQkJCUhBQ0hJT0pJLVNISSBUT0tZTyAxOTIKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLTI5ICAgKGhleCkJCU5leGFucyBEZXV0c2NobGFuZCBHbWJIIC0gQU5TCiswMEMwMjkgICAgIChiYXNlIDE2KQkJTmV4YW5zIERldXRzY2hsYW5kIEdtYkggLSBBTlMKKwkJCQlCb25uZW5icm9pY2hlciBTdHIuIDEwMAorCQkJCTQxMjM4IE1vZW5jaGVuZ2xhZGJhY2gKKwkJCQlHRVJNQU5ZCisKKzAwLUMwLTJBICAgKGhleCkJCU9IS1VSQSBFTEVDVFJJQyBDTy4sIExURC4KKzAwQzAyQSAgICAgKGJhc2UgMTYpCQlPSEtVUkEgRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJMi05MC0yMCBTSElSQUtPIFdBS08gQ0lUWQorCQkJCVNBSVRBTUEgUFJFRi4KKwkJCQkzNTEtMDEgSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC0yQiAgIChoZXgpCQlHRVJMT0ZGIEdFU0VMTFNDSEFGVCBGVVIKKzAwQzAyQiAgICAgKGJhc2UgMTYpCQlHRVJMT0ZGIEdFU0VMTFNDSEFGVCBGVVIKKwkJCQlFTEVLUk9OSVNDSEUgU1lTVEVNRU5UV0lDS0xVTkcKKwkJCQlGQVNBTkVOV0VHIDI1IFctMjAwMCBIQU1CVVJHIDczCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQzAtMkMgICAoaGV4KQkJQ0VOVFJVTSBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBDMDJDICAgICAoYmFzZSAxNikJCUNFTlRSVU0gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkyODgwIFpBTktFUiBST0FELVNURSAjMTA4CisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTJEICAgKGhleCkJCUZVSkkgUEhPVE8gRklMTSBDTy4sIExURC4KKzAwQzAyRCAgICAgKGJhc2UgMTYpCQlGVUpJIFBIT1RPIEZJTE0gQ08uLCBMVEQuCisJCQkJNzk4IE1JWUFOT0RBSSBLQUlTRUktTUFDSEkKKwkJCQlBU0hJR0FSQS1LQU1JLUdVTiBLQU5BR0FXQQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtMkUgICAoaGV4KQkJTkVUV0laCiswMEMwMkUgICAgIChiYXNlIDE2KQkJTkVUV0laCisJCQkJMjYgR09MT01CIFNUUkVFVAorCQkJCUhBSUZBICAzMzM5MQorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC1DMC0yRiAgIChoZXgpCQlPS1VNQSBDT1JQT1JBVElPTgorMDBDMDJGICAgICAoYmFzZSAxNikJCU9LVU1BIENPUlBPUkFUSU9OCisJCQkJT0dVQ0hJLUNITywgTklXQS1HVU4KKwkJCQlBSUNISSA0ODAtMDEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLTMwICAgKGhleCkJCUlOVEVHUkFURUQgRU5HSU5FRVJJTkcgQi4gVi4KKzAwQzAzMCAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIEVOR0lORUVSSU5HIEIuIFYuCisJCQkJRUxMRVJNQU5TVFJBQVQgMTUKKwkJCQkxMDk5IEJXIEFNU1RFUkRBTQorCQkJCVRIRSBORVRIRVJMQU5EUworCQkJCU5FVEhFUkxBTkRTCisKKzAwLUMwLTMxICAgKGhleCkJCURFU0lHTiBSRVNFQVJDSCBTWVNURU1TLCBJTkMuCiswMEMwMzEgICAgIChiYXNlIDE2KQkJREVTSUdOIFJFU0VBUkNIIFNZU1RFTVMsIElOQy4KKwkJCQk5MjUgRS4gRVhFQ1VUSVZFIFBBUksgRFIuCisJCQkJU1VJVEUKKwkJCQlTQUxUIExBS0UgQ0lUWSBVVCA4NDExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMzIgICAoaGV4KQkJSS1DVUJFRCBMSU1JVEVECiswMEMwMzIgICAgIChiYXNlIDE2KQkJSS1DVUJFRCBMSU1JVEVECisJCQkJVU5JVCBKMSwgVEhFIFBPQURET0NLUworCQkJCTM0NyBDSEVSUlkgSElOVE9OIFJPQUQgQ0FNQlJJREdFCisJCQkJQ0IxIDRESCBDQjEgNERIIEVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1DMC0zMyAgIChoZXgpCQlURUxFQklUIENPTU1VTklDQVRJT05TIEFQUworMDBDMDMzICAgICAoYmFzZSAxNikJCVRFTEVCSVQgQ09NTVVOSUNBVElPTlMgQVBTCisJCQkJU0tBTkRFUkJPUkdWRUogMjM0CisJCQkJREstODI2MCBWSUJZCisJCQkJREVOTUFSSworCQkJCURFTk1BUksKKworMDAtQzAtMzQgICAoaGV4KQkJVFJBTlNBQ1RJT04gTkVUV09SSworMDBDMDM0ICAgICAoYmFzZSAxNikJCVRSQU5TQUNUSU9OIE5FVFdPUksKKwkJCQlTRVJWSUNFUywgSU5DLgorCQkJCU9NTklMSU5LIENPTU1VTklDQVRJT05TIERJVi4gMzEwMSBURUNITk8KKwkJCQlMQU5TSU5HIE1JIDQ4OTEwLTgzNTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTM1ICAgKGhleCkJCVFVSU5UQVIgQ09NUEFOWQorMDBDMDM1ICAgICAoYmFzZSAxNikJCVFVSU5UQVIgQ09NUEFOWQorCQkJCTM3MCBBTUFQT0xBIEFWRS4sIFNURS4jMTA2CisJCQkJVE9SUkFOQ0UgQ0EgOTA1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTM2ICAgKGhleCkJCVJBWVRFQ0ggRUxFQ1RST05JQyBDT1JQLgorMDBDMDM2ICAgICAoYmFzZSAxNikJCVJBWVRFQ0ggRUxFQ1RST05JQyBDT1JQLgorCQkJCTJGLCBOTy42LCBMQU5FIDQ5NworCQkJCUNIVU5HIENIRU5HIFJELCBIU0lOIFRJRU4gQ0lUWSBUQUlQRUkgSFMKKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1DMC0zNyAgIChoZXgpCQlEWU5BVEVNCiswMEMwMzcgICAgIChiYXNlIDE2KQkJRFlOQVRFTQorCQkJCTE1Nzk1IFJPQ0tGSUVMRCBCTFZELgorCQkJCVNVSVRFCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0zOCAgIChoZXgpCQlSQVNURVIgSU1BR0UgUFJPQ0VTU0lORyBTWVNURU0KKzAwQzAzOCAgICAgKGJhc2UgMTYpCQlSQVNURVIgSU1BR0UgUFJPQ0VTU0lORyBTWVNURU0KKwkJCQk0NjY1IE5BVVRJTFVTIENPVVJUIFNPVVRICisJCQkJQk9VTERFUiBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMzkgICAoaGV4KQkJVGVyaWRpYW4gU2VtaWNvbmR1Y3RvciBDb3Jwb3JhdGlvbgorMDBDMDM5ICAgICAoYmFzZSAxNikJCVRlcmlkaWFuIFNlbWljb25kdWN0b3IgQ29ycG9yYXRpb24KKwkJCQk2NDQwIE9hayBDYW55b24KKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTNBICAgKGhleCkJCU1FTi1NSUtSTyBFTEVLVFJPTklLIEdNQkgKKzAwQzAzQSAgICAgKGJhc2UgMTYpCQlNRU4tTUlLUk8gRUxFS1RST05JSyBHTUJICisJCQkJV0lFU0VOVEFMU1RSQVNTRSA0MAorCQkJCVctODUwMCBOVUVSTkJFUkcgOTAKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1DMC0zQiAgIChoZXgpCQlNVUxUSUFDQ0VTUyBDT01QVVRJTkcgQ09SUC4KKzAwQzAzQiAgICAgKGJhc2UgMTYpCQlNVUxUSUFDQ0VTUyBDT01QVVRJTkcgQ09SUC4KKwkJCQk1MzUwIEhPTExJU1RFUiBBVkUuLCBTVEUuCisJCQkJU0FOVEEgQkFSQkFSQSBDQSA5MzExMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtM0MgICAoaGV4KQkJVE9XRVIgVEVDSCBTLlIuTC4KKzAwQzAzQyAgICAgKGJhc2UgMTYpCQlUT1dFUiBURUNIIFMuUi5MLgorCQkJCVZJQSBSSURPTEZJIDYsOAorCQkJCTU2MTI0IFBJU0EKKwkJCQlJVEFMWQorCQkJCUlUQUxZCisKKzAwLUMwLTNEICAgKGhleCkJCVdJRVNFTUFOTiAmIFRIRUlTIEdNQkgKKzAwQzAzRCAgICAgKGJhc2UgMTYpCQlXSUVTRU1BTk4gJiBUSEVJUyBHTUJICisJCQkJV0lUVEVORVIgU1RSLiAzMTIKKwkJCQk1NjAwIFdVUFBFUlRBTCAyCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQzAtM0UgICAoaGV4KQkJRkEuIEdFQlIuIEhFTExFUiBHTUJICiswMEMwM0UgICAgIChiYXNlIDE2KQkJRkEuIEdFQlIuIEhFTExFUiBHTUJICisJCQkJUC5PLiBCT1ggMTQyOCwgREVQLiBFRTcKKwkJCQk3NDQwIE5VUlRJTkdFTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUMwLTNGICAgKGhleCkJCVNUT1JFUyBBVVRPTUFURUQgU1lTVEVNUywgSU5DLgorMDBDMDNGICAgICAoYmFzZSAxNikJCVNUT1JFUyBBVVRPTUFURUQgU1lTVEVNUywgSU5DLgorCQkJCTEzNjAgQURBTVMgUk9BRAorCQkJCUJFTlNBTEVNIFBBIDE5MDIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC00MCAgIChoZXgpCQlFQ0NJCiswMEMwNDAgICAgIChiYXNlIDE2KQkJRUNDSQorCQkJCTE1MDcwLUIgQVZFTlVFIE9GIFNDSUVOQ0UKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTQxICAgKGhleCkJCURJR0lUQUwgVFJBTlNNSVNTSU9OIFNZU1RFTVMKKzAwQzA0MSAgICAgKGJhc2UgMTYpCQlESUdJVEFMIFRSQU5TTUlTU0lPTiBTWVNURU1TCisJCQkJNDgzMCBSSVZFUiBHUkVFTiBQQVJLV0FZCisJCQkJRFVMVVRIIEdBIDMwMTM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC00MiAgIChoZXgpCQlEQVRBTFVYIENPUlAuCiswMEMwNDIgICAgIChiYXNlIDE2KQkJREFUQUxVWCBDT1JQLgorCQkJCTI4MzYgQ0VTU05BIERSSVZFCisJCQkJV0lOQ0hFU1RFUiBWQSAyMjYwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNDMgICAoaGV4KQkJU1RSQVRBQ09NCiswMEMwNDMgICAgIChiYXNlIDE2KQkJU1RSQVRBQ09NCisJCQkJMTQwMCBQQVJLTU9PUiBBVkVOVUUKKwkJCQlTQU4gSk9TRSBDQSA5NTEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNDQgICAoaGV4KQkJRU1DT00gQ09SUE9SQVRJT04KKzAwQzA0NCAgICAgKGJhc2UgMTYpCQlFTUNPTSBDT1JQT1JBVElPTgorCQkJCTg0MCBBVkVOVUUKKwkJCQlQTEFOTyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNDUgICAoaGV4KQkJSVNPTEFUSU9OIFNZU1RFTVMsIExURC4KKzAwQzA0NSAgICAgKGJhc2UgMTYpCQlJU09MQVRJT04gU1lTVEVNUywgTFRELgorCQkJCTI2IFNJWCBQT0lOVCBST0FECisJCQkJVE9ST05UTywgT05UQVJJTworCQkJCUNBTkFEQSBNOFogMlc5CisJCQkJQ0FOQURBCisKKzAwLUMwLTQ2ICAgKGhleCkJCUJsdWUgQ2hpcCBUZWNobm9sb2d5IEx0ZAorMDBDMDQ2ICAgICAoYmFzZSAxNikJCUJsdWUgQ2hpcCBUZWNobm9sb2d5IEx0ZAorCQkJCUNob3dsZXkgT2FrIExhbmUKKwkJCQlUYXR0ZW5oYWxsCisJCQkJQ2hlc3RlciBDaGVzaGlyZSBDSDMgOUVYCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtNDcgICAoaGV4KQkJVU5JTUlDUk8gU1lTVEVNUywgSU5DLgorMDBDMDQ3ICAgICAoYmFzZSAxNikJCVVOSU1JQ1JPIFNZU1RFTVMsIElOQy4KKwkJCQk0NDM4MiBTLiBHUklNTUVSIEJMVkQuCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNDggICAoaGV4KQkJQkFZIFRFQ0hOSUNBTCBBU1NPQ0lBVEVTCiswMEMwNDggICAgIChiYXNlIDE2KQkJQkFZIFRFQ0hOSUNBTCBBU1NPQ0lBVEVTCisJCQkJMjAwIE4uIFNFQ09ORCBTVFJFRVQKKwkJCQlQLk8uIEJPWCAzODcKKwkJCQlCQVkgU1QuIExPVUlTIE1TIDM5NTIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC00OSAgIChoZXgpCQlVLlMuIFJPQk9USUNTLCBJTkMuCiswMEMwNDkgICAgIChiYXNlIDE2KQkJVS5TLiBST0JPVElDUywgSU5DLgorCQkJCTgxMDAgTk9SVEggTUNDT1JNSUNLIEJMVkQuCisJCQkJU0tPS0lFIElMIDYwMDc2LTI5OTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTRBICAgKGhleCkJCUdST1VQIDIwMDAgQUcKKzAwQzA0QSAgICAgKGJhc2UgMTYpCQlHUk9VUCAyMDAwIEFHCisJCQkJUC5PLiBCT1ggMzMxCisJCQkJVEFOTkFHRVJURU5TVFIuIDkgQ0gtODYzNSBEVVJOVEVOCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC1DMC00QiAgIChoZXgpCQlDUkVBVElWRSBNSUNST1NZU1RFTVMKKzAwQzA0QiAgICAgKGJhc2UgMTYpCQlDUkVBVElWRSBNSUNST1NZU1RFTVMKKwkJCQk5LCBBVkVOVUUgRFUgQ0FOQURBCisJCQkJUEFSQyBISUdIVEVDIDYgWi5BLiBERSBDT1VSVEFCT0VVRgorCQkJCTkxOTY2IExFUyBVTElTLS0tRlJBTkMKKwkJCQlGUkFOQ0UKKworMDAtQzAtNEMgICAoaGV4KQkJREVQQVJUTUVOVCBPRiBGT1JFSUdOIEFGRkFJUlMKKzAwQzA0QyAgICAgKGJhc2UgMTYpCQlERVBBUlRNRU5UIE9GIEZPUkVJR04gQUZGQUlSUworCQkJCSYgVFJBREUKKwkJCQlBRE1JTklTVFJBVElWRSBCVUlMRElORyBQQVJLRVMgUExBQ0UsICBQCisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLUMwLTREICAgKGhleCkJCU1JVEVDLCBJTkMuCiswMEMwNEQgICAgIChiYXNlIDE2KQkJTUlURUMsIElOQy4KKwkJCQlCUi1LQU1FSURPIDEgQlVJTERJTkcKKwkJCQlaLTMzLTEsIEtBTUVJRE8sIEtPVVRPVS1LVSBUT0tZTywgMTM2CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC00RSAgIChoZXgpCQlDT01UUk9MIENPUlBPUkFUSU9OCiswMEMwNEUgICAgIChiYXNlIDE2KQkJQ09NVFJPTCBDT1JQT1JBVElPTgorCQkJCTI2NzUgUEFUVE9OIFJPQUQKKwkJCQlTVC4gUEFVTCBNTiA1NTExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNEYgICAoaGV4KQkJREVMTCBDT01QVVRFUiBDT1JQT1JBVElPTgorMDBDMDRGICAgICAoYmFzZSAxNikJCURFTEwgQ09NUFVURVIgQ09SUE9SQVRJT04KKwkJCQkxODA3IFdFU1QgQlJBS0VSIExBTkUtQkxERy4KKwkJCQlBVVNUSU4gVFggNzg3NTgtMzYxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNTAgICAoaGV4KQkJVE9ZTyBERU5LSSBTRUlaTyBLLksuCiswMEMwNTAgICAgIChiYXNlIDE2KQkJVE9ZTyBERU5LSSBTRUlaTyBLLksuCisJCQkJNC02LTMyIEhJR0FTSElLQVNISVdBR0FZQQorCQkJCUVCSU5BU0hJCisJCQkJS0FOQUdBV0EgSkFQQU4gMjQzLTA0CisJCQkJSkFQQU4KKworMDAtQzAtNTEgICAoaGV4KQkJQURWQU5DRUQgSU5URUdSQVRJT04gUkVTRUFSQ0gKKzAwQzA1MSAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBJTlRFR1JBVElPTiBSRVNFQVJDSAorCQkJCTIxODggREVMIEZSQU5DTyBTVFJFRVQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNTIgICAoaGV4KQkJQlVSUi1CUk9XTgorMDBDMDUyICAgICAoYmFzZSAxNikJCUJVUlItQlJPV04KKwkJCQlQLk8uIEJPWCAxMTQwMAorCQkJCVRVQ1NPTiBBWiA4NTczNC0xNDAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC01MyAgIChoZXgpCQlBc3BlY3QgU29mdHdhcmUgSW5jLgorMDBDMDUzICAgICAoYmFzZSAxNikJCUFzcGVjdCBTb2Z0d2FyZSBJbmMuCisJCQkJNiBUZWNobm9sb2d5IFBhcmsgRHJpdmUKKwkJCQlXZXN0Zm9yZCBNQSAwMTg4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNTQgICAoaGV4KQkJTkVUV09SSyBQRVJJUEhFUkFMUywgTFRELgorMDBDMDU0ICAgICAoYmFzZSAxNikJCU5FVFdPUksgUEVSSVBIRVJBTFMsIExURC4KKwkJCQk0VEggRkxPT1IsIDE3IEJPV0FURVIgUkQuCisJCQkJV0VTVE1JTlNURVIgSU5EVVNUUklBTCBFU1RBVEUgTE9ORE9OIFNFCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLTU1ICAgKGhleCkJCU1PRFVMQVIgQ09NUFVUSU5HIFRFQ0hOT0xPR0lFUworMDBDMDU1ICAgICAoYmFzZSAxNikJCU1PRFVMQVIgQ09NUFVUSU5HIFRFQ0hOT0xPR0lFUworCQkJCTIzNTIgTUFJTiBTVFJFRVQKKwkJCQlDT05DT1JEIE1BIDAxNzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC01NiAgIChoZXgpCQlTT01FTEVDCiswMEMwNTYgICAgIChiYXNlIDE2KQkJU09NRUxFQworCQkJCUJQIDcwMTAgLSA5NTA1MAorCQkJCUNFUkdZIFBPTlRPSVNFIENFREVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLUMwLTU3ICAgKGhleCkJCU1ZQ08gRUxFQ1RST05JQ1MKKzAwQzA1NyAgICAgKGJhc2UgMTYpCQlNWUNPIEVMRUNUUk9OSUNTCisJCQkJTVVTU0VST05HUkFORCAxRworCQkJCVMtNzU2IFVQUFNBTEEKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtQzAtNTggICAoaGV4KQkJREFUQUVYUEVSVCBDT1JQLgorMDBDMDU4ICAgICAoYmFzZSAxNikJCURBVEFFWFBFUlQgQ09SUC4KKwkJCQkxMTU2IFNPTk9QUkEgQ09VUlROLUtBTkcgUkQuCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC01OSAgIChoZXgpCQlERU5TTyBDT1JQT1JBVElPTgorMDBDMDU5ICAgICAoYmFzZSAxNikJCURFTlNPIENPUlBPUkFUSU9OCisJCQkJMS0xLCBTaG93YS1jaG8sCisJCQkJS2FyaXlhLXNoaSwgQWljaGkgNDQ4LTg2NjEKKwkJCQlKQVBBTgorCiswMC1DMC01QSAgIChoZXgpCQlTRU1BUEhPUkUgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwQzA1QSAgICAgKGJhc2UgMTYpCQlTRU1BUEhPUkUgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQkyMTcgSFVNQk9MRFQgQ09VUlQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODktMTMwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNUIgICAoaGV4KQkJTkVUV09SS1MgTk9SVEhXRVNULCBJTkMuCiswMEMwNUIgICAgIChiYXNlIDE2KQkJTkVUV09SS1MgTk9SVEhXRVNULCBJTkMuCisJCQkJUC5PLiBCT1ggMTE4OAorCQkJCUlTU0FRVUFIIFdBIDk4MDI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC01QyAgIChoZXgpCQlFTE9ORVggUExDCiswMEMwNUMgICAgIChiYXNlIDE2KQkJRUxPTkVYIFBMQworCQkJCTIgQVBTTEVZIFdBWQorCQkJCUxPTkRPTiwgTlcyIDdIRgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtNUQgICAoaGV4KQkJTCZOIFRFQ0hOT0xPR0lFUworMDBDMDVEICAgICAoYmFzZSAxNikJCUwmTiBURUNITk9MT0dJRVMKKwkJCQkyODk5IEFHT1VSQSBST0FEICMxOTYKKwkJCQlXRVNUTEFLRSBWSUxMQUdFIENBIDkxMzYxLTMyMDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTVFICAgKGhleCkJCVZBUkktTElURSwgSU5DLgorMDBDMDVFICAgICAoYmFzZSAxNikJCVZBUkktTElURSwgSU5DLgorCQkJCTIwMSBSRUdBTCBST1cKKwkJCQlEQUxMQVMgVFggNzUyNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTVGICAgKGhleCkJCUZJTkUtUEFMIENPTVBBTlkgTElNSVRFRAorMDBDMDVGICAgICAoYmFzZSAxNikJCUZJTkUtUEFMIENPTVBBTlkgTElNSVRFRAorCQkJCVJNLiA5LCAxMUYsIEtJTkdTRk9SRCBJTkQuIENUUgorCQkJCTEzLCBXQU5HIEhPSSBST0FEIEtPV0xPT04gQkFZLCBLTE4KKwkJCQlIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtQzAtNjAgICAoaGV4KQkJSUQgU0NBTkRJTkFWSUEgQVMKKzAwQzA2MCAgICAgKGJhc2UgMTYpCQlJRCBTQ0FORElOQVZJQSBBUworCQkJCVAuTy4gQk9YIDQyMjcKKwkJCQlOLTUwMjggQkVSR0VOCisJCQkJTk9SV0FZCisJCQkJTk9SV0FZCisKKzAwLUMwLTYxICAgKGhleCkJCVNPTEVDVEVLIENPUlBPUkFUSU9OCiswMEMwNjEgICAgIChiYXNlIDE2KQkJU09MRUNURUsgQ09SUE9SQVRJT04KKwkJCQk2MzcwIE5BTkNZIFJJREdFIERSLi1TVEUuIzEwOQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNjIgICAoaGV4KQkJSU1QVUxTRSBURUNITk9MT0dZCiswMEMwNjIgICAgIChiYXNlIDE2KQkJSU1QVUxTRSBURUNITk9MT0dZCisJCQkJMjEwIERBSExPTkVHQSBTVC4jMjA0CisJCQkJQ1VNTUlORyBHQSAzMDEzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNjMgICAoaGV4KQkJTU9STklORyBTVEFSIFRFQ0hOT0xPR0lFUywgSU5DCiswMEMwNjMgICAgIChiYXNlIDE2KQkJTU9STklORyBTVEFSIFRFQ0hOT0xPR0lFUywgSU5DCisJCQkJMTc2MCBaT0xMSU5HRVIgUk9BRAorCQkJCUNPTFVNQlVTIE9IIDQzMjIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC02NCAgIChoZXgpCQlHRU5FUkFMIERBVEFDT01NIElORC4gSU5DLgorMDBDMDY0ICAgICAoYmFzZSAxNikJCUdFTkVSQUwgREFUQUNPTU0gSU5ELiBJTkMuCisJCQkJUEFSSyBST0FEIEVYVEVOU0lPTgorCQkJCVAuTy4gQk9YIDEyOTkKKwkJCQlNSURETEVCVVJZIENUIDA2NzYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC02NSAgIChoZXgpCQlTQ09QRSBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBDMDY1ICAgICAoYmFzZSAxNikJCVNDT1BFIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTAwIE9USVMgU1RSRUVUCisJCQkJTk9SVEhCT1JPIE1BIDAxNTMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC02NiAgIChoZXgpCQlET0NVUE9JTlQsIElOQy4KKzAwQzA2NiAgICAgKGJhc2UgMTYpCQlET0NVUE9JTlQsIElOQy4KKwkJCQkyNzAxIEJBWVZJRVcgRFJJVkUKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC02NyAgIChoZXgpCQlVTklURUQgQkFSQ09ERSBJTkRVU1RSSUVTCiswMEMwNjcgICAgIChiYXNlIDE2KQkJVU5JVEVEIEJBUkNPREUgSU5EVVNUUklFUworCQkJCTEyMjQwIElORElBTiBDUkVFSyBDT1VSVAorCQkJCUJFTFRTVklMTEUgTUQgMjA3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTY4ICAgKGhleCkJCUhNRSBDbGVhci1Db20gTFRELgorMDBDMDY4ICAgICAoYmFzZSAxNikJCUhNRSBDbGVhci1Db20gTFRELgorCQkJCTc0MDAgQmVhY2ggRHJpdmUKKwkJCQlXYXRlcmJlYWNoCisJCQkJQ2FtYnJpZGdlc2hpcmUgIENCMjUgOVRQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtNjkgICAoaGV4KQkJQXh4Y2VsZXJhIEJyb2FkYmFuZCBXaXJlbGVzcworMDBDMDY5ICAgICAoYmFzZSAxNikJCUF4eGNlbGVyYSBCcm9hZGJhbmQgV2lyZWxlc3MKKwkJCQkxMTEgQ2FzdGlsaWFuIERyaXZlCisJCQkJU2FudGEgQmFyYmFyYSBDQSA5MzExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNkEgICAoaGV4KQkJWkFITkVSLUVMRUtUUklLIEdNQkggJiBDTy4gS0cKKzAwQzA2QSAgICAgKGJhc2UgMTYpCQlaQUhORVItRUxFS1RSSUsgR01CSCAmIENPLiBLRworCQkJCVAuTy4gQk9YIDE4NDYKKwkJCQlUSFVFUklOR0VSIFNUUkFTU0UgMTIgRFctODY0MCBLUk9OQUNILUdVCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQzAtNkIgICAoaGV4KQkJT1NJIFBMVVMgQ09SUE9SQVRJT04KKzAwQzA2QiAgICAgKGJhc2UgMTYpCQlPU0kgUExVUyBDT1JQT1JBVElPTgorCQkJCTItMS0yMyBOQUtBTUVHVVJPCisJCQkJTUVHVVJPLUtVLCBUT0tZTyAgMTUzCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC02QyAgIChoZXgpCQlTVkVDIENPTVBVVEVSIENPUlAuCiswMEMwNkMgICAgIChiYXNlIDE2KQkJU1ZFQyBDT01QVVRFUiBDT1JQLgorCQkJCTNGLCA1MzEtMSBDSFVORyBDSEVORyBSRC4KKwkJCQlIU0lOLVRJRU4gQ0lUWSwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUMwLTZEICAgKGhleCkJCUJPQ0EgUkVTRUFSQ0gsIElOQy4KKzAwQzA2RCAgICAgKGJhc2UgMTYpCQlCT0NBIFJFU0VBUkNILCBJTkMuCisJCQkJNjQwMSBDT05HUkVTUyBBVkVOVUUKKwkJCQlCT0NBIFJBVE9OIEZMIDMzNDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC02RSAgIChoZXgpCQlIQUZUIFRFQ0hOT0xPR1ksIElOQy4KKzAwQzA2RSAgICAgKGJhc2UgMTYpCQlIQUZUIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQlEQUlOSS1ET0hPIEJMREcuCisJCQkJMy1DSE9NRSAyNC03IE5JTk9NSVlBIFRTVUtVQkEgSUJBUkFHSQorCQkJCTMwNSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLTZGICAgKGhleCkJCUtPTUFUU1UgTFRELgorMDBDMDZGICAgICAoYmFzZSAxNikJCUtPTUFUU1UgTFRELgorCQkJCTI1OTcgU0hJTk9NSVlBIEhJUkFUU1VLQS1TSEkKKwkJCQlLQU5BR0FXQSAyNTQKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLTcwICAgKGhleCkJCVNFQ1RSQSBTRUNVUkUtVFJBTlNNSVNTSU9OIEFCCiswMEMwNzAgICAgIChiYXNlIDE2KQkJU0VDVFJBIFNFQ1VSRS1UUkFOU01JU1NJT04gQUIKKwkJCQlURUtOSUtSSU5HRU4gMgorCQkJCVMtNTgzIDMwIExJTktPUElORworCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC1DMC03MSAgIChoZXgpCQlBUkVBTkVYIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEMwNzEgICAgIChiYXNlIDE2KQkJQVJFQU5FWCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTMzMzMgT0NUQVZJVVMgRFJJVkUgVU5JVCBDCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTcyICAgKGhleCkJCUtOWCBMVEQuCiswMEMwNzIgICAgIChiYXNlIDE2KQkJS05YIExURC4KKwkJCQlIT0xMSU5HV09PRCBIT1VTRQorCQkJCVdFU1QgQ0hFVklOIFJPQUQgT1RMRVksIFcuIFlPUktTSElSRQorCQkJCUxTMjEgM0hBIFVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtNzMgICAoaGV4KQkJWEVESUEgQ09SUE9SQVRJT04KKzAwQzA3MyAgICAgKGJhc2UgMTYpCQlYRURJQSBDT1JQT1JBVElPTgorCQkJCTMwMSBCQUxMQVJEVkFMRSBTVFJFRVQKKwkJCQlXSUxNSU5HVE9OIE1BIDAxODg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC03NCAgIChoZXgpCQlUT1lPREEgQVVUT01BVElDIExPT00KKzAwQzA3NCAgICAgKGJhc2UgMTYpCQlUT1lPREEgQVVUT01BVElDIExPT00KKwkJCQlXT1JLUywgTFRELgorCQkJCTItMSwgVE9ZT0RBLUNITywgS0FSSVlBLVNISSBBSUNISS1LRU4KKwkJCQk0NDggSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC03NSAgIChoZXgpCQlYQU5URSBDT1JQT1JBVElPTgorMDBDMDc1ICAgICAoYmFzZSAxNikJCVhBTlRFIENPUlBPUkFUSU9OCisJCQkJMjU1OSBFTU9HRU5FIFNUUkVFVAorCQkJCU1PQklMRSBBTCAzNjYwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNzYgICAoaGV4KQkJSS1EQVRBIElOVEVSTkFUSU9OQUwgQS1TCiswMEMwNzYgICAgIChiYXNlIDE2KQkJSS1EQVRBIElOVEVSTkFUSU9OQUwgQS1TCisJCQkJMzUtNDMgVkFEU1RSVVBWRUoKKwkJCQlESy0yODgwIEJBR1NWQUVSRAorCQkJCURFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLUMwLTc3ICAgKGhleCkJCURBRVdPTyBURUxFQ09NIExURC4KKzAwQzA3NyAgICAgKGJhc2UgMTYpCQlEQUVXT08gVEVMRUNPTSBMVEQuCisJCQkJUFJPRFVDVFMgREVTSUdOIERFUFQuIDEKKwkJCQlQUk9EVUNUUyBERVNJR04gQ0VOVEVSIFNPQ0hPLiBQLk8uIEJPWCAxCisJCQkJU0VPVUwgU0VPVUwgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtQzAtNzggICAoaGV4KQkJQ09NUFVURVIgU1lTVEVNUyBFTkdJTkVFUklORworMDBDMDc4ICAgICAoYmFzZSAxNikJCUNPTVBVVEVSIFNZU1RFTVMgRU5HSU5FRVJJTkcKKwkJCQk0Njc5MSBGUkVNT05UIEJMVkQuCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNzkgICAoaGV4KQkJRk9OU1lTIENPLixMVEQuCiswMEMwNzkgICAgIChiYXNlIDE2KQkJRk9OU1lTIENPLixMVEQuCisJCQkJMjA5LTUsIFlBTkdKQUUsIFNFT0NITworCQkJCVNFT1VMICBBMzcxMzAKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1DMC03QSAgIChoZXgpCQlQUklWQSBCLlYuCiswMEMwN0EgICAgIChiYXNlIDE2KQkJUFJJVkEgQi5WLgorCQkJCVAuTy4gQk9YIDE4CisJCQkJMjY3OCAgWkcgREUgTElFUiAoWi1IKQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLUMwLTdCICAgKGhleCkJCUFTQ0VORCBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBDMDdCICAgICAoYmFzZSAxNikJCUFTQ0VORCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTE3MDEgSEFSQk9SIEJBWSBQQVJLV0FZCisJCQkJQUxBTUVEQSBDQSA5NDUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtN0MgICAoaGV4KQkJSElHSFRFQ0ggSU5GT1JNQVRJT04KKzAwQzA3QyAgICAgKGJhc2UgMTYpCQlISUdIVEVDSCBJTkZPUk1BVElPTgorCQkJCVNZU1RFTSBMVEQuCisJCQkJVU5JVCA3LCAyL0YsIFBPIExVTkcgQ0VOVFJFIDExIFdBTkcgQ0hJVQorCQkJCUhPTkcgS09ORworCQkJCUhPTkcgS09ORworCiswMC1DMC03RCAgIChoZXgpCQlSSVNDIERFVkVMT1BNRU5UUyBMVEQuCiswMEMwN0QgICAgIChiYXNlIDE2KQkJUklTQyBERVZFTE9QTUVOVFMgTFRELgorCQkJCTExNyBIQVRGSUVMRCBST0FECisJCQkJU1QuIEFMQkFOUywgSEVSVFMgQUwxNEo1CisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLTdFICAgKGhleCkJCUtVQk9UQSBDT1JQT1JBVElPTiBFTEVDVFJPTklDCiswMEMwN0UgICAgIChiYXNlIDE2KQkJS1VCT1RBIENPUlBPUkFUSU9OIEVMRUNUUk9OSUMKKwkJCQlERVZJQ0UgREVQVC4KKwkJCQkyLTM1LCBKSU5NVS1DSE8sIFlBTy1DSVRZIE9TQUtBIFBSRUYuCisJCQkJSkFQQU4gIzU4MQorCQkJCUpBUEFOCisKKzAwLUMwLTdGICAgKGhleCkJCU5VUE9OIENPTVBVVElORyBDT1JQLgorMDBDMDdGICAgICAoYmFzZSAxNikJCU5VUE9OIENPTVBVVElORyBDT1JQLgorCQkJCTEzOTEgV0FSTkVSIEFWRS4sIC1TVUlURQorCQkJCVRVU1RJTiBDQSA5MjY4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtODAgICAoaGV4KQkJTkVUU1RBUiwgSU5DLgorMDBDMDgwICAgICAoYmFzZSAxNikJCU5FVFNUQVIsIElOQy4KKwkJCQlDRURBUiBCVVNJTkVTUyBDRU5URVIKKwkJCQkxODAxIEUuIDc5VEggU1RSRUVUCisJCQkJTUlOTkVBUE9MSVMgTU4gNTU0MjUtMTIzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtODEgICAoaGV4KQkJTUVUUk9EQVRBIExURC4KKzAwQzA4MSAgICAgKGJhc2UgMTYpCQlNRVRST0RBVEEgTFRELgorCQkJCUJMRU5IRUlNIEhPVVNFCisJCQkJQ1JBQlRSRUUgT0ZGSUNFIFZJTExBR0UgRVZFUlNMRVkgV0FZLCBFRworCQkJCVRXMjAgOFJZIFRXMjAgOFJZIEVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1DMC04MiAgIChoZXgpCQlNT09SRSBQUk9EVUNUUyBDTy4KKzAwQzA4MiAgICAgKGJhc2UgMTYpCQlNT09SRSBQUk9EVUNUUyBDTy4KKwkJCQlTVU1ORVlUT1dOIFBJS0UKKwkJCQlTUFJJTkcgSE9VU0UgUEEgMTk0NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTgzICAgKGhleCkJCVRSQUNFIE1PVU5UQUlOIFBST0RVQ1RTLCBJTkMuCiswMEMwODMgICAgIChiYXNlIDE2KQkJVFJBQ0UgTU9VTlRBSU4gUFJPRFVDVFMsIElOQy4KKwkJCQkxMDQwIEVBU1QgQlJPS0FXIFJPQUQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtODQgICAoaGV4KQkJREFUQSBMSU5LIENPUlAuIExURC4KKzAwQzA4NCAgICAgKGJhc2UgMTYpCQlEQVRBIExJTksgQ09SUC4gTFRELgorCQkJCTMtMTUtMyBNSURPUklDSE8KKwkJCQlUT0tPUk9aQVdBLUNJVFkgU0FJVEFNQSAgMzU5CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC04NSAgIChoZXgpCQlFTEVDVFJPTklDUyBGT1IgSU1BR0lORywgSU5DLgorMDBDMDg1ICAgICAoYmFzZSAxNikJCUVMRUNUUk9OSUNTIEZPUiBJTUFHSU5HLCBJTkMuCisJCQkJMjg1NSBDQU1QVVMgRFJJVkUKKwkJCQlTQU4gTUFURU8gQ0EgOTQ0MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTg2ICAgKGhleCkJCVRIRSBMWU5LIENPUlBPUkFUSU9OCiswMEMwODYgICAgIChiYXNlIDE2KQkJVEhFIExZTksgQ09SUE9SQVRJT04KKwkJCQkxMDEgUVVFRU5TIERSSVZFCisJCQkJS0lORyBPRiBQUlVTU0lBIFBBIDE5NDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC04NyAgIChoZXgpCQlVVU5FVCBURUNITk9MT0dJRVMsIElOQy4KKzAwQzA4NyAgICAgKGJhc2UgMTYpCQlVVU5FVCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkzMTEwIEZBSVJWSUVXIFBBUksgRFIuICM1NzAKKwkJCQlGQUxMUyBDSFVSQ0ggVkEgMjIwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTg4ICAgKGhleCkJCUVLRiBFTEVLVFJPTklLIEdNQkgKKzAwQzA4OCAgICAgKGJhc2UgMTYpCQlFS0YgRUxFS1RST05JSyBHTUJICisJCQkJUEhJTElQUC1SRUlTLVNUUi4gNAorCQkJCTQ3MDAgSEFNTQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUMwLTg5ICAgKGhleCkJCVRFTElORFVTIERJU1RSSUJVVElPTgorMDBDMDg5ICAgICAoYmFzZSAxNikJCVRFTElORFVTIERJU1RSSUJVVElPTgorCQkJCUdFTERFTkFBS1NFQkFBTiAzMzUKKwkJCQkzMDAxIEhFVkVSTEVFCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtQzAtOEEgICAoaGV4KQkJTGF1dGVyYmFjaCBHbWJICiswMEMwOEEgICAgIChiYXNlIDE2KQkJTGF1dGVyYmFjaCBHbWJICisJCQkJQWx0bGF1ZnN0ci4gNDAsCisJCQkJSO+/vWhlbmtpcmNoZW4tU2llZ2VydHNicnVubiwgODU2MzUKKwkJCQlHRVJNQU5ZCisKKzAwLUMwLThCICAgKGhleCkJCVJJU1EgTU9EVUxBUiBTWVNURU1TLCBJTkMuCiswMEMwOEIgICAgIChiYXNlIDE2KQkJUklTUSBNT0RVTEFSIFNZU1RFTVMsIElOQy4KKwkJCQkzOTg5OSBCQUxFTlRJTkUgRFJJVkUtU1RFICMzNzUKKwkJCQlORVdBUksgQ0EgOTQ1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLThDICAgKGhleCkJCVBFUkZPUk1BTkNFIFRFQ0hOT0xPR0lFUywgSU5DLgorMDBDMDhDICAgICAoYmFzZSAxNikJCVBFUkZPUk1BTkNFIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTMxNSBTQ0lFTkNFIFBBUktXQVkKKwkJCQlST0NIRVNURVIgTlkgMTQ2MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLThEICAgKGhleCkJCVRST05JWCBQUk9EVUNUIERFVkVMT1BNRU5UCiswMEMwOEQgICAgIChiYXNlIDE2KQkJVFJPTklYIFBST0RVQ1QgREVWRUxPUE1FTlQKKwkJCQk0OTA4IEUuIE1DRE9XRUxMIFJELiBTVEUuIzEwMAorCQkJCVBIT0VOSVggQVogODUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLThFICAgKGhleCkJCU5FVFdPUksgSU5GT1JNQVRJT04gVEVDSE5PTE9HWQorMDBDMDhFICAgICAoYmFzZSAxNikJCU5FVFdPUksgSU5GT1JNQVRJT04gVEVDSE5PTE9HWQorCQkJCTEwNDMwIFMuIERFIEFOWkEgQkxWRC4KKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLThGICAgKGhleCkJCVBhbmFzb25pYyBFbGVjdHJpYyBXb3JrcyBDby4sIEx0ZC4KKzAwQzA4RiAgICAgKGJhc2UgMTYpCQlQYW5hc29uaWMgRWxlY3RyaWMgV29ya3MgQ28uLCBMdGQuCisJCQkJVHN1LUZhY3RvcnkKKwkJCQkxNjY4IEZ1amlrYXRhIFRzdS1zaGkKKwkJCQlNaWUta2VuIDUxNC04NTU1IAorCQkJCUpBUEFOCisKKzAwLUMwLTkwICAgKGhleCkJCVBSQUlNIFMuUi5MLgorMDBDMDkwICAgICAoYmFzZSAxNikJCVBSQUlNIFMuUi5MLgorCQkJCVZJQSBNQUNDQU5JLCAxNjkKKwkJCQkzODEwMCBUUkVOVE8gKFROKQorCQkJCUlUQUxZCisKKzAwLUMwLTkxICAgKGhleCkJCUpBQklMIENJUkNVSVQsIElOQy4KKzAwQzA5MSAgICAgKGJhc2UgMTYpCQlKQUJJTCBDSVJDVUlULCBJTkMuCisJCQkJMzIyNzUgTUFMTFkgUk9BRAorCQkJCU1BRElTT04gSEVJR0hUUyBNSSA0ODA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtOTIgICAoaGV4KQkJTUVOTkVOIE1FRElDQUwgSU5DLgorMDBDMDkyICAgICAoYmFzZSAxNikJCU1FTk5FTiBNRURJQ0FMIElOQy4KKwkJCQkxMDEyMyBNQUlOIFNUUkVFVAorCQkJCUNMQVJFTkNFIE5ZIDE0MDMxLTIwOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTkzICAgKGhleCkJCUFMVEEgUkVTRUFSQ0ggQ09SUC4KKzAwQzA5MyAgICAgKGJhc2UgMTYpCQlBTFRBIFJFU0VBUkNIIENPUlAuCisJCQkJNjE0IFNPVVRIIEZFREVSQUwgSElHSFdBWQorCQkJCURFRVJGSUVMRCBCRUFDSCBGTCAzMzQ0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtOTQgICAoaGV4KQkJVk1YIElOQy4KKzAwQzA5NCAgICAgKGJhc2UgMTYpCQlWTVggSU5DLgorCQkJCTIxMTUgTydORUwgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtOTUgICAoaGV4KQkJWk5ZWAorMDBDMDk1ICAgICAoYmFzZSAxNikJCVpOWVgKKwkJCQk0ODQyMSBNaWxtb250IERyaXZlCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtOTYgICAoaGV4KQkJVEFNVVJBIENPUlBPUkFUSU9OCiswMEMwOTYgICAgIChiYXNlIDE2KQkJVEFNVVJBIENPUlBPUkFUSU9OCisJCQkJQ09NTVVOSUNBVElPTiBTWVNURU1TIERJVi4KKwkJCQkxOS00MyBISUdBU0hJIE9JWlVNSSAxIENIT01FIE5FUklNQS1LVSwKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLTk3ICAgKGhleCkJCUFSQ0hJUEVMIFNBCiswMEMwOTcgICAgIChiYXNlIDE2KQkJQVJDSElQRUwgU0EKKwkJCQkxIFJVRSBEVSBCVUxMT1oKKwkJCQlGIDc0OTQwIEFOTkVDWS1MRS1WSUVVWAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC1DMC05OCAgIChoZXgpCQlDSFVOVEVYIEVMRUNUUk9OSUMgQ08uLCBMVEQuCiswMEMwOTggICAgIChiYXNlIDE2KQkJQ0hVTlRFWCBFTEVDVFJPTklDIENPLiwgTFRELgorCQkJCTZGLiwgTk8uMiwgQUxMRVkgNiwgTEFORSAyMzUKKwkJCQlQQU8gQ0hJQU8gUkQuLCBIU0lOIFRJRU4sIFRBSVBFSSBIU0lFTgorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1DMC05OSAgIChoZXgpCQlZT1NISUtJIElORFVTVFJJQUwgQ08uLExURC4KKzAwQzA5OSAgICAgKGJhc2UgMTYpCQlZT1NISUtJIElORFVTVFJJQUwgQ08uLExURC4KKwkJCQkxLTM4IE1BVFNVR0FTQUtJIDItQ0hPTUUKKwkJCQlZT05FWkFXQSBZQU1BR0FUQQorCQkJCTk5MiBKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLTlBICAgKGhleCkJCVBIT1RPTklDUyBDT1JQT1JBVElPTgorMDBDMDlBICAgICAoYmFzZSAxNikJCVBIT1RPTklDUyBDT1JQT1JBVElPTgorCQkJCTI5NDAgTk9SVEggRklSU1QgU1RSRUVUCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjMtMjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtOUIgICAoaGV4KQkJUkVMSUFOQ0UgQ09NTS9URUMsIFItVEVDCiswMEMwOUIgICAgIChiYXNlIDE2KQkJUkVMSUFOQ0UgQ09NTS9URUMsIFItVEVDCisJCQkJU1lTVEVNUyBJTkMuCisJCQkJMjEwMCBSRUxJQU5DRSBQQVJLV0FZLCAgTVMgMjIKKwkJCQlCRURGT1JEIFRYIDc2MDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC05QyAgIChoZXgpCQlISU9LSSBFLkUuIENPUlBPUkFUSU9OCiswMEMwOUMgICAgIChiYXNlIDE2KQkJSElPS0kgRS5FLiBDT1JQT1JBVElPTgorCQkJCTgxIEtvaXp1bWksIFVlZGEsIE5hZ2FubworCQkJCUNoaXlvZGEta3UKKwkJCQlUb2t5byAgMzg2LTExOTIKKwkJCQlKQVBBTgorCiswMC1DMC05RCAgIChoZXgpCQlESVNUUklCVVRFRCBTWVNURU1TIElOVCdMLCBJTkMKKzAwQzA5RCAgICAgKGJhc2UgMTYpCQlESVNUUklCVVRFRCBTWVNURU1TIElOVCdMLCBJTkMKKwkJCQk1MzEgV0VTVCBST09TRVZMRVQgUkQsIFNURSAjMgorCQkJCVdIRUFUT04gSUwgNjAxODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTlFICAgKGhleCkJCUNBQ0hFIENPTVBVVEVSUywgSU5DLgorMDBDMDlFICAgICAoYmFzZSAxNikJCUNBQ0hFIENPTVBVVEVSUywgSU5DLgorCQkJCTQ2NjAwIExBTkRJTkcgUEFSS1dBWQorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTlGICAgKGhleCkJCVFVQU5UQSBDT01QVVRFUiwgSU5DLgorMDBDMDlGICAgICAoYmFzZSAxNikJCVFVQU5UQSBDT01QVVRFUiwgSU5DLgorCQkJCTdGLiwgMTE2LCBIT1UtS0FORyBTVC4sCisJCQkJU0hJSC1MSU4gRElTVC4gVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUMwLUEwICAgKGhleCkJCUFEVkFOQ0UgTUlDUk8gUkVTRUFSQ0gsIElOQy4KKzAwQzBBMCAgICAgKGJhc2UgMTYpCQlBRFZBTkNFIE1JQ1JPIFJFU0VBUkNILCBJTkMuCisJCQkJMjA0NSBDT1JQT1JBVEUgQ09VUlQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQTEgICAoaGV4KQkJVE9LWU8gREVOU0hJIFNFS0VJIENPLgorMDBDMEExICAgICAoYmFzZSAxNikJCVRPS1lPIERFTlNISSBTRUtFSSBDTy4KKwkJCQkyNTUtMSBSRU5LT0pJLCBUQU1BLVNISQorCQkJCVRPS1lPCisJCQkJSkFQQU4gMjA2CisJCQkJSkFQQU4KKworMDAtQzAtQTIgICAoaGV4KQkJSU5URVJNRURJVU0gQS9TCiswMEMwQTIgICAgIChiYXNlIDE2KQkJSU5URVJNRURJVU0gQS9TCisJCQkJT0RJTlNWRUogMTkKKwkJCQlESy0yNjAwIEdMT1NUUlVQCisJCQkJREVOTUFSSworCQkJCURFTk1BUksKKworMDAtQzAtQTMgICAoaGV4KQkJRFVBTCBFTlRFUlBSSVNFUyBDT1JQT1JBVElPTgorMDBDMEEzICAgICAoYmFzZSAxNikJCURVQUwgRU5URVJQUklTRVMgQ09SUE9SQVRJT04KKwkJCQk5VEggRkxPT1IgNDggTkFOLUtBTkcgUk9BRAorCQkJCVNFQy4zLCBUQUlQRUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQzAtQTQgICAoaGV4KQkJVU5JR1JBRiBPWQorMDBDMEE0ICAgICAoYmFzZSAxNikJCVVOSUdSQUYgT1kKKwkJCQlSVVVLSU5USUUgMTgKKwkJCQkwMjMyMCBFU1AwMAorCQkJCUZJTkxBTkQKKwkJCQlGSU5MQU5ECisKKzAwLUMwLUE1ICAgKGhleCkJCURJQ0tFTlMgREFUQSBTWVNURU1TCiswMEMwQTUgICAgIChiYXNlIDE2KQkJRElDS0VOUyBEQVRBIFNZU1RFTVMKKwkJCQkxMTc1IE5PUlRITUVBRE9XIFBLV1ktU1RFICMxNTAKKwkJCQlST1NXRUxMIEdBIDMwMDc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1BNiAgIChoZXgpCQlFWElDT00gQVVTVFJBTElBIFBUWS4gTFRECiswMEMwQTYgICAgIChiYXNlIDE2KQkJRVhJQ09NIEFVU1RSQUxJQSBQVFkuIExURAorCQkJCTQ0LTQ2IE1BTkRBUklOIFNUUkVFVAorCQkJCVZJTExBV09PRCBOU1cgMjE2MworCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC1DMC1BNyAgIChoZXgpCQlTRUVMIExURC4KKzAwQzBBNyAgICAgKGJhc2UgMTYpCQlTRUVMIExURC4KKwkJCQkzIFlPVU5HIFNRVUFSRQorCQkJCUxJVklOR1NUT04gIEVINTQgIDlCSgorCQkJCVNDT1RMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtQTggICAoaGV4KQkJR1ZDIENPUlBPUkFUSU9OCiswMEMwQTggICAgIChiYXNlIDE2KQkJR1ZDIENPUlBPUkFUSU9OCisJCQkJMTk2MSBDT05DT1VSU0UgRFJJVkUtU1RFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUE5ICAgKGhleCkJCUJBUlJPTiBNQ0NBTk4gTFRELgorMDBDMEE5ICAgICAoYmFzZSAxNikJCUJBUlJPTiBNQ0NBTk4gTFRELgorCQkJCUJFTUFDIEhPVVNFCisJCQkJRklGVEggQVZFTlVFLCBMRVRDSFdPUlRIIEhFUlRTLiwgU0c2IDJIRgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtQUEgICAoaGV4KQkJU0lMSUNPTiBWQUxMRVkgQ09NUFVURVIKKzAwQzBBQSAgICAgKGJhc2UgMTYpCQlTSUxJQ09OIFZBTExFWSBDT01QVVRFUgorCQkJCTQ0MSBOLiBXSElTTUFOIFJELiwgQkxERy4jMTMKKwkJCQlNVC4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQUIgICAoaGV4KQkJVGVsY28gU3lzdGVtcywgSW5jLgorMDBDMEFCICAgICAoYmFzZSAxNikJCVRlbGNvIFN5c3RlbXMsIEluYy4KKwkJCQkxNSBCZXJrc2hpcmUgUm9hZAorCQkJCU1hbnNmaWVsZCwgTUEgMDIwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUFDICAgKGhleCkJCUdBTUJJVCBDT01QVVRFUiBDT01NVU5JQ0FUSU9OUworMDBDMEFDICAgICAoYmFzZSAxNikJCUdBTUJJVCBDT01QVVRFUiBDT01NVU5JQ0FUSU9OUworCQkJCVNPTFRBTSBJTkRVU1RSSUFMIFBBUksKKwkJCQlQLk8uIEJPWCAxMDcgWU9LTkVBTSAyMDY5MgorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC1DMC1BRCAgIChoZXgpCQlNQVJCRU4gQ09NTVVOSUNBVElPTiBTWVNURU1TCiswMEMwQUQgICAgIChiYXNlIDE2KQkJTUFSQkVOIENPTU1VTklDQVRJT04gU1lTVEVNUworCQkJCTEgUlVFIERVIEJPSVMgQ0hBTEFORAorCQkJCUxJU1NFUyA5MTAyOSBFVlJZIENFREVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLUMwLUFFICAgKGhleCkJCVRPV0VSQ09NIENPLiBJTkMuIERCQSBQQyBIT1VTRQorMDBDMEFFICAgICAoYmFzZSAxNikJCVRPV0VSQ09NIENPLiBJTkMuIERCQSBQQyBIT1VTRQorCQkJCTg0MSBFLiBBUlRFU0lBIEJMVkQuCisJCQkJQ0FSU09OIENBIDkwNzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1BRiAgIChoZXgpCQlURUtMT0dJWCBJTkMuCiswMEMwQUYgICAgIChiYXNlIDE2KQkJVEVLTE9HSVggSU5DLgorCQkJCTIxMDAgTUVBRE9XVkFMRSBCT1VMRVZBUkQKKwkJCQlNSVNTSVNTQVVHQSwgT05UQVJJTywKKwkJCQlDQU5BREEgTDVOIDdKOQorCQkJCUNBTkFEQQorCiswMC1DMC1CMCAgIChoZXgpCQlHQ0MgVEVDSE5PTE9HSUVTLElOQy4KKzAwQzBCMCAgICAgKGJhc2UgMTYpCQlHQ0MgVEVDSE5PTE9HSUVTLElOQy4KKwkJCQk1ODAgV0lOVEVSIFNUUkVFVAorCQkJCVdBTFRIQU0gTUEgMDIxNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUIxICAgKGhleCkJCUdFTklVUyBORVQgQ08uCiswMEMwQjEgICAgIChiYXNlIDE2KQkJR0VOSVVTIE5FVCBDTy4KKwkJCQk0RiwgSEFOU09PIEIvRCAyMTAtNQorCQkJCVlBTkdKQUUtRE9ORywgU0VPQ0hPLUdVIFNFT1VMCisJCQkJU09VVEggS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtQzAtQjIgICAoaGV4KQkJTk9SQU5EIENPUlBPUkFUSU9OCiswMEMwQjIgICAgIChiYXNlIDE2KQkJTk9SQU5EIENPUlBPUkFUSU9OCisJCQkJNTUwIDJORCBTVFJFRVQgU0UKKwkJCQlDRURBUiBSQVBJRFMgSUEgNTI0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUIzICAgKGhleCkJCUNPTVNUQVQgREFUQUNPTU0gQ09SUE9SQVRJT04KKzAwQzBCMyAgICAgKGJhc2UgMTYpCQlDT01TVEFUIERBVEFDT01NIENPUlBPUkFUSU9OCisJCQkJMTcyMCBTUEVDVFJVTSBEUklWRQorCQkJCUxBV1JFTkNFVklMTEUgR0EgMzAyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUI0ICAgKGhleCkJCU1ZU09OIFRFQ0hOT0xPR1ksIElOQy4KKzAwQzBCNCAgICAgKGJhc2UgMTYpCQlNWVNPTiBURUNITk9MT0dZLCBJTkMuCisJCQkJMkYsIE5PLiAzLCBJTkRVU1RSWSBFLiBSRC5JVgorCQkJCVNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLIEhTSU5DSFUsICgKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUMwLUI1ICAgKGhleCkJCUNPUlBPUkFURSBORVRXT1JLIFNZU1RFTVMsSU5DLgorMDBDMEI1ICAgICAoYmFzZSAxNikJCUNPUlBPUkFURSBORVRXT1JLIFNZU1RFTVMsSU5DLgorCQkJCTU3MTEgU0lYIEZPUktTIFJPQUQtLVNURSAjMzA2CisJCQkJUkFMRUlHSCBOQyAyNzYwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQjYgICAoaGV4KQkJT3ZlcmxhbmQgU3RvcmFnZSwgSW5jLgorMDBDMEI2ICAgICAoYmFzZSAxNikJCU92ZXJsYW5kIFN0b3JhZ2UsIEluYy4KKwkJCQk0ODIwIE92ZXJsYW5kIEF2ZW51ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQjcgICAoaGV4KQkJQU1FUklDQU4gUE9XRVIgQ09OVkVSU0lPTiBDT1JQCiswMEMwQjcgICAgIChiYXNlIDE2KQkJQU1FUklDQU4gUE9XRVIgQ09OVkVSU0lPTiBDT1JQCisJCQkJMjY3IEJPU1RPTiBST0FEICMyCisJCQkJTk9SVEggQklMTEVSSUNBIE1BIDAxODYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1COCAgIChoZXgpCQlGUkFTRVInUyBISUxMIExURC4KKzAwQzBCOCAgICAgKGJhc2UgMTYpCQlGUkFTRVInUyBISUxMIExURC4KKwkJCQkyNzUwMiBXLiBHSUxMIFJPQUQKKwkJCQlQLk8uIEJPWCAxODkKKwkJCQlNT1JSSVNUT1dOIEFaIDg1MzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1COSAgIChoZXgpCQlGVU5LIFNPRlRXQVJFLCBJTkMuCiswMEMwQjkgICAgIChiYXNlIDE2KQkJRlVOSyBTT0ZUV0FSRSwgSU5DLgorCQkJCTIyMiBUSElSRCBTVFJFRVQKKwkJCQlDQU1CUklER0UgTUEgMDIxNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUJBICAgKGhleCkJCU5FVFZBTlRBR0UKKzAwQzBCQSAgICAgKGJhc2UgMTYpCQlORVRWQU5UQUdFCisJCQkJMjAxIENPTlRJTkVOVEFMIEJMVkQuLVNURS4jMjAxCisJCQkJRUwgU0VDVU5ETyBDQSA5MDI0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQkIgICAoaGV4KQkJRk9SVkFMIENSRUFUSVZFLCBJTkMuCiswMEMwQkIgICAgIChiYXNlIDE2KQkJRk9SVkFMIENSRUFUSVZFLCBJTkMuCisJCQkJMy0yNy0xMiBIT05HTworCQkJCUJVTktZTy1LVSBUT0tZTyAgMTEzCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC1CQyAgIChoZXgpCQlURUxFQ09NIEFVU1RSQUxJQS9DU1NDCiswMEMwQkMgICAgIChiYXNlIDE2KQkJVEVMRUNPTSBBVVNUUkFMSUEvQ1NTQworCQkJCUxPQ0tFRCBCQUcgODgxMgorCQkJCVNPVVRIQ09BU1QgTUFJTCBDRU5UUkUgMjUyMSBOLlMuVy4KKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtQzAtQkQgICAoaGV4KQkJSU5FWCBURUNITk9MT0dJRVMsIElOQy4KKzAwQzBCRCAgICAgKGJhc2UgMTYpCQlJTkVYIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTMzNTAgU0NPVFQgQkxWRC4KKwkJCQlCTERHLiMyOQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1CRSAgIChoZXgpCQlBTENBVEVMIC0gU0VMCiswMEMwQkUgICAgIChiYXNlIDE2KQkJQUxDQVRFTCAtIFNFTAorCQkJCUxPUkVOWiBTVFIuCisJCQkJNzAwMCBTVFVUVEdBUlQgNDAKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1DMC1CRiAgIChoZXgpCQlURUNITk9MT0dZIENPTkNFUFRTLCBMVEQuCiswMEMwQkYgICAgIChiYXNlIDE2KQkJVEVDSE5PTE9HWSBDT05DRVBUUywgTFRELgorCQkJCUdSQU5HRSBFU1RBVEUKKwkJCQlDV01CUkFOLCBHV0VOVCwgTlA0NCAzWFIKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLUMwICAgKGhleCkJCVNIT1JFIE1JQ1JPU1lTVEVNUywgSU5DLgorMDBDMEMwICAgICAoYmFzZSAxNikJCVNIT1JFIE1JQ1JPU1lTVEVNUywgSU5DLgorCQkJCTIzIFBPQ0FIT05UQVMgQVZFTlVFCisJCQkJT0NFQU5QT1JUIE5KIDA3NzU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1DMSAgIChoZXgpCQlRVUFEL0dSQVBISUNTLCBJTkMuCiswMEMwQzEgICAgIChiYXNlIDE2KQkJUVVBRC9HUkFQSElDUywgSU5DLgorCQkJCU42MyBXMjMwNzUgSFdZIDc0CisJCQkJU1VTU0VYIFdJIDUzMDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1DMiAgIChoZXgpCQlJTkZJTklURSBORVRXT1JLUyBMVEQuCiswMEMwQzIgICAgIChiYXNlIDE2KQkJSU5GSU5JVEUgTkVUV09SS1MgTFRELgorCQkJCTE5IEJST09LU0lERSBST0FELCBPWEhFWQorCQkJCVdBVEZPUkQsIEhFUlRTICBXRDEgNEJXIEVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLUMzICAgKGhleCkJCUFDVVNPTiBDT01QVVRFRCBTT05PR1JBUEhZCiswMEMwQzMgICAgIChiYXNlIDE2KQkJQUNVU09OIENPTVBVVEVEIFNPTk9HUkFQSFkKKwkJCQkxMjIwIENIQVJMRVNUT04gUk9BRAorCQkJCVAuTy4gQk9YIDczOTMKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDM5LTczOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUM0ICAgKGhleCkJCUNPTVBVVEVSIE9QRVJBVElPTkFMCiswMEMwQzQgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgT1BFUkFUSU9OQUwKKwkJCQlSRVFVSVJFTUVOVCBBTkFMWVNUUyBMVEQKKwkJCQlDT1JBTCBIT1VTRSwgMjc0QSBISUdIIFNUUkVFVCBBTERFUlNIT1QsCisJCQkJR1UxMiA0TFogR1UxMiA0TFogRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLUM1ICAgKGhleCkJCVNJRCBJTkZPUk1BVElDQQorMDBDMEM1ICAgICAoYmFzZSAxNikJCVNJRCBJTkZPUk1BVElDQQorCQkJCVJVQSBEUi4gR0VSQUxETyBDQU1QT1MgTU9SRUlSQQorCQkJCTI0MCAtIDUgQU5EQVIgQ0VQIDA0NTcxLTAyMCBTQU8gUEFVTE8gLQorCQkJCUJSQVpJTAorCQkJCUJSQVpJTAorCiswMC1DMC1DNiAgIChoZXgpCQlQRVJTT05BTCBNRURJQSBDT1JQLgorMDBDMEM2ICAgICAoYmFzZSAxNikJCVBFUlNPTkFMIE1FRElBIENPUlAuCisJCQkJMS03LTcgTVkgQkxERy4gSElSQVRTVUtBCisJCQkJU0hJTkFHQVdBLCAgVE9LWU8gMTQyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC1DNyAgIChoZXgpCQlTUEFSS1RSVU0gTUlDUk9TWVNURU1TLCBJTkMuCiswMEMwQzcgICAgIChiYXNlIDE2KQkJU1BBUktUUlVNIE1JQ1JPU1lTVEVNUywgSU5DLgorCQkJCTI4NjAgWkFOS0VSIFJPQUQsICBTVEUuIzIxMAorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1DOCAgIChoZXgpCQlNSUNSTyBCWVRFIFBUWS4gTFRELgorMDBDMEM4ICAgICAoYmFzZSAxNikJCU1JQ1JPIEJZVEUgUFRZLiBMVEQuCisJCQkJMTk3IFNIRVJCT1VSTkUgUkQuCisJCQkJTU9OVE1PUkVOQ1kgTUVMQk9VUk5FIFZJQworCQkJCUFVU1RSQUxJQSAzMDk0CisJCQkJQVVTVFJBTElBCisKKzAwLUMwLUM5ICAgKGhleCkJCUVMU0FHIEJBSUxFWSBQUk9DRVNTCiswMEMwQzkgICAgIChiYXNlIDE2KQkJRUxTQUcgQkFJTEVZIFBST0NFU1MKKwkJCQlBVVRPTUFUSU9OCisJCQkJMjk4MDEgRVVDTElEIEFWRU5VRSBNUy0zUzEKKwkJCQlXSUNLTElGRkUgT0ggNDQwOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUNBICAgKGhleCkJCUFMRkEsIElOQy4KKzAwQzBDQSAgICAgKGJhc2UgMTYpCQlBTEZBLCBJTkMuCisJCQkJMTEtMSwgSU5EVVNUUlkgRUFTVCBST0FEIElWCisJCQkJU0NJRU5DRSBCQVNFRCBJTkRVU1RSSUFMIFBBUksgSFNJTkNIVQorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQzAtQ0IgICAoaGV4KQkJQ09OVFJPTCBURUNITk9MT0dZIENPUlBPUkFUSU9OCiswMEMwQ0IgICAgIChiYXNlIDE2KQkJQ09OVFJPTCBURUNITk9MT0dZIENPUlBPUkFUSU9OCisJCQkJMjUgU09VVEggU1RSRUVUCisJCQkJSE9QS0lOVE9OIE1BIDAxNzQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1DQyAgIChoZXgpCQlURUxFU0NJRU5DRVMgQ08gU1lTVEVNUywgSU5DLgorMDBDMENDICAgICAoYmFzZSAxNikJCVRFTEVTQ0lFTkNFUyBDTyBTWVNURU1TLCBJTkMuCisJCQkJMzUxIE5FVyBBTEJBTlkgUkQuCisJCQkJTU9PUkVTVE9XTiBOSiAwODA1Ny0xMTc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1DRCAgIChoZXgpCQlDT01FTFRBLCBTLkEuCiswMEMwQ0QgICAgIChiYXNlIDE2KQkJQ09NRUxUQSwgUy5BLgorCQkJCUFWREEuIFBBUkMgVEVDTk9MT0dJQywgNAorCQkJCTA4MjkwIENFUkRBTllPTEEgREVMIFZBTExFUyBCQVJDRUxPTkEKKwkJCQlTUEFJTgorCQkJCVNQQUlOCisKKzAwLUMwLUNFICAgKGhleCkJCUNFSSBTWVNURU1TICYgRU5HSU5FRVJJTkcgUFRFCiswMEMwQ0UgICAgIChiYXNlIDE2KQkJQ0VJIFNZU1RFTVMgJiBFTkdJTkVFUklORyBQVEUKKwkJCQlCTEsgNzMgIzAyLTE4IEFZRVIgUkFKQUggQ1JFU0MKKwkJCQlBWUVSIFJBSkFIIElORFVTVFJJQUwgRVNUQVRFCisJCQkJU0lOR0FQT1JFIDA1MTMKKwkJCQlTSU5HQVBPUkUKKworMDAtQzAtQ0YgICAoaGV4KQkJSU1BVFJBTiBWT0lNQSBPWQorMDBDMENGICAgICAoYmFzZSAxNikJCUlNQVRSQU4gVk9JTUEgT1kKKwkJCQlJVk8KKwkJCQlQLk8uIEJPWCAzNDAgMDIxNTEgRVNQT08KKwkJCQlGSU5MQU5ECisJCQkJRklOTEFORAorCiswMC1DMC1EMCAgIChoZXgpCQlSQVRPQyBTWVNURU0gSU5DLgorMDBDMEQwICAgICAoYmFzZSAxNikJCVJBVE9DIFNZU1RFTSBJTkMuCisJCQkJQVNBSEkgTkFNQkEgQkxERy4KKwkJCQkxLTYtMTQgU0hJS0lUU1UgSElHQVNISSBOQU5JV0FLVSBPU0FLQSBDCisJCQkJNTU2IEpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtRDEgICAoaGV4KQkJQ09NVFJFRSBURUNITk9MT0dZIENPUlBPUkFUSU9OCiswMEMwRDEgICAgIChiYXNlIDE2KQkJQ09NVFJFRSBURUNITk9MT0dZIENPUlBPUkFUSU9OCisJCQkJNUYtNywgTk8uIDEsIEZVLUhTSU5HIE5PUlRIIFJECisJCQkJVEFJUEVJCisJCQkJVEFJV0FOIFIuTy5DLgorCQkJCUNISU5BCisKKzAwLUMwLUQyICAgKGhleCkJCVNZTlRFTExFQ1QsIElOQy4KKzAwQzBEMiAgICAgKGJhc2UgMTYpCQlTWU5URUxMRUNULCBJTkMuCisJCQkJMTU4MTAgTi4gMjhUSCBBVkVOVUUKKwkJCQlQSE9FTklYIEFaIDg1MDIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1EMyAgIChoZXgpCQlPTFlNUFVTIElNQUdFIFNZU1RFTVMsIElOQy4KKzAwQzBEMyAgICAgKGJhc2UgMTYpCQlPTFlNUFVTIElNQUdFIFNZU1RFTVMsIElOQy4KKwkJCQkxNTI3MSBCQVJSQU5DQSBQQVJLV0FZCisJCQkJSVJWSU5FIENBIDkyNzE4LTIyMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUQ0ICAgKGhleCkJCUFYT04gTkVUV09SS1MsIElOQy4KKzAwQzBENCAgICAgKGJhc2UgMTYpCQlBWE9OIE5FVFdPUktTLCBJTkMuCisJCQkJMTA0IFNQUlVDRSBTVFJFRVQKKwkJCQlXQVRFUlRPV04gTUEgMDIxNzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUQ1ICAgKGhleCkJCVdlcmJlYWdlbnR1ciBK/HJnZW4gU2llYmVydAorMDBDMEQ1ICAgICAoYmFzZSAxNikJCVdlcmJlYWdlbnR1ciBK/HJnZW4gU2llYmVydAorCQkJCUltIEtsb3N0ZXJnYXJ0ZW4gOAorCQkJCUQtNTAzMjEgQnL8aGwgIAorCQkJCUdFUk1BTlkKKworMDAtQzAtRDYgICAoaGV4KQkJSjEgU1lTVEVNUywgSU5DLgorMDBDMEQ2ICAgICAoYmFzZSAxNikJCUoxIFNZU1RFTVMsIElOQy4KKwkJCQkzIERVTldPT0RZIFBBUkstU1RFLiMxMDMKKwkJCQlBVExBTlRBIEdBIDMwMzM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1ENyAgIChoZXgpCQlUQUlXQU4gVFJBRElORyBDRU5URVIgREJBCiswMEMwRDcgICAgIChiYXNlIDE2KQkJVEFJV0FOIFRSQURJTkcgQ0VOVEVSIERCQQorCQkJCVRUQyBDT01QVVRFUiBQUk9EVUNUUworCQkJCTMyNDQgTi4gU0tZV0FZIENJUkNMRSAjMTAyCisJCQkJSVJWSU5HIFRYIDc1MDM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1EOCAgIChoZXgpCQlVTklWRVJTQUwgREFUQSBTWVNURU1TCiswMEMwRDggICAgIChiYXNlIDE2KQkJVU5JVkVSU0FMIERBVEEgU1lTVEVNUworCQkJCTUwMDAgQlJBREZPUkQgRFJJVkUKKwkJCQlIVU5UU1ZJTExFIEFMIDM1ODA1LTE5OTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUQ5ICAgKGhleCkJCVFVSU5URSBORVRXT1JLIENPTkZJREVOVElBTElUWQorMDBDMEQ5ICAgICAoYmFzZSAxNikJCVFVSU5URSBORVRXT1JLIENPTkZJREVOVElBTElUWQorCQkJCUVRVUlQTUVOVCBJTkMuCisJCQkJMjA3IC0gMTIxIERJTURBUyBTVFJFRVQgRUFTVCBCRUxMRVZJTExFLAorCQkJCUNBTkFEQSBLOE4gMUMzCisJCQkJQ0FOQURBCisKKzAwLUMwLURBICAgKGhleCkJCU5JQ0UgU1lTVEVNUyBMVEQuCiswMEMwREEgICAgIChiYXNlIDE2KQkJTklDRSBTWVNURU1TIExURC4KKwkJCQkzIFRFVlVPVCBIQSdBUkVUWiBTVAorCQkJCVRFTCBBVklWICA2OTU0NgorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC1DMC1EQiAgIChoZXgpCQlJUEMgQ09SUE9SQVRJT04gKFBURSkgTFRELgorMDBDMERCICAgICAoYmFzZSAxNikJCUlQQyBDT1JQT1JBVElPTiAoUFRFKSBMVEQuCisJCQkJMTIyIEVVTk9TIEFWRS4sIDcgIzA1LTEwCisJCQkJU0lOR0FQT1JFIDE0NDAKKwkJCQlTSU5HQVBPUkUKKworMDAtQzAtREMgICAoaGV4KQkJRU9TIFRFQ0hOT0xPR0lFUywgSU5DLgorMDBDMERDICAgICAoYmFzZSAxNikJCUVPUyBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkzOTQ1IEZSRUVET00gQ0lSQ0xFLCBTVEUuIzc3MAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1ERCAgIChoZXgpCQlRTG9naWMgQ29ycG9yYXRpb24KKzAwQzBERCAgICAgKGJhc2UgMTYpCQlRTG9naWMgQ29ycG9yYXRpb24KKwkJCQk2MzIxIEJ1cnkgRHIuCisJCQkJRWRlbiBQcmFyaWUgTU4gNTUzNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLURFICAgKGhleCkJCVpDT01NLCBJTkMuCiswMEMwREUgICAgIChiYXNlIDE2KQkJWkNPTU0sIElOQy4KKwkJCQkxMDUwIEMgRUFTVCBEVUFORSBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLURGICAgKGhleCkJCUtZRSBTeXN0ZW1zIENvcnAuCiswMEMwREYgICAgIChiYXNlIDE2KQkJS1lFIFN5c3RlbXMgQ29ycC4KKwkJCQlOby4gNDkyIFNlYyA1LCBDaHVuZyBIc2luIFJvYWQKKwkJCQlUYWlwZWkgSHNpZW4gMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1DMC1FMCAgIChoZXgpCQlEU0MgQ09NTVVOSUNBVElPTiBDT1JQLgorMDBDMEUwICAgICAoYmFzZSAxNikJCURTQyBDT01NVU5JQ0FUSU9OIENPUlAuCisJCQkJMTAwMCBDT0lUIFJPQUQsICBNUyNBRFZQIDMKKwkJCQlQTEFOTyBUWCA3NTA3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRTEgICAoaGV4KQkJU09OSUMgU09MVVRJT05TCiswMEMwRTEgICAgIChiYXNlIDE2KQkJU09OSUMgU09MVVRJT05TCisJCQkJMTg5MSBFLiBGUkFOQ0lTQ08gQkxWRC4KKwkJCQlTQU4gUkFGQUVMIENBIDk0OTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1FMiAgIChoZXgpCQlDQUxDT01QLCBJTkMuCiswMEMwRTIgICAgIChiYXNlIDE2KQkJQ0FMQ09NUCwgSU5DLgorCQkJCTI0MTEgVy4gTEFQQUxNQSBBVkVOVUUKKwkJCQlQLk8uIEJPWCAzMjUwLCBNUzIyCisJCQkJQU5BSEVJTSBDQSA5MjgwMy0zMjUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1FMyAgIChoZXgpCQlPU0lURUNIIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEMwRTMgICAgIChiYXNlIDE2KQkJT1NJVEVDSCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTY3OSBTT1VUSEdBVEUgRFJJVkUKKwkJCQlHVUVMUEgsIE9OVEFSSU8KKwkJCQlDQU5BREEgTjFHIDRTMgorCQkJCUNBTkFEQQorCiswMC1DMC1FNCAgIChoZXgpCQlTSUVNRU5TIEJVSUxESU5HCiswMEMwRTQgICAgIChiYXNlIDE2KQkJU0lFTUVOUyBCVUlMRElORworCQkJCVRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTEwMDAgREVFUkZJRUxEIFBBUktXQVkKKwkJCQlCVUZGQUxPIEdST1ZFIElMIDYwMDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1FNSAgIChoZXgpCQlHRVNQQUMsIFMuQS4KKzAwQzBFNSAgICAgKGJhc2UgMTYpCQlHRVNQQUMsIFMuQS4KKwkJCQlDSEVNSU4gREVTIEFVTFggMTgKKwkJCQlDSC0xMjI4IEdFTkVWQQorCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDAtQzAtRTYgICAoaGV4KQkJVmVyaWxpbmsgQ29ycG9yYXRpb24KKzAwQzBFNiAgICAgKGJhc2UgMTYpCQlWZXJpbGluayBDb3Jwb3JhdGlvbgorCQkJCTEyNyBKZXRwbGV4IENpcmNsZQorCQkJCU1hZGlzb24gQUwgMzU3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUU3ICAgKGhleCkJCUZJQkVSREFUQSBBQgorMDBDMEU3ICAgICAoYmFzZSAxNikJCUZJQkVSREFUQSBBQgorCQkJCVAuTy4gQk9YIDIwMDk1CisJCQkJUy0xNjEwMiBCUk9NTUEKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtQzAtRTggICAoaGV4KQkJUExFWENPTSwgSU5DLgorMDBDMEU4ICAgICAoYmFzZSAxNikJCVBMRVhDT00sIElOQy4KKwkJCQk2NSBNT1JFTEFORCBST0FERU5VWUUKKwkJCQlTSU1JIFZBTExFWSBDQSA5MzA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRTkgICAoaGV4KQkJT0FLIFNPTFVUSU9OUywgTFRELgorMDBDMEU5ICAgICAoYmFzZSAxNikJCU9BSyBTT0xVVElPTlMsIExURC4KKwkJCQlCUk9BRFdBWSBIT1VTRQorCQkJCTE0OS0xNTEgU1QgTkVPVFMgUkQsIEhBUkRXSUNLIENBTUJSSURHRQorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1DMC1FQSAgIChoZXgpCQlBUlJBWSBURUNITk9MT0dZIExURC4KKzAwQzBFQSAgICAgKGJhc2UgMTYpCQlBUlJBWSBURUNITk9MT0dZIExURC4KKwkJCQkxNDUgRlJJTUxFWSBST0FECisJCQkJQ0FNQkVSTEVZLCBTVVJSRVkKKwkJCQlFTkdMQU5EIEdVMTUgMlBTCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtRUIgICAoaGV4KQkJU0VIIENPTVBVVEVSVEVDSE5JSyBHTUJICiswMEMwRUIgICAgIChiYXNlIDE2KQkJU0VIIENPTVBVVEVSVEVDSE5JSyBHTUJICisJCQkJU3VlZHJpbmcgMTEKKwkJCQlQLk8uIEJPWCAxNDA4MjkgRC0zMzYyOCBCaWVsZWZlbGQKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1DMC1FQyAgIChoZXgpCQlEQVVQSElOIFRFQ0hOT0xPR1kKKzAwQzBFQyAgICAgKGJhc2UgMTYpCQlEQVVQSElOIFRFQ0hOT0xPR1kKKwkJCQk0NTAgRUlTRU5IT1dFUiBMQU5FIE5PUlRICisJCQkJTE9NQkFSRCBJTCA2MDE0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRUQgICAoaGV4KQkJVVMgQVJNWSBFTEVDVFJPTklDCiswMEMwRUQgICAgIChiYXNlIDE2KQkJVVMgQVJNWSBFTEVDVFJPTklDCisJCQkJUFJPVklORyBHUk9VTkQKKwkJCQkxODM4IFBBU0VPIFNBTiBMVUlTCisJCQkJU0lFUlJBIFZJU1RBIEFaIDg1NjM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1FRSAgIChoZXgpCQlLWU9DRVJBIENPUlBPUkFUSU9OCiswMEMwRUUgICAgIChiYXNlIDE2KQkJS1lPQ0VSQSBDT1JQT1JBVElPTgorCQkJCTItMTQtOSBUQU1BR0FXQURBSQorCQkJCVNFVEFHQVlBLUtVLCBUT0tZTworCQkJCTE1OCBKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLUVGICAgKGhleCkJCUFCSVQgQ09SUE9SQVRJT04KKzAwQzBFRiAgICAgKGJhc2UgMTYpCQlBQklUIENPUlBPUkFUSU9OCisJCQkJMjktMTEgSElSQU9LQS1DSE8KKwkJCQlIQUNISU9VSkktU0hJIFRPS1lPCisJCQkJMTkyIEpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtRjAgICAoaGV4KQkJS0lOR1NUT04gVEVDSE5PTE9HWSBDT1JQLgorMDBDMEYwICAgICAoYmFzZSAxNikJCUtJTkdTVE9OIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkxNzYwMCBORVdIT1BFIFNUUkVFVAorCQkJCUZPVU5UQUlOIFZBTExFWSBDQSA5MjcwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRjEgICAoaGV4KQkJU0hJTktPIEVMRUNUUklDIENPLiwgTFRELgorMDBDMEYxICAgICAoYmFzZSAxNikJCVNISU5LTyBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQlDT01QVVRFUiBTWVNURU0gRElWSVNJT04KKwkJCQkxNTAgTU9UT1lBU0hJS0ksIFNBTllBLUNITyBUT1lPSEFTSEktU0hJCisJCQkJSkFQQU4gNDQxLTMxCisJCQkJSkFQQU4KKworMDAtQzAtRjIgICAoaGV4KQkJVFJBTlNJVElPTiBORVRXT1JLUworMDBDMEYyICAgICAoYmFzZSAxNikJCVRSQU5TSVRJT04gTkVUV09SS1MKKwkJCQk2NDc1IENJVFkgV0VTVCBQQVJLV0FZCisJCQkJTUlOTkVBUE9MSVMgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUYzICAgKGhleCkJCU5FVFdPUksgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwQzBGMyAgICAgKGJhc2UgMTYpCQlORVRXT1JLIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJNTUwMSBHUkVFTiBWQUxMRVkgRFJJVkUKKwkJCQlCTE9PTUlOR1RPTiBNTiA1NTQzNy0xMDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1GNCAgIChoZXgpCQlJTlRFUkxJTksgU1lTVEVNIENPLiwgTFRELgorMDBDMEY0ICAgICAoYmFzZSAxNikJCUlOVEVSTElOSyBTWVNURU0gQ08uLCBMVEQuCisJCQkJSU5URVJMSU5LIEIvRCwgNDc2LTIwCisJCQkJU0VPR1lPLURPTkcsIE1BUE8tS1UgU0VPVUwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1DMC1GNSAgIChoZXgpCQlNRVRBQ09NUCwgSU5DLgorMDBDMEY1ICAgICAoYmFzZSAxNikJCU1FVEFDT01QLCBJTkMuCisJCQkJMTA5ODkgVklBIEZST05URVJBCisJCQkJU0FOIERJRUdPIENBIDkyMTI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1GNiAgIChoZXgpCQlDRUxBTiBURUNITk9MT0dZIElOQy4KKzAwQzBGNiAgICAgKGJhc2UgMTYpCQlDRUxBTiBURUNITk9MT0dZIElOQy4KKwkJCQlOTy4gMTAxLCBNSU4tSFNJQU5HIFNULgorCQkJCUhTSU4tQ0hVIENJVFkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCUNISU5BCisKKzAwLUMwLUY3ICAgKGhleCkJCUVOR0FHRSBDT01NVU5JQ0FUSU9OLCBJTkMuCiswMEMwRjcgICAgIChiYXNlIDE2KQkJRU5HQUdFIENPTU1VTklDQVRJT04sIElOQy4KKwkJCQk5MDUzIFNPUVVFTCBEUklWRQorCQkJCUFQVE9TIENBIDk1MDAzLTQwMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUY4ICAgKGhleCkJCUFCT1VUIENPTVBVVElORyBJTkMuCiswMEMwRjggICAgIChiYXNlIDE2KQkJQUJPVVQgQ09NUFVUSU5HIElOQy4KKwkJCQlQLk8uIEJPWCAxNzIKKwkJCQlCRUxNT05UIE1BIDAyMTc4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1GOSAgIChoZXgpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIKKzAwQzBGOSAgICAgKGJhc2UgMTYpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIKKwkJCQkyOTAwIFMuIERpYWJsbyBXYXkgU3VpdGUgMTkwCisJCQkJVGVtcGUgQVogODUyODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUZBICAgKGhleCkJCUNBTkFSWSBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBDMEZBICAgICAoYmFzZSAxNikJCUNBTkFSWSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTE4NTEgWkFOS0VSIFJPQUQKKwkJCQlTQU4gSk9TRSBDQSA5NTExMi00MjEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1GQiAgIChoZXgpCQlBRFZBTkNFRCBURUNITk9MT0dZIExBQlMKKzAwQzBGQiAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBURUNITk9MT0dZIExBQlMKKwkJCQkyMjEwMCBCT1RIRUxMIEhJR0hXQVkgUy5FLgorCQkJCVAuTy4gQk9YIDMwMDMKKwkJCQlCT1RIRUxMIFdBIDk4MDQxLTMwMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUZDICAgKGhleCkJCUVMQVNUSUMgUkVBTElUWSwgSU5DLgorMDBDMEZDICAgICAoYmFzZSAxNikJCUVMQVNUSUMgUkVBTElUWSwgSU5DLgorCQkJCTkyNSBTVEVXQVJUIFNUUkVFVAorCQkJCU1BRElTT04gV0kgNTM3MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUZEICAgKGhleCkJCVBST1NVTQorMDBDMEZEICAgICAoYmFzZSAxNikJCVBST1NVTQorCQkJCTEyIFJVRSBTQURJLUNBUk5PVAorCQkJCTk0MzcwICBOT0lTRUFVCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLUMwLUZFICAgKGhleCkJCUFQVEVDIENPTVBVVEVSIFNZU1RFTVMsIElOQy4KKzAwQzBGRSAgICAgKGJhc2UgMTYpCQlBUFRFQyBDT01QVVRFUiBTWVNURU1TLCBJTkMuCisJCQkJUC5PLiBCT1ggNjc1MAorCQkJCVBPUlRMQU5EIE9SIDk3MjI4LTY3NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUZGICAgKGhleCkJCURPVCBISUxMIFNZU1RFTVMgQ09SUE9SQVRJT04KKzAwQzBGRiAgICAgKGJhc2UgMTYpCQlET1QgSElMTCBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJNjMwNSBFbCBDYW1pbm8gUmVhbAorCQkJCUNhcmxzYmFkIENBIDkyMDA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DQi1CRCAgIChoZXgpCQlDYW1icmlkZ2UgQnJvYWRiYW5kIE5ldHdvcmtzIEx0ZC4KKzAwQ0JCRCAgICAgKGJhc2UgMTYpCQlDYW1icmlkZ2UgQnJvYWRiYW5kIE5ldHdvcmtzIEx0ZC4KKwkJCQlTZWx3eW4gSG91c2UgQ2FtYnJpZGdlIEJ1c2luZXNzIFBhcmsKKwkJCQlDYW1icmlkZ2UgQnVzaW5lc3MgUGFyaworCQkJCUNhbWJyaWRnZSAgQ0I0IDBXWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUNGLTFDICAgKGhleCkJCUNPTU1VTklDQVRJT04gTUFDSElORVJZIENPUlAuCiswMENGMUMgICAgIChiYXNlIDE2KQkJQ09NTVVOSUNBVElPTiBNQUNISU5FUlkgQ09SUC4KKwkJCQkxMjI2IEFOQUNBUEEKKwkJCQlTQU5UQSBCQVJCQVJBIENBIDkzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0wMCAgIChoZXgpCQlGRVJSQU4gU0NJRU5USUZJQywgSU5DLgorMDBEMDAwICAgICAoYmFzZSAxNikJCUZFUlJBTiBTQ0lFTlRJRklDLCBJTkMuCisJCQkJMTE1NTggU09SUkVOVE8gVkFMTEVZIFJPQUQKKwkJCQlTVUlURSAgIzEKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTAxICAgKGhleCkJCVZTVCBURUNITk9MT0dJRVMsIElOQy4KKzAwRDAwMSAgICAgKGJhc2UgMTYpCQlWU1QgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTI1IE5BR09HIFBBUksKKwkJCQlBQ1RPTiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMDIgICAoaGV4KQkJRElURUNIIENPUlBPUkFUSU9OCiswMEQwMDIgICAgIChiYXNlIDE2KQkJRElURUNIIENPUlBPUkFUSU9OCisJCQkJODI1IEVBU1QgTUlERExFRklFTEQgUkQKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0wMyAgIChoZXgpCQlDT01EQSBFTlRFUlBSSVNFUyBDT1JQLgorMDBEMDAzICAgICAoYmFzZSAxNikJCUNPTURBIEVOVEVSUFJJU0VTIENPUlAuCisJCQkJMkYsIE5PLiA1MDEtMTgsIENIVU5HQ0hFTiBST0FECisJCQkJSFNJTlRJRU4sIFRBSVBFSQorCQkJCVRBSVdBTiBUQUlXQU4gUk9DCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC0wNCAgIChoZXgpCQlQRU5UQUNPTSBMVEQuCiswMEQwMDQgICAgIChiYXNlIDE2KQkJUEVOVEFDT00gTFRELgorCQkJCTggSEFTQUROQU9UIFNUUkVFVAorCQkJCVAuTy4gQk9YIDEyMTA5IEhFUlpMSUEgNDY3MzMKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtRDAtMDUgICAoaGV4KQkJWkhTIFpFSVRNQU5BR0VNRU5UU1lTVEVNRQorMDBEMDA1ICAgICAoYmFzZSAxNikJCVpIUyBaRUlUTUFOQUdFTUVOVFNZU1RFTUUKKwkJCQlIQVJELVVORCBTT0ZUV0FSRSBHTUJICisJCQkJS1JFVVpCRVJHRVIgUklORyA1NiA2NTIwNSBXSUVTQkFERU4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1EMC0wNiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEQwMDYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0wNyAgIChoZXgpCQlNSUMgQVNTT0NJQVRFUywgSU5DLgorMDBEMDA3ICAgICAoYmFzZSAxNikJCU1JQyBBU1NPQ0lBVEVTLCBJTkMuCisJCQkJMTUxMC0xLCBLQUlET0tJCisJCQkJVEFNQSwgVE9LWU8KKwkJCQlKQVBBTiBKQVBBTiAyMDYtMDAxMgorCQkJCUpBUEFOCisKKzAwLUQwLTA4ICAgKGhleCkJCU1BQ1RFTEwgQ09SUE9SQVRJT04KKzAwRDAwOCAgICAgKGJhc2UgMTYpCQlNQUNURUxMIENPUlBPUkFUSU9OCisJCQkJNzAwMCBDQU1FUk9OIFJPQUQKKwkJCQlBVVNUSU4gVFggNzg3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTA5ICAgKGhleCkJCUhTSU5HIFRFQ0guIEVOVEVSUFJJU0UgQ08uIExURAorMDBEMDA5ICAgICAoYmFzZSAxNikJCUhTSU5HIFRFQ0guIEVOVEVSUFJJU0UgQ08uIExURAorCQkJCU5PLjIsIExBTkUgMTI4LCBTRUMuIDIKKwkJCQlDSFVORyBTSEFOIE4uIFJELiBUQUlQRUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtMEEgICAoaGV4KQkJTEFOQUNDRVNTIFRFTEVDT00gUy5BLgorMDBEMDBBICAgICAoYmFzZSAxNikJCUxBTkFDQ0VTUyBURUxFQ09NIFMuQS4KKwkJCQlHUkFOIFZJQSA4LTEwICA0ICAxCisJCQkJMDg5MDItIEwnSE9TUElUQUxFVCBERSBMTE9CUkVHQVQKKwkJCQlTUEFJTgorCQkJCVNQQUlOCisKKzAwLUQwLTBCICAgKGhleCkJCVJISyBURUNITk9MT0dZLCBJTkMuCiswMEQwMEIgICAgIChiYXNlIDE2KQkJUkhLIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkxMDUwIEVBU1QgTUFQTEUgUk9BRAorCQkJCVRST1kgTUkgNDgwODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTBDICAgKGhleCkJCVNOSUpERVIgTUlDUk8gU1lTVEVNUworMDBEMDBDICAgICAoYmFzZSAxNikJCVNOSUpERVIgTUlDUk8gU1lTVEVNUworCQkJCVAuTy4gQk9YIDMwMAorCQkJCU5MLTU3NTAgQUggREVVUk5FCisJCQkJVEhFIE5FVEhFUkxBTkRTCisJCQkJTkVUSEVSTEFORFMKKworMDAtRDAtMEQgICAoaGV4KQkJTUlDUk9NRVJJVElDUyBJTlNUUlVNRU5UCiswMEQwMEQgICAgIChiYXNlIDE2KQkJTUlDUk9NRVJJVElDUyBJTlNUUlVNRU5UCisJCQkJQ09SUE9SQVRJT04KKwkJCQlPTkUgTUlDUk9NRUVSSVRJQ1MgRFJJVkUKKwkJCQlOT1JDUk9TUyBHQSAzMDA5My0xODc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0wRSAgIChoZXgpCQlQTFVSSVMsIElOQy4KKzAwRDAwRSAgICAgKGJhc2UgMTYpCQlQTFVSSVMsIElOQy4KKwkJCQkxMDQ1NSBCQU5ETEVZIERSSVZFCisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0wRiAgIChoZXgpCQlTUEVFQ0ggREVTSUdOIEdNQkgKKzAwRDAwRiAgICAgKGJhc2UgMTYpCQlTUEVFQ0ggREVTSUdOIEdNQkgKKwkJCQlJTkRVU1RSSUVTVFIuIDEKKwkJCQlELTgyMTEwIEdFUk1FUklORworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLTEwICAgKGhleCkJCUNPTlZFUkdFTlQgTkVUV09SS1MsIElOQy4KKzAwRDAxMCAgICAgKGJhc2UgMTYpCQlDT05WRVJHRU5UIE5FVFdPUktTLCBJTkMuCisJCQkJMiBISUdIV09PRCBEUklWRQorCQkJCVRFV0tTQlVSWSBNQSAwMTg3NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMTEgICAoaGV4KQkJUFJJU00gVklERU8sIElOQy4KKzAwRDAxMSAgICAgKGJhc2UgMTYpCQlQUklTTSBWSURFTywgSU5DLgorCQkJCTE1ODUxIERBTExBUyBQQVJLV0FZLVNURS4jMTA2MAorCQkJCUFERElTT04gVFggNzUwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTEyICAgKGhleCkJCUdBVEVXT1JLUyBDT1JQLgorMDBEMDEyICAgICAoYmFzZSAxNikJCUdBVEVXT1JLUyBDT1JQLgorCQkJCTc2MzEgTU9SUk8gUk9BRAorCQkJCUFUQVNDQURFUk8gQ0EgOTM0MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTEzICAgKGhleCkJCVBSSU1FWCBBRVJPU1BBQ0UgQ09NUEFOWQorMDBEMDEzICAgICAoYmFzZSAxNikJCVBSSU1FWCBBRVJPU1BBQ0UgQ09NUEFOWQorCQkJCVAuTy4gQk9YIDk3MDA5CisJCQkJMTE0NDEgV0lMTE9XUyBST0FEIE5FCisJCQkJUkVETU9ORCBXQSA5ODA3My05NzA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0xNCAgIChoZXgpCQlST09ULCBJTkMuCiswMEQwMTQgICAgIChiYXNlIDE2KQkJUk9PVCwgSU5DLgorCQkJCThGIFRPQzIgQmxkZywgNy0yMS0xMSBOaXNoaS1Hb3RhbmRhCisJCQkJU2hpbmFnYXdhLWt1CisJCQkJVG9reW8gMTQxLTAwMzEKKwkJCQlKQVBBTgorCiswMC1EMC0xNSAgIChoZXgpCQlVTklWRVggTUlDUk9URUNITk9MT0dZIENPUlAuCiswMEQwMTUgICAgIChiYXNlIDE2KQkJVU5JVkVYIE1JQ1JPVEVDSE5PTE9HWSBDT1JQLgorCQkJCTIsIFRaRS1DSElBTkcgM1JEIFJPQUQKKwkJCQlDSFVORy1MSSBJTkRVU1RSSUFMIFBBUkssIENIVU5HLUxJCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC0xNiAgIChoZXgpCQlTQ00gTUlDUk9TWVNURU1TLCBJTkMuCiswMEQwMTYgICAgIChiYXNlIDE2KQkJU0NNIE1JQ1JPU1lTVEVNUywgSU5DLgorCQkJCTE2MCBLTk9XTEVTIERSSVZFCisJCQkJTE9TIEdBVE9TIENBIDk1MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0xNyAgIChoZXgpCQlTWU5URUNIIElORk9STUFUSU9OIENPLiwgTFRELgorMDBEMDE3ICAgICAoYmFzZSAxNikJCVNZTlRFQ0ggSU5GT1JNQVRJT04gQ08uLCBMVEQuCisJCQkJOEYsIDIxMCwgVEEtVFVORyBSRC4sIFNFQy4gMworCQkJCUhTSS1DSElILCBUQUlQRUkgSFNJRU4KKwkJCQlUQUlXQU4gVEFJV0FOIFJPQworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtMTggICAoaGV4KQkJUVdFUy4gQ09NLCBJTkMuCiswMEQwMTggICAgIChiYXNlIDE2KQkJUVdFUy4gQ09NLCBJTkMuCisJCQkJMTQ3NDIgTkVXUE9SVCBBVkUuIC0gU1RFLiAjMjAzCisJCQkJVFVTVElOIENBIDkyNzgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0xOSAgIChoZXgpCQlEQUlOSVBQT04gU0NSRUVOIENPUlBPUkFURQorMDBEMDE5ICAgICAoYmFzZSAxNikJCURBSU5JUFBPTiBTQ1JFRU4gQ09SUE9SQVRFCisJCQkJUkVQUkVTRU5UQVRJVkVTIE9GIEFNRVJJQ0EsSU5DCisJCQkJMTc5NDIgQ09XQU4gQVZFTlVFCisJCQkJSVJWSU5FIENBIDkyNjE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0xQSAgIChoZXgpCQlVUk1FVCAgVExDIFMuUC5BLgorMDBEMDFBICAgICAoYmFzZSAxNikJCVVSTUVUICBUTEMgUy5QLkEuCisJCQkJVklBIERJIENBU1RFTCBST01BTk8gMTY3CisJCQkJMDAxMjggLSBST01BCisJCQkJSVRBTFkKKworMDAtRDAtMUIgICAoaGV4KQkJTUlNQUtJIEVOR0lORUVSSU5HIENPLiwgTFRELgorMDBEMDFCICAgICAoYmFzZSAxNikJCU1JTUFLSSBFTkdJTkVFUklORyBDTy4sIExURC4KKwkJCQk1LTktNDEgS0lUQSBTSElOQUdBV0EKKwkJCQlTSElOQUdBV0EtS1UgVE9LWU8gMTQxLTAwMDEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUQwLTFDICAgKGhleCkJCVNCUyBURUNITk9MT0dJRVMsCiswMEQwMUMgICAgIChiYXNlIDE2KQkJU0JTIFRFQ0hOT0xPR0lFUywKKwkJCQlDT05ORUNUSVZJVFkgUFJPRFVDVFMKKwkJCQkxMjg0IENPUlBPUkFURSBDRU5URVIgRFJJVkUKKwkJCQlTVC4gUEFVTCBNTiA1NTEyMS0xMjQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0xRCAgIChoZXgpCQlGVVJVTk8gRUxFQ1RSSUMgQ08uLCBMVEQuCiswMEQwMUQgICAgIChiYXNlIDE2KQkJRlVSVU5PIEVMRUNUUklDIENPLiwgTFRELgorCQkJCU5PLiA5LTUyLCBBU0hJSEFSQS1DSE8KKwkJCQlOSVNISU5PTUlZQS1DSVRZCisJCQkJNjYyLTg1ODAgCisJCQkJSkFQQU4KKworMDAtRDAtMUUgICAoaGV4KQkJUElOR1RFTCBDT1JQLgorMDBEMDFFICAgICAoYmFzZSAxNikJCVBJTkdURUwgQ09SUC4KKwkJCQk3NzMgV0lOVEVSIFNUUkVFVAorCQkJCU4uIEFORE9WRVIgTUEgMDE4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTFGICAgKGhleCkJCUNUQU0gUFRZLiBMVEQuCiswMEQwMUYgICAgIChiYXNlIDE2KQkJQ1RBTSBQVFkuIExURC4KKwkJCQkzOTkgSElHSCBTVFJFRVQKKwkJCQlBU0hCVVJUT04gMzE0NyBWSUNUT1JJQQorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC1EMC0yMCAgIChoZXgpCQlBSU0gU1lTVEVNLCBJTkMuCiswMEQwMjAgICAgIChiYXNlIDE2KQkJQUlNIFNZU1RFTSwgSU5DLgorCQkJCTRUSCBGTE9PUiBDSFVOR1dPTyBCL0QgMjE5LTEKKwkJCQlQT1lFRS1ET05HLCBHQU5HTkFNLUtVIFNFT0wsIDEzNS0yMDAKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1EMC0yMSAgIChoZXgpCQlSRUdFTlQgRUxFQ1RST05JQ1MgQ09SUC4KKzAwRDAyMSAgICAgKGJhc2UgMTYpCQlSRUdFTlQgRUxFQ1RST05JQ1MgQ09SUC4KKwkJCQkyMDAgQ0VOVEVOTklBTCBBVkUuLVNURS4gIzIwMQorCQkJCVBJU0NBVEFXQVkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTIyICAgKGhleCkJCUlOQ1JFRElCTEUgVEVDSE5PTE9HSUVTLCBJTkMuCiswMEQwMjIgICAgIChiYXNlIDE2KQkJSU5DUkVESUJMRSBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkxNjAwIEhJQ0tTIFJPQUQKKwkJCQlST0xMSU5HIE1FQURPV1MgSUwgNjAwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTIzICAgKGhleCkJCUlORk9SVFJFTkQgVEVDSE5PTE9HWSwgSU5DLgorMDBEMDIzICAgICAoYmFzZSAxNikJCUlORk9SVFJFTkQgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTEwRiwgTk8uIDMzIFNBTi1NSU4gUkQuCisJCQkJU0VDLiAyIFBBTkNISUFPIENJVFkgVEFJUEVJIEhTSUVOCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC0yNCAgIChoZXgpCQlDb2duZXggQ29ycG9yYXRpb24KKzAwRDAyNCAgICAgKGJhc2UgMTYpCQlDb2duZXggQ29ycG9yYXRpb24KKwkJCQlNb2R1bGFyIFZpc2lvbiBTeXN0ZW1zIERpdmlzaW9uCisJCQkJSW4tU2lnaHQgUHJvZHVjdHMgR3JvdXAgMTU4NjUgU1cgNzR0aCBBdgorCQkJCVBvcnRsYW5kIE9SIDk3MjI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0yNSAgIChoZXgpCQlYUk9TU1RFQ0gsIElOQy4KKzAwRDAyNSAgICAgKGJhc2UgMTYpCQlYUk9TU1RFQ0gsIElOQy4KKwkJCQlIQUJET05HIEIvRCA1RiAyMTAtMgorCQkJCVlBTkdKQUUtRE9ORywgU0VPQ0hPLUtVIFNFT1VMCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtRDAtMjYgICAoaGV4KQkJSElSU0NITUFOTiBBVVNUUklBIEdNQkgKKzAwRDAyNiAgICAgKGJhc2UgMTYpCQlISVJTQ0hNQU5OIEFVU1RSSUEgR01CSAorCQkJCU9CRVJFUiBQQVNQRUxTV0VHIDYgLSA4CisJCQkJNjgzMCBSQU5LV0VJTC1CUkVERVJJUworCQkJCUFVU1RSSUEKKwkJCQlBVVNUUklBCisKKzAwLUQwLTI3ICAgKGhleCkJCUFQUExJRUQgQVVUT01BVElPTiwgSU5DLgorMDBEMDI3ICAgICAoYmFzZSAxNikJCUFQUExJRUQgQVVUT01BVElPTiwgSU5DLgorCQkJCVAuTy4gQk9YIDk5OTkKKwkJCQlCQVJUTEVTVklMTEUgT0sgNzQwMDUtOTk5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMjggICAoaGV4KQkJT01ORU9OIFZJREVPIE5FVFdPUktTCiswMEQwMjggICAgIChiYXNlIDE2KQkJT01ORU9OIFZJREVPIE5FVFdPUktTCisJCQkJOTY1IFN0ZXdhcnQgRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYtMzkxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMjkgICAoaGV4KQkJV0FLRUZFUk4gRk9PRCBDT1JQT1JBVElPTgorMDBEMDI5ICAgICAoYmFzZSAxNikJCVdBS0VGRVJOIEZPT0QgQ09SUE9SQVRJT04KKwkJCQkyMzAgUkFSSVRBTiBDRU5URVIgUEFSS1dBWQorCQkJCUVESVNPTiBOSiAwODgzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMkEgICAoaGV4KQkJVm94ZW50IFN5c3RlbXMgTHRkLgorMDBEMDJBICAgICAoYmFzZSAxNikJCVZveGVudCBTeXN0ZW1zIEx0ZC4KKwkJCQlVbml0IDIsIFJvd2FuIEhvdXNlCisJCQkJU2hlbGRvbiBCdXNpbmVzcyBQYXJrCisJCQkJQ2hpcHBlbmhhbSBXaWx0c2hpcmUgU04xNCAwU1EKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC0yQiAgIChoZXgpCQlKRVRDRUxMLCBJTkMuCiswMEQwMkIgICAgIChiYXNlIDE2KQkJSkVUQ0VMTCwgSU5DLgorCQkJCTE3MyBDT05TVElUVVRJT04gRFJJVkUKKwkJCQlNRU5MTyBQQVJLIENBIDk0MDI1LTExMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTJDICAgKGhleCkJCUNBTVBCRUxMIFNDSUVOVElGSUMsIElOQy4KKzAwRDAyQyAgICAgKGJhc2UgMTYpCQlDQU1QQkVMTCBTQ0lFTlRJRklDLCBJTkMuCisJCQkJODE1IFcuIDE4MDAgTi4KKwkJCQlMT0dBTiBVVCA4NDMyMS0xNzg0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0yRCAgIChoZXgpCQlBREVNQ08KKzAwRDAyRCAgICAgKGJhc2UgMTYpCQlBREVNQ08KKwkJCQkxNjUgRUlMRUVOIFdBWQorCQkJCVNZT1NTRVQgTlkgMTE3OTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTJFICAgKGhleCkJCUNPTU1VTklDQVRJT04gQVVUT01BVElPTiBDT1JQLgorMDBEMDJFICAgICAoYmFzZSAxNikJCUNPTU1VTklDQVRJT04gQVVUT01BVElPTiBDT1JQLgorCQkJCTExODAgTUNERVJNT1RUIERSSVZFCisJCQkJV0VTVCBDSEVTVEVSIFBBIDE5MzgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0yRiAgIChoZXgpCQlWTFNJIFRFQ0hOT0xPR1kgSU5DLgorMDBEMDJGICAgICAoYmFzZSAxNikJCVZMU0kgVEVDSE5PTE9HWSBJTkMuCisJCQkJODM3NSBTLiBSSVZFUiBQQVJLV0FZCisJCQkJVEVNUEUgQVogODUyODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTMwICAgKGhleCkJCVNhZmV0cmFuIFN5c3RlbXMgQ29ycAorMDBEMDMwICAgICAoYmFzZSAxNikJCVNhZmV0cmFuIFN5c3RlbXMgQ29ycAorCQkJCTEwNjU1IDd0aCBTdHJlZXQKKwkJCQlSYW5jaG8gQ3VjYW1vbmdhIENBIDkxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0zMSAgIChoZXgpCQlJTkRVU1RSSUFMIExPR0lDIENPUlBPUkFUSU9OCiswMEQwMzEgICAgIChiYXNlIDE2KQkJSU5EVVNUUklBTCBMT0dJQyBDT1JQT1JBVElPTgorCQkJCTE1IFBJRURNT05UIENFTlRFUi1TVEUgIzcwMAorCQkJCUFUTEFOVEEgR0EgMzAzMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTMyICAgKGhleCkJCVlBTk8gRUxFQ1RSSUMgQ08uLCBMVEQuCiswMEQwMzIgICAgIChiYXNlIDE2KQkJWUFOTyBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQk3LTMtMSBJQlVLSURBSUhJR0FTSElNQUNISQorCQkJCU5JU0hJLUtVLCBLT0JFLCA2NTEtMjI0MgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtRDAtMzMgICAoaGV4KQkJREFMSUFOIERBWElBTiBORVRXT1JLCiswMEQwMzMgICAgIChiYXNlIDE2KQkJREFMSUFOIERBWElBTiBORVRXT1JLCisJCQkJU1lTVEVNIENPLiwgTFRELgorCQkJCTk4IFNIRU5HTEkgUkQgWElHQU5HIERJU1RSSUNUIERBTElBTiwgUC4KKwkJCQlDSElOQQorCQkJCUNISU5BCisKKzAwLUQwLTM0ICAgKGhleCkJCU9STUVDIFNZU1RFTVMgQ09SUC4KKzAwRDAzNCAgICAgKGJhc2UgMTYpCQlPUk1FQyBTWVNURU1TIENPUlAuCisJCQkJMTkgTElOREVOIFBBUksKKwkJCQlST0NIRVNURVIgTlkgMTQ2MjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTM1ICAgKGhleCkJCUJFSEFWSU9SIFRFQ0guIENPTVBVVEVSIENPUlAuCiswMEQwMzUgICAgIChiYXNlIDE2KQkJQkVIQVZJT1IgVEVDSC4gQ09NUFVURVIgQ09SUC4KKwkJCQkyMEYtQiwgTm8uOTgsIFNlYy4gMSwKKwkJCQlTaW50YWkgNXRoIFJkLgorCQkJCVNpamhpaCBDaXR5IFRhaXBlaSBDb3VudHkgMjIxMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLTM2ICAgKGhleCkJCVRFQ0hOT0xPR1kgQVRMQU5UQSBDT1JQLgorMDBEMDM2ICAgICAoYmFzZSAxNikJCVRFQ0hOT0xPR1kgQVRMQU5UQSBDT1JQLgorCQkJCTE0MSBXLiBXSUVVQ0EgUkQuIE4uRS4KKwkJCQlTVUlURSAjMzAwCisJCQkJQVRMQU5UQSBHQSAzMDM0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMzcgICAoaGV4KQkJUGFjZSBGcmFuY2UKKzAwRDAzNyAgICAgKGJhc2UgMTYpCQlQYWNlIEZyYW5jZQorCQkJCTMzIHJ1ZSBkZSBWZXJkdW4KKwkJCQk5MjE1MCBTdXJlc25lcyAKKwkJCQlGUkFOQ0UKKworMDAtRDAtMzggICAoaGV4KQkJRklWRU1FUkUsIExURC4KKzAwRDAzOCAgICAgKGJhc2UgMTYpCQlGSVZFTUVSRSwgTFRELgorCQkJCVVOSVQgMS1IRVJPTiBJTkRVU1RSSUFMIEVTVEFURQorCQkJCUJBU0lOR1NUT0tFIFJPQUQgU1BFTkNFUlMgV09PRCwgIFJFQURJTkcKKwkJCQlSRzcgMVBKIEVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC0zOSAgIChoZXgpCQlVVElMSUNPTSwgSU5DLgorMDBEMDM5ICAgICAoYmFzZSAxNikJCVVUSUxJQ09NLCBJTkMuCisJCQkJMzIzIExPVkUgUExBQ0UKKwkJCQlTQU5UQSBCQVJCQVJBIENBIDkzMTEyLTMyODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTNBICAgKGhleCkJCVpPTkVXT1JYLCBJTkMuCiswMEQwM0EgICAgIChiYXNlIDE2KQkJWk9ORVdPUlgsIElOQy4KKwkJCQk0MDkyNSBDT1VOVFkgQ0VOVEVSIERSSVZFCisJCQkJU1VJVEUgIzIwMAorCQkJCVRFTUVDVUxBIENBIDkyNTkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0zQiAgIChoZXgpCQlWSVNJT04gUFJPRFVDVFMgUFRZLiBMVEQuCiswMEQwM0IgICAgIChiYXNlIDE2KQkJVklTSU9OIFBST0RVQ1RTIFBUWS4gTFRELgorCQkJCVNFQ09ORCBBVkVOVUUsIFRFQ0hOT0xPR1kgUEFSSworCQkJCU1BV1NPTiBMQUtFUworCQkJCUFVU1RSQUxJQSA1MDk1CisJCQkJQVVTVFJBTElBCisKKzAwLUQwLTNDICAgKGhleCkJCVZpZW8sIEluYy4KKzAwRDAzQyAgICAgKGJhc2UgMTYpCQlWaWVvLCBJbmMuCisJCQkJMTI0MTYgSHltZWFkb3cgRHJpdmUsCisJCQkJU3VpdGUgMjAwCisJCQkJQXVzdGluIFRYIDc4NzUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0zRCAgIChoZXgpCQlHQUxJTEVPIFRFQ0hOT0xPR1ksIExURC4KKzAwRDAzRCAgICAgKGJhc2UgMTYpCQlHQUxJTEVPIFRFQ0hOT0xPR1ksIExURC4KKwkJCQlNT1NIQVYgTUFOT0YKKwkJCQlELk4uIE1JU0dBViAyMDE4NAorCQkJCUlTUkFFTAorCiswMC1EMC0zRSAgIChoZXgpCQlST0NLRVRDSElQUywgSU5DLgorMDBEMDNFICAgICAoYmFzZSAxNikJCVJPQ0tFVENISVBTLCBJTkMuCisJCQkJNzkwMSBYRVJYRVMgQVZFLiBTLgorCQkJCU1JTk5FQVBPTElTIE1OIDU1NDMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0zRiAgIChoZXgpCQlBTUVSSUNBTiBDT01NVU5JQ0FUSU9OCiswMEQwM0YgICAgIChiYXNlIDE2KQkJQU1FUklDQU4gQ09NTVVOSUNBVElPTgorCQkJCVRFQ0hOT0xJR0lFUyBJTlRFUk5BVElPTkFMIElOQworCQkJCTMyMCBQUk9GRVNTSU9OQUwgQ0VOVEVSIERSLiBTVUlURSAjMTAwCisJCQkJUk9ITkVSVCBQQVJLIENBIDk0OTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC00MCAgIChoZXgpCQlTWVNNQVRFIENPLiwgTFRELgorMDBEMDQwICAgICAoYmFzZSAxNikJCVNZU01BVEUgQ08uLCBMVEQuCisJCQkJMTA5MSBXT0xQWU9ORy1ET05HCisJCQkJU0VPLUdVLCBERUFKQ09OIDMwMi0yODAKKwkJCQlTT1VUSCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1EMC00MSAgIChoZXgpCQlBTUlHTyBURUNITk9MT0dZIENPLiwgTFRELgorMDBEMDQxICAgICAoYmFzZSAxNikJCUFNSUdPIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJNEYtMUIsIE5PLjEyLCBMQU5FIDYwOSwgU0VDLjUsCisJCQkJQ0hVTkcgSFNJTiBST0FELCBTQU4gQ0hVTkcgVEFJUEVJIEhTSUVOCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLTQyICAgKGhleCkJCU1BSExPIEdNQkggJiBDTy4gVUcKKzAwRDA0MiAgICAgKGJhc2UgMTYpCQlNQUhMTyBHTUJIICYgQ08uIFVHCisJCQkJRE9OQVVTVFJBU1NFIDEyCisJCQkJRC05MzM0MiBTQUFML0RPTkFVCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtRDAtNDMgICAoaGV4KQkJWk9OQUwgUkVUQUlMIERBVEEgU1lTVEVNUworMDBEMDQzICAgICAoYmFzZSAxNikJCVpPTkFMIFJFVEFJTCBEQVRBIFNZU1RFTVMKKwkJCQkyNCBGT1JUSCBTVFJFRVQKKwkJCQlFRElOQlVSR0gKKwkJCQlTQ09UTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLTQ0ICAgKGhleCkJCUFMSURJQU4gTkVUV09SS1MsIElOQy4KKzAwRDA0NCAgICAgKGJhc2UgMTYpCQlBTElESUFOIE5FVFdPUktTLCBJTkMuCisJCQkJMTMzMCBXLiBNSURETEVGSUVMRCBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNDUgICAoaGV4KQkJS1ZBU0VSIEFCCiswMEQwNDUgICAgIChiYXNlIDE2KQkJS1ZBU0VSIEFCCisJCQkJQk9YIDQwNzYKKwkJCQk1MTEgMDQgS0lOTkFIVUxUCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLUQwLTQ2ICAgKGhleCkJCURPTEJZIExBQk9SQVRPUklFUywgSU5DLgorMDBEMDQ2ICAgICAoYmFzZSAxNikJCURPTEJZIExBQk9SQVRPUklFUywgSU5DLgorCQkJCTEwMCBQb3RyZXJvIEF2ZW51ZQorCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMDMtNDkzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNDcgICAoaGV4KQkJWE4gVEVDSE5PTE9HSUVTCiswMEQwNDcgICAgIChiYXNlIDE2KQkJWE4gVEVDSE5PTE9HSUVTCisJCQkJUC5PLiBCT1ggMzUwCisJCQkJQ0hFTkVZIFdBIDk5MDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC00OCAgIChoZXgpCQlFQ1RPTiwgSU5DLgorMDBEMDQ4ICAgICAoYmFzZSAxNikJCUVDVE9OLCBJTkMuCisJCQkJNTE2OCBDQU1QVVMgRFJJVkUKKwkJCQlQTFlNT1VUSCBNRUVUSU5HIFBBIDE5NDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC00OSAgIChoZXgpCQlJTVBSRVNTVEVLIENPLiwgTFRELgorMDBEMDQ5ICAgICAoYmFzZSAxNikJCUlNUFJFU1NURUsgQ08uLCBMVEQuCisJCQkJNkYsIFNQRUNJQUxUWSBDT05TVFJVQ1RJT04gQ1RSCisJCQkJMTI5MCwgU1VOU0FOLURPTkcsU08tR1UKKwkJCQkzMDItMTIwIEtPUkVBIChSRVAuKQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1EMC00QSAgIChoZXgpCQlQUkVTRU5DRSBURUNITk9MT0dZIEdNQkgKKzAwRDA0QSAgICAgKGJhc2UgMTYpCQlQUkVTRU5DRSBURUNITk9MT0dZIEdNQkgKKwkJCQkrIENPLiBLRworCQkJCVNFTkRFTkhPUlNURVIgU1RSLiAzMiBELTQ4MzE3IERSRU5TVEVJTkYKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1EMC00QiAgIChoZXgpCQlMQSBDSUUgR1JPVVAgUy5BLgorMDBEMDRCICAgICAoYmFzZSAxNikJCUxBIENJRSBHUk9VUCBTLkEuCisJCQkJMTcgUlVFIEFNUEVSRQorCQkJCTkxMzQ5IE1BU1NZIENFREVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLUQwLTRDICAgKGhleCkJCUVVUk9URUwgVEVMRUNPTSBMVEQuCiswMEQwNEMgICAgIChiYXNlIDE2KQkJRVVST1RFTCBURUxFQ09NIExURC4KKwkJCQlDQU5JU1RFUiBIT1VTRQorCQkJCUpFV1JZIFNUUkVFVCBXSU5DSEVTVEVSIEIwMjMgOFNBCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC00RCAgIChoZXgpCQlESVYgT0YgUkVTRUFSQ0ggJiBTVEFUSVNUSUNTCiswMEQwNEQgICAgIChiYXNlIDE2KQkJRElWIE9GIFJFU0VBUkNIICYgU1RBVElTVElDUworCQkJCUJPRyBPRiBUSEUgRkVERVJBTCBSRVNFUlZFIFNZUworCQkJCU1BSUwgU1RPUCA5NiAyMFRIICYKKwkJCQlXQVNISU5HVE9OIERDIDIwNTUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC00RSAgIChoZXgpCQlMT0dJQkFHCiswMEQwNEUgICAgIChiYXNlIDE2KQkJTE9HSUJBRworCQkJCTIsIFJ1ZSBkZSBsYSBNYW5kaW5p6HJlCisJCQkJNzIzMDAgU0FCTEUvU0FSVEhFCisJCQkJRlJBTkNFCisKKzAwLUQwLTRGICAgKGhleCkJCUJJVFJPTklDUywgSU5DLgorMDBEMDRGICAgICAoYmFzZSAxNikJCUJJVFJPTklDUywgSU5DLgorCQkJCVAuTy4gQk9YIDIyMjkwCisJCQkJTEVISUdIIFZBTExFWSBQQSAxODAwMi0yMjkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC01MCAgIChoZXgpCQlJU0tSQVRFTAorMDBEMDUwICAgICAoYmFzZSAxNikJCUlTS1JBVEVMCisJCQkJTEpVQkxKQU5TS0EgQy4gMjRBCisJCQkJNDAwMCBLUkFOSgorCQkJCVNMT1ZFTklBCisJCQkJU0xPVkVOSUEKKworMDAtRDAtNTEgICAoaGV4KQkJTzIgTUlDUk8sIElOQy4KKzAwRDA1MSAgICAgKGJhc2UgMTYpCQlPMiBNSUNSTywgSU5DLgorCQkJCTI5MDEgVEFTTUFOIERSSVZFLCBTVEUuIzIwNQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC01MiAgIChoZXgpCQlBU0NFTkQgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwRDA1MiAgICAgKGJhc2UgMTYpCQlBU0NFTkQgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQlPTkUgQVNDRU5EIFBMQVpBCisJCQkJMTcwMSBIQVJCT1IgQkFZIFBBUktXQVkKKwkJCQlBTEFNRURBIENBIDk0NTAyLTMwMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTUzICAgKGhleCkJCUNPTk5FQ1RFRCBTWVNURU1TCiswMEQwNTMgICAgIChiYXNlIDE2KQkJQ09OTkVDVEVEIFNZU1RFTVMKKwkJCQkxMjYgVy4gRklHVUVST0EgU1RSRUVUCisJCQkJU0FOVEEgQkFSQkFSQSBDQSA5MzEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNTQgICAoaGV4KQkJU0FTIElOU1RJVFVURSBJTkMuCiswMEQwNTQgICAgIChiYXNlIDE2KQkJU0FTIElOU1RJVFVURSBJTkMuCisJCQkJU0FTIENBTVBVUyBEUklWRSwgUjQKKwkJCQlDQVJZIE5DIDI3NTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC01NSAgIChoZXgpCQlLQVRIUkVJTi1XRVJLRSBLRworMDBEMDU1ICAgICAoYmFzZSAxNikJCUtBVEhSRUlOLVdFUktFIEtHCisJCQkJQU5UT04tS0FUSFJFSU4tU1RSQVNTIDEtMworCQkJCUQtODMwMDQgUk9TRU5IRUlNCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtRDAtNTYgICAoaGV4KQkJU09NQVQgQ09SUE9SQVRJT04KKzAwRDA1NiAgICAgKGJhc2UgMTYpCQlTT01BVCBDT1JQT1JBVElPTgorCQkJCTcwMiBLSUxMQVJORVkgU1RSRUVUCisJCQkJVVJCQU5BIElMIDYxODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC01NyAgIChoZXgpCQlVTFRSQUssIElOQy4KKzAwRDA1NyAgICAgKGJhc2UgMTYpCQlVTFRSQUssIElOQy4KKwkJCQkxMzAxIFdBVEVSUyBSSURHRSBEUklWRQorCQkJCUxFV0lTVklMTEUgVFggNzUwNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTU4ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDA1OCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTU5ICAgKGhleCkJCUFNQklUIE1JQ1JPU1lTVEVNUyBDT1JQLgorMDBEMDU5ICAgICAoYmFzZSAxNikJCUFNQklUIE1JQ1JPU1lTVEVNUyBDT1JQLgorCQkJCTVGLTEsIDUgSFNJTi1BTiBST0FECisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksgSFNJTkNIVQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC01QSAgIChoZXgpCQlTWU1CSU9OSUNTLCBMVEQuCiswMEQwNUEgICAgIChiYXNlIDE2KQkJU1lNQklPTklDUywgTFRELgorCQkJCVNULiBKT0hOJ1MgSU5OT1ZBVElPTiBQQVJLCisJCQkJQ0FNQlJJREdFICBDQjQgMFdTCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLTVCICAgKGhleCkJCUFDUk9MT09QIE1PVElPTiBDT05UUk9MCiswMEQwNUIgICAgIChiYXNlIDE2KQkJQUNST0xPT1AgTU9USU9OIENPTlRST0wKKwkJCQlTWVNURU1TCisJCQkJMzY1MCBDSEVTVE5VVCBTVC4gTi4KKwkJCQlDSEFTS0EgTU4gNTUzMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTVDICAgKGhleCkJCVRFQ0hOT1RSRU5EIFNZU1RFTVRFQ0hOSUsgR01CSAorMDBEMDVDICAgICAoYmFzZSAxNikJCVRFQ0hOT1RSRU5EIFNZU1RFTVRFQ0hOSUsgR01CSAorCQkJCVdJTEhFTE0tV09MRkYtU1RSQVNTRSA2CisJCQkJR0VSLTk5MDk5IEVSRlVSVAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLTVEICAgKGhleCkJCUlOVEVMTElXT1JYWCwgSU5DLgorMDBEMDVEICAgICAoYmFzZSAxNikJCUlOVEVMTElXT1JYWCwgSU5DLgorCQkJCTE4MTkgTUFJTiBTVFJFRVQsICBTVEUgIzExMDEKKwkJCQlTQVJBU09UQSBGTCAzNDIzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNUUgICAoaGV4KQkJU1RSQVRBQkVBTSBURUNITk9MT0dZLCBJTkMuCiswMEQwNUUgICAgIChiYXNlIDE2KQkJU1RSQVRBQkVBTSBURUNITk9MT0dZLCBJTkMuCisJCQkJMTk0MyBMQU5ESU5HUyBEUklWRQorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTVGICAgKGhleCkJCVZBTENPTSwgSU5DLgorMDBEMDVGICAgICAoYmFzZSAxNikJCVZBTENPTSwgSU5DLgorCQkJCTExMTEgSU5EVVNUUlkgQVZFTlVFCisJCQkJUk9BTk9LRSBWQSAyNDAxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNjAgICAoaGV4KQkJUGFuYXNvbmljIEV1cm9wZSBMdGQuCiswMEQwNjAgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIEV1cm9wZSBMdGQuCisJCQkJTEFCT1JBVE9SSUVTIEdNQkgKKwkJCQlNT05aQVNUUi4gNEMgRC02MzIyNSBMQU5HRU4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1EMC02MSAgIChoZXgpCQlUUkVNT04gRU5URVJQUklTRVMgQ08uLCBMVEQuCiswMEQwNjEgICAgIChiYXNlIDE2KQkJVFJFTU9OIEVOVEVSUFJJU0VTIENPLiwgTFRELgorCQkJCTE1RiwgTk8uIDExNiwgU0VDLiAxCisJCQkJSFNJTi1UQUkgNVRIIFJPQUQgSFNJQ0hJSCwgVEFJUEVJIENPVU5UWQorCQkJCVRBSVdBTiBUQUlXQU4gUk9DCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC02MiAgIChoZXgpCQlESUdJR1JBTQorMDBEMDYyICAgICAoYmFzZSAxNikJCURJR0lHUkFNCisJCQkJUEFSQyBERSBQUkUgTUlMTElFVAorCQkJCTM4MzMwIE1PTlRCT05OT1QKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtRDAtNjMgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBEMDYzICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNjQgICAoaGV4KQkJTVVMVElURUwKKzAwRDA2NCAgICAgKGJhc2UgMTYpCQlNVUxUSVRFTAorCQkJCTI5MDUgUlVFIERFIENFTExFUworCQkJCVFVRUJFQyBDSVRZLCBRVUVCRUMgUFJPVklOQ0UKKwkJCQlDQU5BREEgQ0FOQURBIEcyQy0xVzcKKwkJCQlDQU5BREEKKworMDAtRDAtNjUgICAoaGV4KQkJVE9LTyBFTEVDVFJJQworMDBEMDY1ICAgICAoYmFzZSAxNikJCVRPS08gRUxFQ1RSSUMKKwkJCQk0MDA4IEtVUk9IQU1BLCBIQVNVREEtU0hJCisJCQkJU0FJVEFNQSAzNDktMDE5MgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtRDAtNjYgICAoaGV4KQkJV0lOVFJJU1MgRU5HSU5FRVJJTkcgQ09SUC4KKzAwRDA2NiAgICAgKGJhc2UgMTYpCQlXSU5UUklTUyBFTkdJTkVFUklORyBDT1JQLgorCQkJCTYzNDQgRkVSUklTIFNRVUFSRQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNjcgICAoaGV4KQkJQ0FNUElPIENPTU1VTklDQVRJT05TCiswMEQwNjcgICAgIChiYXNlIDE2KQkJQ0FNUElPIENPTU1VTklDQVRJT05TCisJCQkJMjAzMyBHQVRFV0FZIFBMLCBTVUlURSAjNjAwCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTY4ICAgKGhleCkJCUlXSUxMIENPUlBPUkFUSU9OCiswMEQwNjggICAgIChiYXNlIDE2KQkJSVdJTEwgQ09SUE9SQVRJT04KKwkJCQlOTy4xMCwgV1UtQ0hVQU4gMyBSRCwKKwkJCQlIU0lOLUNIVUFOIENJVFkgVEFJUEVJCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC02OSAgIChoZXgpCQlURUNITk9MT0dJQyBTWVNURU1TCiswMEQwNjkgICAgIChiYXNlIDE2KQkJVEVDSE5PTE9HSUMgU1lTVEVNUworCQkJCTE2NjEwIEUuIExBU0VSIERSSVZFLVNURS4gIzEwCisJCQkJRk9VTlRBSU4gSElMTFMgQVogODUyNjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTZBICAgKGhleCkJCUxJTktVUCBTWVNURU1TIENPUlBPUkFUSU9OCiswMEQwNkEgICAgIChiYXNlIDE2KQkJTElOS1VQIFNZU1RFTVMgQ09SUE9SQVRJT04KKwkJCQkxMTkwIENPTEVNQU4gQVZFLi0gU1RFICMyQworCQkJCVNBTiBKT1NFIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC02QiAgIChoZXgpCQlTUiBURUxFQ09NIElOQy4KKzAwRDA2QiAgICAgKGJhc2UgMTYpCQlTUiBURUxFQ09NIElOQy4KKwkJCQk4MTUwIFRyYW5zIENhbmFkYSBIaWdod2F5CisJCQkJTW9udHJlYWwKKwkJCQlRdWViZWMgIEg0UyAxTTUKKwkJCQlDQU5BREEKKworMDAtRDAtNkMgICAoaGV4KQkJU0hBUkVXQVZFLCBJTkMuCiswMEQwNkMgICAgIChiYXNlIDE2KQkJU0hBUkVXQVZFLCBJTkMuCisJCQkJNTE3NSBISUxMU0RBTEUgQ0lSQ0xFCisJCQkJRUwgRE9SQURPIEhJTExTIENBIDk1NzYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC02RCAgIChoZXgpCQlBQ1JJU09OLCBJTkMuCiswMEQwNkQgICAgIChiYXNlIDE2KQkJQUNSSVNPTiwgSU5DLgorCQkJCTIwIEVNUElSRSBCTFZELgorCQkJCU1PT05BQ0hJRSBOSiAwNzA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNkUgICAoaGV4KQkJVFJFTkRWSUVXIFJFQ09SREVSUyBMVEQuCiswMEQwNkUgICAgIChiYXNlIDE2KQkJVFJFTkRWSUVXIFJFQ09SREVSUyBMVEQuCisJCQkJNCBBSVJGSUVMRCBXQVkKKwkJCQlDSFJJU1RDSFVSQ0ggRE9SU0VUIEJIMjMgM1RTCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC02RiAgIChoZXgpCQlLTUMgQ09OVFJPTFMKKzAwRDA2RiAgICAgKGJhc2UgMTYpCQlLTUMgQ09OVFJPTFMKKwkJCQlQLk8uIEJPWCA0OTcKKwkJCQkxOTQ3NiBORVcgUEFSSVMgSU5EVVNUUklBTCBEUi4KKwkJCQlORVcgUEFSSVMgSU4gNDY1NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTcwICAgKGhleCkJCUxPTkcgV0VMTCBFTEVDVFJPTklDUyBDT1JQLgorMDBEMDcwICAgICAoYmFzZSAxNikJCUxPTkcgV0VMTCBFTEVDVFJPTklDUyBDT1JQLgorCQkJCTRGLCBOTy4gNTktMSwgVFNBTyBESSBXRUkKKwkJCQlTSEVOR0tFTkcgSFNJQU5HLCBUQUlQRUkgSFNJRU4KKwkJCQlUQUlXQU4gMjIyIFRBSVdBTiAyMjIgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC03MSAgIChoZXgpCQlFQ0hFTE9OIENPUlAuCiswMEQwNzEgICAgIChiYXNlIDE2KQkJRUNIRUxPTiBDT1JQLgorCQkJCTU1MCBNZXJpZGlhbiBBdmVudWUKKwkJCQlTYW4gSm9zZSBDQSA5NTEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNzIgICAoaGV4KQkJQlJPQURMT0dJQworMDBEMDcyICAgICAoYmFzZSAxNikJCUJST0FETE9HSUMKKwkJCQk0NjMgUy4gTUlMUElUQVMgQkxWRC4KKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNzMgICAoaGV4KQkJQUNOIEFEVkFOQ0VEIENPTU1VTklDQVRJT05TCiswMEQwNzMgICAgIChiYXNlIDE2KQkJQUNOIEFEVkFOQ0VEIENPTU1VTklDQVRJT05TCisJCQkJTkVUV09SS1MgU0EKKwkJCQlSVUUgRFUgUFVJVFMtR09ERVQgQkEgQ0gtMjAwMCBORVVDSEFURUwKKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLUQwLTc0ICAgKGhleCkJCVRBUVVBIFNZU1RFTVMsIElOQy4KKzAwRDA3NCAgICAgKGJhc2UgMTYpCQlUQVFVQSBTWVNURU1TLCBJTkMuCisJCQkJMTYwMCBGQUxNT1VUSCBSRC4gLSBTVEUKKwkJCQlDRU5URVJWSUxMRSBNQSAwMjYzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNzUgICAoaGV4KQkJQUxBUklTIE1FRElDQUwgU1lTVEVNUywgSU5DLgorMDBEMDc1ICAgICAoYmFzZSAxNikJCUFMQVJJUyBNRURJQ0FMIFNZU1RFTVMsIElOQy4KKwkJCQlQLk8uIEJPWCA4NTMzNQorCQkJCTEwMjIxIFdBVEVSSURHRSBDSVJDTEUKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEtMjczMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNzYgICAoaGV4KQkJIEJhbmsgb2YgQW1lcmljYQorMDBEMDc2ICAgICAoYmFzZSAxNikJCSBCYW5rIG9mIEFtZXJpY2EKKwkJCQkxMTAwIE1lcnJpbGwgRHJpdmUKKwkJCQlQZW5uaW5ndG9uIE5KIDA4NTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC03NyAgIChoZXgpCQlMVUNFTlQgVEVDSE5PTE9HSUVTCiswMEQwNzcgICAgIChiYXNlIDE2KQkJTFVDRU5UIFRFQ0hOT0xPR0lFUworCQkJCUNMSUVOVCBBQ0NFU1MgQlVTSU5FU1MgVU5JVAorCQkJCTEwMSBDUkFXRk9SRFMgQ09STkVSIFJPQUQgUk9PTSAjMUUtNDM3QUwKKwkJCQlIT0xNREVMIE5KIDA3NzMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC03OCAgIChoZXgpCQlFbHRleCBvZiBTd2VkZW4gQUIKKzAwRDA3OCAgICAgKGJhc2UgMTYpCQlFbHRleCBvZiBTd2VkZW4gQUIKKwkJCQlCb3ggMjQKKwkJCQkyODMgMjEgT1NCWSAgCisJCQkJU1dFREVOCisKKzAwLUQwLTc5ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDA3OSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTdBICAgKGhleCkJCUFNQVFVRVNUIENPTVBVVEVSIENPUlAuCiswMEQwN0EgICAgIChiYXNlIDE2KQkJQU1BUVVFU1QgQ09NUFVURVIgQ09SUC4KKwkJCQk4L0YsIDc5IEhTSU4tVEFJCisJCQkJNVRIIFJPQUQsIFNFQy4gMSBIUzEtQ0hJSCwgVEFJUEVJCisJCQkJVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtN0IgICAoaGV4KQkJQ09NQ0FNIElOVEVSTkFUSU9OQUwgSU5DCiswMEQwN0IgICAgIChiYXNlIDE2KQkJQ09NQ0FNIElOVEVSTkFUSU9OQUwgSU5DCisJCQkJMTE0MCBNY0Rlcm1vdHQgRHJpdmUgU3VpdGUgMjAwCisJCQkJV0VTVCBDSEVTVEVSIFBBIDE5MzgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC03QyAgIChoZXgpCQlLT1lPIEVMRUNUUk9OSUNTIElOQy4gQ08uLExURC4KKzAwRDA3QyAgICAgKGJhc2UgMTYpCQlLT1lPIEVMRUNUUk9OSUNTIElOQy4gQ08uLExURC4KKwkJCQkxLTE3MSBURU5KSU4tQ0hPIEtPREFJUkEKKwkJCQlUT0tZTyAgMTg3LTAwMDQKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUQwLTdEICAgKGhleCkJCUNPU0lORSBDT01NVU5JQ0FUSU9OUworMDBEMDdEICAgICAoYmFzZSAxNikJCUNPU0lORSBDT01NVU5JQ0FUSU9OUworCQkJCTEyMDAgQlJJREdFIFBBUktXQVkKKwkJCQlSRURXT09EIENJVFkgQ0EgOTQwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTdFICAgKGhleCkJCUtFWUNPUlAgTFRELgorMDBEMDdFICAgICAoYmFzZSAxNikJCUtFWUNPUlAgTFRELgorCQkJCVAuTy4gQk9YIDE5OQorCQkJCUNIQVRTV09PRCBOU1cgMjA1NworCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC1EMC03RiAgIChoZXgpCQlTVFJBVEVHWSAmIFRFQ0hOT0xPR1ksIExJTUlURUQKKzAwRDA3RiAgICAgKGJhc2UgMTYpCQlTVFJBVEVHWSAmIFRFQ0hOT0xPR1ksIExJTUlURUQKKwkJCQlTdWl0ZSA0LjIsIENsaWZ0b24gSGVpZ2h0cworCQkJCVRyaWFuZ2xlIFdlc3QKKwkJCQlCcmlzdG9sIEJTOCAxRUoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC04MCAgIChoZXgpCQlFWEFCWVRFIENPUlBPUkFUSU9OCiswMEQwODAgICAgIChiYXNlIDE2KQkJRVhBQllURSBDT1JQT1JBVElPTgorCQkJCTE2ODUgMzhUSCBTVFJFRVQKKwkJCQlCT1VMREVSIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04MSAgIChoZXgpCQlSVEQgRW1iZWRkZWQgVGVjaG5vbG9naWVzLCBJbmMuCiswMEQwODEgICAgIChiYXNlIDE2KQkJUlREIEVtYmVkZGVkIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEwMyBJbm5vdmF0aW9uIEJsdmQuCisJCQkJU3RhdGUgQ29sbGVnZSBQQSAxNjgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtODIgICAoaGV4KQkJSU9XQVZFIElOQy4KKzAwRDA4MiAgICAgKGJhc2UgMTYpCQlJT1dBVkUgSU5DLgorCQkJCTEwMTAgV0lTQ09OU0lOIEFWRU5VRQorCQkJCVdBU0hJTkdUT04gREMgMjAwMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTgzICAgKGhleCkJCUlOVkVSVEVYLCBJTkMuCiswMEQwODMgICAgIChiYXNlIDE2KQkJSU5WRVJURVgsIElOQy4KKwkJCQkxMDEyIE1PUlNFIEFWRU5VRS0gU1RFLiM5CisJCQkJU1VOTllWQUxFIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04NCAgIChoZXgpCQlORVhDT01NIFNZU1RFTVMsIElOQy4KKzAwRDA4NCAgICAgKGJhc2UgMTYpCQlORVhDT01NIFNZU1RFTVMsIElOQy4KKwkJCQlTVUlUICNOQUwtOTAzLAorCQkJCVNVTkdOQU0gVEVDSE5PLVBBUksgMTQ4IFlBVEFQLURPTkcsIEJVTkQKKwkJCQlTVU5HTkFNLUNJVFkgU1VOR05BTS1DSVRZIEtZVU5HR0ktRE8sSworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1EMC04NSAgIChoZXgpCQlPVElTIEVMRVZBVE9SIENPTVBBTlkKKzAwRDA4NSAgICAgKGJhc2UgMTYpCQlPVElTIEVMRVZBVE9SIENPTVBBTlkKKwkJCQk1IEZBUk0gU1BSSU5HUyBSRC4KKwkJCQlGQVJNSU5HVE9OIENUIDA2MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04NiAgIChoZXgpCQlGT1ZFT04sIElOQy4KKzAwRDA4NiAgICAgKGJhc2UgMTYpCQlGT1ZFT04sIElOQy4KKwkJCQkyODIwIFNhbiBUb21hcyBFeHByZXNzd2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTg3ICAgKGhleCkJCU1JQ1JPRklSU1QgSU5DLgorMDBEMDg3ICAgICAoYmFzZSAxNikJCU1JQ1JPRklSU1QgSU5DLgorCQkJCTExIEVBU1QgT0FLIFNUUkVFVAorCQkJCU9BS0xBTkQgTkogMDc0MzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTg4ICAgKGhleCkJCU1vdG9yb2xhLCBJbmMuCiswMEQwODggICAgIChiYXNlIDE2KQkJTW90b3JvbGEsIEluYy4KKwkJCQkyNDUwIFdhbHNoIEF2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04OSAgIChoZXgpCQlEWU5BQ09MT1IsIElOQy4KKzAwRDA4OSAgICAgKGJhc2UgMTYpCQlEWU5BQ09MT1IsIElOQy4KKwkJCQlOby4xMTYsIFpob3V6aSBTdC4sIE5laWh1IERpc3QuCisJCQkJVGFpcGVpIENpdHkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtOEEgICAoaGV4KQkJUEhPVFJPTiBVU0EKKzAwRDA4QSAgICAgKGJhc2UgMTYpCQlQSE9UUk9OIFVTQQorCQkJCTExMDEgUy4gV0lOQ0hFU1RFUiBCTFZELgorCQkJCVNVSVRFICNELTE0NAorCQkJCVNBTiBKT1NFIENBIDk1MTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04QiAgIChoZXgpCQlBRFZBIE9wdGljYWwgTmV0d29ya2luZyBMdGQKKzAwRDA4QiAgICAgKGJhc2UgMTYpCQlBRFZBIE9wdGljYWwgTmV0d29ya2luZyBMdGQKKwkJCQlDTElGVE9OIFRFQ0hOT0xPR1kgQ0VOVFJFCisJCQkJQ0xJRlRPTiBNT09SCisJCQkJWU9SSyBOT1JUSCBZT1JLU0hJUkUgWU8zMCA0R1UKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC04QyAgIChoZXgpCQlHRU5PQSBURUNITk9MT0dZLCBJTkMuCiswMEQwOEMgICAgIChiYXNlIDE2KQkJR0VOT0EgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTU0MDEgVEVDSCBDSVJDTEUKKwkJCQlNT09SUEFSSyBDQSA5MzAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOEQgICAoaGV4KQkJUEhPRU5JWCBHUk9VUCwgSU5DLgorMDBEMDhEICAgICAoYmFzZSAxNikJCVBIT0VOSVggR1JPVVAsIElOQy4KKwkJCQkxMjMgTUFSQ1VTIEJMVkQuCisJCQkJSEFVUFBBVUdFIE5ZIDExNzg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04RSAgIChoZXgpCQlOVklTSU9OIElOQy4KKzAwRDA4RSAgICAgKGJhc2UgMTYpCQlOVklTSU9OIElOQy4KKwkJCQkxMjUgQ1JPV04gUE9JTlQgQ09VUlQKKwkJCQlHUkFTUyBWQUxMRVkgQ0EgOTU5NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLThGICAgKGhleCkJCUFSREVOVCBURUNITk9MT0dJRVMsIElOQy4KKzAwRDA4RiAgICAgKGJhc2UgMTYpCQlBUkRFTlQgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMjUwIE4uIFdPTEZFIFJPQUQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTkwICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDA5MCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTkxICAgKGhleCkJCVNNQVJUU0FOIFNZU1RFTVMsIElOQy4KKzAwRDA5MSAgICAgKGJhc2UgMTYpCQlTTUFSVFNBTiBTWVNURU1TLCBJTkMuCisJCQkJNDY1NSBPTEQgSVJPTlNJREVTIERSLiAjNDgwCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTkyICAgKGhleCkJCUdMRU5BWVJFIFdFU1RFUk4gTVVMVElQTEVYCiswMEQwOTIgICAgIChiYXNlIDE2KQkJR0xFTkFZUkUgV0VTVEVSTiBNVUxUSVBMRVgKKwkJCQkxMTk2IEJPUlJFR0FTIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOTMgICAoaGV4KQkJVFEgLSBDT01QT05FTlRTIEdNQkgKKzAwRDA5MyAgICAgKGJhc2UgMTYpCQlUUSAtIENPTVBPTkVOVFMgR01CSAorCQkJCUdVVCBERUxMSU5HIC0gTVVITFNUUiAyCisJCQkJRC04MjIyOSBTRUVGRUxECisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtRDAtOTQgICAoaGV4KQkJVElNRUxJTkUgVklTVEEsIElOQy4KKzAwRDA5NCAgICAgKGJhc2UgMTYpCQlUSU1FTElORSBWSVNUQSwgSU5DLgorCQkJCTE3NTUtQiBMQSBDT1NUQSBNRUFET1dTIERSSVZFCisJCQkJU0FOIE1BUkNPUyBDQSA5MjA2OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOTUgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQsIEVudGVycHJpc2UgQnVzaW5lc3MgR3JvdXAKKzAwRDA5NSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudCwgRW50ZXJwcmlzZSBCdXNpbmVzcyBHcm91cAorCQkJCTI2ODAxIFdlc3QgQWdvdXJhIFJvYWQKKwkJCQlDQUxBQkFTQVMgQ0EgOTEzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTk2ICAgKGhleCkJCTNDT00gRVVST1BFIExURC4KKzAwRDA5NiAgICAgKGJhc2UgMTYpCQkzQ09NIEVVUk9QRSBMVEQuCisJCQkJQk9VTkRBUlkgV0FZCisJCQkJSEVNRUwgSEVNUFNURUFEIEhFUlRTLiBIUDIgN1lVCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC05NyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEQwOTcgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRQorCQkJCU0vUyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC05OCAgIChoZXgpCQlQaG90b24gRHluYW1pY3MgQ2FuYWRhIEluYy4KKzAwRDA5OCAgICAgKGJhc2UgMTYpCQlQaG90b24gRHluYW1pY3MgQ2FuYWRhIEluYy4KKwkJCQkyMjEgV2hpdGVoYWxsIERyaXZlCisJCQkJTWFya2hhbSwgT250YXJpbworCQkJCUwzUiA5VDEKKwkJCQlDQU5BREEKKworMDAtRDAtOTkgICAoaGV4KQkJRUxDQVJEIE9ZCiswMEQwOTkgICAgIChiYXNlIDE2KQkJRUxDQVJEIE9ZCisJCQkJUC5PLiBCT1ggMTIwL0JFQ0tFUklOVElDIDM4CisJCQkJNTEyMDEgS0FOR0FTTklFTUkKKwkJCQlGSU5MQU5ECisJCQkJRklOTEFORAorCiswMC1EMC05QSAgIChoZXgpCQlGSUxBTkVUIENPUlBPUkFUSU9OCiswMEQwOUEgICAgIChiYXNlIDE2KQkJRklMQU5FVCBDT1JQT1JBVElPTgorCQkJCTkzMSBCZW5lY2lhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOUIgICAoaGV4KQkJU1BFQ1RFTCBMVEQuCiswMEQwOUIgICAgIChiYXNlIDE2KQkJU1BFQ1RFTCBMVEQuCisJCQkJMjEgU1RJTExPUkdBTiBJTkRVU1RSSUFMIFBBUksKKwkJCQlTVElMTE9SR0FOLCBDTy4gRFVCTElOCisJCQkJSVJFTEFORAorCQkJCUlSRUxBTkQKKworMDAtRDAtOUMgICAoaGV4KQkJS0FQQURJQSBDT01NVU5JQ0FUSU9OUworMDBEMDlDICAgICAoYmFzZSAxNikJCUtBUEFESUEgQ09NTVVOSUNBVElPTlMKKwkJCQkzOTI1IFdFU1QgQlJPS0VSIExBTkUKKwkJCQlBVVNUSU4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTlEICAgKGhleCkJCVZFUklTIElORFVTVFJJRVMKKzAwRDA5RCAgICAgKGJhc2UgMTYpCQlWRVJJUyBJTkRVU1RSSUVTCisJCQkJMTA4MzEgU1cgQ0FTQ0FERQorCQkJCVBPUlRMQU5EIE9SIDk3MjIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC05RSAgIChoZXgpCQkyV0lSRSwgSU5DLgorMDBEMDlFICAgICAoYmFzZSAxNikJCTJXSVJFLCBJTkMuCisJCQkJNjk0IFRBU01BTiBEUklWRQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC05RiAgIChoZXgpCQlOT1ZURUsgVEVTVCBTWVNURU1TCiswMEQwOUYgICAgIChiYXNlIDE2KQkJTk9WVEVLIFRFU1QgU1lTVEVNUworCQkJCTIxNzAgUEFSQUdPTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BMCAgIChoZXgpCQlNSVBTIERFTk1BUksKKzAwRDBBMCAgICAgKGJhc2UgMTYpCQlNSVBTIERFTk1BUksKKwkJCQlMQVVUUlVQVkFORyAyQgorCQkJCTI3NTAgQkFMTEVSVVAKKwkJCQlESyAtIERFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLUQwLUExICAgKGhleCkJCU9TS0FSIFZJRVJMSU5HIEdNQkggKyBDTy4gS0cKKzAwRDBBMSAgICAgKGJhc2UgMTYpCQlPU0tBUiBWSUVSTElORyBHTUJIICsgQ08uIEtHCisJCQkJUFJFVFpGRUxERVIgU1RSLiAyMQorCQkJCTkxMzIwIEVCRVJNQU5OU1RBRFQKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1EMC1BMiAgIChoZXgpCQlJTlRFR1JBVEVEIERFVklDRQorMDBEMEEyICAgICAoYmFzZSAxNikJCUlOVEVHUkFURUQgREVWSUNFCisJCQkJVEVDSE5PTE9HWSwgSU5DLgorCQkJCTI5NzUgU1RFTkRFUiBXQVkgIE0vUyAwLTMxOAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BMyAgIChoZXgpCQlWT0NBTCBEQVRBLCBJTkMuCiswMEQwQTMgICAgIChiYXNlIDE2KQkJVk9DQUwgREFUQSwgSU5DLgorCQkJCTE3MDEgTiBHUkVFTlZJTExFICMzMDQKKwkJCQlSSUNIQVJEU09OIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BNCAgIChoZXgpCQlBTEFOVFJPIENPTU1VTklDQVRJT05TCiswMEQwQTQgICAgIChiYXNlIDE2KQkJQUxBTlRSTyBDT01NVU5JQ0FUSU9OUworCQkJCTE0MSBTVE9OWSBDSVJDTEUsICBTVEUuICMyMTAKKwkJCQlTQU5UQVJPU0EgQ0EgOTU0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUE1ICAgKGhleCkJCUFNRVJJQ0FOIEFSSVVNCiswMEQwQTUgICAgIChiYXNlIDE2KQkJQU1FUklDQU4gQVJJVU0KKwkJCQkxNDI4MSBDSEFNQkVSUyBST0FECisJCQkJVFVTVElOIENBIDkyNzgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BNiAgIChoZXgpCQlMQU5CSVJEIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMEQwQTYgICAgIChiYXNlIDE2KQkJTEFOQklSRCBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCVJPT00gQS0yMTEsIFMuQi5JLgorCQkJCTY0Ny0yNiwgREVVTkdDSE9OLURPTkcsIEtBTkdTRU8tR1UsICBTRU8KKwkJCQlLT1JFQSAxNTctMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQwLUE3ICAgKGhleCkJCVRPS1lPIFNPS0tJIEtFTktZVUpPIENPLiwgTFRELgorMDBEMEE3ICAgICAoYmFzZSAxNikJCVRPS1lPIFNPS0tJIEtFTktZVUpPIENPLiwgTFRELgorCQkJCTgtMiwgTUlOQU1JLU9ISSA2LUNIT01FCisJCQkJU0hJTkFHQVdBLUtVIFRPS1lPCisJCQkJSkFQQU4gMTQwLTg1NjAKKwkJCQlKQVBBTgorCiswMC1EMC1BOCAgIChoZXgpCQlORVRXT1JLIEVOR0lORVMsIElOQy4KKzAwRDBBOCAgICAgKGJhc2UgMTYpCQlORVRXT1JLIEVOR0lORVMsIElOQy4KKwkJCQk2MSBQTEVBU0FOVCBTVFJFRVQKKwkJCQlSQU5ET0xQSCBNQSAwMjM2OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQTkgICAoaGV4KQkJU0hJTkFOTyBLRU5TSEkgQ08uLCBMVEQuCiswMEQwQTkgICAgIChiYXNlIDE2KQkJU0hJTkFOTyBLRU5TSEkgQ08uLCBMVEQuCisJCQkJRUxFQ1RST05JQyBFUVVJUE1FTlQgRElWSVNJT04KKwkJCQk2LTE1LTI2LCBDSFVPLCBVRURBLVNISSBOQUdBTk8tS0VOLCAzODYtCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1EMC1BQSAgIChoZXgpCQlDSEFTRSBDT01NVU5JQ0FUSU9OUworMDBEMEFBICAgICAoYmFzZSAxNikJCUNIQVNFIENPTU1VTklDQVRJT05TCisJCQkJU1QuIExFT05BUkRTIFJPQUQKKwkJCQlFQVNUIFNIRUVOIExPTkRPTiBTVzE2IDdMWQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRDAtQUIgICAoaGV4KQkJREVMVEFLQUJFTCBURUxFQ09NIENWCiswMEQwQUIgICAgIChiYXNlIDE2KQkJREVMVEFLQUJFTCBURUxFQ09NIENWCisJCQkJSEFOWkVXRUcgMTQKKwkJCQkyODAzIE1DIEdPVURBCisJCQkJVEhFIE5FVEhFUkxBTkRTCisJCQkJTkVUSEVSTEFORFMKKworMDAtRDAtQUMgICAoaGV4KQkJR1JBWVNPTiBXSVJFTEVTUworMDBEMEFDICAgICAoYmFzZSAxNikJCUdSQVlTT04gV0lSRUxFU1MKKwkJCQkxNDAgVklTVEEgQ0VOVFJFIERSSVZFCisJCQkJRk9SRVNUIFZBIDI0NTUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BRCAgIChoZXgpCQlUTCBJTkRVU1RSSUVTCiswMEQwQUQgICAgIChiYXNlIDE2KQkJVEwgSU5EVVNUUklFUworCQkJCTI1NDEgVFJBQ1kgUk9BRAorCQkJCU5PUlRIV09PRCBPSCA0MzYxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQUUgICAoaGV4KQkJT1JFU0lTIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEQwQUUgICAgIChiYXNlIDE2KQkJT1JFU0lTIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTQ2NzAgTlcgR1JFRU5CUklFUiBQS1dZCisJCQkJQkVBVkVSVE9OIE9SIDk3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BRiAgIChoZXgpCQlDVVRMRVItSEFNTUVSLCBJTkMuCiswMEQwQUYgICAgIChiYXNlIDE2KQkJQ1VUTEVSLUhBTU1FUiwgSU5DLgorCQkJCVBNUCBDRU5URVIKKwkJCQkyNDAgVklTVEEgUEFSSyBEUklWRQorCQkJCVBJVFRTQlVSR0ggUEEgMTUyMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUIwICAgKGhleCkJCUJJVFNXSVRDSCBMVEQuCiswMEQwQjAgICAgIChiYXNlIDE2KQkJQklUU1dJVENIIExURC4KKwkJCQkzIE1FQURPVyBDT1VSVCwgQU1PUyBST0FECisJCQkJTUVBRE9XSEFMTCwgU0hFRkZJRUxEIFM5IDFCWAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRDAtQjEgICAoaGV4KQkJT01FR0EgRUxFQ1RST05JQ1MgU0EKKzAwRDBCMSAgICAgKGJhc2UgMTYpCQlPTUVHQSBFTEVDVFJPTklDUyBTQQorCQkJCVJPVVRFIERFIFNPTEVVUkUgNjgKKwkJCQlDSC0yNTAwIEJJRU5ORSA0CisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC1EMC1CMiAgIChoZXgpCQlYSU9URUNIIENPUlBPUkFUSU9OCiswMEQwQjIgICAgIChiYXNlIDE2KQkJWElPVEVDSCBDT1JQT1JBVElPTgorCQkJCTY0NTUgRkxZSU5HIENMT1VEIERSSVZFCisJCQkJRURFTiBQUkFJUklFIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1CMyAgIChoZXgpCQlEUlMgRkxJR0hUIFNBRkVUWSBBTkQKKzAwRDBCMyAgICAgKGJhc2UgMTYpCQlEUlMgRkxJR0hUIFNBRkVUWSBBTkQKKwkJCQlDT01NVU5JQ0FUSU9OUworCQkJCTQwIENPTkNPVVJTRSBHQVRFIE5FUEVBTgorCQkJCUNBTkFEQSBLMkUgOEE2CisJCQkJQ0FOQURBCisKKzAwLUQwLUI0ICAgKGhleCkJCUtBVFNVSklNQSBDTy4sIExURC4KKzAwRDBCNCAgICAgKGJhc2UgMTYpCQlLQVRTVUpJTUEgQ08uLCBMVEQuCisJCQkJMS02LTEtLCBTSElSQVRPUkkKKwkJCQlLQVRTVVNISUtBLUtVIFRPS1lPIDEyNS0wMDYzCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1EMC1CNSAgIChoZXgpCQlJUHJpY290IGZvcm1lcmx5IERvdENvbQorMDBEMEI1ICAgICAoYmFzZSAxNikJCUlQcmljb3QgZm9ybWVybHkgRG90Q29tCisJCQkJMTAtMTIsIGF2ZW51ZSBkZSBWZXJkdW4KKwkJCQlMYS1HYXJlbm5lLUNvbG9tYmVzICBGLTkyMjUwCisJCQkJRlJBTkNFCisKKzAwLUQwLUI2ICAgKGhleCkJCUNSRVNDRU5UIE5FVFdPUktTLCBJTkMuCiswMEQwQjYgICAgIChiYXNlIDE2KQkJQ1JFU0NFTlQgTkVUV09SS1MsIElOQy4KKwkJCQkyMDEgUklWRVJORUNLIFJPQUQKKwkJCQlDSEVMTVNGT1JEIE1BIDAxODQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1CNyAgIChoZXgpCQlJTlRFTCBDT1JQT1JBVElPTgorMDBEMEI3ICAgICAoYmFzZSAxNikJCUlOVEVMIENPUlBPUkFUSU9OCisJCQkJNTIwMCBORSBFTEFNIFlPVU5HIFBBUktXQVkKKwkJCQlIRjEtMDgKKwkJCQlISUxMU0JPUk8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUI4ICAgKGhleCkJCUlvbWVnYSBDb3Jwb3JhdGlvbgorMDBEMEI4ICAgICAoYmFzZSAxNikJCUlvbWVnYSBDb3Jwb3JhdGlvbgorCQkJCQorCQkJCUNBTkFEQQorCiswMC1EMC1COSAgIChoZXgpCQlNSUNST1RFSyBJTlRFUk5BVElPTkFMLCBJTkMuCiswMEQwQjkgICAgIChiYXNlIDE2KQkJTUlDUk9URUsgSU5URVJOQVRJT05BTCwgSU5DLgorCQkJCU5PLiA2IElORFVTVFJZIEVBU1QgUk9BRCAzCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksgSFNJTkNIVQorCQkJCVRBSVdBTiAzMDA3NyBUQUlXQU4gMzAwNzcgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC1CQSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEQwQkEgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRS0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQkIgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBEMEJCICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUgIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUJDICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDBCQyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFLVNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUJEICAgKGhleCkJCVNpbGljb24gSW1hZ2UgR21iSAorMDBEMEJEICAgICAoYmFzZSAxNikJCVNpbGljb24gSW1hZ2UgR21iSAorCQkJCUdhcmJzZW5lciBMYW5kc3RyLiAxMAorCQkJCUQtMzA0MTkgSGFubm92ZXIKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLUJFICAgKGhleCkJCUVNVVRFQyBJTkMuCiswMEQwQkUgICAgIChiYXNlIDE2KQkJRU1VVEVDIElOQy4KKwkJCQlQLk8uIEJPWCAzMDM1CisJCQkJRVZFUkVUVCBXQSA5ODIwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQkYgICAoaGV4KQkJUElWT1RBTCBURUNITk9MT0dJRVMKKzAwRDBCRiAgICAgKGJhc2UgMTYpCQlQSVZPVEFMIFRFQ0hOT0xPR0lFUworCQkJCTcwIFMuIExBS0UgQVZFTlVFIC0gU1RFLiAjOTAwCisJCQkJUEFTQURFTkEgQ0EgOTExMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUMwICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDBDMCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSLiAgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQzEgICAoaGV4KQkJSEFSTU9OSUMgREFUQSBTWVNURU1TLCBMVEQuCiswMEQwQzEgICAgIChiYXNlIDE2KQkJSEFSTU9OSUMgREFUQSBTWVNURU1TLCBMVEQuCisJCQkJMTAgQkVJVCBTSEFNQUkgU1RSRUVUCisJCQkJVEVMLUFWSVYKKwkJCQlJU1JBRUwgNjcwMTgKKwkJCQlJU1JBRUwKKworMDAtRDAtQzIgICAoaGV4KQkJQkFMVEhBWkFSIFRFQ0hOT0xPR1kgQUIKKzAwRDBDMiAgICAgKGJhc2UgMTYpCQlCQUxUSEFaQVIgVEVDSE5PTE9HWSBBQgorCQkJCUFOS0RBTU1TR0FUQU4gMjQKKwkJCQlTLTE3MTQzIFNPTE5BCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLUQwLUMzICAgKGhleCkJCVZJVklEIFRFQ0hOT0xPR1kgUFRFLCBMVEQuCiswMEQwQzMgICAgIChiYXNlIDE2KQkJVklWSUQgVEVDSE5PTE9HWSBQVEUsIExURC4KKwkJCQkxMDAzIEJVS0lUIE1FUkFIIENFTlRSQUwKKwkJCQkjMDMtMDksIFMxNTk4MzYKKwkJCQlTSU5HQVBPUkUKKwkJCQlTSU5HQVBPUkUKKworMDAtRDAtQzQgICAoaGV4KQkJVEVSQVRFQ0ggQ09SUE9SQVRJT04KKzAwRDBDNCAgICAgKGJhc2UgMTYpCQlURVJBVEVDSCBDT1JQT1JBVElPTgorCQkJCTIyMyBNSURETEVTRVggVFJQSy4KKwkJCQlCVVJMSU5HVE9OIE1BIDAxODAzLTMzMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUM1ICAgKGhleCkJCUNPTVBVVEFUSU9OQUwgU1lTVEVNUywgSU5DLgorMDBEMEM1ICAgICAoYmFzZSAxNikJCUNPTVBVVEFUSU9OQUwgU1lTVEVNUywgSU5DLgorCQkJCTgzNSBJTk5PVkFUSU9OIERSSVZFCisJCQkJS05PWFZJTExFIFROIDM3OTMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1DNiAgIChoZXgpCQlUSE9NQVMgJiBCRVRUUyBDT1JQLgorMDBEMEM2ICAgICAoYmFzZSAxNikJCVRIT01BUyAmIEJFVFRTIENPUlAuCisJCQkJVGhvbWFzICYgQmV0dHMgQXVzdC4gUHR5LiBMdGQuCisJCQkJMjNhIE55cmFuZyBTdHJlZXQKKwkJCQlMaWRjb21iZSBOZXcgU291dGggV2FsZXMgOTI2MTgKKwkJCQlBVVNUUkFMSUEKKworMDAtRDAtQzcgICAoaGV4KQkJUEFUSFdBWSwgSU5DLgorMDBEMEM3ICAgICAoYmFzZSAxNikJCVBBVEhXQVksIElOQy4KKwkJCQk3NzcgQkVUQSBEUklWRQorCQkJCU1BWUZJRUxEIFZJTExBR0UgT0ggNDQxNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUM4ICAgKGhleCkJCVByZXZhcyBBL1MKKzAwRDBDOCAgICAgKGJhc2UgMTYpCQlQcmV2YXMgQS9TCisJCQkJRnJlZGVyaWtza2FqIDYKKwkJCQlESy0yNDUwIEv4YmVuaGF2biBTViAKKwkJCQlERU5NQVJLCisKKzAwLUQwLUM5ICAgKGhleCkJCUFEVkFOVEVDSCBDTy4sIExURC4KKzAwRDBDOSAgICAgKGJhc2UgMTYpCQlBRFZBTlRFQ0ggQ08uLCBMVEQuCisJCQkJRkwuIDQsIE5PLiAgMTA4LTMKKwkJCQlNSU5HLUNIVUFOIFJPQUQgU0hJTkctVElFTiBDSVRZCisJCQkJVEFJUEVJIFRBSVBFSSBUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLUNBICAgKGhleCkJCUludHJpbnN5YyBTb2Z0d2FyZSBJbnRlcm5hdGlvbmFsIEluYy4KKzAwRDBDQSAgICAgKGJhc2UgMTYpCQlJbnRyaW5zeWMgU29mdHdhcmUgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJNzAwIFdlc3QgUGVuZGVyIFN0cmVldAorCQkJCTEwdGggZmxvb3IKKwkJCQlWYW5jb3V2ZXIgQi5DLiBWNkMgMUc4CisJCQkJQ0FOQURBCisKKzAwLUQwLUNCICAgKGhleCkJCURBU0FOIENPLiwgTFRELgorMDBEMENCICAgICAoYmFzZSAxNikJCURBU0FOIENPLiwgTFRELgorCQkJCTZGLCBLT1NNTyBUT1dFUgorCQkJCTEwMDIsIERBRUNISS1ET05HLCBLQU5HTkFNLUtVIFNFT1VMCisJCQkJS09SRUEgKFpJUCAxMzUtMjgwKQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1EMC1DQyAgIChoZXgpCQlURUNITk9MT0dJRVMgTFlSRSBJTkMuCiswMEQwQ0MgICAgIChiYXNlIDE2KQkJVEVDSE5PTE9HSUVTIExZUkUgSU5DLgorCQkJCTEyMDAgU1QtSkVBTi1CQVBUSVNURSwKKwkJCQlTVUlURSAjMTIwIFFVRUJFQywgUVVFQkVDCisJCQkJQ0FOQURBIEcyRSA1RTgKKwkJCQlDQU5BREEKKworMDAtRDAtQ0QgICAoaGV4KQkJQVRBTiBURUNITk9MT0dZIElOQy4KKzAwRDBDRCAgICAgKGJhc2UgMTYpCQlBVEFOIFRFQ0hOT0xPR1kgSU5DLgorCQkJCSM1LCBBTExFWSAxOCwgTEFORSA4MSwKKwkJCQlDSElFTiBLQU5HLCAyTkQgUk9BRCBISU5DSFUKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtQ0UgICAoaGV4KQkJQVNZU1QgRUxFQ1RST05JQworMDBEMENFICAgICAoYmFzZSAxNikJCUFTWVNUIEVMRUNUUk9OSUMKKwkJCQlCUk9ESVNDRSA3LCAxMEMgVFJaSU4KKwkJCQkxMjM2IFRSWklOCisJCQkJU0xPVkVOSUEKKwkJCQlTTE9WRU5JQQorCiswMC1EMC1DRiAgIChoZXgpCQlNT1JFVE9OIEJBWQorMDBEMENGICAgICAoYmFzZSAxNikJCU1PUkVUT04gQkFZCisJCQkJMTIvOTcgSklKQVdTIFNUUkVFVAorCQkJCVNVTU5FUiBQQVJLLiA0MDc0IFFMRC4KKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtRDAtRDAgICAoaGV4KQkJWkhPTkdYSU5HIFRFTEVDT00gTFRELgorMDBEMEQwICAgICAoYmFzZSAxNikJCVpIT05HWElORyBURUxFQ09NIExURC4KKwkJCQk4LTlGIEJVSUxESU5HIDU0LDMwMSMKKwkJCQlaSE9ORyBTSEFOIERPTkdMVSwgTkFOSklORyBQUkMsIFBDPTIxMDAwCisJCQkJQ0hJTkEKKwkJCQlDSElOQQorCiswMC1EMC1EMSAgIChoZXgpCQlTeWNhbW9yZSBOZXR3b3JrcworMDBEMEQxICAgICAoYmFzZSAxNikJCVN5Y2Ftb3JlIE5ldHdvcmtzCisJCQkJMjIwIE1pbGwgUmQKKwkJCQlDaGVsbXNmb3JkIE1BIDAxODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1EMiAgIChoZXgpCQlFUElMT0cgQ09SUE9SQVRJT04KKzAwRDBEMiAgICAgKGJhc2UgMTYpCQlFUElMT0cgQ09SUE9SQVRJT04KKwkJCQk1MDAgQ09SUE9SQVRFIENJUkNMRSAtIFNURS4KKwkJCQlHT0xERU4gQ08gODA0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUQzICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDBEMyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJTS9TIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUQ0ICAgKGhleCkJCVYtQklUUywgSU5DLgorMDBEMEQ0ICAgICAoYmFzZSAxNikJCVYtQklUUywgSU5DLgorCQkJCTIxNTAgVFJBREUgWk9ORSBCTFZELgorCQkJCVNVSVRFICMxMDUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRDUgICAoaGV4KQkJR1JVTkRJRyBBRworMDBEMEQ1ICAgICAoYmFzZSAxNikJCUdSVU5ESUcgQUcKKwkJCQlLVVJHQVJURU5TR1RSRUVUIDM3CisJCQkJRC05MDc2MiBGVUVSVEgvQkFZRVJOCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtRDAtRDYgICAoaGV4KQkJQUVUSFJBIFRFTEVDT01VTklDQVpJT05JCiswMEQwRDYgICAgIChiYXNlIDE2KQkJQUVUSFJBIFRFTEVDT01VTklDQVpJT05JCisJCQkJVklBIE1BVFRFTyBSSUNDSSwgMTAKKwkJCQk2MDAyMCBBTkNPTkEKKwkJCQlJVEFMWQorCQkJCUlUQUxZCisKKzAwLUQwLUQ3ICAgKGhleCkJCUIyQzIsIElOQy4KKzAwRDBENyAgICAgKGJhc2UgMTYpCQlCMkMyLCBJTkMuCisJCQkJMjAyMCBDSEFMTEVOR0VSIERSSVZFLQorCQkJCVNVSVRFICMxMDEKKwkJCQlBTEFNRURBIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1EOCAgIChoZXgpCQkzQ29tIENvcnBvcmF0aW9uCiswMEQwRDggICAgIChiYXNlIDE2KQkJM0NvbSBDb3Jwb3JhdGlvbgorCQkJCTIxMzMgTEVHSE9STiBTVFJFRVQKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1EOSAgIChoZXgpCQlERURJQ0FURUQgTUlDUk9DT01QVVRFUlMKKzAwRDBEOSAgICAgKGJhc2UgMTYpCQlERURJQ0FURUQgTUlDUk9DT01QVVRFUlMKKwkJCQlHUk9VUCwgTFRELgorCQkJCTExIE9BSyBTVFJFRVQsIFBFTkRMRUJVUlkgU1dJTlRPTiwgTUFOQ0gKKwkJCQlNMjc0RkwgVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC1EQSAgIChoZXgpCQlUQUlDT00gREFUQSBTWVNURU1TIENPLiwgTFRELgorMDBEMERBICAgICAoYmFzZSAxNikJCVRBSUNPTSBEQVRBIFNZU1RFTVMgQ08uLCBMVEQuCisJCQkJNDUsIFdVLUtVTkcgNSBST0FECisJCQkJV1UtS1UgSU5ELiBQQVZLIFRBSVBFSS1IU0lFTgorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtREIgICAoaGV4KQkJTUNRVUFZIElOVEVSTkFUSU9OQUwKKzAwRDBEQiAgICAgKGJhc2UgMTYpCQlNQ1FVQVkgSU5URVJOQVRJT05BTAorCQkJCTEzNjAwIElORFVTVFJJQUwgUEFSSyBCTFZELgorCQkJCU1JTk5FQVBPTElTIE1OIDU1NDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1EQyAgIChoZXgpCQlNT0RVTEFSIE1JTklORyBTWVNURU1TLCBJTkMuCiswMEQwREMgICAgIChiYXNlIDE2KQkJTU9EVUxBUiBNSU5JTkcgU1lTVEVNUywgSU5DLgorCQkJCTMyODkgRS4gSEVNSVNQSEVSRSBMT09QCisJCQkJVFVDU09OIEFaIDg1NzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1ERCAgIChoZXgpCQlTVU5SSVNFIFRFTEVDT00sIElOQy4KKzAwRDBERCAgICAgKGJhc2UgMTYpCQlTVU5SSVNFIFRFTEVDT00sIElOQy4KKwkJCQkyMiBHUkVBVCBPQUtTIEJMVkQuCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLURFICAgKGhleCkJCVBISUxJUFMgTVVMVElNRURJQSBORVRXT1JLCiswMEQwREUgICAgIChiYXNlIDE2KQkJUEhJTElQUyBNVUxUSU1FRElBIE5FVFdPUksKKwkJCQlTWVNURU1TIEdNQkgKKwkJCQlGSUNIVEVTVFJBU1NFIDFBIEQtMDI2MDEgQkFVVFpFTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLURGICAgKGhleCkJCUtVWlVNSSBFTEVDVFJPTklDUywgSU5DLgorMDBEMERGICAgICAoYmFzZSAxNikJCUtVWlVNSSBFTEVDVFJPTklDUywgSU5DLgorCQkJCTI4LTYgSUlKSU1BLUNIWU8sIFNBS0FFLUtVCisJCQkJWU9LT0hBTUEtU0hJIEtBTkFHQVdBLCAyNDQtMDg0MgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtRDAtRTAgICAoaGV4KQkJRE9PSU4gRUxFQ1RST05JQ1MgQ08uCiswMEQwRTAgICAgIChiYXNlIDE2KQkJRE9PSU4gRUxFQ1RST05JQ1MgQ08uCisJCQkJRE9PSU4gQkxERy4gMTYtNiwgU09PTkFFLURPTkcKKwkJCQlCVU5EQU5HLUdVLCBTVU5HTkFNLVNJIEtZVU5HR0ktRE8KKwkJCQlLT1JFQSA0NjMtMDIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQwLUUxICAgKGhleCkJCUFWSU9OSVRFSyBJU1JBRUwgSU5DLgorMDBEMEUxICAgICAoYmFzZSAxNikJCUFWSU9OSVRFSyBJU1JBRUwgSU5DLgorCQkJCTEgRVRHQVIgU1RSRUVUCisJCQkJVElSQVQgIENBUk1FTCAgMzkxMjAKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtRDAtRTIgICAoaGV4KQkJTVJUIE1JQ1JPLCBJTkMuCiswMEQwRTIgICAgIChiYXNlIDE2KQkJTVJUIE1JQ1JPLCBJTkMuCisJCQkJMTQwMDAgUy4gTUlMSVRBUlkgVFJBSUwKKwkJCQlERUxSQVkgQkVBQ0ggRkwgMzM0ODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUUzICAgKGhleCkJCUVMRS1DSEVNIEVOR0lORUVSSU5HIENPLiwgTFRELgorMDBEMEUzICAgICAoYmFzZSAxNikJCUVMRS1DSEVNIEVOR0lORUVSSU5HIENPLiwgTFRELgorCQkJCVdJTkRTVE9ORSBPRkZJQ0UKKwkJCQkxLTgwMywgMjc1LTIgWUFOR0pVRS1ET05HLCBTRU9DSE8tS1UKKwkJCQlTRU9VTCAxMzctMTMwIFNFT1VMIDEzNy0xMzAgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtRDAtRTQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBEMEU0ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRTUgICAoaGV4KQkJU09MSURVTSBTWVNURU1TIENPUlAuCiswMEQwRTUgICAgIChiYXNlIDE2KQkJU09MSURVTSBTWVNURU1TIENPUlAuCisJCQkJOTQwIEJFTEZBU1QgUk9BRCAxUy4yMTcKKwkJCQlPVFRBV0EsIE9OVEFSSU8gSzFHIDRBMgorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC1EMC1FNiAgIChoZXgpCQlJQk9ORCBJTkMuCiswMEQwRTYgICAgIChiYXNlIDE2KQkJSUJPTkQgSU5DLgorCQkJCTMxNjAsIERFIExBIENSVVogQkxWRC4KKwkJCQlTVUlURSAjMTAxCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUU3ICAgKGhleCkJCVZDT04gVEVMRUNPTU1VTklDQVRJT04gTFRELgorMDBEMEU3ICAgICAoYmFzZSAxNikJCVZDT04gVEVMRUNPTU1VTklDQVRJT04gTFRELgorCQkJCTIyIE1BU0tJVCBTVFJFRVQKKwkJCQlIRVJaTElZQSAgNDY3MzMKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtRDAtRTggICAoaGV4KQkJTUFDIFNZU1RFTSBDTy4sIExURC4KKzAwRDBFOCAgICAgKGJhc2UgMTYpCQlNQUMgU1lTVEVNIENPLiwgTFRELgorCQkJCVImRCBJTlNUSVRVVEUKKwkJCQlNQUMgU1lTVEVNIENPLiwgTFRELiAyMTktMiBBTkFORzctRE9ORywKKwkJCQlLWVVOR0tJLURPIEtPUkVBLCA0MzAtMDE3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQwLUU5ICAgKGhleCkJCUFkdmFudGFnZSBDZW50dXJ5IFRlbGVjb21tdW5pY2F0aW9uIENvcnAuCiswMEQwRTkgICAgIChiYXNlIDE2KQkJQWR2YW50YWdlIENlbnR1cnkgVGVsZWNvbW11bmljYXRpb24gQ29ycC4KKwkJCQk0RiwgNDEsIFR1bmdoc2luIFJkLgorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC1FQSAgIChoZXgpCQlORVhUT05FIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEQwRUEgICAgIChiYXNlIDE2KQkJTkVYVE9ORSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTk3MDAgR1JFQVQgU0VORUNBIEhHSFdZCisJCQkJUk9DS1ZJTExFIE1EIDIwODUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1FQiAgIChoZXgpCQlMSUdIVEVSQSBORVRXT1JLUywgSU5DLgorMDBEMEVCICAgICAoYmFzZSAxNikJCUxJR0hURVJBIE5FVFdPUktTLCBJTkMuCisJCQkJMTAyMDEgQlVCQiBST0FECisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1FQyAgIChoZXgpCQlOQUtBWU8gVEVMRUNPTU1VTklDQVRJT05TLCBJTkMKKzAwRDBFQyAgICAgKGJhc2UgMTYpCQlOQUtBWU8gVEVMRUNPTU1VTklDQVRJT05TLCBJTkMKKwkJCQkxLTMtMiBTT1VKWUEtTUFDSEkKKwkJCQlNQUVCQVNISS1TSEkgR1VOTUEsIDM3MS0wODUzCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1EMC1FRCAgIChoZXgpCQlYSU9YCiswMEQwRUQgICAgIChiYXNlIDE2KQkJWElPWAorCQkJCTE1MCBET1cgU1RSRUVUCisJCQkJTUFOQ0hFU1RFUiBOSCAwMzEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRUUgICAoaGV4KQkJRElDVEFQSE9ORSBDT1JQT1JBVElPTgorMDBEMEVFICAgICAoYmFzZSAxNikJCURJQ1RBUEhPTkUgQ09SUE9SQVRJT04KKwkJCQkzMTkxIEJST0FEQlJJREdFIEFWRS4KKwkJCQlTVFJBVEZPUkQgQ1QgMDY2MTQtMjU1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRUYgICAoaGV4KQkJSUdUCiswMEQwRUYgICAgIChiYXNlIDE2KQkJSUdUCisJCQkJOTI5NSBQUk9UT1RZUEUgRFJJVkUKKwkJCQlSRU5PIE5WIDg5NTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1GMCAgIChoZXgpCQlDT05WSVNJT04gVEVDSE5PTE9HWSBHTUJICiswMEQwRjAgICAgIChiYXNlIDE2KQkJQ09OVklTSU9OIFRFQ0hOT0xPR1kgR01CSAorCQkJCVJFQkVOUklORyAzMworCQkJCUQtMzgxMDYgQlJBVU5TQ0hXRUlHCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtRDAtRjEgICAoaGV4KQkJU0VHQSBFTlRFUlBSSVNFUywgTFRELgorMDBEMEYxICAgICAoYmFzZSAxNikJCVNFR0EgRU5URVJQUklTRVMsIExURC4KKwkJCQkxMi0xNCBISUdBU0hJS09VSklZQSAyLUNIT01FCisJCQkJT0hUQS1LVSBUT0tZTyAxNDQtODUzMgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtRDAtRjIgICAoaGV4KQkJTU9OVEVSRVkgTkVUV09SS1MKKzAwRDBGMiAgICAgKGJhc2UgMTYpCQlNT05URVJFWSBORVRXT1JLUworCQkJCTE5MDkgTi4gR0xFTlZJTExFIERSSVZFCisJCQkJUklDSEFSRFNPTiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRjMgICAoaGV4KQkJU09MQVJJIERJIFVESU5FIFNQQQorMDBEMEYzICAgICAoYmFzZSAxNikJCVNPTEFSSSBESSBVRElORSBTUEEKKwkJCQlWSUEgR0lOTyBQSUVSSSAyOQorCQkJCTMzMTAwIFVESU5FCisJCQkJSVRBTFkKKwkJCQlJVEFMWQorCiswMC1EMC1GNCAgIChoZXgpCQlDQVJJTlRISUFOIFRFQ0ggSU5TVElUVVRFCiswMEQwRjQgICAgIChiYXNlIDE2KQkJQ0FSSU5USElBTiBURUNIIElOU1RJVFVURQorCQkJCVJJQ0hBUkQtV0FHTkVSIFNUUi4gMTkKKwkJCQk5NTAwIFZJTExBQ0gKKwkJCQlBVVNUUklBCisJCQkJQVVTVFJJQQorCiswMC1EMC1GNSAgIChoZXgpCQlPUkFOR0UgTUlDUk8sIElOQy4KKzAwRDBGNSAgICAgKGJhc2UgMTYpCQlPUkFOR0UgTUlDUk8sIElOQy4KKwkJCQkxNDAwIE4uIExBS0VWSUVXIEFWRS4KKwkJCQlBTkFIRUlNIENBIDkyODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1GNiAgIChoZXgpCQlBbGNhdGVsIENhbmFkYQorMDBEMEY2ICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgQ2FuYWRhCisJCQkJNjAwIE1hcmNoIFJvYWQKKwkJCQlLYW5hdGEsIE9udGFyaW8KKwkJCQlLMksgMkU2CisJCQkJQ0FOQURBCisKKzAwLUQwLUY3ICAgKGhleCkJCU5FWFQgTkVUUyBDT1JQT1JBVElPTgorMDBEMEY3ICAgICAoYmFzZSAxNikJCU5FWFQgTkVUUyBDT1JQT1JBVElPTgorCQkJCU1JVEEgS09LVVNBSSBCTERHLiAxN0YKKwkJCQkxLTQtMjggTUlUQSBNSU5BVE8tS1UgVE9LWU8gMTA4LTAwNzMKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUQwLUY4ICAgKGhleCkJCUZVSklBTiBTVEFSIFRFUk1JTkFMCiswMEQwRjggICAgIChiYXNlIDE2KQkJRlVKSUFOIFNUQVIgVEVSTUlOQUwKKwkJCQlERVZJQ0UgQ08uLCBMVEQuCisJCQkJRlVFUiBJTkRVU1RSSUFMIFpPTkUgU1RBUiBTQ0lFTkNFICYgVEVDSAorCQkJCUZVWkhPVSBGVUpJQU4sIENISU5BIDM1MDAwMgorCQkJCUNISU5BCisKKzAwLUQwLUY5ICAgKGhleCkJCUFDVVRFIENPTU1VTklDQVRJT05TIENPUlAuCiswMEQwRjkgICAgIChiYXNlIDE2KQkJQUNVVEUgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQlOTy4gMSwgQ1JFQVRJT04gUk9BRCBJSUkKKwkJCQlTQ0lFTkNFIEJBU0VEIElORFVTVFJJQUwgUEFSSyBIU0lOQ0hVIDMwCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC1GQSAgIChoZXgpCQlUaGFsZXMgZS1TZWN1cml0eSBMdGQuCiswMEQwRkEgICAgIChiYXNlIDE2KQkJVGhhbGVzIGUtU2VjdXJpdHkgTHRkLgorCQkJCU1lYWRvdyBWaWV3IEhvdXNlLCBDcmVuZG9uIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJTG9uZyBDcmVuZG9uCisJCQkJQXlsZXNidXJ5IEJ1Y2tpbmdoYW1zaGlyZSBIUDE4IDlFUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLUZCICAgKGhleCkJCVRFSyBNSUNST1NZU1RFTVMsIElOQ09SUE9SQVRFRAorMDBEMEZCICAgICAoYmFzZSAxNikJCVRFSyBNSUNST1NZU1RFTVMsIElOQ09SUE9SQVRFRAorCQkJCU9ORSBOT1JUSCBBVkVOVUUKKwkJCQlCVVJMSU5HVE9OIE1BIDAxODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1GQyAgIChoZXgpCQlHUkFOSVRFIE1JQ1JPU1lTVEVNUworMDBEMEZDICAgICAoYmFzZSAxNikJCUdSQU5JVEUgTUlDUk9TWVNURU1TCisJCQkJMTAyMDIgTi4gRU5URVJQUklTRSBEUklWRQorCQkJCU1FUVVPTiBXSSA1MzA5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRkQgICAoaGV4KQkJT1BUSU1BIFRFTEUuQ09NLCBJTkMuCiswMEQwRkQgICAgIChiYXNlIDE2KQkJT1BUSU1BIFRFTEUuQ09NLCBJTkMuCisJCQkJMjAwLTkwIEFsbHN0YXRlIFBhcmt3YXkKKwkJCQlNYXJraGFtIE9OIEwzUiA2SDMKKwkJCQlDQU5BREEKKworMDAtRDAtRkUgICAoaGV4KQkJQVNUUkFMIFBPSU5UCiswMEQwRkUgICAgIChiYXNlIDE2KQkJQVNUUkFMIFBPSU5UCisJCQkJQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkyNyBJTkRVU1RSSUFMIEFWRS4sLVNURS4gIzMKKwkJCQlDSEVMTVNGT1JEIE1BIDAxODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1GRiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEQwRkYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMS0xQyAgIChoZXgpCQlBQ0VURUwKKzAwRDExQyAgICAgKGJhc2UgMTYpCQlBQ0VURUwKKwkJCQkjMTAwNiwgV29ybGQgTWVyZGlhbiAyLWNoYSwgNDI2LTUsCisJCQkJR2FzYW4tZG9uZywgR2V1bWNoZW9uLWd1LAorCQkJCVNlb3VsICAxNTMtNzU5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQzLThEICAgKGhleCkJCUhvdGVsIFRlY2hub2xvZ3kgTmV4dCBHZW5lcmF0aW9uCiswMEQzOEQgICAgIChiYXNlIDE2KQkJSG90ZWwgVGVjaG5vbG9neSBOZXh0IEdlbmVyYXRpb24KKwkJCQk2NTAgRS4gQWxnb25xdWluIFJvYWQKKwkJCQlTdGUgMjA3CisJCQkJU2NoYXVtYnVyZyBJTCA2MDE3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREItNDUgICAoaGV4KQkJVEhBTVdBWSBDTy4sTFRELgorMDBEQjQ1ICAgICAoYmFzZSAxNikJCVRIQU1XQVkgQ08uLExURC4KKwkJCQkzLTktMgorCQkJCUltYWl6dW1pCisJCQkJRnVqaSBTaGl6dW9rYSA0MTctMDAwMQorCQkJCUpBUEFOCisKKzAwLURELTAwICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwMCAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wMSAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMDEgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMDIgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDAyICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTAzICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwMyAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wNCAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMDQgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMDUgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDA1ICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTA2ICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwNiAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wNyAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMDcgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMDggICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDA4ICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTA5ICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwOSAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wQSAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMEEgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMEIgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDBCICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTBDICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwQyAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wRCAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMEQgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMEUgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDBFICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTBGICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwRiAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0wMCAgIChoZXgpCQlGdWppdHN1IExpbWl0ZWQKKzAwRTAwMCAgICAgKGJhc2UgMTYpCQlGdWppdHN1IExpbWl0ZWQKKwkJCQlNdXNhc2hpLWtvc3VnaSBUb3dlciBQbGFjZSBCbGRnLiwKKwkJCQlLb3N1Z2ktY2hvIDEtY2hvbWUsTmFrYWhhcmEta3UKKwkJCQlLQVdBU0FLSSAyMTEtODggS2FuYWdhd2EgCisJCQkJSkFQQU4KKworMDAtRTAtMDEgICAoaGV4KQkJU1RSQU5EIExJR0hUSU5HIExJTUlURUQKKzAwRTAwMSAgICAgKGJhc2UgMTYpCQlTVFJBTkQgTElHSFRJTkcgTElNSVRFRAorCQkJCUdSQU5UIFdBWQorCQkJCUlTTEVXT1JUSAorCQkJCU1JRERMRVNFWCBFbmdsYW5kIFRXNyA1UUQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtMDIgICAoaGV4KQkJQ1JPU1NST0FEUyBTWVNURU1TLCBJTkMuCiswMEUwMDIgICAgIChiYXNlIDE2KQkJQ1JPU1NST0FEUyBTWVNURU1TLCBJTkMuCisJCQkJOTM5MCBSRVNFQVJDSCBCTFZELgorCQkJCVNVSVRFIDItMzAwCisJCQkJQVVTVElOIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0wMyAgIChoZXgpCQlOT0tJQSBXSVJFTEVTUyBCVVNJTkVTUyBDT01NVU4KKzAwRTAwMyAgICAgKGJhc2UgMTYpCQlOT0tJQSBXSVJFTEVTUyBCVVNJTkVTUyBDT01NVU4KKwkJCQlBQ0NFU1MgUE9JTlQgUFJPRFVDVFMgR1JPVVAKKwkJCQlVTklUIDYsIENBTUJSSURHRSBCVVMgUEFSSyBNSUxUT04gUkQsIENBCisJCQkJQ0I0IDBXUyAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtMDQgICAoaGV4KQkJUE1DLVNJRVJSQSwgSU5DLgorMDBFMDA0ICAgICAoYmFzZSAxNikJCVBNQy1TSUVSUkEsIElOQy4KKwkJCQkxMDUtODU1NSBCQVhURVIgUExBQ0UKKwkJCQlCVVJOQUJZLCBCQyBWNUEgNFY3ICAKKwkJCQlDQU5BREEKKworMDAtRTAtMDUgICAoaGV4KQkJVEVDSE5JQ0FMIENPUlAuCiswMEUwMDUgICAgIChiYXNlIDE2KQkJVEVDSE5JQ0FMIENPUlAuCisJCQkJMjItNiBNSU5BTUkgU0VOR0VOQ0hPCisJCQkJTklTSElLVSBZT0tPSEFNQSBDSVRZCisJCQkJS0FOQUdBV0EgIAorCQkJCUpBUEFOCisKKzAwLUUwLTA2ICAgKGhleCkJCVNJTElDT04gSU5URUdSQVRFRCBTWVMuIENPUlAuCiswMEUwMDYgICAgIChiYXNlIDE2KQkJU0lMSUNPTiBJTlRFR1JBVEVEIFNZUy4gQ09SUC4KKwkJCQkxNiwgQ1JFQVRJT04gUkQuIEkKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU4gQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUUwLTA3ICAgKGhleCkJCUF2YXlhIEVDUyBMdGQKKzAwRTAwNyAgICAgKGJhc2UgMTYpCQlBdmF5YSBFQ1MgTHRkCisJCQkJVW5pdCAxIFN0ZXJsaW5nIENvdXJ0LCBNdW5kZWxscworCQkJCVdlbHd5biBHYXJkZW4gQ2l0eSBIZXJ0IEFMNyAxTFoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1FMC0wOCAgIChoZXgpCQlBTUFaSU5HIENPTlRST0xTISBJTkMuCiswMEUwMDggICAgIChiYXNlIDE2KQkJQU1BWklORyBDT05UUk9MUyEgSU5DLgorCQkJCTE2MTUgV1lBVFQgRFJJVkUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMDkgICAoaGV4KQkJTUFSQVRIT04gVEVDSE5PTE9HSUVTIENPUlAuCiswMEUwMDkgICAgIChiYXNlIDE2KQkJTUFSQVRIT04gVEVDSE5PTE9HSUVTIENPUlAuCisJCQkJMTMwMCBNQVNTQUNIVVNFVFRTIEFWRU5VRQorCQkJCUJPWEJPUk9VR0ggTUEgMDE3MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTBBICAgKGhleCkJCURJQkEsIElOQy4KKzAwRTAwQSAgICAgKGJhc2UgMTYpCQlESUJBLCBJTkMuCisJCQkJMzM1NSBFRElTT04gV0FZCisJCQkJTUVOTE8gUEFSSyBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMEIgICAoaGV4KQkJUk9PRlRPUCBDT01NVU5JQ0FUSU9OUyBDT1JQLgorMDBFMDBCICAgICAoYmFzZSAxNikJCVJPT0ZUT1AgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQk0NjggUEFDTyBEUklWRQorCQkJCUxPUyBBTFRPUyBDQSA5NDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMEMgICAoaGV4KQkJTU9UT1JPTEEKKzAwRTAwQyAgICAgKGJhc2UgMTYpCQlNT1RPUk9MQQorCQkJCTU0MDEgTi4gQkVBQ0ggU1QuICBTMjQzCisJCQkJRlQuIFdPUlRIIFRYIDc2MTM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0wRCAgIChoZXgpCQlSQURJQU5UIFNZU1RFTVMKKzAwRTAwRCAgICAgKGJhc2UgMTYpCQlSQURJQU5UIFNZU1RFTVMKKwkJCQkxMDAwIEFMREVSTUFOIERSLgorCQkJCUFMUEhBUkVUVEEgR0EgMzAyMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTBFICAgKGhleCkJCUFWQUxPTiBJTUFHSU5HIFNZU1RFTVMsIElOQy4KKzAwRTAwRSAgICAgKGJhc2UgMTYpCQlBVkFMT04gSU1BR0lORyBTWVNURU1TLCBJTkMuCisJCQkJMzEzMyBJTkRJQU4gUk9BRAorCQkJCUJPVUxERVIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTBGICAgKGhleCkJCVNIQU5HSEFJIEJBVUQgREFUQQorMDBFMDBGICAgICAoYmFzZSAxNikJCVNIQU5HSEFJIEJBVUQgREFUQQorCQkJCUNPTU1VTklDQVRJT04gREVWRUxPUE1FTlQgQ09SUAorCQkJCTNGLCBHT0xEIExVQ0sgQlVJTERJTkcgMjUwNyBQVURPTkcgUk9BRAorCQkJCVNIQU5HSEFJICAKKwkJCQlDSElOQQorCiswMC1FMC0xMCAgIChoZXgpCQlIRVNTIFNCLUFVVE9NQVRFTkJBVSBHbWJICiswMEUwMTAgICAgIChiYXNlIDE2KQkJSEVTUyBTQi1BVVRPTUFURU5CQVUgR21iSAorCQkJCUhJTkRFTkJVUkdTVFJBU1NFIDI3LTI5CisJCQkJRC03MTEwNiBNQUdTVEFEVCAgCisJCQkJR0VSTUFOWQorCiswMC1FMC0xMSAgIChoZXgpCQlVbmlkZW4gQ29ycG9yYXRpb24KKzAwRTAxMSAgICAgKGJhc2UgMTYpCQlVbmlkZW4gQ29ycG9yYXRpb24KKwkJCQkyLTEyLTcgSGF0Y2hvYm9yaSwKKwkJCQlDaHVvLWt1IFRva3lvIDEwNC04NTEyCisJCQkJSkFQQU4KKworMDAtRTAtMTIgICAoaGV4KQkJUExVVE8gVEVDSE5PTE9HSUVTIElOVEVSTkFUSU9OQUwgSU5DLgorMDBFMDEyICAgICAoYmFzZSAxNikJCVBMVVRPIFRFQ0hOT0xPR0lFUyBJTlRFUk5BVElPTkFMIElOQy4KKwkJCQkyNTExIDU1VEggU1RSRUVUCisJCQkJQk9VTERFUiBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMTMgICAoaGV4KQkJRUFTVEVSTiBFTEVDVFJPTklDIENPLiwgTFRELgorMDBFMDEzICAgICAoYmFzZSAxNikJCUVBU1RFUk4gRUxFQ1RST05JQyBDTy4sIExURC4KKwkJCQlOTy4gNCwgU0hJTi1MT05HIFJPQUQsCisJCQkJS1dFSS1TSEFOIElORFVTVFJJQUwgQVJFQQorCQkJCVRBTy1ZVUFOICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUUwLTE0ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRTAxNCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTE1ICAgKGhleCkJCUhFSVdBIENPUlBPUkFUSU9OCiswMEUwMTUgICAgIChiYXNlIDE2KQkJSEVJV0EgQ09SUE9SQVRJT04KKwkJCQkyLTMwMTQtOCwgSElST1NBV0EtQ0hPCisJCQkJS0lSWVUtU0hJCisJCQkJR1VOTUEgUFJFRi4gMzc2ICAKKwkJCQlKQVBBTgorCiswMC1FMC0xNiAgIChoZXgpCQlSQVBJRCBDSVRZIENPTU1VTklDQVRJT05TCiswMEUwMTYgICAgIChiYXNlIDE2KQkJUkFQSUQgQ0lUWSBDT01NVU5JQ0FUSU9OUworCQkJCTU1NSBDTFlERSBBVkUuCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMTcgICAoaGV4KQkJRVhYQUNUIEdtYkgKKzAwRTAxNyAgICAgKGJhc2UgMTYpCQlFWFhBQ1QgR21iSAorCQkJCVJIRUlOU1RSQVNFIDcKKwkJCQlELTQxODM2IEhVQ0tFTEhPVkVOICAKKwkJCQlHRVJNQU5ZCisKKzAwLUUwLTE4ICAgKGhleCkJCUFTVVNURUsgQ09NUFVURVIgSU5DLgorMDBFMDE4ICAgICAoYmFzZSAxNikJCUFTVVNURUsgQ09NUFVURVIgSU5DLgorCQkJCTE1MCBMSS1URSBSRC4KKwkJCQlQRUlUT1UsIFRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1FMC0xOSAgIChoZXgpCQlJTkcuIEdJT1JEQU5PIEVMRVRUUk9OSUNBCiswMEUwMTkgICAgIChiYXNlIDE2KQkJSU5HLiBHSU9SREFOTyBFTEVUVFJPTklDQQorCQkJCVZJQSBQSUVUUk8gQ09TU0EgIDExNS8xMgorCQkJCTEwMTQ2LVRPUklOTyAgCisJCQkJSVRBTFkKKworMDAtRTAtMUEgICAoaGV4KQkJQ09NVEVDIFNZU1RFTVMuIENPLiwgTFRELgorMDBFMDFBICAgICAoYmFzZSAxNikJCUNPTVRFQyBTWVNURU1TLiBDTy4sIExURC4KKwkJCQk0MDQtOSBDSE9VTkdDSEVOLURPTkcKKwkJCQlCVVBZT1VORy1LVSwgSU5DSE9OICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtRTAtMUIgICAoaGV4KQkJU1BIRVJFIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEUwMUIgICAgIChiYXNlIDE2KQkJU1BIRVJFIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMiBFTkVSR1kgRFJJVkUKKwkJCQlMQUtFIEJMVUZGIElMIDYwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0xQyAgIChoZXgpCQlDcmFkbGVwb2ludCwgSW5jCiswMEUwMUMgICAgIChiYXNlIDE2KQkJQ3JhZGxlcG9pbnQsIEluYworCQkJCTExOTkgU2hvcmVsaW5lIExhbmUKKwkJCQlTdWl0ZSAzMDEKKwkJCQlCb2lzZSBJRCA4MzcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMUQgICAoaGV4KQkJV2ViVFYgTkVUV09SS1MsIElOQy4KKzAwRTAxRCAgICAgKGJhc2UgMTYpCQlXZWJUViBORVRXT1JLUywgSU5DLgorCQkJCTMwNSBMWVRUT04gQVZFLgorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMUUgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBFMDFFICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMUYgICAoaGV4KQkJQVZJRElBIFN5c3RlbXMsIEluYy4KKzAwRTAxRiAgICAgKGJhc2UgMTYpCQlBVklESUEgU3lzdGVtcywgSW5jLgorCQkJCTEzNSBOT1JUSCBQTEFJTlMgSU5EVVNUUklBTCBSRAorCQkJCVdBTExJTkdGT1JEIENUIDA2NDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0yMCAgIChoZXgpCQlURUNOT01FTiBPWQorMDBFMDIwICAgICAoYmFzZSAxNikJCVRFQ05PTUVOIE9ZCisJCQkJUC5PLiBCT1ggOTMKKwkJCQlGSU4tMDIyNzEgRVNQT08gIAorCQkJCUZJTkxBTkQKKworMDAtRTAtMjEgICAoaGV4KQkJRlJFRUdBVEUgQ09SUC4KKzAwRTAyMSAgICAgKGJhc2UgMTYpCQlGUkVFR0FURSBDT1JQLgorCQkJCTcxMCBMQUtFV0FZICBTVEUuIzIzMAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMjIgICAoaGV4KQkJQW5hbG9nIERldmljZXMgSW5jLgorMDBFMDIyICAgICAoYmFzZSAxNikJCUFuYWxvZyBEZXZpY2VzIEluYy4KKwkJCQk3NzcgQmF5IFN0cmVldAorCQkJCVN1aXRlIDIzMDMKKwkJCQlUb3JvbnRvIE9udGFyaW8gTTVHIDJDOAorCQkJCUNBTkFEQQorCiswMC1FMC0yMyAgIChoZXgpCQlURUxSQUQKKzAwRTAyMyAgICAgKGJhc2UgMTYpCQlURUxSQUQKKwkJCQlQLk8uIEJPWCA1MAorCQkJCUxPRCA3MTEwMCAgCisJCQkJSVNSQUVMCisKKzAwLUUwLTI0ICAgKGhleCkJCUdBRFpPT1ggTkVUV09SS1MKKzAwRTAyNCAgICAgKGJhc2UgMTYpCQlHQURaT09YIE5FVFdPUktTCisJCQkJNTg1MCBIRUxMWUVSIEFWRU5VRQorCQkJCVNBTiBKT1NFIENBIDk1MTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0yNSAgIChoZXgpCQlkaXQgQ28uLCBMdGQuCiswMEUwMjUgICAgIChiYXNlIDE2KQkJZGl0IENvLiwgTHRkLgorCQkJCVByZW1pZXIgVG95b2NobyBCdWlsZGluZworCQkJCTIzLTIxIFRveW8gMy1jaG9tZSwKKwkJCQlLb3RvLWt1IFRva3lvIDEzNS0wMDU2CisJCQkJSkFQQU4KKworMDAtRTAtMjYgICAoaGV4KQkJUmVkbGFrZSBNQVNEIExMQworMDBFMDI2ICAgICAoYmFzZSAxNikJCVJlZGxha2UgTUFTRCBMTEMKKwkJCQkzNDQwIEUuIFByaXRhbm5pYSBEci4KKwkJCQlTdWl0ZSAxMjQKKwkJCQlUdXNjb24gQVogODU3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTI3ICAgKGhleCkJCURVWCwgSU5DLgorMDBFMDI3ICAgICAoYmFzZSAxNikJCURVWCwgSU5DLgorCQkJCTUtMTgtMTksIE5JU0hJS0FNQVRBLCBPVEEtS1UKKwkJCQlUT0tZTy1UTywgMTQ0ICAKKwkJCQlKQVBBTgorCiswMC1FMC0yOCAgIChoZXgpCQlBUFRJWCBDT1JQT1JBVElPTgorMDBFMDI4ICAgICAoYmFzZSAxNikJCUFQVElYIENPUlBPUkFUSU9OCisJCQkJMjg4MCBOLiBGSVJTVCBTVFJFRVQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMjkgICAoaGV4KQkJU1RBTkRBUkQgTUlDUk9TWVNURU1TIENPUlAuCiswMEUwMjkgICAgIChiYXNlIDE2KQkJU1RBTkRBUkQgTUlDUk9TWVNURU1TIENPUlAuCisJCQkJNiBIVUdIRVMKKwkJCQlJUlZJTkUgQ0EgOTI3MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTJBICAgKGhleCkJCVRBTkRCRVJHIFRFTEVWSVNJT04gQVMKKzAwRTAyQSAgICAgKGJhc2UgMTYpCQlUQU5EQkVSRyBURUxFVklTSU9OIEFTCisJCQkJUEhJTElQIFBFREVSU0VOUyBWIDIwCisJCQkJTi0xMzI0IExZU0FLRVIgIAorCQkJCU5PUldBWQorCiswMC1FMC0yQiAgIChoZXgpCQlFWFRSRU1FIE5FVFdPUktTCiswMEUwMkIgICAgIChiYXNlIDE2KQkJRVhUUkVNRSBORVRXT1JLUworCQkJCTEwNDYwIEJBTkRMRVkgRFJJVkUKKwkJCQlDVVBFUklOVDAgQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTJDICAgKGhleCkJCUFTVCBDT01QVVRFUgorMDBFMDJDICAgICAoYmFzZSAxNikJCUFTVCBDT01QVVRFUgorCQkJCTE2MjE1IEFMVE9OIFBBUktXQVkKKwkJCQlJUlZJTkUgQ0EgOTI3MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTJEICAgKGhleCkJCUlubm9NZWRpYUxvZ2ljLCBJbmMuCiswMEUwMkQgICAgIChiYXNlIDE2KQkJSW5ub01lZGlhTG9naWMsIEluYy4KKwkJCQkzNjUzIENIRU1JTiBDSEFNQkxZCisJCQkJTE9OR1VFVUlMLCBRVUVCRUMgSjRMIEo0TCAgSU45CisJCQkJQ0FOQURBCisKKzAwLUUwLTJFICAgKGhleCkJCVNQQyBFTEVDVFJPTklDUyBDT1JQT1JBVElPTgorMDBFMDJFICAgICAoYmFzZSAxNikJCVNQQyBFTEVDVFJPTklDUyBDT1JQT1JBVElPTgorCQkJCTItMS0zIFNISUJBU0FLSSwgQ0hPRlUtU0hJCisJCQkJVE9LWU8sIDE4MiAgCisJCQkJSkFQQU4KKworMDAtRTAtMkYgICAoaGV4KQkJTUNOUyBIT0xESU5HUywgTC5QLgorMDBFMDJGICAgICAoYmFzZSAxNikJCU1DTlMgSE9MRElOR1MsIEwuUC4KKwkJCQlUQ0ksIElOQy4tVEVDSE5PTE9HWSBWRU5UVVJFUworCQkJCVAuTy4gQk9YIDU2MzAKKwkJCQlERU5WRVIgQ08gODAyMTctNTYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMzAgICAoaGV4KQkJTUVMSVRBIElOVEVSTkFUSU9OQUwgQ09SUC4KKzAwRTAzMCAgICAgKGJhc2UgMTYpCQlNRUxJVEEgSU5URVJOQVRJT05BTCBDT1JQLgorCQkJCTUwNTEgUEVBQ0hUUkVFIENPUk5FUlMgQ0lSQ0xFCisJCQkJTk9SQ1JPU1MgR0EgMzAwOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTMxICAgKGhleCkJCUhBR0lXQVJBIEVMRUNUUklDIENPLiwgTFRELgorMDBFMDMxICAgICAoYmFzZSAxNikJCUhBR0lXQVJBIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTcsIFNISU1PS09GVUtBREEsIEFTQURBLUNITworCQkJCU5JU1NISU4tU0hJLCBBSUNISSAgNDcwLTAxICAKKwkJCQlKQVBBTgorCiswMC1FMC0zMiAgIChoZXgpCQlNSVNZUyBGSU5BTkNJQUwgU1lTVEVNUywgTFRELgorMDBFMDMyICAgICAoYmFzZSAxNikJCU1JU1lTIEZJTkFOQ0lBTCBTWVNURU1TLCBMVEQuCisJCQkJQlVDS0hPTFQgRFJJVkUsCisJCQkJV0FSTkRPTiwgV09SQ0VTVEVSIFdSNDlTUiAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtMzMgICAoaGV4KQkJRS5FLlAuRC4gR21iSAorMDBFMDMzICAgICAoYmFzZSAxNikJCUUuRS5QLkQuIEdtYkgKKwkJCQlST0VNRVItU1RSQVNTRSA0CisJCQkJODUyMjkgTUFSS1QgSU5ERVJTRE9SRiAgCisJCQkJR0VSTUFOWQorCiswMC1FMC0zNCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEUwMzQgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0zNSAgIChoZXgpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIKKzAwRTAzNSAgICAgKGJhc2UgMTYpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIKKwkJCQkyOTAwIFMuIERpYWJsbyBXYXkKKwkJCQlUZW1wZSBBWiA4NTI4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMzYgICAoaGV4KQkJUElPTkVFUiBDT1JQT1JBVElPTgorMDBFMDM2ICAgICAoYmFzZSAxNikJCVBJT05FRVIgQ09SUE9SQVRJT04KKwkJCQkyNjEwIEhhbmF6b25vIDQtQ2hvbWUKKwkJCQlUb2tvcm96YXdhLVNoaQorCQkJCVNhaXRhbWEgUHJlZmVjdHVyZSwgMzU5LTggIAorCQkJCUpBUEFOCisKKzAwLUUwLTM3ICAgKGhleCkJCUNFTlRVUlkgQ09SUE9SQVRJT04KKzAwRTAzNyAgICAgKGJhc2UgMTYpCQlDRU5UVVJZIENPUlBPUkFUSU9OCisJCQkJMi0yOC01LCBUYWl0bworCQkJCVRBSVRPLUtVLCBUT0tZTyAxMDEKKwkJCQlKQVBBTgorCiswMC1FMC0zOCAgIChoZXgpCQlQUk9YSU1BIENPUlBPUkFUSU9OCiswMEUwMzggICAgIChiYXNlIDE2KQkJUFJPWElNQSBDT1JQT1JBVElPTgorCQkJCTk0NDAgQ0FSUk9MTCBQQVJLIERSSVZFCisJCQkJU0FOIERJRUdPIENBIDkyMTIxLTIyOTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTM5ICAgKGhleCkJCVBBUkFEWU5FIENPUlAuCiswMEUwMzkgICAgIChiYXNlIDE2KQkJUEFSQURZTkUgQ09SUC4KKwkJCQk4NTQ1IDEyNlRIIEFWRU5VRSBOT1JUSAorCQkJCUxBUkdPIEZMIDMzNzczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0zQSAgIChoZXgpCQlDQUJMRVRST04gU1lTVEVNUywgSU5DLgorMDBFMDNBICAgICAoYmFzZSAxNikJCUNBQkxFVFJPTiBTWVNURU1TLCBJTkMuCisJCQkJMzUgSU5EVVNUUklBTCBXQVkgLSBCTERHLiAjMzYKKwkJCQlST0NIRVNURVIgTkggMDM4NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTNCICAgKGhleCkJCVBST01JTkVUIENPUlBPUkFUSU9OCiswMEUwM0IgICAgIChiYXNlIDE2KQkJUFJPTUlORVQgQ09SUE9SQVRJT04KKwkJCQkxMTAgVFVSTlBJS0UgUkQuIC0gU1RFLiAjMjA4CisJCQkJV0VTVEJPUk9VR0ggTUEgMDE1ODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTNDICAgKGhleCkJCUFkdmFuU3lzCiswMEUwM0MgICAgIChiYXNlIDE2KQkJQWR2YW5TeXMKKwkJCQkxMTUwIFJJTkdXT09EIENPVVJUCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTNEICAgKGhleCkJCUZPQ09OIEVMRUNUUk9OSUMgU1lTVEVNUyBBL1MKKzAwRTAzRCAgICAgKGJhc2UgMTYpCQlGT0NPTiBFTEVDVFJPTklDIFNZU1RFTVMgQS9TCisJCQkJREFNVkFORywgUE8gQk9YIDI2OQorCQkJCURLLTY0MDAgU09OREVSQk9SRyAgCisJCQkJREVOTUFSSworCiswMC1FMC0zRSAgIChoZXgpCQlBTEZBVEVDSCwgSU5DLgorMDBFMDNFICAgICAoYmFzZSAxNikJCUFMRkFURUNILCBJTkMuCisJCQkJU0hJTi1PU0FLQSBFSVRPIEJMREcuCisJCQkJNC0xNS0xOCBOSVNISU5BS0FKSU1BLCBZT0RPR0FXQS1LVSwKKwkJCQlPU0FLQSAgCisJCQkJSkFQQU4KKworMDAtRTAtM0YgICAoaGV4KQkJSkFUT04gQ09SUE9SQVRJT04KKzAwRTAzRiAgICAgKGJhc2UgMTYpCQlKQVRPTiBDT1JQT1JBVElPTgorCQkJCTU1NiBTT1VUSCBNSUxQSVRBUyBCTFZELgorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC00MCAgIChoZXgpCQlEZXNrU3RhdGlvbiBUZWNobm9sb2d5LCBJbmMuCiswMEUwNDAgICAgIChiYXNlIDE2KQkJRGVza1N0YXRpb24gVGVjaG5vbG9neSwgSW5jLgorCQkJCTE1NzI5IENPTExFR0UgQkxWRC4KKwkJCQlMRU5FWEEgS1MgNjYyMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTQxICAgKGhleCkJCUNTUEkKKzAwRTA0MSAgICAgKGJhc2UgMTYpCQlDU1BJCisJCQkJNDMgTWFubmluZyBSZC4KKwkJCQlCaWxsZXJpY2EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTQyICAgKGhleCkJCVBhY29tIFN5c3RlbXMgTHRkLgorMDBFMDQyICAgICAoYmFzZSAxNikJCVBhY29tIFN5c3RlbXMgTHRkLgorCQkJCVVOSVQgMjIgMzgvNDYgU09VVEggU1QuCisJCQkJUllEQUxNRVJFIDIxMTYgTlNXIAorCQkJCUFVU1RSQUxJQQorCiswMC1FMC00MyAgIChoZXgpCQlWaXRhbENvbQorMDBFMDQzICAgICAoYmFzZSAxNikJCVZpdGFsQ29tCisJCQkJMTUyMjIgREVMIEFNTyBBVkUuCisJCQkJVFVTVElOIENBIDkyNzgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC00NCAgIChoZXgpCQlMU0lDUyBDT1JQT1JBVElPTgorMDBFMDQ0ICAgICAoYmFzZSAxNikJCUxTSUNTIENPUlBPUkFUSU9OCisJCQkJMy04LTMgTklOT01JWUEsIFRTS1VLVUJBLVNISQorCQkJCUlCQVJBR0ktS0VOLCAzMDUgIAorCQkJCUpBUEFOCisKKzAwLUUwLTQ1ICAgKGhleCkJCVRPVUNIV0FWRSwgSU5DLgorMDBFMDQ1ICAgICAoYmFzZSAxNikJCVRPVUNIV0FWRSwgSU5DLgorCQkJCTk5NCBTQU4gQU5UT05JTyBSRC4KKwkJCQlQQUxPIEFMVE8gQ0EgOTQzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTQ2ICAgKGhleCkJCUJFTlRMWSBORVZBREEgQ09SUC4KKzAwRTA0NiAgICAgKGJhc2UgMTYpCQlCRU5UTFkgTkVWQURBIENPUlAuCisJCQkJUE8gQk9YIDE1NworCQkJCU1JTkRFTiBOViA4OTQyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNDcgICAoaGV4KQkJSW5Gb2N1cyBDb3Jwb3JhdGlvbgorMDBFMDQ3ICAgICAoYmFzZSAxNikJCUluRm9jdXMgQ29ycG9yYXRpb24KKwkJCQkyNzUwMCBTVyBQYXJrd2F5IEF2ZW51ZQorCQkJCVdpbHNvbnZpbGxlIE9SIDk3MDcwLTgyMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTQ4ICAgKGhleCkJCVNETCBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBFMDQ4ICAgICAoYmFzZSAxNikJCVNETCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCVAuTy4gQk9YIDEzMDMKKwkJCQlFQVNUT04gTUEgMDIzMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTQ5ICAgKGhleCkJCU1JQ1JPV0kgRUxFQ1RST05JQyBHbWJICiswMEUwNDkgICAgIChiYXNlIDE2KQkJTUlDUk9XSSBFTEVDVFJPTklDIEdtYkgKKwkJCQlaVVNBTVNUUkFTU0UgOAorCQkJCUQgODYxNjUgQVVHU0JVUkcgIAorCQkJCUdFUk1BTlkKKworMDAtRTAtNEEgICAoaGV4KQkJRU5IQU5DRUQgTUVTU0FHSU5HIFNZU1RFTVMsIElOQworMDBFMDRBICAgICAoYmFzZSAxNikJCUVOSEFOQ0VEIE1FU1NBR0lORyBTWVNURU1TLCBJTkMKKwkJCQkyNTAgV0VTVCBTT1VUSExBS0UgQkxWRC4KKwkJCQlTT1VUSExBS0UgVFggNzYwOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTRCICAgKGhleCkJCUpVTVAgSU5EVVNUUklFTExFIENPTVBVVEVSVEVDSE5JSyBHbWJICiswMEUwNEIgICAgIChiYXNlIDE2KQkJSlVNUCBJTkRVU1RSSUVMTEUgQ09NUFVURVJURUNITklLIEdtYkgKKwkJCQkKKwkJCQlWRUlMQ0hFTkdBU1NFIDcKKwkJCQlEOTQ0NjkgREVHR0VORE9SRiAgCisJCQkJR0VSTUFOWQorCiswMC1FMC00QyAgIChoZXgpCQlSRUFMVEVLIFNFTUlDT05EVUNUT1IgQ09SUC4KKzAwRTA0QyAgICAgKGJhc2UgMTYpCQlSRUFMVEVLIFNFTUlDT05EVUNUT1IgQ09SUC4KKwkJCQkxRiwgTk8uIDExLCBJTkRVU1RSWSBFLiBSRC4gSVgKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU5DSFUgMzAwICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUUwLTREICAgKGhleCkJCUlOVEVSTkVUIElOSVRJQVRJVkUgSkFQQU4sIElOQworMDBFMDREICAgICAoYmFzZSAxNikJCUlOVEVSTkVUIElOSVRJQVRJVkUgSkFQQU4sIElOQworCQkJCTEtNCwgU0FOQkFOLUNITywgQ0hJWU9EQS1LVQorCQkJCVRPS1lPIDEwMiAKKwkJCQlKQVBBTgorCiswMC1FMC00RSAgIChoZXgpCQlTQU5ZTyBERU5LSSBDTy4sIExURC4KKzAwRTA0RSAgICAgKGJhc2UgMTYpCQlTQU5ZTyBERU5LSSBDTy4sIExURC4KKwkJCQk4MTItMywgU2hpbW9ub2dvdSwgVWVkYS1TaGkKKwkJCQlOYWdhbm8gIDM4Ni0xMjExCisJCQkJSkFQQU4KKworMDAtRTAtNEYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBFMDRGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNTAgICAoaGV4KQkJRVhFQ1VUT05FIElORk9STUFUSU9OIFNZU1RFTVMsIElOQy4KKzAwRTA1MCAgICAgKGJhc2UgMTYpCQlFWEVDVVRPTkUgSU5GT1JNQVRJT04gU1lTVEVNUywgSU5DLgorCQkJCTQ3OCBXSEVFTEVSUyBGQVJNUyBST0FECisJCQkJTUlMRk9SRCBDVCAwNjQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNTEgICAoaGV4KQkJVEFMWCBDT1JQT1JBVElPTgorMDBFMDUxICAgICAoYmFzZSAxNikJCVRBTFggQ09SUE9SQVRJT04KKwkJCQkxODUwIEJPUk1BTiBDT1VSVAorCQkJCVNULiBMT1VJUyBNTyA2MzE0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNTIgICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKzAwRTA1MiAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworCQkJCTE3NDUgVGVjaG5vbG9neSBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC01MyAgIChoZXgpCQlDRUxMUE9SVCBMQUJTLCBJTkMuCiswMEUwNTMgICAgIChiYXNlIDE2KQkJQ0VMTFBPUlQgTEFCUywgSU5DLgorCQkJCTg4NSBBUkFQQUhPRSBBVkUuLAorCQkJCUJPVUxERVIgQ08gODAzMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTU0ICAgKGhleCkJCUtPREFJIEhJVEVDIENPLiwgTFRELgorMDBFMDU0ICAgICAoYmFzZSAxNikJCUtPREFJIEhJVEVDIENPLiwgTFRELgorCQkJCTItNDUgT05VTUEgSEFOWVUgQ0lUWQorCQkJCVNBSVRBTUEuMzQ4ICAKKwkJCQlKQVBBTgorCiswMC1FMC01NSAgIChoZXgpCQlJTkdFTklFUklBIEVMRUNUUk9OSUNBIENPTUVSQ0lBTCBJTkVMQ09NIFMuQS4KKzAwRTA1NSAgICAgKGJhc2UgMTYpCQlJTkdFTklFUklBIEVMRUNUUk9OSUNBIENPTUVSQ0lBTCBJTkVMQ09NIFMuQS4KKwkJCQlDTC4gUElRVUVSIE5PLjMKKwkJCQkyODAzMyBNQURSSUQgIAorCQkJCVNQQUlOCisKKzAwLUUwLTU2ICAgKGhleCkJCUhPTE9OVEVDSCBDT1JQT1JBVElPTgorMDBFMDU2ICAgICAoYmFzZSAxNikJCUhPTE9OVEVDSCBDT1JQT1JBVElPTgorCQkJCTIwMzkgU0FNQVJJVEFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTU3ICAgKGhleCkJCUhBTiBNSUNST1RFTEVDT00uIENPLiwgTFRELgorMDBFMDU3ICAgICAoYmFzZSAxNikJCUhBTiBNSUNST1RFTEVDT00uIENPLiwgTFRELgorCQkJCUZBU0hJT04gQkQuLCAzUkQgRlIsCisJCQkJMTE5NCwgRE9PTlNBTiAyCisJCQkJRE9ORyBTRU8tR1UsIFRBRUpPTiBLT1JFQSAzMDItMTczIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1FMC01OCAgIChoZXgpCQlQSEFTRSBPTkUgREVOTUFSSyBBL1MKKzAwRTA1OCAgICAgKGJhc2UgMTYpCQlQSEFTRSBPTkUgREVOTUFSSyBBL1MKKwkJCQlST1NLSUxERVZFSiAzOQorCQkJCURLLTIwMDAgRlJFREVSSUtTQkVSRyAgCisJCQkJREVOTUFSSworCiswMC1FMC01OSAgIChoZXgpCQlDT05UUk9MTEVEIEVOVklST05NRU5UUywgTFRELgorMDBFMDU5ICAgICAoYmFzZSAxNikJCUNPTlRST0xMRUQgRU5WSVJPTk1FTlRTLCBMVEQuCisJCQkJNTkwIEJFUlJZIFNUUkVFVAorCQkJCVdJTk5FUEVHIFIzSCBPUjkgIAorCQkJCUNBTkFEQQorCiswMC1FMC01QSAgIChoZXgpCQlHQUxFQSBORVRXT1JLIFNFQ1VSSVRZCiswMEUwNUEgICAgIChiYXNlIDE2KQkJR0FMRUEgTkVUV09SSyBTRUNVUklUWQorCQkJCTIgUExBQ0UgZHUgQ09NTUVSQ0UgLSBTVEUgIzMyMAorCQkJCUJST1NTQVJELCBRVUVCRUMgSjRXIDJUOCAgCisJCQkJQ0FOQURBCisKKzAwLUUwLTVCICAgKGhleCkJCVdFU1QgRU5EIFNZU1RFTVMgQ09SUC4KKzAwRTA1QiAgICAgKGJhc2UgMTYpCQlXRVNUIEVORCBTWVNURU1TIENPUlAuCisJCQkJMzkgV0lOTkVSJ1MgQ0lSQ0xFIERSLiwKKwkJCQlBUk5QUklPUiwgT05UQVJJTyAgICBLN1MgM0c5ICAKKwkJCQlDQU5BREEKKworMDAtRTAtNUMgICAoaGV4KQkJTUFUU1VTSElUQSBLT1RPQlVLSSBFTEVDVFJPTklDUyBJTkRVU1RSSUVTLCBMVEQuCiswMEUwNUMgICAgIChiYXNlIDE2KQkJTUFUU1VTSElUQSBLT1RPQlVLSSBFTEVDVFJPTklDUyBJTkRVU1RSSUVTLCBMVEQuCisJCQkJMjQ3LCBGVUtVVEFLRSBTQUlKTworCQkJCUVISU1FLCA3OTMgIAorCQkJCUpBUEFOCisKKzAwLUUwLTVEICAgKGhleCkJCVVOSVRFQyBDTy4sIExURC4KKzAwRTA1RCAgICAgKGJhc2UgMTYpCQlVTklURUMgQ08uLCBMVEQuCisJCQkJS0lTT0dBV0EtQ0hPICBJQ0hJTk9UT1JJIDI0CisJCQkJSEFHVVJJLUdVTiBBSUNISSA0OTMgIAorCQkJCUpBUEFOCisKKzAwLUUwLTVFICAgKGhleCkJCUpBUEFOIEFWSUFUSU9OIEVMRUNUUk9OSUNTIElORFVTVFJZLCBMVEQuCiswMEUwNUUgICAgIChiYXNlIDE2KQkJSkFQQU4gQVZJQVRJT04gRUxFQ1RST05JQ1MgSU5EVVNUUlksIExURC4KKwkJCQkKKwkJCQkzLTEtMSBNVVNBU0hJTk8gQUtJU0hJTUEtU0hJCisJCQkJVE9LWU8gMTk2IEpBUEFOIAorCQkJCUpBUEFOCisKKzAwLUUwLTVGICAgKGhleCkJCWUtTmV0LCBJbmMuCiswMEUwNUYgICAgIChiYXNlIDE2KQkJZS1OZXQsIEluYy4KKwkJCQkxMjMyNSBIWU1FQURPVyBEUklWRQorCQkJCVNVSVRFICMyLTIwMAorCQkJCUFVU1RJTiBUWCA3ODc1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNjAgICAoaGV4KQkJU0hFUldPT0QKKzAwRTA2MCAgICAgKGJhc2UgMTYpCQlTSEVSV09PRAorCQkJCTIxMDU2IEZPUkJFUyBTVFJFRVQKKwkJCQlIQVlXQVJEIENBIDk0NTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC02MSAgIChoZXgpCQlFZGdlUG9pbnQgTmV0d29ya3MsIEluYy4KKzAwRTA2MSAgICAgKGJhc2UgMTYpCQlFZGdlUG9pbnQgTmV0d29ya3MsIEluYy4KKwkJCQkyMjM4IE1BUlRJTiBBVkVOVUUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNjIgICAoaGV4KQkJSE9TVCBFTkdJTkVFUklORworMDBFMDYyICAgICAoYmFzZSAxNikJCUhPU1QgRU5HSU5FRVJJTkcKKwkJCQkyMDAgRUFTVCBNQUlOIFNUUkVFVCAtU1RFLiM3MDAKKwkJCQlKT0hOU09OIENJVFkgVE4gMzc2MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTYzICAgKGhleCkJCUNBQkxFVFJPTiAtIFlBR08gU1lTVEVNUywgSU5DLgorMDBFMDYzICAgICAoYmFzZSAxNikJCUNBQkxFVFJPTiAtIFlBR08gU1lTVEVNUywgSU5DLgorCQkJCTM1IElORFVTVFJJQUwgV0FZCisJCQkJUC5PLiBCT1ggNTAwNQorCQkJCVJPQ0hFU1RFUiBOSCAwMzg2Ni01MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC02NCAgIChoZXgpCQlTQU1TVU5HIEVMRUNUUk9OSUNTCiswMEUwNjQgICAgIChiYXNlIDE2KQkJU0FNU1VORyBFTEVDVFJPTklDUworCQkJCTk5IFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC02NSAgIChoZXgpCQlPUFRJQ0FMIEFDQ0VTUyBJTlRFUk5BVElPTkFMCiswMEUwNjUgICAgIChiYXNlIDE2KQkJT1BUSUNBTCBBQ0NFU1MgSU5URVJOQVRJT05BTAorCQkJCTUwMCBXRVNUIENVTU1JTkdTIFBMLiAjMzQwMAorCQkJCVdPQlVSTiBNQSAwMTgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNjYgICAoaGV4KQkJUHJvTWF4IFN5c3RlbXMsIEluYy4KKzAwRTA2NiAgICAgKGJhc2UgMTYpCQlQcm9NYXggU3lzdGVtcywgSW5jLgorCQkJCTE2IFRFQ0hOT0xPR1kgRFJJVkUtLUJMREcuIzEwNgorCQkJCUlSVklORSBDQSA5MjY1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNjcgICAoaGV4KQkJZWFjIEFVVE9NQVRJT04tQ09OU1VMVElORyBHbWJICiswMEUwNjcgICAgIChiYXNlIDE2KQkJZWFjIEFVVE9NQVRJT04tQ09OU1VMVElORyBHbWJICisJCQkJSEVSTVNET1JGRVIgREFNTSAyMjIKKwkJCQk3MzQ2NyBCRVJMSU4gIAorCQkJCUdFUk1BTlkKKworMDAtRTAtNjggICAoaGV4KQkJTUVSUklNQUMgU1lTVEVNUyBJTkMuCiswMEUwNjggICAgIChiYXNlIDE2KQkJTUVSUklNQUMgU1lTVEVNUyBJTkMuCisJCQkJMjE0NCBNQyBDT1kgUk9BRAorCQkJCUNBUlJPTExUT04gVFggNzUwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTY5ICAgKGhleCkJCUpBWUNPUgorMDBFMDY5ICAgICAoYmFzZSAxNikJCUpBWUNPUgorCQkJCTk3NzUgVE9XTkUgQ0VOVFJFIERSSVZFCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC02QSAgIChoZXgpCQlLQVBTQ0ggQUcKKzAwRTA2QSAgICAgKGJhc2UgMTYpCQlLQVBTQ0ggQUcKKwkJCQlXQUdFTlNFSUxHQVNTRSAxCisJCQkJMTEyMC1WSUVOTkEgIAorCQkJCUFVU1RSSUEKKworMDAtRTAtNkIgICAoaGV4KQkJVyZHIFNQRUNJQUwgUFJPRFVDVFMKKzAwRTA2QiAgICAgKGJhc2UgMTYpCQlXJkcgU1BFQ0lBTCBQUk9EVUNUUworCQkJCVNDRUlOQ0UgUEFSSyBFSU5ESE9WSU4gNTA0OQorCQkJCTU2OTIgRUIgU09OCisJCQkJTkVUSEVSTEFORFMKKworMDAtRTAtNkMgICAoaGV4KQkJQUVQIFN5c3RlbXMgSW50ZXJuYXRpb25hbCBMdGQKKzAwRTA2QyAgICAgKGJhc2UgMTYpCQlBRVAgU3lzdGVtcyBJbnRlcm5hdGlvbmFsIEx0ZAorCQkJCUZvY3VzIDMxLCBXZXN0IFdpbmcKKwkJCQlDbGV2ZWxhbmQgUm9hZAorCQkJCUhlbWVsIEhlbXN0ZWFkIEhlcnRzIEVuZ2xhbmQgSFAyIDdCVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUUwLTZEICAgKGhleCkJCUNPTVBVV0FSRSBDT1JQT1JBVElPTgorMDBFMDZEICAgICAoYmFzZSAxNikJCUNPTVBVV0FSRSBDT1JQT1JBVElPTgorCQkJCU9uZSBDYW1wdXMgTWFydGl1cworCQkJCURldHJvaXQgTUkgNDgyMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTZFICAgKGhleCkJCUZBUiBTWVNURU1TIFMucC5BLgorMDBFMDZFICAgICAoYmFzZSAxNikJCUZBUiBTWVNURU1TIFMucC5BLgorCQkJCVZJQSBGLiBaRU5JIDgKKwkJCQkzODY4IFJPVkVSRVRPIChUTikgIAorCQkJCUlUQUxZCisKKzAwLUUwLTZGICAgKGhleCkJCU1vdG9yb2xhLCBJbmMuCiswMEUwNkYgICAgIChiYXNlIDE2KQkJTW90b3JvbGEsIEluYy4KKwkJCQkyNDUwIFdhbHNoIEF2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03MCAgIChoZXgpCQlESCBURUNITk9MT0dZCiswMEUwNzAgICAgIChiYXNlIDE2KQkJREggVEVDSE5PTE9HWQorCQkJCTMwMDMgUk9MTElFIEdBVEVTIERSSVZFCisJCQkJUEFTTyBST0JMRVMgQ0EgOTM0NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTcxICAgKGhleCkJCUVQSVMgTUlDUk9DT01QVVRFUgorMDBFMDcxICAgICAoYmFzZSAxNikJCUVQSVMgTUlDUk9DT01QVVRFUgorCQkJCTcyNDU4IEFMQlNUQURUCisJCQkJTEFVVExJTkdFUiBTVFJBU1NFIDE0NworCQkJCTcyNDU4IEFMQlNUQURUICAKKwkJCQlHRVJNQU5ZCisKKzAwLUUwLTcyICAgKGhleCkJCUxZTksKKzAwRTA3MiAgICAgKGJhc2UgMTYpCQlMWU5LCisJCQkJUkFCSU4gQlVJTERJTkcKKwkJCQlURVJBRElPTiBJTkRVU1RSSUFMIFBBUksKKwkJCQlELk4uIE1JU0dBViAyMDEgIAorCQkJCUlTUkFFTAorCiswMC1FMC03MyAgIChoZXgpCQlOQVRJT05BTCBBTVVTRU1FTlQgTkVUV09SSywgSU5DLgorMDBFMDczICAgICAoYmFzZSAxNikJCU5BVElPTkFMIEFNVVNFTUVOVCBORVRXT1JLLCBJTkMuCisJCQkJNDAxIE4uIE1JQ0hJR0FOIEFWRU5VRQorCQkJCUNISUNBR08gSUwgNjA2MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTc0ICAgKGhleCkJCVRJRVJOQU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwRTA3NCAgICAgKGJhc2UgMTYpCQlUSUVSTkFOIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTEwMjUgUk9TRUxMRSBTVC4KKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTc1ICAgKGhleCkJCVZlcmlsaW5rIENvcnBvcmF0aW9uCiswMEUwNzUgICAgIChiYXNlIDE2KQkJVmVyaWxpbmsgQ29ycG9yYXRpb24KKwkJCQkxMjcgSmV0cGxleCBDaXJjbGUKKwkJCQlNYWRpc29uIEFMIDM1NzU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03NiAgIChoZXgpCQlERVZFTE9QTUVOVCBDT05DRVBUUywgSU5DLgorMDBFMDc2ICAgICAoYmFzZSAxNikJCURFVkVMT1BNRU5UIENPTkNFUFRTLCBJTkMuCisJCQkJMTAwMCBOLiBCUk9BRCBTVFJFRVQKKwkJCQlMQU5TREFMRSBQQSAxOTQ0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNzcgICAoaGV4KQkJV0VCR0VBUiwgSU5DLgorMDBFMDc3ICAgICAoYmFzZSAxNikJCVdFQkdFQVIsIElOQy4KKwkJCQkxMjYzIE9BS01FQUQgUEtXWQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNzggICAoaGV4KQkJQkVSS0VMRVkgTkVUV09SS1MKKzAwRTA3OCAgICAgKGJhc2UgMTYpCQlCRVJLRUxFWSBORVRXT1JLUworCQkJCTY4MyBSSVZFUiBPQUtTIFBBUktXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNzkgICAoaGV4KQkJQS5ULk4uUi4KKzAwRTA3OSAgICAgKGJhc2UgMTYpCQlBLlQuTi5SLgorCQkJCUJQIDk2NgorCQkJCTkxOTc2IENPVVJUQUJPRVVGICAKKwkJCQlGUkFOQ0UKKworMDAtRTAtN0EgICAoaGV4KQkJTUlLUk9ESURBS1QgQUIKKzAwRTA3QSAgICAgKGJhc2UgMTYpCQlNSUtST0RJREFLVCBBQgorCQkJCVNraWZmZXJ25GdlbiA0OAorCQkJCUxVTkQgIFNFMjI0NzgKKwkJCQlTV0VERU4KKworMDAtRTAtN0IgICAoaGV4KQkJQkFZIE5FVFdPUktTCiswMEUwN0IgICAgIChiYXNlIDE2KQkJQkFZIE5FVFdPUktTCisJCQkJMTI1IE5BR09HIFBBUksKKwkJCQlBQ1RPTiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtN0MgICAoaGV4KQkJTUVUVExFUi1UT0xFRE8sIElOQy4KKzAwRTA3QyAgICAgKGJhc2UgMTYpCQlNRVRUTEVSLVRPTEVETywgSU5DLgorCQkJCTExNTAgREVBUkJPUk4gRFJJVkUKKwkJCQlXT1JUSElOR1RPTiBPSCA0MzA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtN0QgICAoaGV4KQkJTkVUUk9OSVgsIElOQy4KKzAwRTA3RCAgICAgKGJhc2UgMTYpCQlORVRST05JWCwgSU5DLgorCQkJCTM0MCBUSE9SIFBMQUNFCisJCQkJQlJFQSBDQSA5MjgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtN0UgICAoaGV4KQkJV0FMVCBESVNORVkgSU1BR0lORUVSSU5HCiswMEUwN0UgICAgIChiYXNlIDE2KQkJV0FMVCBESVNORVkgSU1BR0lORUVSSU5HCisJCQkJMTQwMSBGTE9XRVIgU1QuCisJCQkJR0xFTkRBTEUgQ0EgOTEyMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTdGICAgKGhleCkJCUxPR0lTVElTVEVNIHMuci5sLgorMDBFMDdGICAgICAoYmFzZSAxNikJCUxPR0lTVElTVEVNIHMuci5sLgorCQkJCVZJQSBQQU5DSUFUSUNISSA5NC8xOAorCQkJCTUwMTI3IEZJUkVOWkUgIAorCQkJCUlUQUxZCisKKzAwLUUwLTgwICAgKGhleCkJCUNPTlRST0wgUkVTT1VSQ0VTIENPUlBPUkFUSU9OCiswMEUwODAgICAgIChiYXNlIDE2KQkJQ09OVFJPTCBSRVNPVVJDRVMgQ09SUE9SQVRJT04KKwkJCQkxNi0wMCBQT0xMSVRUIERSSVZFCisJCQkJRkFJUiBMQVdOIE5KIDA3NDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC04MSAgIChoZXgpCQlUWUFOIENPTVBVVEVSIENPUlAuCiswMEUwODEgICAgIChiYXNlIDE2KQkJVFlBTiBDT01QVVRFUiBDT1JQLgorCQkJCTMyODggTEFVUkVWSUVXIENUCisJCQkJRlJFTU9OVCBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtODIgICAoaGV4KQkJQU5FUk1BCiswMEUwODIgICAgIChiYXNlIDE2KQkJQU5FUk1BCisJCQkJU0NIQUFQU0RSSUVTIDI1CisJCQkJMjI2MCBXRVNURVJMTyAgCisJCQkJQkVMR0lVTQorCiswMC1FMC04MyAgIChoZXgpCQlKQVRPIFRFQ0hOT0xPR0lFUywgSU5DLgorMDBFMDgzICAgICAoYmFzZSAxNikJCUpBVE8gVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNTA1IEVBU1QgSFVOVExBTkQgRFIuIFNURSAjNTUwCisJCQkJQVVTVElOIFRYIDc4NzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC04NCAgIChoZXgpCQlDT01QVUxJVEUgUiZECiswMEUwODQgICAgIChiYXNlIDE2KQkJQ09NUFVMSVRFIFImRAorCQkJCTMgSEFST1NIRVQgU1RSLiBORVcgSU5ELiBaT05FCisJCQkJUkFNQVQtSEFTSEFST04gNDcyNzkgIAorCQkJCUlTUkFFTAorCiswMC1FMC04NSAgIChoZXgpCQlHTE9CQUwgTUFJTlRFQ0gsIElOQy4KKzAwRTA4NSAgICAgKGJhc2UgMTYpCQlHTE9CQUwgTUFJTlRFQ0gsIElOQy4KKwkJCQk2NDY4IENJVFkgV0VTVCBQQVJLV0FZCisJCQkJRURFTiBQUkFJUklFIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC04NiAgIChoZXgpCQlDWUJFWCBDT01QVVRFUiBQUk9EVUNUUworMDBFMDg2ICAgICAoYmFzZSAxNikJCUNZQkVYIENPTVBVVEVSIFBST0RVQ1RTCisJCQkJNDkxMiBSRVNFQVJDSCBEUklWRQorCQkJCUhVTlRTVklMTEUgQUwgMzU4MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTg3ICAgKGhleCkJCUxlQ3JveSAtIE5ldHdvcmtpbmcgUHJvZHVjdGlvbnMgRGl2aXNpb24KKzAwRTA4NyAgICAgKGJhc2UgMTYpCQlMZUNyb3kgLSBOZXR3b3JraW5nIFByb2R1Y3Rpb25zIERpdmlzaW9uCisJCQkJMjUgQlVSTElOR1RPTiBNQUxMIFJPQUQKKwkJCQlCVVJMSU5HVE9OIE1BIDAxODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC04OCAgIChoZXgpCQlMVFggQ09SUE9SQVRJT04KKzAwRTA4OCAgICAgKGJhc2UgMTYpCQlMVFggQ09SUE9SQVRJT04KKwkJCQkxNDUgVU5JVkVSU0lUWSBBVkVOVUUKKwkJCQlXRVNUV09PRCBNQSAwMjA5MC0yMzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC04OSAgIChoZXgpCQlJT04gTmV0d29ya3MsIEluYy4KKzAwRTA4OSAgICAgKGJhc2UgMTYpCQlJT04gTmV0d29ya3MsIEluYy4KKwkJCQkxNTUxIFNvdXRoIFdhc2hpbmd0b24gQXZlLgorCQkJCVBpc2NhdGF3YXkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLThBICAgKGhleCkJCUdFQyBBVkVSWSwgTFRELgorMDBFMDhBICAgICAoYmFzZSAxNikJCUdFQyBBVkVSWSwgTFRELgorCQkJCUZPVU5EUlkgTEFORQorCQkJCVNNRVRIV0lDSywgV0FSTEVZCisJCQkJV0VTVCBNSURMQU5EUywgQjY2IDJMUCBFbmdsYW5kIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUUwLThCICAgKGhleCkJCVFMb2dpYyBDb3JwLgorMDBFMDhCICAgICAoYmFzZSAxNikJCVFMb2dpYyBDb3JwLgorCQkJCTI2NjAwIExhZ3VuYSBIaWxscyBEci4KKwkJCQlBbGlzbyBWaWVqbyBDQSA5MjY1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOEMgICAoaGV4KQkJTkVPUEFSQURJR00gTEFCUywgSU5DLgorMDBFMDhDICAgICAoYmFzZSAxNikJCU5FT1BBUkFESUdNIExBQlMsIElOQy4KKwkJCQkxNzM1IE4uIEZJUlNUIFNULiwgIFNURSAjMTA4CisJCQkJU0FOIEpPU0UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLThEICAgKGhleCkJCVBSRVNTVVJFIFNZU1RFTVMsIElOQy4KKzAwRTA4RCAgICAgKGJhc2UgMTYpCQlQUkVTU1VSRSBTWVNURU1TLCBJTkMuCisJCQkJMzQgUkVTRUFSQ0ggRFJJVkUKKwkJCQlIQU1QVE9OIFZBIDIzNjY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC04RSAgIChoZXgpCQlVVFNUQVJDT00KKzAwRTA4RSAgICAgKGJhc2UgMTYpCQlVVFNUQVJDT00KKwkJCQkzMyBXT09EIEFWRS4gU09VVEgKKwkJCQlJU0VMSU4gTkogMDg4MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLThGICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRTA4RiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTkwICAgKGhleCkJCUJFQ0tNQU4gTEFCLiBBVVRPTUFUSU9OIERJVi4KKzAwRTA5MCAgICAgKGJhc2UgMTYpCQlCRUNLTUFOIExBQi4gQVVUT01BVElPTiBESVYuCisJCQkJOTAgQk9ST0xJTkUgUk9BRAorCQkJCUFMTEVOREFMRSBOSiAwNzQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOTEgICAoaGV4KQkJTEcgRUxFQ1RST05JQ1MsIElOQy4KKzAwRTA5MSAgICAgKGJhc2UgMTYpCQlMRyBFTEVDVFJPTklDUywgSU5DLgorCQkJCTE2LCBXT09NWUVPTi1ET05HLAorCQkJCVNFT0NITy1HVSwgU0VPVUwsIDEzNy0xNDAsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtRTAtOTIgICAoaGV4KQkJQURNVEVLIElOQ09SUE9SQVRFRAorMDBFMDkyICAgICAoYmFzZSAxNikJCUFETVRFSyBJTkNPUlBPUkFURUQKKwkJCQkxOTYyIFpBTktFUiBST0FECisJCQkJU0FOIEpPU0UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTkzICAgKGhleCkJCUFDS0ZJTiBORVRXT1JLUworMDBFMDkzICAgICAoYmFzZSAxNikJCUFDS0ZJTiBORVRXT1JLUworCQkJCTU3NSBOLiBQQVNUT1JJQSBBVkUuCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC05NCAgIChoZXgpCQlPU0FJIFNSTAorMDBFMDk0ICAgICAoYmFzZSAxNikJCU9TQUkgU1JMCisJCQkJVklBIFRPUklOTworCQkJCTYwMy1JVlJFQSAoVE8pICAKKwkJCQlJVEFMWQorCiswMC1FMC05NSAgIChoZXgpCQlBRFZBTkNFRC1WSVNJT04gVEVDSE5PTEdJRVMgQ09SUC4KKzAwRTA5NSAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRC1WSVNJT04gVEVDSE5PTEdJRVMgQ09SUC4KKwkJCQk4Ri0xLCA4NyBTRUNUSU9OIDMsIENIVU5HIFlBTkcgUkQsCisJCQkJVHUgQ2hlbmcgVGFpcGVpIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtOTYgICAoaGV4KQkJU0hJTUFEWlUgQ09SUE9SQVRJT04KKzAwRTA5NiAgICAgKGJhc2UgMTYpCQlTSElNQURaVSBDT1JQT1JBVElPTgorCQkJCTEsIE5JU0hJTk9LWU8tS1VXQUJBUkFDSE8KKwkJCQlOQUtBR1lPLUtVLCBLWU9UTyA2MDQgIAorCQkJCUpBUEFOCisKKzAwLUUwLTk3ICAgKGhleCkJCUNBUlJJRVIgQUNDRVNTIENPUlBPUkFUSU9OCiswMEUwOTcgICAgIChiYXNlIDE2KQkJQ0FSUklFUiBBQ0NFU1MgQ09SUE9SQVRJT04KKwkJCQk1Mzk1IFBFQVJMIFBBUktXQVkKKwkJCQlCT1VMREVSIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC05OCAgIChoZXgpCQlBYm9Db20gU3lzdGVtcywgSW5jLgorMDBFMDk4ICAgICAoYmFzZSAxNikJCUFib0NvbSBTeXN0ZW1zLCBJbmMuCisJCQkJMTJGLTMsIE5PLiAzMzMsIFNFQy4gMQorCQkJCUdVQU4tRlUgUk9BRAorCQkJCUhTSU4tQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUUwLTk5ICAgKGhleCkJCVNBTVNPTiBBRworMDBFMDk5ICAgICAoYmFzZSAxNikJCVNBTVNPTiBBRworCQkJCVdFSVNNVUxMRVJTVFIuIDMKKwkJCQlELTYwMzE0IEZSQU5LRlVSVCAgCisJCQkJR0VSTUFOWQorCiswMC1FMC05QSAgIChoZXgpCQlQb3NpdHJvbiBJbmMuCiswMEUwOUEgICAgIChiYXNlIDE2KQkJUG9zaXRyb24gSW5jLgorCQkJCTUxMDEgQnVjaGFuIFN0cmVldAorCQkJCVN1aXRlIDIyMAorCQkJCU1vbnRyZWFsLCBRdWViZWMgSDRQIDJSOQorCQkJCUNBTkFEQQorCiswMC1FMC05QiAgIChoZXgpCQlFTkdBR0UgTkVUV09SS1MsIElOQy4KKzAwRTA5QiAgICAgKGJhc2UgMTYpCQlFTkdBR0UgTkVUV09SS1MsIElOQy4KKwkJCQkzMTYgTi4gTUlMV0FVS0VFIFNULiwgU1RFLiMyMTQKKwkJCQlNSUxXQVVLRUUgV0kgNTMyMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTlDICAgKGhleCkJCU1JSQorMDBFMDlDICAgICAoYmFzZSAxNikJCU1JSQorCQkJCUxFIHBhcmMgZHUgTU9VTElOCisJCQkJMiwgZ3JhbmRlIHJ1ZSBQcm9sb25nZWUKKwkJCQlGOTU2NTAgUFVJU0VVWC1QT1RPSVNFICAKKwkJCQlGUkFOQ0UKKworMDAtRTAtOUQgICAoaGV4KQkJU0FSTk9GRiBDT1JQT1JBVElPTgorMDBFMDlEICAgICAoYmFzZSAxNikJCVNBUk5PRkYgQ09SUE9SQVRJT04KKwkJCQlDTiA1MzAwCisJCQkJUFJJTkNFVE9OIE5KIDA4NTQzLTUzMDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTlFICAgKGhleCkJCVFVQU5UVU0gQ09SUE9SQVRJT04KKzAwRTA5RSAgICAgKGJhc2UgMTYpCQlRVUFOVFVNIENPUlBPUkFUSU9OCisJCQkJNTAwIE1jQ2FydGh5IEJvdWxldmFyZAorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC05RiAgIChoZXgpCQlQSVhFTCBWSVNJT04KKzAwRTA5RiAgICAgKGJhc2UgMTYpCQlQSVhFTCBWSVNJT04KKwkJCQk0MyBOQUdPRyBQQVJLCisJCQkJQUNUT04gTUEgMDE3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUEwICAgKGhleCkJCVdJTFRST04gQ08uCiswMEUwQTAgICAgIChiYXNlIDE2KQkJV0lMVFJPTiBDTy4KKwkJCQk0OTAgSkFSVklTIERSSVZFCisJCQkJTU9SR0FOIEhJTEwgQ0EgOTUwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUExICAgKGhleCkJCUhJTUEgUEFVTCBISUxERUJSQU5EVCBHbWJIIENvLiBLRworMDBFMEExICAgICAoYmFzZSAxNikJCUhJTUEgUEFVTCBISUxERUJSQU5EVCBHbWJIIENvLiBLRworCQkJCQorCQkJCVBPU1RCT1ggMTI2MQorCQkJCUQtNjg3NzcgQlJVRUhMIE5FQVIgTUFOTkhFSU0gCisJCQkJR0VSTUFOWQorCiswMC1FMC1BMiAgIChoZXgpCQlNSUNST1NMQVRFIElOQy4KKzAwRTBBMiAgICAgKGJhc2UgMTYpCQlNSUNST1NMQVRFIElOQy4KKwkJCQk5NjI1IElHTkFDRSAtIFNURS4gRAorCQkJCUJST1NTQVJEICBRQyBKNFkgMlAzICAKKwkJCQlDQU5BREEKKworMDAtRTAtQTMgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBFMEEzICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQTQgICAoaGV4KQkJRVNBT1RFIFMucC5BLgorMDBFMEE0ICAgICAoYmFzZSAxNikJCUVTQU9URSBTLnAuQS4KKwkJCQl2aWEgZGkgQ0FDSU9MTEUsIDE1CisJCQkJNTAxMjcgRkxPUkVOQ0UgIAorCQkJCUlUQUxZCisKKzAwLUUwLUE1ICAgKGhleCkJCUNvbUNvcmUgU2VtaWNvbmR1Y3RvciwgSW5jLgorMDBFMEE1ICAgICAoYmFzZSAxNikJCUNvbUNvcmUgU2VtaWNvbmR1Y3RvciwgSW5jLgorCQkJCTQ1MDUgTEFTIFZJUkdFTkVTLCBTdWl0ZSAyMDIKKwkJCQlDQUxBQkFTQVMgQ0EgOTEzMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUE2ICAgKGhleCkJCVRFTE9HWSBORVRXT1JLUywgSU5DLgorMDBFMEE2ICAgICAoYmFzZSAxNikJCVRFTE9HWSBORVRXT1JLUywgSU5DLgorCQkJCTIwMjUwIENFTlRVUlkgQkxWRC4KKwkJCQlHRVJNQU5UT1dOIE1EIDIwODc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1BNyAgIChoZXgpCQlJUEMgSU5GT1JNQVRJT04gU1lTVEVNUywgSU5DLgorMDBFMEE3ICAgICAoYmFzZSAxNikJCUlQQyBJTkZPUk1BVElPTiBTWVNURU1TLCBJTkMuCisJCQkJTUVUUk8gQ0VOVEVSCisJCQkJT05FIFNUQVRJT04gUExBQ0UKKwkJCQlTVEFNRk9SRCBDVCAwNjkwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQTggICAoaGV4KQkJU0FUIEdtYkggJiBDby4KKzAwRTBBOCAgICAgKGJhc2UgMTYpCQlTQVQgR21iSCAmIENvLgorCQkJCVJVVEhORVJHQVNTRSAxCisJCQkJVklFTk5BIEEtMTIxMCAgCisJCQkJQVVTVFJJQQorCiswMC1FMC1BOSAgIChoZXgpCQlGVU5BSSBFTEVDVFJJQyBDTy4sIExURC4KKzAwRTBBOSAgICAgKGJhc2UgMTYpCQlGVU5BSSBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQk3LTEsIE5BS0FHQUlUTyA3LUNIT01FLCBEQUlUTworCQkJCU9TQUtBICA1NzQgIAorCQkJCUpBUEFOCisKKzAwLUUwLUFBICAgKGhleCkJCUVMRUNUUk9TT05JQyBMVEQuCiswMEUwQUEgICAgIChiYXNlIDE2KQkJRUxFQ1RST1NPTklDIExURC4KKwkJCQlIQVdMRVkgTUlMTCwgSEFXTEVZIFJELgorCQkJCURBUlRGT1JELCBLRU5UIERBMiA3U1kgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUUwLUFCICAgKGhleCkJCURJTUFUIFMuQS4KKzAwRTBBQiAgICAgKGJhc2UgMTYpCQlESU1BVCBTLkEuCisJCQkJQy9CSVNDQUlBIDM4MyAzCisJCQkJMDgwMjMgIEJBUkNFTE9OQSAgCisJCQkJU1BBSU4KKworMDAtRTAtQUMgICAoaGV4KQkJTUlEU0NPLCBJTkMuCiswMEUwQUMgICAgIChiYXNlIDE2KQkJTUlEU0NPLCBJTkMuCisJCQkJNzEwIFJPVVRFIDQ2IEVBU1QKKwkJCQlGQUlSRklFTEQgTkogMDcwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUFEICAgKGhleCkJCUVFUyBURUNITk9MT0dZLCBMVEQuCiswMEUwQUQgICAgIChiYXNlIDE2KQkJRUVTIFRFQ0hOT0xPR1ksIExURC4KKwkJCQkyNSBFQVNUV0FZUworCQkJCVdJVEhBTSwgRVNTRVgsIENNOCAzQUwgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUUwLUFFICAgKGhleCkJCVhBUVRJIENPUlBPUkFUSU9OCiswMEUwQUUgICAgIChiYXNlIDE2KQkJWEFRVEkgQ09SUE9SQVRJT04KKwkJCQkgMTYzMCBPQUtMQU5EIFJELiAjQS0yMTQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQUYgICAoaGV4KQkJR0VORVJBTCBEWU5BTUlDUyBJTkZPUk1BVElPTiBTWVNURU1TCiswMEUwQUYgICAgIChiYXNlIDE2KQkJR0VORVJBTCBEWU5BTUlDUyBJTkZPUk1BVElPTiBTWVNURU1TCisJCQkJQ09NUFVUSU5HIERFVklDRVMsIExURC4KKwkJCQkgMzE5MCBGQUlSVklFVyBQQQorCQkJCUZBTExTIENIVVJDSCBWQSAyMjA0Mi00NTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CMCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEUwQjAgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CMSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudCwgRW50ZXJwcmlzZSBCdXNpbmVzcyBHcm91cAorMDBFMEIxICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50LCBFbnRlcnByaXNlIEJ1c2luZXNzIEdyb3VwCisJCQkJMjY4MDEgV2VzdCBBZ291cmEgUm9hZAorCQkJCUNhbGFiYXNhcyBDQSA5MTMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQjIgICAoaGV4KQkJVEVMTUFYIENPTU1VTklDQVRJT05TIENPUlAuCiswMEUwQjIgICAgIChiYXNlIDE2KQkJVEVMTUFYIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJNDY1MTUgTEFORElORyBQQVJLV0FZCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQjMgICAoaGV4KQkJRXRoZXJXQU4gU3lzdGVtcywgSW5jLgorMDBFMEIzICAgICAoYmFzZSAxNikJCUV0aGVyV0FOIFN5c3RlbXMsIEluYy4KKwkJCQkxNCBIVUdIRVMsICBTVEUuQi0xMDUKKwkJCQlJUlZJTkUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUI0ICAgKGhleCkJCVRFQ0hOTyBTQ09QRSBDTy4sIExURC4KKzAwRTBCNCAgICAgKGJhc2UgMTYpCQlURUNITk8gU0NPUEUgQ08uLCBMVEQuCisJCQkJMTMtNi03IEtJU0hJTUFUSSBVUkFXQVNJCisJCQkJU0FJVEFNQSAzMzYgIAorCQkJCUpBUEFOCisKKzAwLUUwLUI1ICAgKGhleCkJCUFSREVOVCBDT01NVU5JQ0FUSU9OUyBDT1JQLgorMDBFMEI1ICAgICAoYmFzZSAxNikJCUFSREVOVCBDT01NVU5JQ0FUSU9OUyBDT1JQLgorCQkJCTM4MDEgWkFOS0VSIFJPQUQsICBTdWl0ZSBBCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUI2ICAgKGhleCkJCUVudHJhZGEgTmV0d29ya3MKKzAwRTBCNiAgICAgKGJhc2UgMTYpCQlFbnRyYWRhIE5ldHdvcmtzCisJCQkJOTAyMCBKVU5DVElPTiBEUklWRQorCQkJCUFOTkFQT0xJUyBKVU5DVElPTiBNRCAyMDcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQjcgICAoaGV4KQkJUEkgR1JPVVAsIExURC4KKzAwRTBCNyAgICAgKGJhc2UgMTYpCQlQSSBHUk9VUCwgTFRELgorCQkJCU1JTFRPTiBIQUxMLCBDSFVSQ0ggTEFORQorCQkJCU1JTFRPTiwgQ0FNQlJJREdFIENCQSA2QUIgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUUwLUI4ICAgKGhleCkJCUdBVEVXQVkgMjAwMAorMDBFMEI4ICAgICAoYmFzZSAxNikJCUdBVEVXQVkgMjAwMAorCQkJCTYxMCBHQVRFV0FZIERSSVZFCisJCQkJTi4gU0lPVVggQ0lUWSBTRCA1NzA0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQjkgICAoaGV4KQkJQllBUyBTWVNURU1TCiswMEUwQjkgICAgIChiYXNlIDE2KQkJQllBUyBTWVNURU1TCisJCQkJMjI1MCBNT05ST0UgU1RSRUVULCAgIzM3MQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CQSAgIChoZXgpCQlCRVJHSE9GIEFVVE9NQVRJT05TVEVDSE5JSyBHbWJICiswMEUwQkEgICAgIChiYXNlIDE2KQkJQkVSR0hPRiBBVVRPTUFUSU9OU1RFQ0hOSUsgR21iSAorCQkJCUhBUlJFVCBTVFJBU1NFIDEKKwkJCQlEIDcyODAwIEVOSU5HRU4gIAorCQkJCUdFUk1BTlkKKworMDAtRTAtQkIgICAoaGV4KQkJTkJYIENPUlBPUkFUSU9OCiswMEUwQkIgICAgIChiYXNlIDE2KQkJTkJYIENPUlBPUkFUSU9OCisJCQkJMTAwIEJSSUNLU1RPTkUgU1FVQVJFCisJCQkJQU5ET1ZFUiBNQSAwMTgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQkMgICAoaGV4KQkJU1lNT04gQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwRTBCQyAgICAgKGJhc2UgMTYpCQlTWU1PTiBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTEwNzAxIENPUlBPUkFURSBEUi4tU1RFLiAjMjkwCisJCQkJU1RBRkZPUkQgVFggNzc0NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUJEICAgKGhleCkJCUlOVEVSRkFDRSBTWVNURU1TLCBJTkMuCiswMEUwQkQgICAgIChiYXNlIDE2KQkJSU5URVJGQUNFIFNZU1RFTVMsIElOQy4KKwkJCQk1ODU1IElOVEVSRkFDRSBEUklWRQorCQkJCUFOTiBBUkJPUiBNSSA0ODEwMy05NTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CRSAgIChoZXgpCQlHRU5ST0NPIElOVEVSTkFUSU9OQUwsIElOQy4KKzAwRTBCRSAgICAgKGJhc2UgMTYpCQlHRU5ST0NPIElOVEVSTkFUSU9OQUwsIElOQy4KKwkJCQkyNTUgRU5ERVJTIENPVVJUCisJCQkJU0xJTkdFUiBXSSA1MzA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQkYgICAoaGV4KQkJVE9SUkVOVCBORVRXT1JLSU5HIFRFQ0hOT0xPR0lFUyBDT1JQLgorMDBFMEJGICAgICAoYmFzZSAxNikJCVRPUlJFTlQgTkVUV09SS0lORyBURUNITk9MT0dJRVMgQ09SUC4KKwkJCQk4MTgxIFBST0ZFU1NJT05BTCBQTEFDRQorCQkJCVNVSVRFICMxNjAKKwkJCQlMQU5ET1ZFUiBNRCAyMDc4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQzAgICAoaGV4KQkJU0VJV0EgRUxFQ1RSSUMgTUZHLiBDTy4sIExURC4KKzAwRTBDMCAgICAgKGJhc2UgMTYpCQlTRUlXQSBFTEVDVFJJQyBNRkcuIENPLiwgTFRELgorCQkJCTg2IFRBUkFEQSBTSElOLUlLRSwKKwkJCQlKT1lPLAorCQkJCUtZT1RPIFBSRUZFQ1RVUkUgIAorCQkJCUpBUEFOCisKKzAwLUUwLUMxICAgKGhleCkJCU1FTU9SRVggVEVMRVggSkFQQU4sIExURC4KKzAwRTBDMSAgICAgKGJhc2UgMTYpCQlNRU1PUkVYIFRFTEVYIEpBUEFOLCBMVEQuCisJCQkJWUFFU1VHVUNISSBLQUlLQU4sIDEtNy0yMAorCQkJCVlBRVNVLCBDSFVPLUtVCisJCQkJVE9LWU8gMTAzICAKKwkJCQlKQVBBTgorCiswMC1FMC1DMiAgIChoZXgpCQlORUNTWSBTLnAuQS4KKzAwRTBDMiAgICAgKGJhc2UgMTYpCQlORUNTWSBTLnAuQS4KKwkJCQlWSUEgTElTQk9OQSAyOAorCQkJCTM1MDIwIFBBRE9WQSAgCisJCQkJSVRBTFkKKworMDAtRTAtQzMgICAoaGV4KQkJU0FLQUkgU1lTVEVNIERFVkVMT1BNRU5UIENPUlAuCiswMEUwQzMgICAgIChiYXNlIDE2KQkJU0FLQUkgU1lTVEVNIERFVkVMT1BNRU5UIENPUlAuCisJCQkJUE9SVFVTIENFTlRFUiBCTEQuLCA0LTQ1LTEKKwkJCQlFQklTVUpJTUEtQ0hPLCAgU0FLQUktQ0lUWQorCQkJCU9TQUtBLUZVLCA1OTAgIAorCQkJCUpBUEFOCisKKzAwLUUwLUM0ICAgKGhleCkJCUhPUk5FUiBFTEVDVFJJQywgSU5DLgorMDBFMEM0ICAgICAoYmFzZSAxNikJCUhPUk5FUiBFTEVDVFJJQywgSU5DLgorCQkJCTE1MjEgRS4gV0FTSElOR1RPTiBTVC4KKwkJCQlJTkRJQU5BUE9MSVMgSU4gNDYyMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUM1ICAgKGhleCkJCUJDT00gRUxFQ1RST05JQ1MgSU5DLgorMDBFMEM1ICAgICAoYmFzZSAxNikJCUJDT00gRUxFQ1RST05JQ1MgSU5DLgorCQkJCTggRkwsIE5PLiA2NCwgQU4gSE8gUk9BRCwgU0VDLiAyCisJCQkJVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUUwLUM2ICAgKGhleCkJCUxJTksySVQsIEwuTC5DLgorMDBFMEM2ICAgICAoYmFzZSAxNikJCUxJTksySVQsIEwuTC5DLgorCQkJCTQyNTYgQkVDSyBBVkVOVUUKKwkJCQlTVFVESU8gQ0lUWSBDQSA5MTYwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQzcgICAoaGV4KQkJRVVST1RFQ0ggU1JMCiswMEUwQzcgICAgIChiYXNlIDE2KQkJRVVST1RFQ0ggU1JMCisJCQkJVklBIEpBQ09QTyBMSU5VU1NJTyAxCisJCQkJMzMwMzAgQU1BUk9PIChVRCkgIAorCQkJCUlUQUxZCisKKzAwLUUwLUM4ICAgKGhleCkJCVZJUlRVQUwgQUNDRVNTLCBMVEQuCiswMEUwQzggICAgIChiYXNlIDE2KQkJVklSVFVBTCBBQ0NFU1MsIExURC4KKwkJCQlXT09EU0lERSBIT1VTRSwgV0lOS0ZJRUxELAorCQkJCVdJTkRTT1IsIEJFUktTSElSRSBTTDQgMkRYIEVOR0xBTkQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtQzkgICAoaGV4KQkJQXV0b21hdGVkTG9naWMgQ29ycG9yYXRpb24KKzAwRTBDOSAgICAgKGJhc2UgMTYpCQlBdXRvbWF0ZWRMb2dpYyBDb3Jwb3JhdGlvbgorCQkJCTExNTAgUk9CRVJUUyBCT1VMRVZBUkQKKwkJCQlLRU5ORVNBVyBHQSAzMDE0NC0zNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1DQSAgIChoZXgpCQlCRVNUIERBVEEgUFJPRFVDVFMKKzAwRTBDQSAgICAgKGJhc2UgMTYpCQlCRVNUIERBVEEgUFJPRFVDVFMKKwkJCQkyMTgwMCBOT1JESE9GRiBTVFJFRVQKKwkJCQlDSEFUU1dPUlRIIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1DQiAgIChoZXgpCQlSRVNPTiwgSU5DLgorMDBFMENCICAgICAoYmFzZSAxNikJCVJFU09OLCBJTkMuCisJCQkJMzAwIExPUEVaIFJPQUQKKwkJCQlHT0xFVEEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUNDICAgKGhleCkJCUhFUk8gU1lTVEVNUywgTFRELgorMDBFMENDICAgICAoYmFzZSAxNikJCUhFUk8gU1lTVEVNUywgTFRELgorCQkJCVRIRSBCQVJORVMsIENPT01CRUxBTkRTIExBTkUsCisJCQkJQURETEVTVE9ORSwgV0VZQlJJREdFCisJCQkJU1VSUkVZIEtUMTUgMUhZIEVuZ2xhbmQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtQ0QgICAoaGV4KQkJU0VOU0lTIENPUlBPUkFUSU9OCiswMEUwQ0QgICAgIChiYXNlIDE2KQkJU0VOU0lTIENPUlBPUkFUSU9OCisJCQkJNTc5MyBXSURFV0FURVJTIFBBUktXQVkKKwkJCQlERVdJVFQgTlkgMTMyMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUNFICAgKGhleCkJCUFSTgorMDBFMENFICAgICAoYmFzZSAxNikJCUFSTgorCQkJCTUxLCBSVUUgR0FTVE9OIExBVVJJQVUKKwkJCQlGLTkzNTEyIE1PTlRSRVVJTCBDRURFWCAgCisJCQkJRlJBTkNFCisKKzAwLUUwLUNGICAgKGhleCkJCUlOVEVHUkFURUQgREVWSUNFIFRFQ0hOT0xPR1ksIElOQy4KKzAwRTBDRiAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIERFVklDRSBURUNITk9MT0dZLCBJTkMuCisJCQkJNjAyNCBTaWx2ZXIgQ3JlZWsgVmFsbGV5IFJvYWQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRDAgICAoaGV4KQkJTkVUU1BFRUQsIElOQy4KKzAwRTBEMCAgICAgKGJhc2UgMTYpCQlORVRTUEVFRCwgSU5DLgorCQkJCTEyMzAzIFRFQ0hOT0xPR1kgQkxWRC4KKwkJCQlBVVNUSU4gVFggNzg3MjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUQxICAgKGhleCkJCVRFTFNJUyBMSU1JVEVECiswMEUwRDEgICAgIChiYXNlIDE2KQkJVEVMU0lTIExJTUlURUQKKwkJCQkxNiBCQVJORVMgV0FMTEFDRSBST0FECisJCQkJRkFSRUhBTSwgSEFNUFNISVJFIFBPMTUgNVRUIEVOR0xBTkQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtRDIgICAoaGV4KQkJVkVSU0FORVQgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwRTBEMiAgICAgKGJhc2UgMTYpCQlWRVJTQU5FVCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTYyOCBOLiBESUFNT05EIEJBUiBCTFZELgorCQkJCURJQU1PTkQgQkFSIENBIDkxNzY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1EMyAgIChoZXgpCQlEQVRFTlRFQ0hOSUsgR21iSAorMDBFMEQzICAgICAoYmFzZSAxNikJCURBVEVOVEVDSE5JSyBHbWJICisJCQkJVEhFUkVTSUFOVU1HQVNTRSAxMQorCQkJCUEtMTA0MCBXSUVOICAKKwkJCQlBVVNUUklBCisKKzAwLUUwLUQ0ICAgKGhleCkJCUVYQ0VMTEVOVCBDT01QVVRFUgorMDBFMEQ0ICAgICAoYmFzZSAxNikJCUVYQ0VMTEVOVCBDT01QVVRFUgorCQkJCTU1MSwgTS5LLk4uIFJPQUQKKwkJCQlBTEFORFVSLCBDSEVOTkFJIDYwMDAxNiAgCisJCQkJSU5ESUEKKworMDAtRTAtRDUgICAoaGV4KQkJRW11bGV4IENvcnBvcmF0aW9uCiswMEUwRDUgICAgIChiYXNlIDE2KQkJRW11bGV4IENvcnBvcmF0aW9uCisJCQkJMzMzMyBTdXNhbiBTdHJlZXQKKwkJCQlDb3N0YSBNZXNhIENBIDkyNjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1ENiAgIChoZXgpCQlDT01QVVRFUiAmIENPTU1VTklDQVRJT04gUkVTRUFSQ0ggTEFCLgorMDBFMEQ2ICAgICAoYmFzZSAxNikJCUNPTVBVVEVSICYgQ09NTVVOSUNBVElPTiBSRVNFQVJDSCBMQUIuCisJCQkJCisJCQkJMTk1IFNFQy40LCBDSFVORyBIU0lORyBSRAorCQkJCUNIVVRVTkcsIEhTSU5DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtRDcgICAoaGV4KQkJU1VOU0hJTkUgRUxFQ1RST05JQ1MsIElOQy4KKzAwRTBENyAgICAgKGJhc2UgMTYpCQlTVU5TSElORSBFTEVDVFJPTklDUywgSU5DLgorCQkJCTQ2NTYwIEZSRU1PTlQgQkxWRC4gLVNURS4gIzExMworCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUQ4ICAgKGhleCkJCUxBTkJpdCBDb21wdXRlciwgSW5jLgorMDBFMEQ4ICAgICAoYmFzZSAxNikJCUxBTkJpdCBDb21wdXRlciwgSW5jLgorCQkJCTEyRiwgNTUyIENIVU5HIEhTSUFPIEUuLCBSRC4KKwkJCQlTRUMuIDUsIFRBSVBFSSAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUUwLUQ5ICAgKGhleCkJCVRBWk1PIENPLiwgTFRELgorMDBFMEQ5ICAgICAoYmFzZSAxNikJCVRBWk1PIENPLiwgTFRELgorCQkJCTYxODYgS0lOT0tPLCBJQkFSQS1TSEkKKwkJCQlPS0FZQU1BIDcxNSAgCisJCQkJSkFQQU4KKworMDAtRTAtREEgICAoaGV4KQkJQWxjYXRlbCBOb3J0aCBBbWVyaWNhIEVTRAorMDBFMERBICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTm9ydGggQW1lcmljYSBFU0QKKwkJCQkyNjgwMSBXZXN0IEFnb3VyYSBSb2FkCisJCQkJQ2FsYWJhc2FzIENBIDkxMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1EQiAgIChoZXgpCQlWaWFWaWRlbyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDBFMERCICAgICAoYmFzZSAxNikJCVZpYVZpZGVvIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJODkwMCBTSE9BTCBDUkVFSyBCTFZELgorCQkJCUJMREcuICMzMDAKKwkJCQlBVVNUSU4gVFggNzg3NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLURDICAgKGhleCkJCU5FWFdBUkUgQ09SUC4KKzAwRTBEQyAgICAgKGJhc2UgMTYpCQlORVhXQVJFIENPUlAuCisJCQkJODI1IFNURVdBUlQgRFIuLCAgU1RFICM0CisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1ERCAgIChoZXgpCQlaRU5JVEggRUxFQ1RST05JQ1MgQ09SUE9SQVRJT04KKzAwRTBERCAgICAgKGJhc2UgMTYpCQlaRU5JVEggRUxFQ1RST05JQ1MgQ09SUE9SQVRJT04KKwkJCQkxMDAwIE1JTFdBVUtFRSBBVkVOVUUKKwkJCQlHTEVOVklFVyBJTCA2MDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtREUgICAoaGV4KQkJREFUQVggTlYKKzAwRTBERSAgICAgKGJhc2UgMTYpCQlEQVRBWCBOVgorCQkJCVJJTkdMQUFOIDUxCisJCQkJQi0yNjAwIEJFUkNIRU0gIAorCQkJCUJFTEdJVU0KKworMDAtRTAtREYgICAoaGV4KQkJS0VZTUlMRSBHbWJICiswMEUwREYgICAgIChiYXNlIDE2KQkJS0VZTUlMRSBHbWJICisJCQkJV29obGVuYmVyZ3N0ci4gMworCQkJCTMwMTc5IEhhbm5vdmVyIAorCQkJCUdFUk1BTlkKKworMDAtRTAtRTAgICAoaGV4KQkJU0kgRUxFQ1RST05JQ1MsIExURC4KKzAwRTBFMCAgICAgKGJhc2UgMTYpCQlTSSBFTEVDVFJPTklDUywgTFRELgorCQkJCTI4LTE2LCBTSElNT01BUlVLTyAyLUNIT01FLAorCQkJCVRPS1lPIDE0NiAgCisJCQkJSkFQQU4KKworMDAtRTAtRTEgICAoaGV4KQkJRzIgTkVUV09SS1MsIElOQy4KKzAwRTBFMSAgICAgKGJhc2UgMTYpCQlHMiBORVRXT1JLUywgSU5DLgorCQkJCTE0MiBTTy4gU0FOVEEgQ1JVWiBBVkUuCisJCQkJTE9TIEdBVE9TIENBIDk1MDMwLTY3MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUUyICAgKGhleCkJCUlOTk9WQSBDT1JQLgorMDBFMEUyICAgICAoYmFzZSAxNikJCUlOTk9WQSBDT1JQLgorCQkJCTMzMjUgU09VVEggMTE2VEggU1RSRUVUCisJCQkJU0VBVFRMRSBXQSA5ODE2OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRTMgICAoaGV4KQkJU0stRUxFS1RST05JSyBHbWJICiswMEUwRTMgICAgIChiYXNlIDE2KQkJU0stRUxFS1RST05JSyBHbWJICisJCQkJSEVNTUVMUkFUSEVSV0VHIDIwMQorCQkJCTUxMzc3IExFVkVSS1VTRU4gIAorCQkJCUdFUk1BTlkKKworMDAtRTAtRTQgICAoaGV4KQkJRkFOVUMgUk9CT1RJQ1MgTk9SVEggQU1FUklDQSwgSW5jLgorMDBFMEU0ICAgICAoYmFzZSAxNikJCUZBTlVDIFJPQk9USUNTIE5PUlRIIEFNRVJJQ0EsIEluYy4KKwkJCQkzOTAwIFcuIEhBTUxJTiBSRC4KKwkJCQlST0NIRVNURVIgSElMTFMgTUkgNDgzMDktMzI1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRTUgICAoaGV4KQkJQ0lOQ08gTkVUV09SS1MsIElOQy4KKzAwRTBFNSAgICAgKGJhc2UgMTYpCQlDSU5DTyBORVRXT1JLUywgSU5DLgorCQkJCTY2MDEgS09MTCBDRU5URVIgUEFSSyBXQVkKKwkJCQlTVUlURSAjMTQwCisJCQkJUExFQVNBTlRPTiBDQSA5NDU2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRTYgICAoaGV4KQkJSU5DQUEgREFUQUNPTSBCLlYuCiswMEUwRTYgICAgIChiYXNlIDE2KQkJSU5DQUEgREFUQUNPTSBCLlYuCisJCQkJUC5PLiBCT1ggMjExCisJCQkJNzMwMCBBRSBBUEVMRE9PUk4gIAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLUUwLUU3ICAgKGhleCkJCVJBWVRIRU9OIEUtU1lTVEVNUywgSU5DLgorMDBFMEU3ICAgICAoYmFzZSAxNikJCVJBWVRIRU9OIEUtU1lTVEVNUywgSU5DLgorCQkJCTEzMDEgRS4gQ09MTElOUworCQkJCVJJQ0hBUkRTT04gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUU4ICAgKGhleCkJCUdSRVRBQ09ERVIgRGF0YSBTeXN0ZW1zIEFHCiswMEUwRTggICAgIChiYXNlIDE2KQkJR1JFVEFDT0RFUiBEYXRhIFN5c3RlbXMgQUcKKwkJCQlBTFRIQVJEU1RSQVNTRSAgMTUwCisJCQkJQ0gtODEwNSBSRUdFTlNET1JGICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC1FMC1FOSAgIChoZXgpCQlEQVRBIExBQlMsIElOQy4KKzAwRTBFOSAgICAgKGJhc2UgMTYpCQlEQVRBIExBQlMsIElOQy4KKwkJCQk0NDQgTk9SVEggRlJFREVSSUNLIEFWRS4KKwkJCQlTVUlURSAjMjQwCisJCQkJR0FJVEhFUlNCVVJHIE1EIDIwODc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1FQSAgIChoZXgpCQlJTk5PVkFUIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEUwRUEgICAgIChiYXNlIDE2KQkJSU5OT1ZBVCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTEyNTcgTi4gUExBTk8gUk9BRAorCQkJCVJJQ0hBUkRTT04gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUVCICAgKGhleCkJCURJR0lDT00gU1lTVEVNUywgSU5DT1JQT1JBVEVECiswMEUwRUIgICAgIChiYXNlIDE2KQkJRElHSUNPTSBTWVNURU1TLCBJTkNPUlBPUkFURUQKKwkJCQkxODggVE9QQVogU1RSRUVUCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUVDICAgKGhleCkJCUNFTEVTVElDQSBJTkMuCiswMEUwRUMgICAgIChiYXNlIDE2KQkJQ0VMRVNUSUNBIElOQy4KKwkJCQk4NDQgRE9OIE1JTExTIFJPQUQKKwkJCQlOT1JUSCBZT1JLICBPTlRBUklPIE0zQyAxVjcgIAorCQkJCUNBTkFEQQorCiswMC1FMC1FRCAgIChoZXgpCQlTSUxJQ09NLCBMVEQuCiswMEUwRUQgICAgIChiYXNlIDE2KQkJU0lMSUNPTSwgTFRELgorCQkJCTggSEFOQUdFUiBTVC4KKwkJCQlQLk8uIEJPWCAyMTY0CisJCQkJS0ZBUi1TQVZBIDQ0MDAwICAKKwkJCQlJU1JBRUwKKworMDAtRTAtRUUgICAoaGV4KQkJTUFSRUwgSEYKKzAwRTBFRSAgICAgKGJhc2UgMTYpCQlNQVJFTCBIRgorCQkJCUF1c3R1cmhyYXVuIDkKKwkJCQlHYXJkYWJhZXIgIDIxMAorCQkJCUlDRUxBTkQKKworMDAtRTAtRUYgICAoaGV4KQkJRElPTkVYCiswMEUwRUYgICAgIChiYXNlIDE2KQkJRElPTkVYCisJCQkJUE8gQk9YIDM2MDMKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODgtMzYwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRjAgICAoaGV4KQkJQUJMRVIgVEVDSE5PTE9HWSwgSU5DLgorMDBFMEYwICAgICAoYmFzZSAxNikJCUFCTEVSIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk0RiwgTk8uIDU0ICBTRUMuIDQKKwkJCQlNSU4tU0hFTkcgRS4gUkQuCisJCQkJVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUUwLUYxICAgKGhleCkJCVRIQVQgQ09SUE9SQVRJT04KKzAwRTBGMSAgICAgKGJhc2UgMTYpCQlUSEFUIENPUlBPUkFUSU9OCisJCQkJNzM0IEZPUkVTVCBTVFJFRVQKKwkJCQlNQVJMQk9ST1VHSCBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRjIgICAoaGV4KQkJQVJMT1RUTyBDT01ORVQsIElOQy4KKzAwRTBGMiAgICAgKGJhc2UgMTYpCQlBUkxPVFRPIENPTU5FVCwgSU5DLgorCQkJCTdGLTQsNTUsVFVORy1LVUFORyBST0FECisJCQkJSFNJTi1DSFUsIDMwMCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1FMC1GMyAgIChoZXgpCQlXZWJTcHJpbnQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwRTBGMyAgICAgKGJhc2UgMTYpCQlXZWJTcHJpbnQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkzMDI2IFNDT1RUIEJMVkQuCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUY0ICAgKGhleCkJCUlOU0lERSBUZWNobm9sb2d5IEEvUworMDBFMEY0ICAgICAoYmFzZSAxNikJCUlOU0lERSBUZWNobm9sb2d5IEEvUworCQkJCVZFTkxJR0hFRFNWRUogNgorCQkJCURLLTI5NzAgSE9FUlNIT0xNICAKKwkJCQlERU5NQVJLCisKKzAwLUUwLUY1ICAgKGhleCkJCVRFTEVTIEFHCiswMEUwRjUgICAgIChiYXNlIDE2KQkJVEVMRVMgQUcKKwkJCQlET1ZFU1RSLiAyLTQKKwkJCQkxMDU4NyBCRVJMSU4gIAorCQkJCUdFUk1BTlkKKworMDAtRTAtRjYgICAoaGV4KQkJREVDSVNJT04gRVVST1BFCiswMEUwRjYgICAgIChiYXNlIDE2KQkJREVDSVNJT04gRVVST1BFCisJCQkJMywgcnVlIGRlIExhdHRyZSBkZSBUYXNzaWdueQorCQkJCTg1MTcwIFNBSU5UIERFTklTIExBIENIRVZBU1NFICAKKwkJCQlGUkFOQ0UKKworMDAtRTAtRjcgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBFMEY3ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRjggICAoaGV4KQkJRElDTkEgQ09OVFJPTCBBQgorMDBFMEY4ICAgICAoYmFzZSAxNikJCURJQ05BIENPTlRST0wgQUIKKwkJCQlTVEVOWVhFR0FUQU4gMjEgQworCQkJCTIxMyA3NiBNQUxNT0UgIAorCQkJCVNXRURFTgorCiswMC1FMC1GOSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEUwRjkgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1GQSAgIChoZXgpCQlUUkwgVEVDSE5PTE9HWSwgTFRELgorMDBFMEZBICAgICAoYmFzZSAxNikJCVRSTCBURUNITk9MT0dZLCBMVEQuCisJCQkJU0hBTk5PTiBXQVksIEFTSENIVVJDSCwKKwkJCQlURVdLRVNCVVJZLCBHTE9TLiBHTDIwIDhORCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtRkIgICAoaGV4KQkJTEVJR0hUUk9OSVgsIElOQy4KKzAwRTBGQiAgICAgKGJhc2UgMTYpCQlMRUlHSFRST05JWCwgSU5DLgorCQkJCTIzMzAgSkFSQ08gRFIuCisJCQkJSE9MVCBNSSA0ODg0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRkMgICAoaGV4KQkJSFVBV0VJIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKzAwRTBGQyAgICAgKGJhc2UgMTYpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorCQkJCUtFRkEgUk9BRCwgU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlOQU5TSEFOIERJU1RSSUNULAorCQkJCVNIRU5aSEVOIDUxODA1NyAgCisJCQkJQ0hJTkEKKworMDAtRTAtRkQgICAoaGV4KQkJQS1UUkVORCBURUNITk9MT0dZIENPLiwgTFRELgorMDBFMEZEICAgICAoYmFzZSAxNikJCUEtVFJFTkQgVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQkxMEYsIE5PLiA3NSwgSFNJTiBUQUkgV1UgUkQuLAorCQkJCVNFQy4gMSwgSFNJIENISUgsCisJCQkJVEFJUEVJIEhTSUVOIDIyMSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1FMC1GRSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEUwRkUgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1GRiAgIChoZXgpCQlTRUNVUklUWSBEWU5BTUlDUyBURUNITk9MT0dJRVMsIEluYy4KKzAwRTBGRiAgICAgKGJhc2UgMTYpCQlTRUNVUklUWSBEWU5BTUlDUyBURUNITk9MT0dJRVMsIEluYy4KKwkJCQkyMCBDUk9TQlkgRFJJVkUKKwkJCQlCRURGT1JEIE1BIDAxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FNi1EMyAgIChoZXgpCQlOSVhET1JGIENPTVBVVEVSIENPUlAuCiswMEU2RDMgICAgIChiYXNlIDE2KQkJTklYRE9SRiBDT01QVVRFUiBDT1JQLgorCQkJCTI1MjAgTUlTU0lPTiBDT0xMRUdFIFJPQUQKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRjgtNjAgICAoaGV4KQkJUFQuIFBhbmdndW5nIEVsZWN0cmljIENpdHJhYnVhbmEKKzAwRjg2MCAgICAgKGJhc2UgMTYpCQlQVC4gUGFuZ2d1bmcgRWxlY3RyaWMgQ2l0cmFidWFuYQorCQkJCUpsLiBSYXlhIFdhcnUgbm8uIDEKKwkJCQlTaWRvYXJqbyBKYXdhIFRpbXVyIDYxMjU2CisJCQkJSU5ET05FU0lBCisKKzAwLUZDLTcwICAgKGhleCkJCUludHJlcGlkIENvbnRyb2wgU3lzdGVtcywgSW5jLgorMDBGQzcwICAgICAoYmFzZSAxNikJCUludHJlcGlkIENvbnRyb2wgU3lzdGVtcywgSW5jLgorCQkJCTU3MDAgMTggTWlsZSBSZC4KKwkJCQlTdGVybGluZyBIZWlnaHRzIE1JIDQ4MzE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMi0wNy0wMSAgIChoZXgpCQlSQUNBTC1EQVRBQ09NCiswMjA3MDEgICAgIChiYXNlIDE2KQkJUkFDQUwtREFUQUNPTQorCQkJCUxBTiBJTlRFUk5FVFdPUktJTkcgRElWSVNJT04KKwkJCQkxNTUgU1dBTlNPTiBST0FECisJCQkJQk9YQk9ST1VHSCBNQSAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDItMUMtN0MgICAoaGV4KQkJUEVSUSBTWVNURU1TIENPUlBPUkFUSU9OCiswMjFDN0MgICAgIChiYXNlIDE2KQkJUEVSUSBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJMjYwMCBMSUJFUlRZIEFWRU5VRQorCQkJCVAuTy4gQk9YIDI2MDAKKwkJCQlQSVRUU0JVUkdIIFBBIDE1MjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMi02MC04NiAgIChoZXgpCQlMT0dJQyBSRVBMQUNFTUVOVCBURUNILiBMVEQuCiswMjYwODYgICAgIChiYXNlIDE2KQkJTE9HSUMgUkVQTEFDRU1FTlQgVEVDSC4gTFRELgorCQkJCTE0IEFSS1dSSUdIVCBST0FECisJCQkJUkVBRElORyBCRVJLUyBSRzJPTFMKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAyLTYwLThDICAgKGhleCkJCTNDT00gQ09SUE9SQVRJT04KKzAyNjA4QyAgICAgKGJhc2UgMTYpCQkzQ09NIENPUlBPUkFUSU9OCisJCQkJMjA4MSBOLiBTSE9STElORSBCTFZELgorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAyLTcwLTAxICAgKGhleCkJCVJBQ0FMLURBVEFDT00KKzAyNzAwMSAgICAgKGJhc2UgMTYpCQlSQUNBTC1EQVRBQ09NCisJCQkJTEFOIElOVEVSTkVUV09SS0lORyBESVZJU0lPTgorCQkJCTE1NSBTV0FOU09OIFJPQUQKKwkJCQlCT1hCT1JPVUdIIE1BIDAxNzE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMi03MC1CMCAgIChoZXgpCQlNL0EtQ09NIElOQy4gQ09NUEFOSUVTCiswMjcwQjAgICAgIChiYXNlIDE2KQkJTS9BLUNPTSBJTkMuIENPTVBBTklFUworCQkJCTExNzE3IEVYUExPUkFUSU9OIExBTkUKKwkJCQlHRVJNQU5UT1dOIE1EIDIwNzY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMi03MC1CMyAgIChoZXgpCQlEQVRBIFJFQ0FMTCBMVEQKKzAyNzBCMyAgICAgKGJhc2UgMTYpCQlEQVRBIFJFQ0FMTCBMVEQKKwkJCQlTT05ERVMgUExBQ0UKKwkJCQlET1JLSU5HIFNVUlJFWSBSSDQgM0VGCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMi05RC04RSAgIChoZXgpCQlDQVJESUFDIFJFQ09SREVSUyBJTkMuCiswMjlEOEUgICAgIChiYXNlIDE2KQkJQ0FSRElBQyBSRUNPUkRFUlMgSU5DLgorCQkJCTM0IFNDQVJCT1JPIFJECisJCQkJTE9ORE9OIE40IDRMIFUKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAyLUFBLTNDICAgKGhleCkJCU9MSVZFVFRJIFRFTEVDT01NIFNQQSAoT0xURUNPKQorMDJBQTNDICAgICAoYmFzZSAxNikJCU9MSVZFVFRJIFRFTEVDT01NIFNQQSAoT0xURUNPKQorCQkJCTIwMzAwIFNURVZFTlMgIENSRUVLIEJMVkQuCisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMi1CQi0wMSAgIChoZXgpCQlPQ1RPVEhPUlBFIENPUlAuCiswMkJCMDEgICAgIChiYXNlIDE2KQkJT0NUT1RIT1JQRSBDT1JQLgorCQkJCTI4NSBXRVNUIEdSRUVOIFNUUkVFVAorCQkJCVBBU0FERU5BIENBIDkxMTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMi1DMC04QyAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMkMwOEMgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQkFZRlJPTlQgUExBWkEKKwkJCQlQLk8uIEJPWCA1ODE0NQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMi1DRi0xQyAgIChoZXgpCQlDT01NVU5JQ0FUSU9OIE1BQ0hJTkVSWSBDT1JQLgorMDJDRjFDICAgICAoYmFzZSAxNikJCUNPTU1VTklDQVRJT04gTUFDSElORVJZIENPUlAuCisJCQkJMTIyNiBBTkFDQVBBCisJCQkJU0FOVEEgQkFSQkFSQSBDQSA5MzEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDItRTYtRDMgICAoaGV4KQkJTklYRE9SRiBDT01QVVRFUiBDT1JQT1JBVElPTgorMDJFNkQzICAgICAoYmFzZSAxNikJCU5JWERPUkYgQ09NUFVURVIgQ09SUE9SQVRJT04KKwkJCQlOSVhET1JGIFRFQ0hOT0xPR1kgQ0VOVEVSCisJCQkJMjUyMCBNSVNTSU9OIENPTExFR0UgQkxWRAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswNC0wQS04MyAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudAorMDQwQTgzICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50CisJCQkJVmlhIFRyZW50bywgMzAKKwkJCQlWaW1lbnJjYXRlIE1CIDIwNTkKKwkJCQlJVEFMWQorCiswNC0wQS1FMCAgIChoZXgpCQlYTUlUIEFHIENPTVBVVEVSIE5FVFdPUktTCiswNDBBRTAgICAgIChiYXNlIDE2KQkJWE1JVCBBRyBDT01QVVRFUiBORVRXT1JLUworCQkJCTExIEFWRU5VRSBERSBCQVVNRVRURVMKKwkJCQkxMDIwIFJFTkFOUworCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDQtMEMtQ0UgICAoaGV4KQkJQXBwbGUsIEluYy4KKzA0MENDRSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgaW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtMEUtQzIgICAoaGV4KQkJVmlld1NvbmljIE1vYmlsZSBDaGluYSBMaW1pdGVkCiswNDBFQzIgICAgIChiYXNlIDE2KQkJVmlld1NvbmljIE1vYmlsZSBDaGluYSBMaW1pdGVkCisJCQkJUm9vbSA2MDEsIFRoZSBHYXRlIFRvd2VyIEIsIE5vLjE5LCBaaG9uZ2d1YW5jdW4gU3RyZWV0LCBIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgwCisJCQkJQ0hJTkEKKworMDQtMTgtMEYgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswNDE4MEYgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzA0LTE4LUI2ICAgKGhleCkJCVBSSVZBVEUKKzA0MThCNiAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDQtMUQtMTAgICAoaGV4KQkJRHJlYW0gV2FyZSBJbmMuCiswNDFEMTAgICAgIChiYXNlIDE2KQkJRHJlYW0gV2FyZSBJbmMuCisJCQkJNS0yMy03IE1hc3VnYXRhLCBUYW1hLWt1LAorCQkJCUthd2FzYWtpIEthbmFnYXdhIDIxNC0wMDMyCisJCQkJSkFQQU4KKworMDQtMUUtNjQgICAoaGV4KQkJQXBwbGUsIEluYworMDQxRTY0ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA0LTIwLTlBICAgKGhleCkJCVBhbmFzb25pYyBBVkMgTmV0d29ya3MgQ29tcGFueQorMDQyMDlBICAgICAoYmFzZSAxNikJCVBhbmFzb25pYyBBVkMgTmV0d29ya3MgQ29tcGFueQorCQkJCTEtMTUgTWF0c3VvLWNobworCQkJCUthZG9tYSBDaXR5IE9zYWthIDU3MS04NTA0CisJCQkJSkFQQU4KKworMDQtMjItMzQgICAoaGV4KQkJV2lyZWxlc3MgU3RhbmRhcmQgRXh0ZW5zaW9ucworMDQyMjM0ICAgICAoYmFzZSAxNikJCVdpcmVsZXNzIFN0YW5kYXJkIEV4dGVuc2lvbnMKKwkJCQkxMzIyIENyb3NzbWFuIGF2ZW51ZQorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswNC0yNi0wNSAgIChoZXgpCQlHRlIgR2VzZWxsc2NoYWZ0IGbvv71yIFJlZ2VsdW5nc3RlY2huaWsgdW5kIEVuZXJnaWVlaW5zcGFydW5nIG1iSAorMDQyNjA1ICAgICAoYmFzZSAxNikJCUdGUiBHZXNlbGxzY2hhZnQgZu+/vXIgUmVnZWx1bmdzdGVjaG5payB1bmQgRW5lcmdpZWVpbnNwYXJ1bmcgbWJICisJCQkJS2FwZWxsZW53ZWcgNDIKKwkJCQlWZXJsICAzMzQxNQorCQkJCUdFUk1BTlkKKworMDQtMkItQkIgICAoaGV4KQkJUGljb0NFTEEsIEluYy4KKzA0MkJCQiAgICAgKGJhc2UgMTYpCQlQaWNvQ0VMQSwgSW5jLgorCQkJCTMtOC0zMywgTW9tb2NoaWhhbWEKKwkJCQlTYXdhcmEta3UKKwkJCQlGdWt1b2thLWNpdHkgRnVrdW9rYSA4MTQtMDAwMQorCQkJCUpBUEFOCisKKzA0LTJGLTU2ICAgKGhleCkJCUFUT0NTIChTaGVuemhlbikgTFRECiswNDJGNTYgICAgIChiYXNlIDE2KQkJQVRPQ1MgKFNoZW56aGVuKSBMVEQKKwkJCQk0L0YuLCBCdWlsZGluZyAxMCwgVG9uZ2Z1eXUgSW5kdXN0cnkgWm9uZSwgCisJCQkJU2hlbnpoZW4gIAorCQkJCUNISU5BCisKKzA0LTMyLUY0ICAgKGhleCkJCVBhcnRyb24KKzA0MzJGNCAgICAgKGJhc2UgMTYpCQlQYXJ0cm9uCisJCQkJMjItNiwgU2Vva3dvby1kb25nCisJCQkJSHdhc2Vvbmctc2kgR3llb25nZ2ktZG8gNDQ1LTE3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswNC0zNi0wNCAgIChoZXgpCQlHeWV5b3VuZyBJJlQKKzA0MzYwNCAgICAgKGJhc2UgMTYpCQlHeWV5b3VuZyBJJlQKKwkJCQk2RiwgV29vc3VuZyBCbGRnLiAxMDAwLTEsIERhZWNoaS1kb25nCisJCQkJR2FuZ25hbS1ndSwKKwkJCQlTZW91bCAxMzUtNTAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzA0LTQ2LTY1ICAgKGhleCkJCU11cmF0YSBNYW51ZmFjdHVyaW5nIENvLiwgTHRkLgorMDQ0NjY1ICAgICAoYmFzZSAxNikJCU11cmF0YSBNYW51ZmFjdHVyaW5nIENvLiwgTHRkLgorCQkJCTEtMTAtMSwgSGlnYXNoaWtvdGFyaQorCQkJCU5hZ2Fva2FreW8tc2hpIEt5b3RvIDYxNy04NTU1CisJCQkJSkFQQU4KKworMDQtNEYtQUEgICAoaGV4KQkJUnVja3VzIFdpcmVsZXNzCiswNDRGQUEgICAgIChiYXNlIDE2KQkJUnVja3VzIFdpcmVsZXNzCisJCQkJODgwIFdlc3QgTWF1ZGUgQXZlLgorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtNTUtQ0EgICAoaGV4KQkJQnJpVmlldyAoWGlhbWVuKSBDb3JwLgorMDQ1NUNBICAgICAoYmFzZSAxNikJCUJyaVZpZXcgKFhpYW1lbikgQ29ycC4KKwkJCQlOTy4xOTk4IFdlc3Qgb2YgRmFuZ3NoYW4gUm9hZCxYaWFuZyBBbiBCcmFuY2gsVG9yY2ggSGktdGVjaCBsbmR1c3RyaWFsIERldmVsb3BtZW50IFpvbmUsCisJCQkJWGlhbWVuIGNpdHkgRnVqaWFuIFByb3ZpbmNlIDM2MTEwMgorCQkJCUNISU5BCisKKzA0LTVELTU2ICAgKGhleCkJCWNhbXRyb24gaW5kdXN0cmlhbCBpbmMuCiswNDVENTYgICAgIChiYXNlIDE2KQkJY2FtdHJvbiBpbmR1c3RyaWFsIGluYy4KKwkJCQk1RiwgS3VlbS1BaCBCL0QsIDMxLTMsIEthcmFrLWRvbmcsIFNvbmdwYS1ndQorCQkJCVNlb3VsICAxMzgtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzA0LTcwLUJDICAgKGhleCkJCUdsb2JhbHN0YXIgSW5jLgorMDQ3MEJDICAgICAoYmFzZSAxNikJCUdsb2JhbHN0YXIgSW5jLgorCQkJCTQ2MSBTIE1pbHBpdGFzIEJsdmQKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtNzQtQTEgICAoaGV4KQkJQWxpZ2VyYSBFcXVpcGFtZW50b3MgRGlnaXRhaXMgTHRkYQorMDQ3NEExICAgICAoYmFzZSAxNikJCUFsaWdlcmEgRXF1aXBhbWVudG9zIERpZ2l0YWlzIEx0ZGEKKwkJCQlBdi4gUGFyYSAzMzAgLyAzMDIKKwkJCQlQb3J0byBBbGVncmUgUlMgOTAyNDAtNTkwCisJCQkJQlJBWklMCisKKzA0LTc1LUY1ICAgKGhleCkJCUNTU1QKKzA0NzVGNSAgICAgKGJhc2UgMTYpCQlDU1NUCisJCQkJQnVpbGRpbmcgNiwgQ1NTVCBpbmR1c3RyaWFsIHBhcmssIFRvbmcgZnV5dSBJbmR1c3RyaWFsIHpvbmUKKwkJCQlHdWFuZ21pbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDcKKwkJCQlDSElOQQorCiswNC03Ni02RSAgIChoZXgpCQlBTFBTIENvLC4gTHRkLgorMDQ3NjZFICAgICAoYmFzZSAxNikJCUFMUFMgQ28sLiBMdGQuCisJCQkJNi0zLTM2IEZ1cnVrYXdhbmFrYXphdG8sCisJCQkJT3Nha2kgTWl5YWdpLXByZWYgOTg5LTYxODEKKwkJCQlKQVBBTgorCiswNC04QS0xNSAgIChoZXgpCQlBdmF5YSwgSW5jCiswNDhBMTUgICAgIChiYXNlIDE2KQkJQXZheWEsIEluYworCQkJCTIxMSBNb3VudCBBaXJ5IFJvYWQgCisJCQkJQmFza2luZyBSaWRnZSBOSiAwNzkyMC0yMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswNC05NC1BMSAgIChoZXgpCQlDQVRDSCBUSEUgV0lORCBJTkMKKzA0OTRBMSAgICAgKGJhc2UgMTYpCQlDQVRDSCBUSEUgV0lORCBJTkMKKwkJCQkxMDc4MSBKQU1FUyBQQVlORSBDT1VSVAorCQkJCU1BTkFTU0FTIFZBIDIwMTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswNC05Ri04MSAgIChoZXgpCQlTaW1lbmEsIExMQworMDQ5RjgxICAgICAoYmFzZSAxNikJCVNpbWVuYSwgTExDCisJCQkJNDYwMzAgTWFuZWtpbiBQbGF6YQorCQkJCXN1aXRlIDE1MAorCQkJCVN0ZXJsaW5nIFZpcmdpbmlhIDIwMTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswNC1BMy1GMyAgIChoZXgpCQlFbWljb24KKzA0QTNGMyAgICAgKGJhc2UgMTYpCQlFbWljb24KKwkJCQlzaGVsa292c2tvZSBzaG9zc2UsIDc3CisJCQkJTW9zY293ICAxMDcyNDEKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDQtQjMtQjYgICAoaGV4KQkJU2VhbWFwIChVSykgTHRkCiswNEIzQjYgICAgIChiYXNlIDE2KQkJU2VhbWFwIChVSykgTHRkCisJCQkJVW5pdCAzNCwgVGhlIE1hbHRpbmdzCisJCQkJQ2hhcmx0b24gRXN0YXRlCisJCQkJU2hlcHRvbiBNYWxsZXQgU29tZXJzZXQgQkE0IDVRRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzA0LUI0LTY2ICAgKGhleCkJCUJTUCBDby4sIEx0ZC4KKzA0QjQ2NiAgICAgKGJhc2UgMTYpCQlCU1AgQ28uLCBMdGQuCisJCQkJMTYyLTEwCisJCQkJR29uZ2RhbiBEb25nCisJCQkJR3VtaSBHeWV1bmdzYW5nYnVrIERvIDczMC05MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDQtQzAtNUIgICAoaGV4KQkJVGlnbyBFbmVyZ3kKKzA0QzA1QiAgICAgKGJhc2UgMTYpCQlUaWdvIEVuZXJneQorCQkJCTE3MCBLbm93bGVzIERyCisJCQkJTG9zIEdhdG9zIENBIDk1MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswNC1DMC02RiAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCiswNEMwNkYgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyOQorCQkJCUNISU5BCisKKzA0LUM1LUE0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzA0QzVBNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA0LUM4LTgwICAgKGhleCkJCVNhbXRlYyBJbmMKKzA0Qzg4MCAgICAgKGJhc2UgMTYpCQlTYW10ZWMgSW5jCisJCQkJNTIwIFBhcmsgRWFzdCBCbHZkCisJCQkJTmV3IEFsYmFueSBJTiA0NzE1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtREQtNEMgICAoaGV4KQkJSVBCbGF6ZQorMDRERDRDICAgICAoYmFzZSAxNikJCUlQQmxhemUKKwkJCQlPbGR2ZWplbiA0CisJCQkJRnJlZGVuc2JvcmcgREsgMzQ4MAorCQkJCURFTk1BUksKKworMDQtRTAtQzQgICAoaGV4KQkJVFJJVU1QSC1BRExFUiBBRworMDRFMEM0ICAgICAoYmFzZSAxNikJCVRSSVVNUEgtQURMRVIgQUcKKwkJCQlIVU5ESU5HU1RSQUJFIDExQgorCQkJCTg1MDAgTlVSTkJVUkcgODAKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswNC1FMS1DOCAgIChoZXgpCQlJTVMgU29sde+/ve+/vWVzIGVtIEVuZXJnaWEgTHRkYS4KKzA0RTFDOCAgICAgKGJhc2UgMTYpCQlJTVMgU29sde+/ve+/vWVzIGVtIEVuZXJnaWEgTHRkYS4KKwkJCQlBdi4gQmVybmFyZGlubyBTaWx2ZWlyYSBQYXN0b3JpemEsIDcyMAorCQkJCVBvcnRvIEFsZWdyZSBSUyA5MTE2MC0zMTAKKwkJCQlCUkFaSUwKKworMDQtRTItRjggICAoaGV4KQkJQUVQIHNybAorMDRFMkY4ICAgICAoYmFzZSAxNikJCUFFUCBzcmwKKwkJCQlWaWEgZGVpIENvbGxpLCAyNDAKKwkJCQlTaWduYSBGaXJlbnplIDUwMDU4CisJCQkJSVRBTFkKKworMDQtRTUtNDggICAoaGV4KQkJQ29oZGEgV2lyZWxlc3MgUHR5IEx0ZAorMDRFNTQ4ICAgICAoYmFzZSAxNikJCUNvaGRhIFdpcmVsZXNzIFB0eSBMdGQKKwkJCQlTdWl0ZSA1IC8gODMgRnVsbGFydG9uIFJvYWQKKwkJCQlLZW50IFRvd24gU291dGggQXVzdHJhbGlhIDUwNjcKKwkJCQlBVVNUUkFMSUEKKworMDQtRTYtNjIgICAoaGV4KQkJQWNyb25hbWUgSW5jLgorMDRFNjYyICAgICAoYmFzZSAxNikJCUFjcm9uYW1lIEluYy4KKwkJCQk0ODIyIFN0ZXJsaW5nIERyaXZlCisJCQkJQm91bGRlciBDTyA4MDMwMS0yMzUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswNC1GRS03RiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswNEZFN0YgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswNC1GRi01MSAgIChoZXgpCQlOT1ZBTUVESUEgSU5OT1ZJU0lPTiBTUC4gWiBPLk8uCiswNEZGNTEgICAgIChiYXNlIDE2KQkJTk9WQU1FRElBIElOTk9WSVNJT04gU1AuIFogTy5PLgorCQkJCVdPRE5BIDcgCisJCQkJS0FMSVNaIFdJRUxLT1BPTFNLQSA2Mi04MDAKKwkJCQlQT0xBTkQKKworMDgtMDAtMDEgICAoaGV4KQkJQ09NUFVURVJWSVNJT04gQ09SUE9SQVRJT04KKzA4MDAwMSAgICAgKGJhc2UgMTYpCQlDT01QVVRFUlZJU0lPTiBDT1JQT1JBVElPTgorCQkJCTE0IENST1NCWSBEUklWRSBNUyA1LTEKKwkJCQlCRURGT1JEIE1BIDAxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wMiAgIChoZXgpCQlCUklER0UgQ09NTVVOSUNBVElPTlMgSU5DLgorMDgwMDAyICAgICAoYmFzZSAxNikJCUJSSURHRSBDT01NVU5JQ0FUSU9OUyBJTkMuCisJCQkJMjA4MSBTVElFUkxJTkcgUk9BRAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTAzICAgKGhleCkJCUFEVkFOQ0VEIENPTVBVVEVSIENPTU0uCiswODAwMDMgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgQ09NUFVURVIgQ09NTS4KKwkJCQk3MjAgU0FOVEEgQkFSQkFSQSBTVC4KKwkJCQlTQU5UQSBCQVJCQVJBIENBIDkzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wNCAgIChoZXgpCQlDUk9NRU1DTyBJTkNPUlBPUkFURUQKKzA4MDAwNCAgICAgKGJhc2UgMTYpCQlDUk9NRU1DTyBJTkNPUlBPUkFURUQKKwkJCQkyODAgQkVSTkFSRE8gQVZFTlVFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMDUgICAoaGV4KQkJU1lNQk9MSUNTIElOQy4KKzA4MDAwNSAgICAgKGJhc2UgMTYpCQlTWU1CT0xJQ1MgSU5DLgorCQkJCTI1NyBWQVNTQVIgU1RSRUVUCisJCQkJQ0FNQlJJREdFIE1BIDAyMTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wNiAgIChoZXgpCQlTSUVNRU5TIEFHCiswODAwMDYgICAgIChiYXNlIDE2KQkJU0lFTUVOUyBBRworCQkJCVNpZW1lbnMgSVQgU29sdXRpb25zIGFuZCBTZXJ2aWNlcywgU0lTIEdPIFFNIE8KKwkJCQlTaWVtZW5zc3RyYXNzZSAyLTQKKwkJCQlQT0IgMjM1MyBGdWVydGggOTA3MTMKKwkJCQlHRVJNQU5ZCisKKzA4LTAwLTA3ICAgKGhleCkJCUFQUExFIENPTVBVVEVSIElOQy4KKzA4MDAwNyAgICAgKGJhc2UgMTYpCQlBUFBMRSBDT01QVVRFUiBJTkMuCisJCQkJMjA2NTAgVkFMTEVZIEdSRUVOIERSSVZFCisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wOCAgIChoZXgpCQlCT0xUIEJFUkFORUsgQU5EIE5FV01BTiBJTkMuCiswODAwMDggICAgIChiYXNlIDE2KQkJQk9MVCBCRVJBTkVLIEFORCBORVdNQU4gSU5DLgorCQkJCTcwIEZBV0NFVFQgU1RSRUVUCisJCQkJQ0FNQlJJREdFIE1BIDAyMTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wOSAgIChoZXgpCQlIRVdMRVRUIFBBQ0tBUkQKKzA4MDAwOSAgICAgKGJhc2UgMTYpCQlIRVdMRVRUIFBBQ0tBUkQKKwkJCQlFTlRFUlBSSVNFIFNZU1RFTVMgVEVDSC5DRU5URVIKKwkJCQkxMTAwMCBXT0xGRSBST0FECisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wQSAgIChoZXgpCQlORVNUQVIgU1lTVEVNUyBJTkNPUlBPUkFURUQKKzA4MDAwQSAgICAgKGJhc2UgMTYpCQlORVNUQVIgU1lTVEVNUyBJTkNPUlBPUkFURUQKKwkJCQkyNTg1IEVBU1QgQkFZU0hPUkUgUk9BRAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMEIgICAoaGV4KQkJVU5JU1lTIENPUlBPUkFUSU9OCiswODAwMEIgICAgIChiYXNlIDE2KQkJVU5JU1lTIENPUlBPUkFUSU9OCisJCQkJVE9XTlNISVAgTElORSBST0FECisJCQkJQkxVRSBCRUxMIFBBIDE5NDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wQyAgIChoZXgpCQlNSUtMWU4gREVWRUxPUE1FTlQgQ08uCiswODAwMEMgICAgIChiYXNlIDE2KQkJTUlLTFlOIERFVkVMT1BNRU5UIENPLgorCQkJCTM2MTMgQU5ET1ZFUiBESVZFCisJCQkJQkVERk9SRCBUWCA3NjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMEQgICAoaGV4KQkJSU5URVJOQVRJT05BTCBDT01QVVRFUlMgTFRELgorMDgwMDBEICAgICAoYmFzZSAxNikJCUlOVEVSTkFUSU9OQUwgQ09NUFVURVJTIExURC4KKwkJCQlXRU5MT0NLIFdBWQorCQkJCVdFU1QgR09SVE9OIE1BTkNIRVNURVIsICBNMTIgIDVEUgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDgtMDAtMEUgICAoaGV4KQkJTkNSIENPUlBPUkFUSU9OCiswODAwMEUgICAgIChiYXNlIDE2KQkJTkNSIENPUlBPUkFUSU9OCisJCQkJV09STEQgSEVBRFFVQVJURVJTCisJCQkJREFZVE9OIE9IIDQ1NDc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wRiAgIChoZXgpCQlNSVRFTCBDT1JQT1JBVElPTgorMDgwMDBGICAgICAoYmFzZSAxNikJCU1JVEVMIENPUlBPUkFUSU9OCisJCQkJMzUwIExFR0dFVCBEUklWRQorCQkJCVAuTy4gQk9YIDEzMDg5IEtBTkFUQSBPTlRBUklPCisJCQkJQ0FOQURBIEsySyAxWDMKKwkJCQlDQU5BREEKKworMDgtMDAtMTEgICAoaGV4KQkJVEVLVFJPTklYIElOQy4KKzA4MDAxMSAgICAgKGJhc2UgMTYpCQlURUtUUk9OSVggSU5DLgorCQkJCVRFQ0hOSUNBTCBTVEFOREFSRFMKKwkJCQkxMzk3NSBTVyBLQVJMIEJSQVVOIERSSVZFIFBPIEJPWCA1MDAsICBNCisJCQkJQkVBVkVSVE9OIE9SIDk3MDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0xMiAgIChoZXgpCQlCRUxMIEFUTEFOVElDIElOVEVHUkFURUQgU1lTVC4KKzA4MDAxMiAgICAgKGJhc2UgMTYpCQlCRUxMIEFUTEFOVElDIElOVEVHUkFURUQgU1lTVC4KKwkJCQk0MCBUQUxMIFBJTkUgRFJJVkUKKwkJCQlTVURCVVJZIE1BIDAxNzc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0xMyAgIChoZXgpCQlFWFhPTgorMDgwMDEzICAgICAoYmFzZSAxNikJCUVYWE9OCisJCQkJCisKKzA4LTAwLTE0ICAgKGhleCkJCUVYQ0VMQU4KKzA4MDAxNCAgICAgKGJhc2UgMTYpCQlFWENFTEFOCisJCQkJMTU5OSBGTElDS0lOR0VSIEFWRU5VRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0xNSAgIChoZXgpCQlTVEMgQlVTSU5FU1MgU1lTVEVNUworMDgwMDE1ICAgICAoYmFzZSAxNikJCVNUQyBCVVNJTkVTUyBTWVNURU1TCisJCQkJSE9MQlJPT0sgSE9VU0UKKwkJCQlDT0NLRk9TVEVSUyBST0FEIENPQ0tGT1NURVJTIEhFUlRTIEVONCBPCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC0xNiAgIChoZXgpCQlCQVJSSVNURVIgSU5GTyBTWVMgQ09SUAorMDgwMDE2ICAgICAoYmFzZSAxNikJCUJBUlJJU1RFUiBJTkZPIFNZUyBDT1JQCisJCQkJT05FIFRFQ0hOT0xPR1kgQ0VOVEVSCisJCQkJNDUgT0FLIFNUUkVFVAorCQkJCUJVRkZBTE8gTlkgMTQyMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTE3ICAgKGhleCkJCU5BVElPTkFMIFNFTUlDT05EVUNUT1IKKzA4MDAxNyAgICAgKGJhc2UgMTYpCQlOQVRJT05BTCBTRU1JQ09ORFVDVE9SCisJCQkJMjkwMCBTRU1JQ09ORFVDVE9SIERSSVZFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTE4ICAgKGhleCkJCVBJUkVMTEkgRk9DT00gTkVUV09SS1MKKzA4MDAxOCAgICAgKGJhc2UgMTYpCQlQSVJFTExJIEZPQ09NIE5FVFdPUktTCisJCQkJREVOVE9OIERSSVZFCisJCQkJTk9SVEhXSUNIIENIRVNISVJFICAgICAgQ1c5IDdMVQorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC0xOSAgIChoZXgpCQlHRU5FUkFMIEVMRUNUUklDIENPUlBPUkFUSU9OCiswODAwMTkgICAgIChiYXNlIDE2KQkJR0VORVJBTCBFTEVDVFJJQyBDT1JQT1JBVElPTgorCQkJCTEyODUgQk9TVE9OIEFWRU5VRQorCQkJCUJSSURHRVBPUlQgQ1QgMDY2MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTFBICAgKGhleCkJCVRJQVJBLyAxME5FVAorMDgwMDFBICAgICAoYmFzZSAxNikJCVRJQVJBLyAxME5FVAorCQkJCTc3NzcgV0FTSElOR1RPTiBWSUxMQUdFIERSSVZFCisJCQkJU1VJVEUgMjAwCisJCQkJREFZVE9OIE9ISU8gNDU0NTktMzk1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMUIgICAoaGV4KQkJRU1DIENvcnBvcmF0aW9uCiswODAwMUIgICAgIChiYXNlIDE2KQkJRU1DIENvcnBvcmF0aW9uCisJCQkJMTc2IFNvdXRoIFN0cmVldAorCQkJCUhvcGtpbnRvbiBNQSAwMTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMUMgICAoaGV4KQkJS0RELUtPS1VTQUkgREVCTlNJTiBERU5XQSBDTy4KKzA4MDAxQyAgICAgKGJhc2UgMTYpCQlLREQtS09LVVNBSSBERUJOU0lOIERFTldBIENPLgorCQkJCUZVSkkgWEVST1ggQ08uLCBMVEQuIFRFTEVHUkFQSAorCQkJCU5PLiAzLTUsIEFLQVNBS0EgMy1DSE9NRSBNSU5BVE8tS1UsIFRPS1kKKwkJCQkxMDcgSkFQQU4KKwkJCQlKQVBBTgorCiswOC0wMC0xRCAgIChoZXgpCQlBQkxFIENPTU1VTklDQVRJT05TIElOQy4KKzA4MDAxRCAgICAgKGJhc2UgMTYpCQlBQkxFIENPTU1VTklDQVRJT05TIElOQy4KKwkJCQkxNzg5MSBDQVJUV1JJR0hUIFJPQUQKKwkJCQlJUlZJTkUgQ0EgOTI3MTQtNjIxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMUUgICAoaGV4KQkJQVBPTExPIENPTVBVVEVSIElOQy4KKzA4MDAxRSAgICAgKGJhc2UgMTYpCQlBUE9MTE8gQ09NUFVURVIgSU5DLgorCQkJCTE1IEVMSVpBQkVUSCBEUklWRQorCQkJCUNIRUxNU0ZPUkQgTUEgMDE4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTFGICAgKGhleCkJCVNIQVJQIENPUlBPUkFUSU9OCiswODAwMUYgICAgIChiYXNlIDE2KQkJU0hBUlAgQ09SUE9SQVRJT04KKwkJCQlFTkdJTkVFUklORyBERVBBUlRNRU5UIDYKKwkJCQk0OTIgTUlOT1NITy1DSE8gWUFNQVRPS09PUklZTUEtU0hJLAorCQkJCU5BUkEgNjM5LTExIEpBUEFOCisJCQkJSkFQQU4KKworMDgtMDAtMjAgICAoaGV4KQkJT3JhY2xlIENvcnBvcmF0aW9uCiswODAwMjAgICAgIChiYXNlIDE2KQkJT3JhY2xlIENvcnBvcmF0aW9uCisJCQkJMTcgTmV0d29yayBDaXJjbGUKKwkJCQlCdWlsZGluZyAxNywgVU1QSzE3LTEzMQorCQkJCU1lbmxvIFBhcmsgQ0EgOTUwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTIxICAgKGhleCkJCTNNIENPTVBBTlkKKzA4MDAyMSAgICAgKGJhc2UgMTYpCQkzTSBDT01QQU5ZCisJCQkJVGVsZWNvbSBEaXZpc2lvbgorCQkJCTY4MDEgUml2ZXIgUGxhY2UgQm91bGV2YXJkCisJCQkJQXVzdGluIFRYIDc4NzI2LTkwMDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTIyICAgKGhleCkJCU5CSSBJTkMuCiswODAwMjIgICAgIChiYXNlIDE2KQkJTkJJIElOQy4KKwkJCQkzNDUwIE1JVENIRUxMIExBTkUKKwkJCQlQLk8uIEJPWCA5MDAxCisJCQkJQk9VTERFUiBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMjMgICAoaGV4KQkJUGFuYXNvbmljIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorMDgwMDIzICAgICAoYmFzZSAxNikJCVBhbmFzb25pYyBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQk0LTEtNjIgTWlub3NoaW1hIEhha2F0YSBGdWt1b2thCisJCQkJODEyLTg1MzEKKwkJCQlKQVBBTgorCiswOC0wMC0yNCAgIChoZXgpCQkxME5FVCBDT01NVU5JQ0FUSU9OUy9EQ0EKKzA4MDAyNCAgICAgKGJhc2UgMTYpCQkxME5FVCBDT01NVU5JQ0FUSU9OUy9EQ0EKKwkJCQk3Nzc3IFdBU0hJTkdUT04gVklMTEFHRSBEUi4KKwkJCQlTVUlURSAyMDAKKwkJCQlEQVlUT04gT0ggNDU0NTktMzk1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMjUgICAoaGV4KQkJQ09OVFJPTCBEQVRBCiswODAwMjUgICAgIChiYXNlIDE2KQkJQ09OVFJPTCBEQVRBCisJCQkJNDIwMSBMRVhJTkdUT04gQVZFIE5PUlRICisJCQkJQVJERU4gSElMTFMgTU4gNTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTI2ICAgKGhleCkJCU5PUlNLIERBVEEgQS5TLgorMDgwMDI2ICAgICAoYmFzZSAxNikJCU5PUlNLIERBVEEgQS5TLgorCQkJCVAuTy4gQk9YIDI1IEJPR0VSVUQKKwkJCQlPU0xPIDYKKwkJCQlOT1JXQVkKKwkJCQlOT1JXQVkKKworMDgtMDAtMjcgICAoaGV4KQkJQ0FETVVTIENPTVBVVEVSIFNZU1RFTVMKKzA4MDAyNyAgICAgKGJhc2UgMTYpCQlDQURNVVMgQ09NUFVURVIgU1lTVEVNUworCQkJCTYwMCBTVUZGT0xLIFNUCisJCQkJTE9XRUxMIE1BIDA4MTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0yOCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDgwMDI4ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJTS9TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTI5ICAgKGhleCkJCU1FR0FURUsgQ09SUE9SQVRJT04KKzA4MDAyOSAgICAgKGJhc2UgMTYpCQlNRUdBVEVLIENPUlBPUkFUSU9OCisJCQkJOTY0NSBTQ1JBTlRPTiBST0FECisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0yQSAgIChoZXgpCQlNT1NBSUMgVEVDSE5PTE9HSUVTIElOQy4KKzA4MDAyQSAgICAgKGJhc2UgMTYpCQlNT1NBSUMgVEVDSE5PTE9HSUVTIElOQy4KKwkJCQk0NyBNQU5OSU5HIFJPQUQKKwkJCQlCSUxMRVJJQ0EgTUEgMDE4MjEtMzk3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMkIgICAoaGV4KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKzA4MDAyQiAgICAgKGJhc2UgMTYpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorCQkJCUxLRyAxLTIvQTE5CisJCQkJNTUwIEtJTkcgU1RSRUVUCisJCQkJTElUVExFVE9OIE1BIDAxNDYwLTEyODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTJDICAgKGhleCkJCUJSSVRUT04gTEVFIElOQy4KKzA4MDAyQyAgICAgKGJhc2UgMTYpCQlCUklUVE9OIExFRSBJTkMuCisJCQkJMTQ2MDAgV0lOQ0hFU1RFUiBCTFZECisJCQkJTE9TIEdBVE9TIENBIDk1MDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0yRCAgIChoZXgpCQlMQU4tVEVDIElOQy4KKzA4MDAyRCAgICAgKGJhc2UgMTYpCQlMQU4tVEVDIElOQy4KKwkJCQkyMTMxIFVOSVZFUlNJVFkgQVZFTlVFCisJCQkJQkVSS0VMRVkgQ0EgOTQ3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTJFICAgKGhleCkJCU1FVEFQSE9SIENPTVBVVEVSIFNZU1RFTVMKKzA4MDAyRSAgICAgKGJhc2UgMTYpCQlNRVRBUEhPUiBDT01QVVRFUiBTWVNURU1TCisJCQkJMjUwMCBHQVJDSUEgQVZFTlVFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMkYgICAoaGV4KQkJUFJJTUUgQ09NUFVURVIgSU5DLgorMDgwMDJGICAgICAoYmFzZSAxNikJCVBSSU1FIENPTVBVVEVSIElOQy4KKwkJCQkxMDAgQ1JPU0JZIERSSVZFCisJCQkJQkVERk9SRCBNQSAwMTczMC0xNDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0zMCAgIChoZXgpCQlORVRXT1JLIFJFU0VBUkNIIENPUlBPUkFUSU9OCiswODAwMzAgICAgIChiYXNlIDE2KQkJTkVUV09SSyBSRVNFQVJDSCBDT1JQT1JBVElPTgorCQkJCTIzODAgTi4gUk9TRSBBVkVOVUUKKwkJCQlPWE5BUkQgQ0EgOTMwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTMwICAgKGhleCkJCUNFUk4KKzA4MDAzMCAgICAgKGJhc2UgMTYpCQlDRVJOCisJCQkJQ0gtMTIxMSBHRU5FVkUgMjMKKwkJCQlTVUlTU0UvU1dJVFoKKwkJCQlTV0lUWkVSTEFORAorCiswOC0wMC0zMCAgIChoZXgpCQlST1lBTCBNRUxCT1VSTkUgSU5TVCBPRiBURUNICiswODAwMzAgICAgIChiYXNlIDE2KQkJUk9ZQUwgTUVMQk9VUk5FIElOU1QgT0YgVEVDSAorCQkJCUdQTyBCT1ggMjQ3NlYKKwkJCQlNRUxCT1VSTkUgVklDIDMwMDEKKwkJCQlBVVNUUkFMSUEKKworMDgtMDAtMzEgICAoaGV4KQkJTElUVExFIE1BQ0hJTkVTIElOQy4KKzA4MDAzMSAgICAgKGJhc2UgMTYpCQlMSVRUTEUgTUFDSElORVMgSU5DLgorCQkJCTQxNDEgSlVUTEFORCBEUklWRQorCQkJCVNBTiBESUVHTyBDQSA5MjExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMzIgICAoaGV4KQkJVElHQU4gSU5DT1JQT1JBVEVECiswODAwMzIgICAgIChiYXNlIDE2KQkJVElHQU4gSU5DT1JQT1JBVEVECisJCQkJNDAyMCBGQUJJQU4gV0FZCisJCQkJU1VJVEUgRAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMzMgICAoaGV4KQkJQkFVU0NIICYgTE9NQgorMDgwMDMzICAgICAoYmFzZSAxNikJCUJBVVNDSCAmIExPTUIKKwkJCQlJTlRFUkFDVElWRSBHUkFQSElDUyBESVZJU0lPTgorCQkJCVAuTy4gQk9YIDE0NTQ3CisJCQkJQVVTSVROIFRYIDc4NjcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0zNCAgIChoZXgpCQlGSUxFTkVUIENPUlBPUkFUSU9OCiswODAwMzQgICAgIChiYXNlIDE2KQkJRklMRU5FVCBDT1JQT1JBVElPTgorCQkJCTE1NzUgQ09SUE9SQVRFIERSSVZFCisJCQkJQ09TVEEgTUVTQSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMzUgICAoaGV4KQkJTUlDUk9GSVZFIENPUlBPUkFUSU9OCiswODAwMzUgICAgIChiYXNlIDE2KQkJTUlDUk9GSVZFIENPUlBPUkFUSU9OCisJCQkJMzU2MCBIWUxBTkQgQVZFTlVFCisJCQkJUC5PLiBCT1ggNTAxMQorCQkJCUNPU1RBIE1FU0EgQ0EgOTI2MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTM2ICAgKGhleCkJCUlOVEVSR1JBUEggQ09SUE9SQVRJT04KKzA4MDAzNiAgICAgKGJhc2UgMTYpCQlJTlRFUkdSQVBIIENPUlBPUkFUSU9OCisJCQkJT05FIE1BRElTT04gSU5EVVNUUklBTCBQQVJLCisJCQkJSFVOVFNWSUxMRSBBTCAzNTgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMzcgICAoaGV4KQkJRlVKSS1YRVJPWCBDTy4gTFRELgorMDgwMDM3ICAgICAoYmFzZSAxNikJCUZVSkktWEVST1ggQ08uIExURC4KKwkJCQlBRFZBTkNFRCBURUNIICYgRU5HJ0cgQ0VOVEVSCisJCQkJOS01MCBDSFVPIDItQ0hPTUUsIEVCSU5BLVNISSBLQU5BR0FXQSAyNAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDgtMDAtMzggICAoaGV4KQkJQlVMTCBTLkEuUy4KKzA4MDAzOCAgICAgKGJhc2UgMTYpCQlCVUxMIFMuQS5TLgorCQkJCXJ1ZSBKZWFuIEphdXJlcyBCLlAuNjgKKwkJCQlMZXMgQ2xheWVzIHNvdXMgQm9pcyAgNzg0MzAKKwkJCQlGUkFOQ0UKKworMDgtMDAtMzkgICAoaGV4KQkJU1BJREVSIFNZU1RFTVMgTElNSVRFRAorMDgwMDM5ICAgICAoYmFzZSAxNikJCVNQSURFUiBTWVNURU1TIExJTUlURUQKKwkJCQlTUElERVIgUEFSSworCQkJCVNUQU5XRUxMIFNUUkVFVCBFRElOQlVSR0ggRUg2IDVORworCQkJCVNDT1RMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDgtMDAtM0EgICAoaGV4KQkJT1JDQVRFQ0ggSU5DLgorMDgwMDNBICAgICAoYmFzZSAxNikJCU9SQ0FURUNIIElOQy4KKwkJCQkyNjgwIFFVRUVOU1ZJRVcgRFJJVkUKKwkJCQlPVFRBV0EgT05UQVJJTworCQkJCUNBTkFEQSBLMkIgOEg2CisJCQkJQ0FOQURBCisKKzA4LTAwLTNCICAgKGhleCkJCVRPUlVTIFNZU1RFTVMgTElNSVRFRAorMDgwMDNCICAgICAoYmFzZSAxNikJCVRPUlVTIFNZU1RFTVMgTElNSVRFRAorCQkJCVNDSUVOQ0UgUEFSSworCQkJCU1JTFRPTiBST0FEIENBTUJSSURHRSBDQjQgNEJICisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC0zQyAgIChoZXgpCQlTQ0hMVU1CRVJHRVIgV0VMTCBTRVJWSUNFUworMDgwMDNDICAgICAoYmFzZSAxNikJCVNDSExVTUJFUkdFUiBXRUxMIFNFUlZJQ0VTCisJCQkJQVVTVElOIEVOR0lORUVSSU5HIFNFUlZJQ0VTCisJCQkJUC5PLiBCT1ggMjAwMDE1CisJCQkJQVVTVElOIFRYIDc4NzIwLTAwMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTNEICAgKGhleCkJCUNBRE5FVElYIENPUlBPUkFUSU9OUworMDgwMDNEICAgICAoYmFzZSAxNikJCUNBRE5FVElYIENPUlBPUkFUSU9OUworCQkJCTU3OTcgQ0VOVFJBTCBBVkVOVUUKKwkJCQlCT1VMREVSIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0zRSAgIChoZXgpCQlDT0RFWCBDT1JQT1JBVElPTgorMDgwMDNFICAgICAoYmFzZSAxNikJCUNPREVYIENPUlBPUkFUSU9OCisJCQkJNTAgRUFTVCBDT01NRVJDRSBEUklWRQorCQkJCVNVSVRFICBNMQorCQkJCVNDSEFVTUJVUkcgSUwgNjAxNzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTNGICAgKGhleCkJCUZSRUQgS09TQ0hBUkEgRU5URVJQUklTRVMKKzA4MDAzRiAgICAgKGJhc2UgMTYpCQlGUkVEIEtPU0NIQVJBIEVOVEVSUFJJU0VTCisJCQkJCisKKzA4LTAwLTQwICAgKGhleCkJCUZFUlJBTlRJIENPTVBVVEVSIFNZUy4gTElNSVRFRAorMDgwMDQwICAgICAoYmFzZSAxNikJCUZFUlJBTlRJIENPTVBVVEVSIFNZUy4gTElNSVRFRAorCQkJCVdZVEhFTlNIQVdFIERJVklTSU9OCisJCQkJV0VTVEVSTiBST0FEIEJSQUNLTkVMTCBSRzEyIDFSQQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDgtMDAtNDEgICAoaGV4KQkJUkFDQUwtTUlMR08gSU5GT1JNQVRJT04gU1lTLi4KKzA4MDA0MSAgICAgKGJhc2UgMTYpCQlSQUNBTC1NSUxHTyBJTkZPUk1BVElPTiBTWVMuLgorCQkJCTQwMCBFTUJBU1NZIFJPVworCQkJCVNVSVRFIDMwMAorCQkJCUFUTEFOVEEgR0EgMzAzMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTQyICAgKGhleCkJCUpBUEFOIE1BQ05JQ1MgQ09SUC4KKzA4MDA0MiAgICAgKGJhc2UgMTYpCQlKQVBBTiBNQUNOSUNTIENPUlAuCisJCQkJCisJCQkJSkFQQU4KKworMDgtMDAtNDMgICAoaGV4KQkJUElYRUwgQ09NUFVURVIgSU5DLgorMDgwMDQzICAgICAoYmFzZSAxNikJCVBJWEVMIENPTVBVVEVSIElOQy4KKwkJCQkyNjAgRk9SREhBTSBST0FECisJCQkJV0lMTUlOR1RPTiBNQSAwMTg4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNDQgICAoaGV4KQkJREFWSUQgU1lTVEVNUyBJTkMuCiswODAwNDQgICAgIChiYXNlIDE2KQkJREFWSUQgU1lTVEVNUyBJTkMuCisJCQkJNjE1IFRBU01BTiBEUklWRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNDUgICAoaGV4KQkJQ09OQ1VSUkVOVCBDT01QVVRFUiBDT1JQLgorMDgwMDQ1ICAgICAoYmFzZSAxNikJCUNPTkNVUlJFTlQgQ09NUFVURVIgQ09SUC4KKwkJCQkyIENSRVNDRU5UIFBMQUNFCisJCQkJT0NFQU5QT1JUIE5KIDA3NzU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC00NiAgIChoZXgpCQlTb255IENvcnBvcmF0aW9uCiswODAwNDYgICAgIChiYXNlIDE2KQkJU29ueSBDb3Jwb3JhdGlvbgorCQkJCUdvdGVueWFtYSBUZWMsIDUtMS0yIEtpdGFzaGluYWdhd2EKKwkJCQlTaGluYWdhd2Eta3UKKwkJCQlUb2t5byAgMTQxLTAwMDEKKwkJCQlKQVBBTgorCiswOC0wMC00NyAgIChoZXgpCQlTRVFVRU5UIENPTVBVVEVSIFNZU1RFTVMgSU5DLgorMDgwMDQ3ICAgICAoYmFzZSAxNikJCVNFUVVFTlQgQ09NUFVURVIgU1lTVEVNUyBJTkMuCisJCQkJMTU0NTAgUy5XLiBLT0xMIFBBUktXQVkgICAuCisJCQkJTUFJTFNUT1AgQ09MMi04MzEKKwkJCQlCRUFWRVJUT04gT1IgOTcwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTQ4ICAgKGhleCkJCUVVUk9USEVSTSBHQVVHSU5HIFNZU1RFTVMKKzA4MDA0OCAgICAgKGJhc2UgMTYpCQlFVVJPVEhFUk0gR0FVR0lORyBTWVNURU1TCisJCQkJOTAwIE1JRERMRVNFWCBUVVJOUElLRSwgQkRHLiA2CisJCQkJQklMTEVSSUNBIE1BIDAxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC00OSAgIChoZXgpCQlVTklWQVRJT04KKzA4MDA0OSAgICAgKGJhc2UgMTYpCQlVTklWQVRJT04KKwkJCQkxMDM3IE5PUlRIIEZBSVIgT0FLUyBBVkUuCisJCQkJU1VOTllWQUxFIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC00QSAgIChoZXgpCQlCQU5ZQU4gU1lTVEVNUyBJTkMuCiswODAwNEEgICAgIChiYXNlIDE2KQkJQkFOWUFOIFNZU1RFTVMgSU5DLgorCQkJCTEzNSBGTEFOREVSUyBST0FECisJCQkJV0VTVEJPUk8gTUEgMDE1ODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTRCICAgKGhleCkJCVBMQU5OSU5HIFJFU0VBUkNIIENPUlAuCiswODAwNEIgICAgIChiYXNlIDE2KQkJUExBTk5JTkcgUkVTRUFSQ0ggQ09SUC4KKwkJCQkxREhTIFNZU1RFTVMKKwkJCQkxNTA4IEtFTk5FRFkgRFJJVkUtU1RFIzIxNQorCQkJCUJFTExFVlVFIE5FIDY4LS01CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC00QyAgIChoZXgpCQlIWURSQSBDT01QVVRFUiBTWVNURU1TIElOQy4KKzA4MDA0QyAgICAgKGJhc2UgMTYpCQlIWURSQSBDT01QVVRFUiBTWVNURU1TIElOQy4KKwkJCQkxMiBNRVJDRVIgUk9BRAorCQkJCU5BVElDSyBNQSAwMTc2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNEQgICAoaGV4KQkJQ09SVlVTIFNZU1RFTVMgSU5DLgorMDgwMDREICAgICAoYmFzZSAxNikJCUNPUlZVUyBTWVNURU1TIElOQy4KKwkJCQkyMTAwIENPUlZVUyBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC00RSAgIChoZXgpCQkzQ09NIEVVUk9QRSBMVEQuCiswODAwNEUgICAgIChiYXNlIDE2KQkJM0NPTSBFVVJPUEUgTFRELgorCQkJCTNDT00gQ0VOVFJFCisJCQkJQk9VTkRBUlkgV0FZLCBIRU1FTCBIRU1QU1RFQUQgSEVSVEZPUlNISQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDgtMDAtNEYgICAoaGV4KQkJQ1lHTkVUIFNZU1RFTVMKKzA4MDA0RiAgICAgKGJhc2UgMTYpCQlDWUdORVQgU1lTVEVNUworCQkJCTI1NjAgSlVOQ1RJT04gQVZFTlVFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTUwICAgKGhleCkJCURBSVNZIFNZU1RFTVMgQ09SUC4KKzA4MDA1MCAgICAgKGJhc2UgMTYpCQlEQUlTWSBTWVNURU1TIENPUlAuCisJCQkJMTM5IEtJRkVSIENPVVJUCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01MSAgIChoZXgpCQlFWFBFUkRBVEEKKzA4MDA1MSAgICAgKGJhc2UgMTYpCQlFWFBFUkRBVEEKKwkJCQk4OCwgUlVFIEJSSUxMQVQgU0FWQVJJTgorCQkJCTc1MDEzIFBBUklTCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzA4LTAwLTUyICAgKGhleCkJCUlOU1lTVEVDCiswODAwNTIgICAgIChiYXNlIDE2KQkJSU5TWVNURUMKKwkJCQk0NTAgTEFLRU1PTlQgQVZFTlVFCisJCQkJV0lOVEVSIFBBUksgRkwgMzI3OTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTUzICAgKGhleCkJCU1JRERMRSBFQVNUIFRFQ0guIFVOSVZFUlNJVFkKKzA4MDA1MyAgICAgKGJhc2UgMTYpCQlNSURETEUgRUFTVCBURUNILiBVTklWRVJTSVRZCisJCQkJREVQQVJUTUVOVCBPRgorCQkJCUNPTVBVVEVSIEVOR0lORUVSSU5HCisJCQkJQU5LQVJBIFRVUktFWQorCQkJCVRVUktFWQorCiswOC0wMC01NSAgIChoZXgpCQlTVEFORk9SRCBURUxFQ09NTS4gSU5DLgorMDgwMDU1ICAgICAoYmFzZSAxNikJCVNUQU5GT1JEIFRFTEVDT01NLiBJTkMuCisJCQkJMTIyMSBDUk9TU01BTgorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNTYgICAoaGV4KQkJU1RBTkZPUkQgTElORUFSIEFDQ0VMLiBDRU5URVIKKzA4MDA1NiAgICAgKGJhc2UgMTYpCQlTVEFORk9SRCBMSU5FQVIgQUNDRUwuIENFTlRFUgorCQkJCTI1NzUgU0FOREhJTEwgUk9BRAorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTU3ICAgKGhleCkJCUVWQU5TICYgU1VUSEVSTEFORAorMDgwMDU3ICAgICAoYmFzZSAxNikJCUVWQU5TICYgU1VUSEVSTEFORAorCQkJCVAuTy4gQk9YIDg3MDAKKwkJCQk1ODAgQVJBUEVFTiBEUklWRQorCQkJCVNBTFQgTEFLRSBDSVRZIFVUIDg0MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01OCAgIChoZXgpCQlTWVNURU1TIENPTkNFUFRTCiswODAwNTggICAgIChiYXNlIDE2KQkJU1lTVEVNUyBDT05DRVBUUworCQkJCTUyMCBUSElSRCBTVFJFRVQKKwkJCQlTQU4gRlJBTkNJU0NPIENBIDk0MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01OSAgIChoZXgpCQlBL1MgTVlDUk9OCiswODAwNTkgICAgIChiYXNlIDE2KQkJQS9TIE1ZQ1JPTgorCQkJCVBPIEJPWCA2MTk5CisJCQkJTi0wNjAyIE9TTE8gNgorCQkJCU5PUldBWQorCQkJCU5PUldBWQorCiswOC0wMC01QSAgIChoZXgpCQlJQk0gQ29ycAorMDgwMDVBICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMzAzOSBFIENvcm53YWxsaXMgUm9hZAorCQkJCVAuTy4gQk9YIDEyMTk1CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0yMTk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01QiAgIChoZXgpCQlWVEEgVEVDSE5PTE9HSUVTIElOQy4KKzA4MDA1QiAgICAgKGJhc2UgMTYpCQlWVEEgVEVDSE5PTE9HSUVTIElOQy4KKwkJCQkyMDQwIFNIRVJNQU4gU1RSRUVUCisJCQkJSE9MTFlXT09EIEZMIDMzMDIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01QyAgIChoZXgpCQlGT1VSIFBIQVNFIFNZU1RFTVMKKzA4MDA1QyAgICAgKGJhc2UgMTYpCQlGT1VSIFBIQVNFIFNZU1RFTVMKKwkJCQkyMDAxIExPR0lDIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjQtMzQ1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNUQgICAoaGV4KQkJR09VTEQgSU5DLgorMDgwMDVEICAgICAoYmFzZSAxNikJCUdPVUxEIElOQy4KKwkJCQk2OTAxIFdFU1QgU1VOUklTRSBCTFZELgorCQkJCVAuTy4gQk9YIDkxNDgKKwkJCQlGVC4gTEFVREVSREFMRSBGTCAzMzMxMC05MTQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01RSAgIChoZXgpCQlDT1VOVEVSUE9JTlQgQ09NUFVURVIgSU5DLgorMDgwMDVFICAgICAoYmFzZSAxNikJCUNPVU5URVJQT0lOVCBDT01QVVRFUiBJTkMuCisJCQkJMjEyNyBSSU5HV09PRCBBVkVOVUUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNUYgICAoaGV4KQkJU0FCRVIgVEVDSE5PTE9HWSBDT1JQLgorMDgwMDVGICAgICAoYmFzZSAxNikJCVNBQkVSIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkyMzgxIEJFUklORyBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxLTExMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTYwICAgKGhleCkJCUlORFVTVFJJQUwgTkVUV09SS0lORyBJTkMuCiswODAwNjAgICAgIChiYXNlIDE2KQkJSU5EVVNUUklBTCBORVRXT1JLSU5HIElOQy4KKwkJCQkzOTkwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTYxICAgKGhleCkJCUpBUk9HQVRFIExURC4KKzA4MDA2MSAgICAgKGJhc2UgMTYpCQlKQVJPR0FURSBMVEQuCisJCQkJMTk3LTIxMyBMWUhBTSBST0FECisJCQkJQlJJU1RPTiBMT05ET04gU1cyIDVQWQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDgtMDAtNjIgICAoaGV4KQkJR0VORVJBTCBEWU5BTUlDUworMDgwMDYyICAgICAoYmFzZSAxNikJCUdFTkVSQUwgRFlOQU1JQ1MKKwkJCQlGT1JUIFdPUlRIIERJVklTSU9OCisJCQkJUC5PLiBCT1ggNzQ4CisJCQkJRlQuIFdPUlRIIFRYIDc2MTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC02MyAgIChoZXgpCQlQTEVTU0VZCiswODAwNjMgICAgIChiYXNlIDE2KQkJUExFU1NFWQorCQkJCVBMRVNTRVkgLSBVSyBMSU1JVEVECisJCQkJMTY3LTU1IDE0OFRIIEFWRU5VRQorCQkJCUpBTUFJQ0EgTlkgMTE0MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTY0ICAgKGhleCkJCUFVVE9QSE9OIEFHCiswODAwNjQgICAgIChiYXNlIDE2KQkJQVVUT1BIT04gQUcKKwkJCQlBQlQuIFRaTSAzMDcKKwkJCQlaSUVHRUxNQVRUU1RSQVNTRSAxLTE1IDQ1MDMgU09MT1RIVVJOCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswOC0wMC02NSAgIChoZXgpCQlHRU5SQUQgSU5DLgorMDgwMDY1ICAgICAoYmFzZSAxNikJCUdFTlJBRCBJTkMuCisJCQkJMzAwIEJBS0VSIEFWRU5VRQorCQkJCU1BSUwgU1RPUCAyNgorCQkJCUNPTkNPUkQgTUEgMDE3NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTY2ICAgKGhleCkJCUFHRkEgQ09SUE9SQVRJT04KKzA4MDA2NiAgICAgKGJhc2UgMTYpCQlBR0ZBIENPUlBPUkFUSU9OCisJCQkJMjAwIEJBTExBUkRWQUxFIFNUUkVFVAorCQkJCVdJTE1JTkdUT04gTUEgMDE4ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTY3ICAgKGhleCkJCUNPTURFU0lHTgorMDgwMDY3ICAgICAoYmFzZSAxNikJCUNPTURFU0lHTgorCQkJCTc1MSBTT1VUSCBLRUxMT0cgQVZFTlVFCisJCQkJR09MRVRBIENBIDkzMTE3LTM4ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTY4ICAgKGhleCkJCVJJREdFIENPTVBVVEVSUworMDgwMDY4ICAgICAoYmFzZSAxNikJCVJJREdFIENPTVBVVEVSUworCQkJCTI0NTEgTUlTU0lPTiBDT0xMRUdFIEJMVkQuCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTY5ICAgKGhleCkJCVNJTElDT04gR1JBUEhJQ1MgSU5DLgorMDgwMDY5ICAgICAoYmFzZSAxNikJCVNJTElDT04gR1JBUEhJQ1MgSU5DLgorCQkJCTIwMTEgTi4gU0hPUkVMSU5FIEJMVkQuCisJCQkJUC5PLiBCT1ggNzMxMSBDQSA5NDA0MworCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwMzktNzMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNkEgICAoaGV4KQkJQVRUIEJFTEwgTEFCT1JBVE9SSUVTCiswODAwNkEgICAgIChiYXNlIDE2KQkJQVRUIEJFTEwgTEFCT1JBVE9SSUVTCisJCQkJMTEwMCBFQVNUIFdBUlJFTlZJTExFIFJPQUQKKwkJCQlOQVBFUlZJTExFIElMIDYwNTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC02QiAgIChoZXgpCQlBQ0NFTCBURUNITk9MT0dJRVMgSU5DLgorMDgwMDZCICAgICAoYmFzZSAxNikJCUFDQ0VMIFRFQ0hOT0xPR0lFUyBJTkMuCisJCQkJNzM1OCBUUkFERSBTVFJFRVQKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTZDICAgKGhleCkJCVNVTlRFSyBURUNITk9MT0dZIElOVCdMCiswODAwNkMgICAgIChiYXNlIDE2KQkJU1VOVEVLIFRFQ0hOT0xPR1kgSU5UJ0wKKwkJCQk1ODYgTk8uIEZJUlNUIFNUUkVFVAorCQkJCVNBTiBKT1NFIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC02RCAgIChoZXgpCQlXSElURUNIQVBFTCBDT01QVVRFUiBXT1JLUworMDgwMDZEICAgICAoYmFzZSAxNikJCVdISVRFQ0hBUEVMIENPTVBVVEVSIFdPUktTCisJCQkJNzUgV0hJVEVDSEFQRUwgUk9BRAorCQkJCUxPTkRPTiBFMSAxRFUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC02RSAgIChoZXgpCQlNQVNTQ09NUAorMDgwMDZFICAgICAoYmFzZSAxNikJCU1BU1NDT01QCisJCQkJT05FIFRFQ0hOT0xPR1kgUEFSSworCQkJCVdFU1RGT1JEIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC02RiAgIChoZXgpCQlQSElMSVBTIEFQRUxET09STiBCLlYuCiswODAwNkYgICAgIChiYXNlIDE2KQkJUEhJTElQUyBBUEVMRE9PUk4gQi5WLgorCQkJCVAuTy4gQk9YIDEwNQorCQkJCTczMDAgQUMgQVBFTERPT1JOCisJCQkJVEhFIE5FVEhFUkxBTkRTCisJCQkJTkVUSEVSTEFORFMKKworMDgtMDAtNzAgICAoaGV4KQkJTUlUU1VCSVNISSBFTEVDVFJJQyBDT1JQLgorMDgwMDcwICAgICAoYmFzZSAxNikJCU1JVFNVQklTSEkgRUxFQ1RSSUMgQ09SUC4KKwkJCQkzMjUgS0FNSU1BQ0hJWUEKKwkJCQlLQU1BS1VSQSBDSVRZIEtBTkFHV0EgUFJFRkVDVFVSRSAyNDcKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzA4LTAwLTcxICAgKGhleCkJCU1BVFJBIChEU0lFKQorMDgwMDcxICAgICAoYmFzZSAxNikJCU1BVFJBIChEU0lFKQorCQkJCVBBUkMgRCdBRkZBSVJFUyAtIEIuUC4gMjYyCisJCQkJMjcxMDAgVkFMIERFIFJFVUlMCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzA4LTAwLTcyICAgKGhleCkJCVhFUk9YIENPUlAgVU5JViBHUkFOVCBQUk9HUkFNCiswODAwNzIgICAgIChiYXNlIDE2KQkJWEVST1ggQ09SUCBVTklWIEdSQU5UIFBST0dSQU0KKwkJCQlaRVJPWCBTWVNURU1TIElOU1RJVFVURQorCQkJCU0vUyAxMDUgNTBDIDgwMCBQSElMTElQUyBST0FECisJCQkJV0VCU1RFUiBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNzMgICAoaGV4KQkJVEVDTUFSIElOQy4KKzA4MDA3MyAgICAgKGJhc2UgMTYpCQlURUNNQVIgSU5DLgorCQkJCTYyMjUgQ09DSFJBTiBST0FECisJCQkJU09MT04gT0ggNDQxMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTc0ICAgKGhleCkJCUNBU0lPIENPTVBVVEVSIENPLiBMVEQuCiswODAwNzQgICAgIChiYXNlIDE2KQkJQ0FTSU8gQ09NUFVURVIgQ08uIExURC4KKwkJCQkzLTItMSBTQUtBRS1DSE8KKwkJCQlIQU1VUkFNQUNISSwgTklTSElUTUFHVU4gVE9LWU8KKwkJCQkxOTAtMTEgSkFQQU4KKwkJCQlKQVBBTgorCiswOC0wMC03NSAgIChoZXgpCQlEQU5TSyBEQVRBIEVMRUNUUk9OSUsKKzA4MDA3NSAgICAgKGJhc2UgMTYpCQlEQU5TSyBEQVRBIEVMRUNUUk9OSUsKKwkJCQlIRVJMRVYgSE9WRURHQURFIDE5OQorCQkJCURLIDI3MzAgSEVSTEVWCisJCQkJREVOTUFSSworCQkJCURFTk1BUksKKworMDgtMDAtNzYgICAoaGV4KQkJUEMgTEFOIFRFQ0hOT0xPR0lFUworMDgwMDc2ICAgICAoYmFzZSAxNikJCVBDIExBTiBURUNITk9MT0dJRVMKKwkJCQk1NzgwIExJTkNPTE4gRFJJVkUgU1VJVEUgMTA2CisJCQkJTUlOTkVBUE9MSVMgTU4gNTU0MzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTc3ICAgKGhleCkJCVRTTCBDT01NVU5JQ0FUSU9OUyBMVEQuCiswODAwNzcgICAgIChiYXNlIDE2KQkJVFNMIENPTU1VTklDQVRJT05TIExURC4KKwkJCQlUSEUgTEFORFNCVVJZIEVTVEFURQorCQkJCUxPV0VSIEdVSUxERk9SRCBST0FEIEtOQVBISUwgV09LSU5HIFNVUlIKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDgtMDAtNzggICAoaGV4KQkJQUNDRUxMIENPUlBPUkFUSU9OCiswODAwNzggICAgIChiYXNlIDE2KQkJQUNDRUxMIENPUlBPUkFUSU9OCisJCQkJNTAgU0FHSU5BVyBEUklWRQorCQkJCVJPQ0hFU1RFUiBOWSAxNDYyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNzkgICAoaGV4KQkJVEhFIERST0lEIFdPUktTCiswODAwNzkgICAgIChiYXNlIDE2KQkJVEhFIERST0lEIFdPUktTCisJCQkJUC5PLiBCT1ggQ1MgODE4MAorCQkJCVNBTiBSQUZBRUwgQ0EgOTQ5MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTdBICAgKGhleCkJCUlOREFUQQorMDgwMDdBICAgICAoYmFzZSAxNikJCUlOREFUQQorCQkJCUdKRVJEUlVNUyBWRUkgMTIgQworCQkJCU4tMDQ4NiBPU0xPIDQKKwkJCQlOT1JXQVkKKwkJCQlOT1JXQVkKKworMDgtMDAtN0IgICAoaGV4KQkJU0FOWU8gRUxFQ1RSSUMgQ08uIExURC4KKzA4MDA3QiAgICAgKGJhc2UgMTYpCQlTQU5ZTyBFTEVDVFJJQyBDTy4gTFRELgorCQkJCTEtMTgtMTMgSEFTSElSSURBTkkKKwkJCQlISVJBS0FUQS1TSEkKKwkJCQlPU0FLQSA1NzMgSkFQQU4KKwkJCQlKQVBBTgorCiswOC0wMC03QyAgIChoZXgpCQlWSVRBTElOSyBDT01NVU5JQ0FUSU9OUyBDT1JQLgorMDgwMDdDICAgICAoYmFzZSAxNikJCVZJVEFMSU5LIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJNDg3NjEgS0FUTyBST0FECisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtN0UgICAoaGV4KQkJQU1BTEdBTUFURUQgV0lSRUxFU1MoQVVTKSBMVEQKKzA4MDA3RSAgICAgKGJhc2UgMTYpCQlBTUFMR0FNQVRFRCBXSVJFTEVTUyhBVVMpIExURAorCQkJCU5PUlRIIFJZREUgRElWSVNJT04KKwkJCQlQLk8uIEJPWCA5NiBOT1JUSCBSWURFIE5TVworCQkJCUFVU1RSQUxJQSAyMTEzCisJCQkJQVVTVFJBTElBCisKKzA4LTAwLTdGICAgKGhleCkJCUNBUk5FR0lFLU1FTExPTiBVTklWRVJTSVRZCiswODAwN0YgICAgIChiYXNlIDE2KQkJQ0FSTkVHSUUtTUVMTE9OIFVOSVZFUlNJVFkKKwkJCQlJTkZPUk1BVElPTiBURUNITk9MT0dZCisJCQkJU0NIRU5MRVkgUEFSSworCQkJCVBJVFRTQlVSR0UgUEEgMTUyMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTgwICAgKGhleCkJCUFFUyBEQVRBIElOQy4KKzA4MDA4MCAgICAgKGJhc2UgMTYpCQlBRVMgREFUQSBJTkMuCisJCQkJMTkwMCBNSU5ORVNPVEEgQ09VUlQKKwkJCQlNSVNTSVNBVUdBIE9OVEFSSU8KKwkJCQlDQU5BREEgTDVOIEw1TiAzQzkKKwkJCQlDQU5BREEKKworMDgtMDAtODEgICAoaGV4KQkJLEFTVEVDSCBJTkMuCiswODAwODEgICAgIChiYXNlIDE2KQkJLEFTVEVDSCBJTkMuCisJCQkJNjcwIE5PUlRIIENPTU1FUkNJQUwgU1RSRUVUCisJCQkJTUFOQ0hFU1RFUiBOSCAwMzEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtODIgICAoaGV4KQkJVkVSSVRBUyBTT0ZUV0FSRQorMDgwMDgyICAgICAoYmFzZSAxNikJCVZFUklUQVMgU09GVFdBUkUKKwkJCQk0ODAwIEdSRUFUIEFNRVJJQ0EgUEFSS1dBWQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC04MyAgIChoZXgpCQlTZWlrbyBJbnN0cnVtZW50cyBJbmMuCiswODAwODMgICAgIChiYXNlIDE2KQkJU2Vpa28gSW5zdHJ1bWVudHMgSW5jLgorCQkJCTgsIE5ha2FzZSAxLWNob21lIE1paGFtYS1rdQorCQkJCUNoaWJhLXNoaSBDaGliYSAyNjEtODUwNworCQkJCUpBUEFOCisKKzA4LTAwLTg0ICAgKGhleCkJCVRPTUVOIEVMRUNUUk9OSUNTIENPUlAuCiswODAwODQgICAgIChiYXNlIDE2KQkJVE9NRU4gRUxFQ1RST05JQ1MgQ09SUC4KKwkJCQkxLTEgVUNISVNBSVdBSS1DSE8gMkNIT01FCisJCQkJQ0hJWU9EQS1LVSBUT0tZTyAxMDAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzA4LTAwLTg1ICAgKGhleCkJCUVMWFNJCiswODAwODUgICAgIChiYXNlIDE2KQkJRUxYU0kKKwkJCQkyMzM0IExVTkRZIFBMQUNFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTg2ICAgKGhleCkJCUtPTklDQSBNSU5PTFRBIEhPTERJTkdTLCBJTkMuCiswODAwODYgICAgIChiYXNlIDE2KQkJS09OSUNBIE1JTk9MVEEgSE9MRElOR1MsIElOQy4KKwkJCQkxLTYtMSwgTWFydW5vdWNoaSwKKwkJCQlDaGl5b2RhLWt1CisJCQkJVG9reW8gIDEwMC0wMDA1CisJCQkJSkFQQU4KKworMDgtMDAtODcgICAoaGV4KQkJWFlQTEVYCiswODAwODcgICAgIChiYXNlIDE2KQkJWFlQTEVYCisJCQkJMjk1IEZPU1RFUiBTVFJFRVQKKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTg4ICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorMDgwMDg4ICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorCQkJCTE3NDUgVGVjaG5vbG9neSBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtODkgICAoaGV4KQkJS0lORVRJQ1MKKzA4MDA4OSAgICAgKGJhc2UgMTYpCQlLSU5FVElDUworCQkJCTMxODIgT0xEIFRVTk5FTCBST0FECisJCQkJU1VJVEUgSAorCQkJCUxBRkFZRVRURSBDQSA5NDU0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtOEEgICAoaGV4KQkJUEVSRk9STUFOQ0UgVEVDSE5PTE9HWQorMDgwMDhBICAgICAoYmFzZSAxNikJCVBFUkZPUk1BTkNFIFRFQ0hOT0xPR1kKKwkJCQk4MDEgTElOQ09MTiBDRU5URVIKKwkJCQk3ODAwIDFIMTAgV0VTVAorCQkJCVNBTiBBTlRPTklPIFRYIDc4MjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC04QiAgIChoZXgpCQlQWVJBTUlEIFRFQ0hOT0xPR1kgQ09SUC4KKzA4MDA4QiAgICAgKGJhc2UgMTYpCQlQWVJBTUlEIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkxMjk1IENIQVJMRVNUT04gUk9BRAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLThDICAgKGhleCkJCU5FVFdPUksgUkVTRUFSQ0ggQ09SUE9SQVRJT04KKzA4MDA4QyAgICAgKGJhc2UgMTYpCQlORVRXT1JLIFJFU0VBUkNIIENPUlBPUkFUSU9OCisJCQkJMjM4MCBOLiBST1NFIEFWRU5VRQorCQkJCU9YTkFSRCBDQSA5MzAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtOEQgICAoaGV4KQkJWFlWSVNJT04gSU5DLgorMDgwMDhEICAgICAoYmFzZSAxNikJCVhZVklTSU9OIElOQy4KKwkJCQkxMDEgRURHRVdBVEVSIERSSVZFCisJCQkJV0FLRUZJRUxEIE1BIDAxODgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC04RSAgIChoZXgpCQlUQU5ERU0gQ09NUFVURVJTCiswODAwOEUgICAgIChiYXNlIDE2KQkJVEFOREVNIENPTVBVVEVSUworCQkJCTE0MzIxIFRBTkRFTSBCTFZELgorCQkJCUFVU1RJTiBUWCA3ODcyOC02NjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC04RiAgIChoZXgpCQlDSElQQ09NIENPUlBPUkFUSU9OCiswODAwOEYgICAgIChiYXNlIDE2KQkJQ0hJUENPTSBDT1JQT1JBVElPTgorCQkJCVNPVVRIQk9ST1VHSCBPRkZJQ0UKKwkJCQkxMTggVFVSTlBJS0UgUk9BRAorCQkJCVNPVVRIQk9ST1VHSCBNQSAwMTc3Mi0xODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC05MCAgIChoZXgpCQlTT05PTUEgU1lTVEVNUworMDgwMDkwICAgICAoYmFzZSAxNikJCVNPTk9NQSBTWVNURU1TCisJCQkJNDY0MCBBRE1JUkFMVFkgV0FZLCAgU1RFLiAjNjAwCisJCQkJTUFSSU5BIERFTCBSRVkgQ0EgOTAyOTItNjY5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMTEtOTYgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswODExOTYgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswOC0xNC00MyAgIChoZXgpCQlVTklCUkFJTiBTLkEuCiswODE0NDMgICAgIChiYXNlIDE2KQkJVU5JQlJBSU4gUy5BLgorCQkJCTg0LCBFVEhOSUtJUyBBTlRJU1RBU0VPUworCQkJCTE1MjMxIEFUSEVOUworCQkJCUdSRUVDRQorCQkJCUdSRUVDRQorCiswOC0xNi01MSAgIChoZXgpCQlTaGVuemhlbiBTZWEgU3RhciBUZWNobm9sb2d5IENvLixMdGQKKzA4MTY1MSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBTZWEgU3RhciBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlTZWFzdGFyIGluZHVzdHJpYWwgUGFyaywgQmFvTG9uZyAgNnRoIEF2ZQorCQkJCUJhb0xvbmcgaW5kdXN0cmlhbCBDaXR5LCBMb25nR2FuZyAgRGlzdHJpY3QsIFNoZW56aGVuIEd1YW5nRG9uZyBQLlIuQworCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMTYKKwkJCQlDSElOQQorCiswOC0xNy0zNSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswODE3MzUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0xNy1GNCAgIChoZXgpCQlJQk0gQ29ycAorMDgxN0Y0ICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMjA1MSBNaXNzaW9uIENvbGxlZ2UgQmx2ZAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0xOC0xQSAgIChoZXgpCQl6dGUgY29ycG9yYXRpb24KKzA4MTgxQSAgICAgKGJhc2UgMTYpCQl6dGUgY29ycG9yYXRpb24KKwkJCQkxMi9GLixaVEUgUiZEIEJ1aWxkaW5nLGtlamkgbmFuIFJvYWQgCisJCQkJU2hlbnpoZW4gZ3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzA4LTE4LTRDICAgKGhleCkJCUEuIFMuIFRob21hcywgSW5jLgorMDgxODRDICAgICAoYmFzZSAxNikJCUEuIFMuIFRob21hcywgSW5jLgorCQkJCTM1NSBQcm92aWRlbmNlIEh3eQorCQkJCVdlc3R3b29kIE1BIDAyMDkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0xOS1BNiAgIChoZXgpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKzA4MTlBNiAgICAgKGJhc2UgMTYpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKwkJCQlCMS03LEh1YXdlaSBJbmR1c3RyaWFsIEJhc2UsQmFudGlhbixMb25nZ2FuZworCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCiswOC0xRi1GMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswODFGRjMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0yQS1EMCAgIChoZXgpCQlTUkQgSW5ub3ZhdGlvbnMgSW5jLgorMDgyQUQwICAgICAoYmFzZSAxNikJCVNSRCBJbm5vdmF0aW9ucyBJbmMuCisJCQkJMTE1MjUgVmFsbGV5IFJpZGdlIERyLiBOVworCQkJCUNhbGdhcnkgQUIgVDNCIDVUNAorCQkJCUNBTkFEQQorCiswOC0zOC1BNSAgIChoZXgpCQlGdW5rd2VyayBwbGV0dGFjIGVsZWN0cm9uaWMgR21iSAorMDgzOEE1ICAgICAoYmFzZSAxNikJCUZ1bmt3ZXJrIHBsZXR0YWMgZWxlY3Ryb25pYyBHbWJICisJCQkJV3VlcnpidXJnZXIgU3RyLiAxNTAKKwkJCQlGdWVydGggQmF2YXJpYSA5MDc2NgorCQkJCUdFUk1BTlkKKworMDgtNEUtMUMgICAoaGV4KQkJSDJBIFN5c3RlbXMsIExMQworMDg0RTFDICAgICAoYmFzZSAxNikJCUgyQSBTeXN0ZW1zLCBMTEMKKwkJCQk3NTQ1IElydmluZSBDZW50ZXIgRHJpdmUKKwkJCQlTdWl0ZSAyMDAKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTRFLUJGICAgKGhleCkJCUJyb2FkIE5ldCBNdXggQ29ycG9yYXRpb24KKzA4NEVCRiAgICAgKGJhc2UgMTYpCQlCcm9hZCBOZXQgTXV4IENvcnBvcmF0aW9uCisJCQkJNC0xLTggS291bmFuIE1pbmF0by1rdQorCQkJCVRva3lvICAxMDgtMDA3NQorCQkJCUpBUEFOCisKKzA4LTUxLTJFICAgKGhleCkJCU9yaW9uIERpYWdub3N0aWNhIE95CiswODUxMkUgICAgIChiYXNlIDE2KQkJT3Jpb24gRGlhZ25vc3RpY2EgT3kKKwkJCQlLb2l2dS1NYW5ra2FhbiB0aWUgNgorCQkJCUVzcG9vICAwMjEwMAorCQkJCUZJTkxBTkQKKworMDgtNzYtMTggICAoaGV4KQkJVmlFIFRlY2hub2xvZ2llcyBTZG4uIEJoZC4KKzA4NzYxOCAgICAgKGJhc2UgMTYpCQlWaUUgVGVjaG5vbG9naWVzIFNkbi4gQmhkLgorCQkJCW5vLiA4NS1BLCBMaW50YW5nIEJheWFuIExlcGFzIDExLAorCQkJCVBoYXNlIDQKKwkJCQlCYXlhbiBMZXBhcyBQZW5hbmcgMTE5MDAKKwkJCQlNQUxBWVNJQQorCiswOC03Ni05NSAgIChoZXgpCQlBdXRvIEluZHVzdHJpYWwgQ28uLCBMdGQuCiswODc2OTUgICAgIChiYXNlIDE2KQkJQXV0byBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0Rmxvb3IsICMyMzUgSGFuc2hpbiBJVCBUb3dlciwgCisJCQkJR3Vyby1kb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi03NjgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDgtNzYtRkYgICAoaGV4KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKzA4NzZGRiAgICAgKGJhc2UgMTYpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorCQkJCVByaW5zIEJvdWRld2lqbmxhYW4gNDcKKwkJCQlFZGVnZW0gICAyNjUwCisJCQkJQkVMR0lVTQorCiswOC04Ni0zQiAgIChoZXgpCQlCZWxraW4gSW50ZXJuYXRpb25hbAorMDg4NjNCICAgICAoYmFzZSAxNikJCUJlbGtpbiBJbnRlcm5hdGlvbmFsCisJCQkJMTIwNDUgRWFzdCBXYXRlcmZyb250IERyaXZlCisJCQkJUGxheWEgVmlzdGEgQ0EgOTAwOTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LThELUM4ICAgKGhleCkJCVJ5b3dhIEVsZWN0cm9uaWNzIENvLixMdGQKKzA4OERDOCAgICAgKGJhc2UgMTYpCQlSeW93YSBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJMTQ4My0xIFRha2FoYXJhLW1hY2hpCisJCQkJWWFtYWdhdGEtc2hpIFlhbWFnYXRhLXByZWYuIDk5MDAwMDIKKwkJCQlKQVBBTgorCiswOC05Ri05NyAgIChoZXgpCQlMRVJPWSBBVVRPTUFUSU9OCiswODlGOTcgICAgIChiYXNlIDE2KQkJTEVST1kgQVVUT01BVElPTgorCQkJCTM1LCBCb3VsZXZhcmQgZHUgTGlicmUgRWNoYW5nZQorCQkJCVNhaW50IE9yZW5zIGRlIEdhbWV2aWxsZSAgMzE2NTAKKwkJCQlGUkFOQ0UKKworMDgtQUMtQTUgICAoaGV4KQkJQmVudSBWaWRlbywgSW5jLgorMDhBQ0E1ICAgICAoYmFzZSAxNikJCUJlbnUgVmlkZW8sIEluYy4KKwkJCQkzMDAgQ29uY29yZCBSZC4sIFN1aXRlICMxMTAKKwkJCQlCaWxsZXJpY2EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LUI3LUVDICAgKGhleCkJCVdpcmVsZXNzIFNlaXNtaWMKKzA4QjdFQyAgICAgKGJhc2UgMTYpCQlXaXJlbGVzcyBTZWlzbWljCisJCQkJMTMxMDAgU1cgRnJlZXdheQorCQkJCVN1aXRlIDE1MAorCQkJCVN1Z2FyIExhbmQgVFggNzc0NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LUJCLUNDICAgKGhleCkJCUFLLU5PUkQgRURWIFZFUlRSSUVCU0dFUy4gbWJICiswOEJCQ0MgICAgIChiYXNlIDE2KQkJQUstTk9SRCBFRFYgVkVSVFJJRUJTR0VTLiBtYkgKKwkJCQlGUklFRFJJQ0hTVFJBU1NFIDEwCisJCQkJMjU0MzYgVE9STkVTQ0ggIAorCQkJCUdFUk1BTlkKKworMDgtRDItOUEgICAoaGV4KQkJUHJvZm9ybWF0aXF1ZQorMDhEMjlBICAgICAoYmFzZSAxNikJCVByb2Zvcm1hdGlxdWUKKwkJCQkxMCBiaXMgcnVlIEx1Y2llbiBWb2lsaW4KKwkJCQlQdXRlYXV4ICA5MjgwMAorCQkJCUZSQU5DRQorCiswOC1ENS1DMCAgIChoZXgpCQlTZWVycyBUZWNobm9sb2d5IENvLiwgTHRkCiswOEQ1QzAgICAgIChiYXNlIDE2KQkJU2VlcnMgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCTEyMTAgVGVjaGNlbnRlciwgU0tuVGVjaG5vcGFyaywgMTkwLTEKKwkJCQlTYW5nZGFld29uZC1kb25nLCBKdW5nd29uLWd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8gNDYyLTcyMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswOC1FNi03MiAgIChoZXgpCQlKRUJTRUUgRUxFQ1RST05JQ1MgQ08uLExURC4KKzA4RTY3MiAgICAgKGJhc2UgMTYpCQlKRUJTRUUgRUxFQ1RST05JQ1MgQ08uLExURC4KKwkJCQkyNC0zLCBTSU4gTEUgUk9BRCwgCisJCQkJVEFJTkFOICA3MDI2OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDgtRjItRjQgICAoaGV4KQkJTmV0IE9uZSBQYXJ0bmVycyBDby4sTHRkLgorMDhGMkY0ICAgICAoYmFzZSAxNikJCU5ldCBPbmUgUGFydG5lcnMgQ28uLEx0ZC4KKwkJCQkyLTggSGlnYXNoaSBTaGluYWdhd2EgMi1jaG9tZSwKKwkJCQlTaGluYWdhd2Eta3UsCisJCQkJVG9reW8gIDE0MDAwMDIKKwkJCQlKQVBBTgorCiswOC1GNi1GOCAgIChoZXgpCQlHRVQgRW5naW5lZXJpbmcKKzA4RjZGOCAgICAgKGJhc2UgMTYpCQlHRVQgRW5naW5lZXJpbmcKKwkJCQk5MzUwIEJvbmQgQXZlCisJCQkJRWwgQ2Fqb24gQ0EgOTIwMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LUZBLUUwICAgKGhleCkJCUZvaGhuIEF1ZGlvIEFHCiswOEZBRTAgICAgIChiYXNlIDE2KQkJRm9oaG4gQXVkaW8gQUcKKwkJCQlIb2hlcyBHZXN0YWRlIDMtNworCQkJCU51ZXJ0aW5nZW4gQlcgNzI2MjIKKwkJCQlHRVJNQU5ZCisKKzBDLTE1LUM1ICAgKGhleCkJCVNEVEVDIENvLiwgTHRkLgorMEMxNUM1ICAgICAoYmFzZSAxNikJCVNEVEVDIENvLiwgTHRkLgorCQkJCTE2NywgQ2h1cnllLTJEb25nLCBTYXNhbmctR3UsCisJCQkJQnVzYW4gICA2MTctNzE2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzBDLTE3LUYxICAgKGhleCkJCVRFTEVDU1lTCiswQzE3RjEgICAgIChiYXNlIDE2KQkJVEVMRUNTWVMKKwkJCQkzMSBjaGVtaW4gZHUgZmllZiBhdXggcHJldHJlcworCQkJCUwnT1JCUklFICA4NTIwMAorCQkJCUZSQU5DRQorCiswQy0xRC1DMiAgIChoZXgpCQlTZUFIIE5ldHdvcmtzCiswQzFEQzIgICAgIChiYXNlIDE2KQkJU2VBSCBOZXR3b3JrcworCQkJCTlGLCBJVCBWZW50dXJlIFRvd2VyIEVhc3QgV2luZyA3OCBHYXJhay1Eb25nLAorCQkJCVNlb3VsIFNvbmdwYS1ndSAxMzgtOTUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzBDLTI3LTU1ICAgKGhleCkJCVZhbHVhYmxlIFRlY2hvbG9naWVzIExpbWl0ZWQKKzBDMjc1NSAgICAgKGJhc2UgMTYpCQlWYWx1YWJsZSBUZWNob2xvZ2llcyBMaW1pdGVkCisJCQkJNjAyLCBDZW50cmUgUG9pbnQsIEouQi5OYWdhciwKKwkJCQlBbmRoZXJpLUt1cmxhIFJvYWQsIEFuZGhlcmkgKEUpCisJCQkJTXVtYmFpIE1haGFyYXNodHJhIDQwMDA1OQorCQkJCUlORElBCisKKzBDLTM3LURDICAgKGhleCkJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKzBDMzdEQyAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswQy0zOS01NiAgIChoZXgpCQlPYnNlcnZhdG9yIGluc3RydW1lbnRzCiswQzM5NTYgICAgIChiYXNlIDE2KQkJT2JzZXJ2YXRvciBpbnN0cnVtZW50cworCQkJCVJpZXRkZWtrZXJzdHJhYXQgNgorCQkJCVJpZGRlcmtlcmsgWnVpZCBIb2xsYW5kIDI5ODQgQk0KKwkJCQlORVRIRVJMQU5EUworCiswQy0zQy02NSAgIChoZXgpCQlEb21lIEltYWdpbmcgSW5jCiswQzNDNjUgICAgIChiYXNlIDE2KQkJRG9tZSBJbWFnaW5nIEluYworCQkJCTQwMCBGaWZ0aCBBdiAKKwkJCQlTdWl0ZSA1MDAKKwkJCQlXYWx0aGFtIE1BIDAyNDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswQy00Ni05RCAgIChoZXgpCQlNUyBTZWRjbworMEM0NjlEICAgICAoYmFzZSAxNikJCU1TIFNlZGNvCisJCQkJODcwMSBDYXN0bGUgUGFyayBEcml2ZQorCQkJCUluZGlhbmFwb2xpcyAgNDYyNTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzBDLTUxLUY3ICAgKGhleCkJCUNIQVVWSU4gQVJOT1VYCiswQzUxRjcgICAgIChiYXNlIDE2KQkJQ0hBVVZJTiBBUk5PVVgKKwkJCQlMQSBRVUVVRSBERVZFRQorCQkJCVJFVVggIDE0MTMwCisJCQkJRlJBTkNFCisKKzBDLTYwLTc2ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzBDNjA3NiAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZQorCQkJCVNoYW5naGFpICAyMDE2MTMKKwkJCQlDSElOQQorCiswQy02RS00RiAgIChoZXgpCQlQcmltZVZPTFQgQ28uLCBMdGQuCiswQzZFNEYgICAgIChiYXNlIDE2KQkJUHJpbWVWT0xUIENvLiwgTHRkLgorCQkJCTJGLTMsIE5vLiA5LCBMYW5lIDMsIEppaHUgUmQsIE5laWh1CisJCQkJVGFpcGVpICAxMTQ5MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMEMtNzQtQzIgICAoaGV4KQkJQXBwbGUgSW5jCiswQzc0QzIgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswQy03RC03QyAgIChoZXgpCQlLZXhpYW5nIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28sIEx0ZC4KKzBDN0Q3QyAgICAgKGJhc2UgMTYpCQlLZXhpYW5nIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28sIEx0ZC4KKwkJCQlSb29tIDE1MDIsIExvbmd4aSBIb3RlbCBOby4zNzg4IEppYW5nbmFuIEF2ZW51ZS4gCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDUzCisJCQkJQ0hJTkEKKworMEMtODEtMTIgICAoaGV4KQkJUFJJVkFURQorMEM4MTEyICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswQy04Mi0zMCAgIChoZXgpCQlTSEVOWkhFTiBNQUdOVVMgVEVDSE5PTE9HSUVTIENPLixMVEQKKzBDODIzMCAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBNQUdOVVMgVEVDSE5PTE9HSUVTIENPLixMVEQKKwkJCQljLTUwNCxTa3l3b3J0aCBCdWlsZGluZyxOby44IFJvYWQsSGlnaC10ZWNoIHNvdXRoLE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzBDLTgyLTZBICAgKGhleCkJCVd1aGFuIEh1YWdvbmcgR2VudWluZSBPcHRpY3MgVGVjaG5vbG9neSBDby4sIEx0ZAorMEM4MjZBICAgICAoYmFzZSAxNikJCVd1aGFuIEh1YWdvbmcgR2VudWluZSBPcHRpY3MgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCVNjaWVuY2UgJiBUZWNobm9sb2d5IFJlZ2lvbiBvZiBIVVNULCBEb25naHUgSGlnaC1UZWNoIFpvbmUgCisJCQkJV3VoYW4gSHViZWkgNDMwMjIzCisJCQkJQ0hJTkEKKworMEMtODQtMTEgICAoaGV4KQkJQS5PLiBTbWl0aCBXYXRlciBQcm9kdWN0cworMEM4NDExICAgICAoYmFzZSAxNikJCUEuTy4gU21pdGggV2F0ZXIgUHJvZHVjdHMKKwkJCQkyNTU4OSBId3kgMQorCQkJCU1jQmVlIFNDIDI5MTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswQy04RC05OCAgIChoZXgpCQlUT1AgRUlHSFQgSU5EIENPUlAKKzBDOEQ5OCAgICAgKGJhc2UgMTYpCQlUT1AgRUlHSFQgSU5EIENPUlAKKwkJCQk4Ri4sTm83OS0xIFpob3V6aSBTdC4sIE5laWh1IERpc3RyaWN0LCBUYWlwZWkgQ2l0eSAgKE5laWh1IFRlY2hub2xvZ3kgUGFyaykKKwkJCQlUYWlwZWkgIDExNDkzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswQy05Mi00RSAgIChoZXgpCQlSaWNlIExha2UgV2VpZ2hpbmcgU3lzdGVtcworMEM5MjRFICAgICAoYmFzZSAxNikJCVJpY2UgTGFrZSBXZWlnaGluZyBTeXN0ZW1zCisJCQkJMjMwIFdlc3QgQ29sZW1hbiBTdAorCQkJCVJpY2UgTGFrZSBXSSA1NDg2OAorCQkJCVVOSVRFRCBTVEFURVMKKworMEMtQTQtMDIgICAoaGV4KQkJQWxjYXRlbCBMdWNlbnQgSVBECiswQ0E0MDIgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBMdWNlbnQgSVBECisJCQkJNjAwIE1hcmNoIERyaXZlCisJCQkJS2FuYXRhIE9udGFyaW8gazJrMmU2CisJCQkJQ0FOQURBCisKKzBDLUE0LTJBICAgKGhleCkJCU9CIFRlbGVjb20gRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLiwgTHRkCiswQ0E0MkEgICAgIChiYXNlIDE2KQkJT0IgVGVsZWNvbSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQkxNy9GLCBKaWFuZ29uZyBCdWlsZGluZworCQkJCU5vLjIwIFdlbnNhbiBSb2FkCisJCQkJSGFuZ3pob3UgWmhlSmlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworMEMtQzMtQTcgICAoaGV4KQkJTWVyaXRlYworMENDM0E3ICAgICAoYmFzZSAxNikJCU1lcml0ZWMKKwkJCQlQLk8uIEJveCA4MDAzCisJCQkJUGFpbmVzdmlsbGUgT2hpbyA0NDA3NworCQkJCVVOSVRFRCBTVEFURVMKKworMEMtQzYtQUMgICAoaGV4KQkJREFHUworMENDNkFDICAgICAoYmFzZSAxNikJCURBR1MKKwkJCQlBY2UgSGlnaCBlbmQgVG93ZXIgN3RoIDE4MDIKKwkJCQlTZW91bCBHZXVtY2hlb24tZ3UgMTUzLTgwMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswQy1DOS1DNiAgIChoZXgpCQlTYW13aW4gSG9uZyBLb25nIExpbWl0ZWQKKzBDQzlDNiAgICAgKGJhc2UgMTYpCQlTYW13aW4gSG9uZyBLb25nIExpbWl0ZWQKKwkJCQlSbSA5MDEtOTAyLCA5L0YsIEZ1dHVyYSBQbGF6YSwKKwkJCQkxMTEtMTEzIEhvdyBNaW5nIFN0cmVldCwgS3d1biBUb25nCisJCQkJSG9uZyBLb25nICAKKwkJCQlDSElOQQorCiswQy1DRC1EMyAgIChoZXgpCQlFQVNUUklWRVIgVEVDSE5PTE9HWSBDTy4sIExURC4KKzBDQ0REMyAgICAgKGJhc2UgMTYpCQlFQVNUUklWRVIgVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQkzMCBKSU5OSVUgWElOQ1VOCisJCQkJR1VBTkNIRU5HIERJU1RSSUNUCisJCQkJRE9OR0dVQU4gR1VBTkdET05HIDUyMzAxMAorCQkJCUNISU5BCisKKzBDLUQyLTkyICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMENEMjkyICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMEMtRDUtMDIgICAoaGV4KQkJV2VzdGVsbAorMENENTAyICAgICAoYmFzZSAxNikJCVdlc3RlbGwKKwkJCQk3NTAgTi4gQ29tbW9ucyBkci4KKwkJCQlBdXJvcmEgSUwgNjA1MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzBDLUQ2LTk2ICAgKGhleCkJCUFtaW1vbiBMdGQKKzBDRDY5NiAgICAgKGJhc2UgMTYpCQlBbWltb24gTHRkCisJCQkJMiBNYXNraXQgc3QKKwkJCQlQTyBCb3ggMTI2MTgKKwkJCQlIZXJ6bGlhICA0NjczMworCQkJCUlTUkFFTAorCiswQy1ENy1DMiAgIChoZXgpCQlBeGl1bSBUZWNobm9sb2dpZXMsIEluYy4KKzBDRDdDMiAgICAgKGJhc2UgMTYpCQlBeGl1bSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk2NjI1IE4uIENhbGxlIEV2YSBNaXJhbmRhCisJCQkJU3RlIEIKKwkJCQlJcndpbmRhbGUgQ0EgOTE3MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzBDLURELUVGICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCiswQ0RERUYgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1OTAKKwkJCQlGSU5MQU5ECisKKzBDLUU3LTA5ICAgKGhleCkJCUZveCBDcnlwdG8gQi5WLgorMENFNzA5ICAgICAoYmFzZSAxNikJCUZveCBDcnlwdG8gQi5WLgorCQkJCVAuTy4gYm94IDYzOAorCQkJCURlbGZ0IFpIIDI2MDAgQVAKKwkJCQlORVRIRVJMQU5EUworCiswQy1FOC0yRiAgIChoZXgpCQlCb25maWdsaW9saSBWZWN0cm9uIEdtYkgKKzBDRTgyRiAgICAgKGJhc2UgMTYpCQlCb25maWdsaW9saSBWZWN0cm9uIEdtYkgKKwkJCQlFdXJvcGFyayBGaWNodGVuaGFpbiBCNgorCQkJCUtyZWZlbGQgTlJXIDQ3ODA3CisJCQkJR0VSTUFOWQorCiswQy1FOS0zNiAgIChoZXgpCQlFTElNT1Mgc3JsCiswQ0U5MzYgICAgIChiYXNlIDE2KQkJRUxJTU9TIHNybAorCQkJCXZpYSBHYWx2YW5pIDUvQworCQkJCVRSSUVTVEUgIDM0MTMzCisJCQkJSVRBTFkKKworMEMtRUUtRTYgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorMENFRUU2ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKKzBDLUVGLTdDICAgKGhleCkJCUFuYUNvbSBJbmMKKzBDRUY3QyAgICAgKGJhc2UgMTYpCQlBbmFDb20gSW5jCisJCQkJMTk5NiBMdW5keSBBdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMEMtRjAtQjQgICAoaGV4KQkJR2xvYmFsc2F0IEludGVybmF0aW9uYWwgVGVjaG5vbG9neSBMdGQKKzBDRjBCNCAgICAgKGJhc2UgMTYpCQlHbG9iYWxzYXQgSW50ZXJuYXRpb25hbCBUZWNobm9sb2d5IEx0ZAorCQkJCTE3dGggZmxvb3IsQ2hpbmEgWW91c2UgQnVpbGRpbmcsTm8uNjAxMyBTaGVubmFuIEF2ZW51ZSxGdXRpYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA0MAorCQkJCUNISU5BCisKKzBDLUYzLUVFICAgKGhleCkJCUVNIE1pY3JvZWxlY3Ryb25pYworMENGM0VFICAgICAoYmFzZSAxNikJCUVNIE1pY3JvZWxlY3Ryb25pYworCQkJCVJ1ZSBkZXMgU29ycyAzCisJCQkJTWFyaW4tRXBhZ2luZXIgTmV1Y2h0ZWwgMjA3NAorCQkJCVNXSVRaRVJMQU5ECisKKzBDLUZDLTgzICAgKGhleCkJCUFpcm9oYSBUZWNobm9sb2d5IENvcnAuLAorMENGQzgzICAgICAoYmFzZSAxNikJCUFpcm9oYSBUZWNobm9sb2d5IENvcnAuLAorCQkJCTVGLCBOby42LTUsIER1c2hpbmcgUm9hZCAsIEhzaW5jaHUgU2NpZW5jZSBQYXJrCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisxMC0wMC0wMCAgIChoZXgpCQlQUklWQVRFCisxMDAwMDAgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzEwLTAwLTVBICAgKGhleCkJCUlCTSBDb3JwCisxMDAwNUEgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLTAwLUU4ICAgKGhleCkJCU5BVElPTkFMIFNFTUlDT05EVUNUT1IKKzEwMDBFOCAgICAgKGJhc2UgMTYpCQlOQVRJT05BTCBTRU1JQ09ORFVDVE9SCisJCQkJMjkwMCBTRU1JQ09ORFVDVE9SIERSSVZFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLTA5LTBDICAgKGhleCkJCUphbm9tZSBTZXdpbmcgTWFjaGluZSBDby4sIEx0ZC4KKzEwMDkwQyAgICAgKGJhc2UgMTYpCQlKYW5vbWUgU2V3aW5nIE1hY2hpbmUgQ28uLCBMdGQuCisJCQkJMTQ2MyBIYXphbWEtTWFjaGkKKwkJCQlIYWNoaW9qaS1TaGkgVG9reW8gMTkzLTA5NDEKKwkJCQlKQVBBTgorCisxMC0wQi1BOSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzEwMEJBOSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzEwLTBDLTI0ICAgKGhleCkJCXBvbWRldmljZXMsIExMQworMTAwQzI0ICAgICAoYmFzZSAxNikJCXBvbWRldmljZXMsIExMQworCQkJCTE3OCBDb2x2YXJkIFBhcmsgRHIKKwkJCQlEdXJoYW0gTkMgMjc3MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLTBELTMyICAgKGhleCkJCUVtYmVkaWFuLCBJbmMuCisxMDBEMzIgICAgIChiYXNlIDE2KQkJRW1iZWRpYW4sIEluYy4KKwkJCQkxMEYuLCA5NSwgTmFuamluZyBFLiBSZC4gU2VjLiA0LCAKKwkJCQlUYWlwZWkgIDEwNTgwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisxMC0wRS0yQiAgIChoZXgpCQlORUMgQ0FTSU8gTW9iaWxlIENvbW11bmljYXRpb25zCisxMDBFMkIgICAgIChiYXNlIDE2KQkJTkVDIENBU0lPIE1vYmlsZSBDb21tdW5pY2F0aW9ucworCQkJCTE3NTMsU2hpbW9udW1hYmUKKwkJCQlOYWthaGFyYS1rdQorCQkJCUthd2FzYWtpLXNoaSBLYW5hZ2F3YSAyMTEtODY2NgorCQkJCUpBUEFOCisKKzEwLTEwLUI2ICAgKGhleCkJCU1jQ2FpbiBJbmMKKzEwMTBCNiAgICAgKGJhc2UgMTYpCQlNY0NhaW4gSW5jCisJCQkJMjM2NSBPYWsgUmlkZ2UgV2F5CisJCQkJVmlzdGEgQ0EgOTIwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLTEyLTEyICAgKGhleCkJCVZpdm8gSW50ZXJuYXRpb25hbCBDb3Jwb3JhdGlvbiBQdHkgTHRkCisxMDEyMTIgICAgIChiYXNlIDE2KQkJVml2byBJbnRlcm5hdGlvbmFsIENvcnBvcmF0aW9uIFB0eSBMdGQKKwkJCQk5LTEzIEJpYmJ5IFN0cmVldCwgCisJCQkJTlNXIENoaXN3aWNrIDIwNDYKKwkJCQlBVVNUUkFMSUEKKworMTAtMTgtOUUgICAoaGV4KQkJRWxtbyBNb3Rpb24gQ29udHJvbAorMTAxODlFICAgICAoYmFzZSAxNikJCUVsbW8gTW90aW9uIENvbnRyb2wKKwkJCQk2NCBHaXNpbiBTdC4KKwkJCQlQZXRhY2ggVGlrdmEgIDQ5MTAzCisJCQkJSVNSQUVMCisKKzEwLTFELUMwICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMTAxREMwICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisxMC0xRi03NCAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzEwMUY3NCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMTAtMkQtOTYgICAoaGV4KQkJTG9veGNpZSBJbmMuCisxMDJEOTYgICAgIChiYXNlIDE2KQkJTG9veGNpZSBJbmMuCisJCQkJMTE5NiBCb3JyZWdhcyBBdmUuCisJCQkJU3VpdGUgMjAwCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCisxMC0yRS1BRiAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMTAyRUFGICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLTM3LTExICAgKGhleCkJCVNpbWxpbmsgQVMKKzEwMzcxMSAgICAgKGJhc2UgMTYpCQlTaW1saW5rIEFTCisJCQkJT3R0byBOaWVsc2VucyBWZWcgMTIKKwkJCQlUcm9uZGhlaW0gIE4tNzAwNAorCQkJCU5PUldBWQorCisxMC00My02OSAgIChoZXgpCQlTb3VuZG1heCBFbGVjdHJvbmljIExpbWl0ZWQgCisxMDQzNjkgICAgIChiYXNlIDE2KQkJU291bmRtYXggRWxlY3Ryb25pYyBMaW1pdGVkIAorCQkJCVJvb20jMTUwNSwgT3JpZW50YWwgcGxhemEsICMxMDcyIEppYW5TaGUgUm9hZAorCQkJCVNIRU5aSEVOICBHdWFuZ2RvbmcgNTE4MDAxCisJCQkJQ0hJTkEKKworMTAtNDQtNUEgICAoaGV4KQkJU2hhYW54aSBIaXRlY2ggRWxlY3Ryb25pYyBDby4sIExURAorMTA0NDVBICAgICAoYmFzZSAxNikJCVNoYWFueGkgSGl0ZWNoIEVsZWN0cm9uaWMgQ28uLCBMVEQKKwkJCQkzNSBUdWFuamllbmFuIFJvZGUsCisJCQkJWGlhbiBTaGFhbnhpIDcxMDA3NQorCQkJCUNISU5BCisKKzEwLTQ1LUJFICAgKGhleCkJCU5vcnBob25pYyBBUworMTA0NUJFICAgICAoYmFzZSAxNikJCU5vcnBob25pYyBBUworCQkJCUZhYnJpa2tnYXRlbiAxMAorCQkJCUJlcmdlbiAgNTA1OQorCQkJCU5PUldBWQorCisxMC00NS1GOCAgIChoZXgpCQlMTlQtQXV0b21hdGlvbiBHbWJICisxMDQ1RjggICAgIChiYXNlIDE2KQkJTE5ULUF1dG9tYXRpb24gR21iSAorCQkJCUhhbnMtUGF1bC1LYXlzc2VyLVN0cmHfZSAxCisJCQkJTGV1dGVuYmFjaC1OZWxsbWVyc2JhY2ggQlcgRC03MTM5NworCQkJCUdFUk1BTlkKKworMTAtNTYtQ0EgICAoaGV4KQkJUGVwbGluayBJbnRlcm5hdGlvbmFsIEx0ZC4KKzEwNTZDQSAgICAgKGJhc2UgMTYpCQlQZXBsaW5rIEludGVybmF0aW9uYWwgTHRkLgorCQkJCTE3L0YsIFBhcmsgQnVpbGRpbmcsCisJCQkJNDc2IENhc3RsZSBQZWFrIFJvYWQsCisJCQkJQ2hldW5nIFNoYSBXYW4gIAorCQkJCUhPTkcgS09ORworCisxMC02Mi1DOSAgIChoZXgpCQlBZGF0aXMgR21iSCAmIENvLiBLRworMTA2MkM5ICAgICAoYmFzZSAxNikJCUFkYXRpcyBHbWJIICYgQ28uIEtHCisJCQkJRm9yY2hoZWltZXIgU3RyLiA2CisJCQkJTu+/vXJuYmVyZyBCYXZhcmlhIDkwNDI1CisJCQkJR0VSTUFOWQorCisxMC02NC1FMiAgIChoZXgpCQlBREZ3ZWIuY29tIHMuci5sLgorMTA2NEUyICAgICAoYmFzZSAxNikJCUFERndlYi5jb20gcy5yLmwuCisJCQkJU3RyYWRhIE51b3ZhLCAxNworCQkJCS4KKwkJCQlNYXJlbm8gZGkgUGlhdmUgVHJldmlzbyAzMTAxMAorCQkJCUlUQUxZCisKKzEwLTY1LUEzICAgKGhleCkJCVBhbmFtYXggSW5jLgorMTA2NUEzICAgICAoYmFzZSAxNikJCVBhbmFtYXggSW5jLgorCQkJCTE2OTAgQ29ycG9yYXRlIENpcmNsZQorCQkJCVBldGFsdW1hIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCisxMC03Ni04QSAgIChoZXgpCQlFb0NlbGwKKzEwNzY4QSAgICAgKGJhc2UgMTYpCQlFb0NlbGwKKwkJCQkxNDkgRmxvb2RsaWdodHNmaWVsZCBTdHJlZXQKKwkJCQlTaWx2ZXJ3YXRlciBOU1cgMjEyOAorCQkJCUFVU1RSQUxJQQorCisxMC03OC1EMiAgIChoZXgpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTSBDTy4sIExURC4KKzEwNzhEMiAgICAgKGJhc2UgMTYpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTSBDTy4sIExURC4KKwkJCQlOTy4gMjM5LCBTZWMuIDIsIFRpIERpbmcgQmx2ZC4KKwkJCQlUYWlwZWkgIDExNDkzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisxMC04My1EMiAgIChoZXgpCQlNaWNyb3NldmVuIFN5c3RlbXMsIExMQworMTA4M0QyICAgICAoYmFzZSAxNikJCU1pY3Jvc2V2ZW4gU3lzdGVtcywgTExDCisJCQkJNDA0IFNvdXRoIExlbW9uIEF2ZS4sICM5CisJCQkJV2FsbnV0IENhbGlmb3JuaWEgOTE3ODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLTg4LTBGICAgKGhleCkJCURBUlVNQSBURUxFQ09NVU5JQ0HH1UVTIEUgSU5GT1JNwVRJQ0EgUy9BCisxMDg4MEYgICAgIChiYXNlIDE2KQkJREFSVU1BIFRFTEVDT01VTklDQcfVRVMgRSBJTkZPUk3BVElDQSBTL0EKKwkJCQlBVkVOSURBIElOREVQRU5ERU5DSUEsIDM1MDAsIExPVEVBTUVOVE8gSU5EVVNUUklBTAorCQkJCVRBVUJBVMkgU8NPIFBBVUxPIDEyMDMyLTAwMAorCQkJCUJSQVpJTAorCisxMC04Qy1DRiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCisxMDhDQ0YgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCisxMC05My1FOSAgIChoZXgpCQlBcHBsZSwgSW5jLgorMTA5M0U5ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCisxMC05QS1ERCAgIChoZXgpCQlBcHBsZSBJbmMKKzEwOUFERCAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTQ1ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLUExLTNCICAgKGhleCkJCUZVSklLVVJBIFJVQkJFUiBMVEQuCisxMEExM0IgICAgIChiYXNlIDE2KQkJRlVKSUtVUkEgUlVCQkVSIExURC4KKwkJCQkxLTg0MCxNaWhhc2hpLE9taXlhCisJCQkJU2FpdGFtYSAgIDMzMC0wODU2CisJCQkJSkFQQU4KKworMTAtQjctRjYgICAoaGV4KQkJUGxhc3RvZm9ybSBJbmR1c3RyaWVzIEx0ZC4KKzEwQjdGNiAgICAgKGJhc2UgMTYpCQlQbGFzdG9mb3JtIEluZHVzdHJpZXMgTHRkLgorCQkJCVVuaXRzIDE1MDZBIC0gMTUxMiwgTWl0YSBDZW50cmUsCisJCQkJNTUyLTU2NiBDYXN0bGUgUGVhayBSb2FkCisJCQkJS3dhaSBDaHVuZyAgCisJCQkJSE9ORyBLT05HCisKKzEwLUJBLUE1ICAgKGhleCkJCUdBTkEgSSZDIENPLiwgTFRECisxMEJBQTUgICAgIChiYXNlIDE2KQkJR0FOQSBJJkMgQ08uLCBMVEQKKwkJCQkxNTQtMTcga3lvdW5nZG9uZyBCL0QgM0Yga2FyYWstZG9uZyBzb25ncGEtZ3UKKwkJCQlTZW91bCBLb3JlYSAxMzgtMTYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzEwLUM1LTg2ICAgKGhleCkJCUJJTyBTT1VORCBMQUIgQ08uLCBMVEQuCisxMEM1ODYgICAgIChiYXNlIDE2KQkJQklPIFNPVU5EIExBQiBDTy4sIExURC4KKwkJCQlTdWl0ZSAzMTEsIDMxMiBTS24gVGVjaG5vIFBhcmsgCisJCQkJQml6IENlbnRlciAxOTAtMSBTYW5nZGFld29uLWRvbmcsIEp1bmd3b24tZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbywgNDYyLTcyMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisxMC1DNy0zRiAgIChoZXgpCQlNaWRhcyBLbGFyayBUZWtuaWsgTHRkCisxMEM3M0YgICAgIChiYXNlIDE2KQkJTWlkYXMgS2xhcmsgVGVrbmlrIEx0ZAorCQkJCUtsYXJrIFRla25payBCdWlsZGluZworCQkJCVdhbHRlciBOYXNoIFJvYWQKKwkJCQlLaWRkZXJtaW5zdGVyIFdvcmNlc3RlcnNoaXJlIERZMTEgN0hKCisJCQkJVU5JVEVEIEtJTkdET00KKworMTAtQ0EtODEgICAoaGV4KQkJUFJFQ0lBCisxMENBODEgICAgIChiYXNlIDE2KQkJUFJFQ0lBCisJCQkJTGUgcnVpc3NvbCBWRVlSQVMKKwkJCQlCUCAxMDYKKwkJCQlQUklWQVMgIDA3MDAxCisJCQkJRlJBTkNFCisKKzEwLUNDLURCICAgKGhleCkJCUFYSU1VTSBQUk9EVUlUUyBFTEVDVFJPTklRVUVTCisxMENDREIgICAgIChiYXNlIDE2KQkJQVhJTVVNIFBST0RVSVRTIEVMRUNUUk9OSVFVRVMKKwkJCQlaSSBERUxUQSBJTkRVU1RSSUUKKwkJCQlCUCA3MSBMQSBWQUxFTlRJTkUKKwkJCQlNQVJTRUlMTEUgQ0VERVggMTEgIDEzMzY4CisJCQkJRlJBTkNFCisKKzEwLUUyLUQ1ICAgKGhleCkJCVFpIEhhcmR3YXJlIEluYy4KKzEwRTJENSAgICAgKGJhc2UgMTYpCQlRaSBIYXJkd2FyZSBJbmMuCisJCQkJNTU1IDRUSCBTVFJFRVQgIzQwMworCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLUUzLUM3ICAgKGhleCkJCVNlb2h3YSBUZWxlY29tCisxMEUzQzcgICAgIChiYXNlIDE2KQkJU2VvaHdhIFRlbGVjb20KKwkJCQk2NzggU2VvaHdhIEJsZGcKKwkJCQlHYXNhbi1Eb25nLCBHdW1jaGVvbi1HdSBTZW91bCAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzEwLUU2LUFFICAgKGhleCkJCVNvdXJjZSBUZWNobm9sb2dpZXMsIExMQworMTBFNkFFICAgICAoYmFzZSAxNikJCVNvdXJjZSBUZWNobm9sb2dpZXMsIExMQworCQkJCTI5MTAgV2hpdGVoYWxsIFBhcmsgRHJpdmUKKwkJCQlDaGFybG90dGUgTkMgMjgyNzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLUU4LUVFICAgKGhleCkJCVBoYXNlU3BhY2UKKzEwRThFRSAgICAgKGJhc2UgMTYpCQlQaGFzZVNwYWNlCisJCQkJMTkzMyBEYXZpcyBTdCBTdWl0ZSAzMTIKKwkJCQlTYW4gTGVhbmRybyBDQSA5NDU3NworCQkJCVVOSVRFRCBTVEFURVMKKworMTEtMDAtQUEgICAoaGV4KQkJUFJJVkFURQorMTEwMEFBICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCisxNC0wNy0wOCAgIChoZXgpCQlQUklWQVRFCisxNDA3MDggICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzE0LTA3LUUwICAgKGhleCkJCUFicmFudGl4IEFHCisxNDA3RTAgICAgIChiYXNlIDE2KQkJQWJyYW50aXggQUcKKwkJCQlGb2VycmxpYnVja3N0cmFzc2UgNjYKKwkJCQladWVyaWNoIFpIIDgwMDUKKwkJCQlTV0lUWkVSTEFORAorCisxNC0xNC00QiAgIChoZXgpCQlGVUpJQU4gU1RBUi1ORVQgQ09NTVVOSUNBVElPTiBDTy4sTFRECisxNDE0NEIgICAgIChiYXNlIDE2KQkJRlVKSUFOIFNUQVItTkVUIENPTU1VTklDQVRJT04gQ08uLExURAorCQkJCTE5LTIyIyBCdWlsZGluZyxTdGFyLW5ldCBTY2llbmNlIFBsYXphLEp1eXVhbnpob3UsIAorCQkJCTYxOCBKaW5zaGFuIFJvYWQKKwkJCQlGVVpIT1UgRlVKSUFOIDM1MDAwMgorCQkJCUNISU5BCisKKzE0LTFCLUJEICAgKGhleCkJCVZvbGV4IEluYy4KKzE0MUJCRCAgICAgKGJhc2UgMTYpCQlWb2xleCBJbmMuCisJCQkJOTE1IFRhdGUgQmx2ZC4gU0UKKwkJCQlTdWl0ZSAxMzAKKwkJCQlIaWNrb3J5IE5DIDI4NjAyCisJCQkJVU5JVEVEIFNUQVRFUworCisxNC0zNS1CMyAgIChoZXgpCQlGdXR1cmUgRGVzaWducywgSW5jLgorMTQzNUIzICAgICAoYmFzZSAxNikJCUZ1dHVyZSBEZXNpZ25zLCBJbmMuCisJCQkJMjcwMiBUcmlhbmEgQmx2ZAorCQkJCUh1bnRzdmlsbGUgQUwgMzU4MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzE0LTNFLTYwICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50CisxNDNFNjAgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQKKwkJCQk2MDAgTWFyY2ggUm9hZAorCQkJCUthbmF0YSBPbnRhcmlvIEsySyAyRTYKKwkJCQlDQU5BREEKKworMTQtNEMtMUEgICAoaGV4KQkJTWF4IENvbW11bmljYXRpb24gR21iSAorMTQ0QzFBICAgICAoYmFzZSAxNikJCU1heCBDb21tdW5pY2F0aW9uIEdtYkgKKwkJCQlTaWVtZW5zc3RyYXNzZSA0NworCQkJCVJlbGxpbmdlbiAgMjU0NjIKKwkJCQlHRVJNQU5ZCisKKzE0LTU0LTEyICAgKGhleCkJCUVudGlzIENvLiwgTHRkLgorMTQ1NDEyICAgICAoYmFzZSAxNikJCUVudGlzIENvLiwgTHRkLgorCQkJCTItMjAtNiwgSGFuYW9rYSBCbGRnLCA2RgorCQkJCU5paG9uYmFzaGkgSGFtYWNobywgQ2h1by1rdQorCQkJCVRva3lvICAxMDMwMDA3CisJCQkJSkFQQU4KKworMTQtNUEtMDUgICAoaGV4KQkJQXBwbGUsIEluYy4KKzE0NUEwNSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMTQtNkUtMEEgICAoaGV4KQkJUFJJVkFURQorMTQ2RTBBICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCisxNC03My03MyAgIChoZXgpCQlUVUJJVEFLIFVFS0FFCisxNDczNzMgICAgIChiYXNlIDE2KQkJVFVCSVRBSyBVRUtBRQorCQkJCUFOSUJBTCBTVC4KKwkJCQlHRUJaRQorCQkJCUtPQ0FFTEkgIDQxNDcwCisJCQkJVFVSS0VZCisKKzE0LTc0LTExICAgKGhleCkJCVJJTQorMTQ3NDExICAgICAoYmFzZSAxNikJCVJJTQorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCisxNC03RC1CMyAgIChoZXgpCQlKT0EgVEVMRUNPTS5DTy4sTFRECisxNDdEQjMgICAgIChiYXNlIDE2KQkJSk9BIFRFTEVDT00uQ08uLExURAorCQkJCTEwMDcsU2ljb3ggdG93ZXIsNTEzLTE0LFNhbmdkYWV3b24tZG9uZyxKdW5nd29uLWd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8gNDYyLTgwNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisxNC1BNi0yQyAgIChoZXgpCQlTLk0uIERlemFjIFMuQS4KKzE0QTYyQyAgICAgKGJhc2UgMTYpCQlTLk0uIERlemFjIFMuQS4KKwkJCQlWaWFsIFNhbnQgam9yZGkgUy9OCisJCQkJUG9sLiBJbmQuIENhbiBNaXRqYW5zCisJCQkJVmlsYWRlY2F2YWxscyBCYXJjZWxvbmEgMDgyMzIKKwkJCQlTUEFJTgorCisxNC1BOC02QiAgIChoZXgpCQlTaGVuWmhlbiBUZWxhY29tIFNjaWVuY2UmVGVjaG5vbG9neSBDby4sIEx0ZAorMTRBODZCICAgICAoYmFzZSAxNikJCVNoZW5aaGVuIFRlbGFjb20gU2NpZW5jZSZUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJQjE3MDEvMTcwNSBQYXZpbGlvbiwgSHVhIFFpYW5nIEJlaSBSRDQwMDIsIEZ1dGlhbiBEaXN0cmljdAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwMjgKKwkJCQlDSElOQQorCisxNC1BOS1FMyAgIChoZXgpCQlNU1QgQ09SUE9SQVRJT04KKzE0QTlFMyAgICAgKGJhc2UgMTYpCQlNU1QgQ09SUE9SQVRJT04KKwkJCQk0dGggRmxvb3IgTGF3Zm9yZCBIb3VzZQorCQkJCUFsYmVydCBQbGFjZQorCQkJCUxvbmRvbiBFbmdsYW5kIE4zIDEgUkwKKwkJCQlVTklURUQgS0lOR0RPTQorCisxNC1CNy0zRCAgIChoZXgpCQlBUkNIRUFOIFRlY2hub2xvZ2llcworMTRCNzNEICAgICAoYmFzZSAxNikJCUFSQ0hFQU4gVGVjaG5vbG9naWVzCisJCQkJMjAgUGxhY2UgUHJheCBQYXJpcworCQkJCU1PTlRBVUJBTiAgODIwMDAKKwkJCQlGUkFOQ0UKKworMTQtQzItMUQgICAoaGV4KQkJU2FidGVjaCBJbmR1c3RyaWVzCisxNEMyMUQgICAgIChiYXNlIDE2KQkJU2FidGVjaCBJbmR1c3RyaWVzCisJCQkJMjMyMzEgTGEgUGFsbWEgQXZlCisJCQkJWW9yYmEgTGluZGEgQ2EgOTI4ODctNDc4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMTQtRDYtNEQgICAoaGV4KQkJRC1MaW5rIEludGVybmF0aW9uYWwKKzE0RDY0RCAgICAgKGJhc2UgMTYpCQlELUxpbmsgSW50ZXJuYXRpb25hbAorCQkJCTEgSU5URVJOQVRJT05BTCBCVVNJTkVTUyBQQVJLCisJCQkJIzAzLTEyLCBUSEUgU1lORVJHWSAKKwkJCQk2MDk5MTcKKwkJCQlTSU5HQVBPUkUKKworMTQtRDctNkUgICAoaGV4KQkJQ09OQ0ggRUxFQ1RST05JQyBDby4sTHRkCisxNEQ3NkUgICAgIChiYXNlIDE2KQkJQ09OQ0ggRUxFQ1RST05JQyBDby4sTHRkCisJCQkJTm8uMyBLZWppIDFzdCBMb2FkLgorCQkJCVRhaW5hbiAgNzA5NTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzE0LURBLUU5ICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorMTREQUU5ICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UsCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzE0LUVCLTMzICAgKGhleCkJCUJTTWVkaWFzb2Z0IENvLiwgTHRkLgorMTRFQjMzICAgICAoYmFzZSAxNikJCUJTTWVkaWFzb2Z0IENvLiwgTHRkLgorCQkJCSM2MDMsIEdhcmRlbiBCbGRnLiwgMTQtMTMsIFlvaWRvLURvbmcsIFlvdW5nZGV1bmdwby1HdQorCQkJCVNlb3VsICAxNTAtODcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzE0LUVFLTlEICAgKGhleCkJCUFpck5hdiBTeXN0ZW1zIExMQworMTRFRTlEICAgICAoYmFzZSAxNikJCUFpck5hdiBTeXN0ZW1zIExMQworCQkJCTQ2NjAgTGEgSm9sbGEgVmlsbGFnZSBEci4gLSBTdWl0ZSA1MDAKKwkJCQlTYW4gRGllZ28gQ2FsaWZvcm5pYSBDQSA5MjEyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMTQtRjAtQzUgICAoaGV4KQkJWHRyZW1pbyBMdGQuCisxNEYwQzUgICAgIChiYXNlIDE2KQkJWHRyZW1pbyBMdGQuCisJCQkJUE9CIDUyNDYKKwkJCQlIZXJ6ZWx5aWEgIDQ2MTUyCisJCQkJSVNSQUVMCisKKzE0LUZFLUFGICAgKGhleCkJCVNBR0lUVEFSIExJTUlURUQKKzE0RkVBRiAgICAgKGJhc2UgMTYpCQlTQUdJVFRBUiBMSU1JVEVECisJCQkJMi0xMDIsIEJMRDM0LCBCQUlXQU5HTU9MSVlVQU4KKwkJCQlYSUJFSVdBTkcsIEhBSURJQU4KKwkJCQlCRUlKSU5HICAxMDAwOTQKKwkJCQlDSElOQQorCisxNC1GRS1CNSAgIChoZXgpCQlEZWxsIEluYworMTRGRUI1ICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUzpSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCisxOC0wMS1FMyAgIChoZXgpCQlFbGVrdHJvYml0IFdpcmVsZXNzIENvbW11bmljYXRpb25zIEx0ZAorMTgwMUUzICAgICAoYmFzZSAxNikJCUVsZWt0cm9iaXQgV2lyZWxlc3MgQ29tbXVuaWNhdGlvbnMgTHRkCisJCQkJVHV0a2lqYW50aWUgOAorCQkJCU91bHUgIDkwNTcwCisJCQkJRklOTEFORAorCisxOC0wMy03MyAgIChoZXgpCQlEZWxsIEluYworMTgwMzczICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUzpSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCisxOC0wNi03NSAgIChoZXgpCQlESUxBWCBJbnRlbGNvbSBHbWJICisxODA2NzUgICAgIChiYXNlIDE2KQkJRElMQVggSW50ZWxjb20gR21iSAorCQkJCUFsdC1Nb2FiaXQgOTZiCisJCQkJQmVybGluICAxMDU1OQorCQkJCUdFUk1BTlkKKworMTgtMEItNTIgICAoaGV4KQkJTmFub3Ryb24gVGVjaG5vbG9naWVzIEdtYkgKKzE4MEI1MiAgICAgKGJhc2UgMTYpCQlOYW5vdHJvbiBUZWNobm9sb2dpZXMgR21iSAorCQkJCUFsdC1Nb2FiaXQgNjAKKwkJCQlCZXJsaW4gIDEwNTU1CisJCQkJR0VSTUFOWQorCisxOC0wQy03NyAgIChoZXgpCQlXZXN0aW5naG91c2UgRWxlY3RyaWMgQ29tcGFueSwgTExDCisxODBDNzcgICAgIChiYXNlIDE2KQkJV2VzdGluZ2hvdXNlIEVsZWN0cmljIENvbXBhbnksIExMQworCQkJCTEwMDAgV2VzdGluZ2hvdXNlIERyaXZlCisJCQkJU3VpdGUgMTUyCisJCQkJQ3JhbmJlcnJ5IFRvd25zaGlwIFBBIDE2MDY2CisJCQkJVU5JVEVEIFNUQVRFUworCisxOC0xNC01NiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorMTgxNDU2ICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgT3UgOTA1OTAKKwkJCQlGSU5MQU5ECisKKzE4LTE3LTE0ICAgKGhleCkJCURBRVdPT0lTCisxODE3MTQgICAgIChiYXNlIDE2KQkJREFFV09PSVMKKwkJCQk3RiBOYW1rd2FuZyBDZW50bGV4IEJsZGcuIDQ0MC00IENoZW9uZ2NoZW9uMi1kb25nIAorCQkJCUluY2hlb24gUHVweWVvbmctZ3UgODIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMTgtMjgtNjEgICAoaGV4KQkJQWlyVGllcyBXaXJlbGVzcyBOZXR3b3JrcworMTgyODYxICAgICAoYmFzZSAxNikJCUFpclRpZXMgV2lyZWxlc3MgTmV0d29ya3MKKwkJCQlH77+9bGJhaGFyIE1haC4gQXZuaSBEaWxsaWdpbCBTb2suIENlbGlrIElzIE1lcmtlemkgTm86NSBNZWNpZGl5ZWtveQorCQkJCUlTVEFOQlVMICAzNDM5NAorCQkJCVRVUktFWQorCisxOC0zQi1EMiAgIChoZXgpCQlCWUQgUHJlY2lzaW9uIE1hbnVmYWN0dXJlIENvbXBhbnkgTHRkLgorMTgzQkQyICAgICAoYmFzZSAxNikJCUJZRCBQcmVjaXNpb24gTWFudWZhY3R1cmUgQ29tcGFueSBMdGQuCisJCQkJTm8zMDAwIExvbmdEb25nIEF2ZW51ZSwgUHVkb25nIERpc3RyaWN0CisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzE4LTNELUEyICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMTgzREEyICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMTgtNDItMkYgICAoaGV4KQkJQWxjYXRlbCBMdWNlbnQKKzE4NDIyRiAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIEx1Y2VudAorCQkJCVZpYSBUcmVudG8sIDMwCisJCQkJVmltZXJjYXRlIE1CIDIwMDU5CisJCQkJSVRBTFkKKworMTgtNEUtOTQgICAoaGV4KQkJTUVTU09BIFRFQ0hOT0xPR0lFUyBJTkMuCisxODRFOTQgICAgIChiYXNlIDE2KQkJTUVTU09BIFRFQ0hOT0xPR0lFUyBJTkMuCisJCQkJMTM2MTEgMTJ0aCBTdC4sIFVuaXQgQgorCQkJCUNoaW5vIENBIDkxNzEwCisJCQkJVU5JVEVEIFNUQVRFUworCisxOC04MC1DRSAgIChoZXgpCQlCYXJiZXJyeSBTb2x1dGlvbnMgTHRkCisxODgwQ0UgICAgIChiYXNlIDE2KQkJQmFyYmVycnkgU29sdXRpb25zIEx0ZAorCQkJCTIvMTMgTmF2aXRpIFBsYWNlCisJCQkJQnJvd25zIEJheQorCQkJCUF1Y2tsYW5kICAwNjMwCisJCQkJTkVXIFpFQUxBTkQKKworMTgtODAtRjUgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQgU2hhbmdoYWkgQmVsbCBDby4sIEx0ZCAKKzE4ODBGNSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudCBTaGFuZ2hhaSBCZWxsIENvLiwgTHRkIAorCQkJCU5vLiAzODksIE5pbmdxaWFvIFJvYWQsIFB1ZG9uZyBKaW5xaWFvLAorCQkJCVNoYW5naGFpICAyMDEyMDYKKwkJCQlDSElOQQorCisxOC04Ni1BQyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMTg4NkFDICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCisxOC04RS1ENSAgIChoZXgpCQlQaGlsaXBzIElubm92YXRpdmUgQXBwbGljYXRpb24gTlYgCisxODhFRDUgICAgIChiYXNlIDE2KQkJUGhpbGlwcyBJbm5vdmF0aXZlIEFwcGxpY2F0aW9uIE5WIAorCQkJCVBhdGhvZWtld2VnIDExCisJCQkJQnJ1Z2VzIFdlc3QgRmxhbmRlcnMgODAwMAorCQkJCUJFTEdJVU0KKworMTgtOTItMkMgICAoaGV4KQkJVmlydHVhbCBJbnN0cnVtZW50cworMTg5MjJDICAgICAoYmFzZSAxNikJCVZpcnR1YWwgSW5zdHJ1bWVudHMKKwkJCQkxMDAgRW50ZXJwcmlzZSBXYXkKKwkJCQlTdWl0ZSBDLTMKKwkJCQlTY290dHMgVmFsbGV5IENBIDk1MDY2CisJCQkJVU5JVEVEIFNUQVRFUworCisxOC1BOS0wNSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzE4QTkwNSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtQUItRjUgICAoaGV4KQkJVWx0cmEgRWxlY3Ryb25pY3MgLSBFbGVjdHJpY3MKKzE4QUJGNSAgICAgKGJhc2UgMTYpCQlVbHRyYSBFbGVjdHJvbmljcyAtIEVsZWN0cmljcworCQkJCUtpbmdzZGl0Y2ggTGFuZQorCQkJCUNoZWx0ZW5oYW0gR2xvdWNlc3RlcnNoaXJlIEdMNTEgOVBHCisJCQkJVU5JVEVEIEtJTkdET00KKworMTgtQUUtQkIgICAoaGV4KQkJU2llbWVucyBQcm9ncmFtbS0gdW5kIFN5c3RlbWVudHdpY2tsdW5nIEdtYkgmQ28uS0cKKzE4QUVCQiAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIFByb2dyYW1tLSB1bmQgU3lzdGVtZW50d2lja2x1bmcgR21iSCZDby5LRworCQkJCUNvbW11bmljYXRpb25zLCBNZWRpYSBhbmQgVGVjaG5vbG9neQorCQkJCUhhcmJ1cmdlciBTY2hsb3Nzc3RyYXNzZSAxOAorCQkJCUhhbWJ1cmcgIEQtMjEwNzkKKwkJCQlHRVJNQU5ZCisKKzE4LUFGLTlGICAgKGhleCkJCURJR0lUUk9OSUMgQXV0b21hdGlvbnNhbmxhZ2VuIEdtYkgKKzE4QUY5RiAgICAgKGJhc2UgMTYpCQlESUdJVFJPTklDIEF1dG9tYXRpb25zYW5sYWdlbiBHbWJICisJCQkJQXVmIGRlciBMYW5nd2llcyAxCisJCQkJV2FsbGJhY2ggSGVzc2VuIDY1NTEwCisJCQkJR0VSTUFOWQorCisxOC1CMi0wOSAgIChoZXgpCQlUb3JyZXkgUGluZXMgTG9naWMsIEluYworMThCMjA5ICAgICAoYmFzZSAxNikJCVRvcnJleSBQaW5lcyBMb2dpYywgSW5jCisJCQkJMTI2NTEgSGlnaCBCbHVmZiBEcml2ZSwgIzEwMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtQjMtQkEgICAoaGV4KQkJTmV0bG9naWMgQUIKKzE4QjNCQSAgICAgKGJhc2UgMTYpCQlOZXRsb2dpYyBBQgorCQkJCURhdGF277+9Z2VuIDE0QQorCQkJCUFTS0lNIFbvv71zdHJhIEfvv710YWxhbmQgNDM2MzIKKwkJCQlTV0VERU4KKworMTgtQjQtMzAgICAoaGV4KQkJTmVzdCBMYWJzIEluYy4KKzE4QjQzMCAgICAgKGJhc2UgMTYpCQlOZXN0IExhYnMgSW5jLgorCQkJCTIzNSBBbG1hIAorCQkJCVBhbG8gQWx0byBDQSA5NDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtQjctOUUgICAoaGV4KQkJSW52b3hpYQorMThCNzlFICAgICAoYmFzZSAxNikJCUludm94aWEKKwkJCQk4NyBydWUgZHUgR291dmVybmV1ciBH77+9bmVyYWwgRWJvde+/vQorCQkJCUlzc3ktTGVzLU1vdWxpbmVhdXggIDkyMTMwCisJCQkJRlJBTkNFCisKKzE4LUMwLTg2ICAgKGhleCkJCUJyb2FkY29tIENvcnBvcmF0aW9uCisxOEMwODYgICAgIChiYXNlIDE2KQkJQnJvYWRjb20gQ29ycG9yYXRpb24KKwkJCQk1MzAwIENhbGlmb3JuaWEgQXZlbnVlCisJCQkJSXJ2aW5lIENBIDkyNjE3CisJCQkJVU5JVEVEIFNUQVRFUworCisxOC1EMC03MSAgIChoZXgpCQlEQVNBTiBTTUMsIEluYy4KKzE4RDA3MSAgICAgKGJhc2UgMTYpCQlEQVNBTiBTTUMsIEluYy4KKwkJCQkzMDksICBCdW5kYW5nIFRlY2hubyBQYXJrLCAxNTEsIFlhdGFwLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzE4LUUyLTg4ICAgKGhleCkJCVNUVCBDb25kaWdpCisxOEUyODggICAgIChiYXNlIDE2KQkJU1RUIENvbmRpZ2kKKwkJCQlBZ25lc2ZyaWRzdmFnZW4gMTEzIEEKKwkJCQlNYWxtbyBTa2FuZSAyMTIzNworCQkJCVNXRURFTgorCisxOC1FNy1GNCAgIChoZXgpCQlBcHBsZQorMThFN0Y0ICAgICAoYmFzZSAxNikJCUFwcGxlCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCisxOC1FRi02MyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCisxOEVGNjMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCisxOC1GNC02QSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisxOEY0NkEgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKKzE4LUY2LTUwICAgKGhleCkJCU11bHRpbWVkaWEgUGFjaWZpYyBMaW1pdGVkCisxOEY2NTAgICAgIChiYXNlIDE2KQkJTXVsdGltZWRpYSBQYWNpZmljIExpbWl0ZWQKKwkJCQkxIE1hdGhlc29uIFN0cmVldCwgU2hlbGwgVG93ZXIgMjlGLzEyCisJCQkJVGltZSBTcXVhcmUsIENhdXNld2F5IEJheQorCQkJCTAwMDAwMAorCQkJCUhPTkcgS09ORworCisxOC1GQy05RiAgIChoZXgpCQlDaGFuZ2hlIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMThGQzlGICAgICAoYmFzZSAxNikJCUNoYW5naGUgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJNnRoIEZsb29yLCBCdWlsZGluZyBCLCBEYWppYWhhbyBTcXVhcmUsIFl177+977+9YW4gMXN0IFJvYWQsIEJhb++/ve+/vWFuLCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTAxCisJCQkJQ0hJTkEKKworMUMtMDYtNTYgICAoaGV4KQkJSURZIENvcnBvcmF0aW9uCisxQzA2NTYgICAgIChiYXNlIDE2KQkJSURZIENvcnBvcmF0aW9uCisJCQkJSURFTUlUU1UgS29yYWt1ZW4gQmxkIDlGCisJCQkJMS0yLTEgS29pc2hpa2F3YQorCQkJCUJ1bmt5by1rdSBUb2t5byAxMTItMDAwMgorCQkJCUpBUEFOCisKKzFDLTBGLUNGICAgKGhleCkJCVN5cHJvIE9wdGljcyBHbWJICisxQzBGQ0YgICAgIChiYXNlIDE2KQkJU3lwcm8gT3B0aWNzIEdtYkgKKwkJCQlDYXJsLVplaXNzLVByb21lbmFkZSAxMAorCQkJCUplbmEgVGh1cmluZ2lhIDA3NzQ1CisJCQkJR0VSTUFOWQorCisxQy0xMi05RCAgIChoZXgpCQlJRUVFIFBFUyBQU1JDL1NVQiAgICAgCisxQzEyOUQgICAgIChiYXNlIDE2KQkJSUVFRSBQRVMgUFNSQy9TVUIgICAgIAorCQkJCSBXb3JraW5nIEdyb3VwIEg3L1N1YiBDNyAoSUVFRSBQQzM3LjIzOCkKKwkJCQk0NDUgSG9lcyBMYW5lCisJCQkJUGlzY2F0YXdheSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMUMtMTQtNDggICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzFDMTQ0OCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzFDLTE3LUQzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzFDMTdEMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzFDLTE4LTRBICAgKGhleCkJCVNoZW5aaGVuIFJpY2hlckxpbmsgVGVjaG5vbG9naWVzIENvLixMVEQKKzFDMTg0QSAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBSaWNoZXJMaW5rIFRlY2hub2xvZ2llcyBDby4sTFRECisJCQkJNzAzLEJ1aWxkaW5nIFcxLUEsSGlnaC1UZWNoIEluZHVzdHJpYWwgUGFyayxLZUppTmFuIDFzdCBSb2FkLE5hblNoYW4sCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA1NworCQkJCUNISU5BCisKKzFDLTE5LURFICAgKGhleCkJCWV5ZXZpcyBHbWJICisxQzE5REUgICAgIChiYXNlIDE2KQkJZXlldmlzIEdtYkgKKwkJCQlIdW5kc3NjaGxlZXN0cmFzc2UgMjMKKwkJCQlSZXV0bGluZ2VuIEJXIDcyNzY2CisJCQkJR0VSTUFOWQorCisxQy0xRC02NyAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisxQzFENjcgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyOQorCQkJCUNISU5BCisKKzFDLTMzLTREICAgKGhleCkJCUlUUyBUZWxlY29tCisxQzMzNEQgICAgIChiYXNlIDE2KQkJSVRTIFRlbGVjb20KKwkJCQkyOSBIYW1ldHp1ZGEgc3QuIAorCQkJCUF6dXIgSXNyYWVsIDU4MDAwMQorCQkJCUlTUkFFTAorCisxQy0zNS1GMSAgIChoZXgpCQlORVcgTGlmdCBOZXVlIEVsZWt0cm9uaXNjaGUgV2VnZSBTdGV1ZXJ1bmdzYmF1IEdtYkgKKzFDMzVGMSAgICAgKGJhc2UgMTYpCQlORVcgTGlmdCBOZXVlIEVsZWt0cm9uaXNjaGUgV2VnZSBTdGV1ZXJ1bmdzYmF1IEdtYkgKKwkJCQlMb2NoaGFtZXIgU2NobGFnIDgKKwkJCQlHcmFlZmVsZmluZyBCYXZhcmlhIDgyMTY2CisJCQkJR0VSTUFOWQorCisxQy0zQS00RiAgIChoZXgpCQlBY2N1U3BlYyBFbGVjdHJvbmljcywgTExDCisxQzNBNEYgICAgIChiYXNlIDE2KQkJQWNjdVNwZWMgRWxlY3Ryb25pY3MsIExMQworCQkJCTgxNDAgSGF3dGhvcm5lIERyaXZlCisJCQkJRXJpZSBQZW5uc3lsdmFuaWEgMTY1MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzFDLTNELUU3ICAgKGhleCkJCVNpZ21hIEtva2kgQ28uLEx0ZC4KKzFDM0RFNyAgICAgKGJhc2UgMTYpCQlTaWdtYSBLb2tpIENvLixMdGQuCisJCQkJMS0xOS05IE1pZG9yaQorCQkJCVN1bWlkYS1rdSBUb2t5byAxMzAtMDAyMQorCQkJCUpBUEFOCisKKzFDLTRCLUQ2ICAgKGhleCkJCUF6dXJlV2F2ZQorMUM0QkQ2ICAgICAoYmFzZSAxNikJCUF6dXJlV2F2ZQorCQkJCThGLiwgTm8uIDk0LCBCYW9zaG9uZyBSZC4KKwkJCQlYaW5kaWFuIENpdHksIFRhaXBlaSBDb3VudHkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMUMtNjUtOUQgICAoaGV4KQkJTGl0ZW9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzFDNjU5RCAgICAgKGJhc2UgMTYpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLDkwLENoaWVuIDEgUm9hZCxDaHVuZ0hvLFRhaXBlaSBIc2llbiwKKwkJCQlUYWlwZWkgIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisxQy02Ri02NSAgIChoZXgpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorMUM2RjY1ICAgICAoYmFzZSAxNikJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCisJCQkJUGluLUplbiBDaXR5LAorCQkJCVBpbi1KZW4gVGFveXVhbiAzMjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzFDLTc1LTA4ICAgKGhleCkJCUNPTVBBTCBJTkZPUk1BVElPTiAoS1VOU0hBTikgQ08uLCBMVEQuIAorMUM3NTA4ICAgICAoYmFzZSAxNikJCUNPTVBBTCBJTkZPUk1BVElPTiAoS1VOU0hBTikgQ08uLCBMVEQuIAorCQkJCU5PLiAyNSwgVEhFIDNSRCBTdHJlZXQgS1VOU0hBTiBFWFBPUlQgUFJPQ0VTU0lORyBaT05FIAorCQkJCUtVTlNIQU4gU1VaSE9VICAyMTUzMDAgCisJCQkJQ0hJTkEKKworMUMtN0MtMTEgICAoaGV4KQkJRUlEIAorMUM3QzExICAgICAoYmFzZSAxNikJCUVJRCAKKwkJCQlSdWEgUXVpbnRhIGRvcyBNZWRyb25oZWlyb3MgCisJCQkJQ2hhcm5lY2EgZGEgQ2FwYXJpY2EgICAyODIwLTQ4NgorCQkJCVBPUlRVR0FMCisKKzFDLTdFLUU1ICAgKGhleCkJCUQtTGluayBJbnRlcm5hdGlvbmFsCisxQzdFRTUgICAgIChiYXNlIDE2KQkJRC1MaW5rIEludGVybmF0aW9uYWwKKwkJCQkxIEludGVybmF0aW9uYWwgQnVzaW5lc3MgUGFyaywgIzAzLTEyLCBUaGUgU3luZXJneSAKKwkJCQk2MDk5MTcKKwkJCQlTSU5HQVBPUkUKKworMUMtODMtQjAgICAoaGV4KQkJTGlua2VkIElQIEdtYkgKKzFDODNCMCAgICAgKGJhc2UgMTYpCQlMaW5rZWQgSVAgR21iSAorCQkJCUtpcmNoZW5zdHJhc3NlIDkKKwkJCQlBbmlmIC8gTmllZGVyYWxtIFNCRyA1MDgxCisJCQkJQVVTVFJJQQorCisxQy04Ri04QSAgIChoZXgpCQlQaGFzZSBNb3Rpb24gQ29udHJvbCBTcEEKKzFDOEY4QSAgICAgKGJhc2UgMTYpCQlQaGFzZSBNb3Rpb24gQ29udHJvbCBTcEEKKwkJCQl2aWEgQWRhbW9saSwgNDYxCisJCQkJR2Vub3ZhICBJVDE2MTQxCisJCQkJSVRBTFkKKworMUMtOTUtNUQgICAoaGV4KQkJSS1MQVggRUxFQ1RST05JQ1MgSU5DLgorMUM5NTVEICAgICAoYmFzZSAxNikJCUktTEFYIEVMRUNUUk9OSUNTIElOQy4KKwkJCQkyMjgzIEFSR0VOVElBIFJELi0gVU5JVCAjIDEwCisJCQkJTUlTU0lTU0FVR0EgT04uIEw1TiA1WjIKKwkJCQlDQU5BREEKKworMUMtQUEtMDcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMUNBQTA3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMUMtQUYtRjcgICAoaGV4KQkJRC1MSU5LIElOVEVSTkFUSU9OQUwgUFRFIExJTUlURUQKKzFDQUZGNyAgICAgKGJhc2UgMTYpCQlELUxJTksgSU5URVJOQVRJT05BTCBQVEUgTElNSVRFRAorCQkJCTEgSU5URVJOQVRJT05BTCAgQlVTSU5FU1MgIFBBUkssCisJCQkJICMwMy0xMiwgVEhFIFNZTkVSR1kKKwkJCQk2MDk5MTcKKwkJCQlTSU5HQVBPUkUKKworMUMtQkQtMEUgICAoaGV4KQkJQW1wbGlmaWVkIEVuZ2luZWVyaW5nIFB0eSBMdGQKKzFDQkQwRSAgICAgKGJhc2UgMTYpCQlBbXBsaWZpZWQgRW5naW5lZXJpbmcgUHR5IEx0ZAorCQkJCTUgVHVybmVyIEF2ZW51ZQorCQkJCUJlbnRsZXkgV0EgNjEwMgorCQkJCUFVU1RSQUxJQQorCisxQy1CRC1COSAgIChoZXgpCQlELUxJTksgSU5URVJOQVRJT05BTCBQVEUgTElNSVRFRAorMUNCREI5ICAgICAoYmFzZSAxNikJCUQtTElOSyBJTlRFUk5BVElPTkFMIFBURSBMSU1JVEVECisJCQkJMSBJTlRFUk5BVElPTkFMICBCVVNJTkVTUyAgUEFSSywgIzAzLTEyCisJCQkJVEhFIFNZTkVSR1ksICA2MDk5MTcKKwkJCQlTSU5HQVBPUkUKKworMUMtQzEtREUgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCisxQ0MxREUgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzFDLURGLTBGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzFDREYwRiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzFDLUUyLUNDICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCisxQ0UyQ0MgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzFDLUYwLTYxICAgKGhleCkJCVNDQVBTIEdtYkgKKzFDRjA2MSAgICAgKGJhc2UgMTYpCQlTQ0FQUyBHbWJICisJCQkJQmFobmhvZnN0ci4gMTcKKwkJCQlEZWlzZW5ob2ZlbiBCYXZhcmlhIDgyMDQxCisJCQkJR0VSTUFOWQorCisxQy1GNS1FNyAgIChoZXgpCQlUdXJ0bGUgSW5kdXN0cnkgQ28uLCBMdGQuCisxQ0Y1RTcgICAgIChiYXNlIDE2KQkJVHVydGxlIEluZHVzdHJ5IENvLiwgTHRkLgorCQkJCTEtMTItNCBOaXNoaW5lbWluYW1pCisJCQkJVHN1dGl1cmEgSWJhcmFraSAzMDAtMDg0MgorCQkJCUpBUEFOCisKKzFDLUZFLUE3ICAgKGhleCkJCUlEZW50eXRlY2ggU29sdXRpbnMgTHRkLgorMUNGRUE3ICAgICAoYmFzZSAxNikJCUlEZW50eXRlY2ggU29sdXRpbnMgTHRkLgorCQkJCTE0IEhhZGF5YSBTdHJlZXQgCisJCQkJUmFtYXQtIEhhc2hhcm9uICA0NzIyNgorCQkJCUlTUkFFTAorCisyMC0wNS1FOCAgIChoZXgpCQlPT08gIkluUHJvTWVkaWEiCisyMDA1RTggICAgIChiYXNlIDE2KQkJT09PICJJblByb01lZGlhIgorCQkJCXByLjQ4MDYsIGQuNgorCQkJCVplbGVub2dyYWQgTW9zY293IDEyNDQ2NgorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCisyMC0wQS01RSAgIChoZXgpCQlYaWFuZ3NoYW4gR2lhbnQgRWFnbGUgVGVjaG5vbG9neSBEZXZlbG9waW5nIGNvLixMVEQKKzIwMEE1RSAgICAgKGJhc2UgMTYpCQlYaWFuZ3NoYW4gR2lhbnQgRWFnbGUgVGVjaG5vbG9neSBEZXZlbG9waW5nIGNvLixMVEQKKwkJCQlKdWV4aSBSb2FkIG5vLjkgSnVleGkgc3RyZWV0IAorCQkJCVhpYW5nc2hhbiBDb3VudHkgWmhlamlhbmcgUHJvdmluY2UKKwkJCQlOaW5nYm8gWmhlamlhbmcgMzE1NzA4CisJCQkJQ0hJTkEKKworMjAtMTItNTcgICAoaGV4KQkJTW9zdCBMdWNreSBUcmFkaW5nIEx0ZAorMjAxMjU3ICAgICAoYmFzZSAxNikJCU1vc3QgTHVja3kgVHJhZGluZyBMdGQKKwkJCQlSb29tNDAzIE5vLjUwNiBaaG9uZ3NoYW4gU291dGggMm5kIFJvYWQsWHVodWkgRGlzdHJpY3QgCisJCQkJU2hhbmdoYWkgIDIwMDAzMgorCQkJCUNISU5BCisKKzIwLTEzLUUwICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMjAxM0UwICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisyMC0yMS1BNSAgIChoZXgpCQlMRyBFbGVjdHJvbmljcyBJbmMKKzIwMjFBNSAgICAgKGJhc2UgMTYpCQlMRyBFbGVjdHJvbmljcyBJbmMKKwkJCQk2MC0zOSxHYXNhbi1kb25nLEd1bWNoZW9uLWd1CisJCQkJU2VvdWwgIDE1My0wMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMjAtMkItQzEgICAoaGV4KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorMjAyQkMxICAgICAoYmFzZSAxNikJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTAxMDgKKwkJCQlDSElOQQorCisyMC0yQy1CNyAgIChoZXgpCQlLb25nIFl1ZSBFbGVjdHJvbmljcyAmIEluZm9ybWF0aW9uIEluZHVzdHJ5IChYaW5odWkpIEx0ZC4KKzIwMkNCNyAgICAgKGJhc2UgMTYpCQlLb25nIFl1ZSBFbGVjdHJvbmljcyAmIEluZm9ybWF0aW9uIEluZHVzdHJ5IChYaW5odWkpIEx0ZC4KKwkJCQlLb25nIFl1ZSBJbmR1c3RyaWFsIFBhcmssIDE4IEtvbmd5dWUgUm9hZCwgSmluZ3V6aG91CisJCQkJWGluaHVpIERpc3RyaWN0LCAKKwkJCQlKaWFuZ21lbiBHdWFuZ2RvbmcgNTI5MTQxCisJCQkJQ0hJTkEKKworMjAtMzctMDYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMjAzNzA2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzIwLTQwLTA1ICAgKGhleCkJCWZlbm8gR21iSAorMjA0MDA1ICAgICAoYmFzZSAxNikJCWZlbm8gR21iSAorCQkJCUtvbHBpbmdyaW5nIDIyCisJCQkJT2JlcmhhY2hpbmcgQmF2YXJpYSA4MjA0MQorCQkJCUdFUk1BTlkKKworMjAtNDEtNUEgICAoaGV4KQkJU21hcnRlaCBkLm8uby4KKzIwNDE1QSAgICAgKGJhc2UgMTYpCQlTbWFydGVoIGQuby5vLgorCQkJCVRyZyB0aWdyb3ZjZXYgMQorCQkJCVRvbG1pbiAgNTIyMAorCQkJCVNMT1ZFTklBCisKKzIwLTQ2LUY5ICAgKGhleCkJCUFkdmFuY2VkIE5ldHdvcmsgRGV2aWNlcyAoZGJhOkFORCkKKzIwNDZGOSAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBOZXR3b3JrIERldmljZXMgKGRiYTpBTkQpCisJCQkJMzgyMCBWZW50dXJhIERyaXZlCisJCQkJQXJsaW5ndG9uIEhlaWdodHMgSUwgNjAwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzIwLTRBLUFBICAgKGhleCkJCUhhbnNjYW4gU3BhaW4gUy5BLgorMjA0QUFBICAgICAoYmFzZSAxNikJCUhhbnNjYW4gU3BhaW4gUy5BLgorCQkJCUF2ZGEuIGRlIGxhIFZlZ2EsIDEKKwkJCQlBbGNvYmVuZGFzIE1hZHJpZCAyODEwOAorCQkJCVNQQUlOCisKKzIwLTRFLTZCICAgKGhleCkJCUF4eGFuYShpc3JhZWwpIGx0ZAorMjA0RTZCICAgICAoYmFzZSAxNikJCUF4eGFuYShpc3JhZWwpIGx0ZAorCQkJCUhhYmFyemVsIDM4CisJCQkJVGVsIGF2aXYgIDY5NzEwCisJCQkJSVNSQUVMCisKKzIwLTRFLTdGICAgKGhleCkJCU5FVEdFQVIKKzIwNEU3RiAgICAgKGJhc2UgMTYpCQlORVRHRUFSCisJCQkJMzUwIEVBU1QgUExVTUVSSUEgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQUxJRk9STklBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCisyMC01OS1BMCAgIChoZXgpCQlQYXJhZ29uIFRlY2hub2xvZ2llcyBJbmMuCisyMDU5QTAgICAgIChiYXNlIDE2KQkJUGFyYWdvbiBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTY4IE5vcnRoIDR0aCBSaW5nIFJkIFdlc3QsCisJCQkJU3VpdGUgMTVCLUgKKwkJCQlCZWlqaW5nICAxMDAwODAKKwkJCQlDSElOQQorCisyMC01Qi0yQSAgIChoZXgpCQlQUklWQVRFCisyMDVCMkEgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzIwLTZBLThBICAgKGhleCkJCVdpc3Ryb24gSW5mb0NvbW0gTWFudWZhY3R1cmluZyhLdW5zaGFuKUNvLixMdGQuCisyMDZBOEEgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBJbmZvQ29tbSBNYW51ZmFjdHVyaW5nKEt1bnNoYW4pQ28uLEx0ZC4KKwkJCQkxNjgjIEZpcnN0IEF2ZW51ZSxLdW5zaGFuIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUKKwkJCQlLdW5zaGFuIEppYW5nc3UgMjE1MzAwCisJCQkJQ0hJTkEKKworMjAtNkEtRkYgICAoaGV4KQkJQXRsYXMgRWxla3Ryb25payBVSyBMaW1pdGVkCisyMDZBRkYgICAgIChiYXNlIDE2KQkJQXRsYXMgRWxla3Ryb25payBVSyBMaW1pdGVkCisJCQkJQTIyIEJ1bGlkaW5nLCBEb3JzZXQgR3JlZW4gVGVjaC4gUGFyaworCQkJCVdpbmZyaXRoIE5ld2J1cmdoCisJCQkJRG9yY2hlc3RlciBEb3JzZXQgRFQyIDhaQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzIwLTZGLUVDICAgKGhleCkJCUJyYWVtYWMgQ0EgTExDCisyMDZGRUMgICAgIChiYXNlIDE2KQkJQnJhZW1hYyBDQSBMTEMKKwkJCQk0MzEzNCBPc2dvb2QgUm9hZAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzIwLTdDLThGICAgKGhleCkJCVF1YW50YSBNaWNyb3N5c3RlbXMsSW5jLgorMjA3QzhGICAgICAoYmFzZSAxNikJCVF1YW50YSBNaWNyb3N5c3RlbXMsSW5jLgorCQkJCU5vLjUgTGFuZSA5MSxEb25nbWVpIFJkLgorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMjAtQTItRTcgICAoaGV4KQkJTGVlLURpY2tlbnMgTHRkCisyMEEyRTcgICAgIChiYXNlIDE2KQkJTGVlLURpY2tlbnMgTHRkCisJCQkJUnVzaHRvbiBSZAorCQkJCURlc2Jvcm91Z2gKKwkJCQlLZXR0ZXJpbmcgTm9ydGhhbXB0b25zaGlyZSBOTjE0IDJRVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzIwLUFBLTI1ICAgKGhleCkJCUlQLU5FVCBMTEMKKzIwQUEyNSAgICAgKGJhc2UgMTYpCQlJUC1ORVQgTExDCisJCQkJMTAyNTYgTi5XLiA0N3RoIFN0LgorCQkJCVN1bnJpc2UgRkwgMzMzNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzIwLUIwLUY3ICAgKGhleCkJCUVuY2x1c3RyYSBHbWJICisyMEIwRjcgICAgIChiYXNlIDE2KQkJRW5jbHVzdHJhIEdtYkgKKwkJCQlUZWNobm9wYXJrc3RyYXNzZSAxCisJCQkJWnVyaWNoIFpIIENILTgwMDUKKwkJCQlTV0lUWkVSTEFORAorCisyMC1CMy05OSAgIChoZXgpCQlFbnRlcmFzeXMKKzIwQjM5OSAgICAgKGJhc2UgMTYpCQlFbnRlcmFzeXMKKwkJCQk1MCBNaW51dGVtYW4gUmQKKwkJCQlBbmRvdmVyIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCisyMC1CNy1DMCAgIChoZXgpCQlPbWljcm9uIGVsZWN0cm9uaWNzIEdtYkgKKzIwQjdDMCAgICAgKGJhc2UgMTYpCQlPbWljcm9uIGVsZWN0cm9uaWNzIEdtYkgKKwkJCQlPYmVyZXMgUmllZCAxCisJCQkJS2xhdXMgIDY4MzMKKwkJCQlBVVNUUklBCisKKzIwLUJGLURCICAgKGhleCkJCURWTAorMjBCRkRCICAgICAoYmFzZSAxNikJCURWTAorCQkJCTIxIEdyYWRpbmlsb3IgU3RyCisJCQkJQ2hpc2luYXUgIE1EMjAwMQorCQkJCU1PTERPVkEsIFJFUFVCTElDIE9GCisKKzIwLUNGLTMwICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorMjBDRjMwICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UsIAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisyMC1ENS1BQiAgIChoZXgpCQlLb3JlYSBJbmZvY29tIENvLixMdGQuCisyMEQ1QUIgICAgIChiYXNlIDE2KQkJS29yZWEgSW5mb2NvbSBDby4sTHRkLgorCQkJCTVGIFdpbnRlayBCL0QgNTExCisJCQkJUG9pbC1kb25nCisJCQkJVWl3YW5nIEt5dW5nZ2ktRG8gNDM3LTgzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisyMC1ENi0wNyAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorMjBENjA3ICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgT3UgOTA1OTAKKwkJCQlGSU5MQU5ECisKKzIwLUQ5LTA2ICAgKGhleCkJCUlvdGEsIEluYy4KKzIwRDkwNiAgICAgKGJhc2UgMTYpCQlJb3RhLCBJbmMuCisJCQkJMjIxMiBRdWVlbiBBbm5lIEF2ZS4gTi4sICMzNDgKKwkJCQlTZWF0dGxlIFdBIDk4MTA5CisJCQkJVU5JVEVEIFNUQVRFUworCisyMC1GRC1GMSAgIChoZXgpCQkzQ09NIEVVUk9QRSBMVEQKKzIwRkRGMSAgICAgKGJhc2UgMTYpCQkzQ09NIEVVUk9QRSBMVEQKKwkJCQlQZW9wbGVidWlsZGluZyAyCisJCQkJTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRmb3Jkc2hpcmUgSFAyIDROVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzIwLUZFLUNEICAgKGhleCkJCVN5c3RlbSBJbiBGcm9udGllciBJbmMuCisyMEZFQ0QgICAgIChiYXNlIDE2KQkJU3lzdGVtIEluIEZyb250aWVyIEluYy4KKwkJCQk0RiBTaGluc3V6dWhhcnUgQmxkZy4gMi04LTMgQWtlYm9ub2N5bworCQkJCVRhY2hpa2F3YS1zaGkgVG9reW8gMTkwLTAwMTIKKwkJCQlKQVBBTgorCisyMC1GRS1EQiAgIChoZXgpCQlNMk0gU29sdXRpb24gUy5BLlMuCisyMEZFREIgICAgIChiYXNlIDE2KQkJTTJNIFNvbHV0aW9uIFMuQS5TLgorCQkJCUNlbnRyZSBkJ0FmZmFpcmVzIFJlZ3VzIEJhdC5ECisJCQkJNDUgQWxsZWUgZGVzIE9ybWVzCisJCQkJTW91Z2lucyAgIDA2MjU0IAorCQkJCUZSQU5DRQorCisyNC0wQi0yQSAgIChoZXgpCQlWaWV0dGVsIEdyb3VwCisyNDBCMkEgICAgIChiYXNlIDE2KQkJVmlldHRlbCBHcm91cAorCQkJCUNlbnRlciBmb3IgUmVzZWFyY2ggYW5kIERldmVsb3BtZW50CisJCQkJMDEgR2lhbmcgVmFuIE1pbmgsIEJhIERpbmgKKwkJCQlIYW5vaSAgMTExMQorCQkJCVZJRVROQU0KKworMjQtMUEtOEMgICAoaGV4KQkJU3F1YXJlaGVhZCBUZWNobm9sb2d5IEFTCisyNDFBOEMgICAgIChiYXNlIDE2KQkJU3F1YXJlaGVhZCBUZWNobm9sb2d5IEFTCisJCQkJUE8gQm94IDEzIE55ZGFsZW4KKwkJCQlPc2xvICBOTy0wNDEwCisJCQkJTk9SV0FZCisKKzI0LTFGLTJDICAgKGhleCkJCUNhbHN5cywgSW5jLgorMjQxRjJDICAgICAoYmFzZSAxNikJCUNhbHN5cywgSW5jLgorCQkJCTI3MDAgQXVndXN0aW5lIGRyaXZlLCBTdGUxNDUKKwkJCQlTYW50YSBDbGFyYSBDYWxpZm9ybmlhIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCisyNC0yMS1BQiAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworMjQyMUFCICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgIDIyMTg4CisJCQkJU1dFREVOCisKKzI0LTNDLTIwICAgKGhleCkJCUR5bmFtb2RlIEdyb3VwCisyNDNDMjAgICAgIChiYXNlIDE2KQkJRHluYW1vZGUgR3JvdXAKKwkJCQlIZWFkIE9mZmljZSwgMTMyYSBTdCBBbGJhbnMgUm9hZAorCQkJCVdhdGZvcmQgSGVydHMgV0QyNCA0QUUKKwkJCQlVTklURUQgS0lOR0RPTQorCisyNC00NS05NyAgIChoZXgpCQlHRU1VRSBHZWJyLiBNdWVsbGVyIEFwcGFyYXRlYmF1CisyNDQ1OTcgICAgIChiYXNlIDE2KQkJR0VNVUUgR2Vici4gTXVlbGxlciBBcHBhcmF0ZWJhdQorCQkJCUZyaXR6LU11ZWxsZXItU3RyYXNzZSA2LTgKKwkJCQlJbmdlbGZpbmdlbiBDcmllc2JhY2ggIDc0NjUzCisJCQkJR0VSTUFOWQorCisyNC00Ny0wRSAgIChoZXgpCQlQZW50cm9uaWNBQgorMjQ0NzBFICAgICAoYmFzZSAxNikJCVBlbnRyb25pY0FCCisJCQkJQmVyZ3NsaWRlbiAxCisJCQkJR1VOTkVCTyAgNTkwOTMKKwkJCQlTV0VERU4KKworMjQtNDktN0IgICAoaGV4KQkJSW5ub3ZhdGl2ZSBDb252ZXJnZWQgRGV2aWNlcyBJbmMKKzI0NDk3QiAgICAgKGJhc2UgMTYpCQlJbm5vdmF0aXZlIENvbnZlcmdlZCBEZXZpY2VzIEluYworCQkJCTQyNCA4dGggQXZlbnVlIE5vcnRoCisJCQkJU2VhdHRsZSBXQSA5ODEwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMjQtNzctMDMgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCisyNDc3MDMgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCisyNC04Mi04QSAgIChoZXgpCQlQcm93YXZlIFRlY2hub2xvZ2llcyBMdGQuCisyNDgyOEEgICAgIChiYXNlIDE2KQkJUHJvd2F2ZSBUZWNobm9sb2dpZXMgTHRkLgorCQkJCTJGLE5vLjg3OS0xNixaaG9uZ2ppYW5nIFJvYWQKKwkJCQlTaGFuZ2hhaSAgMjAwMzMzCisJCQkJQ0hJTkEKKworMjQtOTQtNDIgICAoaGV4KQkJT1BFTiBST0FEIFNPTFVUSU9OUyAsIElOQy4KKzI0OTQ0MiAgICAgKGJhc2UgMTYpCQlPUEVOIFJPQUQgU09MVVRJT05TICwgSU5DLgorCQkJCTg4LTEzIFNIVUlMSSAgUk9BRAorCQkJCUhTSU5DSFUgIDMwMDU5CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisyNC1BNC0yQyAgIChoZXgpCQlLT1VLQUFNIGEucy4KKzI0QTQyQyAgICAgKGJhc2UgMTYpCQlLT1VLQUFNIGEucy4KKwkJCQlVIHZpbm55Y2ggc2tsZXB1IDcKKwkJCQlQcmFndWUgIDE5MCAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzI0LUE5LTM3ICAgKGhleCkJCVBVUkUgU3RvcmFnZQorMjRBOTM3ICAgICAoYmFzZSAxNikJCVBVUkUgU3RvcmFnZQorCQkJCTY1MCBDYXN0cm8gU3RyZWV0CisJCQkJMjIwCisJCQkJTXQuIFZpZXcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LUFCLTgxICAgKGhleCkJCUFwcGxlLCBJbmMuCisyNEFCODEgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LUFGLTRBICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50LUlQRAorMjRBRjRBICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50LUlQRAorCQkJCTc3NyBNaWRkbGVmaWVsZCBSZC4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCisyNC1BRi01NCAgIChoZXgpCQlORVhHRU4gTWVkaWF0ZWNoIEluYy4KKzI0QUY1NCAgICAgKGJhc2UgMTYpCQlORVhHRU4gTWVkaWF0ZWNoIEluYy4KKwkJCQk4RiBOby4gMTUwLCBKaWFueWkgUmQuLCAKKwkJCQlDaHVuZyBIbyBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisyNC1CNi1COCAgIChoZXgpCQlGUklFTSBTUEEKKzI0QjZCOCAgICAgKGJhc2UgMTYpCQlGUklFTSBTUEEKKwkJCQlWaWEgRWRpc29uIDEKKwkJCQlTZWdyYXRlIE1pbGFubyAyMDA5MAorCQkJCUlUQUxZCisKKzI0LUI4LUQyICAgKGhleCkJCU9wem9vbiBUZWNobm9sb2d5IENvLixMdGQuCisyNEI4RDIgICAgIChiYXNlIDE2KQkJT3B6b29uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQkxMXRoIGZsb29yLCBUb3dlciBC77+977+9WWludGFpIENlbnRlciAyIEppYW5ndW9tZW53YWkgU3QsLgorCQkJCUJlaWppbmcgQXNpYSAxMDAwMjIKKwkJCQlDSElOQQorCisyNC1CQS0zMCAgIChoZXgpCQlUZWNobmljYWwgQ29uc3VtZXIgUHJvZHVjdHMsIEluYy4KKzI0QkEzMCAgICAgKGJhc2UgMTYpCQlUZWNobmljYWwgQ29uc3VtZXIgUHJvZHVjdHMsIEluYy4KKwkJCQkzMjUgQ2FtcHVzIERyaXZlCisJCQkJQXVyb3JhIE9IIDQ0MjAyCisJCQkJVU5JVEVEIFNUQVRFUworCisyNC1CRi03NCAgIChoZXgpCQlQUklWQVRFCisyNEJGNzQgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzI0LUM4LTZFICAgKGhleCkJCUNoYW5leSBJbnN0cnVtZW50IENvLgorMjRDODZFICAgICAoYmFzZSAxNikJCUNoYW5leSBJbnN0cnVtZW50IENvLgorCQkJCTk2NSBXZWxscyBTdHJlZXQKKwkJCQlMYWtlIEdlbmV2YSBXSSA1MzE0NworCQkJCVVOSVRFRCBTVEFURVMKKworMjQtQzktREUgICAoaGV4KQkJR2Vub3JheQorMjRDOURFICAgICAoYmFzZSAxNikJCUdlbm9yYXkKKwkJCQkjODEyIEJ5dWNrc2FuIFRlY2hub3BpYSA0MzQtNiBTYW5nZGFld29uIDEtRG9uZworCQkJCUp1bmd3b24tR3UKKwkJCQlTZW9uZ25hbS1DaXR5IEd5ZW9uZ2dpLURvIDQ2Mi03MTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMjQtQ0ItRTcgICAoaGV4KQkJTVlLLCBJbmMuCisyNENCRTcgICAgIChiYXNlIDE2KQkJTVlLLCBJbmMuCisJCQkJNC02MC0zMC0xMDgsIEthbW9pLCAKKwkJCQlNaWRvcmkta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjYtMDAwMworCQkJCUpBUEFOCisKKzI0LUNGLTIxICAgKGhleCkJCVNoZW56aGVuIFN0YXRlIE1pY3JvIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzI0Q0YyMSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBTdGF0ZSBNaWNybyBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJU1NNRUMgQnVpbGRpbmcyL0YsIEdhbyBYaW4gTmFuIEZpcnN0IEF2ZW51ZSwgSGktVGVjaCBQYXJrIFNvdXRoLCBOYW5zaGFuCisJCQkJU2hlbnpoZW4gQ2l0eSBHdWFuZ2RvbmcgUHJvdmluY2UgNTE4MDU3CisJCQkJQ0hJTkEKKworMjQtRDItQ0MgICAoaGV4KQkJU21hcnREcml2ZSBTeXN0ZW1zIEluYy4KKzI0RDJDQyAgICAgKGJhc2UgMTYpCQlTbWFydERyaXZlIFN5c3RlbXMgSW5jLgorCQkJCTkyNzYgU2NyYW50b24gUm9hZAorCQkJCVN1aXRlIDUwMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMjQtREItQUMgICAoaGV4KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorMjREQkFDICAgICAoYmFzZSAxNikJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTAxMDgKKwkJCQlDSElOQQorCisyNC1EQi1BRCAgIChoZXgpCQlTaG9wcGVyVHJhayBSQ1QgQ29ycG9yYXRpb24KKzI0REJBRCAgICAgKGJhc2UgMTYpCQlTaG9wcGVyVHJhayBSQ1QgQ29ycG9yYXRpb24KKwkJCQkyMDAgVy4gTW9ucm9lIFN0cmVldAorCQkJCVN1aXRlIDExMDAKKwkJCQlDaGljYWdvIElMIDYwNjA2CisJCQkJVU5JVEVEIFNUQVRFUworCisyNC1GMC1GRiAgIChoZXgpCQlHSFQgQ28uLCBMdGQuCisyNEYwRkYgICAgIChiYXNlIDE2KQkJR0hUIENvLiwgTHRkLgorCQkJCSMxNiBOYW55dW55aSBMdSwgR3Vhbmd6aG91IFNjaWVuY2UgQ2l0eQorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgNTEwNjYzCisJCQkJQ0hJTkEKKworMjgtMDYtMUUgICAoaGV4KQkJTklOR0JPIEdMT0JBTCBVU0VGVUwgRUxFQ1RSSUMgQ08uLExURAorMjgwNjFFICAgICAoYmFzZSAxNikJCU5JTkdCTyBHTE9CQUwgVVNFRlVMIEVMRUNUUklDIENPLixMVEQKKwkJCQlOby44OCxLZWNodWFuZyBTb3V0aCBSb2FkLAorCQkJCVdhbmdjaHVuIEluZHVzdHJ5IFpvbmUKKwkJCQlOaW5nYm8gWmhlamlhbmcgMzE1MDAwCisJCQkJQ0hJTkEKKworMjgtMDYtOEQgICAoaGV4KQkJSVRMLCBMTEMKKzI4MDY4RCAgICAgKGJhc2UgMTYpCQlJVEwsIExMQworCQkJCVAuTy4gQm94IDQxODc1CisJCQkJTmFzaHZpbGxlIFROIDM3MjA0CisJCQkJVU5JVEVEIFNUQVRFUworCisyOC0xNC03MSAgIChoZXgpCQlMYW50aXMgY28uLCBMVEQuCisyODE0NzEgICAgIChiYXNlIDE2KQkJTGFudGlzIGNvLiwgTFRELgorCQkJCWJ1c2FuIGlubm9iaXogY2VudGVyIDQwMQorCQkJCWJ1ay1rdSwgbWFuZGVvayAzLWRvbmcKKwkJCQlidXNhbiAgNjE2LTgyOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisyOC0xNi0yRSAgIChoZXgpCQkyV2lyZQorMjgxNjJFICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtMjYtQTYgICAoaGV4KQkJUEJSIGVsZWN0cm9uaWNzIEdtYkgKKzI4MjZBNiAgICAgKGJhc2UgMTYpCQlQQlIgZWxlY3Ryb25pY3MgR21iSAorCQkJCUJlcmxpbmVyIFN0cmFzc2UgNQorCQkJCVNhbmRoYXVzZW4gQmFkZW4gV3VlcnRlbW1iZXJnIDY5MjA3CisJCQkJR0VSTUFOWQorCisyOC0zNC0xMCAgIChoZXgpCQlFbmlnbWEgRGlhZ25vc3RpY3MgTGltaXRlZAorMjgzNDEwICAgICAoYmFzZSAxNikJCUVuaWdtYSBEaWFnbm9zdGljcyBMaW1pdGVkCisJCQkJTWlsdG9uIFBhcmsgSW5ub3ZhdGlvbiBDZW50cmUKKwkJCQk5OSBNaWx0b24gUGFyaworCQkJCUFiaW5nZG9uICBPWDE0IDRSWQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzI4LTNDLUU0ICAgKGhleCkJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKzI4M0NFNCAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMjgtNDAtMUEgICAoaGV4KQkJQzggTWVkaVNlbnNvcnMsIEluYy4KKzI4NDAxQSAgICAgKGJhc2UgMTYpCQlDOCBNZWRpU2Vuc29ycywgSW5jLgorCQkJCTcyNyBVbml2ZXJzaXR5IEF2ZQorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtNDgtNDYgICAoaGV4KQkJR3JpZENlbnRyaWMgSW5jLgorMjg0ODQ2ICAgICAoYmFzZSAxNikJCUdyaWRDZW50cmljIEluYy4KKwkJCQkzNTAgQmxvb3IgU3QuIEUKKwkJCQlUb3JvbnRvIE9udGFyaW8gTTRXIDBBMQorCQkJCUNBTkFEQQorCisyOC00Qy01MyAgIChoZXgpCQlJbnR1bmUgTmV0d29ya3MKKzI4NEM1MyAgICAgKGJhc2UgMTYpCQlJbnR1bmUgTmV0d29ya3MKKwkJCQk5QiBCZWNrZXR0IFdheQorCQkJCVBhcmt3ZXN0IEJ1c2luZXNzIFBhcmsKKwkJCQlEdWJsaW4gICAxMgorCQkJCUlSRUxBTkQKKworMjgtNTEtMzIgICAoaGV4KQkJU2hlbnpoZW4gUHJheWZseSBUZWNobm9sb2d5IENvLixMdGQKKzI4NTEzMiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBQcmF5Zmx5IFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTE2RiBCIEludGVybmF0aW9uYWwgQ2hhbWJlciBvZiBDb21tZXJjZSBCdWlsZGluZworCQkJCU5PLjEzOCBGdWh1YSAxUkQgRnV0aWFuIEFyZWEgCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIFByb3ZpbmNlICA1MTgwNDgKKwkJCQlDSElOQQorCisyOC01Ri1EQiAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisyODVGREIgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyOQorCQkJCUNISU5BCisKKzI4LTYwLTQ2ICAgKGhleCkJCUxhbnRlY2ggQ29tbXVuaWNhdGlvbnMgR2xvYmFsLCBJbmMuCisyODYwNDYgICAgIChiYXNlIDE2KQkJTGFudGVjaCBDb21tdW5pY2F0aW9ucyBHbG9iYWwsIEluYy4KKwkJCQk3RiwgTm8uIDQ1LCBMYW5lIDE4OCwgUnVpZ3VhbmcgUmQuLCBOZWlodSBEaXN0cmljdAorCQkJCVRhaXBlaSBDaXR5ICAxMTQ5MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMjgtNkUtRDQgICAoaGV4KQkJSFVBV0VJIFRFQ0hOT0xPR0lFUyBDTy4sTFRECisyODZFRDQgICAgIChiYXNlIDE2KQkJSFVBV0VJIFRFQ0hOT0xPR0lFUyBDTy4sTFRECisJCQkJQjEtNyxIdWF3ZWkgSW5kdXN0cmlhbCBCYXNlLEJhbnRpYW4sTG9uZ2dhbmcKKwkJCQlTaGVuWmhlbiBndWFuZ2RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworMjgtNzItQzUgICAoaGV4KQkJU21hcnRtYXRpYyBDb3JwCisyODcyQzUgICAgIChiYXNlIDE2KQkJU21hcnRtYXRpYyBDb3JwCisJCQkJMTAwMSBCcm9rZW4gU291bmQgUGt3eSBOVyBTdWl0ZSBECisJCQkJQm9jYSBSYXRvbiBGbG9yaWRhIDMzNDg3CisJCQkJVU5JVEVEIFNUQVRFUworCisyOC03Mi1GMCAgIChoZXgpCQlBVEhFTkEKKzI4NzJGMCAgICAgKGJhc2UgMTYpCQlBVEhFTkEKKwkJCQk0MiBSVUUgTU9OR0UKKwkJCQlQQVJJUyAgNzUwMDUKKwkJCQlGUkFOQ0UKKworMjgtODUtMkQgICAoaGV4KQkJVG91Y2ggTmV0d29ya3MKKzI4ODUyRCAgICAgKGJhc2UgMTYpCQlUb3VjaCBOZXR3b3JrcworCQkJCTI1MTUgMTUybmQgQXZlIE5FCisJCQkJUmVkbW9uZCBXYXNoaW5ndG9uIDk4MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCisyOC04OS0xNSAgIChoZXgpCQlDYXNoR3VhcmQgU3ZlcmlnZSBBQgorMjg4OTE1ICAgICAoYmFzZSAxNikJCUNhc2hHdWFyZCBTdmVyaWdlIEFCCisJCQkJRmlubGFuZHNnYXRhbiAxNgorCQkJCUtpc3RhICAxNjQ3NAorCQkJCVNXRURFTgorCisyOC05My1GRSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCisyODkzRkUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCisyOC1BNS03NCAgIChoZXgpCQlNaWxsZXIgRWxlY3RyaWMgTWZnLiBDby4KKzI4QTU3NCAgICAgKGJhc2UgMTYpCQlNaWxsZXIgRWxlY3RyaWMgTWZnLiBDby4KKwkJCQkxNjM1IFcuIFNwZW5jZXIgU3RyZWV0CisJCQkJUC5PLiBCb3ggMTA3OQorCQkJCUFwcGxldG9uIFdJIDU0OTEyLTEwNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LUMwLURBICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzI4QzBEQSAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtQ0MtRkYgICAoaGV4KQkJQ29ycG9yYWNpb24gRW1wcmVzYXJpYWwgQWx0cmEgU0wKKzI4Q0NGRiAgICAgKGJhc2UgMTYpCQlDb3Jwb3JhY2lvbiBFbXByZXNhcmlhbCBBbHRyYSBTTAorCQkJCU1hcmllIEN1cmllIDIxCisJCQkJTWFsYWdhICAyOTU5MAorCQkJCVNQQUlOCisKKzI4LUNELTRDICAgKGhleCkJCUluZGl2aWR1YWwgQ29tcHV0ZXJzIEdtYkgKKzI4Q0Q0QyAgICAgKGJhc2UgMTYpCQlJbmRpdmlkdWFsIENvbXB1dGVycyBHbWJICisJCQkJSW0gWmVtbWVyIDYKKwkJCQlXb2ZmZWxzYmFjaCBOUlcgNTIxNTIKKwkJCQlHRVJNQU5ZCisKKzI4LUNGLURBICAgKGhleCkJCUFwcGxlIEluYworMjhDRkRBICAgICAoYmFzZSAxNikJCUFwcGxlIEluYworCQkJCTEgaW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtRTItOTcgICAoaGV4KQkJU2hhbmdoYWkgSW5mb1RNIE1pY3JvZWxlY3Ryb25pY3MgQ28uLEx0ZC4KKzI4RTI5NyAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBJbmZvVE0gTWljcm9lbGVjdHJvbmljcyBDby4sTHRkLgorCQkJCWJ1aWxkaW5nIDExLE5PLjExNSxsYW5lIDU3MixCaUJvIFJvYWQsCisJCQkJUHVEb25nIE5ldyBEaXN0cmljdAorCQkJCVNoYW5nSGFpICAyMDEyMDMKKwkJCQlDSElOQQorCisyOC1FNy05NCAgIChoZXgpCQlNaWNyb3RpbWUgQ29tcHV0ZXIgSW5jLgorMjhFNzk0ICAgICAoYmFzZSAxNikJCU1pY3JvdGltZSBDb21wdXRlciBJbmMuCisJCQkJNEYsIE5vLiAyMjIsIFNlYy4gNCwgQ2hlbmctVGVoIFJkLiwgCisJCQkJVGFpcGVpICAxMTE2NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMjgtRTctQ0YgICAoaGV4KQkJQXBwbGUsIEluYy4KKzI4RTdDRiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtRUQtNTggICAoaGV4KQkJSkFHIEpha29iIEFHCisyOEVENTggICAgIChiYXNlIDE2KQkJSkFHIEpha29iIEFHCisJCQkJSW5kdXN0cmllc3RyYXNzZSAyMAorCQkJCUJSVUVHRyBCRSAyNTU1CisJCQkJU1dJVFpFUkxBTkQKKworMjgtRUUtMkMgICAoaGV4KQkJRnJvbnRsaW5lIFRlc3QgRXF1aXBtZW50CisyOEVFMkMgICAgIChiYXNlIDE2KQkJRnJvbnRsaW5lIFRlc3QgRXF1aXBtZW50CisJCQkJUE8gQm94IDc1MDcKKwkJCQlDaGFybG90dGVzdmlsbGUgVmlyZ2luaWEgMjI5MDYtNzUwNworCQkJCVVOSVRFRCBTVEFURVMKKworMjgtRUYtMDEgICAoaGV4KQkJUFJJVkFURQorMjhFRjAxICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCisyOC1GMy01OCAgIChoZXgpCQkyQyAtIFRyaWZvbm92ICYgQ28KKzI4RjM1OCAgICAgKGJhc2UgMTYpCQkyQyAtIFRyaWZvbm92ICYgQ28KKwkJCQkxMzMsIFRzYXJpZ3JhZHNrbyBTaG9zZSBCbHZkLCBCSVogSVpPVCwgCisJCQkJQnVpbGQuIDMsIEZsb29yIDMKKwkJCQlTb2ZpYSAgMTc4NAorCQkJCUJVTEdBUklBCisKKzI4LUZCLUQzICAgKGhleCkJCVNoYW5naGFpIFJhZ2VuVGVrIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sTHRkLgorMjhGQkQzICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFJhZ2VuVGVrIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTR0aCBGbG9vcixOby4xMTEgRVNoYW4gUm9hZCBQdURvbmcgRGlzdHJpY3QgCisJCQkJU2hhbmdoYWkgIDIwMDEyNworCQkJCUNISU5BCisKKzJDLTAwLTMzICAgKGhleCkJCUVDb250cm9scywgTExDCisyQzAwMzMgICAgIChiYXNlIDE2KQkJRUNvbnRyb2xzLCBMTEMKKwkJCQkzNTIzIENyb3NzcG9pbnQKKwkJCQlTYW4gQW50b25pbyBUWCA3ODIxNworCQkJCVVOSVRFRCBTVEFURVMKKworMkMtMDYtMjMgICAoaGV4KQkJV2luIExlYWRlciBJbmMuCisyQzA2MjMgICAgIChiYXNlIDE2KQkJV2luIExlYWRlciBJbmMuCisJCQkJTGV2ZWwgMyAsQWxleGFuZGVyIEhvdXNlLAorCQkJCTM1ICBDeWJlcmNpdHkKKwkJCQlFYmVuZSAgCisJCQkJTUFVUklUSVVTCisKKzJDLTE5LTg0ICAgKGhleCkJCUlETiBUZWxlY29tLCBJbmMuCisyQzE5ODQgICAgIChiYXNlIDE2KQkJSUROIFRlbGVjb20sIEluYy4KKwkJCQkyNjY5IEdyZWF0IEFyYm9yIFdheQorCQkJCVVuaW9uIENpdHkgQ0EgOTQ1ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTFFLUVBICAgKGhleCkJCUFFUk9ERVYKKzJDMUVFQSAgICAgKGJhc2UgMTYpCQlBRVJPREVWCisJCQkJTm8uNTksMTk4NSBMYW5lLENodW5zaGVuIFJvYWQsCisJCQkJU2hhbmdoYWkgIDIwMDIzNworCQkJCUNISU5BCisKKzJDLTIxLTcyICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzJDMjE3MiAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OSAKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTI3LUQ3ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMkMyN0Q3ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlNYWlsY29kZSA2LjMuMDQ5CisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMkMtMzAtNjggICAoaGV4KQkJUGFudGVjaCBDby4sTHRkCisyQzMwNjggICAgIChiYXNlIDE2KQkJUGFudGVjaCBDby4sTHRkCisJCQkJMTEwLTEgT25namVvbmctUmksIFRvbmdqaW4tRXVwCisJCQkJR2ltcG8tU2kgR3lvdW5nZ2ktRG8gNDE1LTg2NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisyQy0zNC0yNyAgIChoZXgpCQlFUkNPICZhbXA7IEdFTkVSCisyQzM0MjcgICAgIChiYXNlIDE2KQkJRVJDTyAmYW1wOyBHRU5FUgorCQkJCVpJIGRlIFNBSU5UIExBTUJFUlQgREVTIExFVkVFUworCQkJCUJQIDMwMTYzCisJCQkJU0FVTVVSICA0OTQxMgorCQkJCUZSQU5DRQorCisyQy0zQS0yOCAgIChoZXgpCQlGYWdvciBFbGVjdHLvv71uaWNhCisyQzNBMjggICAgIChiYXNlIDE2KQkJRmFnb3IgRWxlY3Ry77+9bmljYQorCQkJCUIuIFNhbiBBbmRyZXMsIHMvbiAKKwkJCQlNb25kcmFn77+9biBHdWlwdXpjb2EgMjA1MDAKKwkJCQlTUEFJTgorCisyQy0zRi0zRSAgIChoZXgpCQlBbGdlLVRpbWluZyBHbWJICisyQzNGM0UgICAgIChiYXNlIDE2KQkJQWxnZS1UaW1pbmcgR21iSAorCQkJCVJvdGtyZXV6c3RyYXNzZSAzOQorCQkJCUx1c3RlbmF1ICA2ODkwCisJCQkJQVVTVFJJQQorCisyQy00MS0zOCAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzJDNDEzOCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTWFpbGNvZGUgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTZCLUY1ICAgKGhleCkJCUp1bmlwZXIgbmV0d29ya3MKKzJDNkJGNSAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIG5ldHdvcmtzCisJCQkJMTE5NCBOLiBNYXRoaWxkYSBhdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTdBLUZFICAgKGhleCkJCUlFRSZFICJCbGFjayIgb3BzCisyQzdBRkUgICAgIChiYXNlIDE2KQkJSUVFJkUgIkJsYWNrIiBvcHMKKwkJCQkxMDAgSmVyaWMgQXZlbnVlCisJCQkJQ2hhcmxvdHRlIE5DIDI4MjYyCisJCQkJVU5JVEVEIFNUQVRFUworCisyQy03RS1DRiAgIChoZXgpCQlPbnpvIEx0ZAorMkM3RUNGICAgICAoYmFzZSAxNikJCU9uem8gTHRkCisJCQkJNiBHcmVhdCBOZXdwb3J0IFN0cmVldAorCQkJCUxvbmRvbiAgV0MySCA3SkIKKwkJCQlVTklURUQgS0lOR0RPTQorCisyQy04MC02NSAgIChoZXgpCQlIQVJUSU5HIEluYy4gb2YgTm9ydGggQW1lcmljYQorMkM4MDY1ICAgICAoYmFzZSAxNikJCUhBUlRJTkcgSW5jLiBvZiBOb3J0aCBBbWVyaWNhCisJCQkJMTM3MCBCb3dlcyBSb2FkCisJCQkJRWxnaW4gSWxsaW5vaXMgNjAxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTgxLTU4ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZAorMkM4MTU4ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZAorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKKzJDLThCLUYyICAgKGhleCkJCUhpdGFjaGkgTWV0YWxzIEFtZXJpY2EgTHRkCisyQzhCRjIgICAgIChiYXNlIDE2KQkJSGl0YWNoaSBNZXRhbHMgQW1lcmljYSBMdGQKKwkJCQkyMTA3IE4gRmlyc3QgU3QKKwkJCQlTdWl0ZSA1MDAKKwkJCQlTYW4gSm9zZSAgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTkxLTI3ICAgKGhleCkJCUVpbnRlY2hubyBDb3Jwb3JhdGlvbgorMkM5MTI3ICAgICAoYmFzZSAxNikJCUVpbnRlY2hubyBDb3Jwb3JhdGlvbgorCQkJCTMzNTktMSwga2FrbywgSW5hbWktY2hvCisJCQkJa2Frby1ndW4gaHlvZ28gNjc1LTExMDUKKwkJCQlKQVBBTgorCisyQy05RS01RiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMkM5RTVGICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMkMtQTEtNTcgICAoaGV4KQkJQUNST01BVEUsIElOQy4KKzJDQTE1NyAgICAgKGJhc2UgMTYpCQlBQ1JPTUFURSwgSU5DLgorCQkJCSM5MTEsIEUmQyAgVmVudHVyZSBEcmVhbSBUb3dlciBJSQorCQkJCTE5Ny0xMCwgR3Vyby1kb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi03MTkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMkMtQTctODAgICAoaGV4KQkJVHJ1ZSBUZWNobm9sb2dpZXMgSW5jLgorMkNBNzgwICAgICAoYmFzZSAxNikJCVRydWUgVGVjaG5vbG9naWVzIEluYy4KKwkJCQlSNDc2LCBBbmdlbENpdHkgMXN0LAorCQkJCTE2MSwgR3VlbWdvaywgQnVuZGFuZworCQkJCVNlb25nbmFtLCBLeXVuZ2tpIDQ2My04NjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMkMtQTgtMzUgICAoaGV4KQkJUklNCisyQ0E4MzUgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzJDLUIwLURGICAgKGhleCkJCVNvbGl0b24gVGVjaG5vbG9naWVzIFB2dCBMdGQKKzJDQjBERiAgICAgKGJhc2UgMTYpCQlTb2xpdG9uIFRlY2hub2xvZ2llcyBQdnQgTHRkCisJCQkJIyA2ODMsIDE1dGggQ3Jvc3MgCisJCQkJSiBQIE5hZ2FyIDJuZCBQaGFzZQorCQkJCUJhbmdhbG9yZSBLYXJuYXRha2EgNTYwIDA3OAorCQkJCUlORElBCisKKzJDLUI2LTlEICAgKGhleCkJCVJFRCBEaWdpdGFsIENpbmVtYQorMkNCNjlEICAgICAoYmFzZSAxNikJCVJFRCBEaWdpdGFsIENpbmVtYQorCQkJCTIwMjkxIFZhbGVuY2lhIENpcmNsZQorCQkJCUxha2UgRm9yZXN0IENhbGlmb3JuaWEgOTI2MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLUNELTI3ICAgKGhleCkJCVByZWNvciBJbmMKKzJDQ0QyNyAgICAgKGJhc2UgMTYpCQlQcmVjb3IgSW5jCisJCQkJMjAwMzEgMTQybmQgQXZlbnVlIE5FCisJCQkJV29vZGludmlsbGUgV0EgOTgwNzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLUNELTQzICAgKGhleCkJCVN1bW1pdCBUZWNobm9sb2d5IEdyb3VwCisyQ0NENDMgICAgIChiYXNlIDE2KQkJU3VtbWl0IFRlY2hub2xvZ3kgR3JvdXAKKwkJCQkxNDUgQmVsbW9udCBEcml2ZQorCQkJCVNvbWVyc2V0IE5KIDA4ODczCisJCQkJVU5JVEVEIFNUQVRFUworCisyQy1EMS1EQSAgIChoZXgpCQlTYW5qb2xlLCBJbmMuCisyQ0QxREEgICAgIChiYXNlIDE2KQkJU2Fuam9sZSwgSW5jLgorCQkJCTI4MDAgV29vZGxhd24gRHJpdmUsICMyNzEKKwkJCQlIb25vbHVsdSBIYXdhaWkgOTY4MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLUQyLUU3ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCisyQ0QyRTcgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSBPdSA5MDU5MAorCQkJCUZJTkxBTkQKKworMkMtREQtMEMgICAoaGV4KQkJRGlzY292ZXJneSBHbWJICisyQ0REMEMgICAgIChiYXNlIDE2KQkJRGlzY292ZXJneSBHbWJICisJCQkJUGFzY2Fsc3RyLiAxNQorCQkJCUFhY2hlbiBOUlcgNTIwNzYKKwkJCQlHRVJNQU5ZCisKKzMwLTBCLTlDICAgKGhleCkJCURlbHRhIE1vYmlsZSBTeXN0ZW1zLCBJbmMuCiszMDBCOUMgICAgIChiYXNlIDE2KQkJRGVsdGEgTW9iaWxlIFN5c3RlbXMsIEluYy4KKwkJCQk3MDAgUmVtaW5ndG9uIFJvYWQKKwkJCQkybmQgRmxvb3IKKwkJCQlTY2hhdW1idXJnIElsbGlub2lzIDYwMTczCisJCQkJVU5JVEVEIFNUQVRFUworCiszMC0xNC0yRCAgIChoZXgpCQlQaWNpb3Jncm9zIEdtYkgKKzMwMTQyRCAgICAgKGJhc2UgMTYpCQlQaWNpb3Jncm9zIEdtYkgKKwkJCQlDbGF1ZGlhc3RyYXNzZSA1CisJCQkJQ29sb2duZSBOUlcgNTExNDkKKwkJCQlHRVJNQU5ZCisKKzMwLTE3LUM4ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiszMDE3QzggICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworMzAtMTgtQ0YgICAoaGV4KQkJREVPUyBjb250cm9sIHN5c3RlbXMgR21iSAorMzAxOENGICAgICAoYmFzZSAxNikJCURFT1MgY29udHJvbCBzeXN0ZW1zIEdtYkgKKwkJCQlCaXJrZW5hbGxlZSAxMTMKKwkJCQlSaGVpbmUgTlJXIDQ4NDMyCisJCQkJR0VSTUFOWQorCiszMC0xQS0yOCAgIChoZXgpCQlNYWtvIE5ldHdvcmtzIEx0ZAorMzAxQTI4ICAgICAoYmFzZSAxNikJCU1ha28gTmV0d29ya3MgTHRkCisJCQkJMS82MiBQYXVsIE1hdHRoZXdzIFJkCisJCQkJQWxiYW55CisJCQkJQXVja2xhbmQgIDA2MzIKKwkJCQlORVcgWkVBTEFORAorCiszMC0xRS04MCAgIChoZXgpCQlQUklWQVRFCiszMDFFODAgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzMwLTMyLUQ0ICAgKGhleCkJCUhhbmlsc3RtIENvLiwgTHRkLgorMzAzMkQ0ICAgICAoYmFzZSAxNikJCUhhbmlsc3RtIENvLiwgTHRkLgorCQkJCTEzOC02LCBTYW5nZGFld29uLWRvbmcgSnVuZ3dvbi1ndQorCQkJCTcwOSwgSm9vbmdhbmcgSW5kdXNwaWEgNXRoCisJCQkJU2VvbmduYW0gS3lvbmdnaS1kbyA0NjItMTIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzMwLTM3LUE2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzMwMzdBNiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzMwLTM4LTU1ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCiszMDM4NTUgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSBPdSA5MDU5MAorCQkJCUZJTkxBTkQKKworMzAtMzktNTUgICAoaGV4KQkJU2hlbnpoZW4gSmluaGVuZ2ppYSBFbGVjdHJvbmljIENvLiwgTHRkLgorMzAzOTU1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEppbmhlbmdqaWEgRWxlY3Ryb25pYyBDby4sIEx0ZC4KKwkJCQk0LTYgRmxvb3JzLCBGYWN0b3J5IEJ1aWxkaW5nLCBKaWppYSBJbmR1c3RyaWFsIFBhcmssCisJCQkJWGlhbGlsYW5nIEFyZWEsIE5hbndhbiBTdHJlZXQsIExvbmdnYW5nIEFyZWEuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODExMgorCQkJCUNISU5BCisKKzMwLTM5LUYyICAgKGhleCkJCVBJUkVMTEkgQlJPQURCQU5EIFNPTFVUSU9OUyAKKzMwMzlGMiAgICAgKGJhc2UgMTYpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMgCisJCQkJVklBTEUgU0FSQ0EgMjIyIAorCQkJCU1JTEFOTyAgIDIwMTI2IAorCQkJCUlUQUxZCisKKzMwLTQxLTc0ICAgKGhleCkJCUFMVEVDIExBTlNJTkcgTExDCiszMDQxNzQgICAgIChiYXNlIDE2KQkJQUxURUMgTEFOU0lORyBMTEMKKwkJCQk1MzUgUk9VVEVTIDYgJiAyMDkKKwkJCQlNSUxGT1JEIFBBIDE4MzM3CisJCQkJVU5JVEVEIFNUQVRFUworCiszMC00Ni05QSAgIChoZXgpCQlORVRHRUFSCiszMDQ2OUEgICAgIChiYXNlIDE2KQkJTkVUR0VBUgorCQkJCTM1MCBFQVNUIFBMVU1FUklBIERSSVZFCisJCQkJU0FOIEpPU0UgQ0FMSUZPUk5JQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMzAtNDktM0IgICAoaGV4KQkJTmFuamluZyBaLUNvbSBXaXJlbGVzcyBDby4sTHRkCiszMDQ5M0IgICAgIChiYXNlIDE2KQkJTmFuamluZyBaLUNvbSBXaXJlbGVzcyBDby4sTHRkCisJCQkJWi1Db20gQnVpbGRpbmcsTk8uMzAgSmlhbmdzdSBTb2Z0d2FyZSBQYXJrLE5PLjY5OS0yMiBYdWFud3UgQXZlbnVlLAorCQkJCU5hbmppbmcgSmlhbmdzdSAyMTAwNDIKKwkJCQlDSElOQQorCiszMC00Qy03RSAgIChoZXgpCQlQYW5hc29uaWMgRWxlY3RyaWMgV29ya3MgQXV0b21hdGlvbiBDb250cm9scyBUZWNobm8gQ28uLEx0ZC4KKzMwNEM3RSAgICAgKGJhc2UgMTYpCQlQYW5hc29uaWMgRWxlY3RyaWMgV29ya3MgQXV0b21hdGlvbiBDb250cm9scyBUZWNobm8gQ28uLEx0ZC4KKwkJCQkyLTktMTggQ2hpZG9yaQorCQkJCU9vdGEta3UgVG9reW8gMTQ2LTg1NDAKKwkJCQlKQVBBTgorCiszMC00RS1DMyAgIChoZXgpCQlUaWFuamluIFRlY2h1YSBUZWNobm9sb2d5IENvLiwgTHRkLgorMzA0RUMzICAgICAoYmFzZSAxNikJCVRpYW5qaW4gVGVjaHVhIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMTItMS0xNDAxIFRpYW5saW55dWFuIEZ1bGljaGVuZyBHdWxvdXhpIFJvYWQsTmFua2FpIERpc3RyaWN0IAorCQkJCVRpYW5qaW4gIDMwMDEwMQorCQkJCUNISU5BCisKKzMwLTUyLTVBICAgKGhleCkJCU5TVCBDby4sIExURAorMzA1MjVBICAgICAoYmFzZSAxNikJCU5TVCBDby4sIExURAorCQkJCVJNMzAxLERhZXJ5dW5nIFRlY2hubyBUb3duIDIsIDU2OS0yMQorCQkJCUdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtNzcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzMwLTYxLTE4ICAgKGhleCkJCVBhcmFkb20gSW5jLgorMzA2MTE4ICAgICAoYmFzZSAxNikJCVBhcmFkb20gSW5jLgorCQkJCThGLCBOMC4gMTc4LCBTZWMtMiwgR29uZ2Rhb3d1IFJkLgorCQkJCUhzaW5jaHUgQ2l0eSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiszMC02OS00QiAgIChoZXgpCQlSSU0KKzMwNjk0QiAgICAgKGJhc2UgMTYpCQlSSU0KKwkJCQkyOTUgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCAzVzgKKwkJCQlDQU5BREEKKworMzAtNzEtQjIgICAoaGV4KQkJSGFuZ3pob3UgUHJldmFpbCBPcHRvZWxlY3Ryb25pYyBFcXVpcG1lbnQgQ28uLExURC4KKzMwNzFCMiAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBQcmV2YWlsIE9wdG9lbGVjdHJvbmljIEVxdWlwbWVudCBDby4sTFRELgorCQkJCUluZHVzdHJpYWwgRGV2ZWxvcG1lbnQgQXJlYSwgR3VhbGkgVG93biwKKwkJCQkgWGlhb3NoYW4gCisJCQkJSGFuZ3pob3UgQ2l0eSBaaGUgSmlhbmcgMzExMjQxCisJCQkJQ0hJTkEKKworMzAtN0MtMzAgICAoaGV4KQkJUklNCiszMDdDMzAgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzMwLTg3LTMwICAgKGhleCkJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKzMwODczMCAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTEwMTA4CisJCQkJQ0hJTkEKKworMzAtOEMtRkIgICAoaGV4KQkJRHJvcGNhbQorMzA4Q0ZCICAgICAoYmFzZSAxNikJCURyb3BjYW0KKwkJCQk2MjUgTWFya2V0IFN0cmVldAorCQkJCVN1aXRlIDEwMTAKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiszMC1FNC04RSAgIChoZXgpCQlWb2RhZm9uZSBVSworMzBFNDhFICAgICAoYmFzZSAxNikJCVZvZGFmb25lIFVLCisJCQkJVm9kYWZvbmUgSG91c2UgCisJCQkJVGhlIENvbm5lY3Rpb24gCisJCQkJTmV3YnVyeSAgQmVya3NoaXJlICBSRzE0MkZOCisJCQkJVU5JVEVEIEtJTkdET00KKworMzAtRUItMjUgICAoaGV4KQkJSU5URUsgRElHSVRBTAorMzBFQjI1ICAgICAoYmFzZSAxNikJCUlOVEVLIERJR0lUQUwKKwkJCQk4MDEsIDh0aCBGbC4sIEFueWFuZyBLLWNlbnRlciBidWlsZGluZywgMTU5MS05CisJCQkJR3dhbnlhbmctZG9uZywgRG9uZ2FuLWd1CisJCQkJQW55YW5nICA0MzEtMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzMwLUVGLUQxICAgKGhleCkJCUFsc3RvbSBTdHJvbmd3aXNoIChTaGVuemhlbikgQ28uLCBMdGQuCiszMEVGRDEgICAgIChiYXNlIDE2KQkJQWxzdG9tIFN0cm9uZ3dpc2ggKFNoZW56aGVuKSBDby4sIEx0ZC4KKwkJCQk1RixCdWlsZGluZyBOby42LCBLZWppIE1pZGRsZSAyIFJvYWQgSGlnaC1UZWNoIEluZHVzdHJpYWwgUGFyaywgCisJCQkJU2hlbiBaaGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiszNC0wOC0wNCAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzM0MDgwNCAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOby4yODksIFNpbmh1IDNyZCBSZC4sIE5laWh1IERpc3RyaWN0LCAKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMzQtMTUtOUUgICAoaGV4KQkJQXBwbGUsIEluYworMzQxNTlFICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzM0LTIxLTA5ICAgKGhleCkJCUplbnNlbiBTY2FuZGluYXZpYSBBUworMzQyMTA5ICAgICAoYmFzZSAxNikJCUplbnNlbiBTY2FuZGluYXZpYSBBUworCQkJCUJhbGRlciBBbGzvv70gMworCQkJCUplc3NoZWltICAyMDUwCisJCQkJTk9SV0FZCisKKzM0LTI5LUVBICAgKGhleCkJCU1DRCBFTEVDVFJPTklDUyBTUC4gWiBPLk8uCiszNDI5RUEgICAgIChiYXNlIDE2KQkJTUNEIEVMRUNUUk9OSUNTIFNQLiBaIE8uTy4KKwkJCQlMZWxld2VsYSAyNgorCQkJCVp5d2llYyBTbGFza2llIDM0LTMwMAorCQkJCVBPTEFORAorCiszNC02OC00QSAgIChoZXgpCQlUZXJhd29ya3MgQ28uLCBMdGQuCiszNDY4NEEgICAgIChiYXNlIDE2KQkJVGVyYXdvcmtzIENvLiwgTHRkLgorCQkJCVJvb20gTm8uIDIwMSAsIDUxNS0zMCAsIE1vay1Eb25nCisJCQkJWWFuZ2NoZW9uLUd1CisJCQkJU2VvdWwgIDE1OC04MDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMzQtNkYtOTIgICAoaGV4KQkJV2hpdGUgUm9kZ2VycyBEaXZpc2lvbgorMzQ2RjkyICAgICAoYmFzZSAxNikJCVdoaXRlIFJvZGdlcnMgRGl2aXNpb24KKwkJCQk4MTAwIFdlc3QgRmxvcmlzc2FudAorCQkJCVAuTy4gQm94IDM2OTIxCisJCQkJU3QuIExvdWlzIE1PIDYzMTM2CisJCQkJVU5JVEVEIFNUQVRFUworCiszNC03OC03NyAgIChoZXgpCQlPLU5FVCBDb21tdW5pY2F0aW9ucyhTaGVuemhlbikgTGltaXRlZAorMzQ3ODc3ICAgICAoYmFzZSAxNikJCU8tTkVUIENvbW11bmljYXRpb25zKFNoZW56aGVuKSBMaW1pdGVkCisJCQkJIzEwLTEgU291dGgsTWFxdWVsaW5nIEluZHVzdHJpYWwgUGFyayxOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzM0LTdFLTM5ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiszNDdFMzkgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzM0LTgzLTAyICAgKGhleCkJCWlGb3Jjb20gQ28uLCBMdGQKKzM0ODMwMiAgICAgKGJhc2UgMTYpCQlpRm9yY29tIENvLiwgTHRkCisJCQkJMTMyNgorCQkJCVRzdWt1aWNoby1OYWthbm8KKwkJCQlTYWdhbWloYXJhIEthbmFnYXdhIDIyMC0wMjA3CisJCQkJSkFQQU4KKworMzQtODYtMkEgICAoaGV4KQkJSGVpbnogTGFja21hbm4gR21iSCAmIENvIEtHCiszNDg2MkEgICAgIChiYXNlIDE2KQkJSGVpbnogTGFja21hbm4gR21iSCAmIENvIEtHCisJCQkJSGFya29ydHN0cmFzc2UgMTUKKwkJCQlN77+9bnN0ZXIgTlJXIDQ4MTYzCisJCQkJR0VSTUFOWQorCiszNC05QS0wRCAgIChoZXgpCQlaQkQgRGlzcGxheXMgTHRkCiszNDlBMEQgICAgIChiYXNlIDE2KQkJWkJEIERpc3BsYXlzIEx0ZAorCQkJCU9yY2hhcmQgTGVhCisJCQkJV2lua2ZpZWxkIExhbmUKKwkJCQlXaW5kc29yIEJlcmtzaGlyZSBTTDQgNFJVCisJCQkJVU5JVEVEIEtJTkdET00KKworMzQtQTEtODMgICAoaGV4KQkJQVdhcmUsIEluYworMzRBMTgzICAgICAoYmFzZSAxNikJCUFXYXJlLCBJbmMKKwkJCQk2MTQgTWFzc2FjaHVzZXR0cyBBdmUuIAorCQkJCUNhbWJyaWRnZSBNQSAwMjEzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMzQtQTUtNUQgICAoaGV4KQkJVEVDSE5PU09GVCBJTlRFUk5BVElPTkFMIFNSTAorMzRBNTVEICAgICAoYmFzZSAxNikJCVRFQ0hOT1NPRlQgSU5URVJOQVRJT05BTCBTUkwKKwkJCQlSTzY2NDA5MDQKKwkJCQlTdHIuIFBhZHVyZXR1IDUwCisJCQkJQnVjdXJlc3RpIC0gU2VjdG9yIDYgMDYxOTkyCisJCQkJUk9NQU5JQQorCiszNC1BNy0wOSAgIChoZXgpCQlUcmV2aWwgc3JsCiszNEE3MDkgICAgIChiYXNlIDE2KQkJVHJldmlsIHNybAorCQkJCVZpYSBDb3Blcm5pY28gMQorCQkJCVBvenpvIGQmIzM5O0FkZGEgTUkgMjAwNjAKKwkJCQlJVEFMWQorCiszNC1BQS1FRSAgIChoZXgpCQlNaWtyb3Zpc2F0b3MgU2VydmlzYXMgVUFCCiszNEFBRUUgICAgIChiYXNlIDE2KQkJTWlrcm92aXNhdG9zIFNlcnZpc2FzIFVBQgorCQkJCVNhdmFub3JpdSBwci4gMTI1CisJCQkJS2F1bmFzICBMVDQ0MTQ2CisJCQkJTElUSFVBTklBCisKKzM0LUI1LTcxICAgKGhleCkJCVBMRFMKKzM0QjU3MSAgICAgKGJhc2UgMTYpCQlQTERTCisJCQkJU2NoYW56ZW5mZWxkc3RyYXNzZSAyCisJCQkJV2V0emxhciBIZXNzZW4gMzU1NzgKKwkJCQlHRVJNQU5ZCisKKzM0LUJBLTUxICAgKGhleCkJCVNlLUt1cmUgQ29udHJvbHMsIEluYy4KKzM0QkE1MSAgICAgKGJhc2UgMTYpCQlTZS1LdXJlIENvbnRyb2xzLCBJbmMuCisJCQkJMzcxNCBSdW5nZSBTdHJlZXQKKwkJCQlGcmFua2xpbiBQYXJrIElMIDYwMTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiszNC1CQy1BNiAgIChoZXgpCQlCZWlqaW5nIERpbmcgUWluZyBUZWNobm9sb2d5LCBMdGQuCiszNEJDQTYgICAgIChiYXNlIDE2KQkJQmVpamluZyBEaW5nIFFpbmcgVGVjaG5vbG9neSwgTHRkLgorCQkJCTIxOCBIYW4gVGFpIEh1YSBPZmZpY2UgQnVpbGRpbmcsIDEzIEh1YW4gWXVhbiBMdSwKKwkJCQlIYWlkaWFuIERpc3RyaWN0IEJlaWppbmcgMTAwMDgzCisJCQkJVU5JVEVEIFNUQVRFUworCiszNC1CRC1GOSAgIChoZXgpCQlTaGFuZ2hhaSBXREsgSW5kdXN0cmlhbCBDby4sTHRkLgorMzRCREY5ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFdESyBJbmR1c3RyaWFsIENvLixMdGQuCisJCQkJTm8uMjEwMCxTb25nemhlbiBSb2FkLFNvbmdqaWFuZyBEaXN0cmljdAorCQkJCVNoYW5naGFpICAyMDE2MDYKKwkJCQlDSElOQQorCiszNC1DMy1BQyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCiszNEMzQUMgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCTk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzM0LUM2LTlBICAgKGhleCkJCUVuZWNzeXMgTHRkCiszNEM2OUEgICAgIChiYXNlIDE2KQkJRW5lY3N5cyBMdGQKKwkJCQlIYXJzdG9uIE1pbGwKKwkJCQlSb3lzdG9uIFJvYWQKKwkJCQlDYW1icmlkZ2UgQ2FtYnJpZGdlc2hpcmUgQ0IyMiA3R0cKKwkJCQlVTklURUQgS0lOR0RPTQorCiszNC1DRS05NCAgIChoZXgpCQlQYXJzZWMgKFB0eSkgTHRkCiszNENFOTQgICAgIChiYXNlIDE2KQkJUGFyc2VjIChQdHkpIEx0ZAorCQkJCUJ1aWxkaW5nIDgtMTAgTWFuaGF0dGFuIE9mZmljZSBQYXJrCisJCQkJMTYgUGlldGVyIFN0cmVldCwgSGlnaHZlbGQgVGVjaG5vcGFyaworCQkJCUNlbnR1cmlvbiBHYXV0ZW5nIDAxNTcKKwkJCQlTT1VUSCBBRlJJQ0EKKworMzQtRDItQzQgICAoaGV4KQkJUkVOQSBHbWJIIFByaW50IFN5c3RlbWUKKzM0RDJDNCAgICAgKGJhc2UgMTYpCQlSRU5BIEdtYkggUHJpbnQgU3lzdGVtZQorCQkJCUhpZW5sb2hlc3RyYXNzZSAyNAorCQkJCU90dGVyZmluZyBCYXZhcmlhIDgzNjI0CisJCQkJR0VSTUFOWQorCiszNC1ERi0yQSAgIChoZXgpCQlGdWppa29uIEluZHVzdHJpYWwgQ28uLExpbWl0ZWQKKzM0REYyQSAgICAgKGJhc2UgMTYpCQlGdWppa29uIEluZHVzdHJpYWwgQ28uLExpbWl0ZWQKKwkJCQkxNi9GLiwgVG93ZXIgMSwgR3JhbmQgQ2VudHJhbCBQbGF6YSwxMzggU2hhdGluIFJ1cmFsIAorCQkJCUNvbW1pdHRlZSBSb2FkLFNoYXRpbiwgTi5ULiwgCisJCQkJNTIzOTMwCisJCQkJSE9ORyBLT05HCisKKzM0LUUwLUQ3ICAgKGhleCkJCURPTkdHVUFOIFFJU0hFTkcgRUxFQ1RST05JQ1MgSU5EVVNUUklBTCBDTy4sIExURAorMzRFMEQ3ICAgICAoYmFzZSAxNikJCURPTkdHVUFOIFFJU0hFTkcgRUxFQ1RST05JQ1MgSU5EVVNUUklBTCBDTy4sIExURAorCQkJCVhJTkpJIElORFVTVFJJQUwgWk9ORSwgTUFDSE9ORyBUT1dOCisJCQkJRE9OR0dVQU4gR1VBTkdET05HIDUyMzEyMworCQkJCUNISU5BCisKKzM0LUVGLTQ0ICAgKGhleCkJCTJXaXJlCiszNEVGNDQgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGt3eQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiszNC1FRi04QiAgIChoZXgpCQlOVFQgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzM0RUY4QiAgICAgKGJhc2UgMTYpCQlOVFQgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKwkJCQlOVFQgSGliaXlhIEJsZGcuIDdGCisJCQkJMS02LFVjaGlzYWl3YWktY2hvIDEtY2hvbWUKKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMC04MDE5CisJCQkJSkFQQU4KKworMzQtRjMtOUIgICAoaGV4KQkJV2l6TEFOIEx0ZC4KKzM0RjM5QiAgICAgKGJhc2UgMTYpCQlXaXpMQU4gTHRkLgorCQkJCVAuTy5Cb3ggNzk0OAorCQkJCUhhaWZhICAzMTA3OAorCQkJCUlTUkFFTAorCiszNC1GOS02OCAgIChoZXgpCQlBVEVLIFByb2R1Y3RzLCBMTEMKKzM0Rjk2OCAgICAgKGJhc2UgMTYpCQlBVEVLIFByb2R1Y3RzLCBMTEMKKwkJCQkyMTAgTkUgMTB0aCBBdmVudWUKKwkJCQlCcmFpbmVyZCBNTiA1NjQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMzgtMDEtOTcgICAoaGV4KQkJVG9zaGliYSBTYW1zdW5nIFN0b3JhZ2UgVGVjaG5vbGdveSBLb3JlYSBDb3Jwb3JhdGlvbgorMzgwMTk3ICAgICAoYmFzZSAxNikJCVRvc2hpYmEgU2Ftc3VuZyBTdG9yYWdlIFRlY2hub2xnb3kgS29yZWEgQ29ycG9yYXRpb24KKwkJCQkxNCBGbG9vciwgQmxkZy4gTm8uIDEwMiwgRGlnaXRhbCBFbXBpcmUyLCA0ODYsIFNpbi1kb25nLCBZZW9uZ3RvbmctZ3UsIFN1d29uLXNpLCAKKwkJCQlTdS13b24gR3llb25nZ2kgNDQzLTczNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszOC0wQS0wQSAgIChoZXgpCQlTa3ktQ2l0eSBDb21tdW5pY2F0aW9uIGFuZCBFbGVjdHJvbmljcyBMaW1pdGVkIENvbXBhbnkKKzM4MEEwQSAgICAgKGJhc2UgMTYpCQlTa3ktQ2l0eSBDb21tdW5pY2F0aW9uIGFuZCBFbGVjdHJvbmljcyBMaW1pdGVkIENvbXBhbnkKKwkJCQkxMTA5LCBCdWlsZGluZyBBLCBLZWZhIEluZHVzdHJpYWwgcGFyaywgSHVhbmd1YW4gc291dGggcm9hZCwgR3VhbmxhbiwgCisJCQkJQmFvYW4sIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMTAKKwkJCQlDSElOQQorCiszOC0wRC1ENCAgIChoZXgpCQlQcmltYXggRWxlY3Ryb25pY3MgTFRELgorMzgwREQ0ICAgICAoYmFzZSAxNikJCVByaW1heCBFbGVjdHJvbmljcyBMVEQuCisJCQkJOEYsTm8uIDY2OSwgUnVleSBLdWFuZyBSb2FkLCBOZWlodQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiszOC0xNi1EMSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzM4MTZEMSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMzgtMjItOUQgICAoaGV4KQkJUElSRUxMSSBCUk9BREJBTkQgU09MVVRJT05TIAorMzgyMjlEICAgICAoYmFzZSAxNikJCVBJUkVMTEkgQlJPQURCQU5EIFNPTFVUSU9OUyAKKwkJCQlWSUFMRSBTQVJDQSAyMjIgCisJCQkJICBNSUxBTk8gIElUQUxZIDIwMTI2CisJCQkJSVRBTFkKKworMzgtMjItRDYgICAoaGV4KQkJSDNDIFRlY2hub2xvZ2llcyBDby4sIExpbWl0ZWQKKzM4MjJENiAgICAgKGJhc2UgMTYpCQlIM0MgVGVjaG5vbG9naWVzIENvLiwgTGltaXRlZAorCQkJCTMxMCBMaXVoZSBSb2FkLCBaaGlqaWFuZyBTY2llbmNlIFBhcmsKKwkJCQlIYW5nemhvdSBaaGVqaWFuZywgIDMxMDA1MworCQkJCUNISU5BCisKKzM4LTI2LUNEICAgKGhleCkJCUFORFRFSyAgCiszODI2Q0QgICAgIChiYXNlIDE2KQkJQU5EVEVLICAKKwkJCQlBbSBTb2VsZG5lcm1vb3MgMTcKKwkJCQlIYWxsYmVyZ21vb3MgQmF2YXJpYSA1Mzk5CisJCQkJR0VSTUFOWQorCiszOC0zMS1BQyAgIChoZXgpCQlXRUcKKzM4MzFBQyAgICAgKGJhc2UgMTYpCQlXRUcKKwkJCQlBdi4gUHJlZi4gV2FsZGVtYXIgR3J1YmJhLCAzMDAwCisJCQkJSmFyYWd177+9IGRvIFN1bCBTYW50YSBDYXRhcmluYSA4OTI1Ni05MDAKKwkJCQlCUkFaSUwKKworMzgtNTItMUEgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQgNzcwNQorMzg1MjFBICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50IDc3MDUKKwkJCQk2MDAgTWFyY2ggUmQuCisJCQkJT3R0YXdhIE9uYXRyaW8gSzBBIDFUMAorCQkJCUNBTkFEQQorCiszOC01OC0wQyAgIChoZXgpCQlQYW5hY2Nlc3MgU3lzdGVtcyBHbWJICiszODU4MEMgICAgIChiYXNlIDE2KQkJUGFuYWNjZXNzIFN5c3RlbXMgR21iSAorCQkJCUd1dGVuYmVyZ3N0cmHvv71lIDgKKwkJCQlJc21hbmluZyBCWSA4NTczNworCQkJCUdFUk1BTlkKKworMzgtNTktRjkgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorMzg1OUY5ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAyMDE2MTMKKwkJCQlDSElOQQorCiszOC01Ri1DMyAgIChoZXgpCQlZdSBKZW9uZyBTeXN0ZW0sIENvLkx0ZAorMzg1RkMzICAgICAoYmFzZSAxNikJCVl1IEplb25nIFN5c3RlbSwgQ28uTHRkCisJCQkJIzUwMywgRG9uZyBpbCBCL0QsIDgyNiwgR3Vyby0zZG9uZywgCisJCQkJR3Vyby1HdSwgCisJCQkJU2VvdWwgIDE1Mi04NzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMzgtNjMtRjYgICAoaGV4KQkJM05PRCBNVUxUSU1FRElBKFNIRU5aSEVOKUNPLixMVEQKKzM4NjNGNiAgICAgKGJhc2UgMTYpCQkzTk9EIE1VTFRJTUVESUEoU0hFTlpIRU4pQ08uLExURAorCQkJCUY2LEJ1aWxkaW5nMTEsU2hlbnpoZW4gU29mdHdhcmUgUGFyaworCQkJCU5vLjIgS2VqaXpob25nIFJvYWQsTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiszOC02RS0yMSAgIChoZXgpCQlXYXNpb24gR3JvdXAgTHRkLgorMzg2RTIxICAgICAoYmFzZSAxNikJCVdhc2lvbiBHcm91cCBMdGQuCisJCQkJTm8uNDY4IFdlc3QgVG9uZ3ppcG8gUm9hZCBIaWdoLVRlY2ggSW5kdXN0cmlhbCBEZXZlbG9wbWVudCBab25lCisJCQkJQ2hhbmdzaGEgQ2l0eSBIdW5hbiBQcm92aW5jZSwgNDEwMjA1IAorCQkJCUNISU5BCisKKzM4LTcyLUMwICAgKGhleCkJCUNPTVRSRU5ECiszODcyQzAgICAgIChiYXNlIDE2KQkJQ09NVFJFTkQKKwkJCQkzRi0xLDEwIExhbmUgNjA5LCBDaHVuZyBIc2luIFJvYWQsIFNlY3Rpb24gNQorCQkJCVNhbiBDaHVuZyBDaXR5LCAKKwkJCQlUYWlwZWkgSHNpZW4gIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMzgtOTEtRkIgICAoaGV4KQkJWGVub3ggSG9sZGluZyBCVgorMzg5MUZCICAgICAoYmFzZSAxNikJCVhlbm94IEhvbGRpbmcgQlYKKwkJCQlMaW5nZWRpamsgODAKKwkJCQlUcmljaHQgR2VsZGVybGFuZCA0MTk2IEhDCisJCQkJTkVUSEVSTEFORFMKKworMzgtOTUtOTIgICAoaGV4KQkJQmVpamluZyBUZW5keXJvbiBDb3Jwb3JhdGlvbgorMzg5NTkyICAgICAoYmFzZSAxNikJCUJlaWppbmcgVGVuZHlyb24gQ29ycG9yYXRpb24KKwkJCQkxODEwLFRvd2VyIEIsSmluLW1hLEJ1aWxkaW5nLDE3IEVhc3QgUWluZyBIdWEgUm9hZCAKKwkJCQlIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgzCisJCQkJQ0hJTkEKKworMzgtOUYtODMgICAoaGV4KQkJT1ROIFN5c3RlbXMgTi5WLgorMzg5RjgzICAgICAoYmFzZSAxNikJCU9UTiBTeXN0ZW1zIE4uVi4KKwkJCQlBdGVhbGFhbiAzNAorCQkJCUhlcmVudGFscyAgMjIwMAorCQkJCUJFTEdJVU0KKworMzgtQTktNUYgICAoaGV4KQkJQWN0aWZpbyBJbmMKKzM4QTk1RiAgICAgKGJhc2UgMTYpCQlBY3RpZmlvIEluYworCQkJCTIyNSBXeW1hbiBTdHJlZXQKKwkJCQlTdWl0ZSAzMAorCQkJCVdhbHRoYW0gTUEgMDI0NTEKKwkJCQlJTkRJQQorCiszOC1CQi0yMyAgIChoZXgpCQlPelZpc2lvbiBBbWVyaWNhIExMQworMzhCQjIzICAgICAoYmFzZSAxNikJCU96VmlzaW9uIEFtZXJpY2EgTExDCisJCQkJNDAwIFdlc3QgQ3VtbWluZ3MgUGFyaworCQkJCVdvYnVybiBNQSAwMTgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMzgtQzctQkEgICAoaGV4KQkJQ1MgU2VydmljZXMgQ28uLEx0ZC4KKzM4QzdCQSAgICAgKGJhc2UgMTYpCQlDUyBTZXJ2aWNlcyBDby4sTHRkLgorCQkJCUltb24gQkxERyA5NSBFZG9tYWNoaQorCQkJCUNodW9oLWt1CisJCQkJS29iZSBIeW9nbyA2NTAwMDMzCisJCQkJSkFQQU4KKworMzgtQzgtNUMgICAoaGV4KQkJQ2lzY28gU1BWVEcKKzM4Qzg1QyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlNUyA0LlQuNjA3CisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDAxNworCQkJCVVOSVRFRCBTVEFURVMKKworMzgtRDEtMzUgICAoaGV4KQkJRWFzeUlPIENvcnBvcmF0aW9uIFNkbi4gQmhkLgorMzhEMTM1ICAgICAoYmFzZSAxNikJCUVhc3lJTyBDb3Jwb3JhdGlvbiBTZG4uIEJoZC4KKwkJCQlOby4gMzItMiAmYW1wOyAzMi0zLCBKYWxhbiBQdXRlcmkgMi80CisJCQkJQmFuZGFyIFB1dGVyaQorCQkJCVB1Y2hvbmcgU2VsYW5nb3IgNDcxMDAKKwkJCQlNQUxBWVNJQQorCiszOC1FNy1EOCAgIChoZXgpCQlIVEMgQ29ycG9yYXRpb24KKzM4RTdEOCAgICAgKGJhc2UgMTYpCQlIVEMgQ29ycG9yYXRpb24KKwkJCQlOby4yMyBYaW5naHVhIFJvYWQKKwkJCQlUYW95dWFuIENpdHkKKwkJCQlUYW95dWFuIENvdW50eSAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiszOC1FOC1ERiAgIChoZXgpCQliIGdtYmggbWVkaWVuICsgZGF0ZW5iYW5rZW4KKzM4RThERiAgICAgKGJhc2UgMTYpCQliIGdtYmggbWVkaWVuICsgZGF0ZW5iYW5rZW4KKwkJCQlLdXJmdWVyc3RlbnN0cmFzc2UgMjIKKwkJCQlMdWR3aWdzYnVyZyBCVyA3MTYzNgorCQkJCUdFUk1BTlkKKworMzgtRTktOEMgICAoaGV4KQkJUmVjbyBTLnAuQS4KKzM4RTk4QyAgICAgKGJhc2UgMTYpCQlSZWNvIFMucC5BLgorCQkJCXZpYSBkZWxsJiMzOTtJbmR1c3RyaWEsIDgKKwkJCQlNb250YW5vIEx1Y2lubyBDTyAyMjA3MAorCQkJCUlUQUxZCisKKzM4LUZFLUM1ICAgKGhleCkJCUVsbGlwcyBCLlYuCiszOEZFQzUgICAgIChiYXNlIDE2KQkJRWxsaXBzIEIuVi4KKwkJCQlVcmtob3ZlbnNld2VnIDExCisJCQkJRWluZGhvdmVuIE5vb3JkLUJyYWJhbnQgNTY0MSBLQQorCQkJCU5FVEhFUkxBTkRTCisKKzNDLTAyLUIxICAgKGhleCkJCUNyZWF0aW9uIFRlY2hub2xvZ2llcyBMUAorM0MwMkIxICAgICAoYmFzZSAxNikJCUNyZWF0aW9uIFRlY2hub2xvZ2llcyBMUAorCQkJCTM5MzkgTm9ydGggRnJhc2VyIFdheQorCQkJCUJ1cm5hYnkgQkMgVjVKIDVKMgorCQkJCUNBTkFEQQorCiszQy0wNC1CRiAgIChoZXgpCQlQUkFWSVMgU1lTVEVNUyBDby5MdGQuLCAKKzNDMDRCRiAgICAgKGJhc2UgMTYpCQlQUkFWSVMgU1lTVEVNUyBDby5MdGQuLCAKKwkJCQk0RiwgNUYgSmFleW9vbiBCbGQsIDc1LTMgWWFuZ2phZS1Eb25nLCAKKwkJCQlTZW91bCBTZW9jaG8tR3UgMTM3LTg4OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszQy0wNS1BQiAgIChoZXgpCQlQcm9kdWN0IENyZWF0aW9uIFN0dWRpbworM0MwNUFCICAgICAoYmFzZSAxNikJCVByb2R1Y3QgQ3JlYXRpb24gU3R1ZGlvCisJCQkJNDI1IFdlc3RsYWtlIEF2ZSBOCisJCQkJU2VhdHRsZSBXQSA5ODEwOQorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtMDctNTQgICAoaGV4KQkJQXBwbGUgSW5jCiszQzA3NTQgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiszQy0wOS02RCAgIChoZXgpCQlQb3dlcmhvdXNlIER5bmFtaWNzCiszQzA5NkQgICAgIChiYXNlIDE2KQkJUG93ZXJob3VzZSBEeW5hbWljcworCQkJCTEgQnJpZGdlIFN0cmVldAorCQkJCU5ld3RvbiBNQSAwMjQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtMEYtQzEgICAoaGV4KQkJS0JDIE5ldHdvcmtzCiszQzBGQzEgICAgIChiYXNlIDE2KQkJS0JDIE5ldHdvcmtzCisJCQkJMjU2OTEgQXRsYW50aWMgT2NlYW4gRHIKKwkJCQlTdWl0ZSBCMworCQkJCUxha2UgRm9yZXN0IENBIDkyNjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiszQy0xMC02RiAgIChoZXgpCQlBTEJBSElUSCBURUNITk9MT0dJRVMgCiszQzEwNkYgICAgIChiYXNlIDE2KQkJQUxCQUhJVEggVEVDSE5PTE9HSUVTIAorCQkJCTE2NSwgS2luZyBBYmR1bGxhaCBTZWNvbmQgU3RyZWV0CisJCQkJQW1tYW4gIDExOTUzCisJCQkJSk9SREFOCisKKzNDLTE5LTE1ICAgKGhleCkJCUdGSSBDaHJvbm8gVGltZQorM0MxOTE1ICAgICAoYmFzZSAxNikJCUdGSSBDaHJvbm8gVGltZQorCQkJCTEyMSBydWUgZGVzIEd1aWxsZWVzCisJCQkJQ0hBVVJBWSAgNzkxODUKKwkJCQlGUkFOQ0UKKworM0MtMUEtNzkgICAoaGV4KQkJSHVheXVhbiBUZWNobm9sb2d5IENPLixMVEQKKzNDMUE3OSAgICAgKGJhc2UgMTYpCQlIdWF5dWFuIFRlY2hub2xvZ3kgQ08uLExURAorCQkJCVIzMDggQmxvY2sgSmluZ21lbmcgSGlnaC1UZWNoIEJ1aWxkaW5nLE5PLjUtMSBTaGFuZ2RpIEVhc3QgUm9hZCwKKwkJCQlIYWlkaWFuIERpc3RyaWN0LAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzNDLTFDLUJFICAgKGhleCkJCUpBREFLIExMQworM0MxQ0JFICAgICAoYmFzZSAxNikJCUpBREFLIExMQworCQkJCTcyNzkgV2lsbGlhbSBCYXJyeSBCbHZkCisJCQkJTm9ydGggU3lyYWN1c2UgTlkgMTMyMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLTI2LUQ1ICAgKGhleCkJCVNvdGVyYSBXaXJlbGVzcworM0MyNkQ1ICAgICAoYmFzZSAxNikJCVNvdGVyYSBXaXJlbGVzcworCQkJCTk0NDQgV2FwbGVzIFN0cmVldAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtMjctNjMgICAoaGV4KQkJU0xFIHF1YWxpdHkgZW5naW5lZXJpbmcgR21iSCAmYW1wOyBDby4gS0cKKzNDMjc2MyAgICAgKGJhc2UgMTYpCQlTTEUgcXVhbGl0eSBlbmdpbmVlcmluZyBHbWJIICZhbXA7IENvLiBLRworCQkJCUpvc2VmLUJ1Y2hpbmdlci1TdHIuIDkKKwkJCQlHcmFmZW5hdSBCYXZhcmlhIDk0NDgxCisJCQkJR0VSTUFOWQorCiszQy0yRC1CNyAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworM0MyREI3ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUzg3MjMKKwkJCQlEYWxsYXMgVGV4YXMgNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLTJGLTNBICAgKGhleCkJCVNGT1JaQVRPIENvcnAuCiszQzJGM0EgICAgIChiYXNlIDE2KQkJU0ZPUlpBVE8gQ29ycC4KKwkJCQk4NjMKKwkJCQlBUkFJCisJCQkJSElOTy1TSEkgVE9LWU8gMTkxLTAwMjIKKwkJCQlKQVBBTgorCiszQy0zOS1DMyAgIChoZXgpCQlKVyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzNDMzlDMyAgICAgKGJhc2UgMTYpCQlKVyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkzQTE3LCBOby4gNSBIc2luLXlpIFJkLiwgU2VjLiA1CisJCQkJVGFpcGVpICAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzNDLTRBLTkyICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorM0M0QTkyICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiszQy00Qy02OSAgIChoZXgpCQlJbmZpbml0eSBTeXN0ZW0gUy5MLgorM0M0QzY5ICAgICAoYmFzZSAxNikJCUluZmluaXR5IFN5c3RlbSBTLkwuCisJCQkJQ3J0cmEuIE4tSUksIEttIDQ4LDUgUG9sLiBJbmQuIENhYmFuaWxsYXMgZGVsIENhbXBvLCBQYXJjLiAxMkIKKwkJCQlHdWFkYWxhamFyYSAgMTkxNzEKKwkJCQlTUEFJTgorCiszQy01QS0zNyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCiszQzVBMzcgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszQy01Ri0wMSAgIChoZXgpCQlTeW5lcmNoaXAgQ28uLCBMdGQuCiszQzVGMDEgICAgIChiYXNlIDE2KQkJU3luZXJjaGlwIENvLiwgTHRkLgorCQkJCWMvbyBTeW5lcmNoaXAgVVNBIENvcnAuCisJCQkJODgwIEUuIEFycXVlcyBBdmUuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiszQy02Mi0wMCAgIChoZXgpCQlTYW1zdW5nIGVsZWN0cm9uaWNzIENPLiwgTFRECiszQzYyMDAgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBlbGVjdHJvbmljcyBDTy4sIExURAorCQkJCTQxNiwgTWFldGFuLTNkb25nLCBZZW9uZ3RvbmctZ3UsCisJCQkJU3V3b24tQ2l0eSBHeWVvbmdnaS1kbyA0NDMtNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzNDLTYyLTc4ICAgKGhleCkJCVNIRU5aSEVOIEpFVE5FVCBURUNITk9MT0dZIENPLixMVEQuCiszQzYyNzggICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gSkVUTkVUIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQlSb29tIDQwMyw0dGggZmxvb3IsUWluZ2h1YSBJbmZvcm1hdGlvbiBCdWlsZGluZyxLZXl1YW4gUm9hZCxOb3J0aCBEaXN0cmljdCBvZiBUZWNoLVBhcmssTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiszQy02Ny0yQyAgIChoZXgpCQlTY2lvdmlkIEluYy4KKzNDNjcyQyAgICAgKGJhc2UgMTYpCQlTY2lvdmlkIEluYy4KKwkJCQkzODcgUyBTaWx2ZXJicm9vayBEcgorCQkJCUFuYWhlaW0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLTZGLTQ1ICAgKGhleCkJCUZpYmVycHJvIEluYy4KKzNDNkY0NSAgICAgKGJhc2UgMTYpCQlGaWJlcnBybyBJbmMuCisJCQkJNTktNCBKYW5nLWRvbmcsIFl1c29uZy1ndQorCQkJCURlYWpvbiAzMDUtMzQzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzNDLTc0LTM3ICAgKGhleCkJCVJJTQorM0M3NDM3ICAgICAoYmFzZSAxNikJCVJJTQorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCiszQy03NS00QSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorM0M3NTRBICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtOEItRkUgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworM0M4QkZFICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworM0MtOTEtNTcgICAoaGV4KQkJSGFuZ3pob3UgWXVsb25nIENvbm11bmljYXRpb24gQ28uLEx0ZAorM0M5MTU3ICAgICAoYmFzZSAxNikJCUhhbmd6aG91IFl1bG9uZyBDb25tdW5pY2F0aW9uIENvLixMdGQKKwkJCQk1RiBCdWlsZGluZyAyLE5vLjU2LExpdWhlIFJvYWQsWGlodSBEaXN0cmljdAorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDAyMworCQkJCUNISU5BCisKKzNDLTk5LUY3ICAgKGhleCkJCUxhbnNlbnRlY2hub2xvZ3kgQUIKKzNDOTlGNyAgICAgKGJhc2UgMTYpCQlMYW5zZW50ZWNobm9sb2d5IEFCCisJCQkJUu+/vXJrdWxsc3bvv71nZW4gNAorCQkJCUhhbG1zdGFkICAzMDI0MQorCQkJCVNXRURFTgorCiszQy1BNy0yQiAgIChoZXgpCQlNUlYgQ29tbXVuaWNhdGlvbnMgKE5ldHdvcmtzKSBMVEQKKzNDQTcyQiAgICAgKGJhc2UgMTYpCQlNUlYgQ29tbXVuaWNhdGlvbnMgKE5ldHdvcmtzKSBMVEQKKwkJCQlQLk8gQm94IDYxNAorCQkJCVlva25lYW0gICAyMDY5MgorCQkJCUlTUkFFTAorCiszQy1CMS01QiAgIChoZXgpCQlBdmF5YSwgSW5jCiszQ0IxNUIgICAgIChiYXNlIDE2KQkJQXZheWEsIEluYworCQkJCTIxMSBNb3VudCBBaXJ5IFJvYWQKKwkJCQlCYXNraW5nIFJpZGdlIE5KIDA3OTIwLTIzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLUIxLTdGICAgKGhleCkJCVdhdHR3YXRjaGVycyBQdHkgTGQKKzNDQjE3RiAgICAgKGJhc2UgMTYpCQlXYXR0d2F0Y2hlcnMgUHR5IExkCisJCQkJMjIgV29vZGJ1cnkgUmQgU3QuIEl2ZXMKKwkJCQlTeWRuZXkgTlNXIDIwNzUKKwkJCQlBVVNUUkFMSUEKKworM0MtQkQtRDggICAoaGV4KQkJTEcgRUxFQ1RST05JQ1MgSU5DCiszQ0JERDggICAgIChiYXNlIDE2KQkJTEcgRUxFQ1RST05JQ1MgSU5DCisJCQkJMTktMSwgQ0hFT05HSE8tUkksIEpJTldJLU1ZRU9OCisJCQkJUFlFT05HVEFFSyBHWUVPTkdHSS1ETyA0NTEtNzEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzNDLUMwLUM2ICAgKGhleCkJCWQmYW1wO2IgYXVkaW90ZWNobmlrIEdtYkgKKzNDQzBDNiAgICAgKGJhc2UgMTYpCQlkJmFtcDtiIGF1ZGlvdGVjaG5payBHbWJICisJCQkJRXVnZW4gQWRvbGZmIFN0ciAxMzQKKwkJCQlCYWNrbmFuZyBCYWRlbiBXdWVydHRlbWJlcmcgNzE1MjIKKwkJCQlHRVJNQU5ZCisKKzNDLUQxLTZFICAgKGhleCkJCVRlbGVwb3dlciBDb21tdW5pY2F0aW9uIENvLiwgTHRkCiszQ0QxNkUgICAgIChiYXNlIDE2KQkJVGVsZXBvd2VyIENvbW11bmljYXRpb24gQ28uLCBMdGQKKwkJCQk1L0YsWm9uZ2hlIEJ1aWxkaW5nLCBIYW50aWFuIFRlY2hub2xvZ3kgVG93bixHdWlwaW5nIFJELE5hbmhhaSBEaXN0cmljdCxGCisJCQkJRm9zaGFuIENpdHkgR3Vhbmdkb25nIDUyODI1MQorCQkJCUNISU5BCisKKzNDLUQ5LTJCICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorM0NEOTJCICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlNYWlsY29kZSA2LjMuMDQ5CisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtREYtMUUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworM0NERjFFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtRTUtQTYgICAoaGV4KQkJSGFuZ3pob3UgSDNDIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzNDRTVBNiAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBIM0MgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCU9yaWVudGFsIEVsZWN0cm9uaWMgQmxkLiwgTk8uMixDaHVhbmd5ZSBSb2FkCisJCQkJU2hhbmcgRGkgSW5mb3JtYXRpb24gSW5kdXN0cnkgQmFzZSwgSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzNDLUVBLTRGICAgKGhleCkJCTJXaXJlCiszQ0VBNEYgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlICBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtRjUtMkMgICAoaGV4KQkJRFNQRUNJQUxJU1RTIEdtYkgKKzNDRjUyQyAgICAgKGJhc2UgMTYpCQlEU1BFQ0lBTElTVFMgR21iSAorCQkJCUthaXNlcmluLUF1Z3VzdGEtQWxsZWUgMTAtMTEKKwkJCQlCZXJsaW4gIDEwNTUzCisJCQkJR0VSTUFOWQorCiszQy1GNy0yQSAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorM0NGNzJBICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTcwCisJCQkJRklOTEFORAorCis0MC0wMS1DNiAgIChoZXgpCQkzQ09NIEVVUk9QRSBMVEQKKzQwMDFDNiAgICAgKGJhc2UgMTYpCQkzQ09NIEVVUk9QRSBMVEQKKwkJCQlQZW9wbGVidWlsZGluZyAyCisJCQkJTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCis0MC0wNC0wQyAgIChoZXgpCQlBJlQKKzQwMDQwQyAgICAgKGJhc2UgMTYpCQlBJlQKKwkJCQkjNDExLCBXaWxsIFRvd24sIDQwMi0zCisJCQkJU2FuZy1Eb25nLCBXb25taS1HdSwgCisJCQkJQnVjaGVvbi1TaSBHeWVvbmdnaS1EbyA0MjAtODE0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzQwLTEyLUU0ICAgKGhleCkJCUNvbXBhc3MtRU9TCis0MDEyRTQgICAgIChiYXNlIDE2KQkJQ29tcGFzcy1FT1MKKwkJCQk3IEdpYm9yZWkgSXNyYWVsCisJCQkJTmF0YW55YSAgNDI1MDQKKwkJCQlJU1JBRUwKKworNDAtMTMtRDkgICAoaGV4KQkJR2xvYmFsIEVTCis0MDEzRDkgICAgIChiYXNlIDE2KQkJR2xvYmFsIEVTCisJCQkJU2luaW3vv71lbnRpZSA4IGIKKwkJCQlFc3BvbyAgMDI2MzEKKwkJCQlGSU5MQU5ECisKKzQwLTE1LTk3ICAgKGhleCkJCVByb3RlY3QgQW1lcmljYSwgSW5jLgorNDAxNTk3ICAgICAoYmFzZSAxNikJCVByb3RlY3QgQW1lcmljYSwgSW5jLgorCQkJCTUxMDAgTiBJSC0zNQorCQkJCVN1aXRlIEIKKwkJCQlSb3VuZCBSb2NrIFRYIDc4NjgxCisJCQkJVU5JVEVEIFNUQVRFUworCis0MC0xNi05RiAgIChoZXgpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKzQwMTY5RiAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQkxLTZGLCBCdWlsZGluZyAyLCBQaW5nc2hhbmRheXVhbiBJbmR1c3RyaWFsLCBTb3V0aCBab25lLAorCQkJCVRhb3l1YW4gU3RyZWV0LCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworNDAtMTgtRDcgICAoaGV4KQkJV3lsZSBUZWxlbWV0cnkgYW5kIERhdGEgU3lzdGVtcworNDAxOEQ3ICAgICAoYmFzZSAxNikJCVd5bGUgVGVsZW1ldHJ5IGFuZCBEYXRhIFN5c3RlbXMKKwkJCQk0NDQxNyBQZWNhbiBDVAorCQkJCUNhbGlmb3JuaWEgTUQgMjA2MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLTFELTU5ICAgKGhleCkJCUJpb21ldHJpYyBBc3NvY2lhdGVzLCBMUAorNDAxRDU5ICAgICAoYmFzZSAxNikJCUJpb21ldHJpYyBBc3NvY2lhdGVzLCBMUAorCQkJCTk0NzUgRGVlcmVjbyBSZC4KKwkJCQlTdWl0ZSAzMDQKKwkJCQlUaW1vbml1bSBNRCAyMTA5MworCQkJCVVOSVRFRCBTVEFURVMKKworNDAtMjItRUQgICAoaGV4KQkJRGlnaXRhbCBQcm9qZWN0aW9uIEx0ZAorNDAyMkVEICAgICAoYmFzZSAxNikJCURpZ2l0YWwgUHJvamVjdGlvbiBMdGQKKwkJCQlHcmVlbnNpZGUgV2F5CisJCQkJTWlkZGxldG9uCisJCQkJTWFuY2hlc3RlciBMYW5jcyBNMjQgMVhYCisJCQkJVU5JVEVEIEtJTkdET00KKworNDAtMjUtQzIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis0MDI1QzIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis0MC0yQi1BMSAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorNDAyQkExICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKKzQwLTJDLUY0ICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorNDAyQ0Y0ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTGFuZSAzNTEsIFRhaXBpbmcgUmQuIFNlYy4gMSwgVHNhbyBUdWVuLCAKKwkJCQlOYW4tVG91IEhzaWVuLCAgNTQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0MC0zMC0wNCAgIChoZXgpCQlBcHBsZSwgSW5jLgorNDAzMDA0ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis0MC0zNy1BRCAgIChoZXgpCQlNYWNybyBJbWFnZSBUZWNobm9sb2d5LCBJbmMuCis0MDM3QUQgICAgIChiYXNlIDE2KQkJTWFjcm8gSW1hZ2UgVGVjaG5vbG9neSwgSW5jLgorCQkJCUVhc3QgQmxkZy4sIDZ0aCBGbG9vciwgSVQgVmVudHVyZSBUb3dlciwKKwkJCQk3OCBHYXJha2Jvbi1Eb25nLCBTb25ncGEtR3UsCisJCQkJU2VvdWwgIDEzOC05NTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNDAtM0MtRkMgICAoaGV4KQkJQXBwbGUgSW5jCis0MDNDRkMgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBpbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis0MC00MC0yMiAgIChoZXgpCQlaSVYKKzQwNDAyMiAgICAgKGJhc2UgMTYpCQlaSVYKKwkJCQlQYXJxdWUgVGVjbm9s77+9Z2ljbywgMjEwCisJCQkJWkFNVURJTyBWSVpDQVlBIDQ4MTcwCisJCQkJU1BBSU4KKworNDAtNDAtNkIgICAoaGV4KQkJSWNvbWVyYQorNDA0MDZCICAgICAoYmFzZSAxNikJCUljb21lcmEKKwkJCQlWaWtpbmdzZ2F0YW4gMworCQkJCUfvv710ZWJvcmcgIDQxMTA0CisJCQkJU1dFREVOCisKKzQwLTRBLTAzICAgKGhleCkJCVp5WEVMIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCis0MDRBMDMgICAgIChiYXNlIDE2KQkJWnlYRUwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKwkJCQlOby42IElubm92YXRpb24gUm9hZCBJSQorCQkJCVNjaWVuY2UgUGFyaworCQkJCUhzaW4tQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQwLTRELThFICAgKGhleCkJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKzQwNEQ4RSAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworNDAtNTItMEQgICAoaGV4KQkJUGljbyBUZWNobm9sb2d5Cis0MDUyMEQgICAgIChiYXNlIDE2KQkJUGljbyBUZWNobm9sb2d5CisJCQkJSmFtZXMgSG91c2UsIE1hcmxib3JvdWdoIFJvYWQKKwkJCQlDb2xtd29ydGggQnVzaW5lc3MgUGFyaworCQkJCVN0IE5lb3RzIENhbWJyaWRnZXNoaXJlICBQRTE5IDhZUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzQwLTU1LTM5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzQwNTUzOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLTVBLTlCICAgKGhleCkJCUFOT1ZPCis0MDVBOUIgICAgIChiYXNlIDE2KQkJQU5PVk8KKwkJCQlaSSBkZSBCcmFjaGV1eCAKKwkJCQkxNiwgUnVlIEpvc2VwaCBDdWdub3QKKwkJCQlCRUFVVkFJUyAgNjAwMDAKKwkJCQlGUkFOQ0UKKworNDAtNUYtQkUgICAoaGV4KQkJUklNCis0MDVGQkUgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzQwLTVGLUMyICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCis0MDVGQzIgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLTYxLTg2ICAgKGhleCkJCU1JQ1JPLVNUQVIgSU5UJ0wgQ08uLExURAorNDA2MTg2ICAgICAoYmFzZSAxNikJCU1JQ1JPLVNUQVIgSU5UJ0wgQ08uLExURAorCQkJCU5vLjY5LExpLURlIFN0CisJCQkJSnVuZy1IbyBDaXR5IFRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQwLTYxLThFICAgKGhleCkJCUhvcnQtUGxhbgorNDA2MThFICAgICAoYmFzZSAxNikJCUhvcnQtUGxhbgorCQkJCTY2Ni0xIFNoaW1vaGFyYQorCQkJCUhpcmFoYXJhCisJCQkJS29tb3JvIE5hZ2FubyAzODQtMDA5MgorCQkJCUpBUEFOCisKKzQwLTgzLURFICAgKGhleCkJCU1vdG9yb2xhCis0MDgzREUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEKKwkJCQlPbmUgTW90b3JvbGEgUGxhemEKKwkJCQlIb2x0c3ZpbGxlIE5ZIDExNzQyCisJCQkJVU5JVEVEIFNUQVRFUworCis0MC04NC05MyAgIChoZXgpCQlDbGF2aXN0ZXIgQUIKKzQwODQ5MyAgICAgKGJhc2UgMTYpCQlDbGF2aXN0ZXIgQUIKKwkJCQlTam9nYXRhbiA2SgorCQkJCU9ybnNrb2xkc3ZpayAgODkxNjAKKwkJCQlTV0VERU4KKworNDAtOEEtOUEgICAoaGV4KQkJVElURU5HIENPLiwgTHRkLgorNDA4QTlBICAgICAoYmFzZSAxNikJCVRJVEVORyBDTy4sIEx0ZC4KKwkJCQk3RmwuIFNoaW5kbyBCL0QgMTAgR2FyYWstZG9uZworCQkJCVNvbmdwYS1ndQorCQkJCVNlb3VsICAxMzgtMTYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzQwLThCLUY2ICAgKGhleCkJCVNoZW56aGVuIFRDTCBOZXcgVGVjaG5vbG9neSBDbzsgTHRkLgorNDA4QkY2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFRDTCBOZXcgVGVjaG5vbG9neSBDbzsgTHRkLgorCQkJCVRDTCBCdWlsZGluZywgIzUgQ2VudHJhbCBOYW5oYWkgUm9hZCwgTmFuc2hhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiwgR3Vhbmdkb25nLCAgNTE4MDY3CisJCQkJQ0hJTkEKKworNDAtOTUtNTggICAoaGV4KQkJQWlzaW5vIENvcnBvcmF0aW9uCis0MDk1NTggICAgIChiYXNlIDE2KQkJQWlzaW5vIENvcnBvcmF0aW9uCisJCQkJTm8uMThBLCBYaW5nc2hpa291IFJvYWQsCisJCQkJSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDE5NQorCQkJCUNISU5BCisKKzQwLTk3LUQxICAgKGhleCkJCUJLIEVsZWN0cm9uaWNzIGNjCis0MDk3RDEgICAgIChiYXNlIDE2KQkJQksgRWxlY3Ryb25pY3MgY2MKKwkJCQkxNTAgU3dhYXJkbGVsaWUgQXZlCisJCQkJVGhlIFdpbGxvd3MKKwkJCQlQcmV0b3JpYSBHYXV0ZW5nIDAxODQKKwkJCQlTT1VUSCBBRlJJQ0EKKworNDAtOTgtNEUgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzQwOTg0RSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworNDAtOTgtN0IgICAoaGV4KQkJQWlzaW5vIENvcnBvcmF0aW9uCis0MDk4N0IgICAgIChiYXNlIDE2KQkJQWlzaW5vIENvcnBvcmF0aW9uCisJCQkJTm8uMTggQSxYaW5nc2hpa291IFJvYWQsSGFpZGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAxOTUKKwkJCQlDSElOQQorCis0MC1BNi1BNCAgIChoZXgpCQlQYXNzaXZTeXN0ZW1zIEx0ZAorNDBBNkE0ICAgICAoYmFzZSAxNikJCVBhc3NpdlN5c3RlbXMgTHRkCisJCQkJTWVkd2F5IEhvdXNlCisJCQkJTmV3YnVyeSBCdXNpbmVzcyBQYXJrCisJCQkJTmV3YnVyeSBCZXJrcyBSRzE0IDJQWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzQwLUE2LUQ5ICAgKGhleCkJCUFwcGxlCis0MEE2RDkgICAgIChiYXNlIDE2KQkJQXBwbGUKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLUIyLUM4ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworNDBCMkM4ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCUNBUlJFVEVSQSBCQVNFIEFFUkVBICMgNTg1MAorCQkJCVphcG9wYW4gSmFsaXNjbyA0NDEzMAorCQkJCU1FWElDTworCis0MC1CMy1GQyAgIChoZXgpCQlMb2dpdGFsIENvLiBMaW1pdGVkIAorNDBCM0ZDICAgICAoYmFzZSAxNikJCUxvZ2l0YWwgQ28uIExpbWl0ZWQgCisJCQkJUm0gOTAxLTkwMiwgOS9GLCBOYXRoYW4gQ2VudHJlLCAKKwkJCQk1ODBHLUsgTmF0aGFuIFJvYWQsIE1vbmdrb2ssIAorCQkJCUtvd2xvb24gIAorCQkJCUhPTkcgS09ORworCis0MC1DMi00NSAgIChoZXgpCQlTaGVuemhlbiBIZXhpY29tIFRlY2hub2xvZ3kgQ28uLCBMdGQuCis0MEMyNDUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gSGV4aWNvbSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTE1MTAgV2VzdCBCdWlsZGluZyxOYW5zaGFuIFNvZnR3YXJlIFBhcmssIE5hbnNoYW4gRGlzdC4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDUzCisJCQkJQ0hJTkEKKworNDAtQzctQzkgICAoaGV4KQkJTmF2aWl0IEluYy4KKzQwQzdDOSAgICAgKGJhc2UgMTYpCQlOYXZpaXQgSW5jLgorCQkJCTMwNThBIFNjb3R0IEJsdmQuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLUNELTNBICAgKGhleCkJCVozIFRlY2hub2xvZ3kKKzQwQ0QzQSAgICAgKGJhc2UgMTYpCQlaMyBUZWNobm9sb2d5CisJCQkJMjcyMCBIYXJyaXNvbiBTdAorCQkJCUV2YW5zdG9uIElMIDYwMjAxCisJCQkJVU5JVEVEIFNUQVRFUworCis0MC1EMy0yRCAgIChoZXgpCQlBcHBsZSwgSW5jCis0MEQzMkQgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNDAtRDQtMEUgICAoaGV4KQkJQmlvZGF0YSBMdGQKKzQwRDQwRSAgICAgKGJhc2UgMTYpCQlCaW9kYXRhIEx0ZAorCQkJCTEwIFN0b2NrcyBTdHJlZXQKKwkJCQlNYW5jaGVzdGVyICBNOCA4UUcKKwkJCQlVTklURUQgS0lOR0RPTQorCis0MC1FQy1GOCAgIChoZXgpCQlTaWVtZW5zIEFHCis0MEVDRjggICAgIChiYXNlIDE2KQkJU2llbWVucyBBRworCQkJCUkgSVMgTVMgRURNCisJCQkJTXVuaWNoIEdlcm1hbnkgODU2MzAKKwkJCQlHRVJNQU5ZCisKKzQwLUVGLTRDICAgKGhleCkJCUZpaG9uZXN0IGNvbW11bmljYXRpb24gY28uLEx0ZAorNDBFRjRDICAgICAoYmFzZSAxNikJCUZpaG9uZXN0IGNvbW11bmljYXRpb24gY28uLEx0ZAorCQkJCVJvb205MDIsUGFyayByb2FkLFpoaXhpbmcgYnVzaW5lc3MtYnVpbGRpbmcKKwkJCQlDaGFuZ3BpbmcgdG93bgorCQkJCURvbmdndWFuIEd1YW5nZG9uZyA1MjM1NjAKKwkJCQlDSElOQQorCis0MC1GMS00QyAgIChoZXgpCQlJU0UgRXVyb3BlIFNQUkwKKzQwRjE0QyAgICAgKGJhc2UgMTYpCQlJU0UgRXVyb3BlIFNQUkwKKwkJCQk0MiBhIHJ1ZSBGYWlkZXIKKwkJCQlCcnVzc2VscyAgMTA1MAorCQkJCUJFTEdJVU0KKworNDAtRjQtRUMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNDBGNEVDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNDAtRjUtMkUgICAoaGV4KQkJTGVpY2EgTWljcm9zeXN0ZW1zIChTY2h3ZWl6KSBBRworNDBGNTJFICAgICAoYmFzZSAxNikJCUxlaWNhIE1pY3Jvc3lzdGVtcyAoU2Nod2VpeikgQUcKKwkJCQlNYXggU2NobWlkaGVpbnktU3RyYXNzZSAyMDEKKwkJCQlIZWVyYnJ1Z2cgU0cgOTQzNQorCQkJCVNXSVRaRVJMQU5ECisKKzQwLUZDLTg5ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCis0MEZDODkgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTm9ydGggVVMgSGlnaHdheSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworNDQtMjUtQkIgICAoaGV4KQkJQmFtYm9vIEVudGVydGFpbm1lbnQgQ29ycG9yYXRpb24KKzQ0MjVCQiAgICAgKGJhc2UgMTYpCQlCYW1ib28gRW50ZXJ0YWlubWVudCBDb3Jwb3JhdGlvbgorCQkJCTE3OSBTb3V0aCBTdHJlZXQKKwkJCQk2dGggRmxvb3IKKwkJCQlCb3N0b24gTUEgMDIxMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTJBLTYwICAgKGhleCkJCUFwcGxlLCBJbmMuCis0NDJBNjAgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTM3LTE5ICAgKGhleCkJCTIgU2F2ZSBFbmVyZ3kgTHRkCis0NDM3MTkgICAgIChiYXNlIDE2KQkJMiBTYXZlIEVuZXJneSBMdGQKKwkJCQlUaGUgQW5uZXhlLCBGaWVsZCBIb3VzZSBCYXJuCisJCQkJQ2hpbmVoYW0gTGFuZQorCQkJCVNoZXJib3JuZSBTdCBKb2huIEhhbXBzaGlyZSBSRzI0IDlMUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzQ0LTM3LTZGICAgKGhleCkJCVlvdW5nIEVsZWN0cmljIFNpZ24gQ28KKzQ0Mzc2RiAgICAgKGJhc2UgMTYpCQlZb3VuZyBFbGVjdHJpYyBTaWduIENvCisJCQkJMTY1MSBOIDEwMDAgVworCQkJCUxvZ2FuIFVUIDg0MzIxCisJCQkJVU5JVEVEIFNUQVRFUworCis0NC0zNy1FNiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uTHRkCis0NDM3RTYgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLkx0ZAorCQkJCTY2LENodW5nIFNoYW4gUmQuVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNDQtM0QtMjEgICAoaGV4KQkJTnV2b2x0Cis0NDNEMjEgICAgIChiYXNlIDE2KQkJTnV2b2x0CisJCQkJODA4NyBCb3VsLiBkZSBsYSBSaXZlIFN1ZAorCQkJCUxldmlzIFF1ZWJlYyBHNlYgOUc5CisJCQkJQ0FOQURBCisKKzQ0LTRFLTFBICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNDQ0RTFBICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0NC00Ri01RSAgIChoZXgpCQlQYW4gU3R1ZGlvcyBDby4sTHRkLgorNDQ0RjVFICAgICAoYmFzZSAxNikJCVBhbiBTdHVkaW9zIENvLixMdGQuCisJCQkJMUYuLCBOTy40MDIsIFNFQy4gMiwgSkhPTkdZQU5HIE4uIFJELiwgQkVJVE9VIERJU1RSSUNULAorCQkJCVRBSVBFSSBDSVRZICAgMTEyNTgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQ0LTUxLURCICAgKGhleCkJCVJheXRoZW9uIEJCTiBUZWNobm9sb2dpZXMKKzQ0NTFEQiAgICAgKGJhc2UgMTYpCQlSYXl0aGVvbiBCQk4gVGVjaG5vbG9naWVzCisJCQkJMTAgTW91bHRvbiBTdHJlZXQKKwkJCQlDYW1icmlkZ2UgTUEgMDIxMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTU0LUMwICAgKGhleCkJCVRob21wc29uIEFlcm9zcGFjZQorNDQ1NEMwICAgICAoYmFzZSAxNikJCVRob21wc29uIEFlcm9zcGFjZQorCQkJCTE4IFRlY2hub2xvZ3kKKwkJCQlTdWl0ZSAxMjEKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTU2LThEICAgKGhleCkJCVBOQyBUZWNobm9sb2dpZXMgIENvLiwgTHRkLgorNDQ1NjhEICAgICAoYmFzZSAxNikJCVBOQyBUZWNobm9sb2dpZXMgIENvLiwgTHRkLgorCQkJCSM0MDEgQW55YW5nIE1lZ2F2YWxseSwgNzk5IEt3YW55YW5nLURvbmcKKwkJCQlEb25nYW4tZ3UKKwkJCQlBbnlhbmcgR3llb25nZ2ktRG8gNDMxLTc2NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0NC01Ni1CNyAgIChoZXgpCQlTcGF3biBMYWJzLCBJbmMKKzQ0NTZCNyAgICAgKGJhc2UgMTYpCQlTcGF3biBMYWJzLCBJbmMKKwkJCQkyMjA5IEdyYW5nZXIgTGFuZQorCQkJCUF1c3RpbiBUWCA3ODYxMworCQkJCVVOSVRFRCBTVEFURVMKKworNDQtNTgtMjkgICAoaGV4KQkJQ2lzY28gU1BWVEcKKzQ0NTgyOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlNUyA0LlQuNDIxCisJCQkJTGF3cmVuY2V2aWxsZSBHZW9yZ2lhIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCis0NC01OS05RiAgIChoZXgpCQlDcml0aWNhcmUgU3lzdGVtcywgSW5jCis0NDU5OUYgICAgIChiYXNlIDE2KQkJQ3JpdGljYXJlIFN5c3RlbXMsIEluYworCQkJCTIwOTI1IENyb3Nzcm9hZHMgQ2lyY2xlCisJCQkJV2F1a2FzaGEgV0kgNTMxODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTVFLUYzICAgKGhleCkJCVRvbmFsaXRlIEhvbGRpbmcgQi5WLgorNDQ1RUYzICAgICAoYmFzZSAxNikJCVRvbmFsaXRlIEhvbGRpbmcgQi5WLgorCQkJCU5pZXV3IEFtc3RlcmRhbXNlc3RyYWF0IDQwCisJCQkJRW1tZW4gRHJlbnRoZSA3ODE0IFZBCisJCQkJTkVUSEVSTEFORFMKKworNDQtNjEtMzIgICAoaGV4KQkJZWNvYmVlIGluYworNDQ2MTMyICAgICAoYmFzZSAxNikJCWVjb2JlZSBpbmMKKwkJCQkzMzMgQWRlbGFpZGUgU3QgVyA2dGggRmxvb3IKKwkJCQlUb3JvbnRvIE9udGFyaW8gTTVWMVI1CisJCQkJQ0FOQURBCisKKzQ0LTY4LUFCICAgKGhleCkJCUpVSU4gQ09NUEFOWSwgTElNSVRFRAorNDQ2OEFCICAgICAoYmFzZSAxNikJCUpVSU4gQ09NUEFOWSwgTElNSVRFRAorCQkJCTJGTCwgMTA3NS0xLCBXb25weWVvbmctRG9uZworCQkJCUd1bWkgQ2l0eSBHeWVvbmdzYW5nYnVrLURvIDczMC0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNDQtNkMtMjQgICAoaGV4KQkJUmVhbGxpbiBFbGVjdHJvbmljIENvLixMdGQKKzQ0NkMyNCAgICAgKGJhc2UgMTYpCQlSZWFsbGluIEVsZWN0cm9uaWMgQ28uLEx0ZAorCQkJCTIvRiwgQnVpbGRpbmcgMywgTm8uMjAyIFpoZW5nemhvbmcgUmQsIFhpSHUgaW5kdXN0cnkgUGFyaworCQkJCUhhbmcgWmhvdSBaaGUgSmlhbmcgMzEwMDMwCisJCQkJQ0hJTkEKKworNDQtN0MtN0YgICAoaGV4KQkJSW5ub2xpZ2h0IFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzQ0N0M3RiAgICAgKGJhc2UgMTYpCQlJbm5vbGlnaHQgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTMgUmVzdWx0cyBXYXkKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTdELUE1ICAgKGhleCkJCVZUSU9OIElORk9STUFUSU9OIFRFQ0hOT0xPR1kgKEZVSklBTikgQ08uLExURAorNDQ3REE1ICAgICAoYmFzZSAxNikJCVZUSU9OIElORk9STUFUSU9OIFRFQ0hOT0xPR1kgKEZVSklBTikgQ08uLExURAorCQkJCVJvb20gNTAyLCBXaW5nIEEsIFdvcmxkIFRyYWRlIENlbnRlcgorCQkJCU5vLjM2IEVhc3QgTm9ydGggVGhpcmQgUmluZyBSb2FkLERvbmdjaGVuZyBEaXN0cmljdCwKKwkJCQkgQmVpamluZywgICAKKwkJCQlDSElOQQorCis0NC03RS05NSAgIChoZXgpCQlBbHBoYSBhbmQgT21lZ2EsIEluYworNDQ3RTk1ICAgICAoYmFzZSAxNikJCUFscGhhIGFuZCBPbWVnYSwgSW5jCisJCQkJNDczNSBNb250dmlldyBCbHZkCisJCQkJRGVudmVyIENPIDgwMjA3CisJCQkJVU5JVEVEIFNUQVRFUworCis0NC04My0xMiAgIChoZXgpCQlTdGFyLU5ldAorNDQ4MzEyICAgICAoYmFzZSAxNikJCVN0YXItTmV0CisJCQkJRWdveiA2NCAKKwkJCQlLaXJ5YXQgQnlhbGlrIElzcmFlbCAyNzAwMAorCQkJCUlTUkFFTAorCis0NC04NS0wMCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorNDQ4NTAwICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis0NC04Ny1GQyAgIChoZXgpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTSBDTy4sIExURC4KKzQ0ODdGQyAgICAgKGJhc2UgMTYpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTSBDTy4sIExURC4KKwkJCQlOTy4gMjM5LCBTZWMuIDIsIFRpIERpbmcgQmx2ZC4KKwkJCQlUYWlwZWkgIDExNDkzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0NC04Qy01MiAgIChoZXgpCQlLVElTIENPLiwgTHRkCis0NDhDNTIgICAgIChiYXNlIDE2KQkJS1RJUyBDTy4sIEx0ZAorCQkJCTEyMDhoby0xMDNkb25nCisJCQkJMzYtMSwgQnVjaGVvbiBUZWNobm9wYXJrMy4gU2FtanVuZy1Eb25nCisJCQkJT2p1bmctR3UsIEJ1Y2hlb24tc2kgR3llb25nZ2ktZG8gNDIxLTgwOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0NC04RS04MSAgIChoZXgpCQlWSUcKKzQ0OEU4MSAgICAgKGJhc2UgMTYpCQlWSUcKKwkJCQk3MDUgSGFuc2hpbiBJVCBUb3dlciwgNjAtMTgsIEthc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNlb3VsICBLU1hYMDAyMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0NC05MS1EQiAgIChoZXgpCQlTaGFuZ2hhaSBIdWFxaW4gVGVsZWNvbSBUZWNobm9sb2d5IENvLixMdGQKKzQ0OTFEQiAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBIdWFxaW4gVGVsZWNvbSBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlOby4xIEJ1aWxkaW5nLDM5OSBLZXl1YW4gUm9hZCwgWmhhbmdqaWFuIEhpLVRlY2ggUGFyaywgUHVkb25nIE5ldyBBcmVhLCAKKwkJCQlTaGFuZ2hhaSAgMjAxMjAzCisJCQkJQ0hJTkEKKworNDQtOUMtQjUgICAoaGV4KQkJQWxjb21wLCBJbmMKKzQ0OUNCNSAgICAgKGJhc2UgMTYpCQlBbGNvbXAsIEluYworCQkJCTExNTM3IFdhbG51dCBMYW5lCisJCQkJRm9ydCBBdGtpbnNvbiBXSSA1MzUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworNDQtQTQtMkQgICAoaGV4KQkJVENUIE1vYmlsZSBMaW1pdGVkCis0NEE0MkQgICAgIChiYXNlIDE2KQkJVENUIE1vYmlsZSBMaW1pdGVkCisJCQkJNC9GLCBTb3V0aCBCdWlsZGluZyxOby4yOTY2LCBKaW5rZSBSb2FkLCBaaGFuZ2ppYW5nIEhpZ2gtVGVjaCBQYXJrLCBQdWRvbmcKKwkJCQlTaGFuZ2hhaSAgMjAxMjAzCisJCQkJQ0hJTkEKKworNDQtQTYtODkgICAoaGV4KQkJUFJPTUFYIEVMRUNUUk9OSUNBIFNBCis0NEE2ODkgICAgIChiYXNlIDE2KQkJUFJPTUFYIEVMRUNUUk9OSUNBIFNBCisJCQkJRlJBTkNFU0MgTU9SQUdBUyA3MS03NQorCQkJCUhPU1BJVEFMRVQgREUgTExPQlJFR0FUIEJBUkNFTE9OQSAwODkwNworCQkJCVNQQUlOCisKKzQ0LUE3LUNGICAgKGhleCkJCU11cmF0YSBNYW51ZmFjdHVyaW5nIENvLiwgTHRkLgorNDRBN0NGICAgICAoYmFzZSAxNikJCU11cmF0YSBNYW51ZmFjdHVyaW5nIENvLiwgTHRkLgorCQkJCTEwLTEsIEhpZ2FzaGlrb3RhcmkgMQorCQkJCU5hZ2Fva2FreW8tc2hpIEt5b3RvIDYxNy04NTU1CisJCQkJSkFQQU4KKworNDQtQTgtQzIgICAoaGV4KQkJU0VXT08gVEVDSCBDTy4sIExURAorNDRBOEMyICAgICAoYmFzZSAxNikJCVNFV09PIFRFQ0ggQ08uLCBMVEQKKwkJCQk2ODktMjAgR0VVTUpVTkctRE9ORyAKKwkJCQlHVU5QTy1TSSBLWVVOR0dJLURPIDQzNS04NjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNDQtQUEtMjcgICAoaGV4KQkJdWR3b3JrcyBDby4sIEx0ZC4KKzQ0QUEyNyAgICAgKGJhc2UgMTYpCQl1ZHdvcmtzIENvLiwgTHRkLgorCQkJCSM4MTAsIEJ5dWtzYW4zY2hhIERpZ2l0YWwgVmFsbGV5LCAyMTItMTMsIEd1cm8tZG9uZywgR3Vyby1ndQorCQkJCVNlb3VsICAxNTItNzc1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzQ0LUFBLUU4ICAgKGhleCkJCU5hbm90ZWMgRWxlY3Ryb25pYyBHbWJIICYgQ28uIEtHCis0NEFBRTggICAgIChiYXNlIDE2KQkJTmFub3RlYyBFbGVjdHJvbmljIEdtYkggJiBDby4gS0cKKwkJCQlHZXdlcmJlc3RyYXNzZSAxMQorCQkJCUxhbmRzaGFtIEJhdmFyaWEgODU2NTIKKwkJCQlHRVJNQU5ZCisKKzQ0LUMxLTVDICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCis0NEMxNUMgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LUMyLTMzICAgKGhleCkJCUd1YW5nemhvdSBDb21ldCBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLkx0ZAorNDRDMjMzICAgICAoYmFzZSAxNikJCUd1YW5nemhvdSBDb21ldCBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLkx0ZAorCQkJCVJtIDMwNCxGTCAzLEJsb2NrIEcsU2NpZW5jZSBhbmQgIFRlY2hub2xvZ3kgSW5ub3ZhdGlvbiBCYXNlLAorCQkJCU5vLjgwLExhbnl1ZSBSb2FkLFNjaWVuY2UgUGFyaywKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDY2MworCQkJCUNISU5BCisKKzQ0LUM5LUEyICAgKGhleCkJCUdyZWVud2FsZCBJbmR1c3RyaWVzCis0NEM5QTIgICAgIChiYXNlIDE2KQkJR3JlZW53YWxkIEluZHVzdHJpZXMKKwkJCQkyMTIgTWlkZGxlc2V4IEF2ZW51ZQorCQkJCUNoZXN0ZXIgQ1QgMDY0MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LUQyLUNBICAgKGhleCkJCUFudmlhIFRWIE95Cis0NEQyQ0EgICAgIChiYXNlIDE2KQkJQW52aWEgVFYgT3kKKwkJCQlQTyBCb3ggMjkKKwkJCQlTRUlOQUpPS0kgIEZJTjYwMTAxCisJCQkJRklOTEFORAorCis0NC1ENi0zRCAgIChoZXgpCQlUYWxhcmkgTmV0d29ya3MKKzQ0RDYzRCAgICAgKGJhc2UgMTYpCQlUYWxhcmkgTmV0d29ya3MKKwkJCQkzMjAwIEdsZW4gUm95YWwgUmQuCisJCQkJU3VpdGUgMTAwCisJCQkJUmFsZWlnaCAgTkMgMjc2MTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LUQ4LTMyICAgKGhleCkJCUF6dXJld2F2ZSBUZWNobm9sb2dpZXMsIEluYy4KKzQ0RDgzMiAgICAgKGJhc2UgMTYpCQlBenVyZXdhdmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJOEYuLCBCYW96aG9uZyBSZC4KKwkJCQlYaW5kaWFuIENpdHkgVGFpcGVpIENvdW50eSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQ0LURDLUNCICAgKGhleCkJCVNFTUlORElBIFNZU1RFTVMgUFZUIExURAorNDREQ0NCICAgICAoYmFzZSAxNikJCVNFTUlORElBIFNZU1RFTVMgUFZUIExURAorCQkJCTEwMDYvMTMsIFN5IE5vLjQ5LzEmMywgN3RoIE1pbGUsIEEuTSBJbmRsIEVzdGF0ZSwKKwkJCQlHYXJ2ZWJoYXZpcGFseWEsSG9zdXIgUm9hZCwgCisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAwNjgKKwkJCQlJTkRJQQorCis0NC1FNC05QSAgIChoZXgpCQlPTU5JVFJPTklDUyBQVFkgTFRECis0NEU0OUEgICAgIChiYXNlIDE2KQkJT01OSVRST05JQ1MgUFRZIExURAorCQkJCTI3IFNBUklDSCBDUlQKKwkJCQlPU0JPUk5FIFBBUksgV0EgNjAxNworCQkJCUFVU1RSQUxJQQorCis0NC1FNC1EOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis0NEU0RDkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis0NC1FRC01NyAgIChoZXgpCQlMb25naWNvcm4sIGluYy4KKzQ0RUQ1NyAgICAgKGJhc2UgMTYpCQlMb25naWNvcm4sIGluYy4KKwkJCQlSbTEwMDEtMiwgMTBGLCBCeXVrc2FuIERpZ2l0YWwgVmFsbGV5MQorCQkJCTIxMi0xNiwgR3Vyby0zRG9uZywgR3Vyby1HdQorCQkJCVNlb3VsICAxNTItNzc1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzQ0LUY0LTU5ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzQ0RjQ1OSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzQ4LTEyLTQ5ICAgKGhleCkJCUx1eGNvbSBUZWNobm9sb2dpZXMgSW5jLgorNDgxMjQ5ICAgICAoYmFzZSAxNikJCUx1eGNvbSBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTEwMiBXYWxncmVlbiBSb2FkCisJCQkJT3R0YXdhIE9udGFyaW8gSzBBIDFMMAorCQkJCUNBTkFEQQorCis0OC0xNy00QyAgIChoZXgpCQlNaWNyb1Bvd2VyIHRlY2hub2xvZ2llcworNDgxNzRDICAgICAoYmFzZSAxNikJCU1pY3JvUG93ZXIgdGVjaG5vbG9naWVzCisJCQkJNDIyNSBFeGVjdXRpdmUgU3EuCisJCQkJU3VpdGUgNDMwCisJCQkJTGEgSm9sbGEgQ2FsaWZvcm5pYSA5MjAzNworCQkJCVVOSVRFRCBTVEFURVMKKworNDgtMUItRDIgICAoaGV4KQkJSW50cm9uIFNjaWVudGlmaWMgY28uLCBsdGQuCis0ODFCRDIgICAgIChiYXNlIDE2KQkJSW50cm9uIFNjaWVudGlmaWMgY28uLCBsdGQuCisJCQkJNkYuLCBOTy4gMTM2LFNlYyAyLEtlZWx1bmcgUmQuLCBEYS1hbiBkaXN0cmljdAorCQkJCVRhaXBlaSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0OC0yQy1FQSAgIChoZXgpCQlNb3Rvcm9sYSBJbmMgQnVzaW5lc3MgTGlnaHQgUmFkaW9zCis0ODJDRUEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgSW5jIEJ1c2luZXNzIExpZ2h0IFJhZGlvcworCQkJCTgwMDAgVyBTdW5yaXNlIEJvdWxldmFyZAorCQkJCVBsYW50YXRpb24gRmxvcmlkYSAzMzMyNAorCQkJCVVOSVRFRCBTVEFURVMKKworNDgtMzQtM0QgICAoaGV4KQkJSUVQIEdtYkgKKzQ4MzQzRCAgICAgKGJhc2UgMTYpCQlJRVAgR21iSAorCQkJCUFtIFBmZXJkZW1hcmt0IDljCisJCQkJTGFuZ2VuaGFnZW4gTmllZGVyc2FjaHNlbiAzMDg1MworCQkJCUdFUk1BTlkKKworNDgtNDQtODcgICAoaGV4KQkJQ2lzY28gU1BWVEcKKzQ4NDQ4NyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlNUyA0LlQuNjA3CisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworNDgtNUItMzkgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCis0ODVCMzkgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdSwgCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQ4LTVELTYwICAgKGhleCkJCUF6dXJld2F2ZSBUZWNobm9sb2dpZXMsIEluYy4KKzQ4NUQ2MCAgICAgKGJhc2UgMTYpCQlBenVyZXdhdmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJOEYgLiwgTm8uOTQsIEJhb3pob25nIFJkLiAKKwkJCQlYaW5kaWFuIENpdHkgVGFpcGVpIENvdW50eSAyMzEgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0OC02MC1CQyAgIChoZXgpCQlBcHBsZSBJbmMKKzQ4NjBCQyAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIGluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ4LTZCLTkxICAgKGhleCkJCUZsZWV0d29vZCBHcm91cCBJbmMuCis0ODZCOTEgICAgIChiYXNlIDE2KQkJRmxlZXR3b29kIEdyb3VwIEluYy4KKwkJCQkxMTgzMiBKYW1lcyBTdAorCQkJCVBPIEJveCAxMjU5CisJCQkJSG9sbGFuZCBNaWNoaWdhbiA0OTQyNAorCQkJCVVOSVRFRCBTVEFURVMKKworNDgtNkYtRDIgICAoaGV4KQkJU3RvclNpbXBsZSBJbmMKKzQ4NkZEMiAgICAgKGJhc2UgMTYpCQlTdG9yU2ltcGxlIEluYworCQkJCTIzNTAgTWlzc2lvbiBDb2xsZWdlIEJsdmQKKwkJCQlTdWl0ZSAjNDcwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ4LTcxLTE5ICAgKGhleCkJCVNHQiBHUk9VUCBMVEQuCis0ODcxMTkgICAgIChiYXNlIDE2KQkJU0dCIEdST1VQIExURC4KKwkJCQkxM0YsTm8uMTkyLFNlYy4yLENodW5nIEhzaW4gUmQuLEhzaW4gVGllbiBDaXR5CisJCQkJVGFpcGVpICAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0OC04RS00MiAgIChoZXgpCQlESUdBTE9HIEdtYkgKKzQ4OEU0MiAgICAgKGJhc2UgMTYpCQlESUdBTE9HIEdtYkgKKwkJCQlXYXR0c3RyLiAxMS0xMworCQkJCUJlcmxpbiAgRC0xMzM1NQorCQkJCUdFUk1BTlkKKworNDgtOTEtRjYgICAoaGV4KQkJU2hlbnpoZW4gUmVhY2ggc29mdHdhcmUgdGVjaG5vbG9neSBDTy4sTFRECis0ODkxRjYgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gUmVhY2ggc29mdHdhcmUgdGVjaG5vbG9neSBDTy4sTFRECisJCQkJNi9GLEJsb2NrIEIsIEtpbmdkZWUgU29mdHdhcmUgcGFyaywjMixLZWppIDEydGggU291dGggUm9hZCxIaS10ZWNoIEluZHVzdHJpYWwgUGFyayxOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzQ4LUFBLTVEICAgKGhleCkJCVN0b3JlIEVsZWN0cm9uaWMgU3lzdGVtcworNDhBQTVEICAgICAoYmFzZSAxNikJCVN0b3JlIEVsZWN0cm9uaWMgU3lzdGVtcworCQkJCTM5IHJ1ZSBkZSBtb250aWdueQorCQkJCUFyZ2VudGV1aWwgIDk1MTAwCisJCQkJRlJBTkNFCisKKzQ4LUM4LTYyICAgKGhleCkJCVNpbW8gV2lyZWxlc3MsSW5jLgorNDhDODYyICAgICAoYmFzZSAxNikJCVNpbW8gV2lyZWxlc3MsSW5jLgorCQkJCTMyNiMsQnVpbGRpbmcgNCxaaG9uZ3hpbmcgSW5kdXN0cmlhbCBQYXJrLENodWFuZ3llCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NAorCQkJCUNISU5BCisKKzQ4LUM4LUI2ICAgKGhleCkJCVN5c1RlYyBHbWJICis0OEM4QjYgICAgIChiYXNlIDE2KQkJU3lzVGVjIEdtYkgKKwkJCQlMdWR3aWctRXJoYXJkLVN0cmFzc2UgNgorCQkJCUJlcmdoZWltLUdsZXNzZW4gTlJXIDUwMTI5CisJCQkJR0VSTUFOWQorCis0OC1DQi02RSAgIChoZXgpCQlDZWxsbyBFbGVjdHJvbmljcyAoVUspIEx0ZAorNDhDQjZFICAgICAoYmFzZSAxNikJCUNlbGxvIEVsZWN0cm9uaWNzIChVSykgTHRkCisJCQkJQ2xpZmYgTG9kZ2UKKwkJCQlIYXJtYnkgUm9hZAorCQkJCUxleWJ1cm4gTm9ydGggWW9ya3NoaXJlIERMOCA1TlMKKwkJCQlVTklURUQgS0lOR0RPTQorCis0OC1EOC1GRSAgIChoZXgpCQlDbGFySUR5IFNvbHV0aW9ucywgSW5jLgorNDhEOEZFICAgICAoYmFzZSAxNikJCUNsYXJJRHkgU29sdXRpb25zLCBJbmMuCisJCQkJN0YsIE5vLjksIFBhcmtBdmVudWUgSUkgUmQuLCBIc2luY2h1IFNjaWVuY2UgUGFyaywgCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0OC1EQy1GQiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorNDhEQ0ZCICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJWXJ0dGlwZWxsb250aWUgNgorCQkJCU91bHUgIDkwMjMwCisJCQkJRklOTEFORAorCis0OC1ERi0xQyAgIChoZXgpCQlXdWhhbiBORUMgRmlicmUgT3B0aWMgQ29tbXVuaWNhdGlvbnMgaW5kdXN0cnkgQ28uIEx0ZAorNDhERjFDICAgICAoYmFzZSAxNikJCVd1aGFuIE5FQyBGaWJyZSBPcHRpYyBDb21tdW5pY2F0aW9ucyBpbmR1c3RyeSBDby4gTHRkCisJCQkJM3JkIFJvYWQgR3VhbnNoYW4sCisJCQkJV3VoYW4gSHViZWkgNDMwMDc0CisJCQkJQ0hJTkEKKworNDgtRUItMzAgICAoaGV4KQkJIEVURVJOQSBURUNITk9MT0dZLCBJTkMuCis0OEVCMzAgICAgIChiYXNlIDE2KQkJIEVURVJOQSBURUNITk9MT0dZLCBJTkMuCisJCQkJMzkzOSB2ZXNlbGljaCBhdmUKKwkJCQkzMTcKKwkJCQlsb3MgYW5nZWxlcyBjYWxpZm9ybmlhIDkwMDM5CisJCQkJVU5JVEVEIFNUQVRFUworCis0OC1GNC03RCAgIChoZXgpCQlUZWNoVmlzaW9uIEhvbGRpbmcgIEludGVybmF0aW9uIExpbWl0ZWQKKzQ4RjQ3RCAgICAgKGJhc2UgMTYpCQlUZWNoVmlzaW9uIEhvbGRpbmcgIEludGVybmF0aW9uIExpbWl0ZWQKKwkJCQlPZmZzaG9yZSBJbmNvcnBvcmF0aW9ucyBDZW50cmUKKwkJCQlQLk8uIEJveCA5NTcKKwkJCQlSb2FkIFRvd24gVG9ydG9sYSBWRzExMTAKKwkJCQlWSVJHSU4gSVNMQU5EUywgQlJJVElTSAorCis0OC1GOC1FMSAgIChoZXgpCQlBbGNhdGVsIEx1Y2VudCBXVAorNDhGOEUxICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTHVjZW50IFdUCisJCQkJNjAwIE1hcmNoIERyaXZlCisJCQkJT3R0YXdhIE9udGFyaW8gazJrIDJlNgorCQkJCUNBTkFEQQorCis0OC1GQy1COCAgIChoZXgpCQlXb29kc3RyZWFtIENvcnBvcmF0aW9uCis0OEZDQjggICAgIChiYXNlIDE2KQkJV29vZHN0cmVhbSBDb3Jwb3JhdGlvbgorCQkJCTY5IE4uIExvY3VzdCBTdHJlZXQKKwkJCQlMaXRpdHogUEEgMTc1NDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzRDLTAyLTJFICAgKGhleCkJCUNNUiBLT1JFQSBDTy4sIExURAorNEMwMjJFICAgICAoYmFzZSAxNikJCUNNUiBLT1JFQSBDTy4sIExURAorCQkJCTZGLCBKLVRvd2VyLCAyNC01IEJhbmdpLWRvbmcsIFNvbmdwYS1HdQorCQkJCVNlb3VsICAxMzgtMDUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzRDLTA3LUM5ICAgKGhleCkJCUNPTVBVVEVSIE9GRklDRSBDby4sTHRkLgorNEMwN0M5ICAgICAoYmFzZSAxNikJCUNPTVBVVEVSIE9GRklDRSBDby4sTHRkLgorCQkJCTEzNjgtMTAgTXVyYW1hdHN1LWNobworCQkJCUlzZS1zaGkgTWllLWtlbiA1MTUtMDUwNworCQkJCUpBUEFOCisKKzRDLTBGLTZFICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCis0QzBGNkUgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzIAorCQkJCUNISU5BCisKKzRDLTE0LTgwICAgKGhleCkJCU5PUkVHT04gU1lTVEVNUywgSU5DCis0QzE0ODAgICAgIChiYXNlIDE2KQkJTk9SRUdPTiBTWVNURU1TLCBJTkMKKwkJCQkxMDAgTi4gTUFJTiBTVC4gIFNVSVRFIDIyMDAKKwkJCQlXSU5TVE9OIC0gU0FMRU0gTkMgMjcxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzRDLTFBLTNBICAgKGhleCkJCVBSSU1BIFJlc2VhcmNoIEFuZCBQcm9kdWN0aW9uIEVudGVycHJpc2UgTHRkLgorNEMxQTNBICAgICAoYmFzZSAxNikJCVBSSU1BIFJlc2VhcmNoIEFuZCBQcm9kdWN0aW9uIEVudGVycHJpc2UgTHRkLgorCQkJCTYzLCBTdm9ib2R5IHN0LgorCQkJCU5pemhueSBOb3Znb3JvZCAgNjAzMDAzCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzRDLTFGLUNDICAgKGhleCkJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorNEMxRkNDICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorCQkJCUIxLTcsSHVhd2VpIEluZHVzdHJpYWwgQmFzZSxCYW50aWFuLExvbmdnYW5nCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODEyOQorCQkJCUNISU5BCisKKzRDLTJDLTgwICAgKGhleCkJCUJlaWppbmcgU2t5d2F5IFRlY2hub2xvZ2llcyBDby4sTHRkIAorNEMyQzgwICAgICAoYmFzZSAxNikJCUJlaWppbmcgU2t5d2F5IFRlY2hub2xvZ2llcyBDby4sTHRkIAorCQkJCU5vLjUgSmlhbmd0YWkgUm9hZCwgCisJCQkJQ2hhb3lhbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwMTUKKwkJCQlDSElOQQorCis0Qy0zMC04OSAgIChoZXgpCQlUaGFsZXMgVHJhbnNwb3J0YXRpb24gU3lzdGVtcyBHbWJICis0QzMwODkgICAgIChiYXNlIDE2KQkJVGhhbGVzIFRyYW5zcG9ydGF0aW9uIFN5c3RlbXMgR21iSAorCQkJCUJpZXJ3ZWcgMgorCQkJCUFybnN0YWR0IFRodXJpbmdpYSA5OTMxMAorCQkJCUdFUk1BTlkKKworNEMtMzItMkQgICAoaGV4KQkJVEVMRURBVEEgTkVUV09SS1MKKzRDMzIyRCAgICAgKGJhc2UgMTYpCQlURUxFREFUQSBORVRXT1JLUworCQkJCTEwIEhhc2FkbmFvdCBTdHJlZXQKKwkJCQlIRVJaTElZQSAgNDYxMjAKKwkJCQlJU1JBRUwKKworNEMtM0ItNzQgICAoaGV4KQkJVk9HVEVDKEguSy4pIENvLiwgTHRkCis0QzNCNzQgICAgIChiYXNlIDE2KQkJVk9HVEVDKEguSy4pIENvLiwgTHRkCisJCQkJVW5pdCBEIDExL0YgU2VhYnJpZ2h0IFBsYXphIDktMjMgU2hlbGwgU1QKKwkJCQlOb3J0aCBQb2ludCAKKwkJCQlIb25nIEtvbmcgIDk5OTA3NworCQkJCUNISU5BCisKKzRDLTRCLTY4ICAgKGhleCkJCU1vYmlsZSBEZXZpY2UsIEluYy4gCis0QzRCNjggICAgIChiYXNlIDE2KQkJTW9iaWxlIERldmljZSwgSW5jLiAKKwkJCQkgOEYtMSwgTm8uIDE0NSwgU2lhbmpoZW5nIDl0aCBSZC4sIAorCQkJCUpodWJlaSBDaXR5LCAgSHNpbmNodSBDb3VudHkgIDMwMjUxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0Qy01NC05OSAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCis0QzU0OTkgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxMDEwOAorCQkJCUNISU5BCisKKzRDLTVELUNEICAgKGhleCkJCU95IEZpbm5pc2ggRWxlY3RyaWMgVmVoaWNsZSBUZWNobm9sb2dpZXMgTHRkCis0QzVEQ0QgICAgIChiYXNlIDE2KQkJT3kgRmlubmlzaCBFbGVjdHJpYyBWZWhpY2xlIFRlY2hub2xvZ2llcyBMdGQKKwkJCQlNYWphdmFudGllIDEwCisJCQkJVFVVU1VMQSAgRkktMDQzMjAKKwkJCQlGSU5MQU5ECisKKzRDLTYwLUQ1ICAgKGhleCkJCWFpclBvaW50ZSBvZiBOZXcgSGFtcHNoaXJlCis0QzYwRDUgICAgIChiYXNlIDE2KQkJYWlyUG9pbnRlIG9mIE5ldyBIYW1wc2hpcmUKKwkJCQkzNUUgSW5kdXN0cmlhbCBXYXkKKwkJCQlSb2NoZXN0ZXIgTkggMDM4NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzRDLTYzLUVCICAgKGhleCkJCUFwcGxpY2F0aW9uIFNvbHV0aW9ucyAoRWxlY3Ryb25pY3MgYW5kIFZpc2lvbikgTHRkCis0QzYzRUIgICAgIChiYXNlIDE2KQkJQXBwbGljYXRpb24gU29sdXRpb25zIChFbGVjdHJvbmljcyBhbmQgVmlzaW9uKSBMdGQKKwkJCQlUaGUgUml2ZXJzaWRlIENlbnRyZQorCQkJCVJhaWx3YXkgTGFuZQorCQkJCUxld2VzIEVhc3QgU3Vzc2V4IEJONyAyQVEKKwkJCQlVTklURUQgS0lOR0RPTQorCis0Qy03My02NyAgIChoZXgpCQlHZW5pdXMgQnl0ZXMgU29mdHdhcmUgU29sdXRpb25zIEdtYkgKKzRDNzM2NyAgICAgKGJhc2UgMTYpCQlHZW5pdXMgQnl0ZXMgU29mdHdhcmUgU29sdXRpb25zIEdtYkgKKwkJCQlNZXJpYW5zdHIuIDMwCisJCQkJQm9jaHVtIE5SVyA0NDgwMQorCQkJCUdFUk1BTlkKKworNEMtNzMtQTUgICAoaGV4KQkJS09WRQorNEM3M0E1ICAgICAoYmFzZSAxNikJCUtPVkUKKwkJCQkxNCBOLiBQZW9yaWEgU3RyZWV0CisJCQkJU3VpdGUgMkgKKwkJCQlDaGljYWdvIElMIDYwNjA3CisJCQkJVU5JVEVEIFNUQVRFUworCis0Qy03Ny00RiAgIChoZXgpCQlFbWJlZGRlZCBXaXJlbGVzcyBMYWJzIAorNEM3NzRGICAgICAoYmFzZSAxNikJCUVtYmVkZGVkIFdpcmVsZXNzIExhYnMgCisJCQkJNzAyIExldmVsIDcgVXB0b3duIDIgTm8uMiAKKwkJCQlKYWxhbiBTUzIxLzM3IERhbWFuc2FyYSBVcHRvd24KKwkJCQlQZXRhbGluZyBKYXlhIFNlbGFuZ29yIDQ3NDAwCisJCQkJTUFMQVlTSUEKKworNEMtODAtOTMgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis0QzgwOTMgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis0Qy04Qi01NSAgIChoZXgpCQlHcnVwbyBEaWdpY29uCis0QzhCNTUgICAgIChiYXNlIDE2KQkJR3J1cG8gRGlnaWNvbgorCQkJCVJ1YSBOaXNzaW4gQ2FzdGllbCwgNjQwCisJCQkJR3JhdmF0Ye+/vSBSaW8gR3JhbmRlIGRvIFN1bCA5NDA0NTQyMAorCQkJCUJSQVpJTAorCis0Qy05OC1FRiAgIChoZXgpCQlaZW8KKzRDOThFRiAgICAgKGJhc2UgMTYpCQlaZW8KKwkJCQkzMjAgTmV2YWRhIFN0CisJCQkJNHRoIEZsb29yCisJCQkJTmV3dG9uICBNQSAwMjQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworNEMtOUUtRTQgICAoaGV4KQkJSGFueWFuZyBOYXZpY29tIENvLixMdGQuCis0QzlFRTQgICAgIChiYXNlIDE2KQkJSGFueWFuZyBOYXZpY29tIENvLixMdGQuCisJCQkJNzEzLCBHd2FucHllb25nLWRvbmcsIFl1c3VuZy1ndQorCQkJCURhZWplb24gIDMwNS01MDkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNEMtQjQtRUEgICAoaGV4KQkJSFJEIChTKSBQVEUuLCBMVEQuCis0Q0I0RUEgICAgIChiYXNlIDE2KQkJSFJEIChTKSBQVEUuLCBMVEQuCisJCQkJTG90IDcsIEJsb2NrIDksIFBoYXNlIDEsIENhdml0ZSBFY28tWm9uZSwKKwkJCQlSb3NhcmlvIENhdml0ZSA0MTA2CisJCQkJUEhJTElQUElORVMKKworNEMtQjktQzggICAoaGV4KQkJQ09ORVQgQ08uLCBMVEQuCis0Q0I5QzggICAgIChiYXNlIDE2KQkJQ09ORVQgQ08uLCBMVEQuCisJCQkJMi04LEhJR0FTSElKSU1BLUNITworCQkJCUlDSElOT01JWUEgQUlDSEkgNDkxLTAwNzQKKwkJCQlKQVBBTgorCis0Qy1CQS1BMyAgIChoZXgpCQlCaXNvbiBFbGVjdHJvbmljcyBJbmMuCis0Q0JBQTMgICAgIChiYXNlIDE2KQkJQmlzb24gRWxlY3Ryb25pY3MgSW5jLgorCQkJCTNGLiwgTm8uMjgsIExhbmUgNTgzLCBSdWVpZ3VhbmcgUmQuLCBOZWlodSBEaXN0cmljdAorCQkJCVRhaXBlaSBDaXR5ICAxMTQ5MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNEMtQzQtNTIgICAoaGV4KQkJU2hhbmcgSGFpIFR5ZC4gRWxlY3RvbiBUZWNobm9sb2d5IEx0ZC4KKzRDQzQ1MiAgICAgKGJhc2UgMTYpCQlTaGFuZyBIYWkgVHlkLiBFbGVjdG9uIFRlY2hub2xvZ3kgTHRkLgorCQkJCVJvb20gTm8uNSxOMC4zOTYsR3VpTGluIFJvYWQsIAorCQkJCVh1IEh1aSBEaXN0cmljdAorCQkJCVNoYW5nIEhhaSAgMjAwMjMzCisJCQkJQ0hJTkEKKworNEMtQzYtMDIgICAoaGV4KQkJUmFkaW9zLCBJbmMuCis0Q0M2MDIgICAgIChiYXNlIDE2KQkJUmFkaW9zLCBJbmMuCisJCQkJMTQwOCBDZW50ZXIgQXZlbnVlCisJCQkJT29zdGJ1cmcgV2lzY29uc2luIDUzMDcwCisJCQkJVU5JVEVEIFNUQVRFUworCis0Qy1FNi03NiAgIChoZXgpCQlCVUZGQUxPIElOQy4KKzRDRTY3NiAgICAgKGJhc2UgMTYpCQlCVUZGQUxPIElOQy4KKwkJCQkxNSwgU2hpYmF0YSBIb25kb3JpIDQtY2hvbWUKKwkJCQlNaW5hbWkta3UsIE5hZ295YSBBaWNoaSA0NTctODUyMAorCQkJCUpBUEFOCisKKzRDLUVELURFICAgKGhleCkJCUFza2V5IENvbXB1dGVyIENvcnAKKzRDRURERSAgICAgKGJhc2UgMTYpCQlBc2tleSBDb21wdXRlciBDb3JwCisJCQkJMTBmLG5vLjExOSxjaGllbmthbmcgcmQsY2h1bmctaG8sCisJCQkJVEFJUEVJIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0Qy1GNy0zNyAgIChoZXgpCQlTYW1KaSBFbGVjdHJvbmljcyBDby4sIEx0ZAorNENGNzM3ICAgICAoYmFzZSAxNikJCVNhbUppIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJNDU5LTIxLCBHYXNhbi1kb25nLCBHdW1jaHVuLWt1CisJCQkJU2VvdWwgIDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNTAtMEUtNkQgICAoaGV4KQkJVHJhZmZpY0Nhc3QgSW50ZXJuYXRpb25hbAorNTAwRTZEICAgICAoYmFzZSAxNikJCVRyYWZmaWNDYXN0IEludGVybmF0aW9uYWwKKwkJCQkyODAxIENvaG8gU3RyZWV0CisJCQkJU3VpdGUgMTAwCisJCQkJTWFkaXNvbiBXSSA1MzcxMworCQkJCVVOSVRFRCBTVEFURVMKKworNTAtMjUtMkIgICAoaGV4KQkJTmV0aHJhIEltYWdpbmcgSW5jb3Jwb3JhdGVkCis1MDI1MkIgICAgIChiYXNlIDE2KQkJTmV0aHJhIEltYWdpbmcgSW5jb3Jwb3JhdGVkCisJCQkJMjg1NSBCb3dlcnMgQXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzUwLTJBLTdFICAgKGhleCkJCVNtYXJ0IGVsZWN0cm9uaWMgR21iSAorNTAyQTdFICAgICAoYmFzZSAxNikJCVNtYXJ0IGVsZWN0cm9uaWMgR21iSAorCQkJCUluZHVzdHJpZSBTdHIuIDI5CisJCQkJU3QuIEdlb3JnZW4gIDc4MTEyCisJCQkJR0VSTUFOWQorCis1MC0yQS04QiAgIChoZXgpCQlUZWxla29tIFJlc2VhcmNoIGFuZCBEZXZlbG9wbWVudCBTZG4gQmhkCis1MDJBOEIgICAgIChiYXNlIDE2KQkJVGVsZWtvbSBSZXNlYXJjaCBhbmQgRGV2ZWxvcG1lbnQgU2RuIEJoZAorCQkJCVRNUk5EIElubm92YXRpb24gQ2VudHJlCisJCQkJTGluZ2thcmFuIFRla25va3JhdCBUaW11cgorCQkJCUN5YmVyamF5YSBTZWxhbmdvciA2MzAwMAorCQkJCU1BTEFZU0lBCisKKzUwLTJELUEyICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorNTAyREEyICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworNTAtMkQtRjQgICAoaGV4KQkJUGh5dGVjIE1lc3N0ZWNobmlrIEdtYkgKKzUwMkRGNCAgICAgKGJhc2UgMTYpCQlQaHl0ZWMgTWVzc3RlY2huaWsgR21iSAorCQkJCVJvYmVydC1Lb2NoLVN0cmHfZSAzOSAKKwkJCQlNYWlueiBSaGVpbmxhbmQtUGZhbHogNTUxMjkKKwkJCQlHRVJNQU5ZCisKKzUwLTNELUU1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzUwM0RFNSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzUwLTYzLTEzICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCis1MDYzMTMgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzCisJCQkJQ0hJTkEKKworNTAtNjctRjAgICAoaGV4KQkJWnlYRUwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzUwNjdGMCAgICAgKGJhc2UgMTYpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorCQkJCU5vLjYgSW5ub3ZhdGlvbiBSb2FkIElJLAorCQkJCVNjaWVuY2UgUGFyaywKKwkJCQlIc2luLUNodSwgICAyMjA5OTUwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNTAtNkYtOUEgICAoaGV4KQkJV2ktRmkgQWxsaWFuY2UKKzUwNkY5QSAgICAgKGJhc2UgMTYpCQlXaS1GaSBBbGxpYW5jZQorCQkJCTM5MjUgVy4gQnJha2VyIExhbmUKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzUwLTcwLUU1ICAgKGhleCkJCUhlIFNoYW4gV29ybGQgRmFpciBFbGVjdHJvbmljcyBUZWNobm9sb2d5IExpbWl0ZWQKKzUwNzBFNSAgICAgKGJhc2UgMTYpCQlIZSBTaGFuIFdvcmxkIEZhaXIgRWxlY3Ryb25pY3MgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJTmV3IE1hdGVyaWFsIEJhc2UsIEdvbmdoZSBUb3duCisJCQkJSGVzaGFuIENpdHkKKwkJCQlKaWFuZ21lbiBHdWFuZ2RvbmcgNTI5NzI4CisJCQkJQ0hJTkEKKworNTAtNzktNUIgICAoaGV4KQkJSW50ZXJleHBvcnQgVGVsZWNvbXVuaWNhY2lvbmVzIFMuQS4KKzUwNzk1QiAgICAgKGJhc2UgMTYpCQlJbnRlcmV4cG9ydCBUZWxlY29tdW5pY2FjaW9uZXMgUy5BLgorCQkJCUNlcnJvIENvbG9yYWRvIDUyNDAgcGlzbyAxNAorCQkJCVNhbnRpYWdvIFJlZ2lvbiBNZXRyb3BvbGl0YW5hIDgzMjAwMDAKKwkJCQlDSElMRQorCis1MC03RC0wMiAgIChoZXgpCQlCSU9ESVQKKzUwN0QwMiAgICAgKGJhc2UgMTYpCQlCSU9ESVQKKwkJCQlDYWxsZSBHdXN0YXZlIEVpZmZlbCAzCisJCQkJUGFycXVlIFRlY25vbG9naWNvCisJCQkJUGF0ZXJuYSBWYWxlbmNpYSA0Njk4MAorCQkJCVNQQUlOCisKKzUwLTg3LUI4ICAgKGhleCkJCU51dnl5byBJbmMKKzUwODdCOCAgICAgKGJhc2UgMTYpCQlOdXZ5eW8gSW5jCisJCQkJMSBTbXl0aGUgUmQKKwkJCQlTdWl0ZSAxCisJCQkJQ2FybGV0b24gUGxhY2UgT250YXJpbyBLN0M0SjQKKwkJCQlDQU5BREEKKworNTAtOEEtQ0IgICAoaGV4KQkJU0hFTlpIRU4gTUFYTUFERSBURUNITk9MT0dZIENPLiwgTFRELgorNTA4QUNCICAgICAoYmFzZSAxNikJCVNIRU5aSEVOIE1BWE1BREUgVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQlCdWlsZGluZyAzLE5vLjUgRnVxaWFvIEluZHVzdHJpYWwgRXN0YXRlLAorCQkJCVFpYW90b3UsRnV5b25nLEJhb2FuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwMworCQkJCUNISU5BCisKKzUwLTkzLTRGICAgKGhleCkJCUdyYWR1YWwgVGVjbm9sb2dpYSBMdGRhLgorNTA5MzRGICAgICAoYmFzZSAxNikJCUdyYWR1YWwgVGVjbm9sb2dpYSBMdGRhLgorCQkJCVJvZC4gQWxraW5kYXIgTS4gSnVucXVlaXJhLCBLbSAzNCwyCisJCQkJQ2FpeGEgUG9zdGFsIDEwOAorCQkJCUJyYWdhbu+/vWEgUGF1bGlzdGEgU++/vW8gUGF1bG8gMTI5MTQtOTcwCisJCQkJQlJBWklMCisKKzUwLTk3LTcyICAgKGhleCkJCVdlc3Rpbmdob3VzZSBEaWdpdGFsCis1MDk3NzIgICAgIChiYXNlIDE2KQkJV2VzdGluZ2hvdXNlIERpZ2l0YWwKKwkJCQk1MDAgTi4gU3RhdGUgQ29sbGVnZSBCbHZkLgorCQkJCVN1aXRlIDEzMDAKKwkJCQlPcmFuZ2UgQ0EgOTI4NjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzUwLUE2LUUzICAgKGhleCkJCURhdmlkIENsYXJrIENvbXBhbnkKKzUwQTZFMyAgICAgKGJhc2UgMTYpCQlEYXZpZCBDbGFyayBDb21wYW55CisJCQkJMzYwIEZyYW5rbGluIFN0LgorCQkJCVdvcmNlc3RlciBNQSAwMTYxNQorCQkJCVVOSVRFRCBTVEFURVMKKworNTAtQUYtNzMgICAoaGV4KQkJU2hlbnpoZW4gQml0bGFuZCBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorNTBBRjczICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEJpdGxhbmQgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxLTRGLDQ0IEJ1aWxkaW5nLFRhbmdsYW5nIEluZHVzdHJpYWwgUGFyayBhbmQgMS02RiwjNyBCdWlsZGluZyxYaUxpIFRvbmdmdXl1IEluZHVzdHJpYWwgVG93bixOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NQorCQkJCUNISU5BCisKKzUwLUM1LThEICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzUwQzU4RCAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OSAKKwkJCQlVTklURUQgU1RBVEVTCisKKzUwLUM5LTcxICAgKGhleCkJCUdOIE5ldGNvbSBBL1MKKzUwQzk3MSAgICAgKGJhc2UgMTYpCQlHTiBOZXRjb20gQS9TCisJCQkJTGF1dHJ1cGJqZXJnIDcKKwkJCQlQLk8uIEJveCA5OQorCQkJCUJhbGxlcnVwICBESy0yNzUwCisJCQkJREVOTUFSSworCis1MC1DRS03NSAgIChoZXgpCQlNZWFzeSBFbGVjdHJvbmljcyBMdGQKKzUwQ0U3NSAgICAgKGJhc2UgMTYpCQlNZWFzeSBFbGVjdHJvbmljcyBMdGQKKwkJCQkjMTUwNiwgQmxvY2sgQiwgSGFpIFNvbmcgQmxkZywgVGFpcmFuIDl0aCBSb2FkCisJCQkJQ2hlIEdvbmcgTWlhbywgRnV0aWFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3VhbmcgRG9uZyAgNTE4MDQwCisJCQkJQ0hJTkEKKworNTAtRDYtRDcgICAoaGV4KQkJVGFrYWhhdGEgUHJlY2lzaW9uCis1MEQ2RDcgICAgIChiYXNlIDE2KQkJVGFrYWhhdGEgUHJlY2lzaW9uCisJCQkJNC0xNy0xIFN1bml5b3NoaQorCQkJCUtvZnUgU2hpIFlhbWFuYXNoaSA0MDAtMDg1MQorCQkJCUpBUEFOCisKKzUwLUU1LTQ5ICAgKGhleCkJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCis1MEU1NDkgICAgIChiYXNlIDE2KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQlOby4yMTUsTmFuLVBpbmcgUm9hZCwKKwkJCQlQaW4tSmVuIENpdHksICBUYW95dWFuIDMyNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNTAtRUItMUEgICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKzUwRUIxQSAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworCQkJCTE3NDUgVGVjaG5vbG9neSBEcgorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCis1MC1GMC0wMyAgIChoZXgpCQlPcGVuIFN0YWNrLCBJbmMuCis1MEYwMDMgICAgIChiYXNlIDE2KQkJT3BlbiBTdGFjaywgSW5jLgorCQkJCUFkdmFuY2VkIFJlc2VhcmNoIENlbnRlciAjNDExCisJCQkJWWEtVGFwIDY4CisJCQkJQnVuLURhbmcsIFNlb25nLU5hbSBHeXVuZy1HaSA0NjMtODE2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzUwLUZBLUFCICAgKGhleCkJCUwtdGVrIGQuby5vLgorNTBGQUFCICAgICAoYmFzZSAxNikJCUwtdGVrIGQuby5vLgorCQkJCU9icnRuYSBjZXN0YSAxOAorCQkJCVNlbnRqZXJuZWogIDgzMTAKKwkJCQlTTE9WRU5JQQorCis1NC0wMy1GNSAgIChoZXgpCQlFQk4gVGVjaG5vbG9neSBDb3JwLgorNTQwM0Y1ICAgICAoYmFzZSAxNikJCUVCTiBUZWNobm9sb2d5IENvcnAuCisJCQkJMTBGLCBOby45MCwgU2VjLiAxLCBTaW50YWkgNXRoIFJkLgorCQkJCVNpamhpaCBDaXR5IFRhaXBlaSBDb3VudHkgMjIxMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzU0LTA0LTk2ICAgKGhleCkJCUdpZ2F3YXZlIExURAorNTQwNDk2ICAgICAoYmFzZSAxNikJCUdpZ2F3YXZlIExURAorCQkJCUdJR0FXQVZFIFRFQ0hOSUNBTCBDRU5UUkUKKwkJCQlFYXJscyBDb2xuZSBCdXNpbmVzcyBQYXJrCisJCQkJQ29sY2hlc3RlciBFU1NFWCBDTzYyTlMKKwkJCQlVTklURUQgS0lOR0RPTQorCis1NC0wNS01RiAgIChoZXgpCQlBbGNhdGVsIEx1Y2VudAorNTQwNTVGICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTHVjZW50CisJCQkJVmlhIFRyZW50bywgMzAKKwkJCQlWaW1lcmNhdGUgTUIgMjAwNTkKKwkJCQlJVEFMWQorCis1NC0zMS0zMSAgIChoZXgpCQlSYXN0ZXIgVmlzaW9uIEx0ZAorNTQzMTMxICAgICAoYmFzZSAxNikJCVJhc3RlciBWaXNpb24gTHRkCisJCQkJVW5pdCAxLCBDcnVuZGFsbHMKKwkJCQlHZWRnZXMgSGlsbCwgTWF0ZmllbGQKKwkJCQlUb25icmlkZ2UgIEtlbnQgVE4xMiA3RUEKKwkJCQlVTklURUQgS0lOR0RPTQorCis1NC0zNS1ERiAgIChoZXgpCQlTeW1lbyBHbWJICis1NDM1REYgICAgIChiYXNlIDE2KQkJU3ltZW8gR21iSAorCQkJCVByb2YuLU1lc3NlcnNjaG1pdHQtU3RyLiAzCisJCQkJTmV1YmliZXJnIEJhdmFyaWEgODU1NzkKKwkJCQlHRVJNQU5ZCisKKzU0LTQyLTQ5ICAgKGhleCkJCVNvbnkgQ29ycG9yYXRpb24KKzU0NDI0OSAgICAgKGJhc2UgMTYpCQlTb255IENvcnBvcmF0aW9uCisJCQkJR290ZW55YW1hIFRlYy4KKwkJCQk1LTEtMTIgS2l0YXNoaW5hZ2F3YSBTaGluYWdhd2Eta3UKKwkJCQlUb2t5byAgMTQxLTAwMDEKKwkJCQlKQVBBTgorCis1NC00QS0wNSAgIChoZXgpCQl3ZW5nbG9yIHNlbnNvcmljIGdtYmgKKzU0NEEwNSAgICAgKGJhc2UgMTYpCQl3ZW5nbG9yIHNlbnNvcmljIGdtYmgKKwkJCQl3ZW5nbG9yIFN0ci4gMworCQkJCVRldHRuYW5nICA4ODA2OQorCQkJCUdFUk1BTlkKKworNTQtNUYtQTkgICAoaGV4KQkJVGVyYWNvbSBMaW1pdGVkCis1NDVGQTkgICAgIChiYXNlIDE2KQkJVGVyYWNvbSBMaW1pdGVkCisJCQkJQi04NCwgU2VjdG9yIC0gNjAsCisJCQkJTm9pZGEgVXR0YXIgUHJhZGVzaCAyMDEgMzAxCisJCQkJSU5ESUEKKworNTQtNzUtRDAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNTQ3NUQwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNTQtN0YtNTQgICAoaGV4KQkJSU5HRU5JQ08KKzU0N0Y1NCAgICAgKGJhc2UgMTYpCQlJTkdFTklDTworCQkJCTEgcnVlIENsYXVkZSBDaGFwcGUsIEJQIDM0NgorCQkJCUd1aWxoZXJhbmQtR3JhbmdlcyBEUk9NRSAwNzUwMworCQkJCUZSQU5DRQorCis1NC03Ri1FRSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis1NDdGRUUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis1NC04NC03QiAgIChoZXgpCQlEaWdpdGFsIERldmljZXMgR21iSAorNTQ4NDdCICAgICAoYmFzZSAxNikJCURpZ2l0YWwgRGV2aWNlcyBHbWJICisJCQkJTW9ld2VzdHIgNDUgQQorCQkJCU11ZW5jaGVuICA4MTgyNworCQkJCUdFUk1BTlkKKworNTQtODktMjIgICAoaGV4KQkJWmVsZnkgSW5jCis1NDg5MjIgICAgIChiYXNlIDE2KQkJWmVsZnkgSW5jCisJCQkJNDY1NSBPbGQgSXJvbnNpZGVzIERyLCBTdWl0ZSMyMDAKKwkJCQlTYW50YSBDbGFyYSBDYSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworNTQtODktOTggICAoaGV4KQkJSFVBV0VJIFRFQ0hOT0xPR0lFUyBDTy4sTFRECis1NDg5OTggICAgIChiYXNlIDE2KQkJSFVBV0VJIFRFQ0hOT0xPR0lFUyBDTy4sTFRECisJCQkJQjEtNyxIdWF3ZWkgSW5kdXN0cmlhbCBCYXNlLEJhbnRpYW4sTG9uZ2dhbmcKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworNTQtOTItQkUgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCis1NDkyQkUgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzU0LTlBLTE2ICAgKGhleCkJCVV6dXNoaW8gRWxlY3RyaWMgQ28uLEx0ZC4KKzU0OUExNiAgICAgKGJhc2UgMTYpCQlVenVzaGlvIEVsZWN0cmljIENvLixMdGQuCisJCQkJMTUyMCBLdW8KKwkJCQlPbmlzaGktY2hvCisJCQkJSW1hYmFyaS1jaXR5IEVoaW1lIHByZWYuIDc5OTIyOTQKKwkJCQlKQVBBTgorCis1NC05Qi0xMiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCis1NDlCMTIgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis1NC1BNS0xQiAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCis1NEE1MUIgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyOQorCQkJCUNISU5BCisKKzU0LUI2LTIwICAgKGhleCkJCVNVSERPTCBFJkMgQ28uTHRkLgorNTRCNjIwICAgICAoYmFzZSAxNikJCVNVSERPTCBFJkMgQ28uTHRkLgorCQkJCTkyMCwgSWxzYW4gVGVjaG5vVG93biAxMTQxLTEsIEJhZWtzZW9rLWRvbmcsIElsc2FuZG9uZy1ndQorCQkJCUdveWFuZy1zaSBHeXVuZ2dpLWRvIDQxMC03MjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNTQtRDQtNkYgICAoaGV4KQkJQ2lzY28gU1BWVEcKKzU0RDQ2RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCis1NC1FNi1GQyAgIChoZXgpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKzU0RTZGQyAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQkxLTZGLCBCdWlsZGluZyAyLCBQaW5nc2hhbmRheXVhbiBJbmR1c3RyaWFsLCBTb3V0aCBab25lLAorCQkJCVRhb3l1YW4gU3RyZWV0LCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworNTQtRjUtQjYgICAoaGV4KQkJT1JJRU5UQUwgUEFDSUZJQyBJTlRFUk5BVElPTkFMIExJTUlURUQKKzU0RjVCNiAgICAgKGJhc2UgMTYpCQlPUklFTlRBTCBQQUNJRklDIElOVEVSTkFUSU9OQUwgTElNSVRFRAorCQkJCTUgQVJHVVMgUExBQ0UKKwkJCQlISUxMQ1JFU1QKKwkJCQlOT1JUSCBTSE9SRSBDSVRZIEFVQ0tMQU5EIDA2MjcKKwkJCQlORVcgWkVBTEFORAorCis1NC1GRC1CRiAgIChoZXgpCQlTY2hlaWR0ICYgQmFjaG1hbm4gR21iSAorNTRGREJGICAgICAoYmFzZSAxNikJCVNjaGVpZHQgJiBCYWNobWFubiBHbWJICisJCQkJQnJlaXRlIFN0cmFzc2UgMTMyCisJCQkJTW9lbmNoZW5nbGFkYmFjaCBOUlcgNDEyMzgKKwkJCQlHRVJNQU5ZCisKKzU4LTA1LTU2ICAgKGhleCkJCUVsZXR0cm9uaWNhIEdGIFMuci5MLgorNTgwNTU2ICAgICAoYmFzZSAxNikJCUVsZXR0cm9uaWNhIEdGIFMuci5MLgorCQkJCVZpYSBWaXR0b3JpLCA2MworCQkJCUZBRU5aQSBSQSA0ODAxOAorCQkJCUlUQUxZCisKKzU4LTE2LTI2ICAgKGhleCkJCUF2YXlhLCBJbmMKKzU4MTYyNiAgICAgKGJhc2UgMTYpCQlBdmF5YSwgSW5jCisJCQkJMjExIE1vdW50IEFpcnkgUm9hZAorCQkJCUJhc2tpbmcgUmlkZ2UgTkogMDc5MjAtMjMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworNTgtMTctMEMgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKzU4MTcwQyAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNFIDIyMSA4OAorCQkJCVNXRURFTgorCis1OC0xRi1BQSAgIChoZXgpCQlBcHBsZSwgSW5jLgorNTgxRkFBICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis1OC0yRi00MiAgIChoZXgpCQlVbml2ZXJzYWwgRWxlY3RyaWMgQ29ycG9yYXRpb24KKzU4MkY0MiAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgRWxlY3RyaWMgQ29ycG9yYXRpb24KKwkJCQkxNjggR2VvcmdldG93biBSb2FkCisJCQkJQ2Fub25zYnVyZyBQQSAxNTMxNworCQkJCVVOSVRFRCBTVEFURVMKKworNTgtMzUtRDkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNTgzNUQ5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LTNDLUM2ICAgKGhleCkJCU9tbmVhbGl0eSBMdGQuCis1ODNDQzYgICAgIChiYXNlIDE2KQkJT21uZWFsaXR5IEx0ZC4KKwkJCQk3IEdyb3ZlIEhvdXNlLCBGaXJzZ3JvdmUgQ3Jlc2NlbnQKKwkJCQlXYXJsZXkKKwkJCQlCcmVudHdvb2QgRXNzZXggQ00xNCA1SlMKKwkJCQlVTklURUQgS0lOR0RPTQorCis1OC00Mi1FNCAgIChoZXgpCQlTaWdtYSBJbnRlcm5hdGlvbmFsIEdlbmVyYWwgTWVkaWNhbCBBcHBhcmF0dXMsIExMQy4KKzU4NDJFNCAgICAgKGJhc2UgMTYpCQlTaWdtYSBJbnRlcm5hdGlvbmFsIEdlbmVyYWwgTWVkaWNhbCBBcHBhcmF0dXMsIExMQy4KKwkJCQk3MTEgUGFyayBBdmVudWUKKwkJCQlNZWRpbmEgTlkgMTQxMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LTQ5LUJBICAgKGhleCkJCUNoaXRhaSBFbGVjdHJvbmljIENvcnAuCis1ODQ5QkEgICAgIChiYXNlIDE2KQkJQ2hpdGFpIEVsZWN0cm9uaWMgQ29ycC4KKwkJCQk1Ri4sIE5vLiAxIExhbmUgMTIzLCBQYW8tQ2h1bmcgUmQuLCBIc2luLVRpZW4gQ2l0eSAKKwkJCQlUYWllcGkgIDIzMTQ0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis1OC00Qy0xOSAgIChoZXgpCQlDaG9uZ3FpbmcgR3VvaG9uZyBUZWNobm9sb2d5IERldmVsb3BtZW50IENvbXBhbnkgTGltaXRlZAorNTg0QzE5ICAgICAoYmFzZSAxNikJCUNob25ncWluZyBHdW9ob25nIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ29tcGFueSBMaW1pdGVkCisJCQkJUm9uZ3poaSBCdWlsZGluZywgU2NpZW5jZSAmIFRlY2hub2xvZ3kgVmVudHVyZSBDZW50ZXIsCisJCQkJTm8uOCBZdW1hIFJvYWQsIE5hbidhbiBEaXN0cmljdCwgCisJCQkJQ2hvbmdxaW5nICA0MDEzMzYKKwkJCQlDSElOQQorCis1OC00Qy1FRSAgIChoZXgpCQlEaWdpdGFsIE9uZSBUZWNobm9sb2dpZXMsIExpbWl0ZWQKKzU4NENFRSAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIE9uZSBUZWNobm9sb2dpZXMsIExpbWl0ZWQKKwkJCQlOby4xIFNoYW5nZGkgWGlueGkgUm9hZAorCQkJCUhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCis1OC01MC03NiAgIChoZXgpCQlMaW5lYXIgRXF1aXBhbWVudG9zIEVsZXRyb25pY29zIFNBCis1ODUwNzYgICAgIChiYXNlIDE2KQkJTGluZWFyIEVxdWlwYW1lbnRvcyBFbGV0cm9uaWNvcyBTQQorCQkJCVByYWNhIExpbmVhciAxMDAKKwkJCQlTYW50YSBSaXRhIGRvIFNhcHVjYWkgTUcgMzc1NDAwMDAKKwkJCQlCUkFaSUwKKworNTgtNTAtRTYgICAoaGV4KQkJQmVzdCBCdXkgQ29ycG9yYXRpb24KKzU4NTBFNiAgICAgKGJhc2UgMTYpCQlCZXN0IEJ1eSBDb3Jwb3JhdGlvbgorCQkJCTc2MDEgUGVubiBBdmUgU291dGgKKwkJCQlDNworCQkJCVJpY2hmaWVsZCBNTiA1NTQyMworCQkJCVVOSVRFRCBTVEFURVMKKworNTgtNTUtQ0EgICAoaGV4KQkJQXBwbGUKKzU4NTVDQSAgICAgKGJhc2UgMTYpCQlBcHBsZQorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNTgtNTctMEQgICAoaGV4KQkJRGFuZm9zcyBTb2xhciBJbnZlcnRlcnMKKzU4NTcwRCAgICAgKGJhc2UgMTYpCQlEYW5mb3NzIFNvbGFyIEludmVydGVycworCQkJCUp5bGxhbmRzZ2FkZSAyOAorCQkJCVPvv71uZGVyYm9yZyAgREstNjQwMAorCQkJCURFTk1BUksKKworNTgtNjctMUEgICAoaGV4KQkJQkFSTkVTJk5PQkxFLkNPTQorNTg2NzFBICAgICAoYmFzZSAxNikJCUJBUk5FUyZOT0JMRS5DT00KKwkJCQk0MDAgSEFNSUxUT04gQVZFTlVFCisJCQkJU1VJVEUgMTMwCisJCQkJUEFMTyBBTFRPIENBIDk0MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCis1OC02RC04RiAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzU4NkQ4RiAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LTZFLUQ2ICAgKGhleCkJCVBSSVZBVEUKKzU4NkVENiAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorNTgtNzUtMjEgICAoaGV4KQkJQ0pTQyBSVFNvZnQKKzU4NzUyMSAgICAgKGJhc2UgMTYpCQlDSlNDIFJUU29mdAorCQkJCU5pa2l0aW5za2F5YSBzdHIuLCAzCisJCQkJTW9zY293ICAxMDUwMzcKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworNTgtNzYtNzUgICAoaGV4KQkJQmVpamluZyBFQ0hPIFRlY2hub2xvZ2llcyBDby4sTHRkCis1ODc2NzUgICAgIChiYXNlIDE2KQkJQmVpamluZyBFQ0hPIFRlY2hub2xvZ2llcyBDby4sTHRkCisJCQkJTk8xIFN0cmVldCA0IFNoYW5nZGkgIAorCQkJCUhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpSmluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworNTgtOEQtMDkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNTg4RDA5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNTgtOTQtNkIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis1ODk0NkIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis1OC05OC0zNSAgIChoZXgpCQlUZWNobmljb2xvcgorNTg5ODM1ICAgICAoYmFzZSAxNikJCVRlY2huaWNvbG9yCisJCQkJUHJpbnMgQm91ZGV3aWpubGFhbiA0NworCQkJCUVkZWdlbSAgIEItMjY1MAorCQkJCUJFTEdJVU0KKworNTgtQTctNkYgICAoaGV4KQkJaUQgY29ycG9yYXRpb24KKzU4QTc2RiAgICAgKGJhc2UgMTYpCQlpRCBjb3Jwb3JhdGlvbgorCQkJCWdvcnlva2FrdSBibGQuIDJGCisJCQkJNi0xMCAKKwkJCQloYWtvZGF0ZSBob2trYWlkbyAwNDAtMDAxMQorCQkJCUpBUEFOCisKKzU4LUIwLTM1ICAgKGhleCkJCUFwcGxlLCBJbmMKKzU4QjAzNSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis1OC1COS1FMSAgIChoZXgpCQlDcnlzdGFsZm9udHogQW1lcmljYSwgSW5jLgorNThCOUUxICAgICAoYmFzZSAxNikJCUNyeXN0YWxmb250eiBBbWVyaWNhLCBJbmMuCisJCQkJMTI0MTIgRS4gU2FsdGVzZSBBdmUuCisJCQkJU3Bva2FuZSBWYWxsZXkgV0EgOTkyMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LUJDLTI3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzU4QkMyNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LUQwLThGICAgKGhleCkJCUlFRUUgMTkwNC4xIFdvcmtpbmcgR3JvdXAKKzU4RDA4RiAgICAgKGJhc2UgMTYpCQlJRUVFIDE5MDQuMSBXb3JraW5nIEdyb3VwCisJCQkJMTM1MSBSZWR3b29kIFdheSwgCisJCQkJUGV0YWx1bWEgQ0EgOTQ5NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LURCLThEICAgKGhleCkJCUZhc3QgQ28uLCBMdGQuCis1OERCOEQgICAgIChiYXNlIDE2KQkJRmFzdCBDby4sIEx0ZC4KKwkJCQkyLTExLTEgSXdhbW90b2NobworCQkJCTd0aCBGbC4sIEhlcmIgS2FuZGEgQmxkZy4sCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtMDAzMgorCQkJCUpBUEFOCisKKzU4LUU0LTc2ICAgKGhleCkJCUNFTlRST04gQ09NTVVOSUNBVElPTlMgVEVDSE5PTE9HSUVTIEZVSklBTiBDTy4sTFRECis1OEU0NzYgICAgIChiYXNlIDE2KQkJQ0VOVFJPTiBDT01NVU5JQ0FUSU9OUyBURUNITk9MT0dJRVMgRlVKSUFOIENPLixMVEQKKwkJCQk0dGggRmxvb3IsSmlhb2RhamllcHUgQnVpbGRpbmcsNzIjIEtlamllcmx1IFJvYWQsIAorCQkJCVhpJ2FuIFNoYWFueGkgUHJvdmluY2UgNzEwMTAwCisJCQkJQ0hJTkEKKworNTgtRTYtMzYgICAoaGV4KQkJRVZSc2FmZSBUZWNobm9sb2dpZXMKKzU4RTYzNiAgICAgKGJhc2UgMTYpCQlFVlJzYWZlIFRlY2hub2xvZ2llcworCQkJCTU5IE5vcnRoIFRlcnJhY2UgCisJCQkJSGFja25leQorCQkJCUFkZWxhaWRlIFNvdXRoIEF1c3RyYWxpYSA1MDY5CisJCQkJQVVTVFJBTElBCisKKzU4LUU3LTQ3ICAgKGhleCkJCURlbHRhbmV0IEFHCis1OEU3NDcgICAgIChiYXNlIDE2KQkJRGVsdGFuZXQgQUcKKwkJCQlSaWVkc3RyYXNzZSA4CisJCQkJRGlldGlrb24gWnVyaWNoIDg5NTMKKwkJCQlTV0lUWkVSTEFORAorCis1OC1FOC0wOCAgIChoZXgpCQlBVVRPTklDUyBDT1JQT1JBVElPTgorNThFODA4ICAgICAoYmFzZSAxNikJCUFVVE9OSUNTIENPUlBPUkFUSU9OCisJCQkJNDEtNSBZT05HREFORy1ET05HCisJCQkJWUFOR1NBTi1TSSBLWUVPTkdOQU0gNjI2LTg0NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis1OC1FRS1DRSAgIChoZXgpCQlJY29uIFRpbWUgU3lzdGVtcworNThFRUNFICAgICAoYmFzZSAxNikJCUljb24gVGltZSBTeXN0ZW1zCisJCQkJMTUyMDEgTlcgR3JlZW5icmllciBQYXJrd2F5CisJCQkJU3VpdGUgQTEKKwkJCQlCZWF2ZXJ0b24gT1IgOTcwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LUY2LTdCICAgKGhleCkJCVhpYSBNZW4gVW5pb25Db3JlIFRlY2hub2xvZ3kgTFRELgorNThGNjdCICAgICAoYmFzZSAxNikJCVhpYSBNZW4gVW5pb25Db3JlIFRlY2hub2xvZ3kgTFRELgorCQkJCSgyMjQpMkYgQ2h1YW5neWUgQnVpbGRpbmcsWGlhbWVuIFBpb25lZXJpbmcgUGFyayBmb3IgT3ZlcnNlYXMgQ2hpbmVzZSBTY2hvbGFycworCQkJCVhpYSBNZW4gRnUgSmlhbiAzNjEwMDkKKwkJCQlDSElOQQorCis1OC1GNi1CRiAgIChoZXgpCQlLeW90byBVbml2ZXJzaXR5Cis1OEY2QkYgICAgIChiYXNlIDE2KQkJS3lvdG8gVW5pdmVyc2l0eQorCQkJCVlvc2hpZGEtSG9tbWFjaGkKKwkJCQlTYWt5by1rdQorCQkJCUt5b3RvICA2MDY4NTAxCisJCQkJSkFQQU4KKworNTgtRjktOEUgICAoaGV4KQkJU0VDVURPUyBHbWJICis1OEY5OEUgICAgIChiYXNlIDE2KQkJU0VDVURPUyBHbWJICisJCQkJUmhlbnVzLVBsYXR6IDIKKwkJCQlIb2x6d2lja2VkZSBOUlcgNTk0MzkKKwkJCQlHRVJNQU5ZCisKKzU4LUZELTIwICAgKGhleCkJCUJyYXZpZGEgU2FrZXJoZXQgQUIKKzU4RkQyMCAgICAgKGJhc2UgMTYpCQlCcmF2aWRhIFNha2VyaGV0IEFCCisJCQkJTWlrcm9mb252YWdlbiAyOAorCQkJCVNUT0NLSE9MTSAgMTI2IDgxCisJCQkJU1dFREVOCisKKzVDLTA3LTZGICAgKGhleCkJCVRob3VnaHQgQ3JlYXRvcgorNUMwNzZGICAgICAoYmFzZSAxNikJCVRob3VnaHQgQ3JlYXRvcgorCQkJCUxhcmdvIGRhIFBpcu+/vW1pZGUsIE7vv70gMywgU2FsYSBECisJCQkJT2VpcmFzIExpc2JvYSAyNzk1LTE1NiBMaW5kYS1hLVZlbGhhCisJCQkJUE9SVFVHQUwKKworNUMtMEMtQkIgICAoaGV4KQkJQ0VMSVpJT04gSW5jLgorNUMwQ0JCICAgICAoYmFzZSAxNikJCUNFTElaSU9OIEluYy4KKwkJCQkjMjA2IExvcmRsYW5kIEVaIFRvd2VyLCBHdU1pLURvbmcgMTUzIEJ1bkRhbmctR3UKKwkJCQlTZW9uZ05hbS1TaSAgR3llb25nR2ktRG8gNDYzLTg3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis1Qy0wRS04QiAgIChoZXgpCQlNb3Rvcm9sYQorNUMwRThCICAgICAoYmFzZSAxNikJCU1vdG9yb2xhCisJCQkJT25lIE1vdG9yb2xhIFBsYXphCisJCQkJSG9sdHN2aWxsZSBOWSAxMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworNUMtMTQtMzcgICAoaGV4KQkJVGh5c3NlbmtydXBwIEF1Znp1Z3N3ZXJrZSBHbWJICis1QzE0MzcgICAgIChiYXNlIDE2KQkJVGh5c3NlbmtydXBwIEF1Znp1Z3N3ZXJrZSBHbWJICisJCQkJQmVybmhhZXVzZXIgU3RyLjQ1CisJCQkJTmV1aGF1c2VuIGEuZC5GICA3Mzc2NQorCQkJCUdFUk1BTlkKKworNUMtMTYtQzcgICAoaGV4KQkJQmlnIFN3aXRjaCBOZXR3b3JrcworNUMxNkM3ICAgICAoYmFzZSAxNikJCUJpZyBTd2l0Y2ggTmV0d29ya3MKKwkJCQk4NTUgRUwgQ0FNSU5PIFJFQUwKKwkJCQlTVEUgMjYwIEJMREcgNAorCQkJCVBhbG8gQWx0byBDQSA5NDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworNUMtMTctRDMgICAoaGV4KQkJTEdFIAorNUMxN0QzICAgICAoYmFzZSAxNikJCUxHRSAKKwkJCQk2MC0zOSAsIEthc2FuIC1kb25nICwgR3VtY2hlb24tZ3UuCisJCQkJU2VvdWwgICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzVDLTI2LTBBICAgKGhleCkJCURlbGwgSW5jLgorNUMyNjBBICAgICAoYmFzZSAxNikJCURlbGwgSW5jLgorCQkJCU9uZSBEZWxsIFdheSwgTVMgUlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworNUMtMzMtOEUgICAoaGV4KQkJQWxwaGEgTmV0d29ya2MgSW5jLgorNUMzMzhFICAgICAoYmFzZSAxNikJCUFscGhhIE5ldHdvcmtjIEluYy4KKwkJCQlOby44IExpLXNoaW5nIFNldmVudGggUm9hZCxTY2llbmNlLWJhc2VkCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis1Qy0zNS0zQiAgIChoZXgpCQlDb21wYWwgQnJvYWRiYW5kIE5ldHdvcmtzIEluYy4KKzVDMzUzQiAgICAgKGJhc2UgMTYpCQlDb21wYWwgQnJvYWRiYW5kIE5ldHdvcmtzIEluYy4KKwkJCQkyRi4tMiwgTm8uMzIgVGFpeXVhbiBTdC4KKwkJCQlaaHViZWkgQ2l0eSBIc2luY2h1IENvdW50eSAzMDI2NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNUMtMzUtREEgICAoaGV4KQkJVGhlcmUgQ29ycG9yYXRpb24gT3kKKzVDMzVEQSAgICAgKGJhc2UgMTYpCQlUaGVyZSBDb3Jwb3JhdGlvbiBPeQorCQkJCUVsaW3vv71lbmthdHUgNQorCQkJCUhlbHNpbmtpICAwMDUxMAorCQkJCUZJTkxBTkQKKworNUMtNDAtNTggICAoaGV4KQkJSmVmZmVyc29uIEF1ZGlvIFZpZGVvIFN5c3RlbXMsIEluYy4KKzVDNDA1OCAgICAgKGJhc2UgMTYpCQlKZWZmZXJzb24gQXVkaW8gVmlkZW8gU3lzdGVtcywgSW5jLgorCQkJCTEzMDIwIE1pZGRsZXRvd24gSW5kdXN0cmlhbCBCbHZkLgorCQkJCUxvdWlzdmlsbGUgS2VudHVja3kgNDAyMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzVDLTRDLUE5ICAgKGhleCkJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKzVDNENBOSAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTEwMTA4CisJCQkJQ0hJTkEKKworNUMtNTYtRUQgICAoaGV4KQkJM3BsZXBsYXkgRWxlY3Ryb25pY3MgUHJpdmF0ZSBMaW1pdGVkCis1QzU2RUQgICAgIChiYXNlIDE2KQkJM3BsZXBsYXkgRWxlY3Ryb25pY3MgUHJpdmF0ZSBMaW1pdGVkCisJCQkJMTEwNiwgMTF0aCBGbG9vcgorCQkJCUJhYnUgS2hhbiBFc3RhdGUsIEJhc2hlZXJiYWdoCisJCQkJSHlkZXJhYmFkIEFuZGhyYSBQcmFkZXNoIDUwMDAwMQorCQkJCUlORElBCisKKzVDLTU3LUM4ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCis1QzU3QzggICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1NzAKKwkJCQlGSU5MQU5ECisKKzVDLTU5LTQ4ICAgKGhleCkJCUFwcGxlCis1QzU5NDggICAgIChiYXNlIDE2KQkJQXBwbGUKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzVDLTVFLUFCICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzVDNUVBQiAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OSAKKwkJCQlVTklURUQgU1RBVEVTCisKKzVDLTY5LTg0ICAgKGhleCkJCU5VVklDTworNUM2OTg0ICAgICAoYmFzZSAxNikJCU5VVklDTworCQkJCTcyLTMgU2luZGFlLCBTaWxjaG9uCisJCQkJR3dhbmp1IEd5ZW9uZ2dpIDQ2NC04NzMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNUMtNkEtN0QgICAoaGV4KQkJS0VOVEtBUlQgRUdFIEVMRUtUUk9OSUsgU0FOLiBWRSBUSUMuIExURC4gU1RJLiAKKzVDNkE3RCAgICAgKGJhc2UgMTYpCQlLRU5US0FSVCBFR0UgRUxFS1RST05JSyBTQU4uIFZFIFRJQy4gTFRELiBTVEkuIAorCQkJCTEzNzAgU0ssIE5POjQyLzMwNCwgCisJCQkJTU9OVFJPIElaTUlSIDM1MjMwCisJCQkJVFVSS0VZCisKKzVDLTZELTIwICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzVDNkQyMCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJIE5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgICAyMDE2MTMgCisJCQkJQ0hJTkEKKworNUMtNzctNTcgICAoaGV4KQkJSGFpdmlzaW9uIE5ldHdvcmsgVmlkZW8KKzVDNzc1NyAgICAgKGJhc2UgMTYpCQlIYWl2aXNpb24gTmV0d29yayBWaWRlbworCQkJCTQ0NDUgR2FyYW5kCisJCQkJTW9udHJlYWwgUUMgSDRSIDJIOQorCQkJCUNBTkFEQQorCis1Qy04Ni00QSAgIChoZXgpCQlTZWNyZXQgTGFicyBMTEMKKzVDODY0QSAgICAgKGJhc2UgMTYpCQlTZWNyZXQgTGFicyBMTEMKKwkJCQkzMTUgQmxlZWNrZXIgU3QgIzMwOAorCQkJCU5ldyBZb3JrIE5ZIDEwMDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis1Qy04Ny03OCAgIChoZXgpCQlDeWJlcnRlbGJyaWRnZSBjby4sbHRkCis1Qzg3NzggICAgIChiYXNlIDE2KQkJQ3liZXJ0ZWxicmlkZ2UgY28uLGx0ZAorCQkJCSM5MDEgQWNlaGlnaGVuZCB0b3dlciAyCisJCQkJMjIyLTE0IEd1cm8tZ3UgR3Vyby1kb25nCisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNUMtOUEtRDggICAoaGV4KQkJRnVqaXRzdSBMaW1pdGVkCis1QzlBRDggICAgIChiYXNlIDE2KQkJRnVqaXRzdSBMaW1pdGVkCisJCQkJTXVzYXNoaS1rb3N1Z2kgVG93ZXIgUGxhY2UgQmxkZy4sCisJCQkJNDAzLCBLb3N1Z2ktY2hvIDEtY2hvbWUsTmFrYWhhcmEta3UKKwkJCQlLYXdhc2FraSBLYW5hZ2F3YSAyMTEtMDA2MworCQkJCUpBUEFOCisKKzVDLUFDLTRDICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzVDQUM0QyAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMyAKKwkJCQlDSElOQQorCis1Qy1CRC05RSAgIChoZXgpCQlIT05HS09ORyBNSVJBQ0xFIEVBR0xFIFRFQ0hOT0xPR1koR1JPVVApIExJTUlURUQKKzVDQkQ5RSAgICAgKGJhc2UgMTYpCQlIT05HS09ORyBNSVJBQ0xFIEVBR0xFIFRFQ0hOT0xPR1koR1JPVVApIExJTUlURUQKKwkJCQlGTEFUIFJNIDIxMDMsICBFQVNFWSBDT01NRVJDSUFMIEJMREcsMjUzLTI2MSBIRU5ORVNTWSBSRCwgIAorCQkJCVdBTkNIQUkgOTk5MDc3CisJCQkJSE9ORyBLT05HCisKKzVDLUNBLTMyICAgKGhleCkJCVRoZWJlbiBBRworNUNDQTMyICAgICAoYmFzZSAxNikJCVRoZWJlbiBBRworCQkJCUhvaGVuYmVyZ3N0cmHvv71lIDMyCisJCQkJSGFpZ2VybG9jaCBCYWRlbi1X77+9cnR0ZW1iZXJnIDcyNDAxCisJCQkJR0VSTUFOWQorCis1Qy1EMS0zNSAgIChoZXgpCQlYdHJlbWUgUG93ZXIgU3lzdGVtcworNUNEMTM1ICAgICAoYmFzZSAxNikJCVh0cmVtZSBQb3dlciBTeXN0ZW1zCisJCQkJMjQ0MCBLaW93YSBCbHZkLiBOLiAjMTAyCisJCQkJTGFrZSBIYXZhc3UgQ2l0eSBBWiA4NjQwMworCQkJCVVOSVRFRCBTVEFURVMKKworNUMtRDktOTggICAoaGV4KQkJRC1MaW5rIENvcnBvcmF0aW9uCis1Q0Q5OTggICAgIChiYXNlIDE2KQkJRC1MaW5rIENvcnBvcmF0aW9uCisJCQkJTm8uMjg5LCBTaW5odSAzcmQgUmQuLCBOZWlodSBEaXN0cmljdCwgCisJCQkJVGFpcGVpIENpdHkgICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzVDLURBLUQ0ICAgKGhleCkJCU11cmF0YSBNYW51ZmFjdHVyaW5nIENvLiwgTHRkLgorNUNEQUQ0ICAgICAoYmFzZSAxNikJCU11cmF0YSBNYW51ZmFjdHVyaW5nIENvLiwgTHRkLgorCQkJCTEwLTEsIEhpZ2FzaGlrb3RhcmkgMS1jaG9tZQorCQkJCU5hZ2Fva2FreW8tc2hpIEt5b3RvIDYxNy04NTU1CisJCQkJSkFQQU4KKworNUMtRTItMjMgICAoaGV4KQkJRGVscGhpbiBUZWNobm9sb2d5IEFHCis1Q0UyMjMgICAgIChiYXNlIDE2KQkJRGVscGhpbiBUZWNobm9sb2d5IEFHCisJCQkJTHVzdGhlaWRlIDgxCisJCQkJQmVyZ2lzY2gtR2xhZGJhY2ggIDUxNDI3CisJCQkJR0VSTUFOWQorCis1Qy1FMi04NiAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzVDRTI4NiAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlDQVJSRVRFUkEgQkFTRSBBRVJFQSAjIDU4NTAKKwkJCQlaYXBvcGFuIEphbGlzY28gNDQxMzAKKwkJCQlNRVhJQ08KKworNUMtRjItMDcgICAoaGV4KQkJU3BlY28gVGVjaG5vbG9naWVzCis1Q0YyMDcgICAgIChiYXNlIDE2KQkJU3BlY28gVGVjaG5vbG9naWVzCisJCQkJMjAwIE5ldyBIaWdod2F5CisJCQkJQW1pdHl2aWxsZSBOZXcgWW9yayAxMTcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworNUMtRjMtRkMgICAoaGV4KQkJSUJNIENvcnAKKzVDRjNGQyAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzVDLUZGLTM1ICAgKGhleCkJCVdpc3Ryb24gQ29ycG9yYXRpb24KKzVDRkYzNSAgICAgKGJhc2UgMTYpCQlXaXN0cm9uIENvcnBvcmF0aW9uCisJCQkJMjFGLCA4OCwgU2VjLjEsIEhzaW4gVGFpIFd1IFJkLiwgSHNpY2hpaCwKKwkJCQlUYWlwZWkgSHNpZW4gIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNjAtMTEtOTkgICAoaGV4KQkJRGF0YS1UZXN0ZXIgSW5jLgorNjAxMTk5ICAgICAoYmFzZSAxNikJCURhdGEtVGVzdGVyIEluYy4KKwkJCQk0NTAgU3QtUGllcnJlLCBzdWl0ZSAzMDAKKwkJCQlNb250cmVhbCBRdWViZWMgSDJZIDJNOQorCQkJCUNBTkFEQQorCis2MC0xMi04MyAgIChoZXgpCQlTb2x1Y2lvbmVzIFRlY25vbG9naWNhcyBwYXJhIGxhIFNhbHVkIHkgZWwgQmllbmVzdGFyIFNBCis2MDEyODMgICAgIChiYXNlIDE2KQkJU29sdWNpb25lcyBUZWNub2xvZ2ljYXMgcGFyYSBsYSBTYWx1ZCB5IGVsIEJpZW5lc3RhciBTQQorCQkJCVJkLiBBdWd1c3RlIHkgTG91aXMgTHVtaWVyZSwgMjMgbmF2ZSAxMworCQkJCVBhcnF1ZSBUZWNub2xvZ2ljbyBkZSBWYWxlbmNpYQorCQkJCVBhdGVybmEgVmFsZW5jaWEtIENJRiBFUyBBIDk4MDA1OTc4IDQ2OTgwCisJCQkJU1BBSU4KKworNjAtMTUtQzcgICAoaGV4KQkJSWRhVGVjaAorNjAxNUM3ICAgICAoYmFzZSAxNikJCUlkYVRlY2gKKwkJCQk2MzA2NSBORSAxOHRoIFN0LgorCQkJCUJlbmQgT1IgOTc3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLTE5LTBDICAgKGhleCkJCVJSQU1BQworNjAxOTBDICAgICAoYmFzZSAxNikJCVJSQU1BQworCQkJCTE1NDAwIE1lZGluYSBSZAorCQkJCVBseW1vdXRoIE1OIDU1NDQ3CisJCQkJVU5JVEVEIFNUQVRFUworCis2MC0xRC0wRiAgIChoZXgpCQlNaWRuaXRlIFNvbGFyCis2MDFEMEYgICAgIChiYXNlIDE2KQkJTWlkbml0ZSBTb2xhcgorCQkJCTE3NzIyIDY3dGggQXZlIE5FICNDCisJCQkJQXJsaW5ndG9uIFdBIDk4MjIzCisJCQkJVU5JVEVEIFNUQVRFUworCis2MC0yQS01NCAgIChoZXgpCQlDYXJkaW9UZWsgQi5WLgorNjAyQTU0ICAgICAoYmFzZSAxNikJCUNhcmRpb1RlayBCLlYuCisJCQkJQW1lcmlrYWxhYW4gNzAKKwkJCQlNYWFzdHJpY2h0IEFpcnBvcnQgTGltYnVyZyA2MTk5QUUKKwkJCQlORVRIRVJMQU5EUworCis2MC0yQS1EMCAgIChoZXgpCQlDaXNjbyBTUFZURworNjAyQUQwICAgICAoYmFzZSAxNikJCUNpc2NvIFNQVlRHCisJCQkJNTAzMCBTdWdhcmxvYWYgUGt3eQorCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLTMzLTRCICAgKGhleCkJCUFwcGxlCis2MDMzNEIgICAgIChiYXNlIDE2KQkJQXBwbGUKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLTM4LTBFICAgKGhleCkJCUFscHMgRWxlY3RyaWMgQ28uLAorNjAzODBFICAgICAoYmFzZSAxNikJCUFscHMgRWxlY3RyaWMgQ28uLAorCQkJCTEtMi0xLCBPa2lub3VjaGkKKwkJCQlTb21hLWNpdHkgRnVrdXNoaW1hIDk3Ni04NTAxCisJCQkJSkFQQU4KKworNjAtMzktMUYgICAoaGV4KQkJQUJCIEx0ZAorNjAzOTFGICAgICAoYmFzZSAxNikJCUFCQiBMdGQKKwkJCQlEaXN0cmlidXRpb24gQXV0b21hdGlvbgorCQkJCU1hbmVqYQorCQkJCVZhZG9kYXJhIEd1amFyYXQgMzkwMDEzCisJCQkJSU5ESUEKKworNjAtNTItRDAgICAoaGV4KQkJRkFDVFMgRW5naW5lZXJpbmcgCis2MDUyRDAgICAgIChiYXNlIDE2KQkJRkFDVFMgRW5naW5lZXJpbmcgCisJCQkJODA0OSBQaG90b25pY3MgRHJpdmUKKwkJCQlOZXcgUG9ydCBSaWNoZXkgRkwgMzQ2NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLTU0LTY0ICAgKGhleCkJCUV5ZWRybyBHcmVlbiBTb2x1dGlvbnMgSW5jLgorNjA1NDY0ICAgICAoYmFzZSAxNikJCUV5ZWRybyBHcmVlbiBTb2x1dGlvbnMgSW5jLgorCQkJCTEgWW9uZ2UgU3QKKwkJCQlTdWl0ZSAxODAxCisJCQkJVG9yb250byBPbnRhcmlvIE01RSAxVzcKKwkJCQlDQU5BREEKKworNjAtNjMtRkQgICAoaGV4KQkJVHJhbnNjZW5kIENvbW11bmljYXRpb24gQmVpamluZyBDby4sTHRkLgorNjA2M0ZEICAgICAoYmFzZSAxNikJCVRyYW5zY2VuZCBDb21tdW5pY2F0aW9uIEJlaWppbmcgQ28uLEx0ZC4KKwkJCQlBLTYsS2VzaGkgcGxhemEsMjgjLEluZm9ybWF0aW9uIFJvYWQKKwkJCQlIYWlkaWFuIERpc3QsCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworNjAtNzYtODggICAoaGV4KQkJVmVsb2R5bmUKKzYwNzY4OCAgICAgKGJhc2UgMTYpCQlWZWxvZHluZQorCQkJCTM0NSBEaWdpdGFsIERyaXZlCisJCQkJTW9yZ2FuIEhpbGwgQ0EgOTUwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLTgzLUIyICAgKGhleCkJCUdrV2FyZSBlLksuCis2MDgzQjIgICAgIChiYXNlIDE2KQkJR2tXYXJlIGUuSy4KKwkJCQlIdW1ib2xkdHN0cmFzc2UgMTc3CisJCQkJRXNzZW4gTlJXIDQ1MTQ5CisJCQkJR0VSTUFOWQorCis2MC04OS0zQyAgIChoZXgpCQlUaGVybW8gRmlzaGVyIFNjaWVudGlmaWMgUC5PLkEuCis2MDg5M0MgICAgIChiYXNlIDE2KQkJVGhlcm1vIEZpc2hlciBTY2llbnRpZmljIFAuTy5BLgorCQkJCTQ2IEpvbnNwaW4gUmQuCisJCQkJV2lsbWluZ3RvbiBNQSAwMTg4NworCQkJCVVOSVRFRCBTVEFURVMKKworNjAtODktQjcgICAoaGV4KQkJS0FFTCBN77+9SEVORElTTElLIEVMRUtUUk9OSUsgVElDQVJFVCBTQU5BWUkgTGltaXRlZCDvv71pcmtldGkKKzYwODlCNyAgICAgKGJhc2UgMTYpCQlLQUVMIE3vv71IRU5ESVNMSUsgRUxFS1RST05JSyBUSUNBUkVUIFNBTkFZSSBMaW1pdGVkIO+/vWlya2V0aQorCQkJCUF0YXTvv71yayBNYWguIDc4IHNva2FrICxObzoxMCwgQu+/vXnvv71rYWxhbiBNZXZraWksCisJCQkJVWx1Y2FrIC8gS2VtYWxwYXNhCisJCQkJSXptaXIgQWVnZWFuIDM1MTc1CisJCQkJVFVSS0VZCisKKzYwLThELTE3ICAgKGhleCkJCVNlbnRydXMgR292ZXJubWVudCBTeXN0ZW1zIERpdmlzaW9uLCBJbmMKKzYwOEQxNyAgICAgKGJhc2UgMTYpCQlTZW50cnVzIEdvdmVybm1lbnQgU3lzdGVtcyBEaXZpc2lvbiwgSW5jCisJCQkJMTQxIENoZXN0ZXJmaWVsZCBJbmR1c3RyaWFsIEJsdmQKKwkJCQlDaGVzdGVyZmllbGQgTU8gNjMwMDUtMTIxOQorCQkJCVVOSVRFRCBTVEFURVMKKworNjAtOUEtQTQgICAoaGV4KQkJR1ZJIFNFQ1VSSVRZIElOQy4KKzYwOUFBNCAgICAgKGJhc2UgMTYpCQlHVkkgU0VDVVJJVFkgSU5DLgorCQkJCTI4MDEgVFJBREUgQ0VOVEVSIERSIFNURS4xMjAKKwkJCQlDQVJST0xMVE9OIFRYIDc1MDA3CisJCQkJVU5JVEVEIFNUQVRFUworCis2MC05RS02NCAgIChoZXgpCQlWaXZvbmljIEdtYkgKKzYwOUU2NCAgICAgKGJhc2UgMTYpCQlWaXZvbmljIEdtYkgKKwkJCQlLdXJmdWVyc3QtRXBwc3RlaW4tUmluZyA0CisJCQkJU2FpbGF1ZiBCYXllcm4gNjM4NzcKKwkJCQlHRVJNQU5ZCisKKzYwLTlGLTlEICAgKGhleCkJCUNsb3VkU3dpdGNoCis2MDlGOUQgICAgIChiYXNlIDE2KQkJQ2xvdWRTd2l0Y2gKKwkJCQkyMDAgV2hlZWxlciBSZAorCQkJCUJ1cmxpbmd0b24gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLUExLTBBICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNjBBMTBBICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2MC1CMy1DNCAgIChoZXgpCQlFbGJlciBTcmwKKzYwQjNDNCAgICAgKGJhc2UgMTYpCQlFbGJlciBTcmwKKwkJCQl2aWEgUG9udGV2ZWNjaGlvIDQyIFcKKwkJCQlDYXJhc2NvIEdlIDE2MDQyCisJCQkJSVRBTFkKKworNjAtQzktODAgICAoaGV4KQkJVHJ5bXVzCis2MEM5ODAgICAgIChiYXNlIDE2KQkJVHJ5bXVzCisJCQkJQnVjaGVvbiBUZWNobm8gUGFyayAzMDMtOTAyCisJCQkJT2plb25nLWd1IFNhbWp1bmctZG9uZworCQkJCUJ1Y2hlb24tc2kgNDIxLTc0MSBHeXVuZ2dpLWRvCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzYwLUQwLUE5ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNjBEMEE5ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2MC1EMy0wQSAgIChoZXgpCQlRdWF0aXVzIExpbWl0ZWQKKzYwRDMwQSAgICAgKGJhc2UgMTYpCQlRdWF0aXVzIExpbWl0ZWQKKwkJCQlVbml0cyAwNS0wNywgMTYvRiwgR3JlZW5maWVsZCBUb3dlciwgQ29uY29yZGlhIFBsYXphLAorCQkJCTEgU2NpZW5jZSBNdXNldW0gUmQuLCBUU1QgRWFzdAorCQkJCUtvd2xvb24gIAorCQkJCUhPTkcgS09ORworCis2MC1EQS0yMyAgIChoZXgpCQlFc3RlY2ggQ28uLEx0ZAorNjBEQTIzICAgICAoYmFzZSAxNikJCUVzdGVjaCBDby4sTHRkCisJCQkJIzcxNywxMzMtMSxTYW5nZGFld29uLURvbmcKKwkJCQlKdW5nd29uLUd1CisJCQkJU2VvbmduYW0tU2kgR3llb25nZ2ktRG8gNDYyLTEyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2MC1FQi02OSAgIChoZXgpCQlRdWFudGEgY29tcHV0ZXIgSW5jLgorNjBFQjY5ICAgICAoYmFzZSAxNikJCVF1YW50YSBjb21wdXRlciBJbmMuCisJCQkJMjExLCBXZW4gSHdhIDJuZCBSZC4sS3VlaSBTaGFuLCAKKwkJCQlUYW8gWXVhbiAgMzMzNzcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzYwLUYxLTNEICAgKGhleCkJCUpBQkxPQ09NIHMuci5vLgorNjBGMTNEICAgICAoYmFzZSAxNikJCUpBQkxPQ09NIHMuci5vLgorCQkJCVYgTml2YWNoIDEyCisJCQkJSmFibG9uZWMgbmFkIE5pc291ICA0NjYgMDEKKwkJCQlDWkVDSCBSRVBVQkxJQworCis2MC1GNS05QyAgIChoZXgpCQlDUlUtRGF0YXBvcnQKKzYwRjU5QyAgICAgKGJhc2UgMTYpCQlDUlUtRGF0YXBvcnQKKwkJCQkxMDAwIFNFIFRlY2ggQ2VudGVyIERyaXZlCisJCQkJU3VpdGUgMTYwCisJCQkJVmFuY291dmVyIFdBIDk4NjgzCisJCQkJVU5JVEVEIFNUQVRFUworCis2MC1GNi03MyAgIChoZXgpCQlURVJVTU8gQ09SUE9SQVRJT04KKzYwRjY3MyAgICAgKGJhc2UgMTYpCQlURVJVTU8gQ09SUE9SQVRJT04KKwkJCQkxNTAwLElub2t1Y2hpLE5ha2FpLW1hY2hpCisJCQkJQXNoaWdhcmFrYW1pLWd1biBLYW5hZ2F3YSAyNTktMDE1MQorCQkJCUpBUEFOCisKKzYwLUZCLTQyICAgKGhleCkJCUFwcGxlLCBJbmMKKzYwRkI0MiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis2NC0wMC1GMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis2NDAwRjEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis2NC0wOS00QyAgIChoZXgpCQlCZWlqaW5nIFN1cGVyYmVlIFdpcmVsZXNzIFRlY2hub2xvZ3kgQ28uLEx0ZAorNjQwOTRDICAgICAoYmFzZSAxNikJCUJlaWppbmcgU3VwZXJiZWUgV2lyZWxlc3MgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJQjcsU2NpZW5jZS1UZWNoIEZvcnR1bmUgQ2VudGVyLAorCQkJCU5vLjgsWHVlcWluZ1JvYWQsSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDE5MgorCQkJCUNISU5BCisKKzY0LTBGLTI4ICAgKGhleCkJCTJ3aXJlCis2NDBGMjggICAgIChiYXNlIDE2KQkJMndpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlICBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtMTAtODQgICAoaGV4KQkJSEVYSVVNIFRlY2huaWNhbCBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKzY0MTA4NCAgICAgKGJhc2UgMTYpCQlIRVhJVU0gVGVjaG5pY2FsIERldmVsb3BtZW50IENvLiwgTHRkLgorCQkJCVZhY2kgdXQgNTFiCisJCQkJQlVEQVBFU1QgIEgtMTEzNAorCQkJCUhVTkdBUlkKKworNjQtMTYtOEQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNjQxNjhEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtMTYtRjAgICAoaGV4KQkJU2hlaHpoZW4gSHVhd2VpIENvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorNjQxNkYwICAgICAoYmFzZSAxNikJCVNoZWh6aGVuIEh1YXdlaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlCdWlsZGluZyAyLCBab25lIEIsSHVhd2VpIEluZHVzdHJpYWwgUGFyayxCYW50aWFuLCBMb25nZ2FuZyBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCis2NC0xQS0yMiAgIChoZXgpCQlIZWxpb3NwZWN0cmEvV29vZGhpbGwgSW52ZXN0bWVudHMKKzY0MUEyMiAgICAgKGJhc2UgMTYpCQlIZWxpb3NwZWN0cmEvV29vZGhpbGwgSW52ZXN0bWVudHMKKwkJCQlBcm1i77+9Z2F277+9Z2VuIDMKKwkJCQlCb3Lvv71zIE5vbmUgNTA2MzAKKwkJCQlTV0VERU4KKworNjQtMUUtODEgICAoaGV4KQkJRG93c2xha2UgTWljcm9zeXN0ZW1zCis2NDFFODEgICAgIChiYXNlIDE2KQkJRG93c2xha2UgTWljcm9zeXN0ZW1zCisJCQkJMjEgSGlnaCBTdHJlZXQsIFN1aXRlIDMwNgorCQkJCU5vcnRoIEFuZG92ZXIgTUEgMDE4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTMxLTUwICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorNjQzMTUwICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCis2NC0zMS03RSAgIChoZXgpCQlEZXhpbiBDb3Jwb3JhdGlvbgorNjQzMTdFICAgICAoYmFzZSAxNikJCURleGluIENvcnBvcmF0aW9uCisJCQkJMTRGLTgsIE5vLiAyNTgsIExpYW4gQ2hlbmcgUmQuCisJCQkJQ2h1bmcgSG8gQ2l0eSwgVGFpcGVpIEhzaWVuICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzY0LTM0LTA5ICAgKGhleCkJCUJJVHdhdmUgUHRlIEx0ZAorNjQzNDA5ICAgICAoYmFzZSAxNikJCUJJVHdhdmUgUHRlIEx0ZAorCQkJCTIgU2VyYW5nb29uIE5vcnRoIEF2ZSA1CisJCQkJIzAzLTAxCisJCQkJNTU0OTExCisJCQkJU0lOR0FQT1JFCisKKzY0LTRCLUMzICAgKGhleCkJCVNoYW5naGFpIFdPQVNpUyBUZWxlY29tbXVuaWNhdGlvbnMgTHRkLiwgQ28uCis2NDRCQzMgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgV09BU2lTIFRlbGVjb21tdW5pY2F0aW9ucyBMdGQuLCBDby4KKwkJCQkxNUYsIFNvZnR3YXJlIEJ1aWxkaW5nLAorCQkJCTQ2MSBIb25nY2FvIFJvYWQsIFh1aHVpIERpc3RyaWN0CisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzY0LTRGLTc0ICAgKGhleCkJCUxFTlVTIENvLiwgTHRkLgorNjQ0Rjc0ICAgICAoYmFzZSAxNikJCUxFTlVTIENvLiwgTHRkLgorCQkJCTE4LTUgR3dhY2hlb24tRG9uZworCQkJCUd3YWNoZW9uIEd5ZW9uZ2dpLURvIDQyNy0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNjQtNjUtQzAgICAoaGV4KQkJTnV2b24sIEluYworNjQ2NUMwICAgICAoYmFzZSAxNikJCU51dm9uLCBJbmMKKwkJCQkzMTMwIEFscGluZSBSb2FkCisJCQkJU3VpdGUgMjg4LTQ2NQorCQkJCVBvcnRvbGEgVmFsbGV5IENhbGlmb3JuaWEgOTQwMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTY3LTA3ICAgKGhleCkJCUJlaWppbmcgT21uaWZpYyBUZWNobm9sb2d5LCBMdGQuCis2NDY3MDcgICAgIChiYXNlIDE2KQkJQmVpamluZyBPbW5pZmljIFRlY2hub2xvZ3ksIEx0ZC4KKwkJCQlSbS4gNDAyLCBCdWlsZGluZyAxLCBTaHVpIE11IFFpbmcgSHVhIENvbW11bml0eQorCQkJCVpob25nIEd1YW4gQ3VuIEJlaSBFciBKaWUsIEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAxOTAKKwkJCQlDSElOQQorCis2NC02OC0wQyAgIChoZXgpCQlDT01UUkVORAorNjQ2ODBDICAgICAoYmFzZSAxNikJCUNPTVRSRU5ECisJCQkJM0YtMSwxMCBMYW5lIDYwOSwgQ2h1bmcgSHNpbiBSb2FkLCBTZWN0aW9uIDUKKwkJCQlTYW4gQ2h1bmcgQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis2NC02OS1CQyAgIChoZXgpCQlIeXRlcmEgQ29tbXVuaWNhdGlvbnMgQ28gLixsdGQKKzY0NjlCQyAgICAgKGJhc2UgMTYpCQlIeXRlcmEgQ29tbXVuaWNhdGlvbnMgQ28gLixsdGQKKwkJCQlIWVQgVG93ZXIgLEhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrIE5vcnRoLE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzY0LTZFLTZDICAgKGhleCkJCVJhZGlvIERhdGFjb20gTExDCis2NDZFNkMgICAgIChiYXNlIDE2KQkJUmFkaW8gRGF0YWNvbSBMTEMKKwkJCQk5NjAxIE4gMzV0aCBTdAorCQkJCVBob2VuaXggQVogODUwMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTczLUUyICAgKGhleCkJCUFyYml0ZXIgU3lzdGVtcywgSW5jLgorNjQ3M0UyICAgICAoYmFzZSAxNikJCUFyYml0ZXIgU3lzdGVtcywgSW5jLgorCQkJCTEzMjQgVmVuZGVscyBDaXJjbGUKKwkJCQlTdWl0ZSAxMjEKKwkJCQlQYXNvIFJvYmxlcyBDYWxpZm9ybmlhIDkzNDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCis2NC03Qi1ENCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworNjQ3QkQ0ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis2NC03RC04MSAgIChoZXgpCQlZT0tPVEEgSU5EVVNUUklBTCBDTywuTFRECis2NDdEODEgICAgIChiYXNlIDE2KQkJWU9LT1RBIElORFVTVFJJQUwgQ08sLkxURAorCQkJCTUtNTUgTklTSElJV0FUQQorCQkJCTMtQ0hPTUUKKwkJCQlISUdBU0hJIE9TQUtBLUNJVFkgT1NBS0EgNTc4LTA5NDcKKwkJCQlKQVBBTgorCis2NC03Ri1EQSAgIChoZXgpCQlURUtURUxJQyBDb21tdW5pY2F0aW9ucyBJbmMuCis2NDdGREEgICAgIChiYXNlIDE2KQkJVEVLVEVMSUMgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTc2NTcgMTB0aCBTdHJlZXQgTkUKKwkJCQlDYWxnYXJ5IEFsYmVydGEgVDJFIDhYMgorCQkJCUNBTkFEQQorCis2NC04MC05OSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorNjQ4MDk5ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis2NC04MS0yNSAgIChoZXgpCQlBbHBoYXRyb24gTWFyaW5lIEJWCis2NDgxMjUgICAgIChiYXNlIDE2KQkJQWxwaGF0cm9uIE1hcmluZSBCVgorCQkJCVNjaGFhcmRpamsgMjMKKwkJCQlSb3R0ZXJkYW0gWnVpZC1Ib2xsYW5kIDMwNjNOSAorCQkJCU5FVEhFUkxBTkRTCisKKzY0LTg3LUQ3ICAgKGhleCkJCVBJUkVMTEkgQlJPQURCQU5EIFNPTFVUSU9OUyAKKzY0ODdENyAgICAgKGJhc2UgMTYpCQlQSVJFTExJIEJST0FEQkFORCBTT0xVVElPTlMgCisJCQkJVklBTEUgU0FSQ0EgMjIyCisJCQkJTUlMQU5PICAyMDEyNiAKKwkJCQlJVEFMWQorCis2NC05OS01RCAgIChoZXgpCQlMR0UgCis2NDk5NUQgICAgIChiYXNlIDE2KQkJTEdFIAorCQkJCTYwLTM5ICwgS2FzYW4gLWRvbmcgLCBHdW1jaGVvbi1ndS4KKwkJCQlTZW91bCAgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNjQtOUItMjQgICAoaGV4KQkJViBUZWNobm9sb2d5IENvLiwgTHRkLgorNjQ5QjI0ICAgICAoYmFzZSAxNikJCVYgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlZQlAgRWFzdCBUb3dlciA1RiwKKwkJCQkxMzQgR29kby1jaG8sIEhvZ29nYXlhLWt1LAorCQkJCVlva29oYW1hIGNpdHkgS2FuYWdhd2EgMjQwLTAwMDUKKwkJCQlKQVBBTgorCis2NC05Qy04RSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworNjQ5QzhFICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis2NC1BMi0zMiAgIChoZXgpCQlPT08gU2FtbGlnaHQKKzY0QTIzMiAgICAgKGJhc2UgMTYpCQlPT08gU2FtbGlnaHQKKwkJCQk0NEEsIER1Ym5pbnNrYXlhIHN0ci4sIAorCQkJCU1vc2NvdyAgMTI3NTkxCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzY0LUE3LTY5ICAgKGhleCkJCUhUQyBDb3Jwb3JhdGlvbgorNjRBNzY5ICAgICAoYmFzZSAxNikJCUhUQyBDb3Jwb3JhdGlvbgorCQkJCU5vLiAyMywgWGluZ2h1YSBSZCwgCisJCQkJVGFveXVhbiBDb3VudHkgIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNjQtQTgtMzcgICAoaGV4KQkJSnVuaSBLb3JlYSBDby4sIEx0ZAorNjRBODM3ICAgICAoYmFzZSAxNikJCUp1bmkgS29yZWEgQ28uLCBMdGQKKwkJCQlFNjAzIEJ1bmRhbmcgVGVjaG5vLVBhcmsgMTUxCisJCQkJWWF0YXAsIEJ1bmRhbmcKKwkJCQlTZW9uZ25hbSBHeWVvbmdnaSA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzY0LUI2LTRBICAgKGhleCkJCVZpVk90ZWNoLCBJbmMuCis2NEI2NEEgICAgIChiYXNlIDE2KQkJVmlWT3RlY2gsIEluYy4KKwkJCQk0NTEgRWwgQ2FtaW5vIFJlYWwKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtQjktRTggICAoaGV4KQkJQXBwbGUsIEluYworNjRCOUU4ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LUJDLTExICAgKGhleCkJCUNvbWJpUSBBQgorNjRCQzExICAgICAoYmFzZSAxNikJCUNvbWJpUSBBQgorCQkJCVNjaWVuY2UgUGFyaworCQkJCUdqdXRlcmlnYXRhbiA5CisJCQkJSm9ua29waW5nICA1NTMgMTgKKwkJCQlTV0VERU4KKworNjQtQzYtQUYgICAoaGV4KQkJQVhFUlJBIE5ldHdvcmtzIEx0ZAorNjRDNkFGICAgICAoYmFzZSAxNikJCUFYRVJSQSBOZXR3b3JrcyBMdGQKKwkJCQkyNCAgUmFvdWwgV2FsbGVuYmVyZyBTdC4gLCAKKwkJCQlUZWwtQXZpdiAgIElTUkFFTCA2OTcxOQorCQkJCUlTUkFFTAorCis2NC1EMC0yRCAgIChoZXgpCQlEUkFZVEVLIEZSQU5DRQorNjREMDJEICAgICAoYmFzZSAxNikJCURSQVlURUsgRlJBTkNFCisJCQkJMTM3IFJVRSBERSBWRVJTQUlMTEVTCisJCQkJTEUgQ0hFU05BWSAgNzgxNTAKKwkJCQlGUkFOQ0UKKworNjQtRDEtQTMgICAoaGV4KQkJU2l0ZWNvbSBFdXJvcGUgQlYKKzY0RDFBMyAgICAgKGJhc2UgMTYpCQlTaXRlY29tIEV1cm9wZSBCVgorCQkJCUxpbmF0ZWJhYW4gMTAxCisJCQkJUm90dGVyZGFtIFp1aWQtSG9sbGFuZCAzMDQ1IEFICisJCQkJTkVUSEVSTEFORFMKKworNjQtRDItNDEgICAoaGV4KQkJS2VpdGggJiBLb2VwIEdtYkgKKzY0RDI0MSAgICAgKGJhc2UgMTYpCQlLZWl0aCAmIEtvZXAgR21iSAorCQkJCVVlbGxlbmRhaGxlciBTdHIuIDE5OQorCQkJCVd1cHBlcnRhbCBOUlcgNDIxMDkKKwkJCQlHRVJNQU5ZCisKKzY0LUQ0LURBICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorNjRENERBICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworNjQtRDktMTIgICAoaGV4KQkJU29saWRpY2EsIEluYy4KKzY0RDkxMiAgICAgKGJhc2UgMTYpCQlTb2xpZGljYSwgSW5jLgorCQkJCTU4NDAgSW50ZXJmYWNlIERyaXZlCisJCQkJU3VpdGUgMjAwCisJCQkJQW5uIEFyYm9yIE1pY2hpZ2FuIDQ4MTAzCisJCQkJVU5JVEVEIFNUQVRFUworCis2NC1EQi0xOCAgIChoZXgpCQlPcGVuUGF0dGVybgorNjREQjE4ICAgICAoYmFzZSAxNikJCU9wZW5QYXR0ZXJuCisJCQkJMTA5LzExMSBydWUgZGVzIEPvv710ZXMKKwkJCQlNYWlzb25zIExhZmZpdHRlIFl2ZWxpbmVzIDc4NjAwCisJCQkJRlJBTkNFCisKKzY0LURDLTAxICAgKGhleCkJCVN0YXRpYyBTeXN0ZW1zIEdyb3VwIFBMQworNjREQzAxICAgICAoYmFzZSAxNikJCVN0YXRpYyBTeXN0ZW1zIEdyb3VwIFBMQworCQkJCUhlYXRobWlsbCBSb2FkCisJCQkJV29tYm91cm5lCisJCQkJV29sdmVyaGFtcHRvbiBXZXN0IE1pZGxhbmRzIFdWNSA4QU4KKwkJCQlVTklURUQgS0lOR0RPTQorCis2NC1ERS0xQyAgIChoZXgpCQlLaW5nbmV0aWMgUHRlIEx0ZAorNjRERTFDICAgICAoYmFzZSAxNikJCUtpbmduZXRpYyBQdGUgTHRkCisJCQkJNDcgS2FraSBCdWtpdCBQbGFjZQorCQkJCSMwMi0wMCBFdW5vcyBUZWNocGFyaworCQkJCTQxNjIyNQorCQkJCVNJTkdBUE9SRQorCis2NC1FOC1FNiAgIChoZXgpCQlnbG9iYWwgbW9pc3R1cmUgbWFuYWdlbWVudCBzeXN0ZW0KKzY0RThFNiAgICAgKGJhc2UgMTYpCQlnbG9iYWwgbW9pc3R1cmUgbWFuYWdlbWVudCBzeXN0ZW0KKwkJCQkxMTEzMiBicm9hZCByaXZlciByb2FkCisJCQkJc3VpdGUgYQorCQkJCWlybW8gc2MgMjkwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LUVELTU3ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCis2NEVENTcgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gVVMgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LUY5LTcwICAgKGhleCkJCUtlbmFkZSBFbGVjdHJvbmljcyBUZWNobm9sb2d5IENvLixMVEQuCis2NEY5NzAgICAgIChiYXNlIDE2KQkJS2VuYWRlIEVsZWN0cm9uaWNzIFRlY2hub2xvZ3kgQ28uLExURC4KKwkJCQlGL0cgcm9vbSwxMS9GLEhhbmdkdSBidWlsZGluZyxIdWFmdSBSZCwgRnV0aWFuIGRpc3RyaWN0LAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwMjgKKwkJCQlDSElOQQorCis2NC1GOS04NyAgIChoZXgpCQlBdnZhc2kgSW5jLgorNjRGOTg3ICAgICAoYmFzZSAxNikJCUF2dmFzaSBJbmMuCisJCQkJMTAzIFJhbmRhbGwgRHIuCisJCQkJV2F0ZXJsb28gT04gTjJWIDFDNQorCQkJCUNBTkFEQQorCis2NC1GQy04QyAgIChoZXgpCQlab25hciBTeXN0ZW1zCis2NEZDOEMgICAgIChiYXNlIDE2KQkJWm9uYXIgU3lzdGVtcworCQkJCTE4MjAwIENhc2NhZGUgQXZlIFNvdXRoCisJCQkJU2VhdHRsZSBXQSA5ODExOAorCQkJCVVOSVRFRCBTVEFURVMKKworNjgtMDUtQ0EgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzY4MDVDQSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworNjgtMTItMkQgICAoaGV4KQkJU3BlY2lhbCBJbnN0cnVtZW50IERldmVsb3BtZW50IENvLiwgTHRkLgorNjgxMjJEICAgICAoYmFzZSAxNikJCVNwZWNpYWwgSW5zdHJ1bWVudCBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKwkJCQk2Ri0xLCBOby4gMTIzLCBMYW5lIDIzNQorCQkJCUJhbyBDaGlhbyBSb2FkCisJCQkJSHNpbiBUaWVuIFRhaXBlaSBIc2llbiAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzY4LTFGLUQ4ICAgKGhleCkJCUFkdmFuY2VkIFRlbGVtZXRyeQorNjgxRkQ4ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIFRlbGVtZXRyeQorCQkJCTEwNjcwIFRyZWVuYSBTdHJlZXQKKwkJCQlTdWl0ZSAxMDYKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LTIzLTRCICAgKGhleCkJCU5paG9uIERlbmd5byBLb3VzYWt1Cis2ODIzNEIgICAgIChiYXNlIDE2KQkJTmlob24gRGVuZ3lvIEtvdXNha3UKKwkJCQlzaGlubWFjaGkgMjEtMQorCQkJCW1hdG9iYQorCQkJCWthd2Fnb2Utc2hpIHNhaXRhbWEgMzUwLTExMDcKKwkJCQlKQVBBTgorCis2OC00My01MiAgIChoZXgpCQlCaHV1IExpbWl0ZWQKKzY4NDM1MiAgICAgKGJhc2UgMTYpCQlCaHV1IExpbWl0ZWQKKwkJCQlPZmZpY2UgMSwgNDY1IE10IEVkZW4gUm9hZAorCQkJCU10IEVkZW4KKwkJCQlBdWNrbGFuZCAgMTAyMworCQkJCU5FVyBaRUFMQU5ECisKKzY4LTRCLTg4ICAgKGhleCkJCUdhbHRyb25pY3MgVGVsZW1ldHJ5IEluYy4KKzY4NEI4OCAgICAgKGJhc2UgMTYpCQlHYWx0cm9uaWNzIFRlbGVtZXRyeSBJbmMuCisJCQkJMzEgTHVwaSBDdAorCQkJCVN1aXRlIDE1MAorCQkJCVBhbG0gQ29hc3QgRmxvcmlkYSAzMjEzNworCQkJCVVOSVRFRCBTVEFURVMKKworNjgtNTQtRjUgICAoaGV4KQkJZW5MaWdodGVkIEluYworNjg1NEY1ICAgICAoYmFzZSAxNikJCWVuTGlnaHRlZCBJbmMKKwkJCQkxNDUxIEdyYW50IFJkCisJCQkJU3VpdGUgMjAwCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MAorCQkJCVVOSVRFRCBTVEFURVMKKworNjgtNTktN0YgICAoaGV4KQkJQWxjYXRlbCBMdWNlbnQKKzY4NTk3RiAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIEx1Y2VudAorCQkJCVZpYSBUcmVudG8sIDMwCisJCQkJVmltZXJjYXRlIE1CIDIwMDU5CisJCQkJSVRBTFkKKworNjgtNUItMzYgICAoaGV4KQkJUE9XRVJURUNIIElORFVTVFJJQUwgQ08uLCBMVEQuCis2ODVCMzYgICAgIChiYXNlIDE2KQkJUE9XRVJURUNIIElORFVTVFJJQUwgQ08uLCBMVEQuCisJCQkJMTBGLCBOby4gNDA3LCBDaHVuZyBTaGFuIFJkLiwgU2VjIDIsCisJCQkJQ2h1bmcgSG8gVGFpcGVpIENvdW50eSAyMzU1OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNjgtNUQtNDMgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis2ODVENDMgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis2OC02My01OSAgIChoZXgpCQlBZHZhbmNlZCBEaWdpdGFsIEJyb2FkY2FzdCBTQQorNjg2MzU5ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIERpZ2l0YWwgQnJvYWRjYXN0IFNBCisJCQkJQXZlbnVlIGRlIFRvdXJuYXkgNworCQkJCVByZWdueS1DaGFtYmVzeSAgMTI5MgorCQkJCVNXSVRaRVJMQU5ECisKKzY4LTc4LTRDICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworNjg3ODRDICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCUNBUlJFVEVSQSBCQVNFIEFFUkVBICMgNTg1MAorCQkJCVphcG9wYW4gSmFsaXNjbyA0NDEzMAorCQkJCU1FWElDTworCis2OC03OS0yNCAgIChoZXgpCQlFTFMtR21iSCAmIENvLiBLRworNjg3OTI0ICAgICAoYmFzZSAxNikJCUVMUy1HbWJIICYgQ28uIEtHCisJCQkJRGFtbXN0cmFzc2UgMjEKKwkJCQlXZXJ0aGVyIE5SVyAzMzgyNAorCQkJCUdFUk1BTlkKKworNjgtNzktRUQgICAoaGV4KQkJU0hBUlAgQ29ycG9yYXRpb24KKzY4NzlFRCAgICAgKGJhc2UgMTYpCQlTSEFSUCBDb3Jwb3JhdGlvbgorCQkJCTIyLTIyLE5hZ2Fpa2UtQ2hvCisJCQkJQWJlbm8tS3UKKwkJCQlPc2FrYS1DaXR5IE9zYWthLVByZWZlY3R1cmUgNTQ1LTg1MjIKKwkJCQlKQVBBTgorCis2OC03Ri03NCAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzY4N0Y3NCAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LTg0LTcwICAgKGhleCkJCWVTU3lzIENvLixMdGQKKzY4ODQ3MCAgICAgKGJhc2UgMTYpCQllU1N5cyBDby4sTHRkCisJCQkJRGFlcnVuZyBQb3N0IFRvd2VyIDUgMTVGLCA2MC0zCisJCQkJR2FzYW4tZG9uZworCQkJCVNlb3VsIEdldW1jaGVvbi1ndSAxNTMtNzAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzY4LTg1LTQwICAgKGhleCkJCUlHSSBNb2JpbGUsIEluYy4KKzY4ODU0MCAgICAgKGJhc2UgMTYpCQlJR0kgTW9iaWxlLCBJbmMuCisJCQkJNEYgS3lvbmduYW0gQmxkZy4sCisJCQkJODMwLTQ4IFlva3NhbS1kb25nLCBLYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNjgtODctNkIgICAoaGV4KQkJSU5RIE1vYmlsZSBMaW1pdGVkCis2ODg3NkIgICAgIChiYXNlIDE2KQkJSU5RIE1vYmlsZSBMaW1pdGVkCisJCQkJNiBIZXN0ZXIgUm9hZAorCQkJCUJhdHRlcnNlYSBMb25kb24gU1cxMSA0QU4KKwkJCQlVTklURUQgS0lOR0RPTQorCis2OC05Mi0zNCAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzY4OTIzNCAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCis2OC1BMS1CNyAgIChoZXgpCQlIb25naGFvIE1pbmdjaHVhbiBUZWNobm9sb2d5IChCZWlqaW5nKSBDTy4sTHRkLgorNjhBMUI3ICAgICAoYmFzZSAxNikJCUhvbmdoYW8gTWluZ2NodWFuIFRlY2hub2xvZ3kgKEJlaWppbmcpIENPLixMdGQuCisJCQkJRmxvb3IgOCxUb3dlciBBLCBXYW5saXUgWWljaGVuZyBCdWlsZGluZworCQkJCU5vLjExLCBDaGFuZ2NodW4gUWlhbyBSb2FkLCBIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg5CisJCQkJQ0hJTkEKKworNjgtQTMtQzQgICAoaGV4KQkJTGl0ZW9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzY4QTNDNCAgICAgKGJhc2UgMTYpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLDkwLENoaWVuIDEgUm9hZCxDaHVuZ0hvLAorCQkJCVRhaVBlaSAgMjM1ODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzY4LUFBLUQyICAgKGhleCkJCURBVEVDUyBMVEQuLAorNjhBQUQyICAgICAoYmFzZSAxNikJCURBVEVDUyBMVEQuLAorCQkJCUJVTC4gVFNBUklHUkFEU0tPIFNIT1NTRSAxMTVBCisJCQkJU09GSUEgIDE3ODQKKwkJCQlCVUxHQVJJQQorCis2OC1CNS05OSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzY4QjU5OSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworNjgtQkQtQUIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNjhCREFCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNjgtQ0EtMDAgICAoaGV4KQkJT2N0b3B1cyBTeXN0ZW1zIExpbWl0ZWQKKzY4Q0EwMCAgICAgKGJhc2UgMTYpCQlPY3RvcHVzIFN5c3RlbXMgTGltaXRlZAorCQkJCTM2L0YsIDE0OCBFbGVjdHJpYyBSb2FkCisJCQkJTm9ydGggUG9pbnQKKwkJCQlIT05HIEtPTkcKKworNjgtQ0MtOUMgICAoaGV4KQkJTWluZSBTaXRlIFRlY2hub2xvZ2llcworNjhDQzlDICAgICAoYmFzZSAxNikJCU1pbmUgU2l0ZSBUZWNobm9sb2dpZXMKKwkJCQkyNS0yNyBXaGl0aW5nIFN0cmVldAorCQkJCUFydGFybW9uIE5TVyAyMDY0CisJCQkJQVVTVFJBTElBCisKKzY4LURCLTk2ICAgKGhleCkJCU9QV0lMTCBUZWNobm9sb2dpZXMgQ08gLixMVEQKKzY4REI5NiAgICAgKGJhc2UgMTYpCQlPUFdJTEwgVGVjaG5vbG9naWVzIENPIC4sTFRECisJCQkJUm9vbSA0MTUsRGlnaXRhbCBNZWRpYSBCdWlsZGluZyxOTy43IFNoYW5nZGkgSW5mb3JtYXRpb24gUm9hZCxIYWlEaWFuIERpc3RyaWN0LAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzY4LURDLUU4ICAgKGhleCkJCVBhY2tldFN0b3JtIENvbW11bmljYXRpb25zCis2OERDRTggICAgIChiYXNlIDE2KQkJUGFja2V0U3Rvcm0gQ29tbXVuaWNhdGlvbnMKKwkJCQkyMCBNZXJpZGlhbiBSZAorCQkJCUVhdG9udG93biBOSiAwNzcyNAorCQkJCVVOSVRFRCBTVEFURVMKKworNjgtRTQtMUYgICAoaGV4KQkJVW5nbGF1YmUgSWRlbnRlY2ggR21iSAorNjhFNDFGICAgICAoYmFzZSAxNikJCVVuZ2xhdWJlIElkZW50ZWNoIEdtYkgKKwkJCQlBbiBkZXIgTW9vc2FjaCAzYQorCQkJCU1hc3NlbmhhdXNlbiBCYXllcm4gODUzNzYKKwkJCQlHRVJNQU5ZCisKKzY4LUVCLUFFICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNjhFQkFFICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2OC1FQi1DNSAgIChoZXgpCQlBbmdzdHJlbSBUZWxlY29tCis2OEVCQzUgICAgIChiYXNlIDE2KQkJQW5nc3RyZW0gVGVsZWNvbQorCQkJCVl1emhuYXlhIHByb216b25hLCBwYXNzYWdlIDQ4MDYsIDQsIGJ1aWxkIDMgCisJCQkJWmVsZW5vZ3JhZCBNb3Njb3cgMTI0NDYwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzY4LUVGLUJEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzY4RUZCRCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LUY4LTk1ICAgKGhleCkJCVJlZGZsb3cgTGltaXRlZAorNjhGODk1ICAgICAoYmFzZSAxNikJCVJlZGZsb3cgTGltaXRlZAorCQkJCTEvMjcgQ291bmloYW4gUmQgCisJCQkJU2V2ZW50ZWVuIE1pbGUgUm9ja3MKKwkJCQlCcmlzYmFuZSBRdWVlbnNsYW5kIDQwNzMKKwkJCQlBVVNUUkFMSUEKKworNkMtMDQtNjAgICAoaGV4KQkJUkJIIEFjY2VzcyBUZWNobm9sb2dpZXMgSW5jLgorNkMwNDYwICAgICAoYmFzZSAxNikJCVJCSCBBY2Nlc3MgVGVjaG5vbG9naWVzIEluYy4KKwkJCQkyIEF1dG9tYXRpYyBSb2FkCisJCQkJVW5pdCAxMDgKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2UyA2SzgKKwkJCQlDQU5BREEKKworNkMtMEUtMEQgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKzZDMEUwRCAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNFIDIyMSA4OAorCQkJCVNXRURFTgorCis2Qy0wRi02QSAgIChoZXgpCQlKREMgVGVjaCBDby4sIEx0ZC4KKzZDMEY2QSAgICAgKGJhc2UgMTYpCQlKREMgVGVjaCBDby4sIEx0ZC4KKwkJCQkzNzAtMTIgRGFlbXl1bmctcmkgRGFlZ290LW15dW4KKwkJCQlLaW1wby1zaSBLeXVuZ2dpLWRvIDQxMC04NTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNkMtMTgtMTEgICAoaGV4KQkJRGVjYXR1ciBFbGVjdHJvbmljcworNkMxODExICAgICAoYmFzZSAxNikJCURlY2F0dXIgRWxlY3Ryb25pY3MKKwkJCQk3MTUgQnJpZ2h0IFN0cmVldAorCQkJCURlY2F0dXIgSUwgNjI1MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLTIyLUFCICAgKGhleCkJCUFpbnN3b3J0aCBHYW1lIFRlY2hub2xvZ3kKKzZDMjJBQiAgICAgKGJhc2UgMTYpCQlBaW5zd29ydGggR2FtZSBUZWNobm9sb2d5CisJCQkJMTAgSG9sa2VyIFN0cmVldCAKKwkJCQlOZXdpbmd0b24gTmV3IFNvdXRoIFdhbGVzIDIxMjcKKwkJCQlBVVNUUkFMSUEKKworNkMtMjMtQjkgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKzZDMjNCOSAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNFIDIyMSA4OAorCQkJCVNXRURFTgorCis2Qy0yRS0zMyAgIChoZXgpCQlBY2NlbGluayBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzZDMkUzMyAgICAgKGJhc2UgMTYpCQlBY2NlbGluayBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKwkJCQk4OCBZb3VrZXl1YW4gUm9hZCwKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzQKKwkJCQlDSElOQQorCis2Qy0yRS04NSAgIChoZXgpCQlTQUdFTUNPTQorNkMyRTg1ICAgICAoYmFzZSAxNikJCVNBR0VNQ09NCisJCQkJMjUwIHJvdXRlIGRlIGwnRW1wZXJldXIKKwkJCQlSVUVJTCBNQUxNQUlTT04gIDkyODQ4CisJCQkJRlJBTkNFCisKKzZDLTMyLURFICAgKGhleCkJCUluZGllb24gVGVjaG5vbG9naWVzIFB2dC4gTHRkLgorNkMzMkRFICAgICAoYmFzZSAxNikJCUluZGllb24gVGVjaG5vbG9naWVzIFB2dC4gTHRkLgorCQkJCTYwMSwgQWxwaGEgMiwgR2lnYXNwYWNlIElUIFBhcmsKKwkJCQlWaW1hbiBOYWdhcgorCQkJCVB1bmUgIE1haGFyYXN0cmEgNDExMDE0CisJCQkJSU5ESUEKKworNkMtMzMtQTkgICAoaGV4KQkJTWFnaWNqYWNrIExQCis2QzMzQTkgICAgIChiYXNlIDE2KQkJTWFnaWNqYWNrIExQCisJCQkJNTcwMCBHZW9yZ2lhIEF2ZW51ZQorCQkJCVdlc3QgUGFsbSBCZWFjaCBGTCAzMzQwNQorCQkJCVVOSVRFRCBTVEFURVMKKworNkMtMzktMUQgICAoaGV4KQkJQmVpamluZyBaaG9uZ0h1YUh1biBOZXR3b3JrIEluZm9ybWF0aW9uIGNlbnRlcgorNkMzOTFEICAgICAoYmFzZSAxNikJCUJlaWppbmcgWmhvbmdIdWFIdW4gTmV0d29yayBJbmZvcm1hdGlvbiBjZW50ZXIKKwkJCQk2RiBCZWlBbyBNYW5zaW9uLEh1aVhpbiBFYXN0IFN0cmVldCBBMiwKKwkJCQlDaGFveWFuZyBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwMjkKKwkJCQlDSElOQQorCis2Qy0zRS05QyAgIChoZXgpCQlLRSBLbmVzdGVsIEVsZWt0cm9uaWsgR21iSAorNkMzRTlDICAgICAoYmFzZSAxNikJCUtFIEtuZXN0ZWwgRWxla3Ryb25payBHbWJICisJCQkJT3N0ZXJ3YWxkZXIgU3RyLiAxMgorCQkJCUhvcGZlcmJhY2ggQmF2YXJpYSA4NzQ5NgorCQkJCUdFUk1BTlkKKworNkMtNTAtNEQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNkM1MDREICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNkMtNUMtREUgICAoaGV4KQkJU3VuUmVwb3J0cywgSW5jLgorNkM1Q0RFICAgICAoYmFzZSAxNikJCVN1blJlcG9ydHMsIEluYy4KKwkJCQkxNDA2IENlZGFyd29vZCBEci4KKwkJCQlTYW4gTWF0ZW8gQ0EgOTQ0MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLTVELTYzICAgKGhleCkJCVNoZW5aaGVuIFJhcG9vIFRlY2hub2xvZ3kgQ28uLCBMdGQuCis2QzVENjMgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gUmFwb28gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlCbG9jayBBMSxCMSxCMiwxc3Qgc2Vjb25kIHN0YWdlLCAxc3QgSW5kdXN0cmlhbCBQYXJrLCAzcmQgSW5kdXN0cmlhbCBab25lICxGZW5naHVhbmcgRnV5b25nLCBCYW9BbiAKKwkJCQlTaGVuWmhlbiAgNTE4MTAzCisJCQkJQ0hJTkEKKworNkMtNUUtN0EgICAoaGV4KQkJVWJpcXVpdG91cyBJbnRlcm5ldCBUZWxlY29tIENvLiwgTHRkCis2QzVFN0EgICAgIChiYXNlIDE2KQkJVWJpcXVpdG91cyBJbnRlcm5ldCBUZWxlY29tIENvLiwgTHRkCisJCQkJIzUxMiwgNXRoIEZsb29yLCBLb2xvbiBEaWdpdGFsIFZhbGxleSxHdXJvIDMoc2FtKS1kb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi03NzcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNkMtNjItNkQgICAoaGV4KQkJTWljcm8tU3RhciBJTlQnTCBDTy4sIExURAorNkM2MjZEICAgICAoYmFzZSAxNikJCU1pY3JvLVN0YXIgSU5UJ0wgQ08uLCBMVEQKKwkJCQlOby42OSwgTGlkZSBTdC4sIEpob25naGUgQ2l0eQorCQkJCVRhaXBlaSBDb251dHkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNkMtNkYtMTggICAoaGV4KQkJU3RlcmVvdGF4aXMsIEluYy4KKzZDNkYxOCAgICAgKGJhc2UgMTYpCQlTdGVyZW90YXhpcywgSW5jLgorCQkJCTQzMjAgRm9yZXN0IFBhcmsgQXZlCisJCQkJU3VpdGUgMTAwCisJCQkJU3QuIExvdWlzIE1PIDYzMTA4CisJCQkJVU5JVEVEIFNUQVRFUworCis2Qy03MC0zOSAgIChoZXgpCQlOb3ZhciBHbWJIIAorNkM3MDM5ICAgICAoYmFzZSAxNikJCU5vdmFyIEdtYkggCisJCQkJSm9oYW5uZXMtTWF1dGhlLVN0ci4gMTQKKwkJCQlBbGJzdGFkdCBCYWRlbi1XdXJ0dGVtYmVyZyAgNzI0NTgKKwkJCQlHRVJNQU5ZCisKKzZDLTgxLUZFICAgKGhleCkJCU1pdHN1YmEgQ29ycG9yYXRpb24KKzZDODFGRSAgICAgKGJhc2UgMTYpCQlNaXRzdWJhIENvcnBvcmF0aW9uCisJCQkJMS0yNjgxCisJCQkJSGlyb3Nhd2EtY2hvCisJCQkJS2lyeXUgR3VubWEgMzc2LTg1NTUKKwkJCQlKQVBBTgorCis2Qy04Qy1EQiAgIChoZXgpCQlPdHVzIFRlY2hub2xvZ2llcyBMdGQKKzZDOENEQiAgICAgKGJhc2UgMTYpCQlPdHVzIFRlY2hub2xvZ2llcyBMdGQKKwkJCQkyNiBCcmFpZCBSb2FkCisJCQkJRWRpbmJ1cmdoIE1vcm5pbmdzaWRlIEVIMTAgNkFECisJCQkJVU5JVEVEIEtJTkdET00KKworNkMtOEQtNjUgICAoaGV4KQkJV2lyZWxlc3MgR2x1ZSBOZXR3b3JrcywgSW5jLgorNkM4RDY1ICAgICAoYmFzZSAxNikJCVdpcmVsZXNzIEdsdWUgTmV0d29ya3MsIEluYy4KKwkJCQkxNjAxIE4uIE1haW4gU3RyZWV0LCBTdWl0ZSAyMDIKKwkJCQlXYWxudXQgQ3JlZWsgQ0EgOTQ1OTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLTkyLUJGICAgKGhleCkJCUluc3B1ciBFbGVjdHJvbmljIEluZm9ybWF0aW9uIEluZHVzdHJ5IENvLixMdGQuCis2QzkyQkYgICAgIChiYXNlIDE2KQkJSW5zcHVyIEVsZWN0cm9uaWMgSW5mb3JtYXRpb24gSW5kdXN0cnkgQ28uLEx0ZC4KKwkJCQlObyAyMjQgU2hhbmRhIFJvYWQKKwkJCQlKaW5hbiBTaGFuZG9uZyAyNTAwMTMKKwkJCQlDSElOQQorCis2Qy05Qi0wMiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorNkM5QjAyICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgT3UgOTA1OTAKKwkJCQlGSU5MQU5ECisKKzZDLTlDLUU5ICAgKGhleCkJCU5pbWJsZSBTdG9yYWdlCis2QzlDRTkgICAgIChiYXNlIDE2KQkJTmltYmxlIFN0b3JhZ2UKKwkJCQkyNjQ1IFphbmtlciBSb2FkCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLUE5LTA2ICAgKGhleCkJCVRlbGVmaWVsZCBMdGQKKzZDQTkwNiAgICAgKGJhc2UgMTYpCQlUZWxlZmllbGQgTHRkCisJCQkJRmxhdCBELDIvRi4sIFZhbGlhbnQgSW5kdXN0cmlhbCBDZW50cmUsMi0xMiBBdSBQdWkgV2FuIFN0cmVldCwgCisJCQkJRm8gVGFuLCBOLlQuCisJCQkJSG9uZ2tvbmcgIDg1MgorCQkJCUNISU5BCisKKzZDLUFCLTREICAgKGhleCkJCURpZ2l0YWwgUGF5bWVudCBUZWNobm9sb2dpZXMKKzZDQUI0RCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFBheW1lbnQgVGVjaG5vbG9naWVzCisJCQkJNDEwNSBHcmFuZHZpZXcgSHd5CisJCQkJQnVybmFieSBCQyBWNUMgNkI0CisJCQkJQ0FOQURBCisKKzZDLUFDLTYwICAgKGhleCkJCVZlbmV0ZXggQ29ycAorNkNBQzYwICAgICAoYmFzZSAxNikJCVZlbmV0ZXggQ29ycAorCQkJCTgtMy05LFNoaW4tbWFjaGkKKwkJCQlPbWUtc2hpLCBUb2t5byAxOTgtMDAyNAorCQkJCUpBUEFOCisKKzZDLUFELTNGICAgKGhleCkJCUh1YmJlbGwgQnVpbGRpbmcgQXV0b21hdGlvbiwgSW5jLgorNkNBRDNGICAgICAoYmFzZSAxNikJCUh1YmJlbGwgQnVpbGRpbmcgQXV0b21hdGlvbiwgSW5jLgorCQkJCTk2MDEgRGVzc2F1IFJkCisJCQkJQmxkZyAxIFN1aXRlIDEwMAorCQkJCUF1c3RpbiBUZXhhcyA3ODc1NAorCQkJCVVOSVRFRCBTVEFURVMKKworNkMtQkUtRTkgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQtSVBECis2Q0JFRTkgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQtSVBECisJCQkJNzc3IE1pZGRsZWZpZWxkIFJkLgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLUQ2LThBICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzIEluYworNkNENjhBICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzIEluYworCQkJCTYwLTM5LEdhc2FuLWRvbmcsR3VtY2hlb24tZ3UKKwkJCQlTZW91bCAgMTUzLTAyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2Qy1EQy02QSAgIChoZXgpCQlQcm9tZXRoZWFuIExpbWl0ZWQKKzZDREM2QSAgICAgKGJhc2UgMTYpCQlQcm9tZXRoZWFuIExpbWl0ZWQKKwkJCQlBY3RpdmxhYgorCQkJCVBoaWxpcHMgUm9hZAorCQkJCUJsYWNrYnVybiBMYW5jYXNoaXJlIEJCMSA1U04KKwkJCQlVTklURUQgS0lOR0RPTQorCis2Qy1FMC1CMCAgIChoZXgpCQlTT1VORDQKKzZDRTBCMCAgICAgKGJhc2UgMTYpCQlTT1VORDQKKwkJCQkxMSBxdWFpIEpvc2VwaCBHaWxsZXQKKwkJCQlMWU9OICA2OTAwNAorCQkJCUZSQU5DRQorCis2Qy1GMC00OSAgIChoZXgpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorNkNGMDQ5ICAgICAoYmFzZSAxNikJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCisJCQkJTm8uMjE1LE5hbi1QaW5nIFJvYWQsCisJCQkJUGluLUplbiBUYW95dWFuIDMyNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNkMtRkQtQjkgICAoaGV4KQkJUHJvd2FyZSBUZWNobm9sb2dpZXMgQ28gTHRkLgorNkNGREI5ICAgICAoYmFzZSAxNikJCVByb3dhcmUgVGVjaG5vbG9naWVzIENvIEx0ZC4KKwkJCQkybmQgRjEgRWFzdCBXaW5nLFNvdXRoIFNlY3Rpb24sRmFjdG9yeSBCdWlsZGluZyAyNCxTY2llbmNlJlRlY2hub2xvZ3kgUGFyaworCQkJCVNoZW5uYW4gUmQsTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCis2Qy1GRi1CRSAgIChoZXgpCQlNUEIgQ29tbXVuaWNhdGlvbnMgSW5jLgorNkNGRkJFICAgICAoYmFzZSAxNikJCU1QQiBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJMTQ3IEh5bXVzIEJsdmQKKwkJCQlQb2ludGUtQ2xhaXJlIFF1ZWJlYyBIOVIgMUU5CisJCQkJQ0FOQURBCisKKzcwLTAyLTU4ICAgKGhleCkJCTAxREItTUVUUkFWSUIKKzcwMDI1OCAgICAgKGJhc2UgMTYpCQkwMURCLU1FVFJBVklCCisJCQkJMjAwIENIRU1JTiBERVMgT1JNRUFVWAorCQkJCUxJTU9ORVNUIENFREVYIFJIT05FIDY5NTc4CisJCQkJRlJBTkNFCisKKzcwLTE0LTA0ICAgKGhleCkJCUxpbWl0ZWQgTGlhYmlsaXR5IENvbXBhbnkgIlJlc2VhcmNoIENlbnRlciAiQnJlc2xlciIKKzcwMTQwNCAgICAgKGJhc2UgMTYpCQlMaW1pdGVkIExpYWJpbGl0eSBDb21wYW55ICJSZXNlYXJjaCBDZW50ZXIgIkJyZXNsZXIiCisJCQkJSS5ZYWtvdmxldmEgU3QuLCAxCisJCQkJQ2hlYm9rc2FyeSBDaHV2YXNoIFJlcHVibGljICA0MjgwMDMKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworNzAtMUEtMDQgICAoaGV4KQkJTGl0ZW9uIFRlY2ggQ29ycC4KKzcwMUEwNCAgICAgKGJhc2UgMTYpCQlMaXRlb24gVGVjaCBDb3JwLgorCQkJCTRGIDkwIENoaWVuIDEgUmQuQ2h1bmdIbworCQkJCVRhaXBlaSAgMjM1ODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzcwLTFBLUVEICAgKGhleCkJCUFEVkFTIENPLiwgTFRELgorNzAxQUVEICAgICAoYmFzZSAxNikJCUFEVkFTIENPLiwgTFRELgorCQkJCTMtOC04IFNoaW4teW9rb2hhbWEsIEtvaG9rdS1rdQorCQkJCU5pc3NvdSAxNkJsZGcuIDZGCisJCQkJWW9rb2hhbWEtc2hpIEthbmFnYXdhLWtlbiAyMjItMDAzMworCQkJCUpBUEFOCisKKzcwLTJCLTFEICAgKGhleCkJCUUtRG9tdXMgSW50ZXJuYXRpb25hbCBMaW1pdGVkCis3MDJCMUQgICAgIChiYXNlIDE2KQkJRS1Eb211cyBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKwkJCQkxc3QgRmxvb3IKKwkJCQk1IEJvdXJsZXQgQ2xvc2UKKwkJCQlMb25kb24gIFcxVyA3QkwKKwkJCQlVTklURUQgS0lOR0RPTQorCis3MC0yRi05NyAgIChoZXgpCQlBYXZhIE1vYmlsZSBPeQorNzAyRjk3ICAgICAoYmFzZSAxNikJCUFhdmEgTW9iaWxlIE95CisJCQkJTmFoa2F0ZWh0YWFua2F0dSAyCisJCQkJT3VsdSAgOTAxMDAKKwkJCQlGSU5MQU5ECisKKzcwLTMyLUQ1ICAgKGhleCkJCUF0aGVuYSBXaXJlbGVzcyBDb21tdW5pY2F0aW9ucyBJbmMKKzcwMzJENSAgICAgKGJhc2UgMTYpCQlBdGhlbmEgV2lyZWxlc3MgQ29tbXVuaWNhdGlvbnMgSW5jCisJCQkJMTI0MjUgVyBCZWxsIFJkCisJCQkJU3VpdGUgMTEwCisJCQkJU3VycHJpc2UgQVogODUzNzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLTNBLUQ4ICAgKGhleCkJCVNoZW56aGVuIEFmb3VuZHJ5IEVsZWN0cm9uaWMgQ28uLCBMdGQKKzcwM0FEOCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBBZm91bmRyeSBFbGVjdHJvbmljIENvLiwgTHRkCisJCQkJMjAxLCBBIEJ1aWxkaW5nLCBCb2xlIEluZHVzdHJpYWwgWm9uZSwgQmFudGlhbiwgTG9uZ2dhbmcgRGlzdHJpY3QKKwkJCQlObyMgOTA2LCAyIEJ1aWxkaW5nLCBYaW5jaGVuZyBQbGF6YSwgRnVodWFuIFJELTMsIEZ1dGlhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuICBHdWFuZ2RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworNzAtM0MtMzkgICAoaGV4KQkJU0VBV0lORyBLZnQKKzcwM0MzOSAgICAgKGJhc2UgMTYpCQlTRUFXSU5HIEtmdAorCQkJCUJ1ZGFpIPp0IDEzOS4KKwkJCQlTeulrZXNmZWjpcnbhciBGZWrpciA4MDAwCisJCQkJSFVOR0FSWQorCis3MC00QS1BRSAgIChoZXgpCQlYc3RyZWFtIEZsb3cgKFB0eSkgTHRkCis3MDRBQUUgICAgIChiYXNlIDE2KQkJWHN0cmVhbSBGbG93IChQdHkpIEx0ZAorCQkJCVJvb20gMTIzLCBCdWlsZGluZyAxNiwgQ1NJUiBjYW1wdXMKKwkJCQlNZWlyaW5nIE5hdWRlIHJvYWQKKwkJCQlQcmV0b3JpYSBHYXV0ZW5nIDAxODQKKwkJCQlTT1VUSCBBRlJJQ0EKKworNzAtNTgtMTIgICAoaGV4KQkJUGFuYXNvbmljIEFWQyBOZXR3b3JrcyBDb21wYW55Cis3MDU4MTIgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIEFWQyBOZXR3b3JrcyBDb21wYW55CisJCQkJMS0xNSBNYXRzdW8tY2hvCisJCQkJS2Fkb21hIE9zYWthIDU3MS04NTA0CisJCQkJSkFQQU4KKworNzAtNUEtQjYgICAoaGV4KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIExURC4gCis3MDVBQjYgICAgIChiYXNlIDE2KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIExURC4gCisJCQkJTk8uIDI1LCBUSEUgM1JEIFN0cmVldCBLVU5TSEFOIEVYUE9SVCBQUk9DRVNTSU5HIFpPTkUgCisJCQkJS1VOU0hBTiBTVVpIT1UgMjE1MzAwIAorCQkJCUNISU5BCisKKzcwLTVDLUFEICAgKGhleCkJCUtvbmFtaSBHYW1pbmcgSW5jCis3MDVDQUQgICAgIChiYXNlIDE2KQkJS29uYW1pIEdhbWluZyBJbmMKKwkJCQk1ODUgVHJhZGUgQ2VudGVyIERyaXZlCisJCQkJTGFzIFZlZ2FzIE5ldmFkYSA4OTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtNUUtQUEgICAoaGV4KQkJQWN0aW9uIFRhcmdldCwgSW5jLgorNzA1RUFBICAgICAoYmFzZSAxNikJCUFjdGlvbiBUYXJnZXQsIEluYy4KKwkJCQlQTyBCb3ggNjM2CisJCQkJUHJvdm8gVVQgODQ2MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLTY0LTE3ICAgKGhleCkJCU9SQklTIFRFQ05PTE9HSUEgRUxFQ1RSSUNBIFMuQS4KKzcwNjQxNyAgICAgKGJhc2UgMTYpCQlPUkJJUyBURUNOT0xPR0lBIEVMRUNUUklDQSBTLkEuCisJCQkJTGVyaWRhLCA2MQorCQkJCU1hZHJpZCBNYWRyaWQgRTI4MDIwCisJCQkJU1BBSU4KKworNzAtNjUtODIgICAoaGV4KQkJU3V6aG91IEhhbm1pbmcgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorNzA2NTgyICAgICAoYmFzZSAxNikJCVN1emhvdSBIYW5taW5nIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlTdWl0ZSA0MDcsIE5vLiAxNjYsIFJlbiBBaSBSb2FkCisJCQkJU3V6aG91IEluZHVzdHJpYWwgUGFyaworCQkJCVN1emhvdSBKaWFuZ3N1IDIxNTEyMworCQkJCUNISU5BCisKKzcwLTcxLUJDICAgKGhleCkJCVBFR0FUUk9OIENPUlBPUkFUSU9OCis3MDcxQkMgICAgIChiYXNlIDE2KQkJUEVHQVRST04gQ09SUE9SQVRJT04KKwkJCQlOby4gNzYsIExpZ29uZyBTdC4sIEJlaXRvdSwgCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzcwLTcyLUNGICAgKGhleCkJCUVkZ2VDb3JlIE5ldHdvcmtzCis3MDcyQ0YgICAgIChiYXNlIDE2KQkJRWRnZUNvcmUgTmV0d29ya3MKKwkJCQkyMCBNYXNvbgorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtNzYtRjAgICAoaGV4KQkJTGV2ZWxPbmUgQ29tbXVuaWNhdGlvbnMgKEluZGlhKSBQcml2YXRlIExpbWl0ZWQKKzcwNzZGMCAgICAgKGJhc2UgMTYpCQlMZXZlbE9uZSBDb21tdW5pY2F0aW9ucyAoSW5kaWEpIFByaXZhdGUgTGltaXRlZAorCQkJCTJGLCBMYW5lIDEsIDQ1IEJoYXJhdCBOYWdhcgorCQkJCU5ldyBGcmllbmRzIENvbG9ueQorCQkJCU5ldyBEZWxoaSBERUxISSAxMTAwMjUKKwkJCQlJTkRJQQorCis3MC03RS00MyAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorNzA3RTQzICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtN0UtREUgICAoaGV4KQkJTkFTVEVDIExURC4KKzcwN0VERSAgICAgKGJhc2UgMTYpCQlOQVNURUMgTFRELgorCQkJCTExMS1ELCBLcmFzbm9yZWNoZW5za2F5YSBzdHIuCisJCQkJS2hhYmFyb3ZzayAgNjgwMDA2CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzcwLTgyLThFICAgKGhleCkJCU9sZXVtVGVjaCBDb3Jwb3JhdGlvbgorNzA4MjhFICAgICAoYmFzZSAxNikJCU9sZXVtVGVjaCBDb3Jwb3JhdGlvbgorCQkJCTIzIEh1YmJsZQorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtOEItNzggICAoaGV4KQkJY2l0eWdyb3cgdGVjaG5vbG9neSBjby4sIGx0ZAorNzA4Qjc4ICAgICAoYmFzZSAxNikJCWNpdHlncm93IHRlY2hub2xvZ3kgY28uLCBsdGQKKwkJCQlybTE0MDQsIGJsayBBLCAsNSAtIDIxIFBhayBUaW4gUGFyIFN0cmVldAorCQkJCUhpLVRlY2ggSW5kdXN0cmlhbCBDZW50cmUsCisJCQkJVHN1ZW4gV2FuICAKKwkJCQlIT05HIEtPTkcKKworNzAtQTEtOTEgICAoaGV4KQkJVHJlbmRzZXR0ZXIgTWVkaWNhbCwgTExDCis3MEExOTEgICAgIChiYXNlIDE2KQkJVHJlbmRzZXR0ZXIgTWVkaWNhbCwgTExDCisJCQkJMjAzMCBBcmRtb3JlIEJMVkQKKwkJCQlTVEUgMzgwCisJCQkJUGl0dHNidXJnaCBQQSAxNTIyMQorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtQTQtMUMgICAoaGV4KQkJQWR2YW5jZWQgV2lyZWxlc3MgRHluYW1pY3MgUy5MLgorNzBBNDFDICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIFdpcmVsZXNzIER5bmFtaWNzIFMuTC4KKwkJCQlDZW50cm8gZGUgRW1wcmVzYXMgVVBNIG9maWNpbmEgMworCQkJCUNhbXB1cyBVUE0gTW9udGVnYW5jZWRvCisJCQkJUG96dWVsbyBkZSBBbGFyY29uIE1hZHJpZCAyODIyMworCQkJCVNQQUlOCisKKzcwLUIwLTM1ICAgKGhleCkJCVNoZW56aGVuIFpvd2VlIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzcwQjAzNSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBab3dlZSBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJQmxvY2sgNSwgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSBJbmR1c3RyaWFsIAorCQkJCVBhcmsgb2YgUHJpdmF0ZWx5IE93bmVkIEVudGVycHJpc2VzLCBQaW5nc2hhbiwgWGlsaSwgTmFuc2hhbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTUKKwkJCQlDSElOQQorCis3MC1CMC04QyAgIChoZXgpCQlTaGVub3UgQ29tbXVuaWNhdGlvbiBFcXVpcG1lbnQgQ28uLEx0ZAorNzBCMDhDICAgICAoYmFzZSAxNikJCVNoZW5vdSBDb21tdW5pY2F0aW9uIEVxdWlwbWVudCBDby4sTHRkCisJCQkJTm8uMTE4IE1pZGRsZSBKdWd1YW5nIFJvYWQsIEhpZ2ggJmFtcDsgTmV3IEluZHVzdHJpYWwgWm9uZQorCQkJCVdlbnpob3UgWmhlamlhbmcgMzI1MDI5CisJCQkJQ0hJTkEKKworNzAtQjItNjUgICAoaGV4KQkJSGlsdHJvbiBzLnIubC4KKzcwQjI2NSAgICAgKGJhc2UgMTYpCQlIaWx0cm9uIHMuci5sLgorCQkJCVN0cmFkYSBQcm92aW5jaWFsZSBkaSBDYXNlcnRhLCAyMTgKKwkJCQlOYXBsZXMgIDgwMTQ0CisJCQkJSVRBTFkKKworNzAtQjktMjEgICAoaGV4KQkJRmliZXJIb21lIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDTy4sTFRECis3MEI5MjEgICAgIChiYXNlIDE2KQkJRmliZXJIb21lIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDTy4sTFRECisJCQkJTm8uNSBEb25neGluIFJvYWQsSG9uZ3NoYW4gRGlzdHJpY3QKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzQKKwkJCQlDSElOQQorCis3MC1DRC02MCAgIChoZXgpCQlBcHBsZSBJbmMKKzcwQ0Q2MCAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCis3MC1ENC1GMiAgIChoZXgpCQlSSU0KKzcwRDRGMiAgICAgKGJhc2UgMTYpCQlSSU0KKwkJCQkyOTUgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCAzVzgKKwkJCQlDQU5BREEKKworNzAtRDUtN0UgICAoaGV4KQkJU2NhbGFyIENvcnBvcmF0aW9uCis3MEQ1N0UgICAgIChiYXNlIDE2KQkJU2NhbGFyIENvcnBvcmF0aW9uCisJCQkJMUYgU2FuLUVpIEJsZGcKKwkJCQkxLTIyLTIKKwkJCQlTaGluanVrdS1rdSBUb2t5byAxNjAtMDAyMworCQkJCUpBUEFOCisKKzcwLUQ1LUU3ICAgKGhleCkJCVdlbGxjb3JlIENvcnBvcmF0aW9uCis3MEQ1RTcgICAgIChiYXNlIDE2KQkJV2VsbGNvcmUgQ29ycG9yYXRpb24KKwkJCQkyODcwIFphbmtlciBSb2FkCisJCQkJU3VpdGUgMTMwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLUQ4LTgwICAgKGhleCkJCVVwb3MgU3lzdGVtIHNwLiB6IG8uby4KKzcwRDg4MCAgICAgKGJhc2UgMTYpCQlVcG9zIFN5c3RlbSBzcC4geiBvLm8uCisJCQkJU2llbmtpZXdpY3phIDEzCisJCQkJS251cm93IFNsYXNraWUgNDQtMTkwCisJCQkJUE9MQU5ECisKKzcwLURELUExICAgKGhleCkJCVRlbGxhYnMKKzcwRERBMSAgICAgKGJhc2UgMTYpCQlUZWxsYWJzCisJCQkJT25lIFRlbGxhYnMgQ2VudGVyCisJCQkJMTQxNSBXZXN0IERpZWhsIFJvYWQKKwkJCQlOYXBlcnZpbGxlIElsbGlub2lzIDYwNTYzCisJCQkJVU5JVEVEIFNUQVRFUworCis3MC1FMS0zOSAgIChoZXgpCQkzdmlldyBMdGQKKzcwRTEzOSAgICAgKGJhc2UgMTYpCQkzdmlldyBMdGQKKwkJCQkxNjgtMTcyIE9sZCBTdHJlZXQKKwkJCQlMb25kb24gIEVDMVYgOUJQCisJCQkJVU5JVEVEIEtJTkdET00KKworNzAtRTgtNDMgICAoaGV4KQkJQmVpamluZyBDJlcgT3B0aWNhbCBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzcwRTg0MyAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEMmVyBPcHRpY2FsIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTIvRiBZdWZhIFBsYXphLCBOby4xOSBYaWFveWluZyBCZWlsdSwgQ2hhb3lhbmcgRGlzdHJpY3QsIAorCQkJCUJlaWppbmcgIDEwMDEwMQorCQkJCUNISU5BCisKKzcwLUYxLUExICAgKGhleCkJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCis3MEYxQTEgICAgIChiYXNlIDE2KQkJTGl0ZW9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Riw5MCxDaGllbiAxIFJvYWQsQ2h1bmdIbyxUYWlwZWkgSHNpZW4KKwkJCQlUYWlwZWkgIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3MC1GMy05NSAgIChoZXgpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzcwRjM5NSAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKwkJCQkxNDEsIExBTkUgMzUxLCBTRUMuMSxUQUlQSU5HIFJELgorCQkJCVRTQU9UVUVOCisJCQkJTkFOVE9VIDU0MjYxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3NC0wQS1CQyAgIChoZXgpCQlKU0pTIERlc2lnbnMgKEV1cm9wZSkgTGltaXRlZAorNzQwQUJDICAgICAoYmFzZSAxNikJCUpTSlMgRGVzaWducyAoRXVyb3BlKSBMaW1pdGVkCisJCQkJRXpla2llbCBIb3VzZQorCQkJCUV6ZWtpZWwgTGFuZQorCQkJCVdpbGxlbmhhbGwgV2VzdCBNaWRsYW5kcyBXVjEyIDVRVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzc0LTE1LUUyICAgKGhleCkJCVRyaS1TZW4gU3lzdGVtcyBDb3Jwb3JhdGlvbgorNzQxNUUyICAgICAoYmFzZSAxNikJCVRyaS1TZW4gU3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTE3NjI1IEVsIENhbWlubyBSZWFsIFN1aXRlIDIwMAorCQkJCUhvdXN0b24gVFggNzcwNTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LTJGLTY4ICAgKGhleCkJCUF6dXJld2F2ZSBUZWNobm9sb2dpZXMsIEluYy4KKzc0MkY2OCAgICAgKGJhc2UgMTYpCQlBenVyZXdhdmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJOEYuLCBCYW96aG9uZyBSZC4KKwkJCQlYaW5kaWFuIENpdHkgVGFpcGVpIENvdW50eSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzc0LTMyLTU2ICAgKGhleCkJCU5ULXdhcmUgU3lzdGVtcHJnIEdtYkgKKzc0MzI1NiAgICAgKGJhc2UgMTYpCQlOVC13YXJlIFN5c3RlbXByZyBHbWJICisJCQkJTmllZGVyc2FjaHNlbnN0cmFzc2UgNgorCQkJCUJhZCBJYnVyZyBORFMgNDkxODYKKwkJCQlHRVJNQU5ZCisKKzc0LTM4LTg5ICAgKGhleCkJCUFOTkFYIEFuemVpZ2VzeXN0ZW1lIEdtYkgKKzc0Mzg4OSAgICAgKGJhc2UgMTYpCQlBTk5BWCBBbnplaWdlc3lzdGVtZSBHbWJICisJCQkJV2V0dGVyc3RlaW5zdHJhc3NlIDE4CisJCQkJVGF1ZmtpcmNoZW4gQmF2YXJpYSA4MjAyNAorCQkJCUdFUk1BTlkKKworNzQtNTYtMTIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzc0NTYxMiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LTVFLTFDICAgKGhleCkJCVBJT05FRVIgQ09SUE9SQVRJT04KKzc0NUUxQyAgICAgKGJhc2UgMTYpCQlQSU9ORUVSIENPUlBPUkFUSU9OCisJCQkJMS0xIFNoaW4tb2d1cmEKKwkJCQlTYWl3YWkta3UKKwkJCQlLYXdhc2FraS1zaGkgS2FuYWdhd2EgUHJlZmVjdHVyZSAyMTIwMDMxCisJCQkJSkFQQU4KKworNzQtNjUtRDEgICAoaGV4KQkJQXRsaW5rcworNzQ2NUQxICAgICAoYmFzZSAxNikJCUF0bGlua3MKKwkJCQkzMCBBdmVudWUgR2Vyb2dlIFYKKwkJCQlQYXJpcyAgNzUwMDgKKwkJCQlGUkFOQ0UKKworNzQtNkItODIgICAoaGV4KQkJTU9WRUsgCis3NDZCODIgICAgIChiYXNlIDE2KQkJTU9WRUsgCisJCQkJNjUxNyBOYXZhaG8gVHJhaWwKKwkJCQlFZGluYSBNaW5uZXNvdGEgNTU0MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LTcyLUYyICAgKGhleCkJCUNoaXBzaXAgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzc0NzJGMiAgICAgKGJhc2UgMTYpCQlDaGlwc2lwIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJOEYtMSwgTm8uMTg2LCBKaWFuLVlpIFJvYWQsIENodW5nSG8gQ2l0eSwKKwkJCQlUYWlwZWkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNzQtNzgtMTggICAoaGV4KQkJU2VydmljZUFzc3VyZQorNzQ3ODE4ICAgICAoYmFzZSAxNikJCVNlcnZpY2VBc3N1cmUKKwkJCQlHcm91bmQgRmxvb3IsIEJsb2NrIFAsIENyeXN0YWwgUGFyayBPbmUKKwkJCQkyNDkgQmFzZGVuIEF2ZW51ZSwgTHl0dGVsdG9uCisJCQkJQ2VudHVyaW9uIFRzaHdhbmUgMDE1NworCQkJCVNPVVRIIEFGUklDQQorCis3NC03RC1CNiAgIChoZXgpCQlBbGl3ZWkgQ29tbXVuaWNhdGlvbnMsIEluYworNzQ3REI2ICAgICAoYmFzZSAxNikJCUFsaXdlaSBDb21tdW5pY2F0aW9ucywgSW5jCisJCQkJS2VqaSA2IFJvYWQgLCBIaS10ZWNoIEluZHVzdHJpYWwgUGFyayAgCisJCQkJTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis3NC03RS0xQSAgIChoZXgpCQlSZWQgRW1iZWRkZWQgRGVzaWduIExpbWl0ZWQKKzc0N0UxQSAgICAgKGJhc2UgMTYpCQlSZWQgRW1iZWRkZWQgRGVzaWduIExpbWl0ZWQKKwkJCQlWZWxvY2l0eQorCQkJCUFuZ2VsIFdheQorCQkJCUJyYWRmb3JkIFdlc3QgWW9ya3NoaXJlIEJENyAxQlgKKwkJCQlVTklURUQgS0lOR0RPTQorCis3NC04RS1GOCAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKzc0OEVGOCAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHIKKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworNzQtOTAtNTAgICAoaGV4KQkJUmVuZXNhcyBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorNzQ5MDUwICAgICAoYmFzZSAxNikJCVJlbmVzYXMgRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KKwkJCQkxNzUzLCBTaGltb251bWFiZSwgTmFrYWhhcmEtS3UKKwkJCQlLYXdhc2FraSBLYW5hZ2F3YSAyMTEtODY2OAorCQkJCUpBUEFOCisKKzc0LTkxLTFBICAgKGhleCkJCVJ1Y2t1cyBXaXJlbGVzcworNzQ5MTFBICAgICAoYmFzZSAxNikJCVJ1Y2t1cyBXaXJlbGVzcworCQkJCTg4MCBXZXN0IE1hdWRlIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LUE0LUE3ICAgKGhleCkJCVFSUyBNdXNpYyBUZWNobm9sb2dpZXMsIEluYy4KKzc0QTRBNyAgICAgKGJhc2UgMTYpCQlRUlMgTXVzaWMgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMjY5IFF1YWtlciBEcml2ZQorCQkJCVNlbmVjYSBQQSAxNjM0NgorCQkJCVVOSVRFRCBTVEFURVMKKworNzQtQTctMjIgICAoaGV4KQkJTEcgRWxlY3Ryb25pY3MKKzc0QTcyMiAgICAgKGJhc2UgMTYpCQlMRyBFbGVjdHJvbmljcworCQkJCTYwMy0zOSAsIEthc2FuLWRvbmcsIEd1bWNoZW9uLWd1CisJCQkJU2VvdWwgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNzQtQjAtMEMgICAoaGV4KQkJTmV0d29yayBWaWRlbyBUZWNobm9sb2dpZXMsIEluYworNzRCMDBDICAgICAoYmFzZSAxNikJCU5ldHdvcmsgVmlkZW8gVGVjaG5vbG9naWVzLCBJbmMKKwkJCQk0MDA1IEJvaGFubm9uIERyaXZlCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworNzQtQjktRUIgICAoaGV4KQkJRnVqaWFuIEdvbGRjYXQgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLixMdGQuCis3NEI5RUIgICAgIChiYXNlIDE2KQkJRnVqaWFuIEdvbGRjYXQgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJUm9vbSA1MDYgWW9uZ0hlbmcgQnVpbGRpbmcgTk8uNTggSmlhbmdCaW5nIFJhb2QKKwkJCQlGdVpob3UgRnVKaWFuIDM1MDAwNQorCQkJCUNISU5BCisKKzc0LUJFLTA4ICAgKGhleCkJCVBSSVZBVEUKKzc0QkUwOCAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorNzQtQ0QtMEMgICAoaGV4KQkJU21pdGggTXllcnMgQ29tbXVuaWNhdGlvbnMgTHRkLgorNzRDRDBDICAgICAoYmFzZSAxNikJCVNtaXRoIE15ZXJzIENvbW11bmljYXRpb25zIEx0ZC4KKwkJCQlUaGUgT21lZ2EgQ2VudHJlCisJCQkJU3RyYXR0b24gQnVzaW5lc3MgUGFyaworCQkJCUJpZ2dsZXN3YWRlIEJFRFMgU0cxOCA4UUIKKwkJCQlVTklURUQgS0lOR0RPTQorCis3NC1DRS01NiAgIChoZXgpCQlQYWNrZXQgRm9yY2UgVGVjaG5vbG9neSBMaW1pdGVkIENvbXBhbnkKKzc0Q0U1NiAgICAgKGJhc2UgMTYpCQlQYWNrZXQgRm9yY2UgVGVjaG5vbG9neSBMaW1pdGVkIENvbXBhbnkKKwkJCQkgMkYuLCBOby4yNSwgU2VjLiAxLCBTaHVhbmdzaGkgUmQuLCBDZW50cmFsIERpc3QuLCAKKwkJCQlUYWljaHVuZyAgNDAwNDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzc0LUQwLURDICAgKGhleCkJCUVSSUNTU09OIEFCCis3NEQwREMgICAgIChiYXNlIDE2KQkJRVJJQ1NTT04gQUIKKwkJCQlUb3JzaGFtbnNnYXRhbiAzNgorCQkJCVNUT0NLSE9MTSAgMTY0IDgzIAorCQkJCVNXRURFTgorCis3NC1ENi03NSAgIChoZXgpCQlXWU1BIFRlY25vbG9naWEKKzc0RDY3NSAgICAgKGJhc2UgMTYpCQlXWU1BIFRlY25vbG9naWEKKwkJCQlSdWEgQ2zvv71tYWNvIEJhcmJvc2EsIDE3MS0xNzkKKwkJCQlDYW1idWNpCisJCQkJU++/vW8gUGF1bG8gIDAxNTIzLTAwMAorCQkJCUJSQVpJTAorCis3NC1EOC01MCAgIChoZXgpCQlFdnJpc2tvIFN5c3RlbXMKKzc0RDg1MCAgICAgKGJhc2UgMTYpCQlFdnJpc2tvIFN5c3RlbXMKKwkJCQkyMzIyIEFscGluZSBSZCwgU3RlIDEwCisJCQkJRWF1IENsYWlyZSBXSSA1NDcwMworCQkJCVVOSVRFRCBTVEFURVMKKworNzQtRTAtNkUgICAoaGV4KQkJRXJnb3Bob25lIEdtYkgKKzc0RTA2RSAgICAgKGJhc2UgMTYpCQlFcmdvcGhvbmUgR21iSAorCQkJCVRlbW1sZXJzdHJhc3NlIDUKKwkJCQlNYXJidXJnIEhlc3NlbiAzNTAzOQorCQkJCUdFUk1BTlkKKworNzQtRTUtMEIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis3NEU1MEIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis3NC1FNS0zNyAgIChoZXgpCQlSQURTUElOCis3NEU1MzcgICAgIChiYXNlIDE2KQkJUkFEU1BJTgorCQkJCVNvbmdwYS1ndSBHYXJhay1kb25nIDc4CisJCQkJSVQgVmVudHVyZSBUb3dlciBXZXN0IFdpbmcgMTJ0aCBGbC4KKwkJCQlTZW91bCAgMTM4LTk1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3NC1FNy1DNiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorNzRFN0M2ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworNzQtRUEtM0EgICAoaGV4KQkJVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzc0RUEzQSAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCUJ1aWxkaW5nIDcsIFNlY29uZCBQYXJ0LCBIb25naHVhbGluZyBJbmR1c3RyaWFsIFpvbmUKKwkJCQlYaWxpLE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworNzQtRjAtNkQgICAoaGV4KQkJQXp1cmVXYXZlIFRlY2hub2xvZ2llcywgSW5jLgorNzRGMDZEICAgICAoYmFzZSAxNikJCUF6dXJlV2F2ZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk4Ri4sIEJhb3pob25nIFJkLiwgCisJCQkJWGluZGlhbiBDaXR5LCBUYWlwZWkgQ291bnR5LiAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3NC1GMC03RCAgIChoZXgpCQlCbkNPTSBDby4sTHRkCis3NEYwN0QgICAgIChiYXNlIDE2KQkJQm5DT00gQ28uLEx0ZAorCQkJCVJvb20xMDA3LCBEYWVoeXVuIFRlY2hubyBXb3JsZCwgMTc0CisJCQkJT2plb24tZG9uZywgCisJCQkJVWl3YW5nLXNpIEd5ZW9uZ2dpLWRvIDQzNy03NTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNzQtRjYtMTIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzc0RjYxMiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LUY3LTI2ICAgKGhleCkJCU5ldXJvbiBSb2JvdGljcworNzRGNzI2ICAgICAoYmFzZSAxNikJCU5ldXJvbiBSb2JvdGljcworCQkJCTkxIFBlYXJzb24gQXZlCisJCQkJVW5pdCAyCisJCQkJU29tZXJ2aWxsZSBNQSAwMjE0NAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtMDItOEYgICAoaGV4KQkJQWRhcHRpdmUgU3BlY3RydW0gYW5kIFNpZ25hbCBBbGlnbm1lbnQgKEFTU0lBKSwgSW5jLgorNzgwMjhGICAgICAoYmFzZSAxNikJCUFkYXB0aXZlIFNwZWN0cnVtIGFuZCBTaWduYWwgQWxpZ25tZW50IChBU1NJQSksIEluYy4KKwkJCQkzMzMgVHdpbiBEb2xwaGluIERyaXZlCisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDY1CisJCQkJVU5JVEVEIFNUQVRFUworCis3OC0xMS04NSAgIChoZXgpCQlOQlMgUGF5bWVudCBTb2x1dGlvbnMgSW5jLgorNzgxMTg1ICAgICAoYmFzZSAxNikJCU5CUyBQYXltZW50IFNvbHV0aW9ucyBJbmMuCisJCQkJNzAzIEV2YW5zIEF2ZQorCQkJCVN1aXRlIDQwMAorCQkJCVRvcm9udG8gT250YXJpbyBNOUMgNUU5CisJCQkJQ0FOQURBCisKKzc4LTEyLUI4ICAgKGhleCkJCU9SQU5URUsgTElNSVRFRAorNzgxMkI4ICAgICAoYmFzZSAxNikJCU9SQU5URUsgTElNSVRFRAorCQkJCTUvRiwgQnVpbGRpbmcgRSwgRGFrYW4gVGVjaCBQYXJrLCBEYWthbiB2aWxsYWdlLCBYaWxpIFRvd24sIE5hbnNoYW4gRGlzdHJpY3QsIFNoZW56aGVuLCBDaGluYQorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCis3OC0xOS0yRSAgIChoZXgpCQlOQVNDRU5UIFRlY2hub2xvZ3kKKzc4MTkyRSAgICAgKGJhc2UgMTYpCQlOQVNDRU5UIFRlY2hub2xvZ3kKKwkJCQkyNzQ0IFlvcmttb250IFJECisJCQkJQ2hhcmxvdHRlIE5DIDI4MjA4CisJCQkJVU5JVEVEIFNUQVRFUworCis3OC0xOS1GNyAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCis3ODE5RjcgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkgCisJCQkJVU5JVEVEIFNUQVRFUworCis3OC0xRC1CQSAgIChoZXgpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKzc4MURCQSAgICAgKGJhc2UgMTYpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKwkJCQlIVUFXRUkgSW5kdXN0cmlhbCBCYXNlIEJhbnRpYW4sTG9uZ2dhbmcKKwkJCQlTaGVuemhlbiBndWFuZ2RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworNzgtMUQtRkQgICAoaGV4KQkJSmFiaWwgSW5jCis3ODFERkQgICAgIChiYXNlIDE2KQkJSmFiaWwgSW5jCisJCQkJMTA1MDAgRHIuIE1hcnRpbiBMdXRoZXIgS2luZyBKci4gU3QuIE4uCisJCQkJRG9jayBDCisJCQkJU3QuIFBldGVyc2J1cmcgRmxvcmlkYSAzMzcxNgorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtMjItM0QgICAoaGV4KQkJQWZmaXJtZWQgTmV0d29ya3MKKzc4MjIzRCAgICAgKGJhc2UgMTYpCQlBZmZpcm1lZCBOZXR3b3JrcworCQkJCTM1IE5hZ29nIFBhcmsKKwkJCQlBY3RvbiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtMjUtQUQgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPTklDUyBDTy4sIExURC4KKzc4MjVBRCAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCTQxNiwgTUFFVEFOLTNET05HLCBQQUxEQUwtR1UKKwkJCQlTVVdPTiBDSVRZIEtZVU5HS0ktRE8gNDQyLTc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3OC0yQi1DQiAgIChoZXgpCQlEZWxsIEluYworNzgyQkNCICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUzpSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCis3OC0yRS1FRiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorNzgyRUVGICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJWXJ0dGlwZWxsb250aWUgNgorCQkJCU91bHUgIDkwMjMwCisJCQkJRklOTEFORAorCis3OC0zMC1FMSAgIChoZXgpCQlVbHRyYUNsZW56LCBMTEMKKzc4MzBFMSAgICAgKGJhc2UgMTYpCQlVbHRyYUNsZW56LCBMTEMKKwkJCQkxNDQwIFcgSW5kaWFudG93biBSb2FkCisJCQkJU3VpdGUgMzUwCisJCQkJSnVwaXRlciBGTCAzMzQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtM0YtMTUgICAoaGV4KQkJRWFzeVNZTkMgTHRkLgorNzgzRjE1ICAgICAoYmFzZSAxNikJCUVhc3lTWU5DIEx0ZC4KKwkJCQlVbml0IDEsIDIgU2Vhd2FyZCBQbGFjZQorCQkJCUNlbnR1cmlvbiBCdXNpbmVzcyBQYXJrCisJCQkJR2xhc2dvdyBTY290bGFuZCBHNDEgMUhICisJCQkJVU5JVEVEIEtJTkdET00KKworNzgtNDQtNzYgICAoaGV4KQkJWmlvbmNvbSB0ZWNobm9sb2d5IGNvLixsdGQKKzc4NDQ3NiAgICAgKGJhc2UgMTYpCQlaaW9uY29tIHRlY2hub2xvZ3kgY28uLGx0ZAorCQkJCUExJkEyIGJ1aWxkaW5nLGxhbnRpYW4gdGVjaG5vbG9neSBwYXJrLCB4aW55dSByb2FkLCB4aW5ncWlhbyBoZW5nZ2FuZyBibG9jaywgc2hhamluZyBzdHJlZXQsIEJhb2FuIERpc3RyaWN0CisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzc4LTQ3LTFEICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNzg0NzFEICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3OC01MS0wQyAgIChoZXgpCQlMaXZlVSBMdGQuCis3ODUxMEMgICAgIChiYXNlIDE2KQkJTGl2ZVUgTHRkLgorCQkJCTUgSGFnYXZpc2ggU3QuCisJCQkJS2Zhci1TYWJhICA0NDY0MQorCQkJCUlTUkFFTAorCis3OC01Ny0xMiAgIChoZXgpCQlNb2JpbGUgSW50ZWdyYXRpb24gV29ya2dyb3VwCis3ODU3MTIgICAgIChiYXNlIDE2KQkJTW9iaWxlIEludGVncmF0aW9uIFdvcmtncm91cAorCQkJCTQ1ODAgS2xhaGFuaWUgRFIgU0UgU1RFIDEwNgorCQkJCUlzc2FxdWFoIFdBIDk4MDI5CisJCQkJVU5JVEVEIFNUQVRFUworCis3OC01OS0zRSAgIChoZXgpCQlSQUZJIEdtYkggJiBDby5LRworNzg1OTNFICAgICAoYmFzZSAxNikJCVJBRkkgR21iSCAmIENvLktHCisJCQkJUmF2ZW5zYnVyZ2VyIFN0ci4gMTI4LTEzNAorCQkJCUJlcmcgQmFkZW4gV3VydHRlbWJlcmcgODgyNzYKKwkJCQlHRVJNQU5ZCisKKzc4LTVDLTcyICAgKGhleCkJCUhpb3NvIFRlY2hub2xvZ3kgQ28uLCBMdGQuCis3ODVDNzIgICAgIChiYXNlIDE2KQkJSGlvc28gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk2dGggRmxvb3IsIDEydGggQnVpbGRpbmcsIFdhbmd0YW5nIEluZHVzdHJpYWwgWm9uZSwKKwkJCQlYaW5nYW8gUm9hZCwgWGlsaSwgTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTUKKwkJCQlDSElOQQorCis3OC02Ni1BRSAgIChoZXgpCQlaVEVDIEluc3RydW1lbnRzLCBJbmMuCis3ODY2QUUgICAgIChiYXNlIDE2KQkJWlRFQyBJbnN0cnVtZW50cywgSW5jLgorCQkJCTc3MTUgVGlidXJvbiBTdC4gTkUKKwkJCQlBbGJ1cXVlcnF1ZSBOTSA4NzEwOQorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtN0YtNjIgICAoaGV4KQkJR2lLIG1iSAorNzg3RjYyICAgICAoYmFzZSAxNikJCUdpSyBtYkgKKwkJCQlHb2V0aGVzdHIuIDUKKwkJCQlBYWNoZW4gIDUyMDY0CisJCQkJR0VSTUFOWQorCis3OC04MS04RiAgIChoZXgpCQlTZXJ2ZXIgUmFja3MgQXVzdHJhbGlhIFB0eSBMdGQKKzc4ODE4RiAgICAgKGJhc2UgMTYpCQlTZXJ2ZXIgUmFja3MgQXVzdHJhbGlhIFB0eSBMdGQKKwkJCQk0IC0gNiBFbmR1cmFuY2UgQXZlCisJCQkJUXVlYW5iZXlhbiBOU1cgMjYyMAorCQkJCUFVU1RSQUxJQQorCis3OC04NC0zQyAgIChoZXgpCQlTb255IENvcnBvcmF0aW9uCis3ODg0M0MgICAgIChiYXNlIDE2KQkJU29ueSBDb3Jwb3JhdGlvbgorCQkJCTUtMS0xMiBLaXRhc2hpbmFnYXdhIFNoaW5hZ2F3YS1rdQorCQkJCVRva3lvICAxNDEtMDAwMQorCQkJCUpBUEFOCisKKzc4LTg0LUVFICAgKGhleCkJCUlORFJBIEVTUEFDSU8gUy5BLgorNzg4NEVFICAgICAoYmFzZSAxNikJCUlORFJBIEVTUEFDSU8gUy5BLgorCQkJCUMvIFJPQyBCT1JPTkFULCAxMzMKKwkJCQlCQVJDRUxPTkEgIDA4MDE4CisJCQkJU1BBSU4KKworNzgtODktNzMgICAoaGV4KQkJQ01DCis3ODg5NzMgICAgIChiYXNlIDE2KQkJQ01DCisJCQkJSW5kdXN0cmllcGFyayBEZSBCcnV3YWFuIDM3QgorCQkJCU91ZGVuYWFyZGUgT29zdC1WbGFhbmRlcmVuIDk3MDAKKwkJCQlCRUxHSVVNCisKKzc4LThDLTU0ICAgKGhleCkJCUVua29tIFRlY2hub2xvZ2llcyBMdGQuCis3ODhDNTQgICAgIChiYXNlIDE2KQkJRW5rb20gVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQlCYWRlbmVyc3RyYXNzZSA1NTEKKwkJCQla77+9cmljaCBaSCA4MDQ4CisJCQkJU1dJVFpFUkxBTkQKKworNzgtOTItOUMgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis3ODkyOUMgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis3OC05OS04RiAgIChoZXgpCQlNRURJTElORSBJVEFMSUEgU1JMCis3ODk5OEYgICAgIChiYXNlIDE2KQkJTUVESUxJTkUgSVRBTElBIFNSTAorCQkJCVZJQSA4IE1BUlpPLCA0CisJCQkJQ09SVEUgVEVHR0UgUkVHR0lPIE5FTEwnRU1JTElBIDQyMDI1CisJCQkJSVRBTFkKKworNzgtQTAtNTEgICAoaGV4KQkJaWlOZXQgTGFicyBQdHkgTHRkIAorNzhBMDUxICAgICAoYmFzZSAxNikJCWlpTmV0IExhYnMgUHR5IEx0ZCAKKwkJCQlMZXZlbCAxCisJCQkJNTAyIEhheSBTdHJlZXQKKwkJCQlTdWJpYWNvIFdBIDYwMDgKKwkJCQlBVVNUUkFMSUEKKworNzgtQTItQTAgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCis3OEEyQTAgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworNzgtQTYtODMgICAoaGV4KQkJUHJlY2lkYXRhCis3OEE2ODMgICAgIChiYXNlIDE2KQkJUHJlY2lkYXRhCisJCQkJQ1AgNjcyCisJCQkJTWFsYWRpZXJlIDcxCisJCQkJMjAwMiBORSAyMDAyCisJCQkJU1dJVFpFUkxBTkQKKworNzgtQTYtQkQgICAoaGV4KQkJREFFWUVPTiBDb250cm9sJkluc3RydW1lbnQgQ28sLkx0ZAorNzhBNkJEICAgICAoYmFzZSAxNikJCURBRVlFT04gQ29udHJvbCZJbnN0cnVtZW50IENvLC5MdGQKKwkJCQlBQ0VURUNITk9UT1dFUiAyLTEwOCwgMTk3LTcsIEd1cm8zLURvbmcsIEd1cm8tR3UsIAorCQkJCVNlb3VsICAxNTItNzY2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzc4LUE3LTE0ICAgKGhleCkJCUFtcGhlbm9sCis3OEE3MTQgICAgIChiYXNlIDE2KQkJQW1waGVub2wKKwkJCQkyMCBWYWxsZXkgU3QuCisJCQkJRW5kaWNvdHQgTmV3IFlvcmsgMTM3NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzc4LUFDLUMwICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorNzhBQ0MwICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlNYWlsY29kZSA2LjMuMDQ5CisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtQjYtQzEgICAoaGV4KQkJQU9CTyBUZWxlY29tIENvLixMdGQKKzc4QjZDMSAgICAgKGJhc2UgMTYpCQlBT0JPIFRlbGVjb20gQ28uLEx0ZAorCQkJCVJvb20xNTA4LEppYW5nb25nIEJ1aWxkaW5nCisJCQkJTm8uMjAgV2Vuc2FuIFJvYWQKKwkJCQlIYW5nemhvdSBaaGVKaWFuZyAgMzEwMDEyCisJCQkJQ0hJTkEKKworNzgtQjgtMUEgICAoaGV4KQkJSU5URVIgU0FMRVMgQS9TCis3OEI4MUEgICAgIChiYXNlIDE2KQkJSU5URVIgU0FMRVMgQS9TCisJCQkJU3Rhdm5lYWdlcnZlaiAyMgorCQkJCUVnYWEgSnV0bGFuZCA4MjUwCisJCQkJREVOTUFSSworCis3OC1CRS1CNiAgIChoZXgpCQlFbmhhbmNlZCBWaXNpb24KKzc4QkVCNiAgICAgKGJhc2UgMTYpCQlFbmhhbmNlZCBWaXNpb24KKwkJCQk1ODgyIE1BQ0hJTkUgRFIuCisJCQkJSHVudGluZ3RvbiBCZWFjaCBDYWxpZm9ybmlhIDkyNjQ5CisJCQkJVU5JVEVEIFNUQVRFUworCis3OC1DNC0wRSAgIChoZXgpCQlIJkQgV2lyZWxlc3MgCis3OEM0MEUgICAgIChiYXNlIDE2KQkJSCZEIFdpcmVsZXNzIAorCQkJCVNq9nbkZ2VuIDE3CisJCQkJU29sbmEgIDE2OSA1NSAKKwkJCQlTV0VERU4KKworNzgtQzYtQkIgICAoaGV4KQkJSW5ub3Zhc2ljLCBJbmMuCis3OEM2QkIgICAgIChiYXNlIDE2KQkJSW5ub3Zhc2ljLCBJbmMuCisJCQkJMzczNyBQcmluY2V0b24gRHIuIE5FLCBTdWl0ZSAxMzAKKwkJCQlBbGJ1cXVlcnF1ZSBOTSA4NDEwNworCQkJCVVOSVRFRCBTVEFURVMKKworNzgtQ0EtMDQgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzc4Q0EwNCAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1ICA5MDIzMAorCQkJCUZJTkxBTkQKKworNzgtQ0EtMzkgICAoaGV4KQkJQXBwbGUKKzc4Q0EzOSAgICAgKGJhc2UgMTYpCQlBcHBsZQorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtQ0QtOEUgICAoaGV4KQkJU01DIE5ldHdvcmtzIEluYworNzhDRDhFICAgICAoYmFzZSAxNikJCVNNQyBOZXR3b3JrcyBJbmMKKwkJCQkyMCBNYXNvbgorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtRDAtMDQgICAoaGV4KQkJTmVvdXN5cyBUZWNobm9sb2d5IEluYy4KKzc4RDAwNCAgICAgKGJhc2UgMTYpCQlOZW91c3lzIFRlY2hub2xvZ3kgSW5jLgorCQkJCTEzRi4tMSwgTk8uMSwgQkFPU0hFTkcgUkQuLCAKKwkJCQlZT05HSEUgQ0lUWSBUQUlQRUkgQ09VTlRZICAyMzQ0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNzgtRDYtRjAgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvIE1lY2hhbmljcworNzhENkYwICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3RybyBNZWNoYW5pY3MKKwkJCQlNZXRhbiBEb25nIDMxNCwgWW91bmd0b25nIEd1CisJCQkJU3V3b24gS3l1bmctZ2kgRG8uIDQ0My03NDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNzgtREQtMDggICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKzc4REQwOCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgICAgMjAxNjEzIAorCQkJCUNISU5BCisKKzc4LURFLUU0ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCis3OERFRTQgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzc4LUUzLUI1ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorNzhFM0I1ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlNYWlsY29kZSA2LjMuMDQ5CisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtRTQtMDAgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKzc4RTQwMCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMyAKKwkJCQlDSElOQQorCis3OC1FNy1EMSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzc4RTdEMSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtRUMtMjIgICAoaGV4KQkJU2hhbmdoYWkgUWlodWkgVGVsZWNvbSBUZWNobm9sb2d5IENvLiwgTFRECis3OEVDMjIgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgUWlodWkgVGVsZWNvbSBUZWNobm9sb2d5IENvLiwgTFRECisJCQkJUm9vbSA1MDEsIE5vIDIgQm9ZdW4gUmQsIFB1RG9uZyBOZXcgQXJlYSwgCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzc4LUVGLTRDICAgKGhleCkJCVVuZXRjb252ZXJnZW5jZSBDby4sIEx0ZC4KKzc4RUY0QyAgICAgKGJhc2UgMTYpCQlVbmV0Y29udmVyZ2VuY2UgQ28uLCBMdGQuCisJCQkJMTAxLTUxMSwgRGlnaXRhbCBFbXBpcmUyLCA0ODYsIFNoaW4tZG9uZywgWW91bmd0b25nLWd1CisJCQkJU3V3b24gS3lvbmdnaS1kbyA0NDMtMzkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzdDLTAzLTRDICAgKGhleCkJCVNBR0VNQ09NCis3QzAzNEMgICAgIChiYXNlIDE2KQkJU0FHRU1DT00KKwkJCQkyNTAgcm91dGUgZGUgbCdFbXBlcmV1cgorCQkJCVJVRUlMIE1BTE1BSVNPTiBJbGUgZGUgRnJhbmNlIDkyODQ4CisJCQkJRlJBTkNFCisKKzdDLTA1LTFFICAgKGhleCkJCVJBRkFFTCBMVEQuCis3QzA1MUUgICAgIChiYXNlIDE2KQkJUkFGQUVMIExURC4KKwkJCQlHVVNIIFNFR0VWIFBPQiAyMjUwCisJCQkJSEFJRkEgIDMxMDA4CisJCQkJSVNSQUVMCisKKzdDLTA4LUQ5ICAgKGhleCkJCVNoYW5naGFpIEVuZ2luZWVyaW5nIFJlc2VhcmNoIENlbnRlciBmb3IgQnJvYWRiYW5kIFRlY2hub2xvZ2llcyBhbmQgQXBwbGljYXRpb25zCis3QzA4RDkgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgRW5naW5lZXJpbmcgUmVzZWFyY2ggQ2VudGVyIGZvciBCcm9hZGJhbmQgVGVjaG5vbG9naWVzIGFuZCBBcHBsaWNhdGlvbnMKKwkJCQkxNTAgSG9uZ2d1IFJvYWQKKwkJCQlDaGFuZ25pbmcgRGlzdHJpY3QKKwkJCQlTaGFuZ2hhaSAgMjAwMzM2CisJCQkJQ0hJTkEKKworN0MtMTQtNzYgICAoaGV4KQkJRGFtYWxsIFRlY2hub2xvZ2llcyBTLkEuUy4gRGkgTHVkb3ZpYyBBbnNlbG1lIEdsYWdsYW5vbiAmIEMuCis3QzE0NzYgICAgIChiYXNlIDE2KQkJRGFtYWxsIFRlY2hub2xvZ2llcyBTLkEuUy4gRGkgTHVkb3ZpYyBBbnNlbG1lIEdsYWdsYW5vbiAmIEMuCisJCQkJQ29yc28gZGVsbGEgUmVwdWJibGljYSA2NQorCQkJCUZhYnJpYW5vIEFuY29uYSA2MDA0NAorCQkJCUlUQUxZCisKKzdDLTFFLUIzICAgKGhleCkJCTJOIFRFTEVLT01VTklLQUNFIGEucy4KKzdDMUVCMyAgICAgKGJhc2UgMTYpCQkyTiBURUxFS09NVU5JS0FDRSBhLnMuCisJCQkJTW9kcmFuc2thIDYyMQorCQkJCVByYWd1ZSBDemVjaCBSZXB1YmxpYyAxNDMwMQorCQkJCUNaRUNIIFJFUFVCTElDCisKKzdDLTIwLTY0ICAgKGhleCkJCUFsY2F0ZWwgTHVjZW50IElQRAorN0MyMDY0ICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTHVjZW50IElQRAorCQkJCTYwMCBNYXJjaCBEcml2ZQorCQkJCUthbmF0YSBPbnRhcmlvIEsySzJFNgorCQkJCUNBTkFEQQorCis3Qy0yQy1GMyAgIChoZXgpCQlTZWN1cmUgRWxlY3RyYW5zIEx0ZAorN0MyQ0YzICAgICAoYmFzZSAxNikJCVNlY3VyZSBFbGVjdHJhbnMgTHRkCisJCQkJVGhlIEVuZXJneSBJbm5vdmF0aW9uIENlbnRyZQorCQkJCUNhcGVuaHVyc3QKKwkJCQlDaGVzdGVyICBDSDEgNkVTCisJCQkJVU5JVEVEIEtJTkdET00KKworN0MtMkUtMEQgICAoaGV4KQkJQmxhY2ttYWdpYyBEZXNpZ24KKzdDMkUwRCAgICAgKGJhc2UgMTYpCQlCbGFja21hZ2ljIERlc2lnbgorCQkJCTExIEdhdGV3YXkgQ291cnQKKwkJCQlQb3J0IE1lbGJvdXJuZQorCQkJCU1lbGJvdXJuZSBWaWN0b3JpYSAzMjA3CisJCQkJQVVTVFJBTElBCisKKzdDLTJGLTgwICAgKGhleCkJCUdpZ2FzZXQgQ29tbXVuaWNhdGlvbnMgR21iSAorN0MyRjgwICAgICAoYmFzZSAxNikJCUdpZ2FzZXQgQ29tbXVuaWNhdGlvbnMgR21iSAorCQkJCVNDTSBQRSAyCisJCQkJRnJhbmtlbnN0cmFzc2UgMgorCQkJCUJvY2hvbHQgIDQ2Mzk1CisJCQkJR0VSTUFOWQorCis3Qy0zOS0yMCAgIChoZXgpCQlTU09NQSBTRUNVUklUWQorN0MzOTIwICAgICAoYmFzZSAxNikJCVNTT01BIFNFQ1VSSVRZCisJCQkJVW5pdCA3MDMsIERhZXJ5dW5nIFRlY2hub3Rvd24gMTN0aCwgCisJCQkJNjY0LCBHYXNhbmRvbmcsIAorCQkJCUdldW1jaGVvbmd1IFNlb3VsIDE1Mzc1NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3Qy0zQi1ENSAgIChoZXgpCQlJbWFnbyBHcm91cAorN0MzQkQ1ICAgICAoYmFzZSAxNikJCUltYWdvIEdyb3VwCisJCQkJUmFtb24gTWFydGkgQWxzaW5hIDItNC02CisJCQkJQmFkYWxvbmEgQmFyY2Vsb25hIDA4OTExCisJCQkJU1BBSU4KKworN0MtM0UtOUQgICAoaGV4KQkJUEFURUNICis3QzNFOUQgICAgIChiYXNlIDE2KQkJUEFURUNICisJCQkJIzIzLTE3LiBXb25oeW9Sby0yR2EKKwkJCQlZb25nU2FuLUd1IFNlb3VsIDE0MDExMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3Qy00QS04MiAgIChoZXgpCQlQb3J0c21pdGggTExDCis3QzRBODIgICAgIChiYXNlIDE2KQkJUG9ydHNtaXRoIExMQworCQkJCTg1MCBFLiBGcmFua2xpbiBSb2FkCisJCQkJU3VpdGUgNDAxCisJCQkJTWVyaWRpYW4gSUQgODM2NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzdDLTRBLUE4ICAgKGhleCkJCU1pbmRUcmVlIFdpcmVsZXNzIFBWVCBMdGQKKzdDNEFBOCAgICAgKGJhc2UgMTYpCQlNaW5kVHJlZSBXaXJlbGVzcyBQVlQgTHRkCisJCQkJTEdGLCBQaGFzZSBJSUksIE1pbmR0cmVlIFdlc3QgQ2FtcHVzLCAKKwkJCQlHbG9iYWwgVmlsbGFnZSBDYW1wdXMsIFJWQ0UgUG9zdCwgTXlsYXNhbmRyYSBWaWxsYWdlLCBvZmYgTXlzb3JlIFJvYWQKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MCAwNTkKKwkJCQlJTkRJQQorCis3Qy00Ri1CNSAgIChoZXgpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCis3QzRGQjUgICAgIChiYXNlIDE2KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLiwgTk8uOSwgUGFyayBBdmVudWUgSUksCisJCQkJSHNpbmNodSBTY2llbmNlIFBhcmssCisJCQkJSHNpbmNodSAsICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzdDLTU1LUU3ICAgKGhleCkJCVlTSSwgSW5jLgorN0M1NUU3ICAgICAoYmFzZSAxNikJCVlTSSwgSW5jLgorCQkJCTE3MjUgQnJhbm51bSBMYW5lCisJCQkJWWVsbG93IFNwcmluZ3MgT2hpbyA0NTM4NworCQkJCVVOSVRFRCBTVEFURVMKKworN0MtNjEtOTMgICAoaGV4KQkJSFRDIENvcnBvcmF0aW9uCis3QzYxOTMgICAgIChiYXNlIDE2KQkJSFRDIENvcnBvcmF0aW9uCisJCQkJTm8uIDIzLCBYaW5naHVhIFJkLiwgCisJCQkJVGFveXVhbiBDaXR5CisJCQkJVGFveXVhbiBDb3VudHkgIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworN0MtNkEtREIgICAoaGV4KQkJU2FmZVRvbmUgVGVjaG5vbG9neSBDby4sTHRkCis3QzZBREIgICAgIChiYXNlIDE2KQkJU2FmZVRvbmUgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJUm9vbSAzMjMsWmh1b3VKaSBQbGF6YSxOby4xNiBBbkRlIFJvYWQsRWFzdCBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwMTEKKwkJCQlDSElOQQorCis3Qy02Qy0zOSAgIChoZXgpCQlQSVhTWVMgU1JMCis3QzZDMzkgICAgIChiYXNlIDE2KQkJUElYU1lTIFNSTAorCQkJCVZJQSBERUxMQSBDUk9DRSBST1NTQSwgIDQyCisJCQkJUEFET1ZBIFBEIDM1MTI5CisJCQkJSVRBTFkKKworN0MtNkMtOEYgICAoaGV4KQkJQU1TIE5FVkUgTFRECis3QzZDOEYgICAgIChiYXNlIDE2KQkJQU1TIE5FVkUgTFRECisJCQkJQklMTElOR1RPTiBST0FECisJCQkJQlVSTkxFWSBMQU5DQVNISVJFIEJCMTEgNVVCCisJCQkJVU5JVEVEIEtJTkdET00KKworN0MtNkQtNjIgICAoaGV4KQkJQXBwbGUsIEluYworN0M2RDYyICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzdDLTZGLTA2ICAgKGhleCkJCUNhdGVycGlsbGFyIFRyaW1ibGUgQ29udHJvbCBUZWNobm9sb2dpZXMKKzdDNkYwNiAgICAgKGJhc2UgMTYpCQlDYXRlcnBpbGxhciBUcmltYmxlIENvbnRyb2wgVGVjaG5vbG9naWVzCisJCQkJNTQ3NSBLZWxsZW5idXJnZXIgUmQuCisJCQkJRGF5dG9uIE9IIDQ1NDI0CisJCQkJVU5JVEVEIFNUQVRFUworCis3Qy03Ni03MyAgIChoZXgpCQlFTk1BUyBHbWJICis3Qzc2NzMgICAgIChiYXNlIDE2KQkJRU5NQVMgR21iSAorCQkJCUhvbHprb3BwZWx3ZWcgMjMKKwkJCQlLaWVsIFNjaGxlc3dpZy1Ib2xzdGVpbiAyNDI1MQorCQkJCUdFUk1BTlkKKworN0MtN0ItRTQgICAoaGV4KQkJWiYjMzk7U0VEQUkgS0VOS1lVU0hPIENPUlBPUkFUSU9OCis3QzdCRTQgICAgIChiYXNlIDE2KQkJWiYjMzk7U0VEQUkgS0VOS1lVU0hPIENPUlBPUkFUSU9OCisJCQkJTWVpa2FpIHNhbm5vbWl5YSAybmQgQmxkZy4gMTF0aC9mbC4KKwkJCQk3Ni0yIEt5b21hY2hpIENodW8ta3UKKwkJCQlLb2JlIEh5b2dvIDY1MC0wMDM0CisJCQkJSkFQQU4KKworN0MtN0QtNDEgICAoaGV4KQkJSmlubXV5dSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzdDN0Q0MSAgICAgKGJhc2UgMTYpCQlKaW5tdXl1IEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCVJvb20gMTMyLCBCdWlsZGluZyAxNiwgVGlhbnFpYW93YW4KKwkJCQlYaW5odWEgTm9ydGggUm9hZCwgVG9uZ3pob3UgRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDExMDEKKwkJCQlDSElOQQorCis3Qy04RS1FNCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworN0M4RUU0ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis3Qy1BMi05QiAgIChoZXgpCQlELlNpZ25UIEdtYkggJmFtcDsgQ28uIEtHCis3Q0EyOUIgICAgIChiYXNlIDE2KQkJRC5TaWduVCBHbWJIICZhbXA7IENvLiBLRworCQkJCU1hcmt0c3RyLiAxMAorCQkJCUtlcmtlbiAgNDc2NDcKKwkJCQlHRVJNQU5ZCisKKzdDLUI1LTQyICAgKGhleCkJCUFDRVMgVGVjaG5vbG9neQorN0NCNTQyICAgICAoYmFzZSAxNikJCUFDRVMgVGVjaG5vbG9neQorCQkJCSM5MjgsIEh5dW5kYWkgVmVudHVyZSBWaWxsZQorCQkJCTcxMyBTdXNlby1kb25nLCBLYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS01MzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworN0MtQkItNkYgICAoaGV4KQkJQ29zY28gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCis3Q0JCNkYgICAgIChiYXNlIDE2KQkJQ29zY28gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJIzExMDEsIEVOQyBEcmVhbSB0b3dlciwgMzI3LTI3CisJCQkJR2FzYW4tZG9uZywgR2V1bWNoZW9uLWd1CisJCQkJU2VvdWwgIDE1My03OTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworN0MtQzUtMzcgICAoaGV4KQkJQXBwbGUKKzdDQzUzNyAgICAgKGJhc2UgMTYpCQlBcHBsZQorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworN0MtQ0ItMEQgICAoaGV4KQkJQWF4ZW9uIFRlY2hub2xvZ2llcyBJbmMuCis3Q0NCMEQgICAgIChiYXNlIDE2KQkJQWF4ZW9uIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNDQ1IENhcHJpY29ybiBTdC4KKwkJCQlCcmVhIENhbGlmb3JuaWEgOTI4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzdDLUNGLUNGICAgKGhleCkJCVNoYW5naGFpIFNFQVJJIEludGVsbGlnZW50IFN5c3RlbSBDby4sIEx0ZAorN0NDRkNGICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFNFQVJJIEludGVsbGlnZW50IFN5c3RlbSBDby4sIEx0ZAorCQkJCU5vLjUwNSBXdW5pbmcgUm9hZCwgUHV0dW8gRGlzdHJpY3QKKwkJCQlTaGFuZ2hhaSAgMjAwMDYzCisJCQkJQ0hJTkEKKworN0MtREEtODQgICAoaGV4KQkJRG9uZ25pYW4gTmV0d29ya3MgSW5jLgorN0NEQTg0ICAgICAoYmFzZSAxNikJCURvbmduaWFuIE5ldHdvcmtzIEluYy4KKwkJCQk5MCBXZW5zYW4gUm9hZCwgQnVpbGRpbmcgOC1BMzAzCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworN0MtREQtMjAgICAoaGV4KQkJSU9YT1MgVGVjaG5vbG9naWVzIFMuQS4KKzdDREQyMCAgICAgKGJhc2UgMTYpCQlJT1hPUyBUZWNobm9sb2dpZXMgUy5BLgorCQkJCTQgQ2hlbWluIGRlIEZvbnRlbmFpbGxlcworCQkJCUdMQU5EIFZBVUQgQ0gtMTE5NgorCQkJCVNXSVRaRVJMQU5ECisKKzdDLURELTkwICAgKGhleCkJCVNoZW56aGVuIE9nZW1yYXkgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzdDREQ5MCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBPZ2VtcmF5IFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMyBGbG9vciwgOSBCdWlsZGluZywgTWlueGluZyBJbmR1c3RyaWFsIFpvbmUsCisJCQkJTWlua2FuZyBSb2FkLCBNaW56aGkgU3RyZWV0LCBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTMxCisJCQkJQ0hJTkEKKworN0MtRTAtNDQgICAoaGV4KQkJTkVPTiBJbmMKKzdDRTA0NCAgICAgKGJhc2UgMTYpCQlORU9OIEluYworCQkJCTUzNDAgQWlycG9ydCBCb3VsZXZhcmQKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCis3Qy1FRC04RCAgIChoZXgpCQlNSUNST1NPRlQKKzdDRUQ4RCAgICAgKGJhc2UgMTYpCQlNSUNST1NPRlQKKwkJCQlPbmUgTWljcm9zb2Z0IFdheQorCQkJCVJlZG1vbmQgV0EgOTgwNTItNjM5OQorCQkJCVVOSVRFRCBTVEFURVMKKworN0MtRUYtMTggICAoaGV4KQkJQ3JlYXRpdmUgUHJvZHVjdCBEZXNpZ24gUHR5LiBMdGQuCis3Q0VGMTggICAgIChiYXNlIDE2KQkJQ3JlYXRpdmUgUHJvZHVjdCBEZXNpZ24gUHR5LiBMdGQuCisJCQkJODIgVmljdG9yaWEgU3RyZWV0CisJCQkJU2FuZHJpbmdoYW0gVmljdG9yaWEgMzE5MQorCQkJCUFVU1RSQUxJQQorCis3Qy1GMC01RiAgIChoZXgpCQlBcHBsZSBJbmMKKzdDRjA1RiAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzdDLUYwLTk4ICAgKGhleCkJCUJlZSBCZWFucyBUZWNobm9sb2dpZXMsIEluYy4KKzdDRjA5OCAgICAgKGJhc2UgMTYpCQlCZWUgQmVhbnMgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJVENJIEI1CisJCQkJMi02LTEgU2VuZ2VuCisJCQkJVHN1a3ViYSBDaXR5IEliYXJha2kgMzA1LTAwNDcKKwkJCQlKQVBBTgorCis3Qy1GMC1CQSAgIChoZXgpCQlMaW5rd2VsbCBUZWxlc3lzdGVtcyBQdnQgTHRkCis3Q0YwQkEgICAgIChiYXNlIDE2KQkJTGlua3dlbGwgVGVsZXN5c3RlbXMgUHZ0IEx0ZAorCQkJCTEtMTEtMjUyLzEvQSwgR293cmEgS2xhc3NpYworCQkJCUJlZ3VtcGV0CisJCQkJSHlkZXJhYmFkIEFuZGhyYSBQcmFkZXNoIDUwMDAxNgorCQkJCUlORElBCisKKzdDLUY0LTI5ICAgKGhleCkJCU5VVU8gSW5jLiAKKzdDRjQyOSAgICAgKGJhc2UgMTYpCQlOVVVPIEluYy4gCisJCQkJQyBibG9jaywgMTggU2loeXVhbiBTdC4gSmhvbmdqaGVuZyBEaXN0cmljdCwgCisJCQkJVGFpcGVpICAxMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzgwLTAwLTEwICAgKGhleCkJCUFUVCBCRUxMIExBQk9SQVRPUklFUworODAwMDEwICAgICAoYmFzZSAxNikJCUFUVCBCRUxMIExBQk9SQVRPUklFUworCQkJCTExMDAgRUFTVCBXQVJSRU5WSUxMRSBST0FECisJCQkJTkFQRVJWSUxMRSBJTCA2MDU2NgorCQkJCVVOSVRFRCBTVEFURVMKKworODAtMTQtNDAgICAoaGV4KQkJU3VubGl0IFN5c3RlbSBUZWNobm9sb2d5IENvcnAKKzgwMTQ0MCAgICAgKGJhc2UgMTYpCQlTdW5saXQgU3lzdGVtIFRlY2hub2xvZ3kgQ29ycAorCQkJCThGLCBOby4xOSxMYW5lIDEyMCwgU2VjMSwgTmVpaHUgUmQuCisJCQkJVGFwaWVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzgwLTE3LTdEICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworODAxNzdEICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCUNBUlJFVEVSQSBCQVNFIEFFUkVBICMgNTg1MAorCQkJCVphcG9wYW4gSmFsaXNjbyA0NDEzMAorCQkJCU1FWElDTworCis4MC0xRi0wMiAgIChoZXgpCQlFZGltYXggVGVjaG5vbG9neSBDby4gTHRkLgorODAxRjAyICAgICAoYmFzZSAxNikJCUVkaW1heCBUZWNobm9sb2d5IENvLiBMdGQuCisJCQkJTm8uIDMsIFd1LUNodWFuIDNyZCBSb2FkLCBXdS1LdSBJbmR1c3RyaWFsIFBhcmssCisJCQkJVGFpcGVpIEhzaWVuICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzgwLTIyLTc1ICAgKGhleCkJCUJlaWppbmcgQmVueSBXYXZlIFRlY2hub2xvZ3kgQ28gTHRkCis4MDIyNzUgICAgIChiYXNlIDE2KQkJQmVpamluZyBCZW55IFdhdmUgVGVjaG5vbG9neSBDbyBMdGQKKwkJCQlOby41NSwgSmlhY2h1YW5nIFJvYWQKKwkJCQlUYWlodSBUb3duCisJCQkJVG9uZ3pob3UgRGlzdHJpY3QgQmVpamluZyAxMDExMTEKKwkJCQlDSElOQQorCis4MC0yRC1FMSAgIChoZXgpCQlTb2xhcmJyaWRnZSBUZWNobm9sb2dpZXMKKzgwMkRFMSAgICAgKGJhc2UgMTYpCQlTb2xhcmJyaWRnZSBUZWNobm9sb2dpZXMKKwkJCQk5MjI5IFdhdGVyZm9yZCBDZW50cmUgQmx2ZAorCQkJCUJ1aWxkaW5nIEMsIFN1aXRlIDExMAorCQkJCUF1c3RpbiBUWCA3ODc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworODAtMkUtMTQgICAoaGV4KQkJYXpldGkgTmV0d29ya3MgQUcKKzgwMkUxNCAgICAgKGJhc2UgMTYpCQlhemV0aSBOZXR3b3JrcyBBRworCQkJCUFtIEJyYW1idXNjaCAxYQorCQkJCUx1ZW5lbiBOUlcgNDQ1MzYKKwkJCQlHRVJNQU5ZCisKKzgwLTM0LTU3ICAgKGhleCkJCU9UIFN5c3RlbXMgTGltaXRlZAorODAzNDU3ICAgICAoYmFzZSAxNikJCU9UIFN5c3RlbXMgTGltaXRlZAorCQkJCVVuaXQgMTAyMywgMTAvRi4sIExhbmRtYXJrIE5vcnRoLAorCQkJCVNoZXVuZyBTaHVpLCBOLiBULiAgCisJCQkJSE9ORyBLT05HCisKKzgwLTM4LUZEICAgKGhleCkJCUxlYXBGcm9nIEVudGVycHJpc2VzLCBJbmMuCis4MDM4RkQgICAgIChiYXNlIDE2KQkJTGVhcEZyb2cgRW50ZXJwcmlzZXMsIEluYy4KKwkJCQk2NDAxIEhvbGlzIFN0cmVldAorCQkJCUVtZXJ5dmlsbGUgQ0EgOTQ1MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzgwLTM5LUU1ICAgKGhleCkJCVBBVExJVEUgQ09SUE9SQVRJT04KKzgwMzlFNSAgICAgKGJhc2UgMTYpCQlQQVRMSVRFIENPUlBPUkFUSU9OCisJCQkJMTktMgorCQkJCVRFQ0hOT1BBUksKKwkJCQlTQU5EQSBIWU9VR09LRU4gNjY5LTEzMzkKKwkJCQlKQVBBTgorCis4MC0zQi05QSAgIChoZXgpCQlnaGUtY2VzIGVsZWN0cm9uaWMgYWcKKzgwM0I5QSAgICAgKGJhc2UgMTYpCQlnaGUtY2VzIGVsZWN0cm9uaWMgYWcKKwkJCQlIb2VtZWxzdHJhc3NlIDE3CisJCQkJV2FsZCBaSCA4NjM2CisJCQkJU1dJVFpFUkxBTkQKKworODAtNDctMzEgICAoaGV4KQkJUGFja2V0IERlc2lnbiwgSW5jLgorODA0NzMxICAgICAoYmFzZSAxNikJCVBhY2tldCBEZXNpZ24sIEluYy4KKwkJCQkyNDU1IEF1Z3VzdGluZSBEcml2ZQorCQkJCVN1aXRlIDEwMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCis4MC00Ri01OCAgIChoZXgpCQlUaGlua0VjbywgSW5jLgorODA0RjU4ICAgICAoYmFzZSAxNikJCVRoaW5rRWNvLCBJbmMuCisJCQkJMzAzIEZpZnRoIEF2ZW51ZQorCQkJCTE4MDEKKwkJCQlOZXcgWW9yayBOWSAxMDAxNgorCQkJCVVOSVRFRCBTVEFURVMKKworODAtNTAtMUIgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzgwNTAxQiAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU5MAorCQkJCUZJTkxBTkQKKworODAtNTgtQzUgICAoaGV4KQkJTm92YVRlYyBLb21tdW5pa2F0aW9uc3RlY2huaWsgR21iSAorODA1OEM1ICAgICAoYmFzZSAxNikJCU5vdmFUZWMgS29tbXVuaWthdGlvbnN0ZWNobmlrIEdtYkgKKwkJCQlUZWNobm9sb2dpZXBhcmsgOQorCQkJCTR0aCBGbG9vcgorCQkJCVBhZGVyYm9ybiBOUlcgMzMxMDAKKwkJCQlHRVJNQU5ZCisKKzgwLTY0LTU5ICAgKGhleCkJCU5pbWJ1cyBJbmMuCis4MDY0NTkgICAgIChiYXNlIDE2KQkJTmltYnVzIEluYy4KKwkJCQkxMzU5IEd3YW5weWVvbmctZG9uZywgWXVzZW9uZy1ndQorCQkJCVN1aXRlIDYxOSBIYW5zaGluIFMgbWVjYQorCQkJCURhZWplb24gIDMwNS01MDkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworODAtNjUtRTkgICAoaGV4KQkJQmVuUSBDb3Jwb3JhdGlvbgorODA2NUU5ICAgICAoYmFzZSAxNikJCUJlblEgQ29ycG9yYXRpb24KKwkJCQkxNiBKaWh1IFJvYWQsIE5laWh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzgwLTY2LTI5ICAgKGhleCkJCVByZXNjb3BlIFRlY2hub2xvZ2llcyBDTy4sTFRELgorODA2NjI5ICAgICAoYmFzZSAxNikJCVByZXNjb3BlIFRlY2hub2xvZ2llcyBDTy4sTFRELgorCQkJCTEyRi0xLE5vLjE5MixTZWMgMixDaHVuZyBIc2luIFJvYWQKKwkJCQlIc2luIFRpZW4gQ2l0eSBUYWlwZWkgQ291bnR5IDIzMTQ2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4MC02Qy1CQyAgIChoZXgpCQlORVQgTmV3IEVsZWN0cm9uaWMgVGVjaG5vbG9neSBHbWJICis4MDZDQkMgICAgIChiYXNlIDE2KQkJTkVUIE5ldyBFbGVjdHJvbmljIFRlY2hub2xvZ3kgR21iSAorCQkJCUxlcmNoZW5iZXJnIDcKKwkJCQlGaW5uaW5nIEJhdmFyaWFuIDg2OTIzCisJCQkJR0VSTUFOWQorCis4MC03MS0xRiAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCis4MDcxMUYgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmUKKwkJCQlTdW5ueXZhbGUgIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCis4MC03RC0xQiAgIChoZXgpCQlOZW9zeXN0ZW0gQ28uIEx0ZC4KKzgwN0QxQiAgICAgKGJhc2UgMTYpCQlOZW9zeXN0ZW0gQ28uIEx0ZC4KKwkJCQk0LTE5LTEyIFRha2FvCisJCQkJRGF6YWlmdS1zaGkgRnVrdW9rYSA4MTgtMDEyMgorCQkJCUpBUEFOCisKKzgwLTgxLUE1ICAgKGhleCkJCVRPTkdRSU5HIENPTU1VTklDQVRJT04gRVFVSVBNRU5UIChTSEVOWkhFTikgQ28uLEx0ZAorODA4MUE1ICAgICAoYmFzZSAxNikJCVRPTkdRSU5HIENPTU1VTklDQVRJT04gRVFVSVBNRU5UIChTSEVOWkhFTikgQ28uLEx0ZAorCQkJCVRvbmdxaW5nIEluZHVzdHJ5IFBhcmssaml1d2VpLHhpeGlhbmcgVG93bixCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTI2CisJCQkJQ0hJTkEKKworODAtOTEtMkEgICAoaGV4KQkJTGloIFJvbmcgZWxlY3Ryb25pYyBFbnRlcnByaXNlIENvLiwgTHRkLgorODA5MTJBICAgICAoYmFzZSAxNikJCUxpaCBSb25nIGVsZWN0cm9uaWMgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKwkJCQkyRiwgTm8uIDIsIExhbmUgMzg3LCBIc2luIFNodSBSb2FkCisJCQkJSHNpbiBDaHVhbmcgVGFpcGVpIDI0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworODAtOTEtQzAgICAoaGV4KQkJQWdpbGVNZXNoLCBJbmMuCis4MDkxQzAgICAgIChiYXNlIDE2KQkJQWdpbGVNZXNoLCBJbmMuCisJCQkJMTY3MSBJbnRlcm5hdGlvbmFsIFBrd3kKKwkJCQlTdWl0ZSAxMTMKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCis4MC05Qi0yMCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzgwOUIyMCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzgwLUExLUQ3ICAgKGhleCkJCVNoYW5naGFpIERhcmVHbG9iYWwgVGVjaG5vbG9naWVzIENvLixMdGQgCis4MEExRDcgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgRGFyZUdsb2JhbCBUZWNobm9sb2dpZXMgQ28uLEx0ZCAKKwkJCQkyMkYsSW5mbyBUZWNoIEJ1aWxkaW5nLE5vLjE1NTUsS29uZ2ppYW5nIFJkLgorCQkJCVNoYW5naGFpICAyMDAwOTIKKwkJCQlDSElOQQorCis4MC1CMi04OSAgIChoZXgpCQlGb3J3b3JsZCBFbGVjdHJvbmljcyBMdGQuCis4MEIyODkgICAgIChiYXNlIDE2KQkJRm9yd29ybGQgRWxlY3Ryb25pY3MgTHRkLgorCQkJCU5vLjE2IEtleXVhbiAybmQgUmQuLCBTaXR1biBEaXN0cmljdAorCQkJCVRhaWNodW5nIENpdHkgIDg4NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworODAtQjMtMkEgICAoaGV4KQkJQWxzdG9tIEdyaWQKKzgwQjMyQSAgICAgKGJhc2UgMTYpCQlBbHN0b20gR3JpZAorCQkJCVN0IExlb25hcmQncyBBdmUKKwkJCQlTdGFmZm9yZCAgU3RhZmZvcmRzaGlyZSBTVDE3IDRMWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzgwLUJBLUFDICAgKGhleCkJCVRlbGVBZGFwdCBMdGQKKzgwQkFBQyAgICAgKGJhc2UgMTYpCQlUZWxlQWRhcHQgTHRkCisJCQkJQXhpcyA1CisJCQkJUmhvZGVzIFdheQorCQkJCVdhdGZvcmQgSGVydGZvcmRzaGlyZSBXRDI0NFlXCisJCQkJVU5JVEVEIEtJTkdET00KKworODAtQzYtM0YgICAoaGV4KQkJUmVtZWMgQnJvYWRiYW5kIFdpcmVsZXNzICwgTExDCis4MEM2M0YgICAgIChiYXNlIDE2KQkJUmVtZWMgQnJvYWRiYW5kIFdpcmVsZXNzICwgTExDCisJCQkJMTcwMzQgQ2FtaW5vIFNhbiBCZXJuYXJkbworCQkJCVNhbiBEaWVnbyBDQSA5MjEyNworCQkJCVVOSVRFRCBTVEFURVMKKworODAtQzYtQUIgICAoaGV4KQkJVGVjaG5pY29sb3IgVVNBIEluYy4KKzgwQzZBQiAgICAgKGJhc2UgMTYpCQlUZWNobmljb2xvciBVU0EgSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MAorCQkJCVVOSVRFRCBTVEFURVMKKworODAtQzYtQ0EgICAoaGV4KQkJRW5kaWFuIHMuci5sLgorODBDNkNBICAgICAoYmFzZSAxNikJCUVuZGlhbiBzLnIubC4KKwkJCQlQaWxsaG9mIDQ3CisJCQkJRnJhbmdhcnRvIEJvbHphbm8gMzkwMTAKKwkJCQlJVEFMWQorCis4MC1DOC02MiAgIChoZXgpCQlPcGVucGVhaywgSW5jCis4MEM4NjIgICAgIChiYXNlIDE2KQkJT3BlbnBlYWssIEluYworCQkJCTE3NTAgQ2xpbnQgTW9vcmUgUmQKKwkJCQlCb2NhIFJhdG9uIEZsb3JpZGEgMzM0ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzgwLUQwLTE5ICAgKGhleCkJCUVtYmVkLCBJbmMKKzgwRDAxOSAgICAgKGJhc2UgMTYpCQlFbWJlZCwgSW5jCisJCQkJNDEwIEdyZWF0IFJvYWQKKwkJCQlMaXR0bGV0b24gTUEgMDE0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzgwLUVFLTczICAgKGhleCkJCVNodXR0bGUgSW5jLgorODBFRTczICAgICAoYmFzZSAxNikJCVNodXR0bGUgSW5jLgorCQkJCU5vLiAzMCBMYW5lIDc2LCBSZWkgS3VhbmcgUmQKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworODAtRjUtOTMgICAoaGV4KQkJSVJDTyBTaXN0ZW1hcyBkZSBUZWxlY29tdW5pY2Fjae+/vW4gUy5BLgorODBGNTkzICAgICAoYmFzZSAxNikJCUlSQ08gU2lzdGVtYXMgZGUgVGVsZWNvbXVuaWNhY2nvv71uIFMuQS4KKwkJCQlWaWEgU2VyZ2lhIDk4CisJCQkJTWF0YXLvv70gQmFyY2Vsb25hIDA4MzAyCisJCQkJU1BBSU4KKworODAtRkItMDYgICAoaGV4KQkJSFVBV0VJIFRFQ0hOT0xPR0lFUyBDTy4sTFRECis4MEZCMDYgICAgIChiYXNlIDE2KQkJSFVBV0VJIFRFQ0hOT0xPR0lFUyBDTy4sTFRECisJCQkJQjEtNyxIdWF3ZWkgSW5kdXN0cmlhbCBCYXNlLEJhbnRpYW4sTG9uZ2dhbmcKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworODQtMTgtODggICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworODQxODg4ICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5IAorCQkJCVVOSVRFRCBTVEFURVMKKworODQtMjEtNDEgICAoaGV4KQkJU2hlbnpoZW4gR2lud2F2ZSBUZWNobm9sb2dpZXMgTHRkLgorODQyMTQxICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEdpbndhdmUgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQk0L0YsUjItQSxIaWdoLVRlY2ggSW5kdXN0cmlhbCBQYXJrCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzg0LTI3LUNFICAgKGhleCkJCUNvcnBvcmF0aW9uIG9mIHRoZSBQcmVzaWRpbmcgQmlzaG9wIG9mIFRoZSBDaHVyY2ggb2YgSmVzdXMgQ2hyaXN0IG9mIExhdHRlci1kYXkgU2FpbnRzCis4NDI3Q0UgICAgIChiYXNlIDE2KQkJQ29ycG9yYXRpb24gb2YgdGhlIFByZXNpZGluZyBCaXNob3Agb2YgVGhlIENodXJjaCBvZiBKZXN1cyBDaHJpc3Qgb2YgTGF0dGVyLWRheSBTYWludHMKKwkJCQlBdWRpb3Zpc3VhbCBFbmdpbmVlcmluZyAtIDJMTAorCQkJCTUwIEVhc3QgTm9ydGggVGVtcGxlCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzg0LTI5LTE0ICAgKGhleCkJCUVNUE9SSUEgVEVMRUNPTSBQcm9kdWt0aW9ucy0gdW5kIFZlcnRyaWVic2dlc21iSCAmIENvIEtHCis4NDI5MTQgICAgIChiYXNlIDE2KQkJRU1QT1JJQSBURUxFQ09NIFByb2R1a3Rpb25zLSB1bmQgVmVydHJpZWJzZ2VzbWJIICYgQ28gS0cKKwkJCQlJbmR1c3RyaWV6ZWlsZSAzNiwgCisJCQkJTGlueiAgNDAyMAorCQkJCUFVU1RSSUEKKworODQtMkItMkIgICAoaGV4KQkJRGVsbCBJbmMuCis4NDJCMkIgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrICBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworODQtNDgtMjMgICAoaGV4KQkJV09YVEVSIFRFQ0hOT0xPR1kgQ28uIEx0ZAorODQ0ODIzICAgICAoYmFzZSAxNikJCVdPWFRFUiBURUNITk9MT0dZIENvLiBMdGQKKwkJCQkyM0YgRG91c2hpeWFuZ2d1YW5nLCBDaGVnb25nbWlhbworCQkJCUZ1dGlhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuICA1MTgwNDAKKwkJCQlDSElOQQorCis4NC01RC1ENyAgIChoZXgpCQlTaGVuemhlbiBOZXRjb20gRWxlY3Ryb25pY3MgQ28uLEx0ZAorODQ1REQ3ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIE5ldGNvbSBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJOC9GLDEgQnVpbGRpbmcsRmluYW5jZSBCYXNlLE5vLjgsS2VmYSBSb2FkLEhpZ2gtVGVjaCBQYXJrCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzg0LTZFLUIxICAgKGhleCkJCVBhcmsgQXNzaXN0IExMQworODQ2RUIxICAgICAoYmFzZSAxNikJCVBhcmsgQXNzaXN0IExMQworCQkJCTExMSBXMjh0aCBTdHJlZXQKKwkJCQlTdWl0ZSAyQgorCQkJCU5ldyBZb3JrIE5ZIDEwMDAxCisJCQkJVU5JVEVEIFNUQVRFUworCis4NC05MC0wMCAgIChoZXgpCQlBcm5vbGQgJmFtcDsgUmljaHRlciBDaW5lIFRlY2huaWsKKzg0OTAwMCAgICAgKGJhc2UgMTYpCQlBcm5vbGQgJmFtcDsgUmljaHRlciBDaW5lIFRlY2huaWsKKwkJCQlUdWVya2Vuc3RyYXNzZSA4OQorCQkJCU11bmljaCBCYXZhcmlhIDgwNzk5CisJCQkJR0VSTUFOWQorCis4NC05Ny1COCAgIChoZXgpCQlNZW1qZXQgSW5jLgorODQ5N0I4ICAgICAoYmFzZSAxNikJCU1lbWpldCBJbmMuCisJCQkJMTU5MjAgQmVybmFyZG8gQ2VudGVyIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTI3CisJCQkJVU5JVEVEIFNUQVRFUworCis4NC1BOC1FNCAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCis4NEE4RTQgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyOQorCQkJCUNISU5BCisKKzg0LUE5LTkxICAgKGhleCkJCUN5YmVyIFRyYW5zIEphcGFuIENvLixMdGQuCis4NEE5OTEgICAgIChiYXNlIDE2KQkJQ3liZXIgVHJhbnMgSmFwYW4gQ28uLEx0ZC4KKwkJCQk2RiBCbHVlYmVsbCBCbGRnCisJCQkJMi0xNS05IE5pc2hpLUdvdGFuYWRhCisJCQkJU2hpbmFnYXdhLWt1IFRva3lvIDE0MS0wMDMxCisJCQkJSkFQQU4KKworODQtQzctMjcgICAoaGV4KQkJR25vZGFsIEx0ZAorODRDNzI3ICAgICAoYmFzZSAxNikJCUdub2RhbCBMdGQKKwkJCQkxNzggLSAxODAgSG90d2VsbCBSb2FkCisJCQkJQnJpc3RvbCAgQlM4IDRSUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzg0LUM3LUE5ICAgKGhleCkJCUMzUE8gUy5BLgorODRDN0E5ICAgICAoYmFzZSAxNikJCUMzUE8gUy5BLgorCQkJCUFsZWphbmRybyBHb2ljb2VjaGVhIDYgTG9jYWwgOQorCQkJCVNhbnQgSnVzdCBEZXN2ZXJuIEJhcmNlbG9uYSBFUzA4OTYwCisJCQkJU1BBSU4KKworODQtRDktQzggICAoaGV4KQkJVW5pcGF0dGVybiBDby4sCis4NEQ5QzggICAgIChiYXNlIDE2KQkJVW5pcGF0dGVybiBDby4sCisJCQkJMTZGLiwgTm8uMzAuLCBCZWlwaW5nIEUuIFJkLiwgWmhvbmd6aGVuZyBEaXN0LiwKKwkJCQlUYWlwZWkgIDEwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworODQtREItMkYgICAoaGV4KQkJU2llcnJhIFdpcmVsZXNzIEluYworODREQjJGICAgICAoYmFzZSAxNikJCVNpZXJyYSBXaXJlbGVzcyBJbmMKKwkJCQkxMzgxIFdpcmVsZXNzIFdheQorCQkJCVJpY2htb25kIEJDIFY2ViAzQTQKKwkJCQlDQU5BREEKKworODQtREUtM0QgICAoaGV4KQkJQ3J5c3RhbCBWaXNpb24gTHRkCis4NERFM0QgICAgIChiYXNlIDE2KQkJQ3J5c3RhbCBWaXNpb24gTHRkCisJCQkJTGlvbiBUZWNobm9sb2d5IHBhcmsKKwkJCQlTdGF0aW9uIFJvYWQgZWFzdAorCQkJCVdoaXR0bGVzZm9yZC8gQ2FtYnJpZGdlIENhbWJzIENCMjIgNFdMCisJCQkJVU5JVEVEIEtJTkdET00KKworODQtRUEtOTkgICAoaGV4KQkJVmlld29ya3MKKzg0RUE5OSAgICAgKGJhc2UgMTYpCQlWaWV3b3JrcworCQkJCTZGIFN1bnRlY2hjaXR5IDIsMzA3LTIgU2FuZ2RhZXdvbi1kb25nLCBKdW5nd29uLWd1CisJCQkJU2VvbmduYW0gIEd5ZW9uZ2dpIDQ2Mi04MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworODQtRjYtNEMgICAoaGV4KQkJQ3Jvc3MgUG9pbnQgQlYKKzg0RjY0QyAgICAgKGJhc2UgMTYpCQlDcm9zcyBQb2ludCBCVgorCQkJCVdhYW5kZXJ3ZWcgMTIKKwkJCQlFbW1lbiBEcmVudGhlIDc4MTIgSFoKKwkJCQlORVRIRVJMQU5EUworCis4OC0xOC1BRSAgIChoZXgpCQlUYW1yb24gQ28uLCBMdGQKKzg4MThBRSAgICAgKGJhc2UgMTYpCQlUYW1yb24gQ28uLCBMdGQKKwkJCQkxMzg1LEhhc3VudW1hLCBNaW51bWEta3UKKwkJCQlTYWl0YW1hLXNoaSBTYWl0YW1hIDMzNy04NTU2CisJCQkJSkFQQU4KKworODgtMjEtRTMgICAoaGV4KQkJTmVidXNlbnMsIFMuTC4KKzg4MjFFMyAgICAgKGJhc2UgMTYpCQlOZWJ1c2VucywgUy5MLgorCQkJCUMvIEFkYWphIFMvTiwgRWRpZmljaW8gTTIKKwkJCQlQYXJxdWUgY2llbnRpZmljbyBkZSBsYSBVU0FMCisJCQkJVmlsbGFtYXlvciBkZSBsYSBBcm1177+9YSBTYWxhbWFuY2EgMzcxODUKKwkJCQlTUEFJTgorCis4OC0yNS0yQyAgIChoZXgpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCis4ODI1MkMgICAgIChiYXNlIDE2KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLiwgTk8uOSwgUGFyayBBdmVudWUgSUkgLAorCQkJCUhzaW5jaHUgU2NpZW5jZSBQYXJrCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4OC00MS1DMSAgIChoZXgpCQlPUkJJU0FUIERBIEFNQVpPTklBIElORCBFIEFFUk9MIFNBCis4ODQxQzEgICAgIChiYXNlIDE2KQkJT1JCSVNBVCBEQSBBTUFaT05JQSBJTkQgRSBBRVJPTCBTQQorCQkJCUFWIFNISVNISU1BIEhJRlVNSSwgMjkxMQorCQkJCVVSQkFOT1ZBCisJCQkJU0FPIEpPU0UgRE9TIENBTVBPUyBTQU8gUEFVTE8gMTIyNDQtMDAwCisJCQkJQlJBWklMCisKKzg4LTQzLUUxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzg4NDNFMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzg4LTRCLTM5ICAgKGhleCkJCVNpZW1lbnMgQUcsIEhlYWx0aGNhcmUgU2VjdG9yCis4ODRCMzkgICAgIChiYXNlIDE2KQkJU2llbWVucyBBRywgSGVhbHRoY2FyZSBTZWN0b3IKKwkJCQlIZW5rZXN0cmFzc2UgMTI3CisJCQkJRXJsYW5nZW4gQmF2YXJpYSA5MTA1MgorCQkJCUdFUk1BTlkKKworODgtNTMtMkUgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis4ODUzMkUgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis4OC01My1ENCAgIChoZXgpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCis4ODUzRDQgICAgIChiYXNlIDE2KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworODgtODYtQTAgICAoaGV4KQkJU2ltdG9uIFRlY2hub2xvZ2llcywgTHRkLgorODg4NkEwICAgICAoYmFzZSAxNikJCVNpbXRvbiBUZWNobm9sb2dpZXMsIEx0ZC4KKwkJCQkyIFRhaXNoYW4gUm9hZCwgQnVpbGRpbmcgQywgM3JkIEZsb29yCisJCQkJV3V4aSwgIFByb3ZpbmNlIG9mIEppYW5nc3UsICAyMTQwMjgKKwkJCQlDSElOQQorCis4OC04Ny0xNyAgIChoZXgpCQlDQU5PTiBJTkMuCis4ODg3MTcgICAgIChiYXNlIDE2KQkJQ0FOT04gSU5DLgorCQkJCTMtMzAtMixTaGltb21hcnVrbyBPaHRhLUt1CisJCQkJVG9reW8gIDE0Ni04NTAxCisJCQkJSkFQQU4KKworODgtOEItNUQgICAoaGV4KQkJU3RvcmFnZSBBcHBsaWFuY2UgQ29ycG9yYXRpb24gCis4ODhCNUQgICAgIChiYXNlIDE2KQkJU3RvcmFnZSBBcHBsaWFuY2UgQ29ycG9yYXRpb24gCisJCQkJMjkgU3UgWmhvdSBKaWUsIEhhaWRpYW4gRGlzdC4KKwkJCQlTdWl0ZSA2MDEtNjAzCisJCQkJQmVpamluZyAgIDEwMDA4MAorCQkJCUNISU5BCisKKzg4LThDLTE5ICAgKGhleCkJCUJyYWR5IENvcnAgQXNpYSBQYWNpZmljIEx0ZAorODg4QzE5ICAgICAoYmFzZSAxNikJCUJyYWR5IENvcnAgQXNpYSBQYWNpZmljIEx0ZAorCQkJCTEsIEtha2kgQnVraXQgQ3Jlc2NlbnQKKwkJCQk0MTYyMzYKKwkJCQlTSU5HQVBPUkUKKworODgtOTEtREQgICAoaGV4KQkJUmFja3Rpdml0eQorODg5MUREICAgICAoYmFzZSAxNikJCVJhY2t0aXZpdHkKKwkJCQlIZXJ0c3Rva3dlZyA1CisJCQkJVGVybmF0IEZsYW5kZXJzIDE3NDEKKwkJCQlCRUxHSVVNCisKKzg4LTk0LUY5ICAgKGhleCkJCUdlbWljb20gVGVjaG5vbG9neSwgSW5jLgorODg5NEY5ICAgICAoYmFzZSAxNikJCUdlbWljb20gVGVjaG5vbG9neSwgSW5jLgorCQkJCTE2RiwgQnVpbGRpbmcgQiwgTm8uIDk4LCBTZWMgMSwgSHNpbi1UYWktV3UgUmQuCisJCQkJSHNpLUNoaWggY2l0eSBUYWlwZWkgMjIxMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzg4LTk1LUI5ICAgKGhleCkJCVVuaWZpZWQgUGFja2V0IFN5c3RlbXMgQ3JvcAorODg5NUI5ICAgICAoYmFzZSAxNikJCVVuaWZpZWQgUGFja2V0IFN5c3RlbXMgQ3JvcAorCQkJCTFGLiwgTm8zMixMYW5lIDE1LFNFQyA2LCBNaW5RdWFuIEUgUmQuLCAKKwkJCQlUYWlwZWkgTmVpaHUgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4OC05Ny1ERiAgIChoZXgpCQlFbnRyeXBhc3MgQ29ycG9yYXRpb24gU2RuLiBCaGQuCis4ODk3REYgICAgIChiYXNlIDE2KQkJRW50cnlwYXNzIENvcnBvcmF0aW9uIFNkbi4gQmhkLgorCQkJCU5vLjQwLCBKYWxhbiBUUFAgMS8xMCwKKwkJCQlUYW1hbiBJbmR1c3RyaSBQdWNob25nLCBCYXR1IDEyLCBKYWxhbiAKKwkJCQlQdWNob25nIFNlbGFuZ29yIERhcnVsIEVoc2FuIDQ3MTAwCisJCQkJTUFMQVlTSUEKKworODgtOTgtMjEgICAoaGV4KQkJVEVSQU9OCis4ODk4MjEgICAgIChiYXNlIDE2KQkJVEVSQU9OCisJCQkJMkYgU2VvaGFuIEJsZGcuLCAxNTUyLTEwLCBTZW9jaG8tRG9uZywgU2VvY2hvLUd1LAorCQkJCVNlb3VsICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzg4LTlGLUZBICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzg4OUZGQSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJIE5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKKzg4LUE1LUJEICAgKGhleCkJCVFQQ09NIElOQy4KKzg4QTVCRCAgICAgKGJhc2UgMTYpCQlRUENPTSBJTkMuCisJCQkJNjAzMCBOVyA5OSBBVkUKKwkJCQlTVUlURSA0MDQKKwkJCQlET1JBTCBGTE9SSURBIDMzMTc4CisJCQkJVU5JVEVEIFNUQVRFUworCis4OC1BQy1DMSAgIChoZXgpCQlHZW5lcml0b24gQ28uLCBMdGQuIAorODhBQ0MxICAgICAoYmFzZSAxNikJCUdlbmVyaXRvbiBDby4sIEx0ZC4gCisJCQkJOEYtMSwgTm8uIDgxLCBTaHVpbGkgUmQuLCAKKwkJCQlIc2luY2h1IENpdHksICAgMzAwNTkgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4OC1BRS0xRCAgIChoZXgpCQlDT01QQUwgSU5GT1JNQVRJT04oS1VOU0hBTilDTy4sTFRECis4OEFFMUQgICAgIChiYXNlIDE2KQkJQ09NUEFMIElORk9STUFUSU9OKEtVTlNIQU4pQ08uLExURAorCQkJCU5PLiAyNSwgVEhFIDNSRCBTVFJFRVQgS1VOU0hBTiBFWFBPUlQgUFJPQ0VTU0lORyBaT05FCisJCQkJS1VOU0hBTiBTVVpIT1UgMjE1MzAwCisJCQkJQ0hJTkEKKworODgtQjEtNjggICAoaGV4KQkJRGVsdGEgQ29udHJvbCBHbWJICis4OEIxNjggICAgIChiYXNlIDE2KQkJRGVsdGEgQ29udHJvbCBHbWJICisJCQkJUm9uZG9yZmVyIEhhdXB0c3RyLiAzMworCQkJCUNvbG9nbmUgTlJXIDUwOTk3IAorCQkJCUdFUk1BTlkKKworODgtQjYtMjcgICAoaGV4KQkJR2VtYmlyZCBFdXJvcGUgQlYKKzg4QjYyNyAgICAgKGJhc2UgMTYpCQlHZW1iaXJkIEV1cm9wZSBCVgorCQkJCVdpdHRldnJvdXdlbiA1NgorCQkJCUFsbWVyZSBGbGV2b2xhbmQgMTM1OENECisJCQkJTkVUSEVSTEFORFMKKworODgtQkEtN0YgICAoaGV4KQkJUWZpZWRuZXQgQ28uLCBMdGQuCis4OEJBN0YgICAgIChiYXNlIDE2KQkJUWZpZWRuZXQgQ28uLCBMdGQuCisJCQkJIzIwNCBLSiBCbGRnLiBEYWVDaGktRG9uZworCQkJCUdhbmdOYW0tR3UKKwkJCQlTZW91bCAgMTM1LTg0NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis4OC1CRi1ENSAgIChoZXgpCQlTaW1wbGUgQXVkaW8gTHRkCis4OEJGRDUgICAgIChiYXNlIDE2KQkJU2ltcGxlIEF1ZGlvIEx0ZAorCQkJCUNhcnRzaWRlIEhvdXNlCisJCQkJMSBDbGFya3N0b24gUm9hZAorCQkJCUdsYXNnb3cgIEc0NCA0RUYKKwkJCQlVTklURUQgS0lOR0RPTQorCis4OC1DNi02MyAgIChoZXgpCQlBcHBsZSBJbmMKKzg4QzY2MyAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzg4LURELTc5ICAgKGhleCkJCVZvbHRhaXJlCis4OERENzkgICAgIChiYXNlIDE2KQkJVm9sdGFpcmUKKwkJCQkxMywgWmFyY2hpbiBTdAorCQkJCVJhYW5hbmEgIDQzNjYyCisJCQkJSVNSQUVMCisKKzg4LUUwLUEwICAgKGhleCkJCVNoZW56aGVuIFZpc2lvblNUT1IgVGVjaG5vbG9naWVzIENvLiwgTHRkCis4OEUwQTAgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gVmlzaW9uU1RPUiBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKwkJCQkxMi9GLCBFYXN0IFRvd2VyLE5hbnNoYW4gU29mdHdhcmUgUGFyaworCQkJCTEwMTI4IFNoZW5uYW4gQmx2ZAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCis4OC1FRC0xQyAgIChoZXgpCQlDdWRvIENvbW11bmljYXRpb24gQ28uLCBMdGQuCis4OEVEMUMgICAgIChiYXNlIDE2KQkJQ3VkbyBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorCQkJCTEwRiBBcmlyYW5nVFYgMTQ2Ny04MCwgU2VvY2hvLTNkb25nLCBTZW9jaG8tZ3UKKwkJCQlTZW91bCAgMTM3LTg2OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis4OC1GMC03NyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis4OEYwNzcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworODgtRkQtMTUgICAoaGV4KQkJTElORUVZRSBDTy4sIExURAorODhGRDE1ICAgICAoYmFzZSAxNikJCUxJTkVFWUUgQ08uLCBMVEQKKwkJCQk1RiBNYXJ1ZnVrdSBCbGRnLiAzOS0xIEthcmFoYXNoaQorCQkJCU5pc2hpaGlyYWdha2ktY2hvLCBNaW5hbWkta3UKKwkJCQlLeW90byAgNjAxLTg0NjgKKwkJCQlKQVBBTgorCis4Qy0xMS1DQiAgIChoZXgpCQlBQlVTIFNlY3VyaXR5LUNlbnRlciBHbWJIICYgQ28uIEtHCis4QzExQ0IgICAgIChiYXNlIDE2KQkJQUJVUyBTZWN1cml0eS1DZW50ZXIgR21iSCAmIENvLiBLRworCQkJCUxpbmtlciBLcmV1dGh3ZWcgNQorCQkJCUFmZmluZyAvIE11ZWhsaGF1c2VuIEJhdmFyaWEgODY0NDQKKwkJCQlHRVJNQU5ZCisKKzhDLTFGLTk0ICAgKGhleCkJCVJGIFN1cmdpY2FsIFN5c3RlbSBJbmMuIAorOEMxRjk0ICAgICAoYmFzZSAxNikJCVJGIFN1cmdpY2FsIFN5c3RlbSBJbmMuIAorCQkJCTk3NDAgQXBwYWxvb3NhIFJvYWQgCisJCQkJU3VpdGUgMTUwIAorCQkJCVNhbiBEaWVnbyAgQ0EgOTIxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzhDLTI3LThBICAgKGhleCkJCVZvY29sbGVjdCBJbmMKKzhDMjc4QSAgICAgKGJhc2UgMTYpCQlWb2NvbGxlY3QgSW5jCisJCQkJNzAzIFJvZGkgUm9hZAorCQkJCVBpdHRzYnVyZ2ggUGEgMTUyMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzhDLTQ0LTM1ICAgKGhleCkJCVNoYW5naGFpIEJyb2FkTW9iaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCis4QzQ0MzUgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgQnJvYWRNb2JpIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlSbS4gOTAxLCBCbGQuIDksIE5vLjE1MTUgR3VtZWkgUmQsIFh1aHVpIERpc3RyaWN0CisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzhDLTRELUVBICAgKGhleCkJCUNlcmlvIENvcnBvcmF0aW9uCis4QzRERUEgICAgIChiYXNlIDE2KQkJQ2VyaW8gQ29ycG9yYXRpb24KKwkJCQkyRi4sIE5vLjEwNSwgTWluY3l1YW4gUmQuLCBTaW5kaWFuIENpdHkKKwkJCQlUYWlwZWkgQ291bnR5ICAyMzE0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOEMtNTEtMDUgICAoaGV4KQkJU2hlbnpoZW4gaXJlYWR5Z28gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDTy4sTFRELgorOEM1MTA1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIGlyZWFkeWdvIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ08uLExURC4KKwkJCQlSb29tIDAyLDExRixERVNBWSBCdWlsZGluZyxOby4xIEhpLVRlY2ggU291dGggUm9hZAorCQkJCVNoZW56aGVuICA1MTgwNTcKKwkJCQlDSElOQQorCis4Qy01My1GNyAgIChoZXgpCQlBJkQgRU5HSU5FRVJJTkcgQ08uLCBMVEQuCis4QzUzRjcgICAgIChiYXNlIDE2KQkJQSZEIEVOR0lORUVSSU5HIENPLiwgTFRELgorCQkJCTMzNi02IERhbmdzYW5kb25nIDYtZ2EsIFllb25nZGV1bmdwby1ndQorCQkJCVNlb3VsICAxNTAtODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzhDLTU0LTFEICAgKGhleCkJCUxHRSAKKzhDNTQxRCAgICAgKGJhc2UgMTYpCQlMR0UgCisJCQkJNjAtMzkgLCBLYXNhbiAtZG9uZyAsIEd1bWNoZW9uLWd1LgorCQkJCVNlb3VsICAgMTUzLTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis4Qy01Ni1DNSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzhDNTZDNSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCis4Qy01OC03NyAgIChoZXgpCQlBcHBsZSwgSW5jLgorOEM1ODc3ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis4Qy01OS04QiAgIChoZXgpCQlDIFRlY2hub2xvZ2llcyBBQgorOEM1OThCICAgICAoYmFzZSAxNikJCUMgVGVjaG5vbG9naWVzIEFCCisJCQkJVHJha3RvcnbkZ2VuIDExCisJCQkJTHVuZCBTa+VuZSAyMjYgNjAKKwkJCQlTV0VERU4KKworOEMtNUMtQTEgICAoaGV4KQkJZC1icm9hZCxJTkMKKzhDNUNBMSAgICAgKGJhc2UgMTYpCQlkLWJyb2FkLElOQworCQkJCTItMTItMyBTaGluWW9rb2hhbWEgS291aG9rdS1LdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyMi0wMDMzCisJCQkJSkFQQU4KKworOEMtNUYtREYgICAoaGV4KQkJQmVpamluZyBSYWlsd2F5IFNpZ25hbCBGYWN0b3J5Cis4QzVGREYgICAgIChiYXNlIDE2KQkJQmVpamluZyBSYWlsd2F5IFNpZ25hbCBGYWN0b3J5CisJCQkJTm8uMiBTaWN1biBYaWx1IExhbmdmYSxIdWFuZ2N1biwKKwkJCQlEYXhpbmcgQXJlYSwKKwkJCQlCZWlpam5nICAxMDI2MTMKKwkJCQlDSElOQQorCis4Qy02NC0wQiAgIChoZXgpCQlodHRwOi8vc3RhbmRhcmRzLmllZWUub3JnL2Fib3V0L2JvZy9zcHBtdC90YXJnZXQ9JTIyX2JsYW5rJTIyCis4QzY0MEIgICAgIChiYXNlIDE2KQkJaHR0cDovL3N0YW5kYXJkcy5pZWVlLm9yZy9hYm91dC9ib2cvc3BwbXQvdGFyZ2V0PSUyMl9ibGFuayUyMgorCQkJCVRyemFza2EgY2VzdGEgNTE1CisJCQkJQnJlem92aWNhIHByaSBManVibGphbmkgIFNJLTEzNTEKKwkJCQlTTE9WRU5JQQorCis4Qy02NC0yMiAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorOEM2NDIyICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKKzhDLTcxLUY4ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorOEM3MUY4ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis4Qy03My02RSAgIChoZXgpCQlGdWppdHN1IExpbWl0ZWQKKzhDNzM2RSAgICAgKGJhc2UgMTYpCQlGdWppdHN1IExpbWl0ZWQKKwkJCQlNdXNhc2hpLWtvc3VnaSBUb3dlciBQbGFjZSBCbGRnLiwKKwkJCQk0MDMsIEtvc3VnaS1jaG8gMS1jaG9tZSxOYWthaGFyYS1rdQorCQkJCUthd2FzYWtpIEthbmFnYXdhIDIxMS0wMDYzCisJCQkJSkFQQU4KKworOEMtN0ItOUQgICAoaGV4KQkJQXBwbGUKKzhDN0I5RCAgICAgKGJhc2UgMTYpCQlBcHBsZQorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworOEMtN0MtQjUgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorOEM3Q0I1ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzIAorCQkJCUNISU5BCisKKzhDLTdDLUZGICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorOEM3Q0ZGICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorCQkJCTEzMCBIb2xnZXIgV2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzhDLTdFLUIzICAgKGhleCkJCUx5dHJvLCBJbmMuCis4QzdFQjMgICAgIChiYXNlIDE2KQkJTHl0cm8sIEluYy4KKwkJCQkyMDAgVy4gRXZlbHluIEF2ZS4sIFN1aXRlIDEyMAorCQkJCU1vdW50YWluIFZpZXcgQ2FsaWZvcm5pYSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworOEMtODItQTggICAoaGV4KQkJSW5zaWdtYSBUZWNobm9sb2d5IENvLixMdGQKKzhDODJBOCAgICAgKGJhc2UgMTYpCQlJbnNpZ21hIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCU5vLjIyNiBUaWFubXVzaGFuIFJvYWQsIAorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDAwMAorCQkJCUNISU5BCisKKzhDLTg0LTAxICAgKGhleCkJCVBSSVZBVEUKKzhDODQwMSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorOEMtODktQTUgICAoaGV4KQkJTWljcm8tU3RhciBJTlQnTCBDTy4sIExURAorOEM4OUE1ICAgICAoYmFzZSAxNikJCU1pY3JvLVN0YXIgSU5UJ0wgQ08uLCBMVEQKKwkJCQlOby42OSwgTGlkZSBzdC4KKwkJCQlKaG9uZ2hlIENpdHkKKwkJCQlUYWlwZWkgQ291bnR5ICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzhDLTkwLUQzICAgKGhleCkJCUFsY2F0ZWwgTHVjZW50Cis4QzkwRDMgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBMdWNlbnQKKwkJCQk2MDAgTWFyY2ggRHJpdmUKKwkJCQlPdHRhd2EgT04gSzJLIDJFNgorCQkJCUNBTkFEQQorCis4Qy05Mi0zNiAgIChoZXgpCQlBdXMuTGlueCBUZWNobm9sb2d5IENvLiwgTHRkLgorOEM5MjM2ICAgICAoYmFzZSAxNikJCUF1cy5MaW54IFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJM0YsIE5vLiA3LCBMYW5lIDQ1LCBQYW8tSHNpbiBSZC4sCisJCQkJSHNpbi1UZWluIFRhaXBlaSBjb3VudHJ5LCAgMjMxNDUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzhDLUEwLTQ4ICAgKGhleCkJCUJlaWppbmcgTmVUb3BDaGlwIFRlY2hub2xvZ3kgQ28uLExURAorOENBMDQ4ICAgICAoYmFzZSAxNikJCUJlaWppbmcgTmVUb3BDaGlwIFRlY2hub2xvZ3kgQ28uLExURAorCQkJCTMwOSxJbnRlcmdyYXRpb24gQnVpbGRpbmcgT2x5bXBpYyBDZW50ZXIsIE5vLjEgQW4gRGluZyBSb2FkLENoYW8gWWFuZyBEaXN0cmljdCwsIAorCQkJCUJlaWppbmcgIDEwMDAyOQorCQkJCUNISU5BCisKKzhDLUE5LTgyICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorOENBOTgyICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworOEMtQjYtNEYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworOENCNjRGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworOEMtQjgtNjQgICAoaGV4KQkJQWNTaVAgVGVjaG5vbG9neSBDb3JwLgorOENCODY0ICAgICAoYmFzZSAxNikJCUFjU2lQIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkzRi4sIE5vLjIyLCBEYWxpbiBSZC4sIAorCQkJCVRhb3l1YW4gQ2l0eSAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4Qy1ENi0yOCAgIChoZXgpCQlJa29yIE1ldGVyaW5nCis4Q0Q2MjggICAgIChiYXNlIDE2KQkJSWtvciBNZXRlcmluZworCQkJCUZyYW5jaXNjbyBHcmFuZG1vbnRhZ25lIDQKKwkJCQlTYW4gU2ViYXN0aWFuIEd1aXB1emNvYSAyMDAwOAorCQkJCVNQQUlOCisKKzhDLURCLTI1ICAgKGhleCkJCUVTRyBTb2x1dGlvbnMKKzhDREIyNSAgICAgKGJhc2UgMTYpCQlFU0cgU29sdXRpb25zCisJCQkJMjAgSHlwZXJpb24gQ291cnQKKwkJCQlLaW5nc3RvbiBPbnRhcmlvIEs3SyA3SzIKKwkJCQlDQU5BREEKKworOEMtREQtOEQgICAoaGV4KQkJV2lmbHktQ2l0eSBTeXN0ZW0gSW5jLgorOENERDhEICAgICAoYmFzZSAxNikJCVdpZmx5LUNpdHkgU3lzdGVtIEluYy4KKwkJCQk0Ri4sLTEsTk8gMTA2LFJVRUlHVUFORyBSZC5OZWlodSBEaXN0cmljdCwKKwkJCQlUYWlwZWkgQ2l0eSAgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOEMtRTctQjMgICAoaGV4KQkJU29uYXJkeW5lIEludGVybmF0aW9uYWwgTHRkCis4Q0U3QjMgICAgIChiYXNlIDE2KQkJU29uYXJkeW5lIEludGVybmF0aW9uYWwgTHRkCisJCQkJQmxhY2tidXNoZSBCdXNpbmVzcyBQYXJrCisJCQkJWWF0ZWxleSBIYW1wc2hpcmUgR1U0NiA2R0QKKwkJCQlVTklURUQgS0lOR0RPTQorCis4Qy1GOS1DOSAgIChoZXgpCQlNRVNBREEgVGVjaG5vbG9neSBDby4sTHRkLgorOENGOUM5ICAgICAoYmFzZSAxNikJCU1FU0FEQSBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJVG9uZ0ZuZyBJbmZvcm1hdGlvbiBIYXJib3IsTm8uMTEgTGFuZ1NoYW4gUm9hZCxISS10ZWNoIFBhcmssTmFuc2hhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ0RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworOTAtMDAtNEUgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorOTAwMDRFICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQkgTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgMjAxNjEzCisJCQkJQ0hJTkEKKworOTAtMDEtM0IgICAoaGV4KQkJU0FHRU1DT00KKzkwMDEzQiAgICAgKGJhc2UgMTYpCQlTQUdFTUNPTQorCQkJCTI1MCByb3V0ZSBkZSBsJ0VtcGVyZXVyCisJCQkJUlVFSUwgTUFMTUFJU09OICA5Mjg0OAorCQkJCUZSQU5DRQorCis5MC0wOS0xNyAgIChoZXgpCQlGYXItc2lnaHRlZCBtb2JpbGUKKzkwMDkxNyAgICAgKGJhc2UgMTYpCQlGYXItc2lnaHRlZCBtb2JpbGUKKwkJCQlUZWNobm9sb2d5IFBhcmsgRGVzYXkgQnVpbGRpbmcgNnRoLUZsb29yCisJCQkJTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyBQcm92aW5jZSAgNTE4MDAwCisJCQkJQ0hJTkEKKworOTAtMEQtNjYgICAoaGV4KQkJRGlnaW1vcmUgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzkwMEQ2NiAgICAgKGJhc2UgMTYpCQlEaWdpbW9yZSBFbGVjdHJvbmljcyBDby4sIEx0ZAorCQkJCTEwIEZMLiwgTm8uIDYxLCBZYW4tUGluZyBTb3V0aCBSb2FkCisJCQkJVGFpcGVpICAxMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzkwLTE4LUFFICAgKGhleCkJCVNoYW5naGFpIE1lcmlkaWFuIFRlY2hub2xvZ2llcywgQ28uIEx0ZC4KKzkwMThBRSAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBNZXJpZGlhbiBUZWNobm9sb2dpZXMsIENvLiBMdGQuCisJCQkJU3VpdGUgNkEgVG9uZ3NoZW5nIFRvd2VyCisJCQkJIzQ1OCBGdXNoYW4gUm9hZAorCQkJCVB1ZG9uZyBzaGFuZ2hhaSAyMDAxMjIKKwkJCQlDSElOQQorCis5MC0xOS0wMCAgIChoZXgpCQlTQ1MgU0EKKzkwMTkwMCAgICAgKGJhc2UgMTYpCQlTQ1MgU0EKKwkJCQlWaWEgUGluaSwgMzIKKwkJCQlCaWFzY2EgIDY3MTAKKwkJCQlTV0lUWkVSTEFORAorCis5MC0yMS01NSAgIChoZXgpCQlIVEMgQ29ycG9yYXRpb24KKzkwMjE1NSAgICAgKGJhc2UgMTYpCQlIVEMgQ29ycG9yYXRpb24KKwkJCQlOby4yMyBYaW5naHVhIFJvYWQKKwkJCQlUYW95dWFuIENpdHkKKwkJCQlUYW95dWFuIENvdW50eSAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis5MC0yNy1FNCAgIChoZXgpCQlBcHBsZQorOTAyN0U0ICAgICAoYmFzZSAxNikJCUFwcGxlCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENhbGlmb3JuaWEgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLTJFLTg3ICAgKGhleCkJCUxhYkphY2sKKzkwMkU4NyAgICAgKGJhc2UgMTYpCQlMYWJKYWNrCisJCQkJMzIzMiBTIFZhbmNlIFN0IFNURSAxMDAKKwkJCQlMYWtld29vZCBDTyA4MDIyNworCQkJCVVOSVRFRCBTVEFURVMKKworOTAtMzQtMkIgICAoaGV4KQkJR2F0ZWtlZXBlciBTeXN0ZW1zLCBJbmMuCis5MDM0MkIgICAgIChiYXNlIDE2KQkJR2F0ZWtlZXBlciBTeXN0ZW1zLCBJbmMuCisJCQkJOCBTdHVkZWJha2VyCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCis5MC0zNC1GQyAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCis5MDM0RkMgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgICAyMDE2MTMgCisJCQkJQ0hJTkEKKworOTAtM0QtNUEgICAoaGV4KQkJU2hlbnpoZW4gV2lzaW9uIFRlY2hub2xvZ3kgSG9sZGluZyBMaW1pdGVkCis5MDNENUEgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gV2lzaW9uIFRlY2hub2xvZ3kgSG9sZGluZyBMaW1pdGVkCisJCQkJUm9vbSAyNkEsIEppbnJ1biBCdWlsZGluZywgTjAuNjAxOSwgU2hlbm5hbiBSZC4sIEZ1dGlhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNDAKKwkJCQlDSElOQQorCis5MC0zRC02QiAgIChoZXgpCQlaaWNvbiBUZWNobm9sb2d5IENvcnAuCis5MDNENkIgICAgIChiYXNlIDE2KQkJWmljb24gVGVjaG5vbG9neSBDb3JwLgorCQkJCTE1Ri4sIE5vLjY4OC0yLCBaaG9uZ3poZW5nIFJkLiwgWmhvbmdoZSBDaXR5LCBUYWlwZWkgQ291bnR5IDIzNQorCQkJCVRhaXBlaSAgMjM1ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzkwLTQ3LTE2ICAgKGhleCkJCVJPUlpFIENPUlBPUkFUSU9OCis5MDQ3MTYgICAgIChiYXNlIDE2KQkJUk9SWkUgQ09SUE9SQVRJT04KKwkJCQkxNTg4LTIgTWljaGlub3VlLCBLYW5uYWJlLWNobworCQkJCUZ1a3V5YW1hIEhpcm9zaGltYSA3MjAtMjEwNAorCQkJCUpBUEFOCisKKzkwLTRDLUU1ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzkwNENFNSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMworCQkJCUNISU5BCisKKzkwLTUwLTdCICAgKGhleCkJCUFkdmFuY2VkIFBBTk1PQklMIFN5c3RlbXMgR21iSCAmIENvLiBLRworOTA1MDdCICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIFBBTk1PQklMIFN5c3RlbXMgR21iSCAmIENvLiBLRworCQkJCUhhbnNlc3RyYe+/vWUgOTEKKwkJCQlDb2xvZ25lIE5SVyA1MTE0OQorCQkJCUdFUk1BTlkKKworOTAtNTEtM0YgICAoaGV4KQkJRWxldHRyb25pY2EgU2FudGVybm8KKzkwNTEzRiAgICAgKGJhc2UgMTYpCQlFbGV0dHJvbmljYSBTYW50ZXJubworCQkJCVMuUy4gU2VsaWNlLCA0NworCQkJCUltb2xhIEJvbG9nbmEgNDAwMjYKKwkJCQlJVEFMWQorCis5MC01NC00NiAgIChoZXgpCQlURVMgRUxFQ1RST05JQyBTT0xVVElPTlMKKzkwNTQ0NiAgICAgKGJhc2UgMTYpCQlURVMgRUxFQ1RST05JQyBTT0xVVElPTlMKKwkJCQlJbW1ldWJsZSBPZHlzc2VlCisJCQkJWkFDIGRlIEJsb3NzYWMKKwkJCQlCUlVaICAzNTE3MAorCQkJCUZSQU5DRQorCis5MC01NS1BRSAgIChoZXgpCQlFcmljc3NvbiwgRUFCL1JXSS9LCis5MDU1QUUgICAgIChiYXNlIDE2KQkJRXJpY3Nzb24sIEVBQi9SV0kvSworCQkJCVNrb2xn5W5nZW4gMTcKKwkJCQlH5HZsZSAgU0UtODAwIDA2CisJCQkJU1dFREVOCisKKzkwLTVGLThEICAgKGhleCkJCW1vZGFzIEdtYkgKKzkwNUY4RCAgICAgKGJhc2UgMTYpCQltb2RhcyBHbWJICisJCQkJQmVsemlnZXIgU3RyLiA2OS03MQorCQkJCUJlcmxpbiAgMTA4MjMKKwkJCQlHRVJNQU5ZCisKKzkwLTYxLTBDICAgKGhleCkJCUZpZGEgSW50ZXJuYXRpb25hbCAoUykgUHRlIEx0ZAorOTA2MTBDICAgICAoYmFzZSAxNikJCUZpZGEgSW50ZXJuYXRpb25hbCAoUykgUHRlIEx0ZAorCQkJCUJsayAxNiwgS2FsbGFuZyBQbGFjZSAKKwkJCQkjMDYtMDIsIAorCQkJCTMzOTE1NgorCQkJCVNJTkdBUE9SRQorCis5MC02Ny1CNSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudAorOTA2N0I1ICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50CisJCQkJNjAwLTcwMCBNb3VudGFpbiBBdmUuCisJCQkJM0EtMjMwQworCQkJCU11cnJheSBIaWlsbCBOSiAwNzk3NC0wNjM2CisJCQkJVU5JVEVEIFNUQVRFUworCis5MC02Ny1GMyAgIChoZXgpCQlBbGNhdGVsIEx1Y2VudAorOTA2N0YzICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTHVjZW50CisJCQkJVmlhIHRyZW50bywgMzAKKwkJCQlWaW1lcmNhdGUgTUIgMjAwNTkKKwkJCQlJVEFMWQorCis5MC02RC1DOCAgIChoZXgpCQlETEcgQXV0b21h5+NvIEluZHVzdHJpYWwgTHRkYQorOTA2REM4ICAgICAoYmFzZSAxNikJCURMRyBBdXRvbWHn428gSW5kdXN0cmlhbCBMdGRhCisJCQkJUnVhIEpvc+kgQmF0aXN0YSBTb2FyZXMsIDUzCisJCQkJRGlzdHJpdG8gSW5kdXN0cmlhbAorCQkJCVNlcnTjb3ppbmhvIFPjbyBQYXVsbyAxNDE3Ni0xMTkKKwkJCQlCUkFaSUwKKworOTAtNkUtQkIgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorOTA2RUJCICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzCisJCQkJQ0hJTkEKKworOTAtN0YtNjEgICAoaGV4KQkJQ2hpY29ueSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzkwN0Y2MSAgICAgKGJhc2UgMTYpCQlDaGljb255IEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCU5vLjI1LCBXdS1Hb25nIDZ0aCBSZC4sIFd1IEt1IEluZHVzdHJpYWwgUGFyaywgCisJCQkJVGFpcGVpIEhzaWVuLCAgIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTAtODQtMEQgICAoaGV4KQkJQXBwbGUsIEluYworOTA4NDBEICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLTg4LUEyICAgKGhleCkJCUlPTklDUyBURUNITk9MT0dZIE1FIExUREEKKzkwODhBMiAgICAgKGJhc2UgMTYpCQlJT05JQ1MgVEVDSE5PTE9HWSBNRSBMVERBCisJCQkJUlVBIERFUC4gQU5UT05JTyBFRFUgVklFSVJBCisJCQkJRkxPUklBTiBQT0xJUyBTQU5UQSBDQVRBUklOQSA4ODA0MDAwMAorCQkJCUJSQVpJTAorCis5MC04RC0xRCAgIChoZXgpCQlHSCBUZWNobm9sb2dpZXMKKzkwOEQxRCAgICAgKGJhc2UgMTYpCQlHSCBUZWNobm9sb2dpZXMKKwkJCQk1MDIyIEJpbmhlIFJvYWQsIEJsb2NrIEIsIFVuaXRlZCBQbGF6YQorCQkJCVNoZW56aGVuICA1MTgwMjYKKwkJCQlDSElOQQorCis5MC05MC0zQyAgIChoZXgpCQlUUklTT04gVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorOTA5MDNDICAgICAoYmFzZSAxNikJCVRSSVNPTiBURUNITk9MT0dZIENPUlBPUkFUSU9OCisJCQkJTm8uMywgS3VuZy1ZZWggMTJ0aCBSZC4sIFBpbmctSmVuIEluZHVzdHJpYWwgUGFyaywKKwkJCQlQaW5nLUplbiBDaXR5LCAgVGFvWXVhbiBDb3VudHkgMzI0NTkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzkwLTkwLTYwICAgKGhleCkJCVJTSSBWSURFTyBURUNITk9MT0dJRVMKKzkwOTA2MCAgICAgKGJhc2UgMTYpCQlSU0kgVklERU8gVEVDSE5PTE9HSUVTCisJCQkJNTYsIFJ1ZSBKZWFuLUdpcmF1ZG91eCAtIEJBVCA2MAorCQkJCVBhcmMgZCYjMzk7YWN0aXZpdO+/vSBkZXMgRm9yZ2VzCisJCQkJU1RSQVNCT1VSRyBCYXMtUmhpbiA2NzIwMAorCQkJCUZSQU5DRQorCis5MC1BMi1EQSAgIChoZXgpCQlHSEVPIFNBCis5MEEyREEgICAgIChiYXNlIDE2KQkJR0hFTyBTQQorCQkJCVZpYSBTb2xkaW5pLCAyMgorCQkJCUNoaWFzc28gIENILTY4MzAKKwkJCQlTV0lUWkVSTEFORAorCis5MC1BNC1ERSAgIChoZXgpCQlXaXN0cm9uIE5ld2ViIENvcnAuCis5MEE0REUgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBOZXdlYiBDb3JwLgorCQkJCTIwIFBhcmsgQXZlbnVlIElJLCBIc2luY2h1IFNjaWVuY2UgUGFyaywgCisJCQkJSHNpbmNodSAgIDMwOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTAtQTctQzEgICAoaGV4KQkJUGFrZWRnZSBEZXZpY2UgYW5kIFNvZnR3YXJlIEluYy4KKzkwQTdDMSAgICAgKGJhc2UgMTYpCQlQYWtlZGdlIERldmljZSBhbmQgU29mdHdhcmUgSW5jLgorCQkJCTEwMTEgRWR3YXJkcyBSb2FkCisJCQkJQnVybGluZ2FtZSBDQSA5NDAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworOTAtQjgtRDAgICAoaGV4KQkJSm95ZW50LCBJbmMuCis5MEI4RDAgICAgIChiYXNlIDE2KQkJSm95ZW50LCBJbmMuCisJCQkJMzQ1IENhbGlmb3JuaWEgU3RyZWV0LAorCQkJCVN1aXRlIDIwMDAKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTA0CisJCQkJVU5JVEVEIFNUQVRFUworCis5MC1COS03RCAgIChoZXgpCQlKb2huc29uIE91dGRvb3JzIE1hcmluZSBFbGVjdHJvbmljcyBkL2IvYSBNaW5ua290YQorOTBCOTdEICAgICAoYmFzZSAxNikJCUpvaG5zb24gT3V0ZG9vcnMgTWFyaW5lIEVsZWN0cm9uaWNzIGQvYi9hIE1pbm5rb3RhCisJCQkJMTUzMSBFIE1hZGlzb24gQXZlCisJCQkJTWFua2F0byBNTiA1NjAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworOTAtQ0YtMTUgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzkwQ0YxNSAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1ICA5MDIzMAorCQkJCUZJTkxBTkQKKworOTAtRDEtMUIgICAoaGV4KQkJUGFsb21hciBNZWRpY2FsIFRlY2hub2xvZ2llcworOTBEMTFCICAgICAoYmFzZSAxNikJCVBhbG9tYXIgTWVkaWNhbCBUZWNobm9sb2dpZXMKKwkJCQkxNSBOZXR3b3JrIERyaXZlCisJCQkJQnVybGluZ3RvbiBNQSAwMTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworOTAtRDctRUIgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzkwRDdFQiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCU1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLUQ4LTUyICAgKGhleCkJCUNvbXRlYyBDby4sIEx0ZC4KKzkwRDg1MiAgICAgKGJhc2UgMTYpCQlDb210ZWMgQ28uLCBMdGQuCisJCQkJIDNGLiwgTm8uODEsIEppYW5rYW5nIFJkLiwKKwkJCQlaaG9uZ2hlIENpdHkgVGFpcGVpIENvdW50eSAyMzU4NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTAtRDktMkMgICAoaGV4KQkJSFVHLVdJVFNDSEkgQUcKKzkwRDkyQyAgICAgKGJhc2UgMTYpCQlIVUctV0lUU0NISSBBRworCQkJCUF1cmllZHN0cmFzc2UgMTAKKwkJCQlCb2VzaW5nZW4gRnJpYm91cmcgMzE3OAorCQkJCVNXSVRaRVJMQU5ECisKKzkwLUUwLUYwICAgKGhleCkJCUlFRUUgUDE3MjIgCis5MEUwRjAgICAgIChiYXNlIDE2KQkJSUVFRSBQMTcyMiAKKwkJCQk4NzYwIFNhbmR5IFBhcmt3YXkKKwkJCQlTYW5keSBVdGFoIDg0MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCis5MC1FMi1CQSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorOTBFMkJBICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis5MC1FNi1CQSAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzkwRTZCQSAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91LCAKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTAtRUEtNjAgICAoaGV4KQkJU1BJIExhc2VycyBMdGQgCis5MEVBNjAgICAgIChiYXNlIDE2KQkJU1BJIExhc2VycyBMdGQgCisJCQkJNiB3ZWxsaW5ndG9uIFBhcmsKKwkJCQlIZWRnZSBFbmQKKwkJCQlTb3V0aGFtcHRvbiBIYW1wc2hpcmUgUzAzMDJRVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzkwLUYyLTc4ICAgKGhleCkJCVJhZGl1cyBHYXRld2F5Cis5MEYyNzggICAgIChiYXNlIDE2KQkJUmFkaXVzIEdhdGV3YXkKKwkJCQk1MjAgRS4gTW9udGZvcmQgQXZlCisJCQkJQWRhIE9IIDQ1ODEwCisJCQkJVU5JVEVEIFNUQVRFUworCis5MC1GQi01QiAgIChoZXgpCQlBdmF5YSwgSW5jCis5MEZCNUIgICAgIChiYXNlIDE2KQkJQXZheWEsIEluYworCQkJCTIxMSBNb3VudCBBaXJ5IFJvYWQgCisJCQkJQmFza2luZyBSaWRnZSBOSiAwNzkyMC0yMzExCisJCQkJVU5JVEVEIFNUQVRFUworCis5MC1GQi1BNiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uTHRkCis5MEZCQTYgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLkx0ZAorCQkJCTY2LENodW5nIFNoYW4gUmQuVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTQtMEMtNkQgICAoaGV4KQkJVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzk0MEM2RCAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCUJ1aWxkaW5nIDcsIFNlY29uZCBQYXJ0LCBIb25naHVhbGluZyBJbmR1c3RyaWFsIFpvbmUKKwkJCQlYaWxpIHRvd24sIE5hbnNoYW4sCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzk0LTExLURBICAgKGhleCkJCUlURiBGcm9zY2hsIEdtYkgKKzk0MTFEQSAgICAgKGJhc2UgMTYpCQlJVEYgRnJvc2NobCBHbWJICisJCQkJSGF1c2VyYmFjaHN0ci4gNyAtIDEwCisJCQkJIFdhbGRlcmJhY2ggQmF2YXJpYSA5MzE5NAorCQkJCUdFUk1BTlkKKworOTQtMTYtNzMgICAoaGV4KQkJUG9pbnQgQ29yZSBTQVJMCis5NDE2NzMgICAgIChiYXNlIDE2KQkJUG9pbnQgQ29yZSBTQVJMCisJCQkJMjkvMzEgUnVlIGR1IEJvaXMgR2Fsb24KKwkJCQlGT05URU5BWSBTT1VTIEJPSVMgSWxlIGRlIEZyYW5jZSA5NDEyMAorCQkJCUZSQU5DRQorCis5NC0yMC01MyAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorOTQyMDUzICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTkwCisJCQkJRklOTEFORAorCis5NC0yMy02RSAgIChoZXgpCQlTaGVuemhlbiBKdW5sYW4gRWxlY3Ryb25pYyBMdGQKKzk0MjM2RSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBKdW5sYW4gRWxlY3Ryb25pYyBMdGQKKwkJCQlCbG9jayBDLE5vLjIgSW5kdXN0cmlhbCBEaXN0cmljdCwgRnV5dWFuLCBUYW5nd2VpLEZ1eW9uZywgQmFvJ2FuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwMworCQkJCUNISU5BCisKKzk0LTJFLTYzICAgKGhleCkJCUZpbnPpY3VyCis5NDJFNjMgICAgIChiYXNlIDE2KQkJRmluc+ljdXIKKwkJCQk1MiBydWUgUGF1bCBMZXNjb3AKKwkJCQlOYW50ZXJyZSAgOTIwMDAKKwkJCQlGUkFOQ0UKKworOTQtMzMtREQgICAoaGV4KQkJVGFjbyBFbGVjdHJvbmljIFNvbHV0aW9ucywgSW5jLgorOTQzM0REICAgICAoYmFzZSAxNikJCVRhY28gRWxlY3Ryb25pYyBTb2x1dGlvbnMsIEluYy4KKwkJCQkxMTYwIENyYW5zdG9uIFN0cmVldAorCQkJCUNyYW5zdG9uIFJJIDAyOTIwCisJCQkJVU5JVEVEIFNUQVRFUworCis5NC0zOS1FNSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorOTQzOUU1ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMyAKKwkJCQlDSElOQQorCis5NC00NC01MiAgIChoZXgpCQlCZWxraW4gSW50ZXJuYXRpb25hbCwgSW5jLgorOTQ0NDUyICAgICAoYmFzZSAxNikJCUJlbGtpbiBJbnRlcm5hdGlvbmFsLCBJbmMuCisJCQkJNTAxIFcuIFdhbG51dCBTdC4KKwkJCQlDb21wdG9uIENBIDkwMjIwCisJCQkJVU5JVEVEIFNUQVRFUworCis5NC00Ni05NiAgIChoZXgpCQlCYXVkVGVjIENvcnBvcmF0aW9uCis5NDQ2OTYgICAgIChiYXNlIDE2KQkJQmF1ZFRlYyBDb3Jwb3JhdGlvbgorCQkJCTEyRiwgTm8uMTgxLCBTZWMuMS5UYXR1bmcgUmQuCisJCQkJSHNpLWNoaWggVGFpcGVpIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTQtNTktMkQgICAoaGV4KQkJRUtFIEJ1aWxkaW5nIFRlY2hub2xvZ3kgU3lzdGVtcyBMdGQKKzk0NTkyRCAgICAgKGJhc2UgMTYpCQlFS0UgQnVpbGRpbmcgVGVjaG5vbG9neSBTeXN0ZW1zIEx0ZAorCQkJCVBpaXNwYW5wb3J0dGkgNworCQkJCUVzcG9vIC0gMDIyNDAKKwkJCQlGSU5MQU5ECisKKzk0LTVCLTdFICAgKGhleCkJCVRSSUxPQklUIExUREEuCis5NDVCN0UgICAgIChiYXNlIDE2KQkJVFJJTE9CSVQgTFREQS4KKwkJCQlSLiBBTFZBUkVOR0EgMTM3NworCQkJCUJVVEFOVEEKKwkJCQlTQU8gUEFVTE8gIDA1NTA5MDAyCisJCQkJQlJBWklMCisKKzk0LTgxLUE0ICAgKGhleCkJCUF6dXJheSBUZWNobm9sb2dpZXMKKzk0ODFBNCAgICAgKGJhc2UgMTYpCQlBenVyYXkgVGVjaG5vbG9naWVzCisJCQkJNzQ3MCBTVyBCcmlkZ2Vwb3J0IFJkCisJCQkJRHVyaGFtIE9SIDk3MjI0CisJCQkJVU5JVEVEIFNUQVRFUworCis5NC04NS03QSAgIChoZXgpCQlFdmFudGFnZSBJbmR1c3RyaWVzIENvcnAKKzk0ODU3QSAgICAgKGJhc2UgMTYpCQlFdmFudGFnZSBJbmR1c3RyaWVzIENvcnAKKwkJCQk4MTUgQnJpZGdlIFN0LiBXLgorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJWIDJNNworCQkJCUNBTkFEQQorCis5NC04OC01NCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworOTQ4ODU0ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis5NC04Qi0wMyAgIChoZXgpCQlFQUdFVCBJbm5vdmF0aW9uIGFuZCBUZWNobm9sb2d5IENvLiwgTHRkLgorOTQ4QjAzICAgICAoYmFzZSAxNikJCUVBR0VUIElubm92YXRpb24gYW5kIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMy9GLCBCdWlsZGluZyA0LCBMaWFuY2h1YW5nIFRlY2hub2xvZ3kgUGFyayxCdWppIFRvd24sCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODExMgorCQkJCUNISU5BCisKKzk0LThELTUwICAgKGhleCkJCUJlYW1leCBPeSBBYgorOTQ4RDUwICAgICAoYmFzZSAxNikJCUJlYW1leCBPeSBBYgorCQkJCVJpc3Rpc3VvbnJhaXR0aSAxMAorCQkJCVBpZXRhcnNhYXJpICBGSS02ODYwMAorCQkJCUZJTkxBTkQKKworOTQtOEYtRUUgICAoaGV4KQkJSHVnaGVzIFRlbGVtYXRpY3MsIEluYy4KKzk0OEZFRSAgICAgKGJhc2UgMTYpCQlIdWdoZXMgVGVsZW1hdGljcywgSW5jLgorCQkJCTIwMDIgU3VtbWl0IEJsdmQKKwkJCQlTdWl0ZSAxODAwCisJCQkJQXRsYW50YSBHQSAzMDMxOQorCQkJCVVOSVRFRCBTVEFURVMKKworOTQtOUMtNTUgICAoaGV4KQkJQWx0YSBEYXRhIFRlY2hub2xvZ2llcworOTQ5QzU1ICAgICAoYmFzZSAxNikJCUFsdGEgRGF0YSBUZWNobm9sb2dpZXMKKwkJCQk0OTAxIFJvY2thd2F5IEJsdmQsIEJ1aWxkaW5nIEEKKwkJCQlSaW8gUmFuY2hvIE5NIDg3MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCis5NC1BNy1CQyAgIChoZXgpCQlCb2R5TWVkaWEsIEluYy4KKzk0QTdCQyAgICAgKGJhc2UgMTYpCQlCb2R5TWVkaWEsIEluYy4KKwkJCQk0MjAgRm9ydCBEdXF1ZXNuZSBCbHZkCisJCQkJR2F0ZXdheSAxLCBTdWl0ZSAxOTAwCisJCQkJUGl0dHNidXJnaCBQQSAxNTIyMgorCQkJCVVOSVRFRCBTVEFURVMKKworOTQtQUEtQjggICAoaGV4KQkJSm92aWV3KEJlaWppbmcpIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKzk0QUFCOCAgICAgKGJhc2UgMTYpCQlKb3ZpZXcoQmVpamluZykgVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCVJvb20gMzAyLCBTb3V0aCBCdWlsZGluZworCQkJCU5vLjgwIFh1ZXl1YW5uYW5sdQorCQkJCUJlaWppbmcgIDEwMDA4MQorCQkJCUNISU5BCisKKzk0LUJBLTMxICAgKGhleCkJCVZpc2lvbnRlYyBkYSBBbWF69G5pYSBMdGRhLgorOTRCQTMxICAgICAoYmFzZSAxNikJCVZpc2lvbnRlYyBkYSBBbWF69G5pYSBMdGRhLgorCQkJCVJvZC4gR2VyYWxkbyBTY2F2b25lLCAyMzAwIC0gR2FscGFvIDI3CisJCQkJQ2FsaWZvcm5pYSBDZW50ZXIgLSBQcS4gQ2FsaWZvcm5pYQorCQkJCUphY2FyZe0gU1AgMTIzMDUtNDkwCisJCQkJQlJBWklMCisKKzk0LUM0LUU5ICAgKGhleCkJCVBvd2VyTGF5ZXIgTWljcm9zeXN0ZW1zIEhvbmdLb25nIExpbWl0ZWQKKzk0QzRFOSAgICAgKGJhc2UgMTYpCQlQb3dlckxheWVyIE1pY3Jvc3lzdGVtcyBIb25nS29uZyBMaW1pdGVkCisJCQkJMjMgWmhpY2h1biBSZCxMaWFuZ3ppeWluenVvIFJtMTAwOQorCQkJCUhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODMKKwkJCQlDSElOQQorCis5NC1DNy1BRiAgIChoZXgpCQlSYXlsaW9zIFRlY2hub2xvZ3kKKzk0QzdBRiAgICAgKGJhc2UgMTYpCQlSYXlsaW9zIFRlY2hub2xvZ3kKKwkJCQkxMkYuLCBOby4xNiwgSmlhbiA4dGggUmQKKwkJCQlaaG9uZ2hlIENpdHkgVGFpcGVpIENvdW50eSAgMjM1MTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzk0LUNELUFDICAgKGhleCkJCUNyZW93YXZlIE95Cis5NENEQUMgICAgIChiYXNlIDE2KQkJQ3Jlb3dhdmUgT3kKKwkJCQlMZW50b2thdHUgMgorCQkJCU91bHVuc2FsbyAgRklOLTkwNDYwCisJCQkJRklOTEFORAorCis5NC1EMC0xOSAgIChoZXgpCQlDeWRsZSBDb3JwLgorOTREMDE5ICAgICAoYmFzZSAxNikJCUN5ZGxlIENvcnAuCisJCQkJMTIwMywgS29mb21vVG93ZXIsIDE2LTMgLCBTdW5hZS1Eb25nLCBCdW5kYW5nLUd1CisJCQkJU2VvbmduYW0tQ2l0eSBHeWVvbmdnaS1EbyA0NjM4MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworOTQtRDktM0MgICAoaGV4KQkJRU5FTFBTCis5NEQ5M0MgICAgIChiYXNlIDE2KQkJRU5FTFBTCisJCQkJQnVsIEFyc2VuaWphIENhcm5vamV2aWNhIDExNworCQkJCUJlbGdyYWRlICAxMTA3MAorCQkJCVNFUkJJQQorCis5NC1ERC0zRiAgIChoZXgpCQlBK1YgTGluayBUZWNobm9sb2dpZXMsIENvcnAuCis5NEREM0YgICAgIChiYXNlIDE2KQkJQStWIExpbmsgVGVjaG5vbG9naWVzLCBDb3JwLgorCQkJCTVGLiwgTm8uNTUwLCBYaWFuemhlbmcgMm5kIFJkLgorCQkJCVpodWJlaSBDaXR5IEhzaW5jaHUgQ291bnRyeSAzMDI2OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTQtRTItMjYgICAoaGV4KQkJRC4gT1J0aXogQ29uc3VsdGluZywgTExDCis5NEUyMjYgICAgIChiYXNlIDE2KQkJRC4gT1J0aXogQ29uc3VsdGluZywgTExDCisJCQkJMjI2MDEgTi4gMTd0aCBBdmVudWUgU3VpdGUgMjcwCisJCQkJUGhvZW5peCBBWiA4NTAyNworCQkJCVVOSVRFRCBTVEFURVMKKworOTQtRTctMTEgICAoaGV4KQkJWGlya2EgRGFtYSBQZXJzYWRhIFBUCis5NEU3MTEgICAgIChiYXNlIDE2KQkJWGlya2EgRGFtYSBQZXJzYWRhIFBUCisJCQkJR2RnIENNCisJCQkJSmxuIE1hdHJhbWFuIEkgTm8gOQorCQkJCUpha2FydGEgIDEzMTUwCisJCQkJSU5ET05FU0lBCisKKzk0LUU4LTQ4ICAgKGhleCkJCUZZTERFIE1JQ1JPIExURAorOTRFODQ4ICAgICAoYmFzZSAxNikJCUZZTERFIE1JQ1JPIExURAorCQkJCTggQVZST0UgQ1JFU0NFTlQKKwkJCQlCTEFDS1BPT0wgTEFOQ0FTSElSRSBGWTQgMkRQCisJCQkJVU5JVEVEIEtJTkdET00KKworOTQtRjYtOTIgICAoaGV4KQkJR2VtaW5pY28gY28uLEx0ZC4KKzk0RjY5MiAgICAgKGJhc2UgMTYpCQlHZW1pbmljbyBjby4sTHRkLgorCQkJCSMxMDItMTExMiwgQ2h1bnVpLVRlY2hub3BhcmssIDIwMC0xLAorCQkJCUNodW51aS1kb25nLCBXb25taS1ndQorCQkJCUJ1Y2hlb24tY2l0eSBLeXVuZ2dpLWRvIDQyMC04NTcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworOTQtRjctMjAgICAoaGV4KQkJVGlhbmppbiBEZXZpc2VyIEVsZWN0cm9uaWNzIEluc3RydW1lbnQgQ28uLCBMdGQKKzk0RjcyMCAgICAgKGJhc2UgMTYpCQlUaWFuamluIERldmlzZXIgRWxlY3Ryb25pY3MgSW5zdHJ1bWVudCBDby4sIEx0ZAorCQkJCU5vLjQwIFlpYmluIFJvYWQsTmFua2FpIGRpc3RyaWN0LAorCQkJCVRpYW5qaW4gIDMwMDExMworCQkJCUNISU5BCisKKzk0LUZELTFEICAgKGhleCkJCVdoZXJlV2hlbiBDb3JwCis5NEZEMUQgICAgIChiYXNlIDE2KQkJV2hlcmVXaGVuIENvcnAKKwkJCQk5NkEgRmx5bm4gQXZlbnVlCisJCQkJTW91bnRhaW4gVmlldyBDYWxpZm9ybmlhIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCis5NC1GRS1GNCAgIChoZXgpCQlTQUdFTUNPTQorOTRGRUY0ICAgICAoYmFzZSAxNikJCVNBR0VNQ09NCisJCQkJMjUwIHJvdXRlIGRlIGwnRW1wZXJldXIKKwkJCQlSVUVJTCBNQUxNQUlTT04gIDkyODQ4CisJCQkJRlJBTkNFCisKKzk4LTAzLUEwICAgKGhleCkJCUFCQiBuLnYuIFBvd2VyIFF1YWxpdHkgUHJvZHVjdHMKKzk4MDNBMCAgICAgKGJhc2UgMTYpCQlBQkIgbi52LiBQb3dlciBRdWFsaXR5IFByb2R1Y3RzCisJCQkJMTAgYWxs77+9ZSBjZW50cmFsZQorCQkJCUp1bWV0ICA2MDQwCisJCQkJQkVMR0lVTQorCis5OC0wMy1EOCAgIChoZXgpCQlBcHBsZSwgSW5jLgorOTgwM0Q4ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis5OC0wQy04MiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm8gTWVjaGFuaWNzCis5ODBDODIgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvIE1lY2hhbmljcworCQkJCU1ldGFuIERvbmcgMzE0LCBZb3VuZ3RvbmcgR3UKKwkJCQlTdXdvbiBLeXVuZy1naSBEby4gNDQzLTc0MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis5OC0wRS1FNCAgIChoZXgpCQlQUklWQVRFCis5ODBFRTQgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzk4LTI5LTNGICAgKGhleCkJCUZ1amlhbiBTdGFydCBDb21wdXRlciBFcXVpcG1lbnQgQ28uLEx0ZAorOTgyOTNGICAgICAoYmFzZSAxNikJCUZ1amlhbiBTdGFydCBDb21wdXRlciBFcXVpcG1lbnQgQ28uLEx0ZAorCQkJCU5vLjY4IEhvbmdzaGFuZ3l1YW4gUm9hZCwgIAorCQkJCUZ1emhvdSBDaXR5LCAgRnVqaWFuIFByb3ZpbmNlLCAzNTAwMDIKKwkJCQlDSElOQQorCis5OC0yQy1CRSAgIChoZXgpCQkyV2lyZQorOTgyQ0JFICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBrd3kKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworOTgtMkQtNTYgICAoaGV4KQkJUmVzb2x1dGlvbiBBdWRpbworOTgyRDU2ICAgICAoYmFzZSAxNikJCVJlc29sdXRpb24gQXVkaW8KKwkJCQk4OCBIb2ZmIFN0cmVldCAjMTA2CisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDExMAorCQkJCVVOSVRFRCBTVEFURVMKKworOTgtMzAtMDAgICAoaGV4KQkJQmVpamluZyBLRU1BQ09NIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzk4MzAwMCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEtFTUFDT00gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCVJvb20gMjA4LCBCdWlsZGluZyA2LCBOby41MCwgWGkgU2FuIEh1YW4gQmVpIFJvYWQgCisJCQkJSGFpZGlhbiBEaXN0cmljdCwgCisJCQkJQmVpamluZyAgMTAwMDQ0CisJCQkJQ0hJTkEKKworOTgtMzUtQjggICAoaGV4KQkJQXNzZW1ibGVkIFByb2R1Y3RzIENvcnBvcmF0aW9uCis5ODM1QjggICAgIChiYXNlIDE2KQkJQXNzZW1ibGVkIFByb2R1Y3RzIENvcnBvcmF0aW9uCisJCQkJMTE1IEUuIExpbmRlbgorCQkJCVJvZ2VycyBBcmthbnNhcyA3Mjc1NgorCQkJCVVOSVRFRCBTVEFURVMKKworOTgtNDItNDYgICAoaGV4KQkJU09MIElORFVTVFJZIFBURS4sIExURAorOTg0MjQ2ICAgICAoYmFzZSAxNikJCVNPTCBJTkRVU1RSWSBQVEUuLCBMVEQKKwkJCQkgMSBOT1JUSCBCUklER0UgUkQuLAorCQkJCSAjMjQtMDUsIEhJR0ggU1RSRUVUIENFTlRSRSwKKwkJCQkxNzkwOTQKKwkJCQlTSU5HQVBPUkUKKworOTgtNEItNEEgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHkgSW5jLgorOTg0QjRBICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5IEluYy4KKwkJCQk2MDAgTm9ydGggVVMgSGlnaHdheSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworOTgtNEItRTEgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCis5ODRCRTEgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzk4LTRFLTk3ICAgKGhleCkJCVN0YXJsaWdodCBNYXJrZXRpbmcgKEguIEsuKSBMdGQuCis5ODRFOTcgICAgIChiYXNlIDE2KQkJU3RhcmxpZ2h0IE1hcmtldGluZyAoSC4gSy4pIEx0ZC4KKwkJCQk1L0YuLCBTaGluZyBEYW8gSW5kdXN0cmlhbCBCdWlsZGluZywgCisJCQkJMjMyIEFiZXJkZWVuIE1haW4gUm9hZAorCQkJCUhPTkcgS09ORworCis5OC01OS00NSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworOTg1OTQ1ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis5OC02MC0yMiAgIChoZXgpCQlFTVcgQ28uLCBMdGQuCis5ODYwMjIgICAgIChiYXNlIDE2KQkJRU1XIENvLiwgTHRkLgorCQkJCTgwQi00TCwgNjgwLTMgR29qYW4tRG9uZworCQkJCU5hbWRvbmctR3UKKwkJCQlJbmNoZW9uICA0MDUtODE5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzk4LTY2LUVBICAgKGhleCkJCUluZHVzdHJpYWwgQ29udHJvbCBDb21tdW5pY2F0aW9ucywgSW5jLgorOTg2NkVBICAgICAoYmFzZSAxNikJCUluZHVzdHJpYWwgQ29udHJvbCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTE2MDAgQXNwZW4gQ29tbW9ucworCQkJCVN1aXRlIDIxMAorCQkJCU1pZGRsZXRvbiBXSSA1MzU2MgorCQkJCVVOSVRFRCBTVEFURVMKKworOTgtNkQtQzggICAoaGV4KQkJVE9TSElCQSBNSVRTVUJJU0hJLUVMRUNUUklDIElORFVTVFJJQUwgU1lTVEVNUyBDT1JQT1JBVElPTgorOTg2REM4ICAgICAoYmFzZSAxNikJCVRPU0hJQkEgTUlUU1VCSVNISS1FTEVDVFJJQyBJTkRVU1RSSUFMIFNZU1RFTVMgQ09SUE9SQVRJT04KKwkJCQlNSVRBIDQzTVQgQkxERy4KKwkJCQkxMy0xNk1JVEEgMy1DSE9NRSxNSU5BVE8tS1UKKwkJCQlUT0tZTyBKQVBBTiAxMDgtMDA3MworCQkJCUpBUEFOCisKKzk4LTczLUM0ICAgKGhleCkJCVNhZ2UgRWxlY3Ryb25pYyBFbmdpbmVlcmluZyBMTEMKKzk4NzNDNCAgICAgKGJhc2UgMTYpCQlTYWdlIEVsZWN0cm9uaWMgRW5naW5lZXJpbmcgTExDCisJCQkJMjAxIFRlcnJ5IFN0LgorCQkJCVN1aXRlIDFBCisJCQkJTG9uZ21vbnQgQ08gODA1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzk4LTg5LUVEICAgKGhleCkJCUFuYWRlbSBJbmZvcm1hdGlvbiBJbmMuCis5ODg5RUQgICAgIChiYXNlIDE2KQkJQW5hZGVtIEluZm9ybWF0aW9uIEluYy4KKwkJCQkybmQgRiwgNzkgWmhvdXppIFN0cmVldCwgTmVpaHUgRGlzdHJpY3QsIAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis5OC04Qi01RCAgIChoZXgpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCis5ODhCNUQgICAgIChiYXNlIDE2KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorCQkJCTI1MCByb3V0ZSBkZSBsJ0VtcGVyZXVyCisJCQkJUnVlaWwgTWFsbWFpc29uICA5Mjg0OAorCQkJCUZSQU5DRQorCis5OC04RS0zNCAgIChoZXgpCQlaSEVKSUFORyBCT1hTQU0gRUxFQ1RST05JQyBDTy4sTFRECis5ODhFMzQgICAgIChiYXNlIDE2KQkJWkhFSklBTkcgQk9YU0FNIEVMRUNUUk9OSUMgQ08uLExURAorCQkJCU5vLjI4OCxMT05HVEFOIFJPQUQsCisJCQkJSklOSFVBIENJVFkgWkhFSklBTkcgUFJPVklOQ0UsIDMyMTAxNworCQkJCUNISU5BCisKKzk4LThFLUREICAgKGhleCkJCVJheWNoZW0gSW50ZXJuYXRpb25hbAorOTg4RUREICAgICAoYmFzZSAxNikJCVJheWNoZW0gSW50ZXJuYXRpb25hbAorCQkJCUJheSAxMDUsIAorCQkJCVNoYW5ub24gSW5kdXN0cmlhbCBFc3RhdGUsCisJCQkJU2hhbm5vbiwgQ28uIENsYXJlIEVpcmUKKwkJCQlJUkVMQU5ECisKKzk4LTk0LTQ5ICAgKGhleCkJCVNreXdvcnRoIFdpcmVsZXNzIFRlY2hub2xvZ3kgTHRkLgorOTg5NDQ5ICAgICAoYmFzZSAxNikJCVNreXdvcnRoIFdpcmVsZXNzIFRlY2hub2xvZ3kgTHRkLgorCQkJCVVuaXQgQSBSbS4zQTAxLCBTa3l3b3J0aCBCbGRnLiwgR2FveGluIEF2ZS4gMS5TLiwKKwkJCQlOYW5zaGFuIERpc3RyaWN0IFNoZW56aGVuIDUxODA1NworCQkJCUNISU5BCisKKzk4LUJDLTk5ICAgKGhleCkJCUVkZWx0ZWNoIENvLixMdGQuCis5OEJDOTkgICAgIChiYXNlIDE2KQkJRWRlbHRlY2ggQ28uLEx0ZC4KKwkJCQkjMzAyIEphbWFlIEJsZGcsIDEwMTAtMjgsIFNhZGFuZy1kb25nLCBEb25namFrPWd1CisJCQkJU2VvdWwgIDE1Ni04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworOTgtRDgtOEMgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCis5OEQ4OEMgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJQ0FSUkVURVJBIEJBU0UgQUVSRUEgIyA1ODUwCisJCQkJWmFwb3BhbiBKYWxpc2NvIDQ0MTMwCisJCQkJTUVYSUNPCisKKzk4LURDLUQ5ICAgKGhleCkJCVVOSVRFQyBDby4sIEx0ZC4KKzk4RENEOSAgICAgKGJhc2UgMTYpCQlVTklURUMgQ28uLCBMdGQuCisJCQkJMS0yLTEtU2hpbnlva29oYW1hCisJCQkJS29ob2t1LWt1CisJCQkJWW9rb2hhbWEtc2hpIEthbmFnYXdhIDIyMi0wMDMzCisJCQkJSkFQQU4KKworOTgtRTEtNjUgICAoaGV4KQkJQWNjdXRvbWUKKzk4RTE2NSAgICAgKGJhc2UgMTYpCQlBY2N1dG9tZQorCQkJCTMyMjIgUGhvZW5peHZpbGxlIFBpa2UKKwkJCQlNYWx2ZXJuIFBBIDE5MzU1CisJCQkJVU5JVEVEIFNUQVRFUworCis5OC1FNy05QSAgIChoZXgpCQlGb3hjb25uKE5hbkppbmcpIENvbW11bmljYXRpb24gQ28uLEx0ZC4KKzk4RTc5QSAgICAgKGJhc2UgMTYpCQlGb3hjb25uKE5hbkppbmcpIENvbW11bmljYXRpb24gQ28uLEx0ZC4KKwkJCQlBLTJGTWluZmFuZyBCdWlsZGluZyBOby4xODkgR3Vhbmd6aG91IFJkIAorCQkJCU5hbmppbmcgSmlhbmcgc3UgMjEwMDI5CisJCQkJQ0hJTkEKKworOTgtRUMtNjUgICAoaGV4KQkJQ29zZXN5IEFwUworOThFQzY1ICAgICAoYmFzZSAxNikJCUNvc2VzeSBBcFMKKwkJCQlUeXR0ZWJhZXJ2ZWogMgorCQkJCUFucyBKeWxsYW5kIERLLTg2NDMKKwkJCQlERU5NQVJLCisKKzk4LUY1LTM3ICAgKGhleCkJCXp0ZSBjb3Jwb3JhdGlvbgorOThGNTM3ICAgICAoYmFzZSAxNikJCXp0ZSBjb3Jwb3JhdGlvbgorCQkJCTEyL0YuLHp0ZSBSJkQgYnVpbGRpbmcsa2VqaW5hbiBSb2FkLAorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis5OC1GOC1EQiAgIChoZXgpCQlNYXJpbmkgSW1waWFudGkgSW5kdXN0cmlhbGkgcy5yLmwuCis5OEY4REIgICAgIChiYXNlIDE2KQkJTWFyaW5pIEltcGlhbnRpIEluZHVzdHJpYWxpIHMuci5sLgorCQkJCVZpYSBkZWxsZSBQcm92aW5jZSwgNkEKKwkJCQkoWm9uYSBBcnRpZ2lhbmFsZSkKKwkJCQlDaXN0ZXJuYSBkaSBMYXRpbmEgIDA0MDEyCisJCQkJSVRBTFkKKworOTgtRkMtMTEgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCis5OEZDMTEgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTMxIFRoZXJveSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy0xOC03NCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworOUMxODc0ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCis5Qy0yMi0wRSAgIChoZXgpCQlUQVNDQU4gU2VydmljZSBHbWJICis5QzIyMEUgICAgIChiYXNlIDE2KQkJVEFTQ0FOIFNlcnZpY2UgR21iSAorCQkJCU1heC1QbGFuY2stU3RyLiAzOAorCQkJCUNvbG9nbmUgTlJXIDUwODU4CisJCQkJR0VSTUFOWQorCis5Qy0yOC1CRiAgIChoZXgpCQlDb250aW5lbnRhbCBBdXRvbW90aXZlIEN6ZWNoIFJlcHVibGljIHMuci5vLgorOUMyOEJGICAgICAoYmFzZSAxNikJCUNvbnRpbmVudGFsIEF1dG9tb3RpdmUgQ3plY2ggUmVwdWJsaWMgcy5yLm8uCisJCQkJUHLvv71teXNsb3bvv70gMTg1MQorCQkJCUJyYW5k77+9cyBuYWQgTGFiZW0gIDI1MCAwMSAKKwkJCQlDWkVDSCBSRVBVQkxJQworCis5Qy0zMS1CNiAgIChoZXgpCQlLdWxpdGUgU2VtaWNvbmR1Y3RvciBQcm9kdWN0cyBJbmMKKzlDMzFCNiAgICAgKGJhc2UgMTYpCQlLdWxpdGUgU2VtaWNvbmR1Y3RvciBQcm9kdWN0cyBJbmMKKwkJCQkxIFdpbGxvdyBUcmVlIFJkCisJCQkJTGVvbmlhIE5KIDA3NjA1CisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy00MS03QyAgIChoZXgpCQlIYW1lICBUZWNobm9sb2d5IENvLiwgIExpbWl0ZWQgCis5QzQxN0MgICAgIChiYXNlIDE2KQkJSGFtZSAgVGVjaG5vbG9neSBDby4sICBMaW1pdGVkIAorCQkJCTVGLCBOby4gMTggSGlnaCBUZWNoIE1pZGRsZSBBdmVudWUgT25lLCBIaWdoIFRlY2ggSW5kdXN0cmlhbCBQYXJrLCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworOUMtNDUtNjMgICAoaGV4KQkJRElNRVAgU2lzdGVtYXMKKzlDNDU2MyAgICAgKGJhc2UgMTYpCQlESU1FUCBTaXN0ZW1hcworCQkJCUF2LiBNT2ZhcnJlaiwgODQwCisJCQkJU2FvIFBhdWxvIFNQIDA1MzExMDAwCisJCQkJQlJBWklMCisKKzlDLTRBLTdCICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCis5QzRBN0IgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSBPdSA5MDU5MAorCQkJCUZJTkxBTkQKKworOUMtNEUtMjAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworOUM0RTIwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworOUMtNEUtOEUgICAoaGV4KQkJQUxUIFN5c3RlbXMgTHRkCis5QzRFOEUgICAgIChiYXNlIDE2KQkJQUxUIFN5c3RlbXMgTHRkCisJCQkJUG9Cb3ggMTcKKwkJCQlIZWxzaW5raSAgMDA3NjEKKwkJCQlGSU5MQU5ECisKKzlDLTU1LUI0ICAgKGhleCkJCUkuUy5FLiBTLnIubC4KKzlDNTVCNCAgICAgKGJhc2UgMTYpCQlJLlMuRS4gUy5yLmwuCisJCQkJVmlhIGRlbGxhIENhbmFwaWdsaWEgNQorCQkJCU1pZ2xpYXJpbm8gUGlzYW5vIFBJU0EgNTYwMTAKKwkJCQlJVEFMWQorCis5Qy01Qi05NiAgIChoZXgpCQlOTVIgQ29ycG9yYXRpb24KKzlDNUI5NiAgICAgKGJhc2UgMTYpCQlOTVIgQ29ycG9yYXRpb24KKwkJCQkzRiBFc3ByaXQgQnVpbGQuLDEtMy02IE5pc2hpLU5pcHBvcmkKKwkJCQlBcmFrYXdhLUt1IFRva3lvIDExNi0wMDEzCisJCQkJSkFQQU4KKworOUMtNUQtOTUgICAoaGV4KQkJVlRDIEVsZWN0cm9uaWNzIENvcnAuCis5QzVEOTUgICAgIChiYXNlIDE2KQkJVlRDIEVsZWN0cm9uaWNzIENvcnAuCisJCQkJNUYsTm8uMjEsU2VjLjYsWmhvbmd4aWFvIEUuUmQuLE5hbmdhbmcgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNTc1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis5Qy01RS03MyAgIChoZXgpCQlDYWxpYnJlIFVLIEx0ZAorOUM1RTczICAgICAoYmFzZSAxNikJCUNhbGlicmUgVUsgTHRkCisJCQkJQ29ybndhbGwgSG91c2UKKwkJCQlDb3Jud2FsbCBUZXJyYWNlCisJCQkJQnJhZGZvcmQgV2VzdCBZb3Jrc2hpcmUgQkQ4IDdKUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzlDLTY0LTVFICAgKGhleCkJCUhhcm1hbiBDb25zdW1lciBHcm91cAorOUM2NDVFICAgICAoYmFzZSAxNikJCUhhcm1hbiBDb25zdW1lciBHcm91cAorCQkJCTg1MDAgQmFsYm9hIEJsdmQKKwkJCQlOb3J0aHJpZGdlIENBIDkxMzI5CisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy02QS1CRSAgIChoZXgpCQlRRUVTIEFwUy4KKzlDNkFCRSAgICAgKGJhc2UgMTYpCQlRRUVTIEFwUy4KKwkJCQlOYXZlcmxhbmQgMzEsIDIudHYKKwkJCQlHbG9zdHJ1cCBIb3ZlZHN0YWRlbiAyNjAwCisJCQkJREVOTUFSSworCis5Qy03NS0xNCAgIChoZXgpCQlXaWxkaXggc3JsCis5Qzc1MTQgICAgIChiYXNlIDE2KQkJV2lsZGl4IHNybAorCQkJCWxvYy4gTGUgQmFzc2UsIDMKKwkJCQlUcmVudG8gVE4gMzgxMDAKKwkJCQlJVEFMWQorCis5Qy03Ny1BQSAgIChoZXgpCQlOQURBU05WCis5Qzc3QUEgICAgIChiYXNlIDE2KQkJTkFEQVNOVgorCQkJCTIyMDMsIFQtZG9uZywgUG9vbmdsaW0gSS13b24gUGx1cworCQkJCVNlb2h5ZW9uLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjMtODYyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzlDLTdCLUQyICAgKGhleCkJCU5FT0xBQiBDb252ZXJnZW5jZQorOUM3QkQyICAgICAoYmFzZSAxNikJCU5FT0xBQiBDb252ZXJnZW5jZQorCQkJCTRGIFl1anVuZyBibGRnLiwKKwkJCQlTZW9jaG8tZG9uZywgU2VvY2hvLWd1CisJCQkJU2VvdWwgIDEzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworOUMtODAtN0QgICAoaGV4KQkJU1lTQ0FCTEUgS29yZWEgSW5jLgorOUM4MDdEICAgICAoYmFzZSAxNikJCVNZU0NBQkxFIEtvcmVhIEluYy4KKwkJCQkyRiBLQU1BIEJsZGcgMTQ2MS0xNSBTZWNoby0zZG9uZyBTZW9jaG8tR3UKKwkJCQlTZW91bCAgMTM3LTcyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis5Qy04RS05OSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzlDOEU5OSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworOUMtOTMtNEUgICAoaGV4KQkJWGVyb3ggQ29ycG9yYXRpb24KKzlDOTM0RSAgICAgKGJhc2UgMTYpCQlYZXJveCBDb3Jwb3JhdGlvbgorCQkJCU1haWwgU3RvcCAwMjE0IC0gN0UKKwkJCQk4MDAgUGhpbGxpcHMgUm9hZAorCQkJCVdlYnN0ZXIgTlkgMTQ1ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzlDLTk1LUY4ICAgKGhleCkJCVNtYXJ0RG9vciBTeXN0ZW1zLCBMTEMKKzlDOTVGOCAgICAgKGJhc2UgMTYpCQlTbWFydERvb3IgU3lzdGVtcywgTExDCisJCQkJNTcxMS1BIENlbnRlciBMYW5lCisJCQkJRmFsbHMgQ2h1cmNoIFZpcmdpbmlhIDIyMDQxCisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy1BRC1FRiAgIChoZXgpCQlPYmloYWkgVGVjaG5vbG9neSwgSW5jLgorOUNBREVGICAgICAoYmFzZSAxNikJCU9iaWhhaSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTk2MzggU3RldmVucyBDcmVlayBCbHZkCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy1BRi1DQSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis5Q0FGQ0EgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy1CMi0wNiAgIChoZXgpCQlQUk9DRU5URUMKKzlDQjIwNiAgICAgKGJhc2UgMTYpCQlQUk9DRU5URUMKKwkJCQlUdXJmc2NoaXBwZXIgNDEKKwkJCQlXYXRlcmluZ2VuIFp1aWQgSG9sbGFuZCAyMjkySkMKKwkJCQlORVRIRVJMQU5EUworCis5Qy1DMC03NyAgIChoZXgpCQlQcmludENvdW50cywgTExDCis5Q0MwNzcgICAgIChiYXNlIDE2KQkJUHJpbnRDb3VudHMsIExMQworCQkJCTUxMDkgVyBMZW1vbiBTdAorCQkJCVRhbXBhIEZMIDMzNjA5CisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy1DMC1EMiAgIChoZXgpCQlDb25kdWN0aXgtV2FtcGZsZXIgQUcKKzlDQzBEMiAgICAgKGJhc2UgMTYpCQlDb25kdWN0aXgtV2FtcGZsZXIgQUcKKwkJCQlSaGVpbnN0cmFzc2UgMjcrMzMKKwkJCQlXZWlsIGFtIFJoZWluIEJhZGVuLVfvv71ydHRlbWJlcmcgRC03OTU3NgorCQkJCUdFUk1BTlkKKworOUMtQ0QtODIgICAoaGV4KQkJQ0hFTkcgVUVJIFBSRUNJU0lPTiBJTkRVU1RSWSBDTy4sTFRECis5Q0NEODIgICAgIChiYXNlIDE2KQkJQ0hFTkcgVUVJIFBSRUNJU0lPTiBJTkRVU1RSWSBDTy4sTFRECisJCQkJTm8uMTgsIENodW5nIFNoYW4gUmQuLCBUdS1DaGVuZyBJbmR1c3RyeSBQYXJrIAorCQkJCVR1IENoZW5nIENpdHkgVGFpcGVpIEhzaWVuIDIzNjgwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis5Qy1FQi1FOCAgIChoZXgpCQlCaXpMaW5rIChLdW5zaGFuKSBDby4sTHRkCis5Q0VCRTggICAgIChiYXNlIDE2KQkJQml6TGluayAoS3Vuc2hhbikgQ28uLEx0ZAorCQkJCU5vLjE2OCxOYW5oZSBSb2FkLEVjb25vbWljICZhbXA7IFRlY2hub2xvZ2ljYWwgRGV2ZWxvcG1lbnQgWm9uZSwKKwkJCQlLdW5zaGFuIENpdHkgSmlhbmdzdSBQcm92aW5jZSAyMTUzMDAKKwkJCQlDSElOQQorCis5Qy1GNi0xQSAgIChoZXgpCQlVVEMgRmlyZSBhbmQgU2VjdXJpdHkKKzlDRjYxQSAgICAgKGJhc2UgMTYpCQlVVEMgRmlyZSBhbmQgU2VjdXJpdHkKKwkJCQkyOTU1IFJlZCBIaWxsIEF2ZS4KKwkJCQlDb3N0YSBNZXNhIENBIDkyNjI2CisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy1GOS0zOCAgIChoZXgpCQlBUkVWQSBOUCBHbWJICis5Q0Y5MzggICAgIChiYXNlIDE2KQkJQVJFVkEgTlAgR21iSAorCQkJCVNlbGlnZW5zdGFlZHRlciBTdHIuIDEwMAorCQkJCURlcHQuIFBUQ0RWLUcKKwkJCQlLYXJsc3RlaW4gR2VybWFueSA2Mzc5MQorCQkJCUdFUk1BTlkKKworOUMtRkYtQkUgICAoaGV4KQkJT1RTTCBJbmMuCis5Q0ZGQkUgICAgIChiYXNlIDE2KQkJT1RTTCBJbmMuCisJCQkJSEFOUk9LVSBCbGRnLiAyRiwgMi0xLTIKKwkJCQlLYWJ1a2ktQ2hvCisJCQkJU2hpbmp1a3Uta3UgVG9reW8gMTYwLTAwMjEKKwkJCQlKQVBBTgorCitBMC0wNy05OCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCitBMDA3OTggICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCVVOSVRFRCBTVEFURVMKKworQTAtMEItQkEgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPLU1FQ0hBTklDUworQTAwQkJBICAgICAoYmFzZSAxNikJCVNBTVNVTkcgRUxFQ1RSTy1NRUNIQU5JQ1MKKwkJCQlTdXdvbi1TaSwgR3llb25nZ2lfRG8sIAorCQkJCVN1d29uICA0NDMtNzQzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLTE2LTVDICAgKGhleCkJCVRhbmdvVGVjIEx0ZC4KK0EwMTY1QyAgICAgKGJhc2UgMTYpCQlUYW5nb1RlYyBMdGQuCisJCQkJTWFsaGEgVGVjaG5vbG9neSBQYXJrCisJCQkJSmVydXNhbGVtICA5Njk1MQorCQkJCUlTUkFFTAorCitBMC0xOC01OSAgIChoZXgpCQlTaGVuemhlbiBZaWRhc2hpIEVsZWN0cm9uaWNzIENvIEx0ZAorQTAxODU5ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFlpZGFzaGkgRWxlY3Ryb25pY3MgQ28gTHRkCisJCQkJQnVpbGRpbmcgQTEwLCBGdWthbmcgSW5kdXN0cmlhbCBab25lCisJCQkJRnVtaW5nIFZpbGxhZ2UsR3VhbmxhbiBUb3duLCBCYW8nQW4KKwkJCQlTaGVuemhlbiAgR3Vhbmdkb25nICA1MTgxMTAKKwkJCQlDSElOQQorCitBMC0yMS1CNyAgIChoZXgpCQlORVRHRUFSCitBMDIxQjcgICAgIChiYXNlIDE2KQkJTkVUR0VBUgorCQkJCTM1MCBFQVNUIFBMVU1FUklBIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLTIzLTFCICAgKGhleCkJCVRlbGVDb21wIFImYW1wO0QgQ29ycC4KK0EwMjMxQiAgICAgKGJhc2UgMTYpCQlUZWxlQ29tcCBSJmFtcDtEIENvcnAuCisJCQkJMTAyIFNXIE9yYW5nZSBCbG9zc29tCisJCQkJTGFrZSBDaXR5IEZsb3JpZGEgMzIwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLTJFLUYzICAgKGhleCkJCVVuaXRlZCBJbnRlZ3JhdGVkIFNlcnZpY2VzIENvLiwgTGVkLgorQTAyRUYzICAgICAoYmFzZSAxNikJCVVuaXRlZCBJbnRlZ3JhdGVkIFNlcnZpY2VzIENvLiwgTGVkLgorCQkJCTVGIE5vIDMgTGFuZSA3IFBhY2thbyBSb2FkIEhzaW50aWVuCisJCQkJVGFpcGVpIEhzaWVuICAyMzE0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQTAtMzYtOUYgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KK0EwMzY5RiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworQTAtMzYtRkEgICAoaGV4KQkJRXR0dXMgUmVzZWFyY2ggTExDCitBMDM2RkEgICAgIChiYXNlIDE2KQkJRXR0dXMgUmVzZWFyY2ggTExDCisJCQkJMTA0MyBOIFNob3JlbGluZSBCbHZkCisJCQkJU3VpdGUgMTAwCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworQTAtM0EtNzUgICAoaGV4KQkJUFNTIEJlbGdpdW0gTi5WLgorQTAzQTc1ICAgICAoYmFzZSAxNikJCVBTUyBCZWxnaXVtIE4uVi4KKwkJCQlIb29ndmVsZCA1MAorCQkJCURlbmRlcm1vbmRlICA5MjAwCisJCQkJQkVMR0lVTQorCitBMC00MC0yNSAgIChoZXgpCQlBY3Rpb25jYWJsZSwgSW5jLgorQTA0MDI1ICAgICAoYmFzZSAxNikJCUFjdGlvbmNhYmxlLCBJbmMuCisJCQkJOTk4IFdlc3RseW5uIFdheQorCQkJCVN1aXRlIDQKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLTQwLTQxICAgKGhleCkJCVNBTVdPTkZBIENvLixMdGQuCitBMDQwNDEgICAgIChiYXNlIDE2KQkJU0FNV09ORkEgQ28uLEx0ZC4KKwkJCQk0NzAtNSwgTW9vbmh5dW4yLURvbmcKKwkJCQlOYW0tR3UsIAorCQkJCUJ1c2FuICA2MDgtMDQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLTRFLTA0ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitBMDRFMDQgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1OTAKKwkJCQlGSU5MQU5ECisKK0EwLTU1LURFICAgKGhleCkJCVBhY2UgcGxjCitBMDU1REUgICAgIChiYXNlIDE2KQkJUGFjZSBwbGMKKwkJCQlTYWx0cyBNaWxsCisJCQkJVmljdG9yaWEgUm9hZAorCQkJCUJyYWRmb3JkIFdlc3QgWW9ya3NoaXJlIEJEMTggM0xGCisJCQkJVU5JVEVEIEtJTkdET00KKworQTAtNTktM0EgICAoaGV4KQkJVi5ELlMuIFZpZGVvIERpc3BsYXkgU3lzdGVtcyBzcmwKK0EwNTkzQSAgICAgKGJhc2UgMTYpCQlWLkQuUy4gVmlkZW8gRGlzcGxheSBTeXN0ZW1zIHNybAorCQkJCVZpYSBEZWwgUGFudGFubyA3MQorCQkJCVNDQU5ESUNDSSBGSSA1MDAxOAorCQkJCUlUQUxZCisKK0EwLTVELUMxICAgKGhleCkJCVRNQ1QgQ28uLCBMVEQuCitBMDVEQzEgICAgIChiYXNlIDE2KQkJVE1DVCBDby4sIExURC4KKwkJCQk1Ri01NjEsICMxOS0xMSBTYW5DaG9uZyBSZC4KKwkJCQlOYW5HYW5nIERpc3RyaWN0LgorCQkJCVRhaXBlaSAgMTE1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitBMC01RC1FNyAgIChoZXgpCQlESVJFQ1RWLCBJbmMuCitBMDVERTcgICAgIChiYXNlIDE2KQkJRElSRUNUViwgSW5jLgorCQkJCTIyMzAgRS4gSW1wZXJpYWwgSHd5CisJCQkJRWwgU2VndW5kbyBDQSA5MDI0NQorCQkJCVVOSVRFRCBTVEFURVMKKworQTAtNjktODYgICAoaGV4KQkJV2VsbGF2IFRlY2hub2xvZ2llcyBMdGQKK0EwNjk4NiAgICAgKGJhc2UgMTYpCQlXZWxsYXYgVGVjaG5vbG9naWVzIEx0ZAorCQkJCTE1RiBEZXNheSBCdWlsZGluZworCQkJCU5vLjEyIFl1bnNoYW4gV2VzdCBBdmUuCisJCQkJSHVpemhvdSBHdWFuZ2RvbmcgNTE2MDAzCisJCQkJQ0hJTkEKKworQTAtNkEtMDAgICAoaGV4KQkJVmVyaWxpbmsgQ29ycG9yYXRpb24KK0EwNkEwMCAgICAgKGJhc2UgMTYpCQlWZXJpbGluayBDb3Jwb3JhdGlvbgorCQkJCTEyNyBKZXRwbGV4IENpcmNsZQorCQkJCU1hZGlzb24gQUwgMzU3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLTcxLUE5ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitBMDcxQTkgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1OTAKKwkJCQlGSU5MQU5ECisKK0EwLTczLTMyICAgKGhleCkJCUNhc2htYXN0ZXIgSW50ZXJuYXRpb25hbCBMaW1pdGVkCitBMDczMzIgICAgIChiYXNlIDE2KQkJQ2FzaG1hc3RlciBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKwkJCQlGYWlyeWtpcmsgUm9hZAorCQkJCVJvc3l0aCBGaWZlIEtZMTEgMlFRCisJCQkJVU5JVEVEIEtJTkdET00KKworQTAtNzUtOTEgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCitBMDc1OTEgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLTgyLUM3ICAgKGhleCkJCVAuVC5JIENvLixMVEQKK0EwODJDNyAgICAgKGJhc2UgMTYpCQlQLlQuSSBDby4sTFRECisJCQkJMS01LTEsVHN1cnVtaWRhbgorCQkJCUtvcml5YW1hLXNoaSBGdWt1c2hpbWEgOTYzLTg4NjEKKwkJCQlKQVBBTgorCitBMC04OC1CNCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKK0EwODhCNCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKK0EwLThDLTlCICAgKGhleCkJCVh0cmVtZSBUZWNobm9sb2dpZXMgQ29ycAorQTA4QzlCICAgICAoYmFzZSAxNikJCVh0cmVtZSBUZWNobm9sb2dpZXMgQ29ycAorCQkJCTIwMCA0NjE2IFZhbGlhbnQgRHIgTlcKKwkJCQlDYWxnYXJ5IEFCIFQzQTBYOQorCQkJCUNBTkFEQQorCitBMC05OC0wNSAgIChoZXgpCQlPcGVuVm94IENvbW11bmljYXRpb24gQ28gTHRkCitBMDk4MDUgICAgIChiYXNlIDE2KQkJT3BlblZveCBDb21tdW5pY2F0aW9uIENvIEx0ZAorCQkJCUYyLEJ1aWxkaW5nIE5vLjE0LFNoYW5nc2hhIFNjaWVuY2UgJgorCQkJCVRlY2hub2xvZ3kgUGFyayxOby45MjgzLEJpbmhlIFJvYWQKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDMxCisJCQkJQ0hJTkEKKworQTAtOTgtRUQgICAoaGV4KQkJU2hhbmRvbmcgSW50ZWxsaWdlbnQgT3B0aWNhbCBDb21tdW5pY2F0aW9uIERldmVsb3BtZW50IENvLiwgTHRkLgorQTA5OEVEICAgICAoYmFzZSAxNikJCVNoYW5kb25nIEludGVsbGlnZW50IE9wdGljYWwgQ29tbXVuaWNhdGlvbiBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKwkJCQlOby4xNDkgWWluZ2N1aSBSb2FkLFRvcmNoIFRvd24sQWR2YW5jZWQgVGVjaG5pcXVlIERldmVsb3BtZW50IEFyZWEKKwkJCQlKaW5pbmcgU2hhbmRvbmcgMjcyMDIzCisJCQkJQ0hJTkEKKworQTAtOUEtNUEgICAoaGV4KQkJVGltZSBEb21haW4KK0EwOUE1QSAgICAgKGJhc2UgMTYpCQlUaW1lIERvbWFpbgorCQkJCTMzMCBXeW5uIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJSHVudHN2aWxsZSBBTCAzNTgwNQorCQkJCVVOSVRFRCBTVEFURVMKKworQTAtQTctNjMgICAoaGV4KQkJUG9seXRyb24gVmVydHJpZWIgR21iSAorQTBBNzYzICAgICAoYmFzZSAxNikJCVBvbHl0cm9uIFZlcnRyaWViIEdtYkgKKwkJCQlMYW5nd2llc2Vud2VnIDY0LTcxCisJCQkJQmFkIFdpbGRiYWQgQmFkZW4tV3VlcnR0ZW1iZXJnIDc1MzIzCisJCQkJR0VSTUFOWQorCitBMC1BQS1GRCAgIChoZXgpCQlFcmFUaGluayBUZWNobm9sb2dpZXMgQ29ycC4KK0EwQUFGRCAgICAgKGJhc2UgMTYpCQlFcmFUaGluayBUZWNobm9sb2dpZXMgQ29ycC4KKwkJCQkyODkgQmlzaGVuZyBSb2FkIEJ1aWxkaW5nIDQsRmxvb3IgNCAKKwkJCQlTaGFuZ2hhaSAgMjAxMjA0CisJCQkJQ0hJTkEKKworQTAtQjUtREEgICAoaGV4KQkJSG9uZ0tvbmcgVEhURiBDby4sIEx0ZAorQTBCNURBICAgICAoYmFzZSAxNikJCUhvbmdLb25nIFRIVEYgQ28uLCBMdGQKKwkJCQkyRixTZWN0b3IgQyBvZiBUc2luZ2h1YSBVbml2ZXJzaXR5IEFjYWRlbXksIAorCQkJCUhpLVRlY2ggUGFyayhTb3V0aCksTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitBMC1CNi02MiAgIChoZXgpCQlBY3V0dmlzdGEgSW5ub3ZhdGlvbiBDby4sIEx0ZC4KK0EwQjY2MiAgICAgKGJhc2UgMTYpCQlBY3V0dmlzdGEgSW5ub3ZhdGlvbiBDby4sIEx0ZC4KKwkJCQkyRi0xLCBOby4gMjAgQWxsZXkgMSwgTGFuZSA3NjgsIFNlYy4gNAorCQkJCVBhLVRlaCBSZC4sIAorCQkJCVRhaXBlaSBDaXR5ICAxMTU3NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQTAtQjktRUQgICAoaGV4KQkJU2t5dGFwCitBMEI5RUQgICAgIChiYXNlIDE2KQkJU2t5dGFwCisJCQkJNzEwIDJuZCBBdmUgU3VpdGUgMTEzMAorCQkJCVNlYXR0bGUgV0EgOTgxMDQKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLUJGLUE1ICAgKGhleCkJCUNPUkVTWVMKK0EwQkZBNSAgICAgKGJhc2UgMTYpCQlDT1JFU1lTCisJCQkJMjY3LTEgTm9uaHl1bmRvbmcgR2FuZ25hbWd1CisJCQkJSksgQmxkLiwgIzMwMQorCQkJCVNlb3VsICAxMzUtODMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLURELUU1ICAgKGhleCkJCVNIQVJQIENPUlBPUkFUSU9OCitBMERERTUgICAgIChiYXNlIDE2KQkJU0hBUlAgQ09SUE9SQVRJT04KKwkJCQkyMi0yMixOYWdhaWtlLWNobywKKwkJCQlBYmVuby1LVSwKKwkJCQlPc2FrYSwgIDU0NS04NTIyLAorCQkJCUpBUEFOCisKK0EwLURFLTA1ICAgKGhleCkJCUpTQyAiSXJiaXMtVCIKK0EwREUwNSAgICAgKGJhc2UgMTYpCQlKU0MgIklyYmlzLVQiCisJCQkJNSwgTGl0ZXluYXlhIHN0cmVldAorCQkJCVR1bGEgIDMwMDAwMgorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCitBMC1FMi05NSAgIChoZXgpCQlEQVQgU3lzdGVtIENvLixMdGQKK0EwRTI5NSAgICAgKGJhc2UgMTYpCQlEQVQgU3lzdGVtIENvLixMdGQKKwkJCQlHdW4gU2FuIEZyZWUgVHJhZGUgQXJlYSA1MTEtMSAsCisJCQkJT3NpayBkbyBkb25nIEd1bnNhbiBzaSBKZW9uIEJ1ayAKKwkJCQk1NzMtNTQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLUU5LURCICAgKGhleCkJCU5pbmdibyBGcmVlV2luZ3MgVGVjaG5vbG9naWVzIENvLixMdGQKK0EwRTlEQiAgICAgKGJhc2UgMTYpCQlOaW5nYm8gRnJlZVdpbmdzIFRlY2hub2xvZ2llcyBDby4sTHRkCisJCQkJUm9vbSAxMTA3LTExMDgsIE5vIDI5OCBYdWVTaGkgUm9hZCBZaW56aG91IERpc3RyaWN0IE5pbmdibywgCisJCQkJTmluZ2JvIFpoZWppYW5nIDMxNTAwMAorCQkJCUNISU5BCisKK0EwLUYyLTE3ICAgKGhleCkJCUdFIE1lZGljYWwgU3lzdGVtKENoaW5hKSBDby4sIEx0ZC4gCitBMEYyMTcgICAgIChiYXNlIDE2KQkJR0UgTWVkaWNhbCBTeXN0ZW0oQ2hpbmEpIENvLiwgTHRkLiAKKwkJCQlOby4xOSwgQ2hhbmdKaWFuZyBSb2FkIAorCQkJCVd1eGkgSmlhbmdzdSAyMTQwMjggCisJCQkJQ0hJTkEKKworQTQtMEMtQzMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQTQwQ0MzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtMTMtNEUgICAoaGV4KQkJTHV4dWwgV2lyZWxlc3MKK0E0MTM0RSAgICAgKGJhc2UgMTYpCQlMdXh1bCBXaXJlbGVzcworCQkJCTM1NyBTIDY3MCBXCisJCQkJTGluZG9uIFVUIDg0MDQyCisJCQkJVU5JVEVEIFNUQVRFUworCitBNC0xQi1DMCAgIChoZXgpCQlGYXN0ZWMgSW1hZ2luZyBDb3Jwb3JhdGlvbgorQTQxQkMwICAgICAoYmFzZSAxNikJCUZhc3RlYyBJbWFnaW5nIENvcnBvcmF0aW9uCisJCQkJMTcxNTAgVmlhIERlbCBDYW1wbworCQkJCVN1aXRlIDMwMQorCQkJCVNhbiBEaWVnbyBDYWxpZm9ybmlhIDkyMTI3CisJCQkJVU5JVEVEIFNUQVRFUworCitBNC0yMS04QSAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKK0E0MjE4QSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlDQVJSRVRFUkEgQkFTRSBBRVJFQSAjIDU4NTAKKwkJCQlaYXBvcGFuIEphbGlzY28gNDQxMzAKKwkJCQlNRVhJQ08KKworQTQtMjQtQjMgICAoaGV4KQkJRmxhdEZyb2cgTGFib3JhdG9yaWVzIEFCCitBNDI0QjMgICAgIChiYXNlIDE2KQkJRmxhdEZyb2cgTGFib3JhdG9yaWVzIEFCCisJCQkJTWFnaXN0cmF0c3bvv71nZW4gMTAKKwkJCQlMdW5kIFNrYW5lIDIyNjQzCisJCQkJU1dFREVOCisKK0E0LTMzLUQxICAgKGhleCkJCUZpYnJsaW5rIENvbW11bmljYXRpb25zIENvLixMdGQuCitBNDMzRDEgICAgIChiYXNlIDE2KQkJRmlicmxpbmsgQ29tbXVuaWNhdGlvbnMgQ28uLEx0ZC4KKwkJCQkyOEYgQWdlcyBXZWFsdGggV29ybGQsIE5vLjEgSGFuZ2ZlbmcgUm9hZAorCQkJCUZlbmd0YWkgRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwNzAKKwkJCQlDSElOQQorCitBNC0zOC1GQyAgIChoZXgpCQlQbGFzdGljIExvZ2ljCitBNDM4RkMgICAgIChiYXNlIDE2KQkJUGxhc3RpYyBMb2dpYworCQkJCTY1MCBDYXN0cm8gU3QuLCBTdWl0ZSA1MDAKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCitBNC00Qi0xNSAgIChoZXgpCQlTdW4gQ3VwaWQgVGVjaG5vbG9neSAoSEspIExURAorQTQ0QjE1ICAgICAoYmFzZSAxNikJCVN1biBDdXBpZCBUZWNobm9sb2d5IChISykgTFRECisJCQkJUm9vbSAxMjAxLTMsIDEyL0YuLCBUb3dlciA2CisJCQkJQ2hpbmEgSG9uZyBLb25nIENpdHkKKwkJCQlUc2ltIFNoYSBUc3VpICAKKwkJCQlIT05HIEtPTkcKKworQTQtNTAtNTUgICAoaGV4KQkJYnVzd2FyZS5kZQorQTQ1MDU1ICAgICAoYmFzZSAxNikJCWJ1c3dhcmUuZGUKKwkJCQlMb2Vzc25pdHpncnVuZHN0cmFzc2UgMTE1YQorCQkJCU1vcml0emJ1cmcgU2F4b255IDAxNDY4CisJCQkJR0VSTUFOWQorCitBNC01Ni0xQiAgIChoZXgpCQlNQ09UIENvcnBvcmF0aW9uCitBNDU2MUIgICAgIChiYXNlIDE2KQkJTUNPVCBDb3Jwb3JhdGlvbgorCQkJCVlvZ29oaWdhc2hpIDEtNS0xMgorCQkJCU1hdHN1eWFtYSBjaXR5IEVoaW1lIHByZWZlY3R1cmUgNzkwLTAwNDQKKwkJCQlKQVBBTgorCitBNC01QS0xQyAgIChoZXgpCQlzbWFydC1lbGVjdHJvbmljIEdtYkgKK0E0NUExQyAgICAgKGJhc2UgMTYpCQlzbWFydC1lbGVjdHJvbmljIEdtYkgKKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDI5CisJCQkJU3QuIEdlb3JnZW4gQmFkZW4tV3VlcnR0ZW1iZXJnIDc4MTIyCisJCQkJR0VSTUFOWQorCitBNC01Qy0yNyAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KK0E0NUMyNyAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCitBNC02Ny0wNiAgIChoZXgpCQlBcHBsZSBJbmMKK0E0NjcwNiAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0E0LTc5LUU0ICAgKGhleCkJCUtMSU5GTyBDb3JwCitBNDc5RTQgICAgIChiYXNlIDE2KQkJS0xJTkZPIENvcnAKKwkJCQkzMDEgOTIzIHdvbHB5dW5nLWRvbmcKKwkJCQlzZW8gZ3UKKwkJCQlEYWVqZW9uICAzMDItODUyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0E0LTdBLUE0ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCitBNDdBQTQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCitBNC03Qy0xRiAgIChoZXgpCQlHbG9iYWwgTWljcm93YXZlIFN5c3RlbXMgSW5jLgorQTQ3QzFGICAgICAoYmFzZSAxNikJCUdsb2JhbCBNaWNyb3dhdmUgU3lzdGVtcyBJbmMuCisJCQkJMTkxNiBQYWxvbWFyIE9ha3MgV2F5LCBTdWl0ZSAxMDAKKwkJCQlDYXJsc2JhZCBDQSA5MjAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtODUtNkIgICAoaGV4KQkJUSBFbGVjdHJvbmljcyBMdGQKK0E0ODU2QiAgICAgKGJhc2UgMTYpCQlRIEVsZWN0cm9uaWNzIEx0ZAorCQkJCUJlY2sgSG91c2UsIEhhd2tzd29ydGggUm9hZAorCQkJCUhvcnNmb3J0aAorCQkJCUxlZWRzIFdlc3QgWW9ya3NoaXJlIExTMTggNEpQCisJCQkJVU5JVEVEIEtJTkdET00KKworQTQtOTktODEgICAoaGV4KQkJRnVKaWFuIEVsaXRlIFBvd2VyIFRlY2ggQ08uLExURC4KK0E0OTk4MSAgICAgKGJhc2UgMTYpCQlGdUppYW4gRWxpdGUgUG93ZXIgVGVjaCBDTy4sTFRELgorCQkJCTh0aCBGbG9vcu+/ve+/vTU2IEd1YW5SaSBSb2FkIAorCQkJCVNvZnR3YXJlIFNxdWFyZSAoUGhhc2UgVHdvKSwgU2ltaW5nIERpc3RyaWN0IAorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA5CisJCQkJQ0hJTkEKKworQTQtOUItMTMgICAoaGV4KQkJQnVycm91Z2hzIFBheW1lbnQgU3lzdGVtcywgSW5jLgorQTQ5QjEzICAgICAoYmFzZSAxNikJCUJ1cnJvdWdocyBQYXltZW50IFN5c3RlbXMsIEluYy4KKwkJCQk0MTEwMCBQbHltb3V0aCBSb2FkCisJCQkJUGx5bW91dGggTWljaGlnYW4gNDgxNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0E0LUE4LTBGICAgKGhleCkJCVNoZW56aGVuIENvc2hpcCBFbGVjdHJvbmljcyBDby4sIEx0ZC4KK0E0QTgwRiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBDb3NoaXAgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJUmFpbmJvdyBCbGRnLiwgTm9ydGgsIEhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrLCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworQTQtQUQtMDAgICAoaGV4KQkJUmFnc2RhbGUgVGVjaG5vbG9neQorQTRBRDAwICAgICAoYmFzZSAxNikJCVJhZ3NkYWxlIFRlY2hub2xvZ3kKKwkJCQk1MDUgRWNobyBMYW5lCisJCQkJUE8gQm94IDEyMDUwNworCQkJCUJpZyBCZWFyIExha2UgQ0EgOTIzMTUKKwkJCQlVTklURUQgU1RBVEVTCisKK0E0LUFELUI4ICAgKGhleCkJCVZpdGVjIEdyb3VwLCBDYW1lcmEgRHluYW1pY3MgTHRkCitBNEFEQjggICAgIChiYXNlIDE2KQkJVml0ZWMgR3JvdXAsIENhbWVyYSBEeW5hbWljcyBMdGQKKwkJCQlXaWxsaWFtIFZpbnRlbiBCdWlsZGluZworCQkJCVdlc3Rlcm4gV2F5CisJCQkJQnVyeSBTdCBFZG11bmRzIFN1ZmZvbGsgSVAzMyAzVEIKKwkJCQlVTklURUQgS0lOR0RPTQorCitBNC1BRS05QSAgIChoZXgpCQlNYWVzdHJvIFdpcmVsZXNzIFNvbHV0aW9ucyBsdGQuCitBNEFFOUEgICAgIChiYXNlIDE2KQkJTWFlc3RybyBXaXJlbGVzcyBTb2x1dGlvbnMgbHRkLgorCQkJCTM2L0YKKwkJCQkxMTggQ29ubmF1Z2h0IFJvYWQgV2VzdAorCQkJCVNoZXVuZyBXYW4gIAorCQkJCUhPTkcgS09ORworCitBNC1CMS0yMSAgIChoZXgpCQlBcmFudGlhIDIwMTAgUy5MLgorQTRCMTIxICAgICAoYmFzZSAxNikJCUFyYW50aWEgMjAxMCBTLkwuCisJCQkJVm9sdGEgZG8gQ2FzdHJvIHMvbgorCQkJCVNhbnRpYWdvIGRlIENvbXBvc3RlbGEgQSBDb3J177+9YSAxNTcwNgorCQkJCVNQQUlOCisKK0E0LUIxLTk3ICAgKGhleCkJCUFwcGxlLCBJbmMuCitBNEIxOTcgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gY2EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0E0LUIxLUVFICAgKGhleCkJCUguIFpBTkRFUiBHbWJIICYgQ28uIEtHCitBNEIxRUUgICAgIChiYXNlIDE2KQkJSC4gWkFOREVSIEdtYkggJiBDby4gS0cKKwkJCQlBbSBHdXQgV29sZiAxNQorCQkJCUFhY2hlbiAgNTIwNzAKKwkJCQlHRVJNQU5ZCisKK0E0LUIyLUE3ICAgKGhleCkJCUFkYXh5cyBTb2x1dGlvbnMgQUcKK0E0QjJBNyAgICAgKGJhc2UgMTYpCQlBZGF4eXMgU29sdXRpb25zIEFHCisJCQkJRWljaHRhbHN0cmFzc2UgNTUKKwkJCQlIb21icmVjaHRpa29uIENIIDg2MzQKKwkJCQlTV0lUWkVSTEFORAorCitBNC1CMy02QSAgIChoZXgpCQlKU0MgU0RPIENocm9tYXRlYworQTRCMzZBICAgICAoYmFzZSAxNikJCUpTQyBTRE8gQ2hyb21hdGVjCisJCQkJOTQsIFN0cm9pdGVsZXkgc3RyZWV0CisJCQkJWW9zaGthci1PbGEgTWFyaSBFbCByZXB1YmxpYyA0MjQwMDAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworQTQtQkEtREIgICAoaGV4KQkJRGVsbCBJbmMuCitBNEJBREIgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrICBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtQkUtNjEgICAoaGV4KQkJRXV0cm9WaXNpb24gU3lzdGVtLCBJbmMuCitBNEJFNjEgICAgIChiYXNlIDE2KQkJRXV0cm9WaXNpb24gU3lzdGVtLCBJbmMuCisJCQkJUm0gNDAzLEJ1aWxkaW5nMzMsTm8uNjgwIEd1aXBpbmdSZCxYdWh1aSwKKwkJCQlTaGFuZ2hhaSAgMjAwMjMzCisJCQkJQ0hJTkEKKworQTQtQzAtRTEgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCitBNEMwRTEgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworQTQtQzItQUIgICAoaGV4KQkJSGFuZ3pob3UgTEVBRC1JVCBJbmZvcm1hdGlvbiAmIFRlY2hub2xvZ3kgQ28uLEx0ZAorQTRDMkFCICAgICAoYmFzZSAxNikJCUhhbmd6aG91IExFQUQtSVQgSW5mb3JtYXRpb24gJiBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlGMiBCdWlsZGVyIEIsWGlkb21lbiBSb2FkIE5PLjIyCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworQTQtRDEtRDEgICAoaGV4KQkJRUNPdGFsaXR5IE5vcnRoIEFtZXJpY2EKK0E0RDFEMSAgICAgKGJhc2UgMTYpCQlFQ090YWxpdHkgTm9ydGggQW1lcmljYQorCQkJCTQzMCBTIDJuZCBBdmVudWUKKwkJCQlQaG9lbml4IEFaIDg1MDAzCisJCQkJVU5JVEVEIFNUQVRFUworCitBNC1EMS1EMiAgIChoZXgpCQlBcHBsZSwgSW5jLgorQTREMUQyICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitBNC1EQS0zRiAgIChoZXgpCQlCaW9uaWNzIENvcnAuCitBNERBM0YgICAgIChiYXNlIDE2KQkJQmlvbmljcyBDb3JwLgorCQkJCTE0MDYgTWFzdGVycyBUb3dlcgorCQkJCTU1MyBEb3doYS1kb25nIE1hcG8tZ3UKKwkJCQlTZW91bCAgMTIxLTc0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBNC1EQi0yRSAgIChoZXgpCQlLaW5nc3BhbiBFbnZpcm9ubWVudGFsIEx0ZAorQTREQjJFICAgICAoYmFzZSAxNikJCUtpbmdzcGFuIEVudmlyb25tZW50YWwgTHRkCisJCQkJMTgwIEdpbGZvcmQgUm9hZAorCQkJCVBvcnRhZG93biBBcm1hZ2ggQlQ2MyA1TEYKKwkJCQlVTklURUQgS0lOR0RPTQorCitBNC1ERS01MCAgIChoZXgpCQlUb3RhbCBXYWx0aGVyIEdtYkgKK0E0REU1MCAgICAgKGJhc2UgMTYpCQlUb3RhbCBXYWx0aGVyIEdtYkgKKwkJCQlGcmFua2Z1cnRlciBSaW5nIDE3CisJCQkJTXVuaWNoICA4MDgwNworCQkJCUdFUk1BTlkKKworQTQtRTMtMkUgICAoaGV4KQkJU2lsaWNvbiAmYW1wOyBTb2Z0d2FyZSBTeXN0ZW1zIEx0ZC4KK0E0RTMyRSAgICAgKGJhc2UgMTYpCQlTaWxpY29uICZhbXA7IFNvZnR3YXJlIFN5c3RlbXMgTHRkLgorCQkJCVNvdXRoIENvdW50eSBCdXNpbmVzcyBQYXJrCisJCQkJTGVvcGFyZHN0b3duIER1YmxpbiAxOAorCQkJCUlSRUxBTkQKKworQTQtRTctRTQgICAoaGV4KQkJQ29ubmV4IEdtYkgKK0E0RTdFNCAgICAgKGJhc2UgMTYpCQlDb25uZXggR21iSAorCQkJCUVsYmVzdHJhc3NlIDEyCisJCQkJT2xkZW5idXJnICAyNjEzNQorCQkJCUdFUk1BTlkKKworQTQtRUQtNEUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCitBNEVENEUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjAwIE4uIFVTIDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCitBNC1FRS01NyAgIChoZXgpCQlTRUlLTyBFUFNPTiBDT1JQT1JBVElPTgorQTRFRTU3ICAgICAoYmFzZSAxNikJCVNFSUtPIEVQU09OIENPUlBPUkFUSU9OCisJCQkJMy0zLTUgT1dBCisJCQkJU1VXQS1TSEkgTkFHQU5PLUtFTiAzOTItODUwMgorCQkJCUpBUEFOCisKK0E4LTFCLTE4ICAgKGhleCkJCVhUUyBDT1JQCitBODFCMTggICAgIChiYXNlIDE2KQkJWFRTIENPUlAKKwkJCQkxMDEyNSBOVyAxMTZUSCBXQVksIFNVSVRFIDUKKwkJCQlNRURMRVkgRkxPUklEQSAzMzE3OAorCQkJCVVOSVRFRCBTVEFURVMKKworQTgtMzktNDQgICAoaGV4KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMKK0E4Mzk0NCAgICAgKGJhc2UgMTYpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYworCQkJCTc2MCBOb3J0aCBNYXJ5IEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworQTgtNTUtNkEgICAoaGV4KQkJUG9ja2V0bmV0IFRlY2hub2xvZ3kgSW5jLgorQTg1NTZBICAgICAoYmFzZSAxNikJCVBvY2tldG5ldCBUZWNobm9sb2d5IEluYy4KKwkJCQlTdWl0ZSBCLCA3Ri4sIE5vLiA1NTAsIFJ1aWUgS3dhbmcgUmQuLCBOZWlodSBEaXN0cmljdCwKKwkJCQlUYWlwZWkgIDExNDI5CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitBOC01Qi1CMCAgIChoZXgpCQlTaGVuemhlbiBEZWhvbyBUZWNobm9sb2d5IENvLixMdGQKK0E4NUJCMCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBEZWhvbyBUZWNobm9sb2d5IENvLixMdGQKKwkJCQk1QyxUaWFuemhhbiBCdWlsZGluZyBUaWFuYW4gQ3liZXJwYXJrLAorCQkJCUZ1dGlhbiBkaXN0cmljdAorCQkJCVNoZW5aaGVuIEd1YW5nIERvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworQTgtNjItQTIgICAoaGV4KQkJSklXVU1FRElBIENPLiwgTFRELgorQTg2MkEyICAgICAoYmFzZSAxNikJCUpJV1VNRURJQSBDTy4sIExURC4KKwkJCQkjOTAyLCBEYWVydWcgVGVjaG5vIFRvd24gMTMndGgsIDY2NAorCQkJCUdhc2FuLWRvbmcKKwkJCQlHZXVtY2hlb24tZ3UgU2VvdWwgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBOC02My1ERiAgIChoZXgpCQlESVNQTO+/vUFJUkUgQ09SUE9SQVRJT04KK0E4NjNERiAgICAgKGJhc2UgMTYpCQlESVNQTO+/vUFJUkUgQ09SUE9SQVRJT04KKwkJCQkxMzAwIFZhbGxleSBIb3VzZSBEciwgU3RlIDEwMAorCQkJCVJvaG5lcnQgUGFyayBDQSA5NDkyOAorCQkJCVVOSVRFRCBTVEFURVMKKworQTgtNkEtNkYgICAoaGV4KQkJUklNCitBODZBNkYgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgNVI5CisJCQkJQ0FOQURBCisKK0E4LTcwLUE1ICAgKGhleCkJCVVuaUNvbW0gSW5jLgorQTg3MEE1ICAgICAoYmFzZSAxNikJCVVuaUNvbW0gSW5jLgorCQkJCTdGLTcsIE5vLiA3MTYsIENodW5nLUNoZW5nIFJvYWQsCisJCQkJQ2h1bmctSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1MDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0E4LTdCLTM5ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitBODdCMzkgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1NzAKKwkJCQlGSU5MQU5ECisKK0E4LTdFLTMzICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCitBODdFMzMgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKK0E4LTg3LTkyICAgKGhleCkJCUJyb2FkYmFuZCBBbnRlbm5hIFRyYWNraW5nIFN5c3RlbXMKK0E4ODc5MiAgICAgKGJhc2UgMTYpCQlCcm9hZGJhbmQgQW50ZW5uYSBUcmFja2luZyBTeXN0ZW1zCisJCQkJODkwMiBWaW5jZW5uZXMgQ2lyY2xlLCBTdWl0ZSBELTIKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyNjgKKwkJCQlVTklURUQgU1RBVEVTCisKK0E4LThDLUVFICAgKGhleCkJCU1pY3JvTWFkZSBHYWxrYSBpIERyb3pkeiBzcC5qLgorQTg4Q0VFICAgICAoYmFzZSAxNikJCU1pY3JvTWFkZSBHYWxrYSBpIERyb3pkeiBzcC5qLgorCQkJCXVsLiBXaWVuaWF3c2tpZWdvIDE2CisJCQkJUGlsYSBXaWVsa29wb2xza2llIDY0LTkyMAorCQkJCVBPTEFORAorCitBOC05Mi0yQyAgIChoZXgpCQlMRyBFbGVjdHJvbmljcworQTg5MjJDICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzCisJCQkJNjAtMzkgLCBLYXNhbi1kb25nLCBHdW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0E4LTkzLUU2ICAgKGhleCkJCUpJQU5HWEkgSklOR0dBTkdTSEFOIENLSU5HIENPTU1VTklDQVRJT04gVEVDSE5PTE9HWSBDTy4sTFRECitBODkzRTYgICAgIChiYXNlIDE2KQkJSklBTkdYSSBKSU5HR0FOR1NIQU4gQ0tJTkcgQ09NTVVOSUNBVElPTiBURUNITk9MT0dZIENPLixMVEQKKwkJCQk1RiwzMDFidWlsZGluZyxUYWlyYW4gSGlnaC10ZWNoIHBhcmssIENoZWdvbmdtaWFvLEZ1dGlhbiB6b25lLAorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyA1MTgwMDAKKwkJCQlDSElOQQorCitBOC05OS01QyAgIChoZXgpCQlhaXpvIGFnCitBODk5NUMgICAgIChiYXNlIDE2KQkJYWl6byBhZworCQkJCUJyYW5kc3RyYXNzZSAzMworCQkJCVNjaGxpZXJlbiAgODk1MgorCQkJCVNXSVRaRVJMQU5ECisKK0E4LTlCLTEwICAgKGhleCkJCWluTW90aW9uIEx0ZC4KK0E4OUIxMCAgICAgKGJhc2UgMTYpCQlpbk1vdGlvbiBMdGQuCisJCQkJVW5pdCAyNzA5IEV4Y2hhbmdlIFRvd2VyIAorCQkJCTMzIFdhbmcgQ2h1aSBSb2FkIO+/vSBLb3dsb29uIEJheSDvv70gS0xOCisJCQkJS0xOCisJCQkJSE9ORyBLT05HCisKK0E4LUIwLUFFICAgKGhleCkJCUxFT05JIAorQThCMEFFICAgICAoYmFzZSAxNikJCUxFT05JIAorCQkJCTM5NDUgRnJlZWRvbSBDaXJjbGUKKwkJCQlTdWl0ZSA1NTAKKwkJCQlTYW50YSBDbGFyYSBDYWxpZm9ybmlhIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCitBOC1CMS1ENCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitBOEIxRDQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitBOC1DMi0yMiAgIChoZXgpCQlUTS1SZXNlYXJjaCBJbmMuCitBOEMyMjIgICAgIChiYXNlIDE2KQkJVE0tUmVzZWFyY2ggSW5jLgorCQkJCUhpeW9zaGkgSG9uY2hvIDEtMTUtNAorCQkJCUtvaG9rdS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyMy0wMDYyCisJCQkJSkFQQU4KKworQTgtQ0ItOTUgICAoaGV4KQkJRUFTVCBCRVNUIENPLiwgTFRELgorQThDQjk1ICAgICAoYmFzZSAxNikJCUVBU1QgQkVTVCBDTy4sIExURC4KKwkJCQk0RixOTy45OCxTSElORyBURUggUk9BRAorCQkJCVNBTiBDSFVORyBDSVRZICBUQUlQRUkgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitBOC1DRS05MCAgIChoZXgpCQlDVkMKK0E4Q0U5MCAgICAgKGJhc2UgMTYpCQlDVkMKKwkJCQlOby4zNjEsUmVuaHVhIFJkLiwKKwkJCQlEYWxpIENpdHkgVGFpY2h1bmcgNDEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitBOC1EMy1DOCAgIChoZXgpCQlXYWNoZW5kb3JmZiBFbGVrdHJvbmlrICBHbWJIICZhbXA7IENvLiBLRworQThEM0M4ICAgICAoYmFzZSAxNikJCVdhY2hlbmRvcmZmIEVsZWt0cm9uaWsgIEdtYkggJmFtcDsgQ28uIEtHCisJCQkJSW5kdXN0cmllc3RyLiA3CisJCQkJR2Vpc2VuaGVpbSAgNjUzNjYKKwkJCQlHRVJNQU5ZCisKK0E4LUUwLTE4ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitBOEUwMTggICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlZcnR0aXBlbGxvbnRpZSA2CisJCQkJT3VsdSAgOTAyMzAKKwkJCQlGSU5MQU5ECisKK0E4LUUzLUVFICAgKGhleCkJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBJbmMuCitBOEUzRUUgICAgIChiYXNlIDE2KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50IEluYy4KKwkJCQkyLTYtMjEgTWluYW1pLUFveWFtYQorCQkJCU1pbmF0by1rdSBUb2t5byAxMDctMDA2MgorCQkJCUpBUEFOCisKK0E4LUYyLTc0ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKK0E4RjI3NCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0E4LUY0LTcwICAgKGhleCkJCUZ1amlhbiBOZXdsYW5kIENvbW11bmljYXRpb24gU2NpZW5jZSBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KK0E4RjQ3MCAgICAgKGJhc2UgMTYpCQlGdWppYW4gTmV3bGFuZCBDb21tdW5pY2F0aW9uIFNjaWVuY2UgVGVjaG5vbG9naWVzIENvLixMdGQuCisJCQkJTmV3bGFuZCBTY2llbmNlICYgVGVjaG5vbG9neSBQYXJrIE5vLjEgUnVqaWFuZyBXZXN0IFJkLiwgTWF3ZWksIAorCQkJCUZ1emhvdSBGdWppYW4gMzUwMDE1CisJCQkJQ0hJTkEKKworQTgtRjktNEIgICAoaGV4KQkJRWx0ZXggRW50ZXJwcmlzZSBMdGQuCitBOEY5NEIgICAgIChiYXNlIDE2KQkJRWx0ZXggRW50ZXJwcmlzZSBMdGQuCisJCQkJT2J5ZWRpbmVuaXlhIHN0LiwgOQorCQkJCU5vdm9zaWJpcnNrICA2MzAwMjAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworQTgtRkMtQjcgICAoaGV4KQkJQ29uc29saWRhdGVkIFJlc291cmNlIEltYWdpbmcKK0E4RkNCNyAgICAgKGJhc2UgMTYpCQlDb25zb2xpZGF0ZWQgUmVzb3VyY2UgSW1hZ2luZworCQkJCTI5NDMgUyBXaWxzb24gQ1QgTlcKKwkJCQlHcmFuZCBSYXBpZHMgTUkgNDk1MzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0FBLTAwLTAwICAgKGhleCkJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCitBQTAwMDAgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKwkJCQlMS0cgMS0yL0ExOQorCQkJCTU1MCBLSU5HIFNUUkVFVAorCQkJCUxJVFRMRVRPTiBNQSAwMTQ2MC0xMjg5CisJCQkJVU5JVEVEIFNUQVRFUworCitBQS0wMC0wMSAgIChoZXgpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorQUEwMDAxICAgICAoYmFzZSAxNikJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCisJCQkJTEtHIDEtMi9BMTkKKwkJCQk1NTAgS0lORyBTVFJFRVQKKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAtMTI4OQorCQkJCVVOSVRFRCBTVEFURVMKKworQUEtMDAtMDIgICAoaGV4KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KK0FBMDAwMiAgICAgKGJhc2UgMTYpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorCQkJCUxLRyAxLTIvQTE5CisJCQkJNTUwIEtJTkcgU1RSRUVUCisJCQkJTElUVExFVE9OIE1BIDAxNDYwLTEyODkKKwkJCQlVTklURUQgU1RBVEVTCisKK0FBLTAwLTAzICAgKGhleCkJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCitBQTAwMDMgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKwkJCQlMS0cgMS0yL0ExOQorCQkJCTU1MCBLSU5HIFNUUkVFVAorCQkJCUxJVFRMRVRPTiBNQSAwMTQ2MC0xMjg5CisJCQkJVU5JVEVEIFNUQVRFUworCitBQS0wMC0wNCAgIChoZXgpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorQUEwMDA0ICAgICAoYmFzZSAxNikJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCisJCQkJTEtHIDEtMi9BMTkKKwkJCQk1NTAgS0lORyBTVFJFRVQKKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAtMTI4OQorCQkJCVVOSVRFRCBTVEFURVMKKworQUMtMDItQ0YgICAoaGV4KQkJUlcgVGVjbm9sb2dpYSBJbmR1c3RyaWEgZSBDb21lcmNpbyBMdGRhCitBQzAyQ0YgICAgIChiYXNlIDE2KQkJUlcgVGVjbm9sb2dpYSBJbmR1c3RyaWEgZSBDb21lcmNpbyBMdGRhCisJCQkJQ2VudHJvIEVtcHJlc2FyaWFsIFBhdWxvIEZyZWRlcmljbyBkZSBUb2xlZG8sIDgwIEEKKwkJCQlCYWlycm8gQXJjbyBJcmlycworCQkJCVNhbnRhIFJpdGEgZG8gU2FwdWNhaSBNaW5hcyBHZXJhaXMgIDM3NTQwMDAwCisJCQkJQlJBWklMCisKK0FDLTA2LTEzICAgKGhleCkJCVNlbnNlbG9naXggTHRkCitBQzA2MTMgICAgIChiYXNlIDE2KQkJU2Vuc2Vsb2dpeCBMdGQKKwkJCQk1NiBDYXJsdG9uIENvdXJ0LCBGb3JkIFdpbGxpYW0gTW9yZ2FuCisJCQkJU3QuIEFzYXBoIEJ1c2luZXNzIFBhcmsKKwkJCQlTdC4gQXNhcGggRGViaWdoc2hpcmUgTEwxNyAwSkcKKwkJCQlVTklURUQgS0lOR0RPTQorCitBQy0xOS05RiAgIChoZXgpCQlTVU5HUk9XIFBPV0VSIFNVUFBMWSBDTy4sTFRELgorQUMxOTlGICAgICAoYmFzZSAxNikJCVNVTkdST1cgUE9XRVIgU1VQUExZIENPLixMVEQuCisJCQkJTk8uMiBUaWFuaHUgUm9hZCwgTmV3IGFuZCBIaWdoIFRlY2hub2xvZ3kgSW5kdXN0cmlhbCBEZXZlbG9wbWVudCBab25lCisJCQkJSGVmZWkgQW5odWkgMjMwMDg4CisJCQkJQ0hJTkEKKworQUMtMjAtQUEgICAoaGV4KQkJRE1BVEVLIENvLiwgTHRkLgorQUMyMEFBICAgICAoYmFzZSAxNikJCURNQVRFSyBDby4sIEx0ZC4KKwkJCQk2Ri4sIE5vLjE1NS0xLCBTZWMuIDMsIFdlbnhpbiBSZC4sIFhpdHVuIERpc3QuLAorCQkJCVRhaWNodW5nICA0MDc1MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQUMtMkYtQTggICAoaGV4KQkJSHVtYW5uaXggQ28uLEx0ZC4KK0FDMkZBOCAgICAgKGJhc2UgMTYpCQlIdW1hbm5peCBDby4sTHRkLgorCQkJCSM0MDIsIDk4LTQsIFNvbmdwYS1Eb25nLCBTb25ncGEtR3UKKwkJCQlTZW91bCAgMTM4LTE3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBQy0zNC1DQiAgIChoZXgpCQlTaGFuaGFpIEdCQ09NIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4gTHRkCitBQzM0Q0IgICAgIChiYXNlIDE2KQkJU2hhbmhhaSBHQkNPTSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uIEx0ZAorCQkJCVJvb20gNjAyLCBCdWlsZGluZyA2LCBOby41NTUgRG9uZ2NodWFuIFJvYWQKKwkJCQlTaGFuZ2hhaSAgIDIwMDI0MQorCQkJCUNISU5BCisKK0FDLTQ0LUYyICAgKGhleCkJCVJldm9sYWJzIEluYworQUM0NEYyICAgICAoYmFzZSAxNikJCVJldm9sYWJzIEluYworCQkJCTYzIEdyZWF0IFJkCisJCQkJTWF5bmFyZCBNQSAwMTc1NAorCQkJCVVOSVRFRCBTVEFURVMKKworQUMtNDctMjMgICAoaGV4KQkJR2VuZWxlYworQUM0NzIzICAgICAoYmFzZSAxNikJCUdlbmVsZWMKKwkJCQlPbHZpdGllIDUKKwkJCQlJaXNhbG1pICA3NDEwMAorCQkJCUZJTkxBTkQKKworQUMtNEEtRkUgICAoaGV4KQkJSGlzZW5zZSBCcm9hZGJhbmQgTXVsdGltZWRpYSBUZWNobm9sb2d5IENvLixMdGQuCitBQzRBRkUgICAgIChiYXNlIDE2KQkJSGlzZW5zZSBCcm9hZGJhbmQgTXVsdGltZWRpYSBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJTm8uMTEgSmlhbmd4aSBSb2FkLFNoaW5hbiBEaXN0cmljdAorCQkJCVFpbmdkYW8gQ2l0eSBTaGFuZG9uZyBQcm92aW5jZSAyNjYwNzEKKwkJCQlDSElOQQorCitBQy00Ri1GQyAgIChoZXgpCQlTVlMtVklTVEVLIEdtYkgKK0FDNEZGQyAgICAgKGJhc2UgMTYpCQlTVlMtVklTVEVLIEdtYkgKKwkJCQlNdWVobGJhY2hzdHIuIDIwCisJCQkJU2VlZmVsZCBCWSA4MjIyOQorCQkJCUdFUk1BTlkKKworQUMtNTEtMzUgICAoaGV4KQkJTVBJIFRFQ0gKK0FDNTEzNSAgICAgKGJhc2UgMTYpCQlNUEkgVEVDSAorCQkJCVZhZHN0cnVwdmVqIDM1CisJCQkJQmFnc3bvv71yZCAgREstMjg4MAorCQkJCURFTk1BUksKKworQUMtNTgtM0IgICAoaGV4KQkJSHVtYW4gQXNzZW1ibGVyLCBJbmMuCitBQzU4M0IgICAgIChiYXNlIDE2KQkJSHVtYW4gQXNzZW1ibGVyLCBJbmMuCisJCQkJMi0xLTExLTZGCisJCQkJU2hpYnV5YQorCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUwLTAwMDIKKwkJCQlKQVBBTgorCitBQy01RS04QyAgIChoZXgpCQlVdGlsbGluaworQUM1RThDICAgICAoYmFzZSAxNikJCVV0aWxsaW5rCisJCQkJODE3IFdvb2xpbSBMaW9ucyBWYWxsZXkgMSwgMzExLTMgU2FuZ2RhZXdvbi1kb25nIEp1bmd3b24tZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjIxNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQUMtNjEtMjMgICAoaGV4KQkJRHJpdnZlbiwgSW5jLgorQUM2MTIzICAgICAoYmFzZSAxNikJCURyaXZ2ZW4sIEluYy4KKwkJCQkxMjAwMSBOZXR3b3JrIEJvdWxldmFyZAorCQkJCUJ1aWxkaW5nIEUsIFN1aXRlIDExMAorCQkJCVNhbiBBbnRvbmlvIFRYIDc4MjQ5CisJCQkJVU5JVEVEIFNUQVRFUworCitBQy02Ny0wNiAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKK0FDNjcwNiAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCitBQy02Ri00RiAgIChoZXgpCQlFbnNwZXJ0IEluYworQUM2RjRGICAgICAoYmFzZSAxNikJCUVuc3BlcnQgSW5jCisJCQkJMkYuLCBEYWVod2EgQi9ELCAKKwkJCQkxNjkgU2Ftc3VuZy1kb25nLCBHYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNTA5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBQy03Mi04OSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKK0FDNzI4OSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKK0FDLTgwLUQ2ICAgKGhleCkJCUhleGF0cm9uaWMgQUIKK0FDODBENiAgICAgKGJhc2UgMTYpCQlIZXhhdHJvbmljIEFCCisJCQkJRXhwb3J0Z2F0YW4gNDdCCisJCQkJR290aGVuYnVyZyAgNDIyNDYgCisJCQkJU1dFREVOCisKK0FDLTgxLTEyICAgKGhleCkJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorQUM4MTEyICAgICAoYmFzZSAxNikJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLiAxIEplbiBBaSBSb2FkIEhzaW5jaHUgSW5kdXN0cmlhbCBQYXJrIEh1a291LCAKKwkJCQlOby4gMTUtMSBaaG9uZ2h1YSBSb2FkLCAKKwkJCQlIc2luY2h1ICAzMDM1MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQUMtODMtMTcgICAoaGV4KQkJU2hlbnpoZW4gRnVydHVuZXRlbCBDb21tdW5pY2F0aW9uIENvLiwgTHRkCitBQzgzMTcgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gRnVydHVuZXRlbCBDb21tdW5pY2F0aW9uIENvLiwgTHRkCisJCQkJRjE5IGJ1aWxkaW5nIEEgemhvbmdrZSBwbGF6YSBOYW4geWkgc3RyZWV0IGhpZ2gtdGVjaCB6b25lLCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworQUMtODMtRjAgICAoaGV4KQkJTWFnZW50YSBWaWRlbyBOZXR3b3JrcworQUM4M0YwICAgICAoYmFzZSAxNikJCU1hZ2VudGEgVmlkZW8gTmV0d29ya3MKKwkJCQkyMDA1IERlIExhIENydXogQmx2ZAorCQkJCVN1aXRlIDE1MAorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKK0FDLTg2LTc0ICAgKGhleCkJCU9wZW4gTWVzaCwgSW5jLgorQUM4Njc0ICAgICAoYmFzZSAxNikJCU9wZW4gTWVzaCwgSW5jLgorCQkJCTU4MzcgTlcgU2t5bGluZSBCbHZkCisJCQkJUG9ydGxhbmQgT1IgOTcyMjkKKwkJCQlVTklURUQgU1RBVEVTCisKK0FDLTg2LTdFICAgKGhleCkJCUNyZWF0ZSBOZXcgVGVjaG5vbG9neSAoSEspIExpbWl0ZWQgQ29tcGFueQorQUM4NjdFICAgICAoYmFzZSAxNikJCUNyZWF0ZSBOZXcgVGVjaG5vbG9neSAoSEspIExpbWl0ZWQgQ29tcGFueQorCQkJCVJtIEIgMTAvRiBKaW5GZW5nIEJ1aWxkaW5nLDEwMDEgU2hhbmdCdSBTb3V0aCBSb2FkLEZ1VGlhbiBEaXN0cmljdCAKKwkJCQlTaGVuIFpoZW4gR3VhbmcgRG9uZyA1MTgwMzEKKwkJCQlDSElOQQorCitBQy04QS1DRCAgIChoZXgpCQlST0dFUiBELldlbnNrZXIsIEcuV2Vuc2tlciBzcC5qLgorQUM4QUNEICAgICAoYmFzZSAxNikJCVJPR0VSIEQuV2Vuc2tlciwgRy5XZW5za2VyIHNwLmouCisJCQkJR29zY2lzemV3byA1OQorCQkJCVN6dHVtIFBvbW9yc2tpZSA4Mi00MDAKKwkJCQlQT0xBTkQKKworQUMtOTMtMkYgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0FDOTMyRiAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1ICA5MDIzMAorCQkJCUZJTkxBTkQKKworQUMtOUEtOTYgICAoaGV4KQkJTGFudGlxIERldXRzY2hsYW5kIEdtYkgKK0FDOUE5NiAgICAgKGJhc2UgMTYpCQlMYW50aXEgRGV1dHNjaGxhbmQgR21iSAorCQkJCUFtIENhbXBlb24gMworCQkJCU5ldWJpYmVyZyBCYXZhcmlhIDg1NTc5CisJCQkJR0VSTUFOWQorCitBQy05Qi04NCAgIChoZXgpCQlTbWFrIFRlY25vbG9naWEgZSBBdXRvbWFjYW8KK0FDOUI4NCAgICAgKGJhc2UgMTYpCQlTbWFrIFRlY25vbG9naWEgZSBBdXRvbWFjYW8KKwkJCQlBdi4gU3RvLiBBbnRvbmlvLCAyMDEgLSBCZWxhIFZpc3RhCisJCQkJT3Nhc2NvIFNhbyBQYXVsbyBDRVAgMDYwODYtMDc1CisJCQkJQlJBWklMCisKK0FDLUEwLTE2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0FDQTAxNiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0FDLUFCLThEICAgKGhleCkJCUx5bmdzbyBNYXJpbmUgQS9TCitBQ0FCOEQgICAgIChiYXNlIDE2KQkJTHluZ3NvIE1hcmluZSBBL1MKKwkJCQlMeW5nc28gQWxsZSAyCisJCQkJSG9yc2hvbG0gIERLLTI5NzAKKwkJCQlERU5NQVJLCisKK0FDLUJFLTc1ICAgKGhleCkJCVVmaW5lIFRlY2hub2xvZ2llcyBDby4sTHRkLgorQUNCRTc1ICAgICAoYmFzZSAxNikJCVVmaW5lIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCTQ2LCBHZXVtZ29rLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZy1uYW0tc2kgR3llb25nZ2ktZG8gNDYzLTgwNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBQy1CRS1CNiAgIChoZXgpCQlWaXN1YWxlZGdlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitBQ0JFQjYgICAgIChiYXNlIDE2KQkJVmlzdWFsZWRnZSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTEzRkwuLTEgTm8uIDcxNiwgWmhvbmd6aGVuZyBSb2FkLCBaaG9uZ2hlIENpdHksCisJCQkJVGFpcGVpIENvdW50eSwgICAyMzUxMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQUMtQzktMzUgICAoaGV4KQkJTmVzcyBDb3Jwb3JhdGlvbgorQUNDOTM1ICAgICAoYmFzZSAxNikJCU5lc3MgQ29ycG9yYXRpb24KKwkJCQk0LzE2NyBQcm9zcGVjdCBIaWdod2F5CisJCQkJU2V2ZW4gSGlsbHMKKwkJCQlTeWRuZXkgTlNXIDIxNDcKKwkJCQlBVVNUUkFMSUEKKworQUMtQ0EtNTQgICAoaGV4KQkJVGVsbGR1cyBUZWNobm9sb2dpZXMgQUIKK0FDQ0E1NCAgICAgKGJhc2UgMTYpCQlUZWxsZHVzIFRlY2hub2xvZ2llcyBBQgorCQkJCVNraWZmZXJ277+9Z2VuIDEwMgorCQkJCUx1bmQgIDIyNCA3OAorCQkJCVNXRURFTgorCitBQy1DQS1CQSAgIChoZXgpCQlNaWRva3VyYSBDby4sIEx0ZC4gCitBQ0NBQkEgICAgIChiYXNlIDE2KQkJTWlkb2t1cmEgQ28uLCBMdGQuIAorCQkJCTd0aCBGbG9vciBBemFidWRhaSBIaW5va2kgYnVpbGRpbmcKKwkJCQkgMy0xLTUgQXphYnVkYWkgTWluYXRvLWt1IAorCQkJCVRva3lvICAxMDYtMDA0MQorCQkJCUpBUEFOCisKK0FDLUNFLThGICAgKGhleCkJCUhXQSBZQU8gVEVDSE5PTE9HSUVTIENPLiwgTFRECitBQ0NFOEYgICAgIChiYXNlIDE2KQkJSFdBIFlBTyBURUNITk9MT0dJRVMgQ08uLCBMVEQKKwkJCQlOTy4gNiwgTE4uIDQ4LCAgTkFOU0lORyBSRC4sCisJCQkJWU9OR0tBTkcgQ0lUWSwgVEFJTkFOIENPVU5UWSAgNzEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitBQy1EMS04MCAgIChoZXgpCQlDcmV4ZW5kbyBCdXNpbmVzcyBTb2x1dGlvbnMsIEluYy4KK0FDRDE4MCAgICAgKGJhc2UgMTYpCQlDcmV4ZW5kbyBCdXNpbmVzcyBTb2x1dGlvbnMsIEluYy4KKwkJCQkxMDIwMSBTLiA1c3QgIFN0LgorCQkJCVN1aXRlIEEtMjY1CisJCQkJUGhvZW5peCBBWiA4NTA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworQUMtREUtNDggICAoaGV4KQkJUFJJVkFURQorQUNERTQ4ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCitBQy1FMy00OCAgIChoZXgpCQlNYWRnZVRlY2gsIEluYworQUNFMzQ4ICAgICAoYmFzZSAxNikJCU1hZGdlVGVjaCwgSW5jCisJCQkJODc5IE1hcGxlIFN0CisJCQkJQ29udG9vY29vayBOSCAwMzIyOQorCQkJCVVOSVRFRCBTVEFURVMKKworQUMtRTktQUEgICAoaGV4KQkJSGF5IFN5c3RlbXMgTHRkCitBQ0U5QUEgICAgIChiYXNlIDE2KQkJSGF5IFN5c3RlbXMgTHRkCisJCQkJV2F0ZXJtYXJrCisJCQkJQWxiYSBDYW1wdXMKKwkJCQlMaXZpbmdzdG9uIFdlc3QgTG90aGlhbiBFSDU0IDdFRworCQkJCVVOSVRFRCBLSU5HRE9NCisKK0FDLUVBLTZBICAgKGhleCkJCUdFTklYIElORk9DT01NIENPLiwgTFRELgorQUNFQTZBICAgICAoYmFzZSAxNikJCUdFTklYIElORk9DT01NIENPLiwgTFRELgorCQkJCTJGLCBEYWVibyBCbGRnLiAjMTAwOS0zNAorCQkJCURva3Nhbi1Eb25nLCBLZXVtY2hlb24tR3UKKwkJCQlTZW91bCAgMTUzLTgyOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBQy1GOS03RSAgIChoZXgpCQlFTEVTWVMgSU5DLgorQUNGOTdFICAgICAoYmFzZSAxNikJCUVMRVNZUyBJTkMuCisJCQkJU3VpdCA2MjMsIDgxMi0xLCBIeW9tdW4tZG9uZworCQkJCVVsc2FuIEJ1ay1ndSA2ODMtMzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0IwLTFCLTdDICAgKGhleCkJCU9udHJvbCBBLlMuCitCMDFCN0MgICAgIChiYXNlIDE2KQkJT250cm9sIEEuUy4KKwkJCQlUdXJjYW4gQ2FkIE5vOjE5IFkuRHVkdWxsdQorCQkJCVVtcmFuaXllIElzdGFuYnVsIDM0Nzc1CisJCQkJVFVSS0VZCisKK0IwLTM4LTI5ICAgKGhleCkJCVNpbGljb253YXJlIFByZWNpc2lvbiBJbmR1c3RyaWVzIENvLiwgTHRkLgorQjAzODI5ICAgICAoYmFzZSAxNikJCVNpbGljb253YXJlIFByZWNpc2lvbiBJbmR1c3RyaWVzIENvLiwgTHRkLgorCQkJCU5vLiAxMjMsIFNlYy4zLCBEYSBGb25nIFJkLCBUYW50enUsIAorCQkJCVRhaWNodW5nICA0MjcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0IwLTQ4LTdBICAgKGhleCkJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorQjA0ODdBICAgICAoYmFzZSAxNikJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorCQkJCTEtNkYsIEJ1aWxkaW5nIDIsIFBpbmdzaGFuZGF5dWFuIEluZHVzdHJpYWwsIFNvdXRoIFpvbmUsCisJCQkJVGFveXVhbiBTdHJlZXQsIE5hbnNoYW4gRGlzdHJpY3QsIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCitCMC01MS04RSAgIChoZXgpCQlIb2xsIHRlY2hub2xvZ3kgQ08uTHRkLgorQjA1MThFICAgICAoYmFzZSAxNikJCUhvbGwgdGVjaG5vbG9neSBDTy5MdGQuCisJCQkJRjIsQmxkIDI3LEFubGUgSW5kdXN0cmlhbCBQYXJrLE5hbnRvdSBHdWFua291IE5vLjIgUm9hZAorCQkJCU5hbnNoYW4gRGlzdHJpY3QsIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTIKKwkJCQlDSElOQQorCitCMC01Qi0xRiAgIChoZXgpCQlUSEVSTU8gRklTSEVSIFNDSUVOVElGSUMgUy5QLkEuCitCMDVCMUYgICAgIChiYXNlIDE2KQkJVEhFUk1PIEZJU0hFUiBTQ0lFTlRJRklDIFMuUC5BLgorCQkJCVNUUkFEQSBSSVZPTFRBTkEgS00gNi83CisJCQkJUk9EQU5PIE1JTEFOIDIwMDkwCisJCQkJSVRBTFkKKworQjAtNjUtNjMgICAoaGV4KQkJU2hhbmdoYWkgUmFpbHdheSBDb21tdW5pY2F0aW9uIEZhY3RvcnkKK0IwNjU2MyAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBSYWlsd2F5IENvbW11bmljYXRpb24gRmFjdG9yeQorCQkJCU5vLjE3OSBXZXN0IEppYW5nY2hhbmcgcm9hZAorCQkJCVNoYW5naGFpICAyMDA0MzYKKwkJCQlDSElOQQorCitCMC03NS1ENSAgIChoZXgpCQlaVEUgQ29ycG9yYXRpb24KK0IwNzVENSAgICAgKGJhc2UgMTYpCQlaVEUgQ29ycG9yYXRpb24KKwkJCQkxMi9GLFpURSBSJkQgQnVpbGRpbmcsS2VqaW5hbiBSb2FkLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitCMC04MS1EOCAgIChoZXgpCQlJLXN5cyBDb3JwCitCMDgxRDggICAgIChiYXNlIDE2KQkJSS1zeXMgQ29ycAorCQkJCTI0NTcgQXZpYXRpb24gQXZlCisJCQkJU3VpdGUgOTAwCisJCQkJTi4gQ2hhcmxlc3RvbiAgU291dGggQ2Fyb2xpbmEgMjk0MDYKKwkJCQlVTklURUQgU1RBVEVTCisKK0IwLTg5LTkxICAgKGhleCkJCUxHRSAKK0IwODk5MSAgICAgKGJhc2UgMTYpCQlMR0UgCisJCQkJNjAtMzkgLCBLYXNhbiAtZG9uZyAsIEd1bWNoZW9uLWd1LgorCQkJCVNlb3VsICAgMTUzLTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCMC05MC03NCAgIChoZXgpCQlGdWxhbiBFbGVjdHJvbmljcyBMaW1pdGVkCitCMDkwNzQgICAgIChiYXNlIDE2KQkJRnVsYW4gRWxlY3Ryb25pY3MgTGltaXRlZAorCQkJCUZsYXQgQiZDLDMvRixBMSBCbG9jaywgR2FveGluIEN5YmVyLVRlY2ggWm9uZSxOYW5zaGFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKK0IwLTkxLTM0ICAgKGhleCkJCVRhbGVvCitCMDkxMzQgICAgIChiYXNlIDE2KQkJVGFsZW8KKwkJCQk0MTQwIER1YmxpbiBCbHZkCisJCQkJU3VpdGUgNDAwCisJCQkJRHVibGluIENhbGlmb3JuaWEgOTQ1NjgKKwkJCQlVTklURUQgU1RBVEVTCisKK0IwLTk3LTNBICAgKGhleCkJCUUtRnVlbCBDb3Jwb3JhdGlvbgorQjA5NzNBICAgICAoYmFzZSAxNikJCUUtRnVlbCBDb3Jwb3JhdGlvbgorCQkJCTE1NDY2IExvcyBHYXRvcyBCbHZkLiAjMzcKKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKK0IwLTk5LTI4ICAgKGhleCkJCUZ1aml0c3UgTGltaXRlZAorQjA5OTI4ICAgICAoYmFzZSAxNikJCUZ1aml0c3UgTGltaXRlZAorCQkJCU11c2FzaGkta29zdWdpIFRvd2VyIFBsYWNlIEJsZGcuLAorCQkJCTQwMywgS29zdWdpLWNobyAxLWNob21lLCBOYWthaGFyYS1rdQorCQkJCUthd2FzYWtpIEthbmFnYXdhIDIxMS0wMDYzCisJCQkJSkFQQU4KKworQjAtOUEtRTIgICAoaGV4KQkJU1RFTU1FUiBJTUFHSU5HIEdtYkgKK0IwOUFFMiAgICAgKGJhc2UgMTYpCQlTVEVNTUVSIElNQUdJTkcgR21iSAorCQkJCUd1dGVuYmVyZ3N0ci4gMTEKKwkJCQlQdWNoaGVpbSBCeSA4MjE3OAorCQkJCUdFUk1BTlkKKworQjAtOUItRDQgICAoaGV4KQkJR05IIFNvZnR3YXJlIEluZGlhIFByaXZhdGUgTGltaXRlZAorQjA5QkQ0ICAgICAoYmFzZSAxNikJCUdOSCBTb2Z0d2FyZSBJbmRpYSBQcml2YXRlIExpbWl0ZWQKKwkJCQk5LzE0IFNlbmdhbmkgQW1tYW4gS29pbCBTdHJlZXQKKwkJCQlNYWR1dmFua2FyYWksIEd1aW5keQorCQkJCUNoZW5uYWkgVGFtaWxuYWR1IDYwMDAzMgorCQkJCUlORElBCisKK0IwLUExLTBBICAgKGhleCkJCVBpdm90YWwgU3lzdGVtcyBDb3Jwb3JhdGlvbgorQjBBMTBBICAgICAoYmFzZSAxNikJCVBpdm90YWwgU3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTQ2ODMgIENoYWJvdCBEcml2ZQorCQkJCVBsZWFzYW50b24gQ0EgOTQ1ODgKKwkJCQlVTklURUQgU1RBVEVTCisKK0IwLUE3LTJBICAgKGhleCkJCUVuc2VtYmxlIERlc2lnbnMsIEluYy4KK0IwQTcyQSAgICAgKGJhc2UgMTYpCQlFbnNlbWJsZSBEZXNpZ25zLCBJbmMuCisJCQkJODcwIEdvbGQgRmxhdCBSb2FkCisJCQkJTmV2YWRhIENpdHkgQ0EgOTU5NTkKKwkJCQlVTklURUQgU1RBVEVTCisKK0IwLUFBLTM2ICAgKGhleCkJCUdVQU5HRE9ORyBPUFBPIE1PQklMRSBURUxFQ09NTVVOSUNBVElPTlMgQ09SUC4sTFRELgorQjBBQTM2ICAgICAoYmFzZSAxNikJCUdVQU5HRE9ORyBPUFBPIE1PQklMRSBURUxFQ09NTVVOSUNBVElPTlMgQ09SUC4sTFRELgorCQkJCU5PLjE4IEhBSUJJTiBST0FECisJCQkJV1VTSEEsQ0hBTkcnQU4KKwkJCQlET05HR1VBTiBHVUFOR0RPTkcgNTIzODYwCisJCQkJQ0hJTkEKKworQjAtQjMtMkIgICAoaGV4KQkJU2xpY2FuIFNwLiB6IG8uby4KK0IwQjMyQiAgICAgKGJhc2UgMTYpCQlTbGljYW4gU3AuIHogby5vLgorCQkJCU0uIEtvbm9wbmlja2llaiAxOAorCQkJCUJ5ZGdvc3pjeiBLdWphd3Nrby1Qb21vcnNraWUgODUtMTI0CisJCQkJUE9MQU5ECisKK0IwLUI4LUQ1ICAgKGhleCkJCU5hbmppbmcgTmVuZ3J1aSBBdXRvIEVxdWlwbWVudCBDTy4sTHRkCitCMEI4RDUgICAgIChiYXNlIDE2KQkJTmFuamluZyBOZW5ncnVpIEF1dG8gRXF1aXBtZW50IENPLixMdGQKKwkJCQlOby4xMDggR2FuamlhYmlhbiBFYXN0IFlhb2h1YSBUb3duCisJCQkJTmFuamluZyBKaWFuZ3N1IDIxMDA0NgorCQkJCUNISU5BCisKK0IwLUJELUExICAgKGhleCkJCVpBS0xBRCBFTEVLVFJPTklDWk5ZIFNJTVMKK0IwQkRBMSAgICAgKGJhc2UgMTYpCQlaQUtMQUQgRUxFS1RST05JQ1pOWSBTSU1TCisJCQkJUE9EIFNLQVJQQSA1MUEKKwkJCQlCWURHT1NaQ1ogS1VKQVdTS08tUE9NT1JTS0lFIDg1LTc5NgorCQkJCVBPTEFORAorCitCMC1CRi05OSAgIChoZXgpCQlXSVpJVERPTkdETworQjBCRjk5ICAgICAoYmFzZSAxNikJCVdJWklURE9OR0RPCisJCQkJMkYsIDI5OS0xLCAzLURPTkcsIFNVTkdTVSAyLUdBCisJCQkJU1VOR0RPTkctS1UKKwkJCQlTRU9VTCAgMTMzLTgzMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCMC1DNi05QSAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCitCMEM2OUEgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkgCisJCQkJVU5JVEVEIFNUQVRFUworCitCMC1DOC1BRCAgIChoZXgpCQlQZW9wbGUgUG93ZXIgQ29tcGFueQorQjBDOEFEICAgICAoYmFzZSAxNikJCVBlb3BsZSBQb3dlciBDb21wYW55CisJCQkJNjIwIExvd2VsbCBBdmUKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKK0IwLUUzLTlEICAgKGhleCkJCUNBVCBTWVNURU0gQ08uLExURC4KK0IwRTM5RCAgICAgKGJhc2UgMTYpCQlDQVQgU1lTVEVNIENPLixMVEQuCisJCQkJMy0xNDctMjcgSGlnYXNpLXNpbm1hY2hpIEhpcm9oYXRhLWt1CisJCQkJSGltZWppIEh5b2dvIDY3MS0xMTIxCisJCQkJSkFQQU4KKworQjAtRTctNTQgICAoaGV4KQkJMldpcmUKK0IwRTc1NCAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ2FsaWZvcm5pYSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworQjAtRTktN0UgICAoaGV4KQkJQWR2YW5jZWQgTWljcm8gUGVyaXBoZXJhbHMKK0IwRTk3RSAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBNaWNybyBQZXJpcGhlcmFscworCQkJCVVuaXQgMSBIYXJyaWVyIEhvdXNlCisJCQkJU2VkZ2V3YXkgQnVpc25lc3MgUGFyaworCQkJCVdpdGNoZm9yZCBDYW1icmlkZ2VzaGlyZSBDQjYgMkhZCisJCQkJVU5JVEVEIEtJTkdET00KKworQjAtRjEtQkMgICAoaGV4KQkJRGhlbWF4IEluZ2VuaWVyb3MgTHRkYQorQjBGMUJDICAgICAoYmFzZSAxNikJCURoZW1heCBJbmdlbmllcm9zIEx0ZGEKKwkJCQlTaWV0ZSBPcmllbnRlIDEyMzQKKwkJCQlWaW5hIGRlbCBNYXIgUmVnaW9uIGRlIFZhbHBhcmFpc28gMjUzMDk1NAorCQkJCUNISUxFCisKK0I0LTAxLTQyICAgKGhleCkJCUdDSSBTY2llbmNlICYgVGVjaG5vbG9neSBDby4sTFRECitCNDAxNDIgICAgIChiYXNlIDE2KQkJR0NJIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLixMVEQKKwkJCQlOby4zODEseGluZ2FuZ3pob25nIHJvYWQgLAorCQkJCUd1YW5nWmhvdSBHdWFuZ0RvbmcgNTEwMzEwCisJCQkJQ0hJTkEKKworQjQtMDctRjkgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPLU1FQ0hBTklDUworQjQwN0Y5ICAgICAoYmFzZSAxNikJCVNBTVNVTkcgRUxFQ1RSTy1NRUNIQU5JQ1MKKwkJCQlTdXdvbi1TaSwgR3llb25nZ2lfRG8sIEtvcmVhCisJCQkJU3V3b24gR3llb25nZ2lfRG8gNDQzLTc0MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCNC0wOC0zMiAgIChoZXgpCQlUQyBDb21tdW5pY2F0aW9ucworQjQwODMyICAgICAoYmFzZSAxNikJCVRDIENvbW11bmljYXRpb25zCisJCQkJMTc4ODEgQ2FydHdyaWdodCBSb2FkCisJCQkJSXJ2aW5lIENBIDkyNjE0CisJCQkJVU5JVEVEIFNUQVRFUworCitCNC0wRS1EQyAgIChoZXgpCQlMRy1Fcmljc3NvbiBDby4sTHRkLgorQjQwRURDICAgICAoYmFzZSAxNikJCUxHLUVyaWNzc29uIENvLixMdGQuCisJCQkJNTMzLEhvZ3llLTFkb25nLERvbmdhbi1ndQorCQkJCUxHIFImRCBDb21wbGV4LkxHLUVyaWNzc29uLAorCQkJCUFueWFuZy1zaGkgS3l1bmdraS1kbyA0MzEtNzQ5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0I0LTE0LTg5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0I0MTQ4OSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LTI4LUYxICAgKGhleCkJCUUtUHJpbWUgQ28uLCBMdGQuCitCNDI4RjEgICAgIChiYXNlIDE2KQkJRS1QcmltZSBDby4sIEx0ZC4KKwkJCQlSbTEyMDcsIEtvbG9uIFNjaWVuY2UgVmFsbGV5LCA4MTEsCisJCQkJS3Vyby1Eb25nLCBLdXJvLUt1CisJCQkJU2VvdWwgIDE1MjA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCNC0yQS0zOSAgIChoZXgpCQlPUkJJVCBNRVJSRVQsIHNwb2wuIHMgci4gby4KK0I0MkEzOSAgICAgKGJhc2UgMTYpCQlPUkJJVCBNRVJSRVQsIHNwb2wuIHMgci4gby4KKwkJCQlWb2RuYW5za2EgNjc1LzMwCisJCQkJUHJhaGEgIDE5OCAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKK0I0LTJDLUJFICAgKGhleCkJCURpcmVjdCBQYXltZW50IFNvbHV0aW9ucyBMaW1pdGVkCitCNDJDQkUgICAgIChiYXNlIDE2KQkJRGlyZWN0IFBheW1lbnQgU29sdXRpb25zIExpbWl0ZWQKKwkJCQk5OCBBbnphYyBBdmVudWUKKwkJCQlBdWNrbGFuZCAgMTAzNQorCQkJCU5FVyBaRUFMQU5ECisKK0I0LTM1LUY3ICAgKGhleCkJCVpoZWppYW5nIFBlYXJtYWluIEVsZWN0cm9uaWNzIENvLmx0ZC4KK0I0MzVGNyAgICAgKGJhc2UgMTYpCQlaaGVqaWFuZyBQZWFybWFpbiBFbGVjdHJvbmljcyBDby5sdGQuCisJCQkJNEYgWWl0YWkgTWFuc2lvbiwgNzYgR3VjdWkgUm9hZCwKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwMTIKKwkJCQlDSElOQQorCitCNC0zNy00MSAgIChoZXgpCQlDb25zZXJ0LCBJbmMuCitCNDM3NDEgICAgIChiYXNlIDE2KQkJQ29uc2VydCwgSW5jLgorCQkJCTQ3MDAgRmFsbHMgb2YgTmV1c2UgUmQuCisJCQkJU3VpdGUgMzQwCisJCQkJUmFsZWlnaCBOQyAyNzYwOQorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtMzktRDYgICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorQjQzOUQ2ICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAgRm9vdGhpbGxzIEJsdmQuCisJCQkJUm9zZXZpbGxlIENhbGlmb3JuaWEgOTU3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LTNELUIyICAgKGhleCkJCURlZ3JlYW5lIEhvcml6b24KK0I0M0RCMiAgICAgKGJhc2UgMTYpCQlEZWdyZWFuZSBIb3Jpem9uCisJCQkJNzMwIFJ1ZSBkZSBsJiMzOTtJbml0aWF0aXZlCisJCQkJQ3VlcnMgVmFyIDgzMzkwCisJCQkJRlJBTkNFCisKK0I0LTQxLTdBICAgKGhleCkJCVNoZW5aaGVuIEdvbmdqaW4gRWxlY3Ryb25pY3MgQ28uLEx0ZAorQjQ0MTdBICAgICAoYmFzZSAxNikJCVNoZW5aaGVuIEdvbmdqaW4gRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCTRGLEJhaXlpbmcgQnVpbGRpbmcsIE5vLjEwMTksTmFuaGFpIFJELFNoZWtvdQorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNjcKKwkJCQlDSElOQQorCitCNC00Qy1DMiAgIChoZXgpCQlOUiBFTEVDVFJJQyBDTy4sIExURAorQjQ0Q0MyICAgICAoYmFzZSAxNikJCU5SIEVMRUNUUklDIENPLiwgTFRECisJCQkJNjksU3V5dWFuIEF2ZW51ZQorCQkJCUppYW5nbmluZworCQkJCU5hbmppbmcgSmlhbmdzdSAyMTExMDIKKwkJCQlDSElOQQorCitCNC01Mi01MyAgIChoZXgpCQlTZWFnYXRlIFRlY2hub2xvZ3kKK0I0NTI1MyAgICAgKGJhc2UgMTYpCQlTZWFnYXRlIFRlY2hub2xvZ3kKKwkJCQkxMjgwIERpc2MgRHJpdmUKKwkJCQlTaGFrb3BlZSBNTiA1NTM3OQorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtNTgtNjEgICAoaGV4KQkJQ1JlbW90ZSwgTExDCitCNDU4NjEgICAgIChiYXNlIDE2KQkJQ1JlbW90ZSwgTExDCisJCQkJMTE5NSBOb2VsIERyaXZlCisJCQkJTUVOTE8gUEFSSyBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtNUMtQTQgICAoaGV4KQkJVGhpbmctdGFsayBXaXJlbGVzcyBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDb3Jwb3JhdGlvbiBMaW1pdGVkCitCNDVDQTQgICAgIChiYXNlIDE2KQkJVGhpbmctdGFsayBXaXJlbGVzcyBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDb3Jwb3JhdGlvbiBMaW1pdGVkCisJCQkJNDk4IEd1byBTaG91IEppbmcgUm9hZCwgU3VpdGUgMTA0MDIKKwkJCQlTaGFuZ2hhaSAgMjAxMjAzCisJCQkJQ0hJTkEKKworQjQtNzQtOUYgICAoaGV4KQkJYXNrZXkgY29tcHV0ZXIgY29ycAorQjQ3NDlGICAgICAoYmFzZSAxNikJCWFza2V5IGNvbXB1dGVyIGNvcnAKKwkJCQkxMTBGLE5PLjExOSxDSElFTktBTkcgUkQsQ0hVTkctSE8sCisJCQkJVEFJUEVJIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCNC04Mi1GRSAgIChoZXgpCQlBc2tleSBDb21wdXRlciBDb3JwCitCNDgyRkUgICAgIChiYXNlIDE2KQkJQXNrZXkgQ29tcHV0ZXIgQ29ycAorCQkJCTEwRixOTy4xMTksQ0hJRU5LQU5HIFJELENIVU5HLUhPLAorCQkJCVRBSVBFSSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0I0LTk5LUJBICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorQjQ5OUJBICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlNYWlsY29kZSA2LjMuMDQ5CisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtQTQtRTMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQjRBNEUzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtQTUtQTkgICAoaGV4KQkJTU9ESSBHbWJICitCNEE1QTkgICAgIChiYXNlIDE2KQkJTU9ESSBHbWJICisJCQkJS2FwZWxsZW53ZWcgMjEKKwkJCQlSRUlDSFNIT0YtU2luc3BlcnQgIDUxNTgwCisJCQkJR0VSTUFOWQorCitCNC1BQS00RCAgIChoZXgpCQlFbnNlcXVlbmNlLCBJbmMuCitCNEFBNEQgICAgIChiYXNlIDE2KQkJRW5zZXF1ZW5jZSwgSW5jLgorCQkJCTExMSBTVyA1dGggQXZlIFN1aXRlIDE0MDAKKwkJCQlQb3J0bGFuZCBPUiA5NzIwNAorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtQjAtMTcgICAoaGV4KQkJQXZheWEsIEluYworQjRCMDE3ICAgICAoYmFzZSAxNikJCUF2YXlhLCBJbmMKKwkJCQkyMTEgTW91bnQgQWlyeSBSb2FkIAorCQkJCUJhc2tpbmcgUmlkZ2UgTkogMDc5MjAtMjMxMSAKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LUI1LUFGICAgKGhleCkJCU1pbnN1bmcgRWxlY3Ryb25pY3MKK0I0QjVBRiAgICAgKGJhc2UgMTYpCQlNaW5zdW5nIEVsZWN0cm9uaWNzCisJCQkJTWVnYS12YWxsZXkgIzYyMAorCQkJCURvbmdhbi1ndSBHd2FueWFuZy1kb25nLCA3OTkKKwkJCQlBbnlhbmctc2kgS3llb25nZ2ktZG8gNDMxLTc2NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCNC1COC04RCAgIChoZXgpCQlUaHVoIENvbXBhbnkKK0I0Qjg4RCAgICAgKGJhc2UgMTYpCQlUaHVoIENvbXBhbnkKKwkJCQk2MDUgIFRlcnJpdG9yaWFsIERyCisJCQkJU3VpdGUgQworCQkJCUJvbGluZ2Jyb29rIElMIDYwNDQwCisJCQkJVU5JVEVEIFNUQVRFUworCitCNC1DNC00RSAgIChoZXgpCQlWWEwgZVRlY2ggUHZ0IEx0ZAorQjRDNDRFICAgICAoYmFzZSAxNikJCVZYTCBlVGVjaCBQdnQgTHRkCisJCQkJIzkxLCAxMXRoIE1haW4sIEJlZ3VyIE1haW4gUm9hZAorCQkJCUhvbmdhc2FuZHJhCisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAwNjgKKwkJCQlJTkRJQQorCitCNC1DNy05OSAgIChoZXgpCQlNb3Rvcm9sYSBTb2x1dGlvbnMgSW5jLgorQjRDNzk5ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIFNvbHV0aW9ucyBJbmMuCisJCQkJMSBNb3Rvcm9sYSBQbGF6YQorCQkJCUhvbHRzdmlsbGUgTlkgMTE3NDEKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LUM4LTEwICAgKGhleCkJCVVNUEkgRWxldHRyb25pY2EKK0I0QzgxMCAgICAgKGJhc2UgMTYpCQlVTVBJIEVsZXR0cm9uaWNhCisJCQkJVmlhIFJlc3BpZ2hpLCAxNQorCQkJCUNhdHRvbGljYSAgNDc4NDEKKwkJCQlJVEFMWQorCitCNC1DRi1EQiAgIChoZXgpCQlTaGVuemhlbiBKaXV6aG91IEVsZWN0cmljIENvLixMVEQKK0I0Q0ZEQiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBKaXV6aG91IEVsZWN0cmljIENvLixMVEQKKwkJCQk2RixKaXV6aG91IEVsZWN0cmljIEJ1aWxkaW5nLFNvdXRoZXJuIE5vLjEyUkQuLEhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrLE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKK0I0LUUwLUNEICAgKGhleCkJCUlPIFR1cmJpbmUsIEluYy4KK0I0RTBDRCAgICAgKGJhc2UgMTYpCQlJTyBUdXJiaW5lLCBJbmMuCisJCQkJMzAzMSBUaXNjaCBXYXksIFN1aXRlIDQ1MAorCQkJCVNhbiBKb3NlIENBIDk1MTI4CisJCQkJVU5JVEVEIFNUQVRFUworCitCNC1FRC0xOSAgIChoZXgpCQlQaWUgRGlnaXRhbCwgSW5jLgorQjRFRDE5ICAgICAoYmFzZSAxNikJCVBpZSBEaWdpdGFsLCBJbmMuCisJCQkJNTc1IE1hcmtldCBzdC4sIDh0aCBmbG9vcgorCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMDUtMjgyMworCQkJCVVOSVRFRCBTVEFURVMKKworQjQtRUQtNTQgICAoaGV4KQkJV29obGVyIFRlY2hub2xvZ2llcworQjRFRDU0ICAgICAoYmFzZSAxNikJCVdvaGxlciBUZWNobm9sb2dpZXMKKwkJCQkzMTA1NSBIdW50d29vZCBBdmVudWUKKwkJCQlIYXl3YXJkIENBIDk0NTQ0CisJCQkJVU5JVEVEIFNUQVRFUworCitCNC1FRS1ENCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworQjRFRUQ0ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCitCNC1GMy0yMyAgIChoZXgpCQlQRVRBVEVMIElOQy4KK0I0RjMyMyAgICAgKGJhc2UgMTYpCQlQRVRBVEVMIElOQy4KKwkJCQkjMzIyIFRIRSBPIFZJTExFIDcyMC0yNSwgWUVPS1NBTS1ET05HCisJCQkJR0FOR05BTS1HVSBTRU9VTCAxMzUwODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQjQtRkMtNzUgICAoaGV4KQkJU0VNQSBFbGVjdHJvbmljcyhISykgQ08uLExURAorQjRGQzc1ICAgICAoYmFzZSAxNikJCVNFTUEgRWxlY3Ryb25pY3MoSEspIENPLixMVEQKKwkJCQlYaWFsaW5nYmVpIEluZHVzdHJpYWwgWm9uZSAgTGlhb2J1LCAKKwkJCQlEb25nZ3VhbiBHdWFuZ2RvbmcgNTIzNDExCisJCQkJQ0hJTkEKKworQjgtMEItOUQgICAoaGV4KQkJUk9QRVggSW5kdXN0cmllLUVsZWt0cm9uaWsgR21iSAorQjgwQjlEICAgICAoYmFzZSAxNikJCVJPUEVYIEluZHVzdHJpZS1FbGVrdHJvbmlrIEdtYkgKKwkJCQlHYW5zYWVja2VyIDIxCisJCQkJQmlldGlnaGVpbS1CaXNzaW5nZW4gQmFkZW4gV3VlcnR0ZW1iZXJnIDc0MzIxCisJCQkJR0VSTUFOWQorCitCOC0yOC04QiAgIChoZXgpCQlQYXJrZXIgSGFubmlmaW4KK0I4Mjg4QiAgICAgKGJhc2UgMTYpCQlQYXJrZXIgSGFubmlmaW4KKwkJCQlDb25kaXRpb24gTW9uaXRvcmluZyBDZW50cmUKKwkJCQlCcnVuZWwgV2F5CisJCQkJVGhldGZvcmQgTm9yZm9sayBJUDI0IDFIUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0I4LTJBLURDICAgKGhleCkJCUVGUiBFdXJvcO+/vWlzY2hlIEZ1bmstUnVuZHN0ZXVlcnVuZyBHbWJICitCODJBREMgICAgIChiYXNlIDE2KQkJRUZSIEV1cm9w77+9aXNjaGUgRnVuay1SdW5kc3RldWVydW5nIEdtYkgKKwkJCQlOeW1waGVuYnVyZ2VyIFN0ci4gMjBiCisJCQkJTXVuaWNoICA4MDMzNQorCQkJCUdFUk1BTlkKKworQjgtM0EtN0IgICAoaGV4KQkJV29ybGRwbGF5IChDYW5hZGEpIEluYy4KK0I4M0E3QiAgICAgKGJhc2UgMTYpCQlXb3JsZHBsYXkgKENhbmFkYSkgSW5jLgorCQkJCTgwMy0yNHRoIEF2ZSBTRSwgVW5pdCAyMDAKKwkJCQlDYWxnYXJ5IEFsYmVydGEgVDJHIDFQNQorCQkJCUNBTkFEQQorCitCOC0zRC00RSAgIChoZXgpCQlTaGVuemhlbiBDdWx0cmF2aWV3IERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkIFNoYW5naGFpIEJyYW5jaAorQjgzRDRFICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEN1bHRyYXZpZXcgRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQgU2hhbmdoYWkgQnJhbmNoCisJCQkJMi9GLEJ1aWxkaW5nIzUsMTY5MENhaWx1biBSb2FkLFpoYW5namlhbmcgSGktdGVjaCBQYXJrLAorCQkJCVNoYW5naGFpICAyMDEyMDMKKwkJCQlDSElOQQorCitCOC00MS01RiAgIChoZXgpCQlBU1AgQUcKK0I4NDE1RiAgICAgKGJhc2UgMTYpCQlBU1AgQUcKKwkJCQlNYXgtIFBsYW5jay1TdHIuIDE1IGEtYworCQkJCUVya3JhdGggTlJXIDQwNjk5CisJCQkJR0VSTUFOWQorCitCOC02MS02RiAgIChoZXgpCQlBY2N0b24gV2lyZWxlc3MgQnJvYWRiYW5kKEFXQiksIENvcnAuCitCODYxNkYgICAgIChiYXNlIDE2KQkJQWNjdG9uIFdpcmVsZXNzIEJyb2FkYmFuZChBV0IpLCBDb3JwLgorCQkJCU5vLjEgQ3JlYXRpb24gUmQgSUlJLCBTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgIDMwMDc3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCOC02NC05MSAgIChoZXgpCQlDSyBUZWxlY29tIEx0ZAorQjg2NDkxICAgICAoYmFzZSAxNikJCUNLIFRlbGVjb20gTHRkCisJCQkJS2VqaSBBdmVudWUsSGV5dWFuIEhpLXRlY2ggRGV2ZWxvcG1lbnQgWm9uZQorCQkJCUhleXVhbiAgR3Vhbmdkb25nIFByb3ZpbmNlIDUxNzAwMAorCQkJCUNISU5BCisKK0I4LTY1LTNCICAgKGhleCkJCUJvbHltaW4sIEluYy4KK0I4NjUzQiAgICAgKGJhc2UgMTYpCQlCb2x5bWluLCBJbmMuCisJCQkJMTNGLTEsIE5vLjIwLCBUYS1Mb25nIFJkLiwgCisJCQkJVGFpY2h1bmcgIDQwMzEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCOC03MC1GNCAgIChoZXgpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELiAKK0I4NzBGNCAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELiAKKwkJCQlOTy4gMjUsIFRIRSAzUkQgU3RyZWV0IEtVTlNIQU4gRVhQT1JUIFBST0NFU1NJTkcgWk9ORSAKKwkJCQlLVU5TSEFOIFNVWkhPVSAyMTUzMDAKKwkJCQlDSElOQQorCitCOC03OS03RSAgIChoZXgpCQlTZWN1cmUgTWV0ZXJzIChVSykgTGltaXRlZAorQjg3OTdFICAgICAoYmFzZSAxNikJCVNlY3VyZSBNZXRlcnMgKFVLKSBMaW1pdGVkCisJCQkJU2VjdXJlIEhvdXNlCisJCQkJTW9vcnNpZGUgUm9hZAorCQkJCVdpbmNoZXN0ZXIgSGFtcHNoaXJlIFNPMjMgN1JYCisJCQkJVU5JVEVEIEtJTkdET00KKworQjgtODctMUUgICAoaGV4KQkJR29vZCBNaW5kIEluZHVzdHJpZXMgQ28uLCBMdGQuCitCODg3MUUgICAgIChiYXNlIDE2KQkJR29vZCBNaW5kIEluZHVzdHJpZXMgQ28uLCBMdGQuCisJCQkJMjIsIFRhIFllb3UgMm5kIFN0LCAKKwkJCQlUYSBMaWFvIERpc3QuIAorCQkJCUthb2hzaXVuZyAgODMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCOC04RS0zQSAgIChoZXgpCQlJbmZpbml0ZSBUZWNobm9sb2dpZXMgSkxUCitCODhFM0EgICAgIChiYXNlIDE2KQkJSW5maW5pdGUgVGVjaG5vbG9naWVzIEpMVAorCQkJCU9mZmljZSAzMjAzLCBMZXZlbCAzMgorCQkJCUxpd2EgSGVpZ2h0cyBUb3dlcgorCQkJCUp1bWVpcmFoIExha2UgVG93ZXJzIER1YmFpIAorCQkJCVVOSVRFRCBBUkFCIEVNSVJBVEVTCisKK0I4LTkyLTFEICAgKGhleCkJCUJHIFQmYW1wO0EKK0I4OTIxRCAgICAgKGJhc2UgMTYpCQlCRyBUJmFtcDtBCisJCQkJNEYsIEwmYW1wO0MgVG93ZXIKKwkJCQkxMDI2LTUyIFNhbmJvbi1kb25nCisJCQkJR3VucG8tc2kgR3llb25nZ2ktZG8gNDM1LTg0NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCOC05NC1EMiAgIChoZXgpCQlSZXRhaWwgSW5ub3ZhdGlvbiBIVFQgQUIKK0I4OTREMiAgICAgKGJhc2UgMTYpCQlSZXRhaWwgSW5ub3ZhdGlvbiBIVFQgQUIKKwkJCQlTavbkbmdzduRnZW4gMgorCQkJCVNvbGxlbnR1bmEgIFMtMTkyIDcyCisJCQkJU1dFREVOCisKK0I4LUEzLUUwICAgKGhleCkJCUJlblJ1aSBUZWNobm9sb2d5IENvLixMdGQKK0I4QTNFMCAgICAgKGJhc2UgMTYpCQlCZW5SdWkgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJTm8uMzAycm9vbSBCdWlsZGluZzUwMyBUYWlSYW4gVGVjaG5vUGFyay5GdVRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworQjgtQTgtQUYgICAoaGV4KQkJTG9naWMgUy5wLkEuCitCOEE4QUYgICAgIChiYXNlIDE2KQkJTG9naWMgUy5wLkEuCisJCQkJVmlhIEdhbGlsZWkgNQorCQkJCUNhc3NpbmEgZGUnIFBlY2NoaSBNSSAyMDA2MAorCQkJCUlUQUxZCisKK0I4LUFDLTZGICAgKGhleCkJCURlbGwgSW5jCitCOEFDNkYgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgVFggNzg3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKK0I4LUFGLTY3ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorQjhBRjY3ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCitCOC1CMS1DNyAgIChoZXgpCQlCVCZDT00gQ08uLExURAorQjhCMUM3ICAgICAoYmFzZSAxNikJCUJUJkNPTSBDTy4sTFRECisJCQkJIzExMDMsIEUmQyBWZW50dXJlIERyZWFtIFRvd2VyIElJCisJCQkJMTk3LTEwLCBHdXJvLTNkb25nLCBHdXJvLUd1LAorCQkJCVNlb3VsICAxNTItNzE5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0I4LUJBLTY4ICAgKGhleCkJCVhpJ2FuIEppemhvbmcgRGlnaXRhbCBDb21tdW5pY2F0aW9uIENvLixMdGQKK0I4QkE2OCAgICAgKGJhc2UgMTYpCQlYaSdhbiBKaXpob25nIERpZ2l0YWwgQ29tbXVuaWNhdGlvbiBDby4sTHRkCisJCQkJMTAgQmxvY2sgTk8uMSBFbnRlcnByaXNlIE5ld2x5LXR5cGVkIEluZHVzdHJpYWwgWm9uZSBIaWdoLVRlY2ggWm9uZSBYae+/ve+/vWFuLENoaW5hCisJCQkJWGknYW4gU2hhYW5YaSA3MTAxMTkKKwkJCQlDSElOQQorCitCOC1CQS03MiAgIChoZXgpCQlDeW5vdmUKK0I4QkE3MiAgICAgKGJhc2UgMTYpCQlDeW5vdmUKKwkJCQkxMCBjaXRlIHJvdWdlbW9udAorCQkJCVBhcmlzICA3NTAwOQorCQkJCUZSQU5DRQorCitCOC1CRS1CRiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitCOEJFQkYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitCOC1DNy0xNiAgIChoZXgpCQlGaWJlcmhvbWUgVGVsZWNvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIENvLixMVEQKK0I4QzcxNiAgICAgKGJhc2UgMTYpCQlGaWJlcmhvbWUgVGVsZWNvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIENvLixMVEQKKwkJCQlOby41IERvbmd4aW4gUm9hZAorCQkJCUhvbmdzaGFuIERpc3RyaWN0CisJCQkJV3VoYW4gSHViZWkgNDMwMDc0CisJCQkJQ0hJTkEKKworQjgtQzctNUQgICAoaGV4KQkJQXBwbGUgSW5jCitCOEM3NUQgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitCOC1DRC1BNyAgIChoZXgpCQlNYXhlbGVyIFRlY2hub2xvZ2llcyBMdGQuCitCOENEQTcgICAgIChiYXNlIDE2KQkJTWF4ZWxlciBUZWNobm9sb2dpZXMgTHRkLgorCQkJCTEgRG93biBQbGFjZQorCQkJCUxvbmRvbiBVSyBXNiA5SkgKKwkJCQlVTklURUQgS0lOR0RPTQorCitCOC1EMC02RiAgIChoZXgpCQlHVUFOR1pIT1UgSEtVU1QgRk9LIFlJTkcgVFVORyBSRVNFQVJDSCBJTlNUSVRVVEUKK0I4RDA2RiAgICAgKGJhc2UgMTYpCQlHVUFOR1pIT1UgSEtVU1QgRk9LIFlJTkcgVFVORyBSRVNFQVJDSCBJTlNUSVRVVEUKKwkJCQlSbSA0MDMsIE5vcnRoIG9mIFNvZnR3YXJlIEJ1aWxkaW5nLE5hbnNoYSBJVCBQYXJrLAorCQkJCU5hbnNoYSBEaXN0cmljdAorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgUHJpdmluY2UgNTExNDU4CisJCQkJQ0hJTkEKKworQjgtRDQtOUQgICAoaGV4KQkJTSBTZXZlbiBTeXN0ZW0gTHRkLgorQjhENDlEICAgICAoYmFzZSAxNikJCU0gU2V2ZW4gU3lzdGVtIEx0ZC4KKwkJCQkyNEYsIFRydXN0IFRvd2VyIEJsZGcsIDI3NS03LCBZYW5namFlMi1Eb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCAgMTM3LTczOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCOC1FNS04OSAgIChoZXgpCQlQYXl0ZXIgQlYKK0I4RTU4OSAgICAgKGJhc2UgMTYpCQlQYXl0ZXIgQlYKKwkJCQlCZXVrZWxzZGlqayAxMDcKKwkJCQlSb3R0ZXJkYW0gWnVpZC1Ib2xsYW5kIDMwMjEgQUUKKwkJCQlORVRIRVJMQU5EUworCitCOC1FNy03OSAgIChoZXgpCQlQUklWQVRFCitCOEU3NzkgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKK0I4LUVFLTc5ICAgKGhleCkJCVlXaXJlIFRlY2hub2xvZ2llcywgSW5jLgorQjhFRTc5ICAgICAoYmFzZSAxNikJCVlXaXJlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEzNzIgT3ZlcmRhbGUKKwkJCQlNb250cmVhbCBRQyBIM0cgMVYzCisJCQkJQ0FOQURBCisKK0I4LUY0LUQwICAgKGhleCkJCUhlcnJtYW5uIFVsdHJhc2NoYWxsdGVjaG5payBHbWJIICYgQ28uIEtnCitCOEY0RDAgICAgIChiYXNlIDE2KQkJSGVycm1hbm4gVWx0cmFzY2hhbGx0ZWNobmlrIEdtYkggJiBDby4gS2cKKwkJCQlEZXNjb3N0ci4gMy05CisJCQkJS2FybHNiYWQgQmFkZW4tV3VlcnR0ZW1iZXJnIDc2MzA3CisJCQkJR0VSTUFOWQorCitCOC1GNy0zMiAgIChoZXgpCQlBcnlha2EgTmV0d29ya3MgSW5jCitCOEY3MzIgICAgIChiYXNlIDE2KQkJQXJ5YWthIE5ldHdvcmtzIEluYworCQkJCTY5MSBTLiBNaWxwaXRhcyBCbHZkLiwgCisJCQkJU3VpdGUgMjA2CisJCQkJTWlscGl0YXMgIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCitCOC1GOS0zNCAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorQjhGOTM0ICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKK0I4LUZGLTYxICAgKGhleCkJCUFwcGxlCitCOEZGNjEgICAgIChiYXNlIDE2KQkJQXBwbGUKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0I4LUZGLTZGICAgKGhleCkJCVNoYW5naGFpIFR5cHJvdGVjaCBUZWNobm9sb2d5IENvLkx0ZAorQjhGRjZGICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFR5cHJvdGVjaCBUZWNobm9sb2d5IENvLkx0ZAorCQkJCURlc2lnbiBCdWlsZGluZyA5MDMsIE5PLjYzLCAKKwkJCQlDaGlGZW5nIFJvYWQsWWFuZ1B1IERpc3RyaWN0LAorCQkJCVNoYW5naGFpICAyMDAwOTIKKwkJCQlDSElOQQorCitCOC1GRi1GRSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworQjhGRkZFICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworQkMtMDUtNDMgICAoaGV4KQkJQVZNIEdtYkgKK0JDMDU0MyAgICAgKGJhc2UgMTYpCQlBVk0gR21iSAorCQkJCUFsdC1Nb2FiaXQgOTUKKwkJCQlCZXJsaW4gIDEwNTU5CisJCQkJR0VSTUFOWQorCitCQy0wRC1BNSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworQkMwREE1ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCitCQy0wRi0yQiAgIChoZXgpCQlGT1JUVU5FIFRFQ0hHUk9VUCBDTy4sTFRECitCQzBGMkIgICAgIChiYXNlIDE2KQkJRk9SVFVORSBURUNIR1JPVVAgQ08uLExURAorCQkJCTctOEYsTm8uMTE5OCBOb3J0aCBRaW56aG91IFJvYWQsCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKK0JDLTE1LUE2ICAgKGhleCkJCVRhaXdhbiBKYW50ZWsgRWxlY3Ryb25pY3MsTHRkLgorQkMxNUE2ICAgICAoYmFzZSAxNikJCVRhaXdhbiBKYW50ZWsgRWxlY3Ryb25pY3MsTHRkLgorCQkJCTZGLTEsTm8uMSBXdS1DaHVhbiAxU3QuIFJkLFd1LUt1IEluZHVzdHJpYWwgUGFyaywKKwkJCQlTaW5jaHdhbmcgQ2l0eSBUYWlwZWkgSHNpZW4gMjQ4OTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0JDLTIwLUJBICAgKGhleCkJCUluc3B1ciAoU2hhbmRvbmcpIEVsZWN0cm9uaWMgSW5mb3JtYXRpb24gQ28uLCBMdGQKK0JDMjBCQSAgICAgKGJhc2UgMTYpCQlJbnNwdXIgKFNoYW5kb25nKSBFbGVjdHJvbmljIEluZm9ybWF0aW9uIENvLiwgTHRkCisJCQkJTm8uMTAzNiBTaHVueWEgUmQuCisJCQkJSmluYW4gU2hhbmRvbmcgMjUwMTAxCisJCQkJQ0hJTkEKKworQkMtMjgtNDYgICAoaGV4KQkJTmV4dEJJVCBDb21wdXRpbmcgUHZ0LiBMdGQuCitCQzI4NDYgICAgIChiYXNlIDE2KQkJTmV4dEJJVCBDb21wdXRpbmcgUHZ0LiBMdGQuCisJCQkJMzAvMiwgMm5kIEZsb29yLCBSLksuIFBsYXphLAorCQkJCUNNSCBSb2FkLCBJbmRpcmFuYWdhcgorCQkJCUJhbmdhbG9yZSBLYXJuYXRha2EgNTYwMDM4CisJCQkJSU5ESUEKKworQkMtMzAtNUIgICAoaGV4KQkJRGVsbCBJbmMuCitCQzMwNUIgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCitCQy0zNS1FNSAgIChoZXgpCQlIeWRybyBTeXN0ZW1zIENvbXBhbnkKK0JDMzVFNSAgICAgKGJhc2UgMTYpCQlIeWRybyBTeXN0ZW1zIENvbXBhbnkKKwkJCQkzNzk4IFJvdW5kIEJvdHRvbSBSb2FkCisJCQkJQ2luY2lubmF0aSBPaGlvIDQ1MjQ0CisJCQkJVU5JVEVEIFNUQVRFUworCitCQy0zOC1EMiAgIChoZXgpCQlQYW5kYWNoaXAgTGltaXRlZAorQkMzOEQyICAgICAoYmFzZSAxNikJCVBhbmRhY2hpcCBMaW1pdGVkCisJCQkJVW5pdCAyMTAsIDIvRiAoTGFrZXNpZGUgMSksIEJ1aWxkaW5nIDE1LCBOby4gOCBTY2llbmNlIFBhcmsgV2VzdCBBdmVudWUKKwkJCQlIb25nIEtvbmcgU2NpZW5jZSBQYXJrIFBoYXNlIElJLCAKKwkJCQlTaGF0aW4sIE4uVC4gIAorCQkJCUhPTkcgS09ORworCitCQy0zRS0xMyAgIChoZXgpCQlBY2NvcmRhbmNlIFN5c3RlbXMgSW5jLgorQkMzRTEzICAgICAoYmFzZSAxNikJCUFjY29yZGFuY2UgU3lzdGVtcyBJbmMuCisJCQkJMkYsIE5vLiAzMSwgU2VjLiA2LCBIc2luIFlpIFJvYWQKKwkJCQlUYWlwZWkgIDExMDg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCQy00My03NyAgIChoZXgpCQlIYW5nIFpob3UgSHVpdGUgVGVjaG5vbG9neSBDby4sbHRkLgorQkM0Mzc3ICAgICAoYmFzZSAxNikJCUhhbmcgWmhvdSBIdWl0ZSBUZWNobm9sb2d5IENvLixsdGQuCisJCQkJUm0xMzM4LEJsb2NrIEHvv73vv71GdUxpIFRlY2hub2xvZ3kgQnVpbGRpbmcgLE5vLjMyOCxXZW5FciBSZAorCQkJCUhhbmcgWmhvdSBaaGUgSmlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworQkMtNDctNjAgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCitCQzQ3NjAgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0JDLTRFLTNDICAgKGhleCkJCUNPUkUgU1RBRkYgQ08uLCBMVEQuCitCQzRFM0MgICAgIChiYXNlIDE2KQkJQ09SRSBTVEFGRiBDTy4sIExURC4KKwkJCQlTaGluLW9zYWthIE9yaWVudGFsIEJsZGcuIDE0RiwgNy0xLTI2IE5pc2hpbmFrYWppbWEKKwkJCQlZb2RvZ2F3YS1rdSBPc2FrYSA1MzItMDAxMQorCQkJCUpBUEFOCisKK0JDLTVGLUY0ICAgKGhleCkJCUFTUm9jayBJbmNvcnBvcmF0aW9uCitCQzVGRjQgICAgIChiYXNlIDE2KQkJQVNSb2NrIEluY29ycG9yYXRpb24KKwkJCQkyRi4sTm8uMzcsIFNlYy4yLCBKaG9uZ3lhbmcgUy5SZC4sIEJlaXRvdSBEaXN0cmljLCAKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQkMtNjctODQgICAoaGV4KQkJRW52aXJvbmljcyBPeQorQkM2Nzg0ICAgICAoYmFzZSAxNikJCUVudmlyb25pY3MgT3kKKwkJCQlHcmFhbmludGllIDUKKwkJCQlNaWtrZWxpICA1MDE5MAorCQkJCUZJTkxBTkQKKworQkMtNkEtMTYgICAoaGV4KQkJdGR2aW5lCitCQzZBMTYgICAgIChiYXNlIDE2KQkJdGR2aW5lCisJCQkJMzAxIE1haXNvbiBNYXJ1IEJ1aWxkaW5nIAorCQkJCTg2LTkgTm9uaGVvbi1kb25nIEdhbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCQy02RS03NiAgIChoZXgpCQlHcmVlbiBFbmVyZ3kgT3B0aW9ucyBMdGQKK0JDNkU3NiAgICAgKGJhc2UgMTYpCQlHcmVlbiBFbmVyZ3kgT3B0aW9ucyBMdGQKKwkJCQkzIFN0LiBNYXJ5JiMzOTtzIENvdXJ0LCBNYWluIFN0cmVldAorCQkJCUhhcmR3aWNrCisJCQkJQ2FtYnJpZGdlIENhbWJyaWRnZXNoaXJlIENCMjMgN1FTCisJCQkJVU5JVEVEIEtJTkdET00KKworQkMtNzEtQzEgICAoaGV4KQkJWFRyaWxsaW9uLCBJbmMuCitCQzcxQzEgICAgIChiYXNlIDE2KQkJWFRyaWxsaW9uLCBJbmMuCisJCQkJMS0xMi0zLTRGIAorCQkJCUthbmRhIFN1ZGEtY2hvCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtMDA0MQorCQkJCUpBUEFOCisKK0JDLTc2LTcwICAgKGhleCkJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKK0JDNzY3MCAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTEwMTA4CisJCQkJQ0hJTkEKKworQkMtNzctMzcgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCitCQzc3MzcgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCitCQy03RC1EMSAgIChoZXgpCQlSYWRpbyBEYXRhIENvbW1zCitCQzdERDEgICAgIChiYXNlIDE2KQkJUmFkaW8gRGF0YSBDb21tcworCQkJCTUvMjAtMzAgU3R1YmJzIFN0cmVldAorCQkJCVNpbHZlcndhdGVyICBOZXcgU291dGggV2FsZXMgKE5TVykgMjEyOAorCQkJCUFVU1RSQUxJQQorCitCQy04MS05OSAgIChoZXgpCQlCQVNJQyBDby4sTHRkLgorQkM4MTk5ICAgICAoYmFzZSAxNikJCUJBU0lDIENvLixMdGQuCisJCQkJS2VpZWZ1LUJ1aWxkaW5nIDlGCisJCQkJNC0xMy04IFNoaWJhCisJCQkJTWluYXRvLWt1IFRva3lvIDEwOC0wMDE0CisJCQkJSkFQQU4KKworQkMtODMtQTcgICAoaGV4KQkJU0hFTlpIRU4gQ0hVQU5HV0VJLVJHQiBFTEVDVFJPTklDUyBDTy4sTFQKK0JDODNBNyAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBDSFVBTkdXRUktUkdCIEVMRUNUUk9OSUNTIENPLixMVAorCQkJCVVuaXQgQSAxMy0xNi9GLFNreXdvcnRoIEJsZGcuLCBHYW94aW4gQXZlLjEuUy4sTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyAgNTE4MDU3CisJCQkJQ0hJTkEKKworQkMtOTktQkMgICAoaGV4KQkJRm9uU2VlIFRlY2hub2xvZ3kgSW5jLgorQkM5OUJDICAgICAoYmFzZSAxNikJCUZvblNlZSBUZWNobm9sb2d5IEluYy4KKwkJCQkxNEYtMiwgTm8uMzIsIEdhb3RpZSAybmQgUmQuLAorCQkJCVpodWJlaSBDaXR5IEhzaW5jaHUgQ291bnR5IDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQkMtOUQtQTUgICAoaGV4KQkJREFTQ09NIEV1cm9wZSBHbWJICitCQzlEQTUgICAgIChiYXNlIDE2KQkJREFTQ09NIEV1cm9wZSBHbWJICisJCQkJSGV1d2VnIDMKKwkJCQlVbG0gQmFkZW4tV3VlcnR0ZW1iZXJnIDg5MDc5CisJCQkJR0VSTUFOWQorCitCQy1BOS1ENiAgIChoZXgpCQlDeWJlci1SYWluLCBJbmMuCitCQ0E5RDYgICAgIChiYXNlIDE2KQkJQ3liZXItUmFpbiwgSW5jLgorCQkJCTUyNzIgRXZhbndvb2QgQXZlbnVlCisJCQkJT2FrIFBhcmsgQ2FsaWZvcm5pYSA5MTM3Ny00ODA5CisJCQkJVU5JVEVEIFNUQVRFUworCitCQy1BRS1DNSAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KK0JDQUVDNSAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91LAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCQy1CMS04MSAgIChoZXgpCQlTSEFSUCBDT1JQT1JBVElPTgorQkNCMTgxICAgICAoYmFzZSAxNikJCVNIQVJQIENPUlBPUkFUSU9OCisJCQkJMjItMjIsTmFnYWlrZS1jaG8sCisJCQkJQWJlbm8tS1UsCisJCQkJT3Nha2EsICA1NDUtODUyMgorCQkJCUpBUEFOCisKK0JDLUJCLUM5ICAgKGhleCkJCUtlbGxlbmRvbmsgRWxla3Ryb25payBHbWJICitCQ0JCQzkgICAgIChiYXNlIDE2KQkJS2VsbGVuZG9uayBFbGVrdHJvbmlrIEdtYkgKKwkJCQlWb24tSHVlbmVmZWxkLVN0cmFzc2UgMworCQkJCUNvbG9nbmUgTlJXIDUwODI5CisJCQkJR0VSTUFOWQorCitCQy1DNi0xQSAgIChoZXgpCQlTUEVDVFJBIEVNQkVEREVEIFNZU1RFTVMKK0JDQzYxQSAgICAgKGJhc2UgMTYpCQlTUEVDVFJBIEVNQkVEREVEIFNZU1RFTVMKKwkJCQlLaGFzcmEgTm8uIDI0LCBWaWxsYWdlIEdodW1tYW4sMXN0IEZsb29yLCBDaGF3bGEgTWFuc2lvbiwKKwkJCQlCL2guIFNhbnQgVmloYXIsIFVuY2hhIFBhcndhbm9vLFNlY3Rvci0xCisJCQkJUEFSV0FOT08gSElNQUNIQUwgUFJBREVTSCAxNzMyMjAKKwkJCQlJTkRJQQorCitCQy1DRC00NSAgIChoZXgpCQlWT0lTTUFSVAorQkNDRDQ1ICAgICAoYmFzZSAxNikJCVZPSVNNQVJUCisJCQkJVklBIEJFTklHTk8gQ1JFU1BJIDEyCisJCQkJTUlMQU5PICAyMDE1OQorCQkJCUlUQUxZCisKK0JDLUQ1LUI2ICAgKGhleCkJCWQyZCB0ZWNobm9sb2dpZXMKK0JDRDVCNiAgICAgKGJhc2UgMTYpCQlkMmQgdGVjaG5vbG9naWVzCisJCQkJMTA2MTEgcm91bmR3b29kIGdsZW4gY3QKKwkJCQlKYWNrc29udmlsbGUgRmwgMzIyNTYKKwkJCQlVTklURUQgU1RBVEVTCisKK0JDLUUwLTlEICAgKGhleCkJCUVvc2xpbmsKK0JDRTA5RCAgICAgKGJhc2UgMTYpCQlFb3NsaW5rCisJCQkJIzYwMiwgOTAwLTEKKwkJCQlHd2FueWFuZy1Eb25nLCBEb25nYW4tR3UKKwkJCQlBbnlhbmctQ2l0eSBLeW9uZ2dpLURvIDQzMS0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQkMtRjItQUYgICAoaGV4KQkJZGV2b2xvIEFHCitCQ0YyQUYgICAgIChiYXNlIDE2KQkJZGV2b2xvIEFHCisJCQkJQ2hhcmxvdHRlbmJ1cmdlciBBbGxlZSA2MAorCQkJCUFhY2hlbiAgNTIwNjgKKwkJCQlHRVJNQU5ZCisKK0JDLUZGLUFDICAgKGhleCkJCVRPUENPTiBDT1JQT1JBVElPTgorQkNGRkFDICAgICAoYmFzZSAxNikJCVRPUENPTiBDT1JQT1JBVElPTgorCQkJCTc1LTEsIEhhc3VudW1hLWNobworCQkJCUl0YWJhc2hpLWt1IFRPS1lPIDE3NC04NTgwCisJCQkJSkFQQU4KKworQzAtMEQtN0UgICAoaGV4KQkJQWRkaXRlY2gsIEluYy4KK0MwMEQ3RSAgICAgKGJhc2UgMTYpCQlBZGRpdGVjaCwgSW5jLgorCQkJCTEwOTI1IEtpbmdodXJzdAorCQkJCVN1aXRlIDUwMAorCQkJCUhvdXN0b24gVFggNzcwOTkKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLTEyLTQyICAgKGhleCkJCUFscGhhIFNlY3VyaXR5IFByb2R1Y3RzCitDMDEyNDIgICAgIChiYXNlIDE2KQkJQWxwaGEgU2VjdXJpdHkgUHJvZHVjdHMKKwkJCQkxMDcxNSBTaWtlcyBQbGFjZSwgU3RlLiAyMDAKKwkJCQlDaGFybG90dGUgTkMgMjgyNzcKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLTFFLTlCICAgKGhleCkJCVBpeGF2aSBBUworQzAxRTlCICAgICAoYmFzZSAxNikJCVBpeGF2aSBBUworCQkJCUR1c2F2aWt2ZWllbiAzOQorCQkJCVN0YXZhbmdlciAgNDAwMworCQkJCU5PUldBWQorCitDMC0yMi01MCAgIChoZXgpCQlQUklWQVRFCitDMDIyNTAgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKK0MwLTI1LTA2ICAgKGhleCkJCUFWTSBHbWJICitDMDI1MDYgICAgIChiYXNlIDE2KQkJQVZNIEdtYkgKKwkJCQlBbHQtTW9hYml0IDk1CisJCQkJQmVybGluICAxMDU1OQorCQkJCUdFUk1BTlkKKworQzAtMjctQjkgICAoaGV4KQkJQmVpamluZyBOYXRpb25hbCBSYWlsd2F5IFJlc2VhcmNoICYgRGVzaWduIEluc3RpdHV0ZSAgb2YgU2lnbmFsICYgQ29tbXVuaWNhdGlvbgorQzAyN0I5ICAgICAoYmFzZSAxNikJCUJlaWppbmcgTmF0aW9uYWwgUmFpbHdheSBSZXNlYXJjaCAmIERlc2lnbiBJbnN0aXR1dGUgIG9mIFNpZ25hbCAmIENvbW11bmljYXRpb24KKwkJCQlOby4xOCBCdWlsZGluZywgSHVheXVhbiBZaUxpLEZlbmd0YWkgRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDczCisJCQkJQ0hJTkEKKworQzAtMkItRkMgICAoaGV4KQkJaU5FUy4gYXBwbGllZCBpbmZvcm1hdGljcyBHbWJICitDMDJCRkMgICAgIChiYXNlIDE2KQkJaU5FUy4gYXBwbGllZCBpbmZvcm1hdGljcyBHbWJICisJCQkJT2htc3RyYXNzZSA5CisJCQkJTHVkd2lnc2J1cmcgIDcxNjQyCisJCQkJR0VSTUFOWQorCitDMC0zOC1GOSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworQzAzOEY5ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCitDMC0zQi04RiAgIChoZXgpCQlNaW5pY29tIERpZ2l0YWwgU2lnbmFnZQorQzAzQjhGICAgICAoYmFzZSAxNikJCU1pbmljb20gRGlnaXRhbCBTaWduYWdlCisJCQkJMjQgSGVicm9uIFJvYWQKKwkJCQlKZXJ1c2FsZW0gIDkzNTQyCisJCQkJSVNSQUVMCisKK0MwLTNGLTBFICAgKGhleCkJCU5FVEdFQVIKK0MwM0YwRSAgICAgKGJhc2UgMTYpCQlORVRHRUFSCisJCQkJMzUwIEVBU1QgUExVTUVSSUEgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQUxJRk9STklBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitDMC02Mi02QiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitDMDYyNkIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitDMC02Qy0wRiAgIChoZXgpCQlEb2JicyBTdGFuZm9yZAorQzA2QzBGICAgICAoYmFzZSAxNikJCURvYmJzIFN0YW5mb3JkCisJCQkJMjcxNSBFbGVjdHJvbmljIExhbmUKKwkJCQlEYWxsYXMgVGV4YXMgNzUyMjAKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLTdFLTQwICAgKGhleCkJCVNIRU5aSEVOIFhESyBDT01NVU5JQ0FUSU9OIEVRVUlQTUVOVCBDTy4sTFRECitDMDdFNDAgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gWERLIENPTU1VTklDQVRJT04gRVFVSVBNRU5UIENPLixMVEQKKwkJCQlYREsgQlVJTERJTkcsTk8uMSBJTkRVU1RSSUFMIEFSRUEsQkFOVElBTixMT05HR0FORyBESVNUUklDVAorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyA1MTgxMjkKKwkJCQlDSElOQQorCitDMC04My0wQSAgIChoZXgpCQkyV2lyZQorQzA4MzBBICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBrd3kKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworQzAtOEItNkYgICAoaGV4KQkJUyBJIFNpc3RlbWFzIEludGVsaWdlbnRlcyBFbGV0cm9uaWNvcyBMdGRhCitDMDhCNkYgICAgIChiYXNlIDE2KQkJUyBJIFNpc3RlbWFzIEludGVsaWdlbnRlcyBFbGV0cm9uaWNvcyBMdGRhCisJCQkJUnVhIEFtYWRldSBQaW90dG8gMTYxCisJCQkJQ3VyaXRpYmEgUGFyYW7vv70gODEyODAwMjAKKwkJCQlCUkFaSUwKKworQzAtOTEtMzQgICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorQzA5MTM0ICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkLgorCQkJCVJvc2V2aWxsZSBDYWxpZm9ybmlhIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCitDMC05Qy05MiAgIChoZXgpCQlDT0JZCitDMDlDOTIgICAgIChiYXNlIDE2KQkJQ09CWQorCQkJCUNPQlkgRWxlY3Ryb25pY3MgU2hlblpoZW4gUiZEIENlbnRlciAKKwkJCQlCbG9jayAzLFRhb1hpYSAybmQgSW5kdXN0cmlhbCBab25lLExvbmdIdWEgVG93bixCYW9BbiBEaXN0cmljdCwKKwkJCQlTSEVOWkhFTiBHVUFOR0RPTkcgNTE4MTA5CisJCQkJQ0hJTkEKKworQzAtQTItNkQgICAoaGV4KQkJQWJib3R0IFBvaW50IG9mIENhcmUKK0MwQTI2RCAgICAgKGJhc2UgMTYpCQlBYmJvdHQgUG9pbnQgb2YgQ2FyZQorCQkJCTQwMCBDb2xsZWdlIFJvYWQgRWFzdAorCQkJCVByaW5jZXRvbiBOSiAwODU0MAorCQkJCVVOSVRFRCBTVEFURVMKKworQzAtQkEtRTYgICAoaGV4KQkJQXBwbGljYXRpb24gU29sdXRpb25zIChTYWZldHkgYW5kIFNlY3VyaXR5KSBMdGQKK0MwQkFFNiAgICAgKGJhc2UgMTYpCQlBcHBsaWNhdGlvbiBTb2x1dGlvbnMgKFNhZmV0eSBhbmQgU2VjdXJpdHkpIEx0ZAorCQkJCVVuaXQgMTcKKwkJCQlDbGlmZmUgSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlMZXdlcyBFYXN0IFN1c3NleCBCTjggNkpMCisJCQkJVU5JVEVEIEtJTkdET00KKworQzAtQzEtQzAgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCitDMEMxQzAgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCitDMC1DNS0yMCAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKK0MwQzUyMCAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCitDMC1DQi0zOCAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorQzBDQjM4ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMyAKKwkJCQlDSElOQQorCitDMC1DRi1BMyAgIChoZXgpCQlDcmVhdGl2ZSBFbGVjdHJvbmljcyAmYW1wOyBTb2Z0d2FyZSwgSW5jLgorQzBDRkEzICAgICAoYmFzZSAxNikJCUNyZWF0aXZlIEVsZWN0cm9uaWNzICZhbXA7IFNvZnR3YXJlLCBJbmMuCisJCQkJNjUwIFN1bmRvd24gUm9hZAorCQkJCVNvdXRoIEVsZ2luIElMIDYwMTc3CisJCQkJVU5JVEVEIFNUQVRFUworCitDMC1EMC00NCAgIChoZXgpCQlTQUdFTUNPTQorQzBEMDQ0ICAgICAoYmFzZSAxNikJCVNBR0VNQ09NCisJCQkJMjUwLCBSb3V0ZSBkZSBsJ0VtcGVyZXVyCisJCQkJUlVFSUwtTUFMTUFJU09OICA5MjUwMAorCQkJCUZSQU5DRQorCitDMC1FNC0yMiAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworQzBFNDIyICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUzg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLUVBLUU0ICAgKGhleCkJCVNvbmljd2FsbAorQzBFQUU0ICAgICAoYmFzZSAxNikJCVNvbmljd2FsbAorCQkJCTIwMDEgTG9naWMgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEyNC0zNDUyCisJCQkJVU5JVEVEIFNUQVRFUworCitDMC1GOC1EQSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCitDMEY4REEgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKK0M0LTBGLTA5ICAgKGhleCkJCUhlcm1lcyBlbGVjdHJvbmljIEdtYkgKK0M0MEYwOSAgICAgKGJhc2UgMTYpCQlIZXJtZXMgZWxlY3Ryb25pYyBHbWJICisJCQkJQW0gSGFuZHdlcmtlcnBhcmsgMQorCQkJCUVzc2VuIE5SVyA0NTMwOQorCQkJCUdFUk1BTlkKKworQzQtMTAtOEEgICAoaGV4KQkJUnVja3VzIFdpcmVsZXNzCitDNDEwOEEgICAgIChiYXNlIDE2KQkJUnVja3VzIFdpcmVsZXNzCisJCQkJODgwIFdlc3QgTWF1ZGUgQXZlCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCitDNC0xNi1GQSAgIChoZXgpCQlQcnlzbSBJbmMKK0M0MTZGQSAgICAgKGJhc2UgMTYpCQlQcnlzbSBJbmMKKwkJCQkxODAgQmF5dGVjaCBEcml2ZQorCQkJCVN1aXRlIDExMAorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LTE3LUZFICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KK0M0MTdGRSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMyAKKwkJCQlDSElOQQorCitDNC0xOS04QiAgIChoZXgpCQlEb21pbmlvbiBWb3RpbmcgU3lzdGVtcyBDb3Jwb3JhdGlvbgorQzQxOThCICAgICAoYmFzZSAxNikJCURvbWluaW9uIFZvdGluZyBTeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJMjE1IFNwYWRpbmEgQXZlbnVlCisJCQkJU3VpdGUgMjAwCisJCQkJVG9yb250byBPbnRhcmlvIE01VCAyQzcKKwkJCQlDQU5BREEKKworQzQtMUUtQ0UgICAoaGV4KQkJSE1JIFNvdXJjZXMgTHRkLgorQzQxRUNFICAgICAoYmFzZSAxNikJCUhNSSBTb3VyY2VzIEx0ZC4KKwkJCQk1IEZsb29yLCBTdWl0ZSAyLCAyMzMgSHNpbiBZaSBSb2FkLCBTZWN0aW9uIDQKKwkJCQlUYWlwZWkgIDEwNjgxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDNC0yNC0yRSAgIChoZXgpCQlHYWx2YW5pYyBBcHBsaWVkIFNjaWVuY2VzIEluYworQzQyNDJFICAgICAoYmFzZSAxNikJCUdhbHZhbmljIEFwcGxpZWQgU2NpZW5jZXMgSW5jCisJCQkJNzAwMCBGaXNoZXIgUm9hZCBTRQorCQkJCUNhbGdhcnkgQWxiZXJ0YSBUMkggMFczCisJCQkJQ0FOQURBCisKK0M0LTJDLTAzICAgKGhleCkJCUFwcGxlCitDNDJDMDMgICAgIChiYXNlIDE2KQkJQXBwbGUKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ2FsaWZvcm5pYSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworQzQtMzYtREEgICAoaGV4KQkJUnVzdGVsZXRlY2ggTHRkLgorQzQzNkRBICAgICAoYmFzZSAxNikJCVJ1c3RlbGV0ZWNoIEx0ZC4KKwkJCQlPcmR6aG9uaWtpZHplIFN0ci4gMTEsIEJsZGcuIDQwLCBPZmYuIDE1IAorCQkJCU1vc2NvdyAgMTE1NDE5CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKK0M0LTNELUM3ICAgKGhleCkJCU5FVEdFQVIKK0M0M0RDNyAgICAgKGJhc2UgMTYpCQlORVRHRUFSCisJCQkJMzUwIEVBU1QgUExVTUVSSUEgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQUxJRk9STklBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitDNC00Ni0xOSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorQzQ0NjE5ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMyAKKwkJCQlDSElOQQorCitDNC00QS1EMCAgIChoZXgpCQlGSVJFRkxJRVMgUlRMUworQzQ0QUQwICAgICAoYmFzZSAxNikJCUZJUkVGTElFUyBSVExTCisJCQkJMzEgUlVFIEdVU1RBVkUgRUlGRkVMCisJCQkJYy9vIFBFVEFMRQorCQkJCUdSRU5PQkxFICAzODAwMAorCQkJCUZSQU5DRQorCitDNC00Qi00NCAgIChoZXgpCQlPbW5pcHJpbnQgSW5jLgorQzQ0QjQ0ICAgICAoYmFzZSAxNikJCU9tbmlwcmludCBJbmMuCisJCQkJMTkyMyBFYXN0IERlZXJlIEF2ZS4KKwkJCQlTYW50YSBBbmEgQ0EgOTI3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LTU1LUE2ICAgKGhleCkJCUNhZGFjIEhvbGRpbmdzIEx0ZAorQzQ1NUE2ICAgICAoYmFzZSAxNikJCUNhZGFjIEhvbGRpbmdzIEx0ZAorCQkJCTEgTmV3IFN0cmVldAorCQkJCUx1dG9uIEJlZGZvcmRzaGlyZSBMVTEgNURYCisJCQkJVU5JVEVEIEtJTkdET00KKworQzQtNTYtMDAgICAoaGV4KQkJR2FsbGVvbiBFbWJlZGRlZCBDb21wdXRpbmcKK0M0NTYwMCAgICAgKGJhc2UgMTYpCQlHYWxsZW9uIEVtYmVkZGVkIENvbXB1dGluZworCQkJCU9zdGVuc2pvZXZlaWVuIDQ0CisJCQkJT3NsbyAgTi0wNjY3CisJCQkJTk9SV0FZCisKK0M0LTU5LTc2ICAgKGhleCkJCUZ1Z29vCitDNDU5NzYgICAgIChiYXNlIDE2KQkJRnVnb28KKwkJCQkxMDI0IDE0dGggQXZlIFNFCisJCQkJTGUgTWFycyBJQSA1MTAzMQorCQkJCVVOSVRFRCBTVEFURVMKKworQzQtNjMtNTQgICAoaGV4KQkJVS1SYWt1LCBJbmMuCitDNDYzNTQgICAgIChiYXNlIDE2KQkJVS1SYWt1LCBJbmMuCisJCQkJNDAxLTEgRGViYQorCQkJCVJpdHRvLXNoaSBTaGlnYSA1MjAtMzA0MQorCQkJCUpBUEFOCisKK0M0LTcxLUZFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0M0NzFGRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LTdCLTJGICAgKGhleCkJCUJlaWppbmcgSm9pbkhvcGUgSW1hZ2UgVGVjaG5vbG9neSBMdGQuCitDNDdCMkYgICAgIChiYXNlIDE2KQkJQmVpamluZyBKb2luSG9wZSBJbWFnZSBUZWNobm9sb2d5IEx0ZC4KKwkJCQk2MjQgUm9vbSAuQXV0b21hdGlvbiBCdWlsZGluZy45NSMgWmhvbmcgR3VhbmN1biBFYXN0IFJvYWQuSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDE5MAorCQkJCUNISU5BCisKK0M0LTdELTRGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0M0N0Q0RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LTgyLTNGICAgKGhleCkJCUZ1amlhbiBOZXdsYW5kIEF1dG8tSUQgVGVjaC4gQ28sLkx0ZC4KK0M0ODIzRiAgICAgKGJhc2UgMTYpCQlGdWppYW4gTmV3bGFuZCBBdXRvLUlEIFRlY2guIENvLC5MdGQuCisJCQkJTmV3bGFuZCBTY2llbmNlICYgVGVjaG5vbG9neSBQYXJrLCBOby4xIFJ1amlhbmcgV2VzdCBSZC4sIE1hd2VpCisJCQkJRnV6aG91IEZ1amlhbiAzNTAwMTUKKwkJCQlDSElOQQorCitDNC04NS0wOCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorQzQ4NTA4ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAgCisJCQkJTUFMQVlTSUEKKworQzQtOTMtMTMgICAoaGV4KQkJMTAwZmlvIG5ldHdvcmtzIHRlY2hub2xvZ3kgbGxjCitDNDkzMTMgICAgIChiYXNlIDE2KQkJMTAwZmlvIG5ldHdvcmtzIHRlY2hub2xvZ3kgbGxjCisJCQkJMjUzNCBjcmVzY2VudCBzdC4gYXB0IDNGCisJCQkJQXN0b3JpYSBOZXcgeW9yayAxMTEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworQzQtQUEtQTEgICAoaGV4KQkJU1VNTUlUIERFVkVMT1BNRU5ULCBzcG9sLnMgci5vLgorQzRBQUExICAgICAoYmFzZSAxNikJCVNVTU1JVCBERVZFTE9QTUVOVCwgc3BvbC5zIHIuby4KKwkJCQlLIFZvZG90ZWNpIDE5NworCQkJCU9yZWNoIFByYWhhLXphcGFkIDI1MiAyNQorCQkJCUNaRUNIIFJFUFVCTElDCisKK0M0LUI1LTEyICAgKGhleCkJCUdlbmVyYWwgRWxlY3RyaWMgRGlnaXRhbCBFbmVyZ3kKK0M0QjUxMiAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIEVsZWN0cmljIERpZ2l0YWwgRW5lcmd5CisJCQkJNDIwMCBXaWxkd29vZCBQa3d5CisJCQkJQXRsYW50YSBHQSAzMDMzOQorCQkJCVVOSVRFRCBTVEFURVMKKworQzQtQ0QtNDUgICAoaGV4KQkJQmVpamluZyBCb29tc2Vuc2UgVGVjaG5vbG9neSBDTy4sTFRELgorQzRDRDQ1ICAgICAoYmFzZSAxNikJCUJlaWppbmcgQm9vbXNlbnNlIFRlY2hub2xvZ3kgQ08uLExURC4KKwkJCQk4MDMgQnVpbGRpbmcgNCBJTlRFUldFU1QgQnVzaW5lc3MgQ2VudGVyLE5vLjkgU291dGggU2hvdXRpIFJvYWQgLEhhaWRpYW5EaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwNDgKKwkJCQlDSElOQQorCitDNC1ENC04OSAgIChoZXgpCQlKaWFuZ1N1IEpveXF1ZSBJbmZvcm1hdGlvbiBJbmR1c3RyeSBDby4sTHRkCitDNEQ0ODkgICAgIChiYXNlIDE2KQkJSmlhbmdTdSBKb3lxdWUgSW5mb3JtYXRpb24gSW5kdXN0cnkgQ28uLEx0ZAorCQkJCTEwICBGbG9vciBZYUh1YSBCdWlsZGluZywgWGknYW5CZWkgUm9hZCwgCisJCQkJWHV6aG91IEppYW5nU3UgMjIxMDA2CisJCQkJQ0hJTkEKKworQzQtRTEtN0MgICAoaGV4KQkJVTJTIGNvLgorQzRFMTdDICAgICAoYmFzZSAxNikJCVUyUyBjby4KKwkJCQkxMDQtNzA2LCBTSyBWZW50aXVtIEJ1aWxkaW5nLCA1MjIsIERhbmdqZW9uZy1Eb25nCisJCQkJR3VucG8tc2kgR2VvbmdnaS1kbyA0MzUtNzc2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0M0LUVFLUY1ICAgKGhleCkJCU9jbGFybywgSW5jLgorQzRFRUY1ICAgICAoYmFzZSAxNikJCU9jbGFybywgSW5jLgorCQkJCTM0MyBEYW5pZWwgWmVua2VyIERyLiwgU3VpdGUgMTAyCisJCQkJSG9yc2VoZWFkcyBOWSAxNDg0NQorCQkJCVVOSVRFRCBTVEFURVMKKworQzQtRjQtNjQgICAoaGV4KQkJU3BpY2EgaW50ZXJuYXRpb25hbAorQzRGNDY0ICAgICAoYmFzZSAxNikJCVNwaWNhIGludGVybmF0aW9uYWwKKwkJCQlQb3QgayBzZWptaXNjdSAzMworCQkJCUxqdWJsamFuYSAgMTAwMAorCQkJCVNMT1ZFTklBCisKK0M0LUZDLUU0ICAgKGhleCkJCURpc2hUViBOWiBMdGQKK0M0RkNFNCAgICAgKGJhc2UgMTYpCQlEaXNoVFYgTlogTHRkCisJCQkJMTAgUGVubmV5IEF2ZQorCQkJCU10IFJvc2tpbGwKKwkJCQlBdWNrbGFuZCAgMTA0MQorCQkJCU5FVyBaRUFMQU5ECisKK0M4LTAyLUE2ICAgKGhleCkJCUJlaWppbmcgTmV3bWluZSBUZWNobm9sb2d5CitDODAyQTYgICAgIChiYXNlIDE2KQkJQmVpamluZyBOZXdtaW5lIFRlY2hub2xvZ3kKKwkJCQkxMCBmbG9vcixLZXNoaSBQbGF6YQorCQkJCUhhaURpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCitDOC0wQS1BOSAgIChoZXgpCQlRdWFudGEgQ29tcHV0ZXIgSW5jLgorQzgwQUE5ICAgICAoYmFzZSAxNikJCVF1YW50YSBDb21wdXRlciBJbmMuCisJCQkJMjExLCBXZW4gSHdhIDJuZCBSZC4sCisJCQkJVGFvIFl1YW4gS3VlaSBTaGFuIDMzMzc3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDOC0xRS04RSAgIChoZXgpCQlBRFYgU2VjdXJpdHkgKFMpIFB0ZSBMdGQKK0M4MUU4RSAgICAgKGJhc2UgMTYpCQlBRFYgU2VjdXJpdHkgKFMpIFB0ZSBMdGQKKwkJCQk1NiBEdW5sb3AgU3RyZWV0CisJCQkJMjA5Mzg2CisJCQkJU0lOR0FQT1JFCisKK0M4LTIwLThFICAgKGhleCkJCVN0b3JhZ2VkYXRhCitDODIwOEUgICAgIChiYXNlIDE2KQkJU3RvcmFnZWRhdGEKKwkJCQlSYW5kc3RhZCAyMjExNworCQkJCUFsbWVyZSBGbGV2b2xhbmQgMTMxNkJXCisJCQkJTkVUSEVSTEFORFMKKworQzgtMkEtMTQgICAoaGV4KQkJQXBwbGUgSW5jCitDODJBMTQgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitDOC0yRS05NCAgIChoZXgpCQlIYWxmYSBFbnRlcnByaXNlIENvLiwgTHRkLgorQzgyRTk0ICAgICAoYmFzZSAxNikJCUhhbGZhIEVudGVycHJpc2UgQ28uLCBMdGQuCisJCQkJNUYsIE5vLjEwMiwgTWluZyBDaHVhbiBSb2FkCisJCQkJSHNpbiBUaWVuIFRhaXBlaSBDb3VudHkgMjMxNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0M4LTM1LUI4ICAgKGhleCkJCUVyaWNzc29uLCBFQUIvUldJL0sKK0M4MzVCOCAgICAgKGJhc2UgMTYpCQlFcmljc3NvbiwgRUFCL1JXSS9LCisJCQkJU2tvbGfvv71uZ2VuIDE3CisJCQkJR++/vXZsZQorCQkJCVNFLTgwMCAwNgorCQkJCVNXRURFTgorCitDOC0zQS0zNSAgIChoZXgpCQlUZW5kYSBUZWNobm9sb2d5IENvLiwgTHRkLgorQzgzQTM1ICAgICAoYmFzZSAxNikJCVRlbmRhIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJUm9vbSA2MDEtNjAyLFIvRCBCdWlsZGluZyBDb21wbGV4LFRzaW5naHVhIEhpZ2gtVGVjaCBQYXJrLG5hbnNoYW4gZGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitDOC0zRS05OSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworQzgzRTk5ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCitDOC0zRS1BNyAgIChoZXgpCQlLVU5CVVMgR21iSAorQzgzRUE3ICAgICAoYmFzZSAxNikJCUtVTkJVUyBHbWJICisJCQkJSGVlcndlZyAxNUEKKwkJCQlEZW5rZW5kb3JmIEJXIEQtNzM3NzAKKwkJCQlHRVJNQU5ZCisKK0M4LTQ1LTI5ICAgKGhleCkJCUlNSyBOZXR3b3JrcyBDby4sTHRkCitDODQ1MjkgICAgIChiYXNlIDE2KQkJSU1LIE5ldHdvcmtzIENvLixMdGQKKwkJCQkyMDEtSG8ganVuZ3JpYmp1bmphLCAxNi0zYnVuamksIAorCQkJCUd1dWktZG9uZywgR3dhbmdqaW4tZ3UKKwkJCQlTZW91bCAgMTQzLTgxNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitDOC00OC1GNSAgIChoZXgpCQlNRURJU09OIFhyYXkgQ28uLCBMdGQKK0M4NDhGNSAgICAgKGJhc2UgMTYpCQlNRURJU09OIFhyYXkgQ28uLCBMdGQKKwkJCQkzRiBCdXJpbSBCL0QgOTk5IERhZWNoaS1kb25nIAorCQkJCUdhbmduYW0tZ3UgCisJCQkJU2VvdWwgIDEzNS0yODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQzgtNEMtNzUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQzg0Qzc1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQzgtNjQtQzcgICAoaGV4KQkJenRlIGNvcnBvcmF0aW9uCitDODY0QzcgICAgIChiYXNlIDE2KQkJenRlIGNvcnBvcmF0aW9uCisJCQkJMTIvRi4senRlIFImRCBidWlsZGluZyxrZWppbmFuIFJvYWQsCisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKK0M4LTZDLTFFICAgKGhleCkJCURpc3BsYXkgU3lzdGVtcyBMdGQKK0M4NkMxRSAgICAgKGJhc2UgMTYpCQlEaXNwbGF5IFN5c3RlbXMgTHRkCisJCQkJMTYtUGFya292YWphIFN0cmVldCAyNgorCQkJCU1vc2NvdyAgMTA1NDg0CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKK0M4LTZDLTg3ICAgKGhleCkJCU1pdHJhc3RhciBUZWNobm9sb2d5CitDODZDODcgICAgIChiYXNlIDE2KQkJTWl0cmFzdGFyIFRlY2hub2xvZ3kKKwkJCQlOby42IElubm92YXRpb24gUm9hZCBJSQorCQkJCVNjaWVuY2UgUGFyaworCQkJCUhzaW4tQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0M4LTZDLUI2ICAgKGhleCkJCU9wdGNvbSBDby4sIEx0ZC4KK0M4NkNCNiAgICAgKGJhc2UgMTYpCQlPcHRjb20gQ28uLCBMdGQuCisJCQkJNzkyLTMgVG9taWdhb2thCisJCQkJSXdhdGEgU2hpenVva2EgNDM4LTA4MDMKKwkJCQlKQVBBTgorCitDOC03Mi00OCAgIChoZXgpCQlBcGxpY29tIE95CitDODcyNDggICAgIChiYXNlIDE2KQkJQXBsaWNvbSBPeQorCQkJCVJhdXRhdGllbmthdHUgNTYKKwkJCQnE5G5la29za2kgTORuc2ktU3VvbWkgNDQxMDEKKwkJCQlGSU5MQU5ECisKK0M4LTdFLTc1ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorQzg3RTc1ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitDOC04NC0zOSAgIChoZXgpCQlTdW5yaXNlIFRlY2hub2xvZ2llcworQzg4NDM5ICAgICAoYmFzZSAxNikJCVN1bnJpc2UgVGVjaG5vbG9naWVzCisJCQkJNTQgQ29tbWVyY2lhbCBTdHJlZXQKKwkJCQlSYXluaGFtIE1BIDAyNzY3CisJCQkJVU5JVEVEIFNUQVRFUworCitDOC04NC00NyAgIChoZXgpCQlCZWF1dGlmdWwgRW50ZXJwcmlzZSBDby4sIEx0ZAorQzg4NDQ3ICAgICAoYmFzZSAxNikJCUJlYXV0aWZ1bCBFbnRlcnByaXNlIENvLiwgTHRkCisJCQkJMjZ0aCBGbG9vciwgQmVhdXRpZnVsIEdyb3VwIFRvd2VyLCA3NyBDb25uYXVnaHQgUm9hZCBDZW50cmFsCisJCQkJSE9ORyBLT05HCisKK0M4LTg3LTNCICAgKGhleCkJCU5ldCBPcHRpY3MKK0M4ODczQiAgICAgKGJhc2UgMTYpCQlOZXQgT3B0aWNzCisJCQkJNTMwMyBCZXRzeSBSb3NzIERyaXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M4LThCLTQ3ICAgKGhleCkJCU9wdGljb3Mgcy5yLmwuCitDODhCNDcgICAgIChiYXNlIDE2KQkJT3B0aWNvcyBzLnIubC4KKwkJCQl2aWEgVGVyemkgZGkgUy5BZ2F0YSAyCisJCQkJQnJlbWJhdGUgZGkgU29wcmEgQmVyZ2FtbyAyNDAzMAorCQkJCUlUQUxZCisKK0M4LTkzLTgzICAgKGhleCkJCUVtYmVkZGVkIEF1dG9tYXRpb24sIEluYy4KK0M4OTM4MyAgICAgKGJhc2UgMTYpCQlFbWJlZGRlZCBBdXRvbWF0aW9uLCBJbmMuCisJCQkJMTczNDUgQWJiZXkgRHJpdmUKKwkJCQlTdXJyZXkgQkMgVjROIDRNMworCQkJCUNBTkFEQQorCitDOC05Ny05RiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorQzg5NzlGICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTcwCisJCQkJRklOTEFORAorCitDOC05Qy0xRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitDODlDMUQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitDOC05Qy1EQyAgIChoZXgpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTSBDTy4sIExURC4KK0M4OUNEQyAgICAgKGJhc2UgMTYpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTSBDTy4sIExURC4KKwkJCQlOTy4gMjM5LCBTZWMuIDIsIFRpIERpbmcgQmx2ZC4KKwkJCQlUYWlwZWkgIDExNDkzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDOC1BMS1CNiAgIChoZXgpCQlTaGVuemhlbiBMb25nd2F5IFRlY2hub2xvZ2llcyBDby4sIEx0ZAorQzhBMUI2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIExvbmd3YXkgVGVjaG5vbG9naWVzIENvLiwgTHRkCisJCQkJU3VpdGUgNzA3LEluY3ViYXRpb24gQnVpbGRpbmcsIENoaW5hIEFjYWRlbXkgb2YgU2NpZW5jZSZUZWNoIERldmVsb3BtZW50LCBTb3V0aCBhcmVhIAorCQkJCUhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKK0M4LUE3LTBBICAgKGhleCkJCVZlcml6b24gQnVzaW5lc3MKK0M4QTcwQSAgICAgKGJhc2UgMTYpCQlWZXJpem9uIEJ1c2luZXNzCisJCQkJT25lIERpZ2V4IFBsYXphCisJCQkJQmVsdHN2aWxsZSBNRCAyMDcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworQzgtQTctMjkgICAoaGV4KQkJU1lTdHJvbmljcyBDby4sIEx0ZC4KK0M4QTcyOSAgICAgKGJhc2UgMTYpCQlTWVN0cm9uaWNzIENvLiwgTHRkLgorCQkJCSMzMDEtMTQwNCwgQnVjaHVuIFRlY2huby1QYXJrIElJCisJCQkJMzY1LCBTYW1qZW9uZy1kb25nLCBPamVvbmctZ3UKKwkJCQlCdWNodW4gQ2l0eSBLeXVuZyBnaS1kbyA0MjEtNzQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0M4LUFBLUNDICAgKGhleCkJCVBSSVZBVEUKK0M4QUFDQyAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorQzgtQkMtQzggICAoaGV4KQkJQXBwbGUKK0M4QkNDOCAgICAgKGJhc2UgMTYpCQlBcHBsZQorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworQzgtQzEtMjYgICAoaGV4KQkJWlBNIEluZHVzdHJpYSBlIENvbWVyY2lvIEx0ZGEKK0M4QzEyNiAgICAgKGJhc2UgMTYpCQlaUE0gSW5kdXN0cmlhIGUgQ29tZXJjaW8gTHRkYQorCQkJCVJ1YSBBcmFndWFpYSwgMTc1CisJCQkJQ2Fub2FzIFJTIDkyNDEwLTAwMAorCQkJCUJSQVpJTAorCitDOC1DMS0zQyAgIChoZXgpCQlSdWdnZWRUZWsgSGFuZ3pob3UgQ28uLCBMdGQKK0M4QzEzQyAgICAgKGJhc2UgMTYpCQlSdWdnZWRUZWsgSGFuZ3pob3UgQ28uLCBMdGQKKwkJCQlaaGVqaWFuZyBVbml2ZXJzaXR5IE5hdGlvbmFsIFNjaWVuY2UgUGFyaworCQkJCTUyNSBYaXhpIFJvYXJkLCBCdWlsZGluZyBDIFJvb20gNDAxCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEzCisJCQkJQ0hJTkEKKworQzgtQ0QtNzIgICAoaGV4KQkJU0FHRU1DT00KK0M4Q0Q3MiAgICAgKGJhc2UgMTYpCQlTQUdFTUNPTQorCQkJCTI1MCByb3V0ZSBkZSBsJ0VtcGVyZXVyCisJCQkJUlVFSUwgTUFMTUFJU09OICA5Mjg0OAorCQkJCUZSQU5DRQorCitDOC1EMS1EMSAgIChoZXgpCQlBR0FpVCBUZWNobm9sb2d5IENvcnBvcmF0aW9uCitDOEQxRDEgICAgIChiYXNlIDE2KQkJQUdBaVQgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTVGLE5vLjI3LTgsIFNlYy4gMiwgWmhvbmd6aGVuZyBFLiBSZC4sIERhbnNodWkgVG93bnNoaXAgCisJCQkJVGFpcGVpIENvdW50eSAgIDI1MTcwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDOC1EMi1DMSAgIChoZXgpCQlKZXRsdW4gKFNoZW56aGVuKSBDb3Jwb3JhdGlvbgorQzhEMkMxICAgICAoYmFzZSAxNikJCUpldGx1biAoU2hlbnpoZW4pIENvcnBvcmF0aW9uCisJCQkJMTAwOEEgU2t5d29ydGggQnVpbGRpbmcsIEdhby14aW4gUmQgU291dGgKKwkJCQlIaWdoLVRlY2ggUGFyaywgTmFuU2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuICA1MTgwNTcKKwkJCQlDSElOQQorCitDOC1ENS1GRSAgIChoZXgpCQlTaGVuemhlbiBab3dlZSBUZWNobm9sb2d5IENvLiwgTHRkCitDOEQ1RkUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gWm93ZWUgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCUJsb2NrIDUsIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgSW5kdXN0cmlhbCBQYXJrIG9mCisJCQkJUHJpdmF0ZWx5IE93bmVkIEVudGVycHJpc2VzLCBQaW5nc2hhbiwgWGlsaSwgTmFuc2hhbiBEaXN0cmljdCAsCisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDUxODA1NQorCQkJCUNISU5BCisKK0M4LURGLTdDICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitDOERGN0MgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1OTAKKwkJCQlGSU5MQU5ECisKK0M4LUVFLTA4ICAgKGhleCkJCVRBTkdUT1AgVEVDSE5PTE9HWSBDTy4sTFRECitDOEVFMDggICAgIChiYXNlIDE2KQkJVEFOR1RPUCBURUNITk9MT0dZIENPLixMVEQKKwkJCQkxRixOTy4xNTMsTGlnb24gU3QuLEJlaXRvdSBEaXN0cmljdAorCQkJCVRhaXBlaSBDaXR5ICAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDOC1FRi0yRSAgIChoZXgpCQlCZWlqaW5nIEdlZmVpIFRlY2guIENvLiwgTHRkIAorQzhFRjJFICAgICAoYmFzZSAxNikJCUJlaWppbmcgR2VmZWkgVGVjaC4gQ28uLCBMdGQgCisJCQkJQS02MDMgUG93ZXIgQ3JlYXRpdmUgUGxhemEsIE5PLjEgU2hhbmdkaSBFLiBSZC4sSGFpZGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCitDOC1GRS0zMCAgIChoZXgpCQlCZWppbmcgREFZTyBNb2JpbGUgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IEx0ZC4KK0M4RkUzMCAgICAgKGJhc2UgMTYpCQlCZWppbmcgREFZTyBNb2JpbGUgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IEx0ZC4KKwkJCQlSb29tIDcxMiwgVUxPIFBhcmsgQnVpbGRpbmcgTm8uIDYwMUUKKwkJCQlCbG9jayBCLTExLTEgV2FuZ0ppbmcgQXJlYSwgIENoYW9ZYW5nIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMTAyCisJCQkJQ0hJTkEKKworQ0MtMDAtODAgICAoaGV4KQkJVFJVU1QgU1lTVEVNIENvLiwKK0NDMDA4MCAgICAgKGJhc2UgMTYpCQlUUlVTVCBTWVNURU0gQ28uLAorCQkJCTMtMTUtMS0xMDAxIHNoaW5zYWt1CisJCQkJdGFrYXRzdS1rdQorCQkJCUthd2FzYWtpLXNoaSBLYW5hZ2F3YSAyMTMtMDAxNAorCQkJCUpBUEFOCisKK0NDLTA1LTFCICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorQ0MwNTFCICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitDQy0wOC1FMCAgIChoZXgpCQlBcHBsZQorQ0MwOEUwICAgICAoYmFzZSAxNikJCUFwcGxlCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitDQy0wOS1DOCAgIChoZXgpCQlJTUFRTElRIExURAorQ0MwOUM4ICAgICAoYmFzZSAxNikJCUlNQVFMSVEgTFRECisJCQkJT2J2b2RueSBDYW5hbCA5M0EKKwkJCQlTdC5QZXRlcnNidXJnICAxOTExMTkKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworQ0MtMEMtREEgICAoaGV4KQkJTWlsam92YWt0IEFTCitDQzBDREEgICAgIChiYXNlIDE2KQkJTWlsam92YWt0IEFTCisJCQkJR2FubmVzdGFkdmVpZW4gMgorCQkJCUJvcnJlIFZlc3Rmb2xkIDMxODQKKwkJCQlOT1JXQVkKKworQ0MtMUUtRkYgICAoaGV4KQkJTWV0cm9sb2dpY2FsIEdyb3VwIEJWCitDQzFFRkYgICAgIChiYXNlIDE2KQkJTWV0cm9sb2dpY2FsIEdyb3VwIEJWCisJCQkJTWFyaW5pZXJzd2VnIDE1MQorCQkJCVJvdHRlcmRhbSBadWlkLUhvbGxhbmQgMzAxMU5LCisJCQkJTkVUSEVSTEFORFMKKworQ0MtMjItMTggICAoaGV4KQkJSW5ub0RpZ2l0YWwgQ28uLCBMdGQuCitDQzIyMTggICAgIChiYXNlIDE2KQkJSW5ub0RpZ2l0YWwgQ28uLCBMdGQuCisJCQkJTm8uMzEwIDNGIEtvZm9tbyBUb3dlcgorCQkJCTE2LTMgU3VuZS1kb25nLCBCdW5kYW5nLWd1CisJCQkJU3VuZ25hbS1jaXR5IEt5dW5nZ2ktZG8gNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitDQy0zNC1ENyAgIChoZXgpCQlHRVdJU1MgUy5QLkEuCitDQzM0RDcgICAgIChiYXNlIDE2KQkJR0VXSVNTIFMuUC5BLgorCQkJCVZJQSBBTEVTU0FORFJPIFZPTFRBIDEKKwkJCQlDRU5BVEUgU09UVE8gIDI0MDY5CisJCQkJSVRBTFkKKworQ0MtNDMtRTMgICAoaGV4KQkJVHJ1bXAgcy5hLgorQ0M0M0UzICAgICAoYmFzZSAxNikJCVRydW1wIHMuYS4KKwkJCQlydWUgZGUgbGEgTWFpdHJpc2UgOQorCQkJCU5pdmVsbGVzICAxNDAwCisJCQkJQkVMR0lVTQorCitDQy01MC03NiAgIChoZXgpCQlPY29tIENvbW11bmljYXRpb25zLCBJbmMuCitDQzUwNzYgICAgIChiYXNlIDE2KQkJT2NvbSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTEzRi02LCBOby4gMSwgQmFvIFNoZW5nIFJkLiwgCisJCQkJWW9uZyBIbyBDaXR5ICAyMzQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0NDLTUyLUFGICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorQ0M1MkFGICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTEFORSAzNTEsIFRBSVBJTkcgUkQuCisJCQkJU0VDLjEsIFRTQU8gVFVFTgorCQkJCU5BTi1UT1UgNTQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDQy01NC01OSAgIChoZXgpCQlPblRpbWUgTmV0d29ya3MgQVMKK0NDNTQ1OSAgICAgKGJhc2UgMTYpCQlPblRpbWUgTmV0d29ya3MgQVMKKwkJCQlHbGFkc3ZlaSAyMAorCQkJCU9zbG8gIDA0ODkKKwkJCQlOT1JXQVkKKworQ0MtNTUtQUQgICAoaGV4KQkJUklNCitDQzU1QUQgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c5CisJCQkJQ0FOQURBCisKK0NDLTVDLTc1ICAgKGhleCkJCVdlaWdodGVjaCBDb20uIEltcC4gRXhwLiBFcXVpcC4gUGVzYWdlbSBMdGRhCitDQzVDNzUgICAgIChiYXNlIDE2KQkJV2VpZ2h0ZWNoIENvbS4gSW1wLiBFeHAuIEVxdWlwLiBQZXNhZ2VtIEx0ZGEKKwkJCQlSb2RvdmlhIFZpcmfvv71saW8gVu+/vXJ6ZWEsIDMxMTAgLSBTYWxhIDAxCisJCQkJQ29zdGEgTm9ydGUgQ2VudGVyIC0gQmFpcnJvIFNhY28gR3JhbmRlCisJCQkJRmxvcmlhbu+/vXBvbGlzIFNDIDg4MDMyLTAwMQorCQkJCUJSQVpJTAorCitDQy01RC00RSAgIChoZXgpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorQ0M1RDRFICAgICAoYmFzZSAxNikJCVp5WEVMIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCisJCQkJTm8uNiBJbm5vdmF0aW9uIFJvYWQgSUksIFNjaWVuY2UgUGFyaywgCisJCQkJSHNpbiBDaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQ0MtNjAtQkIgICAoaGV4KQkJRW1wb3dlciBSRiBTeXN0ZW1zCitDQzYwQkIgICAgIChiYXNlIDE2KQkJRW1wb3dlciBSRiBTeXN0ZW1zCisJCQkJMzE2IFcuIEZsb3JlbmNlIEF2ZQorCQkJCUluZ2xld29vZCBDQSA5MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworQ0MtNjktQjAgICAoaGV4KQkJR2xvYmFsIFRyYWZmaWMgVGVjaG5vbG9naWVzLCBMTEMKK0NDNjlCMCAgICAgKGJhc2UgMTYpCQlHbG9iYWwgVHJhZmZpYyBUZWNobm9sb2dpZXMsIExMQworCQkJCTc4MDAgVGhpcmQgU3RyZWV0IE5vcnRoCisJCQkJU3VpdGUgMTAwCisJCQkJU3QuIFBhdWwgTWlubmVzb3RhIDU1MTI4CisJCQkJVU5JVEVEIFNUQVRFUworCitDQy02Qi05OCAgIChoZXgpCQlNaW5ldGVjIFdpcmVsZXNzIFRlY2hub2xvZ2llcworQ0M2Qjk4ICAgICAoYmFzZSAxNikJCU1pbmV0ZWMgV2lyZWxlc3MgVGVjaG5vbG9naWVzCisJCQkJMTAgS2VtYmxhIFdheQorCQkJCVdpbGxldHRvbiBXQSA2MTU1CisJCQkJQVVTVFJBTElBCisKK0NDLTc2LTY5ICAgKGhleCkJCVNFRVRFQ0gKK0NDNzY2OSAgICAgKGJhc2UgMTYpCQlTRUVURUNICisJCQkJMTktMTUsIFNlb2t1LWRvbmcKKwkJCQlId2FzdW5nLXNpIEd5ZW9uZ2dpLWRvIDQ0NS0xNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQ0MtN0EtMzAgICAoaGV4KQkJQ01BWCBXaXJlbGVzcyBDby4sIEx0ZC4KK0NDN0EzMCAgICAgKGJhc2UgMTYpCQlDTUFYIFdpcmVsZXNzIENvLiwgTHRkLgorCQkJCUtUIEJvbmdkdWsgQi9EIDlGLCA2MjctMTUsIEJvbmdkdWstZG9uZworCQkJCU5hbWd1IERhZWd1IDcwNTcxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitDQy03RC0zNyAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorQ0M3RDM3ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworQ0MtN0UtRTcgICAoaGV4KQkJUGFuYXNvbmljIEFWQyBOZXR3b3JrcyBDb21wYW55CitDQzdFRTcgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIEFWQyBOZXR3b3JrcyBDb21wYW55CisJCQkJMS0xNSBNYXRzdW8tY2hvCisJCQkJS2Fkb21hIENpdHkgT3Nha2EgNTcxLTg1MDQKKwkJCQlKQVBBTgorCitDQy04Qy1FMyAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworQ0M4Q0UzICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCitDQy05Ni1BMCAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCitDQzk2QTAgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyOQorCQkJCUNISU5BCisKK0NDLTlFLTAwICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorQ0M5RTAwICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKK0NDLUFGLTc4ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KK0NDQUY3OCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgMjAxNjEzCisJCQkJQ0hJTkEKKworQ0MtQjUtNUEgICAoaGV4KQkJRnJhdW5ob2ZlciBJVFdNCitDQ0I1NUEgICAgIChiYXNlIDE2KQkJRnJhdW5ob2ZlciBJVFdNCisJCQkJRnJhdW5ob2ZlcnBsYXR6IDEKKwkJCQlLYWlzZXJzbGF1dGVybiBSaGluZWxhbmQtUGFsYXRpbmFlIDY3NjYzCisJCQkJR0VSTUFOWQorCitDQy1COC04OCAgIChoZXgpCQlBbkIgU2VjdXJpdGUgcy5hLgorQ0NCODg4ICAgICAoYmFzZSAxNikJCUFuQiBTZWN1cml0ZSBzLmEuCisJCQkJUnVlIGRlIEpvaWUsMzgtNDAKKwkJCQlMaWVnZSAgNDAwMAorCQkJCUJFTEdJVU0KKworQ0MtQkUtNzEgICAoaGV4KQkJT3B0aUxvZ2l4IEJWCitDQ0JFNzEgICAgIChiYXNlIDE2KQkJT3B0aUxvZ2l4IEJWCisJCQkJSm9vcCBHZWVzaW5rd2VnIDk5OQorCQkJCUFtc3RlcmRhbSBOSCAxMDk2QVoKKwkJCQlORVRIRVJMQU5EUworCitDQy1DNi0yQiAgIChoZXgpCQlUcmktU3lzdGVtcyBDb3Jwb3JhdGlvbgorQ0NDNjJCICAgICAoYmFzZSAxNikJCVRyaS1TeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJMy0yNy04IFRSUyBCdWlsZGluZyAzRgorCQkJCUtveWFzdW1hY2hpCisJCQkJSGFjaGlvamkgVG9reW8gMTkyLTA5MDQKKwkJCQlKQVBBTgorCitDQy1DQy00RSAgIChoZXgpCQlTdW4gRm91bnRhaW5oZWFkIFVTQS4gQ29ycCAKK0NDQ0M0RSAgICAgKGJhc2UgMTYpCQlTdW4gRm91bnRhaW5oZWFkIFVTQS4gQ29ycCAKKwkJCQk4MDEgUy4gR2FyZmlsZWQgQVZFICMgMjM2IAorCQkJCUxvcyBBbmdlbGVzICBDYWxpZm9ybmlhICA5MTgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworQ0MtQ0QtNjQgICAoaGV4KQkJU00tRWxlY3Ryb25pYyBHbWJICitDQ0NENjQgICAgIChiYXNlIDE2KQkJU00tRWxlY3Ryb25pYyBHbWJICisJCQkJV2FsZHdlZyAyCisJCQkJU3RhcGVsZmVsZCAvIEJyYWFrICAyMjE0NQorCQkJCUdFUk1BTlkKKworQ0MtQ0UtNDAgICAoaGV4KQkJSmFudGVxIENvcnAKK0NDQ0U0MCAgICAgKGJhc2UgMTYpCQlKYW50ZXEgQ29ycAorCQkJCTkyNzIgSmVyb25pbW8gUm9hZAorCQkJCVN1aXRlIDEyNAorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworQ0MtRDgtMTEgICAoaGV4KQkJQWljb25uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KK0NDRDgxMSAgICAgKGJhc2UgMTYpCQlBaWNvbm4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTVGLCBOTy4gOSwgQWxsZXkgMiwgTGFuZSAzNSwgSmktSHUgUmQuLCBOZWktSHUsIAorCQkJCVRhaXBlaSBDaXR5ICAxMTQ5NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQ0MtRDktRTkgICAoaGV4KQkJU0NSIEVuZ2luZWVycyBMdGQuCitDQ0Q5RTkgICAgIChiYXNlIDE2KQkJU0NSIEVuZ2luZWVycyBMdGQuCisJCQkJNiBIYW9tYW51dCBTdC4KKwkJCQlOZXRhbnlhICA0MjUwNAorCQkJCUlTUkFFTAorCitDQy1FQS0xQyAgIChoZXgpCQlEQ09OV09SS1MgIENvLiwgTHRkCitDQ0VBMUMgICAgIChiYXNlIDE2KQkJRENPTldPUktTICBDby4sIEx0ZAorCQkJCTE4Mi0xMyBEYWVydW5nIFBvc3QgVG93ZXIgMm5kIDVGCisJCQkJR3Vyby1kb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQ0MtRjMtQTUgICAoaGV4KQkJQ2hpIE1laSBDb21tdW5pY2F0aW9uIFN5c3RlbXMsIEluYworQ0NGM0E1ICAgICAoYmFzZSAxNikJCUNoaSBNZWkgQ29tbXVuaWNhdGlvbiBTeXN0ZW1zLCBJbmMKKwkJCQlOby40CisJCQkJTWluZ3NoZW5nIFN0cmVldAorCQkJCVR1Y2hlbmcgQ2l0eSBUYWlwZWkgQ291bnR5ICAyMzY3OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQ0MtRjYtN0EgICAoaGV4KQkJQXllY2thIENvbW11bmljYXRpb24gU3lzdGVtcyBMVEQKK0NDRjY3QSAgICAgKGJhc2UgMTYpCQlBeWVja2EgQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIExURAorCQkJCVBPQiAzMDU5CisJCQkJSG9kIEhhc2hhcm9uICA0NTEzMAorCQkJCUlTUkFFTAorCitDQy1GOC00MSAgIChoZXgpCQlMdW1ld2F2ZQorQ0NGODQxICAgICAoYmFzZSAxNikJCUx1bWV3YXZlCisJCQkJNDgwMyBCIFN0cmVldAorCQkJCVNhY3JhbWVudG8gQ0EgOTU4MTkKKwkJCQlVTklURUQgU1RBVEVTCisKK0NDLUY5LTU0ICAgKGhleCkJCUF2YXlhLCBJbmMKK0NDRjk1NCAgICAgKGJhc2UgMTYpCQlBdmF5YSwgSW5jCisJCQkJMjExIE1vdW50IEFpcnkgUm9hZCAKKwkJCQlCYXNraW5nIFJpZGdlIE5KIDA3OTIwLTIzMTEgCisJCQkJVU5JVEVEIFNUQVRFUworCitDQy1GQy02RCAgIChoZXgpCQlSSVogVFJBTlNNSVRURVJTCitDQ0ZDNkQgICAgIChiYXNlIDE2KQkJUklaIFRSQU5TTUlUVEVSUworCQkJCUJPWklEQVJFVklDRVZBIDEzCisJCQkJUC5PLkJPWCA2NTQKKwkJCQlaQUdSRUIgIDEwMDAwCisJCQkJQ1JPQVRJQQorCitDQy1GQy1CMSAgIChoZXgpCQlXaXJlbGVzcyBUZWNobm9sb2d5LCBJbmMuCitDQ0ZDQjEgICAgIChiYXNlIDE2KQkJV2lyZWxlc3MgVGVjaG5vbG9neSwgSW5jLgorCQkJCTIwNjQgRWFzdG1hbiBBdmUuICMxMTMKKwkJCQlWZW50dXJhIENBIDkzMDAzLTc3ODcKKwkJCQlVTklURUQgU1RBVEVTCisKK0QwLTEzLTFFICAgKGhleCkJCVN1bnJleCBUZWNobm9sb2d5IENvcnAKK0QwMTMxRSAgICAgKGJhc2UgMTYpCQlTdW5yZXggVGVjaG5vbG9neSBDb3JwCisJCQkJTm8uIDE4OC0xLENodW5nIENoZW5nIFJvYWQuLFRhIFlhIFNoaWFuZworCQkJCVRhaWNodW5nICA0MjgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0QwLTE1LTRBICAgKGhleCkJCXp0ZSBjb3Jwb3JhdGlvbgorRDAxNTRBICAgICAoYmFzZSAxNikJCXp0ZSBjb3Jwb3JhdGlvbgorCQkJCTEyL0YuLHp0ZSBSJkQgYnVpbGRpbmcsa2VqaW5hbiBSb2FkLAorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitEMC0xNy02QSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQgIAorRDAxNzZBICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZCAgCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0QwLTFDLUJCICAgKGhleCkJCUJlaWppbmcgQ3RpbWVzIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sIEx0ZC4KK0QwMUNCQiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEN0aW1lcyBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJN3RoIEZsb29yLCBKaW56aG91IEJ1aWxkaW5nLCBTdXpob3UgU3RyZWV0LCBOby43OSwgSGFpZGlhbiBEaXN0cmljdCwgCisJCQkJQmVpamluZyAgMTAwMDg5CisJCQkJQ0hJTkEKKworRDAtMjctODggICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLkx0ZAorRDAyNzg4ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC5Dby5MdGQKKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0QwLTM3LTYxICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCitEMDM3NjEgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0QwLTU3LTRDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0QwNTc0QyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0QwLTU4LTc1ICAgKGhleCkJCUFjdGl2ZSBDb250cm9sIFRlY2hub2xvZ3kgSW5jLgorRDA1ODc1ICAgICAoYmFzZSAxNikJCUFjdGl2ZSBDb250cm9sIFRlY2hub2xvZ3kgSW5jLgorCQkJCTE4MDAgQXBwbGVieSBMaW5lCisJCQkJVW5pdCA0CisJCQkJQnVybGluZ3RvbiBPbnRhcmlvIEw3TCA2QTEKKwkJCQlDQU5BREEKKworRDAtNUYtQ0UgICAoaGV4KQkJSGl0YWNoaSBEYXRhIFN5c3RlbXMKK0QwNUZDRSAgICAgKGJhc2UgMTYpCQlIaXRhY2hpIERhdGEgU3lzdGVtcworCQkJCTc1MCBDZW50cmFsIEV4cHJlc3N3YXkKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworRDAtNjYtN0IgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIExURAorRDA2NjdCICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMVEQKKwkJCQk0MTYsIE1hZXRhbi0zZG9uZywgWWVvbmd0b25nLWd1CisJCQkJU3V3b24tc2kgR3llb25nZ2ktZG8gNDQzNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0QwLTY3LUU1ICAgKGhleCkJCURlbGwgSW5jCitEMDY3RTUgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksIE1TOlJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKK0QwLTc1LUJFICAgKGhleCkJCVJlbm8gQSZhbXA7RQorRDA3NUJFICAgICAoYmFzZSAxNikJCVJlbm8gQSZhbXA7RQorCQkJCTQ2NTUgQWlyY2VudGVyIENpcmNsZQorCQkJCVJlbm8gTmV2YWRhIDg5NTAyCisJCQkJVU5JVEVEIFNUQVRFUworCitEMC03RC1FNSAgIChoZXgpCQlGb3J3YXJkIFBheSBTeXN0ZW1zLCBJbmMuCitEMDdERTUgICAgIChiYXNlIDE2KQkJRm9yd2FyZCBQYXkgU3lzdGVtcywgSW5jLgorCQkJCTk1MzEgV2VzdCA3OHRoIFN0LiwgIzI0NQorCQkJCUVkZW4gUHJhaXJpZSBNTiA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworRDAtODktOTkgICAoaGV4KQkJQVBDT04sIEluYy4KK0QwODk5OSAgICAgKGJhc2UgMTYpCQlBUENPTiwgSW5jLgorCQkJCTkyNTUgU1cgUGlvbmVlciBDb3VydAorCQkJCVdpbHNvbnZpbGxlIE9SIDk3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCitEMC05My1GOCAgIChoZXgpCQlTdG9uZXN0cmVldCBPbmUgTExDCitEMDkzRjggICAgIChiYXNlIDE2KQkJU3RvbmVzdHJlZXQgT25lIExMQworCQkJCTk5NjAgQ29ycG9yYXRlIENhbXB1cyBEcml2ZQorCQkJCVN1aXRlIDMzMDAKKwkJCQlMb3Vpc3ZpbGxlIEtZIDQwMjIzCisJCQkJVU5JVEVEIFNUQVRFUworCitEMC05Qi0wNSAgIChoZXgpCQlFbXRyb25peAorRDA5QjA1ICAgICAoYmFzZSAxNikJCUVtdHJvbml4CisJCQkJNSMgR2FvcGVuZyBEYWRhbworCQkJCVJvb20gNDA0IywgQnVpbGRpbmcgQgorCQkJCUNoZW5nZHUgIDYxMDA0MQorCQkJCUNISU5BCisKK0QwLUEzLTExICAgKGhleCkJCU5ldWJlcmdlciBHZWLvv711ZGVhdXRvbWF0aW9uIEdtYkgKK0QwQTMxMSAgICAgKGJhc2UgMTYpCQlOZXViZXJnZXIgR2Vi77+9dWRlYXV0b21hdGlvbiBHbWJICisJCQkJT2JlcmVyIEthaXNlcndlZyA2CisJCQkJUm90aGVuYnVyZyBvLmQuVC4gQmF5ZXJuIDkxNTQxCisJCQkJR0VSTUFOWQorCitEMC1BRi1CNiAgIChoZXgpCQlMaW5rdG9wIFRlY2hub2xvZ3kgQ28uLCBMVEQKK0QwQUZCNiAgICAgKGJhc2UgMTYpCQlMaW5rdG9wIFRlY2hub2xvZ3kgQ28uLCBMVEQKKwkJCQkyRiBHdWFuZ3llIEJ1bGlkaW5nLCBUb3JjaCBIaS1UZWNoLCAKKwkJCQlYaWFtZW4gRnVqaWFuIDM2MTAwNgorCQkJCUNISU5BCisKK0QwLUIzLTNGICAgKGhleCkJCVNIRU5aSEVOIFRJTk5PIE1PQklMRSBURUNITk9MT0dZIENPLixMVEQuCitEMEIzM0YgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gVElOTk8gTU9CSUxFIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQk0L0YuLEgtMyBCdWlsZGluZyxPQ1QgRWFzdGVybiBsbmR1c3RyaWFsIFBhcmsuIE5PLjEgWGlhbmdTaGFuIEVhc3QgUm9hZC4sCisJCQkJTmFuIFNoYW4gRGlzdHJpY3QsCisJCQkJR1VBTkdET05HIFNIRU5aSEVOIDUxODA1MworCQkJCUNISU5BCisKK0QwLUI1LTNEICAgKGhleCkJCVNFUFJPIFJPQk9USVFVRQorRDBCNTNEICAgICAoYmFzZSAxNikJCVNFUFJPIFJPQk9USVFVRQorCQkJCVpJIEFjdGktRXN0IExlcyBBam9uY3MKKwkJCQlCUDg0CisJCQkJTEEgUk9DSEUgU1VSIFlPTiAgRjg1MDAwCisJCQkJRlJBTkNFCisKK0QwLUJCLTgwICAgKGhleCkJCVNITCBUZWxlbWVkaWNpbmUgSW50ZXJuYXRpb25hbCBMdGQuCitEMEJCODAgICAgIChiYXNlIDE2KQkJU0hMIFRlbGVtZWRpY2luZSBJbnRlcm5hdGlvbmFsIEx0ZC4KKwkJCQk5MCBZaWdhbCBBbG9uCisJCQkJVGVsIEF2aXYgIDY3ODkxCisJCQkJSVNSQUVMCisKK0QwLUMyLTgyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0QwQzI4MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitEMC1EMC1GRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitEMEQwRkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitEMC1EMi04NiAgIChoZXgpCQlCZWNrbWFuIENvdWx0ZXIgQmlvbWVkaWNhbCBLLksuCitEMEQyODYgICAgIChiYXNlIDE2KQkJQmVja21hbiBDb3VsdGVyIEJpb21lZGljYWwgSy5LLgorCQkJCTQ1NC0zMiBIaWdhc2hpbm8sCisJCQkJTmFnYWl6dW1pLWNobywgU3VudG8tZ3VuLCBTaGl6dW9rYS1rZW4gNDExLTA5NDMKKwkJCQlKQVBBTgorCitEMC1EMy1GQyAgIChoZXgpCQlNaW9zLCBMdGQuCitEMEQzRkMgICAgIChiYXNlIDE2KQkJTWlvcywgTHRkLgorCQkJCTEzMDEgQmFuayBvZiBBbWVyaWNhIFRvd2VyCisJCQkJMTIgSGFyY291dCBSb2FkCisJCQkJQ2VudHJhbCAgLgorCQkJCUhPTkcgS09ORworCitEMC1ERi05QSAgIChoZXgpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorRDBERjlBICAgICAoYmFzZSAxNikJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYsOTAsQ2hpZW4gMSBSb2FkLCBDaHVuZ0hvLiAKKwkJCQlUYWlwZWkgIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitEMC1FMy00NyAgIChoZXgpCQlZb2dhCitEMEUzNDcgICAgIChiYXNlIDE2KQkJWW9nYQorCQkJCVRhbW1zYWFyZSB0ZWUgNDcKKwkJCQlUYWxsaW5uIEhhcmp1bWFhIDExMzE2CisJCQkJRVNUT05JQQorCitEMC1FNC0wQiAgIChoZXgpCQlXZWFyYWJsZSBJbmMuCitEMEU0MEIgICAgIChiYXNlIDE2KQkJV2VhcmFibGUgSW5jLgorCQkJCTM4MjUgQ2hhcmxlcyBEci4KKwkJCQlOb3J0aGJyb29rIElMIDYwMDYyCisJCQkJVU5JVEVEIFNUQVRFUworCitEMC1FNS00RCAgIChoZXgpCQlQYWNlIHBsYworRDBFNTREICAgICAoYmFzZSAxNikJCVBhY2UgcGxjCisJCQkJU2FsdHMgTWlsbAorCQkJCVZpY3RvcmlhIFJvYWQKKwkJCQlCcmFkZm9yZCBXZXN0IFlvcmtzaGlyZSBCRDE4IDNMRgorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0QwLUVCLTlFICAgKGhleCkJCVNlb3dvbyBJbmMuCitEMEVCOUUgICAgIChiYXNlIDE2KQkJU2Vvd29vIEluYy4KKwkJCQlKaW5TdW5nIEIvRCAxLTIgR3VuamEtZG9uZywgR3dhbmdqaW4tZ3UsIAorCQkJCVNlb3VsICAxNDMtODM3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0QwLUYwLURCICAgKGhleCkJCUVyaWNzc29uCitEMEYwREIgICAgIChiYXNlIDE2KQkJRXJpY3Nzb24KKwkJCQkxMDAgSGVhZHF1YXJ0ZXJzIERyCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTAwLTBEICAgKGhleCkJCVBob2VuaXggQnJvYWRiYW5kIFRlY2hub2xvZ2llcywgTExDLgorRDQwMDBEICAgICAoYmFzZSAxNikJCVBob2VuaXggQnJvYWRiYW5kIFRlY2hub2xvZ2llcywgTExDLgorCQkJCTU4OSBCZXRobGVoZW0gUGlrZQorCQkJCVN1aXRlIDEwMDAKKwkJCQlNb250Z29tZXJ5dmlsbGUgUEEgMTg5MzYKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTExLUQ2ICAgKGhleCkJCVNob3RTcG90dGVyLCBJbmMuCitENDExRDYgICAgIChiYXNlIDE2KQkJU2hvdFNwb3R0ZXIsIEluYy4KKwkJCQkxMDYwIFRlcnJhIEJlbGxhIEF2ZS4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCitENC0xMi05NiAgIChoZXgpCQlBbm9iaXQgVGVjaG5vbG9naWVzIEx0ZC4KK0Q0MTI5NiAgICAgKGJhc2UgMTYpCQlBbm9iaXQgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQk4IEhhc2FkbmFvdCBTdC4KKwkJCQlQT0IgMTIxNDcKKwkJCQlIZXJ6ZWxpeWEgUGl0dWFjaCAgIDQ2NzI4CisJCQkJSVNSQUVMCisKK0Q0LTFGLTBDICAgKGhleCkJCVRWSSBWaXNpb24gT3kKK0Q0MUYwQyAgICAgKGJhc2UgMTYpCQlUVkkgVmlzaW9uIE95CisJCQkJQXNlbnRhamFua2F0dSAzCisJCQkJSGVsc2lua2kgIDAwODgwCisJCQkJRklOTEFORAorCitENC0yOC1CMiAgIChoZXgpCQlpb0JyaWRnZSwgSW5jLgorRDQyOEIyICAgICAoYmFzZSAxNikJCWlvQnJpZGdlLCBJbmMuCisJCQkJMjI1IENlZGFyIEhpbGwgU3RyZWV0CisJCQkJU3VpdGUgMjAwCisJCQkJTWFybGJvcm91Z2ggTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTJDLTNEICAgKGhleCkJCVNreSBMaWdodCBEaWdpdGFsIExpbWl0ZWQKK0Q0MkMzRCAgICAgKGJhc2UgMTYpCQlTa3kgTGlnaHQgRGlnaXRhbCBMaW1pdGVkCisJCQkJUm0uIDEwMDkgS3dvbmcgU2FuZyBIb25nIENlbnRyZSwgMTUxLTE1MyBIb2kgQnVuIFJvYWQsIEt3dW4gVG9uZywgS293bG9vbiwgCisJCQkJSG9uZyBLb25nICA5OTkwNzcKKwkJCQlDSElOQQorCitENC0zQS1FOSAgIChoZXgpCQlET05HR1VBTiBpcHQgSU5EVVNUUklBTCBDTy4sIExURAorRDQzQUU5ICAgICAoYmFzZSAxNikJCURPTkdHVUFOIGlwdCBJTkRVU1RSSUFMIENPLiwgTFRECisJCQkJTm8uNjYtMS5Jc3QgTmV3IEFyZWEsIE5hbnNoZSBEaXN0LiwgQ2hpZ2FuZyxIdW1lbiwKKwkJCQlEb25nZ3VhbiBHdWFuZ2RvbmcgNTIzOTAKKwkJCQlDSElOQQorCitENC0zRC02NyAgIChoZXgpCQlDYXJtYSBJbmR1c3RyaWVzIEluYy4KK0Q0M0Q2NyAgICAgKGJhc2UgMTYpCQlDYXJtYSBJbmR1c3RyaWVzIEluYy4KKwkJCQkxMzIgV2Fsc2ggUm9hZAorCQkJCUxpbmRzYXkgT250YXJpbyBLOVYgNFIzCisJCQkJQ0FOQURBCisKK0Q0LTRDLTI0ICAgKGhleCkJCVZ1cHBhbGFtcml0aGEgTWFnbmV0aWMgQ29tcG9uZW50cyBMVEQKK0Q0NEMyNCAgICAgKGJhc2UgMTYpCQlWdXBwYWxhbXJpdGhhIE1hZ25ldGljIENvbXBvbmVudHMgTFRECisJCQkJM3JkIEZsb29yLCAzMDcgLE15IEhvbWUgQXNob2thIENoYW1iZXJzLFMuUCBSb2FkLCAKKwkJCQlTZWN1bmRlcmFiYWQgQW5kaHJhUHJhZGVzaCA1MDAwMDMKKwkJCQlJTkRJQQorCitENC00Qy1BNyAgIChoZXgpCQlJbmZvcm10ZWtobmlrYSAmIENvbW11bmljYXRpb24sIExMQworRDQ0Q0E3ICAgICAoYmFzZSAxNikJCUluZm9ybXRla2huaWthICYgQ29tbXVuaWNhdGlvbiwgTExDCisJCQkJMSwgYnVpbGQuIDIvMSwgVmVyaG5heWEKKwkJCQlLcmFzbm9zZWxza2F5YSBTdC4KKwkJCQlNb3Njb3cgIDEwNzE0MAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCitENC00Ri04MCAgIChoZXgpCQlLZW1wZXIgRGlnaXRhbCBHbWJICitENDRGODAgICAgIChiYXNlIDE2KQkJS2VtcGVyIERpZ2l0YWwgR21iSAorCQkJCUtvZW5pZ3N3YWxsIDE2LTE4CisJCQkJUmVja2xpbmdoYXVzZW4gTm9ydGgtUmhpbmUtV2VzdHBoYWxpYSA0NTY1NworCQkJCUdFUk1BTlkKKworRDQtNTItNTEgICAoaGV4KQkJSUJUIEluZ2VuaWV1cmJ1cmVhdSBCcm9lbm5pbWFubiBUaHVuCitENDUyNTEgICAgIChiYXNlIDE2KQkJSUJUIEluZ2VuaWV1cmJ1cmVhdSBCcm9lbm5pbWFubiBUaHVuCisJCQkJS2FzZXJuZW5zdHJhc3NlIDUKKwkJCQlUaHVuIEJlcm4gMzYwMAorCQkJCVNXSVRaRVJMQU5ECisKK0Q0LTUyLTk3ICAgKGhleCkJCW5TVFJFQU1TIFRlY2hub2xvZ2llcywgSW5jLgorRDQ1Mjk3ICAgICAoYmFzZSAxNikJCW5TVFJFQU1TIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEwRi0yLCBOby4gMzAyLCBSdWlndWFuZyBSZC4sIE5laWh1IERpc3RyaWN0LAorCQkJCVRhaXBlaSBDaXR5ICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0Q0LTVELTQyICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitENDVENDIgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlZcnR0aXBlbGxvbnRpZSA2CisJCQkJT3VsdSAgOTAyMzAKKwkJCQlGSU5MQU5ECisKK0Q0LTY2LUE4ICAgKGhleCkJCVJpZWRvIE5ldHdvcmtzIEdtYkgKK0Q0NjZBOCAgICAgKGJhc2UgMTYpCQlSaWVkbyBOZXR3b3JrcyBHbWJICisJCQkJV2FycGVsc3RyYXNzZSAxMAorCQkJCUR1ZWRpbmdlbiBGUiAzMTg2CisJCQkJU1dJVFpFUkxBTkQKKworRDQtNkMtQkYgICAoaGV4KQkJR29vZHJpY2ggSVNSCitENDZDQkYgICAgIChiYXNlIDE2KQkJR29vZHJpY2ggSVNSCisJCQkJNjYwMCBHdWx0b24gQ3J0CisJCQkJQWxidXF1ZXJxdWUgTk0gODcxMDkKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTZDLURBICAgKGhleCkJCUNTTSBHbWJICitENDZDREEgICAgIChiYXNlIDE2KQkJQ1NNIEdtYkgKKwkJCQlSYWlmZmVpc2Vuc3RyLiAzNAorCQkJCUZpbGRlcnN0YWR0IEJhZGVuLVfvv71ydHRlbWJlcmcgNzA3OTQKKwkJCQlHRVJNQU5ZCisKK0Q0LTZGLTQyICAgKGhleCkJCVdBWEVTUyBVU0EgSW5jCitENDZGNDIgICAgIChiYXNlIDE2KQkJV0FYRVNTIFVTQSBJbmMKKwkJCQkxNDAxIERvdmUgU3RyZWV0CisJCQkJU3VpdGUgMjIwCisJCQkJTmV3cG9ydCBCZWFjaCBDQSA5MjY2MAorCQkJCVVOSVRFRCBTVEFURVMKKworRDQtNzktQzMgICAoaGV4KQkJQ2FtZXJvbmV0IEdtYkggJmFtcDsgQ28uIEtHCitENDc5QzMgICAgIChiYXNlIDE2KQkJQ2FtZXJvbmV0IEdtYkggJmFtcDsgQ28uIEtHCisJCQkJRWxiZXJmZWxkZXIgU3RyYXNzZSA5NgorCQkJCVJlbXNjaGVpZCBOUlcgNDI4NTMKKwkJCQlHRVJNQU5ZCisKK0Q0LTdCLTc1ICAgKGhleCkJCUhBUlRJTkcgRWxlY3Ryb25pY3MgR21iSCAmIENvLiBLRworRDQ3Qjc1ICAgICAoYmFzZSAxNikJCUhBUlRJTkcgRWxlY3Ryb25pY3MgR21iSCAmIENvLiBLRworCQkJCU1hcmllbndlcmRlcnN0ci4gMworCQkJCUVzcGVsa2FtcCBOb3J0aCBSaGluZSBXZXN0cGhhbGlhIDMyMzM5CisJCQkJR0VSTUFOWQorCitENC04Mi0zRSAgIChoZXgpCQlBcmdvc3kgVGVjaG5vbG9naWVzLCBMdGQuCitENDgyM0UgICAgIChiYXNlIDE2KQkJQXJnb3N5IFRlY2hub2xvZ2llcywgTHRkLgorCQkJCTczLTIyMSBIYXlzdGFjayBSb2FkCisJCQkJUGFsbSBEZXNlcnQgQ0EgOTIyNjAKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTg1LTY0ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorRDQ4NTY0ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlNYWlsY29kZSA2LjMuMDQ5CisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworRDQtODgtOTAgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCitENDg4OTAgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Q0LThGLUFBICAgKGhleCkJCVNvZ2VjYW0gSW5kdXN0cmlhbCwgUy5BLgorRDQ4RkFBICAgICAoYmFzZSAxNikJCVNvZ2VjYW0gSW5kdXN0cmlhbCwgUy5BLgorCQkJCVJvc2FsaW5kIEZyYW5rbGluLCAyMi0yNAorCQkJCVBUQSBDYW1wYW5pbGxhcworCQkJCU1hbGFnYSAgMjk1OTAKKwkJCQlTUEFJTgorCitENC05MS1BRiAgIChoZXgpCQlFbGVjdHJvYWN1c3RpY2EgR2VuZXJhbCBJYmVyaWNhLCBTLkEuCitENDkxQUYgICAgIChiYXNlIDE2KQkJRWxlY3Ryb2FjdXN0aWNhIEdlbmVyYWwgSWJlcmljYSwgUy5BLgorCQkJCUF2ZGEgQWxtb3phcmEsIDc5CisJCQkJWmFyYWdvemEgIDUwMDAzCisJCQkJU1BBSU4KKworRDQtOTQtNUEgICAoaGV4KQkJQ09TTU8gQ08uLCBMVEQKK0Q0OTQ1QSAgICAgKGJhc2UgMTYpCQlDT1NNTyBDTy4sIExURAorCQkJCTEtMTIsIEhpZ2FzaGktR290YW5kYSAyLWNob21lCisJCQkJU2hpbmFnYXdhLWt1IFRva3lvIDE0MS0wMDIyCisJCQkJSkFQQU4KKworRDQtOTYtREYgICAoaGV4KQkJU1VOR0pJTiBDJlQgQ08uLExURAorRDQ5NkRGICAgICAoYmFzZSAxNikJCVNVTkdKSU4gQyZUIENPLixMVEQKKwkJCQlEYWV5YQorCQkJCTM2Mi01CisJCQkJU2hldW5nIEd5ZW9uZ2dpIDQyOS04MDkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRDQtOUEtMjAgICAoaGV4KQkJQXBwbGUsIEluYworRDQ5QTIwICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTlDLTI4ICAgKGhleCkJCUpheUJpcmQgR2VhciBMTEMKK0Q0OUMyOCAgICAgKGJhc2UgMTYpCQlKYXlCaXJkIEdlYXIgTExDCisJCQkJMjgyNSBFYXN0IENvdHRvbndvb2QgUGFya3dheSAjNTAwCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTlDLThFICAgKGhleCkJCVVuaXZlcnNpdHkgb2YgRlVLVUkKK0Q0OUM4RSAgICAgKGJhc2UgMTYpCQlVbml2ZXJzaXR5IG9mIEZVS1VJCisJCQkJMy05LTEgQnVua3lvCisJCQkJRnVrdWkgQ2l0eSAgOTEwLTg1MDcKKwkJCQlKQVBBTgorCitENC05RS02RCAgIChoZXgpCQlXdWhhbiBaaG9uZ3l1YW4gSHVhZGlhbiBTY2llbmNlICYgVGVjaG5vbG9neSBDby4sCitENDlFNkQgICAgIChiYXNlIDE2KQkJV3VoYW4gWmhvbmd5dWFuIEh1YWRpYW4gU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLAorCQkJCU5PLjYsIDYgUm9hZCwgU2NpLiAmIFRlY2guIHJlZ2lvbiBvZiBIVVNULCBFYXN0IExha2UgRGV2ZWxvcG1lbnQgWm9uZSwKKwkJCQlXdWhhbiAgSHViZWkgNDMwMjIzCisJCQkJQ0hJTkEKKworRDQtQTQtMjUgICAoaGV4KQkJU01BWCBUZWNobm9sb2d5IENvLiwgTHRkLgorRDRBNDI1ICAgICAoYmFzZSAxNikJCVNNQVggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkyRi4sIE5vLiAzLCBXdXF1YW4gM3JkLCBXdWd1IERpc3QuCisJCQkJTmV3IFRhaXBlaSBDaXR5ICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0Q0LUE5LTI4ICAgKGhleCkJCUdyZWVuV2F2ZSBSZWFsaXR5IEluYworRDRBOTI4ICAgICAoYmFzZSAxNikJCUdyZWVuV2F2ZSBSZWFsaXR5IEluYworCQkJCTM5IFBhcmtlcgorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCitENC1BQS1GRiAgIChoZXgpCQlNSUNSTyBXT1JMRCAKK0Q0QUFGRiAgICAgKGJhc2UgMTYpCQlNSUNSTyBXT1JMRCAKKwkJCQkxOTM3MCBWQU4gTkVTUyBBVkUgCisJCQkJVE9SUkFOQ0UgIENBIDkwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCitENC1DMS1GQyAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorRDRDMUZDICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJWXJ0dGlwZWxsb250aWUgNgorCQkJCU91bHUgIDkwMjMwCisJCQkJRklOTEFORAorCitENC1DNy02NiAgIChoZXgpCQlBY2VudGljIEdtYkgKK0Q0Qzc2NiAgICAgKGJhc2UgMTYpCQlBY2VudGljIEdtYkgKKwkJCQlWZW5sb2VyIFN0cmFzc2UgMTUxLTE1MworCQkJCUNvbG9nbmUgIDUwNjcyCisJCQkJR0VSTUFOWQorCitENC1DQi1BRiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorRDRDQkFGICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTkwCisJCQkJRklOTEFORAorCitENC1EMS04NCAgIChoZXgpCQlBREIgQnJvYWRiYW5kIEl0YWxpYQorRDREMTg0ICAgICAoYmFzZSAxNikJCUFEQiBCcm9hZGJhbmQgSXRhbGlhCisJCQkJdmlhIFNhcmNhIDMzNgorCQkJCU1pbGFubyAgMjAxMjYKKwkJCQlJVEFMWQorCitENC1EOC05OCAgIChoZXgpCQlLb3JlYSBDTk8gVGVjaCBDby4sIEx0ZAorRDREODk4ICAgICAoYmFzZSAxNikJCUtvcmVhIENOTyBUZWNoIENvLiwgTHRkCisJCQkJIzI0MC0xLFVpZ29rLVJpCisJCQkJWWVvbmdzdW4tTXllb24KKwkJCQlNdW5neWVvbmctU2kgR3llb25nc2FuZ2J1ay1kbyA3NDUtODUzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Q0LUUzLTJDICAgKGhleCkJCVMuIFNpZWRsZSAmIFNvaG5lCitENEUzMkMgICAgIChiYXNlIDE2KQkJUy4gU2llZGxlICYgU29obmUKKwkJCQlCcmVnc3RyYXNzZSAxCisJCQkJRnVydHdhbmdlbiAgRC03ODEyMAorCQkJCUdFUk1BTlkKKworRDQtRTgtQjIgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworRDRFOEIyICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRDQtRjAtMjcgICAoaGV4KQkJTmF2ZXRhcyBFbmVyZ3kgTWFuYWdlbWVudAorRDRGMDI3ICAgICAoYmFzZSAxNikJCU5hdmV0YXMgRW5lcmd5IE1hbmFnZW1lbnQKKwkJCQkxN0EgRGViZW4gTWlsbCBCdXNpbmVzcyBDZW50cmUKKwkJCQlPbGQgTWFsdGluZ3MgQXBwcm9hY2gKKwkJCQlXb29kYnJpZGdlIFN1ZmZvbGsgSVAxMiAxQkwKKwkJCQlVTklURUQgS0lOR0RPTQorCitENC1GMC1CNCAgIChoZXgpCQlOYXBjbyBTZWN1cml0eSBUZWNobm9sb2dpZXMKK0Q0RjBCNCAgICAgKGJhc2UgMTYpCQlOYXBjbyBTZWN1cml0eSBUZWNobm9sb2dpZXMKKwkJCQkzMzMgQmF5dmlldyBBdmUKKwkJCQlBbWl0eXZpbGxlIE5ZIDExNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCitENC1GMS00MyAgIChoZXgpCQlJUFJPQUQuLEluYworRDRGMTQzICAgICAoYmFzZSAxNikJCUlQUk9BRC4sSW5jCisJCQkJIzUwNSBCeXVrc2FuIGRpZ2l0YWwgdmFsbGV5IDcsIDE3MC0xMywKKwkJCQlHdXJvLTMtRG9uZywgR3Vyby1ndQorCQkJCVNlb3VsICAxNTItODQ3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Q4LTFCLUZFICAgKGhleCkJCVRXSU5MSU5YIENPUlBPUkFUSU9OCitEODFCRkUgICAgIChiYXNlIDE2KQkJVFdJTkxJTlggQ09SUE9SQVRJT04KKwkJCQlFU1BBQ0UgREVTQ0FSVEVTIEJBVCBCCisJCQkJNDI1IFJVRSBSRU5FIERFU0NBUlRFUworCQkJCUFJWCBFTiBQUk9WRU5DRSBQUk9WRU5DRSAxMzg1NworCQkJCUZSQU5DRQorCitEOC0xQy0xNCAgIChoZXgpCQlDb21wYWN0YSBJbnRlcm5hdGlvbmFsLCBMdGQuCitEODFDMTQgICAgIChiYXNlIDE2KQkJQ29tcGFjdGEgSW50ZXJuYXRpb25hbCwgTHRkLgorCQkJCTMxMzQyIFZpYSBMYXMgUGFsbWFzCisJCQkJU2FuIEp1YW4gQ2FwaXN0cmFubyBDQSA5MjY3NQorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtMjgtQzkgICAoaGV4KQkJR2VuZXJhbCBFbGVjdHJpYyBDb25zdW1lciBhbmQgSW5kdXN0cmlhbAorRDgyOEM5ICAgICAoYmFzZSAxNikJCUdlbmVyYWwgRWxlY3RyaWMgQ29uc3VtZXIgYW5kIEluZHVzdHJpYWwKKwkJCQlBUDM1LTE0MDUKKwkJCQlBcHBsaWFuY2UgUGFyaworCQkJCUxvdWlzdmlsbGUgS1kgNDAyMjUKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LTI5LTg2ICAgKGhleCkJCUJlc3QgV2lzaCBUZWNobm9sb2d5IExURAorRDgyOTg2ICAgICAoYmFzZSAxNikJCUJlc3QgV2lzaCBUZWNobm9sb2d5IExURAorCQkJCTdFLEhhaSBZaSBCdXNpbmVzcyBCdWlsZGluZyxOby4zMTAsVGlhbnNoYW4gUkQuLAorCQkJCVNoYW5naGFpICAyMDAzMzYKKwkJCQlDSElOQQorCitEOC0yQS03RSAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorRDgyQTdFICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTkwCisJCQkJRklOTEFORAorCitEOC0zMC02MiAgIChoZXgpCQlBcHBsZSwgSW5jCitEODMwNjIgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtNDItQUMgICAoaGV4KQkJRnJlZUNvbW0gRGF0YSBDb21tdW5pY2F0aW9uIENvLixMdGQuCitEODQyQUMgICAgIChiYXNlIDE2KQkJRnJlZUNvbW0gRGF0YSBDb21tdW5pY2F0aW9uIENvLixMdGQuCisJCQkJQnVpbGRpbmcgOTAsIE5vLiA0ODU1LCBHdWFuZ2Z1bGluIFJvYWQsIFNvbmdqaWFuZyBEaXN0cmljdAorCQkJCVNoYW5naGFpICAyMDE2MTYKKwkJCQlDSElOQQorCitEOC00Ni0wNiAgIChoZXgpCQlTaWxpY29uIFZhbGxleSBHbG9iYWwgTWFya2V0aW5nCitEODQ2MDYgICAgIChiYXNlIDE2KQkJU2lsaWNvbiBWYWxsZXkgR2xvYmFsIE1hcmtldGluZworCQkJCTgzMCBTdGV3YXJ0IERyLiAjMjAxCisJCQkJU3Vubnl2YWxlIENhIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCitEOC00Qi0yQSAgIChoZXgpCQlDb2duaXRhcyBUZWNobm9sb2dpZXMsIEluYy4KK0Q4NEIyQSAgICAgKGJhc2UgMTYpCQlDb2duaXRhcyBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk2NDA2IExhdXJlbCBCdXNoIExuLgorCQkJCVN1Z2FyIExhbmQgVGV4YXMgNzc0NzkKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LTU0LTNBICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCitEODU0M0EgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LTVELTRDICAgKGhleCkJCVRQLUxJTksgVGVjaG5vbG9naWVzIENvLixMdGQuCitEODVENEMgICAgIChiYXNlIDE2KQkJVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKwkJCQlCdWlsZGluZyA3LCBTZWNvbmQgUGFydCwgSG9uZ2h1YWxpbmcgSW5kdXN0cmlhbCBab25lCisJCQkJWGlsaSB0b3duLCBOYW5zaGFuLCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworRDgtNUQtODQgICAoaGV4KQkJQ0F4IHNvZnQgR21iSAorRDg1RDg0ICAgICAoYmFzZSAxNikJCUNBeCBzb2Z0IEdtYkgKKwkJCQlOb2V0dGluZ2VyIFN0cmFzc2UgMworCQkJCUthcmxzYmFkIEJXIDc2MzA3CisJCQkJR0VSTUFOWQorCitEOC02Qi1GNyAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KK0Q4NkJGNyAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCitEOC03MS01NyAgIChoZXgpCQlMZW5vdm8gTW9iaWxlIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBMdGQuCitEODcxNTcgICAgIChiYXNlIDE2KQkJTGVub3ZvIE1vYmlsZSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgTHRkLgorCQkJCU5vLjk5OSxRaXNoYW4gTm9ydGggMm5kIFJvYWQsSW5mb3JtYXRpb24mT3B0b2VsZWN0cm9uaWNzIFBhcmssVG9yY2ggSGktdGVjaCBJbmR1c3RyeSBEZXZlbG9wbWVudCBab25lLAorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA2CisJCQkJQ0hJTkEKKworRDgtNzUtMzMgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0Q4NzUzMyAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU5MAorCQkJCUZJTkxBTkQKKworRDgtNzYtMEEgICAoaGV4KQkJRXNjb3J0LCBJbmMuCitEODc2MEEgICAgIChiYXNlIDE2KQkJRXNjb3J0LCBJbmMuCisJCQkJNTQ0MCBXZXN0IENoZXN0ZXIgUmQuCisJCQkJV2VzdCBDaGVzdGVyIE9oaW8gNDUwNjkKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LTc5LTg4ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCitEODc5ODggICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKwkJCQlOTy4xNjggRk9YQ09OTiBST0FECisJCQkJSFVBSUFOIEVDT05PTUlDIERFVkVMT1BNRU5UIFpPTkUKKwkJCQlIVUFJQU4gSklBTkdTVSAyMjMwMDUKKwkJCQlDSElOQQorCitEOC05NS0yRiAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworRDg5NTJGICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJTVMgODcyMworCQkJCURhbGxhcyBUZXhhcyA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworRDgtOTctM0IgICAoaGV4KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyIEVtYmVkZGVkIFBvd2VyCitEODk3M0IgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyIEVtYmVkZGVkIFBvd2VyCisJCQkJMTYvRiBMdSBQbGF6YSBCdWlsZGluZworCQkJCTIgV2luZyBZaXAgU3RyZWV0CisJCQkJS3d1biBUb25nIEtvd2xvb24gMDAwMDAKKwkJCQlIT05HIEtPTkcKKworRDgtOUQtQjkgICAoaGV4KQkJZU1lZ2F0ZWNoIEludGVybmF0aW9uYWwgQ29ycC4KK0Q4OURCOSAgICAgKGJhc2UgMTYpCQllTWVnYXRlY2ggSW50ZXJuYXRpb25hbCBDb3JwLgorCQkJCVJvb20gNDAzLCBOby4yNCBXdWN5dWFuIDJuZCBSZC4sCisJCQkJU2luamh1YW5nIENpdHksIFRhaXBlaSBDb3VudHksICAyMzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0Q4LTlFLTNGICAgKGhleCkJCUFwcGxlLCBJbmMuCitEODlFM0YgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LUEyLTVFICAgKGhleCkJCUFwcGxlCitEOEEyNUUgICAgIChiYXNlIDE2KQkJQXBwbGUKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ2FsaWZvcm5pYSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtQUUtOTAgICAoaGV4KQkJSXRpYmlhIFRlY2hub2xvZ2llcworRDhBRTkwICAgICAoYmFzZSAxNikJCUl0aWJpYSBUZWNobm9sb2dpZXMKKwkJCQk1IENsYXVzZW4gQ3QKKwkJCQlXZXN0IFdpbmRzb3IgTkogMDg1NTAKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LUIxLTJBICAgKGhleCkJCVBhbmFzb25pYyBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCitEOEIxMkEgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQk2MDAgU2FlZG8tY2hvIFRzdXp1a2kta3UKKwkJCQlZb2tvaGFtYSBDaXR5IEthbmFnYXdhIDIyNC04NTM5CisJCQkJSkFQQU4KKworRDgtQjMtNzcgICAoaGV4KQkJSFRDIENvcnBvcmF0aW9uCitEOEIzNzcgICAgIChiYXNlIDE2KQkJSFRDIENvcnBvcmF0aW9uCisJCQkJTm8uIDIzLCBYaW5naHVhIFJkLiwgCisJCQkJVGFveXVhbiBDaXR5ICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0Q4LUI2LUMxICAgKGhleCkJCU5ldHdvcmtBY2NvdW50YW50LCBJbmMuCitEOEI2QzEgICAgIChiYXNlIDE2KQkJTmV0d29ya0FjY291bnRhbnQsIEluYy4KKwkJCQkxMjEwMSBUdWt3aWxhIEludGVybmF0aW9uYWwgQmx2ZC4KKwkJCQlTZWF0dGxlIFdhc2hpbmd0b24gOTgxNjgKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LUMwLTY4ICAgKGhleCkJCU5ldGdlbmV0ZWNoLmNvLixsdGQuCitEOEMwNjggICAgIChiYXNlIDE2KQkJTmV0Z2VuZXRlY2guY28uLGx0ZC4KKwkJCQk3MDQsIEhhbmxpbSBWZW50dXJlIFRvd24uLCAjNjg5LTYsIAorCQkJCUdldW1qZW9uZy0gZG9uZywKKwkJCQlHdW5wby1zaSAgNDM1LTg2MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEOC1DMy1GQiAgIChoZXgpCQlERVRSQUNPTQorRDhDM0ZCICAgICAoYmFzZSAxNikJCURFVFJBQ09NCisJCQkJNDEgQVZFTlVFIERFIEwnRVVST1BFCisJCQkJWk9ORSBFVVJPQ0VOVFJFIE9VRVNUIAorCQkJCUNBU1RFTE5BVSBEJ0VTVFJFVEVGT05EUyAgMzE2MjAKKwkJCQlGUkFOQ0UKKworRDgtQzctQzggICAoaGV4KQkJQXJ1YmEgTmV0d29ya3MKK0Q4QzdDOCAgICAgKGJhc2UgMTYpCQlBcnViYSBOZXR3b3JrcworCQkJCTEzNDQgQ3Jvc3NtYW4gQXZlLgorCQkJCVN1bm55dmFsZSAgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LUM5LTlEICAgKGhleCkJCUVBIERJU1BMQVkgTElNSVRFRAorRDhDOTlEICAgICAoYmFzZSAxNikJCUVBIERJU1BMQVkgTElNSVRFRAorCQkJCTIyL0YgREVMVEEgSE9VU0UgMyBPTiBZSVUgU1QKKwkJCQlTSEFUSU4gTlQgIAorCQkJCUhPTkcgS09ORworCitEOC1EMy04NSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKK0Q4RDM4NSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtRDYtN0UgICAoaGV4KQkJR1NLIENOQyBFUVVJUE1FTlQgQ08uLExURAorRDhENjdFICAgICAoYmFzZSAxNikJCUdTSyBDTkMgRVFVSVBNRU5UIENPLixMVEQKKwkJCQlOTy43LDFzdCBTdHJlZXQsTHVvY2hvbmcgTm9ydGggUm9hZCxMdW9jaG9uZ3dlaQorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgIDUxMDE2NQorCQkJCUNISU5BCisKK0Q4LURGLTBEICAgKGhleCkJCWJlcm9OZXQgR21iSAorRDhERjBEICAgICAoYmFzZSAxNikJCWJlcm9OZXQgR21iSAorCQkJCUZyaWVkcmljaHN0ci4gMjMxCisJCQkJQmVybGluICAxMDk2OQorCQkJCUdFUk1BTlkKKworRDgtRTMtQUUgICAoaGV4KQkJQ0lSVEVDIE1FRElDQUwgU1lTVEVNUworRDhFM0FFICAgICAoYmFzZSAxNikJCUNJUlRFQyBNRURJQ0FMIFNZU1RFTVMKKwkJCQkxMDFCIENvb3BlciBDb3VydAorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtRTctMkIgICAoaGV4KQkJT25QQVRIIFRlY2hub2xvZ2llcworRDhFNzJCICAgICAoYmFzZSAxNikJCU9uUEFUSCBUZWNobm9sb2dpZXMKKwkJCQkyMDAwIExpbmNvbG4gRHJpdmUgRWFzdAorCQkJCU1hcmx0b24gTmV3IEplcnNleSAwODA1MworCQkJCVVOSVRFRCBTVEFURVMKKworRDgtRkUtOEYgICAoaGV4KQkJSURGb25lIENvLiwgTHRkLgorRDhGRThGICAgICAoYmFzZSAxNikJCUlERm9uZSBDby4sIEx0ZC4KKwkJCQk3RiBBY2UgdGVjaG5vIHRvd2VyIDV0aCBCL0QsIDE5Ny0yMgorCQkJCUd1cm8tZG9uZywgR3Vyby1ndSBTZW91bCAxNTItNzY2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0RDLTAyLTY1ICAgKGhleCkJCU1lZGl0ZWNoIEtmdAorREMwMjY1ICAgICAoYmFzZSAxNikJCU1lZGl0ZWNoIEtmdAorCQkJCdxsbPVpIPp0IDIwMC4KKwkJCQlCdWRhcGVzdCAgMTE5MQorCQkJCUhVTkdBUlkKKworREMtMDUtRUQgICAoaGV4KQkJTmFidGVzY28gIENvcnBvcmF0aW9uCitEQzA1RUQgICAgIChiYXNlIDE2KQkJTmFidGVzY28gIENvcnBvcmF0aW9uCisJCQkJOS0xOCwgS2FpZ2FuIDEtY2hvbWUKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA1LTAwMjIKKwkJCQlKQVBBTgorCitEQy0wNy1DMSAgIChoZXgpCQlIYW5nWmhvdSBRaVlhbmcgVGVjaG5vbG9neSBDby4sTHRkLgorREMwN0MxICAgICAoYmFzZSAxNikJCUhhbmdaaG91IFFpWWFuZyBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJRmxvb3IgNSwgQnVpbGRpbmcgMiwgUm9hZCBYaVl1YW5ZaSwgV2VzdExha2UgVGVjaG5vbG9neSBQYXJrLAorCQkJCVNhbkR1biwgWGlIdSBEaXN0cmlidXRlCisJCQkJSGFuZ1pob3UgWmhlSmlhbmcgMzEwMDI4CisJCQkJQ0hJTkEKKworREMtMTYtQTIgICAoaGV4KQkJTWVkdHJvbmljIERpYWJldGVzCitEQzE2QTIgICAgIChiYXNlIDE2KQkJTWVkdHJvbmljIERpYWJldGVzCisJCQkJMTgwMDAgRGV2b25zaGlyZSBTdAorCQkJCU5vcnRocmlkZ2UgQ0EgOTEzMjUKKwkJCQlVTklURUQgU1RBVEVTCisKK0RDLTFELTlGICAgKGhleCkJCVUgJiBCIHRlY2gKK0RDMUQ5RiAgICAgKGJhc2UgMTYpCQlVICYgQiB0ZWNoCisJCQkJMkYsIERhZXlvdW5nIGJ1bGlkaW5nLCAxNDIzLTYsIEt3YW55YW5nLTFEb25nLAorCQkJCURvbmdBbi1HdSwKKwkJCQlBbnlhbmctU2kgR3llb25nZ2ktRG8gNDMxLTA2MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEQy0yMC0wOCAgIChoZXgpCQlBU0QgRWxlY3Ryb25pY3MgTHRkIAorREMyMDA4ICAgICAoYmFzZSAxNikJCUFTRCBFbGVjdHJvbmljcyBMdGQgCisJCQkJREVERSBJTkRVU1RSSUFMIFBBUkssSklBTidBTiBST0FELEhJR0gtVEVDSAorCQkJCUlORFVTVFJJQUwgUEFSSyxGVVlPTkcgVE9XTixCQU8nQU4gRElTVFJJQ1QsCisJCQkJU2hlbnpoZW4gIEd1YW5nIERvbmcgNTE4MTAzCisJCQkJQ0hJTkEKKworREMtMkItNjEgICAoaGV4KQkJQXBwbGUKK0RDMkI2MSAgICAgKGJhc2UgMTYpCQlBcHBsZQorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworREMtMkItNjYgICAoaGV4KQkJSW5mb2Jsb2NrCitEQzJCNjYgICAgIChiYXNlIDE2KQkJSW5mb2Jsb2NrCisJCQkJSGVnZWwgMjI5IC0gMTAKKwkJCQlDaGFwdWx0ZXBlYyBNb3JhbGVzCisJCQkJTWV4aWNvIENpdHkgRGlzdHJpdG8gRmVkZXJhbCAxMTU3MAorCQkJCU1FWElDTworCitEQy0yQy0yNiAgIChoZXgpCQlJdG9uIFRlY2hub2xvZ3kgTGltaXRlZAorREMyQzI2ICAgICAoYmFzZSAxNikJCUl0b24gVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJUm9vbSAxMEUsIEppbmdGZW5nIEJ1aWxkaW5nLCAKKwkJCQlCaW5oZSBSb2FkLCBGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDM0CisJCQkJQ0hJTkEKKworREMtMzMtNTAgICAoaGV4KQkJVGVjaFNBVCBHbWJICitEQzMzNTAgICAgIChiYXNlIDE2KQkJVGVjaFNBVCBHbWJICisJCQkJR3J1YmVyIFN0ci4gNDZjCisJCQkJUG9pbmcgQlkgODU1ODYKKwkJCQlHRVJNQU5ZCisKK0RDLTNDLTg0ICAgKGhleCkJCVRpY29tIEdlb21hdGljcywgSW5jLgorREMzQzg0ICAgICAoYmFzZSAxNikJCVRpY29tIEdlb21hdGljcywgSW5jLgorCQkJCTkxMzAgSm9sbHl2aWxsZSBSZC4gU3RlLiAzMDAKKwkJCQlBdXN0aW4gVGV4YXMgNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKK0RDLTQ5LUM5ICAgKGhleCkJCUNBU0NPIFNJR05BTCBMVEQKK0RDNDlDOSAgICAgKGJhc2UgMTYpCQlDQVNDTyBTSUdOQUwgTFRECisJCQkJTm8uNDg5IFhpemFuZyBCZWkgUm9hZAorCQkJCVNoYW5naGFpICAyMDAwNzEKKwkJCQlDSElOQQorCitEQy00RS1ERSAgIChoZXgpCQlTSElOWUVJIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCitEQzRFREUgICAgIChiYXNlIDE2KQkJU0hJTllFSSBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCTYtNS0yLCBNSU5BVE9KSU1BLU1JTkFNSU1BQ0hJLCBDSFVPLUtVCisJCQkJS09CRSBIWU9HTyA2NTAtMDA0NworCQkJCUpBUEFOCisKK0RDLTdCLTk0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0RDN0I5NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0RDLTlCLTFFICAgKGhleCkJCUludGVyY29tLCBJbmMuCitEQzlCMUUgICAgIChiYXNlIDE2KQkJSW50ZXJjb20sIEluYy4KKwkJCQlTb3JpbWFjaGkgQmxkZy4sIDMtNSwgVGFpdG8gMS1jaG9tZSwgCisJCQkJVGFpdG8ta3UgVG9reW8gMTEwLTg2NTQKKwkJCQlKQVBBTgorCitEQy05Qy01MiAgIChoZXgpCQlTYXBwaGlyZSBUZWNobm9sb2d5IExpbWl0ZWQuCitEQzlDNTIgICAgIChiYXNlIDE2KQkJU2FwcGhpcmUgVGVjaG5vbG9neSBMaW1pdGVkLgorCQkJCVVuaXQgMTkwOS0xOTE5LCAxOS9GLiwgVG93ZXIgMiwgR3JhbmQgQ2VudHJhbCBQbGF6YSwKKwkJCQkxMzggU2hhdGluIFJ1cmFsIENvbW1pdHRlZSBSb2FkLCBTaGF0aW4sIE4uVC4sCisJCQkJSE9ORyBLT05HCisKK0RDLUE2LUJEICAgKGhleCkJCUJlaWppbmcgTGFuYm8gVGVjaG5vbG9neSBDby4sIEx0ZC4KK0RDQTZCRCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIExhbmJvIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJUm9vbS4zMDEuQmlkZy40Tk8uOCBTaGFuZ2RpIFdlc3QgUm9hZCwgSGFpZGlhbiAgRGlzdHJpY3QsCisJCQkJQmVpamluZyBDaXR5ICAxMDAwODUKKwkJCQlDSElOQQorCitEQy1BNy1EOSAgIChoZXgpCQlDb21wcmVzc29yIENvbnRyb2xzIENvcnAKK0RDQTdEOSAgICAgKGJhc2UgMTYpCQlDb21wcmVzc29yIENvbnRyb2xzIENvcnAKKwkJCQk0NzI1IDEyMXN0IFN0cmVldAorCQkJCURlcyBNb2luZXMgSW93YSA1MDMyMworCQkJCVVOSVRFRCBTVEFURVMKKworREMtQTktNzEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCitEQ0E5NzEgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCitEQy1DQi1BOCAgIChoZXgpCQlFeHBsb3JhIFRlY2hub2xvZ2llcyBJbmMKK0RDQ0JBOCAgICAgKGJhc2UgMTYpCQlFeHBsb3JhIFRlY2hub2xvZ2llcyBJbmMKKwkJCQkzNjAsIEZyYW5xdWV0IFN0cmVldAorCQkJCVN1aXRlIDIwCisJCQkJUXVlYmVjICBHMVAgNE4zCisJCQkJQ0FOQURBCisKK0RDLUNFLTQxICAgKGhleCkJCUZFIEdMT0JBTCBIT05HIEtPTkcgTElNSVRFRAorRENDRTQxICAgICAoYmFzZSAxNikJCUZFIEdMT0JBTCBIT05HIEtPTkcgTElNSVRFRAorCQkJCUZMQVQgMjA0LTIwNSAyL0YgTEFGT1JEIENFTlRSRTgzOCBMQUkgQ0hJIEtPSyBSRCBDSEVVTkcgU0hBIFdBTiBLTAorCQkJCVNIRU5aSEVOICA1MTgwNTcKKwkJCQlDSElOQQorCitEQy1DRi05NCAgIChoZXgpCQlCZWlqaW5nIFJvbmdjaGVuZyBIdXRvbmcgVGVjaG5vbG9neSBDby4sIEx0ZC4KK0RDQ0Y5NCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFJvbmdjaGVuZyBIdXRvbmcgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlSb29tIDQwMUEsQnVpbGRpbmcgTm8uNCxZYXJkIE5vLjUsCisJCQkJWW9uZ2ZlbmcgUm9hZCwgSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDAyNAorCQkJCUNISU5BCisKK0RDLUQwLUY3ICAgKGhleCkJCUJlbnRlayBTeXN0ZW1zIEx0ZC4KK0RDRDBGNyAgICAgKGJhc2UgMTYpCQlCZW50ZWsgU3lzdGVtcyBMdGQuCisJCQkJMzE1IC0gMzc1MCA0NnRoIEF2ZS4gU0UKKwkJCQlDYWxnYXJ5IEFCIFQyQiAwTDEKKwkJCQlDQU5BREEKKworREMtRDMtMjEgICAoaGV4KQkJSFVNQVggY28uLHRsZAorRENEMzIxICAgICAoYmFzZSAxNikJCUhVTUFYIGNvLix0bGQKKwkJCQlIVU1BWCBWaWxsYWdlLCAxMS00LCBTdW5hZS1kb25nLCBCdW5kYW5nLWd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8gNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEQy1EOC03RiAgIChoZXgpCQlTaGVuemhlbiBKb2luQ3liZXIgVGVsZWNvbSBFcXVpcG1lbnQgTHRkCitEQ0Q4N0YgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gSm9pbkN5YmVyIFRlbGVjb20gRXF1aXBtZW50IEx0ZAorCQkJCTE5Q0RFLCBCbG9jayBBLEppbkZlbmdCdWlsZGluZyxzaGFuZ2J1IFNvdXRoIFJvYWQsRnV0aWFuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMzEKKwkJCQlDSElOQQorCitEQy1ERS1DQSAgIChoZXgpCQlBa3lsbG9yCitEQ0RFQ0EgICAgIChiYXNlIDE2KQkJQWt5bGxvcgorCQkJCUJyaXRhbm5pYSBIb3VzZSwgMjIsIDJGLCBDYXRvciBSb2FkCisJCQkJQmFuZGFyIFNlcmkgQmVnYXdhbiBCUyAgODgxMQorCQkJCUJSVU5FSSBEQVJVU1NBTEFNCisKK0RDLUUyLUFDICAgKGhleCkJCUx1bWVucyBEaWdpdGFsIE9wdGljcyBJbmMuCitEQ0UyQUMgICAgIChiYXNlIDE2KQkJTHVtZW5zIERpZ2l0YWwgT3B0aWNzIEluYy4KKwkJCQk1RiwgTm8uMzUsIFNpbnRhaSBSZC4sIEpodWJlaSBDaXR5CisJCQkJSmh1YmVpICBIc2luQ2h1IDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworREMtRTctMUMgICAoaGV4KQkJQVVHIEVsZWt0cm9uaWsgR21iSAorRENFNzFDICAgICAoYmFzZSAxNikJCUFVRyBFbGVrdHJvbmlrIEdtYkgKKwkJCQlLbGVpbndvZWxsbWlzcyA1MworCQkJCVN0LiBNYXJ0aW4gYS4gVy4gU3R5cmlhIEEtODU4MAorCQkJCUFVU1RSSUEKKworREMtRkEtRDUgICAoaGV4KQkJU1RST05HIEdlcy5tLmIuSC4KK0RDRkFENSAgICAgKGJhc2UgMTYpCQlTVFJPTkcgR2VzLm0uYi5ILgorCQkJCUZyYW56LUpvc2Vmcy1LYWkgMQorCQkJCVZpZW5uYSAgMTAxMAorCQkJCUFVU1RSSUEKKworRTAtMDUtQzUgICAoaGV4KQkJVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KK0UwMDVDNSAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCUJ1aWxkaW5nIDcsIFNlY29uZCBQYXJ0LCBIb25naHVhbGluZyBJbmR1c3RyaWFsIFpvbmUKKwkJCQlYaWxpIHRvd24sIE5hbnNoYW4sIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCitFMC0wQy03RiAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KK0UwMEM3RiAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCitFMC0xNC0zRSAgIChoZXgpCQlNb2Rvb3NpcyBJbmMuCitFMDE0M0UgICAgIChiYXNlIDE2KQkJTW9kb29zaXMgSW5jLgorCQkJCSMzMDIsIFNhbWlsIEJsZGcuLCA2NTYtMjgyCisJCQkJU2Vvbmdzb28tZG9uZyAxIGdhLCBTZW9uZ2RvbmctZ3UKKwkJCQlTZW91bCAgMTMzLTExMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFMC0xQy1FRSAgIChoZXgpCQlCcmF2byBUZWNoLCBJbmMuCitFMDFDRUUgICAgIChiYXNlIDE2KQkJQnJhdm8gVGVjaCwgSW5jLgorCQkJCTYxODUgUGh5bGxpcyBEci4gVW5pdCBELgorCQkJCUN5cHJlc3MgQ0EgOTA2MzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLTFGLTBBICAgKGhleCkJCVhzbGVudCBFbmVyZ3kgVGVjaG5vbG9naWVzLiBMTEMKK0UwMUYwQSAgICAgKGJhc2UgMTYpCQlYc2xlbnQgRW5lcmd5IFRlY2hub2xvZ2llcy4gTExDCisJCQkJNzQyOCBSZWR3b29kIEJsdmQKKwkJCQlTdWl0ZSAxMDIKKwkJCQlOb3ZhdG8gQ0EgOTQ5NDUKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLTI1LTM4ICAgKGhleCkJCVRpdGFuIFBldCBQcm9kdWN0cworRTAyNTM4ICAgICAoYmFzZSAxNikJCVRpdGFuIFBldCBQcm9kdWN0cworCQkJCTY1MjEgQ3JlZWRtb29yIFJkLiBTdWl0ZSAxMDEKKwkJCQlSYWxlaWdoIE5DIDI3NjEzCisJCQkJVU5JVEVEIFNUQVRFUworCitFMC0yNi0zMCAgIChoZXgpCQlJbnRyaWd1ZSBUZWNobm9sb2dpZXMsIEluYy4KK0UwMjYzMCAgICAgKGJhc2UgMTYpCQlJbnRyaWd1ZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk4MDAgT2xkIFBvbmQgUm9hZAorCQkJCSM3MDUKKwkJCQlCcmlkZ2V2aWxsZSBQQSAxNTAxNworCQkJCVVOSVRFRCBTVEFURVMKKworRTAtMjYtMzYgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCitFMDI2MzYgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJQ0FSUkVURVJBIEJBU0UgQUVSRUEgIyA1ODUwCisJCQkJWmFwb3BhbiBKYWxpc2NvIDQ0MTMwCisJCQkJTUVYSUNPCisKK0UwLTI3LTFBICAgKGhleCkJCVRUQyBOZXh0LWdlbmVyYXRpb24gSG9tZSBOZXR3b3JrIFN5c3RlbSBXRworRTAyNzFBICAgICAoYmFzZSAxNikJCVRUQyBOZXh0LWdlbmVyYXRpb24gSG9tZSBOZXR3b3JrIFN5c3RlbSBXRworCQkJCTEtMS0xMiBTaGliYSBLb3VlbgorCQkJCU1pbmF0by1rdSBUb2t5byAxMDUtMDAxMQorCQkJCUpBUEFOCisKK0UwLTJBLTgyICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorRTAyQTgyICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTEFORSAzNTEsIFNFQy4xLCBUQUlQSU5HIFJELgorCQkJCVRTQU9UVUVOCisJCQkJTkFOVE9VIDU0MjYxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFMC0zRS03RCAgIChoZXgpCQlkYXRhLWNvbXBsZXggR21iSAorRTAzRTdEICAgICAoYmFzZSAxNikJCWRhdGEtY29tcGxleCBHbWJICisJCQkJRO+/vXN0ZXJuZ3JhYmVuIDcKKwkJCQlIYWxiZXJzdGFkdCBTYWNoc2VuLUFuaGFsdCAzODgyMAorCQkJCUdFUk1BTlkKKworRTAtNDYtOUEgICAoaGV4KQkJTkVUR0VBUgorRTA0NjlBICAgICAoYmFzZSAxNikJCU5FVEdFQVIKKwkJCQkzNTAgRUFTVCBQTFVNRVJJQSBEUklWRQorCQkJCVNBTiBKT1NFIENBTElGT1JOSUEgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLTU4LTlFICAgKGhleCkJCUxhZXJkYWwgTWVkaWNhbAorRTA1ODlFICAgICAoYmFzZSAxNikJCUxhZXJkYWwgTWVkaWNhbAorCQkJCVRhbmtlIFN2aWxhbmRzZ2F0ZSAzMAorCQkJCVN0YXZhbmdlciAgNDAwMgorCQkJCU5PUldBWQorCitFMC01Qi03MCAgIChoZXgpCQlJbm5vdmlkLCBDby4sIEx0ZC4KK0UwNUI3MCAgICAgKGJhc2UgMTYpCQlJbm5vdmlkLCBDby4sIEx0ZC4KKwkJCQk1dGggRmxvb3IsIEJvZ2EgQnVpbGRpbmcsIDgyMS0zLCBCYW5nYmFlZG9uZywgU2VvY2hvZ3UKKwkJCQlTZW91bCAgMTM3LTA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFMC01Ri1COSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitFMDVGQjkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFMC02MS1CMiAgIChoZXgpCQlIQU5HWkhPVSBaRU5PSU5URUwgVEVDSE5PTE9HWSBDTy4sIExURAorRTA2MUIyICAgICAoYmFzZSAxNikJCUhBTkdaSE9VIFpFTk9JTlRFTCBURUNITk9MT0dZIENPLiwgTFRECisJCQkJUm9vbSA4MDYsIEYjLCBDYW1icmlkZ2UgQ29tYnJpZGdlLCBTaGVuaHVhIFJvYWQsRGlzdHJpY3QgWGlodSwgCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDMwCisJCQkJQ0hJTkEKKworRTAtNjItOTAgICAoaGV4KQkJSmluYW4gSm92aXNpb24gU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitFMDYyOTAgICAgIChiYXNlIDE2KQkJSmluYW4gSm92aXNpb24gU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJUm9vbSA0MDcsIFRvd2VyIEMsIEN5YmVyIFBvcnQgQnVpbGRpbmcsCisJCQkJNDcgU2hhbmRhIFJkCisJCQkJSmluYW4gU2hhbmRvbmcgMjUwMDEzCisJCQkJQ0hJTkEKKworRTAtNjQtQkIgICAoaGV4KQkJRGlnaVZpZXcgUy5yLmwuCitFMDY0QkIgICAgIChiYXNlIDE2KQkJRGlnaVZpZXcgUy5yLmwuCisJCQkJVmlhIFNlbmlnYWxsaWEgMTgvMgorCQkJCU1pbGFubyAgMjAxNjEKKwkJCQlJVEFMWQorCitFMC02OS05NSAgIChoZXgpCQlQRUdBVFJPTiBDT1JQT1JBVElPTgorRTA2OTk1ICAgICAoYmFzZSAxNikJCVBFR0FUUk9OIENPUlBPUkFUSU9OCisJCQkJTm8uIDc2LCBMaWdvbmcgU3QuLCBCZWl0b3UsIAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFMC04Ny1CMSAgIChoZXgpCQlOYXRhLUluZm8gTHRkLgorRTA4N0IxICAgICAoYmFzZSAxNikJCU5hdGEtSW5mbyBMdGQuCisJCQkJMjgsIFByb2tob3JvdmEgc3RyLgorCQkJCVlvc2hrYXItT2xhIFJlcHVibGljIE1hcmktRWwgNDI0MDA3CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKK0UwLThBLTdFICAgKGhleCkJCUV4cG9uZW50CitFMDhBN0UgICAgIChiYXNlIDE2KQkJRXhwb25lbnQKKwkJCQkxNDkgQ29tbW9ud2VhbHRoIERyaXZlCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworRTAtOEYtRUMgICAoaGV4KQkJUkVQT1RFQyBDTy4sIExURC4KK0UwOEZFQyAgICAgKGJhc2UgMTYpCQlSRVBPVEVDIENPLiwgTFRELgorCQkJCTNGLCAyNTguIAorCQkJCUxJQU4gQ0hFTiBSRC4gCisJCQkJQ0hVTkcgSE8gQ0lUWSwgVEFJUEVJIENPVU5UWSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFMC05MS01MyAgIChoZXgpCQlYQVZpIFRlY2hub2xvZ2llcyBDb3JwLgorRTA5MTUzICAgICAoYmFzZSAxNikJCVhBVmkgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJOUYsIE5vLiAxMjksIEhzaW5nIFRlIFJkLCBTYW5jaHVuZyBDaXR5CisJCQkJVGFpcGVpICAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0UwLTkxLUY1ICAgKGhleCkJCU5FVEdFQVIKK0UwOTFGNSAgICAgKGJhc2UgMTYpCQlORVRHRUFSCisJCQkJMzUwIEVBU1QgUExVTUVSSUEgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQUxJRk9STklBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFMC1BMS1ENyAgIChoZXgpCQlTRlIKK0UwQTFENyAgICAgKGJhc2UgMTYpCQlTRlIKKwkJCQk0MC80MiBRdWFpIGR1IHBvaW50IGR1IGpvdXIKKwkJCQlCb3Vsb2duZSBCaWxsYW5jb3VydCBIYXV0cyBkZSBTZWluZSA5MjY1OQorCQkJCUZSQU5DRQorCitFMC1BNi03MCAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorRTBBNjcwICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTkwCisJCQkJRklOTEFORAorCitFMC1BQi1GRSAgIChoZXgpCQlPcmIgTmV0d29ya3MsIEluYy4KK0UwQUJGRSAgICAgKGJhc2UgMTYpCQlPcmIgTmV0d29ya3MsIEluYy4KKwkJCQk0MjggMTN0aCBTdHJlZXQKKwkJCQkzcmQgRmxvb3IKKwkJCQlPYWtsYW5kIENBIDk0NjEyCisJCQkJVU5JVEVEIFNUQVRFUworCitFMC1COS1BNSAgIChoZXgpCQlBenVyZXdhdmUKK0UwQjlBNSAgICAgKGJhc2UgMTYpCQlBenVyZXdhdmUKKwkJCQk4Ri4sIEJhb3pob25nIFJkLgorCQkJCVhpbmRpYW4gQ2l0eSBUYWlwZWkgQ291bnR5IDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRTAtQkMtNDMgICAoaGV4KQkJQzIgTWljcm9zeXN0ZW1zLCBJbmMuCitFMEJDNDMgICAgIChiYXNlIDE2KQkJQzIgTWljcm9zeXN0ZW1zLCBJbmMuCisJCQkJMjgzMyBKdW5jdGlvbiBBdmVudWUKKwkJCQlTdWl0ZSAxMDEKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFMC1DMi04NiAgIChoZXgpCQlBaXNhaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitFMEMyODYgICAgIChiYXNlIDE2KQkJQWlzYWkgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCVJvb20gMjYxMCBBc2lhIFRyYWRlIENlbnRyZSwKKwkJCQk3OSBMaSBNdWsgUm9hZCwKKwkJCQlLd2FpIENodW5nIE4uVC4gODUyCisJCQkJSE9ORyBLT05HCisKK0UwLUM5LTIyICAgKGhleCkJCUppcmVoIEVuZXJneSBUZWNoLiwgTHRkLgorRTBDOTIyICAgICAoYmFzZSAxNikJCUppcmVoIEVuZXJneSBUZWNoLiwgTHRkLgorCQkJCSM2MDYgU2VvdWwgRm9yZXN0IEhhbGxhc2lnbWF2YWxsZXksIDMyNS0yCisJCQkJU2VvbmdzdS1kb25nIDIoaSktZ2EsIAorCQkJCVNlb3VsIFNlb25nZG9uZy1HdSAxMzMtMTIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0UwLUNBLTREICAgKGhleCkJCVNoZW56aGVuIFVuaXN0YXIgQ29tbXVuaWNhdGlvbiBDby4sTFRECitFMENBNEQgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gVW5pc3RhciBDb21tdW5pY2F0aW9uIENvLixMVEQKKwkJCQk5L0YsUWluZ2hhaSBCdWlsZGluZyw3MDQzLCBCZXJodWFuIFJvYWQsIEZ1dGlhbiBEaXN0cmljdCwgCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAzNAorCQkJCUNISU5BCisKK0UwLUNBLTk0ICAgKGhleCkJCUFza2V5IENvbXB1dGVyCitFMENBOTQgICAgIChiYXNlIDE2KQkJQXNrZXkgQ29tcHV0ZXIKKwkJCQkxMEYsTk8uMTE5LENISUVOS0FORyBSRCxDSFVORy1ITyBDSVRZLCAKKwkJCQlUQUlQRUkgQ09VTlRZIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFMC1DQi00RSAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KK0UwQ0I0RSAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91LCAKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRTAtQ0YtMkQgICAoaGV4KQkJR2VtaW50ZWsgQ29ycG9yYXRpb24KK0UwQ0YyRCAgICAgKGJhc2UgMTYpCQlHZW1pbnRlayBDb3Jwb3JhdGlvbgorCQkJCTVGLTEsIE5vLjgsIEFsbGV5IDMwLCBMYW5lIDM1OCwgUnVlaWd1YW5nIFJkLgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFMC1EMS0wQSAgIChoZXgpCQlLYXRvdWRlbmtpa291Z3lvdXN5byBjbyBsdGQKK0UwRDEwQSAgICAgKGJhc2UgMTYpCQlLYXRvdWRlbmtpa291Z3lvdXN5byBjbyBsdGQKKwkJCQlvdWppaG9udHlvdTEtNC0xMworCQkJCWtpdGEta3UgdG9reW8tdG8gMTE0LTAwMjIKKwkJCQlKQVBBTgorCitFMC1ENy1CQSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworRTBEN0JBICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJTVMgODcyMworCQkJCURhbGxhcyBUZXhhcyA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworRTAtRTctNTEgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCitFMEU3NTEgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworRTAtRTgtRTggICAoaGV4KQkJT2xpdmUgVGVsZWNvbW11bmljYXRpb24gUHZ0LiBMdGQKK0UwRThFOCAgICAgKGJhc2UgMTYpCQlPbGl2ZSBUZWxlY29tbXVuaWNhdGlvbiBQdnQuIEx0ZAorCQkJCTg2MiwgVWR5b2cgVmloYXIKKwkJCQlQaGFzZSAtIFYKKwkJCQlHdXJnYW9uIEhhcnlhbmEgMTIyMDE2CisJCQkJSU5ESUEKKworRTAtRUUtMUIgICAoaGV4KQkJUGFuYXNvbmljIEF1dG9tb3RpdmUgU3lzdGVtcyBDb21wYW55IG9mIEFtZXJpY2EKK0UwRUUxQiAgICAgKGJhc2UgMTYpCQlQYW5hc29uaWMgQXV0b21vdGl2ZSBTeXN0ZW1zIENvbXBhbnkgb2YgQW1lcmljYQorCQkJCTc3NiBIaWdod2F5IDc0IFNvdXRoCisJCQkJUGVhY2h0cmVlIENpdHkgR2VvcmdpYSAzMDI2OQorCQkJCVVOSVRFRCBTVEFURVMKKworRTAtRjItMTEgICAoaGV4KQkJRGlnaXRhbHdhdHQKK0UwRjIxMSAgICAgKGJhc2UgMTYpCQlEaWdpdGFsd2F0dAorCQkJCVZpYSBEYW50ZSwgMTgKKwkJCQlSZW5hdGUgQnJpYW56YSBNQiAyMDA1NQorCQkJCUlUQUxZCisKK0UwLUYzLTc5ICAgKGhleCkJCVZhZGRpbworRTBGMzc5ICAgICAoYmFzZSAxNikJCVZhZGRpbworCQkJCTk0MzMgU2NpZW5jZSBDZW50ZXIgRHJpdmUKKwkJCQlOZXcgSG9wZSBNTiA1NTQyOAorCQkJCVVOSVRFRCBTVEFURVMKKworRTAtRjgtNDcgICAoaGV4KQkJQXBwbGUgSW5jCitFMEY4NDcgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitFNC0xMi04OSAgIChoZXgpCQl0b3BzeXN0ZW0gU3lzdGVtaGF1cyBHbWJICitFNDEyODkgICAgIChiYXNlIDE2KQkJdG9wc3lzdGVtIFN5c3RlbWhhdXMgR21iSAorCQkJCU1vbm5ldHN0cmHvv71lIDI0CisJCQkJV++/vXJzZWxlbiBOUlcgNTIxNDYKKwkJCQlHRVJNQU5ZCisKK0U0LTFDLTRCICAgKGhleCkJCVYyIFRFQ0hOT0xPR1ksIElOQy4KK0U0MUM0QiAgICAgKGJhc2UgMTYpCQlWMiBURUNITk9MT0dZLCBJTkMuCisJCQkJNDQ1MCBFbnRlcnByaXNlIFN0cmVldAorCQkJCVN1aXRlIDEwMQorCQkJCUZyZW1vbnQgQ2FsaWZvcm5pYSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworRTQtMUYtMTMgICAoaGV4KQkJSUJNIENvcnAKK0U0MUYxMyAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKK0U0LTI3LTcxICAgKGhleCkJCVNtYXJ0bGFicworRTQyNzcxICAgICAoYmFzZSAxNikJCVNtYXJ0bGFicworCQkJCTcyLCBPa3R5YWJyc2theWEgU3RyZWV0CisJCQkJTW9zY293ICAxMjc1MjEKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworRTQtMkEtRDMgICAoaGV4KQkJTWFnbmV0aSBNYXJlbGxpIFMucC5BLiBQb3dlcnRyYWluCitFNDJBRDMgICAgIChiYXNlIDE2KQkJTWFnbmV0aSBNYXJlbGxpIFMucC5BLiBQb3dlcnRyYWluCisJCQkJVmlhIGRlbCBUaW1hdm8gMzMKKwkJCQlCb2xvZ25hICA0MDEyOAorCQkJCUlUQUxZCisKK0U0LTJGLUY2ICAgKGhleCkJCVVuaWNvcmUgY29tbXVuaWNhdGlvbiBJbmMuCitFNDJGRjYgICAgIChiYXNlIDE2KQkJVW5pY29yZSBjb21tdW5pY2F0aW9uIEluYy4KKwkJCQlSbS4zMTIgQnVpbGRpbmcgMiBJUklDTywgTm8uMTFTdC40LFNoYW5nZGksIEhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworRTQtMzUtOTMgICAoaGV4KQkJSGFuZ3pob3UgR29UbyB0ZWNobm9sb2d5IENvLkx0ZAorRTQzNTkzICAgICAoYmFzZSAxNikJCUhhbmd6aG91IEdvVG8gdGVjaG5vbG9neSBDby5MdGQKKwkJCQlSb29tMTMwMyxCb2VlIGJ1aWxkaW5nLDM3NjAgTmFuaHVhbiBSb2FkLCBCaW5qaWFuZywgCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDUzCisJCQkJQ0hJTkEKKworRTQtMzctRDcgICAoaGV4KQkJSEVOUkkgREVQQUVQRSBTLkEuUy4KK0U0MzdENyAgICAgKGJhc2UgMTYpCQlIRU5SSSBERVBBRVBFIFMuQS5TLgorCQkJCTc1Lzc3IFJVRSBEVSBQUkUgQlJPQ0hFVAorCQkJCVNBTk5PSVMgIDk1MTEyCisJCQkJRlJBTkNFCisKK0U0LTQxLUU2ICAgKGhleCkJCU90dGVjIFRlY2hub2xvZ3kgR21iSAorRTQ0MUU2ICAgICAoYmFzZSAxNikJCU90dGVjIFRlY2hub2xvZ3kgR21iSAorCQkJCVBsYW5ldGVucmluZyAxMgorCQkJCVJvbm5lbmJlcmcgTG93ZXIgU2F4b255IDMwOTUyCisJCQkJR0VSTUFOWQorCitFNC00Ni1CRCAgIChoZXgpCQlDJkMgVEVDSE5JQyBUQUlXQU4gQ08uLCBMVEQuCitFNDQ2QkQgICAgIChiYXNlIDE2KQkJQyZDIFRFQ0hOSUMgVEFJV0FOIENPLiwgTFRELgorCQkJCVJPT002IDEzRiwgTk8uMixKaWFuIDh0aCBST0FECisJCQkJVGFpcGVpIENodW5naG8gQ2l0eSwgIDIzNTExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFNC00OC1DNyAgIChoZXgpCQlDaXNjbyBTUFZURworRTQ0OEM3ICAgICAoYmFzZSAxNikJCUNpc2NvIFNQVlRHCisJCQkJNTAzMCBTdWdhcmxvYWYgUGt3eQorCQkJCUxhd3JlbmNldmlsbGUgR2VvcmdpYSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworRTQtNEYtMjkgICAoaGV4KQkJTUEgTGlnaHRpbmcgVGVjaG5vbG9neSBHbWJICitFNDRGMjkgICAgIChiYXNlIDE2KQkJTUEgTGlnaHRpbmcgVGVjaG5vbG9neSBHbWJICisJCQkJRGFjaGRlY2tlcnN0ci4xNgorCQkJCVdhbGRi77+9dHRlbGJydW5uIEJhdmFyaWEgOTcyOTcKKwkJCQlHRVJNQU5ZCisKK0U0LTY0LTQ5ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCitFNDY0NDkgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCitFNC02Qy0yMSAgIChoZXgpCQltZXNzTWEgR21iSAorRTQ2QzIxICAgICAoYmFzZSAxNikJCW1lc3NNYSBHbWJICisJCQkJQW0gU3RhZHRmZWxkIDgKKwkJCQlJeGxlYmVuIFNhY2hzZW4tQW5oYWx0IDM5MTY3CisJCQkJR0VSTUFOWQorCitFNC03NS0xRSAgIChoZXgpCQlHZXRpbmdlIFN0ZXJpbGl6YXRpb24gQUIKK0U0NzUxRSAgICAgKGJhc2UgMTYpCQlHZXRpbmdlIFN0ZXJpbGl6YXRpb24gQUIKKwkJCQlCb3ggNjkKKwkJCQlHZXRpbmdlICAzMTA0NAorCQkJCVNXRURFTgorCitFNC03Qy1GOSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECitFNDdDRjkgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIExURAorCQkJCTQxNiwgTWFldGFuLTNkb25nLCBZZW9uZ3RvbmctZ3UKKwkJCQlTdXdvbi1DaXR5LCAKKwkJCQlTdXdvbiBHeWVvbmdnaS1kbyA0NDM3NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRTQtODMtOTkgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KK0U0ODM5OSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKK0U0LThBLUQ1ICAgKGhleCkJCVJGIFdJTkRPVyBDTy4sIExURC4KK0U0OEFENSAgICAgKGJhc2UgMTYpCQlSRiBXSU5ET1cgQ08uLCBMVEQuCisJCQkJMTRGLCBEYWVydW5nIFBvc3R0b3dlcjMKKwkJCQkxODItNCwgR3Vyby1kb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi03NDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRTQtOTctRjAgICAoaGV4KQkJU2hhbmdoYWkgVkxDIFRlY2hub2xvZ2llcyBMdGQuIENvLgorRTQ5N0YwICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFZMQyBUZWNobm9sb2dpZXMgTHRkLiBDby4KKwkJCQlSb29tIDkwMSwgQi1ab25lLCBFYXN0IEJlaWppbmcgUm9hZAorCQkJCUh1YW5ncHUgRGlzdC4KKwkJCQlTaGFuZ2hhaSAgMjAwMDAxCisJCQkJQ0hJTkEKKworRTQtQTUtRUYgICAoaGV4KQkJVFJPTiBMSU5LIEVMRUNUUk9OSUNTIENPLiwgTFRELgorRTRBNUVGICAgICAoYmFzZSAxNikJCVRST04gTElOSyBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQlGTEFUIEEsIDIwL0YuLCBCTE9DSyA0LE9OIE5JTkcgR0FSREVOLAorCQkJCTEwIFNIRVVORyBOSU5HIFJPQUQsVFNFVU5HIEtXQU4gTywKKwkJCQlLT1dMT09OICA5OTkwNzcKKwkJCQlIT05HIEtPTkcKKworRTQtQUItNDYgICAoaGV4KQkJVUFCIFNlbHRla2EKK0U0QUI0NiAgICAgKGJhc2UgMTYpCQlVQUIgU2VsdGVrYQorCQkJCURyYXVneXN077+9cyBnLiAxOQorCQkJCUthdW5hcyAgTFQtNTEyMzAgCisJCQkJTElUSFVBTklBCisKK0U0LUFELTdEICAgKGhleCkJCVNDTCBFbGVtZW50cworRTRBRDdEICAgICAoYmFzZSAxNikJCVNDTCBFbGVtZW50cworCQkJCTU4MDAgU3QtRGVuaXMsICMyMjIKKwkJCQlNb250cmVhbCBRdWViZWMgSDJTM2w1CisJCQkJQ0FOQURBCisKK0U0LUNFLThGICAgKGhleCkJCUFwcGxlIEluYyAKK0U0Q0U4RiAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMgCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworRTQtRDctMUQgICAoaGV4KQkJT3JheWEgVGhlcmFwZXV0aWNzCitFNEQ3MUQgICAgIChiYXNlIDE2KQkJT3JheWEgVGhlcmFwZXV0aWNzCisJCQkJODAwMCBKYXJ2aXMgQXZlbnVlICBTdGUuIDIwMAorCQkJCU5ld2FyayBDQSA5NDU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworRTQtREQtNzkgICAoaGV4KQkJRW4tVmlzaW9uIEFtZXJpY2EsIEluYy4KK0U0REQ3OSAgICAgKGJhc2UgMTYpCQlFbi1WaXNpb24gQW1lcmljYSwgSW5jLgorCQkJCTE4NDUgSG92ZXkgQXZlCisJCQkJTm9ybWFsIElMIDYxNzYxCisJCQkJVU5JVEVEIFNUQVRFUworCitFNC1FMC1DNSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECitFNEUwQzUgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIExURAorCQkJCTQxNiwgTWFldGFuLTNkb25nLCBZZW9uZ3RvbmctZ3UKKwkJCQlTdXdvbiBHeWVvbmdnaS1kbyA0NDM3NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRTQtRUMtMTAgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0U0RUMxMCAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1IE91IDkwNTkwCisJCQkJRklOTEFORAorCitFNC1GRi1ERCAgIChoZXgpCQlFTEVDVFJPTiBJTkRJQQorRTRGRkREICAgICAoYmFzZSAxNikJCUVMRUNUUk9OIElORElBCisJCQkJVFlQRSBJSSwgTk8uOSwgRFIuIFYuUy5JLiBFU1RBVEUKKwkJCQlUSElSVVZBTk1JWVVSCisJCQkJQ0hFTk5BSSBUQU1JTCBOQURVIDYwMCAwNDEKKwkJCQlJTkRJQQorCitFOC0wNC0wQiAgIChoZXgpCQlBcHBsZSBJbmMKK0U4MDQwQiAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LTA0LTYyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0U4MDQ2MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LTA1LTZEICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworRTgwNTZEICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCUNBUlJFVEVSQSBCQVNFIEFFUkVBICMgNTg1MAorCQkJCVphcG9wYW4gSmFsaXNjbyA0NDEzMAorCQkJCU1FWElDTworCitFOC0wNi04OCAgIChoZXgpCQlBcHBsZSBJbmMuIAorRTgwNjg4ICAgICAoYmFzZSAxNikJCUFwcGxlIEluYy4gCisJCQkJT25lIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LTBCLTEzICAgKGhleCkJCUFraWIgU3lzdGVtcyBUYWl3YW4sIElOQworRTgwQjEzICAgICAoYmFzZSAxNikJCUFraWIgU3lzdGVtcyBUYWl3YW4sIElOQworCQkJCU5vLjU4Mi0xLCBSdWlHdWFuZyBSZAorCQkJCU5laUh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0U4LTBDLTM4ICAgKGhleCkJCURBRVlPVU5HIElORk9STUFUSU9OIFNZU1RFTSBDTy4sIExURAorRTgwQzM4ICAgICAoYmFzZSAxNikJCURBRVlPVU5HIElORk9STUFUSU9OIFNZU1RFTSBDTy4sIExURAorCQkJCSM4MjYgVEFNTklQLURPTkcsIFlVU0VPTkctR08sIAorCQkJCURBRUpPTiAgMzA1LTUxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFOC0xMS0zMiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMVEQKK0U4MTEzMiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMVEQKKwkJCQk0MTYsIE1hZXRhbmctM0RvbmcsIFllb25nb24tR3UKKwkJCQlTdXdvbiBHeWVvbmdnaS1EbyA0NDMtNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0U4LTI4LTc3ICAgKGhleCkJCVRNWSBDby4sIEx0ZC4KK0U4Mjg3NyAgICAgKGJhc2UgMTYpCQlUTVkgQ28uLCBMdGQuCisJCQkJQXR0aWMgQmxkZy4gM0YsIDEtMi0xMCBJc2UtY2hvLAorCQkJCUFzaGlrYWdhLXNoaSBUb2NoaWdpIDMyNi0wMDUzCisJCQkJSkFQQU4KKworRTgtMjgtRDUgICAoaGV4KQkJQ290cyBUZWNobm9sb2d5CitFODI4RDUgICAgIChiYXNlIDE2KQkJQ290cyBUZWNobm9sb2d5CisJCQkJQy03MDIsIEJ1bmRhbmcgVGVjaG5vIFBhcmssIDE0NSwKKwkJCQlZYXRhb3AtZG9uZywgQnVuZGFuZy1ndSwKKwkJCQlTdW5nbmFtLUNpdHkgS3lvdW5nZ2ktZG8gNDYzLTc2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFOC0zOS1ERiAgIChoZXgpCQlBc2tleSBDb21wdXRlcgorRTgzOURGICAgICAoYmFzZSAxNikJCUFza2V5IENvbXB1dGVyCisJCQkJMTBGLE5PLjExOSxDSElFTktBTkcgUkQsQ0hVTkctSE8sCisJCQkJVEFJUEVJIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRTgtM0EtOTcgICAoaGV4KQkJT0NaIFRlY2hub2xvZ3kgR3JvdXAKK0U4M0E5NyAgICAgKGJhc2UgMTYpCQlPQ1ogVGVjaG5vbG9neSBHcm91cAorCQkJCTYzNzMgU2FuIElnbmFjaW8gQXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LTNFLUI2ICAgKGhleCkJCVJJTQorRTgzRUI2ICAgICAoYmFzZSAxNikJCVJJTQorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCitFOC00MC00MCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitFODQwNDAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFOC00RS0wNiAgIChoZXgpCQlQUklWQVRFCitFODRFMDYgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKK0U4LTRFLUNFICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorRTg0RUNFICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKK0U4LTVCLTVCICAgKGhleCkJCUxHIEVMRUNUUk9OSUNTIElOQworRTg1QjVCICAgICAoYmFzZSAxNikJCUxHIEVMRUNUUk9OSUNTIElOQworCQkJCTE5LTEsIENIRU9OR0hPLVJJLCBKSU5XSS1NWUVPTgorCQkJCVBZRU9OR1RBRUsgR1lFT05HR0ktRE8gNDUxLTcxMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFOC01RS01MyAgIChoZXgpCQlJbmZyYXRlYyBEYXRlbnRlY2huaWsgR21iSAorRTg1RTUzICAgICAoYmFzZSAxNikJCUluZnJhdGVjIERhdGVudGVjaG5payBHbWJICisJCQkJR2V2ZW5lciBXZWcgMzgKKwkJCQlOZXVlbnJhZGUgTlJXIDU4NTc5CisJCQkJR0VSTUFOWQorCitFOC02Qy1EQSAgIChoZXgpCQlTdXBlcmNvbXB1dGVycyBhbmQgTmV1cm9jb21wdXRlcnMgUmVzZWFyY2ggQ2VudGVyCitFODZDREEgICAgIChiYXNlIDE2KQkJU3VwZXJjb21wdXRlcnMgYW5kIE5ldXJvY29tcHV0ZXJzIFJlc2VhcmNoIENlbnRlcgorCQkJCTIsIENoZWtob3Ygc3QKKwkJCQlUYWdhbnJvZyAgUm9zdG92LW9uLURvbiByZWdpb24gIDM0NzkyMiAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworRTgtNzUtN0YgICAoaGV4KQkJRklSUyBUZWNobm9sb2dpZXMoU2hlbnpoZW4pIENvLiwgTHRkCitFODc1N0YgICAgIChiYXNlIDE2KQkJRklSUyBUZWNobm9sb2dpZXMoU2hlbnpoZW4pIENvLiwgTHRkCisJCQkJUm0gMTJBLCBBcmVhIEEsIEhvbmdzb25nIEJ1c2luZXNzIEJ1aWxkaW5nLCBUYWlyYW4gOXRoIFJkLCBDaGVnb25nbWlhbywgCisJCQkJRnV0aWFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA0MAorCQkJCUNISU5BCisKK0U4LTdBLUYzICAgKGhleCkJCVM1IFRlY2ggUy5yLmwuCitFODdBRjMgICAgIChiYXNlIDE2KQkJUzUgVGVjaCBTLnIubC4KKwkJCQlWaWEgVG9ydG9uYSA3MgorCQkJCU1pbGFubyAgMjAxNDQKKwkJCQlJVEFMWQorCitFOC05NC00QyAgIChoZXgpCQlDb2dlbnQgSGVhbHRoY2FyZSBTeXN0ZW1zIEx0ZAorRTg5NDRDICAgICAoYmFzZSAxNikJCUNvZ2VudCBIZWFsdGhjYXJlIFN5c3RlbXMgTHRkCisJCQkJMTQzZSBBcnRodXIgUm9hZAorCQkJCVdpbmRzb3IKKwkJCQlCZXJrc2hpcmUgIFNMNCAxU0UKKwkJCQlVTklURUQgS0lOR0RPTQorCitFOC05OS01QSAgIChoZXgpCQlQaWlHQUIsIFByb2Nlc3NpbmZvcm1hdGlvbiBpIEdvdGVib3JnIEFCCitFODk5NUEgICAgIChiYXNlIDE2KQkJUGlpR0FCLCBQcm9jZXNzaW5mb3JtYXRpb24gaSBHb3RlYm9yZyBBQgorCQkJCUFuZGVycyBDYXJsc3NvbnMgZ2F0YSAxCisJCQkJR290aGVuYnVyZyAgNDE3IDU1CisJCQkJU1dFREVOCisKK0U4LTlBLThGICAgKGhleCkJCVF1YW50YSBDb21wdXRlciBJbmMuCitFODlBOEYgICAgIChiYXNlIDE2KQkJUXVhbnRhIENvbXB1dGVyIEluYy4KKwkJCQkyMTEsIFdlbiBId2EgMm5kIFJkLixLdWVpIFNoYW4sIFRhbyBZdWFuIAorCQkJCVRBSVBFSSAgMzMzNzcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0U4LTlELTg3ICAgKGhleCkJCVRvc2hpYmEKK0U4OUQ4NyAgICAgKGJhc2UgMTYpCQlUb3NoaWJhCisJCQkJMi05LFN1ZWhpcm8tQ2hvCisJCQkJT21lIFRva3lvIDE5ODg3MTAKKwkJCQlKQVBBTgorCitFOC1BNC1DMSAgIChoZXgpCQlEZWVwIFNlYSBFbGVjdHJvbmljcyBQTEMKK0U4QTRDMSAgICAgKGJhc2UgMTYpCQlEZWVwIFNlYSBFbGVjdHJvbmljcyBQTEMKKwkJCQlIaWdoZmllbGQgSG91c2UKKwkJCQlIdW5tYW5ieSBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCUh1bm1hbmJ5IE5vcnRoIFlvcmtzaGlyZSBZTzE0IDBQSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0U4LUI0LUFFICAgKGhleCkJCVNoZW56aGVuIEMmRCBFbGVjdHJvbmljcyBDby4sTHRkCitFOEI0QUUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQyZEIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQlCdWlsZGluZyAyLCBYaWEgWW91IFNvbmcgTW91bnRhaW4gVG9wIEluZHVzdHJpYWwgRGlzdHJpY3QsIFlvdSBTb25nIFZpbGxhZ2UKKwkJCQlMb25naHVhLCBCYW8gQW4KKwkJCQlTaGVuemhlbiBHdWFuZyBEb25nIDUxODAwMAorCQkJCUNISU5BCisKK0U4LUI3LTQ4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0U4Qjc0OCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LUJBLTcwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0U4QkE3MCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFOC1CRS04MSAgIChoZXgpCQlTQUdFTUNPTQorRThCRTgxICAgICAoYmFzZSAxNikJCVNBR0VNQ09NCisJCQkJMjUwIHJvdXRlIGRlIGwnRW1wZXJldXIKKwkJCQlSVUVJTCBNQUxNQUlTT04gSWxlIGRlIEZyYW5jZSA5Mjg0OAorCQkJCUZSQU5DRQorCitFOC1DMi0yOSAgIChoZXgpCQlILURpc3BsYXlzIChNU0MpIEJoZAorRThDMjI5ICAgICAoYmFzZSAxNikJCUgtRGlzcGxheXMgKE1TQykgQmhkCisJCQkJTm8uIDMxICYgMzIsIEphbGFuIEdhbmdzYSBEdWEKKwkJCQlQYXNpciBHdWRhbmcKKwkJCQlKb2hvciBCYWhydSAgODE3MDAKKwkJCQlNQUxBWVNJQQorCitFOC1DMy0yMCAgIChoZXgpCQlBdXN0Y28gQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIFB0eSBMdGQKK0U4QzMyMCAgICAgKGJhc2UgMTYpCQlBdXN0Y28gQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIFB0eSBMdGQKKwkJCQk0MCBPJ01hbGxleSBTdHJlZXQKKwkJCQlPc2Jvcm5lIFBhcmsgV2VzdGVybiBBdXN0cmFsaWEgNjAxNworCQkJCUFVU1RSQUxJQQorCitFOC1DQy0zMiAgIChoZXgpCQlNaWNyb25ldCAgTFRECitFOENDMzIgICAgIChiYXNlIDE2KQkJTWljcm9uZXQgIExURAorCQkJCUhhbWV0enVkYSAyNworCQkJCUF6b3IgIDU4MDAxCisJCQkJSVNSQUVMCisKK0U4LURBLUFBICAgKGhleCkJCVZpZGVvSG9tZSBUZWNobm9sb2d5IENvcnAuCitFOERBQUEgICAgIChiYXNlIDE2KQkJVmlkZW9Ib21lIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQk0Ri0xLCBOby4gMTkyLCBEYSBUdW5nIFJkLiwgU2VjLiAzLCBIc2ljaGloLAorCQkJCVRhaXBlaSBIc2llbiAgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFOC1ERi1GMiAgIChoZXgpCQlQUkYgQ28uLCBMdGQuCitFOERGRjIgICAgIChiYXNlIDE2KQkJUFJGIENvLiwgTHRkLgorCQkJCSM1MTAsIExlYWRlcnMgQi9ELCBZYXRvcC1kb25nCisJCQkJQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLWNpdHkgR3llb25nZ2ktZG8gNDYzLTgyOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFOC1FMC04RiAgIChoZXgpCQlHUkFWT1RFQ0ggTUFSS0lORyBTQVMKK0U4RTA4RiAgICAgKGJhc2UgMTYpCQlHUkFWT1RFQ0ggTUFSS0lORyBTQVMKKwkJCQk1NiBBVkVOVUUgSkVBTiBKQVVSRVMKKwkJCQlMQSBDSEFQRUxMRSBTQUlOVCBMVUMgQVVCRSAxMDYwMAorCQkJCUZSQU5DRQorCitFOC1FMC1CNyAgIChoZXgpCQlUb3NoaWJhCitFOEUwQjcgICAgIChiYXNlIDE2KQkJVG9zaGliYQorCQkJCTItOSxTdWVoaXJvLUNobworCQkJCU9tZSBUb2t5byAxOTg4NzEwCisJCQkJSkFQQU4KKworRTgtRTEtRTIgICAoaGV4KQkJRW5lcmdvdGVzdAorRThFMUUyICAgICAoYmFzZSAxNikJCUVuZXJnb3Rlc3QKKwkJCQlDaG9yem93c2thIDQ0QgorCQkJCUdsaXdpY2UgU2xhc2sgNDQtMTAwCisJCQkJUE9MQU5ECisKK0U4LUU1LUQ2ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZCAKK0U4RTVENiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQgCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0U4LUU3LTMyICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50CitFOEU3MzIgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQKKwkJCQkyNjgwMSBXZXN0IEFnb3VyYSBSb2FkCisJCQkJQ2FsYWJhc2FzIENBIDkxMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCitFOC1FNy03NiAgIChoZXgpCQlTaGVuemhlbiBLb290aW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQKK0U4RTc3NiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBLb290aW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQkzL0YsIEJ1aWxkaW5nICM0LCBYaW5KaWFuWGluZyBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTb25nYmFpIFJvYWQsIE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIFByb3ZpbmNlIDUxODEwOAorCQkJCUNISU5BCisKK0U4LUY5LTI4ICAgKGhleCkJCVJGVEVDSCBTUkwKK0U4RjkyOCAgICAgKGJhc2UgMTYpCQlSRlRFQ0ggU1JMCisJCQkJVklBIFZFTkVUTywgMjIKKwkJCQlTQ0hJTyBWSUNFTlpBIDM2MDE1CisJCQkJSVRBTFkKKworRUMtMTQtRjYgICAoaGV4KQkJQmlvQ29udHJvbCBBUworRUMxNEY2ICAgICAoYmFzZSAxNikJCUJpb0NvbnRyb2wgQVMKKwkJCQlHcmltc3RhZCBHYXJkIAorCQkJCVJha2tlc3RhZCAgIE4tMTg5MAorCQkJCU5PUldBWQorCitFQy0yMy02OCAgIChoZXgpCQlJbnRlbGxpVm9pY2UgQ28uLEx0ZC4KK0VDMjM2OCAgICAgKGJhc2UgMTYpCQlJbnRlbGxpVm9pY2UgQ28uLEx0ZC4KKwkJCQkzLTYgS2lvaWNobworCQkJCUtpb2ljaG8gUGFyayBCbGQuIDFGCisJCQkJQ2hpeW9kYSBUb2t5byAxMDItMDA5NAorCQkJCUpBUEFOCisKK0VDLTMwLTkxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0VDMzA5MSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFQy0zQi1GMCAgIChoZXgpCQlOb3ZlbFNhdAorRUMzQkYwICAgICAoYmFzZSAxNikJCU5vdmVsU2F0CisJCQkJSGF0YWFzaWEgMjEKKwkJCQlSYWFuYW5hICAyMzk2CisJCQkJSVNSQUVMCisKK0VDLTQzLUU2ICAgKGhleCkJCUFXQ0VSIEx0ZC4KK0VDNDNFNiAgICAgKGJhc2UgMTYpCQlBV0NFUiBMdGQuCisJCQkJMTAwLTQxMyBCdWNoZW9uIFRlY2hub3BhcmsKKwkJCQkzNjQgU2FuSmVvbmctZG9uZywgT2plb25nLWd1CisJCQkJQnVjaGVvbi1jaXR5IEd5ZW9uZ2dpLWRvIDQyMS03NDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRUMtNDQtNzYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworRUM0NDc2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRUMtNDYtNDQgICAoaGV4KQkJVFRLIFNBUworRUM0NjQ0ICAgICAoYmFzZSAxNikJCVRUSyBTQVMKKwkJCQk0LCBSdWUgZHUgQ2hlbWluIFZlcnQKKwkJCQlDbGljaHkgIDkyMTEwCisJCQkJRlJBTkNFCisKK0VDLTU0LTJFICAgKGhleCkJCVNoYW5naGFpIFhpTWVpIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4gTHRkCitFQzU0MkUgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgWGlNZWkgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLiBMdGQKKwkJCQlSb29tIDUwMywgTm8uMjYyMywgR29uZ0hlWGluIFJvYWQKKwkJCQlTaGFuZ2hhaSAgMjAwMDcyCisJCQkJQ0hJTkEKKworRUMtNTUtRjkgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorRUM1NUY5ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKK0VDLTVDLTY5ICAgKGhleCkJCU1JVFNVQklTSEkgSEVBVlkgSU5EVVNUUklFUyBNRUNIQVRST05JQ1MgU1lTVEVNUyxMVEQuCitFQzVDNjkgICAgIChiYXNlIDE2KQkJTUlUU1VCSVNISSBIRUFWWSBJTkRVU1RSSUVTIE1FQ0hBVFJPTklDUyBTWVNURU1TLExURC4KKwkJCQkxLTE2LDUtQ0hPTUUsS09NQVRTVS1ET1JJLAorCQkJCUtPQkUgSFlPR08gNjUyLTA4NjUKKwkJCQlKQVBBTgorCitFQy02Ni1EMSAgIChoZXgpCQlCJmFtcDtXIEdyb3VwIExURAorRUM2NkQxICAgICAoYmFzZSAxNikJCUImYW1wO1cgR3JvdXAgTFRECisJCQkJRGFsZSBSb2FkCisJCQkJV29ydGhpbmcgU3Vzc2V4IEJOMTEgMkJICisJCQkJVU5JVEVEIEtJTkdET00KKworRUMtNkMtOUYgICAoaGV4KQkJQ2hlbmdkdSBWb2xhbnMgVGVjaG5vbG9neSBDTy4sTFRECitFQzZDOUYgICAgIChiYXNlIDE2KQkJQ2hlbmdkdSBWb2xhbnMgVGVjaG5vbG9neSBDTy4sTFRECisJCQkJMm5kIEZsb29yIEJ1aWxkaW5nIDRCIEhpLVRlY2ggSW5jdWJhdGlvbiBQYXJrLE5hbnlhbiBYaWFuLFRpYW5mdSBBdmUKKwkJCQlDaGVuZ2R1IFNpY2h1YW4gNjEwMDQxCisJCQkJQ0hJTkEKKworRUMtN0MtNzQgICAoaGV4KQkJSnVzdG9uZSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCitFQzdDNzQgICAgIChiYXNlIDE2KQkJSnVzdG9uZSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJVG9uZ2d1YW5nIEJ1aWxkaW5nIEYxOSwgMTIjIFNvdXRoIEFncmljdWx0dXJlIEV4aGliaXRpb24gQ2VudGVyIFJvYWQsIAorCQkJCUNoYW95YW5nIERpc3RyaWN0IAorCQkJCUJlaWppbmcgIDEwMDEyNQorCQkJCUNISU5BCisKK0VDLTdELTlEICAgKGhleCkJCU1FSQorRUM3RDlEICAgICAoYmFzZSAxNikJCU1FSQorCQkJCTEzMDEgV2lsc29uIERyaXZlCisJCQkJV2VzdCBDaGVzdGVyIFBBIDE5MzgwCisJCQkJVU5JVEVEIFNUQVRFUworCitFQy04My02QyAgIChoZXgpCQlSTSBUZWNoIENvLiwgTHRkLgorRUM4MzZDICAgICAoYmFzZSAxNikJCVJNIFRlY2ggQ28uLCBMdGQuCisJCQkJQy04MDEsIEJ1cHllb25nIFdvb2xpbSBMaW9ucyBWYWxsZXkKKwkJCQlDaGVvbmdjaGVvbiAyLWRvbmcsIEJ1cHllb25nLWd1CisJCQkJSW5jaGVvbiBDaXR5ICA0MDMtOTExCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0VDLThFLUFEICAgKGhleCkJCURMWAorRUM4RUFEICAgICAoYmFzZSAxNikJCURMWAorCQkJCSM0MDEsIFNlb2lsIEIvRCwxMzU5LTQ1IFNlb2NobzItZG9uZworCQkJCVNlb2Noby1rdSwgCisJCQkJU2VvdWwgIDEzNy04NjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRUMtOTItMzMgICAoaGV4KQkJRWRkeWZpIE5EVCBJbmMKK0VDOTIzMyAgICAgKGJhc2UgMTYpCQlFZGR5ZmkgTkRUIEluYworCQkJCTM2MCwgRnJhbnF1ZXQgc3RyZWV0CisJCQkJU3VpdGUgNDAKKwkJCQlRdWViZWMgIEcxUCA0TjMKKwkJCQlDQU5BREEKKworRUMtOTYtODEgICAoaGV4KQkJMjI3NjQyNyBPbnRhcmlvIEluYworRUM5NjgxICAgICAoYmFzZSAxNikJCTIyNzY0MjcgT250YXJpbyBJbmMKKwkJCQkzMS0xMjc1IE1vcm5pbmdzaWRlIEF2ZQorCQkJCVRvcm9udG8gT04gTTFCM1cxCisJCQkJQ0FOQURBCisKK0VDLTk4LTZDICAgKGhleCkJCUx1ZmZ0IE1lc3MtIHVuZCBSZWdlbHRlY2huaWsgR21iSAorRUM5ODZDICAgICAoYmFzZSAxNikJCUx1ZmZ0IE1lc3MtIHVuZCBSZWdlbHRlY2huaWsgR21iSAorCQkJCUd1dGVuYmVyZ3N0ci4gMjAKKwkJCQlGZWxsYmFjaCBCYWRlbi1XdWVydHRlbWJlcmcgNzA3MzYKKwkJCQlHRVJNQU5ZCisKK0VDLTk4LUMxICAgKGhleCkJCUJlaWppbmcgUmlzYm8gTmV0d29yayBUZWNobm9sb2d5IENvLixMdGQKK0VDOThDMSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFJpc2JvIE5ldHdvcmsgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJMS9GIFlpbnlhbiBCdWlsZGluZyAyQSxOby4yMyBBbm5pbmd6aHVhbmdkb25nbHUgSGFpZGlhbiBEaXN0cmljdCAKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCitFQy05Qi01QiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorRUM5QjVCICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCUtlbXBlbGUgIDkwNTcwCisJCQkJRklOTEFORAorCitFQy05RS1DRCAgIChoZXgpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIgYW5kIEVtYmVkZGVkIENvbXB1dGluZworRUM5RUNEICAgICAoYmFzZSAxNikJCUVtZXJzb24gTmV0d29yayBQb3dlciBhbmQgRW1iZWRkZWQgQ29tcHV0aW5nCisJCQkJMjkwMCBTLCBEaWFibG8gV2F5IFN1aXRlIDE5MAorCQkJCVRlbXBlIEFyaXpvbmEgODUyODIKKwkJCQlVTklURUQgU1RBVEVTCisKK0VDLUIxLTA2ICAgKGhleCkJCUFjdXJvIE5ldHdvcmtzLCBJbmMKK0VDQjEwNiAgICAgKGJhc2UgMTYpCQlBY3VybyBOZXR3b3JrcywgSW5jCisJCQkJNDI4MDggQ2hyaXN0eSBTdC4sIFN1aXRlIDEwMAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKK0VDLUJCLUFFICAgKGhleCkJCURpZ2l2b2ljZSBUZWNub2xvZ2lhIGVtIEVsZXRyb25pY2EgTHRkYQorRUNCQkFFICAgICAoYmFzZSAxNikJCURpZ2l2b2ljZSBUZWNub2xvZ2lhIGVtIEVsZXRyb25pY2EgTHRkYQorCQkJCUFsYW1lZGEgSnVydSwgMTU5IC0gVG9ycmVvCisJCQkJQmFydWVyaSBTYW8gUGF1bG8gMDY0NTUtMDEwCisJCQkJQlJBWklMCisKK0VDLUJELTA5ICAgKGhleCkJCUZVU0lPTiBFbGVjdHJvbmljcyBMdGQKK0VDQkQwOSAgICAgKGJhc2UgMTYpCQlGVVNJT04gRWxlY3Ryb25pY3MgTHRkCisJCQkJUE8gQm94IDEzNyAtIDE0MgorCQkJCVBhcm5lbGwKKwkJCQlBdWNrbGFuZCAgMTE1MQorCQkJCU5FVyBaRUFMQU5ECisKK0VDLUMzLThBICAgKGhleCkJCUFjY3VlbmVyZ3kgKENBTkFEQSkgSW5jCitFQ0MzOEEgICAgIChiYXNlIDE2KQkJQWNjdWVuZXJneSAoQ0FOQURBKSBJbmMKKwkJCQkyIExhbnNpbmcgU3F1YXJlLCBTdWl0ZSA1MDMKKwkJCQlUb3JvbnRvIE9udGFyaW8gTTJKIDRQOAorCQkJCUNBTkFEQQorCitFQy1DOC04MiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitFQ0M4ODIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFQy1DRC02RCAgIChoZXgpCQlBbGxpZWQgVGVsZXNpcywgSW5jLgorRUNDRDZEICAgICAoYmFzZSAxNikJCUFsbGllZCBUZWxlc2lzLCBJbmMuCisJCQkJMzIwMCBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFQy1EMC0wRSAgIChoZXgpCQlNaXJhZVJlY29nbml0aW9uIENvLiwgTHRkLgorRUNEMDBFICAgICAoYmFzZSAxNikJCU1pcmFlUmVjb2duaXRpb24gQ28uLCBMdGQuCisJCQkJUHJpbWVCYW5rIEJsZGcuIEFubmV4LTNGLCAjMjc4LTMKKwkJCQlOb25oeXVuLWRvbmcsIEdhbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTgzMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFQy1ERS0zRCAgIChoZXgpCQlMYW1wcmV5IE5ldHdvcmtzLCBJbmMuCitFQ0RFM0QgICAgIChiYXNlIDE2KQkJTGFtcHJleSBOZXR3b3JrcywgSW5jLgorCQkJCTU4IERvdmVyIFJvYWQKKwkJCQlEdXJoYW0gTkggMDM4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKK0VDLUUwLTlCICAgKGhleCkJCVNhbXN1bmcgZWxlY3Ryb25pY3MgQ08uLCBMVEQKK0VDRTA5QiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIGVsZWN0cm9uaWNzIENPLiwgTFRECisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIFllb25ndG9uZy1ndSwKKwkJCQlTdXdvbi1DaXR5IEd5ZW9uZ2dpLWRvIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRUMtRTUtNTUgICAoaGV4KQkJSGlyc2NobWFubiBBdXRvbWF0aW9uCitFQ0U1NTUgICAgIChiYXNlIDE2KQkJSGlyc2NobWFubiBBdXRvbWF0aW9uCisJCQkJU3R1dHRnYXJ0ZXIgU3RyYXNzZSA0NS01MQorCQkJCU5lY2thcnRlbnpsaW5nZW4gQmFkZW4tV++/vXJ0dGVtYmVyZyA3MjY1NAorCQkJCUdFUk1BTlkKKworRUMtRTktMEIgICAoaGV4KQkJU0lTVEVNQSBTT0xVQ09FUyBFTEVUUk9OSUNBUyBMVERBIC0gRUFTWVRFQ0gKK0VDRTkwQiAgICAgKGJhc2UgMTYpCQlTSVNURU1BIFNPTFVDT0VTIEVMRVRST05JQ0FTIExUREEgLSBFQVNZVEVDSAorCQkJCVJVQSBHVUVSUkEgREUgQUdVSUFSLCAyMjAKKwkJCQlTQU8gUEFVTE8gU1AgMDgyNzUtMjYwCisJCQkJQlJBWklMCisKK0VDLUU5LUY4ICAgKGhleCkJCUd1YW5nIFpob3UgVFJJLVNVTiBFbGVjdHJvbmljcyBUZWNobm9sb2d5ICBDby4sIEx0ZAorRUNFOUY4ICAgICAoYmFzZSAxNikJCUd1YW5nIFpob3UgVFJJLVNVTiBFbGVjdHJvbmljcyBUZWNobm9sb2d5ICBDby4sIEx0ZAorCQkJCTl0aCBmbG9vciBHdWFuZ3pob3UgaW5mbyBwb3J0IGJ1aWxkaW5nIEIsIEtleXVuIFJvYWQsIFRpYW5oZSBEaXN0cmljdCwgR3Vhbmd6aG91ICxQUkMKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDY2NQorCQkJCUNISU5BCisKK0VDLUYyLTM2ICAgKGhleCkJCU5FT01PTlRBTkEgRUxFQ1RST05JQ1MKK0VDRjIzNiAgICAgKGJhc2UgMTYpCQlORU9NT05UQU5BIEVMRUNUUk9OSUNTCisJCQkJTWxhZG9zdC00LCBibC4gNDgzLCBtYWcuIDEzCisJCQkJU29maWEgIDE3MTUKKwkJCQlCVUxHQVJJQQorCitFQy1GQS1BQSAgIChoZXgpCQlUaGUgSU1TIENvbXBhbnkKK0VDRkFBQSAgICAgKGJhc2UgMTYpCQlUaGUgSU1TIENvbXBhbnkKKwkJCQkyOTI5IEUuIEltcGVyaWFsIEhpZ2h3YXkKKwkJCQlTdWl0ZSAxNzAKKwkJCQlCcmVhIENBIDkyODIxCisJCQkJVU5JVEVEIFNUQVRFUworCitFQy1GRS03RSAgIChoZXgpCQlCbHVlUmFkaW9zLCBJbmMuCitFQ0ZFN0UgICAgIChiYXNlIDE2KQkJQmx1ZVJhZGlvcywgSW5jLgorCQkJCTcxNzMgUy4gSGF2YW5hIFN0cmVldCwgU3VpdGUgNjAwCisJCQkJRW5nbGV3b29kIENvbG9yYWRvIDgwMTEyCisJCQkJVU5JVEVEIFNUQVRFUworCitGMC0wMi00OCAgIChoZXgpCQlTbWFydGVCdWlsZGluZworRjAwMjQ4ICAgICAoYmFzZSAxNikJCVNtYXJ0ZUJ1aWxkaW5nCisJCQkJMzI2NyBCZWUgQ2F2ZSBSb2FkCisJCQkJMTA3LTE3MworCQkJCUF1c3RpbiBUWCA3ODc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtMjQtMDggICAoaGV4KQkJVGFsYXJpcyAoU3dlZGVuKSBBQgorRjAyNDA4ICAgICAoYmFzZSAxNikJCVRhbGFyaXMgKFN3ZWRlbikgQUIKKwkJCQlUYWxqcyBTb2RyYSBJbmR1c3RyaW9tcmFkZQorCQkJCUZsZW4gIDY0Mjg0CisJCQkJU1dFREVOCisKK0YwLTI1LTcyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0YwMjU3MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0YwLTI2LTRDICAgKGhleCkJCURyLiBTaWdyaXN0IEFHCitGMDI2NEMgICAgIChiYXNlIDE2KQkJRHIuIFNpZ3Jpc3QgQUcKKwkJCQlIb2Z1cmxpc3RyYXNzZSAxCisJCQkJRW5uZXRi77+9cmdlbiAgNjM3MworCQkJCVNXSVRaRVJMQU5ECisKK0YwLTJBLTYxICAgKGhleCkJCVdhbGRvIE5ldHdvcmtzLCBJbmMuCitGMDJBNjEgICAgIChiYXNlIDE2KQkJV2FsZG8gTmV0d29ya3MsIEluYy4KKwkJCQk0NTA1IFNwaWNld29vZCBTcHJpbmdzIFJkCisJCQkJU3VpdGUgMzMzCisJCQkJQXVzdGluIFRleGFzIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCitGMC0yRi1EOCAgIChoZXgpCQlCaTItVmlzaW9uCitGMDJGRDggICAgIChiYXNlIDE2KQkJQmkyLVZpc2lvbgorCQkJCTE2LTUwNCwgMjEtYmFuLCBTaGltb21hcnVrbyA0LWNob21lLCBPb3RhLWt1CisJCQkJVG9reW8gIDE0Ni0wMDkyCisJCQkJSkFQQU4KKworRjAtNDMtMzUgICAoaGV4KQkJRFZOKFNoYW5naGFpKUx0ZC4KK0YwNDMzNSAgICAgKGJhc2UgMTYpCQlEVk4oU2hhbmdoYWkpTHRkLgorCQkJCTExRixIZWNodWFuIEJ1aWxkaW5nLDIwMTYgWWlzaGFuIFJkLAorCQkJCVNoYW5naGFpICAyMDExMDMKKwkJCQlDSElOQQorCitGMC00Qi1GMiAgIChoZXgpCQlKVEVDSCBDb21tdW5pY2F0aW9ucywgSW5jLgorRjA0QkYyICAgICAoYmFzZSAxNikJCUpURUNIIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNjQxMyBDb25ncmVzcyBBdmUuCisJCQkJQm9jYSBSYXRvbiBGTCAzMzQ4NworCQkJCVVOSVRFRCBTVEFURVMKKworRjAtNEQtQTIgICAoaGV4KQkJRGVsbCBJbmMuCitGMDREQTIgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgd2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCByb2NrICBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtNTgtNDkgICAoaGV4KQkJQ2FyZVZpZXcgQ29tbXVuaWNhdGlvbnMKK0YwNTg0OSAgICAgKGJhc2UgMTYpCQlDYXJlVmlldyBDb21tdW5pY2F0aW9ucworCQkJCTQwNSBTdGF0ZSBIV1kgMTIxIEJZUAorCQkJCVN1aXRlIEIyNDAKKwkJCQlMZXdpc3ZpbGxlICBUZXhhcyA3NTA2NworCQkJCVVOSVRFRCBTVEFURVMKKworRjAtNUQtODkgICAoaGV4KQkJUFJJVkFURQorRjA1RDg5ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCitGMC02Mi04MSAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCitGMDYyODEgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQuCisJCQkJUm9zZXZpbGxlIENhbGlmb3JuaWEgOTU3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKK0YwLTY1LUREICAgKGhleCkJCVByaW1heCBFbGVjdHJvbmljcyBMdGQuCitGMDY1REQgICAgIChiYXNlIDE2KQkJUHJpbWF4IEVsZWN0cm9uaWNzIEx0ZC4KKwkJCQk2NjksIFJ1ZXkgS3VhbmcgUm9hZCwgTmVpaHUKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRjAtNjgtNTMgICAoaGV4KQkJSW50ZWdyYXRlZCBDb3Jwb3JhdGlvbgorRjA2ODUzICAgICAoYmFzZSAxNikJCUludGVncmF0ZWQgQ29ycG9yYXRpb24KKwkJCQkzL0YsIFNodW4gT24gQ29tbWVyY2lhbCBCbGRnLiwgCisJCQkJMTEyLTExNCBEZXMgVm9ldXggUm9hZCwgQy4sCisJCQkJQ2V0bnJhbCwgIAorCQkJCUhPTkcgS09ORworCitGMC03Ny1EMCAgIChoZXgpCQlYY2VsbGVuCitGMDc3RDAgICAgIChiYXNlIDE2KQkJWGNlbGxlbgorCQkJCTE1RiBLSU5TIFRvd2VyIDI1LTEsSmVvbmdqYS1kb25nLEJ1bmdkYW5nLWd1LAorCQkJCVNlb25nbmFtIEd5ZW9uZ2dpIDQ2MzgxMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGMC03Qi1DQiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorRjA3QkNCICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgICAyMDE2MTMgCisJCQkJQ0hJTkEKKworRjAtN0QtNjggICAoaGV4KQkJRC1MaW5rIENvcnBvcmF0aW9uCitGMDdENjggICAgIChiYXNlIDE2KQkJRC1MaW5rIENvcnBvcmF0aW9uCisJCQkJTm8uMjg5LCBTaW5odSAzcmQgUmQuLCBOZWlodSBEaXN0cmljdCwgCisJCQkJVGFpcGVpIENpdHkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRjAtODEtQUYgICAoaGV4KQkJSVJaIEFVVE9NQVRJT04gVEVDSE5PTE9HSUVTIExURAorRjA4MUFGICAgICAoYmFzZSAxNikJCUlSWiBBVVRPTUFUSU9OIFRFQ0hOT0xPR0lFUyBMVEQKKwkJCQlVbml0IDktMTAgMjcvRiBTZWFwb3dlciBUb3dlcgorCQkJCUNvbmNvcmRpYSBQbGF6YSAxIFNjaWVuY2UgTXVzZXVtIFJkLFRzaW1TaGFUc3VpCisJCQkJS293bG9vbiAKKwkJCQlIT05HIEtPTkcKKworRjAtOEItRkUgICAoaGV4KQkJQ09TVEVMLixDTy5MVEQKK0YwOEJGRSAgICAgKGJhc2UgMTYpCQlDT1NURUwuLENPLkxURAorCQkJCTIyMy0zOSwgU2FuZ2RhZXdvbi1Eb25nLCBKdW5nd29uLUd1CisJCQkJU2VvbmduYW0tc2kgS3l1bmdnaS1EbyA0NjItODA3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0YwLTkzLTNBICAgKGhleCkJCU54dENvbmVjdAorRjA5MzNBICAgICAoYmFzZSAxNikJCU54dENvbmVjdAorCQkJCVNjaGlsbGVyc3RyYXNzZSA0CisJCQkJQmFkIEtpc3NpbmdlbiAgOTc2ODgKKwkJCQlHRVJNQU5ZCisKK0YwLTlDLUJCICAgKGhleCkJCVJhb25UaGluayBJbmMuCitGMDlDQkIgICAgIChiYXNlIDE2KQkJUmFvblRoaW5rIEluYy4KKwkJCQk5MTYsIEJ5dWNrc2FuIERpZ2l0YWwgVmFsbGV5IDItQ2hhLCA0ODEtMTAsIEthc2FuLURvbmcsIEt1bWNoZW9uLUd1LCAKKwkJCQlTZW91bCAgMTUzLTc4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGMC1BNy02NCAgIChoZXgpCQlHU1QgQ28uLCBMdGQuCitGMEE3NjQgICAgIChiYXNlIDE2KQkJR1NUIENvLiwgTHRkLgorCQkJCSM5MTksIEdvc2Flay1kb25nLCBHd29uc2Vvbi1ndSwKKwkJCQlTdXdvbi1zaSBHeWVvbmdnaS1kbyA0NDEtODEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0YwLUFELTRFICAgKGhleCkJCUdsb2JhbHNjYWxlIFRlY2hub2xvZ2llcywgSW5jLgorRjBBRDRFICAgICAoYmFzZSAxNikJCUdsb2JhbHNjYWxlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTVGLCBOby4gMiBCdWlsZGluZywgTWlueGluZyBJbmR1c3RyaWFsIFBhcmsKKwkJCQlNaW5rYW5nIFJkLiwgTWluemhpIFN0LiwgQmFvYW4gRGlzdC4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTA5CisJCQkJQ0hJTkEKKworRjAtQUUtNTEgICAoaGV4KQkJWGkzIENvcnAKK0YwQUU1MSAgICAgKGJhc2UgMTYpCQlYaTMgQ29ycAorCQkJCTI5OSBTLiBNYWluIFN0LgorCQkJCVN1aXRlIDEzMDAKKwkJCQlTYWx0IExha2UgQ2l0eSBVVCA4NDExMQorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtQjQtNzkgICAoaGV4KQkJQXBwbGUKK0YwQjQ3OSAgICAgKGJhc2UgMTYpCQlBcHBsZQorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtQjYtRUIgICAoaGV4KQkJUG9zbGFiIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitGMEI2RUIgICAgIChiYXNlIDE2KQkJUG9zbGFiIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNUYtMSwgTm8uNDkwIEJhbm5hbiBSZC4KKwkJCQlUYWlwZWkgQ291bnR5CisJCQkJSmhvbmdoZSBDaXR5ICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0YwLUJDLUM4ICAgKGhleCkJCU1heElEIChQdHkpIEx0ZAorRjBCQ0M4ICAgICAoYmFzZSAxNikJCU1heElEIChQdHkpIEx0ZAorCQkJCTQzIEhvbWVzdGVhZCBSb2FkCisJCQkJUml2b25pYQorCQkJCUpvaGFubmVzYnVyZyBHYXV0ZW5nIDIxMjgKKwkJCQlTT1VUSCBBRlJJQ0EKKworRjAtQkQtRjEgICAoaGV4KQkJU2lwb2QgSW5jLgorRjBCREYxICAgICAoYmFzZSAxNikJCVNpcG9kIEluYy4KKwkJCQk0NjMzIE9sZCBJcm9uc2lkZXMgRHJpdmUsICM0MDAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtQkYtOTcgICAoaGV4KQkJU29ueSBDb3Jwb3JhdGlvbgorRjBCRjk3ICAgICAoYmFzZSAxNikJCVNvbnkgQ29ycG9yYXRpb24KKwkJCQlHb3RlbnlhbWEgVGVjLgorCQkJCTUtMS0xMiBLaXRhc2hpbmFnYXdhIFNoaW5hZ2F3YS1rdQorCQkJCVRva3lvICAxNDEtMDAwMQorCQkJCUpBUEFOCisKK0YwLUMyLTRDICAgKGhleCkJCVpoZWppYW5nIEZlaVl1ZSBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLCBMdGQKK0YwQzI0QyAgICAgKGJhc2UgMTYpCQlaaGVqaWFuZyBGZWlZdWUgRGlnaXRhbCBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJQmFvdGluZyBJbmR1c3RyaWFsIFBhcmssIDUzMSBKaWFvZ29uZyBSb2FkCisJCQkJIEhhbmd6aG91IENpdHkgWmhlamlhbmcgUHJvdmluY2UgMzEwMDEyCisJCQkJQ0hJTkEKKworRjAtQzItN0MgICAoaGV4KQkJTWlhbnlhbmcgTmV0b3AgVGVsZWNvbSBFcXVpcG1lbnQgQ28uLEx0ZC4KK0YwQzI3QyAgICAgKGJhc2UgMTYpCQlNaWFueWFuZyBOZXRvcCBUZWxlY29tIEVxdWlwbWVudCBDby4sTHRkLgorCQkJCU5vLjExMSxFYXN0IHNlY3Rpb24gb2YgUHVtaW5nIFNvdXRoIFJvYWQsCisJCQkJSGktdGVjaCB6b25lLAorCQkJCU1pYW55YW5nIENpdHkgU2ljaHVhbiBQcm92aW5jZSwgIDYyMTAwMAorCQkJCUNISU5BCisKK0YwLUM4LThDICAgKGhleCkJCUxlZGRhclRlY2ggSW5jLgorRjBDODhDICAgICAoYmFzZSAxNikJCUxlZGRhclRlY2ggSW5jLgorCQkJCTI3NDAgRWluc3RlaW4gU3RyZWV0CisJCQkJUXVlYmVjIENpdHkgIEcxUCA0UzQKKwkJCQlDQU5BREEKKworRjAtRDctNjcgICAoaGV4KQkJQXhlbWEgUGFzc2FnZWtvbnRyb2xsIEFCCitGMEQ3NjcgICAgIChiYXNlIDE2KQkJQXhlbWEgUGFzc2FnZWtvbnRyb2xsIEFCCisJCQkJQm94IDkwIDIxNQorCQkJCVN0b2NraG9sbSAgMTIwIDIzIAorCQkJCVNXRURFTgorCitGMC1EQi0zMCAgIChoZXgpCQlZb3R0YWJ5dGUKK0YwREIzMCAgICAgKGJhc2UgMTYpCQlZb3R0YWJ5dGUKKwkJCQkxNzUwIFMuIFRlbGVncmFwaCBSb2FkCisJCQkJU3VpdGUgMjAwCisJCQkJQmxvb21maWVsZCBUd3AuIE1JIDQ4MzAyCisJCQkJVU5JVEVEIFNUQVRFUworCitGMC1ERS03MSAgIChoZXgpCQlTaGFuZ2hhaSBFRE8gVGVjaG5vbG9naWVzIENvLixMdGQuCitGMERFNzEgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgRURPIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCVVuaXQgMTIzMDIsIEJ1aWxkaW5nIDEyLDQ5OCBHdW9zaG91amluZyBSb2FkLCBQdWRvbmcgTmV3IEFyZWEKKwkJCQlTaGFuZ2hhaSAgMjAxMjAzCisJCQkJQ0hJTkEKKworRjAtREUtRjEgICAoaGV4KQkJV2lzdHJvbiBJbmZvQ29tbSAoS3Vuc2hhbilDbworRjBERUYxICAgICAoYmFzZSAxNikJCVdpc3Ryb24gSW5mb0NvbW0gKEt1bnNoYW4pQ28KKwkJCQkxNjhLdW5TaGFuLCAKKwkJCQlKaWFuZ1N1ICAyMTUzMDAKKwkJCQlDSElOQQorCitGMC1FNS1DMyAgIChoZXgpCQlEcmFlZ2Vyd2VyayBBRyAmYW1wO2FtcDsgQ28uIEtHIGFBCitGMEU1QzMgICAgIChiYXNlIDE2KQkJRHJhZWdlcndlcmsgQUcgJmFtcDthbXA7IENvLiBLRyBhQQorCQkJCU1vaXNsaW5nZXIgQWxsZWUgNTMtNTUKKwkJCQlMdWViZWNrIEdlcm1hbnkgMjM0NTIKKwkJCQlHRVJNQU5ZCisKK0YwLUVDLTM5ICAgKGhleCkJCUVzc2VjCitGMEVDMzkgICAgIChiYXNlIDE2KQkJRXNzZWMKKwkJCQlTY2hvZWJyb2Vrc3RyYWF0IDQ4CisJCQkJUGFhbCBMaW1idXJnIDM1ODMKKwkJCQlCRUxHSVVNCisKK0YwLUVELTFFICAgKGhleCkJCUJpbGtvbiBCaWxnaXNheWFyIEtvbnRyb2xsdSBDaWguIEltLkx0ZC4KK0YwRUQxRSAgICAgKGJhc2UgMTYpCQlCaWxrb24gQmlsZ2lzYXlhciBLb250cm9sbHUgQ2loLiBJbS5MdGQuCisJCQkJR2Vyc2FuIFNhbmF5aSBTaXRlc2kgNjU4LlNva2FrIE5vOjE2CisJCQkJWUVOSU1BSEFMTEUtIEJBVElLRU5UCisJCQkJQU5LQVJBICAwNjM3MAorCQkJCVRVUktFWQorCitGMC1GMC0wMiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorRjBGMDAyICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCisJCQkJIE5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgICAyMDE2MTMKKwkJCQlDSElOQQorCitGMC1GNy1CMyAgIChoZXgpCQlQaG9ybQorRjBGN0IzICAgICAoYmFzZSAxNikJCVBob3JtCisJCQkJMjIyIFJlZ2VudCBTdHJlZXQKKwkJCQlMb25kb24gIFcxQiA1VFIKKwkJCQlVTklURUQgS0lOR0RPTQorCitGMC1GOC00MiAgIChoZXgpCQlLRUVCT1gsIEluYy4KK0YwRjg0MiAgICAgKGJhc2UgMTYpCQlLRUVCT1gsIEluYy4KKwkJCQkxMCBQb3BweSBUcmFpbAorCQkJCVJvbGxpbmcgSGlsbHMgQ2FsaWZvcm5pYSA5MDI3NAorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtRjktRjcgICAoaGV4KQkJSUVTIEdtYkggJmFtcDsgQ28uIEtHCitGMEY5RjcgICAgIChiYXNlIDE2KQkJSUVTIEdtYkggJmFtcDsgQ28uIEtHCisJCQkJRGFybWNoZXIgR3J1bmQgMjIKKwkJCQlNZWluZXJ6aGFnZW4gIDU4NTQwCisJCQkJR0VSTUFOWQorCitGNC0wMy0yMSAgIChoZXgpCQlCZU5lWHQgQi5WLgorRjQwMzIxICAgICAoYmFzZSAxNikJCUJlTmVYdCBCLlYuCisJCQkJVGVyIEdvdXdzdHJhYXQgMworCQkJCUFtc3RlcmRhbSBOSCAxMDkzSlgKKwkJCQlORVRIRVJMQU5EUworCitGNC0wQi05MyAgIChoZXgpCQlSZXNlYXJjaCBJbiBNb3Rpb24KK0Y0MEI5MyAgICAgKGJhc2UgMTYpCQlSZXNlYXJjaCBJbiBNb3Rpb24KKwkJCQkyOTUgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCA1UjkKKwkJCQlDQU5BREEKKworRjQtMUYtMEIgICAoaGV4KQkJWUFNQUJJU0hJIENvcnBvcmF0aW9uCitGNDFGMEIgICAgIChiYXNlIDE2KQkJWUFNQUJJU0hJIENvcnBvcmF0aW9uCisJCQkJMy0xNC0xMiBLYW1pZ291CisJCQkJRWJpbmEtY2l0eSBLQU5BR0FXQSAyNDMtMDQzNAorCQkJCUpBUEFOCisKK0Y0LTM4LTE0ICAgKGhleCkJCVNoYW5naGFpIEhvd2VsbCBFbGVjdHJvbmljIENvLixMdGQKK0Y0MzgxNCAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBIb3dlbGwgRWxlY3Ryb25pYyBDby4sTHRkCisJCQkJNS01L0YsIEJsZGcuMSwgTm8uNzg4IEZlbmd6aGVuIFJkLiwgCisJCQkJU2hhbmdoYWkgICAyMDA0MzQKKwkJCQlDSElOQQorCitGNC0zRC04MCAgIChoZXgpCQlGQUcgSW5kdXN0cmlhbCBTZXJ2aWNlcyBHbWJICitGNDNEODAgICAgIChiYXNlIDE2KQkJRkFHIEluZHVzdHJpYWwgU2VydmljZXMgR21iSAorCQkJCUthaXNlcnN0cmFzc2UgMTAwCisJCQkJSGVyem9nZW5yYXRoIE5SVyA1MjEzNAorCQkJCUdFUk1BTlkKKworRjQtM0UtNjEgICAoaGV4KQkJU2hlbnpoZW4gR29uZ2ppbiBFbGVjdHJvbmljcyBDby4sIEx0ZAorRjQzRTYxICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEdvbmdqaW4gRWxlY3Ryb25pY3MgQ28uLCBMdGQKKwkJCQkyRiBCYWl5aW5nIEJ1aWxkaW5nCisJCQkJMTAxOSMgTmFpaGFpIFJELCBOYW5zaGFuIFNlY3Rpb24KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDY3CisJCQkJQ0hJTkEKKworRjQtM0UtOUQgICAoaGV4KQkJQmVudSBOZXR3b3JrcywgSW5jLgorRjQzRTlEICAgICAoYmFzZSAxNikJCUJlbnUgTmV0d29ya3MsIEluYy4KKwkJCQkzMDAgQ29uY29yZCBSZC4sIFN1aXRlICMxMTAKKwkJCQlCaWxsZXJpY2EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y0LTQyLTI3ICAgKGhleCkJCVMgJiBTIFJlc2VhcmNoIEluYy4KK0Y0NDIyNyAgICAgKGJhc2UgMTYpCQlTICYgUyBSZXNlYXJjaCBJbmMuCisJCQkJODkgQWNjZXNzIFJkICMxMAorCQkJCU5vcndvb2QgTUEgMDIwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y0LTQ1LUVEICAgKGhleCkJCVBvcnRhYmxlIElubm92YXRpb24gVGVjaG5vbG9neSBMdGQuCitGNDQ1RUQgICAgIChiYXNlIDE2KQkJUG9ydGFibGUgSW5ub3ZhdGlvbiBUZWNobm9sb2d5IEx0ZC4KKwkJCQk2MDEtNjAyLCA2L0YgUGFyayBCdWlsZGluZywKKwkJCQk0NzYgQ2FzdGxlIFBlYWsgUm9hZCwKKwkJCQlLb3dsb29uICAKKwkJCQlIT05HIEtPTkcKKworRjQtNEUtRkQgICAoaGV4KQkJQWN0aW9ucyBTZW1pY29uZHVjdG9yIENvLixMdGQuKENheW1hbiBJc2xhbmRzKQorRjQ0RUZEICAgICAoYmFzZSAxNikJCUFjdGlvbnMgU2VtaWNvbmR1Y3RvciBDby4sTHRkLihDYXltYW4gSXNsYW5kcykKKwkJCQlQbyBCb3ggMzA5R1QsVWdsYW5kIEhvdXNlLFNvdXRoIENodXJjaCBTdHJlZXQsCisJCQkJR2VvcmdlIFRvd24gR3JhbmQgQ2F5bWFuIAorCQkJCUNBWU1BTiBJU0xBTkRTCisKK0Y0LTUwLUVCICAgKGhleCkJCVRlbGVjaGlwcyBJbmMKK0Y0NTBFQiAgICAgKGJhc2UgMTYpCQlUZWxlY2hpcHMgSW5jCisJCQkJS09SQUQgQmxkZywxMDAwLTEyLCBEYWVjaGktRG9uZywgR2FuZ25hbS1HdSwKKwkJCQlTZW91bCAgMTM1LTI4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGNC01NS05NSAgIChoZXgpCQlIRU5HQkFPIENvcnBvcmF0aW9uIExURC4KK0Y0NTU5NSAgICAgKGJhc2UgMTYpCQlIRU5HQkFPIENvcnBvcmF0aW9uIExURC4KKwkJCQk4dGggRmxvb3IsVG93ZXIgQixYaW5zaGVuZyBNYW5zaW9uIE5vLjUgRmluYW5jaWFsIFN0cmVldCwKKwkJCQlYaWNoZW5nIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMTQwCisJCQkJQ0hJTkEKKworRjQtNTUtRTAgICAoaGV4KQkJTmljZXdheSBDTkMgVGVjaG5vbG9neSBDby4sTHRkLkh1bmFuIFByb3ZpbmNlCitGNDU1RTAgICAgIChiYXNlIDE2KQkJTmljZXdheSBDTkMgVGVjaG5vbG9neSBDby4sTHRkLkh1bmFuIFByb3ZpbmNlCisJCQkJNS9GLElubm92YXRpb24tVW5kZXJ0YWtpbmcgQ2VudGVyLEh1YW5CYW8gSW5kdXN0cmlhbCBQYXJrLDE5OSMsWmhlbkh1YSBSb2FkLAorCQkJCUNoYW5nc2hhIEh1bmFuIDQxMDExNgorCQkJCUNISU5BCisKK0Y0LTVGLUQ0ICAgKGhleCkJCUNpc2NvIFNQVlRHCitGNDVGRDQgICAgIChiYXNlIDE2KQkJQ2lzY28gU1BWVEcKKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworRjQtNUYtRjcgICAoaGV4KQkJRFEgVGVjaG5vbG9neSBJbmMuCitGNDVGRjcgICAgIChiYXNlIDE2KQkJRFEgVGVjaG5vbG9neSBJbmMuCisJCQkJNTExMSBKb2huc29uIERyaXZlCisJCQkJUGxlYXNhbnRvbiBDQSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworRjQtNjMtNDkgICAoaGV4KQkJRGlmZm9uIENvcnBvcmF0aW9uCitGNDYzNDkgICAgIChiYXNlIDE2KQkJRGlmZm9uIENvcnBvcmF0aW9uCisJCQkJRGlnaXRhbCBUb3dlciBBc3RvbiAxNTA1CisJCQkJNTA1LTE1IEdhc2FuLCBHdWVtY2hlb24KKwkJCQlTZW91bCAgMTUzODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Y0LTZELTA0ICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorRjQ2RDA0ICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UsCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0Y0LTc2LTI2ICAgKGhleCkJCVZpbHRlY2htZWRhIFVBQiAKK0Y0NzYyNiAgICAgKGJhc2UgMTYpCQlWaWx0ZWNobWVkYSBVQUIgCisJCQkJS2FsdmFyaWp1IDEyNQorCQkJCVZpbG5pdXMgIExULTA4MjIxCisJCQkJTElUSFVBTklBCisKK0Y0LTk0LTYxICAgKGhleCkJCU5leEdlbiBTdG9yYWdlCitGNDk0NjEgICAgIChiYXNlIDE2KQkJTmV4R2VuIFN0b3JhZ2UKKwkJCQk0MDAgQ2VudGVubmlhbCBCbHZkLgorCQkJCUxvdWlzdmlsbGUgQ08gODAwMjcKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y0LTlGLTU0ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKK0Y0OUY1NCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Y0LUE1LTJBICAgKGhleCkJCUhhd2EgVGVjaG5vbG9naWVzIEluYworRjRBNTJBICAgICAoYmFzZSAxNikJCUhhd2EgVGVjaG5vbG9naWVzIEluYworCQkJCTMzNiBIYXllcyBTdAorCQkJCVNhbiBGcmFuY2lzY28gQ2FsaWZvcm5pYSA5NDEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworRjQtQUMtQzEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworRjRBQ0MxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y0LUIxLTY0ICAgKGhleCkJCUxpZ2h0bmluZyBUZWxlY29tbXVuaWNhdGlvbnMgVGVjaG5vbG9neSBDby4gTHRkCitGNEIxNjQgICAgIChiYXNlIDE2KQkJTGlnaHRuaW5nIFRlbGVjb21tdW5pY2F0aW9ucyBUZWNobm9sb2d5IENvLiBMdGQKKwkJCQlSb29tIDEzMDIsIFRpYW7vv73vv71hbiBIaS1UZWNoIFBsYXphIFRvd2VyIEEsIEZ1dGlhbiBEaXN0cmljdCwgCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA0MAorCQkJCUNISU5BCisKK0Y0LUI1LTQ5ICAgKGhleCkJCVllYXN0YXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KK0Y0QjU0OSAgICAgKGJhc2UgMTYpCQlZZWFzdGFyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJUm9vbTIwMiwgTm8uMjMgV2FuZ2hhaSBSb2FkLCAybmQgU29mdHdhcmUgUGFyaywgCisJCQkJWGlhbWVuIEZ1amlhbiAzNjEwMDYKKwkJCQlDSElOQQorCitGNC1DNy0xNCAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCitGNEM3MTQgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxMDEwOAorCQkJCUNISU5BCisKK0Y0LUM3LTk1ICAgKGhleCkJCVdFWSBFbGVrdHJvbmlrIEFHCitGNEM3OTUgICAgIChiYXNlIDE2KQkJV0VZIEVsZWt0cm9uaWsgQUcKKwkJCQlEb3Jmc3RyYXNzZSA1NworCQkJCVVudGVyZW5nc3RyaW5nZW4gWnVyaWNoIDgxMDMKKwkJCQlTV0lUWkVSTEFORAorCitGNC1DQS1FNSAgIChoZXgpCQlGUkVFQk9YIFNBCitGNENBRTUgICAgIChiYXNlIDE2KQkJRlJFRUJPWCBTQQorCQkJCTggcnVlIGRlIGxhIFZpbGxlIGwnRXZlcXVlCisJCQkJUEFSSVMgSWRGIDc1MDA4CisJCQkJRlJBTkNFCisKK0Y0LUNFLTQ2ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorRjRDRTQ2ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlNYWlsY29kZSA2LjMuMDQ5CisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworRjQtRDktRkIgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDTy4sIExURAorRjREOUZCICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ08uLCBMVEQKKwkJCQk0MTYsIE1hZXRhbi0zZG9uZywgWWVvbmd0b25nLWd1LAorCQkJCVN1d29uLUNpdHkgR3llb25nZ2ktZG8gNDQzLTc0MgorCQkJCVN1d29uIEd5ZW9uZ2dpLWRvIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjQtREMtNEQgICAoaGV4KQkJQmVpamluZyBDQ0QgRGlnaXRhbCBUZWNobm9sb2d5IENvLiwgTHRkCitGNERDNEQgICAgIChiYXNlIDE2KQkJQmVpamluZyBDQ0QgRGlnaXRhbCBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJMTA3IERvbmdzaSBOb3J0aCBTdHJlZXQsIERvbmdjaGVuZyBEaXN0cmljdCwgCisJCQkJQmVpamluZyBUaWFuIEhhaSBDb21tZXJjaWFsIEJ1aWxkaW5nLCBSb29tIDgwMiwgQmxvY2sgQQorCQkJCUJlaWppbmcgIDEwMDAwNworCQkJCUNISU5BCisKK0Y0LURDLURBICAgKGhleCkJCVpodWhhaSBKaWFoZSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uLCBsaW1pdGVkCitGNERDREEgICAgIChiYXNlIDE2KQkJWmh1aGFpIEppYWhlIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sIGxpbWl0ZWQKKwkJCQk0L0YsRWFzdCBPZiBCNSxTb3VydGggU29mdHdhcmUgUGFyayxUYW5namlhLAorCQkJCVpodWhhaSBHdWFuZ2RvbmcgNTE5MDg1CisJCQkJQ0hJTkEKKworRjQtRTEtNDIgICAoaGV4KQkJRGVsdGEgRWxla3Ryb25pa2EgQlYKK0Y0RTE0MiAgICAgKGJhc2UgMTYpCQlEZWx0YSBFbGVrdHJvbmlrYSBCVgorCQkJCVZpc3NlcnNkaWprIDQKKwkJCQlaaWVyaWt6ZWUgIDQzMDEgTkQKKwkJCQlORVRIRVJMQU5EUworCitGNC1FQy0zOCAgIChoZXgpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KK0Y0RUMzOCAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQkxLTZGLCBCdWlsZGluZyAyLCBQaW5nc2hhbmRheXVhbiBJbmR1c3RyaWFsLCBTb3V0aCBab25lLAorCQkJCVRhb3l1YW4gU3RyZWV0LCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworRjQtRkMtMzIgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKK0Y0RkMzMiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworRjgtMDMtMzIgICAoaGV4KQkJS2hvbXAKK0Y4MDMzMiAgICAgKGJhc2UgMTYpCQlLaG9tcAorCQkJCVJ1YSBKb2UgQ29sbGHvv71vLCAxNjMKKwkJCQlTdGEgTW9uaWNhCisJCQkJRmxvcmlhbu+/vXBvbGlzIFNhbnRhIENhdGFyaW5hIDg4MDM3LTAxMAorCQkJCUJSQVpJTAorCitGOC0wRi00MSAgIChoZXgpCQlXaXN0cm9uIEluZm9Db21tKFpob25nU2hhbikgQ29ycG9yYXRpb24KK0Y4MEY0MSAgICAgKGJhc2UgMTYpCQlXaXN0cm9uIEluZm9Db21tKFpob25nU2hhbikgQ29ycG9yYXRpb24KKwkJCQlUb3JjaCBIaWdoLXRlY2ggSW5kdXN0cmlhbCBEZXZlbG9wbWVudCBab25lLCAKKwkJCQlaaG9uZ1NoYW4gR3Vhbmdkb25nIDUyODQzNworCQkJCUNISU5BCisKK0Y4LTBGLTg0ICAgKGhleCkJCU5hdHVyYWwgU2VjdXJpdHkgU0FTCitGODBGODQgICAgIChiYXNlIDE2KQkJTmF0dXJhbCBTZWN1cml0eSBTQVMKKwkJCQkxNjUgQXZlbnVlIGRlIEJyZXRhZ25lCisJCQkJTGlsbGUgIDU5MDAwCisJCQkJRlJBTkNFCisKK0Y4LTEwLTM3ICAgKGhleCkJCUF0b3BpYSBTeXN0ZW1zLCBMUAorRjgxMDM3ICAgICAoYmFzZSAxNikJCUF0b3BpYSBTeXN0ZW1zLCBMUAorCQkJCTY4MSBOLiBQbGFubyBSb2FkCisJCQkJU3VpdGUgMTE5CisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MgorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtMUQtOTMgICAoaGV4KQkJTG9uZ2RodWEoQmVpamluZykgQ29udHJvbHMgVGVjaG5vbG9neSBDby4sTHRkCitGODFEOTMgICAgIChiYXNlIDE2KQkJTG9uZ2RodWEoQmVpamluZykgQ29udHJvbHMgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJUm9vbSAxMjAzLExpeGlhbmcgQnVpbGRpbmcsIE5vLjExMSBaaGljaHVuIFJvYWQsSGFpZGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDA4NgorCQkJCUNISU5BCisKK0Y4LTFFLURGICAgKGhleCkJCUFwcGxlLCBJbmMKK0Y4MUVERiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitGOC0zRC1GRiAgIChoZXgpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCitGODNERkYgICAgIChiYXNlIDE2KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworRjgtNDctMkQgICAoaGV4KQkJWDJnZW4gRGlnaXRhbCBDb3JwLiBMdGQKK0Y4NDcyRCAgICAgKGJhc2UgMTYpCQlYMmdlbiBEaWdpdGFsIENvcnAuIEx0ZAorCQkJCSMgODksIFNpbmdsb25nIFJkIAorCQkJCVRhb3l1YW4gSHNpZW4KKwkJCQlQaW4tSmhlbiBDaXR5LCAgIDMyNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRjgtNTItREYgICAoaGV4KQkJVk5MIEV1cm9wZSBBQgorRjg1MkRGICAgICAoYmFzZSAxNikJCVZOTCBFdXJvcGUgQUIKKwkJCQlGaW5sYW5kc2dhdGFuIDEwCisJCQkJU0UgCisJCQkJS2lzdGEgIDE2NCA3NAorCQkJCVNXRURFTgorCitGOC02Ni1GMiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitGODY2RjIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitGOC02OS03MSAgIChoZXgpCQlTZWlidSBFbGVjdHJpYyBDby4sCitGODY5NzEgICAgIChiYXNlIDE2KQkJU2VpYnUgRWxlY3RyaWMgQ28uLAorCQkJCTE0NTgtNworCQkJCUhhemFtYQorCQkJCUhhY2hpb2ppIFRva3lvIDE5My0wOTQxCisJCQkJSkFQQU4KKworRjgtNkUtQ0YgICAoaGV4KQkJQXJjeCBJbmMKK0Y4NkVDRiAgICAgKGJhc2UgMTYpCQlBcmN4IEluYworCQkJCTE1MSBBbWJlciBTdCwgVW5pdCAxCisJCQkJTWFya2hhbSBPTiBMM1IgM0IzCisJCQkJQ0FOQURBCisKK0Y4LTcxLUZFICAgKGhleCkJCVRoZSBHb2xkbWFuIFNhY2hzIEdyb3VwLCBJbmMuCitGODcxRkUgICAgIChiYXNlIDE2KQkJVGhlIEdvbGRtYW4gU2FjaHMgR3JvdXAsIEluYy4KKwkJCQk4NSBCcm9hZCBTdHJlZXQKKwkJCQlOZXcgWW9yayBOZXcgWW9yayAxMDAwNAorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtNzYtOUIgICAoaGV4KQkJTmVvcGlzIENvLiwgTHRkLgorRjg3NjlCICAgICAoYmFzZSAxNikJCU5lb3BpcyBDby4sIEx0ZC4KKwkJCQkjNDAxIE5lbyBiZC4sIDE5Ni00NCBBbnlhbmc3LURvbmcKKwkJCQlNYW5hbi1HdQorCQkJCUFueWFuZyBLeW9uZ2dpLURvIDQzMC04NTcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjgtN0ItN0EgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KK0Y4N0I3QSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVUyBIV1kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LTdCLThDICAgKGhleCkJCUFtcGVkIFdpcmVsZXNzCitGODdCOEMgICAgIChiYXNlIDE2KQkJQW1wZWQgV2lyZWxlc3MKKwkJCQkxMzA4OSBQZXl0b24gRHIuICNDMzA3CisJCQkJQ2hpbm8gSGlsbHMgQ0EgOTE3MDkKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LTgxLTFBICAgKGhleCkJCU9WRVJLSVoKK0Y4ODExQSAgICAgKGJhc2UgMTYpCQlPVkVSS0laCisJCQkJSEVSQSAyCisJCQkJU2l0ZSBkJ0FyY2hhbXBzCisJCQkJQXJjaGFtcHMgIDc0MTYwCisJCQkJRlJBTkNFCisKK0Y4LThELUVGICAgKGhleCkJCVRlbmVicmFleAorRjg4REVGICAgICAoYmFzZSAxNikJCVRlbmVicmFleAorCQkJCTI3IERyeWRvY2sgQXZlbnVlCisJCQkJQm9zdG9uIE1BIDAyMjEwCisJCQkJVU5JVEVEIFNUQVRFUworCitGOC05MS0yQSAgIChoZXgpCQlHTFAgR2VybWFuIExpZ2h0IFByb2R1Y3RzIEdtYkgKK0Y4OTEyQSAgICAgKGJhc2UgMTYpCQlHTFAgR2VybWFuIExpZ2h0IFByb2R1Y3RzIEdtYkgKKwkJCQlJbSBTdO+/vWNrbe+/vWRsZSAxMworCQkJCUthcmxzYmFkIEJXIDc2MzA3CisJCQkJR0VSTUFOWQorCitGOC05My1GMyAgIChoZXgpCQlWT0xBTlMKK0Y4OTNGMyAgICAgKGJhc2UgMTYpCQlWT0xBTlMKKwkJCQkzRiBJSlUgQkQgNzcwLTEzIFlFT0tTQU0tRE9ORworCQkJCUdBTkdOQU0tR1UKKwkJCQlTRU9VTCAgMTM1LTkyOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGOC05RC0wRCAgIChoZXgpCQlDb250cm9sIFRlY2hub2xvZ3kgSW5jLgorRjg5RDBEICAgICAoYmFzZSAxNikJCUNvbnRyb2wgVGVjaG5vbG9neSBJbmMuCisJCQkJNzYwOCBOb3J0aCBIdWRzb24gQXZlCisJCQkJT2tsYWhvbWEgQ2l0eSBPSyA3MzExNgorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtQTktREUgICAoaGV4KQkJUFVJU1NBTkNFIFBMVVMKK0Y4QTlERSAgICAgKGJhc2UgMTYpCQlQVUlTU0FOQ0UgUExVUworCQkJCTIyMiBJbXBhc3NlIExvdWlzIEzvv71waW5lCisJCQkJWi5JLiBBbGJhc3VkIC0gU2VjdGV1ciAzCisJCQkJTW9udGF1YmFuICA4MjAwMAorCQkJCUZSQU5DRQorCitGOC1BQy02RCAgIChoZXgpCQlEZWx0ZW5uYSBMdGQKK0Y4QUM2RCAgICAgKGJhc2UgMTYpCQlEZWx0ZW5uYSBMdGQKKwkJCQlGaXJzdCBGbG9vciBVbml0IDIKKwkJCQlCZWxsaW5nZXIgQ2xvc2UKKwkJCQlDaGlwcGVuaGFtIFdpbHRzaGlyZSBTTjE1IDFCTgorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0Y4LUI1LTk5ICAgKGhleCkJCUd1YW5nemhvdSBDSE5BVlMgRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQKK0Y4QjU5OSAgICAgKGJhc2UgMTYpCQlHdWFuZ3pob3UgQ0hOQVZTIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJQnVsaWRpbmcgQywgaW5kdXN0eSBiYXNlIG9mIGRpZ2l0YWwgaG9tZSBhcHBsaWNhdGlvbiBhbmQgZGVtb25zdHJhdGlvbiAsemhvbmd5aSByb2FkIEd1YW5nemhvdSBoaWdoZXIgZWR1Y2F0aW9uIG1lZ2EgY2VudGVyCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTAwMDYKKwkJCQlDSElOQQorCitGOC1DMC05MSAgIChoZXgpCQlIaWdoZ2F0ZXMgVGVjaG5vbG9neQorRjhDMDkxICAgICAoYmFzZSAxNikJCUhpZ2hnYXRlcyBUZWNobm9sb2d5CisJCQkJMTQxNSBIaWdoZ2F0ZSBBdmUKKwkJCQlMb3MgQW5nZWxlcyBDQSA5MDA0MgorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtQzYtNzggICAoaGV4KQkJQ2FyZWZ1c2lvbgorRjhDNjc4ICAgICAoYmFzZSAxNikJCUNhcmVmdXNpb24KKwkJCQkxMDAyMCBQYWNpZmljIE1lc2EgQmx2ZAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtRDctNTYgICAoaGV4KQkJU2ltbSBUcm9uaWMgTGltaXRlZCAKK0Y4RDc1NiAgICAgKGJhc2UgMTYpCQlTaW1tIFRyb25pYyBMaW1pdGVkIAorCQkJCVVuaXQgMywgV2F0ZXJzaWRlCisJCQkJQ2hhcmx0b24gTWVhZCBMYW5lCisJCQkJSG9kZGVzZG9uIEhlcnRmb3Jkc2hpcmUgRU4xMSAwUVIKKwkJCQlVTklURUQgS0lOR0RPTQorCitGOC1EQS1FMiAgIChoZXgpCQlCZXRhIExhc2VyTWlrZQorRjhEQUUyICAgICAoYmFzZSAxNikJCUJldGEgTGFzZXJNaWtlCisJCQkJODAwMSBUZWNobm9sb2d5IEJsdmQKKwkJCQlEYXl0b24gT0ggNDU0MjQKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LURBLUY0ICAgKGhleCkJCVRhaXNoYW4gT25saW5lIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitGOERBRjQgICAgIChiYXNlIDE2KQkJVGFpc2hhbiBPbmxpbmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk0L0YgRmFuZ2RhIEJ1aWxkaW5nLCBTb3V0aCBBcmVhLCBIaS10ZWNoIEluZHVzdGlhbCBQYXJrLCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworRjgtREItN0YgICAoaGV4KQkJSFRDIENvcnBvcmF0aW9uCitGOERCN0YgICAgIChiYXNlIDE2KQkJSFRDIENvcnBvcmF0aW9uCisJCQkJTm8uMjMgWGluZ2h1YSBSb2FkCisJCQkJVGFveXVhbiBDaXR5CisJCQkJVGFveXVhbiBDb3VudHkgIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRjgtREMtN0EgICAoaGV4KQkJVmFyaXNjaXRlIExURAorRjhEQzdBICAgICAoYmFzZSAxNikJCVZhcmlzY2l0ZSBMVEQKKwkJCQk2MCBNZWRpbmF0IEhheWVodWRpbSBzdC4KKwkJCQlIZXJ0emVsaWEgIDQ2NzIyCisJCQkJSVNSQUVMCisKK0Y4LUU5LTY4ICAgKGhleCkJCUVna2VyIEtmdC4KK0Y4RTk2OCAgICAgKGJhc2UgMTYpCQlFZ2tlciBLZnQuCisJCQkJU3p1Z2xvIHUuIDQ5LgorCQkJCUJ1ZGFwZXN0ICAxMTQ1CisJCQkJSFVOR0FSWQorCitGOC1FQS0wQSAgIChoZXgpCQlEaXBsLi1NYXRoLiBNaWNoYWVsIFJhdWNoCitGOEVBMEEgICAgIChiYXNlIDE2KQkJRGlwbC4tTWF0aC4gTWljaGFlbCBSYXVjaAorCQkJCUthcGVsbGVuc3RyLiAzMQorCQkJCUJyZXR0ZW4gQmFX77+9IDc1MDE1CisJCQkJR0VSTUFOWQorCitGOC1GMC0xNCAgIChoZXgpCQlSYWNrV2FyZSBJbmMuCitGOEYwMTQgICAgIChiYXNlIDE2KQkJUmFja1dhcmUgSW5jLgorCQkJCTQ0MDUzIEZyZW1vbnQgQmx2ZC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCitGOC1GQi0yRiAgIChoZXgpCQlTYW50dXIgQ29ycG9yYXRpb24KK0Y4RkIyRiAgICAgKGJhc2UgMTYpCQlTYW50dXIgQ29ycG9yYXRpb24KKwkJCQk0MDkzMSBFbmN5Y2xvcGVkaWEgQ2lyY2xlCisJCQkJRnJlbW9udCBDYWxpZm9ybmlhIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCitGQy0wOC03NyAgIChoZXgpCQlQcmVudGtlIFJvbWljaCBDb21wYW55CitGQzA4NzcgICAgIChiYXNlIDE2KQkJUHJlbnRrZSBSb21pY2ggQ29tcGFueQorCQkJCTEwMjIgSGV5bCBSZAorCQkJCVdvb3N0ZXIgT0ggNDQ2OTEKKwkJCQlVTklURUQgU1RBVEVTCisKK0ZDLTBGLUU2ICAgKGhleCkJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBJbmMuIAorRkMwRkU2ICAgICAoYmFzZSAxNikJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBJbmMuIAorCQkJCTEtNy0xIEtvbmFuCisJCQkJTWluYXRvLWt1ICBUb2t5byAxMDgtMDA3NSAKKwkJCQlKQVBBTgorCitGQy0xMC1CRCAgIChoZXgpCQlDb250cm9sIFNpc3RlbWF0aXphZG8gUy5BLgorRkMxMEJEICAgICAoYmFzZSAxNikJCUNvbnRyb2wgU2lzdGVtYXRpemFkbyBTLkEuCisJCQkJQ3JhIDQzIE4gMzEgNTIKKwkJCQlNZWRlbGxpbiBBbnRpb3F1aWEgMTAxMDEKKwkJCQlDT0xPTUJJQQorCitGQy0xRi1DMCAgIChoZXgpCQlFVVJFQ0FNCitGQzFGQzAgICAgIChiYXNlIDE2KQkJRVVSRUNBTQorCQkJCUJBVCA5IC0gTWluaXBhcmMKKwkJCQk2IEF2ZW51ZSBkZXMgQW5kZXMKKwkJCQlMRVMgVUxJUyAgOTE5NDAKKwkJCQlGUkFOQ0UKKworRkMtMkUtMkQgICAoaGV4KQkJTG9yb20gSW5kdXN0cmlhbCBDby5MVEQuCitGQzJFMkQgICAgIChiYXNlIDE2KQkJTG9yb20gSW5kdXN0cmlhbCBDby5MVEQuCisJCQkJRjEuMTMsUm0uMixOby43OCxTZWMuMixBbi1Ib1JkLgorCQkJCVRhaXBlaSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitGQy0yRi00MCAgIChoZXgpCQlDYWx4ZWRhLCBJbmMuCitGQzJGNDAgICAgIChiYXNlIDE2KQkJQ2FseGVkYSwgSW5jLgorCQkJCTcwMDAgTm9ydGggTW9wYWMgRXhwcmVzc3dheQorCQkJCVN1aXRlIDI1MAorCQkJCUF1c3RpbiBUWCA3ODczMQorCQkJCVVOSVRFRCBTVEFURVMKKworRkMtMzUtOTggICAoaGV4KQkJRmF2aXRlIEluYy4KK0ZDMzU5OCAgICAgKGJhc2UgMTYpCQlGYXZpdGUgSW5jLgorCQkJCU5vLjE5LCBMYW5lIDc4LCBZYW5oZSBTdC4sCisJCQkJSmh1YmVpIENpdHkgSHNpbmNodSBDb3VudHkgMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitGQy00NC02MyAgIChoZXgpCQlVbml2ZXJzYWwgQXVkaW8KK0ZDNDQ2MyAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgQXVkaW8KKwkJCQkxNzAwIEdyZWVuIEhpbGxzIFJvYWQKKwkJCQlTY290dHMgVmFsbGV5IENBIDk1MDY2CisJCQkJVU5JVEVEIFNUQVRFUworCitGQy01Qi0yNCAgIChoZXgpCQlXZWliZWwgU2NpZW50aWZpYyBBL1MKK0ZDNUIyNCAgICAgKGJhc2UgMTYpCQlXZWliZWwgU2NpZW50aWZpYyBBL1MKKwkJCQlTb2x2YW5nIDMwCisJCQkJQWxsZXJvZWQgIDM0NTAKKwkJCQlERU5NQVJLCisKK0ZDLTYxLTk4ICAgKGhleCkJCU5FQyBQZXJzb25hbCBQcm9kdWN0cywgTHRkCitGQzYxOTggICAgIChiYXNlIDE2KQkJTkVDIFBlcnNvbmFsIFByb2R1Y3RzLCBMdGQKKwkJCQk2LTgwLCBTaGltb2hhbmF6YXdhIDItY2hvbWUsCisJCQkJWW9uZXphd2Etc2hpIFlhbWFnYXRhIDk5Mi04NTIwCisJCQkJSkFQQU4KKworRkMtNjgtM0UgICAoaGV4KQkJRGlyZWN0ZWQgUGVyY2VwdGlvbiwgSW5jCitGQzY4M0UgICAgIChiYXNlIDE2KQkJRGlyZWN0ZWQgUGVyY2VwdGlvbiwgSW5jCisJCQkJODkwQyBDb3dhbiBSb2FkCisJCQkJQnVybGluZ2FtZSBDYWxpZm9ybmlhIDk0MDEwCisJCQkJVU5JVEVEIFNUQVRFUworCitGQy02Qy0zMSAgIChoZXgpCQlMWGluc3RydW1lbnRzIEdtYkgKK0ZDNkMzMSAgICAgKGJhc2UgMTYpCQlMWGluc3RydW1lbnRzIEdtYkgKKwkJCQlIZXJyZW5iZXJnZXIgU3RyLiAxMzAKKwkJCQlCb2VibGluZ2VuICA3MTAzNAorCQkJCUdFUk1BTlkKKworRkMtNzUtRTYgICAoaGV4KQkJSGFuZHJlYW1uZXQKK0ZDNzVFNiAgICAgKGJhc2UgMTYpCQlIYW5kcmVhbW5ldAorCQkJCSMxMjA5IE1hcmlvVG93ZXIsIDIyMi0xMiwgR3Vyby1Eb25nLCBHdXJvLUd1CisJCQkJU2VvdWwgR3Vyby1HdSAxNTItODQ4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0ZDLTdDLUU3ICAgKGhleCkJCUZDSSBVU0EgTExDCitGQzdDRTcgICAgIChiYXNlIDE2KQkJRkNJIFVTQSBMTEMKKwkJCQk4MjUgT2xkIFRyYWlsIFJvYWQKKwkJCQlFdHRlcnMgUEEgMTczMTkKKwkJCQlVTklURUQgU1RBVEVTCisKK0ZDLTgzLTI5ICAgKGhleCkJCVRyZWkgdGVjaG5pY3MKK0ZDODMyOSAgICAgKGJhc2UgMTYpCQlUcmVpIHRlY2huaWNzCisJCQkJODAxIE5vcnRocG9pbnQgUGt3eQorCQkJCVN0ZSA1NAorCQkJCVdlc3QgUGFsbSBCZWFjaCBGbG9yaWRhIDMzNDA3CisJCQkJVU5JVEVEIFNUQVRFUworCitGQy04RS03RSAgIChoZXgpCQlQYWNlIEZyYW5jZQorRkM4RTdFICAgICAoYmFzZSAxNikJCVBhY2UgRnJhbmNlCisJCQkJMzMsIHJ1ZSBkZSBWZXJkdW4KKwkJCQlCUDQ0CisJCQkJU3VyZXNuZXMgIDkyMTUyCisJCQkJRlJBTkNFCisKK0ZDLUExLTNFICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKK0ZDQTEzRSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0ZDLUE4LTQxICAgKGhleCkJCUF2YXlhLCBJbmMKK0ZDQTg0MSAgICAgKGJhc2UgMTYpCQlBdmF5YSwgSW5jCisJCQkJMjExIE1vdW50IEFpcnkgUm9hZAorCQkJCUJhc2tpbmcgUmlkZ2UgTkogMDc5MjAKKwkJCQlVTklURUQgU1RBVEVTCisKK0ZDLUFGLTZBICAgKGhleCkJCUNvbmVtdGVjaCBBQgorRkNBRjZBICAgICAoYmFzZSAxNikJCUNvbmVtdGVjaCBBQgorCQkJCVRvcnNoYW1uc2dhdGFuIDM1CisJCQkJS2lzdGEgIFNFLTE2NDQwCisJCQkJU1dFREVOCisKK0ZDLUNDLUU0ICAgKGhleCkJCUFzY29uIEx0ZC4KK0ZDQ0NFNCAgICAgKGJhc2UgMTYpCQlBc2NvbiBMdGQuCisJCQkJMS0xNS0yNyBNaW5hdG8tbWFjaGkgCisJCQkJRnVrdXlhbWEg77+9c2hpIEhpcm9zaGltYS1rZW4gNzIxLTA5NjQKKwkJCQlKQVBBTgorCitGQy1DRi02MiAgIChoZXgpCQlJQk0gQ29ycAorRkNDRjYyICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMjA1MSBNaXNzaW9uIENvbGxlZ2UgQmx2ZCAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworRkMtRDQtRjIgICAoaGV4KQkJVGhlIENvY2EgQ29sYSBDb21wYW55CitGQ0Q0RjIgICAgIChiYXNlIDE2KQkJVGhlIENvY2EgQ29sYSBDb21wYW55CisJCQkJT25lIENvY2EgQ29sYSBQbGF6YQorCQkJCUF0bGFudGEgR0EgMzAzMTMKKwkJCQlVTklURUQgU1RBVEVTCisKK0ZDLUQ0LUY2ICAgKGhleCkJCU1lc3NhbmEgQWlyLlJheSBDb25kaXRpb25pbmcgcy5yLmwuCitGQ0Q0RjYgICAgIChiYXNlIDE2KQkJTWVzc2FuYSBBaXIuUmF5IENvbmRpdGlvbmluZyBzLnIubC4KKwkJCQlWaWEgVmVuZXppYSAxOAorCQkJCU9kZXJ6byBUViAzMTA0NgorCQkJCUlUQUxZCisKK0ZDLUUxLTkyICAgKGhleCkJCVNpY2h1YW4gSmlud2FuZ3RvbmcgRWxlY3Ryb25pYyBTY2llbmNlJlRlY2hub2xvZ3kgQ28sLkx0ZAorRkNFMTkyICAgICAoYmFzZSAxNikJCVNpY2h1YW4gSmlud2FuZ3RvbmcgRWxlY3Ryb25pYyBTY2llbmNlJlRlY2hub2xvZ3kgQ28sLkx0ZAorCQkJCU5vLjI4LFhpbmNodWFuZyBSZC4sV2VzdCBHYW94aW4gRGlzdHJpY3QKKwkJCQlDaGVuZ2R1IFNpY2h1YW4gNjExNzMxCisJCQkJQ0hJTkEKKworRkMtRTItM0YgICAoaGV4KQkJQ0xBWSBQQUtZIFNQQQorRkNFMjNGICAgICAoYmFzZSAxNikJCUNMQVkgUEFLWSBTUEEKKwkJCQlWaWEgUGFzdHJlbmdvIDMvYgorCQkJCVNlcmlhdGUgQmVyZ2FtbyAyNDA2OAorCQkJCUlUQUxZCisKK0ZDLUU1LTU3ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitGQ0U1NTcgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSBPdSA5MDU5MAorCQkJCUZJTkxBTkQKKworRkMtRUQtQjkgICAoaGV4KQkJQXJyYXllbnQKK0ZDRURCOSAgICAgKGJhc2UgMTYpCQlBcnJheWVudAorCQkJCTU3MCBFbCBDYW1pbm8gUmVhbCAjMTUwLTQxOQorCQkJCVJlZHdvb2QgQ2l0eSBDQSA5NDA2MworCQkJCVVOSVRFRCBTVEFURVMKKworRkMtRjEtQ0QgICAoaGV4KQkJT1BURVgtRkEgQ08uLExURC4KK0ZDRjFDRCAgICAgKGJhc2UgMTYpCQlPUFRFWC1GQSBDTy4sTFRELgorCQkJCTkxIEF3YXRhLWNobworCQkJCUNodWRvamkgU2hpbW9neW8ta3UKKwkJCQlLeW90byAgNjAwLTg4MTUKKwkJCQlKQVBBTgorCitGQy1GQS1GNyAgIChoZXgpCQlTaGFuZ2hhaSBCYXVkIERhdGEgQ29tbXVuaWNhdGlvbiBDby4sTHRkLgorRkNGQUY3ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEJhdWQgRGF0YSBDb21tdW5pY2F0aW9uIENvLixMdGQuCisJCQkJTk8uMTIzIEpVTEkgUkQKKwkJCQlQVURPTkcgWkhBTkdKSUFORyBISUdILVRFQ0ggUEFSSworCQkJCVNIQU5HSEFJICAyMDEyMDMKKwkJCQlDSElOQQorCitGQy1GQi1GQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitGQ0ZCRkIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCmRpZmYgLS1naXQgYS9jbGkvZGF0YS9vdWkudHh0IGIvY2xpL2RhdGEvb3VpLnR4dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OWQ0MDA3Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RhdGEvb3VpLnR4dApAQCAtMCwwICsxLDEwMzg3NyBAQAorCitPVUkJCQkJT3JnYW5pemF0aW9uCitjb21wYW55X2lkCQkJT3JnYW5pemF0aW9uCisJCQkJQWRkcmVzcworCisKKzAwLTAwLTAwICAgKGhleCkJCVhFUk9YIENPUlBPUkFUSU9OCiswMDAwMDAgICAgIChiYXNlIDE2KQkJWEVST1ggQ09SUE9SQVRJT04KKwkJCQlNL1MgMTA1LTUwQworCQkJCTgwMCBQSElMTElQUyBST0FECisJCQkJV0VCU1RFUiBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMDEgICAoaGV4KQkJWEVST1ggQ09SUE9SQVRJT04KKzAwMDAwMSAgICAgKGJhc2UgMTYpCQlYRVJPWCBDT1JQT1JBVElPTgorCQkJCVpFUk9YIFNZU1RFTVMgSU5TVElUVVRFCisJCQkJTS9TIDEwNS01MEMgODAwIFBISUxMSVBTIFJPQUQKKwkJCQlXRUJTVEVSIE5ZIDE0NTgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0wMiAgIChoZXgpCQlYRVJPWCBDT1JQT1JBVElPTgorMDAwMDAyICAgICAoYmFzZSAxNikJCVhFUk9YIENPUlBPUkFUSU9OCisJCQkJWEVST1ggU1lTVEVNUyBJTlNUSVRVVEUKKwkJCQlNL1MgMTA1LTUwQyA4MDAgUEhJTExJUFMgUk9BRAorCQkJCVdFQlNURVIgTlkgMTQ1ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTAzICAgKGhleCkJCVhFUk9YIENPUlBPUkFUSU9OCiswMDAwMDMgICAgIChiYXNlIDE2KQkJWEVST1ggQ09SUE9SQVRJT04KKwkJCQlaRVJPWCBTWVNURU1TIElOU1RJVFVURQorCQkJCU0vUyAxMDUtNTBDRVcgQVZFTlVFIDgwMCBQSElMTElQUyBST0FECisJCQkJV0VCU1RFUiBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMDQgICAoaGV4KQkJWEVST1ggQ09SUE9SQVRJT04KKzAwMDAwNCAgICAgKGJhc2UgMTYpCQlYRVJPWCBDT1JQT1JBVElPTgorCQkJCU9GRklDRSBTWVNURU1TIERJVklTSU9OCisJCQkJTS9TIDEwNS01MEMgODAwIFBISUxMSVBTIFJPQUQ0CisJCQkJV0VCU1RFUiBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMDUgICAoaGV4KQkJWEVST1ggQ09SUE9SQVRJT04KKzAwMDAwNSAgICAgKGJhc2UgMTYpCQlYRVJPWCBDT1JQT1JBVElPTgorCQkJCU9GRklDRSBTWVNURU1TIERJVklTSU9OCisJCQkJTS9TIDEwNS01MEMgODAwIFBISUxMSVBTIFJPQUQKKwkJCQlXRUJTVEVSIE5ZIDE0NTgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0wNiAgIChoZXgpCQlYRVJPWCBDT1JQT1JBVElPTgorMDAwMDA2ICAgICAoYmFzZSAxNikJCVhFUk9YIENPUlBPUkFUSU9OCisJCQkJT0ZGSUNFIFNZU1RFTVMgRElWSVNJT04KKwkJCQlNL1MgMTA1LTUwQyA4MDAgUEhJTExJUFMgUk9BRDQKKwkJCQlXRUJTVEVSIE5ZIDE0NTgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0wNyAgIChoZXgpCQlYRVJPWCBDT1JQT1JBVElPTgorMDAwMDA3ICAgICAoYmFzZSAxNikJCVhFUk9YIENPUlBPUkFUSU9OCisJCQkJT0ZGSUNFIFNZU1RFTVMgRElWSVNJT04KKwkJCQlNL1MgMTA1LTUwQyA4MDAgUEhJTExJUFMgUk9BRAorCQkJCVdFQlNURVIgTlkgMTQ1ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTA4ICAgKGhleCkJCVhFUk9YIENPUlBPUkFUSU9OCiswMDAwMDggICAgIChiYXNlIDE2KQkJWEVST1ggQ09SUE9SQVRJT04KKwkJCQlPRkZJQ0UgU1lTVEVNUyBESVZJU0lPTgorCQkJCU0vUy8gMTA1LTUwQyA4MDAgUEhJTExJUFMgUk9BRAorCQkJCVdFQlNURVIgTlkgMTQ1ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTA5ICAgKGhleCkJCVhFUk9YIENPUlBPUkFUSU9OCiswMDAwMDkgICAgIChiYXNlIDE2KQkJWEVST1ggQ09SUE9SQVRJT04KKwkJCQkxMzUwIEpFRkZFUlNPTiBST0FECisJCQkJUk9DSEVTVEVSIE5ZIDE0NjIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0wQSAgIChoZXgpCQlPTVJPTiBUQVRFSVNJIEVMRUNUUk9OSUNTIENPLgorMDAwMDBBICAgICAoYmFzZSAxNikJCU9NUk9OIFRBVEVJU0kgRUxFQ1RST05JQ1MgQ08uCisJCQkJU0VDVElPTiBORkYsIFNZU1RFTSBSJkQgTEFCUy4KKwkJCQlSRVNFQVJDSCAmIFRFQ0guIEFTU0VTU01OVCBESVYgU0hJTU9LQUlJCisJCQkJS1lPVE8gNjE3IEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtMEIgICAoaGV4KQkJTUFUUklYIENPUlBPUkFUSU9OCiswMDAwMEIgICAgIChiYXNlIDE2KQkJTUFUUklYIENPUlBPUkFUSU9OCisJCQkJMTIwMyBORVcgSE9QRSBST0FECisJCQkJUkFMRUlHSCBOT1JUSCBDQVJPTElOQSAgMjc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0wQyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDAwMEMgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTBEICAgKGhleCkJCUZJQlJPTklDUyBMVEQuCiswMDAwMEQgICAgIChiYXNlIDE2KQkJRklCUk9OSUNTIExURC4KKwkJCQlNQVRBTSBURUNITk9MT0dZIENFTlRFUgorCQkJCUhBSUZBIDMxOTA1CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTAwLTBFICAgKGhleCkJCUZVSklUU1UgTElNSVRFRAorMDAwMDBFICAgICAoYmFzZSAxNikJCUZVSklUU1UgTElNSVRFRAorCQkJCU11c2FzaGkta29zdWdpIFRvd2VyIFBsYWNlIEJsZGcuLAorCQkJCUtvc3VnaS1jaG8gMS1jaG9tZSxOYWthaGFyYS1rdQorCQkJCUtBV0FTQUtJIDIxMSBLYW5hZ2F3YSAKKwkJCQlKQVBBTgorCiswMC0wMC0wRiAgIChoZXgpCQlORVhULCBJTkMuCiswMDAwMEYgICAgIChiYXNlIDE2KQkJTkVYVCwgSU5DLgorCQkJCTM0NzUgREVFUiBDUkVFSyBST0FECisJCQkJUEFMTyBBTFRPIENBIDk0MzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0xMCAgIChoZXgpCQlTWVRFSyBJTkMuCiswMDAwMTAgICAgIChiYXNlIDE2KQkJU1lURUsgSU5DLgorCQkJCTEyMjUgQ0hBUkxFU1RPTiBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMTEgICAoaGV4KQkJTk9STUVSRUwgU1lTVEVNRVMKKzAwMDAxMSAgICAgKGJhc2UgMTYpCQlOT1JNRVJFTCBTWVNURU1FUworCQkJCTU4IFJVRSBQT1RUSUVSCisJCQkJNzgxNTAgTEUgQ0hFU05BWQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMC0xMiAgIChoZXgpCQlJTkZPUk1BVElPTiBURUNITk9MT0dZIExJTUlURUQKKzAwMDAxMiAgICAgKGJhc2UgMTYpCQlJTkZPUk1BVElPTiBURUNITk9MT0dZIExJTUlURUQKKwkJCQlNQVlMQU5EUyBBVkUuIEhFTUVMIEhFTVBTVEVBRAorCQkJCUhFUlRTIEVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC0xMyAgIChoZXgpCQlDQU1FWAorMDAwMDEzICAgICAoYmFzZSAxNikJCUNBTUVYCisJCQkJNzUgS05FRUxBTkQgU1RSRUVUCisJCQkJQk9TVE9OIE1BIDAyMTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0xNCAgIChoZXgpCQlORVRST05JWAorMDAwMDE0ICAgICAoYmFzZSAxNikJCU5FVFJPTklYCisJCQkJMTM3MiBNQ0RPV0VMTCBCTFZELgorCQkJCVBFVFVMQU1BIENBIDk0OTUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0xNSAgIChoZXgpCQlEQVRBUE9JTlQgQ09SUE9SQVRJT04KKzAwMDAxNSAgICAgKGJhc2UgMTYpCQlEQVRBUE9JTlQgQ09SUE9SQVRJT04KKwkJCQk5NzI1IERBVEFQT0lOVCBEUklWRQorCQkJCU1TIFMtMzcKKwkJCQlTQU4gQU5UT05JTyBUWCA3ODI4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMTYgICAoaGV4KQkJRFUgUE9OVCBQSVhFTCBTWVNURU1TICAgICAuCiswMDAwMTYgICAgIChiYXNlIDE2KQkJRFUgUE9OVCBQSVhFTCBTWVNURU1TICAgICAuCisJCQkJTUVBRExBS0UgUExBQ0UKKwkJCQlUSE9SUEUgTEVBIFJPQUQgRUdIQU0sIFNVUlJFWSBUVzIwIDhIRQorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC0xNyAgIChoZXgpCQlURUtFTEVDCiswMDAwMTcgICAgIChiYXNlIDE2KQkJVEVLRUxFQworCQkJCTI2NTQwIEFHT1VSQSBST0FECisJCQkJQ0FMQUJBU0FTIENBIDkxMzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0xOCAgIChoZXgpCQlXRUJTVEVSIENPTVBVVEVSIENPUlBPUkFUSU9OCiswMDAwMTggICAgIChiYXNlIDE2KQkJV0VCU1RFUiBDT01QVVRFUiBDT1JQT1JBVElPTgorCQkJCTE2MDQwIFJFRFdPT0QgTE9ER0UgUk9BRAorCQkJCUxPUyBHQVRPUyBDQSA5NTAzMy05MjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0xOSAgIChoZXgpCQlBUFBMSUVEIERZTkFNSUNTIElOVEVSTkFUSU9OQUwKKzAwMDAxOSAgICAgKGJhc2UgMTYpCQlBUFBMSUVEIERZTkFNSUNTIElOVEVSTkFUSU9OQUwKKwkJCQkzODAwIFNUT05FIFNDSE9PTCBST0FECisJCQkJQU5OIEFSQk9SIE1JIDQ4MTA0LTI0OTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTFBICAgKGhleCkJCUFEVkFOQ0VEIE1JQ1JPIERFVklDRVMKKzAwMDAxQSAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBNSUNSTyBERVZJQ0VTCisJCQkJUC5PLiBCT1ggMzQ1MworCQkJCU0vUyAyNgorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMUIgICAoaGV4KQkJTk9WRUxMIElOQy4KKzAwMDAxQiAgICAgKGJhc2UgMTYpCQlOT1ZFTEwgSU5DLgorCQkJCTEyMiBFQVNUIDE3MDAgU09VVEgKKwkJCQlNL1M6IEUtMTItMQorCQkJCVBST1ZPIFVUIDg0NjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0xQyAgIChoZXgpCQlCRUxMIFRFQ0hOT0xPR0lFUworMDAwMDFDICAgICAoYmFzZSAxNikJCUJFTEwgVEVDSE5PTE9HSUVTCisJCQkJMzMwIFdBUlJFTiBBVkVOVUUKKwkJCQlGUkVNT05UIENBIDk0NTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0xRCAgIChoZXgpCQlDQUJMRVRST04gU1lTVEVNUywgSU5DLgorMDAwMDFEICAgICAoYmFzZSAxNikJCUNBQkxFVFJPTiBTWVNURU1TLCBJTkMuCisJCQkJMzUgSU5EVVNUUklBTCBXQVkKKwkJCQlQLk8uIEJPWCA1MDA1CisJCQkJUk9DSEVTVEVSIE5IIDAzODY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0xRSAgIChoZXgpCQlURUxTSVNUIElORFVTVFJJQSBFTEVDVFJPTklDQQorMDAwMDFFICAgICAoYmFzZSAxNikJCVRFTFNJU1QgSU5EVVNUUklBIEVMRUNUUk9OSUNBCisJCQkJUlVBIFZJTEhFTkEgREUgTU9SQUVTLCAzODAKKwkJCQlCQVJSQSBEQSBUSUpVQ0EgUklPIERFIEpBTkVJUk8sIFJKIENFUCAyCisJCQkJQlJBWklMCisJCQkJQlJBWklMCisKKzAwLTAwLTFGICAgKGhleCkJCVRlbGNvIFN5c3RlbXMsIEluYy4KKzAwMDAxRiAgICAgKGJhc2UgMTYpCQlUZWxjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTUgQmVya3NoaXJlIFJvYWQKKwkJCQlNYW5zZmllbGQgTUEgMDIwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTIwICAgKGhleCkJCURBVEFJTkRVU1RSSUVSIERJQUIgQUIKKzAwMDAyMCAgICAgKGJhc2UgMTYpCQlEQVRBSU5EVVNUUklFUiBESUFCIEFCCisJCQkJQk9YIDIwMjkKKwkJCQlTLTE4MyAwMiBUQUJZCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLTAwLTIxICAgKGhleCkJCVNVUkVNQU4gQ09NUC4gJiBDT01NVU4uIENPUlAuCiswMDAwMjEgICAgIChiYXNlIDE2KQkJU1VSRU1BTiBDT01QLiAmIENPTU1VTi4gQ09SUC4KKwkJCQkxMEYtNSBOTy4gNywgIFNFQy4gMworCQkJCUhTSU4gU0hFTkcgTi4gUkQuLAorCQkJCVRBSVBFSSBUQUlXQU4sIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDAtMjIgICAoaGV4KQkJVklTVUFMIFRFQ0hOT0xPR1kgSU5DLgorMDAwMDIyICAgICAoYmFzZSAxNikJCVZJU1VBTCBURUNITk9MT0dZIElOQy4KKwkJCQkxNzAzIE1JRERMRVNFWCBTVFJFRVQKKwkJCQlMT1dFTEwgTUEgMDE4NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTIzICAgKGhleCkJCUFCQiBJTkRVU1RSSUFMIFNZU1RFTVMgQUIKKzAwMDAyMyAgICAgKGJhc2UgMTYpCQlBQkIgSU5EVVNUUklBTCBTWVNURU1TIEFCCisJCQkJREVQVC4gU0VJU1kvTEtTQgorCQkJCVMtNzIxIDY3IFZBU1RFUkFTCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLTAwLTI0ICAgKGhleCkJCUNPTk5FQ1QgQVMKKzAwMDAyNCAgICAgKGJhc2UgMTYpCQlDT05ORUNUIEFTCisJCQkJSE9FUktBRVIgNy05CisJCQkJREsgMjczMCBIRVJMRVYKKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswMC0wMC0yNSAgIChoZXgpCQlSQU1URUsgQ09SUC4KKzAwMDAyNSAgICAgKGJhc2UgMTYpCQlSQU1URUsgQ09SUC4KKwkJCQk4MTAgVy4gTUFVREUgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0yNiAgIChoZXgpCQlTSEEtS0VOIENPLiwgTFRELgorMDAwMDI2ICAgICAoYmFzZSAxNikJCVNIQS1LRU4gQ08uLCBMVEQuCisJCQkJTUlOQU1JLU9UU1VLQQorCQkJCTItMjYtMTMsIFRPU0hJTUEtS1UKKwkJCQlUT0tZTyBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLTI3ICAgKGhleCkJCUpBUEFOIFJBRElPIENPTVBBTlkKKzAwMDAyNyAgICAgKGJhc2UgMTYpCQlKQVBBTiBSQURJTyBDT01QQU5ZCisJCQkJTEFCT1JBVE9SWQorCQkJCTUtMS0xIFNISU1PUkVOSkFLVSBNSVRBS0EtU0hJLCBUT0tZTworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtMjggICAoaGV4KQkJUFJPRElHWSBTWVNURU1TIENPUlBPUkFUSU9OCiswMDAwMjggICAgIChiYXNlIDE2KQkJUFJPRElHWSBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJMjYwMSBDQVNFWSBEUklWRQorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTI5ICAgKGhleCkJCUlNQyBORVRXT1JLUyBDT1JQLgorMDAwMDI5ICAgICAoYmFzZSAxNikJCUlNQyBORVRXT1JLUyBDT1JQLgorCQkJCTE2OTMxIE1JTExJS0VOIEFWRS4KKwkJCQlJUlZJTkUgQ0EgOTI3MTQtNTAxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMkEgICAoaGV4KQkJVFJXIC0gU0VERC9JTlAKKzAwMDAyQSAgICAgKGJhc2UgMTYpCQlUUlcgLSBTRUREL0lOUAorCQkJCTE4MDAgR0xFTk4gQ1VSVElTUyBTVFJFRVQKKwkJCQlNL1MgREg2LzI4MjYKKwkJCQlDQVJTT04gQ0EgOTA3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTJCICAgKGhleCkJCUNSSVNQIEFVVE9NQVRJT04sIElOQworMDAwMDJCICAgICAoYmFzZSAxNikJCUNSSVNQIEFVVE9NQVRJT04sIElOQworCQkJCTUxNjAgQkxBWkVSIFBBUktXQVkKKwkJCQlEVUJMSU4gT0ggNDMwMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTJDICAgKGhleCkJCUFVVE9UT1RFIExJTUlURUQKKzAwMDAyQyAgICAgKGJhc2UgMTYpCQlBVVRPVE9URSBMSU1JVEVECisJCQkJMTAwIEJFTExFVlVFIFJPQUQKKwkJCQlORVdBUksgREVMQVdBUkUgMTk3MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTJEICAgKGhleCkJCUNIUk9NQVRJQ1MgSU5DCiswMDAwMkQgICAgIChiYXNlIDE2KQkJQ0hST01BVElDUyBJTkMKKwkJCQkyNTU4IE1PVU5UQUlOIElORFVTVFJJQUwgQkxWRAorCQkJCVRVQ0tFUiBHQSAzMDA4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMkUgICAoaGV4KQkJU09DSUVURSBFVklSQQorMDAwMDJFICAgICAoYmFzZSAxNikJCVNPQ0lFVEUgRVZJUkEKKwkJCQlaT05FIFBPUlRVQUlSRSBERSBCUkVHQUlMTE9OCisJCQkJODM1MDAgTEEgU0VZTkUgU1VSIE1FUgorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMC0yRiAgIChoZXgpCQlUSU1FUExFWCBJTkMuCiswMDAwMkYgICAgIChiYXNlIDE2KQkJVElNRVBMRVggSU5DLgorCQkJCTUzMCBDSEVTVE5VVCBSSURHRSBST0FECisJCQkJV09PRENMSUZGIExBS0UgTkogMDc2NzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTMwICAgKGhleCkJCVZHIExBQk9SQVRPUlkgU1lTVEVNUyBMVEQKKzAwMDAzMCAgICAgKGJhc2UgMTYpCQlWRyBMQUJPUkFUT1JZIFNZU1RFTVMgTFRECisJCQkJVFJJQlVORSBBVkVOVUUKKwkJCQlBTFRSSU5DSEFNLCBNQU5DSEVTVEVSLCBXQTE0IDVUUAorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC0zMSAgIChoZXgpCQlRUFNYIENPTU1VTklDQVRJT05TIFBUWSBMVEQKKzAwMDAzMSAgICAgKGJhc2UgMTYpCQlRUFNYIENPTU1VTklDQVRJT05TIFBUWSBMVEQKKwkJCQkzMyBSSUNIQVJEU09OIFNUUkVFVAorCQkJCVdFU1QgUEVSVEggNjAwNQorCQkJCVdFU1RFUk4gQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLTAwLTMyICAgKGhleCkJCU1hcmNvbmkgcGxjCiswMDAwMzIgICAgIChiYXNlIDE2KQkJTWFyY29uaSBwbGMKKwkJCQkyOCBFTFNUUkVFIFdBWSwgQk9SRUhBTVdPT0QKKwkJCQlIRVJURk9SRFNISVJFIFdENiAxUlgKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLTMzICAgKGhleCkJCUVHQU4gTUFDSElORVJZIENPTVBBTlkKKzAwMDAzMyAgICAgKGJhc2UgMTYpCQlFR0FOIE1BQ0hJTkVSWSBDT01QQU5ZCisJCQkJU09VVEggQURBTVNWSUxMRSBST0FECisJCQkJU09NTUVSVklMTEUgTkogMDg4NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTM0ICAgKGhleCkJCU5FVFdPUksgUkVTT1VSQ0VTIENPUlBPUkFUSU9OCiswMDAwMzQgICAgIChiYXNlIDE2KQkJTkVUV09SSyBSRVNPVVJDRVMgQ09SUE9SQVRJT04KKwkJCQk2MSBFQVNUIERBR0dFVFQgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMzUgICAoaGV4KQkJU1BFQ1RSQUdSQVBISUNTIENPUlBPUkFUSU9OCiswMDAwMzUgICAgIChiYXNlIDE2KQkJU1BFQ1RSQUdSQVBISUNTIENPUlBPUkFUSU9OCisJCQkJICAgIE9SCisJCQkJTEFOIE1BTlVGQUNUVVJJTkcgRU5HSU5FRVIgOTcwNyBXQVBMRVMgUworCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtMzYgICAoaGV4KQkJQVRBUkkgQ09SUE9SQVRJT04KKzAwMDAzNiAgICAgKGJhc2UgMTYpCQlBVEFSSSBDT1JQT1JBVElPTgorCQkJCTExOTYgQk9SUkVHQVMgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0zNyAgIChoZXgpCQlPWEZPUkQgTUVUUklDUyBMSU1JVEVECiswMDAwMzcgICAgIChiYXNlIDE2KQkJT1hGT1JEIE1FVFJJQ1MgTElNSVRFRAorCQkJCVVOSVQgOCwgNyBXRVNUIFdBWSwKKwkJCQlCT1RMRVksT1hGT1JELCBPWDIgT0pCCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC0zOCAgIChoZXgpCQlDU1MgTEFCUworMDAwMDM4ICAgICAoYmFzZSAxNikJCUNTUyBMQUJTCisJCQkJMjEzNCBTT1VUSCBSSVBDSEVZCisJCQkJU0FOVEEgQU5BIENBIDkyNzA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0zOSAgIChoZXgpCQlUT1NISUJBIENPUlBPUkFUSU9OCiswMDAwMzkgICAgIChiYXNlIDE2KQkJVE9TSElCQSBDT1JQT1JBVElPTgorCQkJCUNPTVBVVEVSIERJVklTSU9OCisJCQkJMS0xLTEgU0hJQkFVUkEsIE1JTkFUTy1LVQorCQkJCVRPS1lPIDEwNSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLTNBICAgKGhleCkJCUNIWVJPTiBDT1JQT1JBVElPTgorMDAwMDNBICAgICAoYmFzZSAxNikJCUNIWVJPTiBDT1JQT1JBVElPTgorCQkJCTI2NSBTUEFHTk9MSSBST0FECisJCQkJTUVMVklMTEUgTlkgMTE3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTNCICAgKGhleCkJCWkgQ29udHJvbHMsIEluYy4KKzAwMDAzQiAgICAgKGJhc2UgMTYpCQlpIENvbnRyb2xzLCBJbmMuCisJCQkJMTJGIERvb25zYW4gYnVpbGRpbmcsIDEwNS03CisJCQkJTm9uaHl1bi1kb25nLCBHYW5nbmFtLWd1IFNlb3VsCisJCQkJS09SRUEgMTM1LTcxNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMC0zQyAgIChoZXgpCQlBVVNQRVggU1lTVEVNUyBJTkMuCiswMDAwM0MgICAgIChiYXNlIDE2KQkJQVVTUEVYIFNZU1RFTVMgSU5DLgorCQkJCTUyMDAgR1JFQVQgQU1FUklDQSBQS1dZCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTNEICAgKGhleCkJCVVOSVNZUworMDAwMDNEICAgICAoYmFzZSAxNikJCVVOSVNZUworCQkJCU1TOC0wMTAKKwkJCQlQLk8uIEJPWCA2Njg1CisJCQkJU0FOIEpPU0UgQ0EgOTUxNTAtNjY4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtM0UgICAoaGV4KQkJU0lNUEFDVAorMDAwMDNFICAgICAoYmFzZSAxNikJCVNJTVBBQ1QKKwkJCQk5MjEwIFNLWSBQQVJLIENPVVJUCisJCQkJU0FOIERJRUdPIENBIDkyMTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC0zRiAgIChoZXgpCQlTWU5UUkVYLCBJTkMuCiswMDAwM0YgICAgIChiYXNlIDE2KQkJU1lOVFJFWCwgSU5DLgorCQkJCTI0NiBJTkRVU1RSSUFMIFdBWSBXRVNUCisJCQkJRUFUT05UT1dOIE5KIDA3NzI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC00MCAgIChoZXgpCQlBUFBMSUNPTiwgSU5DLgorMDAwMDQwICAgICAoYmFzZSAxNikJCUFQUExJQ09OLCBJTkMuCisJCQkJNDI1MSBQTFlNT1VUSCBSRCA0ODAxNQorCQkJCVBPIEJPWCA5ODYKKwkJCQlBTk4gQVJCT1IgTUkgNDgxMDYtMDk4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNDEgICAoaGV4KQkJSUNFIENPUlBPUkFUSU9OCiswMDAwNDEgICAgIChiYXNlIDE2KQkJSUNFIENPUlBPUkFUSU9OCisJCQkJMTc5NDUgU0tZUEFSSyBDSVJDTEUKKwkJCQlTVUlURSBFCisJCQkJSVJWSU5FIENBIDkyNzE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC00MiAgIChoZXgpCQlNRVRJRVIgTUFOQUdFTUVOVCBTWVNURU1TIExURC4KKzAwMDA0MiAgICAgKGJhc2UgMTYpCQlNRVRJRVIgTUFOQUdFTUVOVCBTWVNURU1TIExURC4KKwkJCQkzIEZPVU5EQVRJT04gU1RSRUVUCisJCQkJSVBTV0lDSCAgU1VGRk9MSyAgSVA0IDFCRworCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC00MyAgIChoZXgpCQlNSUNSTyBURUNITk9MT0dZCiswMDAwNDMgICAgIChiYXNlIDE2KQkJTUlDUk8gVEVDSE5PTE9HWQorCQkJCTQ5MDUgRUFTVCBMQVBBTE1BCisJCQkJQU5BSEVJTSBDQSA5MjgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNDQgICAoaGV4KQkJQ0FTVEVMTEUgQ09SUE9SQVRJT04KKzAwMDA0NCAgICAgKGJhc2UgMTYpCQlDQVNURUxMRSBDT1JQT1JBVElPTgorCQkJCTMyNTUtMyBTQ09UVCBCT1VMRVZBUkQKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNDUgICAoaGV4KQkJRk9SRCBBRVJPU1BBQ0UgJiBDT01NLiBDT1JQLgorMDAwMDQ1ICAgICAoYmFzZSAxNikJCUZPUkQgQUVST1NQQUNFICYgQ09NTS4gQ09SUC4KKwkJCQlDT0xPUkFETyBTUFJJTkdTIE9QRVJBVElPTgorCQkJCTEwNDQwIFNUQVRFIEhJR0hXQVkgODMKKwkJCQlDT0xPUkFETyBTUFJJTkdTIENPIDgwOTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC00NiAgIChoZXgpCQlPTElWRVRUSSBOT1JUSCBBTUVSSUNBCiswMDAwNDYgICAgIChiYXNlIDE2KQkJT0xJVkVUVEkgTk9SVEggQU1FUklDQQorCQkJCUUgMjI0MjUgQVBQTEVXQVkKKwkJCQlMSUJFUlRZIExBS0UgV0EgOTkwMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTQ3ICAgKGhleCkJCU5JQ09MRVQgSU5TVFJVTUVOVFMgQ09SUC4KKzAwMDA0NyAgICAgKGJhc2UgMTYpCQlOSUNPTEVUIElOU1RSVU1FTlRTIENPUlAuCisJCQkJNTIyNSBWRVJPTkEgUk9BRAorCQkJCU1BRElTT04gV0kgNTM3MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTQ4ICAgKGhleCkJCVNFSUtPIEVQU09OIENPUlBPUkFUSU9OCiswMDAwNDggICAgIChiYXNlIDE2KQkJU0VJS08gRVBTT04gQ09SUE9SQVRJT04KKwkJCQk4MCBISVJPT0tBIFNISU9KSVJJLUNJVFkKKwkJCQlOQUdBTk8tS0VOCisJCQkJSkFQQU4gMzk5LTA3CisJCQkJSkFQQU4KKworMDAtMDAtNDkgICAoaGV4KQkJQVBSSUNPVCBDT01QVVRFUlMsIExURAorMDAwMDQ5ICAgICAoYmFzZSAxNikJCUFQUklDT1QgQ09NUFVURVJTLCBMVEQKKwkJCQk5MCBWSU5DRU5UIERSSVZFCisJCQkJRURHQkFTVE9OLCBCSVJNSU5HSEFNIEIxNTJTUAorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC00QSAgIChoZXgpCQlBREMgQ09ERU5PTEwgVEVDSE5PTE9HWSBDT1JQLgorMDAwMDRBICAgICAoYmFzZSAxNikJCUFEQyBDT0RFTk9MTCBURUNITk9MT0dZIENPUlAuCisJCQkJMjAwIENPUlBPUkFURSBCTFZELiBTTy4KKwkJCQlZT05LRVJTIE5ZIDEwNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC00QiAgIChoZXgpCQlJQ0wgREFUQSBPWQorMDAwMDRCICAgICAoYmFzZSAxNikJCUlDTCBEQVRBIE9ZCisJCQkJS1VUT01PVElFIDE2LTE4CisJCQkJMDAzODAgSEVMU0lOS0kgIFAuTy4gQk9YIDQ1OCBTRi0wMDEwMSBIRQorCQkJCUZJTkxBTkQKKwkJCQlGSU5MQU5ECisKKzAwLTAwLTRDICAgKGhleCkJCU5FQyBDT1JQT1JBVElPTgorMDAwMDRDICAgICAoYmFzZSAxNikJCU5FQyBDT1JQT1JBVElPTgorCQkJCTctMSBTSElCQSAgNS1DSE9NRQorCQkJCU1JTkFUTy1LVQorCQkJCVRPS1lPIDEwOC0wMSAgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC00RCAgIChoZXgpCQlEQ0kgQ09SUE9SQVRJT04KKzAwMDA0RCAgICAgKGJhc2UgMTYpCQlEQ0kgQ09SUE9SQVRJT04KKwkJCQk2NEogUFJJTkNFVE9OLUhJR0hUU1RPV04gUkQKKwkJCQkjMTIxCisJCQkJUFJJTkNFVE9OIEpVTkNUSU9OIE5KIDA4NTUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC00RSAgIChoZXgpCQlBTVBFWCBDT1JQT1JBVElPTgorMDAwMDRFICAgICAoYmFzZSAxNikJCUFNUEVYIENPUlBPUkFUSU9OCisJCQkJNTgxIENPTkZFUkVOQ0UgUExBQ0UKKwkJCQlHT0xERU4gQ08gODA0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTRGICAgKGhleCkJCUxPR0lDUkFGVCwgSU5DLgorMDAwMDRGICAgICAoYmFzZSAxNikJCUxPR0lDUkFGVCwgSU5DLgorCQkJCTIyIENPVFRPTiBST0FECisJCQkJTkFTSFVBIE5IIDAzMDYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC01MCAgIChoZXgpCQlSQURJU1lTIENPUlBPUkFUSU9OCiswMDAwNTAgICAgIChiYXNlIDE2KQkJUkFESVNZUyBDT1JQT1JBVElPTgorCQkJCTE1MDI1IFMuVy4gS09MTCBQQVJLV0FZCisJCQkJQkVBVkVSVE9OIE9SIDk3MDA2LTYwNTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTUxICAgKGhleCkJCUhPQiBFTEVDVFJPTklDIEdNQkggJiBDTy4gS0cKKzAwMDA1MSAgICAgKGJhc2UgMTYpCQlIT0IgRUxFQ1RST05JQyBHTUJIICYgQ08uIEtHCisJCQkJQlJBTkRTU1RBVFRFUi1TVFIuMi0xMAorCQkJCUQtODUwMiBaSVJORE9SRgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAwLTUyICAgKGhleCkJCUludHJ1c2lvbi5jb20sIEluYy4KKzAwMDA1MiAgICAgKGJhc2UgMTYpCQlJbnRydXNpb24uY29tLCBJbmMuCisJCQkJMTEwMSBFLiBBUkFQQUhPIFJPQUQKKwkJCQlSSUNIQVJEU09OIFRYIDc1MDgxCisKKzAwLTAwLTUzICAgKGhleCkJCUNPTVBVQ09SUAorMDAwMDUzICAgICAoYmFzZSAxNikJCUNPTVBVQ09SUAorCQkJCTIyMTEgTUlDSElHQU4gQVZFTlVFCisJCQkJU0FOVEEgTU9OSUNBIENBIDkwNDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC01NCAgIChoZXgpCQlNT0RJQ09OLCBJTkMuCiswMDAwNTQgICAgIChiYXNlIDE2KQkJTU9ESUNPTiwgSU5DLgorCQkJCU9ORSBISUdIIFNUUkVFVAorCQkJCU5PUlRIIEFORE9WRVIgTUEgMDE4NDUtMjY5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNTUgICAoaGV4KQkJQ09NTUlTU0FSSUFUIEEgTGBFTkVSR0lFIEFUT00uCiswMDAwNTUgICAgIChiYXNlIDE2KQkJQ09NTUlTU0FSSUFUIEEgTGBFTkVSR0lFIEFUT00uCisJCQkJMzEsIFJVRSBERSBMQSBGRURFUkFUSU9OCisJCQkJUEFSSVMgNzUwMTUKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDAtNTYgICAoaGV4KQkJRFIuIEIuIFNUUlVDSworMDAwMDU2ICAgICAoYmFzZSAxNikJCURSLiBCLiBTVFJVQ0sKKwkJCQlQT0IgMTE0NyBCQUVDS0VSQkFSRyA2CisJCQkJRC0yMDAwIFRBTkdTVEVEVC9IQU1CVVJHCisJCQkJVy1HRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMC01NyAgIChoZXgpCQlTQ0lURVggQ09SUE9SQVRJT04gTFRELgorMDAwMDU3ICAgICAoYmFzZSAxNikJCVNDSVRFWCBDT1JQT1JBVElPTiBMVEQuCisJCQkJUC5PLiBCT1ggMzMwCisJCQkJNDYxMDMgSEVSWkxJQSBCCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTAwLTU4ICAgKGhleCkJCVJBQ09SRSBDT01QVVRFUiBQUk9EVUNUUyBJTkMuCiswMDAwNTggICAgIChiYXNlIDE2KQkJUkFDT1JFIENPTVBVVEVSIFBST0RVQ1RTIElOQy4KKwkJCQkyMzU1IFNPVVRIIDEwNzAgV0VTVAorCQkJCVNBTFQgTEFLRSBDSVRZIFVUIDg0MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC01OSAgIChoZXgpCQlIRUxMSUdFIEdNQkgKKzAwMDA1OSAgICAgKGJhc2UgMTYpCQlIRUxMSUdFIEdNQkgKKwkJCQlFLVNXCisJCQkJSEVJTlJJQ0gtVk9OLVNURUZBTi1TVFIuNCBELTc4MDAgRlJFSUJVUgorCQkJCVdFU1QgR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDAtNUEgICAoaGV4KQkJU3lzS29ubmVjdCBHbWJICiswMDAwNUEgICAgIChiYXNlIDE2KQkJU3lzS29ubmVjdCBHbWJICisJCQkJU0lFTUVOU1NUUkFTU0UgMjMKKwkJCQk3NjI3NSBFVFRMSU5HRU4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMC01QiAgIChoZXgpCQlFTFRFQyBFTEVLVFJPTklLIEFHCiswMDAwNUIgICAgIChiYXNlIDE2KQkJRUxURUMgRUxFS1RST05JSyBBRworCQkJCUdhbGlsZW8tR2FsaWxlaS1TdHJhc3NlIDExCisJCQkJUE9CIDQyIDEzIDYzIEQtNTUwNzEgTUFJTloKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMC01QyAgIChoZXgpCQlURUxFTUFUSUNTIElOVEVSTkFUSU9OQUwgSU5DLgorMDAwMDVDICAgICAoYmFzZSAxNikJCVRFTEVNQVRJQ1MgSU5URVJOQVRJT05BTCBJTkMuCisJCQkJMTIwMSBDWVBSRVNTIENSRUVLIFJECisJCQkJRlQuIExBVURFUkRBTEUgRkwgMzMzMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTVEICAgKGhleCkJCUNTIFRFTEVDT00KKzAwMDA1RCAgICAgKGJhc2UgMTYpCQlDUyBURUxFQ09NCisJCQkJNC0xNiBBVkVOVUUgRFUgR0VORVJBTCBMRUNMRVJDCisJCQkJQlAgNzQgLSA5MjI2MyBGT05URU5BWSBBVVggUk9TRVMKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDAtNUUgICAoaGV4KQkJVVNDIElORk9STUFUSU9OIFNDSUVOQ0VTIElOU1QKKzAwMDA1RSAgICAgKGJhc2UgMTYpCQlVU0MgSU5GT1JNQVRJT04gU0NJRU5DRVMgSU5TVAorCQkJCUlOVEVSTkVUIEFTUydORUQgTk9TLkFVVEhPUklUWQorCQkJCTQ2NzYgQURNSVJBTFRZIFdBWQorCQkJCU1BUklOQSBERUwgUkVZIENBIDkwMjkyLTY2OTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTVGICAgKGhleCkJCVNVTUlUT01PIEVMRUNUUklDIElORC4sIExURC4KKzAwMDA1RiAgICAgKGJhc2UgMTYpCQlTVU1JVE9NTyBFTEVDVFJJQyBJTkQuLCBMVEQuCisJCQkJMS0xLTMsIFNISU1BWUEKKwkJCQlLT05PSEFOQS1LVSBPU0FLQQorCQkJCTU1NCBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLTYwICAgKGhleCkJCUtPTlRST04gRUxFS1RST05JSyBHTUJICiswMDAwNjAgICAgIChiYXNlIDE2KQkJS09OVFJPTiBFTEVLVFJPTklLIEdNQkgKKwkJCQlPU0tBUi1WT04tTUlMTEVSLVNUUi4gMQorCQkJCUQtODUzODUgRUNISU5HCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDAtNjEgICAoaGV4KQkJR0FURVdBWSBDT01NVU5JQ0FUSU9OUworMDAwMDYxICAgICAoYmFzZSAxNikJCUdBVEVXQVkgQ09NTVVOSUNBVElPTlMKKwkJCQkyOTQxIEFMVE9OIEFWRU5VRQorCQkJCUlSVklORSBDQSA5MjcxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNjIgICAoaGV4KQkJQlVMTCBITiBJTkZPUk1BVElPTiBTWVNURU1TCiswMDAwNjIgICAgIChiYXNlIDE2KQkJQlVMTCBITiBJTkZPUk1BVElPTiBTWVNURU1TCisJCQkJMzAwIENPTkNPUkQgUk9BRCBNL1MgODY0QQorCQkJCUJJTExFUklDQSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNjMgICAoaGV4KQkJQkFSQ08gQ09OVFJPTCBST09NUyBHTUJICiswMDAwNjMgICAgIChiYXNlIDE2KQkJQkFSQ08gQ09OVFJPTCBST09NUyBHTUJICisJCQkJQW4gZGVyIFJvc3N3ZWlkIDUKKwkJCQlLYXJsc3J1aGUgIEQtNzYyMjkKKwkJCQlHRVJNQU5ZCisKKzAwLTAwLTY0ICAgKGhleCkJCVlPS09HQVdBIERJR0lUQUwgQ09NUFVURVIgQ09SUAorMDAwMDY0ICAgICAoYmFzZSAxNikJCVlPS09HQVdBIERJR0lUQUwgQ09NUFVURVIgQ09SUAorCQkJCVNJIEhFQURRVUFSVEVSUyBESVZJU0lPTgorCQkJCU5PLiAyNSBLT1dBIEJMREcgOC03IFNBTkJBTkNITyBDSElZT0RBLUsKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLTY1ICAgKGhleCkJCU5ldHdvcmsgR2VuZXJhbCBDb3Jwb3JhdGlvbgorMDAwMDY1ICAgICAoYmFzZSAxNikJCU5ldHdvcmsgR2VuZXJhbCBDb3Jwb3JhdGlvbgorCQkJCTE3OCBFIFRzYW1hbiBEcgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC02NiAgIChoZXgpCQlUQUxBUklTIFNZU1RFTVMsIElOQy4KKzAwMDA2NiAgICAgKGJhc2UgMTYpCQlUQUxBUklTIFNZU1RFTVMsIElOQy4KKwkJCQkxMTMzOSBTT1JSRU5UTyBWQUxMRVkgUk9BRAorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNjcgICAoaGV4KQkJU09GVCAqIFJJVEUsIElOQy4KKzAwMDA2NyAgICAgKGJhc2UgMTYpCQlTT0ZUICogUklURSwgSU5DLgorCQkJCTE1MzkyIEFTU0VNQkxZIExBTkUsIFVOSVQgQQorCQkJCUhVTlRJTkdUT04gQkVBQ0ggQ0EgOTI2NDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTY4ICAgKGhleCkJCVJPU0VNT1VOVCBDT05UUk9MUworMDAwMDY4ICAgICAoYmFzZSAxNikJCVJPU0VNT1VOVCBDT05UUk9MUworCQkJCTEzMDAgRS4gTEFNQkVSVCBST0FECisJCQkJTEEgSEFCUkEgQ0EgOTA2MzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTY5ICAgKGhleCkJCUNPTkNPUkQgQ09NTVVOSUNBVElPTlMgSU5DCiswMDAwNjkgICAgIChiYXNlIDE2KQkJQ09OQ09SRCBDT01NVU5JQ0FUSU9OUyBJTkMKKwkJCQk3NTMgRk9SRVNUIFNUUkVFVAorCQkJCU1BUkxCT1JPVUdIIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC02QSAgIChoZXgpCQlDT01QVVRFUiBDT05TT0xFUyBJTkMuCiswMDAwNkEgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgQ09OU09MRVMgSU5DLgorCQkJCUNPTVBVVEVSIFBST0RVQ1RTIERJVklTSU9OCisJCQkJOTgwMSBNVUlSTEFORFMgQkxWRC4KKwkJCQlJUlZJTkUgQ0EgOTI3MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTZCICAgKGhleCkJCVNJTElDT04gR1JBUEhJQ1MgSU5DLi9NSVBTCiswMDAwNkIgICAgIChiYXNlIDE2KQkJU0lMSUNPTiBHUkFQSElDUyBJTkMuL01JUFMKKwkJCQkyMDExIE5PUlRIIFNIT1JFTElORSBCTFZELgorCQkJCVAuTy4gQk9YIDczMTEgLSAgQkxERy4gIzEwCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDAzOS03MzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC02QyAgIChoZXgpCQlQUklWQVRFCiswMDAwNkMgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTAwLTZEICAgKGhleCkJCUNSQVkgQ09NTVVOSUNBVElPTlMsIExURC4KKzAwMDA2RCAgICAgKGJhc2UgMTYpCQlDUkFZIENPTU1VTklDQVRJT05TLCBMVEQuCisJCQkJUC5PLiBCT1ggMjU0LCBDQVhUT04gV0FZCisJCQkJV0FURk9SRCBCVVNJTkVTUyBQQVJLIFdBVEZPUkQgSEVSVFMgIFdEMQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtNkUgICAoaGV4KQkJQVJUSVNPRlQsIElOQy4KKzAwMDA2RSAgICAgKGJhc2UgMTYpCQlBUlRJU09GVCwgSU5DLgorCQkJCTY5MSBFQVNUIFJJVkVSIFJPQUQKKwkJCQlUVUNTT04gQVogODU3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTZGICAgKGhleCkJCU1hZGdlIEx0ZC4KKzAwMDA2RiAgICAgKGJhc2UgMTYpCQlNYWRnZSBMdGQuCisJCQkJTWFkZ2UgSG91c2UKKwkJCQlQcmlvcnMgV2F5CisJCQkJTWFpbmRlbmhlYWQgQmVya3NoaXJlIFNMNiAySFAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC03MCAgIChoZXgpCQlIQ0wgTElNSVRFRAorMDAwMDcwICAgICAoYmFzZSAxNikJCUhDTCBMSU1JVEVECisJCQkJUkVTRUFSQ0ggJiBERVZFTE9QTUVOVCBVTklUCisJCQkJNzIsIExVWiBDSFVSQ0ggUk9BRCBNQURSU0EtNjAwIDAwNAorCQkJCUlORElBCisJCQkJSU5ESUEKKworMDAtMDAtNzEgICAoaGV4KQkJQURSQSBTWVNURU1TIElOQy4KKzAwMDA3MSAgICAgKGJhc2UgMTYpCQlBRFJBIFNZU1RFTVMgSU5DLgorCQkJCTU5IFRFQ0hOT0xPR1kgRFJJVkUKKwkJCQlMT1dFTEwgTUEgMDE4NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTcyICAgKGhleCkJCU1JTklXQVJFIFRFQ0hOT0xPR1kKKzAwMDA3MiAgICAgKGJhc2UgMTYpCQlNSU5JV0FSRSBURUNITk9MT0dZCisJCQkJQkVFTURFTlNUUkFBVCAzOAorCQkJCTUwMDQgQ1QgV0VFUlQgKEwpCisJCQkJVEhFIE5FVEhFUkxBTkRTCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDAtNzMgICAoaGV4KQkJU0lFQ09SIENPUlBPUkFUSU9OCiswMDAwNzMgICAgIChiYXNlIDE2KQkJU0lFQ09SIENPUlBPUkFUSU9OCisJCQkJUC5PLiBCT1ggMTM2MjUKKwkJCQlSRVNFQVJDSCBUUklBTkdMRSBQSyBOQyAyNzcwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtNzQgICAoaGV4KQkJUklDT0ggQ09NUEFOWSBMVEQuCiswMDAwNzQgICAgIChiYXNlIDE2KQkJUklDT0ggQ09NUEFOWSBMVEQuCisJCQkJMjQ0NiBUT0RBLCBBVFNVR0kgQ0lUWQorCQkJCUtBTkFHQVdBIFBSRUYuLAorCQkJCTI0MyBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLTc1ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwMDc1ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCUdsb2JhbCBPcGVyYXRpb25zIEVuZ2luZWVyaW5nCisJCQkJRGVwIDY4MDAgUHJvZ3JhbSBNYW5hZ2VyIDgyMDAgRGl4aWUgUm9hZAorCQkJCUJyYW1wdG9uIE9OIGw2VCA1UDYgQ2FuYQorCQkJCUNBTkFEQQorCiswMC0wMC03NiAgIChoZXgpCQlBQkVLQVMgVklERU8gU1lTVEVNCiswMDAwNzYgICAgIChiYXNlIDE2KQkJQUJFS0FTIFZJREVPIFNZU1RFTQorCQkJCTEwMSBHQUxWRVNUT04gRFJJVkUKKwkJCQlSRURXT09EIENJVFkgQ0EgOTQwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTc3ICAgKGhleCkJCUlOVEVSUEhBU0UgQ09SUE9SQVRJT04KKzAwMDA3NyAgICAgKGJhc2UgMTYpCQlJTlRFUlBIQVNFIENPUlBPUkFUSU9OCisJCQkJMTM4MDAgU0VOTEFDCisJCQkJREFMTEFTIFRYIDc1MjM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC03OCAgIChoZXgpCQlMQUJUQU0gTElNSVRFRAorMDAwMDc4ICAgICAoYmFzZSAxNikJCUxBQlRBTSBMSU1JVEVECisJCQkJNDMgTUFMQ09MTSBST0FEICAgUC5PLiBCT1gyOTcKKwkJCQlCUkFFU0lERSwgVklDVE9SSUEgMzE5NQorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC0wMC03OSAgIChoZXgpCQlORVRXT1JUSCBJTkNPUlBPUkFURUQKKzAwMDA3OSAgICAgKGJhc2UgMTYpCQlORVRXT1JUSCBJTkNPUlBPUkFURUQKKwkJCQk4NDA0IEVTVEVSUyBCT1VMRVZBUkQKKwkJCQlJUlZJTkcgVFggNzUwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTdBICAgKGhleCkJCURBTkEgQ09NUFVURVIgSU5DLgorMDAwMDdBICAgICAoYmFzZSAxNikJCURBTkEgQ09NUFVURVIgSU5DLgorCQkJCTU1MCBERUwgUkVZIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtN0IgICAoaGV4KQkJUkVTRUFSQ0ggTUFDSElORVMKKzAwMDA3QiAgICAgKGJhc2UgMTYpCQlSRVNFQVJDSCBNQUNISU5FUworCQkJCVAuTy4gQk9YIDc1CisJCQkJTUlMTCBTVFJFRVQgT1hGT1JEICBPWDIgMEJXCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLTdDICAgKGhleCkJCUFNUEVSRSBJTkNPUlBPUkFURUQKKzAwMDA3QyAgICAgKGJhc2UgMTYpCQlBTVBFUkUgSU5DT1JQT1JBVEVECisJCQkJU0hJTkpVS1UgQVNBSEkgQkxERy4KKwkJCQk1LTIwICA3LUNIT01FIE5JU0hJLVNISU5KVUtVICBTSElOSlVLVS1LCisJCQkJVE9LWU8gSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC03RCAgIChoZXgpCQlPcmFjbGUgQ29ycG9yYXRpb24KKzAwMDA3RCAgICAgKGJhc2UgMTYpCQlPcmFjbGUgQ29ycG9yYXRpb24KKwkJCQkxNyBOZXR3b3JrIENpcmNsZQorCQkJCUJ1aWxkaW5nIDE3LCBVTVBLMTctMTMxCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTdFICAgKGhleCkJCUNMVVNUUklYIENPUlBPUkFUSU9OCiswMDAwN0UgICAgIChiYXNlIDE2KQkJQ0xVU1RSSVggQ09SUE9SQVRJT04KKwkJCQk5NjAgSEFNTElOIENPVVJUCisJCQkJU1VOTllWQUxFIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC03RiAgIChoZXgpCQlMSU5PVFlQRS1IRUxMIEFHCiswMDAwN0YgICAgIChiYXNlIDE2KQkJTElOT1RZUEUtSEVMTCBBRworCQkJCVBPU1RGQUNIIDU2IDYwCisJCQkJTUVSR0VOVEhBTEVSIEFMTEVFIDU1LTc1IDYyMzYgRVNDSEJPUk4gQgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAwLTgwICAgKGhleCkJCUNSQVkgQ09NTVVOSUNBVElPTlMgQS9TCiswMDAwODAgICAgIChiYXNlIDE2KQkJQ1JBWSBDT01NVU5JQ0FUSU9OUyBBL1MKKwkJCQlTTUVERUhPTE0gMTItMTQKKwkJCQkyNzMwIEhFUkxFVgorCQkJCURFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLTAwLTgxICAgKGhleCkJCUJBWSBORVRXT1JLUworMDAwMDgxICAgICAoYmFzZSAxNikJCUJBWSBORVRXT1JLUworCQkJCTQ0MDEgR1JFQVQgQU1FUklDQU4gUEFSS1dBWQorCQkJCVBPIEJPWCA1ODE4NSBNL1MgU0MwMS0wNQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyLTgxODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTgyICAgKGhleCkJCUxFQ1RSQSBTWVNURU1FUyBTQQorMDAwMDgyICAgICAoYmFzZSAxNikJCUxFQ1RSQSBTWVNURU1FUyBTQQorCQkJCUNIRU1JTiBERSBNQVJUSUNPVAorCQkJCVJFU0VBUkNIIERFUEFSVE1FTlQgMzM2MTAgQ0VTVEFTCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAwLTgzICAgKGhleCkJCVRBRFBPTEUgVEVDSE5PTE9HWSBQTEMKKzAwMDA4MyAgICAgKGJhc2UgMTYpCQlUQURQT0xFIFRFQ0hOT0xPR1kgUExDCisJCQkJMTM3IERJVFRPTiBXQUxLCisJCQkJQ0FNQlJJREdFIENCNSA4Rk4KKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtODQgICAoaGV4KQkJU1VQRVJORVQKKzAwMDA4NCAgICAgKGJhc2UgMTYpCQlTVVBFUk5FVAorCQkJCTg0NiBERUwgUkVZIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtODUgICAoaGV4KQkJQ0FOT04gSU5DLgorMDAwMDg1ICAgICAoYmFzZSAxNikJCUNBTk9OIElOQy4KKwkJCQlEVlRFQ0guIERFVi4gQ0VOVEVSIERFUFQuMTIKKwkJCQkzLTMwLTIsIFNISU1PTUFSVUtPLCBPSFRBLUtVIFRPS1lPIDE0NgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDAtODYgICAoaGV4KQkJTUVHQUhFUlRaIENPUlBPUkFUSU9OCiswMDAwODYgICAgIChiYXNlIDE2KQkJTUVHQUhFUlRaIENPUlBPUkFUSU9OCisJCQkJNjA1IE5PUlRILS01NjAwIFdFU1QKKwkJCQlTQUxUIExBS0UgQ0lUWSBVVCA4NDExNi0zNzM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC04NyAgIChoZXgpCQlISVRBQ0hJLCBMVEQuCiswMDAwODcgICAgIChiYXNlIDE2KQkJSElUQUNISSwgTFRELgorCQkJCU5FVFdPUksgRU5HSU5FRVJJTkcgRElWLgorCQkJCUhJVEFDSEkgT01PUkkgMk5EIEJMREcuLCAyNy0xOCBNSU5BTUkgT0kKKwkJCQlUT0tZTyAxNDAgCisJCQkJSkFQQU4KKworMDAtMDAtODggICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCiswMDAwODggICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJMTc0NSBUZWNobm9sb2d5IERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC04OSAgIChoZXgpCQlDQVlNQU4gU1lTVEVNUyBJTkMuCiswMDAwODkgICAgIChiYXNlIDE2KQkJQ0FZTUFOIFNZU1RFTVMgSU5DLgorCQkJCTI2IExBTlNET1dORSBTVFJFRVQKKwkJCQlDQU1CUklER0UgTUEgMDIxMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLThBICAgKGhleCkJCURBVEFIT1VTRSBJTkZPUk1BVElPTiBTWVNURU1TCiswMDAwOEEgICAgIChiYXNlIDE2KQkJREFUQUhPVVNFIElORk9STUFUSU9OIFNZU1RFTVMKKwkJCQlESVJFQ1RPUiBPRiBPUEVSQVRJT05TCisJCQkJTUVPTiBIT1VTRSwgRUFTVCBUSVNURUQgTlIuIEFMVE9OLCBIQU1QUworCQkJCUdVMzQgM1FXIEVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC04QiAgIChoZXgpCQlJTkZPVFJPTgorMDAwMDhCICAgICAoYmFzZSAxNikJCUlORk9UUk9OCisJCQkJOSBOT1JUSCBPTE5FWQorCQkJCUNIRVJSWSBISUxMIE5KIDA4MDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC04QyAgIChoZXgpCQlBbGxveSBDb21wdXRlciBQcm9kdWN0cyAoQXVzdHJhbGlhKSBQdHkgTHRkCiswMDAwOEMgICAgIChiYXNlIDE2KQkJQWxsb3kgQ29tcHV0ZXIgUHJvZHVjdHMgKEF1c3RyYWxpYSkgUHR5IEx0ZAorCQkJCVVuaXQgNC81ODUgQmxhY2tidXJuIFJvYWQKKwkJCQlOb3R0aW5nIEhpbGwgVmljdG9yaWEgMzE2OAorCQkJCUFVU1RSQUxJQQorCiswMC0wMC04RCAgIChoZXgpCQlDcnlwdGVrIEluYy4KKzAwMDA4RCAgICAgKGJhc2UgMTYpCQlDcnlwdGVrIEluYy4KKwkJCQkxNTAxIE1vcmFuIFJvYWQKKwkJCQlTdGVybGluZyBWQSAyMDE2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOEUgICAoaGV4KQkJU09MQk9VUk5FIENPTVBVVEVSLCBJTkMuCiswMDAwOEUgICAgIChiYXNlIDE2KQkJU09MQk9VUk5FIENPTVBVVEVSLCBJTkMuCisJCQkJMTkwMCBQSUtFIFJPQUQKKwkJCQlMT05HTU9OVCBDT0xPUkFETyA4MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOEYgICAoaGV4KQkJUmF5dGhlb24KKzAwMDA4RiAgICAgKGJhc2UgMTYpCQlSYXl0aGVvbgorCQkJCU0vUyAxLTEtMTExOQorCQkJCTEwMDEgQm9zdG9uIFBvc3QgUmQKKwkJCQlNYXJsYm9ybyBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOTAgICAoaGV4KQkJTUlDUk9DT00KKzAwMDA5MCAgICAgKGJhc2UgMTYpCQlNSUNST0NPTQorCQkJCTUwMCBSSVZFUiBSSURHRSBEUklWRQorCQkJCU5PUldPT0QgTUEgMDIwNjItNTAyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOTEgICAoaGV4KQkJQU5SSVRTVSBDT1JQT1JBVElPTgorMDAwMDkxICAgICAoYmFzZSAxNikJCUFOUklUU1UgQ09SUE9SQVRJT04KKwkJCQkxODAwLCBPTk5BCisJCQkJQVRVR0ktU0hJIEtBTkFHQVdBLUtFTiAyNDMKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLTkyICAgKGhleCkJCUNPR0VOVCBEQVRBIFRFQ0hOT0xPR0lFUworMDAwMDkyICAgICAoYmFzZSAxNikJCUNPR0VOVCBEQVRBIFRFQ0hOT0xPR0lFUworCQkJCTY0MCBNVUxMSVMgU1RSRUVUCisJCQkJRlJJREFZIEhBUkJPUiBXQSA5ODI1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOTMgICAoaGV4KQkJUFJPVEVPTiBJTkMuCiswMDAwOTMgICAgIChiYXNlIDE2KQkJUFJPVEVPTiBJTkMuCisJCQkJNCBURUNIIENJUkNMRQorCQkJCU5BVElDSyBNQSAwMTc2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOTQgICAoaGV4KQkJQVNBTlRFIFRFQ0hOT0xPR0lFUworMDAwMDk0ICAgICAoYmFzZSAxNikJCUFTQU5URSBURUNITk9MT0dJRVMKKwkJCQk4MjEgRk9YIExBTkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOTUgICAoaGV4KQkJU09OWSBURUtUUk9OSVggQ09SUC4KKzAwMDA5NSAgICAgKGJhc2UgMTYpCQlTT05ZIFRFS1RST05JWCBDT1JQLgorCQkJCVAuTy4gQk9YIDUyMDkgVE9LWU8gSU5UJ0wKKwkJCQlUT0tZTyAxMDAtMzEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAwLTk2ICAgKGhleCkJCU1BUkNPTkkgRUxFQ1RST05JQ1MgTFRELgorMDAwMDk2ICAgICAoYmFzZSAxNikJCU1BUkNPTkkgRUxFQ1RST05JQ1MgTFRELgorCQkJCUJST1dOUyBMQU5FLCBUSEUgQUlSUE9SVAorCQkJCVBPUlRTTU9VVEggLS0gSEFNUFNISVJFIFAwMyA1UEgKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLTk3ICAgKGhleCkJCUVNQyBDb3Jwb3JhdGlvbgorMDAwMDk3ICAgICAoYmFzZSAxNikJCUVNQyBDb3Jwb3JhdGlvbgorCQkJCTE3NiBTb3V0aCBTdHJlZXQKKwkJCQlIb3BraW50b24gTUEgMDE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTk4ICAgKGhleCkJCUNST1NTQ09NTSBDT1JQT1JBVElPTgorMDAwMDk4ICAgICAoYmFzZSAxNikJCUNST1NTQ09NTSBDT1JQT1JBVElPTgorCQkJCTQ1MCBET05BTEQgTFlOQ0ggQk9VTEVWQVJECisJCQkJTUFSTEJPUk9VR0ggTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLTk5ICAgKGhleCkJCU1UWCwgSU5DLgorMDAwMDk5ICAgICAoYmFzZSAxNikJCU1UWCwgSU5DLgorCQkJCTMzMDEgVEVSTUlOQUwgRFJJVkUKKwkJCQlSQUxFSUdIIE5DIDI3NjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC05QSAgIChoZXgpCQlSQyBDT01QVVRFUiBBL1MKKzAwMDA5QSAgICAgKGJhc2UgMTYpCQlSQyBDT01QVVRFUiBBL1MKKwkJCQlMQVVUUlVQQkpFUkcgMQorCQkJCURLLTI3NTAgQkFMTEVSVVAKKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswMC0wMC05QiAgIChoZXgpCQlJTkZPUk1BVElPTiBJTlRFUk5BVElPTkFMLCBJTkMKKzAwMDA5QiAgICAgKGJhc2UgMTYpCQlJTkZPUk1BVElPTiBJTlRFUk5BVElPTkFMLCBJTkMKKwkJCQk1Ri4sIFRIRSA3VEggSU5EVVNUUlkgQkxERy4KKwkJCQkxLTIwLTE0IEpJTk5BTiBTSElCVVlBLUtVIFRPS1lPCisJCQkJSkFQQU4gMTUwCisJCQkJSkFQQU4KKworMDAtMDAtOUMgICAoaGV4KQkJUk9MTSBNSUwtU1BFQyBDT01QVVRFUlMKKzAwMDA5QyAgICAgKGJhc2UgMTYpCQlST0xNIE1JTC1TUEVDIENPTVBVVEVSUworCQkJCTMxNTEgWkFOS0VSIFJPQUQKKwkJCQlTQU4gSk9TRSBDQSA5NTE0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtOUQgICAoaGV4KQkJTE9DVVMgQ09NUFVUSU5HIENPUlBPUkFUSU9OCiswMDAwOUQgICAgIChiYXNlIDE2KQkJTE9DVVMgQ09NUFVUSU5HIENPUlBPUkFUSU9OCisJCQkJOTgwMCBMQSBDSUVORUdBCisJCQkJSU5HTEVXT09EIENBIDkwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC05RSAgIChoZXgpCQlNQVJMSSBTLkEuCiswMDAwOUUgICAgIChiYXNlIDE2KQkJTUFSTEkgUy5BLgorCQkJCUNIRU1JTiBUQVZFUk5FWSAzCisJCQkJMTIxOCBHRU5FVkEKKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTAwLTlGICAgKGhleCkJCUFNRVJJU1RBUiBURUNITk9MT0dJRVMgSU5DLgorMDAwMDlGICAgICAoYmFzZSAxNikJCUFNRVJJU1RBUiBURUNITk9MT0dJRVMgSU5DLgorCQkJCTQ3IFdISVRUSUVSIEFWRS4KKwkJCQlNRURGT1JEIE5ZIDExNzYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1BMCAgIChoZXgpCQlTQU5ZTyBFbGVjdHJpYyBDby4sIEx0ZC4KKzAwMDBBMCAgICAgKGJhc2UgMTYpCQlTQU5ZTyBFbGVjdHJpYyBDby4sIEx0ZC4KKwkJCQk1LTUsIEtlaWhhbi1ob25kb3JpIDItY2hvbWUsCisJCQkJTW9yaWd1Y2hpIENpdHkgT3Nha2EgNTcwLTg2NzcKKwkJCQlKQVBBTgorCiswMC0wMC1BMSAgIChoZXgpCQlNQVJRVUVUVEUgRUxFQ1RSSUMgQ08uCiswMDAwQTEgICAgIChiYXNlIDE2KQkJTUFSUVVFVFRFIEVMRUNUUklDIENPLgorCQkJCTgyMDAgV0VTVCBUT1dFUiBBVkVOVUUKKwkJCQlNSUxXQVVLRUUgV0kgNTMyMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUEyICAgKGhleCkJCUJBWSBORVRXT1JLUworMDAwMEEyICAgICAoYmFzZSAxNikJCUJBWSBORVRXT1JLUworCQkJCTQ0MDEgR1JFQVQgQU1FUklDQU4gUEtXWQorCQkJCU0vUzpTQzAxLTA1CisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTItODE4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQTMgICAoaGV4KQkJTkVUV09SSyBBUFBMSUNBVElPTiBURUNITk9MT0dZCiswMDAwQTMgICAgIChiYXNlIDE2KQkJTkVUV09SSyBBUFBMSUNBVElPTiBURUNITk9MT0dZCisJCQkJMTY4NiBERUxMIEFWRU5VRQorCQkJCUNBTVBCRUxMIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1BNCAgIChoZXgpCQlBQ09STiBDT01QVVRFUlMgTElNSVRFRAorMDAwMEE0ICAgICAoYmFzZSAxNikJCUFDT1JOIENPTVBVVEVSUyBMSU1JVEVECisJCQkJRlVMQk9VUk4gUk9BRCwgQ0hFUlJZIEhJTlRPTgorCQkJCUNBTUJSSURHRSBDQjEgNEpOLAorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC1BNSAgIChoZXgpCQlUYXR0aWxlIFNSTCAKKzAwMDBBNSAgICAgKGJhc2UgMTYpCQlUYXR0aWxlIFNSTCAKKwkJCQlQLk8uIEJPWCAxNzIyMAorCQkJCUJPVUxERVIgQ08gODAzMDgtNzIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQTYgICAoaGV4KQkJTkVUV09SSyBHRU5FUkFMIENPUlBPUkFUSU9OCiswMDAwQTYgICAgIChiYXNlIDE2KQkJTkVUV09SSyBHRU5FUkFMIENPUlBPUkFUSU9OCisJCQkJMTI5NiBCIExBV1JFTkNFIFNUQVRJT04gUk9BRAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQTcgICAoaGV4KQkJTkVUV09SSyBDT01QVVRJTkcgREVWSUNFUyBJTkMuCiswMDAwQTcgICAgIChiYXNlIDE2KQkJTkVUV09SSyBDT01QVVRJTkcgREVWSUNFUyBJTkMuCisJCQkJMzUwIE5PUlRIIEJFUk5BUkRPCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQTggICAoaGV4KQkJU1RSQVRVUyBDT01QVVRFUiBJTkMuCiswMDAwQTggICAgIChiYXNlIDE2KQkJU1RSQVRVUyBDT01QVVRFUiBJTkMuCisJCQkJMTExIFBvd2Rlcm1pbGwgUm9hZAorCQkJCU1heW5hcmQgTUEgMDE3NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUE5ICAgKGhleCkJCU5FVFdPUksgU1lTVEVNUyBDT1JQLgorMDAwMEE5ICAgICAoYmFzZSAxNikJCU5FVFdPUksgU1lTVEVNUyBDT1JQLgorCQkJCTc2MDAgQk9PTkUgQVZFTlVFIE5PUlRICisJCQkJTUlOTkVBUE9MSVMgTU4gNTU0MjgtMTA5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQUEgICAoaGV4KQkJWEVST1ggQ09SUE9SQVRJT04KKzAwMDBBQSAgICAgKGJhc2UgMTYpCQlYRVJPWCBDT1JQT1JBVElPTgorCQkJCU9GRklDRSBTWVNURU1TIERJVklTSU9OCisJCQkJTS9TIDEwNS01MEMgODAwIFBISUxMSVBTIFJPQUQKKwkJCQlXRUJTVEVSIE5ZIDE0NTgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1BQiAgIChoZXgpCQlMT0dJQyBNT0RFTElORyBDT1JQT1JBVElPTgorMDAwMEFCICAgICAoYmFzZSAxNikJCUxPR0lDIE1PREVMSU5HIENPUlBPUkFUSU9OCisJCQkJMTUyMCBNQ0NBTkRMRVNTIERSSVZFCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUFDICAgKGhleCkJCUNPTldBUkUgQ09NUFVURVIgQ09OU1VMVElORworMDAwMEFDICAgICAoYmFzZSAxNikJCUNPTldBUkUgQ09NUFVURVIgQ09OU1VMVElORworCQkJCUtJTExJU0ZFTERTVFJBU1NFIDY0CisJCQkJNzYyMjcgS0FSTFNSVUhFCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDAtQUQgICAoaGV4KQkJQlJVS0VSIElOU1RSVU1FTlRTIElOQy4KKzAwMDBBRCAgICAgKGJhc2UgMTYpCQlCUlVLRVIgSU5TVFJVTUVOVFMgSU5DLgorCQkJCU1BTk5JTkcgUEFSSworCQkJCUJJTExFUklDQSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQUUgICAoaGV4KQkJREFTU0FVTFQgRUxFQ1RST05JUVVFCiswMDAwQUUgICAgIChiYXNlIDE2KQkJREFTU0FVTFQgRUxFQ1RST05JUVVFCisJCQkJNTUsIFFVQUkgTUFSQ0VMIERBU1NBVUxUCisJCQkJOTIyMTQgU1QgQ0xPVUQKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDAtQUYgICAoaGV4KQkJTlVDTEVBUiBEQVRBIElOU1RSVU1FTlRBVElPTgorMDAwMEFGICAgICAoYmFzZSAxNikJCU5VQ0xFQVIgREFUQSBJTlNUUlVNRU5UQVRJT04KKwkJCQlHT0xGICYgTUVBQ0hBTSBST0FEUworCQkJCVNDSEFVTUJFUkcgSUwgNjAxOTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUIwICAgKGhleCkJCVJORC1SQUQgTkVUV09SSyBERVZJQ0VTCiswMDAwQjAgICAgIChiYXNlIDE2KQkJUk5ELVJBRCBORVRXT1JLIERFVklDRVMKKwkJCQlBVElESU0gVEVDSE5PTCdDTCBCTERHLiAxCisJCQkJVEVMIEFWSVYgIDYxMTMxCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTAwLUIxICAgKGhleCkJCUFMUEhBIE1JQ1JPU1lTVEVNUyBJTkMuCiswMDAwQjEgICAgIChiYXNlIDE2KQkJQUxQSEEgTUlDUk9TWVNURU1TIElOQy4KKwkJCQkzNTAxIFNVTkZMT1dFUgorCQkJCVNBTlRBIEFOQSBDQSA5MjcwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQjIgICAoaGV4KQkJVEVMRVZJREVPIFNZU1RFTVMsIElOQy4KKzAwMDBCMiAgICAgKGJhc2UgMTYpCQlURUxFVklERU8gU1lTVEVNUywgSU5DLgorCQkJCTU1MCBFLiBCUk9LQVcgUk9BRAorCQkJCVNBTiBKT1NFIENBIDk1MTYxLTkwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUIzICAgKGhleCkJCUNJTUxJTkMgSU5DT1JQT1JBVEVECiswMDAwQjMgICAgIChiYXNlIDE2KQkJQ0lNTElOQyBJTkNPUlBPUkFURUQKKwkJCQkxOTU3IENST09LUyBST0FECisJCQkJVFJPWSBNSSA0ODA4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQjQgICAoaGV4KQkJRURJTUFYIENPTVBVVEVSIENPTVBBTlkKKzAwMDBCNCAgICAgKGJhc2UgMTYpCQlFRElNQVggQ09NUFVURVIgQ09NUEFOWQorCQkJCU5vLiAzLCBXdS1DaHVhbiAzcmQgUm9hZCwKKwkJCQlXdS1LdSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlUYWlwZWkgSHNpZW4gIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDAtQjUgICAoaGV4KQkJREFUQUJJTElUWSBTT0ZUV0FSRSBTWVMuIElOQy4KKzAwMDBCNSAgICAgKGJhc2UgMTYpCQlEQVRBQklMSVRZIFNPRlRXQVJFIFNZUy4gSU5DLgorCQkJCU9ORSBQQUxNRVIgVEVSUkFDRQorCQkJCUNBUkxTVEFEVCBOSiAwNzA3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQjYgICAoaGV4KQkJTUlDUk8tTUFUSUMgUkVTRUFSQ0gKKzAwMDBCNiAgICAgKGJhc2UgMTYpCQlNSUNSTy1NQVRJQyBSRVNFQVJDSAorCQkJCUFNQkFDSFRFTkxBQU4gIDIxIEI1CisJCQkJQiAtIDMwMzAgIEhFVkVSTEVFCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtMDAtQjcgICAoaGV4KQkJRE9WRSBDT01QVVRFUiBDT1JQT1JBVElPTgorMDAwMEI3ICAgICAoYmFzZSAxNikJCURPVkUgQ09NUFVURVIgQ09SUE9SQVRJT04KKwkJCQkxMjAwIE5PUlRIIDIzUkQgU1RSRUVUCisJCQkJV0lMTUlOR1RPTiBOQyAyODQwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQjggICAoaGV4KQkJU0VJS09TSEEgQ08uLCBMVEQuCiswMDAwQjggICAgIChiYXNlIDE2KQkJU0VJS09TSEEgQ08uLCBMVEQuCisJCQkJU1lTVEVNIEVRVUlQTUVOVCBESVZJU0lPTgorCQkJCTQtMS0xIFRBSUhFSSBTVU1JREEtS1UgVE9LWU8gMTMwCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC1COSAgIChoZXgpCQlNQ0RPTk5FTEwgRE9VR0xBUyBDT01QVVRFUiBTWVMKKzAwMDBCOSAgICAgKGJhc2UgMTYpCQlNQ0RPTk5FTEwgRE9VR0xBUyBDT01QVVRFUiBTWVMKKwkJCQlESVYgTUNET05ORUxMIERPVUdMQVMgSU5GIFNZUworCQkJCUJPVU5EQVJZIFdBWSBIRU1FTCBIRU1QU1RFQUQgSEVSVFMKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtQkEgICAoaGV4KQkJU0lJRywgSU5DLgorMDAwMEJBICAgICAoYmFzZSAxNikJCVNJSUcsIElOQy4KKwkJCQk2MDc4IFNURVdBUlQgQVZFTlVFCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQkIgICAoaGV4KQkJVFJJLURBVEEKKzAwMDBCQiAgICAgKGJhc2UgMTYpCQlUUkktREFUQQorCQkJCTUwNSBFQVNUIE1JRERMRUZJRUxEIFJPQUQKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzLTQwODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUJDICAgKGhleCkJCVJvY2t3ZWxsIEF1dG9tYXRpb24KKzAwMDBCQyAgICAgKGJhc2UgMTYpCQlSb2Nrd2VsbCBBdXRvbWF0aW9uCisJCQkJMSBBbGxlbi1CcmFkbGV5IERyLgorCQkJCU1heWZpZWxkIEhlaWdodHMgT0ggNDQxMjQtNjExOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQkQgICAoaGV4KQkJTUlUU1VCSVNISSBDQUJMRSBDT01QQU5ZCiswMDAwQkQgICAgIChiYXNlIDE2KQkJTUlUU1VCSVNISSBDQUJMRSBDT01QQU5ZCisJCQkJNTIwIE1BRElTT04gQVZFTlVFCisJCQkJTkVXIFlPUksgTlkgMTAwMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUJFICAgKGhleCkJCVRIRSBOVEkgR1JPVVAKKzAwMDBCRSAgICAgKGJhc2UgMTYpCQlUSEUgTlRJIEdST1VQCisJCQkJNDcwMSBQQVRSSUNLIEhFTlJZIERSSVZFCisJCQkJU1VJVEUgMjQKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQkYgICAoaGV4KQkJU1lNTUVUUklDIENPTVBVVEVSIFNZU1RFTVMKKzAwMDBCRiAgICAgKGJhc2UgMTYpCQlTWU1NRVRSSUMgQ09NUFVURVIgU1lTVEVNUworCQkJCTE2MjAgT0FLTEFORCBST0FEICBTVUlURSBELTIwMAorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1DMCAgIChoZXgpCQlXRVNURVJOIERJR0lUQUwgQ09SUE9SQVRJT04KKzAwMDBDMCAgICAgKGJhc2UgMTYpCQlXRVNURVJOIERJR0lUQUwgQ09SUE9SQVRJT04KKwkJCQk4MTA1IElSVklORSBDRU5URVIgRFJJVkUKKwkJCQlJUlZJTkUgQ0EgOTI3MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUMxICAgKGhleCkJCU1hZGdlIEx0ZC4KKzAwMDBDMSAgICAgKGJhc2UgMTYpCQlNYWRnZSBMdGQuCisJCQkJTWFkZ2UgSG91c2UKKwkJCQlQcmlvcnMgV2F5CisJCQkJTWFpbmRlbmhlYWQgQmVya3NoaXJlIFNMNiAySFAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC1DMiAgIChoZXgpCQlJTkZPUk1BVElPTiBQUkVTRU5UQVRJT04gVEVDSC4KKzAwMDBDMiAgICAgKGJhc2UgMTYpCQlJTkZPUk1BVElPTiBQUkVTRU5UQVRJT04gVEVDSC4KKwkJCQkyMzgwMSBDQUxBQkFTQVMgUk9BRAorCQkJCVNVSVRFIDIwMTEKKwkJCQlDQUxBQkFTQVMgQ0EgOTEzMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUMzICAgKGhleCkJCUhBUlJJUyBDT1JQIENPTVBVVEVSIFNZUyBESVYKKzAwMDBDMyAgICAgKGJhc2UgMTYpCQlIQVJSSVMgQ09SUCBDT01QVVRFUiBTWVMgRElWCisJCQkJTS9TIDc1CisJCQkJMTAyNSBXLiBOQVNBIEJMVkQuTCAzMzMwOQorCQkJCU1FTEJPVVJORSBGTCAzMjkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQzQgICAoaGV4KQkJV0FURVJTIERJVi4gT0YgTUlMTElQT1JFCiswMDAwQzQgICAgIChiYXNlIDE2KQkJV0FURVJTIERJVi4gT0YgTUlMTElQT1JFCisJCQkJMzQgTUFQTEUgU1RSRUVUCisJCQkJTUlMRk9SRCBNQSAwMTc1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQzUgICAoaGV4KQkJRkFSQUxMT04gQ09NUFVUSU5HL05FVE9QSUEKKzAwMDBDNSAgICAgKGJhc2UgMTYpCQlGQVJBTExPTiBDT01QVVRJTkcvTkVUT1BJQQorCQkJCTI0NzAgTUFSSU5FUiBTUVVBUkUgTE9PUAorCQkJCUFMQU1FREEgQ0EgOTQ1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUM2ICAgKGhleCkJCUVPTiBTWVNURU1TCiswMDAwQzYgICAgIChiYXNlIDE2KQkJRU9OIFNZU1RFTVMKKwkJCQkxMDYwMSBTT1VUSCBERUFOWkEgQkxWRC4KKwkJCQlTVUlURSAzMDMKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUM3ICAgKGhleCkJCUFSSVggQ09SUE9SQVRJT04KKzAwMDBDNyAgICAgKGJhc2UgMTYpCQlBUklYIENPUlBPUkFUSU9OCisJCQkJRU5HSU5FRVJJTkcgTUFJTCBTVE9QCisJCQkJMTE1MiBNT1JTRSBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUM4ICAgKGhleCkJCUFMVE9TIENPTVBVVEVSIFNZU1RFTVMKKzAwMDBDOCAgICAgKGJhc2UgMTYpCQlBTFRPUyBDT01QVVRFUiBTWVNURU1TCisJCQkJMjY0MSBPUkNIQVJEIFBBUktXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtQzkgICAoaGV4KQkJRW11bGV4IENvcnBvcmF0aW9uCiswMDAwQzkgICAgIChiYXNlIDE2KQkJRW11bGV4IENvcnBvcmF0aW9uCisJCQkJMzMzMyBTdXNhbiBTdHJlZXQKKwkJCQlDb3N0YSBNZXNhIENBIDkyNjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1DQSAgIChoZXgpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCiswMDAwQ0EgICAgIChiYXNlIDE2KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlLCBTdWl0ZSAzMDAKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1DQiAgIChoZXgpCQlDT01QVS1TSEFDSyBFTEVDVFJPTklDIEdNQkgKKzAwMDBDQiAgICAgKGJhc2UgMTYpCQlDT01QVS1TSEFDSyBFTEVDVFJPTklDIEdNQkgKKwkJCQlSSU5HU1RSLiA1NiAtIDU4LCA1NDUwIE5FVVdJRUQKKwkJCQlXRVNUIEdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAwLUNDICAgKGhleCkJCURFTlNBTiBDTy4sIExURC4KKzAwMDBDQyAgICAgKGJhc2UgMTYpCQlERU5TQU4gQ08uLCBMVEQuCisJCQkJMS0yMy0xMSwgS0FNSVRBS0FJRE8KKwkJCQlTVUdJTkFNSS1LVSwgVE9LWU8gMTY4CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC1DRCAgIChoZXgpCQlBbGxpZWQgVGVsZXNpcyBMYWJzIEx0ZAorMDAwMENEICAgICAoYmFzZSAxNikJCUFsbGllZCBUZWxlc2lzIExhYnMgTHRkCisJCQkJMjcgTmF6YXJldGggQXZlbnVlCisJCQkJTWlkZGxldG9uIENocmlzdGNodXJjaCA4MDI0CisJCQkJTkVXIFpFQUxBTkQKKworMDAtMDAtQ0UgICAoaGV4KQkJTUVHQURBVEEgQ09SUC4KKzAwMDBDRSAgICAgKGJhc2UgMTYpCQlNRUdBREFUQSBDT1JQLgorCQkJCTM1IE9SVklMTEUgRFJJVkUKKwkJCQlCT0hFTUlBIE5ZIDExNzE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1DRiAgIChoZXgpCQlIQVlFUyBNSUNST0NPTVBVVEVSIFBST0RVQ1RTCiswMDAwQ0YgICAgIChiYXNlIDE2KQkJSEFZRVMgTUlDUk9DT01QVVRFUiBQUk9EVUNUUworCQkJCShDQU5BREEpIExURC4KKwkJCQkyOTUgUEhJTExJUCBTVFJFRVQgV0FURVJMT08sIE9OVEFSSU8gTjJMCisJCQkJQ0FOQURBCisJCQkJQ0FOQURBCisKKzAwLTAwLUQwICAgKGhleCkJCURFVkVMQ09OIEVMRUNUUk9OSUNTIExURC4KKzAwMDBEMCAgICAgKGJhc2UgMTYpCQlERVZFTENPTiBFTEVDVFJPTklDUyBMVEQuCisJCQkJODU2LTUxU1QgU1RSRUVUIEVBU1QKKwkJCQlTQVNLQVRPT04gU0FTS0FUQ0hFV0FOIFM3SyA1QzcKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDAtRDEgICAoaGV4KQkJQURBUFRFQyBJTkNPUlBPUkFURUQKKzAwMDBEMSAgICAgKGJhc2UgMTYpCQlBREFQVEVDIElOQ09SUE9SQVRFRAorCQkJCU0vUyAxODAKKwkJCQk2OTEgU09VVEggTUlMUElUQVMgQkxWRC4KKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRDIgICAoaGV4KQkJU0JFLCBJTkMuCiswMDAwRDIgICAgIChiYXNlIDE2KQkJU0JFLCBJTkMuCisJCQkJNDU1MCBOT1JUSCBDQU5ZT04gUk9BRAorCQkJCVNBTiBSQU1PTiBDQSA5NDU4MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRDMgICAoaGV4KQkJV0FORyBMQUJPUkFUT1JJRVMgSU5DLgorMDAwMEQzICAgICAoYmFzZSAxNikJCVdBTkcgTEFCT1JBVE9SSUVTIElOQy4KKwkJCQkKKworMDAtMDAtRDQgICAoaGV4KQkJUFVSRSBEQVRBIExURC4KKzAwMDBENCAgICAgKGJhc2UgMTYpCQlQVVJFIERBVEEgTFRELgorCQkJCTIwMCBXRVNUIEJFQVZFUiBDUkVFSyBST0FECisJCQkJUklDSE1PTkQgSElMTCAgT05UQVJJTworCQkJCUw0QiAxQjQgQ0FOQURBCisJCQkJQ0FOQURBCisKKzAwLTAwLUQ1ICAgKGhleCkJCU1JQ1JPR05PU0lTIElOVEVSTkFUSU9OQUwKKzAwMDBENSAgICAgKGJhc2UgMTYpCQlNSUNST0dOT1NJUyBJTlRFUk5BVElPTkFMCisJCQkJNjMgUVVFRU4gVklDVE9SSUEgU1RSRUVUCisJCQkJTE9ORE9OIEVDNE4gNFVECisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC1ENiAgIChoZXgpCQlQVU5DSCBMSU5FIEhPTERJTkcKKzAwMDBENiAgICAgKGJhc2UgMTYpCQlQVU5DSCBMSU5FIEhPTERJTkcKKwkJCQlQLk8uIEJPWCAzOTE3MDgKKwkJCQlCUkFNTEVZIDIwMTgKKwkJCQlTT1VUSCBBRlJJQ0EKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMDAtRDcgICAoaGV4KQkJREFSVE1PVVRIIENPTExFR0UKKzAwMDBENyAgICAgKGJhc2UgMTYpCQlEQVJUTU9VVEggQ09MTEVHRQorCQkJCUtJRVdJVCBDT01QVVRFUiBDRU5URVIKKwkJCQlIQU5PVkVSIE5IIDAzNzU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1EOCAgIChoZXgpCQlOT1ZFTEwsIElOQy4KKzAwMDBEOCAgICAgKGJhc2UgMTYpCQlOT1ZFTEwsIElOQy4KKwkJCQkxMjIgRUFTVCAxNzAwIFNPVVRIIE0vUzpFLTEyLTEKKwkJCQlQLk8uIEJPWCA1OTAwCisJCQkJUFJPVk8gVVQgODQ2MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUQ5ICAgKGhleCkJCU5JUFBPTiBURUxFR1JBUEggJiBURUxFUEhPTkUKKzAwMDBEOSAgICAgKGJhc2UgMTYpCQlOSVBQT04gVEVMRUdSQVBIICYgVEVMRVBIT05FCisJCQkJQ09SUE9SQVRJT04gKE5UVCkKKwkJCQlURUlTSElOIEJMREcuIDMtMSBPT1RFTUFDSEkgMiBDSE9NRSwgQ0hJCisJCQkJVE9LWU8gMTAwLTgxMTYgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC1EQSAgIChoZXgpCQlBVEVYCiswMDAwREEgICAgIChiYXNlIDE2KQkJQVRFWAorCQkJCTE1IENST1NCWSBEUklWRQorCQkJCUJFREZPUkQgTUEgMDE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLURCICAgKGhleCkJCUJyaXRpc2ggVGVsZWNvbW11bmljYXRpb25zIHBsYworMDAwMERCICAgICAoYmFzZSAxNikJCUJyaXRpc2ggVGVsZWNvbW11bmljYXRpb25zIHBsYworCQkJCTgxIE5ldyBHYXRlIFN0CisJCQkJTG9uZG9uLCBFQzFBIDdBSgorCQkJCUVuZ2xhbmQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC1EQyAgIChoZXgpCQlIQVlFUyBNSUNST0NPTVBVVEVSIFBST0RVQ1RTCiswMDAwREMgICAgIChiYXNlIDE2KQkJSEFZRVMgTUlDUk9DT01QVVRFUiBQUk9EVUNUUworCQkJCVAuTy4gQk9YIDEwNTIwMworCQkJCUFUTEFOVEEgR0EgMzAzNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUREICAgKGhleCkJCVRDTCBJTkNPUlBPUkFURUQKKzAwMDBERCAgICAgKGJhc2UgMTYpCQlUQ0wgSU5DT1JQT1JBVEVECisJCQkJNDE4MjkgQUxCUkFFIFNUUkVFVAorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLURFICAgKGhleCkJCUNFVElBCiswMDAwREUgICAgIChiYXNlIDE2KQkJQ0VUSUEKKwkJCQkxNTAgUlVFIEJFUlRIRUxPVAorCQkJCVpJIFRPVUxPTiBFU1QgODMwODggVE9VTE9OIENFREVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAwLURGICAgKGhleCkJCUJFTEwgJiBIT1dFTEwgUFVCIFNZUyBESVYKKzAwMDBERiAgICAgKGJhc2UgMTYpCQlCRUxMICYgSE9XRUxMIFBVQiBTWVMgRElWCisJCQkJT0xEIE1BTlNGSUVMRCBST0FECisJCQkJV09PU1RFUiBPSCA0NDY5MS05MDUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1FMCAgIChoZXgpCQlRVUFEUkFNIENPUlAuCiswMDAwRTAgICAgIChiYXNlIDE2KQkJUVVBRFJBTSBDT1JQLgorCQkJCU9ORSBRVUFEIFdBWQorCQkJCU5PUkNST1NTIEdBIDMwMDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1FMSAgIChoZXgpCQlHUklEIFNZU1RFTVMKKzAwMDBFMSAgICAgKGJhc2UgMTYpCQlHUklEIFNZU1RFTVMKKwkJCQk0NzIxMSBMQUtFVklFVyBCT1VMRVZBUkQKKwkJCQlQLk8uIEJPWCA1MDAzCisJCQkJRlJFTU9OVCBDQSA5NDUzNy01MDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1FMiAgIChoZXgpCQlBQ0VSIFRFQ0hOT0xPR0lFUyBDT1JQLgorMDAwMEUyICAgICAoYmFzZSAxNikJCUFDRVIgVEVDSE5PTE9HSUVTIENPUlAuCisJCQkJNDAxIENIQVJDT1QgQVZFLgorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1FMyAgIChoZXgpCQlJTlRFR1JBVEVEIE1JQ1JPIFBST0RVQ1RTIExURAorMDAwMEUzICAgICAoYmFzZSAxNikJCUlOVEVHUkFURUQgTUlDUk8gUFJPRFVDVFMgTFRECisJCQkJSU1QLCBOTy4gMSBJTkRVU1RSSUFMIEVTVEFURQorCQkJCUNPTlNFVFQsIENPIERVS0hBTQorCQkJCUVOR0xBTkQgRU5HTEFORCBESDg2VEoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC1FNCAgIChoZXgpCQlJTjIgR1JPVVBFIElOVEVSVEVDSE5JUVVFCiswMDAwRTQgICAgIChiYXNlIDE2KQkJSU4yIEdST1VQRSBJTlRFUlRFQ0hOSVFVRQorCQkJCUlOMiAtIEIuUC42MworCQkJCTc4MzczIFBMQUlTSVIgQ0VERVgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDAtRTUgICAoaGV4KQkJU0lHTUVYIExURC4KKzAwMDBFNSAgICAgKGJhc2UgMTYpCQlTSUdNRVggTFRELgorCQkJCVNJR01BIEhPVVNFCisJCQkJTk9SVEggSEVBVEggTEFORSBIT1JTSEFNLCBXRVNUIFNVU1NFWAorCQkJCVJIMTIgNFVaIEVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC1FNiAgIChoZXgpCQlBUFRPUiBQUk9EVUlUUyBERSBDT01NIElORFVTVAorMDAwMEU2ICAgICAoYmFzZSAxNikJCUFQVE9SIFBST0RVSVRTIERFIENPTU0gSU5EVVNUCisJCQkJNjEsIENIRU1JTiBEVSBWSUVVWC1DSEVORQorCQkJCVpJUlNULUJQIDE3NyAzODI0NCBNRVlMQU4gQ0VERVgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDAtRTcgICAoaGV4KQkJU1RBUiBHQVRFIFRFQ0hOT0xPR0lFUworMDAwMEU3ICAgICAoYmFzZSAxNikJCVNUQVIgR0FURSBURUNITk9MT0dJRVMKKwkJCQkyOTMwMCBBVVJPUkEgUk9BRAorCQkJCVNPTE9OIE9IIDQ0MTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1FOCAgIChoZXgpCQlBQ0NUT04gVEVDSE5PTE9HWSBDT1JQLgorMDAwMEU4ICAgICAoYmFzZSAxNikJCUFDQ1RPTiBURUNITk9MT0dZIENPUlAuCisJCQkJNDY3NTAgRlJFTU9OVCBCTFZELiAjMTA0CisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRTkgICAoaGV4KQkJSVNJQ0FELCBJTkMuCiswMDAwRTkgICAgIChiYXNlIDE2KQkJSVNJQ0FELCBJTkMuCisJCQkJMTkyMCBXRVNUIENPUlBPUkFURSBXQVkKKwkJCQlBTkFIRUlNIENBIDkyODAzLTYxMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUVBICAgKGhleCkJCVVQTk9EIEFCCiswMDAwRUEgICAgIChiYXNlIDE2KQkJVVBOT0QgQUIKKwkJCQlCT1ggMjMwNTEKKwkJCQlTLTc1MCAyMyBVUFBTQUxBCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLTAwLUVCICAgKGhleCkJCU1BVFNVU0hJVEEgQ09NTS4gSU5ELiBDTy4gTFRELgorMDAwMEVCICAgICAoYmFzZSAxNikJCU1BVFNVU0hJVEEgQ09NTS4gSU5ELiBDTy4gTFRELgorCQkJCTMtMSAgNC1DSE9NRQorCQkJCVRTVU5BU0hJTUEtSElHQVNISSBLT0hPS1UtS1UgIFlPS09IQU1BCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMC1FQyAgIChoZXgpCQlNSUNST1BST0NFU1MKKzAwMDBFQyAgICAgKGJhc2UgMTYpCQlNSUNST1BST0NFU1MKKwkJCQk5NyBCSVMsIFJVRSBERSBDT0xPTUJFUworCQkJCUIuUC4gODcgOTI0MDAgQ09VUkJFVk9JRQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMC1FRCAgIChoZXgpCQlBUFJJTAorMDAwMEVEICAgICAoYmFzZSAxNikJCUFQUklMCisJCQkJNjAsIFJVRSBERSBDQVJUQUxFCisJCQkJQlAgMzggMzgxNzAgU0VZU1NJTkVULVBBUklTRVQKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDAtRUUgICAoaGV4KQkJTkVUV09SSyBERVNJR05FUlMsIExURC4KKzAwMDBFRSAgICAgKGJhc2UgMTYpCQlORVRXT1JLIERFU0lHTkVSUywgTFRELgorCQkJCVVOSVQgMUEsIEhPUk5CRUFNIFBBUksKKwkJCQlIT09LU1RPTkUgUk9BRCBIQVJST0dBVEUsIE5PUlRIIFlPUktTSElSCisJCQkJVU5JVEVEIEtJTkdET00gSEcyIDhRVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLUVGICAgKGhleCkJCUtUSQorMDAwMEVGICAgICAoYmFzZSAxNikJCUtUSQorCQkJCTIxNTcgTydUT09MRSBBVkVOVUUKKwkJCQlTVUlURSBICisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUYwICAgKGhleCkJCVNBTVNVTkcgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCiswMDAwRjAgICAgIChiYXNlIDE2KQkJU0FNU1VORyBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQk0MTYsIE1BRVRBTi0zRE9ORywgUEFMREFMLUdVCisJCQkJU1VXT04gQ0lUWSwgS1lVTkdLSS1ETworCQkJCTQ0Mi03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDAtRjEgICAoaGV4KQkJTUFHTkEgQ09NUFVURVIgQ09SUE9SQVRJT04KKzAwMDBGMSAgICAgKGJhc2UgMTYpCQlNQUdOQSBDT01QVVRFUiBDT1JQT1JBVElPTgorCQkJCTIyIEtFRVdBWURJTiBEUklWRQorCQkJCVNBTEVNIE5IIDAzMDc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1GMiAgIChoZXgpCQlTUElERVIgQ09NTVVOSUNBVElPTlMKKzAwMDBGMiAgICAgKGJhc2UgMTYpCQlTUElERVIgQ09NTVVOSUNBVElPTlMKKwkJCQk3NDkxIEJSSUFSIFJPQUQKKwkJCQlNT05UUkVBTCwgIFFVRUJFQyBINFcgMUs0CisJCQkJQ0FOQURBCisJCQkJQ0FOQURBCisKKzAwLTAwLUYzICAgKGhleCkJCUdBTkRBTEYgREFUQSBMSU1JVEVECiswMDAwRjMgICAgIChiYXNlIDE2KQkJR0FOREFMRiBEQVRBIExJTUlURUQKKwkJCQkxMzAgQ09MT05OQURFIFJPQUQgU09VVEgKKwkJCQlORVBFQU4gIE9OVEFSSU8gIEsyRSA3TTQKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDAtRjQgICAoaGV4KQkJQWxsaWVkIFRlbGVzaXMKKzAwMDBGNCAgICAgKGJhc2UgMTYpCQlBbGxpZWQgVGVsZXNpcworCQkJCUNPUlBPUkFUSU9OCisJCQkJOTUwIEtJRkVSIFJPQUQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUY1ICAgKGhleCkJCURJQU1PTkQgU0FMRVMgTElNSVRFRAorMDAwMEY1ICAgICAoYmFzZSAxNikJCURJQU1PTkQgU0FMRVMgTElNSVRFRAorCQkJCTE3LCBDSEFSVEVSSE9VU0UgU1RSRUVUCisJCQkJTE9ORE9OLCBFQ0lOIDZSQQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDAtRjYgICAoaGV4KQkJQVBQTElFRCBNSUNST1NZU1RFTVMgQ09SUC4KKzAwMDBGNiAgICAgKGJhc2UgMTYpCQlBUFBMSUVEIE1JQ1JPU1lTVEVNUyBDT1JQLgorCQkJCTUwMjAgMTQ4IEFWRU5VRSwgTi5FLgorCQkJCVAuTy4gQk9YIDk3MDAyCisJCQkJUkVETU9ORCBXQSA5ODA3My05NzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1GNyAgIChoZXgpCQlZT1VUSCBLRUVQIEVOVEVSUFJJU0UgQ08gTFRECiswMDAwRjcgICAgIChiYXNlIDE2KQkJWU9VVEggS0VFUCBFTlRFUlBSSVNFIENPIExURAorCQkJCTMvRiBOTy4gNzEyIE1JTlRTVSBFLiBST0FECisJCQkJVEFJUEVJLCBUQUlXQU4KKwkJCQlST0MKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAwLUY4ICAgKGhleCkJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCiswMDAwRjggICAgIChiYXNlIDE2KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKwkJCQlMS0cgMS0yL0ExOQorCQkJCTU1MCBLSU5HIFNUUkVFVCBMSVRUTEVUT04gIE1BICAwMTQ2MC0xMjgKKwkJCQkwMTQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRjkgICAoaGV4KQkJUVVPVFJPTiBTWVNURU1TIElOQy4KKzAwMDBGOSAgICAgKGJhc2UgMTYpCQlRVU9UUk9OIFNZU1RFTVMgSU5DLgorCQkJCTU0NTQgQkVFVEhPVkVOIFNULgorCQkJCUxPUyBBTkdFTEVTIENBIDkwMDY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMC1GQSAgIChoZXgpCQlNSUNST1NBR0UgQ09NUFVURVIgU1lTVEVNUyBJTkMKKzAwMDBGQSAgICAgKGJhc2UgMTYpCQlNSUNST1NBR0UgQ09NUFVURVIgU1lTVEVNUyBJTkMKKwkJCQk2ODAgU09VVEggUk9DSyBCTFZECisJCQkJUkVOTyBORSA4OTUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDAtRkIgICAoaGV4KQkJUkVDSE5FUiBaVVIgS09NTVVOSUtBVElPTgorMDAwMEZCICAgICAoYmFzZSAxNikJCVJFQ0hORVIgWlVSIEtPTU1VTklLQVRJT04KKwkJCQlCSVRaRU5TVFIuIDExCisJCQkJRi01NDY0IEFTQkFDSAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAwLUZDICAgKGhleCkJCU1FSUtPCiswMDAwRkMgICAgIChiYXNlIDE2KQkJTUVJS08KKwkJCQk2NTAgQVpURUMgV0VTVAorCQkJCUJSSVNUT0wgQlMxMiA0U0QKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAwLUZEICAgKGhleCkJCUhJR0ggTEVWRUwgSEFSRFdBUkUKKzAwMDBGRCAgICAgKGJhc2UgMTYpCQlISUdIIExFVkVMIEhBUkRXQVJFCisJCQkJUE8gQk9YIDE3MCBXSU5ETUlMTCBST0FECisJCQkJSEVBRElOR1RPTiBPWEZPUkQgT1gzIDdCTgorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMC1GRSAgIChoZXgpCQlBTk5BUE9MSVMgTUlDUk8gU1lTVEVNUworMDAwMEZFICAgICAoYmFzZSAxNikJCUFOTkFQT0xJUyBNSUNSTyBTWVNURU1TCisJCQkJMTkwIEFETUlSQUwgQ09DSFJBTkUgRFJJVkUKKwkJCQlTVUlURSAxMzAKKwkJCQlBTk5BUE9MSVMgTUQgMjE0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAwLUZGICAgKGhleCkJCUNBTVRFQyBFTEVDVFJPTklDUyBMVEQuCiswMDAwRkYgICAgIChiYXNlIDE2KQkJQ0FNVEVDIEVMRUNUUk9OSUNTIExURC4KKwkJCQkxMDEgVkFVR0hBTiBXQVkKKwkJCQlMRUlDRVNURVIgTEUxIDRTQQorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS0wMCAgIChoZXgpCQlFUVVJUCdUUkFOUworMDAwMTAwICAgICAoYmFzZSAxNikJCUVRVUlQJ1RSQU5TCisJCQkJMzEgcnVlIFBhdWwgQ2V6YW5uZQorCQkJCUxBIFJPQ0hFVFRFICA3NzAwMAorCQkJCUZSQU5DRQorCiswMC0wMS0wMSAgIChoZXgpCQlQUklWQVRFCiswMDAxMDEgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTAxLTAyICAgKGhleCkJCTNDT00gQ09SUE9SQVRJT04KKzAwMDEwMiAgICAgKGJhc2UgMTYpCQkzQ09NIENPUlBPUkFUSU9OCisJCQkJNTQwMCBCYXlmcm9udCBQbGF6YSAgLSBNUzogNDIyMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0wMyAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMDAxMDMgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQmF5ZnJvbnQgUGxhemEgLSBNUzogNDIyMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0wNCAgIChoZXgpCQlEVklDTyBDby4sIEx0ZC4KKzAwMDEwNCAgICAgKGJhc2UgMTYpCQlEVklDTyBDby4sIEx0ZC4KKwkJCQlLb29rbWluIENhcmQgQi9EIDZGIDI2Ny0yCisJCQkJU2VvaHl1bi1Eb25nIEJvb25kYW5nLUd1CisJCQkJU3VuZ25hbS1zaSBLeXVuZ2tpLWRvIDQ2My0wNTAgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS0wNSAgIChoZXgpCQlCZWNraG9mZiBBdXRvbWF0aW9uIEdtYkgKKzAwMDEwNSAgICAgKGJhc2UgMTYpCQlCZWNraG9mZiBBdXRvbWF0aW9uIEdtYkgKKwkJCQlFaXNlcnN0ci4gNQorCQkJCTMzNDE1IFZlcmwgCisJCQkJR0VSTUFOWQorCiswMC0wMS0wNiAgIChoZXgpCQlUZXdzIERhdGVudGVjaG5payBHbWJICiswMDAxMDYgICAgIChiYXNlIDE2KQkJVGV3cyBEYXRlbnRlY2huaWsgR21iSAorCQkJCUFtIEJhaG5ob2YgNworCQkJCTI1NDY5IEhhbHN0ZW5iZWsgIAorCQkJCUdFUk1BTlkKKworMDAtMDEtMDcgICAoaGV4KQkJTGVpc2VyIEdtYkgKKzAwMDEwNyAgICAgKGJhc2UgMTYpCQlMZWlzZXIgR21iSAorCQkJCUlsbXN0ci4gNworCQkJCTg1NTc5IE5ldWJpYmVyZyAgCisJCQkJR0VSTUFOWQorCiswMC0wMS0wOCAgIChoZXgpCQlBVkxBQiBUZWNobm9sb2d5LCBJbmMuCiswMDAxMDggICAgIChiYXNlIDE2KQkJQVZMQUIgVGVjaG5vbG9neSwgSW5jLgorCQkJCTNGLTEsIE5vLiAxMzQsIFNlYy4gMworCQkJCUNodW5nIFNoaW4gUm9hZAorCQkJCUhzaW4gVGllbiwgVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTA5ICAgKGhleCkJCU5hZ2FubyBKYXBhbiBSYWRpbyBDby4sIEx0ZC4KKzAwMDEwOSAgICAgKGJhc2UgMTYpCQlOYWdhbm8gSmFwYW4gUmFkaW8gQ28uLCBMdGQuCisJCQkJU2hpbW9oaWdhbm8gMTE2MywgSW5hc2F0by1tYWNoaQorCQkJCU5hZ2FubyAzODEtMjI4OCAgCisJCQkJSkFQQU4KKworMDAtMDEtMEEgICAoaGV4KQkJQ0lTIFRFQ0hOT0xPR1kgSU5DLgorMDAwMTBBICAgICAoYmFzZSAxNikJCUNJUyBURUNITk9MT0dZIElOQy4KKwkJCQkxNkYsIE5vLiA3NSBIc2luIFRhaSBXdSBSb2FkCisJCQkJU2VjLiAxLCBIc2kgQ2hpaAorCQkJCVRhaXBlaSBIc2llbiAyMjEgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtMEIgICAoaGV4KQkJU3BhY2UgQ3liZXJMaW5rLCBJbmMuCiswMDAxMEIgICAgIChiYXNlIDE2KQkJU3BhY2UgQ3liZXJMaW5rLCBJbmMuCisJCQkJNXRoIEZsLiBHdXBweXVuZyBUb3duIEIKKwkJCQkyMDMgTm9uaG55dW4tRG9uZywgS2FuZ2hhbS1HdQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtMEMgICAoaGV4KQkJU3lzdGVtIFRhbGtzIEluYy4KKzAwMDEwQyAgICAgKGJhc2UgMTYpCQlTeXN0ZW0gVGFsa3MgSW5jLgorCQkJCTRGLCBQcmltZU5paG9uYmFzaGkgQmxkLgorCQkJCTMtMzUtNiwgTmlob25iYXNoaSBIYW1hLWNobworCQkJCUNodW8ta3UgVG9reW8gIAorCQkJCUpBUEFOCisKKzAwLTAxLTBEICAgKGhleCkJCUNPUkVDTywgSU5DLgorMDAwMTBEICAgICAoYmFzZSAxNikJCUNPUkVDTywgSU5DLgorCQkJCTY5NjkgUm91dGUgVHJhbnNjYW5hZGlhbm5lCisJCQkJVmlsbGUgU3QuIExhdXJlbnQgSDRUIDFWOCBRdWViZWMgCisJCQkJQ0FOQURBCisKKzAwLTAxLTBFICAgKGhleCkJCUJyaS1MaW5rIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorMDAwMTBFICAgICAoYmFzZSAxNikJCUJyaS1MaW5rIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCTJGLCBOby4gNjMsIENob3ctVHplIFN0cmVldAorCQkJCVRhaXBlaSAxMTQgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtMEYgICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCiswMDAxMEYgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJMTc0NSBUZWNobm9sb2d5IERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0xMCAgIChoZXgpCQlHb3RoYW0gTmV0d29ya3MKKzAwMDExMCAgICAgKGJhc2UgMTYpCQlHb3RoYW0gTmV0d29ya3MKKwkJCQkxNSBEaXNjb3ZlcnkgV2F5CisJCQkJQWN0b24gTUEgMDE3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTExICAgKGhleCkJCWlEaWdtIEluYy4KKzAwMDExMSAgICAgKGJhc2UgMTYpCQlpRGlnbSBJbmMuCisJCQkJN0ZMIFNpbmRvIEIvRCAxNjA0LTIyIFNlb2Noby1Eb25nCisJCQkJU2VvY2hvLUd1CisJCQkJU2VvdWwgMTM3LTA3MCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTEyICAgKGhleCkJCVNoYXJrIE11bHRpbWVkaWEgSW5jLgorMDAwMTEyICAgICAoYmFzZSAxNikJCVNoYXJrIE11bHRpbWVkaWEgSW5jLgorCQkJCTQ4ODkwIE1pbG1vbnQgRHJpdmUgICMxMDEtRAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTEzICAgKGhleCkJCU9MWU1QVVMgQ09SUE9SQVRJT04KKzAwMDExMyAgICAgKGJhc2UgMTYpCQlPTFlNUFVTIENPUlBPUkFUSU9OCisJCQkJMi0zIEt1Ym95YW1hLWNobywgSGFjaGlvamktc2hpCisJCQkJVG9reW8gMTkyLTg1MTIgIAorCQkJCUpBUEFOCisKKzAwLTAxLTE0ICAgKGhleCkJCUtBTkRBIFRTVVNISU4gS09HWU8gQ08uLCBMVEQuCiswMDAxMTQgICAgIChiYXNlIDE2KQkJS0FOREEgVFNVU0hJTiBLT0dZTyBDTy4sIExURC4KKwkJCQkyMy0yLCBOaXNoaS1Hb3RhbmRhIDItY2hvbWUsCisJCQkJU2hpbmFnYXdhLWt1CisJCQkJVG9reW8gMTQxLTg1MzMgIAorCQkJCUpBUEFOCisKKzAwLTAxLTE1ICAgKGhleCkJCUVYVFJBVEVDSCBDT1JQT1JBVElPTgorMDAwMTE1ICAgICAoYmFzZSAxNikJCUVYVFJBVEVDSCBDT1JQT1JBVElPTgorCQkJCTc2MCBUaG9ybnRvbiBTdC4sIFVuaXQgMgorCQkJCVBvc3QgRmFsbHMgSUQgODM4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTE2ICAgKGhleCkJCU5ldHNwZWN0IFRlY2hub2xvZ2llcywgSW5jLgorMDAwMTE2ICAgICAoYmFzZSAxNikJCU5ldHNwZWN0IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTM5NDUgRnJlZWRvbSBDaXJjbGUgLSBTdGUuICMzNjAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMTcgICAoaGV4KQkJQ0FOQUwgKworMDAwMTE3ICAgICAoYmFzZSAxNikJCUNBTkFMICsKKwkJCQkyMyBSdWUgTGVCbGFuYworCQkJCUxlIFBvbmFudCBDCisJCQkJNzU5MDYgUGFyaXMgQ2VkZXggMTUgIAorCQkJCUZSQU5DRQorCiswMC0wMS0xOCAgIChoZXgpCQlFWiBEaWdpdGFsIENvLiwgTHRkLgorMDAwMTE4ICAgICAoYmFzZSAxNikJCUVaIERpZ2l0YWwgQ28uLCBMdGQuCisJCQkJQml0dmlsbGUgQmxkZy4gUm9vbSA3MDMKKwkJCQkjMTMyNyBTZW9jaG8tRG9uZyBTZW9jaG8tR3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTE5ICAgKGhleCkJCVJUVW5ldCAoQXVzdHJhbGlhKQorMDAwMTE5ICAgICAoYmFzZSAxNikJCVJUVW5ldCAoQXVzdHJhbGlhKQorCQkJCTgvMy01IEdpbGRhIENvdXJ0CisJCQkJTXVsZ3JhdmUgVmljIDMxNzAKKwkJCQlBVVNUUkFMSUEKKworMDAtMDEtMUEgICAoaGV4KQkJRUVIIERhdGFMaW5rIEdtYkgKKzAwMDExQSAgICAgKGJhc2UgMTYpCQlFRUggRGF0YUxpbmsgR21iSAorCQkJCU5pZWRlcmJlcmdlciBTdHIuIDc1CisJCQkJRC01MzkwOSBadWVscGljaCAgCisJCQkJR0VSTUFOWQorCiswMC0wMS0xQiAgIChoZXgpCQlVbml6b25lIFRlY2hub2xvZ2llcywgSW5jLgorMDAwMTFCICAgICAoYmFzZSAxNikJCVVuaXpvbmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNUZsb29yIEhhZVN1bmcgQmxkZy4KKwkJCQk2Ny0yLVlhbmdKYWUtRG9uZworCQkJCVNlb0Noby1LdSBTZW91bCAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtMUMgICAoaGV4KQkJVW5pdmVyc2FsIFRhbGt3YXJlIENvcnBvcmF0aW9uCiswMDAxMUMgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIFRhbGt3YXJlIENvcnBvcmF0aW9uCisJCQkJMTAgU2Vjb25kIFN0LiBORQorCQkJCVN1aXRlICM0MDAKKwkJCQlNaW5uZWFwb2xpcyBNTiA1NTQxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMUQgICAoaGV4KQkJQ2VudGlsbGl1bSBDb21tdW5pY2F0aW9ucworMDAwMTFEICAgICAoYmFzZSAxNikJCUNlbnRpbGxpdW0gQ29tbXVuaWNhdGlvbnMKKwkJCQk0NzIxMSBMYWtldmlldyBCbHZkLgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTFFICAgKGhleCkJCVByZWNpZGlhIFRlY2hub2xvZ2llcywgSW5jLgorMDAwMTFFICAgICAoYmFzZSAxNikJCVByZWNpZGlhIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEwQSBIZWFyc3QgV2F5CisJCQkJS2FuYXRhIE9udGFyaW8gSzJNLTJDNCAKKwkJCQlDQU5BREEKKworMDAtMDEtMUYgICAoaGV4KQkJUkMgTmV0d29ya3MsIEluYy4KKzAwMDExRiAgICAgKGJhc2UgMTYpCQlSQyBOZXR3b3JrcywgSW5jLgorCQkJCTY3MjcgRmxhbmRlcnMgRHJpdmUgLSBTdGUuICMyMTIKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTIwICAgKGhleCkJCU9TQ0lMTE9RVUFSVFogUy5BLgorMDAwMTIwICAgICAoYmFzZSAxNikJCU9TQ0lMTE9RVUFSVFogUy5BLgorCQkJCVJ1ZSBEZXMgQnJldmFyZHMgMTYKKwkJCQkyMDAyIE5ldWNoYXRlbCAgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMDEtMjEgICAoaGV4KQkJV2F0Y2hndWFyZCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDEyMSAgICAgKGJhc2UgMTYpCQlXYXRjaGd1YXJkIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTYwNSBGaWZ0aCBBdmUuIFMKKwkJCQlTdWl0ZSA1MDAKKwkJCQlTZWF0dGxlIFdBIDk4MTA0LTM4OTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTIyICAgKGhleCkJCVRyZW5kIENvbW11bmljYXRpb25zLCBMdGQuCiswMDAxMjIgICAgIChiYXNlIDE2KQkJVHJlbmQgQ29tbXVuaWNhdGlvbnMsIEx0ZC4KKwkJCQlLbmF2ZXMgQmVlY2ggRXN0YXRlCisJCQkJTG91ZHdhdGVyLCBIaWdoIFd5Y29tYmUKKwkJCQlCdWNrcywgSFAxMCA5UVogRW5nbGFuZCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS0yMyAgIChoZXgpCQlESUdJVEFMIEVMRUNUUk9OSUNTIENPUlAuCiswMDAxMjMgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFTEVDVFJPTklDUyBDT1JQLgorCQkJCTgtMi01MiBOYW5rbyBIaWdhc2hpLCBTdW1pbm9lLWt1CisJCQkJT3Nha2EsIDU1OS0wMDMxICAKKwkJCQlKQVBBTgorCiswMC0wMS0yNCAgIChoZXgpCQlBY2VyIEluY29ycG9yYXRlZAorMDAwMTI0ICAgICAoYmFzZSAxNikJCUFjZXIgSW5jb3Jwb3JhdGVkCisJCQkJMjFGLCA4OCwgU2VjLjEKKwkJCQlIc2luIFRhaSBXdSBSb2FkLCBIc2ljaGloCisJCQkJVGFpcGVpIEhzaWVuIDIyMSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS0yNSAgIChoZXgpCQlZQUVTVSBNVVNFTiBDTy4sIExURC4KKzAwMDEyNSAgICAgKGJhc2UgMTYpCQlZQUVTVSBNVVNFTiBDTy4sIExURC4KKwkJCQk0LTgtOCwgTmFrYW1lZ3VybworCQkJCU1lZ3Vyby1rdSwKKwkJCQlUb2t5bywgMTUzLTg2NDQgIAorCQkJCUpBUEFOCisKKzAwLTAxLTI2ICAgKGhleCkJCVBBQyBMYWJzCiswMDAxMjYgICAgIChiYXNlIDE2KQkJUEFDIExhYnMKKwkJCQkzMDc5IEtpbGdvcmUgUm9hZAorCQkJCVJhbmNobyBDb3Jkb3ZhIENBIDk1NjcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0yNyAgIChoZXgpCQlPUEVOIE5ldHdvcmtzIFB0eSBMdGQKKzAwMDEyNyAgICAgKGJhc2UgMTYpCQlPUEVOIE5ldHdvcmtzIFB0eSBMdGQKKwkJCQlMZXZlbCA1LCAzNDIgRmxpbmRlcnMgU3RyZWV0CisJCQkJTWVsYm91cm5lICBWSUMgMzAwMAorCQkJCUFVU1RSQUxJQQorCiswMC0wMS0yOCAgIChoZXgpCQlFbmpveVdlYiwgSW5jLgorMDAwMTI4ICAgICAoYmFzZSAxNikJCUVuam95V2ViLCBJbmMuCisJCQkJMzAwMCBTY290dCBCbHZkLiAjMTA3CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTI5ICAgKGhleCkJCURGSSBJbmMuCiswMDAxMjkgICAgIChiYXNlIDE2KQkJREZJIEluYy4KKwkJCQkxMDAsIEh1YW4tSG8gU3RyZWV0CisJCQkJSHNpLUNoaWggQ2l0eSBUYWlwZWkgSHNpZW4gCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS0yQSAgIChoZXgpCQlUZWxlbWF0aWNhIFNpc3RlbXMgSW50ZWxpZ2VudGUKKzAwMDEyQSAgICAgKGJhc2UgMTYpCQlUZWxlbWF0aWNhIFNpc3RlbXMgSW50ZWxpZ2VudGUKKwkJCQlSdWEgTWlndWVsIENhc2FncmFuZGUsIDIwMAorCQkJCVNhbyBQYXVsbyAgCisJCQkJQlJBWklMCisKKzAwLTAxLTJCICAgKGhleCkJCVRFTEVORVQgQ28uLCBMdGQuCiswMDAxMkIgICAgIChiYXNlIDE2KQkJVEVMRU5FVCBDby4sIEx0ZC4KKwkJCQkKKworMDAtMDEtMkMgICAoaGV4KQkJQXJhdm94IFRlY2hub2xvZ2llcywgSW5jLgorMDAwMTJDICAgICAoYmFzZSAxNikJCUFyYXZveCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxNjcyNSA0MHRoIFBsYWNlIE5vcnRoCisJCQkJUGx5bW91dGggTU4gNTU0NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTJEICAgKGhleCkJCUtvbW9kbyBUZWNobm9sb2d5CiswMDAxMkQgICAgIChiYXNlIDE2KQkJS29tb2RvIFRlY2hub2xvZ3kKKwkJCQkxNzAgS25vd2xlcyBEcml2ZQorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtMkUgICAoaGV4KQkJUEMgUGFydG5lciBMdGQuCiswMDAxMkUgICAgIChiYXNlIDE2KQkJUEMgUGFydG5lciBMdGQuCisJCQkJUm0gMTkwMS0xOTA4LCAxOS9GLCBTaGF0aW4gR2FsbGVyaWEKKwkJCQkxOC0yNCBTaGFuICBNZWkgU3RyZWV0LCBGbyBUYW4gU2hhdGluLCBICisJCQkJQ0hJTkEKKwkJCQlDSElOQQorCiswMC0wMS0yRiAgIChoZXgpCQlUd2luaGVhZCBJbnRlcm5hdGlvbmFsIENvcnAKKzAwMDEyRiAgICAgKGJhc2UgMTYpCQlUd2luaGVhZCBJbnRlcm5hdGlvbmFsIENvcnAKKwkJCQkyRkwsIDIsIExhbmUgMjM1LCBCYW8tQ2hpYW8gUm9hZAorCQkJCUhzaW4tVGllbgorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS0zMCAgIChoZXgpCQlFeHRyZW1lIE5ldHdvcmtzCiswMDAxMzAgICAgIChiYXNlIDE2KQkJRXh0cmVtZSBOZXR3b3JrcworCQkJCTM1ODUgTW9ucm9lIFN0cmVldAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS0zMSAgIChoZXgpCQlCb3NjaCBTZWN1cml0eSBTeXN0ZW1zLCBJbmMuCiswMDAxMzEgICAgIChiYXNlIDE2KQkJQm9zY2ggU2VjdXJpdHkgU3lzdGVtcywgSW5jLgorCQkJCTEzMCBQZXJpbnRvbiBQYXJrd2F5CisJCQkJRmFpcnBvcnQgTlkgMTQ0NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTMyICAgKGhleCkJCURyYW5ldHogLSBCTUkKKzAwMDEzMiAgICAgKGJhc2UgMTYpCQlEcmFuZXR6IC0gQk1JCisJCQkJMTAwMCBOZXcgRHVyaGFtIFJvYWQKKwkJCQlFZGlzb24gTkogMDg4MTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTMzICAgKGhleCkJCUtZT1dBIEVsZWN0cm9uaWMgSW5zdHJ1bWVudHMgQworMDAwMTMzICAgICAoYmFzZSAxNikJCUtZT1dBIEVsZWN0cm9uaWMgSW5zdHJ1bWVudHMgQworCQkJCTMtNS0xLCBDeW9mdWdhb2thCisJCQkJQ3lvZnUgVG9reW8gCisJCQkJSkFQQU4KKworMDAtMDEtMzQgICAoaGV4KQkJU2VsZWN0cm9uIFN5c3RlbXMgQUcKKzAwMDEzNCAgICAgKGJhc2UgMTYpCQlTZWxlY3Ryb24gU3lzdGVtcyBBRworCQkJCUJlcm5zdHJlYXNzZSA3MAorCQkJCUNILTMyNTAgTHlzcworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTAxLTM1ICAgKGhleCkJCUtEQyBDb3JwLgorMDAwMTM1ICAgICAoYmFzZSAxNikJCUtEQyBDb3JwLgorCQkJCTIwMC0xMSBBbllhbmcgNyBkb25nCisJCQkJTWFuQW4tR3UgQW5ZYW5lLVNpIEt5dW5nZ2ktZG8KKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS0zNiAgIChoZXgpCQlDeWJlclRBTiBUZWNobm9sb2d5LCBJbmMuCiswMDAxMzYgICAgIChiYXNlIDE2KQkJQ3liZXJUQU4gVGVjaG5vbG9neSwgSW5jLgorCQkJCTYyNiwgQmxkZy41MywgMTk1LTU2IFNlYy40CisJCQkJQ2h1bmcgSHNpbmcgUmQgQ2h1dHVuZywgSHNpbmNodQorCQkJCVRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTM3ICAgKGhleCkJCUlUIEZhcm0gQ29ycG9yYXRpb24KKzAwMDEzNyAgICAgKGJhc2UgMTYpCQlJVCBGYXJtIENvcnBvcmF0aW9uCisJCQkJQXNhc2hpc2VpbWVpIEZ1Y2h1IEJsZGcuIDExRgorCQkJCTEtMTQtMSBGdWNodS1jaG8sIEZ1Y2h1LXNoaSBUb2t5bworCQkJCTE4My0wMDU1IEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtMzggICAoaGV4KQkJWEFWaSBUZWNobm9sb2dpZXMgQ29ycC4KKzAwMDEzOCAgICAgKGJhc2UgMTYpCQlYQVZpIFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCTlGLCBOby4gMTI5LCBIc2luZyBUZSBSZCwKKwkJCQlTYW5jaHVuZyBDaXR5ICBUYWlwZWkgSHNpZW4KKwkJCQkyNDEgVEFJV0FOIDI0MSBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS0zOSAgIChoZXgpCQlQb2ludCBNdWx0aW1lZGlhIFN5c3RlbXMKKzAwMDEzOSAgICAgKGJhc2UgMTYpCQlQb2ludCBNdWx0aW1lZGlhIFN5c3RlbXMKKwkJCQk0UmEgNTA3LCBTaGlod2EgSW5kdXN0cmlhbCBDb21wbGV4CisJCQkJNjY5LTggU3VuZ2tvZy1Eb25nLCBBbnNhbi1DaXR5LCBLeXVuZ2dpLQorCQkJCUtvcmVhIDQyNS0xMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtM0EgICAoaGV4KQkJU0hFTENBRCBDT01NVU5JQ0FUSU9OUywgTFRELgorMDAwMTNBICAgICAoYmFzZSAxNikJCVNIRUxDQUQgQ09NTVVOSUNBVElPTlMsIExURC4KKwkJCQlQLk8uIEJveCA4NTEzCisJCQkJTmV3IEluZHVzdHJpYWwgWm9uZSBOZXRhbnlhIDQyNTA0CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTAxLTNCICAgKGhleCkJCUJOQSBTWVNURU1TCiswMDAxM0IgICAgIChiYXNlIDE2KQkJQk5BIFNZU1RFTVMKKwkJCQkxNjM3IFMuIE1haW4gU3RyZWV0CisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTNDICAgKGhleCkJCVRJVyBTWVNURU1TCiswMDAxM0MgICAgIChiYXNlIDE2KQkJVElXIFNZU1RFTVMKKwkJCQkyMjExIExhd3NvbiBMYW5lCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTNEICAgKGhleCkJCVJpc2NTdGF0aW9uIEx0ZC4KKzAwMDEzRCAgICAgKGJhc2UgMTYpCQlSaXNjU3RhdGlvbiBMdGQuCisJCQkJMTY4IEVsbGlvdHQgU3RyZWV0CisJCQkJVHlsZGVzbGV5IE0yOSA4MDUKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAxLTNFICAgKGhleCkJCUFzY29tIFRhdGVjbyBBQgorMDAwMTNFICAgICAoYmFzZSAxNikJCUFzY29tIFRhdGVjbyBBQgorCQkJCUJveCA4NzgzCisJCQkJNDAyNzYgR290ZWJvcmcKKwkJCQlTV0VERU4KKworMDAtMDEtM0YgICAoaGV4KQkJTmVpZ2hib3IgV29ybGQgQ28uLCBMdGQuCiswMDAxM0YgICAgIChiYXNlIDE2KQkJTmVpZ2hib3IgV29ybGQgQ28uLCBMdGQuCisJCQkJMTE0QSBZRVJDLCAxMzQsIFNoaW5jaG9uX2RvbmcKKwkJCQlTZW9kYWVtdW5fa3UgU2VvdWwKKwkJCQkxMjAtNzQ5IDEyMC03NDkgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtNDAgICAoaGV4KQkJU2VuZHRlayBDb3Jwb3JhdGlvbgorMDAwMTQwICAgICAoYmFzZSAxNikJCVNlbmR0ZWsgQ29ycG9yYXRpb24KKwkJCQkxMkYtMywgMzMzLCBTZWMuMQorCQkJCUt1YW5nLUZ1IFJvYWQgSHNpbmNodQorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtNDEgICAoaGV4KQkJQ0FCTEUgUFJJTlQKKzAwMDE0MSAgICAgKGJhc2UgMTYpCQlDQUJMRSBQUklOVAorCQkJCUpvemVmIENhcmR5bnN0cmFhdCAxNgorCQkJCUIgIC0gOTQyMCBFcnBlLU1lcmUKKwkJCQlCRUxHSVVNCisJCQkJQkVMR0lVTQorCiswMC0wMS00MiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAxNDIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZSAtIFNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTQzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDE0MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlIC0gU0pBLTIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNDQgICAoaGV4KQkJRU1DIENvcnBvcmF0aW9uCiswMDAxNDQgICAgIChiYXNlIDE2KQkJRU1DIENvcnBvcmF0aW9uCisJCQkJMjI4IFNvdXRoIFN0LgorCQkJCUhvcGtpbnRvbiBNQSAwMTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNDUgICAoaGV4KQkJV0lOU1lTVEVNUywgSU5DLgorMDAwMTQ1ICAgICAoYmFzZSAxNikJCVdJTlNZU1RFTVMsIElOQy4KKwkJCQk3MTUgU3RhZGl1bSBEcml2ZQorCQkJCUFybGluZ3RvbiBUWCA3NjAxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNDYgICAoaGV4KQkJVGVzY28gQ29udHJvbHMsIEluYy4KKzAwMDE0NiAgICAgKGJhc2UgMTYpCQlUZXNjbyBDb250cm9scywgSW5jLgorCQkJCVAuTy4gQm94IDIzOTAxMgorCQkJCVNhY3JhbWVudG8gQ0EgOTU4MjMtOTAxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNDcgICAoaGV4KQkJWmhvbmUgVGVjaG5vbG9naWVzCiswMDAxNDcgICAgIChiYXNlIDE2KQkJWmhvbmUgVGVjaG5vbG9naWVzCisJCQkJNzAwMSBPYWtwb3J0IFN0cmVldAorCQkJCU9ha2xhbmQgQ0EgOTQ2MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTQ4ICAgKGhleCkJCVgtdHJhV2ViIEluYy4KKzAwMDE0OCAgICAgKGJhc2UgMTYpCQlYLXRyYVdlYiBJbmMuCisJCQkJNjc1MCBXZXN0IDkzcmQgU3RyZWV0IC0gU3RlLiAjMjEwCisJCQkJT3ZlcmxhbmQgUGFyayBLUyA2NjIxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNDkgICAoaGV4KQkJVC5ELlQuIFRyYW5zZmVyIERhdGEgVGVzdCBHbWJICiswMDAxNDkgICAgIChiYXNlIDE2KQkJVC5ELlQuIFRyYW5zZmVyIERhdGEgVGVzdCBHbWJICisJCQkJU2llbWVuc3N0cmFzc2UgMTgKKwkJCQk4NDA1MSBFc3NlbmJhY2gKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMS00QSAgIChoZXgpCQlTb255IENvcnBvcmF0aW9uCiswMDAxNEEgICAgIChiYXNlIDE2KQkJU29ueSBDb3Jwb3JhdGlvbgorCQkJCUdvdGVueWFtYSBUZWMgNS0xLTIKKwkJCQlLaXRhc2hpbmFnYXdhLAorCQkJCVRva3lvIFNoaW5hZ2F3YS1rdSAxNDEtMDAwMQorCQkJCUpBUEFOCisKKzAwLTAxLTRCICAgKGhleCkJCUVubm92YXRlIE5ldHdvcmtzLCBJbmMuCiswMDAxNEIgICAgIChiYXNlIDE2KQkJRW5ub3ZhdGUgTmV0d29ya3MsIEluYy4KKwkJCQk2MCBDb2RtYW4gSGlsbCBSb2FkCisJCQkJQm94Ym9yb3VnaCBNQSAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNEMgICAoaGV4KQkJQmVya2VsZXkgUHJvY2VzcyBDb250cm9sCiswMDAxNEMgICAgIChiYXNlIDE2KQkJQmVya2VsZXkgUHJvY2VzcyBDb250cm9sCisJCQkJNDEyNCBMYWtlc2lkZSBEcgorCQkJCVJpY2htb25kIENBIDk0ODA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS00RCAgIChoZXgpCQlTaGluIEtpbiBFbnRlcnByaXNlcyBDby4sIEx0ZAorMDAwMTREICAgICAoYmFzZSAxNikJCVNoaW4gS2luIEVudGVycHJpc2VzIENvLiwgTHRkCisJCQkJNywgRlUgSHNpbmcgU3QuIFR1ZSBDaGVuZyBJbmQuCisJCQkJRGlzdC4gVGFpcGVpCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTRFICAgKGhleCkJCVdJTiBFbnRlcnByaXNlcywgSW5jLgorMDAwMTRFICAgICAoYmFzZSAxNikJCVdJTiBFbnRlcnByaXNlcywgSW5jLgorCQkJCTMwMCBXaWxsb3cgU3RyZWV0IFNvdXRoCisJCQkJTm9ydGggQW5kb3ZlciBNQSAwMTg0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNEYgICAoaGV4KQkJQURUUkFOIElOQworMDAwMTRGICAgICAoYmFzZSAxNikJCUFEVFJBTiBJTkMKKwkJCQk5MDEgRXhwbG9yZXIgQmx2ZC4KKwkJCQlIdW50c3ZpbGxlIEFMIDM1ODA2LTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTUwICAgKGhleCkJCUdJTEFUIENPTU1VTklDQVRJT05TLCBMVEQuCiswMDAxNTAgICAgIChiYXNlIDE2KQkJR0lMQVQgQ09NTVVOSUNBVElPTlMsIExURC4KKwkJCQkyMS9EIFllZ2lhIEthcGF5aW0gU3RyZWV0CisJCQkJUGV0YWNoLVRpa3ZhIDQ5MTMwCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTAxLTUxICAgKGhleCkJCUVuc2VtYmxlIENvbW11bmljYXRpb25zCiswMDAxNTEgICAgIChiYXNlIDE2KQkJRW5zZW1ibGUgQ29tbXVuaWNhdGlvbnMKKwkJCQk2MjU2IEdyZWVubWFuIERyaXZlIC0gU3RlLiAjNDAwCisJCQkJU2FuIERpZWdvIENBIDkyMTIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS01MiAgIChoZXgpCQlDSFJPTUFURUsgSU5DLgorMDAwMTUyICAgICAoYmFzZSAxNikJCUNIUk9NQVRFSyBJTkMuCisJCQkJNi0xMCwgTWl5YXpha2kgMi1DaG9tZQorCQkJCU1peWFtYWUtS3UsIEthd2FzYWtpLXNoaSBLYW5hZ2F3YSwgMjE2LTAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLTUzICAgKGhleCkJCUFSQ0hURUsgVEVMRUNPTSBDT1JQT1JBVElPTgorMDAwMTUzICAgICAoYmFzZSAxNikJCUFSQ0hURUsgVEVMRUNPTSBDT1JQT1JBVElPTgorCQkJCTRGLCBOby45IExhbmUgMTMwLCBNaW4tQ2h5dWFuIFJkLgorCQkJCUhzaW4tVGllbiBUYWlwZWkKKwkJCQkyMzEgVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS01NCAgIChoZXgpCQlHM00gQ29ycG9yYXRpb24KKzAwMDE1NCAgICAgKGJhc2UgMTYpCQlHM00gQ29ycG9yYXRpb24KKwkJCQk0MzIwIFN0ZXZlbnMgQ3JlZWsgQmx2ZC4gLSBTdGUuICMyNzUKKwkJCQlTYW4gSm9zZSBDQSA5NTEyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNTUgICAoaGV4KQkJUHJvbWlzZSBUZWNobm9sb2d5LCBJbmMuCiswMDAxNTUgICAgIChiYXNlIDE2KQkJUHJvbWlzZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJNEYsIDEsIFByb3NwZXJpdHkgMXN0IFJvYWQKKwkJCQlTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyayBIc2luLUNodQorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtNTYgICAoaGV4KQkJRklSRVdJUkVESVJFQ1QuQ09NLCBJTkMuCiswMDAxNTYgICAgIChiYXNlIDE2KQkJRklSRVdJUkVESVJFQ1QuQ09NLCBJTkMuCisJCQkJNDEzMiBTcGljZXdvb2QgU3ByaW5ncyBSZCAtICNJLTQKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTU3ICAgKGhleCkJCVNZU1dBVkUgQ08uLCBMVEQKKzAwMDE1NyAgICAgKGJhc2UgMTYpCQlTWVNXQVZFIENPLiwgTFRECisJCQkJRG9uZ2hvIEIvRCA1RiwgMjIxLTIKKwkJCQlOb25oeXVuLURvbmcsIEthbmduYW0tR3UgU2VvdWwKKwkJCQlLT1JFQSAxMzUtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTU4ICAgKGhleCkJCUVsZWN0cm8gSW5kdXN0cmllcy9HYXVnZSBUZWNoCiswMDAxNTggICAgIChiYXNlIDE2KQkJRWxlY3RybyBJbmR1c3RyaWVzL0dhdWdlIFRlY2gKKwkJCQkxODAwIFNoYW1lcyBEcml2ZQorCQkJCVdlc3RidXJ5IE5ZIDExNTkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS01OSAgIChoZXgpCQlTMSBDb3Jwb3JhdGlvbgorMDAwMTU5ICAgICAoYmFzZSAxNikJCVMxIENvcnBvcmF0aW9uCisJCQkJUiZEIENlbnRlciwgUzEgQmxkZy4KKwkJCQk1OS04LCBOb25oeXVuLURvbmcgS2FuZ25hbS1LdSBTZW91bAorCQkJCUtPUkVBIDEzNS0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtNUEgICAoaGV4KQkJRGlnaXRhbCBWaWRlbyBCcm9hZGNhc3RpbmcKKzAwMDE1QSAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFZpZGVvIEJyb2FkY2FzdGluZworCQkJCURWQiwgJSBFdXJvcGVhbiBCcm9hZGNhc3RpbmcgVW5pb24KKwkJCQkxN0EgQW5jaWVubmUgUm91dGUgQ0gtMTIxOCBHcmFuZCBTYWNvbm5lCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wMS01QiAgIChoZXgpCQlJVEFMVEVMIFMucC5BL1JGLVVQLUkKKzAwMDE1QiAgICAgKGJhc2UgMTYpCQlJVEFMVEVMIFMucC5BL1JGLVVQLUkKKwkJCQkyMDAxOSBDYXN0LlNldHRpbW8gTS5zZSAoTUkpCisJCQkJSVRBTFkKKwkJCQlJVEFMWQorCiswMC0wMS01QyAgIChoZXgpCQlDQURBTlQgSU5DLgorMDAwMTVDICAgICAoYmFzZSAxNikJCUNBREFOVCBJTkMuCisJCQkJNDM0MyBDb21tZXJjZSBDb3VydCAtIFN0ZS4gIzIwNworCQkJCUxpc2xlIElMIDYwNTMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS01RCAgIChoZXgpCQlPcmFjbGUgQ29ycG9yYXRpb24KKzAwMDE1RCAgICAgKGJhc2UgMTYpCQlPcmFjbGUgQ29ycG9yYXRpb24KKwkJCQkxNyBOZXR3b3JrIENpcmNsZQorCQkJCUJ1aWxkaW5nIDE3LCBVTVBLMTctMTMxCisJCQkJTWVubG8gUGFyayBDQSA5NTAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNUUgICAoaGV4KQkJQkVTVCBURUNITk9MT0dZIENPLiwgTFRELgorMDAwMTVFICAgICAoYmFzZSAxNikJCUJFU1QgVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQk3RiwgSGFlc3VuZyBCL0QKKwkJCQkxMTUtMTIgTm9uaHl1bi1kb25nIEthbmduYW0tS3UgU2VvdWwsIDEzCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtNUYgICAoaGV4KQkJRElHSVRBTCBERVNJR04gR21iSAorMDAwMTVGICAgICAoYmFzZSAxNikJCURJR0lUQUwgREVTSUdOIEdtYkgKKwkJCQlBbHQtTW9hYml0IDk2YQorCQkJCUJlcmxpbiBELTEwNTU5CisJCQkJR0VSTUFOWQorCiswMC0wMS02MCAgIChoZXgpCQlFTE1FWCBDby4sIExURC4KKzAwMDE2MCAgICAgKGJhc2UgMTYpCQlFTE1FWCBDby4sIExURC4KKwkJCQkxNi0zMCBLaW1hY2hpCisJCQkJQW9iYWt1IFNlbmRhaS1TaGkgTWl5YWdpLUtlbgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtNjEgICAoaGV4KQkJTWV0YSBNYWNoaW5lIFRlY2hub2xvZ3kKKzAwMDE2MSAgICAgKGJhc2UgMTYpCQlNZXRhIE1hY2hpbmUgVGVjaG5vbG9neQorCQkJCTQwMCBTaWx2ZXIgQ2VkYXIgQ291cnQgLSBzdGUuICMyMjAKKwkJCQlDaGFwZWwgSGlsbCBOQyAyNzUxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNjIgICAoaGV4KQkJQ3lnbmV0IFRlY2hub2xvZ2llcywgSW5jLgorMDAwMTYyICAgICAoYmFzZSAxNikJCUN5Z25ldCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxNDExIExlTWF5IERyaXZlICMzMDEKKwkJCQlDYXJyb2xsdG9uIFRYIDc1MDA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS02MyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAxNjMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZSAtIFNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTY0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDE2NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlIC0gU0pBLTIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNjUgICAoaGV4KQkJQWlyU3dpdGNoIENvcnBvcmF0aW9uCiswMDAxNjUgICAgIChiYXNlIDE2KQkJQWlyU3dpdGNoIENvcnBvcmF0aW9uCisJCQkJMzdFYXN0IDIwMFNvdXRoCisJCQkJU3ByaW5ndmlsbGUgVVQgODQ2NjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTY2ICAgKGhleCkJCVRDIEdST1VQIEEvUworMDAwMTY2ICAgICAoYmFzZSAxNikJCVRDIEdST1VQIEEvUworCQkJCVNpbmRhbHN2ZWogMzQKKwkJCQlSaXNza292ICBESy04MjQwCisJCQkJREVOTUFSSworCiswMC0wMS02NyAgIChoZXgpCQlISU9LSSBFLkUuIENPUlBPUkFUSU9OCiswMDAxNjcgICAgIChiYXNlIDE2KQkJSElPS0kgRS5FLiBDT1JQT1JBVElPTgorCQkJCTgxIEtvaXp1bWksIFVlZGEsIE5hZ2FubworCQkJCTM4Ni0xMTkyIDM4Ni0xMTkyIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtNjggICAoaGV4KQkJVklUQU5BIENPUlBPUkFUSU9OCiswMDAxNjggICAgIChiYXNlIDE2KQkJVklUQU5BIENPUlBPUkFUSU9OCisJCQkJMjUwMCBEb24gUmVpZCBEcml2ZQorCQkJCU90dGF3YSwgT250YXJpbworCQkJCUsxSCAxRTEgSzFIIDFFMSBDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDEtNjkgICAoaGV4KQkJQ2VsZXN0aXggTmV0d29ya3MgUHRlIEx0ZC4KKzAwMDE2OSAgICAgKGJhc2UgMTYpCQlDZWxlc3RpeCBOZXR3b3JrcyBQdGUgTHRkLgorCQkJCTE4IFRhbm5lcnkgTGFuZSAjMDUtMDMKKwkJCQlMaWFuIFRvbmcgQnVpbGRpbmcKKwkJCQlTSU5HQVBPUkUgMzQ3NzgwCisJCQkJU0lOR0FQT1JFCisKKzAwLTAxLTZBICAgKGhleCkJCUFMSVRFQworMDAwMTZBICAgICAoYmFzZSAxNikJCUFMSVRFQworCQkJCUxhdmFsIFRlY2hub3BvbGUgQi5QLiAxMDIKKwkJCQk1MzAwMSBMQVZBTCBDZWRleAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMS02QiAgIChoZXgpCQlMaWdodENoaXAsIEluYy4KKzAwMDE2QiAgICAgKGJhc2UgMTYpCQlMaWdodENoaXAsIEluYy4KKwkJCQk1IEluZHVzdHJpYWwgV2F5CisJCQkJU2FsZW0gTkggMDMwNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTZDICAgKGhleCkJCUZPWENPTk4KKzAwMDE2QyAgICAgKGJhc2UgMTYpCQlGT1hDT05OCisJCQkJNjEyNSBQaHlsbGlzIERyaXZlCisJCQkJQ3lwcmVzcyBDQSA5MDYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNkQgICAoaGV4KQkJQ2FycmllckNvbW0gSW5jLgorMDAwMTZEICAgICAoYmFzZSAxNikJCUNhcnJpZXJDb21tIEluYy4KKwkJCQk1MzkgRW5jaW50YXMgQmx2ZC4KKwkJCQlFbmNpbnRhcyBDQSA5MjAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtNkUgICAoaGV4KQkJQ29ua2xpbiBDb3Jwb3JhdGlvbgorMDAwMTZFICAgICAoYmFzZSAxNikJCUNvbmtsaW4gQ29ycG9yYXRpb24KKwkJCQk2MTQxIENyb29rZWQgQ3JlZWsgUm9hZAorCQkJCU5vcmNyb3NzIEdBIDMwMDkyLTMxOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTZGICAgKGhleCkJCUlua2VsIENvcnAuCiswMDAxNkYgICAgIChiYXNlIDE2KQkJSW5rZWwgQ29ycC4KKwkJCQlDaGVvbmdDaGVvbi1Eb25nLCBCdVB5ZW9uZy1HdSwKKwkJCQlJbmNoZW9uLVNpICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtNzAgICAoaGV4KQkJRVNFIEVtYmVkZGVkIFN5c3RlbSBFbmdpbmVlcidnCiswMDAxNzAgICAgIChiYXNlIDE2KQkJRVNFIEVtYmVkZGVkIFN5c3RlbSBFbmdpbmVlcidnCisJCQkJTXVlaGxiYWNoc3RyLiAyMAorCQkJCTc4MzUxIEJvZG1hbi1MdWR3aWdzaGFmZW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMS03MSAgIChoZXgpCQlBbGxpZWQgRGF0YSBUZWNobm9sb2dpZXMKKzAwMDE3MSAgICAgKGJhc2UgMTYpCQlBbGxpZWQgRGF0YSBUZWNobm9sb2dpZXMKKwkJCQlQYXNjYWx3ZWcgMSwKKwkJCQkzMjA4IEtMIFNwaWprZW5pc3NlCisJCQkJVEhFIE5FVEhFUkxBTkRTCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDEtNzIgICAoaGV4KQkJVGVjaG5vTGFuZCBDby4sIExURC4KKzAwMDE3MiAgICAgKGJhc2UgMTYpCQlUZWNobm9MYW5kIENvLiwgTFRELgorCQkJCTMtMTctMTEgQWtlYm9uby1jaG8KKwkJCQlGdWt1eWFtYS1jaXR5IEhpcm9zaGltYSA3MjEtMDkyNQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtNzMgICAoaGV4KQkJQU1DQworMDAwMTczICAgICAoYmFzZSAxNikJCUFNQ0MKKwkJCQk2MjkwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS03NCAgIChoZXgpCQlDeWJlck9wdGljcyBDb3Jwb3JhdGlvbgorMDAwMTc0ICAgICAoYmFzZSAxNikJCUN5YmVyT3B0aWNzIENvcnBvcmF0aW9uCisJCQkJNTkwMCBHb2xkZW4gSGlsbHMgRHJpdmUKKwkJCQlHb2xkZW4gVmFsbGV5IE1OIDU1NDE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS03NSAgIChoZXgpCQlSYWRpYW50IENvbW11bmljYXRpb25zIENvcnAuCiswMDAxNzUgICAgIChiYXNlIDE2KQkJUmFkaWFudCBDb21tdW5pY2F0aW9ucyBDb3JwLgorCQkJCTUwMDEgSGFkbGV5IFJvYWQKKwkJCQlTb3V0aCBQbGFpbmZpZWxkIE5KIDA3MDgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS03NiAgIChoZXgpCQlPcmllbnQgU2lsdmVyIEVudGVycHJpc2VzCiswMDAxNzYgICAgIChiYXNlIDE2KQkJT3JpZW50IFNpbHZlciBFbnRlcnByaXNlcworCQkJCTg3NDAgV2hpdGUgT2FrIEF2ZW51ZQorCQkJCVJhbmNobyBDdWNhbW9uZ2EgQ0EgOTE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTc3ICAgKGhleCkJCUVEU0wKKzAwMDE3NyAgICAgKGJhc2UgMTYpCQlFRFNMCisJCQkJSGFiYXJ6ZWwgMSBzdAorCQkJCVJhbWF0IEFoYXlhbCBUZWwtQXZpdgorCQkJCUlTUkFFTCA2OTcxMAorCQkJCUlTUkFFTAorCiswMC0wMS03OCAgIChoZXgpCQlNQVJHSSBTeXN0ZW1zLCBJbmMuCiswMDAxNzggICAgIChiYXNlIDE2KQkJTUFSR0kgU3lzdGVtcywgSW5jLgorCQkJCTMxNTUgS2Vhcm5leSBTdHJlZXQuIC0gU3RlLiMyMDAKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS03OSAgIChoZXgpCQlXSVJFTEVTUyBURUNITk9MT0dZLCBJTkMuCiswMDAxNzkgICAgIChiYXNlIDE2KQkJV0lSRUxFU1MgVEVDSE5PTE9HWSwgSU5DLgorCQkJCUFuYW0gQmxkZy4gMkZsLCAxNTQtMTcKKwkJCQlTYW1zdW5nLURvbmcsIEthbmduYW0tS3UgU2VvdWwsIDEzNS0wOTAKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS03QSAgIChoZXgpCQlDaGVuZ2R1IE1haXB1IEVsZWN0cmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCiswMDAxN0EgICAgIChiYXNlIDE2KQkJQ2hlbmdkdSBNYWlwdSBFbGVjdHJpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCU5BTllJIEJVSUxESU5HLCBDT05TVUxBVEUgUkQuLAorCQkJCUNIRU5HRFUKKwkJCQlQLlIuIENISU5BCisJCQkJQ0hJTkEKKworMDAtMDEtN0IgICAoaGV4KQkJSGVpZGVsYmVyZ2VyIERydWNrbWFzY2hpbmVuIEFHCiswMDAxN0IgICAgIChiYXNlIDE2KQkJSGVpZGVsYmVyZ2VyIERydWNrbWFzY2hpbmVuIEFHCisJCQkJS3VyZnVlcnN0ZW5hbmxhZ2UgNTItNjAKKwkJCQk2OTExNSBIZWlkZWxiZXJnCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDEtN0MgICAoaGV4KQkJQUctRSBHbWJICiswMDAxN0MgICAgIChiYXNlIDE2KQkJQUctRSBHbWJICisJCQkJRGVubmV3YXJ0c3RyLiAyNworCQkJCTUyMDY4IEFhY2hlbgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLTdEICAgKGhleCkJCVRoZXJtb1F1ZXN0CiswMDAxN0QgICAgIChiYXNlIDE2KQkJVGhlcm1vUXVlc3QKKwkJCQkzNTUgUml2ZXIgT2FrcyBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTdFICAgKGhleCkJCUFEVEVLIFN5c3RlbSBTY2llbmNlIENvLiwgTHRkLgorMDAwMTdFICAgICAoYmFzZSAxNikJCUFEVEVLIFN5c3RlbSBTY2llbmNlIENvLiwgTHRkLgorCQkJCVlCUCBXZXN0IFRvd2VyCisJCQkJMTM0IEdvaGRvLWNobywKKwkJCQlIb2RvZ2F5YSBZb2tvaGFtYSAKKwkJCQlKQVBBTgorCiswMC0wMS03RiAgIChoZXgpCQlFeHBlcmllbmNlIE11c2ljIFByb2plY3QKKzAwMDE3RiAgICAgKGJhc2UgMTYpCQlFeHBlcmllbmNlIE11c2ljIFByb2plY3QKKwkJCQkxMTAgLTExMHRoIEF2ZW51ZSBORSAtIFN0ZS4gIzQwMAorCQkJCUJlbGxldnVlIFdBIDk4MDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS04MCAgIChoZXgpCQlBT3BlbiwgSW5jLgorMDAwMTgwICAgICAoYmFzZSAxNikJCUFPcGVuLCBJbmMuCisJCQkJNkYsIDg4LCBTZWMuMSwgSHNpbiBUYWkKKwkJCQlXdSBSb2FkLCBIc2ljaGloIFRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtODEgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDAxODEgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJMTEwMCBUZWNobm9sb2d5IFBhcmsgRHJpdmUKKwkJCQlCaWxsZXJpY2EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTgyICAgKGhleCkJCURJQ0EgVEVDSE5PTE9HSUVTIEFHCiswMDAxODIgICAgIChiYXNlIDE2KQkJRElDQSBURUNITk9MT0dJRVMgQUcKKwkJCQlSb3RoZXJzdHIsIDE5CisJCQkJRC0xMDI0NSBCZXJsaW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMS04MyAgIChoZXgpCQlBTklURSBURUxFQ09NUworMDAwMTgzICAgICAoYmFzZSAxNikJCUFOSVRFIFRFTEVDT01TCisJCQkJMTI3IEZsZWV0IFJvYWQsIEZsZWV0CisJCQkJSGFtcHNoaXJlLCBHVUIgOFBECisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS04NCAgIChoZXgpCQlTSUVCICYgTUVZRVIgQUcKKzAwMDE4NCAgICAgKGJhc2UgMTYpCQlTSUVCICYgTUVZRVIgQUcKKwkJCQlBdWYgZGVtIFNjaG1hYXJrYW1wIDIxCisJCQkJRC0yMTMzOSBMdW5lYnVyZworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLTg1ICAgKGhleCkJCUhpdGFjaGkgQWxva2EgTWVkaWNhbCwgTHRkLgorMDAwMTg1ICAgICAoYmFzZSAxNikJCUhpdGFjaGkgQWxva2EgTWVkaWNhbCwgTHRkLgorCQkJCTMtNy0xOSwgSW1haSBPbWUtY2l0eQorCQkJCVRva3lvCisJCQkJMTk4LTg1NzcgCisJCQkJSkFQQU4KKworMDAtMDEtODYgICAoaGV4KQkJVXdlIERpc2NoCiswMDAxODYgICAgIChiYXNlIDE2KQkJVXdlIERpc2NoCisJCQkJRWljaGVuaGFpbnN0cmFzc2UgMTQKKwkJCQk5MTIwNyBMYXVmIGEuZC4gUGVnbml0egorCQkJCUdFUk1BTlkKKworMDAtMDEtODcgICAoaGV4KQkJaTJTRSBHbWJICiswMDAxODcgICAgIChiYXNlIDE2KQkJaTJTRSBHbWJICisJCQkJUm9iZXJ0LVNjaHVtYW5uLVN0ci4gOAorCQkJCUxlaXB6aWcgIDA0MTA3CisJCQkJR0VSTUFOWQorCiswMC0wMS04OCAgIChoZXgpCQlMWENPIFRlY2hub2xvZ2llcyBhZworMDAwMTg4ICAgICAoYmFzZSAxNikJCUxYQ08gVGVjaG5vbG9naWVzIGFnCisJCQkJR2ltbWVyc3RyLiA2OQorCQkJCUQtMTAxMTcgQmVybGluCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDEtODkgICAoaGV4KQkJUmVmcmFjdGlvbiBUZWNobm9sb2d5LCBJbmMuCiswMDAxODkgICAgIChiYXNlIDE2KQkJUmVmcmFjdGlvbiBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjYyNiBMb21iYXJkeSBMYW5lIC0gU3RlLiAjMTA1CisJCQkJRGFsbGFzIFRYIDc1MjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS04QSAgIChoZXgpCQlST0kgQ09NUFVURVIgQUcKKzAwMDE4QSAgICAgKGJhc2UgMTYpCQlST0kgQ09NUFVURVIgQUcKKwkJCQlXZXJuZXItdm9uLVNpZW1lbnMtU3RyLiAxCisJCQkJOTM0MjYgUm9kaW5nCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDEtOEIgICAoaGV4KQkJTmV0TGlua3MgQ28uLCBMdGQuCiswMDAxOEIgICAgIChiYXNlIDE2KQkJTmV0TGlua3MgQ28uLCBMdGQuCisJCQkJM0YgRHNjb20gQmxkZy4sIDIzOC0zCisJCQkJUG9pLWRvbmcsIEthbmduYW0tS3UgU2VvdWwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS04QyAgIChoZXgpCQlNZWdhIFZpc2lvbgorMDAwMThDICAgICAoYmFzZSAxNikJCU1lZ2EgVmlzaW9uCisJCQkJNTc2NSBUaG9ybndvb2QgRHJpdmUKKwkJCQlHb2xldGEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLThEICAgKGhleCkJCUF1ZGVTaSBUZWNobm9sb2dpZXMKKzAwMDE4RCAgICAgKGJhc2UgMTYpCQlBdWRlU2kgVGVjaG5vbG9naWVzCisJCQkJU3VpdGUgMTgwLCA2ODE1CisJCQkJOHRoIFN0cmVldCBOLkUuIENhbGdhcnkKKwkJCQlBQiBDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDEtOEUgICAoaGV4KQkJTG9naXRlYyBDb3Jwb3JhdGlvbgorMDAwMThFICAgICAoYmFzZSAxNikJCUxvZ2l0ZWMgQ29ycG9yYXRpb24KKwkJCQk4MjY4IFJva3Vkb3VoYXJhLCBNaXN1enUKKwkJCQlJbmEsIE5hZ2FubworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtOEYgICAoaGV4KQkJS2VuZXRlYywgSW5jLgorMDAwMThGICAgICAoYmFzZSAxNikJCUtlbmV0ZWMsIEluYy4KKwkJCQkxMTUgSHVybGV5IFJvYWQKKwkJCQlPeGZvcmQgQ1QgMDY3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTkwICAgKGhleCkJCVNNSy1NCiswMDAxOTAgICAgIChiYXNlIDE2KQkJU01LLU0KKwkJCQkxMDU1IFRpZXJyYSBEZWwgUmV5CisJCQkJQ2h1bGEgVmlzdGEgQ0EgOTE5MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTkxICAgKGhleCkJCVNZUkVEIERhdGEgU3lzdGVtcworMDAwMTkxICAgICAoYmFzZSAxNikJCVNZUkVEIERhdGEgU3lzdGVtcworCQkJCTI3MiBMYW5lcyBNaWxsIFJvYWQKKwkJCQlIb3dlbGwgTkogMDc3MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTkyICAgKGhleCkJCVRleGFzIERpZ2l0YWwgU3lzdGVtcworMDAwMTkyICAgICAoYmFzZSAxNikJCVRleGFzIERpZ2l0YWwgU3lzdGVtcworCQkJCTQwMCBUZWNobm9sb2d5IFBhcmt3YXkKKwkJCQlDb2xsZWdlIFN0YXRpb24gVFggNzc4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTkzICAgKGhleCkJCUhhbmJ5dWwgVGVsZWNvbSBDby4sIEx0ZC4KKzAwMDE5MyAgICAgKGJhc2UgMTYpCQlIYW5ieXVsIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJNXRoIEZsLiBPa3NhbiBCbGRnLgorCQkJCTE1Ny0zMyBTYW1zdW5nLURvbmcgS2FuZ25hbS1rdSBTZW91bAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTk0ICAgKGhleCkJCUNhcGl0YWwgRXF1aXBtZW50IENvcnBvcmF0aW9uCiswMDAxOTQgICAgIChiYXNlIDE2KQkJQ2FwaXRhbCBFcXVpcG1lbnQgQ29ycG9yYXRpb24KKwkJCQk5MDAgTWlkZGxlc2V4IFR1cm5waWtlIC0gQmxkZy4gMgorCQkJCUJpbGxlcmljYSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtOTUgICAoaGV4KQkJU2VuYSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDE5NSAgICAgKGJhc2UgMTYpCQlTZW5hIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTExNi0yMyBTaGlubGltLWRvbmcKKwkJCQlPbnN1bmcgQmxkZy4gOHRoIEZsb29yIEt3YW5hay1rdSBTZW91bAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLTk2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDE5NiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlIC0gU0pBLTIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtOTcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMTk3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS05OCAgIChoZXgpCQlEYXJpbSBWaXNpb24KKzAwMDE5OCAgICAgKGJhc2UgMTYpCQlEYXJpbSBWaXNpb24KKwkJCQlUYWVqb24gRXhwbyBWZW50dXJlIFRvd24KKwkJCQkzLTEgRG9yeW9uZy1kb25nLCBZdXN1bmctZ3UgVGFlam9uCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtOTkgICAoaGV4KQkJSGVpU2VpIEVsZWN0cm9uaWNzCiswMDAxOTkgICAgIChiYXNlIDE2KQkJSGVpU2VpIEVsZWN0cm9uaWNzCisJCQkJNS83IEFsbGV5IDgsIExhbmUgNDUKKwkJCQlQb2FsdHNpbiBSb2FkIEhzaW50aWVuIENpdHkKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLTlBICAgKGhleCkJCUxFVU5JRyBHbWJICiswMDAxOUEgICAgIChiYXNlIDE2KQkJTEVVTklHIEdtYkgKKwkJCQlXaWxoZWxtLU9zdHdhbGQtU3RyLiAxNworCQkJCTUzNzIxIFNpZWdidXJnCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDEtOUIgICAoaGV4KQkJS3lvdG8gTWljcm9jb21wdXRlciBDby4sIEx0ZC4KKzAwMDE5QiAgICAgKGJhc2UgMTYpCQlLeW90byBNaWNyb2NvbXB1dGVyIENvLiwgTHRkLgorCQkJCTItMjcgSGFjaGlqb2dhb2thCisJCQkJTmFnYW9rYWt5by1jaXR5IEt5b3RvCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS05QyAgIChoZXgpCQlKRFMgVW5pcGhhc2UgSW5jLgorMDAwMTlDICAgICAoYmFzZSAxNikJCUpEUyBVbmlwaGFzZSBJbmMuCisJCQkJNTcwIFdlc3QgSHVudCBDbHViIFJvYWQKKwkJCQlOYXBlb24sIE9OIEsxUiA3VDcKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDEtOUQgICAoaGV4KQkJRS1Db250cm9sIFN5c3RlbXMsIEluYy4KKzAwMDE5RCAgICAgKGJhc2UgMTYpCQlFLUNvbnRyb2wgU3lzdGVtcywgSW5jLgorCQkJCTk0MjAgTHVybGluZSBBdmUuLCBVbml0ZQorCQkJCUNoYXRzd29ydGggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLTlFICAgKGhleCkJCUVTUyBUZWNobm9sb2d5LCBJbmMuCiswMDAxOUUgICAgIChiYXNlIDE2KQkJRVNTIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk0ODQwMSBGcmVtb250IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtOUYgICAoaGV4KQkJUmVhZHlOZXQKKzAwMDE5RiAgICAgKGJhc2UgMTYpCQlSZWFkeU5ldAorCQkJCTY5NTIgSGlnaCBUZWNoIERyaXZlCisJCQkJU3VpdGUgQgorCQkJCU1pZHZhbGUgVVQgODQwNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUEwICAgKGhleCkJCUluZmluaWxpbmsgQ29ycG9yYXRpb24KKzAwMDFBMCAgICAgKGJhc2UgMTYpCQlJbmZpbmlsaW5rIENvcnBvcmF0aW9uCisJCQkJMTc0MCBFLiBHYXJyeSBBdmUuIC0gU3RlLiAjMjA2CisJCQkJU2FudGEgQW5hIENBIDkyNzA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1BMSAgIChoZXgpCQlNYWctVGVrLCBJbmMuCiswMDAxQTEgICAgIChiYXNlIDE2KQkJTWFnLVRlaywgSW5jLgorCQkJCTIwNzI1IFNvdXRoIEFubmFsZWUgQXZlLgorCQkJCUNhcnNvbiBDQSA5MDc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQTIgICAoaGV4KQkJTG9naWNhbCBDby4sIEx0ZC4KKzAwMDFBMiAgICAgKGJhc2UgMTYpCQlMb2dpY2FsIENvLiwgTHRkLgorCQkJCTQ1OTggTXVyYWt1c2hpLWNobworCQkJCUhhbWFtYXRzdS1zaGksIFNoaXp1b2thLWtlbgorCQkJCTQzMS0xMjA3IEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtQTMgICAoaGV4KQkJR0VORVNZUyBMT0dJQywgSU5DLgorMDAwMUEzICAgICAoYmFzZSAxNikJCUdFTkVTWVMgTE9HSUMsIElOQy4KKwkJCQkxMEYsIE5vLiAxMSwgTG4uMy4sCisJCQkJVHNhbyBUaSBXZWksIFNoZW5rZW5nIFRhaXBlaQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtQTQgICAoaGV4KQkJTWljcm9saW5rIENvcnBvcmF0aW9uCiswMDAxQTQgICAgIChiYXNlIDE2KQkJTWljcm9saW5rIENvcnBvcmF0aW9uCisJCQkJMTExMTAgT2hpbyBBdmUuLCAtIFN0ZS4gIzEwOAorCQkJCUxvcyBBbmdlbGVzIENBIDkwMDM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1BNSAgIChoZXgpCQlOZXh0Y29tbSwgSW5jLgorMDAwMUE1ICAgICAoYmFzZSAxNikJCU5leHRjb21tLCBJbmMuCisJCQkJMTI0MTMgV2lsbG93cyBSb2FkIE5FIC0gU3RlLiAjMjEwCisJCQkJS2lya2xhbmQgV0EgOTgwMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUE2ICAgKGhleCkJCVNjaWVudGlmaWMtQXRsYW50YSBBcmNvZGFuIEEvUworMDAwMUE2ICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMtQXRsYW50YSBBcmNvZGFuIEEvUworCQkJCUF2Z3VzdGVuYm9yZyBMYW5kZXZlaiA3CisJCQkJREstNjQwMCBTb25kZXJib3JnCisJCQkJREVOTUFSSworCQkJCURFTk1BUksKKworMDAtMDEtQTcgICAoaGV4KQkJVU5FWCBURUNITk9MT0dZIENPUlBPUkFUSU9OCiswMDAxQTcgICAgIChiYXNlIDE2KQkJVU5FWCBURUNITk9MT0dZIENPUlBPUkFUSU9OCisJCQkJOEYtNSwgTk8uIDEzMCBTWkUgV0VJIFJPQUQKKwkJCQlIU0lOQ0hVCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLUE4ICAgKGhleCkJCVdlbGx0ZWNoIENvbXB1dGVyIENvLiwgTHRkLgorMDAwMUE4ICAgICAoYmFzZSAxNikJCVdlbGx0ZWNoIENvbXB1dGVyIENvLiwgTHRkLgorCQkJCTEzRi00LCBuby4gMTUwLCBKaWFuIFlpIFJvYWQKKwkJCQlDaHVuZy1IbyAyMzUsICBUYWlwZWkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtQTkgICAoaGV4KQkJQk1XIEFHCiswMDAxQTkgICAgIChiYXNlIDE2KQkJQk1XIEFHCisJCQkJQk1XIEFHIERlcHQuIEZaLTMyMAorCQkJCUtub3Jyc3RyLjExOQorCQkJCTgwNzg4IE11bmljaCAKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLUFBICAgKGhleCkJCUFpcnNwYW4gQ29tbXVuaWNhdGlvbnMsIEx0ZC4KKzAwMDFBQSAgICAgKGJhc2UgMTYpCQlBaXJzcGFuIENvbW11bmljYXRpb25zLCBMdGQuCisJCQkJQ2FtYnJpZGdlIEhvdXNlLCBPeGZvcmQgUmQuLAorCQkJCVV4YnJpZGdlLCBNaWRkbGVzZXggVUIxVU4sCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS1BQiAgIChoZXgpCQlNYWluIFN0cmVldCBOZXR3b3JrcworMDAwMUFCICAgICAoYmFzZSAxNikJCU1haW4gU3RyZWV0IE5ldHdvcmtzCisJCQkJNDAzMCBNb29ycGFyayBBdmUuCisJCQkJU3VpdGUgMjAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTctMTg0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQUMgICAoaGV4KQkJU2l0YXJhIE5ldHdvcmtzLCBJbmMuCiswMDAxQUMgICAgIChiYXNlIDE2KQkJU2l0YXJhIE5ldHdvcmtzLCBJbmMuCisJCQkJNjAgSGlja29yeSBEcml2ZQorCQkJCVdhbHRoYW0gTUEgMDI0NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUFEICAgKGhleCkJCUNvYWNoIE1hc3RlciBJbnRlcm5hdGlvbmFsICBkLmIuYS4gQ01JIFdvcmxkd2lkZSwgSW5jLgorMDAwMUFEICAgICAoYmFzZSAxNikJCUNvYWNoIE1hc3RlciBJbnRlcm5hdGlvbmFsICBkLmIuYS4gQ01JIFdvcmxkd2lkZSwgSW5jLgorCQkJCTYwMCBTdGV3YXJ0IFN0cmVldAorCQkJCVN1aXRlIDcwMAorCQkJCVNlYXR0bGUgV0EgOTgxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUFFICAgKGhleCkJCVRyZXggRW50ZXJwcmlzZXMKKzAwMDFBRSAgICAgKGJhc2UgMTYpCQlUcmV4IEVudGVycHJpc2VzCisJCQkJNTkwIExpcG9hIFBhcmt3YXkKKwkJCQlTdWl0ZSAyMjIKKwkJCQlLaWhlaSBISSA5Njc1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQUYgICAoaGV4KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCiswMDAxQUYgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCisJCQkJMjkwMCBTLiBEaWFibG8gV2F5CisJCQkJU3VpdGUgMTkwCisJCQkJVGVtcGUgQXJpem9uYSA4NTI4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQjAgICAoaGV4KQkJRnVsbHRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwMUIwICAgICAoYmFzZSAxNikJCUZ1bGx0ZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkzRiBOby4gOCwgTGFuZSAxMzAsIE1pbiBDaHVhbiBSZC4sIEhzaW50CisJCQkJQ2l0eSwgVGFpcGVpIEhzZWluIDIzMSwKKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS1CMSAgIChoZXgpCQlHZW5lcmFsIEJhbmR3aWR0aAorMDAwMUIxICAgICAoYmFzZSAxNikJCUdlbmVyYWwgQmFuZHdpZHRoCisJCQkJMTIzMDMtQiBUZWNobm9sb2d5IEJsdmQuCisJCQkJQXVzdGluIFRYIDc4NzI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1CMiAgIChoZXgpCQlEaWdpdGFsIFByb2Nlc3NpbmcgU3lzdGVtcywgSW5jLgorMDAwMUIyICAgICAoYmFzZSAxNikJCURpZ2l0YWwgUHJvY2Vzc2luZyBTeXN0ZW1zLCBJbmMuCisJCQkJNzAgVmFsbGV5d29vZCBEcml2ZQorCQkJCU1hcmtoYW0sIE9udGFyaW8gQ0FOQURBCisJCQkJTDNSIDRUNQorCQkJCUNBTkFEQQorCiswMC0wMS1CMyAgIChoZXgpCQlQcmVjaXNpb24gRWxlY3Ryb25pYyBNYW51ZmFjdHVyaW5nCiswMDAxQjMgICAgIChiYXNlIDE2KQkJUHJlY2lzaW9uIEVsZWN0cm9uaWMgTWFudWZhY3R1cmluZworCQkJCVAwMTg3LCBQLk8uIDUyNzk0OAorCQkJCU1pYW1pIEZMIDMzMTUyLTc5NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUI0ICAgKGhleCkJCVdheXBvcnQsIEluYy4KKzAwMDFCNCAgICAgKGJhc2UgMTYpCQlXYXlwb3J0LCBJbmMuCisJCQkJMTYwOSBTaG9hbCBDcmVlayBCbHZkLgorCQkJCVN1aXRlIDMwMQorCQkJCUF1c3RpbiBUWCA3ODcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQjUgICAoaGV4KQkJVHVyaW4gTmV0d29ya3MsIEluYy4KKzAwMDFCNSAgICAgKGJhc2UgMTYpCQlUdXJpbiBOZXR3b3JrcywgSW5jLgorCQkJCTE0MTUgTm9ydGggTWNEb3dlbGwgQmx2ZC4KKwkJCQlQZXRhbHVtYSBDQSA5NDk1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQjYgICAoaGV4KQkJU0FFSklOIFQmTSBDby4sIEx0ZC4KKzAwMDFCNiAgICAgKGJhc2UgMTYpCQlTQUVKSU4gVCZNIENvLiwgTHRkLgorCQkJCTJuZCBGbC4sIFNhZWppbiBCbGRnLiwgNjg5CisJCQkJSWx3b24tRG9uZywgS2FuZ25hbS1HdS4gU2VvdWwsIDEzNS0yMzAKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS1CNyAgIChoZXgpCQlDZW50b3MsIEluYy4KKzAwMDFCNyAgICAgKGJhc2UgMTYpCQlDZW50b3MsIEluYy4KKwkJCQk2Ri0xLCBOTy4gMTUsIExBTkUgMzYwCisJCQkJTkVJLUhVIFJELiwgU0VDVC4gMSwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAxLUI4ICAgKGhleCkJCU5ldHNlbnNpdHksIEluYy4KKzAwMDFCOCAgICAgKGJhc2UgMTYpCQlOZXRzZW5zaXR5LCBJbmMuCisJCQkJUE8gQm94IDEwNjAKKwkJCQlMYWtlIEZvcmVzdCBDQSA5MjYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQjkgICAoaGV4KQkJU0tGIENvbmRpdGlvbiBNb25pdG9yaW5nCiswMDAxQjkgICAgIChiYXNlIDE2KQkJU0tGIENvbmRpdGlvbiBNb25pdG9yaW5nCisJCQkJNDE0MSBSdWZmaW4gUm9hZAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQkEgICAoaGV4KQkJSUMtTmV0LCBJbmMuCiswMDAxQkEgICAgIChiYXNlIDE2KQkJSUMtTmV0LCBJbmMuCisJCQkJNSBGbC4gU2Vhc3VuZyBCbGRnLiwgMzExLTI3IE5vcnlhbmdqaW4tRAorCQkJCURvbmdqYWstR3UgU2VvdWwsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtQkIgICAoaGV4KQkJRnJlcXVlbnRpcworMDAwMUJCICAgICAoYmFzZSAxNikJCUZyZXF1ZW50aXMKKwkJCQlTUElUVEVMQlJFSVRFTkdBU1NFIDM0CisJCQkJQS0xMTIwIFZJRU5OQQorCQkJCUFVU1RSSUEKKwkJCQlBVVNUUklBCisKKzAwLTAxLUJDICAgKGhleCkJCUJyYWlucyBDb3Jwb3JhdGlvbgorMDAwMUJDICAgICAoYmFzZSAxNikJCUJyYWlucyBDb3Jwb3JhdGlvbgorCQkJCTItMjctOC00RmwgVEFNQUdBV0EKKwkJCQlTRVRBR0FZQS1LVSwgVE9LWU8gMTU4LTAwOTQKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLUJEICAgKGhleCkJCVBldGVyc29uIEVsZWN0cm8tTXVzaWNhbCBQcm9kdWN0cywgSW5jLgorMDAwMUJEICAgICAoYmFzZSAxNikJCVBldGVyc29uIEVsZWN0cm8tTXVzaWNhbCBQcm9kdWN0cywgSW5jLgorCQkJCTExNjAxIFMuIE1heWZpZWxkIEF2ZW51ZQorCQkJCUFsc2lwIElMIDYwODAzLTI0NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUJFICAgKGhleCkJCUdpZ2FsaW5rIENvLiwgTHRkLgorMDAwMUJFICAgICAoYmFzZSAxNikJCUdpZ2FsaW5rIENvLiwgTHRkLgorCQkJCTZ0aCBGL0wgRGlwbG9tYXRpYyBDZW50ZXIgMTM3Ni0xCisJCQkJU2VvY2hvLWRvbmcgU2VvY2hvLWt1IFNlb3VsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtQkYgICAoaGV4KQkJVGVsZWZvcmNlIENvLiwgTHRkLgorMDAwMUJGICAgICAoYmFzZSAxNikJCVRlbGVmb3JjZSBDby4sIEx0ZC4KKwkJCQk3MjEgeW9zaGlva2EtY2hvIGthbm9uamktY2l0eQorCQkJCUthZ2F3YS1wcmYuIDc2OC0wMDIxCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS1DMCAgIChoZXgpCQlDb21wdUxhYiwgTHRkLgorMDAwMUMwICAgICAoYmFzZSAxNikJCUNvbXB1TGFiLCBMdGQuCisJCQkJUC5PLiBCb3ggNjYKKwkJCQlOZXNoZXIgMzY3NzAKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDEtQzEgICAoaGV4KQkJVml0ZXNzZSBTZW1pY29uZHVjdG9yIENvcnBvcmF0aW9uCiswMDAxQzEgICAgIChiYXNlIDE2KQkJVml0ZXNzZSBTZW1pY29uZHVjdG9yIENvcnBvcmF0aW9uCisJCQkJSG9lcmthZXIgMTgKKwkJCQlESy0yNzMwIEhlcmxldgorCQkJCURFTk1BUksKKworMDAtMDEtQzIgICAoaGV4KQkJQVJLIFJlc2VhcmNoIENvcnAuCiswMDAxQzIgICAgIChiYXNlIDE2KQkJQVJLIFJlc2VhcmNoIENvcnAuCisJCQkJMTE5OCBTYXJhdG9nYSBBdmUuICMxMUQKKwkJCQlTYW4gSm9zZSBDQSA5NTEyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQzMgICAoaGV4KQkJQWNyb21hZywgSW5jLgorMDAwMUMzICAgICAoYmFzZSAxNikJCUFjcm9tYWcsIEluYy4KKwkJCQkzMDc2NSBTLiBXaXhvbSBSb2FkCisJCQkJV2l4b20gTUkgNDgzOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUM0ICAgKGhleCkJCU5lb1dhdmUsIEluYy4KKzAwMDFDNCAgICAgKGJhc2UgMTYpCQlOZW9XYXZlLCBJbmMuCisJCQkJMTB0aCBLUklIUyBCbGRnLiAxNTkxLTYKKwkJCQlLd2FuIFlhbmctRG9uZywgRG9uZyBBbi1HdSwgQW55b25nLVNpLCBLCisJCQkJU09VVEggS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtQzUgICAoaGV4KQkJU2ltcGxlciBOZXR3b3JrcworMDAwMUM1ICAgICAoYmFzZSAxNikJCVNpbXBsZXIgTmV0d29ya3MKKwkJCQk1NTUgRHIgRnJlZGVyaWNrIFBoaWxpcHMKKwkJCQlTdWl0ZSAyMTAgU3QuIExhdXJlbnQsIFFVRUJFQyBDQU5BREEKKwkJCQlINE0gMlg0CisJCQkJQ0FOQURBCisKKzAwLTAxLUM2ICAgKGhleCkJCVF1YXJyeSBUZWNobm9sb2dpZXMKKzAwMDFDNiAgICAgKGJhc2UgMTYpCQlRdWFycnkgVGVjaG5vbG9naWVzCisJCQkJOCBOZXcgRW5nbGFuZCBFeGVjdXRpdmUgUGFyaworCQkJCUJ1cmxpbmd0b24gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUM3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDFDNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1DOCAgIChoZXgpCQlUSE9NQVMgQ09OUkFEIENPUlAuCiswMDAxQzggICAgIChiYXNlIDE2KQkJVEhPTUFTIENPTlJBRCBDT1JQLgorCQkJCTE5MDgtUiBLUkFNRVIgTEFORQorCQkJCUFVU1RJTiBUWCA3ODc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQzggICAoaGV4KQkJQ09OUkFEIENPUlAuCiswMDAxQzggICAgIChiYXNlIDE2KQkJQ09OUkFEIENPUlAuCisJCQkJCisKKzAwLTAxLUM5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDFDOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUNBICAgKGhleCkJCUdlb2Nhc3QgTmV0d29yayBTeXN0ZW1zLCBJbmMuCiswMDAxQ0EgICAgIChiYXNlIDE2KQkJR2VvY2FzdCBOZXR3b3JrIFN5c3RlbXMsIEluYy4KKwkJCQkxOTAgSW5kZXBlbmRlbmNlIERyaXZlCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtQ0IgICAoaGV4KQkJRVZSCiswMDAxQ0IgICAgIChiYXNlIDE2KQkJRVZSCisJCQkJMTIgUmF1bCBXYWxsZW5iZXJnIFN0LgorCQkJCVRlbCBBdml2ICA2OTcxOQorCQkJCUlTUkFFTAorCiswMC0wMS1DQyAgIChoZXgpCQlKYXBhbiBUb3RhbCBEZXNpZ24gQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKzAwMDFDQyAgICAgKGJhc2UgMTYpCQlKYXBhbiBUb3RhbCBEZXNpZ24gQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKwkJCQlFbmVzdGEgU3VnaW5hbWloaWdhc2hpIEJ1aWxkLiwgM0YsCisJCQkJMy03LTEsIEFzYWdheWFtaW5hbWkgU3VnaW5hbWkta3UsIFRva3lvCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS1DRCAgIChoZXgpCQlBUnRlbQorMDAwMUNEICAgICAoYmFzZSAxNikJCUFSdGVtCisJCQkJT2xnYXN0cmFzc2UgMTUyCisJCQkJRC04OTA3MyBVTE0KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMS1DRSAgIChoZXgpCQlDdXN0b20gTWljcm8gUHJvZHVjdHMsIEx0ZC4KKzAwMDFDRSAgICAgKGJhc2UgMTYpCQlDdXN0b20gTWljcm8gUHJvZHVjdHMsIEx0ZC4KKwkJCQk0NTAgQmxhbmRmb3JkIFJvYWQKKwkJCQlIYW13b3J0aHkgUG9vbGUgRG9yc2V0IEJISUwgNUJOCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS1DRiAgIChoZXgpCQlBbHBoYSBEYXRhIFBhcmFsbGVsIFN5c3RlbXMsIEx0ZC4KKzAwMDFDRiAgICAgKGJhc2UgMTYpCQlBbHBoYSBEYXRhIFBhcmFsbGVsIFN5c3RlbXMsIEx0ZC4KKwkJCQk1OCBUaW1iZXIgQnVzaAorCQkJCUVkaW5idXJnaCBFSDYgNlFIIFNjb3RsYW5kCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS1EMCAgIChoZXgpCQlWaXRhbFBvaW50LCBJbmMuCiswMDAxRDAgICAgIChiYXNlIDE2KQkJVml0YWxQb2ludCwgSW5jLgorCQkJCTE1NzcwIEhvcHBlciBSb2FkCisJCQkJUGV5dG9uIENPIDgwODMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1EMSAgIChoZXgpCQlDb05ldCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMUQxICAgICAoYmFzZSAxNikJCUNvTmV0IENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMjUgTWF1Y2hseSwgIzMyMAorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRDIgICAoaGV4KQkJaW5YdHJvbiwgSW5jLiAKKzAwMDFEMiAgICAgKGJhc2UgMTYpCQlpblh0cm9uLCBJbmMuIAorCQkJCThGLCBOby41MiwgTWluUXVhbiBSb2FkLCBYaW5kaWFuIERpc3QuCisJCQkJTmV3IFRhaXBlaSBDaXR5ICAyMzE0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtRDMgICAoaGV4KQkJUEFYQ09NTSwgSW5jLgorMDAwMUQzICAgICAoYmFzZSAxNikJCVBBWENPTU0sIEluYy4KKwkJCQk3dGggRiBUaGUgQ29ycC4gQ2VudGVyCisJCQkJQ2h1bmduYW0gTmF0aW9uYWwgVW5pdmVyc2l0eSAyMjAgS3VuZy1EbworCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLUQ0ICAgKGhleCkJCUxlaXN1cmUgVGltZSwgSW5jLgorMDAwMUQ0ICAgICAoYmFzZSAxNikJCUxlaXN1cmUgVGltZSwgSW5jLgorCQkJCTQyNTggQ29tbXVuaWNhdGlvbnMgRHJpdmUKKwkJCQlOb3Jjcm9zcyBHQSAzMDA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRDUgICAoaGV4KQkJSEFFRE9ORyBJTkZPICYgQ09NTSBDTy4sIExURAorMDAwMUQ1ICAgICAoYmFzZSAxNikJCUhBRURPTkcgSU5GTyAmIENPTU0gQ08uLCBMVEQKKwkJCQkjODAxIFRoZSBDb3Jwb3JhdGlvbiBDZW50ZXIgZm9yIFVuaXZlcnNpCisJCQkJMjIwIEt1bmctRG9uZywgWXVzZW9uZy1HdSwKKwkJCQlUYWVqZW9uIFJlcHVibGljIG9mIEtvcmVhIDMwNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMS1ENiAgIChoZXgpCQltYW5yb2xhbmQgQUcKKzAwMDFENiAgICAgKGJhc2UgMTYpCQltYW5yb2xhbmQgQUcKKwkJCQlTdGFkdGJhY2hzdHJhc3NlIDEKKwkJCQk4NjIxOSBBdWdzYnVyZworCQkJCUdFUk1BTlkKKworMDAtMDEtRDcgICAoaGV4KQkJRjUgTmV0d29ya3MsIEluYy4KKzAwMDFENyAgICAgKGJhc2UgMTYpCQlGNSBOZXR3b3JrcywgSW5jLgorCQkJCTEzMjIgTi4gV2hpdG1hbiBMYW5lCisJCQkJTGliZXJ0eSBMYWtlIFdBIDk5MDE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1EOCAgIChoZXgpCQlUZWx0cm9uaWNzLCBJbmMuCiswMDAxRDggICAgIChiYXNlIDE2KQkJVGVsdHJvbmljcywgSW5jLgorCQkJCTQxMjUgS2VsbGVyIFNwcmluZ3MgUm9hZAorCQkJCVN1aXRlIDE2NgorCQkJCUFkZGlzb24gVFggMjUwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUQ5ICAgKGhleCkJCVNpZ21hLCBJbmMuCiswMDAxRDkgICAgIChiYXNlIDE2KQkJU2lnbWEsIEluYy4KKwkJCQkzMi0zIFNlaWp5byA5IENob21lCisJCQkJU2V0YWdheWEta3UgVG9reW8gMTU3LTAwNjYKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAxLURBICAgKGhleCkJCVdJTkNPTU0gQ29ycG9yYXRpb24KKzAwMDFEQSAgICAgKGJhc2UgMTYpCQlXSU5DT01NIENvcnBvcmF0aW9uCisJCQkJMkYsIE5vLiAzLCBQcm9zcGVyaXR5IFJvYWQgMSwKKwkJCQlTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaywgSHNpbmNodSwKKwkJCQlIc2luY2h1IFRhaXdhbgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtREIgICAoaGV4KQkJRnJlZWNvbSBUZWNobm9sb2dpZXMgR21iSAorMDAwMURCICAgICAoYmFzZSAxNikJCUZyZWVjb20gVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlPYmVudHJhdXRzdHIuIDcyCisJCQkJRC0xMDk2MywgQmVybGluLAorCQkJCUdFUk1BTlkKKworMDAtMDEtREMgICAoaGV4KQkJQWN0aXZldGVsY28KKzAwMDFEQyAgICAgKGJhc2UgMTYpCQlBY3RpdmV0ZWxjbworCQkJCTQzMjIyIENocmlzdHkgU3RyZWV0CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtREQgICAoaGV4KQkJQXZhaWwgTmV0d29ya3MKKzAwMDFERCAgICAgKGJhc2UgMTYpCQlBdmFpbCBOZXR3b3JrcworCQkJCTMwNSBFLiBFaXNlbmhvd2VyIFBhcmt3YXkKKwkJCQlBbm4gQXJib3IgTUkgNDgxMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLURFICAgKGhleCkJCVRyYW5nbyBTeXN0ZW1zLCBJbmMuCiswMDAxREUgICAgIChiYXNlIDE2KQkJVHJhbmdvIFN5c3RlbXMsIEluYy4KKwkJCQk5OTM5IFYvQSBQYXNhcgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtREYgICAoaGV4KQkJSVNETiBDb21tdW5pY2F0aW9ucywgTHRkLgorMDAwMURGICAgICAoYmFzZSAxNikJCUlTRE4gQ29tbXVuaWNhdGlvbnMsIEx0ZC4KKwkJCQlUaGUgU3RhYmxlIEJsb2NrLCBSb25hbnMKKwkJCQlDaGF2ZXkgRG93biBSb2FkLCBXaW5rZmllbGQgUm93IEJlcmtzaGlyCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAxLUUwICAgKGhleCkJCUZhc3QgU3lzdGVtcywgSW5jLgorMDAwMUUwICAgICAoYmFzZSAxNikJCUZhc3QgU3lzdGVtcywgSW5jLgorCQkJCTg3LTkgWWFuZy1KYWUsIFNlby1DaG8sCisJCQkJU2VvdWwsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDEtRTEgICAoaGV4KQkJS2lucG8gRWxlY3Ryb25pY3MsIEluYy4KKzAwMDFFMSAgICAgKGJhc2UgMTYpCQlLaW5wbyBFbGVjdHJvbmljcywgSW5jLgorCQkJCVRTQUMgVEkgV0VJLCBXQU4gU0hVTiBUU1VOLAorCQkJCVNIRU4gS0VORyBIU0lBTkcsIFRBSVBFSSBIU0lFTiBUQUlXQU4gKDIKKwkJCQlDSElOQQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtRTIgICAoaGV4KQkJQW5kbyBFbGVjdHJpYyBDb3Jwb3JhdGlvbgorMDAwMUUyICAgICAoYmFzZSAxNikJCUFuZG8gRWxlY3RyaWMgQ29ycG9yYXRpb24KKwkJCQkxOS03LCBLYW1hdGEgNC1DaHJvbWUsIE90YS1rdQorCQkJCVRva3lvLCAxNDQtMDA1MgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtRTMgICAoaGV4KQkJU2llbWVucyBBRworMDAwMUUzICAgICAoYmFzZSAxNikJCVNpZW1lbnMgQUcKKwkJCQlTY2hsYXZlbmhvcnN0IDg4CisJCQkJNDYzOTUgQm9jaG9sdAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAxLUU0ICAgKGhleCkJCVNpdGVyYSwgSW5jLgorMDAwMUU0ICAgICAoYmFzZSAxNikJCVNpdGVyYSwgSW5jLgorCQkJCTE4MjAgTGVmdGhhbmQgQ2lyY2xlCisJCQkJTG9uZ21vbnQgQ08gODA1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUU1ICAgKGhleCkJCVN1cGVybmV0LCBJbmMuCiswMDAxRTUgICAgIChiYXNlIDE2KQkJU3VwZXJuZXQsIEluYy4KKwkJCQkxMzUtMDgwIERhZW1lb25nIEJsZGcuCisJCQkJMm5kIEZsb29yLCA2NTAtMiwgWWVva3NhbS1kb25nIEthbmduYW0taworCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAxLUU2ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDAxRTYgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMTAwMCBXb2xmZSBSb2FkLCBNYWlsc3RvcCA0MkxFCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1FNyAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAwMUU3ICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMTEwMDAgV29sZmUgUm9hZCwgTWFpbHN0b3AgNDJMRQorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRTggICAoaGV4KQkJRm9yY2UxMCBOZXR3b3JrcywgSW5jLgorMDAwMUU4ICAgICAoYmFzZSAxNikJCUZvcmNlMTAgTmV0d29ya3MsIEluYy4KKwkJCQkxNDQwIE1jQ2FydGh5IEJsdmQuCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUU5ICAgKGhleCkJCUxpdHRvbiBNYXJpbmUgU3lzdGVtcyBCLlYuCiswMDAxRTkgICAgIChiYXNlIDE2KQkJTGl0dG9uIE1hcmluZSBTeXN0ZW1zIEIuVi4KKwkJCQkxMTggQnVybGluZ3RvbiBSb2FkCisJCQkJTmV3IE1hbGRlbiwgU3VycmV5CisJCQkJRU5HTEFORCBLVDMgNE5SCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDEtRUEgICAoaGV4KQkJQ2lyaWxpdW0gQ29ycC4KKzAwMDFFQSAgICAgKGJhc2UgMTYpCQlDaXJpbGl1bSBDb3JwLgorCQkJCTE2MTUgUy4gNTJuZCBTdHJlZXQKKwkJCQlUZW1wZSBBWiA4NTI4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRUIgICAoaGV4KQkJQy1DT00gQ29ycG9yYXRpb24KKzAwMDFFQiAgICAgKGJhc2UgMTYpCQlDLUNPTSBDb3Jwb3JhdGlvbgorCQkJCTNGLCBOby4gNDgsIFBhcmsgQXZlLiBJSSBTQklQCisJCQkJSHNpbmNodSBUYWl3YW4gSHNpbmNodSBUYWl3YW4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMS1FQyAgIChoZXgpCQlFcmljc3NvbiBHcm91cAorMDAwMUVDICAgICAoYmFzZSAxNikJCUVyaWNzc29uIEdyb3VwCisJCQkJVGVsZWZvbmFrdGllYm9sYWdldAorCQkJCUxNIEVyaWNzc29uIENvcnAuIDEyNiAyNSBTVE9DS0hPTE0KKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtMDEtRUQgICAoaGV4KQkJU0VUQSBDb3JwLgorMDAwMUVEICAgICAoYmFzZSAxNikJCVNFVEEgQ29ycC4KKwkJCQlBcmlha2UgRnJvbnRpZXIgQmxkZy4gQgorCQkJCUFyaWFrZSwgS291dG91IEt1IFRva3lvLAorCQkJCUpBUEFOIDEzNS0wMDYzCisJCQkJSkFQQU4KKworMDAtMDEtRUUgICAoaGV4KQkJQ29tdHJvbCBFdXJvcGUsIEx0ZC4KKzAwMDFFRSAgICAgKGJhc2UgMTYpCQlDb210cm9sIEV1cm9wZSwgTHRkLgorCQkJCVRoZSBDb3VydHlhcmQgU3R1ZGlvCisJCQkJR3JhbmdlIEZhcm0sIFN0YXRpb24gUm9hZCBMYXVudG9uIE94b24gTworCQkJCVUuSy4KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMS1FRiAgIChoZXgpCQlDYW10ZWwgVGVjaG5vbG9neSBDb3JwLgorMDAwMUVGICAgICAoYmFzZSAxNikJCUNhbXRlbCBUZWNobm9sb2d5IENvcnAuCisJCQkJTm8uIDIsIFd1LUt1bmcgNSBSZC4sIFd1LUt1CisJCQkJSW5kLiBQYXJrLCBIc2luY2h1YW5nLCBUYWlwZWkgU2hpZW4KKwkJCQlUYWl3YW4gVGFpd2FuIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtRjAgICAoaGV4KQkJVHJpZGl1bSwgSW5jLgorMDAwMUYwICAgICAoYmFzZSAxNikJCVRyaWRpdW0sIEluYy4KKwkJCQkzOTUxIFdlc3RlcnJlIFBhcmt3YXkKKwkJCQlTdWl0ZSAzNTAKKwkJCQlSaWNobW9uZCBWQSAyMzIzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRjEgICAoaGV4KQkJSW5ub3ZhdGl2ZSBDb25jZXB0cywgSW5jLgorMDAwMUYxICAgICAoYmFzZSAxNikJCUlubm92YXRpdmUgQ29uY2VwdHMsIEluYy4KKwkJCQk4MjAwIEdyZWVuc2Jvcm8gRHJpdmUKKwkJCQlTdWl0ZSA4MDEKKwkJCQlNY0xlYW4gVkEgMjIxMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUYyICAgKGhleCkJCU1hcmsgb2YgdGhlIFVuaWNvcm4sIEluYy4KKzAwMDFGMiAgICAgKGJhc2UgMTYpCQlNYXJrIG9mIHRoZSBVbmljb3JuLCBJbmMuCisJCQkJMTI4MCBNYXNzYWNodXNldHRzIEF2ZS4KKwkJCQlDYW1icmlkZ2UgTUEgMDIxMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUYzICAgKGhleCkJCVFQUywgSW5jLgorMDAwMUYzICAgICAoYmFzZSAxNikJCVFQUywgSW5jLgorCQkJCTgwMTUgRS4gQ3J5c3RhbCBEcml2ZQorCQkJCUFuYWhlaW0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUY0ICAgKGhleCkJCUVudGVyYXN5cyBOZXR3b3JrcworMDAwMUY0ICAgICAoYmFzZSAxNikJCUVudGVyYXN5cyBOZXR3b3JrcworCQkJCTM1IEluZHVzdHJpYWwgV2F5CisJCQkJUm9jaGVzdGVyIE5IIDAzODY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMS1GNSAgIChoZXgpCQlFUklNIFMuQS4KKzAwMDFGNSAgICAgKGJhc2UgMTYpCQlFUklNIFMuQS4KKwkJCQkxMSBBdiBSZXB1YmxpcXVlCisJCQkJNjk2OTIgVmVuaXNzaWV1eCBDZWRleAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMS1GNiAgIChoZXgpCQlBc3NvY2lhdGlvbiBvZiBNdXNpY2FsIEVsZWN0cm9uaWNzIEluZHVzdHJ5CiswMDAxRjYgICAgIChiYXNlIDE2KQkJQXNzb2NpYXRpb24gb2YgTXVzaWNhbCBFbGVjdHJvbmljcyBJbmR1c3RyeQorCQkJCUl0byBCbGRnLiA0dGggRmxvb3IgMi0xNi05IE1pc2FraS1jaG8sCisJCQkJQ2hpeW9kYS1rdSwgVG9reW8sIDEwMS0wMDYxCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMS1GNyAgIChoZXgpCQlJbWFnZSBEaXNwbGF5IFN5c3RlbXMsIEluYy4KKzAwMDFGNyAgICAgKGJhc2UgMTYpCQlJbWFnZSBEaXNwbGF5IFN5c3RlbXMsIEluYy4KKwkJCQk0NjU2MCBGcmVtb250IEJsdmQuCisJCQkJU3VpdGUgIzQwNgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUY4ICAgKGhleCkJCUFkaGVyZW50IFN5c3RlbXMsIEx0ZC4KKzAwMDFGOCAgICAgKGJhc2UgMTYpCQlBZGhlcmVudCBTeXN0ZW1zLCBMdGQuCisJCQkJRW5kZWF2b3VyIEhvdXNlLCBWaXNpb24gUGFyaworCQkJCUhpc3RvbiBDYW1icmlkZ2UgQ0I0IDRaUgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDEtRjkgICAoaGV4KQkJVGVyYUdsb2JhbCBDb21tdW5pY2F0aW9ucyBDb3JwLgorMDAwMUY5ICAgICAoYmFzZSAxNikJCVRlcmFHbG9iYWwgQ29tbXVuaWNhdGlvbnMgQ29ycC4KKwkJCQk5MTcxIFRvd25lIENlbnRyZSBEcml2ZQorCQkJCVN1aXRlICM2MDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUZBICAgKGhleCkJCUhPUk9TQ0FTCiswMDAxRkEgICAgIChiYXNlIDE2KQkJSE9ST1NDQVMKKwkJCQkyNiwgTE9VSVMgQkxBTkMKKwkJCQk2OTAwNiBMWU9OCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAxLUZCICAgKGhleCkJCURvVG9wIFRlY2hub2xvZ3ksIEluYy4KKzAwMDFGQiAgICAgKGJhc2UgMTYpCQlEb1RvcCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTBGLCBOby4gMTAwLCBNaW4tQ2h5dWFuIFJvYWQKKwkJCQlIc2luLVRpZW4sIFRhaXBlaQorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDEtRkMgICAoaGV4KQkJS2V5ZW5jZSBDb3Jwb3JhdGlvbgorMDAwMUZDICAgICAoYmFzZSAxNikJCUtleWVuY2UgQ29ycG9yYXRpb24KKwkJCQkxLTMtMTQsIEhpZ2FzaGktTmFrYWppbWEsCisJCQkJSGlnYXNoaS1Zb2RvZ2F3YS1rdSBPc2FrYSA1MzMtODU1NQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDEtRkQgICAoaGV4KQkJRGlnaXRhbCBWb2ljZSBTeXN0ZW1zLCBJbmMuCiswMDAxRkQgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBWb2ljZSBTeXN0ZW1zLCBJbmMuCisJCQkJMjM0IExpdHRsZXRvbiBSb2FkCisJCQkJV2VzdGZvcmQgTUEgMDE4ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAxLUZFICAgKGhleCkJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCiswMDAxRkUgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKwkJCQlNL1MgQ1gwMS0yL04yNgorCQkJCTMwMSBST0NLUklNTU9OIEJMVkQuLCBTCisJCQkJQ09MT1JBRE8gU1BSSU5HUyBDTyA4MDkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDEtRkYgICAoaGV4KQkJRGF0YSBEaXJlY3QgTmV0d29ya3MsIEluYy4KKzAwMDFGRiAgICAgKGJhc2UgMTYpCQlEYXRhIERpcmVjdCBOZXR3b3JrcywgSW5jLgorCQkJCTkzMjAgTHVybGluZSBBdmVudWUKKwkJCQlDaGF0c3dvcnRoIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0wMCAgIChoZXgpCQlOZXQgJiBTeXMgQ28uLCBMdGQuCiswMDAyMDAgICAgIChiYXNlIDE2KQkJTmV0ICYgU3lzIENvLiwgTHRkLgorCQkJCUt1cm8gSGl0ZWNoIEluZHVzdHJpYWwgQ29tcGxleCAzMDQsCisJCQkJNDAyLTMsIFNoaW5kb3JpbS1kb25nLCBLdXJvLWd1IFNlb3VsLAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTAxICAgKGhleCkJCUlGTSBFbGVjdHJvbmljIGdtYmgKKzAwMDIwMSAgICAgKGJhc2UgMTYpCQlJRk0gRWxlY3Ryb25pYyBnbWJoCisJCQkJQmVjaGxpbmdlbiAzNAorCQkJCUQtODgwNjkgVGV0dG5hbmcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMi0wMiAgIChoZXgpCQlBbWlubyBDb21tdW5pY2F0aW9ucywgTHRkLgorMDAwMjAyICAgICAoYmFzZSAxNikJCUFtaW5vIENvbW11bmljYXRpb25zLCBMdGQuCisJCQkJVGltZXMgSG91c2UKKwkJCQlGZW4gRW5kIFdpbGxpbmdoYW0sIENhbWJyaWRnZQorCQkJCVVLIENCNCA1TEgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMi0wMyAgIChoZXgpCQlXb29uc2FuZyBUZWxlY29tLCBJbmMuCiswMDAyMDMgICAgIChiYXNlIDE2KQkJV29vbnNhbmcgVGVsZWNvbSwgSW5jLgorCQkJCTEwNC05LCBNdW5qaS1Eb25nLCBZdXNvbmctR3UKKwkJCQlUYWVqb24sIDMwNS0zODAsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItMDQgICAoaGV4KQkJQm9kbWFubiBJbmR1c3RyaWVzIEVsZWt0cm9uaWsgR21iSAorMDAwMjA0ICAgICAoYmFzZSAxNikJCUJvZG1hbm4gSW5kdXN0cmllcyBFbGVrdHJvbmlrIEdtYkgKKwkJCQlNZXNzZXJzY2htaXR0cmluZyAzMworCQkJCUQtODYzNDMgS29uaWdzYnJ1bm4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMi0wNSAgIChoZXgpCQlIaXRhY2hpIERlbnNoaSwgTHRkLgorMDAwMjA1ICAgICAoYmFzZSAxNikJCUhpdGFjaGkgRGVuc2hpLCBMdGQuCisJCQkJMzIgTWl5YWtpLWNobyBLb2RhaXJhLXNoaQorCQkJCVRveWtvLAorCQkJCUpBUEFOIDE4Ny04NTExCisJCQkJSkFQQU4KKworMDAtMDItMDYgICAoaGV4KQkJVGVsaXRhbCBSJkQgRGVubWFyayBBL1MKKzAwMDIwNiAgICAgKGJhc2UgMTYpCQlUZWxpdGFsIFImRCBEZW5tYXJrIEEvUworCQkJCTk1MzAgU3RvdXJpbmcKKwkJCQlEZW5tYXJrCisJCQkJREVOTUFSSworCiswMC0wMi0wNyAgIChoZXgpCQlWaXNpb25HbG9iYWwgTmV0d29yayBDb3JwLgorMDAwMjA3ICAgICAoYmFzZSAxNikJCVZpc2lvbkdsb2JhbCBOZXR3b3JrIENvcnAuCisJCQkJODI2IEUuIFN0YWxlIFJvYWQKKwkJCQlTdWl0ZSAyMDAKKwkJCQlBbWVyaWNhbiBGb3JrIFVUIDg0MDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0wOCAgIChoZXgpCQlVbmlmeSBOZXR3b3JrcywgSW5jLgorMDAwMjA4ICAgICAoYmFzZSAxNikJCVVuaWZ5IE5ldHdvcmtzLCBJbmMuCisJCQkJMzE2MCBEZSBMYSBDcnV6IEJsdmQuCisJCQkJIzIwMQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0wOSAgIChoZXgpCQlTaGVuemhlbiBTRUQgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDIwOSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBTRUQgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk0L0YuLCBXZXN0IEJsb2NrLCBCbG9jayA0MTQsIFpoZW5odWEgUmQuCisJCQkJRnV0aWFuIFNoZW56aGVuLCA1MTgwMzEgUC5SLgorCQkJCUNISU5BCisJCQkJQ0hJTkEKKworMDAtMDItMEEgICAoaGV4KQkJR2VmcmFuIFNwYQorMDAwMjBBICAgICAoYmFzZSAxNikJCUdlZnJhbiBTcGEKKwkJCQlWaWEgU2ViaW5hLCA3NAorCQkJCVByb3ZhZ2xpbyBEJ0lzZW8gMjUwNTAgQnJlc2NpYQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtMDItMEIgICAoaGV4KQkJTmF0aXZlIE5ldHdvcmtzLCBJbmMuCiswMDAyMEIgICAgIChiYXNlIDE2KQkJTmF0aXZlIE5ldHdvcmtzLCBJbmMuCisJCQkJUC5PLiBCb3ggNzE2NQorCQkJCVBldGFoIFRpa3ZhIDQ5MTcwCisJCQkJSXNyYWVsCisJCQkJSVNSQUVMCisKKzAwLTAyLTBDICAgKGhleCkJCU1ldHJvLU9wdGl4CiswMDAyMEMgICAgIChiYXNlIDE2KQkJTWV0cm8tT3B0aXgKKwkJCQkyMjAxIEF2ZW51ZSBLCisJCQkJUGxhbm8gVFggNzUwNzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTBEICAgKGhleCkJCU1pY3JvbnBjLmNvbQorMDAwMjBEICAgICAoYmFzZSAxNikJCU1pY3JvbnBjLmNvbQorCQkJCTkwMCBFLiBLYXJjaGVyIFJkLgorCQkJCU5hbXBhIElBIDgzNjg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0wRSAgIChoZXgpCQlFQ0kgVGVsZWNvbSwgTHRkLiwgTlNELVVTCiswMDAyMEUgICAgIChiYXNlIDE2KQkJRUNJIFRlbGVjb20sIEx0ZC4sIE5TRC1VUworCQkJCTEzMDAgT21lZ2EgRHIuCisJCQkJUGl0dHNidXJnaCBQQSAxNTIwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMEYgICAoaGV4KQkJQUFUUgorMDAwMjBGICAgICAoYmFzZSAxNikJCUFBVFIKKwkJCQkzMDYgQ2hlbWluIGRlcyBNaXJvaXJzCisJCQkJMTMzMzAgUGVsaXNzYW5uZQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMi0xMCAgIChoZXgpCQlGZW5lY29tCiswMDAyMTAgICAgIChiYXNlIDE2KQkJRmVuZWNvbQorCQkJCTcvRiBLb24ta3VrIFVuaXZlcnNpdHkgQWx1bW5pCisJCQkJQXNzb2NpYXRpb24gQnVpbGRpbmcgTk86ICAyMjctMzM2IEpheWFuZworCQkJCVNlb3VsIFNlb3VsIEtvcmVhCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTExICAgKGhleCkJCU5hdHVyZSBXb3JsZHdpZGUgVGVjaG5vbG9neSBDb3JwLgorMDAwMjExICAgICAoYmFzZSAxNikJCU5hdHVyZSBXb3JsZHdpZGUgVGVjaG5vbG9neSBDb3JwLgorCQkJCU5vLiAxLCBNaW4tQ2h1YW4gU3RyZWV0CisJCQkJVHUtQ2hlbmcgSW5kdXN0cmlhbCBQYXJrIFRhaXBlaSBIc2llbiwKKwkJCQlUYWl3YW4gVGFpd2FuIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItMTIgICAoaGV4KQkJU2llcnJhQ29tCiswMDAyMTIgICAgIChiYXNlIDE2KQkJU2llcnJhQ29tCisJCQkJOTkgU291dGggU3RyZWV0CisJCQkJSG9wa2ludG9uIE1hIDAxNzQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0xMyAgIChoZXgpCQlTLkQuRS5MLgorMDAwMjEzICAgICAoYmFzZSAxNikJCVMuRC5FLkwuCisJCQkJQWVyb3BvbGUgRDJBCisJCQkJUnVlIE51bmdlcnJlciBldCBDb2xpIDQ0ODYwIFN0IEFpZ25hbiBkZQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMi0xNCAgIChoZXgpCQlEVFZSTworMDAwMjE0ICAgICAoYmFzZSAxNikJCURUVlJPCisJCQkJODEzIERhZWdvbmcgQmxkZy4sCisJCQkJODIzLTIxIFllb2tzYW0tRG9uZywgS2FuZ25hbS1HdSwgU2VvdWwsCisJCQkJS09SRUEgS09SRUEgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi0xNSAgIChoZXgpCQlDb3RhcyBDb21wdXRlciBUZWNobm9sb2d5IEEvQgorMDAwMjE1ICAgICAoYmFzZSAxNikJCUNvdGFzIENvbXB1dGVyIFRlY2hub2xvZ3kgQS9CCisJCQkJUGFsdWRhbi1NdWxsZXJzIFZlaiA4MgorCQkJCURLLTgyMDAgQWFyaHVzIE4KKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswMC0wMi0xNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAyMTYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0xNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAyMTcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0xOCAgIChoZXgpCQlBZHZhbmNlZCBTY2llbnRpZmljIENvcnAKKzAwMDIxOCAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBTY2llbnRpZmljIENvcnAKKwkJCQkxIEZsLiwgTm8uIDI2LCBJbmR1c3RyeSBFYXN0IDl0aCBSb2FkCisJCQkJU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmsgSHNpbi1DaHUKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTE5ICAgKGhleCkJCVBhcmFsb24gVGVjaG5vbG9naWVzCiswMDAyMTkgICAgIChiYXNlIDE2KQkJUGFyYWxvbiBUZWNobm9sb2dpZXMKKwkJCQk3MDAgRmlmdGggQXZlLCBTdWl0ZSA2MTAxCisJCQkJU2VhdHRsZSBXQSA5ODEwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMUEgICAoaGV4KQkJWnVtYSBOZXR3b3JrcworMDAwMjFBICAgICAoYmFzZSAxNikJCVp1bWEgTmV0d29ya3MKKwkJCQk4NDAzIEZhbGxicm9vayBBdmUuCisJCQkJV2VzdCBIaWxscyBDQSA5MTMwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMUIgICAoaGV4KQkJS29sbG1vcmdlbi1TZXJ2b3Ryb25peAorMDAwMjFCICAgICAoYmFzZSAxNikJCUtvbGxtb3JnZW4tU2Vydm90cm9uaXgKKwkJCQlQT0IgMzkxOSwgUGV0YWNoIFRpa3lhCisJCQkJNDkxMzAgSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTAyLTFDICAgKGhleCkJCU5ldHdvcmsgRWxlbWVudHMsIEluYy4KKzAwMDIxQyAgICAgKGJhc2UgMTYpCQlOZXR3b3JrIEVsZW1lbnRzLCBJbmMuCisJCQkJOTc4MiBTVyBOaW1idXMgQXZlbnVlCisJCQkJQmVhdmVydG9uIE9SIDk3MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0xRCAgIChoZXgpCQlEYXRhIEdlbmVyYWwgQ29tbXVuaWNhdGlvbiBMdGQuCiswMDAyMUQgICAgIChiYXNlIDE2KQkJRGF0YSBHZW5lcmFsIENvbW11bmljYXRpb24gTHRkLgorCQkJCVJtLiAxOEMsIEJsZGcuIEMsIENFSUVDIFRvd2VyCisJCQkJTm8uIDIwNzAsIFJkLiBTaGVuTmFuWmhvbmcgU2hlblpoZW4gQ2l0eQorCQkJCUNISU5BCisJCQkJQ0hJTkEKKworMDAtMDItMUUgICAoaGV4KQkJU0lNVEVMIFMuUi5MLgorMDAwMjFFICAgICAoYmFzZSAxNikJCVNJTVRFTCBTLlIuTC4KKwkJCQlWaWEgQm9uaWZhY2lvIEx1cGksIDI1CisJCQkJNTAxMjkgRmlyZW56ZQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtMDItMUYgICAoaGV4KQkJQWN1bGFiIFBMQworMDAwMjFGICAgICAoYmFzZSAxNikJCUFjdWxhYiBQTEMKKwkJCQlMYWtlc2lkZSwgQnJhbWxleSBSb2FkCisJCQkJTW91bnQgRmFybSBNaWx0b24gS2V5bmVzIEJ1bGtzIE1LMSAxUFQKKwkJCQlVSworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLTIwICAgKGhleCkJCUNBTk9OIEZJTkVURUNIIElOQy4KKzAwMDIyMCAgICAgKGJhc2UgMTYpCQlDQU5PTiBGSU5FVEVDSCBJTkMuCisJCQkJNzE3LCBZYWd1Y2hpLCBNaXNhdG8tc2hpLAorCQkJCVNhaXRhbWEgIDM0MS04NTI3CisJCQkJSkFQQU4KKworMDAtMDItMjEgICAoaGV4KQkJRFNQIEFwcGxpY2F0aW9uLCBMdGQuCiswMDAyMjEgICAgIChiYXNlIDE2KQkJRFNQIEFwcGxpY2F0aW9uLCBMdGQuCisJCQkJMTJGLTEyLCBOby4gNzksIFNlYy4gMSBIc2luIFRhaSBXdSBSZC4KKwkJCQlIU0lDSEksIFRhaXBlaSBDb3VudHkKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTIyICAgKGhleCkJCUNocm9taXN5cywgSW5jLgorMDAwMjIyICAgICAoYmFzZSAxNikJCUNocm9taXN5cywgSW5jLgorCQkJCTEwMTIgU3Rld2FydCBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMjMgICAoaGV4KQkJQ2xpY2tUVgorMDAwMjIzICAgICAoYmFzZSAxNikJCUNsaWNrVFYKKwkJCQlLZW1vbmcgQmxkZy4sIDR0aCBGbC4sCisJCQkJNzcyIFlva3NhbS1Eb25nIEthbmduYW0tS3UKKwkJCQlTZW91bCBLb3JlYSAxMzUtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTI0ICAgKGhleCkJCUMtQ09SCiswMDAyMjQgICAgIChiYXNlIDE2KQkJQy1DT1IKKwkJCQkxNSBTdGVybGluZyBEcml2ZQorCQkJCVdhbGxpbmdmb3JkIENUIDA2NDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0yNSAgIChoZXgpCQlPbmUgU3RvcCBTeXN0ZW1zCiswMDAyMjUgICAgIChiYXNlIDE2KQkJT25lIFN0b3AgU3lzdGVtcworCQkJCTIyMzUgRW50ZXJwcmlzZSBTdHJlZXQKKwkJCQlTdWl0ZSAxMTAKKwkJCQlFc2NvbmRpZG8gQ0EgOTIwMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTI2ICAgKGhleCkJCVhFU3lzdGVtcywgSW5jLgorMDAwMjI2ICAgICAoYmFzZSAxNikJCVhFU3lzdGVtcywgSW5jLgorCQkJCTMxNyBNYWluIFN0cmVldAorCQkJCUVhc3QgUm9jaGVzdGVyIE5ZIDE0NDQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0yNyAgIChoZXgpCQlFU0QgRWxlY3Ryb25pYyBTeXN0ZW0gRGVzaWduIEdtYkgKKzAwMDIyNyAgICAgKGJhc2UgMTYpCQlFU0QgRWxlY3Ryb25pYyBTeXN0ZW0gRGVzaWduIEdtYkgKKwkJCQlWYWhyZW53YWxkZXIgU3RyLiAyMDcKKwkJCQkzMCAxNjUgSGFubm92ZXIgR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDItMjggICAoaGV4KQkJTmVjc29tLCBMdGQuCiswMDAyMjggICAgIChiYXNlIDE2KQkJTmVjc29tLCBMdGQuCisJCQkJTmVjc29tIEx0ZC4gYy9vIEtvaXJzdG8KKwkJCQlTYXVuYW1hZW50aWUgNCBBIDEgRklOLTAyNzcwIEVTUDAwCisJCQkJRklOTEFORAorCQkJCUZJTkxBTkQKKworMDAtMDItMjkgICAoaGV4KQkJQWR0ZWMgQ29ycG9yYXRpb24KKzAwMDIyOSAgICAgKGJhc2UgMTYpCQlBZHRlYyBDb3Jwb3JhdGlvbgorCQkJCTNGIE1lZ3Vyb2hpZ2FzaGl5YW1hIEJsZworCQkJCTEgNCA0IEhpZ2FzaGl5YW1hLCBNZWd1cm8gS3UgVG9reW8gMTUzIDAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAyLTJBICAgKGhleCkJCUFzb3VuZCBFbGVjdHJvbmljCiswMDAyMkEgICAgIChiYXNlIDE2KQkJQXNvdW5kIEVsZWN0cm9uaWMKKwkJCQlYaWFueGkgSW5kdXN0cmllcyBab25lIENoYW5nYW4gVG93bgorCQkJCURvbmcgR3VvbiBDaXR5LCBHdW9uZyBEb25nIFByb3ZpZGVuY2UKKwkJCQlDSElOQQorCQkJCUNISU5BCisKKzAwLTAyLTJCICAgKGhleCkJCVNBWEEsIEluYy4KKzAwMDIyQiAgICAgKGJhc2UgMTYpCQlTQVhBLCBJbmMuCisJCQkJTkJGIFBsYXRpbnVtIFRvd2VyIDEtMTctMyBTaGlyb2thbmUKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA4LTgwNTAKKwkJCQlKQVBBTgorCiswMC0wMi0yQyAgIChoZXgpCQlBQkIgQm9tZW0sIEluYy4KKzAwMDIyQyAgICAgKGJhc2UgMTYpCQlBQkIgQm9tZW0sIEluYy4KKwkJCQk1ODUsIGJvdWwuIENoYXJlc3QgRXN0CisJCQkJU3VpdGUgMzAwIFF1ZWJlYyBDaXR5LCBQUQorCQkJCUNhbmFkYSBHMUsgOUg0CisJCQkJQ0FOQURBCisKKzAwLTAyLTJEICAgKGhleCkJCUFnZXJlIFN5c3RlbXMKKzAwMDIyRCAgICAgKGJhc2UgMTYpCQlBZ2VyZSBTeXN0ZW1zCisJCQkJUC5PLiBCb3ggNzU1CisJCQkJMzQzMCBBdCBOaWV1d2VnZWluCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDItMkUgICAoaGV4KQkJVEVBQyBDb3JwLiBSJiBECiswMDAyMkUgICAgIChiYXNlIDE2KQkJVEVBQyBDb3JwLiBSJiBECisJCQkJODU3IEtveWF0YSwgSXJ1bWEKKwkJCQlTYWl0YW1hCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMi0yRiAgIChoZXgpCQlQLUN1YmUsIEx0ZC4KKzAwMDIyRiAgICAgKGJhc2UgMTYpCQlQLUN1YmUsIEx0ZC4KKwkJCQlQLk8uIEJveCAxMjMzMQorCQkJCUhlcnpsaWEgNDY3NjYKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDItMzAgICAoaGV4KQkJSW50ZXJzb2Z0IEVsZWN0cm9uaWNzCiswMDAyMzAgICAgIChiYXNlIDE2KQkJSW50ZXJzb2Z0IEVsZWN0cm9uaWNzCisJCQkJTGFtbWVyZHJpZXMgMjcKKwkJCQlCMjI1MCBPbGVuCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtMDItMzEgICAoaGV4KQkJSW5nZXJzb2xsLVJhbmQKKzAwMDIzMSAgICAgKGJhc2UgMTYpCQlJbmdlcnNvbGwtUmFuZAorCQkJCTE0NjcgUm91dGUgMzEgU291dGgKKwkJCQlQLk8uIEJveCA5NzAKKwkJCQlBbm5hbmRhbGUgTkogMDg4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTMyICAgKGhleCkJCUF2aXNpb24sIEluYy4KKzAwMDIzMiAgICAgKGJhc2UgMTYpCQlBdmlzaW9uLCBJbmMuCisJCQkJTm8uIDIwLCBDcmVhdGlvbiBSZC4gMSwKKwkJCQlTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1IFRhaXdhbiwgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi0zMyAgIChoZXgpCQlNYW50cmEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDIzMyAgICAgKGJhc2UgMTYpCQlNYW50cmEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkxMjg1MCBNaWRkbGVicm9vayBSb2FkCisJCQkJU3VpdGUgMQorCQkJCUdlcm1hbnRvd24gTUQgMjA4NzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTM0ICAgKGhleCkJCUltcGVyaWFsIFRlY2hub2xvZ3ksIEluYy4KKzAwMDIzNCAgICAgKGJhc2UgMTYpCQlJbXBlcmlhbCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjMwNSBVdGFoIEF2ZW51ZQorCQkJCUVsIFNlZ3VuZG8gQ0EgOTAyNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTM1ICAgKGhleCkJCVBhcmFnb24gTmV0d29ya3MgSW50ZXJuYXRpb25hbAorMDAwMjM1ICAgICAoYmFzZSAxNikJCVBhcmFnb24gTmV0d29ya3MgSW50ZXJuYXRpb25hbAorCQkJCTYxIENvbW1lcmNlIERyaXZlCisJCQkJQnJvb2tmaWVsZCBDVCAwNjgwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItMzYgICAoaGV4KQkJSU5JVCBHbWJICiswMDAyMzYgICAgIChiYXNlIDE2KQkJSU5JVCBHbWJICisJCQkJS2FlcHBlbGVzdHIuIDYKKwkJCQlELTc2MTMxIEthcmxzcnVoZQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAyLTM3ICAgKGhleCkJCUNvc21vIFJlc2VhcmNoIENvcnAuCiswMDAyMzcgICAgIChiYXNlIDE2KQkJQ29zbW8gUmVzZWFyY2ggQ29ycC4KKwkJCQlDb3NtbyBCbGRnLCAzLTE0OC01CisJCQkJTWl5YWhhcmFjaG8sIE9taXlhIFNhaXRhbWEgMzMwLTAwMzgKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAyLTM4ICAgKGhleCkJCVNlcm9tZSBUZWNobm9sb2d5LCBJbmMuCiswMDAyMzggICAgIChiYXNlIDE2KQkJU2Vyb21lIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk1NTUtMTQsIEJhZWthbmcgQi9EIDdGCisJCQkJU2hpbnNhLWRvbmcsIEthbmduYW0tZ3UKKwkJCQlTZW91bCBLb3JlYSAxMzUtMTIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTM5ICAgKGhleCkJCVZpc2ljb20KKzAwMDIzOSAgICAgKGJhc2UgMTYpCQlWaXNpY29tCisJCQkJMTAwNTIgTWVzYSBSaWRnZSBDdC4KKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTNBICAgKGhleCkJCVpTSyBTdGlja21hc2NoaW5lbiBHbWJICiswMDAyM0EgICAgIChiYXNlIDE2KQkJWlNLIFN0aWNrbWFzY2hpbmVuIEdtYkgKKwkJCQlNYWdkZWJ1cmdlciBTdHJhc3NlIDM4LTQwCisJCQkJNDc4MDAgS3JlZmVsZAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAyLTNCICAgKGhleCkJCUVyaWNzc29uCiswMDAyM0IgICAgIChiYXNlIDE2KQkJRXJpY3Nzb24KKwkJCQkxMDAgSGVhZHF1YXJ0ZXJzIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTNDICAgKGhleCkJCUNyZWF0aXZlIFRlY2hub2xvZ3ksIEx0ZC4KKzAwMDIzQyAgICAgKGJhc2UgMTYpCQlDcmVhdGl2ZSBUZWNobm9sb2d5LCBMdGQuCisJCQkJMzEgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBQYXJrCisJCQkJU2luZ2Fwb3JlIDYwOTkyMQorCQkJCVJlcHVibGljIG9mIFNpbmdhcG9yZQorCQkJCVNJTkdBUE9SRQorCiswMC0wMi0zRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAyM0QgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi0zRSAgIChoZXgpCQlTZWx0YSBUZWxlbWF0aWNhIFMucC5hCiswMDAyM0UgICAgIChiYXNlIDE2KQkJU2VsdGEgVGVsZW1hdGljYSBTLnAuYQorCQkJCVZpYSBOYXppb25hbGUga20gNDA0LjUKKwkJCQk2NDAxOSBUb3J0b3JldG8gTGlkbyBURQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtMDItM0YgICAoaGV4KQkJQ29tcGFsIEVsZWN0cm9uaWNzLCBJbmMuCiswMDAyM0YgICAgIChiYXNlIDE2KQkJQ29tcGFsIEVsZWN0cm9uaWNzLCBJbmMuCisJCQkJNTgxLCBKdWlrdWFuZyBSZC4sCisJCQkJTmVpaHUsIFRhaXBlaSwgKDExNCkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItNDAgICAoaGV4KQkJU2VlZGVrIENvLiwgTHRkLgorMDAwMjQwICAgICAoYmFzZSAxNikJCVNlZWRlayBDby4sIEx0ZC4KKwkJCQkjNzA5LCAxNjM4LTMyLCBTYW1tbworCQkJCVNoaW5yaW1ib24tRG9uZywgS3dhbmFrLUd1LCBTZW91bAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTQxICAgKGhleCkJCUFtZXIuY29tCiswMDAyNDEgICAgIChiYXNlIDE2KQkJQW1lci5jb20KKwkJCQk3MjU5IEJyeWFuIERhaXJ5IFJvYWQKKwkJCQlMYXJnbyBGTCAzMzc3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNDIgICAoaGV4KQkJVmlkZW9mcmFtZSBTeXN0ZW1zCiswMDAyNDIgICAgIChiYXNlIDE2KQkJVmlkZW9mcmFtZSBTeXN0ZW1zCisJCQkJMTAxIFByb3ZpZGVuY2UgTWluZSBSb2FkCisJCQkJU3VpdGUgMTAzCisJCQkJTmV2YWRhIENpdHkgQ0EgOTU5NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTQzICAgKGhleCkJCVJheXNpcyBDby4sIEx0ZC4KKzAwMDI0MyAgICAgKGJhc2UgMTYpCQlSYXlzaXMgQ28uLCBMdGQuCisJCQkJOTk3LTEwLCBEYWVjaGktRG9uZywgS2FuZ25hbS1LdSwKKwkJCQlTZW91bCAxMzUtMjgwLCBTb3V0aCBLb3JlYQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi00NCAgIChoZXgpCQlTVVJFQ09NIFRlY2hub2xvZ3kgQ28uCiswMDAyNDQgICAgIChiYXNlIDE2KQkJU1VSRUNPTSBUZWNobm9sb2d5IENvLgorCQkJCTZGLCBOby4gMTI1LCBTZWMuIDIsIERhdHVuZyBSZC4KKwkJCQlTaGlqciwgVGFpcGVpIENvdW50eSwgMjIxCisJCQkJVGFpd2FuIFRhaXdhbiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTQ1ICAgKGhleCkJCUxhbXB1cyBDbywgTHRkLgorMDAwMjQ1ICAgICAoYmFzZSAxNikJCUxhbXB1cyBDbywgTHRkLgorCQkJCTZ0aCBCbGRnLiwgU2FtZ29uZywKKwkJCQk1OC03IFJhbnBvIDRkb25nIFNjb2NoLWdvLCBTZW91bCwKKwkJCQlLb3JlYSBLb3JlYSAxMzctMDQ0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTQ2ICAgKGhleCkJCUFsbC1XaW4gVGVjaCBDby4sIEx0ZC4KKzAwMDI0NiAgICAgKGJhc2UgMTYpCQlBbGwtV2luIFRlY2ggQ28uLCBMdGQuCisJCQkJMTFGLCBOby4gMTExLTcsIEhzaW5nIERlIFJkLiwKKwkJCQlTYW4gQ2h1bmcgQ2l0eSwKKwkJCQlUYWlwZWkgSHNpZW4gVGFpd2FuLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTQ3ICAgKGhleCkJCUdyZWF0IERyYWdvbiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IChHcm91cCkgQ28uLCBMdGQuCiswMDAyNDcgICAgIChiYXNlIDE2KQkJR3JlYXQgRHJhZ29uIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgKEdyb3VwKSBDby4sIEx0ZC4KKwkJCQkxNjkgQmVpeXVhbiBSZC4sCisJCQkJQ2hhb3lhbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nIDEwMDEwMSwgQ0hJTkEKKwkJCQlDSElOQQorCiswMC0wMi00OCAgIChoZXgpCQlQaWx6IEdtYkggJiBDby4KKzAwMDI0OCAgICAgKGJhc2UgMTYpCQlQaWx6IEdtYkggJiBDby4KKwkJCQlGZWxpeC1XYW5rZWwtU3RyYXNzZSAyCisJCQkJRC03Mzc2MCBPc3RmaWxkZXJuCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDItNDkgICAoaGV4KQkJQXZpdiBJbmZvY29tIENvLCBMdGQuCiswMDAyNDkgICAgIChiYXNlIDE2KQkJQXZpdiBJbmZvY29tIENvLCBMdGQuCisJCQkJOTYyLTUsIEt3YW55YW5nLURvbmcsIERvbmdhbi1HdSwKKwkJCQlBbnlhbmctQ2l0eSwgS3l1bmdraS1EbywgNDMxLTA2MAorCQkJCUtvcmVhIChST0spCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTRBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDI0QSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi00QiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAyNEIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNEMgICAoaGV4KQkJU2lCeXRlLCBJbmMuCiswMDAyNEMgICAgIChiYXNlIDE2KQkJU2lCeXRlLCBJbmMuCisJCQkJMjgwNSBCb3dlcnMgQXZlbnVlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEtMDkxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNEQgICAoaGV4KQkJTWFubmVzbWFuIERlbWF0aWMgQ29sYnkgUHR5LiBMdGQuCiswMDAyNEQgICAgIChiYXNlIDE2KQkJTWFubmVzbWFuIERlbWF0aWMgQ29sYnkgUHR5LiBMdGQuCisJCQkJMjQgTmFyYWJhbmcgV2F5CisJCQkJQmVscm9zZSwgTlNXIDIwODUKKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtMDItNEUgICAoaGV4KQkJRGF0YWNhcmQgR3JvdXAKKzAwMDI0RSAgICAgKGJhc2UgMTYpCQlEYXRhY2FyZCBHcm91cAorCQkJCTExMTExIEJyZW4gUm9hZCBXZXN0CisJCQkJTVMgMjEwCisJCQkJTWlubmV0b25rYSBNTiA1NTM0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNEYgICAoaGV4KQkJSVBNIERhdGFjb20gUy5SLkwuCiswMDAyNEYgICAgIChiYXNlIDE2KQkJSVBNIERhdGFjb20gUy5SLkwuCisJCQkJVmlhIFJvbWEsIDIzMQorCQkJCTgwMDI3IEZyYXR0YW1hZ2dpb3JlCisJCQkJTmFwbGVzIElUQUxZCisJCQkJSVRBTFkKKworMDAtMDItNTAgICAoaGV4KQkJR2V5c2VyIE5ldHdvcmtzLCBJbmMuCiswMDAyNTAgICAgIChiYXNlIDE2KQkJR2V5c2VyIE5ldHdvcmtzLCBJbmMuCisJCQkJNTM1IERlbCBSZXkgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi01MSAgIChoZXgpCQlTb21hIE5ldHdvcmtzLCBJbmMuCiswMDAyNTEgICAgIChiYXNlIDE2KQkJU29tYSBOZXR3b3JrcywgSW5jLgorCQkJCTY1MCBUb3duc2VuZCBTdC4KKwkJCQlTdWl0ZSAzMDUKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi01MiAgIChoZXgpCQlDYXJyaWVyIENvcnBvcmF0aW9uCiswMDAyNTIgICAgIChiYXNlIDE2KQkJQ2FycmllciBDb3Jwb3JhdGlvbgorCQkJCU9uZSBDYXJyaWVyIFBsYWNlCisJCQkJRmFybWluZ3RvbiBDVCAwNjAzNC00MDE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi01MyAgIChoZXgpCQlUZWxldmlkZW8sIEluYy4KKzAwMDI1MyAgICAgKGJhc2UgMTYpCQlUZWxldmlkZW8sIEluYy4KKwkJCQkyMzQ1IEhhcnJpcyBXYXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNTQgICAoaGV4KQkJV29ybGRHYXRlCiswMDAyNTQgICAgIChiYXNlIDE2KQkJV29ybGRHYXRlCisJCQkJMzE5MCBUcmVtb250IEF2ZW51ZQorCQkJCVRyZXZvc2UgUEEgMTkwNTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTU1ICAgKGhleCkJCUlCTSBDb3JwCiswMDAyNTUgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUC5PLiBCb3ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTU2ICAgKGhleCkJCUFscGhhIFByb2Nlc3NvciwgSW5jLgorMDAwMjU2ICAgICAoYmFzZSAxNikJCUFscGhhIFByb2Nlc3NvciwgSW5jLgorCQkJCTEzMCBDIEJha2VyIEF2ZS4gRXh0LgorCQkJCUNvbmNvcmQgTUEgMDE3NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTU3ICAgKGhleCkJCU1pY3JvY29tIENvcnAuCiswMDAyNTcgICAgIChiYXNlIDE2KQkJTWljcm9jb20gQ29ycC4KKwkJCQk4MzMzQSBHcmVlbiBNZWFkb3dzIERyLiBOLgorCQkJCVdlc3RlcnZpbGxlIE9IIDQzMDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi01OCAgIChoZXgpCQlGbHlpbmcgUGFja2V0cyBDb21tdW5pY2F0aW9ucworMDAwMjU4ICAgICAoYmFzZSAxNikJCUZseWluZyBQYWNrZXRzIENvbW11bmljYXRpb25zCisJCQkJMzg4IE1hcmtldCBTdHJlZXQKKwkJCQlTdWl0ZSAzODAKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi01OSAgIChoZXgpCQlUc2FubiBLdWVuIENoaW5hIChTaGFuZ2hhaSlFbnRlcnByaXNlIENvLiwgTHRkLiBJVCBHcm91cAorMDAwMjU5ICAgICAoYmFzZSAxNikJCVRzYW5uIEt1ZW4gQ2hpbmEgKFNoYW5naGFpKUVudGVycHJpc2UgQ28uLCBMdGQuIElUIEdyb3VwCisJCQkJOEYsICM5OSwgSHVhaWhhaSBSZCwgRWFzdCwKKwkJCQlTaGFuZ2hhaSwKKwkJCQlDSElOQSAyMDAwMjEKKwkJCQlDSElOQQorCiswMC0wMi01QSAgIChoZXgpCQlDYXRlbmEgTmV0d29ya3MKKzAwMDI1QSAgICAgKGJhc2UgMTYpCQlDYXRlbmEgTmV0d29ya3MKKwkJCQkzMDcgTGVnZ2V0IERyaXZlCisJCQkJS2FuYXRhIE9udGFyaW8KKwkJCQlDYW5hZGEgSzJLIDNDOAorCQkJCUNBTkFEQQorCiswMC0wMi01QiAgIChoZXgpCQlDYW1icmlkZ2UgU2lsaWNvbiBSYWRpbworMDAwMjVCICAgICAoYmFzZSAxNikJCUNhbWJyaWRnZSBTaWxpY29uIFJhZGlvCisJCQkJVW5pdCA0MDAsIFNjaWVuY2UgUGFyaywKKwkJCQlNaWx0b24gUm9hZCwgQ2FtYnJpZGdlLENCNCBPWEwKKwkJCQlVbml0ZWQgS2luZ2RvbQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLTVDICAgKGhleCkJCVNDSSBTeXN0ZW1zIChLdW5zaGFuKSBDby4sIEx0ZC4KKzAwMDI1QyAgICAgKGJhc2UgMTYpCQlTQ0kgU3lzdGVtcyAoS3Vuc2hhbikgQ28uLCBMdGQuCisJCQkJMzEyIFFJTkcgWUFORyBST0FECisJCQkJS1VOU0hBTiwgSklBTkdTVSBQUk9WSUNDCisJCQkJQ0hJTkEgQ0hJTkEgMjE1MzAwCisJCQkJQ0hJTkEKKworMDAtMDItNUQgICAoaGV4KQkJQ2FsaXggTmV0d29ya3MKKzAwMDI1RCAgICAgKGJhc2UgMTYpCQlDYWxpeCBOZXR3b3JrcworCQkJCTEwMzUgTm9ydGggTWNEb3dlbGwgQmx2ZC4KKwkJCQlQZXRhbHVtYSBDQSA5NDk1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNUUgICAoaGV4KQkJSGlnaCBUZWNobm9sb2d5IEx0ZAorMDAwMjVFICAgICAoYmFzZSAxNikJCUhpZ2ggVGVjaG5vbG9neSBMdGQKKwkJCQlDaG9uZ3FpbmcgSmluZ2hvbmcKKwkJCQlBMi0xMC0zIENhbGlmb3JuaWEgR2FyZGVuIFl1YmVpIERpc3RyaWN0CisJCQkJUGVvcGxlJ3MgUmVwdWJsaWMgb2YgQ2hpbmEKKwkJCQlDSElOQQorCiswMC0wMi01RiAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMDI1RiAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk5MzAwIHRyYW5zLUNBTkFEQSBIaWdod2F5CisJCQkJU3QuIExhdXJlbmV0LCBRdWViZWMKKwkJCQlINFMgMUtTIENBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMi02MCAgIChoZXgpCQlBY2NvcmRpb24gTmV0d29ya3MsIEluYy4KKzAwMDI2MCAgICAgKGJhc2UgMTYpCQlBY2NvcmRpb24gTmV0d29ya3MsIEluYy4KKwkJCQkzOTg5OSBCYWxlbnRpbmUgRHJpdmUsICMzMzUKKwkJCQlOZXdhcmsgQ0EgOTQ1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTYxICAgKGhleCkJCVRpbGdpbiBBQgorMDAwMjYxICAgICAoYmFzZSAxNikJCVRpbGdpbiBBQgorCQkJCUZpbmxhbmRzZ2F0YW4gNDAKKwkJCQlTRS0xNjQgNzQgS2lzdGEKKwkJCQlTV0VERU4KKworMDAtMDItNjIgICAoaGV4KQkJU295byBHcm91cCBTb3lvIENvbSBUZWNoIENvLiwgTHRkCiswMDAyNjIgICAgIChiYXNlIDE2KQkJU295byBHcm91cCBTb3lvIENvbSBUZWNoIENvLiwgTHRkCisJCQkJNUguIE5vLiAyMSBXdS1nb25nIDUgUmQsCisJCQkJSHNpbmcgQ2h1YW5nLAorCQkJCVRhaXBlaSBIc2llbiBUYWl3YW4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi02MyAgIChoZXgpCQlVUFMgTWFudWZhY3R1cmluZyBTUkwKKzAwMDI2MyAgICAgKGJhc2UgMTYpCQlVUFMgTWFudWZhY3R1cmluZyBTUkwKKwkJCQlWaWEgR2lvcmRhbm8sIDU0CisJCQkJMzcwNTAgVmFsbGVzZSBEaSBPcHBlYW5vCisJCQkJVmVyb25hIEl0YWx5CisJCQkJSVRBTFkKKworMDAtMDItNjQgICAoaGV4KQkJQXVkaW9SYW1wLmNvbQorMDAwMjY0ICAgICAoYmFzZSAxNikJCUF1ZGlvUmFtcC5jb20KKwkJCQkxNTk0MSBSZWQgSGlsbCBTdWl0ZSAyMDUKKwkJCQlUdXN0aW4gQ0EgOTI3ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTY1ICAgKGhleCkJCVZpcmRpdGVjaCBDby4gTHRkLgorMDAwMjY1ICAgICAoYmFzZSAxNikJCVZpcmRpdGVjaCBDby4gTHRkLgorCQkJCUh5dW5kYWkgVG9waWNzIEJsZ2QuLCAxMXRoIEZsCisJCQkJNDQtMyBQYW5naS1kb25nLCBTb25ncGEtR3UKKwkJCQlTZW91bCBTZW91bCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi02NiAgIChoZXgpCQlUaGVybWFsb2dpYyBDb3Jwb3JhdGlvbgorMDAwMjY2ICAgICAoYmFzZSAxNikJCVRoZXJtYWxvZ2ljIENvcnBvcmF0aW9uCisJCQkJMjIgS2FuZSBJbmR1c3RyaWFsIERyaXZlCisJCQkJSHVkc29uIE1BIDAxNzQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi02NyAgIChoZXgpCQlOT0RFIFJVTk5FUiwgSU5DLgorMDAwMjY3ICAgICAoYmFzZSAxNikJCU5PREUgUlVOTkVSLCBJTkMuCisJCQkJMjIwMiBOLiBGT1JCRVMgQkxWRC4KKwkJCQlUVUNTT04gQVogODU3NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTY4ICAgKGhleCkJCUhhcnJpcyBHb3Zlcm5tZW50IENvbW11bmljYXRpb25zCiswMDAyNjggICAgIChiYXNlIDE2KQkJSGFycmlzIEdvdmVybm1lbnQgQ29tbXVuaWNhdGlvbnMKKwkJCQlTeXN0ZW1zIERpdmlzaW9uCisJCQkJUC5PLiBCb3ggMzcgTVM6IDEtNTg1NgorCQkJCU1lbGJvdXJuZSBGTCAzMjkwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNjkgICAoaGV4KQkJTmFkYXRlbCBDby4sIEx0ZAorMDAwMjY5ICAgICAoYmFzZSAxNikJCU5hZGF0ZWwgQ28uLCBMdGQKKwkJCQk5RiBDb1dlbGwgQmxkZywgNjYtMSBCYW5wby1Eb25nCisJCQkJU2VvY2hvLUd1LCBTZW91bCwKKwkJCQlLT1JFQSAxMzctMDQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTZBICAgKGhleCkJCUNvY2VzcyBUZWxlY29tIENvLiwgTHRkLgorMDAwMjZBICAgICAoYmFzZSAxNikJCUNvY2VzcyBUZWxlY29tIENvLiwgTHRkLgorCQkJCVJlc2VhcmNoICYgRGV2ZWxvcG1lbnQgRGVwdC4KKwkJCQk0MywgWW9pZG8tRG9uZywgWW91bmdkZXVuZ3BvLUt1CisJCQkJU2VvdWwgU2VvdWwgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItNkIgICAoaGV4KQkJQkNNIENvbXB1dGVycyBDby4sIEx0ZC4KKzAwMDI2QiAgICAgKGJhc2UgMTYpCQlCQ00gQ29tcHV0ZXJzIENvLiwgTHRkLgorCQkJCTRGLTEsIE5vLiA2NiwgU2VjIDIsCisJCQkJTmFuIEthbiBSZC4sIEx1LUNodSBIc2luZywgVGFvIFl1YW4KKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItNkMgICAoaGV4KQkJUGhpbGlwcyBDRlQKKzAwMDI2QyAgICAgKGJhc2UgMTYpCQlQaGlsaXBzIENGVAorCQkJCUJ1aWxkaW5nIFNBTiA2CisJCQkJUC5PLiBCb3ggMjE4IDU2MDAgTUQgRWluZGhvdmVuCisJCQkJVGhlIE5ldGhlcmxhbmRzCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDItNkQgICAoaGV4KQkJQWRlcHQgVGVsZWNvbQorMDAwMjZEICAgICAoYmFzZSAxNikJCUFkZXB0IFRlbGVjb20KKwkJCQlBdmVudWUgZGUgbCdFdXJvcGUKKwkJCQlCUCAxNjEgRi03MTIwNCBMZSBDcmV1c290IENlZGV4CisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTAyLTZFICAgKGhleCkJCU5lR2VOIEFjY2VzcywgSW5jLgorMDAwMjZFICAgICAoYmFzZSAxNikJCU5lR2VOIEFjY2VzcywgSW5jLgorCQkJCTMzIEJvc3RvbiBQb3N0IFJkLiBXZXN0CisJCQkJU3VpdGUgMzYwCisJCQkJTWFybGJvcm91Z2ggTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTZGICAgKGhleCkJCVNlbmFvIEludGVybmF0aW9uYWwgQ28uLCBMdGQuCiswMDAyNkYgICAgIChiYXNlIDE2KQkJU2VuYW8gSW50ZXJuYXRpb25hbCBDby4sIEx0ZC4KKwkJCQkyRiwgTm8uIDUzMSwgQ2h1bmctQ2hlbmcgUmQuLAorCQkJCUhzaW4tVGllbiBDaXR5LCBUYWlwZWkgQ291bnR5LAorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItNzAgICAoaGV4KQkJQ3Jld2F2ZSBDby4sIEx0ZC4KKzAwMDI3MCAgICAgKGJhc2UgMTYpCQlDcmV3YXZlIENvLiwgTHRkLgorCQkJCUY3LCBQdXJldW4gQmxkZy4sIDI4LTEKKwkJCQlKYW13b24tZG9uZywgU2VvY2hvLWd1CisJCQkJU2VvdWwgS09SRUEgMTM3LTAzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi03MSAgIChoZXgpCQlaaG9uZSBUZWNobm9sb2dpZXMKKzAwMDI3MSAgICAgKGJhc2UgMTYpCQlaaG9uZSBUZWNobm9sb2dpZXMKKwkJCQk3MDAxIE9ha3BvcnQgU3RyZWV0CisJCQkJT2FrbGFuZCBDQSA5NDYyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNzIgICAoaGV4KQkJQ0MmQyBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDI3MiAgICAgKGJhc2UgMTYpCQlDQyZDIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCThGLCAxNTAsIENoaWVuIEkgUmQuLCBDaHVuZyBIbyBDaXR5LAorCQkJCVRhaXBlaSBDb3VudHkgMjM1IFRhaXdhbiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTczICAgKGhleCkJCUNvcmlvbGlzIE5ldHdvcmtzCiswMDAyNzMgICAgIChiYXNlIDE2KQkJQ29yaW9saXMgTmV0d29ya3MKKwkJCQkzMzAgQ29kbWFuaGlsbCBSb2FkCisJCQkJQm94Ym9yb3VnaCBNQSAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItNzQgICAoaGV4KQkJVG9tbXkgVGVjaG5vbG9naWVzIENvcnAuCiswMDAyNzQgICAgIChiYXNlIDE2KQkJVG9tbXkgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJIzQwNyBIZWVob29uIEJsZAorCQkJCTExMC0xIEt1cm8tZG9uZywgS3Vyby1rdQorCQkJCVNlb3VsIFNlb3VsIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTc1ICAgKGhleCkJCVNNQVJUIFRlY2hub2xvZ2llcywgSW5jLgorMDAwMjc1ICAgICAoYmFzZSAxNikJCVNNQVJUIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTM2MzYgUmVzZWFyY2ggIFJvYWQgTlcKKwkJCQlDYWxnYXJ5LCBBbGJlcnRhICBUMkwxWTEKKwkJCQlDQU5BREEKKworMDAtMDItNzYgICAoaGV4KQkJUHJpbWF4IEVsZWN0cm9uaWNzIEx0ZC4KKzAwMDI3NiAgICAgKGJhc2UgMTYpCQlQcmltYXggRWxlY3Ryb25pY3MgTHRkLgorCQkJCU5vLiA2NjksIFJ1ZXkgS3VhbmcgUm9hZCwgTmVpaHUKKwkJCQlUYWlwZWkgVGFpd2FuLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLTc3ICAgKGhleCkJCUNhc2ggU3lzdGVtZXMgSW5kdXN0cmllCiswMDAyNzcgICAgIChiYXNlIDE2KQkJQ2FzaCBTeXN0ZW1lcyBJbmR1c3RyaWUKKwkJCQlUZWNobm9wYXJjIEVwc2lsb24KKwkJCQlSZCAxMDAgODM3MDAgU3QgUmFwaGFlbAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wMi03OCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm8tTWVjaGFuaWNzIENvLiwgTHRkLgorMDAwMjc4ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryby1NZWNoYW5pY3MgQ28uLCBMdGQuCisJCQkJMzE0LCBNYWUtdGFuLWRvbmcsCisJCQkJUGFpLWRhbC1ndSwgS3lvdW5nLWdpLWRvLAorCQkJCVN1d29uIFN1d29uIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLTc5ICAgKGhleCkJCUNvbnRyb2wgQXBwbGljYXRpb25zLCBMdGQuCiswMDAyNzkgICAgIChiYXNlIDE2KQkJQ29udHJvbCBBcHBsaWNhdGlvbnMsIEx0ZC4KKwkJCQkzIFRldnVvdCBIYWFyZXRzIFN0LgorCQkJCVRlbC1Bdml2IDY5NTQ2CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTAyLTdBICAgKGhleCkJCUlPSSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDAyN0EgICAgIChiYXNlIDE2KQkJSU9JIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Ri0zIE5vLiAxMjUgTGFuZSAyMzUsCisJCQkJUGFvIENoaWFvIFJvYWQgSHNpbiBUaWVuIENpdHksCisJCQkJVGFpcGVpIFRBSVdBTiwgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi03QiAgIChoZXgpCQlBbXBsaWZ5IE5ldCwgSW5jLgorMDAwMjdCICAgICAoYmFzZSAxNikJCUFtcGxpZnkgTmV0LCBJbmMuCisJCQkJNDczODEgQmF5c2lkZSBQYXJrd2F5CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItN0MgICAoaGV4KQkJVHJpbGl0aGljLCBJbmMuCiswMDAyN0MgICAgIChiYXNlIDE2KQkJVHJpbGl0aGljLCBJbmMuCisJCQkJOTIwMiBFLiAzM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjIzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItN0QgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMjdEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTdFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDI3RSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi03RiAgIChoZXgpCQlhc2stdGVjaG5vbG9naWVzLmNvbQorMDAwMjdGICAgICAoYmFzZSAxNikJCWFzay10ZWNobm9sb2dpZXMuY29tCisJCQkJMzYgV2VsbGluZ3RvbiBCdXNpbmVzcyBQYXJrCisJCQkJRHVrZXMgUmlkZSwgQ3Jvd3Rob3JuZSBCZXJrc2hpcmUgUkc0NSA2TAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLTgwICAgKGhleCkJCU11IE5ldCwgSW5jLgorMDAwMjgwICAgICAoYmFzZSAxNikJCU11IE5ldCwgSW5jLgorCQkJCTQ0MiBNYXJyZXR0IFJvYWQKKwkJCQlTdWl0ZSA5CisJCQkJTGV4aW5ndG9uIE1BIDAyNDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi04MSAgIChoZXgpCQlNYWRnZSBMdGQuCiswMDAyODEgICAgIChiYXNlIDE2KQkJTWFkZ2UgTHRkLgorCQkJCU1hZGdlIEhvdXNlCisJCQkJUHJpb3JzIFdheQorCQkJCU1haW5kZW5oZWFkIEJlcmtzaGlyZSBTTDYgMkhQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDItODIgICAoaGV4KQkJVmlhQ2xpeCwgSW5jLgorMDAwMjgyICAgICAoYmFzZSAxNikJCVZpYUNsaXgsIEluYy4KKwkJCQkxNDAwIERlbGwgQXZlLiwgU3VpdGUgQgorCQkJCUNhbXBiZWxsIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi04MyAgIChoZXgpCQlTcGVjdHJ1bSBDb250cm9scywgSW5jLgorMDAwMjgzICAgICAoYmFzZSAxNikJCVNwZWN0cnVtIENvbnRyb2xzLCBJbmMuCisJCQkJUE8gQm94IDU1MzMKKwkJCQlCZWxsZXZ1ZSBXQSA5ODAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItODQgICAoaGV4KQkJQVJFVkEgVCZECiswMDAyODQgICAgIChiYXNlIDE2KQkJQVJFVkEgVCZECisJCQkJQXZlbnVlIGRlIEZpZ3VpZXJlcyBCUCA3NQorCQkJCTM0OTc1IExBVFRFUyBDZWRleAorCQkJCUZSQU5DRQorCiswMC0wMi04NSAgIChoZXgpCQlSaXZlcnN0b25lIE5ldHdvcmtzCiswMDAyODUgICAgIChiYXNlIDE2KQkJUml2ZXJzdG9uZSBOZXR3b3JrcworCQkJCTUyMDAgR3JlYXQgQW1lcmljYSBQYXJrd2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTg2ICAgKGhleCkJCU9jY2FtIE5ldHdvcmtzCiswMDAyODYgICAgIChiYXNlIDE2KQkJT2NjYW0gTmV0d29ya3MKKwkJCQk0MTgzIFN0YXRlIFN0cmVldAorCQkJCVNhbnRhIEJhcmJhcmEgQ0EgOTMxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTg3ICAgKGhleCkJCUFkYXBjb20KKzAwMDI4NyAgICAgKGJhc2UgMTYpCQlBZGFwY29tCisJCQkJMTcyLUEgQ29tcG9uZW50IERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTg4ICAgKGhleCkJCUdMT0JBTCBWSUxMQUdFIENPTU1VTklDQVRJT04KKzAwMDI4OCAgICAgKGJhc2UgMTYpCQlHTE9CQUwgVklMTEFHRSBDT01NVU5JQ0FUSU9OCisJCQkJMTE0NCBFQVNUIEFSUVVFUyBBVkUuCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi04OSAgIChoZXgpCQlETkUgVGVjaG5vbG9naWVzCiswMDAyODkgICAgIChiYXNlIDE2KQkJRE5FIFRlY2hub2xvZ2llcworCQkJCTUwIEJhcm5lcyBQYXJrIE4KKwkJCQlXYWxsaW5nZm9yZCBDVCAwNjQ5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOEEgICAoaGV4KQkJQW1iaXQgTWljcm9zeXN0ZW1zIENvcnBvcmF0aW9uCiswMDAyOEEgICAgIChiYXNlIDE2KQkJQW1iaXQgTWljcm9zeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJNUYtMSwgNSBIc2luLUFuIFJvYWQgSHNpbmNodSwKKwkJCQlTY2llbmNlIEJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLThCICAgKGhleCkJCVZEU0wgU3lzdGVtcyBPWQorMDAwMjhCICAgICAoYmFzZSAxNikJCVZEU0wgU3lzdGVtcyBPWQorCQkJCVRla25paWthbnRpZSAxMgorCQkJCTAyIDE1MCBFc3BvbworCQkJCUZJTkxBTkQKKwkJCQlGSU5MQU5ECisKKzAwLTAyLThDICAgKGhleCkJCU1pY3JlbC1TeW5lcmd5IFNlbWljb25kdWN0b3IKKzAwMDI4QyAgICAgKGJhc2UgMTYpCQlNaWNyZWwtU3luZXJneSBTZW1pY29uZHVjdG9yCisJCQkJMzI1MCBTY290dCBCb3VsZXZhcmQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOEQgICAoaGV4KQkJTW92aXRhIFRlY2hub2xvZ2llcywgSW5jLgorMDAwMjhEICAgICAoYmFzZSAxNikJCU1vdml0YSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQlOby4gMjYgV3UtQ2h1YW4gN3RoIFJvYWQsCisJCQkJV3UtS3UgSW5kdXN0cmlhbCBQYXJrCisJCQkJVGFpcGVpIFRhaXdhbiwgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi04RSAgIChoZXgpCQlSYXBpZCA1IE5ldHdvcmtzLCBJbmMuCiswMDAyOEUgICAgIChiYXNlIDE2KQkJUmFwaWQgNSBOZXR3b3JrcywgSW5jLgorCQkJCTE4MCBCYXl0ZWNoIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQtMjMwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOEYgICAoaGV4KQkJR2xvYmV0ZWssIEluYy4KKzAwMDI4RiAgICAgKGJhc2UgMTYpCQlHbG9iZXRlaywgSW5jLgorCQkJCTE2MDcgQWtyb24gUGVuaW5zdWxhIFJkLgorCQkJCVN1aXRlIDEwMworCQkJCUFrcm9uIE9IIDQ0MzEzLTUxOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTkwICAgKGhleCkJCVdvb3JpZ2lzb29sLCBJbmMuCiswMDAyOTAgICAgIChiYXNlIDE2KQkJV29vcmlnaXNvb2wsIEluYy4KKwkJCQlZb29wb29uZyBCbGRnLgorCQkJCTE1OTUtMSwgQm9uZ2NodW0tN2RvbmcsCisJCQkJU2VvdWwgU2VvdWwgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItOTEgICAoaGV4KQkJT3BlbiBOZXR3b3JrIENvLiwgTHRkLgorMDAwMjkxICAgICAoYmFzZSAxNikJCU9wZW4gTmV0d29yayBDby4sIEx0ZC4KKwkJCQlTZWlzaGluIEJsZGcuLCAyLTUtMTAgU2hpbmp1a3UKKwkJCQlTaGluanVrdS1rdSwgVG9reW8KKwkJCQlKQVBBTiAxNjAtMDAyMgorCQkJCUpBUEFOCisKKzAwLTAyLTkyICAgKGhleCkJCUxvZ2ljIElubm92YXRpb25zLCBJbmMuCiswMDAyOTIgICAgIChiYXNlIDE2KQkJTG9naWMgSW5ub3ZhdGlvbnMsIEluYy4KKwkJCQk2MjA1IEx1c2sgQmx2ZC4KKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEtMjczMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOTMgICAoaGV4KQkJU29saWQgRGF0YSBTeXN0ZW1zCiswMDAyOTMgICAgIChiYXNlIDE2KQkJU29saWQgRGF0YSBTeXN0ZW1zCisJCQkJMjk0NSBPYWttZWFkIFZpbGxhZ2UgQ291cnQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOTQgICAoaGV4KQkJVG9reW8gU29rdXNoaW4gQ28uLCBMdGQuCiswMDAyOTQgICAgIChiYXNlIDE2KQkJVG9reW8gU29rdXNoaW4gQ28uLCBMdGQuCisJCQkJNS0xNi0xMiBOaXNoaS1OaXBwb3JpCisJCQkJQXJha2F3YS1rdSwgVG9reW8gMTE2LTAwMTMKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAyLTk1ICAgKGhleCkJCUlQLkFjY2VzcyBMaW1pdGVkCiswMDAyOTUgICAgIChiYXNlIDE2KQkJSVAuQWNjZXNzIExpbWl0ZWQKKwkJCQlNZWxib3VybiBTY2llbmNlIFBhcmsKKwkJCQlDYW1icmlkZ2UgUm9hZCwgTWVsYm91cm4gUm95c3RvbiwgSGFydGZvCisJCQkJU0c4IDZFRSBTRzggNkVFIFUuSy4KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMi05NiAgIChoZXgpCQlMZWN0cm9uIENvLC4gTHRkLgorMDAwMjk2ICAgICAoYmFzZSAxNikJCUxlY3Ryb24gQ28sLiBMdGQuCisJCQkJOUYsIE5vLjE3MSwgU2VjLiAyLCBUYXR1bmcgUmQuLAorCQkJCUhzaWNoaWggQ2l0eSwgVGFpcGVpIEhzaWVuIDIyMSwKKwkJCQlUYWl3YW4gVGFpd2FuIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItOTcgICAoaGV4KQkJQy1DT1IubmV0CiswMDAyOTcgICAgIChiYXNlIDE2KQkJQy1DT1IubmV0CisJCQkJNjAgRGVjaWJlbCBSb2FkCisJCQkJQk1TIEVuZ2luZWVyaW5nCisJCQkJU3RhdGUgQ29sbGVnZSBQQSAxNjgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItOTggICAoaGV4KQkJQnJvYWRmcmFtZSBDb3Jwb3JhdGlvbgorMDAwMjk4ICAgICAoYmFzZSAxNikJCUJyb2FkZnJhbWUgQ29ycG9yYXRpb24KKwkJCQk1ODI4IE1vb25zdG9uZSBBdmUuCisJCQkJU3VpdGUgMjIwCisJCQkJQWx0YSBMb21hIENBIDkxNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi05OSAgIChoZXgpCQlBcGV4LCBJbmMuCiswMDAyOTkgICAgIChiYXNlIDE2KQkJQXBleCwgSW5jLgorCQkJCTk5MTEgV2lsbG93cyBSZC4gTi5FLgorCQkJCVJlZG1vbmQgV0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTlBICAgKGhleCkJCVN0b3JhZ2UgQXBwcworMDAwMjlBICAgICAoYmFzZSAxNikJCVN0b3JhZ2UgQXBwcworCQkJCTMgUHJpbmNlc3MgUm9hZAorCQkJCUxhd3JlbmNldmlsbGUgTkogMDg2NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTlCICAgKGhleCkJCUtyZWF0ZWwgQ29tbXVuaWNhdGlvbnMgQUIKKzAwMDI5QiAgICAgKGJhc2UgMTYpCQlLcmVhdGVsIENvbW11bmljYXRpb25zIEFCCisJCQkJVGVrbmlrcmluZ2VuIDRDCisJCQkJU0UtNTgzMzAgTGlua29waW5nCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLTAyLTlDICAgKGhleCkJCTNDT00KKzAwMDI5QyAgICAgKGJhc2UgMTYpCQkzQ09NCisJCQkJNDA1IFNQUklORyBISUxMIFJPQUQKKwkJCQlTSEFST04gTkggMDM0NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLTlEICAgKGhleCkJCU1lcml4IENvcnAuCiswMDAyOUQgICAgIChiYXNlIDE2KQkJTWVyaXggQ29ycC4KKwkJCQlKaW4tU3UgQnVpbGRpbmcsIDQ5LTE2CisJCQkJTWFjaHVtLURvbmcsIFNvbmctUGEta3UKKwkJCQlTZW91bCBTZW91bCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi05RSAgIChoZXgpCQlJbmZvcm1hdGlvbiBFcXVpcG1lbnQgQ28uLCBMdGQuCiswMDAyOUUgICAgIChiYXNlIDE2KQkJSW5mb3JtYXRpb24gRXF1aXBtZW50IENvLiwgTHRkLgorCQkJCTc0MC0xIEVhaG8gQmxkZy4sIFllb2sgU2FtLURvbmcKKwkJCQlLYW5nbmFtLWt1CisJCQkJU2VvdWwgS29yZWEgIzEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItOUYgICAoaGV4KQkJTC0zIENvbW11bmljYXRpb24gQXZpYXRpb24gUmVjb3JkZXJzCiswMDAyOUYgICAgIChiYXNlIDE2KQkJTC0zIENvbW11bmljYXRpb24gQXZpYXRpb24gUmVjb3JkZXJzCisJCQkJUC5PLiBCb3ggMzA0MQorCQkJCVNhcmFzb3RhIEZMIDM0MjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1BMCAgIChoZXgpCQlGbGF0c3RhY2sgTHRkLgorMDAwMkEwICAgICAoYmFzZSAxNikJCUZsYXRzdGFjayBMdGQuCisJCQkJMTExMiBCdWRhcGVzdAorCQkJCVBldGVyaGVneWkgVVQgOTgKKwkJCQlIVU5HQVJZCisJCQkJSFVOR0FSWQorCiswMC0wMi1BMSAgIChoZXgpCQlXb3JsZCBXaWRlIFBhY2tldHMKKzAwMDJBMSAgICAgKGJhc2UgMTYpCQlXb3JsZCBXaWRlIFBhY2tldHMKKwkJCQlQTyBCb3ggMTQ2NDUKKwkJCQlTcG9rYW5lIFdBIDk5MjE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1BMiAgIChoZXgpCQlIaWxzY2hlciBHbWJICiswMDAyQTIgICAgIChiYXNlIDE2KQkJSGlsc2NoZXIgR21iSAorCQkJCVJoZWluc3RyYcODxbhlIDE1CisJCQkJNjU3OTUgSGF0dGVyc2hlaW0KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMi1BMyAgIChoZXgpCQlBQkIgU3dpdHplcmxhbmQgTHRkLCBQb3dlciBTeXN0ZW1zCiswMDAyQTMgICAgIChiYXNlIDE2KQkJQUJCIFN3aXR6ZXJsYW5kIEx0ZCwgUG93ZXIgU3lzdGVtcworCQkJCUJydWdnZXJzdHJhc3NlIDcyCisJCQkJQ0gtNTQwMAorCQkJCUJhZGVuICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wMi1BNCAgIChoZXgpCQlBZGRQYWMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDJBNCAgICAgKGJhc2UgMTYpCQlBZGRQYWMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkzRiBKZW91bmcgQW0gQmxkZy4sIDc2OS0xMgorCQkJCVllb2tzYW0tZG9uZywgS2FuZ25hbS1ndSwKKwkJCQlTZW91bCBTZW91bCBLb3JlYQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi1BNSAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAwMkE1ICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUE2ICAgKGhleCkJCUVmZmluZXQgU3lzdGVtcyBDby4sIEx0ZC4KKzAwMDJBNiAgICAgKGJhc2UgMTYpCQlFZmZpbmV0IFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJWXVnb25nIEJsZGcuIDUwMgorCQkJCTExNDQtMSwgU2FuYm9uLURvbmcgS3VucG8tc2hpLCBLeW9uZ2dpLUQKKwkJCQlLb3JlYQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi1BNyAgIChoZXgpCQlWaXZhY2UgTmV0d29ya3MKKzAwMDJBNyAgICAgKGJhc2UgMTYpCQlWaXZhY2UgTmV0d29ya3MKKwkJCQkyNzMwIE9yY2hhcmQgUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1BOCAgIChoZXgpCQlBaXIgTGluayBUZWNobm9sb2d5CiswMDAyQTggICAgIChiYXNlIDE2KQkJQWlyIExpbmsgVGVjaG5vbG9neQorCQkJCUJldGhlbCBCbGRnLiAzMDMKKwkJCQkzMjQtMSBZYW5namVlLURvbmcsIFNlb2Noby1HdQorCQkJCVNlb3VsIEtPUkVBIDEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItQTkgICAoaGV4KQkJUkFDT00sIHMuci5vLgorMDAwMkE5ICAgICAoYmFzZSAxNikJCVJBQ09NLCBzLnIuby4KKwkJCQlNaXJvdmEgMTI4MywgTm92ZSBNZXN0byBuYSBNb3JhdmUKKwkJCQk1OTIgMzEgQ3plY2ggcmVwdWJsaWMKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0wMi1BQSAgIChoZXgpCQlQTGNvbSBDby4sIEx0ZC4KKzAwMDJBQSAgICAgKGJhc2UgMTYpCQlQTGNvbSBDby4sIEx0ZC4KKwkJCQlIb3N1bmcgQi9ELCAjMTA4My0xLCBIb2d5ZS1Eb25nCisJCQkJRG9uZ2FuLUt1LCBBbnlhbmctQ2l0eQorCQkJCVNvdXRoIEtvcmVhCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLUFCICAgKGhleCkJCUNUQyBVbmlvbiBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDAyQUIgICAgIChiYXNlIDE2KQkJQ1RDIFVuaW9uIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQk4RiBOby4gNjAgWmhvdXppIFN0LgorCQkJCU5laWh1IFRhaXBlaSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLUFDICAgKGhleCkJCTNQQVIgZGF0YQorMDAwMkFDICAgICAoYmFzZSAxNikJCTNQQVIgZGF0YQorCQkJCTQyMDkgVGVjaG5vbG9neSBEcml2ZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUFEICAgKGhleCkJCUhPWUEgQ29ycG9yYXRpb24KKzAwMDJBRCAgICAgKGJhc2UgMTYpCQlIT1lBIENvcnBvcmF0aW9uCisJCQkJMi03LTUgTmFrYS1PY2hpYWksIFNoaW5qdWt1LWt1LAorCQkJCVRva3lvIDE2MS04NTI1CisJCQkJSkFQQU4KKworMDAtMDItQUUgICAoaGV4KQkJU2Nhbm5leCBFbGVjdHJvbmljcyBMdGQuCiswMDAyQUUgICAgIChiYXNlIDE2KQkJU2Nhbm5leCBFbGVjdHJvbmljcyBMdGQuCisJCQkJVW5pdCA4IEVuZ2xpc2ggQnVzaW5lc3MgUGFyaworCQkJCUVuZ2xpc2ggQ2xvc2UKKwkJCQlIb3ZlICBCTjMgN0VUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDItQUYgICAoaGV4KQkJVGVsZUNydXogVGVjaG5vbG9neSwgSW5jLgorMDAwMkFGICAgICAoYmFzZSAxNikJCVRlbGVDcnV6IFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyMzkxIFF1bWUgRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUIwICAgKGhleCkJCUhva3VidSBDb21tdW5pY2F0aW9uICYgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzAwMDJCMCAgICAgKGJhc2UgMTYpCQlIb2t1YnUgQ29tbXVuaWNhdGlvbiAmIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJRnVzaGlvZ2FtaS1hemEtb2tpIDI3LTEKKwkJCQlGdWt1c2hpbWEgIDk2MC04NTE0CisJCQkJSkFQQU4KKworMDAtMDItQjEgICAoaGV4KQkJQW5yaXRzdSwgTHRkLgorMDAwMkIxICAgICAoYmFzZSAxNikJCUFucml0c3UsIEx0ZC4KKwkJCQlSdXRoZXJmb3JkIENsb3NlCisJCQkJU3RldmVuYWdlLCBIZXJ0cyBFbmdsYW5kLCBTRzEyRUYKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLUIyICAgKGhleCkJCUNhYmxldmlzaW9uCiswMDAyQjIgICAgIChiYXNlIDE2KQkJQ2FibGV2aXNpb24KKwkJCQk0MjAgQ3Jvc3N3YXlzIFBhcmsgRHJpdmUgV2VzdAorCQkJCVdvb2RidXJ5IE5ZIDExNzg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1CMyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAwMkIzICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTS9TOiAgSkYzLTQyMAorCQkJCTIxMTEgTi5FLiAyNXRoIEF2ZS4KKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUI0ICAgKGhleCkJCURBUEhORQorMDAwMkI0ICAgICAoYmFzZSAxNikJCURBUEhORQorCQkJCTEwMSBDaGF1c3NlZSBEZSBCaW5jaGUKKwkJCQk3MDAwIEhvbnMKKwkJCQlCRUxHSVVNCisJCQkJQkVMR0lVTQorCiswMC0wMi1CNSAgIChoZXgpCQlBdm5ldCwgSW5jLgorMDAwMkI1ICAgICAoYmFzZSAxNikJCUF2bmV0LCBJbmMuCisJCQkJMjIxMSBTLiA0N3RoIFN0cmVldAorCQkJCVBob2VuaXggQVogODUwMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUI2ICAgKGhleCkJCUFjcm9zc2VyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDAyQjYgICAgIChiYXNlIDE2KQkJQWNyb3NzZXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gMTE2LTIgR3VhbmctRnUgUmQuCisJCQkJU2VhIDEsIFNhbiBDaHVuZywKKwkJCQlUYWlwZWkgVGFpcGVpIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItQjcgICAoaGV4KQkJV2F0YW5hYmUgRWxlY3RyaWMgSW5kdXN0cnkgQ28uLCBMdGQuCiswMDAyQjcgICAgIChiYXNlIDE2KQkJV2F0YW5hYmUgRWxlY3RyaWMgSW5kdXN0cnkgQ28uLCBMdGQuCisJCQkJNi0xNi0xOSwgSmluZ3VtYWUsIFNoaWJ1eWEta3UKKwkJCQlUb2t5byAxNTAtMDAwMSwKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAyLUI4ICAgKGhleCkJCVdISSBLT05TVUxUIEFCCiswMDAyQjggICAgIChiYXNlIDE2KQkJV0hJIEtPTlNVTFQgQUIKKwkJCQlTY2hlZWxlZ2F0YW4gMTEKKwkJCQkxMjA0MCBBcnN0YQorCQkJCVN0b2NraG9sbSBTRS0xMTIgMjgKKwkJCQlTV0VERU4KKworMDAtMDItQjkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMkI5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUJBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDJCQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1CQiAgIChoZXgpCQlDb250aW51b3VzIENvbXB1dGluZyBDb3JwCiswMDAyQkIgICAgIChiYXNlIDE2KQkJQ29udGludW91cyBDb21wdXRpbmcgQ29ycAorCQkJCTkzODAgQ2Fycm9sbCBQYXJrIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1CQyAgIChoZXgpCQlMVkwgNyBTeXN0ZW1zLCBJbmMuCiswMDAyQkMgICAgIChiYXNlIDE2KQkJTFZMIDcgU3lzdGVtcywgSW5jLgorCQkJCTEzMDAwIFdlc3RvbiBQa3d5CisJCQkJU3VpdGUgMTA1CisJCQkJQ2FyeSBOQyAyNzUxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItQkQgICAoaGV4KQkJQmlvbmV0IENvLiwgTHRkLgorMDAwMkJEICAgICAoYmFzZSAxNikJCUJpb25ldCBDby4sIEx0ZC4KKwkJCQkzRiwgTWVkaXNvbiBWZW50dXJlIFRvd2VyLAorCQkJCTk5Ny00LCBEYWVjaGktZG9uZywgS2FuZ25hbS1ndSwgU2VvdWwsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItQkUgICAoaGV4KQkJVG90c3UgRW5naW5lZXJpbmcsIEluYy4KKzAwMDJCRSAgICAgKGJhc2UgMTYpCQlUb3RzdSBFbmdpbmVlcmluZywgSW5jLgorCQkJCSA1LTE2LTIwIFJvcHBvbmdpIE1pbmF0by1rdQorCQkJCVppcDogIDEwNi0wMDMyCisJCQkJVG9reW8gIDEwNi04NTUxCisJCQkJSkFQQU4KKworMDAtMDItQkYgICAoaGV4KQkJZG90Um9ja2V0LCBJbmMuCiswMDAyQkYgICAgIChiYXNlIDE2KQkJZG90Um9ja2V0LCBJbmMuCisJCQkJMTkwMSBTLiBCYXNjb20sIFN1aXRlIDMwMAorCQkJCUNhbXBiZWxsIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1DMCAgIChoZXgpCQlCZW5jZW50IFR6ZW5nIEluZHVzdHJ5IENvLiwgTHRkLgorMDAwMkMwICAgICAoYmFzZSAxNikJCUJlbmNlbnQgVHplbmcgSW5kdXN0cnkgQ28uLCBMdGQuCisJCQkJM3JkIGZsLiwgTm8uIDMgUnVleSBLdWFuZyBSZC4sCisJCQkJTmVpIEh1IERpc3QuLCBUYWlwZWkgMTE0CisJCQkJVGFpd2FuIFRhaXdhbiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLUMxICAgKGhleCkJCUlubm92YXRpdmUgRWxlY3Ryb25pYyBEZXNpZ25zLCBJbmMuCiswMDAyQzEgICAgIChiYXNlIDE2KQkJSW5ub3ZhdGl2ZSBFbGVjdHJvbmljIERlc2lnbnMsIEluYy4KKwkJCQk5NzAxIFRheWxvcnN2aWxsZSBSZC4KKwkJCQlMb3Vpc3ZpbGxlIEtZIDQwMjk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1DMiAgIChoZXgpCQlOZXQgVmlzaW9uIFRlbGVjb20KKzAwMDJDMiAgICAgKGJhc2UgMTYpCQlOZXQgVmlzaW9uIFRlbGVjb20KKwkJCQkjMjA2IFNvZnR3YXJlIFN1cHBvcnQgQ2VudGVyCisJCQkJNDggSmFuZy1Eb25nIFl1c29uZy1HdSwgVGFlam9uCisJCQkJMzA1LTM0MyBSZXAuIG9mIEtvcmVhCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLUMzICAgKGhleCkJCUFyZWxuZXQgTHRkLgorMDAwMkMzICAgICAoYmFzZSAxNikJCUFyZWxuZXQgTHRkLgorCQkJCTMgSGF5YXJkZW4gU3QuCisJCQkJWWF2bmUgNzA2MDAKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDItQzQgICAoaGV4KQkJVmVjdG9yIEludGVybmF0aW9uYWwgQlZCQQorMDAwMkM0ICAgICAoYmFzZSAxNikJCVZlY3RvciBJbnRlcm5hdGlvbmFsIEJWQkEKKwkJCQlUZWNobm9sb2dpZWxhYW4gNAorCQkJCTMwMDEgTGV1dmVuIAorCQkJCUJFTEdJVU0KKworMDAtMDItQzUgICAoaGV4KQkJRXZlcnR6IE1pY3Jvc3lzdGVtcyBMdGQuCiswMDAyQzUgICAgIChiYXNlIDE2KQkJRXZlcnR6IE1pY3Jvc3lzdGVtcyBMdGQuCisJCQkJNTI4OCBKb2huIEx1Y2FzIERyaXZlCisJCQkJQnVybGluZ3RvbgorCQkJCU9udGFyaW8gTDdMIDVaOQorCQkJCUNBTkFEQQorCiswMC0wMi1DNiAgIChoZXgpCQlEYXRhIFRyYWNrIFRlY2hub2xvZ3kgUExDCiswMDAyQzYgICAgIChiYXNlIDE2KQkJRGF0YSBUcmFjayBUZWNobm9sb2d5IFBMQworCQkJCTE1MyBTb21lcmZvcmQgUm9hZAorCQkJCUNocmlzdGNodXJjaCwgRG9yc2V0IEJIMjMgM1RZLAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDItQzcgICAoaGV4KQkJQUxQUyBFTEVDVFJJQyBDby4sIEx0ZC4KKzAwMDJDNyAgICAgKGJhc2UgMTYpCQlBTFBTIEVMRUNUUklDIENvLiwgTHRkLgorCQkJCTEtMi0xLCBPa2lub3VjaGksIFNhbWEtQ2l0eSwKKwkJCQlGdWt1c2hpbWEtcHJlZiwgOTc2LTg1MDEsCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMi1DOCAgIChoZXgpCQlUZWNobm9jb20gQ29tbXVuaWNhdGlvbnMgVGVjaG5vbG9neSAocHRlKSBMdGQKKzAwMDJDOCAgICAgKGJhc2UgMTYpCQlUZWNobm9jb20gQ29tbXVuaWNhdGlvbnMgVGVjaG5vbG9neSAocHRlKSBMdGQKKwkJCQkxODkgS2FraSBCdWNraXQgQXZlbnVlIDEKKwkJCQkjMDMtMDMgU2h1biBMaSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTaW5nYXBvcmUgNDE2MDI5CisJCQkJU0lOR0FQT1JFCisKKzAwLTAyLUM5ICAgKGhleCkJCU1lbGxhbm94IFRlY2hub2xvZ2llcworMDAwMkM5ICAgICAoYmFzZSAxNikJCU1lbGxhbm94IFRlY2hub2xvZ2llcworCQkJCTM1MCBPYWttZWFkIFBhcmt3YXkKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUNBICAgKGhleCkJCUVuZFBvaW50cywgSW5jLgorMDAwMkNBICAgICAoYmFzZSAxNikJCUVuZFBvaW50cywgSW5jLgorCQkJCTQgUHJlc3RvbiBDb3VydAorCQkJCUJlZGZvcmQgTUEgMDE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUNCICAgKGhleCkJCVRyaVN0YXRlIEx0ZC4KKzAwMDJDQiAgICAgKGJhc2UgMTYpCQlUcmlTdGF0ZSBMdGQuCisJCQkJU2hpbm9uYWdhIEJsZy4gNC0xMS0xOSBIb2trby1jaG8KKwkJCQlUb21ha29tYWktc2hpLCBIb2trYWlkbworCQkJCTA1My0wODUyIDA1My0wODUyIEphcGFuCisJCQkJSkFQQU4KKworMDAtMDItQ0MgICAoaGV4KQkJTS5DLkMuSQorMDAwMkNDICAgICAoYmFzZSAxNikJCU0uQy5DLkkKKwkJCQkzNTIwIEtydW1zIENvcm5lcnMgUmQuCisJCQkJSXRoYWNhIE5ZIDE0ODUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1DRCAgIChoZXgpCQlUZWxlRHJlYW0sIEluYy4KKzAwMDJDRCAgICAgKGJhc2UgMTYpCQlUZWxlRHJlYW0sIEluYy4KKwkJCQlTaGluaHdhIEJsZGcuLCA5NDAtMTAgRGFlY2hpLURvbmcKKwkJCQlLYW5nbmFtLWt1LCBTZW91bCAxMzUtMjgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLUNFICAgKGhleCkJCUZveEpldCwgSW5jLgorMDAwMkNFICAgICAoYmFzZSAxNikJCUZveEpldCwgSW5jLgorCQkJCTIwMTYgRS4gUmFuZGFsIE1pbGwgUmQuICM0MDkKKwkJCQlBcmxpbmd0b24gVFggNzYwMTEtODIyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItQ0YgICAoaGV4KQkJWnlHYXRlIENvbW11bmljYXRpb25zLCBJbmMuCiswMDAyQ0YgICAgIChiYXNlIDE2KQkJWnlHYXRlIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMkYsIE5vLjQ4LCBMdW5nLUNoaW4gUm9hZAorCQkJCUx1bmctVGFuLCBUYW55dWFuLAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItRDAgICAoaGV4KQkJQ29tZGlhbCBDb3Jwb3JhdGlvbgorMDAwMkQwICAgICAoYmFzZSAxNikJCUNvbWRpYWwgQ29ycG9yYXRpb24KKwkJCQkxMTgwIFNlbWlub2xlIFRyYWlsCisJCQkJQ2hhcmxvdHRlc3ZpbGxlIFZBIDIyOTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1EMSAgIChoZXgpCQlWaXZvdGVrLCBJbmMuCiswMDAyRDEgICAgIChiYXNlIDE2KQkJVml2b3RlaywgSW5jLgorCQkJCTVGLTEsIDE2OC0xLCBMaWVuLUNoZW4gUmQsCisJCQkJQ2h1bmctSG8sIFRhaXBlaSBDb3VudHksCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMi1EMiAgIChoZXgpCQlXb3Jrc3RhdGlvbiBBRworMDAwMkQyICAgICAoYmFzZSAxNikJCVdvcmtzdGF0aW9uIEFHCisJCQkJU2NoYWZmaGF1c2Vyc3RyLiA1NQorCQkJCUNILTgxNTIgR2xhdHRicnVnZworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTAyLUQzICAgKGhleCkJCU5ldEJvdHosIEluYy4KKzAwMDJEMyAgICAgKGJhc2UgMTYpCQlOZXRCb3R6LCBJbmMuCisJCQkJMTEwMDQ0IFJlc2VhcmNoIEJsdmQuCisJCQkJU3VpdGUgQy0xMDAKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUQ0ICAgKGhleCkJCVBEQSBQZXJpcGhlcmFscywgSW5jLgorMDAwMkQ0ICAgICAoYmFzZSAxNikJCVBEQSBQZXJpcGhlcmFscywgSW5jLgorCQkJCTIwNSBPcmFuZ2UgU3QuCisJCQkJVGhpcmQgRmxvb3IKKwkJCQlOZXcgSGF2ZW4gQ1QgMDY1MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUQ1ICAgKGhleCkJCUFDUgorMDAwMkQ1ICAgICAoYmFzZSAxNikJCUFDUgorCQkJCUNhcmRvdWxpbmVzIEIyCisJCQkJMTM2MCBydGUgRG9saW5pcyAwNjU2MCBWYWxib25uZQorCQkJCUZSQU5DRQorCiswMC0wMi1ENiAgIChoZXgpCQlOSUNFIFN5c3RlbXMKKzAwMDJENiAgICAgKGJhc2UgMTYpCQlOSUNFIFN5c3RlbXMKKwkJCQk4IEhhcG5pbmEgU3QuLCBQT0IgNjkwCisJCQkJUmEnQW5hbmEgNDMxMDcKKwkJCQlJU1JBRUwKKworMDAtMDItRDcgICAoaGV4KQkJRU1QRUcgTHRkCiswMDAyRDcgICAgIChiYXNlIDE2KQkJRU1QRUcgTHRkCisJCQkJMSBTaWduZXQgQ291cnQKKwkJCQlTd2FubidzIFJvYWQgQ2FtYnJpZGdlLCBVSworCQkJCUNCNSA4TEEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMi1EOCAgIChoZXgpCQlCUkVDSVMgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzAwMDJEOCAgICAgKGJhc2UgMTYpCQlCUkVDSVMgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKwkJCQkyMDI1IEdhdGV3YXkgUGxhY2UsIFN1aXRlIDEzMgorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1EOSAgIChoZXgpCQlSZWxpYWJsZSBDb250cm9scworMDAwMkQ5ICAgICAoYmFzZSAxNikJCVJlbGlhYmxlIENvbnRyb2xzCisJCQkJMTIwIEhhbGxvd2VsbCBSb2FkCisJCQkJVmljdG9yaWEsICBCLkMuIFY5QSA3SzIKKwkJCQlDQU5BREEKKworMDAtMDItREEgICAoaGV4KQkJRXhpTyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMkRBICAgICAoYmFzZSAxNikJCUV4aU8gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyMzYyIFF1bWUgRHJpdmUKKwkJCQlTdWl0ZSBDCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLURCICAgKGhleCkJCU5FVFNFQworMDAwMkRCICAgICAoYmFzZSAxNikJCU5FVFNFQworCQkJCTEzNTA1IER1bGxlcyBUZWNobm9sb2d5IERyaXZlCisJCQkJU3VpdGUgMQorCQkJCUhlcm5hbmRvbiBWQSAyMDE3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItREMgICAoaGV4KQkJRnVqaXRzdSBHZW5lcmFsIExpbWl0ZWQKKzAwMDJEQyAgICAgKGJhc2UgMTYpCQlGdWppdHN1IEdlbmVyYWwgTGltaXRlZAorCQkJCTExMTYsIFN1ZW5hZ2EsIFRha2F0c3UtS3UsCisJCQkJS2F3YXNha2ktQ2l0eSwgS2FuYWdhd2EtUHJlZi4sCisJCQkJMjEzLTg1MDIgCisJCQkJSkFQQU4KKworMDAtMDItREQgICAoaGV4KQkJQnJvbWF4IENvbW11bmljYXRpb25zLCBMdGQuCiswMDAyREQgICAgIChiYXNlIDE2KQkJQnJvbWF4IENvbW11bmljYXRpb25zLCBMdGQuCisJCQkJTm8uIDIwIEt1YW5nIEZ1IFJvYWQsCisJCQkJSHNpbiBDaHUgSW5kdXN0cmlhbCBQYXJrLCBIdSBLb3UsCisJCQkJSHNpbiBDaHUgMzAzICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAyLURFICAgKGhleCkJCUFzdHJvZGVzaWduLCBJbmMuCiswMDAyREUgICAgIChiYXNlIDE2KQkJQXN0cm9kZXNpZ24sIEluYy4KKwkJCQkyLTIyLTEyIEthbWlrb2RhbmEgS2EKKwkJCQlOYWthaGFyYWt1LCBLYXdhc2FpLUNpdHkKKwkJCQlLYW5hZ2F3YSAgCisJCQkJSkFQQU4KKworMDAtMDItREYgICAoaGV4KQkJTmV0IENvbSBTeXN0ZW1zLCBJbmMuCiswMDAyREYgICAgIChiYXNlIDE2KQkJTmV0IENvbSBTeXN0ZW1zLCBJbmMuCisJCQkJMTUtMywgWW9pZG8tRG9uZywKKwkJCQlZZW91bmdkb25ncG8ta3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi1FMCAgIChoZXgpCQlFVEFTIEdtYkgKKzAwMDJFMCAgICAgKGJhc2UgMTYpCQlFVEFTIEdtYkgKKwkJCQlCb3JzaWdzdHJhc3NlIDEwCisJCQkJRDcwNDY5IFN0dXR0Z2FydAorCQkJCUdFUk1BTlkKKworMDAtMDItRTEgICAoaGV4KQkJSW50ZWdyYXRlZCBOZXR3b3JrIENvcnBvcmF0aW9uCiswMDAyRTEgICAgIChiYXNlIDE2KQkJSW50ZWdyYXRlZCBOZXR3b3JrIENvcnBvcmF0aW9uCisJCQkJNzU3IFJvdXRlIDIwMi8yMDYKKwkJCQlCcmlkZ2V3YXRlciBOSiAwODgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItRTIgICAoaGV4KQkJTkRDIEluZmFyZWQgRW5naW5lZXJpbmcKKzAwMDJFMiAgICAgKGJhc2UgMTYpCQlOREMgSW5mYXJlZCBFbmdpbmVlcmluZworCQkJCTUzMTQgTi4gSXJ3aW5kYWxlIEF2ZS4KKwkJCQlJcndpbmRhbGUgQ0EgOTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUUzICAgKGhleCkJCUxJVEUtT04gQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDJFMyAgICAgKGJhc2UgMTYpCQlMSVRFLU9OIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNzM2IFMuIEhpbGx2aWV3IERyaXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUU0ICAgKGhleCkJCUpDIEhZVU4gU3lzdGVtcywgSW5jLgorMDAwMkU0ICAgICAoYmFzZSAxNikJCUpDIEhZVU4gU3lzdGVtcywgSW5jLgorCQkJCVNoaW5ib25nIEJsZGcsIDczNi02LAorCQkJCVlva3NhbS1Eb25nLCBLYW5nbmFtLUt1LAorCQkJCVNlb3VsICAoMTM1LTA4MCkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDItRTUgICAoaGV4KQkJVGltZXdhcmUgTHRkLgorMDAwMkU1ICAgICAoYmFzZSAxNikJCVRpbWV3YXJlIEx0ZC4KKwkJCQlCcm9va2ZpZWxkIEdyYW5nZQorCQkJCTc5IEZhbGluZ2UgUmQsIFJvY2tkYWxlCisJCQkJTGFuY3MgIDA0MiBHTEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMi1FNiAgIChoZXgpCQlHb3VsZCBJbnN0cnVtZW50IFN5c3RlbXMsIEluYy4KKzAwMDJFNiAgICAgKGJhc2UgMTYpCQlHb3VsZCBJbnN0cnVtZW50IFN5c3RlbXMsIEluYy4KKwkJCQk4MzMzIFJvY2tzaWRlIFJvYWQKKwkJCQlWYWxsZXkgVmlldyBPSCA0NDEyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItRTcgICAoaGV4KQkJQ0FCIEdtYkggJiBDbyBLRworMDAwMkU3ICAgICAoYmFzZSAxNikJCUNBQiBHbWJIICYgQ28gS0cKKwkJCQlXaWxoZWxtLVNjaGlja2FyZC1TdHIgMTQKKwkJCQk3NjEzMSBLYXJsc3J1aGUKKwkJCQlHRVJNQU5ZCisKKzAwLTAyLUU4ICAgKGhleCkJCUUuRC4mQS4KKzAwMDJFOCAgICAgKGJhc2UgMTYpCQlFLkQuJkEuCisJCQkJRW5lcmdpZWxhYW4gMTYKKwkJCQlJWiBCb3NkdWluIDI5NTAgS2FwZWxsZW4KKwkJCQlCRUxHSVVNCisKKzAwLTAyLUU5ICAgKGhleCkJCUNTIFN5c3RlbWVzIERlIFNlY3VyaXRlIC0gQzNTCiswMDAyRTkgICAgIChiYXNlIDE2KQkJQ1MgU3lzdGVtZXMgRGUgU2VjdXJpdGUgLSBDM1MKKwkJCQkyMywgcnVlIGRlIFNjaHdvYnNoZWltCisJCQkJNjc2MDAgQmFsZGVuaGVpbQorCQkJCUZSQU5DRQorCiswMC0wMi1FQSAgIChoZXgpCQlGb2N1cyBFbmhhbmNlbWVudHMKKzAwMDJFQSAgICAgKGJhc2UgMTYpCQlGb2N1cyBFbmhhbmNlbWVudHMKKwkJCQkxMzcwIERlbGwgQXZlLgorCQkJCUNhbXBiZWxsIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1FQiAgIChoZXgpCQlQaWNvIENvbW11bmljYXRpb25zCiswMDAyRUIgICAgIChiYXNlIDE2KQkJUGljbyBDb21tdW5pY2F0aW9ucworCQkJCTIwMDg1IFN0ZXZlbnMgQ3JlZWsgQmx2ZC4KKwkJCQlTdWl0ZSAjMTAwCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1FQyAgIChoZXgpCQlNYXNjaG9mZiBEZXNpZ24gRW5naW5lZXJpbmcKKzAwMDJFQyAgICAgKGJhc2UgMTYpCQlNYXNjaG9mZiBEZXNpZ24gRW5naW5lZXJpbmcKKwkJCQk0NDU0IENlZGFyIExha2UgUmQuICM4CisJCQkJU3QuIExvdWlzIFBhcmsgTU4gNTU0MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUVEICAgKGhleCkJCURYTyBUZWxlY29tIENvLiwgTHRkLgorMDAwMkVEICAgICAoYmFzZSAxNikJCURYTyBUZWxlY29tIENvLiwgTHRkLgorCQkJCThGLCAzMDAtMTEsIFl1bWdvay1Eb25nLAorCQkJCVNlb2Noby1LdSwgU2VvdWwgMTM3LTc4OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi1FRSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAwMkVFICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqLCBDb3BlbmhhZ2VuIFYKKwkJCQlESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0wMi1FRiAgIChoZXgpCQlDQ0MgTmV0d29yayBTeXN0ZW1zIEdyb3VwIEx0ZC4KKzAwMDJFRiAgICAgKGJhc2UgMTYpCQlDQ0MgTmV0d29yayBTeXN0ZW1zIEdyb3VwIEx0ZC4KKwkJCQkxMyBGYXJuYm9yb3VnaCBCdXNpbmVzcyBDZW50cmUKKwkJCQlFZWxtb29yIFJvYWQsIEZhcm5ib3JvdWdoLCBIYW50cywgR1UxNCA3CisJCQkJRU5HTEFORCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMi1GMCAgIChoZXgpCQlBTUUgT3B0aW1lZGlhIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDAyRjAgICAgIChiYXNlIDE2KQkJQU1FIE9wdGltZWRpYSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTE3Ri0yLCA3OSBIc2luIFRhaSBXdSBSb2FkLCBTZWMuIDEsCisJCQkJSHNpLUNoaWgsIFRhaXBlaSBIc2llbgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDItRjEgICAoaGV4KQkJUGluZXRyb24gQ28uLCBMdGQuCiswMDAyRjEgICAgIChiYXNlIDE2KQkJUGluZXRyb24gQ28uLCBMdGQuCisJCQkJQmxkZy4gIzE1OTktMTEsCisJCQkJU2VvY2hvLURvbmcsIFNlb2Noby1LdSwKKwkJCQlTZW91bCAgMTM3LTA3MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMi1GMiAgIChoZXgpCQllRGV2aWNlLCBJbmMuCiswMDAyRjIgICAgIChiYXNlIDE2KQkJZURldmljZSwgSW5jLgorCQkJCTQyMCBMZXhpbmd0b24gQXZlbnVlCisJCQkJU3VpdGUgMjMwMAorCQkJCU5ldyBZb3JrIE5ZIDEwMTcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1GMyAgIChoZXgpCQlNZWRpYSBTZXJ2ZSBDby4sIEx0ZC4KKzAwMDJGMyAgICAgKGJhc2UgMTYpCQlNZWRpYSBTZXJ2ZSBDby4sIEx0ZC4KKwkJCQlEb25nc3VuZyBCbGRnLiAjMTctOCwgWW91aWRvLWRvbmcsCisJCQkJWW91bmdkZW91bmdwby1rdSwKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAyLUY0ICAgKGhleCkJCVBDVEVMLCBJbmMuCiswMDAyRjQgICAgIChiYXNlIDE2KQkJUENURUwsIEluYy4KKwkJCQkxMzMxIENhbGlmb3JuaWEgQ2lyY2xlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUY1ICAgKGhleCkJCVZJVkUgU3luZXJnaWVzLCBJbmMuCiswMDAyRjUgICAgIChiYXNlIDE2KQkJVklWRSBTeW5lcmdpZXMsIEluYy4KKwkJCQkzMCBXZXN0IEJlYXZlciBDcmVlayBSb2FkLCBVbml0IDEwMQorCQkJCVJpY2htb25kIEhpbGwsIE9udGFyaW8KKwkJCQlMNEIgM0sxCisJCQkJQ0FOQURBCisKKzAwLTAyLUY2ICAgKGhleCkJCUVxdWlwZSBDb21tdW5pY2F0aW9ucworMDAwMkY2ICAgICAoYmFzZSAxNikJCUVxdWlwZSBDb21tdW5pY2F0aW9ucworCQkJCTEwMCBOYWdvZyBQYXJrCisJCQkJQWN0b24gTUEgMDE3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUY3ICAgKGhleCkJCUFSTQorMDAwMkY3ICAgICAoYmFzZSAxNikJCUFSTQorCQkJCTExMCwgRnVsYm91cm4gUm9hZAorCQkJCUNoZXJyeSBIaW50b24gQ2FtYnJpZGdlCisJCQkJQ0IxIDlOSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAyLUY4ICAgKGhleCkJCVNFQUtSIEVuZ2luZWVyaW5nLCBJbmMuCiswMDAyRjggICAgIChiYXNlIDE2KQkJU0VBS1IgRW5naW5lZXJpbmcsIEluYy4KKwkJCQkxMjg0NyBFLiBQZWFrdmlldyBBdmUuCisJCQkJRW5nbGV3b29kIENPIDgwMTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1GOSAgIChoZXgpCQlNaW1vcyBTZW1pY29uZHVjdG9yIFNETiBCSEQKKzAwMDJGOSAgICAgKGJhc2UgMTYpCQlNaW1vcyBTZW1pY29uZHVjdG9yIFNETiBCSEQKKwkJCQlUYW1hbiBUZWtub2xvZ2kgTWFsYXlzaWEKKwkJCQlCdWtpdCBKYWxpbCA1NzAwMCBLdWFsYSBMdW1wdXIsCisJCQkJTUFMQVlTSUEKKworMDAtMDItRkEgICAoaGV4KQkJRFggQW50ZW5uYSBDby4sIEx0ZC4KKzAwMDJGQSAgICAgKGJhc2UgMTYpCQlEWCBBbnRlbm5hIENvLiwgTHRkLgorCQkJCTItMTUgSGFtYXpha2ktRG9yaSwKKwkJCQlIeW9nby1rdSwgS29iZQorCQkJCUpBUEFOCisKKzAwLTAyLUZCICAgKGhleCkJCUJhdW11bGxlciBBdWx1Z2VuLVN5c3RlbXRlY2huaWsgR21iSAorMDAwMkZCICAgICAoYmFzZSAxNikJCUJhdW11bGxlciBBdWx1Z2VuLVN5c3RlbXRlY2huaWsgR21iSAorCQkJCU9zdGVuZHN0cy4gODQKKwkJCQlELTkwNDgyIE51cnViZXJnCisJCQkJR0VSTUFOWQorCiswMC0wMi1GQyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAyRkMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDItRkQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMkZEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAyLUZFICAgKGhleCkJCVZpZGl0ZWMsIEluYy4KKzAwMDJGRSAgICAgKGJhc2UgMTYpCQlWaWRpdGVjLCBJbmMuCisJCQkJNTIwIENlbnRyYWwgUGFya3dheSBFLgorCQkJCVN1aXRlIDExNQorCQkJCVBsYW5vIFRYIDc1MDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMi1GRiAgIChoZXgpCQlIYW5kYW4gQnJvYWRJbmZvQ29tCiswMDAyRkYgICAgIChiYXNlIDE2KQkJSGFuZGFuIEJyb2FkSW5mb0NvbQorCQkJCTV0aCBGbC4gU2hpbnN1bmcgUGxhemEgIzY5Ny0xMQorCQkJCVllb2dzYW0tZG9uZywgS2FuZ25hbS1ndQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMDAgICAoaGV4KQkJQmFycmFjdWRhIE5ldHdvcmtzLCBJbmMuCiswMDAzMDAgICAgIChiYXNlIDE2KQkJQmFycmFjdWRhIE5ldHdvcmtzLCBJbmMuCisJCQkJMzE3NSBTLiBXaW5jaGVzdGVyIEJsdmQKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMDEgICAoaGV4KQkJQXZhbnRhcyBOZXR3b3JrcyBDb3Jwb3JhdGlvbgorMDAwMzAxICAgICAoYmFzZSAxNikJCUF2YW50YXMgTmV0d29ya3MgQ29ycG9yYXRpb24KKwkJCQk5OTAwIENhdmVuZGlzaCBCbHZkLiwgU3VpdGUgIzMxMAorCQkJCVN0LUxhdXJlbnQsIFF1ZWJlYworCQkJCUg0TSAyVjIKKwkJCQlDQU5BREEKKworMDAtMDMtMDIgICAoaGV4KQkJQ2hhcmxlcyBJbmR1c3RyaWVzLCBMdGQuCiswMDAzMDIgICAgIChiYXNlIDE2KQkJQ2hhcmxlcyBJbmR1c3RyaWVzLCBMdGQuCisJCQkJNTYwMCBBcG9sbG8gRHJpdmUKKwkJCQlSb2xsaW5nIE1lYWRvd3MgSUwgNjAwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTAzICAgKGhleCkJCUpBTUEgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDAzMDMgICAgIChiYXNlIDE2KQkJSkFNQSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkxMEYsIE5vLiAyMjItMSwgU2VjLiAzCisJCQkJVGEtVHVuZyBSZC4sIEhzaS1DaGloCisJCQkJVGFpcGVpIEhzaWVuICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTA0ICAgKGhleCkJCVBhY2lmaWMgQnJvYWRiYW5kIENvbW11bmljYXRpb25zCiswMDAzMDQgICAgIChiYXNlIDE2KQkJUGFjaWZpYyBCcm9hZGJhbmQgQ29tbXVuaWNhdGlvbnMKKwkJCQkzMTAzIE5vcnRoIEZpcnN0IFN0LgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0wNSAgIChoZXgpCQlNU0MgVmVydHJpZWJzIEdtYkgKKzAwMDMwNSAgICAgKGJhc2UgMTYpCQlNU0MgVmVydHJpZWJzIEdtYkgKKwkJCQlEZXNpZ24gQ2VudGVyIEFhY2hlbgorCQkJCVBhc2NhbHN0cmFzc2UgMjEKKwkJCQlBQUNIRU4gICAgRC01MjA3NgorCQkJCUdFUk1BTlkKKworMDAtMDMtMDYgICAoaGV4KQkJRnVzaW9uIEluIFRlY2ggQ28uLCBMdGQuCiswMDAzMDYgICAgIChiYXNlIDE2KQkJRnVzaW9uIEluIFRlY2ggQ28uLCBMdGQuCisJCQkJNkZsLCBEYWV5b29uIEJsZGcuIDE2ODgtNSwgU2VvY2hvLWRvbmcKKwkJCQlTZW9jaG8ta3UsCisJCQkJU2VvdWwsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMDcgICAoaGV4KQkJU2VjdXJlIFdvcmtzLCBJbmMuCiswMDAzMDcgICAgIChiYXNlIDE2KQkJU2VjdXJlIFdvcmtzLCBJbmMuCisJCQkJMTEgRXhlY3V0aXZlIERyaXZlCisJCQkJU3VpdGUgMjAwCisJCQkJQXRsYW50YSBHQSAzMDMyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMDggICAoaGV4KQkJQU0gQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDMwOCAgICAgKGJhc2UgMTYpCQlBTSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTEwMCBDb21tZXJjZSBCbHZkLgorCQkJCVF1YWtlcnRvd24gUEEgMTg5NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTA5ICAgKGhleCkJCVRleGNlbCBUZWNobm9sb2d5IFBMQworMDAwMzA5ICAgICAoYmFzZSAxNikJCVRleGNlbCBUZWNobm9sb2d5IFBMQworCQkJCVRoYW1lcyBSb2FkCisJCQkJQ3JheWZvcmQgS2VudCBEQTEgNFNCCisJCQkJRU5HTEFORCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMy0wQSAgIChoZXgpCQlBcmd1cyBUZWNobm9sb2dpZXMKKzAwMDMwQSAgICAgKGJhc2UgMTYpCQlBcmd1cyBUZWNobm9sb2dpZXMKKwkJCQk4RiwgTm8uIDE4MywgS2FuZyBDaGllbiBSZC4KKwkJCQkxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTBCICAgKGhleCkJCUh1bnRlciBUZWNobm9sb2d5LCBJbmMuCiswMDAzMEIgICAgIChiYXNlIDE2KQkJSHVudGVyIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxNDA4LCBXb29saW0gZS1iaXogQ2VudGVyLAorCQkJCTE3MC01LCBHdXJvLTNkb25nLCBHdXJvLWd1LAorCQkJCVNlb3VsICAxMzUtMjcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTBDICAgKGhleCkJCVRlbGVzb2Z0IFRlY2hub2xvZ2llcyBMdGQuCiswMDAzMEMgICAgIChiYXNlIDE2KQkJVGVsZXNvZnQgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQlPYnNlcnZhdG9yeSBIb3VzZSwgU3RvdXIgUGFyaywKKwkJCQlCbGFuZGZvcnVtLCBEb3JzZXQsIERUMTEgOUxRLAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTAzLTBEICAgKGhleCkJCVVuaXdpbGwgQ29tcHV0ZXIgQ29ycC4KKzAwMDMwRCAgICAgKGJhc2UgMTYpCQlVbml3aWxsIENvbXB1dGVyIENvcnAuCisJCQkJTm8uIDI0LCBQZWkgWXVhbiBSZC4sIENodW5nCisJCQkJTGkgSW5kdXN0cmlhbCBQYXJrLCBDaHVuZworCQkJCUxpIENpdHkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtMEUgICAoaGV4KQkJQ29yZSBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMDMwRSAgICAgKGJhc2UgMTYpCQlDb3JlIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorCQkJCTNGIFNob3BwaW5nIENlbnRlciBCZC4gb2YKKwkJCQlTU2FuZyBZb3VuZyBId2FuZy1nZXVtIEFQVCwgIzI1MyBNYXBvLURvCisJCQkJU2VvdWwgKDEyMS0wNTApICAoMTIxLTA1MCkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMEYgICAoaGV4KQkJRGlnaXRhbCBDaGluYSAoU2hhbmdoYWkpIE5ldHdvcmtzIEx0ZC4KKzAwMDMwRiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIENoaW5hIChTaGFuZ2hhaSkgTmV0d29ya3MgTHRkLgorCQkJCTYwMi0yMywgSGFpdGFpIEJ1aWxkaW5nLCAzNTEgR3VvIFNob3VqaW4KKwkJCQlQdWRvbmcgTmV3IERpc3RyaWN0LAorCQkJCVNoYW5naGFpICAKKwkJCQlDSElOQQorCiswMC0wMy0xMCAgIChoZXgpCQlJVFggRS1HbG9iYWxlZGdlIENvcnBvcmF0aW9uCiswMDAzMTAgICAgIChiYXNlIDE2KQkJSVRYIEUtR2xvYmFsZWRnZSBDb3Jwb3JhdGlvbgorCQkJCU5ha2FtZWd1cm8gR1QgdG93ZXIgN0YgMi0xLTEga2FtaW1lZ3VybworCQkJCU1lZ3Vyby1rdQorCQkJCVRva3lvICAxNTMtMDA1MQorCQkJCUpBUEFOCisKKzAwLTAzLTExICAgKGhleCkJCU1pY3JvIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDAzMTEgICAgIChiYXNlIDE2KQkJTWljcm8gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlTdWVoaXJvIEJsZGcuCisJCQkJMS0yLCBTb3RvIEthbmRhIDUgQ2hvbWUgQ2hpeW9kYS1rdSwgVG9reQorCQkJCTEwMS0wMDIxIAorCQkJCUpBUEFOCisKKzAwLTAzLTEyICAgKGhleCkJCVRSLVN5c3RlbXRlY2huaWsgR21iSAorMDAwMzEyICAgICAoYmFzZSAxNikJCVRSLVN5c3RlbXRlY2huaWsgR21iSAorCQkJCUVnbGlzaGFsZGUgNgorCQkJCUQtNzg2NDcgVHJvc3NpbmdlbgorCQkJCUdFUk1BTlkKKworMDAtMDMtMTMgICAoaGV4KQkJQWNjZXNzIE1lZGlhIFNQQQorMDAwMzEzICAgICAoYmFzZSAxNikJCUFjY2VzcyBNZWRpYSBTUEEKKwkJCQlWaWEgZGVsbGUgSW5kdXN0cmllLCA0L2cKKwkJCQkyNDAzNSBMQUxMSU8gKEJHKSAgCisJCQkJSVRBTFkKKworMDAtMDMtMTQgICAoaGV4KQkJVGVsZXdhcmUgTmV0d29yayBTeXN0ZW1zCiswMDAzMTQgICAgIChiYXNlIDE2KQkJVGVsZXdhcmUgTmV0d29yayBTeXN0ZW1zCisJCQkJIzc4MDYgN3RoIERvbmdpbCBUZWNobm90b3duLAorCQkJCUtpbmFueWFuZyBEb25nIDgyMywgRG9uZ2FobiBHdSwgQW55YW5nIEMKKwkJCQk0MzEtMDYyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTE1ICAgKGhleCkJCUNpZGNvIEluY29ycG9yYXRlZAorMDAwMzE1ICAgICAoYmFzZSAxNikJCUNpZGNvIEluY29ycG9yYXRlZAorCQkJCTIyMCBDb2NocmFuZSBDaXJjbGUKKwkJCQlNb3JnYW4gSGlsbCBDQSA5NTAzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMTYgICAoaGV4KQkJTm9iZWxsIENvbW11bmljYXRpb25zLCBJbmMuCiswMDAzMTYgICAgIChiYXNlIDE2KQkJTm9iZWxsIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMzQxMCBGYXIgV2VzdCBCbHZkLiwgU3VpdGUgMjQwCisJCQkJQXVzdGluIFRYIDc4NzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0xNyAgIChoZXgpCQlNZXJsaW4gU3lzdGVtcywgSW5jLgorMDAwMzE3ICAgICAoYmFzZSAxNikJCU1lcmxpbiBTeXN0ZW1zLCBJbmMuCisJCQkJMzkwMCBOZXcgUGFyayBNYWxsIFJkLgorCQkJCTNyZCBGbG9vcgorCQkJCU5ld2FyayBDQSA5NDU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMTggICAoaGV4KQkJQ3lyYXMgU3lzdGVtcywgSW5jLgorMDAwMzE4ICAgICAoYmFzZSAxNikJCUN5cmFzIFN5c3RlbXMsIEluYy4KKwkJCQk0NzEwMCBCYXlzaWRlIFBhcmt3YXkKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0xOSAgIChoZXgpCQlJbmZpbmVvbiBBRworMDAwMzE5ICAgICAoYmFzZSAxNikJCUluZmluZW9uIEFHCisJCQkJUC5PLiBCb3ggODAwOTQ5CisJCQkJRC04MTYwOSBNdW5pY2gKKwkJCQlHRVJNQU5ZCisKKzAwLTAzLTFBICAgKGhleCkJCUJlaWppbmcgQnJvYWQgVGVsZWNvbSBMdGQuLCBDaGluYQorMDAwMzFBICAgICAoYmFzZSAxNikJCUJlaWppbmcgQnJvYWQgVGVsZWNvbSBMdGQuLCBDaGluYQorCQkJCVAuTy4gQm94ICMxNDcKKwkJCQlCZWlqaW5nIFVuaXZlcnNpdHkgb2YgUG9zdHMgIGFuZCBUZWxlY29tCisJCQkJQmVpamluZyAgMTAwODc2CisJCQkJQ0hJTkEKKworMDAtMDMtMUIgICAoaGV4KQkJQ2VsbHZpc2lvbiBTeXN0ZW1zLCBJbmMuCiswMDAzMUIgICAgIChiYXNlIDE2KQkJQ2VsbHZpc2lvbiBTeXN0ZW1zLCBJbmMuCisJCQkJM0YtMSwgNzUsIEhzaW4gVGFpd3UgUm9hZCwgU2VjLiAxCisJCQkJSHNpY2hpaCwgVGFpcGVpLAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtMUMgICAoaGV4KQkJU3ZlbnNrYSBIYXJkdmFydWZhYnJpa2VuIEFCCiswMDAzMUMgICAgIChiYXNlIDE2KQkJU3ZlbnNrYSBIYXJkdmFydWZhYnJpa2VuIEFCCisJCQkJT2xlIFJvbWVyc3ZhZyAxNiwgSWRlb24KKwkJCQlTRS0yMjMgNzAgTHVuZAorCQkJCVNXRURFTgorCiswMC0wMy0xRCAgIChoZXgpCQlUYWl3YW4gQ29tbWF0ZSBDb21wdXRlciwgSW5jLgorMDAwMzFEICAgICAoYmFzZSAxNikJCVRhaXdhbiBDb21tYXRlIENvbXB1dGVyLCBJbmMuCisJCQkJOEYsIE5vLiA5NCwgU2VjIDEsCisJCQkJU2hpbiBUYWkgV3UgUmQuIEhzaSBDaGloLCBUYWlwZWkgSHNpZW4sCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy0xRSAgIChoZXgpCQlPcHRyYW5ldCwgSW5jLgorMDAwMzFFICAgICAoYmFzZSAxNikJCU9wdHJhbmV0LCBJbmMuCisJCQkJNzA0MSBLb2xsIENlbnRlciBQa3d5CisJCQkJU3VpdGUgMTM1CisJCQkJUGxlYXNhbnRvbiBDQSA5NDU2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMUYgICAoaGV4KQkJQ29uZGV2IEx0ZC4KKzAwMDMxRiAgICAgKGJhc2UgMTYpCQlDb25kZXYgTHRkLgorCQkJCTIwMC0xNjI2IFdlc3QgMm5kIEF2ZS4KKwkJCQlWYW5jb3V2ZXIsIEIuQy4gVjZKIDFINAorCQkJCUNBTkFEQQorCiswMC0wMy0yMCAgIChoZXgpCQlYcGVlZCwgSW5jLgorMDAwMzIwICAgICAoYmFzZSAxNikJCVhwZWVkLCBJbmMuCisJCQkJOTkgVy4gVGFzbWFuIERyaXZlCisJCQkJU3VpdGUgMTEwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTIxICAgKGhleCkJCVJlY28gUmVzZWFyY2ggQ28uLCBMdGQuCiswMDAzMjEgICAgIChiYXNlIDE2KQkJUmVjbyBSZXNlYXJjaCBDby4sIEx0ZC4KKwkJCQlOby4gNDctMSwgU2VjLiAyLAorCQkJCUt1YW5nIEZ1IFJkLixTYW4gQ2h1bmcgQ2l0eSwgVGFpcGVpLAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtMjIgICAoaGV4KQkJSURJUyBDby4sIEx0ZC4KKzAwMDMyMiAgICAgKGJhc2UgMTYpCQlJRElTIENvLiwgTHRkLgorCQkJCTd0aCBGbG9vciwgNjQ2LTcgWXVrc2FtLURvbmcsCisJCQkJS2FuZ25hbS1HdSwgU2VvdWwgMTM1LTI4MCwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMjMgICAoaGV4KQkJQ29ybmV0IFRlY2hub2xvZ3ksIEluYy4KKzAwMDMyMyAgICAgKGJhc2UgMTYpCQlDb3JuZXQgVGVjaG5vbG9neSwgSW5jLgorCQkJCTY4MDAgVmVyc2FyIENlbnRlciwgU3VpdGUgMjE2CisJCQkJU3ByaW5nZmllbGQgVkEgMjIxNTEtNDE0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMjQgICAoaGV4KQkJU0FOWU8gQ29uc3VtZXIgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDAzMjQgICAgIChiYXNlIDE2KQkJU0FOWU8gQ29uc3VtZXIgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJNy0xMDEgVGFjaGlrYXdhLWNobworCQkJCVRvdHRvcmkgQ2l0eSAgNjgwLTg2MzQKKwkJCQlKQVBBTgorCiswMC0wMy0yNSAgIChoZXgpCQlBcmltYSBDb21wdXRlciBDb3JwLgorMDAwMzI1ICAgICAoYmFzZSAxNikJCUFyaW1hIENvbXB1dGVyIENvcnAuCisJCQkJNnRoIEZsLiwgTm8uIDMyNywKKwkJCQlTdW5nLWx1bmcgUmQuLCBUYWlwZWkgQ2l0eSwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTI2ICAgKGhleCkJCUl3YXNha2kgSW5mb3JtYXRpb24gU3lzdGVtcyBDby4sIEx0ZC4KKzAwMDMyNiAgICAgKGJhc2UgMTYpCQlJd2FzYWtpIEluZm9ybWF0aW9uIFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJMzM2MSBPc2hpCisJCQkJRnVraWFnZS1tYWNoaSwgU2FpdGFtYSAzNjktMDExMworCQkJCUpBUEFOCisKKzAwLTAzLTI3ICAgKGhleCkJCUFDVCdMCiswMDAzMjcgICAgIChiYXNlIDE2KQkJQUNUJ0wKKwkJCQlBdmVudWUgZGUgQXJ0aXNhbmF0IDEwQQorCQkJCTE5MjQgQnJhaW5lIGwnQWxsYXJkCisJCQkJQkVMR0lVTQorCiswMC0wMy0yOCAgIChoZXgpCQlNYWNlIEdyb3VwLCBJbmMuCiswMDAzMjggICAgIChiYXNlIDE2KQkJTWFjZSBHcm91cCwgSW5jLgorCQkJCTUxMDEgQ29tbWVyY2UgRHIuCisJCQkJQmFsZHdpbiBQYXJrIENBIDkxNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0yOSAgIChoZXgpCQlGMywgSW5jLgorMDAwMzI5ICAgICAoYmFzZSAxNikJCUYzLCBJbmMuCisJCQkJMkYsIE5vLiA3LCBJbmR1c3RyeSBFLiBSZC4gOSwKKwkJCQlTY2llbmNlIEJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTJBICAgKGhleCkJCVVuaURhdGEgQ29tbXVuaWNhdGlvbiBTeXN0ZW1zLCBJbmMuCiswMDAzMkEgICAgIChiYXNlIDE2KQkJVW5pRGF0YSBDb21tdW5pY2F0aW9uIFN5c3RlbXMsIEluYy4KKwkJCQkyRiwgT2hTdW5nLUJsZGcsIDgyLTE1LAorCQkJCU5vbkh5dW4tRG9uZywgR2FuZ05hbS1HdSwgIFNlb3VsLDEzNS0xMDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMkIgICAoaGV4KQkJR0FJIERhdGVuZnVua3N5c3RlbWUgR21iSAorMDAwMzJCICAgICAoYmFzZSAxNikJCUdBSSBEYXRlbmZ1bmtzeXN0ZW1lIEdtYkgKKwkJCQlSaWVkbGVwYXJrc3RyYXNzZSAyOAorCQkJCUQtODgwNDUgRnJpZWRyaWNoc2hhZmVuCisJCQkJR0VSTUFOWQorCiswMC0wMy0yQyAgIChoZXgpCQlBQkIgU3dpdHplcmxhbmQgTHRkCiswMDAzMkMgICAgIChiYXNlIDE2KQkJQUJCIFN3aXR6ZXJsYW5kIEx0ZAorCQkJCURlcHQuIEFUUFQKKwkJCQlDSC01MzAwIFR1cmdpCisJCQkJQXVzdHJhc3NlICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wMy0yRCAgIChoZXgpCQlJQkFTRSBUZWNobm9sb2d5LCBJbmMuCiswMDAzMkQgICAgIChiYXNlIDE2KQkJSUJBU0UgVGVjaG5vbG9neSwgSW5jLgorCQkJCTVGLCBOby4gMjIxLAorCQkJCUNodW5nIFlhbmcgUmQuCisJCQkJVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTJFICAgKGhleCkJCVNjb3BlIEluZm9ybWF0aW9uIE1hbmFnZW1lbnQsIEx0ZC4KKzAwMDMyRSAgICAgKGJhc2UgMTYpCQlTY29wZSBJbmZvcm1hdGlvbiBNYW5hZ2VtZW50LCBMdGQuCisJCQkJMkYgQ2hhbndvbyBiL28gNzM2IFlvdWtzYW5nLWRvbmcsCisJCQkJS2FuZ25hbS1ndSwKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy0yRiAgIChoZXgpCQlHbG9iYWwgU3VuIFRlY2hub2xvZ3ksIEluYy4KKzAwMDMyRiAgICAgKGJhc2UgMTYpCQlHbG9iYWwgU3VuIFRlY2hub2xvZ3ksIEluYy4KKwkJCQlOby4gMTMsIFR1bmcgWXVhbiBSZC4sCisJCQkJSnVuZyBMaSBJbmR1c3RyaWFsIFBhcmsgSnVuZyBMaSBDaXR5CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy0zMCAgIChoZXgpCQlJbWFnZW5pY3MsIENvLiwgTHRkLgorMDAwMzMwICAgICAoYmFzZSAxNikJCUltYWdlbmljcywgQ28uLCBMdGQuCisJCQkJMS0zMS01IEtva3VyeW8tQ2hvCisJCQkJQ2hvZnUtQ2l0eSBUb2t5bworCQkJCTE4Mi0wMDIyIAorCQkJCUpBUEFOCisKKzAwLTAzLTMxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDMzMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0zMiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAzMzIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtMzMgICAoaGV4KQkJRGlnaXRlbCBDby4sIEx0ZC4KKzAwMDMzMyAgICAgKGJhc2UgMTYpCQlEaWdpdGVsIENvLiwgTHRkLgorCQkJCTgzNS02LCBZb2tzYW0tZG9uZworCQkJCUthbmduYW0tZ3UsIDEzNS0wODAsIFNlb3VsLAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy0zNCAgIChoZXgpCQlOZXdwb3J0IEVsZWN0cm9uaWNzCiswMDAzMzQgICAgIChiYXNlIDE2KQkJTmV3cG9ydCBFbGVjdHJvbmljcworCQkJCTIyMjkgU28uIFlhbGUgU3QuCisJCQkJU2FudGEgQW5hIENBIDkyNzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0zNSAgIChoZXgpCQlNaXJhZSBUZWNobm9sb2d5CiswMDAzMzUgICAgIChiYXNlIDE2KQkJTWlyYWUgVGVjaG5vbG9neQorCQkJCTIxMS0xNSwgSG9uIEh5dW4tZG9uZywKKwkJCQlLYW5nbmFtLWt1IDEzNS0wMTAKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTM2ICAgKGhleCkJCVpldGVzIFRlY2hub2xvZ2llcworMDAwMzM2ICAgICAoYmFzZSAxNikJCVpldGVzIFRlY2hub2xvZ2llcworCQkJCTMgUnVlIERlIFN0cmFzIEJvdXJnCisJCQkJMTEzMCBCcnVzc2VscworCQkJCUJFTEdJVU0KKworMDAtMDMtMzcgICAoaGV4KQkJVmFvbmUsIEluYy4KKzAwMDMzNyAgICAgKGJhc2UgMTYpCQlWYW9uZSwgSW5jLgorCQkJCTZGIEt5ZW1vbmcgQXJ0IENlbnRlciwKKwkJCQk3NzIgWXVrc2FuMi1Eb25nIEthbmcgSGFtR3UsIFNlb3VsLAorCQkJCTEzNS0wODIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtMzggICAoaGV4KQkJT2FrIFRlY2hub2xvZ3kKKzAwMDMzOCAgICAgKGJhc2UgMTYpCQlPYWsgVGVjaG5vbG9neQorCQkJCTEzOSBLaWZlciBDb3VydAorCQkJCVN1bm55dmFsZSBDQSA5NDA4Ni01MTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy0zOSAgIChoZXgpCQlFdXJvbG9naWMgU3lzdGVtcywgTHRkLgorMDAwMzM5ICAgICAoYmFzZSAxNikJCUV1cm9sb2dpYyBTeXN0ZW1zLCBMdGQuCisJCQkJQ2xvbnNoYXVnaCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCUNsb25zaGF1Z2ggRHVibGluIDE3IAorCQkJCUlSRUxBTkQKKworMDAtMDMtM0EgICAoaGV4KQkJU2lsaWNvbiBXYXZlLCBJbmMuCiswMDAzM0EgICAgIChiYXNlIDE2KQkJU2lsaWNvbiBXYXZlLCBJbmMuCisJCQkJNjI1NiBHcmVlbndpY2ggRHJpdmUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTNCICAgKGhleCkJCVRBTUkgVGVjaCBDby4sIEx0ZC4KKzAwMDMzQiAgICAgKGJhc2UgMTYpCQlUQU1JIFRlY2ggQ28uLCBMdGQuCisJCQkJNEYsIENodW5nZG8gQmVuY2hlciBUb3duCisJCQkJNjA2IFRhbmJhbmctRG9uZywgU2VvLUd1CisJCQkJVGFlam9uICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtM0MgICAoaGV4KQkJRGFpZGVuIENvLiwgTHRkLgorMDAwMzNDICAgICAoYmFzZSAxNikJCURhaWRlbiBDby4sIEx0ZC4KKwkJCQkyMTAwLTE5IFR1dHVtaSwgS2FtaW1pbmUtbWFjaGkKKwkJCQlNaXlha2ktZ3VuLCBTYWdhLWtlbgorCQkJCUpBUEFOCisKKzAwLTAzLTNEICAgKGhleCkJCUlMU0hpbiBMYWIKKzAwMDMzRCAgICAgKGJhc2UgMTYpCQlJTFNIaW4gTGFiCisJCQkJS0NTIEIvRCAyMjgtMTMgWW91bmcgRGFwLURvbmcKKwkJCQlTVU5HIERPTkctR1UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy0zRSAgIChoZXgpCQlUYXRleWFtYSBTeXN0ZW0gTGFib3JhdG9yeSBDby4sIEx0ZC4KKzAwMDMzRSAgICAgKGJhc2UgMTYpCQlUYXRleWFtYSBTeXN0ZW0gTGFib3JhdG9yeSBDby4sIEx0ZC4KKwkJCQkzMCBTaGltb25vYmFuIE95YW1hLWNobworCQkJCUthbWluaWthd2EtZ3VuIFRveWFtYSBQcm9mLgorCQkJCTkzMC0xMzA1CisJCQkJSkFQQU4KKworMDAtMDMtM0YgICAoaGV4KQkJQmlnQmFuZCBOZXR3b3JrcywgTHRkLgorMDAwMzNGICAgICAoYmFzZSAxNikJCUJpZ0JhbmQgTmV0d29ya3MsIEx0ZC4KKwkJCQkzIEF6cmllbGkgVG93ZXJzCisJCQkJVGVsLUF2aXYgNjcwMjMKKwkJCQlJU1JBRUwKKworMDAtMDMtNDAgICAoaGV4KQkJRmxvd2FyZSBXaXJlbGVzcyBTeXN0ZW1zLCBMdGQuCiswMDAzNDAgICAgIChiYXNlIDE2KQkJRmxvd2FyZSBXaXJlbGVzcyBTeXN0ZW1zLCBMdGQuCisJCQkJMjggSGFjaGFyb3NoZXQgU3RlZXQKKwkJCQlQLk8uQi4gODEyIE9yLVllaHVkYQorCQkJCTYwMjUwCisJCQkJSVNSQUVMCisKKzAwLTAzLTQxICAgKGhleCkJCUF4b24gRGlnaXRhbCBEZXNpZ24KKzAwMDM0MSAgICAgKGJhc2UgMTYpCQlBeG9uIERpZ2l0YWwgRGVzaWduCisJCQkJTGFuZ2UgV2FnZW5zdHJhYXQgNTUKKwkJCQlOTC01MTI2IEJCIEdJTFpFCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDMtNDIgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDAzNDIgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJODIwMCBEaXhpZSBSb2FkIC0gU3RlICMxMDAKKwkJCQlEZXB0LiA2ODAwIEJyYW1wdG9uICBPTiAgTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0wMy00MyAgIChoZXgpCQlNYXJ0aW4gUHJvZmVzc2lvbmFsIEEvUworMDAwMzQzICAgICAoYmFzZSAxNikJCU1hcnRpbiBQcm9mZXNzaW9uYWwgQS9TCisJCQkJT2xvZiBQYWxtZXMgQWxsZSAxOAorCQkJCURLLTgyMDAgQWFyaHVzbgorCQkJCURFTk1BUksKKworMDAtMDMtNDQgICAoaGV4KQkJVGlldGVjaC5Dby4sIEx0ZC4KKzAwMDM0NCAgICAgKGJhc2UgMTYpCQlUaWV0ZWNoLkNvLiwgTHRkLgorCQkJCTItMTMtMSBDaGlrYW1hdG9vcmkgTWluYW1pa3UKKwkJCQlOYWdveWEsCisJCQkJSkFQQU4KKworMDAtMDMtNDUgICAoaGV4KQkJUm91dHJlayBOZXR3b3JrcyBDb3Jwb3JhdGlvbgorMDAwMzQ1ICAgICAoYmFzZSAxNikJCVJvdXRyZWsgTmV0d29ya3MgQ29ycG9yYXRpb24KKwkJCQlOaWxzc2VpIFNoaW4gTWl6b25va3VjaGkgQmxkZy4gMUYKKwkJCQkzLTUtNyBIaXNhbW90bywgVGFrYXRzdS1LdSBLYXdhc2FraS1zaGksCisJCQkJMjMtMDAxMSAKKwkJCQlKQVBBTgorCiswMC0wMy00NiAgIChoZXgpCQlIaXRhY2hpIEtva3VzYWkgRWxlY3RyaWMsIEluYy4KKzAwMDM0NiAgICAgKGJhc2UgMTYpCQlIaXRhY2hpIEtva3VzYWkgRWxlY3RyaWMsIEluYy4KKwkJCQkxLTYtMTAgVWNoaWthbmRhCisJCQkJQ2hpeW9kYS1LdSBUb2t5byBsMTAxCisJCQkJSkFQQU4KKworMDAtMDMtNDcgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzAwMDM0NyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCU1TOiAgTEYzLTQyMAorCQkJCTIxMTEgTi5FLiAyNXRoIEF2ZW51ZQorCQkJCUhpbGxzYm9ybyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNDggICAoaGV4KQkJTm9yc2NhbiBJbnN0cnVtZW50cywgTHRkLgorMDAwMzQ4ICAgICAoYmFzZSAxNikJCU5vcnNjYW4gSW5zdHJ1bWVudHMsIEx0ZC4KKwkJCQk3IFRlcnJhY29uIFBsYWNlCisJCQkJV2lubmlwZWcsIE1hbml0b2JhLAorCQkJCVIySiA0QjMKKwkJCQlDQU5BREEKKworMDAtMDMtNDkgICAoaGV4KQkJVmlkaWNvZGUgRGF0YWNvbW11bmljYXRpZSBCLlYuCiswMDAzNDkgICAgIChiYXNlIDE2KQkJVmlkaWNvZGUgRGF0YWNvbW11bmljYXRpZSBCLlYuCisJCQkJUG9zdGJ1cyA3MTY0CisJCQkJMjcwMSBBRCBab2V0ZXJtZWVyCisJCQkJTkVUSEVSTEFORFMKKworMDAtMDMtNEEgICAoaGV4KQkJUklBUyBDb3Jwb3JhdGlvbgorMDAwMzRBICAgICAoYmFzZSAxNikJCVJJQVMgQ29ycG9yYXRpb24KKwkJCQk0NjYwMCBGcmVtb250IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNEIgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDAzNEIgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJODIwMCBEaXhpZSBSb2FkIFN1aXRlIDEwMAorCQkJCURlcHQuIDY4MDAgQnJhbXB0b24gT04gTDZUIDUgUDYKKwkJCQlDQU5BREEKKworMDAtMDMtNEMgICAoaGV4KQkJU2hhbmdoYWkgRGlnaVZpc2lvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwMzRDICAgICAoYmFzZSAxNikJCVNoYW5naGFpIERpZ2lWaXNpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxMUYsIEhlbmcgVG9uZworCQkJCUludGVybmF0aW9uYWwgQnVpbGRpbmcsIDg2NSBDaGFuZyBOaW5nIFIKKwkJCQlTaGFuZ2hhaSAyMDAwNTAKKwkJCQlDSElOQQorCiswMC0wMy00RCAgIChoZXgpCQlDaGlhcm8gTmV0d29ya3MsIEx0ZC4KKzAwMDM0RCAgICAgKGJhc2UgMTYpCQlDaGlhcm8gTmV0d29ya3MsIEx0ZC4KKwkJCQlQLk8uIEJveCA4MzI0MjcKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgzLTI0MjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTRFICAgKGhleCkJCVBvcyBEYXRhIENvbXBhbnksIEx0ZC4KKzAwMDM0RSAgICAgKGJhc2UgMTYpCQlQb3MgRGF0YSBDb21wYW55LCBMdGQuCisJCQkJMjc2LTIsIFNlby1IeXVuIERvbmcsCisJCQkJQnVuLURhbmcgR3UsIFN1bmctbmFtIENpdHksIEt5b3VuZy1HaSBQcgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy00RiAgIChoZXgpCQlTdXItR2FyZCBTZWN1cml0eQorMDAwMzRGICAgICAoYmFzZSAxNikJCVN1ci1HYXJkIFNlY3VyaXR5CisJCQkJNDAxIE1hZ25ldGljIERyaXZlCisJCQkJVW5pdHMgMjQtMjgsIERvd25zdmlldworCQkJCU9udGFyaW8gIE0zSiAzSDkKKwkJCQlDQU5BREEKKworMDAtMDMtNTAgICAoaGV4KQkJQlRJQ0lOTyBTUEEKKzAwMDM1MCAgICAgKGJhc2UgMTYpCQlCVElDSU5PIFNQQQorCQkJCVZpYSBMLiBNYW5hcmEsIDQKKwkJCQkyMjAzNiBFcmJhIChDTykKKwkJCQlJVEFMWQorCiswMC0wMy01MSAgIChoZXgpCQlEaWVib2xkLCBJbmMuCiswMDAzNTEgICAgIChiYXNlIDE2KQkJRGllYm9sZCwgSW5jLgorCQkJCTU5OTUgTWF5ZmFpciBSb2FkCisJCQkJTm9ydGggQ2FudG9uIE9IIDQ0NzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy01MiAgIChoZXgpCQlDb2x1YnJpcyBOZXR3b3JrcworMDAwMzUyICAgICAoYmFzZSAxNikJCUNvbHVicmlzIE5ldHdvcmtzCisJCQkJNDQwIEFybWFuZC1GcmFwcGllcgorCQkJCUxhdmFsIChRdWViZWMpCisJCQkJSDdWIDRCNAorCQkJCUNBTkFEQQorCiswMC0wMy01MyAgIChoZXgpCQlNaXRhYywgSW5jLgorMDAwMzUzICAgICAoYmFzZSAxNikJCU1pdGFjLCBJbmMuCisJCQkJTm8uIDIsIENodW5nLUhzaWFvIFN0cmVldAorCQkJCUNoaXR1IEtlZWx1bmcsIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtNTQgICAoaGV4KQkJRmliZXIgTG9naWMgQ29tbXVuaWNhdGlvbnMKKzAwMDM1NCAgICAgKGJhc2UgMTYpCQlGaWJlciBMb2dpYyBDb21tdW5pY2F0aW9ucworCQkJCTVGLTMsIE5vLiA5LCBQcm9zcGVyaXR5IFJvYWQgT25lLAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtNTUgICAoaGV4KQkJVGVyYUJlYW0gSW50ZXJuZXQgU3lzdGVtcworMDAwMzU1ICAgICAoYmFzZSAxNikJCVRlcmFCZWFtIEludGVybmV0IFN5c3RlbXMKKwkJCQkxNDgzMyBORSA4N3RoIFN0LiwgQmxkZy4gQworCQkJCVJlZG1vbmQgV0EgOTgwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTU2ICAgKGhleCkJCVdpbmNvciBOaXhkb3JmIEludGVybmF0aW9uYWwgR21iSAorMDAwMzU2ICAgICAoYmFzZSAxNikJCVdpbmNvciBOaXhkb3JmIEludGVybmF0aW9uYWwgR21iSAorCQkJCUhlaW56LU5peGRvcmYgUmluZyAxCisJCQkJRC0zMzEwNiBQYWRlcmJvcm4gCisJCQkJR0VSTUFOWQorCiswMC0wMy01NyAgIChoZXgpCQlJbnRlcnZvaWNlLUJyaXRlLCBJbmMuCiswMDAzNTcgICAgIChiYXNlIDE2KQkJSW50ZXJ2b2ljZS1Ccml0ZSwgSW5jLgorCQkJCTE3ODExIFdhdGVydmlldyBQa3d5LgorCQkJCURhbGxhcyBUWCA3NTI1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNTggICAoaGV4KQkJSGFueWFuZyBEaWdpdGVjaCBDby4sIEx0ZC4KKzAwMDM1OCAgICAgKGJhc2UgMTYpCQlIYW55YW5nIERpZ2l0ZWNoIENvLiwgTHRkLgorCQkJCTEzRiwgQWNldHdpbnRvd2VyMiwgMjEyLTMwLCBHdXJvLURvbmcKKwkJCQlHdXJvLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy01OSAgIChoZXgpCQlEaWdpdGFsU2lzCiswMDAzNTkgICAgIChiYXNlIDE2KQkJRGlnaXRhbFNpcworCQkJCUItMTQwNSBTYW1obyBCbGRnLgorCQkJCTI3NS02IFlhbmdqYWUKKwkJCQlTZW9jaG8gU2VvdWwsIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy01QSAgIChoZXgpCQlQaG90cm9uIExpbWl0ZWQKKzAwMDM1QSAgICAgKGJhc2UgMTYpCQlQaG90cm9uIExpbWl0ZWQKKwkJCQkxLTEtOCwgRnVqaW1pLAorCQkJCUNoaXlvZGEta3UgIDEwMi0wMDcxCisJCQkJSkFQQU4KKworMDAtMDMtNUIgICAoaGV4KQkJQnJpZGdlV2F2ZSBDb21tdW5pY2F0aW9ucworMDAwMzVCICAgICAoYmFzZSAxNikJCUJyaWRnZVdhdmUgQ29tbXVuaWNhdGlvbnMKKwkJCQkzMzUwIFRob21hZCBSb2FkCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTVDICAgKGhleCkJCVNhaW50IFNvbmcgQ29ycC4KKzAwMDM1QyAgICAgKGJhc2UgMTYpCQlTYWludCBTb25nIENvcnAuCisJCQkJNEYsIE5vLiAxMiwgTGFuZSA5NCwgVHNhbyBUaSBXemkKKwkJCQlTaGVuIEtlbmcgSHNpYW5nLCBUYWlwZWkgSHNpZW4KKwkJCQkyMjIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTVEICAgKGhleCkJCUJvc3VuZyBIaS1OZXQgQ28uLCBMdGQuCiswMDAzNUQgICAgIChiYXNlIDE2KQkJQm9zdW5nIEhpLU5ldCBDby4sIEx0ZC4KKwkJCQlZb3VuZ2lsIEIvTyAyRiwKKwkJCQlZYW5nSmFlLWRvbmcgMTItNywgU2VvY2hvLWd1LCBTZW91bAorCQkJCTEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtNUUgICAoaGV4KQkJTWV0cm9wb2xpdGFuIEFyZWEgTmV0d29ya3MsIEluYy4KKzAwMDM1RSAgICAgKGJhc2UgMTYpCQlNZXRyb3BvbGl0YW4gQXJlYSBOZXR3b3JrcywgSW5jLgorCQkJCTEyOTkgUGVubnN5bHZhbmlhIEF2ZW51ZSwgTlcKKwkJCQlOaW50aCBGbG9vcgorCQkJCVdhc2hpbmd0b24gREMgMjAwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTVGICAgKGhleCkJCVBydWVmdGVjaG5payBDb25kaXRpb24gTW9uaXRvcmluZyBHbWJIICYgQ28uIEtHCiswMDAzNUYgICAgIChiYXNlIDE2KQkJUHJ1ZWZ0ZWNobmlrIENvbmRpdGlvbiBNb25pdG9yaW5nIEdtYkggJiBDby4gS0cKKwkJCQlGcmFuei1CYXllci1TdHIuIDE0CisJCQkJRC04ODIxMyBSYXZlbnNidXJnCisJCQkJR0VSTUFOWQorCiswMC0wMy02MCAgIChoZXgpCQlQQUMgSW50ZXJhY3RpdmUgVGVjaG5vbG9neSwgSW5jLgorMDAwMzYwICAgICAoYmFzZSAxNikJCVBBQyBJbnRlcmFjdGl2ZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJNkYsIE5vLiAzMCwgQWxsZXkgMTgsIExhbmUgNDc4CisJCQkJSmFpIEd1YW5nIFJvYWQsIE5laS1IdQorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy02MSAgIChoZXgpCQlXaWRjb21tLCBJbmMuCiswMDAzNjEgICAgIChiYXNlIDE2KQkJV2lkY29tbSwgSW5jLgorCQkJCTk2NDUgU2NyYW50b24gUm9hZAorCQkJCVN1aXRlIDIwNQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNjIgICAoaGV4KQkJVm9kdGVsIENvbW11bmljYXRpb25zLCBJbmMuCiswMDAzNjIgICAgIChiYXNlIDE2KQkJVm9kdGVsIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTJGLCBObyAxNjYgQ2hpZW4tWWkgUm9hZAorCQkJCUNodW5nLUhvIENpdHksIFRhaXBlaSBDb3VudHkKKwkJCQkyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLTYzICAgKGhleCkJCU1pcmFlc3lzIENvLiwgTHRkLgorMDAwMzYzICAgICAoYmFzZSAxNikJCU1pcmFlc3lzIENvLiwgTHRkLgorCQkJCTY1MC0yIDQgRmwuIERhZW15dW5nIEJsZGcuCisJCQkJWXVrc2FtLCBLYW5nbmFtLCBTZW91bCwKKwkJCQkxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTY0ICAgKGhleCkJCVNjZW5peCBTZW1pY29uZHVjdG9yLCBJbmMuCiswMDAzNjQgICAgIChiYXNlIDE2KQkJU2Nlbml4IFNlbWljb25kdWN0b3IsIEluYy4KKwkJCQkxMzMwIENoYXJsZXN0b24gUmQuCisJCQkJTW91bnRhaW52aWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy02NSAgIChoZXgpCQlLaXJhIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbnMsIEx0ZC4KKzAwMDM2NSAgICAgKGJhc2UgMTYpCQlLaXJhIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbnMsIEx0ZC4KKwkJCQk2dGggRmwuIEFuYW0gVG93ZXIsCisJCQkJNzAyLTEwIFllb2tzYW0tZG9uZywgS2FuZ25hbS1rdSwgU2VvdWwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtNjYgICAoaGV4KQkJQVNNIFBhY2lmaWMgVGVjaG5vbG9neQorMDAwMzY2ICAgICAoYmFzZSAxNikJCUFTTSBQYWNpZmljIFRlY2hub2xvZ3kKKwkJCQkxMi9GIFdhdHNvbiBDZW50cmUKKwkJCQkxNiBLdW5nIFlpcCBTdC4KKwkJCQlLd2FpIENodW5nICAKKwkJCQlIT05HIEtPTkcKKworMDAtMDMtNjcgICAoaGV4KQkJSmFzbWluZSBOZXR3b3JrcywgSW5jLgorMDAwMzY3ICAgICAoYmFzZSAxNikJCUphc21pbmUgTmV0d29ya3MsIEluYy4KKwkJCQkxOTQwIFphbmtlciBSb2FkCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTY4ICAgKGhleCkJCUVtYmVkb25lIENvLiwgTHRkLgorMDAwMzY4ICAgICAoYmFzZSAxNikJCUVtYmVkb25lIENvLiwgTHRkLgorCQkJCUZsLiA5IEFubmV4IFNhbWh3YW4gQi9ELiAxNy0yNgorCQkJCVllb2lkby1Eb25nLCBZb3VuZ2RldW5ncG8ta3UsCisJCQkJU2VvdWwgIDE1MC0wMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy02OSAgIChoZXgpCQlOaXBwb24gQW50ZW5uYSBDby4sIEx0ZC4KKzAwMDM2OSAgICAgKGJhc2UgMTYpCQlOaXBwb24gQW50ZW5uYSBDby4sIEx0ZC4KKwkJCQlOby4gNDktOCwgTmlzaGlvZ3UsCisJCQkJNy1DaG9tZSBBcmFrYXdhLWt1LAorCQkJCVRva3lvICAxMTYtODU2MQorCQkJCUpBUEFOCisKKzAwLTAzLTZBICAgKGhleCkJCU1haW5uZXQsIEx0ZC4KKzAwMDM2QSAgICAgKGJhc2UgMTYpCQlNYWlubmV0LCBMdGQuCisJCQkJUC5PLiBCb3ggMjMyNAorCQkJCUtmYXIgU2FiYSA0NDY0MQorCQkJCUlTUkFFTAorCiswMC0wMy02QiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAzNkIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNkMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwMzZDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTZEICAgKGhleCkJCVJ1bnRvcCwgSW5jLgorMDAwMzZEICAgICAoYmFzZSAxNikJCVJ1bnRvcCwgSW5jLgorCQkJCTEsIExhbmUgMjEsIEhzaW4gSHVhIFJvYWQsIEt1ZWlzaGFuCisJCQkJSW5kdXN0cmlhbCBQYXJrLCBUYW95dWFuIENpdHksCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy02RSAgIChoZXgpCQlOaWNvbiBTeXN0ZW1zIChQdHkpIExpbWl0ZWQKKzAwMDM2RSAgICAgKGJhc2UgMTYpCQlOaWNvbiBTeXN0ZW1zIChQdHkpIExpbWl0ZWQKKwkJCQkxMSBUZXJtbyBTdHJlZXQKKwkJCQlUZWNobm9wYXJrIFN0ZWxsZW5ib3NjaCwgNzYwMAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0wMy02RiAgIChoZXgpCQlUZWxzZXkgU1BBCiswMDAzNkYgICAgIChiYXNlIDE2KQkJVGVsc2V5IFNQQQorCQkJCVZpYWxlIERlbGwgSW5kdXN0cmlhLCAxCisJCQkJMzEgMDU1IFF1aW50bworCQkJCURpVHJldmlzby0gIAorCQkJCUlUQUxZCisKKzAwLTAzLTcwICAgKGhleCkJCU5YVFYsIEluYy4KKzAwMDM3MCAgICAgKGJhc2UgMTYpCQlOWFRWLCBJbmMuCisJCQkJNTk1NSBEZSBTb3RvIEF2ZSwgIzE2MAorCQkJCVdvb2RsYW5kIEhpbGxzIENBIDkxMzY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy03MSAgIChoZXgpCQlBY29teiBOZXR3b3JrcyBDb3JwLgorMDAwMzcxICAgICAoYmFzZSAxNikJCUFjb216IE5ldHdvcmtzIENvcnAuCisJCQkJN3RoIEZsLiwgV29vc2VvayBCbGRnLiwgMTAwNy0zNworCQkJCVNhZGFuZzEtZG9uZywgRG9uZ2phay1ndSwKKwkJCQlTZW91bCAgMTU2LTA5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTcyICAgKGhleCkJCVVMQU4KKzAwMDM3MiAgICAgKGJhc2UgMTYpCQlVTEFOCisJCQkJNUYtMywgTm8uIDMxLTEsIExhbmUgMTY5LAorCQkJCUthbmcgTmluZyBTdC4sIEhzaS1DaGluIENpdHksIFRhaXBlaSBIc2kKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtNzMgICAoaGV4KQkJQXNlbHNhbiBBLlMKKzAwMDM3MyAgICAgKGJhc2UgMTYpCQlBc2Vsc2FuIEEuUworCQkJCU1laG1ldCBBa2lmIEVyc295IE1haC4KKwkJCQkxNiBDYWQuIE5vLiAxNiBNYWN1bmtveS9BbmthcmEKKwkJCQlUVVJLRVkKKwkJCQlUVVJLRVkKKworMDAtMDMtNzQgICAoaGV4KQkJQ29udHJvbCBNaWNyb3N5c3RlbXMKKzAwMDM3NCAgICAgKGJhc2UgMTYpCQlDb250cm9sIE1pY3Jvc3lzdGVtcworCQkJCTQ4IFN0ZWFjaWUgRHJpdmUKKwkJCQlPdHRhd2EgT250YXJpbyBLMksgMkE5CisJCQkJQ0FOQURBCisKKzAwLTAzLTc1ICAgKGhleCkJCU5ldE1lZGlhLCBJbmMuCiswMDAzNzUgICAgIChiYXNlIDE2KQkJTmV0TWVkaWEsIEluYy4KKwkJCQkxMDk0MCBOLiBTdGFsbGFyZCBQbGFjZQorCQkJCVR1c2NvbiBBWiA4NTczNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNzYgICAoaGV4KQkJR3JhcGh0ZWMgVGVjaG5vbG9neSwgSW5jLgorMDAwMzc2ICAgICAoYmFzZSAxNikJCUdyYXBodGVjIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk0NSBQYXJrZXIsIFN1aXRlIEEKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTc3ICAgKGhleCkJCUdpZ2FiaXQgV2lyZWxlc3MKKzAwMDM3NyAgICAgKGJhc2UgMTYpCQlHaWdhYml0IFdpcmVsZXNzCisJCQkJMzA5OSBOLiBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtNzggICAoaGV4KQkJSFVNQVggQ28uLCBMdGQuCiswMDAzNzggICAgIChiYXNlIDE2KQkJSFVNQVggQ28uLCBMdGQuCisJCQkJMjcxLTIsIFN1aC1oeXVuLURvbmcsCisJCQkJQnVuZGFuZy1HdSwgU3VuZ25hbS1DaXR5LCBLeW9uZ2dpLURvLCA0NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy03OSAgIChoZXgpCQlQcm9zY2VuZCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMzc5ICAgICAoYmFzZSAxNikJCVByb3NjZW5kIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMkYsIE5vLjM2LCBJbmR1c3RyeSBFLiBSZC4gSVYsCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy03QSAgIChoZXgpCQlUYWl5byBZdWRlbiBDby4sIEx0ZC4KKzAwMDM3QSAgICAgKGJhc2UgMTYpCQlUYWl5byBZdWRlbiBDby4sIEx0ZC4KKwkJCQk4LTEgU2FrYWUtQ2hvCisJCQkJVGFrYXNha2ktU2hpIEd1bm1hIDM3MC04NTIyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMy03QiAgIChoZXgpCQlJREVDIElaVU1JIENvcnBvcmF0aW9uCiswMDAzN0IgICAgIChiYXNlIDE2KQkJSURFQyBJWlVNSSBDb3Jwb3JhdGlvbgorCQkJCTctMzEsIE5pc2hpbWl5YWhhcmEKKwkJCQkxLUNob21lIFlvZG9nYXdhLWt1LiBPc2FrYSA1MzItODU1MAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDMtN0MgICAoaGV4KQkJQ29heCBNZWRpYQorMDAwMzdDICAgICAoYmFzZSAxNikJCUNvYXggTWVkaWEKKwkJCQkxMjIwIE9hayBJbmR1c3RyaWFsIExhbmUKKwkJCQlTdWl0ZSBCCisJCQkJQ3VtbWluZyBHQSAzMDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtN0QgICAoaGV4KQkJU3RlbGxjb20KKzAwMDM3RCAgICAgKGJhc2UgMTYpCQlTdGVsbGNvbQorCQkJCTEwNTI1IFZpc3RhIFNvcnJlbnRvIFBhcmt3YXkKKwkJCQlTdWl0ZSAxMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTdFICAgKGhleCkJCVBPUlRlY2ggQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDM3RSAgICAgKGJhc2UgMTYpCQlQT1JUZWNoIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTUwLCBTaGlhbmctU2h1bmcgTi4gUmQuLAorCQkJCVRhaWNodW5nIFRhaXdhbiA0MDMsIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtN0YgICAoaGV4KQkJQXRoZXJvcyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMzdGICAgICAoYmFzZSAxNikJCUF0aGVyb3MgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk1NDgwIEdyZWF0IEFtZXJpY2EgUGFya3dheQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy04MCAgIChoZXgpCQlTU0ggQ29tbXVuaWNhdGlvbnMgU2VjdXJpdHkgQ29ycC4KKzAwMDM4MCAgICAgKGJhc2UgMTYpCQlTU0ggQ29tbXVuaWNhdGlvbnMgU2VjdXJpdHkgQ29ycC4KKwkJCQlGcmVkcmlraW5rYXR1IDQyCisJCQkJRmluIDAxMDAgSGVsc2lua2kKKwkJCQlGSU5MQU5ECisJCQkJRklOTEFORAorCiswMC0wMy04MSAgIChoZXgpCQlJbmdlbmljbyBJbnRlcm5hdGlvbmFsCiswMDAzODEgICAgIChiYXNlIDE2KQkJSW5nZW5pY28gSW50ZXJuYXRpb25hbAorCQkJCTEvOSBBcG9sbG8gU3RyZWV0CisJCQkJV2Fycmlld29vZCBOU1cgMjEwMgorCQkJCUFVU1RSQUxJQQorCiswMC0wMy04MiAgIChoZXgpCQlBLU9uZSBDby4sIEx0ZC4KKzAwMDM4MiAgICAgKGJhc2UgMTYpCQlBLU9uZSBDby4sIEx0ZC4KKwkJCQk2LTktMjAsIFNoaW1vaWNoaWJhLWNobywKKwkJCQlLYXN1Z2FpLXNoaSwgQWljaGkta2VuLCA0ODYtMDg1MgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDMtODMgICAoaGV4KQkJTWV0ZXJhIE5ldHdvcmtzLCBJbmMuCiswMDAzODMgICAgIChiYXNlIDE2KQkJTWV0ZXJhIE5ldHdvcmtzLCBJbmMuCisJCQkJMTIwMiBSaWNoYXJkc29uIERyLgorCQkJCVN1aXRlIDEwMAorCQkJCVJpY2hhcmRzb24gVFggNzUwODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTg0ICAgKGhleCkJCUFFVEEKKzAwMDM4NCAgICAgKGJhc2UgMTYpCQlBRVRBCisJCQkJS2VwbGVyIDYKKwkJCQkxOC0yMiBhdmVudWUgRWRvdWFyZCBIZXJyaW90CisJCQkJTGUgUGxlc3NpcyBSb2JpbnNvbiAgOTIzNTAKKwkJCQlGUkFOQ0UKKworMDAtMDMtODUgICAoaGV4KQkJQWN0ZWxpcyBOZXR3b3JrcywgSW5jLgorMDAwMzg1ICAgICAoYmFzZSAxNikJCUFjdGVsaXMgTmV0d29ya3MsIEluYy4KKwkJCQkxIEJhemVsIFN0LiwgUC5PLkIuIDEwMTczCisJCQkJUGV0YWggLSBUaWt2YSA0OTEwMworCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wMy04NiAgIChoZXgpCQlIbyBOZXQsIEluYy4KKzAwMDM4NiAgICAgKGJhc2UgMTYpCQlIbyBOZXQsIEluYy4KKwkJCQlWZW50dXJlIENvbXBhbnkgQ2VudGVyCisJCQkJU2FuIDk0LTYgWWl1aS1Eb25nLCBQYWxkYWwtR3UsIFN1d29uLXNpLAorCQkJCUtPUkVBIDQ0Mi03NjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtODcgICAoaGV4KQkJQmxhemUgTmV0d29yayBQcm9kdWN0cworMDAwMzg3ICAgICAoYmFzZSAxNikJCUJsYXplIE5ldHdvcmsgUHJvZHVjdHMKKwkJCQk1MTgwIEhhY2llbmRhIERyaXZlCisJCQkJRHVibGluIENBIDk0NTY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy04OCAgIChoZXgpCQlGYXN0ZmFtZSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwMzg4ICAgICAoYmFzZSAxNikJCUZhc3RmYW1lIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJN0YsIE5vLiAxMTEsIEhzaW5nIERlIFJkLiwKKwkJCQlTYW5jaHVuZywgVGFpcGVpLAorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy04OSAgIChoZXgpCQlQbGFudHJvbmljcworMDAwMzg5ICAgICAoYmFzZSAxNikJCVBsYW50cm9uaWNzCisJCQkJMzQ1IEVuY2luYWwgU3QuCisJCQkJU2FudGEgQ3J1eiBDQSA5NTA2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOEEgICAoaGV4KQkJQW1lcmljYSBPbmxpbmUsIEluYy4KKzAwMDM4QSAgICAgKGJhc2UgMTYpCQlBbWVyaWNhIE9ubGluZSwgSW5jLgorCQkJCTQ0OTAwIFByZW50aWNlIERyaXZlCisJCQkJRHVsbGVzIFZBIDIwMTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy04QiAgIChoZXgpCQlQTFVTLU9ORSBJJlQsIEluYy4KKzAwMDM4QiAgICAgKGJhc2UgMTYpCQlQTFVTLU9ORSBJJlQsIEluYy4KKwkJCQk3RiwgQS1TYW4gVmVudHVyZSBUb3dlciwKKwkJCQlZYW5nSmFlLWRvbmcsIFNlb2Noby1rdSwgU2VvdWwsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtOEMgICAoaGV4KQkJVG90YWwgSW1wYWN0CiswMDAzOEMgICAgIChiYXNlIDE2KQkJVG90YWwgSW1wYWN0CisJCQkJMjk1IFdpbGxpcyBBdmUuCisJCQkJU3VpdGUgRQorCQkJCUNhbWFyaWxsbyBDQSA5MzAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOEQgICAoaGV4KQkJUENTIFJldmVudWUgQ29udHJvbCBTeXN0ZW1zLCBJbmMuCiswMDAzOEQgICAgIChiYXNlIDE2KQkJUENTIFJldmVudWUgQ29udHJvbCBTeXN0ZW1zLCBJbmMuCisJCQkJNTYwIFN5bHZhbiBBdmUuCisJCQkJRW5nbGV3b29kIENsaWZmcyBOSiAwNzYzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOEUgICAoaGV4KQkJQXRvZ2EgU3lzdGVtcywgSW5jLgorMDAwMzhFICAgICAoYmFzZSAxNikJCUF0b2dhIFN5c3RlbXMsIEluYy4KKwkJCQk0OTAyNiBNaWxtb250IERyaXZlCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOEYgICAoaGV4KQkJV2VpbnNjaGVsIENvcnBvcmF0aW9uCiswMDAzOEYgICAgIChiYXNlIDE2KQkJV2VpbnNjaGVsIENvcnBvcmF0aW9uCisJCQkJNTMwNSBTcGVjdHJ1bSBEcml2ZQorCQkJCUZyZWRlcmljayBNRCAyMTcwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOTAgICAoaGV4KQkJRGlnaXRhbCBWaWRlbyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwMzkwICAgICAoYmFzZSAxNikJCURpZ2l0YWwgVmlkZW8gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk1MDAgVy4gQ3VtbWluZ3MgUGFyaworCQkJCVN1aXRlIDIwMDAKKwkJCQlXb2J1cm4gTUEgMDc4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTkxICAgKGhleCkJCUFkdmFuY2VkIERpZ2l0YWwgQnJvYWRjYXN0LCBMdGQuCiswMDAzOTEgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgRGlnaXRhbCBCcm9hZGNhc3QsIEx0ZC4KKwkJCQk4RiwgMTQ1IENodW5nIFNoYW4gTi4gUmQuIFNlYy4gMiwKKwkJCQlUYWlwZWksIDEwNCwKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtOTIgICAoaGV4KQkJSHl1bmRhaSBUZWxldGVrIENvLiwgTHRkLgorMDAwMzkyICAgICAoYmFzZSAxNikJCUh5dW5kYWkgVGVsZXRlayBDby4sIEx0ZC4KKwkJCQlCLTUwMSwgVGVjaG5vIFBhcmssIDE0OCBZYXRhcC1kb25nLAorCQkJCUJvb25kYW5nLWd1LCBTdW5nbmFtLXNpLCBLeXVuZ2dpLWRvLCA0NjMKKwkJCQlLT1JFQSBSZXB1YmxpYworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy05MyAgIChoZXgpCQlBcHBsZSBDb21wdXRlciwgSW5jLgorMDAwMzkzICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyLCBJbmMuCisJCQkJMjA2NTAgVmFsbGV5IEdyZWVuIERyLgorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOTQgICAoaGV4KQkJQ29ubmVjdCBPbmUKKzAwMDM5NCAgICAgKGJhc2UgMTYpCQlDb25uZWN0IE9uZQorCQkJCTIgSGFuYWdhciBTdHJlZXQKKwkJCQlLZmFyIFNhYmEgNDQ0MjUKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDMtOTUgICAoaGV4KQkJQ2FsaWZvcm5pYSBBbXBsaWZpZXIKKzAwMDM5NSAgICAgKGJhc2UgMTYpCQlDYWxpZm9ybmlhIEFtcGxpZmllcgorCQkJCTQ2MCBDYWxsZSBTYW4gUGFibG8KKwkJCQlDYW1hcmlsbG8gQ0EgOTMwMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTk2ICAgKGhleCkJCUVaIENhc3QgQ28uLCBMdGQuCiswMDAzOTYgICAgIChiYXNlIDE2KQkJRVogQ2FzdCBDby4sIEx0ZC4KKwkJCQk2dGggRmxvb3IsIEp1bmdBbmcgQnVpbGRpbmcsCisJCQkJOTktMSwgTm9uaHl1bi1Eb25nICgxMzUtMDEwKSBLYW5nbmFtLWt1LAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTk3ICAgKGhleCkJCVdhdGNoZnJvbnQgTGltaXRlZAorMDAwMzk3ICAgICAoYmFzZSAxNikJCVdhdGNoZnJvbnQgTGltaXRlZAorCQkJCTMgVmljdG9yaWEgV2FsaworCQkJCVdva2luZ2hhbSAgUkc0MCA1WUwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMy05OCAgIChoZXgpCQlXSVNJCiswMDAzOTggICAgIChiYXNlIDE2KQkJV0lTSQorCQkJCVdpbGhlbG0tU2lobi1TdHIuIDUtNworCQkJCUQtNzUyMjMgTmllZmVybi1PZXNjaGVsYnJvbm4gCisJCQkJR0VSTUFOWQorCiswMC0wMy05OSAgIChoZXgpCQlEb25nanUgSW5mb3JtYXRpb25zICYgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDAzOTkgICAgIChiYXNlIDE2KQkJRG9uZ2p1IEluZm9ybWF0aW9ucyAmIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorCQkJCSMzMDUsIEV1bnN1ayBCbGRnLiBTYW1zdW5nLWRvbmcKKwkJCQlLYW5nbmFtLWd1IFNlb3VsCisJCQkJUmVwdWJsaWMgb2YgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtOUEgICAoaGV4KQkJU2lDb25uZWN0CiswMDAzOUEgICAgIChiYXNlIDE2KQkJU2lDb25uZWN0CisJCQkJRGVsdGEgMTAwCisJCQkJV2VsdG9uIFJvYWQKKwkJCQlTd2luZG9uICBTTjUgN1hQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDMtOUIgICAoaGV4KQkJTmV0Q2hpcCBUZWNobm9sb2d5LCBJbmMuCiswMDAzOUIgICAgIChiYXNlIDE2KQkJTmV0Q2hpcCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMzM1IFBpb25lZXIgV2F5CisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtOUMgICAoaGV4KQkJT3B0aU1pZ2h0IENvbW11bmljYXRpb25zLCBJbmMuCiswMDAzOUMgICAgIChiYXNlIDE2KQkJT3B0aU1pZ2h0IENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJOTgwIExpbmRhIFZpc3RhIEF2ZW51ZQorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLTlEICAgKGhleCkJCVFpc2RhIENvcnBvcmF0aW9uCiswMDAzOUQgICAgIChiYXNlIDE2KQkJUWlzZGEgQ29ycG9yYXRpb24KKwkJCQkxNTcgU2hhbiBZaW5nIFJvYWQKKwkJCQlHdWVpU2hhbiBUYW95dWFuIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtOUUgICAoaGV4KQkJVGVyYSBTeXN0ZW0gQ28uLCBMdGQuCiswMDAzOUUgICAgIChiYXNlIDE2KQkJVGVyYSBTeXN0ZW0gQ28uLCBMdGQuCisJCQkJRG9vc3VuZyBCL0YgUm0gMzAyCisJCQkJNzY2LTEgU2hpbmNodW5nZG9uZyBTaGlodW5nIENpdHkgS3l1bmdraQorCQkJCVJlcHVibGljIG9mIEtvcmVhCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLTlGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDM5RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1BMCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAzQTAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQTEgICAoaGV4KQkJSElQRVIgSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9uLCBJbmMuCiswMDAzQTEgICAgIChiYXNlIDE2KQkJSElQRVIgSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9uLCBJbmMuCisJCQkJMTY3NS03LCBTaW5pbC1kb25nLAorCQkJCVRhZWR1ay1ndSwgVGFlam9uLAorCQkJCTMwNi0yMzAgU291dGggS29yZWEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtQTIgICAoaGV4KQkJQ2F0YXB1bHQgQ29tbXVuaWNhdGlvbnMKKzAwMDNBMiAgICAgKGJhc2UgMTYpCQlDYXRhcHVsdCBDb21tdW5pY2F0aW9ucworCQkJCTE2MCBTLiBXaGlzbWFuIFJkLgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUEzICAgKGhleCkJCU1BVklYLCBMdGQuCiswMDAzQTMgICAgIChiYXNlIDE2KQkJTUFWSVgsIEx0ZC4KKwkJCQlQT0IgMjE3LCBZb2tuZWFtIElsbGl0LAorCQkJCTIwNjkyCisJCQkJSVNSQUVMCisKKzAwLTAzLUE0ICAgKGhleCkJCUltYXRpb24gQ29ycC4KKzAwMDNBNCAgICAgKGJhc2UgMTYpCQlJbWF0aW9uIENvcnAuCisJCQkJMSBJbWF0aW9uIFBsYWNlCisJCQkJRGlzY292ZXJ5IDJCLTUwCisJCQkJT2FrZGFsZSBNTiA1NTEyOC0zNDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1BNSAgIChoZXgpCQlNZWRlYSBDb3Jwb3JhdGlvbgorMDAwM0E1ICAgICAoYmFzZSAxNikJCU1lZGVhIENvcnBvcmF0aW9uCisJCQkJNTcwMSBMaW5kZXJvIENhbnlvbiBSZC4KKwkJCQlCbGRnLiAzLTEwMAorCQkJCVdldGxha2UgVmlsbGFnZSBDQSA5MTM2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQTYgICAoaGV4KQkJVHJheGl0IFRlY2hub2xvZ3ksIEluYy4KKzAwMDNBNiAgICAgKGJhc2UgMTYpCQlUcmF4aXQgVGVjaG5vbG9neSwgSW5jLgorCQkJCTI1NiBHcmVhdCBSb2FkLAorCQkJCVN1aXRlIDE2CisJCQkJTGl0dGxldG9uIE1BIDAxNDYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1BNyAgIChoZXgpCQlVbml4dGFyIFRlY2hub2xvZ3ksIEluYy4KKzAwMDNBNyAgICAgKGJhc2UgMTYpCQlVbml4dGFyIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxM0YgTm8uIDEwMCBNaW5nIENodWFuIFJvYWQKKwkJCQlIc2luIFRpZW4sIFRhaXBlaSwKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLUE4ICAgKGhleCkJCUlET1QgQ29tcHV0ZXJzLCBJbmMuCiswMDAzQTggICAgIChiYXNlIDE2KQkJSURPVCBDb21wdXRlcnMsIEluYy4KKwkJCQkzRi4sIE5vLiAxMzcsIExhbmUgMjM1CisJCQkJUGFvLUNoaWFvIFJvYWQsIEhzaW4tVGllbiBUYWlwZWkgQ291bnRyeQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy1BOSAgIChoZXgpCQlBWENFTlQgTWVkaWEgQUcKKzAwMDNBOSAgICAgKGJhc2UgMTYpCQlBWENFTlQgTWVkaWEgQUcKKwkJCQlUZWNobm9sb2dpZXBhcmsgMTMKKwkJCQkzMzEwMCBQYWRlcmJvcm4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMy1BQSAgIChoZXgpCQlXYXRsb3cKKzAwMDNBQSAgICAgKGJhc2UgMTYpCQlXYXRsb3cKKwkJCQkxMjQxIEJ1bmR5IEJsdmQuCisJCQkJV2lub25hIE1OIDU1OTg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1BQiAgIChoZXgpCQlCcmlkZ2UgSW5mb3JtYXRpb24gU3lzdGVtcworMDAwM0FCICAgICAoYmFzZSAxNikJCUJyaWRnZSBJbmZvcm1hdGlvbiBTeXN0ZW1zCisJCQkJNzE3IE9mZmljZSBQYXJrd2F5CisJCQkJU3QuIExvdWlzIE1PIDYzMTQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1BQyAgIChoZXgpCQlGcm9uaXVzIFNjaHdlaXNzbWFzY2hpbmVuCiswMDAzQUMgICAgIChiYXNlIDE2KQkJRnJvbml1cyBTY2h3ZWlzc21hc2NoaW5lbgorCQkJCUd1ZW50ZXIgRnJvbml1cyBTdHIuIDEKKwkJCQlBLTQ2MDAgV2Vpcy1UaGFsaGVpbQorCQkJCUFVU1RSSUEKKwkJCQlBVVNUUklBCisKKzAwLTAzLUFEICAgKGhleCkJCUVtZXJzb24gRW5lcmd5IFN5c3RlbXMgQUIKKzAwMDNBRCAgICAgKGJhc2UgMTYpCQlFbWVyc29uIEVuZXJneSBTeXN0ZW1zIEFCCisJCQkJU0UtMTQxIDgyIFN0b2NraG9sbQorCQkJCVNXRURFTgorCiswMC0wMy1BRSAgIChoZXgpCQlBbGxpZWQgQWR2YW5jZWQgTWFudWZhY3R1cmluZyBQdGUsIEx0ZC4KKzAwMDNBRSAgICAgKGJhc2UgMTYpCQlBbGxpZWQgQWR2YW5jZWQgTWFudWZhY3R1cmluZyBQdGUsIEx0ZC4KKwkJCQk3IEludGVybmF0aW9uYWwgQnVzaW5lc3MgUGFyaworCQkJCSMwMi0wMAorCQkJCVNpbmdhcG9yZSA2MDk5MTkKKwkJCQlTSU5HQVBPUkUKKworMDAtMDMtQUYgICAoaGV4KQkJUGFyYWdlYSBDb21tdW5pY2F0aW9ucworMDAwM0FGICAgICAoYmFzZSAxNikJCVBhcmFnZWEgQ29tbXVuaWNhdGlvbnMKKwkJCQkyMDcgUGVycnkgUGFya3dheQorCQkJCUdhaXRoZXJzYnVyZyBNRCAyMDg3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQjAgICAoaGV4KQkJWHNlbnNlIFRlY2hub2xvZ3kgQ29ycC4KKzAwMDNCMCAgICAgKGJhc2UgMTYpCQlYc2Vuc2UgVGVjaG5vbG9neSBDb3JwLgorCQkJCTExIEYsIDIzMiwgU2VjLiAzLCBDaGVuZ1RlaCBSZC4KKwkJCQlUYWlwZWkgVEFJV0FOLCAxMDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLUIxICAgKGhleCkJCUhvc3BpcmEgSW5jLgorMDAwM0IxICAgICAoYmFzZSAxNikJCUhvc3BpcmEgSW5jLgorCQkJCTc1NSBKYXJ2aXMgRHJpdmUKKwkJCQlNb3JnYW4gSGlsbCBDQSA5NTAzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQjIgICAoaGV4KQkJUmFkd2FyZQorMDAwM0IyICAgICAoYmFzZSAxNikJCVJhZHdhcmUKKwkJCQk4IEhhbXJwZSBIb2NodmltCisJCQkJSmVydXNhbGVtCisJCQkJSVNSQUVMCisKKzAwLTAzLUIzICAgKGhleCkJCUlBIExpbmsgU3lzdGVtcyBDby4sIEx0ZC4KKzAwMDNCMyAgICAgKGJhc2UgMTYpCQlJQSBMaW5rIFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJNkYtNCwgTm8uIDgxIEhzaW4gVGFpCisJCQkJV3UgUmQuLCBTZWMuIDEgSHNpaC1DaGloLCBUYWlwZWkgSHNpZW4sCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLUI0ICAgKGhleCkJCU1hY3JvdGVrIEludGVybmF0aW9uYWwgQ29ycC4KKzAwMDNCNCAgICAgKGJhc2UgMTYpCQlNYWNyb3RlayBJbnRlcm5hdGlvbmFsIENvcnAuCisJCQkJMkYsIE5vLiAyOCwgTGFuZSA0NgorCQkJCUt3YW5nIEZ1IDYgUm9hZCwKKwkJCQlUYWlwZWkgVGFpcGVpIFRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtQjUgICAoaGV4KQkJRW50cmEgVGVjaG5vbG9neSBDby4KKzAwMDNCNSAgICAgKGJhc2UgMTYpCQlFbnRyYSBUZWNobm9sb2d5IENvLgorCQkJCUZsLiAzLCBOby4gNSwgQWxsZXkgMiwKKwkJCQlTdS1XZWkgTGFuZSwgQ2h1bmctQ2hlbmcgUmQuLCBIc2luLURpZW4sCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLUI2ICAgKGhleCkJCVFTSSBDb3Jwb3JhdGlvbgorMDAwM0I2ICAgICAoYmFzZSAxNikJCVFTSSBDb3Jwb3JhdGlvbgorCQkJCTIyMTIgU291dGggV2VzdCBUZW1wbGUgIzUwCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUI3ICAgKGhleCkJCVpBQ0NFU1MgU3lzdGVtcworMDAwM0I3ICAgICAoYmFzZSAxNikJCVpBQ0NFU1MgU3lzdGVtcworCQkJCTI3NSBTaG9yZWxpbmUgRHJpdmUsICMxMTAKKwkJCQlSZWR3b29kIENpdHkgQ0EgOTQwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUI4ICAgKGhleCkJCU5ldEtpdCBTb2x1dGlvbnMsIExMQworMDAwM0I4ICAgICAoYmFzZSAxNikJCU5ldEtpdCBTb2x1dGlvbnMsIExMQworCQkJCTExMjUtQSBCdXNpbmVzcyBDZW50ZXIgQ2lyY2xlCisJCQkJVGhvdXNhbmQgT2FrcyBDQSA5MTMyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQjkgICAoaGV4KQkJSHVhbG9uZyBUZWxlY29tIENvLiwgTHRkLgorMDAwM0I5ICAgICAoYmFzZSAxNikJCUh1YWxvbmcgVGVsZWNvbSBDby4sIEx0ZC4KKwkJCQk5IEd1YW5naHVhIFN0LgorCQkJCUNoYW5nemhvdSwgSmlhbmdzdSwgMjEzMDAzCisJCQkJUC5SLiBDSElOQQorCQkJCUNISU5BCisKKzAwLTAzLUJBICAgKGhleCkJCU9yYWNsZSBDb3Jwb3JhdGlvbgorMDAwM0JBICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbgorCQkJCTE3IE5ldHdvcmsgQ2lyY2xlCisJCQkJQnVpbGRpbmcgMTcsIFVNUEsxNy0xMzEKKwkJCQlNZW5sbyBQYXJrIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1CQiAgIChoZXgpCQlTaWduYWwgQ29tbXVuaWNhdGlvbnMgTGltaXRlZAorMDAwM0JCICAgICAoYmFzZSAxNikJCVNpZ25hbCBDb21tdW5pY2F0aW9ucyBMaW1pdGVkCisJCQkJVW5pdCAyMTcsIDIvRiwgSEtJVEMsCisJCQkJNzIgVGF0IENoZWUgQXZlbnVlLCBLTE4uLAorCQkJCUhPTkcgS09ORworCQkJCUhPTkcgS09ORworCiswMC0wMy1CQyAgIChoZXgpCQlDT1QgR21iSAorMDAwM0JDICAgICAoYmFzZSAxNikJCUNPVCBHbWJICisJCQkJR3VldGVyc3RyYXNzZSA1CisJCQkJNjQ4MDcgRGllYnVyZworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAzLUJEICAgKGhleCkJCU9tbmlDbHVzdGVyIFRlY2hub2xvZ2llcywgSW5jLgorMDAwM0JEICAgICAoYmFzZSAxNikJCU9tbmlDbHVzdGVyIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTQ5NTAgQmx1ZSBMYWtlIERyaXZlCisJCQkJU3VpdGUgOTAwCisJCQkJQm9jYSBSYXRvbiBGTCAzMzQzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtQkUgICAoaGV4KQkJTmV0aWxpdHkKKzAwMDNCRSAgICAgKGJhc2UgMTYpCQlOZXRpbGl0eQorCQkJCTI5OCBTb3V0aCBTdW5ueXZhbGUgQXZlLgorCQkJCVN1aWUgMTAyCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1CRiAgIChoZXgpCQlDZW50ZXJwb2ludCBCcm9hZGJhbmQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDAzQkYgICAgIChiYXNlIDE2KQkJQ2VudGVycG9pbnQgQnJvYWRiYW5kIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE3NDEgVGVjaG5vbG9neSBEcml2ZSwKKwkJCQlTdWl0ZSA0MDAKKwkJCQlTYW4gSm9zZSBDQSA5NTExMC0xMzEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1DMCAgIChoZXgpCQlSRlROQyBDby4sIEx0ZC4KKzAwMDNDMCAgICAgKGJhc2UgMTYpCQlSRlROQyBDby4sIEx0ZC4KKwkJCQkzRiwgMTYyNC0yNCwgQm9uZ2NoZW4tZG9uZworCQkJCUtpb25hay1ndSwgU2VvdWwKKwkJCQlTT1VUSCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wMy1DMSAgIChoZXgpCQlQYWNrZXQgRHluYW1pY3MgTHRkCiswMDAzQzEgICAgIChiYXNlIDE2KQkJUGFja2V0IER5bmFtaWNzIEx0ZAorCQkJCTIgQnVja3N0YW5lIFBhcmsKKwkJCQlFZGluYnVyZ2gsIFNjb3RsYW5kCisJCQkJVUsgRUgxMCBHUEEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wMy1DMiAgIChoZXgpCQlTb2xwaG9uZSBLLksuCiswMDAzQzIgICAgIChiYXNlIDE2KQkJU29scGhvbmUgSy5LLgorCQkJCTItMTEtMSBLYW5kYXRzdWthc2EtY2hvCisJCQkJQ2hpeWFkYSwgVG9reW8KKwkJCQkxMDEtMDA0OCBKYXBhbgorCQkJCUpBUEFOCisKKzAwLTAzLUMzICAgKGhleCkJCU1pY3JvbmlrIE11bHRpbWVkaWEKKzAwMDNDMyAgICAgKGJhc2UgMTYpCQlNaWNyb25payBNdWx0aW1lZGlhCisJCQkJQnJ1ZWNrZW5zdHIuIDIKKwkJCQlELTUxMzc5IExldmVya3VzZW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMy1DNCAgIChoZXgpCQlUb21yYSBTeXN0ZW1zIEFTQQorMDAwM0M0ICAgICAoYmFzZSAxNikJCVRvbXJhIFN5c3RlbXMgQVNBCisJCQkJRHJlbmdzcnVkaGFnZW4gMgorCQkJCUJveCAyNzggTi0xMzcxIEFza2VyCisJCQkJTk9SV0FZCisJCQkJTk9SV0FZCisKKzAwLTAzLUM1ICAgKGhleCkJCU1vYm90aXggQUcKKzAwMDNDNSAgICAgKGJhc2UgMTYpCQlNb2JvdGl4IEFHCisJCQkJV2luZ2VydHN3ZWlsZXJob2YgNgorCQkJCUQtNjc3MjQgSG9yaW5nZW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wMy1DNiAgIChoZXgpCQlJQ1VFIFN5c3RlbXMsIEluYy4KKzAwMDNDNiAgICAgKGJhc2UgMTYpCQlJQ1VFIFN5c3RlbXMsIEluYy4KKwkJCQkxNzQ4OSBHYWxlIEF2ZW51ZQorCQkJCUNpdHkgb2YgSW5kdXN0cnkgQ0EgOTE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUM3ICAgKGhleCkJCWhvcGYgRWxla3Ryb25payBHbWJICiswMDAzQzcgICAgIChiYXNlIDE2KQkJaG9wZiBFbGVrdHJvbmlrIEdtYkgKKwkJCQlOb3R0ZWJvaG1zdHJhc3NlIDQxCisJCQkJNTg1MTEgTHVlZGVuc2NoZWlkIAorCQkJCUdFUk1BTlkKKworMDAtMDMtQzggICAoaGV4KQkJQ01MIEVtZXJnZW5jeSBTZXJ2aWNlcworMDAwM0M4ICAgICAoYmFzZSAxNikJCUNNTCBFbWVyZ2VuY3kgU2VydmljZXMKKwkJCQk3NSBCb3VsZXZhcmQgbGEgVGVjaG5vbG9naWVzCisJCQkJSHVsbCwgUXVlYmVjIEpFMjNHNAorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMy1DOSAgIChoZXgpCQlURUNPTSBDby4sIEx0ZC4KKzAwMDNDOSAgICAgKGJhc2UgMTYpCQlURUNPTSBDby4sIEx0ZC4KKwkJCQkyMywgUiZEIFJvYWQgMgorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbi1DaHUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtQ0EgICAoaGV4KQkJTVRTIFN5c3RlbXMgQ29ycC4KKzAwMDNDQSAgICAgKGJhc2UgMTYpCQlNVFMgU3lzdGVtcyBDb3JwLgorCQkJCTMwMDEgU2hlbGRvbiBEcml2ZQorCQkJCUNhcnksIE5DIDI3NTEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1DQiAgIChoZXgpCQlOaXBwb24gU3lzdGVtcyBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKzAwMDNDQiAgICAgKGJhc2UgMTYpCQlOaXBwb24gU3lzdGVtcyBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKwkJCQkzMC0xMiwgS29teW8tY2hvLAorCQkJCVRha2FyYWJ1a2EtY2l0eSwgSHlvZ28sCisJCQkJNjY1LTAwNDUgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMy1DQyAgIChoZXgpCQlNb21lbnR1bSBDb21wdXRlciwgSW5jLgorMDAwM0NDICAgICAoYmFzZSAxNikJCU1vbWVudHVtIENvbXB1dGVyLCBJbmMuCisJCQkJMTgxNSBBc3RvbiBBdmVudWUKKwkJCQlTdWl0ZSAxMDcKKwkJCQlDYXJsc2JhZCBDQSA5MjAwOC03MzEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1DRCAgIChoZXgpCQlDbG92ZXJ0ZWNoLCBJbmMuCiswMDAzQ0QgICAgIChiYXNlIDE2KQkJQ2xvdmVydGVjaCwgSW5jLgorCQkJCTMtMS01IE5ha2EtY2hvIE11c2FzaGluby1zaGkKKwkJCQlUb2t5byAxODAtMDAwNiBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAzLUNFICAgKGhleCkJCUVURU4gVGVjaG5vbG9naWVzLCBJbmMuCiswMDAzQ0UgICAgIChiYXNlIDE2KQkJRVRFTiBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyRiwgTm8uIDksIExhbmUgMjM1LCBQYW8tQ2hpYW8gUmQuLAorCQkJCUhzaWVuIFRpZW4gQ2l0eSwgVGFpcGVpIEhzaWVuIDIzMQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wMy1DRiAgIChoZXgpCQlNdXhjb20sIEluYy4KKzAwMDNDRiAgICAgKGJhc2UgMTYpCQlNdXhjb20sIEluYy4KKwkJCQlEIDYwMiwgQnVuZGFuZyBUZWNobm9wYXJrICMxNTEKKwkJCQlZYXRhcCBEb25nLCBCdW5kYWcgR3UsIFN1bmduYW0gU2ksCisJCQkJS3l1bmdraSBEbyBLT1JFQSA0NjMtMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTAzLUQwICAgKGhleCkJCUtPQU5LRUlTTyBDby4sIEx0ZC4KKzAwMDNEMCAgICAgKGJhc2UgMTYpCQlLT0FOS0VJU08gQ28uLCBMdGQuCisJCQkJWmlwIENvZGUgNzkxLTgwNDIKKwkJCQkyNzk4IDM2bWluYW1peW9zaGlkYS1NYXRpIE1hdHV5YW1hLUNpdHkKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTAzLUQxICAgKGhleCkJCVRha2F5YSBDb3Jwb3JhdGlvbgorMDAwM0QxICAgICAoYmFzZSAxNikJCVRha2F5YSBDb3Jwb3JhdGlvbgorCQkJCURldmVsb3BtZW50IERpdmlzaW9uCisJCQkJNjYxLTEsIEliYXJhLWNobyBJYmFyYS1DaXR5IE9rYXlhbWEsIDcxNQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDMtRDIgICAoaGV4KQkJQ3Jvc3NiZWFtIFN5c3RlbXMsIEluYy4KKzAwMDNEMiAgICAgKGJhc2UgMTYpCQlDcm9zc2JlYW0gU3lzdGVtcywgSW5jLgorCQkJCTgwIENlbnRyYWwgU3RyZWV0CisJCQkJQm94Ym9yb3VnaCBNQSAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRDMgICAoaGV4KQkJSW50ZXJuZXQgRW5lcmd5IFN5c3RlbXMsIEluYy4KKzAwMDNEMyAgICAgKGJhc2UgMTYpCQlJbnRlcm5ldCBFbmVyZ3kgU3lzdGVtcywgSW5jLgorCQkJCTQyMTggVHJ1bWJvIEN0LgorCQkJCUZhaXJmYXggVkEgMjIwMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUQ0ICAgKGhleCkJCUFsbG9wdGljLCBJbmMuCiswMDAzRDQgICAgIChiYXNlIDE2KQkJQWxsb3B0aWMsIEluYy4KKwkJCQk2OTYwIEtvbGwgQ2VudGVyIFBhcmt3YXkKKwkJCQlTdWl0ZSAzMDAKKwkJCQlQbGVhc2FudG9uIENBIDk0NTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1ENSAgIChoZXgpCQlBZHZhbmNlZCBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMDNENSAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQkxNi0xNiBUYWthc2hpbWEtaG9uY2hvLAorCQkJCU51bWF6dSBTaGl6dW9rYSwKKwkJCQk0MTAwMDU1IEpBUEFOCisJCQkJSkFQQU4KKworMDAtMDMtRDYgICAoaGV4KQkJUkFEVmlzaW9uLCBMdGQuCiswMDAzRDYgICAgIChiYXNlIDE2KQkJUkFEVmlzaW9uLCBMdGQuCisJCQkJMjQgUmF1bCBXYWxsZW5iZXJnIFN0LgorCQkJCVRlbC1Bdml2IDY5NzE5CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTAzLUQ3ICAgKGhleCkJCU5leHROZXQgV2lyZWxlc3MsIEluYy4KKzAwMDNENyAgICAgKGJhc2UgMTYpCQlOZXh0TmV0IFdpcmVsZXNzLCBJbmMuCisJCQkJOTU1NSBKYW1lcyBBdmUuIFNvLgorCQkJCVN1aXRlIDI3MAorCQkJCUJsb29taW5ndG9uIE1OIDU1NDMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1EOCAgIChoZXgpCQlpTVBhdGggTmV0d29ya3MsIEluYy4KKzAwMDNEOCAgICAgKGJhc2UgMTYpCQlpTVBhdGggTmV0d29ya3MsIEluYy4KKwkJCQkxNDMxIE1lcml2YWxlIFJkLgorCQkJCU5lcGVhbiwgT250YXJpbywKKwkJCQlDQU5BREEgSzJFIDFCOQorCQkJCUNBTkFEQQorCiswMC0wMy1EOSAgIChoZXgpCQlTZWNoZXJvbiBTQQorMDAwM0Q5ICAgICAoYmFzZSAxNikJCVNlY2hlcm9uIFNBCisJCQkJVW50ZXJtYXR0d2VnIDgKKwkJCQlDaC0zMDI3IEJlcm4KKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTAzLURBICAgKGhleCkJCVRha2FtaXNhd2EgQ3liZXJuZXRpY3MgQ28uLCBMdGQuCiswMDAzREEgICAgIChiYXNlIDE2KQkJVGFrYW1pc2F3YSBDeWJlcm5ldGljcyBDby4sIEx0ZC4KKwkJCQlOYWthbm8gSGVpd2EgQmxkZy4KKwkJCQk0OCA1LTItQ2hvbWUgQ2h1bywgTmFrYW5vLWt1IFRva3lvIDE2NC0wCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wMy1EQiAgIChoZXgpCQlBcG9nZWUgRWxlY3Ryb25pY3MgQ29ycC4KKzAwMDNEQiAgICAgKGJhc2UgMTYpCQlBcG9nZWUgRWxlY3Ryb25pY3MgQ29ycC4KKwkJCQkxNzE1IEJlcmtlbGV5IFN0LiAKKwkJCQlTYW50YSBNb25pY2EgQ0EgOTA0MDUtMzIxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtREMgICAoaGV4KQkJTGV4YXIgTWVkaWEsIEluYy4KKzAwMDNEQyAgICAgKGJhc2UgMTYpCQlMZXhhciBNZWRpYSwgSW5jLgorCQkJCTQ3NDIxIEJheXNpZGUgUGFya3dheQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUREICAgKGhleCkJCUNvbWFyayBDb3JwLgorMDAwM0REICAgICAoYmFzZSAxNikJCUNvbWFyayBDb3JwLgorCQkJCTkzIFdlc3QgU3QuCisJCQkJTWVkZmllbGQgTUEgMDIwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLURFICAgKGhleCkJCU9UQyBXaXJlbGVzcworMDAwM0RFICAgICAoYmFzZSAxNikJCU9UQyBXaXJlbGVzcworCQkJCTYwMiBDaGFybG90IEF2ZS4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtREYgICAoaGV4KQkJRGVzYW5hIFN5c3RlbXMKKzAwMDNERiAgICAgKGJhc2UgMTYpCQlEZXNhbmEgU3lzdGVtcworCQkJCTE4MDUgTWNDYW5kbGVzcyBBdmUuCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUUwICAgKGhleCkJCU1vdG9yb2xhLCBJbmMuCiswMDAzRTAgICAgIChiYXNlIDE2KQkJTW90b3JvbGEsIEluYy4KKwkJCQkxMzAxIEUuIEFsZ29ucXVpbiBSZC4KKwkJCQlTY2hhdW1idXJnIElMIDYwMTk2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1FMSAgIChoZXgpCQlXaW5tYXRlIENvbW11bmljYXRpb24sIEluYy4KKzAwMDNFMSAgICAgKGJhc2UgMTYpCQlXaW5tYXRlIENvbW11bmljYXRpb24sIEluYy4KKwkJCQk5RixOby4xMTEtNixTaGluZy1EZSBSZAorCQkJCVNhbi1DaHVuZywKKwkJCQlUYWlwZWkgICAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTAzLUUyICAgKGhleCkJCUNvbXNwYWNlIENvcnBvcmF0aW9uCiswMDAzRTIgICAgIChiYXNlIDE2KQkJQ29tc3BhY2UgQ29ycG9yYXRpb24KKwkJCQk5NTUgRnJlZXBvcnQgUGt3eQorCQkJCVN1aXRlIDEwMAorCQkJCUNvcHBlbGwgVFggNzUwMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUUzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDNFMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1FNCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAzRTQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRTUgICAoaGV4KQkJSGVybXN0ZWR0IFNHCiswMDAzRTUgICAgIChiYXNlIDE2KQkJSGVybXN0ZWR0IFNHCisJCQkJQ2FybC1SZXV0aGVyIC0gU3RyLiAzCisJCQkJRC02ODMwNSBNYW5uaGVpbQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAzLUU2ICAgKGhleCkJCUVudG9uZSwgSW5jLgorMDAwM0U2ICAgICAoYmFzZSAxNikJCUVudG9uZSwgSW5jLgorCQkJCTI3NTUgQ2FtcHVzIERyIFN0ZSAyMzUKKwkJCQlTYW4gTWF0ZW8gQ0EgIDk0NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1FNyAgIChoZXgpCQlMb2dvc3RlayBDby4gTHRkLgorMDAwM0U3ICAgICAoYmFzZSAxNikJCUxvZ29zdGVrIENvLiBMdGQuCisJCQkJMTl0aCAxNSBTdW51c3UtQWNhZGVteSBUb3dlcgorCQkJCTI3Ny0xNyBTdW5nc3UtMmdhLCBTdW5nZG9uZy1ndQorCQkJCVNlb3VsIEtPUkVBIDEzMy0xMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDMtRTggICAoaGV4KQkJV2F2ZWxlbmd0aCBEaWdpdGFsIExpbWl0ZWQKKzAwMDNFOCAgICAgKGJhc2UgMTYpCQlXYXZlbGVuZ3RoIERpZ2l0YWwgTGltaXRlZAorCQkJCTEyIFZpbmNlbnQgQXZlbnVlCisJCQkJQ3Jvd25oaWxsIEJ1c2luZXNzIFBhcmsgTWlsdG9uIEtleW5lcywgQgorCQkJCU1LOCAwQUIgTUs4IDBBQiBFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDMtRTkgICAoaGV4KQkJQWthcmEgQ2FuYWRhLCBJbmMuCiswMDAzRTkgICAgIChiYXNlIDE2KQkJQWthcmEgQ2FuYWRhLCBJbmMuCisJCQkJMTUwIEthdGltYXZpayBSb2FkCisJCQkJS2FuYXRhIE9udGFyaW8KKwkJCQlDQU5BREEgSzJMIDJOMgorCQkJCUNBTkFEQQorCiswMC0wMy1FQSAgIChoZXgpCQlNZWdhIFN5c3RlbSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDNFQSAgICAgKGJhc2UgMTYpCQlNZWdhIFN5c3RlbSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyRiwgTm8uIDQxLCBMYW5lIDc2LAorCQkJCVJ1aSBLdWFuZyBSZC4sIE5laSBIdSAxMTQKKwkJCQlUYWlwZWkgVGFpcGVpIFRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDMtRUIgICAoaGV4KQkJQXRyaWNhCiswMDAzRUIgICAgIChiYXNlIDE2KQkJQXRyaWNhCisJCQkJNSBTaGVua2FyIFN0LiBQLk8uQi4gMTIyMzEKKwkJCQlIZXplbGlhIEluZHVzdHJpYWwgQXJlYQorCQkJCTQ2NzMzIDQ2NzMzIElTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wMy1FQyAgIChoZXgpCQlJQ0cgUmVzZWFyY2gsIEluYy4KKzAwMDNFQyAgICAgKGJhc2UgMTYpCQlJQ0cgUmVzZWFyY2gsIEluYy4KKwkJCQk3NzUgQiBUaGUgUXVlZW5zIFdheQorCQkJCVRvcm9udG8sIE9udGFyaW8KKwkJCQlNOFogMU4xIENBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wMy1FRCAgIChoZXgpCQlTaGlua2F3YSBFbGVjdHJpYyBDby4sIEx0ZC4KKzAwMDNFRCAgICAgKGJhc2UgMTYpCQlTaGlua2F3YSBFbGVjdHJpYyBDby4sIEx0ZC4KKwkJCQkzLTItMjQgMyBjaG9tZQorCQkJCUtvbmFuIE5ha2FrdSBIaXJvc2hpbWEsIDczMC0wODI1LAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDMtRUUgICAoaGV4KQkJTUtOZXQgQ29ycG9yYXRpb24KKzAwMDNFRSAgICAgKGJhc2UgMTYpCQlNS05ldCBDb3Jwb3JhdGlvbgorCQkJCTcxMS1CIENoYXJjb3QgQXZlLgorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1FRiAgIChoZXgpCQlPbmVsaW5lIEFHCiswMDAzRUYgICAgIChiYXNlIDE2KQkJT25lbGluZSBBRworCQkJCVN0ZWluZmVsZHN0ci4gMworCQkJCTM5MTc5IEJhcmxlYmVuCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDMtRjAgICAoaGV4KQkJUmVkZmVybiBCcm9hZGJhbmQgTmV0d29ya3MKKzAwMDNGMCAgICAgKGJhc2UgMTYpCQlSZWRmZXJuIEJyb2FkYmFuZCBOZXR3b3JrcworCQkJCUxldmVsIDEsIDEgQ2VudHJhbCBBdmUuLAorCQkJCUF1c3RyYWxpYW4gVGVjaG5vbG9neSBQYXJrIEV2ZWxlaWdoLCBOU1cKKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtMDMtRjEgICAoaGV4KQkJQ2ljYWRhIFNlbWljb25kdWN0b3IsIEluYy4KKzAwMDNGMSAgICAgKGJhc2UgMTYpCQlDaWNhZGEgU2VtaWNvbmR1Y3RvciwgSW5jLgorCQkJCTgxMSBCYXJ0b24gU3ByaW5ncyBSZC4KKwkJCQlTdWl0ZSA1NTAKKwkJCQlBdXN0aW4gVFggNzg3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUYyICAgKGhleCkJCVNlbmVjYSBOZXR3b3JrcworMDAwM0YyICAgICAoYmFzZSAxNikJCVNlbmVjYSBOZXR3b3JrcworCQkJCTMwIFdlc3QgR3VkZSBEci4KKwkJCQlTdWl0ZSAyMDAKKwkJCQlSb2NrdmlsbGUgTUQgMjA4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUYzICAgKGhleCkJCURhenpsZSBNdWx0aW1lZGlhLCBJbmMuCiswMDAzRjMgICAgIChiYXNlIDE2KQkJRGF6emxlIE11bHRpbWVkaWEsIEluYy4KKwkJCQk0NzIxMSBCYXlzaWRlIFBhcmt3YXkKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wMy1GNCAgIChoZXgpCQlOZXRCdXJuZXIKKzAwMDNGNCAgICAgKGJhc2UgMTYpCQlOZXRCdXJuZXIKKwkJCQkxMTMyNCBMZWdhY3kgQ2FueW9uIFBsLgorCQkJCVNhbiBEaWVnbyBDQSA5MjEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRjUgICAoaGV4KQkJQ2hpcDJDaGlwCiswMDAzRjUgICAgIChiYXNlIDE2KQkJQ2hpcDJDaGlwCisJCQkJMjI0OSBaYW5rZXIgUmQuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUY2ICAgKGhleCkJCUFsbGVncm8gTmV0d29ya3MsIEluYy4KKzAwMDNGNiAgICAgKGJhc2UgMTYpCQlBbGxlZ3JvIE5ldHdvcmtzLCBJbmMuCisJCQkJNjM5OSBTYW4gSWduYWNpbyBBdmVudWUKKwkJCQlTYW4gSm9zZSBDQSA5NTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRjcgICAoaGV4KQkJUGxhc3QtQ29udHJvbCBHbWJICiswMDAzRjcgICAgIChiYXNlIDE2KQkJUGxhc3QtQ29udHJvbCBHbWJICisJCQkJV2FsdGVyLUZyZWl0YWctU3RyLiAxNQorCQkJCTQyODk5IFJlbXNjaGVpZAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTAzLUY4ICAgKGhleCkJCVNhbkNhc3RsZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDNGOCAgICAgKGJhc2UgMTYpCQlTYW5DYXN0bGUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMjEwNyBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTdWl0ZSA1MDAKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRjkgICAoaGV4KQkJUGxlaWFkZXMgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDNGOSAgICAgKGJhc2UgMTYpCQlQbGVpYWRlcyBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTI4MzAgTWFya2V0IExvb3AgIzEwNAorCQkJCVNvdXRoIExha2UgVFggNzYwOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUZBICAgKGhleCkJCVRpTWV0cmEgTmV0d29ya3MKKzAwMDNGQSAgICAgKGJhc2UgMTYpCQlUaU1ldHJhIE5ldHdvcmtzCisJCQkJNTAwIEVsbGlzIFN0LgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUZCICAgKGhleCkJCUVORUdBVEUgQ28uLEx0ZC4KKzAwMDNGQiAgICAgKGJhc2UgMTYpCQlFTkVHQVRFIENvLixMdGQuCisJCQkJMy0xNC00MCBTZW5yaW9rYSwKKwkJCQlTZXR0c3UtY2l0eSBPc2FrYSA1NjYtODY4NgorCQkJCUpBUEFOCisKKzAwLTAzLUZDICAgKGhleCkJCUludGVydGV4IERhdGEgQUIKKzAwMDNGQyAgICAgKGJhc2UgMTYpCQlJbnRlcnRleCBEYXRhIEFCCisJCQkJUmlzc25lbGVkZW4gNDUKKwkJCQkxNzQgNDQgU3VuZGJ5YmVyZworCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC0wMy1GRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDAzRkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDMtRkUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwM0ZFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTAzLUZGICAgKGhleCkJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorMDAwM0ZGICAgICAoYmFzZSAxNikJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorCQkJCTEgTWljcm9zb2Z0IFdheQorCQkJCVJlZG1vbmQgV0EgOTgwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTAwICAgKGhleCkJCUxFWE1BUksgSU5URVJOQVRJT05BTCwgSU5DLgorMDAwNDAwICAgICAoYmFzZSAxNikJCUxFWE1BUksgSU5URVJOQVRJT05BTCwgSU5DLgorCQkJCTc0MCBORVcgQ0lSQ0xFIFJEIC0gQkxERy4gIzAzNQorCQkJCUxFWElOR1RPTiBLWSA0MDU1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMDEgICAoaGV4KQkJT3Nha2kgRWxlY3RyaWMgQ28uLCBMdGQuCiswMDA0MDEgICAgIChiYXNlIDE2KQkJT3Nha2kgRWxlY3RyaWMgQ28uLCBMdGQuCisJCQkJMTEzMSwgRnVqaWt1Ym8sIE1peW9zaGltYWNoaSwKKwkJCQlJcnVtYS1ndW4sIFNhaXRhbWEgMzU0LTg1MDEsCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC0wMiAgIChoZXgpCQlOZXhzYW4gVGVjaG5vbG9naWVzLCBMdGQuCiswMDA0MDIgICAgIChiYXNlIDE2KQkJTmV4c2FuIFRlY2hub2xvZ2llcywgTHRkLgorCQkJCVBhcmtlciBDZW50cmUKKwkJCQlNYW5zZmllbGQgUmQKKwkJCQlEZXJieSAgREUyMSA0U1oKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC0wMyAgIChoZXgpCQlOZXhzaSBDb3Jwb3JhdGlvbgorMDAwNDAzICAgICAoYmFzZSAxNikJCU5leHNpIENvcnBvcmF0aW9uCisJCQkJMTk1OSBDb25jb3Vyc2UgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMDQgICAoaGV4KQkJTWFraW5vIE1pbGxpbmcgTWFjaGluZSBDby4sIEx0ZC4KKzAwMDQwNCAgICAgKGJhc2UgMTYpCQlNYWtpbm8gTWlsbGluZyBNYWNoaW5lIENvLiwgTHRkLgorCQkJCTQwMjMgTmFrYXRzdSwgQWlrYXdhLW1hY2hpLAorCQkJCUFpa28tZ3VuIEthbmFnYXdhIDI0My0wMzAzCisJCQkJSkFQQU4KKworMDAtMDQtMDUgICAoaGV4KQkJQUNOIFRlY2hub2xvZ2llcworMDAwNDA1ICAgICAoYmFzZSAxNikJCUFDTiBUZWNobm9sb2dpZXMKKwkJCQk5RiwgSGV5S2FuZyBCL0QsIDE1Ny0zNgorCQkJCVNhbnN1bmctZG9uZywgS2FuZ25hbWd1LAorCQkJCVNlb3VsIEtPUkVBICMxMzUtMDkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LTA2ICAgKGhleCkJCUZhLiBNZXRhYm94IEFHCiswMDA0MDYgICAgIChiYXNlIDE2KQkJRmEuIE1ldGFib3ggQUcKKwkJCQlEYWltbGVycmluZyAzNywKKwkJCQlELTMxMTM1IEhpbGRzaGVpbSwKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC0wNyAgIChoZXgpCQlUb3Bjb24gUG9zaXRpb25pbmcgU3lzdGVtcywgSW5jLgorMDAwNDA3ICAgICAoYmFzZSAxNikJCVRvcGNvbiBQb3NpdGlvbmluZyBTeXN0ZW1zLCBJbmMuCisJCQkJNTc1OCBXLiBMYXMgUG9zaXRhcyBCbHZkLgorCQkJCVBsZWFzYW50b24gQ0EgOTQ1ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTA4ICAgKGhleCkJCVNhbmtvIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwNDA4ICAgICAoYmFzZSAxNikJCVNhbmtvIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTMtODAyIHVlZGEgdGVucGFrdS1rdQorCQkJCW5hZ295YSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTA0LTA5ICAgKGhleCkJCUNyYXRvcyBOZXR3b3JrcworMDAwNDA5ICAgICAoYmFzZSAxNikJCUNyYXRvcyBOZXR3b3JrcworCQkJCTMxMyBMaXR0bGV0b24gUm9hZAorCQkJCVN1aXRlIDIwCisJCQkJQ2hlbG1zZm9yZCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMEEgICAoaGV4KQkJU2FnZSBTeXN0ZW1zCiswMDA0MEEgICAgIChiYXNlIDE2KQkJU2FnZSBTeXN0ZW1zCisJCQkJMTQyMCBIYXJib3IgQmF5IFBhcmt3YXkKKwkJCQlTdWl0ZSAxNjAKKwkJCQlBbGFtZWRhIENBIDk0NTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0wQiAgIChoZXgpCQkzY29tIEV1cm9wZSBMdGQuCiswMDA0MEIgICAgIChiYXNlIDE2KQkJM2NvbSBFdXJvcGUgTHRkLgorCQkJCTNjb20gQ2VudHJlCisJCQkJQm91bmRhcnkgV2F5LCBIZW1lbCBIZW1wc3RlYWQgSGVydGZvcmRzaAorCQkJCUhQMiA3WVUgVUsKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC0wQyAgIChoZXgpCQlLQU5OTyBXb3JrJ3MgTHRkLgorMDAwNDBDICAgICAoYmFzZSAxNikJCUtBTk5PIFdvcmsncyBMdGQuCisJCQkJMS01LTI1IEthbWl0b21pbm8sCisJCQkJS29rdXJha2l0YS1rdSwgS2l0YWt5dXN5dS1jaXR5LCBGdWt1b2thLQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtMEQgICAoaGV4KQkJQXZheWEsIEluYy4KKzAwMDQwRCAgICAgKGJhc2UgMTYpCQlBdmF5YSwgSW5jLgorCQkJCU9mZmljZSAxQTMyNQorCQkJCTMwNyBNaWRkbGV0b3duIExpbmNyb2Z0IFJvYWQKKwkJCQlMaW5jcm9mdCBOSiAwNzczOC0xNTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0wRSAgIChoZXgpCQlBVk0gR21iSAorMDAwNDBFICAgICAoYmFzZSAxNikJCUFWTSBHbWJICisJCQkJQWx0LU1vYWJpdCA5NQorCQkJCTEwNTU5IEJlcmxpbgorCQkJCUdFUk1BTlkKKworMDAtMDQtMEYgICAoaGV4KQkJQXN1cyBOZXR3b3JrIFRlY2hub2xvZ2llcywgSW5jLgorMDAwNDBGICAgICAoYmFzZSAxNikJCUFzdXMgTmV0d29yayBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMS0xLCBOby4gNjc1LCBTZWMuIDEsIEtpbmcta3VvIFJkLiwKKwkJCQlIc2luY2h1LAorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC0xMCAgIChoZXgpCQlTcGlubmFrZXIgTmV0d29ya3MsIEluYy4KKzAwMDQxMCAgICAgKGJhc2UgMTYpCQlTcGlubmFrZXIgTmV0d29ya3MsIEluYy4KKwkJCQkxMDcgR2FtbWEgRHJpdmUKKwkJCQlQaXR0c2J1cmdoIFBBIDE1MjM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0xMSAgIChoZXgpCQlJbmtyYSBOZXR3b3JrcywgSW5jLgorMDAwNDExICAgICAoYmFzZSAxNikJCUlua3JhIE5ldHdvcmtzLCBJbmMuCisJCQkJNDA5NzEgRW5jeWNsb3BlZGlhIENpcmNsZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTEyICAgKGhleCkJCVdhdmVTbWl0aCBOZXR3b3JrcywgSW5jLgorMDAwNDEyICAgICAoYmFzZSAxNikJCVdhdmVTbWl0aCBOZXR3b3JrcywgSW5jLgorCQkJCTQwIE5hZ29nIFBhcmsKKwkJCQlBY3RvbiBNQSAwMTcyMC0zNDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0xMyAgIChoZXgpCQlTTk9NIFRlY2hub2xvZ3kgQUcKKzAwMDQxMyAgICAgKGJhc2UgMTYpCQlTTk9NIFRlY2hub2xvZ3kgQUcKKwkJCQlIZWxtaG9sdHpzdHJhc3NlIDItOQorCQkJCUQtMTA1ODcgQmVybGluCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDQtMTQgICAoaGV4KQkJVW1lemF3YSBNdXNlbiBEZW5raSBDby4sIEx0ZC4KKzAwMDQxNCAgICAgKGJhc2UgMTYpCQlVbWV6YXdhIE11c2VuIERlbmtpIENvLiwgTHRkLgorCQkJCTE0LTMsIE1pbmFtaSAxLCBOaXNoaSA4LAorCQkJCUNodW8ta3UsIFNhcHBvcm8sCisJCQkJSG9ra2FpZG8gSkFQQU4gMDYwLTAwNjEKKwkJCQlKQVBBTgorCiswMC0wNC0xNSAgIChoZXgpCQlSYXN0ZW1lIFN5c3RlbXMgQ28uLCBMdGQuCiswMDA0MTUgICAgIChiYXNlIDE2KQkJUmFzdGVtZSBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCTg4Ni0yIE5paG9uZ2kgTmFrYWdvdS1tdXJhCisJCQkJTmFrYWt1YmlraS1ndW4gTmlpZ2F0YQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtMTYgICAoaGV4KQkJUGFya3MgUy9BIENvbXVuaWNhY29lcyBEaWdpdGFpcworMDAwNDE2ICAgICAoYmFzZSAxNikJCVBhcmtzIFMvQSBDb211bmljYWNvZXMgRGlnaXRhaXMKKwkJCQlBdi4gUGVybmFtYnVjbywgMTAwMQorCQkJCVBvcnRvLUFsZWdyZS1SUyBDRVAgOTAyNDAtMDA0CisJCQkJQlJBWklMCisJCQkJQlJBWklMCisKKzAwLTA0LTE3ICAgKGhleCkJCUVMQVUgQUcKKzAwMDQxNyAgICAgKGJhc2UgMTYpCQlFTEFVIEFHCisJCQkJRGlsbGJlcmcgMTIKKwkJCQk5NzgyOCBNYXJrdGhlaWRlbmZlbGQKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC0xOCAgIChoZXgpCQlUZWx0cm9uaWMgUy5BLlUuCiswMDA0MTggICAgIChiYXNlIDE2KQkJVGVsdHJvbmljIFMuQS5VLgorCQkJCVBvbGlnb25vIGRlIE1hbHBpY2EKKwkJCQlDYWxsZSBGIE9lc3RlIDUwMDU3IFphcmFnb3phCisJCQkJU1BBSU4KKwkJCQlTUEFJTgorCiswMC0wNC0xOSAgIChoZXgpCQlGaWJlcmN5Y2xlIE5ldHdvcmtzLCBJbmMuCiswMDA0MTkgICAgIChiYXNlIDE2KQkJRmliZXJjeWNsZSBOZXR3b3JrcywgSW5jLgorCQkJCTIwIFNvdXRoIFNhbnRhIENydXogQXZlLgorCQkJCVN1aXRlIDExMgorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMUEgICAoaGV4KQkJSW5lcyBUZXN0IGFuZCBNZWFzdXJlbWVudCBHbWJIICYgQ29LRworMDAwNDFBICAgICAoYmFzZSAxNikJCUluZXMgVGVzdCBhbmQgTWVhc3VyZW1lbnQgR21iSCAmIENvS0cKKwkJCQlBbiBkZXIgTXVlaGxlbmF1ZSA1CisJCQkJQmFkIE5lbm5kb3JmIDMxNTQyCisJCQkJR0VSTUFOWQorCiswMC0wNC0xQiAgIChoZXgpCQlCcmlkZ2V3b3JrcyBMdGQuCiswMDA0MUIgICAgIChiYXNlIDE2KQkJQnJpZGdld29ya3MgTHRkLgorCQkJCTEzNSBTb21lcmZvcmQgUm9hZAorCQkJCUNocmlzdGNodXJjaCBET1JTRVQgQkgyMyAzUFkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC0xQyAgIChoZXgpCQlpcERpYWxvZywgSW5jLgorMDAwNDFDICAgICAoYmFzZSAxNikJCWlwRGlhbG9nLCBJbmMuCisJCQkJMTc2MiBUZWNobm9sb2d5IERyaXZlCisJCQkJU3VpdGUgMTI0CisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTFEICAgKGhleCkJCUNvcmVnYSBvZiBBbWVyaWNhCiswMDA0MUQgICAgIChiYXNlIDE2KQkJQ29yZWdhIG9mIEFtZXJpY2EKKwkJCQlQLk8uIEJveCAxNTkKKwkJCQlCb3RoZWxsIFdBIDk4MDQxLTAxNTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTFFICAgKGhleCkJCVNoaWtva3UgSW5zdHJ1bWVudGF0aW9uIENvLiwgTHRkLgorMDAwNDFFICAgICAoYmFzZSAxNikJCVNoaWtva3UgSW5zdHJ1bWVudGF0aW9uIENvLiwgTHRkLgorCQkJCTc3NywgT29zYWNob3UsIFplbnRzdXVqaXNoaSwKKwkJCQlLYWdhd2EsIDc2NS0wMDUyLAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtMUYgICAoaGV4KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50LCBJbmMuCiswMDA0MUYgICAgIChiYXNlIDE2KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50LCBJbmMuCisJCQkJMi02LTIxIE1pbmFtaS1Bb3lhbWEKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA3LTAwNjIKKwkJCQlKQVBBTgorCiswMC0wNC0yMCAgIChoZXgpCQlTbGltIERldmljZXMsIEluYy4KKzAwMDQyMCAgICAgKGJhc2UgMTYpCQlTbGltIERldmljZXMsIEluYy4KKwkJCQkxMiBTb3V0aCBGaXJzdCBTdC4KKwkJCQlTdWl0ZSAxMDMKKwkJCQlTYW4gSm9zZSBDQSA5NTExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMjEgICAoaGV4KQkJT2N1bGFyIE5ldHdvcmtzCiswMDA0MjEgICAgIChiYXNlIDE2KQkJT2N1bGFyIE5ldHdvcmtzCisJCQkJMTI3MDAsIEZhaXIgTGFrZXMgQ2lyY2xlCisJCQkJU3VpdGUgMTAwCisJCQkJRmFpcmZheCBWQSAyMjAzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMjIgICAoaGV4KQkJR29yZG9uIEthcGVzLCBJbmMuCiswMDA0MjIgICAgIChiYXNlIDE2KQkJR29yZG9uIEthcGVzLCBJbmMuCisJCQkJNTUyMCBXLiBUb3VoeSBBdmUuCisJCQkJU2tva2llIElMIDYwMDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0yMyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAwNDIzICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTVM6ICBKRjMtNDIwCisJCQkJMjExMSBORSAyNXRoIEF2ZW51ZQorCQkJCUhpbGxzYm9ybyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMjQgICAoaGV4KQkJVE1DIHMuci5sLgorMDAwNDI0ICAgICAoYmFzZSAxNikJCVRNQyBzLnIubC4KKwkJCQkyMDIgVmlhIEEuIENvc3RhCisJCQkJNDAxMzQgLSBCb2xvZ25hCisJCQkJSVRBTFkKKwkJCQlJVEFMWQorCiswMC0wNC0yNSAgIChoZXgpCQlBdG1lbCBDb3Jwb3JhdGlvbgorMDAwNDI1ICAgICAoYmFzZSAxNikJCUF0bWVsIENvcnBvcmF0aW9uCisJCQkJTXVsdGltZWRpYSAmIENvbW11bmljYXRpb25zIEdyb3VwCisJCQkJMjIwMCBHYXRld2F5IENlbnRyZSwgU3VpdGUgMjAxCisJCQkJTW9ycmlzdmlsbGUgTkMgMjc1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTI2ICAgKGhleCkJCUF1dG9zeXMKKzAwMDQyNiAgICAgKGJhc2UgMTYpCQlBdXRvc3lzCisJCQkJMjAyIElsc2lucGFzdGVsLAorCQkJCTcyMS0yIE1PSzMtRG9uZyBZYW5nIENoZW9uLWt1LAorCQkJCVNlb3VsIFNlb3VsIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LTI3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDQyNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0yOCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA0MjggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMjkgICAoaGV4KQkJUGl4b3JkIENvcnBvcmF0aW9uCiswMDA0MjkgICAgIChiYXNlIDE2KQkJUGl4b3JkIENvcnBvcmF0aW9uCisJCQkJUm9vbSAzLCAxRiwgTm8uIDEzOTYsCisJCQkJQ2h1bmcgQ2hlbmcgUmQuIFRhb3l1YW4gQ2l0eSwgVGFveXVhbiBIcworCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC0yQSAgIChoZXgpCQlXaXJlbGVzcyBOZXR3b3JrcywgSW5jLgorMDAwNDJBICAgICAoYmFzZSAxNikJCVdpcmVsZXNzIE5ldHdvcmtzLCBJbmMuCisJCQkJMjMyMiBFbCBDYW1pbm8gUmVhbAorCQkJCVNhbiBNYXRlbyBDQSA5NDQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMkIgICAoaGV4KQkJSVQgQWNjZXNzIENvLiwgTHRkLgorMDAwNDJCICAgICAoYmFzZSAxNikJCUlUIEFjY2VzcyBDby4sIEx0ZC4KKwkJCQkzLTE3LTYsIFNoaW55b2tvaGFtYSwgS291aG9rdS1rdQorCQkJCVlva29oYW1hLXNoaSwgS2FuYWdhd2EgMjIyLTg1NDUKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTA0LTJDICAgKGhleCkJCU1pbmV0LCBJbmMuCiswMDA0MkMgICAgIChiYXNlIDE2KQkJTWluZXQsIEluYy4KKwkJCQkzRiBTZS1BIFZlbnR1cmUgVG93ZXIKKwkJCQk5NDYtMTIgRGFlY2hpLWRvbmcsIEdhbmduYW0tZ3UsIFNlb3VsCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtMkQgICAoaGV4KQkJU2FyaWFuIFN5c3RlbXMsIEx0ZC4KKzAwMDQyRCAgICAgKGJhc2UgMTYpCQlTYXJpYW4gU3lzdGVtcywgTHRkLgorCQkJCUJlYWNvbiBIb3VzZQorCQkJCVJpdmVyc2lkZSBCdXNpbmVzcyBQYXJrICBMZWVkcyBSb2FkLCBJbGsKKwkJCQlXZXN0IFlvcmtzaGlyZSBFTkdMQU5EIExTMjkgOEpaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDQtMkUgICAoaGV4KQkJTmV0b3VzIFRlY2hub2xvZ2llcywgTHRkLgorMDAwNDJFICAgICAoYmFzZSAxNikJCU5ldG91cyBUZWNobm9sb2dpZXMsIEx0ZC4KKwkJCQkxMDA2LCBCbG9jayBBLAorCQkJCUdvb2RWaWV3IEluZHVzdHJpYWwgQnVpbGRpbmcsIEtpbiBGYXQgU3QKKwkJCQlIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtMDQtMkYgICAoaGV4KQkJSW50ZXJuYXRpb25hbCBDb21tdW5pY2F0aW9ucyBQcm9kdWN0cywgSW5jLgorMDAwNDJGICAgICAoYmFzZSAxNikJCUludGVybmF0aW9uYWwgQ29tbXVuaWNhdGlvbnMgUHJvZHVjdHMsIEluYy4KKwkJCQk0MzI1IFdvb2RsYW5kIFBhcmsgRHJpdmUKKwkJCQlTdWl0ZSAxMDEKKwkJCQlXZXN0IE1lbGJvdXJuZSBGTCAzMjkwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMzAgICAoaGV4KQkJTmV0Z2VtCiswMDA0MzAgICAgIChiYXNlIDE2KQkJTmV0Z2VtCisJCQkJMjcgcnVlIGQnT3JsZWFucworCQkJCTkyIDIwMCBOZXVpbGx0IHMvU2VpbmUKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDQtMzEgICAoaGV4KQkJR2xvYmFsU3RyZWFtcywgSW5jLgorMDAwNDMxICAgICAoYmFzZSAxNikJCUdsb2JhbFN0cmVhbXMsIEluYy4KKwkJCQkyODgyIFByb3NwZWN0IFBhcmsgRHJpdmUKKwkJCQlTdWl0ZSAzNTAKKwkJCQlSYW5jaG8gQ29yZG92YSBDQSA5NTY3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMzIgICAoaGV4KQkJVm95ZXRyYSBUdXJ0bGUgQmVhY2gsIEluYy4KKzAwMDQzMiAgICAgKGJhc2UgMTYpCQlWb3lldHJhIFR1cnRsZSBCZWFjaCwgSW5jLgorCQkJCTE1MCBDbGVhcmJyb29rIFJvYWQsIFN1aXRlIDE2MgorCQkJCUVsbXNmb3JkIE5ZIDEwNTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0zMyAgIChoZXgpCQlDeWJlcmJvYXJkIEEvUworMDAwNDMzICAgICAoYmFzZSAxNikJCUN5YmVyYm9hcmQgQS9TCisJCQkJS2xvZXZlcm1hcmtlbiAxMjAKKwkJCQlESy03MTkwIEJpbGx1bmQKKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswMC0wNC0zNCAgIChoZXgpCQlBY2NlbGVudCBTeXN0ZW1zLCBJbmMuCiswMDA0MzQgICAgIChiYXNlIDE2KQkJQWNjZWxlbnQgU3lzdGVtcywgSW5jLgorCQkJCTI2MjAgUmlkZ2V3b29kIFJkLiwKKwkJCQlTdWl0ZSAzMDAKKwkJCQlBa3JvbiBPSCA0NDMxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMzUgICAoaGV4KQkJQ29tcHRlayBJbnRlcm5hdGlvbmFsLCBJbmMuCiswMDA0MzUgICAgIChiYXNlIDE2KQkJQ29tcHRlayBJbnRlcm5hdGlvbmFsLCBJbmMuCisJCQkJMTEgQmVhY29uIFN0LgorCQkJCUJvc3RvbiBNQSAwMjEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtMzYgICAoaGV4KQkJRUxBTnNhdCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDQzNiAgICAgKGJhc2UgMTYpCQlFTEFOc2F0IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCU5vLiAxMSwgTGFuZSAxOSwgUGF0ZWggUm9hZCwKKwkJCQlIc2luY2h1IFRBSVdBTiwgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC0zNyAgIChoZXgpCQlQb3dpbiBJbmZvcm1hdGlvbiBUZWNobm9sb2d5LCBJbmMuCiswMDA0MzcgICAgIChiYXNlIDE2KQkJUG93aW4gSW5mb3JtYXRpb24gVGVjaG5vbG9neSwgSW5jLgorCQkJCThGLCBOby4gNzAsIFpob3UtWiBTdC4KKwkJCQkxMTQgTmVpLUh1IFRhaXBlaQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC0zOCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMDQzOCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlEZXBhcnRtZW50IDY4MDAKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMCBCcmFtcHRvbiwgT04KKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMDQtMzkgICAoaGV4KQkJUm9zY28gRW50ZXJ0YWlubWVudCBUZWNobm9sb2d5LCBJbmMuCiswMDA0MzkgICAgIChiYXNlIDE2KQkJUm9zY28gRW50ZXJ0YWlubWVudCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjE4MSBOVyBGcm9udCBBdmUuCisJCQkJUG9ydGxhbmQgT1IgOTcyMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTNBICAgKGhleCkJCUludGVsbGlnZW50IFRlbGVjb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNDNBICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IFRlbGVjb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTE2ODctMiwgU2luaWwtZG9uZworCQkJCURhZWRvay1ndSwgVGFlam9uCisJCQkJU09VVEggS09SRUEgMzA2LTIzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC0zQiAgIChoZXgpCQlMYXZhIENvbXB1dGVyIE1mZy4sIEluYy4KKzAwMDQzQiAgICAgKGJhc2UgMTYpCQlMYXZhIENvbXB1dGVyIE1mZy4sIEluYy4KKwkJCQkyIFZ1bGNhbiBTdC4KKwkJCQlFdG9iaWNva2UsIE9udGFyaW8KKwkJCQlDQU5BREEgTTlXLTFMMgorCQkJCUNBTkFEQQorCiswMC0wNC0zQyAgIChoZXgpCQlTT05PUyBDby4sIEx0ZC4KKzAwMDQzQyAgICAgKGJhc2UgMTYpCQlTT05PUyBDby4sIEx0ZC4KKwkJCQkjNzI1IFB1bmdzYW4gQXB0LiBGYWN0b3J5CisJCQkJMTE0MS0yIEJhaWtzZW9rLCBpbHNhbiwgR295YW5nLCBHeWVvbmdnaQorCQkJCVJlcC4gb2YgS09SRUEgWmlwIENvZGU6IDQxMS04MTUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtM0QgICAoaGV4KQkJSU5ERUwgQUcKKzAwMDQzRCAgICAgKGJhc2UgMTYpCQlJTkRFTCBBRworCQkJCVR1Zml3aXMgMjYKKwkJCQlDSC04MzMyIFJ1c3Npa29uCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wNC0zRSAgIChoZXgpCQlUZWxlbmNvbW0KKzAwMDQzRSAgICAgKGJhc2UgMTYpCQlUZWxlbmNvbW0KKwkJCQkyNTUxIFdhbHNoIEF2ZW51ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC0zRiAgIChoZXgpCQlFU1RlZW0gV2lyZWxlc3MgTW9kZW1zLCBJbmMKKzAwMDQzRiAgICAgKGJhc2UgMTYpCQlFU1RlZW0gV2lyZWxlc3MgTW9kZW1zLCBJbmMKKwkJCQk0MTUgTi4gUXVheSBTdC4sIFN1aXRlIDQKKwkJCQlLZW5uZXdpY2sgV0EgOTkzMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTQwICAgKGhleCkJCWN5YmVyUElYSUUsIEluYy4KKzAwMDQ0MCAgICAgKGJhc2UgMTYpCQljeWJlclBJWElFLCBJbmMuCisJCQkJNjggRS4gV2Fja2VyIFBsYWNlLAorCQkJCVN1aXRlIDYwMAorCQkJCUNoaWNhZ28gSUwgNjA2MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTQxICAgKGhleCkJCUhhbGYgRG9tZSBTeXN0ZW1zLCBJbmMuCiswMDA0NDEgICAgIChiYXNlIDE2KQkJSGFsZiBEb21lIFN5c3RlbXMsIEluYy4KKwkJCQkxNTUgQi0xIE1vZmZldCBQYXJrIERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC00MiAgIChoZXgpCQlOQUNUCiswMDA0NDIgICAgIChiYXNlIDE2KQkJTkFDVAorCQkJCTE5MSBXLiA1MjAwIE4uCisJCQkJUHJvdm8gVVQgODQ2MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTQzICAgKGhleCkJCUFnaWxlbnQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA0NDMgICAgIChiYXNlIDE2KQkJQWdpbGVudCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk1MzAxIFN0ZXZlbnMgQ3JlZWsgQm91bGV2YXJkCisJCQkJTWFpbHN0b3AgNTRMLVNRCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTQ0ICAgKGhleCkJCVdlc3Rlcm4gTXVsdGlwbGV4IENvcnBvcmF0aW9uCiswMDA0NDQgICAgIChiYXNlIDE2KQkJV2VzdGVybiBNdWx0aXBsZXggQ29ycG9yYXRpb24KKwkJCQkxMTk2IEJvcnJlZ2FzIEF2ZW51ZQorCQkJCVN1aXRlIDUwMAorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNDUgICAoaGV4KQkJTE1TIFNrYWxhciBJbnN0cnVtZW50cyBHbWJICiswMDA0NDUgICAgIChiYXNlIDE2KQkJTE1TIFNrYWxhciBJbnN0cnVtZW50cyBHbWJICisJCQkJV2lsbGktRWljaGxlci1TdHIgMTEKKwkJCQlELTM3MDc5IEdvZXR0aW5nZW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC00NiAgIChoZXgpCQlDWVpFTlRFQ0ggQ28uLCBMdGQuCiswMDA0NDYgICAgIChiYXNlIDE2KQkJQ1laRU5URUNIIENvLiwgTHRkLgorCQkJCTYwMSBFdW5reWVvbmcgQi9EIDE0MS0zMSwKKwkJCQlTYW1zdW5nLWRvbmcsIEdhbmduYW0tZ3UsIFNlb3VsLAorCQkJCTEzNS04NzYgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtNDcgICAoaGV4KQkJQWNyb3dhdmUgU3lzdGVtcyBDby4sIEx0ZC4KKzAwMDQ0NyAgICAgKGJhc2UgMTYpCQlBY3Jvd2F2ZSBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCU1hcnUgQi9EIDg2LTYsIE5vbmh5dW4tRG9uZworCQkJCUdhbmduYW0tZ3UsIFNlb3VsCisJCQkJS09SRUEgemlwOiAxMzUtODE4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LTQ4ICAgKGhleCkJCVBvbGFyb2lkIENvcnBvcmF0aW9uCiswMDA0NDggICAgIChiYXNlIDE2KQkJUG9sYXJvaWQgQ29ycG9yYXRpb24KKwkJCQkzMDAgQmFrZXIgQXZlbnVlCisJCQkJQ29uY29yZCBNQSAwMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNDkgICAoaGV4KQkJTWFwbGV0cmVlIE5ldHdvcmtzCiswMDA0NDkgICAgIChiYXNlIDE2KQkJTWFwbGV0cmVlIE5ldHdvcmtzCisJCQkJMzE1IE5vcndvb2QgUGFyayBTb3V0aAorCQkJCU5vcndvb2QgTUEgMDIwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTRBICAgKGhleCkJCWlQb2xpY3kgTmV0d29ya3MsIEluYy4KKzAwMDQ0QSAgICAgKGJhc2UgMTYpCQlpUG9saWN5IE5ldHdvcmtzLCBJbmMuCisJCQkJNDc0NjcgRnJlbW9udCBCbHZkLgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTRCICAgKGhleCkJCU5WSURJQQorMDAwNDRCICAgICAoYmFzZSAxNikJCU5WSURJQQorCQkJCTM1MzUgTW9ucm9lIFN0LgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC00QyAgIChoZXgpCQlKRU5PUFRJSworMDAwNDRDICAgICAoYmFzZSAxNikJCUpFTk9QVElLCisJCQkJTGFzZXIsIE9wdGlrLCBTeXN0ZW1lIEdtYkgKKwkJCQlFaW5rYXVmLCBQcnVzc2luZ3N0ci4gNDEgRC0wNzc0NSBKZW5hCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDQtNEQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNDREICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTRFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDQ0RSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC00RiAgIChoZXgpCQlMZXVraGFyZHQgU3lzdGVtZWxla3Ryb25payBHbWJICiswMDA0NEYgICAgIChiYXNlIDE2KQkJTGV1a2hhcmR0IFN5c3RlbWVsZWt0cm9uaWsgR21iSAorCQkJCVJ1ZG9sZi1EaWVzZWwtU3RyLiAxNworCQkJCTc4NTMyIFR1dHRsaW5nZW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC01MCAgIChoZXgpCQlETUQgQ29tcHV0ZXJzIFNSTAorMDAwNDUwICAgICAoYmFzZSAxNikJCURNRCBDb21wdXRlcnMgU1JMCisJCQkJVmlhIE1vbnZpc28sIDE0CisJCQkJMTAwOTAgVmlsbGFyYmFzc2UgKFRvKQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtMDQtNTEgICAoaGV4KQkJTWVkcmFkLCBJbmMuCiswMDA0NTEgICAgIChiYXNlIDE2KQkJTWVkcmFkLCBJbmMuCisJCQkJT25lIE1lZHJhZCBEcml2ZQorCQkJCUluZGlhbm9sYSBQQSAxNTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNTIgICAoaGV4KQkJUm9ja2V0TG9naXgsIEluYy4KKzAwMDQ1MiAgICAgKGJhc2UgMTYpCQlSb2NrZXRMb2dpeCwgSW5jLgorCQkJCTY1MDQgSW50ZXJuYXRpb25hbCBQYXJrd2F5CisJCQkJU3VpdGUgMTIwMAorCQkJCVBsYW5vIFRYIDc1MDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC01MyAgIChoZXgpCQlZb3R0YVlvdHRhLCBJbmMuCiswMDA0NTMgICAgIChiYXNlIDE2KQkJWW90dGFZb3R0YSwgSW5jLgorCQkJCTYwMjAtIDEwNCBTdHJlZXQKKwkJCQlFZG1vbnRvbiwgQUIgIFQ2SCA1UzQKKwkJCQlDQU5BREEKKworMDAtMDQtNTQgICAoaGV4KQkJUXVhZHJpZ2EgVUsKKzAwMDQ1NCAgICAgKGJhc2UgMTYpCQlRdWFkcmlnYSBVSworCQkJCUJhaXJkIEhvdXNlCisJCQkJQXJsaW5ndG9uIEJ1c2luZXNzIFBhcmsgVGhlYWxlIFJlYWRpbmcgUgorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC01NSAgIChoZXgpCQlBTlRBUkEubmV0CiswMDA0NTUgICAgIChiYXNlIDE2KQkJQU5UQVJBLm5ldAorCQkJCTc0NyBDYW1kZW4gQXZlLgorCQkJCVN1aXRlIEEKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNTYgICAoaGV4KQkJQ2FtYml1bSBOZXR3b3JrcyBMaW1pdGVkCiswMDA0NTYgICAgIChiYXNlIDE2KQkJQ2FtYml1bSBOZXR3b3JrcyBMaW1pdGVkCisJCQkJVW5pdCBCMiwgTGluaGF5IEJ1c2luZXNzIFBhcmssCisJCQkJRWFzdGVybiBSb2FkLAorCQkJCUFzaGJ1cnRvbiBEZXZvbiBUUTEzIDdVUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA0LTU3ICAgKGhleCkJCVVuaXZlcnNhbCBBY2Nlc3MgVGVjaG5vbG9neSwgSW5jLgorMDAwNDU3ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBBY2Nlc3MgVGVjaG5vbG9neSwgSW5jLgorCQkJCTIgRmwuLCBOby4gNSwgQWxsZXkgMjIsCisJCQkJTGFuZSA1MTMsIEp1aSBLdWFuZyBSb2FkLAorCQkJCU5laSBIdSBUYWlwZWksIFRBSVdBTiAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LTU4ICAgKGhleCkJCUZ1c2lvbiBYIENvLiwgTHRkLgorMDAwNDU4ICAgICAoYmFzZSAxNikJCUZ1c2lvbiBYIENvLiwgTHRkLgorCQkJCSM5MDUgSGFuc29sIFRlY2hubyBUb3duCisJCQkJMTYtMSBEYW5nLUp1bmcgRG9uZyBLdW4tUG8gS3l1bmctS2kgZG8gSworCQkJCVppcCA0MzUtMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LTU5ICAgKGhleCkJCVZlcmlzdGFyIENvcnBvcmF0aW9uCiswMDA0NTkgICAgIChiYXNlIDE2KQkJVmVyaXN0YXIgQ29ycG9yYXRpb24KKwkJCQk3MjcgQWxsc3RvbiBXYXkKKwkJCQlCZXJrZWxleSBDQSA5NDcxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNUEgICAoaGV4KQkJVGhlIExpbmtzeXMgR3JvdXAsIEluYy4KKzAwMDQ1QSAgICAgKGJhc2UgMTYpCQlUaGUgTGlua3N5cyBHcm91cCwgSW5jLgorCQkJCTE3NDAxIEFybXN0cm9uZyBBdmUuCisJCQkJSXJ2aW5lIENBIDkyNjE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC01QiAgIChoZXgpCQlUZWNoc2FuIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwNDVCICAgICAoYmFzZSAxNikJCVRlY2hzYW4gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJTm9ydGggV2luZworCQkJCTQzIEhpZ2ggU3RyZWV0IEZhcmVoYW0sIEhhbnRzIFAwMTYgN0JRCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC01QyAgIChoZXgpCQlNb2Jpd2F2ZSBQdGUgTHRkCiswMDA0NUMgICAgIChiYXNlIDE2KQkJTW9iaXdhdmUgUHRlIEx0ZAorCQkJCUJsayAxNiwgS2FsbGFuZyBQbGFjZQorCQkJCSMwNy0wMS8wNAorCQkJCTMzOTE1NgorCQkJCVNJTkdBUE9SRQorCiswMC0wNC01RCAgIChoZXgpCQlCRUtBIEVsZWt0cm9uaWsKKzAwMDQ1RCAgICAgKGJhc2UgMTYpCQlCRUtBIEVsZWt0cm9uaWsKKwkJCQlTaWVtZW5zdHJhc3NlIDI5CisJCQkJRXJmdHN0YWR0IDUwMzc0CisJCQkJR0VSTUFOWQorCiswMC0wNC01RSAgIChoZXgpCQlQb2x5VHJheCBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IEFHCiswMDA0NUUgICAgIChiYXNlIDE2KQkJUG9seVRyYXggSW5mb3JtYXRpb24gVGVjaG5vbG9neSBBRworCQkJCU1hcnRpbi1Lb2xsYXIgLSBTdHIuIDUKKwkJCQlELTgxODI5IE11bmNoZW4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC01RiAgIChoZXgpCQlFdmFsdWUgVGVjaG5vbG9neSwgSW5jLgorMDAwNDVGICAgICAoYmFzZSAxNikJCUV2YWx1ZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJNUYtNywgTm8uIDEzMCwgQ2hpZW4gS2FuZyBSb2FkLAorCQkJCUNodW5nIEhvIENpdHksIFRhaXBlaQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC02MCAgIChoZXgpCQlLbmlsaW5rIFRlY2hub2xvZ3ksIEluYy4KKzAwMDQ2MCAgICAgKGJhc2UgMTYpCQlLbmlsaW5rIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxMEYsICM5NiwgSHNpbiBUYWkgV3UgUmQuLAorCQkJCVNlYy4gMSwgSHNpIENoaWgsIFRhaXBlaSBIc2llbiwKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LTYxICAgKGhleCkJCUVQT1ggQ29tcHV0ZXIgQ28uLCBMdGQuCiswMDA0NjEgICAgIChiYXNlIDE2KQkJRVBPWCBDb21wdXRlciBDby4sIEx0ZC4KKwkJCQkxMUYsICMzNDYsIENodW5nIFNhbiBSZC4KKwkJCQlTZWMuIDIsIENodW5nIEhvIENpdHksIFRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtNjIgICAoaGV4KQkJREFLT1MgRGF0YSAmIENvbW11bmljYXRpb24gQ28uLCBMdGQuCiswMDA0NjIgICAgIChiYXNlIDE2KQkJREFLT1MgRGF0YSAmIENvbW11bmljYXRpb24gQ28uLCBMdGQuCisJCQkJMm5kIEZsb29yIEJldGhlbCBCdWlsZGluZyAzMjQtMQorCQkJCVlhbmdqYWUtZG9uZyBTZW9jaG8tZ3UgU2VvdWwgUi5PLksuCisJCQkJWmlwIGNvZGU6IDEzNy0xMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LTYzICAgKGhleCkJCUJvc2NoIFNlY3VyaXR5IFN5c3RlbXMKKzAwMDQ2MyAgICAgKGJhc2UgMTYpCQlCb3NjaCBTZWN1cml0eSBTeXN0ZW1zCisJCQkJODUwIEdyZWVuZmllbGQgUm9hZAorCQkJCUxhbmNhc3RlciBQQSAxNzYwMS01ODc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC02NCAgIChoZXgpCQlGYW50YXNtYSBOZXR3b3JrcywgSW5jLgorMDAwNDY0ICAgICAoYmFzZSAxNikJCUZhbnRhc21hIE5ldHdvcmtzLCBJbmMuCisJCQkJMzI1MCBBc2ggU3RyZWV0CisJCQkJUGFsbyBBbHRvIENBIDk0MzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC02NSAgIChoZXgpCQlpLnMudCBpc2RuLXN1cHBvcnQgdGVjaG5payBHbWJICiswMDA0NjUgICAgIChiYXNlIDE2KQkJaS5zLnQgaXNkbi1zdXBwb3J0IHRlY2huaWsgR21iSAorCQkJCVJoZWluIFN0cmFzc2UgN0UKKwkJCQkxNDUxMyBUZWx0b3cKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0wNC02NiAgIChoZXgpCQlBUk1JVEVMIENvLgorMDAwNDY2ICAgICAoYmFzZSAxNikJCUFSTUlURUwgQ28uCisJCQkJRjUsIERvbWFuIFBsYXphIDM1My00LAorCQkJCVlhdGFwLURvbmcsIFB1ZGFuZy1rdSwgU2VvbmctTmFtZSBTaSwgS3kKKwkJCQlSZXB1YmxpYyBvZiBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC02NyAgIChoZXgpCQlXdWhhbiBSZXNlYXJjaCBJbnN0aXR1dGUgb2YgTUlJCiswMDA0NjcgICAgIChiYXNlIDE2KQkJV3VoYW4gUmVzZWFyY2ggSW5zdGl0dXRlIG9mIE1JSQorCQkJCTg4IFlvdWtleXVhbiBSb2FkLAorCQkJCUhhbmdzaGFuIERpc3RyaWN0LFd1aGFuLCBIdWJlaSBQcm92aW5jZSwKKwkJCQk0MzAwNzQgNDMwMDc0IFAuUi5DSElOQQorCQkJCUNISU5BCisKKzAwLTA0LTY4ICAgKGhleCkJCVZpdml0eSwgSW5jLgorMDAwNDY4ICAgICAoYmFzZSAxNikJCVZpdml0eSwgSW5jLgorCQkJCTMzNjAgTWl0Y2hlbGwgTGFuZQorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTY5ICAgKGhleCkJCUlubm9jb20sIEluYy4KKzAwMDQ2OSAgICAgKGJhc2UgMTYpCQlJbm5vY29tLCBJbmMuCisJCQkJNjU1LTIgTmFlYmFsc2FuLURvbmcKKwkJCQlLYW5nc2VvLUd1LCBTZW91bAorCQkJCTE1Ny0yODAgMTU3LTI4MCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC02QSAgIChoZXgpCQlOYXZpbmkgTmV0d29ya3MKKzAwMDQ2QSAgICAgKGJhc2UgMTYpCQlOYXZpbmkgTmV0d29ya3MKKwkJCQkzNjA1IEUuIFBsYW5vIFBrd3ksCisJCQkJU3VpdGUgNDAwLAorCQkJCVBsYW5vIFRYIDc1MDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC02QiAgIChoZXgpCQlQYWxtIFdpcmVsZXNzLCBJbmMuCiswMDA0NkIgICAgIChiYXNlIDE2KQkJUGFsbSBXaXJlbGVzcywgSW5jLgorCQkJCTQ4OTMzIFdhcm0gU3ByaW5ncyBCbHZkLgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTZDICAgKGhleCkJCUN5YmVyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDA0NkMgICAgIChiYXNlIDE2KQkJQ3liZXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxLTQ1IFllbyBXb2wtRG9uZworCQkJCU9oIEp1bmctRW0sIEJ1IENoZW9uIENpdHksCisJCQkJS3llb25nIEdpLURvIEt5ZW9uZyBHaS1EbyBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC02RCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA0NkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNkUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNDZFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTZGICAgKGhleCkJCURpZ2l0ZWwgUy9BIEluZHVzdHJpYSBFbGV0cm9uaWNhCiswMDA0NkYgICAgIChiYXNlIDE2KQkJRGlnaXRlbCBTL0EgSW5kdXN0cmlhIEVsZXRyb25pY2EKKwkJCQlSLiBEb3V0b3IgSm9hbyBJZ25hY2lvLCAxMTY1CisJCQkJUG9ydG8gQWxlZ3JlLCBSUy4gQnJhemlsCisJCQkJWmlwOiA5MDIzMC4xODEKKwkJCQlCUkFaSUwKKworMDAtMDQtNzAgICAoaGV4KQkJaXBVbnBsdWdnZWQgQUIKKzAwMDQ3MCAgICAgKGJhc2UgMTYpCQlpcFVucGx1Z2dlZCBBQgorCQkJCUJveCAxMDE2MAorCQkJCVNFIDEyMSAyOCBTdG9ja2hvbG0tR2xvYnNlbgorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC0wNC03MSAgIChoZXgpCQlJUHJhZAorMDAwNDcxICAgICAoYmFzZSAxNikJCUlQcmFkCisJCQkJMjQgUmFvdWwgV2FsbGVuYmVyZyBTdC4KKwkJCQlUZWwtQXZpdiA2OTcxOQorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wNC03MiAgIChoZXgpCQlUZWxlbHlueCwgSW5jLgorMDAwNDcyICAgICAoYmFzZSAxNikJCVRlbGVseW54LCBJbmMuCisJCQkJM0YtMSwgNjYgTmFua2FuIFJkLiwKKwkJCQlTZWMuIDIgTHUgQ2h1LCBUYW8tWXVhbgorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtNzMgICAoaGV4KQkJUGhvdG9uZXggQ29ycG9yYXRpb24KKzAwMDQ3MyAgICAgKGJhc2UgMTYpCQlQaG90b25leCBDb3Jwb3JhdGlvbgorCQkJCThDIFByZXN0b24gQ291cnQKKwkJCQlCZWRmb3JkIE1BIDAxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC03NCAgIChoZXgpCQlMRUdSQU5ECiswMDA0NzQgICAgIChiYXNlIDE2KQkJTEVHUkFORAorCQkJCTE0NSBBdmVudWUgRGUgTGF0dHJlCisJCQkJNTcwNDUgTGltb2dlcworCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC0wNC03NSAgIChoZXgpCQkzIENvbSBDb3Jwb3JhdGlvbgorMDAwNDc1ICAgICAoYmFzZSAxNikJCTMgQ29tIENvcnBvcmF0aW9uCisJCQkJNTQwMCBCYXlmcm9udCBQbGF6YQorCQkJCU1TOiAgNDIyMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC03NiAgIChoZXgpCQkzIENvbSBDb3Jwb3JhdGlvbgorMDAwNDc2ICAgICAoYmFzZSAxNikJCTMgQ29tIENvcnBvcmF0aW9uCisJCQkJNTQwMCBCYXlmcm9udCBQbGF6YQorCQkJCU1TOiAgNDIyMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC03NyAgIChoZXgpCQlTY2FsYW50IFN5c3RlbXMsIEluYy4KKzAwMDQ3NyAgICAgKGJhc2UgMTYpCQlTY2FsYW50IFN5c3RlbXMsIEluYy4KKwkJCQkyMDQwIE1hcnRpbiBBdmVudWUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtNzggICAoaGV4KQkJRy4gU3RhciBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDA0NzggICAgIChiYXNlIDE2KQkJRy4gU3RhciBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNHRoIEZsb29yLCBOby4gMTE4LCBTZWN0b3IgMgorCQkJCUNodW5nIEhzaWFvIEVhc3QgUm9hZAorCQkJCVRhaXBlaSBDaXR5IFRhaXBlaSBDaXR5IFRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtNzkgICAoaGV4KQkJUmFkaXVzIENvLiwgTHRkLgorMDAwNDc5ICAgICAoYmFzZSAxNikJCVJhZGl1cyBDby4sIEx0ZC4KKwkJCQkxLTQ4LTExLCBJdGFiYXNoaQorCQkJCVJvamUgQmxkZy4sIE5vLiAzLCA2RiBJdGFiYXNoaS1rdSwgVG9reW8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTA0LTdBICAgKGhleCkJCUFYWEVTU0lUIEFTQQorMDAwNDdBICAgICAoYmFzZSAxNikJCUFYWEVTU0lUIEFTQQorCQkJCUFYWEVTU0lUIEFTQSBIQUxERU4KKwkJCQlCb3ggMTA1MyAxNzg3IEJlcmcgaSBPc3Rmb2xkCisJCQkJTk9SV0FZCisJCQkJTk9SV0FZCisKKzAwLTA0LTdCICAgKGhleCkJCVNjaGx1bWJlcmdlcgorMDAwNDdCICAgICAoYmFzZSAxNikJCVNjaGx1bWJlcmdlcgorCQkJCVN1Z2FyIExhbmQgUHJvZHVjdCBDZW50ZXIKKwkJCQkxMTAgU2NobHVtYmVyZ2VyIERyaXZlCisJCQkJU3VnYXIgTGFuZCBUWCA3NzQ3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtN0MgICAoaGV4KQkJU2tpZGF0YSBBRworMDAwNDdDICAgICAoYmFzZSAxNikJCVNraWRhdGEgQUcKKwkJCQlULTY5NzU1MyBVbnRlcnNiZXJnc3RyLiA0MAorCQkJCUEtNTA4MyBHYXJ0ZW5hdQorCQkJCUFVU1RSSUEKKwkJCQlBVVNUUklBCisKKzAwLTA0LTdEICAgKGhleCkJCVBlbGNvCiswMDA0N0QgICAgIChiYXNlIDE2KQkJUGVsY28KKwkJCQkzNTAwIFBlbGNvIFdheQorCQkJCUNsb3ZpcyBDQSA5MzYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtN0UgICAoaGV4KQkJU2lxdXJhIEIuVi4KKzAwMDQ3RSAgICAgKGJhc2UgMTYpCQlTaXF1cmEgQi5WLgorCQkJCVp1aWRlbGlqayBIYWxmcm9uZCA0CisJCQkJMjgwMSBERCBHb3VkYQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTA0LTdGICAgKGhleCkJCUNoci4gTWF5ciBHbWJIICYgQ28uIEtHCiswMDA0N0YgICAgIChiYXNlIDE2KQkJQ2hyLiBNYXlyIEdtYkggJiBDby4gS0cKKwkJCQlFaWNoZW5zdHJhc3NlIDEKKwkJCQlELTg3NjY1IE1hdWVyc3RldHRlbgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTA0LTgwICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCiswMDA0ODAgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTE2NC05MTAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC04MSAgIChoZXgpCQlFY29ub2xpdGUgQ29udHJvbCBQcm9kdWN0cywgSW5jLgorMDAwNDgxICAgICAoYmFzZSAxNikJCUVjb25vbGl0ZSBDb250cm9sIFByb2R1Y3RzLCBJbmMuCisJCQkJMzM2MCBFLiBMYSBQYWxtYSBBdmUuCisJCQkJQW5haGVpbSBDQSA5MjgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtODIgICAoaGV4KQkJTWVkaWFsb2dpYyBDb3JwLgorMDAwNDgyICAgICAoYmFzZSAxNikJCU1lZGlhbG9naWMgQ29ycC4KKwkJCQkwLTMsIFRveWFtYWtlbi1TYW5neW91CisJCQkJS291ZG9rYS1DZW50ZXIsIDUsIE9mZmljZSBQYXJrLCBUYWthb2thLQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMDQtODMgICAoaGV4KQkJRGVsdHJvbiBUZWNobm9sb2d5LCBJbmMuCiswMDA0ODMgICAgIChiYXNlIDE2KQkJRGVsdHJvbiBUZWNobm9sb2d5LCBJbmMuCisJCQkJOEYtMywgTm8uIDEyNSwgTGFuZSAyMzUKKwkJCQlQYW8tQ2hpYW8gUmQuLCBIc2ludGllbiwKKwkJCQlUYWlwZWkgVEFJV0FOLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LTg0ICAgKGhleCkJCUFtYW5uIEdtYkgKKzAwMDQ4NCAgICAgKGJhc2UgMTYpCQlBbWFubiBHbWJICisJCQkJVW50ZXJhbmdlciA2CisJCQkJRC04MjA0MSBPYmVyaGFjaGluZworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTA0LTg1ICAgKGhleCkJCVBpY29MaWdodAorMDAwNDg1ICAgICAoYmFzZSAxNikJCVBpY29MaWdodAorCQkJCTQ2NjUgTmF1dGlsdXMgQ291cnQgU291dGgKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC04NiAgIChoZXgpCQlJVFRDLCBVbml2ZXJzaXR5IG9mIEthbnNhcworMDAwNDg2ICAgICAoYmFzZSAxNikJCUlUVEMsIFVuaXZlcnNpdHkgb2YgS2Fuc2FzCisJCQkJMjMzNSBJcnZpbmcgSGlsbCBSZC4KKwkJCQlMYXdyZW5jZSBLUyA2NjA0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtODcgICAoaGV4KQkJQ29nZW5jeSBTZW1pY29uZHVjdG9yLCBJbmMuCiswMDA0ODcgICAgIChiYXNlIDE2KQkJQ29nZW5jeSBTZW1pY29uZHVjdG9yLCBJbmMuCisJCQkJMzYyIFRlcnJ5IEZveCBEcml2ZSwgU3VpdGUgMjEwCisJCQkJS2FuYXRhLCBPTiwgSzJLIDJQNQorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wNC04OCAgIChoZXgpCQlFdXJvdGhlcm0gQ29udHJvbHMKKzAwMDQ4OCAgICAgKGJhc2UgMTYpCQlFdXJvdGhlcm0gQ29udHJvbHMKKwkJCQk3NDFGIE1pbGxlciBEcml2ZQorCQkJCUxlc3NidXJnIFZBIDIwMTc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC04OSAgIChoZXgpCQlZQUZPIE5ldHdvcmtzLCBJbmMuCiswMDA0ODkgICAgIChiYXNlIDE2KQkJWUFGTyBOZXR3b3JrcywgSW5jLgorCQkJCTEzNDBGIENoYXJ3b29kIFJkLgorCQkJCUhhbm92ZXIgTUQgMjEwNzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LThBICAgKGhleCkJCVRlbWlhIFZlcnRyaWVicyBHbWJICiswMDA0OEEgICAgIChiYXNlIDE2KQkJVGVtaWEgVmVydHJpZWJzIEdtYkgKKwkJCQlMYW5kc2JlcmdlcnN0ci4gMzIwCisJCQkJRC04MDY4NyBNdW5pY2gKKwkJCQlHRVJNQU5ZCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC04QiAgIChoZXgpCQlQb3Njb24gQ29ycG9yYXRpb24KKzAwMDQ4QiAgICAgKGJhc2UgMTYpCQlQb3Njb24gQ29ycG9yYXRpb24KKwkJCQkjNjA2IEhvLURvbmcsIE5hbSBHdSwKKwkJCQlQb2hhbmcgQ2l0eSwgS3l1bmdidWssCisJCQkJU09VVEggS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtOEMgICAoaGV4KQkJTmF5bmEgTmV0d29ya3MsIEluYy4KKzAwMDQ4QyAgICAgKGJhc2UgMTYpCQlOYXluYSBOZXR3b3JrcywgSW5jLgorCQkJCTE1NyBUb3BheiBTdC4KKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtOEQgICAoaGV4KQkJVG9uZSBDb21tYW5kZXIgU3lzdGVtcywgSW5jLgorMDAwNDhEICAgICAoYmFzZSAxNikJCVRvbmUgQ29tbWFuZGVyIFN5c3RlbXMsIEluYy4KKwkJCQkxMTYwOSA0OXRoIFBsYWNlIFdlc3QKKwkJCQlNdWtpbHRlbyBXQSA5ODI3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtOEUgICAoaGV4KQkJT2htIFRlY2ggTGFicywgSW5jLgorMDAwNDhFICAgICAoYmFzZSAxNikJCU9obSBUZWNoIExhYnMsIEluYy4KKwkJCQkxNDEgTGFuemEgQXZlLiwgQi0xMgorCQkJCUdhcmZpZWxkIE5KIDA3MDI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC04RiAgIChoZXgpCQlURCBTeXN0ZW1zIENvcnBvcmF0aW9uCiswMDA0OEYgICAgIChiYXNlIDE2KQkJVEQgU3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTEwMCBCZWFyZm9vdCBSZC4KKwkJCQk2NCBPbnRhcmlvIERyaXZlCisJCQkJSHVkc29uIE1BIDAxNzQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC05MCAgIChoZXgpCQlPcHRpY2FsIEFjY2VzcworMDAwNDkwICAgICAoYmFzZSAxNikJCU9wdGljYWwgQWNjZXNzCisJCQkJUC5PLiBCb3ggMTE0CisJCQkJWW9rbmVhbSwgMjA2OTIKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDQtOTEgICAoaGV4KQkJVGVjaG5vdmlzaW9uLCBJbmMuCiswMDA0OTEgICAgIChiYXNlIDE2KQkJVGVjaG5vdmlzaW9uLCBJbmMuCisJCQkJNTE1NSBTcGVjdHJ1bSBXYXksIFVuaXQgIzMxCisJCQkJTWlzc2lzc2F1Z2EsIE9udGFyaW8KKwkJCQlMNFcgNUExIENBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wNC05MiAgIChoZXgpCQlIaXZlIEludGVybmV0LCBMdGQuCiswMDA0OTIgICAgIChiYXNlIDE2KQkJSGl2ZSBJbnRlcm5ldCwgTHRkLgorCQkJCVVuaXQgMiwgQ2h1cmNoIFZpZXcgQnVzaW5lc3MgQ2VudHJlCisJCQkJTG91dGggUm9hZAorCQkJCUJpbmJyb29rIE1hcmtldCBSYXNlbiwgTGluY29sbnNoaXJlIExOOCA2QlkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNC05MyAgIChoZXgpCQlUc2luZ2h1YSBVbmlzcGxlbmRvdXIgQ28uLCBMdGQuCiswMDA0OTMgICAgIChiYXNlIDE2KQkJVHNpbmdodWEgVW5pc3BsZW5kb3VyIENvLiwgTHRkLgorCQkJCVRoLVVuaXMgQnVpbGRpbmcgVHNpbmdodWEKKwkJCQlVbml2ZXJzaXR5LCBCZWppbmcgMTAwMDg0CisJCQkJUC5SLiBDSElOQQorCQkJCUNISU5BCisKKzAwLTA0LTk0ICAgKGhleCkJCUJyZWV6ZWNvbSwgTHRkLgorMDAwNDk0ICAgICAoYmFzZSAxNikJCUJyZWV6ZWNvbSwgTHRkLgorCQkJCUF0aWRpbSBUZWNobm9sb2d5IFBhcmsKKwkJCQlCbGRnLiAxLCBQLk8uQi4gMTMxMzkgVGVsLUF2aXYgNjExMzEKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDQtOTUgICAoaGV4KQkJVGVqYXMgTmV0d29ya3MgSW5kaWEgTGltaXRlZAorMDAwNDk1ICAgICAoYmFzZSAxNikJCVRlamFzIE5ldHdvcmtzIEluZGlhIExpbWl0ZWQKKwkJCQkjNTgsIDFzdCBNYWluIFJvYWQsIEouUC4gTmFnYXIsIAorCQkJCTNyZCBQaGFzZSwgS2FybmF0YWthCisJCQkJQmFuZ2Fsb3JlICA1NjAwNzggCisJCQkJSU5ESUEKKworMDAtMDQtOTYgICAoaGV4KQkJRXh0cmVtZSBOZXR3b3JrcworMDAwNDk2ICAgICAoYmFzZSAxNikJCUV4dHJlbWUgTmV0d29ya3MKKwkJCQkzNTg1IE1vbnJvZSBTdC4KKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtOTcgICAoaGV4KQkJTWFjcm9TeXN0ZW0gRGlnaXRhbCBWaWRlbyBBRworMDAwNDk3ICAgICAoYmFzZSAxNikJCU1hY3JvU3lzdGVtIERpZ2l0YWwgVmlkZW8gQUcKKwkJCQlTY2hvZWxsaW5nZXIgRmVsZCAyOAorCQkJCTU4MzAwIFdldHRlciwgRi5SLgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTA0LTk4ICAgKGhleCkJCU1haGkgTmV0d29ya3MKKzAwMDQ5OCAgICAgKGJhc2UgMTYpCQlNYWhpIE5ldHdvcmtzCisJCQkJMTAzOSBOLiBNY0Rvd2VsbCBCbHZkLgorCQkJCVBldGFsdW1hIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC05OSAgIChoZXgpCQlDaGlubyBDb3Jwb3JhdGlvbgorMDAwNDk5ICAgICAoYmFzZSAxNikJCUNoaW5vIENvcnBvcmF0aW9uCisJCQkJMSBNb3JpLCBGdWppb2thIENpdHksCisJCQkJR3VubWEgUHJlZi4gSkFQQU4KKwkJCQlaaXA6IDM3NS04NTA1CisJCQkJSkFQQU4KKworMDAtMDQtOUEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNDlBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LTlCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDQ5QiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC05QyAgIChoZXgpCQlTdXJnaWVudCBOZXR3b3JrcywgSW5jLgorMDAwNDlDICAgICAoYmFzZSAxNikJCVN1cmdpZW50IE5ldHdvcmtzLCBJbmMuCisJCQkJMzUyMCBFeGVjdXRpdmUgQ2VudGVyIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJQXVzdGluIFRYIDc4NzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC05RCAgIChoZXgpCQlJcGFuZW1hIFRlY2hub2xvZ2llcworMDAwNDlEICAgICAoYmFzZSAxNikJCUlwYW5lbWEgVGVjaG5vbG9naWVzCisJCQkJMjgsIFJ1ZSBEZSBMYSBSZWRvdXRlCisJCQkJOTIyNjAgRm9udGVuYXkgQXV4IFJvc2VzCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTA0LTlFICAgKGhleCkJCVdpcmVsaW5rIENvLiwgTHRkLgorMDAwNDlFICAgICAoYmFzZSAxNikJCVdpcmVsaW5rIENvLiwgTHRkLgorCQkJCTExRiwgR2Vvc2VvbmcgQi9EIDU0MSwgRG93aGEtRG9uZywKKwkJCQlNYXBvLUd1LCBTZW91bCwgMTIxLTcwMSwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC05RiAgIChoZXgpCQlGcmVlc2NhbGUgU2VtaWNvbmR1Y3RvcgorMDAwNDlGICAgICAoYmFzZSAxNikJCUZyZWVzY2FsZSBTZW1pY29uZHVjdG9yCisJCQkJNzcwMCBXZXN0IFBhcm1lciBMYW5lCisJCQkJTUQgUEw1OQorCQkJCUF1c3RpbiBUWCA3ODcyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQTAgICAoaGV4KQkJVmVyaXR5IEluc3RydW1lbnRzLCBJbmMuCiswMDA0QTAgICAgIChiYXNlIDE2KQkJVmVyaXR5IEluc3RydW1lbnRzLCBJbmMuCisJCQkJMjkwMSBFaXNlbmhvd2VyIFN0LgorCQkJCUNhcnJvbGx0b24gVFggNzUwMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUExICAgKGhleCkJCVBhdGh3YXkgQ29ubmVjdGl2aXR5CiswMDA0QTEgICAgIChiYXNlIDE2KQkJUGF0aHdheSBDb25uZWN0aXZpdHkKKwkJCQkxNDM5LTE3IEF2ZW51ZSBTRQorCQkJCUNhbGdhcnkgQWxiZXJ0YSBUMkcgMUo5CisJCQkJQ0FOQURBCisKKzAwLTA0LUEyICAgKGhleCkJCUwuUy5JLiBKYXBhbiBDby4sIEx0ZC4KKzAwMDRBMiAgICAgKGJhc2UgMTYpCQlMLlMuSS4gSmFwYW4gQ28uLCBMdGQuCisJCQkJMS04LTE0IFNlbmRhZ2F5YSBTaGlidXlhLUt1CisJCQkJVG9reW8gMTUxLTAwNTEgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC1BMyAgIChoZXgpCQlNaWNyb2NoaXAgVGVjaG5vbG9neSwgSW5jLgorMDAwNEEzICAgICAoYmFzZSAxNikJCU1pY3JvY2hpcCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjM1NSBXLiBDaGFuZGxlciBCbHZkLgorCQkJCUNoYW5kbGVyIEFaIDg1MjI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1BNCAgIChoZXgpCQlOZXRFbmFibGVkLCBJbmMuCiswMDA0QTQgICAgIChiYXNlIDE2KQkJTmV0RW5hYmxlZCwgSW5jLgorCQkJCTEyNzUgS2lubmVhciBSZC4KKwkJCQlDb2x1bWJ1cyBPSCA0MzIxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQTUgICAoaGV4KQkJQmFyY28gUHJvamVjdGlvbiBTeXN0ZW1zIE5WCiswMDA0QTUgICAgIChiYXNlIDE2KQkJQmFyY28gUHJvamVjdGlvbiBTeXN0ZW1zIE5WCisJCQkJTm9vcmRsYWFuIDUKKwkJCQlCODUyMCBLdXVybmUKKwkJCQlCRUxHSVVNCisJCQkJQkVMR0lVTQorCiswMC0wNC1BNiAgIChoZXgpCQlTQUYgVGVobmlrYSBMdGQuCiswMDA0QTYgICAgIChiYXNlIDE2KQkJU0FGIFRlaG5pa2EgTHRkLgorCQkJCTkxIER6aXJuYXZ1IFN0ci4sCisJCQkJUmlnYSwgTFYtMTAxMSwKKwkJCQlMQVRWSUEKKwkJCQlMQVRWSUEKKworMDAtMDQtQTcgICAoaGV4KQkJRmFiaWFUZWNoIENvcnBvcmF0aW9uCiswMDA0QTcgICAgIChiYXNlIDE2KQkJRmFiaWFUZWNoIENvcnBvcmF0aW9uCisJCQkJNEYtMywgTm8uIDE4LCBMYW5lIDYwOQorCQkJCUNodW5nLUhzaW4gUmQuLCBTZWMuIDUgU2FuIENodW5nIENpdHksCisJCQkJVGFpcGVpIEhzaWVuLCBUQUlXQU4gUi5PLkMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LUE4ICAgKGhleCkJCUJyb2FkbWF4IFRlY2hub2xvZ2llcywgSW5jLgorMDAwNEE4ICAgICAoYmFzZSAxNikJCUJyb2FkbWF4IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE4MCwgV2FpIFlpcCBTdHJlZXQsCisJCQkJSHd1biBUb25nLAorCQkJCUhPTkcgS09ORworCQkJCUhPTkcgS09ORworCiswMC0wNC1BOSAgIChoZXgpCQlTYW5kU3RyZWFtIFRlY2hub2xvZ2llcywgSW5jLgorMDAwNEE5ICAgICAoYmFzZSAxNikJCVNhbmRTdHJlYW0gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTk1NSBMYWtld2F5IERyLgorCQkJCUxld2lzdmlsbGUgVFggNzUwNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUFBICAgKGhleCkJCUpldHN0cmVhbSBDb21tdW5pY2F0aW9ucworMDAwNEFBICAgICAoYmFzZSAxNikJCUpldHN0cmVhbSBDb21tdW5pY2F0aW9ucworCQkJCTU0MDAgSGVsbHllciBBdmVudWUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzOC0xMDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1BQiAgIChoZXgpCQlDb212ZXJzZSBOZXR3b3JrIFN5c3RlbXMsIEluYy4KKzAwMDRBQiAgICAgKGJhc2UgMTYpCQlDb212ZXJzZSBOZXR3b3JrIFN5c3RlbXMsIEluYy4KKwkJCQkyOSBIYWJhcnplbCBTdHJlZXQuCisJCQkJVGVsLUF2aXYgNjk3MTAKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtMDQtQUMgICAoaGV4KQkJSUJNIENvcnAKKzAwMDRBQyAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQUQgICAoaGV4KQkJTWFsaWJ1IE5ldHdvcmtzCiswMDA0QUQgICAgIChiYXNlIDE2KQkJTWFsaWJ1IE5ldHdvcmtzCisJCQkJMjY2MzcgQWdvdXJhIFJkLgorCQkJCUNhbGFiYXNhcyBDQSA5MTMwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQUUgICAoaGV4KQkJU3VsbGFpciBDb3Jwb3JhdGlvbgorMDAwNEFFICAgICAoYmFzZSAxNikJCVN1bGxhaXIgQ29ycG9yYXRpb24KKwkJCQkzNzAwIEVhc3QgTWljaGlnYW4gQmx2ZAorCQkJCU1pY2hpZ2FuIENpdHkgSU4gNDYzNjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUFGICAgKGhleCkJCURpZ2l0YWwgRm91bnRhaW4sIEluYy4KKzAwMDRBRiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIEZvdW50YWluLCBJbmMuCisJCQkJNjAwIEFsYWJhbWEgU3QuCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQjAgICAoaGV4KQkJRUxFU0lHTiBDby4sIEx0ZC4KKzAwMDRCMCAgICAgKGJhc2UgMTYpCQlFTEVTSUdOIENvLiwgTHRkLgorCQkJCTlGbC4gVGFlS3lvdW5nIEJsZGcuLAorCQkJCTQyLTQyIEJvbmdDaHVuLWRvbmcgS3dhbkFrLWd1LCBTZW91bCwKKwkJCQlSLk8uIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LUIxICAgKGhleCkJCVNpZ25hbCBUZWNobm9sb2d5LCBJbmMuCiswMDA0QjEgICAgIChiYXNlIDE2KQkJU2lnbmFsIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkzcmQuIEZsLiBEYWJvIEJsZGcuCisJCQkJMzctMiBrb3lvIHNvbmdwYQorCQkJCVNlb3VsIEtPUkVBIDEzOC0xMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtQjIgICAoaGV4KQkJRVNTRUdJIFNSTAorMDAwNEIyICAgICAoYmFzZSAxNikJCUVTU0VHSSBTUkwKKwkJCQlWaWEgRGVsIENhdmFyYXRvcmksIDE3CisJCQkJMjAwOTIgQ2luaXNlbGxvIEIuIChNMSkKKwkJCQlJVEFMWQorCQkJCUlUQUxZCisKKzAwLTA0LUIzICAgKGhleCkJCVZpZGVvdGVrLCBJbmMuCiswMDA0QjMgICAgIChiYXNlIDE2KQkJVmlkZW90ZWssIEluYy4KKwkJCQkyNDMgU2hvZW1ha2VyIFJkLgorCQkJCVBvdHRzdG93biBQQSAxOTQ2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQjQgICAoaGV4KQkJQ0lBQworMDAwNEI0ICAgICAoYmFzZSAxNikJCUNJQUMKKwkJCQkxOCBydWUgSm9zZXBoIEJBUkEKKwkJCQk5MjEzMCBJc3N5LWxlcy1Nb2xpbmVhdXgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMDQtQjUgICAoaGV4KQkJRXF1aXRyYWMgQ29ycG9yYXRpb24KKzAwMDRCNSAgICAgKGJhc2UgMTYpCQlFcXVpdHJhYyBDb3Jwb3JhdGlvbgorCQkJCTE5MDUgTi5XLiA4Mm5kIEF2ZW51ZQorCQkJCU1pYW1pIEZMIDMzMTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1CNiAgIChoZXgpCQlTdHJhdGV4IE5ldHdvcmtzLCBJbmMuCiswMDA0QjYgICAgIChiYXNlIDE2KQkJU3RyYXRleCBOZXR3b3JrcywgSW5jLgorCQkJCTY0IFdoaXRlIFJvYWQKKwkJCQlSZXRyZWF0LAorCQkJCUNhcGUgVG93biAgNzk0NQorCQkJCVNPVVRIIEFGUklDQQorCiswMC0wNC1CNyAgIChoZXgpCQlBTUIgaS50LiBIb2xkaW5nCiswMDA0QjcgICAgIChiYXNlIDE2KQkJQU1CIGkudC4gSG9sZGluZworCQkJCVp1aWRlcmhvdXRsYWFuIDQKKwkJCQlQSiBIYWFybGVtIDIwMTIKKwkJCQlORVRIRVJMQU5EUworCiswMC0wNC1COCAgIChoZXgpCQlLdW1haGlyYSBDby4sIEx0ZC4KKzAwMDRCOCAgICAgKGJhc2UgMTYpCQlLdW1haGlyYSBDby4sIEx0ZC4KKwkJCQk0LTM0IFVqaW5haGlnYXNoaSAyLUNob21lCisJCQkJTWluYW1pa3UgSGlyb3NoaW1hCisJCQkJSkFQQU4gNzM0LTg1NjcKKwkJCQlKQVBBTgorCiswMC0wNC1COSAgIChoZXgpCQlTLkkuIFNvdWJvdSwgSW5jLgorMDAwNEI5ICAgICAoYmFzZSAxNikJCVMuSS4gU291Ym91LCBJbmMuCisJCQkJS3VibyBCbGRnLiwgNzAzLCAyLTEyLAorCQkJCU5hbnBlaWRhaS1jaG8sIFNoaWJ1eWEta3UsCisJCQkJVG9reW8gVG9reW8gSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC1CQSAgIChoZXgpCQlLREQgTWVkaWEgV2lsbCBDb3Jwb3JhdGlvbgorMDAwNEJBICAgICAoYmFzZSAxNikJCUtERCBNZWRpYSBXaWxsIENvcnBvcmF0aW9uCisJCQkJMi0xLTIzIE5ha2FtZWd1cm8KKwkJCQlNZWd1cm8tS3UgVG9reW8KKwkJCQkxNTMtMDA2MSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTA0LUJCICAgKGhleCkJCUJhcmRhYyBDb3Jwb3JhdGlvbgorMDAwNEJCICAgICAoYmFzZSAxNikJCUJhcmRhYyBDb3Jwb3JhdGlvbgorCQkJCTQwIExvZyBDYW5vZSBDaXJjbGUKKwkJCQlTdGV2ZW5zdmlsbGUgTUQgMjE2NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUJDICAgKGhleCkJCUdpYW50ZWMsIEluYy4KKzAwMDRCQyAgICAgKGJhc2UgMTYpCQlHaWFudGVjLCBJbmMuCisJCQkJNEYsIE5vLiAzLCBMYW5lIDEyMywKKwkJCQlQYW8gQ2h1bmcgUmQuLCBIc2llbiBUaWVuIENpdHksIFRhaXBlaQorCQkJCVRBSVdBTiAyMzEgVEFJV0FOIDIzMSBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA0LUJEICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAwNEJEICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUJFICAgKGhleCkJCU9wdFhDb24sIEluYy4KKzAwMDRCRSAgICAgKGJhc2UgMTYpCQlPcHRYQ29uLCBJbmMuCisJCQkJUC5PLiBCb3ggMTM0NDkKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTM0NDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUJGICAgKGhleCkJCVZlcnNhTG9naWMgQ29ycC4KKzAwMDRCRiAgICAgKGJhc2UgMTYpCQlWZXJzYUxvZ2ljIENvcnAuCisJCQkJMzg4OCBTdGV3YXJ0IFJkLgorCQkJCUV1Z2VuZSBPUiA5NzQwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQzAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNEMwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUMxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDRDMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1DMiAgIChoZXgpCQlNYWduaXBpeCwgSW5jLgorMDAwNEMyICAgICAoYmFzZSAxNikJCU1hZ25pcGl4LCBJbmMuCisJCQkJMzUzOSBTdC1DaGFybGVzIEJsdmQuLCBTdWl0ZSAyMTIKKwkJCQlLaXJrbGFuZCAoUXVlYmVjKQorCQkJCUNBTkFEQSBIOUgzQzQKKwkJCQlDQU5BREEKKworMDAtMDQtQzMgICAoaGV4KQkJQ0FTVE9SIEluZm9ybWF0aXF1ZQorMDAwNEMzICAgICAoYmFzZSAxNikJCUNBU1RPUiBJbmZvcm1hdGlxdWUKKwkJCQkyLCBSdWUgRHUgS2VmaXIKKwkJCQlTZW5pYSAzNDMKKwkJCQk5NDUzNyBPcmx5IENlZGV4IEZyYW5jZQorCQkJCUZSQU5DRQorCiswMC0wNC1DNCAgIChoZXgpCQlBbGxlbiAmIEhlYXRoIExpbWl0ZWQKKzAwMDRDNCAgICAgKGJhc2UgMTYpCQlBbGxlbiAmIEhlYXRoIExpbWl0ZWQKKwkJCQlLZXJuaWNrIEluZHVzdHJpYWwgRXN0YXRlLCBQZW5yeW4KKwkJCQlDb3Jud2FsbCBFbmdsYW5kIFRSMTAgOUxVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDQtQzUgICAoaGV4KQkJQVNFIFRlY2hub2xvZ2llcywgVVNBCiswMDA0QzUgICAgIChiYXNlIDE2KQkJQVNFIFRlY2hub2xvZ2llcywgVVNBCisJCQkJNjcyMSBCYXVtIERyLgorCQkJCUtub3h2aWxsZSBUTiAzNzkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtQzYgICAoaGV4KQkJWWFtYWhhIE1vdG9yIENvLiwgTHRkLgorMDAwNEM2ICAgICAoYmFzZSAxNikJCVlhbWFoYSBNb3RvciBDby4sIEx0ZC4KKwkJCQlJbmZvcm1hdGlvbiBTeXN0ZW0gRGl2aXNpb24KKwkJCQkyNTAwIFNoaW5nYWkgSXdhdGEsIFNoaXp1b2thCisJCQkJSmFwYW4gWmlwOiA0MzgtODUwMQorCQkJCUpBUEFOCisKKzAwLTA0LUM3ICAgKGhleCkJCU5ldE1vdW50CiswMDA0QzcgICAgIChiYXNlIDE2KQkJTmV0TW91bnQKKwkJCQlQLk8uQi4gMjMyNQorCQkJCUthZGltYSA2MDkyMAorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0wNC1DOCAgIChoZXgpCQlMSUJBIE1hc2NoaW5lbmZhYnJpayBHbWJICiswMDA0QzggICAgIChiYXNlIDE2KQkJTElCQSBNYXNjaGluZW5mYWJyaWsgR21iSAorCQkJCVBPIEJveCAxMTIwCisJCQkJRDk1MTEyIE5haWxhCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMDQtQzkgICAoaGV4KQkJTWljcm8gRWxlY3Ryb24gQ28uLCBMdGQuCiswMDA0QzkgICAgIChiYXNlIDE2KQkJTWljcm8gRWxlY3Ryb24gQ28uLCBMdGQuCisJCQkJMkYgSWJhbmFraS1UYW5ha2EgQmxkZy4KKwkJCQkxLTEtNTkgTmFrYWhvZHVtaSBJYmFyYWtpLXNoaSwgT3Nha2EgNTY3CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC1DQSAgIChoZXgpCQlGcmVlTXMgQ29ycC4KKzAwMDRDQSAgICAgKGJhc2UgMTYpCQlGcmVlTXMgQ29ycC4KKwkJCQlTaGluaGFuIEJsZGcuIDZGLAorCQkJCTQ1LTExIFlvaWRvLURvbmcsIFlvdW5nZGV1bmdwby1rdSwKKwkJCQlTZW91bCAxNTAtNzM2IEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LUNCICAgKGhleCkJCVRkc29mdCBDb21tdW5pY2F0aW9uLCBMdGQuCiswMDA0Q0IgICAgIChiYXNlIDE2KQkJVGRzb2Z0IENvbW11bmljYXRpb24sIEx0ZC4KKwkJCQk2MCBNZWRpbmF0IEhheWVodWRpbSBTdC4KKwkJCQlIZXJ6bGlhIDQ2NzY2CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTA0LUNDICAgKGhleCkJCVBlZWsgVHJhZmZpYyBCLlYuCiswMDA0Q0MgICAgIChiYXNlIDE2KQkJUGVlayBUcmFmZmljIEIuVi4KKwkJCQlQb3N0YnVzIDI1NDIKKwkJCQkzODAwIEdCIEFtZXJzZm9vdAorCQkJCVRoZSBOZXRoZXJsYW5kcworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTA0LUNEICAgKGhleCkJCUluZm9ybWVkaWEgUmVzZWFyY2ggR3JvdXAKKzAwMDRDRCAgICAgKGJhc2UgMTYpCQlJbmZvcm1lZGlhIFJlc2VhcmNoIEdyb3VwCisJCQkJMzkwIFN0LVZhbGxpZXIgRWFzdAorCQkJCVN1aXRlIDIwMworCQkJCVF1ZWJlYyBQUSBHMUsgM1A2IENBTkFEQQorCQkJCUNBTkFEQQorCiswMC0wNC1DRSAgIChoZXgpCQlQYXRyaWEgQWlsb24KKzAwMDRDRSAgICAgKGJhc2UgMTYpCQlQYXRyaWEgQWlsb24KKwkJCQlOYXVsYWthdHUgMworCQkJCUZJTi0zMzEwMCBUYW1wZXJlCisJCQkJRklOTEFORAorCQkJCUZJTkxBTkQKKworMDAtMDQtQ0YgICAoaGV4KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CiswMDA0Q0YgICAgIChiYXNlIDE2KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CisJCQkJMTI4MCBEaXNjIERyaXZlCisJCQkJU2hha29wZWUgTU4gNTUzNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUQwICAgKGhleCkJCVNvZnRsaW5rIHMuci5vLgorMDAwNEQwICAgICAoYmFzZSAxNikJCVNvZnRsaW5rIHMuci5vLgorCQkJCVRvbWtvdmEgNDA5CisJCQkJS3JhbHVweSBuLiBWbHRhdm91CisJCQkJQ3plY2ggUmVwdWJsaWMKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0wNC1EMSAgIChoZXgpCQlEcmV3IFRlY2hub2xvZ2llcywgSW5jLgorMDAwNEQxICAgICAoYmFzZSAxNikJCURyZXcgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMzkxNSBSZXNlYXJjaCBQYXJrIERyCisJCQkJU3VpdGUgQTEwCisJCQkJQW5uIEFyYm9yIE1JIDQ4MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1EMiAgIChoZXgpCQlBZGNvbiBUZWxlbWV0cnkgR21iSAorMDAwNEQyICAgICAoYmFzZSAxNikJCUFkY29uIFRlbGVtZXRyeSBHbWJICisJCQkJSW5rdXN0ci4gMjQKKwkJCQlBLTM0MDAgS2xvc3Rlcm5ldWJ1cmcKKwkJCQlBVVNUUklBCisKKzAwLTA0LUQzICAgKGhleCkJCVRveW9rZWlraSBDby4sIEx0ZC4KKzAwMDREMyAgICAgKGJhc2UgMTYpCQlUb3lva2Vpa2kgQ28uLCBMdGQuCisJCQkJV2FkYSAzOTY3LTEwLCBNYXRzdW1vdG8tQ2l0eQorCQkJCU5hZ2FubyAzOTAtMTI5OCwKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTA0LUQ0ICAgKGhleCkJCVByb3ZpZXcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDA0RDQgICAgIChiYXNlIDE2KQkJUHJvdmlldyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQk2RiwgTm8uIDEsIFBhdS1TaGVuZyBSb2FkCisJCQkJWXVuZyBIbyBDaXR5LCBUYWlwZWksCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC1ENSAgIChoZXgpCQlIaXRhY2hpIEluZm9ybWF0aW9uICYgQ29tbXVuaWNhdGlvbiBFbmdpbmVlcmluZywgTHRkLgorMDAwNEQ1ICAgICAoYmFzZSAxNikJCUhpdGFjaGkgSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9uIEVuZ2luZWVyaW5nLCBMdGQuCisJCQkJUXVlZW4ncyBUb3dlciBCMjFGLCAyLTMtMywgTWluYXRvbWlyYWksCisJCQkJTmlzaGkta3UsIFlva29oYW1hLCAyMjAtNjEyMQorCQkJCUpBUEFOCisKKzAwLTA0LUQ2ICAgKGhleCkJCVRha2FnaSBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAwNEQ2ICAgICAoYmFzZSAxNikJCVRha2FnaSBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCUVsZWN0cm9uaWMgSW5zdHJ1bWVudCBEaXYuCisJCQkJMzUwOCwgS2FtaWlkZS1NaWthZXNoaSwgRXVqaW5vbWl5YS1zaGksCisJCQkJNDE4LTAxMDMgNDE4LTAxMDMgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0wNC1ENyAgIChoZXgpCQlPbWl0ZWMgSW5zdHJ1bWVudGF0aW9uIEx0ZC4KKzAwMDRENyAgICAgKGJhc2UgMTYpCQlPbWl0ZWMgSW5zdHJ1bWVudGF0aW9uIEx0ZC4KKwkJCQlIb3B0b24gSW5kdXN0cmlhbCBFc3QuCisJCQkJTG9uZG9uIFJkLiwgRGV2aXplcyBXaWx0c2hpcmUgU04xMCAyRVUKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDQtRDggICAoaGV4KQkJSVBXaXJlbGVzcywgSW5jLgorMDAwNEQ4ICAgICAoYmFzZSAxNikJCUlQV2lyZWxlc3MsIEluYy4KKwkJCQk0IExhbmRzb3duZSBDb3VydAorCQkJCUJ1bXBlcnMgV2F5IENoaXBwZW5oYW0sIFdpbHRzaGlyZSwKKwkJCQlTTjE0IEdSWiBVSworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA0LUQ5ICAgKGhleCkJCVRpdGFuIEVsZWN0cm9uaWNzLCBJbmMuCiswMDA0RDkgICAgIChiYXNlIDE2KQkJVGl0YW4gRWxlY3Ryb25pY3MsIEluYy4KKwkJCQlSbSA3LCAxMSBGbC4sIE5vLiAzOTgsCisJCQkJSHVhbi1QZWkgUm9hZCwgQ2h1bmctTGksCisJCQkJVGFveXVhbiBUYW95dWFuIFRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtREEgICAoaGV4KQkJUmVsYXggVGVjaG5vbG9neSwgSW5jLgorMDAwNERBICAgICAoYmFzZSAxNikJCVJlbGF4IFRlY2hub2xvZ3ksIEluYy4KKwkJCQlEQkEvIEdyYW5pdGUgRGlnaXRhbAorCQkJCTMxMDEgV2hpcHBsZSBSb2FkCisJCQkJVW5pb24gQ2l0eSBDQSA5NDU4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtREIgICAoaGV4KQkJVGVsbHVzIEdyb3VwIENvcnAuCiswMDA0REIgICAgIChiYXNlIDE2KQkJVGVsbHVzIEdyb3VwIENvcnAuCisJCQkJNEYsIE5vLiAxNSBJbmR1c3RyeSBFLiBSZC4sIElYCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1IEhzaW5jaHUgVGFpd2FuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC1EQyAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMDREQyAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlEZXBhcnRtZW50IDY4MDAKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMCBCcmFwdG9uIE9OIEw2CisJCQkJQ0FOQURBCisJCQkJQ0FOQURBCisKKzAwLTA0LUREICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDRERCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1ERSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA0REUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtREYgICAoaGV4KQkJVGVyYWNvbSBUZWxlbWF0aWNhIEx0ZGEuCiswMDA0REYgICAgIChiYXNlIDE2KQkJVGVyYWNvbSBUZWxlbWF0aWNhIEx0ZGEuCisJCQkJUi4gRmVsaXBlIE5lcmksIDI0NiBDSi4gMzAxCisJCQkJOTA0NDAtMTUwIFBvcnRvIEFsbGVncmUgUlMKKwkJCQlCYXppbAorCQkJCUJSQVpJTAorCiswMC0wNC1FMCAgIChoZXgpCQlQcm9ja2V0IE5ldHdvcmtzCiswMDA0RTAgICAgIChiYXNlIDE2KQkJUHJvY2tldCBOZXR3b3JrcworCQkJCTExMDAgQ2FkaWxsYWMgQ291cnQKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRTEgICAoaGV4KQkJSW5maW5pb3IgTWljcm9zeXN0ZW1zCiswMDA0RTEgICAgIChiYXNlIDE2KQkJSW5maW5pb3IgTWljcm9zeXN0ZW1zCisJCQkJMkYsIEFjY3VmYXIgQmxkZywgMjM0LTEwLAorCQkJCUphbXNpbC1Eb25nLCBTb25ncGEtR3UKKwkJCQlTZW91bCBLT1JFQSAxMzgtMjIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA0LUUyICAgKGhleCkJCVNNQyBOZXR3b3JrcywgSW5jLgorMDAwNEUyICAgICAoYmFzZSAxNikJCVNNQyBOZXR3b3JrcywgSW5jLgorCQkJCTYgSHVnaGVzCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1FMyAgIChoZXgpCQlBY2N0b24gVGVjaG5vbG9neSBDb3JwLgorMDAwNEUzICAgICAoYmFzZSAxNikJCUFjY3RvbiBUZWNobm9sb2d5IENvcnAuCisJCQkJTm8uIDEgQ3JlYXRpb24gUmQuIElJSSwKKwkJCQlTQklQCisJCQkJSHNpbmNodSBIc2luY2h1IFRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtRTQgICAoaGV4KQkJRGFlcnl1bmcgSW5kLiwgSW5jLgorMDAwNEU0ICAgICAoYmFzZSAxNikJCURhZXJ5dW5nIEluZC4sIEluYy4KKwkJCQkjMjE5LTYsIEthc2FuIERvbmcsCisJCQkJS3VtY2h1biBrdSwKKwkJCQlTZW91bCBTZW91bCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNC1FNSAgIChoZXgpCQlHbG9uZXQgU3lzdGVtcywgSW5jLgorMDAwNEU1ICAgICAoYmFzZSAxNikJCUdsb25ldCBTeXN0ZW1zLCBJbmMuCisJCQkJMTFGbC4sIEplaWwgQmxkZy4sIDk0LTQ2LCA3S2EKKwkJCQlZb3VuZ2R1bmdwby1kb25nIFlvbmdkdW5ncG8tS3UgU2VvdWwsIDE1CisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtRTYgICAoaGV4KQkJQmFueWFuIE5ldHdvcmsgUHJpdmF0ZSBMaW1pdGVkCiswMDA0RTYgICAgIChiYXNlIDE2KQkJQmFueWFuIE5ldHdvcmsgUHJpdmF0ZSBMaW1pdGVkCisJCQkJNDQzLCA4dGggRmxvb3IsIEd1bmEgQ29tcGxleAorCQkJCUFubmFzYWxhaSwgQ2hlbm5haS02MDAgMDE4CisJCQkJSU5ESUEKKwkJCQlJTkRJQQorCiswMC0wNC1FNyAgIChoZXgpCQlMaWdodHBvaW50ZSBDb21tdW5pY2F0aW9ucywgSW5jCiswMDA0RTcgICAgIChiYXNlIDE2KQkJTGlnaHRwb2ludGUgQ29tbXVuaWNhdGlvbnMsIEluYworCQkJCTEwMTQwIEJhcm5lcyBDYW55b24gUm9hZAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRTggICAoaGV4KQkJSUVSLCBJbmMuCiswMDA0RTggICAgIChiYXNlIDE2KQkJSUVSLCBJbmMuCisJCQkJNDUwMSBTby4gR2VuZXJhbCBCcnVjZSBEcgorCQkJCVN1aXRlIDUwCisJCQkJVGVtcGxlIFRYIDc2NTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1FOSAgIChoZXgpCQlJbmZpbmlzd2l0Y2ggQ29ycG9yYXRpb24KKzAwMDRFOSAgICAgKGJhc2UgMTYpCQlJbmZpbmlzd2l0Y2ggQ29ycG9yYXRpb24KKwkJCQkxMzQgRmxhbmRlcnMgUm9hZAorCQkJCVdlc3Rib3JvdWdoIE1BIDAxNTgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1FQSAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAwNEVBICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMTEwMDAgV29sZmUgUm9hZCwgTWFpbHN0b3AgNDJMRQorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRUIgICAoaGV4KQkJUGF4b25ldCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNEVCICAgICAoYmFzZSAxNikJCVBheG9uZXQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk0MDQ2IENsaXBwZXIgQ291cnQKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1FQyAgIChoZXgpCQlNZW1vYm94IFNBCiswMDA0RUMgICAgIChiYXNlIDE2KQkJTWVtb2JveCBTQQorCQkJCTEsIFBsYWNlIERhbWUgU3V6YW5uZQorCQkJCTkxMTkwIFNhaW50IEF1YmluCisJCQkJRnJhbmNlCisJCQkJRlJBTkNFCisKKzAwLTA0LUVEICAgKGhleCkJCUJpbGxpb24gRWxlY3RyaWMgQ28uLCBMdGQuCiswMDA0RUQgICAgIChiYXNlIDE2KQkJQmlsbGlvbiBFbGVjdHJpYyBDby4sIEx0ZC4KKwkJCQk4RiwgTm8uMTkyLCBTZWMuMiwgQ2h1bmcgSHNpbmcgUmQuLAorCQkJCUhzaW4gVGllbiBDaXR5LCBUYWlwZWkgSHNpZW4KKwkJCQlUYWl3YW4gVGFpd2FuIFJPQworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDQtRUUgICAoaGV4KQkJTGluY29sbiBFbGVjdHJpYyBDb21wYW55CiswMDA0RUUgICAgIChiYXNlIDE2KQkJTGluY29sbiBFbGVjdHJpYyBDb21wYW55CisJCQkJMjI4MDEgU3QuIENsYWlyIEF2ZW51ZQorCQkJCUNsZXZlbGFuZCBPSCA0NDExNy0xMTk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1FRiAgIChoZXgpCQlQb2xlc3RhciBDb3JwLgorMDAwNEVGICAgICAoYmFzZSAxNikJCVBvbGVzdGFyIENvcnAuCisJCQkJUk0gIzgwMiBTZW9HZW9uIEIvRCwgMTQ4MCwKKwkJCQlHd2FuWWFuZy1Eb25nLCBEb25nQW4tR3UsIEFuWWFuZyBDaXR5LCA0CisJCQkJS29yZWEgKFJPSykKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDQtRjAgICAoaGV4KQkJSW50ZXJuYXRpb25hbCBDb21wdXRlcnMsIEx0ZAorMDAwNEYwICAgICAoYmFzZSAxNikJCUludGVybmF0aW9uYWwgQ29tcHV0ZXJzLCBMdGQKKwkJCQkxIFdlbmxvY2sgV2F5CisJCQkJV2VzdCBHb3J0b24gTWFuY2hlc3RlciwgTTEyIDVEUgorCQkJCVVLCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDQtRjEgICAoaGV4KQkJV2hlcmVOZXQKKzAwMDRGMSAgICAgKGJhc2UgMTYpCQlXaGVyZU5ldAorCQkJCTEwNyBXLiBNY0tpbm5leSBBdmVudWUKKwkJCQlSb2dlcnN2aWxsZSBUTiAzNzg1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRjIgICAoaGV4KQkJUG9seWNvbQorMDAwNEYyICAgICAoYmFzZSAxNikJCVBvbHljb20KKwkJCQkxMDAwIFdlc3QgMTR0aCBTdHJlZXQKKwkJCQlOb3J0aCBWYW5jb3V2ZXIsIEIuQy4KKwkJCQlDYW5hZGEgVjdQM1AzCisJCQkJQ0FOQURBCisKKzAwLTA0LUYzICAgKGhleCkJCUZTIEZPUlRILVNZU1RFTUUgR21iSAorMDAwNEYzICAgICAoYmFzZSAxNikJCUZTIEZPUlRILVNZU1RFTUUgR21iSAorCQkJCUt1ZWZlcnN0ci4gOAorCQkJCUQtNzkyMDYgQnJlaXNhY2gKKwkJCQlHZXJtYW55CisJCQkJR0VSTUFOWQorCiswMC0wNC1GNCAgIChoZXgpCQlJbmZpbml0ZSBFbGVjdHJvbmljcyBJbmMuCiswMDA0RjQgICAgIChiYXNlIDE2KQkJSW5maW5pdGUgRWxlY3Ryb25pY3MgSW5jLgorCQkJCU5vLjQ3OC0xLCBTZWMgMgorCQkJCUNoaW5nIEhhaSBSb2FkIDQwNywgVGFpIENodW5nCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNC1GNSAgIChoZXgpCQlTbm93U2hvcmUgTmV0d29ya3MsIEluYy4KKzAwMDRGNSAgICAgKGJhc2UgMTYpCQlTbm93U2hvcmUgTmV0d29ya3MsIEluYy4KKwkJCQkyODUgQmlsbGVyaWNhIFJvYWQKKwkJCQlDaGVsbXNmb3JkIE1BIDAxODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1GNiAgIChoZXgpCQlBbXBodXMKKzAwMDRGNiAgICAgKGJhc2UgMTYpCQlBbXBodXMKKwkJCQkyMzcyIFF1bWUgRHJpdmUsICNGCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUY3ICAgKGhleCkJCU9tZWdhIEJhbmQsIEluYy4KKzAwMDRGNyAgICAgKGJhc2UgMTYpCQlPbWVnYSBCYW5kLCBJbmMuCisJCQkJOTAyMC1JIENhcGl0YWwgb2YgVGV4YXMgSGdod3kgTgorCQkJCVN1aXRlICMyNzAKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUY4ICAgKGhleCkJCVFVQUxJQ0FCTEUgVFYgSW5kdXN0cmlhIEUgQ29tLiwgTHRkYQorMDAwNEY4ICAgICAoYmFzZSAxNikJCVFVQUxJQ0FCTEUgVFYgSW5kdXN0cmlhIEUgQ29tLiwgTHRkYQorCQkJCUF2LiBKb2FvIFBhdWxvIEFibGFzLCAzMDgKKwkJCQlKYXJkaW0gRGEgR2xvcmlhIC0gQ290aWEgLVNQIENFUCAwNjcxMS0yCisJCQkJQlJBWklMCisKKzAwLTA0LUY5ICAgKGhleCkJCVh0ZXJhIENvbW11bmljYXRpb25zLCBJbmMuCiswMDA0RjkgICAgIChiYXNlIDE2KQkJWHRlcmEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk1MDAgVyBCZXRoYW55IERyaXZlCisJCQkJQWxsZW4gVFggNzUwMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA0LUZBICAgKGhleCkJCU5CUyBUZWNobm9sb2dpZXMgSW5jLgorMDAwNEZBICAgICAoYmFzZSAxNikJCU5CUyBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTcwMyBFdmFucyBBdmVudWUsIFN1aXRlIDQwMAorCQkJCVRvcm9udG8KKwkJCQlPbnRhcmlvICBNOUMgNUU5CisJCQkJQ0FOQURBCisKKzAwLTA0LUZCICAgKGhleCkJCUNvbW10ZWNoLCBJbmMuCiswMDA0RkIgICAgIChiYXNlIDE2KQkJQ29tbXRlY2gsIEluYy4KKwkJCQk5MDExIEUuIDM3dGggU3RyZWV0CisJCQkJV2ljaGl0YSBLUyA2NzIyNi0yMDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNC1GQyAgIChoZXgpCQlTdHJhdHVzIENvbXB1dGVyIChERSksIEluYy4KKzAwMDRGQyAgICAgKGJhc2UgMTYpCQlTdHJhdHVzIENvbXB1dGVyIChERSksIEluYy4KKwkJCQkxMTEgUG93ZGVybWlsbCBSb2FkCisJCQkJTWF5bmFyZCBNQSAwMTc1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRkQgICAoaGV4KQkJSmFwYW4gQ29udHJvbCBFbmdpbmVlcmluZyBDby4sIEx0ZC4KKzAwMDRGRCAgICAgKGJhc2UgMTYpCQlKYXBhbiBDb250cm9sIEVuZ2luZWVyaW5nIENvLiwgTHRkLgorCQkJCTEtNS0xLCBIaWdhc2hpYW1hZ2F3YSwgVGFrYXRzdWtpLXNoaQorCQkJCU9zYWthIDU2OS0wMDEyCisJCQkJSkFQQU4KKworMDAtMDQtRkUgICAoaGV4KQkJUGVsYWdvIE5ldHdvcmtzCiswMDA0RkUgICAgIChiYXNlIDE2KQkJUGVsYWdvIE5ldHdvcmtzCisJCQkJNzAxIEUuIFBsYW5vIFBhcmt3YXkgLSBTdGUuICMyMDUKKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDQtRkYgICAoaGV4KQkJQWNyb25ldCBDby4sIEx0ZC4KKzAwMDRGRiAgICAgKGJhc2UgMTYpCQlBY3JvbmV0IENvLiwgTHRkLgorCQkJCVNhbWFuIEIvRCAyRmwKKwkJCQk4MTEtMTUgQmFuZ2JhZS1Eb25nIFNlb2Noby1rdSwgU2VvdWwKKwkJCQkxMzctMDY0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTAwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDUwMCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0wMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA1MDEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMDIgICAoaGV4KQkJQVBQTEUgQ09NUFVURVIKKzAwMDUwMiAgICAgKGJhc2UgMTYpCQlBUFBMRSBDT01QVVRFUgorCQkJCTIwNjUwIFZBTExFWSBHUkVFTiBEUklWRQorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMDMgICAoaGV4KQkJSUNPTkFHCiswMDA1MDMgICAgIChiYXNlIDE2KQkJSUNPTkFHCisJCQkJQU0gQmFobmhvZiAyCisJCQkJNTU3NjUgQmlya2VuZmVsZAorCQkJCUdFUk1BTlkKKworMDAtMDUtMDQgICAoaGV4KQkJTmFyYXkgSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9uIEVudGVycHJpc2UKKzAwMDUwNCAgICAgKGJhc2UgMTYpCQlOYXJheSBJbmZvcm1hdGlvbiAmIENvbW11bmljYXRpb24gRW50ZXJwcmlzZQorCQkJCTNGIFNhbiBXb28gQmxkZy4sIDE1NDMtMTEKKwkJCQlTZW9jaG8tRG9uZywgU2VvY2hvLUt1LAorCQkJCVNlb3VsIDEzNy0wNzAgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS0wNSAgIChoZXgpCQlTeXN0ZW1zIEludGVncmF0aW9uIFNvbHV0aW9ucywgSW5jLgorMDAwNTA1ICAgICAoYmFzZSAxNikJCVN5c3RlbXMgSW50ZWdyYXRpb24gU29sdXRpb25zLCBJbmMuCisJCQkJMzkyMiBDb2NvbnV0IFBhbG0gRHJpdmUsCisJCQkJU3VpdGUgMTA2CisJCQkJVGFtcGEgRkwgMzM2MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTA2ICAgKGhleCkJCVJlZGRvIE5ldHdvcmtzIEFCCiswMDA1MDYgICAgIChiYXNlIDE2KQkJUmVkZG8gTmV0d29ya3MgQUIKKwkJCQlMaXZkanVyc2dhdGFuIDQKKwkJCQlTRSAxMjEgNjIgSm9oYW5uZXNob3YKKwkJCQlTV0VERU4KKworMDAtMDUtMDcgICAoaGV4KQkJRmluZSBBcHBsaWFuY2UgQ29ycC4KKzAwMDUwNyAgICAgKGJhc2UgMTYpCQlGaW5lIEFwcGxpYW5jZSBDb3JwLgorCQkJCTdGbC4sIE5vLiA0OTksCisJCQkJQ2h1bmctQ2hlbmcgUmQuLCBIc2ludGllbiwgVGFpcGVpCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS0wOCAgIChoZXgpCQlJbmV0Y2FtLCBJbmMuCiswMDA1MDggICAgIChiYXNlIDE2KQkJSW5ldGNhbSwgSW5jLgorCQkJCTEwMTcxIFBhY2lmaWMgTWVzYSBCbHZkLgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMDkgICAoaGV4KQkJQVZPQyBOaXNoaW11cmEgTHRkLgorMDAwNTA5ICAgICAoYmFzZSAxNikJCUFWT0MgTmlzaGltdXJhIEx0ZC4KKwkJCQlKb2dhc2FraSA0LTE2LTE0CisJCQkJTWl5YXpha2ktY2l0eSwgTWl5YXpha2kgODgwLTA5MTcsCisJCQkJSkFQQU4KKworMDAtMDUtMEEgICAoaGV4KQkJSUNTIFNwYQorMDAwNTBBICAgICAoYmFzZSAxNikJCUlDUyBTcGEKKwkJCQlWaWEgUm9tYW5vIEFMCisJCQkJMTAwMTAgU2Nhcm1hZ25vIChUTykKKwkJCQlJVEFMWQorCiswMC0wNS0wQiAgIChoZXgpCQlTSUNPTSBTeXN0ZW1zLCBJbmMuCiswMDA1MEIgICAgIChiYXNlIDE2KQkJU0lDT00gU3lzdGVtcywgSW5jLgorCQkJCTQxNDAgU2t5cm9uIERyaXZlCisJCQkJRG95bGVzdG93biBQQSAxODkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMEMgICAoaGV4KQkJTmV0d29yayBQaG90b25pY3MsIEluYy4KKzAwMDUwQyAgICAgKGJhc2UgMTYpCQlOZXR3b3JrIFBob3RvbmljcywgSW5jLgorCQkJCTQ1MSBBdmlhdGlvbiBCb3VsZXZhcmQKKwkJCQlTYW50YSBSb3NhIENBIDk1NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0wRCAgIChoZXgpCQlNaWRzdHJlYW0gVGVjaG5vbG9naWVzLCBJbmMuCiswMDA1MEQgICAgIChiYXNlIDE2KQkJTWlkc3RyZWFtIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTc3NyAxMDh0aCBBdmUuIE5FCisJCQkJU3VpdGUgMTcwMAorCQkJCUJlbGxldnVlIFdBIDk4MDA0LTUxNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTBFICAgKGhleCkJCTN3YXJlLCBJbmMuCiswMDA1MEUgICAgIChiYXNlIDE2KQkJM3dhcmUsIEluYy4KKwkJCQk3MDEgRS4gTWlkZGxlZmllbGQgUmQuCisJCQkJU3VpdGUgMzAwCisJCQkJTXQuIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTBGICAgKGhleCkJCVRhbmFrYSBTL1MgTHRkLgorMDAwNTBGICAgICAoYmFzZSAxNikJCVRhbmFrYSBTL1MgTHRkLgorCQkJCTE5NDIgTm9tdXJhIEhpcm9va2EKKwkJCQlTaGlvamlyaS1DaXR5CisJCQkJTmFnYW5vIDM5OS0wNzAyIAorCQkJCUpBUEFOCisKKzAwLTA1LTEwICAgKGhleCkJCUluZmluaXRlIFNoYW5naGFpIENvbW11bmljYXRpb24gVGVybWluYWxzIEx0ZC4KKzAwMDUxMCAgICAgKGJhc2UgMTYpCQlJbmZpbml0ZSBTaGFuZ2hhaSBDb21tdW5pY2F0aW9uIFRlcm1pbmFscyBMdGQuCisJCQkJNzc3IENodW5naWFvIFJvYWQsIFB1ZG9uZworCQkJCVNoYW5naGFpIDIwMTIwNiwKKwkJCQlDSElOQQorCiswMC0wNS0xMSAgIChoZXgpCQlDb21wbGVtZW50YXJ5IFRlY2hub2xvZ2llcyBMdGQKKzAwMDUxMSAgICAgKGJhc2UgMTYpCQlDb21wbGVtZW50YXJ5IFRlY2hub2xvZ2llcyBMdGQKKwkJCQlDb210ZWNoIEhvdXNlLCAyOCBNYW5jaGVzdGVyIFJvYWQKKwkJCQlXZXN0aG91Z2h0b24gQk9MVE9OCisJCQkJQkw1IDNRSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA1LTEyICAgKGhleCkJCU1lc2hOZXR3b3JrcywgSW5jLgorMDAwNTEyICAgICAoYmFzZSAxNikJCU1lc2hOZXR3b3JrcywgSW5jLgorCQkJCTQ4NSBLZWxsZXIgUmQuLCBTdWl0ZSAyNTAKKwkJCQlNYWl0bGFuZCBGTCAzMjc1MS03NTM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0xMyAgIChoZXgpCQlWVExpbnggTXVsdGltZWRpYSBTeXN0ZW1zLCBJbmMuCiswMDA1MTMgICAgIChiYXNlIDE2KQkJVlRMaW54IE11bHRpbWVkaWEgU3lzdGVtcywgSW5jLgorCQkJCTg0MDEgQ29sZXN2aWxsZSBSb2FkLAorCQkJCVN1aXRlIDc1MAorCQkJCVNpbHZlciBTcHJpbmcgTUQgMjA5MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTE0ICAgKGhleCkJCUtEVCBTeXN0ZW1zIENvLiwgTHRkLgorMDAwNTE0ICAgICAoYmFzZSAxNikJCUtEVCBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCTEwMi02LCBDaG9idS1MaSwgTW9oeXVuLU15dW4sCisJCQkJWW9uZ2luLUNpdHksIEt5dW5na2ktRG8sCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTE1ICAgKGhleCkJCU51YXJrIENvLiwgTHRkLgorMDAwNTE1ICAgICAoYmFzZSAxNikJCU51YXJrIENvLiwgTHRkLgorCQkJCTEyRiwgQW55YW5nIEsgY2VudGVyLCAxNTkxLTksIEJ1cmltLWRvbmcKKwkJCQlEb25nYW4tZ3UsIEFueWFuZy1zaSwKKwkJCQlHdW5nZ2ktZG8gNDMxLTA2NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS0xNiAgIChoZXgpCQlTTUFSVCBNb2R1bGFyIFRlY2hub2xvZ2llcworMDAwNTE2ICAgICAoYmFzZSAxNikJCVNNQVJUIE1vZHVsYXIgVGVjaG5vbG9naWVzCisJCQkJNDMwNSBDdXNoaW5nIFBrd3kKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0xNyAgIChoZXgpCQlTaGVsbGNvbW0sIEluYy4KKzAwMDUxNyAgICAgKGJhc2UgMTYpCQlTaGVsbGNvbW0sIEluYy4KKwkJCQlSbSAjNjEyMiBFVFJJIFRCSSBDZW50ZXIsIDEsCisJCQkJRW9ldW4tRG9uZywgWXVzb25nLUd1LCBUYWVqb24sIDMwNS0zMzMsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTE4ICAgKGhleCkJCUp1cGl0ZXJzIFRlY2hub2xvZ3kKKzAwMDUxOCAgICAgKGJhc2UgMTYpCQlKdXBpdGVycyBUZWNobm9sb2d5CisJCQkJUE8gQm94IDEyNjkzCisJCQkJRWxpemFiZXRoIFN0cmVldCBCcmlzYmFuZSBRTEQgNDAwMgorCQkJCUFVU1RSQUxJQQorCiswMC0wNS0xOSAgIChoZXgpCQlTaWVtZW5zIEJ1aWxkaW5nIFRlY2hub2xvZ2llcyBBRywKKzAwMDUxOSAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEJ1aWxkaW5nIFRlY2hub2xvZ2llcyBBRywKKwkJCQlDZXJiZXJ1cyBEaXZpc2lvbgorCQkJCWFsdGUgTGFuZHN0cmFzc2UgNDExIENILTg3MDggTWFlbm5lZG9yZgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA1LTFBICAgKGhleCkJCTNDb20gRXVyb3BlIEx0ZC4KKzAwMDUxQSAgICAgKGJhc2UgMTYpCQkzQ29tIEV1cm9wZSBMdGQuCisJCQkJM0NvbSBDZW50cmUsIEJvdW5kYXJ5IFdheSwKKwkJCQlIZW1wc3RlYWQsIEhlcnRzLCBIUDIgN1lVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDUtMUIgICAoaGV4KQkJTWFnaWMgQ29udHJvbCBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDA1MUIgICAgIChiYXNlIDE2KQkJTWFnaWMgQ29udHJvbCBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNkYsIE5vLiAxMjAtMTEgQ2h1bmcgU2hhbiBSZC4KKwkJCQlTZWMgMywgQ2h1bmcgSG8gVGFpcGVpCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS0xQyAgIChoZXgpCQlYbmV0IFRlY2hub2xvZ3kgQ29ycC4KKzAwMDUxQyAgICAgKGJhc2UgMTYpCQlYbmV0IFRlY2hub2xvZ3kgQ29ycC4KKwkJCQk5Ri0xNiwgTm8uIDEyLCBMYW5lIDYwOSwKKwkJCQlTZWMuIDUsIENodW5nIEhzaW4gUm9hZCwgU2FuIENodW5nIENpdHksCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS0xRCAgIChoZXgpCQlBaXJvY29uLCBJbmMuCiswMDA1MUQgICAgIChiYXNlIDE2KQkJQWlyb2NvbiwgSW5jLgorCQkJCTExNiBIb3VnaHRvbiBMYW5lCisJCQkJQm94Ym9ybyBNQSAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMUUgICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCiswMDA1MUUgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJMTc0NSBUZWNobm9sb2d5IERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTFGICAgKGhleCkJCVRhaWppbiBNZWRpYSBDby4sIEx0ZC4KKzAwMDUxRiAgICAgKGJhc2UgMTYpCQlUYWlqaW4gTWVkaWEgQ28uLCBMdGQuCisJCQkJNjQwLTggVHVuZ2Nob24tRG9uZworCQkJCUthbmdzZW8tR3UsCisJCQkJU2VvdWwgIDE1Ny0wMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtMjAgICAoaGV4KQkJU21hcnRyb25peCwgSW5jLgorMDAwNTIwICAgICAoYmFzZSAxNikJCVNtYXJ0cm9uaXgsIEluYy4KKwkJCQkyMjY4NSBUaHJlZSBOb3RjaCBSZC4KKwkJCQlDYWxpZm9ybmlhIE1EIDIwNjE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0yMSAgIChoZXgpCQlDb250cm9sIE1pY3Jvc3lzdGVtcworMDAwNTIxICAgICAoYmFzZSAxNikJCUNvbnRyb2wgTWljcm9zeXN0ZW1zCisJCQkJNDggU3RlYWNpZSBEcml2ZQorCQkJCU9udGFyaW8gIEsySyAyQTkKKwkJCQlDQU5BREEKKworMDAtMDUtMjIgICAoaGV4KQkJTEVBKkQgQ29ycG9yYXRpb24sIEluYy4KKzAwMDUyMiAgICAgKGJhc2UgMTYpCQlMRUEqRCBDb3Jwb3JhdGlvbiwgSW5jLgorCQkJCUFkdmF0ZWNoIEJsZGcuCisJCQkJVGVyYWRpb24gSW5kLiBQYXJrIEQuTi4gTWlzZ2F2LCAyMDE3OQorCQkJCUlTUkFFTAorCiswMC0wNS0yMyAgIChoZXgpCQlBVkwgTGlzdCBHbWJICiswMDA1MjMgICAgIChiYXNlIDE2KQkJQVZMIExpc3QgR21iSAorCQkJCUhhbnMgTGlzdCBQbGF0eiAxCisJCQkJQS04MDIwIEdyYXoKKwkJCQlBVVNUUklBCisKKzAwLTA1LTI0ICAgKGhleCkJCUJUTCBTeXN0ZW0gKEhLKSBMaW1pdGVkCiswMDA1MjQgICAgIChiYXNlIDE2KQkJQlRMIFN5c3RlbSAoSEspIExpbWl0ZWQKKwkJCQkxNC9GLiwgQmxrLiBCLCBWaXRhIFRvd2VyLAorCQkJCTI5IFdvbmcgQ2h1ayBIYW5nIFJkLiwKKwkJCQlBYmVyZGVlbiAgCisJCQkJSE9ORyBLT05HCisKKzAwLTA1LTI1ICAgKGhleCkJCVB1cmV0ZWsgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzAwMDUyNSAgICAgKGJhc2UgMTYpCQlQdXJldGVrIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJTm8uIDE0LCA0IEZsci4gTGFuZSAyMzUKKwkJCQlQYW8gQ2hpYW8gUm9hZCBIc2luIFRpZW4sIFRhaXBlaSBIc2llbgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDUtMjYgICAoaGV4KQkJSVBBUyBHbWJICiswMDA1MjYgICAgIChiYXNlIDE2KQkJSVBBUyBHbWJICisJCQkJR3JhYmVuc3RyLiAxNDlhCisJCQkJNDcwNTcgRHVpc2J1cmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA1LTI3ICAgKGhleCkJCVNKIFRlayBDby4gTHRkCiswMDA1MjcgICAgIChiYXNlIDE2KQkJU0ogVGVrIENvLiBMdGQKKwkJCQlIbyBnYWUgRG9uZyA5NzYtNSwgRG9uZyBBbiBLdSwKKwkJCQlBbiB5YW5nIENpdHksIEt5dW5nIEtlZSBEbywKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtMjggICAoaGV4KQkJTmV3IEZvY3VzLCBJbmMuCiswMDA1MjggICAgIChiYXNlIDE2KQkJTmV3IEZvY3VzLCBJbmMuCisJCQkJMjYzMCBXYWxzaCBBdmUuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTI5ICAgKGhleCkJCVNoYW5naGFpIEJyb2FkYW4gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLiwgTHRkCiswMDA1MjkgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgQnJvYWRhbiBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQkxNUYsIFN1bnRpbWUgSW50ZXJuYXRpb25hbCBNYW5zaW9uCisJCQkJTm8uIDQ1MCBGdXNoYW4gUm9hZCwgUHVkb25nIERpc3RyaWN0LCBTaAorCQkJCTIwMDEyMgorCQkJCUNISU5BCisKKzAwLTA1LTJBICAgKGhleCkJCUlrZWdhbWkgVHN1c2hpbmtpIENvLiwgTHRkLgorMDAwNTJBICAgICAoYmFzZSAxNikJCUlrZWdhbWkgVHN1c2hpbmtpIENvLiwgTHRkLgorCQkJCTUtNi0xNiBJa2VnYW1pIE9odGEta3UsCisJCQkJVG9reW8KKwkJCQkxNDYtODU2NworCQkJCUpBUEFOCisKKzAwLTA1LTJCICAgKGhleCkJCUhPUklCQSwgTHRkLgorMDAwNTJCICAgICAoYmFzZSAxNikJCUhPUklCQSwgTHRkLgorCQkJCTIgTWl5YW5vaGlnYXNoaSwgS2lzc2hvaW4sCisJCQkJTWluYW1pLWt1LCBLeW90bworCQkJCTYwMS04NTEwCisJCQkJSkFQQU4KKworMDAtMDUtMkMgICAoaGV4KQkJU3VwcmVtZSBNYWdpYyBDb3Jwb3JhdGlvbgorMDAwNTJDICAgICAoYmFzZSAxNikJCVN1cHJlbWUgTWFnaWMgQ29ycG9yYXRpb24KKwkJCQlTdW4gVG93ZXJzIENlbnRlciBCbGRnLiwgMTNGCisJCQkJMi0xMS0yMiwgU2FuZ2VuLWpheWEsIFNldGFnYXlhLWt1LCBUb2t5bworCQkJCTE1NC0wMDI0CisJCQkJSkFQQU4KKworMDAtMDUtMkQgICAoaGV4KQkJWm9sdHJpeCBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKzAwMDUyRCAgICAgKGJhc2UgMTYpCQlab2x0cml4IEludGVybmF0aW9uYWwgTGltaXRlZAorCQkJCVJvb20gNzAxIFBvIEhpbmcgQ2VudHJlLAorCQkJCTE4IFdhbiBDaGl1IFJvYWQsIEtvd2xvb24sCisJCQkJSE9ORyBLT05HCisKKzAwLTA1LTJFICAgKGhleCkJCUNpbnRhIE5ldHdvcmtzCiswMDA1MkUgICAgIChiYXNlIDE2KQkJQ2ludGEgTmV0d29ya3MKKwkJCQkzMDEwIE5vcnRoIEZpcnN0IFN0cmVldAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0yRiAgIChoZXgpCQlMZXZpdG9uIE5ldHdvcmsgU29sdXRpb25zCiswMDA1MkYgICAgIChiYXNlIDE2KQkJTGV2aXRvbiBOZXR3b3JrIFNvbHV0aW9ucworCQkJCTIyMjIgMjIybmQgU3RyZWV0IFMuRS4KKwkJCQlCb3RoZWxsIFdBIDk4MDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0zMCAgIChoZXgpCQlBbmRpYW1vIFN5c3RlbXMsIEluYy4KKzAwMDUzMCAgICAgKGJhc2UgMTYpCQlBbmRpYW1vIFN5c3RlbXMsIEluYy4KKwkJCQkxNDE3MSBUZWVybGluayBXYXkKKwkJCQlTYXJhdG9nYSBDQSA5NTA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtMzEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNTMxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTMyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDUzMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS0zMyAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKzAwMDUzMyAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTM0ICAgKGhleCkJCU5vcnRoc3RhciBFbmdpbmVlcmluZyBMdGQuCiswMDA1MzQgICAgIChiYXNlIDE2KQkJTm9ydGhzdGFyIEVuZ2luZWVyaW5nIEx0ZC4KKwkJCQlQLk8uIEJveCA0MAorCQkJCUhlbmxleS1vbi1UaGFtZXMgT3hvbiBSRzkgNkFFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDUtMzUgICAoaGV4KQkJQ2hpcCBQQyBMdGQuCiswMDA1MzUgICAgIChiYXNlIDE2KQkJQ2hpcCBQQyBMdGQuCisJCQkJMjAgQS5MLiBNb3R6a2luIFN0LgorCQkJCVRvcGF6IEhvdXNlLCBOYWh1bSBIYXQgNSAsIFAuTy4gQm94IDQKKwkJCQlUaXJhdCBDYXJtZWwgIDM5MTAwCisJCQkJSVNSQUVMCisKKzAwLTA1LTM2ICAgKGhleCkJCURhbmFtIENvbW11bmljYXRpb25zLCBJbmMuCiswMDA1MzYgICAgIChiYXNlIDE2KQkJRGFuYW0gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk5MDAtMywgSG9reWUtZG9uZywgRG9uZ2FuLWd1LAorCQkJCUFueWFuZywgS3l1bmdraS1kbywgNDMxLTA4MiwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtMzcgICAoaGV4KQkJTmV0cyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwNTM3ICAgICAoYmFzZSAxNikJCU5ldHMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkjQjEgWXVuZ0p1biBCbGRnLgorCQkJCTE1NC0xMCBTYW5zdW5nLURvbmcgS2FuZ25hbS1HdQorCQkJCVNlb3VsIDEzNS0wOTAgIDEzNS0wOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtMzggICAoaGV4KQkJTWVyaWx1cywgSW5jLgorMDAwNTM4ICAgICAoYmFzZSAxNikJCU1lcmlsdXMsIEluYy4KKwkJCQkjMzA3LTQ2MTY1IFlhbGUgUm9hZAorCQkJCUNoaWxpd2FjaywgQkMKKwkJCQlWMlAgMlAyCisJCQkJQ0FOQURBCisKKzAwLTA1LTM5ICAgKGhleCkJCUEgQnJhbmQgTmV3IFdvcmxkIGluIFN3ZWRlbiBBQgorMDAwNTM5ICAgICAoYmFzZSAxNikJCUEgQnJhbmQgTmV3IFdvcmxkIGluIFN3ZWRlbiBBQgorCQkJCUJveCAxMjIzCisJCQkJU0UtMTY0IDI4IEtJU1RBCisJCQkJU1dFREVOCisKKzAwLTA1LTNBICAgKGhleCkJCVdpbGxvd2dsZW4gU2VydmljZXMgUHRlIEx0ZAorMDAwNTNBICAgICAoYmFzZSAxNikJCVdpbGxvd2dsZW4gU2VydmljZXMgUHRlIEx0ZAorCQkJCTE1MSBMb3JvbmcgQ2h1YW4sCisJCQkJTmV3IFRlY2ggUGFyayAjMDUtMDcsCisJCQkJNTU2NzQxCisJCQkJU0lOR0FQT1JFCisKKzAwLTA1LTNCICAgKGhleCkJCUhhcmJvdXIgTmV0d29ya3MgTHRkLiwgQ28uIEJlaWppbmcKKzAwMDUzQiAgICAgKGJhc2UgMTYpCQlIYXJib3VyIE5ldHdvcmtzIEx0ZC4sIENvLiBCZWlqaW5nCisJCQkJMTMvRiwgSml1TGluZyBCdWlsZGluZywgTm8uIDIxLAorCQkJCVhpU2FuSHVhbiBOb3J0aCBSZC4sIEJlaWppbmcKKwkJCQkxMDAwODkKKwkJCQlDSElOQQorCiswMC0wNS0zQyAgIChoZXgpCQlYaXJjb20KKzAwMDUzQyAgICAgKGJhc2UgMTYpCQlYaXJjb20KKwkJCQkyMzAwIENvcnBvcmF0ZSBDZW50ZXIgRHIuCisJCQkJVGhvdXNhbmQgT2FrcyBDQSA5MTMyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtM0QgICAoaGV4KQkJQWdlcmUgU3lzdGVtcworMDAwNTNEICAgICAoYmFzZSAxNikJCUFnZXJlIFN5c3RlbXMKKwkJCQkxMzcxIE1jQ2FydGh5IEJsdmQuCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTNFICAgKGhleCkJCUtJRCBTeXN0ZW1lIEdtYkgKKzAwMDUzRSAgICAgKGJhc2UgMTYpCQlLSUQgU3lzdGVtZSBHbWJICisJCQkJTHVuZWJ1cmdlciBTY2hhbnplIDMwCisJCQkJMjE2MTQgQnV4dGVodWRlCisJCQkJR0VSTUFOWQorCiswMC0wNS0zRiAgIChoZXgpCQlWaXNpb25UZWssIEluYy4KKzAwMDUzRiAgICAgKGJhc2UgMTYpCQlWaXNpb25UZWssIEluYy4KKwkJCQkxMTc1IExha2VzaWRlIERyLgorCQkJCUd1cm5lZSBJTCA2MDAzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNDAgICAoaGV4KQkJRkFTVCBDb3Jwb3JhdGlvbgorMDAwNTQwICAgICAoYmFzZSAxNikJCUZBU1QgQ29ycG9yYXRpb24KKwkJCQkyNzkxLTUgU2hpbW8tVHN1cnVtYQorCQkJCVlhbWF0byBLYW5hZ2F3YQorCQkJCTI0Mi0wMDAxCisJCQkJSkFQQU4KKworMDAtMDUtNDEgICAoaGV4KQkJQWR2YW5jZWQgU3lzdGVtcyBDby4sIEx0ZC4KKzAwMDU0MSAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCTItOS03IE5pc2hpa2ljaG8sCisJCQkJVGFjaGlrYXdhLXNoaSwgVG9reW8KKwkJCQkxOTAtMDAyMgorCQkJCUpBUEFOCisKKzAwLTA1LTQyICAgKGhleCkJCU90YXJpLCBJbmMuCiswMDA1NDIgICAgIChiYXNlIDE2KQkJT3RhcmksIEluYy4KKwkJCQk0LTMzLTMgS29rdXJ5by1jaG8sCisJCQkJQ2hvZnUtc2hpLCBUb2t5byAxODItMDAyMiwKKwkJCQlKQVBBTgorCiswMC0wNS00MyAgIChoZXgpCQlJUSBXaXJlbGVzcyBHbWJICiswMDA1NDMgICAgIChiYXNlIDE2KQkJSVEgV2lyZWxlc3MgR21iSAorCQkJCUNhcmwtU2NoZWVsZS1TdHIuIDE0CisJCQkJRC0xMjQ4OSBCZXJsaW4KKwkJCQlHRVJNQU5ZCisKKzAwLTA1LTQ0ICAgKGhleCkJCVZhbGxleSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDU0NCAgICAgKGJhc2UgMTYpCQlWYWxsZXkgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTAwNiBXZXN0IENvbGxlZ2UgQXZlLgorCQkJCVN1aXRlIDIwMAorCQkJCVN0YXRlIENvbGxlZ2UgUEEgMTY4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTQ1ICAgKGhleCkJCUludGVybmV0IFBob3RvbmljcworMDAwNTQ1ICAgICAoYmFzZSAxNikJCUludGVybmV0IFBob3RvbmljcworCQkJCTEwMzAgQnJvYWQgU3QuLCAybmQgRmxvb3IKKwkJCQlTaHJld3NidXJ5IE5KIDA3NzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS00NiAgIChoZXgpCQlLRERJIE5ldHdvcmsgJiBTb2x1bHRpb25zIEluYy4KKzAwMDU0NiAgICAgKGJhc2UgMTYpCQlLRERJIE5ldHdvcmsgJiBTb2x1bHRpb25zIEluYy4KKwkJCQkyLTMtMSwgTmlzaGlzaGluanVua3Uta3UsCisJCQkJVG9reW8gMTYzLTA5MDcKKwkJCQlKQVBBTgorCiswMC0wNS00NyAgIChoZXgpCQlTdGFyZW50IE5ldHdvcmtzCiswMDA1NDcgICAgIChiYXNlIDE2KQkJU3RhcmVudCBOZXR3b3JrcworCQkJCTMwIEludGVybmF0aW9uYWwgUGxhY2UKKwkJCQlUZXdrc2J1cnkgTUEgMDE4NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTQ4ICAgKGhleCkJCURpc2NvIENvcnBvcmF0aW9uCiswMDA1NDggICAgIChiYXNlIDE2KQkJRGlzY28gQ29ycG9yYXRpb24KKwkJCQkxMy0xMSBPbW9yaS1LaXRhIDItY2hvbWUKKwkJCQlPdGEta3UgVG9reW8gMTQzLTg1ODAKKwkJCQlKQVBBTgorCiswMC0wNS00OSAgIChoZXgpCQlTYWxpcmEgT3B0aWNhbCBOZXR3b3JrIFN5c3RlbXMKKzAwMDU0OSAgICAgKGJhc2UgMTYpCQlTYWxpcmEgT3B0aWNhbCBOZXR3b3JrIFN5c3RlbXMKKwkJCQkyNjk0IE9yY2hhcmQgUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS00QSAgIChoZXgpCQlBcmlvIERhdGEgTmV0d29ya3MsIEluYy4KKzAwMDU0QSAgICAgKGJhc2UgMTYpCQlBcmlvIERhdGEgTmV0d29ya3MsIEluYy4KKwkJCQkyODkwIFphbmtlciBSb2FkLCBTdWl0ZSAyMDMKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNEIgICAoaGV4KQkJRWF0b24gQXV0b21hdGlvbiBBRworMDAwNTRCICAgICAoYmFzZSAxNikJCUVhdG9uIEF1dG9tYXRpb24gQUcKKwkJCQlTcGlubmVyZWlzdHJhc3NlIDgKKwkJCQlTdC5HYWxsZW4gIDkwMDggCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMDUtNEMgICAoaGV4KQkJUkYgSW5ub3ZhdGlvbnMgUHR5IEx0ZAorMDAwNTRDICAgICAoYmFzZSAxNikJCVJGIElubm92YXRpb25zIFB0eSBMdGQKKwkJCQkyMiBCb3VsZGVyIFJvYWQKKwkJCQlNYWxhZ2EgV0EgIDYwOTAKKwkJCQlBVVNUUkFMSUEKKworMDAtMDUtNEQgICAoaGV4KQkJQnJhbnMgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA1NEQgICAgIChiYXNlIDE2KQkJQnJhbnMgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNTAxIEJvcmFtYWUgQWNhZGVteSBUb3dlcgorCQkJCTM5NS02OSBTaGluYWViYW5nLURvbmcgVG9uZ2phay1HdSBTZW91bAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS00RSAgIChoZXgpCQlQaGlsaXBzCiswMDA1NEUgICAgIChiYXNlIDE2KQkJUGhpbGlwcworCQkJCTEwMDAgV2VzdCBNYXVkZSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUtMjgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNEYgICAoaGV4KQkJUFJJVkFURQorMDAwNTRGICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wNS01MCAgIChoZXgpCQlWY29tbXMgQ29ubmVjdCBMaW1pdGVkCiswMDA1NTAgICAgIChiYXNlIDE2KQkJVmNvbW1zIENvbm5lY3QgTGltaXRlZAorCQkJCTc1IFRoZSBFc3BsYW5hZGUsIExldmVsIDMKKwkJCQlQTyBCb3ggMzgtOTIwCisJCQkJV2VsbGluZ3RvbiBNYWlsIENlbnRyZSA1MDQ1IFdlbGxpbmd0b24gCisJCQkJTkVXIFpFQUxBTkQKKworMDAtMDUtNTEgICAoaGV4KQkJRiAmIFMgRWxla3Ryb25payBTeXN0ZW1lIEdtYkgKKzAwMDU1MSAgICAgKGJhc2UgMTYpCQlGICYgUyBFbGVrdHJvbmlrIFN5c3RlbWUgR21iSAorCQkJCVVudGVyZSBXYWxkcGxhZXR6ZSAyMworCQkJCUQtNzA1NjkgU3R1dHRnYXJ0CisJCQkJR0VSTUFOWQorCiswMC0wNS01MiAgIChoZXgpCQlYeWNvdGVjIENvbXB1dGVyIEdtYkgKKzAwMDU1MiAgICAgKGJhc2UgMTYpCQlYeWNvdGVjIENvbXB1dGVyIEdtYkgKKwkJCQlLYXJsLUhlaW56LUJlY2t1cnRzLVN0ci4gNAorCQkJCUQtNTI0MjggSnVsaWNoCisJCQkJR0VSTUFOWQorCiswMC0wNS01MyAgIChoZXgpCQlEVkMgQ29tcGFueSwgSW5jLgorMDAwNTUzICAgICAoYmFzZSAxNikJCURWQyBDb21wYW55LCBJbmMuCisJCQkJMTAyMDAgSHd5IDI5MCBXLgorCQkJCUF1c3RpbiBUWCA3ODIzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNTQgICAoaGV4KQkJUmFuZ2VzdGFyIFdpcmVsZXNzCiswMDA1NTQgICAgIChiYXNlIDE2KQkJUmFuZ2VzdGFyIFdpcmVsZXNzCisJCQkJOTU2NSBTb3F1ZWwgRHJpdmUsIFN1aXRlIDEwMAorCQkJCUFwdG9zIENBIDk1MDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS01NSAgIChoZXgpCQlKYXBhbiBDYXNoIE1hY2hpbmUgQ28uLCBMdGQuCiswMDA1NTUgICAgIChiYXNlIDE2KQkJSmFwYW4gQ2FzaCBNYWNoaW5lIENvLiwgTHRkLgorCQkJCU5vLiAzLTE1LCAyLWNob21lLCBOaXNoaXdha2ksCisJCQkJSGlyYW5vLWt1LCBPc2FrYQorCQkJCTU0Ny0wMDM1CisJCQkJSkFQQU4KKworMDAtMDUtNTYgICAoaGV4KQkJMzYwIFN5c3RlbXMKKzAwMDU1NiAgICAgKGJhc2UgMTYpCQkzNjAgU3lzdGVtcworCQkJCTMxMzU1IEFnb3VyYSBSb2FkCisJCQkJV2VzdGxha2UgVmlsbGFnZSBDQSA5MTM2MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNTcgICAoaGV4KQkJQWdpbGUgVFYgQ29ycG9yYXRpb24KKzAwMDU1NyAgICAgKGJhc2UgMTYpCQlBZ2lsZSBUViBDb3Jwb3JhdGlvbgorCQkJCTMzMyBSYXZlbnN3b29kIEF2ZS4sCisJCQkJQnVpbGRpbmcgMjAyCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNTggICAoaGV4KQkJU3luY2hyb25vdXMsIEluYy4KKzAwMDU1OCAgICAgKGJhc2UgMTYpCQlTeW5jaHJvbm91cywgSW5jLgorCQkJCTc3IExhcyBDb2xpbmFzIExhbmUKKwkJCQlTYW4gSm9zZSBDQSA5NTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNTkgICAoaGV4KQkJSW50cmFjb20gUy5BLgorMDAwNTU5ICAgICAoYmFzZSAxNikJCUludHJhY29tIFMuQS4KKwkJCQkxOSA1IEtNIE1hcmtvcG91bG91IEF2ZS4KKwkJCQkxOTAwMiBQZWFuaWEKKwkJCQlBdHRpa2EgIAorCQkJCUdSRUVDRQorCiswMC0wNS01QSAgIChoZXgpCQlQb3dlciBEc2luZSBMdGQuCiswMDA1NUEgICAgIChiYXNlIDE2KQkJUG93ZXIgRHNpbmUgTHRkLgorCQkJCTEgSGFuYWdhciBTdC4sIFAuTy4gQm94IDcyMjAKKwkJCQlOZXZlIE5lJ2VtYW4gSW5kdXN0cmlhbCBab25lIEhvZCBIYXNoYXJvCisJCQkJSVNSQUVMCisKKzAwLTA1LTVCICAgKGhleCkJCUNoYXJsZXMgSW5kdXN0cmllcywgTHRkLgorMDAwNTVCICAgICAoYmFzZSAxNikJCUNoYXJsZXMgSW5kdXN0cmllcywgTHRkLgorCQkJCTU2MDAgQXBvbGxvIERyLgorCQkJCVJvbGxpbmcgTWVhZG93cyBJTCA2MDAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNUMgICAoaGV4KQkJS293YSBDb21wYW55LCBMdGQuCiswMDA1NUMgICAgIChiYXNlIDE2KQkJS293YSBDb21wYW55LCBMdGQuCisJCQkJQ2hvZnVnYW9rYSAzLTMtMSwKKwkJCQlDaG9mdS1zaSwgVG9reW8sCisJCQkJMTgyLTAwMjEKKwkJCQlKQVBBTgorCiswMC0wNS01RCAgIChoZXgpCQlELUxpbmsgU3lzdGVtcywgSW5jLgorMDAwNTVEICAgICAoYmFzZSAxNikJCUQtTGluayBTeXN0ZW1zLCBJbmMuCisJCQkJNTMgRGlzY292ZXJ5IERyLgorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNUUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNTVFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTVGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDU1RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS02MCAgIChoZXgpCQlMRUFERVIgQ09NTS5DTy4sIExURAorMDAwNTYwICAgICAoYmFzZSAxNikJCUxFQURFUiBDT01NLkNPLiwgTFRECisJCQkJMjM0LCBLb21hZS1yaSwgS2loZXVuZy1ldXAsCisJCQkJWW91bmdzaW4tc2ksIEt5dW5na2ktZG8sCisJCQkJNDQ5LTkwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS02MSAgIChoZXgpCQluYWMgSW1hZ2UgVGVjaG5vbG9neSwgSW5jLgorMDAwNTYxICAgICAoYmFzZSAxNikJCW5hYyBJbWFnZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJOC03IFNhbmJhbi1jaG8sIENoaXlvZGEta3UsCisJCQkJVG9reW8sIDEwMi0wMDc1CisJCQkJSkFQQU4KKworMDAtMDUtNjIgICAoaGV4KQkJRGlnaXRhbCBWaWV3IExpbWl0ZWQKKzAwMDU2MiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFZpZXcgTGltaXRlZAorCQkJCTIyMDEgTmFuIFlhbmcgUGxhemEsCisJCQkJNTcgSHVuZ3RvIFJvYWQsIEt3dW4gVG9uZywKKwkJCQlLb3dsb29uICAKKwkJCQlIT05HIEtPTkcKKworMDAtMDUtNjMgICAoaGV4KQkJSi1Xb3JrcywgSW5jLgorMDAwNTYzICAgICAoYmFzZSAxNikJCUotV29ya3MsIEluYy4KKwkJCQkxMjMyOCBHbGFkc3RvbmUgU3QuICMxCisJCQkJU3lsbW9yIENBIDkxMzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS02NCAgIChoZXgpCQlUc2luZ2h1YSBCaXR3YXkgQ28uLCBMdGQuCiswMDA1NjQgICAgIChiYXNlIDE2KQkJVHNpbmdodWEgQml0d2F5IENvLiwgTHRkLgorCQkJCTEyIEZsb29yLCBUb3dlciBDLCBDb3Jwb3JhdGUKKwkJCQlTcXVhcmUsIE5vLiAzNSwgRmluYW5jaWFsIFN0cmVldCwgWGljaGVuCisJCQkJQ0hJTkEKKworMDAtMDUtNjUgICAoaGV4KQkJVGFpbHluIENvbW11bmljYXRpb24gQ29tcGFueSBMdGQuCiswMDA1NjUgICAgIChiYXNlIDE2KQkJVGFpbHluIENvbW11bmljYXRpb24gQ29tcGFueSBMdGQuCisJCQkJTm8uIDYyLCBMYW5lIDIwNSwgTmFuLVNhbiBSb2FkLAorCQkJCVNlYy4gMiwgTHUtQ2h1IEhzaWFuZywKKwkJCQlUYW95dWFuIEhzaWVuICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LTY2ICAgKGhleCkJCVNlY3VpLmNvbSBDb3Jwb3JhdGlvbgorMDAwNTY2ICAgICAoYmFzZSAxNikJCVNlY3VpLmNvbSBDb3Jwb3JhdGlvbgorCQkJCTE3dGggRmwuIFNhbXN1bmcgWWVva3NhbSBCbGRnLgorCQkJCTY0Ny05LCBZZW9rc2FtLWRvbmcsIEthbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS02NyAgIChoZXgpCQlFdHltb25pYyBEZXNpZ24sIEluYy4KKzAwMDU2NyAgICAgKGJhc2UgMTYpCQlFdHltb25pYyBEZXNpZ24sIEluYy4KKwkJCQk0MSBCeXJvbiBBdmVudWUKKwkJCQlEb3JjaGVzdGVyLCBPbnRhcmlvLAorCQkJCU5PTCAxR08KKwkJCQlDQU5BREEKKworMDAtMDUtNjggICAoaGV4KQkJUGlsdG9maXNoIE5ldHdvcmtzIEFCCiswMDA1NjggICAgIChiYXNlIDE2KQkJUGlsdG9maXNoIE5ldHdvcmtzIEFCCisJCQkJU3RvcmEgQmFkaHVzZ2F0YW4gMTgtMjAKKwkJCQlTLTQxMTIxIEdvdGVib3JnCisJCQkJU1dFREVOCisKKzAwLTA1LTY5ICAgKGhleCkJCVZNd2FyZSwgSW5jLgorMDAwNTY5ICAgICAoYmFzZSAxNikJCVZNd2FyZSwgSW5jLgorCQkJCTM0MDEgSGlsbHZpZXcgQXZlbnVlCisJCQkJUGFsbyBBbHRvIENBIDk0MzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS02QSAgIChoZXgpCQlIZXVmdCBTeXN0ZW10ZWNobmlrIEdtYkgKKzAwMDU2QSAgICAgKGJhc2UgMTYpCQlIZXVmdCBTeXN0ZW10ZWNobmlrIEdtYkgKKwkJCQlCcm9obHRhbHN0ciAzMS0zMworCQkJCTU2NjU5IEJ1cmdicm9obAorCQkJCURldXRzY2hsYW5kICAKKwkJCQlHRVJNQU5ZCisKKzAwLTA1LTZCICAgKGhleCkJCUMuUC4gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDU2QiAgICAgKGJhc2UgMTYpCQlDLlAuIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMTJGLCBOby4gODYsIEhzaW4gVGFpIFd1IFJkLiwKKwkJCQlTZWMuIDEsIEhzaS1DaGloLCBUYWlwZWkgSHNpZW4sCisJCQkJMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS02QyAgIChoZXgpCQlIdW5nIENoYW5nIENvLiwgTHRkLgorMDAwNTZDICAgICAoYmFzZSAxNikJCUh1bmcgQ2hhbmcgQ28uLCBMdGQuCisJCQkJMTM4NS0xNCwgSnVhbi1Eb25nLAorCQkJCU5hbS1rdSwgSW5jaG9tLCA0MDItMjAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTZEICAgKGhleCkJCVBhY2lmaWMgQ29ycG9yYXRpb24KKzAwMDU2RCAgICAgKGJhc2UgMTYpCQlQYWNpZmljIENvcnBvcmF0aW9uCisJCQkJMi0yMy0zIEViaXN1LU1pbmFtaSBTaGlidXlhCisJCQkJVG9reW8gMTUwLTAwMjIKKwkJCQlKQVBBTgorCiswMC0wNS02RSAgIChoZXgpCQlOYXRpb25hbCBFbmhhbmNlIFRlY2hub2xvZ3ksIEluYy4KKzAwMDU2RSAgICAgKGJhc2UgMTYpCQlOYXRpb25hbCBFbmhhbmNlIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyRiwgTm8uIDE5Ni0zLCBUYXR1bmcgUmQuLCBTZWMuIDMsCisJCQkJSHNpIENoaWgsIFRhaXBlaSBIc2llbiwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LTZGICAgKGhleCkJCUlubm9tZWRpYSBUZWNobm9sb2dpZXMgUHZ0LiBMdGQuCiswMDA1NkYgICAgIChiYXNlIDE2KQkJSW5ub21lZGlhIFRlY2hub2xvZ2llcyBQdnQuIEx0ZC4KKwkJCQkjMzI3OCwgMTJ0aCBNYWluIFJvYWQKKwkJCQlIQUwgMm5kIFN0YWdlIEJhbmdhbG9yZSAtIDU2MCAwMDgKKwkJCQlJTkRJQQorCiswMC0wNS03MCAgIChoZXgpCQlCYXlkZWwgTHRkLgorMDAwNTcwICAgICAoYmFzZSAxNikJCUJheWRlbCBMdGQuCisJCQkJQmF5ZGVsIEhvdXNlCisJCQkJQnJvb2sgV2F5IExlYXRoZXJoZWFkLCBTdXJyZXkgS1QyMiA3TkEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNS03MSAgIChoZXgpCQlTZWl3YSBFbGVjdHJvbmljcyBDby4KKzAwMDU3MSAgICAgKGJhc2UgMTYpCQlTZWl3YSBFbGVjdHJvbmljcyBDby4KKwkJCQk3NTcgQW1hYm91a2ksIEt1a2l6YWtpLU1hY2hpCisJCQkJSW5hc2hpa2ktR3VuLCBJYmFyYWtpLUtlbgorCQkJCTMwMC0xMjUzCisJCQkJSkFQQU4KKworMDAtMDUtNzIgICAoaGV4KQkJRGVvbmV0IENvLiwgTHRkLgorMDAwNTcyICAgICAoYmFzZSAxNikJCURlb25ldCBDby4sIEx0ZC4KKwkJCQkjMTI3LTUgSmlueW91bmcgQi9EIDN0aCBGLAorCQkJCU5vbkl5dW4tRG9uZywgS2FuZ05hbS1HdSwKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTczICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDU3MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS03NCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA1NzQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtNzUgICAoaGV4KQkJQ0RTLUVsZWN0cm9uaWNzIEJWCiswMDA1NzUgICAgIChiYXNlIDE2KQkJQ0RTLUVsZWN0cm9uaWNzIEJWCisJCQkJTW96YXJ0IGxhYW4gMzMwCisJCQkJMzE0NCBOSCBNYWFzc2x1aXMKKwkJCQlORVRIRVJMQU5EUworCiswMC0wNS03NiAgIChoZXgpCQlOU00gVGVjaG5vbG9neSBMdGQuCiswMDA1NzYgICAgIChiYXNlIDE2KQkJTlNNIFRlY2hub2xvZ3kgTHRkLgorCQkJCTIyIEZsb29yLCBUaW1lcyBUb3dlcgorCQkJCTkyOCBDaGV1bmcgU2hhIFdhbiBSb2FkCisJCQkJS29sb29uICAKKwkJCQlIT05HIEtPTkcKKworMDAtMDUtNzcgICAoaGV4KQkJU00gSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9uCiswMDA1NzcgICAgIChiYXNlIDE2KQkJU00gSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9uCisJCQkJMzMwLTEgWWFuZ2phZWRvbmcKKwkJCQlTZW91Y2hvLUd1LCBTZW91bAorCQkJCTEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtNzggICAoaGV4KQkJUFJJVkFURQorMDAwNTc4ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wNS03OSAgIChoZXgpCQlVbml2ZXJzYWwgQ29udHJvbCBTb2x1dGlvbiBDb3JwLgorMDAwNTc5ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBDb250cm9sIFNvbHV0aW9uIENvcnAuCisJCQkJMTI4NDMgRm9vdGhpbGwgQmx2ZC4KKwkJCQlVbml0ICNkCisJCQkJU3lsbWFyIENBIDkxMzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS03QSAgIChoZXgpCQlPdmVydHVyZSBOZXR3b3JrcworMDAwNTdBICAgICAoYmFzZSAxNikJCU92ZXJ0dXJlIE5ldHdvcmtzCisJCQkJNjM3IERhdmlzIERyaXZlCisJCQkJTW9ycmlzdmlsbGUgTkMgMjc1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTdCICAgKGhleCkJCUNodW5nIE5hbSBFbGVjdHJvbmljIENvLiwgTHRkLgorMDAwNTdCICAgICAoYmFzZSAxNikJCUNodW5nIE5hbSBFbGVjdHJvbmljIENvLiwgTHRkLgorCQkJCVVuaXQgMywgMS9GLCBGZXN0aWdvb2QgQ2VudHJlCisJCQkJTm8uIDggTG9rIFlpcCBSb2FkLCBPbiBMb2sKKwkJCQlUc3VlbiBGYW5saW5nLCAKKwkJCQlIT05HIEtPTkcKKworMDAtMDUtN0MgICAoaGV4KQkJUkNPIFNlY3VyaXR5IEFCCiswMDA1N0MgICAgIChiYXNlIDE2KQkJUkNPIFNlY3VyaXR5IEFCCisJCQkJQm94IDcwNQorCQkJCVNFIDE3NiAyNyBKYXJmYWxsYQorCQkJCVNXRURFTgorCiswMC0wNS03RCAgIChoZXgpCQlTdW4gQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDU3RCAgICAgKGJhc2UgMTYpCQlTdW4gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQlHbG9yaWEgQmxkZyA2dGgKKwkJCQkxLTMgQWdlYmEtQ2hvIFNoaW5qdWt1LWt1CisJCQkJVG9reW8gIDE2Mi0wODIKKwkJCQlKQVBBTgorCiswMC0wNS03RSAgIChoZXgpCQlFY2tlbG1hbm4gU3RldWVydW5nc3RlY2huaWsgR21iSAorMDAwNTdFICAgICAoYmFzZSAxNikJCUVja2VsbWFubiBTdGV1ZXJ1bmdzdGVjaG5payBHbWJICisJCQkJQmVybGluZXIgU3RyYXNzZSAxNjEKKwkJCQk2NTIwNSBXaWVzYmFkZW4KKwkJCQlHRVJNQU5ZCisKKzAwLTA1LTdGICAgKGhleCkJCUFjcWlzIFRlY2hub2xvZ3kKKzAwMDU3RiAgICAgKGJhc2UgMTYpCQlBY3FpcyBUZWNobm9sb2d5CisJCQkJMTYyMSBXZXN0IEVsIENhbWlubyBSZWFsCisJCQkJTXQuIFZpZXcgQ0EgOTQwNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTgwICAgKGhleCkJCUZpYnJvbGFuIEx0ZC4KKzAwMDU4MCAgICAgKGJhc2UgMTYpCQlGaWJyb2xhbiBMdGQuCisJCQkJNiBIYXlldHppcmEgU3RyZWV0CisJCQkJWW9rbmVhbSBJbGxpdCAyMDY5MgorCQkJCUlTUkFFTAorCiswMC0wNS04MSAgIChoZXgpCQlTbmVsbAorMDAwNTgxICAgICAoYmFzZSAxNikJCVNuZWxsCisJCQkJU291dGhsZWlnaCBQYXJrIEhvdXNlCisJCQkJRWFzdGxlaWdoIFJvYWQsIEhhdmFudAorCQkJCUhhbXBzaGlyZSAgUDA5IDJQRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA1LTgyICAgKGhleCkJCUNsZWFyQ3ViZSBUZWNobm9sb2d5CiswMDA1ODIgICAgIChiYXNlIDE2KQkJQ2xlYXJDdWJlIFRlY2hub2xvZ3kKKwkJCQk4ODM0IENhcGl0YWwgb2YgVGV4YXMgSHd5LAorCQkJCVN1aXRlIDE0MAorCQkJCUF1c3RpbiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtODMgICAoaGV4KQkJSW1hZ2VDb20gTGltaXRlZAorMDAwNTgzICAgICAoYmFzZSAxNikJCUltYWdlQ29tIExpbWl0ZWQKKwkJCQlDZWRhcnMgUGFyaywgQ2VkYXJzIFJvYWQsCisJCQkJTWFpZGVuaGVhZCwgQmVya3NoaXJlLAorCQkJCVNMNiAxUloKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNS04NCAgIChoZXgpCQlBYnNvbHV0ZVZhbHVlIFN5c3RlbXMsIEluYy4KKzAwMDU4NCAgICAgKGJhc2UgMTYpCQlBYnNvbHV0ZVZhbHVlIFN5c3RlbXMsIEluYy4KKwkJCQk3MTUtRCBOb3J0aCBEci4KKwkJCQlNZWxib3VybmUgRkwgMzI5MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTg1ICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MsIEluYy4KKzAwMDU4NSAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzLCBJbmMuCisJCQkJMTE5NCBOLiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTg2ICAgKGhleCkJCUx1Y2VudCBUZWNobm9sb2dpZXMKKzAwMDU4NiAgICAgKGJhc2UgMTYpCQlMdWNlbnQgVGVjaG5vbG9naWVzCisJCQkJMTcwMSBIYXJib3IgQmF5IFBhcmt3YXkKKwkJCQlBbGFtZWRhIENBIDk0NTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS04NyAgIChoZXgpCQlMb2N1cywgSW5jb3Jwb3JhdGVkCiswMDA1ODcgICAgIChiYXNlIDE2KQkJTG9jdXMsIEluY29ycG9yYXRlZAorCQkJCTU1NDAgUmVzZWFyY2ggUGFyayBEcml2ZQorCQkJCUZpdGNoYnVyZyBDZW50ZXIKKwkJCQlNYWRpc29uIFdJIDUzNzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS04OCAgIChoZXgpCQlTZW5zb3JpYSBDb3JwLgorMDAwNTg4ICAgICAoYmFzZSAxNikJCVNlbnNvcmlhIENvcnAuCisJCQkJMTU5NTAgQmVybmFyZG8gQ3RyLiBEci4KKwkJCQlTdWl0ZSBKCisJCQkJU2FuIERpZWdvIENBIDkyMTI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS04OSAgIChoZXgpCQlOYXRpb25hbCBEYXRhY29tcHV0ZXIKKzAwMDU4OSAgICAgKGJhc2UgMTYpCQlOYXRpb25hbCBEYXRhY29tcHV0ZXIKKwkJCQk5MDAgTWlkZGxlc2V4IFRway4KKwkJCQlCaWxsZXJpY2EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LThBICAgKGhleCkJCU5ldGNvbSBDby4sIEx0ZC4KKzAwMDU4QSAgICAgKGJhc2UgMTYpCQlOZXRjb20gQ28uLCBMdGQuCisJCQkJMUYsIE5vLiA3LCBMYW5lIDI0MiwKKwkJCQlIdSBMaWluIFN0cmVldAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS04QiAgIChoZXgpCQlJUG1lbnRhbCwgSW5jLgorMDAwNThCICAgICAoYmFzZSAxNikJCUlQbWVudGFsLCBJbmMuCisJCQkJOEYtOSwgTm8uIDM1LCBIc2luIFRhaSBSZC4KKwkJCQlKdWliZWksIEhzaW5jaHUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LThDICAgKGhleCkJCU9wZW50ZWNoIEluYy4KKzAwMDU4QyAgICAgKGJhc2UgMTYpCQlPcGVudGVjaCBJbmMuCisJCQkJNkYsIERvbmdXb24gQmxkZy4sIDI3NQorCQkJCVlvdW5namFlLURvbmcsIFNlb2Noby1HdSwKKwkJCQlTZW91bCAgMTM3LTEzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS04RCAgIChoZXgpCQlMeW54IFBob3RvbmljIE5ldHdvcmtzLCBJbmMuCiswMDA1OEQgICAgIChiYXNlIDE2KQkJTHlueCBQaG90b25pYyBOZXR3b3JrcywgSW5jLgorCQkJCTEzIEhhbWVsYWhhIFN0LgorCQkJCVJvc2gtSGVheW4KKwkJCQlJU1JBRUwKKworMDAtMDUtOEUgICAoaGV4KQkJRmxleHRyb25pY3MgSW50ZXJuYXRpb25hbCBHbWJIICYgQ28uIE5mZy4gS0cKKzAwMDU4RSAgICAgKGJhc2UgMTYpCQlGbGV4dHJvbmljcyBJbnRlcm5hdGlvbmFsIEdtYkggJiBDby4gTmZnLiBLRworCQkJCVNjaHJhY2tnYXNzZSA5LTE1CisJCQkJS2luZGJlcmcgIDg2NTAKKwkJCQlBVVNUUklBCisKKzAwLTA1LThGICAgKGhleCkJCUNMQ3NvZnQgY28uCiswMDA1OEYgICAgIChiYXNlIDE2KQkJQ0xDc29mdCBjby4KKwkJCQlEZXB0LiBvZiBFbGVjdHJpY2FsIEVuZ2luZWVyaW5nCisJCQkJS0FJU1QsIDM3My0xIEt1c2VvbmctZG9uZywgWXVzZW9uZy1ndSwgRAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS05MCAgIChoZXgpCQlTd2lzc3ZvaWNlIEx0ZC4KKzAwMDU5MCAgICAgKGJhc2UgMTYpCQlTd2lzc3ZvaWNlIEx0ZC4KKwkJCQlaaWVnZWxtYXR0c3RyYXNzZSAxCisJCQkJNDUwMyBTb2xvdGh1cm4KKwkJCQlTV0lUWkVSTEFORAorCiswMC0wNS05MSAgIChoZXgpCQlBY3RpdmUgU2lsaWNvbiBMdGQuCiswMDA1OTEgICAgIChiYXNlIDE2KQkJQWN0aXZlIFNpbGljb24gTHRkLgorCQkJCUJydW5uZWwgU2NpZW5jZSBQYXJrCisJCQkJS2luZ3N0b24gTGFuZSwgVXhicmlkZ2UsCisJCQkJTWlkZHggIFVCOCAzUFEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNS05MiAgIChoZXgpCQlQdWx0ZWsgQ29ycC4KKzAwMDU5MiAgICAgKGJhc2UgMTYpCQlQdWx0ZWsgQ29ycC4KKwkJCQk3NC0xLCBZYW1hc2hpdGEtY2hvLAorCQkJCU5ha2Eta3UsIFRva29oYW1hLWNpdHksCisJCQkJMjMxLTAwMjMKKwkJCQlKQVBBTgorCiswMC0wNS05MyAgIChoZXgpCQlHcmFtbWFyIEVuZ2luZSBJbmMuCiswMDA1OTMgICAgIChiYXNlIDE2KQkJR3JhbW1hciBFbmdpbmUgSW5jLgorCQkJCTkyMSBFYXN0d2luZCBEcml2ZQorCQkJCVN1aXRlIDEyMgorCQkJCVdlc3RlcnZpbGxlIE9IIDQzMDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS05NCAgIChoZXgpCQlJWFhBVCBBdXRvbWF0aW9uIEdtYkgKKzAwMDU5NCAgICAgKGJhc2UgMTYpCQlJWFhBVCBBdXRvbWF0aW9uIEdtYkgKKwkJCQlMZWlibml6c3RyYXNzZSAxNQorCQkJCTg4MjUwIFdlaW5nYXJ0ZW4KKwkJCQlHRVJNQU5ZCisKKzAwLTA1LTk1ICAgKGhleCkJCUFsZXNpcyBDb3Jwb3JhdGlvbgorMDAwNTk1ICAgICAoYmFzZSAxNikJCUFsZXNpcyBDb3Jwb3JhdGlvbgorCQkJCTE2MzMgMjZ0aCBTdHJlZXQKKwkJCQlTYW50YSBNb25pY2EgQ0EgOTA0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LTk2ICAgKGhleCkJCUdlbm90ZWNoIENvLiwgTHRkLgorMDAwNTk2ICAgICAoYmFzZSAxNikJCUdlbm90ZWNoIENvLiwgTHRkLgorCQkJCSMzMDggR3Vua29vayBCbGRnLiwKKwkJCQkyODgtMSBEb2tzYW4tRG9uZworCQkJCUd1bWNob24tR3UgU2VvdWwgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LTk3ICAgKGhleCkJCUVhZ2xlIFRyYWZmaWMgQ29udHJvbCBTeXN0ZW1zCiswMDA1OTcgICAgIChiYXNlIDE2KQkJRWFnbGUgVHJhZmZpYyBDb250cm9sIFN5c3RlbXMKKwkJCQk4MDA0IENhbWVyb24gUm9hZAorCQkJCUF1c3RpbiBUWCA3ODc1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtOTggICAoaGV4KQkJQ1JPTk9TIFMuci5sLgorMDAwNTk4ICAgICAoYmFzZSAxNikJCUNST05PUyBTLnIubC4KKwkJCQlWaWEgY2F2b3VyIDU4L0EKKwkJCQkyMzkwMCBMRUNDTyAoTEMpCisJCQkJSVRBTFkKKworMDAtMDUtOTkgICAoaGV4KQkJRFJTIFRlc3QgYW5kIEVuZXJneSBNYW5hZ2VtZW50IG9yIERSUy1URU0KKzAwMDU5OSAgICAgKGJhc2UgMTYpCQlEUlMgVGVzdCBhbmQgRW5lcmd5IE1hbmFnZW1lbnQgb3IgRFJTLVRFTQorCQkJCTExMCBXeW5uIERyaXZlCisJCQkJSHVudHN2aWxsZSBBTCAzNTgwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtOUEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNTlBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtOUIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNTlCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtOUMgICAoaGV4KQkJS2xlaW5rbmVjaHQgR21iSCwgSW5nLiBCdWVybworMDAwNTlDICAgICAoYmFzZSAxNikJCUtsZWlua25lY2h0IEdtYkgsIEluZy4gQnVlcm8KKwkJCQlCYWNoc3RyYXNzZSAzMAorCQkJCUQtODI1NDEgTXVlbnNpbmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA1LTlEICAgKGhleCkJCURhbmllbCBDb21wdXRpbmcgU3lzdGVtcywgSW5jLgorMDAwNTlEICAgICAoYmFzZSAxNikJCURhbmllbCBDb21wdXRpbmcgU3lzdGVtcywgSW5jLgorCQkJCTMyMDggOHRoIEF2ZW51ZSBORSAjMTE4CisJCQkJQ2FsZ2FyeSBBbGJlcnRhCisJCQkJVDJBIDdWOAorCQkJCUNBTkFEQQorCiswMC0wNS05RSAgIChoZXgpCQlaaW53ZWxsIENvcnBvcmF0aW9uCiswMDA1OUUgICAgIChiYXNlIDE2KQkJWmlud2VsbCBDb3Jwb3JhdGlvbgorCQkJCTdGLCBOby41MTIsIFl1YW4tU2hhbiBSb2FkCisJCQkJQ2hhbmctaG8gY2l0eSBUYWlwZWkgSHNpZW4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LTlGICAgKGhleCkJCVlvdHRhIE5ldHdvcmtzLCBJbmMuCiswMDA1OUYgICAgIChiYXNlIDE2KQkJWW90dGEgTmV0d29ya3MsIEluYy4KKwkJCQkyMjAxIEF2ZW51ZSBLCisJCQkJUGxhbm8gVFggNzUwNzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUEwICAgKGhleCkJCU1PQklMSU5FIEtmdC4KKzAwMDVBMCAgICAgKGJhc2UgMTYpCQlNT0JJTElORSBLZnQuCisJCQkJTGVoZWwgVXRjYSAxNAorCQkJCUJVREFQRVNUCisJCQkJSC0xMTM0CisJCQkJSFVOR0FSWQorCiswMC0wNS1BMSAgIChoZXgpCQlaZW5vY29tCiswMDA1QTEgICAgIChiYXNlIDE2KQkJWmVub2NvbQorCQkJCU5vLjQwMiwgNHRoIGZsb29yLCBXb25nb2sgQmxkZy4KKwkJCQk4MzAtMzgsIFlva3NhbS1Eb25nLCBHYW5nbmFtLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1BMiAgIChoZXgpCQlDRUxPWCBOZXR3b3JrcworMDAwNUEyICAgICAoYmFzZSAxNikJCUNFTE9YIE5ldHdvcmtzCisJCQkJOTQwIFdlc3QgUG9ydCBQbGF6YSAtIFN0ZS4gIzMwMAorCQkJCVN0LiBMb3VpcyBNTyA2MzE0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQTMgICAoaGV4KQkJUUVJLCBJbmMuCiswMDA1QTMgICAgIChiYXNlIDE2KQkJUUVJLCBJbmMuCisJCQkJNjAgRmFkZW0gUm9hZAorCQkJCVNwcmluZ2ZpZWxkIE5KIDA3MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1BNCAgIChoZXgpCQlMdWNpZCBWb2ljZSBMdGQuCiswMDA1QTQgICAgIChiYXNlIDE2KQkJTHVjaWQgVm9pY2UgTHRkLgorCQkJCTUgSmFib3RpbnNraSBTdHJlZXQKKwkJCQlSYW1hdC1HYW4sIDUyNTIwCisJCQkJSVNSQUVMCisKKzAwLTA1LUE1ICAgKGhleCkJCUtPVFQKKzAwMDVBNSAgICAgKGJhc2UgMTYpCQlLT1RUCisJCQkJU3VpdGUgMzA1IERhZWhhIEIvRAorCQkJCTY4MCBZZW9rc2FtLURvbmcsIEthbmdOYW0tR3UgU2VvdWwKKwkJCQkxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUE2ICAgKGhleCkJCUV4dHJvbiBFbGVjdHJvbmljcworMDAwNUE2ICAgICAoYmFzZSAxNikJCUV4dHJvbiBFbGVjdHJvbmljcworCQkJCTEyMzAgUy4gTGV3aXMKKwkJCQlBbmFoaWVtIENBIDkyODA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1BNyAgIChoZXgpCQlIeXBlcmNoaXAsIEluYy4KKzAwMDVBNyAgICAgKGJhc2UgMTYpCQlIeXBlcmNoaXAsIEluYy4KKwkJCQkxODAgUGVlbCBTdHJlZXQgLSBTdGUuICMzMzMKKwkJCQlNb250cmVhbCwgUXVlYmVjCisJCQkJSDNDIDJHNworCQkJCUNBTkFEQQorCiswMC0wNS1BOCAgIChoZXgpCQlXWUxFIEVMRUNUUk9OSUNTCiswMDA1QTggICAgIChiYXNlIDE2KQkJV1lMRSBFTEVDVFJPTklDUworCQkJCTMwMDAgQk9XRVJTIEFWRU5VRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxLTA5MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUE5ICAgKGhleCkJCVByaW5jZXRvbiBOZXR3b3JrcywgSW5jLgorMDAwNUE5ICAgICAoYmFzZSAxNikJCVByaW5jZXRvbiBOZXR3b3JrcywgSW5jLgorCQkJCTEwMCBDZW50dXJ5IENlbnRlciBDdC4gIzEwMAorCQkJCVNhbiBKb3NlIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1BQSAgIChoZXgpCQlNb29yZSBJbmR1c3RyaWVzIEludGVybmF0aW9uYWwgSW5jLgorMDAwNUFBICAgICAoYmFzZSAxNikJCU1vb3JlIEluZHVzdHJpZXMgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJMTY2NTAgU2Nob2VuYm9ybiBTdC4KKwkJCQlOb3J0aCBIaWxscyBDQSA5MTM0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQUIgICAoaGV4KQkJQ3liZXIgRm9uZSwgSW5jLgorMDAwNUFCICAgICAoYmFzZSAxNikJCUN5YmVyIEZvbmUsIEluYy4KKwkJCQk5ODkgT2xkIEVhZ2xlIFNjaG9vbCBSb2FkCisJCQkJU3VpdGUgODAwCisJCQkJV2F5bmUgUEEgMTkwODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUFDICAgKGhleCkJCU5vcnRoZXJuIERpZ2l0YWwsIEluYy4KKzAwMDVBQyAgICAgKGJhc2UgMTYpCQlOb3J0aGVybiBEaWdpdGFsLCBJbmMuCisJCQkJMTAzIFJhbmRhbGwgRHJpdmUKKwkJCQlXYXRlcmxvbyAgT250YXJpbyBOMlYgMUM1CisJCQkJQ0FOQURBCisKKzAwLTA1LUFEICAgKGhleCkJCVRvcHNwaW4gQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDVBRCAgICAgKGJhc2UgMTYpCQlUb3BzcGluIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNTE1IEVsbGlzIFN0cmVldAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUFFICAgKGhleCkJCU1lZGlhcG9ydCBVU0EKKzAwMDVBRSAgICAgKGJhc2UgMTYpCQlNZWRpYXBvcnQgVVNBCisJCQkJMTcxNTEgTmV3aG9wZSBBdmUuICMyMDIKKwkJCQlGb3VudGFpbiBWYWxsZXkgQ0EgOTI3MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUFGICAgKGhleCkJCUlubm9TY2FuIENvbXB1dGluZyBBL1MKKzAwMDVBRiAgICAgKGJhc2UgMTYpCQlJbm5vU2NhbiBDb21wdXRpbmcgQS9TCisJCQkJU29yZW4gRnJpY2hzdmVqIDQyUgorCQkJCURLLTgyMzAgQWFieWhvagorCQkJCURFTk1BUksKKworMDAtMDUtQjAgICAoaGV4KQkJS29yZWEgQ29tcHV0ZXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDVCMCAgICAgKGJhc2UgMTYpCQlLb3JlYSBDb21wdXRlciBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCUtDVCBCbGRnLCAxMTEtMyBZYW5namFlLURvbmcsCisJCQkJU2VvY2hvLUd1LCBTZW91bAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1CMSAgIChoZXgpCQlBU0IgVGVjaG5vbG9neSBCVgorMDAwNUIxICAgICAoYmFzZSAxNikJCUFTQiBUZWNobm9sb2d5IEJWCisJCQkJRGUgUm9uZGUgMTVBCisJCQkJNTY4MyBDWiBCZXN0CisJCQkJTkVUSEVSTEFORFMKKworMDAtMDUtQjIgICAoaGV4KQkJTWVkaXNvbiBDby4sIEx0ZC4KKzAwMDVCMiAgICAgKGJhc2UgMTYpCQlNZWRpc29uIENvLiwgTHRkLgorCQkJCTk5Ny00LCBTYWVjaGktRG9uZywKKwkJCQlLYW5nbmFtLWt1LCBTb3VlbCwKKwkJCQkxMzUtMjgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUIzICAgKGhleCkJCUFzYWhpLUVuZ2luZWVyaW5nIENvLiwgTHRkLgorMDAwNUIzICAgICAoYmFzZSAxNikJCUFzYWhpLUVuZ2luZWVyaW5nIENvLiwgTHRkLgorCQkJCTMtNi0xMi0yIEdha3VlbmhpZ2FzaGktY2hvCisJCQkJS29kYWlyYS1zaGkKKwkJCQlUb2t5byAgMTg3LTAwNDMKKwkJCQlKQVBBTgorCiswMC0wNS1CNCAgIChoZXgpCQlBY2VleCBDb3Jwb3JhdGlvbgorMDAwNUI0ICAgICAoYmFzZSAxNikJCUFjZWV4IENvcnBvcmF0aW9uCisJCQkJMkYsIE5vLiAyLCBBbGxleSAxLCBTemUtV2VpIExhbmUKKwkJCQlDaHVuZy1DaGVuZyBSZC4sIEhzaW50aWVuLCBUYWlwZWkKKwkJCQkyMzEzOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDUtQjUgICAoaGV4KQkJQnJvYWRjb20gVGVjaG5vbG9naWVzCiswMDA1QjUgICAgIChiYXNlIDE2KQkJQnJvYWRjb20gVGVjaG5vbG9naWVzCisJCQkJMTM3LTA2MAorCQkJCTg1OC0zMSBZdWplb25nIEJMRCwgQmFuZ2JhZS1Eb25nCisJCQkJU2VjaG8tR3UgU2VvdWwsIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1CNiAgIChoZXgpCQlJTlNZUyBNaWNyb2VsZWN0cm9uaWNzIEdtYkgKKzAwMDVCNiAgICAgKGJhc2UgMTYpCQlJTlNZUyBNaWNyb2VsZWN0cm9uaWNzIEdtYkgKKwkJCQlXYWZmbmVyZ2Fzc2UgOAorCQkJCTkzMDQ3IFJlZ2Vuc2J1cmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA1LUI3ICAgKGhleCkJCUFyYm9yIFRlY2hub2xvZ3kgQ29ycC4KKzAwMDVCNyAgICAgKGJhc2UgMTYpCQlBcmJvciBUZWNobm9sb2d5IENvcnAuCisJCQkJNUYsIE5vLiA3MzgsIFpob25nIFpoZW5nIFJkLiwKKwkJCQlaaG9uZyBIbyAyMzUsIFRhaXBlaSwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LUI4ICAgKGhleCkJCUVsZWN0cm9uaWMgRGVzaWduIEFzc29jaWF0ZXMsIEluYy4KKzAwMDVCOCAgICAgKGJhc2UgMTYpCQlFbGVjdHJvbmljIERlc2lnbiBBc3NvY2lhdGVzLCBJbmMuCisJCQkJMzMxIEFyY2FkbyBSZC4gTlcKKwkJCQlTdWl0ZSBDLTEKKwkJCQlMaWxidXJuIEdBIDMwMDQ3LTI4NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUI5ICAgKGhleCkJCUFpcnZhbmEsIEluYy4KKzAwMDVCOSAgICAgKGJhc2UgMTYpCQlBaXJ2YW5hLCBJbmMuCisJCQkJMjUgSW5kdXN0cmlhbCBBdmUuCisJCQkJQ2hsZW1zZm9yZCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQkEgICAoaGV4KQkJQXJlYSBOZXR3b2VrcywgSW5jLgorMDAwNUJBICAgICAoYmFzZSAxNikJCUFyZWEgTmV0d29la3MsIEluYy4KKwkJCQkxMTQ4IEV1Y2xpZCBBdmUuLCBTdWl0ZSA0MDAKKwkJCQlDbGV2ZWxhbmQgT0ggNDQxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtQkIgICAoaGV4KQkJTXlzcGFjZSBBQgorMDAwNUJCICAgICAoYmFzZSAxNikJCU15c3BhY2UgQUIKKwkJCQlTdmVhdmFnZW4gMzMKKwkJCQlTRS0xMTEzNCBTdG9ja2hvbG0KKwkJCQlTV0VERU4KKworMDAtMDUtQkMgICAoaGV4KQkJUmVzb3JzeXMgTHRkLgorMDAwNUJDICAgICAoYmFzZSAxNikJCVJlc29yc3lzIEx0ZC4KKwkJCQk4MCBKb2huc2RvbmUgQXZlbnVlLAorCQkJCUhpbGluZ3RvbiwgR2xhc2dvdywKKwkJCQlTY290bGFuZCAgRzUyIDRMVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA1LUJEICAgKGhleCkJCVJPQVggQlYKKzAwMDVCRCAgICAgKGJhc2UgMTYpCQlST0FYIEJWCisJCQkJU3RlcnJlbmJlcmd3ZWcgMjkKKwkJCQlOTC0zNzY5IEJTICBTT0VTVEVSQkVSRworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTA1LUJFICAgKGhleCkJCUtvbmdzYmVyZyBTZWF0ZXggQVMKKzAwMDVCRSAgICAgKGJhc2UgMTYpCQlLb25nc2JlcmcgU2VhdGV4IEFTCisJCQkJUGlyc2VudGVyZXQKKwkJCQlOLTc1NjIgVHJvbmRoZWltCisJCQkJTk9SV0FZCisKKzAwLTA1LUJGICAgKGhleCkJCUp1c3RFenkgVGVjaG5vbG9neSwgSW5jLgorMDAwNUJGICAgICAoYmFzZSAxNikJCUp1c3RFenkgVGVjaG5vbG9neSwgSW5jLgorCQkJCTVGLCBOby4gMzI0LCBTZWMuIDEsIEp1bmdodWEgUmQuCisJCQkJSHNpbmNodSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS1DMCAgIChoZXgpCQlEaWdpdGFsIE5ldHdvcmsgQWxhY2FydGUgQ28uLCBMdGQuCiswMDA1QzAgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBOZXR3b3JrIEFsYWNhcnRlIENvLiwgTHRkLgorCQkJCUExMDQsIFNlb3VsIEJ1c2luZXNzIEluY3ViYXRvcgorCQkJCTY0Ny0yNiwgRGV1bmdDaHVuLURvbmcsIEthbmdzZW8tR3UKKwkJCQlTZW91bCAgMTU3LTAzMCwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtQzEgICAoaGV4KQkJQS1LeXVuZyBNb3Rpb24sIEluYy4KKzAwMDVDMSAgICAgKGJhc2UgMTYpCQlBLUt5dW5nIE1vdGlvbiwgSW5jLgorCQkJCTU0LTEwLCBNdW5qdW5nLURvbmcKKwkJCQlTb25ncGEtS3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1DMiAgIChoZXgpCQlTb3JvbnRpLCBJbmMuCiswMDA1QzIgICAgIChiYXNlIDE2KQkJU29yb250aSwgSW5jLgorCQkJCTEyMjU3IFNvdXRoIEJ1c2luZXNzIFBhcmsgRHJpdmUKKwkJCQkjMTYwCisJCQkJRHJhcGVyIFV0YWggODQwMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUMzICAgKGhleCkJCVBhY2lmaWMgSW5zdHJ1bWVudHMsIEluYy4KKzAwMDVDMyAgICAgKGJhc2UgMTYpCQlQYWNpZmljIEluc3RydW1lbnRzLCBJbmMuCisJCQkJNDA4MCBQaWtlIExhbmUKKwkJCQlDb25jb3JkIENBIDk0NTIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1DNCAgIChoZXgpCQlUZWxlY3QsIEluYy4KKzAwMDVDNCAgICAgKGJhc2UgMTYpCQlUZWxlY3QsIEluYy4KKwkJCQkyMTExIE4uIE1vbHRlciBSb2FkCisJCQkJTGliZXJ0eSBMYWtlIFdBIDk5MDE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1DNSAgIChoZXgpCQlGbGFnYSBIRgorMDAwNUM1ICAgICAoYmFzZSAxNikJCUZsYWdhIEhGCisJCQkJVmVzdHVyaGxpZCA3CisJCQkJSVMtMTA1IFJleWtqYXZpaworCQkJCUlDRUxBTkQKKworMDAtMDUtQzYgICAoaGV4KQkJVHJpeiBDb21tdW5pY2F0aW9ucworMDAwNUM2ICAgICAoYmFzZSAxNikJCVRyaXogQ29tbXVuaWNhdGlvbnMKKwkJCQlBbndvbiBCbGRnLiA3dGggRmwuCisJCQkJMTQtMTUgWW9pZG8tRG9uZyBZb3VuZ2RldW5ncG8tR3UKKwkJCQlTZW91bCAgMTUwLTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1DNyAgIChoZXgpCQlJL0YtQ09NIEEvUworMDAwNUM3ICAgICAoYmFzZSAxNikJCUkvRi1DT00gQS9TCisJCQkJRWxsZWdhYXJkdmVqIDM2CisJCQkJNjQwMCBTb2VuZGVyYm9yZworCQkJCURFTk1BUksKKworMDAtMDUtQzggICAoaGV4KQkJVkVSWVRFQ0gKKzAwMDVDOCAgICAgKGJhc2UgMTYpCQlWRVJZVEVDSAorCQkJCSM0MDIsIEphbmcgWW91bmcgU2hpbCBLd2FuLAorCQkJCVZlbnR1cmUgVG93biwgMTY4OC01IFNoaW5pbC1Eb25nLCBEYWVkZW8KKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtQzkgICAoaGV4KQkJTEcgSW5ub3RlayBDby4sIEx0ZC4KKzAwMDVDOSAgICAgKGJhc2UgMTYpCQlMRyBJbm5vdGVrIENvLiwgTHRkLgorCQkJCUxHIENvbXBvbmVudCBSJkQgQ2VudGVyCisJCQkJMTI3MSwgU2EtRG9uZywgU2FuZ3Jvay1ndQorCQkJCUFuc2FuLXNpIEd5ZW9uZ2dpLWRvIDQyNi03OTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtQ0EgICAoaGV4KQkJSGl0cm9uIFRlY2hub2xvZ3ksIEluYy4KKzAwMDVDQSAgICAgKGJhc2UgMTYpCQlIaXRyb24gVGVjaG5vbG9neSwgSW5jLgorCQkJCUhTSU5DSFUgU0JJUCBTVUJTSURJQVJZCisJCQkJTm8uIDI1IFImRCAxc3QgUmQuIFNjaWVuY2UtQmFzZWQgSW5kdXN0cgorCQkJCUhzaW4tY2h1ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA1LUNCICAgKGhleCkJCVJPSVMgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA1Q0IgICAgIChiYXNlIDE2KQkJUk9JUyBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk2dGggRiBDaGFuZ2h5dW4gQi9ELCA5NjAtMQorCQkJCUhvZ3llLURvbmcgRG9uZ2FuLUt1IEFueWFuZywKKwkJCQk0MzEtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUNDICAgKGhleCkJCVN1bXRlbCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNUNDICAgICAoYmFzZSAxNikJCVN1bXRlbCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTFGLCBOby4gMTczLCBHdW5nIFl1YW4gUm9hZCwKKwkJCQlIc2luY2h1IENpdHkgIDMwMDU0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS1DRCAgIChoZXgpCQlEZW5vbiwgTHRkLgorMDAwNUNEICAgICAoYmFzZSAxNikJCURlbm9uLCBMdGQuCisJCQkJMzUtMSwgU2FnYW1pb25vIDctY2hvbWUsCisJCQkJU2FnYW1paGFyYS1zaGkKKwkJCQlLYW5hZ2F3YSAgMjI4LTg1MDUKKwkJCQlKQVBBTgorCiswMC0wNS1DRSAgIChoZXgpCQlQcm9saW5rIE1pY3Jvc3lzdGVtcyBDb3Jwb3JhdGlvbgorMDAwNUNFICAgICAoYmFzZSAxNikJCVByb2xpbmsgTWljcm9zeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJNkYsIE5vLiAzNDksIFlhbmctS3VhbmcgU3QuCisJCQkJTmVpLUh1IFRhaXBlaSwgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNS1DRiAgIChoZXgpCQlUaHVuZGVyIFJpdmVyIFRlY2hub2xvZ2llcywgSW5jLgorMDAwNUNGICAgICAoYmFzZSAxNikJCVRodW5kZXIgUml2ZXIgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMjMgQ29ycG9yYXRlIFBsYXphLCBTdWl0ZSAyNTAKKwkJCQlOZXdwb3J0IEJlYWNoIENBIDkyNjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1EMCAgIChoZXgpCQlTb2xpbmV0IFN5c3RlbXMKKzAwMDVEMCAgICAgKGJhc2UgMTYpCQlTb2xpbmV0IFN5c3RlbXMKKwkJCQkxMjAwLTE4MCBFbGdpbiBTdC4KKwkJCQlPdHRhd2EgT250YXJpbworCQkJCUsyUCAySzMKKwkJCQlDQU5BREEKKworMDAtMDUtRDEgICAoaGV4KQkJTWV0YXZlY3RvciBUZWNobm9sb2dpZXMKKzAwMDVEMSAgICAgKGJhc2UgMTYpCQlNZXRhdmVjdG9yIFRlY2hub2xvZ2llcworCQkJCVN0ZWVud2VnIE9wIEdpZXJsZSwgMTAwCisJCQkJQi0yMzAwIFR1cm5ob3V0LAorCQkJCUJFTEdJVU0KKworMDAtMDUtRDIgICAoaGV4KQkJREFQIFRlY2hub2xvZ2llcworMDAwNUQyICAgICAoYmFzZSAxNikJCURBUCBUZWNobm9sb2dpZXMKKwkJCQk5NTUgRmVybmFuZCBEdWZvdXIsCisJCQkJVmlsbGUgRGUgVmFuaWVyLCBRdWViZWMsCisJCQkJRzFNIDNCMgorCQkJCUNBTkFEQQorCiswMC0wNS1EMyAgIChoZXgpCQllUHJvZHVjdGlvbiBTb2x1dGlvbnMsIEluYy4KKzAwMDVEMyAgICAgKGJhc2UgMTYpCQllUHJvZHVjdGlvbiBTb2x1dGlvbnMsIEluYy4KKwkJCQkyMjAwMSBOb3J0aCBQYXJrIERyaXZlCisJCQkJS2luZ3dvb2QgVFggNzczMzktMzgwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRDQgICAoaGV4KQkJRnV0dXJlU21hcnQgTmV0d29ya3MsIEluYy4KKzAwMDVENCAgICAgKGJhc2UgMTYpCQlGdXR1cmVTbWFydCBOZXR3b3JrcywgSW5jLgorCQkJCTYxNTUgQWxtYWRlbiBFeHByZXNzd2F5CisJCQkJU3VpdGUgMTAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUQ1ICAgKGhleCkJCVNwZWVkY29tIFdpcmVsZXNzCiswMDA1RDUgICAgIChiYXNlIDE2KQkJU3BlZWRjb20gV2lyZWxlc3MKKwkJCQk3MDIwIFByb2Zlc3Npb25hbCBQa3d5IEVhc3QKKwkJCQlTYXJhc290YSBGTCAzNDI0MC04NTE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1ENiAgIChoZXgpCQlUaXRhbiBXaXJlbGVzcworMDAwNUQ2ICAgICAoYmFzZSAxNikJCVRpdGFuIFdpcmVsZXNzCisJCQkJMzAzMyBTY2llbmNlIFBhcmsgUm9hZAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRDcgICAoaGV4KQkJVmlzdGEgSW1hZ2luZywgSW5jLgorMDAwNUQ3ICAgICAoYmFzZSAxNikJCVZpc3RhIEltYWdpbmcsIEluYy4KKwkJCQk1MjEgVGF5bG9yIFdheQorCQkJCVNhbiBDYXJsb3MgQ0EgOTQwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUQ4ICAgKGhleCkJCUFyZXNjb20sIEluYy4KKzAwMDVEOCAgICAgKGJhc2UgMTYpCQlBcmVzY29tLCBJbmMuCisJCQkJMzU0MSBHYXRld2F5IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRDkgICAoaGV4KQkJVGVjaG5vIFZhbGxleSwgSW5jLgorMDAwNUQ5ICAgICAoYmFzZSAxNikJCVRlY2hubyBWYWxsZXksIEluYy4KKwkJCQlBU0lDIFZlbnR1cmUgVG93biA1RiwKKwkJCQkxMzMwLTMgU2VvY2hvMi1Eb25nLCBTZW9jaG8tS3UsCisJCQkJU2VvdWwgIDEzNS0wNzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtREEgICAoaGV4KQkJQXBleCBBdXRvbWF0aW9uc3RlY2huaWsKKzAwMDVEQSAgICAgKGJhc2UgMTYpCQlBcGV4IEF1dG9tYXRpb25zdGVjaG5paworCQkJCVZvc3NlbmthbXAgNAorCQkJCUQtMzgxMDQgQnJhdW5zY2h3ZWlnCisJCQkJR0VSTUFOWQorCiswMC0wNS1EQiAgIChoZXgpCQlQU0kgTmVudGVjIEdtYkgKKzAwMDVEQiAgICAgKGJhc2UgMTYpCQlQU0kgTmVudGVjIEdtYkgKKwkJCQlHcmVzY2hiYWNoc3RyYXNzZSAxMgorCQkJCUthcmxzcnVoZSAgNzYyMjkKKwkJCQlHRVJNQU5ZCisKKzAwLTA1LURDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDVEQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1ERCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA1REQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtREUgICAoaGV4KQkJR2kgRm9uZSBLb3JlYSwgSW5jLgorMDAwNURFICAgICAoYmFzZSAxNikJCUdpIEZvbmUgS29yZWEsIEluYy4KKwkJCQlUd2luIEJsZGcuIDR0aCBGbCwKKwkJCQk5MDItMTI0IFRvZ29rLWRvbmcsIEthbmduYW0tZ3UsCisJCQkJU2VvdWwsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDUtREYgICAoaGV4KQkJRWxlY3Ryb25pYyBJbm5vdmF0aW9uLCBJbmMuCiswMDA1REYgICAgIChiYXNlIDE2KQkJRWxlY3Ryb25pYyBJbm5vdmF0aW9uLCBJbmMuCisJCQkJMTI3MzEgQ2FubmluZ3RvbiBXYXkgU1cKKwkJCQlDYWxnYXJ5LCBBQiBUMlcgMVo3CisJCQkJQ0FOQURBCisKKzAwLTA1LUUwICAgKGhleCkJCUVtcGlyaXggQ29ycC4KKzAwMDVFMCAgICAgKGJhc2UgMTYpCQlFbXBpcml4IENvcnAuCisJCQkJMjA1IExvd2VsbCBTdC4KKwkJCQlXaWxtaW5ndG9uIE1BIDAxODg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1FMSAgIChoZXgpCQlUcmVsbGlzIFBob3RvbmljcywgTHRkLgorMDAwNUUxICAgICAoYmFzZSAxNikJCVRyZWxsaXMgUGhvdG9uaWNzLCBMdGQuCisJCQkJUC5PLkIuIDM2CisJCQkJWW9nbmVhbSBFbGl0ZSwgMjA2OTIKKwkJCQlJU1JBRUwKKworMDAtMDUtRTIgICAoaGV4KQkJQ3JlYXRpdiBOZXR3b3JrIFRlY2hub2xvZ2llcworMDAwNUUyICAgICAoYmFzZSAxNikJCUNyZWF0aXYgTmV0d29yayBUZWNobm9sb2dpZXMKKwkJCQkxNzU1IFN0LiBSZWdpcyBTdWl0ZSAyNDAKKwkJCQlEb2xsYXJkLWRlcy1Pcm1lYXV4CisJCQkJUXVlYmVjIEg5Qi0yTTkKKwkJCQlDQU5BREEKKworMDAtMDUtRTMgICAoaGV4KQkJTGlnaHRTYW5kIENvbW11bmljYXRpb25zLCBJbmMuCiswMDA1RTMgICAgIChiYXNlIDE2KQkJTGlnaHRTYW5kIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMzc1IExvcyBDb2NoZXMgU3QuCisJCQkJTWlscGl0YXMgQ0EgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUU0ICAgKGhleCkJCVJlZCBMaW9uIENvbnRyb2xzIEluYy4KKzAwMDVFNCAgICAgKGJhc2UgMTYpCQlSZWQgTGlvbiBDb250cm9scyBJbmMuCisJCQkJMjAgV2lsbG93IFNwcmluZ3MgQ2lyY2xlCisJCQkJWW9yayBQQSAxNzQwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRTUgICAoaGV4KQkJUmVuaXNoYXcgUExDCiswMDA1RTUgICAgIChiYXNlIDE2KQkJUmVuaXNoYXcgUExDCisJCQkJTmV3IE1pbGxzLCBXb3R0b24tdW5kZXItRWRnZQorCQkJCUdsb3VjZXN0ZXJzaHVyZSwgR0wxMiA4SlIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNS1FNiAgIChoZXgpCQlFZ2VuZXJhLCBJbmMuCiswMDA1RTYgICAgIChiYXNlIDE2KQkJRWdlbmVyYSwgSW5jLgorCQkJCTE2NSBGb3Jlc3QgU3QuCisJCQkJTWFybGJvcm8gTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUU3ICAgKGhleCkJCU5ldHJha2UgYW4gQXVkaW9Db2RlcyBDb21wYW55CiswMDA1RTcgICAgIChiYXNlIDE2KQkJTmV0cmFrZSBhbiBBdWRpb0NvZGVzIENvbXBhbnkKKwkJCQkzMDAwIFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRTggICAoaGV4KQkJVHVyYm9XYXZlLCBJbmMuCiswMDA1RTggICAgIChiYXNlIDE2KQkJVHVyYm9XYXZlLCBJbmMuCisJCQkJNTU1IFNvdXRoIFN0YXRlCisJCQkJU3VpdGUgMzAyCisJCQkJT3JlbSBVVCA4NDA1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRTkgICAoaGV4KQkJVW5pY2VzcyBOZXR3b3JrLCBJbmMuCiswMDA1RTkgICAgIChiYXNlIDE2KQkJVW5pY2VzcyBOZXR3b3JrLCBJbmMuCisJCQkJODcwIERvcm90aHkgRHIuICM3MDgKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1FQSAgIChoZXgpCQlSZWRuaXgKKzAwMDVFQSAgICAgKGJhc2UgMTYpCQlSZWRuaXgKKwkJCQk1MDIsIERvbmctQSBSZXNvcnQgT2ZmaWNldGVsCisJCQkJNTM4LTggQm9uZ215dW5nLURvbmcgWXVzdW5nLAorCQkJCVRhZWpvbiAgMzA1LTcwOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1FQiAgIChoZXgpCQlCbHVlIFJpZGdlIE5ldHdvcmtzLCBJbmMuCiswMDA1RUIgICAgIChiYXNlIDE2KQkJQmx1ZSBSaWRnZSBOZXR3b3JrcywgSW5jLgorCQkJCTE0MTIwIFBhcmtlIExvbmcgQ291cnQKKwkJCQlTdWl0ZSAyMDEKKwkJCQlDaGFudGlsbHkgVkEgMjAxNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUVDICAgKGhleCkJCU1vc2FpYyBTeXN0ZW1zIEluYy4KKzAwMDVFQyAgICAgKGJhc2UgMTYpCQlNb3NhaWMgU3lzdGVtcyBJbmMuCisJCQkJNyBDYW1wYmVsbCBQYXJrCisJCQkJU29tZXJ2aWxsZSBNQSAwMjE0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRUQgICAoaGV4KQkJVGVjaG5pa3VtIEpvYW5uZXVtIEdtYkgKKzAwMDVFRCAgICAgKGJhc2UgMTYpCQlUZWNobmlrdW0gSm9hbm5ldW0gR21iSAorCQkJCUFsdGUgUG9zdHN0cmHDg8W4ZSAxNDkKKwkJCQk4MDIwIEdyYXoKKwkJCQlBVVNUUklBCisKKzAwLTA1LUVFICAgKGhleCkJCUJFV0FUT1IgR3JvdXAKKzAwMDVFRSAgICAgKGJhc2UgMTYpCQlCRVdBVE9SIEdyb3VwCisJCQkJQmV3YXRvciBBQiwgQm94IDEyNzUKKwkJCQlTRS0xNzEyNCBTb2xuYW4KKwkJCQlTV0VERU4KKworMDAtMDUtRUYgICAoaGV4KQkJQURPSVIgRGlnaXRhbCBUZWNobm9sb2d5CiswMDA1RUYgICAgIChiYXNlIDE2KQkJQURPSVIgRGlnaXRhbCBUZWNobm9sb2d5CisJCQkJMjggRmwsIFpoYW9GZW5nIFdvcmxkIFRyYWRlIEJsZGcuCisJCQkJMzY5IEppYW5nU3UgUmQuCisJCQkJU2hhbmdoYWkgMjAwMDUwLCAKKwkJCQlDSElOQQorCiswMC0wNS1GMCAgIChoZXgpCQlTQVRFQworMDAwNUYwICAgICAoYmFzZSAxNikJCVNBVEVDCisJCQkJUC5PLiBCb3ggNDUwMjIKKwkJCQlKZXJ1c2FsZW0KKwkJCQk5MTQ1MCAKKwkJCQlJU1JBRUwKKworMDAtMDUtRjEgICAoaGV4KQkJVnJjb20sIEluYy4KKzAwMDVGMSAgICAgKGJhc2UgMTYpCQlWcmNvbSwgSW5jLgorCQkJCTQwMSwgU29uZ2FtIEJsZGcsIDQ3OS0xLAorCQkJCUJhbmdiYWUgMy1kb25nLCBTZW9jaG8ta3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNS1GMiAgIChoZXgpCQlQb3dlciBSLCBJbmMuCiswMDA1RjIgICAgIChiYXNlIDE2KQkJUG93ZXIgUiwgSW5jLgorCQkJCTc1NiBBbG9oYSBTdC4KKwkJCQlTZWF0dGxlIFdBIDk4MTA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1GMyAgIChoZXgpCQlXZWJveW4KKzAwMDVGMyAgICAgKGJhc2UgMTYpCQlXZWJveW4KKwkJCQkyNiBSdWUgT2VzIEdhdWRpbmVzCisJCQkJNzgxMDAgU2FpbnQtR2VybWFpbgorCQkJCUZSQU5DRQorCiswMC0wNS1GNCAgIChoZXgpCQlTeXN0ZW0gQmFzZSBDby4sIEx0ZC4KKzAwMDVGNCAgICAgKGJhc2UgMTYpCQlTeXN0ZW0gQmFzZSBDby4sIEx0ZC4KKwkJCQk0NzUtMjIsIEJhbmdCYWUgMiBkb25nLAorCQkJCVNlb2NobyBndSwgU2VvdWwsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA1LUY1ICAgKGhleCkJCU9ZTyBHZW9zcGFjZQorMDAwNUY1ICAgICAoYmFzZSAxNikJCU9ZTyBHZW9zcGFjZQorCQkJCTcwMDcgUGluZW1vbnQKKwkJCQlIb3VzdG9uIFRYIDc3MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1GNiAgIChoZXgpCQlZb3VuZyBDaGFuZyBDby4gTHRkLgorMDAwNUY2ICAgICAoYmFzZSAxNikJCVlvdW5nIENoYW5nIENvLiBMdGQuCisJCQkJMTQzMiBNYWluIFN0cmVldAorCQkJCVdhbHRoYW0gTUEgMDI0NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUY3ICAgKGhleCkJCUFuYWxvZyBEZXZpY2VzLCBJbmMuCiswMDA1RjcgICAgIChiYXNlIDE2KQkJQW5hbG9nIERldmljZXMsIEluYy4KKwkJCQk4MDQgV29idXJuIFN0LiwgTVMgMTExCisJCQkJV2lsbWluZ3RvbiBNQSAwMTg4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRjggICAoaGV4KQkJUmVhbCBUaW1lIEFjY2VzcywgSW5jLgorMDAwNUY4ICAgICAoYmFzZSAxNikJCVJlYWwgVGltZSBBY2Nlc3MsIEluYy4KKwkJCQk0NTUgTi4gQ2FueW9ucyBQa3d5LgorCQkJCVN1aXRlIEIKKwkJCQlMaXZlcm1vcmUgQ0EgOTQ1NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA1LUY5ICAgKGhleCkJCVRPQSBDb3Jwb3JhdGlvbgorMDAwNUY5ICAgICAoYmFzZSAxNikJCVRPQSBDb3Jwb3JhdGlvbgorCQkJCTItMSBUYWthbWF0c3UtY2hvLAorCQkJCVRha2FyYXp1a2EtY2l0eQorCQkJCUh5b2dvICA2NjUtMDA0MworCQkJCUpBUEFOCisKKzAwLTA1LUZBICAgKGhleCkJCUlQT3B0aWNhbCwgSW5jLgorMDAwNUZBICAgICAoYmFzZSAxNikJCUlQT3B0aWNhbCwgSW5jLgorCQkJCTQ1OTQwIEhvcnNlc2hvZSBEcml2ZQorCQkJCVN1aXRlIDE1MAorCQkJCUR1bGxlcyBWQSAyMDE2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRkIgICAoaGV4KQkJU2hhcmVHYXRlLCBJbmMuCiswMDA1RkIgICAgIChiYXNlIDE2KQkJU2hhcmVHYXRlLCBJbmMuCisJCQkJOTgwNSBEb3VibGUgUiBCbHZkLgorCQkJCVRoaXJkIEZsb29yCisJCQkJUmVubyBOViA4OTUxMS01OTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNS1GQyAgIChoZXgpCQlTY2hlbmNrIFBlZ2FzdXMgQ29ycC4KKzAwMDVGQyAgICAgKGJhc2UgMTYpCQlTY2hlbmNrIFBlZ2FzdXMgQ29ycC4KKwkJCQkyODkwIEpvaG4gUiBSb2FkCisJCQkJVHJveSBNSSA0ODA4MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDUtRkQgICAoaGV4KQkJUGFja2V0TGlnaHQgTmV0d29ya3MgTHRkLgorMDAwNUZEICAgICAoYmFzZSAxNikJCVBhY2tldExpZ2h0IE5ldHdvcmtzIEx0ZC4KKwkJCQkyNyBIYWJhcnplbCBTdC4KKwkJCQlSYW1hdCBIYWhheWFsCisJCQkJVGVsLUF2aXYgIDY5NzEwCisJCQkJSVNSQUVMCisKKzAwLTA1LUZFICAgKGhleCkJCVRyYWZpY29uIE4uVi4KKzAwMDVGRSAgICAgKGJhc2UgMTYpCQlUcmFmaWNvbiBOLlYuCisJCQkJQmlzc2VnZW1zZXN0cmFhdCA0NQorCQkJCUItODUwMSBIZXVsZQorCQkJCUJFTEdJVU0KKworMDAtMDUtRkYgICAoaGV4KQkJU05TIFNvbHV0aW9ucywgSW5jLgorMDAwNUZGICAgICAoYmFzZSAxNikJCVNOUyBTb2x1dGlvbnMsIEluYy4KKwkJCQkybmQgRmwuIEhpbGwgSG91c2UsCisJCQkJOTktMiBTb2h5dW4sIEJ1bmRhbmcsIFN1bmduYW0sIEt5dW5nZ2ksCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTAwICAgKGhleCkJCVRvc2hpYmEgVGVsaSBDb3Jwb3JhdGlvbgorMDAwNjAwICAgICAoYmFzZSAxNikJCVRvc2hpYmEgVGVsaSBDb3Jwb3JhdGlvbgorCQkJCSA0LTctMSBBc2FoaWdhb2thLCBIaW5vLVNoaSwKKwkJCQlUb2t5byAxOTEtMDA2NQorCQkJCUpBUEFOCisKKzAwLTA2LTAxICAgKGhleCkJCU90YW5pa2Vpa2kgQ28uLCBMdGQuCiswMDA2MDEgICAgIChiYXNlIDE2KQkJT3RhbmlrZWlraSBDby4sIEx0ZC4KKwkJCQkyLTEwLTIzIEhpa2FyaS1NYWNoaQorCQkJCUhpZ2FzaGktS3UgSGlyb3NoaW1hCisJCQkJNzMyLTAwNTIKKwkJCQlKQVBBTgorCiswMC0wNi0wMiAgIChoZXgpCQlDaXJraXRlY2ggRWxlY3Ryb25pY3MgQ28uCiswMDA2MDIgICAgIChiYXNlIDE2KQkJQ2lya2l0ZWNoIEVsZWN0cm9uaWNzIENvLgorCQkJCUIxLTIsIE5vLiAzNjEsIEZ1LVhpbmcgRmlyc3QgUm9hZAorCQkJCUd1ZWktU2hhbiBIc2lhbmcsCisJCQkJVGFvLVl1YW4gCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi0wMyAgIChoZXgpCQlCYWtlciBIdWdoZXMgSW5jLgorMDAwNjAzICAgICAoYmFzZSAxNikJCUJha2VyIEh1Z2hlcyBJbmMuCisJCQkJMjAwMSBSYW5raW4gUmQuCisJCQkJSG91c3RvbiBUWCA3NzA3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMDQgICAoaGV4KQkJQFRyYWNrIENvbW11bmljYXRpb25zLCBJbmMuCiswMDA2MDQgICAgIChiYXNlIDE2KQkJQFRyYWNrIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTE1NSBLYXMgRHIuCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMDUgICAoaGV4KQkJSW5uY29tIEludGVybmF0aW9uYWwsIEluYy4KKzAwMDYwNSAgICAgKGJhc2UgMTYpCQlJbm5jb20gSW50ZXJuYXRpb25hbCwgSW5jLgorCQkJCVAuTy4gQm94IDEwNjAKKwkJCQk4MyBIYWxscyBSb2FkCisJCQkJT2xkIEx5bWUgQ1QgMDYzNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTA2ICAgKGhleCkJCVJhcGlkV0FOLCBJbmMuCiswMDA2MDYgICAgIChiYXNlIDE2KQkJUmFwaWRXQU4sIEluYy4KKwkJCQkyMDg1IEhhbWlsdG9uIEF2ZS4KKwkJCQlTdWl0ZSAjMjIwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTA3ICAgKGhleCkJCU9tbmkgRGlyZWN0aW9uYWwgQ29udHJvbCBUZWNobm9sb2d5IEluYy4KKzAwMDYwNyAgICAgKGJhc2UgMTYpCQlPbW5pIERpcmVjdGlvbmFsIENvbnRyb2wgVGVjaG5vbG9neSBJbmMuCisJCQkJOEYtMiwgTm8uIDk0LCBQYW8tQ2h1bmcgUmQuCisJCQkJSHNpbi1UaWVuIENpdHksCisJCQkJVGFpcGVpIEhzaWVuLCAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA2LTA4ICAgKGhleCkJCUF0LVNreSBTQVMKKzAwMDYwOCAgICAgKGJhc2UgMTYpCQlBdC1Ta3kgU0FTCisJCQkJWkkgQXRoZWxpYSAzLCBWb2kgQXRsYXMKKwkJCQkxMzYwMC0gTGEgQ2lvdGF0CisJCQkJRlJBTkNFCisKKzAwLTA2LTA5ICAgKGhleCkJCUNyb3NzcG9ydCBTeXN0ZW1zCiswMDA2MDkgICAgIChiYXNlIDE2KQkJQ3Jvc3Nwb3J0IFN5c3RlbXMKKwkJCQkxMDk0MCBORSAzM3JkIFBsLgorCQkJCVN1aXRlIDEwMQorCQkJCUJlbGxldnVlIFdBIDk4MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0wQSAgIChoZXgpCQlCbHVlMnNwYWNlCiswMDA2MEEgICAgIChiYXNlIDE2KQkJQmx1ZTJzcGFjZQorCQkJCUFyc3RhYW5nc3YuIDkKKwkJCQlTRS0xMTc0OCBTdG9ja2hvbG0KKwkJCQlTV0VERU4KKworMDAtMDYtMEIgICAoaGV4KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCiswMDA2MEIgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCisJCQkJMjkwMCBTLiBEaWFibG8gV2F5IFN1aXRlIDE5MAorCQkJCVRlbXBlIEFaIDg1MjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0wQyAgIChoZXgpCQlNZWxjbyBJbmR1c3RyaWVzLCBJbmMuCiswMDA2MEMgICAgIChiYXNlIDE2KQkJTWVsY28gSW5kdXN0cmllcywgSW5jLgorCQkJCTE1NzUgVy4gMTI0dGggQXZlLgorCQkJCURlbnZlciBDTyA4MDIzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMEQgICAoaGV4KQkJV2F2ZTcgT3B0aWNzCiswMDA2MEQgICAgIChiYXNlIDE2KQkJV2F2ZTcgT3B0aWNzCisJCQkJMTA3NSBXaW5kd2FyZCBSaWRnZSBQa3d5LgorCQkJCVN1aXRlIDE3MAorCQkJCUFscGhhcmV0dGEgR0EgMzAwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTBFICAgKGhleCkJCUlHWVMgU3lzdGVtcywgSW5jLgorMDAwNjBFICAgICAoYmFzZSAxNikJCUlHWVMgU3lzdGVtcywgSW5jLgorCQkJCTczNzMgTGluY29sbiBXYXkKKwkJCQlHYXJkZW4gR3JvdmUgQ0EgOTI4NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTBGICAgKGhleCkJCU5hcmFkIE5ldHdvcmtzIEluYworMDAwNjBGICAgICAoYmFzZSAxNikJCU5hcmFkIE5ldHdvcmtzIEluYworCQkJCTUxNSBHcm90b24gUm9hZAorCQkJCVdlc3Rmb3JkIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0xMCAgIChoZXgpCQlBYmVvbmEgTmV0d29ya3MgSW5jCiswMDA2MTAgICAgIChiYXNlIDE2KQkJQWJlb25hIE5ldHdvcmtzIEluYworCQkJCTQ2MTE3IExhbmRpbmcgUGFya3dheQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTExICAgKGhleCkJCVpldXMgV2lyZWxlc3MsIEluYy4KKzAwMDYxMSAgICAgKGJhc2UgMTYpCQlaZXVzIFdpcmVsZXNzLCBJbmMuCisJCQkJODMyNSBHdWlsZm9yZCBSb2FkCisJCQkJQ29sdW1iaWEgTUQgMjEwNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTEyICAgKGhleCkJCUFjY3VzeXMsIEluYy4KKzAwMDYxMiAgICAgKGJhc2UgMTYpCQlBY2N1c3lzLCBJbmMuCisJCQkJNUYsIE5vLiAzOCwgVGFpeXVhbiBTdAorCQkJCUpodWJlaSBDaXR5CisJCQkJSHNpbmNodSBDb3VudHkgIDMwMjY1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi0xMyAgIChoZXgpCQlLYXdhc2FraSBNaWNyb2VsZWN0cm9uaWNzIEluY29ycG9yYXRlZAorMDAwNjEzICAgICAoYmFzZSAxNikJCUthd2FzYWtpIE1pY3JvZWxlY3Ryb25pY3MgSW5jb3Jwb3JhdGVkCisJCQkJTVRHIEItNSwgMS0zLCBOYWthc2UsCisJCQkJTWloYW1hLWt1IENoaWJhIDI2MS04NTAxCisJCQkJSkFQQU4KKworMDAtMDYtMTQgICAoaGV4KQkJUHJpc20gSG9sZGluZ3MKKzAwMDYxNCAgICAgKGJhc2UgMTYpCQlQcmlzbSBIb2xkaW5ncworCQkJCVAuTy4gQm94IDkwMSwKKwkJCQlXaXRrb3BwZW4sIDIwNjgsCisJCQkJR2F1dGVuZyAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTA2LTE1ICAgKGhleCkJCUtpbW90byBFbGVjdHJpYyBDby4sIEx0ZC4KKzAwMDYxNSAgICAgKGJhc2UgMTYpCQlLaW1vdG8gRWxlY3RyaWMgQ28uLCBMdGQuCisJCQkJMy0xIEZ1bmFoYXNoaS1DaG8sCisJCQkJVGVubm9qaS1LdSwgT3Nha2EKKwkJCQk1NDMtMDAyNAorCQkJCUpBUEFOCisKKzAwLTA2LTE2ICAgKGhleCkJCVRlbCBOZXQgQ28uLCBMdGQuCiswMDA2MTYgICAgIChiYXNlIDE2KQkJVGVsIE5ldCBDby4sIEx0ZC4KKwkJCQkzRiBCT0YgQmxkZyA3MzAtMTUgR29qZSBTb25nCisJCQkJWWVvbmplIEd1IFB1c2FtIDYxMS0wNzMsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTE3ICAgKGhleCkJCVJlZHN3aXRjaCBJbmMuCiswMDA2MTcgICAgIChiYXNlIDE2KQkJUmVkc3dpdGNoIEluYy4KKwkJCQkxODE1IE1jQ2FuZGxlc3MgRHJpdmUKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNS04MDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0xOCAgIChoZXgpCQlEaWdpUG93ZXIgTWFudWZhY3R1cmluZyBJbmMuCiswMDA2MTggICAgIChiYXNlIDE2KQkJRGlnaVBvd2VyIE1hbnVmYWN0dXJpbmcgSW5jLgorCQkJCU5vLiAxMTQsIEZsb29yIDEzLCBTZWMuIDEsCisJCQkJSHNpbiBUYWkgV3UgUm9hZCwgU2hpanIgQ2l0eSwKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtMTkgICAoaGV4KQkJQ29ubmVjdGlvbiBUZWNobm9sb2d5IFN5c3RlbXMKKzAwMDYxOSAgICAgKGJhc2UgMTYpCQlDb25uZWN0aW9uIFRlY2hub2xvZ3kgU3lzdGVtcworCQkJCTE4Ri02LCBOby4gNzksIFNlYy4gMSwKKwkJCQlIc2luIFRhaSBXdSBSZC4KKwkJCQlIc2luY2hpaCBUYWlwZWksIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtMUEgICAoaGV4KQkJWmV0YXJpIEluYy4KKzAwMDYxQSAgICAgKGJhc2UgMTYpCQlaZXRhcmkgSW5jLgorCQkJCTQxMSBXYXZlcmx5IE9ha3MgUmQuCisJCQkJU3VpdGUgMzIzCisJCQkJV2FsdGhhbSBNQSAwMjQ1Mi04NDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0xQiAgIChoZXgpCQlOb3RlYm9vayBEZXZlbG9wbWVudCBMYWIuICBMZW5vdm8gSmFwYW4gTHRkLgorMDAwNjFCICAgICAoYmFzZSAxNikJCU5vdGVib29rIERldmVsb3BtZW50IExhYi4gIExlbm92byBKYXBhbiBMdGQuCisJCQkJMTYyMy0xNCBTaGltb3RzdXJ1bWEKKwkJCQlZYW1hdG8tc2hpIEthbmFnYXdhLWtlbgorCQkJCTI0Mi04NTAyCisJCQkJSkFQQU4KKworMDAtMDYtMUMgICAoaGV4KQkJSG9zaGlubyBNZXRhbCBJbmR1c3RyaWVzLCBMdGQuCiswMDA2MUMgICAgIChiYXNlIDE2KQkJSG9zaGlubyBNZXRhbCBJbmR1c3RyaWVzLCBMdGQuCisJCQkJNjQ1IFlhbWFub2thbWksIFlhYnV0c3VrYSwKKwkJCQlOaXR0YS1ndW4sIEd1bm1hCisJCQkJMzc5LTIzMDIKKwkJCQlKQVBBTgorCiswMC0wNi0xRCAgIChoZXgpCQlNSVAgVGVsZWNvbSwgSW5jLgorMDAwNjFEICAgICAoYmFzZSAxNikJCU1JUCBUZWxlY29tLCBJbmMuCisJCQkJM3JkIEZsb29yLCBTYW5naWwgQkxERywKKwkJCQk5NDgtMTYsIEJvbmdjaGVvbmRvbmcsIEd3YW5ha2t1LAorCQkJCVNlb3VsICAxNTEtMDY5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTFFICAgKGhleCkJCU1heGFuIFN5c3RlbXMKKzAwMDYxRSAgICAgKGJhc2UgMTYpCQlNYXhhbiBTeXN0ZW1zCisJCQkJMS04NCwgV291bGFtLWRvbmcKKwkJCQlTYWxzZW8tZ3UsIERBRUdVLAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi0xRiAgIChoZXgpCQlWaXNpb24gQ29tcG9uZW50cyBHbWJICiswMDA2MUYgICAgIChiYXNlIDE2KQkJVmlzaW9uIENvbXBvbmVudHMgR21iSAorCQkJCU90dG9zdHIuIDIKKwkJCQlFdHRsaW5nZW4sIDc2Mjc1CisJCQkJR0VSTUFOWQorCiswMC0wNi0yMCAgIChoZXgpCQlTZXJpYWwgU3lzdGVtIEx0ZC4KKzAwMDYyMCAgICAgKGJhc2UgMTYpCQlTZXJpYWwgU3lzdGVtIEx0ZC4KKwkJCQk3NiBQbGF5ZmFpciBSb2FkCisJCQkJIzA0LTAzIExISzIgQnVpbGRpbmcKKwkJCQkzNjc5OTYKKwkJCQlTSU5HQVBPUkUKKworMDAtMDYtMjEgICAoaGV4KQkJSGlub3gsIENvLiwgTHRkLgorMDAwNjIxICAgICAoYmFzZSAxNikJCUhpbm94LCBDby4sIEx0ZC4KKwkJCQkxNS03IDMtY2hvbWUsIFNlbm5pbi1jaG8sCisJCQkJSGFjaGlvamktQ2l0eSwgVG9reW8sCisJCQkJMTkzLTA4MzUKKwkJCQlKQVBBTgorCiswMC0wNi0yMiAgIChoZXgpCQlDaHVuZyBGdSBDaGVuIFllaCBFbnRlcnByaXNlIENvcnAuCiswMDA2MjIgICAgIChiYXNlIDE2KQkJQ2h1bmcgRnUgQ2hlbiBZZWggRW50ZXJwcmlzZSBDb3JwLgorCQkJCTJGIE5vLiA2NjYgSmluZyBQaW5nIFJvYWQsCisJCQkJQ2h1bmcgSG8gQ2l0eSwKKwkJCQlUYWlwZWkgSHNpZW4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtMjMgICAoaGV4KQkJTUdFIFVQUyBTeXN0ZW1zIEZyYW5jZQorMDAwNjIzICAgICAoYmFzZSAxNikJCU1HRSBVUFMgU3lzdGVtcyBGcmFuY2UKKwkJCQkxNDAgQXZlbnVlIEplYW4gS3VudHptYW5uCisJCQkJWmlyc3QgTW9udGJvbm5vdCBTdCBNYXJ0aW4gMzgzMzQgU3QgSXNtaQorCQkJCUZSQU5DRQorCiswMC0wNi0yNCAgIChoZXgpCQlHZW50bmVyIENvbW11bmljYXRpb25zIENvcnAuCiswMDA2MjQgICAgIChiYXNlIDE2KQkJR2VudG5lciBDb21tdW5pY2F0aW9ucyBDb3JwLgorCQkJCTE4MjUgUmVzZWFyY2ggV2F5CisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTI1ICAgKGhleCkJCVRoZSBMaW5rc3lzIEdyb3VwLCBJbmMuCiswMDA2MjUgICAgIChiYXNlIDE2KQkJVGhlIExpbmtzeXMgR3JvdXAsIEluYy4KKwkJCQkxNzQwMSBBcm1zdHJvbmcgQXZlLgorCQkJCUlydmluZSBDQSA5MjYxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMjYgICAoaGV4KQkJTVdFIEdtYkgKKzAwMDYyNiAgICAgKGJhc2UgMTYpCQlNV0UgR21iSAorCQkJCU9sYnJpY2h0c3RyLiAyMQorCQkJCUQtNjk0NjkgV2VpbmhlaW0KKwkJCQlHRVJNQU5ZCisKKzAwLTA2LTI3ICAgKGhleCkJCVVuaXdpZGUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA2MjcgICAgIChiYXNlIDE2KQkJVW5pd2lkZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQlLb3JlYSBEZXZlbG9wbWVudCBCYW5rIEIvRCA1dGggRmxyCisJCQkJRHVuc2FuZG9uZywgU2VvZ3UsCisJCQkJVGFlam9uIDMwMi0xMjIsIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi0yOCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA2MjggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMjkgICAoaGV4KQkJSUJNIENvcnAKKzAwMDYyOSAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMkEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNjJBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTJCICAgKGhleCkJCUlOVFJBU0VSVkVSIFRFQ0hOT0xPR1kKKzAwMDYyQiAgICAgKGJhc2UgMTYpCQlJTlRSQVNFUlZFUiBURUNITk9MT0dZCisJCQkJU0VWRU4gT0NUT0JFUiBISUxMIFJELgorCQkJCUhPTExJU1RPTiBNQSAwMTc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMkMgICAoaGV4KQkJQml2aW8gTmV0d29ya3MKKzAwMDYyQyAgICAgKGJhc2UgMTYpCQlCaXZpbyBOZXR3b3JrcworCQkJCTQ0NTcgV2lsbG93IFJvYWQsCisJCQkJUGxlYXNhbnRvbiBDQSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMkQgICAoaGV4KQkJVG91Y2hTdGFyIFRlY2hub2xvZ2llcywgTC5MLkMuCiswMDA2MkQgICAgIChiYXNlIDE2KQkJVG91Y2hTdGFyIFRlY2hub2xvZ2llcywgTC5MLkMuCisJCQkJNTE0NyBTb3V0aCBHYXJuZXR0IFJvYWQKKwkJCQlTdWl0ZSBBCisJCQkJVHVsc2EgT0sgNzQxNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTJFICAgKGhleCkJCUFyaXN0b3MgTG9naWMgQ29ycC4KKzAwMDYyRSAgICAgKGJhc2UgMTYpCQlBcmlzdG9zIExvZ2ljIENvcnAuCisJCQkJMjcwNTEgVG93bmUgQ2VudHJlIERyLgorCQkJCVN1aXRlIDI5MAorCQkJCUZvb3RoaWxsIFJhbmNoIENBIDkyNjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0yRiAgIChoZXgpCQlQaXZvdGVjaCBTeXN0ZW1zIEluYy4KKzAwMDYyRiAgICAgKGJhc2UgMTYpCQlQaXZvdGVjaCBTeXN0ZW1zIEluYy4KKwkJCQkyMDAgQ2VudGVubmlhbCBBdmUuLAorCQkJCVN1aXRlIDIyMgorCQkJCVBpc2NhdGF3YXkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTMwICAgKGhleCkJCUFkdHJhbnogU3dlZGVuCiswMDA2MzAgICAgIChiYXNlIDE2KQkJQWR0cmFueiBTd2VkZW4KKwkJCQlEZXB0LiBUQ0MvVEgKKwkJCQlPc3RyYXJpbmd2YWdlbiAyIDcyMTczIFZhc3RlcmFzCisJCQkJU1dFREVOCisKKzAwLTA2LTMxICAgKGhleCkJCU9wdGljYWwgU29sdXRpb25zLCBJbmMuCiswMDA2MzEgICAgIChiYXNlIDE2KQkJT3B0aWNhbCBTb2x1dGlvbnMsIEluYy4KKwkJCQkxNjMwNSAzNnRoIEF2ZS4gTi4KKwkJCQlTdWl0ZSAzMDAKKwkJCQlQbHltb3V0aCBNTiA1NTQ0Ni0yNjk4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0zMiAgIChoZXgpCQlNZXNjbyBFbmdpbmVlcmluZyBHbWJICiswMDA2MzIgICAgIChiYXNlIDE2KQkJTWVzY28gRW5naW5lZXJpbmcgR21iSAorCQkJCVdpZXNlbnRhbHN0cmFzc2UgNzQKKwkJCQk3OTUzOSBMb3JyYWNoCisJCQkJR0VSTUFOWQorCiswMC0wNi0zMyAgIChoZXgpCQlDcm9zcyBNYXRjaCBUZWNobm9sb2dpZXMgR21iSAorMDAwNjMzICAgICAoYmFzZSAxNikJCUNyb3NzIE1hdGNoIFRlY2hub2xvZ2llcyBHbWJICisJCQkJVW5zdHJ1dHdlZyA0CisJCQkJSmVuYSAwNzc0MworCQkJCUdFUk1BTlkKKworMDAtMDYtMzQgICAoaGV4KQkJR1RFIEFpcmZvbmUgSW5jLgorMDAwNjM0ICAgICAoYmFzZSAxNikJCUdURSBBaXJmb25lIEluYy4KKwkJCQkyODA5IEJ1dHRlcmZpZWxkCisJCQkJT2FrYnJvb2sgSUwgNjA1MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTM1ICAgKGhleCkJCVBhY2tldEFpciBOZXR3b3JrcywgSW5jLgorMDAwNjM1ICAgICAoYmFzZSAxNikJCVBhY2tldEFpciBOZXR3b3JrcywgSW5jLgorCQkJCTExNTQ1IFcuIEJlcm5hcmRvIEN0LgorCQkJCVN1aXRlIDEwMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtMzYgICAoaGV4KQkJSmVkYWkgQnJvYWRiYW5kIE5ldHdvcmtzCiswMDA2MzYgICAgIChiYXNlIDE2KQkJSmVkYWkgQnJvYWRiYW5kIE5ldHdvcmtzCisJCQkJMzMxIE5ld21hbiBTcHJpbmdzIFJkLgorCQkJCUJ1aWxkaW5nIDEsIDJuZCBGbG9vcgorCQkJCVJlZCBCYW5rIE5KIDA3NzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0zNyAgIChoZXgpCQlUb3B0cmVuZC1NZXRhIEluZm9ybWF0aW9uIChTaGVuWmhlbikgSW5jLgorMDAwNjM3ICAgICAoYmFzZSAxNikJCVRvcHRyZW5kLU1ldGEgSW5mb3JtYXRpb24gKFNoZW5aaGVuKSBJbmMuCisJCQkJMi9GLCBCbGRnLiAzLCBTZWN0aW9uIEEsIE5vci1FYXN0IFpvbmUKKwkJCQlFYXN0ZXJuIEluZHVzdHJpYWwgQXJlYSwgT3ZlcnNlYXMgQ2l0eSwKKwkJCQlDSElOQQorCiswMC0wNi0zOCAgIChoZXgpCQlTdW5namluIEMmQyBDby4sIEx0ZC4KKzAwMDYzOCAgICAgKGJhc2UgMTYpCQlTdW5namluIEMmQyBDby4sIEx0ZC4KKwkJCQkxNTQzLTYsIFNlb2Noby1kb25nLCBTZW9jaG8tZ3UsCisJCQkJU2VvdWwgIDEzNy0wNzMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtMzkgICAoaGV4KQkJTmV3dGVjCiswMDA2MzkgICAgIChiYXNlIDE2KQkJTmV3dGVjCisJCQkJTGFhcnN0cmFhdCA1CisJCQkJQi05MTAwIFNpbnQtTmlrbGFhcworCQkJCUJFTEdJVU0KKworMDAtMDYtM0EgICAoaGV4KQkJRHVyYSBNaWNybywgSW5jLgorMDAwNjNBICAgICAoYmFzZSAxNikJCUR1cmEgTWljcm8sIEluYy4KKwkJCQkxMzU4MCBGaWZ0aCBTdHJlZXQKKwkJCQlDaGlubyBDQSA5MTcxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtM0IgICAoaGV4KQkJQXJjdHVydXMgTmV0d29ya3MsIEluYy4KKzAwMDYzQiAgICAgKGJhc2UgMTYpCQlBcmN0dXJ1cyBOZXR3b3JrcywgSW5jLgorCQkJCTcwMSBFdmFucyBBdmUuIC0gU3VpdGUgMzAwCisJCQkJVG9yb250byBPbnRhcmlvIE05QyAxQTMKKwkJCQlDQU5BREEKKworMDAtMDYtM0MgICAoaGV4KQkJSW50cmluc3ljIEV1cm9wZSBMdGQKKzAwMDYzQyAgICAgKGJhc2UgMTYpCQlJbnRyaW5zeWMgRXVyb3BlIEx0ZAorCQkJCTcwMCBXZXN0IFBlbmRlciBTdHJlZXQsIDEwdGggRmxvb3IsCisJCQkJVmFuY291dmVyLCBCQywgVjZDIDFHOAorCQkJCUNBTkFEQQorCiswMC0wNi0zRCAgIChoZXgpCQlNaWNyb3dhdmUgRGF0YSBTeXN0ZW1zIEluYy4KKzAwMDYzRCAgICAgKGJhc2UgMTYpCQlNaWNyb3dhdmUgRGF0YSBTeXN0ZW1zIEluYy4KKwkJCQkxNzUgU2NpZW5jZSBQYXJrd2F5CisJCQkJUm9jaGVzdGVyIE5ZIDE0NjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0zRSAgIChoZXgpCQlPcHRob3MgSW5jLgorMDAwNjNFICAgICAoYmFzZSAxNikJCU9wdGhvcyBJbmMuCisJCQkJNTkwIFRheWxvciBXYXkKKwkJCQlTYW4gQ2FybG9zIENBIDk0MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi0zRiAgIChoZXgpCQlFdmVyZXggQ29tbXVuaWNhdGlvbnMgSW5jLgorMDAwNjNGICAgICAoYmFzZSAxNikJCUV2ZXJleCBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJNTAyMEEgQnJhbmRpbiBDdC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi00MCAgIChoZXgpCQlXaGl0ZSBSb2NrIE5ldHdvcmtzCiswMDA2NDAgICAgIChiYXNlIDE2KQkJV2hpdGUgUm9jayBOZXR3b3JrcworCQkJCVN1aXRlICM5MDAKKwkJCQkxODExMSBQcmVzdG9uIFJvYWQKKwkJCQlEYWxsYXMgVFggNzUyNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTQxICAgKGhleCkJCUlUQ04KKzAwMDY0MSAgICAgKGJhc2UgMTYpCQlJVENOCisJCQkJODU3MSBHYW5kZXIgQ3JlZWsgRHJpdmUKKwkJCQlNaWFtaXNidXJnIE9IIDQ1MzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi00MiAgIChoZXgpCQlHZW5ldGVsIFN5c3RlbXMgSW5jLgorMDAwNjQyICAgICAoYmFzZSAxNikJCUdlbmV0ZWwgU3lzdGVtcyBJbmMuCisJCQkJTW9ja3dvbyBCL0QsIDkxMiBXYWxweW91bmctRG9uZworCQkJCVNlby1HdSBUYWVqb24sCisJCQkJMzAyLTg1MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi00MyAgIChoZXgpCQlTT05PIENvbXB1dGVyIENvLiwgTHRkLgorMDAwNjQzICAgICAoYmFzZSAxNikJCVNPTk8gQ29tcHV0ZXIgQ28uLCBMdGQuCisJCQkJMUYuLCBOby4gOCwgQWxsZXkgMzUsIExhbmUgOTEsCisJCQkJU2VjLiAxLCBOZWktSHUgUm9hZCwKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtNDQgICAoaGV4KQkJTmVpeCxJbmMKKzAwMDY0NCAgICAgKGJhc2UgMTYpCQlOZWl4LEluYworCQkJCTMtNS0zLTI0LCBIaWdhc2hpc2FwcG9ybworCQkJCVNoaXJvaXNoaS1rdQorCQkJCVNhcHBvcm8gSG9ra2FpZG8gMDAzLTAwMDMKKwkJCQlKQVBBTgorCiswMC0wNi00NSAgIChoZXgpCQlNZWlzZWkgRWxlY3RyaWMgQ28uIEx0ZC4KKzAwMDY0NSAgICAgKGJhc2UgMTYpCQlNZWlzZWkgRWxlY3RyaWMgQ28uIEx0ZC4KKwkJCQkyNDktMSwgTW9yaXlhLWtvdSwgTW9yaXlhCisJCQkJS2l0YXNvdW1hLUd1biwgSWJhcmFraQorCQkJCTMwMi0wMTkyCisJCQkJSkFQQU4KKworMDAtMDYtNDYgICAoaGV4KQkJU2hlblpoZW4gWHVuQmFvIE5ldHdvcmsgVGVjaG5vbG9neSBDbyBMdGQKKzAwMDY0NiAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBYdW5CYW8gTmV0d29yayBUZWNobm9sb2d5IENvIEx0ZAorCQkJCUYzLCBSMi1BIEJ1aWxkaW5nLCBTb3V0aCBEaXN0cmljdAorCQkJCW9mIEhpZ2gtVGVjaCBJbmR1c3RyaWFsIFBhcmssCisJCQkJU2hlbiBaaGVuICAKKwkJCQlDSElOQQorCiswMC0wNi00NyAgIChoZXgpCQlFdHJhbGkgUy5BLgorMDAwNjQ3ICAgICAoYmFzZSAxNikJCUV0cmFsaSBTLkEuCisJCQkJMjIxLCBSdWUgTGEgRm9udGFpbmUKKwkJCQk5NDEzMiBGb250ZW5heSBTb3VzIEJvaXMgQ2VkZXgKKwkJCQlGUkFOQ0UKKworMDAtMDYtNDggICAoaGV4KQkJU2VlZHN3YXJlLCBJbmMuCiswMDA2NDggICAgIChiYXNlIDE2KQkJU2VlZHN3YXJlLCBJbmMuCisJCQkJIDMtNy0xNiBUZWNobm9zdGFnZSwKKwkJCQlJenVtaSwgT3Nha2EgNTk0LTExNDQKKwkJCQlKQVBBTgorCiswMC0wNi00OSAgIChoZXgpCQkzTSBEZXV0c2NobGFuZCBHbWJICiswMDA2NDkgICAgIChiYXNlIDE2KQkJM00gRGV1dHNjaGxhbmQgR21iSAorCQkJCUNhcmwtU2NodXJ6LVN0ci4gMQorCQkJCU5ldXNzICBELTQxNDUzCisJCQkJR0VSTUFOWQorCiswMC0wNi00QSAgIChoZXgpCQlIb25leXdlbGwgQ28uLCBMdGQuIChLT1JFQSkKKzAwMDY0QSAgICAgKGJhc2UgMTYpCQlIb25leXdlbGwgQ28uLCBMdGQuIChLT1JFQSkKKwkJCQk1NiwgQ2hhYW0tZG9uZywgQ2hvbmFuLWNpdHkKKwkJCQlDaG9vbmdjaGVvbmduYW0tZG8sIDMzMC0yMDAsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTRCICAgKGhleCkJCUFsZXhvbiBDby4sIEx0ZC4KKzAwMDY0QiAgICAgKGJhc2UgMTYpCQlBbGV4b24gQ28uLCBMdGQuCisJCQkJMy0yMDctMSBUZXJhbW90bywKKwkJCQlJdGFtaSwgSHlvZ28gNjY0LTAwMjYKKwkJCQlKQVBBTgorCiswMC0wNi00QyAgIChoZXgpCQlJbnZpY3RhIE5ldHdvcmtzLCBJbmMuCiswMDA2NEMgICAgIChiYXNlIDE2KQkJSW52aWN0YSBOZXR3b3JrcywgSW5jLgorCQkJCTEzODczIFBhcmsgQ2VudGVyIFJvYWQKKwkJCQlTdWl0ZSA0MDAKKwkJCQlIZXJuZG9uIFZBIDIwMTcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi00RCAgIChoZXgpCQlTZW5jb3JlCiswMDA2NEQgICAgIChiYXNlIDE2KQkJU2VuY29yZQorCQkJCTMyMDAgU2VuY29yZSBEci4KKwkJCQlTaW91eCBGYWxscyBTRCA1NzEwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNEUgICAoaGV4KQkJQnJvYWQgTmV0IFRlY2hub2xvZ3kgSW5jLgorMDAwNjRFICAgICAoYmFzZSAxNikJCUJyb2FkIE5ldCBUZWNobm9sb2d5IEluYy4KKwkJCQk1RiwgTm8uNTgsIExhbmUgMTg4LCBSdWkgS3VhbmcgUm9hZAorCQkJCU5laWh1IERpc3RyaWN0LCBUYWlwZWkgMTE0LAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtNEYgICAoaGV4KQkJUFJPLU5FVFMgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAwNjRGICAgICAoYmFzZSAxNikJCVBSTy1ORVRTIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQlQYW8tQ2h1bmcgUm9hZCwKKwkJCQlOby4gOTIsIDEwRi0xCisJCQkJSHNpbiBUaWVuIFRhaXBlaSwgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi01MCAgIChoZXgpCQlUaWJ1cm9uIE5ldHdvcmtzLCBJbmMuCiswMDA2NTAgICAgIChiYXNlIDE2KQkJVGlidXJvbiBOZXR3b3JrcywgSW5jLgorCQkJCTIwMCBNaW51dGVtYW4gUmQuCisJCQkJU3VpdGUgMkIKKwkJCQlBbmRvdmVyIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi01MSAgIChoZXgpCQlBc3BlbiBOZXR3b3JrcyBJbmMuCiswMDA2NTEgICAgIChiYXNlIDE2KQkJQXNwZW4gTmV0d29ya3MgSW5jLgorCQkJCTM3NzcgU3RldmVucyBDcmVlayBCbHZkCisJCQkJU3VpdGUgMzMwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTUyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDY1MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi01MyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA2NTMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNTQgICAoaGV4KQkJV2lucHJlc2EgQnVpbGRpbmcgQXV0b21hdGlvbiBUZWNobm9sb2dpZXMgR21iSAorMDAwNjU0ICAgICAoYmFzZSAxNikJCVdpbnByZXNhIEJ1aWxkaW5nIEF1dG9tYXRpb24gVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlWaXZlbm90Z2Fzc2UgNTMvMgorCQkJCUEtMTEyMCBWaWVubmEKKwkJCQlBVVNUUklBCisKKzAwLTA2LTU1ICAgKGhleCkJCVlpcGVlLCBJbmMuCiswMDA2NTUgICAgIChiYXNlIDE2KQkJWWlwZWUsIEluYy4KKwkJCQk1NTUgSW50ZXJuYXRpb25hbCBEcml2ZQorCQkJCVN1aXRlIDgwMAorCQkJCVdpbGxpYW1zdmlsbGUgTlkgMTQyMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTU2ICAgKGhleCkJCVRhY3RlbCBBQgorMDAwNjU2ICAgICAoYmFzZSAxNikJCVRhY3RlbCBBQgorCQkJCU5vcnJhIFZhbGxnYXRhbiA2NAorCQkJCVNFLTIxMSAyMiBNYWxtbworCQkJCVNXRURFTgorCiswMC0wNi01NyAgIChoZXgpCQlNYXJrZXQgQ2VudHJhbCwgSW5jLgorMDAwNjU3ICAgICAoYmFzZSAxNikJCU1hcmtldCBDZW50cmFsLCBJbmMuCisJCQkJNTAwIEJ1c2luZXNzIENlbnRlciBEcml2ZQorCQkJCVBpdHRzYnVyZ2ggUEEgMTUyMDUtMTMzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNTggICAoaGV4KQkJSGVsbXV0IEZpc2NoZXIgR21iSCBJbnN0aXR1dCBmw7xyIEVsZWt0cm9uaWsgdW5kIE1lc3N0ZWNobmlrCiswMDA2NTggICAgIChiYXNlIDE2KQkJSGVsbXV0IEZpc2NoZXIgR21iSCBJbnN0aXR1dCBmw7xyIEVsZWt0cm9uaWsgdW5kIE1lc3N0ZWNobmlrCisJCQkJSW5kdXN0cmlhQmUyMQorCQkJCTcxMDY5IFNpbmRlZmluZ2VuCisJCQkJR0VSTUFOWQorCiswMC0wNi01OSAgIChoZXgpCQlFQUwgKEFwZWxkb29ybikgQi5WLgorMDAwNjU5ICAgICAoYmFzZSAxNikJCUVBTCAoQXBlbGRvb3JuKSBCLlYuCisJCQkJTW9sZW5tYWtlcnNob2VrIDE0CisJCQkJSksgQXBlbGRvb3JuICA3MzI4CisJCQkJTkVUSEVSTEFORFMKKworMDAtMDYtNUEgICAoaGV4KQkJU3RyaXggU3lzdGVtcworMDAwNjVBICAgICAoYmFzZSAxNikJCVN0cml4IFN5c3RlbXMKKwkJCQkzMTAgTi4gV2VzdGxha2UgQmx2ZC4KKwkJCQlTdWl0ZSAxNTAKKwkJCQlXZXN0bGFrZSBWaWxsYWdlIENBIDkxMzYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi01QiAgIChoZXgpCQlEZWxsIENvbXB1dGVyIENvcnAuCiswMDA2NUIgICAgIChiYXNlIDE2KQkJRGVsbCBDb21wdXRlciBDb3JwLgorCQkJCU9uZSBEZWxsIFdheQorCQkJCVJvdW5kIFJvY2sgVFggNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTVDICAgKGhleCkJCU1hbGFjaGl0ZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDY1QyAgICAgKGJhc2UgMTYpCQlNYWxhY2hpdGUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTk1IE5ldyBIYW1wc2hpcmUgQXZlbnVlCisJCQkJU3VpdGUgMTUwCisJCQkJUG9ydHNtb3V0aCBOSCAwMzgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNUQgICAoaGV4KQkJSGVpZGVsYmVyZyBXZWIgU3lzdGVtcworMDAwNjVEICAgICAoYmFzZSAxNikJCUhlaWRlbGJlcmcgV2ViIFN5c3RlbXMKKwkJCQkxMjEgVGVjaG5vbG9neSBEci4KKwkJCQlEdXJoYW0gTkggMDM4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTVFICAgKGhleCkJCVBob3R1cmlzLCBJbmMuCiswMDA2NUUgICAgIChiYXNlIDE2KQkJUGhvdHVyaXMsIEluYy4KKwkJCQkyMCBDb3Jwb3JhdGUgUGxhY2UgU291dGgKKwkJCQlQaXNjYXRhd2F5IE5KIDA4ODU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi01RiAgIChoZXgpCQlFQ0kgVGVsZWNvbSAtIE5HVFMgTHRkLgorMDAwNjVGICAgICAoYmFzZSAxNikJCUVDSSBUZWxlY29tIC0gTkdUUyBMdGQuCisJCQkJMzAgSGFzaXZpbSBTdC4KKwkJCQlQZXRhaC1UaWt2YSA0OTEzMAorCQkJCUlTUkFFTAorCiswMC0wNi02MCAgIChoZXgpCQlOQURFWCBDby4sIEx0ZC4KKzAwMDY2MCAgICAgKGJhc2UgMTYpCQlOQURFWCBDby4sIEx0ZC4KKwkJCQkxIE9taXlhbWFlLCBUb2t1c2hpZ2UsCisJCQkJTmlzaGloYXJ1LWN5bywgTmlzaGlrYXN1Z2FpLWd1biwKKwkJCQlBaWNoaSAgNDgxLTAwMzgKKwkJCQlKQVBBTgorCiswMC0wNi02MSAgIChoZXgpCQlOSUEgSG9tZSBUZWNobm9sb2dpZXMgQ29ycC4KKzAwMDY2MSAgICAgKGJhc2UgMTYpCQlOSUEgSG9tZSBUZWNobm9sb2dpZXMgQ29ycC4KKwkJCQlJbm5vdmF0aW9uIEluY3ViYXRvciwgTlRIVSwKKwkJCQkxMDEsIFNlYy4gMiwgS3VhbmcgRnUgUm9hZCwKKwkJCQlIc2luY2h1IDMwMDEzLCAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA2LTYyICAgKGhleCkJCU1CTSBUZWNobm9sb2d5IEx0ZC4KKzAwMDY2MiAgICAgKGJhc2UgMTYpCQlNQk0gVGVjaG5vbG9neSBMdGQuCisJCQkJVmljdG9yaWEgUmQuCisJCQkJUG9ydHNsYWRlLCBCcmlnaHRvbiBTdXNzZXggQk40bCAxWUgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNi02MyAgIChoZXgpCQlIdW1hbiBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwNjYzICAgICAoYmFzZSAxNikJCUh1bWFuIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJM3JkIEZsLCBIeXVuZ29rIEJsZGcuLAorCQkJCTgzNi0yNSwgWXVrc2FtLURvbmcsCisJCQkJS2FuZ25hbS1rdSBTZW91bCAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtNjQgICAoaGV4KQkJRm9zdGV4IENvcnBvcmF0aW9uCiswMDA2NjQgICAgIChiYXNlIDE2KQkJRm9zdGV4IENvcnBvcmF0aW9uCisJCQkJMy0yLTM1LCBNdXNhc2hpbm8sIEFraXNoaW1hLAorCQkJCVRva3lvICAxOTYtMDAyMQorCQkJCUpBUEFOCisKKzAwLTA2LTY1ICAgKGhleCkJCVN1bm55IEdpa2VuLCBJbmMuCiswMDA2NjUgICAgIChiYXNlIDE2KQkJU3VubnkgR2lrZW4sIEluYy4KKwkJCQkzLTEtOSBOaXNoaWRhaSBJdGFtaS1zaGkKKwkJCQlIeW9nby1wcmVmLiAgNjY0LTA4NTgKKwkJCQlKQVBBTgorCiswMC0wNi02NiAgIChoZXgpCQlSb3ZpbmcgTmV0d29ya3MKKzAwMDY2NiAgICAgKGJhc2UgMTYpCQlSb3ZpbmcgTmV0d29ya3MKKwkJCQk4MDkgVW5pdmVyc2l0eSBBdmVudWUKKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTY3ICAgKGhleCkJCVRyaXBwIExpdGUKKzAwMDY2NyAgICAgKGJhc2UgMTYpCQlUcmlwcCBMaXRlCisJCQkJMTExMSBXLiAzNXRoIFN0cmVldAorCQkJCUNoaWNhZ28gSUwgNjA2MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTY4ICAgKGhleCkJCVZpY29uIEluZHVzdHJpZXMgSW5jLgorMDAwNjY4ICAgICAoYmFzZSAxNikJCVZpY29uIEluZHVzdHJpZXMgSW5jLgorCQkJCTg5IEFya2F5IERyaXZlCisJCQkJSGF1cHBhdWdlIE5ZIDExNzg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi02OSAgIChoZXgpCQlEYXRhc291bmQgTGFib3JhdG9yaWVzIEx0ZAorMDAwNjY5ICAgICAoYmFzZSAxNikJCURhdGFzb3VuZCBMYWJvcmF0b3JpZXMgTHRkCisJCQkJNSBCdXNpbmVzcyBQYXJrIFdlc3QsIEF2ZW51ZSBPbmUKKwkJCQlMZXRjaHdvcnRoLCBIZXJ0cyBTRzYgMjRCCisJCQkJRU5HTEFORCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNi02QSAgIChoZXgpCQlJbmZpbmlDb24gU3lzdGVtcywgSW5jLgorMDAwNjZBICAgICAoYmFzZSAxNikJCUluZmluaUNvbiBTeXN0ZW1zLCBJbmMuCisJCQkJNzAwIEFtZXJpY2FuIEF2ZS4KKwkJCQlTdWl0ZSAxMDEKKwkJCQlLaW5nIG9mIFBydXNzaWEgUEEgMTk0MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTZCICAgKGhleCkJCVN5c21leCBDb3Jwb3JhdGlvbgorMDAwNjZCICAgICAoYmFzZSAxNikJCVN5c21leCBDb3Jwb3JhdGlvbgorCQkJCTQtNC00IFRha2F0c3VrYWRhaSwKKwkJCQlOaXNoaS1rdSwgS29iZS1DaXR5CisJCQkJNjUxLTIyNzEKKwkJCQlKQVBBTgorCiswMC0wNi02QyAgIChoZXgpCQlSb2JpbnNvbiBDb3Jwb3JhdGlvbgorMDAwNjZDICAgICAoYmFzZSAxNikJCVJvYmluc29uIENvcnBvcmF0aW9uCisJCQkJMTJGLCBOby4gMjc4IEhvIFBpbmcgRS4gUmQuLAorCQkJCVNlYy4gMworCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi02RCAgIChoZXgpCQlDb21wdXByaW50IFMuUC5BLgorMDAwNjZEICAgICAoYmFzZSAxNikJCUNvbXB1cHJpbnQgUy5QLkEuCisJCQkJVmlhIE1hcnRpcmkgRCdJdGFsaWEgMjYKKwkJCQkxMDAxNCBDYWx1c28gKFR1cmluKQorCQkJCUlUQUxZCisKKzAwLTA2LTZFICAgKGhleCkJCURlbHRhIEVsZWN0cm9uaWNzLCBJbmMuCiswMDA2NkUgICAgIChiYXNlIDE2KQkJRGVsdGEgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQkxMUYsIDI2NiBXZW4tSHdhIDJuZCBSb2FkLAorCQkJCVNlYy4gMSwgTGlua291LCBUYWlwZWkgSHNpZW4gMjQ0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi02RiAgIChoZXgpCQlLb3JlYSBEYXRhIFN5c3RlbXMKKzAwMDY2RiAgICAgKGJhc2UgMTYpCQlLb3JlYSBEYXRhIFN5c3RlbXMKKwkJCQkxNzAsIEdvbmdkYW4tRG9uZywgR3VtaS1TaQorCQkJCUt5dW5nYnVrICA3MzAtMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LTcwICAgKGhleCkJCVVwcG9uZXR0aSBPeQorMDAwNjcwICAgICAoYmFzZSAxNikJCVVwcG9uZXR0aSBPeQorCQkJCVR5a2lzdG9rYXR1IDRECisJCQkJRklOLTIwNTIwIFR1cmt1CisJCQkJRklOTEFORAorCiswMC0wNi03MSAgIChoZXgpCQlTb2Z0aW5nIEFHCiswMDA2NzEgICAgIChiYXNlIDE2KQkJU29mdGluZyBBRworCQkJCVJpY2hhcmQtUmVpdHpuZXItQWxsZWUgNgorCQkJCTg1NTQwIEhhYXIKKwkJCQlHRVJNQU5ZCisKKzAwLTA2LTcyICAgKGhleCkJCU5ldGV6emEKKzAwMDY3MiAgICAgKGJhc2UgMTYpCQlOZXRlenphCisJCQkJMTY3MSBXb3JjZXN0ZXIgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUZyYW1pbmdoYW0gTUEgMDE3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTczICAgKGhleCkJCVRLSCBTZWN1cml0eSBTb2x1dGlvbnMgVVNBCiswMDA2NzMgICAgIChiYXNlIDE2KQkJVEtIIFNlY3VyaXR5IFNvbHV0aW9ucyBVU0EKKwkJCQkxMjkyMCBDbG92ZXJsZWFmIENlbnRlciBEcml2ZQorCQkJCUdlcm1hbnRvd24gTUQgMjA4NzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTc0ICAgKGhleCkJCVNwZWN0cnVtIENvbnRyb2wsIEluYy4KKzAwMDY3NCAgICAgKGJhc2UgMTYpCQlTcGVjdHJ1bSBDb250cm9sLCBJbmMuCisJCQkJODA2MSBBdm9uaWEgUm9hZAorCQkJCUZhaXJ2aWV3IFBBIDE2NDE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi03NSAgIChoZXgpCQlCYW5kZXJhY29tLCBJbmMuCiswMDA2NzUgICAgIChiYXNlIDE2KQkJQmFuZGVyYWNvbSwgSW5jLgorCQkJCTkyMTEgV2F0ZXJmb3JkIENlbnRyZSBCbHZkLgorCQkJCVN1aXRlIDEwMAorCQkJCUF1c3RpbiBUWCA3ODc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtNzYgICAoaGV4KQkJTm92cmEgVGVjaG5vbG9naWVzIEluYy4KKzAwMDY3NiAgICAgKGJhc2UgMTYpCQlOb3ZyYSBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTkwMC0zMzAgU3QuIE1hcnkgQXZlbnVlCisJCQkJV2lubmlwZWcgTWFuaXRvYmEgUjNDIDNaNQorCQkJCUNBTkFEQQorCiswMC0wNi03NyAgIChoZXgpCQlTSUNLIEFHCiswMDA2NzcgICAgIChiYXNlIDE2KQkJU0lDSyBBRworCQkJCUVyd2luLVNpY2sgU3RyLjEKKwkJCQlELTc5MTgzIFdhbGRraXJjaCAKKwkJCQlHRVJNQU5ZCisKKzAwLTA2LTc4ICAgKGhleCkJCU1hcmFudHogQnJhbmQgQ29tcGFueQorMDAwNjc4ICAgICAoYmFzZSAxNikJCU1hcmFudHogQnJhbmQgQ29tcGFueQorCQkJCUQmTSBCdWlsZGluZywgMi0xIE5pc3NoaW4tY2hvCisJCQkJS2F3YXNha2kta3UKKwkJCQlLYXdhc2FraS1zaGkgS2F3YWdhd2EgMjEwLTg1NjkKKwkJCQlKQVBBTgorCiswMC0wNi03OSAgIChoZXgpCQlLb25hbWkgQ29ycG9yYXRpb24KKzAwMDY3OSAgICAgKGJhc2UgMTYpCQlLb25hbWkgQ29ycG9yYXRpb24KKwkJCQkxMS0xNC01IEFrYXNha2EsIE1pbmF0by1rdSwKKwkJCQlUb2t5byAxMDctMDA1MgorCQkJCUpBUEFOCisKKzAwLTA2LTdBICAgKGhleCkJCUpNUCBTeXN0ZW1zCiswMDA2N0EgICAgIChiYXNlIDE2KQkJSk1QIFN5c3RlbXMKKwkJCQkzcmQgRmwuIFNoaW53aGEgQmxkZy4sCisJCQkJMTQ1MS0xOSwgU2VvY2hvLWRvbmcsCisJCQkJU2VvY2hvLWt1IFNlb3VsLCAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtN0IgICAoaGV4KQkJVG9wbGluayBDJkMgQ29ycG9yYXRpb24KKzAwMDY3QiAgICAgKGJhc2UgMTYpCQlUb3BsaW5rIEMmQyBDb3Jwb3JhdGlvbgorCQkJCTZGLTE1LCBOby4gMTIsIExhbmUgNjA5LCBTZWMuIDUKKwkJCQlDaHVuZyBIc2luIFJkLiwgU2FuIENodW5nIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4gMjQxICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA2LTdDICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMDY3QyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTdEICAgKGhleCkJCVRha2FzYWdvIEx0ZC4KKzAwMDY3RCAgICAgKGJhc2UgMTYpCQlUYWthc2FnbyBMdGQuCisJCQkJMS0yNC0xNiBNaXpvbm9rdWNoaSBUYWthdHN1LWt1CisJCQkJS2F3YXNha2kgS2FuYWdhd2EKKwkJCQlKQVBBTgorCiswMC0wNi03RSAgIChoZXgpCQlXaW5Db20gU3lzdGVtcywgSW5jLgorMDAwNjdFICAgICAoYmFzZSAxNikJCVdpbkNvbSBTeXN0ZW1zLCBJbmMuCisJCQkJMTA5MDAgV29ybGQgVHJhZGUgQmx2ZC4KKwkJCQlTdWl0ZSAyNTAKKwkJCQlNb3JyaXN2aWxsZSBOQyAyNzU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtN0YgICAoaGV4KQkJRGlnZW8sIEluYy4KKzAwMDY3RiAgICAgKGJhc2UgMTYpCQlEaWdlbywgSW5jLgorCQkJCTg4MTUgMTIybmQgQXZlbnVlIE5FCisJCQkJS2lya2xhbmQgV0EgOTgwMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTgwICAgKGhleCkJCUNhcmQgQWNjZXNzLCBJbmMuCiswMDA2ODAgICAgIChiYXNlIDE2KQkJQ2FyZCBBY2Nlc3MsIEluYy4KKwkJCQkxMTc3OCBTLiBFbGVjdGlvbiBSZAorCQkJCVN1aXRlIDI2MAorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDgwNDIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi04MSAgIChoZXgpCQlHb2VwZWwgRWxlY3Ryb25pYyBHbWJICiswMDA2ODEgICAgIChiYXNlIDE2KQkJR29lcGVsIEVsZWN0cm9uaWMgR21iSAorCQkJCUdvZXNjaHdpdHplciBTdHIuIDU4LTYwCisJCQkJMDc3NDUgSmVuYQorCQkJCUdFUk1BTlkKKworMDAtMDYtODIgICAoaGV4KQkJQ29udmVkaWEKKzAwMDY4MiAgICAgKGJhc2UgMTYpCQlDb252ZWRpYQorCQkJCTQxOTAgU3RpbGwgQ3JlZWsgRHIuCisJCQkJVmFuY291dmVyIEIuQy4KKwkJCQlWNUMgNkM2CisJCQkJQ0FOQURBCisKKzAwLTA2LTgzICAgKGhleCkJCUJyYXZhcmEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDY4MyAgICAgKGJhc2UgMTYpCQlCcmF2YXJhIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMjY1MCBFYXN0IEJheXNob3JlIFJvYWQKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTg0ICAgKGhleCkJCUJpYWNvcmUgQUIKKzAwMDY4NCAgICAgKGJhc2UgMTYpCQlCaWFjb3JlIEFCCisJCQkJU29mdHdhcmUsIEVsZWN0cm9uaWNzIGFuZCBPcHRpY3MKKwkJCQlSYXBzZ2F0YW4gNywgNzU0IDUwIFVwcHNhbGEKKwkJCQlTV0VERU4KKworMDAtMDYtODUgICAoaGV4KQkJTmV0TmVhclUgQ29ycG9yYXRpb24KKzAwMDY4NSAgICAgKGJhc2UgMTYpCQlOZXROZWFyVSBDb3Jwb3JhdGlvbgorCQkJCTI5MDggRmluZmVhdGhlciBSb2FkCisJCQkJQnJ5YW4gVFggNzc4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTg2ICAgKGhleCkJCVpBUkRDT00gQ28uLCBMdGQuCiswMDA2ODYgICAgIChiYXNlIDE2KQkJWkFSRENPTSBDby4sIEx0ZC4KKwkJCQk0RiwgMTU0OC0xLCBTZW9jaG8gRG9uZywgU2VvY2hvLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi04NyAgIChoZXgpCQlPbW5pdHJvbiBTeXN0ZW1zIFRlY2hub2xvZ3ksIEluYy4KKzAwMDY4NyAgICAgKGJhc2UgMTYpCQlPbW5pdHJvbiBTeXN0ZW1zIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxNDAgVGVjaG5vbG9neQorCQkJCVN1aXRlIDUwMAorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtODggICAoaGV4KQkJVGVsd2F5cyBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorMDAwNjg4ICAgICAoYmFzZSAxNikJCVRlbHdheXMgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKwkJCQkzRiwgTm8uIDUzLCBMYW5lIDI1OAorCQkJCVp1aS1LdWFuZyBSZC4sIE5laS1IdQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi04OSAgIChoZXgpCQl5TGV6IFRlY2hub2xvZ2llcyBQdGUgTHRkCiswMDA2ODkgICAgIChiYXNlIDE2KQkJeUxleiBUZWNobm9sb2dpZXMgUHRlIEx0ZAorCQkJCU5vLiAxLCBUYW5uZXJ5IFJvYWQsIENlbmNvbiAxLAorCQkJCSMwOS0wMywgMzQ3NzE5CisJCQkJU0lOR0FQT1JFCisKKzAwLTA2LThBICAgKGhleCkJCU5ldXJvbk5ldCBDby4gTHRkLiBSJkQgQ2VudGVyCiswMDA2OEEgICAgIChiYXNlIDE2KQkJTmV1cm9uTmV0IENvLiBMdGQuIFImRCBDZW50ZXIKKwkJCQk3MzUtMzQgRGFzdW5nIEJsZGcuLCBZdWtzYW0tZG9uZywKKwkJCQlLYW5nbmFtLWd1LCBTZW91bAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi04QiAgIChoZXgpCQlBaXJSdW5uZXIgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA2OEIgICAgIChiYXNlIDE2KQkJQWlyUnVubmVyIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTI0MDEgTHVwaW5lIFRyYWlsCisJCQkJU291dGggTGFrZSBUYWhvZSBDQSA5NjE1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtOEMgICAoaGV4KQkJM0NvbSBDb3Jwb3JhdGlvbgorMDAwNjhDICAgICAoYmFzZSAxNikJCTNDb20gQ29ycG9yYXRpb24KKwkJCQk1NDAwIEJheWZyb250IFBsYXphCisJCQkJTVM6ICA1MTE2CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LThEICAgKGhleCkJCVNFUEFUT04sIEluYy4KKzAwMDY4RCAgICAgKGJhc2UgMTYpCQlTRVBBVE9OLCBJbmMuCisJCQkJNDAwIE5pY2tlcnNvbiBSZC4KKwkJCQlNYXJsYm9yb3VnaCBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtOEUgICAoaGV4KQkJSElEIENvcnBvcmF0aW9uCiswMDA2OEUgICAgIChiYXNlIDE2KQkJSElEIENvcnBvcmF0aW9uCisJCQkJOTI5MiBKZXJvbmltbyBSb2FkCisJCQkJSXJ2aW5lIENBIDkyNjE4LTE5MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LThGICAgKGhleCkJCVRlbGVtb25pdG9yLCBJbmMuCiswMDA2OEYgICAgIChiYXNlIDE2KQkJVGVsZW1vbml0b3IsIEluYy4KKwkJCQk5MDU1RiBHdWlsZm9yZCBSb2FkCisJCQkJQ29sdW1iaWEgTUQgMjEwNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTkwICAgKGhleCkJCUV1cmFjb20gQ29tbXVuaWNhdGlvbiBHbWJICiswMDA2OTAgICAgIChiYXNlIDE2KQkJRXVyYWNvbSBDb21tdW5pY2F0aW9uIEdtYkgKKwkJCQlGcmFua2xpbnN0ci4gMTQKKwkJCQlELTEwNTg3IEJlcmxpbgorCQkJCUdFUk1BTlkKKworMDAtMDYtOTEgICAoaGV4KQkJUFQgSW5vdmFjYW8KKzAwMDY5MSAgICAgKGJhc2UgMTYpCQlQVCBJbm92YWNhbworCQkJCVJ1YSBFbmcuIEpvc2UgRi4gUGludG8gQmFzdG8KKwkJCQkzODEwIEF2ZWlybworCQkJCVBPUlRVR0FMCisKKzAwLTA2LTkyICAgKGhleCkJCUludHJ1dmVydCBOZXR3b3JrcywgSW5jLgorMDAwNjkyICAgICAoYmFzZSAxNikJCUludHJ1dmVydCBOZXR3b3JrcywgSW5jLgorCQkJCVN1aXRlIDEwMgorCQkJCTIyOTAgTm9ydGggRmlyc3QgU3RyZWV0CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTkzICAgKGhleCkJCUZsZXh1cyBDb21wdXRlciBUZWNobm9sb2d5LCBJbmMuCiswMDA2OTMgICAgIChiYXNlIDE2KQkJRmxleHVzIENvbXB1dGVyIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk4Ri0yLCBOby41LCBBbGxleTIyLCBMYW5lIDUxMywKKwkJCQlSdWVpLUd1YW5nIFJkLiwgTmVpLUh1IERpc3QuLAorCQkJCVRhaXBlaSAxMTQgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtOTQgICAoaGV4KQkJTW9iaWxsaWFuIENvcnBvcmF0aW9uCiswMDA2OTQgICAgIChiYXNlIDE2KQkJTW9iaWxsaWFuIENvcnBvcmF0aW9uCisJCQkJMTEwMzEgVmlhIEZyb250ZXJhCisJCQkJU3VpdGUgQworCQkJCVNhbiBEaWVnbyBDQSA5MjEyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtOTUgICAoaGV4KQkJRW5zdXJlIFRlY2hub2xvZ2llcywgSW5jLgorMDAwNjk1ICAgICAoYmFzZSAxNikJCUVuc3VyZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkzNTI2IFdlc3QgTGliZXJ0eQorCQkJCVN1aXRlIDEwMAorCQkJCUFubiBBcmJvciBNSSA0ODEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtOTYgICAoaGV4KQkJQWR2ZW50IE5ldHdvcmtzCiswMDA2OTYgICAgIChiYXNlIDE2KQkJQWR2ZW50IE5ldHdvcmtzCisJCQkJOTYwMCBHcmVhdCBIaWxscyBUci4KKwkJCQlTdWl0ZSAzMDBFCisJCQkJQXVzdGluIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi05NyAgIChoZXgpCQlSICYgRCBDZW50ZXIKKzAwMDY5NyAgICAgKGJhc2UgMTYpCQlSICYgRCBDZW50ZXIKKwkJCQk1RiwgU2V1bmd3b24gQi9ELCA4MTAtOQorCQkJCUJhbmdiYWUtRG9uZywgU2VvY2hvLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi05OCAgIChoZXgpCQllZ25pdGUgU29mdHdhcmUgR21iSAorMDAwNjk4ICAgICAoYmFzZSAxNikJCWVnbml0ZSBTb2Z0d2FyZSBHbWJICisJCQkJRXJpbnN0ci4gOQorCQkJCUNhc3Ryb3AtUmF1eGVsIEQtNDQ1NzUKKwkJCQlHRVJNQU5ZCisKKzAwLTA2LTk5ICAgKGhleCkJCVZpZGEgRGVzaWduIENvLgorMDAwNjk5ICAgICAoYmFzZSAxNikJCVZpZGEgRGVzaWduIENvLgorCQkJCTEwRiwgTm8uIDI3OCBIbyBQaW5nIEUuIFJkLiwKKwkJCQlTZWMuIDMsIFRhaXBlaQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtOUEgICAoaGV4KQkJZSAmIFRlbAorMDAwNjlBICAgICAoYmFzZSAxNikJCWUgJiBUZWwKKwkJCQkxMDAgU2Vqb25nLW5vIENob25nbm8tZ3UsCisJCQkJU2VvdWwgMTEwLTc3NywKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtOUIgICAoaGV4KQkJQVZUIEF1ZGlvIFZpZGVvIFRlY2hub2xvZ2llcyBHbWJICiswMDA2OUIgICAgIChiYXNlIDE2KQkJQVZUIEF1ZGlvIFZpZGVvIFRlY2hub2xvZ2llcyBHbWJICisJCQkJUmF0aHNiZXJnc3RyYXNzZSAxNworCQkJCUQtOTA0MTEgTnVlcm5iZXJnCisJCQkJR0VSTUFOWQorCiswMC0wNi05QyAgIChoZXgpCQlUcmFuc21vZGUgU3lzdGVtcyBBQgorMDAwNjlDICAgICAoYmFzZSAxNikJCVRyYW5zbW9kZSBTeXN0ZW1zIEFCCisJCQkJSmFrb2JzZGFsc3bDg8KkZ2VuIDE3CisJCQkJSMOD4oCeR0VSU1RFTiBTRS0xMjYgNTMKKwkJCQlTV0VERU4KKworMDAtMDYtOUQgICAoaGV4KQkJUGV0YXJkcyBMdGQKKzAwMDY5RCAgICAgKGJhc2UgMTYpCQlQZXRhcmRzIEx0ZAorCQkJCTM5MCBQcmluY2Vzd2F5LCBUZWFtIFZhbGxleQorCQkJCUdhdGVzaGVhZCBUeW5lIGFuZCBXZWFyIE5FMTEgT1RVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDYtOUUgICAoaGV4KQkJVU5JUUEsIEluYy4KKzAwMDY5RSAgICAgKGJhc2UgMTYpCQlVTklRQSwgSW5jLgorCQkJCTQ3NyBWYWxsZXkgV2F5CisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LTlGICAgKGhleCkJCUt1b2tvYSBOZXR3b3JrcworMDAwNjlGICAgICAoYmFzZSAxNikJCUt1b2tvYSBOZXR3b3JrcworCQkJCTI5MDEgVGFzbWFuIERyLgorCQkJCVN1aXRlIDIwMgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1BMCAgIChoZXgpCQlNeCBJbWFnaW5nCiswMDA2QTAgICAgIChiYXNlIDE2KQkJTXggSW1hZ2luZworCQkJCTIzNDEgVy4gMjA1dGggU3RyZWV0CisJCQkJU3VpdGUgMTEwCisJCQkJVG9ycmFuY2UgQ0EgOTA1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUExICAgKGhleCkJCUNlbHNpYW4gVGVjaG5vbG9naWVzLCBJbmMuCiswMDA2QTEgICAgIChiYXNlIDE2KQkJQ2Vsc2lhbiBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkzMDAyIERvdyBBdmUuLCBVbml0IDEzOAorCQkJCVR1c3RpbiBDQSA5Mjc4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQTIgICAoaGV4KQkJTWljcm90dW5lLCBJbmMuCiswMDA2QTIgICAgIChiYXNlIDE2KQkJTWljcm90dW5lLCBJbmMuCisJCQkJNjQ0MCBMdXNrIEJsdmQuLCBTdWl0ZSBEMjA1CisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1BMyAgIChoZXgpCQlCaXRyYW4gQ29ycG9yYXRpb24KKzAwMDZBMyAgICAgKGJhc2UgMTYpCQlCaXRyYW4gQ29ycG9yYXRpb24KKwkJCQkyMjEzIE1vY2hpZGEKKwkJCQlHeW91ZGEgU2FpdGFtYQorCQkJCUpBUEFOCisKKzAwLTA2LUE0ICAgKGhleCkJCUlOTk9XRUxMIENvcnAuCiswMDA2QTQgICAgIChiYXNlIDE2KQkJSU5OT1dFTEwgQ29ycC4KKwkJCQkjNzE3IENob25nR3UgQmx1ZXZpbGwKKwkJCQkxMS0xLCBTdW5hZS0xIERvbmcsIEJ1bmRhbmctR3UsIFN1bmduYW0tCisJCQkJNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi1BNSAgIChoZXgpCQlQSU5PTiBDb3JwLgorMDAwNkE1ICAgICAoYmFzZSAxNikJCVBJTk9OIENvcnAuCisJCQkJREsgR290YW5kYSBCbGRnLjdGCisJCQkJNy0xMy01IE5pc2hpZ290YW5kYSBTaGluYWdhd2Eta3UKKwkJCQlUb2t5byAgMTQxLTAwMzEKKwkJCQlKQVBBTgorCiswMC0wNi1BNiAgIChoZXgpCQlBcnRpc3RpYyBMaWNlbmNlIChVSykgTHRkCiswMDA2QTYgICAgIChiYXNlIDE2KQkJQXJ0aXN0aWMgTGljZW5jZSAoVUspIEx0ZAorCQkJCTI0IEZvcndhcmQgRHJpdmUKKwkJCQlDaHJpc3RjaHVyY2ggQXZlbnVlCisJCQkJSGFycm93IE1pZGRsZXNleCBIQTMgOE5UCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDYtQTcgICAoaGV4KQkJUHJpbWFyaW9uCiswMDA2QTcgICAgIChiYXNlIDE2KQkJUHJpbWFyaW9uCisJCQkJMzQ1MCBUb3JyYW5jZSBCbHZkLgorCQkJCVRvcnJhbmNlIENBIDkwNTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1BOCAgIChoZXgpCQlLQyBUZWNobm9sb2d5LCBJbmMuCiswMDA2QTggICAgIChiYXNlIDE2KQkJS0MgVGVjaG5vbG9neSwgSW5jLgorCQkJCTE5MDAgTWNDYXJ0aHkgQmx2ZC4KKwkJCQlTdWl0ZSAzMDAKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQTkgICAoaGV4KQkJVW5pdmVyc2FsIEluc3RydW1lbnRzIENvcnAuCiswMDA2QTkgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIEluc3RydW1lbnRzIENvcnAuCisJCQkJUE8gQm94IDgyNQorCQkJCUJpbmdoYW10b24gTlkgMTM5MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUFBICAgKGhleCkJCVZUIE1pbHRvcGUKKzAwMDZBQSAgICAgKGJhc2UgMTYpCQlWVCBNaWx0b3BlCisJCQkJNDkwMCBQZWFybCBFYXN0IENpcmNsZQorCQkJCVN1aXRlIDEwNgorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUFCICAgKGhleCkJCVctTGluayBTeXN0ZW1zLCBJbmMuCiswMDA2QUIgICAgIChiYXNlIDE2KQkJVy1MaW5rIFN5c3RlbXMsIEluYy4KKwkJCQlOby4gMjAsIFBhcmsgQXZlLiBJSSwKKwkJCQlTY2llbmNlIEJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA2LUFDICAgKGhleCkJCUludGVyc29mdCBDby4KKzAwMDZBQyAgICAgKGJhc2UgMTYpCQlJbnRlcnNvZnQgQ28uCisJCQkJIzE4MDMgc3VuLWt5b3VuZyBPZmZpY2V0ZWwKKwkJCQkxMDYtNCBCdW56aSwgR3VybzVEb25nLCBHdXJvIEd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi1BRCAgIChoZXgpCQlLQiBFbGVjdHJvbmljcyBMdGQuCiswMDA2QUQgICAgIChiYXNlIDE2KQkJS0IgRWxlY3Ryb25pY3MgTHRkLgorCQkJCTE1MCBCbHVld2F0ZXIgUmQuCisJCQkJQmVkZm9yZCwgTm92YSBTY290aWEKKwkJCQlCNEIgMUc5CisJCQkJQ0FOQURBCisKKzAwLTA2LUFFICAgKGhleCkJCUhpbWFjaGFsIEZ1dHVyaXN0aWMgQ29tbXVuaWNhdGlvbnMgTHRkCiswMDA2QUUgICAgIChiYXNlIDE2KQkJSGltYWNoYWwgRnV0dXJpc3RpYyBDb21tdW5pY2F0aW9ucyBMdGQKKwkJCQk4LCBDb21tZXJjaWFsIENvbXBsZXgKKwkJCQlNYXNqaWQgTW90aCwgR3JlYXRlciBLYWlsYXNoIElJCisJCQkJTmV3IERlaGxpICAxMTAwNDgKKwkJCQlJTkRJQQorCiswMC0wNi1BRiAgIChoZXgpCQlYYWx0ZWQgTmV0d29ya3MKKzAwMDZBRiAgICAgKGJhc2UgMTYpCQlYYWx0ZWQgTmV0d29ya3MKKwkJCQkyOTAxIERhbGxhcyBQYXJrd2F5CisJCQkJU3VpdGUgMjAwCisJCQkJUGxhbm8gVFggNzUwOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUIwICAgKGhleCkJCUNvbXRlY2ggRUYgRGF0YSBDb3JwLgorMDAwNkIwICAgICAoYmFzZSAxNikJCUNvbXRlY2ggRUYgRGF0YSBDb3JwLgorCQkJCTIxMTQgVy4gN3RoIFN0LgorCQkJCVRlbXBlIEFaIDg1MjgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1CMSAgIChoZXgpCQlTb25pY3dhbGwKKzAwMDZCMSAgICAgKGJhc2UgMTYpCQlTb25pY3dhbGwKKwkJCQkxMTYwIEJvcmRlYXV4IERyLgorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQjIgICAoaGV4KQkJTGlueHRlayBDby4KKzAwMDZCMiAgICAgKGJhc2UgMTYpCQlMaW54dGVrIENvLgorCQkJCTJGIEt1bS1hIEIvRCAzMS0zIEthcmFrLWRvbmcsCisJCQkJU29uZ3BhLWt1LCBTZW91bCwKKwkJCQkxMzgtMTYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LUIzICAgKGhleCkJCURpYWdyYXBoIENvcnBvcmF0aW9uCiswMDA2QjMgICAgIChiYXNlIDE2KQkJRGlhZ3JhcGggQ29ycG9yYXRpb24KKwkJCQkzNDAxIFJpZGVyIFRyYWlsIFNvdXRoCisJCQkJRWFydGggQ2l0eSBNTyA2MzA0NS0xMTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1CNCAgIChoZXgpCQlWb3JuZSBJbmR1c3RyaWVzLCBJbmMuCiswMDA2QjQgICAgIChiYXNlIDE2KQkJVm9ybmUgSW5kdXN0cmllcywgSW5jLgorCQkJCTE0NDUgSW5kdXN0cmlhbCBEci4KKwkJCQlJdGFzY2EgSUwgNjAxNDMtMTg0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQjUgICAoaGV4KQkJU291cmNlIFBob3RvbmljcywgSW5jLgorMDAwNkI1ICAgICAoYmFzZSAxNikJCVNvdXJjZSBQaG90b25pY3MsIEluYy4KKwkJCQkyMDU1MCBOb3JkaG9mZiBTdC4KKwkJCQlDaGF0c3dvcnRoIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1CNiAgIChoZXgpCQlOaXItT3IgSXNyYWVsIEx0ZC4KKzAwMDZCNiAgICAgKGJhc2UgMTYpCQlOaXItT3IgSXNyYWVsIEx0ZC4KKwkJCQkxMSBBbWFsIFN0LgorCQkJCVJvc2ggSGEnYXlpbiA0ODA5MgorCQkJCUlTUkFFTAorCiswMC0wNi1CNyAgIChoZXgpCQlURUxFTSBHbWJICiswMDA2QjcgICAgIChiYXNlIDE2KQkJVEVMRU0gR21iSAorCQkJCUxpc2UtTWVpdG5lci1BbGxlZSAzMQorCQkJCUQgNDQ4MDEKKwkJCQlHRVJNQU5ZCisKKzAwLTA2LUI4ICAgKGhleCkJCUJhbmRzcGVlZCBQdHkgTHRkCiswMDA2QjggICAgIChiYXNlIDE2KQkJQmFuZHNwZWVkIFB0eSBMdGQKKwkJCQlMZXZlbCA5LCA1MDAwIENvbGxpbnMgU3RyZWV0CisJCQkJTWVsYm91cm5lIFZpYyAzMDAwCisJCQkJQVVTVFJBTElBCisKKzAwLTA2LUI5ICAgKGhleCkJCUE1VEVLIENvcnAuCiswMDA2QjkgICAgIChiYXNlIDE2KQkJQTVURUsgQ29ycC4KKwkJCQkxMjMzIEFsZGVyd29vZCBBdmUuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1CQSAgIChoZXgpCQlXZXN0d2F2ZSBDb21tdW5pY2F0aW9ucworMDAwNkJBICAgICAoYmFzZSAxNikJCVdlc3R3YXZlIENvbW11bmljYXRpb25zCisJCQkJNDYzIEF2aWF0aW9uIEJsdmQuCisJCQkJU2FudGEgUm9zYSBDQSA5NTQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtQkIgICAoaGV4KQkJQVRJIFRlY2hub2xvZ2llcyBJbmMuCiswMDA2QkIgICAgIChiYXNlIDE2KQkJQVRJIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNzUgVGl2ZXJ0b24gQ291cnQKKwkJCQlVbmlvbnZpbGxlLCBPTiBMM1IgOTUzCisJCQkJQ0FOQURBCisKKzAwLTA2LUJDICAgKGhleCkJCU1hY3JvbGluaywgSW5jLgorMDAwNkJDICAgICAoYmFzZSAxNikJCU1hY3JvbGluaywgSW5jLgorCQkJCTE1MDAgTiBLZWxsb2dnIERyLgorCQkJCUFuYWhlaW0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUJEICAgKGhleCkJCUJOVEVDSE5PTE9HWSBDby4sIEx0ZC4KKzAwMDZCRCAgICAgKGJhc2UgMTYpCQlCTlRFQ0hOT0xPR1kgQ28uLCBMdGQuCisJCQkJNjAyIFlvdW5nc2hpbiBCbGRnLiAyMzgtOAorCQkJCVBvaS1Eb25nIEthbmduYW0tR3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LUJFICAgKGhleCkJCUJhdW1lciBPcHRyb25pYyBHbWJICiswMDA2QkUgICAgIChiYXNlIDE2KQkJQmF1bWVyIE9wdHJvbmljIEdtYkgKKwkJCQlCYWRzdHJhc3NlIDMwCisJCQkJRC0wMTQ1NCBSYWRlYmVyZworCQkJCUdFUk1BTlkKKworMDAtMDYtQkYgICAoaGV4KQkJQWNjZWxsYSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDA2QkYgICAgIChiYXNlIDE2KQkJQWNjZWxsYSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJUm0gNTEyIE5vLiA2ODAgR3VpIFBpbmcgUmQuCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTA2LUMwICAgKGhleCkJCVVuaXRlZCBJbnRlcm5ldHdvcmtzLCBJbmMuCiswMDA2QzAgICAgIChiYXNlIDE2KQkJVW5pdGVkIEludGVybmV0d29ya3MsIEluYy4KKwkJCQk1MDcyIE5vcnRoIDMwMCBXZXN0LCBTdWl0ZSAyTgorCQkJCVByb3ZvIFVUIDg0NjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1DMSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDA2QzEgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1DMiAgIChoZXgpCQlTbWFydG1hdGljIENvcnBvcmF0aW9uCiswMDA2QzIgICAgIChiYXNlIDE2KQkJU21hcnRtYXRpYyBDb3Jwb3JhdGlvbgorCQkJCTY0MDAgQ29uZ3Jlc3MgQXZlLiwgU3VpdGUgMTMwMAorCQkJCUJvY2EgUmF0b24gRkwgMzM0ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUMzICAgKGhleCkJCVNjaGluZGxlciBFbGV2YXRvciBMdGQuCiswMDA2QzMgICAgIChiYXNlIDE2KQkJU2NoaW5kbGVyIEVsZXZhdG9yIEx0ZC4KKwkJCQlEZXB0LiBSJkQtQ08KKwkJCQlWaWEgZGVsbGEgUGFjZSAyMgorCQkJCUxvY2Fybm8gQ0gtNjYwMAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA2LUM0ICAgKGhleCkJCVBpb2xpbmsgSW5jLgorMDAwNkM0ICAgICAoYmFzZSAxNikJCVBpb2xpbmsgSW5jLgorCQkJCUlUIENhc3RsZSAxLTQwMSwgNTUwLTEgR2FzYW4tZG9uZywKKwkJCQkxNjU2LTIgU2VvY2hvLUd1LCBTZW91bAorCQkJCVNlb3VsIEdldW1jaG9uLUd1IDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtQzUgICAoaGV4KQkJSU5OT1ZJIFRlY2hub2xvZ2llcyBMaW1pdGVkCiswMDA2QzUgICAgIChiYXNlIDE2KQkJSU5OT1ZJIFRlY2hub2xvZ2llcyBMaW1pdGVkCisJCQkJMzFzdCBGbG9vciwgQ2hpbmEgT25saW5lIENlbnRyZQorCQkJCTMzMyBMb2NraGFydCBSb2FkCisJCQkJV2FuY2hhaSAKKwkJCQlIT05HIEtPTkcKKworMDAtMDYtQzYgICAoaGV4KQkJbGVzc3dpcmUgQUcKKzAwMDZDNiAgICAgKGJhc2UgMTYpCQlsZXNzd2lyZSBBRworCQkJCUltIFRlY2hub2xvZ2llcGFyayAyNQorCQkJCUdFUk1BTlkKKworMDAtMDYtQzcgICAoaGV4KQkJUkZORVQgVGVjaG5vbG9naWVzIFB0ZSBMdGQgKFMpCiswMDA2QzcgICAgIChiYXNlIDE2KQkJUkZORVQgVGVjaG5vbG9naWVzIFB0ZSBMdGQgKFMpCisJCQkJVW5pdCAyMzMgSW5ub3ZhdGlvbiBDZW50cmUgQmxrIDIKKwkJCQkxOCBOYW55YW5nIERyaXZlCisJCQkJNjM3NzIyCisJCQkJU0lOR0FQT1JFCisKKzAwLTA2LUM4ICAgKGhleCkJCVN1bWl0b21vIE1ldGFsIE1pY3JvIERldmljZXMsIEluYy4KKzAwMDZDOCAgICAgKGJhc2UgMTYpCQlTdW1pdG9tbyBNZXRhbCBNaWNybyBEZXZpY2VzLCBJbmMuCisJCQkJMSwgSGlnYXNoaW11a29qaW1hIEhpZ2FzaGluby1jaG8KKwkJCQlBbWFnYXNha2ksIEh5b2dvLCA2NjAtODY2MAorCQkJCUpBUEFOCisKKzAwLTA2LUM5ICAgKGhleCkJCVRlY2huaWNhbCBNYXJrZXRpbmcgUmVzZWFyY2gsIEluYy4KKzAwMDZDOSAgICAgKGJhc2UgMTYpCQlUZWNobmljYWwgTWFya2V0aW5nIFJlc2VhcmNoLCBJbmMuCisJCQkJU2hpbiBOaWhvbiBHaWp1dHN1IEJsZGcuCisJCQkJMS0xLTMyLCBTaGliYWRhaW1vbiwgTWluYXRvLWt1CisJCQkJVG9reW8gMTA1LTAwMTIgIDEwNS0wMDEyCisJCQkJSkFQQU4KKworMDAtMDYtQ0EgICAoaGV4KQkJQW1lcmljYW4gQ29tcHV0ZXIgJiBEaWdpdGFsIENvbXBvbmVudHMsIEluYy4gKEFDREMpCiswMDA2Q0EgICAgIChiYXNlIDE2KQkJQW1lcmljYW4gQ29tcHV0ZXIgJiBEaWdpdGFsIENvbXBvbmVudHMsIEluYy4gKEFDREMpCisJCQkJNDQwIENsb3ZlcmxlYWYgRHJpdmUKKwkJCQlCYWxkd2luIFBhcmsgQ0EgOTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUNCICAgKGhleCkJCUpvdHJvbiBFbGVjdHJvbmljcyBBL1MKKzAwMDZDQiAgICAgKGJhc2UgMTYpCQlKb3Ryb24gRWxlY3Ryb25pY3MgQS9TCisJCQkJUG9iIDU0CisJCQkJTjMyODAgVGpvZGFseW5nCisJCQkJTk9SV0FZCisKKzAwLTA2LUNDICAgKGhleCkJCUpNSSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMDZDQyAgICAgKGJhc2UgMTYpCQlKTUkgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJTmFueWFuZyBCL0QgM0YsIDI1LTQKKwkJCQlZb25tdW4tZG9uZywgWW9uZ3Nhbi1ndQorCQkJCVNlb3VsICAxNDAtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LUNEICAgKGhleCkJCUxlYWYgSW1hZ2luZyBMdGQuCiswMDA2Q0QgICAgIChiYXNlIDE2KQkJTGVhZiBJbWFnaW5nIEx0ZC4KKwkJCQk3dGggSGF0bnVmYSBzdAorCQkJCVBldGFjaC1UaWt2YSAgNDkwMDIKKwkJCQlJU1JBRUwKKworMDAtMDYtQ0UgICAoaGV4KQkJREFURU5PCiswMDA2Q0UgICAgIChiYXNlIDE2KQkJREFURU5PCisJCQkJUnVlIEFtaXJhbCBCZXJlbmdlcgorCQkJCVphYyBFcyBQYXNzYW50cyBJSSBCUCA5MDE0NSwgMzU4MDEgRGluYXIKKwkJCQlGUkFOQ0UKKworMDAtMDYtQ0YgICAoaGV4KQkJVGhhbGVzIEF2aW9uaWNzIEluLUZsaWdodCBTeXN0ZW1zLCBMTEMKKzAwMDZDRiAgICAgKGJhc2UgMTYpCQlUaGFsZXMgQXZpb25pY3MgSW4tRmxpZ2h0IFN5c3RlbXMsIExMQworCQkJCTE3NDgxIFJlZCBIaWxsIEF2ZW51ZQorCQkJCUlydmluZSBDQSA5MjYxNC01NjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1EMCAgIChoZXgpCQlFbGdhciBFbGVjdHJvbmljcyBDb3JwLgorMDAwNkQwICAgICAoYmFzZSAxNikJCUVsZ2FyIEVsZWN0cm9uaWNzIENvcnAuCisJCQkJOTI1MCBCcm93biBEZWVyIFJkLgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRDEgICAoaGV4KQkJVGFob2UgTmV0d29ya3MsIEluYy4KKzAwMDZEMSAgICAgKGJhc2UgMTYpCQlUYWhvZSBOZXR3b3JrcywgSW5jLgorCQkJCTMwNTIgT3JjaGFyZCBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1EMiAgIChoZXgpCQlUdW5kcmEgU2VtaWNvbmR1Y3RvciBDb3JwLgorMDAwNkQyICAgICAoYmFzZSAxNikJCVR1bmRyYSBTZW1pY29uZHVjdG9yIENvcnAuCisJCQkJNjAzIE1hcmNoIFJvYWQKKwkJCQlLYW5hdGEsIE9udC4KKwkJCQlLMkstMk01CisJCQkJQ0FOQURBCisKKzAwLTA2LUQzICAgKGhleCkJCUFscGhhIFRlbGVjb20sIEluYy4gVS5TLkEuCiswMDA2RDMgICAgIChiYXNlIDE2KQkJQWxwaGEgVGVsZWNvbSwgSW5jLiBVLlMuQS4KKwkJCQkxMzk0IEJvcnJlZ29yIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUQ0ICAgKGhleCkJCUludGVyYWN0aXZlIE9iamVjdHMsIEluYy4KKzAwMDZENCAgICAgKGJhc2UgMTYpCQlJbnRlcmFjdGl2ZSBPYmplY3RzLCBJbmMuCisJCQkJMTI2MDAgU0UgMzh0aCBTdC4KKwkJCQlTdWl0ZSAxNTAKKwkJCQlCZWxsZXZ1ZSBXQSA5ODAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRDUgICAoaGV4KQkJRGlhbW9uZCBTeXN0ZW1zIENvcnAuCiswMDA2RDUgICAgIChiYXNlIDE2KQkJRGlhbW9uZCBTeXN0ZW1zIENvcnAuCisJCQkJODQzMC1EIENlbnRyYWwgQXZlLgorCQkJCU5ld2FyayBDQSA5NDU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRDYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNkQ2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUQ3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMDZENyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1EOCAgIChoZXgpCQlNYXBsZSBPcHRpY2FsIFN5c3RlbXMKKzAwMDZEOCAgICAgKGJhc2UgMTYpCQlNYXBsZSBPcHRpY2FsIFN5c3RlbXMKKwkJCQkzMjAwIE5vcnRoIEZpcnN0IFN0LgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1EOSAgIChoZXgpCQlJUE0tTmV0IFMucC5BLgorMDAwNkQ5ICAgICAoYmFzZSAxNikJCUlQTS1OZXQgUy5wLkEuCisJCQkJVmlhIFJlbW8gRGUgRmVvCisJCQkJODAwMjIgQXJ6YW5vIChOYXBsZXMpCisJCQkJSVRBTFkKKworMDAtMDYtREEgICAoaGV4KQkJSVRSQU4gQ29tbXVuaWNhdGlvbnMgTHRkLgorMDAwNkRBICAgICAoYmFzZSAxNikJCUlUUkFOIENvbW11bmljYXRpb25zIEx0ZC4KKwkJCQkxIEF6cmllbGkgQ2VudGVyLAorCQkJCVRoZSByb3VuZCBidWlsZGluZworCQkJCVRlbCBBdml2IDY3MDIxICAgNjcwMjEKKwkJCQlJU1JBRUwKKworMDAtMDYtREIgICAoaGV4KQkJSUNISVBTIENvLiwgTHRkLgorMDAwNkRCICAgICAoYmFzZSAxNikJCUlDSElQUyBDby4sIEx0ZC4KKwkJCQkzRiwgU2FtamVvbiBCbGRnLiwgMjM2LTMKKwkJCQlOb25oeXVuLURvbmcsIEthbmduYW0ta3UKKwkJCQlTZW91bC1DaXR5ICAxMzUtMDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtREMgICAoaGV4KQkJU3lhYmFzIFRlY2hub2xvZ3kgKEFtcXVlc3QpCiswMDA2REMgICAgIChiYXNlIDE2KQkJU3lhYmFzIFRlY2hub2xvZ3kgKEFtcXVlc3QpCisJCQkJNDcyNyBQYXNlbyBQYWRyZSBQYXJrd2F5CisJCQkJRnJlbW9udCBDQSA5NDU1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtREQgICAoaGV4KQkJQVQgJiBUIExhYm9yYXRvcmllcyAtIENhbWJyaWRnZSBMdGQKKzAwMDZERCAgICAgKGJhc2UgMTYpCQlBVCAmIFQgTGFib3JhdG9yaWVzIC0gQ2FtYnJpZGdlIEx0ZAorCQkJCTI0YSBUcnVtcGluZ3RvbiBTdHJlZXQKKwkJCQlDYW1icmlkZ2UsIENCMiAxUUEKKwkJCQlFTkdMQU5EIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA2LURFICAgKGhleCkJCUZsYXNoIFRlY2hub2xvZ3kKKzAwMDZERSAgICAgKGJhc2UgMTYpCQlGbGFzaCBUZWNobm9sb2d5CisJCQkJUC5PLiBCb3ggNjgxNTA5CisJCQkJRnJhbmtsaW4gVE4gMzcwNjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LURGICAgKGhleCkJCUFJRE9OSUMgQ29ycG9yYXRpb24KKzAwMDZERiAgICAgKGJhc2UgMTYpCQlBSURPTklDIENvcnBvcmF0aW9uCisJCQkJMi03LTEwIE90c3VrYSwgQnVua3lvLWt1LAorCQkJCVRva3lvLCAxMTItMDAxMgorCQkJCUpBUEFOCisKKzAwLTA2LUUwICAgKGhleCkJCU1BVCBDby4sIEx0ZC4KKzAwMDZFMCAgICAgKGJhc2UgMTYpCQlNQVQgQ28uLCBMdGQuCisJCQkJODY0LTMgS3dhbnlhbmctZG9uZworCQkJCURvbmdhbi1ndSwgQW55YW5nLXNpCisJCQkJS3l1bmdnaS1kbyAgNDMxLTA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi1FMSAgIChoZXgpCQlUZWNobm8gVHJhZGUgcy5hCiswMDA2RTEgICAgIChiYXNlIDE2KQkJVGVjaG5vIFRyYWRlIHMuYQorCQkJCTczMmEgQ2hhdXNzZWUgZGUgQnJ1eGVsbGVzCisJCQkJQi0xNDEwIFdhdGVybG9vCisJCQkJQkVMR0lVTQorCiswMC0wNi1FMiAgIChoZXgpCQlDZWVtYXggVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDZFMiAgICAgKGJhc2UgMTYpCQlDZWVtYXggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk1Zi03LCA3MzYsIENodW5nIENoZW5nIFJkLiwKKwkJCQlDaHVuZyBIbyBUYWlwZWkgSHNpZW4sCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNi1FMyAgIChoZXgpCQlRdWFudGl0YXRpdmUgSW1hZ2luZyBDb3Jwb3JhdGlvbgorMDAwNkUzICAgICAoYmFzZSAxNikJCVF1YW50aXRhdGl2ZSBJbWFnaW5nIENvcnBvcmF0aW9uCisJCQkJODA4MSBMb3VnaGVlZCBIaWdod2F5CisJCQkJQnVybmFieSwgQkMKKwkJCQlDQU5BREEKKworMDAtMDYtRTQgICAoaGV4KQkJQ2l0ZWwgVGVjaG5vbG9naWVzIEx0ZC4KKzAwMDZFNCAgICAgKGJhc2UgMTYpCQlDaXRlbCBUZWNobm9sb2dpZXMgTHRkLgorCQkJCVdoZWF0Y3JvZnQgQnVzaW5lc3MgUGFyaworCQkJCUxhbmRtZXJlIExhbmUsIEVkd2FsdG9uCisJCQkJTm90dGlnaGFtICBORzEyIDRERworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA2LUU1ICAgKGhleCkJCUZ1amlhbiBOZXdsYW5kIENvbXB1dGVyIEx0ZC4gQ28uCiswMDA2RTUgICAgIChiYXNlIDE2KQkJRnVqaWFuIE5ld2xhbmQgQ29tcHV0ZXIgTHRkLiBDby4KKwkJCQkxNDFGIFN1bnNoaW5lIEhvbGlkYXkgSG90ZWwKKwkJCQlOby4gMjYgR2FvIFFpYW8gUmQuLCBXdVlpIFNxdWFyZQorCQkJCUZ1emhvdSBGdWppYW4gIDM1MDAwNQorCQkJCUNISU5BCisKKzAwLTA2LUU2ICAgKGhleCkJCURvbmdZYW5nIFRlbGVjb20gQ28uLCBMdGQuCiswMDA2RTYgICAgIChiYXNlIDE2KQkJRG9uZ1lhbmcgVGVsZWNvbSBDby4sIEx0ZC4KKwkJCQk2NDItNyBEZXVuZyBDaG9uLURvbmcsIEthbmdTZW8tR3UKKwkJCQlTZW91bCAxNTctODQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA2LUU3ICAgKGhleCkJCUJpdCBCbGl0eiBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDA2RTcgICAgIChiYXNlIDE2KQkJQml0IEJsaXR6IENvbW11bmljYXRpb25zIEluYy4KKwkJCQk4MzAgSGlsbHZpZXcgQ3QuLCAjMjkwCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUU4ICAgKGhleCkJCU9wdGljYWwgTmV0d29yayBUZXN0aW5nLCBJbmMuCiswMDA2RTggICAgIChiYXNlIDE2KQkJT3B0aWNhbCBOZXR3b3JrIFRlc3RpbmcsIEluYy4KKwkJCQk1NSBNZXJjaGFudCBTdC4KKwkJCQkyOHRoIEZsb29yCisJCQkJSG9ub2x1bHUgSEkgOTY4MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUU5ICAgKGhleCkJCUludGltZSBDb3JwLgorMDAwNkU5ICAgICAoYmFzZSAxNikJCUludGltZSBDb3JwLgorCQkJCTMyNC00LCBZYW5namFlLWRvbmcsIDJGCisJCQkJU2VvY2hvLWt1LCBTZW91bCwgMTM3LTEzMCwKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDYtRUEgICAoaGV4KQkJRUxaRVQ4MCBNaWtyb2NvbXB1dGVyIEdtYkgmQ28uIEtHCiswMDA2RUEgICAgIChiYXNlIDE2KQkJRUxaRVQ4MCBNaWtyb2NvbXB1dGVyIEdtYkgmQ28uIEtHCisJCQkJVGhlYXRlcnBsYXR6IDkKKwkJCQlELTUyMDYyIEFhY2hlbgorCQkJCUdFUk1BTlkKKworMDAtMDYtRUIgICAoaGV4KQkJR2xvYmFsIERhdGEKKzAwMDZFQiAgICAgKGJhc2UgMTYpCQlHbG9iYWwgRGF0YQorCQkJCTIyNTAgT2Jpc3BvIEF2ZSAjMTA1CisJCQkJU2lnbmFsIEhpbGwgQ0EgOTA4MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA2LUVDICAgKGhleCkJCUhhcnJpcyBDb3Jwb3JhdGlvbgorMDAwNkVDICAgICAoYmFzZSAxNikJCUhhcnJpcyBDb3Jwb3JhdGlvbgorCQkJCTEwMjUgV2VzdCBOQVNBIEJsdmQKKwkJCQlNUyBELTIxQgorCQkJCU1lbGJvdXJuZSBGTCAzMjkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRUQgICAoaGV4KQkJSW5hcmEgTmV0d29ya3MKKzAwMDZFRCAgICAgKGJhc2UgMTYpCQlJbmFyYSBOZXR3b3JrcworCQkJCTMwMzEgVGlzY2ggV2F5LAorCQkJCVN1aXRlIDEwMAorCQkJCVNhbiBKb3NlIENBIDk1MTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1FRSAgIChoZXgpCQlTaGVueWFuZyBOZXUtZXJhIEluZm9ybWF0aW9uICYgVGVjaG5vbG9neSBTdG9jayBDby4sIEx0ZAorMDAwNkVFICAgICAoYmFzZSAxNikJCVNoZW55YW5nIE5ldS1lcmEgSW5mb3JtYXRpb24gJiBUZWNobm9sb2d5IFN0b2NrIENvLiwgTHRkCisJCQkJOC9GLCB0aGUgMjFzdCBDZW50dXJ5IEJ1aWxkaW5nLAorCQkJCU5vLiAxIFNoaWppIFJvYWQsIEh1bm5hbiBJbmR1c3RyaWFsIERpc3QKKwkJCQlEdmxwbW50IFpvbmUgU2hlbnlhbmcsIAorCQkJCUNISU5BCisKKzAwLTA2LUVGICAgKGhleCkJCU1heHhhbiBTeXN0ZW1zLCBJbmMuCiswMDA2RUYgICAgIChiYXNlIDE2KQkJTWF4eGFuIFN5c3RlbXMsIEluYy4KKwkJCQkxMDcgQm9uYXZlbnR1cmEgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRjAgICAoaGV4KQkJRGlnZW8sIEluYy4KKzAwMDZGMCAgICAgKGJhc2UgMTYpCQlEaWdlbywgSW5jLgorCQkJCTg4MTUgMTIybmQgQXZlLiwgTkUKKwkJCQlLaXJrbGFuZCBXQSA5ODAzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRjEgICAoaGV4KQkJT3B0aWxsaW9uCiswMDA2RjEgICAgIChiYXNlIDE2KQkJT3B0aWxsaW9uCisJCQkJS3JvbmJvcmdzZ3IuOQorCQkJCVNFLTE2NDg3IEtpc3RhCisJCQkJU1dFREVOCisKKzAwLTA2LUYyICAgKGhleCkJCVBsYXR5cyBDb21tdW5pY2F0aW9ucworMDAwNkYyICAgICAoYmFzZSAxNikJCVBsYXR5cyBDb21tdW5pY2F0aW9ucworCQkJCTMxNTBBIENvcm9uYWRvIERyLgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1GMyAgIChoZXgpCQlBY2NlTGlnaHQgTmV0d29ya3MKKzAwMDZGMyAgICAgKGJhc2UgMTYpCQlBY2NlTGlnaHQgTmV0d29ya3MKKwkJCQk3MCBBYmVsZSBSb2FkLCBCdWlsZGluZyAxMjAwCisJCQkJUGl0dHNidXJnaCBQQSAxNTAxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRjQgICAoaGV4KQkJUHJpbWUgRWxlY3Ryb25pY3MgJiBTYXRlbGxpdGljcyBJbmMuCiswMDA2RjQgICAgIChiYXNlIDE2KQkJUHJpbWUgRWxlY3Ryb25pY3MgJiBTYXRlbGxpdGljcyBJbmMuCisJCQkJNjksIFR1bmctWXVhbiBSZC4sCisJCQkJQ2h1bmctTGkgQ2l0eSwgVGFveXVhbgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDYtRjUgICAoaGV4KQkJQUxQUyBDbywuIEx0ZC4KKzAwMDZGNSAgICAgKGJhc2UgMTYpCQlBTFBTIENvLC4gTHRkLgorCQkJCTYtMy0zNiBGdXJ1a2F3YW5ha2F6YXRvLAorCQkJCU9zYWtpIE1peWFnaS1wcmVmIDk4OS02MTgxCisJCQkJSkFQQU4KKworMDAtMDYtRjYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwNkY2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDYtRjcgICAoaGV4KQkJQUxQUyBFbGVjdHJpYyBDbywuIEx0ZC4KKzAwMDZGNyAgICAgKGJhc2UgMTYpCQlBTFBTIEVsZWN0cmljIENvLC4gTHRkLgorCQkJCTYtMy0zNiBGdXJ1a2F3YW5ha2F6YXRvLAorCQkJCU9zYWtpIE1peWFnaS1wcmVmIDk4OS02MTgxCisJCQkJSkFQQU4KKworMDAtMDYtRjggICAoaGV4KQkJQ1BVIFRlY2hub2xvZ3ksIEluYy4KKzAwMDZGOCAgICAgKGJhc2UgMTYpCQlDUFUgVGVjaG5vbG9neSwgSW5jLgorCQkJCTU3MzEgVy4gTGFzIFBvc2l0YXMgQmx2ZC4KKwkJCQlQbGVhc2FudG9uIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1GOSAgIChoZXgpCQlNaXRzdWkgWm9zZW4gU3lzdGVtcyBSZXNlYXJjaCBJbmMuCiswMDA2RjkgICAgIChiYXNlIDE2KQkJTWl0c3VpIFpvc2VuIFN5c3RlbXMgUmVzZWFyY2ggSW5jLgorCQkJCTExLTEsIFVubyAxLWNob21lCisJCQkJVGFtYW5vLXNoaSwgT2theWFtYQorCQkJCTcwNi0wMDExCisJCQkJSkFQQU4KKworMDAtMDYtRkEgICAoaGV4KQkJSVAgU1FVQVJFIENvLCBMdGQuCiswMDA2RkEgICAgIChiYXNlIDE2KQkJSVAgU1FVQVJFIENvLCBMdGQuCisJCQkJMS05LTExLCBIYWthdGFla2loaWdhc2hpLAorCQkJCUhha2F0YS1rdSwgRnVrdW9rYS1zaGksCisJCQkJRnVrdW9rYSAgODEyLTAwMTMKKwkJCQlKQVBBTgorCiswMC0wNi1GQiAgIChoZXgpCQlIaXRhY2hpIFByaW50aW5nIFNvbHV0aW9ucywgTHRkLgorMDAwNkZCICAgICAoYmFzZSAxNikJCUhpdGFjaGkgUHJpbnRpbmcgU29sdXRpb25zLCBMdGQuCisJCQkJMTA2MCwgVGFrZWRhIEhpdGFjaGluYWthLUNpdHkKKwkJCQlJYmFyYWtpLVByZWYuCisJCQkJMzEyLTg1MDIKKwkJCQlKQVBBTgorCiswMC0wNi1GQyAgIChoZXgpCQlGbmV0IENvLiwgTHRkLgorMDAwNkZDICAgICAoYmFzZSAxNikJCUZuZXQgQ28uLCBMdGQuCisJCQkJS0ZTQiBCbGRnLiAxMHRoIEYuIDE2LTIKKwkJCQlZb2lkby1Eb25nLCBZb3VuZ2RldW5ncG8ta3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNi1GRCAgIChoZXgpCQlDb21qZXQgSW5mb3JtYXRpb24gU3lzdGVtcyBDb3JwLgorMDAwNkZEICAgICAoYmFzZSAxNikJCUNvbWpldCBJbmZvcm1hdGlvbiBTeXN0ZW1zIENvcnAuCisJCQkJN0ZsLiwgTm8uIDEwMywgRmVuIExpYW8gU3RyZWV0CisJCQkJTmVpLUh1LCBUYWlwZWkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA2LUZFICAgKGhleCkJCUFtYnJhZG8sIEluYworMDAwNkZFICAgICAoYmFzZSAxNikJCUFtYnJhZG8sIEluYworCQkJCTExMzAxIFcuIFByZXNpZGVudCBHZW9yZ2UgQnVzaCBGd3kuCisJCQkJU3VpdGUxNTAKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNi1GRiAgIChoZXgpCQlTaGViYSBTeXN0ZW1zIENvLiwgTHRkLgorMDAwNkZGICAgICAoYmFzZSAxNikJCVNoZWJhIFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJNXRoIEZsLiBIeXVuZGFpIEphZCBCL0QKKwkJCQk0NjAtMSBTZW9uZ25hZS1Eb25nLCBLYW5nZG9uZy1LdSwKKwkJCQlTZW91bCAgMTM0LTAzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0wMCAgIChoZXgpCQlaZXR0YW1lZGlhIEtvcmVhCiswMDA3MDAgICAgIChiYXNlIDE2KQkJWmV0dGFtZWRpYSBLb3JlYQorCQkJCVN1aXRlIDEwMDgsIEt1bWthbmcgVmVudHVyZXRlbCwgMTEwOAorCQkJCUJpc2FuZG9uZywgRG9uZ2FuZ3UsIEFueWFuZ3NpCisJCQkJS3lvdW5nZ2lkbywgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0wMSAgIChoZXgpCQlSQUNBTC1EQVRBQ09NCiswMDA3MDEgICAgIChiYXNlIDE2KQkJUkFDQUwtREFUQUNPTQorCQkJCUxBTiBJTlRFUk5FVFdPUktJTkcgRElWSVNJT04KKwkJCQkxNTUgU1dBTlNPTiBST0FECisJCQkJQk9YQk9ST1VHSCBNQSAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMDIgICAoaGV4KQkJVmFyaWFuIE1lZGljYWwgU3lzdGVtcworMDAwNzAyICAgICAoYmFzZSAxNikJCVZhcmlhbiBNZWRpY2FsIFN5c3RlbXMKKwkJCQkyNTk5IEdhcmNpYSBBdmVudWUKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy0wMyAgIChoZXgpCQlDU0VFIFRyYW5zcG9ydAorMDAwNzAzICAgICAoYmFzZSAxNikJCUNTRUUgVHJhbnNwb3J0CisJCQkJNCwgYXZlbnVlIGR1IENBTkFEQQorCQkJCUIuUC4gMjQzLTkxOTQ0IExlcyBVbGlzCisJCQkJRlJBTkNFCisKKzAwLTA3LTA0ICAgKGhleCkJCUFMUFMgRWxlY3RyaWMgQ28sLiBMdGQuCiswMDA3MDQgICAgIChiYXNlIDE2KQkJQUxQUyBFbGVjdHJpYyBDbywuIEx0ZC4KKwkJCQk2LTMtMzYgRnVydWthd2FuYWthemF0bywKKwkJCQlPc2FraSBNaXlhZ2ktcHJlZiA5ODktNjE4MQorCQkJCUpBUEFOCisKKzAwLTA3LTA1ICAgKGhleCkJCUVuZHJlc3MgJiBIYXVzZXIgR21iSCAmIENvCiswMDA3MDUgICAgIChiYXNlIDE2KQkJRW5kcmVzcyAmIEhhdXNlciBHbWJIICYgQ28KKwkJCQlIYXVwdHN0cmFiZSAxIC0gUG9zdGZhY2ggMTI2MQorCQkJCUQtNzk2ODkgTWF1bGJlcmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTA2ICAgKGhleCkJCVNhbnJpdHogQ29ycG9yYXRpb24KKzAwMDcwNiAgICAgKGJhc2UgMTYpCQlTYW5yaXR6IENvcnBvcmF0aW9uCisJCQkJMTk5LTEsIFNoaW1vb2lidWt1cm8sCisJCQkJS2F3YWdvZS1jaXR5LCBTYWl0YW1hCisJCQkJMzUwLTA4NDgKKwkJCQlKQVBBTgorCiswMC0wNy0wNyAgIChoZXgpCQlJbnRlcmFsaWEgSW5jLgorMDAwNzA3ICAgICAoYmFzZSAxNikJCUludGVyYWxpYSBJbmMuCisJCQkJNDExMC03OXRoIFN0cmVldCBOLlcuCisJCQkJQ2FsZ2FyeSwgQWxiZXJ0YQorCQkJCVQzQiA1QzIKKwkJCQlDQU5BREEKKworMDAtMDctMDggICAoaGV4KQkJQml0cmFnZSBJbmMuCiswMDA3MDggICAgIChiYXNlIDE2KQkJQml0cmFnZSBJbmMuCisJCQkJMTAwIFNvdXRocGFyayBCbHZkLgorCQkJCVN1aXRlIDQwMAorCQkJCVNhaW50IEF1Z3VzdGluZSBGTCAzMjA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMDkgICAoaGV4KQkJV2VzdGVyc3RyYW5kIFVyZmFicmlrIEFCCiswMDA3MDkgICAgIChiYXNlIDE2KQkJV2VzdGVyc3RyYW5kIFVyZmFicmlrIEFCCisJCQkJQm94IDEzMworCQkJCVNFLTU0NSAyMyBUb3JlYm9kYQorCQkJCVNXRURFTgorCiswMC0wNy0wQSAgIChoZXgpCQlVbmljb20gQXV0b21hdGlvbiBDby4sIEx0ZC4KKzAwMDcwQSAgICAgKGJhc2UgMTYpCQlVbmljb20gQXV0b21hdGlvbiBDby4sIEx0ZC4KKwkJCQlTaWxrIEJsZGcgMy0zMS0xMQorCQkJCUhvbmNobywgTmFrYW5vLWt1LAorCQkJCVRva3lvICAxNjQtMDAxMgorCQkJCUpBUEFOCisKKzAwLTA3LTBCICAgKGhleCkJCU5vdmFiYXNlIFNHUFMsIFNBCiswMDA3MEIgICAgIChiYXNlIDE2KQkJTm92YWJhc2UgU0dQUywgU0EKKwkJCQlBdi4gRCBKb2FvIElJLCBMb3RlIDEuMDMuMi4zCisJCQkJUGFycXVlIGRhcyBOYWNvZXMKKwkJCQlMaXNib2EgIDE5OTgtMDMxCisJCQkJUE9SVFVHQUwKKworMDAtMDctMEMgICAoaGV4KQkJU1ZBLUludHJ1c2lvbi5jb20gQ28uIEx0ZC4KKzAwMDcwQyAgICAgKGJhc2UgMTYpCQlTVkEtSW50cnVzaW9uLmNvbSBDby4gTHRkLgorCQkJCVRoZSA0dGggRmxvb3IsIE5vLiAyOCBCdWlsZGluZworCQkJCTE0MCBUaWFuIExpbiBSb2FkCisJCQkJU2hhbmdoYWkgIDIwMjMzCisJCQkJQ0hJTkEKKworMDAtMDctMEQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcyBJbmMuCiswMDA3MEQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcyBJbmMuCisJCQkJU0otTS8xCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy0wRSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKzAwMDcwRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKwkJCQlTSi1NLzEKKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTBGICAgKGhleCkJCUZ1amFudCwgSW5jLgorMDAwNzBGICAgICAoYmFzZSAxNikJCUZ1amFudCwgSW5jLgorCQkJCTYzMDUgQ2FycGludGVyaWEgQXZlbnVlCisJCQkJU3VpdGUgMzAwCisJCQkJQ2FycGludGVyaWEgQ0EgOTMwMTMtMjkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMTAgICAoaGV4KQkJQWRheCwgSW5jLgorMDAwNzEwICAgICAoYmFzZSAxNikJCUFkYXgsIEluYy4KKwkJCQk2MTQgQmFuY3JvZnQgV2F5CisJCQkJQmVya2VsZXkgQ0EgOTQ1NTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTExICAgKGhleCkJCUFjdGVybmEKKzAwMDcxMSAgICAgKGJhc2UgMTYpCQlBY3Rlcm5hCisJCQkJNjYyMCBOZXR3b3JrIFdheQorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMTIgICAoaGV4KQkJSkFMIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kKKzAwMDcxMiAgICAgKGJhc2UgMTYpCQlKQUwgSW5mb3JtYXRpb24gVGVjaG5vbG9neQorCQkJCU5ldHdvcmsgU29sdXRpb24gRGVwLiBKQUwtVGFtYWNoaSBCbGRnLgorCQkJCTE1LTEsIFNoaWJ1cmEsIDQtY2hvbWUsIE1pbmF0by1rdSwKKwkJCQlUb2t5byAgCisJCQkJSkFQQU4KKworMDAtMDctMTMgICAoaGV4KQkJSVAgT25lLCBJbmMuCiswMDA3MTMgICAgIChiYXNlIDE2KQkJSVAgT25lLCBJbmMuCisJCQkJU2FtbWkgQmxkZy4sIDEwMDQKKwkJCQlEYWVjaGktZG9uZyBHYW5nbmFtLWd1LAorCQkJCVNlb3VsLCAgMTM1LTA4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0xNCAgIChoZXgpCQlCcmlnaHRjb20KKzAwMDcxNCAgICAgKGJhc2UgMTYpCQlCcmlnaHRjb20KKwkJCQk2IEhhbmVjaG9zaGV0IFN0LiwKKwkJCQlUZWwgQXZpdiA2OTcxMAorCQkJCUlTUkFFTAorCiswMC0wNy0xNSAgIChoZXgpCQlHZW5lcmFsIFJlc2VhcmNoIG9mIEVsZWN0cm9uaWNzLCBJbmMuCiswMDA3MTUgICAgIChiYXNlIDE2KQkJR2VuZXJhbCBSZXNlYXJjaCBvZiBFbGVjdHJvbmljcywgSW5jLgorCQkJCTMtMTItMTcsIE1pdGEsIE1pbmF0by1rdQorCQkJCVRva3lvICAxMDgtMDA3MworCQkJCUpBUEFOCisKKzAwLTA3LTE2ICAgKGhleCkJCUogJiBTIE1hcmluZSBMdGQuCiswMDA3MTYgICAgIChiYXNlIDE2KQkJSiAmIFMgTWFyaW5lIEx0ZC4KKwkJCQlQb3R0aW5ndG9uIEJ1c2luZXNzIFBhcmsKKwkJCQlCYXJuc3RhcGxlCisJCQkJRGV2b24gIEVYMzEgMUxZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDctMTcgICAoaGV4KQkJV2llbGFuZCBFbGVjdHJpYyBHbWJICiswMDA3MTcgICAgIChiYXNlIDE2KQkJV2llbGFuZCBFbGVjdHJpYyBHbWJICisJCQkJQnJlbm5lcnN0ci4gMTAtMTQKKwkJCQlELTk2MDUyIEJhbWJlcmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTE4ICAgKGhleCkJCWlDYW5UZWsgQ28uLCBMdGQuCiswMDA3MTggICAgIChiYXNlIDE2KQkJaUNhblRlayBDby4sIEx0ZC4KKwkJCQkybmQgRmwuIERLIFBsYXphIElJLCAzNzYtNSwKKwkJCQlLZXVtZ29rLWRvbmcsIEJ1bWRhZy1rdSwKKwkJCQlTdW5nbWFuLXNpLCBLeW9uZ2dpLWRvICA0NjMtODA1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTE5ICAgKGhleCkJCU1vYmlpcyBDby4sIEx0ZC4KKzAwMDcxOSAgICAgKGJhc2UgMTYpCQlNb2JpaXMgQ28uLCBMdGQuCisJCQkJMjc3LTEsIFNoaW5od2EgQmxkZy4gNEYKKwkJCQlZYW5namFlLWRvbmcsIFNlb2Noby1ndSwKKwkJCQlTZW91bCwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0xQSAgIChoZXgpCQlGaW5lZGlnaXRhbCBJbmMuCiswMDA3MUEgICAgIChiYXNlIDE2KQkJRmluZWRpZ2l0YWwgSW5jLgorCQkJCTR0aCBGbC4gQm9taSBCbGRnLiwgNjYxIERldW5nY2hvbiAzIERvbmcKKwkJCQlLYW5nc2VvIGt1LAorCQkJCVNlb3VsICAxNTctMDMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTFCICAgKGhleCkJCUNEViBBbWVyaWNhcyBMdGQKKzAwMDcxQiAgICAgKGJhc2UgMTYpCQlDRFYgQW1lcmljYXMgTHRkCisJCQkJMTY0NS1BIEF1dG9yb3V0ZSBMYXZhbCBXZXN0CisJCQkJTGF2YWwgUXVlYmVjIEg3TCAzVzMKKwkJCQlDQU5BREEKKworMDAtMDctMUMgICAoaGV4KQkJQVQmVCBGaXhlZCBXaXJlbGVzcyBTZXJ2aWNlcworMDAwNzFDICAgICAoYmFzZSAxNikJCUFUJlQgRml4ZWQgV2lyZWxlc3MgU2VydmljZXMKKwkJCQlQLk8uIEJveCA5MDc1OQorCQkJCVJlZG1vbmQgV0EgOTgwNzMtOTc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMUQgICAoaGV4KQkJU2F0ZWxzYSBTaXN0ZW1hcyBZIEFwbGljYWNpb25lcyBEZSBUZWxlY29tdW5pY2FjaW9uZXMsIFMuQS4KKzAwMDcxRCAgICAgKGJhc2UgMTYpCQlTYXRlbHNhIFNpc3RlbWFzIFkgQXBsaWNhY2lvbmVzIERlIFRlbGVjb211bmljYWNpb25lcywgUy5BLgorCQkJCWMvLCBBbGVqYW5kcm8gTW9yYW4sIDU2CisJCQkJMjgwMjUtTWFkcmlkCisJCQkJU1BBSU4KKworMDAtMDctMUUgICAoaGV4KQkJVHJpLU0gRW5naW5lZXJpbmcgLyBOdXBhayBEZXYuIENvcnAuCiswMDA3MUUgICAgIChiYXNlIDE2KQkJVHJpLU0gRW5naW5lZXJpbmcgLyBOdXBhayBEZXYuIENvcnAuCisJCQkJNi0xMzAxIEtldGNoIENvdXJ0CisJCQkJQ29xdWl0Y2F1dCBCQworCQkJCVYzSyA2WDcKKwkJCQlDQU5BREEKKworMDAtMDctMUYgICAoaGV4KQkJRXVyb3BlYW4gU3lzdGVtcyBJbnRlZ3JhdGlvbgorMDAwNzFGICAgICAoYmFzZSAxNikJCUV1cm9wZWFuIFN5c3RlbXMgSW50ZWdyYXRpb24KKwkJCQk0NTUgUHJvbWVuYWRlIERlcyBBbmdsYXMKKwkJCQlGLTA2MjAwIE5pY2UKKwkJCQlGUkFOQ0UKKworMDAtMDctMjAgICAoaGV4KQkJVHJ1dHpzY2hsZXIgR21iSCAmIENvLiBLRworMDAwNzIwICAgICAoYmFzZSAxNikJCVRydXR6c2NobGVyIEdtYkggJiBDby4gS0cKKwkJCQlEdXZlbnN0ci4gODItOTIKKwkJCQk0MTE5OSBNb25jaGVuZ2xhZGJhY2gKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTIxICAgKGhleCkJCUZvcm1hYyBFbGVrdHJvbmlrIEdtYkgKKzAwMDcyMSAgICAgKGJhc2UgMTYpCQlGb3JtYWMgRWxla3Ryb25payBHbWJICisJCQkJRG9mc3RyLiAzMworCQkJCTE1ODI3IEJsYW5rZW50ZWxkZQorCQkJCUdFUk1BTlkKKworMDAtMDctMjIgICAoaGV4KQkJVGhlIE5pZWxzZW4gQ29tcGFueQorMDAwNzIyICAgICAoYmFzZSAxNikJCVRoZSBOaWVsc2VuIENvbXBhbnkKKwkJCQk1MDEgQnJvb2tlciBDcmVlayBCbHZkLgorCQkJCU9sZHNtYXIgRkwgMzQ2NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTIzICAgKGhleCkJCUVMQ09OIFN5c3RlbXRlY2huaWsgR21iSAorMDAwNzIzICAgICAoYmFzZSAxNikJCUVMQ09OIFN5c3RlbXRlY2huaWsgR21iSAorCQkJCU9iZXJlIEhhdXB0c3RyYXNzZSAxMAorCQkJCUQtMDkyMzIgSGFydG1hbm5zZG9yZgorCQkJCUdFUk1BTlkKKworMDAtMDctMjQgICAoaGV4KQkJVGVsZW1heCBDby4sIEx0ZC4KKzAwMDcyNCAgICAgKGJhc2UgMTYpCQlUZWxlbWF4IENvLiwgTHRkLgorCQkJCTZ0aCBGbC4gU3VuZ3dvbyBCL0QsIDEwOTktMQorCQkJCVNhbmJvbi1Eb25nLCBLdW5wby1zaGkKKwkJCQlLeXVuZ2tpLURvLCAgNDM1LTA0MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0yNSAgIChoZXgpCQlCZW1hdGVjaCBJbnRlcm5hdGlvbmFsIENvcnAuCiswMDA3MjUgICAgIChiYXNlIDE2KQkJQmVtYXRlY2ggSW50ZXJuYXRpb25hbCBDb3JwLgorCQkJCTU4OTUgU2hpbG9oIFJvYWQKKwkJCQlTdWl0ZSAxMTEKKwkJCQlBbHBoYXJldHRhIEdBIDMwMDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy0yNiAgIChoZXgpCQlTaGVuemhlbiBHb25namluIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwNzI2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEdvbmdqaW4gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJQTIxMS1BMjEzICYgQjIwMS1CMjEwLCAyRiwgQmFpeWluZyBCdWlsZGluZywgMTAxOSMsIE5hbmhhaSBSRCwgU2hla291IFBhcnR5LCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDY3CisJCQkJQ0hJTkEKKworMDAtMDctMjcgICAoaGV4KQkJWmkgQ29ycG9yYXRpb24gKEhLKSBMdGQuCiswMDA3MjcgICAgIChiYXNlIDE2KQkJWmkgQ29ycG9yYXRpb24gKEhLKSBMdGQuCisJCQkJMzAvRiwgQ2hpbmEgUmVzb3VyY2VzIEJ1aWxkaW5nCisJCQkJMjYgSGFyYm91ciBSb2FkLCBXYWljaGFpLAorCQkJCUhPTkcgS09ORworCiswMC0wNy0yOCAgIChoZXgpCQlOZW8gVGVsZWNvbQorMDAwNzI4ICAgICAoYmFzZSAxNikJCU5lbyBUZWxlY29tCisJCQkJRWFzdCBCdWlsZGluZyA5RiwgMVQKKwkJCQlWZW50dXJlIFRvd2VyLCA3OCBHYXJhZy1kb25nCisJCQkJU29uZ3BhLWd1LCBTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTI5ICAgKGhleCkJCUtpc3RsZXIgSW5zdHJ1bWVudGUgQUcKKzAwMDcyOSAgICAgKGJhc2UgMTYpCQlLaXN0bGVyIEluc3RydW1lbnRlIEFHCisJCQkJRXVsYWNoc3RyYXNzZSAyMgorCQkJCUNILTg0MDggV2ludGVydGh1cgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA3LTJBICAgKGhleCkJCUlubm92YW5jZSBOZXR3b3JrcworMDAwNzJBICAgICAoYmFzZSAxNikJCUlubm92YW5jZSBOZXR3b3JrcworCQkJCTE5IEZhaXJtb250IEF2ZW51ZQorCQkJCU90dGF3YSwgT250YXJpbyBLMVkgMVg0CisJCQkJQ0FOQURBCisKKzAwLTA3LTJCICAgKGhleCkJCUp1bmcgTXl1bmcgVGVsZWNvbSBDby4sIEx0ZC4KKzAwMDcyQiAgICAgKGJhc2UgMTYpCQlKdW5nIE15dW5nIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJNUZsIFNpbGxhIFRlY2hub3ZpbC4sIDM5LTMgRGFuZy1Eb25nCisJCQkJS29vbnBvLXNoaSwgS3l1bmcgS2ktRG8KKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctMkMgICAoaGV4KQkJRmFicmljb20KKzAwMDcyQyAgICAgKGJhc2UgMTYpCQlGYWJyaWNvbQorCQkJCVJ1ZSBHYXR0aSBEZSBHYW1vbmQgMjU0CisJCQkJMTE5MCBCcnV4ZWxsZXMKKwkJCQlCRUxHSVVNCisKKzAwLTA3LTJEICAgKGhleCkJCUNOU3lzdGVtcworMDAwNzJEICAgICAoYmFzZSAxNikJCUNOU3lzdGVtcworCQkJCUJhdW1raXJjaGVyc3RyYXNzZSAxCisJCQkJQS04MDIwIEdyYXoKKwkJCQlBVVNUUklBCisKKzAwLTA3LTJFICAgKGhleCkJCU5vcnRoIE5vZGUgQUIKKzAwMDcyRSAgICAgKGJhc2UgMTYpCQlOb3J0aCBOb2RlIEFCCisJCQkJU2tlcHBzbG9yb24gNDIKKwkJCQkxMTMwIFN0b2NraG9sbQorCQkJCVNXRURFTgorCiswMC0wNy0yRiAgIChoZXgpCQlJbnRyYW5zYSwgSW5jLgorMDAwNzJGICAgICAoYmFzZSAxNikJCUludHJhbnNhLCBJbmMuCisJCQkJMjY3MCBaYW5rZXIKKwkJCQlTdWl0ZSAyMDAKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMzAgICAoaGV4KQkJSHV0Y2hpc29uIE9QVEVMIFRlbGVjb20gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDczMCAgICAgKGJhc2UgMTYpCQlIdXRjaGlzb24gT1BURUwgVGVsZWNvbSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLiAyOCBYaW53YWkgU3RyZWV0CisJCQkJQmVpamluZyAgCisJCQkJQ0hJTkEKKworMDAtMDctMzEgICAoaGV4KQkJT3BoaXItU3Bpcmljb24gSW5jCiswMDA3MzEgICAgIChiYXNlIDE2KQkJT3BoaXItU3Bpcmljb24gSW5jCisJCQkJNjAgVyAxMDAwIE4KKwkJCQlMb2dhbiBVVCA4NDMyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctMzIgICAoaGV4KQkJQUFFT04gVGVjaG5vbG9neSBJbmMuCiswMDA3MzIgICAgIChiYXNlIDE2KQkJQUFFT04gVGVjaG5vbG9neSBJbmMuCisJCQkJNUYsICMxMzUsIExhbmUgMjM1LCBQYW8gQ2hpYW8gUm9hZAorCQkJCUhzaW4tVGllbiBDaXR5CisJCQkJVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA3LTMzICAgKGhleCkJCURBTkNPTlRST0wgRW5naW5lZXJpbmcKKzAwMDczMyAgICAgKGJhc2UgMTYpCQlEQU5DT05UUk9MIEVuZ2luZWVyaW5nCisJCQkJSXRhbGllbnN2ZWogMS01CisJCQkJREstODQ1MCBIYW1tZWwKKwkJCQlERU5NQVJLCisKKzAwLTA3LTM0ICAgKGhleCkJCU9OU3RvciwgSW5jLgorMDAwNzM0ICAgICAoYmFzZSAxNikJCU9OU3RvciwgSW5jLgorCQkJCTEzMC1CIEtub3dsZXMgRHJpdmUKKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTM1ICAgKGhleCkJCUZsYXJpb24gVGVjaG5vbG9naWVzLCBJbmMuCiswMDA3MzUgICAgIChiYXNlIDE2KQkJRmxhcmlvbiBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMzUgUm91dGUgMjAyLzIwNiBTb3V0aAorCQkJCUJlZG1pbnN0ZXIgTkogMDc5MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTM2ICAgKGhleCkJCURhdGEgVmlkZW8gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAwNzM2ICAgICAoYmFzZSAxNikJCURhdGEgVmlkZW8gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCTdGLCBOby4gMzUyLCBTZWMuIDIKKwkJCQlDaHVuZy1TaGFuIFJkLiwgQ2h1bmctSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNy0zNyAgIChoZXgpCQlTb3JpeWEgQ28uIEx0ZC4KKzAwMDczNyAgICAgKGJhc2UgMTYpCQlTb3JpeWEgQ28uIEx0ZC4KKwkJCQkyLCA4dGggRmxvb3IgSGFuc2hpbiBCL08sIDEzNi0xLAorCQkJCUhhcG8tZG9uZywgTWFwby1ndSwKKwkJCQlTZW91bCwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0zOCAgIChoZXgpCQlZb3VuZyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwNzM4ICAgICAoYmFzZSAxNikJCVlvdW5nIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJRC02MDQsIFNpZ21hLUlJIE9mZmljZXRlbCwKKwkJCQkjMTgsIEd1bWktZG9uZywgQnVuZGdhbmctZ3UsCisJCQkJU3VuZ25hbS1zaSwgS3llb25nZ2ktZG8gNzYzLTc0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy0zOSAgIChoZXgpCQlTY290dHkgR3JvdXAgQXVzdHJpYSBHbWJoCiswMDA3MzkgICAgIChiYXNlIDE2KQkJU2NvdHR5IEdyb3VwIEF1c3RyaWEgR21iaAorCQkJCVRlc2xhc3RyYXNzZSA0CisJCQkJODA3NCBHcmFtYmFjaCAgODA3NAorCQkJCUFVU1RSSUEKKworMDAtMDctM0EgICAoaGV4KQkJSW52ZW50ZWwgU3lzdGVtZXMKKzAwMDczQSAgICAgKGJhc2UgMTYpCQlJbnZlbnRlbCBTeXN0ZW1lcworCQkJCTM1LCBydWUgVG91bWVmb3J0CisJCQkJNzUwMDUgUGFyaXMKKwkJCQlGUkFOQ0UKKworMDAtMDctM0IgICAoaGV4KQkJVGVub3ZpcyBHbWJIICYgQ28gS0cKKzAwMDczQiAgICAgKGJhc2UgMTYpCQlUZW5vdmlzIEdtYkggJiBDbyBLRworCQkJCUtsZXllcnN0cmFzc2UgOTQKKwkJCQk2MDMyNiBGcmFua2Z1cnQKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTNDICAgKGhleCkJCVRlbGVjb20gRGVzaWduCiswMDA3M0MgICAgIChiYXNlIDE2KQkJVGVsZWNvbSBEZXNpZ24KKwkJCQlWb2llIFJvbWFpbmUsIFpvbmUgZGUgUmVtb3JhCisJCQkJMzMxNzAgR3JhZGlnbmFuCisJCQkJRlJBTkNFCisKKzAwLTA3LTNEICAgKGhleCkJCU5hbmppbmcgUG9zdGVsIFRlbGVjb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMDczRCAgICAgKGJhc2UgMTYpCQlOYW5qaW5nIFBvc3RlbCBUZWxlY29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCisJCQkJTm8uIDE4NywgU2hlbmdaaG91IFJvYWQsCisJCQkJTmFuamluZyBDaXR5LCBKaWFuZ3N1CisJCQkJMjEwMDA0CisJCQkJQ0hJTkEKKworMDAtMDctM0UgICAoaGV4KQkJQ2hpbmEgR3JlYXQtV2FsbCBDb21wdXRlciBTaGVuemhlbiBDby4sIEx0ZC4KKzAwMDczRSAgICAgKGJhc2UgMTYpCQlDaGluYSBHcmVhdC1XYWxsIENvbXB1dGVyIFNoZW56aGVuIENvLiwgTHRkLgorCQkJCVJlc2VhcmNoICYgRGV2ZWxvcG1lbnQgQ2VudGVyLCBLZWZhIFJvYWQKKwkJCQlTY2llbmNlIEluZHVzdHJ5IFBhcmssIE5hbnNoYW4gRGlzY3RyaWN0CisJCQkJU2hlbnpoZW4gIDUxODA1NworCQkJCUNISU5BCisKKzAwLTA3LTNGICAgKGhleCkJCVdvb2p5dW4gU3lzdGVjIENvLiwgTHRkLgorMDAwNzNGICAgICAoYmFzZSAxNikJCVdvb2p5dW4gU3lzdGVjIENvLiwgTHRkLgorCQkJCTRGIEhhbiBZYW5nIEIvRCwgWW9pZG8tZG9uZworCQkJCVlvdW5nIERlb25nIFBvLWt1CisJCQkJU2VvdWwgIDE1MC0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctNDAgICAoaGV4KQkJQnVmZmFsbywgSW5jCiswMDA3NDAgICAgIChiYXNlIDE2KQkJQnVmZmFsbywgSW5jCisJCQkJTUVMQ08gSEktVEVDSCBDRU5URVIsCisJCQkJNC0xNSAgU2hpYmF0YSwgSG9uZG9yaSwgCisJCQkJTUlOQU1JLUtVLCBOQUdPWUEgQWljaGkgCisJCQkJSkFQQU4KKworMDAtMDctNDEgICAoaGV4KQkJU2llcnJhIEF1dG9tYXRlZCBTeXN0ZW1zCiswMDA3NDEgICAgIChiYXNlIDE2KQkJU2llcnJhIEF1dG9tYXRlZCBTeXN0ZW1zCisJCQkJMjYyNSBOb3J0aCBTYW4gRmVybmFuZG8gQmx2ZC4KKwkJCQlCdXJiYW5rIENBIDkxNTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy00MiAgIChoZXgpCQlDdXJyZW50IFRlY2hub2xvZ2llcywgTExDCiswMDA3NDIgICAgIChiYXNlIDE2KQkJQ3VycmVudCBUZWNobm9sb2dpZXMsIExMQworCQkJCTIwNDIwIENlbnR1cnkgQmx2ZAorCQkJCUdlcm1hbnRvd24gTUQgMjA4NzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTQzICAgKGhleCkJCUNoZWxzaW8gQ29tbXVuaWNhdGlvbnMKKzAwMDc0MyAgICAgKGJhc2UgMTYpCQlDaGVsc2lvIENvbW11bmljYXRpb25zCisJCQkJMTcwIFMuIFdoaXNtb24gUmQuCisJCQkJQmxkZy4gRCwgU3RlIEEKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQxLTE1MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTQ0ICAgKGhleCkJCVVuaWNvLCBJbmMuCiswMDA3NDQgICAgIChiYXNlIDE2KQkJVW5pY28sIEluYy4KKwkJCQkzNzI1IE5pY2hvbHNvbiBSZC4KKwkJCQlGcmFua3N2aWxsZSBXSSA1MzEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNDUgICAoaGV4KQkJUmFkbGFuIENvbXB1dGVyIENvbW11bmljYXRpb25zIEx0ZC4KKzAwMDc0NSAgICAgKGJhc2UgMTYpCQlSYWRsYW4gQ29tcHV0ZXIgQ29tbXVuaWNhdGlvbnMgTHRkLgorCQkJCUF0aWRpbSBUZWNobm9sb2d5IFBhcmsKKwkJCQlCbGRnLiA0CisJCQkJVGVsIEF2aXYgIDYxMTMxCisJCQkJSVNSQUVMCisKKzAwLTA3LTQ2ICAgKGhleCkJCVRVUkNLLCBJbmMuCiswMDA3NDYgICAgIChiYXNlIDE2KQkJVFVSQ0ssIEluYy4KKwkJCQkzMDAwIENhbXB1cyBEcml2ZQorCQkJCVBseW1vdXRoIE1OIDU1NDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy00NyAgIChoZXgpCQlNZWNhbGMKKzAwMDc0NyAgICAgKGJhc2UgMTYpCQlNZWNhbGMKKwkJCQlQTyBCb3ggNzk1OAorCQkJCUNlbnR1cmlvbiAwMDQ2CisJCQkJU09VVEggQUZSSUNBCisKKzAwLTA3LTQ4ICAgKGhleCkJCVRoZSBJbWFnaW5nIFNvdXJjZSBFdXJvcGUKKzAwMDc0OCAgICAgKGJhc2UgMTYpCQlUaGUgSW1hZ2luZyBTb3VyY2UgRXVyb3BlCisJCQkJU29tbWVyc3RyYXNzZSAzNC0zNgorCQkJCTI4MjE1IEJyZW1hbgorCQkJCUdFUk1BTlkKKworMDAtMDctNDkgICAoaGV4KQkJQ0VOaVggSW5jLgorMDAwNzQ5ICAgICAoYmFzZSAxNikJCUNFTmlYIEluYy4KKwkJCQk1MTQxIENhbGlmb3JuaWEgQXZlbnVlCisJCQkJSXJ2aW5lIENBIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy00QSAgIChoZXgpCQlDYXJsIFZhbGVudGluIEdtYkgKKzAwMDc0QSAgICAgKGJhc2UgMTYpCQlDYXJsIFZhbGVudGluIEdtYkgKKwkJCQlOZWNrYXJzdHJhYmUgNzgtODAKKwkJCQlELTc4MDU2IFZTLVNjaHdlbm5pbmdlbgorCQkJCUdFUk1BTlkKKworMDAtMDctNEIgICAoaGV4KQkJRGFpaGVuIENvcnBvcmF0aW9uCiswMDA3NEIgICAgIChiYXNlIDE2KQkJRGFpaGVuIENvcnBvcmF0aW9uCisJCQkJMi0xLTExIFRhZ2F3YSBZb2RvZ2F3YS1rdQorCQkJCU9zYWthIDUzMi04NTEyCisJCQkJSkFQQU4KKworMDAtMDctNEMgICAoaGV4KQkJQmVpY29tIEluYy4KKzAwMDc0QyAgICAgKGJhc2UgMTYpCQlCZWljb20gSW5jLgorCQkJCTExNCBLaW5nIFN0cmVldAorCQkJCUFsZXhhbmRyaWEgVkEgMjIzMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTREICAgKGhleCkJCVplYnJhIFRlY2hub2xvZ2llcyBDb3JwLgorMDAwNzREICAgICAoYmFzZSAxNikJCVplYnJhIFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCTMzMyBDb3Jwb3JhdGUgV29vZHMgUGFya3dheQorCQkJCVZlcm5vbiBIaWxscyBJTCA2MDA2MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNEUgICAoaGV4KQkJSVBGUk9OVCBJbmMKKzAwMDc0RSAgICAgKGJhc2UgMTYpCQlJUEZST05UIEluYworCQkJCTJGIERhaWRvaCBMaW1pdGVkIEJsZGcKKwkJCQktMS0xNiBTb3Rva2FuZGEsIENoaXlvZGEta3UsCisJCQkJVG9reW8gMTAxLTAwMjEKKwkJCQlKQVBBTgorCiswMC0wNy00RiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDA3NEYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNTAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwNzUwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTUxICAgKGhleCkJCW0tdS10IEFHCiswMDA3NTEgICAgIChiYXNlIDE2KQkJbS11LXQgQUcKKwkJCQlNZXNzZ2Vy5HRlIGb8ciBNZWRpemluLSB1bmQgVW13ZWx0dGVjaG5paworCQkJCUFtIE1hcmllbmhvZiAyCisJCQkJV2VkZWwgIDIyODgwCisJCQkJR0VSTUFOWQorCiswMC0wNy01MiAgIChoZXgpCQlSaHl0aG0gV2F0Y2ggQ28uLCBMdGQuCiswMDA3NTIgICAgIChiYXNlIDE2KQkJUmh5dGhtIFdhdGNoIENvLiwgTHRkLgorCQkJCTMyMSBTaGluc2h1a3VzaGluZGVuLCBTaG93YS1NYWNoaSwKKwkJCQlLaXRha2F0c2hpa2EtR3VuLCBTYWl0YW1hCisJCQkJMzQ0LTAxOTYKKwkJCQlKQVBBTgorCiswMC0wNy01MyAgIChoZXgpCQlCZWlqaW5nIFF4Y29tbSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwNzUzICAgICAoYmFzZSAxNikJCUJlaWppbmcgUXhjb21tIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNEYgVG93ZXIgQiwgVG9uZ1RhaSBCdWlsZGluZyBOby4gMzMsCisJCQkJRmluYW5jaWFsIFN0cmVldCwgWGljaGVuZyBEaXN0cmljdCwKKwkJCQlCZWlqaW5nIDEwMDAzMiAgCisJCQkJQ0hJTkEKKworMDAtMDctNTQgICAoaGV4KQkJWHl0ZXJyYSBDb21wdXRpbmcsIEluYy4KKzAwMDc1NCAgICAgKGJhc2UgMTYpCQlYeXRlcnJhIENvbXB1dGluZywgSW5jLgorCQkJCTE0NTA1IEhheWRlbiBSZC4sCisJCQkJU3VpdGUgQjM0MAorCQkJCVNjb3R0c2RhbGUgQVogODUyNjAtNjk1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNTUgICAoaGV4KQkJTGFmb24gU0EKKzAwMDc1NSAgICAgKGJhc2UgMTYpCQlMYWZvbiBTQQorCQkJCTQ0IEF2ZW51ZSBWaWN0b3IgTWV1bmllcgorCQkJCSBCYXNzZW5zICAzMzUzMAorCQkJCUZSQU5DRQorCiswMC0wNy01NiAgIChoZXgpCQlKdXlvdW5nIFRlbGVjb20KKzAwMDc1NiAgICAgKGJhc2UgMTYpCQlKdXlvdW5nIFRlbGVjb20KKwkJCQkjMjAxLCBEdW5zYW4gQnVpbGRpbmcKKwkJCQkyMTgtMSBXYWxweWVuZy1Eb25nLCBTZW9ndSwKKwkJCQlUYWVqb24gIDMwMi04NDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctNTcgICAoaGV4KQkJVG9wY2FsbCBJbnRlcm5hdGlvbmFsIEFHCiswMDA3NTcgICAgIChiYXNlIDE2KQkJVG9wY2FsbCBJbnRlcm5hdGlvbmFsIEFHCisJCQkJVGFscGFnYXNzZSAxCisJCQkJMTIzMCBWaWVubmEKKwkJCQlBVVNUUklBCisKKzAwLTA3LTU4ICAgKGhleCkJCURyYWdvbndhdmUKKzAwMDc1OCAgICAgKGJhc2UgMTYpCQlEcmFnb253YXZlCisJCQkJNjAwLTQxMSBMZWdnZXR0IERyaXZlLAorCQkJCVN1aXRlIDYwMAorCQkJCUthbmF0YSwgT250YXJpbyBLMksgM0M5CisJCQkJQ0FOQURBCisKKzAwLTA3LTU5ICAgKGhleCkJCUJvcmlzIE1hbnVmYWN0dXJpbmcgQ29ycC4KKzAwMDc1OSAgICAgKGJhc2UgMTYpCQlCb3JpcyBNYW51ZmFjdHVyaW5nIENvcnAuCisJCQkJUE8gQm94IDYwMQorCQkJCUNhc3RsZSBQb2ludCBOWSAxMjUxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNUEgICAoaGV4KQkJQWlyIFByb2R1Y3RzIGFuZCBDaGVtaWNhbHMsIEluYy4KKzAwMDc1QSAgICAgKGJhc2UgMTYpCQlBaXIgUHJvZHVjdHMgYW5kIENoZW1pY2FscywgSW5jLgorCQkJCTcyMDEgSGFtaWx0b24gQmx2ZC4KKwkJCQlNYWlsIFN0b3AgQzEzMDcKKwkJCQlBbGxlbnRvd24gUEEgMTgxOTUtMTUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNUIgICAoaGV4KQkJR2lic29uIEd1aXRhcnMKKzAwMDc1QiAgICAgKGJhc2UgMTYpCQlHaWJzb24gR3VpdGFycworCQkJCTMwOSBQYXJrIFBsdXMgQmx2ZC4KKwkJCQlOYXNodmlsbGUgVE4gMzcyMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTVDICAgKGhleCkJCUVhc3RtYW4gS29kYWsgQ29tcGFueQorMDAwNzVDICAgICAoYmFzZSAxNikJCUVhc3RtYW4gS29kYWsgQ29tcGFueQorCQkJCTM0MyBTdGF0ZSBTdHJlZXQKKwkJCQlSb2NoZXN0ZXIgTlkgMTQ2NTAtMDEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNUQgICAoaGV4KQkJQ2VsbGVyaXRhcyBJbmMuCiswMDA3NUQgICAgIChiYXNlIDE2KQkJQ2VsbGVyaXRhcyBJbmMuCisJCQkJYy9vIENlbGVyaXRhcyBMdGQuCisJCQkJQmV6YWxlbCAyOSwgUmFtYXQtR2FuCisJCQkJSVNSQUVMCisKKzAwLTA3LTVFICAgKGhleCkJCUFtZXRlayBQb3dlciBJbnN0cnVtZW50cworMDAwNzVFICAgICAoYmFzZSAxNikJCUFtZXRlayBQb3dlciBJbnN0cnVtZW50cworCQkJCTQwNTAgTlcgMTIxIEF2ZW51ZQorCQkJCUNvcmFsIFNwcmluZ3MgRkwgMzMwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTVGICAgKGhleCkJCVZDUyBWaWRlbyBDb21tdW5pY2F0aW9uIFN5c3RlbXMgQUcKKzAwMDc1RiAgICAgKGJhc2UgMTYpCQlWQ1MgVmlkZW8gQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIEFHCisJCQkJRm9yY2hoZWltZXIgU3RyLiA0CisJCQkJOTA0MjUgTnVlcm5iZXJnCisJCQkJR0VSTUFOWQorCiswMC0wNy02MCAgIChoZXgpCQlUT01JUyBJbmZvcm1hdGlvbiAmIFRlbGVjb20gQ29ycC4KKzAwMDc2MCAgICAgKGJhc2UgMTYpCQlUT01JUyBJbmZvcm1hdGlvbiAmIFRlbGVjb20gQ29ycC4KKwkJCQlZb3VuZ2RldW5ncG8gdGVsZXBob25lIG9mZmljZSAtIGV4dGVuc2lvCisJCQkJWW91bmdkZXVuZ3BvZG9uZyAzNS0xLCBZb3VuZ2RldW5ncG8tZ3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTYxICAgKGhleCkJCUxvZ2l0ZWNoIFNBCiswMDA3NjEgICAgIChiYXNlIDE2KQkJTG9naXRlY2ggU0EKKwkJCQlaLkkuIE1vdWxpbiBkdSBDaG9jIEQKKwkJCQlDSC0xMTIyIFJvbWFuZWwtc3VyLU1vcmdlcworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA3LTYyICAgKGhleCkJCUdyb3VwIFNlbnNlIExpbWl0ZWQKKzAwMDc2MiAgICAgKGJhc2UgMTYpCQlHcm91cCBTZW5zZSBMaW1pdGVkCisJCQkJMjcvRiwgV3UgQ2h1bmcgSG91c2UsCisJCQkJMjEzIFF1ZWVuJ3MgUm9hZCBFYXN0LAorCQkJCVdhbmNoYWkgIAorCQkJCUhPTkcgS09ORworCiswMC0wNy02MyAgIChoZXgpCQlTdW5uaXdlbGwgQ3liZXIgVGVjaC4gQ28uLCBMdGQuCiswMDA3NjMgICAgIChiYXNlIDE2KQkJU3Vubml3ZWxsIEN5YmVyIFRlY2guIENvLiwgTHRkLgorCQkJCTE3dGggRmxvb3IgSGFpdGFpIEJ1aWxkaW5nICMyMjkKKwkJCQlCZWlzaWh1YW4gSG9uZyBSb2FkLAorCQkJCUJlaWppbmcgIDEwMDA4MworCQkJCUNISU5BCisKKzAwLTA3LTY0ICAgKGhleCkJCVlvdW5nV29vIFRlbGVjb20gQ28uIEx0ZC4KKzAwMDc2NCAgICAgKGJhc2UgMTYpCQlZb3VuZ1dvbyBUZWxlY29tIENvLiBMdGQuCisJCQkJM0YsIFNlaHdhIEIvRCwgMzU1LTEKKwkJCQlZYXRhcC1Eb25nLCBCdW5kYWcta3UKKwkJCQlTdW5nbmFtLVNpIEt5dW5na2ktRG8gCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LTY1ICAgKGhleCkJCUphZGUgUXVhbnR1bSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDc2NSAgICAgKGJhc2UgMTYpCQlKYWRlIFF1YW50dW0gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNUYsIE5vLiAxMTYsIEhzaWVuIEZ1IFJkLiwKKwkJCQlUYW95dWFuLAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDctNjYgICAoaGV4KQkJQ2hvdSBDaGluIEluZHVzdHJpYWwgQ28uLCBMdGQuCiswMDA3NjYgICAgIChiYXNlIDE2KQkJQ2hvdSBDaGluIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJOUYsICMzNSwgQ2hpYXUgQW4gU3QuIENodW5nIEhvIENpdHksCisJCQkJVGFpcGVpIEhzaWVuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wNy02NyAgIChoZXgpCQlZdXhpbmcgRWxlY3Ryb25pY3MgQ29tcGFueSBMaW1pdGVkCiswMDA3NjcgICAgIChiYXNlIDE2KQkJWXV4aW5nIEVsZWN0cm9uaWNzIENvbXBhbnkgTGltaXRlZAorCQkJCVVuaXQgMTgwOCwgMTgvRiBUb3dlciAzLAorCQkJCUVudGVycHJpc2UgU3F1YXJlLCA5IFNoZXVuZyBZdWV0IFJvYWQKKwkJCQlLb3dsb29uIEJheSwgS293bG9vbiAKKwkJCQlIT05HIEtPTkcKKworMDAtMDctNjggICAoaGV4KQkJRGFuZm9zcyBBL1MKKzAwMDc2OCAgICAgKGJhc2UgMTYpCQlEYW5mb3NzIEEvUworCQkJCUUxNi1OMTIsIERLLTY0MzAgTm9yZGJvcmcKKwkJCQlERU5NQVJLCisKKzAwLTA3LTY5ICAgKGhleCkJCUl0YWxpYW5hIE1hY2NoaSBTcEEKKzAwMDc2OSAgICAgKGJhc2UgMTYpCQlJdGFsaWFuYSBNYWNjaGkgU3BBCisJCQkJVmlhIE1hdHRlb3R0aSAxCisJCQkJMjEwNDAgT2dnaW9uYSBTLiBTdGVmYW5vIChWQSkKKwkJCQlJVEFMWQorCiswMC0wNy02QSAgIChoZXgpCQlORVhURVlFIENvLiwgTHRkLgorMDAwNzZBICAgICAoYmFzZSAxNikJCU5FWFRFWUUgQ28uLCBMdGQuCisJCQkJU2hpbnNlZ2kgUGxhemEgNEYsIDkwMC05LAorCQkJCVB5dW5nY2hvbiwgRG9uZ2FuLCBBbnlhbmcsCisJCQkJS3l1bmdnaSAgNDMxLTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy02QiAgIChoZXgpCQlTdHJhbGZvcnMgQUIKKzAwMDc2QiAgICAgKGJhc2UgMTYpCQlTdHJhbGZvcnMgQUIKKwkJCQlMYW5nZ2F0YW4gMjEKKwkJCQlTLTM0MSA4NCBManVuZ2J5CisJCQkJU1dFREVOCisKKzAwLTA3LTZDICAgKGhleCkJCURhZWhhbmV0LCBJbmMuCiswMDA3NkMgICAgIChiYXNlIDE2KQkJRGFlaGFuZXQsIEluYy4KKwkJCQkjOC0yIENodW5nIEp1bmcgUmQgMi0gR2EKKwkJCQlTdXIgRGFlIE1vb24sCisJCQkJU2VvdWwgIDEyMC0wMTIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctNkQgICAoaGV4KQkJRmxleGxpZ2h0IE5ldHdvcmtzCiswMDA3NkQgICAgIChiYXNlIDE2KQkJRmxleGxpZ2h0IE5ldHdvcmtzCisJCQkJMTUgQXRpciBZZWRhIFN0LgorCQkJCUtmYXIgU2FiYSA0NDY0MworCQkJCUlTUkFFTAorCiswMC0wNy02RSAgIChoZXgpCQlTaW5ldGljYSBDb3Jwb3JhdGlvbiBMaW1pdGVkCiswMDA3NkUgICAgIChiYXNlIDE2KQkJU2luZXRpY2EgQ29ycG9yYXRpb24gTGltaXRlZAorCQkJCVdpbGxvdyBIb3VzZQorCQkJCUxsYW5jYXlvIENvdXJ0CisJCQkJTW9ubW91dGhzaGlyZSBVc2sgTlAxNSAxSFkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy02RiAgIChoZXgpCQlTeW5vcHRpY3MgTGltaXRlZAorMDAwNzZGICAgICAoYmFzZSAxNikJCVN5bm9wdGljcyBMaW1pdGVkCisJCQkJQmVhY29uIEhvdXNlLCBOdWZmaWVsZCBSb2FkLAorCQkJCUNhbWJyaWRnZSBDQjQgMVRGCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDctNzAgICAoaGV4KQkJTG9jdXNuZXR3b3JrcyBDb3Jwb3JhdGlvbgorMDAwNzcwICAgICAoYmFzZSAxNikJCUxvY3VzbmV0d29ya3MgQ29ycG9yYXRpb24KKwkJCQk5dGggRmwuIENodW5namxuCisJCQkJNTMtNSBXb25oeW8tUm8gM0dhCisJCQkJU2VvdWwgIDE0MC03MTkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctNzEgICAoaGV4KQkJRW1iZWRkZWQgU3lzdGVtIENvcnBvcmF0aW9uCiswMDA3NzEgICAgIChiYXNlIDE2KQkJRW1iZWRkZWQgU3lzdGVtIENvcnBvcmF0aW9uCisJCQkJMTMtNSwgVGFrYWRhbm9iYWJhIDMtY2hvbWUsCisJCQkJU2hpbmp1a3Uta3UsIFRva3lvIDE2OS0wMDc1CisJCQkJSkFQQU4KKworMDAtMDctNzIgICAoaGV4KQkJQWxjYXRlbCBTaGFuZ2hhaSBCZWxsIENvLiwgTHRkLgorMDAwNzcyICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgU2hhbmdoYWkgQmVsbCBDby4sIEx0ZC4KKwkJCQlOby4gMzg4LCBOaW5ncWlhbyBSb2FkLAorCQkJCVB1ZG9uZyBKaW5xaWFvLCBTaGFuZ2hhaQorCQkJCTIwMTIwNgorCQkJCUNISU5BCisKKzAwLTA3LTczICAgKGhleCkJCUFzY29tIFBvd2VybGluZSBDb21tdW5pY2F0aW9ucyBMdGQuCiswMDA3NzMgICAgIChiYXNlIDE2KQkJQXNjb20gUG93ZXJsaW5lIENvbW11bmljYXRpb25zIEx0ZC4KKwkJCQlCZWxwc3RyLiAzNworCQkJCTMwMDAgQmVybiAxNAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA3LTc0ICAgKGhleCkJCUd1YW5nWmhvdSBUaGlua2VyIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKzAwMDc3NCAgICAgKGJhc2UgMTYpCQlHdWFuZ1pob3UgVGhpbmtlciBUZWNobm9sb2d5IENvLiBMdGQuCisJCQkJMTA5IFpob25nc2hhbiBBdmUuLCBUaWFuaGUgRGlzdHJpY3QKKwkJCQlHdWFuZ3pob3UKKwkJCQk1MTA2MzAKKwkJCQlDSElOQQorCiswMC0wNy03NSAgIChoZXgpCQlWYWxlbmNlIFNlbWljb25kdWN0b3IsIEluYy4KKzAwMDc3NSAgICAgKGJhc2UgMTYpCQlWYWxlbmNlIFNlbWljb25kdWN0b3IsIEluYy4KKwkJCQk0MSBEaXNjb3ZlcnkKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LTc2ICAgKGhleCkJCUZlZGVyYWwgQVBECiswMDA3NzYgICAgIChiYXNlIDE2KQkJRmVkZXJhbCBBUEQKKwkJCQk0Mjc3NSBOaW5lIE1pbGUgUmQuCisJCQkJTm92aSBNSSA0ODM3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctNzcgICAoaGV4KQkJTW90YWggTHRkLgorMDAwNzc3ICAgICAoYmFzZSAxNikJCU1vdGFoIEx0ZC4KKwkJCQk0LTQtNSBLb2lzaGlrYXdhCisJCQkJQnVua3lvLCBUb2t5bworCQkJCTExMi0wMDAyCisJCQkJSkFQQU4KKworMDAtMDctNzggICAoaGV4KQkJR0VSU1RFTCBHbWJIICYgQ28uIEtHCiswMDA3NzggICAgIChiYXNlIDE2KQkJR0VSU1RFTCBHbWJIICYgQ28uIEtHCisJCQkJRWJlcmhhcmQtR2Vyc3RlbC1QbGF0eiAxCisJCQkJRDQ1NDczCisJCQkJTcO8bGhlaW0gYW4gZGVyIFJ1aHIgIAorCQkJCUdFUk1BTlkKKworMDAtMDctNzkgICAoaGV4KQkJU3VuZ2lsIFRlbGVjb20gQ28uLCBMdGQuCiswMDA3NzkgICAgIChiYXNlIDE2KQkJU3VuZ2lsIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJIzMyMSwgR29uZ2Rhbi1Eb25nLAorCQkJCUd1bWktQ2l0eSwgS3lvdW5nLUJ1aworCQkJCTczMC0wMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctN0EgICAoaGV4KQkJSW5mb3dhcmUgU3lzdGVtIENvLiwgTHRkLgorMDAwNzdBICAgICAoYmFzZSAxNikJCUluZm93YXJlIFN5c3RlbSBDby4sIEx0ZC4KKwkJCQlNaXpvcm9naSBEYWlpY2hpIEJsZGcgNCBGCisJCQkJMS01LTEzIFNoaW5qdWt1LCBTaGluanVrdS1rdQorCQkJCVRva3lvICAKKwkJCQlKQVBBTgorCiswMC0wNy03QiAgIChoZXgpCQlNaWxsaW1ldHJpeCBCcm9hZGJhbmQgTmV0d29ya3MKKzAwMDc3QiAgICAgKGJhc2UgMTYpCQlNaWxsaW1ldHJpeCBCcm9hZGJhbmQgTmV0d29ya3MKKwkJCQlLaWJ1dHogR2l2YXQgSGFzaGVsb3NoYSA0ODgwMAorCQkJCUlTUkFFTAorCiswMC0wNy03QyAgIChoZXgpCQlXZXN0ZXJtbyBUZWxlaW5kdXN0cmkgQUIKKzAwMDc3QyAgICAgKGJhc2UgMTYpCQlXZXN0ZXJtbyBUZWxlaW5kdXN0cmkgQUIKKwkJCQlTRS02NDAgNDAKKwkJCQlTdG9yYSBTdW5kYnkgIAorCQkJCVNXRURFTgorCiswMC0wNy03RCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA3N0QgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctN0UgICAoaGV4KQkJRWxyZXN0IEdtYkgKKzAwMDc3RSAgICAgKGJhc2UgMTYpCQlFbHJlc3QgR21iSAorCQkJCUxlaWJuaXpzdHIuIDEwCisJCQkJRC03MzIzMCBLaXJjaGhlaW0KKwkJCQlHRVJNQU5ZCisKKzAwLTA3LTdGICAgKGhleCkJCUogQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDA3N0YgICAgIChiYXNlIDE2KQkJSiBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQkxMjQtNCBPamVvbi1Eb25nLCBVbHdhbmctQ2l0eQorCQkJCUt5dW5na2ktRG8KKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctODAgICAoaGV4KQkJQmx1ZWdpZ2EgVGVjaG5vbG9naWVzIE9ZCiswMDA3ODAgICAgIChiYXNlIDE2KQkJQmx1ZWdpZ2EgVGVjaG5vbG9naWVzIE9ZCisJCQkJUC5PLiBCT1ggMTIwCisJCQkJRklOLTAyNjMxIEVzcG9vIAorCQkJCUZJTkxBTkQKKworMDAtMDctODEgICAoaGV4KQkJSXRyb24gSW5jLgorMDAwNzgxICAgICAoYmFzZSAxNikJCUl0cm9uIEluYy4KKwkJCQkyODE4IE4uIFN1bGxpdmFuIFJvYWQKKwkJCQlTcG9rYW5lIFdBIDk5MjE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy04MiAgIChoZXgpCQlPcmFjbGUgQ29ycG9yYXRpb24KKzAwMDc4MiAgICAgKGJhc2UgMTYpCQlPcmFjbGUgQ29ycG9yYXRpb24KKwkJCQkxNyBOZXR3b3JrIENpcmNsZQorCQkJCUJ1aWxkaW5nIDE3LCBVTVBLMTctMTMxCisJCQkJTWVubG8gUGFyayBDQSA5NTAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctODMgICAoaGV4KQkJU3luQ29tIE5ldHdvcmssIEluYy4KKzAwMDc4MyAgICAgKGJhc2UgMTYpCQlTeW5Db20gTmV0d29yaywgSW5jLgorCQkJCTRGLCBOby4gMzEsIEhzaW50YWkgUm9hZCwgQ2h1cGVpIENpdHksCisJCQkJSHNpbmNodSBIc2llbiwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA3LTg0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMgSW5jLgorMDAwNzg0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctODUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcyBJbmMuCiswMDA3ODUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcyBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy04NiAgIChoZXgpCQlXaXJlbGVzcyBOZXR3b3JrcyBJbmMuCiswMDA3ODYgICAgIChiYXNlIDE2KQkJV2lyZWxlc3MgTmV0d29ya3MgSW5jLgorCQkJCSMzMDAsIDMwMTYgRmlmdGggQXZlLiBORQorCQkJCUNhbGdhcnksIEFsYmVydGEKKwkJCQlUMkEgNks0CisJCQkJQ0FOQURBCisKKzAwLTA3LTg3ICAgKGhleCkJCUlkZWEgU3lzdGVtIENvLiwgTHRkLgorMDAwNzg3ICAgICAoYmFzZSAxNikJCUlkZWEgU3lzdGVtIENvLiwgTHRkLgorCQkJCTQtMS0yMSBTaGlubWVpLWNobyBPa2F5YS1zaGkKKwkJCQlOYWdhbm8ta2VuIDM5NC0wMDA0CisJCQkJSkFQQU4KKworMDAtMDctODggICAoaGV4KQkJQ2xpcGNvbW0sIEluYy4KKzAwMDc4OCAgICAgKGJhc2UgMTYpCQlDbGlwY29tbSwgSW5jLgorCQkJCTV0aCBGbCwgU3Nhbmd5YW5nIEJsZGcuCisJCQkJOTM1LTEgQm9uZ2NoZW9uLWRvbmcsIEt3YW1hay1ndSwKKwkJCQlTZW91bCAgMTUxLTgyNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy04OSAgIChoZXgpCQlET05HV09OIFNZU1RFTVMKKzAwMDc4OSAgICAgKGJhc2UgMTYpCQlET05HV09OIFNZU1RFTVMKKwkJCQk4NjEtNSwgR3dhbnlhbmctRG9uZywgRG9uZ2FuLUd1LAorCQkJCUFueWFuZy1zaSwgR3llb25nZ2ktZG8sICA0MzAtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LThBICAgKGhleCkJCU1lbnRvciBEYXRhIFN5c3RlbSBJbmMuCiswMDA3OEEgICAgIChiYXNlIDE2KQkJTWVudG9yIERhdGEgU3lzdGVtIEluYy4KKwkJCQlOby4gMjQtMSwgSW5kdXN0cnkgRWFzdCA0IFJkLiwKKwkJCQlTY2llbmNlIEJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luLUNodSwgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDctOEIgICAoaGV4KQkJV2VnZW5lciBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNzhCICAgICAoYmFzZSAxNikJCVdlZ2VuZXIgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkxMTM1MCBUZWNobm9sb2d5IENpcmNsZQorCQkJCUR1bHV0aCBHQSAzMDA5NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctOEMgICAoaGV4KQkJRWxla3Ryb25pa3NwZWNpYWxpc3RlbiBpIEJvcmxhbmdlIEFCCiswMDA3OEMgICAgIChiYXNlIDE2KQkJRWxla3Ryb25pa3NwZWNpYWxpc3RlbiBpIEJvcmxhbmdlIEFCCisJCQkJQm94IDUwCisJCQkJNDAgTU9DS0ZKw4PigJ5SRAorCQkJCVNFIDc4MAorCQkJCVNXRURFTgorCiswMC0wNy04RCAgIChoZXgpCQlOZXRFbmdpbmVzIEx0ZC4KKzAwMDc4RCAgICAgKGJhc2UgMTYpCQlOZXRFbmdpbmVzIEx0ZC4KKwkJCQkxNDYgV2FsbnV0IFRyZWUgQ2xvc2UKKwkJCQlHdWlsZGZvcmQsIFN1cnJleQorCQkJCUdVSSA0VUIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy04RSAgIChoZXgpCQlHYXJ6ICYgRnJpY2hlIEdtYkgKKzAwMDc4RSAgICAgKGJhc2UgMTYpCQlHYXJ6ICYgRnJpY2hlIEdtYkgKKwkJCQlUZW1wb3dlcmh2aW5nIDQKKwkJCQlELTIxMDc5IEhhbWJ1cmcKKwkJCQlHRVJNQU5ZCisKKzAwLTA3LThGICAgKGhleCkJCUVta2F5IElubm92YXRpdmUgUHJvZHVjdHMKKzAwMDc4RiAgICAgKGJhc2UgMTYpCQlFbWtheSBJbm5vdmF0aXZlIFByb2R1Y3RzCisJCQkJNTMsIFBhbyBIc2luZyBSZC4sIEhzaW50aWVuIENpdHkKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDctOTAgICAoaGV4KQkJVHJpLU0gVGVjaG5vbG9naWVzIChzKSBMaW1pdGVkCiswMDA3OTAgICAgIChiYXNlIDE2KQkJVHJpLU0gVGVjaG5vbG9naWVzIChzKSBMaW1pdGVkCisJCQkJQmxrIDI1LCBLYWxsYW5nIEF2ZW51ZSAjMDctMDEvMDQKKwkJCQlLYWxsYW5nIEJhc2luIEluZC4gRXN0CisJCQkJMzM5NDE2CisJCQkJU0lOR0FQT1JFCisKKzAwLTA3LTkxICAgKGhleCkJCUludGVybmF0aW9uYWwgRGF0YSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwNzkxICAgICAoYmFzZSAxNikJCUludGVybmF0aW9uYWwgRGF0YSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTQ3ODczIEZyZW1vbnQgQmx2ZC4KKwkJCQlGcmVtb250IENBIDA0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy05MiAgIChoZXgpCQlTdWV0cm9uIEVsZWN0cm9uaWMgR21iSAorMDAwNzkyICAgICAoYmFzZSAxNikJCVN1ZXRyb24gRWxlY3Ryb25pYyBHbWJICisJCQkJS3VyemUgU3RyYXNzZSAyOQorCQkJCTcwNzk0IEZpbGRlcnN0YWR0CisJCQkJR0VSTUFOWQorCiswMC0wNy05MyAgIChoZXgpCQlTaGluIFNhdGVsbGl0ZSBQdWJsaWMgQ29tcGFueSBMaW1pdGVkCiswMDA3OTMgICAgIChiYXNlIDE2KQkJU2hpbiBTYXRlbGxpdGUgUHVibGljIENvbXBhbnkgTGltaXRlZAorCQkJCTQxLzEwMyAgUmF0dGFuYXRoaWJldCBSb2FkLAorCQkJCU5vbnRoYWJ1cmkgMTEwMDAsCisJCQkJVEhBSUxBTkQKKworMDAtMDctOTQgICAoaGV4KQkJU2ltcGxlIERldmljZXMsIEluYy4KKzAwMDc5NCAgICAgKGJhc2UgMTYpCQlTaW1wbGUgRGV2aWNlcywgSW5jLgorCQkJCTExMSBBbnphIEJsdmQuLCBTdWl0ZSAxMjAKKwkJCQlCdXJsaW5nYW1lIENBIDk0MDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy05NSAgIChoZXgpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4gKEVDUykKKzAwMDc5NSAgICAgKGJhc2UgMTYpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4gKEVDUykKKwkJCQlOby4gMjIsIEFsbGV5IDM4LCBMYW5lIDkxLAorCQkJCVNlYy4gMSwgTmVpIEh1IFJvYWQKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDctOTYgICAoaGV4KQkJTFNJIFN5c3RlbXMsIEluYy4KKzAwMDc5NiAgICAgKGJhc2UgMTYpCQlMU0kgU3lzdGVtcywgSW5jLgorCQkJCTEwLTEgTWluYW1pLWt1cm9rYXdhLAorCQkJCUFzYW8ta3UsIGthd2FzYWtpLAorCQkJCUthbmFnYXdhICAyMTUtMDAzNAorCQkJCUpBUEFOCisKKzAwLTA3LTk3ICAgKGhleCkJCU5ldHBvd2VyIENvLiwgTHRkLgorMDAwNzk3ICAgICAoYmFzZSAxNikJCU5ldHBvd2VyIENvLiwgTHRkLgorCQkJCUJhZWthbSBCbGRnLiwgNkYKKwkJCQkxMjMsIEthcmFrLURvbmcsIFNvbmctcGEgR3UKKwkJCQlTZW91bCAgMTM4LTE2MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy05OCAgIChoZXgpCQlTZWxlYSBTUkwKKzAwMDc5OCAgICAgKGJhc2UgMTYpCQlTZWxlYSBTUkwKKwkJCQlWaWEgQS4gTW9ybyBOby4gNjkKKwkJCQk0NjAxNSAtIENpY29nbmFyYQorCQkJCUlUQUxZCisKKzAwLTA3LTk5ICAgKGhleCkJCVRpcHBpbmcgUG9pbnQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA3OTkgICAgIChiYXNlIDE2KQkJVGlwcGluZyBQb2ludCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk3NTAxIEIgTi4gQ2FwaXRhbCBvZiBUWCBId3kuCisJCQkJQXVzdGluIFRYIDc4NzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy05QSAgIChoZXgpCQlWZXJpbnQgU3lzdGVtcyBJbmMKKzAwMDc5QSAgICAgKGJhc2UgMTYpCQlWZXJpbnQgU3lzdGVtcyBJbmMKKwkJCQkxODAwIEJlcmxpZXIsIFN1aXRlIDQ0MAorCQkJCUxhdmFsLCAgUXVlYmVjIEg3TCA0UzQKKwkJCQlDQU5BREEKKworMDAtMDctOUIgICAoaGV4KQkJQXVyb3JhIE5ldHdvcmtzCiswMDA3OUIgICAgIChiYXNlIDE2KQkJQXVyb3JhIE5ldHdvcmtzCisJCQkJMjgwMyBNaXNzaW9uIENvbGxlZ2UgQmx2ZC4KKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctOUMgICAoaGV4KQkJR29sZGVuIEVsZWN0cm9uaWNzIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDA3OUMgICAgIChiYXNlIDE2KQkJR29sZGVuIEVsZWN0cm9uaWNzIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uIDI5LCAyMXN0IFJvYWQsCisJCQkJVGFpY2h1bmcgSW5kdXN0cmlhbCBQYXJrLCBUYWljaHVuZworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDctOUQgICAoaGV4KQkJTXVzYXNoaSBDby4sIEx0ZC4KKzAwMDc5RCAgICAgKGJhc2UgMTYpCQlNdXNhc2hpIENvLiwgTHRkLgorCQkJCTMtMjEtMSwgU2hpbW8tb2NoaWFpLAorCQkJCVNoaW5qdWt1LWt1LAorCQkJCVRva3lvICAxNjEtMDAzMworCQkJCUpBUEFOCisKKzAwLTA3LTlFICAgKGhleCkJCUlsaW54IENvLiwgTHRkLgorMDAwNzlFICAgICAoYmFzZSAxNikJCUlsaW54IENvLiwgTHRkLgorCQkJCTR0aCBGbG9vciBLb3JlYSBUZWxlY29tLCBZYW5namFlIEJyYW5jaAorCQkJCURvZ29rLURvbmcsIEthbmduYW0ta3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy05RiAgIChoZXgpCQlBY3Rpb24gRGlnaXRhbCBJbmMuCiswMDA3OUYgICAgIChiYXNlIDE2KQkJQWN0aW9uIERpZ2l0YWwgSW5jLgorCQkJCTEwNjUwIE1haW4gU3QuCisJCQkJU3VpdGUgMTAyCisJCQkJRmFpcmZheCBWQSAyMjAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQTAgICAoaGV4KQkJZS1XYXRjaCBJbmMuCiswMDA3QTAgICAgIChiYXNlIDE2KQkJZS1XYXRjaCBJbmMuCisJCQkJNzgwMCBJSCAxMCBXZXN0CisJCQkJU3VpdGUgNzAwCisJCQkJU2FuIEFudG9uaW8gVFggNzgyMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUExICAgKGhleCkJCVZJQVNZUyBIZWFsdGhjYXJlIEdtYkgKKzAwMDdBMSAgICAgKGJhc2UgMTYpCQlWSUFTWVMgSGVhbHRoY2FyZSBHbWJICisJCQkJTGVpYm5penN0cmFzc2UgNworCQkJCUhvZWNoYmVyZyBCYXZhcmlhIDk3MjA0CisJCQkJR0VSTUFOWQorCiswMC0wNy1BMiAgIChoZXgpCQlPcHRlb24gQ29ycG9yYXRpb24KKzAwMDdBMiAgICAgKGJhc2UgMTYpCQlPcHRlb24gQ29ycG9yYXRpb24KKwkJCQk3MCBIYXN0aW5ncyBTdHJlZXQKKwkJCQlXZWxsZXNsZXkgTUEgMDI0ODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUEzICAgKGhleCkJCU9zaXRpcyBTb2Z0d2FyZSwgSW5jLgorMDAwN0EzICAgICAoYmFzZSAxNikJCU9zaXRpcyBTb2Z0d2FyZSwgSW5jLgorCQkJCTYxMjAgU3RvbmVyaWRnZSBNYWxsIFJvYWQKKwkJCQlTdWl0ZSAyMTAKKwkJCQlQbGVhc2FudG9uIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1BNCAgIChoZXgpCQlHTiBOZXRjb20gTHRkLgorMDAwN0E0ICAgICAoYmFzZSAxNikJCUdOIE5ldGNvbSBMdGQuCisJCQkJMTItMTMgU2VkbGluZyBSb2FkLCBXZWFyIEVzdC4sIERpc3RyaWN0CisJCQkJV2FzaGluZ3RvbiwgVHluZSBhbmQgV2VhcgorCQkJCUVuZ2xhbmQgTkUzOCA5QloKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy1BNSAgIChoZXgpCQlZLkQuSyBDby4gTHRkLgorMDAwN0E1ICAgICAoYmFzZSAxNikJCVkuRC5LIENvLiBMdGQuCisJCQkJMTcwNSwgT3NoaXRhdGUsIEluYWdpLUNpdHksCisJCQkJVG9reW8sCisJCQkJSkFQQU4KKworMDAtMDctQTYgICAoaGV4KQkJSG9tZSBBdXRvbWF0aW9uLCBJbmMuCiswMDA3QTYgICAgIChiYXNlIDE2KQkJSG9tZSBBdXRvbWF0aW9uLCBJbmMuCisJCQkJNDMzMCBNaWNob3VkIEJsdmQuCisJCQkJTmV3IE9ybGVhbnMgTEEgNzAxMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUE3ICAgKGhleCkJCUEtWiBJbmMuCiswMDA3QTcgICAgIChiYXNlIDE2KQkJQS1aIEluYy4KKwkJCQk1LTUtMTcgS2FtaWtvdXNoaWVuCisJCQkJTmlzaGlub21peWEgQ2l0eSwgSHlvZ28KKwkJCQlKQVBBTgorCiswMC0wNy1BOCAgIChoZXgpCQlIYWllciBHcm91cCBUZWNobm9sb2dpZXMgTHRkLgorMDAwN0E4ICAgICAoYmFzZSAxNikJCUhhaWVyIEdyb3VwIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJTm8uIDEgSGFpZXIgUm9hZCwgSGktdGVjaCBab25lCisJCQkJUWluZ2RhbywKKwkJCQlDSElOQQorCiswMC0wNy1BOSAgIChoZXgpCQlOb3Zhc29uaWNzCiswMDA3QTkgICAgIChiYXNlIDE2KQkJTm92YXNvbmljcworCQkJCTEzOTAgV2lsbG93IFJvYWQKKwkJCQlNZW5sbyBQYXJrIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1BQSAgIChoZXgpCQlRdWFudHVtIERhdGEgSW5jLgorMDAwN0FBICAgICAoYmFzZSAxNikJCVF1YW50dW0gRGF0YSBJbmMuCisJCQkJMjExMSBCaWcgVGltYmVyIFJkLgorCQkJCUVsZ2luIElMIDYwMTIzLTExMDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUFCICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAwN0FCICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy1BQyAgIChoZXgpCQlFb2xyaW5nCiswMDA3QUMgICAgIChiYXNlIDE2KQkJRW9scmluZworCQkJCTEwIFJ1ZSBBbGZyZWQgS2FzdGxlcgorCQkJCTE0MDAwIENhZW4KKwkJCQlGUkFOQ0UKKworMDAtMDctQUQgICAoaGV4KQkJUGVudGFjb24gR21iSCBGb3RvLXVuZCBGZWlud2Vya3RlY2huaWsKKzAwMDdBRCAgICAgKGJhc2UgMTYpCQlQZW50YWNvbiBHbWJIIEZvdG8tdW5kIEZlaW53ZXJrdGVjaG5paworCQkJCUVuZGVyc3RyYWJlIDk0CisJCQkJMDEyNzcgRHJlc2RlbgorCQkJCUdFUk1BTlkKKworMDAtMDctQUUgICAoaGV4KQkJQnJpdGVzdHJlYW0gTmV0d29ya3MsIEluYy4KKzAwMDdBRSAgICAgKGJhc2UgMTYpCQlCcml0ZXN0cmVhbSBOZXR3b3JrcywgSW5jLgorCQkJCTEyNDAxIFJlc2VhcmNoIEJsdmQuCisJCQkJQnVpbGRpbmcgVHdvLCBTdWl0ZSAyNzUKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUFGICAgKGhleCkJCU4tVFJPTiBDb3Jwb3JhdGlvbgorMDAwN0FGICAgICAoYmFzZSAxNikJCU4tVFJPTiBDb3Jwb3JhdGlvbgorCQkJCTMxMDEgSW50ZXJuYXRpb25hbCBEcml2ZQorCQkJCU1vYmlsZSBBTCAzNjYwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQjAgICAoaGV4KQkJT2ZmaWNlIERldGFpbHMsIEluYy4KKzAwMDdCMCAgICAgKGJhc2UgMTYpCQlPZmZpY2UgRGV0YWlscywgSW5jLgorCQkJCTI1IE90dGF3YQorCQkJCTR0aCBGbG9vcgorCQkJCUdyYW5kIFJhcGlkcyBNSSA0OTUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQjEgICAoaGV4KQkJRXF1YXRvciBUZWNobm9sb2dpZXMKKzAwMDdCMSAgICAgKGJhc2UgMTYpCQlFcXVhdG9yIFRlY2hub2xvZ2llcworCQkJCTEzMDAgV2hpdGUgT2FrcyBSZC4KKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQjIgICAoaGV4KQkJVHJhbnNhY2Nlc3MgUy5BLgorMDAwN0IyICAgICAoYmFzZSAxNikJCVRyYW5zYWNjZXNzIFMuQS4KKwkJCQlSLiBHYWxlbm8gRGUgQ2FzdHJvLCAxNDQ1CisJCQkJVHVydWJhdHViYSAwNDY5Ni0wNDAKKwkJCQlTYW8gUGF1bG8gU1AgIAorCQkJCUJSQVpJTAorCiswMC0wNy1CMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKzAwMDdCMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUI0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMgSW5jLgorMDAwN0I0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQjUgICAoaGV4KQkJQW55IE9uZSBXaXJlbGVzcyBMdGQuCiswMDA3QjUgICAgIChiYXNlIDE2KQkJQW55IE9uZSBXaXJlbGVzcyBMdGQuCisJCQkJTmFtc2VvdWwgQmQuLCA4RiwgMTMwNC0zCisJCQkJU2VvY2hvIDQtRG9uZywgU2VvY2hvLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy1CNiAgIChoZXgpCQlUZWxlY29tIFRlY2hub2xvZ3kgTHRkLgorMDAwN0I2ICAgICAoYmFzZSAxNikJCVRlbGVjb20gVGVjaG5vbG9neSBMdGQuCisJCQkJRG9ja2xhbmRzIElubm92YXRpb24gUGFyaworCQkJCTEyOC0xMzAgRWFzdCBXYWxsIFJvYWQKKwkJCQlEdWJsaW4gMyAgCisJCQkJSVJFTEFORAorCiswMC0wNy1CNyAgIChoZXgpCQlTYW11cmFpIEluZC4gUHJvZHMgRWxldHJvbmljb3MgTHRkYQorMDAwN0I3ICAgICAoYmFzZSAxNikJCVNhbXVyYWkgSW5kLiBQcm9kcyBFbGV0cm9uaWNvcyBMdGRhCisJCQkJUi1OZWJyYXNrYSwgNDQzIFMvMiAybyBBbmRhcgorCQkJCUJyb29rbGluIE5vdm8gLSBTYW8gUGF1bG8KKwkJCQkwNDU2MC0wMTEKKwkJCQlCUkFaSUwKKworMDAtMDctQjggICAoaGV4KQkJQ29ydmFsZW50IENvcnBvcmF0aW9uCiswMDA3QjggICAgIChiYXNlIDE2KQkJQ29ydmFsZW50IENvcnBvcmF0aW9uCisJCQkJMTEwMSBBcnJvdyBQb2ludCBEciAjNTAxCisJCQkJQ2VkYXIgUGFyayBUWCA3ODYxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQjkgICAoaGV4KQkJR2luZ2FuZXQgQ29ycG9yYXRpb24KKzAwMDdCOSAgICAgKGJhc2UgMTYpCQlHaW5nYW5ldCBDb3Jwb3JhdGlvbgorCQkJCUtpbnRldHN1IFNoaW4gTmFtYmEgQnVpbGRpbmcKKwkJCQlNaW5hdG8gTWFjaGkgMS00LTM4IE5hbml3YWt1CisJCQkJT3Nha2EgU2hpICAxNTU2LTAwMTcKKwkJCQlKQVBBTgorCiswMC0wNy1CQSAgIChoZXgpCQlVVFN0YXJjb20sIEluYy4KKzAwMDdCQSAgICAgKGJhc2UgMTYpCQlVVFN0YXJjb20sIEluYy4KKwkJCQkxMjc1IEJhcmJvciBCYXkgUEtXWQorCQkJCUFsYW1lZGEgQ0EgOTQ1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUJCICAgKGhleCkJCUNhbmRlcmEgSW5jLgorMDAwN0JCICAgICAoYmFzZSAxNikJCUNhbmRlcmEgSW5jLgorCQkJCTY3MyBTb3V0aCBNaWxwaXRhcyBCbHZkLgorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1CQyAgIChoZXgpCQlJZGVudGl4IEluYy4KKzAwMDdCQyAgICAgKGJhc2UgMTYpCQlJZGVudGl4IEluYy4KKwkJCQk2NTkxIFNpZXJyYSBMYW5lCisJCQkJRHVibGluIENBIDk0NTY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1CRCAgIChoZXgpCQlSYWRpb25ldCBMdGQuCiswMDA3QkQgICAgIChiYXNlIDE2KQkJUmFkaW9uZXQgTHRkLgorCQkJCUtlaWxhcmFudGEgNgorCQkJCTAyMTUwIEVTUDAwCisJCQkJRklOTEFORAorCiswMC0wNy1CRSAgIChoZXgpCQlEYXRhTG9naWMgU3BBCiswMDA3QkUgICAgIChiYXNlIDE2KQkJRGF0YUxvZ2ljIFNwQQorCQkJCVZpYSBDYW5kaW5pLCAyCisJCQkJNDAwMTIgTGlwcG8gZGkgQ2FsZGVyYXJhIGRpIFJlbm8KKwkJCQlCb2xvZ25hICAKKwkJCQlJVEFMWQorCiswMC0wNy1CRiAgIChoZXgpCQlBcm1pbGxhaXJlIFRlY2hub2xvZ2llcywgSW5jLgorMDAwN0JGICAgICAoYmFzZSAxNikJCUFybWlsbGFpcmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTA0MTEgTW90b3IgQ2l0eSBEcml2ZQorCQkJCUJldGhlc2RhIE1EIDIwODE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1DMCAgIChoZXgpCQlOZXRaZXJ2ZXIgSW5jLgorMDAwN0MwICAgICAoYmFzZSAxNikJCU5ldFplcnZlciBJbmMuCisJCQkJMjYgV2VzdCBMb25lIENhY3R1cyBEcml2ZQorCQkJCVBob2VuaXggQVogODUwMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUMxICAgKGhleCkJCU92ZXJ0dXJlIE5ldHdvcmtzLCBJbmMuCiswMDA3QzEgICAgIChiYXNlIDE2KQkJT3ZlcnR1cmUgTmV0d29ya3MsIEluYy4KKwkJCQk2MzcgRGF2aXMgRHJpdmUKKwkJCQlNb3JyaXN2aWxsZSBOQyAyMjc1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUMyICAgKGhleCkJCU5ldHN5cyBUZWxlY29tCiswMDA3QzIgICAgIChiYXNlIDE2KQkJTmV0c3lzIFRlbGVjb20KKwkJCQk0RiwgS3l1bmdOYW0gQi9ELCA4MzAtNDgsIFllb2tTYW0tRG9uZworCQkJCUthbmduYW0tR3UsCisJCQkJU2VvdWwgIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctQzMgICAoaGV4KQkJVGhvbXNvbgorMDAwN0MzICAgICAoYmFzZSAxNikJCVRob21zb24KKwkJCQk1LTcsIHJ1ZSBTYWxvbW9uIGRlIFJvdGhzY2hpbGQKKwkJCQlTdXJlc25lcworCQkJCTkyMTUwCisJCQkJRlJBTkNFCisKKzAwLTA3LUM0ICAgKGhleCkJCUpFQU4gQ28uIEx0ZC4KKzAwMDdDNCAgICAgKGJhc2UgMTYpCQlKRUFOIENvLiBMdGQuCisJCQkJN0YsIDIsIFJlaSBLdWFuZyBSb2FkLAorCQkJCU5laSBIdSwKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDctQzUgICAoaGV4KQkJR2NvbSwgSW5jLgorMDAwN0M1ICAgICAoYmFzZSAxNikJCUdjb20sIEluYy4KKwkJCQkxODAwIFdvb2RmaWVsZCBEci4KKwkJCQlTYXZveSBJTCA2MTg3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctQzYgICAoaGV4KQkJVkRTIFZvc3NrdWhsZXIgR21iSAorMDAwN0M2ICAgICAoYmFzZSAxNikJCVZEUyBWb3Nza3VobGVyIEdtYkgKKwkJCQlXZWliZSBCcmVpdGUgNworCQkJCUQtNDkwODQgT3NuYWJydWNrCisJCQkJR0VSTUFOWQorCiswMC0wNy1DNyAgIChoZXgpCQlTeW5lY3RpY3MgU3lzdGVtcyBMaW1pdGVkCiswMDA3QzcgICAgIChiYXNlIDE2KQkJU3luZWN0aWNzIFN5c3RlbXMgTGltaXRlZAorCQkJCTMgQWNvcm4gQnVzaW5lc3MgUGFyaworCQkJCVdvb3NlYXRzIENsb3NlLCBTaGVmZmllbGQKKwkJCQlTOCBPVEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy1DOCAgIChoZXgpCQlCcmFpbjIxLCBJbmMuCiswMDA3QzggICAgIChiYXNlIDE2KQkJQnJhaW4yMSwgSW5jLgorCQkJCTE5RiBNZXNhIEIvRCwgMjA0IEhvaWh5dW4tRG9uZworCQkJCUpvb25nLUd1CisJCQkJU2VvdWwgIDEwMC0wNTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctQzkgICAoaGV4KQkJVGVjaG5vbCBTZXZlbiBDby4sIEx0ZC4KKzAwMDdDOSAgICAgKGJhc2UgMTYpCQlUZWNobm9sIFNldmVuIENvLiwgTHRkLgorCQkJCTI1LTE2IFRvYmVob24tY2hvLCBOaXNpLWt1LAorCQkJCVlva29oYW1hLCAyMjAtMDA0MQorCQkJCUpBUEFOCisKKzAwLTA3LUNBICAgKGhleCkJCUNyZWF0aXggUG9seW1lZGlhIEdlcyBGdXIgS29tbXVuaWthaXRvbnNzeXN0ZW1lCiswMDA3Q0EgICAgIChiYXNlIDE2KQkJQ3JlYXRpeCBQb2x5bWVkaWEgR2VzIEZ1ciBLb21tdW5pa2FpdG9uc3N5c3RlbWUKKwkJCQlIZWlucmljaC1CYXJ0aC1TdHIuIDMKKwkJCQk2NjExNSBTYWFyYnJ1ZWNrZW4KKwkJCQlHRVJNQU5ZCisKKzAwLTA3LUNCICAgKGhleCkJCUZyZWVib3ggU0EKKzAwMDdDQiAgICAgKGJhc2UgMTYpCQlGcmVlYm94IFNBCisJCQkJOCBydWUgZGUgbGEgVmlsbGUgbCdFdmVxdWUKKwkJCQlQYXJpcyAgNzUwMDgKKwkJCQlGUkFOQ0UKKworMDAtMDctQ0MgICAoaGV4KQkJS2FiYSBCZW56aW5nIEdtYkgKKzAwMDdDQyAgICAgKGJhc2UgMTYpCQlLYWJhIEJlbnppbmcgR21iSAorCQkJCUFsYmVydGlzdHJhYmUgMworCQkJCTc4MDU2IFZpbGxpZ2VuLVNjaHdlbm5pbmdlbgorCQkJCUdFUk1BTlkKKworMDAtMDctQ0QgICAoaGV4KQkJTk1URUwgQ28uLCBMdGQuCiswMDA3Q0QgICAgIChiYXNlIDE2KQkJTk1URUwgQ28uLCBMdGQuCisJCQkJU3VpdGUgMTMwMyAxLkIuQy4gOTE3LTYKKwkJCQlNb2stMSBkb25nIFRhbmdjaGVvbi1rdQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctQ0UgICAoaGV4KQkJQ2FibGV0aW1lIExpbWl0ZWQKKzAwMDdDRSAgICAgKGJhc2UgMTYpCQlDYWJsZXRpbWUgTGltaXRlZAorCQkJCTY0IEdyZWVuaGFtIFJvYWQKKwkJCQlOZXdidXJ5LCBCZXJrc2hpcmUsCisJCQkJUkcxNCA3SFgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy1DRiAgIChoZXgpCQlBbm90byBBQgorMDAwN0NGICAgICAoYmFzZSAxNikJCUFub3RvIEFCCisJCQkJU29sdmVnYXRhbiA0MQorCQkJCVNFLTIyMyA3MCBMdW5kCisJCQkJU1dFREVOCisKKzAwLTA3LUQwICAgKGhleCkJCUF1dG9tYXQgRW5nZW5oYXJpYSBkZSBBdXRvbWFvYSBMdGRhLgorMDAwN0QwICAgICAoYmFzZSAxNikJCUF1dG9tYXQgRW5nZW5oYXJpYSBkZSBBdXRvbWFvYSBMdGRhLgorCQkJCVJ1YSBTYW50byBBbnRvbmlvLCA5MTcgLSBSZWJvdWNhcworCQkJCUN1cml0aWJhIC0gUFIKKwkJCQk4MDIzMC0xMjAKKwkJCQlCUkFaSUwKKworMDAtMDctRDEgICAoaGV4KQkJU3BlY3RydW0gU2lnbmFsIFByb2Nlc3NpbmcgSW5jLgorMDAwN0QxICAgICAoYmFzZSAxNikJCVNwZWN0cnVtIFNpZ25hbCBQcm9jZXNzaW5nIEluYy4KKwkJCQkjMjAwLTI3MDAgUHJvZHVjdGlvbiBXYXkKKwkJCQlCdXJuYWJ5LCBCQyBWNUEgNFgxCisJCQkJQ0FOQURBCisKKzAwLTA3LUQyICAgKGhleCkJCUxvZ29wYWsgU3lzdGVtZQorMDAwN0QyICAgICAoYmFzZSAxNikJCUxvZ29wYWsgU3lzdGVtZQorCQkJCURvcmZzdHJhc3NlIDQwCisJCQkJRC0yNDYyOCBIYXJ0ZW5ob2xtCisJCQkJR0VSTUFOWQorCiswMC0wNy1EMyAgIChoZXgpCQlTdG9yayBQcmludHMgQi5WLiAKKzAwMDdEMyAgICAgKGJhc2UgMTYpCQlTdG9yayBQcmludHMgQi5WLiAKKwkJCQlSYWFtc3RyYWF0IDEtMywgNTgzMSBBVCBCb3htZWVyIAorCQkJCVAuIE8uIEJveCA2NywgNTgzMCBBQiAKKwkJCQlCb3htZWVyICAKKwkJCQlORVRIRVJMQU5EUworCiswMC0wNy1ENCAgIChoZXgpCQlaaGVqaWFuZyBZdXRvbmcgTmV0d29yayBDb21tdW5pY2F0aW9uIENvIEx0ZC4KKzAwMDdENCAgICAgKGJhc2UgMTYpCQlaaGVqaWFuZyBZdXRvbmcgTmV0d29yayBDb21tdW5pY2F0aW9uIENvIEx0ZC4KKwkJCQk4MDUgSHVhWGluZyBUZWNobmljYWwgQnVpbGRpbmcKKwkJCQk0NzcjIFdlblNhbiBSb2FkLCBIYW5nWmhvdQorCQkJCVpoZWppYW5nICAKKwkJCQlDSElOQQorCiswMC0wNy1ENSAgIChoZXgpCQkzZSBUZWNobm9sb2dpZXMgSW50Oy4sIEluYy4KKzAwMDdENSAgICAgKGJhc2UgMTYpCQkzZSBUZWNobm9sb2dpZXMgSW50Oy4sIEluYy4KKwkJCQkxNTgwMCBDcmFiYnMgQnJhbmNoIFdheQorCQkJCVN1aXRlIDI5MAorCQkJCVJvY2t2aWxsZSBNRCAyMDg1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRDYgICAoaGV4KQkJQ29tbWlsIEx0ZC4KKzAwMDdENiAgICAgKGJhc2UgMTYpCQlDb21taWwgTHRkLgorCQkJCVAuTy4gQm94IDEwMDUwCisJCQkJUGV0YWggVGlrdmEgNDkwMDEKKwkJCQlJU1JBRUwKKworMDAtMDctRDcgICAoaGV4KQkJQ2Fwb3JpcyBOZXR3b3JrcyBBRworMDAwN0Q3ICAgICAoYmFzZSAxNikJCUNhcG9yaXMgTmV0d29ya3MgQUcKKwkJCQlTdWVnZ2Vsc3RyLiAzMQorCQkJCUQtNDQ1MzIgTHVlbmVuCisJCQkJR0VSTUFOWQorCiswMC0wNy1EOCAgIChoZXgpCQlIaXRyb24gU3lzdGVtcyBJbmMuCiswMDA3RDggICAgIChiYXNlIDE2KQkJSGl0cm9uIFN5c3RlbXMgSW5jLgorCQkJCTEzNS0yMjAgSGl0cm9uIEIvRCA3MjYtNQorCQkJCVN1c28tRG9uZywgS2FuZ25hbSBHdQorCQkJCVNlb3VsICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDctRDkgICAoaGV4KQkJU3BsaWNlY29tCiswMDA3RDkgICAgIChiYXNlIDE2KQkJU3BsaWNlY29tCisJCQkJTGl0dGxlIEdpbGxpb25zLCBUaGUgR3JlZW4KKwkJCQlDcm94bGV5IEdyZWVuLCBSaWNrbWFuc3dvcnRoCisJCQkJSGVydHMgIFdEMyAzSFkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wNy1EQSAgIChoZXgpCQlOZXVybyBUZWxlY29tIENvLiwgTHRkLgorMDAwN0RBICAgICAoYmFzZSAxNikJCU5ldXJvIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJMkYgTWlzdW5nIEIvRCwgOTM4LTcKKwkJCQlIb2dlLWRvbmcsIERvbmdhbi1ndQorCQkJCUt5dW5nZ2ktZG8gIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy1EQiAgIChoZXgpCQlLaXJhbmEgTmV0d29ya3MsIEluYy4KKzAwMDdEQiAgICAgKGJhc2UgMTYpCQlLaXJhbmEgTmV0d29ya3MsIEluYy4KKwkJCQkzMzEgTmV3bWFuIFNwcmluZ3MgUm9hZAorCQkJCUJsZGcuIDEgNHRoIEZsb29yCisJCQkJUmVkIEJhbmsgTkogMDc3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LURDICAgKGhleCkJCUF0ZWsgQ28sIEx0ZC4KKzAwMDdEQyAgICAgKGJhc2UgMTYpCQlBdGVrIENvLCBMdGQuCisJCQkJQiBkb25nICMyMDUgaGFueWFuZyB2ZW50dXJlIHBhcmsKKwkJCQk2ODUtMjAgc29uZ3N1MWdhZG9uZyBzb25nIGRvbmdndSwKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA3LUREICAgKGhleCkJCUNyYWRsZSBUZWNobm9sb2dpZXMKKzAwMDdERCAgICAgKGJhc2UgMTYpCQlDcmFkbGUgVGVjaG5vbG9naWVzCisJCQkJMzEzMCBXZXN0IFdhcnJlbiBBdmUuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctREUgICAoaGV4KQkJZUNvcGlsdCBBQgorMDAwN0RFICAgICAoYmFzZSAxNikJCWVDb3BpbHQgQUIKKwkJCQlWZWRkZXN0YXZhZ2VuIDI0CisJCQkJU0UtMTc1IDYyIEphcmZhbGxhCisJCQkJU1dFREVOCisKKzAwLTA3LURGICAgKGhleCkJCVZicmljayBTeXN0ZW1zIEluYy4KKzAwMDdERiAgICAgKGJhc2UgMTYpCQlWYnJpY2sgU3lzdGVtcyBJbmMuCisJCQkJMTIgQmVhdW1vbnQgUm9hZAorCQkJCVdhbGxpbmdmb3JkIENUIDA2NDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1FMCAgIChoZXgpCQlQYWxtIEluYy4KKzAwMDdFMCAgICAgKGJhc2UgMTYpCQlQYWxtIEluYy4KKwkJCQk5NTAgV2VzdCBNYXVkZSBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUtMjgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRTEgICAoaGV4KQkJV0lTIENvbW11bmljYXRpb25zIENvLiBMdGQuCiswMDA3RTEgICAgIChiYXNlIDE2KQkJV0lTIENvbW11bmljYXRpb25zIENvLiBMdGQuCisJCQkJNC9GIEJ1aWxkaW5nIDUzMworCQkJCUJ1Z3VhIFNpeHRoIFJvYWQKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgUHJvdmlkZW5jZSAgCisJCQkJQ0hJTkEKKworMDAtMDctRTIgICAoaGV4KQkJQml0d29ya3MsIEluYy4KKzAwMDdFMiAgICAgKGJhc2UgMTYpCQlCaXR3b3JrcywgSW5jLgorCQkJCSMxIEJpdHdvcmtzIFdheQorCQkJCVByYWlyaWUgR3JvdmUgQVIgNzI3NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUUzICAgKGhleCkJCU5hdmNvbSBUZWNobm9sb2d5LCBJbmMuCiswMDA3RTMgICAgIChiYXNlIDE2KQkJTmF2Y29tIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxMjMgV2VzdCBUb3JyYW5jZSBCbHZkLiwKKwkJCQlTdWl0ZSAxMDEKKwkJCQlSZWRvbmRvIEJlYWNoIENBIDkwMjc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1FNCAgIChoZXgpCQlTb2Z0UmFkaW8gQ28uLCBMdGQuCiswMDA3RTQgICAgIChiYXNlIDE2KQkJU29mdFJhZGlvIENvLiwgTHRkLgorCQkJCTJGLCBEb25nLUJvayBCL0QgNjQ1LTE4CisJCQkJWWVva3NhbS1Eb25nLCBLYW5nbmFtLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wNy1FNSAgIChoZXgpCQlDb3VwIENvcnBvcmF0aW9uCiswMDA3RTUgICAgIChiYXNlIDE2KQkJQ291cCBDb3Jwb3JhdGlvbgorCQkJCTEtMjQtNCBNYXJ1c2VuIDJuZCBCbGQuIDRGLAorCQkJCUhpZ2FzaGktVWVubywgVGFpdG8ta3UKKwkJCQlUb2t5byAgCisJCQkJSkFQQU4KKworMDAtMDctRTYgICAoaGV4KQkJZWRnZWZsb3cgQ2FuYWRhIEluYy4KKzAwMDdFNiAgICAgKGJhc2UgMTYpCQllZGdlZmxvdyBDYW5hZGEgSW5jLgorCQkJCTMyOSBNYXJjaCBSb2FkCisJCQkJS2FuYXRhLCBPbnRhcmlvCisJCQkJSzJLIDJFMQorCQkJCUNBTkFEQQorCiswMC0wNy1FNyAgIChoZXgpCQlGcmVlV2F2ZSBUZWNobm9sb2dpZXMKKzAwMDdFNyAgICAgKGJhc2UgMTYpCQlGcmVlV2F2ZSBUZWNobm9sb2dpZXMKKwkJCQkxODgwIFMuIEZsYWl0cm9uIEN0LgorCQkJCVN0ZS4gRgorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUU4ICAgKGhleCkJCUVkZ2VXYXZlCiswMDA3RTggICAgIChiYXNlIDE2KQkJRWRnZVdhdmUKKwkJCQkxNTMzMyBBdmVudWUgb2YgU2NpZW5jZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRTkgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzAwMDdFOSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCU1TOiAgSkYzLTQyMAorCQkJCTIxMTEgTkUgMjV0aCBBdmUuCisJCQkJSGlsbHNib3JvIE9SIDk3MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1FQSAgIChoZXgpCQlNYXNzYW5hLCBJbmMuCiswMDA3RUEgICAgIChiYXNlIDE2KQkJTWFzc2FuYSwgSW5jLgorCQkJCTI5MDEgVGFzbWFuIERyaXZlCisJCQkJU3VpdGUgMTA2CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUVCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMgSW5jLgorMDAwN0VCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRUMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcyBJbmMuCiswMDA3RUMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcyBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1FRCAgIChoZXgpCQlBbHRlcmEgQ29ycG9yYXRpb24KKzAwMDdFRCAgICAgKGJhc2UgMTYpCQlBbHRlcmEgQ29ycG9yYXRpb24KKwkJCQkxMDEgSW5ub3ZhdGlvbiBEcml2ZQorCQkJCU1TIDIzMDUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRUUgICAoaGV4KQkJdGVsY28gSW5mb3JtYXRpb25zc3lzdGVtZSBHbWJICiswMDA3RUUgICAgIChiYXNlIDE2KQkJdGVsY28gSW5mb3JtYXRpb25zc3lzdGVtZSBHbWJICisJCQkJU2NodWxzdHJhc3NlIDM4CisJCQkJRCAwOTEyIENoZW1uaXR6CisJCQkJR0VSTUFOWQorCiswMC0wNy1FRiAgIChoZXgpCQlMb2NraGVlZCBNYXJ0aW4gVGFjdGljYWwgU3lzdGVtcworMDAwN0VGICAgICAoYmFzZSAxNikJCUxvY2toZWVkIE1hcnRpbiBUYWN0aWNhbCBTeXN0ZW1zCisJCQkJMzMzMyBQaWxvdCBLbm9iIFJvYWQKKwkJCQlFYWdhbiBNTiA1NTEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRjAgICAoaGV4KQkJTG9naVN5bmMgTExDCiswMDA3RjAgICAgIChiYXNlIDE2KQkJTG9naVN5bmMgTExDCisJCQkJMTMxMyBMZWFyIEluZHVzdHJpYWwgUGFya3dheQorCQkJCUF2b24gT0ggNDQwMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUYxICAgKGhleCkJCVRlcmFCdXJzdCBOZXR3b3JrcyBJbmMuCiswMDA3RjEgICAgIChiYXNlIDE2KQkJVGVyYUJ1cnN0IE5ldHdvcmtzIEluYy4KKwkJCQk5ODUgU3Rld2FydCBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRjIgICAoaGV4KQkJSU9BIENvcnBvcmF0aW9uCiswMDA3RjIgICAgIChiYXNlIDE2KQkJSU9BIENvcnBvcmF0aW9uCisJCQkJMzUwIFBvdHJlcm8gQXZlLgorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRjMgICAoaGV4KQkJVGhpbmtlbmdpbmUgTmV0d29ya3MKKzAwMDdGMyAgICAgKGJhc2UgMTYpCQlUaGlua2VuZ2luZSBOZXR3b3JrcworCQkJCTEwMCBOaWNrZXJzb24gUm9hZAorCQkJCU1hcmxib3JvdWdoIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1GNCAgIChoZXgpCQlFbGV0ZXggQ28uLCBMdGQuCiswMDA3RjQgICAgIChiYXNlIDE2KQkJRWxldGV4IENvLiwgTHRkLgorCQkJCTgtMi01NiBOYW5rb3UtSGlnYXNoaSBTdW1pbm9lLWt1CisJCQkJT3Nha2EgNTU5LTAwMzEKKwkJCQlKQVBBTgorCiswMC0wNy1GNSAgIChoZXgpCQlCcmlkZ2VjbyBDbyBBRworMDAwN0Y1ICAgICAoYmFzZSAxNikJCUJyaWRnZWNvIENvIEFHCisJCQkJUmluZ3N0ci4gMTQKKwkJCQlDSCA4NjAwIER1ZWJlbmRvcmYKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wNy1GNiAgIChoZXgpCQlRcWVzdCBTb2Z0d2FyZSBTeXN0ZW1zCiswMDA3RjYgICAgIChiYXNlIDE2KQkJUXFlc3QgU29mdHdhcmUgU3lzdGVtcworCQkJCTg2MCBFYXN0IDQ1MDAgU291dGggIzIwMAorCQkJCU11cnJheSBVVCA4NDEwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDctRjcgICAoaGV4KQkJR2FsdHJvbmljcworMDAwN0Y3ICAgICAoYmFzZSAxNikJCUdhbHRyb25pY3MKKwkJCQk0NjQ1IEVhc3QgQ290dG9uIENlbnRlciBCbHZkLgorCQkJCUJsZGcuIFR3bworCQkJCVBob2VuaXggQVogODUwNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUY4ICAgKGhleCkJCUlURGV2aWNlcywgSW5jLgorMDAwN0Y4ICAgICAoYmFzZSAxNikJCUlURGV2aWNlcywgSW5jLgorCQkJCTYwNiAxMTB0aCBBdmUuIE5FCisJCQkJQmVsbGV2dWUgV0EgOTgwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUY5ICAgKGhleCkJCVBob25ldGljcywgSW5jLgorMDAwN0Y5ICAgICAoYmFzZSAxNikJCVBob25ldGljcywgSW5jLgorCQkJCTkwMSBUcnllbnMgUm9hZAorCQkJCUFzdG9uIFBBIDE5MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wNy1GQSAgIChoZXgpCQlJVFQgQ28uLCBMdGQuCiswMDA3RkEgICAgIChiYXNlIDE2KQkJSVRUIENvLiwgTHRkLgorCQkJCTEtMTQtNywgTXVrb2hqeXVrdSwKKwkJCQlIYW1hbWF0c3UsIFNoaXp1b2thIDQzMAorCQkJCUpBUEFOCisKKzAwLTA3LUZCICAgKGhleCkJCUdpZ2EgU3RyZWFtIFVNVFMgVGVjaG5vbG9naWVzIEdtYkgKKzAwMDdGQiAgICAgKGJhc2UgMTYpCQlHaWdhIFN0cmVhbSBVTVRTIFRlY2hub2xvZ2llcyBHbWJICisJCQkJS29ucmFkLVp1c2UtU3RyYWJlIDcKKwkJCQlELTY2MTE1IFNhYXJicnVja2VuCisJCQkJR0VSTUFOWQorCiswMC0wNy1GQyAgIChoZXgpCQlBZGVwdCBTeXN0ZW1zIEluYy4KKzAwMDdGQyAgICAgKGJhc2UgMTYpCQlBZGVwdCBTeXN0ZW1zIEluYy4KKwkJCQkyNDIgRWFzdCA2MDAgTm9ydGgKKwkJCQlMaW5kb24gVVQgODQwNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA3LUZEICAgKGhleCkJCUxBTmVyZ3kgTHRkLgorMDAwN0ZEICAgICAoYmFzZSAxNikJCUxBTmVyZ3kgTHRkLgorCQkJCUltcGVyaWFsIEhvdXNlLCBJbXBlcmlhbCBXYXkKKwkJCQlOZXdwb3J0LCBHd2VudCBOUDEwIDhVSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA3LUZFICAgKGhleCkJCVJpZ2FrdSBDb3Jwb3JhdGlvbgorMDAwN0ZFICAgICAoYmFzZSAxNikJCVJpZ2FrdSBDb3Jwb3JhdGlvbgorCQkJCTMtOS0xMiwgTWF0c3ViYXJhLWNobworCQkJCUFraXNoaW1hLXNoaQorCQkJCVRva3lvICAxOTYtODY2NgorCQkJCUpBUEFOCisKKzAwLTA3LUZGICAgKGhleCkJCUdsdW9uIE5ldHdvcmtzCiswMDA3RkYgICAgIChiYXNlIDE2KQkJR2x1b24gTmV0d29ya3MKKwkJCQk1NDAxIE9sZCBSZWR3b29kIEh3eS4KKwkJCQlQZXRhbHVtYSBDQSA5NDk1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMDAgICAoaGV4KQkJTVVMVElURUNIIFNZU1RFTVMsIElOQy4KKzAwMDgwMCAgICAgKGJhc2UgMTYpCQlNVUxUSVRFQ0ggU1lTVEVNUywgSU5DLgorCQkJCTIyMDUgV09PREFMRSBEUklWRQorCQkJCU1PVU5EUyBWSUVXIE1OIDU1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0wMSAgIChoZXgpCQlIaWdoU3BlZWQgU3VyZmluZyBJbmMuCiswMDA4MDEgICAgIChiYXNlIDE2KQkJSGlnaFNwZWVkIFN1cmZpbmcgSW5jLgorCQkJCTQ0NzkwIFMuIEdyaW1tZXIgQmx2ZC4KKwkJCQlTdWl0ZSAxMDAKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0wMiAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAwODAyICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTAzICAgKGhleCkJCUNvcyBUcm9uCiswMDA4MDMgICAgIChiYXNlIDE2KQkJQ29zIFRyb24KKwkJCQkzRiBCb29saW0gQi9ELCAxNDMxLTIyLAorCQkJCUt3YW55YW5nLURvbmcsIERvbmdvbi1HdSwKKwkJCQlBbnlhbmcgIDQzMS0wNjEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtMDQgICAoaGV4KQkJSUNBIEluYy4KKzAwMDgwNCAgICAgKGJhc2UgMTYpCQlJQ0EgSW5jLgorCQkJCTU0Mi0xIE5vZ3VraQorCQkJCUt1a2ktc2hpLCBTYWl0YW1uCisJCQkJSkFQQU4KKworMDAtMDgtMDUgICAoaGV4KQkJVGVjaG5vLUhvbG9uIENvcnBvcmF0aW9uCiswMDA4MDUgICAgIChiYXNlIDE2KQkJVGVjaG5vLUhvbG9uIENvcnBvcmF0aW9uCisJCQkJMy0xOS0yLCBUYWthbWF0c3UtY2hvCisJCQkJVGFjaGlrYXdhLXNoaQorCQkJCVRva3lvICAxOTAtMDAxMQorCQkJCUpBUEFOCisKKzAwLTA4LTA2ICAgKGhleCkJCVJhb25ldCBTeXN0ZW1zLCBJbmMuCiswMDA4MDYgICAgIChiYXNlIDE2KQkJUmFvbmV0IFN5c3RlbXMsIEluYy4KKwkJCQlXZXN0IFdpbmcgMTRGLCBJVCBWZW50dXJlIFRvd2VyIDc4CisJCQkJR2FyYWtib24tZG9uZywgU29uZ3BhLAorCQkJCVNlb3VsICAxMzgtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTA3ICAgKGhleCkJCUFjY2VzcyBEZXZpY2VzIExpbWl0ZWQKKzAwMDgwNyAgICAgKGJhc2UgMTYpCQlBY2Nlc3MgRGV2aWNlcyBMaW1pdGVkCisJCQkJU2l4dGggRmxvb3IsIDU4IE94YnJpZGdlIFJvYWQKKwkJCQlFYWxpbmcsIExvbmRvbiBXNSAyU1QKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wOC0wOCAgIChoZXgpCQlQUFQgVmlzaW9uLCBJbmMuCiswMDA4MDggICAgIChiYXNlIDE2KQkJUFBUIFZpc2lvbiwgSW5jLgorCQkJCTEyOTg4IFZhbGxleSBWaWV3IFJkLgorCQkJCUVkZW4gUHJhaXJpZSBNTiA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMDkgICAoaGV4KQkJU3lzdGVtb25pYyBBRworMDAwODA5ICAgICAoYmFzZSAxNikJCVN5c3RlbW9uaWMgQUcKKwkJCQlBbSBXYWxkc2NobG9lc3NjaGVuIDEKKwkJCQlELTAxMDk5IERyZXNkZW4KKwkJCQlHRVJNQU5ZCisKKzAwLTA4LTBBICAgKGhleCkJCUVzcGVyYS1XZXJrZSBHbWJICiswMDA4MEEgICAgIChiYXNlIDE2KQkJRXNwZXJhLVdlcmtlIEdtYkgKKwkJCQlNb2x0a2VzdHJhc3NlIDE3LSAzMworCQkJCTQ3MDU4IER1aXNidXJnCisJCQkJR0VSTUFOWQorCiswMC0wOC0wQiAgIChoZXgpCQlCaXJrYSBCUEEgSW5mb3JtYXRpb25zc3lzdGVtIEFCCiswMDA4MEIgICAgIChiYXNlIDE2KQkJQmlya2EgQlBBIEluZm9ybWF0aW9uc3N5c3RlbSBBQgorCQkJCUJveCAyMDEwMAorCQkJCTE2MSAwMiBCcm9tbWEKKwkJCQlTV0VERU4KKworMDAtMDgtMEMgICAoaGV4KQkJVkRBIEVsZXR0cm9uaWNhIHNwYQorMDAwODBDICAgICAoYmFzZSAxNikJCVZEQSBFbGV0dHJvbmljYSBzcGEKKwkJCQlWaWFsZSBMaW5vIFphbnVzc2ksIDMKKwkJCQkzMzE3MCBQb3JkZW5vbmUgCisJCQkJSVRBTFkKKworMDAtMDgtMEQgICAoaGV4KQkJVG9zaGliYQorMDAwODBEICAgICAoYmFzZSAxNikJCVRvc2hpYmEKKwkJCQkyLTksIFN1ZWhpcm8tY2hvLAorCQkJCU9tZS1jaXR5LAorCQkJCVRva3lvICAxOTgtODcxMAorCQkJCUpBUEFOCisKKzAwLTA4LTBFICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAwODBFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHIuCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0wRiAgIChoZXgpCQlQcm94aW1pb24gRmliZXIgT3B0aWNzIEFCCiswMDA4MEYgICAgIChiYXNlIDE2KQkJUHJveGltaW9uIEZpYmVyIE9wdGljcyBBQgorCQkJCUlzYWZqb3Jkc2dhdGFuIDkKKwkJCQlTRS0xNjQ0MCBLaXN0YQorCQkJCVNXRURFTgorCiswMC0wOC0xMCAgIChoZXgpCQlLZXkgVGVjaG5vbG9neSwgSW5jLgorMDAwODEwICAgICAoYmFzZSAxNikJCUtleSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTUwIEF2ZXJ5IFN0LgorCQkJCVdhbGxhIFdhbGxhIFdBIDk5MzYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0xMSAgIChoZXgpCQlWT0lYIENvcnBvcmF0aW9uCiswMDA4MTEgICAgIChiYXNlIDE2KQkJVk9JWCBDb3Jwb3JhdGlvbgorCQkJCTE5OTEtMyA0dGggRmxvb3IgVG9wJ3MgVmVudHVyZSBUb3dlcgorCQkJCVNlbyBDaG8tRG9uZywgU2VvIGNoby1ndQorCQkJCVNlb3VsICAxMzgtMDkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTEyICAgKGhleCkJCUdNLTIgQ29ycG9yYXRpb24KKzAwMDgxMiAgICAgKGJhc2UgMTYpCQlHTS0yIENvcnBvcmF0aW9uCisJCQkJU2hpYmEtTWF0dXNoaXJhLUJsZGcuCisJCQkJNkYgMy0zLTEyLFNoaWJhCisJCQkJVG9reW8gTWluYXRvLWt1IDEwNS0wMDE0CisJCQkJSkFQQU4KKworMDAtMDgtMTMgICAoaGV4KQkJRGlza2JhbmssIEluYy4KKzAwMDgxMyAgICAgKGJhc2UgMTYpCQlEaXNrYmFuaywgSW5jLgorCQkJCTNGIEZvY3VzIEJ1aWxkaW5nLCA3MjUtMjUKKwkJCQlZZW9rc2FtLWRvbmcsIEthbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC0xNCAgIChoZXgpCQlUSUwgVGVjaG5vbG9naWVzCiswMDA4MTQgICAgIChiYXNlIDE2KQkJVElMIFRlY2hub2xvZ2llcworCQkJCUV1cm9wYXJrIERlUGljaGF1cnksIEJBVCA5CisJCQkJMTM4NTYgQUlYIGVuIFByb3ZpZGVuY2UKKwkJCQlGUkFOQ0UKKworMDAtMDgtMTUgICAoaGV4KQkJQ0FUUyBDby4sIEx0ZC4KKzAwMDgxNSAgICAgKGJhc2UgMTYpCQlDQVRTIENvLiwgTHRkLgorCQkJCTc1MS0yIEthY2hpZGEtY2hvLAorCQkJCVRzdXp1a2kta3UsIFlva29oYW1hCisJCQkJMjI0LTAwMzQKKwkJCQlKQVBBTgorCiswMC0wOC0xNiAgIChoZXgpCQlCbHVldGFncyBBL1MKKzAwMDgxNiAgICAgKGJhc2UgMTYpCQlCbHVldGFncyBBL1MKKwkJCQlOeXRvcnYgMTEsIDQgRmxvb3IKKwkJCQk5MDAwIEFhbGJvcmcKKwkJCQlERU5NQVJLCisKKzAwLTA4LTE3ICAgKGhleCkJCUVtZXJnZUNvcmUgTmV0d29ya3MgTExDCiswMDA4MTcgICAgIChiYXNlIDE2KQkJRW1lcmdlQ29yZSBOZXR3b3JrcyBMTEMKKwkJCQkxMDU0MiBTLiBKb3JkYW4gR2F0ZXdheQorCQkJCVN1aXRlIDE1MAorCQkJCVNvdXRoIEpvcmRhbiBVVCA4NDA5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMTggICAoaGV4KQkJUGl4ZWx3b3JrcywgSW5jLgorMDAwODE4ICAgICAoYmFzZSAxNikJCVBpeGVsd29ya3MsIEluYy4KKwkJCQk3NzAwIFNXIE1vaGF3ayBTdHJlZXQKKwkJCQlUdWFsYXRpbiBPUiA5NzA2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMTkgICAoaGV4KQkJQmFua3N5cworMDAwODE5ICAgICAoYmFzZSAxNikJCUJhbmtzeXMKKwkJCQlIYWFjaHRzZXN0ZWVud2VnIDE0NDIKKwkJCQkxMTMwIEJydXNzZWwKKwkJCQlCRUxHSVVNCisKKzAwLTA4LTFBICAgKGhleCkJCVNhbnJhZCBJbnRlbGxpZ2VuY2UgU3RvcmFnZSBDb21tdW5pY2F0aW9ucyAoMjAwMCkgTHRkLgorMDAwODFBICAgICAoYmFzZSAxNikJCVNhbnJhZCBJbnRlbGxpZ2VuY2UgU3RvcmFnZSBDb21tdW5pY2F0aW9ucyAoMjAwMCkgTHRkLgorCQkJCTMyIEhhYmFyemVsIFN0LiwgRW50cmFjZSBCCisJCQkJVGVsLUF2aXYgNjk3MTAKKwkJCQlJU1JBRUwKKworMDAtMDgtMUIgICAoaGV4KQkJV2luZGlnbyBTeXN0ZW1zCiswMDA4MUIgICAgIChiYXNlIDE2KQkJV2luZGlnbyBTeXN0ZW1zCisJCQkJMjIxMCBPJ1Rvb2xlIEF2ZS4gIzIwMAorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0xQyAgIChoZXgpCQlAcG9zLmNvbQorMDAwODFDICAgICAoYmFzZSAxNikJCUBwb3MuY29tCisJCQkJMzA1MSBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMUQgICAoaGV4KQkJSXBzaWwsIEluY29ycG9yYXRlZAorMDAwODFEICAgICAoYmFzZSAxNikJCUlwc2lsLCBJbmNvcnBvcmF0ZWQKKwkJCQk3OTQ1IE1hY0FydGh1ciBCbHZkLgorCQkJCVN1aXRlIDIxMgorCQkJCUNhYmluIEpvaG4gTUQgMjA4MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTFFICAgKGhleCkJCVJlcGVhdGl0IEFCCiswMDA4MUUgICAgIChiYXNlIDE2KQkJUmVwZWF0aXQgQUIKKwkJCQlGYXJvZ2F0YW4gNworCQkJCVNFMTY0NDAgS2lzdGEKKwkJCQlTV0VERU4KKworMDAtMDgtMUYgICAoaGV4KQkJUG91IFl1ZW4gVGVjaCBDb3JwLiBMdGQuCiswMDA4MUYgICAgIChiYXNlIDE2KQkJUG91IFl1ZW4gVGVjaCBDb3JwLiBMdGQuCisJCQkJMTZGLCBOby4gMTA3LCBTZWN0LiAzLCBUYWljaHVuZyBLZW5nIFJkLgorCQkJCVRhaWNodW5nIENpdHkgNDA3LAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtMjAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcyBJbmMuCiswMDA4MjAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcyBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0yMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKzAwMDgyMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTIyICAgKGhleCkJCUluUHJvIENvbW0KKzAwMDgyMiAgICAgKGJhc2UgMTYpCQlJblBybyBDb21tCisJCQkJMTFGLCBOby4gOTMgU2h1ZWktWXVhbiBTdHJlZXQKKwkJCQlIc2luY2h1LCAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA4LTIzICAgKGhleCkJCVRleGEgQ29ycC4KKzAwMDgyMyAgICAgKGJhc2UgMTYpCQlUZXhhIENvcnAuCisJCQkJTmFyYSBCbGRnLiAzRiwgMi0yLTggU2hpbi1Zb2tvaGFtYSwKKwkJCQlLb2hva3Uta3UsIFlva29oYW1hCisJCQkJMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0wOC0yNCAgIChoZXgpCQlDb3BpdHJhayBJbmMKKzAwMDgyNCAgICAgKGJhc2UgMTYpCQlDb3BpdHJhayBJbmMKKwkJCQk4MzkwIE1heXJhbmQgU3RyZWV0CisJCQkJTW9udHJlYWwgIFF1ZWJlYyBINFAgMkM5CisJCQkJQ0FOQURBCisKKzAwLTA4LTI1ICAgKGhleCkJCUFjbWUgUGFja2V0CiswMDA4MjUgICAgIChiYXNlIDE2KQkJQWNtZSBQYWNrZXQKKwkJCQk3MSBUaGlyZCBBdmVudWUKKwkJCQlCdXJsbGluZ3RvbgorCQkJCVdvYnVybiBNQSAwMTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtMjYgICAoaGV4KQkJQ29sb3JhZG8gTWVkIFRlY2gKKzAwMDgyNiAgICAgKGJhc2UgMTYpCQlDb2xvcmFkbyBNZWQgVGVjaAorCQkJCTYxNzUgTG9uZ2JvdyBEci4KKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0yNyAgIChoZXgpCQlBREIgQnJvYWRiYW5kIEl0YWxpYQorMDAwODI3ICAgICAoYmFzZSAxNikJCUFEQiBCcm9hZGJhbmQgSXRhbGlhCisJCQkJVmlhbGUgU2FyY2EgMjIyCisJCQkJTWlsYW5vIDIwMTI2CisJCQkJSVRBTFkKKworMDAtMDgtMjggICAoaGV4KQkJS29laSBFbmdpbmVlcmluZyBMdGQuCiswMDA4MjggICAgIChiYXNlIDE2KQkJS29laSBFbmdpbmVlcmluZyBMdGQuCisJCQkJMy00MCwgNS1DaG9tZQorCQkJCUtpcmUtbmlzaGkgSGlyYW5vLWt1CisJCQkJT3Nha3UgIDU0Ny0wMDI2CisJCQkJSkFQQU4KKworMDAtMDgtMjkgICAoaGV4KQkJQXZhbCBOYWdhc2FraSBDb3Jwb3JhdGlvbgorMDAwODI5ICAgICAoYmFzZSAxNikJCUF2YWwgTmFnYXNha2kgQ29ycG9yYXRpb24KKwkJCQk2LTQyIFR1a3ViYSBJc2FoYXlhCisJCQkJTmFnYXNha2kKKwkJCQk4NTQtMDA2NQorCQkJCUpBUEFOCisKKzAwLTA4LTJBICAgKGhleCkJCVBvd2Vyd2FsbHogTmV0d29yayBTZWN1cml0eQorMDAwODJBICAgICAoYmFzZSAxNikJCVBvd2Vyd2FsbHogTmV0d29yayBTZWN1cml0eQorCQkJCTEyMC0xMzE2MCBWYW5pZXIgUGxhY2UsCisJCQkJUmljaG1vbmQsIEJDLAorCQkJCVY2ViAySjIKKwkJCQlDQU5BREEKKworMDAtMDgtMkIgICAoaGV4KQkJV29va3N1bmcgRWxlY3Ryb25pY3MsIEluYy4KKzAwMDgyQiAgICAgKGJhc2UgMTYpCQlXb29rc3VuZyBFbGVjdHJvbmljcywgSW5jLgorCQkJCUphaG8tQmxkZy4gNkYsIFRhbmJhbmctRG9uZywKKwkJCQlTZW8tR3UsIFRhZWpvbiwgMzAyLTIyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC0yQyAgIChoZXgpCQlIb21hZyBBRworMDAwODJDICAgICAoYmFzZSAxNikJCUhvbWFnIEFHCisJCQkJQWJ0LiBFc3QuLCBIb21hZyBTdHIuIDMtNQorCQkJCUQtNzIyOTYgU2Nob3BmbG9jaAorCQkJCUdFUk1BTlkKKworMDAtMDgtMkQgICAoaGV4KQkJSW5kdXMgVGVxc2l0ZSBQcml2YXRlIExpbWl0ZWQKKzAwMDgyRCAgICAgKGJhc2UgMTYpCQlJbmR1cyBUZXFzaXRlIFByaXZhdGUgTGltaXRlZAorCQkJCSM3LCBBcnlhIEdvd2RlciBSb2FkLAorCQkJCVdlc3QgTWFtYmFsYW0sIENoZW5uYWksCisJCQkJVGFtaWwgTmFkdSAgNjAwMDMzCisJCQkJSU5ESUEKKworMDAtMDgtMkUgICAoaGV4KQkJTXVsdGl0b25lIEVsZWN0cm9uaWNzIFBMQworMDAwODJFICAgICAoYmFzZSAxNikJCU11bHRpdG9uZSBFbGVjdHJvbmljcyBQTEMKKwkJCQlNdWx0aXRvbmUgSG91c2UsIEJlZ2dhcndvb2QgTGFuZQorCQkJCUJhc2luZ3N0b2tlIFJHMjMgN0xMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDgtMkYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwODJGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTMwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDgzMCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC0zMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA4MzEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNEUgICAoaGV4KQkJRGl2ZXJnZU5ldCwgSW5jLgorMDAwODRFICAgICAoYmFzZSAxNikJCURpdmVyZ2VOZXQsIEluYy4KKwkJCQkyMTQyIEJlcmluZyBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNEYgICAoaGV4KQkJUXVhbHN0YXIgQ29ycG9yYXRpb24KKzAwMDg0RiAgICAgKGJhc2UgMTYpCQlRdWFsc3RhciBDb3Jwb3JhdGlvbgorCQkJCTM5OTBCIEhlcml0YWdlIE9hayBDb3VydAorCQkJCVNpbWkgVmFsbGV5IENBIDkzMDYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC01MCAgIChoZXgpCQlBcml6b25hIEluc3RydW1lbnQgQ29ycC4KKzAwMDg1MCAgICAgKGJhc2UgMTYpCQlBcml6b25hIEluc3RydW1lbnQgQ29ycC4KKwkJCQkxOTEyIFcuIDR0aCBTdHJlZXQKKwkJCQlUZW1wZSBBWiA4NTI4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNTEgICAoaGV4KQkJQ2FuYWRpYW4gQmFuayBOb3RlIENvbXBhbnksIEx0ZC4KKzAwMDg1MSAgICAgKGJhc2UgMTYpCQlDYW5hZGlhbiBCYW5rIE5vdGUgQ29tcGFueSwgTHRkLgorCQkJCTE4IEF1cmlnYSBEci4KKwkJCQlOZXBlYW4sIE9udC4KKwkJCQlLMkUgN1Q5CisJCQkJQ0FOQURBCisKKzAwLTA4LTUyICAgKGhleCkJCURhdm9saW5rIENvLiBJbmMuCiswMDA4NTIgICAgIChiYXNlIDE2KQkJRGF2b2xpbmsgQ28uIEluYy4KKwkJCQlSb29tLTYwNCwgS3VtaHdhIFBsYXphLAorCQkJCTExNDItNSwgU2FuYm9uLURvbmcsIEt1bnBvLVNpCisJCQkJS3l1bmdnaS1EbyAgNDM1LTA0MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC01MyAgIChoZXgpCQlTY2hsZWljaGVyIEdtYkggJiBDby4gUmVsYWlzd2Vya2UgS0cKKzAwMDg1MyAgICAgKGJhc2UgMTYpCQlTY2hsZWljaGVyIEdtYkggJiBDby4gUmVsYWlzd2Vya2UgS0cKKwkJCQlQaWNoZWxzd2VyZGVyc3RyYXNzZSAzLTUKKwkJCQlELTEzNTk3IEJlcmxpbgorCQkJCUdFUk1BTlkKKworMDAtMDgtNTQgICAoaGV4KQkJTmV0cm9uaXgsIEluYy4KKzAwMDg1NCAgICAgKGJhc2UgMTYpCQlOZXRyb25peCwgSW5jLgorCQkJCTNGLTEsIE5vLiAzMSwgSHNpbi1UYWkgUm9hZCwKKwkJCQlDaHVwZWkgQ2l0eSwgSHNpbmNodSBIc2llbgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtNTUgICAoaGV4KQkJTkFTQS1Hb2RkYXJkIFNwYWNlIEZsaWdodCBDZW50ZXIKKzAwMDg1NSAgICAgKGJhc2UgMTYpCQlOQVNBLUdvZGRhcmQgU3BhY2UgRmxpZ2h0IENlbnRlcgorCQkJCUNvZGUgNTYxCisJCQkJR3JlZW5iZWx0IE1EIDIwNzcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC01NiAgIChoZXgpCQlHYW1hdHJvbmljIEVsZWN0cm9uaWMgSW5kdXN0cmllcyBMdGQuCiswMDA4NTYgICAgIChiYXNlIDE2KQkJR2FtYXRyb25pYyBFbGVjdHJvbmljIEluZHVzdHJpZXMgTHRkLgorCQkJCUhhcnR1bSBTdHJlZXQgMTQKKwkJCQlKZXJ1c2FsZW0gOTc3NzQKKwkJCQlJU1JBRUwKKworMDAtMDgtNTcgICAoaGV4KQkJUG9sYXJpcyBOZXR3b3JrcywgSW5jLgorMDAwODU3ICAgICAoYmFzZSAxNikJCVBvbGFyaXMgTmV0d29ya3MsIEluYy4KKwkJCQk2ODEwIFNhbnRhIFRlcmVzYSBCbHZkLgorCQkJCVNhbiBKb3NlIENBIDk1MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC01OCAgIChoZXgpCQlOb3ZhdGVjaG5vbG9neSBJbmMuCiswMDA4NTggICAgIChiYXNlIDE2KQkJTm92YXRlY2hub2xvZ3kgSW5jLgorCQkJCU5vdmEgQmxkZy4gNEYgNjQxIDAzCisJCQkJWXVrc2FtLURvbmcgS2FuZ25hbS1rdQorCQkJCVNlb3VsICAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTU5ICAgKGhleCkJCVNoZW5aaGVuIFVuaXRvbmUgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDA4NTkgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gVW5pdG9uZSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkyIFNvdXRoZXJuIEZsb29yIDcwMiBCdWlsZGluZworCQkJCUJhR3VhTGluZyBJbmR1c3RyaWFsIFpvbmUgU2hlbnpoZW4KKwkJCQlDSElOQQorCiswMC0wOC01QSAgIChoZXgpCQlJbnRpR2F0ZSBJbmMuCiswMDA4NUEgICAgIChiYXNlIDE2KQkJSW50aUdhdGUgSW5jLgorCQkJCTMwOUUgSVQgVmVudHVyZSBUb3dlcgorCQkJCTc4LCBHYXJha2Jvbi1Eb25nLCBTb25ncGEtR3UKKwkJCQlTZW91bCAgMTM4LTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC01QiAgIChoZXgpCQlIYW5iaXQgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDA4NUIgICAgIChiYXNlIDE2KQkJSGFuYml0IEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTQxNC01LCBXb25jaGVvbi1Eb25nLCBQYWxkYWwtR3UKKwkJCQlTdXdvbi1DaXR5LCBLeW91bmdraS1EbywgNDQyLTgyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC01QyAgIChoZXgpCQlTaGFuZ2hhaSBEYXJlIFRlY2hub2xvZ2llcyBDby4gTHRkLgorMDAwODVDICAgICAoYmFzZSAxNikJCVNoYW5naGFpIERhcmUgVGVjaG5vbG9naWVzIENvLiBMdGQuCisJCQkJMjNGLCBDaGluYSBNZXJjaGFudHMgVG93ZXIsCisJCQkJTm8uIDE2MSwgRWFzdCBMdWppYVp1aSBSb2FkCisJCQkJUHVkb25nIE5ldyBBcmVhLCBTaGFuZ2hhaSAKKwkJCQlDSElOQQorCiswMC0wOC01RCAgIChoZXgpCQlBYXN0cmEKKzAwMDg1RCAgICAgKGJhc2UgMTYpCQlBYXN0cmEKKwkJCQkxMTYwIFJvdXRlIDIyIEVhc3QKKwkJCQlCcmlkZ2V3YXRlciBOSiAwODgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNUUgICAoaGV4KQkJUENPIEFHCiswMDA4NUUgICAgIChiYXNlIDE2KQkJUENPIEFHCisJCQkJRG9uYXVwYXJrIDExCisJCQkJOTMzMDkgS2VsaGVpbQorCQkJCUdFUk1BTlkKKworMDAtMDgtNUYgICAoaGV4KQkJUGljYW5vbCBOLlYuCiswMDA4NUYgICAgIChiYXNlIDE2KQkJUGljYW5vbCBOLlYuCisJCQkJUG9sZW5sYWFuIDMtNworCQkJCTg5MDAgSWVwZXIKKwkJCQlCRUxHSVVNCisKKzAwLTA4LTYwICAgKGhleCkJCUxvZGdlTmV0IEVudGVydGFpbm1lbnQgQ29ycC4KKzAwMDg2MCAgICAgKGJhc2UgMTYpCQlMb2RnZU5ldCBFbnRlcnRhaW5tZW50IENvcnAuCisJCQkJMzkwMCBXLiBJbm5vdmF0aW9uIFN0cmVldAorCQkJCVNpb3V4IEZhbGxzIFNEIDU3MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC02MSAgIChoZXgpCQlTb2Z0RW5lcmd5IENvLiwgTHRkLgorMDAwODYxICAgICAoYmFzZSAxNikJCVNvZnRFbmVyZ3kgQ28uLCBMdGQuCisJCQkJMzQ2IFNhbmd3YW5nc2lwbGktRG9uZywKKwkJCQlTdW5nIERvbmctR3UsIFNlb3VsCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTYyICAgKGhleCkJCU5FQyBFbHVtaW5hbnQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDA4NjIgICAgIChiYXNlIDE2KQkJTkVDIEVsdW1pbmFudCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxNDcwMCBBdmlvbiBQYXJrd2F5CisJCQkJQ2hhbnRpbGx5IFZBIDIwMTUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC02MyAgIChoZXgpCQlFbnRyaXNwaGVyZSBJbmMuCiswMDA4NjMgICAgIChiYXNlIDE2KQkJRW50cmlzcGhlcmUgSW5jLgorCQkJCTE2MDEgUy4gRGUgQW56YSBCbHZkLgorCQkJCVN1aXRlIDI1MAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNjQgICAoaGV4KQkJRmFzeSBTLnAuQS4KKzAwMDg2NCAgICAgKGJhc2UgMTYpCQlGYXN5IFMucC5BLgorCQkJCVZpYSBUb2duYXNjYSA3CisJCQkJR2FsbGFyYXRlIFZhcmVzZSAyMTAxMworCQkJCUlUQUxZCisKKzAwLTA4LTY1ICAgKGhleCkJCUpBU0NPTSBDTy4sIExURAorMDAwODY1ICAgICAoYmFzZSAxNikJCUpBU0NPTSBDTy4sIExURAorCQkJCUpVQU4gSU5EVVNUUklBTCBDT01QTEVYIDMzMCwgMTctMSwKKwkJCQlKVUFOLURPTkcgTkFNLUdVIElOQ0hFT04gNDAyLTIwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC02NiAgIChoZXgpCQlEU1ggQWNjZXNzIFN5c3RlbXMsIEluYy4KKzAwMDg2NiAgICAgKGJhc2UgMTYpCQlEU1ggQWNjZXNzIFN5c3RlbXMsIEluYy4KKwkJCQkxMDczMSBSb2Nrd2FsbCBSZC4KKwkJCQlEYWxsYXMgVFggNzUyMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTY3ICAgKGhleCkJCVVwdGltZSBEZXZpY2VzCiswMDA4NjcgICAgIChiYXNlIDE2KQkJVXB0aW1lIERldmljZXMKKwkJCQkxMTcyNCBEdW5mcmllcyBMYW5lCisJCQkJQXVzdGluIFRleGFzIDc4NzU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC02OCAgIChoZXgpCQlQdXJPcHRpeAorMDAwODY4ICAgICAoYmFzZSAxNikJCVB1ck9wdGl4CisJCQkJMTk0NSBDYW1pbm8gVmlkYSBSb2JsZQorCQkJCVN1aXRlIEMKKwkJCQlDYXJsc2JhZCBDQSA5MjAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNjkgICAoaGV4KQkJQ29tbWFuZC1lIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMDg2OSAgICAgKGJhc2UgMTYpCQlDb21tYW5kLWUgVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCVN1aXRlIDcwOSwgWmhvbmdzaGVuZyBNYW5zaW9uLAorCQkJCU5vLjIgQmVpIEZlbmdXbyBSZC4KKwkJCQlCZWlqaW5nICAxMDAwMzgKKwkJCQlDSElOQQorCiswMC0wOC02QSAgIChoZXgpCQlTZWN1cml0b24gR21iaAorMDAwODZBICAgICAoYmFzZSAxNikJCVNlY3VyaXRvbiBHbWJoCisJCQkJVm9uLURyYWlzLVN0cmFzc2UgMzMKKwkJCQlBY2hlcm4gIEQtNzc4NTUKKwkJCQlHRVJNQU5ZCisKKzAwLTA4LTZCICAgKGhleCkJCU1JUFNZUworMDAwODZCICAgICAoYmFzZSAxNikJCU1JUFNZUworCQkJCTE5QywgQXZlbnVlIGRlcyBJbmRlcworCQkJCUxFUyBVTElTIENlZGV4ICBGUi05MTk2OQorCQkJCUZSQU5DRQorCiswMC0wOC02QyAgIChoZXgpCQlQbGFzbW9uIExNUworMDAwODZDICAgICAoYmFzZSAxNikJCVBsYXNtb24gTE1TCisJCQkJNDQyNSBBcnJvd3NXZXN0IERyaXZlCisJCQkJQ29sb3JhZG8gU3ByaW5ncyBDTyA4MDkwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNkQgICAoaGV4KQkJTWlzc291cmkgRnJlZU5ldAorMDAwODZEICAgICAoYmFzZSAxNikJCU1pc3NvdXJpIEZyZWVOZXQKKwkJCQlQTyBCb3ggNzcxMDI2CisJCQkJU3QuIExvdWlzIE1pc3NvdXJpIDYzMTc3LTEwMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTZFICAgKGhleCkJCUh5Z2xvIEFCCiswMDA4NkUgICAgIChiYXNlIDE2KQkJSHlnbG8gQUIKKwkJCQlWYXN0YmVyZ2EgYWxsZSA2MAorCQkJCVNFLTEyNiA3NSBTdG9ja2hvbG0KKwkJCQlTV0VERU4KKworMDAtMDgtNkYgICAoaGV4KQkJUmVzb3VyY2VzIENvbXB1dGVyIE5ldHdvcmsgTHRkLgorMDAwODZGICAgICAoYmFzZSAxNikJCVJlc291cmNlcyBDb21wdXRlciBOZXR3b3JrIEx0ZC4KKwkJCQlSbSAzMjQsIFRlY2ggQ2VudHJlLCA3MiBUYXQgQ2hlZSBBdmUuLAorCQkJCUtvd2xvb24gVG9uZywgS293bG9vbgorCQkJCUhPTkcgS09ORworCiswMC0wOC03MCAgIChoZXgpCQlSYXN2aWEgU3lzdGVtcywgSW5jLgorMDAwODcwICAgICAoYmFzZSAxNikJCVJhc3ZpYSBTeXN0ZW1zLCBJbmMuCisJCQkJMzI1NS0zIFNjb3R0IEJsdmQuCisJCQkJU3VpdGUgMTAyCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTcxICAgKGhleCkJCU5PUlRIREFUQSBDby4sIEx0ZC4KKzAwMDg3MSAgICAgKGJhc2UgMTYpCQlOT1JUSERBVEEgQ28uLCBMdGQuCisJCQkJIzMwMiBLYXlhbmdUZWNobm8tVG93biAxNDg3CisJCQkJS2F5YW5nMy1Eb25nCisJCQkJS2FuZ3Nlby1HdSBTZW91bCAxNTctODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTcyICAgKGhleCkJCVNvcmVuc29uIENvbW11bmljYXRpb25zCiswMDA4NzIgICAgIChiYXNlIDE2KQkJU29yZW5zb24gQ29tbXVuaWNhdGlvbnMKKwkJCQk0MTkyIFNvdXRoIFJpdmVyYm9hdCBSb2FkCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTczICAgKGhleCkJCURhcFRlY2hub2xvZ3kgQi5WLgorMDAwODczICAgICAoYmFzZSAxNikJCURhcFRlY2hub2xvZ3kgQi5WLgorCQkJCVp1dHBoZW5zdHJhYXQgNjcKKwkJCQlFSiBPbGRlbnphYWwgIDc1NzUKKwkJCQlORVRIRVJMQU5EUworCiswMC0wOC03NCAgIChoZXgpCQlEZWxsIENvbXB1dGVyIENvcnAuCiswMDA4NzQgICAgIChiYXNlIDE2KQkJRGVsbCBDb21wdXRlciBDb3JwLgorCQkJCU9uZSBEZWxsIFdheQorCQkJCVJvdW5kIFJvY2sgVFggNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTc1ICAgKGhleCkJCUFjb3JwIEVsZWN0cm9uaWNzIENvcnAuCiswMDA4NzUgICAgIChiYXNlIDE2KQkJQWNvcnAgRWxlY3Ryb25pY3MgQ29ycC4KKwkJCQk4RiwgTm8uMTExLTYsU2hpbmcgVGVoIFJkLAorCQkJCVNhbiBDaHVuZyBUYWlwZWkgSHNpZW4gMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC03NiAgIChoZXgpCQlTRFN5c3RlbQorMDAwODc2ICAgICAoYmFzZSAxNikJCVNEU3lzdGVtCisJCQkJNjEzLEh5dW5kYWkgSSBWYWxsZXksMjIzLTEyLAorCQkJCVNhbmdkYWl3b24gMS1Eb25nLEp1bmd3b24tR3UKKwkJCQlTZW9uZ25hbSBHeWVvbmdnaS1EbyA0NjItODA3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LTc3ICAgKGhleCkJCUxpZWJlcnQtSGlyb3NzIFNwYQorMDAwODc3ICAgICAoYmFzZSAxNikJCUxpZWJlcnQtSGlyb3NzIFNwYQorCQkJCVZpYSBMZW9uYXJkbyBkYSBWaW5jaSA4CisJCQkJUGlvdmUgZGkgU2FjY28gWi5JLiBUb2duYW5hIDM1MDIwCisJCQkJSVRBTFkKKworMDAtMDgtNzggICAoaGV4KQkJQmVuY2htYXJrIFN0b3JhZ2UgSW5ub3ZhdGlvbnMKKzAwMDg3OCAgICAgKGJhc2UgMTYpCQlCZW5jaG1hcmsgU3RvcmFnZSBJbm5vdmF0aW9ucworCQkJCTMxMjIgU3RlcmxpbmcgQ2lyY2xlCisJCQkJQm91bGRlciBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtNzkgICAoaGV4KQkJQ0VNIENvcnBvcmF0aW9uCiswMDA4NzkgICAgIChiYXNlIDE2KQkJQ0VNIENvcnBvcmF0aW9uCisJCQkJUC5PLiBCb3ggMjAwCisJCQkJTWF0dGhld3MgTkMgMjgxMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTdBICAgKGhleCkJCVdpcG90ZWMgR21iSAorMDAwODdBICAgICAoYmFzZSAxNikJCVdpcG90ZWMgR21iSAorCQkJCUFkYW0tSG9mZm1hbiBTdHIuIDI2CisJCQkJRC02NzY1NyBLYWlzZXJzbGF1dGVybQorCQkJCUdFUk1BTlkKKworMDAtMDgtN0IgICAoaGV4KQkJUlRYIFRlbGVjb20gQS9TCiswMDA4N0IgICAgIChiYXNlIDE2KQkJUlRYIFRlbGVjb20gQS9TCisJCQkJU3Ryb2VtbWVuIDYKKwkJCQlESyA5NDAwIE5vZXJyZXN1bmRieQorCQkJCURFTk1BUksKKworMDAtMDgtN0MgICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAwODdDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTdEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMgSW5jLgorMDAwODdEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtN0UgICAoaGV4KQkJQm9uIEVsZWN0cm8tVGVsZWNvbSBJbmMuCiswMDA4N0UgICAgIChiYXNlIDE2KQkJQm9uIEVsZWN0cm8tVGVsZWNvbSBJbmMuCisJCQkJR2F5YW5nIDFzdCBGYWN0b3J5IDcwMSwgMTQtODEKKwkJCQlHYXlhbmctRG9uZyBHYW5nc28tR3UKKwkJCQlTZW91bCAgMTU3LTgwOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC03RiAgIChoZXgpCQlTUEFVTiBlbGVjdHJvbmljIEdtYkggJiBDby4gS0cKKzAwMDg3RiAgICAgKGJhc2UgMTYpCQlTUEFVTiBlbGVjdHJvbmljIEdtYkggJiBDby4gS0cKKwkJCQlCeWstR3VsZGVuIC0gU3RyLiAyMgorCQkJCTc4MjI0IFNpbmdlbgorCQkJCUdFUk1BTlkKKworMDAtMDgtODAgICAoaGV4KQkJQnJvYWRUZWwgQ2FuYWRhIENvbW11bmljYXRpb25zIGluYy4KKzAwMDg4MCAgICAgKGJhc2UgMTYpCQlCcm9hZFRlbCBDYW5hZGEgQ29tbXVuaWNhdGlvbnMgaW5jLgorCQkJCTM3MDAgR3JpZmZpdGgsIFN1aXRlIDM4OQorCQkJCVNhaW50LUxhdXJlbnQgUXVlYmVjIEg0VCAyQjMKKwkJCQlDQU5BREEKKworMDAtMDgtODEgICAoaGV4KQkJRElHSVRBTCBIQU5EUyBDTy4sTFRELgorMDAwODgxICAgICAoYmFzZSAxNikJCURJR0lUQUwgSEFORFMgQ08uLExURC4KKwkJCQlUT1dOJ1MgU1FVQVJFIDUwMywgS0FLaVlBIEJ1aWxkaW5nIDJGCisJCQkJMi03LTE3IFNoaW55b2tvaGFtYSBLb3Vob2t1LWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0wOC04MiAgIChoZXgpCQlTSUdNQSBDT1JQT1JBVElPTgorMDAwODgyICAgICAoYmFzZSAxNikJCVNJR01BIENPUlBPUkFUSU9OCisJCQkJMi0zLTE1IEl3YXRvLW1pbmFtaQorCQkJCUtvbWFlLXNoaSBUb2t5byAyMDEtODYzMAorCQkJCUpBUEFOCisKKzAwLTA4LTgzICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDA4ODMgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMDk1NSBUYW50YXUgQXZlbnVlLCBNYWlsc3RvcCA0NVNMLUcKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTg0ICAgKGhleCkJCUluZGV4IEJyYWlsbGUgQUIKKzAwMDg4NCAgICAgKGJhc2UgMTYpCQlJbmRleCBCcmFpbGxlIEFCCisJCQkJQm94IDE1NQorCQkJCVMtOTU0MjMgR2FtbWVsc3RhZAorCQkJCVNXRURFTgorCiswMC0wOC04NSAgIChoZXgpCQlFTVMgRHIuIFRob21hcyBXdWVuc2NoZQorMDAwODg1ICAgICAoYmFzZSAxNikJCUVNUyBEci4gVGhvbWFzIFd1ZW5zY2hlCisJCQkJU29ubmVuaGFuZyAzCisJCQkJRC04NTMwNCBJbG1tdWVuc3RlcgorCQkJCUdFUk1BTlkKKworMDAtMDgtODYgICAoaGV4KQkJSGFuc3VuZyBUZWxpYW5uLCBJbmMuCiswMDA4ODYgICAgIChiYXNlIDE2KQkJSGFuc3VuZyBUZWxpYW5uLCBJbmMuCisJCQkJMTk1LTEsIE5ldW5ncHl1bmctcmksIE9wby1ldWIKKwkJCQlLd2FuZ2p1LXNpLCBLeW9nZ2ktZG8sIDQ2NC04OTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtODcgICAoaGV4KQkJTWFzY2hpbmVuZmFicmlrIFJlaW5oYXVzZW4gR21iSAorMDAwODg3ICAgICAoYmFzZSAxNikJCU1hc2NoaW5lbmZhYnJpayBSZWluaGF1c2VuIEdtYkgKKwkJCQlGYWxrZW5zdGVpbnN0ci4gOAorCQkJCVJlZ2Vuc2J1cmcgQmF2YXJpYSA5MzA1OQorCQkJCUdFUk1BTlkKKworMDAtMDgtODggICAoaGV4KQkJT1VMTElNIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgSW5jLC4KKzAwMDg4OCAgICAgKGJhc2UgMTYpCQlPVUxMSU0gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBJbmMsLgorCQkJCWEtMTB0aCBGTCwuIElUIFZlbnR1cmUgVG93ZXIsCisJCQkJNzggR2FyYWstRG9uZywgU29uZ3BhLUt1CisJCQkJU2VvdWwgIDEzOC04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtODkgICAoaGV4KQkJRWNob3N0YXIgVGVjaG5vbG9naWVzIENvcnAKKzAwMDg4OSAgICAgKGJhc2UgMTYpCQlFY2hvc3RhciBUZWNobm9sb2dpZXMgQ29ycAorCQkJCTk0IEludmVybmVzcyBDaXJjbGUKKwkJCQlFbmdsZXdvb2QgQ08gODAxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LThBICAgKGhleCkJCU1pbmRzQFdvcmsKKzAwMDg4QSAgICAgKGJhc2UgMTYpCQlNaW5kc0BXb3JrCisJCQkJMTU1NTAgUm9ja2ZpZWxkIEJsdmQuIFN1aXRlIEMKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LThCICAgKGhleCkJCVRyb3BpYyBOZXR3b3JrcyBJbmMuCiswMDA4OEIgICAgIChiYXNlIDE2KQkJVHJvcGljIE5ldHdvcmtzIEluYy4KKwkJCQkxMzUgTWljaGVhbCBDb3dwbGFuZCBEcml2ZQorCQkJCU90dGF3YSBPbnRhcmlvIEsyTTJFOQorCQkJCUNBTkFEQQorCiswMC0wOC04QyAgIChoZXgpCQlRdWFudGEgTmV0d29yayBTeXN0ZW1zIEluYy4KKzAwMDg4QyAgICAgKGJhc2UgMTYpCQlRdWFudGEgTmV0d29yayBTeXN0ZW1zIEluYy4KKwkJCQkxMywgMTNGLCBTZWMuIDIsIFBlaS1Ub3UgUmQKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtOEQgICAoaGV4KQkJU2lnbWEtTGlua3MgSW5jLgorMDAwODhEICAgICAoYmFzZSAxNikJCVNpZ21hLUxpbmtzIEluYy4KKwkJCQk1NTAtMSBIaWdhc2hpYXNha2F3YS1jaG8sCisJCQkJSGFjaGlvamktc2hpLAorCQkJCVRva3lvICAxOTMtODU1MAorCQkJCUpBUEFOCisKKzAwLTA4LThFICAgKGhleCkJCU5paG9uIENvbXB1dGVyIENvLiwgTHRkLgorMDAwODhFICAgICAoYmFzZSAxNikJCU5paG9uIENvbXB1dGVyIENvLiwgTHRkLgorCQkJCTM2LTggSGlnYXNoaXRhbWFjaGkKKwkJCQlIYW1hbWF0c3UgU2hpenVva2EgNDMwLTA5MTUKKwkJCQlKQVBBTgorCiswMC0wOC04RiAgIChoZXgpCQlBRFZBTkNFRCBESUdJVEFMIFRFQ0hOT0xPR1kKKzAwMDg4RiAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBESUdJVEFMIFRFQ0hOT0xPR1kKKwkJCQlBRFQgQkxERy4sMy0zLCBZQU5HSkFFLURPTkcsCisJCQkJU0VPQ0hPLUdVLAorCQkJCVNFT1VMICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtOTAgICAoaGV4KQkJQVZJTElOS1MgU0EKKzAwMDg5MCAgICAgKGJhc2UgMTYpCQlBVklMSU5LUyBTQQorCQkJCUV0aWMgQ2VudGVyIC0gQ1MgNzcgNzI5CisJCQkJOSBydWUgZGVzIENoYXJtaWxsZXMKKwkJCQlDZXNzb24gU2V2aWduZSBDZWRleCBGUkFOQ0UgMzU1NzcKKwkJCQlGUkFOQ0UKKworMDAtMDgtOTEgICAoaGV4KQkJTHlhbiBJbmMuCiswMDA4OTEgICAgIChiYXNlIDE2KQkJTHlhbiBJbmMuCisJCQkJNUYtMSwgTk8uNTEsIFNFQy4yLCBLRUVMVU5HIFJELgorCQkJCVRBSVBFSSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC05MiAgIChoZXgpCQlFTSBTb2x1dGlvbnMKKzAwMDg5MiAgICAgKGJhc2UgMTYpCQlFTSBTb2x1dGlvbnMKKwkJCQkxMDEgSHlkZSBSZAorCQkJCVllcm9uZ2EgQnJpc2JhbmUsIFFMRCA0MTA0CisJCQkJQVVTVFJBTElBCisKKzAwLTA4LTkzICAgKGhleCkJCUxFIElORk9STUFUSU9OIENPTU1VTklDQVRJT04gSU5DLgorMDAwODkzICAgICAoYmFzZSAxNikJCUxFIElORk9STUFUSU9OIENPTU1VTklDQVRJT04gSU5DLgorCQkJCVJtLCA0NTAxLCBEQS1Eb25nIENodW5nYW5nIENpcmN1bGF0aW9uIEMKKwkJCQkxMjU4IEt1cm8gQm9uLURvbmcsIEt1cm8tS3UsCisJCQkJU2VvdWwgIDE1Mi03MjEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtOTQgICAoaGV4KQkJSW5ub1ZJU0lPTiBNdWx0aW1lZGlhIEx0ZC4KKzAwMDg5NCAgICAgKGJhc2UgMTYpCQlJbm5vVklTSU9OIE11bHRpbWVkaWEgTHRkLgorCQkJCVJtIDYwOCwgNi9GIFRpbnMgRW50ZXJwcmlzZXMgQ2VudHJlLAorCQkJCTc3NyBMYWkgQ2hpIEtvayBSb2FkLAorCQkJCUtvd2xvb24sICAKKwkJCQlIT05HIEtPTkcKKworMDAtMDgtOTUgICAoaGV4KQkJRElSQyBUZWNobm9sb2dpZSBHbWJIICYgQ28uS0cKKzAwMDg5NSAgICAgKGJhc2UgMTYpCQlESVJDIFRlY2hub2xvZ2llIEdtYkggJiBDby5LRworCQkJCUJvcnNpZ3N0ci4gMTMKKwkJCQlSYXRpbmdlbiBOUlcgNDA4ODAKKwkJCQlHRVJNQU5ZCisKKzAwLTA4LTk2ICAgKGhleCkJCVByaW50cm9uaXgsIEluYy4KKzAwMDg5NiAgICAgKGJhc2UgMTYpCQlQcmludHJvbml4LCBJbmMuCisJCQkJMTQ2MDAgTXlmb3JkIFJkLgorCQkJCVAuTy4gQm94IDE5NTU5CisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MjMtOTU1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtOTcgICAoaGV4KQkJUXVha2UgVGVjaG5vbG9naWVzCiswMDA4OTcgICAgIChiYXNlIDE2KQkJUXVha2UgVGVjaG5vbG9naWVzCisJCQkJMjg4MCBaYW5rZXIgUm9hZAorCQkJCVN1aXRlIDEwNAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC05OCAgIChoZXgpCQlHaWdhYml0IE9wdGljcyBDb3Jwb3JhdGlvbgorMDAwODk4ICAgICAoYmFzZSAxNikJCUdpZ2FiaXQgT3B0aWNzIENvcnBvcmF0aW9uCisJCQkJMTE1NiBBc3RlciBBdmUuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2LTY4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTk5ICAgKGhleCkJCU5ldGJpbmQsIEluYy4KKzAwMDg5OSAgICAgKGJhc2UgMTYpCQlOZXRiaW5kLCBJbmMuCisJCQkJNSBNYXJpbmUgVmlldyBQbGF6YQorCQkJCUhvYm9rZW4gTkogMDcwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LTlBICAgKGhleCkJCUFsY2F0ZWwgTWljcm9lbGVjdHJvbmljcworMDAwODlBICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTWljcm9lbGVjdHJvbmljcworCQkJCUV4Y2Vsc2lvcmxhYW4gNDQtNDYKKwkJCQlCLTE5MzAgWmF2YW50ZW0gIAorCQkJCUJFTEdJVU0KKworMDAtMDgtOUIgICAoaGV4KQkJSUNQIEVsZWN0cm9uaWNzIEluYy4KKzAwMDg5QiAgICAgKGJhc2UgMTYpCQlJQ1AgRWxlY3Ryb25pY3MgSW5jLgorCQkJCTRGLCBOby4gMjIsIENodW5nLUhzaW5nIFJkLiBTaGktQ2hpIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4sIDIyMSwKKwkJCQlUYWlwZWkgIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtOUMgICAoaGV4KQkJRWxlY3MgSW5kdXN0cnkgQ28uLCBMdGQuCiswMDA4OUMgICAgIChiYXNlIDE2KQkJRWxlY3MgSW5kdXN0cnkgQ28uLCBMdGQuCisJCQkJMS0yMi0yMyxTaGluc2FrdSxUYWthdHN1LUt1CisJCQkJS2F3YXNha2kgS2FuYWdhd2EgMjEzLTAwMTQKKwkJCQlKQVBBTgorCiswMC0wOC05RCAgIChoZXgpCQlVSEQtRWxla3Ryb25paworMDAwODlEICAgICAoYmFzZSAxNikJCVVIRC1FbGVrdHJvbmlrCisJCQkJWnVlcmNoZXJzdHJhc3NlIDEyCisJCQkJQmFkZW4gQUcgNTQwMAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA4LTlFICAgKGhleCkJCUJlaWppbmcgRW50ZXItTmV0IGNvLkxURAorMDAwODlFICAgICAoYmFzZSAxNikJCUJlaWppbmcgRW50ZXItTmV0IGNvLkxURAorCQkJCU5PIDEgY291cnR5YXJkLAorCQkJCXNodWFuZ3F1YW5wdSBqaWEgMSxjaGFveWEKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0wOC05RiAgIChoZXgpCQlFRk0gTmV0d29ya3MKKzAwMDg5RiAgICAgKGJhc2UgMTYpCQlFRk0gTmV0d29ya3MKKwkJCQk0MDMsIDR0aCBmbG9vciBFbGVnYW5jZSAxIEJsZGcuCisJCQkJMjUtMiBHdW1pLWRvbmcgUHVuZGFuZy1ndQorCQkJCVN1bmduYW0tc2kgS3l1bmdnaS1kbyA0NjMtODA4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUEwICAgKGhleCkJCVN0b3R6IEZlaW5tZXNzdGVjaG5payBHbWJICiswMDA4QTAgICAgIChiYXNlIDE2KQkJU3RvdHogRmVpbm1lc3N0ZWNobmlrIEdtYkgKKwkJCQlIZXJtYW5uLURyZWhlciBTdHIuIDYKKwkJCQlHZXJsaW5nZW4gIDcwODM5CisJCQkJR0VSTUFOWQorCiswMC0wOC1BMSAgIChoZXgpCQlDTmV0IFRlY2hub2xvZ3kgSW5jLgorMDAwOEExICAgICAoYmFzZSAxNikJCUNOZXQgVGVjaG5vbG9neSBJbmMuCisJCQkJTm8uMTUsIFBhcmsgQXZlbnVlIElJLCBTY2llbmNlLUJhc2VkIEluZAorCQkJCUhzaW4tQ2h1IENpdHksCisJCQkJSHNpbi1DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtQTIgICAoaGV4KQkJQURJIEVuZ2luZWVyaW5nLCBJbmMuCiswMDA4QTIgICAgIChiYXNlIDE2KQkJQURJIEVuZ2luZWVyaW5nLCBJbmMuCisJCQkJMTc2OUEgV29ydGggUGFyaworCQkJCUNoYXJsb3R0ZXN2aWxsZSBWQSAyMjkxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQTMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwOEEzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUE0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDhBNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1BNSAgIChoZXgpCQlQZW5pbnN1bGEgU3lzdGVtcyBJbmMuCiswMDA4QTUgICAgIChiYXNlIDE2KQkJUGVuaW5zdWxhIFN5c3RlbXMgSW5jLgorCQkJCTY5MDIgVmVyZGUgUmlkZ2UgUmQuCisJCQkJUmFuY2hvIFBhbG9zIFZlcmRlcyBDQSA5MDI3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQTYgICAoaGV4KQkJTXVsdGl3YXJlICYgSW1hZ2UgQ28uLCBMdGQuCiswMDA4QTYgICAgIChiYXNlIDE2KQkJTXVsdGl3YXJlICYgSW1hZ2UgQ28uLCBMdGQuCisJCQkJU2FlZG9uZyBCbGRnLiA2NS0yNSwKKwkJCQkya2EsIE5hbWhhbmcsIFlvdW5nZG8KKwkJCQlQdXNhbiAgNjA2LTAzMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1BNyAgIChoZXgpCQlpTG9naWMgSW5jLgorMDAwOEE3ICAgICAoYmFzZSAxNikJCWlMb2dpYyBJbmMuCisJCQkJUm0jMzE4LCBUZWNobm9Db21wbGV4IEJsZGcuLCAxMjYtMTYsIDUtZworCQkJCVNlb3VsICAxMzYtNzAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUE4ICAgKGhleCkJCVN5c3RlYyBDby4sIEx0ZC4KKzAwMDhBOCAgICAgKGJhc2UgMTYpCQlTeXN0ZWMgQ28uLCBMdGQuCisJCQkJMTkgTm9jaGlkb3JpLCBOYXdhCisJCQkJVG9rYWkgQWljaGkgNDc2LTAwMDIKKwkJCQlKQVBBTgorCiswMC0wOC1BOSAgIChoZXgpCQlTYW5nU2FuZyBUZWNobm9sb2d5LCBJbmMuCiswMDA4QTkgICAgIChiYXNlIDE2KQkJU2FuZ1NhbmcgVGVjaG5vbG9neSwgSW5jLgorCQkJCTY0LTgsIE5vZ29rLXJpLCBEb2NoZW9rLW15dW4sCisJCQkJR3dhbmdqdSBLeW9uZ2dpLWRvIDQ2NC04ODIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtQUEgICAoaGV4KQkJS0FSQU0KKzAwMDhBQSAgICAgKGJhc2UgMTYpCQlLQVJBTQorCQkJCTk4LTMsICBIYW5rYW5ncm8gMi1LQSwgWW9uZ3NhbgorCQkJCVNlb3VsICAxNDAtMDEyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUFCICAgKGhleCkJCUVuZXJMaW54LmNvbSwgSW5jLgorMDAwOEFCICAgICAoYmFzZSAxNikJCUVuZXJMaW54LmNvbSwgSW5jLgorCQkJCTM5NjUgU291dGggV29vZGhpbGwgTGFuZQorCQkJCU5ldyBCZXJsaW4gV0kgNTMxNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUFDICAgKGhleCkJCUVsdHJvbWF0IEdtYkgKKzAwMDhBQyAgICAgKGJhc2UgMTYpCQlFbHRyb21hdCBHbWJICisJCQkJSGVyZm9yZGVyIFN0ci4gMjQ5LTI1MQorCQkJCUxlb3BvbGRzaMO2aGUgTm9yZHJoZWluLVdlc3RmYWxlbiAzMzgxOAorCQkJCUdFUk1BTlkKKworMDAtMDgtQUQgICAoaGV4KQkJVG95by1MaW54IENvLiwgTHRkLgorMDAwOEFEICAgICAoYmFzZSAxNikJCVRveW8tTGlueCBDby4sIEx0ZC4KKwkJCQlIaXJha2F3YS1DaG8sIENoaXlhZGEta3UsCisJCQkJVG9reW8gIDEwMi0wMDkzCisJCQkJSkFQQU4KKworMDAtMDgtQUUgICAoaGV4KQkJUGFja2V0RnJvbnQgSW50ZXJuYXRpb25hbCBBQgorMDAwOEFFICAgICAoYmFzZSAxNikJCVBhY2tldEZyb250IEludGVybmF0aW9uYWwgQUIKKwkJCQlCb3ggMTIxNworCQkJCUtpc3RhICAxNjQyOAorCQkJCVNXRURFTgorCiswMC0wOC1BRiAgIChoZXgpCQlOb3ZhdGVjIENvcnBvcmF0aW9uCiswMDA4QUYgICAgIChiYXNlIDE2KQkJTm92YXRlYyBDb3Jwb3JhdGlvbgorCQkJCTItMTktMiBOaXNoaS1Hb3RhbmRhCisJCQkJU2hpbmFnYXdhLWt1IFRva3lvIDE0MS0wMDMxCisJCQkJSkFQQU4KKworMDAtMDgtQjAgICAoaGV4KQkJQkt0ZWwgY29tbXVuaWNhdGlvbnMgR21iSAorMDAwOEIwICAgICAoYmFzZSAxNikJCUJLdGVsIGNvbW11bmljYXRpb25zIEdtYkgKKwkJCQlCZW56c3RyYXNzZSA0CisJCQkJNDE4MzYgSHVlY2tlbGhvdmVuLUJhYWwgTlJXIDQxODM2CisJCQkJR0VSTUFOWQorCiswMC0wOC1CMSAgIChoZXgpCQlQcm9RdWVudCBTeXN0ZW1zCiswMDA4QjEgICAgIChiYXNlIDE2KQkJUHJvUXVlbnQgU3lzdGVtcworCQkJCTY3IEZvcmVzdCBTdHJlZXQKKwkJCQlNYXJsYm9ybyBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQjIgICAoaGV4KQkJU0hFTlpIRU4gQ09NUEFTUyBURUNITk9MT0dZIERFVkVMT1BNRU5UIENPLixMVEQKKzAwMDhCMiAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBDT01QQVNTIFRFQ0hOT0xPR1kgREVWRUxPUE1FTlQgQ08uLExURAorCQkJCTR0aCBGbG9vcixCdWlsZGluZyAyMDUsVGFpUmFuIEluZHVzdHJ5CisJCQkJJlRyYWRlIFBhcmssRnV0aWFuIERpc3RyaWN0LFNoZW56aGVuCisJCQkJU2hlbnpoZW4gR1VBTkdET05HIDUxODA0MAorCQkJCUNISU5BCisKKzAwLTA4LUIzICAgKGhleCkJCUZhc3R3ZWwKKzAwMDhCMyAgICAgKGJhc2UgMTYpCQlGYXN0d2VsCisJCQkJUHJvZnNveXV6bmF5YSAxMDgsCisJCQkJTW9zY293ICAxMTczMTMKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMDgtQjQgICAoaGV4KQkJU1lTUE9MCiswMDA4QjQgICAgIChiYXNlIDE2KQkJU1lTUE9MCisJCQkJNHRoIEZsLFNZU1BPTCBCL0QsIEJhbmdiYWUgNCBEb25nLCBTZW9jaAorCQkJCVNlb3VsICAxMzctMDY0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUI1ICAgKGhleCkJCVRBSSBHVUVOIEVOVEVSUFJJU0UgQ08uLCBMVEQKKzAwMDhCNSAgICAgKGJhc2UgMTYpCQlUQUkgR1VFTiBFTlRFUlBSSVNFIENPLiwgTFRECisJCQkJTjAuNDAwLCAxMEYtNyBIVUFOUEVJIFJELiwKKwkJCQlDSFVORyBMSSBDSVRZIFRXLCBST0MuCisJCQkJQ0hVTkcgTEkgIDMyMC02MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtQjYgICAoaGV4KQkJUm91dGVGcmVlLCBJbmMuCiswMDA4QjYgICAgIChiYXNlIDE2KQkJUm91dGVGcmVlLCBJbmMuCisJCQkJMzQwMCBIaWxsdmlldyBBdmUuIEJsZGcuIDUKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUI3ICAgKGhleCkJCUhJVCBJbmNvcnBvcmF0ZWQKKzAwMDhCNyAgICAgKGJhc2UgMTYpCQlISVQgSW5jb3Jwb3JhdGVkCisJCQkJNEYsIDgsIExhbmUgMjM1LCBQYW8tQ2hpYW8gUm9hZCwKKwkJCQlTaGluIFRpZW4gVGFpcGVpIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDgtQjggICAoaGV4KQkJRS5GLiBKb2huc29uCiswMDA4QjggICAgIChiYXNlIDE2KQkJRS5GLiBKb2huc29uCisJCQkJMjk5IEpvaG5zb24gQXZlLgorCQkJCVAuTy4gQm94IDEyNDkKKwkJCQlXYXNlY2EgTU4gNTYwOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUI5ICAgKGhleCkJCUtBT04gTUVESUEgQ28uLCBMdGQuCiswMDA4QjkgICAgIChiYXNlIDE2KQkJS0FPTiBNRURJQSBDby4sIEx0ZC4KKwkJCQkjMTEzIEltYWUgMS1Eb25nLCBCdW5kYW5nLUd1CisJCQkJU3VuZ25hbS1DaXR5IEt5dW5na2ktRG8gNDYzLTgyOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1CQSAgIChoZXgpCQlFcnNraW5lIFN5c3RlbXMgTHRkCiswMDA4QkEgICAgIChiYXNlIDE2KQkJRXJza2luZSBTeXN0ZW1zIEx0ZAorCQkJCVNhbHRlciBSb2FkCisJCQkJRWFzdGZpZWxkIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJU2NhcmJvcm91Z2ggTm9ydGggWW9ya3NoaXJlIFlPMTEgM0RVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDgtQkIgICAoaGV4KQkJTmV0RXhjZWxsCiswMDA4QkIgICAgIChiYXNlIDE2KQkJTmV0RXhjZWxsCisJCQkJMTUzNzUgQmFycmFuY2EgUGt3eSwgI0UtMTA2CisJCQkJSXJ2aW5lIENBIDkyNjc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1CQyAgIChoZXgpCQlJbGV2byBBQgorMDAwOEJDICAgICAoYmFzZSAxNikJCUlsZXZvIEFCCisJCQkJQm94IDE1NjEKKwkJCQlLYXJsc3RhZCBWw6RybWxhbmQgUy02NTEgMjEKKwkJCQlTV0VERU4KKworMDAtMDgtQkQgICAoaGV4KQkJVEVQRy1VUworMDAwOEJEICAgICAoYmFzZSAxNikJCVRFUEctVVMKKwkJCQkxMDAgU2ltcGxleCBEcml2ZQorCQkJCVdlc3RtaW5zdGVyIE1BIDAxNDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1CRSAgIChoZXgpCQlYRU5QQUsgTVNBIEdyb3VwCiswMDA4QkUgICAgIChiYXNlIDE2KQkJWEVOUEFLIE1TQSBHcm91cAorCQkJCUNhcmUgb2Y6IEFnaWxlbnQgVGVjaG5vbG9naWVzCisJCQkJV2hpdGUgSG91c2UgUm9hZAorCQkJCUlwc3dpY2ggU3VmZm9sayBJcDEgNVBCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDgtQkYgICAoaGV4KQkJQXB0dXMgRWxla3Ryb25payBBQgorMDAwOEJGICAgICAoYmFzZSAxNikJCUFwdHVzIEVsZWt0cm9uaWsgQUIKKwkJCQlGTyBQZXRlcnNvbnMgRyA2CisJCQkJNDIxIDMxIFYuIEZyb2x1bmRhCisJCQkJU1dFREVOCisKKzAwLTA4LUMwICAgKGhleCkJCUFTQSBTWVNURU1TCiswMDA4QzAgICAgIChiYXNlIDE2KQkJQVNBIFNZU1RFTVMKKwkJCQlTMjQ1IEtvcmVhIE1hcml0aW1lIFVuaXZlcnNpdHksIDEgRG9uZ3NhCisJCQkJQnVzYW4gQnVzYW4gTWV0cm9wb2xpdGFuIENpdHkgNjA2LTc5MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1DMSAgIChoZXgpCQlBdmlzdGFyIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCiswMDA4QzEgICAgIChiYXNlIDE2KQkJQXZpc3RhciBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorCQkJCTE1ODUxIERhbGxhcyBQa3d5LgorCQkJCVN1aXRlIDYwMAorCQkJCUFkZGlzb24gVFggNzUwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUMyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDhDMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQzMgICAoaGV4KQkJQ29udGV4IEEvUworMDAwOEMzICAgICAoYmFzZSAxNikJCUNvbnRleCBBL1MKKwkJCQlTdmFuZXZhbmcgMgorCQkJCUFsbGVyb2QgREsgMzQ1MAorCQkJCURFTk1BUksKKworMDAtMDgtQzQgICAoaGV4KQkJSGlrYXJpIENvLixMdGQuCiswMDA4QzQgICAgIChiYXNlIDE2KQkJSGlrYXJpIENvLixMdGQuCisJCQkJNDE4LTQgTWluYW1pbm9kYSBDaGlnZW5vYnUtY2hvCisJCQkJT25zZW4tZ3VuIEVoaW1lIDc5MS0wMjk3CisJCQkJSkFQQU4KKworMDAtMDgtQzUgICAoaGV4KQkJTGlvbnRlY2ggQ28uLCBMdGQuCiswMDA4QzUgICAgIChiYXNlIDE2KQkJTGlvbnRlY2ggQ28uLCBMdGQuCisJCQkJMzA2LCBXb295b3VuZyBUZWNobm8gQ2VudGVyLCAyNzMtMTUsCisJCQkJU3VuZ3N1MmdhLTNkb25nLCBTdW5nZG9uZy1rdSwKKwkJCQlTZW91bCAgMTMzLTgzMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1DNiAgIChoZXgpCQlQaGlsaXBzIENvbnN1bWVyIENvbW11bmljYXRpb25zCiswMDA4QzYgICAgIChiYXNlIDE2KQkJUGhpbGlwcyBDb25zdW1lciBDb21tdW5pY2F0aW9ucworCQkJCVJvdXRlIGQnQW5nZXJzCisJCQkJNzIwODEgTGUgTWFucworCQkJCUNlZGV4IDkgIAorCQkJCUZSQU5DRQorCiswMC0wOC1DNyAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAwOEM3ICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1DOCAgIChoZXgpCQlTb25ldGljb20sIEluYy4KKzAwMDhDOCAgICAgKGJhc2UgMTYpCQlTb25ldGljb20sIEluYy4KKwkJCQk0MzI1IFdvb2RsYW5kIFBhcmsgRHJpdmUsIFN1aXRlIDEwMgorCQkJCVdlc3QgTWVsYm91cm5lIEZsb3JpZGEgMzI5MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUM5ICAgKGhleCkJCVRlY2huaVNhdCBEaWdpdGFsIEdtYkgKKzAwMDhDOSAgICAgKGJhc2UgMTYpCQlUZWNobmlTYXQgRGlnaXRhbCBHbWJICisJCQkJR2V3ZXJiZXBhcmsgTWVyYml0eiBOci4gNQorCQkJCURyZXNkZW4gU2F4b255IDAxMTU2CisJCQkJR0VSTUFOWQorCiswMC0wOC1DQSAgIChoZXgpCQlUd2luSGFuIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAwOENBICAgICAoYmFzZSAxNikJCVR3aW5IYW4gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJMTNGLTYsTm8gNzksU2VjIDEsSHNpbiBUYWkgV3UgUkQuLEhzaS1DaAorCQkJCVRhaXBlaSBIc2llbiAgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC1DQiAgIChoZXgpCQlaZXRhIEJyb2FkYmFuZCBJbmMuCiswMDA4Q0IgICAgIChiYXNlIDE2KQkJWmV0YSBCcm9hZGJhbmQgSW5jLgorCQkJCTY2MCBWaXN0YSBXYXksIFN1aXRlIEIKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQ0MgICAoaGV4KQkJUmVtb3RlYywgSW5jLgorMDAwOENDICAgICAoYmFzZSAxNikJCVJlbW90ZWMsIEluYy4KKwkJCQkxMTQgVW5pb24gVmFsbGV5IFJvYWQKKwkJCQlPYWsgUmlkZ2UgVE4gMzc4MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUNEICAgKGhleCkJCVdpdGgtTmV0IEluYworMDAwOENEICAgICAoYmFzZSAxNikJCVdpdGgtTmV0IEluYworCQkJCTRGTCBCJkIgQi9EIDE0MDMtNAorCQkJCUt3YW5neWFuZzEtZG9uZyBEb25nYW4ta3UKKwkJCQlBbnlhbmcgS3lvbmdnaSA0MzEtMDYxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUNFICAgKGhleCkJCUlQTW9iaWxlTmV0IEluYy4KKzAwMDhDRSAgICAgKGJhc2UgMTYpCQlJUE1vYmlsZU5ldCBJbmMuCisJCQkJMTE5MDkgRSBUZWxlZ3JhcGggUmQuCisJCQkJU2FudGEgRmUgU3ByaW5ncyBDQSA5MDY3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtQ0YgICAoaGV4KQkJTmlwcG9uIEtvZWkgUG93ZXIgU3lzdGVtcyBDby4sIEx0ZC4KKzAwMDhDRiAgICAgKGJhc2UgMTYpCQlOaXBwb24gS29laSBQb3dlciBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCTI5NDAgU2hpbnlvc2hpZGEtY2hvCisJCQkJS29ob2t1LWt1IFlva29oYW1hIDIyMy04NTA2CisJCQkJSkFQQU4KKworMDAtMDgtRDAgICAoaGV4KQkJTXVzYXNoaSBFbmdpbmVlcmluZyBDby4sIExURC4KKzAwMDhEMCAgICAgKGJhc2UgMTYpCQlNdXNhc2hpIEVuZ2luZWVyaW5nIENvLiwgTFRELgorCQkJCTMtMTEtNywgTmlzaGktc2hpbWJhc2hpCisJCQkJTWluYXRvLWt1IFRva3lvIDEwNS0wMDAzCisJCQkJSkFQQU4KKworMDAtMDgtRDEgICAoaGV4KQkJS0FSRUwgSU5DLgorMDAwOEQxICAgICAoYmFzZSAxNikJCUtBUkVMIElOQy4KKwkJCQlPUkdBTklaRSBTQU5BWUkgQk9MR0VTSQorCQkJCUdBWk5FTElMRVIgQ0FEIE5POjEwICBTSU5DQU4KKwkJCQlBTktBUkEgIDA2OTM1CisJCQkJVFVSS0VZCisKKzAwLTA4LUQyICAgKGhleCkJCVpPT00gTmV0d29ya3MgSW5jLgorMDAwOEQyICAgICAoYmFzZSAxNikJCVpPT00gTmV0d29ya3MgSW5jLgorCQkJCTEzRixYaW5MdURhbyBCdWlsZGluZyxOby4xMTc1LE5hbnNoYW4gUm8KKwkJCQlTaGVuIFpoZW4gR3VhbmdEb25nIFByb3ZpbmNlIDUxODA1MgorCQkJCUNISU5BCisKKzAwLTA4LUQzICAgKGhleCkJCUhlcmN1bGVzIFRlY2hub2xvZ2llcyBTLkEuCiswMDA4RDMgICAgIChiYXNlIDE2KQkJSGVyY3VsZXMgVGVjaG5vbG9naWVzIFMuQS4KKwkJCQlQbGFjZSBkZSBsJ8OpdG9pbGUKKwkJCQlDYXJlbnRvaXIgQnJldGFnbmUgNTY5MTAKKwkJCQlGUkFOQ0UKKworMDAtMDgtRDQgICAoaGV4KQkJSW5lb1F1ZXN0IFRlY2hub2xvZ2llcywgSW5jCiswMDA4RDQgICAgIChiYXNlIDE2KQkJSW5lb1F1ZXN0IFRlY2hub2xvZ2llcywgSW5jCisJCQkJMTkzMSBXYXNoaW5ndG9uIFN0CisJCQkJQ2FudG9uIE1hc3NhY2h1c2V0dHMgMDIwMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUQ1ICAgKGhleCkJCVZhbmd1YXJkIE5ldHdvcmtzIFNvbHV0aW9ucywgTExDCiswMDA4RDUgICAgIChiYXNlIDE2KQkJVmFuZ3VhcmQgTmV0d29ya3MgU29sdXRpb25zLCBMTEMKKwkJCQkyNSBGb3JiZXMgQm91bGV2YXJkCisJCQkJRm94Ym9ybyBNQSAwMjAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRDYgICAoaGV4KQkJSEFTU05FVCBJbmMuCiswMDA4RDYgICAgIChiYXNlIDE2KQkJSEFTU05FVCBJbmMuCisJCQkJMkYgTWlzc3kyMDAwIEIvRCA3MjUsIFNvb1Nlby1Eb25nLAorCQkJCUthbmduYW0tS3UKKwkJCQlTZW91bCAgMTM1LTc1NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1ENyAgIChoZXgpCQlIT1cgQ09SUE9SQVRJT04KKzAwMDhENyAgICAgKGJhc2UgMTYpCQlIT1cgQ09SUE9SQVRJT04KKwkJCQkxLTExLTE3IENoaXlvZGEKKwkJCQlTYWdhbWloYXJhIEthbmFnYXdhIDIyOS0wMDM3CisJCQkJSkFQQU4KKworMDAtMDgtRDggICAoaGV4KQkJRG93a2V5IE1pY3Jvd2F2ZQorMDAwOEQ4ICAgICAoYmFzZSAxNikJCURvd2tleSBNaWNyb3dhdmUKKwkJCQk0ODIyIE1jR3JhdGggU3RyZWV0CisJCQkJVmVudHVyYSBDYSA5MzAwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRDkgICAoaGV4KQkJTWl0YWRlbnNoaSBDby4sTFRECiswMDA4RDkgICAgIChiYXNlIDE2KQkJTWl0YWRlbnNoaSBDby4sTFRECisJCQkJMS04LTYgRnVydWljaGkgQXNhbWluYW1pa3UKKwkJCQlIaXJvc2hpbWEgIDczMS0wMTIzCisJCQkJSkFQQU4KKworMDAtMDgtREEgICAoaGV4KQkJU29mYVdhcmUgVGVjaG5vbG9naWVzIEx0ZC4KKzAwMDhEQSAgICAgKGJhc2UgMTYpCQlTb2ZhV2FyZSBUZWNobm9sb2dpZXMgTHRkLgorCQkJCTMgSGlsYXpvbiBTdC4KKwkJCQlSYW1hdC1HYW4gIDUyNTIyCisJCQkJSVNSQUVMCisKKzAwLTA4LURCICAgKGhleCkJCUNvcnJpZ2VudCBTeXN0ZW1zCiswMDA4REIgICAgIChiYXNlIDE2KQkJQ29ycmlnZW50IFN5c3RlbXMKKwkJCQkxMjYgWWlnYWwgQWxvbgorCQkJCVRlbCBBdml2ICA2NzQ0MworCQkJCUlTUkFFTAorCiswMC0wOC1EQyAgIChoZXgpCQlXaXpuZXQKKzAwMDhEQyAgICAgKGJhc2UgMTYpCQlXaXpuZXQKKwkJCQk1RiBTaW1tdGVjaCBibGRnLiwgMjI4LTMsCisJCQkJTm9ueWh1biwgS2FuZ25hbQorCQkJCVNlb3VsICAxMzUtODMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUREICAgKGhleCkJCVRlbGVuYSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwOEREICAgICAoYmFzZSAxNikJCVRlbGVuYSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTY3MjUgTWVzYSBSaWRnZSBSb2FkCisJCQkJU3VpdGUgMjI2CisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1ERSAgIChoZXgpCQkzVVAgU3lzdGVtcworMDAwOERFICAgICAoYmFzZSAxNikJCTNVUCBTeXN0ZW1zCisJCQkJNiBSZXN1bHRzIFdheQorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtREYgICAoaGV4KQkJQWxpc3RlbCBJbmMuCiswMDA4REYgICAgIChiYXNlIDE2KQkJQWxpc3RlbCBJbmMuCisJCQkJTWlkb3JpIEJsZGcuIDJGCisJCQkJMS01LTIwIE5ha2FnYXdhLCBUc3V6dWtpLWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjIyLTAwMDEKKwkJCQlKQVBBTgorCiswMC0wOC1FMCAgIChoZXgpCQlBVE8gVGVjaG5vbG9neSBMdGQuCiswMDA4RTAgICAgIChiYXNlIDE2KQkJQVRPIFRlY2hub2xvZ3kgTHRkLgorCQkJCVJtLiAxMzE0LTEzNDYsIEJsb2NrIEIxLCBZYXUgVG9uZyBJbmQuIEMKKwkJCQlZYXUgVG9uZywgS293bG9vbiwKKwkJCQlIb25nIEtvbmcgIAorCQkJCUhPTkcgS09ORworCiswMC0wOC1FMSAgIChoZXgpCQlCYXJpeCBBRworMDAwOEUxICAgICAoYmFzZSAxNikJCUJhcml4IEFHCisJCQkJV2llc2Vuc3RyLiAxNworCQkJCVp1ZXJpY2ggWkggODAwOAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA4LUUyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDhFMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otQmxkIE0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1FMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA4RTMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLUJsZCBNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRTQgICAoaGV4KQkJRW52ZW5lcmd5IEluYworMDAwOEU0ICAgICAoYmFzZSAxNikJCUVudmVuZXJneSBJbmMKKwkJCQk2MzA3IENhcnBpbnRlcmlhIEF2ZQorCQkJCUNhcnBpbnRlcmlhIENBIDkzMDEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1FNSAgIChoZXgpCQlJREsgQ29ycG9yYXRpb24KKzAwMDhFNSAgICAgKGJhc2UgMTYpCQlJREsgQ29ycG9yYXRpb24KKwkJCQk2LTctMTAKKwkJCQlDaHVvLVJpbmthbgorCQkJCVlhbWF0byBLYW5hZ2F3YSAyNDItMDAwNworCQkJCUpBUEFOCisKKzAwLTA4LUU2ICAgKGhleCkJCUxpdHRsZWZlZXQKKzAwMDhFNiAgICAgKGJhc2UgMTYpCQlMaXR0bGVmZWV0CisJCQkJMTMwMDAgR3JlZ2cgU3RyZWV0CisJCQkJUG93YXkgQ2FsaWZvcm5pYSA5MjA2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRTcgICAoaGV4KQkJU0hJIENvbnRyb2xTeXN0ZW1zLEx0ZC4KKzAwMDhFNyAgICAgKGJhc2UgMTYpCQlTSEkgQ29udHJvbFN5c3RlbXMsTHRkLgorCQkJCTE5LE5hdHVzaW1hCisJCQkJWW9rb3N1a2EgS2FuYWdhd2EgMjM3LTg1NTUKKwkJCQlKQVBBTgorCiswMC0wOC1FOCAgIChoZXgpCQlFeGNlbCBNYXN0ZXIgTHRkLgorMDAwOEU4ICAgICAoYmFzZSAxNikJCUV4Y2VsIE1hc3RlciBMdGQuCisJCQkJUm9vbSBELCAzL0YuLCBZZXVuZyBZaXUgQ2h1bmcgKE5vLiA4KSBJbmQuIEJsZGcuCisJCQkJMjAgV2FuZyBIb2kgUm9hZAorCQkJCUtvd2xvb24gQmF5IAorCQkJCUhPTkcgS09ORworCiswMC0wOC1FOSAgIChoZXgpCQlOZXh0R2lnCiswMDA4RTkgICAgIChiYXNlIDE2KQkJTmV4dEdpZworCQkJCTk4MjAtQiBUb3duZSBDZW50cmUgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUVBICAgKGhleCkJCU1vdGlvbiBDb250cm9sIEVuZ2luZWVyaW5nLCBJbmMKKzAwMDhFQSAgICAgKGJhc2UgMTYpCQlNb3Rpb24gQ29udHJvbCBFbmdpbmVlcmluZywgSW5jCisJCQkJMTEzODAgV2hpdGUgUm9jayBSb2FkCisJCQkJUmFuY2hvIENvcmRvdmEgQ0EgOTU3NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUVCICAgKGhleCkJCVJPTVdpbiBDby4sTHRkLgorMDAwOEVCICAgICAoYmFzZSAxNikJCVJPTVdpbiBDby4sTHRkLgorCQkJCTQwNiBPbWl5YU9odGFrYSBCbGRnLiAxLTEwMworCQkJCUtpc2hpa2ktY2hvCisJCQkJU2FpdGFtYSAgMzMwLTA4NDMKKwkJCQlKQVBBTgorCiswMC0wOC1FQyAgIChoZXgpCQlPcHRpY2FsIFpvbnUgQ29ycG9yYXRpb24KKzAwMDhFQyAgICAgKGJhc2UgMTYpCQlPcHRpY2FsIFpvbnUgQ29ycG9yYXRpb24KKwkJCQkxNTAyOCBEZWxhbm8gU3RyZWV0CisJCQkJVmFuIE51eXMgQ0EgOTE0MTEtMjAxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRUQgICAoaGV4KQkJU1QmVCBJbnN0cnVtZW50IENvcnAuCiswMDA4RUQgICAgIChiYXNlIDE2KQkJU1QmVCBJbnN0cnVtZW50IENvcnAuCisJCQkJMTYgU2hpbmctR29uZyBSb2FkLCBZdW5nLUt1bmcgSW5kdXN0cmlhbAorCQkJCVl1bmctS3VuZyBUYWluYW4gNzEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOC1FRSAgIChoZXgpCQlMb2dpYyBQcm9kdWN0IERldmVsb3BtZW50CiswMDA4RUUgICAgIChiYXNlIDE2KQkJTG9naWMgUHJvZHVjdCBEZXZlbG9wbWVudAorCQkJCTQxMSBXYXNoaW5ndG9uIEF2ZSBOLiBTdWl0ZSAxMDEKKwkJCQlNaW5uZWFwb2xpcyBNaW5uZXNvdGEgNTU0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUVGICAgKGhleCkJCURJQkFMLFMuQS4KKzAwMDhFRiAgICAgKGJhc2UgMTYpCQlESUJBTCxTLkEuCisJCQkJQXN0aW50emUgS2FsZWEgMjQKKwkJCQlEZXJpbyBWaXpjYXlhIDQ4MTYwCisJCQkJU1BBSU4KKworMDAtMDgtRjAgICAoaGV4KQkJTmV4dCBHZW5lcmF0aW9uIFN5c3RlbXMsIEluYy4KKzAwMDhGMCAgICAgKGJhc2UgMTYpCQlOZXh0IEdlbmVyYXRpb24gU3lzdGVtcywgSW5jLgorCQkJCVBPIEJPWCAzMTIwNQorCQkJCURheXRvbiBPSCA0NTQzNy0wMjA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1GMSAgIChoZXgpCQlWb2x0YWlyZQorMDAwOEYxICAgICAoYmFzZSAxNikJCVZvbHRhaXJlCisJCQkJOSBIYW1lbm9maW0gc3QuCisJCQkJSGVyemVsaWEgIDQ2NzI1CisJCQkJSVNSQUVMCisKKzAwLTA4LUYyICAgKGhleCkJCUMmUyBUZWNobm9sb2d5CiswMDA4RjIgICAgIChiYXNlIDE2KQkJQyZTIFRlY2hub2xvZ3kKKwkJCQlDJlMgVmVudHVyZSBCbGRnLiwgTm9uSHl1bi1Eb25nLAorCQkJCTIyMS0xLCBHYW5nTmFtLUd1CisJCQkJU0VPVUwgIDEzNS04MjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtRjMgICAoaGV4KQkJV0FOWQorMDAwOEYzICAgICAoYmFzZSAxNikJCVdBTlkKKwkJCQlDRUVJIENhcCBBbHBoYQorCQkJCUF2ZW51ZSBkZSBsJ0V1cm9wZSwgQ2xhcGllcnMKKwkJCQlNb250cGVsbGllciBIZXJhdWx0IDM0OTQwCisJCQkJRlJBTkNFCisKKzAwLTA4LUY0ICAgKGhleCkJCUJsdWV0YWtlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDA4RjQgICAgIChiYXNlIDE2KQkJQmx1ZXRha2UgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk2RiwgTm8uIDMzLCBMYW5lIDE1NSwgU2VjLiAzLCBQZWkgU2hlbiBSCisJCQkJU2FlbiBLZW5nIFNoaWFuZywgVGFpcGVpCisJCQkJVGFpcGVpIFRhaXdhbiAyMjIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA4LUY1ICAgKGhleCkJCVlFU1RFQ0hOT0xPR1kgQ28uLEx0ZC4KKzAwMDhGNSAgICAgKGJhc2UgMTYpCQlZRVNURUNITk9MT0dZIENvLixMdGQuCisJCQkJNHRoIEZMIEt5dW5nLUFtIEIvRCAxNTctMjcgU2Ftc3VuZy1Eb25nLAorCQkJCVNlb3VsIDEzNS0wOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDgtRjYgICAoaGV4KQkJU3VtaXRvbW8gRWxlY3RyaWMgU3lzdGVtIFNvbHV0aW9ucyBDby4sTHRkLgorMDAwOEY2ICAgICAoYmFzZSAxNikJCVN1bWl0b21vIEVsZWN0cmljIFN5c3RlbSBTb2x1dGlvbnMgQ28uLEx0ZC4KKwkJCQlzaGltYXlhIDEtMS0zLCBrb25vaGFuYS1rdQorCQkJCU9zYWthIGNpdHkgT1NBS0EgMTEyLTAwMTQKKwkJCQlKQVBBTgorCiswMC0wOC1GNyAgIChoZXgpCQlIaXRhY2hpIEx0ZCwgU2VtaWNvbmR1Y3RvciAmYW1wOyBJbnRlZ3JhdGVkIENpcmN1aXRzIEdyCiswMDA4RjcgICAgIChiYXNlIDE2KQkJSGl0YWNoaSBMdGQsIFNlbWljb25kdWN0b3IgJmFtcDsgSW50ZWdyYXRlZCBDaXJjdWl0cyBHcgorCQkJCTIwLTEgSm9zdWlob24tY2hvdSA1Y2hvbWUKKwkJCQlLb2RhaXJhLXNoaSBUb2t5byAxODctODU4OAorCQkJCUpBUEFOCisKKzAwLTA4LUY4ICAgKGhleCkJCVVUQyBDQ1MKKzAwMDhGOCAgICAgKGJhc2UgMTYpCQlVVEMgQ0NTCisJCQkJNzkxIENvbW1lcmNlIEJsdmQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlCb2NhIFJhdG9uIEZsb3JpZGEgMzM0ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA4LUY5ICAgKGhleCkJCUVtZXJzb24gTmV0d29yayBQb3dlcgorMDAwOEY5ICAgICAoYmFzZSAxNikJCUVtZXJzb24gTmV0d29yayBQb3dlcgorCQkJCTI5MDAgUy4gRGlhYmxvIFdheSBTdWl0ZSAxOTAKKwkJCQlUZW1wZSBBWiA4NTI4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDgtRkEgICAoaGV4KQkJS2FybCBFLkJyaW5rbWFubiBHbWJICiswMDA4RkEgICAgIChiYXNlIDE2KQkJS2FybCBFLkJyaW5rbWFubiBHbWJICisJCQkJRm9lcnN0ZXJ3ZWcgMzYtMzgKKwkJCQlCYXJudHJ1cCBOUlcgRC0zMjY4MworCQkJCUdFUk1BTlkKKworMDAtMDgtRkIgICAoaGV4KQkJU29ub1NpdGUsIEluYy4KKzAwMDhGQiAgICAgKGJhc2UgMTYpCQlTb25vU2l0ZSwgSW5jLgorCQkJCTIxOTE5IDMwdGggRHJpdmUgU0UKKwkJCQlCb3RoZWxsIFdBIDk4MDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOC1GQyAgIChoZXgpCQlHaWdhcGhvdG9uIEluYy4KKzAwMDhGQyAgICAgKGJhc2UgMTYpCQlHaWdhcGhvdG9uIEluYy4KKwkJCQlZT0tPS1VSQSBTSElOREVONDAwCisJCQkJT1lBTUEgVE9USUdJIDMyMy04NTU4CisJCQkJSkFQQU4KKworMDAtMDgtRkQgICAoaGV4KQkJQmx1ZUtvcmVhIENvLiwgTHRkLgorMDAwOEZEICAgICAoYmFzZSAxNikJCUJsdWVLb3JlYSBDby4sIEx0ZC4KKwkJCQkzRiwgc2Vqb25nIEJ1aWxkaW5nLCAzNzktMTUsIFNlb2t5by1Eb25nCisJCQkJTWFwby1LdSwKKwkJCQlTZW91bCAgMTIxLTgzOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOC1GRSAgIChoZXgpCQlVTklLIEMmQyBDby4sTHRkLgorMDAwOEZFICAgICAoYmFzZSAxNikJCVVOSUsgQyZDIENvLixMdGQuCisJCQkJNzA2LTEzIFVOSUsgQkxERyAxN0YKKwkJCQlZRU9LLVNBTSBLQU5HLU5BTSBHVQorCQkJCVNFT1VMICAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA4LUZGICAgKGhleCkJCVRyaWxvZ3kgQ29tbXVuaWNhdGlvbnMgTHRkCiswMDA4RkYgICAgIChiYXNlIDE2KQkJVHJpbG9neSBDb21tdW5pY2F0aW9ucyBMdGQKKwkJCQkyNiBGb2N1cyBXYXkKKwkJCQlXYWx3b3J0aCBFc3RhdGUKKwkJCQlBbmRvdmVyIEhhbXBzaGlyZSBTUDEwIDVOWQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA5LTAwICAgKGhleCkJCVRNVAorMDAwOTAwICAgICAoYmFzZSAxNikJCVRNVAorCQkJCTExIEtpcnlhdCBNYWRhLCBQT0IgNDUxOTkKKwkJCQlKZXJ1c2FsZW0gIDkxNDUwCisJCQkJSVNSQUVMCisKKzAwLTA5LTAxICAgKGhleCkJCVNoZW56aGVuIFNoaXh1bnRvbmcgSW5mb3JtYXRpb24gJiBUZWNobm9saWd5IENvCiswMDA5MDEgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gU2hpeHVudG9uZyBJbmZvcm1hdGlvbiAmIFRlY2hub2xpZ3kgQ28KKwkJCQlSb29tIDQwMyw2MTcgQmxkZztCYWd1YSAxIFJvYWQgLFNoZW56aGVuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAyOQorCQkJCUNISU5BCisKKzAwLTA5LTAyICAgKGhleCkJCVJlZGxpbmUgQ29tbXVuaWNhdGlvbnMgSW5jLgorMDAwOTAyICAgICAoYmFzZSAxNikJCVJlZGxpbmUgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTMwMiBUb3duIENlbnRyZSBCbHZkCisJCQkJU3VpdGUgMTAwCisJCQkJTWFya2hhbSBPTiBMM1IgMEU4CisJCQkJQ0FOQURBCisKKzAwLTA5LTAzICAgKGhleCkJCVBhbmFzYXMsIEluYworMDAwOTAzICAgICAoYmFzZSAxNikJCVBhbmFzYXMsIEluYworCQkJCTE1MzMzIEpvaG4gRiBLZW5uZWR5IEJsdmQsIFN1aXRlIDQwMAorCQkJCUhvdXN0b24gVFggNzcwMzItMjM1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktMDQgICAoaGV4KQkJTU9ORElBTCBlbGVjdHJvbmljCiswMDA5MDQgICAgIChiYXNlIDE2KQkJTU9ORElBTCBlbGVjdHJvbmljCisJCQkJRWdnZWxzYmVyZyA3MworCQkJCUVnZ2Vsc2JlcmcgT2Jlcm9lc3RlcnJlaWNoIDUxNDIKKwkJCQlBVVNUUklBCisKKzAwLTA5LTA1ICAgKGhleCkJCWlURUMgVGVjaG5vbG9naWVzIEx0ZC4KKzAwMDkwNSAgICAgKGJhc2UgMTYpCQlpVEVDIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJMTYwLTEsIEthcmFrLURvbmcsIFNvbmdwYS1HdQorCQkJCVNlb3VsICAxMzgtODA5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTA2ICAgKGhleCkJCUVzdGVlbSBOZXR3b3JrcworMDAwOTA2ICAgICAoYmFzZSAxNikJCUVzdGVlbSBOZXR3b3JrcworCQkJCTRGLCBOby45MDAsIFlpc2hhbiBSb2FkCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTA5LTA3ICAgKGhleCkJCUNocnlzYWxpcyBEZXZlbG9wbWVudAorMDAwOTA3ICAgICAoYmFzZSAxNikJCUNocnlzYWxpcyBEZXZlbG9wbWVudAorCQkJCTgxMjUgUml2ZXIgRHIuIFN1aXRlIDEwMAorCQkJCU1vcnRvbiBHcm92ZSBJTCA2MDA1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktMDggICAoaGV4KQkJVlRlY2ggVGVjaG5vbG9neSBDb3JwLgorMDAwOTA4ICAgICAoYmFzZSAxNikJCVZUZWNoIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkyRi0yLCBOby4gMTI0LCBDaHVuZyBDaGVuZyBSZC4sIFNoaWhsaW4KKwkJCQlUYWlwZWkgIDExMTQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0wOSAgIChoZXgpCQlUZWxlbm9yIENvbm5lY3QgQS9TCiswMDA5MDkgICAgIChiYXNlIDE2KQkJVGVsZW5vciBDb25uZWN0IEEvUworCQkJCUVsbGVnYWFyZHZlaiAyNUwKKwkJCQlTw7huZGVyYm9yZyBBbHMgNjQwMAorCQkJCURFTk1BUksKKworMDAtMDktMEEgICAoaGV4KQkJU25lZEZhciBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwOTBBICAgICAoYmFzZSAxNikJCVNuZWRGYXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxNUZMLiwgTm8uODY2LTIsIEp1bmcgSmVuZyBSZC4sCisJCQkJSnVuZ2hlIFRhaXBlaSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTBCICAgKGhleCkJCU1UTCAgSW5zdHJ1bWVudHMgUExDCiswMDA5MEIgICAgIChiYXNlIDE2KQkJTVRMICBJbnN0cnVtZW50cyBQTEMKKwkJCQlQb3dlciBDb3VydAorCQkJCUx1dG9uIEJlZGZvcmRzaGlyZSBMVTEgM0pKCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDktMEMgICAoaGV4KQkJTWF5ZWthd2EgTWZnLiBDby4gTHRkLgorMDAwOTBDICAgICAoYmFzZSAxNikJCU1heWVrYXdhIE1mZy4gQ28uIEx0ZC4KKwkJCQkxNjgyNSBJSCAzNSBOb3J0aAorCQkJCVNlbG1hIFRleGFzIDc4MTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS0wRCAgIChoZXgpCQlMRUFERVIgRUxFQ1RST05JQ1MgQ09SUC4KKzAwMDkwRCAgICAgKGJhc2UgMTYpCQlMRUFERVIgRUxFQ1RST05JQ1MgQ09SUC4KKwkJCQkyLTYtMzMsIFRTVU5BU0hJTUEtSElHQVNISQorCQkJCUtPSE9LVS1LVSBZT0tPSEFNQSAyMjMtODUwNQorCQkJCUpBUEFOCisKKzAwLTA5LTBFICAgKGhleCkJCUhlbGl4IFRlY2hub2xvZ3kgSW5jLgorMDAwOTBFICAgICAoYmFzZSAxNikJCUhlbGl4IFRlY2hub2xvZ3kgSW5jLgorCQkJCTVGLCBOby4gNiwgU2VjIDEsIEp1bmctU2hpbmcgUmQuLCBXdWd1LVMKKwkJCQlUYWlwZWkgIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktMEYgICAoaGV4KQkJRm9ydGluZXQgSW5jLgorMDAwOTBGICAgICAoYmFzZSAxNikJCUZvcnRpbmV0IEluYy4KKwkJCQkxMDkwIEtpZmVyIFJvYWQKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTEwICAgKGhleCkJCVNpbXBsZSBBY2Nlc3MgSW5jLgorMDAwOTEwICAgICAoYmFzZSAxNikJCVNpbXBsZSBBY2Nlc3MgSW5jLgorCQkJCTYwMCBNY0NhZmZyZXkgU3RyZWV0CisJCQkJU3QtTGF1cmVudCBRdWViZWMgSDRUMU4xCisJCQkJQ0FOQURBCisKKzAwLTA5LTExICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDkxMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTEyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDkxMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTEzICAgKGhleCkJCVN5c3RlbUsgQ29ycG9yYXRpb24KKzAwMDkxMyAgICAgKGJhc2UgMTYpCQlTeXN0ZW1LIENvcnBvcmF0aW9uCisJCQkJMjM4LTkgSGlnYXNoaSAxLCBLaXRhIDE1LCBIaWdhc2hpLWt1CisJCQkJU2FwcG9ybyBIb2trYWlkbyAwNjUtMDAxNQorCQkJCUpBUEFOCisKKzAwLTA5LTE0ICAgKGhleCkJCUNPTVBVVFJPTFMgSU5DLgorMDAwOTE0ICAgICAoYmFzZSAxNikJCUNPTVBVVFJPTFMgSU5DLgorCQkJCTIyMSBCYXJrIERyaXZlCisJCQkJSGFydmV5IExBIDcwMDU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS0xNSAgIChoZXgpCQlDQVMgQ29ycC4KKzAwMDkxNSAgICAgKGJhc2UgMTYpCQlDQVMgQ29ycC4KKwkJCQkjMTksIEdhbmFwLVJpCisJCQkJS3dhbmdndWstTXl1bgorCQkJCVlhbmdqdS1HdW4gS3l1bmdnaS1EbyA0ODItODQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTE2ICAgKGhleCkJCUxpc3RtYW4gSG9tZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMDkxNiAgICAgKGJhc2UgMTYpCQlMaXN0bWFuIEhvbWUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTEwMCBOb3J0aG1lYWRvdyBQYXJrd2F5CisJCQkJU3VpdGUgMTA4CisJCQkJUm9zd2VsbCBHZW9yZ2lhIDMwMDc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS0xNyAgIChoZXgpCQlXRU0gVGVjaG5vbG9neSBJbmMKKzAwMDkxNyAgICAgKGJhc2UgMTYpCQlXRU0gVGVjaG5vbG9neSBJbmMKKwkJCQk4Ri0yLCBObyAzODYsIFNlYyA1IE5hbmppbmcgRWFzdCBSb2FkLgorCQkJCVRhaXBlaSAgMTA1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0xOCAgIChoZXgpCQlTQU1TVU5HIFRFQ0hXSU4gQ08uLExURAorMDAwOTE4ICAgICAoYmFzZSAxNikJCVNBTVNVTkcgVEVDSFdJTiBDTy4sTFRECisJCQkJNDIKKwkJCQlTVU5HSlVET05HCisJCQkJQ0hBTkdXT04gS1lPTkdOQU0gNjQxLTcxNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS0xOSAgIChoZXgpCQlNRFMgR2F0ZXdheXMKKzAwMDkxOSAgICAgKGJhc2UgMTYpCQlNRFMgR2F0ZXdheXMKKwkJCQlDbG9uc2hhdWdoIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJQ2xvbnNoYXVnaAorCQkJCUR1YmxpbiAxNyAgCisJCQkJSVJFTEFORAorCiswMC0wOS0xQSAgIChoZXgpCQlNYWNhdCBPcHRpY3MgJiBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMDkxQSAgICAgKGJhc2UgMTYpCQlNYWNhdCBPcHRpY3MgJiBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkxNS9GLiwgTWFjYXQgQ2VudGVyLCBOby4gNjMgTWFjYXQgUm9hZAorCQkJCUh1aXpob3UgR3Vhbmdkb25nIDUxNjAwMQorCQkJCUNISU5BCisKKzAwLTA5LTFCICAgKGhleCkJCURpZ2l0YWwgR2VuZXJhdGlvbiBJbmMuCiswMDA5MUIgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBHZW5lcmF0aW9uIEluYy4KKwkJCQk1RiwgSG8tU2FtIEIvRCwgIzMwLTMsIEJvbmdjaHVuNi1Eb25nCisJCQkJS3dhbmFrLUt1LCBTZW91bCAxNTEtMDg5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTFDICAgKGhleCkJCUNhY2hlVmlzaW9uLCBJbmMKKzAwMDkxQyAgICAgKGJhc2UgMTYpCQlDYWNoZVZpc2lvbiwgSW5jCisJCQkJMTk5MCBDb25jb3Vyc2UgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktMUQgICAoaGV4KQkJUHJvdGVhbSBDb21wdXRlciBDb3Jwb3JhdGlvbgorMDAwOTFEICAgICAoYmFzZSAxNikJCVByb3RlYW0gQ29tcHV0ZXIgQ29ycG9yYXRpb24KKwkJCQk3RiwgTm8uIDE1Ny4gU2VjdGlvbiAyIFRhLVR1bmcgUmQKKwkJCQlIc2ktQ2hpaCBUYWlwZWkgSHNpZW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0xRSAgIChoZXgpCQlGaXJzdGVjaCBUZWNobm9sb2d5IENvcnAuCiswMDA5MUUgICAgIChiYXNlIDE2KQkJRmlyc3RlY2ggVGVjaG5vbG9neSBDb3JwLgorCQkJCThmbC4sTm8uMjY3LHNlY3Rpb24gNCxIc2luLVlpIFJkLiAsRGEtQW4KKwkJCQlUYWlwZWkgIDEwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktMUYgICAoaGV4KQkJQSZhbXA7RCBDby4sIEx0ZC4KKzAwMDkxRiAgICAgKGJhc2UgMTYpCQlBJmFtcDtEIENvLiwgTHRkLgorCQkJCTEtMjQzIEFzYWhpCisJCQkJS2l0YW1vdG8tc2hpIFNhaXRhbWEgMzY0LTg1ODUKKwkJCQlKQVBBTgorCiswMC0wOS0yMCAgIChoZXgpCQlFcG9YIENPTVBVVEVSIENPLixMVEQuCiswMDA5MjAgICAgIChiYXNlIDE2KQkJRXBvWCBDT01QVVRFUiBDTy4sTFRELgorCQkJCTEwdGggRmxvb3IsIE5vLjM0NixDaHVuZyBTYW4gUmQuLFNlYy4yLAorCQkJCUNodW5nIEhvIENpdHksVGFpcGVpIEhzaWVuICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTIxICAgKGhleCkJCVBsYW5tZWNhIE95CiswMDA5MjEgICAgIChiYXNlIDE2KQkJUGxhbm1lY2EgT3kKKwkJCQlBc2VudGFqYW5rYXR1IDYKKwkJCQlIRUxTSU5LSSAgMDA4MTAgSEVMU0lOCisJCQkJRklOTEFORAorCiswMC0wOS0yMiAgIChoZXgpCQlUU1QgQmlvbWV0cmljcyBHbWJICiswMDA5MjIgICAgIChiYXNlIDE2KQkJVFNUIEJpb21ldHJpY3MgR21iSAorCQkJCU1vZWhsc3RyLiAzOQorCQkJCTgxNjc1IE11bmljaCAKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LTIzICAgKGhleCkJCUhlYW1hbiBTeXN0ZW0gQ28uLCBMdGQKKzAwMDkyMyAgICAgKGJhc2UgMTYpCQlIZWFtYW4gU3lzdGVtIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgTTYsTmF0aW9uYWwgSGktdGVjaCAmIEluZHVzCisJCQkJQ2hhbmdzaGEgSHVuYW4gUHJvdmluY2UgNDEwMDEzCisJCQkJQ0hJTkEKKworMDAtMDktMjQgICAoaGV4KQkJVGVsZWJhdSBHbWJICiswMDA5MjQgICAgIChiYXNlIDE2KQkJVGVsZWJhdSBHbWJICisJCQkJQW0gS3JhZWhlbmJlcmcgMQorCQkJCVdhbGRlY2stU2FjaHNlbmhhdXNlbiBHZXJtYW55IDM0NTEzCisJCQkJR0VSTUFOWQorCiswMC0wOS0yNSAgIChoZXgpCQlWU04gU3lzdGVtZW4gQlYKKzAwMDkyNSAgICAgKGJhc2UgMTYpCQlWU04gU3lzdGVtZW4gQlYKKwkJCQlLZWl6ZXJzdmVsZCA4MworCQkJCVZlbnJheSBMaW1idXJnIDU4MDMgQVAKKwkJCQlORVRIRVJMQU5EUworCiswMC0wOS0yNiAgIChoZXgpCQlZT0RBIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDA5MjYgICAgIChiYXNlIDE2KQkJWU9EQSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTJGLCBOby4zLTEsIEluZHVzdHJ5IEVhc3QgUm9hZCBJWCwKKwkJCQlIc2luY2h1IFNjaWVuY2UgQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktMjcgICAoaGV4KQkJVE9ZT0tFSUtJIENPLixMVEQuCiswMDA5MjcgICAgIChiYXNlIDE2KQkJVE9ZT0tFSUtJIENPLixMVEQuCisJCQkJMTctMTAtMyxTaGltb3Npbmp5bworCQkJCUhpZ2FzaGl5b2RvZ2F3YS1LdQorCQkJCU9zYWthICA1MzMtMDAyMQorCQkJCUpBUEFOCisKKzAwLTA5LTI4ICAgKGhleCkJCVRlbGVjb3JlCiswMDA5MjggICAgIChiYXNlIDE2KQkJVGVsZWNvcmUKKwkJCQkxODAwIE5vcnRoIEdsZW52aWxsZQorCQkJCVN1aXRlIDExNgorCQkJCVJpY2hhcmRzb24gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTI5ICAgKGhleCkJCVNhbnlvIEluZHVzdHJpZXMgKFVLKSBMaW1pdGVkCiswMDA5MjkgICAgIChiYXNlIDE2KQkJU2FueW8gSW5kdXN0cmllcyAoVUspIExpbWl0ZWQKKwkJCQlTY2hvb2wgUm9hZAorCQkJCUxvd2VzdG9mdCBTdWZmb2xrIE5SMzMgOU5BCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDktMkEgICAoaGV4KQkJTVlURUNTIENvLixMdGQuCiswMDA5MkEgICAgIChiYXNlIDE2KQkJTVlURUNTIENvLixMdGQuCisJCQkJMS0xMi0zOSwgVGFpc2hpZG91CisJCQkJU2V0YWdheWEta3UgVG9reW8gMTU0LTAwMDQKKwkJCQlKQVBBTgorCiswMC0wOS0yQiAgIChoZXgpCQlpUXN0b3IgTmV0d29ya3MsIEluYy4KKzAwMDkyQiAgICAgKGJhc2UgMTYpCQlpUXN0b3IgTmV0d29ya3MsIEluYy4KKwkJCQkyMDAxIENvcnBvcmF0ZSBDZW50ZXIgRHJpdmUKKwkJCQlOZXdidXJ5IFBhcmsgQ0EgOTEzMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTJDICAgKGhleCkJCUhpdHBvaW50IEluYy4KKzAwMDkyQyAgICAgKGJhc2UgMTYpCQlIaXRwb2ludCBJbmMuCisJCQkJTm8uNywgRmVubGlhbywgMm5kIEluZHVzdHJpYWwgUGFyaywgTGluaworCQkJCVRhaXBlaSAgMjQ0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0yRCAgIChoZXgpCQlIVEMgQ29ycG9yYXRpb24KKzAwMDkyRCAgICAgKGJhc2UgMTYpCQlIVEMgQ29ycG9yYXRpb24KKwkJCQlOby4yMyBYaW5naHVhIFJvYWQsCisJCQkJVGFveXVhbiBDaXR5LAorCQkJCVRhb3l1YW4gQ291bnR5ICAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0yRSAgIChoZXgpCQlCJlRlY2ggU3lzdGVtIEluYy4KKzAwMDkyRSAgICAgKGJhc2UgMTYpCQlCJlRlY2ggU3lzdGVtIEluYy4KKwkJCQkjNjAxLCBTZW8tSnVuZyBCL0QsIDgzMC0yNCwgWW91a3NhbS1Eb25nCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS0yRiAgIChoZXgpCQlBa29tIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMDkyRiAgICAgKGJhc2UgMTYpCQlBa29tIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk1RiwgTm8uIDMyMywgWWFuZy1HdWFuZyBTdC4KKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktMzAgICAoaGV4KQkJQWVyb0NvbmNpZXJnZSBJbmMuCiswMDA5MzAgICAgIChiYXNlIDE2KQkJQWVyb0NvbmNpZXJnZSBJbmMuCisJCQkJMTAyNTYgWW9uZ2UgU3QuCisJCQkJUmljaG1vbmQgSGlsbCBPbnQuIEw0QyAzQjcKKwkJCQlDQU5BREEKKworMDAtMDktMzEgICAoaGV4KQkJRnV0dXJlIEludGVybmV0LCBJbmMuCiswMDA5MzEgICAgIChiYXNlIDE2KQkJRnV0dXJlIEludGVybmV0LCBJbmMuCisJCQkJMTEndGggRmxvb3IgU2FtaG9tb29sc2FuIEJsZGcsIEIvQmxkZywgMgorCQkJCVlhbmdqZWEgRG9uZywgU2VvY2hvIEt1CisJCQkJU2VvdWwgS3l1bmctS2kgMTM3LTEzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS0zMiAgIChoZXgpCQlPbW5pbHV4CiswMDA5MzIgICAgIChiYXNlIDE2KQkJT21uaWx1eAorCQkJCTEzMCBXLiBVbmlvbiBTdC4KKwkJCQlQYXNhZGVuYSBDQSA5MTEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktMzMgICAoaGV4KQkJT3BoaXQgQ28uTHRkLgorMDAwOTMzICAgICAoYmFzZSAxNikJCU9waGl0IENvLkx0ZC4KKwkJCQkzRi4gU3VudGVjaG5vdmlsLCA1LTI3ICBNYW5ncG8tRG9uZyAsCisJCQkJWWVvbmd0b25nLUd1LCBTdXdvbi1DaXR5LCAKKwkJCQlLeXVuZ2tpLURvICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTM0ICAgKGhleCkJCURyZWFtLU11bHRpbWVkaWEtVHYgR21iSAorMDAwOTM0ICAgICAoYmFzZSAxNikJCURyZWFtLU11bHRpbWVkaWEtVHYgR21iSAorCQkJCUJydWVja3N0ci4gMjkKKwkJCQlNZW5kZW4gU2F1ZXJsYW5kIDU4NzA2CisJCQkJR0VSTUFOWQorCiswMC0wOS0zNSAgIChoZXgpCQlTYW5kdmluZSBJbmNvcnBvcmF0ZWQKKzAwMDkzNSAgICAgKGJhc2UgMTYpCQlTYW5kdmluZSBJbmNvcnBvcmF0ZWQKKwkJCQkxNzAgQ29sdW1iaWEgU3QuIFcuCisJCQkJV2F0ZXJsb28gT04gTjJMIDNMMworCQkJCUNBTkFEQQorCiswMC0wOS0zNiAgIChoZXgpCQlJcGV0cm9uaWsgR21iSCAmIENvLktHCiswMDA5MzYgICAgIChiYXNlIDE2KQkJSXBldHJvbmlrIEdtYkggJiBDby5LRworCQkJCUphZWdlcndlZyAxCisJCQkJQmFkZW4tQmFkZW4gQmFkZW4tV3VlcnR0ZW1iZXJnIDc2NTMyCisJCQkJR0VSTUFOWQorCiswMC0wOS0zNyAgIChoZXgpCQlJbnZlbnRlYyBBcHBsaWFuY2UgQ29ycAorMDAwOTM3ICAgICAoYmFzZSAxNikJCUludmVudGVjIEFwcGxpYW5jZSBDb3JwCisJCQkJMTEzLCBXdWd1bmcgMSBSRC4sIFd1S3UgSW5kdXN0cmlhbCBuUGFyaworCQkJCVd1S3UgU2hpYW5nLCBUYWlwZWkgSHNpZW4gMjQ4LCBUYWl3YW4gLAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS0zOCAgIChoZXgpCQlBbGxvdCBDb21tdW5pY2F0aW9ucworMDAwOTM4ICAgICAoYmFzZSAxNikJCUFsbG90IENvbW11bmljYXRpb25zCisJCQkJSGFuYWdhciAyMiBzdCcKKwkJCQlIb2QtSGFzaGFyb24gIDQ1ODAwCisJCQkJSVNSQUVMCisKKzAwLTA5LTM5ICAgKGhleCkJCVNoaWJhU29rdSBDby4sTHRkLgorMDAwOTM5ICAgICAoYmFzZSAxNikJCVNoaWJhU29rdSBDby4sTHRkLgorCQkJCTYtOCBTaGluYmFzaGkgNC1jaG9tZQorCQkJCU1pbmF0by1rdSBUb2t5byAxMDUtMDAwNAorCQkJCUpBUEFOCisKKzAwLTA5LTNBICAgKGhleCkJCU1vbGV4IEZpYmVyIE9wdGljcworMDAwOTNBICAgICAoYmFzZSAxNikJCU1vbGV4IEZpYmVyIE9wdGljcworCQkJCTUyMjQgS2F0cmluZSBBdmVudWUKKwkJCQlEb3duZXJzIEdyb3ZlIElMIDYwNTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS0zQiAgIChoZXgpCQlIWVVOREFJIE5FVFdPUktTIElOQy4KKzAwMDkzQiAgICAgKGJhc2UgMTYpCQlIWVVOREFJIE5FVFdPUktTIElOQy4KKwkJCQlTQU4gMTM2LTEgIEFNSS1SSSAgQlVCQUxfRVVQCisJCQkJSUNIT04gS1lVTkdLSS1ETyA0NjctNzAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTNDICAgKGhleCkJCUphY3F1ZXMgVGVjaG5vbG9naWVzIFAvTAorMDAwOTNDICAgICAoYmFzZSAxNikJCUphY3F1ZXMgVGVjaG5vbG9naWVzIFAvTAorCQkJCTI2OCBNb250YWd1ZSBSZAorCQkJCVdlc3QgRW5kIFF1ZWVuc2xhbmQgNDEwMQorCQkJCUFVU1RSQUxJQQorCiswMC0wOS0zRCAgIChoZXgpCQlOZXdpc3lzLEluYy4KKzAwMDkzRCAgICAgKGJhc2UgMTYpCQlOZXdpc3lzLEluYy4KKwkJCQk2MjAwIEJyaWRnZXBvaW50IFBhcmt3YXkKKwkJCQlCdWlkaW5nIElWLCBTdWl0ZSAxMDAKKwkJCQlBdXN0aW4gVFggNzg3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTNFICAgKGhleCkJCUMmSSBUZWNobm9sb2dpZXMKKzAwMDkzRSAgICAgKGJhc2UgMTYpCQlDJkkgVGVjaG5vbG9naWVzCisJCQkJIzMwMyBLd2FuYm8gUGxhemEgQi9ELCAxNDY3LTIKKwkJCQlLd2FueWFuZy1Eb25nLCBEb25nYW4tS3UKKwkJCQlBbnlhbmctU2hpIEt5dW5nZ2ktRG8gNDMxLTgwOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS0zRiAgIChoZXgpCQlEb3VibGUtV2luIEVudGVycGlyc2UgQ08uLCBMVEQKKzAwMDkzRiAgICAgKGJhc2UgMTYpCQlEb3VibGUtV2luIEVudGVycGlyc2UgQ08uLCBMVEQKKwkJCQlOTy4zMDAsIFNlYyAxLCBDaHVuZyBGZW5nIFJkLgorCQkJCVBpbmcgQ2hlbiBDaXR5IFRhb3l1YW4gSHNpZW4gMzI0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS00MCAgIChoZXgpCQlBR0ZFTyBHbWJIICYgQ28uIEtHCiswMDA5NDAgICAgIChiYXNlIDE2KQkJQUdGRU8gR21iSCAmIENvLiBLRworCQkJCVBvc3RmYWNoIDE0MDEwNworCQkJCUJpZWxlZmVsZCBSaGluZSBXZXN0ZmFsaWEgMzM2MjEKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LTQxICAgKGhleCkJCUFsbGllZCBUZWxlc2lzIEsuSy4KKzAwMDk0MSAgICAgKGJhc2UgMTYpCQlBbGxpZWQgVGVsZXNpcyBLLksuCisJCQkJVGVjaG5pY2FsIENlbnRlci9Oby4yIFRPQyBCbGRnLgorCQkJCTctMjEtMTEgTmlzaGktR290YW5kYQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAzMQorCQkJCUpBUEFOCisKKzAwLTA5LTQyICAgKGhleCkJCVdpcmVsZXNzIFRlY2hub2xvZ2llcywgSW5jCiswMDA5NDIgICAgIChiYXNlIDE2KQkJV2lyZWxlc3MgVGVjaG5vbG9naWVzLCBJbmMKKwkJCQlPaG1vcmkgTWl0c3ViaXNoaSBCbGRnLiwgN0YsIFNhbm5vaCAyLWNob21lCisJCQkJT2h0YS1rdQorCQkJCVRva3lvICAxNDMtMDAyMworCQkJCUpBUEFOCisKKzAwLTA5LTQzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDk0MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTQ0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDk0NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTQ1ICAgKGhleCkJCVBhbG1taWNybyBDb21tdW5pY2F0aW9ucyBJbmMKKzAwMDk0NSAgICAgKGJhc2UgMTYpCQlQYWxtbWljcm8gQ29tbXVuaWNhdGlvbnMgSW5jCisJCQkJNjMwIEFsZGVyIERyCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTQ2ICAgKGhleCkJCUNsdXN0ZXIgTGFicyBHbWJICiswMDA5NDYgICAgIChiYXNlIDE2KQkJQ2x1c3RlciBMYWJzIEdtYkgKKwkJCQlEYXVlcndhbGR3ZWcgMQorCQkJCTE0MDU1IEJlcmxpbgorCQkJCUJlcmxpbiBCZXJsaW4gMTQwNTUKKwkJCQlHRVJNQU5ZCisKKzAwLTA5LTQ3ICAgKGhleCkJCUF6dGVrLCBJbmMuCiswMDA5NDcgICAgIChiYXNlIDE2KQkJQXp0ZWssIEluYy4KKwkJCQkyMyBTcGVjdHJ1bSBQb2ludGUgIzIwOQorCQkJCUxha2UgRm9yZXN0IENhbGlmb3JuaWEgOTI2MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTQ4ICAgKGhleCkJCVZpc3RhIENvbnRyb2wgU3lzdGVtcywgQ29ycC4KKzAwMDk0OCAgICAgKGJhc2UgMTYpCQlWaXN0YSBDb250cm9sIFN5c3RlbXMsIENvcnAuCisJCQkJMjAwMSBXZXN0IE1lbGluZGEgTGFuZQorCQkJCVBob2VuaXggQVogODUwMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTQ5ICAgKGhleCkJCUdseXBoIFRlY2hub2xvZ2llcyBJbmMuCiswMDA5NDkgICAgIChiYXNlIDE2KQkJR2x5cGggVGVjaG5vbG9naWVzIEluYy4KKwkJCQk3MzUgVy4gQ2xpbnRvbiBTdHJlZXQKKwkJCQlJdGhhY2EgTlkgMTQ4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTRBICAgKGhleCkJCUhvbWVuZXQgQ29tbXVuaWNhdGlvbnMKKzAwMDk0QSAgICAgKGJhc2UgMTYpCQlIb21lbmV0IENvbW11bmljYXRpb25zCisJCQkJSW5ub3ZhdGlvbiBDZW50cmUKKwkJCQlOYXRpb25hbCBUZWNobm9sb2dpY2FsIFBhcmsKKwkJCQlMaW1lcmljayAgCisJCQkJSVJFTEFORAorCiswMC0wOS00QiAgIChoZXgpCQlGaWxsRmFjdG9yeSBOVgorMDAwOTRCICAgICAoYmFzZSAxNikJCUZpbGxGYWN0b3J5IE5WCisJCQkJU2NoYWxpZW5ob2V2ZWRyZWVmIDIwQgorCQkJCUItMjgwMCBNZWNoZWxlbiAgCisJCQkJQkVMR0lVTQorCiswMC0wOS00QyAgIChoZXgpCQlDb21tdW5pY2F0aW9uIFdlYXZlciBDby4sTHRkLgorMDAwOTRDICAgICAoYmFzZSAxNikJCUNvbW11bmljYXRpb24gV2VhdmVyIENvLixMdGQuCisJCQkJMX4zIENPV0VBVkVSIEIvRCA0NDYtMTksCisJCQkJU0VPR1lPLURPTkcsIE1BUE8tR1UKKwkJCQlTRU9VTCAgMTIxLTg0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS00RCAgIChoZXgpCQlCcmFpbnRyZWUgQ29tbXVuaWNhdGlvbnMgUHR5IEx0ZAorMDAwOTREICAgICAoYmFzZSAxNikJCUJyYWludHJlZSBDb21tdW5pY2F0aW9ucyBQdHkgTHRkCisJCQkJTGV2ZWwgMSwgNiBDb3JkZWxpYSBTdAorCQkJCVNvdXRoIEJyaXNiYW5lIFFMRCA0MTAxCisJCQkJQVVTVFJBTElBCisKKzAwLTA5LTRFICAgKGhleCkJCUJBUlRFQ0ggU1lTVEVNUyBJTlRFUk5BVElPTkFMLCBJTkMKKzAwMDk0RSAgICAgKGJhc2UgMTYpCQlCQVJURUNIIFNZU1RFTVMgSU5URVJOQVRJT05BTCwgSU5DCisJCQkJMjUxIE5ham9sZXMgUmQgU3VpdGUgQQorCQkJCU1pbGxlcnN2aWxsZSBNYXJ5bGFuZCAyMTEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNEYgICAoaGV4KQkJZWxtZWd0IEdtYkggJiBDby4gS0cKKzAwMDk0RiAgICAgKGJhc2UgMTYpCQllbG1lZ3QgR21iSCAmIENvLiBLRworCQkJCUtvbW11bmlrYXRpb25zdGVjaG5paworCQkJCVZvZWhydW1lciBTdHIuIDMwCisJCQkJUGVpbmUgTmllZGVyc2FjaHNlbiBELTMxMjI4CisJCQkJR0VSTUFOWQorCiswMC0wOS01MCAgIChoZXgpCQlJbmRlcGVuZGVudCBTdG9yYWdlIENvcnBvcmF0aW9uCiswMDA5NTAgICAgIChiYXNlIDE2KQkJSW5kZXBlbmRlbnQgU3RvcmFnZSBDb3Jwb3JhdGlvbgorCQkJCTYyNzMgTW9uYXJjaCBQYXJrIFBsYWNlCisJCQkJTml3b3QgQ29sb3JhZG8gODA1MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTUxICAgKGhleCkJCUFwb2dlZSBJbWFnaW5nIFN5c3RlbXMKKzAwMDk1MSAgICAgKGJhc2UgMTYpCQlBcG9nZWUgSW1hZ2luZyBTeXN0ZW1zCisJCQkJMTUxIFN1bnJpc2UgQXZlbnVlCisJCQkJU3VpdGUgOTAyCisJCQkJUm9zZXZpbGxlIENBIDk1NjYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS01MiAgIChoZXgpCQlBdWVyc3dhbGQgR21iSCAmIENvLiBLRworMDAwOTUyICAgICAoYmFzZSAxNikJCUF1ZXJzd2FsZCBHbWJIICYgQ28uIEtHCisJCQkJVm9yIGRlbiBHcmFzaG9lZmVuIDIyCisJCQkJQ3JlbWxpbmdlbiBOaWVkZXJzYWNoc2VuIDM4MTYyCisJCQkJR0VSTUFOWQorCiswMC0wOS01MyAgIChoZXgpCQlMaW5rYWdlIFN5c3RlbSBJbnRlZ3JhdGlvbiBDby5MdGQuCiswMDA5NTMgICAgIChiYXNlIDE2KQkJTGlua2FnZSBTeXN0ZW0gSW50ZWdyYXRpb24gQ28uTHRkLgorCQkJCTQwIEdvbmdqaWFuZmFuZworCQkJCVNvdXRoIFpob25nc2hhbiBSb2FkCisJCQkJTmFuamluZyBKaWFuZ3N1IDIxMDAwNgorCQkJCUNISU5BCisKKzAwLTA5LTU0ICAgKGhleCkJCUFNaVQgc3BvbC4gcy4gci4gby4KKzAwMDk1NCAgICAgKGJhc2UgMTYpCQlBTWlUIHNwb2wuIHMuIHIuIG8uCisJCQkJTmFza292ZSAzCisJCQkJMTUwIDAwIFByYWhhIDUgCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMDktNTUgICAoaGV4KQkJWW91bmcgR2VuZXJhdGlvbiBJbnRlcm5hdGlvbmFsIENvcnAuCiswMDA5NTUgICAgIChiYXNlIDE2KQkJWW91bmcgR2VuZXJhdGlvbiBJbnRlcm5hdGlvbmFsIENvcnAuCisJCQkJNEYuLE5vLiAxODgsIE1pbmNodWFuIFJkLiwgU2hpbmRpYW4gQ2l0eQorCQkJCVNoaW5kaWFuICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTU2ICAgKGhleCkJCU5ldHdvcmsgU3lzdGVtcyBHcm91cCwgTHRkLiAoTlNHKQorMDAwOTU2ICAgICAoYmFzZSAxNikJCU5ldHdvcmsgU3lzdGVtcyBHcm91cCwgTHRkLiAoTlNHKQorCQkJCTM5IEtpcnBpY2huYXlhIFN0LiwgU3VpdGUgMTMwMgorCQkJCU1vc2NvdyAgMTA1MTg3CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTA5LTU3ICAgKGhleCkJCVN1cGVyY2FsbGVyLCBJbmMuCiswMDA5NTcgICAgIChiYXNlIDE2KQkJU3VwZXJjYWxsZXIsIEluYy4KKwkJCQkxMDEgU2FnaW5hdyBEcml2ZQorCQkJCVJlZHdvb2QgQ2l0eSBDQSA5NDA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNTggICAoaGV4KQkJSU5URUxORVQgUy5BLgorMDAwOTU4ICAgICAoYmFzZSAxNikJCUlOVEVMTkVUIFMuQS4KKwkJCQlGUkFOQ0lTQ08gT0xJVkFOIEJBWUxFLCA0CisJCQkJWkFSQUdPWkEgIDUwMDE1CisJCQkJU1BBSU4KKworMDAtMDktNTkgICAoaGV4KQkJU2l0ZWNzb2Z0CiswMDA5NTkgICAgIChiYXNlIDE2KQkJU2l0ZWNzb2Z0CisJCQkJN3RoIEd1Z3UgQkQuIDE0NS0xOCBTYW1zdW5nLURvbmcKKwkJCQlLYW5nTmFtLUd1IFNlb3VsIEtvcmVhCisJCQkJU2VvdWwgU2VvdWwgMTM1LTA5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS01QSAgIChoZXgpCQlSQUNFV09PRCBURUNITk9MT0dZCiswMDA5NUEgICAgIChiYXNlIDE2KQkJUkFDRVdPT0QgVEVDSE5PTE9HWQorCQkJCTVGLTIsTk8uNixDSFVORy1IU0lORyBSRC4sU0VDLjEsV1UtR1UKKwkJCQlUQUlQRUkgIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktNUIgICAoaGV4KQkJTmV0Z2VhciwgSW5jLgorMDAwOTVCICAgICAoYmFzZSAxNikJCU5ldGdlYXIsIEluYy4KKwkJCQk0NTAwIEdyZWF0IEFtZXJpY2EgUGFya3dheQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS01QyAgIChoZXgpCQlQaGlsaXBzIE1lZGljYWwgU3lzdGVtcyAtIENhcmRpYWMgYW5kIE1vbml0b3JpbmcgU3lzdGVtcyAoQ00KKzAwMDk1QyAgICAgKGJhc2UgMTYpCQlQaGlsaXBzIE1lZGljYWwgU3lzdGVtcyAtIENhcmRpYWMgYW5kIE1vbml0b3JpbmcgU3lzdGVtcyAoQ00KKwkJCQkzMDAwIE1pbnV0ZW1hbiBSb2FkCisJCQkJQW5kb3ZlciBNYXNzYWNodXNldHRzIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS01RCAgIChoZXgpCQlEaWFsb2d1ZSBUZWNobm9sb2d5IENvcnAuCiswMDA5NUQgICAgIChiYXNlIDE2KQkJRGlhbG9ndWUgVGVjaG5vbG9neSBDb3JwLgorCQkJCTEwRiwgTm8uIDE5NiwgU2VjLiAyLCBKdW5nc2hpbmcgUmQuCisJCQkJU2hpbmRpYW4gQ2l0eSBUYWlwZWkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS01RSAgIChoZXgpCQlNYXNzdGVjaCBHcm91cCBJbmMuCiswMDA5NUUgICAgIChiYXNlIDE2KQkJTWFzc3RlY2ggR3JvdXAgSW5jLgorCQkJCTIgRWFzdCBCZWF2ZXIgQ3JlZWsgUmQuCisJCQkJQnVpbGRpbmcgMworCQkJCVJpY2htb25kIEhpbGwgT250YXJpbyBMNEIgMk4zCisJCQkJQ0FOQURBCisKKzAwLTA5LTVGICAgKGhleCkJCVRlbGVieXRlLCBJbmMuCiswMDA5NUYgICAgIChiYXNlIDE2KQkJVGVsZWJ5dGUsIEluYy4KKwkJCQkyNzAgUHVsYXNraSBSb2FkCisJCQkJR3JlZW5sYXduIE5ZIDExNzQwLTE2MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTYwICAgKGhleCkJCVlPWkFOIEluYy4KKzAwMDk2MCAgICAgKGJhc2UgMTYpCQlZT1pBTiBJbmMuCisJCQkJWU9aQU4gQmxkLiwzLTUtMTgsIEtpdGF6YXdhCisJCQkJU2V0YWdheWEta3UgVG9reW8gMTU1LTAwMzEKKwkJCQlKQVBBTgorCiswMC0wOS02MSAgIChoZXgpCQlTd2l0Y2hnZWFyIGFuZCBJbnN0cnVtZW50YXRpb24gTHRkCiswMDA5NjEgICAgIChiYXNlIDE2KQkJU3dpdGNoZ2VhciBhbmQgSW5zdHJ1bWVudGF0aW9uIEx0ZAorCQkJCVJpcGxleSBSb2FkCisJCQkJQnJhZGZvcmQgV2VzdCBZb3Jrc2hpcmUgQkQ0IDdFSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA5LTYyICAgKGhleCkJCVNvbml0b3IgVGVjaG5vbG9naWVzIEFTCiswMDA5NjIgICAgIChiYXNlIDE2KQkJU29uaXRvciBUZWNobm9sb2dpZXMgQVMKKwkJCQlGb3Jza25pbmdzdmVpZW4gMUIKKwkJCQlQLk8uIEJveCAxMjQKKwkJCQlPc2xvIEJsaW5kZXJuIE4tMDEzNAorCQkJCU5PUldBWQorCiswMC0wOS02MyAgIChoZXgpCQlEb21pbmlvbiBMYXNlcmNvbSBJbmMuCiswMDA5NjMgICAgIChiYXNlIDE2KQkJRG9taW5pb24gTGFzZXJjb20gSW5jLgorCQkJCTE3MTYgQnJpYXJjcmVzdCBEci4gU3RlLiAyMTAKKwkJCQlCcnlhbiBUWCA3NzgwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNjQgICAoaGV4KQkJSGktVGVjaG5pcXVlcywgSW5jLgorMDAwOTY0ICAgICAoYmFzZSAxNikJCUhpLVRlY2huaXF1ZXMsIEluYy4KKwkJCQkyNTE1IEZyYXppZXIgQXZlLgorCQkJCU1hZGlzb24gV0kgNTM3MTMtMTUwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNjUgICAoaGV4KQkJSHl1bkp1IENvbXB1dGVyIENvLiwgTHRkLgorMDAwOTY1ICAgICAoYmFzZSAxNikJCUh5dW5KdSBDb21wdXRlciBDby4sIEx0ZC4KKwkJCQkyMjItMjIsIEh5dW5qdSBCL0QsIEd1cm8gMyBEb25nLCBHdXJvZ3UKKwkJCQlTZW91bCAgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS02NiAgIChoZXgpCQlUaGFsZXMgTmF2aWdhdGlvbgorMDAwOTY2ICAgICAoYmFzZSAxNikJCVRoYWxlcyBOYXZpZ2F0aW9uCisJCQkJNDcxIEVsIENhbWlubyBSZWFsCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTY3ICAgKGhleCkJCVRhY2h5b24sIEluYworMDAwOTY3ICAgICAoYmFzZSAxNikJCVRhY2h5b24sIEluYworCQkJCTkzMzkgQ2Fycm9sbCBQYXJrIERyaXZlCisJCQkJU3VpdGUgMTUwCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS02OCAgIChoZXgpCQlURUNITk9WRU5UVVJFLCBJTkMuCiswMDA5NjggICAgIChiYXNlIDE2KQkJVEVDSE5PVkVOVFVSRSwgSU5DLgorCQkJCVAuIE8uIEJveCA1NjQxCisJCQkJUGFzYWRlbmEgVGV4YXMgNzc1MDgtNTY0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNjkgICAoaGV4KQkJTWVyZXQgT3B0aWNhbCBDb21tdW5pY2F0aW9ucworMDAwOTY5ICAgICAoYmFzZSAxNikJCU1lcmV0IE9wdGljYWwgQ29tbXVuaWNhdGlvbnMKKwkJCQkxMDA3MCBNZXNhIFJpbSBSb2FkCisJCQkJU2FuIERpZWdvIENhbGlmb3JuaWEgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTZBICAgKGhleCkJCUNsb3ZlcmxlYWYgQ29tbXVuaWNhdGlvbnMgSW5jLgorMDAwOTZBICAgICAoYmFzZSAxNikJCUNsb3ZlcmxlYWYgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTIgV2lsbG93IFN0LgorCQkJCVNvdXRoYm9yb3VnaCBNQSAwMTc0NS0xMDI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS02QiAgIChoZXgpCQlJQk0gQ29ycAorMDAwOTZCICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMzAzOSBFIENvcm53YWxsaXMgUm9hZAorCQkJCVAuTy4gQk9YIDEyMTk1CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0yMTk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS02QyAgIChoZXgpCQlJbWVkaWEgU2VtaWNvbmR1Y3RvciBDb3JwLgorMDAwOTZDICAgICAoYmFzZSAxNikJCUltZWRpYSBTZW1pY29uZHVjdG9yIENvcnAuCisJCQkJNDk4OCBHcmVhdCBBbWVyaWNhIFBrd3kuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTZEICAgKGhleCkJCVBvd2VybmV0IFRlY2hub2xvZ2llcyBDb3JwLgorMDAwOTZEICAgICAoYmFzZSAxNikJCVBvd2VybmV0IFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCTM3MS01MSwgR2FzYW4tRG9uZyBLdW1jaG9uLUd1LAorCQkJCVNlb3VsICAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTZFICAgKGhleCkJCUdJQU5UIEVMRUNUUk9OSUNTIExURC4KKzAwMDk2RSAgICAgKGJhc2UgMTYpCQlHSUFOVCBFTEVDVFJPTklDUyBMVEQuCisJCQkJNy9GLiwgRUxJVEUgSU5EVVNUUklBTCBCVUlMRElORywKKwkJCQkxMzUtMTM3IEhPSSBCVU4gUk9BRCwKKwkJCQlLV1VOIFRPTkcgS09XTE9PTiAKKwkJCQlIT05HIEtPTkcKKworMDAtMDktNkYgICAoaGV4KQkJQmVpamluZyBaaG9uZ3FpbmcgRWxlZ2FudCBUZWNoLiBDb3JwLixMaW1pdGVkCiswMDA5NkYgICAgIChiYXNlIDE2KQkJQmVpamluZyBaaG9uZ3FpbmcgRWxlZ2FudCBUZWNoLiBDb3JwLixMaW1pdGVkCisJCQkJUm0uNTA4LCBBLUJ1aWxkaW5nLCBTaGFuZ2RpIERpZ2l0YWwgU2NpZQorCQkJCUJlaWppbmcgIDEwMDA4NAorCQkJCUNISU5BCisKKzAwLTA5LTcwICAgKGhleCkJCVZpYnJhdGlvbiBSZXNlYXJjaCBDb3Jwb3JhdGlvbgorMDAwOTcwICAgICAoYmFzZSAxNikJCVZpYnJhdGlvbiBSZXNlYXJjaCBDb3Jwb3JhdGlvbgorCQkJCTIzODUgV2lsc2hlcmUgRHJpdmUKKwkJCQlTdWl0ZSBBCisJCQkJSmVuaXNvbiBNSSA0OTQyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNzEgICAoaGV4KQkJVGltZSBNYW5hZ2VtZW50LCBJbmMuCiswMDA5NzEgICAgIChiYXNlIDE2KQkJVGltZSBNYW5hZ2VtZW50LCBJbmMuCisJCQkJMTEgTGFrZSBHYXRsaW4gUm9hZAorCQkJCU9ybGFuZG8gRmxvcmlkYSAzMjgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktNzIgICAoaGV4KQkJU2VjdXJlYmFzZSxJbmMKKzAwMDk3MiAgICAgKGJhc2UgMTYpCQlTZWN1cmViYXNlLEluYworCQkJCTJuZCBGbCxTZXVuZ3NldW5nLUJsZGcsRG9rb2sgMi1Eb25nLEthbmcKKwkJCQlTZW91bCAgMTM1LTg1NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS03MyAgIChoZXgpCQlMZW50ZW4gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDk3MyAgICAgKGJhc2UgMTYpCQlMZW50ZW4gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxNkYsIE5vLjUxLCBTZWMuMiwgR3VuZ3lpIFJvYWQsCisJCQkJVGFpY2h1bmcgQ2l0eSAgNDA4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS03NCAgIChoZXgpCQlJbm5vcGlhIFRlY2hub2xvZ2llcywgSW5jLgorMDAwOTc0ICAgICAoYmFzZSAxNikJCUlubm9waWEgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNUYuLCBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neQorCQkJCUhhbnlhbmcgVW5pdmVyc2l0eSwgMTcgSGFlbmdkYW5nLURvbmcKKwkJCQlTZW91bCAgMTMzLTc5MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS03NSAgIChoZXgpCQlmU09OQSBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorMDAwOTc1ICAgICAoYmFzZSAxNikJCWZTT05BIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCisJCQkJIzE0MC0xMTEyMCBIb3JzZXNob2UgV2F5CisJCQkJUmljaG1vbmQgQkMgVjdBIDVINworCQkJCUNBTkFEQQorCiswMC0wOS03NiAgIChoZXgpCQlEYXRhc29mdCBJU0ROIFN5c3RlbXMgR21iSAorMDAwOTc2ICAgICAoYmFzZSAxNikJCURhdGFzb2Z0IElTRE4gU3lzdGVtcyBHbWJICisJCQkJU2NoaWxsZXJwbGF0eiAzCisJCQkJU3QuIFBvZWx0ZW4gTG93ZXIgQXVzdHJpYSAzMTAwCisJCQkJQVVTVFJJQQorCiswMC0wOS03NyAgIChoZXgpCQlCcnVubmVyIEVsZWt0cm9uaWsgQUcKKzAwMDk3NyAgICAgKGJhc2UgMTYpCQlCcnVubmVyIEVsZWt0cm9uaWsgQUcKKwkJCQlNw7xsbGVyd2lzIDEKKwkJCQlIaXR0bmF1IFrDvHJpY2ggODMzNQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTA5LTc4ICAgKGhleCkJCUFJSkkgU3lzdGVtIENvLiwgTHRkLgorMDAwOTc4ICAgICAoYmFzZSAxNikJCUFJSkkgU3lzdGVtIENvLiwgTHRkLgorCQkJCSMyMDggU2FtaG8tUGFyay1Ub3dlciBCbGRnLiAxMTIyLTEwLCBJbmcKKwkJCQlTdXdvbiBHeWVvbmdnaS1kbyA0NDItODM1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTc5ICAgKGhleCkJCUFkdmFuY2VkIFRlbGV2aXNpb24gU3lzdGVtcyBDb21taXR0ZWUsIEluYy4KKzAwMDk3OSAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBUZWxldmlzaW9uIFN5c3RlbXMgQ29tbWl0dGVlLCBJbmMuCisJCQkJMTc1MCBLIFN0cmVldCBOVworCQkJCVN1aXRlIDEyMDAKKwkJCQlXYXNoaW5ndG9uIERDIDIwMDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS03QSAgIChoZXgpCQlMb3VpcyBEZXNpZ24gTGFicy4KKzAwMDk3QSAgICAgKGJhc2UgMTYpCQlMb3VpcyBEZXNpZ24gTGFicy4KKwkJCQkyRixOTyA0LCBMYW5lIDQ5NywgQ2h1bmctQ2hlbmcgUmQuLEhzaW4tCisJCQkJSHNpbi1UaWVuIFRhaXBlaSBIc2llbiAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LTdCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDk3QiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTdDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDk3QyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIKKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktN0QgICAoaGV4KQkJU2VjV2VsbCBOZXR3b3JrcyBPeQorMDAwOTdEICAgICAoYmFzZSAxNikJCVNlY1dlbGwgTmV0d29ya3MgT3kKKwkJCQlQLk8uQk9YIDE3NAorCQkJCUjDpG1lZW5wdWlzdG8gMjEKKwkJCQlUYW1wZXJlICAzMzEwMQorCQkJCUZJTkxBTkQKKworMDAtMDktN0UgICAoaGV4KQkJSU1JIFRFQ0hOT0xPR1kgQ08uLCBMVEQKKzAwMDk3RSAgICAgKGJhc2UgMTYpCQlJTUkgVEVDSE5PTE9HWSBDTy4sIExURAorCQkJCTJuZCBmbG9vciwgRXVuIFNlb2sgQnVpbGRpbmcsIDcyOS0xCisJCQkJWWVva3NhbS1kb25nLAorCQkJCUdhbmduYW0tZ3UgU2VvdWwgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS03RiAgIChoZXgpCQlWc2VjdXJlIDIwMDAgTFRELgorMDAwOTdGICAgICAoYmFzZSAxNikJCVZzZWN1cmUgMjAwMCBMVEQuCisJCQkJMTEgTW9zaGUgTGV2aSBTdC4KKwkJCQlSaXNob24gTGVaaW9uICA3NTY1OAorCQkJCUlTUkFFTAorCiswMC0wOS04MCAgIChoZXgpCQlQb3dlciBaZW5pdGggSW5jLgorMDAwOTgwICAgICAoYmFzZSAxNikJCVBvd2VyIFplbml0aCBJbmMuCisJCQkJVHN1amlkbyBOaXNoaWthaWdhbiAxLTEwLTcKKwkJCQlGdWppc2F3YSBLYW5hZ2F3YSAyNTEtMDA0NgorCQkJCUpBUEFOCisKKzAwLTA5LTgxICAgKGhleCkJCU5ld3BvcnQgTmV0d29ya3MKKzAwMDk4MSAgICAgKGJhc2UgMTYpCQlOZXdwb3J0IE5ldHdvcmtzCisJCQkJRW50ZXJwcmlzZSBIb3VzZQorCQkJCVN0YXRpb24gUm9hZAorCQkJCUNoZXBzdG93IE1vbm1vdXRoc2hpcmUgTlAxNiA1UEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wOS04MiAgIChoZXgpCQlMb2V3ZSBPcHRhIEdtYkgKKzAwMDk4MiAgICAgKGJhc2UgMTYpCQlMb2V3ZSBPcHRhIEdtYkgKKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDExCisJCQkJS3JvbmFjaCBCYXZhcmlhIDk2MzE3CisJCQkJR0VSTUFOWQorCiswMC0wOS04MyAgIChoZXgpCQlHbG9iYWxUb3AgVGVjaG5vbG9neSwgSW5jLgorMDAwOTgzICAgICAoYmFzZSAxNikJCUdsb2JhbFRvcCBUZWNobm9sb2d5LCBJbmMuCisJCQkJICMxNiBOYW4tS2UgOXRoIFJvYWQKKwkJCQlTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCVRhaW5hbiAgNzQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS04NCAgIChoZXgpCQlNeUNhc2EgTmV0d29yayBJbmMuCiswMDA5ODQgICAgIChiYXNlIDE2KQkJTXlDYXNhIE5ldHdvcmsgSW5jLgorCQkJCTIwMCBTaGVyaWRhbiBBdmUgIzEwMworCQkJCVBhbG8gQWx0byBDQSA5NDMwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktODUgICAoaGV4KQkJQXV0byBUZWxlY29tIENvbXBhbnkKKzAwMDk4NSAgICAgKGJhc2UgMTYpCQlBdXRvIFRlbGVjb20gQ29tcGFueQorCQkJCTEwRiwgTm8uMyxMYW5lIDE2LCBTZWMuMiwgU2ljaHVhbiBSZC4KKwkJCQlCYW5xaWFvIENpdHkgVGFpcGVpIENvdW50eSAyMjA2MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktODYgICAoaGV4KQkJTWV0YWxpbmsgTFRELgorMDAwOTg2ICAgICAoYmFzZSAxNikJCU1ldGFsaW5rIExURC4KKwkJCQlZYWt1bSBCdXNpbmVzcyBQYXJrCisJCQkJWWFrdW0gSE9GIEhBU0hBUk9OIDYwOTcyCisJCQkJSVNSQUVMCisKKzAwLTA5LTg3ICAgKGhleCkJCU5JU0hJIE5JUFBPTiBFTEVDVFJJQyBXSVJFICYgQ0FCTEUgQ08uLExURC4KKzAwMDk4NyAgICAgKGJhc2UgMTYpCQlOSVNISSBOSVBQT04gRUxFQ1RSSUMgV0lSRSAmIENBQkxFIENPLixMVEQuCisJCQkJS2FzdWdhdXJhCisJCQkJT2l0YS1DaXR5IE9JVEEgODcwLTg2MzIKKwkJCQlKQVBBTgorCiswMC0wOS04OCAgIChoZXgpCQlOdWRpYW4gRWxlY3Ryb24gQ28uLCBMdGQuCiswMDA5ODggICAgIChiYXNlIDE2KQkJTnVkaWFuIEVsZWN0cm9uIENvLiwgTHRkLgorCQkJCTc5Ny0yOCBCYW5nYmFlLURvbmcsIFNlb2Noby1HdQorCQkJCVNlb3VsICAxMzctMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LTg5ICAgKGhleCkJCVZpdmlkTG9naWMgSW5jLgorMDAwOTg5ICAgICAoYmFzZSAxNikJCVZpdmlkTG9naWMgSW5jLgorCQkJCTQwOTk0IEVuY3ljbG9wZWRpYSBDaXJjbGUKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS04QSAgIChoZXgpCQlFcXVhbExvZ2ljIEluYworMDAwOThBICAgICAoYmFzZSAxNikJCUVxdWFsTG9naWMgSW5jCisJCQkJOSBUb3duc2VuZCBXZXN0CisJCQkJTmFzaHVhIE5IIDAzMDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS04QiAgIChoZXgpCQlFbnRyb3BpYyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwOThCICAgICAoYmFzZSAxNikJCUVudHJvcGljIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJOTI3NiBTY3JhbnRvbiBSZCAjMjAwCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS04QyAgIChoZXgpCQlPcHRpb24gV2lyZWxlc3MgU3dlZGVuCiswMDA5OEMgICAgIChiYXNlIDE2KQkJT3B0aW9uIFdpcmVsZXNzIFN3ZWRlbgorCQkJCVN0dXJlZ2F0YW4gMgorCQkJCTExdGggZmwuCisJCQkJU3VuZGJ5YmVyZyBTRS0xNzIgMjQKKwkJCQlTV0VERU4KKworMDAtMDktOEQgICAoaGV4KQkJVmVsb2NpdHkgU2VtaWNvbmR1Y3RvcgorMDAwOThEICAgICAoYmFzZSAxNikJCVZlbG9jaXR5IFNlbWljb25kdWN0b3IKKwkJCQlTdWl0ZSAzMiBXZXkgSG91c2UKKwkJCQkxNSBDaHVyY2ggU3RyZWV0CisJCQkJV2V5YnJpZGdlIFN1cnJleSBLVDEzIDhOQQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA5LThFICAgKGhleCkJCWlwY2FzIEdtYkgKKzAwMDk4RSAgICAgKGJhc2UgMTYpCQlpcGNhcyBHbWJICisJCQkJV2V0dGVya3JldXogMTcKKwkJCQlFcmxhbmdlbiBCYXZhcmlhIDkxMDU4CisJCQkJR0VSTUFOWQorCiswMC0wOS04RiAgIChoZXgpCQlDZXRhY2VhbiBOZXR3b3JrcworMDAwOThGICAgICAoYmFzZSAxNikJCUNldGFjZWFuIE5ldHdvcmtzCisJCQkJMTEwIENvcnBvcmF0ZSBEcml2ZQorCQkJCUJ1aWxkaW5nIDIKKwkJCQlQb3J0c21vdXRoIE5IIDAzODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS05MCAgIChoZXgpCQlBQ0tTWVMgQ29tbXVuaWNhdGlvbnMgJiBzeXN0ZW1zCiswMDA5OTAgICAgIChiYXNlIDE2KQkJQUNLU1lTIENvbW11bmljYXRpb25zICYgc3lzdGVtcworCQkJCVpBIGR1IFZhbCBKb3lldXgKKwkJCQkxMCBydWUgZGVzIEVudHJlcHJlbmV1cnMKKwkJCQlWSUxMRVBSRVVYICBGLTc4NDUwCisJCQkJRlJBTkNFCisKKzAwLTA5LTkxICAgKGhleCkJCUdFIEZhbnVjIEF1dG9tYXRpb24gTWFudWZhY3R1cmluZywgSW5jLgorMDAwOTkxICAgICAoYmFzZSAxNikJCUdFIEZhbnVjIEF1dG9tYXRpb24gTWFudWZhY3R1cmluZywgSW5jLgorCQkJCVJvdXRlIDYwNiAmIFJvdXRlIDI5TgorCQkJCVBPIEJveCA4MTA2CisJCQkJQ2hhcmxvdHRlc3ZpbGxlIFZpcmdpbmlhIDIyOTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS05MiAgIChoZXgpCQlJbnRlckVwb2NoIFRlY2hub2xvZ3ksSU5DLgorMDAwOTkyICAgICAoYmFzZSAxNikJCUludGVyRXBvY2ggVGVjaG5vbG9neSxJTkMuCisJCQkJN0YsTm8uMyxBbGxleSA2LExhbmUgMjM1LFBhby1DaGlhbyBSZAorCQkJCUhzaW4tVGllbiBUYWlwZWkgSHNpZW4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS05MyAgIChoZXgpCQlWaXN0ZW9uIENvcnBvcmF0aW9uCiswMDA5OTMgICAgIChiYXNlIDE2KQkJVmlzdGVvbiBDb3Jwb3JhdGlvbgorCQkJCTE2NjMwIFNvdXRoZmllbGQgUm9hZAorCQkJCVN0LiA0MUUxMAorCQkJCUFsbGVuIFBhcmsgTWljaGlnYW4gNDgxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LTk0ICAgKGhleCkJCUNyb255eCBFbmdpbmVlcmluZworMDAwOTk0ICAgICAoYmFzZSAxNikJCUNyb255eCBFbmdpbmVlcmluZworCQkJCU1hcnNoYWxhIFNva29sb3Zza29nbyBzdHIuIDQKKwkJCQlNb3Njb3cgIDEyMzA2MworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0wOS05NSAgIChoZXgpCQlDYXN0bGUgVGVjaG5vbG9neSBMdGQKKzAwMDk5NSAgICAgKGJhc2UgMTYpCQlDYXN0bGUgVGVjaG5vbG9neSBMdGQKKwkJCQlPcmUgVHJhZGluZyBFc3RhdGUKKwkJCQlXb29kYnJpZGdlIFJvYWQKKwkJCQlGcmFtbGluZ2hhbSBTdWZmb2xrIElQMTMgOUxMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDktOTYgICAoaGV4KQkJUkRJCiswMDA5OTYgICAgIChiYXNlIDE2KQkJUkRJCisJCQkJMjA0MDYgRWFybCBTdC4KKwkJCQlUb3JyYW5jZSBDQSA5MDUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktOTcgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDA5OTcgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTA5LTk4ICAgKGhleCkJCUNhcGluZm8gQ29tcGFueSBMaW1pdGVkCiswMDA5OTggICAgIChiYXNlIDE2KQkJQ2FwaW5mbyBDb21wYW55IExpbWl0ZWQKKwkJCQk3dGggRmxvb3IgQSBDb3Jwb3JhdGUgU3F1YXJlLCBOTy4gMzUgRmluCisJCQkJQmVpamluZyAgMTAwMDMyCisJCQkJQ0hJTkEKKworMDAtMDktOTkgICAoaGV4KQkJQ1AgR0VPUkdFUyBSRU5BVUxUCiswMDA5OTkgICAgIChiYXNlIDE2KQkJQ1AgR0VPUkdFUyBSRU5BVUxUCisJCQkJMzggUnVlIEJvYmJ5IFNhbmRzCisJCQkJNDQ4MDAgU2FpbnQgSGVyYmxhaW4gCisJCQkJRlJBTkNFCisKKzAwLTA5LTlBICAgKGhleCkJCUVMTU8gQ09NUEFOWSwgTElNSVRFRAorMDAwOTlBICAgICAoYmFzZSAxNikJCUVMTU8gQ09NUEFOWSwgTElNSVRFRAorCQkJCTYtMTQsIE1FSVpFTi1DSE8sIE1JWlVITy1LVQorCQkJCU5BR09ZQSBBSUNISS1QcmVmLiA0NjctODU2NworCQkJCUpBUEFOCisKKzAwLTA5LTlCICAgKGhleCkJCVdlc3Rlcm4gVGVsZW1hdGljIEluYy4KKzAwMDk5QiAgICAgKGJhc2UgMTYpCQlXZXN0ZXJuIFRlbGVtYXRpYyBJbmMuCisJCQkJNSBTdGVybGluZworCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktOUMgICAoaGV4KQkJTmF2YWwgUmVzZWFyY2ggTGFib3JhdG9yeQorMDAwOTlDICAgICAoYmFzZSAxNikJCU5hdmFsIFJlc2VhcmNoIExhYm9yYXRvcnkKKwkJCQlDb2RlIDU1OTIKKwkJCQk0NTU1IE92ZXJsb29rIEF2ZW51ZQorCQkJCVdhc2hpbmd0b24gREMgMjAzNzUtNTAwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktOUQgICAoaGV4KQkJSGFsaXBsZXggQ29tbXVuaWNhdGlvbnMKKzAwMDk5RCAgICAgKGJhc2UgMTYpCQlIYWxpcGxleCBDb21tdW5pY2F0aW9ucworCQkJCVBPIEJveCAxNDcKKwkJCQlNb29yb29sYmFyayBWaWMgMzEzOAorCQkJCUFVU1RSQUxJQQorCiswMC0wOS05RSAgIChoZXgpCQlUZXN0ZWNoLCBJbmMuCiswMDA5OUUgICAgIChiYXNlIDE2KQkJVGVzdGVjaCwgSW5jLgorCQkJCUJ1bmRhbmctVGVjaG5vcGFyaywgQy1Eb25nLCA3MDItSG8sICMxNDUKKwkJCQlZYXRhcC1Eb25nLCBCdW5kYW5nLUd1LAorCQkJCVN1bmduYW0tQ2l0eSBLeXVuZ2tpLURvIDQ2My0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktOUYgICAoaGV4KQkJVklERVggSU5DLgorMDAwOTlGICAgICAoYmFzZSAxNikJCVZJREVYIElOQy4KKwkJCQkxMTA1IE5FIENpcmNsZSBCbHZkCisJCQkJQ29ydmFsbGlzIE9SIDk3MzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1BMCAgIChoZXgpCQlNaWNyb3RlY2hubyBDb3Jwb3JhdGlvbgorMDAwOUEwICAgICAoYmFzZSAxNikJCU1pY3JvdGVjaG5vIENvcnBvcmF0aW9uCisJCQkJMi0zMy0zNiBTaGltb29kYW5ha2EKKwkJCQlOYWthaGFyYS1rdQorCQkJCUthd2FzYWtpIEthbmFnYXdhIDIxMS0wMDQxCisJCQkJSkFQQU4KKworMDAtMDktQTEgICAoaGV4KQkJVGVsZXdpc2UgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMDlBMSAgICAgKGJhc2UgMTYpCQlUZWxld2lzZSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTIwNTAgUmluZ3dvb2QgQXZlbnVlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUEyICAgKGhleCkJCUludGVyZmFjZSBDby4sIEx0ZC4KKzAwMDlBMiAgICAgKGJhc2UgMTYpCQlJbnRlcmZhY2UgQ28uLCBMdGQuCisJCQkJMi01LTEyLTIwMSBLeW9uYW5jaG8KKwkJCQlNdXNhc2hpbm8tY2l0eSBUb2t5byAxODAtMDAyMworCQkJCUpBUEFOCisKKzAwLTA5LUEzICAgKGhleCkJCUxlYWRmbHkgVGVjaG9sb2dpZXMgQ29ycC4gTHRkLgorMDAwOUEzICAgICAoYmFzZSAxNikJCUxlYWRmbHkgVGVjaG9sb2dpZXMgQ29ycC4gTHRkLgorCQkJCTlGbCwgTm8uMjYwLCBCYWRlIFJkLiwKKwkJCQkxMDQsIFIuTy5DLgorCQkJCVRhaXBlaSAgMTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS1BNCAgIChoZXgpCQlIQVJURUMgQ29ycG9yYXRpb24KKzAwMDlBNCAgICAgKGJhc2UgMTYpCQlIQVJURUMgQ29ycG9yYXRpb24KKwkJCQlLT1VIT0tVS1UgU0hJTi1ZT0tPSEFNQQorCQkJCTMtMTktNQorCQkJCVlPS09IQU1BLVNISSBLQU5BR0FXQS1LRU4gMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0wOS1BNSAgIChoZXgpCQlIQU5TVU5HIEVMRVRST05JQyBJTkRVU1RSSUVTIERFVkVMT1BNRU5UIENPLiwgTFRECiswMDA5QTUgICAgIChiYXNlIDE2KQkJSEFOU1VORyBFTEVUUk9OSUMgSU5EVVNUUklFUyBERVZFTE9QTUVOVCBDTy4sIExURAorCQkJCUhFVU5HSklOIEJMREcgM0YsICMyMTctMyBQT0ktRE9ORywgS0FOR04KKwkJCQlTRU9VTCAgMTM1LTk2MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1BNiAgIChoZXgpCQlJZ25pcyBPcHRpY3MsIEluYy4KKzAwMDlBNiAgICAgKGJhc2UgMTYpCQlJZ25pcyBPcHRpY3MsIEluYy4KKwkJCQk0ODIgVy4gU2FuIENhcmxvcworCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUE3ICAgKGhleCkJCUJhbmcgJiBPbHVmc2VuIEEvUworMDAwOUE3ICAgICAoYmFzZSAxNikJCUJhbmcgJiBPbHVmc2VuIEEvUworCQkJCVBldGVyIEJhbmdzIFZlaiAxNQorCQkJCVN0cnVlciAgNzYwMAorCQkJCURFTk1BUksKKworMDAtMDktQTggICAoaGV4KQkJRWFzdG1vZGUgUHRlIEx0ZAorMDAwOUE4ICAgICAoYmFzZSAxNikJCUVhc3Rtb2RlIFB0ZSBMdGQKKwkJCQkzMCBMb3lhbmcgV2F5ICMwNy0wNgorCQkJCUxveWFuZyBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCTUwODc2OQorCQkJCVNJTkdBUE9SRQorCiswMC0wOS1BOSAgIChoZXgpCQlJa2Fub3MgQ29tbXVuaWNhdGlvbnMKKzAwMDlBOSAgICAgKGJhc2UgMTYpCQlJa2Fub3MgQ29tbXVuaWNhdGlvbnMKKwkJCQk0NzcwOSBGcmVtb250IEJsdmQKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1BQSAgIChoZXgpCQlEYXRhIENvbW0gZm9yIEJ1c2luZXNzLCBJbmMuCiswMDA5QUEgICAgIChiYXNlIDE2KQkJRGF0YSBDb21tIGZvciBCdXNpbmVzcywgSW5jLgorCQkJCTI5NDkgQ291bnR5IFJvYWQgMTAwMCBFYXN0CisJCQkJRGV3ZXkgSUwgNjE4NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUFCICAgKGhleCkJCU5ldGNvbnRyb2wgT3kKKzAwMDlBQiAgICAgKGJhc2UgMTYpCQlOZXRjb250cm9sIE95CisJCQkJS2FydmFhbW9rdWphIDMKKwkJCQlIZWxzaW5raSAgRklOIDAwMzgwCisJCQkJRklOTEFORAorCiswMC0wOS1BQyAgIChoZXgpCQlMQU5WT0lDRQorMDAwOUFDICAgICAoYmFzZSAxNikJCUxBTlZPSUNFCisJCQkJMTM2NC0zOSBTZW9jaG9Eb25nLCAjMjAxIEppaHVuIEJsZGcKKwkJCQlTZW9jaG8tR3UKKwkJCQlTZW91bCAgMTM3LTA3MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1BRCAgIChoZXgpCQlIWVVOREFJIFNZU0NPTU0sIElOQy4KKzAwMDlBRCAgICAgKGJhc2UgMTYpCQlIWVVOREFJIFNZU0NPTU0sIElOQy4KKwkJCQlTQU4gMTM2LTEsIEFNSS1SSSwgQlVCQUwtRVVCCisJCQkJSUNIT04gS1lPVU5HS0ktRE8gNDY3LTcwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1BRSAgIChoZXgpCQlPS0FOTyBFTEVDVFJJQyBDTy4sTFRECiswMDA5QUUgICAgIChiYXNlIDE2KQkJT0tBTk8gRUxFQ1RSSUMgQ08uLExURAorCQkJCTItOC0xOCBLQU5BWUFNQS1DSE8KKwkJCQlISUdBU0hJS1VSVU1FIFRPS1lPIDIwMy0wMDAzCisJCQkJSkFQQU4KKworMDAtMDktQUYgICAoaGV4KQkJZS1nZW5lcmlzCiswMDA5QUYgICAgIChiYXNlIDE2KQkJZS1nZW5lcmlzCisJCQkJMTMgcnVlIGR1IGNoZW5lIGdlcm1haW4KKwkJCQljZXNzb24gc2V2aWduZSAgMzU1MTAKKwkJCQlGUkFOQ0UKKworMDAtMDktQjAgICAoaGV4KQkJT25reW8gQ29ycG9yYXRpb24KKzAwMDlCMCAgICAgKGJhc2UgMTYpCQlPbmt5byBDb3Jwb3JhdGlvbgorCQkJCTItMSBOaXNzaGluLWNobworCQkJCU5leWFnYXdhIE9zYWthIDU3Mjg1NDAKKwkJCQlKQVBBTgorCiswMC0wOS1CMSAgIChoZXgpCQlLYW5lbWF0c3UgRWxlY3Ryb25pY3MsIEx0ZC4KKzAwMDlCMSAgICAgKGJhc2UgMTYpCQlLYW5lbWF0c3UgRWxlY3Ryb25pY3MsIEx0ZC4KKwkJCQkxNy01LCBLeW9iYXNoaSAyLWNob21lCisJCQkJQ2h1by1rdSBUb2t5byAxMDQtODMzOAorCQkJCUpBUEFOCisKKzAwLTA5LUIyICAgKGhleCkJCUwmRiBJbmMuCiswMDA5QjIgICAgIChiYXNlIDE2KQkJTCZGIEluYy4KKwkJCQk0LTItOQorCQkJCVRPS1VNQVJVCisJCQkJSVRBQkFTSEktS1UgVG9reW8gMTc1LTAwODMKKwkJCQlKQVBBTgorCiswMC0wOS1CMyAgIChoZXgpCQlNQ00gU3lzdGVtcyBMdGQKKzAwMDlCMyAgICAgKGJhc2UgMTYpCQlNQ00gU3lzdGVtcyBMdGQKKwkJCQlLb2xvbWJhbiA5RgorCQkJCUFua2FyYW4gU2xvdmVuaWphIDYyODAKKwkJCQlTTE9WRU5JQQorCiswMC0wOS1CNCAgIChoZXgpCQlLSVNBTiBURUxFQ09NIENPLiwgTFRELgorMDAwOUI0ICAgICAoYmFzZSAxNikJCUtJU0FOIFRFTEVDT00gQ08uLCBMVEQuCisJCQkJOUYsIFRlYXdvbiBCbGRnLiwgNjUgQmFuZ3lpLURvbmcKKwkJCQlTb25ncGEtR3UgU2VvdWwgMTM4LTgyOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1CNSAgIChoZXgpCQkzSiBUZWNoLiBDby4sIEx0ZC4KKzAwMDlCNSAgICAgKGJhc2UgMTYpCQkzSiBUZWNoLiBDby4sIEx0ZC4KKwkJCQkzNDIgRnVzaGluZyBOLiBSZC4sIDJGLCBUYWlwZWksIFRhaXdhbgorCQkJCVRhaXBlaSAgMTA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS1CNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA5QjYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENhIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1CNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDA5QjcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk0MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1COCAgIChoZXgpCQlFbnRpc2UgU3lzdGVtcworMDAwOUI4ICAgICAoYmFzZSAxNikJCUVudGlzZSBTeXN0ZW1zCisJCQkJMTAwOTUgSnVkeSBBdmVudWUKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUI5ICAgKGhleCkJCUFjdGlvbiBJbWFnaW5nIFNvbHV0aW9ucworMDAwOUI5ICAgICAoYmFzZSAxNikJCUFjdGlvbiBJbWFnaW5nIFNvbHV0aW9ucworCQkJCUtpbmdzIEhhbGwsIFN0IEl2ZXMgQnVzaW5lc3MgUGFyaworCQkJCVN0IEl2ZXMKKwkJCQlIdW50aW5nZG9uIENhbWJyaWRnZXNoaXJlIFBFMjcgNFdZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMDktQkEgICAoaGV4KQkJTUFLVSBJbmZvcm1hdGlvbnN0ZWNoaWsgR21iSAorMDAwOUJBICAgICAoYmFzZSAxNikJCU1BS1UgSW5mb3JtYXRpb25zdGVjaGlrIEdtYkgKKwkJCQlHZXdlcmJlaG9mc3RyLiA3CisJCQkJRXNzZW4gTlJXIDQ1MTQ1CisJCQkJR0VSTUFOWQorCiswMC0wOS1CQiAgIChoZXgpCQlNYXRoU3RhciwgSW5jLgorMDAwOUJCICAgICAoYmFzZSAxNikJCU1hdGhTdGFyLCBJbmMuCisJCQkJNTkwMCBHcmVlbiBPYWsgRHJpdmUKKwkJCQlNaW5uZWFwb2xpcyBNTiA1NTM0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktQkMgICAoaGV4KQkJRGlnaXRhbCBTYWZldHkgVGVjaG5vbG9naWVzLCBJbmMKKzAwMDlCQyAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFNhZmV0eSBUZWNobm9sb2dpZXMsIEluYworCQkJCTUxMSBEYXZpcyBEci4KKwkJCQlTdWl0ZSAzMDAKKwkJCQlNb3JyaXN2aWxsZSBOQyAyNzU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktQkQgICAoaGV4KQkJRXB5Z2kgVGVjaG5vbG9naWVzLCBMdGQuCiswMDA5QkQgICAgIChiYXNlIDE2KQkJRXB5Z2kgVGVjaG5vbG9naWVzLCBMdGQuCisJCQkJNTA0MCBBZGRpc29uIENpcmNsZQorCQkJCVN1aXRlIDIyNQorCQkJCUFkZGlzb24gVGV4YXMgNzUwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUJFICAgKGhleCkJCU1hbWl5YS1PUCBDby4sTHRkLgorMDAwOUJFICAgICAoYmFzZSAxNikJCU1hbWl5YS1PUCBDby4sTHRkLgorCQkJCTMtMjMtMTAsIE5lZ2lzaGkgTWluYW1pLWt1CisJCQkJU2FpdGFtYS1zaGkgU2FpdGFtYSAzMzYtODU4MQorCQkJCUpBUEFOCisKKzAwLTA5LUJGICAgKGhleCkJCU5pbnRlbmRvIENvLixMdGQuCiswMDA5QkYgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0wOS1DMCAgIChoZXgpCQk2V0lORAorMDAwOUMwICAgICAoYmFzZSAxNikJCTZXSU5ECisJCQkJMSwgcGxhY2UgQ2hhcmxlcyBkZSBHYXVsbGUKKwkJCQlNb250aWdueS1sZS1CcmV0b25uZXV4ICA3ODE4MAorCQkJCUZSQU5DRQorCiswMC0wOS1DMSAgIChoZXgpCQlQUk9DRVMtREFUQSBBL1MKKzAwMDlDMSAgICAgKGJhc2UgMTYpCQlQUk9DRVMtREFUQSBBL1MKKwkJCQlOYXZlcnZlaiA4CisJCQkJU2lsa2Vib3JnICBESy04NjAwCisJCQkJREVOTUFSSworCiswMC0wOS1DMiAgIChoZXgpCQlPbml0eSwgSW5jLgorMDAwOUMyICAgICAoYmFzZSAxNikJCU9uaXR5LCBJbmMuCisJCQkJMjIzMiBOb3J0aG1vbnQgUGFya3dheQorCQkJCUR1bHV0aCBHQSAzMDA5NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktQzMgICAoaGV4KQkJTkVUQVMKKzAwMDlDMyAgICAgKGJhc2UgMTYpCQlORVRBUworCQkJCUFsZW1kYWcgQ2FkLiBObyAxNzEKKwkJCQlVTVJBTklZRQorCQkJCUlTVEFOQlVMICA4MTI0NAorCQkJCVRVUktFWQorCiswMC0wOS1DNCAgIChoZXgpCQlNZWRpY29yZSBDby4sIEx0ZAorMDAwOUM0ICAgICAoYmFzZSAxNikJCU1lZGljb3JlIENvLiwgTHRkCisJCQkJNzItMyA1dGggRmwuLCBMdW5hIEJsZGcsIENodW5nZGFtLWRvbmcKKwkJCQlLYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktQzUgICAoaGV4KQkJS0lOR0VORSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDA5QzUgICAgIChiYXNlIDE2KQkJS0lOR0VORSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJN0YsIE5vLiAxNDQsIE1pbmNodWFuIEUuIFJkLiBTZWMuIDMKKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktQzYgICAoaGV4KQkJVmlzaW9uaWNzIENvcnBvcmF0aW9uCiswMDA5QzYgICAgIChiYXNlIDE2KQkJVmlzaW9uaWNzIENvcnBvcmF0aW9uCisJCQkJNTYwMCBSb3dsYW5kIFJvYWQKKwkJCQlTdWl0ZSAyMDUKKwkJCQlNaW5uZXRvbmthIE1OIDU1MzQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1DNyAgIChoZXgpCQlNb3Zpc3RlYworMDAwOUM3ICAgICAoYmFzZSAxNikJCU1vdmlzdGVjCisJCQkJMTEwLTUgTWFyeW91bmcgLXJpIFNlb3N1LW15dW4KKwkJCQlLdW5zYW4gQ2hvbmJ1ayA1NzMtOTQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LUM4ICAgKGhleCkJCVNJTkFHQVdBIFRTVVNISU4gS0VJU09VIFNFUlZJQ0UKKzAwMDlDOCAgICAgKGJhc2UgMTYpCQlTSU5BR0FXQSBUU1VTSElOIEtFSVNPVSBTRVJWSUNFCisJCQkJMTMtNSBGdWtlICwgU3VtaXlvc2hpICwgT25haGFtYQorCQkJCUl3YWtpIENpdHkgRnVrdXNoaW1hIFByZWZlY3R1cmUgOTcxLTgxMjQKKwkJCQlKQVBBTgorCiswMC0wOS1DOSAgIChoZXgpCQlCbHVlV0lOQyBDby4sIEx0ZC4KKzAwMDlDOSAgICAgKGJhc2UgMTYpCQlCbHVlV0lOQyBDby4sIEx0ZC4KKwkJCQk0MDEgS29yZWEgRGVzaWduIENlbnRlcgorCQkJCTM0NC0xIFlhdGFwMS1kb25nLCBCdW5kYW5nLWd1CisJCQkJU2VvbmduYW0gQ2l0eSBLeW9uZ2dpw6LigqzigJxkbyA0NjMtODI4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LUNBICAgKGhleCkJCWlNYXhOZXR3b3JrcyhTaGVuemhlbilMaW1pdGVkLgorMDAwOUNBICAgICAoYmFzZSAxNikJCWlNYXhOZXR3b3JrcyhTaGVuemhlbilMaW1pdGVkLgorCQkJCTQvQixTb3V0aCBCbGRnIG9mIDI5dGgsU291dGggRGlzdHJpY3Qgb2YKKwkJCQlTaGVuemhlbiBIaS1UZWNoIEluZHVzdHJpYWwgUGFyaywgU2hlbm5hCisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTA5LUNCICAgKGhleCkJCUhCcmFpbgorMDAwOUNCICAgICAoYmFzZSAxNikJCUhCcmFpbgorCQkJCSM3MDUgS3dhbmdsaW0gQmxkZyAxNzkgS3VtaURvbmcKKwkJCQlCdW5kYW5nIEd1CisJCQkJU2VvbmduYW0gR3llb25nZ2lEbyA0NjMtODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTA5LUNDICAgKGhleCkJCU1vb2cgR21iSAorMDAwOUNDICAgICAoYmFzZSAxNikJCU1vb2cgR21iSAorCQkJCUhhbm5zLUtsZW1tLVN0ci4gMjgKKwkJCQlCb2VibGluZ2VuICBELTcxMDM0CisJCQkJR0VSTUFOWQorCiswMC0wOS1DRCAgIChoZXgpCQlIVURTT04gU09GVCBDTy4sTFRELgorMDAwOUNEICAgICAoYmFzZSAxNikJCUhVRFNPTiBTT0ZUIENPLixMVEQuCisJCQkJQzYyLEdlaWp1dHN1LW5vLW1vcmkKKwkJCQkzLWNob21lLE1pbmFtaS1rdQorCQkJCVNhcHBvcm8gSG9ra2FpZG8gMDA1LTA4NjQKKwkJCQlKQVBBTgorCiswMC0wOS1DRSAgIChoZXgpCQlTcGFjZUJyaWRnZSBTZW1pY29uZHVjdG9yIENvcnAuCiswMDA5Q0UgICAgIChiYXNlIDE2KQkJU3BhY2VCcmlkZ2UgU2VtaWNvbmR1Y3RvciBDb3JwLgorCQkJCTExNSBydWUgQ2hhbXBsYWluCisJCQkJSHVsbCBRdWViZWMgSjhYM1IxCisJCQkJQ0FOQURBCisKKzAwLTA5LUNGICAgKGhleCkJCWlBZCBHbWJICiswMDA5Q0YgICAgIChiYXNlIDE2KQkJaUFkIEdtYkgKKwkJCQlVbnRlcnNjaGxhdWVyc2JhY2hlciBIYXVwdHN0cmFzc2UgMTAKKwkJCQlHcm9zc2hhYmVyc2RvcmYgQmF2YXJpYSA5MDYxMworCQkJCUdFUk1BTlkKKworMDAtMDktRDAgICAoaGV4KQkJU29sYWNvbSBUZWNobm9sb2dpZXMgSW5jLgorMDAwOUQwICAgICAoYmFzZSAxNikJCVNvbGFjb20gVGVjaG5vbG9naWVzIEluYy4KKwkJCQk4MCBKZWFuLVByb3VseAorCQkJCUdhdGluZWF1IFF1ZWJlYyBKOFogMVcxCisJCQkJQ0FOQURBCisKKzAwLTA5LUQxICAgKGhleCkJCVNFUkFOT0EgTkVUV09SS1MgSU5DCiswMDA5RDEgICAgIChiYXNlIDE2KQkJU0VSQU5PQSBORVRXT1JLUyBJTkMKKwkJCQlDT05DT1JEIE9GRklDRSBDRU5URVIKKwkJCQkyMzUyIE1BSU4gU1QKKwkJCQlDT05DT1JEIE1BIDAxNzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1EMiAgIChoZXgpCQlNYWkgTG9naWMgSW5jLgorMDAwOUQyICAgICAoYmFzZSAxNikJCU1haSBMb2dpYyBJbmMuCisJCQkJNDc2OTcgV2VzdGluZ2hvdXNlIERyLiwgU3VpdGUgMjAwCisJCQkJRnJlbW9udCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRDMgICAoaGV4KQkJV2VzdGVybiBEYXRhQ29tIENvLiwgSW5jLgorMDAwOUQzICAgICAoYmFzZSAxNikJCVdlc3Rlcm4gRGF0YUNvbSBDby4sIEluYy4KKwkJCQk5MjUtRCBCYXNzZXR0IFJkLgorCQkJCVdlc3RsYWtlIE9IIDQ0MTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1ENCAgIChoZXgpCQlUcmFuc3RlY2ggTmV0d29ya3MKKzAwMDlENCAgICAgKGJhc2UgMTYpCQlUcmFuc3RlY2ggTmV0d29ya3MKKwkJCQkxMDAgV29vZCBBdmVudWUKKwkJCQlTdWl0ZSAyMDQKKwkJCQlJc2VsaW4gTkogMDg4MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUQ1ICAgKGhleCkJCVNpZ25hbCBDb21tdW5pY2F0aW9uLCBJbmMuCiswMDA5RDUgICAgIChiYXNlIDE2KQkJU2lnbmFsIENvbW11bmljYXRpb24sIEluYy4KKwkJCQkxMDAgV29vZCBBdmUgU291dGgKKwkJCQlTdWl0ZSAxMDMKKwkJCQlJc2VsaW4gTkogMDg4MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUQ2ICAgKGhleCkJCUtOQyBPbmUgR21iSAorMDAwOUQ2ICAgICAoYmFzZSAxNikJCUtOQyBPbmUgR21iSAorCQkJCUhvaGUgV2VsbGUgMTAgQgorCQkJCUV2ZXNzZW4gTmllZGVyc2FjaHNlbiAzODE3MworCQkJCUdFUk1BTlkKKworMDAtMDktRDcgICAoaGV4KQkJREMgU2VjdXJpdHkgUHJvZHVjdHMKKzAwMDlENyAgICAgKGJhc2UgMTYpCQlEQyBTZWN1cml0eSBQcm9kdWN0cworCQkJCU9uZSBMaW5kc2F5IENpcmNsZQorCQkJCVNhbiBGcmFuY2lzY28gQ2FsaWZvcm5pYSA5NDEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktRDggICAoaGV4KQkJRsOkbHQgQ29tbXVuaWNhdGlvbnMgQUIKKzAwMDlEOCAgICAgKGJhc2UgMTYpCQlGw6RsdCBDb21tdW5pY2F0aW9ucyBBQgorCQkJCUt5bGdyw6RuZCA2QQorCQkJCVNFIDkwNiAyMCBVbWXDpSAKKwkJCQlTV0VERU4KKworMDAtMDktRDkgICAoaGV4KQkJTmVvc2NhbGUgU3lzdGVtcywgSW5jCiswMDA5RDkgICAgIChiYXNlIDE2KQkJTmVvc2NhbGUgU3lzdGVtcywgSW5jCisJCQkJMTUwMCBNYyBDYW5kbGVzcyBEcml2ZQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1EQSAgIChoZXgpCQlDb250cm9sIE1vZHVsZSBJbmMuCiswMDA5REEgICAgIChiYXNlIDE2KQkJQ29udHJvbCBNb2R1bGUgSW5jLgorCQkJCTIyNyBCcmFpbmFyZCBSb2FkCisJCQkJRW5maWVsZCBDVCAwNjA4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktREIgICAoaGV4KQkJZVNwYWNlCiswMDA5REIgICAgIChiYXNlIDE2KQkJZVNwYWNlCisJCQkJOTYyMyBTaW1zYnVyeSBDdC4KKwkJCQlUd2luc2J1cmcgT0ggNDQwODctMzIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMDktREMgICAoaGV4KQkJR2FsYXhpcyBUZWNobm9sb2d5IEFHCiswMDA5REMgICAgIChiYXNlIDE2KQkJR2FsYXhpcyBUZWNobm9sb2d5IEFHCisJCQkJU3RlaW5tZXR6c3RyYXNzZSA3CisJCQkJUC5PLiBCb3ggMzM2NAorCQkJCUzDvGJlY2sgU2NobGVzd2lnLUhvbHN0ZWluIDIzNTU2CisJCQkJR0VSTUFOWQorCiswMC0wOS1ERCAgIChoZXgpCQlNYXZpbiBUZWNobm9sb2d5IEluYy4KKzAwMDlERCAgICAgKGJhc2UgMTYpCQlNYXZpbiBUZWNobm9sb2d5IEluYy4KKwkJCQlSb29tIDMwNSwgQmxkZy4gNTIgTm8uIDE5NS0yOAorCQkJCVNlYy4gNCBDaHVuZy1Ic2luZyBSZC4KKwkJCQlDaHV0dW5nLCBIc2luY2h1ICAzMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LURFICAgKGhleCkJCVNhbWppbiBJbmZvcm1hdGlvbiAmIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorMDAwOURFICAgICAoYmFzZSAxNikJCVNhbWppbiBJbmZvcm1hdGlvbiAmIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorCQkJCU1hamFuZ015dW4gRHVrUHl1bmdSaSAyMzUtMgorCQkJCUljaG9uIEt5b25nR2kgNDY3LTgxMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1ERiAgIChoZXgpCQlWZXN0ZWwgS29tdW5pa2FzeW9uIFNhbmF5aSB2ZSBUaWNhcmV0IEEuUy4KKzAwMDlERiAgICAgKGJhc2UgMTYpCQlWZXN0ZWwgS29tdW5pa2FzeW9uIFNhbmF5aSB2ZSBUaWNhcmV0IEEuUy4KKwkJCQlFZ2UgU2VyYmVzdCBCb2xnZXNpIE5vOjE0NC8xCisJCQkJR2F6aWVtaXIKKwkJCQlJem1pciAtIDM1NDEwCisJCQkJVFVSS0VZCisKKzAwLTA5LUUwICAgKGhleCkJCVhFTUlDUyBTLkEuCiswMDA5RTAgICAgIChiYXNlIDE2KQkJWEVNSUNTIFMuQS4KKwkJCQlSdWUgZGUgbGEgTWFsYWRpZXJlIDcxCisJCQkJQ0gtMjAwNyBOZXVjaGF0ZWwgTmV1Y2hhdGVsIDIwMDcKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wOS1FMSAgIChoZXgpCQlHZW10ZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMDlFMSAgICAgKGJhc2UgMTYpCQlHZW10ZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4xIEplbiBBaSBSb2FkCisJCQkJSHVrb3UgSHNpbmNodSAzMDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTA5LUUyICAgKGhleCkJCVNpbmJvbiBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMDlFMiAgICAgKGJhc2UgMTYpCQlTaW5ib24gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJNEYtMTMsIE5vLiA3OSwgU2VjIDEsIEhzaW4gVGFpIFd1IFJkLgorCQkJCUhzaS1DaGloLCBUYWlwZWkgIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMDktRTMgICAoaGV4KQkJQW5nZWwgSWdsZXNpYXMgUy5BLgorMDAwOUUzICAgICAoYmFzZSAxNikJCUFuZ2VsIElnbGVzaWFzIFMuQS4KKwkJCQlQb2zDrWdvbm8gMjcgTWFydHV0ZW5lCisJCQkJU2FuIFNlYmFzdGnDoW4gR3VpcMO6emNvYSAyMDAxNAorCQkJCVNQQUlOCisKKzAwLTA5LUU0ICAgKGhleCkJCUsgVGVjaCBJbmZvc3lzdGVtIEluYy4KKzAwMDlFNCAgICAgKGJhc2UgMTYpCQlLIFRlY2ggSW5mb3N5c3RlbSBJbmMuCisJCQkJQi00MDUsIEJ1bmRhbmcgVGVjaG5vLVBhcmsgMTQ4LCBZYXRhcC1kbworCQkJCVNlb25nbmFtIEt5b25nZ2ktRG8gNDY0LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wOS1FNSAgIChoZXgpCQlIb3R0aW5nZXIgQmFsZHdpbiBNZXNzdGVjaG5payBHbWJICiswMDA5RTUgICAgIChiYXNlIDE2KQkJSG90dGluZ2VyIEJhbGR3aW4gTWVzc3RlY2huaWsgR21iSAorCQkJCUltIFRpZWZlbiBTZWUgNDUKKwkJCQlEYXJtc3RhZHQgSGVzc2VuIDY0MjkzCisJCQkJR0VSTUFOWQorCiswMC0wOS1FNiAgIChoZXgpCQlDeWJlciBTd2l0Y2hpbmcgSW5jLgorMDAwOUU2ICAgICAoYmFzZSAxNikJCUN5YmVyIFN3aXRjaGluZyBJbmMuCisJCQkJMTgwMCBEZSBMYSBDcnV6IEJsdmQuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUU3ICAgKGhleCkJCUFEQyBUZWNob25vbG9neQorMDAwOUU3ICAgICAoYmFzZSAxNikJCUFEQyBUZWNob25vbG9neQorCQkJCVNha2FlIE1lbWJlcnMgT2ZmaWNlIEJsZC4gNC0xNi04LCBTYWthZSwKKwkJCQlOYWdveWEgQWljaGkgNDYwMDAwOAorCQkJCUpBUEFOCisKKzAwLTA5LUU4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDlFOCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUU5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMDlFOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUVBICAgKGhleCkJCVlFTSBJbmMuCiswMDA5RUEgICAgIChiYXNlIDE2KQkJWUVNIEluYy4KKwkJCQkxLTMtMzMKKwkJCQlPa2F0YQorCQkJCUF0c3VnaS1zaGkgS2FuYWdhd2EgMjQzLTAwMjEKKwkJCQlKQVBBTgorCiswMC0wOS1FQiAgIChoZXgpCQlIdU1BTkRBVEEgTFRELgorMDAwOUVCICAgICAoYmFzZSAxNikJCUh1TUFOREFUQSBMVEQuCisJCQkJMS0yLTEwCisJCQkJTmFrYWhvenVtaQorCQkJCUliYXJha2kgT3Nha2EgNTY3LTAwMzQKKwkJCQlKQVBBTgorCiswMC0wOS1FQyAgIChoZXgpCQlEYWt0cm9uaWNzLCBJbmMuCiswMDA5RUMgICAgIChiYXNlIDE2KQkJRGFrdHJvbmljcywgSW5jLgorCQkJCTMxNSAzMm5kIEF2ZQorCQkJCUJ1aWxkaW5nICMyCisJCQkJQnJvb2tpbmdzIFNEIDU3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1FRCAgIChoZXgpCQlDaXBoZXJPcHRpY3MKKzAwMDlFRCAgICAgKGJhc2UgMTYpCQlDaXBoZXJPcHRpY3MKKwkJCQk3MDEgQ29ycG9yYXRlIENlbnRlciBEcml2ZQorCQkJCVN1aXRlIDE1MAorCQkJCVJhbGVpZ2ggTm9ydGggQ2Fyb2xpbmEgMjc2MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUVFICAgKGhleCkJCU1FSUtZTyBFTEVDVFJJQyBDTy4sTFRECiswMDA5RUUgICAgIChiYXNlIDE2KQkJTUVJS1lPIEVMRUNUUklDIENPLixMVEQKKwkJCQk0LTI3LTIgSGlnYXNoaW9ndQorCQkJCUFyYWthd2Eta3UgVG9reW8gMTE2LTAwMTIKKwkJCQlKQVBBTgorCiswMC0wOS1FRiAgIChoZXgpCQlWb2NlcmEgQ29tbXVuaWNhdGlvbnMKKzAwMDlFRiAgICAgKGJhc2UgMTYpCQlWb2NlcmEgQ29tbXVuaWNhdGlvbnMKKwkJCQk1MjUgUmFjZSBTdC4KKwkJCQlTdWl0ZSAxNTAKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1GMCAgIChoZXgpCQlTaGltaXp1IFRlY2hub2xvZ3kgSW5jLgorMDAwOUYwICAgICAoYmFzZSAxNikJCVNoaW1penUgVGVjaG5vbG9neSBJbmMuCisJCQkJMTUtNiwgTm8uMTA3LCBDaHVuZyBTaGFuIFJkLiwgU2VjLjEKKwkJCQlIc2luIENodWFuLCBUYWlwZWkgMjQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS1GMSAgIChoZXgpCQlZYW1ha2kgRWxlY3RyaWMgQ29ycG9yYXRpb24KKzAwMDlGMSAgICAgKGJhc2UgMTYpCQlZYW1ha2kgRWxlY3RyaWMgQ29ycG9yYXRpb24KKwkJCQkzLTctMjIgU2hpbW9tZWd1cm8KKwkJCQlNZWd1cm8ta3UgVG9reW8gMTUzLTAwNjQKKwkJCQlKQVBBTgorCiswMC0wOS1GMiAgIChoZXgpCQlDb2h1LCBJbmMuLCBFbGVjdHJvbmljcyBEaXZpc2lvbgorMDAwOUYyICAgICAoYmFzZSAxNikJCUNvaHUsIEluYy4sIEVsZWN0cm9uaWNzIERpdmlzaW9uCisJCQkJMzkxMiBDYWxsZSBGb3J0dW5hZGEKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTA5LUYzICAgKGhleCkJCVdFTEwgQ29tbXVuaWNhdGlvbiBDb3JwLgorMDAwOUYzICAgICAoYmFzZSAxNikJCVdFTEwgQ29tbXVuaWNhdGlvbiBDb3JwLgorCQkJCTExRiwgTm8uNzc4LCBDaHVuZyBDaGVuZyBSZC4sIENodW5nIEhvIEMKKwkJCQlDaHVuZyBIbyAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wOS1GNCAgIChoZXgpCQlBbGNvbiBMYWJvcmF0b3JpZXMsIEluYy4KKzAwMDlGNCAgICAgKGJhc2UgMTYpCQlBbGNvbiBMYWJvcmF0b3JpZXMsIEluYy4KKwkJCQk2MjAxIFNvdXRoIEZyZWV3YXkKKwkJCQlGb3J0IFdvcnRoIFR4IDc2MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1GNSAgIChoZXgpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIgQ28uLEx0ZAorMDAwOUY1ICAgICAoYmFzZSAxNikJCUVtZXJzb24gTmV0d29yayBQb3dlciBDby4sTHRkCisJCQkJMS9GLDMvRiBFbGVjdHJpYyBCdWlsZGluZyBIdWF3ZWkgQmFzZSxCYQorCQkJCUxvbmdnYW5nLFNoZW56aGVuIE11bmljaXBhbGl0eSxQZW9wbGXCocKvcworCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwMjkKKwkJCQlDSElOQQorCiswMC0wOS1GNiAgIChoZXgpCQlTaGVuemhlbiBFYXN0ZXJuIERpZ2l0YWwgVGVjaCBMdGQuCiswMDA5RjYgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gRWFzdGVybiBEaWdpdGFsIFRlY2ggTHRkLgorCQkJCVNoZW56aGVuIEZ1dGlhbiBDaGVnb25nbWlhbyBUYWlyYW4KKwkJCQlUZWNobm9sb2d5IFBhcmsgMjEwIC0gM0MKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQ4CisJCQkJQ0hJTkEKKworMDAtMDktRjcgICAoaGV4KQkJU0VELCBhIGRpdmlzaW9uIG9mIENhbGlhbgorMDAwOUY3ICAgICAoYmFzZSAxNikJCVNFRCwgYSBkaXZpc2lvbiBvZiBDYWxpYW4KKwkJCQkxOCBJbm5ub3ZhdGlvbiBCb3VsZXZhcmQKKwkJCQlQLk8uIEJveCAxNDY0CisJCQkJU2Fza2F0b29uIFNhc2thdGNoZXdhbiAoU0spIFM3SyAzUDcKKwkJCQlDQU5BREEKKworMDAtMDktRjggICAoaGV4KQkJVU5JTU8gVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwMDlGOCAgICAgKGJhc2UgMTYpCQlVTklNTyBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCUJBTkdCQUUgRE9ORyA0NzktMTIKKwkJCQlTRU9DSE8tR1UsCisJCQkJU0VPVUwgIDEzNy04MjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMDktRjkgICAoaGV4KQkJQVJUIEpBUEFOIENPLiwgTFRELgorMDAwOUY5ICAgICAoYmFzZSAxNikJCUFSVCBKQVBBTiBDTy4sIExURC4KKwkJCQkzMjItNywgSWNoaW5vdHN1Ym8sCisJCQkJTmFrYWhhcmEta3UKKwkJCQlLYXdhc2FraSBLYW5hZ2F3YSAyMTEtMDAxNgorCQkJCUpBUEFOCisKKzAwLTA5LUZCICAgKGhleCkJCVBoaWxpcHMgUGF0aWVudCBNb25pdG9yaW5nCiswMDA5RkIgICAgIChiYXNlIDE2KQkJUGhpbGlwcyBQYXRpZW50IE1vbml0b3JpbmcKKwkJCQlIZXdsZXR0LVBhY2thcmQtU3RyLjIKKwkJCQlCb2VibGluZ2VuICA3MTAzNAorCQkJCUdFUk1BTlkKKworMDAtMDktRkMgICAoaGV4KQkJSVBGTEVYIEluYy4KKzAwMDlGQyAgICAgKGJhc2UgMTYpCQlJUEZMRVggSW5jLgorCQkJCU1vd2EtQmxkZyAzRiwgMS0xNi02CisJCQkJRWJpc3UtbmlzaGkKKwkJCQlTaGlidXlhLWt1IFRva3lvIDE1MC0wMDIxCisJCQkJSkFQQU4KKworMDAtMDktRkQgICAoaGV4KQkJVWJpbmV0aWNzIExpbWl0ZWQKKzAwMDlGRCAgICAgKGJhc2UgMTYpCQlVYmluZXRpY3MgTGltaXRlZAorCQkJCUNhbWJyaWRnZSBUZWNobm9sb2d5IENlbnRyZQorCQkJCU1lbGJvdXJuIEhlcnRmb3Jkc2hpcmUgU0c4IDZEUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTA5LUZFICAgKGhleCkJCURhaXN5IFRlY2hub2xvZ2llcywgSW5jLgorMDAwOUZFICAgICAoYmFzZSAxNikJCURhaXN5IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEyMDkgT3JhbmdlIFN0cmVldAorCQkJCUNvdW50eSBvZiBOZXcgQ2FzdGxlCisJCQkJQ2l0eSBvZiBXaWxtaW5ndG9uIERFIDE5ODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wOS1GRiAgIChoZXgpCQlYLm5ldCAyMDAwIEdtYkgKKzAwMDlGRiAgICAgKGJhc2UgMTYpCQlYLm5ldCAyMDAwIEdtYkgKKwkJCQlLb2VuaWdzYmVyZ2VyIFN0ci4gMmMKKwkJCQlSZWluaGVpbSAgNjQzNTQKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTAwICAgKGhleCkJCU1lZGlhdGVrIENvcnAuCiswMDBBMDAgICAgIChiYXNlIDE2KQkJTWVkaWF0ZWsgQ29ycC4KKwkJCQk4RiwgTm8gNjktNSwgU2VjLjIsIENodW5nIENoZW5nIEVhc3QgUmQuCisJCQkJVGFpcGVpICAyNTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTAxICAgKGhleCkJCVNPSE93YXJlLCBJbmMuCiswMDBBMDEgICAgIChiYXNlIDE2KQkJU09IT3dhcmUsIEluYy4KKwkJCQkzMDUwIENvcm9uYWRvIERyaXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTAyICAgKGhleCkJCUFOTlNPIENPLiwgTFRELgorMDAwQTAyICAgICAoYmFzZSAxNikJCUFOTlNPIENPLiwgTFRELgorCQkJCTVGLCBOby4gMTAwLCBNaW4tQ2h1YW4gUm9hZCwgU2hpbmctVGllbgorCQkJCVNoaW5nLVRpZW4gQ2l0eSBUYWlwZWkgSHNpZW4gVGFpd2FuIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtMDMgICAoaGV4KQkJRU5ERVNBIFNFUlZJQ0lPUywgUy5MLgorMDAwQTAzICAgICAoYmFzZSAxNikJCUVOREVTQSBTRVJWSUNJT1MsIFMuTC4KKwkJCQlBVkdEQSBQQVJBTC5MRUwsIDUxCisJCQkJQkFSQ0VMT05BICAwODAwNAorCQkJCVNQQUlOCisKKzAwLTBBLTA0ICAgKGhleCkJCTNDb20gTHRkCiswMDBBMDQgICAgIChiYXNlIDE2KQkJM0NvbSBMdGQKKwkJCQlQZW9wbGVidWlsZGluZyAyCisJCQkJUGVvcGxlYnVpbGRpbmcgRXN0YXRlLCBNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSGVydHMgSFAyIDROVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBBLTA1ICAgKGhleCkJCVdpZGF4IENvcnAuCiswMDBBMDUgICAgIChiYXNlIDE2KQkJV2lkYXggQ29ycC4KKwkJCQkyNjkgU3RldmVucyBTdHJlZXQKKwkJCQlIeWFubmlzIE1BIDAyNjY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0wNiAgIChoZXgpCQlUZWxlZGV4IExMQworMDAwQTA2ICAgICAoYmFzZSAxNikJCVRlbGVkZXggTExDCisJCQkJNjMxMSBTYW4gSWduYWNpbyBBdmVudWUKKwkJCQlTYW4gSm9zZSBDQSA5NTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMDcgICAoaGV4KQkJV2ViV2F5T25lIEx0ZAorMDAwQTA3ICAgICAoYmFzZSAxNikJCVdlYldheU9uZSBMdGQKKwkJCQkxMSBLaW5nZmlzaGVyIENvdXJ0LAorCQkJCUhhbWJyaWRnZSBSb2FkCisJCQkJTmV3YnVyeSBCZXJrc2hpcmUgUkcxNCA1U0oKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQS0wOCAgIChoZXgpCQlBTFBJTkUgRUxFQ1RST05JQ1MsIElOQy4KKzAwMEEwOCAgICAgKGJhc2UgMTYpCQlBTFBJTkUgRUxFQ1RST05JQ1MsIElOQy4KKwkJCQkyMC0xIFlvc2hpbWEtS29neW9kYW5jaGkKKwkJCQlpd2FraS1jaXR5IEZ1a3VzaGltYSA5NzAtMTE5MgorCQkJCUpBUEFOCisKKzAwLTBBLTA5ICAgKGhleCkJCVRhcmFDb20gSW50ZWdyYXRlZCBQcm9kdWN0cywgSW5jLgorMDAwQTA5ICAgICAoYmFzZSAxNikJCVRhcmFDb20gSW50ZWdyYXRlZCBQcm9kdWN0cywgSW5jLgorCQkJCTgzMCBTdGV3YXJ0IERyLgorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMEEgICAoaGV4KQkJU1VOSVggQ28uLCBMdGQuCiswMDBBMEEgICAgIChiYXNlIDE2KQkJU1VOSVggQ28uLCBMdGQuCisJCQkJM0ZsLiwgTm8uIDc2LCBCYXVnYXUgUmQuLAorCQkJCVNoaW5kaWFuIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTBCICAgKGhleCkJCVNlYWxldmVsIFN5c3RlbXMsIEluYy4KKzAwMEEwQiAgICAgKGJhc2UgMTYpCQlTZWFsZXZlbCBTeXN0ZW1zLCBJbmMuCisJCQkJMTU1IFRlY2hub2xvZ3kgUGxhY2UKKwkJCQlMaWJlcnR5IFNDIDI5NjU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0wQyAgIChoZXgpCQlTY2llbnRpZmljIFJlc2VhcmNoIENvcnBvcmF0aW9uCiswMDBBMEMgICAgIChiYXNlIDE2KQkJU2NpZW50aWZpYyBSZXNlYXJjaCBDb3Jwb3JhdGlvbgorCQkJCTIzMDAgV2luZHkgUmlkZ2UgUGFya3dheQorCQkJCVN1aXRlIDQwMCBTb3V0aAorCQkJCUF0bGFudGEgR0EgMzAzMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTBEICAgKGhleCkJCUZDSSBEZXV0c2NobGFuZCBHbWJICiswMDBBMEQgICAgIChiYXNlIDE2KQkJRkNJIERldXRzY2hsYW5kIEdtYkgKKwkJCQlXZXJuZXJ3ZXJrZGFtbSAxNiwKKwkJCQlCZXJsaW4gIDEzNjI5IAorCQkJCUdFUk1BTlkKKworMDAtMEEtMEUgICAoaGV4KQkJSW52aXZvIFJlc2VhcmNoIEluYy4KKzAwMEEwRSAgICAgKGJhc2UgMTYpCQlJbnZpdm8gUmVzZWFyY2ggSW5jLgorCQkJCTEyNjAxIFJlc2VhcmNoIFBhcmt3YXkKKwkJCQlPcmxhbmRvIEZsb3JpZGEgMzI4MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTBGICAgKGhleCkJCUlscnl1bmcgVGVsZXN5cywgSW5jCiswMDBBMEYgICAgIChiYXNlIDE2KQkJSWxyeXVuZyBUZWxlc3lzLCBJbmMKKwkJCQlJbHJ5dW5nIGJsZGcsIDM0LTIsIENoZW9uaG8tZG9uZworCQkJCUdhbmdkb25nLWd1CisJCQkJU0VPVUwgIDEzNC04NjEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtMTAgICAoaGV4KQkJRkFTVCBtZWRpYSBpbnRlZ3JhdGlvbnMgQUcKKzAwMEExMCAgICAgKGJhc2UgMTYpCQlGQVNUIG1lZGlhIGludGVncmF0aW9ucyBBRworCQkJCVNjaMO2bmdydW5kIDI2CisJCQkJUm90a3JldXogQ2FudG9uIG9mIFp1ZyA2MzQzCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEEtMTEgICAoaGV4KQkJRXhQZXQgVGVjaG5vbG9naWVzLCBJbmMKKzAwMEExMSAgICAgKGJhc2UgMTYpCQlFeFBldCBUZWNobm9sb2dpZXMsIEluYworCQkJCTZGLCBLeW9uZ2dpIFNtYWxsIEJ1c2luZXNzIENlbnRlcgorCQkJCSMxMTEtOCwgSXVpLWRvbmcsIFBhbGRhbC1ndSwKKwkJCQlTdXdvbiwgS3lvbmdnaS1kbywgNDQyLTI3MCAgNDQyLTc3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS0xMiAgIChoZXgpCQlBenlsZXggVGVjaG5vbG9neSwgSW5jCiswMDBBMTIgICAgIChiYXNlIDE2KQkJQXp5bGV4IFRlY2hub2xvZ3ksIEluYworCQkJCTctMkZsLiwgTm8uIDczOCBDaHVuZyBDaGVuZyBSb2FkLAorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtMTMgICAoaGV4KQkJSG9uZXl3ZWxsIFZpZGVvIFN5c3RlbXMKKzAwMEExMyAgICAgKGJhc2UgMTYpCQlIb25leXdlbGwgVmlkZW8gU3lzdGVtcworCQkJCTY1NTQgMTc2IFN0cmVldAorCQkJCVN1cnJleSBCQyBWM1MgNEc1CisJCQkJQ0FOQURBCisKKzAwLTBBLTE0ICAgKGhleCkJCVRFQ08gYS5zLgorMDAwQTE0ICAgICAoYmFzZSAxNikJCVRFQ08gYS5zLgorCQkJCUhhdmxpY2tvdmEgMjYwCisJCQkJS09MSU4gQ1ogMjgwIDU4CisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMEEtMTUgICAoaGV4KQkJU2lsaWNvbiBEYXRhLCBJbmMKKzAwMEExNSAgICAgKGJhc2UgMTYpCQlTaWxpY29uIERhdGEsIEluYworCQkJCTQ2OTkgT2xkIElyb25zaWRlcyBEci4sICMxNTAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMTYgICAoaGV4KQkJTGFzc2VuIFJlc2VhcmNoCiswMDBBMTYgICAgIChiYXNlIDE2KQkJTGFzc2VuIFJlc2VhcmNoCisJCQkJMzE2OTUgRm9yd2FyZCBSb2FkCisJCQkJTWFudG9uIENBIDk2MDU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0xNyAgIChoZXgpCQlORVNUQVIgQ09NTVVOSUNBVElPTlMsIElOQworMDAwQTE3ICAgICAoYmFzZSAxNikJCU5FU1RBUiBDT01NVU5JQ0FUSU9OUywgSU5DCisJCQkJTm8uNiwxOSBMYW5lIEJhZGUgUm9hZAorCQkJCUhTSU5DSFUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtMTggICAoaGV4KQkJVmljaGVsIEluYy4KKzAwMEExOCAgICAgKGJhc2UgMTYpCQlWaWNoZWwgSW5jLgorCQkJCTNGIEphbmcgQmxkZy4gOTItNiBZYW5namFlLWRvbmcsIFNlY2hvLWcKKwkJCQlTZW91bCAgMTM3LTEzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS0xOSAgIChoZXgpCQlWYWxlcmUgUG93ZXIsIEluYy4KKzAwMEExOSAgICAgKGJhc2UgMTYpCQlWYWxlcmUgUG93ZXIsIEluYy4KKwkJCQk2NjEgTi4gUGxhbm8gUmQuCisJCQkJUmljaGFyZHNvbiBUZXhhcyA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMUEgICAoaGV4KQkJSW1lcmdlIEx0ZAorMDAwQTFBICAgICAoYmFzZSAxNikJCUltZXJnZSBMdGQKKwkJCQlVbml0IDYsIEJhciBIaWxsIEJ1c2luZXNzIFBhcmsKKwkJCQlTYXhvbiBXYXkKKwkJCQlCYXIgSGlsbCBDYW1icmlkZ2UgQ0IzIDhTTAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBBLTFCICAgKGhleCkJCVN0cmVhbSBMYWJzCiswMDBBMUIgICAgIChiYXNlIDE2KQkJU3RyZWFtIExhYnMKKwkJCQlMZW5pbnNraWUgZ29yaSAxLCBiaWxkIDc3CisJCQkJTW9za293ICAxMTk5OTIKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMEEtMUMgICAoaGV4KQkJQnJpZGdlIEluZm9ybWF0aW9uIENvLiwgTHRkLgorMDAwQTFDICAgICAoYmFzZSAxNikJCUJyaWRnZSBJbmZvcm1hdGlvbiBDby4sIEx0ZC4KKwkJCQlOby4zLCBMYW5lIDEwNiwgV3UtS3VuZyAyIFJkLiwKKwkJCQlXdS1LdSBJbmQuIFBhcmssCisJCQkJVGFpcGVpICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTFEICAgKGhleCkJCU9wdGljYWwgQ29tbXVuaWNhdGlvbnMgUHJvZHVjdHMgSW5jLgorMDAwQTFEICAgICAoYmFzZSAxNikJCU9wdGljYWwgQ29tbXVuaWNhdGlvbnMgUHJvZHVjdHMgSW5jLgorCQkJCTIwOTYxIEtuYXBwIFN0LgorCQkJCUNoYXRzd29ydGggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTFFICAgKGhleCkJCVJlZC1NIFByb2R1Y3RzIExpbWl0ZWQKKzAwMEExRSAgICAgKGJhc2UgMTYpCQlSZWQtTSBQcm9kdWN0cyBMaW1pdGVkCisJCQkJTmVwdHVuZSBIb3VzZQorCQkJCU1lcmN1cnkgUGFyaywgV3ljb21iZSBMYW5lCisJCQkJV29vYnVybiBHcmVlbiBCdWNraW5naGFtc2hpcmUgSFAxMCAwSEgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQS0xRiAgIChoZXgpCQlBUlQgV0FSRSBUZWxlY29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKzAwMEExRiAgICAgKGJhc2UgMTYpCQlBUlQgV0FSRSBUZWxlY29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKwkJCQk4MDYgQWNlIFRlY2hubyBUb3dlciAjMSwgMTk3LTE3CisJCQkJR3Vyby1kb25nLCBHdXJvLUd1CisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtMjAgICAoaGV4KQkJU1ZBIE5ldHdvcmtzLCBJbmMuCiswMDBBMjAgICAgIChiYXNlIDE2KQkJU1ZBIE5ldHdvcmtzLCBJbmMuCisJCQkJODQwIEYgQXZlLiwgU3VpdGUgMTA0CisJCQkJUGxhbm8gVFggNzUwNzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTIxICAgKGhleCkJCUludGVncmEgVGVsZWNvbSBDby4gTHRkCiswMDBBMjEgICAgIChiYXNlIDE2KQkJSW50ZWdyYSBUZWxlY29tIENvLiBMdGQKKwkJCQk3dGggZmxvb3IgSHdheW91bmcgQmxkLiAxMTItMgorCQkJCUthcmFrLWRvbmcgU29ucGEtZ3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLTIyICAgKGhleCkJCUFtcGVyaW9uIEluYworMDAwQTIyICAgICAoYmFzZSAxNikJCUFtcGVyaW9uIEluYworCQkJCTI1MCBBcG9sbG8gRHJpdmUKKwkJCQlDaGVsbXNmb3JkIE1BIDAxODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0yMyAgIChoZXgpCQlQYXJhbWEgTmV0d29ya3MgSW5jCiswMDBBMjMgICAgIChiYXNlIDE2KQkJUGFyYW1hIE5ldHdvcmtzIEluYworCQkJCTE5NTUgVGhlIEFsYW1lZGEKKwkJCQlTYW4gSm9zZSBDQSA5NTEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMjQgICAoaGV4KQkJT2N0YXZlIENvbW11bmljYXRpb25zCiswMDBBMjQgICAgIChiYXNlIDE2KQkJT2N0YXZlIENvbW11bmljYXRpb25zCisJCQkJODUgTm9ydGh3ZXN0IEJvdWxldmFyZAorCQkJCU5hc2h1YSBOSCAwMzA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMjUgICAoaGV4KQkJQ0VSQUdPTiBORVRXT1JLUworMDAwQTI1ICAgICAoYmFzZSAxNikJCUNFUkFHT04gTkVUV09SS1MKKwkJCQkyNCBSQVVFTCBXQUxMRU5CRVJHIFNUUkVFVAorCQkJCVRFTC1BVklWICA5NjcxOQorCQkJCUlTUkFFTAorCiswMC0wQS0yNiAgIChoZXgpCQlDRUlBIFMucC5BLgorMDAwQTI2ICAgICAoYmFzZSAxNikJCUNFSUEgUy5wLkEuCisJCQkJWm9uYSBJbmR1c3RyaWFsZSBkaSBWaWNpb21hZ2dpbyA1NAorCQkJCUFyZXp6byBBUiA1MjA0MAorCQkJCUlUQUxZCisKKzAwLTBBLTI3ICAgKGhleCkJCUFwcGxlIENvbXB1dGVyLCBJbmMuCiswMDBBMjcgICAgIChiYXNlIDE2KQkJQXBwbGUgQ29tcHV0ZXIsIEluYy4KKwkJCQkyMDY1MCBWYWxsZXkgR3JlZW4gRHJpdmUKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTI4ICAgKGhleCkJCU1vdG9yb2xhCiswMDBBMjggICAgIChiYXNlIDE2KQkJTW90b3JvbGEKKwkJCQk2MDAgTi4gVVMgSHd5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0yOSAgIChoZXgpCQlQYW4gRGFjb20gTmV0d29ya2luZyBBRworMDAwQTI5ICAgICAoYmFzZSAxNikJCVBhbiBEYWNvbSBOZXR3b3JraW5nIEFHCisJCQkJRHJlaWVpY2ggUGxhemEgMUIKKwkJCQlEcmVpZWljaCBIZXNzZW4gRC02MzMwMworCQkJCUdFUk1BTlkKKworMDAtMEEtMkEgICAoaGV4KQkJUVNJIFN5c3RlbXMgSW5jLgorMDAwQTJBICAgICAoYmFzZSAxNikJCVFTSSBTeXN0ZW1zIEluYy4KKwkJCQk3IFJheW1vbmQgQXZlbnVlCisJCQkJQnVpbGRpbmcgQiwgVW5pdCAxMQorCQkJCVNhbGVtIE5IIDAzMDc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0yQiAgIChoZXgpCQlFdGhlcnN0dWZmCiswMDBBMkIgICAgIChiYXNlIDE2KQkJRXRoZXJzdHVmZgorCQkJCTIwOCBXLiBNaW1vc2EgQ2lyY2xlCisJCQkJU2FuIE1hcmNvcyBUWCA3ODY2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMkMgICAoaGV4KQkJQWN0aXZlIFRjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAwQTJDICAgICAoYmFzZSAxNikJCUFjdGl2ZSBUY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQkxNi0yMywgU2hpYmF1cmEgMi1DaG9tZSwKKwkJCQlNaW5hdG8ta3UsCisJCQkJVG9reW8gVG9reW8gMTA4LTAwMjMKKwkJCQlKQVBBTgorCiswMC0wQS0yRCAgIChoZXgpCQlDYWJvdCBDb21tdW5pY2F0aW9ucyBMaW1pdGVkCiswMDBBMkQgICAgIChiYXNlIDE2KQkJQ2Fib3QgQ29tbXVuaWNhdGlvbnMgTGltaXRlZAorCQkJCVZlcm9uYSBIb3VzZQorCQkJCUZpbHdvb2QgUm9hZAorCQkJCUJyaXN0b2wgR2xvdWNlc3RlcnNoaXJlIEJTMTYgM1JZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEEtMkUgICAoaGV4KQkJTUFQTEUgTkVUV09SS1MgQ08uLCBMVEQKKzAwMEEyRSAgICAgKGJhc2UgMTYpCQlNQVBMRSBORVRXT1JLUyBDTy4sIExURAorCQkJCTYwMiwgRG9uZ3doYQorCQkJCTM0OS0yNCwgU2hpbmRhZWJhbmctRG9uZywgRG9uZ2phay1HdQorCQkJCVNFT1VMICAxNTYtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLTJGICAgKGhleCkJCUFydG5peCBJbmMuCiswMDBBMkYgICAgIChiYXNlIDE2KQkJQXJ0bml4IEluYy4KKwkJCQlDaHVuZ2ppbiBCL0QsIDQ3NS0yMiBCYW5nYmFlLCBTZW9jaG8KKwkJCQlTZW91bCAgMTM3LTgxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS0zMCAgIChoZXgpCQlKb2huc29uIENvbnRyb2xzLUFTRworMDAwQTMwICAgICAoYmFzZSAxNikJCUpvaG5zb24gQ29udHJvbHMtQVNHCisJCQkJOTE1IEVhc3QgMzJuZCBTdHJlZXQKKwkJCQlIb2xsYW5kIE1JIDQ5NDIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0zMSAgIChoZXgpCQlIQ1YgQ29uc3VsdGluZworMDAwQTMxICAgICAoYmFzZSAxNikJCUhDViBDb25zdWx0aW5nCisJCQkJUCBPIEJveCAzNjkyCisJCQkJSGVsZW5zdmFsZSBUb3duIENlbnRyZSA0MjEyCisJCQkJUXVlZW5zbGFuZCAgIDQyMTIKKwkJCQlBVVNUUkFMSUEKKworMDAtMEEtMzIgICAoaGV4KQkJWHNpZG8gQ29ycG9yYXRpb24KKzAwMEEzMiAgICAgKGJhc2UgMTYpCQlYc2lkbyBDb3Jwb3JhdGlvbgorCQkJCTNGLDItOC0xMyxTaGliYS1EYWltb24sCisJCQkJTWluYXRvLWt1CisJCQkJVG9reW8gIDEwNS0wMDEyCisJCQkJSkFQQU4KKworMDAtMEEtMzMgICAoaGV4KQkJRW11bGV4IENvcnBvcmF0aW9uCiswMDBBMzMgICAgIChiYXNlIDE2KQkJRW11bGV4IENvcnBvcmF0aW9uCisJCQkJMjAyMSBPcHBvcnR1bml0eSBEcml2ZQorCQkJCVN1aXRlIDEKKwkJCQlSb3NldmlsbGUgQ0EgOTU2NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTM0ICAgKGhleCkJCUlkZW50aWNhcmQgU3lzdGVtcyBJbmNvcnBvcmF0ZWQKKzAwMEEzNCAgICAgKGJhc2UgMTYpCQlJZGVudGljYXJkIFN5c3RlbXMgSW5jb3Jwb3JhdGVkCisJCQkJNDAgQ2l0YXRpb24gTGFuZQorCQkJCUxhbmNhc3RlciBQZW5uc3lsdmFuaWEgMTc2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTM1ICAgKGhleCkJCVhpbGlueAorMDAwQTM1ICAgICAoYmFzZSAxNikJCVhpbGlueAorCQkJCTIxMDAgTG9naWMgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NDExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtMzYgICAoaGV4KQkJU3luZWxlYyBUZWxlY29tIE11bHRpbWVkaWEKKzAwMEEzNiAgICAgKGJhc2UgMTYpCQlTeW5lbGVjIFRlbGVjb20gTXVsdGltZWRpYQorCQkJCVpvbmUgSW5kdXN0cmllbGxlCisJCQkJU2FpbnQgU2VybmluIHN1ciBSYW5jZSBBdmV5cm9uIEYtMTIzODAKKwkJCQlGUkFOQ0UKKworMDAtMEEtMzcgICAoaGV4KQkJUHJvY2VyYSBOZXR3b3JrcywgSW5jLgorMDAwQTM3ICAgICAoYmFzZSAxNikJCVByb2NlcmEgTmV0d29ya3MsIEluYy4KKwkJCQkxMjk5IE9ybGVhbnMgRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTM4ICAgKGhleCkJCUFwYW5pIE5ldHdvcmtzCiswMDBBMzggICAgIChiYXNlIDE2KQkJQXBhbmkgTmV0d29ya3MKKwkJCQkxODAwIEUuIEltcGVyaWFsIEh3eQorCQkJCVN1aXRlIDIxMAorCQkJCUJyZWEgQ0EgOTI4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTM5ICAgKGhleCkJCUxvUEEgSW5mb3JtYXRpb24gVGVjaG5vbG9neQorMDAwQTM5ICAgICAoYmFzZSAxNikJCUxvUEEgSW5mb3JtYXRpb24gVGVjaG5vbG9neQorCQkJCTcxMC05LCBEYWUgTGltIDMtRG9uZworCQkJCVlvdW5nIERldW5nIHBvLWd1IFNlb3VsLCBLb3JlYSAxNTAtODE0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLTNBICAgKGhleCkJCUotVEhSRUUgSU5URVJOQVRJT05BTCBIb2xkaW5nIENvLiwgTHRkLgorMDAwQTNBICAgICAoYmFzZSAxNikJCUotVEhSRUUgSU5URVJOQVRJT05BTCBIb2xkaW5nIENvLiwgTHRkLgorCQkJCU5vLiAxLCBZdS0zIFJkLiwgWW91dGggSW5kdXN0cmlhbCBQYXJrCisJCQkJWWFuZy1tZWksIFRhb3l1YW4gSHNpZW4gIDMyNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtM0IgICAoaGV4KQkJR0NUIFNlbWljb25kdWN0b3IsIEluYworMDAwQTNCICAgICAoYmFzZSAxNikJCUdDVCBTZW1pY29uZHVjdG9yLCBJbmMKKwkJCQkyMTIxIFJpbmd3b29kIEF2ZW51ZQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS0zQyAgIChoZXgpCQlFbmVycG9pbnQgTHRkLgorMDAwQTNDICAgICAoYmFzZSAxNikJCUVuZXJwb2ludCBMdGQuCisJCQkJS2Fpdm9wdWlzdG9udGllIDMzCisJCQkJUmF1bWEgIDI2MTAwCisJCQkJRklOTEFORAorCiswMC0wQS0zRCAgIChoZXgpCQlFbG8gU2lzdGVtYXMgRWxldHJvbmljb3MgUy5BLgorMDAwQTNEICAgICAoYmFzZSAxNikJCUVsbyBTaXN0ZW1hcyBFbGV0cm9uaWNvcyBTLkEuCisJCQkJUnVhIEVkdSBDaGF2ZXMsIDU0NworCQkJCVBvcnRvIEFsZWdyZSBSUyA5MC4yNDAtNjIwCisJCQkJQlJBWklMCisKKzAwLTBBLTNFICAgKGhleCkJCUVBRFMgVGVsZWNvbQorMDAwQTNFICAgICAoYmFzZSAxNikJCUVBRFMgVGVsZWNvbQorCQkJCUxhbmRzaHV0ZXIgU3RyYXNzZSAyNgorCQkJCU11bmljaCBCYXZhcmlhIDg1NzE2CisJCQkJR0VSTUFOWQorCiswMC0wQS0zRiAgIChoZXgpCQlEYXRhIEVhc3QgQ29ycG9yYXRpb24KKzAwMEEzRiAgICAgKGJhc2UgMTYpCQlEYXRhIEVhc3QgQ29ycG9yYXRpb24KKwkJCQk0LTQxLTEwIE1pbmFtaS1PZ2lrdWJvCisJCQkJU3VnaW5hbWkta3UgVE9LWU8gMTY3LTAwNTIKKwkJCQlKQVBBTgorCiswMC0wQS00MCAgIChoZXgpCQlDcm93biBBdWRpbyAtLSBIYXJtYW5tIEludGVybmF0aW9uYWwKKzAwMEE0MCAgICAgKGJhc2UgMTYpCQlDcm93biBBdWRpbyAtLSBIYXJtYW5tIEludGVybmF0aW9uYWwKKwkJCQkxNzE4IFcuIE1pc2hhd2FrYSBSZAorCQkJCUVsa2hhcnQgSU4gNDY1MTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTQxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEE0MSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTQyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEE0MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTQzICAgKGhleCkJCUNodW5naHdhIFRlbGVjb20gQ28uLCBMdGQuCiswMDBBNDMgICAgIChiYXNlIDE2KQkJQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4KKwkJCQkxMiwgTGFuZSA1NTEsIE1pbi1Uc3UgUm9hZAorCQkJCVNlYy4gNSBZYW5nLU1laSwKKwkJCQlUYW95dWFuICAzMjYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTQ0ICAgKGhleCkJCUF2ZXJ5IERlbm5pc29uIERldXRzY2hsYW5kIEdtYkgKKzAwMEE0NCAgICAgKGJhc2UgMTYpCQlBdmVyeSBEZW5uaXNvbiBEZXV0c2NobGFuZCBHbWJICisJCQkJT2htc3RyLiAzCisJCQkJRWNoaW5nICA4NTM4NgorCQkJCUdFUk1BTlkKKworMDAtMEEtNDUgICAoaGV4KQkJQXVkaW8tVGVjaG5pY2EgQ29ycC4KKzAwMEE0NSAgICAgKGJhc2UgMTYpCQlBdWRpby1UZWNobmljYSBDb3JwLgorCQkJCU5hcnVzZSAxLDM0OAorCQkJCU1hY2hpZGEgVG9reW8gMTk0LTg1NjYKKwkJCQlKQVBBTgorCiswMC0wQS00NiAgIChoZXgpCQlBUk8gV0VMRElORyBURUNITk9MT0dJRVMgU0FTCiswMDBBNDYgICAgIChiYXNlIDE2KQkJQVJPIFdFTERJTkcgVEVDSE5PTE9HSUVTIFNBUworCQkJCVpJIGRlIE1vbnQgc3VyIExvaXIKKwkJCQlDaGF0ZWF1IGR1IExvaXIgc2FydGhlIDcyNTAwCisJCQkJRlJBTkNFCisKKzAwLTBBLTQ3ICAgKGhleCkJCUFsbGllZCBWaXNpb24gVGVjaG5vbG9naWVzCiswMDBBNDcgICAgIChiYXNlIDE2KQkJQWxsaWVkIFZpc2lvbiBUZWNobm9sb2dpZXMKKwkJCQlUYXNjaGVud2VnIDJhCisJCQkJU3RhZHRyb2RhIFRow7xyaW5nZW4gMDc2NDYKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTQ4ICAgKGhleCkJCUFsYmF0cm9uIFRlY2hub2xvZ3kKKzAwMEE0OCAgICAgKGJhc2UgMTYpCQlBbGJhdHJvbiBUZWNobm9sb2d5CisJCQkJNkYsIE5vIDcxNiwgQ2h1bmcgQ2hlbmcsCisJCQkJQ2h1bmctSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS00OSAgIChoZXgpCQlGNSBOZXR3b3JrcywgSW5jLgorMDAwQTQ5ICAgICAoYmFzZSAxNikJCUY1IE5ldHdvcmtzLCBJbmMuCisJCQkJNDAxIEVsbGlvdHQgQXZlLiBXLgorCQkJCVNlYXR0bGUgV0EgOTgxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTRBICAgKGhleCkJCVRhcmdhIFN5c3RlbXMgTHRkLgorMDAwQTRBICAgICAoYmFzZSAxNikJCVRhcmdhIFN5c3RlbXMgTHRkLgorCQkJCTE5MDUgR3JhbmR0ZWNoIENlbnRyZSwKKwkJCQk4IE9uIFBpbmcgU3QuICBTaXUgTGVrIFl1ZW4KKwkJCQlTaGF0aW4gTi5ULiAKKwkJCQlIT05HIEtPTkcKKworMDAtMEEtNEIgICAoaGV4KQkJRGF0YVBvd2VyIFRlY2hub2xvZ3ksIEluYy4KKzAwMEE0QiAgICAgKGJhc2UgMTYpCQlEYXRhUG93ZXIgVGVjaG5vbG9neSwgSW5jLgorCQkJCU9uZSBBbGV3aWZlIENlbnRlcgorCQkJCUNhbWJyaWRnZSBNQSAwMjE0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNEMgICAoaGV4KQkJTW9sZWN1bGFyIERldmljZXMgQ29ycG9yYXRpb24KKzAwMEE0QyAgICAgKGJhc2UgMTYpCQlNb2xlY3VsYXIgRGV2aWNlcyBDb3Jwb3JhdGlvbgorCQkJCTEzMTEgT3JsZWFucyBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNEQgICAoaGV4KQkJTm9yaXR6IENvcnBvcmF0aW9uCiswMDBBNEQgICAgIChiYXNlIDE2KQkJTm9yaXR6IENvcnBvcmF0aW9uCisJCQkJNSBNaW5hbWktRnV0YW1pLAorCQkJCUZ1dGFtaS1jaG8sCisJCQkJQWthc2hpLXNoaSBIeW9nbyA2NzQtMDA5MworCQkJCUpBUEFOCisKKzAwLTBBLTRFICAgKGhleCkJCVVOSVRFSyBFbGVjdHJvbmljcyBJTkMuCiswMDBBNEUgICAgIChiYXNlIDE2KQkJVU5JVEVLIEVsZWN0cm9uaWNzIElOQy4KKwkJCQkxLTE4LTQKKwkJCQlPaG1vcmkta2l0YQorCQkJCU9odGEta3UgVG9reW8gMTQzLTAwMTYKKwkJCQlKQVBBTgorCiswMC0wQS00RiAgIChoZXgpCQlCcmFpbiBCb3hlcyBMaW1pdGVkCiswMDBBNEYgICAgIChiYXNlIDE2KQkJQnJhaW4gQm94ZXMgTGltaXRlZAorCQkJCVVuaXQgM2MsIFdhdmVydHJlZSBCb3VsZXZhcmQgU291dGgKKwkJCQlXYXZlcnRyZWUgVGVjaG5vbG9neSBQYXJrCisJCQkJTGl2ZXJwb29sIE1lcnNleXNpZGUgTDcgOVBGCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEEtNTAgICAoaGV4KQkJUkVNT1RFSyBDT1JQT1JBVElPTgorMDAwQTUwICAgICAoYmFzZSAxNikJCVJFTU9URUsgQ09SUE9SQVRJT04KKwkJCQk2Ri02LCBObyA3NywgU2VjIDEsIEhTSU4gVEFJIFdVIFJPQUQsCisJCQkJSFNJLUNISUggVEFJUEVJIEhTSUVOIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtNTEgICAoaGV4KQkJR3lyb1NpZ25hbCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwQTUxICAgICAoYmFzZSAxNikJCUd5cm9TaWduYWwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk1RixOby4gNzcsTGlkZSBTdC4KKwkJCQlaaG9uZ2hlIENpdHkgVGFpcGVpIENvdW50eSAyMzU1NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtNTIgICAoaGV4KQkJQXNpYVJGIEx0ZC4KKzAwMEE1MiAgICAgKGJhc2UgMTYpCQlBc2lhUkYgTHRkLgorCQkJCTRGLiwgTm8uMiwgTGFuZSA1NjAKKwkJCQlaaG9uZ3poZW5nIFJkLgorCQkJCVhpbmRpYW4gQ2l0eSBUYWlwZWkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS01MyAgIChoZXgpCQlJbnRyb25pY3MsIEluY29ycG9yYXRlZAorMDAwQTUzICAgICAoYmFzZSAxNikJCUludHJvbmljcywgSW5jb3Jwb3JhdGVkCisJCQkJMjAyMCBMYWZheWV0dGUgQmx2ZC4KKwkJCQlGcmVkZXJpY2tzYnVyZyBWaXJnaW5pYSAyMjQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNTQgICAoaGV4KQkJTGFndW5hIEhpbGxzLCBJbmMuCiswMDBBNTQgICAgIChiYXNlIDE2KQkJTGFndW5hIEhpbGxzLCBJbmMuCisJCQkJMS0yNS0xIDM1RiBGbC4sIE5pc2hpc2hpbmp1a3UKKwkJCQlTaGluanVrdS1rdSBUb2t5byAxNjMwNjM1CisJCQkJSkFQQU4KKworMDAtMEEtNTUgICAoaGV4KQkJTUFSS0VNIENvcnBvcmF0aW9uCiswMDBBNTUgICAgIChiYXNlIDE2KQkJTUFSS0VNIENvcnBvcmF0aW9uCisJCQkJMTUwIENvbmdyZXNzIFN0cmVldAorCQkJCUtlZW5lIE5IIDAzNDMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS01NiAgIChoZXgpCQlISVRBQ0hJIE1heGVsbCBMdGQuCiswMDBBNTYgICAgIChiYXNlIDE2KQkJSElUQUNISSBNYXhlbGwgTHRkLgorCQkJCTYtMjAtMSBLaW51bm9kYWkKKwkJCQlZYXdhcmEtbXVyYSwgVHN1a3ViYS1ndW4gSUJBUkFLSSAzMDAtMjQ5NgorCQkJCUpBUEFOCisKKzAwLTBBLTU3ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55IC0gU3RhbmRhcmRzCiswMDBBNTcgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkgLSBTdGFuZGFyZHMKKwkJCQkxMDk1NSBUYW50YXUgQXZlbnVlCisJCQkJTWFpbHN0b3AgNDEzOAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNTggICAoaGV4KQkJSW5nZW5pZXVyLUJ1ZXJvIEZyZXllciAmIFNpZWdlbAorMDAwQTU4ICAgICAoYmFzZSAxNikJCUluZ2VuaWV1ci1CdWVybyBGcmV5ZXIgJiBTaWVnZWwKKwkJCQlOZXVlbmRvcmZzdHIuIDE4IGIKKwkJCQlIZW5uaWdzZG9yZiBCcmFuZGVuYnVyZyAxNjc2MQorCQkJCUdFUk1BTlkKKworMDAtMEEtNTkgICAoaGV4KQkJSFcgc2VydmVyCiswMDBBNTkgICAgIChiYXNlIDE2KQkJSFcgc2VydmVyCisJCQkJSXRhbHNrYSAxNQorCQkJCVByYWd1ZSAyIEN6ZWNoIFJlcHVibGljIDEyMCAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTBBLTVBICAgKGhleCkJCUdyZWVuTkVUIFRlY2hub2xvZ2llcyBDby4sTHRkLgorMDAwQTVBICAgICAoYmFzZSAxNikJCUdyZWVuTkVUIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCU5vLjEwLCBRaW9uZ3l1IFJvYWQsU2NpZW5jZXMtYmFzZWQgSW5kdXMKKwkJCQlOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTBBLTVCICAgKGhleCkJCVBvd2VyLU9uZSBhcworMDAwQTVCICAgICAoYmFzZSAxNikJCVBvd2VyLU9uZSBhcworCQkJCVAuTy4gQm94IDE1NDMKKwkJCQlEcmFtbWVuICAzMDA3CisJCQkJTk9SV0FZCisKKzAwLTBBLTVDICAgKGhleCkJCUNhcmVsIHMucC5hLgorMDAwQTVDICAgICAoYmFzZSAxNikJCUNhcmVsIHMucC5hLgorCQkJCVZpYSBkZWxsJyBJbmR1c3RyaWEsIDExCisJCQkJQnJ1Z2luZSBQYWRvdmEgMzUwMjAKKwkJCQlJVEFMWQorCiswMC0wQS01RCAgIChoZXgpCQlQVUMgRm91bmRlciAoTVNDKSBCZXJoYWQKKzAwMEE1RCAgICAgKGJhc2UgMTYpCQlQVUMgRm91bmRlciAoTVNDKSBCZXJoYWQKKwkJCQlMb3QgRy0xICYgRy0yLCBJbmN1YmF0b3IgMQorCQkJCVRlY2hub2xvZ3kgUGFyayBNYWxheXNpYQorCQkJCUt1YWxhIEx1bXB1ciBXUCA1NzAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTBBLTVFICAgKGhleCkJCTNDT00gQ29ycG9yYXRpb24KKzAwMEE1RSAgICAgKGJhc2UgMTYpCQkzQ09NIENvcnBvcmF0aW9uCisJCQkJNTQwMCBCYXlmcm9udCBQbGF6YQorCQkJCU0vUyA1MTE5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTItODE0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNUYgICAoaGV4KQkJYWxtZWRpbyBpbmMuCiswMDBBNUYgICAgIChiYXNlIDE2KQkJYWxtZWRpbyBpbmMuCisJCQkJMzItMTMsIHNha2FlLWNobyAyIGNob21lCisJCQkJaGlnYXNoaW11cmF5YW1hLXNoaSB0b2t5byAxODktMDAxMworCQkJCUpBUEFOCisKKzAwLTBBLTYwICAgKGhleCkJCUF1dG9zdGFyIFRlY2hub2xvZ3kgUHRlIEx0ZAorMDAwQTYwICAgICAoYmFzZSAxNikJCUF1dG9zdGFyIFRlY2hub2xvZ3kgUHRlIEx0ZAorCQkJCVVuaXQgMDQtMTAgVEVDSHBsYWNlIElJCisJCQkJU2luZ2Fwb3JlIFNpbmdhcG9yZSA1Njk4NzYKKwkJCQlTSU5HQVBPUkUKKworMDAtMEEtNjEgICAoaGV4KQkJQ2VsbGlueCBTeXN0ZW1zIEluYy4KKzAwMEE2MSAgICAgKGJhc2UgMTYpCQlDZWxsaW54IFN5c3RlbXMgSW5jLgorCQkJCTQwOCBXb29zdW5nIENoYXJhY3RlcjE5OSBvZmZpY2V0ZWwKKwkJCQk0NjctMjQgZG9nb2stZG9uZyBrYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS04NTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtNjIgICAoaGV4KQkJQ3JpbmlzIE5ldHdvcmtzLCBJbmMuCiswMDBBNjIgICAgIChiYXNlIDE2KQkJQ3JpbmlzIE5ldHdvcmtzLCBJbmMuCisJCQkJMjA5OSBOLiBDb2xsaW5zIEJsdmQsIFN1aXRlIDIwMAorCQkJCVJpY2hhcmRzb24gVFggNzUwODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTYzICAgKGhleCkJCURIRCBHbWJICiswMDBBNjMgICAgIChiYXNlIDE2KQkJREhEIEdtYkgKKwkJCQlIYWZlcmtvcm5zdHJhc3NlIDUKKwkJCQlMZWlwemlnIFNhY2hzZW4gMDQxMjkKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTY0ICAgKGhleCkJCUVyYWNvbSBUZWNobm9sb2dpZXMKKzAwMEE2NCAgICAgKGJhc2UgMTYpCQlFcmFjb20gVGVjaG5vbG9naWVzCisJCQkJMjggR3JlZyBDaGFwcGVsbCBEcml2ZQorCQkJCUJ1cmxlaWdoIEhlYWRzIFFsZCA0MjIwCisJCQkJQVVTVFJBTElBCisKKzAwLTBBLTY1ICAgKGhleCkJCUdlbnRlY2hNZWRpYS5jby4sbHRkLgorMDAwQTY1ICAgICAoYmFzZSAxNikJCUdlbnRlY2hNZWRpYS5jby4sbHRkLgorCQkJCXNvbHZpdCBibGRnIDJmLCA0MDItOCwgeWFuZ2phZS1kb24sCisJCQkJc2VvY2hvLWd1LCBzZW91bCAxMzctODk5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLTY2ICAgKGhleCkJCU1JVFNVQklTSEkgRUxFQ1RSSUMgU1lTVEVNICYgU0VSVklDRSBDTy4sTFRELgorMDAwQTY2ICAgICAoYmFzZSAxNikJCU1JVFNVQklTSEkgRUxFQ1RSSUMgU1lTVEVNICYgU0VSVklDRSBDTy4sTFRELgorCQkJCTEtNC0xMyBPT1lPRE9OQUtBLEtJVEEtS1UKKwkJCQlPU0FLQSAgNTMxLTAwNzYKKwkJCQlKQVBBTgorCiswMC0wQS02NyAgIChoZXgpCQlPbmdDb3JwCiswMDBBNjcgICAgIChiYXNlIDE2KQkJT25nQ29ycAorCQkJCTQ4MSBIYWNrZW5zYWNrIEF2ZS4KKwkJCQlIYWNrZW5zYWNrIE5KIDA3NjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS02OCAgIChoZXgpCQlTb2xhckZsYXJlIENvbW11bmljYXRpb25zLCBJbmMuCiswMDBBNjggICAgIChiYXNlIDE2KQkJU29sYXJGbGFyZSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTk1MDEgSmVyb25pbW8KKwkJCQlTdWl0ZSAxMDAKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTY5ICAgKGhleCkJCVNVTk5ZIGJlbGwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMEE2OSAgICAgKGJhc2UgMTYpCQlTVU5OWSBiZWxsIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJIzUwMiBCVVdPTiBCL0QgMTA3LTQ1IEJBTlBPLURPTkcKKwkJCQlTRU9DSE8tS1UKKwkJCQlTRU9VTCAgMTM3LTgwNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS02QSAgIChoZXgpCQlTVk0gTWljcm93YXZlcyBzLnIuby4KKzAwMEE2QSAgICAgKGJhc2UgMTYpCQlTVk0gTWljcm93YXZlcyBzLnIuby4KKwkJCQlVIE1yYXpvdmt5IDUKKwkJCQlQcmFoYSA1ICAxNTAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTBBLTZCICAgKGhleCkJCVRhZGlyYW4gVGVsZWNvbSBCdXNpbmVzcyBTeXN0ZW1zIExURAorMDAwQTZCICAgICAoYmFzZSAxNikJCVRhZGlyYW4gVGVsZWNvbSBCdXNpbmVzcyBTeXN0ZW1zIExURAorCQkJCTE4IEhhc2l2aW0gU3QuCisJCQkJUC5PLkJveCA0NTAKKwkJCQlQZXRhY2ggVGlrdmEgIDQ5MTA1CisJCQkJSVNSQUVMCisKKzAwLTBBLTZDICAgKGhleCkJCVdhbGNoZW0gQ29ycG9yYXRpb24KKzAwMEE2QyAgICAgKGJhc2UgMTYpCQlXYWxjaGVtIENvcnBvcmF0aW9uCisJCQkJNSBCb3ludG9uIFJvYWQKKwkJCQlIb2xsaXN0b24gTUEgMDE3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTZEICAgKGhleCkJCUVLUyBFbGVrdHJvbmlrc2VydmljZSBHbWJICiswMDBBNkQgICAgIChiYXNlIDE2KQkJRUtTIEVsZWt0cm9uaWtzZXJ2aWNlIEdtYkgKKwkJCQlFbnpzdHIuIDkKKwkJCQlLb3Jud2VzdGhlaW0gQmFkZW4gV8O8cnRlbWJlcmcgNzA4MDYKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTZFICAgKGhleCkJCUJyb2FkY2FzdCBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMEE2RSAgICAgKGJhc2UgMTYpCQlCcm9hZGNhc3QgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJNiBTb3B3aXRoIFBhcmssIFJveWNlIENsb3NlCisJCQkJV2VzdCBQb3J0d2F5IEluZHVzdHJpYWwgRXN0YXRlCisJCQkJQW5kb3ZlciBIYW1wc2hpcmUgU1AxMCAzVEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQS02RiAgIChoZXgpCQlaeUZMRVggVGVjaG5vbG9naWVzIEluYworMDAwQTZGICAgICAoYmFzZSAxNikJCVp5RkxFWCBUZWNobm9sb2dpZXMgSW5jCisJCQkJMkZsLiBOby4gNTggUGFyayBBdmUuIElJCisJCQkJUy5CLkkuUC4sIEhzaW5jaHUgIDMwMDc3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS03MCAgIChoZXgpCQlNUExTIEZvcnVtCiswMDBBNzAgICAgIChiYXNlIDE2KQkJTVBMUyBGb3J1bQorCQkJCTM5MzU1IENhbGlmb3JuaWEgU3RyZWV0CisJCQkJU3VpdGUgMzA3CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNzEgICAoaGV4KQkJQXZyaW8gVGVjaG5vbG9naWVzLCBJbmMKKzAwMEE3MSAgICAgKGJhc2UgMTYpCQlBdnJpbyBUZWNobm9sb2dpZXMsIEluYworCQkJCTI2NTUgQSBQYXJrIENlbnRlciBEcml2ZQorCQkJCVNpbWkgVmFsbGV5IENBIDkxMzU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS03MiAgIChoZXgpCQlTVEVDLCBJTkMuCiswMDBBNzIgICAgIChiYXNlIDE2KQkJU1RFQywgSU5DLgorCQkJCTMwMDEgRGFpbWxlciBTdHJlZXQKKwkJCQlTYW50YSBBbmEgQ0EgOTI3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTczICAgKGhleCkJCVNjaWVudGlmaWMgQXRsYW50YQorMDAwQTczICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMgQXRsYW50YQorCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlNUyA1LjI0MjUKKwkJCQlMYXdyZW5jZXZpbGxlIEdhIDMwMDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS03NCAgIChoZXgpCQlNYW50aWNvbSBOZXR3b3JrcyBJbmMuCiswMDBBNzQgICAgIChiYXNlIDE2KQkJTWFudGljb20gTmV0d29ya3MgSW5jLgorCQkJCTE0MDE2LUMgU3VsbHlmaWVsZCBDaXJjbGUKKwkJCQlDaGFudGlsbHkgVkEgMjAxNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTc1ICAgKGhleCkJCUNhdGVycGlsbGFyLCBJbmMKKzAwMEE3NSAgICAgKGJhc2UgMTYpCQlDYXRlcnBpbGxhciwgSW5jCisJCQkJTWFpbHN0b3AgTG9jYXRpb24gQUM2MTMwCisJCQkJUE8gQm94IDYxMAorCQkJCU1vc3N2aWxsZSBJTCA2MTU1Mi0wNjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS03NiAgIChoZXgpCQlCZWlkYSBKYWRlIEJpcmQgSHVhZ3VhbmcgVGVjaG5vbG9neSBDby4sTHRkCiswMDBBNzYgICAgIChiYXNlIDE2KQkJQmVpZGEgSmFkZSBCaXJkIEh1YWd1YW5nIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCU5vLjIwNyBDaGVuZ2Z1IFJvYWQsIEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDA4NzEKKwkJCQlDSElOQQorCiswMC0wQS03NyAgIChoZXgpCQlCbHVld2lyZSBUZWNobm9sb2dpZXMgTExDCiswMDBBNzcgICAgIChiYXNlIDE2KQkJQmx1ZXdpcmUgVGVjaG5vbG9naWVzIExMQworCQkJCTQyMCBOLiBPIFN0LgorCQkJCVR1bGFyZSBDYSA5MzI3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtNzggICAoaGV4KQkJT0xJVEVDCiswMDBBNzggICAgIChiYXNlIDE2KQkJT0xJVEVDCisJCQkJQi5QLiA1OTIKKwkJCQk4NywgcnVlIE1hYyBNYWhvbgorCQkJCU5BTkNZIGNlZGV4ICA1NDAwOQorCQkJCUZSQU5DRQorCiswMC0wQS03OSAgIChoZXgpCQlBbGxpZWQgVGVsZXNpcyBLLksuIGNvcmVnYSBkaXZpc2lvbgorMDAwQTc5ICAgICAoYmFzZSAxNikJCUFsbGllZCBUZWxlc2lzIEsuSy4gY29yZWdhIGRpdmlzaW9uCisJCQkJMS0xOS0yMCwgU2hpbnlva29oYW1hCisJCQkJS291aG9rdS1rdQorCQkJCVlva29oYW1hLWNpdHkgS2FuYWdhd2Eta2VuIDIyMi0wMDMzCisJCQkJSkFQQU4KKworMDAtMEEtN0EgICAoaGV4KQkJS3lvcml0c3UgRWxlY3RyaWMgQ28uLCBMdGQuCiswMDBBN0EgICAgIChiYXNlIDE2KQkJS3lvcml0c3UgRWxlY3RyaWMgQ28uLCBMdGQuCisJCQkJMi0zLTE3CisJCQkJSXdhdG8tbWluYW1pCisJCQkJS29tYWUtc2hpIFRva3lvIDIwMS0wMDA1CisJCQkJSkFQQU4KKworMDAtMEEtN0IgICAoaGV4KQkJQ29ybmVsaXVzIENvbnN1bHQKKzAwMEE3QiAgICAgKGJhc2UgMTYpCQlDb3JuZWxpdXMgQ29uc3VsdAorCQkJCUFtIFNpZXBlbiAxNworCQkJCUJvY2h1bSBOUlcgNDQ4MDMKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTdDICAgKGhleCkJCVRlY3RvbiBMdGQKKzAwMEE3QyAgICAgKGJhc2UgMTYpCQlUZWN0b24gTHRkCisJCQkJRmlzaGVycyBDb3VydAorCQkJCUZpc2hlcnMgUG9uZAorCQkJCUVhc3RsZWlnaCBIYW1wc2hpcmUgU081MCA3SEcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQS03RCAgIChoZXgpCQlWYWxvLCBJbmMuCiswMDBBN0QgICAgIChiYXNlIDE2KQkJVmFsbywgSW5jLgorCQkJCTEzNTEgUmVkd29vZCBXYXkKKwkJCQlQZXRhbHVtYSBDQSA5NDk1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtN0UgICAoaGV4KQkJVGhlIEFkdmFudGFnZSBHcm91cAorMDAwQTdFICAgICAoYmFzZSAxNikJCVRoZSBBZHZhbnRhZ2UgR3JvdXAKKwkJCQkxNjEwIERlcyBQZXJlcyBSb2FkCisJCQkJU3VpdGUgMzcwCisJCQkJU3QuIExvdWlzIE1PIDYzMTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS03RiAgIChoZXgpCQlUZXJhZG9uIEluZHVzdHJpZXMsIEluYworMDAwQTdGICAgICAoYmFzZSAxNikJCVRlcmFkb24gSW5kdXN0cmllcywgSW5jCisJCQkJNzUwMCAybmQgU1QgTlcKKwkJCQlBbGJ1cXVlcnF1ZSBOTSA4NzEyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtODAgICAoaGV4KQkJVGVsa29uZXQgSW5jLgorMDAwQTgwICAgICAoYmFzZSAxNikJCVRlbGtvbmV0IEluYy4KKwkJCQkyMDM3NCBTZW5lY2EgTWVhZG93cyBQa3d5CisJCQkJR2VybWFudG93biBNRCAyMDc4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtODEgICAoaGV4KQkJVEVJTUEgQXVkaW90ZXggUy5MLgorMDAwQTgxICAgICAoYmFzZSAxNikJCVRFSU1BIEF1ZGlvdGV4IFMuTC4KKwkJCQlDLyBUaXJ2aWEsIDYsIGxvY2FsIEIKKwkJCQlNYWRyaWQgIDI4MDQwCisJCQkJU1BBSU4KKworMDAtMEEtODIgICAoaGV4KQkJVEFUU1VUQSBTWVNURU0gRUxFQ1RST05JQ1MgQ08uLExURC4KKzAwMEE4MiAgICAgKGJhc2UgMTYpCQlUQVRTVVRBIFNZU1RFTSBFTEVDVFJPTklDUyBDTy4sTFRELgorCQkJCUlXQVRBVFlPVTItMy0xCisJCQkJSElHQVNISU9PU0FLQS1TSEkgT09TQUtBLUZVIDU3OC04NTg1CisJCQkJSkFQQU4KKworMDAtMEEtODMgICAoaGV4KQkJU0FMVE8gU1lTVEVNUyBTLkwuCiswMDBBODMgICAgIChiYXNlIDE2KQkJU0FMVE8gU1lTVEVNUyBTLkwuCisJCQkJQXJrb3R6LCA5CisJCQkJUG9sw61nb25vIExhbmJhcnJlbiBPaWFydHp1biAyMDE4MAorCQkJCVNQQUlOCisKKzAwLTBBLTg0ICAgKGhleCkJCVJhaW5zdW4gRW50ZXJwcmlzZSBDby4sIEx0ZC4KKzAwMEE4NCAgICAgKGJhc2UgMTYpCQlSYWluc3VuIEVudGVycHJpc2UgQ28uLCBMdGQuCisJCQkJTm8uMTQtMyAsIExhbmUgMjM1LCBIby1DaGVuIFJvYWQKKwkJCQlCYW9DaWFvIFJvYWQKKwkJCQlTaGluRGlhbiBDaXR5IFRBSVBFSSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTg1ICAgKGhleCkJCVBMQVQnQzIsSW5jCiswMDBBODUgICAgIChiYXNlIDE2KQkJUExBVCdDMixJbmMKKwkJCQkyLTMtNiBTT1RPS0FOREEKKwkJCQlDSElZT0RBLUtVIFRPS1lPIDEwMS0wMDIxCisJCQkJSkFQQU4KKworMDAtMEEtODYgICAoaGV4KQkJTGVuemUKKzAwMEE4NiAgICAgKGJhc2UgMTYpCQlMZW56ZQorCQkJCVBPIGJveCAxMDEzNTIKKwkJCQlIYW1lbG4gTG93ZXIgU2F4b255IDMxNzYzCisJCQkJR0VSTUFOWQorCiswMC0wQS04NyAgIChoZXgpCQlJbnRlZ3JhdGVkIE1pY3JvbWFjaGluZXMgSW5jLgorMDAwQTg3ICAgICAoYmFzZSAxNikJCUludGVncmF0ZWQgTWljcm9tYWNoaW5lcyBJbmMuCisJCQkJMTQwMCBTLiBTaGFtcm9jayBBdmUuCisJCQkJTW9ucm92aWEgQ0EgOTEwMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTg4ICAgKGhleCkJCUluQ3lwaGVyIFMuQS4KKzAwMEE4OCAgICAgKGJhc2UgMTYpCQlJbkN5cGhlciBTLkEuCisJCQkJMTggcnVlIGRlIGwnRWF1CisJCQkJTHV4ZW1ib3VyZyAgMTQ0OQorCQkJCUxVWEVNQk9VUkcKKworMDAtMEEtODkgICAoaGV4KQkJQ3JldmFsIFN5c3RlbXMsIEluYy4KKzAwMEE4OSAgICAgKGJhc2UgMTYpCQlDcmV2YWwgU3lzdGVtcywgSW5jLgorCQkJCTJGLDI0LTQsU2Fud29sZ29rLURvbmcsU3VuZ2J1ay1LdSxTZW91bCwKKwkJCQlTZW91bCAgMTM2LTEyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS04QSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBBOEEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS04QiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBBOEIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERSLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS04QyAgIChoZXgpCQlHdWFyZHdhcmUgU3lzdGVtcyBMdGQuCiswMDBBOEMgICAgIChiYXNlIDE2KQkJR3VhcmR3YXJlIFN5c3RlbXMgTHRkLgorCQkJCVVsbG9pIHV0IDEwMi4KKwkJCQlCdWRhcGVzdCAgSC0xMDg5CisJCQkJSFVOR0FSWQorCiswMC0wQS04RCAgIChoZXgpCQlFVVJPVEhFUk0gTElNSVRFRAorMDAwQThEICAgICAoYmFzZSAxNikJCUVVUk9USEVSTSBMSU1JVEVECisJCQkJRkFSQURBWSBDTE9TRQorCQkJCURVUlJJTkdUT04KKwkJCQlXT1JUSElORyBXRVNUIFNVU1NFWCBCTjEzIDNQTAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBBLThFICAgKGhleCkJCUludmFjb20gTHRkCiswMDBBOEUgICAgIChiYXNlIDE2KQkJSW52YWNvbSBMdGQKKwkJCQlCdXNpbmVzcyBhbmQgVGVjaG5vbG9neSBDZW50cmUKKwkJCQlCZXNzZW1lciBEcml2ZQorCQkJCVN0ZXZlbmFnZSBIZXJ0Zm9yZHNoaXJlIFNHMSAyRFgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQS04RiAgIChoZXgpCQlBc2thIEludGVybmF0aW9uYWwgSW5jLgorMDAwQThGICAgICAoYmFzZSAxNikJCUFza2EgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJMzA2IFJpdmVyc2V2ZW4KKwkJCQk0LTE4IEhhcmVnaS1Ib25tYWNoaQorCQkJCUtvY2hpICA3ODAtODA4OAorCQkJCUpBUEFOCisKKzAwLTBBLTkwICAgKGhleCkJCUJheXNpZGUgSW50ZXJhY3RpdmUsIEluYy4KKzAwMEE5MCAgICAgKGJhc2UgMTYpCQlCYXlzaWRlIEludGVyYWN0aXZlLCBJbmMuCisJCQkJMzMwIEJpc2NheW5lIEJsdmQuCisJCQkJU3VpdGUgODAxCisJCQkJTWlhbWkgRkwgMzMxMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTkxICAgKGhleCkJCUhlbW9DdWUgQUIKKzAwMEE5MSAgICAgKGJhc2UgMTYpCQlIZW1vQ3VlIEFCCisJCQkJQm94IDEyMDQKKwkJCQnDg+KAnm5nZWxob2xtIFNrw4PCpW5lIDI2MjIzCisJCQkJU1dFREVOCisKKzAwLTBBLTkyICAgKGhleCkJCVByZXNvbnVzIENvcnBvcmF0aW9uCiswMDBBOTIgICAgIChiYXNlIDE2KQkJUHJlc29udXMgQ29ycG9yYXRpb24KKwkJCQk3MjU3IEZsb3JpZGEgQmx2ZC4KKwkJCQlCYXRvbiBSb3VnZSBMb3Vpc2lhbmEgNzA4MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTkzICAgKGhleCkJCVcyIE5ldHdvcmtzLCBJbmMuCiswMDBBOTMgICAgIChiYXNlIDE2KQkJVzIgTmV0d29ya3MsIEluYy4KKwkJCQk1ODA4IE5XIExhYyBMZW1hbiBEcml2ZQorCQkJCUlzc2FxdWFoIFdhc2hpbmd0b24gOTgwMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTk0ICAgKGhleCkJCVNoYW5nSGFpIGNlbGxpbmsgQ08uLCBMVEQKKzAwMEE5NCAgICAgKGJhc2UgMTYpCQlTaGFuZ0hhaSBjZWxsaW5rIENPLiwgTFRECisJCQkJQzMgTWVpTG9uZyBaaG9uZ1hpbiBJbmR1c3RyaWFsIFBhcmssTm8uMQorCQkJCVNoYW5nSGFpICAyMDAyMzcKKwkJCQlDSElOQQorCiswMC0wQS05NSAgIChoZXgpCQlBcHBsZSBDb21wdXRlciwgSW5jLgorMDAwQTk1ICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJTS9TIDI2LUMKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLTk2ICAgKGhleCkJCU1FV1RFTCBURUNITk9MT0dZIElOQy4KKzAwMEE5NiAgICAgKGJhc2UgMTYpCQlNRVdURUwgVEVDSE5PTE9HWSBJTkMuCisJCQkJRTE1RkwuIElUIFZFTlRVUkUgVE9XRVIKKwkJCQk3OCBLQVJBSy1ET05HLCBTT05HUEEtR1UKKwkJCQlTRU9VTCAgMTM4LTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS05NyAgIChoZXgpCQlTT05JQ2JsdWUsIEluYy4KKzAwMEE5NyAgICAgKGJhc2UgMTYpCQlTT05JQ2JsdWUsIEluYy4KKwkJCQkyODQxIE1pc3Npb24gQ29sbGVnZSBCbHZkLgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS05OCAgIChoZXgpCQlNK0YgR3dpbm5lciBHbWJIICYgQ28KKzAwMEE5OCAgICAgKGJhc2UgMTYpCQlNK0YgR3dpbm5lciBHbWJIICYgQ28KKwkJCQlXZWlkZW5iYXVtc3dlZyA5MSBhCisJCQkJSGFtYnVyZyAgMjEwMjkKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLTk5ICAgKGhleCkJCUNhbGFtcCBXaXJlbGVzcyBOZXR3b3JrcyBJbmMKKzAwMEE5OSAgICAgKGJhc2UgMTYpCQlDYWxhbXAgV2lyZWxlc3MgTmV0d29ya3MgSW5jCisJCQkJMTAxLTU1NDAgRmVycmllciBTdHJlZXQKKwkJCQlUb3duIG9mIE1vdW50LVJveWFsIFF1ZWJlYyBINFAgMU0yCisJCQkJQ0FOQURBCisKKzAwLTBBLTlBICAgKGhleCkJCUFpcHRlayBJbnRlcm5hdGlvbmFsIEluYworMDAwQTlBICAgICAoYmFzZSAxNikJCUFpcHRlayBJbnRlcm5hdGlvbmFsIEluYworCQkJCU5vIDUtMSBJbm5vdmF0aW9uIFJkIDEKKwkJCQlTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW4tQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTlCICAgKGhleCkJCVRCIEdyb3VwIEluYworMDAwQTlCICAgICAoYmFzZSAxNikJCVRCIEdyb3VwIEluYworCQkJCSA0RiBOUkVHIEhvbmdvIDMtY2hvbWUgQmxkZy4sIDMtMjYtNiwgSG5nbywgQnVua3lvLWt1LCAKKwkJCQlUb2t5byAgMTEzLTAwMworCQkJCUpBUEFOCisKKzAwLTBBLTlDICAgKGhleCkJCVNlcnZlciBUZWNobm9sb2d5LCBJbmMuCiswMDBBOUMgICAgIChiYXNlIDE2KQkJU2VydmVyIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxMDQwIFNhbmRoaWxsIERyLgorCQkJCVJlbm8gTmV2YWRhIDg5NTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS05RCAgIChoZXgpCQlLaW5nIFlvdW5nIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKzAwMEE5RCAgICAgKGJhc2UgMTYpCQlLaW5nIFlvdW5nIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKwkJCQkxRmwuLCBOby4gOSwgTGFuZSAyNiwgR2FuZ2NoaSBSZC4sIE5laWh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLTlFICAgKGhleCkJCUJyb2FkV2ViIENvcnBvcnRhdGlvbgorMDAwQTlFICAgICAoYmFzZSAxNikJCUJyb2FkV2ViIENvcnBvcnRhdGlvbgorCQkJCTNGLCAyNC0xLCBJbmR1c3RyeSBFYXN0IFJkLiwgSVYsCisJCQkJU2NpZW5jZSBCYXNlZCwgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbi1DaHUgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS05RiAgIChoZXgpCQlQYW5uYXdheSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEE5RiAgICAgKGJhc2UgMTYpCQlQYW5uYXdheSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyMTUgQ29tbWVyY2UgV2F5CisJCQkJUG9ydHNtb3V0aCBOSCAwMzgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtQTAgICAoaGV4KQkJQ2VkYXIgUG9pbnQgQ29tbXVuaWNhdGlvbnMKKzAwMEFBMCAgICAgKGJhc2UgMTYpCQlDZWRhciBQb2ludCBDb21tdW5pY2F0aW9ucworCQkJCTE2IFJvdXRlIDExMSwgQmxkZyAzCisJCQkJRGVycnkgTkggMDMwMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUExICAgKGhleCkJCVYgViBTIExpbWl0ZWQKKzAwMEFBMSAgICAgKGJhc2UgMTYpCQlWIFYgUyBMaW1pdGVkCisJCQkJSFBJQywgMS4gQWluc2xpZSBSb2FkICwKKwkJCQlIaWxsaW5ndG9uCisJCQkJR2xhc2dvdyBTY290bGFuZCBHNTIgNFJVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEEtQTIgICAoaGV4KQkJU1lTVEVLIElOQy4KKzAwMEFBMiAgICAgKGJhc2UgMTYpCQlTWVNURUsgSU5DLgorCQkJCUpDT00gQlVJTERJTkcgNDAyLCBPSkVPTi1ET05HIDEyNC00LAorCQkJCVVJV0FORy1TSSBHWVVOR0dJLURPIDQzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtQTMgICAoaGV4KQkJU0hJTUFGVUpJIEVMRUNUUklDIENPLixMVEQuCiswMDBBQTMgICAgIChiYXNlIDE2KQkJU0hJTUFGVUpJIEVMRUNUUklDIENPLixMVEQuCisJCQkJRGFpaHlha3Utc2VpbWVpIEthbWF0YSBCbGRnLjNGCisJCQkJOC0xMS0xMSBOaXNoaWthbWF0YSxPdGEta3UKKwkJCQlUb2t5byAxNDQtMDA1MQorCQkJCUpBUEFOCisKKzAwLTBBLUE0ICAgKGhleCkJCVNIQU5HSEFJIFNVUlZFSUxMQU5DRSBURUNITk9MT0dZIENPLExURAorMDAwQUE0ICAgICAoYmFzZSAxNikJCVNIQU5HSEFJIFNVUlZFSUxMQU5DRSBURUNITk9MT0dZIENPLExURAorCQkJCUZMLjI1QSxOTy44IENIQU5HWUFORyBST0FECisJCQkJU0hBTkdIQUkgIDIwMDA4MgorCQkJCUNISU5BCisKKzAwLTBBLUE1ICAgKGhleCkJCU1BWExJTksgSU5EVVNUUklFUyBMSU1JVEVECiswMDBBQTUgICAgIChiYXNlIDE2KQkJTUFYTElOSyBJTkRVU1RSSUVTIExJTUlURUQKKwkJCQkyOUEgU0hFTlpIRU4gU1BFQ0lBTCBaT05FCisJCQkJUFJFU1MgVE9XRVIKKwkJCQlTSEVOWkhFTiBHVUFOR0RPTkcgNTE4MDA5CisJCQkJQ0hJTkEKKworMDAtMEEtQTYgICAoaGV4KQkJSG9jaGlraSBDb3Jwb3JhdGlvbgorMDAwQUE2ICAgICAoYmFzZSAxNikJCUhvY2hpa2kgQ29ycG9yYXRpb24KKwkJCQkyNDYsIFRTVVJVTUEKKwkJCQlNQUNISURBIFRPS1lPIDE5NC04NTc3CisJCQkJSkFQQU4KKworMDAtMEEtQTcgICAoaGV4KQkJRkVJIEVsZWN0cm9uIE9wdGljcworMDAwQUE3ICAgICAoYmFzZSAxNikJCUZFSSBFbGVjdHJvbiBPcHRpY3MKKwkJCQlBY2h0c2V3ZWcgTm9vcmQgNQorCQkJCUFBRSAzNAorCQkJCUVpbmRob3ZlbiAgNTY1MUdHCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEEtQTggICAoaGV4KQkJZVBpcGUgUHR5LiBMdGQuCiswMDBBQTggICAgIChiYXNlIDE2KQkJZVBpcGUgUHR5LiBMdGQuCisJCQkJUC5PLiBCb3ggMTQyOAorCQkJCVRvb3dvbmcKKwkJCQlCcmlzYmFuZSBRdWVlbnNsYW5kIDQwNjYKKwkJCQlBVVNUUkFMSUEKKworMDAtMEEtQTkgICAoaGV4KQkJQnJvb2tzIEF1dG9tYXRpb24gR21iSAorMDAwQUE5ICAgICAoYmFzZSAxNikJCUJyb29rcyBBdXRvbWF0aW9uIEdtYkgKKwkJCQlHb2VzY2h3aXR6ZXIgU3RyYXNzZSAyNQorCQkJCUplbmEgVGh1cmluZ2lhIDA3NzQ1CisJCQkJR0VSTUFOWQorCiswMC0wQS1BQSAgIChoZXgpCQlBbHRpR2VuIENvbW11bmljYXRpb25zIEluYy4KKzAwMEFBQSAgICAgKGJhc2UgMTYpCQlBbHRpR2VuIENvbW11bmljYXRpb25zIEluYy4KKwkJCQk0NzQyNyBGcmVtb250IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtQUIgICAoaGV4KQkJVG95b3RhIFRlY2huaWNhbCBEZXZlbG9wbWVudCBDb3Jwb3JhdGlvbgorMDAwQUFCICAgICAoYmFzZSAxNikJCVRveW90YSBUZWNobmljYWwgRGV2ZWxvcG1lbnQgQ29ycG9yYXRpb24KKwkJCQkxLTIxLCBJbWFlLCBIYW5hbW90by1jaG8KKwkJCQlUb3lvdGEgQWljaGkgNDcwLTAzMzQKKwkJCQlKQVBBTgorCiswMC0wQS1BQyAgIChoZXgpCQlUZXJyYVRlYyBFbGVjdHJvbmljIEdtYkgKKzAwMEFBQyAgICAgKGJhc2UgMTYpCQlUZXJyYVRlYyBFbGVjdHJvbmljIEdtYkgKKwkJCQlIZXJyZW5wZmFkIDM4CisJCQkJTmV0dGV0YWwgTlJXIDQxMzM0CisJCQkJR0VSTUFOWQorCiswMC0wQS1BRCAgIChoZXgpCQlTdGFyZ2FtZXMgQ29ycG9yYXRpb24KKzAwMEFBRCAgICAgKGJhc2UgMTYpCQlTdGFyZ2FtZXMgQ29ycG9yYXRpb24KKwkJCQkxMyBTaGVyaWRhbiBDbG9zZQorCQkJCU1pbHBlcnJhIE5TVyAyMDMxCisJCQkJQVVTVFJBTElBCisKKzAwLTBBLUFFICAgKGhleCkJCVJvc2Vtb3VudCBQcm9jZXNzIEFuYWx5dGljYWwKKzAwMEFBRSAgICAgKGJhc2UgMTYpCQlSb3NlbW91bnQgUHJvY2VzcyBBbmFseXRpY2FsCisJCQkJNjU3M0EgQ29jaHJhbiBSZC4KKwkJCQlTb2xvbiBPaGlvIDQ0MTM5LTM5MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUFGICAgKGhleCkJCVBpcGFsIFN5c3RlbXMKKzAwMEFBRiAgICAgKGJhc2UgMTYpCQlQaXBhbCBTeXN0ZW1zCisJCQkJMjkwMyBCdW5rZXIgSGlsbCBMYW5lCisJCQkJU3VpdGUgMjEwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUIwICAgKGhleCkJCUxPWVRFQyBlbGVjdHJvbmljcyBHbWJICiswMDBBQjAgICAgIChiYXNlIDE2KQkJTE9ZVEVDIGVsZWN0cm9uaWNzIEdtYkgKKwkJCQlTdG9semVudGhhbGVyZ2Fzc2UgMjQvMworCQkJCVZpZW5uYSBXaWVuIDEwODAKKwkJCQlBVVNUUklBCisKKzAwLTBBLUIxICAgKGhleCkJCUdFTkVURUMgQ29ycG9yYXRpb24KKzAwMEFCMSAgICAgKGJhc2UgMTYpCQlHRU5FVEVDIENvcnBvcmF0aW9uCisJCQkJTmlzaGlrdXJhLUxLIEJsZC4KKwkJCQlUb21paGlzYS1jaG91IDE2LTYKKwkJCQlTaGluanVrdS1rdSBUb2t5byAxNjItMDA2NworCQkJCUpBUEFOCisKKzAwLTBBLUIyICAgKGhleCkJCUZyZXNuZWwgV2lyZWxlc3MgU3lzdGVtcworMDAwQUIyICAgICAoYmFzZSAxNikJCUZyZXNuZWwgV2lyZWxlc3MgU3lzdGVtcworCQkJCTEzMzMgR2F0ZXdheSBEcml2ZQorCQkJCVN1aXRlIDEwMDcKKwkJCQlNZWxib3VybmUgRkwgMzI5MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUIzICAgKGhleCkJCUZhLiBHSVJBCiswMDBBQjMgICAgIChiYXNlIDE2KQkJRmEuIEdJUkEKKwkJCQlEYWhsaWVuc3RyYcODxbhlCisJCQkJUmFkZXZvcm13YWxkIE5vcmRyaGVpbi1XZXN0ZmFsZW4gNDI0NzcKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLUI0ICAgKGhleCkJCUVUSUMgVGVsZWNvbW11bmljYXRpb25zCiswMDBBQjQgICAgIChiYXNlIDE2KQkJRVRJQyBUZWxlY29tbXVuaWNhdGlvbnMKKwkJCQkxMywgY2hlbWluIGR1IHZpZXV4LWNoZW5lIFpJUlNUCisJCQkJTUVZTEFOIElzZXJlIDM4MjQwCisJCQkJRlJBTkNFCisKKzAwLTBBLUI1ICAgKGhleCkJCURpZ2l0YWwgRWxlY3Ryb25pYyBOZXR3b3JrCiswMDBBQjUgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBFbGVjdHJvbmljIE5ldHdvcmsKKwkJCQk4IHJ1ZSBkdSBzYWNyw6kgY29ldXIKKwkJCQlTYWludCBMYXVyZW50IHN1ciBTZXZyZSBWZW5kZWUgODUyOTAKKwkJCQlGUkFOQ0UKKworMDAtMEEtQjYgICAoaGV4KQkJQ09NUFVORVRJWCwgSU5DCiswMDBBQjYgICAgIChiYXNlIDE2KQkJQ09NUFVORVRJWCwgSU5DCisJCQkJMjQyMCBNT1NTSURFIEJMVkQuCisJCQkJTU9OUk9FVklMTEUgUEEgMTUxNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUI3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEFCNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUI4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEFCOCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ2EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUI5ICAgKGhleCkJCUFzdGVyYSBUZWNobm9sb2dpZXMgQ29ycC4KKzAwMEFCOSAgICAgKGJhc2UgMTYpCQlBc3RlcmEgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJIDIzODAgV2F2ZXJsZXkgU3RyZWV0CisJCQkJUGFsbyBBbHRvIENBIDk0MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1CQSAgIChoZXgpCQlBcmNvbiBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMEFCQSAgICAgKGJhc2UgMTYpCQlBcmNvbiBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlSbS4gMzcxMS0xMiwgMzcvRi4sIENhYmxlIFRWIFRvd2VyICwKKwkJCQkgOSBIb2kgU2hpbmcgUmQuLCBUc3VlbiBXYW4gLCBOLlQKKwkJCQlIb25nIEtvbmcgIAorCQkJCUNISU5BCisKKzAwLTBBLUJCICAgKGhleCkJCVRhaXdhbiBTZWNvbSBDbywuIEx0ZAorMDAwQUJCICAgICAoYmFzZSAxNikJCVRhaXdhbiBTZWNvbSBDbywuIEx0ZAorCQkJCTEzRiwgMTA4LCBTZWMxLCBTaGluLVRhaSA1dGggUm9hZAorCQkJCUhzaS1DaGloIFRhaXBlaSBDb3VudHkgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS1CQyAgIChoZXgpCQlTZWFicmlkZ2UgTHRkLgorMDAwQUJDICAgICAoYmFzZSAxNikJCVNlYWJyaWRnZSBMdGQuCisJCQkJMyBIYW5hZ2FyIFN0LgorCQkJCU5ldmUtTmVlbWFuIEInCisJCQkJSG9kLUhhc2hhcm9uIElzcmFlbCA0NTI0MQorCQkJCUlTUkFFTAorCiswMC0wQS1CRCAgIChoZXgpCQlSdXBwcmVjaHQgJiBQYXRhc2huaWNrIENvLgorMDAwQUJEICAgICAoYmFzZSAxNikJCVJ1cHByZWNodCAmIFBhdGFzaG5pY2sgQ28uCisJCQkJMjUgQ29ycG9yYXRlIENpcmNsZQorCQkJCUFsYmFueSBOWSAxMjIwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtQkUgICAoaGV4KQkJT1BORVQgVGVjaG5vbG9naWVzIENPLiwgTFRELgorMDAwQUJFICAgICAoYmFzZSAxNikJCU9QTkVUIFRlY2hub2xvZ2llcyBDTy4sIExURC4KKwkJCQkzRiwgTk8uNSwgSW5kdXN0cnkgRS4gUmQuIElYLCBTY2llbmNlLUJhCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS1CRiAgIChoZXgpCQlISVJPVEEgU1MKKzAwMEFCRiAgICAgKGJhc2UgMTYpCQlISVJPVEEgU1MKKwkJCQlNYXR1a2F3YS1Lb3VneW91ZGFuY2hpCisJCQkJU3V6YWthLXNoaSBOYWdhbm8gMzgyLTAwMDUKKwkJCQlKQVBBTgorCiswMC0wQS1DMCAgIChoZXgpCQlGdXlvaCBWaWRlbyBJbmR1c3RyeSBDTy4sIExURC4KKzAwMEFDMCAgICAgKGJhc2UgMTYpCQlGdXlvaCBWaWRlbyBJbmR1c3RyeSBDTy4sIExURC4KKwkJCQk3LTI1IEhpZ2FzaGkgS2lib2dhb2thCisJCQkJQXNhaGkta3UKKwkJCQlZb2tvaGFtYS1zaGkgS2FuYWdhd2Eta2VuIDI0Ni0wMDA4CisJCQkJSkFQQU4KKworMDAtMEEtQzEgICAoaGV4KQkJRnV0dXJldGVsCiswMDBBQzEgICAgIChiYXNlIDE2KQkJRnV0dXJldGVsCisJCQkJMjE1ODAgU3RldmVucyBDcmVlayBCbHZkLCBTdWl0ZSAyMDgKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUMyICAgKGhleCkJCUZpYmVySG9tZSBUZWxlY29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ08uLExURAorMDAwQUMyICAgICAoYmFzZSAxNikJCUZpYmVySG9tZSBUZWxlY29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ08uLExURAorCQkJCU5vLjg4IFlvdUtleXVhbiBSb2FkLEhvbmdzaGFuIERpc3RyaWN0LFcKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzQKKwkJCQlDSElOQQorCiswMC0wQS1DMyAgIChoZXgpCQllTSBUZWNobmljcyBDby4sIEx0ZC4KKzAwMEFDMyAgICAgKGJhc2UgMTYpCQllTSBUZWNobmljcyBDby4sIEx0ZC4KKwkJCQk3Ri4sIElUIFZlbnR1cmUgVG93ZXIuLCA3OCwKKwkJCQlHYXJha2Jvbi1Eb25nLCBTb25ncGEtR3UKKwkJCQlTZW91bCAgMTM4LTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQS1DNCAgIChoZXgpCQlEYWV3b28gVGVsZXRlY2ggQ28uLCBMdGQKKzAwMEFDNCAgICAgKGJhc2UgMTYpCQlEYWV3b28gVGVsZXRlY2ggQ28uLCBMdGQKKwkJCQkyNjUtMywgU2VvaHllb24sIEJ1bmRhbmcKKwkJCQlTZW9uZ25hbSBHeWVvbmdnaSA0NjMtNzY5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLUM1ICAgKGhleCkJCUNvbG9yIEtpbmV0aWNzCiswMDBBQzUgICAgIChiYXNlIDE2KQkJQ29sb3IgS2luZXRpY3MKKwkJCQkxMCBNaWxrIFN0cmVldAorCQkJCVN1aXRlIDExMDAKKwkJCQlCb3N0b24gTWFzYWNodXNldHRzIDAyMTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1DNiAgIChoZXgpCQlPdmVydHVyZSBOZXR3b3Jrcy4KKzAwMEFDNiAgICAgKGJhc2UgMTYpCQlPdmVydHVyZSBOZXR3b3Jrcy4KKwkJCQk2MzcgRGF2aXMgRHJpdmUKKwkJCQlNb3JyaXN2aWxsZSBOQyAyNzU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtQzcgICAoaGV4KQkJVW5pY2F0aW9uIEdyb3VwCiswMDBBQzcgICAgIChiYXNlIDE2KQkJVW5pY2F0aW9uIEdyb3VwCisJCQkJM0YuLCBOby4gNiwgV3UtS3VuZyA1UmQuLCBIc2luY2h1YW5nIENpdAorCQkJCVRhaXBlaSAgMjQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS1DOCAgIChoZXgpCQlaUFNZUyBDTy4sTFRELiAoUGxhbm5pbmcmTWFuYWdlbWVudCkKKzAwMEFDOCAgICAgKGJhc2UgMTYpCQlaUFNZUyBDTy4sTFRELiAoUGxhbm5pbmcmTWFuYWdlbWVudCkKKwkJCQkxMDYgQWNlIFRlY2hubyBUb3dlcjEKKwkJCQkxOTctMTcgS3Vyby1Eb25nCisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtQzkgICAoaGV4KQkJWmFtYmVlbCBJbmMKKzAwMEFDOSAgICAgKGJhc2UgMTYpCQlaYW1iZWVsIEluYworCQkJCTQ1NzAwIE5vcnRocG9ydCBMb29wIEVhc3QKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1DQSAgIChoZXgpCQlZT0tPWUFNQSBTSE9LQUkgQ08uLEx0ZC4KKzAwMEFDQSAgICAgKGJhc2UgMTYpCQlZT0tPWUFNQSBTSE9LQUkgQ08uLEx0ZC4KKwkJCQk2LTk2IE1hdHN1bXVyYQorCQkJCUthbmF6YXdhIElzaGlrYXdhIDkyMC0wMzQ4CisJCQkJSkFQQU4KKworMDAtMEEtQ0IgICAoaGV4KQkJWFBBSyBNU0EgR3JvdXAKKzAwMEFDQiAgICAgKGJhc2UgMTYpCQlYUEFLIE1TQSBHcm91cAorCQkJCUNhcmUgb2Y6IE1vbGV4IEZpYmVyIE9wdGljcworCQkJCTUyMjQgS2F0cmluZSBBdmVudWUKKwkJCQlEb3duZXJzIEdyb3ZlIElMIDYwNTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1DQyAgIChoZXgpCQlXaW5ub3cgTmV0d29ya3MsIEluYy4KKzAwMEFDQyAgICAgKGJhc2UgMTYpCQlXaW5ub3cgTmV0d29ya3MsIEluYy4KKwkJCQk3MDEgRW1lcnNvbiBSb2FkCisJCQkJU3VpdGUgMjQ0CisJCQkJU3QuIExvdWlzIE1PIDYzMTQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1DRCAgIChoZXgpCQlTdW5yaWNoIFRlY2hub2xvZ3kgTGltaXRlZAorMDAwQUNEICAgICAoYmFzZSAxNikJCVN1bnJpY2ggVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJVW5pdCAxMzAxLCBFYXN0ZXJuIENlbnRyZSwgMTA2NSBLaW5nJ3MgUgorCQkJCVF1YXJyeSBCYXkgIAorCQkJCUhPTkcgS09ORworCiswMC0wQS1DRSAgIChoZXgpCQlSQURJQU5URUNILCBJTkMuCiswMDBBQ0UgICAgIChiYXNlIDE2KQkJUkFESUFOVEVDSCwgSU5DLgorCQkJCTItMSwgSU5EVVNUUlkgRUFTVCBSRC4gMSwgU0NJRU5DRS1CQVNFRAorCQkJCUlORFVTVFJJQUwgUEFSSworCQkJCUhTSU4gQ0hVICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLUNGICAgKGhleCkJCVBST1ZJREVPIE11bHRpbWVkaWEgQ28uIEx0ZC4KKzAwMEFDRiAgICAgKGJhc2UgMTYpCQlQUk9WSURFTyBNdWx0aW1lZGlhIENvLiBMdGQuCisJCQkJNUYsIE5PLjgsIEFMTEVZIDIsIFRaVS1XRUkgTEFORSwKKwkJCQlDSFVORyBDSEVORyBSRC4sCisJCQkJSFNJTiBUSUVOIENJVFkgVEFJUEVJIEhTSUVOLCAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLUQwICAgKGhleCkJCU5paWdhdGEgRGV2ZWxvbWVudCBDZW50ZXIsICBGLkkuVC4gQ28uLCBMdGQuCiswMDBBRDAgICAgIChiYXNlIDE2KQkJTmlpZ2F0YSBEZXZlbG9tZW50IENlbnRlciwgIEYuSS5ULiBDby4sIEx0ZC4KKwkJCQlBa2FuZS1OaWlnYXRhIEJ1aWxkaW5nIDJGCisJCQkJMS02LTcgQXRhZ28KKwkJCQlOaWlnYXRhIE5paWdhdGEgUHJlZmVjdHVyZSA5NTAtMDk0NAorCQkJCUpBUEFOCisKKzAwLTBBLUQxICAgKGhleCkJCU1XUworMDAwQUQxICAgICAoYmFzZSAxNikJCU1XUworCQkJCTEyLCBxdWFpIFBhcGFjaW5vCisJCQkJTklDRSAgMDYzMDAKKwkJCQlGUkFOQ0UKKworMDAtMEEtRDIgICAoaGV4KQkJSkVQSUNPIENvcnBvcmF0aW9uCiswMDBBRDIgICAgIChiYXNlIDE2KQkJSkVQSUNPIENvcnBvcmF0aW9uCisJCQkJTmlzaGktc2hpbmp5dWt1Mi03LTEKKwkJCQlEYWktaWNoaSBTZWltZWkgQkxERy4KKwkJCQlTaGluanl1a3Uta3UgVG9reW8gMTYzLTA3MjkKKwkJCQlKQVBBTgorCiswMC0wQS1EMyAgIChoZXgpCQlJTklURUNIIENvLiwgTHRkCiswMDBBRDMgICAgIChiYXNlIDE2KQkJSU5JVEVDSCBDby4sIEx0ZAorCQkJCTNGLCBJTklURUNIIEJsZGcsIDU1OS01LAorCQkJCUdlb3lvLURvbmcsIFNvbmdwYS1HdQorCQkJCVNlb3VsIFNvbmdwYSAxMzgtODE2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLUQ0ICAgKGhleCkJCUNvcmVCZWxsIFN5c3RlbXMgSW5jLgorMDAwQUQ0ICAgICAoYmFzZSAxNikJCUNvcmVCZWxsIFN5c3RlbXMgSW5jLgorCQkJCUhUVkMgMjMxNyBLQUlTVAorCQkJCTM3My0xIEd1c2VvbmctZG9uZworCQkJCVl1c2VvbmctR3UgRGFlamVvbiAzMDUtNzAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLUQ1ICAgKGhleCkJCUJyYWluY2hpbGQgRWxlY3Ryb25pYyBDby4sIEx0ZC4KKzAwMEFENSAgICAgKGJhc2UgMTYpCQlCcmFpbmNoaWxkIEVsZWN0cm9uaWMgQ28uLCBMdGQuCisJCQkJTm8uMjA5LCBDaHVuZyBZYW5nIFJkLiwKKwkJCQlOYW4gS2FuZyBEaXN0cmljdCwKKwkJCQlUYWlwZWkgIDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtRDYgICAoaGV4KQkJQmVhbVJlYWNoIE5ldHdvcmtzCiswMDBBRDYgICAgIChiYXNlIDE2KQkJQmVhbVJlYWNoIE5ldHdvcmtzCisJCQkJNzU1IE5vcnRoIE1hdGhpbGRhIEF2ZQorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1ENyAgIChoZXgpCQlPcmlnaW4gRUxFQ1RSSUMgQ08uLExURC4KKzAwMEFENyAgICAgKGJhc2UgMTYpCQlPcmlnaW4gRUxFQ1RSSUMgQ08uLExURC4KKwkJCQkxLTE4LTEKKwkJCQlUQUtBREEKKwkJCQlUT1NISU1BIFdBUkQgVE9LWU8gTUVULiAxNzEtODU1NQorCQkJCUpBUEFOCisKKzAwLTBBLUQ4ICAgKGhleCkJCUlQQ3NlcnYgVGVjaG5vbG9neSBDb3JwLgorMDAwQUQ4ICAgICAoYmFzZSAxNikJCUlQQ3NlcnYgVGVjaG5vbG9neSBDb3JwLgorCQkJCTZmLE5vLjEwNyxQYW4tSHNpbiBSZAorCQkJCVBhbi1DaGlhbyBUYWlwZWkgMjIwNDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLUQ5ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDBBRDkgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworMDAtMEEtREEgICAoaGV4KQkJVmluZGljYXRvciBUZWNobm9sb2dpZXMKKzAwMEFEQSAgICAgKGJhc2UgMTYpCQlWaW5kaWNhdG9yIFRlY2hub2xvZ2llcworCQkJCTUzMDcgSW5kdXN0cmlhbCBPYWtzIEJsdmQuCisJCQkJU3VpdGUgMTMwCisJCQkJQXVzdGluIFRleGFzIDc4NzM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1EQiAgIChoZXgpCQlTa3lQaWxvdCBOZXR3b3JrLCBJbmMKKzAwMEFEQiAgICAgKGJhc2UgMTYpCQlTa3lQaWxvdCBOZXR3b3JrLCBJbmMKKwkJCQkxMzAxIFNob3Jld2F5IFJvYWQKKwkJCQlCZWxtb250IENBIDk0MDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1EQyAgIChoZXgpCQlSdWdnZWRDb20gSW5jLgorMDAwQURDICAgICAoYmFzZSAxNikJCVJ1Z2dlZENvbSBJbmMuCisJCQkJMzAgV2hpdG1vcmUgUm9hZAorCQkJCVdvb2RicmlkZ2UgT250YXJpbyBMNEwgN1o0CisJCQkJQ0FOQURBCisKKzAwLTBBLUREICAgKGhleCkJCUFsbHdvcnggQ29ycC4KKzAwMEFERCAgICAgKGJhc2UgMTYpCQlBbGx3b3J4IENvcnAuCisJCQkJMzAwIE1haW4gU3RyZWV0CisJCQkJU3VpdGUgMTEKKwkJCQlFYXN0IFJvY2hlc3RlciBOWSAxNDQ0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtREUgICAoaGV4KQkJSGFwcHkgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKzAwMEFERSAgICAgKGJhc2UgMTYpCQlIYXBweSBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorCQkJCTQyLTExIFdvbk1pLURvbmcKKwkJCQlXb25NaS1HdQorCQkJCUJ1Y2hlb24tQ2l0eSBLeXVuZ0dpLURvIDQyMC0xMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtREYgICAoaGV4KQkJR2VubnVtIENvcnBvcmF0aW9uCiswMDBBREYgICAgIChiYXNlIDE2KQkJR2VubnVtIENvcnBvcmF0aW9uCisJCQkJUC5PIEJveCA0ODkKKwkJCQlTdGF0aW9uIEEKKwkJCQlCdXJsaW5ndG9uIE9udGFyaW8gTDdSIDNZMworCQkJCUNBTkFEQQorCiswMC0wQS1FMCAgIChoZXgpCQlGdWppdHN1IFNvZnRlaworMDAwQUUwICAgICAoYmFzZSAxNikJCUZ1aml0c3UgU29mdGVrCisJCQkJMTI1MCBFYXN0IEFycXVlcyBBdmUKKwkJCQlNUyA3MjkKKwkJCQlTdW5ueXZhbGUgQ2EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUUxICAgKGhleCkJCUVHIFRlY2hub2xvZ3kKKzAwMEFFMSAgICAgKGJhc2UgMTYpCQlFRyBUZWNobm9sb2d5CisJCQkJMjUwIDE1dGggU3RyZWV0CisJCQkJU3VpdGUgNDAwNworCQkJCUF0bGFudGEgR0EgMzAzMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUUyICAgKGhleCkJCUJpbmF0b25lIEVsZWN0cm9uaWNzIEludGVybmF0aW9uYWwsIEx0ZAorMDAwQUUyICAgICAoYmFzZSAxNikJCUJpbmF0b25lIEVsZWN0cm9uaWNzIEludGVybmF0aW9uYWwsIEx0ZAorCQkJCUZsb29yIDIzQSwgOSBEZXMgVm9ldXggUm9hZCBXZXN0CisJCQkJSG9uZyBLb25nIENoaW5hIAorCQkJCUhPTkcgS09ORworCiswMC0wQS1FMyAgIChoZXgpCQlZQU5HIE1FSSBURUNITk9MT0dZIENPLiwgTFRECiswMDBBRTMgICAgIChiYXNlIDE2KQkJWUFORyBNRUkgVEVDSE5PTE9HWSBDTy4sIExURAorCQkJCTIxLCBBbGxleSAxLCBMYW5lIDM0MgorCQkJCUZ1ZGUgMXN0IFJvYWQsIFNoaWpyIENpdHkKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtRTQgICAoaGV4KQkJV2lzdHJvbiBDb3JwLgorMDAwQUU0ICAgICAoYmFzZSAxNikJCVdpc3Ryb24gQ29ycC4KKwkJCQkyMUYsIE5vLiA4OCwgU2VjdGlvbiAxLCBIc2luIFRhaSAgV3UgUmQuCisJCQkJSHNpY2hpaAorCQkJCVRhaXBlaSAgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQS1FNSAgIChoZXgpCQlTY290dENhcmUgQ29ycG9yYXRpb24KKzAwMEFFNSAgICAgKGJhc2UgMTYpCQlTY290dENhcmUgQ29ycG9yYXRpb24KKwkJCQk0NzkxIFdlc3QgMTUwdGggU3RyZWV0CisJCQkJQ2xldmVsYW5kIE9oaW8gNDQxMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBBLUU2ICAgKGhleCkJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtIENvLiAoRUNTKQorMDAwQUU2ICAgICAoYmFzZSAxNikJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtIENvLiAoRUNTKQorCQkJCU5vLjIyLCBBbGxleSAzOCwgTGFuZSA5MSwgU2VjLiAxLCBOZWkgSHUKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEEtRTcgICAoaGV4KQkJRUxJT1AgUy5BLgorMDAwQUU3ICAgICAoYmFzZSAxNikJCUVMSU9QIFMuQS4KKwkJCQlBdmVuaWRhIGRlIE1hbm90ZXJhcywgMzAKKwkJCQlNYWRyaWQgIEUtMjgwNTAKKwkJCQlTUEFJTgorCiswMC0wQS1FOCAgIChoZXgpCQlDYXRoYXkgUm94dXMgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4gTFRECiswMDBBRTggICAgIChiYXNlIDE2KQkJQ2F0aGF5IFJveHVzIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uIExURAorCQkJCUZ1aHVhIG1hbnNpb24gYnVpbGRpbmcgQS9CIDRGCisJCQkJZG9uZ2NoZW5nIGRpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDI3CisJCQkJQ0hJTkEKKworMDAtMEEtRTkgICAoaGV4KQkJQWlyVmFzdCBUZWNobm9sb2d5IEluYy4KKzAwMEFFOSAgICAgKGJhc2UgMTYpCQlBaXJWYXN0IFRlY2hub2xvZ3kgSW5jLgorCQkJCTNGLi01LCBOby42LCBMYW5lIDYwOSwgU2VjLiA1LCBDaG9uZ3NpbiBSZC4KKwkJCQlTYW5jaG9uZyBDaXR5IFRhaXBlaSAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBBLUVBICAgKGhleCkJCUFEQU0gRUxFS1RST05JSyBMVEQuU1RJLgorMDAwQUVBICAgICAoYmFzZSAxNikJCUFEQU0gRUxFS1RST05JSyBMVEQuU1RJLgorCQkJCVVaVU5BWU5BIENBRC4gQ0VMRU5LIFNPSy4gTk86MSDDg+KAoUFLTUFLIC8KKwkJCQlJU1RBTkJVTCAgODEyNjAKKwkJCQlUVVJLRVkKKworMDAtMEEtRUIgICAoaGV4KQkJU2hlbnpoZW4gVHAtTGluayBUZWNobm9sb2d5IENvOyBMdGQuCiswMDBBRUIgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gVHAtTGluayBUZWNobm9sb2d5IENvOyBMdGQuCisJCQkJSGktVGVjaCBQYXJrIFIxLUIzCisJCQkJMy9GLCBCbGRnLCAgU2hlbm5hbiBSb2FkCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTBBLUVDICAgKGhleCkJCUtvYXRzdSBHYXMgS29neW8gQ28uLCBMdGQuCiswMDBBRUMgICAgIChiYXNlIDE2KQkJS29hdHN1IEdhcyBLb2d5byBDby4sIEx0ZC4KKwkJCQkxLTUsIERveWFtYS1jaG8sIEtpdGEta3UsIE9zYWthCisJCQkJT3Nha2EgIDUzMC04NDExCisJCQkJSkFQQU4KKworMDAtMEEtRUQgICAoaGV4KQkJSEFSVElORyBTeXN0ZW1zIEdtYkggJiBDbyBLRworMDAwQUVEICAgICAoYmFzZSAxNikJCUhBUlRJTkcgU3lzdGVtcyBHbWJIICYgQ28gS0cKKwkJCQlXaWxoZWxtIEhhcnRpbmcgU3RyLjEKKwkJCQlFc3BlbGthbXAgTlJXL09XTCAzMjMzOQorCQkJCUdFUk1BTlkKKworMDAtMEEtRUUgICAoaGV4KQkJR0NEIEhhcmQtICYgU29mdHdhcmUgR21iSAorMDAwQUVFICAgICAoYmFzZSAxNikJCUdDRCBIYXJkLSAmIFNvZnR3YXJlIEdtYkgKKwkJCQlIZW5rZXN0ci4gNzkKKwkJCQlFcmxhbmdlbiBCYXllcm4gOTEwNTIKKwkJCQlHRVJNQU5ZCisKKzAwLTBBLUVGICAgKGhleCkJCU9UUlVNIEFTQQorMDAwQUVGICAgICAoYmFzZSAxNikJCU9UUlVNIEFTQQorCQkJCUJyYXR0ZWtsZWl2CisJCQkJRsOmcnZpayAgTi00ODE4CisJCQkJTk9SV0FZCisKKzAwLTBBLUYwICAgKGhleCkJCVNISU4tT0ggRUxFQ1RST05JQ1MgQ08uLCBMVEQuIFImRAorMDAwQUYwICAgICAoYmFzZSAxNikJCVNISU4tT0ggRUxFQ1RST05JQ1MgQ08uLCBMVEQuIFImRAorCQkJCSM3MjktNSwgQm9ub2gtRG9uZywgQW5zYW4tQ2l0eSwgS3l1bmdnaS0KKwkJCQlTSElOLU9IIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCUFuc2FuLUNpdHkgS3l1bmdnaS1EbyA0MjUtMTgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBBLUYxICAgKGhleCkJCUNsYXJpdHkgRGVzaWduLCBJbmMuCiswMDBBRjEgICAgIChiYXNlIDE2KQkJQ2xhcml0eSBEZXNpZ24sIEluYy4KKwkJCQkxMzAyOSBEYW5pZWxzb24gU3RyZWV0CisJCQkJU3VpdGUgMTAwCisJCQkJUG93YXkgQ0EgOTIwNjQtODgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRjIgICAoaGV4KQkJTmVvQXhpb20gQ29ycC4KKzAwMEFGMiAgICAgKGJhc2UgMTYpCQlOZW9BeGlvbSBDb3JwLgorCQkJCTE1MjAgTW9udGFndWUgRXhwcmVzc3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1GMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBBRjMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1GNCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBBRjQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1GNSAgIChoZXgpCQlBaXJnbyBOZXR3b3JrcywgSW5jLgorMDAwQUY1ICAgICAoYmFzZSAxNikJCUFpcmdvIE5ldHdvcmtzLCBJbmMuCisJCQkJOTAwIEFyYXN0cmFkZXJvIFJkCisJCQkJUGFsbyBBbHRvIENBIDk0MzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1GNiAgIChoZXgpCQlFbWVyc29uIENsaW1hdGUgVGVjaG5vbG9naWVzIFJldGFpbCBTb2x1dGlvbnMsIEluYy4KKzAwMEFGNiAgICAgKGJhc2UgMTYpCQlFbWVyc29uIENsaW1hdGUgVGVjaG5vbG9naWVzIFJldGFpbCBTb2x1dGlvbnMsIEluYy4KKwkJCQkxNjQwIEFpcnBvcnQgUmQKKwkJCQlTdWl0ZSAxMDQKKwkJCQlLZW5uZXNhdyBHQSAzMDE0NC03MDM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1GNyAgIChoZXgpCQlCcm9hZGNvbSBDb3JwLgorMDAwQUY3ICAgICAoYmFzZSAxNikJCUJyb2FkY29tIENvcnAuCisJCQkJMTYyMTUgQWx0b24gUGFya3dheQorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRjggICAoaGV4KQkJQW1lcmljYW4gVGVsZWNhcmUgSW5jLgorMDAwQUY4ICAgICAoYmFzZSAxNikJCUFtZXJpY2FuIFRlbGVjYXJlIEluYy4KKwkJCQk3NjQwIEdvbGRlbiBUcmlhbmdsZSBEcml2ZQorCQkJCUVkZW4gUHJhaXJpZSBNTiA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRjkgICAoaGV4KQkJSGlDb25uZWN0LCBJbmMuCiswMDBBRjkgICAgIChiYXNlIDE2KQkJSGlDb25uZWN0LCBJbmMuCisJCQkJUm0gIzkwNiwgSGFrc2FuIENvc21vc3RlbCwgMTEwCisJCQkJS3dhbmdqYW5nLURvbmcsIEt3YW5namluLUd1LCBTZW91bCwgS29yZQorCQkJCUt3YW5namluLUd1IFNlb3VsIDE0My04MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEEtRkEgICAoaGV4KQkJVHJhdmVyc2UgVGVjaG5vbG9naWVzIEF1c3RyYWxpYQorMDAwQUZBICAgICAoYmFzZSAxNikJCVRyYXZlcnNlIFRlY2hub2xvZ2llcyBBdXN0cmFsaWEKKwkJCQlVbml0IDEzLCAyNDAgU3lkbmV5IFJkCisJCQkJQ29idXJnIFZpY3RvcmlhIDMwNTgKKwkJCQlBVVNUUkFMSUEKKworMDAtMEEtRkIgICAoaGV4KQkJQW1icmkgTGltaXRlZAorMDAwQUZCICAgICAoYmFzZSAxNikJCUFtYnJpIExpbWl0ZWQKKwkJCQkxMjYgR3JldmlsbGUgU3RyZWV0CisJCQkJQ2hhdHN3b29kIE5TVyAyMDY3CisJCQkJQVVTVFJBTElBCisKKzAwLTBBLUZDICAgKGhleCkJCUNvcmUgVGVjIENvbW11bmljYXRpb25zLCBMTEMKKzAwMEFGQyAgICAgKGJhc2UgMTYpCQlDb3JlIFRlYyBDb21tdW5pY2F0aW9ucywgTExDCisJCQkJNDkgTGVhdmVud29ydGggU3RyZWV0CisJCQkJU3VpdGUgMjAwCisJCQkJV2F0ZXJidXJ5IENUIDA2NzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQS1GRCAgIChoZXgpCQlWaWtpbmcgRWxlY3Ryb25pYyBTZXJ2aWNlcworMDAwQUZEICAgICAoYmFzZSAxNikJCVZpa2luZyBFbGVjdHJvbmljIFNlcnZpY2VzCisJCQkJNjIwIEFsbGVuZGFsZSBSZAorCQkJCVN1aXRlIDE3NQorCQkJCUtpbmcgb2YgUHJ1c3NpYSBQQSAxOTQwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEEtRkUgICAoaGV4KQkJTm92YVBhbCBMdGQKKzAwMEFGRSAgICAgKGJhc2UgMTYpCQlOb3ZhUGFsIEx0ZAorCQkJCUZsb29yIDYKKwkJCQk1OCBVeGJyaWRnZSBSb2FkCisJCQkJRWFsaW5nIExvbmRvbiBXNSAyU1QKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQS1GRiAgIChoZXgpCQlLaWxjaGhlcnIgRWxla3Ryb25payBBRworMDAwQUZGICAgICAoYmFzZSAxNikJCUtpbGNoaGVyciBFbGVrdHJvbmlrIEFHCisJCQkJQWVzY2hpc3RyYXNzZSAyNQorCQkJCU11ZW5zaW5nZW4gQkUgMzExMAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBCLTAwICAgKGhleCkJCUZVSklBTiBTVEFSVCBDT01QVVRFUiBFUVVJUE1FTlQgQ08uLExURAorMDAwQjAwICAgICAoYmFzZSAxNikJCUZVSklBTiBTVEFSVCBDT01QVVRFUiBFUVVJUE1FTlQgQ08uLExURAorCQkJCUhPTkcgU0hBTiBZVUFOIFJPQUQgTk8uNjggSE9OR1NIQU4sR1VMT1UKKwkJCQlGVVpIT1UgRlVKSUFOIDM1MDAwMgorCQkJCUNISU5BCisKKzAwLTBCLTAxICAgKGhleCkJCURBSUlDSEkgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCiswMDBCMDEgICAgIChiYXNlIDE2KQkJREFJSUNISSBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQkxLTExLTEzCisJCQkJSGl0b3RzdXlhIEFkYWNoaS1rdSBUb2t5byAxMjEtODYzOQorCQkJCUpBUEFOCisKKzAwLTBCLTAyICAgKGhleCkJCURhbGxtZWllciBlbGVjdHJvbmljCiswMDBCMDIgICAgIChiYXNlIDE2KQkJRGFsbG1laWVyIGVsZWN0cm9uaWMKKwkJCQlXdWVyemJ1cmdlcnN0ci41CisJCQkJUmVnZW5zYnVyZyBCYXZhcmlhIDkzMDU5CisJCQkJR0VSTUFOWQorCiswMC0wQi0wMyAgIChoZXgpCQlUYWVrd2FuZyBJbmR1c3RyaWFsIENvLiwgTHRkCiswMDBCMDMgICAgIChiYXNlIDE2KQkJVGFla3dhbmcgSW5kdXN0cmlhbCBDby4sIEx0ZAorCQkJCSMxOTEtMSwgQW55YW5nLTdEb25nLCBNYW5hbi1HdQorCQkJCUFueWFuZy1TaSBTb3V0aCBLb3JlYSA0MzAtMDE3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLTA0ICAgKGhleCkJCVZvbGt0ZWsgQ29ycG9yYXRpb24KKzAwMEIwNCAgICAgKGJhc2UgMTYpCQlWb2xrdGVrIENvcnBvcmF0aW9uCisJCQkJNEYuLCBOby4xOTIsIExpYW4tQ2hhbmcgUm9hZCwgQ2hhbmctSG8KKwkJCQlUYWlwZWkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItMDUgICAoaGV4KQkJUGFjaWZpYyBCcm9hZGJhbmQgTmV0d29ya3MKKzAwMEIwNSAgICAgKGJhc2UgMTYpCQlQYWNpZmljIEJyb2FkYmFuZCBOZXR3b3JrcworCQkJCTgtMTAgS2VpdGggQ2FtcGJlbGwgQ291cnQKKwkJCQlTQ09SRVNCWSBWSUMgMzE3OQorCQkJCUFVU1RSQUxJQQorCiswMC0wQi0wNiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAwQjA2ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMDcgICAoaGV4KQkJVm94cGF0aCBOZXR3b3JrcworMDAwQjA3ICAgICAoYmFzZSAxNikJCVZveHBhdGggTmV0d29ya3MKKwkJCQk3NjAwQiBDYXBpdGFsIG9mIFRleGFzIEhpZ2h3YXkgIC0gTm9ydGgKKwkJCQlTdWl0ZSAyMjAKKwkJCQlBdXN0aW4gVGV4YXMgNzg3MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTA4ICAgKGhleCkJCVBpbGxhciBEYXRhIFN5c3RlbXMKKzAwMEIwOCAgICAgKGJhc2UgMTYpCQlQaWxsYXIgRGF0YSBTeXN0ZW1zCisJCQkJMTM3MSBNY0NhcnRoeSBCbHZkLgorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0wOSAgIChoZXgpCQlJZm91bmRyeSBTeXN0ZW1zIFNpbmdhcG9yZQorMDAwQjA5ICAgICAoYmFzZSAxNikJCUlmb3VuZHJ5IFN5c3RlbXMgU2luZ2Fwb3JlCisJCQkJQmxvY2sgMSwgVW5pdCAxMDFCLCBJbm5vdmF0aW9uIENlbnRyZSwgMQorCQkJCTYzNzcyMgorCQkJCVNJTkdBUE9SRQorCiswMC0wQi0wQSAgIChoZXgpCQlkQm0gT3B0aWNzCiswMDBCMEEgICAgIChiYXNlIDE2KQkJZEJtIE9wdGljcworCQkJCTMwMCBTLiBQdWJsaWMgUm9hZAorCQkJCUxhZmF5ZXR0ZSBDb2xvcmFkbyA4MDAyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMEIgICAoaGV4KQkJQ29ycmVudCBDb3Jwb3JhdGlvbgorMDAwQjBCICAgICAoYmFzZSAxNikJCUNvcnJlbnQgQ29ycG9yYXRpb24KKwkJCQkxNzExIFcuIEdyZWVudHJlZSBEci4KKwkJCQlTdWl0ZSAyMDEKKwkJCQlUZW1wZSBBWiA4NTI4NC0yNzE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0wQyAgIChoZXgpCQlBZ2lsZSBTeXN0ZW1zIEluYy4KKzAwMEIwQyAgICAgKGJhc2UgMTYpCQlBZ2lsZSBTeXN0ZW1zIEluYy4KKwkJCQk1NzUgS3VtcGYgRHJpdmUKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yViAxSzMKKwkJCQlDQU5BREEKKworMDAtMEItMEQgICAoaGV4KQkJQWlyMlUsIEluYy4KKzAwMEIwRCAgICAgKGJhc2UgMTYpCQlBaXIyVSwgSW5jLgorCQkJCU5vLiA1LTEgSW5ub3ZhdGlvbiBSZCAxLCBTY2llbmNlLWJhc2VkIFAKKwkJCQlIc2luLUNodSBUYWl3YW4gMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi0wRSAgIChoZXgpCQlUcmFwZXplIE5ldHdvcmtzCiswMDBCMEUgICAgIChiYXNlIDE2KQkJVHJhcGV6ZSBOZXR3b3JrcworCQkJCTU3NTMgVy4gTGFzIFBvc2l0YXMgQmx2ZAorCQkJCVBsZWFzYW50b24gQ0EgOTQ1ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTBGICAgKGhleCkJCU55cXVpc3QgSW5kdXN0cmlhbCBDb250cm9sIEJWCiswMDBCMEYgICAgIChiYXNlIDE2KQkJTnlxdWlzdCBJbmR1c3RyaWFsIENvbnRyb2wgQlYKKwkJCQlMdWNodGhhdmVud2VnIDIwCisJCQkJRWluZGhvdmVuIE5vb3JkIEJyYWJhbnQgTkw1NjU3IEVCCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEItMTAgICAoaGV4KQkJMTF3YXZlIFRlY2hub25sb2d5IENvLixMdGQKKzAwMEIxMCAgICAgKGJhc2UgMTYpCQkxMXdhdmUgVGVjaG5vbmxvZ3kgQ28uLEx0ZAorCQkJCTEwRixuby4yODUgc2VjLjIgLFRpLURpbmcgQXZlLE5haUh1LlRhaXAKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItMTEgICAoaGV4KQkJSElNRUpJIEFCQyBUUkFESU5HIENPLixMVEQuCiswMDBCMTEgICAgIChiYXNlIDE2KQkJSElNRUpJIEFCQyBUUkFESU5HIENPLixMVEQuCisJCQkJMS04LTIyCisJCQkJSllPVUhPS1VTSElOTUFDSEkKKwkJCQlISk1FSkkgSFlPR08gNjcwLTA4ODMKKwkJCQlKQVBBTgorCiswMC0wQi0xMiAgIChoZXgpCQlOVVJJIFRlbGVjb20gQ28uLCBMdGQuCiswMDBCMTIgICAgIChiYXNlIDE2KQkJTlVSSSBUZWxlY29tIENvLiwgTHRkLgorCQkJCVdvb2xpbSBMaW9uJ3MgVmFsbGV5IEJsZGctQiAxMHRoIEYKKwkJCQkjMzcxLTI4IEthc2FuLWRvbmcKKwkJCQlLZXVtLWNoZXVuLWd1IFNlb3VsIDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItMTMgICAoaGV4KQkJWkVUUk9OIElOQworMDAwQjEzICAgICAoYmFzZSAxNikJCVpFVFJPTiBJTkMKKwkJCQlQTyBCb3ggOTcwMDQKKwkJCQlSRURNT05EIFdBIDk4MDczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0xNCAgIChoZXgpCQlWaWV3U29uaWMgQ29ycG9yYXRpb24KKzAwMEIxNCAgICAgKGJhc2UgMTYpCQlWaWV3U29uaWMgQ29ycG9yYXRpb24KKwkJCQkzODEgQnJlYSBDYW55b24gUm9hZAorCQkJCVdhbG51dCBDYWxpZm9ybmlhIDkxNzg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0xNSAgIChoZXgpCQlQbGF0eXB1cyBUZWNobm9sb2d5CiswMDBCMTUgICAgIChiYXNlIDE2KQkJUGxhdHlwdXMgVGVjaG5vbG9neQorCQkJCTQvMSBBdGNoaXNvbiBTdAorCQkJCVN0IExlb25hcmRzIE5TVyAyMDY1CisJCQkJQVVTVFJBTElBCisKKzAwLTBCLTE2ICAgKGhleCkJCUNvbW11bmljYXRpb24gTWFjaGluZXJ5IENvcnBvcmF0aW9uCiswMDBCMTYgICAgIChiYXNlIDE2KQkJQ29tbXVuaWNhdGlvbiBNYWNoaW5lcnkgQ29ycG9yYXRpb24KKwkJCQk0MDIgRS4gR3V0aWVycmV6IFN0LgorCQkJCVNhbnRhIEJhcmJhcmEgQ0EgOTMxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTE3ICAgKGhleCkJCU1LUyBJbnN0cnVtZW50cworMDAwQjE3ICAgICAoYmFzZSAxNikJCU1LUyBJbnN0cnVtZW50cworCQkJCTY1MSBMb3dlbGwgU3RyZWV0CisJCQkJTWV0aHVlbiBNQSAwMTg0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMTggICAoaGV4KQkJUFJJVkFURQorMDAwQjE4ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wQi0xOSAgIChoZXgpCQlWZXJuaWVyIE5ldHdvcmtzLCBJbmMuCiswMDBCMTkgICAgIChiYXNlIDE2KQkJVmVybmllciBOZXR3b3JrcywgSW5jLgorCQkJCTQ5MCBFLiBNaWRkbGVmaWVsZCBSb2FkCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMUEgICAoaGV4KQkJSW5kdXN0cmlhbCBEZWZlbmRlciwgSW5jLgorMDAwQjFBICAgICAoYmFzZSAxNikJCUluZHVzdHJpYWwgRGVmZW5kZXIsIEluYy4KKwkJCQkxNiBDaGVzdG51dCBTdHJlZXQKKwkJCQlTdWl0ZSAzMDAKKwkJCQlGb3hib3JvdWdoIE1BIDAyMDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0xQiAgIChoZXgpCQlTeXN0cm9uaXgsIEluYy4KKzAwMEIxQiAgICAgKGJhc2UgMTYpCQlTeXN0cm9uaXgsIEluYy4KKwkJCQk5MzkgRWRpc29uIFN0LgorCQkJCVNhbHQgTGFrZSBDaXR5IFV0YWggODQxMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTFDICAgKGhleCkJCVNJQkNPIGJ2CiswMDBCMUMgICAgIChiYXNlIDE2KQkJU0lCQ08gYnYKKwkJCQlTY2hvb25ob3V0IDQ2CisJCQkJRXR0ZW4tTGV1ciBOQiA0ODcyIE1FCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEItMUQgICAoaGV4KQkJTGF5ZXJaZXJvIFBvd2VyIFN5c3RlbXMsIEluYy4KKzAwMEIxRCAgICAgKGJhc2UgMTYpCQlMYXllclplcm8gUG93ZXIgU3lzdGVtcywgSW5jLgorCQkJCTM1NTkgVG93bmxleSBSb2FkCisJCQkJU2hha2VyIEhlaWdodHMgT0ggNDQxMjItNTE1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMUUgICAoaGV4KQkJS0FQUEEgb3B0by1lbGVjdHJvbmljcyBHbWJICiswMDBCMUUgICAgIChiYXNlIDE2KQkJS0FQUEEgb3B0by1lbGVjdHJvbmljcyBHbWJICisJCQkJS2xlaW5lcyBGZWxkIDYKKwkJCQkzNzEzMAorCQkJCUdsZWljaGVuIE5pZWRlcnNhY2hzZW4gCisJCQkJR0VSTUFOWQorCiswMC0wQi0xRiAgIChoZXgpCQlJIENPTiBDb21wdXRlciBDby4KKzAwMEIxRiAgICAgKGJhc2UgMTYpCQlJIENPTiBDb21wdXRlciBDby4KKwkJCQkzRiwgTm8uIDE0MiAsIEhzaW4gTWluZyBSb2FkCisJCQkJTmVpaHUgVGFpcGVpIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItMjAgICAoaGV4KQkJSGlyYXRhIGNvcnBvcmF0aW9uCiswMDBCMjAgICAgIChiYXNlIDE2KQkJSGlyYXRhIGNvcnBvcmF0aW9uCisJCQkJMTExIEhpdG90c3VnaSwgVWVraSwKKwkJCQlLYW1vdG8gS3VtYW1vdG8gODYxLTAxOTgKKwkJCQlKQVBBTgorCiswMC0wQi0yMSAgIChoZXgpCQlHLVN0YXIgQ29tbXVuaWNhdGlvbnMgSW5jLgorMDAwQjIxICAgICAoYmFzZSAxNikJCUctU3RhciBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJNUYsIDY5LTEwLCBTZWMuIDIsIENodW5nIENoZW5nIEVhc3QgUm9hZAorCQkJCVRhaXBlaSBIc2llbiAgMjUxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi0yMiAgIChoZXgpCQlFbnZpcm9ubWVudGFsIFN5c3RlbXMgYW5kIFNlcnZpY2VzCiswMDBCMjIgICAgIChiYXNlIDE2KQkJRW52aXJvbm1lbnRhbCBTeXN0ZW1zIGFuZCBTZXJ2aWNlcworCQkJCTIwIENvdW5jaWwgU3RyZWV0CisJCQkJSGF3dGhvcm4gRWFzdCBWaWN0b3JpYSAzMTIzCisJCQkJQVVTVFJBTElBCisKKzAwLTBCLTIzICAgKGhleCkJCVNpZW1lbnMgU3Vic2NyaWJlciBOZXR3b3JrcworMDAwQjIzICAgICAoYmFzZSAxNikJCVNpZW1lbnMgU3Vic2NyaWJlciBOZXR3b3JrcworCQkJCTQ4NDkgQWxwaGEgUm9hZAorCQkJCURhbGxhcyBUZXhhcyA3NDI0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMjQgICAoaGV4KQkJQWlyTG9naWMKKzAwMEIyNCAgICAgKGJhc2UgMTYpCQlBaXJMb2dpYworCQkJCTgwNy0xLCBCdW5kYW5ndGVjaG5vcGFyayBELCAxNTEsCisJCQkJWWF0YXAtRG9uZywgQnVuZGFuZy1LdQorCQkJCVN1bmduYW0tU2kgS3l1bmdraS1EbyA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLTI1ICAgKGhleCkJCUFlbHVyb3MKKzAwMEIyNSAgICAgKGJhc2UgMTYpCQlBZWx1cm9zCisJCQkJMjAxIFNhbiBBbnRvbmlvIENpcmNsZSAjMTcyCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMjYgICAoaGV4KQkJV2V0ZWsgQ29ycG9yYXRpb24KKzAwMEIyNiAgICAgKGJhc2UgMTYpCQlXZXRlayBDb3Jwb3JhdGlvbgorCQkJCTRGLCBOTy4xNywgS3VhbmZ1IE4uIFJvYWQKKwkJCQlIc2luIENodSBJbmR1c3RyaWFsIFBhcmsgSHNpbiBDaHUgMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi0yNyAgIChoZXgpCQlTY2lvbiBDb3Jwb3JhdGlvbgorMDAwQjI3ICAgICAoYmFzZSAxNikJCVNjaW9uIENvcnBvcmF0aW9uCisJCQkJODIgV29ybWFuJ3MgTWlsbCBDb3VydAorCQkJCVN1aXRlIEgKKwkJCQlGcmVkZXJpY2sgTUQgMjE3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTI4ICAgKGhleCkJCVF1YXRlY2ggSW5jLgorMDAwQjI4ICAgICAoYmFzZSAxNikJCVF1YXRlY2ggSW5jLgorCQkJCTY2MiBXb2xmIExlZGdlcyBQa3d5LgorCQkJCUFrcm9uIE9IIDQ0MzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0yOSAgIChoZXgpCQlMUyhMRykgSW5kdXN0cmlhbCBTeXN0ZW1zIGNvLixMdGQKKzAwMEIyOSAgICAgKGJhc2UgMTYpCQlMUyhMRykgSW5kdXN0cmlhbCBTeXN0ZW1zIGNvLixMdGQKKwkJCQk1MzMgSG9neWUtZG9uZywgRG9uZ2FuLWd1CisJCQkJQW55YW5nLXNpIEd5ZW9uZ2dpLWRvIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi0yQSAgIChoZXgpCQlIT1dURUwgQ28uLCBMdGQuCiswMDBCMkEgICAgIChiYXNlIDE2KQkJSE9XVEVMIENvLiwgTHRkLgorCQkJCUotQ09NIEJkLiA0RiwgMTI0LTQgT0pFT04tRE9ORworCQkJCVVJV0FORy1TSEkgS1lPVU5HR0ktRE8gNDM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi0yQiAgIChoZXgpCQlIT1NUTkVUIENPUlBPUkFUSU9OCiswMDBCMkIgICAgIChiYXNlIDE2KQkJSE9TVE5FVCBDT1JQT1JBVElPTgorCQkJCTEwRi0xMixOby4gMTIgTGFuZSA2MDksIFNlYy41LENodW5naHNpbgorCQkJCVNhbmNodW5nIFRhaXBlaSBIc2llbiAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTJDICAgKGhleCkJCUVpa2kgSW5kdXN0cmlhbCBDby4gTHRkLgorMDAwQjJDICAgICAoYmFzZSAxNikJCUVpa2kgSW5kdXN0cmlhbCBDby4gTHRkLgorCQkJCTQtMTIgTWFuemFpLWNobywgS2l0YS1rdQorCQkJCU9zYWthICA1MzAKKwkJCQlKQVBBTgorCiswMC0wQi0yRCAgIChoZXgpCQlEYW5mb3NzIEluYy4KKzAwMEIyRCAgICAgKGJhc2UgMTYpCQlEYW5mb3NzIEluYy4KKwkJCQk3OTQxIENvcnBvcmF0ZSBEcgorCQkJCUJhbHRpbW9yZSBNRCAyMTIzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMkUgICAoaGV4KQkJQ2FsLUNvbXAgRWxlY3Ryb25pY3MgKFRoYWlsYW5kKSBQdWJsaWMgQ29tcGFueSBMaW1pdGVkIFRhaXBlCiswMDBCMkUgICAgIChiYXNlIDE2KQkJQ2FsLUNvbXAgRWxlY3Ryb25pY3MgKFRoYWlsYW5kKSBQdWJsaWMgQ29tcGFueSBMaW1pdGVkIFRhaXBlCisJCQkJOUYsIDk5LCBOYW4tS2luZyBFIFJkLiwgU2VjLiA1LgorCQkJCVRhaXBlaSAgMTA1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi0yRiAgIChoZXgpCQlicGxhbiBHbWJICiswMDBCMkYgICAgIChiYXNlIDE2KQkJYnBsYW4gR21iSAorCQkJCUluZHVzdHJpZXN0cmHDg8W4ZSAyMworCQkJCVN0ZWluYmFjaCA2MTQ0OQorCQkJCUdFUk1BTlkKKworMDAtMEItMzAgICAoaGV4KQkJQmVpamluZyBHb25neWUgU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAwQjMwICAgICAoYmFzZSAxNikJCUJlaWppbmcgR29uZ3llIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlVbml0IEQuMTcvRSxTaGVubGFuaHVhdGluZyBtaWQgUm9hZCBOby42CisJCQkJQmVpamluZyAgMTAwMDI5CisJCQkJQ0hJTkEKKworMDAtMEItMzEgICAoaGV4KQkJWWFudGFpIFpoaVlhbmcgU2NpZW50aWZpYyBhbmQgdGVjaG5vbG9neSBpbmR1c3RyeSBDTy4sIExURAorMDAwQjMxICAgICAoYmFzZSAxNikJCVlhbnRhaSBaaGlZYW5nIFNjaWVudGlmaWMgYW5kIHRlY2hub2xvZ3kgaW5kdXN0cnkgQ08uLCBMVEQKKwkJCQk1Ri00LCBOTy4gNjQsIEdvbmctSmlhbiBSZC4KKwkJCQlIc2ktQ2hpaCBDaXR5IFRhaXBlaSBDb3VudHkgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi0zMiAgIChoZXgpCQlWT1JNRVRSSUMsIElOQy4KKzAwMEIzMiAgICAgKGJhc2UgMTYpCQlWT1JNRVRSSUMsIElOQy4KKwkJCQkyMDYwIENPUlBPUkFURSBDVAorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0zMyAgIChoZXgpCQlWaXZhdG8gVGVjaG5vbG9naWVzCiswMDBCMzMgICAgIChiYXNlIDE2KQkJVml2YXRvIFRlY2hub2xvZ2llcworCQkJCTQ0NCBDZWRyb3MgQXZlCisJCQkJU3VpdGUgMTc1CisJCQkJU29sYW5hIEJlYWNoIENBIDkyMDI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi0zNCAgIChoZXgpCQlTaGFuZ0hhaSBCcm9hZGJhbmQgVGVjaG5vbG9naWVzIENPLkxURAorMDAwQjM0ICAgICAoYmFzZSAxNikJCVNoYW5nSGFpIEJyb2FkYmFuZCBUZWNobm9sb2dpZXMgQ08uTFRECisJCQkJMTdGLE5vLjEyMixIdWFuZ1hpbmcgUm9hZAorCQkJCVNoYW5nSGFpICAyMDAwOTAKKwkJCQlDSElOQQorCiswMC0wQi0zNSAgIChoZXgpCQlRdWFkIEJpdCBTeXN0ZW0gY28uLCBMdGQuCiswMDBCMzUgICAgIChiYXNlIDE2KQkJUXVhZCBCaXQgU3lzdGVtIGNvLiwgTHRkLgorCQkJCTQwMiBHYXlhbmcgVGVjaG5vdG93bgorCQkJCTE0ODcgR2F5YW5nIDMgZG9uZworCQkJCVNlb3VsIEthbmdzZW9ndSAxNTctODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLTM2ICAgKGhleCkJCVByb2R1Y3Rpdml0eSBTeXN0ZW1zLCBJbmMuCiswMDBCMzYgICAgIChiYXNlIDE2KQkJUHJvZHVjdGl2aXR5IFN5c3RlbXMsIEluYy4KKwkJCQkxNzExIEFuYWxvZyBEcml2ZQorCQkJCVJpY2hhcmRzb24gVFggNzUwODEtMTk0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItMzcgICAoaGV4KQkJTUFOVUZBQ1RVUkUgREVTIE1PTlRSRVMgUk9MRVggU0EKKzAwMEIzNyAgICAgKGJhc2UgMTYpCQlNQU5VRkFDVFVSRSBERVMgTU9OVFJFUyBST0xFWCBTQQorCQkJCUxBIEhBVVRFLVJPVVRFIDgyCisJCQkJQklFTC1CSUVOTkUgQkUgMjUwMgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBCLTM4ICAgKGhleCkJCUtudWVyciBHbWJICiswMDBCMzggICAgIChiYXNlIDE2KQkJS251ZXJyIEdtYkgKKwkJCQlNYXJpYWtpcmNoZW5lciBTdHJhc3NlIDM4CisJCQkJQXJuc3RvcmYgQmF2YXJpYSA5NDQyNAorCQkJCUdFUk1BTlkKKworMDAtMEItMzkgICAoaGV4KQkJS2Vpc29rdSBHaWtlbiBDby4sTHRkLgorMDAwQjM5ICAgICAoYmFzZSAxNikJCUtlaXNva3UgR2lrZW4gQ28uLEx0ZC4KKwkJCQkyLTEyLTIgLCBDaGlnYXNha2ktbWluYW1pCisJCQkJVHN1enVraS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyNC0wMDM3CisJCQkJSkFQQU4KKworMDAtMEItM0EgICAoaGV4KQkJUXVTdHJlYW0gQ29ycG9yYXRpb24KKzAwMEIzQSAgICAgKGJhc2UgMTYpCQlRdVN0cmVhbSBDb3Jwb3JhdGlvbgorCQkJCTMzMDUgQnJlY2tpbnJpZGdlIEJsdmQuCisJCQkJU3VpdGUgMTE4CisJCQkJRHVsdXRoIEdlb3JnaWEgMzAwOTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTNCICAgKGhleCkJCWRldm9sbyBBRworMDAwQjNCICAgICAoYmFzZSAxNikJCWRldm9sbyBBRworCQkJCVNvbm5lbndlZyAxMQorCQkJCUFhY2hlbiBOUlcgNTIwNzAKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLTNDICAgKGhleCkJCUN5Z25hbCBJbnRlZ3JhdGVkIFByb2R1Y3RzLCBJbmMuCiswMDBCM0MgICAgIChiYXNlIDE2KQkJQ3lnbmFsIEludGVncmF0ZWQgUHJvZHVjdHMsIEluYy4KKwkJCQk0MzAxIFdlc3RiYW5rIERyaXZlCisJCQkJU3VpdGUgQi0xMDAKKwkJCQlBdXN0aW4gVFggNzg3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTNEICAgKGhleCkJCUNPTlRBTCBPSyBMdGQuCiswMDBCM0QgICAgIChiYXNlIDE2KQkJQ09OVEFMIE9LIEx0ZC4KKwkJCQlGcmFuYSBNcmF6YSAyLzI4OQorCQkJCVAuTy5Cb3ggQi0zNAorCQkJCVppbGluYSAgMDExMjQKKwkJCQlTTE9WQUtJQQorCiswMC0wQi0zRSAgIChoZXgpCQlCaXR0V2FyZSwgSW5jCiswMDBCM0UgICAgIChiYXNlIDE2KQkJQml0dFdhcmUsIEluYworCQkJCTMxIEIgU291dGggTWFpbiBTdAorCQkJCUNvbmNvcmQgTkggMDMzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTNGICAgKGhleCkJCUFudGhvbG9neSBTb2x1dGlvbnMgSW5jLgorMDAwQjNGICAgICAoYmFzZSAxNikJCUFudGhvbG9neSBTb2x1dGlvbnMgSW5jLgorCQkJCTE3MjIgUmluZ3dvb2QgQXZlLgorCQkJCVN1aXRlIDI1MAorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi00MCAgIChoZXgpCQlPcE5leHQgSW5jLgorMDAwQjQwICAgICAoYmFzZSAxNikJCU9wTmV4dCBJbmMuCisJCQkJMSBDaHJpc3RvcGhlciBXYXkKKwkJCQlFYXRvbnRvd24gTmV3IEplcnNleSAwNzcyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNDEgICAoaGV4KQkJSW5nLiBCdWVybyBEci4gQmV1dGxoYXVzZXIKKzAwMEI0MSAgICAgKGJhc2UgMTYpCQlJbmcuIEJ1ZXJvIERyLiBCZXV0bGhhdXNlcgorCQkJCVJvZW1lcndlZyA0CisJCQkJR3Jhc3NhdSBELTgzMjI0CisJCQkJR0VSTUFOWQorCiswMC0wQi00MiAgIChoZXgpCQljb21tYXggQ28uLCBMdGQuCiswMDBCNDIgICAgIChiYXNlIDE2KQkJY29tbWF4IENvLiwgTHRkLgorCQkJCTUxMy0xMSwgU2FuZ2RhZXdvbi1Eb25nLCBKdW5nd29uLUt1CisJCQkJU3VuZ25hbS1DaXR5IEt5dW5nZ2ktRG8gNDYyLTEyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi00MyAgIChoZXgpCQlNaWNyb3NjYW4gU3lzdGVtcywgSW5jLgorMDAwQjQzICAgICAoYmFzZSAxNikJCU1pY3Jvc2NhbiBTeXN0ZW1zLCBJbmMuCisJCQkJMTIwMSBTVyA3dGggU3RyZWV0CisJCQkJUmVudG9uIFdBIDk4MDU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi00NCAgIChoZXgpCQlDb25jb3JkIElEZWEgQ29ycC4KKzAwMEI0NCAgICAgKGJhc2UgMTYpCQlDb25jb3JkIElEZWEgQ29ycC4KKwkJCQk0MTE4IDE0dGggQXZlLiwgVW5pdCA0CisJCQkJTWFya2hhbSBPbnRhcmlvIEwzUiAwSjMKKwkJCQlDQU5BREEKKworMDAtMEItNDUgICAoaGV4KQkJQ2lzY28KKzAwMEI0NSAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi00NiAgIChoZXgpCQlDaXNjbworMDAwQjQ2ICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTQ3ICAgKGhleCkJCUFkdmFuY2VkIEVuZXJneQorMDAwQjQ3ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIEVuZXJneQorCQkJCTE2MjUgU2hhcnAgUG9pbnQgRHJpdmUKKwkJCQlGb3J0IENvbGxpbnMgQ29sb3JhZG8gODA1MjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTQ4ICAgKGhleCkJCXNvZnJlbAorMDAwQjQ4ICAgICAoYmFzZSAxNikJCXNvZnJlbAorCQkJCTIgcnVlIGR1IHBsZXNzaXMKKwkJCQl2ZXJuIHN1ciBzZWljaGUgaWxsZSBldCB2aWxhaW5lIDM1NzcwCisJCQkJRlJBTkNFCisKKzAwLTBCLTQ5ICAgKGhleCkJCVJGLUxpbmsgU3lzdGVtIEluYy4KKzAwMEI0OSAgICAgKGJhc2UgMTYpCQlSRi1MaW5rIFN5c3RlbSBJbmMuCisJCQkJTm8uNiwgTmFuLUtlIDV0aCBSZC4sIEhzaW4tU2hpLAorCQkJCVRhaW5hbiBDb3VudHkgIDc0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItNEEgICAoaGV4KQkJVmlzaW1ldHJpY3MgKFVLKSBMdGQKKzAwMEI0QSAgICAgKGJhc2UgMTYpCQlWaXNpbWV0cmljcyAoVUspIEx0ZAorCQkJCVNreWUgSG91c2UKKwkJCQlTa3llIFJvYWQKKwkJCQlQcmVzdHdpY2sgQXlyc2hpcmUgS0E5IDJUQQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBCLTRCICAgKGhleCkJCVZJU0lPV0FWRSBTQQorMDAwQjRCICAgICAoYmFzZSAxNikJCVZJU0lPV0FWRSBTQQorCQkJCVJvdXRlIGRlIGxhIFBpZXJyZSAyMgorCQkJCVZJQ1RPUklBIEhPVVNFCisJCQkJRUNVQkxFTlMgVkFVRCBDSC0xMDI0CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEItNEMgICAoaGV4KQkJQ2xhcmlvbiAoTSkgU2RuIEJoZAorMDAwQjRDICAgICAoYmFzZSAxNikJCUNsYXJpb24gKE0pIFNkbiBCaGQKKwkJCQlQaGFzZSAzCisJCQkJRklaCisJCQkJQmF5YW4gTGVwYXMgUGVuYW5nIDExOTAwCisJCQkJTUFMQVlTSUEKKworMDAtMEItNEQgICAoaGV4KQkJRW11emVkCiswMDBCNEQgICAgIChiYXNlIDE2KQkJRW11emVkCisJCQkJNDY3NTAgTGFrZXZpZXcgQm91bGV2YXJkCisJCQkJRnJlbW9udCBDYWxpZm9ybmlhIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi00RSAgIChoZXgpCQlWZXJ0ZXhSU0ksIEdlbmVyYWwgRHluYW1pY3MgU2F0Q09NIFRlY2hub2xvZ2llcywgSW5jLgorMDAwQjRFICAgICAoYmFzZSAxNikJCVZlcnRleFJTSSwgR2VuZXJhbCBEeW5hbWljcyBTYXRDT00gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTkxNSBFLiBIYXJyaXNvbiBSb2FkCisJCQkJTG9uZ3ZpZXcgVFggNzU2MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTRGICAgKGhleCkJCVZlcmlmb25lLCBJTkMuCiswMDBCNEYgICAgIChiYXNlIDE2KQkJVmVyaWZvbmUsIElOQy4KKwkJCQkyNDU1IEF1Z3VzdGluZSBEcml2ZQorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTUwICAgKGhleCkJCU94eWduZXQKKzAwMEI1MCAgICAgKGJhc2UgMTYpCQlPeHlnbmV0CisJCQkJNDAyIEUuIENhcnJpbGxvIFN0LgorCQkJCVN1aXRlIEMKKwkJCQlTYW50YSBCYXJiYXJhIENBIDkzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi01MSAgIChoZXgpCQlNaWNldGVrIEludGVybmF0aW9uYWwgSW5jLgorMDAwQjUxICAgICAoYmFzZSAxNikJCU1pY2V0ZWsgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJN0YtMSwgIzIzNywgU2VjLiAxLCB3dSBDaHVhbiBXLiBSZC4KKwkJCQlUYWljaHVuZyAgNDAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi01MiAgIChoZXgpCQlKT1lNQVggRUxFQ1RST05JQ1MgQ08uIExURC4KKzAwMEI1MiAgICAgKGJhc2UgMTYpCQlKT1lNQVggRUxFQ1RST05JQ1MgQ08uIExURC4KKwkJCQlOby41IERvbmctWXVhbiBSb2FkIDIsIEpob25nLUxpIEluZHVzdHJpYWwgUGFyaywKKwkJCQlKaG9uZy1MaSBDaXR5LCAKKwkJCQlUYW8tWXVhbiAgMzIwNjMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTUzICAgKGhleCkJCUlOSVRJVU0gQ28uLCBMdGQuCiswMDBCNTMgICAgIChiYXNlIDE2KQkJSU5JVElVTSBDby4sIEx0ZC4KKwkJCQk4Ri4gR29uZ2R1Y2sgQmxkZy4gMjcyLTYgU2VvaHl1biBCdW5kYW5nCisJCQkJU3VuZ25hbSBLeXVuZ2dpIDQ2My04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItNTQgICAoaGV4KQkJQmlUTUlDUk8gTmV0d29ya3MsIEluYy4KKzAwMEI1NCAgICAgKGJhc2UgMTYpCQlCaVRNSUNSTyBOZXR3b3JrcywgSW5jLgorCQkJCTQ1NTUwIE5vcnRocG9ydCBMb29wIEVhc3QKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi01NSAgIChoZXgpCQlBREluc3RydW1lbnRzCiswMDBCNTUgICAgIChiYXNlIDE2KQkJQURJbnN0cnVtZW50cworCQkJCVAuIE8uIEJveCA1ODcKKwkJCQlEdW5lZGluIE90YWdvIDkwMDEKKwkJCQlORVcgWkVBTEFORAorCiswMC0wQi01NiAgIChoZXgpCQlDeWJlcm5ldGljcworMDAwQjU2ICAgICAoYmFzZSAxNikJCUN5YmVybmV0aWNzCisJCQkJMTExIEN5YmVybmV0aWNzIFdheQorCQkJCVlvcmt0b3duIFZBIDIzNjkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi01NyAgIChoZXgpCQlTaWxpY29uIExhYm9yYXRvcmllcworMDAwQjU3ICAgICAoYmFzZSAxNikJCVNpbGljb24gTGFib3JhdG9yaWVzCisJCQkJNzAwMCBXLiBXaWxsaWFtIENhbm5vbiBEci4KKwkJCQlCbGRnLjEsIFN1aXRlIDIwMAorCQkJCUF1c3RpbiBUWCA3ODczNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNTggICAoaGV4KQkJQXN0cm9uYXV0aWNzIEMuQSAgTFRECiswMDBCNTggICAgIChiYXNlIDE2KQkJQXN0cm9uYXV0aWNzIEMuQSAgTFRECisJCQkJMjMgaGF5YXJrb24gc3RyZWV0CisJCQkJQm5laSBCcmFrICA1MTI2MQorCQkJCUlTUkFFTAorCiswMC0wQi01OSAgIChoZXgpCQlTY3JpcHRQcm8sIExMQworMDAwQjU5ICAgICAoYmFzZSAxNikJCVNjcmlwdFBybywgTExDCisJCQkJNTgyOCBSZWVkcyBSZC4KKwkJCQlNaXNzaW9uIEthbnNhcyA2NjIwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNUEgICAoaGV4KQkJSHlwZXJFZGdlCiswMDBCNUEgICAgIChiYXNlIDE2KQkJSHlwZXJFZGdlCisJCQkJMzMzIFBpZXJjZSBSb2FkIFN1aXRlICMyMDAKKwkJCQlJdGFzY2EgSUwgNjAxNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTVCICAgKGhleCkJCVJpbmNvbiBSZXNlYXJjaCBDb3Jwb3JhdGlvbgorMDAwQjVCICAgICAoYmFzZSAxNikJCVJpbmNvbiBSZXNlYXJjaCBDb3Jwb3JhdGlvbgorCQkJCTEwMSBOLiBXaWxtb3QgUmQuCisJCQkJU3VpdGUgMTAxCisJCQkJVHVjc29uIEFaIDg1NzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi01QyAgIChoZXgpCQlOZXd0ZWNoIENvLixMdGQKKzAwMEI1QyAgICAgKGJhc2UgMTYpCQlOZXd0ZWNoIENvLixMdGQKKwkJCQlLLUJsZGcgMS03LTcgU2hpYmFkYWltb24gTWluYXRvLWt1CisJCQkJVG9reW8gIDEwNS0wMDEyCisJCQkJSkFQQU4KKworMDAtMEItNUQgICAoaGV4KQkJRlVKSVRTVSBMSU1JVEVECiswMDBCNUQgICAgIChiYXNlIDE2KQkJRlVKSVRTVSBMSU1JVEVECisJCQkJTXVzYXNoaS1rb3N1Z2kgVG93ZXIgUGxhY2UgQmxkZy4sIDQwMworCQkJCUtvc3VnaS1jaG8gMS1jaG9tZSxOYWthaGFyYS1rdQorCQkJCUthd2FzYWtpIEthbmFnYXdhIAorCQkJCUpBUEFOCisKKzAwLTBCLTVFICAgKGhleCkJCUF1ZGlvIEVuZ2luZWVyaW5nIFNvY2lldHkgSW5jLgorMDAwQjVFICAgICAoYmFzZSAxNikJCUF1ZGlvIEVuZ2luZWVyaW5nIFNvY2lldHkgSW5jLgorCQkJCTYwIEVhc3QgNDJuZCBTdHJlZXQsIFN1aXRlICMyNTIwCisJCQkJTmV3IFlvcmsgTlkgMTAxNjUtMjUyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNUYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQjVGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNjAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQjYwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNjEgICAoaGV4KQkJRnJpZWRyaWNoIEzDg8K8dHplIEdtYkggJkNvLgorMDAwQjYxICAgICAoYmFzZSAxNikJCUZyaWVkcmljaCBMw4PCvHR6ZSBHbWJIICZDby4KKwkJCQlCcnVja3dpZXNlbnN0cmHDg8W4ZSAxNy0xOQorCQkJCVdlaW5zdGFkdC1Hcm/Dg8W4aGVwcGFjaCBCVyA3MTM4NAorCQkJCUdFUk1BTlkKKworMDAtMEItNjIgICAoaGV4KQkJSW5nZW5pZXVyYnVlcm8gZnVlciBFbGVrdHJvbmlrZGVzaWduIEluZ28gTW9obmVuCiswMDBCNjIgICAgIChiYXNlIDE2KQkJSW5nZW5pZXVyYnVlcm8gZnVlciBFbGVrdHJvbmlrZGVzaWduIEluZ28gTW9obmVuCisJCQkJU3RpY2ggMzAgZAorCQkJCTUyMjQ5IEVzY2h3ZWlsZXIgCisJCQkJR0VSTUFOWQorCiswMC0wQi02MyAgIChoZXgpCQlLYWxlaWRlc2NhcGUKKzAwMEI2MyAgICAgKGJhc2UgMTYpCQlLYWxlaWRlc2NhcGUKKwkJCQlPbmUgRmlyc3QgU3RyZWV0LCBTdWl0ZSBTaXh0ZWVuCisJCQkJTG9zIEFsdG9zIENBIDk0MDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi02NCAgIChoZXgpCQlLaWViYWNrICYgUGV0ZXIgR21iSCAmIENvIEtHCiswMDBCNjQgICAgIChiYXNlIDE2KQkJS2llYmFjayAmIFBldGVyIEdtYkggJiBDbyBLRworCQkJCVRlbXBlbGhvZmVyIFdlZyA1MAorCQkJCUJlcmxpbiAgMTIzNDcKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLTY1ICAgKGhleCkJCVN5LkEuQy4gc3JsCiswMDBCNjUgICAgIChiYXNlIDE2KQkJU3kuQS5DLiBzcmwKKwkJCQl2aWEgQ2Fib3RvIDE5LzEKKwkJCQlUcmllc3RlICAzNDE0NworCQkJCUlUQUxZCisKKzAwLTBCLTY2ICAgKGhleCkJCVRlcmFsaW5rIENvbW11bmljYXRpb25zCiswMDBCNjYgICAgIChiYXNlIDE2KQkJVGVyYWxpbmsgQ29tbXVuaWNhdGlvbnMKKwkJCQlDYXBpdGFsIFRvd2VyIDE1RiwKKwkJCQk5MzEgRG9vbnNhbi1kb25nLCBTZW8tZ3UKKwkJCQlEYWVqZW9uICAzMDIxMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItNjcgICAoaGV4KQkJVG9wdmlldyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDBCNjcgICAgIChiYXNlIDE2KQkJVG9wdmlldyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJTm8uIDgsV3UtQ2h1YW4gUm9hZCxXdSBLdSBJbmR1c3RyaWFsIFBhcgorCQkJCVd1IEt1IEhzaWFuZyxUYWlwZWkgSHNpZW4sICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTY4ICAgKGhleCkJCUFkZHZhbHVlIENvbW11bmljYXRpb25zIFB0ZSBMdGQKKzAwMEI2OCAgICAgKGJhc2UgMTYpCQlBZGR2YWx1ZSBDb21tdW5pY2F0aW9ucyBQdGUgTHRkCisJCQkJMjgsVEFJIFNFTkcgU1RSRUVUICMwNi0wMgorCQkJCVNpbmdhcG9yZSAgNTM0MTA2CisJCQkJU0lOR0FQT1JFCisKKzAwLTBCLTY5ICAgKGhleCkJCUZyYW5rZSBGaW5sYW5kIE95CiswMDBCNjkgICAgIChiYXNlIDE2KQkJRnJhbmtlIEZpbmxhbmQgT3kKKwkJCQlWYXJ0aW9rdWphIDEKKwkJCQlOQUFSQUpBUlZJIE5BQVJBSkFSVkkgRklOLTc2ODUwCisJCQkJRklOTEFORAorCiswMC0wQi02QSAgIChoZXgpCQlBc2lhcm9jayBJbmNvcnBvcmF0aW9uCiswMDBCNkEgICAgIChiYXNlIDE2KQkJQXNpYXJvY2sgSW5jb3Jwb3JhdGlvbgorCQkJCVAuTy4gQm94OTU3LCBPZmZzaG9yZSBJbmNvcnBvcmF0aW9ucyBDZW4KKwkJCQlSb2FkIFRvd24gVG9ydG9sYSAKKwkJCQlWSVJHSU4gSVNMQU5EUywgQlJJVElTSAorCiswMC0wQi02QiAgIChoZXgpCQlXaXN0cm9uIE5ld2ViIENvcnAuCiswMDBCNkIgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBOZXdlYiBDb3JwLgorCQkJCU5vLiAxMC0xLCBMaS1Ic2luIFJvYWQgSSwgU2NpZW5jZS1iYXNlZAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItNkMgICAoaGV4KQkJU3ljaGlwIEluYy4KKzAwMEI2QyAgICAgKGJhc2UgMTYpCQlTeWNoaXAgSW5jLgorCQkJCTI4MDUgTi4gRGFsbGFzIFBhcmt3YXkgU3VpdGUgNDAwCisJCQkJUGxhbm8gVGV4YXMgNzUwOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTZEICAgKGhleCkJCVNPTEVDVFJPTiBKQVBBTiBOQUtBTklJREEKKzAwMEI2RCAgICAgKGJhc2UgMTYpCQlTT0xFQ1RST04gSkFQQU4gTkFLQU5JSURBCisJCQkJMzI1IEdBTkJBUkEKKwkJCQlOQUtBTklJREFNQUNISQorCQkJCUtBTUlHVU4gTUlZQUdJS0VOIDk4MS00MjYzCisJCQkJSkFQQU4KKworMDAtMEItNkUgICAoaGV4KQkJTmVmZiBJbnN0cnVtZW50IENvcnAuCiswMDBCNkUgICAgIChiYXNlIDE2KQkJTmVmZiBJbnN0cnVtZW50IENvcnAuCisJCQkJNzAwIFNvdXRoIE15cnRsZSBBdmUuCisJCQkJTW9ucm92aWEgQ0EgOTEwMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTZGICAgKGhleCkJCU1lZGlhIFN0cmVhbWluZyBOZXR3b3JrcyBJbmMKKzAwMEI2RiAgICAgKGJhc2UgMTYpCQlNZWRpYSBTdHJlYW1pbmcgTmV0d29ya3MgSW5jCisJCQkJMTkwNSBBbmFtIFRvd2VyLCA3MDItMTAsIFllb2tzYW0gZG9uZywgSworCQkJCVNlb3VsICAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLTcwICAgKGhleCkJCUxvYWQgVGVjaG5vbG9neSwgSW5jLgorMDAwQjcwICAgICAoYmFzZSAxNikJCUxvYWQgVGVjaG5vbG9neSwgSW5jLgorCQkJCTQyMjUgUHJvZHVjdGlvbiBDb3VydAorCQkJCUxhcyBWZWdhcyBOViA4OTExNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNzEgICAoaGV4KQkJTGl0Y2hmaWVsZCBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDBCNzEgICAgIChiYXNlIDE2KQkJTGl0Y2hmaWVsZCBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJMjcgUHJpbmNldG9uIFJvYWQKKwkJCQlXYXRlcnRvd24gQ1QgMDY3OTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTcyICAgKGhleCkJCUxhd28gQUcKKzAwMEI3MiAgICAgKGJhc2UgMTYpCQlMYXdvIEFHCisJCQkJQW0gT2JlcndhbGQgOAorCQkJCVJhc3RhdHQgQmFkZW4tV8O8cnR0ZW1iZXJnIDc2NDM3CisJCQkJR0VSTUFOWQorCiswMC0wQi03MyAgIChoZXgpCQlLb2Rlb3MgQ29tbXVuaWNhdGlvbnMKKzAwMEI3MyAgICAgKGJhc2UgMTYpCQlLb2Rlb3MgQ29tbXVuaWNhdGlvbnMKKwkJCQkxMTEgQ29ycG9yYXRlIEJsdmQKKwkJCQlTdWl0ZSBBCisJCQkJU291dGggUGxhaW5maWVsZCBOSiAwNzA4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItNzQgICAoaGV4KQkJS2luZ3dhdmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMEI3NCAgICAgKGJhc2UgMTYpCQlLaW5nd2F2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTE4Ri0zLCBOby4gMTg2LCBKaWFuLVlpIFJkLgorCQkJCUNodW5nLUhvIFRhaXBlaSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLTc1ICAgKGhleCkJCUlvc29mdCBMdGQuCiswMDBCNzUgICAgIChiYXNlIDE2KQkJSW9zb2Z0IEx0ZC4KKwkJCQk1IFdvb2RsYXJrIFJvYWQKKwkJCQlDYW1icmlkZ2UgQ2FtYnMuIENCMyAwSFQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQi03NiAgIChoZXgpCQlFVCZUIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKzAwMEI3NiAgICAgKGJhc2UgMTYpCQlFVCZUIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKwkJCQk2RiBOby4xMDEsIFNvbmdKaWFuZyBSZC4KKwkJCQlUYWlwZWkgIDEwNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItNzcgICAoaGV4KQkJQ29nZW50IFN5c3RlbXMsIEluYy4KKzAwMEI3NyAgICAgKGJhc2UgMTYpCQlDb2dlbnQgU3lzdGVtcywgSW5jLgorCQkJCTIwOSBGYWlyIE9ha3MgQXZlLgorCQkJCVNvdXRoIFBhc2FkZW5hIENBIDkxMDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi03OCAgIChoZXgpCQlUQUlGQVRFQ0ggSU5DLgorMDAwQjc4ICAgICAoYmFzZSAxNikJCVRBSUZBVEVDSCBJTkMuCisJCQkJOEYtMSBOby4yODksIFNlYy4yICBHdWFuZ2Z1IFJkLgorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItNzkgICAoaGV4KQkJWC1DT00sIEluYy4KKzAwMEI3OSAgICAgKGJhc2UgMTYpCQlYLUNPTSwgSW5jLgorCQkJCTg4MDkgU3VkbGV5IFJvYWQKKwkJCQlTdWl0ZSAyMDIKKwkJCQlNYW5hc3NhcyBWQSAyMDExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItN0EgICAoaGV4KQkJV2F2ZSBTY2llbmNlIEluYy4KKzAwMEI3QSAgICAgKGJhc2UgMTYpCQlXYXZlIFNjaWVuY2UgSW5jLgorCQkJCTc2MjAgT21uaXRlY2ggUGxhY2UKKwkJCQlWaWN0b3IgTmV3IFlvcmsgMTQ1NjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTdCICAgKGhleCkJCVRlc3QtVW0gSW5jLgorMDAwQjdCICAgICAoYmFzZSAxNikJCVRlc3QtVW0gSW5jLgorCQkJCTgwOCBDYWxsZSBQbGFubworCQkJCUNhbWFyaWxsbyBDQSA5MzAxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItN0MgICAoaGV4KQkJVGVsZXggQ29tbXVuaWNhdGlvbnMKKzAwMEI3QyAgICAgKGJhc2UgMTYpCQlUZWxleCBDb21tdW5pY2F0aW9ucworCQkJCTg2MDEgRS4gQ29ybmh1c2tlciBId3kKKwkJCQlMaW5jb2xuIE5FIDY4NTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi03RCAgIChoZXgpCQlTT0xPTU9OIEVYVFJFTUUgSU5URVJOQVRJT05BTCBMVEQuCiswMDBCN0QgICAgIChiYXNlIDE2KQkJU09MT01PTiBFWFRSRU1FIElOVEVSTkFUSU9OQUwgTFRELgorCQkJCTNGLCBOby4yMCwgTGFuZSAxNjUsIER1ZW5odWEgTi4gUmQuLCBTdW4KKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItN0UgICAoaGV4KQkJU0FHSU5PTUlZQSBTZWlzYWt1c2hvIEluYy4KKzAwMEI3RSAgICAgKGJhc2UgMTYpCQlTQUdJTk9NSVlBIFNlaXNha3VzaG8gSW5jLgorCQkJCTUzNSBTYXNhaQorCQkJCVNheWFtYXNoaSBTYWl0YW1ha2VuIDM1MC0xMzk1CisJCQkJSkFQQU4KKworMDAtMEItN0YgICAoaGV4KQkJQWxpZ24gRW5naW5lZXJpbmcgTExDCiswMDBCN0YgICAgIChiYXNlIDE2KQkJQWxpZ24gRW5naW5lZXJpbmcgTExDCisJCQkJMjQ1IEhpZ2hsYW5kcyBEcml2ZQorCQkJCUZyaWRheSBIYXJib3IgIFdBIDk4MjUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi04MCAgIChoZXgpCQlMeWNpdW0gTmV0d29ya3MKKzAwMEI4MCAgICAgKGJhc2UgMTYpCQlMeWNpdW0gTmV0d29ya3MKKwkJCQk5IEhhbWVub2ZpbSBTdC4KKwkJCQlQLk8uQm94IDEyMjU2CisJCQkJSGVyemxpeWEgSXNyYWVsIDQ2NzMzCisJCQkJSVNSQUVMCisKKzAwLTBCLTgxICAgKGhleCkJCUthcGFyZWwgQ29ycG9yYXRpb24KKzAwMEI4MSAgICAgKGJhc2UgMTYpCQlLYXBhcmVsIENvcnBvcmF0aW9uCisJCQkJOTcgUmFuZGFsbCBEcml2ZQorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJWLTFDNQorCQkJCUNBTkFEQQorCiswMC0wQi04MiAgIChoZXgpCQlHcmFuZHN0cmVhbSBOZXR3b3JrcywgSW5jLgorMDAwQjgyICAgICAoYmFzZSAxNikJCUdyYW5kc3RyZWFtIE5ldHdvcmtzLCBJbmMuCisJCQkJMTI5NyBCZWFjb24gU3RyZWV0CisJCQkJMm5kIEZsb29yCisJCQkJQnJvb2tsaW5lIE1BIDAyNDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi04MyAgIChoZXgpCQlEQVRBV0FUVCBCLlYuCiswMDBCODMgICAgIChiYXNlIDE2KQkJREFUQVdBVFQgQi5WLgorCQkJCUhPVVRTVFJBQVQgNQorCQkJCVAuTy4gQk9YIDEwOAorCQkJCVdPTFZFR0EgRlJJRVNMQU5EIE5MLTg0NzEtWlgKKwkJCQlORVRIRVJMQU5EUworCiswMC0wQi04NCAgIChoZXgpCQlCT0RFVAorMDAwQjg0ICAgICAoYmFzZSAxNikJCUJPREVUCisJCQkJUm91dGUgZGUgbGEgVG91cmxhbmRyeQorCQkJCVRSRU1FTlRJTkVTIEZSQU5DRSA0OTM0MAorCQkJCUZSQU5DRQorCiswMC0wQi04NSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBCODUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFcuIFRhc21hbiBEcml2ZQorCQkJCU1TIFNKQ00vMS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTg2ICAgKGhleCkJCUFydWJhIE5ldHdvcmtzCiswMDBCODYgICAgIChiYXNlIDE2KQkJQXJ1YmEgTmV0d29ya3MKKwkJCQkxMzIyIENyb3NzbWFuIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItODcgICAoaGV4KQkJQW1lcmljYW4gUmVsaWFuY2UgSW5jLgorMDAwQjg3ICAgICAoYmFzZSAxNikJCUFtZXJpY2FuIFJlbGlhbmNlIEluYy4KKwkJCQkxMTgwMSBHb2xkcmluZyBSZAorCQkJCUFyY2FkaWEgQ0EgOTEwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTg4ICAgKGhleCkJCVZpZGlzY28gbHRkLgorMDAwQjg4ICAgICAoYmFzZSAxNikJCVZpZGlzY28gbHRkLgorCQkJCTE3IFllY2hpZWwgRHJlc25lcgorCQkJCVBldGFjaC1UaWt2YSAgNDkyNzcKKwkJCQlJU1JBRUwKKworMDAtMEItODkgICAoaGV4KQkJVG9wIEdsb2JhbCBUZWNobm9sb2d5LCBMdGQuCiswMDBCODkgICAgIChiYXNlIDE2KQkJVG9wIEdsb2JhbCBUZWNobm9sb2d5LCBMdGQuCisJCQkJUm9vbSAzMzEwLCBDaGluYSBXb3JsZCBUb3dlciBOby4gMQorCQkJCUppYW4gR3VvIE1lbiBXYWkgQXZlbnVlCisJCQkJQmVpamluZyBCZWlqaW5nIDEwMDAwNAorCQkJCUNISU5BCisKKzAwLTBCLThBICAgKGhleCkJCU1JVEVRIEluYy4KKzAwMEI4QSAgICAgKGJhc2UgMTYpCQlNSVRFUSBJbmMuCisJCQkJMTAwIERhdmlkcyBEcml2ZQorCQkJCUhhdXBwYXVnZSBOWSAxMTc4OC0yMDM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi04QiAgIChoZXgpCQlLRVJBSkVULCBTLkEuCiswMDBCOEIgICAgIChiYXNlIDE2KQkJS0VSQUpFVCwgUy5BLgorCQkJCUN0cmEuIFZpbGxhcnJlYWwtT25kYSwgS20gMi41CisJCQkJVmlsbGFycmVhbCBDYXN0ZWxsb24gRS0xMjU0MAorCQkJCVNQQUlOCisKKzAwLTBCLThDICAgKGhleCkJCUZsZXh0cm9uaWNzCiswMDBCOEMgICAgIChiYXNlIDE2KQkJRmxleHRyb25pY3MKKwkJCQlNaWdkYWwgSGFFbWVrCisJCQkJUmFtYXQgR2F2cmllbAorCQkJCTIzMTA4IEhhdGFhc2lhIDEgCisJCQkJSVNSQUVMCisKKzAwLTBCLThEICAgKGhleCkJCUF2dmlvIE5ldHdvcmtzCiswMDBCOEQgICAgIChiYXNlIDE2KQkJQXZ2aW8gTmV0d29ya3MKKwkJCQkxMSBEb25vdmFuIERyCisJCQkJQmVkZm9yZCBNQSAwMTczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItOEUgICAoaGV4KQkJQXNjZW50IENvcnBvcmF0aW9uCiswMDBCOEUgICAgIChiYXNlIDE2KQkJQXNjZW50IENvcnBvcmF0aW9uCisJCQkJMi0xNi0xOSwgS2F3YXJheWEtbWFjaGksIENodW8tS3UsCisJCQkJT3Nha2EtQ2l0eSBPc2FrYS1QcmVmIDU0Mi0wMDY2CisJCQkJSkFQQU4KKworMDAtMEItOEYgICAoaGV4KQkJQUtJVEEgRUxFQ1RST05JQ1MgU1lTVEVNUyBDTy4sTFRELgorMDAwQjhGICAgICAoYmFzZSAxNikJCUFLSVRBIEVMRUNUUk9OSUNTIFNZU1RFTVMgQ08uLExURC4KKwkJCQk4NSxBWkEgVVNISVJPTk8sQUlLQVdBLFlVV0EtTUFDSEkKKwkJCQlLQVdBQkUtR1VOIEFLSVRBLUtFTiAwMTAtMTIzMQorCQkJCUpBUEFOCisKKzAwLTBCLTkwICAgKGhleCkJCUFkdmEgT3B0aWNhbCBOZXR3b3JraW5nIEluYy4KKzAwMEI5MCAgICAgKGJhc2UgMTYpCQlBZHZhIE9wdGljYWwgTmV0d29ya2luZyBJbmMuCisJCQkJQ2xpZnRvbiBUZWNobm9sb2d5IENlbnRyZQorCQkJCUNsaWZ0b24gTW9vcgorCQkJCVlvcmsgWU8zMCA0R1UKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQi05MSAgIChoZXgpCQlBZ2xhaWEgR2VzZWxsc2NoYWZ0IGbDvHIgQmlsZHZlcmFyYmVpdHVuZyB1bmQgS29tbXVuaWthdGlvbiBtCiswMDBCOTEgICAgIChiYXNlIDE2KQkJQWdsYWlhIEdlc2VsbHNjaGFmdCBmw7xyIEJpbGR2ZXJhcmJlaXR1bmcgdW5kIEtvbW11bmlrYXRpb24gbQorCQkJCVRpbml1c3N0ci4gMTItMTUKKwkJCQlCZXJsaW4gIEQtMTMwODkKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLTkyICAgKGhleCkJCUFzY29tIERhbm1hcmsgQS9TCiswMDBCOTIgICAgIChiYXNlIDE2KQkJQXNjb20gRGFubWFyayBBL1MKKwkJCQlGYWJyaWtzcGFya2VuIDQyCisJCQkJR2xvc3RydXAgRGVubWFyayAyNjAwCisJCQkJREVOTUFSSworCiswMC0wQi05MyAgIChoZXgpCQlSaXR0ZXIgRWxla3Ryb25paworMDAwQjkzICAgICAoYmFzZSAxNikJCVJpdHRlciBFbGVrdHJvbmlrCisJCQkJTGV2ZXJrdXNlciBTdHIgNjUKKwkJCQlQLk8uIEJveCAxMTAyNDAKKwkJCQlSZW1zY2hlaWQgTlJXIDQyODk3CisJCQkJR0VSTUFOWQorCiswMC0wQi05NCAgIChoZXgpCQlEaWdpdGFsIE1vbml0b3JpbmcgUHJvZHVjdHMsIEluYy4KKzAwMEI5NCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIE1vbml0b3JpbmcgUHJvZHVjdHMsIEluYy4KKwkJCQkyNTAwIE4uIFBhcnRuZXJzaGlwIEJvdWxldmFyZAorCQkJCVNwcmluZ2ZpZWxkIE1pc3NvdXJpIDY1ODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi05NSAgIChoZXgpCQllQmV0IEdhbWluZyBTeXN0ZW1zIFB0eSBMdGQKKzAwMEI5NSAgICAgKGJhc2UgMTYpCQllQmV0IEdhbWluZyBTeXN0ZW1zIFB0eSBMdGQKKwkJCQlTdWl0ZSBELCAyNTUgUmF3c29uIFN0cmVldAorCQkJCUF1YnVybiBOU1cgMjE0NAorCQkJCUFVU1RSQUxJQQorCiswMC0wQi05NiAgIChoZXgpCQlJbm5vdHJhYyBEaWFnbm9zdGljcyBPeQorMDAwQjk2ICAgICAoYmFzZSAxNikJCUlubm90cmFjIERpYWdub3N0aWNzIE95CisJCQkJS2FsZXZhbnRpZSAyNQorCQkJCVR1cmt1IMOD4oCmYm8gMjA1MjAKKwkJCQlGSU5MQU5ECisKKzAwLTBCLTk3ICAgKGhleCkJCU1hdHN1c2hpdGEgRWxlY3RyaWMgSW5kdXN0cmlhbCBDby4sTHRkLgorMDAwQjk3ICAgICAoYmFzZSAxNikJCU1hdHN1c2hpdGEgRWxlY3RyaWMgSW5kdXN0cmlhbCBDby4sTHRkLgorCQkJCTMtMS0xIFlhZ3Vtby1OYWthLU1hY2hpCisJCQkJTW9yaWd1Y2hpIENpdHkgT3Nha2EgNTcwLTg1MDEKKwkJCQlKQVBBTgorCiswMC0wQi05OCAgIChoZXgpCQlOaWNlVGVjaFZpc2lvbgorMDAwQjk4ICAgICAoYmFzZSAxNikJCU5pY2VUZWNoVmlzaW9uCisJCQkJSW50ZWxab25lIDcwMworCQkJCVlvbmdJbiAgR3VnYWwtcmkgIEtpIEhldW5nIEt5b3VuZ0tpRG8gMzU0LTIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItOTkgICAoaGV4KQkJU2Vuc0FibGUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDBCOTkgICAgIChiYXNlIDE2KQkJU2Vuc0FibGUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTUgQ29uc3RpdHV0aW9uIFdheQorCQkJCVdvYnVybiBNQSAwMTgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItOUEgICAoaGV4KQkJU2hhbmdoYWkgVWxpbmsgVGVsZWNvbSBFcXVpcG1lbnQgQ28uIEx0ZC4KKzAwMEI5QSAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBVbGluayBUZWxlY29tIEVxdWlwbWVudCBDby4gTHRkLgorCQkJCTYgRmxvb3IsIEJ1aWxkaW5nIDMKKwkJCQkyMzAgV2VzdCBKaWFuZ3dhbiBSb2FkCisJCQkJU2hhbmdoYWkgIDIwMDA4MworCQkJCUNISU5BCisKKzAwLTBCLTlCICAgKGhleCkJCVNpcml1cyBTeXN0ZW0gQ28sIEx0ZC4KKzAwMEI5QiAgICAgKGJhc2UgMTYpCQlTaXJpdXMgU3lzdGVtIENvLCBMdGQuCisJCQkJMy0yNyBGdW5hZG8tY2hvCisJCQkJQXNoaXlhIEh5b2dvIDY1OS0wMDkzCisJCQkJSkFQQU4KKworMDAtMEItOUMgICAoaGV4KQkJVHJpQmVhbSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEI5QyAgICAgKGJhc2UgMTYpCQlUcmlCZWFtIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTExNiBXLiBFYXN0bWFuIFN0Liwgc3VpdGUgMjA4CisJCQkJQXJsaW5ndG9uIEhlaWdodHMgSUwgNjAwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLTlEICAgKGhleCkJCVR3aW5NT1MgVGVjaG5vbG9naWVzIEluYy4KKzAwMEI5RCAgICAgKGJhc2UgMTYpCQlUd2luTU9TIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMzAzIE5vLjMsIFR6dSBDaGlhbmcgUmQuLCBIdSBLb3UgWGlhbmcsCisJCQkJSHNpbiBDaHUgIDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItOUUgICAoaGV4KQkJWWFzaW5nIFRlY2hub2xvZ3kgQ29ycC4KKzAwMEI5RSAgICAgKGJhc2UgMTYpCQlZYXNpbmcgVGVjaG5vbG9neSBDb3JwLgorCQkJCU5vLiA1MCwgVGEgSHN1ZWggUm9hZCwgSHNpbkNodSwgVGFpd2FuCisJCQkJSHNpbkNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi05RiAgIChoZXgpCQlOZXVlIEVMU0EgR21iSAorMDAwQjlGICAgICAoYmFzZSAxNikJCU5ldWUgRUxTQSBHbWJICisJCQkJU29ubmVud2VnIDExCisJCQkJQWFjaGVuICA1MjA3MAorCQkJCUdFUk1BTlkKKworMDAtMEItQTAgICAoaGV4KQkJVCZMIEluZm9ybWF0aW9uIEluYy4KKzAwMEJBMCAgICAgKGJhc2UgMTYpCQlUJkwgSW5mb3JtYXRpb24gSW5jLgorCQkJCTg5OC00NCBIb2t5ZS1Eb25nLCBEb25nYW4tR3UKKwkJCQlBbnlhbmcgS3l1bmdraS1EbyA0MzEtODM2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLUExICAgKGhleCkJCVNZU0NPTSBMdGQuCiswMDBCQTEgICAgIChiYXNlIDE2KQkJU1lTQ09NIEx0ZC4KKwkJCQk0LTEwIEhBS09EQSwgS1VNQUdBWUEtU0hJCisJCQkJU0FJVEFNQS1LRU4gMzYwLTg1MTUKKwkJCQlKQVBBTgorCiswMC0wQi1BMiAgIChoZXgpCQlTdW1pdG9tbyBFbGVjdHJpYyBOZXR3b3JrcywgSW5jCiswMDBCQTIgICAgIChiYXNlIDE2KQkJU3VtaXRvbW8gRWxlY3RyaWMgTmV0d29ya3MsIEluYworCQkJCTEtMS0zLCBTaGltYXlhLCBLb25vaGFuYS1rdQorCQkJCU9zYWthICA1NTQtMDAyNAorCQkJCUpBUEFOCisKKzAwLTBCLUEzICAgKGhleCkJCVNpZW1lbnMgQUcsIEkmUworMDAwQkEzICAgICAoYmFzZSAxNikJCVNpZW1lbnMgQUcsIEkmUworCQkJCVdlcm5lci12b24tU2llbWVucy1TdHJhw4PFuGUgNjUKKwkJCQlFcmxhbmdlbiBCYXZhcmlhIDkxMDUyCisJCQkJR0VSTUFOWQorCiswMC0wQi1BNCAgIChoZXgpCQlTaGlyb24gU2F0ZWxsaXRlIENvbW11bmljYXRpb25zIEx0ZC4gKDE5OTYpCiswMDBCQTQgICAgIChiYXNlIDE2KQkJU2hpcm9uIFNhdGVsbGl0ZSBDb21tdW5pY2F0aW9ucyBMdGQuICgxOTk2KQorCQkJCTIzIEhhc2l2aW0gU3QuCisJCQkJUGV0YWNoIFRpa3ZhICA0OTE3MAorCQkJCUlTUkFFTAorCiswMC0wQi1BNSAgIChoZXgpCQlRdWFzYXIgQ2lwdGEgTWFuZGlyaSwgUFQKKzAwMEJBNSAgICAgKGJhc2UgMTYpCQlRdWFzYXIgQ2lwdGEgTWFuZGlyaSwgUFQKKwkJCQlKbC4gUGFsYXNhcmkgOUEKKwkJCQlCYW5kdW5nIFdlc3QgSmF2YSA0MDI2MgorCQkJCUlORE9ORVNJQQorCiswMC0wQi1BNiAgIChoZXgpCQlNaXlha2F3YSBFbGVjdHJpYyBXb3JrcyBMdGQuCiswMDBCQTYgICAgIChiYXNlIDE2KQkJTWl5YWthd2EgRWxlY3RyaWMgV29ya3MgTHRkLgorCQkJCTItMS02LAorCQkJCUtvaGhva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjItMDAwMQorCQkJCUpBUEFOCisKKzAwLTBCLUE3ICAgKGhleCkJCU1hcmFudGkgTmV0d29ya3MKKzAwMEJBNyAgICAgKGJhc2UgMTYpCQlNYXJhbnRpIE5ldHdvcmtzCisJCQkJMzA2MS1CIFphbmtlciBSb2FkCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUE4ICAgKGhleCkJCUhBTkJBQ0sgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCiswMDBCQTggICAgIChiYXNlIDE2KQkJSEFOQkFDSyBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQkzMDYtNywgR2FsbWEtZG9uZywgU2VvLWd1CisJCQkJRGFlamVvbiAgMzAyLTE3MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi1BOSAgIChoZXgpCQlDbG91ZFNoaWVsZCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEJBOSAgICAgKGJhc2UgMTYpCQlDbG91ZFNoaWVsZCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyMTIgR2lsYnJhbHRhciBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQUEgICAoaGV4KQkJQWlwaG9uZSBjby4sTHRkCiswMDBCQUEgICAgIChiYXNlIDE2KQkJQWlwaG9uZSBjby4sTHRkCisJCQkJMi0xOCBKaW5uby1DaG8KKwkJCQlBdHN1dGEta3UKKwkJCQlOYWdveWEgQWljaGkta2VuIDQ1Ni04NjY2CisJCQkJSkFQQU4KKworMDAtMEItQUIgICAoaGV4KQkJQWR2YW50ZWNoIFRlY2hub2xvZ3kgKENISU5BKSBDby4sIEx0ZC4KKzAwMEJBQiAgICAgKGJhc2UgMTYpCQlBZHZhbnRlY2ggVGVjaG5vbG9neSAoQ0hJTkEpIENvLiwgTHRkLgorCQkJCU5vLjY2NiwgSGFuLVB1IFJkLiBZdS1TaGFuCisJCQkJS3VuLVNoYW4gSmlhbmcgU3UgMjE1MzE2CisJCQkJQ0hJTkEKKworMDAtMEItQUMgICAoaGV4KQkJM0NvbSBMdGQKKzAwMEJBQyAgICAgKGJhc2UgMTYpCQkzQ29tIEx0ZAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIsIFBlb3BsZWJ1aWxkaW5nIEVzdGF0ZQorCQkJCU1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cy4gSFAyIDROVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBCLUFEICAgKGhleCkJCVBDLVBvUyBJbmMuCiswMDBCQUQgICAgIChiYXNlIDE2KQkJUEMtUG9TIEluYy4KKwkJCQkzMDkgQ29tbWlzc2lvbmVycyBSb2FkIFdlc3QKKwkJCQlMb25kb24gT250YXJpbyBONkogMVk0CisJCQkJQ0FOQURBCisKKzAwLTBCLUFFICAgKGhleCkJCVZpdGFscyBTeXN0ZW0gSW5jLgorMDAwQkFFICAgICAoYmFzZSAxNikJCVZpdGFscyBTeXN0ZW0gSW5jLgorCQkJCUpvb2hldW5nIEIvRCA0RkwuIDEwMDUtMSwgWW91bmd0b25nLURvbmcKKwkJCQlTdXdvbiBDaXR5IEt5b25nZ2ktRG8gNDQyLTgxMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi1BRiAgIChoZXgpCQlXT09KVSBDT01NVU5JQ0FUSU9OUyBDbywuTHRkCiswMDBCQUYgICAgIChiYXNlIDE2KQkJV09PSlUgQ09NTVVOSUNBVElPTlMgQ28sLkx0ZAorCQkJCUItNzEzLCBTSyBUd2luIFRlY2ggVG93ZXIsIDM0NS05LCBHYS1TYW4KKwkJCQlTZW91bCAgMTUzLTgwMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi1CMCAgIChoZXgpCQlTeXNuZXQgVGVsZW1hdGljYSBzcmwKKzAwMEJCMCAgICAgKGJhc2UgMTYpCQlTeXNuZXQgVGVsZW1hdGljYSBzcmwKKwkJCQlWaWFsZSBCZXJiZXJhLCA0OQorCQkJCU1pbGFuICAyMDE2MgorCQkJCUlUQUxZCisKKzAwLTBCLUIxICAgKGhleCkJCVN1cGVyIFN0YXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMEJCMSAgICAgKGJhc2UgMTYpCQlTdXBlciBTdGFyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uIDcgTGFuZSAzMDYsU2VjLiAyLFRhaS1MaW4gUmQuCisJCQkJVGFpLVNoYW4gU2hpYW5nCisJCQkJVGFpcGVpIEhzaWVuICAyNDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLUIyICAgKGhleCkJCVNNQUxMQklHIFRFQ0hOT0xPR1kKKzAwMEJCMiAgICAgKGJhc2UgMTYpCQlTTUFMTEJJRyBURUNITk9MT0dZCisJCQkJM0YgRG9uZ3N1bmcgQmxkZy4gNzIwLTkgWW9rc2FtZG9uZworCQkJCUdhbmduYW1ndSBTZW91bCAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLUIzICAgKGhleCkJCVJpVCB0ZWNobm9sb2dpZXMgTHRkLgorMDAwQkIzICAgICAoYmFzZSAxNikJCVJpVCB0ZWNobm9sb2dpZXMgTHRkLgorCQkJCTI0IFJhb3VsIFdhbGVuYmVyZyAgU3QuCisJCQkJVGVsIEF2aXYgIDY5NzE5CisJCQkJSVNSQUVMCisKKzAwLTBCLUI0ICAgKGhleCkJCVJEQyBTZW1pY29uZHVjdG9yIEluYy4sCiswMDBCQjQgICAgIChiYXNlIDE2KQkJUkRDIFNlbWljb25kdWN0b3IgSW5jLiwKKwkJCQk2Ri0xICwgTm8uMi0xLCBMaWhzaW4gUmQsIFNjaWVuY2UtQmFzZWQKKwkJCQlIc2luIENodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi1CNSAgIChoZXgpCQluU3RvciBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEJCNSAgICAgKGJhc2UgMTYpCQluU3RvciBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMDAgVGVjaG5vbG9neSBQYXJrCisJCQkJU3VpdGUgMTc1CisJCQkJTGFrZSBNYXJ5IEZMIDMyNzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1CNiAgIChoZXgpCQlNZXRhbGxpZ2VuY2UgVGVjaG5vbG9neSBDb3JwLgorMDAwQkI2ICAgICAoYmFzZSAxNikJCU1ldGFsbGlnZW5jZSBUZWNobm9sb2d5IENvcnAuCisJCQkJOSwgUGFyayBBdmVudWUgSUksIFNjaWVuY2UtQmFzZWQgSW5kdXN0cgorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItQjcgICAoaGV4KQkJTWljcm8gU3lzdGVtcyBDby4sTHRkLgorMDAwQkI3ICAgICAoYmFzZSAxNikJCU1pY3JvIFN5c3RlbXMgQ28uLEx0ZC4KKwkJCQkyLTE1LTM0IE5pc2hpa3VibworCQkJCU11c2FzaGluby1DaXR5IFRva3lvIDE4MC0wMDEzCisJCQkJSkFQQU4KKworMDAtMEItQjggICAoaGV4KQkJS2lob2t1IEVsZWN0cm9uaWMgQ28uCiswMDBCQjggICAgIChiYXNlIDE2KQkJS2lob2t1IEVsZWN0cm9uaWMgQ28uCisJCQkJTWFydWthdHViaXJ1IDNGIDQtOS02CisJCQkJTmlob25iYXNoaSBOYW5pd2Eta3UKKwkJCQlPc2FrYXNoaSBPc2FrYS1odSA1NTYtMDAwNQorCQkJCUpBUEFOCisKKzAwLTBCLUI5ICAgKGhleCkJCUltc3lzIEFCCiswMDBCQjkgICAgIChiYXNlIDE2KQkJSW1zeXMgQUIKKwkJCQlKb2hhbm5lc2x1bmRzdmFnZW4gMworCQkJCVVwcGxhbmRzIFZhc2J5ICBTRS0xOTQ2MQorCQkJCVNXRURFTgorCiswMC0wQi1CQSAgIChoZXgpCQlIYXJtb25pYyBCcm9hZGJhbmQgQWNjZXNzIE5ldHdvcmtzCiswMDBCQkEgICAgIChiYXNlIDE2KQkJSGFybW9uaWMgQnJvYWRiYW5kIEFjY2VzcyBOZXR3b3JrcworCQkJCTU0OSBCYWx0aWMgV2F5CisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1CQiAgIChoZXgpCQlFdGluIFN5c3RlbXMgQ28uLCBMdGQKKzAwMEJCQiAgICAgKGJhc2UgMTYpCQlFdGluIFN5c3RlbXMgQ28uLCBMdGQKKwkJCQkxMkYsIElUIFZlbnR1cmUgVG93ZXIsCisJCQkJNzggR2FyYWtCb24tRG9uZywgU29uZ3BhLUt1CisJCQkJU2VvdWwgIDEzOC04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEItQkMgICAoaGV4KQkJRW4gR2FyZGUgU3lzdGVtcywgSW5jLgorMDAwQkJDICAgICAoYmFzZSAxNikJCUVuIEdhcmRlIFN5c3RlbXMsIEluYy4KKwkJCQkyMTAxIFdoaXRlIENsb3VkIFN0LiBORQorCQkJCUFsYnVxdWVycXVlIE5NIDg3MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1CRCAgIChoZXgpCQlDb25uZXhpb256IExpbWl0ZWQKKzAwMEJCRCAgICAgKGJhc2UgMTYpCQlDb25uZXhpb256IExpbWl0ZWQKKwkJCQkxIFNob3cgUGxhY2UKKwkJCQlDaHJpc3RjaHVyY2ggQ2FudGVyYnVyeSA4MDA0CisJCQkJTkVXIFpFQUxBTkQKKworMDAtMEItQkUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQkJFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQkYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwQkJGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItQzAgICAoaGV4KQkJQ2hpbmEgSVdOQ29tbSBDby4sIEx0ZC4KKzAwMEJDMCAgICAgKGJhc2UgMTYpCQlDaGluYSBJV05Db21tIENvLiwgTHRkLgorCQkJCTRGLkMgWGlldG9uZyBCdWlsZGluZyxOby4xMiBHYW94aW4gMm5kIHIKKwkJCQlIaS10ZWNoIGluZHVzdHJpZXMgZGV2ZWxvcG1lbnQgem9uZQorCQkJCVhpJ2FuIHNoYWFueGkgNzEwMDc1CisJCQkJQ0hJTkEKKworMDAtMEItQzEgICAoaGV4KQkJQmF5IE1pY3Jvc3lzdGVtcywgSW5jLgorMDAwQkMxICAgICAoYmFzZSAxNikJCUJheSBNaWNyb3N5c3RlbXMsIEluYy4KKwkJCQkyNzAwIEF1Z3VzdGluZSBEcml2ZQorCQkJCVN1aXRlIDI5OAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1DMiAgIChoZXgpCQlDb3JpbmV4IENvbW11bmljYXRpb24gQ29ycC4KKzAwMEJDMiAgICAgKGJhc2UgMTYpCQlDb3JpbmV4IENvbW11bmljYXRpb24gQ29ycC4KKwkJCQkjMzA4IDExNjggSGFtaWx0b24gU3RyZWV0CisJCQkJVmFuY291dmVyIEIuQy4gVjZCIDJTMgorCQkJCUNBTkFEQQorCiswMC0wQi1DMyAgIChoZXgpCQlNdWx0aXBsZXgsIEluYy4KKzAwMEJDMyAgICAgKGJhc2UgMTYpCQlNdWx0aXBsZXgsIEluYy4KKwkJCQk1MDAwIEhhZGxleSBSZC4KKwkJCQlTLiBQbGFpbmZpZWxkIE5KIDA3MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1DNCAgIChoZXgpCQlCSU9UUk9OSUsgR21iSCAmIENvCiswMDBCQzQgICAgIChiYXNlIDE2KQkJQklPVFJPTklLIEdtYkggJiBDbworCQkJCVdvZXJtYW5ua2VocmUgMQorCQkJCUJlcmxpbiAgMTIzNTkKKwkJCQlHRVJNQU5ZCisKKzAwLTBCLUM1ICAgKGhleCkJCVNNQyBOZXR3b3JrcywgSW5jLgorMDAwQkM1ICAgICAoYmFzZSAxNikJCVNNQyBOZXR3b3JrcywgSW5jLgorCQkJCTM4IFRlc2xhCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1DNiAgIChoZXgpCQlJU0FDLCBJbmMuCiswMDBCQzYgICAgIChiYXNlIDE2KQkJSVNBQywgSW5jLgorCQkJCVBPIEJveCA3NjgyCisJCQkJQXVidXJuIENBIDk1NjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1DNyAgIChoZXgpCQlJQ0VUIFMucC5BLgorMDAwQkM3ICAgICAoYmFzZSAxNikJCUlDRVQgUy5wLkEuCisJCQkJVmlhIFF1YXJ0byBOZWdyb25pLCA2MworCQkJCUNlY2NoaW5hIGRpIEFyaWNjaWEgUm9tYSAwMDA0MAorCQkJCUlUQUxZCisKKzAwLTBCLUM4ICAgKGhleCkJCUFpckZsb3cgTmV0d29ya3MKKzAwMEJDOCAgICAgKGJhc2UgMTYpCQlBaXJGbG93IE5ldHdvcmtzCisJCQkJNDQ0IENhc3RybyBTdAorCQkJCVN1aXRlIDMyMAorCQkJCU1vdW50YWluIFZpZXcgQ2EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUM5ICAgKGhleCkJCUVsZWN0cm9saW5lIEVxdWlwbWVudAorMDAwQkM5ICAgICAoYmFzZSAxNikJCUVsZWN0cm9saW5lIEVxdWlwbWVudAorCQkJCTgyNjUgYm91bC4gU3QtTWljaGVsCisJCQkJTW9udHJlYWwgUXVlYmVjIEgxWiAzRTQKKwkJCQlDQU5BREEKKworMDAtMEItQ0EgICAoaGV4KQkJREFUQVZBTiBJbnRlcm5hdGlvbmFsIENvcnBvcmF0aW9uCiswMDBCQ0EgICAgIChiYXNlIDE2KQkJREFUQVZBTiBJbnRlcm5hdGlvbmFsIENvcnBvcmF0aW9uCisJCQkJNEZMLCMxMjAtMTIsQ2h1bmcgU2hhbiBSZCwgU2VjLjMKKwkJCQlDaHVuZyBIbyBDaXR5LCBUYWlwZWkgSHNpZW4gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItQ0IgICAoaGV4KQkJRmFnb3IgQXV0b21hdGlvbiAsIFMuIENvb3AKKzAwMEJDQiAgICAgKGJhc2UgMTYpCQlGYWdvciBBdXRvbWF0aW9uICwgUy4gQ29vcAorCQkJCVNhbiBBbmRyZXMgcy9uCisJCQkJMjA1MDAgTW9uZHJhZ29uCisJCQkJR3VpcHV6Y29hIDIwNTAwCisJCQkJU1BBSU4KKworMDAtMEItQ0MgICAoaGV4KQkJSlVTQU4sIFMuQS4KKzAwMEJDQyAgICAgKGJhc2UgMTYpCQlKVVNBTiwgUy5BLgorCQkJCVZpdmVybywgNQorCQkJCU1BRFJJRCAgMjgwNDAKKwkJCQlTUEFJTgorCiswMC0wQi1DRCAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAwQkNEICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkgU291dGgKKwkJCQlNUzA0MDgwMQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUNFICAgKGhleCkJCUZyZWUybW92ZSBBQgorMDAwQkNFICAgICAoYmFzZSAxNikJCUZyZWUybW92ZSBBQgorCQkJCVNwZXJsaW5nc2dhdGFuIDcKKwkJCQlIYWxtc3RhZCBIYWxsYW5kIDMwMjQ4CisJCQkJU1dFREVOCisKKzAwLTBCLUNGICAgKGhleCkJCUFHRkEgTkRUIElOQy4KKzAwMEJDRiAgICAgKGJhc2UgMTYpCQlBR0ZBIE5EVCBJTkMuCisJCQkJNTAgSW5kdXN0cmlhbCBQYXJrIFJvYWQKKwkJCQlMZXdpc3Rvd24gUEEgMTcwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUQwICAgKGhleCkJCVhpTWV0YSBUZWNobm9sb2d5IEFtZXJpY2FzIEluYy4KKzAwMEJEMCAgICAgKGJhc2UgMTYpCQlYaU1ldGEgVGVjaG5vbG9neSBBbWVyaWNhcyBJbmMuCisJCQkJNTQgUmF5IFN0cmVldAorCQkJCU5ldyBCcnVuc3dpY2sgTkogMDg5MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUQxICAgKGhleCkJCUFlcm9uaXgsIEluYy4KKzAwMEJEMSAgICAgKGJhc2UgMTYpCQlBZXJvbml4LCBJbmMuCisJCQkJMTc3NSBXLiBIaWJpc2N1cyBCbHZkLAorCQkJCVN1aXRlICMzMDQKKwkJCQlNZWxib3VybmUgRkwgMzI5MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUQyICAgKGhleCkJCVJlbW9wcm8gVGVjaG5vbG9neSBJbmMuCiswMDBCRDIgICAgIChiYXNlIDE2KQkJUmVtb3BybyBUZWNobm9sb2d5IEluYy4KKwkJCQlOby4gNDQzLCBIdWFubmFuIFJELiwKKwkJCQlQaW5namVuIENpdHkgVGFveXVhbiAzMjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLUQzICAgKGhleCkJCWNkM28KKzAwMEJEMyAgICAgKGJhc2UgMTYpCQljZDNvCisJCQkJNDAyIFcgQnJvYWR3YXkKKwkJCQlTYW4gRGVpZ28gQ0EgOTIxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUQ0ICAgKGhleCkJCUJlaWppbmcgV2lzZSBUZWNobm9sb2d5ICYgU2NpZW5jZSBEZXZlbG9wbWVudCBDby5MdGQKKzAwMEJENCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFdpc2UgVGVjaG5vbG9neSAmIFNjaWVuY2UgRGV2ZWxvcG1lbnQgQ28uTHRkCisJCQkJM3JkIEZsb29yIENhaWhvbmcgQnVpbGRpbmcsIE5vLjIsMXN0IFdlcworCQkJCU1hZGlhbiwgSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4OAorCQkJCUNISU5BCisKKzAwLTBCLUQ1ICAgKGhleCkJCU52ZXJnZW5jZSwgSW5jLgorMDAwQkQ1ICAgICAoYmFzZSAxNikJCU52ZXJnZW5jZSwgSW5jLgorCQkJCUplaWwgQmxkZy4gNHRoLCBTYW1zdW5nLWRvbmcgMTY4LTI2LCBLYW4KKwkJCQlTZW91bCAgMTM1LTA5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi1ENiAgIChoZXgpCQlQYXh0b24gQWNjZXNzIEx0ZAorMDAwQkQ2ICAgICAoYmFzZSAxNikJCVBheHRvbiBBY2Nlc3MgTHRkCisJCQkJUGF4dG9uIEhvdXNlCisJCQkJSG9tZSBGYXJtIFJvYWQKKwkJCQlCcmlnaHRvbiBFYXN0IFN1c3NleCBCTjEgOUhVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEItRDcgICAoaGV4KQkJRE9STUEgVGltZSArIEFjY2VzcyBHbWJICiswMDBCRDcgICAgIChiYXNlIDE2KQkJRE9STUEgVGltZSArIEFjY2VzcyBHbWJICisJCQkJTWFpbnplciBTdHJhw4PFuGUgMzYtNTIKKwkJCQlCb25uIE5vcmRyaGVpbndlc3RmYWxlbiA1MzE3OQorCQkJCUdFUk1BTlkKKworMDAtMEItRDggICAoaGV4KQkJSW5kdXN0cmlhbCBTY2llbnRpZmljIENvcnAuCiswMDBCRDggICAgIChiYXNlIDE2KQkJSW5kdXN0cmlhbCBTY2llbnRpZmljIENvcnAuCisJCQkJMTAwMSBPYWtkYWxlIFJvYWQKKwkJCQlPYWtkYWxlIFBBIDE1MDcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1EOSAgIChoZXgpCQlHZW5lcmFsIEh5ZHJvZ2VuCiswMDBCRDkgICAgIChiYXNlIDE2KQkJR2VuZXJhbCBIeWRyb2dlbgorCQkJCTEzMTIwIFZhbmllciBQbGFjZQorCQkJCVJpY2htb25kIEJyaXRpc2ggQ29sdW1iaWEgVjZWIDJKMgorCQkJCUNBTkFEQQorCiswMC0wQi1EQSAgIChoZXgpCQlFeWVDcm9zcyBDby4sSW5jLgorMDAwQkRBICAgICAoYmFzZSAxNikJCUV5ZUNyb3NzIENvLixJbmMuCisJCQkJM0YgIElpb2thLUJ1aWxkaW5nCisJCQkJVG9reW8gVWVubyBUYWl0b2gta3UgMy00LTEgMTEwLTAwMDUKKwkJCQlKQVBBTgorCiswMC0wQi1EQiAgIChoZXgpCQlEZWxsIEVTRyBQQ0JBIFRlc3QKKzAwMEJEQiAgICAgKGJhc2UgMTYpCQlEZWxsIEVTRyBQQ0JBIFRlc3QKKwkJCQlPbmUgRGVsbCBXYXkKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1EQyAgIChoZXgpCQlBS0NQCiswMDBCREMgICAgIChiYXNlIDE2KQkJQUtDUAorCQkJCTY3LzI4NSAgTXVhbmdha2UgVmlsbGFnZSAjOAorCQkJCU1vbyAzIFZpcGF3YWRlZSBSb2FkLCBUYW1ib2wgTHVnaG9vaworCQkJCUFtcGh1ciBNdWFuZyBQYXRvbXRoYW5lZSAxMjAwMAorCQkJCVRIQUlMQU5ECisKKzAwLTBCLUREICAgKGhleCkJCVRPSE9LVSBSSUNPSCBDby4sIExURC4KKzAwMEJERCAgICAgKGJhc2UgMTYpCQlUT0hPS1UgUklDT0ggQ28uLCBMVEQuCisJCQkJMy0xIFNoaW5tZWlkbworCQkJCVNoaWJhdGEgTWl5YWdpIHByZWYuIDk4OS0xNjk1CisJCQkJSkFQQU4KKworMDAtMEItREUgICAoaGV4KQkJVEVMRElYIEdtYkgKKzAwMEJERSAgICAgKGJhc2UgMTYpCQlURUxESVggR21iSAorCQkJCUdyZW56aG9lZmVyIFdlZyAzNgorCQkJCUhlaWRlbGJlcmcgIDY5MTIzCisJCQkJR0VSTUFOWQorCiswMC0wQi1ERiAgIChoZXgpCQlTaGVuemhlbiBSb3V0ZXJEIE5ldHdvcmtzIExpbWl0ZWQKKzAwMEJERiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBSb3V0ZXJEIE5ldHdvcmtzIExpbWl0ZWQKKwkJCQk4L0YsIEJ1aWxkaW5nIEEsIFRzaW5naHVhIEhpLVRlY2ggUGFyaworCQkJCU5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiAgCisJCQkJQ0hJTkEKKworMDAtMEItRTAgICAoaGV4KQkJU2VyY29OZXQgTHRkLgorMDAwQkUwICAgICAoYmFzZSAxNikJCVNlcmNvTmV0IEx0ZC4KKwkJCQkxNiBIYSdoYXJvc2hldCBzdC4KKwkJCQlQLk8uQi4gMjAwOQorCQkJCVJhJ2FuYW5hICA0MzY1NworCQkJCUlTUkFFTAorCiswMC0wQi1FMSAgIChoZXgpCQlOb2tpYSBORVQgUHJvZHVjdCBPcGVyYXRpb25zCiswMDBCRTEgICAgIChiYXNlIDE2KQkJTm9raWEgTkVUIFByb2R1Y3QgT3BlcmF0aW9ucworCQkJCTMxMyBGYWlyY2hpbGQgRHJpdmUKKwkJCQlNb3VudGFpbiBWaWV3IENhbGlmb3JuaWEgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUUyICAgKGhleCkJCUx1bWVuZXJhIENvcnBvcmF0aW9uCiswMDBCRTIgICAgIChiYXNlIDE2KQkJTHVtZW5lcmEgQ29ycG9yYXRpb24KKwkJCQkyNTIwQiBTdC4gTGF1cmVudCBCbHZkLgorCQkJCU90dGF3YSBPbnRhcmlvIEsxQiA0UjgKKwkJCQlDQU5BREEKKworMDAtMEItRTMgICAoaGV4KQkJS2V5IFN0cmVhbSBDby4sIEx0ZC4KKzAwMEJFMyAgICAgKGJhc2UgMTYpCQlLZXkgU3RyZWFtIENvLiwgTHRkLgorCQkJCU5vLiAyIE5hZ2Fva2EgQmxkZy4gNEYsICAyLTgtNSBIYXRjaG9ib3IKKwkJCQlDaHVvLWt1IFRva3lvIDEwNC0wMDMyCisJCQkJSkFQQU4KKworMDAtMEItRTQgICAoaGV4KQkJSG9zaWRlbiBDb3Jwb3JhdGlvbgorMDAwQkU0ICAgICAoYmFzZSAxNikJCUhvc2lkZW4gQ29ycG9yYXRpb24KKwkJCQk0LTMzCisJCQkJS2l0YWt5dWhvamkgMS1jaG9tZQorCQkJCVlhby1jaXR5IE9zYWthIDU4MS0wMDcxCisJCQkJSkFQQU4KKworMDAtMEItRTUgICAoaGV4KQkJSElNUyBLb3JlYSBDby4sIEx0ZC4KKzAwMEJFNSAgICAgKGJhc2UgMTYpCQlISU1TIEtvcmVhIENvLiwgTHRkLgorCQkJCTUxMDUsIEhpZ2ggVGVjaCBWZW50dXJlIEhhbGwsCisJCQkJNTMtMywgRW9ldW4tZG9uZywgWXVzZW9uZy1rdSwKKwkJCQlEYWVqZW9uIERhZWplb24gMzA1LTgwNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi1FNiAgIChoZXgpCQlEYXRlbCBFbGVjdHJvbmljcworMDAwQkU2ICAgICAoYmFzZSAxNikJCURhdGVsIEVsZWN0cm9uaWNzCisJCQkJU3RhZmZvcmQgUm9hZAorCQkJCVN0b25lIFN0YWZmb3Jkc2hpcmUgU1QxNSAwREcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQi1FNyAgIChoZXgpCQlDT01GTFVYIFRFQ0hOT0xPR1kgSU5DLgorMDAwQkU3ICAgICAoYmFzZSAxNikJCUNPTUZMVVggVEVDSE5PTE9HWSBJTkMuCisJCQkJIFJvb20gMTMxLEJsZGcuIDUzLDE5NS01OCxTZWMuNCwKKwkJCQlDaHVuZyBIc2luZyBSZC4sQ2h1dHVuZywKKwkJCQlIc2luY2h1ICAzMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBCLUU4ICAgKGhleCkJCUFPSVAKKzAwMEJFOCAgICAgKGJhc2UgMTYpCQlBT0lQCisJCQkJNiBydWUgTWFyeXNlIEJBU1RJRQorCQkJCVpJIGRlIFN0IEd1ZW5hdWx0CisJCQkJQ09VUkNPVVJPTk5FUyBJZGYgOTEwODAKKwkJCQlGUkFOQ0UKKworMDAtMEItRTkgICAoaGV4KQkJQWN0ZWwgQ29ycG9yYXRpb24KKzAwMEJFOSAgICAgKGJhc2UgMTYpCQlBY3RlbCBDb3Jwb3JhdGlvbgorCQkJCTIwMCBWYWxsZXkgUm9hZAorCQkJCVN1aXRlIDMwMAorCQkJCU10LiBBcmxpbmd0b24gTkogMDc4NTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUVBICAgKGhleCkJCVp1bHR5cyBUZWNobm9sb2dpZXMKKzAwMEJFQSAgICAgKGJhc2UgMTYpCQladWx0eXMgVGVjaG5vbG9naWVzCisJCQkJNzcxIFZhcXVlcm9zIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRUIgICAoaGV4KQkJU3lzdGVncmEgQUcKKzAwMEJFQiAgICAgKGJhc2UgMTYpCQlTeXN0ZWdyYSBBRworCQkJCUJ1cmd1bmRlcnN0cmFzc2UgMTUKKwkJCQlCZWxsYWNoIFNPIDQ1MTIKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wQi1FQyAgIChoZXgpCQlOSVBQT04gRUxFQ1RSSUMgSU5TVFJVTUVOVCwgSU5DLgorMDAwQkVDICAgICAoYmFzZSAxNikJCU5JUFBPTiBFTEVDVFJJQyBJTlNUUlVNRU5ULCBJTkMuCisJCQkJMy01Ni0yMSBIaXJhZG8KKwkJCQlUb3RzdWthLWt1IFlva29oYW1hLXNoaSAyNDQtMDgwMgorCQkJCUpBUEFOCisKKzAwLTBCLUVEICAgKGhleCkJCUVMTSBJbmMuCiswMDBCRUQgICAgIChiYXNlIDE2KQkJRUxNIEluYy4KKwkJCQkxNTI0OCBLYXNlZGF0YWtlZGEKKwkJCQlNaW5hbWlzYXRzdW1hIEthZ29zaGltYSA4OTctMDAwMgorCQkJCUpBUEFOCisKKzAwLTBCLUVFICAgKGhleCkJCWluYy5qZXQsIEluY29ycG9yYXRlZAorMDAwQkVFICAgICAoYmFzZSAxNikJCWluYy5qZXQsIEluY29ycG9yYXRlZAorCQkJCU9uZSBXaW5uZW5kZW4gUm9hZAorCQkJCU5vcndpY2ggQ1QgMDYzNjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUVGICAgKGhleCkJCUNvZGUgQ29ycG9yYXRpb24KKzAwMEJFRiAgICAgKGJhc2UgMTYpCQlDb2RlIENvcnBvcmF0aW9uCisJCQkJMTE4MTQgUy4gRWxlY3Rpb24gUmQuLCBTdGUgMjAwCisJCQkJRHJhcGVyIFV0YWggODQwMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUYwICAgKGhleCkJCU1vVEVYIFByb2R1Y3RzIENvLiwgTHRkLgorMDAwQkYwICAgICAoYmFzZSAxNikJCU1vVEVYIFByb2R1Y3RzIENvLiwgTHRkLgorCQkJCUMuUC5PLkJveCA2OTEyCisJCQkJWWUgS3dhbi1kb25nIDE5LTEKKwkJCQlDaG9uZy1ndSBTZW91bCA4MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQi1GMSAgIChoZXgpCQlMQVAgTGFzZXIgQXBwbGlrYXRpb25zCiswMDBCRjEgICAgIChiYXNlIDE2KQkJTEFQIExhc2VyIEFwcGxpa2F0aW9ucworCQkJCVplcHBlbGluc3RyYXNzZSAyMworCQkJCUx1ZW5lYnVyZyBOaWVkZXJzYWNoc2VuIDIxMzM3CisJCQkJR0VSTUFOWQorCiswMC0wQi1GMiAgIChoZXgpCQlDaGloLUthbiBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwQkYyICAgICAoYmFzZSAxNikJCUNoaWgtS2FuIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uIDI0LTEsIFBlaSBTaGloIENob3UsIE1pbmcgSG8gVmlsbC4KKwkJCQlTaGFuIFN1biBIc2lhbmcgVGFpbmFuIEhzaWVuIDE4MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItRjMgICAoaGV4KQkJQkFFIFNZU1RFTVMKKzAwMEJGMyAgICAgKGJhc2UgMTYpCQlCQUUgU1lTVEVNUworCQkJCTY1MDAgVHJhY29yIExhbmUKKwkJCQlBdXN0aW4gVGV4YXMgNzg3MjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBCLUY0ICAgKGhleCkJCVBSSVZBVEUKKzAwMEJGNCAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMEItRjUgICAoaGV4KQkJU2hhbmdoYWkgU2libyBUZWxlY29tIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAwQkY1ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFNpYm8gVGVsZWNvbSBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlGbG9vciA2IEJ1aWxkaW5nIDE4LDMwMCBUaWFubGluIFJkLgorCQkJCVNoYW5naGFpICAyMDAyMzMKKwkJCQlDSElOQQorCiswMC0wQi1GNiAgIChoZXgpCQlOaXRnZW4gQ28uLCBMdGQKKzAwMEJGNiAgICAgKGJhc2UgMTYpCQlOaXRnZW4gQ28uLCBMdGQKKwkJCQk0dGggRkwuIDEzMzctMzEgU2VvY2hvLWRvbmcsIFNlb2Noby1rdQorCQkJCVNlb3VsICAxMzctODYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBCLUY3ICAgKGhleCkJCU5JREVLIENPLixMVEQKKzAwMEJGNyAgICAgKGJhc2UgMTYpCQlOSURFSyBDTy4sTFRECisJCQkJMzQtMTQgTWFlaGFtYQorCQkJCUhpcm9pc2hpLWNobworCQkJCUdhbWFnb3JpIEFpY2ggNDQzLTAwMzgKKwkJCQlKQVBBTgorCiswMC0wQi1GOCAgIChoZXgpCQlJbmZpbmVyYQorMDAwQkY4ICAgICAoYmFzZSAxNikJCUluZmluZXJhCisJCQkJMTMyMiBCb3JkZWF1eCBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEItRjkgICAoaGV4KQkJR2Vtc3RvbmUgY29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMEJGOSAgICAgKGJhc2UgMTYpCQlHZW1zdG9uZSBjb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTZGbC4sIE5vLiAxMDIsICBIZW5neWFuZyBSZC4KKwkJCQlUYWlwZWkgIDEwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEItRkEgICAoaGV4KQkJRVhFTVlTIFNSTAorMDAwQkZBICAgICAoYmFzZSAxNikJCUVYRU1ZUyBTUkwKKwkJCQlMT1lPTEEgNjgwCisJCQkJQ0FQSVRBTCBGRURFUkFMIEJTIEFTIEMxNDE0CisJCQkJQVJHRU5USU5BCisKKzAwLTBCLUZCICAgKGhleCkJCUQtTkVUIEludGVybmF0aW9uYWwgQ29ycG9yYXRpb24KKzAwMEJGQiAgICAgKGJhc2UgMTYpCQlELU5FVCBJbnRlcm5hdGlvbmFsIENvcnBvcmF0aW9uCisJCQkJMTUsIFd1LUNodWFuIDV0aCBSb2FkLCBXdS1LdSBJbmR1c3RyaWFsCisJCQkJVGFpcGVpICBIc2llaCAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQi1GQyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBCRkMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1GRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBCRkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQi1GRSAgIChoZXgpCQlDQVNURUwgQnJvYWRiYW5kIExpbWl0ZWQKKzAwMEJGRSAgICAgKGJhc2UgMTYpCQlDQVNURUwgQnJvYWRiYW5kIExpbWl0ZWQKKwkJCQk5L0YuLCBTdWkgWWluZyBJbmR1c3RyaWFsIEJ1aWxkaW5nLiwKKwkJCQlUb2t3YXdhbiBLb3dsb29uIDE1MAorCQkJCUhPTkcgS09ORworCiswMC0wQi1GRiAgIChoZXgpCQlCZXJrZWxleSBDYW1lcmEgRW5naW5lZXJpbmcKKzAwMEJGRiAgICAgKGJhc2UgMTYpCQlCZXJrZWxleSBDYW1lcmEgRW5naW5lZXJpbmcKKwkJCQkxMjcgTmF0aW9uYWwgU3RyZWV0CisJCQkJU2FudGEgQ3J1eiBDQSA5NTA2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMDAgICAoaGV4KQkJQkVCIEluZHVzdHJpZS1FbGVrdHJvbmlrIEFHCiswMDBDMDAgICAgIChiYXNlIDE2KQkJQkVCIEluZHVzdHJpZS1FbGVrdHJvbmlrIEFHCisJCQkJUHJvZ3Jlc3Nhc3RyYXNzZSAzMQorCQkJCU9iZXJidXJnIEJFIDM0MTQKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wQy0wMSAgIChoZXgpCQlBYmF0cm9uIEFHCiswMDBDMDEgICAgIChiYXNlIDE2KQkJQWJhdHJvbiBBRworCQkJCUxldHRlbnN0cmFzc2UgOQorCQkJCVJvdGtyZXV6ICBDSC02MzQzCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEMtMDIgICAoaGV4KQkJQUJCIE95CiswMDBDMDIgICAgIChiYXNlIDE2KQkJQUJCIE95CisJCQkJUC5PLkJveCA4OQorCQkJCVR1cmt1ICBGSU4tMjA1MjEKKwkJCQlGSU5MQU5ECisKKzAwLTBDLTAzICAgKGhleCkJCUhETUkgTGljZW5zaW5nLCBMTEMKKzAwMEMwMyAgICAgKGJhc2UgMTYpCQlIRE1JIExpY2Vuc2luZywgTExDCisJCQkJMTA2MCBFYXN0IEFycXVlcyBBdmUuCisJCQkJU3VpdGUgMTAwCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0wNCAgIChoZXgpCQlUZWNub3ZhCiswMDBDMDQgICAgIChiYXNlIDE2KQkJVGVjbm92YQorCQkJCTE0ODYgU3QuIFBhdWwgQXZlLgorCQkJCUd1cm5lZSBJbGxpbm9pcyA2MDAzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMDUgICAoaGV4KQkJUlBBIFJlc2VyY2ggQ28uLCBMdGQuCiswMDBDMDUgICAgIChiYXNlIDE2KQkJUlBBIFJlc2VyY2ggQ28uLCBMdGQuCisJCQkJNEYsIDkwLTcsIFlhbmdqYWUtRG9uZywgU2VvY2hvLUt1CisJCQkJU2VvdWwsIEtvcmVhCisJCQkJU2VvdWwgIDEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtMDYgICAoaGV4KQkJTml4dnVlIFN5c3RlbXMgIFB0ZSBMdGQKKzAwMEMwNiAgICAgKGJhc2UgMTYpCQlOaXh2dWUgU3lzdGVtcyAgUHRlIEx0ZAorCQkJCTMwIExveWFuZyBXYXksICMwNy0wMgorCQkJCVNpbmdhcG9yZSBTaW5nYXBvcmUgUzUwODc2OQorCQkJCVNJTkdBUE9SRQorCiswMC0wQy0wNyAgIChoZXgpCQlJZnRlc3QgQUcKKzAwMEMwNyAgICAgKGJhc2UgMTYpCQlJZnRlc3QgQUcKKwkJCQlTY2h3aW1tYmFkc3RyYXNzZSA0MworCQkJCVdldHRpbmdlbiBBRyA1NDMwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEMtMDggICAoaGV4KQkJSFVNRVggVGVjaG5vbG9naWVzIENvcnAuCiswMDBDMDggICAgIChiYXNlIDE2KQkJSFVNRVggVGVjaG5vbG9naWVzIENvcnAuCisJCQkJNUYsIE5vLjUsIExhbmUgNDQsIFN6dSBXZWkgUmQuIFRhYW4gVGFpcAorCQkJCVRhaXBlaSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy0wOSAgIChoZXgpCQlIaXRhY2hpIElFIFN5c3RlbXMgQ28uLCBMdGQKKzAwMEMwOSAgICAgKGJhc2UgMTYpCQlIaXRhY2hpIElFIFN5c3RlbXMgQ28uLCBMdGQKKwkJCQlTYWl3YWktY2hvIDEyMC0xLEluYXphd2Etc2hpCisJCQkJQWljaGkgNDkyLTg2MjIsSmFwYW4KKwkJCQlJbmF6YXdhLXNoaSBBaWNoaSA0OTItODYyMgorCQkJCUpBUEFOCisKKzAwLTBDLTBBICAgKGhleCkJCUd1YW5nZG9uZyBQcm92aW5jZSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgUmVzZWFyY2ggSW5zdGl0dXRlCiswMDBDMEEgICAgIChiYXNlIDE2KQkJR3Vhbmdkb25nIFByb3ZpbmNlIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBSZXNlYXJjaCBJbnN0aXR1dGUKKwkJCQlFbGVjdHJvbmljIFRlY2hub2xvZ3kgQnVpbGRpbmcsTk8uNjEtNjUsCisJCQkJV2VzdCBaaG9uZ3NoYW4gQXZlbnVlLFRpYW5oZSBEaXN0cmljdAorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgNTEwNjMwCisJCQkJQ0hJTkEKKworMDAtMEMtMEIgICAoaGV4KQkJQnJvYWRidXMgVGVjaG5vbG9naWVzCiswMDBDMEIgICAgIChiYXNlIDE2KQkJQnJvYWRidXMgVGVjaG5vbG9naWVzCisJCQkJODAgQ2VudHJhbCBTdHJlZXQKKwkJCQlCb3hib3JvdWdoIE1hc3NhY2h1c2V0dHMgMDE3MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTBDICAgKGhleCkJCUFQUFJPIFRFQ0hOT0xPR1kgSU5DLgorMDAwQzBDICAgICAoYmFzZSAxNikJCUFQUFJPIFRFQ0hOT0xPR1kgSU5DLgorCQkJCTEzRiwgTm8uIDY2IENodW5nLUNoZW5nIFJkLAorCQkJCUhzaW4tQ2h1YW5nIFRhaXBlaSAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTBEICAgKGhleCkJCUNvbW11bmljYXRpb25zICYgUG93ZXIgSW5kdXN0cmllcyAvIFNhdGNvbSBEaXZpc2lvbgorMDAwQzBEICAgICAoYmFzZSAxNikJCUNvbW11bmljYXRpb25zICYgUG93ZXIgSW5kdXN0cmllcyAvIFNhdGNvbSBEaXZpc2lvbgorCQkJCTgxMSBIYW5zZW4gV2F5IE1TIFMtNjAwCisJCQkJUGFsbyBBbHRvIENBIDk0MzAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0wRSAgIChoZXgpCQlYdHJlbWVTcGVjdHJ1bSwgSW5jLgorMDAwQzBFICAgICAoYmFzZSAxNikJCVh0cmVtZVNwZWN0cnVtLCBJbmMuCisJCQkJODEzMyBMZWVzYnVyZyBQaWtlCisJCQkJVmllbm5hIFZBIDIyMTgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0wRiAgIChoZXgpCQlUZWNobm8tT25lIENvLiwgTHRkCiswMDBDMEYgICAgIChiYXNlIDE2KQkJVGVjaG5vLU9uZSBDby4sIEx0ZAorCQkJCTktMTctMSBIaWdhc2hpIFNvbm9kYQorCQkJCUFtYWdhc2FraSBIeW9nbyA2NjEtMDk1MworCQkJCUpBUEFOCisKKzAwLTBDLTEwICAgKGhleCkJCVBOSSBDb3Jwb3JhdGlvbgorMDAwQzEwICAgICAoYmFzZSAxNikJCVBOSSBDb3Jwb3JhdGlvbgorCQkJCTU0NjQgU2t5bGFuZSBCbHZkICNBCisJCQkJU2FudGEgUm9zYSBDQSA5NTQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMTEgICAoaGV4KQkJTklQUE9OIERFTVBBIENPLixMVEQuCiswMDBDMTEgICAgIChiYXNlIDE2KQkJTklQUE9OIERFTVBBIENPLixMVEQuCisJCQkJMS00LTgKKwkJCQlrYW1lbm9rb3UKKwkJCQlrYWtlZ2F3YSBjaXR5IHNoaXp1b2thIHByZWYuIDQzNi0wMDI4CisJCQkJSkFQQU4KKworMDAtMEMtMTIgICAoaGV4KQkJTWljcm8tT3B0cm9uaWMtTWVzc3RlY2huaWsgR21iSAorMDAwQzEyICAgICAoYmFzZSAxNikJCU1pY3JvLU9wdHJvbmljLU1lc3N0ZWNobmlrIEdtYkgKKwkJCQlMZXNzaW5nc3RyYXNzZSAxNAorCQkJCUxhbmdlYnJ1ZWNrIFNheG9ueSBELTAxNDY1CisJCQkJR0VSTUFOWQorCiswMC0wQy0xMyAgIChoZXgpCQlNZWRpYVEKKzAwMEMxMyAgICAgKGJhc2UgMTYpCQlNZWRpYVEKKwkJCQkyOTc1IFNhbiBZc2lkcm8gV2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTE0ICAgKGhleCkJCURpYWdub3N0aWMgSW5zdHJ1bWVudHMsIEluYy4KKzAwMEMxNCAgICAgKGJhc2UgMTYpCQlEaWFnbm9zdGljIEluc3RydW1lbnRzLCBJbmMuCisJCQkJNjU0MCBCdXJyb3VnaHMKKwkJCQlTdGVybGluZyBIZWlnaHRzIE1JIDQ4MzE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0xNSAgIChoZXgpCQlDeWJlclBvd2VyIFN5c3RlbXMsIEluYy4KKzAwMEMxNSAgICAgKGJhc2UgMTYpCQlDeWJlclBvd2VyIFN5c3RlbXMsIEluYy4KKwkJCQk2RiwgTm8uIDMyLCBTZWMuIDEsIENoZW5nZ29uZyBSZC4KKwkJCQlOYW5oYW5nIERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTE2ICAgKGhleCkJCUNvbmNvcmRlIE1pY3Jvc3lzdGVtcyBJbmMuCiswMDBDMTYgICAgIChiYXNlIDE2KQkJQ29uY29yZGUgTWljcm9zeXN0ZW1zIEluYy4KKwkJCQkxMDQyNyBDb2dkaWxsIFJvYWQsIFN1aXRlIDUwMAorCQkJCUtub3h2aWxsZSBUTiAzNzkzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMTcgICAoaGV4KQkJQUpBIFZpZGVvIFN5c3RlbXMgSW5jCiswMDBDMTcgICAgIChiYXNlIDE2KQkJQUpBIFZpZGVvIFN5c3RlbXMgSW5jCisJCQkJNDQzIENyb3duIFBvaW50IENpcmNsZQorCQkJCUdyYXNzIFZhbGxleSBDYWxpZm9ybmlhIDk1OTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0xOCAgIChoZXgpCQlaZW5pc3UgS2Vpc29rdSBJbmMuCiswMDBDMTggICAgIChiYXNlIDE2KQkJWmVuaXN1IEtlaXNva3UgSW5jLgorCQkJCTItMTMtMzcKKwkJCQlIb25tYWNoaQorCQkJCUZ1Y2h1LXNoaSBUb2t5byAxODMtMDAyNworCQkJCUpBUEFOCisKKzAwLTBDLTE5ICAgKGhleCkJCVRlbGlvIENvbW11bmljYXRpb25zIEdtYkgKKzAwMEMxOSAgICAgKGJhc2UgMTYpCQlUZWxpbyBDb21tdW5pY2F0aW9ucyBHbWJICisJCQkJRWxiY2hhdXNzZWUgMQorCQkJCUhhbWJ1cmcgIDIyNzY1CisJCQkJR0VSTUFOWQorCiswMC0wQy0xQSAgIChoZXgpCQlRdWVzdCBUZWNobmljYWwgU29sdXRpb25zIEluYy4KKzAwMEMxQSAgICAgKGJhc2UgMTYpCQlRdWVzdCBUZWNobmljYWwgU29sdXRpb25zIEluYy4KKwkJCQk0MTEwIE1vdXJuaW5nIERvdmUgQ3J0LgorCQkJCU1lbGJvdXJuZSBGTCAzMjkzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMUIgICAoaGV4KQkJT1JBQ09NIENvLCBMdGQuCiswMDBDMUIgICAgIChiYXNlIDE2KQkJT1JBQ09NIENvLCBMdGQuCisJCQkJM3JkIEZsLCBBLVN1bmcgQmxkZywgOTk5LTMKKwkJCQlEZWFjaGktRG9uZywgS2FuZ25hbS1HdQorCQkJCVNlb3VsICAxMzUtMjgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTFDICAgKGhleCkJCU1pY3JvV2ViIENvLiwgTHRkLgorMDAwQzFDICAgICAoYmFzZSAxNikJCU1pY3JvV2ViIENvLiwgTHRkLgorCQkJCTQwMyBUL1MvUy9DLCAyMy0xNCBKYW5nLWRvbmcsIFl1c29uZy1ndSwKKwkJCQlEYWVqZW9uIENob29uZ0NodW5nRG8gMzA1LTM0MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy0xRCAgIChoZXgpCQlNZXR0bGVyICYgRnVjaHMgQUcKKzAwMEMxRCAgICAgKGJhc2UgMTYpCQlNZXR0bGVyICYgRnVjaHMgQUcKKwkJCQlRdWVyc3RyYXNzZSAxNworCQkJCUNILTg5NTEgRmFocndlaWQgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEMtMUUgICAoaGV4KQkJR2xvYmFsIENhY2hlCiswMDBDMUUgICAgIChiYXNlIDE2KQkJR2xvYmFsIENhY2hlCisJCQkJMTYwIEVhc3QgQ2FsaWZvcm5pYSBTdHJlZXQKKwkJCQlQT0IgMTY1OQorCQkJCUphY2tzb252aWxsZSBPUiA5NzUzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMUYgICAoaGV4KQkJR2xpbW1lcmdsYXNzIE5ldHdvcmtzCiswMDBDMUYgICAgIChiYXNlIDE2KQkJR2xpbW1lcmdsYXNzIE5ldHdvcmtzCisJCQkJMjYxNDIgRWRlbiBMYW5kaW5nIFJvYWQKKwkJCQlIYXl3YXJkIENhbGlmb3JuaWEgOTQ1NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTIwICAgKGhleCkJCUZpIFdJbiwgSW5jLgorMDAwQzIwICAgICAoYmFzZSAxNikJCUZpIFdJbiwgSW5jLgorCQkJCThGLCBOby4gMTAsIFByb3NwZXJpdHkgUmQuIDEsCisJCQkJU2NpZW5jZSBCYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luIENodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy0yMSAgIChoZXgpCQlGYWN1bHR5IG9mIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3ksIEtlaW8gVW5pdmVyc2l0eQorMDAwQzIxICAgICAoYmFzZSAxNikJCUZhY3VsdHkgb2YgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSwgS2VpbyBVbml2ZXJzaXR5CisJCQkJMy0xNC0xIEhpeW9zaGksIEtvaG9rdS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyMy04NTIyCisJCQkJSkFQQU4KKworMDAtMEMtMjIgICAoaGV4KQkJRG91YmxlIEQgRWxlY3Ryb25pY3MgTHRkCiswMDBDMjIgICAgIChiYXNlIDE2KQkJRG91YmxlIEQgRWxlY3Ryb25pY3MgTHRkCisJCQkJVW5pdCA2LCBSb2JpbnMgV2hhcmYKKwkJCQlHcm92ZSBSb2FkCisJCQkJTm9ydGhmbGVldCBLZW50IERBMTEgOUFYCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEMtMjMgICAoaGV4KQkJQmVpamluZyBMYW5jaHVhbiBUZWNoLiBDby4sIEx0ZC4KKzAwMEMyMyAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIExhbmNodWFuIFRlY2guIENvLiwgTHRkLgorCQkJCVJtMjIwLE5vLjMwIFNoYW5neXVhbmN1biwKKwkJCQlHYW9saWFuZ3FpYW9sdSxIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDQ0CisJCQkJQ0hJTkEKKworMDAtMEMtMjQgICAoaGV4KQkJQU5BVE9SCiswMDBDMjQgICAgIChiYXNlIDE2KQkJQU5BVE9SCisJCQkJNDQsIHJ1ZSBkJ0VzdGllbm5lIGQnT3J2ZXMKKwkJCQlzYXJ0cm91dmlsbGUgeXZlbGluZXMgNzg1MDAKKwkJCQlGUkFOQ0UKKworMDAtMEMtMjUgICAoaGV4KQkJQWxsaWVkIFRlbGVzaXMgTGFicywgSW5jLiAKKzAwMEMyNSAgICAgKGJhc2UgMTYpCQlBbGxpZWQgVGVsZXNpcyBMYWJzLCBJbmMuIAorCQkJCVN1aXRlIDQ1MAorCQkJCTkwMCBNYWluIENhbXB1cyBEcml2ZSwgU3VpdGUgMzAxCisJCQkJUmFsZWlnaCBOQyAyNzYwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMjYgICAoaGV4KQkJV2VpbnRlayBMYWJzLiBJbmMuCiswMDBDMjYgICAgIChiYXNlIDE2KQkJV2VpbnRlayBMYWJzLiBJbmMuCisJCQkJM0YsIE5vLjkxMCwgQ2h1bmcgQ2hlbmcgUmQuCisJCQkJQ2h1bmcgSG8gY2l0eSBUYWlwZWkgSHNpZW4gMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy0yNyAgIChoZXgpCQlTYW1teSBDb3Jwb3JhdGlvbgorMDAwQzI3ICAgICAoYmFzZSAxNikJCVNhbW15IENvcnBvcmF0aW9uCisJCQkJU1VOIFNISU5FNjAgNDVGLDMtMS0xLEhJR0FTSEktSUtFQlVLVVJPCisJCQkJVE9TSElNQS1LVSBUT0tZTyAxNzAtNjA0NQorCQkJCUpBUEFOCisKKzAwLTBDLTI4ICAgKGhleCkJCVJJRkFUUk9OCiswMDBDMjggICAgIChiYXNlIDE2KQkJUklGQVRST04KKwkJCQk5dGggRkwsIFNISU5UQUVZQU5HIEJMREcKKwkJCQk3MzYtOCwgQkFOUE8tRE9ORworCQkJCVNFT1VMIFNFT0NITy1HVSAxMzctMDQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTI5ICAgKGhleCkJCVZNd2FyZSwgSW5jLgorMDAwQzI5ICAgICAoYmFzZSAxNikJCVZNd2FyZSwgSW5jLgorCQkJCTM0MDEgSGlsbHZpZXcgQXZlbnVlCisJCQkJUGFsbyBBbHRvIENBIDk0MzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0yQSAgIChoZXgpCQlPQ1RURUwgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKzAwMEMyQSAgICAgKGJhc2UgMTYpCQlPQ1RURUwgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKwkJCQk3Ri0xLCBOby4zMDAsIERhZHVlbiAxMHRoIFN0LgorCQkJCVRhaWNodW5nIENpdHkgIDQwOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtMkIgICAoaGV4KQkJRUxJQVMgVGVjaG5vbG9neSwgSW5jLgorMDAwQzJCICAgICAoYmFzZSAxNikJCUVMSUFTIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkzRiwgMTAxNSwgWXVuZy1BbiBSb2FkLAorCQkJCVRhb3l1YW4gQ2l0eSBUYW95dWFuIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtMkMgICAoaGV4KQkJRW53aXNlciBJbmMuCiswMDBDMkMgICAgIChiYXNlIDE2KQkJRW53aXNlciBJbmMuCisJCQkJNEYsIENoZW9uZ3Nlb2sgQi9ECisJCQkJMTM1LTExLCBOb25oeWVvbi1kb25nLCBLYW5nbmFtLWt1CisJCQkJU2VvdWwgU2VvdWwgMTM1LTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy0yRCAgIChoZXgpCQlGdWxsV2F2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwQzJEICAgICAoYmFzZSAxNikJCUZ1bGxXYXZlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJN0YtNiwgTm8uMjYsIFRhaVl1YW4gU3QuLAorCQkJCUp1QmVpIEhzaW4gQ2h1IDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtMkUgICAoaGV4KQkJT3BlbmV0IGluZm9ybWF0aW9uIHRlY2hub2xvZ3koc2hlbnpoZW4pIENvLiwgTHRkLgorMDAwQzJFICAgICAoYmFzZSAxNikJCU9wZW5ldCBpbmZvcm1hdGlvbiB0ZWNobm9sb2d5KHNoZW56aGVuKSBDby4sIEx0ZC4KKwkJCQkyL0YsQSB0b3dlcixpbnRlcm5hdGlvbmFsIHRlY2gtaW5ub3ZhdGlvCisJCQkJaGlnaC10ZWNoIGluZHVzdHJpYWwgcGFyayAsc2hlbnpoZW4sIFAuUgorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0wQy0yRiAgIChoZXgpCQlTZW9yaW1UZWNobm9sb2d5IENvLixMdGQuCiswMDBDMkYgICAgIChiYXNlIDE2KQkJU2VvcmltVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTJGIERJUExPTUFUSUMgQ0VOVEVSIEIvRCAxMzc2LTEgU0VPQ0hPMi0KKwkJCQlTRU9VTCAgMTM3LTA3MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy0zMCAgIChoZXgpCQlDaXNjbworMDAwQzMwICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTMxICAgKGhleCkJCUNpc2NvCiswMDBDMzEgICAgIChiYXNlIDE2KQkJQ2lzY28KKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDYSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtMzIgICAoaGV4KQkJQXZpb25pYyBEZXNpZ24gRGV2ZWxvcG1lbnQgR21iSAorMDAwQzMyICAgICAoYmFzZSAxNikJCUF2aW9uaWMgRGVzaWduIERldmVsb3BtZW50IEdtYkgKKwkJCQlTdGhhbWVyc3RyYXNzZSAyNGEKKwkJCQlIYW1idXJnICAyMjM5NworCQkJCUdFUk1BTlkKKworMDAtMEMtMzMgICAoaGV4KQkJQ29tcHVjYXNlIEVudGVycHJpc2UgQ28uIEx0ZC4KKzAwMEMzMyAgICAgKGJhc2UgMTYpCQlDb21wdWNhc2UgRW50ZXJwcmlzZSBDby4gTHRkLgorCQkJCTIyNSBMYW5lIDU0LCBBbiBIbyBSb2FkLCBTZWN0aW9uIDJuZC4KKwkJCQlUYWluYW4gQ2l0eSAgNzA5NDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTM0ICAgKGhleCkJCVZpeGVuIENvLiwgTHRkLgorMDAwQzM0ICAgICAoYmFzZSAxNikJCVZpeGVuIENvLiwgTHRkLgorCQkJCTUtMTctMyBIaWdhc2hpdG9rb3JvemF3YQorCQkJCVRva29yb3phd2EgU2FpdGFtYSAzNTktMDAyMQorCQkJCUpBUEFOCisKKzAwLTBDLTM1ICAgKGhleCkJCUthVm8gRGVudGFsIEdtYkggJiBDby4gS0cKKzAwMEMzNSAgICAgKGJhc2UgMTYpCQlLYVZvIERlbnRhbCBHbWJIICYgQ28uIEtHCisJCQkJQmlzbWFya3JpbmcgMzkKKwkJCQlCaWJlcmFjaC9SaXNzIEJhZGVuLVd1ZXJ0dGVtYmVyZyA4ODQwMAorCQkJCUdFUk1BTlkKKworMDAtMEMtMzYgICAoaGV4KQkJU0hBUlAgVEFLQVlBIEVMRUNUUk9OSUNTIElORFVTVFJZIENPLixMVEQuCiswMDBDMzYgICAgIChiYXNlIDE2KQkJU0hBUlAgVEFLQVlBIEVMRUNUUk9OSUNTIElORFVTVFJZIENPLixMVEQuCisJCQkJMzEyMS0xIFNhdG9taSBTYXRvc2hvLWNobworCQkJCUFzYWt1Y2hpLWd1biBPa2F5YW1hIDcxOS0wMzAxCisJCQkJSkFQQU4KKworMDAtMEMtMzcgICAoaGV4KQkJR2VvbWF0aW9uLCBJbmMuCiswMDBDMzcgICAgIChiYXNlIDE2KQkJR2VvbWF0aW9uLCBJbmMuCisJCQkJMjUxODggR2VuZXNlZSBUcmFpbCBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJR29sZGVuIENPIDgwNDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy0zOCAgIChoZXgpCQlUZWxjb0JyaWRnZXMgSW5jLgorMDAwQzM4ICAgICAoYmFzZSAxNikJCVRlbGNvQnJpZGdlcyBJbmMuCisJCQkJNTg2IER1IENoZW5hbAorCQkJCVJlcGVudGlnbnkgUXVlYmVjIEo2QSA3QzUKKwkJCQlDQU5BREEKKworMDAtMEMtMzkgICAoaGV4KQkJU2VudGluZWwgV2lyZWxlc3MgSW5jLgorMDAwQzM5ICAgICAoYmFzZSAxNikJCVNlbnRpbmVsIFdpcmVsZXNzIEluYy4KKwkJCQk0MzkgUy4gVW5pb24gU3QuCisJCQkJU291dGggTGF3cmVuY2UgTUEgMDE4NDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTNBICAgKGhleCkJCU94YW5jZQorMDAwQzNBICAgICAoYmFzZSAxNikJCU94YW5jZQorCQkJCTc1LTg1IHJ1ZSBSaWNoZWxpZXUKKwkJCQlsZXMgTHVjcyBzdXIgQm91bG9nbmUgIDg1MTcwCisJCQkJRlJBTkNFCisKKzAwLTBDLTNCICAgKGhleCkJCU9yaW9uIEVsZWN0cmljIENvLiwgTHRkLgorMDAwQzNCICAgICAoYmFzZSAxNikJCU9yaW9uIEVsZWN0cmljIENvLiwgTHRkLgorCQkJCTQxLTEsIEllaGlzYS1jaG8KKwkJCQlUYWtlZnUtc2hpIEZ1a3VpIDkxNS04NTU1CisJCQkJSkFQQU4KKworMDAtMEMtM0MgICAoaGV4KQkJTWVkaWFDaG9ydXMsIEluYy4KKzAwMEMzQyAgICAgKGJhc2UgMTYpCQlNZWRpYUNob3J1cywgSW5jLgorCQkJCSMyMDUsIEVUUkkgVEJJIDIgQ2VudGVyCisJCQkJVWV1bi1Eb25nLCBZdXNvbmctR3UKKwkJCQlEYWVqb24gREogMzA1LTMzMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy0zRCAgIChoZXgpCQlHbHN5c3RlY2ggQ28uLCBMdGQuCiswMDBDM0QgICAgIChiYXNlIDE2KQkJR2xzeXN0ZWNoIENvLiwgTHRkLgorCQkJCVNvbmcgQm8gQi9EIDNGCisJCQkJMjEyLTEwLCBLdW5nLURvbmcsIEt1cm8gR3UKKwkJCQlTZW91bCAgMTUyLTg4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy0zRSAgIChoZXgpCQlDcmVzdCBBdWRpbworMDAwQzNFICAgICAoYmFzZSAxNikJCUNyZXN0IEF1ZGlvCisJCQkJMTYtMDAgUG9sbGl0dCBEcml2ZQorCQkJCUZhaXIgTGF3biBOSiAwNzQxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtM0YgICAoaGV4KQkJQ29nZW50IERlZmVuY2UgJiBTZWN1cml0eSBOZXR3b3JrcywKKzAwMEMzRiAgICAgKGJhc2UgMTYpCQlDb2dlbnQgRGVmZW5jZSAmIFNlY3VyaXR5IE5ldHdvcmtzLAorCQkJCU1lYWRvd3MgUm9hZCwKKwkJCQlRdWVlbnN3YXkgTWVhZG93cyBJbmQgRXN0YXRlLAorCQkJCU5ld3BvcnQsIFNvdXRoIFdhbGVzLCBOUDE5IDRTUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBDLTQwICAgKGhleCkJCUFsdGVjaCBDb250cm9scworMDAwQzQwICAgICAoYmFzZSAxNikJCUFsdGVjaCBDb250cm9scworCQkJCTE1NDUgSW5kdXN0aWFsIERyaXZlCisJCQkJTWlzc291cmkgQ2l0eSBUZXhhcyA3NzQ4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNDEgICAoaGV4KQkJQ2lzY28tTGlua3N5cworMDAwQzQxICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMKKwkJCQkxMjEgVGhlb3J5IERyLgorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNDIgICAoaGV4KQkJUm91dGVyYm9hcmQuY29tCiswMDBDNDIgICAgIChiYXNlIDE2KQkJUm91dGVyYm9hcmQuY29tCisJCQkJUGVybmF2YXMgNDYKKwkJCQlSaWdhICBMVi0xMDA5CisJCQkJTEFUVklBCisKKzAwLTBDLTQzICAgKGhleCkJCVJhbGluayBUZWNobm9sb2d5LCBDb3JwLgorMDAwQzQzICAgICAoYmFzZSAxNikJCVJhbGluayBUZWNobm9sb2d5LCBDb3JwLgorCQkJCTRGLCBOby4yLCBUZWNobm9sb2d5IDV0aCBSb2FkLAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW4tQ2h1ICAyMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTQ0ICAgKGhleCkJCUF1dG9tYXRlZCBJbnRlcmZhY2VzLCBJbmMuCiswMDBDNDQgICAgIChiYXNlIDE2KQkJQXV0b21hdGVkIEludGVyZmFjZXMsIEluYy4KKwkJCQkxMjAgQ29uZmVkZXJhdGUgTGFuZQorCQkJCUdyZWVyIFNvdXRoIENhcm9saW5hIDI5NjUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy00NSAgIChoZXgpCQlBbmltYXRpb24gVGVjaG5vbG9naWVzIEluYy4KKzAwMEM0NSAgICAgKGJhc2UgMTYpCQlBbmltYXRpb24gVGVjaG5vbG9naWVzIEluYy4KKwkJCQk4RixOby4xMzgsTGFuZSAyMzUsUGFvY2hpYW8gUm9hZCwKKwkJCQlIc2luIFRpZW4KKwkJCQlUYWlwZWkgSHNpZW4gIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtNDYgICAoaGV4KQkJQWxsaWVkIFRlbGVzeW4gSW5jLgorMDAwQzQ2ICAgICAoYmFzZSAxNikJCUFsbGllZCBUZWxlc3luIEluYy4KKwkJCQk5NjAgU3Rld2FydCBEcml2ZSwgU3VpdGUgQgorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy00NyAgIChoZXgpCQlTSyBUZWxldGVjaChSJkQgUGxhbm5pbmcgVGVhbSkKKzAwMEM0NyAgICAgKGJhc2UgMTYpCQlTSyBUZWxldGVjaChSJkQgUGxhbm5pbmcgVGVhbSkKKwkJCQkyMXRoIEZMIFN0YXJ0b3dlciA3MzcsIFllb2tzYW0tZG9uZworCQkJCUthbmduYW0tS3UKKwkJCQlTZW91bCAgMTM1LTk4NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy00OCAgIChoZXgpCQlRb1N0ZWsgQ29ycG9yYXRpb24KKzAwMEM0OCAgICAgKGJhc2UgMTYpCQlRb1N0ZWsgQ29ycG9yYXRpb24KKwkJCQk3RiwgMjIsIFRhaXl1ZW4gU3RyZWV0CisJCQkJQ2h1cGVpIEhzaW5jaHUgSHNpZW4gMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy00OSAgIChoZXgpCQlEYW5nYWFyZCBUZWxlY29tIFJUQyBEaXZpc2lvbiBBL1MKKzAwMEM0OSAgICAgKGJhc2UgMTYpCQlEYW5nYWFyZCBUZWxlY29tIFJUQyBEaXZpc2lvbiBBL1MKKwkJCQlJbmR1c3RyaXZlaiAxCisJCQkJREsgMjYxNTQ1NTMKKwkJCQlQYWRib3JnICBESy02MzMwCisJCQkJREVOTUFSSworCiswMC0wQy00QSAgIChoZXgpCQlDeWdudXMgTWljcm9zeXN0ZW1zIChQKSBMaW1pdGVkCiswMDBDNEEgICAgIChiYXNlIDE2KQkJQ3lnbnVzIE1pY3Jvc3lzdGVtcyAoUCkgTGltaXRlZAorCQkJCTkzLCBQaGFzZSBJSSwKKwkJCQlJREEsIENoZXJsYXBhbGx5CisJCQkJSHlkZXJhYmFkIEFuZGhyYSBQcmFkZXNoIDUwMDA1MQorCQkJCUlORElBCisKKzAwLTBDLTRCICAgKGhleCkJCUNoZW9wcyBFbGVrdHJvbmlrCiswMDBDNEIgICAgIChiYXNlIDE2KQkJQ2hlb3BzIEVsZWt0cm9uaWsKKwkJCQlKZXNjaGtlbnN0cmFzc2UgMzIKKwkJCQlHZXJldHNyaWVkIEJheWVybiA4MjUzOAorCQkJCUdFUk1BTlkKKworMDAtMEMtNEMgICAoaGV4KQkJQXJjb3IgQUcmQ28uCiswMDBDNEMgICAgIChiYXNlIDE2KQkJQXJjb3IgQUcmQ28uCisJCQkJQWxmcmVkLUhlcnJoYXVzZW4tQWxsZWUgMQorCQkJCUVzY2hib3JuIEhlc3NlbiA2NTc2MAorCQkJCUdFUk1BTlkKKworMDAtMEMtNEQgICAoaGV4KQkJQUNSQSBDT05UUk9MCiswMDBDNEQgICAgIChiYXNlIDE2KQkJQUNSQSBDT05UUk9MCisJCQkJTGFuZHNjYXBlIEhvdXNlLAorCQkJCUxhbmRzY2FwZSBSb2FkLAorCQkJCUNodXJjaHRvd24sIER1YmxpbiAxNAorCQkJCUlSRUxBTkQKKworMDAtMEMtNEUgICAoaGV4KQkJV2luYmVzdCBUZWNobm9sb2d5IENPLExUCiswMDBDNEUgICAgIChiYXNlIDE2KQkJV2luYmVzdCBUZWNobm9sb2d5IENPLExUCisJCQkJN0YtNU5vLjczNiBDaHVuZyBDaGVuZ1JkLixDaHVuZ0hvCisJCQkJVGFpcGVpICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTRGICAgKGhleCkJCVVEVGVjaCBKYXBhbiBDb3Jwb3JhdGlvbgorMDAwQzRGICAgICAoYmFzZSAxNikJCVVEVGVjaCBKYXBhbiBDb3Jwb3JhdGlvbgorCQkJCUhhbWFjaG8gSGFuYWNobyBCbGRnLCAyRgorCQkJCTItMTctOCBOaWhvbmJhc2hpLUhhbWFjaG8KKwkJCQlDaHVvLWt1IFRva3lvIDEwMy0wMDA3CisJCQkJSkFQQU4KKworMDAtMEMtNTAgICAoaGV4KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CiswMDBDNTAgICAgIChiYXNlIDE2KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CisJCQkJMTI4MCBEaXNjIERyaXZlCisJCQkJU2hha29wZWUgTU4gNTUzNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTUxICAgKGhleCkJCVNjaWVudGlmaWMgVGVjaG5vbG9naWVzIEluYy4KKzAwMEM1MSAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNjU1MCBEdW1iYXJ0b24gQ2lyY2xlCisJCQkJRnJlbW9udCBDQSA5NDU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNTIgICAoaGV4KQkJUm9sbCBTeXN0ZW1zIEluYy4KKzAwMEM1MiAgICAgKGJhc2UgMTYpCQlSb2xsIFN5c3RlbXMgSW5jLgorCQkJCTUzIFRoaXJkIEF2ZW51ZQorCQkJCUJ1cmxpbmd0b24gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTUzICAgKGhleCkJCVBSSVZBVEUKKzAwMEM1MyAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMEMtNTQgICAoaGV4KQkJUGVkZXN0YWwgTmV0d29ya3MsIEluYworMDAwQzU0ICAgICAoYmFzZSAxNikJCVBlZGVzdGFsIE5ldHdvcmtzLCBJbmMKKwkJCQk2NTAzIER1bWJhcnRvbiBDaXJjbGUKKwkJCQlGcmVtb250IENBIDk0NTU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy01NSAgIChoZXgpCQlNaWNyb2xpbmsgQ29tbXVuaWNhdGlvbnMgSW5jLgorMDAwQzU1ICAgICAoYmFzZSAxNikJCU1pY3JvbGluayBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJOEYsIDMxLCBIc2ludGFpIFJvYWQKKwkJCQlDaHVwZWkgQ2l0eQorCQkJCUhzaW5jaHUgIDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtNTYgICAoaGV4KQkJTWVnYXRlbCBDb21wdXRlciAoMTk4NikgQ29ycC4KKzAwMEM1NiAgICAgKGJhc2UgMTYpCQlNZWdhdGVsIENvbXB1dGVyICgxOTg2KSBDb3JwLgorCQkJCTU4NiBNYWluIFN0cmVldAorCQkJCUdsZW4gV2lsbGlhbXMgT250YXJpbyBMN0cgM1Q2CisJCQkJQ0FOQURBCisKKzAwLTBDLTU3ICAgKGhleCkJCU1BQ0tJRSBFbmdpbmVlcmluZyBTZXJ2aWNlcyBCZWxnaXVtIEJWQkEKKzAwMEM1NyAgICAgKGJhc2UgMTYpCQlNQUNLSUUgRW5naW5lZXJpbmcgU2VydmljZXMgQmVsZ2l1bSBCVkJBCisJCQkJSW5kdXN0cmllcGFyayBOb29yZCAxMAorCQkJCVNpbnQgTmlrbGFhcyAgQi05MTAwCisJCQkJQkVMR0lVTQorCiswMC0wQy01OCAgIChoZXgpCQlNJlMgU3lzdGVtcworMDAwQzU4ICAgICAoYmFzZSAxNikJCU0mUyBTeXN0ZW1zCisJCQkJMjg2MSBDb25ncmVzc21hbiBMYW5lCisJCQkJRGFsbGFzIFRYIDc1MjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy01OSAgIChoZXgpCQlJbmR5bWUgRWxlY3Ryb25pY3MsIEluYy4KKzAwMEM1OSAgICAgKGJhc2UgMTYpCQlJbmR5bWUgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQk5MDg1IEFlcm8gRHIuCisJCQkJU2FuIERpZWdvIENBIDkyMTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy01QSAgIChoZXgpCQlJQlNtbSBJbmR1c3RyaWVlbGVrdHJvbmlrIE11bHRpbWVkaWEKKzAwMEM1QSAgICAgKGJhc2UgMTYpCQlJQlNtbSBJbmR1c3RyaWVlbGVrdHJvbmlrIE11bHRpbWVkaWEKKwkJCQlBeWluZ2VyIFN0ci4gMQorCQkJCUZhaXN0ZW5oYWFyCisJCQkJQnJ1bm50aGFsIEJhdmFyaWEgRC04NTY0OQorCQkJCUdFUk1BTlkKKworMDAtMEMtNUIgICAoaGV4KQkJSEFOV0FORyBURUNITk9MT0dZIENPLixMVEQKKzAwMEM1QiAgICAgKGJhc2UgMTYpCQlIQU5XQU5HIFRFQ0hOT0xPR1kgQ08uLExURAorCQkJCThGLEF1dG9tYXRpb24gQnVpbGRpbmcsOTUgWmhvbmdndWFuY3VuLAorCQkJCUhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODAKKwkJCQlDSElOQQorCiswMC0wQy01QyAgIChoZXgpCQlHVE4gU3lzdGVtcyBCLlYuCiswMDBDNUMgICAgIChiYXNlIDE2KQkJR1ROIFN5c3RlbXMgQi5WLgorCQkJCVBvc3RidXMgMTIyMzYKKwkJCQkxMTAwIEFFCisJCQkJQW1zdGVyZGFtICAKKwkJCQlORVRIRVJMQU5EUworCiswMC0wQy01RCAgIChoZXgpCQlDSElDIFRFQ0hOT0xPR1kgKENISU5BKSBDT1JQLgorMDAwQzVEICAgICAoYmFzZSAxNikJCUNISUMgVEVDSE5PTE9HWSAoQ0hJTkEpIENPUlAuCisJCQkJN3RoIEJ1aWxkaW5nLFNoaSdhbyBJbmQuWm9uZSxMb25naHVhIFRvdworCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDkKKwkJCQlDSElOQQorCiswMC0wQy01RSAgIChoZXgpCQlDYWx5cHNvIE1lZGljYWwKKzAwMEM1RSAgICAgKGJhc2UgMTYpCQlDYWx5cHNvIE1lZGljYWwKKwkJCQkyMTAxIEZvdXJ0aCBBdmVudWUsIFN1aXRlIDE1NTAKKwkJCQlTZWF0dGxlIFdBIDk4MTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy01RiAgIChoZXgpCQlBdnRlYywgSW5jLgorMDAwQzVGICAgICAoYmFzZSAxNikJCUF2dGVjLCBJbmMuCisJCQkJNDMzNSBBdWd1c3RhIEh3eQorCQkJCUdpbGJlcnQgU0MgMjkwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTYwICAgKGhleCkJCUFDTSBTeXN0ZW1zCiswMDBDNjAgICAgIChiYXNlIDE2KQkJQUNNIFN5c3RlbXMKKwkJCQkzMDM0IEdvbGQgQ2FuYWwgRHJpdmUKKwkJCQlSYW5jaG8gQ29yZG92YSBDQSA5NTY3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNjEgICAoaGV4KQkJQUMgVGVjaCBjb3Jwb3JhdGlvbiBEQkEgQWR2YW5jZWQgRGlnaXRhbAorMDAwQzYxICAgICAoYmFzZSAxNikJCUFDIFRlY2ggY29ycG9yYXRpb24gREJBIEFkdmFuY2VkIERpZ2l0YWwKKwkJCQkxMjUwLUcgQXZlbmlkYSBBY2FzbworCQkJCUNhbWFyaWxsbyBDQSA5MzAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNjIgICAoaGV4KQkJQUJCIEFCLCBDZXdlLUNvbnRyb2wgCiswMDBDNjIgICAgIChiYXNlIDE2KQkJQUJCIEFCLCBDZXdlLUNvbnRyb2wgCisJCQkJRGVwdC4gTFBDQy9SRSAKKwkJCQlNb3RvcmdyYW5kIDIwCisJCQkJVmFzdGVyYXMgIDcyMSA2MQorCQkJCVNXRURFTgorCiswMC0wQy02MyAgIChoZXgpCQlaZW5pdGggRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KKzAwMEM2MyAgICAgKGJhc2UgMTYpCQlaZW5pdGggRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KKwkJCQkyMDAwIE1pbGxicm9vayBEcml2ZQorCQkJCUxpbmNvbG5zaGlyZSBJbGxpbm9pcyA2MDA2OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNjQgICAoaGV4KQkJWDIgTVNBIEdyb3VwCiswMDBDNjQgICAgIChiYXNlIDE2KQkJWDIgTVNBIEdyb3VwCisJCQkJQ2FyZSBvZjogQWdpbGVudCBUZWNobm9sb2dpZXMKKwkJCQlXaGl0ZSBIb3VzZSBSb2FkCisJCQkJSXBzd2ljaCwgU3VmZm9sayBJUDEgNVBCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEMtNjUgICAoaGV4KQkJU3VuaW4gVGVsZWNvbQorMDAwQzY1ICAgICAoYmFzZSAxNikJCVN1bmluIFRlbGVjb20KKwkJCQkxMDI1LTUgRG9rb2stUmksIFdhYnUtRXViCisJCQkJTmFteWFuZ2p1LUNpdHkgS3l1bmdnaS1EbyA0NzItOTAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTY2ICAgKGhleCkJCVByb250byBOZXR3b3JrcyBJbmMKKzAwMEM2NiAgICAgKGJhc2UgMTYpCQlQcm9udG8gTmV0d29ya3MgSW5jCisJCQkJNDYzNyBDaGFib3QgRHIKKwkJCQlTdWl0ZSAzMDAKKwkJCQlQbGVhc2FudG9uIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy02NyAgIChoZXgpCQlPWU8gRUxFQ1RSSUMgQ08uLExURAorMDAwQzY3ICAgICAoYmFzZSAxNikJCU9ZTyBFTEVDVFJJQyBDTy4sTFRECisJCQkJNjMtMSBOYWthbWljaGkgT21vdGUKKwkJCQlIaXJha2F3YQorCQkJCUpveW8gS3lvdG8gNjEwLTAxMDEKKwkJCQlKQVBBTgorCiswMC0wQy02OCAgIChoZXgpCQlTaWdtYVRlbCwgSW5jLgorMDAwQzY4ICAgICAoYmFzZSAxNikJCVNpZ21hVGVsLCBJbmMuCisJCQkJMjAxIEpvbmVzIFJvYWQKKwkJCQlXYWx0aGFtIE1BIDAyNDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy02OSAgIChoZXgpCQlOYXRpb25hbCBSYWRpbyBBc3Ryb25vbXkgT2JzZXJ2YXRvcnkKKzAwMEM2OSAgICAgKGJhc2UgMTYpCQlOYXRpb25hbCBSYWRpbyBBc3Ryb25vbXkgT2JzZXJ2YXRvcnkKKwkJCQlQLk8uIEJveCBPCisJCQkJU29jb3JybyBOTSA4NzgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtNkEgICAoaGV4KQkJTUJBUkkKKzAwMEM2QSAgICAgKGJhc2UgMTYpCQlNQkFSSQorCQkJCTc3MDAgU2FuZGhvbGR0IFJvYWQKKwkJCQlNb3NzIExhbmRpbmcgQ0EgOTUwMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTZCICAgKGhleCkJCUt1cnogSW5kdXN0cmllLUVsZWt0cm9uaWsgR21iSAorMDAwQzZCICAgICAoYmFzZSAxNikJCUt1cnogSW5kdXN0cmllLUVsZWt0cm9uaWsgR21iSAorCQkJCUZvZWhyZW5iYWNoc3RyYXNzZSAzCisJCQkJUmVtc2hhbGRlbiBCYWRlbi1Xw7xydHRlbWJlcmcgNzM2MzAKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLTZDICAgKGhleCkJCUVsZ2F0byBTeXN0ZW1zIExMQworMDAwQzZDICAgICAoYmFzZSAxNikJCUVsZ2F0byBTeXN0ZW1zIExMQworCQkJCTkwMCBLZWFybnkgU3QgIzc1MAorCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTZEICAgKGhleCkJCUVkd2FyZHMgTHRkLgorMDAwQzZEICAgICAoYmFzZSAxNikJCUVkd2FyZHMgTHRkLgorCQkJCU1hcnNoYWxsIFJvYWQKKwkJCQlFYXN0Ym91cm5lIEVhc3QgU3Vzc2V4IEJOMjIgOUJBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEMtNkUgICAoaGV4KQkJQVNVU1RFSyBDT01QVVRFUiBJTkMuCiswMDBDNkUgICAgIChiYXNlIDE2KQkJQVNVU1RFSyBDT01QVVRFUiBJTkMuCisJCQkJMTUwLCBMaS1UZSBSZC4sIFBlaVRvdQorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy02RiAgIChoZXgpCQlBbXRlayBzeXN0ZW0gY28uLExURC4KKzAwMEM2RiAgICAgKGJhc2UgMTYpCQlBbXRlayBzeXN0ZW0gY28uLExURC4KKwkJCQkxNEYtMTEsTm8uNzksU2VjLiAxICxIc2luIFRhaSBXdSBSZC4sCisJCQkJSHNpIENoaWggQ2l0eQorCQkJCVRhaXBlaSAgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy03MCAgIChoZXgpCQlBQ0MgR21iSAorMDAwQzcwICAgICAoYmFzZSAxNikJCUFDQyBHbWJICisJCQkJQW0gU2FuZGZlbGQgMTUKKwkJCQlLYXJsc3J1aGUgQmFkZW4gNzYxNDkKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLTcxICAgKGhleCkJCVd5YnJvbiwgSW5jCiswMDBDNzEgICAgIChiYXNlIDE2KQkJV3licm9uLCBJbmMKKwkJCQk0ODMwIExJc3QgRHIKKwkJCQlDb2xvcmFkbyBTcHJpbmdzIENvbG9yYWRvIDgwOTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy03MiAgIChoZXgpCQlUZW1wZWFybCBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAwQzcyICAgICAoYmFzZSAxNikJCVRlbXBlYXJsIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJMy0xLTQyIE9oenUKKwkJCQlNaW5hbWkta3UKKwkJCQlIaXJvc2hpbWEtc2hpIEhpcm9zaGltYSA3MzItMDgwMgorCQkJCUpBUEFOCisKKzAwLTBDLTczICAgKGhleCkJCVRFTFNPTiBFTEVDVFJPTklDUyBDTy4sIExURAorMDAwQzczICAgICAoYmFzZSAxNikJCVRFTFNPTiBFTEVDVFJPTklDUyBDTy4sIExURAorCQkJCVRlbHNvbiBWZW50dXJlIFRvd2VyLiwgOTQ5LTMgRG9nb2stRG9uZworCQkJCVNlb3VsIEthbmduYW0tS3UgMTM1LTczOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy03NCAgIChoZXgpCQlSSVZFUlRFQyBDT1JQT1JBVElPTgorMDAwQzc0ICAgICAoYmFzZSAxNikJCVJJVkVSVEVDIENPUlBPUkFUSU9OCisJCQkJODgyLTUgTUlZQUdBU0FLSQorCQkJCUlNQUJBUkkgRUhJTUUgNzk5LTE1MzcKKwkJCQlKQVBBTgorCiswMC0wQy03NSAgIChoZXgpCQlPcmllbnRhbCBpbnRlZ3JhdGVkIGVsZWN0cm9uaWNzLiBMVEQKKzAwMEM3NSAgICAgKGJhc2UgMTYpCQlPcmllbnRhbCBpbnRlZ3JhdGVkIGVsZWN0cm9uaWNzLiBMVEQKKwkJCQkyODEtMzQgRG9uZGFuZy1kb25nIFdvbm1pLUd1CisJCQkJQnVjaGVvbiBLeW91bmdraWRvIDQyMC04MDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtNzYgICAoaGV4KQkJTUlDUk8tU1RBUiBJTlRFUk5BVElPTkFMIENPLiwgTFRELgorMDAwQzc2ICAgICAoYmFzZSAxNikJCU1JQ1JPLVNUQVIgSU5URVJOQVRJT05BTCBDTy4sIExURC4KKwkJCQlObyA2OSwgTGktRGUgU3RyZWV0LCBKdW5nLUhlIENpdHksIFRhaXBlCisJCQkJVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTc3ICAgKGhleCkJCUxpZmUgUmFjaW5nIEx0ZAorMDAwQzc3ICAgICAoYmFzZSAxNikJCUxpZmUgUmFjaW5nIEx0ZAorCQkJCVVuaXQgNiBSZXB0b24gQ2xvc2UKKwkJCQlCdXJudCBNaWxscyBJbmQgRXN0CisJCQkJQmFzaWxkb24gRXNzZXggU1MxMyAxTEUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQy03OCAgIChoZXgpCQlJbi1UZWNoIEVsZWN0cm9uaWNzIExpbWl0ZWQKKzAwMEM3OCAgICAgKGJhc2UgMTYpCQlJbi1UZWNoIEVsZWN0cm9uaWNzIExpbWl0ZWQKKwkJCQlVbml0IEEsIDEzdGggRmxvb3IuLCBXaW5nIFRhaSBDZW50cmUKKwkJCQkxMiBIaW5nIFlpcCBTdHJlZXQKKwkJCQlLd3VuIFRvbmcgS293bG9vbiAKKwkJCQlIT05HIEtPTkcKKworMDAtMEMtNzkgICAoaGV4KQkJRXh0ZWwgQ29tbXVuaWNhdGlvbnMgUC9MCiswMDBDNzkgICAgIChiYXNlIDE2KQkJRXh0ZWwgQ29tbXVuaWNhdGlvbnMgUC9MCisJCQkJMzk5IEZlcm50cmVlIEd1bGx5IFJvYWQKKwkJCQlNdCBXYXZlcmxleSBWaWN0b3JpYSAzMTQ5CisJCQkJQVVTVFJBTElBCisKKzAwLTBDLTdBICAgKGhleCkJCURhVEFSSVVTIFRlY2hub2xvZ2llcyBHbWJICiswMDBDN0EgICAgIChiYXNlIDE2KQkJRGFUQVJJVVMgVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlBbnRvbiBNYXJpYSBTY2h5cmxlIFN0ci4gNworCQkJCVJldXR0ZSBUaXJvbCA2NjAwCisJCQkJQVVTVFJJQQorCiswMC0wQy03QiAgIChoZXgpCQlBTFBIQSBQUk9KRUNUIENvLixMdGQuCiswMDBDN0IgICAgIChiYXNlIDE2KQkJQUxQSEEgUFJPSkVDVCBDby4sTHRkLgorCQkJCTgzNCBTZWtpc2hpLEhpZ2FzaGkta3UsSGFtYW1hdHN1LWNpdHkKKwkJCQlTaGl6dW9rYSAgNDMxLTMxMTQKKwkJCQlKQVBBTgorCiswMC0wQy03QyAgIChoZXgpCQlJbnRlcm5ldCBJbmZvcm1hdGlvbiBJbWFnZSBJbmMuCiswMDBDN0MgICAgIChiYXNlIDE2KQkJSW50ZXJuZXQgSW5mb3JtYXRpb24gSW1hZ2UgSW5jLgorCQkJCUZsLiA2LCBOby4gMSwgQWxsZXkgMjAsIExhbmUgMjYsIFJ1ZWlndWEKKwkJCQlOZWlodSBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy03RCAgIChoZXgpCQlURUlLT0tVIEVMRUNUUklDIE1GRy4gQ08uLCBMVEQKKzAwMEM3RCAgICAgKGJhc2UgMTYpCQlURUlLT0tVIEVMRUNUUklDIE1GRy4gQ08uLCBMVEQKKwkJCQk2MCwgSElSQU5PCisJCQkJU0hJTkdVLUNITworCQkJCUlCTy1HVU4gSFlPR08gNjc5LTQzOTUKKwkJCQlKQVBBTgorCiswMC0wQy03RSAgIChoZXgpCQlUZWxsaXVtIEluY29ycG9yYXRlZAorMDAwQzdFICAgICAoYmFzZSAxNikJCVRlbGxpdW0gSW5jb3Jwb3JhdGVkCisJCQkJMiBDcmVzY2VudCBQbGFjZQorCQkJCU9jZWFucG9ydCBOZXcgSmVyc2V5IDA3NzU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy03RiAgIChoZXgpCQlzeW5lcnRyb25peHggR21iSAorMDAwQzdGICAgICAoYmFzZSAxNikJCXN5bmVydHJvbml4eCBHbWJICisJCQkJTGFuZ2UgTGF1YmUgMjIKKwkJCQlIYW5ub3ZlciBOaWVkZXJzYWNoc2VuIDMwMTU5CisJCQkJR0VSTUFOWQorCiswMC0wQy04MCAgIChoZXgpCQlPcGVsY29tbSBJbmMuCiswMDBDODAgICAgIChiYXNlIDE2KQkJT3BlbGNvbW0gSW5jLgorCQkJCTQ2NzUwIEZyZW1vbnQgQmx2ZC4gU3RlIDIxMAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTgxICAgKGhleCkJCVNjaG5laWRlciBFbGVjdHJpYyAoQXVzdHJhbGlhKSAKKzAwMEM4MSAgICAgKGJhc2UgMTYpCQlTY2huZWlkZXIgRWxlY3RyaWMgKEF1c3RyYWxpYSkgCisJCQkJODAgU2NobmVpZGVyIFJvYWQKKwkJCQlFYWdsZSBGYXJtICBRbGQgNDAwOQorCQkJCUFVU1RSQUxJQQorCiswMC0wQy04MiAgIChoZXgpCQlORVRXT1JLIFRFQ0hOT0xPR0lFUyBJTkMKKzAwMEM4MiAgICAgKGJhc2UgMTYpCQlORVRXT1JLIFRFQ0hOT0xPR0lFUyBJTkMKKwkJCQkxMjc1IERBTk5FUiBEUklWRQorCQkJCUFVUk9SQSBPSCA0NDIwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtODMgICAoaGV4KQkJTG9naWNhbCBTb2x1dGlvbnMKKzAwMEM4MyAgICAgKGJhc2UgMTYpCQlMb2dpY2FsIFNvbHV0aW9ucworCQkJCTEwMFQgV2FzaGluZ3RvbiBTdHJlZXQKKwkJCQlNaWxmb3JkIENUIDA2NDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy04NCAgIChoZXgpCQlFYXppeCwgSW5jLgorMDAwQzg0ICAgICAoYmFzZSAxNikJCUVheml4LCBJbmMuCisJCQkJVW5pdCAzMDEgUGxhemEgQnVpbGRpbmcgQgorCQkJCTY1MzAgTm9ydGhnYXRlIEF2ZW51ZSwgRmlsaW52ZXN0CisJCQkJTXVudGlubHVwYSBDaXR5IFJpemFsIDE3NzAKKwkJCQlQSElMSVBQSU5FUworCiswMC0wQy04NSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBDODUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy04NiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBDODYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLW0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy04NyAgIChoZXgpCQlBTUQKKzAwMEM4NyAgICAgKGJhc2UgMTYpCQlBTUQKKwkJCQk0NTU1IEdyZWF0IEFtZXJpY2EgUGt3eQorCQkJCVN0ZSA1MDEKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtODggICAoaGV4KQkJQXBhY2hlIE1pY3JvIFBlcmlwaGVyYWxzLCBJbmMuCiswMDBDODggICAgIChiYXNlIDE2KQkJQXBhY2hlIE1pY3JvIFBlcmlwaGVyYWxzLCBJbmMuCisJCQkJMTc1MjYgVm9uIEthcm1hbiBBdmUKKwkJCQlJcnZpbmUgQ0EgOTI2MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTg5ICAgKGhleCkJCUFDIEVsZWN0cmljIFZlaGljbGVzLCBMdGQuCiswMDBDODkgICAgIChiYXNlIDE2KQkJQUMgRWxlY3RyaWMgVmVoaWNsZXMsIEx0ZC4KKwkJCQlNYXJra2luYWt1amEgMworCQkJCUpva2VsYSAgMDU0MDAKKwkJCQlGSU5MQU5ECisKKzAwLTBDLThBICAgKGhleCkJCUJvc2UgQ29ycG9yYXRpb24KKzAwMEM4QSAgICAgKGJhc2UgMTYpCQlCb3NlIENvcnBvcmF0aW9uCisJCQkJQXV0b21vdGl2ZSBTeXN0ZW1zIERpdmlzaW9uIChBU0QpCisJCQkJNjg4IEdyZWF0IFJvYWQgKE1haWxzdG9wOiAxVzIpCisJCQkJU3RvdyBNQSAwMTc3NS05MTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy04QiAgIChoZXgpCQlDb25uZWN0IFRlY2ggSW5jCiswMDBDOEIgICAgIChiYXNlIDE2KQkJQ29ubmVjdCBUZWNoIEluYworCQkJCTQyIEFycm93IFJvYWQKKwkJCQlHdWVscGggT250YXJpbyBOMUsgMVM2CisJCQkJQ0FOQURBCisKKzAwLTBDLThDICAgKGhleCkJCUtPRElDT00gQ08uLExURC4KKzAwMEM4QyAgICAgKGJhc2UgMTYpCQlLT0RJQ09NIENPLixMVEQuCisJCQkJQS1Eb25nIDVGSS4sU0sgVHdpbiBUb3dlciAzNDUtOSwKKwkJCQlHYXNhbi1Eb25nLCBHdWVtY2h1bi1HdQorCQkJCVNlb3VsICAxNTMtMDIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLThEICAgKGhleCkJCU1BVFJJWCBWSVNJT04gR21iSAorMDAwQzhEICAgICAoYmFzZSAxNikJCU1BVFJJWCBWSVNJT04gR21iSAorCQkJCVRhbHN0cmFzc2UgMTYKKwkJCQlPcHBlbndlaWxlciBCYWRlbi1XdWVydHRlbWJlcmcgRC03MTU3MAorCQkJCUdFUk1BTlkKKworMDAtMEMtOEUgICAoaGV4KQkJTWVudG9yIEVuZ2luZWVyaW5nIEluYworMDAwQzhFICAgICAoYmFzZSAxNikJCU1lbnRvciBFbmdpbmVlcmluZyBJbmMKKwkJCQkyODkxIFN1bnJpZGdlIFdheSBORQorCQkJCVN1aXRlIDIzMAorCQkJCUNhbGdhcnkgQWxiZXJ0YSBUMVk3SzcKKwkJCQlDQU5BREEKKworMDAtMEMtOEYgICAoaGV4KQkJTmVyZ2FsIHMuci5sLgorMDAwQzhGICAgICAoYmFzZSAxNikJCU5lcmdhbCBzLnIubC4KKwkJCQlWaWFsZSBCYXJkYW56ZWxsdSw4CisJCQkJUm9tYSAgMDAxNTUKKwkJCQlJVEFMWQorCiswMC0wQy05MCAgIChoZXgpCQlPY3Rhc2ljIEluYy4KKzAwMEM5MCAgICAgKGJhc2UgMTYpCQlPY3Rhc2ljIEluYy4KKwkJCQk0MTAxIE1vbHNvbiBTdC4KKwkJCQlTdWl0ZSAzMDAKKwkJCQlNb250cmVhbCBRdWViZWMgSDFZIDNMMQorCQkJCUNBTkFEQQorCiswMC0wQy05MSAgIChoZXgpCQlSaXZlcmhlYWQgTmV0d29ya3MgSW5jLgorMDAwQzkxICAgICAoYmFzZSAxNikJCVJpdmVyaGVhZCBOZXR3b3JrcyBJbmMuCisJCQkJMjAxOTUgU3RldmVucyBDcmVlayBCbHZkLiAjIDExMAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtOTIgICAoaGV4KQkJV29sZlZpc2lvbiBHbWJoCiswMDBDOTIgICAgIChiYXNlIDE2KQkJV29sZlZpc2lvbiBHbWJoCisJCQkJT2JlcmVzIFJpZWQgMTQKKwkJCQk2ODMzIEtsYXVzIAorCQkJCUFVU1RSSUEKKworMDAtMEMtOTMgICAoaGV4KQkJWGVsaW5lIENvLiwgTHRkLgorMDAwQzkzICAgICAoYmFzZSAxNikJCVhlbGluZSBDby4sIEx0ZC4KKwkJCQk3Ri4gQ2h1bmdqaW4gQmxkZy4sIDQ3NS0yMgorCQkJCUJhbmdiYWUgMiBkb25nLCBTZW9jaG8tZ3UKKwkJCQlTZW91bCAgMTM3LTgxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy05NCAgIChoZXgpCQlVbml0ZWQgRWxlY3Ryb25pYyBJbmR1c3RyaWVzLCBJbmMuIChFVUkpCiswMDBDOTQgICAgIChiYXNlIDE2KQkJVW5pdGVkIEVsZWN0cm9uaWMgSW5kdXN0cmllcywgSW5jLiAoRVVJKQorCQkJCTI3IFJlbm1hciBBdmUKKwkJCQlXYWxwb2xlIE1BIDAyMDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy05NSAgIChoZXgpCQlQcmltZU5ldAorMDAwQzk1ICAgICAoYmFzZSAxNikJCVByaW1lTmV0CisJCQkJSG9uZ2lrIFVuaXZlcnNpdHksIDcyLTEsIFNhbmdzdS1Eb25nLCBNYQorCQkJCVNlb3VsICAxMjEtNzkxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTk2ICAgKGhleCkJCU9RTywgSW5jLgorMDAwQzk2ICAgICAoYmFzZSAxNikJCU9RTywgSW5jLgorCQkJCTE4MDAgSWxsaW5vaXMgU3RyZWV0CisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtOTcgICAoaGV4KQkJTlYgQURCIFRUViBUZWNobm9sb2dpZXMgU0EKKzAwMEM5NyAgICAgKGJhc2UgMTYpCQlOViBBREIgVFRWIFRlY2hub2xvZ2llcyBTQQorCQkJCUxFVVZFTlNFU1RFRU5XRUcsNTg1CisJCQkJWkFWRU5URU0gVmxhYW1zZSBicmFiYW50IDE5MzAKKwkJCQlCRUxHSVVNCisKKzAwLTBDLTk4ICAgKGhleCkJCUxFVEVLIENvbW11bmljYXRpb25zIEluYy4KKzAwMEM5OCAgICAgKGJhc2UgMTYpCQlMRVRFSyBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJVGFleWFuZyBCZC4gMm5kIEZsb29yLCAyNDg2CisJCQkJU29uZ05hbS1Eb25nLCBKdW5nd29uLUt1CisJCQkJU29uZ05hbSBLeXVuZ2dpLWRvIDQ2Mi04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtOTkgICAoaGV4KQkJSElURUwgTElOSyBDby4sTHRkCiswMDBDOTkgICAgIChiYXNlIDE2KQkJSElURUwgTElOSyBDby4sTHRkCisJCQkJU2Ftc3VuZyBPbW5pIFRvd2VyIDR0aCBGbC4sIDM5NS02MgorCQkJCVNoaW5kYWViYW5nLWRvbmcsIERvbmdqYWMta3UsCisJCQkJU2VvdWwgIDE1Ni0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtOUEgICAoaGV4KQkJSGl0ZWNoIEVsZWN0cm9uaWNzIENvcnAuCiswMDBDOUEgICAgIChiYXNlIDE2KQkJSGl0ZWNoIEVsZWN0cm9uaWNzIENvcnAuCisJCQkJNGYsIE5vLiA1MDEtMTUgQ2h1bmctQ2hlbmcgUmQuCisJCQkJU2hpbi10aWVuIFRhaXBlaSBTaGllbiAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLTlCICAgKGhleCkJCUVFIFNvbHV0aW9ucywgSW5jCiswMDBDOUIgICAgIChiYXNlIDE2KQkJRUUgU29sdXRpb25zLCBJbmMKKwkJCQk4RiwgTm8uIDksIFBhcmsgSUkgQXZlLiwgU2NpZW5jZS1CYXNlZCBJCisJCQkJSHNpbiBDaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtOUMgICAoaGV4KQkJQ2hvbmdobyBpbmZvcm1hdGlvbiAmIGNvbW11bmljYXRpb25zCiswMDBDOUMgICAgIChiYXNlIDE2KQkJQ2hvbmdobyBpbmZvcm1hdGlvbiAmIGNvbW11bmljYXRpb25zCisJCQkJQ2hvbmdobyBCbGRnLCAjNy02MSBZYW5namFlLWRvbmcsIFNlb2NobworCQkJCVNlb3VsICAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLTlEICAgKGhleCkJCUFpcldhbGsgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMEM5RCAgICAgKGJhc2UgMTYpCQlBaXJXYWxrIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTg1MCBOLiBHcmVlblZpbGxlIEF2ZS4sIFN1aXRlIDE2NAorCQkJCVJpY2hhcmRzb24gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTlFICAgKGhleCkJCU1lbW9yeUxpbmsgQ29ycC4KKzAwMEM5RSAgICAgKGJhc2UgMTYpCQlNZW1vcnlMaW5rIENvcnAuCisJCQkJMzYgSmV3ZWxlcnMgUGFyayBEcml2ZQorCQkJCVN1aXRlIDIwMAorCQkJCU5lZW5haCBXaXNjb25zaW4gNTQ5NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLTlGICAgKGhleCkJCU5LRSBDb3Jwb3JhdGlvbgorMDAwQzlGICAgICAoYmFzZSAxNikJCU5LRSBDb3Jwb3JhdGlvbgorCQkJCTI3IFp1c2hvIEJhYmEKKwkJCQlOYWdhb2tha3lvLXNoaSBLeW90byA2MTctMDgyOAorCQkJCUpBUEFOCisKKzAwLTBDLUEwICAgKGhleCkJCVN0b3JDYXNlIFRlY2hub2xvZ3ksIEluYy4KKzAwMENBMCAgICAgKGJhc2UgMTYpCQlTdG9yQ2FzZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTc2MDAgTmV3aG9wZSBTdC4KKwkJCQlGb3VudGFpbiBWYWxsZXkgQ0EgOTI3MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUExICAgKGhleCkJCVNJR01BQ09NIENvLiwgTFRELgorMDAwQ0ExICAgICAoYmFzZSAxNikJCVNJR01BQ09NIENvLiwgTFRELgorCQkJCURhY29tQmxkZyA3RiAyMDAtMTIgQW55YW5nLWRvbmcKKwkJCQlNYW5hbi1LdSwgQW55YW5nLWNpdHksIEt5dW5nS2ktRG8sIEtvcmVhCisJCQkJNDMwLTgxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy1BMiAgIChoZXgpCQlTY29wdXMgTmV0d29yayBUZWNobm9sb2dpZXMgTHRkCiswMDBDQTIgICAgIChiYXNlIDE2KQkJU2NvcHVzIE5ldHdvcmsgVGVjaG5vbG9naWVzIEx0ZAorCQkJCTEwIEhhJ2FtYWwgc3QuIFBhcmsgQWZlaworCQkJCVJvc2ggSGEnYXlpbiAgNDgwOTIKKwkJCQlJU1JBRUwKKworMDAtMEMtQTMgICAoaGV4KQkJUmFuY2hvIFRlY2hub2xvZ3ksIEluYy4KKzAwMENBMyAgICAgKGJhc2UgMTYpCQlSYW5jaG8gVGVjaG5vbG9neSwgSW5jLgorCQkJCTEwNzgzIEJlbGwgQ291cnQKKwkJCQlSYW5jaG8gQ3VjYW1vbmdhIENBIDE5NzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1BNCAgIChoZXgpCQlQcm9tcHR0ZWMgUHJvZHVjdCBNYW5hZ2VtZW50IEdtYkgKKzAwMENBNCAgICAgKGJhc2UgMTYpCQlQcm9tcHR0ZWMgUHJvZHVjdCBNYW5hZ2VtZW50IEdtYkgKKwkJCQlNYXJpYXRyb3N0ZXJzdHIuIDQxCisJCQkJR3JheiBBVVNUUklBIEEtODA0MworCQkJCUFVU1RSSUEKKworMDAtMEMtQTUgICAoaGV4KQkJTmFtYW4gTlogTFRkCiswMDBDQTUgICAgIChiYXNlIDE2KQkJTmFtYW4gTlogTFRkCisJCQkJMTMvMTcgS2F3YW5hIFN0CisJCQkJTm9ydGhjb3RlCisJCQkJQXVja2xhbmQgIAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTBDLUE2ICAgKGhleCkJCU1pbnRlcmEgQ29ycG9yYXRpb24KKzAwMENBNiAgICAgKGJhc2UgMTYpCQlNaW50ZXJhIENvcnBvcmF0aW9uCisJCQkJODQ3IFJvZ2VycyBTdHJlZXQKKwkJCQlMb3dlbGwgTUEgMDE4NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUE3ICAgKGhleCkJCU1ldHJvIChTdXpob3UpIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMENBNyAgICAgKGJhc2UgMTYpCQlNZXRybyAoU3V6aG91KSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJTm8uMjIxIFhpbmdoYWkgU3RyZWV0LCBTdXpob3UgSW5kdXN0cmlhbCBQYXJrCisJCQkJU3V6aG91IEppYW5nIFN1IFByb3ZpbmNlIDIxNTAyMQorCQkJCUNISU5BCisKKzAwLTBDLUE4ICAgKGhleCkJCUdhcnVkYSBOZXR3b3JrcyBDb3Jwb3JhdGlvbgorMDAwQ0E4ICAgICAoYmFzZSAxNikJCUdhcnVkYSBOZXR3b3JrcyBDb3Jwb3JhdGlvbgorCQkJCTQ4NDk5IE1pbG1vbnQgRHJpdmUKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1BOSAgIChoZXgpCQlFYnRyb24gSW5jLgorMDAwQ0E5ICAgICAoYmFzZSAxNikJCUVidHJvbiBJbmMuCisJCQkJMTY2MyBId3kgNzAxIFNvdXRoCisJCQkJTG9yaXMgU0MgMjk1NjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUFBICAgKGhleCkJCUN1YmljIFRyYW5zcG9ydGF0aW9uIFN5c3RlbXMgSW5jCiswMDBDQUEgICAgIChiYXNlIDE2KQkJQ3ViaWMgVHJhbnNwb3J0YXRpb24gU3lzdGVtcyBJbmMKKwkJCQkxMzA4IFMuIFdhc2hpbmd0b24gU3RyZWV0CisJCQkJVHVsbGFob21hIFROIDM3Mzg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1BQiAgIChoZXgpCQlDT01NRU5EIEludGVybmF0aW9uYWwKKzAwMENBQiAgICAgKGJhc2UgMTYpCQlDT01NRU5EIEludGVybmF0aW9uYWwKKwkJCQlIb2VsemxzdHJhc3NlIDU2MQorCQkJCVdhbHMgU2FsemJ1cmcgQS01MDcxCisJCQkJQVVTVFJJQQorCiswMC0wQy1BQyAgIChoZXgpCQlDaXRpemVuIFdhdGNoIENvLiwgTHRkLgorMDAwQ0FDICAgICAoYmFzZSAxNikJCUNpdGl6ZW4gV2F0Y2ggQ28uLCBMdGQuCisJCQkJNi0xLTEyLCBUYW5hc2hpLWNobworCQkJCU5pc2hpLVRva3lvLXNoaSBUb2t5byAxODgtODUxMQorCQkJCUpBUEFOCisKKzAwLTBDLUFEICAgKGhleCkJCUJUVSBJbnRlcm5hdGlvbmFsCiswMDBDQUQgICAgIChiYXNlIDE2KQkJQlRVIEludGVybmF0aW9uYWwKKwkJCQkyMyBFc3F1aXJlIFJkCisJCQkJTm9ydGggQmlsbGVyaWNhIE1BIDAxODYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1BRSAgIChoZXgpCQlBaWxvY29tIE95CiswMDBDQUUgICAgIChiYXNlIDE2KQkJQWlsb2NvbSBPeQorCQkJCUhhdGFucGFhbiB2YWx0YXRpZSAyNAorCQkJCUR5bmFtbyBCdXNpbmVzcyBQYXJrCisJCQkJVEFNUEVSRSBGSU4gMzM5NTAKKwkJCQlGSU5MQU5ECisKKzAwLTBDLUFGICAgKGhleCkJCVRSSSBURVJNIENPLixMVEQuCiswMDBDQUYgICAgIChiYXNlIDE2KQkJVFJJIFRFUk0gQ08uLExURC4KKwkJCQkyMS01IEhJUkFJREUgS09VR0lZTyBEQU5DSEkKKwkJCQlVVFNVTk9NSVlBLVNISQorCQkJCVRPQ0hJR0kgIDMyMS0wOTA1CisJCQkJSkFQQU4KKworMDAtMEMtQjAgICAoaGV4KQkJU3RhciBTZW1pY29uZHVjdG9yIENvcnBvcmF0aW9uCiswMDBDQjAgICAgIChiYXNlIDE2KQkJU3RhciBTZW1pY29uZHVjdG9yIENvcnBvcmF0aW9uCisJCQkJNkYsIE5vLjE3LCBMaS1Ic2luIFJkCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1IENpdHkgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEMtQjEgICAoaGV4KQkJU2FsbGFuZCBFbmdpbmVlcmluZyAoRXVyb3BlKSBCVgorMDAwQ0IxICAgICAoYmFzZSAxNikJCVNhbGxhbmQgRW5naW5lZXJpbmcgKEV1cm9wZSkgQlYKKwkJCQlCZWRyaWp2ZW5wYXJrIEJlcmt1bQorCQkJCVNjaHJldmVud2VnIDEyCisJCQkJWndvbGxlIE9WIDgwMjQgSEEKKwkJCQlORVRIRVJMQU5EUworCiswMC0wQy1CMiAgIChoZXgpCQlDb21zdGFyIENvLiwgTHRkLgorMDAwQ0IyICAgICAoYmFzZSAxNikJCUNvbXN0YXIgQ28uLCBMdGQuCisJCQkJNzAxIE1hc2FuIFZhbGxleSAjMTEyMS05CisJCQkJQ2h1bmctcmksIE5hZXNlby1ldXAKKwkJCQlNYXNhbiBHeWVvbmduYW0gNjMwLTcyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy1CMyAgIChoZXgpCQlST1VORCBDby4sTHRkLgorMDAwQ0IzICAgICAoYmFzZSAxNikJCVJPVU5EIENvLixMdGQuCisJCQkJMy05IEdva2FzaG91LVNoaWJhaGlnYXNoaQorCQkJCVVqaSBLeW90byA2MTEtMDAxMQorCQkJCUpBUEFOCisKKzAwLTBDLUI0ICAgKGhleCkJCUF1dG9DZWxsIExhYm9yYXRvcmllcywgSW5jLgorMDAwQ0I0ICAgICAoYmFzZSAxNikJCUF1dG9DZWxsIExhYm9yYXRvcmllcywgSW5jLgorCQkJCTE3NCBDb25jb3JkIFN0cmVldAorCQkJCVN1aXRlIDMxMAorCQkJCVBldGVyYm9yb3VnaCwgTmV3IEhhbXBzaGlyZSAwMzQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtQjUgICAoaGV4KQkJUHJlbWllciBUZWNobm9sZ2llcywgSW5jCiswMDBDQjUgICAgIChiYXNlIDE2KQkJUHJlbWllciBUZWNobm9sZ2llcywgSW5jCisJCQkJUE8gQm94IDE1OQorCQkJCU9uZSBQcmVtaWVyIERyCisJCQkJTG9uZyBMYWtlIE1OIDU1MzU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1CNiAgIChoZXgpCQlOQU5KSU5HIFNFVSBNT0JJTEUgJiBJTlRFUk5FVCBURUNITk9MT0dZIENPLixMVEQKKzAwMENCNiAgICAgKGJhc2UgMTYpCQlOQU5KSU5HIFNFVSBNT0JJTEUgJiBJTlRFUk5FVCBURUNITk9MT0dZIENPLixMVEQKKwkJCQk1dGggZmxvb3IsQnVpbGRpbmcgNSxDaGFuZ0ppYW5nSG91IFN0cmVldCBOby42CisJCQkJTmFuamluZyBKaWFuZ3N1IDIxMDAxOAorCQkJCUNISU5BCisKKzAwLTBDLUI3ICAgKGhleCkJCU5hbmppbmcgSHVhemh1byBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMENCNyAgICAgKGJhc2UgMTYpCQlOYW5qaW5nIEh1YXpodW8gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJTm8uNzcgR2FvaHUgUm9hZAorCQkJCUppYW5nbmluZyBFY29ub21pYyAmIFRlY2hub2xvZ3kgRGV2ZWxvcG0KKwkJCQlOYW5qaW5nIEppYW5nc3UgMjExMTAwCisJCQkJQ0hJTkEKKworMDAtMEMtQjggICAoaGV4KQkJTUVESU9OIEFHCiswMDBDQjggICAgIChiYXNlIDE2KQkJTUVESU9OIEFHCisJCQkJQW0gWmVobnRob2YgNzcKKwkJCQlFc3NlbiBOUlcgNDUzMDcKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLUI5ICAgKGhleCkJCUxFQQorMDAwQ0I5ICAgICAoYmFzZSAxNikJCUxFQQorCQkJCUJhdCBMQSBGQVlFVFRFCisJCQkJMiBwbGFjZSBkZXMgVm9zZ2VzCisJCQkJUGFyaXMgUlAgOTI0MDUxCisJCQkJRlJBTkNFCisKKzAwLTBDLUJBICAgKGhleCkJCUphbWV4LCBJbmMuCiswMDBDQkEgICAgIChiYXNlIDE2KQkJSmFtZXgsIEluYy4KKwkJCQkyNDE1IE4gVHJpcGhhbW1lciBSZAorCQkJCUl0aGFjYSBOWSAxNDg1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtQkIgICAoaGV4KQkJSVNLUkFFTUVDTworMDAwQ0JCICAgICAoYmFzZSAxNikJCUlTS1JBRU1FQ08KKwkJCQlTYXZza2EgbG9rYSA0CisJCQkJS3JhbmogR29yZW5qc2thIDQwMDAKKwkJCQlTTE9WRU5JQQorCiswMC0wQy1CQyAgIChoZXgpCQlJc2N1dHVtCiswMDBDQkMgICAgIChiYXNlIDE2KQkJSXNjdXR1bQorCQkJCSM4OTktNiBIby1HeWUgRG9uZywgRG9uZy1BbiBHdQorCQkJCUFuLVlhbmcgQ2l0eSBLeW9uZy1HaSBEbyA0MzEtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLUJEICAgKGhleCkJCUludGVyZmFjZSBNYXN0ZXJzLCBJbmMKKzAwMENCRCAgICAgKGJhc2UgMTYpCQlJbnRlcmZhY2UgTWFzdGVycywgSW5jCisJCQkJMjM4MSBaYW5rZXIgUmQuLCBTdWl0ZSAxMzAKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1CRSAgIChoZXgpCQlJbm5vbWluYXRlIFNlY3VyaXR5IFRlY2hub2xvZ2llcyBBRworMDAwQ0JFICAgICAoYmFzZSAxNikJCUlubm9taW5hdGUgU2VjdXJpdHkgVGVjaG5vbG9naWVzIEFHCisJCQkJUnVkb3dlciBDaGF1c3NlZSAxMworCQkJCTEyNDg5IEJlcmxpbiAKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLUJGICAgKGhleCkJCUhvbHkgU3RvbmUgRW50LiBDby4sIEx0ZC4KKzAwMENCRiAgICAgKGJhc2UgMTYpCQlIb2x5IFN0b25lIEVudC4gQ28uLCBMdGQuCisJCQkJMUYsIE5vLjYyLCBTZWMuMiwgSHVhbmcgU2hhbiBSZC4sCisJCQkJTmVpIEh1IERpc3QuLCBUYWlwZWksIFRhaXdhbiwgUi5PLkMuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLUMwICAgKGhleCkJCUdlbmVyYSBPeQorMDAwQ0MwICAgICAoYmFzZSAxNikJCUdlbmVyYSBPeQorCQkJCU5paXR0eWxhbnBvbGt1IDE2CisJCQkJQm94IDE2CisJCQkJSGVsc2lua2kgIDAwNjIxCisJCQkJRklOTEFORAorCiswMC0wQy1DMSAgIChoZXgpCQlDb29wZXIgSW5kdXN0cmllcyBJbmMuCiswMDBDQzEgICAgIChiYXNlIDE2KQkJQ29vcGVyIEluZHVzdHJpZXMgSW5jLgorCQkJCTYwMCBUcmF2aXMsIFN1aXRlIDU4MDAKKwkJCQlIb3VzdG9uIFRYIDc3MDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1DMiAgIChoZXgpCQlDb250cm9sTmV0IChJbmRpYSkgUHJpdmF0ZSBMaW1pdGVkCiswMDBDQzIgICAgIChiYXNlIDE2KQkJQ29udHJvbE5ldCAoSW5kaWEpIFByaXZhdGUgTGltaXRlZAorCQkJCUwtNDQsIFVuaXQgLSBJCisJCQkJVmVybmEgSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlWZXJuYSwgU2FsY2V0ZSBHb2EgNDAzIDcyMgorCQkJCUlORElBCisKKzAwLTBDLUMzICAgKGhleCkJCUJlV0FOIHN5c3RlbXMKKzAwMENDMyAgICAgKGJhc2UgMTYpCQlCZVdBTiBzeXN0ZW1zCisJCQkJMTYgcnVlIGR1IE1vdWxpbiBkZXMgQnJ1ecOocmVzCisJCQkJQ291cmJldm9pZSBIYXV0cyBkZSBTZWluZSA5MjQwMAorCQkJCUZSQU5DRQorCiswMC0wQy1DNCAgIChoZXgpCQlUaXB0ZWwgQUcKKzAwMENDNCAgICAgKGJhc2UgMTYpCQlUaXB0ZWwgQUcKKwkJCQlIYWxza2VzdHJhc3NlIDEKKwkJCQlSYXRpbmdlbiBOUlcgNDA4ODAKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLUM1ICAgKGhleCkJCU5leHRsaW5rIENvLiwgTHRkLgorMDAwQ0M1ICAgICAoYmFzZSAxNikJCU5leHRsaW5rIENvLiwgTHRkLgorCQkJCUMgNjA1LCBUZWNobm9wYXJrICMxNDUgWWF0b3AtZG9uZywKKwkJCQlTZW9uZ25hbS1zaSBCdW5kYW5nLWd1LCBHeWVvbmdnaSA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLUM2ICAgKGhleCkJCUthLVJvIGVsZWN0cm9uaWNzIEdtYkgKKzAwMENDNiAgICAgKGJhc2UgMTYpCQlLYS1SbyBlbGVjdHJvbmljcyBHbWJICisJCQkJUGFzY2Fsc3RyYcODxbhlIDIyCisJCQkJQWFjaGVuIE5XIDUyMDc2CisJCQkJR0VSTUFOWQorCiswMC0wQy1DNyAgIChoZXgpCQlJbnRlbGxpZ2VudCBDb21wdXRlciBTb2x1dGlvbnMgSW5jLgorMDAwQ0M3ICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IENvbXB1dGVyIFNvbHV0aW9ucyBJbmMuCisJCQkJOTM1MCBFdG9uIFN0LgorCQkJCUNoYXRzd29ydGggQ0EgOTEzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUM4ICAgKGhleCkJCVh5dHJvbml4IFJlc2VhcmNoICYgRGVzaWduLCBJbmMuCiswMDBDQzggICAgIChiYXNlIDE2KQkJWHl0cm9uaXggUmVzZWFyY2ggJiBEZXNpZ24sIEluYy4KKwkJCQkxNDg4IEVhc3QgMjMwMCBOb3J0aAorCQkJCU5vcnRoIExvZ2FuIFVUIDg0MzQxLTE2MjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUM5ICAgKGhleCkJCUlMV09PIERBVEEgJiBURUNITk9MT0dZIENPLixMVEQKKzAwMENDOSAgICAgKGJhc2UgMTYpCQlJTFdPTyBEQVRBICYgVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJMTQ3NS0xMCxIV0EgSFlVTiBCTEQuIDJuZCBGbG9vciwKKwkJCQlTRU9DSE8tRE9ORyxTRU9DSE8tR1UsCisJCQkJU0VPVUwgIDEzNy0wNzEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEMtQ0EgICAoaGV4KQkJSGl0YWNoaSBHbG9iYWwgU3RvcmFnZSBUZWNobm9sb2dpZXMKKzAwMENDQSAgICAgKGJhc2UgMTYpCQlIaXRhY2hpIEdsb2JhbCBTdG9yYWdlIFRlY2hub2xvZ2llcworCQkJCTU2MDAgQ290dGxlIFJkLgorCQkJCVNhbiBKb3NlIENBIDk1MTkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1DQiAgIChoZXgpCQlEZXNpZ24gQ29tYnVzIEx0ZAorMDAwQ0NCICAgICAoYmFzZSAxNikJCURlc2lnbiBDb21idXMgTHRkCisJCQkJSGF0YW5hcGFhbiB2YWx0YXRpZSAzNEEKKwkJCQlUYW1wZXJlICBGSU4tMzMxMDAKKwkJCQlGSU5MQU5ECisKKzAwLTBDLUNDICAgKGhleCkJCUFlcm9zY291dCBMdGQuCiswMDBDQ0MgICAgIChiYXNlIDE2KQkJQWVyb3Njb3V0IEx0ZC4KKwkJCQkzIFBla2VyaXMgU3QuCisJCQkJUGFyayBUYW1hcgorCQkJCVJlaG92b3QgIDc2NzAxCisJCQkJSVNSQUVMCisKKzAwLTBDLUNEICAgKGhleCkJCUlFQyAtIFRDNTcKKzAwMENDRCAgICAgKGJhc2UgMTYpCQlJRUMgLSBUQzU3CisJCQkJMywgcnVlIGRlIFZhcmVtYsOpCisJCQkJUC5PLiBCb3ggMTMxCisJCQkJR2VuZXZhIEdFIDEyMTEKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wQy1DRSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBDQ0UgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1DRiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBDQ0YgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1EMCAgIChoZXgpCQlTeW1ldHJpeAorMDAwQ0QwICAgICAoYmFzZSAxNikJCVN5bWV0cml4CisJCQkJNjQwOCAyMTZ0aCBTdCBTVworCQkJCU1vdW50bGFrZSBUZXJyYWNlIFdBIDk4MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1EMSAgIChoZXgpCQlTRk9NIFRlY2hub2xvZ3kgQ29ycC4KKzAwMENEMSAgICAgKGJhc2UgMTYpCQlTRk9NIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQlOby4xOCwgTGFuZSAzMiwgV3VmdSAxc3QgUmQuLCBMdWp1IHNoaWFuCisJCQkJTHVqdSBTaGlhbmcgVGF1eXVhbiBDb3VudHkgMzM4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wQy1EMiAgIChoZXgpCQlTY2hhZmZuZXIgRU1WIEFHCiswMDBDRDIgICAgIChiYXNlIDE2KQkJU2NoYWZmbmVyIEVNViBBRworCQkJCU5vcmRzdHJhc3NlIDEKKwkJCQlMdXRlcmJhY2ggIENILTQ1NDIKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wQy1EMyAgIChoZXgpCQlQcmV0dGwgRWxla3Ryb25payBSYWRlYmVyZyBHbWJICiswMDBDRDMgICAgIChiYXNlIDE2KQkJUHJldHRsIEVsZWt0cm9uaWsgUmFkZWJlcmcgR21iSAorCQkJCVJvYmVydC1Cb3NjaC1TdHIuIDEwCisJCQkJUmFkZWJlcmcgU2F4b255IEQtMDE0NTQKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLUQ0ICAgKGhleCkJCVBvc2l0cm9uIFB1YmxpYyBTYWZldHkgU3lzdGVtcyBpbmMuCiswMDBDRDQgICAgIChiYXNlIDE2KQkJUG9zaXRyb24gUHVibGljIFNhZmV0eSBTeXN0ZW1zIGluYy4KKwkJCQk1MTAxIEJ1Y2hhbgorCQkJCU1vbnRyZWFsIFF1ZWJlYyBINFAgMlI5CisJCQkJQ0FOQURBCisKKzAwLTBDLUQ1ICAgKGhleCkJCVBhc3NhdmUgSW5jLgorMDAwQ0Q1ICAgICAoYmFzZSAxNikJCVBhc3NhdmUgSW5jLgorCQkJCTE1NTcgSmFzcGVyIERyLgorCQkJCVN1bm55dmFsZSBDQSA5NDA4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtRDYgICAoaGV4KQkJUEFSVE5FUiBURUNICiswMDBDRDYgICAgIChiYXNlIDE2KQkJUEFSVE5FUiBURUNICisJCQkJMTBGLCBOTy4yMzMtMixQQU8gQ0hJQU8gUk9BRCwgU0hJTiBUSUVOCisJCQkJVEFJUEVJICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLUQ3ICAgKGhleCkJCU5hbGxhdGVjaCBMdGQKKzAwMENENyAgICAgKGJhc2UgMTYpCQlOYWxsYXRlY2ggTHRkCisJCQkJQm9vbGVhbiBIb3VzZQorCQkJCTEgTmFwaWVyIFBhcmssIEN1bWJlcm5hdWxkCisJCQkJR2xhc2dvdyBTY290bGFuZCBHNjggMEJICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEMtRDggICAoaGV4KQkJTS4gSy4gSnVjaGhlaW0gR21iSCAmIENvCiswMDBDRDggICAgIChiYXNlIDE2KQkJTS4gSy4gSnVjaGhlaW0gR21iSCAmIENvCisJCQkJTW9sdGtlc3RyLiAxMyAtIDMxCisJCQkJRnVsZGEgSGVzc2VuIDM2MDM5CisJCQkJR0VSTUFOWQorCiswMC0wQy1EOSAgIChoZXgpCQlJdGNhcmUgQ28uLCBMdGQKKzAwMENEOSAgICAgKGJhc2UgMTYpCQlJdGNhcmUgQ28uLCBMdGQKKwkJCQk0MDggS1QgU2VvY2hvLCAxMDAxLTEgQmFuZ2JhZS1kb25nLAorCQkJCVNlb2Noby1rdQorCQkJCVNlb3VsICAxMzctODUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLURBICAgKGhleCkJCUZyZWVIYW5kIFN5c3RlbXMsIEluYy4KKzAwMENEQSAgICAgKGJhc2UgMTYpCQlGcmVlSGFuZCBTeXN0ZW1zLCBJbmMuCisJCQkJOTUgRmlyc3QgU3QuCisJCQkJU3VpdGUgMjAwCisJCQkJTG9zIEFsdG9zIENBIDk0MDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1EQiAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworMDAwQ0RCICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCisJCQkJMTc0NSBUZWNobm9sb2d5IERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLURDICAgKGhleCkJCUJFQ1MgVGVjaG5vbG9neSwgSW5jCiswMDBDREMgICAgIChiYXNlIDE2KQkJQkVDUyBUZWNobm9sb2d5LCBJbmMKKwkJCQk5NDg3IERpZWxtYW4gUm9jayBJc2xhbmQgSW5kdXN0cmlhbCBEcml2CisJCQkJU3QuIExvdWlzIE1PIDYzMTMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1ERCAgIChoZXgpCQlBT1MgVGVjaG5vbG9naWVzIEFHCiswMDBDREQgICAgIChiYXNlIDE2KQkJQU9TIFRlY2hub2xvZ2llcyBBRworCQkJCVRhZWZlcm5zdHJhc3NlIDIwCisJCQkJQmFkZW4gLSBEYWV0dHdpbCBBRyBDSC01NDA1CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEMtREUgICAoaGV4KQkJQUJCIFNUT1RaLUtPTlRBS1QgR21iSAorMDAwQ0RFICAgICAoYmFzZSAxNikJCUFCQiBTVE9UWi1LT05UQUtUIEdtYkgKKwkJCQlFcHBlbGhlaW1lciBTdHIuIDgyCisJCQkJSGVpZGVsYmVyZyBCYWRlbi1Xw7xydHRlbWJlcmcgNjkxMjMKKwkJCQlHRVJNQU5ZCisKKzAwLTBDLURGICAgKGhleCkJCVBVTE5pWCBBbWVyaWNhLCBJbmMKKzAwMENERiAgICAgKGJhc2UgMTYpCQlQVUxOaVggQW1lcmljYSwgSW5jCisJCQkJMTMzMCBPcmxlYW5zIERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FMCAgIChoZXgpCQlUcmVrIERpYWdub3N0aWNzIEluYy4KKzAwMENFMCAgICAgKGJhc2UgMTYpCQlUcmVrIERpYWdub3N0aWNzIEluYy4KKwkJCQk5ODIgS2V5bm90ZSBDaXJjbGUKKwkJCQlTdWl0ZSA2CisJCQkJQ2xldmVsYW5kIE9oaW8gNDQxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUUxICAgKGhleCkJCVRoZSBPcGVuIEdyb3VwCiswMDBDRTEgICAgIChiYXNlIDE2KQkJVGhlIE9wZW4gR3JvdXAKKwkJCQlBcGV4IFBsYXphCisJCQkJRm9yYnVyeSBSb2FkCisJCQkJUmVhZGluZyBCZXJrcyBSRzEgMUFYCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEMtRTIgICAoaGV4KQkJUm9sbHMtUm95Y2UKKzAwMENFMiAgICAgKGJhc2UgMTYpCQlSb2xscy1Sb3ljZQorCQkJCTEwNSBOLiBTYW5kdXNreSBTdC4KKwkJCQlNdC4gVmVybm9uIE9oaW8gNDMwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUUzICAgKGhleCkJCU9wdGlvbiBJbnRlcm5hdGlvbmFsIE4uVi4KKzAwMENFMyAgICAgKGJhc2UgMTYpCQlPcHRpb24gSW50ZXJuYXRpb25hbCBOLlYuCisJCQkJS29sb25lbCBCZWdhdWx0bGFhbiA0NQorCQkJCUxldXZlbiBCcmFiYW50IDMwMTIKKwkJCQlCRUxHSVVNCisKKzAwLTBDLUU0ICAgKGhleCkJCU5ldXJvQ29tIEludGVybmF0aW9uYWwsIEluYy4KKzAwMENFNCAgICAgKGJhc2UgMTYpCQlOZXVyb0NvbSBJbnRlcm5hdGlvbmFsLCBJbmMuCisJCQkJOTU3MCBTRSBMYXduZmllbGQgUmQKKwkJCQlDbGFja2FtYXMgT1IgOTcwMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUU1ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDBDRTUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FNiAgIChoZXgpCQlNZXJ1IE5ldHdvcmtzIEluYworMDAwQ0U2ICAgICAoYmFzZSAxNikJCU1lcnUgTmV0d29ya3MgSW5jCisJCQkJMTMwOSBTb3V0aCBNYXJ5IEF2ZW51ZSwKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUU3ICAgKGhleCkJCU1lZGlhVGVrIEluYy4KKzAwMENFNyAgICAgKGJhc2UgMTYpCQlNZWRpYVRlayBJbmMuCisJCQkJMUYsIE5vLiAxMywgSW5ub3ZhdGlvbiBSb2FkIDEsCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBDLUU4ICAgKGhleCkJCUd1YW5nWmhvdSBBbkp1QmFvIENvLiwgTHRkCiswMDBDRTggICAgIChiYXNlIDE2KQkJR3VhbmdaaG91IEFuSnVCYW8gQ28uLCBMdGQKKwkJCQlIZWlRaWFvVGFuZyBUYW5nWGlhIFRpYW5IZQorCQkJCUd1YW5nWmhvdSBHdWFuZ0RvbmcgNTEwNjY1CisJCQkJQ0hJTkEKKworMDAtMEMtRTkgICAoaGV4KQkJQkxPT01CRVJHIEwuUC4KKzAwMENFOSAgICAgKGJhc2UgMTYpCQlCTE9PTUJFUkcgTC5QLgorCQkJCTczMSBMZXhpbmd0b24gQXZlCisJCQkJTkVXIFlPUksgTkVXIFlPUksgMTAwMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUVBICAgKGhleCkJCWFwaG9uYSBLb21tdW5pa2F0aW9uc3N5c3RlbWUKKzAwMENFQSAgICAgKGJhc2UgMTYpCQlhcGhvbmEgS29tbXVuaWthdGlvbnNzeXN0ZW1lCisJCQkJRW50d2lja2x1bmdzLSB1bmQgVmVydHJpZWJzZ21iSAorCQkJCURldXRzY2hzdHJhw4PFuGUgNAorCQkJCVdpZW4gIDEyMzAKKwkJCQlBVVNUUklBCisKKzAwLTBDLUVCICAgKGhleCkJCUNOTVAgTmV0d29ya3MsIEluYy4KKzAwMENFQiAgICAgKGJhc2UgMTYpCQlDTk1QIE5ldHdvcmtzLCBJbmMuCisJCQkJMTI0NSBTLiBXaW5jaGVzdGVyIEJsdmQuCisJCQkJU3VpdGUgMjA4CisJCQkJU2FuIEpvc2UgQ0EgOTUxMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUVDICAgKGhleCkJCVNwZWN0cmFjb20gQ29ycC4KKzAwMENFQyAgICAgKGJhc2UgMTYpCQlTcGVjdHJhY29tIENvcnAuCisJCQkJOTUgTWV0aG9kaXN0IEhpbGwgRHJpdmUKKwkJCQlTdWl0ZSA1MDAKKwkJCQlSb2NoZXN0ZXIgTlkgMTQ2MjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUVEICAgKGhleCkJCVJlYWwgRGlnaXRhbCBNZWRpYQorMDAwQ0VEICAgICAoYmFzZSAxNikJCVJlYWwgRGlnaXRhbCBNZWRpYQorCQkJCTQ4NSBOb3J0aCBLZWxsZXIgUm9hZAorCQkJCVN1aXRlIDE0MAorCQkJCU1haXRsYW5kIEZMIDMyNzUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1FRSAgIChoZXgpCQlqcC1lbWJlZGRlZAorMDAwQ0VFICAgICAoYmFzZSAxNikJCWpwLWVtYmVkZGVkCisJCQkJQnVlbiAyMSwgTnIuIERhbGJ5CisJCQkJQm9ydXAgIDQxNDAKKwkJCQlERU5NQVJLCisKKzAwLTBDLUVGICAgKGhleCkJCU9wZW4gTmV0d29ya3MgRW5naW5lZXJpbmcgTHRkCiswMDBDRUYgICAgIChiYXNlIDE2KQkJT3BlbiBOZXR3b3JrcyBFbmdpbmVlcmluZyBMdGQKKwkJCQlDbGFzc2ljIEhvdXNlCisJCQkJUmF5bmhhbSBSb2FkCisJCQkJQmlzaG9wJ3MgU3RvcnRmb3JkIEhlcnRmb3Jkc2hpcmUgQ00yMyA1UEQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wQy1GMCAgIChoZXgpCQlNICYgTiBHbWJICiswMDBDRjAgICAgIChiYXNlIDE2KQkJTSAmIE4gR21iSAorCQkJCURpZXNlbHN0ciAxOAorCQkJCVJvc2JhY2ggdi5kLkguIEhlc3NlbiA2MTE5MQorCQkJCUdFUk1BTlkKKworMDAtMEMtRjEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzAwMENGMSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCU1TOiBKRjMtNDIwCisJCQkJMjExMSBORSAyNXRoIEF2ZW51ZQorCQkJCUhpbGxzYm9ybyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEMtRjIgICAoaGV4KQkJR0FNRVNBIEXDg+KAnExJQ0EKKzAwMENGMiAgICAgKGJhc2UgMTYpCQlHQU1FU0EgRcOD4oCcTElDQQorCQkJCVBvbMODwq1nb25vIEFndXN0aW5vcyBzL24KKwkJCQlQYW1wbG9uYSBOQVZBUlJBIDMxMDEzCisJCQkJU1BBSU4KKworMDAtMEMtRjMgICAoaGV4KQkJQ0FMTCBJTUFHRSBTQQorMDAwQ0YzICAgICAoYmFzZSAxNikJCUNBTEwgSU1BR0UgU0EKKwkJCQk4NjcgUm91dGUgSW1wZXJpYWxlCisJCQkJQkFJTExBUkdVRVMgIDM0NjcwCisJCQkJRlJBTkNFCisKKzAwLTBDLUY0ICAgKGhleCkJCUFLQVRTVUtJIEVMRUNUUklDIE1GRy5DTy4sTFRELgorMDAwQ0Y0ICAgICAoYmFzZSAxNikJCUFLQVRTVUtJIEVMRUNUUklDIE1GRy5DTy4sTFRELgorCQkJCTU5My0xLGFvamnCrSBjaG8KKwkJCQlrdXNhdHN1wq0gc2hpIHNoaWdhIDUyNS0wMDQxCisJCQkJSkFQQU4KKworMDAtMEMtRjUgICAoaGV4KQkJSW5mb0V4cHJlc3MKKzAwMENGNSAgICAgKGJhc2UgMTYpCQlJbmZvRXhwcmVzcworCQkJCTE3MCBTLiBXaGlzbWFuIFJvYWQsIFN1aXRlIEIKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wQy1GNiAgIChoZXgpCQlTaXRlY29tIEV1cm9wZSBCVgorMDAwQ0Y2ICAgICAoYmFzZSAxNikJCVNpdGVjb20gRXVyb3BlIEJWCisJCQkJU2V2aWxsYXdlZyAxMjIKKwkJCQlSb3R0ZXJkYW0gWkggMzA0NyBBTAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBDLUY3ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwQ0Y3ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUmQuCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTBDLUY4ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwQ0Y4ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJMDM2IENDIDEwMQorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0wQy1GOSAgIChoZXgpCQlJVFQgRmx5Z3QgQUIKKzAwMENGOSAgICAgKGJhc2UgMTYpCQlJVFQgRmx5Z3QgQUIKKwkJCQlQTyBCb3ggMjA1OAorCQkJCUluZHVzdHJpZ2F0YW4gNTAKKwkJCQlLcmlzdGlhbnN0YWQgIDI5MSAwMgorCQkJCVNXRURFTgorCiswMC0wQy1GQSAgIChoZXgpCQlEaWdpdGFsIFN5c3RlbXMgQ29ycAorMDAwQ0ZBICAgICAoYmFzZSAxNikJCURpZ2l0YWwgU3lzdGVtcyBDb3JwCisJCQkJMyBOb3J0aCBNYWluIFN0cmVldAorCQkJCVBPIEJveCAxNTgKKwkJCQlXYWxrZXJzdmlsbGUgTWFyeWxhbmQgMjE3OTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBDLUZCICAgKGhleCkJCUtvcmVhIE5ldHdvcmsgU3lzdGVtcworMDAwQ0ZCICAgICAoYmFzZSAxNikJCUtvcmVhIE5ldHdvcmsgU3lzdGVtcworCQkJCTIwNiAgSmFuZ1lvdW5nU2lsIEJsZGcsIDE2ODgtNQorCQkJCVNoaW5pbC1Eb25nLCBUYWVkZW9rLUd1CisJCQkJVGFlamVvbiAgMzA2LTIzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wQy1GQyAgIChoZXgpCQlTMmlvIFRlY2hub2xvZ2llcyBDb3JwCiswMDBDRkMgICAgIChiYXNlIDE2KQkJUzJpbyBUZWNobm9sb2dpZXMgQ29ycAorCQkJCTUwNSBNYXJjaCBSZAorCQkJCVN1aXRlIDEyMAorCQkJCU90dGF3YSBPbnRhcmlvIEsySyAyTTUKKwkJCQlDQU5BREEKKworMDAtMEMtRkQgICAoaGV4KQkJSHl1bmRhaSBJbWFnZVF1ZXN0IENvLixMdGQuCiswMDBDRkQgICAgIChiYXNlIDE2KQkJSHl1bmRhaSBJbWFnZVF1ZXN0IENvLixMdGQuCisJCQkJU2FuIDEzNi0xLCBBbWktcmksIEJ1YmFsLWV1YgorCQkJCUljaG9uLXNpIEt5b3VuZyBraS1kbyA0NjctNzAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBDLUZFICAgKGhleCkJCUdyYW5kIEVsZWN0cm9uaWMgQ28uLCBMdGQKKzAwMENGRSAgICAgKGJhc2UgMTYpCQlHcmFuZCBFbGVjdHJvbmljIENvLiwgTHRkCisJCQkJUm9vbSAxNzEwLCBCbG9jayBCIEx1Y2t5IHRvd2VyLCBOby4zIERvbgorCQkJCUJlaWppbmcgIDEwMDAyNworCQkJCUNISU5BCisKKzAwLTBDLUZGICAgKGhleCkJCU1STy1URUsgTElNSVRFRAorMDAwQ0ZGICAgICAoYmFzZSAxNikJCU1STy1URUsgTElNSVRFRAorCQkJCTE0LCAxU1QgRCBNQUlOIFJPQUQsCisJCQkJR0FOR0EgTkFHQVIKKwkJCQlCQU5HQUxPUkUgS0FSTkFUQUtBIDU2MDAzMgorCQkJCUlORElBCisKKzAwLTBELTAwICAgKGhleCkJCVNlYXdheSBOZXR3b3JrcyBJbmMuCiswMDBEMDAgICAgIChiYXNlIDE2KQkJU2Vhd2F5IE5ldHdvcmtzIEluYy4KKwkJCQkxIENocnlzYWxpcyBXYXkKKwkJCQlPdHRhd2EgT250YXJpbyBLMkcgNlA5CisJCQkJQ0FOQURBCisKKzAwLTBELTAxICAgKGhleCkJCVAmRSBNaWNyb2NvbXB1dGVyIFN5c3RlbXMsIEluYy4KKzAwMEQwMSAgICAgKGJhc2UgMTYpCQlQJkUgTWljcm9jb21wdXRlciBTeXN0ZW1zLCBJbmMuCisJCQkJNzEwIENvbW1vbndlYWx0aCBBdmUKKwkJCQlCb3N0b24gTWEgMDIyMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTAyICAgKGhleCkJCU5FQyBBY2Nlc3NUZWNobmljYSwgTHRkLgorMDAwRDAyICAgICAoYmFzZSAxNikJCU5FQyBBY2Nlc3NUZWNobmljYSwgTHRkLgorCQkJCTgwMCBTaGltb21hdGEKKwkJCQlLYWtlZ2F3YSBTaGl6dW9rYSA0MzYtODUwMQorCQkJCUpBUEFOCisKKzAwLTBELTAzICAgKGhleCkJCU1hdHJpY3MsIEluYy4KKzAwMEQwMyAgICAgKGJhc2UgMTYpCQlNYXRyaWNzLCBJbmMuCisJCQkJODg1MCBTdGFuZm9yZCBCbHZkCisJCQkJU3VpdGUgMzAwMAorCQkJCUNvbHVtYmlhIE1EIDIxMDQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0wNCAgIChoZXgpCQlGb3hib3JvIEVja2FyZHQgRGV2ZWxvcG1lbnQgR21iSAorMDAwRDA0ICAgICAoYmFzZSAxNikJCUZveGJvcm8gRWNrYXJkdCBEZXZlbG9wbWVudCBHbWJICisJCQkJR2xvY2tlbnN0cmFzc2UgNTIKKwkJCQlTdHV0dGdhcnQgQmFkZW4tV8O8cnR0ZW1iZXJnIDcwMzc2CisJCQkJR0VSTUFOWQorCiswMC0wRC0wNSAgIChoZXgpCQljeWJlcm5ldCBtYW51ZmFjdHVyaW5nIGluYy4KKzAwMEQwNSAgICAgKGJhc2UgMTYpCQljeWJlcm5ldCBtYW51ZmFjdHVyaW5nIGluYy4KKwkJCQk1MDAxIEJpcmNoIFN0cmVldAorCQkJCU5ld3BvcnQgQmVhY2ggY2EgOTI2NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTA2ICAgKGhleCkJCUNvbXB1bG9naWMgTGltaXRlZAorMDAwRDA2ICAgICAoYmFzZSAxNikJCUNvbXB1bG9naWMgTGltaXRlZAorCQkJCVVuaXQgVzMsIE1LIFRXTyBCdXNpbmVzcyBDZW50cmUKKwkJCQlCYXJ0b24gUm9hZAorCQkJCVdhdGVyIEVhdG9uIE1pbHRvbiBLZXluZXMgTUsyIDNIVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBELTA3ICAgKGhleCkJCUNhbHJlYyBBdWRpbyBMdGQKKzAwMEQwNyAgICAgKGJhc2UgMTYpCQlDYWxyZWMgQXVkaW8gTHRkCisJCQkJTnV0Y2xvdWdoIE1pbGwKKwkJCQlIZWJkZW4gQnJpZGdlIFdlc3QgWW9ya3NoaXJlIEhYNyA4RVoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC0wOCAgIChoZXgpCQlBYm92ZUNhYmxlLCBJbmMuCiswMDBEMDggICAgIChiYXNlIDE2KQkJQWJvdmVDYWJsZSwgSW5jLgorCQkJCTg0MDMgQ29sZXN2aWxsZSBSb2FkLCAjODI1CisJCQkJU2lsdmVyIFNwcmluZyBNRCAyMDkxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMDkgICAoaGV4KQkJWXVlaHVhKFpodWhhaSkgRWxlY3Ryb25pYyBDTy4gTFRECiswMDBEMDkgICAgIChiYXNlIDE2KQkJWXVlaHVhKFpodWhhaSkgRWxlY3Ryb25pYyBDTy4gTFRECisJCQkJNFJkIFBpbmdkb25nLE5hbnBpbmcgU2NpZW5jZSAmIFRlY2hub2xvZworCQkJCVpodWhhaSBHdWFuZ2RvbmcgNTE5MDcwCisJCQkJQ0hJTkEKKworMDAtMEQtMEEgICAoaGV4KQkJUHJvamVjdGlvbmRlc2lnbiBhcworMDAwRDBBICAgICAoYmFzZSAxNikJCVByb2plY3Rpb25kZXNpZ24gYXMKKwkJCQlIYWJvcm52ZWllbiA1MworCQkJCUdhbWxlIEZyZWRyaWtzdGFkIE4tMTYzMAorCQkJCU5PUldBWQorCiswMC0wRC0wQiAgIChoZXgpCQlCdWZmYWxvIEluYy4KKzAwMEQwQiAgICAgKGJhc2UgMTYpCQlCdWZmYWxvIEluYy4KKwkJCQlNRUxDTyBISS1URUNIIENFTlRFUiwKKwkJCQlTSElCQVRBIEhPTkRPUkkgNC0xNSBNSU5BTUktS1UsCisJCQkJTkFHT1lBICA0NTctODUyMAorCQkJCUpBUEFOCisKKzAwLTBELTBDICAgKGhleCkJCU1ESSBTZWN1cml0eSBTeXN0ZW1zCiswMDBEMEMgICAgIChiYXNlIDE2KQkJTURJIFNlY3VyaXR5IFN5c3RlbXMKKwkJCQk5NTE4IE5pbnRoIFN0cmVldAorCQkJCVJhbmNobyBDdWNhbW9uZ2EgQ0EgOTE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTBEICAgKGhleCkJCUlUU3VwcG9ydGVkLCBMTEMKKzAwMEQwRCAgICAgKGJhc2UgMTYpCQlJVFN1cHBvcnRlZCwgTExDCisJCQkJNDk4OSBQZWFjaHRyZWUgUGFya3dheQorCQkJCVNURSAyMDAKKwkJCQlOb3Jjcm9zcyBHQSAzMDA5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMEUgICAoaGV4KQkJSW5xbmV0IFN5c3RlbXMsIEluYy4KKzAwMEQwRSAgICAgKGJhc2UgMTYpCQlJbnFuZXQgU3lzdGVtcywgSW5jLgorCQkJCTMyMSBOS0lDIENlbnRlcgorCQkJCTQ4LTg0IEhvbmdldW4tZG9uZywgU2VvZGFlbXVuLWt1CisJCQkJU2VvdWwgIDEyMC0xMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEQtMEYgICAoaGV4KQkJRmlubHV4IEx0ZAorMDAwRDBGICAgICAoYmFzZSAxNikJCUZpbmx1eCBMdGQKKwkJCQlSYWRpb21pZWhlbmthdHUgMworCQkJCVR1cmt1ICBGSU4tMjAzMjEKKwkJCQlGSU5MQU5ECisKKzAwLTBELTEwICAgKGhleCkJCUVtYmVkdHJvbmljcyBPeQorMDAwRDEwICAgICAoYmFzZSAxNikJCUVtYmVkdHJvbmljcyBPeQorCQkJCVVua2FyaW5wb2xrdSAyMAorCQkJCUt1b3BpbyAgNzA4MjAKKwkJCQlGSU5MQU5ECisKKzAwLTBELTExICAgKGhleCkJCURFTlRTUExZIC0gR2VuZGV4CiswMDBEMTEgICAgIChiYXNlIDE2KQkJREVOVFNQTFkgLSBHZW5kZXgKKwkJCQk5MDEgV2VzdCBPYWt0b24gU3RyZWV0CisJCQkJRGVzIFBsYWluZXMgSUwgNjAwMTgtMTg4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMTIgICAoaGV4KQkJQVhFTEwgQ29ycG9yYXRpb24KKzAwMEQxMiAgICAgKGJhc2UgMTYpCQlBWEVMTCBDb3Jwb3JhdGlvbgorCQkJCUFraWhhYmFyYSBVRFggU291dGggV2luZyAxMEYKKwkJCQk0LTE0LTEgU290b2thbmRhCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtODk3MworCQkJCUpBUEFOCisKKzAwLTBELTEzICAgKGhleCkJCVdpbGhlbG0gUnV0ZW5iZWNrIEdtYkgmQ28uCiswMDBEMTMgICAgIChiYXNlIDE2KQkJV2lsaGVsbSBSdXRlbmJlY2sgR21iSCZDby4KKwkJCQlOaWVkZXJ3b3J0aCAxLTEwCisJCQkJU2NoYWxrc23DvGhsZSBOUlcgNTg1NzkKKwkJCQlHRVJNQU5ZCisKKzAwLTBELTE0ICAgKGhleCkJCVZ0ZWNoIElubm92YXRpb24gTFAgZGJhIEFkdmFuY2VkIEFtZXJpY2FuIFRlbGVwaG9uZXMKKzAwMEQxNCAgICAgKGJhc2UgMTYpCQlWdGVjaCBJbm5vdmF0aW9uIExQIGRiYSBBZHZhbmNlZCBBbWVyaWNhbiBUZWxlcGhvbmVzCisJCQkJMjAzLTYwMCBQYXJzaXBwYW55IFJkCisJCQkJUGFyc2lwcGFueSBOSiAwNzA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMTUgICAoaGV4KQkJVm9pcGFjIHMuci5vLgorMDAwRDE1ICAgICAoYmFzZSAxNikJCVZvaXBhYyBzLnIuby4KKwkJCQlVbC4gSmFua2EgS3JhbGEgMworCQkJCVRyZW5jaW4gIDkxMSAwMQorCQkJCVNMT1ZBS0lBCisKKzAwLTBELTE2ICAgKGhleCkJCVVIUyBTeXN0ZW1zIFB0eSBMdGQKKzAwMEQxNiAgICAgKGJhc2UgMTYpCQlVSFMgU3lzdGVtcyBQdHkgTHRkCisJCQkJUE8gQm94IDYyNjQKKwkJCQlTb3V0aCBTeWRuZXkgQnVzaW5lc3MgSHViCisJCQkJQWxleGFuZHJpYSBOU1cgMjAxNQorCQkJCUFVU1RSQUxJQQorCiswMC0wRC0xNyAgIChoZXgpCQlUdXJibyBOZXR3b3JrcyBDby5MdGQKKzAwMEQxNyAgICAgKGJhc2UgMTYpCQlUdXJibyBOZXR3b3JrcyBDby5MdGQKKwkJCQkyRixObyAxMjIzLCBDaHVuZyBDaGVuZyBSZC4KKwkJCQlUYW8gWXVhbiAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC0xOCAgIChoZXgpCQlNZWdhLVRyZW5kIEVsZWN0cm9uaWNzIENPLiwgTFRELgorMDAwRDE4ICAgICAoYmFzZSAxNikJCU1lZ2EtVHJlbmQgRWxlY3Ryb25pY3MgQ08uLCBMVEQuCisJCQkJVG9uZyBGdSBZdSBJbmQuLCBLdSBLZW5nIFZpbGxhZ2UsIEd1YW4gTGFuCisJCQkJU2hlbmd6aGVuIEd1YW5nIERvbmcgNTE4MTEwCisJCQkJQ0hJTkEKKworMDAtMEQtMTkgICAoaGV4KQkJUk9CRSBTaG93IGxpZ2h0aW5nCiswMDBEMTkgICAgIChiYXNlIDE2KQkJUk9CRSBTaG93IGxpZ2h0aW5nCisJCQkJSGF6b3ZpY2UgMjA5MAorCQkJCVJvem5vdiBwb2QgUmFkaG9zdGVtICA3NTYgNjEKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0wRC0xQSAgIChoZXgpCQlNdXN0ZWsgU3lzdGVtIEluYy4KKzAwMEQxQSAgICAgKGJhc2UgMTYpCQlNdXN0ZWsgU3lzdGVtIEluYy4KKwkJCQlOby4gMjUsIFImRCBSb2FkLCBTY2llbmNlLUJhc2VkIEluZHVzdHJpCisJCQkJSHNpbi1DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtMUIgICAoaGV4KQkJS3lvdG8gRWxlY3Ryb25pY3MgTWFudWZhY3R1cmluZyBDby4sIEx0ZC4KKzAwMEQxQiAgICAgKGJhc2UgMTYpCQlLeW90byBFbGVjdHJvbmljcyBNYW51ZmFjdHVyaW5nIENvLiwgTHRkLgorCQkJCTU2LTIsIE5pbm9kYW4tY2hvLCBTaGluZGVuLAorCQkJCUtpc3Nob2luLCBNaW5hbWkta3UsCisJCQkJS3lvdG8tQ2l0eSBLeW90byBQcmVmZWN0dXJlIDYwMS04MzE3CisJCQkJSkFQQU4KKworMDAtMEQtMUMgICAoaGV4KQkJQW1lc3lzIERlZmVuc2UKKzAwMEQxQyAgICAgKGJhc2UgMTYpCQlBbWVzeXMgRGVmZW5zZQorCQkJCTEwMzAgQXYgZGUgbGEgTEFVWklFUkUKKwkJCQlaQUMgZGUgUGljaGF1cnkgSUkgTGVzIE1pbGxlcyBCUCAyMCAxNDAKKwkJCQlBSVggZW4gUFJPVkVOQ0UgQ2VkZXggMDMgMTM3OTQKKwkJCQlGUkFOQ0UKKworMDAtMEQtMUQgICAoaGV4KQkJSElHSC1URUsgSEFSTkVTUyBFTlQuIENPLiwgTFRELgorMDAwRDFEICAgICAoYmFzZSAxNikJCUhJR0gtVEVLIEhBUk5FU1MgRU5ULiBDTy4sIExURC4KKwkJCQk0Ri02LCBObzE4LCBQdS1UaW5nIFJkLiBIc2luY2h1LCBUYWl3YW4KKwkJCQk0RiwgTm8xNiwgTGFuZTUwLCBTZWMzLCBOYW4tS2FuZyBSZCwgTmFuCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC0xRSAgIChoZXgpCQlDb250cm9sIFRlY2huaXF1ZXMKKzAwMEQxRSAgICAgKGJhc2UgMTYpCQlDb250cm9sIFRlY2huaXF1ZXMKKwkJCQlUaGUgR3JvCisJCQkJUG9vbCBSb2FkCisJCQkJTmV3dG93biBQb3d5cyBTWTE2IDNCRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBELTFGICAgKGhleCkJCUFWIERpZ2l0YWwKKzAwMEQxRiAgICAgKGJhc2UgMTYpCQlBViBEaWdpdGFsCisJCQkJUG90dGVuZG9yZmVyIFN0cmFzc2UgMjUtMjcvNC8xLzEKKwkJCQlXaWVuICAxMTIwCisJCQkJQVVTVFJJQQorCiswMC0wRC0yMCAgIChoZXgpCQlBU0FISUtBU0VJIFRFQ0hOT1NZU1RFTSBDTy4sTFRELgorMDAwRDIwICAgICAoYmFzZSAxNikJCUFTQUhJS0FTRUkgVEVDSE5PU1lTVEVNIENPLixMVEQuCisJCQkJS2FuZGEgSmluYm9jaG8gMS0xMDUKKwkJCQkyMy03LE5pc2hpc2hpbmp1a3UgMS1jaG9tZQorCQkJCUNoaXlvZGEta3UgVG9reW8gMTAxLTgxMDEKKwkJCQlKQVBBTgorCiswMC0wRC0yMSAgIChoZXgpCQlXSVNDT1JFIEluYy4KKzAwMEQyMSAgICAgKGJhc2UgMTYpCQlXSVNDT1JFIEluYy4KKwkJCQk2RiwgTm8uIDE4MCwgU2VjLiAyLCBEdWVuaHVhIFMuIFJkLAorCQkJCVRhaXBlaSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC0yMiAgIChoZXgpCQlVbml0cm9uaWNzIExURAorMDAwRDIyICAgICAoYmFzZSAxNikJCVVuaXRyb25pY3MgTFRECisJCQkJVW5pdHJvbmljcyBCdWlsZGluZworCQkJCUFpcnBvcnQgQ2l0eSwgUC5PLkIgMzAwCisJCQkJQmVuIEd1cmlvbiBBaXJwb3J0ICA3MDEwMAorCQkJCUlTUkFFTAorCiswMC0wRC0yMyAgIChoZXgpCQlTbWFydCBTb2x1dGlvbiwgSW5jCiswMDBEMjMgICAgIChiYXNlIDE2KQkJU21hcnQgU29sdXRpb24sIEluYworCQkJCTQ2NSBXZXN0IExhd25kYWxlICNCCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTI0ICAgKGhleCkJCVNFTlRFQyBFJkUgQ08uLCBMVEQuCiswMDBEMjQgICAgIChiYXNlIDE2KQkJU0VOVEVDIEUmRSBDTy4sIExURC4KKwkJCQlOby4gMzIuIEdvbmc1IFJkLgorCQkJCUx1bmd0YW4gVGFveXVhbiAzMjUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTI1ICAgKGhleCkJCVNBTkRFTiBDT1JQT1JBVElPTgorMDAwRDI1ICAgICAoYmFzZSAxNikJCVNBTkRFTiBDT1JQT1JBVElPTgorCQkJCTIwIEtvdG9idWtpLWNobworCQkJCUlzZXNha2ktc2hpIEd1bm1hIDM3Mi04NTAyCisJCQkJSkFQQU4KKworMDAtMEQtMjYgICAoaGV4KQkJUHJpbWFncmFwaGljcyBMaW1pdGVkCiswMDBEMjYgICAgIChiYXNlIDE2KQkJUHJpbWFncmFwaGljcyBMaW1pdGVkCisJCQkJQ2FtYnJpZGdlIEhvdXNlLCBOby4yIEZvY3VzIEZvdXIKKwkJCQlGb3VydGggQXZlbnVlCisJCQkJTGV0Y2h3b3J0aCBHYXJkZW4gQ2l0eSBIZXJ0Zm9yZHNoaXJlIFNHNiAyVFUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC0yNyAgIChoZXgpCQlNSUNST1BMRVggUHJpbnR3YXJlIEFHCiswMDBEMjcgICAgIChiYXNlIDE2KQkJTUlDUk9QTEVYIFByaW50d2FyZSBBRworCQkJCVBhbnplcnN0cmHDg8W4ZSA1CisJCQkJVmFyZWwgTmllZGVyc2FjaHNlbiAyNjMxNgorCQkJCUdFUk1BTlkKKworMDAtMEQtMjggICAoaGV4KQkJQ2lzY28KKzAwMEQyOCAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0yOSAgIChoZXgpCQlDaXNjbworMDAwRDI5ICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTJBICAgKGhleCkJCVNjYW5tYXRpYyBBUworMDAwRDJBICAgICAoYmFzZSAxNikJCVNjYW5tYXRpYyBBUworCQkJCUtpbHN1bmQKKwkJCQlTdGF1YsO4ICA0OTIwCisJCQkJTk9SV0FZCisKKzAwLTBELTJCICAgKGhleCkJCVJhY2FsIEluc3RydW1lbnRzCiswMDBEMkIgICAgIChiYXNlIDE2KQkJUmFjYWwgSW5zdHJ1bWVudHMKKwkJCQk0IEdvb2R5ZWFyIFN0cmVldAorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMkMgICAoaGV4KQkJUGF0YXBzY28gRGVzaWducyBMdGQKKzAwMEQyQyAgICAgKGJhc2UgMTYpCQlQYXRhcHNjbyBEZXNpZ25zIEx0ZAorCQkJCVRoZSBQYXNzZmllbGQgT2FrCisJCQkJUGFzc2ZpZWxkCisJCQkJTnIgTGlwaG9vayBIYW1wc2hpcmUgR1UzMCA3UkwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC0yRCAgIChoZXgpCQlOQ1QgRGV1dHNjaGxhbmQgR21iSAorMDAwRDJEICAgICAoYmFzZSAxNikJCU5DVCBEZXV0c2NobGFuZCBHbWJICisJCQkJV2lsZGVuYnJ1Y2hzdHIuIDE1CisJCQkJSmVuYSBUaMO8cmluZ2VuIDA3NzQ1CisJCQkJR0VSTUFOWQorCiswMC0wRC0yRSAgIChoZXgpCQlNYXRzdXNoaXRhIEF2aW9uaWNzIFN5c3RlbXMgQ29ycG9yYXRpb24KKzAwMEQyRSAgICAgKGJhc2UgMTYpCQlNYXRzdXNoaXRhIEF2aW9uaWNzIFN5c3RlbXMgQ29ycG9yYXRpb24KKwkJCQkyNjIwMCBFbnRlcnByaXNlIFdheQorCQkJCUxha2UgRm9yZXN0IENBIDkyNjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0yRiAgIChoZXgpCQlBSU4gQ29tbS5UZWNoLkNvLiwgTFRECiswMDBEMkYgICAgIChiYXNlIDE2KQkJQUlOIENvbW0uVGVjaC5Dby4sIExURAorCQkJCTRGLCBOby43NiwgU2VjMiBNaW50enUgUmQKKwkJCQlKdW5nLUxpIENpdHkgIDMyMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtMzAgICAoaGV4KQkJSWNlRnlyZSBTZW1pY29uZHVjdG9yCiswMDBEMzAgICAgIChiYXNlIDE2KQkJSWNlRnlyZSBTZW1pY29uZHVjdG9yCisJCQkJU3VpdGUgMzAwCisJCQkJNDExIExlZ2dldHQgRHJpdmUKKwkJCQlLYW5hdGEgT250YXJpbyBLMksgM0M5CisJCQkJQ0FOQURBCisKKzAwLTBELTMxICAgKGhleCkJCUNvbXBlbGxlbnQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDBEMzEgICAgIChiYXNlIDE2KQkJQ29tcGVsbGVudCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk3NjI1IFNtZXRhbmEgTGFuZQorCQkJCUVkZW4gUHJhaXJpZSBNaW5uZXNvdGEgNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTMyICAgKGhleCkJCURpc3BlbnNlU291cmNlLCBJbmMuCiswMDBEMzIgICAgIChiYXNlIDE2KQkJRGlzcGVuc2VTb3VyY2UsIEluYy4KKwkJCQkyOTgwMSBTYW50YSBNYXJnYXJpdGEgUGFya3dheQorCQkJCVJhbmNobyBTYW50YSBNYXJnYXJpdGEgQ0EgOTI2ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTMzICAgKGhleCkJCVByZWRpd2F2ZSBDb3JwLgorMDAwRDMzICAgICAoYmFzZSAxNikJCVByZWRpd2F2ZSBDb3JwLgorCQkJCTQ4NDMxIE1pbG1vbnQgRHJpdmUKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0zNCAgIChoZXgpCQlTaGVsbCBJbnRlcm5hdGlvbmFsIEV4cGxvcmF0aW9uIGFuZCBQcm9kdWN0aW9uLCBJbmMuCiswMDBEMzQgICAgIChiYXNlIDE2KQkJU2hlbGwgSW50ZXJuYXRpb25hbCBFeHBsb3JhdGlvbiBhbmQgUHJvZHVjdGlvbiwgSW5jLgorCQkJCUJUQy1HYXNtZXIKKwkJCQlQTyBCb3ggNDgxCisJCQkJSG91c3RvbiBUWCA3NzAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtMzUgICAoaGV4KQkJUEFDIEludGVybmF0aW9uYWwgTHRkCiswMDBEMzUgICAgIChiYXNlIDE2KQkJUEFDIEludGVybmF0aW9uYWwgTHRkCisJCQkJMSBQYXJrIEdhdGUgQ2xvc2UKKwkJCQlCcmVkYnVyeQorCQkJCVN0b2NrcG9ydCBDaGVzaGlyZSBTSzYgMlNaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEQtMzYgICAoaGV4KQkJV3UgSGFuIFJvdXRvbiBFbGVjdHJvbmljIENvLiwgTHRkCiswMDBEMzYgICAgIChiYXNlIDE2KQkJV3UgSGFuIFJvdXRvbiBFbGVjdHJvbmljIENvLiwgTHRkCisJCQkJTWlhbyBTaGFuIERpc3RyaWN0LCBFYXN0IExha2UgSGktVGVjaAorCQkJCURldmVsb3BtZW50IFBhcmsKKwkJCQlXdWhhbiBIdWJlaSA0MzAyMjMKKwkJCQlDSElOQQorCiswMC0wRC0zNyAgIChoZXgpCQlXSVBMVUcKKzAwMEQzNyAgICAgKGJhc2UgMTYpCQlXSVBMVUcKKwkJCQlSVUEgIERSLiBBR09TVElOSE8gR09VTEFPCisJCQkJQkFJUlJPOiBDT1JSRUFTCisJCQkJUEVUUk9QT0xJUyBSSU8gSkFORUlSTyAyNTczMDA1MAorCQkJCUJSQVpJTAorCiswMC0wRC0zOCAgIChoZXgpCQlOSVNTSU4gSU5DLgorMDAwRDM4ICAgICAoYmFzZSAxNikJCU5JU1NJTiBJTkMuCisJCQkJMTAtNyBLQU1FSS1DSE8KKwkJCQlUQUtBUkFaVUtBIEhZT0dPIDY2NS0wMDQ3CisJCQkJSkFQQU4KKworMDAtMEQtMzkgICAoaGV4KQkJTmV0d29yayBFbGVjdHJvbmljcworMDAwRDM5ICAgICAoYmFzZSAxNikJCU5ldHdvcmsgRWxlY3Ryb25pY3MKKwkJCQlCb3ggMTAyMAorCQkJCVNhbmRlZmpvcmQgU2FuZGVmam9yZCBOMzIwNAorCQkJCU5PUldBWQorCiswMC0wRC0zQSAgIChoZXgpCQlNaWNyb3NvZnQgQ29ycC4KKzAwMEQzQSAgICAgKGJhc2UgMTYpCQlNaWNyb3NvZnQgQ29ycC4KKwkJCQlPbmUgTWljcm9zb2Z0IFdheQorCQkJCVJlZG1vbmQgV2EuIDk4MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0zQiAgIChoZXgpCQlNaWNyb2VsZWN0cm9uaWNzIFRlY2hub2xvZ3kgSW5jLgorMDAwRDNCICAgICAoYmFzZSAxNikJCU1pY3JvZWxlY3Ryb25pY3MgVGVjaG5vbG9neSBJbmMuCisJCQkJTm8xLCBJbm5vdmF0aW9uIFJvYWQgSUkKKwkJCQlIc2luY2h1IFNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC0zQyAgIChoZXgpCQlpLlRlY2ggRHluYW1pYyBMdGQKKzAwMEQzQyAgICAgKGJhc2UgMTYpCQlpLlRlY2ggRHluYW1pYyBMdGQKKwkJCQlSb29tIDExMTIsIE1ldHJvcGxhemEgVG93ZXIgMiwgMjIzIEhpbmcKKwkJCQk4NTIKKwkJCQlIT05HIEtPTkcKKworMDAtMEQtM0QgICAoaGV4KQkJSGFtbWVyaGVhZCBTeXN0ZW1zLCBJbmMuCiswMDBEM0QgICAgIChiYXNlIDE2KQkJSGFtbWVyaGVhZCBTeXN0ZW1zLCBJbmMuCisJCQkJNjQwIENseWRlIENvdXJ0CisJCQkJTW91bnRhaW4gVmlldyBDYWxpZm9ybmlhIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC0zRSAgIChoZXgpCQlBUExVWCBDb21tdW5pY2F0aW9ucyBMdGQuCiswMDBEM0UgICAgIChiYXNlIDE2KQkJQVBMVVggQ29tbXVuaWNhdGlvbnMgTHRkLgorCQkJCTEwRiwgTm8uIDE2NiwgRGFoLVllaCBSZC4sIFBlaXRvdQorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC0zRiAgIChoZXgpCQlWVEkgSW5zdHJ1bWVudHMgQ29ycG9yYXRpb24KKzAwMEQzRiAgICAgKGJhc2UgMTYpCQlWVEkgSW5zdHJ1bWVudHMgQ29ycG9yYXRpb24KKwkJCQk1NDI1IFdhcm5lciBSb2FkLCBTdWl0ZSAxMworCQkJCVZhbGxleSBWaWV3IE9IIDQ0MTI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC00MCAgIChoZXgpCQlWZXJpbnQgTG9yb25peCBWaWRlbyBTb2x1dGlvbnMKKzAwMEQ0MCAgICAgKGJhc2UgMTYpCQlWZXJpbnQgTG9yb25peCBWaWRlbyBTb2x1dGlvbnMKKwkJCQkxMjUyNiBIaWdoIEJsdWZmIERyLiAjMTcwCisJCQkJU2FuIERJZWdvIENBIDkyMTMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC00MSAgIChoZXgpCQlTaWVtZW5zIEFHIElDTSBNUCBVQyBSRCBJVCBLTEYxCiswMDBENDEgICAgIChiYXNlIDE2KQkJU2llbWVucyBBRyBJQ00gTVAgVUMgUkQgSVQgS0xGMQorCQkJCVN1ZWRzdHJhc3NlIDkKKwkJCQlLYW1wLUxpbnRmb3J0IE5SVyA0NzQ3NQorCQkJCUdFUk1BTlkKKworMDAtMEQtNDIgICAoaGV4KQkJTmV3YmVzdCBEZXZlbG9wbWVudCBMaW1pdGVkCiswMDBENDIgICAgIChiYXNlIDE2KQkJTmV3YmVzdCBEZXZlbG9wbWVudCBMaW1pdGVkCisJCQkJMy9GICBVbml0IDMxMS0zMTIKKwkJCQlOby4xIFNjaWVuY2UgUGFyayBFYXN0IEF2ZW51ZQorCQkJCVNoYXRpbiAgTlQgCisJCQkJSE9ORyBLT05HCisKKzAwLTBELTQzICAgKGhleCkJCURSUyBUYWN0aWNhbCBTeXN0ZW1zIEluYy4KKzAwMEQ0MyAgICAgKGJhc2UgMTYpCQlEUlMgVGFjdGljYWwgU3lzdGVtcyBJbmMuCisJCQkJMzUyMCBVLlMuIEhpZ2h3YXkgMQorCQkJCVBhbG0gQmF5IEZMIDMyOTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC00NCAgIChoZXgpCQlBdWRpbyBCVSAtIExvZ2l0ZWNoCiswMDBENDQgICAgIChiYXNlIDE2KQkJQXVkaW8gQlUgLSBMb2dpdGVjaAorCQkJCTE0OTkgU0UgVGVjaCBDZW50ZXIgUGxhY2UKKwkJCQlTdWl0ZSAzNTAKKwkJCQlWYW5jb3V2ZXIgV0EgOTg2ODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTQ1ICAgKGhleCkJCVRvdHRvcmkgU0FOWU8gRWxlY3RyaWMgQ28uLCBMdGQuCiswMDBENDUgICAgIChiYXNlIDE2KQkJVG90dG9yaSBTQU5ZTyBFbGVjdHJpYyBDby4sIEx0ZC4KKwkJCQkzLTIwMSwgTWluYW1pIFlvc2hpa2F0YQorCQkJCVRvdHRvcmkgQ2l0eSBUb3R0b3JpIDY4MC04NjM0CisJCQkJSkFQQU4KKworMDAtMEQtNDYgICAoaGV4KQkJUGFya2VyIFNTRCBEcml2ZXMKKzAwMEQ0NiAgICAgKGJhc2UgMTYpCQlQYXJrZXIgU1NEIERyaXZlcworCQkJCTkyMjUgRm9yc3l0aCBQYXJrIERyaXZlCisJCQkJQ2hhcmxvdHRlIE5DIDI4MjczLTM4ODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTQ3ICAgKGhleCkJCUNvbGxleAorMDAwRDQ3ICAgICAoYmFzZSAxNikJCUNvbGxleAorCQkJCTEzRi0zLE5vLjE0MixTZWMuMSxIdWFtZWkgVyxTdC4sU2hpIENoaXUKKwkJCQlUYWljaHVuZyAgNDAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC00OCAgIChoZXgpCQlBRVdJTiBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDBENDggICAgIChiYXNlIDE2KQkJQUVXSU4gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCTdGLCBOby4gMiwgTGFuZSA0NywgU2VjLiAzLCBOYW4tR2FuZyBSZC4KKwkJCQlUQUlQRUkgIDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtNDkgICAoaGV4KQkJVHJpdG9uIFN5c3RlbXMgb2YgRGVsYXdhcmUsIEluYy4KKzAwMEQ0OSAgICAgKGJhc2UgMTYpCQlUcml0b24gU3lzdGVtcyBvZiBEZWxhd2FyZSwgSW5jLgorCQkJCTUyMiBFLiBSYWlscm9hZCBTdC4KKwkJCQlMb25nIEJlYWNoIE1TIDM5NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC00QSAgIChoZXgpCQlTdGVhZyBFVEEtT3B0aWsKKzAwMEQ0QSAgICAgKGJhc2UgMTYpCQlTdGVhZyBFVEEtT3B0aWsKKwkJCQlCb3JzaWdzdHJhc3NlIDc4Li04MAorCQkJCUhlaW5zYmVyZyAgNTI1MjUKKwkJCQlHRVJNQU5ZCisKKzAwLTBELTRCICAgKGhleCkJCVJva3UsIExMQworMDAwRDRCICAgICAoYmFzZSAxNikJCVJva3UsIExMQworCQkJCTM5OSBTaGVybWFuIEF2ZS4gIzEyCisJCQkJUGFsbyBBbHRvIENBIDk0MzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC00QyAgIChoZXgpCQlPdXRsaW5lIEVsZWN0cm9uaWNzIEx0ZC4KKzAwMEQ0QyAgICAgKGJhc2UgMTYpCQlPdXRsaW5lIEVsZWN0cm9uaWNzIEx0ZC4KKwkJCQk3L0YgQmVuc29uIFRvd2VyCisJCQkJNzQgSHVuZyBUbyBSb2FkCisJCQkJS3d1biBUb25nIEtvd2xvb24gCisJCQkJSE9ORyBLT05HCisKKzAwLTBELTREICAgKGhleCkJCU5pbmVsYW5lcworMDAwRDREICAgICAoYmFzZSAxNikJCU5pbmVsYW5lcworCQkJCSM0MDUgNEYgRGlwbG9tYXRpYyBDZW50ZXIKKwkJCQlTZW9jaG8tZ3UsIFNlb2Noby1kb25nCisJCQkJU2VvdWwgIDEzNzYtMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC00RSAgIChoZXgpCQlORFIgQ28uLExURC4KKzAwMEQ0RSAgICAgKGJhc2UgMTYpCQlORFIgQ28uLExURC4KKwkJCQlTdW1pdG9tbyBzZWltZWkgbWluYXRvbWFjaGkgTVQgQkxERworCQkJCTEtMTgtMiBNaW5hbWlob3JpZSBOaXNoaS1rdQorCQkJCU9zYWsgS2lua2kgNTUwLTAwMTUKKwkJCQlKQVBBTgorCiswMC0wRC00RiAgIChoZXgpCQlLZW53b29kIENvcnBvcmF0aW9uCiswMDBENEYgICAgIChiYXNlIDE2KQkJS2Vud29vZCBDb3Jwb3JhdGlvbgorCQkJCTI5NjctMywgSXNoaWthd2EtbWFjaGkKKwkJCQlIYWNoaW9qaS1zaGkgVG9reW8gMTkyLTg1MjUKKwkJCQlKQVBBTgorCiswMC0wRC01MCAgIChoZXgpCQlHYWxhemFyIE5ldHdvcmtzCiswMDBENTAgICAgIChiYXNlIDE2KQkJR2FsYXphciBOZXR3b3JrcworCQkJCTM1IEZpdHpnZXJhbGQgQXZlCisJCQkJT3R0YXdhIE9OIEsySCAxRTYKKwkJCQlDQU5BREEKKworMDAtMEQtNTEgICAoaGV4KQkJRElWUiBTeXN0ZW1zLCBJbmMuCiswMDBENTEgICAgIChiYXNlIDE2KQkJRElWUiBTeXN0ZW1zLCBJbmMuCisJCQkJMjE2MSBTYXR1cm4gQ3QuCisJCQkJQmFrZXJzZmllbGQgQ0EgOTMzMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTUyICAgKGhleCkJCUNvbWFydCBzeXN0ZW0KKzAwMEQ1MiAgICAgKGJhc2UgMTYpCQlDb21hcnQgc3lzdGVtCisJCQkJTm8uIDIxMSwgQWNlIFRlY2hubyBUb3dlciBJSUksIDE5Ny00OAorCQkJCUd1LXJvIERvbmcsIEd1LXJvIEd1LCBTZW91bCwgS29yZWEKKwkJCQlTZW91bCAgMTUyLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC01MyAgIChoZXgpCQlCZWlqaW5nIDV3IENvbW11bmljYXRpb24gQ29ycC4KKzAwMEQ1MyAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIDV3IENvbW11bmljYXRpb24gQ29ycC4KKwkJCQlOTy40LFpob25nLUd1YW4tQ3VuIFNvdXRoIDQgc3RyZWV0LAorCQkJCUJlaWppbmcgIDEwMDA4MAorCQkJCUNISU5BCisKKzAwLTBELTU0ICAgKGhleCkJCTNDb20gTHRkCiswMDBENTQgICAgIChiYXNlIDE2KQkJM0NvbSBMdGQKKwkJCQlQZW9wbGVidWlsZGluZyAyCisJCQkJUGVvcGxlYnVpbGRpbmcgRXN0YXRlLCBNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSGVydHMgSFAyIDROVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBELTU1ICAgKGhleCkJCVNBTllDT00gVGVjaG5vbG9neSBDby4sTHRkCiswMDBENTUgICAgIChiYXNlIDE2KQkJU0FOWUNPTSBUZWNobm9sb2d5IENvLixMdGQKKwkJCQk2RixCZWlqaW5nIENhcGl0YWwgVGltZXMgU3F1YXJlLDg4IyBYaWNoCisJCQkJQmVpamluZyAgMTAwMDMxCisJCQkJQ0hJTkEKKworMDAtMEQtNTYgICAoaGV4KQkJRGVsbCBQQ0JBIFRlc3QKKzAwMEQ1NiAgICAgKGJhc2UgMTYpCQlEZWxsIFBDQkEgVGVzdAorCQkJCU9uZSBEZWxsIFdheQorCQkJCVJSNSBNUy04NTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNTcgICAoaGV4KQkJRnVqaXRzdSBJLU5ldHdvcmsgU3lzdGVtcyBMaW1pdGVkLgorMDAwRDU3ICAgICAoYmFzZSAxNikJCUZ1aml0c3UgSS1OZXR3b3JrIFN5c3RlbXMgTGltaXRlZC4KKwkJCQkxLTQwMyBrb3N1Z2ktY2hvIG5ha2FoYXJhLWt1CisJCQkJa2F3YXNha2kga2FuYWdhd2EgMjExLTAwNjMKKwkJCQlKQVBBTgorCiswMC0wRC01OCAgIChoZXgpCQlQUklWQVRFCiswMDBENTggICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTBELTU5ICAgKGhleCkJCUFtaXR5IFN5c3RlbXMsIEluYy4KKzAwMEQ1OSAgICAgKGJhc2UgMTYpCQlBbWl0eSBTeXN0ZW1zLCBJbmMuCisJCQkJODg4IFRhc21hbiBEcml2ZQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC01QSAgIChoZXgpCQlUaWVzc2UgU3BBCiswMDBENUEgICAgIChiYXNlIDE2KQkJVGllc3NlIFNwQQorCQkJCVZpYSBBc3RpCisJCQkJWm9uYSBJbmR1c3RyaWFsIFNhbiBCZXJuYXJkbworCQkJCUl2cmVhIFRPIDEwMDE1CisJCQkJSVRBTFkKKworMDAtMEQtNUIgICAoaGV4KQkJU21hcnQgRW1waXJlIEludmVzdG1lbnRzIExpbWl0ZWQKKzAwMEQ1QiAgICAgKGJhc2UgMTYpCQlTbWFydCBFbXBpcmUgSW52ZXN0bWVudHMgTGltaXRlZAorCQkJCVN1aXRlIDIwMDEtMjAwNixMZXZlbCAyMCBMYW5kbWFyayBOb3J0aAorCQkJCVhpbiBKaWUgSG9uZyBLb25nIDAwODUyCisJCQkJQ0hJTkEKKworMDAtMEQtNUMgICAoaGV4KQkJUm9iZXJ0IEJvc2NoIEdtYkgsIFZULUFUTU8KKzAwMEQ1QyAgICAgKGJhc2UgMTYpCQlSb2JlcnQgQm9zY2ggR21iSCwgVlQtQVRNTworCQkJCVdlcm5lcnN0cmFzc2UgNTEKKwkJCQlTdHV0dGdhcnQgQlcgNzA0NjkKKwkJCQlHRVJNQU5ZCisKKzAwLTBELTVEICAgKGhleCkJCVJhcml0YW4gQ29tcHV0ZXIsIEluYworMDAwRDVEICAgICAoYmFzZSAxNikJCVJhcml0YW4gQ29tcHV0ZXIsIEluYworCQkJCTQwMCBDb3R0b250YWlsIExhbmUKKwkJCQlTb21lcnNldCBOSiAwODg3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNUUgICAoaGV4KQkJTkVDIFBlcnNvbmFsIFByb2R1Y3RzCiswMDBENUUgICAgIChiYXNlIDE2KQkJTkVDIFBlcnNvbmFsIFByb2R1Y3RzCisJCQkJNi04MCwgU2hpbW9oYW5hemF3YSAyLUNob21lCisJCQkJWW9uZXphd2Etc2hpIFlhbWFnYXRhIDk5Mi04NTIwCisJCQkJSkFQQU4KKworMDAtMEQtNUYgICAoaGV4KQkJTWluZHMgSW5jCiswMDBENUYgICAgIChiYXNlIDE2KQkJTWluZHMgSW5jCisJCQkJMTkxOSBib3VsIGxpb25lbCBiZXJ0cmFuZAorCQkJCSMyMDIKKwkJCQlCb2lzYnJpYW5kIFF1ZWJlYyBKN0ggMU44CisJCQkJQ0FOQURBCisKKzAwLTBELTYwICAgKGhleCkJCUlCTSBDb3JwCiswMDBENjAgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTYxICAgKGhleCkJCUdpZ2EtQnl0ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwRDYxICAgICAoYmFzZSAxNikJCUdpZ2EtQnl0ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vIDYsIEJhdSBDaGlhbmcgUm9hZCwgSHNpbi1UaWVuCisJCQkJVGFpcGVpIEhzaWVuICA5OTk5CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC02MiAgIChoZXgpCQlGdW5rd2VyayBEYWJlbmRvcmYgR21iSAorMDAwRDYyICAgICAoYmFzZSAxNikJCUZ1bmt3ZXJrIERhYmVuZG9yZiBHbWJICisJCQkJTWFlcmtpc2NoZSBTdHJhc3NlCisJCQkJRGFiZW5kb3JmIEJyYW5kZW5idXJnIDE1ODA2CisJCQkJR0VSTUFOWQorCiswMC0wRC02MyAgIChoZXgpCQlERU5UIEluc3RydW1lbnRzLCBJbmMuCiswMDBENjMgICAgIChiYXNlIDE2KQkJREVOVCBJbnN0cnVtZW50cywgSW5jLgorCQkJCTY0IE5XIEZyYW5rbGluIEF2ZQorCQkJCUJlbmQgT1IgOTc3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTY0ICAgKGhleCkJCUNPTUFHIEhhbmRlbHMgQUcKKzAwMEQ2NCAgICAgKGJhc2UgMTYpCQlDT01BRyBIYW5kZWxzIEFHCisJCQkJWmlsbGVuaGFyZHRzdHIuNDEKKwkJCQlHb2VwcGluZ2VuIEJhZGVuLVfDvHJ0dGVtYmVyZyA3MzAzNworCQkJCUdFUk1BTlkKKworMDAtMEQtNjUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRDY1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNjYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRDY2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNjcgICAoaGV4KQkJQmVsQWlyIE5ldHdvcmtzIEluYy4KKzAwMEQ2NyAgICAgKGJhc2UgMTYpCQlCZWxBaXIgTmV0d29ya3MgSW5jLgorCQkJCTYwMyBNYXJjaCBSb2FkCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLIDJNNQorCQkJCUNBTkFEQQorCiswMC0wRC02OCAgIChoZXgpCQlWaW5jaSBTeXN0ZW1zLCBJbmMuCiswMDBENjggICAgIChiYXNlIDE2KQkJVmluY2kgU3lzdGVtcywgSW5jLgorCQkJCTgzMzAgQm9vbmUgQm91bGV2YXJkCisJCQkJU3VpdGUgNTAwCisJCQkJVmllbm5hIFZBIDIyMTgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC02OSAgIChoZXgpCQlUTVQmRCBDb3Jwb3JhdGlvbgorMDAwRDY5ICAgICAoYmFzZSAxNikJCVRNVCZEIENvcnBvcmF0aW9uCisJCQkJMi0yNC0xCisJCQkJSGFydW1pLWNobworCQkJCUZ1Y2h1LXNpIFRva3lvIDE4My0wMDU3CisJCQkJSkFQQU4KKworMDAtMEQtNkEgICAoaGV4KQkJUmVkd29vZCBUZWNobm9sb2dpZXMgTFRECiswMDBENkEgICAgIChiYXNlIDE2KQkJUmVkd29vZCBUZWNobm9sb2dpZXMgTFRECisJCQkJQW1iZXIgSG91c2UKKwkJCQlNYXJrZXQgU3RyZWV0CisJCQkJQnJhY2tuZWxsIEJlcmtzaGlyZSBSRzEyIDFKQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBELTZCICAgKGhleCkJCU1pdGEtVGVrbmlrIEEvUworMDAwRDZCICAgICAoYmFzZSAxNikJCU1pdGEtVGVrbmlrIEEvUworCQkJCUhhYW5kdmFlcmtlcnZlaiAxCisJCQkJUm9lZGthZXJzYnJvIERLIERLLTg4NDAKKwkJCQlERU5NQVJLCisKKzAwLTBELTZDICAgKGhleCkJCU0tQXVkaW8KKzAwMEQ2QyAgICAgKGJhc2UgMTYpCQlNLUF1ZGlvCisJCQkJNDUgRSBTVCBKb3NlcGggU3QuCisJCQkJQXJjYWRpYSBDQSA5MTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNkQgICAoaGV4KQkJSy1UZWNoIERldmljZXMgQ29ycC4KKzAwMEQ2RCAgICAgKGJhc2UgMTYpCQlLLVRlY2ggRGV2aWNlcyBDb3JwLgorCQkJCTE0MDE2LTMwCisJCQkJbmFrYW1pbm93YSBtaW5vd2FtYWNoaSBrYW1paW5hIG5hZ2FubyAzOTktNDYwMQorCQkJCUpBUEFOCisKKzAwLTBELTZFICAgKGhleCkJCUstUGF0ZW50cyBPeQorMDAwRDZFICAgICAoYmFzZSAxNikJCUstUGF0ZW50cyBPeQorCQkJCVAuTy4gQm94IDc3CisJCQkJRWxhbm5vbnRpZSA1CisJCQkJVkFOVEFBIEZJIDAxNTExCisJCQkJRklOTEFORAorCiswMC0wRC02RiAgIChoZXgpCQlFbWJlciBDb3Jwb3JhdGlvbgorMDAwRDZGICAgICAoYmFzZSAxNikJCUVtYmVyIENvcnBvcmF0aW9uCisJCQkJMzQzIENvbmdyZXNzIFN0CisJCQkJNXRoIEZsb29yCisJCQkJQm9zdG9uIE1hIDAyMjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC03MCAgIChoZXgpCQlEYXRhbWF4IENvcnBvcmF0aW9uCiswMDBENzAgICAgIChiYXNlIDE2KQkJRGF0YW1heCBDb3Jwb3JhdGlvbgorCQkJCTQ1MDEgUGFya3dheSBDb21tZXJjZSBCbHZkCisJCQkJT3JsYW5kbyBGTCAzMjgwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNzEgICAoaGV4KQkJYm9jYSBzeXN0ZW1zCiswMDBENzEgICAgIChiYXNlIDE2KQkJYm9jYSBzeXN0ZW1zCisJCQkJMTA2NSBzLiByb2dlcnMgY2lyY2xlCisJCQkJYm9jYSByYXRvbiBmbCAzMzQ4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNzIgICAoaGV4KQkJMldpcmUsIEluYworMDAwRDcyICAgICAoYmFzZSAxNikJCTJXaXJlLCBJbmMKKwkJCQkxNzA0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC03MyAgIChoZXgpCQlUZWNobmljYWwgU3VwcG9ydCwgSW5jLgorMDAwRDczICAgICAoYmFzZSAxNikJCVRlY2huaWNhbCBTdXBwb3J0LCBJbmMuCisJCQkJMTEyNTMgSm9obiBHYWx0IEJsdmQKKwkJCQlPbWFoYSBOZWJyYXNrYSA2ODEzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtNzQgICAoaGV4KQkJU2FuZCBOZXR3b3JrIFN5c3RlbXMsIEluYy4KKzAwMEQ3NCAgICAgKGJhc2UgMTYpCQlTYW5kIE5ldHdvcmsgU3lzdGVtcywgSW5jLgorCQkJCTQzNCBQYXlyYW4gU3RyZWV0CisJCQkJUGV0YWx1bWEgQ0EgOTQ5NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTc1ICAgKGhleCkJCUtvYmlhbiBQdGUgTHRkIC0gVGFpd2FuIEJyYW5jaAorMDAwRDc1ICAgICAoYmFzZSAxNikJCUtvYmlhbiBQdGUgTHRkIC0gVGFpd2FuIEJyYW5jaAorCQkJCTJGLCBOby41ODAsIFJ1ZWlrdWFuZyBSZC4sTmVpIEh1LFRhaXBlaSwKKwkJCQlUYWlwZWkgTmVpIEh1IDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtNzYgICAoaGV4KQkJSG9rdXRvIERlbnNoaSBDbywuIEx0ZC4KKzAwMEQ3NiAgICAgKGJhc2UgMTYpCQlIb2t1dG8gRGVuc2hpIENvLC4gTHRkLgorCQkJCTMtNyBPZG9yaSBOaXNoaSAxNi1DaG9tZSBDaHVva3UKKwkJCQlTYXBwb3JvIEhva2thaWRvIDA2MC0wMDQyCisJCQkJSkFQQU4KKworMDAtMEQtNzcgICAoaGV4KQkJRmFsY29uU3RvciBTb2Z0d2FyZQorMDAwRDc3ICAgICAoYmFzZSAxNikJCUZhbGNvblN0b3IgU29mdHdhcmUKKwkJCQkxMjUgQmF5bGlzIFJkCisJCQkJTWVsdmlsbGUgTlkgMTE3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTc4ICAgKGhleCkJCUVuZ2luZWVyaW5nICYgU2VjdXJpdHkKKzAwMEQ3OCAgICAgKGJhc2UgMTYpCQlFbmdpbmVlcmluZyAmIFNlY3VyaXR5CisJCQkJTWFydGlyaSBkZWxsYSBMaWJlcnTDoCAzMi80CisJCQkJR2Vub3ZhICAxNjE1NQorCQkJCUlUQUxZCisKKzAwLTBELTc5ICAgKGhleCkJCUR5bmFtaWMgU29sdXRpb25zIENvLC5MdGQuCiswMDBENzkgICAgIChiYXNlIDE2KQkJRHluYW1pYyBTb2x1dGlvbnMgQ28sLkx0ZC4KKwkJCQkxNy04IE5paG9uYmFzaGkgSGFrb3pha2ktY2hvCisJCQkJQ2h1by1rdSBUb2t5byAxMDMtMDAxNQorCQkJCUpBUEFOCisKKzAwLTBELTdBICAgKGhleCkJCURpR0FUVE8gQXNpYSBQYWNpZmljIFB0ZSBMdGQKKzAwMEQ3QSAgICAgKGJhc2UgMTYpCQlEaUdBVFRPIEFzaWEgUGFjaWZpYyBQdGUgTHRkCisJCQkJMTkwIE1kZGxlIFJvYWQsICMxOS0wNSBGb3J0dW5lIENlbnRlcgorCQkJCTE4ODk3OQorCQkJCVNJTkdBUE9SRQorCiswMC0wRC03QiAgIChoZXgpCQlDb25zZW5zeXMgQ29tcHV0ZXJzIEluYy4KKzAwMEQ3QiAgICAgKGJhc2UgMTYpCQlDb25zZW5zeXMgQ29tcHV0ZXJzIEluYy4KKwkJCQkyMTUgU2hpZWxkcyBDdC4KKwkJCQlNYXJraGFtIE9OIEwzUiA4VjIKKwkJCQlDQU5BREEKKworMDAtMEQtN0MgICAoaGV4KQkJQ29kaWFuIEx0ZAorMDAwRDdDICAgICAoYmFzZSAxNikJCUNvZGlhbiBMdGQKKwkJCQkxNCBXYXRlcnNpZGUgRHJpdmUKKwkJCQlMYW5nbGV5IFNsb3VnaCBTTDMgNkVaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEQtN0QgICAoaGV4KQkJQWZjbyBTeXN0ZW1zCiswMDBEN0QgICAgIChiYXNlIDE2KQkJQWZjbyBTeXN0ZW1zCisJCQkJMjAwIEZpbm4gQ291cnQKKwkJCQlGYXJtaW5nZGFsZSBOWSAxMTczNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtN0UgICAoaGV4KQkJQXhpb3dhdmUgTmV0d29ya3MsIEluYy4KKzAwMEQ3RSAgICAgKGJhc2UgMTYpCQlBeGlvd2F2ZSBOZXR3b3JrcywgSW5jLgorCQkJCTIwMCBOaWNrZXJzb24gUm9hZAorCQkJCU1hcmxib3JvdWdoIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC03RiAgIChoZXgpCQlNSURBUyAgQ09NTVVOSUNBVElPTiBURUNITk9MT0dJRVMgUFRFIExURCAoIEZvcmVpZ24gQnJhbmNoKQorMDAwRDdGICAgICAoYmFzZSAxNikJCU1JREFTICBDT01NVU5JQ0FUSU9OIFRFQ0hOT0xPR0lFUyBQVEUgTFREICggRm9yZWlnbiBCcmFuY2gpCisJCQkJMDQtMTIsIFBoYXNlIFouUm8gVGVjaG5vcHJlbnVlciBQYXJrCisJCQkJIzE1MSwgTm9ydGggQnVvbmEgVmlzdGEgUm9hZAorCQkJCVNpbmdhcG9yZSAgMTM5IDM0NworCQkJCVNJTkdBUE9SRQorCiswMC0wRC04MCAgIChoZXgpCQlPbmxpbmUgRGV2ZWxvcG1lbnQgSW5jCiswMDBEODAgICAgIChiYXNlIDE2KQkJT25saW5lIERldmVsb3BtZW50IEluYworCQkJCTcyMDkgQ2hhcG1hbiBId3kKKwkJCQlLbm94dmlsbGUgVG4gMzc5MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTgxICAgKGhleCkJCVBlcHBlcmwrRnVjaHMgR21iSAorMDAwRDgxICAgICAoYmFzZSAxNikJCVBlcHBlcmwrRnVjaHMgR21iSAorCQkJCUxpbGllbnRoYWxzdHJhw4PFuGUgMjAwCisJCQkJTWFubmhlaW0gIDY4MzA3CisJCQkJR0VSTUFOWQorCiswMC0wRC04MiAgIChoZXgpCQlQSFMgc3JsCiswMDBEODIgICAgIChiYXNlIDE2KQkJUEhTIHNybAorCQkJCVZpYSBQYWzDuSwgMTcKKwkJCQlBcmN1Z25hbm8gVmljZW56YSAzNjA1NworCQkJCUlUQUxZCisKKzAwLTBELTgzICAgKGhleCkJCVNhbm1pbmEtU0NJIEh1bmdhcnkgIEx0ZC4KKzAwMEQ4MyAgICAgKGJhc2UgMTYpCQlTYW5taW5hLVNDSSBIdW5nYXJ5ICBMdGQuCisJCQkJS290YSBKb3pzZWYgdS4gMi4KKwkJCQlUYXRhYmFueWEgS29tYXJvbS1Fc3p0ZXJnb20gMjgwMAorCQkJCUhVTkdBUlkKKworMDAtMEQtODQgICAoaGV4KQkJTWFrdXMgSW5jLgorMDAwRDg0ICAgICAoYmFzZSAxNikJCU1ha3VzIEluYy4KKwkJCQk0RiBEYWVkbyBCbGRnLiwgNzQ4LTE0IFllb2tzYW0tZG9uZworCQkJCUthbmduYW0tZ3UgU2VvdWwgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC04NSAgIChoZXgpCQlUYXB3YXZlLCBJbmMuCiswMDBEODUgICAgIChiYXNlIDE2KQkJVGFwd2F2ZSwgSW5jLgorCQkJCTE5MDEgTGFuZGluZ3MgRHJpdmUKKwkJCQlCdWlsZGluZyBHCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtODYgICAoaGV4KQkJSHViZXIgKyBTdWhuZXIgQUcKKzAwMEQ4NiAgICAgKGJhc2UgMTYpCQlIdWJlciArIFN1aG5lciBBRworCQkJCURlZ2Vyc2hlaW1lcnN0cmFzc2UgMTQKKwkJCQk5MTAwIEhlcmlzYXUgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEQtODcgICAoaGV4KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uIChFQ1MpCiswMDBEODcgICAgIChiYXNlIDE2KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uIChFQ1MpCisJCQkJTm8uMjIsIEFsbGV5IDM4LCBMYW5lIDkxLCBTZWMuIDEsIE5laSBIdQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC04OCAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzAwMEQ4OCAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOby44LCBMaS1Ic2luZyA3IFJvYWQsIFNjaWVuY2UtQmFzZWQgSW5kCisJCQkJSHNpbmNodSAgMzAwNzcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELTg5ICAgKGhleCkJCUJpbHMgVGVjaG5vbG9neSBJbmMKKzAwMEQ4OSAgICAgKGJhc2UgMTYpCQlCaWxzIFRlY2hub2xvZ3kgSW5jCisJCQkJNTA4IFMgUml2ZXIgT2FrcyBEcml2ZQorCQkJCUluZGlhbGFudGljIEZMIDMyOTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC04QSAgIChoZXgpCQlXaW5uZXJzIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwRDhBICAgICAoYmFzZSAxNikJCVdpbm5lcnMgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJIzM0MC01LFdvbmNodW4tRG9uZyxQYWxkYWwtR3UKKwkJCQlTdXdvbi1DaXR5IEt5dW5na2ktRG8gNDQyLTgyMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC04QiAgIChoZXgpCQlUJkQgQ29ycG9yYXRpb24KKzAwMEQ4QiAgICAgKGJhc2UgMTYpCQlUJkQgQ29ycG9yYXRpb24KKwkJCQk1NjUyLTE2OSBTYXNhZ2EKKwkJCQlNYXRzdW1vdG8gTmFnYW5vIDM5OS0wMDMzCisJCQkJSkFQQU4KKworMDAtMEQtOEMgICAoaGV4KQkJU2hhbmdoYWkgV2Vkb25lIERpZ2l0YWwgTHRkLiBDTy4KKzAwMEQ4QyAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBXZWRvbmUgRGlnaXRhbCBMdGQuIENPLgorCQkJCTg5My04OTkgSHVhc2hhbiBSb2FkLAorCQkJCVNoYW5naGFpICAyMDAwMzEKKwkJCQlDSElOQQorCiswMC0wRC04RCAgIChoZXgpCQlQcm9MaW54IENvbW11bmljYXRpb24gR2F0ZXdheXMsIEluYy4KKzAwMEQ4RCAgICAgKGJhc2UgMTYpCQlQcm9MaW54IENvbW11bmljYXRpb24gR2F0ZXdheXMsIEluYy4KKwkJCQkxNjc1IENoZXN0ZXIgQXZlLgorCQkJCUZvdXJ0aCBGbG9vcgorCQkJCUJha2Vyc2ZpZWxkIENBIDkzMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC04RSAgIChoZXgpCQlLb2RlbiBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMEQ4RSAgICAgKGJhc2UgMTYpCQlLb2RlbiBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQk1Mjc4IFVlbm9oYXJhCisJCQkJVWVub2hhcmEtU2hpCisJCQkJWWFtYW5hc2hpLUtlbiA0MDktMDExMgorCQkJCUpBUEFOCisKKzAwLTBELThGICAgKGhleCkJCUtpbmcgVHN1c2hpbiBLb2d5byBDby4sIExURC4KKzAwMEQ4RiAgICAgKGJhc2UgMTYpCQlLaW5nIFRzdXNoaW4gS29neW8gQ28uLCBMVEQuCisJCQkJMi02LTYgTm9nZQorCQkJCVNldGFnYXlhLWt1IFRva3lvIDE1OC0wMDkyCisJCQkJSkFQQU4KKworMDAtMEQtOTAgICAoaGV4KQkJRmFjdHVtIEVsZWN0cm9uaWNzIEFCCiswMDBEOTAgICAgIChiYXNlIDE2KQkJRmFjdHVtIEVsZWN0cm9uaWNzIEFCCisJCQkJVGVrbmlrcmluZ2VuIDFICisJCQkJTGlua8ODwrZwaW5nIMOD4oCTc3RlcmfDg8K2dGxhbmQgNTgzIDMwCisJCQkJU1dFREVOCisKKzAwLTBELTkxICAgKGhleCkJCUVjbGlwc2UgKEhRIEVzcGFuYSkgUy5MLgorMDAwRDkxICAgICAoYmFzZSAxNikJCUVjbGlwc2UgKEhRIEVzcGFuYSkgUy5MLgorCQkJCUNDIGRlIE5lZ29jaW9zCisJCQkJT2ZmaWNpbmEgTm8uIDQ2LiBDLk4uIDM0MCwgS20gMTc1CisJCQkJUHVlcnRvIGRlIEJhbnVzIE1hcmJlbGxhIDI5NjYwCisJCQkJU1BBSU4KKworMDAtMEQtOTIgICAoaGV4KQkJQXJpbWEgQ29tbXVuaWNhdGlvbiBDb3Jwb3JhdGlvbgorMDAwRDkyICAgICAoYmFzZSAxNikJCUFyaW1hIENvbW11bmljYXRpb24gQ29ycG9yYXRpb24KKwkJCQkxNiwgbGFuZSA2NTgsIFlpbmctVGFvIFJvYWQKKwkJCQlZaW5na28gVGFpcGVpIENvdW50eSAyMzk0MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtOTMgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIKKzAwMEQ5MyAgICAgKGJhc2UgMTYpCQlBcHBsZSBDb21wdXRlcgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtOTQgICAoaGV4KQkJQUZBUiBDb21tdW5pY2F0aW9ucyxJbmMKKzAwMEQ5NCAgICAgKGJhc2UgMTYpCQlBRkFSIENvbW11bmljYXRpb25zLEluYworCQkJCTgxIERhdmlkIExvdmUgUGxhY2UKKwkJCQlTdWl0ZSBBCisJCQkJU2FudGEgQmFyYmFyYSBDQSA5MzExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtOTUgICAoaGV4KQkJT3B0aS1jZWxsLCBJbmMuCiswMDBEOTUgICAgIChiYXNlIDE2KQkJT3B0aS1jZWxsLCBJbmMuCisJCQkJMTAwIEhpZ2ggVG93ZXIgQmx2ZC4sICBTdWl0ZSAzMDEKKwkJCQlQaXR0c2J1cmdoIFBBIDE1MjA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC05NiAgIChoZXgpCQlWdGVyYSBUZWNobm9sb2d5IEluYy4KKzAwMEQ5NiAgICAgKGJhc2UgMTYpCQlWdGVyYSBUZWNobm9sb2d5IEluYy4KKwkJCQlObyAzNCwgSW5kdXN0cmlhbCBFYXN0LiA0dGggUmQuCisJCQkJSHNpbkNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC05NyAgIChoZXgpCQlUcm9wb3MgTmV0d29ya3MsIEluYy4KKzAwMEQ5NyAgICAgKGJhc2UgMTYpCQlUcm9wb3MgTmV0d29ya3MsIEluYy4KKwkJCQkxNzEwIFMuIEFtcGhsZXR0IEJsdmQsICBTdWl0ZSAzMDQKKwkJCQlTYW4gTWF0ZW8gQ0EgOTQ0MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELTk4ICAgKGhleCkJCVMuVy5BLkMuIFNjaG1pdHQtV2FsdGVyIEF1dG9tYXRpb24gQ29uc3VsdCBHbWJICiswMDBEOTggICAgIChiYXNlIDE2KQkJUy5XLkEuQy4gU2NobWl0dC1XYWx0ZXIgQXV0b21hdGlvbiBDb25zdWx0IEdtYkgKKwkJCQlPZWRlbnB1bGxhY2ggMQorCQkJCU9iZXJoYWNoaW5nIEJhdmFyaWEgODIwNDEKKwkJCQlHRVJNQU5ZCisKKzAwLTBELTk5ICAgKGhleCkJCU9yYml0YWwgU2NpZW5jZXMgQ29ycC47IExhdW5jaCBTeXN0ZW1zIEdyb3VwCiswMDBEOTkgICAgIChiYXNlIDE2KQkJT3JiaXRhbCBTY2llbmNlcyBDb3JwLjsgTGF1bmNoIFN5c3RlbXMgR3JvdXAKKwkJCQkzMzgwIFMuIFByaWNlIFJkLgorCQkJCUNoYW5kbGVyLCBBWiA4NTI0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtOUEgICAoaGV4KQkJSU5GT1RFQyBMVEQKKzAwMEQ5QSAgICAgKGJhc2UgMTYpCQlJTkZPVEVDIExURAorCQkJCVRoZSBNYWx0aW5ncworCQkJCVRhbXdvcnRoIFJvYWQKKwkJCQlBc2hieS1kZS1sYS1ab3VjaCBMZWljZXN0ZXJzaGlyZSBMRTY1IDJQUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBELTlCICAgKGhleCkJCUhlcmFldXMgRWxlY3Ryby1OaXRlIEludGVybmF0aW9uYWwgTi5WLgorMDAwRDlCICAgICAoYmFzZSAxNikJCUhlcmFldXMgRWxlY3Ryby1OaXRlIEludGVybmF0aW9uYWwgTi5WLgorCQkJCUNlbnRydW0gWnVpZCAxMTA1CisJCQkJSG91dGhhbGVuICAzNTMwCisJCQkJQkVMR0lVTQorCiswMC0wRC05QyAgIChoZXgpCQlFbGFuIEdtYkggJiBDbyBLRworMDAwRDlDICAgICAoYmFzZSAxNikJCUVsYW4gR21iSCAmIENvIEtHCisJCQkJSW0gT3N0cGFyayAyCisJCQkJV2V0dGVuYmVyZyBIZXNzZW4gMzU0MzUKKwkJCQlHRVJNQU5ZCisKKzAwLTBELTlEICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDBEOUQgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OSBTb3V0aAorCQkJCW14MDcwNDA1CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtOUUgICAoaGV4KQkJVE9LVURFTiBPSElaVU1JIFNFSVNBS1VTWU8gQ28uLEx0ZC4KKzAwMEQ5RSAgICAgKGJhc2UgMTYpCQlUT0tVREVOIE9ISVpVTUkgU0VJU0FLVVNZTyBDby4sTHRkLgorCQkJCVlvc2hpZGEgMTIyMQorCQkJCU91cmFndW4gT2hpenVtaSBHdW5tYSAzNzAtMDUyMworCQkJCUpBUEFOCisKKzAwLTBELTlGICAgKGhleCkJCVJGIE1pY3JvIERldmljZXMKKzAwMEQ5RiAgICAgKGJhc2UgMTYpCQlSRiBNaWNybyBEZXZpY2VzCisJCQkJMjE5MSBaYW5rZXIgUm9hZAorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1BMCAgIChoZXgpCQlORURBUCBOLlYuCiswMDBEQTAgICAgIChiYXNlIDE2KQkJTkVEQVAgTi5WLgorCQkJCVAuTy5Cb3ggMTAzCisJCQkJUC5PLkJveCA2CisJCQkJR1JPRU5MTyBHTEQgNzE0MSBBQworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBELUExICAgKGhleCkJCU1JUkFFIElUUyBDby4sTFRELgorMDAwREExICAgICAoYmFzZSAxNikJCU1JUkFFIElUUyBDby4sTFRELgorCQkJCTdGLCBDaGFuZ0h5dW4gQi9ELDk2MC0xLEhvR3llMURvbmcKKwkJCQlBbllhbmcgS3lvbmdpR2lEbyA0MzEtODQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELUEyICAgKGhleCkJCUluZnJhbnQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDBEQTIgICAgIChiYXNlIDE2KQkJSW5mcmFudCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk0ODgyMCBLYXRvIFJvYWQKKwkJCQlTdGUgMTEwQgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUEzICAgKGhleCkJCUVtZXJnaW5nIFRlY2hub2xvZ2llcyBMaW1pdGVkCiswMDBEQTMgICAgIChiYXNlIDE2KQkJRW1lcmdpbmcgVGVjaG5vbG9naWVzIExpbWl0ZWQKKwkJCQlXb25nJ3MgSW5kdXN0cmlhbCBDZW50cmUsIDE4MCBXYWkgWWlwIFN0CisJCQkJS3d1biBUb25nLCBLb3dsb29uCisJCQkJTmlsIAorCQkJCUhPTkcgS09ORworCiswMC0wRC1BNCAgIChoZXgpCQlET1NDSCAmIEFNQU5EIFNZU1RFTVMgQUcKKzAwMERBNCAgICAgKGJhc2UgMTYpCQlET1NDSCAmIEFNQU5EIFNZU1RFTVMgQUcKKwkJCQlTY2hlaW5lcnN0cmFzc2UgOQorCQkJCU11bmljaCBCYXZhcmlhIDgxNjc5CisJCQkJR0VSTUFOWQorCiswMC0wRC1BNSAgIChoZXgpCQlGYWJyaWM3IFN5c3RlbXMsIEluYworMDAwREE1ICAgICAoYmFzZSAxNikJCUZhYnJpYzcgU3lzdGVtcywgSW5jCisJCQkJMTMwMCBDcml0dGVuZGVuIExhbmUKKwkJCQlTdWl0ZSAzMDIKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1BNiAgIChoZXgpCQlVbml2ZXJzYWwgU3dpdGNoaW5nIENvcnBvcmF0aW9uCiswMDBEQTYgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIFN3aXRjaGluZyBDb3Jwb3JhdGlvbgorCQkJCTc2NzEgU2FuIEZlcm5hbmRvIFJkCisJCQkJQnVyYmFuayBDQSA5MTUwNS0xMDczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1BNyAgIChoZXgpCQlQUklWQVRFCiswMDBEQTcgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTBELUE4ICAgKGhleCkJCVRlbGV0cm9uaWNzIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMERBOCAgICAgKGJhc2UgMTYpCQlUZWxldHJvbmljcyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJMjUyNSBQZWFybCBCdWNrIFJvYWQKKwkJCQlCcmlzdG9sIFBlbm5zeWx2YW5pYSAxOTAwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtQTkgICAoaGV4KQkJVC5FLkEuTS4gUy5MLgorMDAwREE5ICAgICAoYmFzZSAxNikJCVQuRS5BLk0uIFMuTC4KKwkJCQlQYXJxdWUgVGVjbm9sb2dpY28gRWRpZmljaW8gMTA4CisJCQkJWkFNVURJTyBCaXprYWlhIDQ4MTcwCisJCQkJU1BBSU4KKworMDAtMEQtQUEgICAoaGV4KQkJUy5BLlRlaG5vbG9neSBjby4sTHRkLgorMDAwREFBICAgICAoYmFzZSAxNikJCVMuQS5UZWhub2xvZ3kgY28uLEx0ZC4KKwkJCQk4MC0xMiBZYW5namFlIDEgRG9uZworCQkJCVNlb2NobyBHdQorCQkJCVNlb3VsIFNvdXRoIEtvcmVhIDEzNy04OTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEQtQUIgICAoaGV4KQkJUGFya2VyIEhhbm5pZmluIEdtYkggRWxlY3Ryb21lY2hhbmljYWwgRGl2aXNpb24gRXVyb3BlCiswMDBEQUIgICAgIChiYXNlIDE2KQkJUGFya2VyIEhhbm5pZmluIEdtYkggRWxlY3Ryb21lY2hhbmljYWwgRGl2aXNpb24gRXVyb3BlCisJCQkJUm9iZXJ0LUJvc2NoLVN0cmFzc2UgMjIKKwkJCQlPZmZlbmJ1cmcgQmFkZW4gV8O8cnR0ZW1iZXJnIDc3NjU2CisJCQkJR0VSTUFOWQorCiswMC0wRC1BQyAgIChoZXgpCQlKYXBhbiBDQk0gQ29ycG9yYXRpb24KKzAwMERBQyAgICAgKGJhc2UgMTYpCQlKYXBhbiBDQk0gQ29ycG9yYXRpb24KKwkJCQk1LTY4LTEwIE5ha2FubywKKwkJCQlOYWthbm8tS3UgVG9reW8gMTY0LTAwMDEKKwkJCQlKQVBBTgorCiswMC0wRC1BRCAgIChoZXgpCQlEYXRhcHJvYmUgSW5jCiswMDBEQUQgICAgIChiYXNlIDE2KQkJRGF0YXByb2JlIEluYworCQkJCTEgUGVhcmwgQ3QgVW5pdCBCCisJCQkJQWxsZW5kYWxlIE5KIDA3NDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1BRSAgIChoZXgpCQlTQU1TVU5HIEhFQVZZIElORFVTVFJJRVMgQ08uLCBMVEQuCiswMDBEQUUgICAgIChiYXNlIDE2KQkJU0FNU1VORyBIRUFWWSBJTkRVU1RSSUVTIENPLiwgTFRELgorCQkJCTQ5MywgQmFud2VvbC1SaSwgVGFlYW4tRXVwCisJCQkJSHdhc2VvbmctQ2l0eSBLeWVvbmdnaS1EbyA0NDUtOTczCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELUFGICAgKGhleCkJCVBsZXh1cyBDb3JwIChVSykgTHRkCiswMDBEQUYgICAgIChiYXNlIDE2KQkJUGxleHVzIENvcnAgKFVLKSBMdGQKKwkJCQlQaW5uYWNsZSBIaWxsCisJCQkJS2Vsc28gUm94YnVyZ2hzaGlyZSBURDUgOFhYCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEQtQjAgICAoaGV4KQkJT2x5bS10ZWNoIENvLixMdGQuCiswMDBEQjAgICAgIChiYXNlIDE2KQkJT2x5bS10ZWNoIENvLixMdGQuCisJCQkJUm9vbSA0MDEvNDAyLE5vLjEsU29uZ2xpbmcgUm9hZCxIaS10ZWNoCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAzMQorCQkJCUNISU5BCisKKzAwLTBELUIxICAgKGhleCkJCUphcGFuIE5ldHdvcmsgU2VydmljZSBDby4sIEx0ZC4KKzAwMERCMSAgICAgKGJhc2UgMTYpCQlKYXBhbiBOZXR3b3JrIFNlcnZpY2UgQ28uLCBMdGQuCisJCQkJTWF0b2JhIEJsZGcuIDZGLAorCQkJCTMtNy03IElyaWZ1bmUKKwkJCQkgQ2h1by1rdSBUb2t5byAxMDQtMDA0MgorCQkJCUpBUEFOCisKKzAwLTBELUIyICAgKGhleCkJCUFtbWFzc28sIEluYy4KKzAwMERCMiAgICAgKGJhc2UgMTYpCQlBbW1hc3NvLCBJbmMuCisJCQkJMzQ1IFN1bW1lciBTdHJlZXQKKwkJCQlCb3N0b24gTUEgMDIyMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUIzICAgKGhleCkJCVNETyBDb21tdW5pY2F0aW9uIENvcnBlcmF0aW9uCiswMDBEQjMgICAgIChiYXNlIDE2KQkJU0RPIENvbW11bmljYXRpb24gQ29ycGVyYXRpb24KKwkJCQk2RiwgTm8uMTEyLCBTaGluIE1pbiBTdHJlZXQKKwkJCQlDaHVuZyBIbyBDaXR5IFRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUI0ICAgKGhleCkJCU5FVEFTUQorMDAwREI0ICAgICAoYmFzZSAxNikJCU5FVEFTUQorCQkJCTMgcnVlIEFyY2hpbWVkZQorCQkJCVZpbGxlbmV1dmUgZCdBc2NxIG5vcmQgNTk2NTAKKwkJCQlGUkFOQ0UKKworMDAtMEQtQjUgICAoaGV4KQkJR0xPQkFMU0FUIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKzAwMERCNSAgICAgKGJhc2UgMTYpCQlHTE9CQUxTQVQgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCUZhciBFYXN0IENlbnR1cnkgUGFyaworCQkJCUNodW5nIEhvIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtQjYgICAoaGV4KQkJQnJvYWRjb20gQ29ycG9yYXRpb24KKzAwMERCNiAgICAgKGJhc2UgMTYpCQlCcm9hZGNvbSBDb3Jwb3JhdGlvbgorCQkJCTEzNjMgUmVkd29vZCBXYXkKKwkJCQlQZXRhbHVtYSBDQSA5NDk1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtQjcgICAoaGV4KQkJU0FOS08gRUxFQ1RSSUMgQ08sLkxURAorMDAwREI3ICAgICAoYmFzZSAxNikJCVNBTktPIEVMRUNUUklDIENPLC5MVEQKKwkJCQk3LTIzIFRhbWFub2ktY2hvIEF0c3V0YS1rdQorCQkJCU5hZ295YS1zaGkgQWljaGkgNDU2LTAwMjUKKwkJCQlKQVBBTgorCiswMC0wRC1COCAgIChoZXgpCQlTQ0hJTExFUiBBRworMDAwREI4ICAgICAoYmFzZSAxNikJCVNDSElMTEVSIEFHCisJCQkJQWx0Z2Fzc2UgNjgKKwkJCQlCYWFyIFp1ZyA2MzAwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEQtQjkgICAoaGV4KQkJUEMgRW5naW5lcyBHbWJICiswMDBEQjkgICAgIChiYXNlIDE2KQkJUEMgRW5naW5lcyBHbWJICisJCQkJR2VybWFuaWFzdHJhc3NlIDY4CisJCQkJODAwNiBadXJpY2ggCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEQtQkEgICAoaGV4KQkJT2PDqSBEb2N1bWVudCBUZWNobm9sb2dpZXMgR21iSAorMDAwREJBICAgICAoYmFzZSAxNikJCU9jw6kgRG9jdW1lbnQgVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlNYXgtU3Ryb21leWVyLVN0ci4gMTE2CisJCQkJS29uc3RhbnogIDc4NDY3CisJCQkJR0VSTUFOWQorCiswMC0wRC1CQiAgIChoZXgpCQlOaXBwb24gRGVudHN1IENvLixMdGQuCiswMDBEQkIgICAgIChiYXNlIDE2KQkJTmlwcG9uIERlbnRzdSBDby4sTHRkLgorCQkJCTItMjEtMSxJc29qaQorCQkJCU1pbmF0by1LdQorCQkJCU9zYWthICA1NTItMDAwMworCQkJCUpBUEFOCisKKzAwLTBELUJDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMERCQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUJEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMERCRCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUJFICAgKGhleCkJCUJlbCBGdXNlIEV1cm9wZSBMdGQuLFVLCiswMDBEQkUgICAgIChiYXNlIDE2KQkJQmVsIEZ1c2UgRXVyb3BlIEx0ZC4sVUsKKwkJCQk0NS80NiBSaXZlcnNpZGUgMgorCQkJCU1lZHdheSBDaXR5IEVzdGF0ZQorCQkJCVJvY2hlc3RlciBLZW50IE1FMiA0RFAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC1CRiAgIChoZXgpCQlUZWtUb25lIFNvdW5kICYgU2lnbmFsIE1mZy4sIEluYy4KKzAwMERCRiAgICAgKGJhc2UgMTYpCQlUZWtUb25lIFNvdW5kICYgU2lnbmFsIE1mZy4sIEluYy4KKwkJCQkyNzcgSW5kdXN0cmlhbCBQYXJrIFJkLgorCQkJCUZyYW5rbGluIE5DIDI4NzM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1DMCAgIChoZXgpCQlTcGFnYXQgQVMKKzAwMERDMCAgICAgKGJhc2UgMTYpCQlTcGFnYXQgQVMKKwkJCQlUb25uZSBIdXRpZmVsZHRwbC4gMgorCQkJCUhhbGRlbiBPc3Rmb2xkIDE3NjcKKwkJCQlOT1JXQVkKKworMDAtMEQtQzEgICAoaGV4KQkJU2FmZVdlYiBJbmMKKzAwMERDMSAgICAgKGJhc2UgMTYpCQlTYWZlV2ViIEluYworCQkJCTIyMDAgUG93ZWxsIFN0LiBTdGUgNTkwCisJCQkJRW1lcnl2aWxsZSBDQSA5NDYwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtQzIgICAoaGV4KQkJUFJJVkFURQorMDAwREMyICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wRC1DMyAgIChoZXgpCQlGaXJzdCBDb21tdW5pY2F0aW9uLCBJbmMuCiswMDBEQzMgICAgIChiYXNlIDE2KQkJRmlyc3QgQ29tbXVuaWNhdGlvbiwgSW5jLgorCQkJCTFGLCBOby4zNiwgSW5kdXN0cnkgRS4gUmQuIElWLiwKKwkJCQkgU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUM0ICAgKGhleCkJCUVtY29yZSBDb3Jwb3JhdGlvbgorMDAwREM0ICAgICAoYmFzZSAxNikJCUVtY29yZSBDb3Jwb3JhdGlvbgorCQkJCTE2MDAgRXViYW5rIEJsdmQsIFNFCisJCQkJQWxidXF1ZXJxdWUgTmV3IE1leGljbyA4NzEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtQzUgICAoaGV4KQkJRWNob1N0YXIgR2xvYmFsIEIuVi4gCiswMDBEQzUgICAgIChiYXNlIDE2KQkJRWNob1N0YXIgR2xvYmFsIEIuVi4gCisJCQkJU2NodWlsZW5idXJnbGFhbiA1YQorCQkJCUFsbWVsbyBPdmVyaWpzc2VsIDc2MDRCSgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBELUM2ICAgKGhleCkJCURpZ2lSb3NlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDBEQzYgICAgIChiYXNlIDE2KQkJRGlnaVJvc2UgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gMSwgQWxsZXkgMjAsIExhbmUgMjYgUnVlaWd1YW5nIFJvYWQsCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUM3ICAgKGhleCkJCUNPU01JQyBFTkdJTkVFUklORyBJTkMuCiswMDBEQzcgICAgIChiYXNlIDE2KQkJQ09TTUlDIEVOR0lORUVSSU5HIElOQy4KKwkJCQkxLTMtNSwgTmlzaGloaXJheWFtYQorCQkJCUhpbm8tc2hpIFRPS1lPIDE5MS0wMDU1CisJCQkJSkFQQU4KKworMDAtMEQtQzggICAoaGV4KQkJQWlyTWFnbmV0LCBJbmMKKzAwMERDOCAgICAgKGJhc2UgMTYpCQlBaXJNYWduZXQsIEluYworCQkJCTgzMCBFLiBBcnF1ZXMgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1DOSAgIChoZXgpCQlUSEFMRVMgRWxla3Ryb25payBTeXN0ZW1lIEdtYkgKKzAwMERDOSAgICAgKGJhc2UgMTYpCQlUSEFMRVMgRWxla3Ryb25payBTeXN0ZW1lIEdtYkgKKwkJCQlGcml0ei1MdWR3aWctU3RyLiAxCisJCQkJS29ibGVueiAgNTYwNzAKKwkJCQlHRVJNQU5ZCisKKzAwLTBELUNBICAgKGhleCkJCVRhaXQgRWxlY3Ryb25pY3MKKzAwMERDQSAgICAgKGJhc2UgMTYpCQlUYWl0IEVsZWN0cm9uaWNzCisJCQkJNTM1IFdhaXJha2VpIFJkCisJCQkJUE8gQm94IDE2NDUKKwkJCQlDaHJpc3RjaHVyY2ggQ2FudGVyYnVyeSA4MDA1CisJCQkJTkVXIFpFQUxBTkQKKworMDAtMEQtQ0IgICAoaGV4KQkJUGV0Y29ta29yZWEgQ28uLCBMdGQuCiswMDBEQ0IgICAgIChiYXNlIDE2KQkJUGV0Y29ta29yZWEgQ28uLCBMdGQuCisJCQkJNUYsNjg5LTQ3LEdldW1qZW9uZy1kb25nLEd1bnBvLXNpLEt5dW5nZworCQkJCUt5dW5nZ2ktZG8gZ3VucG8tc2kgNDM1LTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC1DQyAgIChoZXgpCQlORU9TTUFSVCBDb3JwLgorMDAwRENDICAgICAoYmFzZSAxNikJCU5FT1NNQVJUIENvcnAuCisJCQkJWW9vbi1CL0QgNEYsIDQ3NS0zMSwgQmFuZ2JhZSAyLWRvbmcKKwkJCQlTZW91bCBTZW9jaG8tZ3UgMTQ3LTgxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRC1DRCAgIChoZXgpCQlHUk9VUEUgVFhDT00KKzAwMERDRCAgICAgKGJhc2UgMTYpCQlHUk9VUEUgVFhDT00KKwkJCQlaSSBEVSBQRVRJVCBDTEFNQVJUCisJCQkJMTAgQVZFTlVFIERFU0NBUlRFUworCQkJCUxFIFBMRVNTSVMgUk9CSU5TT04gSEFVVFMtREUtU0VJTkUgOTIzNTAKKwkJCQlGUkFOQ0UKKworMDAtMEQtQ0UgICAoaGV4KQkJRHluYXZhYyBUZWNobm9sb2d5IFB0ZSBMdGQKKzAwMERDRSAgICAgKGJhc2UgMTYpCQlEeW5hdmFjIFRlY2hub2xvZ3kgUHRlIEx0ZAorCQkJCTMwIFR1YXMgQXZlbnVlIDkKKwkJCQk2MzkxODMKKwkJCQlTSU5HQVBPUkUKKworMDAtMEQtQ0YgICAoaGV4KQkJQ2lkcmEgQ29ycC4KKzAwMERDRiAgICAgKGJhc2UgMTYpCQlDaWRyYSBDb3JwLgorCQkJCTUwIEJhcm5zIFBhcmsgTm9ydGgKKwkJCQlXYWxsaW5nZm9yZCBDVCAwNjQ5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtRDAgICAoaGV4KQkJVGV0cmFUZWMgSW5zdHJ1bWVudHMgR21iSAorMDAwREQwICAgICAoYmFzZSAxNikJCVRldHJhVGVjIEluc3RydW1lbnRzIEdtYkgKKwkJCQlHZXdlcmJlc3RyYXNzZSA4CisJCQkJU3RlaW5lbmJyb25uIEJXIDcxMTQ0CisJCQkJR0VSTUFOWQorCiswMC0wRC1EMSAgIChoZXgpCQlTdHJ5a2VyIENvcnBvcmF0aW9uCiswMDBERDEgICAgIChiYXNlIDE2KQkJU3RyeWtlciBDb3Jwb3JhdGlvbgorCQkJCTQxMDAgRSBNaWxoYW0KKwkJCQlLYWxhbWF6b28gTUkgNDkwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUQyICAgKGhleCkJCVNpbXJhZCBPcHRyb25pY3MgQVNBCiswMDBERDIgICAgIChiYXNlIDE2KQkJU2ltcmFkIE9wdHJvbmljcyBBU0EKKwkJCQlFbnNqw7h2ZWllbiAyM0IKKwkJCQlQTyBCb3ggNjExNCBFdHRlcnN0YWQgTk8tMDYwMiBPc2xvIAorCQkJCU5PUldBWQorCiswMC0wRC1EMyAgIChoZXgpCQlTQU1XT08gVGVsZWNvbW11bmljYXRpb24gQ28uLEx0ZC4KKzAwMEREMyAgICAgKGJhc2UgMTYpCQlTQU1XT08gVGVsZWNvbW11bmljYXRpb24gQ28uLEx0ZC4KKwkJCQkKKwkJCQkxNzEsIERhbmdqdW5nLURvbmcsCisJCQkJR3VucG8gS3lvdW5nLUdpIDQzNS04MzEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEQtRDQgICAoaGV4KQkJU3ltYW50ZWMgQ29ycG9yYXRpb24KKzAwMERENCAgICAgKGJhc2UgMTYpCQlTeW1hbnRlYyBDb3Jwb3JhdGlvbgorCQkJCTI3NSAybmQgQXZlCisJCQkJV2FsdGhhbSBNQSAwMjU0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtRDUgICAoaGV4KQkJTydSSVRFIFRFQ0hOT0xPR1kgQ08uLExURAorMDAwREQ1ICAgICAoYmFzZSAxNikJCU8nUklURSBURUNITk9MT0dZIENPLixMVEQKKwkJCQk0Zi04LE5PIDgwLEdVQU5HRlUgUkQuU0VDIDIsU0FOQ0hVTkcKKwkJCQlUQUlQRUkgQ09VTlRZICAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUQ2ICAgKGhleCkJCUlUSSAgICBMVEQKKzAwMERENiAgICAgKGJhc2UgMTYpCQlJVEkgICAgTFRECisJCQkJUiZELElUSSBCYW5nYWxvcmUgQ29tcGxleAorCQkJCUYtODYgQmxkZy4KKwkJCQlEb29yYXZhbmkgTmFnYXIsIEJhbmdhbG9yZSBLYXJuYXRha2EgU3RhdGUgNTYwMDE2CisJCQkJSU5ESUEKKworMDAtMEQtRDcgICAoaGV4KQkJQnJpZ2h0CiswMDBERDcgICAgIChiYXNlIDE2KQkJQnJpZ2h0CisJCQkJMS0xMi00NCBBb2JhZGFpCisJCQkJS2FzaGl3YS1zaGkgQ2hpYmEta2VuIDI3Ny0wMDU1CisJCQkJSkFQQU4KKworMDAtMEQtRDggICAoaGV4KQkJQkJOCiswMDBERDggICAgIChiYXNlIDE2KQkJQkJOCisJCQkJN0YtMyxOTy4xODYsIEppYW4gWWkgUmQgLiwgQ2h1bmcgSG8gQ2l0eQorCQkJCVRhaXBlaSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC1EOSAgIChoZXgpCQlBbnRvbiBQYWFyIEdtYkgKKzAwMEREOSAgICAgKGJhc2UgMTYpCQlBbnRvbiBQYWFyIEdtYkgKKwkJCQlBbnRvbi1QYWFyLVN0cmFzc2UgMjAKKwkJCQlHcmF6ICA4MDU0CisJCQkJQVVTVFJJQQorCiswMC0wRC1EQSAgIChoZXgpCQlBTExJRUQgVEVMRVNJUyBLLksuCiswMDBEREEgICAgIChiYXNlIDE2KQkJQUxMSUVEIFRFTEVTSVMgSy5LLgorCQkJCVBJQVpaQSBUSVJBTkEgTi4gMjQvNCBCCisJCQkJTUlMQU5PICAyMDE0NworCQkJCUlUQUxZCisKKzAwLTBELURCICAgKGhleCkJCUFJUldBVkUgVEVDSE5PTE9HSUVTIElOQy4KKzAwMEREQiAgICAgKGJhc2UgMTYpCQlBSVJXQVZFIFRFQ0hOT0xPR0lFUyBJTkMuCisJCQkJM0YsTm8uOSxJbmR1c3RyeSBFLiA5dGggUm9hZAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC1EQyAgIChoZXgpCQlWQUMKKzAwMEREQyAgICAgKGJhc2UgMTYpCQlWQUMKKwkJCQkyMEYsIE4wLiA0NTYsIFNlYy4gNCwgSHNpbiBZaSBSZC4sCisJCQkJVGFpcGVpICAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUREICAgKGhleCkJCVBST0bDg8KdTE8gVEVMUkEgRUxFS1RST07Dg8KdSyBTQU5BWcODwp0gVkUgVMODwp1DQVJFVCBBLsODxb4uCiswMDBEREQgICAgIChiYXNlIDE2KQkJUFJPRsODwp1MTyBURUxSQSBFTEVLVFJPTsODwp1LIFNBTkFZw4PCnSBWRSBUw4PCnUNBUkVUIEEuw4PFvi4KKwkJCQlDRU1BTCBTQUjDg8KdUiBTT0tBSyBOTzoyNi0yOAorCQkJCU1FQ8ODwp1Ew4PCnVlFS8OD4oCTWQorCQkJCcODwp1TVEFOQlVMIFRVUktFWSAzNDI1NQorCQkJCVRVUktFWQorCiswMC0wRC1ERSAgIChoZXgpCQlKb3l0ZWNrIENvLiwgTHRkLgorMDAwRERFICAgICAoYmFzZSAxNikJCUpveXRlY2sgQ28uLCBMdGQuCisJCQkJMTlGLCBOby40LCBTZWMuIDMsIE1pbiBDaHVhbiBFYXN0IFJkLgorCQkJCVRhaXBlaSAgMTA1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC1ERiAgIChoZXgpCQlKYXBhbiBJbWFnZSAmIE5ldHdvcmsgSW5jLgorMDAwRERGICAgICAoYmFzZSAxNikJCUphcGFuIEltYWdlICYgTmV0d29yayBJbmMuCisJCQkJNS0yOS0xMiBTaGliYQorCQkJCU1pbmF0by1rdSBUb2t5byAxMDgtMDAxNAorCQkJCUpBUEFOCisKKzAwLTBELUUwICAgKGhleCkJCUlDUERBUyBDby4sTFRECiswMDBERTAgICAgIChiYXNlIDE2KQkJSUNQREFTIENvLixMVEQKKwkJCQkgTm8uIDExMSwgS3VhbmctRnUgTi4gUmQuLCBIc2luLUNodSBJbmR1CisJCQkJSFNJTkNIVSAgMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC1FMSAgIChoZXgpCQlDb250cm9sIFByb2R1Y3RzLCBJbmMuCiswMDBERTEgICAgIChiYXNlIDE2KQkJQ29udHJvbCBQcm9kdWN0cywgSW5jLgorCQkJCTE3MjQgTGFrZSBEcml2ZSBXZXN0CisJCQkJQ2hhbmhhc3NlbiBNTiA1NTMxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtRTIgICAoaGV4KQkJQ01aIFNpc3RlbWkgRWxldHRyb25pY2kKKzAwMERFMiAgICAgKGJhc2UgMTYpCQlDTVogU2lzdGVtaSBFbGV0dHJvbmljaQorCQkJCVZpYSBkZWxsJ0FydGlnaW5hdG8sIDIxCisJCQkJVmFzY29uIGRpIENhcmJvbmVyYSBUcmV2aXNvIDMxMDUwCisJCQkJSVRBTFkKKworMDAtMEQtRTMgICAoaGV4KQkJQVQgU3dlZGVuIEFCCiswMDBERTMgICAgIChiYXNlIDE2KQkJQVQgU3dlZGVuIEFCCisJCQkJUC5PLiBCb3ggMTE2NgorCQkJCUlzYWZqb3Jkc2dhdGFuIDMwQgorCQkJCUtpc3RhIFN0b2NraG9sbSBTRS0xNjQgMjYKKwkJCQlTV0VERU4KKworMDAtMEQtRTQgICAoaGV4KQkJRElHSU5JQ1MsIEluYy4KKzAwMERFNCAgICAgKGJhc2UgMTYpCQlESUdJTklDUywgSW5jLgorCQkJCTE3OC03CisJCQkJUG9pLWRvbmcKKwkJCQlLYW5nbmFtLWd1IFNlb3VsIDEzNS05NjEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEQtRTUgICAoaGV4KQkJU2Ftc3VuZyBUaGFsZXMKKzAwMERFNSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIFRoYWxlcworCQkJCTI1OSBHb25nZGFuLURvbmcKKwkJCQlHdW1pLUNpdHkgR3llb25nc2FuZ2J1ay1kbyA3MzAtOTA0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELUU2ICAgKGhleCkJCVlPVU5HQk8gRU5HSU5FRVJJTkcgQ08uLExURAorMDAwREU2ICAgICAoYmFzZSAxNikJCVlPVU5HQk8gRU5HSU5FRVJJTkcgQ08uLExURAorCQkJCU10LjIyLCBKYWV1bmdhLXJpLCBKaWdzYW4tRXVwLAorCQkJCUNoZW9uYW4tc2hpIENodW5nY2hlb25nbmFtLWRvICMzMzAtODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBELUU3ICAgKGhleCkJCVNuYXAtb24gT0VNIEdyb3VwCiswMDBERTcgICAgIChiYXNlIDE2KQkJU25hcC1vbiBPRU0gR3JvdXAKKwkJCQkyMzMzIEVhc3QgV2FsdG9uIEJsdmQuCisJCQkJQXVidXJuIEhpbGxzIE1JIDQ4MzI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1FOCAgIChoZXgpCQlOYXNhY28gRWxlY3Ryb25pY3MgUHRlLiBMdGQKKzAwMERFOCAgICAgKGJhc2UgMTYpCQlOYXNhY28gRWxlY3Ryb25pY3MgUHRlLiBMdGQKKwkJCQlMZXZlbCA0LCBOYXNhY28gVGVjaCBDZW50cmUKKwkJCQk0OSwgQ2hhbmdpIFNvdXRoIEF2ZW51ZSAyCisJCQkJNDg2MDU2CisJCQkJU0lOR0FQT1JFCisKKzAwLTBELUU5ICAgKGhleCkJCU5hcGF0ZWNoIEFwcworMDAwREU5ICAgICAoYmFzZSAxNikJCU5hcGF0ZWNoIEFwcworCQkJCVJ1bmRvZnJiaXZlaiAyNzEsIDEKKwkJCQlOYWVydW0gIDI4NTAKKwkJCQlERU5NQVJLCisKKzAwLTBELUVBICAgKGhleCkJCUtpbmd0ZWwgVGVsZWNvbW11bmljYXRpb24gQ29ycC4KKzAwMERFQSAgICAgKGJhc2UgMTYpCQlLaW5ndGVsIFRlbGVjb21tdW5pY2F0aW9uIENvcnAuCisJCQkJMTQ3IEthbmcgTmluZyBTdC4KKwkJCQlIc2kgQ2hpaCBDaXR5IFRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBELUVCICAgKGhleCkJCUNvbXBYcyBMaW1pdGVkCiswMDBERUIgICAgIChiYXNlIDE2KQkJQ29tcFhzIExpbWl0ZWQKKwkJCQlSb2JlcnQgRGVuaG9sbSBIb3VzZQorCQkJCU51dGZpZWxkCisJCQkJUmVkaGlsbCBTdXJyZXkgUkgxIDRIVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBELUVDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMERFQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUVEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMERFRCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUVFICAgKGhleCkJCUFuZHJldyBSRiBQb3dlciBBbXBsaWZpZXIgR3JvdXAKKzAwMERFRSAgICAgKGJhc2UgMTYpCQlBbmRyZXcgUkYgUG93ZXIgQW1wbGlmaWVyIEdyb3VwCisJCQkJNDAgVGVjaG5vbG9neSBEcml2ZQorCQkJCVdhcnJlbiBOSiAwNzA1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtRUYgICAoaGV4KQkJU29jLiBDb29wLiBCaWxhbmNpYWkKKzAwMERFRiAgICAgKGJhc2UgMTYpCQlTb2MuIENvb3AuIEJpbGFuY2lhaQorCQkJCXZpYSBTLkZlcnJhcmkgMTYKKwkJCQlDYW1wb2dhbGxpYW5vIE1vZGVuYSA0MTAxMQorCQkJCUlUQUxZCisKKzAwLTBELUYwICAgKGhleCkJCVFDT00gVEVDSE5PTE9HWSBJTkMuCiswMDBERjAgICAgIChiYXNlIDE2KQkJUUNPTSBURUNITk9MT0dZIElOQy4KKwkJCQk3Ri4sIE5PIDE3OCwgTUlORyBDSFVBTiBFLiBSRC4sIFNFQy4gMywKKwkJCQlUQUlQRUkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtRjEgICAoaGV4KQkJSU9OSVggSU5DLgorMDAwREYxICAgICAoYmFzZSAxNikJCUlPTklYIElOQy4KKwkJCQlTc2FuZ3lvbmcgSVQgVHdpbiBUb3dlciA2MDQsIDQ0Mi0xNywgU2FuZ2RhZXdvbi1kb25nLCBKdW5nd29uLWd1LAorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2Mi0xMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEQtRjIgICAoaGV4KQkJUFJJVkFURQorMDAwREYyICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wRC1GMyAgIChoZXgpCQlBc21heCBTb2x1dGlvbnMKKzAwMERGMyAgICAgKGJhc2UgMTYpCQlBc21heCBTb2x1dGlvbnMKKwkJCQlUYXRhcnNrYSA1CisJCQkJQ3JhY293ICAzMC0xMDMKKwkJCQlQT0xBTkQKKworMDAtMEQtRjQgICAoaGV4KQkJV2F0ZXJ0ZWsgQ28uCiswMDBERjQgICAgIChiYXNlIDE2KQkJV2F0ZXJ0ZWsgQ28uCisJCQkJUm9vbSAxMDA2LEhhaXRhaSBidWlsZGluZyxub3J0aCBzaSBIdWFuCisJCQkJWmhvbmcgUm9hZCxIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgzCisJCQkJQ0hJTkEKKworMDAtMEQtRjUgICAoaGV4KQkJVGVsZXRyb25pY3MgSW50ZXJuYXRpb25hbCBJbmMuCiswMDBERjUgICAgIChiYXNlIDE2KQkJVGVsZXRyb25pY3MgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJMiBDaG9rZSBDaGVycnkgUm9hZAorCQkJCVN1aXRlICMxMDEKKwkJCQlSb2NrdmlsbGUgTUQgMjA4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBELUY2ICAgKGhleCkJCVRlY2hub2xvZ3kgVGhlc2F1cnVzIENvcnAuCiswMDBERjYgICAgIChiYXNlIDE2KQkJVGVjaG5vbG9neSBUaGVzYXVydXMgQ29ycC4KKwkJCQlOTy4gNiwgRWFzdCA0dGggU3QuIEtFUFoKKwkJCQlLQU9IU0lVTkcgIDgwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEQtRjcgICAoaGV4KQkJU3BhY2UgRHluYW1pY3MgTGFiCiswMDBERjcgICAgIChiYXNlIDE2KQkJU3BhY2UgRHluYW1pY3MgTGFiCisJCQkJMTY5NSBOLiBSZXNlYXJjaCBQYXJrIFdheQorCQkJCU5vcnRoIExvZ2FuIFVUIDg0MzQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRC1GOCAgIChoZXgpCQlPUkdBIEthcnRlbnN5c3RlbWUgR21iSAorMDAwREY4ICAgICAoYmFzZSAxNikJCU9SR0EgS2FydGVuc3lzdGVtZSBHbWJICisJCQkJS29ucmFkLVp1c2UtUmluZyAxCisJCQkJRmxpbnRiZWsgU2NobGVzd2lnLUhvbHN0ZWluIDI0MjIwCisJCQkJR0VSTUFOWQorCiswMC0wRC1GOSAgIChoZXgpCQlORFMgTGltaXRlZAorMDAwREY5ICAgICAoYmFzZSAxNikJCU5EUyBMaW1pdGVkCisJCQkJT25lIEhlYXRocm93IEJvdWxldmFyZAorCQkJCTI4NiBCYXRoIFJvYWQKKwkJCQlXZXN0IERyYXl0b24gTWlkZGxlc2V4IFVCNyAwRFEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRC1GQSAgIChoZXgpCQlNaWNybyBDb250cm9sIFN5c3RlbXMgTHRkLgorMDAwREZBICAgICAoYmFzZSAxNikJCU1pY3JvIENvbnRyb2wgU3lzdGVtcyBMdGQuCisJCQkJOC03IFNha3VyYWkKKwkJCQlTYWt1LXNoaSBOYWdhbm8gMzg1LTAwNTYKKwkJCQlKQVBBTgorCiswMC0wRC1GQiAgIChoZXgpCQlLb21heCBBRworMDAwREZCICAgICAoYmFzZSAxNikJCUtvbWF4IEFHCisJCQkJSW5kdXN0cmllc3RyYXNzZSA2CisJCQkJRGllcmlrb24gTFUgNjAzNgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBELUZDICAgKGhleCkJCUlURk9SIEluYy4KKzAwMERGQyAgICAgKGJhc2UgMTYpCQlJVEZPUiBJbmMuCisJCQkJSWNoaWJhbmNobyBUb2t5dSBCaWRnLiwKKwkJCQkyMSBJY2hpYmFubmN5byxDaGl5b2RhLWt1CisJCQkJVG9reW8gMTAyLTAwODIKKwkJCQlKQVBBTgorCiswMC0wRC1GRCAgIChoZXgpCQlIdWdlcyBIaS1UZWNoIEluYy4sCiswMDBERkQgICAgIChiYXNlIDE2KQkJSHVnZXMgSGktVGVjaCBJbmMuLAorCQkJCTdGLCAxODgsIFNlYy4yLCBDaHVuZyBIc2luZyBSb2FkLgorCQkJCUhzaW4gVGllbiBUYWlwZWkgSHNpZW4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRC1GRSAgIChoZXgpCQlIYXVwcGF1Z2UgQ29tcHV0ZXIgV29ya3MsIEluYy4KKzAwMERGRSAgICAgKGJhc2UgMTYpCQlIYXVwcGF1Z2UgQ29tcHV0ZXIgV29ya3MsIEluYy4KKwkJCQk5MSBDYWJvdCBDb3VydAorCQkJCUhhdXBwYXVnZSBOZXcgWW9yayAxMTc4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEQtRkYgICAoaGV4KQkJQ0hFTk1JTkcgTU9MRCBJTkRVU1RSWSBDT1JQLgorMDAwREZGICAgICAoYmFzZSAxNikJCUNIRU5NSU5HIE1PTEQgSU5EVVNUUlkgQ09SUC4KKwkJCQkyRiBOby4gMjYsIExhbmUgNTEzLCBSZWkgS3VhbmcgUmQuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTAwICAgKGhleCkJCUF0cmllCiswMDBFMDAgICAgIChiYXNlIDE2KQkJQXRyaWUKKwkJCQkxMHRoIEZsb29yLCAxNCwgTGFuZSA2MDksIFNlYy4gNSwgQ2h1bmcgSHNpbiBSZC4sIFNhbiBDaHVuZyBDaXR5LAorCQkJCVRhaXBlaSBIc2llbiBTYW4gQ2h1bmcgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS0wMSAgIChoZXgpCQlBU0lQIFRlY2hub2xvZ2llcyBJbmMuCiswMDBFMDEgICAgIChiYXNlIDE2KQkJQVNJUCBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTEwRi0yLCBOTy4zMjIsIFNlYy4xLCBHdWFuZ2Z1IFJkLiwKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTAyICAgKGhleCkJCUFkdmFudGVjaCBBTVQgSW5jLgorMDAwRTAyICAgICAoYmFzZSAxNikJCUFkdmFudGVjaCBBTVQgSW5jLgorCQkJCTY1NyBPcmx5IEF2ZS4KKwkJCQlEb3J2YWwgUXVlYmVjIEg5UCAxRzEKKwkJCQlDQU5BREEKKworMDAtMEUtMDMgICAoaGV4KQkJRW11bGV4CiswMDBFMDMgICAgIChiYXNlIDE2KQkJRW11bGV4CisJCQkJMzMzMyBTdXNhbiBTdHJlZXQKKwkJCQlDb3N0YSBNZXNhIENBIDkyNjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0wNCAgIChoZXgpCQlDTUEvTWljcm9kaWFseXNpcyBBQgorMDAwRTA0ICAgICAoYmFzZSAxNikJCUNNQS9NaWNyb2RpYWx5c2lzIEFCCisJCQkJRGFsdsOkZ2VuIDEwIC8gQm94IDIKKwkJCQlTb2xuYSAgMTcxIDE4CisJCQkJU1dFREVOCisKKzAwLTBFLTA1ICAgKGhleCkJCVdJUkVMRVNTIE1BVFJJWCBDT1JQLgorMDAwRTA1ICAgICAoYmFzZSAxNikJCVdJUkVMRVNTIE1BVFJJWCBDT1JQLgorCQkJCVVOSVQgMUEtMzc1MSBOT1JUSCBGUkFTRVIgV0FZCisJCQkJQlVSTkFCWSBCQyBWNUogNUc0CisJCQkJQ0FOQURBCisKKzAwLTBFLTA2ICAgKGhleCkJCVRlYW0gU2ltb2NvIEx0ZAorMDAwRTA2ICAgICAoYmFzZSAxNikJCVRlYW0gU2ltb2NvIEx0ZAorCQkJCUZpZWxkIEhvdXNlCisJCQkJVXR0b3hldGVyIE9sZCBSb2FkCisJCQkJRGVyYnkgRGVyYnlzaGlyZSBERTEgMU5ICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEUtMDcgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKzAwMEUwNyAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNFIDIyMSA4OCBMdW5kCisJCQkJU1dFREVOCisKKzAwLTBFLTA4ICAgKGhleCkJCUNpc2NvIExpbmtzeXMgTExDCiswMDBFMDggICAgIChiYXNlIDE2KQkJQ2lzY28gTGlua3N5cyBMTEMKKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTA5ICAgKGhleCkJCVNoZW56aGVuIENvc2hpcCBTb2Z0d2FyZSBDby4sTFRELgorMDAwRTA5ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIENvc2hpcCBTb2Z0d2FyZSBDby4sTFRELgorCQkJCTcvRixCbG9jayBBLFcyIEJsZGcsSGktVGVjaCBJbmR1c3RyaWFsIFBhcmssU2hlbnpoZW4sQ2hpbmEKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMEUtMEEgICAoaGV4KQkJU0FLVU1BIERFU0lHTiBPRkZJQ0UKKzAwMEUwQSAgICAgKGJhc2UgMTYpCQlTQUtVTUEgREVTSUdOIE9GRklDRQorCQkJCTY3NC0xMQorCQkJCUtVS0ktU0hJIFNBSVRBTUEgMzQ2LTAwMjkKKwkJCQlKQVBBTgorCiswMC0wRS0wQiAgIChoZXgpCQlOZXRhYyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwRTBCICAgICAoYmFzZSAxNikJCU5ldGFjIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNkYsIEluY3ViYXRvciBCdWlsZGluZywgQ2hpbmEgQWNhZGVteSBvZiBTY2llbmNlICZUZWNoIERldmVsb3BtZW50LAorCQkJCU5vLjEgSGlnaC10ZWNoIFNvdXRoIFN0cmVldAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0wRS0wQyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAwRTBDICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJMjExMSBORSAgMjV0aCBBdmVudWUKKwkJCQlNUzogIEpGMy00MjAKKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTBEICAgKGhleCkJCUhFU0NIIFNjaHLDtmRlciBHbWJICiswMDBFMEQgICAgIChiYXNlIDE2KQkJSEVTQ0ggU2NocsO2ZGVyIEdtYkgKKwkJCQlCb3NjaHN0cmFzc2UgOAorCQkJCU5ldXN0YWR0IE5pZWRlcnNhY2hzZW4gMzE1MzUKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTBFICAgKGhleCkJCUVTQSBlbGV0dHJvbmljYSBTLlAuQS4KKzAwMEUwRSAgICAgKGJhc2UgMTYpCQlFU0EgZWxldHRyb25pY2EgUy5QLkEuCisJCQkJVmlhIFAuIE1hc2NpYWRyaSA0L0EKKwkJCQlNYXJpYW5vIENvbWVuc2UgQ08gMjIwNjYKKwkJCQlJVEFMWQorCiswMC0wRS0wRiAgIChoZXgpCQlFUk1NRQorMDAwRTBGICAgICAoYmFzZSAxNikJCUVSTU1FCisJCQkJOSBydWUgTGF2b2lzaWVyCisJCQkJVmVydC1MZS1QZXRpdCAgOTE3MTAKKwkJCQlGUkFOQ0UKKworMDAtMEUtMTAgICAoaGV4KQkJQy1ndXlzLCBJbmMuCiswMDBFMTAgICAgIChiYXNlIDE2KQkJQy1ndXlzLCBJbmMuCisJCQkJSXp1bWkgR2FyZGVuIFdpbmcgMUYsIDEtNi0zCisJCQkJUm9wcG9uZ2ksIE1pbmF0by1rdQorCQkJCVRva3lvICAxMDYtMDAzMgorCQkJCUpBUEFOCisKKzAwLTBFLTExICAgKGhleCkJCUJEVCBCw7xyby0gdW5kIERhdGVudGVjaG5payBHbWJIICYgQ28uIEtHCiswMDBFMTEgICAgIChiYXNlIDE2KQkJQkRUIELDvHJvLSB1bmQgRGF0ZW50ZWNobmlrIEdtYkggJiBDby4gS0cKKwkJCQlTYWxpbmUgMjkKKwkJCQlSb3R0d2VpbCBCYWRlbi1Xw7xydHRlbWJlcmcgRC03ODYyOAorCQkJCUdFUk1BTlkKKworMDAtMEUtMTIgICAoaGV4KQkJQWRhcHRpdmUgTWljcm8gU3lzdGVtcyBJbmMuCiswMDBFMTIgICAgIChiYXNlIDE2KQkJQWRhcHRpdmUgTWljcm8gU3lzdGVtcyBJbmMuCisJCQkJNzg0MCBOb3J0aCA4NnRoIFN0LgorCQkJCU1pbHdhdWtlZSBXSSA1MzIyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMTMgICAoaGV4KQkJQWNjdS1Tb3J0IFN5c3RlbXMgaW5jLgorMDAwRTEzICAgICAoYmFzZSAxNikJCUFjY3UtU29ydCBTeXN0ZW1zIGluYy4KKwkJCQk1MTEgU2Nob29sIEhvdXNlIFJvYWQKKwkJCQlUZWxmb3JkIFBBIDE4OTY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0xNCAgIChoZXgpCQlWaXNpb25hcnkgU29sdXRpb25zLCBJbmMuCiswMDBFMTQgICAgIChiYXNlIDE2KQkJVmlzaW9uYXJ5IFNvbHV0aW9ucywgSW5jLgorCQkJCTQxOTMgQ2FycGludGVyaWEgQXZlCisJCQkJU3VpdGUgMTEKKwkJCQlDYXJwaW50ZXJpYSBDQSA5MzAxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMTUgICAoaGV4KQkJVGFkbHlzIExURAorMDAwRTE1ICAgICAoYmFzZSAxNikJCVRhZGx5cyBMVEQKKwkJCQlJU1JBRUxJIFNISU1PTiAzCisJCQkJUklTSE9OIGxFWllZT04gSVNSQUVMIDc1NjU0CisJCQkJSVNSQUVMCisKKzAwLTBFLTE2ICAgKGhleCkJCVNvdXRoV2luZyBTLkwuCiswMDBFMTYgICAgIChiYXNlIDE2KQkJU291dGhXaW5nIFMuTC4KKwkJCQlDL0F2aWxhLCA0OC01MAorCQkJCTNyZCBmbG9vcgorCQkJCUJhcmNlbG9uYSAgMDgwMDUKKwkJCQlTUEFJTgorCiswMC0wRS0xNyAgIChoZXgpCQlQUklWQVRFCiswMDBFMTcgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTBFLTE4ICAgKGhleCkJCU15QSBUZWNobm9sb2d5CiswMDBFMTggICAgIChiYXNlIDE2KQkJTXlBIFRlY2hub2xvZ3kKKwkJCQkyMTAwIE11aXJ3b29kIFdheQorCQkJCVNhbiBKb3NlIENBIDk1MTMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0xOSAgIChoZXgpCQlMb2dpY2FDTUcgUHR5IEx0ZAorMDAwRTE5ICAgICAoYmFzZSAxNikJCUxvZ2ljYUNNRyBQdHkgTHRkCisJCQkJMTctMTkgT3Jpb24gUm9hZAorCQkJCUxhbmUgQ292ZSBOU1cgMjA2NgorCQkJCUFVU1RSQUxJQQorCiswMC0wRS0xQSAgIChoZXgpCQlKUFMgQ29tbXVuaWNhdGlvbnMKKzAwMEUxQSAgICAgKGJhc2UgMTYpCQlKUFMgQ29tbXVuaWNhdGlvbnMKKwkJCQk1ODAwIERlcGFydHVyZSBEcml2ZQorCQkJCVJhbGVpZ2ggTkMgMjc2MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTFCICAgKGhleCkJCUlBViBHbWJICiswMDBFMUIgICAgIChiYXNlIDE2KQkJSUFWIEdtYkgKKwkJCQlDYXJub3RzdHIuIDEKKwkJCQlCZXJsaW4gIDEwNTg3CisJCQkJR0VSTUFOWQorCiswMC0wRS0xQyAgIChoZXgpCQlIYWNoIENvbXBhbnkKKzAwMEUxQyAgICAgKGJhc2UgMTYpCQlIYWNoIENvbXBhbnkKKwkJCQk1NjAwIExpbmRiZXJnaCBEcml2ZQorCQkJCUxvdmVsYW5kIENPIDgwNTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0xRCAgIChoZXgpCQlBUklPTiBUZWNobm9sb2d5IEluYy4KKzAwMEUxRCAgICAgKGJhc2UgMTYpCQlBUklPTiBUZWNobm9sb2d5IEluYy4KKwkJCQkzRiwgUGljYSBCbGRnLCA4OTQtMiwgSG9neWUgMiBEb25nCisJCQkJRG9uZ2FuLUd1CisJCQkJQW4tWWFuZyBDaXR5IEd5ZW9uZ2dpLURvIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS0xRSAgIChoZXgpCQlRTG9naWMgQ29ycG9yYXRpb24KKzAwMEUxRSAgICAgKGJhc2UgMTYpCQlRTG9naWMgQ29ycG9yYXRpb24KKwkJCQkyNjY1MCBBbGlzbyBWaWVqbyBQYXJrd2F5CisJCQkJQWxpc28gVmllam8gQ0EgOTI2NTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTFGICAgKGhleCkJCVRDTCBOZXR3b3JrcyBFcXVpcG1lbnQgQ28uLCBMdGQuCiswMDBFMUYgICAgIChiYXNlIDE2KQkJVENMIE5ldHdvcmtzIEVxdWlwbWVudCBDby4sIEx0ZC4KKwkJCQlOby41IEluZHVzdHJpYWwgUm9hZCxTaGVrb3UKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDY3CisJCQkJQ0hJTkEKKworMDAtMEUtMjAgICAoaGV4KQkJQUNDRVNTIFN5c3RlbXMgQW1lcmljYXMsIEluYy4KKzAwMEUyMCAgICAgKGJhc2UgMTYpCQlBQ0NFU1MgU3lzdGVtcyBBbWVyaWNhcywgSW5jLgorCQkJCTExODggRWFzdCBBcnF1ZXMgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0yMSAgIChoZXgpCQlNVFUgRnJpZWRyaWNoc2hhZmVuIEdtYkgKKzAwMEUyMSAgICAgKGJhc2UgMTYpCQlNVFUgRnJpZWRyaWNoc2hhZmVuIEdtYkgKKwkJCQlNYXliYWNocGxhdHogMQorCQkJCUZyaWVkcmljaHNoYWZlbiBCYWRlbiBXdWVydGVtYmVyZyA4ODA0MAorCQkJCUdFUk1BTlkKKworMDAtMEUtMjIgICAoaGV4KQkJUFJJVkFURQorMDAwRTIyICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wRS0yMyAgIChoZXgpCQlJbmNpcGllbnQsIEluYy4KKzAwMEUyMyAgICAgKGJhc2UgMTYpCQlJbmNpcGllbnQsIEluYy4KKwkJCQkyMzAgVGhpcmQgQXZlLgorCQkJCTR0aCBGbG9vcgorCQkJCVdhbHRoYW0gTUEgMDI0NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTI0ICAgKGhleCkJCUh1d2VsbCBUZWNobm9sb2d5IEluYy4KKzAwMEUyNCAgICAgKGJhc2UgMTYpCQlIdXdlbGwgVGVjaG5vbG9neSBJbmMuCisJCQkJMUYgODItMjEsIE1hamluIEJ1aWxkaW5nCisJCQkJTm9uaHl1bi1kb25nLCBHYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtMjUgICAoaGV4KQkJSGFubmFlIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMEUyNSAgICAgKGJhc2UgMTYpCQlIYW5uYWUgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCTRGLCBIeXVuamluIEJsZGcuLCAjNzk4LTMwLCBZZW9rc2FtLURvbmcKKwkJCQlLYW5nbmFtLUt1CisJCQkJU0VPVUwgIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtMjYgICAoaGV4KQkJR2luY29tIFRlY2hub2xvZ3kgQ29ycC4KKzAwMEUyNiAgICAgKGJhc2UgMTYpCQlHaW5jb20gVGVjaG5vbG9neSBDb3JwLgorCQkJCTE1Ri4sIE5vLiAyODQsIFNlYy4zLCBTYW5taW4gUmQuLCBUYW95dWFuIENpdHksCisJCQkJVGFveXVhbiwgIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtMjcgICAoaGV4KQkJQ3JlcmUgTmV0d29ya3MsIEluYy4KKzAwMEUyNyAgICAgKGJhc2UgMTYpCQlDcmVyZSBOZXR3b3JrcywgSW5jLgorCQkJCVJvb20gMTEwIEVUUkkgVEJJLCA1MiBFb2V1bi1kb25nCisJCQkJWXVzZW9uZy1ndQorCQkJCURhZWplb24gIDMwNS0zMzMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtMjggICAoaGV4KQkJRHluYW1pYyBSYXRpbmdzIFAvTAorMDAwRTI4ICAgICAoYmFzZSAxNikJCUR5bmFtaWMgUmF0aW5ncyBQL0wKKwkJCQlDL08gV2lsc29uIFRyYW5zZm9ybWVyIENvLgorCQkJCVdpbHNvbiBSZC4gKFBPIEJveCA1KQorCQkJCUdsZW4gV2F2ZXJsZXkgVmljdG9yaWEgMzE1MAorCQkJCUFVU1RSQUxJQQorCiswMC0wRS0yOSAgIChoZXgpCQlTaGVzdGVyIENvbW11bmljYXRpb25zIEluYworMDAwRTI5ICAgICAoYmFzZSAxNikJCVNoZXN0ZXIgQ29tbXVuaWNhdGlvbnMgSW5jCisJCQkJMTU5IFMuIExpbmNvbG4KKwkJCQlTdWl0ZSAyMjEKKwkJCQlTcG9rYW5lIFdBIDk5MjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0yQSAgIChoZXgpCQlQUklWQVRFCiswMDBFMkEgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTBFLTJCICAgKGhleCkJCVNhZmFyaSBUZWNobm9sb2dpZXMKKzAwMEUyQiAgICAgKGJhc2UgMTYpCQlTYWZhcmkgVGVjaG5vbG9naWVzCisJCQkJNjM4NTUgTTQwIEh3eQorCQkJCUxhd3RvbiBNSSA0OTA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtMkMgICAoaGV4KQkJTmV0Y29kZWMgY28uCiswMDBFMkMgICAgIChiYXNlIDE2KQkJTmV0Y29kZWMgY28uCisJCQkJNDAxIERhZWlvbiBTL1cgQ2VudGVyLCA0OCBKYW5nZG9uZworCQkJCVl1c29uZ2d1CisJCQkJRGFlam9uICAzMDUtNzE1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTJEICAgKGhleCkJCUh5dW5kYWkgRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQuCiswMDBFMkQgICAgIChiYXNlIDE2KQkJSHl1bmRhaSBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQkyMjMtMjIsIFNhbmdkYWV3b24tMWRvbmcsIEp1bmd3b24tZ3UKKwkJCQlTZW9uZ25hbS1zaSBLeW91bmdraS1kbyA0NjItODA3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTJFICAgKGhleCkJCUVkaW1heCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAwRTJFICAgICAoYmFzZSAxNikJCUVkaW1heCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTMsIFd1LUNodWFuIDNyZCBSb2FkLAorCQkJCVd1LUt1IEluZHVzdHJpYWwgUGFyaywKKwkJCQlUYWlwZWkgSHNpZW4sICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTJGICAgKGhleCkJCURpc2V0cm9uaWMgTWVkaWNhbCBTeXN0ZW1zIEFHCiswMDBFMkYgICAgIChiYXNlIDE2KQkJRGlzZXRyb25pYyBNZWRpY2FsIFN5c3RlbXMgQUcKKwkJCQlLaXJjaGJlcmdzdHJhc3NlIDE5MAorCQkJCUJ1cmdkb3JmIEJlcm4gMzQwMQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBFLTMwICAgKGhleCkJCUFFUkFTIE5ldHdvcmtzLCBJbmMuCiswMDBFMzAgICAgIChiYXNlIDE2KQkJQUVSQVMgTmV0d29ya3MsIEluYy4KKwkJCQlQLk8uIEJveCA3MzMwCisJCQkJTGFndW5hIE5pZ3VlbCBDQSA5MjYwNy03MzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zMSAgIChoZXgpCQlPbHltcHVzIFNvZnQgSW1hZ2luZyBTb2x1dGlvbnMgR21iSAorMDAwRTMxICAgICAoYmFzZSAxNikJCU9seW1wdXMgU29mdCBJbWFnaW5nIFNvbHV0aW9ucyBHbWJICisJCQkJSm9oYW5uLUtyYW5lLVdlZyAzOQorCQkJCU3DvG5zdGVyIDQ4MTQ5CisJCQkJR0VSTUFOWQorCiswMC0wRS0zMiAgIChoZXgpCQlLb250cm9uIE1lZGljYWwKKzAwMEUzMiAgICAgKGJhc2UgMTYpCQlLb250cm9uIE1lZGljYWwKKwkJCQlSZWluYWNoZXJzdHJhc3NlIDEzMQorCQkJCUJhc2VsICA0MDAyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEUtMzMgICAoaGV4KQkJU2h1a28gRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAwRTMzICAgICAoYmFzZSAxNikJCVNodWtvIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQlUT0hTSElOIEhJR0FTSEktSUtFQlVLVVJPIEJ1aWxkaW5nIDNGCisJCQkJNS00NC0xNSxISUdBU0hJLUlLRUJVS1VSTyxUT1NISU1BLUtVCisJCQkJVE9LWU8gS0FOVE9IIDE3MC0wMDYzCisJCQkJSkFQQU4KKworMDAtMEUtMzQgICAoaGV4KQkJTmV4R2VuIENpdHksIExQCiswMDBFMzQgICAgIChiYXNlIDE2KQkJTmV4R2VuIENpdHksIExQCisJCQkJMTY4MCBHbGVudmlsbGUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlSaWNoYXJkc29uIFRleGFzIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zNSAgIChoZXgpCQlJbnRlbCBDb3JwCiswMDBFMzUgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycAorCQkJCTIxMTEgTkUgMjV0aCBBdmUKKwkJCQlKRjMtNDIwCisJCQkJSGlsbHNib3JvIE9SIDk3MTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zNiAgIChoZXgpCQlIRUlORVNZUywgSW5jLgorMDAwRTM2ICAgICAoYmFzZSAxNikJCUhFSU5FU1lTLCBJbmMuCisJCQkJM0YsIFN1bmdrd2FuZyBCbGRnLiA0NTYtMTMsIFN1bmduYWUtZG9uZworCQkJCUthbmdkb25nLWd1CisJCQkJU2VvdWwgIDEzNC04NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtMzcgICAoaGV4KQkJSGFybXMgJiBXZW5kZSBHbWJIICYgQ28uS0cKKzAwMEUzNyAgICAgKGJhc2UgMTYpCQlIYXJtcyAmIFdlbmRlIEdtYkggJiBDby5LRworCQkJCUdyb3NzbW9vcmtlaHJlIDkKKwkJCQlIYW1idXJnICBELTIxMDc5CisJCQkJR0VSTUFOWQorCiswMC0wRS0zOCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBFMzggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBFMzkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zQSAgIChoZXgpCQlDaXJydXMgTG9naWMKKzAwMEUzQSAgICAgKGJhc2UgMTYpCQlDaXJydXMgTG9naWMKKwkJCQkyOTAxIFZpYSBGb3J0dW5hCisJCQkJQXVzdGluIFRYIDc4NzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS0zQiAgIChoZXgpCQlIYXdraW5nIFRlY2hub2xvZ2llcywgSW5jLgorMDAwRTNCICAgICAoYmFzZSAxNikJCUhhd2tpbmcgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTUyODFBIEJhcnJhbmNhIFBhcmt3YXkKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTNDICAgKGhleCkJCVRyYW5zYWN0IFRlY2hub2xvZ2llcyBJbmMKKzAwMEUzQyAgICAgKGJhc2UgMTYpCQlUcmFuc2FjdCBUZWNobm9sb2dpZXMgSW5jCisJCQkJMjAgQm9tYXggRHJpdmUKKwkJCQlJdGhhY2EgTmV3IFlvcmsgMTQ4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTNEICAgKGhleCkJCVRlbGV2aWMgTi5WLgorMDAwRTNEICAgICAoYmFzZSAxNikJCVRlbGV2aWMgTi5WLgorCQkJCUxlbyBCZWthZXJ0bGFhbiAxCisJCQkJSXplZ2VtICA4ODcwCisJCQkJQkVMR0lVTQorCiswMC0wRS0zRSAgIChoZXgpCQlTdW4gT3B0cm9uaWNzIEluYworMDAwRTNFICAgICAoYmFzZSAxNikJCVN1biBPcHRyb25pY3MgSW5jCisJCQkJNC0zOC00IEZ1Y2hpbm9iZS1ob25jaG91CisJCQkJU2FnYW1paGFyYSBLYW5hZ2F3YSAyMjktMDAwMgorCQkJCUpBUEFOCisKKzAwLTBFLTNGICAgKGhleCkJCVNvcm9udGksIEluYy4KKzAwMEUzRiAgICAgKGJhc2UgMTYpCQlTb3JvbnRpLCBJbmMuCisJCQkJMTIxNTkgQnVzaW5lc3MgUGFyayBEciwgU3VpdGUgMTQwCisJCQkJRHJhcGVyIFV0YWggODQwMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTQwICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAwRTQwICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0wRS00MSAgIChoZXgpCQlOSUhPTiBNRUNIQVRST05JQ1MgQ08uLExURC4KKzAwMEU0MSAgICAgKGJhc2UgMTYpCQlOSUhPTiBNRUNIQVRST05JQ1MgQ08uLExURC4KKwkJCQk5LTYgU0hJT01JREFJLCBNSVlBTUFFLUtVCisJCQkJS0FXQVNBS0ktU0hJIEtBTkFHQVdBLUtFTiAyMTYtMDAxMworCQkJCUpBUEFOCisKKzAwLTBFLTQyICAgKGhleCkJCU1vdGljIEluY29wb3JhdGlvbiBMdGQuCiswMDBFNDIgICAgIChiYXNlIDE2KQkJTW90aWMgSW5jb3BvcmF0aW9uIEx0ZC4KKwkJCQlSb29tIDI5MDctOCwgV2luZHNvciAgSG91c2UKKwkJCQkzMTEgR2xvdWNlc3RlciBSb2FkLCBDYXVzZXdheSBCYXkKKwkJCQlIb25nIEtvbmcgIAorCQkJCUNISU5BCisKKzAwLTBFLTQzICAgKGhleCkJCUctVGVrIEVsZWN0cm9uaWNzIFNkbi4gQmhkLgorMDAwRTQzICAgICAoYmFzZSAxNikJCUctVGVrIEVsZWN0cm9uaWNzIFNkbi4gQmhkLgorCQkJCTI0OTMgTXVraW0gMSwgTG9yb25nIFBlcnVzYWhhYW4gTGFwYW4KKwkJCQlLYXdhc2FuIFBlcmluZHVzdHJpYW4gUGVyYWkKKwkJCQlQZXJhaSBQZW5hbmcgMTM2MDAKKwkJCQlNQUxBWVNJQQorCiswMC0wRS00NCAgIChoZXgpCQlEaWdpdGFsIDUsIEluYy4KKzAwMEU0NCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIDUsIEluYy4KKwkJCQkxMDEgR3JvdmVycyBNaWxsIFJkLgorCQkJCVN1aXRlIDIwMAorCQkJCUxhd3JlbmNldmlsbGUgTkogMDg2NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTQ1ICAgKGhleCkJCUJlaWppbmcgTmV3dHJ5IEVsZWN0cm9uaWMgVGVjaG5vbG9neSBMdGQKKzAwMEU0NSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIE5ld3RyeSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgTHRkCisJCQkJUE8gQm94IDk1LCBOby4gMSBCZWkgU2hhIFRhbiwKKwkJCQlDaGFvIFlhbmcgUXUKKwkJCQlCZWlqaW5nICAxMDA4MworCQkJCUNISU5BCisKKzAwLTBFLTQ2ICAgKGhleCkJCU5paWdhdGEgU2VpbWl0c3UgQ28uLEx0ZC4KKzAwMEU0NiAgICAgKGJhc2UgMTYpCQlOaWlnYXRhIFNlaW1pdHN1IENvLixMdGQuCisJCQkJMzMzNS0yLCBTaGltb25ha2EsIFNhbndhLW11cmEKKwkJCQlOYWtha3ViaWtpLWd1biBOaWlnYXRhIDk0My0wMjIyCisJCQkJSkFQQU4KKworMDAtMEUtNDcgICAoaGV4KQkJTkNJIFN5c3RlbSBDby4sTHRkLgorMDAwRTQ3ICAgICAoYmFzZSAxNikJCU5DSSBTeXN0ZW0gQ28uLEx0ZC4KKwkJCQkjMjA2LCBLYXlhbmcgVGVjaG5vLVRvd24sIDE0ODcsIEtheWFuZyAzIGRvbmcsIEthbmdzZW8tS3UsIFNlb3VsLCBLb3JlYQorCQkJCVNlb3VsICAxNTctODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTQ4ICAgKGhleCkJCUxpcG1hbiBUcmFuc0FjdGlvbiBTb2x1dGlvbnMKKzAwMEU0OCAgICAgKGJhc2UgMTYpCQlMaXBtYW4gVHJhbnNBY3Rpb24gU29sdXRpb25zCisJCQkJMTEgSGFhbWFsIFN0LgorCQkJCSBSb3NoLUhhYXlpbiAgNDgwOTIKKwkJCQlJU1JBRUwKKworMDAtMEUtNDkgICAoaGV4KQkJRm9yc3dheSBTY2FuZGluYXZpYSBBQgorMDAwRTQ5ICAgICAoYmFzZSAxNikJCUZvcnN3YXkgU2NhbmRpbmF2aWEgQUIKKwkJCQlLYXBsYW5zZ2F0YW4gMTYgQgorCQkJCTU0MSAzNCBTa8O2dmRlIAorCQkJCVNXRURFTgorCiswMC0wRS00QSAgIChoZXgpCQlDaGFuZ2NodW4gSHVheXUgV0VCUEFEIENvLixMVEQKKzAwMEU0QSAgICAgKGJhc2UgMTYpCQlDaGFuZ2NodW4gSHVheXUgV0VCUEFEIENvLixMVEQKKwkJCQk0MzcwIEdhb3hpbiBSb2FkLCBIaWdoLVRlY2gKKwkJCQlEZXZlbG9wbWVudCBBcmVhCisJCQkJQ2hhbmdjaHVuIEppbGluIDEzMDAxMgorCQkJCUNISU5BCisKKzAwLTBFLTRCICAgKGhleCkJCWF0cml1bSBjIGFuZCBpCiswMDBFNEIgICAgIChiYXNlIDE2KQkJYXRyaXVtIGMgYW5kIGkKKwkJCQkxMjQtNCwgT2plb24tZG9uZywKKwkJCQlVaXdhbmctY2l0eSBLeXVuZ2dpLURvIDQzNy04MTkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtNEMgICAoaGV4KQkJQmVybWFpIEluYy4KKzAwMEU0QyAgICAgKGJhc2UgMTYpCQlCZXJtYWkgSW5jLgorCQkJCTQxMCBDYW1icmlkZ2UgQXZlCisJCQkJMm5kIEZsb29yCisJCQkJUGFsbyBBbHRvIENBIDk0MzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS00RCAgIChoZXgpCQlOdW1lc2EgSW5jLgorMDAwRTREICAgICAoYmFzZSAxNikJCU51bWVzYSBJbmMuCisJCQkJNDQ0NCBXZXN0Z3JvdmUgU3VpdGUgMzAwCisJCQkJQWRkaXNvbiBUWCA3NTAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtNEUgICAoaGV4KQkJV2F2ZXBsdXMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMEU0RSAgICAgKGJhc2UgMTYpCQlXYXZlcGx1cyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTM0NyBIc2luSHUgMm5kIFJkLiwgTmVpSHUKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtNEYgICAoaGV4KQkJVHJhamV0IEdtYkgKKzAwMEU0RiAgICAgKGJhc2UgMTYpCQlUcmFqZXQgR21iSAorCQkJCVJlYmVucmluZyAzMworCQkJCUJyYXVuc2Nod2VpZyBOZHMuIDM4MTA2CisJCQkJR0VSTUFOWQorCiswMC0wRS01MCAgIChoZXgpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorMDAwRTUwICAgICAoYmFzZSAxNikJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCisJCQkJUHJpbnMgQm91ZGV3aWpubGFhbiA0NworCQkJCUVkZWdlbSBBbnR3ZXJwIEItMjY1MAorCQkJCUJFTEdJVU0KKworMDAtMEUtNTEgICAoaGV4KQkJdGVjbmEgZWxldHRyb25pY2Egc3JsCiswMDBFNTEgICAgIChiYXNlIDE2KQkJdGVjbmEgZWxldHRyb25pY2Egc3JsCisJCQkJdmlhIG1pZ2xpb2xpIDMwCisJCQkJY2FzdGVsIHNhbiBwaWV0cm8gdGVybWUgYm9sb2duYSA0MDAyNAorCQkJCUlUQUxZCisKKzAwLTBFLTUyICAgKGhleCkJCU9wdGl1bSBDb3Jwb3JhdGlvbgorMDAwRTUyICAgICAoYmFzZSAxNikJCU9wdGl1bSBDb3Jwb3JhdGlvbgorCQkJCTUwMCBIb3Jpem9uIERyCisJCQkJU3VpdGUgNTA1CisJCQkJQ2hhbGZvbnQgUEEgMTg5MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTUzICAgKGhleCkJCUFWIFRFQ0ggQ09SUE9SQVRJT04KKzAwMEU1MyAgICAgKGJhc2UgMTYpCQlBViBURUNIIENPUlBPUkFUSU9OCisJCQkJMTBGLEUgQnVpbGRpbmcsTm8uMTktMTEgU2FuIENodW5nIFJkLixOYW5LYW5nCisJCQkJVGFpcGVpICAxMTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTU0ICAgKGhleCkJCUFscGhhQ2VsbCBXaXJlbGVzcyBMdGQuCiswMDBFNTQgICAgIChiYXNlIDE2KQkJQWxwaGFDZWxsIFdpcmVsZXNzIEx0ZC4KKwkJCQkyMiBaYXJoaW4gc3RyZWV0CisJCQkJUmFhbmFuYSAgNDM2NjIKKwkJCQlJU1JBRUwKKworMDAtMEUtNTUgICAoaGV4KQkJQVVWSVRSQU4KKzAwMEU1NSAgICAgKGJhc2UgMTYpCQlBVVZJVFJBTgorCQkJCTdjIGNoZW1pbiBkZXMgcHLDqHMKKwkJCQlNRVlMQU4gIDM4NDEwCisJCQkJRlJBTkNFCisKKzAwLTBFLTU2ICAgKGhleCkJCTRHIFN5c3RlbXMgR21iSCAmIENvLiBLRworMDAwRTU2ICAgICAoYmFzZSAxNikJCTRHIFN5c3RlbXMgR21iSCAmIENvLiBLRworCQkJCUphcnJlc3RyYXNzZSAyLTYKKwkJCQkyMjMwMyBIYW1idXJnIAorCQkJCUdFUk1BTlkKKworMDAtMEUtNTcgICAoaGV4KQkJSXdvcmxkIE5ldHdvcmtpbmcsIEluYy4KKzAwMEU1NyAgICAgKGJhc2UgMTYpCQlJd29ybGQgTmV0d29ya2luZywgSW5jLgorCQkJCTEyNSBIYW5qdSBCbGRnLCBOb25oeXVuLURvbmcKKwkJCQlLYW5nLU5hbSBHdQorCQkJCVNlb3VsICAxMzUwMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtNTggICAoaGV4KQkJU29ub3MsIEluYy4KKzAwMEU1OCAgICAgKGJhc2UgMTYpCQlTb25vcywgSW5jLgorCQkJCTIyMyBFLiBEZSBMYSBHdWVycmEgU3QuCisJCQkJU2FudGEgQmFyYmFyYSBDQSA5MzEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtNTkgICAoaGV4KQkJU0FHRU0gU0EKKzAwMEU1OSAgICAgKGJhc2UgMTYpCQlTQUdFTSBTQQorCQkJCTIsIHJ1ZSBkdSBwZXRpdCBBbGJpCisJCQkJQ0VSR1kgU0FJTlQgQ0hSSVNUT1BIRSB2YWwgZCdPaXNlIDk1ODAwCisJCQkJRlJBTkNFCisKKzAwLTBFLTVBICAgKGhleCkJCVRFTEVGSUVMRCBpbmMuCiswMDBFNUEgICAgIChiYXNlIDE2KQkJVEVMRUZJRUxEIGluYy4KKwkJCQkzRiwgS3VtYm8gQmxkZywgMi05LCBTZW9rY2hvbi1Eb25nCisJCQkJU29uZ3BhLUd1CisJCQkJU2VvdWwgIDEzOC0xOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtNUIgICAoaGV4KQkJUGFya2VyVmlzaW9uIC0gRGlyZWN0MkRhdGEKKzAwMEU1QiAgICAgKGJhc2UgMTYpCQlQYXJrZXJWaXNpb24gLSBEaXJlY3QyRGF0YQorCQkJCTk0MzIgQmF5bWVhZG93cyBXYXkKKwkJCQlTdWl0ZSAxNTAKKwkJCQlKYWNrc29udmlsbGUgRkwgMzIyNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTVDICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDBFNUMgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS01RCAgIChoZXgpCQlUcmlwbGUgUGxheSBUZWNobm9sb2dpZXMgQS9TCiswMDBFNUQgICAgIChiYXNlIDE2KQkJVHJpcGxlIFBsYXkgVGVjaG5vbG9naWVzIEEvUworCQkJCUhlcnN0ZWR2YW5nIDgKKwkJCQlBbGJlcnRzbHVuZCAgREstMjYyMAorCQkJCURFTk1BUksKKworMDAtMEUtNUUgICAoaGV4KQkJUmFpc2Vjb20gVGVjaG5vbG9neQorMDAwRTVFICAgICAoYmFzZSAxNikJCVJhaXNlY29tIFRlY2hub2xvZ3kKKwkJCQkyIEZsb29yLCBTb3V0aCBCdWlsZGluZyBvZiBSYWluYm93IFBsYXphCisJCQkJTm8uIDExIFNoYW5nZGkgSW5mb3JtYXRpb24gUm9hZAorCQkJCUhhaWRpYW4gRGlzdHJpY3QgQmVpamluZyAxMDAwODUKKwkJCQlDSElOQQorCiswMC0wRS01RiAgIChoZXgpCQlhY3Rpdi1uZXQgR21iSCAmIENvLiBLRworMDAwRTVGICAgICAoYmFzZSAxNikJCWFjdGl2LW5ldCBHbWJIICYgQ28uIEtHCisJCQkJS29ucmFkLVp1c2UtU3RyLiA0CisJCQkJQm9jaHVtICA0NDgwMQorCQkJCUdFUk1BTlkKKworMDAtMEUtNjAgICAoaGV4KQkJMzYwU1VOIERpZ2l0YWwgQnJvYWRiYW5kIENvcnBvcmF0aW9uCiswMDBFNjAgICAgIChiYXNlIDE2KQkJMzYwU1VOIERpZ2l0YWwgQnJvYWRiYW5kIENvcnBvcmF0aW9uCisJCQkJMkYtMiwgTm8uMiwgSmlhbmJhIFJkLiwKKwkJCQlDaHVuZyBIbyBUYWlwZWkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS02MSAgIChoZXgpCQlNSUNST1RST0wgTElNSVRFRAorMDAwRTYxICAgICAoYmFzZSAxNikJCU1JQ1JPVFJPTCBMSU1JVEVECisJCQkJMTYgRUxHQVIgQlVTSU5FU1MgQ0VOVFJFCisJCQkJTU9TRUxFWSBST0FECisJCQkJSEFMTE9XIFdPUkNFU1RFUiBXUjIgNk5KCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEUtNjIgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDBFNjIgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMEUtNjMgICAoaGV4KQkJTGVta2UgRGlhZ25vc3RpY3MgR21iSAorMDAwRTYzICAgICAoYmFzZSAxNikJCUxlbWtlIERpYWdub3N0aWNzIEdtYkgKKwkJCQlSYWRlYnVyZ2VyIFN0ci4gNDcKKwkJCQlWb2xrZXJzZG9yZiBTYXhvbnkgMDE0NjgKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTY0ICAgKGhleCkJCUVscGhlbCwgSW5jCiswMDBFNjQgICAgIChiYXNlIDE2KQkJRWxwaGVsLCBJbmMKKwkJCQkzMjAwIFMuIEVscG1lciBTdC4KKwkJCQlNYWduYSBVVCA4NDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtNjUgICAoaGV4KQkJVHJhbnNDb3JlCiswMDBFNjUgICAgIChiYXNlIDE2KQkJVHJhbnNDb3JlCisJCQkJODYwMCBKZWZmZXJzb24gU3QgTkUKKwkJCQlBbGJ1cXVlcnF1ZSBOTSA4NzExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtNjYgICAoaGV4KQkJSGl0YWNoaSBBZHZhbmNlZCBEaWdpdGFsLCBJbmMuCiswMDBFNjYgICAgIChiYXNlIDE2KQkJSGl0YWNoaSBBZHZhbmNlZCBEaWdpdGFsLCBJbmMuCisJCQkJMjkyLCBZb3NoaWRhLWNobywgVG90c3VrYS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDI0NC0wODE3CisJCQkJSkFQQU4KKworMDAtMEUtNjcgICAoaGV4KQkJRWx0aXMgTWljcm9lbGVjdHJvbmljcyBMdGQuCiswMDBFNjcgICAgIChiYXNlIDE2KQkJRWx0aXMgTWljcm9lbGVjdHJvbmljcyBMdGQuCisJCQkJVW5pdCA5MDJCLCA5L0YuLCBTdW5iZWFtIENlbnRyZQorCQkJCTI3LCBTaGluZyBZaXAgU3RyZWV0CisJCQkJS3d1biBUb25nIEtvd2xvb24gCisJCQkJSE9ORyBLT05HCisKKzAwLTBFLTY4ICAgKGhleCkJCUUtVE9QIE5ldHdvcmsgVGVjaG5vbG9neSBJbmMuCiswMDBFNjggICAgIChiYXNlIDE2KQkJRS1UT1AgTmV0d29yayBUZWNobm9sb2d5IEluYy4KKwkJCQlOby4gNywgU2hpbiBTaGluIFJkLiwKKwkJCQlUYWluYW4gIDcwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtNjkgICAoaGV4KQkJQ2hpbmEgRWxlY3RyaWMgUG93ZXIgUmVzZWFyY2ggSW5zdGl0dXRlCiswMDBFNjkgICAgIChiYXNlIDE2KQkJQ2hpbmEgRWxlY3RyaWMgUG93ZXIgUmVzZWFyY2ggSW5zdGl0dXRlCisJCQkJTm8uMTUgWGlhb3lpbmcgRWFzdCBSb2FkLFFpbmdoZSxCZWlqaW5nLENoaW5hCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMEUtNkEgICAoaGV4KQkJM0NvbSBMdGQKKzAwMEU2QSAgICAgKGJhc2UgMTYpCQkzQ29tIEx0ZAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlQZW9wbGVidWlsZGluZyBFc3RhdGUsIE1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cyBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEUtNkIgICAoaGV4KQkJSmFuaXR6YSBlbGVjdHJvbmljcyBHbWJICiswMDBFNkIgICAgIChiYXNlIDE2KQkJSmFuaXR6YSBlbGVjdHJvbmljcyBHbWJICisJCQkJVm9yIGRlbSBQb2xzdMO8Y2sgMQorCQkJCUxhaG5hdSBIZXNzZW4gMzU2MzMKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLTZDICAgKGhleCkJCURldmljZSBEcml2ZXJzIExpbWl0ZWQKKzAwMEU2QyAgICAgKGJhc2UgMTYpCQlEZXZpY2UgRHJpdmVycyBMaW1pdGVkCisJCQkJMS01LTEtMTAzCisJCQkJV2FrYW1hdHN1LWNobworCQkJCUZ1Y2h1LXNoaSBUb2t5byAxODMwMDA1CisJCQkJSkFQQU4KKworMDAtMEUtNkQgICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCiswMDBFNkQgICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJMjI4OCwgT2F6YS1PaHNoaW5vaGFyYSwgWWFzdS1jaG8sCisJCQkJWWFzdS1ndW4gU2hpZ2EgNTIwLTIzOTMKKwkJCQlKQVBBTgorCiswMC0wRS02RSAgIChoZXgpCQlNSUNSRUxFQyAgRUxFQ1RST05JQ1MgUy5BCiswMDBFNkUgICAgIChiYXNlIDE2KQkJTUlDUkVMRUMgIEVMRUNUUk9OSUNTIFMuQQorCQkJCTE2IElTTUlOSVMgU1RSLgorCQkJCUFUSEVOUyBBRUdBTEVPIDEyMjQxCisJCQkJR1JFRUNFCisKKzAwLTBFLTZGICAgKGhleCkJCUlSSVMgQ29ycG9yYXRpb24gQmVyaGFkCiswMDBFNkYgICAgIChiYXNlIDE2KQkJSVJJUyBDb3Jwb3JhdGlvbiBCZXJoYWQKKwkJCQlJUklTIFNtYXJ0IFRlY2hub2xvZ3kgQ29tcGxleAorCQkJCVRlY2hub2xvZ3kgUGFyayBNYWxheXNpYSwgQnVraXQgSmFsaWwKKwkJCQlLdWFsYSBMdW1wdXIgV1AgNTcwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0wRS03MCAgIChoZXgpCQlpbjIgTmV0d29ya3MKKzAwMEU3MCAgICAgKGJhc2UgMTYpCQlpbjIgTmV0d29ya3MKKwkJCQkzMjAgVyAgMjAwIFMKKwkJCQlTdWl0ZSAjMzgwCisJCQkJU0xDIFVUIDg0MTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS03MSAgIChoZXgpCQlHZW1zdGFyIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgTHRkLgorMDAwRTcxICAgICAoYmFzZSAxNikJCUdlbXN0YXIgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBMdGQuCisJCQkJVW5pdCAyMDEsIFN0dWxleCBob3VzZSwgNjk4IHByaW5jZSBlZHdhcmQgcm9hZCBlYXN0LCBzYW4gcG8ga29uZywgS29sd29vbgorCQkJCUhvbmcgS29uZyAgODUyCisJCQkJSE9ORyBLT05HCisKKzAwLTBFLTcyICAgKGhleCkJCUNUUyBlbGVjdHJvbmljcworMDAwRTcyICAgICAoYmFzZSAxNikJCUNUUyBlbGVjdHJvbmljcworCQkJCUNvcnNvIFZlcmNlbGxpIDMzMgorCQkJCUl2cmVhIFRvcmlubyAxMDAxNQorCQkJCUlUQUxZCisKKzAwLTBFLTczICAgKGhleCkJCVRwYWNrIEEvUworMDAwRTczICAgICAoYmFzZSAxNikJCVRwYWNrIEEvUworCQkJCUxhdXRydXBiamVyZyA3IC0gMTEKKwkJCQlESyAyNzUwICBCYWxsZXJ1cCAgREsgMjc1MAorCQkJCURFTk1BUksKKworMDAtMEUtNzQgICAoaGV4KQkJU29sYXIgVGVsZWNvbS4gVGVjaAorMDAwRTc0ICAgICAoYmFzZSAxNikJCVNvbGFyIFRlbGVjb20uIFRlY2gKKwkJCQlCIEIvRCwgNEYsIFNhbWhvIFZlbnR1cmUgVG93ZXIKKwkJCQkjMjc1LTYsIFlhbmdqYWUtRG9uZywgU2VjaG8tR3UKKwkJCQlTZW91bCAgMTM3LTk0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS03NSAgIChoZXgpCQlOZXcgWW9yayBBaXIgQnJha2UgQ29ycC4KKzAwMEU3NSAgICAgKGJhc2UgMTYpCQlOZXcgWW9yayBBaXIgQnJha2UgQ29ycC4KKwkJCQk3NDggU3RhcmJ1Y2sgQXZlLgorCQkJCVdhdGVydG93biBOWSAxMzYwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtNzYgICAoaGV4KQkJR0VNU09DIElOTk9WSVNJT04gSU5DLgorMDAwRTc2ICAgICAoYmFzZSAxNikJCUdFTVNPQyBJTk5PVklTSU9OIElOQy4KKwkJCQk5RixOby41MTYsU2VjLDFOZWlodSBSZC4sCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTc3ICAgKGhleCkJCURlY3J1LCBJbmMuCiswMDBFNzcgICAgIChiYXNlIDE2KQkJRGVjcnUsIEluYy4KKwkJCQkyNzUgU2hvcmVsaW5lIERyCisJCQkJU3VpdGUgNDUwCisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS03OCAgIChoZXgpCQlBbXRlbGNvCiswMDBFNzggICAgIChiYXNlIDE2KQkJQW10ZWxjbworCQkJCTQ4MDAgQ3VydGluIERyaXZlCisJCQkJTWNGYXJsYW5kIFdJIDUzNTU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS03OSAgIChoZXgpCQlBbXBsZSBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDBFNzkgICAgIChiYXNlIDE2KQkJQW1wbGUgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTQwMzQgQ2xpcHBlciBDdC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS03QSAgIChoZXgpCQlHZW1Xb24gQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDBFN0EgICAgIChiYXNlIDE2KQkJR2VtV29uIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorCQkJCTNGTC4sTk8uMzIsTGFuZSAxMzUsU2hpYW5qZW5nIDl0aCBSZC4sSnViZWkgQ2l0eQorCQkJCUhzaW5jaHUgIDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtN0IgICAoaGV4KQkJVG9zaGliYQorMDAwRTdCICAgICAoYmFzZSAxNikJCVRvc2hpYmEKKwkJCQkyLTksIFN1ZWhpcm8tQ2hvCisJCQkJT21lIFRva3lvIDE5ODg3MTAKKwkJCQlKQVBBTgorCiswMC0wRS03QyAgIChoZXgpCQlUZWxldmVzIFMuQS4KKzAwMEU3QyAgICAgKGJhc2UgMTYpCQlUZWxldmVzIFMuQS4KKwkJCQlSdWEgQmVuZWZpY2EgQ29ueG8gMTcKKwkJCQlTYW50aWFnbyBkZSBDb21wb3N0ZWxhIENvcnXDsWEgMTU3MDYKKwkJCQlTUEFJTgorCiswMC0wRS03RCAgIChoZXgpCQlFbGVjdHJvbmljcyBMaW5lIDMwMDAgTHRkLgorMDAwRTdEICAgICAoYmFzZSAxNikJCUVsZWN0cm9uaWNzIExpbmUgMzAwMCBMdGQuCisJCQkJMiBHcmFuaXQgU3QuCisJCQkJUGV0YWggVGlrdmEgS2lyeWFyIEFyaWUgNDQ5MTMwCisJCQkJSVNSQUVMCisKKzAwLTBFLTdFICAgKGhleCkJCWlvblNpZ24gT3kKKzAwMEU3RSAgICAgKGJhc2UgMTYpCQlpb25TaWduIE95CisJCQkJUC5PLkJPWCAgMjQ2CisJCQkJRkktMjYxMDEKKwkJCQlSYXVtYSAgCisJCQkJRklOTEFORAorCiswMC0wRS03RiAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAwRTdGICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkgU291dGgKKwkJCQlNUzA3MDQwNQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTgwICAgKGhleCkJCVRob21zb24gVGVjaG5vbG9neSBJbmMKKzAwMEU4MCAgICAgKGJhc2UgMTYpCQlUaG9tc29uIFRlY2hub2xvZ3kgSW5jCisJCQkJOTA4N0EgMTk4dGggU1QKKwkJCQlTdXJyZXkgQkMgVjFNLTNCMQorCQkJCUNBTkFEQQorCiswMC0wRS04MSAgIChoZXgpCQlEZXZpY2VzY2FwZSBTb2Z0d2FyZSwgSW5jLgorMDAwRTgxICAgICAoYmFzZSAxNikJCURldmljZXNjYXBlIFNvZnR3YXJlLCBJbmMuCisJCQkJMTAwMCBNYXJpbmEgQmx2ZAorCQkJCVN1aXRlIDQwMAorCQkJCUJyaXNiYW5lIENBIDk0MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS04MiAgIChoZXgpCQlDb21tdGVjaCBXaXJlbGVzcworMDAwRTgyICAgICAoYmFzZSAxNikJCUNvbW10ZWNoIFdpcmVsZXNzCisJCQkJMTE1LzM5NiBTY2FyYm9yb3VnaCBCZWFjaCBSZAorCQkJCU9zYm9ybmUgUGFyaworCQkJCVBlcnRoIFdBIDYwMTcKKwkJCQlBVVNUUkFMSUEKKworMDAtMEUtODMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRTgzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtODQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRTg0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtODUgICAoaGV4KQkJQ2F0YWx5c3QgRW50ZXJwcmlzZXMsIEluYy4KKzAwMEU4NSAgICAgKGJhc2UgMTYpCQlDYXRhbHlzdCBFbnRlcnByaXNlcywgSW5jLgorCQkJCTMzODUgU2NvdHQgQmx2ZAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS04NiAgIChoZXgpCQlBbGNhdGVsIE5vcnRoIEFtZXJpY2EKKzAwMEU4NiAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIE5vcnRoIEFtZXJpY2EKKwkJCQkyMzAxIFN1Z2FyIEJ1c2ggUm9hZAorCQkJCVJhbGVpZ2ggTkMgMjc2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTg3ICAgKGhleCkJCWFkcCBHYXVzZWxtYW5uIEdtYkgKKzAwMEU4NyAgICAgKGJhc2UgMTYpCQlhZHAgR2F1c2VsbWFubiBHbWJICisJCQkJQm9zY2hzdHIuIDgKKwkJCQlMdWViYmVja2UgTlJXIDMyMzEyCisJCQkJR0VSTUFOWQorCiswMC0wRS04OCAgIChoZXgpCQlWSURFT1RST04gQ09SUC4KKzAwMEU4OCAgICAgKGJhc2UgMTYpCQlWSURFT1RST04gQ09SUC4KKwkJCQkxNy0xNiwyLUNIT01FCisJCQkJSEFDSElPSkkgVE9LWU8gMTkzLTA4MzUKKwkJCQlKQVBBTgorCiswMC0wRS04OSAgIChoZXgpCQlDTEVNQVRJQworMDAwRTg5ICAgICAoYmFzZSAxNikJCUNMRU1BVElDCisJCQkJMTAxIHJ1ZSBQaWVycmUgU0VNQVJECisJCQkJQ0hBVElMTE9OIFIuUC4gOTIzMjAKKwkJCQlGUkFOQ0UKKworMDAtMEUtOEEgICAoaGV4KQkJQXZhcmEgVGVjaG5vbG9naWVzIFB0eS4gTHRkLgorMDAwRThBICAgICAoYmFzZSAxNikJCUF2YXJhIFRlY2hub2xvZ2llcyBQdHkuIEx0ZC4KKwkJCQk5IEJ1c2luZXNzIFBhcmsgRHJpdmUKKwkJCQlOb3R0aW5nIEhpbGwgVmljdG9yaWEgMzE2OAorCQkJCUFVU1RSQUxJQQorCiswMC0wRS04QiAgIChoZXgpCQlBc3RhcnRlIFRlY2hub2xvZ3kgQ28sIEx0ZC4KKzAwMEU4QiAgICAgKGJhc2UgMTYpCQlBc3RhcnRlIFRlY2hub2xvZ3kgQ28sIEx0ZC4KKwkJCQkxMUYsIE5vLiAxNjYgRGFoLVllaCBSZC4KKwkJCQlQZWl0b3UsIFRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS04QyAgIChoZXgpCQlTaWVtZW5zIEFHIEEmRCBFVAorMDAwRThDICAgICAoYmFzZSAxNikJCVNpZW1lbnMgQUcgQSZEIEVUCisJCQkJU2llbWVuc3N0cmHDg8W4ZSAxMAorCQkJCVJlZ2Vuc2J1cmcgIDkzMDU1CisJCQkJR0VSTUFOWQorCiswMC0wRS04RCAgIChoZXgpCQlTeXN0ZW1zIGluIFByb2dyZXNzIEhvbGRpbmcgR21iSAorMDAwRThEICAgICAoYmFzZSAxNikJCVN5c3RlbXMgaW4gUHJvZ3Jlc3MgSG9sZGluZyBHbWJICisJCQkJRXhlcnppZXJwbGF0enN0cmFzc2UgODUKKwkJCQlHcmF6IFN0eXJpYSA4MDUxCisJCQkJQVVTVFJJQQorCiswMC0wRS04RSAgIChoZXgpCQlTcGFya0xBTiBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAwRThFICAgICAoYmFzZSAxNikJCVNwYXJrTEFOIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJM0ZsIC4gLCBOby4gMjQ2LCBTZWMuIDEsIE5laWh1IFJvYWQuLCBOZWlodSBDaGl1LAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS04RiAgIChoZXgpCQlTZXJjb21tIENvcnAuCiswMDBFOEYgICAgIChiYXNlIDE2KQkJU2VyY29tbSBDb3JwLgorCQkJCTNGLE5vLjgxLFl1LVlpaCBSZC4sQ2h1LU5hbiBDaGVuCisJCQkJTWlhby1MaWggSHN1YW4gIDM1MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtOTAgICAoaGV4KQkJUE9OSUNPIENPUlAuCiswMDBFOTAgICAgIChiYXNlIDE2KQkJUE9OSUNPIENPUlAuCisJCQkJNjAyLCBBY2UgVHdpbiBUb3dlciAxLCAyMTItMSBHdXJvLWRvbmcKKwkJCQlHdXJvZ3UgU2VvdWwgMTUyLTc2NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS05MSAgIChoZXgpCQlOYXZpY28gQXVja2xhbmQgTHRkCiswMDBFOTEgICAgIChiYXNlIDE2KQkJTmF2aWNvIEF1Y2tsYW5kIEx0ZAorCQkJCTE3LTIxIEthd2FuYSBTdAorCQkJCU5vcnRoY290ZSBBdWNrbGFuZCAKKwkJCQlORVcgWkVBTEFORAorCiswMC0wRS05MiAgIChoZXgpCQlNaWxsaW5ldCBDby4sIEx0ZC4KKzAwMEU5MiAgICAgKGJhc2UgMTYpCQlNaWxsaW5ldCBDby4sIEx0ZC4KKwkJCQkyRiwgV2VzdCBCdWlsZGluZywgSVQgVmVudHVyZSBUb3dlciwgNzgsIEdhcmFrYm9uLWRvbmcKKwkJCQlTb25ncGEtZ3UgU2VvdWwgMTM4LTE2OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS05MyAgIChoZXgpCQlNaWzDqW5pbyAzIFNpc3RlbWFzIEVsZWN0csOzbmljb3MsIExkYS4KKzAwMEU5MyAgICAgKGJhc2UgMTYpCQlNaWzDqW5pbyAzIFNpc3RlbWFzIEVsZWN0csOzbmljb3MsIExkYS4KKwkJCQlFZGlmw61jaW8gVmlhIE5vcnRlLCBSLiBFc3BpZG8gMTY0QyBTNDAzCisJCQkJTWFpYSBNaW5obyA0NDcwLTE3NworCQkJCVBPUlRVR0FMCisKKzAwLTBFLTk0ICAgKGhleCkJCU1hYXMgSW50ZXJuYXRpb25hbCBCVgorMDAwRTk0ICAgICAoYmFzZSAxNikJCU1hYXMgSW50ZXJuYXRpb25hbCBCVgorCQkJCVNjaWVuY2UgUGFyayBFaW5kaG92ZW4gNTA1MQorCQkJCVNvbiBOb29yZCBCcmFiYW50IE5MLTU2OTIgRUIKKwkJCQlORVRIRVJMQU5EUworCiswMC0wRS05NSAgIChoZXgpCQlGdWppeWEgRGVua2kgU2Vpc2FrdXNobyBDby4sTHRkLgorMDAwRTk1ICAgICAoYmFzZSAxNikJCUZ1aml5YSBEZW5raSBTZWlzYWt1c2hvIENvLixMdGQuCisJCQkJOEYgRnVrdXNoaW1hIEJMREcuIDYtMjUtMTEsTmlzaGktR290YW5kYQorCQkJCVNoaW5hZ2F3YS1LdSBUb2t5byAxNDEtMDAzMQorCQkJCUpBUEFOCisKKzAwLTBFLTk2ICAgKGhleCkJCUN1YmljIERlZmVuc2UgQXBwbGljYXRpb25zLCBJbmMuCiswMDBFOTYgICAgIChiYXNlIDE2KQkJQ3ViaWMgRGVmZW5zZSBBcHBsaWNhdGlvbnMsIEluYy4KKwkJCQlQLk8uIEJveCA4NTU4NworCQkJCTkzMzMgQmFsYm9hIEF2ZW51ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjE4Ni01NTg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS05NyAgIChoZXgpCQlVbHRyYWNrZXIgVGVjaG5vbG9neSBDTy4sIEluYworMDAwRTk3ICAgICAoYmFzZSAxNikJCVVsdHJhY2tlciBUZWNobm9sb2d5IENPLiwgSW5jCisJCQkJMTRGLTEsIE5vLiA4ODgsIEppbmdndW8gUm9hZCwgVGFveXVhbiBDaXR5LAorCQkJCVRhb3l1YW4gIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtOTggICAoaGV4KQkJSE1FIENsZWFyLUNvbSBMVEQuCiswMDBFOTggICAgIChiYXNlIDE2KQkJSE1FIENsZWFyLUNvbSBMVEQuCisJCQkJNzQwMCBCZWFjaCBEcml2ZQorCQkJCVdhdGVyYmVhY2gKKwkJCQlDYW1icmlkZ2VzaGlyZSAgQ0IyNSA5VFAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRS05OSAgIChoZXgpCQlTcGVjdHJ1bSBEaWdpdGFsLCBJbmMKKzAwMEU5OSAgICAgKGJhc2UgMTYpCQlTcGVjdHJ1bSBEaWdpdGFsLCBJbmMKKwkJCQkxMjUwMiBFeGNoYW5nZSBEcml2ZSwgU3VpdGUgNDQwCisJCQkJU3RhZmZvcmQgVFggNzc0NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLTlBICAgKGhleCkJCUJPRSBURUNITk9MT0dZIEdST1VQIENPLixMVEQKKzAwMEU5QSAgICAgKGJhc2UgMTYpCQlCT0UgVEVDSE5PTE9HWSBHUk9VUCBDTy4sTFRECisJCQkJTm8uMTAgSml1eGlhbnFpYW8gUm9hZCxDaGFveWFuZyBEaXN0cmljdCxCZWlqaW5nLFBSQworCQkJCUJlaWppbmcgIDEwMDAxNgorCQkJCUNISU5BCisKKzAwLTBFLTlCICAgKGhleCkJCUFtYml0IE1pY3Jvc3lzdGVtcyBDb3Jwb3JhdGlvbgorMDAwRTlCICAgICAoYmFzZSAxNikJCUFtYml0IE1pY3Jvc3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTVGLTEsIDUgSHNpbi1BbiBSZC4gU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLTlDICAgKGhleCkJCVBlbXN0YXIKKzAwMEU5QyAgICAgKGJhc2UgMTYpCQlQZW1zdGFyCisJCQkJMzUzNSBUZWNobm9sb2d5IERyaXZlCisJCQkJUm9jaGVzdGVyIE1OIDU1OTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS05RCAgIChoZXgpCQlUaXNjYWxpIFVLIEx0ZAorMDAwRTlEICAgICAoYmFzZSAxNikJCVRpc2NhbGkgVUsgTHRkCisJCQkJMjAgQnJvYWR3aWNrIFN0cmVldAorCQkJCUxvbmRvbiAgVzFGIDhIVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBFLTlFICAgKGhleCkJCVRvcGZpZWxkIENvLiwgTHRkCiswMDBFOUUgICAgIChiYXNlIDE2KQkJVG9wZmllbGQgQ28uLCBMdGQKKwkJCQk0dGggZmxvb3IsIERlb2tzYW4gQmxkZyAyNjAtNCwgU2VvaHl1bi1kb25nCisJCQkJU2VvbmduYW0gQnVuZGFuZy1LdSA0NjMtODI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLTlGICAgKGhleCkJCVRFTUlDIFNEUyBHbWJICiswMDBFOUYgICAgIChiYXNlIDE2KQkJVEVNSUMgU0RTIEdtYkgKKwkJCQlTb2VmbGluZ2VyIFN0cmFzc2UgMTAwCisJCQkJVWxtICA4OTA3NworCQkJCUdFUk1BTlkKKworMDAtMEUtQTAgICAoaGV4KQkJTmV0S2xhc3MgVGVjaG5vbG9neSBJbmMuCiswMDBFQTAgICAgIChiYXNlIDE2KQkJTmV0S2xhc3MgVGVjaG5vbG9neSBJbmMuCisJCQkJMkYtMSwgTm8uMzAsVGFpIFl1ZW4gU3RyZWV0LAorCQkJCUNodXBlaSBDaXR5LCBIc2luY2h1LCAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUExICAgKGhleCkJCUZvcm1vc2EgVGVsZXRlayBDb3Jwb3JhdGlvbgorMDAwRUExICAgICAoYmFzZSAxNikJCUZvcm1vc2EgVGVsZXRlayBDb3Jwb3JhdGlvbgorCQkJCTM1OCxIdWF5YSAybmQgUmQuCisJCQkJR3VlaXNoYW4gU2hpYW5nCisJCQkJVGFveXVhbiAgMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS1BMiAgIChoZXgpCQlNY0FmZWUsIEluYworMDAwRUEyICAgICAoYmFzZSAxNikJCU1jQWZlZSwgSW5jCisJCQkJMzUwIFNXIDEydGggQXZlbnVlCisJCQkJRGVlcmZpZWxkIEJlYWNoIEZMIDMzNDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1BMyAgIChoZXgpCQlDTkNSLUlUIENPLixMVEQsSGFuZ1pob3UgUC5SLkNISU5BCiswMDBFQTMgICAgIChiYXNlIDE2KQkJQ05DUi1JVCBDTy4sTFRELEhhbmdaaG91IFAuUi5DSElOQQorCQkJCVh1YW5UYW4gcm9hZCBOTzEuZGVwYXJ0bWVudCByb29tNTA0LAorCQkJCUhhbmdaaG91IFpoZUppYW5nIDMxMDAwMworCQkJCUNISU5BCisKKzAwLTBFLUE0ICAgKGhleCkJCUNlcnRhbmNlIEluYy4KKzAwMEVBNCAgICAgKGJhc2UgMTYpCQlDZXJ0YW5jZSBJbmMuCisJCQkJMTY1MCBTdW5mbG93ZXIgQXZlLgorCQkJCUNvc3RhIE1lc2EgQ0EgOTI2MjYtMTUxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQTUgICAoaGV4KQkJQkxJUCBTeXN0ZW1zCiswMDBFQTUgICAgIChiYXNlIDE2KQkJQkxJUCBTeXN0ZW1zCisJCQkJSGFla2tlbiAyCisJCQkJVm9kc2tvdiBWZXN0ZXIgSGFzc2luZyA5MzEwCisJCQkJREVOTUFSSworCiswMC0wRS1BNiAgIChoZXgpCQlBU1VTVEVLIENPTVBVVEVSIElOQy4KKzAwMEVBNiAgICAgKGJhc2UgMTYpCQlBU1VTVEVLIENPTVBVVEVSIElOQy4KKwkJCQlOby4gMTUwLCBMaS1UZSBSZC4sUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUE3ICAgKGhleCkJCUVuZGFjZSBUZWNobm9sb2d5CiswMDBFQTcgICAgIChiYXNlIDE2KQkJRW5kYWNlIFRlY2hub2xvZ3kKKwkJCQk4NSBBbGV4YW5kcmEgU3RyZWV0CisJCQkJSGFtaWx0b24gIDMyMDQKKwkJCQlORVcgWkVBTEFORAorCiswMC0wRS1BOCAgIChoZXgpCQlVbml0ZWQgVGVjaG5vbG9naXN0cyBFdXJvcGUgTGltaXRlZAorMDAwRUE4ICAgICAoYmFzZSAxNikJCVVuaXRlZCBUZWNobm9sb2dpc3RzIEV1cm9wZSBMaW1pdGVkCisJCQkJVVRFTCBMYWJvcmF0b3JpZXMsIFdvbHZlcyBGYXJtIExhbmUKKwkJCQlJcHN3aWNoIFJvYWQKKwkJCQlIYWRsZWlnaCBTdWZmb2xrIElQNyA2QkgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRS1BOSAgIChoZXgpCQlTaGFuZ2hhaSBYdW4gU2hpIENvbW11bmljYXRpb25zIEVxdWlwbWVudCBMdGQuIENvLgorMDAwRUE5ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFh1biBTaGkgQ29tbXVuaWNhdGlvbnMgRXF1aXBtZW50IEx0ZC4gQ28uCisJCQkJSGktVGVjaCBLaW5nIFdvcmxkLCBVbml0IEM2MDMKKwkJCQkjNjY2IEJlaWppbmcgUm9hZCAoRSkKKwkJCQlTaGFuZ2hhaSAgMjAwMDAxCisJCQkJQ0hJTkEKKworMDAtMEUtQUEgICAoaGV4KQkJU2NhbGVudCBTeXN0ZW1zLCBJbmMuCiswMDBFQUEgICAgIChiYXNlIDE2KQkJU2NhbGVudCBTeXN0ZW1zLCBJbmMuCisJCQkJNDkwIFMuIENhbGlmb3JuaWEgQXZlCisJCQkJUGFsbyBBbHRvIENBIDk0MzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1BQiAgIChoZXgpCQlDcmF5IEluYworMDAwRUFCICAgICAoYmFzZSAxNikJCUNyYXkgSW5jCisJCQkJNDExIEZpcnN0IEF2ZSBTIFN1aXRlIDYwMAorCQkJCVNlYXR0bGUgV0EgOTgxMDQKKwkJCQlDQU5BREEKKworMDAtMEUtQUMgICAoaGV4KQkJTUlOVFJPTiBFTlRFUlBSSVNFIENPLiwgTFRELgorMDAwRUFDICAgICAoYmFzZSAxNikJCU1JTlRST04gRU5URVJQUklTRSBDTy4sIExURC4KKwkJCQlOTy4zLFd1LUt1bmcgNVJkLiwgV3UtS3UgSW5kIFBhcmsKKwkJCQlUYWlwZWkgQ291bnR5ICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUFEICAgKGhleCkJCU1ldGFub2lhIFRlY2hub2xvZ2llcywgSW5jLgorMDAwRUFEICAgICAoYmFzZSAxNikJCU1ldGFub2lhIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTU5MTggVy4gY291cnR5YXJkIERyLgorCQkJCVN1aXRlIDMzMAorCQkJCUF1c3RpbiBUWCA3ODczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQUUgICAoaGV4KQkJR0FXRUxMIFRFQ0hOT0xPR0lFUyBDT1JQLgorMDAwRUFFICAgICAoYmFzZSAxNikJCUdBV0VMTCBURUNITk9MT0dJRVMgQ09SUC4KKwkJCQkyRixOTy4xMDIsU0VDLjMsSlVORyBTSEFOIFJELAorCQkJCUpVTkcgSE8gQ0lUWSwgVEFJUEVJIEhTSUVOIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtQUYgICAoaGV4KQkJQ0FTVEVMCiswMDBFQUYgICAgIChiYXNlIDE2KQkJQ0FTVEVMCisJCQkJWkkgU2FpbnQgTGFtYmVydCBkZXMgTGV2w6llcworCQkJCVNBVU1VUiBNYWluZSBldCBMb2lyZSA0OTQxMgorCQkJCUZSQU5DRQorCiswMC0wRS1CMCAgIChoZXgpCQlTb2x1dGlvbnMgUmFkaW8gQlYKKzAwMEVCMCAgICAgKGJhc2UgMTYpCQlTb2x1dGlvbnMgUmFkaW8gQlYKKwkJCQlQcmluc2VncmFjaHQgODIKKwkJCQlUaGUgSGFndWUgWkggMjUxMiBHQworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBFLUIxICAgKGhleCkJCU5ld2NvdGVjaCxMdGQKKzAwMEVCMSAgICAgKGJhc2UgMTYpCQlOZXdjb3RlY2gsTHRkCisJCQkJQW55YW5nIE1lZ2F2YWxseSA3MTUtMworCQkJCUt3YW55YW5nLURvbmcsIERvbmdhbi1HdSwKKwkJCQlBbnlhbmcgQ2l0eSBHdWVvbmdnaS1EbyA0MzEtMTYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBFLUIyICAgKGhleCkJCU1pY3JvLVJlc2VhcmNoIEZpbmxhbmQgT3kKKzAwMEVCMiAgICAgKGJhc2UgMTYpCQlNaWNyby1SZXNlYXJjaCBGaW5sYW5kIE95CisJCQkJVsOkbGl0YWxvbnRpZSA4MyBDCisJCQkJSGVsc2lua2kgIEZJTi0wMDY2MAorCQkJCUZJTkxBTkQKKworMDAtMEUtQjMgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkCiswMDBFQjMgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkCisJCQkJMjU4MCA1NXRoIFN0cmVldAorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUI0ICAgKGhleCkJCUdVQU5HWkhPVSBHQU9LRSBDT01NVU5JQ0FUSU9OUyBURUNITk9MT0dZIENPLkxURC4KKzAwMEVCNCAgICAgKGJhc2UgMTYpCQlHVUFOR1pIT1UgR0FPS0UgQ09NTVVOSUNBVElPTlMgVEVDSE5PTE9HWSBDTy5MVEQuCisJCQkJQVZFLiAzOTggWkhPTkdTSEFOCisJCQkJR1VBTkdaSE9VIEdVQU5HRE9ORyA1MTA2NjAKKwkJCQlDSElOQQorCiswMC0wRS1CNSAgIChoZXgpCQlFY2FzdGxlIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAwRUI1ICAgICAoYmFzZSAxNikJCUVjYXN0bGUgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJIzUwMiwgTmFtamFuZyBCL0QsIEJhbmdiYWUtZG9uZywKKwkJCQlTZW9jaG8ta3UsCisJCQkJU2VvdWwgIDEzNy04MTgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtQjYgICAoaGV4KQkJUml2ZXJiZWQgVGVjaG5vbG9neSwgSW5jLgorMDAwRUI2ICAgICAoYmFzZSAxNikJCVJpdmVyYmVkIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk1MDEgU2Vjb25kIFN0cmVldAorCQkJCVN1aXRlIDQxMAorCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUI3ICAgKGhleCkJCUtub3ZhdGl2ZSwgSW5jLgorMDAwRUI3ICAgICAoYmFzZSAxNikJCUtub3ZhdGl2ZSwgSW5jLgorCQkJCTExMjQ1IFdlc3QgQmVybmFyZG8gQ291cnQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUI4ICAgKGhleCkJCUlpZ2EgY28uLEx0ZAorMDAwRUI4ICAgICAoYmFzZSAxNikJCUlpZ2EgY28uLEx0ZAorCQkJCTNGIFRLQmxkZy4gMy01LTIgU290b2thbmRhCisJCQkJQ2hpeW9kYS1LdSBUb2t5byAxMDEtMDAyMQorCQkJCUpBUEFOCisKKzAwLTBFLUI5ICAgKGhleCkJCUhBU0hJTU9UTyBFbGVjdHJvbmljcyBJbmR1c3RyeSBDby4sTHRkLgorMDAwRUI5ICAgICAoYmFzZSAxNikJCUhBU0hJTU9UTyBFbGVjdHJvbmljcyBJbmR1c3RyeSBDby4sTHRkLgorCQkJCTM4NjYtMTIgVGFrYXN1LWNobworCQkJCU1hdHN1c2FrYSBNaWUgNTE1LTAxMDQKKwkJCQlKQVBBTgorCiswMC0wRS1CQSAgIChoZXgpCQlIQU5NSSBTRU1JQ09ORFVDVE9SIENPLiwgTFRELgorMDAwRUJBICAgICAoYmFzZSAxNikJCUhBTk1JIFNFTUlDT05EVUNUT1IgQ08uLCBMVEQuCisJCQkJIzUzMi0yLCBHYWp3YS1Eb25nLCBTZW8tS3UsCisJCQkJSW5jaGVvbiAgNDA0IDI1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS1CQiAgIChoZXgpCQlFdmVyYmVlIE5ldHdvcmtzCiswMDBFQkIgICAgIChiYXNlIDE2KQkJRXZlcmJlZSBOZXR3b3JrcworCQkJCTQxLCBCb3VsZXZhcmQgZGVzIENhcHVjaW5lcworCQkJCVBhcmlzICA3NTAwMgorCQkJCUZSQU5DRQorCiswMC0wRS1CQyAgIChoZXgpCQlQYXJhZ29uIEZpZGVsaXR5IEdtYkgKKzAwMEVCQyAgICAgKGJhc2UgMTYpCQlQYXJhZ29uIEZpZGVsaXR5IEdtYkgKKwkJCQlTY2h3YWRlcm3DvGhsc3RyYXNzZSA0YQorCQkJCUNhZG9semJ1cmcgIDkwNTU2CisJCQkJR0VSTUFOWQorCiswMC0wRS1CRCAgIChoZXgpCQlCdXJkaWNrLCBhIFF1aW50b24gQ29tcG55CiswMDBFQkQgICAgIChiYXNlIDE2KQkJQnVyZGljaywgYSBRdWludG9uIENvbXBueQorCQkJCTUwMCBCdXJkaWNrIFBhcmt3YXkKKwkJCQlEZWVyZmllbGQgV0kgNTM1MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUJFICAgKGhleCkJCUImQiBFbGVjdHJvbmljcyBNYW51ZmFjdHVyaW5nIENvLgorMDAwRUJFICAgICAoYmFzZSAxNikJCUImQiBFbGVjdHJvbmljcyBNYW51ZmFjdHVyaW5nIENvLgorCQkJCTcwNyBEYXl0b24gUm9hZAorCQkJCVAuTy4gQm94IDEwNDAKKwkJCQlPdHRhd2EgSWxpbm9pcyA2MTM1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQkYgICAoaGV4KQkJUmVtc2RhcSBMaW1pdGVkCiswMDBFQkYgICAgIChiYXNlIDE2KQkJUmVtc2RhcSBMaW1pdGVkCisJCQkJUGFya3dheQorCQkJCURlZXNpZGUgSW5kdXN0cmlhbCBQYXJrCisJCQkJRGVlc2lkZSBGbGludHNoaXJlIENINSAyTkwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRS1DMCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMEVDMCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0wRS1DMSAgIChoZXgpCQlNWU5BSCBUZWNobm9sb2dpZXMKKzAwMEVDMSAgICAgKGJhc2UgMTYpCQlNWU5BSCBUZWNobm9sb2dpZXMKKwkJCQk1MDQgVHJhZGUgQ2VudGVyIEJsdmQKKwkJCQlDaGVzdGVyZmllbGQgTU8gNjMwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUMyICAgKGhleCkJCUxvd3JhbmNlIEVsZWN0cm9uaWNzLCBJbmMuCiswMDBFQzIgICAgIChiYXNlIDE2KQkJTG93cmFuY2UgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQkxMjAwMCBFLiBTa2VsbHkgRHJpdmUKKwkJCQlUdWxzYSBPSyA3NDEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQzMgICAoaGV4KQkJTG9naWMgQ29udHJvbHMsIEluYy4KKzAwMEVDMyAgICAgKGJhc2UgMTYpCQlMb2dpYyBDb250cm9scywgSW5jLgorCQkJCTM1NSBEZW50b24gQXZlbnVlCisJCQkJTmV3IEh5ZGUgUGFyayBOWSAxMTA0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQzQgICAoaGV4KQkJSXNrcmEgVHJhbnNtaXNzaW9uIGQuZC4KKzAwMEVDNCAgICAgKGJhc2UgMTYpCQlJc2tyYSBUcmFuc21pc3Npb24gZC5kLgorCQkJCVN0ZWduZSAxMQorCQkJCUxqdWJsamFuYSAgMTAwMAorCQkJCVNMT1ZFTklBCisKKzAwLTBFLUM1ICAgKGhleCkJCURpZ2l0YWwgTXVsdGl0b29scyBJbmMKKzAwMEVDNSAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIE11bHRpdG9vbHMgSW5jCisJCQkJOTAwNSBMZXNsaWUgU3RyZWV0ICBVbml0IDIwNQorCQkJCVJpY2htb25kIEhpbGwgT250YXJpbyBMNEIgMUc3CisJCQkJQ0FOQURBCisKKzAwLTBFLUM2ICAgKGhleCkJCUFTSVggRUxFQ1RST05JQ1MgQ09SUC4KKzAwMEVDNiAgICAgKGJhc2UgMTYpCQlBU0lYIEVMRUNUUk9OSUNTIENPUlAuCisJCQkJNEYsIE5PLjgsIEhTSU4gQU5OIFJELiwKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSywKKwkJCQlIU0lOQ0hVICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUM3ICAgKGhleCkJCU1vdG9yb2xhIEtvcmVhCiswMDBFQzcgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgS29yZWEKKwkJCQlIaWJyYW5kIEIvRCAxN0YgU1cgVGVhbSBNb3Rvcm9sYSBLb3JlYQorCQkJCVlhbmdqYWVkb25nIFNlb2NobyAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEUtQzggICAoaGV4KQkJWm9yYW4gQ29ycG9yYXRpb24KKzAwMEVDOCAgICAgKGJhc2UgMTYpCQlab3JhbiBDb3Jwb3JhdGlvbgorCQkJCTEzOTAgS2lmZXIgUmQuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1DOSAgIChoZXgpCQlZT0tPIFRlY2hub2xvZ3kgQ29ycC4KKzAwMEVDOSAgICAgKGJhc2UgMTYpCQlZT0tPIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQk2RiwgTm8uMTAsIExhbmUxNiwgU2VjMiwgU3plLUNodWFuIFJkLiwgUGFuLQorCQkJCUNoaWFvIENpdHksCisJCQkJVGFpcGVpICA4ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUNBICAgKGhleCkJCVdUU1MgSW5jCiswMDBFQ0EgICAgIChiYXNlIDE2KQkJV1RTUyBJbmMKKwkJCQk1OTk5IEF2ZW5pZGEgRW5jaW5hcworCQkJCVN1aXRlIDE1MAorCQkJCUNhcmxzYmFkIENBIDkyMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1DQiAgIChoZXgpCQlWaW5lU3lzIFRlY2hub2xvZ3kKKzAwMEVDQiAgICAgKGJhc2UgMTYpCQlWaW5lU3lzIFRlY2hub2xvZ3kKKwkJCQkzMzUwIFNjb3R0IEJsdmQuIGJ1aWxkaW5nIDE1LTAzCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUNDICAgKGhleCkJCVRhYmxlYXUsIExMQworMDAwRUNDICAgICAoYmFzZSAxNikJCVRhYmxlYXUsIExMQworCQkJCU44IFcyMjE5NSBKb2huc29uIERyaXZlLCBTdWl0ZSAxMDAKKwkJCQlXYXVrZXNoYSBXSSA1MzE4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtQ0QgICAoaGV4KQkJU0tPViBBL1MKKzAwMEVDRCAgICAgKGJhc2UgMTYpCQlTS09WIEEvUworCQkJCUhlZGVsdW5kIDQKKwkJCQlHbHluZ29lcmUKKwkJCQlSb3NsZXYgIERLLTc4NzAKKwkJCQlERU5NQVJLCisKKzAwLTBFLUNFICAgKGhleCkJCVMuSS5ULlQuSS4gUy5wLkEuCiswMDBFQ0UgICAgIChiYXNlIDE2KQkJUy5JLlQuVC5JLiBTLnAuQS4KKwkJCQlWaWEgQ2Fkb3JuYSA2OQorCQkJCVZpbW9kcm9uZSBNaWxhbiBJLTIwMDkwCisJCQkJSVRBTFkKKworMDAtMEUtQ0YgICAoaGV4KQkJUFJPRklCVVMgTnV0emVyb3JnYW5pc2F0aW9uIGUuVi4KKzAwMEVDRiAgICAgKGJhc2UgMTYpCQlQUk9GSUJVUyBOdXR6ZXJvcmdhbmlzYXRpb24gZS5WLgorCQkJCUhhaWQtdW5kLU5ldS1TdHJhc3NlIDcKKwkJCQlLYXJsc3J1aGUgQmFkZW4tV8O8cnR0ZW1iZXJnIDc2MTMxCisJCQkJR0VSTUFOWQorCiswMC0wRS1EMCAgIChoZXgpCQlQcml2YXJpcywgSW5jLgorMDAwRUQwICAgICAoYmFzZSAxNikJCVByaXZhcmlzLCBJbmMuCisJCQkJNjUwIFBldGVyIEplZmZlcnNvbiBQa3d5LCBTdGUgMzMwCisJCQkJQ2hhcmxvdHRlc3ZpbGxlIFZpcmdpbmlhIDIyOTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1EMSAgIChoZXgpCQlPc2FrYSBNaWNybyBDb21wdXRlci4KKzAwMEVEMSAgICAgKGJhc2UgMTYpCQlPc2FrYSBNaWNybyBDb21wdXRlci4KKwkJCQlJc29ub2thbWljeW8gMy0xMS03CisJCQkJS2lzaGl3YWRhIE9zYWthIDU5NjAwMDEKKwkJCQlKQVBBTgorCiswMC0wRS1EMiAgIChoZXgpCQlGaWx0cm9uaWMgcGxjCiswMDBFRDIgICAgIChiYXNlIDE2KQkJRmlsdHJvbmljIHBsYworCQkJCVRoZSBXYXRlcmZyb250CisJCQkJU2FsdHMgTWlsbCBSZAorCQkJCVNhbHRhaXJlIFcgWW9ya3MgQkQxOCAzVFQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRS1EMyAgIChoZXgpCQlFcGljZW50ZXIsIEluYy4KKzAwMEVEMyAgICAgKGJhc2UgMTYpCQlFcGljZW50ZXIsIEluYy4KKwkJCQkyMTEgQiBDYWxsZSBQaW50b3Jlc2NvCisJCQkJU2FuIENsZW1lbnRlIENBIDkyNjcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1ENCAgIChoZXgpCQlDUkVTSVRUIElORFVTVFJJRQorMDAwRUQ0ICAgICAoYmFzZSAxNikJCUNSRVNJVFQgSU5EVVNUUklFCisJCQkJMTIgcnVlIGRlIEJsb2lzCisJCQkJT3JsZWFucyBCUCA2NzQ0IDQ1MDY3ICBjZWRleAorCQkJCUZSQU5DRQorCiswMC0wRS1ENSAgIChoZXgpCQlDT1BBTiBTeXN0ZW1zIEluYy4KKzAwMEVENSAgICAgKGJhc2UgMTYpCQlDT1BBTiBTeXN0ZW1zIEluYy4KKwkJCQkyNjA1IFRyYWRlIENlbnRyZSBBdmUuCisJCQkJU3VpdGUgRAorCQkJCUxvbmdtb250IENPIDgwNTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1ENiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBFRDYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1ENyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBFRDcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1EOCAgIChoZXgpCQlBa3Rpbm8sIEluYy4KKzAwMEVEOCAgICAgKGJhc2UgMTYpCQlBa3Rpbm8sIEluYy4KKwkJCQkxODU1MSBWb24gS2FybWFuIEF2ZW51ZQorCQkJCVN1aXRlIDIwMQorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRDkgICAoaGV4KQkJQWtzeXMsIEx0ZC4KKzAwMEVEOSAgICAgKGJhc2UgMTYpCQlBa3N5cywgTHRkLgorCQkJCTIgTWFycmlvdHQgRHJpdmUKKwkJCQlMaW5jb2xuc2hpcmUgSUwgNjAwNjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLURBICAgKGhleCkJCUMtVEVDSCBVTklURUQgQ09SUC4KKzAwMEVEQSAgICAgKGJhc2UgMTYpCQlDLVRFQ0ggVU5JVEVEIENPUlAuCisJCQkJNUYsIE5vIDY2NSwgQ0hVTkcgQ0hFTiBSRC4KKwkJCQlIU0lOIENIVUFORyBDSVRUICBvZiBUQUlQRUkgSFNJRU4gIDI0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtREIgICAoaGV4KQkJWGlOQ09NIENvcnAuCiswMDBFREIgICAgIChiYXNlIDE2KQkJWGlOQ09NIENvcnAuCisJCQkJMjg0MCBJbmR1c3RyaWFsIEF2ZS4KKwkJCQlIdWJiYXJkIE9SIDk3MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1EQyAgIChoZXgpCQlUZWxsaW9uIElOQy4KKzAwMEVEQyAgICAgKGJhc2UgMTYpCQlUZWxsaW9uIElOQy4KKwkJCQk1dGggRmwuIEJPTkEgVmVudHVyZSBUb3duCisJCQkJMTU4Ni0xIFNlb2NobyAzLWRvbmcsIFNlb2Noby1ndQorCQkJCVNlb3VsIFNlb2Noby1ndS4gMTM3LTcxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS1ERCAgIChoZXgpCQlTSFVSRSBJTkNPUlBPUkFURUQKKzAwMEVERCAgICAgKGJhc2UgMTYpCQlTSFVSRSBJTkNPUlBPUkFURUQKKwkJCQk1ODAwIFcuIFRPVUhZIEFWRS4KKwkJCQlOSUxFUyBJTCA2MDcxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtREUgICAoaGV4KQkJUkVNRUMsIEluYy4KKzAwMEVERSAgICAgKGJhc2UgMTYpCQlSRU1FQywgSW5jLgorCQkJCTIxNDQgRnJhbmtsaW4gRHJpdmUgTkUKKwkJCQlQYWxtIEJheSBGbG9yaWRhIDMyOTA1LTQwMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLURGICAgKGhleCkJCVBMWCBUZWNobm9sb2d5CiswMDBFREYgICAgIChiYXNlIDE2KQkJUExYIFRlY2hub2xvZ3kKKwkJCQk4NzAgTWF1ZGUgQXZlLiwKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUUwICAgKGhleCkJCU1jaGFyZ2UKKzAwMEVFMCAgICAgKGJhc2UgMTYpCQlNY2hhcmdlCisJCQkJRmlyc3RlYyBCbGRnLC4gMTUtNCBZb3VpZG8tRG9uZworCQkJCVlvdW5nZGV1bmdwby1HdSwKKwkJCQlzZW91bCBZb3VpZG8gMTUwLTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRS1FMSAgIChoZXgpCQlFeHRyZW1lU3BlZWQgSW5jLgorMDAwRUUxICAgICAoYmFzZSAxNikJCUV4dHJlbWVTcGVlZCBJbmMuCisJCQkJUE8gQm94IDYwMAorCQkJCTQ2MzQtNDZ0aCBTdHJlZXQgU3VpdGUgMjAxCisJCQkJTWFubnZpbGxlIEFsYmVydGEgVDBCIDJXMAorCQkJCUNBTkFEQQorCiswMC0wRS1FMiAgIChoZXgpCQlDdXN0b20gRW5naW5lZXJpbmcgUy5wLkEuCiswMDBFRTIgICAgIChiYXNlIDE2KQkJQ3VzdG9tIEVuZ2luZWVyaW5nIFMucC5BLgorCQkJCVZpYSBCZXJldHR0aW5lIDIvYgorCQkJCUZvbnRldml2byBQYXJtYSA0MzAxMAorCQkJCUlUQUxZCisKKzAwLTBFLUUzICAgKGhleCkJCUNoaXl1IFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAwRUUzICAgICAoYmFzZSAxNikJCUNoaXl1IFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCU5vLiAyOCwgUmVuYWkgUm9hZCwgQ2hpYXlpLCA2MDAKKwkJCQlDaGlheWkgIDYwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEUtRTQgICAoaGV4KQkJQk9FIFRFQ0hOT0xPR1kgR1JPVVAgQ08uLExURAorMDAwRUU0ICAgICAoYmFzZSAxNikJCUJPRSBURUNITk9MT0dZIEdST1VQIENPLixMVEQKKwkJCQlOby4xMCBKaXV4aWFucWlhbyBSb2FkLENoYW95YW5nIERpc3RyaWN0LAorCQkJCUJlaWppbmcgIDEwMDAxNgorCQkJCUNISU5BCisKKzAwLTBFLUU1ICAgKGhleCkJCWJpdFdhbGxldCwgSW5jLgorMDAwRUU1ICAgICAoYmFzZSAxNikJCWJpdFdhbGxldCwgSW5jLgorCQkJCUdhdGUgQ2l0eSBPaHNha2kgV2VzdCBUb3dlciAxOEYsIDEtMTEtMSBPc2FraSwgU2hpbmFnYXdhLWt1CisJCQkJVG9reW8gIDE0MTAwMzIKKwkJCQlKQVBBTgorCiswMC0wRS1FNiAgIChoZXgpCQlBZGltb3MgU3lzdGVtcyBMVEQKKzAwMEVFNiAgICAgKGJhc2UgMTYpCQlBZGltb3MgU3lzdGVtcyBMVEQKKwkJCQkxNyBBdGlyZXktWWVkYSBTdHJlZXQKKwkJCQlLZmFyLVNhYmEgIDQ0NjQzCisJCQkJSVNSQUVMCisKKzAwLTBFLUU3ICAgKGhleCkJCUFBQyBFTEVDVFJPTklDUyBDT1JQLgorMDAwRUU3ICAgICAoYmFzZSAxNikJCUFBQyBFTEVDVFJPTklDUyBDT1JQLgorCQkJCUZMT09SIDcsU0lYVEggQlVJTERJTkcgT0YgTkFJQU5ZT1UgVE5BTiBJTkRVU1RSSUFMIEFSRUEsTkFOU0hBTiBESVNUUklDVAorCQkJCVNIRU5aSEVOIFBST1ZJTkNFIEdVQU5HRE9ORyA1MTgwNTQKKwkJCQlDSElOQQorCiswMC0wRS1FOCAgIChoZXgpCQl6aW9uY29tCiswMDBFRTggICAgIChiYXNlIDE2KQkJemlvbmNvbQorCQkJCVdlc3Qgd2luZyA1L0YgLiwgQmxvY2sgMSwgR2FvWGluIFNvdXRoIFJpbmcgUmQvS2VqaSBTb3V0aCBSZCwKKwkJCQlWaXNpb24oU2hlblpoZW4pQnVzaW5lc3MgUGFyaywgU2hlbnpoZW4gSGktVGVjaCBJbmR1c3RyaWFsIFBhcmssCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTBFLUU5ICAgKGhleCkJCVdheVRlY2ggRGV2ZWxvcG1lbnQsIEluYy4KKzAwMEVFOSAgICAgKGJhc2UgMTYpCQlXYXlUZWNoIERldmVsb3BtZW50LCBJbmMuCisJCQkJMTFGbG9vciwgMjUzIE1pbi1TaGVuZyBSb2FkCisJCQkJSHNpbkNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS1FQSAgIChoZXgpCQlTaGFkb25nIEx1bmVuZyBKaWNoZW5nIEVsZWN0cm9uaWNzLENvLixMdGQKKzAwMEVFQSAgICAgKGJhc2UgMTYpCQlTaGFkb25nIEx1bmVuZyBKaWNoZW5nIEVsZWN0cm9uaWNzLENvLixMdGQKKwkJCQlOby4xODgsZWFzdCxIdWF5dWFuIFJvYWQKKwkJCQlKaW5hbiBTaGFuZG9uZyAyNTAxMDAKKwkJCQlDSElOQQorCiswMC0wRS1FQiAgIChoZXgpCQlTYW5kbWFydGluKHpob25nIHNoYW4pRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAwRUVCICAgICAoYmFzZSAxNikJCVNhbmRtYXJ0aW4oemhvbmcgc2hhbilFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJM3N0IEluZHVzdHJpYWwgQXJlYSxUYW4gWmhvdSwKKwkJCQlaaG9uZ3NoYW4gR3Vhbmdkb25nIDUyODQ2NworCQkJCUNISU5BCisKKzAwLTBFLUVDICAgKGhleCkJCU9yYmFuCiswMDBFRUMgICAgIChiYXNlIDE2KQkJT3JiYW4KKwkJCQkxNTI1IEFsdmFyYWRvIFN0LgorCQkJCVNhbiBMZWFuZHJvIENBIDk0NTc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRS1FRCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAwRUVEICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0wRS1FRSAgIChoZXgpCQlNdWNvIEluZHVzdHJpZSBCVgorMDAwRUVFICAgICAoYmFzZSAxNikJCU11Y28gSW5kdXN0cmllIEJWCisJCQkJUGxlaW11aWRlbiAxMmUKKwkJCQlBbXN0ZXJkYW0gTkggMTA0NiBBRworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTBFLUVGICAgKGhleCkJCVBSSVZBVEUKKzAwMEVFRiAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMEUtRjAgICAoaGV4KQkJRmVzdG8gQUcgJiBDby4gS0cKKzAwMEVGMCAgICAgKGJhc2UgMTYpCQlGZXN0byBBRyAmIENvLiBLRworCQkJCVJ1aXRlcnN0cmHDg8W4ZSA4MgorCQkJCUVzc2xpbmdlbiAgNzM3MzQKKwkJCQlHRVJNQU5ZCisKKzAwLTBFLUYxICAgKGhleCkJCUVaUVVFU1QgSU5DLgorMDAwRUYxICAgICAoYmFzZSAxNikJCUVaUVVFU1QgSU5DLgorCQkJCTIxMTMzIEUuIExBIFBBTE1BIEFWRS4KKwkJCQlZT1JCQSBMSU5EQSBDQSA5Mjg4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRjIgICAoaGV4KQkJSW5maW5pY28gQ29ycG9yYXRpb24KKzAwMEVGMiAgICAgKGJhc2UgMTYpCQlJbmZpbmljbyBDb3Jwb3JhdGlvbgorCQkJCTRGLCBGLTEgQmxkZy4sIDEtMi0xMiwKKwkJCQlIYW1hbWF0c3VjaG8sIE1pdGFuby1rdQorCQkJCVRva3lvICAxMDUtMDAxMworCQkJCUpBUEFOCisKKzAwLTBFLUYzICAgKGhleCkJCVNtYXJ0aG9tZQorMDAwRUYzICAgICAoYmFzZSAxNikJCVNtYXJ0aG9tZQorCQkJCTE2NTQyIE1pbGxpa2FuIEF2ZS4KKwkJCQlJcnZpbmUgQ0EgOTI2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUY0ICAgKGhleCkJCUthc2RhIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkCiswMDBFRjQgICAgIChiYXNlIDE2KQkJS2FzZGEgRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQKKwkJCQkyL0YsQnVpbGRpbmcgMixCYWd1YSAyIHJvYWQsRnV0aWFuLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyBQcm92aW5jZSA1MTgwMjkKKwkJCQlDSElOQQorCiswMC0wRS1GNSAgIChoZXgpCQlpUEFDIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDBFRjUgICAgIChiYXNlIDE2KQkJaVBBQyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTZGLCBOby4gMzAsIFNoaW5nanVuZyBSb2FkLCBOZWlodQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS1GNiAgIChoZXgpCQlFLVRFTiBJbmZvcm1hdGlvbiBTeXN0ZW1zIENvLiwgTHRkLgorMDAwRUY2ICAgICAoYmFzZSAxNikJCUUtVEVOIEluZm9ybWF0aW9uIFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJTm8uIDI1NiwgWWFuZ2d1YW5nIFN0cmVldCwgTmVpaHUgQ2hpdQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRS1GNyAgIChoZXgpCQlWdWxjYW4gUG9ydGFscyBJbmMKKzAwMEVGNyAgICAgKGJhc2UgMTYpCQlWdWxjYW4gUG9ydGFscyBJbmMKKwkJCQk1MDUgNXRoIEF2ZSBTb3V0aCwgU3VpdGUgOTAwCisJCQkJU2VhdHRsZSBXQSA5ODEwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRjggICAoaGV4KQkJU0JDIEFTSQorMDAwRUY4ICAgICAoYmFzZSAxNikJCVNCQyBBU0kKKwkJCQlOZXR3b3JrICYgSW5mcmFzdHJ1Y3R1cmUgVGVjaG5pY2FsIFN1cHBvcnQKKwkJCQkxMDEwIE4gU2FpbnQgTWFyeXMKKwkJCQlTYW4gQW50b25pbyBUZXhhcyA3ODIxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEUtRjkgICAoaGV4KQkJUkVBIEVsZWt0cm9uaWsgR21iSAorMDAwRUY5ICAgICAoYmFzZSAxNikJCVJFQSBFbGVrdHJvbmlrIEdtYkgKKwkJCQlUZWljaHdpZXNlbnN0ci4gMQorCQkJCU11ZWhsdGFsIEhlc3NlbiA2NDM2NworCQkJCUdFUk1BTlkKKworMDAtMEUtRkEgICAoaGV4KQkJT3B0b3dheSBUZWNobm9sb2d5IEluY29ycG9yYXRpb24KKzAwMEVGQSAgICAgKGJhc2UgMTYpCQlPcHRvd2F5IFRlY2hub2xvZ3kgSW5jb3Jwb3JhdGlvbgorCQkJCU5vLiAzOCwgS3VhbmcgRnUgU291dGggUm9hZAorCQkJCUhzaW4gQ2h1IEluZHVzdHJpYWwgUGFyaworCQkJCUh1IEtvdSBIc2luIENodSAzMDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBFLUZCICAgKGhleCkJCU1hY2V5IEVudGVycHJpc2VzCiswMDBFRkIgICAgIChiYXNlIDE2KQkJTWFjZXkgRW50ZXJwcmlzZXMKKwkJCQlQLk8uIEJveCA3MjY3CisJCQkJVGVtcGUgQVogODUyODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUZDICAgKGhleCkJCUpUQUcgVGVjaG5vbG9naWVzIEIuVi4KKzAwMEVGQyAgICAgKGJhc2UgMTYpCQlKVEFHIFRlY2hub2xvZ2llcyBCLlYuCisJCQkJQm9zY2hkaWprIDUwCisJCQkJRWluZGhvdmVuIE5CIDU2MTIgQU4KKwkJCQlORVRIRVJMQU5EUworCiswMC0wRS1GRCAgIChoZXgpCQlGVUpJTk9OIENPUlBPUkFUSU9OCiswMDBFRkQgICAgIChiYXNlIDE2KQkJRlVKSU5PTiBDT1JQT1JBVElPTgorCQkJCTEtMzI0IFVFVEFLRSwgS0lUQS1LVSwKKwkJCQlTQUlUQU1BIENJVFkgU0FJVEFNQSAzMzEtOTYyNAorCQkJCUpBUEFOCisKKzAwLTBFLUZFICAgKGhleCkJCUVuZFJ1biBUZWNobm9sb2dpZXMgTExDCiswMDBFRkUgICAgIChiYXNlIDE2KQkJRW5kUnVuIFRlY2hub2xvZ2llcyBMTEMKKwkJCQkyMjcwIE5vcnRocG9pbnQgUGFya3dheQorCQkJCVNhbnRhIFJvc2EgQ0EgOTU0MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBFLUZGICAgKGhleCkJCU1lZ2Fzb2x1dGlvbixJbmMuCiswMDBFRkYgICAgIChiYXNlIDE2KQkJTWVnYXNvbHV0aW9uLEluYy4KKwkJCQkyLTctMTAgU2hpdGF5YQorCQkJCVRhaXRvIFRPS1lPIDExMC0wMDA0CisJCQkJSkFQQU4KKworMDAtMEYtMDAgICAoaGV4KQkJTGVncmEgU3lzdGVtcywgSW5jLgorMDAwRjAwICAgICAoYmFzZSAxNikJCUxlZ3JhIFN5c3RlbXMsIEluYy4KKwkJCQkzIEJ1cmxpbmd0b24gV29vZHMgRHJpdmUKKwkJCQlCdXJsaW5ndG9uIE1BIDAxODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0wMSAgIChoZXgpCQlESUdJVEFMS1MgSU5DCiswMDBGMDEgICAgIChiYXNlIDE2KQkJRElHSVRBTEtTIElOQworCQkJCTE0IE1BUlNIQUxMIExBTkUKKwkJCQlXRVNUT04gQ1QgMDY4ODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTAyICAgKGhleCkJCURpZ2ljdWJlIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMEYwMiAgICAgKGJhc2UgMTYpCQlEaWdpY3ViZSBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJOEYsTm8uIDUxLCBMYW5lICAzNSwgSmlodSBSZC4sCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLTAzICAgKGhleCkJCUNPTSZDIENPLiwgTFRECiswMDBGMDMgICAgIChiYXNlIDE2KQkJQ09NJkMgQ08uLCBMVEQKKwkJCQkyRiBXb29qaW4gQkxEIDE0NDUtMiBTZWNoby1Eb25nCisJCQkJU2VjaG8tR3UKKwkJCQlTRU9VTCAgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi0wNCAgIChoZXgpCQljaW0tdXNhIGluYworMDAwRjA0ICAgICAoYmFzZSAxNikJCWNpbS11c2EgaW5jCisJCQkJMTA4MTMgbncgMzB0aCBzdHJlZXQKKwkJCQltaWFtaSBmbG9yaWRhIDMzMTcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0wNSAgIChoZXgpCQkzQiBTWVNURU0gSU5DLgorMDAwRjA1ICAgICAoYmFzZSAxNikJCTNCIFNZU1RFTSBJTkMuCisJCQkJMTcyNywgU0FOS1lVSzItRE9ORywgQlVLLUdVCisJCQkJREFFR1UgIDcwMi04NDUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtMDYgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDBGMDYgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMEYtMDcgICAoaGV4KQkJTWFuZ3JvdmUgU3lzdGVtcywgSW5jLgorMDAwRjA3ICAgICAoYmFzZSAxNikJCU1hbmdyb3ZlIFN5c3RlbXMsIEluYy4KKwkJCQkxMCBGYWlyZmllbGQgQmx2ZC4KKwkJCQlXYWxsaW5nZm9yZCBDVCAwNjQ5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMDggICAoaGV4KQkJSW5kYWdvbiBPeQorMDAwRjA4ICAgICAoYmFzZSAxNikJCUluZGFnb24gT3kKKwkJCQlOdWlqYW1pZXN0ZW50aWUgNSBBCisJCQkJSGVsc2lua2kgLSAwMDQwMAorCQkJCUZJTkxBTkQKKworMDAtMEYtMDkgICAoaGV4KQkJUFJJVkFURQorMDAwRjA5ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0wRi0wQSAgIChoZXgpCQlDbGVhciBFZGdlIE5ldHdvcmtzCiswMDBGMEEgICAgIChiYXNlIDE2KQkJQ2xlYXIgRWRnZSBOZXR3b3JrcworCQkJCTExMjUwIEVsIENhbWlubyBSZWFsCisJCQkJU2FuIERpZWdvIENBIDkyMTMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0wQiAgIChoZXgpCQlLZW50aW1hIFRlY2hub2xvZ2llcyBBQgorMDAwRjBCICAgICAoYmFzZSAxNikJCUtlbnRpbWEgVGVjaG5vbG9naWVzIEFCCisJCQkJQm94IDE3NAorCQkJCUthc3RhbmpldsOkZ2VuIDIKKwkJCQlTdGFmZmFuc3RvcnAgU2vDpW5lIDI0NSA0NAorCQkJCVNXRURFTgorCiswMC0wRi0wQyAgIChoZXgpCQlTWU5DSFJPTklDIEVOR0lORUVSSU5HCiswMDBGMEMgICAgIChiYXNlIDE2KQkJU1lOQ0hST05JQyBFTkdJTkVFUklORworCQkJCTI1IENBUCBEQVJORVRBTAorCQkJCURBUk5FVEFMIEZSQU5DRSA3NjE2MAorCQkJCUZSQU5DRQorCiswMC0wRi0wRCAgIChoZXgpCQlIdW50IEVsZWN0cm9uaWMgQ28uLCBMdGQuCiswMDBGMEQgICAgIChiYXNlIDE2KQkJSHVudCBFbGVjdHJvbmljIENvLiwgTHRkLgorCQkJCTZGSSwgTk8uIDU3LTU5LCBKaXVuIEggU2llbiBSZC4sIENoaSBUdSBEaXN0cmljdAorCQkJCUtlZWx1bmcgVGFpd2FuIDIwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtMEUgICAoaGV4KQkJV2F2ZVNwbGl0dGVyIFRlY2hub2xvZ2llcywgSW5jLgorMDAwRjBFICAgICAoYmFzZSAxNikJCVdhdmVTcGxpdHRlciBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyMjQ4IE5vcnRoIEZpcnN0IFN0cmVldAorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0wRiAgIChoZXgpCQlSZWFsIElEIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDBGMEYgICAgIChiYXNlIDE2KQkJUmVhbCBJRCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTlGIEhhbm1pIEIvRCAxOTItMTkKKwkJCQlOb25oeWVvbi1Eb25nCisJCQkJR2FuZ25hbS1HdSBTZW91bCAxMzUtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTEwICAgKGhleCkJCVJETSBDb3Jwb3JhdGlvbgorMDAwRjEwICAgICAoYmFzZSAxNikJCVJETSBDb3Jwb3JhdGlvbgorCQkJCTYwOCBXZWJlciBTdC4gTgorCQkJCVdhdGVybG9vIE9OIE4yViAxSzQKKwkJCQlDQU5BREEKKworMDAtMEYtMTEgICAoaGV4KQkJUHJvZHJpdmUgQi5WLgorMDAwRjExICAgICAoYmFzZSAxNikJCVByb2RyaXZlIEIuVi4KKwkJCQlQLk8uIDI4MDMwCisJCQkJRWluZGhvdmVuICA1NjAyIEpBCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEYtMTIgICAoaGV4KQkJUGFuYXNvbmljIEV1cm9wZSBMdGQuCiswMDBGMTIgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIEV1cm9wZSBMdGQuCisJCQkJSGVzZWJlcmd3ZWcgNDktNTEKKwkJCQlQZWluZSAgRC0zMTIyOAorCQkJCUdFUk1BTlkKKworMDAtMEYtMTMgICAoaGV4KQkJTmlzY2EgY29ycG9yYXRpb24KKzAwMEYxMyAgICAgKGJhc2UgMTYpCQlOaXNjYSBjb3Jwb3JhdGlvbgorCQkJCTQzMC0xCisJCQkJS29iYXlhc2hpCisJCQkJTWFzdWhvLUNobyBZYW1hbmFzaGktS2VuIDQwMC0wNTkzCisJCQkJSkFQQU4KKworMDAtMEYtMTQgICAoaGV4KQkJTWluZHJheSBDby4sIEx0ZC4KKzAwMEYxNCAgICAgKGJhc2UgMTYpCQlNaW5kcmF5IENvLiwgTHRkLgorCQkJCU1pbmRyYXkgQnVpbGRpbmcsIEtlamkgMTJ0aCBSb2FkIFNvdXRoCisJCQkJSGlnaC10ZWNoIEluZHVzdHJpYWwgUGFyaywgTmFuc2hhbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0wRi0xNSAgIChoZXgpCQlLamFlcnVsZmYxIEEvUworMDAwRjE1ICAgICAoYmFzZSAxNikJCUtqYWVydWxmZjEgQS9TCisJCQkJQy5GLiBUaWV0Z2VucyBCb3VsZXZhcmQgMTkKKwkJCQlPZGVuc2UgU8ODy5wgRnluIDUyMjAKKwkJCQlERU5NQVJLCisKKzAwLTBGLTE2ICAgKGhleCkJCUpBWSBIT1cgVEVDSE5PTE9HWSBDTy4sCiswMDBGMTYgICAgIChiYXNlIDE2KQkJSkFZIEhPVyBURUNITk9MT0dZIENPLiwKKwkJCQlOTy40ODYsU0VDLiAxLCBXQU4gU0hPVSBSRC4sIEtVRUkKKwkJCQlTSEFOIEhTSUFORywgVEFPWVVBTiBIU0lFTgorCQkJCVRBT1lVQU4gSFNJRU4gIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtMTcgICAoaGV4KQkJSW5zdGEgRWxla3RybyBHbWJICiswMDBGMTcgICAgIChiYXNlIDE2KQkJSW5zdGEgRWxla3RybyBHbWJICisJCQkJSG9oZSBTdGVpbmVydCAxMAorCQkJCUx1ZWRlbnNjaGVpZCBOUlcgRC01ODgwOQorCQkJCUdFUk1BTlkKKworMDAtMEYtMTggICAoaGV4KQkJSW5kdXN0cmlhbCBDb250cm9sIFN5c3RlbXMKKzAwMEYxOCAgICAgKGJhc2UgMTYpCQlJbmR1c3RyaWFsIENvbnRyb2wgU3lzdGVtcworCQkJCUhvdXRzY2hlbGYgMQorCQkJCUhhcmRpbnh2ZWxkIFp1aWQtSG9sbGFuZCBOTC0zMzcxIEtCCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEYtMTkgICAoaGV4KQkJQm9zdG9uIFNjaWVudGlmaWMKKzAwMEYxOSAgICAgKGJhc2UgMTYpCQlCb3N0b24gU2NpZW50aWZpYworCQkJCTQxMDAgSGFtbGluZSBBdmUgTi4KKwkJCQlTdC4gUGF1bCBNTiA1NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMUEgICAoaGV4KQkJR2FtaW5nIFN1cHBvcnQgQi5WLgorMDAwRjFBICAgICAoYmFzZSAxNikJCUdhbWluZyBTdXBwb3J0IEIuVi4KKwkJCQlJbmR1c3RyaWUgd2VnIDI5CisJCQkJUm90dGVyZGFtIDMwNDQgQVMKKwkJCQlORVRIRVJMQU5EUworCiswMC0wRi0xQiAgIChoZXgpCQlFZ28gU3lzdGVtcyBJbmMuCiswMDBGMUIgICAgIChiYXNlIDE2KQkJRWdvIFN5c3RlbXMgSW5jLgorCQkJCTEyMDYgV29vbGltIGUtQml6IENlbnRlciBJSQorCQkJCTE2IFlhbmdweW9uZ2RvbmczZ2EsIFlvdW5nZHVuZ3BvLWd1CisJCQkJU2VvdWwgIDE1MC04MzQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtMUMgICAoaGV4KQkJRGlnaXRBbGwgV29ybGQgQ28uLCBMdGQKKzAwMEYxQyAgICAgKGJhc2UgMTYpCQlEaWdpdEFsbCBXb3JsZCBDby4sIEx0ZAorCQkJCVNlamluIEJsZCAyRiwgNjg5IGlsd29uMi1kb25nLAorCQkJCWdhbmduYW0tZ3UgU2VvdWwgMTM1LTk0NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi0xRCAgIChoZXgpCQlDb3NtbyBUZWNocyBDby4sIEx0ZC4KKzAwMEYxRCAgICAgKGJhc2UgMTYpCQlDb3NtbyBUZWNocyBDby4sIEx0ZC4KKwkJCQkyLTYtMSwgTWF0c3VlCisJCQkJQXRzdWdpLXNoaSBLYW5hZ2F3YS1rZW4gMjQzLTAwMDUKKwkJCQlKQVBBTgorCiswMC0wRi0xRSAgIChoZXgpCQlDaGVuZ2R1IEtUIEVsZWN0cmljIENvLm9mIEhpZ2ggJiBOZXcgVGVjaG5vbG9neQorMDAwRjFFICAgICAoYmFzZSAxNikJCUNoZW5nZHUgS1QgRWxlY3RyaWMgQ28ub2YgSGlnaCAmIE5ldyBUZWNobm9sb2d5CisJCQkJTm8uMiBHYW9wZW5nIERvbmcgUm9hZCxIaWdoICYgTmV3IERldmVsb3BtZW50IFpvbmUsCisJCQkJTm8uOSBXdWtlIEVhc3QgTm8uMyBSb2FkLFd1aG91IFpvbmUsCisJCQkJQ2hlbmdkdSBTaWNodWFuIDYxMDA0MQorCQkJCUNISU5BCisKKzAwLTBGLTFGICAgKGhleCkJCVdXIFBDQkEgVGVzdAorMDAwRjFGICAgICAoYmFzZSAxNikJCVdXIFBDQkEgVGVzdAorCQkJCU9uZSBEZWxsIFdheQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTIwICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDBGMjAgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OSBTb3V0aAorCQkJCU1TMDcwNDA1CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMjEgICAoaGV4KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBJbmMKKzAwMEYyMSAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIEF0bGFudGEsIEluYworCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlQTyBCb3ggNDY1NDQ3CisJCQkJTGF3cmVuY2V2aWxsZSBHYSAzMDA0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMjIgICAoaGV4KQkJSGVsaXVzLCBJbmMuCiswMDBGMjIgICAgIChiYXNlIDE2KQkJSGVsaXVzLCBJbmMuCisJCQkJMzMzIFNvdXRoIDUyMCBXZXN0CisJCQkJU3VpdGUgMzMwCisJCQkJTGluZG9uIFVUIDg0MDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0yMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBGMjMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0yNCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDBGMjQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0yNSAgIChoZXgpCQlBaW1WYWxsZXkgQi5WLgorMDAwRjI1ICAgICAoYmFzZSAxNikJCUFpbVZhbGxleSBCLlYuCisJCQkJVXRyZWNodHNld2VnIDM4LAorCQkJCUhpbHZlcnN1bSBOSCAxMjIzIFRWCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEYtMjYgICAoaGV4KQkJV29ybGRBY2N4eCAgTExDCiswMDBGMjYgICAgIChiYXNlIDE2KQkJV29ybGRBY2N4eCAgTExDCisJCQkJNDAzNSBUYW1wYSBSZC4KKwkJCQlTdWl0ZSA2MDAwCisJCQkJT2xkc21hciBGTCAzNDY2NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMjcgICAoaGV4KQkJVEVBTCBFbGVjdHJvbmljcywgSW5jLgorMDAwRjI3ICAgICAoYmFzZSAxNikJCVRFQUwgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQkxMDM1MCBTb3JyZW50byBWYWxsZXkgUm9hZAorCQkJCVNhbiBEaWVnbyBDYWxpZm9ybmlhIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0yOCAgIChoZXgpCQlJdHJvbml4IENvcnBvcmF0aW9uCiswMDBGMjggICAgIChiYXNlIDE2KQkJSXRyb25peCBDb3Jwb3JhdGlvbgorCQkJCVNvdXRoIDgwMSBTdGV2ZW5zIFN0cmVldAorCQkJCVNwb2thbmUgV0EgOTkyMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTI5ICAgKGhleCkJCUF1Z21lbnRpeCBDb3Jwb3JhdGlvbgorMDAwRjI5ICAgICAoYmFzZSAxNikJCUF1Z21lbnRpeCBDb3Jwb3JhdGlvbgorCQkJCTQwMzAgVyBCcmFrZXIgTG4KKwkJCQlCdWlsZGluZyAyLCBTdWl0ZSAxMDAKKwkJCQlBdXN0aW4gVGV4YXMgNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTJBICAgKGhleCkJCUNhYmxld2FyZSBFbGVjdHJvbmljcworMDAwRjJBICAgICAoYmFzZSAxNikJCUNhYmxld2FyZSBFbGVjdHJvbmljcworCQkJCTE3MDIgV2VzdGVybiBBdmUuCisJCQkJU3VpdGUgRworCQkJCUxhcyBWZWdhcyBOZXZhZGEgODkxMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTJCICAgKGhleCkJCUdSRUVOQkVMTCBTWVNURU1TCiswMDBGMkIgICAgIChiYXNlIDE2KQkJR1JFRU5CRUxMIFNZU1RFTVMKKwkJCQkyVEggRmxvb3IsIERvb25hbSBCbGRnLCAyMzYtMTEgTm9uaHl1bi1Eb25nLCBLYW5nbmFtLUt1CisJCQkJU2VvdWwgIDEzNS0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtMkMgICAoaGV4KQkJVXBsb2dpeCwgSW5jLgorMDAwRjJDICAgICAoYmFzZSAxNikJCVVwbG9naXgsIEluYy4KKwkJCQlCbGRnIDEsIFN1aXRlIDIzNQorCQkJCTg2MDEgUlIgMjIyMgorCQkJCUF1c3RpbiBUWCA3ODczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMkQgICAoaGV4KQkJQ0hVTkctSFNJTiBFTEVDVFJJQyAmIE1BQ0hJTkVSWSBNRkcuQ09SUC4KKzAwMEYyRCAgICAgKGJhc2UgMTYpCQlDSFVORy1IU0lOIEVMRUNUUklDICYgTUFDSElORVJZIE1GRy5DT1JQLgorCQkJCU5PLiAyNSwgV2VuLVRlIFJkLiwgTG8tU2hhbiBWaWxsYWdlCisJCQkJS3dlaSBTaGFuIEhzaWFuZyBUYW95dWFuIEhzaWVuIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtMkUgICAoaGV4KQkJTWVnYXBvd2VyIEludGVybmF0aW9uYWwgQ29ycC4KKzAwMEYyRSAgICAgKGJhc2UgMTYpCQlNZWdhcG93ZXIgSW50ZXJuYXRpb25hbCBDb3JwLgorCQkJCVJtLiA0MDMsIE5vIDI0ICwgV3UtQ2h1YW4gMm5kIFJkLiwKKwkJCQlIc2luLUNodWFuZworCQkJCVRhaXBlaSBIc2llbiAgMjQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi0yRiAgIChoZXgpCQlXLUxJTlggVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwMEYyRiAgICAgKGJhc2UgMTYpCQlXLUxJTlggVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQkgMkYsRUxMRU4gTC4gU0tFTFRPTiBCVUlMRElORyxGSVNIRVIgTEFORSBST0FECisJCQkJVE9SVE9MQSAgCisJCQkJVklSR0lOIElTTEFORFMsIEJSSVRJU0gKKworMDAtMEYtMzAgICAoaGV4KQkJUmF6YSBNaWNyb2VsZWN0cm9uaWNzIEluYworMDAwRjMwICAgICAoYmFzZSAxNikJCVJhemEgTWljcm9lbGVjdHJvbmljcyBJbmMKKwkJCQkzMDgwIE5vcnRoIEZpcnN0IFN0cmVldAorCQkJCTV0aCBGbG9vcgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0zMSAgIChoZXgpCQlBbGxpZWQgVmlzaW9uIFRlY2hub2xvZ2llcyBDYW5hZGEgSW5jCiswMDBGMzEgICAgIChiYXNlIDE2KQkJQWxsaWVkIFZpc2lvbiBUZWNobm9sb2dpZXMgQ2FuYWRhIEluYworCQkJCTEwMS0zNzUwIE5vcnRoIEZyYXNlciBXYXkKKwkJCQlCdXJuYWJ5IEJDIFY1SiA1RTkKKwkJCQlDQU5BREEKKworMDAtMEYtMzIgICAoaGV4KQkJTHVUb25nIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4sTHRkCiswMDBGMzIgICAgIChiYXNlIDE2KQkJTHVUb25nIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJMTA2LCBMaWFuZ1hpIFJvYWQKKwkJCQlXdVhpIEppYW5nU3UgMjE0MDYzCisJCQkJQ0hJTkEKKworMDAtMEYtMzMgICAoaGV4KQkJRFVBTGkgSW5jLgorMDAwRjMzICAgICAoYmFzZSAxNikJCURVQUxpIEluYy4KKwkJCQkjNTA1IFNhbXN1bmcgVGVjaG5vIFBhcmsgQmxkZyA0NzEKKwkJCQlXb25jaGVvbi1kb25nLCBZb3VuZ3RvbmctZ3UKKwkJCQlTdXdvbiBHeWVvbmdnaS1kbyA0NDItODI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTM0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEYzNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTM1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEYzNSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTM2ICAgKGhleCkJCUFjY3VyYXRlIFRlY2hobm9sb2dpZXMsIEluYy4KKzAwMEYzNiAgICAgKGJhc2UgMTYpCQlBY2N1cmF0ZSBUZWNoaG5vbG9naWVzLCBJbmMuCisJCQkJNDcxOTkgQ2FydGllciBEci4KKwkJCQlXaXhvbSBNaWNoaWdhbiA0ODM5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtMzcgICAoaGV4KQkJWGFtYmFsYSBJbmNvcnBvcmF0ZWQKKzAwMEYzNyAgICAgKGJhc2UgMTYpCQlYYW1iYWxhIEluY29ycG9yYXRlZAorCQkJCTI2NzQgTi4gMXN0IFN0cmVldAorCQkJCVN1aXRlIDIxNQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi0zOCAgIChoZXgpCQlOZXRzdGFyCiswMDBGMzggICAgIChiYXNlIDE2KQkJTmV0c3RhcgorCQkJCTNGLE5vLjM0NywgWWFuZy1rdWFuZyBTdC4sTmVpLUh1IERpcy4sCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLTM5ICAgKGhleCkJCUlSSVMgU0VOU09SUworMDAwRjM5ICAgICAoYmFzZSAxNikJCUlSSVMgU0VOU09SUworCQkJCVpBIGxlcyBVZmVybmV0cworCQkJCVRPVUxBVUQgQXJkZWNoZSBGMDcxMzAKKwkJCQlGUkFOQ0UKKworMDAtMEYtM0EgICAoaGV4KQkJSElTSEFSUAorMDAwRjNBICAgICAoYmFzZSAxNikJCUhJU0hBUlAKKwkJCQlOTy42NzMsQ0hBTkcgSFNJTkcgUk9BRCBQQVRFIENJVFksVEFPWVVBTiwKKwkJCQlUQUlQRUkgIDMzNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtM0IgICAoaGV4KQkJRnVqaSBTeXN0ZW0gTWFjaGluZXMgQ28uLCBMdGQuCiswMDBGM0IgICAgIChiYXNlIDE2KQkJRnVqaSBTeXN0ZW0gTWFjaGluZXMgQ28uLCBMdGQuCisJCQkJNS04LTEwCisJCQkJSGliYXJpZ2Fva2EKKwkJCQlaYW1hLVNoaSBLYW5hZ2F3YS1LZW4gMjI4LTAwMDMKKwkJCQlKQVBBTgorCiswMC0wRi0zQyAgIChoZXgpCQlFbmRlbGVvIExpbWl0ZWQKKzAwMEYzQyAgICAgKGJhc2UgMTYpCQlFbmRlbGVvIExpbWl0ZWQKKwkJCQk3OCBDYW5ub24gU3RyZWV0CisJCQkJTG9uZG9uIEVuZ2xhbmQgRUM0TiA2TlEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRi0zRCAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzAwMEYzRCAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOby44LExpLXNoaW5nIFNldmVudGggUm9hZCxTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyayxIc2ltY2h1LAorCQkJCUhzaW1jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtM0UgICAoaGV4KQkJQ2FyZGlvTmV0LCBJbmMKKzAwMEYzRSAgICAgKGJhc2UgMTYpCQlDYXJkaW9OZXQsIEluYworCQkJCTEwMTAgU2Vjb25kIEF2ZW51ZQorCQkJCVN1aXRlIDcwMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtM0YgICAoaGV4KQkJQmlnIEJlYXIgTmV0d29ya3MKKzAwMEYzRiAgICAgKGJhc2UgMTYpCQlCaWcgQmVhciBOZXR3b3JrcworCQkJCTM0NSBQb3RyZXJvIEF2ZQorCQkJCVN1bm55IFZhbGUgQ2FsaWZvcm5pYSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNDAgICAoaGV4KQkJT3B0aWNhbCBJbnRlcm5ldHdvcmtpbmcgRm9ydW0KKzAwMEY0MCAgICAgKGJhc2UgMTYpCQlPcHRpY2FsIEludGVybmV0d29ya2luZyBGb3J1bQorCQkJCTQ4Mzc3IEZyZW1vbnQgQmx2ZAorCQkJCVN0ZSAxMTcKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi00MSAgIChoZXgpCQlaaXBoZXIgTHRkCiswMDBGNDEgICAgIChiYXNlIDE2KQkJWmlwaGVyIEx0ZAorCQkJCTcgRmFyYWRheSBCdWlsZGluZworCQkJCU5vdHRpbmdoYW0gU2NpZW5jZSBhbmQgVGVjaG5vbG9neSBQYXJrCisJCQkJTm90dGluZ2hhbSBOb3R0aW5naGFtc2hpcmUgTkc3IDJRUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBGLTQyICAgKGhleCkJCVhhbHlvIFN5c3RlbXMKKzAwMEY0MiAgICAgKGJhc2UgMTYpCQlYYWx5byBTeXN0ZW1zCisJCQkJR3JlbmllciA5CisJCQkJQ29tbXVnbnkgVkQgMTI5MQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTBGLTQzICAgKGhleCkJCVdhc2FiaSBTeXN0ZW1zIEluYy4KKzAwMEY0MyAgICAgKGJhc2UgMTYpCQlXYXNhYmkgU3lzdGVtcyBJbmMuCisJCQkJNTAwIEUuIE1haW4gU3RyZWV0CisJCQkJU3VpdGUgMTUyMAorCQkJCU5vcmZvbGsgVkEgMjM1MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTQ0ICAgKGhleCkJCVRpdmVsbGEgSW5jLgorMDAwRjQ0ICAgICAoYmFzZSAxNikJCVRpdmVsbGEgSW5jLgorCQkJCTc5NSBNYWluIFN0cmVldAorCQkJCUhhbGYgTW9vbiBCYXkgQ0EgOTQwMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTQ1ICAgKGhleCkJCVN0cmV0Y2gsIEluYy4KKzAwMEY0NSAgICAgKGJhc2UgMTYpCQlTdHJldGNoLCBJbmMuCisJCQkJMTMyMiBPcmxlYW5zIERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi00NiAgIChoZXgpCQlTSU5BUiBBRworMDAwRjQ2ICAgICAoYmFzZSAxNikJCVNJTkFSIEFHCisJCQkJU3RhZHR3ZWcgMjQKKwkJCQlGZXVlcnRoYWxlbiBaSCBDSC04MjQ1CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEYtNDcgICAoaGV4KQkJUk9CT1ggU1BBCiswMDBGNDcgICAgIChiYXNlIDE2KQkJUk9CT1ggU1BBCisJCQkJdmlhIFNlbXBpb25lIDgyCisJCQkJQ2FzdGVsbGV0dG8gUy5UaWNpbm8gTk8gMjgwNTMKKwkJCQlJVEFMWQorCiswMC0wRi00OCAgIChoZXgpCQlQb2x5cGl4IEluYy4KKzAwMEY0OCAgICAgKGJhc2UgMTYpCQlQb2x5cGl4IEluYy4KKwkJCQkxRmwsIFN1bmdkbyBWZW50dXJlIFRvd2VyLCAxNjUtMiBTYW1zdW5nLURvbmcsIEthbmduYW0tS3UKKwkJCQlTZW91bCAgMTM1LTg4MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi00OSAgIChoZXgpCQlOb3J0aG92ZXIgU29sdXRpb25zIExpbWl0ZWQKKzAwMEY0OSAgICAgKGJhc2UgMTYpCQlOb3J0aG92ZXIgU29sdXRpb25zIExpbWl0ZWQKKwkJCQlIZWF0aCBDb3R0YWdlCisJCQkJSWxsaW5ndG9uIFJvYWQKKwkJCQlMYXJsaW5nIE5vcmZvbGsgTlIxNiAyUkIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRi00QSAgIChoZXgpCQlLeXVzaHUta3lvaGFuIGNvLixsdGQKKzAwMEY0QSAgICAgKGJhc2UgMTYpCQlLeXVzaHUta3lvaGFuIGNvLixsdGQKKwkJCQkyLTYtMyxLb2dhbmVtYWNoaQorCQkJCUtva3VyYWtpdGEta3UKKwkJCQlLaXRha3l1c2h1LWNpdHkgRnVrdW9rYSA4MDItMDA3MQorCQkJCUpBUEFOCisKKzAwLTBGLTRCICAgKGhleCkJCU9yYWNsZSBDb3Jwb3JhdGlvbgorMDAwRjRCICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbgorCQkJCTkwMCBDaGVsbXNmb3JkIFN0cmVldAorCQkJCVRvd2VyIDEgRmxvb3IgMgorCQkJCUxvd2VsbCBNQSAwMTg1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNEMgICAoaGV4KQkJRWxleHRlY2ggSU5DCiswMDBGNEMgICAgIChiYXNlIDE2KQkJRWxleHRlY2ggSU5DCisJCQkJNTU0LTIsIEdhc2FuLURvbmcsIEd1bWNoZW9uLUd1CisJCQkJU2VvdWwgIDE1My0wMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtNEQgICAoaGV4KQkJVGFsa1N3aXRjaAorMDAwRjREICAgICAoYmFzZSAxNikJCVRhbGtTd2l0Y2gKKwkJCQkxNTQ1IENhcmxpbmcgQXZlCisJCQkJU3VpdGUgNTEwCisJCQkJT3R0YXdhIE9udGFyaW8gSzFaIDhQOQorCQkJCUNBTkFEQQorCiswMC0wRi00RSAgIChoZXgpCQlDZWxsaW5rCiswMDBGNEUgICAgIChiYXNlIDE2KQkJQ2VsbGluaworCQkJCUNhdGhlcmluYWxhYW4gMzcKKwkJCQlSb3RzZWxhYXIgVmxhYW1zIEJyYWJhbnQgQi0zMTEwCisJCQkJQkVMR0lVTQorCiswMC0wRi00RiAgIChoZXgpCQlDYWRtdXMgVGVjaG5vbG9neSBMdGQKKzAwMEY0RiAgICAgKGJhc2UgMTYpCQlDYWRtdXMgVGVjaG5vbG9neSBMdGQKKwkJCQk2NiBIaWxsc2lkZSBSZAorCQkJCUdsZW5maWVsZAorCQkJCUF1Y2tsYW5kICAxMzEwCisJCQkJTkVXIFpFQUxBTkQKKworMDAtMEYtNTAgICAoaGV4KQkJU3RyZWFtU2NhbGUgTGltaXRlZAorMDAwRjUwICAgICAoYmFzZSAxNikJCVN0cmVhbVNjYWxlIExpbWl0ZWQKKwkJCQlUaGUgQ291cnQsIEFsZXhhbmRyYSBQYXJrCisJCQkJUHJlc2NvdCBSb2FkCisJCQkJU3QgSGVsZW5zICBXQTEwIDNUUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBGLTUxICAgKGhleCkJCUF6dWwgU3lzdGVtcywgSW5jLgorMDAwRjUxICAgICAoYmFzZSAxNikJCUF6dWwgU3lzdGVtcywgSW5jLgorCQkJCTE2MDAgUGx5bW91dGggU3RyZWV0CisJCQkJTW91bnRhaW4gVmlldyBDYWxpZm9ybmlhIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi01MiAgIChoZXgpCQlZT1JLIFJlZnJpZ2VyYXRpb24sIE1hcmluZSAmIENvbnRyb2xzCiswMDBGNTIgICAgIChiYXNlIDE2KQkJWU9SSyBSZWZyaWdlcmF0aW9uLCBNYXJpbmUgJiBDb250cm9scworCQkJCUplbnMgSnV1bHN2ZWogMjgKKwkJCQlWaWJ5IEogREsgODM2MgorCQkJCURFTk1BUksKKworMDAtMEYtNTMgICAoaGV4KQkJU29sYXJmbGFyZSBDb21tdW5pY2F0aW9ucyBJbmMKKzAwMEY1MyAgICAgKGJhc2UgMTYpCQlTb2xhcmZsYXJlIENvbW11bmljYXRpb25zIEluYworCQkJCTk1MDEgSmVyb25pbW8gUm9hZAorCQkJCVN1aXRlIDI1MAorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNTQgICAoaGV4KQkJRW50cmVsb2dpYyBDb3Jwb3JhdGlvbgorMDAwRjU0ICAgICAoYmFzZSAxNikJCUVudHJlbG9naWMgQ29ycG9yYXRpb24KKwkJCQkzMyBCb3N0b24gUG9zdCBSZC4gV2VzdC4KKwkJCQlTdWl0ZSAxNjAKKwkJCQlNYXJsYm9yb3VnaCBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNTUgICAoaGV4KQkJRGF0YXdpcmUgQ29tbXVuaWNhdGlvbiBOZXR3b3JrcyBJbmMuCiswMDBGNTUgICAgIChiYXNlIDE2KQkJRGF0YXdpcmUgQ29tbXVuaWNhdGlvbiBOZXR3b3JrcyBJbmMuCisJCQkJMTAgQ2FybHNvbiBDb3VydCwgU3VpdGUgMzAwCisJCQkJVG9yb250byBPbnRhcmlvIE05VyA2TDIKKwkJCQlDQU5BREEKKworMDAtMEYtNTYgICAoaGV4KQkJQ29udGludXVtIFBob3RvbmljcyBJbmMKKzAwMEY1NiAgICAgKGJhc2UgMTYpCQlDb250aW51dW0gUGhvdG9uaWNzIEluYworCQkJCTUgRm9ydHVuZSBEcml2ZQorCQkJCUJpbGxlcmljYSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNTcgICAoaGV4KQkJQ0FCTEVMT0dJQyBDby4sIEx0ZC4KKzAwMEY1NyAgICAgKGJhc2UgMTYpCQlDQUJMRUxPR0lDIENvLiwgTHRkLgorCQkJCTNGLiwgSHdhaW4gQmxkZy4sIDE1NTktMTIgU2VvY2hvIDMtZG9uZywKKwkJCQlTZWNoby1ndSwKKwkJCQlTZW91bCAgMTM3LTg3MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi01OCAgIChoZXgpCQlBZGRlciBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMEY1OCAgICAgKGJhc2UgMTYpCQlBZGRlciBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlUZWNobm9sb2d5IEhvdXNlCisJCQkJVHJhZmFsZ2FyIFdheQorCQkJCUJhciBIaWxsIENhbWJyaWRnZXNoaXJlIENCMyA4U1EKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRi01OSAgIChoZXgpCQlQaG9uYWsgQ29tbXVuaWNhdGlvbnMgQUcKKzAwMEY1OSAgICAgKGJhc2UgMTYpCQlQaG9uYWsgQ29tbXVuaWNhdGlvbnMgQUcKKwkJCQlMw6RuZ2dhc3NlIDE3CisJCQkJTXVydGVuIEZSIDMyODAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRi01QSAgIChoZXgpCQlQZXJpYml0IE5ldHdvcmtzCiswMDBGNUEgICAgIChiYXNlIDE2KQkJUGVyaWJpdCBOZXR3b3JrcworCQkJCTI4NTUgQm93ZXJzIEF2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi01QiAgIChoZXgpCQlEZWx0YSBJbmZvcm1hdGlvbiBTeXN0ZW1zLCBJbmMuCiswMDBGNUIgICAgIChiYXNlIDE2KQkJRGVsdGEgSW5mb3JtYXRpb24gU3lzdGVtcywgSW5jLgorCQkJCTMwMCBXZWxzaCBSb2FkLCBCbGRnLiAzCisJCQkJSG9yc2hhbSBQQSAxOTA0NC0yMjczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi01QyAgIChoZXgpCQlEYXkgT25lIERpZ2l0YWwgTWVkaWEgTGltaXRlZAorMDAwRjVDICAgICAoYmFzZSAxNikJCURheSBPbmUgRGlnaXRhbCBNZWRpYSBMaW1pdGVkCisJCQkJMTk3IEFyY2hlcnMgUmQKKwkJCQlHbGVuZmllbGQKKwkJCQlBdWNrbGFuZCBOb3J0aCBJc2xhbmQgMTMxMAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTBGLTVEICAgKGhleCkJCVBhY2tldEZyb250IEludGVybmF0aW9uYWwgQUIKKzAwMEY1RCAgICAgKGJhc2UgMTYpCQlQYWNrZXRGcm9udCBJbnRlcm5hdGlvbmFsIEFCCisJCQkJUE8tMTIxNworCQkJCUtpc3RhZ2FuZ2VuIDIsIElWCisJCQkJS2lzdGEgU3RvY2tob2xtIFNFLTE2NDI4CisJCQkJU1dFREVOCisKKzAwLTBGLTVFICAgKGhleCkJCVZlbworMDAwRjVFICAgICAoYmFzZSAxNikJCVZlbworCQkJCTkxMCBSaW5jb24gQ2lyY2xlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTVGICAgKGhleCkJCU5pY2V0eSBUZWNobm9sb2dpZXMgSW5jLiAoTlRTKQorMDAwRjVGICAgICAoYmFzZSAxNikJCU5pY2V0eSBUZWNobm9sb2dpZXMgSW5jLiAoTlRTKQorCQkJCTc5Mi0zIFRvbWlva2EgVG95b2RhLWNobworCQkJCUl3YXRhLWd1biBTaGl6dW9rYSA0MzgtMDgwMworCQkJCUpBUEFOCisKKzAwLTBGLTYwICAgKGhleCkJCUxpZmV0cm9uIENvLixMdGQKKzAwMEY2MCAgICAgKGJhc2UgMTYpCQlMaWZldHJvbiBDby4sTHRkCisJCQkJNi03LFRlbmppbm5pc2hpbWFjaGkKKwkJCQlLaXRhLUt1CisJCQkJT3Nha2EgT3Nha2EgUHJlZmVjdHVyZSA1MzAtMDA0NQorCQkJCUpBUEFOCisKKzAwLTBGLTYxICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDBGNjEgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTYyICAgKGhleCkJCUFsY2F0ZWwgQmVsbCBTcGFjZSBOLlYuCiswMDBGNjIgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBCZWxsIFNwYWNlIE4uVi4KKwkJCQlCZXJrZW5yb2RlbGVpIDMzCisJCQkJSG9ib2tlbiBBbnR3ZXJwZW4gQi0yNjYwCisJCQkJQkVMR0lVTQorCiswMC0wRi02MyAgIChoZXgpCQlPYnplcnYgVGVjaG5vbG9naWVzCiswMDBGNjMgICAgIChiYXNlIDE2KQkJT2J6ZXJ2IFRlY2hub2xvZ2llcworCQkJCTQwMCBKZWFuIExlc2FnZQorCQkJCXN1aXRlIDIwMQorCQkJCVF1ZWJlYyBRQyBHMUs4VzEKKwkJCQlDQU5BREEKKworMDAtMEYtNjQgICAoaGV4KQkJRCZSIEVsZWN0cm9uaWNhIFdlZXNwIEJWCiswMDBGNjQgICAgIChiYXNlIDE2KQkJRCZSIEVsZWN0cm9uaWNhIFdlZXNwIEJWCisJCQkJUmlqbmthZGUgMTVCCisJCQkJV0VFU1AgTkggMTM4MkdTCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEYtNjUgICAoaGV4KQkJaWN1YmUgQ29ycC4KKzAwMEY2NSAgICAgKGJhc2UgMTYpCQlpY3ViZSBDb3JwLgorCQkJCU9seW1waWEgQ2VudGVyIDJGLDgyOC0xMCxZZW9rc2FtLWRvbmcsS2FuZ25hbS1rdQorCQkJCVNlb3VsIFNvdXRoIDEzNS05MzUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtNjYgICAoaGV4KQkJQ2lzY28tTGlua3N5cworMDAwRjY2ICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMKKwkJCQkxMjEgVGhlb3J5IERyLgorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNjcgICAoaGV4KQkJV2VzdCBJbnN0cnVtZW50cworMDAwRjY3ICAgICAoYmFzZSAxNikJCVdlc3QgSW5zdHJ1bWVudHMKKwkJCQlVbml0IDUsIFRoZSBIeWRlLCBMb3dlciBCZXZlbmRlYW4KKwkJCQlCcmlnaHRvbiBFYXN0IFN1c3NleCBCTjIgNEpVCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEYtNjggICAoaGV4KQkJVmF2aWMgTmV0d29yayBUZWNobm9sb2d5LCBJbmMuCiswMDBGNjggICAgIChiYXNlIDE2KQkJVmF2aWMgTmV0d29yayBUZWNobm9sb2d5LCBJbmMuCisJCQkJMXN0IEZsb29yLCAxNSBKaWFuZ29uZyBSb2FkCisJCQkJVGlhbmhlICBTJlQgWm9uZQorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgNTEwNjY1CisJCQkJQ0hJTkEKKworMDAtMEYtNjkgICAoaGV4KQkJU0VXIEV1cm9kcml2ZSBHbWJIICYgQ28uIEtHCiswMDBGNjkgICAgIChiYXNlIDE2KQkJU0VXIEV1cm9kcml2ZSBHbWJIICYgQ28uIEtHCisJCQkJRXJuc3QgQmxpY2tsZSBTdHIuIDQyCisJCQkJQnJ1Y2hzYWwgIDc2NjQ2CisJCQkJR0VSTUFOWQorCiswMC0wRi02QSAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMEY2QSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0wRi02QiAgIChoZXgpCQlHYXRlV2FyZSBDb21tdW5pY2F0aW9ucyBHbWJICiswMDBGNkIgICAgIChiYXNlIDE2KQkJR2F0ZVdhcmUgQ29tbXVuaWNhdGlvbnMgR21iSAorCQkJCUFsbGVyc2JlcmdlciBTdHJhc3NlIDE4NSBGCisJCQkJTnVlcm5iZXJnIEJhdmFyaWEgRC05MDQ2MQorCQkJCUdFUk1BTlkKKworMDAtMEYtNkMgICAoaGV4KQkJQURESS1EQVRBIEdtYkgKKzAwMEY2QyAgICAgKGJhc2UgMTYpCQlBRERJLURBVEEgR21iSAorCQkJCURpZXNlbHN0cmFzc2UgMworCQkJCU9UVEVSU1dFSUVSIEJXIDc3ODMzCisJCQkJR0VSTUFOWQorCiswMC0wRi02RCAgIChoZXgpCQlNaWRhcyBFbmdpbmVlcmluZworMDAwRjZEICAgICAoYmFzZSAxNikJCU1pZGFzIEVuZ2luZWVyaW5nCisJCQkJQWNlIFRlY2huby1Ub3dlciBWICM5MDYgMTk3LTIyCisJCQkJS3Vyby1Eb25nLCBLdXJvLUd1CisJCQkJU2VvdWwgIDE1Mi04NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtNkUgICAoaGV4KQkJQkJveAorMDAwRjZFICAgICAoYmFzZSAxNikJCUJCb3gKKwkJCQlFcGl0b2sgdS4gMi00CisJCQkJQnVkYW9ycyAgSC0yMDQwCisJCQkJSFVOR0FSWQorCiswMC0wRi02RiAgIChoZXgpCQlGVEEgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMKKzAwMEY2RiAgICAgKGJhc2UgMTYpCQlGVEEgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMKKwkJCQkxMSwgcnVlIFBpZXJyZSBXZXJuZXIKKwkJCQlCZXR6ZG9yZiAgTC02ODMyCisJCQkJTFVYRU1CT1VSRworCiswMC0wRi03MCAgIChoZXgpCQlXaW50ZWMgSW5kdXN0cmllcywgaW5jLgorMDAwRjcwICAgICAoYmFzZSAxNikJCVdpbnRlYyBJbmR1c3RyaWVzLCBpbmMuCisJCQkJNjc1IFN5Y2Ftb3JlIERyaXZlCisJCQkJTWlscGl0YXMsIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi03MSAgIChoZXgpCQlTYW5tZWkgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAwRjcxICAgICAoYmFzZSAxNikJCVNhbm1laSBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJMi0yLTEsU2Vpa2FpLFNoaW1penUKKwkJCQlTaGl6dW9rYSAgNDI0LTA5MjQKKwkJCQlKQVBBTgorCiswMC0wRi03MiAgIChoZXgpCQlTYW5kYnVyc3QKKzAwMEY3MiAgICAgKGJhc2UgMTYpCQlTYW5kYnVyc3QKKwkJCQk2MDAgRmVkZXJhbCBTdAorCQkJCTJuZCBGbG9vcgorCQkJCUFuZG92ZXIgTUEgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTczICAgKGhleCkJCVJTIEF1dG9tYXRpb24gQ28uLCBMdGQKKzAwMEY3MyAgICAgKGJhc2UgMTYpCQlSUyBBdXRvbWF0aW9uIENvLiwgTHRkCisJCQkJNDQ3LTYsIEdvbmdzZS1Eb25nICwgR2loZXVuZy1HdQorCQkJCVlvdW5naW4tQ2l0eSBHeWVvbmdnaS1EbyA0NDktOTAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTc0ICAgKGhleCkJCVFhbWNvbSBUZWNobm9sb2d5IEFCCiswMDBGNzQgICAgIChiYXNlIDE2KQkJUWFtY29tIFRlY2hub2xvZ3kgQUIKKwkJCQlHcnV2Z2F0YW4gOAorCQkJCVNFLTQyMSAzMAorCQkJCVZhc3RyYSBGcm9sdW5kYSAKKwkJCQlTV0VERU4KKworMDAtMEYtNzUgICAoaGV4KQkJRmlyc3QgU2lsaWNvbiBTb2x1dGlvbnMKKzAwMEY3NSAgICAgKGJhc2UgMTYpCQlGaXJzdCBTaWxpY29uIFNvbHV0aW9ucworCQkJCTEzOTM5IEZvcmVzdCBMYW5lCisJCQkJTGFya3NwdXIgQ08gODAxMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTc2ICAgKGhleCkJCURpZ2l0YWwgS2V5c3RvbmUsIEluYy4KKzAwMEY3NiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIEtleXN0b25lLCBJbmMuCisJCQkJMTk3NSBFbCBDYW1pbm8gUmVhbAorCQkJCSMzMDYKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi03NyAgIChoZXgpCQlERU5UVU0gQ08uLExURAorMDAwRjc3ICAgICAoYmFzZSAxNikJCURFTlRVTSBDTy4sTFRECisJCQkJV29va3l1bmcgQi9EIDYwMiAjNjc4LTYKKwkJCQlEZXVuZ2Nob24tRG9uZyAsS2FuZ3Nlby1HdQorCQkJCVNlb3VsICAxNTctMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTc4ICAgKGhleCkJCURhdGFjYXAgU3lzdGVtcyBJbmMKKzAwMEY3OCAgICAgKGJhc2UgMTYpCQlEYXRhY2FwIFN5c3RlbXMgSW5jCisJCQkJMTAwIE5ldyBCcml0YWluIEJsdmQKKwkJCQlDaGFsZm9udCBQQSAxODkxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtNzkgICAoaGV4KQkJQmx1ZXRvb3RoIEludGVyZXN0IEdyb3VwIEluYy4KKzAwMEY3OSAgICAgKGJhc2UgMTYpCQlCbHVldG9vdGggSW50ZXJlc3QgR3JvdXAgSW5jLgorCQkJCTRGLCBOby4gOSwgQWxsZXkgMiwgTGFuZSAzNSwgSmktSHUgUmQuCisJCQkJTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtN0EgICAoaGV4KQkJQmVpSmluZyBOdVFYIFRlY2hub2xvZ3kgQ08uLExURAorMDAwRjdBICAgICAoYmFzZSAxNikJCUJlaUppbmcgTnVRWCBUZWNobm9sb2d5IENPLixMVEQKKwkJCQlSb29tIDgxMiw4RiBUb3dlciBCLFlpbldhbmcgQ2VudGVyLCBOby4xMTMsWmhpIENodW4gUm9hZCwKKwkJCQlIYWlEaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg2CisJCQkJQ0hJTkEKKworMDAtMEYtN0IgICAoaGV4KQkJQXJjZSBTaXN0ZW1hcywgUy5BLgorMDAwRjdCICAgICAoYmFzZSAxNikJCUFyY2UgU2lzdGVtYXMsIFMuQS4KKwkJCQlDL1BhZHJlIExhcnJhbWVuZGksIDMgLSAywroKKwkJCQlCaWxiYW8gVml6Y2F5YSA0ODAxMgorCQkJCVNQQUlOCisKKzAwLTBGLTdDICAgKGhleCkJCUFDVGkgQ29ycG9yYXRpb24KKzAwMEY3QyAgICAgKGJhc2UgMTYpCQlBQ1RpIENvcnBvcmF0aW9uCisJCQkJN0YuLCBOby4gMSwgQWxsZXkgMjAsIExhbmUgNDA3LCBTZWMuIDIsIFRpZGluZyBCbHZkLiwKKwkJCQlOZWlodSBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi03RCAgIChoZXgpCQlYaXJydXMKKzAwMEY3RCAgICAgKGJhc2UgMTYpCQlYaXJydXMKKwkJCQkzMTAgTm9ydGggV2VzdGxha2UgQmx2ZC4KKwkJCQlXZXN0bGFrZSBWaWxsYWdlIENBIDkxMzYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi03RSAgIChoZXgpCQlBYmxlcmV4IEVsZWN0cm9uaWNzIENvLiwgTFRECiswMDBGN0UgICAgIChiYXNlIDE2KQkJQWJsZXJleCBFbGVjdHJvbmljcyBDby4sIExURAorCQkJCTFGLCBOby4zIExhbmUgNywgUGFva2FvIFJkLgorCQkJCUhzaW50aWVuIFRhaXBlaSBIc2llbiAyMzExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtN0YgICAoaGV4KQkJVUJTVE9SQUdFIENvLixMdGQuCiswMDBGN0YgICAgIChiYXNlIDE2KQkJVUJTVE9SQUdFIENvLixMdGQuCisJCQkJI0EtMTA4LCBTZW91bF9TYW51cF9KaXdvbl9DZW50ZXIKKwkJCQk2NDctMjYsIERldW5nY2hvbmctZG9uZworCQkJCUdhbnNlby1ndSBTZW91bCAxNTctODQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLTgwICAgKGhleCkJCVRyaW5pdHkgU2VjdXJpdHkgU3lzdGVtcyxJbmMuCiswMDBGODAgICAgIChiYXNlIDE2KQkJVHJpbml0eSBTZWN1cml0eSBTeXN0ZW1zLEluYy4KKwkJCQlBbHRlIEJ1aWxkaW5nIEhpZ2FzaGkgS2FuZGEgOEYKKwkJCQkxLTctOCBIaWdhc2hpa2FuZGEKKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMS0wMDMxCisJCQkJSkFQQU4KKworMDAtMEYtODEgICAoaGV4KQkJU2VjdXJlIEluZm8gSW1hZ2luZworMDAwRjgxICAgICAoYmFzZSAxNikJCVNlY3VyZSBJbmZvIEltYWdpbmcKKwkJCQlQTyBCb3ggMjE4NworCQkJCVBhbG0gU3ByaW5ncyBDQSA5MjI2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtODIgICAoaGV4KQkJTW9ydGFyYSBJbnN0cnVtZW50LCBJbmMuCiswMDBGODIgICAgIChiYXNlIDE2KQkJTW9ydGFyYSBJbnN0cnVtZW50LCBJbmMuCisJCQkJNzg2NSBOLiA4NnRoIFN0LgorCQkJCU1pbHdhdWtlZSBXSSA1MzIyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtODMgICAoaGV4KQkJQnJhaW5pdW0gVGVjaG5vbG9naWVzIEluYy4KKzAwMEY4MyAgICAgKGJhc2UgMTYpCQlCcmFpbml1bSBUZWNobm9sb2dpZXMgSW5jLgorCQkJCSMyMDEgLSAxMTQ5MSBLaW5nc3RvbiBTdHJlZXQKKwkJCQlNYXBsZSBSaWRnZSBCQyBWMlggMFk2CisJCQkJQ0FOQURBCisKKzAwLTBGLTg0ICAgKGhleCkJCUFzdHV0ZSBOZXR3b3JrcywgSW5jLgorMDAwRjg0ICAgICAoYmFzZSAxNikJCUFzdHV0ZSBOZXR3b3JrcywgSW5jLgorCQkJCTE2NTE2IFZpYSBFc3ByaWxsbworCQkJCSMyMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTg1ICAgKGhleCkJCUFERE8tSmFwYW4gQ29ycG9yYXRpb24KKzAwMEY4NSAgICAgKGJhc2UgMTYpCQlBRERPLUphcGFuIENvcnBvcmF0aW9uCisJCQkJU2hpbiBFZG9iYXNoaSBCbGRnLiA0RiwgOC02IE5paG9tYmFzaGkgS29idW5hLWNobworCQkJCUNodW8ta3UgVG9reW8gMTAzLTAwMjQKKwkJCQlKQVBBTgorCiswMC0wRi04NiAgIChoZXgpCQlSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZAorMDAwRjg2ICAgICAoYmFzZSAxNikJCVJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzAwLTBGLTg3ICAgKGhleCkJCU1heGNlc3MgSW50ZXJuYXRpb25hbAorMDAwRjg3ICAgICAoYmFzZSAxNikJCU1heGNlc3MgSW50ZXJuYXRpb25hbAorCQkJCTIyMiBXLiBNZW1vcmlhbCBSb2FkCisJCQkJT2tsYWhvbWEgQ2l0eSBPSyA3MzExNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtODggICAoaGV4KQkJQU1FVEVLLCBJbmMuCiswMDBGODggICAgIChiYXNlIDE2KQkJQU1FVEVLLCBJbmMuCisJCQkJMTUwIEZyZWVwb3J0IFJvYWQKKwkJCQlQaXR0c2J1cmdoIFBBIDE1MjM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi04OSAgIChoZXgpCQlXaW5uZXJ0ZWMgU3lzdGVtIENvLiwgTHRkLgorMDAwRjg5ICAgICAoYmFzZSAxNikJCVdpbm5lcnRlYyBTeXN0ZW0gQ28uLCBMdGQuCisJCQkJIzQwNSwgNHRoIEZsb29yLiBBY2UtVGVjaG5vIFRvd2VyIElJSSwgMTk3LTQ4LAorCQkJCUt1cm8gMy1Eb25nLCBLdXJvLUt1LgorCQkJCVNlb3VsICAxNTItNzY2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLThBICAgKGhleCkJCVdpZGVWaWV3CiswMDBGOEEgICAgIChiYXNlIDE2KQkJV2lkZVZpZXcKKwkJCQlGLiA2LCBOby4gOCwgV3UtY2h1YW4gMiBSZCwgSHNpbi1DaHVhbmcgQ2l0eQorCQkJCVRhaXBlaSBDb3VudHJ5ICAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLThCICAgKGhleCkJCU9yaW9uIE11bHRpU3lzdGVtcyBJbmMKKzAwMEY4QiAgICAgKGJhc2UgMTYpCQlPcmlvbiBNdWx0aVN5c3RlbXMgSW5jCisJCQkJMzM3NSBTY290dCBCbHZkIFN1aXRlIDMzOAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi04QyAgIChoZXgpCQlHaWdhd2F2ZXRlY2ggUHRlIEx0ZAorMDAwRjhDICAgICAoYmFzZSAxNikJCUdpZ2F3YXZldGVjaCBQdGUgTHRkCisJCQkJMSBKYWxhbiBLaWxhbmcgVGltb3IKKwkJCQkjMDctMDIgUGFjaWZpYyBUZWNoIENlbnRyZQorCQkJCTE1OTMwMworCQkJCVNJTkdBUE9SRQorCiswMC0wRi04RCAgIChoZXgpCQlGQVNUIFRWLVNlcnZlciBBRworMDAwRjhEICAgICAoYmFzZSAxNikJCUZBU1QgVFYtU2VydmVyIEFHCisJCQkJUnVlZGVzaGVpbWVyc3RyLiAxMS0xMworCQkJCU11bmljaCBHZXJtYW55IDgwNjg2CisJCQkJR0VSTUFOWQorCiswMC0wRi04RSAgIChoZXgpCQlET05HWUFORyBURUxFQ09NIENPLixMVEQuCiswMDBGOEUgICAgIChiYXNlIDE2KQkJRE9OR1lBTkcgVEVMRUNPTSBDTy4sTFRELgorCQkJCTY0Mi03LCBERVVOR0NIT04tRE9ORywgS0FOR1NFTy1HVQorCQkJCVNFT1VMIEtBTkdTRS1HVSAxNTctODQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLThGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEY4RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTkwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMEY5MCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTkxICAgKGhleCkJCUFlcm90ZWxlY29tIENvLixMdGQuCiswMDBGOTEgICAgIChiYXNlIDE2KQkJQWVyb3RlbGVjb20gQ28uLEx0ZC4KKwkJCQkxOTUtNTggQW55YW5nIDcgRG9uZworCQkJCUFueWFuZyBLeXVuZ2dpIDQzMC04MTcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtOTIgICAoaGV4KQkJTWljcm9oYXJkIFN5c3RlbXMgSW5jLgorMDAwRjkyICAgICAoYmFzZSAxNikJCU1pY3JvaGFyZCBTeXN0ZW1zIEluYy4KKwkJCQkjMTcsIDIxMzUtMzJBdmUgTkUKKwkJCQlDYWxnYXJ5IEFCIFQyRTZaMworCQkJCUNBTkFEQQorCiswMC0wRi05MyAgIChoZXgpCQlMYW5kaXMrR3lyIEx0ZC4KKzAwMEY5MyAgICAgKGJhc2UgMTYpCQlMYW5kaXMrR3lyIEx0ZC4KKwkJCQlGZWxkc3RyYXNzZSAxCisJCQkJWnVnICBDSC02MzAxCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMEYtOTQgICAoaGV4KQkJR2VuZXhpcworMDAwRjk0ICAgICAoYmFzZSAxNikJCUdlbmV4aXMKKwkJCQlMb2Rld2lqa3N0cmFhdCAxQQorCQkJCUVpbmRob3ZlbiAgNTY0NkhQCisJCQkJTkVUSEVSTEFORFMKKworMDAtMEYtOTUgICAoaGV4KQkJRUxFQ09NIENvLixMVEQgTGFuZWVkIERpdmlzaW9uCiswMDBGOTUgICAgIChiYXNlIDE2KQkJRUxFQ09NIENvLixMVEQgTGFuZWVkIERpdmlzaW9uCisJCQkJOEYgS2FuZGEtTXVyb21hY2hpIEJsZGcuCisJCQkJMSBLYW5kYS1PZ2F3YW1hY2hpIDEgQ2hvbWUsCisJCQkJQ2hpeW9kYS1LdSwgVG9reW8uICAxMDEtMDA1MgorCQkJCUpBUEFOCisKKzAwLTBGLTk2ICAgKGhleCkJCVRlbGNvIFN5c3RlbXMsIEluYy4gCiswMDBGOTYgICAgIChiYXNlIDE2KQkJVGVsY28gU3lzdGVtcywgSW5jLiAKKwkJCQkxNSBCZXJrc2hpcmUgUm9hZAorCQkJCU1hbnNmaWVsZCBNQSAwMjA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtOTcgICAoaGV4KQkJQXZhbmV4IENvcnBvcmF0aW9uCiswMDBGOTcgICAgIChiYXNlIDE2KQkJQXZhbmV4IENvcnBvcmF0aW9uCisJCQkJNDA5MTkgRW5jeWNsb3BlZGlhIENpcmNsZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTk4ICAgKGhleCkJCUF2YW1heCBDby4gTHRkLgorMDAwRjk4ICAgICAoYmFzZSAxNikJCUF2YW1heCBDby4gTHRkLgorCQkJCUIxLCBOby4gNTEsIFNlY3Rpb24gMiwgQ2hvbmdRaW5nIFMuIFJkLgorCQkJCVRhaXBlaSAgMTAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi05OSAgIChoZXgpCQlBUEFDIG9wdG8gRWxlY3Ryb25pY3MgSW5jLgorMDAwRjk5ICAgICAoYmFzZSAxNikJCUFQQUMgb3B0byBFbGVjdHJvbmljcyBJbmMuCisJCQkJMyBUenUgQ2hpYW5nIFJvYWQsIEhzaW5jaHUgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHVrb3csIEhzaW5jaHUgSHNpZW4gIDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtOUEgICAoaGV4KQkJU3luY2hyb255LCBJbmMuCiswMDBGOUEgICAgIChiYXNlIDE2KQkJU3luY2hyb255LCBJbmMuCisJCQkJNjQxMCBDb21tb253ZWFsdGggRHJpdmUKKwkJCQlSb2Fub2tlIFZBIDI0MDE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi05QiAgIChoZXgpCQlSb3NzIFZpZGVvIExpbWl0ZWQKKzAwMEY5QiAgICAgKGJhc2UgMTYpCQlSb3NzIFZpZGVvIExpbWl0ZWQKKwkJCQk4IEpvaG4gU3RyZWV0CisJCQkJUE8gQm94IDIyMAorCQkJCUlyb3F1b2lzIE9udGFyaW8gSzBFIDFLMAorCQkJCUNBTkFEQQorCiswMC0wRi05QyAgIChoZXgpCQlQYW5kdWl0IENvcnAKKzAwMEY5QyAgICAgKGJhc2UgMTYpCQlQYW5kdWl0IENvcnAKKwkJCQkxNzMwMSBSaWRnZWxhbmQgQXZlCisJCQkJVGlubGV5IFBhcmsgSWxsaW5vaXMgNjA0NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLTlEICAgKGhleCkJCURpc3BsYXlMaW5rIChVSykgTHRkCiswMDBGOUQgICAgIChiYXNlIDE2KQkJRGlzcGxheUxpbmsgKFVLKSBMdGQKKwkJCQlNb3VudCBQbGVhc2FudCBIb3VzZQorCQkJCU1vdW50IFBsZWFzYW50CisJCQkJQ2FtYnJpZGdlIENhbWJyaWRnZXNoaXJlIENCMyAwUk4KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRi05RSAgIChoZXgpCQlNdXJyZWxla3Ryb25payBHbWJICiswMDBGOUUgICAgIChiYXNlIDE2KQkJTXVycmVsZWt0cm9uaWsgR21iSAorCQkJCUZhbGtlbnN0cmFzc2UgMworCQkJCU9wcGVud2VpbGVyIEJhZGVuIFfDvHJ0dGVtYmVyZyA3MTU3MAorCQkJCUdFUk1BTlkKKworMDAtMEYtOUYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMEY5RiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUEwICAgKGhleCkJCUNBTk9OIEtPUkVBIEJVU0lORVNTIFNPTFVUSU9OUyBJTkMuCiswMDBGQTAgICAgIChiYXNlIDE2KQkJQ0FOT04gS09SRUEgQlVTSU5FU1MgU09MVVRJT05TIElOQy4KKwkJCQk3MzYgV29uc2ktRG9uZworCQkJCUFuc2FuLXNpIEt5dW5nZ2ktZG8gNDI1LTA5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi1BMSAgIChoZXgpCQlHaWdhYml0IFN5c3RlbXMgSW5jLgorMDAwRkExICAgICAoYmFzZSAxNikJCUdpZ2FiaXQgU3lzdGVtcyBJbmMuCisJCQkJRnV5b2ggVmlkZW8gQnVpbGRpbmcgM0YKKwkJCQk3LTI1IEhpZ2FzaGktS2lib3VnYW9rYSwgQXNhaGktS3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyNDEtMDgyNgorCQkJCUpBUEFOCisKKzAwLTBGLUEyICAgKGhleCkJCURpZ2l0YWwgUGF0aCBOZXR3b3JrcworMDAwRkEyICAgICAoYmFzZSAxNikJCURpZ2l0YWwgUGF0aCBOZXR3b3JrcworCQkJCTI3NSBBaXJwYXJrIEJsdmQKKwkJCQlTdWl0ZSA1MDAKKwkJCQlDaGljbyBDQSA5NTk3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtQTMgICAoaGV4KQkJQWxwaGEgTmV0d29ya3MgSW5jLgorMDAwRkEzICAgICAoYmFzZSAxNikJCUFscGhhIE5ldHdvcmtzIEluYy4KKwkJCQlOby44IExpLXNoaW5nIDd0aCBSZC4sU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTBGLUE0ICAgKGhleCkJCVNwcmVjaGVyIEF1dG9tYXRpb24gR21iSAorMDAwRkE0ICAgICAoYmFzZSAxNikJCVNwcmVjaGVyIEF1dG9tYXRpb24gR21iSAorCQkJCUZyYW5ja3N0cmFzc2UgNTEKKwkJCQlMaW56IE9iZXLDtnN0ZXJyZWljaCA0MDE4CisJCQkJQVVTVFJJQQorCiswMC0wRi1BNSAgIChoZXgpCQlCV0EgVGVjaG5vbG9neSBHbWJICiswMDBGQTUgICAgIChiYXNlIDE2KQkJQldBIFRlY2hub2xvZ3kgR21iSAorCQkJCUpvaGFubi1LcmFuZS1XZWcgMjEKKwkJCQlNdWVuc3RlciAgNDgxNDkKKwkJCQlHRVJNQU5ZCisKKzAwLTBGLUE2ICAgKGhleCkJCVMyIFNlY3VyaXR5IENvcnBvcmF0aW9uCiswMDBGQTYgICAgIChiYXNlIDE2KQkJUzIgU2VjdXJpdHkgQ29ycG9yYXRpb24KKwkJCQk2IEFiYm90dCBSb2FkCisJCQkJV2VsbGVzbGV5IE1BIDAyNDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1BNyAgIChoZXgpCQlSYXB0b3IgTmV0d29ya3MgVGVjaG5vbG9neQorMDAwRkE3ICAgICAoYmFzZSAxNikJCVJhcHRvciBOZXR3b3JrcyBUZWNobm9sb2d5CisJCQkJNjUgRW50ZXJwcmlzZSBSb2FkCisJCQkJQWxpc28gVmllam8gQ0EgOTI2NTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUE4ICAgKGhleCkJCVBob3RvbWV0cmljcywgSW5jLgorMDAwRkE4ICAgICAoYmFzZSAxNikJCVBob3RvbWV0cmljcywgSW5jLgorCQkJCTM0NDAgRSBCcml0YW5uaWEgRHJpdmUKKwkJCQlUdWNzb24gQVogODU3MDYtNTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtQTkgICAoaGV4KQkJUEMgRmFicmlrCiswMDBGQTkgICAgIChiYXNlIDE2KQkJUEMgRmFicmlrCisJCQkJQnVjaGVuc3RyYXNzZSAxMy0xNQorCQkJCURyZXNkZW4gU2FjaHNlbiAwMTA5NworCQkJCUdFUk1BTlkKKworMDAtMEYtQUEgICAoaGV4KQkJTmV4dXMgVGVjaG5vbG9naWVzCiswMDBGQUEgICAgIChiYXNlIDE2KQkJTmV4dXMgVGVjaG5vbG9naWVzCisJCQkJMTAgTmF0aW9uYWwgQXZlLgorCQkJCUZsZXRjaGVyIE5DIDI4NzMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1BQiAgIChoZXgpCQlLeXVzaHUgRWxlY3Ryb25pY3MgU3lzdGVtcyBJbmMuCiswMDBGQUIgICAgIChiYXNlIDE2KQkJS3l1c2h1IEVsZWN0cm9uaWNzIFN5c3RlbXMgSW5jLgorCQkJCTMtMywgS29uZ28gMi1DaG9tZSwgWWFoYXRhbmlzaGkgV2FyZAorCQkJCUtpdGFreXVzaHUgQ2l0eSBGdWt1b2thIFByZWYuIDgwNy0xMjYzCisJCQkJSkFQQU4KKworMDAtMEYtQUMgICAoaGV4KQkJSUVFRSA4MDIuMTEKKzAwMEZBQyAgICAgKGJhc2UgMTYpCQlJRUVFIDgwMi4xMQorCQkJCTQxMjUgSGlnaGxhbmRlciBQYXJrd2F5CisJCQkJUmljaGZpZWxkIE9oaW8gNDQyODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUFEICAgKGhleCkJCUZNTiBjb21tdW5pY2F0aW9ucyBHbWJICiswMDBGQUQgICAgIChiYXNlIDE2KQkJRk1OIGNvbW11bmljYXRpb25zIEdtYkgKKwkJCQlHcmltbWVsYWxsZWUgNAorCQkJCU5vcmRoYXVzZW4gVGjDvHJpbmdlbiA5OTczNAorCQkJCUdFUk1BTlkKKworMDAtMEYtQUUgICAoaGV4KQkJRTJPIENvbW11bmljYXRpb25zCiswMDBGQUUgICAgIChiYXNlIDE2KQkJRTJPIENvbW11bmljYXRpb25zCisJCQkJNTIgU2VyYW5nb29uIE5vcnRoIEF2ZSA0CisJCQkJIzA2LTAyIEV2ZXIgVGVjaCBCdWlsZGluZworCQkJCTU1NTg1MworCQkJCVNJTkdBUE9SRQorCiswMC0wRi1BRiAgIChoZXgpCQlEaWFsb2cgSW5jLgorMDAwRkFGICAgICAoYmFzZSAxNikJCURpYWxvZyBJbmMuCisJCQkJMS00Ny05CisJCQkJSGlnYXNoaWlrZWJ1a3VybworCQkJCVRvc2hpbWEta3UgVG9reW8gMTcwMDAxMworCQkJCUpBUEFOCisKKzAwLTBGLUIwICAgKGhleCkJCUNvbXBhbCBFbGVjdHJvbmljcyxJTkMuCiswMDBGQjAgICAgIChiYXNlIDE2KQkJQ29tcGFsIEVsZWN0cm9uaWNzLElOQy4KKwkJCQk1ODEgSnVpa3VhbmcgUm9hZCxOZWlodSwKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtQjEgICAoaGV4KQkJQ29nbmlvIEluYy4KKzAwMEZCMSAgICAgKGJhc2UgMTYpCQlDb2duaW8gSW5jLgorCQkJCTEwMSBPcmNoYXJkIFJpZGdlIERyaXZlCisJCQkJU3VpdGUgMzUwCisJCQkJR2FpdGhlcnNidXJnIE1EIDIwODc4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1CMiAgIChoZXgpCQlCcm9hZGJhbmQgUGFjZW5ldCAoSW5kaWEpIFB2dC4gTHRkLgorMDAwRkIyICAgICAoYmFzZSAxNikJCUJyb2FkYmFuZCBQYWNlbmV0IChJbmRpYSkgUHZ0LiBMdGQuCisJCQkJNy1CLCBTaGFoIEluZHVzdHJpYWwgRXN0YXRlLCBPZmYgVmVlcmEgRGVzYWkgUm9hZAorCQkJCUFuZGhlcmkgV2VzdAorCQkJCU11bWJhaSBNYWhhcmFzaHRyYSA0MDAgMDUzCisJCQkJSU5ESUEKKworMDAtMEYtQjMgICAoaGV4KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMgCiswMDBGQjMgICAgIChiYXNlIDE2KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMgCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1CNCAgIChoZXgpCQlUaW1lc3BhY2UgVGVjaG5vbG9neQorMDAwRkI0ICAgICAoYmFzZSAxNikJCVRpbWVzcGFjZSBUZWNobm9sb2d5CisJCQkJQmxhY2tzdG9uZSBSb2FkCisJCQkJSHVudGluZ2RvbiBDYW1icmlkZ2VzaGlyZSBQRTI5IDZUVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBGLUI1ICAgKGhleCkJCU5FVEdFQVIgSW5jCiswMDBGQjUgICAgIChiYXNlIDE2KQkJTkVUR0VBUiBJbmMKKwkJCQk0NTAwIEdyZWF0IEFtZXJpY2EgUGFya3dheQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1CNiAgIChoZXgpCQlFdXJvcGxleCBUZWNobm9sb2dpZXMKKzAwMEZCNiAgICAgKGJhc2UgMTYpCQlFdXJvcGxleCBUZWNobm9sb2dpZXMKKwkJCQlDbG9uc2hhdWdoIEJ1c2luZXNzICYgVGVjaC4gUGFyaworCQkJCUNsb25zaGF1Z2ggIER1YmxpbiAxNworCQkJCUlSRUxBTkQKKworMDAtMEYtQjcgICAoaGV4KQkJQ2F2aXVtIE5ldHdvcmtzCiswMDBGQjcgICAgIChiYXNlIDE2KQkJQ2F2aXVtIE5ldHdvcmtzCisJCQkJMjYxMCBBdWd1c3RpbmUgRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDYWxpZm9ybmlhIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1COCAgIChoZXgpCQlDYWxsVVJMIEluYy4KKzAwMEZCOCAgICAgKGJhc2UgMTYpCQlDYWxsVVJMIEluYy4KKwkJCQkzRi0xMSwgTm8uIDUwOCBTZWMuICA1LCBDaHVuZy1Ic2lhbyBFLiBSZC4KKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtQjkgICAoaGV4KQkJQWRhcHRpdmUgSW5zdHJ1bWVudHMKKzAwMEZCOSAgICAgKGJhc2UgMTYpCQlBZGFwdGl2ZSBJbnN0cnVtZW50cworCQkJCTU3NyBNYWluIFN0cmVldAorCQkJCUh1ZHNvbiBNQSAwMTc0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtQkEgICAoaGV4KQkJVGV2ZWJveCBBQgorMDAwRkJBICAgICAoYmFzZSAxNikJCVRldmVib3ggQUIKKwkJCQlCZXJnbGluZHMgdmFnIDEzCisJCQkJd2FybWRvICBTLTEzOTAwCisJCQkJU1dFREVOCisKKzAwLTBGLUJCICAgKGhleCkJCU5va2lhIFNpZW1lbnMgTmV0d29ya3MgR21iSCAmIENvLiBLRworMDAwRkJCICAgICAoYmFzZSAxNikJCU5va2lhIFNpZW1lbnMgTmV0d29ya3MgR21iSCAmIENvLiBLRworCQkJCVdlcm5lci12b24tU2llbWVucyBTdHIuIDItNgorCQkJCUJydWNoc2FsIEJhZGVuLVfDvHJ0ZW1iZXJnIDc2NjQ2CisJCQkJR0VSTUFOWQorCiswMC0wRi1CQyAgIChoZXgpCQlPbmtleSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMEZCQyAgICAgKGJhc2UgMTYpCQlPbmtleSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk3ODAgTW9udGFndWUgRXhwcmVzc3dheSwgSW5jLgorCQkJCVN1aXRlICMzMDYKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtQkQgICAoaGV4KQkJTVJWIENvbW11bmljYXRpb25zIChOZXR3b3JrcykgTFRECiswMDBGQkQgICAgIChiYXNlIDE2KQkJTVJWIENvbW11bmljYXRpb25zIChOZXR3b3JrcykgTFRECisJCQkJUC5PIEJveCA2MTQKKwkJCQlZb2tuZWFtICAyMDY5MgorCQkJCUlTUkFFTAorCiswMC0wRi1CRSAgIChoZXgpCQllLXcveW91IEluYy4KKzAwMEZCRSAgICAgKGJhc2UgMTYpCQllLXcveW91IEluYy4KKwkJCQkzRiBGSU5FIEJsZGcuIDYtMTctMTcKKwkJCQlNaW5hbWlvb2ksCisJCQkJU2hpbmFnYXdhLWt1LCBUb2t5byAxNDAtMDAxMworCQkJCUpBUEFOCisKKzAwLTBGLUJGICAgKGhleCkJCURHVCBTcC4geiBvLm8uCiswMDBGQkYgICAgIChiYXNlIDE2KQkJREdUIFNwLiB6IG8uby4KKwkJCQl1bC4gSmFza293YSBEb2xpbmEgMTUKKwkJCQlHZGFuc2sgIDgwLTI1MgorCQkJCVBPTEFORAorCiswMC0wRi1DMCAgIChoZXgpCQlERUxDT01wCiswMDBGQzAgICAgIChiYXNlIDE2KQkJREVMQ09NcAorCQkJCVRlY2hub2xvZ2llbGFhbiAzCisJCQkJTGV1dmVuICBCLTMwMDAKKwkJCQlCRUxHSVVNCisKKzAwLTBGLUMxICAgKGhleCkJCVdBVkUgQ29ycG9yYXRpb24KKzAwMEZDMSAgICAgKGJhc2UgMTYpCQlXQVZFIENvcnBvcmF0aW9uCisJCQkJMy0yNS01IENoaWRvcmkKKwkJCQlPaHRhLWt1IFRva3lvIDE0Ni0wMDgzCisJCQkJSkFQQU4KKworMDAtMEYtQzIgICAoaGV4KQkJVW5pd2VsbCBDb3Jwb3JhdGlvbgorMDAwRkMyICAgICAoYmFzZSAxNikJCVVuaXdlbGwgQ29ycG9yYXRpb24KKwkJCQk1LTI1LCAzLWNob21lLCBUZW5tYSwgS2l0YS1rdQorCQkJCU9zYWthICA1MzAtMDA0MworCQkJCUpBUEFOCisKKzAwLTBGLUMzICAgKGhleCkJCVBhbG1QYWxtIFRlY2hub2xvZ3ksIEluYy4KKzAwMEZDMyAgICAgKGJhc2UgMTYpCQlQYWxtUGFsbSBUZWNobm9sb2d5LCBJbmMuCisJCQkJU2Ftc3VuZy1kb25nIDE1Ni0zLCBHYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS0wOTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtQzQgICAoaGV4KQkJTlNUIGNvLixMVEQuCiswMDBGQzQgICAgIChiYXNlIDE2KQkJTlNUIGNvLixMVEQuCisJCQkJNC0zLTEgU0hJTk1JWUFLT0RBCisJCQkJSEFNQU1BVFNVIFNISVpVT0tBIDQzMS0yMTAzCisJCQkJSkFQQU4KKworMDAtMEYtQzUgICAoaGV4KQkJS2V5TWVkIEx0ZAorMDAwRkM1ICAgICAoYmFzZSAxNikJCUtleU1lZCBMdGQKKwkJCQlLZXlNZWQgSG91c2UKKwkJCQlTdG9jayBSb2FkCisJCQkJU291dGhlbmQgb24gU2VhIEVzc2V4IFNTMiA1UUgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0wRi1DNiAgIChoZXgpCQlFdXJvY29tIEluZHVzdHJpZXMgQS9TCiswMDBGQzYgICAgIChiYXNlIDE2KQkJRXVyb2NvbSBJbmR1c3RyaWVzIEEvUworCQkJCXBvcnN2ZWogMgorCQkJCUFhbGJvcmcgTlYgREstOTIwMAorCQkJCURFTk1BUksKKworMDAtMEYtQzcgICAoaGV4KQkJRGlvbmljYSBSJkQgTHRkLgorMDAwRkM3ICAgICAoYmFzZSAxNikJCURpb25pY2EgUiZEIEx0ZC4KKwkJCQlCb2xvZ25hIENlbnRyZSwgRjExCisJCQkJTW9zdGEgVGVjaG5vcGFyaworCQkJCU1vc3RhICBNU1QxMworCQkJCU1BTFRBCisKKzAwLTBGLUM4ICAgKGhleCkJCUNoYW50cnkgTmV0d29ya3MKKzAwMEZDOCAgICAgKGJhc2UgMTYpCQlDaGFudHJ5IE5ldHdvcmtzCisJCQkJMTkwMCBNaW5uZXNvdGEgQ291cnQKKwkJCQlTdWl0ZSAxMjUKKwkJCQlNaXNzaXNzYXVnYSBPbnRhcmlvIEw1TiAzQzkKKwkJCQlDQU5BREEKKworMDAtMEYtQzkgICAoaGV4KQkJQWxsbmV0IEdtYkgKKzAwMEZDOSAgICAgKGJhc2UgMTYpCQlBbGxuZXQgR21iSAorCQkJCU1haXN0ci4gMgorCQkJCUdlcm1lcmluZyBCYXZhcmlhIDgyMTEwCisJCQkJR0VSTUFOWQorCiswMC0wRi1DQSAgIChoZXgpCQlBLUpJTiBURUNITElORSBDTywgTFRECiswMDBGQ0EgICAgIChiYXNlIDE2KQkJQS1KSU4gVEVDSExJTkUgQ08sIExURAorCQkJCTMyNy0zNQorCQkJCUthc2FuLURvbmcKKwkJCQlLdW1jaHVuLUt1IFNlb3VsIDE1My04MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtQ0IgICAoaGV4KQkJM0NvbSBMdGQKKzAwMEZDQiAgICAgKGJhc2UgMTYpCQkzQ29tIEx0ZAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlQZW9wbGVidWlsZGluZyBFc3RhdGUsIE1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cyBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMEYtQ0MgICAoaGV4KQkJTmV0b3BpYSwgSW5jLgorMDAwRkNDICAgICAoYmFzZSAxNikJCU5ldG9waWEsIEluYy4KKwkJCQk2MDAxIFNoZWxsbW91bmQgU3RyZWV0CisJCQkJNHRoIEZsb29yCisJCQkJRW1lcnl2aWxsZSBDQSA5NDYwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtQ0QgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDBGQ0QgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMEYtQ0UgICAoaGV4KQkJS2lrdXN1aSBFbGVjdHJvbmljcyBDb3JwLgorMDAwRkNFICAgICAoYmFzZSAxNikJCUtpa3VzdWkgRWxlY3Ryb25pY3MgQ29ycC4KKwkJCQkxLTEtMyxIaWdhc2hpIHlhbWF0YQorCQkJCVRzdXp1a2kta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjQtMDAyMworCQkJCUpBUEFOCisKKzAwLTBGLUNGICAgKGhleCkJCURhdGF3aW5kIFJlc2VhcmNoCiswMDBGQ0YgICAgIChiYXNlIDE2KQkJRGF0YXdpbmQgUmVzZWFyY2gKKwkJCQk1NTUgUmVuZS1MZXZlc3F1ZSBXZXN0CisJCQkJU3VpdGUgMTEzMAorCQkJCU1vbnRyZWFsIFF1ZWJlYyBIMlogMUIxCisJCQkJQ0FOQURBCisKKzAwLTBGLUQwICAgKGhleCkJCUFTVFJJCiswMDBGRDAgICAgIChiYXNlIDE2KQkJQVNUUkkKKwkJCQkxOC9GIFRvd2VyIDYsIEdhdGV3YXksIDkgQ2FudG9uIFJkCisJCQkJVFNULCBLb3dsb29uCisJCQkJSE9ORyBLT05HCisKKzAwLTBGLUQxICAgKGhleCkJCUFwcGxpZWQgV2lyZWxlc3MgSWRlbnRpZmljYXRpb25zIEdyb3VwLCBJbmMuCiswMDBGRDEgICAgIChiYXNlIDE2KQkJQXBwbGllZCBXaXJlbGVzcyBJZGVudGlmaWNhdGlvbnMgR3JvdXAsIEluYy4KKwkJCQkzODIgUm91dGUgNTksIFNlY3Rpb24gMjkyCisJCQkJTW9uc2V5IE5ldyBZb3JrIDEwOTUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1EMiAgIChoZXgpCQlFV0EgVGVjaG5vbG9naWVzLCBJbmMuCiswMDBGRDIgICAgIChiYXNlIDE2KQkJRVdBIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEzODczIFBhcmsgQ2VudGVyIFJvYWQKKwkJCQlIZXJuZG9uIFZBIDIwMTcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1EMyAgIChoZXgpCQlEaWdpdW0KKzAwMEZEMyAgICAgKGJhc2UgMTYpCQlEaWdpdW0KKwkJCQk0NDUgSmFuIERhdmlzIERyaXZlIE5XCisJCQkJU3VpdGUgMTAwCisJCQkJSHVudHN2aWxsZSBBTCAzNTgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtRDQgICAoaGV4KQkJU291bmRjcmFmdAorMDAwRkQ0ICAgICAoYmFzZSAxNikJCVNvdW5kY3JhZnQKKwkJCQlDcmFuYm9ybmUgSG91c2UKKwkJCQlDcmFuYm9ybmUgUm9hZAorCQkJCVBvdHRlcnMgQmFyIEhlcnRmb3Jkc2hpcmUgRU42IDNKTgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTBGLUQ1ICAgKGhleCkJCVNjaHdlY2hhdCAtIFJJU0UKKzAwMEZENSAgICAgKGJhc2UgMTYpCQlTY2h3ZWNoYXQgLSBSSVNFCisJCQkJQW0gQ29uY29yZGUgUGFyayAyQQorCQkJCVNjaHdlY2hhdCAgMjMyMAorCQkJCUFVU1RSSUEKKworMDAtMEYtRDYgICAoaGV4KQkJU2Fyb3RlY2ggQ28uLCBMdGQKKzAwMEZENiAgICAgKGJhc2UgMTYpCQlTYXJvdGVjaCBDby4sIEx0ZAorCQkJCUhhbkdhbmcgQmxkZywgMTU0OS03LCBTZW9jaG8tRG9uZywKKwkJCQlTZW9jaG8ta3UsCisJCQkJU2VvdWwgIDEzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtRDcgICAoaGV4KQkJSGFybWFuIE11c2ljIEdyb3VwCiswMDBGRDcgICAgIChiYXNlIDE2KQkJSGFybWFuIE11c2ljIEdyb3VwCisJCQkJODc2MCBTYW5keSBQYXJrd2F5CisJCQkJU2FuZHkgVXRhaCA4NDA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtRDggICAoaGV4KQkJRm9yY2UsIEluYy4KKzAwMEZEOCAgICAgKGJhc2UgMTYpCQlGb3JjZSwgSW5jLgorCQkJCTgyNSBQYXJrIFN0cmVldAorCQkJCUNocmlzdGlhbnNidXJnIFZhIDI0MDczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1EOSAgIChoZXgpCQlGbGV4RFNMIFRlbGVjb21tdW5pY2F0aW9ucyBBRworMDAwRkQ5ICAgICAoYmFzZSAxNikJCUZsZXhEU0wgVGVsZWNvbW11bmljYXRpb25zIEFHCisJCQkJSGF1cyB6dW0gRW5nZWwKKwkJCQlBbHRlbmRvcmYgU2Nod3l6IDg4NTIKKwkJCQlTV0lUWkVSTEFORAorCiswMC0wRi1EQSAgIChoZXgpCQlZQVpBS0kgQ09SUE9SQVRJT04KKzAwMEZEQSAgICAgKGJhc2UgMTYpCQlZQVpBS0kgQ09SUE9SQVRJT04KKwkJCQkxNTAwIE1JU0hVS1UKKwkJCQlTVVNPTk8tQ0lUWSBTSElaVU9LQS1QUkVGIDQxMC0xMTk0CisJCQkJSkFQQU4KKworMDAtMEYtREIgICAoaGV4KQkJV2VzdGVsbCBUZWNobm9sb2dpZXMKKzAwMEZEQiAgICAgKGJhc2UgMTYpCQlXZXN0ZWxsIFRlY2hub2xvZ2llcworCQkJCTc1MCBOLiBDb21tb25zIERyLgorCQkJCUF1cm9yYSBJTCA2MDUwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtREMgICAoaGV4KQkJVWVkYSBKYXBhbiAgUmFkaW8gQ28uLCBMdGQuCiswMDBGREMgICAgIChiYXNlIDE2KQkJVWVkYSBKYXBhbiAgUmFkaW8gQ28uLCBMdGQuCisJCQkJRnVtaWlyaSAyLTEwLTE5CisJCQkJVWVkYSBjaXR5IE5hZ2FubyBwcmVmZWN0dXJlIDM4Ni04NjA4CisJCQkJSkFQQU4KKworMDAtMEYtREQgICAoaGV4KQkJU09SRElOIEFCCiswMDBGREQgICAgIChiYXNlIDE2KQkJU09SRElOIEFCCisJCQkJUm9ybGFnZ2FydmFnZW4gOAorCQkJCVZhcm5hbW8gU21hbGFuZCBTLTMzMSAzNAorCQkJCVNXRURFTgorCiswMC0wRi1ERSAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorMDAwRkRFICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKKzAwLTBGLURGICAgKGhleCkJCVNPTE9NT04gVGVjaG5vbG9neSBDb3JwLgorMDAwRkRGICAgICAoYmFzZSAxNikJCVNPTE9NT04gVGVjaG5vbG9neSBDb3JwLgorCQkJCU5vLjQyLFNpbmcgWmhvbmcgUmQuLE5laSBIdSBEaXN0LiwKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtRTAgICAoaGV4KQkJTkNvbXB1dGluZyBDby4sTHRkLgorMDAwRkUwICAgICAoYmFzZSAxNikJCU5Db21wdXRpbmcgQ28uLEx0ZC4KKwkJCQk2dGggRmwsIEpFSS1QbGF0eiBCL0QKKwkJCQkxNDIzLTYsIEd3YW55YW5nMS1Eb25nLCBEb25nYW4tR3UKKwkJCQlTZW91bCBHYXNhbi1kb25nIEdldW1jaGVvbi1HdSA0NTktMTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtRTEgICAoaGV4KQkJSUQgRElHSVRBTCBDT1JQT1JBVElPTgorMDAwRkUxICAgICAoYmFzZSAxNikJCUlEIERJR0lUQUwgQ09SUE9SQVRJT04KKwkJCQk2dGggRmwuLCBNaXJhZSBCbGRnLiwgMjcxLTEsIFNlb2h5dW4tZG9uZywgQnVuZGFuZy1rdSwgU3VuZ25hbS1zaSwgS2VvbmdraS1kbywgU291dGggS29yZWEKKwkJCQlTdW5nbmFtLVNpIEtlb25na2ktZG8gNDYzLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi1FMiAgIChoZXgpCQlIYW5nemhvdSBIM0MgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAwRkUyICAgICAoYmFzZSAxNikJCUhhbmd6aG91IEgzQyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJT3JpZW50YWwgRWxlY3Ryb25pYyBCbGQuLCBOTy4yLENodWFuZ3llIFJvYWQKKwkJCQlTaGFuZy1EaSBJbmZvcm1haXRvbiBJbmR1c3RyeSBCYXNlLAorCQkJCUhhaS1EaWFuIERpc3RyaWN0IEJlaWppbmcgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMEYtRTMgICAoaGV4KQkJRGFtbSBDZWxsdWxhciBTeXN0ZW1zIEEvUworMDAwRkUzICAgICAoYmFzZSAxNikJCURhbW0gQ2VsbHVsYXIgU3lzdGVtcyBBL1MKKwkJCQlNb2VsbGVnYWRlIDY4CisJCQkJU29lbmRlcmJvcmcgIERrLTY0MDAKKwkJCQlERU5NQVJLCisKKzAwLTBGLUU0ICAgKGhleCkJCVBhbnRlY2ggQ28uLEx0ZAorMDAwRkU0ICAgICAoYmFzZSAxNikJCVBhbnRlY2ggQ28uLEx0ZAorCQkJCVNoaW5zb25nIEIvRCAzRiwgMjUtMTIsCisJCQkJWWVvdWlkby1Eb25nLAorCQkJCVlvdW5nZGV1bmdwby1HVSBTZW91bCAxNTAtNzExCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLUU1ICAgKGhleCkJCU1FUkNVUlkgU0VDVVJJVFkgQ09SUE9SQVRJT04KKzAwMEZFNSAgICAgKGJhc2UgMTYpCQlNRVJDVVJZIFNFQ1VSSVRZIENPUlBPUkFUSU9OCisJCQkJMjM1NSBNSVJBIE1BUiBBVkUuCisJCQkJTE9ORyBCRUFDSCBDQSA5MDgxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtRTYgICAoaGV4KQkJTUJUZWNoIFN5c3RlbXMsIEluYy4KKzAwMEZFNiAgICAgKGJhc2UgMTYpCQlNQlRlY2ggU3lzdGVtcywgSW5jLgorCQkJCTQxMiAxc3QgQXZlIFNFCisJCQkJU3VpdGUgMTAwCisJCQkJQ3VsbG1hbiBBbGFiYW1hIDM1MDU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1FNyAgIChoZXgpCQlMdXRyb24gRWxlY3Ryb25pY3MgQ28uLCBJbmMuCiswMDBGRTcgICAgIChiYXNlIDE2KQkJTHV0cm9uIEVsZWN0cm9uaWNzIENvLiwgSW5jLgorCQkJCTcyMDAgU3V0ZXIgUmQuCisJCQkJQ29vcGVyc2J1cmcgUEEgMTgwMzYtMTI5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtRTggICAoaGV4KQkJTG9ib3MsIEluYy4KKzAwMEZFOCAgICAgKGJhc2UgMTYpCQlMb2JvcywgSW5jLgorCQkJCVUmVCBCbGRnIDNGLCAxLTItMyBTYXJ1Z2FrdS1jaG8sIENoaXlvZGEta3UsCisJCQkJVG9reW8gIDEwMS0wMDY0CisJCQkJSkFQQU4KKworMDAtMEYtRTkgICAoaGV4KQkJR1cgVEVDSE5PTE9HSUVTIENPLixMVEQuCiswMDBGRTkgICAgIChiYXNlIDE2KQkJR1cgVEVDSE5PTE9HSUVTIENPLixMVEQuCisJCQkJTm8uMzggU2hhbmdkaSBYaWx1LEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0wRi1FQSAgIChoZXgpCQlHaWdhLUJ5dGUgVGVjaG5vbG9neSBDby4sTFRELgorMDAwRkVBICAgICAoYmFzZSAxNikJCUdpZ2EtQnl0ZSBUZWNobm9sb2d5IENvLixMVEQuCisJCQkJTm8uMjE1LE5hbi1QaW5nIFJvYWQsUGluZy1KZW4gQ2l0eSwKKwkJCQlQaW5nLUplbiBUYW95dWFuIDMyNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtRUIgICAoaGV4KQkJQ3lsb24gQ29udHJvbHMKKzAwMEZFQiAgICAgKGJhc2UgMTYpCQlDeWxvbiBDb250cm9scworCQkJCUNsb25zaGF1Z2ggSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlDbG9uc2hhdWdoCisJCQkJRHVibGluIDE3ICAKKwkJCQlJUkVMQU5ECisKKzAwLTBGLUVDICAgKGhleCkJCUFya3VzIEluYy4KKzAwMEZFQyAgICAgKGJhc2UgMTYpCQlBcmt1cyBJbmMuCisJCQkJMy04IENodW8tY2hvCisJCQkJT2theWFtYSAgNzAwLTA4MzYKKwkJCQlKQVBBTgorCiswMC0wRi1FRCAgIChoZXgpCQlBbmFtIEVsZWN0cm9uaWNzIENvLiwgTHRkCiswMDBGRUQgICAgIChiYXNlIDE2KQkJQW5hbSBFbGVjdHJvbmljcyBDby4sIEx0ZAorCQkJCTY0NSBTdW5na29rLWRvbmcKKwkJCQlEYW53b24tZ3UKKwkJCQlBbnNhbi1jaXR5IEt5dW5na2ktZG8gNDI1LTgzNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0wRi1FRSAgIChoZXgpCQlYVGVjLCBJbmNvcnBvcmF0ZWQKKzAwMEZFRSAgICAgKGJhc2UgMTYpCQlYVGVjLCBJbmNvcnBvcmF0ZWQKKwkJCQk1Nzc1IEJsdWUgTGFnb29uIERyaXZlCisJCQkJU3VpdGUgMjgwCisJCQkJTWlhbWkgRmxvcmlkYSAzMzEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtRUYgICAoaGV4KQkJVGhhbGVzIGUtVHJhbnNhY3Rpb25zIEdtYkgKKzAwMEZFRiAgICAgKGJhc2UgMTYpCQlUaGFsZXMgZS1UcmFuc2FjdGlvbnMgR21iSAorCQkJCUtvbnJhZC1adXNlLVN0cmHDg8W4ZSAxOS0yMQorCQkJCUJhZCBIZXJzZmVsZCBIZXNzZW4gMzYyNTEKKwkJCQlHRVJNQU5ZCisKKzAwLTBGLUYwICAgKGhleCkJCVN1bnJheSBDby4gTHRkLgorMDAwRkYwICAgICAoYmFzZSAxNikJCVN1bnJheSBDby4gTHRkLgorCQkJCU9zYXdhMi01LTUgTWl0YWthCisJCQkJVG9reW8gMTgxLTAwMTUKKwkJCQlKQVBBTgorCiswMC0wRi1GMSAgIChoZXgpCQluZXgtRyBTeXN0ZW1zIFB0ZS5MdGQKKzAwMEZGMSAgICAgKGJhc2UgMTYpCQluZXgtRyBTeXN0ZW1zIFB0ZS5MdGQKKwkJCQkyNSBLYWxsYW5nIEF2ZQorCQkJCSMwNy0wNQorCQkJCTMzOTQxNgorCQkJCVNJTkdBUE9SRQorCiswMC0wRi1GMiAgIChoZXgpCQlMb3VkIFRlY2hub2xvZ2llcyBJbmMuCiswMDBGRjIgICAgIChiYXNlIDE2KQkJTG91ZCBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTE2MjIwIFdvb2QtUmVkIFJkLiBORQorCQkJCVdvb2RpbnZpbGxlIFdBIDk4MDcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1GMyAgIChoZXgpCQlKdW5nIE15b3VuZyBDb21tdW5pY2F0aW9ucyZUZWNobm9sb2d5CiswMDBGRjMgICAgIChiYXNlIDE2KQkJSnVuZyBNeW91bmcgQ29tbXVuaWNhdGlvbnMmVGVjaG5vbG9neQorCQkJCTF0aCBGTC4sIERvbmcgSUwgQmxkZy4xMDcgWWFuZ2phZS1Eb25nCisJCQkJU2VvY2hvLUt1IFNlb3VsIDEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMEYtRjQgICAoaGV4KQkJR3VudGVybWFubiAmIERydW5jayBHbWJICiswMDBGRjQgICAgIChiYXNlIDE2KQkJR3VudGVybWFubiAmIERydW5jayBHbWJICisJCQkJRG9ydG11bmRlciBTdHIuIDRhCisJCQkJV2lsbnNkb3JmIE5SVyA1NzIzNAorCQkJCUdFUk1BTlkKKworMDAtMEYtRjUgICAoaGV4KQkJR04mUyBjb21wYW55CiswMDBGRjUgICAgIChiYXNlIDE2KQkJR04mUyBjb21wYW55CisJCQkJMzAxIEFuc2FuIFMvVyBjZW50ZXIsIDY0My03IHdvbmdvay1kb25nCisJCQkJQW5zYW4gY2l0eSBHeWVvbmdnaS1kbyA0MjUtMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLUY2ICAgKGhleCkJCURhcmZvbiBFbGVjdHJvbmljcyBDb3JwLgorMDAwRkY2ICAgICAoYmFzZSAxNikJCURhcmZvbiBFbGVjdHJvbmljcyBDb3JwLgorCQkJCTMxLCBMYW5lMTcsIFppaGNpYW5nIE4uIFJvYWQKKwkJCQlHdWVpc2hhbgorCQkJCVRhb3l1YW4gIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtRjcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAwRkY3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEUi4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMEYtRjggICAoaGV4KQkJQ2lzY28gIFN5c3RlbXMKKzAwMEZGOCAgICAgKGJhc2UgMTYpCQlDaXNjbyAgU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0wRi1GOSAgIChoZXgpCQlWYWxjcmV0ZWMsIEluYy4KKzAwMEZGOSAgICAgKGJhc2UgMTYpCQlWYWxjcmV0ZWMsIEluYy4KKwkJCQlCeXVja3NhbiBEaWdpdGFsIFZhbGxleSBJSSAxNUYKKwkJCQk0ODEtMTAsIEdhc2FuLURvbmcsIEdldW1jaGVvbi1HdQorCQkJCVNlb3VsICAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTBGLUZBICAgKGhleCkJCU9wdGluZWwgU3lzdGVtcywgSW5jLgorMDAwRkZBICAgICAoYmFzZSAxNikJCU9wdGluZWwgU3lzdGVtcywgSW5jLgorCQkJCTY4MzUgRGVlcnBhdGggUmQuCisJCQkJRWxrcmlkZ2UgTUQgMjEwNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTBGLUZCICAgKGhleCkJCU5pcHBvbiBEZW5zbyBJbmR1c3RyeSBDby4sIEx0ZC4KKzAwMEZGQiAgICAgKGJhc2UgMTYpCQlOaXBwb24gRGVuc28gSW5kdXN0cnkgQ28uLCBMdGQuCisJCQkJMy0xNC0xOQorCQkJCVNoaWJhdXJhLCBNaW5hdG8ta3UgVG9reW8sIDEwOC04NTYwCisJCQkJSkFQQU4KKworMDAtMEYtRkMgICAoaGV4KQkJTWVyaXQgTGktTGluIEVudC4KKzAwMEZGQyAgICAgKGJhc2UgMTYpCQlNZXJpdCBMaS1MaW4gRW50LgorCQkJCU5vLiAyMCBXdS1Mb25nIDYgUmQuCisJCQkJV3UtS3UgVGFpcGVpIDI0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMEYtRkQgICAoaGV4KQkJR2xvcnl0ZWsgTmV0d29yayBJbmMuCiswMDBGRkQgICAgIChiYXNlIDE2KQkJR2xvcnl0ZWsgTmV0d29yayBJbmMuCisJCQkJNUYuLTMsIE5vLjE2LCBTZWMuIDEsIERvbmdkYSBSZC4sCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0wRi1GRSAgIChoZXgpCQlHLVBSTyBDT01QVVRFUgorMDAwRkZFICAgICAoYmFzZSAxNikJCUctUFJPIENPTVBVVEVSCisJCQkJZmlyc3QgYXJyYW5nZSBDIFlpbmdIdSBpbmR1c3RyaWFsIGVzdGF0ZSBRaW5nWGkgY291bnRyeSBEb25nR3VhbiBjaXR5CisJCQkJRG9uZ0d1YW4gR3VhbmdEb25nIDUyMzY0OAorCQkJCUNISU5BCisKKzAwLTBGLUZGICAgKGhleCkJCUNvbnRyb2w0CiswMDBGRkYgICAgIChiYXNlIDE2KQkJQ29udHJvbDQKKwkJCQkxMTczNCBTLiBFbGVjdGlvbiBEcml2ZQorCQkJCURyYXBlciBVVCA4NDAyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMDAgICAoaGV4KQkJQ0FCTEUgVEVMRVZJU0lPTiBMQUJPUkFUT1JJRVMsIElOQy4KKzAwMTAwMCAgICAgKGJhc2UgMTYpCQlDQUJMRSBURUxFVklTSU9OIExBQk9SQVRPUklFUywgSU5DLgorCQkJCTg1OCBDb2FsIENyZWVrIENpcmNsZQorCQkJCUxvdWlzdmlsbGUgQ08gODAwMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTAxICAgKGhleCkJCUNpdGVsCiswMDEwMDEgICAgIChiYXNlIDE2KQkJQ2l0ZWwKKwkJCQlMb3VnaGJvcm91Z2ggSW5ub3ZhdGlvbiBDZW50cmUKKwkJCQlFcGluYWwgV2F5CisJCQkJTG91Z2hib3JvdWdoICBMRTExIDNFSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEwLTAyICAgKGhleCkJCUFDVElBCiswMDEwMDIgICAgIChiYXNlIDE2KQkJQUNUSUEKKwkJCQkyNSBDSEVNSU4gREUgUE9VVk9VUlZJTExFCisJCQkJMzE0MzIgVE9VTE9VU0UsICBDRURFWCAwNCAgCisJCQkJRlJBTkNFCisKKzAwLTEwLTAzICAgKGhleCkJCUlNQVRST04sIElOQy4KKzAwMTAwMyAgICAgKGJhc2UgMTYpCQlJTUFUUk9OLCBJTkMuCisJCQkJMzg5IE9ZU1RFUiBQT0lOVCBCTFZELgorCQkJCVNPLiBTQU4gRlJBTkNJU0NPIENBIDk0MDgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0wNCAgIChoZXgpCQlUSEUgQlJBTlRMRVkgQ09JTEUgQ09NUEFOWSxJTkMKKzAwMTAwNCAgICAgKGJhc2UgMTYpCQlUSEUgQlJBTlRMRVkgQ09JTEUgQ09NUEFOWSxJTkMKKwkJCQk1NDUgUkVTRUFSQ0ggRFJJVkUKKwkJCQlBVEhFTlMgR0EgMzA2MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTA1ICAgKGhleCkJCVVFQyBDT01NRVJDSUFMCiswMDEwMDUgICAgIChiYXNlIDE2KQkJVUVDIENPTU1FUkNJQUwKKwkJCQlQLk8uIEJPWCA1NCwKKwkJCQlNVC4gRURHRUNPTUJFCisJCQkJNDMwMCBEVVJCQU4gIAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xMC0wNiAgIChoZXgpCQlUaGFsZXMgQ29udGFjdCBTb2x1dGlvbnMgTHRkLgorMDAxMDA2ICAgICAoYmFzZSAxNikJCVRoYWxlcyBDb250YWN0IFNvbHV0aW9ucyBMdGQuCisJCQkJVG9sYmFyIFdheQorCQkJCVNvdXRoYW1wdG9uLCBTTzMwIDJaUCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTAtMDcgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAxMDA3ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFICAgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0wOCAgIChoZXgpCQlWSUVOTkEgU1lTVEVNUyBDT1JQT1JBVElPTgorMDAxMDA4ICAgICAoYmFzZSAxNikJCVZJRU5OQSBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJNjY1MSBGUkFTRVJXT09EIFBMQUNFCisJCQkJU1VJVEUgIzI1MAorCQkJCVJJQ0hNT05ELCBCLkMuIFY2VyAxSjMgIAorCQkJCUNBTkFEQQorCiswMC0xMC0wOSAgIChoZXgpCQlIT1JPIFFVQVJUWgorMDAxMDA5ICAgICAoYmFzZSAxNikJCUhPUk8gUVVBUlRaCisJCQkJWi5JLiBST1VURSBERSBOSU9SVAorCQkJCTg1MjAwIC0gRk9OVEVOQVkgTEUgQ09NVEUgIAorCQkJCUZSRU5DSCBHVUlBTkEKKworMDAtMTAtMEEgICAoaGV4KQkJV0lMTElBTVMgQ09NTVVOSUNBVElPTlMgR1JPVVAKKzAwMTAwQSAgICAgKGJhc2UgMTYpCQlXSUxMSUFNUyBDT01NVU5JQ0FUSU9OUyBHUk9VUAorCQkJCUFEVkFOQ0VEIFRFQ0hOT0xPR0lFUworCQkJCTExMSBFQVNUIEZJUlNUCisJCQkJVFVMU0EgT0sgNzQxMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTBCICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTAwQiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRSAgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0wQyAgIChoZXgpCQlJVE8gQ08uLCBMVEQuCiswMDEwMEMgICAgIChiYXNlIDE2KQkJSVRPIENPLiwgTFRELgorCQkJCTgtMiBNSVlBTk9TSElUQS1DSE8KKwkJCQlISVJBS0FUQS1DSVRZLCBPU0FLQSAgCisJCQkJSkFQQU4KKworMDAtMTAtMEQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAxMDBEICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSLi1TSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTBFICAgKGhleCkJCU1JQ1JPIExJTkVBUiBDT1BPUkFUSU9OCiswMDEwMEUgICAgIChiYXNlIDE2KQkJTUlDUk8gTElORUFSIENPUE9SQVRJT04KKwkJCQkyMDkyIENPTkNPVVJTRSBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0wRiAgIChoZXgpCQlJTkRVU1RSSUFMIENQVSBTWVNURU1TCiswMDEwMEYgICAgIChiYXNlIDE2KQkJSU5EVVNUUklBTCBDUFUgU1lTVEVNUworCQkJCTExMS1EIFcuIERZRVIgUk9BRAorCQkJCVNBTlRBIEFOQSBDQSA5MjcwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMTAgICAoaGV4KQkJSU5JVElPIENPUlBPUkFUSU9OCiswMDEwMTAgICAgIChiYXNlIDE2KQkJSU5JVElPIENPUlBPUkFUSU9OCisJCQkJMjE4OCBCIERFTCBGUkFOQ08gU1RSRUVUCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTExICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTAxMSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTEyICAgKGhleCkJCVBST0NFU1NPUiBTWVNURU1TIChJKSBQVlQgTFRECiswMDEwMTIgICAgIChiYXNlIDE2KQkJUFJPQ0VTU09SIFNZU1RFTVMgKEkpIFBWVCBMVEQKKwkJCQkyNCBSSUNITU9ORCBST0FECisJCQkJQkFOR0FMT1JFIDU2MCAwMjUgIAorCQkJCUlORElBCisKKzAwLTEwLTEzICAgKGhleCkJCUtvbnRyb24gQW1lcmljYSwgSW5jLgorMDAxMDEzICAgICAoYmFzZSAxNikJCUtvbnRyb24gQW1lcmljYSwgSW5jLgorCQkJCTE0MTE4IFN0b3dlIERyaXZlCisJCQkJUG93YXksIENBIDkyMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTE0ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTAxNCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTE1ICAgKGhleCkJCU9PbW9uIEluYy4KKzAwMTAxNSAgICAgKGJhc2UgMTYpCQlPT21vbiBJbmMuCisJCQkJUE8gQk9YIDgyNDEKKwkJCQlDT0JVUkcgT1IgOTc0MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTE2ICAgKGhleCkJCVQuU1FXQVJFCiswMDEwMTYgICAgIChiYXNlIDE2KQkJVC5TUVdBUkUKKwkJCQk2LCBQQVJDIEFSSUFORQorCQkJCUlNTUVVQkxFIE1FUkNVUkUKKwkJCQk3ODI4NCBHVVlBTkNPVVJUIENFREVYICAKKwkJCQlGUkFOQ0UKKworMDAtMTAtMTcgICAoaGV4KQkJQm9zY2ggQWNjZXNzIFN5c3RlbXMgR21iSAorMDAxMDE3ICAgICAoYmFzZSAxNikJCUJvc2NoIEFjY2VzcyBTeXN0ZW1zIEdtYkgKKwkJCQlDaGFybG90dGVuYnVyZ2VyIEFsbGVlIDUwICAgICAgICAgICAgCisJCQkJQUFDSEVOICAgIEQtNTIwNjggCisJCQkJR0VSTUFOWQorCiswMC0xMC0xOCAgIChoZXgpCQlCUk9BRENPTSBDT1JQT1JBVElPTgorMDAxMDE4ICAgICAoYmFzZSAxNikJCUJST0FEQ09NIENPUlBPUkFUSU9OCisJCQkJMTYyMTUgQUxUT04gUEFSS1dBWQorCQkJCVAuTy4gQk9YIDU3MDEzCisJCQkJSVJWSU5FIENBIDkyNjE5LTcwMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTE5ICAgKGhleCkJCVNJUk9OQSBERU5UQUwgU1lTVEVNUyBHbWJIICYgQ28uIEtHCiswMDEwMTkgICAgIChiYXNlIDE2KQkJU0lST05BIERFTlRBTCBTWVNURU1TIEdtYkggJiBDby4gS0cKKwkJCQlGQUJSSUtTVFJBU1NFIDMxCisJCQkJNjQ2MjUgQkVOU0hFSU0gIAorCQkJCUdFUk1BTlkKKworMDAtMTAtMUEgICAoaGV4KQkJUGljdHVyZVRlbCBDb3JwLgorMDAxMDFBICAgICAoYmFzZSAxNikJCVBpY3R1cmVUZWwgQ29ycC4KKwkJCQkxMDAgTUlOVVRFTUFOIFJPQUQsIE1TNjQxCisJCQkJQU5ET1ZFUiBNQSAwMTgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMUIgICAoaGV4KQkJQ09STkVUIFRFQ0hOT0xPR1ksIElOQy4KKzAwMTAxQiAgICAgKGJhc2UgMTYpCQlDT1JORVQgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTdGLTQsIE5PLiA0NiBDSFVORyBTSEFOIE4uUk9BRAorCQkJCVNFQy4gMiwgVEFJUEVJICAKKwkJCQlUQUpJS0lTVEFOCisKKzAwLTEwLTFDICAgKGhleCkJCU9ITSBURUNITk9MT0dJRVMgSU5UTCwgTExDCiswMDEwMUMgICAgIChiYXNlIDE2KQkJT0hNIFRFQ0hOT0xPR0lFUyBJTlRMLCBMTEMKKwkJCQk0IEVYRUNVVElWRSBDSVJDTEUsIFN1aXRlIDE4NQorCQkJCUlSVklORSBDQSA5MjYxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMUQgICAoaGV4KQkJV0lOQk9ORCBFTEVDVFJPTklDUyBDT1JQLgorMDAxMDFEICAgICAoYmFzZSAxNikJCVdJTkJPTkQgRUxFQ1RST05JQ1MgQ09SUC4KKwkJCQlOTy4gNCwgQ1JFQVRJT04gUkQuIElJSQorCQkJCVNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLCisJCQkJSFNJTiBDSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtMUUgICAoaGV4KQkJTUFUU1VTSElUQSBFTEVDVFJPTklDIElOU1RSVU1FTlRTIENPUlAuCiswMDEwMUUgICAgIChiYXNlIDE2KQkJTUFUU1VTSElUQSBFTEVDVFJPTklDIElOU1RSVU1FTlRTIENPUlAuCisJCQkJMjMtOSBLSVlPSEFSQSBJTkRVU1RSSUFMIFBBUksKKwkJCQlVVFNVTk9NSVlBIFRvY2hpZ2kgMzIxLTMyICAKKwkJCQlKQVBBTgorCiswMC0xMC0xRiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDEwMUYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFIuCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMjAgICAoaGV4KQkJSGFuZCBIZWxkIFByb2R1Y3RzIEluYworMDAxMDIwICAgICAoYmFzZSAxNikJCUhhbmQgSGVsZCBQcm9kdWN0cyBJbmMKKwkJCQk3MDAgVmlzaW9ucyBEcml2ZQorCQkJCVNrYW5lYXRlbGVzIEZhbGxzIE5ZIDEzMTUzLTAyMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTIxICAgKGhleCkJCUVOQ0FOVE8gTkVUV09SS1MsIElOQy4KKzAwMTAyMSAgICAgKGJhc2UgMTYpCQlFTkNBTlRPIE5FVFdPUktTLCBJTkMuCisJCQkJMjk1MyBCVU5LRVIgSElMTCBMQU5FCisJCQkJU1VJVEUgIzQwMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0yMiAgIChoZXgpCQlTYXRDb20gTWVkaWEgQ29ycG9yYXRpb24KKzAwMTAyMiAgICAgKGJhc2UgMTYpCQlTYXRDb20gTWVkaWEgQ29ycG9yYXRpb24KKwkJCQkzMjU1LTcgU0NPVFQgQkxWRC4KKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMjMgICAoaGV4KQkJTmV0d29yayBFcXVpcG1lbnQgVGVjaG5vbG9naWVzCiswMDEwMjMgICAgIChiYXNlIDE2KQkJTmV0d29yayBFcXVpcG1lbnQgVGVjaG5vbG9naWVzCisJCQkJNjkwMCBQYXNlbyBQYWRyZSBQYXJrd2F5CisJCQkJRnJlZW1vbnQgQ0EgOTQ1NTUtMzY2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMjQgICAoaGV4KQkJTkFHT1lBIEVMRUNUUklDIFdPUktTIENPLiwgTFRECiswMDEwMjQgICAgIChiYXNlIDE2KQkJTkFHT1lBIEVMRUNUUklDIFdPUktTIENPLiwgTFRECisJCQkJMjktMSBTSElOT0RBLCBNSVdBLUNITworCQkJCUFNQS1HVU4sIEFJQ0hJIDQ5MC0xMiAgCisJCQkJSkFQQU4KKworMDAtMTAtMjUgICAoaGV4KQkJR3JheWhpbGwsIEluYworMDAxMDI1ICAgICAoYmFzZSAxNikJCUdyYXloaWxsLCBJbmMKKwkJCQk1NjEgSGlsbGdyb3ZlIEF2ZQorCQkJCUxhR3JhbmdlIElMIDYwNTI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0yNiAgIChoZXgpCQlBQ0NFTEVSQVRFRCBORVRXT1JLUywgSU5DLgorMDAxMDI2ICAgICAoYmFzZSAxNikJCUFDQ0VMRVJBVEVEIE5FVFdPUktTLCBJTkMuCisJCQkJMzEyMzggVklBIENPTElOQVMsIFVOSVQKKwkJCQlXRVNUTEFLRSBWSUxMQUdFIENBIDkxMzYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0yNyAgIChoZXgpCQlMLTMgQ09NTVVOSUNBVElPTlMgRUFTVAorMDAxMDI3ICAgICAoYmFzZSAxNikJCUwtMyBDT01NVU5JQ0FUSU9OUyBFQVNUCisJCQkJT05FIEZFREVSQUwgU1RSRUVUIC0gQSZFLTNFUworCQkJCUNBTURFTiBOSiAwODEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMjggICAoaGV4KQkJQ09NUFVURVIgVEVDSE5JQ0EsIElOQy4KKzAwMTAyOCAgICAgKGJhc2UgMTYpCQlDT01QVVRFUiBURUNITklDQSwgSU5DLgorCQkJCTMtNS0xOSBISUdBU0hJTkFLQSBIQUtBVEEtS1UKKwkJCQlGVUtVT0tBLVNJCisJCQkJRlVLVU9LQSAgODE2ICAKKwkJCQlKQVBBTgorCiswMC0xMC0yOSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDEwMjkgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0yQSAgIChoZXgpCQlaRiBNSUNST1NZU1RFTVMsIElOQy4KKzAwMTAyQSAgICAgKGJhc2UgMTYpCQlaRiBNSUNST1NZU1RFTVMsIElOQy4KKwkJCQkxMDUyIEVMV0VMTCBDT1VSVAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMy00MzA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0yQiAgIChoZXgpCQlVTUFYIERBVEEgU1lTVEVNUywgSU5DLgorMDAxMDJCICAgICAoYmFzZSAxNikJCVVNQVggREFUQSBTWVNURU1TLCBJTkMuCisJCQkJTk8uIDEtMSwgUiZEIFJPQUQgMgorCQkJCVNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLCisJCQkJSFNJTkNIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC0yQyAgIChoZXgpCQlMYXNhdCBOZXR3b3JrcyBBL1MKKzAwMTAyQyAgICAgKGJhc2UgMTYpCQlMYXNhdCBOZXR3b3JrcyBBL1MKKwkJCQlTa2FsaHVzZSAxMworCQkJCVNLLTkyNDAgTmliZSAgCisJCQkJREVOTUFSSworCiswMC0xMC0yRCAgIChoZXgpCQlISVRBQ0hJIFNPRlRXQVJFIEVOR0lORUVSSU5HCiswMDEwMkQgICAgIChiYXNlIDE2KQkJSElUQUNISSBTT0ZUV0FSRSBFTkdJTkVFUklORworCQkJCTUtNzksIE9OT0VDSE8sIE5BS0EtS1UKKwkJCQlZT0tPSEFNQSAyMzEgIAorCQkJCUpBUEFOCisKKzAwLTEwLTJFICAgKGhleCkJCU5FVFdPUksgU1lTVEVNUyAmIFRFQ0hOT0xPR0lFUyBQVlQuIExURC4KKzAwMTAyRSAgICAgKGJhc2UgMTYpCQlORVRXT1JLIFNZU1RFTVMgJiBURUNITk9MT0dJRVMgUFZULiBMVEQuCisJCQkJUExPVCBOTy4gMiwgQ09DSElOIEVYUE9SVCBQUk9DRVNTSU5HICBaTworCQkJCUtBS0tBTkFELCBDT0NISU4gNjgyIDAzMCAgCisJCQkJSU5ESUEKKworMDAtMTAtMkYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAxMDJGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSLgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTMwICAgKGhleCkJCUVJT04gSW5jLgorMDAxMDMwICAgICAoYmFzZSAxNikJCUVJT04gSW5jLgorCQkJCTMyMCBNYXJjaCBSb2FkCisJCQkJU3VpdGUgNTAwCisJCQkJT3R0YXdhIE9OIEsySyAyRTMKKwkJCQlDQU5BREEKKworMDAtMTAtMzEgICAoaGV4KQkJT0JKRUNUSVZFIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDEwMzEgICAgIChiYXNlIDE2KQkJT0JKRUNUSVZFIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJNzUgUk9DSEVTVEVSIEFWRS4KKwkJCQlVTklUIDEKKwkJCQlQT1JUU01PVVRIIE5IIDAzODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0zMiAgIChoZXgpCQlBTFRBIFRFQ0hOT0xPR1kKKzAwMTAzMiAgICAgKGJhc2UgMTYpCQlBTFRBIFRFQ0hOT0xPR1kKKwkJCQk5NTAwIFNPVVRIIDUwMCBXRVNUIC0gU1RFICMyMTIKKwkJCQlTQU5EWSBVVCA4NDA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtMzMgICAoaGV4KQkJQUNDRVNTTEFOIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDEwMzMgICAgIChiYXNlIDE2KQkJQUNDRVNTTEFOIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJNDQgQUlSUE9SVCBQQVJLV0FZCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTM0ICAgKGhleCkJCUdOUCBDb21wdXRlcnMKKzAwMTAzNCAgICAgKGJhc2UgMTYpCQlHTlAgQ29tcHV0ZXJzCisJCQkJNTU1IEUuSHVudGluZ3RvbiBEcml2ZQorCQkJCU1vbnJvdmlhIENBIDkxMDE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0zNSAgIChoZXgpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTVMgQ08uLCBMVEQKKzAwMTAzNSAgICAgKGJhc2UgMTYpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTVMgQ08uLCBMVEQKKwkJCQk2RiwgTk8uIDg4LCBTRUMuIDYKKwkJCQlDSFVORyBTSEFOIE4uIFJELgorCQkJCVNoaWggTGluIFRBSVBFSSAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEwLTM2ICAgKGhleCkJCUlOVEVSLVRFTCBJTlRFR1JBVEVEIFNZU1RFTVMKKzAwMTAzNiAgICAgKGJhc2UgMTYpCQlJTlRFUi1URUwgSU5URUdSQVRFRCBTWVNURU1TCisJCQkJNzMwMCBXLiBCT1NUT04gU1RSRUVUCisJCQkJQ0hBTkRMRVIgQVogODUyMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTM3ICAgKGhleCkJCUNZUSd2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxMDM3ICAgICAoYmFzZSAxNikJCUNZUSd2ZSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCUNPU01PIEJMREcuIDEwRiwgTk8uMS03CisJCQkJU0hJTkpVS1UgMS1DSE9NRQorCQkJCVNISU5KVUtVLUtVLCAgVE9LWU8gMTYwICAKKwkJCQlKQVBBTgorCiswMC0xMC0zOCAgIChoZXgpCQlNSUNSTyBSRVNFQVJDSCBJTlNUSVRVVEUsIElOQy4KKzAwMTAzOCAgICAgKGJhc2UgMTYpCQlNSUNSTyBSRVNFQVJDSCBJTlNUSVRVVEUsIElOQy4KKwkJCQkyRiwgMkwtMi01IE1JTkFNSSBTSElOQUdBV0EKKwkJCQlTSElOQUdBV0EtS1UKKwkJCQlUT0tZTyAgCisJCQkJSkFQQU4KKworMDAtMTAtMzkgICAoaGV4KQkJVmVjdHJvbiBTeXN0ZW1zIEFHCiswMDEwMzkgICAgIChiYXNlIDE2KQkJVmVjdHJvbiBTeXN0ZW1zIEFHCisJCQkJV2lsbHktQnJhbmR0LVdlZyA0MQorCQkJCTQ4MTU1IE11ZW5zdGVyICAKKwkJCQlHRVJNQU5ZCisKKzAwLTEwLTNBICAgKGhleCkJCURJQU1PTkQgTkVUV09SSyBURUNICiswMDEwM0EgICAgIChiYXNlIDE2KQkJRElBTU9ORCBORVRXT1JLIFRFQ0gKKwkJCQlQLk8uIEJPWCA4NDUyNQorCQkJCUdSRUVOU0lERSAyMDM0ICAKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMTAtM0IgICAoaGV4KQkJSElQUEkgTkVUV09SS0lORyBGT1JVTQorMDAxMDNCICAgICAoYmFzZSAxNikJCUhJUFBJIE5FVFdPUktJTkcgRk9SVU0KKwkJCQlQTyBCT1ggMTAxNzMKKwkJCQlBTEJVUVVFUlFVRSBOTSA4NzE4NC0wMTczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0zQyAgIChoZXgpCQlJQyBFTlNFTUJMRSwgSU5DLgorMDAxMDNDICAgICAoYmFzZSAxNikJCUlDIEVOU0VNQkxFLCBJTkMuCisJCQkJMzI1NS0yIFNDT1RUIEJMVkQuLS1TVEUuIzEwNQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0zRCAgIChoZXgpCQlQSEFTRUNPTSwgTFRELgorMDAxMDNEICAgICAoYmFzZSAxNikJCVBIQVNFQ09NLCBMVEQuCisJCQkJUC5PLiBCT1ggNDUwMTcKKwkJCQlKRVJVU0FMRU0gOTE0NTAgIAorCQkJCUlTUkFFTAorCiswMC0xMC0zRSAgIChoZXgpCQlORVRTQ0hPT0xTIENPUlBPUkFUSU9OCiswMDEwM0UgICAgIChiYXNlIDE2KQkJTkVUU0NIT09MUyBDT1JQT1JBVElPTgorCQkJCTIwMDMgTEFORElOR1MgRFJJVkUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC0zRiAgIChoZXgpCQlUT0xMR1JBREUgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMTAzRiAgICAgKGJhc2UgMTYpCQlUT0xMR1JBREUgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk0OTMgTklYT04gUk9BRAorCQkJCUNIRVNXSUNLIFBBIDE1MDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00MCAgIChoZXgpCQlJTlRFUk1FQyBDT1JQT1JBVElPTgorMDAxMDQwICAgICAoYmFzZSAxNikJCUlOVEVSTUVDIENPUlBPUkFUSU9OCisJCQkJNjAwMSAzNlRIIEFWRSBXRVNUCisJCQkJUC5PLiBCT1ggNDI4MAorCQkJCUVWRVJFVFQgV0EgOTgyMDMtOTI4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNDEgICAoaGV4KQkJQlJJU1RPTCBCQUJDT0NLLCBJTkMuCiswMDEwNDEgICAgIChiYXNlIDE2KQkJQlJJU1RPTCBCQUJDT0NLLCBJTkMuCisJCQkJMTEwMCBCVUNLSU5HSEFNIFNUUkVFVAorCQkJCVdBVEVSVE9XTiBDVCAwNjc5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNDIgICAoaGV4KQkJQWxhY3JpdGVjaCwgSW5jLgorMDAxMDQyICAgICAoYmFzZSAxNikJCUFsYWNyaXRlY2gsIEluYy4KKwkJCQkxOTk1IE4uIEZpcnN0IFN0cmVldAorCQkJCVN1aXRlIDIwMAorCQkJCVNhbiBKb3NlIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00MyAgIChoZXgpCQlBMiBDT1JQT1JBVElPTgorMDAxMDQzICAgICAoYmFzZSAxNikJCUEyIENPUlBPUkFUSU9OCisJCQkJNi0xNC0xMSBZVVRBS0EtQ0hPCisJCQkJU0hJTkFHQVdBLUtVCisJCQkJVE9LWU8gIAorCQkJCUpBUEFOCisKKzAwLTEwLTQ0ICAgKGhleCkJCUlubm9MYWJzIENvcnBvcmF0aW9uCiswMDEwNDQgICAgIChiYXNlIDE2KQkJSW5ub0xhYnMgQ29ycG9yYXRpb24KKwkJCQkyRi00LCBOTy4gMTYsIExBTkUgNjA5LCBDSFVORy1IU0lOIFJELgorCQkJCVNFQy4gNSBTQU4tQ0hVTkcgQ0lUWQorCQkJCVRhaXBlaSBIc2llbiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC00NSAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMTA0NSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlPUFRlcmEgU29sdXRpb25zIERpdmlzaW9uCisJCQkJMzQwIFRlcnJ5IEZveCBEcml2ZQorCQkJCUthbmF0YSBPbnRhcmlvIEsySy0yWDMgCisJCQkJQ0FOQURBCisKKzAwLTEwLTQ2ICAgKGhleCkJCUFMQ09STiBNQ0JSSURFIElOQy4KKzAwMTA0NiAgICAgKGJhc2UgMTYpCQlBTENPUk4gTUNCUklERSBJTkMuCisJCQkJMzMwMCBTLiBISUFXQVNTRUUgICMxMDUKKwkJCQlPUkxBTkRPIEZMIDMyODM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00NyAgIChoZXgpCQlFQ0hPIEVMRVRSSUMgQ08uIExURC4KKzAwMTA0NyAgICAgKGJhc2UgMTYpCQlFQ0hPIEVMRVRSSUMgQ08uIExURC4KKwkJCQlOTy4xODAwIElDSElHQU8gQ0hPCisJCQkJTUlET1JJIFdBUkQKKwkJCQlZT0tPSEFNQSBDSVRZICAyMjUKKwkJCQlKQVBBTgorCiswMC0xMC00OCAgIChoZXgpCQlIVFJDIEFVVE9NQVRJT04sIElOQy4KKzAwMTA0OCAgICAgKGJhc2UgMTYpCQlIVFJDIEFVVE9NQVRJT04sIElOQy4KKwkJCQkyODUgTEFWQUwgU1RSRUVUCisJCQkJQlJPTVBUT05WSUxMRQorCQkJCVFVRUJFQyBKMEIgMUgwICAKKwkJCQlDQU5BREEKKworMDAtMTAtNDkgICAoaGV4KQkJU2hvcmVUZWwsIEluYworMDAxMDQ5ICAgICAoYmFzZSAxNikJCVNob3JlVGVsLCBJbmMKKwkJCQk5NjAgU3Rld2FydCBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNEEgICAoaGV4KQkJVGhlIFBhcnZ1cyBDb3Jwb3JhdGlvbgorMDAxMDRBICAgICAoYmFzZSAxNikJCVRoZSBQYXJ2dXMgQ29ycG9yYXRpb24KKwkJCQkzMjIyIFMgV2FzaGluZ3RvbiBTdC4KKwkJCQlTYWx0IExha2UgQ2l0eSBVVCA4NDExNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNEIgICAoaGV4KQkJM0NPTSBDT1JQT1JBVElPTgorMDAxMDRCICAgICAoYmFzZSAxNikJCTNDT00gQ09SUE9SQVRJT04KKwkJCQk1NDAwIEJBWUZST05UIFBMQVpBCisJCQkJTUFJTFNUT1A6IDQyMjAKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNEMgICAoaGV4KQkJTGVDcm95IENvcnBvcmF0aW9uCiswMDEwNEMgICAgIChiYXNlIDE2KQkJTGVDcm95IENvcnBvcmF0aW9uCisJCQkJMzM4NSBTY290dCBCbHZkLgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC00RCAgIChoZXgpCQlTVVJURUMgSU5EVVNUUklFUywgSU5DLgorMDAxMDREICAgICAoYmFzZSAxNikJCVNVUlRFQyBJTkRVU1RSSUVTLCBJTkMuCisJCQkJTk8uMTEsIEFMTEVZIDE2LCBMQU5FIDMzNworCQkJCVRBLVRVTkcgUk9BRCBTRUMuMSwgU0hJLUNISUgKKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtNEUgICAoaGV4KQkJQ0VPTE9HSUMKKzAwMTA0RSAgICAgKGJhc2UgMTYpCQlDRU9MT0dJQworCQkJCVpBIERFIFBJU1NBTE9PUAorCQkJCVJVRSBFRE9VQVJEIEJSQU5MWQorCQkJCTc4MTkyIFRSQVBQRVMgIAorCQkJCUZSQU5DRQorCiswMC0xMC00RiAgIChoZXgpCQlPcmFjbGUgQ29ycG9yYXRpb24KKzAwMTA0RiAgICAgKGJhc2UgMTYpCQlPcmFjbGUgQ29ycG9yYXRpb24KKwkJCQkxNyBOZXR3b3JrIENpcmNsZQorCQkJCUJ1aWxkaW5nIDE3LCBVTVBLMTctMTMxCisJCQkJTWVubG8gUGFyayBDQSA5NTAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNTAgICAoaGV4KQkJUklPTiBDTy4sIExURC4KKzAwMTA1MCAgICAgKGJhc2UgMTYpCQlSSU9OIENPLiwgTFRELgorCQkJCTMtMjAtNDEgSElHQVNISU1PVE9NQUNISQorCQkJCUtPS1VCVU5KSSwgVE9LWU8gMTg1ICAKKwkJCQlKQVBBTgorCiswMC0xMC01MSAgIChoZXgpCQlDTUlDUk8gQ09SUE9SQVRJT04KKzAwMTA1MSAgICAgKGJhc2UgMTYpCQlDTUlDUk8gQ09SUE9SQVRJT04KKwkJCQkxNy0yMC0yIEtBTUlOTy1DSE8KKwkJCQlUQUtBTUFUU1UtU0hJLCBLQUdBV0EgNzYxICAKKwkJCQlKQVBBTgorCiswMC0xMC01MiAgIChoZXgpCQlNRVRUTEVSLVRPTEVETyAoQUxCU1RBRFQpIEdNQkgKKzAwMTA1MiAgICAgKGJhc2UgMTYpCQlNRVRUTEVSLVRPTEVETyAoQUxCU1RBRFQpIEdNQkgKKwkJCQlQLk8uIEJPWCAyIDUwCisJCQkJRC03MjQyMyBBTEJTVEFEVCAgCisJCQkJR0VSTUFOWQorCiswMC0xMC01MyAgIChoZXgpCQlDT01QVVRFUiBURUNITk9MT0dZIENPUlAuCiswMDEwNTMgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgVEVDSE5PTE9HWSBDT1JQLgorCQkJCTUwIFcuIFRFQ0hORUNFTlRFUiBEUklWRQorCQkJCU1JTEZPUkQgT0ggNDUxNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTU0ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTA1NCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTU1ICAgKGhleCkJCUZVSklUU1UgTUlDUk9FTEVDVFJPTklDUywgSU5DLgorMDAxMDU1ICAgICAoYmFzZSAxNikJCUZVSklUU1UgTUlDUk9FTEVDVFJPTklDUywgSU5DLgorCQkJCTM1NDUgTk9SVEggRklSU1QgU1RSRUVUCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNTYgICAoaGV4KQkJU09ESUNLIENPLiwgTFRELgorMDAxMDU2ICAgICAoYmFzZSAxNikJCVNPRElDSyBDTy4sIExURC4KKwkJCQkzLTEyLTEgTkFLQU1BQ0hJREFJCisJCQkJVFNVWlVLSS1LVSwgWU9LT0hBTUEgS0FOQUdBV0EgMjI0IAorCQkJCUpBUEFOCisKKzAwLTEwLTU3ICAgKGhleCkJCVJlYmVsLmNvbSwgSW5jLgorMDAxMDU3ICAgICAoYmFzZSAxNikJCVJlYmVsLmNvbSwgSW5jLgorCQkJCTE1MCBJU0FCRUxMQSBTVFJFRVQtLVNURS4gMTAwMAorCQkJCU9UVEFXQSwgT05UQVJJTyBLMVMgMVY3ICAKKwkJCQlDQU5BREEKKworMDAtMTAtNTggICAoaGV4KQkJQXJyb3dQb2ludCBDb21tdW5pY2F0aW9ucworMDAxMDU4ICAgICAoYmFzZSAxNikJCUFycm93UG9pbnQgQ29tbXVuaWNhdGlvbnMKKwkJCQkyMzUgTElUVExFVE9OIFJPQUQKKwkJCQlXRVNURk9SRCBNQSAwMTg4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNTkgICAoaGV4KQkJRElBQkxPIFJFU0VBUkNIIENPLiBMTEMKKzAwMTA1OSAgICAgKGJhc2UgMTYpCQlESUFCTE8gUkVTRUFSQ0ggQ08uIExMQworCQkJCTgyNSBTVEVXQVJUIERSSVZFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC01QSAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMDEwNUEgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQkFZRlJPTlQgUExBWkEKKwkJCQlNQUlMU1RPUDogIDQyMjAKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNUIgICAoaGV4KQkJTkVUIElOU0lHSFQgQUIKKzAwMTA1QiAgICAgKGJhc2UgMTYpCQlORVQgSU5TSUdIVCBBQgorCQkJCVbDpHN0YmVyZ2EgQWxsw6kgOQorCQkJCVNFLTEyNjAgMzAgSMOkZ2Vyc3RlbiAKKwkJCQlTV0VERU4KKworMDAtMTAtNUMgICAoaGV4KQkJUVVBTlRVTSBERVNJR05TIChILksuKSBMVEQuCiswMDEwNUMgICAgIChiYXNlIDE2KQkJUVVBTlRVTSBERVNJR05TIChILksuKSBMVEQuCisJCQkJNS9GLiwgU09NRVJTRVQgSE9VU0UsIFRBSUtPTyBQTEFDRQorCQkJCTk3OSBLSU5HJ1MgUk9BRCwKKwkJCQlRVUFSUlkgQkFZICAKKwkJCQlIT05HIEtPTkcKKworMDAtMTAtNUQgICAoaGV4KQkJRHJhZWdlciBNZWRpY2FsCiswMDEwNUQgICAgIChiYXNlIDE2KQkJRHJhZWdlciBNZWRpY2FsCisJCQkJTW9pc2xpbmdlciBBbGxlZSA1My01NQorCQkJCUx1ZWJlY2sgIEQtMjM1NDIKKwkJCQlHRVJNQU5ZCisKKzAwLTEwLTVFICAgKGhleCkJCUhFS0lNSUFOIExBQk9SQVRPUklFUywgSU5DLgorMDAxMDVFICAgICAoYmFzZSAxNikJCUhFS0lNSUFOIExBQk9SQVRPUklFUywgSU5DLgorCQkJCTE1MjAwIE9NRUdBIERSSVZFCisJCQkJUk9DS1ZJTExFIE1EIDIwODUwLTMyNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTVGICAgKGhleCkJCVpPRElBQyBEQVRBIFNZU1RFTVMKKzAwMTA1RiAgICAgKGJhc2UgMTYpCQlaT0RJQUMgREFUQSBTWVNURU1TCisJCQkJNSBBdiBEZXMgQW5kZXMKKwkJCQlMZXMgVWxpcyAgOTE5NDAKKwkJCQlGUkFOQ0UKKworMDAtMTAtNjAgICAoaGV4KQkJQklMTElPTlRPTiBTWVNURU1TLCBJTkMuCiswMDEwNjAgICAgIChiYXNlIDE2KQkJQklMTElPTlRPTiBTWVNURU1TLCBJTkMuCisJCQkJM0YtMSwgTk8uIDgsIExBTkUgOTkKKwkJCQlQVS1ESU5HIFJELgorCQkJCUhTSU4tQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEwLTYxICAgKGhleCkJCUhPU1RMSU5LIENPUlAuCiswMDEwNjEgICAgIChiYXNlIDE2KQkJSE9TVExJTksgQ09SUC4KKwkJCQkxMEYtMSwgTk8uIDE4MQorCQkJCVNFQy4xLCBUQS1UVU5HIFJELgorCQkJCUhTSS1DSElILCBUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtNjIgICAoaGV4KQkJTlggU0VSVkVSLCBJTE5DLgorMDAxMDYyICAgICAoYmFzZSAxNikJCU5YIFNFUlZFUiwgSUxOQy4KKwkJCQk1NDAxIEUuIExBIFBBTE1BIEFWRS4KKwkJCQlBTkFIRUlNIENBIDkyODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC02MyAgIChoZXgpCQlTVEFSR1VJREUgRElHSVRBTCBORVRXT1JLUworMDAxMDYzICAgICAoYmFzZSAxNikJCVNUQVJHVUlERSBESUdJVEFMIE5FVFdPUktTCisJCQkJNTc1NCBQQUNJRklDIENFTlRFUiBCTFZELgorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNjQgICAoaGV4KQkJRE5QRywgTExDCiswMDEwNjQgICAgIChiYXNlIDE2KQkJRE5QRywgTExDCisJCQkJMjAgTm9ydGggV2VudHdvcnRoIEF2ZW51ZQorCQkJCUxvbmRvbmRlcnJ5IE5IIDAzMDUzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC02NSAgIChoZXgpCQlSQURZTkUgQ09SUE9SQVRJT04KKzAwMTA2NSAgICAgKGJhc2UgMTYpCQlSQURZTkUgQ09SUE9SQVRJT04KKwkJCQk1MjI1IFMuIDM3VEggU1RSRUVUCisJCQkJUEhPRU5JWCBBWiA4NTA0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNjYgICAoaGV4KQkJQURWQU5DRUQgQ09OVFJPTCBTWVNURU1TLCBJTkMuCiswMDEwNjYgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgQ09OVFJPTCBTWVNURU1TLCBJTkMuCisJCQkJMjc1NSBOT1JUSFdPT0RTIFBBUktXQVkKKwkJCQlOT1JDUk9TUyBHQSAzMDA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNjcgICAoaGV4KQkJRXJpY3Nzb24KKzAwMTA2NyAgICAgKGJhc2UgMTYpCQlFcmljc3NvbgorCQkJCTEwMCBIZWFkcXVhcnRlcnMgRHJpdmUKKwkJCQlTVUlURSAjNDEwCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTY4ICAgKGhleCkJCUNPTU9TIFRFTEVDT00KKzAwMTA2OCAgICAgKGJhc2UgMTYpCQlDT01PUyBURUxFQ09NCisJCQkJU0FFSEFOIEIvRC8sIDI3LTEgU1VQWU8tRE9ORworCQkJCUNIVU5HLUdVLCBTRU9VTCAxMDAtMjMwICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTAtNjkgICAoaGV4KQkJSEVMSU9TUyBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDAxMDY5ICAgICAoYmFzZSAxNikJCUhFTElPU1MgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkzOTEgVE9UVEVNIFBPTkQgUkQuLSBTVEUjMzAzCisJCQkJV0FMVEhBTSBNQSAwMjE1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNkEgICAoaGV4KQkJRElHSVRBTCBNSUNST1dBVkUgQ09SUE9SQVRJT04KKzAwMTA2QSAgICAgKGJhc2UgMTYpCQlESUdJVEFMIE1JQ1JPV0FWRSBDT1JQT1JBVElPTgorCQkJCTE3MCBST1NFIE9SQ0hBUkQgV0FZCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTZCICAgKGhleCkJCVNPTlVTIE5FVFdPUktTLCBJTkMuCiswMDEwNkIgICAgIChiYXNlIDE2KQkJU09OVVMgTkVUV09SS1MsIElOQy4KKwkJCQk1IENBUkxJU0xFIFJPQUQKKwkJCQlXRVNURk9SRCBNQSAwMTg4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNkMgICAoaGV4KQkJSW5mcmF0ZWMgQUcKKzAwMTA2QyAgICAgKGJhc2UgMTYpCQlJbmZyYXRlYyBBRworCQkJCVdlcm5lci12b24tU2llbWVucy1TdHIuIDcKKwkJCQk2NDYyNSBCZW5zaGVpbSAKKwkJCQlHRVJNQU5ZCisKKzAwLTEwLTZEICAgKGhleCkJCUF4eGNlbGVyYSBCcm9hZGJhbmQgV2lyZWxlc3MKKzAwMTA2RCAgICAgKGJhc2UgMTYpCQlBeHhjZWxlcmEgQnJvYWRiYW5kIFdpcmVsZXNzCisJCQkJMTYwMCBFYXN0IFBhcmhhbSBSb2FkCisJCQkJUmljaG1vbmQgVkEgMjMyMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTZFICAgKGhleCkJCVRBRElSQU4gQ09NLiBMVEQuCiswMDEwNkUgICAgIChiYXNlIDE2KQkJVEFESVJBTiBDT00uIExURC4KKwkJCQkyNiBIQVNIT0ZUSU0gU1QuCisJCQkJSE9MT04gIDU4MTAyICAKKwkJCQlJU1JBRUwKKworMDAtMTAtNkYgICAoaGV4KQkJVFJFTlRPTiBURUNITk9MT0dZIElOQy4KKzAwMTA2RiAgICAgKGJhc2UgMTYpCQlUUkVOVE9OIFRFQ0hOT0xPR1kgSU5DLgorCQkJCTIzNTAgQ0VOVEVOTklBTCBEUklWRQorCQkJCUdBSU5FU1ZJTExFIEdBIDMwNTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC03MCAgIChoZXgpCQlDQVJBRE9OIFRSRU5EIExURC4KKzAwMTA3MCAgICAgKGJhc2UgMTYpCQlDQVJBRE9OIFRSRU5EIExURC4KKwkJCQlQLk8uIEJPWCAzNCwgSE9SU0hBTQorCQkJCVdFU1QgU1VTU0VYLCBSSDEyIDJZRiBFTkdMQU5EIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEwLTcxICAgKGhleCkJCUFEVkFORVQgSU5DLgorMDAxMDcxICAgICAoYmFzZSAxNikJCUFEVkFORVQgSU5DLgorCQkJCTMtMjAtOCBOT0RBCisJCQkJT0tBWUFNSSA3MDAgCisJCQkJSkFQQU4KKworMDAtMTAtNzIgICAoaGV4KQkJR1ZOIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAxMDcyICAgICAoYmFzZSAxNikJCUdWTiBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk4MjAwIEJSWUFOIERBSVJZIFJPQUQKKwkJCQlTVUlURSAjMTAwCisJCQkJTEFSR08gRkwgMzM3NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTczICAgKGhleCkJCVRlY2hub2JveCwgSW5jLgorMDAxMDczICAgICAoYmFzZSAxNikJCVRlY2hub2JveCwgSW5jLgorCQkJCTE0MCBNb3VudCBIb2xseSBCeXBhc3MKKwkJCQlVbml0IDEKKwkJCQlMdW1iZXJ0b24gTkogMDgwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTc0ICAgKGhleCkJCUFURU4gSU5URVJOQVRJT05BTCBDTy4sIExURC4KKzAwMTA3NCAgICAgKGJhc2UgMTYpCQlBVEVOIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCisJCQkJMTJGLCBOTy4xMDEsIFNVTkcgQ0hJQU5HIFJELgorCQkJCVRBSVBFSSwgMTA0MjggIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtNzUgICAoaGV4KQkJTWF4dG9yIENvcnBvcmF0aW9uCiswMDEwNzUgICAgIChiYXNlIDE2KQkJTWF4dG9yIENvcnBvcmF0aW9uCisJCQkJMjQ1MiBDbG92ZXIgQmFzaW4gRHIuCisJCQkJTG9nbW9udCBDTyA4MDUwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNzYgICAoaGV4KQkJRVVSRU0gR21iSAorMDAxMDc2ICAgICAoYmFzZSAxNikJCUVVUkVNIEdtYkgKKwkJCQlKVUxJQ0hFUiBTVFIuIDMzOEIKKwkJCQlELTUyMDcwIEFBQ0hFTiAgCisJCQkJR0VSTUFOWQorCiswMC0xMC03NyAgIChoZXgpCQlTQUYgRFJJVkUgU1lTVEVNUywgTFRELgorMDAxMDc3ICAgICAoYmFzZSAxNikJCVNBRiBEUklWRSBTWVNURU1TLCBMVEQuCisJCQkJODggQVJERUxUIEFWRS4KKwkJCQlLSVRDSEVORVIsIE9OVEFSSU8gTjJDIDJDOSAgCisJCQkJQ0FOQURBCisKKzAwLTEwLTc4ICAgKGhleCkJCU5VRVJBIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDEwNzggICAgIChiYXNlIDE2KQkJTlVFUkEgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxMDQ0NSBQQUNJRklDIENFTlRFUiBDT1VSVAorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtNzkgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAxMDc5ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSLgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTdBICAgKGhleCkJCUFtYmlDb20sIEluYy4KKzAwMTA3QSAgICAgKGJhc2UgMTYpCQlBbWJpQ29tLCBJbmMuCisJCQkJMjQ1MCBTQ09UVCBCTFZELiwgIzMwNQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC03QiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDEwN0IgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLlRBU01BTiBEUi4tU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC03QyAgIChoZXgpCQlQLUNPTSwgSU5DLgorMDAxMDdDICAgICAoYmFzZSAxNikJCVAtQ09NLCBJTkMuCisJCQkJMzE3NSBTLiBXSU5DSEVTVEVSIEJMVkQuCisJCQkJQ0FNUEJFTEwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTdEICAgKGhleCkJCUFVUk9SQSBDT01NVU5JQ0FUSU9OUywgTFRELgorMDAxMDdEICAgICAoYmFzZSAxNikJCUFVUk9SQSBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCVAuTy4gQk9YIDE5NDIKKwkJCQlNQUNRVUFSSUUgQ0VOVFJFLCBOT1JUSCBSWURFCisJCQkJTlNXIDIxMTMgIAorCQkJCUFVU1RSQUxJQQorCiswMC0xMC03RSAgIChoZXgpCQlCQUNITUFOTiBFTEVDVFJPTklDIEdtYkgKKzAwMTA3RSAgICAgKGJhc2UgMTYpCQlCQUNITUFOTiBFTEVDVFJPTklDIEdtYkgKKwkJCQlLUkVVWkFFQ0tFUldFRyAzMworCQkJCUEgNjgwNiBGRUxES0lSQ0ggIAorCQkJCUFVU1RSSUEKKworMDAtMTAtN0YgICAoaGV4KQkJQ1JFU1RST04gRUxFQ1RST05JQ1MsIElOQy4KKzAwMTA3RiAgICAgKGJhc2UgMTYpCQlDUkVTVFJPTiBFTEVDVFJPTklDUywgSU5DLgorCQkJCTEwMSBCUk9BRFdBWQorCQkJCUNSRVNTS0lMTCBOSiAwNzYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODAgICAoaGV4KQkJTUVUQVdBVkUgQ09NTVVOSUNBVElPTlMKKzAwMTA4MCAgICAgKGJhc2UgMTYpCQlNRVRBV0FWRSBDT01NVU5JQ0FUSU9OUworCQkJCTg3MDAgMTQ4VEggQVZFTlVFIE4uRS4KKwkJCQlSRURNT05EIFdBIDk4MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC04MSAgIChoZXgpCQlEUFMsIElOQy4KKzAwMTA4MSAgICAgKGJhc2UgMTYpCQlEUFMsIElOQy4KKwkJCQk0OTIyIEVBU1QgWUFMRSBBVkVOVUUKKwkJCQlGUkVTTk8gQ0EgOTM3MjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTgyICAgKGhleCkJCUpOQSBURUxFQ09NTVVOSUNBVElPTlMgTElNSVRFRAorMDAxMDgyICAgICAoYmFzZSAxNikJCUpOQSBURUxFQ09NTVVOSUNBVElPTlMgTElNSVRFRAorCQkJCTE2IFNNSVRIIFNULCBDSEFUU1dPT0QKKwkJCQlOU1cgMjA2NyAKKwkJCQlBVVNUUkFMSUEKKworMDAtMTAtODMgICAoaGV4KQkJSEVXTEVUVC1QQUNLQVJEIENPTVBBTlkKKzAwMTA4MyAgICAgKGJhc2UgMTYpCQlIRVdMRVRULVBBQ0tBUkQgQ09NUEFOWQorCQkJCU1BSUwgU1RPUCA0MkxFCisJCQkJMTEwMDAwIFdPTEZFIFJPQUQKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTg0ICAgKGhleCkJCUstQk9UIENPTU1VTklDQVRJT05TCiswMDEwODQgICAgIChiYXNlIDE2KQkJSy1CT1QgQ09NTVVOSUNBVElPTlMKKwkJCQlQLk8uIEJPWCA0MTAKKwkJCQlOT1JUT04gTUEgMDI3NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTg1ICAgKGhleCkJCVBPTEFSSVMgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMTA4NSAgICAgKGJhc2UgMTYpCQlQT0xBUklTIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTAyMDAgU1cgQUxMRU4gQkxWRC4KKwkJCQlCRUFWRVJUT04gT1IgOTcwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTg2ICAgKGhleCkJCUFUVE8gVGVjaG5vbG9neSwgSW5jLgorMDAxMDg2ICAgICAoYmFzZSAxNikJCUFUVE8gVGVjaG5vbG9neSwgSW5jLgorCQkJCTE1NSBDcm9zc3BvaW50IFBrd3kuCisJCQkJQW1oZXJzdCBOWSAxNDA2OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtODcgICAoaGV4KQkJWHN0cmVhbWlzIFBMQworMDAxMDg3ICAgICAoYmFzZSAxNikJCVhzdHJlYW1pcyBQTEMKKwkJCQlPWEZPUkQgU0NJRU5DRSBQQVJLCisJCQkJRzEwLiAgMiBNQUdEQUxFTiBDRU5UUkUgUk9CRVJUIFJPQklOU09OCisJCQkJT1hGT1JEIDBYNCA0R0EgRW5nbGFuZCAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTg4ICAgKGhleCkJCUFNRVJJQ0FOIE5FVFdPUktTIElOQy4KKzAwMTA4OCAgICAgKGJhc2UgMTYpCQlBTUVSSUNBTiBORVRXT1JLUyBJTkMuCisJCQkJNjgwMCBPUkFOR0VUSE9SUEUgQVZFLiAjQQorCQkJCUJVRU5BIFBBUksgQ0EgOTA2MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTg5ICAgKGhleCkJCVdlYlNvbmljCiswMDEwODkgICAgIChiYXNlIDE2KQkJV2ViU29uaWMKKwkJCQkzNDY2IEVEV0FSRCBBVkUuCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLThBICAgKGhleCkJCVRlcmFMb2dpYywgSW5jLgorMDAxMDhBICAgICAoYmFzZSAxNikJCVRlcmFMb2dpYywgSW5jLgorCQkJCTcwNyBDQUxJRk9STklBIFNUUkVFVAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLThCICAgKGhleCkJCUxBU0VSQU5JTUFUSU9OIFNPTExJTkdFUiBHbWJICiswMDEwOEIgICAgIChiYXNlIDE2KQkJTEFTRVJBTklNQVRJT04gU09MTElOR0VSIEdtYkgKKwkJCQlDUkVMTEVTVFIuIDE5LzIwCisJCQkJRCAxMDgyNyBCRVJMSU4gIAorCQkJCUdFUk1BTlkKKworMDAtMTAtOEMgICAoaGV4KQkJRlVKSVRTVSBURUxFQ09NTVVOSUNBVElPTlMgRVVST1BFLCBMVEQuCiswMDEwOEMgICAgIChiYXNlIDE2KQkJRlVKSVRTVSBURUxFQ09NTVVOSUNBVElPTlMgRVVST1BFLCBMVEQuCisJCQkJU09MSUhVTEwgUEFSS1dBWQorCQkJCUJJUk1JTkdIQU0gQlVTSU5FU1MgUEFSSworCQkJCUJJUk1JTkdIQU0gQjM3IDdZVSBFbmdsYW5kIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEwLThEICAgKGhleCkJCUpvaG5zb24gQ29udHJvbHMsIEluYy4KKzAwMTA4RCAgICAgKGJhc2UgMTYpCQlKb2huc29uIENvbnRyb2xzLCBJbmMuCisJCQkJNTA3IEUuIE1pY2hpZ2FuIFN0LgorCQkJCVAuTy4gQm94IDQyMyAvIE03MworCQkJCU1pbHdhdWtlZSBXSSA1MzIwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOEUgICAoaGV4KQkJSFVHSCBTWU1PTlMgQ09OQ0VQVCBUZWNobm9sb2dpZXMgTHRkLgorMDAxMDhFICAgICAoYmFzZSAxNikJCUhVR0ggU1lNT05TIENPTkNFUFQgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQlBbGRlciBIaWxscyBQYXJrCisJCQkJMTYgQWxkZXIgSGlsbHMKKwkJCQlQb29sZSwgRG9yc2V0IEJNMTIgNEFSICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMC04RiAgIChoZXgpCQlSQVBUT1IgU1lTVEVNUworMDAxMDhGICAgICAoYmFzZSAxNikJCVJBUFRPUiBTWVNURU1TCisJCQkJNjkgSElDS09SWSBBVkUuCisJCQkJV0FMVEhBTSBNQSAwMjE1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOTAgICAoaGV4KQkJQ0lNRVRSSUNTLCBJTkMuCiswMDEwOTAgICAgIChiYXNlIDE2KQkJQ0lNRVRSSUNTLCBJTkMuCisJCQkJNTUgVEVNUExFIFBMQUNFCisJCQkJQk9TVE9OIE1BIDAyMTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC05MSAgIChoZXgpCQlOTyBXSVJFUyBORUVERUQgQlYKKzAwMTA5MSAgICAgKGJhc2UgMTYpCQlOTyBXSVJFUyBORUVERUQgQlYKKwkJCQlQLk8uIEJPWCAzNDMKKwkJCQkzNzIwIEFIIEJJTFRIT1ZFTiAgCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTAtOTIgICAoaGV4KQkJTkVUQ09SRSBJTkMuCiswMDEwOTIgICAgIChiYXNlIDE2KQkJTkVUQ09SRSBJTkMuCisJCQkJMTJGLTIsIDUzNywgU0VDLjIKKwkJCQlLVUFORy1GVSBST0FELAorCQkJCUhTSU5DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtOTMgICAoaGV4KQkJQ01TIENPTVBVVEVSUywgTFRELgorMDAxMDkzICAgICAoYmFzZSAxNikJCUNNUyBDT01QVVRFUlMsIExURC4KKwkJCQkyMDEgQVJDQURJQQorCQkJCU5BUklNQU4gUE9JTlQKKwkJCQlNVU1CQUkgNDAwIDAwMjEgIAorCQkJCUlORElBCisKKzAwLTEwLTk0ICAgKGhleCkJCVBlcmZvcm1hbmNlIEFuYWx5c2lzIEJyb2FkYmFuZCwgU3BpcmVudCBwbGMKKzAwMTA5NCAgICAgKGJhc2UgMTYpCQlQZXJmb3JtYW5jZSBBbmFseXNpcyBCcm9hZGJhbmQsIFNwaXJlbnQgcGxjCisJCQkJMjczNDkgQWdvdXJhIFJvYWQKKwkJCQlDYWxhYmFzYXMgSGlsbHMgQ0EgOTEzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTk1ICAgKGhleCkJCVRob21zb24gSW5jLgorMDAxMDk1ICAgICAoYmFzZSAxNikJCVRob21zb24gSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MC0xMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC05NiAgIChoZXgpCQlUUkFDRVdFTEwgU1lTVEVNUywgSU5DLgorMDAxMDk2ICAgICAoYmFzZSAxNikJCVRSQUNFV0VMTCBTWVNURU1TLCBJTkMuCisJCQkJNTY3IEVOVEVSUFJJU0UgRFJJVkUKKwkJCQlXRVNURVJWSUxMRSBPSCA0MzA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOTcgICAoaGV4KQkJV2luTmV0IE1ldHJvcG9saXRhbiBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCiswMDEwOTcgICAgIChiYXNlIDE2KQkJV2luTmV0IE1ldHJvcG9saXRhbiBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJNjYxIEVBU1QgQVJRVUVTIEFWRS4KKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTk4ICAgKGhleCkJCVNUQVJORVQgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDEwOTggICAgIChiYXNlIDE2KQkJU1RBUk5FVCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkyMjEwIE8nVE9PTEUgQVZFLgorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC05OSAgIChoZXgpCQlJbm5vTWVkaWEsIEluYy4KKzAwMTA5OSAgICAgKGJhc2UgMTYpCQlJbm5vTWVkaWEsIEluYy4KKwkJCQk0ODAwIEdSRUFUIEFNRVJJQ0EgUEFSS1dBWQorCQkJCVNVSVRFICM0MDAKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtOUEgICAoaGV4KQkJTkVUTElORQorMDAxMDlBICAgICAoYmFzZSAxNikJCU5FVExJTkUKKwkJCQk3LCBSdWUgZGUgQmlldnJlcworCQkJCTkyMTQwIENMQU1BUlQgIAorCQkJCUZSQU5DRQorCiswMC0xMC05QiAgIChoZXgpCQlFbXVsZXggQ29ycG9yYXRpb24KKzAwMTA5QiAgICAgKGJhc2UgMTYpCQlFbXVsZXggQ29ycG9yYXRpb24KKwkJCQkzMzMzIFN1c2FuIFN0cmVldAorCQkJCUNvc3RhIE1lc2EgQ0EgOTI2MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTlDICAgKGhleCkJCU0tU1lTVEVNIENPLiwgTFRELgorMDAxMDlDICAgICAoYmFzZSAxNikJCU0tU1lTVEVNIENPLiwgTFRELgorCQkJCTEtMS0yNSBTSElOIFVSQVNISU1BIENIT1UKKwkJCQlLQU5BR0FXQS1LVQorCQkJCSBZT0tPSEFNQSAyMjEgIAorCQkJCUpBUEFOCisKKzAwLTEwLTlEICAgKGhleCkJCUNMQVJJTkVUIFNZU1RFTVMsIElOQy4KKzAwMTA5RCAgICAgKGJhc2UgMTYpCQlDTEFSSU5FVCBTWVNURU1TLCBJTkMuCisJCQkJMTQxNSBLT0xMIENJUkNMRSAjMTAxCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLTlFICAgKGhleCkJCUFXQVJFLCBJTkMuCiswMDEwOUUgICAgIChiYXNlIDE2KQkJQVdBUkUsIElOQy4KKwkJCQlPTkUgT0FLIFBBUksKKwkJCQlCRURGT1JEIE1BIDAxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC05RiAgIChoZXgpCQlQQVZPLCBJTkMuCiswMDEwOUYgICAgIChiYXNlIDE2KQkJUEFWTywgSU5DLgorCQkJCTk1IFlFU0xFUiBXQVkKKwkJCQlTRUFUVExFIFdBIDk4MTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BMCAgIChoZXgpCQlJTk5PVkVYIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAxMEEwICAgICAoYmFzZSAxNikJCUlOTk9WRVggVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJS0VZU1RPTkUgQ09NTU9OUworCQkJCTUyNiBCUkFERE9DSyBBVkUuCisJCQkJVFVSVExFIENSRUVLIFBBIDE1MTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BMSAgIChoZXgpCQlLRU5ESU4gU0VNSUNPTkRVQ1RPUiwgSU5DLgorMDAxMEExICAgICAoYmFzZSAxNikJCUtFTkRJTiBTRU1JQ09ORFVDVE9SLCBJTkMuCisJCQkJMTU1MCBTLiBCQVNDT00gQVZFLiwgU1RFLiAjMjUwCisJCQkJQ0FNUEJFTEwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUEyICAgKGhleCkJCVROUworMDAxMEEyICAgICAoYmFzZSAxNikJCVROUworCQkJCTgwMCBUaGlyZCBTdHJlZXQsIFN1aXRlIEIxMDAKKwkJCQlIRVJORE9OIFZBIDIwMTcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BMyAgIChoZXgpCQlPTU5JVFJPTklYLCBJTkMuCiswMDEwQTMgICAgIChiYXNlIDE2KQkJT01OSVRST05JWCwgSU5DLgorCQkJCTc2MCBIQVJSSVNPTiBTVFJFRVQKKwkJCQlTRUFUVExFIFdBIDk4MTA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BNCAgIChoZXgpCQlYSVJDT00KKzAwMTBBNCAgICAgKGJhc2UgMTYpCQlYSVJDT00KKwkJCQkyMzAwIENPUlBPUkFURSBDRU5URVIgRFIuCisJCQkJVEhPVVNBTkQgT0FLUyBDQSA5MTMyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQTUgICAoaGV4KQkJT1hGT1JEIElOU1RSVU1FTlRTCiswMDEwQTUgICAgIChiYXNlIDE2KQkJT1hGT1JEIElOU1RSVU1FTlRTCisJCQkJSU5EVVNUUklBTCBBTkFMWVNJUyBHUk9VUAorCQkJCTE5LzIwIE5VRkZJRUxEIFdBWQorCQkJCUFiaW5nZG9uLCBPeG9uIE9YMTQgMVRYICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMC1BNiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDEwQTYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BNyAgIChoZXgpCQlVTkVYIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKzAwMTBBNyAgICAgKGJhc2UgMTYpCQlVTkVYIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKwkJCQk4Ri01LCAjMTMwLCBTWkUgV0VJIFJELiwKKwkJCQlIU0lOQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEwLUE4ICAgKGhleCkJCVJFTElBTkNFIENPTVBVVEVSIENPUlAuCiswMDEwQTggICAgIChiYXNlIDE2KQkJUkVMSUFOQ0UgQ09NUFVURVIgQ09SUC4KKwkJCQkzMDMyIEJVTktFUiBISUxMIExBTkUKKwkJCQlTVUlURSAyMDEKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQTkgICAoaGV4KQkJQURIT0MgVEVDSE5PTE9HSUVTCiswMDEwQTkgICAgIChiYXNlIDE2KQkJQURIT0MgVEVDSE5PTE9HSUVTCisJCQkJMTE1MCBGSVJTVCBTVFJFRVQKKwkJCQlTQU4gSk9TRSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQUEgICAoaGV4KQkJTUVESUE0LCBJTkMuCiswMDEwQUEgICAgIChiYXNlIDE2KQkJTUVESUE0LCBJTkMuCisJCQkJMjUwIDE0VEggU1QuIE5XIC0gU1RFICM0MDAyCisJCQkJQVRMQU5UQSBHQSAzMDMxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQUIgICAoaGV4KQkJS09JVE8gRUxFQ1RSSUMgSU5EVVNUUklFUywgTFRELgorMDAxMEFCICAgICAoYmFzZSAxNikJCUtPSVRPIEVMRUNUUklDIElORFVTVFJJRVMsIExURC4KKwkJCQkxMDAgTUFFREEtQ0hPLCBUT1RTVUtBLUtVCisJCQkJWU9LT0hBTUEgMjQ0IEtBTkFHQVdBIDI0NC04NTY5CisJCQkJSkFQQU4KKworMDAtMTAtQUMgICAoaGV4KQkJSU1DSSBURUNITk9MT0dJRVMKKzAwMTBBQyAgICAgKGJhc2UgMTYpCQlJTUNJIFRFQ0hOT0xPR0lFUworCQkJCTg0MDEgT0xEIENPVVJUIEhLT1VTRSBSRAorCQkJCVNVSVRFICMyMDAKKwkJCQlWSUVOTkEgVkEgMjIxODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUFEICAgKGhleCkJCVNPRlRST05JQ1MgVVNCLCBJTkMuCiswMDEwQUQgICAgIChiYXNlIDE2KQkJU09GVFJPTklDUyBVU0IsIElOQy4KKwkJCQk1MDg1IExJU1QgRFJJVkUKKwkJCQlDT0xPUkFETyBTUFJJTkdTIENPIDgwOTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1BRSAgIChoZXgpCQlTSElOS08gRUxFQ1RSSUMgSU5EVVNUUklFUyBDTy4KKzAwMTBBRSAgICAgKGJhc2UgMTYpCQlTSElOS08gRUxFQ1RSSUMgSU5EVVNUUklFUyBDTy4KKwkJCQk4MCBPU0hJTUFEQS1NQUNISQorCQkJCU5BR0FOTy1TSEkgMzgxLTIyICAKKwkJCQlKQVBBTgorCiswMC0xMC1BRiAgIChoZXgpCQlUQUMgU1lTVEVNUywgSU5DLgorMDAxMEFGICAgICAoYmFzZSAxNikJCVRBQyBTWVNURU1TLCBJTkMuCisJCQkJMTAzNSBQVVRNQU4gRFJJVkUtLVNURS4KKwkJCQlIVU5UU1ZJTExFIEFMIDM1ODE2LTIyNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUIwICAgKGhleCkJCU1FUklESUFOIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMTBCMCAgICAgKGJhc2UgMTYpCQlNRVJJRElBTiBURUNITk9MT0dZIENPUlAuCisJCQkJMTEgTUNCUklERSBDT1JQLiBDRU5URVIgRFIuCisJCQkJQ0hFU1RFUkZJRUxEIE1EIDYzMDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1CMSAgIChoZXgpCQlGT1ItQSBDTy4sIExURC4KKzAwMTBCMSAgICAgKGJhc2UgMTYpCQlGT1ItQSBDTy4sIExURC4KKwkJCQkyLTMtMyBPT1NBS1UKKwkJCQlTQUtVUkEgQ0lUWSwKKwkJCQlDSElCQSBQUkVGLiAyODUgIAorCQkJCUpBUEFOCisKKzAwLTEwLUIyICAgKGhleCkJCUNPQUNUSVZFIEFFU1RIRVRJQ1MKKzAwMTBCMiAgICAgKGJhc2UgMTYpCQlDT0FDVElWRSBBRVNUSEVUSUNTCisJCQkJNDAwMCBCUklER0VXQVkgLSBTVEUuICMzMDMKKwkJCQlTQVVTQUxJVEEgQ0EgOTQ5NjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUIzICAgKGhleCkJCU5PS0lBIE1VTFRJTUVESUEgVEVSTUlOQUxTCiswMDEwQjMgICAgIChiYXNlIDE2KQkJTk9LSUEgTVVMVElNRURJQSBURVJNSU5BTFMKKwkJCQlOT0tJQSBIT01FIENPTU1VTklDQVRJT05TCisJCQkJRElTS0VUVEdBVEFOIDExCisJCQkJU0UtNTgzIDM1IExJTktPUElORyAgCisJCQkJU1dFREVOCisKKzAwLTEwLUI0ICAgKGhleCkJCUFUTU9TUEhFUkUgTkVUV09SS1MKKzAwMTBCNCAgICAgKGJhc2UgMTYpCQlBVE1PU1BIRVJFIE5FVFdPUktTCisJCQkJMTA0NjAgQkFORExFWSBEUklWRQorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQjUgICAoaGV4KQkJQUNDVE9OIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKzAwMTBCNSAgICAgKGJhc2UgMTYpCQlBQ0NUT04gVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCU5PLjEsIENSRUFUSU9OIFJELiBJSUkKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU5DSFUgMzAwICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEwLUI2ICAgKGhleCkJCUVOVFJBVEEgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwMTBCNiAgICAgKGJhc2UgMTYpCQlFTlRSQVRBIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJNTc0IEhFUklUQUdFIFJELgorCQkJCVNPVVRIQlVSWSBDVCAwNjQ4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQjcgICAoaGV4KQkJQ09ZT1RFIFRFQ0hOT0xPR0lFUywgTExDCiswMDEwQjcgICAgIChiYXNlIDE2KQkJQ09ZT1RFIFRFQ0hOT0xPR0lFUywgTExDCisJCQkJNDM2MCBQQVJLIFRFUlJBQ0UgRFJJVkUKKwkJCQlXRVNUTEFLRSBWSUxMQUdFIENBIDkxMzYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1COCAgIChoZXgpCQlJU0hJR0FLSSBDT01QVVRFUiBTWVNURU0gQ08uCiswMDEwQjggICAgIChiYXNlIDE2KQkJSVNISUdBS0kgQ09NUFVURVIgU1lTVEVNIENPLgorCQkJCTEtMS0xLCBLWU9CQVNISSwKKwkJCQlDSFVPLUtVCisJCQkJVG9reW8gIAorCQkJCUpBUEFOCisKKzAwLTEwLUI5ICAgKGhleCkJCU1BWFRPUiBDT1JQLgorMDAxMEI5ICAgICAoYmFzZSAxNikJCU1BWFRPUiBDT1JQLgorCQkJCTIxOTAgTUlMTEVSIERSSVZFCisJCQkJTE9OR01PTlQgQ08gODA1MDEtNjc0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQkEgICAoaGV4KQkJTUFSVElOSE8tREFWSVMgU1lTVEVNUywgSU5DLgorMDAxMEJBICAgICAoYmFzZSAxNikJCU1BUlRJTkhPLURBVklTIFNZU1RFTVMsIElOQy4KKwkJCQkxMjYwIE9MRCBJTk5FUyBST0FECisJCQkJT1RUQVdBLCBPTlRBUklPIEsxQiAzVjMgIAorCQkJCUNBTkFEQQorCiswMC0xMC1CQiAgIChoZXgpCQlEQVRBICYgSU5GT1JNQVRJT04gVEVDSE5PTE9HWQorMDAxMEJCICAgICAoYmFzZSAxNikJCURBVEEgJiBJTkZPUk1BVElPTiBURUNITk9MT0dZCisJCQkJVEVDSE5PTE9HWSBIT1VTRQorCQkJCTEgTk9STUFOVE9OIExBTkUKKwkJCQlCT1RURVNGT1JELCBOT1RUSU5HSEFNIE5HMTMgT0VMICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMC1CQyAgIChoZXgpCQlBYXN0cmEgVGVsZWNvbQorMDAxMEJDICAgICAoYmFzZSAxNikJCUFhc3RyYSBUZWxlY29tCisJCQkJOCBGZWRlcmFsIFN0cmVldAorCQkJCUJpbGxlcmljYSBNQSAwMTgyMS0zNTcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1CRCAgIChoZXgpCQlUSEUgVEVMRUNPTU1VTklDQVRJT04gVEVDSE5PTE9HWSBDT01NSVRURUUgKFRUQykKKzAwMTBCRCAgICAgKGJhc2UgMTYpCQlUSEUgVEVMRUNPTU1VTklDQVRJT04gVEVDSE5PTE9HWSBDT01NSVRURUUgKFRUQykKKwkJCQkxLTEtMTIgU2hpYmEgS291ZW4sIE1pbmF0by1rdQorCQkJCU1JTkFUTy1LVSwgICBUT0tZTyAxMDUtMDAxMQorCQkJCUpBUEFOCisKKzAwLTEwLUJFICAgKGhleCkJCU1BUkNIIE5FVFdPUktTIENPUlBPUkFUSU9OCiswMDEwQkUgICAgIChiYXNlIDE2KQkJTUFSQ0ggTkVUV09SS1MgQ09SUE9SQVRJT04KKwkJCQkzMDMgVGVycnkgRm94IERyaXZlCisJCQkJT1RUQVdBLCBPTlRBUklPICAgSzJLIDNKMQorCQkJCUNBTkFEQQorCiswMC0xMC1CRiAgIChoZXgpCQlJbnRlckFpciBXaXJlbGVzcworMDAxMEJGICAgICAoYmFzZSAxNikJCUludGVyQWlyIFdpcmVsZXNzCisJCQkJNDg1IENBWVVHQSBST0FECisJCQkJQlVGRkFMTyBOWSAxNDIyNS0wMjIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1DMCAgIChoZXgpCQlBUk1BLCBJbmMuCiswMDEwQzAgICAgIChiYXNlIDE2KQkJQVJNQSwgSW5jLgorCQkJCTQ4NTEgTm9ydGhzaG9yZSBMYW5lCisJCQkJTm9ydGggTGl0dGxlIFJvY2sgQVIgNzIxMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUMxICAgKGhleCkJCU9JIEVMRUNUUklDIENPLiwgTFRELgorMDAxMEMxICAgICAoYmFzZSAxNikJCU9JIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTctMy0xNiBLSUtVTkEKKwkJCQlLT0hPS1UtS1UKKwkJCQlZT0tPSEFNQSAgMjIyICAKKwkJCQlKQVBBTgorCiswMC0xMC1DMiAgIChoZXgpCQlXSUxMTkVULCBJTkMuCiswMDEwQzIgICAgIChiYXNlIDE2KQkJV0lMTE5FVCwgSU5DLgorCQkJCUpPV0EtVEFLQU5BV0EgIEJMREcuIDhGCisJCQkJVEFLQU5BV0EgMS01LTQsIE1JTkFUTy1LVSwKKwkJCQlUT0tZTyAgCisJCQkJSkFQQU4KKworMDAtMTAtQzMgICAoaGV4KQkJQ1NJLUNPTlRST0wgU1lTVEVNUworMDAxMEMzICAgICAoYmFzZSAxNikJCUNTSS1DT05UUk9MIFNZU1RFTVMKKwkJCQlJTlRFUk5BVElPTkFMCisJCQkJUE9CIDU5NDY5CisJCQkJREFMTEFTIFRYIDc1MjI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1DNCAgIChoZXgpCQlNRURJQSBMSU5LUyBDTy4sIExURC4KKzAwMTBDNCAgICAgKGJhc2UgMTYpCQlNRURJQSBMSU5LUyBDTy4sIExURC4KKwkJCQlLU1AgRUFTVCBCTERHLiA2MDQsIFNBS0FETyAzLTItMSwKKwkJCQkgVEFLQVRTVS1LVSBLQVdBU0FLSS1TSEksCisJCQkJS2FuYWdhd2Eta2VuIDIxNCAgCisJCQkJSkFQQU4KKworMDAtMTAtQzUgICAoaGV4KQkJUFJPVE9DT0wgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDEwQzUgICAgIChiYXNlIDE2KQkJUFJPVE9DT0wgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNCBGSVJTVCBTVFJFRVQKKwkJCQlCUklER0VXQVRFUiBNQSAwMjMyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQzYgICAoaGV4KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCiswMDEwQzYgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJMTQxLCBMQU5FIDM1MSxTRUMuMSwgVEFJUElORyBSRC4KKwkJCQlUU0FPVFVFTiwgTkFOVE9VIDU0MjYxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC1DNyAgIChoZXgpCQlEQVRBIFRSQU5TTUlTU0lPTiBORVRXT1JLCiswMDEwQzcgICAgIChiYXNlIDE2KQkJREFUQSBUUkFOU01JU1NJT04gTkVUV09SSworCQkJCTkxMTAgVy4gRE9ER0UgUkQuIC0gU1RFLiMyMDAKKwkJCQlPTUFIQSBORSA2ODExNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtQzggICAoaGV4KQkJQ09NTVVOSUNBVElPTlMgRUxFQ1RST05JQ1MgU0VDVVJJVFkgR1JPVVAKKzAwMTBDOCAgICAgKGJhc2UgMTYpCQlDT01NVU5JQ0FUSU9OUyBFTEVDVFJPTklDUyBTRUNVUklUWSBHUk9VUAorCQkJCTEwLzRXMjIgRklERExFUlMgR1JFRU4gTEFORQorCQkJCUJlbmhhbGwsIENoZWx0ZW5oYW0gR2xvdXN0ZXIgR0w1MiA1QUogCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTAtQzkgICAoaGV4KQkJTUlUU1VCSVNISSBFTEVDVFJPTklDUyBMT0dJU1RJQyBTVVBQT1JUIENPLgorMDAxMEM5ICAgICAoYmFzZSAxNikJCU1JVFNVQklTSEkgRUxFQ1RST05JQ1MgTE9HSVNUSUMgU1VQUE9SVCBDTy4KKwkJCQkKKwkJCQlTSE9OQU4gV29ya3MsIDczMC0xMSwgS0FNSU1BQ0hJWUEKKwkJCQlLYW1ha3VyYS1jaXR5LCBLYW5hZ2F3YSAyNDcgIAorCQkJCUpBUEFOCisKKzAwLTEwLUNBICAgKGhleCkJCVRlbGNvIFN5c3RlbXMsIEluYy4gCiswMDEwQ0EgICAgIChiYXNlIDE2KQkJVGVsY28gU3lzdGVtcywgSW5jLiAKKwkJCQkxNSBCZXJrc2hpcmUgUm9hZAorCQkJCU1hbnNmaWVsZCwgTUEgMDIwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUNCICAgKGhleCkJCUZBQ0lUIEsuSy4KKzAwMTBDQiAgICAgKGJhc2UgMTYpCQlGQUNJVCBLLksuCisJCQkJSElNRUkgTklIT01CQVNISSBCTERHLiAzRgorCQkJCTEyLTMtTklIT01CQVNISS1LT0JVTkFDSE8KKwkJCQlDSFVPLUtVLCBUT0tZTyAxMDMgIAorCQkJCUpBUEFOCisKKzAwLTEwLUNDICAgKGhleCkJCUNMUCBDT01QVVRFUiBMT0dJU1RJSyBQTEFOVU5HIEdtYkgKKzAwMTBDQyAgICAgKGJhc2UgMTYpCQlDTFAgQ09NUFVURVIgTE9HSVNUSUsgUExBTlVORyBHbWJICisJCQkJQkFTU0VSTUFOTlNUUi4gMjEKKwkJCQkgRC04MTI0NSBNVUVOQ0hFTiAgCisJCQkJR0VSTUFOWQorCiswMC0xMC1DRCAgIChoZXgpCQlJTlRFUkZBQ0UgQ09OQ0VQVAorMDAxMENEICAgICAoYmFzZSAxNikJCUlOVEVSRkFDRSBDT05DRVBUCisJCQkJMyBWRU5FTExFIGRlIEtFUkdPUworCQkJCTI5MDAwIFFVSU1QRVIgIAorCQkJCUZSQU5DRQorCiswMC0xMC1DRSAgIChoZXgpCQlWT0xBTVAsIExURC4KKzAwMTBDRSAgICAgKGJhc2UgMTYpCQlWT0xBTVAsIExURC4KKwkJCQlVTklUIDMgUklWRVJTSURFIEJVU0lORVNTIFBBUksKKwkJCQlET0dGTFVEIFdBWSwKKwkJCQlGQVJOSEFNLCBTVVJSRVkgRU5HTEFORCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMC1DRiAgIChoZXgpCQlGSUJFUkxBTkUgQ09NTVVOSUNBVElPTlMKKzAwMTBDRiAgICAgKGJhc2UgMTYpCQlGSUJFUkxBTkUgQ09NTVVOSUNBVElPTlMKKwkJCQkxMzE4IFJFRFdPT0QgV0FZLCAjMjAwCisJCQkJUEVUQUxVTUEgQ0EgOTQ5NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUQwICAgKGhleCkJCVdJVENPTSwgTFRELgorMDAxMEQwICAgICAoYmFzZSAxNikJCVdJVENPTSwgTFRELgorCQkJCVAuTy5CLiAyMjUwCisJCQkJSEFJRkEgIDMxMDIxICAKKwkJCQlJU1JBRUwKKworMDAtMTAtRDEgICAoaGV4KQkJVG9wIExheWVyIE5ldHdvcmtzLCBJbmMuCiswMDEwRDEgICAgIChiYXNlIDE2KQkJVG9wIExheWVyIE5ldHdvcmtzLCBJbmMuCisJCQkJNCBNRUNIQU5JQyBTVC4tIFNURSMyMTIKKwkJCQlOQVRJQ0sgTUEgMDE3NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUQyICAgKGhleCkJCU5JVFRPIFRTVVNISU5LSSBDTy4sIExURAorMDAxMEQyICAgICAoYmFzZSAxNikJCU5JVFRPIFRTVVNISU5LSSBDTy4sIExURAorCQkJCTctMjctMTEsIFRPRE9ST0tJLCBTRVRBR0FZQS1LVQorCQkJCVRPS1lPIDE1MSAgCisJCQkJSkFQQU4KKworMDAtMTAtRDMgICAoaGV4KQkJR1JJUFMgRUxFQ1RST05JQyBHTUJICiswMDEwRDMgICAgIChiYXNlIDE2KQkJR1JJUFMgRUxFQ1RST05JQyBHTUJICisJCQkJTklFU0VOQkVSR0VSR0FTU0UgMzcKKwkJCQlBLTgwMjAgR1JBWiAgCisJCQkJQVVTVFJJQQorCiswMC0xMC1ENCAgIChoZXgpCQlTVE9SQUdFIENPTVBVVEVSIENPUlBPUkFUSU9OCiswMDEwRDQgICAgIChiYXNlIDE2KQkJU1RPUkFHRSBDT01QVVRFUiBDT1JQT1JBVElPTgorCQkJCTExIFJJVkVSU0lERSBTVFJFRVQKKwkJCQlOQVNIVUEgTkggMDMwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUQ1ICAgKGhleCkJCUlNQVNERSBDQU5BUklBUywgUy5BLgorMDAxMEQ1ICAgICAoYmFzZSAxNikJCUlNQVNERSBDQU5BUklBUywgUy5BLgorCQkJCVVSQi4gRUwgQ0VCQURBTAorCQkJCUMvRFIuIEpVQU4gREdVRVouUEVSRVosIDM5LTIKKwkJCQkzNTAwOCBMQVMgUEFMTUFTIEcuQy4gIAorCQkJCVNQQUlOCisKKzAwLTEwLUQ2ICAgKGhleCkJCUlUVCAtIEEvQ0QKKzAwMTBENiAgICAgKGJhc2UgMTYpCQlJVFQgLSBBL0NECisJCQkJREVQVC4gODUyMQorCQkJCTEwMCBLSU5HU0xBTkQgUk9BRAorCQkJCUNMSUZUT04gTkogMDcwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUQ3ICAgKGhleCkJCUFSR09TWSBSRVNFQVJDSCBJTkMuCiswMDEwRDcgICAgIChiYXNlIDE2KQkJQVJHT1NZIFJFU0VBUkNIIElOQy4KKwkJCQlOTy4gNDQsIExBTkUgNDExLCBDSFVORyBIVUEgUkQKKwkJCQlTRUMuNCwgSFNJTkNIVQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTAtRDggICAoaGV4KQkJQ0FMSVNUQQorMDAxMEQ4ICAgICAoYmFzZSAxNikJCUNBTElTVEEKKwkJCQk5OCBISUdIIFNUUkVFVCwgVEhBTUUKKwkJCQlPWEZPUkRTSElSRSBPWDkgM0VIIEVOR0xBTkQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTAtRDkgICAoaGV4KQkJSUJNIEpBUEFOLCBGVUpJU0FXQSBNVCtECiswMDEwRDkgICAgIChiYXNlIDE2KQkJSUJNIEpBUEFOLCBGVUpJU0FXQSBNVCtECisJCQkJS0lSSUhBUkEtQ0hPIDEsIEZVSklTQVdBIENJVFkKKwkJCQlLQU5BR0FXQSAyNTIgIAorCQkJCUpBUEFOCisKKzAwLTEwLURBICAgKGhleCkJCU1PVElPTiBFTkdJTkVFUklORywgSU5DLgorMDAxMERBICAgICAoYmFzZSAxNikJCU1PVElPTiBFTkdJTkVFUklORywgSU5DLgorCQkJCTMzIFMuTEEgUEFURVJBIExOCisJCQkJU0FOVEEgQkFSQkFSQSBDQSA5MzExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtREIgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcywgSW5jLgorMDAxMERCICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MsIEluYy4KKwkJCQkxMTk0IE4uIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtREMgICAoaGV4KQkJTUlDUk8tU1RBUiBJTlRFUk5BVElPTkFMIENPLiwgTFRELgorMDAxMERDICAgICAoYmFzZSAxNikJCU1JQ1JPLVNUQVIgSU5URVJOQVRJT05BTCBDTy4sIExURC4KKwkJCQlOTy4gNjksIExJLURFIFNULiwgSlVORy1IRSBDSVRZCisJCQkJIFRBSVBFSSBIU0lFTiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC1ERCAgIChoZXgpCQlFTkFCTEUgU0VNSUNPTkRVQ1RPUiwgSU5DLgorMDAxMEREICAgICAoYmFzZSAxNikJCUVOQUJMRSBTRU1JQ09ORFVDVE9SLCBJTkMuCisJCQkJMTc0MCBURUNITk9MT0dZIERSSVZFCisJCQkJU1VJVEUgIzExMAorCQkJCVNBTiBKT1NFIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1ERSAgIChoZXgpCQlJTlRFUk5BVElPTkFMIERBVEFDQVNUSU5HIENPUlBPUkFUSU9OCiswMDEwREUgICAgIChiYXNlIDE2KQkJSU5URVJOQVRJT05BTCBEQVRBQ0FTVElORyBDT1JQT1JBVElPTgorCQkJCTI2ODAgUVVFRU5TVklFVyBEUklWRQorCQkJCU9UVEFXQSwgT05UQVJJTyBLMkIgOEg2CisJCQkJQ0FOQURBCisKKzAwLTEwLURGICAgKGhleCkJCVJJU0UgQ09NUFVURVIgSU5DLgorMDAxMERGICAgICAoYmFzZSAxNikJCVJJU0UgQ09NUFVURVIgSU5DLgorCQkJCTlGLCBOTy4gMzA2LTMsIFRBVFVORyBSRC4KKwkJCQlTRUMuIDEsIEhTSSBDSElILAorCQkJCVRBSVBFSSBIU0lFTiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC1FMCAgIChoZXgpCQlPcmFjbGUgQ29ycG9yYXRpb24KKzAwMTBFMCAgICAgKGJhc2UgMTYpCQlPcmFjbGUgQ29ycG9yYXRpb24KKwkJCQk1MDAgT3JhY2xlIFBhcmt3YXkKKwkJCQlSZWR3b29kIFNob3JlcyBDQSA5NDA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRTEgICAoaGV4KQkJUy5JLiBURUNILCBJTkMuCiswMDEwRTEgICAgIChiYXNlIDE2KQkJUy5JLiBURUNILCBJTkMuCisJCQkJUC5PLiBCT1ggNjA5CisJCQkJR0VORVZBIElMIDYwMTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1FMiAgIChoZXgpCQlBcnJheUNvbW0sIEluYy4KKzAwMTBFMiAgICAgKGJhc2UgMTYpCQlBcnJheUNvbW0sIEluYy4KKwkJCQkzMTQxIFpBTktFUiBST0FECisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUUzICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDEwRTMgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRTQgICAoaGV4KQkJTlNJIENPUlBPUkFUSU9OCiswMDEwRTQgICAgIChiYXNlIDE2KQkJTlNJIENPUlBPUkFUSU9OCisJCQkJUC5PLiBCT1ggNjM1CisJCQkJV0lMU09OVklMTEUgT1IgOTcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUU1ICAgKGhleCkJCVNPTEVDVFJPTiBURVhBUworMDAxMEU1ICAgICAoYmFzZSAxNikJCVNPTEVDVFJPTiBURVhBUworCQkJCTEyNDU1IFJFU0VBUkNIIEJMVkQuIE0vUyAyMjA1CisJCQkJQVVTVElOIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1FNiAgIChoZXgpCQlBUFBMSUVEIElOVEVMTElHRU5UIFNZU1RFTVMsIElOQy4KKzAwMTBFNiAgICAgKGJhc2UgMTYpCQlBUFBMSUVEIElOVEVMTElHRU5UIFNZU1RFTVMsIElOQy4KKwkJCQkzOTIzIFJBTkNIRVJPIERSSVZFCisJCQkJQU5OIEFSQk9SIE1JIDQ4MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1FNyAgIChoZXgpCQlCcmVlemVDb20KKzAwMTBFNyAgICAgKGJhc2UgMTYpCQlCcmVlemVDb20KKwkJCQlQTyBCb3ggMTMxMzkKKwkJCQlBdGlkaW0gVGVjaG5vbG9naWNhbCBQYXJrLCBCbGRnLiAxCisJCQkJVGVsLUF2aXYgIAorCQkJCUlTUkFFTAorCiswMC0xMC1FOCAgIChoZXgpCQlURUxPQ0lUWSwgSU5DT1JQT1JBVEVECiswMDEwRTggICAgIChiYXNlIDE2KQkJVEVMT0NJVFksIElOQ09SUE9SQVRFRAorCQkJCTk5MiBTT1VUSCBERSBBTlpBIEJMVkQKKwkJCQlTQU4gSk9TRSBDQSA5NTEyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRTkgICAoaGV4KQkJUkFJRFRFQyBMVEQuCiswMDEwRTkgICAgIChiYXNlIDE2KQkJUkFJRFRFQyBMVEQuCisJCQkJQ0FTVExFIFJPQUQKKwkJCQlMSVRUTEUgSVNMQU5EIElORFVTVFJJQUwgRVNUQVRFCisJCQkJTGl0dGxlIElzbGFuZCBDb3VudHkgQ29yayAKKwkJCQlJUkVMQU5ECisKKzAwLTEwLUVBICAgKGhleCkJCUFERVBUIFRFQ0hOT0xPR1kKKzAwMTBFQSAgICAgKGJhc2UgMTYpCQlBREVQVCBURUNITk9MT0dZCisJCQkJMTUwIFJPU0UgT1JDSEFSRCBXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRUIgICAoaGV4KQkJU0VMU0lVUyBTWVNURU1TLCBJTkMuCiswMDEwRUIgICAgIChiYXNlIDE2KQkJU0VMU0lVUyBTWVNURU1TLCBJTkMuCisJCQkJNTA1NyBLRUxMRVIgU1BSSU5HUyBSRC4KKwkJCQlEQUxMQVMgVFggNzUyNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUVDICAgKGhleCkJCVJQQ0csIExMQworMDAxMEVDICAgICAoYmFzZSAxNikJCVJQQ0csIExMQworCQkJCTc0OSBNSU5FUiBST0FECisJCQkJSElHSExBTkQgSFRTIE9IIDQ0MTQzLTIxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUVEICAgKGhleCkJCVNVTkRBTkNFIFRFQ0hOT0xPR1ksIElOQy4KKzAwMTBFRCAgICAgKGJhc2UgMTYpCQlTVU5EQU5DRSBURUNITk9MT0dZLCBJTkMuCisJCQkJMjAxMTEgU1RFVkVOUyBDUkVFSyBCTFZELgorCQkJCVNVSVRFICMxMzgKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUVFICAgKGhleCkJCUNUSSBQUk9EVUNUUywgSU5DLgorMDAxMEVFICAgICAoYmFzZSAxNikJCUNUSSBQUk9EVUNUUywgSU5DLgorCQkJCTEyMTEgVy4gU0hBUk9OIFJELgorCQkJCUNJTkNJTk5BVEkgT0ggNDUyNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUVGICAgKGhleCkJCURCVEVMIElOQ09SUE9SQVRFRAorMDAxMEVGICAgICAoYmFzZSAxNikJCURCVEVMIElOQ09SUE9SQVRFRAorCQkJCU5PLjI5IFRaVS1DSElBTkcgU1QuLAorCQkJCVRVLUNIRU5HIFRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMC1GMSAgIChoZXgpCQlJLU8gQ09SUE9SQVRJT04KKzAwMTBGMSAgICAgKGJhc2UgMTYpCQlJLU8gQ09SUE9SQVRJT04KKwkJCQkyMjU2IFNPVVRIIDM2MDAgV0VTVAorCQkJCVNBTFQgTEFLRSBDSVRZIFVUIDg0MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1GMiAgIChoZXgpCQlBTlRFQworMDAxMEYyICAgICAoYmFzZSAxNikJCUFOVEVDCisJCQkJNDkyMCBBVkFMT04gUklER0UgUEtXWQorCQkJCVNVSVRFICM2MDAKKwkJCQlOT1JDUk9TUyBHQSAzMDA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRjMgICAoaGV4KQkJTmV4Y29tIEludGVybmF0aW9uYWwgQ28uLCBMdGQuCiswMDEwRjMgICAgIChiYXNlIDE2KQkJTmV4Y29tIEludGVybmF0aW9uYWwgQ28uLCBMdGQuCisJCQkJMThGLCBOby4gNzE2LCBDaHVuZy1DaGVuZyBSb2FkLAorCQkJCUNodW5nIEhvLAorCQkJCVRhaXBlaSBIc2llbiAyMzUsICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEwLUY0ICAgKGhleCkJCVZlcnRpY2FsIENvbW11bmljYXRpb25zCiswMDEwRjQgICAgIChiYXNlIDE2KQkJVmVydGljYWwgQ29tbXVuaWNhdGlvbnMKKwkJCQkzOTc5IEZyZWVkb20gQ2lyY2xlICM0MDAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NC0xMjQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1GNSAgIChoZXgpCQlBTUhFUlNUIFNZU1RFTVMsIElOQy4KKzAwMTBGNSAgICAgKGJhc2UgMTYpCQlBTUhFUlNUIFNZU1RFTVMsIElOQy4KKwkJCQkzMCBXSUxTT04gUk9BRAorCQkJCUJVRkZBTE8gTlkgMTQyMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUY2ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMTBGNiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEwLUY3ICAgKGhleCkJCUlSSUlDSEkgVEVDSE5PTE9HSUVTIEluYy4KKzAwMTBGNyAgICAgKGJhc2UgMTYpCQlJUklJQ0hJIFRFQ0hOT0xPR0lFUyBJbmMuCisJCQkJMS0yNi03IENIVU8sIE5BS0FOQS1LVQorCQkJCSBUT0tZTyAxNjQgIAorCQkJCUpBUEFOCisKKzAwLTEwLUY4ICAgKGhleCkJCU5paWtrZSBUZWNobm8gU3lzdGVtIENvLiBMdGQKKzAwMTBGOCAgICAgKGJhc2UgMTYpCQlOaWlra2UgVGVjaG5vIFN5c3RlbSBDby4gTHRkCisJCQkJMTg1MC0xIFRzdXJ1bWEsIE1hY2hpZGEtc2hpCisJCQkJVG9reW8gIDE5NC0wMDA0CisJCQkJSkFQQU4KKworMDAtMTAtRjkgICAoaGV4KQkJVU5JUVVFIFNZU1RFTVMsIElOQy4KKzAwMTBGOSAgICAgKGJhc2UgMTYpCQlVTklRVUUgU1lTVEVNUywgSU5DLgorCQkJCTE4MSBET04gUEFSSyBSRAorCQkJCU1BUktIQU0sIE9OVEFSSU8gTDNSIDFDMiAgCisJCQkJQ0FOQURBCisKKzAwLTEwLUZBICAgKGhleCkJCUFwcGxlLCBJbmMKKzAwMTBGQSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJTVMgMzUtR1BPCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMC1GQiAgIChoZXgpCQlaSURBIFRFQ0hOT0xPR0lFUyBMSU1JVEVECiswMDEwRkIgICAgIChiYXNlIDE2KQkJWklEQSBURUNITk9MT0dJRVMgTElNSVRFRAorCQkJCTgvRiBCTE9DSyBBICBHT09EVklFVyBJTkRVU1RSSUFMIEJVSUxESU4KKwkJCQlLSU4gRkFUIFNUUiBUTVRMIDIxMworCQkJCVRVRU4gTVVOIE5UICAKKwkJCQlIT05HIEtPTkcKKworMDAtMTAtRkMgICAoaGV4KQkJQlJPQURCQU5EIE5FVFdPUktTLCBJTkMuCiswMDEwRkMgICAgIChiYXNlIDE2KQkJQlJPQURCQU5EIE5FVFdPUktTLCBJTkMuCisJCQkJMzcgU1RFVkVOU09OIFJPQUQKKwkJCQlXSU5OSVBFRywgTUFOSVRPQkEgUjNIIDBIOSAgCisJCQkJQ0FOQURBCisKKzAwLTEwLUZEICAgKGhleCkJCUNPQ09NIEEvUworMDAxMEZEICAgICAoYmFzZSAxNikJCUNPQ09NIEEvUworCQkJCVRFTEVUT05WRUogOAorCQkJCURLIDI4NjAgU09CT1JHICAKKwkJCQlERU5NQVJLCisKKzAwLTEwLUZFICAgKGhleCkJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCiswMDEwRkUgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKwkJCQkzMDEgUk9DS1JJTU1PTiBCTFZELCBTT1VUSAorCQkJCU0vUyBDWE8xLTIvTjI2CisJCQkJQ09MT1JBRE8gU1BSSU5HUyBDTyA4MDkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTAtRkYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAxMEZGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMDAgICAoaGV4KQkJU2NobmVpZGVyIEVsZWN0cmljCiswMDExMDAgICAgIChiYXNlIDE2KQkJU2NobmVpZGVyIEVsZWN0cmljCisJCQkJNTQ2MCBQb3R0c3ZpbGxlIFBpa2UKKwkJCQlMZWVzcG9ydCBQQSAxOTUzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMDEgICAoaGV4KQkJQ0VUIFRlY2hub2xvZ2llcyBQdGUgTHRkCiswMDExMDEgICAgIChiYXNlIDE2KQkJQ0VUIFRlY2hub2xvZ2llcyBQdGUgTHRkCisJCQkJMTAwIEp1cm9uZyBFYXN0IFN0cmVldCAyMQorCQkJCVNpbmdhcG9yZSBUZWNobm9sb2dpZXMgQnVpbGRpbmcKKwkJCQk2MDk2MDIKKwkJCQlTSU5HQVBPUkUKKworMDAtMTEtMDIgICAoaGV4KQkJQXVyb3JhIE11bHRpbWVkaWEgQ29ycC4KKzAwMTEwMiAgICAgKGJhc2UgMTYpCQlBdXJvcmEgTXVsdGltZWRpYSBDb3JwLgorCQkJCTIwNSBDb21tZXJjaWFsIENvdXJ0CisJCQkJTW9yZ2FudmlsbGUgTmV3IEplcnNleSAwNzc1MS0xMDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0wMyAgIChoZXgpCQlrYXdhbXVyYSBlbGVjdHJpYyBpbmMuCiswMDExMDMgICAgIChiYXNlIDE2KQkJa2F3YW11cmEgZWxlY3RyaWMgaW5jLgorCQkJCTMtODYgYWthdHN1a2ktY2hvCisJCQkJc2V0byBhaWNoaSA0ODktMDA3MQorCQkJCUpBUEFOCisKKzAwLTExLTA0ICAgKGhleCkJCVRFTEVYWQorMDAxMTA0ICAgICAoYmFzZSAxNikJCVRFTEVYWQorCQkJCTExMTYsIEhZVU5EQUkgNDEgVE9XRVIsIDkxNy05CisJCQkJTU9LLURPTkcsIFlBTkdDSFVOLUtVLAorCQkJCVNFT1VMICAxNTgtNzIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLTA1ICAgKGhleCkJCVN1bnBsdXMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTEwNSAgICAgKGJhc2UgMTYpCQlTdW5wbHVzIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMTksIElubm92YXRpb24gRmlyc3QgUm9hZCwgSHNpbmNodSBTY2llbmNlIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTA2ICAgKGhleCkJCVNpZW1lbnMgTlYgKEJlbGdpdW0pCiswMDExMDYgICAgIChiYXNlIDE2KQkJU2llbWVucyBOViAoQmVsZ2l1bSkKKwkJCQlBdGVhbGFhbiAzNAorCQkJCUhlcmVudGFscyBBbnR3ZXJwIDIyMDAKKwkJCQlCRUxHSVVNCisKKzAwLTExLTA3ICAgKGhleCkJCVJHQiBOZXR3b3JrcyBJbmMuCiswMDExMDcgICAgIChiYXNlIDE2KQkJUkdCIE5ldHdvcmtzIEluYy4KKwkJCQkyOTI5IENhbXB1cyBEcml2ZQorCQkJCVN1aXRlIDE2NQorCQkJCVNhbiBNYXRlbyBDQSA5NDQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMDggICAoaGV4KQkJT3JiaXRhbCBEYXRhIENvcnBvcmF0aW9uCiswMDExMDggICAgIChiYXNlIDE2KQkJT3JiaXRhbCBEYXRhIENvcnBvcmF0aW9uCisJCQkJMTkwMCBTLiBOb3Jmb2xrIFN0LiBTdGUgMzIwCisJCQkJU2FuIE1hdGVvIENBIDk0NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0wOSAgIChoZXgpCQlNaWNyby1TdGFyIEludGVybmF0aW9uYWwKKzAwMTEwOSAgICAgKGJhc2UgMTYpCQlNaWNyby1TdGFyIEludGVybmF0aW9uYWwKKwkJCQlObyA2OSwgTGktRGUgU3RyZWV0LCBKdW5nLUhlIENpdHksCisJCQkJVGFpcGVpICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTBBICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDExMEEgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDcwNDA1CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMEIgICAoaGV4KQkJRnJhbmtsaW4gVGVjaG5vbG9neSBTeXN0ZW1zCiswMDExMEIgICAgIChiYXNlIDE2KQkJRnJhbmtsaW4gVGVjaG5vbG9neSBTeXN0ZW1zCisJCQkJMjA0MDYgRWFybCBTdAorCQkJCVRvcnJhbmNlIENBIDkwNTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0wQyAgIChoZXgpCQlBdG1hcmsgVGVjaG5vLCBJbmMuCiswMDExMEMgICAgIChiYXNlIDE2KQkJQXRtYXJrIFRlY2hubywgSW5jLgorCQkJCTJGIFNEIEJMREcsIDItMi0zLTE0IEF0c3ViZXRzdS1uaXNoaSwgQXRzdWJldHN1LWt1CisJCQkJU2FwcG9ybyBIb2trYWlkbyAwMDQtMDA2MgorCQkJCUpBUEFOCisKKzAwLTExLTBEICAgKGhleCkJCVNBTkJsYXplIFRlY2hub2xvZ3ksIEluYy4KKzAwMTEwRCAgICAgKGJhc2UgMTYpCQlTQU5CbGF6ZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMiBDbG9jayBUb3dlciBQbGFjZQorCQkJCU1heW5hcmQgTUEgMDE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTBFICAgKGhleCkJCVRzdXJ1c2FraSBTZWFsYW5kIFRyYW5zcG9ydGF0aW9uIENvLiBMdGQuCiswMDExMEUgICAgIChiYXNlIDE2KQkJVHN1cnVzYWtpIFNlYWxhbmQgVHJhbnNwb3J0YXRpb24gQ28uIEx0ZC4KKwkJCQkxMDAwIE1pc2EKKwkJCQlPaXRhICA4NzAwMTk2CisJCQkJSkFQQU4KKworMDAtMTEtMEYgICAoaGV4KQkJbmV0cGxhdCxJbmMuCiswMDExMEYgICAgIChiYXNlIDE2KQkJbmV0cGxhdCxJbmMuCisJCQkJMkYgT2x5bXBpYSBDZW50ZXIsIDgyOC0xMCwgWWVva3NhbS1kb25nLCBHYW5nbmFtLWd1CisJCQkJU0VPVUwgIDEzNS05MzUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtMTAgICAoaGV4KQkJTWF4YW5uYSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxMTEwICAgICAoYmFzZSAxNikJCU1heGFubmEgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlSb29tMjAxLCBOby40Mi0zLCBMdXl1YW4gUm9hZAorCQkJCUd1YW5nemhvdSAgNTEwMDk1CisJCQkJQ0hJTkEKKworMDAtMTEtMTEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzAwMTExMSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCTIxMTEgTkUgMjV0aCBBdmVudWUKKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTEyICAgKGhleCkJCUhvbmV5d2VsbCBDTVNTCiswMDExMTIgICAgIChiYXNlIDE2KQkJSG9uZXl3ZWxsIENNU1MKKwkJCQk4MzIzIExpbmRiZXJnaCBDdAorCQkJCVNhcmFzb3RhIEZMIDM0MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0xMyAgIChoZXgpCQlGcmF1bmhvZmVyIEZPS1VTCiswMDExMTMgICAgIChiYXNlIDE2KQkJRnJhdW5ob2ZlciBGT0tVUworCQkJCUthaXNlcmluLUF1Z3VzdGEtQWxsZWUgMzEKKwkJCQlCZXJsaW4gIDEwNTg5CisJCQkJR0VSTUFOWQorCiswMC0xMS0xNCAgIChoZXgpCQlFdmVyRm9jdXMgRWxlY3Ryb25pY3MgQ29ycC4KKzAwMTExNCAgICAgKGJhc2UgMTYpCQlFdmVyRm9jdXMgRWxlY3Ryb25pY3MgQ29ycC4KKwkJCQkxMkYsIE5vLiA3OSwgU2VjLiAxLCBTaGluLVRhaSBXdSBSZC4KKwkJCQlIc2ktQ2hpIFRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTE1ICAgKGhleCkJCUVQSU4gVGVjaG5vbG9naWVzLCBJbmMuCiswMDExMTUgICAgIChiYXNlIDE2KQkJRVBJTiBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQlBY29ybiBDYW1wdXMKKwkJCQk2dGggUmVzdWx0IFdheSwgU3VpdGUgMjQ4CisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0xNiAgIChoZXgpCQlDT1RFQVUgVkVSVCBDTy4sIExURC4KKzAwMTExNiAgICAgKGJhc2UgMTYpCQlDT1RFQVUgVkVSVCBDTy4sIExURC4KKwkJCQkzLTMtMTkgS0FDSElET0tJCisJCQkJQ0hVTy1LVSBUT0tZTyAxMDQtMDA1NAorCQkJCUpBUEFOCisKKzAwLTExLTE3ICAgKGhleCkJCUNFU05FVAorMDAxMTE3ICAgICAoYmFzZSAxNikJCUNFU05FVAorCQkJCVppa292YSA0CisJCQkJUHJhaGEgNiAgMTYwIDAwCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMTEtMTggICAoaGV4KQkJQkxYIElDIERlc2lnbiBDb3JwLiwgTHRkLgorMDAxMTE4ICAgICAoYmFzZSAxNikJCUJMWCBJQyBEZXNpZ24gQ29ycC4sIEx0ZC4KKwkJCQlSbSAxMDA2LCBRdWFudHVtIFBsYXphCisJCQkJTm8uMjcsIFpoaWNodW4gUmQsIEhhaWRhbgorCQkJCUJlaWppbmcgIDEwMDA4MworCQkJCUNISU5BCisKKzAwLTExLTE5ICAgKGhleCkJCVNvbHRlcmFzLCBJbmMuCiswMDExMTkgICAgIChiYXNlIDE2KQkJU29sdGVyYXMsIEluYy4KKwkJCQk5MDAgVy4gU2FudGEgQW5pdGEgU3RyZWV0CisJCQkJU2FuIEdhYnJpZWwgQ0EgOTE3NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTFBICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDExMUEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0xQiAgIChoZXgpCQlUYXJnYSBTeXN0ZW1zIERpdiBMLTMgQ29tbXVuaWNhdGlvbnMgQ2FuYWRhCiswMDExMUIgICAgIChiYXNlIDE2KQkJVGFyZ2EgU3lzdGVtcyBEaXYgTC0zIENvbW11bmljYXRpb25zIENhbmFkYQorCQkJCTIwODEgTWVyaXZhbGUgUmQKKwkJCQlTdWl0ZSAyMDAKKwkJCQlPdHRhd2EgT250IEsyRyAxRzkKKwkJCQlDQU5BREEKKworMDAtMTEtMUMgICAoaGV4KQkJUGxlb3JhIFRlY2hub2xvZ2llcyBJbmMuCiswMDExMUMgICAgIChiYXNlIDE2KQkJUGxlb3JhIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMzU5IFRlcnJ5IEZveCBEcml2ZSwgU3VpdGUgMjMwCisJCQkJS2FuYXRhIE9OIEsySyAyRTcKKwkJCQlDQU5BREEKKworMDAtMTEtMUQgICAoaGV4KQkJSGVjdHJpeCBMaW1pdGVkCiswMDExMUQgICAgIChiYXNlIDE2KQkJSGVjdHJpeCBMaW1pdGVkCisJCQkJVW5pdCA5MDYtOTExLCA5L0YsIFN0YW5ob3BlIEhvc3VlLAorCQkJCTczNC03MzggS2luZydzIFJvYWQsCisJCQkJTm9ydGggUG9pbnQgSG9uZyBLb25nIAorCQkJCUNISU5BCisKKzAwLTExLTFFICAgKGhleCkJCUVQU0cgKEV0aGVybmV0IFBvd2VybGluayBTdGFuZGFyZGl6YXRpb24gR3JvdXApCiswMDExMUUgICAgIChiYXNlIDE2KQkJRVBTRyAoRXRoZXJuZXQgUG93ZXJsaW5rIFN0YW5kYXJkaXphdGlvbiBHcm91cCkKKwkJCQljL28gVW5pdmVyc2l0eSBvZiBBcHBsaWVkIFNjaWVuY2VzCisJCQkJUE8gQm94IDgwNQorCQkJCVdpbnRlcnRodXIgWkggQ0gtODQwMQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTExLTFGICAgKGhleCkJCURvcmVtaSBMYWJzLCBJbmMuCiswMDExMUYgICAgIChiYXNlIDE2KQkJRG9yZW1pIExhYnMsIEluYy4KKwkJCQkzMDYgRS4gQWxhbWVkYSBBdmUuCisJCQkJQnVyYmFuayBDQSA5MTUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMTIwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMTIxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjIgICAoaGV4KQkJQ0lNU1lTIEluYworMDAxMTIyICAgICAoYmFzZSAxNikJCUNJTVNZUyBJbmMKKwkJCQkjMzAxLFNpbnN1bmctY2xlYW4gQkxERywxNDAsIE5vbmdzZW8tUmksS2loZXVuZy1FdXAKKwkJCQlZb25naW4tQ2l0eSBLeXVuZ2dpLURvIDQ0OS03MTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtMjMgICAoaGV4KQkJQXBwb2ludGVjaCwgSW5jLgorMDAxMTIzICAgICAoYmFzZSAxNikJCUFwcG9pbnRlY2gsIEluYy4KKwkJCQk2Ri0yIE5vLjE5MiBUdW5nLUt1YW4gUmQuCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS0yNCAgIChoZXgpCQlBcHBsZSBDb21wdXRlcgorMDAxMTI0ICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyCisJCQkJMSBJbmlmaW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjUgICAoaGV4KQkJSUJNIENvcnAKKzAwMTEyNSAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTI2ICAgKGhleCkJCVZlbnN0YXIgSW5jLgorMDAxMTI2ICAgICAoYmFzZSAxNikJCVZlbnN0YXIgSW5jLgorCQkJCTkyNTAgT3dlbnNtb3V0aCBBdmUuCisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtMjcgICAoaGV4KQkJVEFTSSwgSW5jCiswMDExMjcgICAgIChiYXNlIDE2KQkJVEFTSSwgSW5jCisJCQkJNTU1MSBEcnkgRm9yayBSb2FkCisJCQkJQ2xldmVzIE9IIDQ1MDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0yOCAgIChoZXgpCQlTdHJlYW1pdAorMDAxMTI4ICAgICAoYmFzZSAxNikJCVN0cmVhbWl0CisJCQkJRmxpZ2h0IEZvcnVtIDM1NDMKKwkJCQlFaW5kaG92ZW4gNTY1NyBEVworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTExLTI5ICAgKGhleCkJCVBhcmFkaXNlIERhdGFjb20gTHRkLgorMDAxMTI5ICAgICAoYmFzZSAxNikJCVBhcmFkaXNlIERhdGFjb20gTHRkLgorCQkJCTEgV2hlYXRvbiBSb2FkCisJCQkJV2l0aGFtIEVzc2V4IFVLIENNOCAxVUoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS0yQSAgIChoZXgpCQlOaWtvIE5WCiswMDExMkEgICAgIChiYXNlIDE2KQkJTmlrbyBOVgorCQkJCUluZHVzdHJpZXBhcmsgV2VzdCA0MAorCQkJCVNpbnQtTmlrbGFhcyBPL1YgOTEwMAorCQkJCUJFTEdJVU0KKworMDAtMTEtMkIgICAoaGV4KQkJTmV0TW9kdWxlIEFHCiswMDExMkIgICAgIChiYXNlIDE2KQkJTmV0TW9kdWxlIEFHCisJCQkJTWVyaWVkd2VnIDExCisJCQkJTmllZGVyd2FuZ2VuIENIIDMxNzIKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xMS0yQyAgIChoZXgpCQlJWlQgR21iSAorMDAxMTJDICAgICAoYmFzZSAxNikJCUlaVCBHbWJICisJCQkJQW0gV2VpY2hzZWxnYXJ0ZW4gNQorCQkJCUVybGFuZ2VuIEJhdmFyaWEgOTEwNTgKKwkJCQlHRVJNQU5ZCisKKzAwLTExLTJEICAgKGhleCkJCWlQdWxzZSBTeXN0ZW1zCiswMDExMkQgICAgIChiYXNlIDE2KQkJaVB1bHNlIFN5c3RlbXMKKwkJCQkxc3QgRmxvb3IgTm92ZWxsIEhvdXNlLCBNb3JuaW5nc2lkZSBXZWRnZSBPZmZpY2UgUGFyaworCQkJCTI1NSBSaXZvbmlhIFJvYWQKKwkJCQlNb3JuaW5nc2lkZSBKb2hhbm5lc2J1cmcgMjEyOAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xMS0yRSAgIChoZXgpCQlDRUlDT00KKzAwMTEyRSAgICAgKGJhc2UgMTYpCQlDRUlDT00KKwkJCQkxNyBydWUgR2FzdG9uIEV2cmFyZAorCQkJCVRvdWxvdXNlIENlZGV4IDEgSGF1dGUtR2Fyb25uZSAzMTA5NAorCQkJCUZSQU5DRQorCiswMC0xMS0yRiAgIChoZXgpCQlBU1VTVGVrIENvbXB1dGVyIEluYy4KKzAwMTEyRiAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENvbXB1dGVyIEluYy4KKwkJCQlOby4xNTAsIExpLVRlIFJkLiwgUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTMwICAgKGhleCkJCUFsbGllZCBUZWxlc2lzIChIb25nIEtvbmcpIEx0ZC4KKzAwMTEzMCAgICAgKGJhc2UgMTYpCQlBbGxpZWQgVGVsZXNpcyAoSG9uZyBLb25nKSBMdGQuCisJCQkJUm9vbSBGLCAzL0YsIFlldW5nIFlpdSBDaG9uZyAobm8uIDgpIEluZHVzdHJpYWwgYnVpbGRpbmcsCisJCQkJMjAgV2FuZyBIb2kgUm9hZCwgS293bG9vbiBCYXksCisJCQkJSE9ORyBLT05HCisKKzAwLTExLTMxICAgKGhleCkJCVVOQVRFQ0guIENPLixMVEQKKzAwMTEzMSAgICAgKGJhc2UgMTYpCQlVTkFURUNILiBDTy4sTFRECisJCQkJQS03MjcgLEdFT1BZVU5HIFRPV04sMjAzLTEKKwkJCQlOT05IWVVORy1ET05HCisJCQkJS0FOR05BTS1HVSBTRU9VTCAxMzUtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLTMyICAgKGhleCkJCVN5bm9sb2d5IEluY29ycG9yYXRlZAorMDAxMTMyICAgICAoYmFzZSAxNikJCVN5bm9sb2d5IEluY29ycG9yYXRlZAorCQkJCTZGLTIsIE5vLjEwNiwgQ2hhbmcgQW4gVy4gUmQuLAorCQkJCVRhaXBlaSAgMTAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS0zMyAgIChoZXgpCQlTaWVtZW5zIEF1c3RyaWEgU0lNRUEKKzAwMTEzMyAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEF1c3RyaWEgU0lNRUEKKwkJCQlTaWVtZW5zc3RyYXNzZSA5MC05MgorCQkJCVZpZW5uYSAgMTIxMAorCQkJCUFVU1RSSUEKKworMDAtMTEtMzQgICAoaGV4KQkJTWVkaWFDZWxsLCBJbmMuCiswMDExMzQgICAgIChiYXNlIDE2KQkJTWVkaWFDZWxsLCBJbmMuCisJCQkJNjAwIDE3dGggU3QKKwkJCQlTdWl0ZSAyODAwIFNvdXRoCisJCQkJRGVudmVyIENPIDgwMjAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS0zNSAgIChoZXgpCQlHcmFuZGV5ZSBMdGQKKzAwMTEzNSAgICAgKGJhc2UgMTYpCQlHcmFuZGV5ZSBMdGQKKwkJCQk2IEh1eGxleSBSb2FkCisJCQkJU3VycmV5IFJlc2VhcmNoIFBhcmsKKwkJCQlHdWlsZGZvcmQgU3VycmV5IEdVMiA3UkUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS0zNiAgIChoZXgpCQlHb29kcmljaCBTZW5zb3IgU3lzdGVtcworMDAxMTM2ICAgICAoYmFzZSAxNikJCUdvb2RyaWNoIFNlbnNvciBTeXN0ZW1zCisJCQkJMTQzMDAgSnVkaWNpYWwgUm9hZAorCQkJCUJ1cm5zdmlsbGUgTWlubmVzb3RhIDU1MzA2LTQ4OTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTM3ICAgKGhleCkJCUFJQ0hJIEVMRUNUUklDIENPLiwgTFRELgorMDAxMTM3ICAgICAoYmFzZSAxNikJCUFJQ0hJIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTEKKwkJCQlhaWNoaS1jaG8KKwkJCQlrYXN1Z2FpIGNpdHkgYWljaGkgcHJlZi4gNDg2LTg2NjYKKwkJCQlKQVBBTgorCiswMC0xMS0zOCAgIChoZXgpCQlUQUlTSElOIENPLiwgTFRELgorMDAxMTM4ICAgICAoYmFzZSAxNikJCVRBSVNISU4gQ08uLCBMVEQuCisJCQkJMjAwLTcgTmFrYW5vCisJCQkJTmFrYW5vIE5hZ2FubyAzODMtMDAxMworCQkJCUpBUEFOCisKKzAwLTExLTM5ICAgKGhleCkJCVNUT0VCRVIgQU5UUklFQlNURUNITklLIEdtYkggKyBDby4gS0cuCiswMDExMzkgICAgIChiYXNlIDE2KQkJU1RPRUJFUiBBTlRSSUVCU1RFQ0hOSUsgR21iSCArIENvLiBLRy4KKwkJCQlLaWVzZWxicm9ubmVyIFN0ci4gMTIKKwkJCQlQZm9yemhlaW0gIDc1MTc3CisJCQkJR0VSTUFOWQorCiswMC0xMS0zQSAgIChoZXgpCQlTSElOQk9SQU0KKzAwMTEzQSAgICAgKGJhc2UgMTYpCQlTSElOQk9SQU0KKwkJCQk0RiBEQUhOV09STEQgQlVJTERJTkcsIDE1NC0xMSBTQU1TVU5HLURPTkcKKwkJCQlLQU5HTkFNLUdVLAorCQkJCVNFT1VMICAxMzUtODc5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLTNCICAgKGhleCkJCU1pY3JvbmV0IENvbW11bmljYXRpb25zIEluYy4KKzAwMTEzQiAgICAgKGJhc2UgMTYpCQlNaWNyb25ldCBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJMTJGLTEsIE5vLiAxMDAsIE1pbi1DaHVhbiBSb2FkCisJCQkJSHNpbi1UaWVuIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTNDICAgKGhleCkJCU1pY3JvbmFzIEdtYkgKKzAwMTEzQyAgICAgKGJhc2UgMTYpCQlNaWNyb25hcyBHbWJICisJCQkJSGFucy1CdW50ZS1TdHJhc3NlIDE5CisJCQkJRnJlaWJ1cmcgQlcgRC03OTEwOAorCQkJCUdFUk1BTlkKKworMDAtMTEtM0QgICAoaGV4KQkJS04gU09MVEVDIENPLixMVEQuCiswMDExM0QgICAgIChiYXNlIDE2KQkJS04gU09MVEVDIENPLixMVEQuCisJCQkJOThCLTVMIE5BTURPTkcgSU5EVVNUUklBTCBDT01QTEVYICM2NjItNCBHT0pBTi1ET05HCisJCQkJTkFNRE9ORy1HVSBJTkNIRU9OIDQwNS04MTgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtM0UgICAoaGV4KQkJSkwgQ29ycG9yYXRpb24KKzAwMTEzRSAgICAgKGJhc2UgMTYpCQlKTCBDb3Jwb3JhdGlvbgorCQkJCTQtNC0xNyBTVUdFCisJCQkJVEFNQS1LVQorCQkJCUtBV0FTQUtJLUNJVFkgS0FOQUdBV0EtS0VOIDIxNC0wMDAxCisJCQkJSkFQQU4KKworMDAtMTEtM0YgICAoaGV4KQkJQWxjYXRlbCBESQorMDAxMTNGICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgREkKKwkJCQlaSSBsYXZvaXNpZXIKKwkJCQlFVSBOb3JtYW5kaWUgNzYyNjAKKwkJCQlGUkFOQ0UKKworMDAtMTEtNDAgICAoaGV4KQkJTmFub21ldHJpY3MgSW5jLgorMDAxMTQwICAgICAoYmFzZSAxNikJCU5hbm9tZXRyaWNzIEluYy4KKwkJCQkyNTAgSGVyemJlcmcgUmQuCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLIDJBMQorCQkJCUNBTkFEQQorCiswMC0xMS00MSAgIChoZXgpCQlHb29kTWFuIENvcnBvcmF0aW9uCiswMDExNDEgICAgIChiYXNlIDE2KQkJR29vZE1hbiBDb3Jwb3JhdGlvbgorCQkJCTJGLCBOby41NzIsIFNlYy4xLCBNaW5nLVNoZW5nIE4gUm9hZCwgS3dlaS1TaGFuIEhzaWFuZworCQkJCVRhb3l1YW4gSHNpZW4gIDMzMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS00MiAgIChoZXgpCQllLVNNQVJUQ09NICBJTkMuCiswMDExNDIgICAgIChiYXNlIDE2KQkJZS1TTUFSVENPTSAgSU5DLgorCQkJCTNGLCAyMTYsIEltb2stRG9uZworCQkJCUphbmdBbi1LdQorCQkJCVN1d29uIEt5b3VuZ2tpLURvIDQ0MC0zMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtNDMgICAoaGV4KQkJREVMTCBJTkMuCiswMDExNDMgICAgIChiYXNlIDE2KQkJREVMTCBJTkMuCisJCQkJT25lIERlbGwgV2F5CisJCQkJUlI1IE1TLTg1NDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS00NCAgIChoZXgpCQlBc3N1cmFuY2UgVGVjaG5vbG9neSBDb3JwCiswMDExNDQgICAgIChiYXNlIDE2KQkJQXNzdXJhbmNlIFRlY2hub2xvZ3kgQ29ycAorCQkJCTYzMDQgUG90b21hYyBBdmVudWUKKwkJCQlBbGV4YW5kcmlhIFZpcmdpbmlhIDIyMzA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS00NSAgIChoZXgpCQlWYWx1ZVBvaW50IE5ldHdvcmtzCiswMDExNDUgICAgIChiYXNlIDE2KQkJVmFsdWVQb2ludCBOZXR3b3JrcworCQkJCTM1MCBUb3duc2VuZCBTdCBTdGUgMzIwCisJCQkJU2FuIEZyYW5jaXNjbywgQ0EgOTQxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTQ2ICAgKGhleCkJCVRlbGVjYXJkLVByaWJvciBMdGQKKzAwMTE0NiAgICAgKGJhc2UgMTYpCQlUZWxlY2FyZC1Qcmlib3IgTHRkCisJCQkJTHVzdGRvcmZza2F5YSBkb3JvZ2EsIDE2MgorCQkJCU9kZXNzYSAgNjUxMTUKKwkJCQlVS1JBSU5FCisKKzAwLTExLTQ3ICAgKGhleCkJCVNlY29tLUluZHVzdHJ5IGNvLkxURC4KKzAwMTE0NyAgICAgKGJhc2UgMTYpCQlTZWNvbS1JbmR1c3RyeSBjby5MVEQuCisJCQkJRnVrdW8ga2FLdXJhbW90byBJY2hpaG9ua2kgMy0zCisJCQkJU2hpcm9pc2hpIE1peWFnaSA5ODktMDI5NQorCQkJCUpBUEFOCisKKzAwLTExLTQ4ICAgKGhleCkJCVByb2xvbiBDb250cm9sIFN5c3RlbXMKKzAwMTE0OCAgICAgKGJhc2UgMTYpCQlQcm9sb24gQ29udHJvbCBTeXN0ZW1zCisJCQkJSGVyc3RlZHZlc3RlcnN0cmFlZGUgNTYKKwkJCQlBbGJlcnRzbHVuZCAgREstMjYyMAorCQkJCURFTk1BUksKKworMDAtMTEtNDkgICAoaGV4KQkJUHJvbGlwaGl4IEluYy4KKzAwMTE0OSAgICAgKGJhc2UgMTYpCQlQcm9saXBoaXggSW5jLgorCQkJCTY2IFRhZG11Y2sgUmQuCisJCQkJV2VzdGZvcmQgTUEgMDE4ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTRBICAgKGhleCkJCUtBWUFCQSBJTkRVU1RSWSBDbywuTHRkLgorMDAxMTRBICAgICAoYmFzZSAxNikJCUtBWUFCQSBJTkRVU1RSWSBDbywuTHRkLgorCQkJCVdvcmxkIFRyYWRlIENlbnRlciBCbGRnLiwgNC0xCisJCQkJSGFtYW1hdHN1LWNobyAyLWNob21lLAorCQkJCU1pbmF0by1rdSwgVG9reW8gTWV0by4gMTA1LTYxMTEKKwkJCQlKQVBBTgorCiswMC0xMS00QiAgIChoZXgpCQlGcmFuY290eXAtUG9zdGFsaWEgR21iSAorMDAxMTRCICAgICAoYmFzZSAxNikJCUZyYW5jb3R5cC1Qb3N0YWxpYSBHbWJICisJCQkJVHJpZnR3ZWcgMjEtMjYKKwkJCQlCaXJrZW53ZXJkZXIgQnJhbmRlbmJ1cmcgMTY1NDcKKwkJCQlHRVJNQU5ZCisKKzAwLTExLTRDICAgKGhleCkJCWNhZmZlaW5hIGFwcGxpZWQgcmVzZWFyY2ggbHRkLgorMDAxMTRDICAgICAoYmFzZSAxNikJCWNhZmZlaW5hIGFwcGxpZWQgcmVzZWFyY2ggbHRkLgorCQkJCTEyNSBiYWlyZCBhdmUKKwkJCQljb2NocmFuZSBhbGJlcnRhIHQ0YyAxYzcKKwkJCQlDQU5BREEKKworMDAtMTEtNEQgICAoaGV4KQkJQXRzdW1pIEVsZWN0cmljIENvLixMVEQuCiswMDExNEQgICAgIChiYXNlIDE2KQkJQXRzdW1pIEVsZWN0cmljIENvLixMVEQuCisJCQkJNC0yLTIgU2hpbi1NaXlha29kYSwgS2l0YS1rdQorCQkJCUhhbWFtYXRzdSBTaGl6dW9rYSA0MzEtMjEwMworCQkJCUpBUEFOCisKKzAwLTExLTRFICAgKGhleCkJCTY5MDg4NSBPbnRhcmlvIEluYy4KKzAwMTE0RSAgICAgKGJhc2UgMTYpCQk2OTA4ODUgT250YXJpbyBJbmMuCisJCQkJMjA1IEFubmFnZW0gQmx2ZC4KKwkJCQlNaXNzaXNzYXVnYSBPbnRhcmlvIEw1VCAyVjEKKwkJCQlDQU5BREEKKworMDAtMTEtNEYgICAoaGV4KQkJVVMgRGlnaXRhbCBUZWxldmlzaW9uLCBJbmMKKzAwMTE0RiAgICAgKGJhc2UgMTYpCQlVUyBEaWdpdGFsIFRlbGV2aXNpb24sIEluYworCQkJCTU4MDcgTi4gQW5kcmV3cyBXYXkKKwkJCQlGb3J0IExhdWRlcmRhbGUgRkwgMzMzMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTUwICAgKGhleCkJCUJlbGtpbiBDb3Jwb3JhdGlvbgorMDAxMTUwICAgICAoYmFzZSAxNikJCUJlbGtpbiBDb3Jwb3JhdGlvbgorCQkJCTUwMSBXZXN0IFdhbG51dCBTdHJlZXQKKwkJCQlDb21wdG9uIENBIDkwMjIwLTUyMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTUxICAgKGhleCkJCU15a290cm9ueAorMDAxMTUxICAgICAoYmFzZSAxNikJCU15a290cm9ueAorCQkJCTM1OSBWYW4gTmVzcyBXYXkKKwkJCQlUb3JyYW5jZSBDQSA5MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNTIgICAoaGV4KQkJRWlkc3ZvbGwgRWxlY3Ryb25pY3MgQVMKKzAwMTE1MiAgICAgKGJhc2UgMTYpCQlFaWRzdm9sbCBFbGVjdHJvbmljcyBBUworCQkJCU5lZHJlIFZpbGJlcmcgdmVpIDgKKwkJCQlFaWRzdm9sbCAgTi0yMDgwCisJCQkJTk9SV0FZCisKKzAwLTExLTUzICAgKGhleCkJCVRyaWRlbnQgVGVrLCBJbmMuCiswMDExNTMgICAgIChiYXNlIDE2KQkJVHJpZGVudCBUZWssIEluYy4KKwkJCQk4MDQxIENlc3NuYSBBdmUgIzIwMAorCQkJCUdhaXRoZXJzYnVyZyBNRCAyMDg3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNTQgICAoaGV4KQkJV2VicHJvIFRlY2hub2xvZ2llcyBJbmMuCiswMDExNTQgICAgIChiYXNlIDE2KQkJV2VicHJvIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMkYtMSwgTm8uODEsIFNlYy4gNCwgQ2h1bmdjaGluZyBOLiBSZC4sCisJCQkJU2hybGluIENoaXUKKwkJCQlUYWlwZWkgIDExMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtNTUgICAoaGV4KQkJU2V2aXMgU3lzdGVtcworMDAxMTU1ICAgICAoYmFzZSAxNikJCVNldmlzIFN5c3RlbXMKKwkJCQkyODA1IE4gRGFsbGFzIFBhcmt3YXksIFNURSA1MzAKKwkJCQlQbGFubyBUZXhhcyA3NTA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNTYgICAoaGV4KQkJUGhhcm9zIFN5c3RlbXMgTloKKzAwMTE1NiAgICAgKGJhc2UgMTYpCQlQaGFyb3MgU3lzdGVtcyBOWgorCQkJCUxldmVsIDMsIDEyMyBDYXJsdG9uIEdvcmUgUm9hZAorCQkJCUdyYWZ0b24KKwkJCQlBdWNrbGFuZCBOWiAxMDAxCisJCQkJTkVXIFpFQUxBTkQKKworMDAtMTEtNTcgICAoaGV4KQkJT0YgTmV0d29ya3MgQ28uLCBMdGQuCiswMDExNTcgICAgIChiYXNlIDE2KQkJT0YgTmV0d29ya3MgQ28uLCBMdGQuCisJCQkJMS0zLUNiNCBOYWthc2UsIE1paGFtYS1rdQorCQkJCUNoaWJhIENpdHkgQ2hpYmEgMjYxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xMS01OCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMTE1OCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xMS01OSAgIChoZXgpCQlNQVRJU1NFIE5FVFdPUktTIElOQworMDAxMTU5ICAgICAoYmFzZSAxNikJCU1BVElTU0UgTkVUV09SS1MgSU5DCisJCQkJMzM5IE4gQkVSTkFSRE8gQVZFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNUEgICAoaGV4KQkJSXZvY2xhciBWaXZhZGVudCBBRworMDAxMTVBICAgICAoYmFzZSAxNikJCUl2b2NsYXIgVml2YWRlbnQgQUcKKwkJCQlCZW5kZXJlcnN0cmFzc2UgMgorCQkJCVNjaGFhbiAgOTQ5NAorCQkJCUxJRUNIVEVOU1RFSU4KKworMDAtMTEtNUIgICAoaGV4KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uIChFQ1MpCiswMDExNUIgICAgIChiYXNlIDE2KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uIChFQ1MpCisJCQkJTm8uMjIsIEFsbGV5IDM4LCBMYW5lIDkxLCBTZWMuIDEsIE5laSBIdSBSb2FkLAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS01QyAgIChoZXgpCQlDaXNjbworMDAxMTVDICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTVEICAgKGhleCkJCUNpc2NvCiswMDExNUQgICAgIChiYXNlIDE2KQkJQ2lzY28KKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNUUgICAoaGV4KQkJUHJvTWluZW50IERvc2llcnRlY2huaWsgR21iSAorMDAxMTVFICAgICAoYmFzZSAxNikJCVByb01pbmVudCBEb3NpZXJ0ZWNobmlrIEdtYkgKKwkJCQlJbSBTY2h1bWFjaGVyZ2V3YW5uIDUtMTEKKwkJCQlIZWlkZWxiZXJnIEJXIDY5MTIzCisJCQkJR0VSTUFOWQorCiswMC0xMS01RiAgIChoZXgpCQlJVFggU2VjdXJpdHkgQ28uLCBMdGQuCiswMDExNUYgICAgIChiYXNlIDE2KQkJSVRYIFNlY3VyaXR5IENvLiwgTHRkLgorCQkJCTlGIEtvbG9uIERpZ2l0YWwgVG93ZXIgQXN0b24gQmxkZy4gNTA1LTE0CisJCQkJR2FzYW4tZG9uZyBHZXVtY2hlb24tZ3UgU0VPVUwgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS02MCAgIChoZXgpCQlBUlRESU8gQ29tcGFueSBDby4sIExURAorMDAxMTYwICAgICAoYmFzZSAxNikJCUFSVERJTyBDb21wYW55IENvLiwgTFRECisJCQkJN3RoIEZMLi4sIE5vLjQ3NiwgTWluLUh1IFJELiwgSHNpbi1DaHUsCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS02MSAgIChoZXgpCQlOZXRTdHJlYW1zLCBMTEMKKzAwMTE2MSAgICAgKGJhc2UgMTYpCQlOZXRTdHJlYW1zLCBMTEMKKwkJCQkzNjAwIFcuIFBhcm1lciBMYW5lCisJCQkJU3VpdGUgMTAwCisJCQkJQXVzdGluIFRYIDc4NzI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS02MiAgIChoZXgpCQlTVEFSIE1JQ1JPTklDUyBDTy4sTFRELgorMDAxMTYyICAgICAoYmFzZSAxNikJCVNUQVIgTUlDUk9OSUNTIENPLixMVEQuCisJCQkJNTM2IFNoaW1penVuYW5hdHN1c2hpbnlhCisJCQkJU2hpenVva2EgIDQyNC0wMDY2CisJCQkJSkFQQU4KKworMDAtMTEtNjMgICAoaGV4KQkJU1lTVEVNIFNQQSBERVBULiBFTEVDVFJPTklDUworMDAxMTYzICAgICAoYmFzZSAxNikJCVNZU1RFTSBTUEEgREVQVC4gRUxFQ1RST05JQ1MKKwkJCQlWSUEgR0hJQVJPTEEgVkVDQ0hJQSA3MworCQkJCUZJT1JBTk8gTU9ERU5FU0UgTU9ERU5BIEktNDEwNDIKKwkJCQlJVEFMWQorCiswMC0xMS02NCAgIChoZXgpCQlBQ0FSRCBUZWNobm9sb2d5IENvcnAuCiswMDExNjQgICAgIChiYXNlIDE2KQkJQUNBUkQgVGVjaG5vbG9neSBDb3JwLgorCQkJCTZGIE5vLjc4IFNlYzEgS3dhbmcgRnUgUm9hZCwgU2FuY2h1bmcsCisJCQkJVGFpcGVpIEhzaWVuICAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTY1ICAgKGhleCkJCVpueXggTmV0d29ya3MKKzAwMTE2NSAgICAgKGJhc2UgMTYpCQlabnl4IE5ldHdvcmtzCisJCQkJNDg0MjEgTWlsbW9udCBEcml2ZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTY2ICAgKGhleCkJCVRhZWxpbSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMTE2NiAgICAgKGJhc2UgMTYpCQlUYWVsaW0gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJMTk2LTUsIEFOWUFORzctRE9ORyBNQU5BTi1HVQorCQkJCUFOWUFORy1TSSBLWVVHR0ktRE8gNDMwLTgxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS02NyAgIChoZXgpCQlJbnRlZ3JhdGVkIFN5c3RlbSBTb2x1dGlvbiBDb3JwLgorMDAxMTY3ICAgICAoYmFzZSAxNikJCUludGVncmF0ZWQgU3lzdGVtIFNvbHV0aW9uIENvcnAuCisJCQkJM0YsIE5vLiAyLTEsIGluZHVzdHJ5IEVhc3QgUmQuLCBJCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTY4ICAgKGhleCkJCUhvbWVMb2dpYyBMTEMKKzAwMTE2OCAgICAgKGJhc2UgMTYpCQlIb21lTG9naWMgTExDCisJCQkJMTAwIEhvb2RzIExhbmUKKwkJCQlNYXJibGVoZWFkIE1BIDAxOTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS02OSAgIChoZXgpCQlFTVMgU2F0Y29tCiswMDExNjkgICAgIChiYXNlIDE2KQkJRU1TIFNhdGNvbQorCQkJCUdyZWVuIExhbmUKKwkJCQlBc2hjaHVyY2gKKwkJCQlUZXdrZXNidXJ5IEdsb3VjZXN0ZXJzaGlyZSBHTDIwIDhIRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLTZBICAgKGhleCkJCURvbW8gTHRkCiswMDExNkEgICAgIChiYXNlIDE2KQkJRG9tbyBMdGQKKwkJCQlXZXNzZXggSG91c2UKKwkJCQlVcHBlciBNYXJrZXQgU3RyZWV0CisJCQkJRWFzdGxlaWdoIEhhbXBzaGlyZSBTTzUwIDlGRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLTZCICAgKGhleCkJCURpZ2l0YWwgRGF0YSBDb21tdW5pY2F0aW9ucyBBc2lhIENvLixMdGQKKzAwMTE2QiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIERhdGEgQ29tbXVuaWNhdGlvbnMgQXNpYSBDby4sTHRkCisJCQkJOEYsTm8uNDEsTGFuZSAyMjEsS2FuZy1DaGllbiBSRC4sTmVpLUh1IERpcy4sCisJCQkJVGFpcGVpIENpdHkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtNkMgICAoaGV4KQkJTmFud2FuZyBNdWx0aW1lZGlhIEluYy4sTHRkCiswMDExNkMgICAgIChiYXNlIDE2KQkJTmFud2FuZyBNdWx0aW1lZGlhIEluYy4sTHRkCisJCQkJRmxvb3IgMTIsVGlhbnl1YW4gQmxkZyxXZW5zYW4gUmQjNTA4CisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEzCisJCQkJQ0hJTkEKKworMDAtMTEtNkQgICAoaGV4KQkJQW1lcmljYW4gVGltZSBhbmQgU2lnbmFsCiswMDExNkQgICAgIChiYXNlIDE2KQkJQW1lcmljYW4gVGltZSBhbmQgU2lnbmFsCisJCQkJMTQwIFRoaXJkIFN0LiBTb3V0aAorCQkJCURhc3NlbCBNTiA1NTMyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNkUgICAoaGV4KQkJUGVQTGluayBMdGQuCiswMDExNkUgICAgIChiYXNlIDE2KQkJUGVQTGluayBMdGQuCisJCQkJMTcvRi4sIFBhcmsgQnVpbGRpbmcKKwkJCQk0NzYgQ2FzdGxlIFBlYWsgUm9hZAorCQkJCUNoZXVuZyBTaGEgV2FuIEtvd2xvb24gCisJCQkJSE9ORyBLT05HCisKKzAwLTExLTZGICAgKGhleCkJCU5ldGZvcnlvdSBDby4sIExURC4KKzAwMTE2RiAgICAgKGJhc2UgMTYpCQlOZXRmb3J5b3UgQ28uLCBMVEQuCisJCQkJMTEyMS00IDNGLCAgS3dhbnlhbmctZG9uZywgRG9uZ2FuLWd1CisJCQkJQW55YW5nLXNpIEt5dW5nZ2ktZG8gNDMxLTgwNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS03MCAgIChoZXgpCQlHU0MgU1JMCiswMDExNzAgICAgIChiYXNlIDE2KQkJR1NDIFNSTAorCQkJCVZJQSBQRVIgVklNRVJDQVRFCisJCQkJVVNNQVRFIFZFTEFURSBNSUxBTk8gMjAwNDAKKwkJCQlJVEFMWQorCiswMC0xMS03MSAgIChoZXgpCQlERVhURVIgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTE3MSAgICAgKGJhc2UgMTYpCQlERVhURVIgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyRiBTaGluc3VuZyBCL0QgNDA0LTEKKwkJCQlCYWNraHl1bi1Eb25nLCBCdW5kYW5nLUd1CisJCQkJU3VuZ25hbSBHeXVuZ2dpIDQ2My00MjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtNzIgICAoaGV4KQkJQ09UUk9OIENPUlBPUkFUSU9OCiswMDExNzIgICAgIChiYXNlIDE2KQkJQ09UUk9OIENPUlBPUkFUSU9OCisJCQkJMTJGTCxOby4xNTAsU2VjLjQsQ2hlbmctRGUgUmQKKwkJCQlTaGlobGluIERpc3RyaWN0CisJCQkJVGFpcGVpIENpdHkgIDExMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtNzMgICAoaGV4KQkJU01BUlQgU3RvcmFnZSBTeXN0ZW1zCiswMDExNzMgICAgIChiYXNlIDE2KQkJU01BUlQgU3RvcmFnZSBTeXN0ZW1zCisJCQkJMzk4NzAgRXVyZWthIERyaXZlCisJCQkJTmV3YXJrIENBIDk0NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS03NCAgIChoZXgpCQlXaWJodSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTE3NCAgICAgKGJhc2UgMTYpCQlXaWJodSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxNTYxIEJsYWNraGF3ayBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtNzUgICAoaGV4KQkJUGF0aFNjYWxlLCBJbmMuCiswMDExNzUgICAgIChiYXNlIDE2KQkJUGF0aFNjYWxlLCBJbmMuCisJCQkJNDc3IE4uIE1hdGhpbGRhIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTc2ICAgKGhleCkJCUludGVsbGFtYmRhIFN5c3RlbXMsIEluYy4KKzAwMTE3NiAgICAgKGJhc2UgMTYpCQlJbnRlbGxhbWJkYSBTeXN0ZW1zLCBJbmMuCisJCQkJNDg1MDEgV2FybSBTcHJpbmdzIEJsdmQsICMxMDcKKwkJCQlGcmVtb250IENhbGlmb3JuaWEgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTc3ICAgKGhleCkJCUNvYXhpYWwgTmV0d29ya3MsIEluYy4KKzAwMTE3NyAgICAgKGJhc2UgMTYpCQlDb2F4aWFsIE5ldHdvcmtzLCBJbmMuCisJCQkJNDYzMyBPbGQgSXJvbnNpZGVzIERyCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTc4ICAgKGhleCkJCUNoaXJvbiBUZWNobm9sb2d5IEx0ZAorMDAxMTc4ICAgICAoYmFzZSAxNikJCUNoaXJvbiBUZWNobm9sb2d5IEx0ZAorCQkJCVd5dm9scyBDb3VydAorCQkJCVN3YWxsb3dmaWVsZAorCQkJCVJlYWRpbmcgQmVya3NoaXJlIFJHNyAxV1kKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS03OSAgIChoZXgpCQlTaW5ndWxhciBUZWNobm9sb2d5IENvLiBMdGQuCiswMDExNzkgICAgIChiYXNlIDE2KQkJU2luZ3VsYXIgVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCTIxRiwgTm8uMzcsIFNlYy4yLCBTYW4gTWluIFJkLiwKKwkJCQlQYW4gQ2hpYW8gQ2l0eSwgVGFpcGVpIENvdW50eQorCQkJCVRhaXBlaSAgMjIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS03QSAgIChoZXgpCQlTaW5naW0gSW50ZXJuYXRpb25hbCBDb3JwLgorMDAxMTdBICAgICAoYmFzZSAxNikJCVNpbmdpbSBJbnRlcm5hdGlvbmFsIENvcnAuCisJCQkJNkYtMiwgTm8uIDE5MCwgU2VjLiAyIENodW5nIEhzaW4gUm9hZCwKKwkJCQlIc2luIFRpZW4gQ2l0eSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS03QiAgIChoZXgpCQlCw7xjaGkgTGFib3J0ZWNobmlrIEFHCiswMDExN0IgICAgIChiYXNlIDE2KQkJQsO8Y2hpIExhYm9ydGVjaG5payBBRworCQkJCU1laWVyc2VnZ3N0cmFzc2UgNDAKKwkJCQlGbGF3aWwgOTIzMCBTRworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTExLTdDICAgKGhleCkJCWUtenkubmV0CiswMDExN0MgICAgIChiYXNlIDE2KQkJZS16eS5uZXQKKwkJCQlTbWlybmlzIDE0CisJCQkJVmVyaWEgSW1hdGhpYSA1OTEwMAorCQkJCUdSRUVDRQorCiswMC0xMS03RCAgIChoZXgpCQlaTUQgQW1lcmljYSwgSW5jLgorMDAxMTdEICAgICAoYmFzZSAxNikJCVpNRCBBbWVyaWNhLCBJbmMuCisJCQkJMTUzNzMgSW5ub3ZhdGlvbiBEcml2ZQorCQkJCVN1aXRlIDExNQorCQkJCVNhbiBEaWVvIENBIDkyMTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS03RSAgIChoZXgpCQlQcm9nZW55IEluYy4KKzAwMTE3RSAgICAgKGJhc2UgMTYpCQlQcm9nZW55IEluYy4KKwkJCQkxNDA3IEJhcmNsYXkgQm91bGV2YXJkCisJCQkJQnVmZmFsbyBHcm92ZSBJTCA2MDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtN0YgICAoaGV4KQkJTmVvdHVuZSBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uLC5MVEQKKzAwMTE3RiAgICAgKGJhc2UgMTYpCQlOZW90dW5lIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24sLkxURAorCQkJCTE3MDMjICBOby43MzcgIE5vcnRoIG9mIENhb3hpIFJkLgorCQkJCVNoYW5naGFpICAyMDAwMzAKKwkJCQlDSElOQQorCiswMC0xMS04MCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxMTgwICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtODEgICAoaGV4KQkJSW50ZXJFbmVyZ3kgQ28uTHRkLAorMDAxMTgxICAgICAoYmFzZSAxNikJCUludGVyRW5lcmd5IENvLkx0ZCwKKwkJCQk0RiBTaGlueW9rb2hhbWEgQm9zZWkgQmxkZy4KKwkJCQkzLTIwLTEzIFNoaW55b2tvaGFtYSBLb2hob2t1LWt1CisJCQkJWW9rb2hhbWEgY2l0eSBLYW5hZ2F3YSAyMjItMDAzMworCQkJCUpBUEFOCisKKzAwLTExLTgyICAgKGhleCkJCUlNSSBOb3JncmVuIEx0ZAorMDAxMTgyICAgICAoYmFzZSAxNikJCUlNSSBOb3JncmVuIEx0ZAorCQkJCVBPIEJveCAyMgorCQkJCUVhc3Rlcm4gQXZlbnVlCisJCQkJTGljaGZpZWxkIFN0YWZmb3Jkc2hpcmUgV1MxMyA2U0IKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS04MyAgIChoZXgpCQlEYXRhbG9naWMgTW9iaWxlLCBJbmMuCiswMDExODMgICAgIChiYXNlIDE2KQkJRGF0YWxvZ2ljIE1vYmlsZSwgSW5jLgorCQkJCTE1MDUgV2VzdGVjIERyaXZlCisJCQkJRXVnZW5lIE9SIDk3NDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS04NCAgIChoZXgpCQlIdW1vIExhYm9yYXRvcnksTHRkLgorMDAxMTg0ICAgICAoYmFzZSAxNikJCUh1bW8gTGFib3JhdG9yeSxMdGQuCisJCQkJTmlzaGlvZ2ktS2l0YSA1LTE5LTExCisJCQkJU3VnaW5hbWkta3UgVG9reW8gMTY3LTAwNDIKKwkJCQlKQVBBTgorCiswMC0xMS04NSAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAxMTg1ICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkgU291dGgKKwkJCQlNUzA3MDQwNQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTg2ICAgKGhleCkJCVByaW1lIFN5c3RlbXMsIEluYy4KKzAwMTE4NiAgICAgKGJhc2UgMTYpCQlQcmltZSBTeXN0ZW1zLCBJbmMuCisJCQkJMTYyNjctMzMzCisJCQkJU3V3YS1ndW4gSGFyYS1tdXJhIE5hZ2FubyAzOTEtMDEwMAorCQkJCUpBUEFOCisKKzAwLTExLTg3ICAgKGhleCkJCUNhdGVnb3J5IFNvbHV0aW9ucywgSW5jCiswMDExODcgICAgIChiYXNlIDE2KQkJQ2F0ZWdvcnkgU29sdXRpb25zLCBJbmMKKwkJCQkxMDIxIFcuIEFkYW1zIFN0CisJCQkJQ2hpY2FnbyBJTCA2MDYwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtODggICAoaGV4KQkJRW50ZXJhc3lzCiswMDExODggICAgIChiYXNlIDE2KQkJRW50ZXJhc3lzCisJCQkJMzUgSW5kdXN0cmlhbCBXYXkKKwkJCQlSb2NoZXN0ZXIgTkggMDM4NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTg5ICAgKGhleCkJCUFlcm90ZWNoIEluYworMDAxMTg5ICAgICAoYmFzZSAxNikJCUFlcm90ZWNoIEluYworCQkJCTEwMSBaZXRhIERyaXZlCisJCQkJUGl0dHNidXJnaCBQQSAxNTIzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtOEEgICAoaGV4KQkJVmlld3RyYW4gVGVjaG5vbG9neSBMaW1pdGVkCiswMDExOEEgICAgIChiYXNlIDE2KQkJVmlld3RyYW4gVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJMy9GLCBSMi1BIGJ1aWxpZGluZywgSGlnaCBUZWNoIEluZHVzdHJpYWwgUGFyaywKKwkJCQlOYW5zaGFuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xMS04QiAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudCwgRW50ZXJwcmlzZSBCdXNpbmVzcyBHcm91cAorMDAxMThCICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50LCBFbnRlcnByaXNlIEJ1c2luZXNzIEdyb3VwCisJCQkJMjY4MDEgV2VzdCBBZ291cmEgUm9hZAorCQkJCUNhbGFiYXNhcyBDQSA5MTMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtOEMgICAoaGV4KQkJTWlzc291cmkgRGVwYXJ0bWVudCBvZiBUcmFuc3BvcnRhdGlvbgorMDAxMThDICAgICAoYmFzZSAxNikJCU1pc3NvdXJpIERlcGFydG1lbnQgb2YgVHJhbnNwb3J0YXRpb24KKwkJCQlQLk8uIEJveCAyNzAKKwkJCQlKZWZmZXJzb24gQ2l0eSBNaXNzb3VyaSA2NTEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtOEQgICAoaGV4KQkJSGFuY2hhbmcgU3lzdGVtIENvcnAuCiswMDExOEQgICAgIChiYXNlIDE2KQkJSGFuY2hhbmcgU3lzdGVtIENvcnAuCisJCQkJNzE1LTExIEJvZXVuLVRvd24sIEUtZG9uZywgU2FuZ3Jvay1ndSwKKwkJCQlBbnNhbi1zaGkgS3l1bmdraS1EbyA0MjUtODU3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLThFICAgKGhleCkJCUhhbHl0ZWNoIE1hY2UKKzAwMTE4RSAgICAgKGJhc2UgMTYpCQlIYWx5dGVjaCBNYWNlCisJCQkJVW5pdCAxMSwgMjIgTGV4aW5ndG9uIERyaXZlCisJCQkJTm9yd2VzdCBCdXNpbmVzcyBQYXJrCisJCQkJQmF1bGtoYW0gSGlsbHMgTlNXIDIxNTMKKwkJCQlBVVNUUkFMSUEKKworMDAtMTEtOEYgICAoaGV4KQkJRVVURUNIIElOU1RSVU1FTlRTIFBURS4gTFRELgorMDAxMThGICAgICAoYmFzZSAxNikJCUVVVEVDSCBJTlNUUlVNRU5UUyBQVEUuIExURC4KKwkJCQlCbGsgNTUsQXllciBSYWphaCBDcmVzY2VudCwgIzA0LTE2LzI0LgorCQkJCTEzOTk0OQorCQkJCVNJTkdBUE9SRQorCiswMC0xMS05MCAgIChoZXgpCQlEaWdpdGFsIERlc2lnbiBDb3Jwb3JhdGlvbgorMDAxMTkwICAgICAoYmFzZSAxNikJCURpZ2l0YWwgRGVzaWduIENvcnBvcmF0aW9uCisJCQkJMzgyMCBWZW50dXJhIERyaXZlCisJCQkJQXJsaW5ndG9uIEhlaWdodHMgSUwgNjAwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLTkxICAgKGhleCkJCUNUUy1DbGltYSBUZW1wZXJhdHVyIFN5c3RlbWUgR21iSAorMDAxMTkxICAgICAoYmFzZSAxNikJCUNUUy1DbGltYSBUZW1wZXJhdHVyIFN5c3RlbWUgR21iSAorCQkJCUxvdHplbsOkY2tlciAyMQorCQkJCUhlY2hpbmdlbiBCYWRlbnfDvHJ0dGVtYmVyZyA3MjM3OQorCQkJCUdFUk1BTlkKKworMDAtMTEtOTIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMTkyICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtOTMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMTkzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1tLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtOTQgICAoaGV4KQkJQ2hpIE1laSBDb21tdW5pY2F0aW9uIFN5c3RlbXMsIEluYy4KKzAwMTE5NCAgICAgKGJhc2UgMTYpCQlDaGkgTWVpIENvbW11bmljYXRpb24gU3lzdGVtcywgSW5jLgorCQkJCTExRiwgTm8uMzksIENodW5nIEh1YSBSRC4gU2VjIDEKKwkJCQlUYWlwZWkgIDEwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtOTUgICAoaGV4KQkJRC1MaW5rIENvcnBvcmF0aW9uCiswMDExOTUgICAgIChiYXNlIDE2KQkJRC1MaW5rIENvcnBvcmF0aW9uCisJCQkJMkYgTm8uIDIzMy0yLCBQYW8tQ2hpYW8gUm9hZAorCQkJCUhzaW4tVGllbgorCQkJCVRhaXBlaSBUYWl3YW4gCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS05NiAgIChoZXgpCQlBY3R1YWxpdHkgU3lzdGVtcywgSW5jLgorMDAxMTk2ICAgICAoYmFzZSAxNikJCUFjdHVhbGl0eSBTeXN0ZW1zLCBJbmMuCisJCQkJMjUgQ29ycG9yYXRlIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJQnVybGluZ3RvbiBNQSAwMTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtOTcgICAoaGV4KQkJTW9uaXRvcmluZyBUZWNobm9sb2dpZXMgTGltaXRlZAorMDAxMTk3ICAgICAoYmFzZSAxNikJCU1vbml0b3JpbmcgVGVjaG5vbG9naWVzIExpbWl0ZWQKKwkJCQkxNCBBdHRlbmJ1cnlzIFBhcmsgRXN0YXRlCisJCQkJQXR0ZW5idXJ5cyBMYW5lCisJCQkJVGltcGVybGV5IENoZXNoaXJlIFdBMTQgNVFFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTEtOTggICAoaGV4KQkJUHJpc20gTWVkaWEgUHJvZHVjdHMgTGltaXRlZAorMDAxMTk4ICAgICAoYmFzZSAxNikJCVByaXNtIE1lZGlhIFByb2R1Y3RzIExpbWl0ZWQKKwkJCQlXaWxsaWFtIEphbWVzIEhvdXNlCisJCQkJQ293bGV5IFJvYWQKKwkJCQlDYW1icmlkZ2UgQ2FtYnJpZGdlc2hpcmUgQ0I0IDBXWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLTk5ICAgKGhleCkJCTJ3Y29tIEdtYkgKKzAwMTE5OSAgICAgKGJhc2UgMTYpCQkyd2NvbSBHbWJICisJCQkJU2NobGVzd2lnZXIgU3RyYXNzZSA4NQorCQkJCUZsZW5zYnVyZyAgMjQ5NDEKKwkJCQlHRVJNQU5ZCisKKzAwLTExLTlBICAgKGhleCkJCUFsa2VyaWEgc3JsCiswMDExOUEgICAgIChiYXNlIDE2KQkJQWxrZXJpYSBzcmwKKwkJCQkyNSBWaWEgR2l1bnRpbmkKKwkJCQlOYXZhY2NoaW8gKFBJKSAgSS01NjAyMworCQkJCUlUQUxZCisKKzAwLTExLTlCICAgKGhleCkJCVRlbGVzeW5lcmd5IFJlc2VhcmNoIEluYy4KKzAwMTE5QiAgICAgKGJhc2UgMTYpCQlUZWxlc3luZXJneSBSZXNlYXJjaCBJbmMuCisJCQkJNEYsIE5vLiA0OSwgVHVuZyBIc2luIFJkLiwKKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtOUMgICAoaGV4KQkJRVAmVCBFbmVyZ3kKKzAwMTE5QyAgICAgKGJhc2UgMTYpCQlFUCZUIEVuZXJneQorCQkJCTM1OCBFYXN0ZXJuIFZhbGxleSBXYXkKKwkJCQlDaGF0c3dvb2QKKwkJCQlTeWRuZXkgTlNXIDIwNjcKKwkJCQlBVVNUUkFMSUEKKworMDAtMTEtOUQgICAoaGV4KQkJRGlnaW5mbyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDExOUQgICAgIChiYXNlIDE2KQkJRGlnaW5mbyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJMTBGbC4sIE5vLjgyLCBGdSBIc2luZyBOb3J0aCBSb2FkCisJCQkJVGFpcGVpICAxMDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLTlFICAgKGhleCkJCVNvbGVjdHJvbiBCcmF6aWwKKzAwMTE5RSAgICAgKGJhc2UgMTYpCQlTb2xlY3Ryb24gQnJhemlsCisJCQkJUm9kLiBDYW1waW5hcyBNb2dpIE1pcmltCisJCQkJQmFpcnJvIFJvc2VpcmEKKwkJCQlKYWd1YXJpdW5hIFNQIDEzODIwLTAwMAorCQkJCUJSQVpJTAorCiswMC0xMS05RiAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxMTlGICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xMS1BMCAgIChoZXgpCQlWdGVjaCBFbmdpbmVlcmluZyBDYW5hZGEgTHRkCiswMDExQTAgICAgIChiYXNlIDE2KQkJVnRlY2ggRW5naW5lZXJpbmcgQ2FuYWRhIEx0ZAorCQkJCTIwMC03NjcxIEFsZGVyYnJpZGdlIFdheQorCQkJCVJpY2htb25kIEJDIFY2WCAxWjkKKwkJCQlDQU5BREEKKworMDAtMTEtQTEgICAoaGV4KQkJVklTSU9OIE5FVFdBUkUgQ08uLExURAorMDAxMUExICAgICAoYmFzZSAxNikJCVZJU0lPTiBORVRXQVJFIENPLixMVEQKKwkJCQlBY2UgVHdpbiBUb3dlciAoMiksICM3MDkKKwkJCQkyMTItMzAsIEd1cm8tRG9uZworCQkJCVNlb3VsIEd1cm8tR3UgMTUyLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMS1BMiAgIChoZXgpCQlNYW51ZmFjdHVyaW5nIFRlY2hub2xvZ3kgSW5jCiswMDExQTIgICAgIChiYXNlIDE2KQkJTWFudWZhY3R1cmluZyBUZWNobm9sb2d5IEluYworCQkJCTcwIFJlYWR5IEF2ZSBOVworCQkJCUZvcnQgV2FsdG9uIEJlYWNoIEZMIDMyNTQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1BMyAgIChoZXgpCQlMYW5SZWFkeSBUZWNobm9sb2dpZXMgSW5jLgorMDAxMUEzICAgICAoYmFzZSAxNikJCUxhblJlYWR5IFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNEYsIE5vLiAzMzcsIFNpbkh1IDJuZCBSb2FkLiwgTmVpSHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1BNCAgIChoZXgpCQlKU3RyZWFtIFRlY2hub2xvZ2llcyBJbmMuCiswMDExQTQgICAgIChiYXNlIDE2KQkJSlN0cmVhbSBUZWNobm9sb2dpZXMgSW5jLgorCQkJCUJsZGcuNTMsIFI0MDUsIDE5NSBTZWMuNCwgQ2h1bmcgSHNpbmcgUmQuCisJCQkJQ2h1dHVuZywgIEhzaW5jaHUgMzEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1BNSAgIChoZXgpCQlGb3J0dW5hIEVsZWN0cm9uaWMgQ29ycC4KKzAwMTFBNSAgICAgKGJhc2UgMTYpCQlGb3J0dW5hIEVsZWN0cm9uaWMgQ29ycC4KKwkJCQkzRiwgTm8uOSwgU2VjLjEsIENoYW5nQW4gRWFzdCBSZC4sCisJCQkJVGFpcGVpICAxMDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUE2ICAgKGhleCkJCVN5cGl4eCBOZXR3b3JrcworMDAxMUE2ICAgICAoYmFzZSAxNikJCVN5cGl4eCBOZXR3b3JrcworCQkJCTEwOCBCYW5rIFN0cmVldAorCQkJCVdhdGVyYnVyeSBDVCAwNjcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQTcgICAoaGV4KQkJSW5maWxjbyBEZWdyZW1vbnQgSW5jLgorMDAxMUE3ICAgICAoYmFzZSAxNikJCUluZmlsY28gRGVncmVtb250IEluYy4KKwkJCQk4MDA3IERpc2NvdmVyeSBEci4KKwkJCQlQTyBCb3ggNzEzOTAKKwkJCQlSaWNobW9uZCBWaXJnaW5pYSAyMzI1NS0xMzkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1BOCAgIChoZXgpCQlRdWVzdCBUZWNobm9sb2dpZXMKKzAwMTFBOCAgICAgKGJhc2UgMTYpCQlRdWVzdCBUZWNobm9sb2dpZXMKKwkJCQkxMDYwIENvcnBvcmF0ZSBDZW50ZXIgRHJpdmUKKwkJCQlPY29ub21vd29jIFdpc2NvbnNpbiA1MzA2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQTkgICAoaGV4KQkJTU9JTVNUT05FIENvLiwgTFRECiswMDExQTkgICAgIChiYXNlIDE2KQkJTU9JTVNUT05FIENvLiwgTFRECisJCQkJN3RoIEZsb29yIEpvb25nUHl1bmcgQnVpbGRpbmcgNjQtMQorCQkJCVdvb215dW4tRG9uZywgU2VvY2hvLUd1CisJCQkJU2VvdWwgIDEzNy05MDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtQUEgICAoaGV4KQkJVW5pY2xhc3MgVGVjaG5vbG9neSwgQ28uLCBMVEQKKzAwMTFBQSAgICAgKGJhc2UgMTYpCQlVbmljbGFzcyBUZWNobm9sb2d5LCBDby4sIExURAorCQkJCTRGLCBOby4gOTgsIE1pbmcgY2h1YW4gUmQKKwkJCQlIc2ludGllbiBDaXR5IFRhaXBlaSBIc2llbiAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUFCICAgKGhleCkJCVRSVVNUQUJMRSBURUNITk9MT0dZIENPLixMVEQuCiswMDExQUIgICAgIChiYXNlIDE2KQkJVFJVU1RBQkxFIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQkxMkZMLi0xLE5PLjE2NyxGdS1TaGluZyBOLlJkLixTdW5nLVNoYW4gYXJlYQorCQkJCVRhaXBlaSAgMTA1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1BQyAgIChoZXgpCQlTaW10ZWMgRWxlY3Ryb25pY3MKKzAwMTFBQyAgICAgKGJhc2UgMTYpCQlTaW10ZWMgRWxlY3Ryb25pY3MKKwkJCQlBdm9uZGFsZSBEcml2ZQorCQkJCVRhcmxldG9uIExhbmNhc2hpcmUgUFI0IDZBWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLUFEICAgKGhleCkJCVNoYW5naGFpIFJ1aWppZSBUZWNobm9sb2d5CiswMDExQUQgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgUnVpamllIFRlY2hub2xvZ3kKKwkJCQkyN0YsIDQyMCBKaWFuZ25pbmcgUmQuCisJCQkJU2hhbmdoYWkgIDIwMDA0MQorCQkJCUNISU5BCisKKzAwLTExLUFFICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDExQUUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1BRiAgIChoZXgpCQlNZWRpYWxpbmstaSxJbmMKKzAwMTFBRiAgICAgKGJhc2UgMTYpCQlNZWRpYWxpbmstaSxJbmMKKwkJCQkxLTktMTAgSGFtYW1hdHN1LUNobworCQkJCUJFTElFVkUgQSBIQU1BTUFUU1VDSE8KKwkJCQlNaW5hdG8tS3UgVG9reW8gMTA1LTAwMTMKKwkJCQlKQVBBTgorCiswMC0xMS1CMCAgIChoZXgpCQlGb3J0ZWxpbmsgSW5jLgorMDAxMUIwICAgICAoYmFzZSAxNikJCUZvcnRlbGluayBJbmMuCisJCQkJNDI1MDEgQWxicmFlIHN0cmVldCBzdWl0ZSAyMDIKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1CMSAgIChoZXgpCQlCbHVlRXhwZXJ0IFRlY2hub2xvZ3kgQ29ycC4KKzAwMTFCMSAgICAgKGJhc2UgMTYpCQlCbHVlRXhwZXJ0IFRlY2hub2xvZ3kgQ29ycC4KKwkJCQk4RixOby4xNixMYW5lIDc3LFhpbmctQWkgUmQsTmVpLUh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQ5NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtQjIgICAoaGV4KQkJMjAwMSBUZWNobm9sb2d5IEluYy4KKzAwMTFCMiAgICAgKGJhc2UgMTYpCQkyMDAxIFRlY2hub2xvZ3kgSW5jLgorCQkJCTdGLTEwLCA3OSBIc2luIFRhaSA1dGguIFJkLiBTZWMuMQorCQkJCUhzaSBDaGloIFRhaXBlaSBDb3VudHkgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1CMyAgIChoZXgpCQlZT1NISU1JWUEgQ08uLExURC4KKzAwMTFCMyAgICAgKGJhc2UgMTYpCQlZT1NISU1JWUEgQ08uLExURC4KKwkJCQkyLTMtMjQgQmFpbmFuCisJCQkJTmlzaGluYXJpLWt1CisJCQkJT1NBS0EgT1NBS0EtUHJlZiA1NTctMDAzMworCQkJCUpBUEFOCisKKzAwLTExLUI0ICAgKGhleCkJCVdlc3Rlcm1vIFRlbGVpbmR1c3RyaSBBQgorMDAxMUI0ICAgICAoYmFzZSAxNikJCVdlc3Rlcm1vIFRlbGVpbmR1c3RyaSBBQgorCQkJCVN0b3JhIFN1bmRieQorCQkJCVNFLTY0MCA0MAorCQkJCVNXRURFTgorCiswMC0xMS1CNSAgIChoZXgpCQlTaGVuemhlbiBQb3dlcmNvbSBDby4sTHRkCiswMDExQjUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gUG93ZXJjb20gQ28uLEx0ZAorCQkJCUZsb29yIDE2LFRvd2VyIEIsWmhvbmd5aW4gQnVpbGRpbmcsTm9ydGggQ2FpdGlhbiBSb2FkLEZ1dGlhbiBEaXN0cmljdCxTaGVuemhlbixQLlIuQ2hpbmEKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgcHJvdmluY2UgNTE4MDI4CisJCQkJQ0hJTkEKKworMDAtMTEtQjYgICAoaGV4KQkJT3BlbiBTeXN0ZW1zIEludGVybmF0aW9uYWwKKzAwMTFCNiAgICAgKGJhc2UgMTYpCQlPcGVuIFN5c3RlbXMgSW50ZXJuYXRpb25hbAorCQkJCTM2MDAgSG9sbHkgTGFuZSBOb3J0aAorCQkJCVN1aXRlIDQwCisJCQkJTWlubmVhcG9saXMgTU4gNTU0NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUI3ICAgKGhleCkJCU9jdGFsaXggQi5WLgorMDAxMUI3ICAgICAoYmFzZSAxNikJCU9jdGFsaXggQi5WLgorCQkJCU1vbGVuc3RlaWpuIDYwCisJCQkJRGUgTWVlcm4gIE5MLTM0NTQgUFQKKwkJCQlORVRIRVJMQU5EUworCiswMC0xMS1COCAgIChoZXgpCQlMaWViaGVyciAtIEVsZWt0cm9uaWsgR21iSAorMDAxMUI4ICAgICAoYmFzZSAxNikJCUxpZWJoZXJyIC0gRWxla3Ryb25payBHbWJICisJCQkJUGV0ZXIgLSBEb3JuaWVyIC0gU3RyYXNzZSAxMQorCQkJCUxpbmRhdSAoQm9kZW5zZWUpIEJhdmFyaWEgODgxMzEKKwkJCQlHRVJNQU5ZCisKKzAwLTExLUI5ICAgKGhleCkJCUlubmVyIFJhbmdlIFB0eS4gTHRkLgorMDAxMUI5ICAgICAoYmFzZSAxNikJCUlubmVyIFJhbmdlIFB0eS4gTHRkLgorCQkJCTEgTWlsbGVuaXVtIENvdXJ0CisJCQkJS25veGZpZWxkIFZpY3RvcmlhIDMxODAKKwkJCQlBVVNUUkFMSUEKKworMDAtMTEtQkEgICAoaGV4KQkJRWxleG9sIFB0eSBMdGQKKzAwMTFCQSAgICAgKGJhc2UgMTYpCQlFbGV4b2wgUHR5IEx0ZAorCQkJCUxldmVsIDIgLyAxNDYgQnVuZGFsbCBSb2FkCisJCQkJQnVuZGFsbCBRdWVlbnNsYW5kIDQyMTcKKwkJCQlBVVNUUkFMSUEKKworMDAtMTEtQkIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMUJCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQkMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMUJDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQkQgICAoaGV4KQkJQm9tYmFyZGllciBUcmFuc3BvcnRhdGlvbgorMDAxMUJEICAgICAoYmFzZSAxNikJCUJvbWJhcmRpZXIgVHJhbnNwb3J0YXRpb24KKwkJCQkxNTAxIExlYmFub24gQ2h1cmNoIFJvYWQKKwkJCQlQaXR0c2J1cmdoIFBBIDE1MjM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1CRSAgIChoZXgpCQlBR1AgVGVsZWNvbSBDby4gTHRkCiswMDExQkUgICAgIChiYXNlIDE2KQkJQUdQIFRlbGVjb20gQ28uIEx0ZAorCQkJCTlGLCAxMzQgQ2h1bmctSHNpYW8gRS4gUkQKKwkJCQlTZWMuIDQKKwkJCQlUYWlwZWkgIDEwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtQkYgICAoaGV4KQkJQUVTWVMgUy5wLkEuCiswMDExQkYgICAgIChiYXNlIDE2KQkJQUVTWVMgUy5wLkEuCisJCQkJVmlhIEFydGlnaWFuaSwgNDEKKwkJCQlCcnVzYXBvcnRvIEJlcmdhbW8gMjQwNjAKKwkJCQlJVEFMWQorCiswMC0xMS1DMCAgIChoZXgpCQlBZGF5IFRlY2hub2xvZ3kgSW5jCiswMDExQzAgICAgIChiYXNlIDE2KQkJQWRheSBUZWNobm9sb2d5IEluYworCQkJCTlGLi0zLCBOby4gMjQ3LCBTZWMuIDEsIFRhaWNodW5nIFBvcnQgUmQuLAorCQkJCVRhaWNodW5nIENpdHkgVGFpdyA0MDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUMxICAgKGhleCkJCTRQIE1PQklMRSBEQVRBIFBST0NFU1NJTkcKKzAwMTFDMSAgICAgKGJhc2UgMTYpCQk0UCBNT0JJTEUgREFUQSBQUk9DRVNTSU5HCisJCQkJVklBTEUgUkVHSU9ORSBWRU5FVE8gMjYKKwkJCQlQQURPVkEgUEQgMzUxMjcKKwkJCQlJVEFMWQorCiswMC0xMS1DMiAgIChoZXgpCQlVbml0ZWQgRmliZXIgT3B0aWMgQ29tbXVuaWNhdGlvbgorMDAxMUMyICAgICAoYmFzZSAxNikJCVVuaXRlZCBGaWJlciBPcHRpYyBDb21tdW5pY2F0aW9uCisJCQkJMTMtMSxOTy43MDAsSnVuZ2plbmcgUkQsSnVuZ2hlIENpdHkKKwkJCQlKdW5naGUgQ2l0eSBUYWlwZWkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1DMyAgIChoZXgpCQlUcmFuc2NlaXZpbmcgU3lzdGVtIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMTFDMyAgICAgKGJhc2UgMTYpCQlUcmFuc2NlaXZpbmcgU3lzdGVtIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQlOTy44NSxTZWMuMixHb25nZGFvd3UgUmQuLAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtQzQgICAoaGV4KQkJVGVybWluYWxlcyBkZSBUZWxlY29tdW5pY2FjaW9uIFRlcnJlc3RyZSwgUy5MLgorMDAxMUM0ICAgICAoYmFzZSAxNikJCVRlcm1pbmFsZXMgZGUgVGVsZWNvbXVuaWNhY2lvbiBUZXJyZXN0cmUsIFMuTC4KKwkJCQlQb2xpZ29ubyBFdXJvcG9saXMsIENhbGxlIEMgMjYKKwkJCQlMYXMgUm96YXMgTWFkcmlkIDI4MjMwCisJCQkJU1BBSU4KKworMDAtMTEtQzUgICAoaGV4KQkJVEVOIFRlY2hub2xvZ3kKKzAwMTFDNSAgICAgKGJhc2UgMTYpCQlURU4gVGVjaG5vbG9neQorCQkJCTU1NSBFYXN0IE9jZWFuIEJsdmQuCisJCQkJOXRoIEZsb29yCisJCQkJTG9uZyBCZWFjaCBDQSA5MDgwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQzYgICAoaGV4KQkJU2VhZ2F0ZSBUZWNobm9sb2d5IExMQworMDAxMUM2ICAgICAoYmFzZSAxNikJCVNlYWdhdGUgVGVjaG5vbG9neSBMTEMKKwkJCQkxMjgwIERpc2MgRHJpdmUKKwkJCQlTaGFrb3BlZSBNTiA1NTM3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQzcgICAoaGV4KQkJUmF5bWFyaW5lIFVLIEx0ZAorMDAxMUM3ICAgICAoYmFzZSAxNikJCVJheW1hcmluZSBVSyBMdGQKKwkJCQlRdWF5IFBvaW50CisJCQkJTm9ydGhhcmJvdXIgUm9hZAorCQkJCVBvcnRzbW91dGggSGFtcHNoaXJlIFBPNiAzVEQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMS1DOCAgIChoZXgpCQlQb3dlcmNvbSBDby4sIEx0ZC4KKzAwMTFDOCAgICAgKGJhc2UgMTYpCQlQb3dlcmNvbSBDby4sIEx0ZC4KKwkJCQk4RiwgTm8uIDI0NiwgTGllbiBDaGVuIFJkLgorCQkJCUNodW5nIEhvIFRhaXBlaSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUM5ICAgKGhleCkJCU1UVCBDb3Jwb3JhdGlvbgorMDAxMUM5ICAgICAoYmFzZSAxNikJCU1UVCBDb3Jwb3JhdGlvbgorCQkJCTItNy0xMgorCQkJCU11cm90YW5pCisJCQkJTmlzaGkta3UgS29iZSA2NTEtMjI0MQorCQkJCUpBUEFOCisKKzAwLTExLUNBICAgKGhleCkJCUxvbmcgUmFuZ2UgU3lzdGVtcywgSW5jLgorMDAxMUNBICAgICAoYmFzZSAxNikJCUxvbmcgUmFuZ2UgU3lzdGVtcywgSW5jLgorCQkJCTQ1NTAgRXhjZWwgUGFya3dheQorCQkJCVN1aXRlIDIwMAorCQkJCUFkZGlzb24gVGV4YXMgNzUwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUNCICAgKGhleCkJCUphY29ic29ucyBBQgorMDAxMUNCICAgICAoYmFzZSAxNikJCUphY29ic29ucyBBQgorCQkJCU5lZHJhbGlkIHMgMzIKKwkJCQlNb3RhbGEgIDU5MSA5NworCQkJCVNXRURFTgorCiswMC0xMS1DQyAgIChoZXgpCQlHdWFuZ3pob3UgSmlucGVuZyBHcm91cCBDby4sTHRkLgorMDAxMUNDICAgICAoYmFzZSAxNikJCUd1YW5nemhvdSBKaW5wZW5nIEdyb3VwIENvLixMdGQuCisJCQkJTm8uOSBTaGVuemhvdSBSb2FkLEd1YW5nemhvdSBTY2llbmNlIENpdHkKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDY2MworCQkJCUNISU5BCisKKzAwLTExLUNEICAgKGhleCkJCUF4c3VuIFRlY2hub2xvZ2llcworMDAxMUNEICAgICAoYmFzZSAxNikJCUF4c3VuIFRlY2hub2xvZ2llcworCQkJCTEgRm9ydHVuZSBEcml2ZQorCQkJCUJpbGxlcmljYSBNQSAwMjQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtQ0UgICAoaGV4KQkJVWJpc2Vuc2UgTGltaXRlZAorMDAxMUNFICAgICAoYmFzZSAxNikJCVViaXNlbnNlIExpbWl0ZWQKKwkJCQlTdC4gQW5kcmV3cyBIb3VzZQorCQkJCVN0LiBBbmRyZXdzIFJvYWQKKwkJCQlDaGVzdGVydG9uIENhbWJyaWRnZSBDQjQgMURMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTEtQ0YgICAoaGV4KQkJVGhyYW5lICYgVGhyYW5lIEEvUworMDAxMUNGICAgICAoYmFzZSAxNikJCVRocmFuZSAmIFRocmFuZSBBL1MKKwkJCQlMdW5kdG9mdGVnYWFyZHN2ZWogOTNECisJCQkJTHluZ2J5IEvDuGJlbmhhdm4gMjgwMAorCQkJCURFTk1BUksKKworMDAtMTEtRDAgICAoaGV4KQkJVGFuZGJlcmcgRGF0YSBBU0EKKzAwMTFEMCAgICAgKGJhc2UgMTYpCQlUYW5kYmVyZyBEYXRhIEFTQQorCQkJCUtqZWxzw6VzdmVpZW4gMTYxCisJCQkJT3NsbyAgMDQxMQorCQkJCU5PUldBWQorCiswMC0xMS1EMSAgIChoZXgpCQlTb2Z0IEltYWdpbmcgU3lzdGVtIEdtYkgKKzAwMTFEMSAgICAgKGJhc2UgMTYpCQlTb2Z0IEltYWdpbmcgU3lzdGVtIEdtYkgKKwkJCQlKb2hhbm4tS3JhbmUtV2VnIDM5CisJCQkJTXVlbnN0ZXIgIDQ4MTQ5CisJCQkJR0VSTUFOWQorCiswMC0xMS1EMiAgIChoZXgpCQlQZXJjZXB0aW9uIERpZ2l0YWwgTHRkCiswMDExRDIgICAgIChiYXNlIDE2KQkJUGVyY2VwdGlvbiBEaWdpdGFsIEx0ZAorCQkJCUZsYXQgQSwgOC9GLCBTaGF3IEhvdXNlCisJCQkJUk0gQQorCQkJCUNsZWFyIFdhdGVyIEJheSBOVCAKKwkJCQlIT05HIEtPTkcKKworMDAtMTEtRDMgICAoaGV4KQkJTmV4dEdlblRlbCBIb2xkaW5nIEFTQQorMDAxMUQzICAgICAoYmFzZSAxNikJCU5leHRHZW5UZWwgSG9sZGluZyBBU0EKKwkJCQlTYW5kc2xpbWFya2EgMzEKKwkJCQlTYW5kc2xpCisJCQkJQmVyZ2VuIEhvcmRhbGFuZCA1ODYxCisJCQkJTk9SV0FZCisKKzAwLTExLUQ0ICAgKGhleCkJCU5ldEVucmljaCwgSW5jCiswMDExRDQgICAgIChiYXNlIDE2KQkJTmV0RW5yaWNoLCBJbmMKKwkJCQk4OTAgSGlsbHZpZXcgQ3QuCisJCQkJU3VpdGUgMTUwCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUQ1ICAgKGhleCkJCUhhbmd6aG91IFN1bnlhcmQgU3lzdGVtIEVuZ2luZWVyaW5nIENvLixMdGQuCiswMDExRDUgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgU3VueWFyZCBTeXN0ZW0gRW5naW5lZXJpbmcgQ28uLEx0ZC4KKwkJCQlTdW55YXJkIFNjaWVuY2UgJiBUZWNobm9sb2d5IEJ1aWxkaW5nIEhpLVRlY2ggU29mdHdhcmUgUGFyayhTZWNvbmQgTGFuZCBDb25zb2xpZGF0aW9uKQorCQkJCUhhbmd6aG91IEhpLVRlY2ggSW5kdXN0cmlhbCBEZXZlbG9wbWVudCBab25lKEJpbmppYW5nIERpc3RyaWN0KQorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDA1MworCQkJCUNISU5BCisKKzAwLTExLUQ2ICAgKGhleCkJCUhhbmRFcmEsIEluYy4KKzAwMTFENiAgICAgKGJhc2UgMTYpCQlIYW5kRXJhLCBJbmMuCisJCQkJMjg1OSAxMDR0aCBTdC4KKwkJCQlEZXMgTW9pbmVzIElBIDUwMzIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1ENyAgIChoZXgpCQllV2Vya3MgSW5jCiswMDExRDcgICAgIChiYXNlIDE2KQkJZVdlcmtzIEluYworCQkJCTQyMC0yMTY2IE1vdW50YWluIEdyb3ZlIEF2ZQorCQkJCUJ1cmxpbmd0b24gT250YXJpbyBMN1A0WDQKKwkJCQlDQU5BREEKKworMDAtMTEtRDggICAoaGV4KQkJQVNVU1RlayBDb21wdXRlciBJbmMuCiswMDExRDggICAgIChiYXNlIDE2KQkJQVNVU1RlayBDb21wdXRlciBJbmMuCisJCQkJTm8uIDE1LCBMaS1UZSBSZC4sIFBlaXRvdQorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMS1EOSAgIChoZXgpCQlUaVZvCiswMDExRDkgICAgIChiYXNlIDE2KQkJVGlWbworCQkJCTIxNjAgR29sZCBBdmUKKwkJCQlBbHZpc28gQ0EgOTUwMDItMjE2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtREEgICAoaGV4KQkJVml2YWFzIFRlY2hub2xvZ3kgSW5jLgorMDAxMURBICAgICAoYmFzZSAxNikJCVZpdmFhcyBUZWNobm9sb2d5IEluYy4KKwkJCQkxNUYsIE5vLiAxMCwgU2VjIDEsIFBlaS1Ic2luIFJkLiwKKwkJCQlIc2luLVRpZW4gY2l0eSBUYWlwZWkgSHNpZW4sIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtREIgICAoaGV4KQkJTGFuZC1DZWxsdWxhciBDb3Jwb3JhdGlvbgorMDAxMURCICAgICAoYmFzZSAxNikJCUxhbmQtQ2VsbHVsYXIgQ29ycG9yYXRpb24KKwkJCQkxMjA1NCBNaXJhbWFyIFBhcmt3YXkKKwkJCQlNaXJhbWFyIEZMIDMzMDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1EQyAgIChoZXgpCQlHbHVueiAmIEplbnNlbgorMDAxMURDICAgICAoYmFzZSAxNikJCUdsdW56ICYgSmVuc2VuCisJCQkJSGFzbGV2dmVqIDEzCisJCQkJUmluZ3N0ZWQgIDQxMDAKKwkJCQlERU5NQVJLCisKKzAwLTExLUREICAgKGhleCkJCUZST01VUyBURUMuIENvLiwgTHRkLgorMDAxMUREICAgICAoYmFzZSAxNikJCUZST01VUyBURUMuIENvLiwgTHRkLgorCQkJCTJGIDg5Ni04IEhvZ3llMi1kb25nIERvbmdhbi1HdQorCQkJCUFueWFuZy1DaXR5LCBHeWVvbmdnaS1kbywKKwkJCQk0MzEtODM2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLURFICAgKGhleCkJCUVVUklMT0dJQworMDAxMURFICAgICAoYmFzZSAxNikJCUVVUklMT0dJQworCQkJCUNlbnRyYWxlIFBhcmMgQsOidCA3CisJCQkJQXZlbnVlIHN1bGx5IHBydWQnaG9tbWUKKwkJCQlDaGF0ZW5heSBNYWxhYnJ5ICA5MjI5OAorCQkJCUZSQU5DRQorCiswMC0xMS1ERiAgIChoZXgpCQlDdXJyZW50IEVuZXJneQorMDAxMURGICAgICAoYmFzZSAxNikJCUN1cnJlbnQgRW5lcmd5CisJCQkJNTQ0MCBIYXJ2ZXN0IEhpbGwsIFN0ZSAxMDAKKwkJCQlEYWxsYXMgVFggNzUyMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUUwICAgKGhleCkJCVUtTUVESUEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTFFMCAgICAgKGJhc2UgMTYpCQlVLU1FRElBIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJIDlGLCBOby4xIEppbi1TaGFuIFN0LgorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtRTEgICAoaGV4KQkJQXJjZWxpayBBLlMKKzAwMTFFMSAgICAgKGJhc2UgMTYpCQlBcmNlbGlrIEEuUworCQkJCUN1bWh1cml5ZXQgTWFoLiwgRTUgWWFuIFlvbCwgTm86MSwKKwkJCQlCZXlsaWtkdXp1CisJCQkJSXN0YW5idWwgIDM0NTIwIAorCQkJCVRVUktFWQorCiswMC0xMS1FMiAgIChoZXgpCQlIdWEgSnVuZyBDb21wb25lbnRzIENvLiwgTHRkLgorMDAxMUUyICAgICAoYmFzZSAxNikJCUh1YSBKdW5nIENvbXBvbmVudHMgQ28uLCBMdGQuCisJCQkJNUYsIE5vLjEzLCBMYW5lIDEyMCwgU2VjLjEsIE5laSBIdSBSb2FkCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUUzICAgKGhleCkJCVRob21zb24sIEluYy4KKzAwMTFFMyAgICAgKGJhc2UgMTYpCQlUaG9tc29uLCBJbmMuCisJCQkJMTAxIFdlc3QgMTAzcmQgU3RyZWV0CisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMS1FNCAgIChoZXgpCQlEYW5lbGVjIEVsZWN0cm9uaWNzIEEvUworMDAxMUU0ICAgICAoYmFzZSAxNikJCURhbmVsZWMgRWxlY3Ryb25pY3MgQS9TCisJCQkJQmxva2tlbiA0NAorCQkJCUJpcmtlcm9lZCBDb3BlbmhhZ2VuIDM0NjAKKwkJCQlERU5NQVJLCisKKzAwLTExLUU1ICAgKGhleCkJCUtDb2RlcyBDb3Jwb3JhdGlvbgorMDAxMUU1ICAgICAoYmFzZSAxNikJCUtDb2RlcyBDb3Jwb3JhdGlvbgorCQkJCUZsb29yIDIsIE51bWJlciA1MDEsIFNlY3Rpb24gMgorCQkJCVRpZGluZyBCb3VsZXZhcmQKKwkJCQlOZWlodSBEaXN0cmljdCBUYWlwZWkgQ2l0eSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUU2ICAgKGhleCkJCVNjaWVudGlmaWMgQXRsYW50YQorMDAxMUU2ICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMgQXRsYW50YQorCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlNYWlsIFN0b3AgNS4yLjQyOAorCQkJCUxhd3JlbmNldmlsbGUgR2EgMzAwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUU3ICAgKGhleCkJCVdPUkxEU0FUIC0gVGV4YXMgZGUgRnJhbmNlCiswMDExRTcgICAgIChiYXNlIDE2KQkJV09STERTQVQgLSBUZXhhcyBkZSBGcmFuY2UKKwkJCQkyMjAsIHJ1ZSBHdXN0YXZlIEVpZmZlbAorCQkJCWNlZGV4IDMKKwkJCQlBaXggZW4gUHJvdmVuY2UgQm91Y2hlcyBkdSBSaG9uZSAxMzg1NAorCQkJCUZSQU5DRQorCiswMC0xMS1FOCAgIChoZXgpCQlUaXhpLkNvbQorMDAxMUU4ICAgICAoYmFzZSAxNikJCVRpeGkuQ29tCisJCQkJS2FybWVsaXRlcndlZyAxMTQKKwkJCQlCZXJsaW4gIDEzNDY1CisJCQkJR0VSTUFOWQorCiswMC0xMS1FOSAgIChoZXgpCQlTVEFSTkVYIENPLiwgTFRELgorMDAxMUU5ICAgICAoYmFzZSAxNikJCVNUQVJORVggQ08uLCBMVEQuCisJCQkJNHRoIEZsb29yLCBDJkMgQmxkZywgMjI4LTIKKwkJCQlHdXVpLWRvbmcKKwkJCQlLd2FuZ2ppbi1ndSBTZW91bCAxNDMtMjAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTExLUVBICAgKGhleCkJCUlXSUNTIEluYy4KKzAwMTFFQSAgICAgKGJhc2UgMTYpCQlJV0lDUyBJbmMuCisJCQkJMTkxMjUgTm9ydGggQ3JlZWsgUGFya3dheQorCQkJCVN1aXRlIDEyMAorCQkJCUJvdGhlbGwgV0EgOTgwMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTExLUVCICAgKGhleCkJCUlubm92YXRpdmUgSW50ZWdyYXRpb24KKzAwMTFFQiAgICAgKGJhc2UgMTYpCQlJbm5vdmF0aXZlIEludGVncmF0aW9uCisJCQkJMjM5MEEgV2FyZCBBdmVudWUKKwkJCQlTaW1pIFZhbGxleSBDQSA5MzA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtRUMgICAoaGV4KQkJQVZJWCBJTkMuCiswMDExRUMgICAgIChiYXNlIDE2KQkJQVZJWCBJTkMuCisJCQkJMS0xLCBGdWt1dXJhLCBLYW5hemF3YS1rdQorCQkJCVlva29oYW1hLXNoaSBLYW5hZ2F3YSAyMzYtMDAwNAorCQkJCUpBUEFOCisKKzAwLTExLUVEICAgKGhleCkJCTgwMiBHbG9iYWwKKzAwMTFFRCAgICAgKGJhc2UgMTYpCQk4MDIgR2xvYmFsCisJCQkJU3R1ZGlvIDExLEludGVjIDIsV2FkZSBSb2FkCisJCQkJQmFzaW5nc3Rva2UsCisJCQkJSGFtcHNoaXJlICBSRzI0IEJORQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLUVFICAgKGhleCkJCUVzdGFyaSwgSW5jLgorMDAxMUVFICAgICAoYmFzZSAxNikJCUVzdGFyaSwgSW5jLgorCQkJCTE4MDAgUGF4dG9uIFN0CisJCQkJSGFycmlzYnVyZyBQQSAxNzEwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtRUYgICAoaGV4KQkJQ29uaXRlYyBEYXRlbnN5c3RlbWUgR21iSAorMDAxMUVGICAgICAoYmFzZSAxNikJCUNvbml0ZWMgRGF0ZW5zeXN0ZW1lIEdtYkgKKwkJCQlEaWVzZWxzdHIuIDExYworCQkJCURpZWJ1cmcgSGVzc2VuIDY0ODA3CisJCQkJR0VSTUFOWQorCiswMC0xMS1GMCAgIChoZXgpCQlXaWRlZnVsIExpbWl0ZWQKKzAwMTFGMCAgICAgKGJhc2UgMTYpCQlXaWRlZnVsIExpbWl0ZWQKKwkJCQlGNSwgMy9GLiwgUGhhc2UgSUksIFN1cGVybHVjayBJbmR1c3RyaWFsIENlbnRyZSwgCisJCQkJNTcgU2hhIFRzdWkgUm9hZCwgVHN1ZW4gV2FuLCAKKwkJCQlIT05HIEtPTkcKKworMDAtMTEtRjEgICAoaGV4KQkJUWluZXRpUSBMdGQKKzAwMTFGMSAgICAgKGJhc2UgMTYpCQlRaW5ldGlRIEx0ZAorCQkJCVJvb20gRTYwMQorCQkJCVN0LiBBbmRyZXcncyBSb2FkCisJCQkJTWFsdmVybiBXb3JjZXN0ZXJzaGlyZSBXUjE0IDNQUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTExLUYyICAgKGhleCkJCUluc3RpdHV0ZSBvZiBOZXR3b3JrIFRlY2hub2xvZ2llcworMDAxMUYyICAgICAoYmFzZSAxNikJCUluc3RpdHV0ZSBvZiBOZXR3b3JrIFRlY2hub2xvZ2llcworCQkJCTE3LXRoIExpbmUgVmFzaWxldnNreSBPc3Ryb3YsIDU0LTEKKwkJCQlTdC5QZXRlcnNidXJnICAxOTkxNzgKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMTEtRjMgICAoaGV4KQkJTmVvTWVkaWEgRXVyb3BlIEFHCiswMDExRjMgICAgIChiYXNlIDE2KQkJTmVvTWVkaWEgRXVyb3BlIEFHCisJCQkJSmVucy1PdHRvLUtyYWctU3RyLiAxMQorCQkJCVfDvHJzZWxlbiBOb3JkcmhlaW4tV2VzdGZhbGVuIDUyMTQ2CisJCQkJR0VSTUFOWQorCiswMC0xMS1GNCAgIChoZXgpCQl3b29yaS1uZXQKKzAwMTFGNCAgICAgKGJhc2UgMTYpCQl3b29yaS1uZXQKKwkJCQkjNTA4LCBIYW5rb29rIE1vb2x5dSwgODUzLTEgRG9uZ2NodW4tRG9uZworCQkJCVlvbmdpbi1TaSBLeXVuZ2tpLURvIDQ0OS04NDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTEtRjUgICAoaGV4KQkJQVNLRVkgQ09NUFVURVIgQ09SUC4KKzAwMTFGNSAgICAgKGJhc2UgMTYpCQlBU0tFWSBDT01QVVRFUiBDT1JQLgorCQkJCTEwRiwgTk8uMTE5LCBDSElFTktBTkcgIFJELiwKKwkJCQlDSFVORy1ITywgVEFJUEVJICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTExLUY2ICAgKGhleCkJCUFzaWEgUGFjaWZpYyBNaWNyb3N5c3RlbXMgLCBJbmMuCiswMDExRjYgICAgIChiYXNlIDE2KQkJQXNpYSBQYWNpZmljIE1pY3Jvc3lzdGVtcyAsIEluYy4KKwkJCQlOby4yLFImRCBSb2FkIDYgLFNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTEtRjcgICAoaGV4KQkJU2hlbnpoZW4gRm9yd2FyZCBJbmR1c3RyeSBDby4sIEx0ZAorMDAxMUY3ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEZvcndhcmQgSW5kdXN0cnkgQ28uLCBMdGQKKwkJCQk0YjEgRjUuOCwgVGlhbiBBbiBDeWJlciBQYXJrLCBDaGVuZ29uZ21pYW8sCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA0MAorCQkJCUNISU5BCisKKzAwLTExLUY4ICAgKGhleCkJCUFJUkFZQSBDb3JwCiswMDExRjggICAgIChiYXNlIDE2KQkJQUlSQVlBIENvcnAKKwkJCQk2MzcgQWRhaXIgQ291cnQKKwkJCQlNb3JnYW4gSGlsbCBDQSA5NTAzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtRjkgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDExRjkgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTEtRkEgICAoaGV4KQkJUmFuZSBDb3Jwb3JhdGlvbgorMDAxMUZBICAgICAoYmFzZSAxNikJCVJhbmUgQ29ycG9yYXRpb24KKwkJCQkxMDgwMiA0N3RoIEF2ZW51ZSBXZXN0CisJCQkJTXVraWx0ZW8gV0EgOTgyNzUtNTA5OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTEtRkIgICAoaGV4KQkJSGVpZGVsYmVyZyBFbmdpbmVlcmluZyBHbWJICiswMDExRkIgICAgIChiYXNlIDE2KQkJSGVpZGVsYmVyZyBFbmdpbmVlcmluZyBHbWJICisJCQkJVGllcmdhcnRlbnN0ci4gMTUKKwkJCQlIZWlkZWxiZXJnIEJhZGVuLVd1ZXJ0dGVtYmVyZyA2OTEyMQorCQkJCUdFUk1BTlkKKworMDAtMTEtRkMgICAoaGV4KQkJSEFSVElORyBFbGVjdHJpYyBHbWJoICYgQ28uS0cKKzAwMTFGQyAgICAgKGJhc2UgMTYpCQlIQVJUSU5HIEVsZWN0cmljIEdtYmggJiBDby5LRworCQkJCVdpbGhlbG0gSGFydGluZyBTdHIuIDEKKwkJCQlFc3BlbGthbXAgTm9yZHJoZWluIFdlc3RmYWxlbiBELTMyMzM5CisJCQkJR0VSTUFOWQorCiswMC0xMS1GRCAgIChoZXgpCQlLT1JHIElOQy4KKzAwMTFGRCAgICAgKGJhc2UgMTYpCQlLT1JHIElOQy4KKwkJCQk0MDE1LTIsIFlhbm9rdWNoaQorCQkJCUluYWdpLUNpdHkgVE9LWU8gMjA2LTA4MTIKKwkJCQlKQVBBTgorCiswMC0xMS1GRSAgIChoZXgpCQlLZWl5byBTeXN0ZW0gUmVzZWFyY2gsIEluYy4KKzAwMTFGRSAgICAgKGJhc2UgMTYpCQlLZWl5byBTeXN0ZW0gUmVzZWFyY2gsIEluYy4KKwkJCQlIYW1hZGEgcGFyayBCbGRnLiA2RgorCQkJCTE3LTMgU2hpbm1hY2hpIENodW91LWt1CisJCQkJQ2hpYmEtY2l0eSBDaGliYS1wcmVmIDI2MC0wMDI4CisJCQkJSkFQQU4KKworMDAtMTEtRkYgICAoaGV4KQkJRGlnaXRybyBUZWNub2xvZ2lhIEx0ZGEKKzAwMTFGRiAgICAgKGJhc2UgMTYpCQlEaWdpdHJvIFRlY25vbG9naWEgTHRkYQorCQkJCVJ1YTogUHJvZmVzc29yYSBTb2ZpYSBRdWludCBkZSBTb3V6YSwgMTY3CisJCQkJQmFpcnJvOiBDYXBvZWlyYXMKKwkJCQlGbG9yaWFuw7Nwb2xpcyBTYW50YSBDYXRhcmluYSA4ODA4NS0wNDAKKwkJCQlCUkFaSUwKKworMDAtMTItMDAgICAoaGV4KQkJQ2lzY28KKzAwMTIwMCAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0wMSAgIChoZXgpCQlDaXNjbworMDAxMjAxICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTAyICAgKGhleCkJCURlY3JhbmUgQWVyb3NwYWNlIC0gQXVkaW8gSW50ZXJuYXRpb25hbCBJbmMuCiswMDEyMDIgICAgIChiYXNlIDE2KQkJRGVjcmFuZSBBZXJvc3BhY2UgLSBBdWRpbyBJbnRlcm5hdGlvbmFsIEluYy4KKwkJCQk3MzAwIEluZHVzdHJ5IERyaXZlCisJCQkJTm9ydGggTGl0dGxlIFJvY2sgQVIgNzIxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTAzICAgKGhleCkJCUFjdGl2IE5ldHdvcmtzCiswMDEyMDMgICAgIChiYXNlIDE2KQkJQWN0aXYgTmV0d29ya3MKKwkJCQlCQVQgTCAtIDEgcnVlIGRlIFRlcnJlIE5ldXZlCisJCQkJQlAxMjcKKwkJCQlDT1VSVEFCT0VVRiBOL0EgOTE5NDQKKwkJCQlGUkFOQ0UKKworMDAtMTItMDQgICAoaGV4KQkJdTEwIE5ldHdvcmtzLCBJbmMuCiswMDEyMDQgICAgIChiYXNlIDE2KQkJdTEwIE5ldHdvcmtzLCBJbmMuCisJCQkJMi0yLTE0IEtha2lub2tpemFrYQorCQkJCU1lZ3VybyBUb2t5byAxNTItMDAyMgorCQkJCUpBUEFOCisKKzAwLTEyLTA1ICAgKGhleCkJCVRlcnJhc2F0IENvbW11bmljYXRpb25zLCBJbmMuCiswMDEyMDUgICAgIChiYXNlIDE2KQkJVGVycmFzYXQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyMzUgVmluZXlhcmQgQ291cnQsIHN1aXRlIDEwMAorCQkJCU1vcmdhbiBIaWxsIENhbGlmb3JuaWEgOTUwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTA2ICAgKGhleCkJCWlRdWVzdCAoTlopIEx0ZAorMDAxMjA2ICAgICAoYmFzZSAxNikJCWlRdWVzdCAoTlopIEx0ZAorCQkJCVAuTy5Cb3ggMTUxNjkKKwkJCQlEaW5zZGFsZQorCQkJCUhhbWlsdG9uIFdhaWthdG8gMjAzMQorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTEyLTA3ICAgKGhleCkJCUhlYWQgU3Ryb25nIEludGVybmF0aW9uYWwgTGltaXRlZAorMDAxMjA3ICAgICAoYmFzZSAxNikJCUhlYWQgU3Ryb25nIEludGVybmF0aW9uYWwgTGltaXRlZAorCQkJCVVuaXQgOSwgMjAvRiwgTWV0cm9wb2xlIFNxdWFyZSwKKwkJCQkyIE9uIFlpdSBTdHJlZXQsIFNoYXRpbgorCQkJCUd1YW5nZG9uZyAKKwkJCQlIT05HIEtPTkcKKworMDAtMTItMDggICAoaGV4KQkJR2FudG5lciBJbnN0cnVtZW50cyBHbWJICiswMDEyMDggICAgIChiYXNlIDE2KQkJR2FudG5lciBJbnN0cnVtZW50cyBHbWJICisJCQkJTW9udGFmb25lcnN0cmFzc2UgOAorCQkJCVNjaHJ1bnMgVm9yYXJsYmVyZyA2NzgwCisJCQkJQVVTVFJJQQorCiswMC0xMi0wOSAgIChoZXgpCQlGYXN0cmF4IEx0ZAorMDAxMjA5ICAgICAoYmFzZSAxNikJCUZhc3RyYXggTHRkCisJCQkJVmFsaW1vdGllIDcKKwkJCQlWYW50YWEgRkkgMDE1MTAKKwkJCQlGSU5MQU5ECisKKzAwLTEyLTBBICAgKGhleCkJCUVtZXJzb24gRWxlY3RyaWMgR21iSCAmIENvLiBPSEcKKzAwMTIwQSAgICAgKGJhc2UgMTYpCQlFbWVyc29uIEVsZWN0cmljIEdtYkggJiBDby4gT0hHCisJCQkJSGVlcnN0cmFzc2UgMTExCisJCQkJV2FpYmxpbmdlbiBCVyA3MTMzMgorCQkJCUdFUk1BTlkKKworMDAtMTItMEIgICAoaGV4KQkJQ2hpbmFzeXMgVGVjaG5vbG9naWVzIExpbWl0ZWQKKzAwMTIwQiAgICAgKGJhc2UgMTYpCQlDaGluYXN5cyBUZWNobm9sb2dpZXMgTGltaXRlZAorCQkJCTEwL0YsQ0FHVyBCdWlsZGluZyxOby4zMCBIYWlkaWFuIFNvdXRoIFJvYWQKKwkJCQlCZWlqaW5nICAxMDAwODAKKwkJCQlDSElOQQorCiswMC0xMi0wQyAgIChoZXgpCQlDRS1JbmZvc3lzIFB0ZSBMdGQKKzAwMTIwQyAgICAgKGJhc2UgMTYpCQlDRS1JbmZvc3lzIFB0ZSBMdGQKKwkJCQkzOTAgSGF2ZWxvY2sgUm9hZAorCQkJCSMwOC0wMiBLaW5nJ3MgQ2VudHJlCisJCQkJMTY5NjYyCisJCQkJU0lOR0FQT1JFCisKKzAwLTEyLTBEICAgKGhleCkJCUFkdmFuY2VkIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcywgSW5jLgorMDAxMjBEICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEwMzkwIFdpbHNoaXJlIEJvdWxldmFyZAorCQkJCVN1aXRlIDE4MDMKKwkJCQlMb3MgQW5nZWxlcyBDYWxpZm9ybmlhIDkwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0wRSAgIChoZXgpCQlBYm9Db20KKzAwMTIwRSAgICAgKGJhc2UgMTYpCQlBYm9Db20KKwkJCQkxRiAsIE5vLiAyMSwgWWFuZmEgMm5kIFJkLiwgU0JJUAorCQkJCUhzaW5jaHUgQ2l0eSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi0wRiAgIChoZXgpCQlJRUVFIDgwMi4zCiswMDEyMEYgICAgIChiYXNlIDE2KQkJSUVFRSA4MDIuMworCQkJCQorCQkJCTE1NTk5IEhhcnJvdyBMYW5lCisJCQkJUG93YXkgQ0EgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTEwICAgKGhleCkJCVdpZGVSYXkgQ29ycAorMDAxMjEwICAgICAoYmFzZSAxNikJCVdpZGVSYXkgQ29ycAorCQkJCTI1IEtlYXJueSBTdHJlZXQKKwkJCQk2dGggRmxvb3IKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0xMSAgIChoZXgpCQlQcm90ZWNobmEgSGVyYnN0IEdtYkggJiBDby4gS0cKKzAwMTIxMSAgICAgKGJhc2UgMTYpCQlQcm90ZWNobmEgSGVyYnN0IEdtYkggJiBDby4gS0cKKwkJCQlPdHRvIEhhaG4gU3RyLiAyNgorCQkJCU90dG9icnVubiBHZXJtYW55L0JhdmFyaWEgODU1MjEKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLTEyICAgKGhleCkJCVBMVVMgIENvcnBvcmF0aW9uCiswMDEyMTIgICAgIChiYXNlIDE2KQkJUExVUyAgQ29ycG9yYXRpb24KKwkJCQkxMDMzLTEsIE9zaGl0YXRlLCBJbmFnaS1zaGksCisJCQkJVG9reW8gU2FpdGFtYSAyMDYtMDgxMQorCQkJCUpBUEFOCisKKzAwLTEyLTEzICAgKGhleCkJCU1ldHJvaG0gQUcKKzAwMTIxMyAgICAgKGJhc2UgMTYpCQlNZXRyb2htIEFHCisJCQkJT2JlcmRvcmZzdHJhc3NlIDY4CisJCQkJSGVyaXNhdSBBUiA5MTAxCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTItMTQgICAoaGV4KQkJS29lbmlnICYgQmF1ZXIgQUcKKzAwMTIxNCAgICAgKGJhc2UgMTYpCQlLb2VuaWcgJiBCYXVlciBBRworCQkJCUZyaWVkcmljaC1Lb2VuaWctU3RyLiA0CisJCQkJV3VlcnpidXJnIEJhdmFyaWEgOTcwODAKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLTE1ICAgKGhleCkJCWlTdG9yIE5ldHdvcmtzLCBJbmMuCiswMDEyMTUgICAgIChiYXNlIDE2KQkJaVN0b3IgTmV0d29ya3MsIEluYy4KKwkJCQk3NTg1IElydmluZSBDZW50ZXIgRHJpdmUKKwkJCQlTdWl0ZSAyNTAKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTE2ICAgKGhleCkJCUlDUCBJbnRlcm5ldCBDb21tdW5pY2F0aW9uIFBheW1lbnQgQUcKKzAwMTIxNiAgICAgKGJhc2UgMTYpCQlJQ1AgSW50ZXJuZXQgQ29tbXVuaWNhdGlvbiBQYXltZW50IEFHCisJCQkJV2lsaGVsbS1TdGVpbi1XZWcgMjQKKwkJCQlIYW1idXJnICBELTIyMzM5CisJCQkJR0VSTUFOWQorCiswMC0xMi0xNyAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzAwMTIxNyAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyLgorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMTggICAoaGV4KQkJQVJVWkUgQ29ycG9yYXRpb24KKzAwMTIxOCAgICAgKGJhc2UgMTYpCQlBUlVaRSBDb3Jwb3JhdGlvbgorCQkJCUFyaWFrZSBGcm9udGllciBCdWlsZGluZyBBCisJCQkJMy0xLTI1IEFyaWFrZQorCQkJCUtvaHRvaC1rdSBUb2t5byAxMzUtMDA2MworCQkJCUpBUEFOCisKKzAwLTEyLTE5ICAgKGhleCkJCUFoZWFkIENvbW11bmljYXRpb24gU3lzdGVtcyBJbmMKKzAwMTIxOSAgICAgKGJhc2UgMTYpCQlBaGVhZCBDb21tdW5pY2F0aW9uIFN5c3RlbXMgSW5jCisJCQkJMTk5IFBhcmsgUm9hZCBFeHQKKwkJCQlQTyBCb3ggOTI5CisJCQkJTWlkZGxlYnVyeSBDVCAwNjc2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMUEgICAoaGV4KQkJVGVjaG5vIFNvZnQgU3lzdGVtbmljcyBJbmMuCiswMDEyMUEgICAgIChiYXNlIDE2KQkJVGVjaG5vIFNvZnQgU3lzdGVtbmljcyBJbmMuCisJCQkJMi01LTE3LCBFYmlzdS1uaXNoaSwgTmFuaXdhLWt1LAorCQkJCU9zYWthICA1NTYtMDAwMworCQkJCUpBUEFOCisKKzAwLTEyLTFCICAgKGhleCkJCVNvdW5kIERldmljZXMsIExMQworMDAxMjFCICAgICAoYmFzZSAxNikJCVNvdW5kIERldmljZXMsIExMQworCQkJCTMwMCBXZW5nZWwgRHJpdmUKKwkJCQlSZWVkc2J1cmcgV0kgNTM5NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTFDICAgKGhleCkJCVBBUlJPVCBTLkEuCiswMDEyMUMgICAgIChiYXNlIDE2KQkJUEFSUk9UIFMuQS4KKwkJCQkxNzQsIHF1YWkgZGUgSmVtbWFwZXMKKwkJCQlQQVJJUyAgNzUwMTAKKwkJCQlGUkFOQ0UKKworMDAtMTItMUQgICAoaGV4KQkJTmV0ZmFicmljIENvcnBvcmF0aW9uCiswMDEyMUQgICAgIChiYXNlIDE2KQkJTmV0ZmFicmljIENvcnBvcmF0aW9uCisJCQkJNjcgRmVkZXJhbCBSb2FkCisJCQkJU3VpdGUgMzAwCisJCQkJQnJvb2tmaWVsZCBDVCAwNjgwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMUUgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcywgSW5jLgorMDAxMjFFICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MsIEluYy4KKwkJCQkxMTk0IE4uIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMUYgICAoaGV4KQkJSGFyZGluZyBJbnRydW1lbnRzCiswMDEyMUYgICAgIChiYXNlIDE2KQkJSGFyZGluZyBJbnRydW1lbnRzCisJCQkJOTQzMS00MUF2ZQorCQkJCUVkbW9udG9uIEFCIFQ2RSA1WDcKKwkJCQlDQU5BREEKKworMDAtMTItMjAgICAoaGV4KQkJQ2FkY28gU3lzdGVtcworMDAxMjIwICAgICAoYmFzZSAxNikJCUNhZGNvIFN5c3RlbXMKKwkJCQkyMzYzIE1lcnJpdHQgRHIKKwkJCQlHYXJsYW5kIFRleGFzIDc1MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0yMSAgIChoZXgpCQlCLkJyYXVuIE1lbHN1bmdlbiBBRworMDAxMjIxICAgICAoYmFzZSAxNikJCUIuQnJhdW4gTWVsc3VuZ2VuIEFHCisJCQkJU2Nod2FyemVuYmVyZ2VyIFdlZyA3My03OQorCQkJCU1lbHN1bmdlbiBIZXNzZW4gMzQyMTIKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLTIyICAgKGhleCkJCVNrYXJkaW4gKFVLKSBMdGQKKzAwMTIyMiAgICAgKGJhc2UgMTYpCQlTa2FyZGluIChVSykgTHRkCisJCQkJTm8uIDUgR3JlZW53YXkgKFJPMjQpCisJCQkJSGFybG93IEJ1c2luZXNzIFBhcmsKKwkJCQlIYXJsb3cgRXNzZXggQ00xOSA1UUIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMi0yMyAgIChoZXgpCQlQaXhpbQorMDAxMjIzICAgICAoYmFzZSAxNikJCVBpeGltCisJCQkJOTE1IExpbmRhIFZpc3RhIEF2ZS4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0yNCAgIChoZXgpCQlOZXhRTCBDb3Jwb3JhdGlvbgorMDAxMjI0ICAgICAoYmFzZSAxNikJCU5leFFMIENvcnBvcmF0aW9uCisJCQkJMTIyNTAgSW53b29kIFJvYWQgIzYKKwkJCQlEYWxsYXMgVFggNzUyNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTI1ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxMjI1ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTI2ICAgKGhleCkJCUphcGFuIERpcmV4IENvcnBvcmF0aW9uCiswMDEyMjYgICAgIChiYXNlIDE2KQkJSmFwYW4gRGlyZXggQ29ycG9yYXRpb24KKwkJCQlLeW9jZXJhIEhhcmFqdWt1IEJsZGcuCisJCQkJNi0yNy04LCBKaW5ndW1hZQorCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUwLTAwMDEKKwkJCQlKQVBBTgorCiswMC0xMi0yNyAgIChoZXgpCQlGcmFua2xpbiBFbGVjdHJpYyBDby4sIEluYy4KKzAwMTIyNyAgICAgKGJhc2UgMTYpCQlGcmFua2xpbiBFbGVjdHJpYyBDby4sIEluYy4KKwkJCQk0MDAgRS4gU3ByaW5nIFN0cmVldAorCQkJCUJsdWZmdG9uIEluZGlhbmEgNDY3MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTI4ICAgKGhleCkJCURhdGEgTHRkLgorMDAxMjI4ICAgICAoYmFzZSAxNikJCURhdGEgTHRkLgorCQkJCUouIEhhZ2FydSA5CisJCQkJUC5PLiBCb3ggNworCQkJCUJyYXRpc2xhdmEgIDgzMCAwNQorCQkJCVNMT1ZBS0lBCisKKzAwLTEyLTI5ICAgKGhleCkJCUJyb2FkRWFzeSBUZWNobm9sb2dpZXMgQ28uLEx0ZAorMDAxMjI5ICAgICAoYmFzZSAxNikJCUJyb2FkRWFzeSBUZWNobm9sb2dpZXMgQ28uLEx0ZAorCQkJCTI0dGggRmxvb3IsVG93ZXIgQSxKaW5TaGFuIE1hbnNpb24sCisJCQkJTk8uOCBTaGFuWGkgUm9hZCxOYW5qaW5nLFAuUi5DLgorCQkJCU5hbmppbmcgSmlhbmdzdSAyMTAwMDkKKwkJCQlDSElOQQorCiswMC0xMi0yQSAgIChoZXgpCQlWVGVjaCBUZWxlY29tbXVuaWNhdGlvbnMgTHRkLgorMDAxMjJBICAgICAoYmFzZSAxNikJCVZUZWNoIFRlbGVjb21tdW5pY2F0aW9ucyBMdGQuCisJCQkJMjMvRiwgVGFpIFBpbmcgSW5kdXN0cmlhbCBDZW50cmUsIEJsb2NrIDEKKwkJCQk1NyBUaW5nIEtvayBSb2FkLCBUYWkgUG8KKwkJCQlIT05HIEtPTkcKKworMDAtMTItMkIgICAoaGV4KQkJVmlyYmlhZ2UgUHR5IEx0ZAorMDAxMjJCICAgICAoYmFzZSAxNikJCVZpcmJpYWdlIFB0eSBMdGQKKwkJCQlMZXZlbCA0CisJCQkJOCBNYXJrZXQgU3RyZWV0CisJCQkJTWVsYm91cm5lIFZpY3RvcmlhIDMwMDAKKwkJCQlBVVNUUkFMSUEKKworMDAtMTItMkMgICAoaGV4KQkJU29lbmVuIENvbnRyb2xzIE4uVi4KKzAwMTIyQyAgICAgKGJhc2UgMTYpCQlTb2VuZW4gQ29udHJvbHMgTi5WLgorCQkJCVdpam5lZGFsZXN0cmFhdCAxOTAKKwkJCQlSb2VzZWxhcmUgVy1WTCA4ODAwCisJCQkJQkVMR0lVTQorCiswMC0xMi0yRCAgIChoZXgpCQlTaU5ldHQgQ29ycG9yYXRpb24KKzAwMTIyRCAgICAgKGJhc2UgMTYpCQlTaU5ldHQgQ29ycG9yYXRpb24KKwkJCQk2NDAgVy4gQ2FsaWZvcm5pYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTJFICAgKGhleCkJCVNpZ25hbCBUZWNobm9sb2d5IC0gQUlTRAorMDAxMjJFICAgICAoYmFzZSAxNikJCVNpZ25hbCBUZWNobm9sb2d5IC0gQUlTRAorCQkJCTE4MjAgUHJlc3RvbiBQYXJrIEJsdmQuCisJCQkJU3VpdGUgMjgwMAorCQkJCVBsYW5vIFRYIDc1MDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0yRiAgIChoZXgpCQlTYW5laSBFbGVjdHJpYyBJbmMuCiswMDEyMkYgICAgIChiYXNlIDE2KQkJU2FuZWkgRWxlY3RyaWMgSW5jLgorCQkJCTVGIFRhaXNvdS1Ja2VidWt1cm8gQmxkZy4KKwkJCQkyLTYxLTEgSWtlYnVrdXJvCisJCQkJVG9zaGltYS1rdSBUb2t5byAxNzEtMDAxNAorCQkJCUpBUEFOCisKKzAwLTEyLTMwICAgKGhleCkJCVBpY2FzbyBJbmZvY29tbXVuaWNhdGlvbiBDTy4sIExURC4KKzAwMTIzMCAgICAgKGJhc2UgMTYpCQlQaWNhc28gSW5mb2NvbW11bmljYXRpb24gQ08uLCBMVEQuCisJCQkJM0YsIFN1bnRlY2hjaXR5LCBTYW5nZGFld29uIDEtZG9uZywKKwkJCQk1MTMtMTUsIEp1bmd3b24tZ3UKKwkJCQlTdW5nbmFtLWNpdHkgS3l1bmdnaS1kbyA0NjItNzI1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTMxICAgKGhleCkJCU1vdGlvbiBDb250cm9sIFN5c3RlbXMsIEluYy4KKzAwMTIzMSAgICAgKGJhc2UgMTYpCQlNb3Rpb24gQ29udHJvbCBTeXN0ZW1zLCBJbmMuCisJCQkJUE8gQm94IDExNQorCQkJCTY3MDEgVmlzY29lIFJvYWQKKwkJCQlOZXcgUml2ZXIgVkEgMjQxMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTMyICAgKGhleCkJCUxlV2l6IENvbW11bmljYXRpb25zIEluYy4KKzAwMTIzMiAgICAgKGJhc2UgMTYpCQlMZVdpeiBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJMTM3NiBOLiA0dGggU3QuICMzMDAKKwkJCQlTYW4gSm9zZSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMzMgICAoaGV4KQkJSlJDIFRPS0tJIENvLixMdGQuCiswMDEyMzMgICAgIChiYXNlIDE2KQkJSlJDIFRPS0tJIENvLixMdGQuCisJCQkJMy0yLTEgU2hpbnlvc2hpZGFoaWdhc2hpIEtvaG9rdS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyMy04NTcyCisJCQkJSkFQQU4KKworMDAtMTItMzQgICAoaGV4KQkJQ2FtaWxsZSBCYXVlcgorMDAxMjM0ICAgICAoYmFzZSAxNikJCUNhbWlsbGUgQmF1ZXIKKwkJCQlBYXJnYXVlcnN0ci4gNworCQkJCVdvaGxlbiBBRyA1NjEwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTItMzUgICAoaGV4KQkJQW5kcmV3IENvcnBvcmF0aW9uCiswMDEyMzUgICAgIChiYXNlIDE2KQkJQW5kcmV3IENvcnBvcmF0aW9uCisJCQkJMjYwMSBUZWxlY29tIFBrd3kKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi0zNiAgIChoZXgpCQlDb25TZW50cnkgTmV0d29ya3MKKzAwMTIzNiAgICAgKGJhc2UgMTYpCQlDb25TZW50cnkgTmV0d29ya3MKKwkJCQkxNjkwIE1jQ2FuZGxlc3MgRHIKKwkJCQlNaWxpcGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTM3ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDEyMzcgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsCisJCQkJTVMgODcyMworCQkJCURhbGxhcyBUZXhhcyA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItMzggICAoaGV4KQkJU2V0YUJveCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxMjM4ICAgICAoYmFzZSAxNikJCVNldGFCb3ggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk5Ri0xLCBOby4gMjkzLTMsIFNlYzIsIEZ1LUhzaW5nIFMuIFJkLgorCQkJCVRhaXBlaSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi0zOSAgIChoZXgpCQlTIE5ldCBTeXN0ZW1zIEluYy4KKzAwMTIzOSAgICAgKGJhc2UgMTYpCQlTIE5ldCBTeXN0ZW1zIEluYy4KKwkJCQkxMEYgU3VuZ3dvbiBCbGRnLiBTYW1zdW5nLWRvbmcKKwkJCQlHYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS0wOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTItM0EgICAoaGV4KQkJUG9zeXN0ZWNoIEluYy4sIENvLgorMDAxMjNBICAgICAoYmFzZSAxNikJCVBvc3lzdGVjaCBJbmMuLCBDby4KKwkJCQlSb29tIDQwNywgRGFlcnl1bmcgVGVjaG5vIFRvd24gNiwKKwkJCQk0OTMtNiwgR2FzYW4tRG9uZywgR2V1bWNoZW9uLUd1LAorCQkJCVNlb3VsICAxNTMtNzcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTNCICAgKGhleCkJCUtlUm8gU3lzdGVtcyBBcFMKKzAwMTIzQiAgICAgKGJhc2UgMTYpCQlLZVJvIFN5c3RlbXMgQXBTCisJCQkJQWxsaWtldmVqIDMKKwkJCQlIw7hyc2hvbG0gIDI5NzAKKwkJCQlERU5NQVJLCisKKzAwLTEyLTNDICAgKGhleCkJCVNlY29uZCBSdWxlIExMQworMDAxMjNDICAgICAoYmFzZSAxNikJCVNlY29uZCBSdWxlIExMQworCQkJCTQxMTkgV2FsbnV0IFN0cmVldAorCQkJCVN1aXRlIDIwMAorCQkJCVBoaWxhZGVscGhpYSBQQSAxOTEwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItM0QgICAoaGV4KQkJR0VTCiswMDEyM0QgICAgIChiYXNlIDE2KQkJR0VTCisJCQkJUm9vbSA1NDAzLCBEb25nU2VvdWwgQ29sbGVnZSwgNDIzLCBCb2tqZW9uZy1Eb25nLCBTdWplb25nLUd1LCBTZW9uZ25hbS1TaSwgR3llb25nZ2ktRG8sCisJCQkJR3llb25nZ2ktRG8gU2VvbmduYW0tU2kgNDYxLTcxNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMi0zRSAgIChoZXgpCQlFUlVORSB0ZWNobm9sb2d5IENvLiwgTHRkLgorMDAxMjNFICAgICAoYmFzZSAxNikJCUVSVU5FIHRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uIDQyOSwgQ2hpbi1TYW4gMm5kIHN0cmVldCwKKwkJCQlZYW5nLU1laQorCQkJCVRhbyBZdWFuICAzMjYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLTNGICAgKGhleCkJCURlbGwgSW5jCiswMDEyM0YgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXkKKwkJCQlSb3VuZCBSb2NrICBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNDAgICAoaGV4KQkJQU1PSSBFTEVDVFJPTklDUyBDTy4sTFRECiswMDEyNDAgICAgIChiYXNlIDE2KQkJQU1PSSBFTEVDVFJPTklDUyBDTy4sTFRECisJCQkJMjk1IExhbmUsWnVjaG9uZ3poaSBSb2FkLFpoYW5nIGppYW5nLAorCQkJCVNoYW5naGFpICAyMDEyMDMKKwkJCQlDSElOQQorCiswMC0xMi00MSAgIChoZXgpCQlhMmkgbWFya2V0aW5nIGNlbnRlcgorMDAxMjQxICAgICAoYmFzZSAxNikJCWEyaSBtYXJrZXRpbmcgY2VudGVyCisJCQkJMTAyNC00ICBEdWtzYW4gQmxkZyBCYW5nYmFlZG9uZyBTZW9jaG9ndSBTZW91bCBLb3JlYQorCQkJCVNFT1VMICAxMzctMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTQyICAgKGhleCkJCU1pbGxlbm5pYWwgTmV0CiswMDEyNDIgICAgIChiYXNlIDE2KQkJTWlsbGVubmlhbCBOZXQKKwkJCQkgMjg1IEJpbGxlcmljYSBSb2FkCisJCQkJQ2hlbG1zZm9yZCBNQSAwMTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNDMgICAoaGV4KQkJQ2lzY28KKzAwMTI0MyAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi00NCAgIChoZXgpCQlDaXNjbworMDAxMjQ0ICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTQ1ICAgKGhleCkJCVplbGx3ZWdlciBBbmFseXRpY3MsIEluYy4KKzAwMTI0NSAgICAgKGJhc2UgMTYpCQlaZWxsd2VnZXIgQW5hbHl0aWNzLCBJbmMuCisJCQkJNDA1IEJhcmNsYXkgQmx2ZC4KKwkJCQlMaW5jb2xuc2hpcmUgSWxsaW5vaXMgNjAwNjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTQ2ICAgKGhleCkJCVQuTy5NIFRFQ0hOT0xPR1kgSU5DLi4KKzAwMTI0NiAgICAgKGJhc2UgMTYpCQlULk8uTSBURUNITk9MT0dZIElOQy4uCisJCQkJOTA2IFdvb2xpbSBFLWJpeiBDZW50ZXIgMiwKKwkJCQlHdXJvLTNEb25nCisJCQkJU2VvdWwgR3Vyby1HdSAxODQtMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMi00NyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxMjQ3ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pLUNpdHkgR3llb25nLUJ1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTQ4ICAgKGhleCkJCUVNQyBDb3Jwb3JhdGlvbiAoS2FzaHlhKQorMDAxMjQ4ICAgICAoYmFzZSAxNikJCUVNQyBDb3Jwb3JhdGlvbiAoS2FzaHlhKQorCQkJCTE3NiBTb3V0aCBTdHJlZXQKKwkJCQlIb3BraW50b24gTUEgMDE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTQ5ICAgKGhleCkJCURlbHRhIEVsZXR0cm9uaWNhIFMucC5BLgorMDAxMjQ5ICAgICAoYmFzZSAxNikJCURlbHRhIEVsZXR0cm9uaWNhIFMucC5BLgorCQkJCVZpYSBBc3RpY28gNDEKKwkJCQlWYXJlc2UgIDIxMTAwCisJCQkJSVRBTFkKKworMDAtMTItNEEgICAoaGV4KQkJRGVkaWNhdGVkIERldmljZXMsIEluYy4KKzAwMTI0QSAgICAgKGJhc2UgMTYpCQlEZWRpY2F0ZWQgRGV2aWNlcywgSW5jLgorCQkJCTU2ODAgRS4gRnJhbmtsaW4KKwkJCQlTdWl0ZSAyNTAKKwkJCQlOYW1wYSBJZGFobyA4MzY4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNEIgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTI0QiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCUdhdXN0YWRhbGxlZW4gMjEKKwkJCQlUZXhhcyBJbnN0cnVtZW50cyBOb3J3YXkgQVMKKwkJCQlPc2xvICBOLTAzNDkKKwkJCQlOT1JXQVkKKworMDAtMTItNEMgICAoaGV4KQkJQkJXTSBDb3Jwb3JhdGlvbgorMDAxMjRDICAgICAoYmFzZSAxNikJCUJCV00gQ29ycG9yYXRpb24KKwkJCQk2RiwgTm8uIDU3OCwgUnVpIEd1YW5nIFJvYWQsIE5laSBIdQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi00RCAgIChoZXgpCQlJbmR1Y29uIEJWCiswMDEyNEQgICAgIChiYXNlIDE2KQkJSW5kdWNvbiBCVgorCQkJCUtlcmtsYWFuIDI2CisJCQkJTGVpbXVpZGVuIFpIIDI1NDEgQ0cKKwkJCQlORVRIRVJMQU5EUworCiswMC0xMi00RSAgIChoZXgpCQlYQUMgQVVUT01BVElPTiBDT1JQLgorMDAxMjRFICAgICAoYmFzZSAxNikJCVhBQyBBVVRPTUFUSU9OIENPUlAuCisJCQkJNEYsIDMwIEluZHVzdHJ5IEUuIFJvYWQgSVgKKwkJCQlTY2llbmNlIFBhcmsKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi00RiAgIChoZXgpCQlUeWNvIFRoZXJtYWwgQ29udHJvbHMgTExDLgorMDAxMjRGICAgICAoYmFzZSAxNikJCVR5Y28gVGhlcm1hbCBDb250cm9scyBMTEMuCisJCQkJMTEwMDQgLSAxNzQgU3QuCisJCQkJRWRtb250b24gQWxiZXJ0YSBUNVMgMlAzCisJCQkJQ0FOQURBCisKKzAwLTEyLTUwICAgKGhleCkJCVRva3lvIEFpcmNhZnQgSW5zdHJ1bWVudCBDby4sIEx0ZC4KKzAwMTI1MCAgICAgKGJhc2UgMTYpCQlUb2t5byBBaXJjYWZ0IEluc3RydW1lbnQgQ28uLCBMdGQuCisJCQkJMS0zNS0xLCBJenVtaS1Ib25jaG8KKwkJCQlLb21hZS1TaGkgVG9reW8gMjAxLTg1NTUKKwkJCQlKQVBBTgorCiswMC0xMi01MSAgIChoZXgpCQlTSUxJTksKKzAwMTI1MSAgICAgKGJhc2UgMTYpCQlTSUxJTksKKwkJCQkxMyBSVUUgUE9NRVlTCisJCQkJTEUgVEFJTExBTiAgMzMzMjAKKwkJCQlGUkFOQ0UKKworMDAtMTItNTIgICAoaGV4KQkJQ2l0cm9uaXgsIExMQworMDAxMjUyICAgICAoYmFzZSAxNikJCUNpdHJvbml4LCBMTEMKKwkJCQkzMDMwIFNFIExvb3AgODIwCisJCQkJRm9ydCBXb3J0aCBUZXhhcyA3NjE0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNTMgICAoaGV4KQkJQXVkaW9EZXYgQUIKKzAwMTI1MyAgICAgKGJhc2UgMTYpCQlBdWRpb0RldiBBQgorCQkJCUthYmluZ2F0YW4gOQorCQkJCU1hbG3DtiAgU0UtMjEyIDM5CisJCQkJU1dFREVOCisKKzAwLTEyLTU0ICAgKGhleCkJCVNwZWN0cmEgVGVjaG5vbG9naWVzIEhvbGRpbmdzIENvbXBhbnkgTHRkCiswMDEyNTQgICAgIChiYXNlIDE2KQkJU3BlY3RyYSBUZWNobm9sb2dpZXMgSG9sZGluZ3MgQ29tcGFueSBMdGQKKwkJCQlVbml0IDEzMDEtMDksIFRvd2VyIElJCisJCQkJUGFjaWZpYyBDZW50dXJ5IFBsYWNlLCBNb25na29rCisJCQkJODUyCisJCQkJSE9ORyBLT05HCisKKzAwLTEyLTU1ICAgKGhleCkJCU5ldEVmZmVjdCBJbmNvcnBvcmF0ZWQKKzAwMTI1NSAgICAgKGJhc2UgMTYpCQlOZXRFZmZlY3QgSW5jb3Jwb3JhdGVkCisJCQkJOTIxMSBXYXRlcmZvcmQgQ2VudHJlIEJsdmQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlBdXN0aW4gVGV4YXMgNzg3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTU2ICAgKGhleCkJCUxHIElORk9STUFUSU9OICYgQ09NTS4KKzAwMTI1NiAgICAgKGJhc2UgMTYpCQlMRyBJTkZPUk1BVElPTiAmIENPTU0uCisJCQkJNDU5LTksS0FTQU4tRE9ORyxLVU1DSE9OLUdVLAorCQkJCVNFT1VMICAxNTMtMDIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTU3ICAgKGhleCkJCUxlYXBDb21tIENvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIEluYy4KKzAwMTI1NyAgICAgKGJhc2UgMTYpCQlMZWFwQ29tbSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJUk0xODA0LTA1IFNvdXRoIFRvd2VyIEhvbmcgS29uZyBQbGF6YSwgTm8uMjgzIEh1YWloYWkgWmhvbmcgUm9hZAorCQkJCVNoYW5naGFpICAyMDAwMjEKKwkJCQlDSElOQQorCiswMC0xMi01OCAgIChoZXgpCQlBY3RpdmlzIFBvbHNrYQorMDAxMjU4ICAgICAoYmFzZSAxNikJCUFjdGl2aXMgUG9sc2thCisJCQkJU3dpZXJ6YXdza2EgNQorCQkJCVBvem5hbiBXaWVsa29wb2xza2EgNjAtMzIxCisJCQkJUE9MQU5ECisKKzAwLTEyLTU5ICAgKGhleCkJCVRIRVJNTyBFTEVDVFJPTiBLQVJMU1JVSEUKKzAwMTI1OSAgICAgKGJhc2UgMTYpCQlUSEVSTU8gRUxFQ1RST04gS0FSTFNSVUhFCisJCQkJRElFU0VMU1RSQVNTRSA0CisJCQkJS0FSTFNSVUhFIEJBREVOIFfDg8WTUlRFTUJFUkcgNzYyMjcKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLTVBICAgKGhleCkJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorMDAxMjVBICAgICAoYmFzZSAxNikJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorCQkJCU9uZSBNaWNyb3NvZnQgV2F5CisJCQkJUmVkbW9uZCBXYXNoaW5ndG9uIDk4MDUyLTYzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTVCICAgKGhleCkJCUtBSU1FSSBFTEVDVFJPTkkKKzAwMTI1QiAgICAgKGJhc2UgMTYpCQlLQUlNRUkgRUxFQ1RST05JCisJCQkJMTQtM0YsIE5PLjgxLFNFQy4gMSxIU0lOLVRBSS1XVSBST0FELEhTSUNISUgsCisJCQkJVEFJUEVJIEhTSUVOIEhTSUNISUggMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi01QyAgIChoZXgpCQlHcmVlbiBIaWxscyBTb2Z0d2FyZSwgSW5jLgorMDAxMjVDICAgICAoYmFzZSAxNikJCUdyZWVuIEhpbGxzIFNvZnR3YXJlLCBJbmMuCisJCQkJMzAgV2VzdCBTb2xhIFN0cmVldAorCQkJCVNhbnRhIEJhcmJhcmEgQ0EgOTMxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTVEICAgKGhleCkJCUN5YmVyTmV0IEluYy4KKzAwMTI1RCAgICAgKGJhc2UgMTYpCQlDeWJlck5ldCBJbmMuCisJCQkJIzIwNSwgTG90dGUgU3VudGVjaCBDaXR5LCA1MTMtMTUKKwkJCQlTYW5nZGFld29uLWRvbmcsIENodW5nd29uLWd1CisJCQkJU3VuZ25hbSBLeXVuZ2dpIDQ2Mi04MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTItNUUgICAoaGV4KQkJQ0FFTgorMDAxMjVFICAgICAoYmFzZSAxNikJCUNBRU4KKwkJCQl2aWEgVmV0cmFpYSwgMTEKKwkJCQlWaWFyZWdnaW8gTFVDQ0EgNTUwNDkKKwkJCQlJVEFMWQorCiswMC0xMi01RiAgIChoZXgpCQlBV0lORCBJbmMuCiswMDEyNUYgICAgIChiYXNlIDE2KQkJQVdJTkQgSW5jLgorCQkJCTE3Ri4sIE5vLiA4ODYtNSwgSnVuZ2plbmcgUmQKKwkJCQlKdW5naGUgQ2l0eQorCQkJCVRhaXBlaSBDb3VudHkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItNjAgICAoaGV4KQkJU3RhbnRvbiBNYWduZXRpY3MsaW5jLgorMDAxMjYwICAgICAoYmFzZSAxNikJCVN0YW50b24gTWFnbmV0aWNzLGluYy4KKwkJCQkzMDAwIFNXIDQybmQgU3RyZWV0CisJCQkJSG9sbHl3b29kIEZMIDMzMzEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi02MSAgIChoZXgpCQlBZGFwdGl4LCBJbmMKKzAwMTI2MSAgICAgKGJhc2UgMTYpCQlBZGFwdGl4LCBJbmMKKwkJCQkxNDA3IDExNnRoIEF2ZS4gTkUKKwkJCQlTdWl0ZSBFMjEwCisJCQkJQmVsbGV2dWUgV0EgOTgwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTYyICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDEyNjIgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTEyLTYzICAgKGhleCkJCURhdGEgVm9pY2UgVGVjaG5vbG9naWVzIEdtYkgKKzAwMTI2MyAgICAgKGJhc2UgMTYpCQlEYXRhIFZvaWNlIFRlY2hub2xvZ2llcyBHbWJICisJCQkJU3RvY2tob2xtZXIgQWxsZWUgMzJiCisJCQkJRG9ydG11bmQgTlJXIEQtNDQyNjkKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLTY0ICAgKGhleCkJCWRhdW0gZWxlY3Ryb25pYyBnbWJoCiswMDEyNjQgICAgIChiYXNlIDE2KQkJZGF1bSBlbGVjdHJvbmljIGdtYmgKKwkJCQlmbHVncGxhdHpzdHIuIDEwMAorCQkJCUZ1ZXJ0aCBCYXZhcmlhIDkwNzY4CisJCQkJR0VSTUFOWQorCiswMC0xMi02NSAgIChoZXgpCQlFbmVyZHluZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTI2NSAgICAgKGJhc2UgMTYpCQlFbmVyZHluZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxOTM1IENvcmRlbGwgQ291cnQKKwkJCQlFbCBDYWpvbiBDQSA5MjAyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNjYgICAoaGV4KQkJU3dpc3Njb20gSG9zcGl0YWxpdHkgU2VydmljZXMgU0EKKzAwMTI2NiAgICAgKGJhc2UgMTYpCQlTd2lzc2NvbSBIb3NwaXRhbGl0eSBTZXJ2aWNlcyBTQQorCQkJCUNoZW1pbiBkZSBsJ0V0YW5nIDY1CisJCQkJMTIxMSBHZW5ldmEgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTItNjcgICAoaGV4KQkJTWF0c3VzaGl0YSBFbGVjdHJvbmljIENvbXBvbmVudHMgQ28uLCBMdGQuCiswMDEyNjcgICAgIChiYXNlIDE2KQkJTWF0c3VzaGl0YSBFbGVjdHJvbmljIENvbXBvbmVudHMgQ28uLCBMdGQuCisJCQkJMTAwNiBLYWRvbWEKKwkJCQlLYWRvbWEtQ2l0eSBPc2FrYSA1NzEtODUwNgorCQkJCUpBUEFOCisKKzAwLTEyLTY4ICAgKGhleCkJCUlQUyBkLm8uby4KKzAwMTI2OCAgICAgKGJhc2UgMTYpCQlJUFMgZC5vLm8uCisJCQkJQy4gTGp1YmxqYW5za2UgYnJpZ2FkZSAxNworCQkJCUxqdWJsamFuYSAgU0ktMTAwMAorCQkJCVNMT1ZFTklBCisKKzAwLTEyLTY5ICAgKGhleCkJCVZhbHVlIEVsZWN0cm9uaWNzCiswMDEyNjkgICAgIChiYXNlIDE2KQkJVmFsdWUgRWxlY3Ryb25pY3MKKwkJCQlEb25nLWt3YW4gQi9ELCA1RiwgMTU2Ni0yCisJCQkJU2VvY2hvLWRvbmcsIFNlb2Noby1ndQorCQkJCXNlb3VsICAxMzctODc0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEyLTZBICAgKGhleCkJCU9QVE9FTEVDVFJPTklDUyBDby4sIEx0ZC4KKzAwMTI2QSAgICAgKGJhc2UgMTYpCQlPUFRPRUxFQ1RST05JQ1MgQ28uLCBMdGQuCisJCQkJMy0xS2FtaWFva2luaXNoaSAxLWNob21lCisJCQkJS2F3YWd1Y2hpIFNhaXRhbWEgUHJlZi4gMzMzLTA4NDUKKwkJCQlKQVBBTgorCiswMC0xMi02QiAgIChoZXgpCQlBc2NhbGFkZSBDb21tdW5pY2F0aW9ucyBMaW1pdGVkCiswMDEyNkIgICAgIChiYXNlIDE2KQkJQXNjYWxhZGUgQ29tbXVuaWNhdGlvbnMgTGltaXRlZAorCQkJCVVuaXQgMTAtMTEsIDM1L0YsIENhYmxlIFRWIFRvd2VyLAorCQkJCU5vLjkgSG9pIFNoaW5nIFJvYWQsIFRzdWVuIFdhbgorCQkJCUhPTkcgS09ORworCiswMC0xMi02QyAgIChoZXgpCQlWaXNvbmljIEx0ZC4KKzAwMTI2QyAgICAgKGJhc2UgMTYpCQlWaXNvbmljIEx0ZC4KKwkJCQkyNCBIYWJhcnplbCBTdC4KKwkJCQlUZWwgQXZpdiAgNjk3MTAKKwkJCQlJU1JBRUwKKworMDAtMTItNkQgICAoaGV4KQkJVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLCBCZXJrZWxleQorMDAxMjZEICAgICAoYmFzZSAxNikJCVVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYSwgQmVya2VsZXkKKwkJCQlFRUNTIERlcGFydG1lbnQKKwkJCQlCZXJrZWxleSBDQSA5NDcyMC0xNzc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi02RSAgIChoZXgpCQlTZWlkZWwgRWxla3Ryb25payBHbWJIIE5mZy5LRworMDAxMjZFICAgICAoYmFzZSAxNikJCVNlaWRlbCBFbGVrdHJvbmlrIEdtYkggTmZnLktHCisJCQkJRnJhdWVudGFsZXJzdHJhc3NlIDEwMAorCQkJCURldXRzY2hsYW5kc2JlcmcgU3RlaWVybWFyayA4NTMwCisJCQkJQVVTVFJJQQorCiswMC0xMi02RiAgIChoZXgpCQlSYXlzb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTI2RiAgICAgKGJhc2UgMTYpCQlSYXlzb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxRiBOby45IFImRCBSZC5JSSwgU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi03MCAgIChoZXgpCQlOR0VTIERlbnJvIFN5c3RlbXMKKzAwMTI3MCAgICAgKGJhc2UgMTYpCQlOR0VTIERlbnJvIFN5c3RlbXMKKwkJCQk5MzE4IEdhaXRoZXIgUm9hZAorCQkJCUdhaXRoZXJzYnVyZyBNRCAyMDg3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNzEgICAoaGV4KQkJTWVhc3VyZW1lbnQgQ29tcHV0aW5nIENvcnAKKzAwMTI3MSAgICAgKGJhc2UgMTYpCQlNZWFzdXJlbWVudCBDb21wdXRpbmcgQ29ycAorCQkJCTE2IENvbW1lcmNlIEJsdmQKKwkJCQlNaWRkbGVib3JvIE1BIDAyMzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi03MiAgIChoZXgpCQlSZWR1eCBDb21tdW5pY2F0aW9ucyBMdGQuCiswMDEyNzIgICAgIChiYXNlIDE2KQkJUmVkdXggQ29tbXVuaWNhdGlvbnMgTHRkLgorCQkJCVBPQiAxMDEKKwkJCQlNb2RpaW4gIDcxNzAwCisJCQkJSVNSQUVMCisKKzAwLTEyLTczICAgKGhleCkJCVN0b2tlIEluYworMDAxMjczICAgICAoYmFzZSAxNikJCVN0b2tlIEluYworCQkJCTIxODkgTGVnaG9ybiBTdHJlZXQKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi03NCAgIChoZXgpCQlOSVQgbGFiCiswMDEyNzQgICAgIChiYXNlIDE2KQkJTklUIGxhYgorCQkJCVNrb3Jpbnkgc3RyLiwgNjUtMworCQkJCU1pbnNrIE1pbnNrYXlhIG9ibC4gMjIwMDEzCisJCQkJQkVMQVJVUworCiswMC0xMi03NSAgIChoZXgpCQlTZW50aWxsYSBDb3Jwb3JhdGlvbgorMDAxMjc1ICAgICAoYmFzZSAxNikJCVNlbnRpbGxhIENvcnBvcmF0aW9uCisJCQkJMjAxIE1hcnNoYWxsIFN0cmVldAorCQkJCVJlZHdvb2QgQ2l0eSBDQSA5NDA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNzYgICAoaGV4KQkJQ0cgUG93ZXIgU3lzdGVtcyBJcmVsYW5kIExpbWl0ZWQKKzAwMTI3NiAgICAgKGJhc2UgMTYpCQlDRyBQb3dlciBTeXN0ZW1zIElyZWxhbmQgTGltaXRlZAorCQkJCUhlcmJlcnQgSG91c2UuLCBIYXJtb255IFJvdywgCisJCQkJRHVibGluICBEMgorCQkJCUlSRUxBTkQKKworMDAtMTItNzcgICAoaGV4KQkJS29yZW5peCBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDEyNzcgICAgIChiYXNlIDE2KQkJS29yZW5peCBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJMTFGLTEsIE5vLiAxMDgsIE1pblF1YW4gUmQuCisJCQkJWGluZGlhbiBDaXR5IFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLTc4ICAgKGhleCkJCUludGVybmF0aW9uYWwgQmFyIENvZGUKKzAwMTI3OCAgICAgKGJhc2UgMTYpCQlJbnRlcm5hdGlvbmFsIEJhciBDb2RlCisJCQkJMTYwIE9hayBTdHJlZXQKKwkJCQlHbGFzdG9uYnVyeSBDVCAwNjAzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItNzkgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzAwMTI3OSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5IFNvdXRoCisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi03QSAgIChoZXgpCQlTYW55dSBJbmR1c3RyeSBDby4sTHRkLgorMDAxMjdBICAgICAoYmFzZSAxNikJCVNhbnl1IEluZHVzdHJ5IENvLixMdGQuCisJCQkJTWlkb3JpLWt1IEhha3VzYW4xLTExLTExCisJCQkJWW9rb2hhbWEtc2hpIEthbmFnYXdhLWtlbiAyMjYtMDAwNgorCQkJCUpBUEFOCisKKzAwLTEyLTdCICAgKGhleCkJCVZJQSBOZXR3b3JraW5nIFRlY2hub2xvZ2llcywgSW5jLgorMDAxMjdCICAgICAoYmFzZSAxNikJCVZJQSBOZXR3b3JraW5nIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCThGLDUzMywgQ2h1bmctQ2hlbmcgUm9hZCwgSHNpbi1UaWVuCisJCQkJVGFpcGVpICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLTdDICAgKGhleCkJCVNXRUdPTiBBQgorMDAxMjdDICAgICAoYmFzZSAxNikJCVNXRUdPTiBBQgorCQkJCUJveCAzMDAKKwkJCQlLVsOD4oCeTlVNIFbDg+KAnlNUUkEgR8OD4oCTVEFMQU5EIFNFIDUzNSAyMworCQkJCVNXRURFTgorCiswMC0xMi03RCAgIChoZXgpCQlNb2JpbGVBcmlhCiswMDEyN0QgICAgIChiYXNlIDE2KQkJTW9iaWxlQXJpYQorCQkJCTgwMCBXIEVsIENhbWlubyBSZWFsICMyNDAKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi03RSAgIChoZXgpCQlEaWdpdGFsIExpZmVzdHlsZXMgR3JvdXAsIEluYy4KKzAwMTI3RSAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIExpZmVzdHlsZXMgR3JvdXAsIEluYy4KKwkJCQk4MDEgU291dGggU2VudG91cyBBdmUuCisJCQkJQ2l0eSBvZiBJbmR1c3RyeSBDQSA5MTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItN0YgICAoaGV4KQkJQ2lzY28KKzAwMTI3RiAgICAgKGJhc2UgMTYpCQlDaXNjbworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi04MCAgIChoZXgpCQlDaXNjbworMDAxMjgwICAgICAoYmFzZSAxNikJCUNpc2NvCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTgxICAgKGhleCkJCU1hcmNoIE5ldHdvcmtzIFMucC5BLgorMDAxMjgxICAgICAoYmFzZSAxNikJCU1hcmNoIE5ldHdvcmtzIFMucC5BLgorCQkJCVZpYSBEZWkgTGF2b3JhdG9yaSBBdXRvYmlhbmNoaSBuLiAxLAorCQkJCURlc2lvIE1pbGFubyAyMDAzMworCQkJCUlUQUxZCisKKzAwLTEyLTgyICAgKGhleCkJCVFvdmlhCiswMDEyODIgICAgIChiYXNlIDE2KQkJUW92aWEKKwkJCQk3NDcwIE5ldyBUZWNobm9sb2d5IFdheQorCQkJCVN1aXRlIEUKKwkJCQlGcmVkZXJpY2sgTUQgMjE3MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTgzICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAxMjgzICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTEyLTg0ICAgKGhleCkJCUxhYjMzIFNybAorMDAxMjg0ICAgICAoYmFzZSAxNikJCUxhYjMzIFNybAorCQkJCUMuc28gRi4gUGVycm9uZSAyNAorCQkJCUdlbm9hIEdFIDE2MTUyCisJCQkJSVRBTFkKKworMDAtMTItODUgICAoaGV4KQkJR2l6bW9uZG8gRXVyb3BlIEx0ZAorMDAxMjg1ICAgICAoYmFzZSAxNikJCUdpem1vbmRvIEV1cm9wZSBMdGQKKwkJCQkxIE1lYWRvdyBHYXRlIEF2ZW51ZQorCQkJCUZhcm5ib3JvdWdoIEJ1c2luZXNzIFBhcmsKKwkJCQlGYXJuYm9yb3VnaCBIYW1wc2hpcmUgR1UxNCA2RkcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMi04NiAgIChoZXgpCQlFTkRFVkNPIENPUlAKKzAwMTI4NiAgICAgKGJhc2UgMTYpCQlFTkRFVkNPIENPUlAKKwkJCQkzMDcwMCBSQU5DSE8gVklFSk8gUk9BRAorCQkJCVNBTiBKVUFOIENBUElTVFJBTk8gQ0EgOTI2NzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLTg3ICAgKGhleCkJCURpZ2l0YWwgRXZlcnl3aGVyZSBVbnRlcmhhbHR1bmdzZWxla3Ryb25payBHbWJICiswMDEyODcgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBFdmVyeXdoZXJlIFVudGVyaGFsdHVuZ3NlbGVrdHJvbmlrIEdtYkgKKwkJCQlNYXJpYSBHYWlsZXIgU3RyYXNzZSAxNgorCQkJCVZpbGxhY2ggS8Okcm50ZW4gOTUwMAorCQkJCUFVU1RSSUEKKworMDAtMTItODggICAoaGV4KQkJMldpcmUsIEluYworMDAxMjg4ICAgICAoYmFzZSAxNikJCTJXaXJlLCBJbmMKKwkJCQkxNzA0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi04OSAgIChoZXgpCQlBZHZhbmNlIFN0ZXJpbGl6YXRpb24gUHJvZHVjdHMKKzAwMTI4OSAgICAgKGJhc2UgMTYpCQlBZHZhbmNlIFN0ZXJpbGl6YXRpb24gUHJvZHVjdHMKKwkJCQkzMyBUZWNobm9sb2d5IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLThBICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxMjhBICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NSBOLiBVUyBId3kgNDUKKwkJCQlSb29tIG5vLiBNVy0xMTMKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLThCICAgKGhleCkJCVNlbnNvcnkgTmV0d29ya3MgSW5jCiswMDEyOEIgICAgIChiYXNlIDE2KQkJU2Vuc29yeSBOZXR3b3JrcyBJbmMKKwkJCQlMZXZlbCA2LCAxNDAgV2lsbGlhbSBTdAorCQkJCUVhc3QgU3lkbmV5IE5TVyAyMDExCisJCQkJQVVTVFJBTElBCisKKzAwLTEyLThDICAgKGhleCkJCVdvb2R3YXJkIEdvdmVybm9yCiswMDEyOEMgICAgIChiYXNlIDE2KQkJV29vZHdhcmQgR292ZXJub3IKKwkJCQkxMDAwIEUuIERyYWtlIFJvYWQKKwkJCQlGdC4gQ29sbGlucyBDTyA4MDUyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItOEQgICAoaGV4KQkJU1RCIERhdGVuc2VydmljZSBHbWJICiswMDEyOEQgICAgIChiYXNlIDE2KQkJU1RCIERhdGVuc2VydmljZSBHbWJICisJCQkJV2VpbnNiZXJnc3RyYXNzZSAxOTAKKwkJCQlLw7ZsbiBOUlcgNTA4MjUKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLThFICAgKGhleCkJCVEtRnJlZSBBU0EKKzAwMTI4RSAgICAgKGJhc2UgMTYpCQlRLUZyZWUgQVNBCisJCQkJVGguIE93ZXNlbnNndC4gMzVjCisJCQkJVHJvbmRoZWltIFNUIDc0NDMKKwkJCQlOT1JXQVkKKworMDAtMTItOEYgICAoaGV4KQkJTW9udGlsaW8KKzAwMTI4RiAgICAgKGJhc2UgMTYpCQlNb250aWxpbworCQkJCTEgbWFza2l0IHN0LgorCQkJCUhlcnR6ZWxpYSAgNDY3NjMKKwkJCQlJU1JBRUwKKworMDAtMTItOTAgICAoaGV4KQkJS1lPV0EgRWxlY3RyaWMgJiBNYWNoaW5lcnkgQ29ycC4KKzAwMTI5MCAgICAgKGJhc2UgMTYpCQlLWU9XQSBFbGVjdHJpYyAmIE1hY2hpbmVyeSBDb3JwLgorCQkJCTQtOC0xNixNYXN1aXp1bWkKKwkJCQlLYW5hemF3YSBJc2hpa2F3YSA5MjEtODAyNQorCQkJCUpBUEFOCisKKzAwLTEyLTkxICAgKGhleCkJCUtXUyBDb21wdXRlcnN5c3RlbWUgR21iSAorMDAxMjkxICAgICAoYmFzZSAxNikJCUtXUyBDb21wdXRlcnN5c3RlbWUgR21iSAorCQkJCUNhcmwgWmVpc3MgU3RyLiAxCisJCQkJRXR0bGluZ2VuIEJXIDc2Mjc1CisJCQkJR0VSTUFOWQorCiswMC0xMi05MiAgIChoZXgpCQlHcmlmZmluIFRlY2hub2xvZ3kKKzAwMTI5MiAgICAgKGJhc2UgMTYpCQlHcmlmZmluIFRlY2hub2xvZ3kKKwkJCQkxOTMwIEFpciBMYW5lIERyaXZlCisJCQkJTmFzaHZpbGxlIFROIDM3MjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi05MyAgIChoZXgpCQlHRSBFbmVyZ3kKKzAwMTI5MyAgICAgKGJhc2UgMTYpCQlHRSBFbmVyZ3kKKwkJCQkxNTAxIFJvYW5va2UgQmx2ZC4KKwkJCQlSb29tIDI4MworCQkJCVNhbGVtIFZBIDI0MTUzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi05NCAgIChoZXgpCQlTVU1JVE9NTyBFTEVDVFJJQyBERVZJQ0UgSU5OT1ZBVElPTlMsIElOQworMDAxMjk0ICAgICAoYmFzZSAxNikJCVNVTUlUT01PIEVMRUNUUklDIERFVklDRSBJTk5PVkFUSU9OUywgSU5DCisJCQkJMTAwMCBLYW1pc3VraWF3YXJhLFNob3dhLWNobworCQkJCU5ha2Frb21hLWd1biBZYW1hbmFzaGkgNDA5LTM4ODMKKwkJCQlKQVBBTgorCiswMC0xMi05NSAgIChoZXgpCQlBaXdhcmUgSW5jLgorMDAxMjk1ICAgICAoYmFzZSAxNikJCUFpd2FyZSBJbmMuCisJCQkJSi1Ub3dlciAyRgorCQkJCTEtMSBOaWtrb2NobworCQkJCUZ1Y2h1LXNoaSBUb2t5byAxODMtMDA0NAorCQkJCUpBUEFOCisKKzAwLTEyLTk2ICAgKGhleCkJCUFkZGxvZ2l4CiswMDEyOTYgICAgIChiYXNlIDE2KQkJQWRkbG9naXgKKwkJCQk0NTkgV2FsZAorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItOTcgICAoaGV4KQkJTzJNaWNybywgSW5jLgorMDAxMjk3ICAgICAoYmFzZSAxNikJCU8yTWljcm8sIEluYy4KKwkJCQkzMTE4IFBhdHJpY2sgSGVucnkgRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItOTggICAoaGV4KQkJTUlDTyBFTEVDVFJJQyhTSEVOWkhFTikgTElNSVRFRAorMDAxMjk4ICAgICAoYmFzZSAxNikJCU1JQ08gRUxFQ1RSSUMoU0hFTlpIRU4pIExJTUlURUQKKwkJCQkyMS9GIEJsb2NrIEEsIEhhaWxydW4gQ29tcGxleCwgNjAyMSBTaGVuTmFuIEJsdmQuLCBTaGVuWmhlbiwgUFIgQ2hpbmEuCisJCQkJU0hFTlpIRU4gR1VBTkdET05HIDUxODA0MAorCQkJCUNISU5BCisKKzAwLTEyLTk5ICAgKGhleCkJCUt0ZWNoIFRlbGVjb21tdW5pY2F0aW9ucyBJbmMKKzAwMTI5OSAgICAgKGJhc2UgMTYpCQlLdGVjaCBUZWxlY29tbXVuaWNhdGlvbnMgSW5jCisJCQkJMjE1NDAgUHJhaXJpZSBTdHJlZXQgVW5pdCBCCisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItOUEgICAoaGV4KQkJSVJUIEVsZWN0cm9uaWNzIFB0eSBMdGQKKzAwMTI5QSAgICAgKGJhc2UgMTYpCQlJUlQgRWxlY3Ryb25pY3MgUHR5IEx0ZAorCQkJCTI2IEhvdGhhbSBQYXJhZGUKKwkJCQlBcnRhcm1vbiBOU1cgMjA2NAorCQkJCUFVU1RSQUxJQQorCiswMC0xMi05QiAgIChoZXgpCQlFMlMgRWxlY3Ryb25pYyBFbmdpbmVlcmluZyBTb2x1dGlvbnMsIFMuTC4KKzAwMTI5QiAgICAgKGJhc2UgMTYpCQlFMlMgRWxlY3Ryb25pYyBFbmdpbmVlcmluZyBTb2x1dGlvbnMsIFMuTC4KKwkJCQlTYW50IEZlcnJhbiAxMAorCQkJCUJhcmNlbG9uYSAgMDgwMzEKKwkJCQlTUEFJTgorCiswMC0xMi05QyAgIChoZXgpCQlZdWxpbmV0CiswMDEyOUMgICAgIChiYXNlIDE2KQkJWXVsaW5ldAorCQkJCTExRiwgU2FtaG9tb29sc2FuIEIvRCAyNzUtNiwgWWFuZ2phZS1kb25nCisJCQkJU2VvY2hvIFNlb3VsIDEzNy05NDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTItOUQgICAoaGV4KQkJRmlyc3QgSW50ZXJuYXRpb25hbCBDb21wdXRlciBkbyBCcmFzaWwKKzAwMTI5RCAgICAgKGJhc2UgMTYpCQlGaXJzdCBJbnRlcm5hdGlvbmFsIENvbXB1dGVyIGRvIEJyYXNpbAorCQkJCVJvZG92aWEgQlIgNDU5CisJCQkJa20gMTIxIC0gRGlzdHJpdG8gSW5kdXN0cmlhbAorCQkJCVNhbnRhIFJpdGEgZG8gU2FwdWNhw60gTWluYXMgR2VyYWlzIAorCQkJCUJSQVpJTAorCiswMC0xMi05RSAgIChoZXgpCQlTdXJmIENvbW11bmljYXRpb25zIEluYy4KKzAwMTI5RSAgICAgKGJhc2UgMTYpCQlTdXJmIENvbW11bmljYXRpb25zIEluYy4KKwkJCQlSb29tIDMxMywgM0YsIEJsZGcuNTIsIE5vLiAxOTUsIENodW5nIEhzaW5nIFJkLiwgU2VjIDQsIENodXR1bmcsIEhzaW5DaHUsIFRhaXdhbgorCQkJCUhzaW5DaHUgIDMxMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItOUYgICAoaGV4KQkJUkFFIFN5c3RlbXMKKzAwMTI5RiAgICAgKGJhc2UgMTYpCQlSQUUgU3lzdGVtcworCQkJCTM3NzUgTm9ydGggRmlyc3QgU3RyZWV0CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUEwICAgKGhleCkJCU5lb01lcmlkaWFuIFNkbiBCaGQKKzAwMTJBMCAgICAgKGJhc2UgMTYpCQlOZW9NZXJpZGlhbiBTZG4gQmhkCisJCQkJM0EtMSwgUGVyZGFuYSBUaGUgUGxhY2UKKwkJCQlKYWxhbiBQSlUgOC81RworCQkJCUJhbmRhciBEYW1hbnNhcmEgUGVyZGFuYSBTZWxhbmdvciA0NzgyMAorCQkJCU1BTEFZU0lBCisKKzAwLTEyLUExICAgKGhleCkJCUJsdWVQYWNrZXQgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDEyQTEgICAgIChiYXNlIDE2KQkJQmx1ZVBhY2tldCBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQkxMEYtMSwgTm8uIDQyMCwgU2VjLiAxLCBLZWVsdW5nIFJkLiwgMTEwLAorCQkJCVRhaXBlaSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi1BMiAgIChoZXgpCQlWSVRBCiswMDEyQTIgICAgIChiYXNlIDE2KQkJVklUQQorCQkJCVBPIEJveCAxOTY1OAorCQkJCUZvdW50YWluIEhpbGxzIEFaIDg1MjY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1BMyAgIChoZXgpCQlUcnVzdCBJbnRlcm5hdGlvbmFsIEIuVi4KKzAwMTJBMyAgICAgKGJhc2UgMTYpCQlUcnVzdCBJbnRlcm5hdGlvbmFsIEIuVi4KKwkJCQlMYWFuIHZhbiBCYXJjZWxvbmEgNjAwCisJCQkJRG9yZHJlY2h0IFp1aWQgaG9sbGFuZCAzMzE3IERECisJCQkJTkVUSEVSTEFORFMKKworMDAtMTItQTQgICAoaGV4KQkJVGhpbmdNYWdpYywgTExDCiswMDEyQTQgICAgIChiYXNlIDE2KQkJVGhpbmdNYWdpYywgTExDCisJCQkJT25lIEJyb2Fkd2F5CisJCQkJMTR0aCBGbG9vcgorCQkJCUNhbWJyaWRnZSBNQSAwMjE0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQTUgICAoaGV4KQkJU3RhcmdlbiwgSW5jLgorMDAxMkE1ICAgICAoYmFzZSAxNikJCVN0YXJnZW4sIEluYy4KKwkJCQkyMjUgQ2VkYXIgSGlsbCBTdHJlZXQKKwkJCQlNYXJsYm9yb3VnaCBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQTYgICAoaGV4KQkJRG9sYnkgQXVzdHJhbGlhCiswMDEyQTYgICAgIChiYXNlIDE2KQkJRG9sYnkgQXVzdHJhbGlhCisJCQkJTGV2ZWwgNgorCQkJCTEzNiBDaGFsbWVycyBTdHJlZXQKKwkJCQlTdXJyeSBIaWxscyBOU1cgMjAxMAorCQkJCUFVU1RSQUxJQQorCiswMC0xMi1BNyAgIChoZXgpCQlJU1IgVEVDSE5PTE9HSUVTIEluYworMDAxMkE3ICAgICAoYmFzZSAxNikJCUlTUiBURUNITk9MT0dJRVMgSW5jCisJCQkJMTEwMCwgcnVlIE5vdHJlLURhbWUgT3Vlc3QKKwkJCQlNb250cmVhbCBRdWViZWMgSDNDIDFLMworCQkJCUNBTkFEQQorCiswMC0xMi1BOCAgIChoZXgpCQlpbnRlYyBHbWJICiswMDEyQTggICAgIChiYXNlIDE2KQkJaW50ZWMgR21iSAorCQkJCVJhaG1lZGVzdHIuIDkwCisJCQkJTHVlZGVuc2NoZWlkIE5SVyA1ODUwNworCQkJCUdFUk1BTlkKKworMDAtMTItQTkgICAoaGV4KQkJM0NvbSBMdGQKKzAwMTJBOSAgICAgKGJhc2UgMTYpCQkzQ29tIEx0ZAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlQZW9wbGVidWlsZGluZyBFc3RhdGUsIE1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cyBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTItQUEgICAoaGV4KQkJSUVFLCBJbmMuCiswMDEyQUEgICAgIChiYXNlIDE2KQkJSUVFLCBJbmMuCisJCQkJNzc0MCBMZW1vbmEgQXZlbnVlCisJCQkJVmFuIE51eXMsIENBIDkxNDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1BQiAgIChoZXgpCQlXaUxpZmUsIEluYy4KKzAwMTJBQiAgICAgKGJhc2UgMTYpCQlXaUxpZmUsIEluYy4KKwkJCQkxMzIgRS4gMTMwNjUgUy4sIFN1aXRlIDE1MAorCQkJCURyYXBlciBVVCA4NDAyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQUMgICAoaGV4KQkJT05USU1FVEVLIElOQy4KKzAwMTJBQyAgICAgKGJhc2UgMTYpCQlPTlRJTUVURUsgSU5DLgorCQkJCTlGbC4sT3duZXIncyBUb3dlcgorCQkJCTE2LTUsIFN1bmFlLURvbmcsIEJ1bmRhbmctR3UKKwkJCQlTdW5nbmFtLVNpIEt5dW5nZ2ktRG8gNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMi1BRCAgIChoZXgpCQlJRFMgR21iSAorMDAxMkFEICAgICAoYmFzZSAxNikJCUlEUyBHbWJICisJCQkJTm9iZWxzdHIsIDE4CisJCQkJRXR0bGluZ2VuIEJhZGVuLVfDvHJ0dGVtYmVyZyA3NjI3NQorCQkJCUdFUk1BTlkKKworMDAtMTItQUUgICAoaGV4KQkJSExTIEhBUkQtTElORSBTb2x1dGlvbnMgSW5jLgorMDAxMkFFICAgICAoYmFzZSAxNikJCUhMUyBIQVJELUxJTkUgU29sdXRpb25zIEluYy4KKwkJCQk1MyBNYWluIFN0cmVldAorCQkJCURvd2xpbmcgT250YXJpbyBQME0gMVIwCisJCQkJQ0FOQURBCisKKzAwLTEyLUFGICAgKGhleCkJCUVMUFJPIFRlY2hub2xvZ2llcworMDAxMkFGICAgICAoYmFzZSAxNikJCUVMUFJPIFRlY2hub2xvZ2llcworCQkJCTkgLyAxMiBCaWxsYWJvbmcgU3QuCisJCQkJU3RhZmZvcmQgUXVlZW5zbGFuZCA0MDUzCisJCQkJQVVTVFJBTElBCisKKzAwLTEyLUIwICAgKGhleCkJCUVmb3JlIE95aiAgIChQbGMpCiswMDEyQjAgICAgIChiYXNlIDE2KQkJRWZvcmUgT3lqICAgKFBsYykKKwkJCQlRdWFydGV0dG8gQnVzaW5lc3MgUGFyaworCQkJCUxpbm5vaXR1c3RpZSA0IEIKKwkJCQlFc3BvbyAgRkkgLSAwMjYwMAorCQkJCUZJTkxBTkQKKworMDAtMTItQjEgICAoaGV4KQkJRGFpIE5pcHBvbiBQcmludGluZyBDby4sIEx0ZAorMDAxMkIxICAgICAoYmFzZSAxNikJCURhaSBOaXBwb24gUHJpbnRpbmcgQ28uLCBMdGQKKwkJCQkyLTgtMjEsQWthYmFuZS1taW5hbWkKKwkJCQlLaXRhLWt1IFRva3lvIDExNS0wMDQ0CisJCQkJSkFQQU4KKworMDAtMTItQjIgICAoaGV4KQkJQVZPTElURVMgTFRELgorMDAxMkIyICAgICAoYmFzZSAxNikJCUFWT0xJVEVTIExURC4KKwkJCQkxODQgUEFSSyBBVkVOVUUKKwkJCQlMT05ET04gIE5XMTAgN1hMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTItQjMgICAoaGV4KQkJQWR2YW5jZSBXaXJlbGVzcyBUZWNobm9sb2d5IENvcnAuCiswMDEyQjMgICAgIChiYXNlIDE2KQkJQWR2YW5jZSBXaXJlbGVzcyBUZWNobm9sb2d5IENvcnAuCisJCQkJMTJGIE5vLiAyNy02LCBTZWMuIDIsIENodW5nIENoZW5nIEVhc3QgUm9hZAorCQkJCVRhbXNodWkgIDI1MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItQjQgICAoaGV4KQkJV29yayBNaWNyb3dhdmUgR21iSAorMDAxMkI0ICAgICAoYmFzZSAxNikJCVdvcmsgTWljcm93YXZlIEdtYkgKKwkJCQlSYWlmZmVpc2Vuc3RyYXNzZSAxMgorCQkJCUhvbHpraXJjaGVuICA4MzYwNworCQkJCUdFUk1BTlkKKworMDAtMTItQjUgICAoaGV4KQkJVmlhbHRhLCBJbmMuCiswMDEyQjUgICAgIChiYXNlIDE2KQkJVmlhbHRhLCBJbmMuCisJCQkJNDg0NjEgRnJlbW9udCBCbHZkLgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUI2ICAgKGhleCkJCVNhbnRhIEJhcmJhcmEgSW5mcmFyZWQsIEluYy4KKzAwMTJCNiAgICAgKGJhc2UgMTYpCQlTYW50YSBCYXJiYXJhIEluZnJhcmVkLCBJbmMuCisJCQkJMzAgUy4gQ2FsbGUgQ2VzYXIgQ2hhdmV6CisJCQkJU3VpdGUgRAorCQkJCVNhbnRhIEJhcmJhcmEgQ0EgOTMxMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUI3ICAgKGhleCkJCVBUVyBGcmVpYnVyZworMDAxMkI3ICAgICAoYmFzZSAxNikJCVBUVyBGcmVpYnVyZworCQkJCUxvZXJyYWNoZXIgU3RyYXNzZSA3CisJCQkJRnJlaWJ1cmcgIDc5MTE1CisJCQkJR0VSTUFOWQorCiswMC0xMi1COCAgIChoZXgpCQlHMiBNaWNyb3N5c3RlbXMKKzAwMTJCOCAgICAgKGJhc2UgMTYpCQlHMiBNaWNyb3N5c3RlbXMKKwkJCQk0MDggRXVjbGlkIEF2ZQorCQkJCU9ha2xhbmQgQ0EgOTQ2MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUI5ICAgKGhleCkJCUZ1c2lvbiBEaWdpdGFsIFRlY2hub2xvZ3kKKzAwMTJCOSAgICAgKGJhc2UgMTYpCQlGdXNpb24gRGlnaXRhbCBUZWNobm9sb2d5CisJCQkJVmljdG9yaWEgTWV3cywgMjMgTWlsbGZpZWxkIFJvYWQKKwkJCQlDb3R0aW5nbGV5IEJ1c2luZXNzIFBhcmsKKwkJCQlCaW5nbGV5IFdlc3QgWW9ya3NoaXJlIEJEMTYgMVBZCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTItQkEgICAoaGV4KQkJRlNJIFN5c3RlbXMsIEluYy4KKzAwMTJCQSAgICAgKGJhc2UgMTYpCQlGU0kgU3lzdGVtcywgSW5jLgorCQkJCTU4NDcgQ291bnR5IFJvYWQgNDEKKwkJCQlGYXJtaW5ndG9uIE5ZIDE0NDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1CQiAgIChoZXgpCQlUZWxlY29tbXVuaWNhdGlvbnMgSW5kdXN0cnkgQXNzb2NpYXRpb24gVFItNDEgQ29tbWl0dGVlCiswMDEyQkIgICAgIChiYXNlIDE2KQkJVGVsZWNvbW11bmljYXRpb25zIEluZHVzdHJ5IEFzc29jaWF0aW9uIFRSLTQxIENvbW1pdHRlZQorCQkJCTI1MDAgV2lsc29uIEJsdmQuLCBTdWl0ZSAzMDAKKwkJCQlBcmxpbmd0b24gVkEgMjIyMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUJDICAgKGhleCkJCUVjaG9sYWIgTExDCiswMDEyQkMgICAgIChiYXNlIDE2KQkJRWNob2xhYiBMTEMKKwkJCQkyNjcgQm9zdG9uIFJvYWQKKwkJCQlTdWl0ZSAxMQorCQkJCUJpbGxlcmljYSBNQSAwMTg2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQkQgICAoaGV4KQkJQXZhbnRlYyBNYW51ZmFjdHVyaW5nIExpbWl0ZWQKKzAwMTJCRCAgICAgKGJhc2UgMTYpCQlBdmFudGVjIE1hbnVmYWN0dXJpbmcgTGltaXRlZAorCQkJCVVuaXQgTCwgNy9GLCBDYW1lbHBhaW50IEJsZGcsIEJsb2NrIDMKKwkJCQk2MCBIb2kgWXVlbiBSb2FkLCBLd3VuIFRvbmcsIEtvd2xvb24KKwkJCQk4NTIKKwkJCQlIT05HIEtPTkcKKworMDAtMTItQkUgICAoaGV4KQkJQXN0ZWsgQ29ycG9yYXRpb24KKzAwMTJCRSAgICAgKGJhc2UgMTYpCQlBc3RlayBDb3Jwb3JhdGlvbgorCQkJCTUwNTUgQ29ycG9yYXRlIFBsYXphIERyaXZlCisJCQkJQ29sb3JhZG8gU3ByaW5ncyBDb2xvcmFkbyA4MDkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQkYgICAoaGV4KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxMkJGICAgICAoYmFzZSAxNikJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0RiwgTm8uIDksIFBhcmsgQXZlbnVlIElJCisJCQkJU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLUMwICAgKGhleCkJCUhvdExhdmEgU3lzdGVtcywgSW5jLgorMDAxMkMwICAgICAoYmFzZSAxNikJCUhvdExhdmEgU3lzdGVtcywgSW5jLgorCQkJCTYzMjkgQ2hlbHRvbiBEcml2ZQorCQkJCU9ha2xhbmQgQ0EgOTQ2MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUMxICAgKGhleCkJCUNoZWNrIFBvaW50IFNvZnR3YXJlIFRlY2hub2xvZ2llcworMDAxMkMxICAgICAoYmFzZSAxNikJCUNoZWNrIFBvaW50IFNvZnR3YXJlIFRlY2hub2xvZ2llcworCQkJCTUgSGEnc29sZWxpbSBTdC4KKwkJCQlUZWwgQXZpdiAgNjc4OTcKKwkJCQlJU1JBRUwKKworMDAtMTItQzIgICAoaGV4KQkJQXBleCBFbGVjdHJvbmljcyBGYWN0b3J5CiswMDEyQzIgICAgIChiYXNlIDE2KQkJQXBleCBFbGVjdHJvbmljcyBGYWN0b3J5CisJCQkJTm8uMyBJbmR1c3RyaWFsIFpvbmUsIE5vLjQgQmxvY2ssCisJCQkJRnUneW9uZyBUb3duLCBCYW8nYW4gRGlzdHJpY3QKKwkJCQlTaGVuIFpoZW4gR3VhbmcgRG9uZyA1MTgxMDMKKwkJCQlDSElOQQorCiswMC0xMi1DMyAgIChoZXgpCQlXSVQgUy5BLgorMDAxMkMzICAgICAoYmFzZSAxNikJCVdJVCBTLkEuCisJCQkJMTM4IGF2ZW51ZSBMw6lvbiBCw6lyZW5nZXIKKwkJCQlTYWludCBMYXVyZW50IGR1IFZhciBQQUNBIDA2NzAwCisJCQkJRlJBTkNFCisKKzAwLTEyLUM0ICAgKGhleCkJCVZpc2VvbiwgSW5jLgorMDAxMkM0ICAgICAoYmFzZSAxNikJCVZpc2VvbiwgSW5jLgorCQkJCTg0NDUgRnJlZXBvcnQgUGFya3dheQorCQkJCVN1aXRlIDI0NQorCQkJCUlydmluZyBUZXhhcyA3NTA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItQzUgICAoaGV4KQkJVi1TaG93ICBUZWNobm9sb2d5IChDaGluYSkgQ28uLEx0ZAorMDAxMkM1ICAgICAoYmFzZSAxNikJCVYtU2hvdyAgVGVjaG5vbG9neSAoQ2hpbmEpIENvLixMdGQKKwkJCQk3RiwgVGVuZ2RhIFBsYXphLCBOby4xNjgKKwkJCQlYaXpoaW1lbiBXYWkgU3RyZWV0LAorCQkJCUhhaURpYW4gRGlzdHJpY3QsIEJlaWppbmcgMTAwMDg5CisJCQkJQ0hJTkEKKworMDAtMTItQzYgICAoaGV4KQkJVEdDIEFtZXJpY2EsIEluYworMDAxMkM2ICAgICAoYmFzZSAxNikJCVRHQyBBbWVyaWNhLCBJbmMKKwkJCQkyOTAxIFRhc21hbiBEcml2ZSwgU3VpdGUgMTExCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUM3ICAgKGhleCkJCVNFQ1VSQVkgVGVjaG5vbG9naWVzIEx0ZC5Dby4KKzAwMTJDNyAgICAgKGJhc2UgMTYpCQlTRUNVUkFZIFRlY2hub2xvZ2llcyBMdGQuQ28uCisJCQkJVGlhbmppbiBIYWl0YWkgSW5kdXN0cmlhbCBCYXNlIEVyV2VpIFJvYWQKKwkJCQlOby4gNiBCbG9jayBGIDgtNDAxCisJCQkJVGlhbmppbiAgMzAwMzg0CisJCQkJQ0hJTkEKKworMDAtMTItQzggICAoaGV4KQkJUGVyZmVjdCB0ZWNoCiswMDEyQzggICAgIChiYXNlIDE2KQkJUGVyZmVjdCB0ZWNoCisJCQkJM0YsTm8uOSxMQU5FMTc1LE5BTktBTiBSRC4sCisJCQkJTFVKSFUgVEFPWVVBTiAzMzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLUM5ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxMkM5ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUNBICAgKGhleCkJCU1lY2hhdHJvbmljIEJyaWNrIEFwcworMDAxMkNBICAgICAoYmFzZSAxNikJCU1lY2hhdHJvbmljIEJyaWNrIEFwcworCQkJCUFsc2lvbiAyCisJCQkJNjQwMCBTb25kZXJib3JnIAorCQkJCURFTk1BUksKKworMDAtMTItQ0IgICAoaGV4KQkJQ1NTIEluYy4KKzAwMTJDQiAgICAgKGJhc2UgMTYpCQlDU1MgSW5jLgorCQkJCTE1MSBTdXBlcmlvciBCbHZkLgorCQkJCVVuaXQgMTMgJiAxNAorCQkJCU1pc3Npc3NhdWdhIE9udGFyaW8gTDVUMkwxCisJCQkJQ0FOQURBCisKKzAwLTEyLUNDICAgKGhleCkJCUJpdGF0ZWsgQ08uLCBMVEQKKzAwMTJDQyAgICAgKGJhc2UgMTYpCQlCaXRhdGVrIENPLiwgTFRECisJCQkJNkYtMSwxOTAsVGEtVHVuZyBSb2FkLFNFQy4gMywKKwkJCQlIc2ljaGloIFRhaXBlaSBjb3VudHkgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi1DRCAgIChoZXgpCQlBU0VNIFNwQQorMDAxMkNEICAgICAoYmFzZSAxNikJCUFTRU0gU3BBCisJCQkJVmlhIEJ1aWEsIDQKKwkJCQlBUlRFR05BIFVkaW5lIEktMzMwMTEKKwkJCQlJVEFMWQorCiswMC0xMi1DRSAgIChoZXgpCQlBZHZhbmNlZCBDeWJlcm5ldGljcyBHcm91cAorMDAxMkNFICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIEN5YmVybmV0aWNzIEdyb3VwCisJCQkJMjk1MyBCdW5rZXIgSGlsbCBMYW5lCisJCQkJU3VpdGUgNDAwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUNGICAgKGhleCkJCUFjY3RvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDEyQ0YgICAgIChiYXNlIDE2KQkJQWNjdG9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQlOby4gMSBDcmVhdGlvbiBSZC4gSUlJLCBTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItRDAgICAoaGV4KQkJR29zc2VuLU1ldHJhd2F0dC1HbWJICiswMDEyRDAgICAgIChiYXNlIDE2KQkJR29zc2VuLU1ldHJhd2F0dC1HbWJICisJCQkJVGhvbWFzLU1hbm4tU3RyLiAxNi0yMAorCQkJCU7DvHJuYmVyZyBCYXZhcmlhIDkwNDcxCisJCQkJR0VSTUFOWQorCiswMC0xMi1EMSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cyBJbmMKKzAwMTJEMSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cyBJbmMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsCisJCQkJTVMgODcyMworCQkJCURhbGxhcyBUZXhhcyA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItRDIgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTJEMiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCU1TIDg3MjMKKwkJCQlEYWxsYXMgVGV4YXMgNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUQzICAgKGhleCkJCVpldHRhIFN5c3RlbXMsIEluYy4KKzAwMTJEMyAgICAgKGJhc2UgMTYpCQlaZXR0YSBTeXN0ZW1zLCBJbmMuCisJCQkJMTczMTEgMTM1dGggQVZFIE5FCisJCQkJU3VpdGUgQjkwMAorCQkJCVdvb2RpbnZpbGxlIFdBIDk4MDcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1ENCAgIChoZXgpCQlQcmluY2V0b24gVGVjaG5vbG9neSwgTHRkCiswMDEyRDQgICAgIChiYXNlIDE2KQkJUHJpbmNldG9uIFRlY2hub2xvZ3ksIEx0ZAorCQkJCUsuQS5JLiBCbGRnLiAzRgorCQkJCTMtOS01IEl3YW1vdG8tY2hvCisJCQkJQ2hpeW9kYWt1IFRva3lvIDEwMS0wMDMyCisJCQkJSkFQQU4KKworMDAtMTItRDUgICAoaGV4KQkJTW90aW9uIFJlYWxpdHkgSW5jLgorMDAxMkQ1ICAgICAoYmFzZSAxNikJCU1vdGlvbiBSZWFsaXR5IEluYy4KKwkJCQkyMDAgTm9ydGggQ29iYiBQYXJrd2F5CisJCQkJU3VpdGUgMTQwCisJCQkJTWFyaWV0dGEgR0EgMzAwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUQ2ICAgKGhleCkJCUppYW5nc3UgWWl0b25nIEhpZ2gtVGVjaCBDby4sTHRkCiswMDEyRDYgICAgIChiYXNlIDE2KQkJSmlhbmdzdSBZaXRvbmcgSGlnaC1UZWNoIENvLixMdGQKKwkJCQlObyAyMTYgSHVhbmdoZSBSb2FkCisJCQkJQ2hhbmdzaHUgSmlhbmdzdSAyMTU1MDAKKwkJCQlDSElOQQorCiswMC0xMi1ENyAgIChoZXgpCQlJbnZlbnRvIE5ldHdvcmtzLCBJbmMuCiswMDEyRDcgICAgIChiYXNlIDE2KQkJSW52ZW50byBOZXR3b3JrcywgSW5jLgorCQkJCTM3NyBTaW1hcmFubyBEcml2ZQorCQkJCU1hcmxib3JvdWdoIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1EOCAgIChoZXgpCQlJbnRlcm5hdGlvbmFsIEdhbWVzIFN5c3RlbSBDby4sIEx0ZC4KKzAwMTJEOCAgICAgKGJhc2UgMTYpCQlJbnRlcm5hdGlvbmFsIEdhbWVzIFN5c3RlbSBDby4sIEx0ZC4KKwkJCQlOby4xMzAsIFd1LUd1bmcgUmQuLCBXdS1HdSBJbmR1c3RyaWFsIFBhcmssCisJCQkJVGFpcGVpICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEyLUQ5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTJEOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLURBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTJEQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLURCICAgKGhleCkJCVpJRUhMIGluZHVzdHJpZS1lbGVrdHJvbmlrIEdtYkggKyBDbyBLRworMDAxMkRCICAgICAoYmFzZSAxNikJCVpJRUhMIGluZHVzdHJpZS1lbGVrdHJvbmlrIEdtYkggKyBDbyBLRworCQkJCURhaW1sZXJzdHIuIDEzCisJCQkJU2Nod2FlYmlzY2ggSGFsbCAgNzQ1MjMKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLURDICAgKGhleCkJCVN1bkNvcnAgSW5kdXN0cmlhbCBMaW1pdGVkCiswMDEyREMgICAgIChiYXNlIDE2KQkJU3VuQ29ycCBJbmR1c3RyaWFsIExpbWl0ZWQKKwkJCQlOby42OCBHdW93ZWkgUm9hZCwKKwkJCQlMaWFudGFuZyBJbmR1c3RyaWFsIERpc3RyaWN0LCBTaGVuemhlbiwgCisJCQkJQ0hJTkEKKworMDAtMTItREQgICAoaGV4KQkJU2hlbmdxdSBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IChTaGFuZ2hhaSkgQ28uLCBMdGQuCiswMDEyREQgICAgIChiYXNlIDE2KQkJU2hlbmdxdSBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IChTaGFuZ2hhaSkgQ28uLCBMdGQuCisJCQkJTm8uMSBCdWlsZGluZyxOby4gNjkwIEJpYm8gUm9hZCxQdWRvbmcgTmV3IEFyZWEKKwkJCQlTaGFuZ2hhaSAgMjAxMjAzCisJCQkJQ0hJTkEKKworMDAtMTItREUgICAoaGV4KQkJUmFkaW8gQ29tcG9uZW50cyBTd2VkZW4gQUIKKzAwMTJERSAgICAgKGJhc2UgMTYpCQlSYWRpbyBDb21wb25lbnRzIFN3ZWRlbiBBQgorCQkJCVZpZGVyb2dhdGFuIDNCCisJCQkJS2lzdGEgU3RvY2tob2xtIDE2NDIyCisJCQkJU1dFREVOCisKKzAwLTEyLURGICAgKGhleCkJCU5vdm9tYXRpYyBBRworMDAxMkRGICAgICAoYmFzZSAxNikJCU5vdm9tYXRpYyBBRworCQkJCVdpZW5lciBTdHJhc3NlIDE1OAorCQkJCUd1bXBvbGRza2lyY2hlbiBOaWVkZXLDtnN0ZXJyZWljaCBBLTIzNTIKKwkJCQlBVVNUUklBCisKKzAwLTEyLUUwICAgKGhleCkJCUNvZGFuIExpbWl0ZWQKKzAwMTJFMCAgICAgKGJhc2UgMTYpCQlDb2RhbiBMaW1pdGVkCisJCQkJODEgR3JhdmVzIFN0cmVldAorCQkJCU5ld3RvbiBTb3V0aCA1MDc0CisJCQkJQVVTVFJBTElBCisKKzAwLTEyLUUxICAgKGhleCkJCUFsbGlhbnQgTmV0d29ya3MsIEluYworMDAxMkUxICAgICAoYmFzZSAxNikJCUFsbGlhbnQgTmV0d29ya3MsIEluYworCQkJCTEyNTkgQmlyY2h3b29kIERyLgorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItRTIgICAoaGV4KQkJQUxBWEFMQSBOZXR3b3JrcyBDb3Jwb3JhdGlvbgorMDAxMkUyICAgICAoYmFzZSAxNikJCUFMQVhBTEEgTmV0d29ya3MgQ29ycG9yYXRpb24KKwkJCQk4OTAgS2FzaGltYWRhLCBTYWl3YWkta3UKKwkJCQlLYXdhc2FraS1zaGkgS2FuYWdhd2Eta2VuIDIxMi0wMDU4CisJCQkJSkFQQU4KKworMDAtMTItRTMgICAoaGV4KQkJQWdhdC1SVCwgTHRkLgorMDAxMkUzICAgICAoYmFzZSAxNikJCUFnYXQtUlQsIEx0ZC4KKwkJCQkxMDEgcHIuIE1pcmEgIzEyMjAsCisJCQkJTW9zY293ICAxMjkwODUKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMTItRTQgICAoaGV4KQkJWklFSEwgaW5kdXN0cmllLWVsZWN0cm9uaWsgR21iSCArIENvIEtHCiswMDEyRTQgICAgIChiYXNlIDE2KQkJWklFSEwgaW5kdXN0cmllLWVsZWN0cm9uaWsgR21iSCArIENvIEtHCisJCQkJRGFpbWxlcnN0ci4gMTMKKwkJCQlTY2h3YWViaXNjaCBIYWxsICA3NDUyMworCQkJCUdFUk1BTlkKKworMDAtMTItRTUgICAoaGV4KQkJVGltZSBBbWVyaWNhLCBJbmMuCiswMDEyRTUgICAgIChiYXNlIDE2KQkJVGltZSBBbWVyaWNhLCBJbmMuCisJCQkJNTEgVy4gM3JkIFN0cmVldCAjMzEwCisJCQkJVGVtcGUgQVogODUyODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUU2ICAgKGhleCkJCVNQRUNURUMgQ09NUFVURVIgQ08uLCBMVEQuCiswMDEyRTYgICAgIChiYXNlIDE2KQkJU1BFQ1RFQyBDT01QVVRFUiBDTy4sIExURC4KKwkJCQk2Ri4sIE5vLiA5MiwgTmFua2luZyBFLiBSZC4gU2VjLiA1LAorCQkJCVRhaXBlaSAgMTA1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMi1FNyAgIChoZXgpCQlQcm9qZWN0ZWsgTmV0d29ya2luZyBFbGVjdHJvbmljcyBDb3JwLgorMDAxMkU3ICAgICAoYmFzZSAxNikJCVByb2plY3RlayBOZXR3b3JraW5nIEVsZWN0cm9uaWNzIENvcnAuCisJCQkJNUYtOSwgTm8uIDE2LCBMYW5lIDYwOSwgU2VjLiA1LCBDaHVuZ3NoaW4gUmQuLAorCQkJCVNhbmNodW5nLCBUYWlwZWkgIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTItRTggICAoaGV4KQkJRnJhdW5ob2ZlciBJTVMKKzAwMTJFOCAgICAgKGJhc2UgMTYpCQlGcmF1bmhvZmVyIElNUworCQkJCUZpbmtlbnN0cmFzc2UgNjEKKwkJCQlEdWlzYnVyZyBOUlcgNDcwNTcKKwkJCQlHRVJNQU5ZCisKKzAwLTEyLUU5ICAgKGhleCkJCUFiYmV5IFN5c3RlbXMgTHRkCiswMDEyRTkgICAgIChiYXNlIDE2KQkJQWJiZXkgU3lzdGVtcyBMdGQKKwkJCQlMZXZlbCA0LCAyMjAgV2lsbGlzIFN0CisJCQkJUE8gQm94IDI3LTQ5NworCQkJCVdlbGxpbmd0b24gIDYwMzAKKwkJCQlORVcgWkVBTEFORAorCiswMC0xMi1FQSAgIChoZXgpCQlUcmFuZQorMDAxMkVBICAgICAoYmFzZSAxNikJCVRyYW5lCisJCQkJNDgzMyBXaGl0ZSBCZWFyIFBhcmt3YXkKKwkJCQlTdC4gUGF1bCBNTiA1NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItRUIgICAoaGV4KQkJUjJESSwgTExDCiswMDEyRUIgICAgIChiYXNlIDE2KQkJUjJESSwgTExDCisJCQkJMjU3NSBORSBLYXRocnluIFN0LgorCQkJCVN1aXRlIDE0CisJCQkJSGlsbHNib3JvIE9SIDk3MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1FQyAgIChoZXgpCQlNb3ZhY29sb3IgYi52LgorMDAxMkVDICAgICAoYmFzZSAxNikJCU1vdmFjb2xvciBiLnYuCisJCQkJS29wZXJzbGFnZXJzc3RyYWF0IDMxCisJCQkJU25lZWsgRnJpZXNsYW5kIDg2MDEgV0wKKwkJCQlORVRIRVJMQU5EUworCiswMC0xMi1FRCAgIChoZXgpCQlBVkcgQWR2YW5jZWQgVGVjaG5vbG9naWVzCiswMDEyRUQgICAgIChiYXNlIDE2KQkJQVZHIEFkdmFuY2VkIFRlY2hub2xvZ2llcworCQkJCTQxNDAgVXRpY2EgUmlkZ2UgUm9hZAorCQkJCUJldHRlbmRvcmYgSUEgNTI3MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUVFICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDEyRUUgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworMDAtMTItRUYgICAoaGV4KQkJT25lQWNjZXNzIFNBCiswMDEyRUYgICAgIChiYXNlIDE2KQkJT25lQWNjZXNzIFNBCisJCQkJMjggcnVlIGRlIGxhIFJlZG91dGUKKwkJCQlGb250ZW5heSBhdXggUm9zZXMgIDkyMjYwCisJCQkJRlJBTkNFCisKKzAwLTEyLUYwICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxMkYwICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS10ZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTItRjEgICAoaGV4KQkJSUZPVEVDCiswMDEyRjEgICAgIChiYXNlIDE2KQkJSUZPVEVDCisJCQkJWkFDIENoYW1wZmV1aWxsZXQKKwkJCQlCUDI0NworCQkJCVZPSVJPTiAgMzg1MDcKKwkJCQlGUkFOQ0UKKworMDAtMTItRjIgICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKzAwMTJGMiAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworCQkJCTE3NDUgVGVjaG5vbG9neSBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMi1GMyAgIChoZXgpCQljb25uZWN0Qmx1ZSBBQgorMDAxMkYzICAgICAoYmFzZSAxNikJCWNvbm5lY3RCbHVlIEFCCisJCQkJTm9ycmEgVmFsbGdhdGFuIDY0CisJCQkJTWFsbW9lICBTRS0yMTEgMjIKKwkJCQlTV0VERU4KKworMDAtMTItRjQgICAoaGV4KQkJQmVsY28gSW50ZXJuYXRpb25hbCBDby4sTHRkLgorMDAxMkY0ICAgICAoYmFzZSAxNikJCUJlbGNvIEludGVybmF0aW9uYWwgQ28uLEx0ZC4KKwkJCQkyMTIsIFllb2tvay1Eb25nLCBXb25taS1ndQorCQkJCVB1Y2h1bi1TaSBLeW9uZ2tpLURvIDQyMC0xMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTItRjUgICAoaGV4KQkJSW1hcmRhIE5ldyBaZWFsYW5kIExpbWl0ZWQKKzAwMTJGNSAgICAgKGJhc2UgMTYpCQlJbWFyZGEgTmV3IFplYWxhbmQgTGltaXRlZAorCQkJCVN1aXRlIEcxNiwgTmF0aW9uYWwgSW5ub3ZhdGlvbiBDZW50cmUsCisJCQkJQXVzdHJhbGlhbiBUZWNobm9sb2d5IFBhcmssCisJCQkJRXZlbGVpZ2ggTlNXICAgMjAxNQorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTEyLUY2ICAgKGhleCkJCU1ESyBDTy4sTFRELgorMDAxMkY2ICAgICAoYmFzZSAxNikJCU1ESyBDTy4sTFRELgorCQkJCTItNi0yNyBJYmFyYW1lCisJCQkJS2FzaGl3YXpha2kgQ2l0eSBOaWlnYXRhIDk0NTEzNDEKKwkJCQlKQVBBTgorCiswMC0xMi1GNyAgIChoZXgpCQlYaWFtZW4gWGluZ2xpYW4gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDEyRjcgICAgIChiYXNlIDE2KQkJWGlhbWVuIFhpbmdsaWFuIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCVhpbmdsaWFuIEVsZWN0cm9uaWNzIChYaW5ndGVsKSBCdWlsZGluZyxDaHVhbmd4aW4gUm9hZCwKKwkJCQlUb3JjaCBIaS1UZWNoIEluZHVzdHJpYWwgRGlzdHJpY3QsCisJCQkJWGlhbWVuIEZ1amlhbiAzNjEwMDYKKwkJCQlDSElOQQorCiswMC0xMi1GOCAgIChoZXgpCQlXTkkgUmVzb3VyY2VzLCBMTEMKKzAwMTJGOCAgICAgKGJhc2UgMTYpCQlXTkkgUmVzb3VyY2VzLCBMTEMKKwkJCQkyMTQ2IEJlcmluZyBEcml2ZQorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMzEtMjAxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTItRjkgICAoaGV4KQkJVVJZVSBTRUlTQUtVLCBMVEQuCiswMDEyRjkgICAgIChiYXNlIDE2KQkJVVJZVSBTRUlTQUtVLCBMVEQuCisJCQkJMS0yLTExCisJCQkJRlVLQUUtTUlOQU1JCisJCQkJSElHQVNISU5BUkktS1UgT1NBS0EgNTM3LTAwMDIKKwkJCQlKQVBBTgorCiswMC0xMi1GQSAgIChoZXgpCQlUSFggTFRECiswMDEyRkEgICAgIChiYXNlIDE2KQkJVEhYIExURAorCQkJCTUyMDEgR3JlYXQgQW1lcmljYSBQYXJrd2F5CisJCQkJU3VpdGUgMzIwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEyLUZCICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzAwMTJGQiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJNDE2LCBNYWV0YW4tM0RvbmcsIFllb25ndG9uZy1HdQorCQkJCVN1d29uLUNpdHkgR3llb25nZ2ktRG8gNDQzLTc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMi1GQyAgIChoZXgpCQlQTEFORVQgU3lzdGVtIENvLixMVEQKKzAwMTJGQyAgICAgKGJhc2UgMTYpCQlQTEFORVQgU3lzdGVtIENvLixMVEQKKwkJCQk0dGggRmxvb3IsIERhZWhhbiBCL0QsIDg3My0yOSwKKwkJCQlCYW5nYmFlNC1Eb25nLCBTZW9jaG8tS3UsCisJCQkJU2VvdWwgIDEzNy0wNjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTItRkQgICAoaGV4KQkJT1BUSU1VUyBJQyBTLkEuCiswMDEyRkQgICAgIChiYXNlIDE2KQkJT1BUSU1VUyBJQyBTLkEuCisJCQkJTkFXT0pPV1NLQSAxMTgKKwkJCQlOT1dZIFNBQ1ogTUFMT1BPTFNLQSAzMy0zMDAKKwkJCQlQT0xBTkQKKworMDAtMTItRkUgICAoaGV4KQkJTGVub3ZvIE1vYmlsZSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgTHRkLgorMDAxMkZFICAgICAoYmFzZSAxNikJCUxlbm92byBNb2JpbGUgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IEx0ZC4KKwkJCQlYaWFtZW4gT3ZlcnNlYXMgQ2hpbmVzZSBFbGVjdHJvbmljIFNjaWVuY2UgUGFyayxIdW9qdSBIaWdoIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgWm9uZQorCQkJCVhJQSBNRU4gRlUgSklBTiAzNjEwMDkKKwkJCQlDSElOQQorCiswMC0xMi1GRiAgIChoZXgpCQlMZWx5IEluZHVzdHJpZXMgTi5WLgorMDAxMkZGICAgICAoYmFzZSAxNikJCUxlbHkgSW5kdXN0cmllcyBOLlYuCisJCQkJV2V2ZXJza2FkZSAxMTAKKwkJCQlNYWFzc2x1aXMgWnVpZC1Ib2xsYW5kIDMxNDdQQQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTEzLTAwICAgKGhleCkJCUlULUZBQ1RPUlksIElOQy4KKzAwMTMwMCAgICAgKGJhc2UgMTYpCQlJVC1GQUNUT1JZLCBJTkMuCisJCQkJMS0xNi0yNiBUQUtBR0kgTUlOQU1JLUtVCisJCQkJRlVLVU9LQS1TSEkgRlVLVU9LQS1LRU4gODE1LTAwMDQKKwkJCQlKQVBBTgorCiswMC0xMy0wMSAgIChoZXgpCQlJcm9uR2F0ZSBTLkwuCiswMDEzMDEgICAgIChiYXNlIDE2KQkJSXJvbkdhdGUgUy5MLgorCQkJCUNcQWxjYWxhIDI2OCwgcHJpbWVyYSBwbGFudGEKKwkJCQlNYWRyaWQgIDI4MDI3CisJCQkJU1BBSU4KKworMDAtMTMtMDIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDEzMDIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLXRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xMy0wMyAgIChoZXgpCQlHYXRlQ29ubmVjdCBUZWNobm9sb2dpZXMgR21iSAorMDAxMzAzICAgICAoYmFzZSAxNikJCUdhdGVDb25uZWN0IFRlY2hub2xvZ2llcyBHbWJICisJCQkJQWdhc3RyYXNzZSAyNCBSMgorCQkJCTEyNDg5IEJlcmxpbiAgMTI0ODkKKwkJCQlHRVJNQU5ZCisKKzAwLTEzLTA0ICAgKGhleCkJCUZsYWlyY29tbSBUZWNobm9sb2dpZXMgQ28uIExURAorMDAxMzA0ICAgICAoYmFzZSAxNikJCUZsYWlyY29tbSBUZWNobm9sb2dpZXMgQ28uIExURAorCQkJCTIwODggSHVhc2hhbiBSb2FkCisJCQkJU291dGggSHVpeWluIEJsZGcuICMyMzA2CisJCQkJU2hhbmdoYWkgIDIwMDAzMAorCQkJCUNISU5BCisKKzAwLTEzLTA1ICAgKGhleCkJCUVwaWNvbSwgSW5jLgorMDAxMzA1ICAgICAoYmFzZSAxNikJCUVwaWNvbSwgSW5jLgorCQkJCVBPIEJveCAxNjEzMAorCQkJCU9ha2xhbmQgQ0EgOTQ2MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTA2ICAgKGhleCkJCUFsd2F5cyBPbiBXaXJlbGVzcworMDAxMzA2ICAgICAoYmFzZSAxNikJCUFsd2F5cyBPbiBXaXJlbGVzcworCQkJCTM3MDEgS2lyYnkgRHIKKwkJCQlTdWl0ZSAxMDkwCisJCQkJSG91c3RvbiBUWCA3NzA5OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMDcgICAoaGV4KQkJUGFyYXZpcnR1YWwgQ29ycG9yYXRpb24KKzAwMTMwNyAgICAgKGJhc2UgMTYpCQlQYXJhdmlydHVhbCBDb3Jwb3JhdGlvbgorCQkJCTI5NTMgQnVua2VyIEhpbGwgTGFuZQorCQkJCVN1aXRlIDQwNgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0wOCAgIChoZXgpCQlOdXZlcmEgRnVlbCBDZWxscworMDAxMzA4ICAgICAoYmFzZSAxNikJCU51dmVyYSBGdWVsIENlbGxzCisJCQkJMTI5IENvbmNvcmQgUm9hZCwgIzEKKwkJCQlCaWxsZXJpY2EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTA5ICAgKGhleCkJCU9jZWFuIEJyb2FkYmFuZCBOZXR3b3JrcworMDAxMzA5ICAgICAoYmFzZSAxNikJCU9jZWFuIEJyb2FkYmFuZCBOZXR3b3JrcworCQkJCTIwNzggV2Fsc2ggQXZlLCBTdWl0ZSBCCisJCQkJU2FudGEgQ2xhcmEgQ2FsaWZvcm5pYSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMEEgICAoaGV4KQkJTm9ydGVsCiswMDEzMEEgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTMtMEIgICAoaGV4KQkJTWV4dGFsIEIuVi4KKzAwMTMwQiAgICAgKGJhc2UgMTYpCQlNZXh0YWwgQi5WLgorCQkJCURlIFRpZW5kZW4gNDgKKwkJCQlOdWVuZW4gTm9vcmQgQnJhYmFudCA1Njc0VEIKKwkJCQlORVRIRVJMQU5EUworCiswMC0xMy0wQyAgIChoZXgpCQlIRiBTeXN0ZW0gQ29ycG9yYXRpb24KKzAwMTMwQyAgICAgKGJhc2UgMTYpCQlIRiBTeXN0ZW0gQ29ycG9yYXRpb24KKwkJCQkxNTIwLTEgQXl1a2FpCisJCQkJU2hpcmF0YWthLU1hY2hpCisJCQkJTmlzaGlva2l0YW1hLUd1biBZYW1hZ2F0YS1LZW4gOTkyLTA3NzEKKwkJCQlKQVBBTgorCiswMC0xMy0wRCAgIChoZXgpCQlHQUxJTEVPIEFWSU9OSUNBCiswMDEzMEQgICAgIChiYXNlIDE2KQkJR0FMSUxFTyBBVklPTklDQQorCQkJCVZJQUxFIEVVUk9QQQorCQkJCSBORVJWSUFOTyBNSUxBTk8gMjAwMTQKKwkJCQlJVEFMWQorCiswMC0xMy0wRSAgIChoZXgpCQlGb2N1c3JpdGUgQXVkaW8gRW5naW5lZXJpbmcgTGltaXRlZAorMDAxMzBFICAgICAoYmFzZSAxNikJCUZvY3Vzcml0ZSBBdWRpbyBFbmdpbmVlcmluZyBMaW1pdGVkCisJCQkJMTkgTGluY29sbiBSb2FkCisJCQkJQ3Jlc3NleCBCdXNpbmVzcyBQYXJrCisJCQkJSGlnaCBXeWNvbWJlIEJ1Y2tzIEhQMTIgM0ZYCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTMtMEYgICAoaGV4KQkJRUdFTUVOIEJpbGdpc2F5YXIgTXVoIFNhbiB2ZSBUaWMgTFREIFNUSQorMDAxMzBGICAgICAoYmFzZSAxNikJCUVHRU1FTiBCaWxnaXNheWFyIE11aCBTYW4gdmUgVGljIExURCBTVEkKKwkJCQlGZXZ6aSBDYWttYWsgMiBTb2sgMzEvQQorCQkJCUtJWklMQVkKKwkJCQlBTktBUkEgQ0FOS0FZQSAwNjQ0MAorCQkJCVRVUktFWQorCiswMC0xMy0xMCAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzAwMTMxMCAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5CisJCQkJSXJ2aW5lIENBIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0xMSAgIChoZXgpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCiswMDEzMTEgICAgIChiYXNlIDE2KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMTIgICAoaGV4KQkJQW1lZGlhIE5ldHdvcmtzIEluYy4KKzAwMTMxMiAgICAgKGJhc2UgMTYpCQlBbWVkaWEgTmV0d29ya3MgSW5jLgorCQkJCTEwMSBDcmF3Zm9yZHMgQ29ybmVyIFJkCisJCQkJSG9sbWRlbCBOSiAwNzczMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMTMgICAoaGV4KQkJR3VhbmdaaG91IFBvc3QgJiBUZWxlY29tIEVxdWlwbWVudCBsdGQKKzAwMTMxMyAgICAgKGJhc2UgMTYpCQlHdWFuZ1pob3UgUG9zdCAmIFRlbGVjb20gRXF1aXBtZW50IGx0ZAorCQkJCTEzOSMgWmhvbmdzaGFuIEF2ZQorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgNTEwNjMwCisJCQkJQ0hJTkEKKworMDAtMTMtMTQgICAoaGV4KQkJQXNpYW1ham9yIEluYy4KKzAwMTMxNCAgICAgKGJhc2UgMTYpCQlBc2lhbWFqb3IgSW5jLgorCQkJCTZGLTksIE5vLiAyNjgsIExpYW4tQ2hlbmcgUmQuLCBKdW5naGUgQ2l0eSwKKwkJCQlUYWlwZWkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtMTUgICAoaGV4KQkJU09OWSBDb21wdXRlciBFbnRlcnRhaW5tZW50IGluYywKKzAwMTMxNSAgICAgKGJhc2UgMTYpCQlTT05ZIENvbXB1dGVyIEVudGVydGFpbm1lbnQgaW5jLAorCQkJCTItNi0yMSBNaW5hbWktQW95YW1hLAorCQkJCU1pbmF0by1LdSBUb2t5byAxMDctMDA2MgorCQkJCUpBUEFOCisKKzAwLTEzLTE2ICAgKGhleCkJCUwtUy1CIEJyb2FkY2FzdCBUZWNobm9sb2dpZXMgR21iSAorMDAxMzE2ICAgICAoYmFzZSAxNikJCUwtUy1CIEJyb2FkY2FzdCBUZWNobm9sb2dpZXMgR21iSAorCQkJCUd1c3Rhdi1TdHJlc2VtYW5uLVN0ci4gOAorCQkJCUJpbmdlbiBSaGVpbmxhbmQtUGZhbHogNTU0MTEKKwkJCQlHRVJNQU5ZCisKKzAwLTEzLTE3ICAgKGhleCkJCUdOIE5ldGNvbSBhcworMDAxMzE3ICAgICAoYmFzZSAxNikJCUdOIE5ldGNvbSBhcworCQkJCU1ldGFsYnVlbiA2NgorCQkJCVAuTy5Cb3ggMjAxCisJCQkJQmFsbGVydXAgU2tvdmx1bmRlIERLLTI3NTAKKwkJCQlERU5NQVJLCisKKzAwLTEzLTE4ICAgKGhleCkJCURHU1RBVElPTiBDby4sIEx0ZC4KKzAwMTMxOCAgICAgKGJhc2UgMTYpCQlER1NUQVRJT04gQ28uLCBMdGQuCisJCQkJUm0uNDAxLCBCbGRnLkEsIEJ1bmRhbmcgVGVjaG5vIFBhcmsgMTUwLCBZYXRhcC1Eb25nLCBCdW5kYW5nLUd1LCBTdW5nbmFtLVNpLCBHeXVuZ2dpLURvLCA0NjMtNzYwLCBLb3JlYQorCQkJCVN1bmduYW0gR3l1bmdnaSA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLTE5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTMxOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTFBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTMxQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTFCICAgKGhleCkJCUJlQ2VsbCBJbm5vdmF0aW9ucyBDb3JwLgorMDAxMzFCICAgICAoYmFzZSAxNikJCUJlQ2VsbCBJbm5vdmF0aW9ucyBDb3JwLgorCQkJCTEyRi05LCBOby4gNzksIFNoaW4tVGFpIDV0aCBSZCBTZWMgMSwKKwkJCQlTaGloLWNoaWgsIFRhaXBlaSAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTFDICAgKGhleCkJCUxpdGVUb3VjaCwgSW5jLgorMDAxMzFDICAgICAoYmFzZSAxNikJCUxpdGVUb3VjaCwgSW5jLgorCQkJCTM0MDAgU291dGggV2VzdCBUZW1wbGUKKwkJCQlTYWx0IExha2UgQ2l0eSBVVCA4NDExNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMUQgICAoaGV4KQkJU2NhbnZhZWd0IEludGVybmF0aW9uYWwgQS9TCiswMDEzMUQgICAgIChiYXNlIDE2KQkJU2NhbnZhZWd0IEludGVybmF0aW9uYWwgQS9TCisJCQkJUC5PLlBlZGVyc2VucyB2ZWogMTgKKwkJCQlBYXJodXMgSnlsbGFuZCA4MjAwIE4KKwkJCQlERU5NQVJLCisKKzAwLTEzLTFFICAgKGhleCkJCVBlaWtlciBhY3VzdGljIEdtYkggJiBDby4gS0cKKzAwMTMxRSAgICAgKGJhc2UgMTYpCQlQZWlrZXIgYWN1c3RpYyBHbWJIICYgQ28uIEtHCisJCQkJTWF4LVBsYW5jay1TdHJhw4PFuGUgMzIKKwkJCQlGcmllZHJpY2hzZG9yZiBIZXNzZW4gNjEzODEKKwkJCQlHRVJNQU5ZCisKKzAwLTEzLTFGICAgKGhleCkJCU54dFBoYXNlIFQmRCwgQ29ycC4KKzAwMTMxRiAgICAgKGJhc2UgMTYpCQlOeHRQaGFzZSBUJkQsIENvcnAuCisJCQkJMzA0MCBFLiBCcm9hZHdheQorCQkJCVZhbmNvdXZlciBCQyBWNU0gMVo0CisJCQkJQ0FOQURBCisKKzAwLTEzLTIwICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxMzIwICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS10ZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTMtMjEgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzAwMTMyMSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0yMiAgIChoZXgpCQlEQVEgRWxlY3Ryb25pY3MsIEluYy4KKzAwMTMyMiAgICAgKGJhc2UgMTYpCQlEQVEgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQkyNjJCIE9sZCBOZXcgQnJ1bnN3aWNrIFJvYWQKKwkJCQlQaXNjYXRhd2F5IE5KIDA4ODU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0yMyAgIChoZXgpCQlDYXAgQ28uLCBMdGQuCiswMDEzMjMgICAgIChiYXNlIDE2KQkJQ2FwIENvLiwgTHRkLgorCQkJCTExRiw2ODQtMixkZXVuZ2Nob24gMy1kb25nLGdhbmdzZW8tZ3UKKwkJCQlTZW91bCAgMTU3LTc1NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy0yNCAgIChoZXgpCQlTY2huZWlkZXIgRWxlY3RyaWMgVWx0cmEgVGVybWluYWwKKzAwMTMyNCAgICAgKGJhc2UgMTYpCQlTY2huZWlkZXIgRWxlY3RyaWMgVWx0cmEgVGVybWluYWwKKwkJCQlJbmR1c3RyaXBhcmtlbiAzMgorCQkJCUNvcGVuaGFnZW4gIDI3NTAKKwkJCQlERU5NQVJLCisKKzAwLTEzLTI1ICAgKGhleCkJCUNvcnRpbmEgU3lzdGVtcyBJbmMKKzAwMTMyNSAgICAgKGJhc2UgMTYpCQlDb3J0aW5hIFN5c3RlbXMgSW5jCisJCQkJODQwIFcgQ2FsaWZvcm5pYSBBdmUsIFN1aXRlIDEwMAorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMjYgICAoaGV4KQkJRUNNIFN5c3RlbXMgTHRkCiswMDEzMjYgICAgIChiYXNlIDE2KQkJRUNNIFN5c3RlbXMgTHRkCisJCQkJRWxsaWZvb3QgUGFyaworCQkJCUJ1cnN0d2ljaworCQkJCUhVTEwgRWFzdCBZb3Jrc2hpcmUgSFUxMiA5RFoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMy0yNyAgIChoZXgpCQlEYXRhIEFjcXVpc2l0aW9ucyBsaW1pdGVkCiswMDEzMjcgICAgIChiYXNlIDE2KQkJRGF0YSBBY3F1aXNpdGlvbnMgbGltaXRlZAorCQkJCTg0IEdhc3NvbiBzdHJlZXQKKwkJCQlDaHJpc3RjaHVyY2ggIAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTEzLTI4ICAgKGhleCkJCVdlc3RlY2ggS29yZWEgSW5jLiwKKzAwMTMyOCAgICAgKGJhc2UgMTYpCQlXZXN0ZWNoIEtvcmVhIEluYy4sCisJCQkJNTQ4LTksIEdhandhMy1Eb25nLFNlby1rdSwKKwkJCQlJbmNoZW9uICA0MDQtODE3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLTI5ICAgKGhleCkJCVZTU1QgQ28uLCBMVEQKKzAwMTMyOSAgICAgKGJhc2UgMTYpCQlWU1NUIENvLiwgTFRECisJCQkJc3VpdCAzMjAyLCBLb3JlYSBXb3JsZCBUcmFkZSBDZW50ZXIgMTU5LTEKKwkJCQlTYW1zdW5nLURvbmcsIEthbmduYW0tR3UKKwkJCQlTZW91bCAgMTM1LTcyOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy0yQSAgIChoZXgpCQlTaXRyb25pY3MgVGVsZWNvbSBTb2x1dGlvbnMKKzAwMTMyQSAgICAgKGJhc2UgMTYpCQlTaXRyb25pY3MgVGVsZWNvbSBTb2x1dGlvbnMKKwkJCQlNaWNoZWxza2EgNjAKKwkJCQlQcmFndWUgUHJhZ3VlIDQgLSBNaWNobGUgMTQwIDAwCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMTMtMkIgICAoaGV4KQkJUGhvZW5peCBEaWdpdGFsCiswMDEzMkIgICAgIChiYXNlIDE2KQkJUGhvZW5peCBEaWdpdGFsCisJCQkJNzY1MCBFYXN0IEV2YW5zIFJkLiBCbGRnLiBBCisJCQkJU2NvdHRzZGFsZSBBeiA4NTI2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtMkMgICAoaGV4KQkJTUFaIEJyYW5kZW5idXJnIEdtYkgKKzAwMTMyQyAgICAgKGJhc2UgMTYpCQlNQVogQnJhbmRlbmJ1cmcgR21iSAorCQkJCU1pZWxlc3RyYcODxbhlIDIKKwkJCQlXZXJkZXIgQnJhbmRlbmJ1cmcgMTQ1NDIKKwkJCQlHRVJNQU5ZCisKKzAwLTEzLTJEICAgKGhleCkJCWlXaXNlIENvbW11bmljYXRpb25zCiswMDEzMkQgICAgIChiYXNlIDE2KQkJaVdpc2UgQ29tbXVuaWNhdGlvbnMKKwkJCQlVbml0IDNDLCBBcmRlbiBHcm92ZQorCQkJCVJhY2Vjb3Vyc2UgUmQsTW9udGFndSBHYXJkZW5zCisJCQkJQ2FwZSBUb3duICA3NDQxCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTEzLTJFICAgKGhleCkJCUlUaWFuIENvcG9yYXRpb24KKzAwMTMyRSAgICAgKGJhc2UgMTYpCQlJVGlhbiBDb3BvcmF0aW9uCisJCQkJNEYgWW91bmdobyBCZC4xNjA1LTEgU2VvY2hvLWRvbmcKKwkJCQlTZW9jaG8tZ3UKKwkJCQlTZW91bCAgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy0yRiAgIChoZXgpCQlJbnRlcmFjdGVrCiswMDEzMkYgICAgIChiYXNlIDE2KQkJSW50ZXJhY3RlaworCQkJCVNpZ21hbCAyIEJMREcgI0MtMzE5LCAxOCBLdW1pLWRvbmcKKwkJCQlQdW5kYW5nLWt1CisJCQkJU2VvbmduYW0gS3l1bmctZ2kgNDYzLTc0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy0zMCAgIChoZXgpCQlFVVJPIFBST1RFQ1RJT04gU1VSVkVJTExBTkNFCiswMDEzMzAgICAgIChiYXNlIDE2KQkJRVVSTyBQUk9URUNUSU9OIFNVUlZFSUxMQU5DRQorCQkJCTMwIFJ1ZSBkdSBEb3VicworCQkJCVNUUkFTQk9VUkcgIDY3MTAwCisJCQkJRlJBTkNFCisKKzAwLTEzLTMxICAgKGhleCkJCUNlbGxQb2ludCBDb25uZWN0CiswMDEzMzEgICAgIChiYXNlIDE2KQkJQ2VsbFBvaW50IENvbm5lY3QKKwkJCQlCaWxsZWR2ZWogNAorCQkJCUNvcGVuaGFnZW4gIDIxMDAKKwkJCQlERU5NQVJLCisKKzAwLTEzLTMyICAgKGhleCkJCUJlaWppbmcgVG9wc2VjIE5ldHdvcmsgU2VjdXJpdHkgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTMzMiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFRvcHNlYyBOZXR3b3JrIFNlY3VyaXR5IFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJSHVha29uZyBUb3dlcgorCQkJCU5vLiAxIFNoYW5nZGkgRWFzdCBSb2FkCisJCQkJSGFpZGlhbiBEaXN0cmljdCBCZWlqaW5nIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTEzLTMzICAgKGhleCkJCUJhdWRUZWMgQ29ycG9yYXRpb24KKzAwMTMzMyAgICAgKGJhc2UgMTYpCQlCYXVkVGVjIENvcnBvcmF0aW9uCisJCQkJMTJGLCBOTy4xODEsIFNlYy4gIDEuIFRhdHVuZyBSZC4sCisJCQkJSHNpY2hpaCBUYWlwZWkgSHNpZW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy0zNCAgIChoZXgpCQlBcmthZG9zLCBJbmMuCiswMDEzMzQgICAgIChiYXNlIDE2KQkJQXJrYWRvcywgSW5jLgorCQkJCTk0OCBVUyBIV1kgMjIKKwkJCQlOb3J0aCBQbGFpbmZpZWxkIE5KIDA3MDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0zNSAgIChoZXgpCQlWUyBJbmR1c3RyeSBCZXJoYWQKKzAwMTMzNSAgICAgKGJhc2UgMTYpCQlWUyBJbmR1c3RyeSBCZXJoYWQKKwkJCQlQbG8gNDcsIFNlbmFpIEluZC4gRXN0LiBJSSwKKwkJCQlTZW5haSBKb2hvciA4MTQwMAorCQkJCU1BTEFZU0lBCisKKzAwLTEzLTM2ICAgKGhleCkJCVRpYW5qaW4gNzEyIENvbW11bmljYXRpb24gQnJvYWRjYXN0aW5nIGNvLiwgbHRkLgorMDAxMzM2ICAgICAoYmFzZSAxNikJCVRpYW5qaW4gNzEyIENvbW11bmljYXRpb24gQnJvYWRjYXN0aW5nIGNvLiwgbHRkLgorCQkJCU5vLjE4NSwgWGluZGEgUm9hZCwgSGViZWkgRGlzdHJpY3QKKwkJCQlUaWFuamluICAzMDAxNDAKKwkJCQlDSElOQQorCiswMC0xMy0zNyAgIChoZXgpCQlPcmllbnQgUG93ZXIgSG9tZSBOZXR3b3JrIEx0ZC4KKzAwMTMzNyAgICAgKGJhc2UgMTYpCQlPcmllbnQgUG93ZXIgSG9tZSBOZXR3b3JrIEx0ZC4KKwkJCQkzMDcgSGFyYm91ciBDZW50cmUsIFRvd2VyIDEsCisJCQkJMSBIb2sgQ2hldW5nIFN0cmVldCwgSHVuZyBIb20KKwkJCQlIT05HIEtPTkcKKworMDAtMTMtMzggICAoaGV4KQkJRlJFU0VOSVVTLVZJQUwKKzAwMTMzOCAgICAgKGJhc2UgMTYpCQlGUkVTRU5JVVMtVklBTAorCQkJCUxlIEdyYW5kIENoZW1pbgorCQkJCUJSRVpJTlMgIDM4NTkwCisJCQkJRlJBTkNFCisKKzAwLTEzLTM5ICAgKGhleCkJCUVMLU1FIEFHCiswMDEzMzkgICAgIChiYXNlIDE2KQkJRUwtTUUgQUcKKwkJCQlHZXdlcmJlcmluZyAxCisJCQkJQXUgaS4gZC4gSGFsbGVydGF1IEJheWVybiA4NDA3MgorCQkJCUdFUk1BTlkKKworMDAtMTMtM0EgICAoaGV4KQkJVmFkYVRlY2ggSW5jLgorMDAxMzNBICAgICAoYmFzZSAxNikJCVZhZGFUZWNoIEluYy4KKwkJCQkxMTU0MCBTLiBFYXN0ZXJuIEF2ZW51ZQorCQkJCUhlbmRlcnNvbiBOZXZhZGEgODkwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTNCICAgKGhleCkJCVNwZWVkIERyYWdvbiBNdWx0aW1lZGlhIExpbWl0ZWQKKzAwMTMzQiAgICAgKGJhc2UgMTYpCQlTcGVlZCBEcmFnb24gTXVsdGltZWRpYSBMaW1pdGVkCisJCQkJUm9vbSAxMzEyLCBWYW50YSBJbmR1c3RyaWFsIENlbnRyZSwKKwkJCQkzMyBUYWkgTGluIFBhaSBSb2FkLAorCQkJCUt3YWkgQ2h1bmcgTi5ULiAKKwkJCQlIT05HIEtPTkcKKworMDAtMTMtM0MgICAoaGV4KQkJUVVJTlRST04gU1lTVEVNUyBJTkMuCiswMDEzM0MgICAgIChiYXNlIDE2KQkJUVVJTlRST04gU1lTVEVNUyBJTkMuCisJCQkJMjEwNSBTTy4gQkxPU1NFUiBST0FECisJCQkJU0FOVEEgTUFSSUEgQ0FMSUZPUk5JQSA5MzQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtM0QgICAoaGV4KQkJTWljcm8gTWVtb3J5IEN1cnRpc3MgV3JpZ2h0IENvCiswMDEzM0QgICAgIChiYXNlIDE2KQkJTWljcm8gTWVtb3J5IEN1cnRpc3MgV3JpZ2h0IENvCisJCQkJOTU0MCBWYXNzYXIgQXZlbnVlCisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtM0UgICAoaGV4KQkJTWV0YVN3aXRjaAorMDAxMzNFICAgICAoYmFzZSAxNikJCU1ldGFTd2l0Y2gKKwkJCQkxNDExIEhhcmJvciBCYXkgUGFya3dheQorCQkJCVN1aXRlIDEwMDMKKwkJCQlBbGFtZWRhIENBIDk0NTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy0zRiAgIChoZXgpCQlFcHBlbmRvcmYgSW5zdHJ1bWVudGUgR21iSAorMDAxMzNGICAgICAoYmFzZSAxNikJCUVwcGVuZG9yZiBJbnN0cnVtZW50ZSBHbWJICisJCQkJQmFya2hhdXNlbndlZyAxCisJCQkJQWJ0bC4gSUgtRkUKKwkJCQlIYW1idXJnIERFIDIyMzM5CisJCQkJR0VSTUFOWQorCiswMC0xMy00MCAgIChoZXgpCQlBRC5FTCBzLnIubC4KKzAwMTM0MCAgICAgKGJhc2UgMTYpCQlBRC5FTCBzLnIubC4KKwkJCQl2aWEgUy4gUGVydGluaSw1CisJCQkJTWFydGVsbGFnbyBWRU5FWklBIDMwMDMwCisJCQkJSVRBTFkKKworMDAtMTMtNDEgICAoaGV4KQkJU2hhbmRvbmcgTmV3IEJlaXlhbmcgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkCiswMDEzNDEgICAgIChiYXNlIDE2KQkJU2hhbmRvbmcgTmV3IEJlaXlhbmcgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJTk8uMTEgWGlud2VpIFJvYWQKKwkJCQlXZWloYWkgY2l0eSBTaGFuZG9uZyAyNjQyMDAKKwkJCQlDSElOQQorCiswMC0xMy00MiAgIChoZXgpCQlWaXNpb24gUmVzZWFyY2gsIEluYy4KKzAwMTM0MiAgICAgKGJhc2UgMTYpCQlWaXNpb24gUmVzZWFyY2gsIEluYy4KKwkJCQkxMDAgRGV5IFJvYWQKKwkJCQlXYXluZSBOSiAwNzQ3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNDMgICAoaGV4KQkJTWF0c3VzaGl0YSBFbGVjdHJvbmljIENvbXBvbmVudHMgKEV1cm9wZSkgR21iSAorMDAxMzQzICAgICAoYmFzZSAxNikJCU1hdHN1c2hpdGEgRWxlY3Ryb25pYyBDb21wb25lbnRzIChFdXJvcGUpIEdtYkgKKwkJCQlaZXBwZWxpbnN0cmHDg8W4ZSAxOQorCQkJCUx1ZW5lYnVyZyBOaWVkZXJzYWNoc2VuIDIxMzM3CisJCQkJR0VSTUFOWQorCiswMC0xMy00NCAgIChoZXgpCQlGYXJnbyBFbGVjdHJvbmljcyBJbmMuCiswMDEzNDQgICAgIChiYXNlIDE2KQkJRmFyZ28gRWxlY3Ryb25pY3MgSW5jLgorCQkJCTY1MzMgRmx5aW5nIENsb3VkIERyaXZlCisJCQkJRWRlbiBQcmFpcmllIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy00NSAgIChoZXgpCQlFYXRvbiBDb3Jwb3JhdGlvbgorMDAxMzQ1ICAgICAoYmFzZSAxNikJCUVhdG9uIENvcnBvcmF0aW9uCisJCQkJNDIwMSBOb3J0aCAyN3RoIFN0cmVldAorCQkJCU1pbHdhdWtlZSBXaXNjb25zaW4gNTMyMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTQ2ICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxMzQ2ICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCTJGLCBOby4yMzMtMiwgUGFvLUNoaWFvIFJvYWQKKwkJCQlIc2luLVRpZW4sIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTQ3ICAgKGhleCkJCUJsdWVUcmVlIFdpcmVsZXNzIERhdGEgSW5jLgorMDAxMzQ3ICAgICAoYmFzZSAxNikJCUJsdWVUcmVlIFdpcmVsZXNzIERhdGEgSW5jLgorCQkJCTI0MjUgNDZlIEF2ZW51ZQorCQkJCUxhY2hpbmUgUXVlYmVjIEg4VCAzQzkKKwkJCQlDQU5BREEKKworMDAtMTMtNDggICAoaGV4KQkJQXJ0aWxhIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxMzQ4ICAgICAoYmFzZSAxNikJCUFydGlsYSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkyRi4sIE5vLjEsIEFsbGV5IDgsIFNpd2VpIExhbmUsIFpob25nemhlbmcgUmQuLAorCQkJCVhpbmRpYW4gQ2l0eSBUYWlwZWkgQ291bnR5IDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtNDkgICAoaGV4KQkJWnlYRUwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzAwMTM0OSAgICAgKGJhc2UgMTYpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorCQkJCU5vLiA2LCBJbm5vdmF0aW9uIFJvYWQgSUkgU2NpZW5jZSBQYXJrCisJCQkJSHNpbi1DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtNEEgICAoaGV4KQkJRW5naW0sIEluYy4KKzAwMTM0QSAgICAgKGJhc2UgMTYpCQlFbmdpbSwgSW5jLgorCQkJCTQwIE5hZ29nIFBhcmsKKwkJCQlBY3RvbiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNEIgICAoaGV4KQkJVG9Hb2xkZW5OZXQgVGVjaG5vbG9neSBJbmMuCiswMDEzNEIgICAgIChiYXNlIDE2KQkJVG9Hb2xkZW5OZXQgVGVjaG5vbG9neSBJbmMuCisJCQkJNUYtMSBOby4yNSxQdS1kaW5nLiwKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy00QyAgIChoZXgpCQlZRFQgVGVjaG5vbG9neSBJbnRlcm5hdGlvbmFsCiswMDEzNEMgICAgIChiYXNlIDE2KQkJWURUIFRlY2hub2xvZ3kgSW50ZXJuYXRpb25hbAorCQkJCTJGLiwgTm8uMjE4LCBSdWVpZ3VhbmcgUmQuLAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpLCAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy00RCAgIChoZXgpCQlJbmVwcm8gQlYKKzAwMTM0RCAgICAgKGJhc2UgMTYpCQlJbmVwcm8gQlYKKwkJCQlQb25kd2VnIDcKKwkJCQlOTC0yMTUzUEsKKwkJCQlOaWV1dy0gVmVubmVwIAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTEzLTRFICAgKGhleCkJCVZhbG94IFN5c3RlbXMsIEluYy4KKzAwMTM0RSAgICAgKGJhc2UgMTYpCQlWYWxveCBTeXN0ZW1zLCBJbmMuCisJCQkJIzcwNCwgQWNlIFR3aW4gdG93ZXIgMiwgMjEyLTMwLCBHdXJvLTNkb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi03NzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtNEYgICAoaGV4KQkJVHJhbnplbyBXaXJlbGVzcyBUZWNobm9sb2dpZXMgSW5jLgorMDAxMzRGICAgICAoYmFzZSAxNikJCVRyYW56ZW8gV2lyZWxlc3MgVGVjaG5vbG9naWVzIEluYy4KKwkJCQkyMDE1NSBTdGV3YXJ0IENyZXMuCisJCQkJTWFwbGUgUmlkZ2UgQnJpdGlzaCBDb2x1bWJpYSBWMlggMFQ2CisJCQkJQ0FOQURBCisKKzAwLTEzLTUwICAgKGhleCkJCVNpbHZlciBTcHJpbmcgTmV0d29ya3MsIEluYworMDAxMzUwICAgICAoYmFzZSAxNikJCVNpbHZlciBTcHJpbmcgTmV0d29ya3MsIEluYworCQkJCTU3NSBCcm9hZHdheSBTdHJlZXQKKwkJCQlSZWR3b29kIENpdHkgQ0EgOTQwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTUxICAgKGhleCkJCU5pbGVzIEF1ZGlvIENvcnBvcmF0aW9uCiswMDEzNTEgICAgIChiYXNlIDE2KQkJTmlsZXMgQXVkaW8gQ29ycG9yYXRpb24KKwkJCQkxMjMzMSBTVyAxMzB0aCBTdHJlZXQKKwkJCQlNaWFtaSBGTCAzMzE4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNTIgICAoaGV4KQkJTmF6dGVjLCBJbmMuCiswMDEzNTIgICAgIChiYXNlIDE2KQkJTmF6dGVjLCBJbmMuCisJCQkJODIwIFBhcmsgVHdvIERyLgorCQkJCVN1Z2FyIExhbmQgVFggNzc0NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTUzICAgKGhleCkJCUhZREFDIEZpbHRlcnRlY2huaWsgR01CSAorMDAxMzUzICAgICAoYmFzZSAxNikJCUhZREFDIEZpbHRlcnRlY2huaWsgR01CSAorCQkJCUluZHVzdHJpZWdlYmlldAorCQkJCVN1bHpiYWNoL1NhYXIgU2FhcmxhbmQgNjYyODAKKwkJCQlHRVJNQU5ZCisKKzAwLTEzLTU0ICAgKGhleCkJCVpjb21heCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTM1NCAgICAgKGJhc2UgMTYpCQlaY29tYXggVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJOTggRm9yZCBSb2FkCisJCQkJU3VpdGUgMy1GCisJCQkJRGVudmlsbGUgTkogMDc4MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTU1ICAgKGhleCkJCVRPTUVOIEN5YmVyLWJ1c2luZXNzIFNvbHV0aW9ucywgSW5jLgorMDAxMzU1ICAgICAoYmFzZSAxNikJCVRPTUVOIEN5YmVyLWJ1c2luZXNzIFNvbHV0aW9ucywgSW5jLgorCQkJCTItMTEtMTkgS29obmFuCisJCQkJTWluYXRva3Uta3UKKwkJCQlUT0tZTyAgMTA4LTAwNzUKKwkJCQlKQVBBTgorCiswMC0xMy01NiAgIChoZXgpCQlGTElSIFJhZGlhdGlvbiBHbWJICiswMDEzNTYgICAgIChiYXNlIDE2KQkJRkxJUiBSYWRpYXRpb24gR21iSAorCQkJCVBpZXBlcnNiZXJnIDEyLAorCQkJCVNvbGluZ2VuIE5SVyA0MjY1MworCQkJCUdFUk1BTlkKKworMDAtMTMtNTcgICAoaGV4KQkJU295YWwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTM1NyAgICAgKGJhc2UgMTYpCQlTb3lhbCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTEwRiwgTm8uIDI3LCBMYW5lIDE2OSwgS2FuZ25pbmcgU3QuLCBTaGlqciBDaXR5LAorCQkJCTJGLCBOby4gMjcsIExhbmUgMTY5LCBLYW5nbmluZyBTdC4sIFNoaWpyIENpdHksCisJCQkJVGFpcGVpICAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTU4ICAgKGhleCkJCVJlYWxtIFN5c3RlbXMsIEluYy4KKzAwMTM1OCAgICAgKGJhc2UgMTYpCQlSZWFsbSBTeXN0ZW1zLCBJbmMuCisJCQkJOTM1MCBTb3V0aCA1MzUgRWFzdAorCQkJCTl0aCBGbG9vcgorCQkJCVNhbmR5IFV0YWggODQwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTU5ICAgKGhleCkJCVByb1RlbGV2aXNpb24gVGVjaG5vbG9naWVzIEEvUworMDAxMzU5ICAgICAoYmFzZSAxNikJCVByb1RlbGV2aXNpb24gVGVjaG5vbG9naWVzIEEvUworCQkJCU1hcmllbHVuZHZlaiAxNiwyCisJCQkJSGVybGV2IENvcGVuaGFnZW4gMjczMAorCQkJCURFTk1BUksKKworMDAtMTMtNUEgICAoaGV4KQkJUHJvamVjdCBUJkUgTGltaXRlZAorMDAxMzVBICAgICAoYmFzZSAxNikJCVByb2plY3QgVCZFIExpbWl0ZWQKKwkJCQlSb29tIDNDLCAyL0YuIFdhaCBTaGluZyBDZW50ZXIsCisJCQkJMTEgU2hpbmcgWWlwIFN0cmVldCwKKwkJCQlLd3VuIFRvbmcsIEtvd2xvb24sIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xMy01QiAgIChoZXgpCQlQYW5lbExpbmsgQ2luZW1hLCBMTEMKKzAwMTM1QiAgICAgKGJhc2UgMTYpCQlQYW5lbExpbmsgQ2luZW1hLCBMTEMKKwkJCQkxMDcwIEUgQXJxdWVzIEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNUMgICAoaGV4KQkJT25TaXRlIFN5c3RlbXMsIEluYy4KKzAwMTM1QyAgICAgKGJhc2UgMTYpCQlPblNpdGUgU3lzdGVtcywgSW5jLgorCQkJCTM5MDAgRnJlZWRvbSBDaXJjbGUKKwkJCQlTdWl0ZSAxMDIKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NC0xMjIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy01RCAgIChoZXgpCQlOVFRQQyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAxMzVEICAgICAoYmFzZSAxNikJCU5UVFBDIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMy0yNSBLYW5kYSBKaW5iby1jaG8KKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMS0wMDUxCisJCQkJSkFQQU4KKworMDAtMTMtNUUgICAoaGV4KQkJRUFCL1JXSS9LCiswMDEzNUUgICAgIChiYXNlIDE2KQkJRUFCL1JXSS9LCisJCQkJRsOkcsO2Z2F0YW4gNgorCQkJCVN0b2NraG9sbSBLaXN0YSAxNjQgODAKKwkJCQlTV0VERU4KKworMDAtMTMtNUYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMzVGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNjAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMzYwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNjEgICAoaGV4KQkJQmlvc3BhY2UgQ28uLCBMdGQuCiswMDEzNjEgICAgIChiYXNlIDE2KQkJQmlvc3BhY2UgQ28uLCBMdGQuCisJCQkJMTB0aCBGbG9vciwgUG9vbmdsaW0gQmxkZywgODIzIFllb2tzYW0gMS1kb25nCisJCQkJR2FuZ25hbS1ndSBTZW91bCAxMzUtNzg0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLTYyICAgKGhleCkJCVNoaW5IZXVuZyBQcmVjaXNpb24gQ28uLCBMdGQuCiswMDEzNjIgICAgIChiYXNlIDE2KQkJU2hpbkhldW5nIFByZWNpc2lvbiBDby4sIEx0ZC4KKwkJCQlEYWVIYSBCbGRnLiA0MDEKKwkJCQkxMDEtNyBTaGluZ2lsRG9uZworCQkJCVlvdW5nRHVuZ1BvR3UgU2VvdWwgMTUwLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy02MyAgIChoZXgpCQlWZXJhc2NhcGUsIEluYy4KKzAwMTM2MyAgICAgKGJhc2UgMTYpCQlWZXJhc2NhcGUsIEluYy4KKwkJCQkxMTAxIDMxc3QgU3QuLCBTdWl0ZSAjMTkwCisJCQkJRG93bmVycyBHcm92ZSBJTCA2MDUxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNjQgICAoaGV4KQkJUGFyYWRpZ20gVGVjaG5vbG9neSBJbmMuLgorMDAxMzY0ICAgICAoYmFzZSAxNikJCVBhcmFkaWdtIFRlY2hub2xvZ3kgSW5jLi4KKwkJCQkzRiwgTm8uIDI4NSwgU2VjLjIsIFRpLURpbmcgQmx2ZCBOZWktSHUsCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTY1ICAgKGhleCkJCU5vcnRlbAorMDAxMzY1ICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTEzLTY2ICAgKGhleCkJCU5ldHVyaXR5IFRlY2hub2xvZ2llcyBJbmMuCiswMDEzNjYgICAgIChiYXNlIDE2KQkJTmV0dXJpdHkgVGVjaG5vbG9naWVzIEluYy4KKwkJCQk4MzAgU3Rld2FydCBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtNjcgICAoaGV4KQkJTmFyYXlvbi4gQ28uLCBMdGQuCiswMDEzNjcgICAgIChiYXNlIDE2KQkJTmFyYXlvbi4gQ28uLCBMdGQuCisJCQkJIzUwMiBIeW9jaGFuZyBUL1cgMTgxLTMKKwkJCQlKYW1zaWwtZG9uZywgU29uZ3BhLWd1CisJCQkJU2VvdWwgIDEzOC0yMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtNjggICAoaGV4KQkJTWFlcnNrIERhdGEgRGVmZW5jZQorMDAxMzY4ICAgICAoYmFzZSAxNikJCU1hZXJzayBEYXRhIERlZmVuY2UKKwkJCQlFbGxlZ2FhcmR2ZWogMjUKKwkJCQlTb2VuZGVyYm9yZyBESyA2NDAwCisJCQkJREVOTUFSSworCiswMC0xMy02OSAgIChoZXgpCQlIb25kYSBFbGVjdHJvbiBDby4sIExFRC4KKzAwMTM2OSAgICAgKGJhc2UgMTYpCQlIb25kYSBFbGVjdHJvbiBDby4sIExFRC4KKwkJCQlLYW5lbWF0c3UgQnVpbGRpbmcgMyBGbG9vcgorCQkJCTItMTQtMSwgS3lvYmFzaGkgIAorCQkJCUNodW8ta3UgVG9reW8gMTA0LTAwMzEKKwkJCQlKQVBBTgorCiswMC0xMy02QSAgIChoZXgpCQlIYWNoIExhbmdlIFNBCiswMDEzNkEgICAgIChiYXNlIDE2KQkJSGFjaCBMYW5nZSBTQQorCQkJCTYsIHJvdXRlIGRlIENvbXBvaXMKKwkJCQlDUCAyMTIKKwkJCQlWRVNFTkFaIEdFTkVWQSAxMjIyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTMtNkIgICAoaGV4KQkJRS1URUMKKzAwMTM2QiAgICAgKGJhc2UgMTYpCQlFLVRFQworCQkJCTItMTctMTQtNTAzIEhha2F0YWVraW1hZQorCQkJCUhha2F0YWt1IEZ1a3Vva2FzaGkKKwkJCQlGdWt1b2thIEZ1a3Vva2FrZW4gODEyLTAwMTEKKwkJCQlKQVBBTgorCiswMC0xMy02QyAgIChoZXgpCQlUb21Ub20KKzAwMTM2QyAgICAgKGJhc2UgMTYpCQlUb21Ub20KKwkJCQlPb3N0ZXJkb2tzc3RyYWF0IDExNAorCQkJCTEwMTEgREsgQW1zdGVyZGFtIAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTEzLTZEICAgKGhleCkJCVRlbnRhY3VsdXMgQUIKKzAwMTM2RCAgICAgKGJhc2UgMTYpCQlUZW50YWN1bHVzIEFCCisJCQkJU3R1ZGllZ2FuZ2VuIDMKKwkJCQlPc3RlcnN1bmQgSmFtdGxhbmQgU0UgLSA4MzEgNDAKKwkJCQlTV0VERU4KKworMDAtMTMtNkUgICAoaGV4KQkJVGVjaG1ldHJvIENvcnAuCiswMDEzNkUgICAgIChiYXNlIDE2KQkJVGVjaG1ldHJvIENvcnAuCisJCQkJNEYuIERvbmdhbSBCL0QuLCAyNjQtNSwgWWFuZ0phZS1Eb25nCisJCQkJU2VvY2hvLUt1CisJCQkJU2VvdWwgIDEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtNkYgICAoaGV4KQkJUGFja2V0TW90aW9uLCBJbmMuCiswMDEzNkYgICAgIChiYXNlIDE2KQkJUGFja2V0TW90aW9uLCBJbmMuCisJCQkJMjEyMSBFbCBDYW1pbm8gUmVhbAorCQkJCTEwdGggRmxvb3IKKwkJCQlTYW4gTWF0ZW8gQ0EgOTQ0MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTcwICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDEzNzAgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTEzLTcxICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDEzNzEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy03MiAgIChoZXgpCQlEZWxsIEluYy4KKzAwMTM3MiAgICAgKGJhc2UgMTYpCQlEZWxsIEluYy4KKwkJCQlPbmUgRGVsbCBXYXkKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy03MyAgIChoZXgpCQlCTHdhdmUgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzAwMTM3MyAgICAgKGJhc2UgMTYpCQlCTHdhdmUgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKwkJCQkyM0ZHSCwgQmxvY2sgQSxaaGVuWWUgQnVpbGRpbmcgLCBCYW9BbiBOYW4gUm9hZCAsIEx1b0h1ICwgU2hlbnpoZW4gLCBDaGluYQorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCiswMC0xMy03NCAgIChoZXgpCQlBdGhlcm9zIENvbW11bmljYXRpb25zLCBJbmMuCiswMDEzNzQgICAgIChiYXNlIDE2KQkJQXRoZXJvcyBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTU0ODAgR3JlYXQgQW1lcmljYSBQYXJrd2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTc1ICAgKGhleCkJCUFtZXJpY2FuIFNlY3VyaXR5IFByb2R1Y3RzIENvLgorMDAxMzc1ICAgICAoYmFzZSAxNikJCUFtZXJpY2FuIFNlY3VyaXR5IFByb2R1Y3RzIENvLgorCQkJCTExOTI1IFBhY2lmaWMgYXZlLgorCQkJCUZvbnRhbmEgQ0EgOTIzMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTc2ICAgKGhleCkJCVRhYm9yIEVsZWN0cm9uaWNzIEx0ZC4KKzAwMTM3NiAgICAgKGJhc2UgMTYpCQlUYWJvciBFbGVjdHJvbmljcyBMdGQuCisJCQkJOSBIYXRhdHNpYSBTdC4KKwkJCQlUZWwgSGFuYW4gIDIwMzAyCisJCQkJSVNSQUVMCisKKzAwLTEzLTc3ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ08uLCBMVEQKKzAwMTM3NyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENPLiwgTFRECisJCQkJNDE2LCBNYWV0YW4gM0RvbmcsIFllb25ndG9uZy1HdQorCQkJCVN1d29uIENpdHksIEdleW9uZ2dpIERvLCBLb3JlYQorCQkJCVN1d29uIEdleW9uZ2dpIDQ0Mzc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy03OCAgIChoZXgpCQlRU0FOIFRlY2hub2xvZ3ksIEluYy4KKzAwMTM3OCAgICAgKGJhc2UgMTYpCQlRU0FOIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyRi4sIE5vLjMxLCBMYW5lIDU4MywgUnVlaUd1YW5nIFJkLiwgTmVpaHUgRGlzdC4KKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtNzkgICAoaGV4KQkJUE9OREVSIElORk9STUFUSU9OIElORFVTVFJJRVMgTFRELgorMDAxMzc5ICAgICAoYmFzZSAxNikJCVBPTkRFUiBJTkZPUk1BVElPTiBJTkRVU1RSSUVTIExURC4KKwkJCQkxNEYsTm8uNzcsbGFuZTcwMCwgQ2h1bmctQ2hlbmcgUm9hZAorCQkJCUhzaW4tVGllbiBDaXR5IFRhaXBlaSBIc2llbiAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLTdBICAgKGhleCkJCU5ldHZveCBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxMzdBICAgICAoYmFzZSAxNikJCU5ldHZveCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLjIxLTEgU2VjLiAxIENodW5nIEh1YSBXZXN0IFJvYWQKKwkJCQlUYWluYW4gIDcwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtN0IgICAoaGV4KQkJTW92b24gQ29ycG9yYXRpb24KKzAwMTM3QiAgICAgKGJhc2UgMTYpCQlNb3ZvbiBDb3Jwb3JhdGlvbgorCQkJCTV0aCwgSHl1bmp1ayBCL0QKKwkJCQkxNDAtMjgsIFNhbXN1bmctZG9uZywgS2FuZ25hbS1rdQorCQkJCVNlb3VsICAxMzUtMDkyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLTdDICAgKGhleCkJCUthaWNvbSBjby4sIEx0ZC4KKzAwMTM3QyAgICAgKGJhc2UgMTYpCQlLYWljb20gY28uLCBMdGQuCisJCQkJIzEwOSwgR2F5YW5nIFRlY2hubyBUb3duIDE0ODcsIEdheWFuZy1kb25nLEthbmdzby1ndQorCQkJCVNlb3VsICAxNTctODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLTdEICAgKGhleCkJCUR5bmFsYWIsIEluYy4KKzAwMTM3RCAgICAgKGJhc2UgMTYpCQlEeW5hbGFiLCBJbmMuCisJCQkJNTU1IExhbmNhc3RlciBBdmUuCisJCQkJUmV5bm9sZHNidXJnIE9IIDQzMDY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy03RSAgIChoZXgpCQlDb3JFZGdlIE5ldHdvcmtzLCBJbmMuCiswMDEzN0UgICAgIChiYXNlIDE2KQkJQ29yRWRnZSBOZXR3b3JrcywgSW5jLgorCQkJCTc2MDAgQm9vbmUgQXZlIE4KKwkJCQlTdWl0ZSAxCisJCQkJQnJvb2tseW4gUGFyayBNTiA1NTQyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtN0YgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMzdGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtODAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxMzgwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtODEgICAoaGV4KQkJQ0hJUFMgJiBTeXN0ZW1zLCBJbmMuCiswMDEzODEgICAgIChiYXNlIDE2KQkJQ0hJUFMgJiBTeXN0ZW1zLCBJbmMuCisJCQkJNDc1MCBQYXRyaWNrIEhlbnJ5IERyaXZlCisJCQkJU2FudGEgQ2xhcmEgQ2FsaWZvcm5pYSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtODIgICAoaGV4KQkJQ2V0YWNlYSBOZXR3b3JrcyBDb3Jwb3JhdGlvbgorMDAxMzgyICAgICAoYmFzZSAxNikJCUNldGFjZWEgTmV0d29ya3MgQ29ycG9yYXRpb24KKwkJCQkzNzA4IFdlc3QgMzZ0aCBBdmVudWUKKwkJCQlWYW5jb3V2ZXIgQnJpdGlzaCBDb2x1bWJpYSBWNk4gMlM0CisJCQkJQ0FOQURBCisKKzAwLTEzLTgzICAgKGhleCkJCUFwcGxpY2F0aW9uIFRlY2hub2xvZ2llcyBhbmQgRW5naW5lZXJpbmcgUmVzZWFyY2ggTGFib3JhdG9yeQorMDAxMzgzICAgICAoYmFzZSAxNikJCUFwcGxpY2F0aW9uIFRlY2hub2xvZ2llcyBhbmQgRW5naW5lZXJpbmcgUmVzZWFyY2ggTGFib3JhdG9yeQorCQkJCVNoaW5qdWt1IDEtY2hvbWUgQmxkZy4KKwkJCQkxLTEwLTQsIFNoaW5qdWt1CisJCQkJU2hpbmp1a3Uta3UgVG9reW8gMTYwLTAwMjIKKwkJCQlKQVBBTgorCiswMC0xMy04NCAgIChoZXgpCQlBZHZhbmNlZCBNb3Rpb24gQ29udHJvbHMKKzAwMTM4NCAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBNb3Rpb24gQ29udHJvbHMKKwkJCQkzODA1IENhbGxlIFRlY2F0ZQorCQkJCUNhbWFyaWxsbyBDYWxpZm9ybmlhIDkzMDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy04NSAgIChoZXgpCQlBZGQtT24gVGVjaG5vbG9neSBDby4sIExURC4KKzAwMTM4NSAgICAgKGJhc2UgMTYpCQlBZGQtT24gVGVjaG5vbG9neSBDby4sIExURC4KKwkJCQkxRiwgTm8uMTEsIExhbmUgMjA2LCBEYS1BbiBSb2FkIFNlYy4gMSwKKwkJCQlUYWlwZWkgIDEwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtODYgICAoaGV4KQkJQUJCIEluYy4vVG90YWxmbG93CiswMDEzODYgICAgIChiYXNlIDE2KQkJQUJCIEluYy4vVG90YWxmbG93CisJCQkJNzA1MSBJbmR1c3RyaWFsIEJsdmQuCisJCQkJQmFydGxlc3ZpbGxlIE9LIDc0MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy04NyAgIChoZXgpCQkyN00gVGVjaG5vbG9naWVzIEFCCiswMDEzODcgICAgIChiYXNlIDE2KQkJMjdNIFRlY2hub2xvZ2llcyBBQgorCQkJCURpc2tldHRnYXRhbiAxMQorCQkJCUxpbmvDtnBpbmcgIFMtNTgzIDM1CisJCQkJU1dFREVOCisKKzAwLTEzLTg4ICAgKGhleCkJCVdpTWVkaWEgQWxsaWFuY2UKKzAwMTM4OCAgICAgKGJhc2UgMTYpCQlXaU1lZGlhIEFsbGlhbmNlCisJCQkJMjQwMCBDYW1pbm8gUmFtb24KKwkJCQlTdWl0ZSAzNzUKKwkJCQlTYW4gUmFtb24gQ0EgOTQ1ODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTg5ICAgKGhleCkJCVJlZGVzIGRlIFRlbGVmb27DrWEgTcOzdmlsIFMuQS4KKzAwMTM4OSAgICAgKGJhc2UgMTYpCQlSZWRlcyBkZSBUZWxlZm9uw61hIE3Ds3ZpbCBTLkEuCisJCQkJQy9QdWVydG8gZGUgbGEgTW9yY3VlcmEgMTQgQjQKKwkJCQlMZWdhbsOpcyBNYWRyaWQgMjg5MTgKKwkJCQlTUEFJTgorCiswMC0xMy04QSAgIChoZXgpCQlRSU5HREFPIEdPRVJURUsgRUxFQ1RST05JQ1MgQ08uLExURC4KKzAwMTM4QSAgICAgKGJhc2UgMTYpCQlRSU5HREFPIEdPRVJURUsgRUxFQ1RST05JQ1MgQ08uLExURC4KKwkJCQlSb29tIDYwNSxJbm5vdmF0aW9uIEJ1aWxkaW5nLEhpLXRlY2ggSW5kdXN0cmlhbCBQYXJrLAorCQkJCVFJTkdEQU8gU0hBTkRPTkcgMjY2MDYxCisJCQkJQ0hJTkEKKworMDAtMTMtOEIgICAoaGV4KQkJUGhhbnRvbSBUZWNobm9sb2dpZXMgTExDCiswMDEzOEIgICAgIChiYXNlIDE2KQkJUGhhbnRvbSBUZWNobm9sb2dpZXMgTExDCisJCQkJNzgyNSBGYXkgQXZlbnVlLCBTdWl0ZSAyMDAKKwkJCQlMYSBKb2xsYSBDQSA5MjAzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtOEMgICAoaGV4KQkJS3VteW91bmcuQ28uTHRkCiswMDEzOEMgICAgIChiYXNlIDE2KQkJS3VteW91bmcuQ28uTHRkCisJCQkJU2VvdWwgS1kgYnVpbGRpbmcsIDQwLTE3IEhhbmdhbmcgUm8sIDNHYSwgWW91bmdzYW4tR3UKKwkJCQlTZW91bCAgMTQwLTg4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xMy04RCAgIChoZXgpCQlLaW5naG9sZAorMDAxMzhEICAgICAoYmFzZSAxNikJCUtpbmdob2xkCisJCQkJMTFGLCBOby4gOTY1LCBKdW5namVuZyBSZC4KKwkJCQlKdW5naGUgVGFpcGVpIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtOEUgICAoaGV4KQkJRk9BQiBFbGVrdHJvbmlrIEFCCiswMDEzOEUgICAgIChiYXNlIDE2KQkJRk9BQiBFbGVrdHJvbmlrIEFCCisJCQkJU2Fua3QgSm9yZ2VucyBWYWcgOAorCQkJCUdvdGhlbmJ1cmcgIDQyMiA0OQorCQkJCVNXRURFTgorCiswMC0xMy04RiAgIChoZXgpCQlBc2lhcm9jayBJbmNvcnBvcmF0aW9uCiswMDEzOEYgICAgIChiYXNlIDE2KQkJQXNpYXJvY2sgSW5jb3Jwb3JhdGlvbgorCQkJCVAuTy4gQm94OTU3LCBPZmZzaG9yZSBJbmNvcnBvcmF0aW9ucyBDZW50cmUKKwkJCQlSb2FkIFRvd24gVG9ydG9sYSAKKwkJCQlWSVJHSU4gSVNMQU5EUywgQlJJVElTSAorCiswMC0xMy05MCAgIChoZXgpCQlUZXJtdGVrIENvbXB1dGVyIENvLiwgTHRkCiswMDEzOTAgICAgIChiYXNlIDE2KQkJVGVybXRlayBDb21wdXRlciBDby4sIEx0ZAorCQkJCTJGLCBOby4gMTAwLCBMaSBEZSBTdC4sCisJCQkJQ2h1bmcgSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy05MSAgIChoZXgpCQlPVUVOIENPLixMVEQuCiswMDEzOTEgICAgIChiYXNlIDE2KQkJT1VFTiBDTy4sTFRELgorCQkJCUdvdGFuZGEgTlQgQmxkZy43RiwKKwkJCQk1LTIgSGlnYXNoaSBHb3RhbmRhIDQtY2hvbWUKKwkJCQlTaGluYWdhd2Eta3UgVG9reW8gMTQxLTAwMjIKKwkJCQlKQVBBTgorCiswMC0xMy05MiAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzAwMTM5MiAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmVudWUKKwkJCQlTdWl0ZSAxMDEKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLTkzICAgKGhleCkJCVBhbnRhIFN5c3RlbXMsIEluYy4KKzAwMTM5MyAgICAgKGJhc2UgMTYpCQlQYW50YSBTeXN0ZW1zLCBJbmMuCisJCQkJMjA0NTAgU3RldmVucyBDcmVlayBCbHZkLgorCQkJCVN1aXRlIDQwMAorCQkJCUN1cGVydGlubyBDYWxpZm9ybmlhIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy05NCAgIChoZXgpCQlJbmZvaGFuZCBDby4sTHRkCiswMDEzOTQgICAgIChiYXNlIDE2KQkJSW5mb2hhbmQgQ28uLEx0ZAorCQkJCUtyYW56LVRlY2hubyAjMTIwNywgNTQ0Mi0xLCBTYW5nZGFld29uLWRvbmcsIEp1bmd3b24tZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjItODE5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLTk1ICAgKGhleCkJCWNvbmdhdGVjIEFHCiswMDEzOTUgICAgIChiYXNlIDE2KQkJY29uZ2F0ZWMgQUcKKwkJCQlBdXdpZXNlbnN0cmFzc2UgNQorCQkJCURlZ2dlbmRvcmYgIDk0NDY5CisJCQkJR0VSTUFOWQorCiswMC0xMy05NiAgIChoZXgpCQlBY2JlbCBQb2x5dGVjaCBJbmMuCiswMDEzOTYgICAgIChiYXNlIDE2KQkJQWNiZWwgUG9seXRlY2ggSW5jLgorCQkJCU5vLjE1OSxTZWMuMywgVGFtLUtpbmcgUmQuLAorCQkJCVRhbXN1aSBUYWlwZWkgMjUxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy05NyAgIChoZXgpCQlYc2lnbyBTeXN0ZW1zLCBJbmMuCiswMDEzOTcgICAgIChiYXNlIDE2KQkJWHNpZ28gU3lzdGVtcywgSW5jLgorCQkJCTk0MCBTdGV3YXJ0IERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy05OCAgIChoZXgpCQlUcmFmZmljU2ltIENvLixMdGQKKzAwMTM5OCAgICAgKGJhc2UgMTYpCQlUcmFmZmljU2ltIENvLixMdGQKKwkJCQkyMy05IE1pdGEtYmlydSAyRiwgQ2hpeW9kYSAzLWNob21lCisJCQkJTmFrYS1rdSwgTmFnb3lhCisJCQkJQWljaGkgTm9uIDQ2MC0wMDEyCisJCQkJSkFQQU4KKworMDAtMTMtOTkgICAoaGV4KQkJU1RBQyBDb3Jwb3JhdGlvbi4KKzAwMTM5OSAgICAgKGJhc2UgMTYpCQlTVEFDIENvcnBvcmF0aW9uLgorCQkJCTItMTYtMzcsZnVqaW1pCisJCQkJc2F5YW1hLXNoaSBzYWl0YW1hIDM1MC0xMzA2CisJCQkJSkFQQU4KKworMDAtMTMtOUEgICAoaGV4KQkJSy11YmlxdWUgSUQgQ29ycC4KKzAwMTM5QSAgICAgKGJhc2UgMTYpCQlLLXViaXF1ZSBJRCBDb3JwLgorCQkJCVlhbWFzYW4gQmxkZy44RiwKKwkJCQlOaWhvbmJhc2hpIEhvbmNobzItNi0xMworCQkJCUNodW8ta3UgVG9reW8gMTAzLTAwMjMKKwkJCQlKQVBBTgorCiswMC0xMy05QiAgIChoZXgpCQlpb0lNQUdFIEx0ZC4KKzAwMTM5QiAgICAgKGJhc2UgMTYpCQlpb0lNQUdFIEx0ZC4KKwkJCQkzIE1hc2tpdCBTdHJlZXQKKwkJCQlIZXJ6bGl5YSBQaXR1YWNoIElMIDQ2NzMzCisJCQkJSVNSQUVMCisKKzAwLTEzLTlDICAgKGhleCkJCUV4YXZlcmEgVGVjaG5vbG9naWVzLCBJbmMuCiswMDEzOUMgICAgIChiYXNlIDE2KQkJRXhhdmVyYSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxOTUgTmV3IEhhbXBzaGlyZSBBdmVudWUKKwkJCQlTdWl0ZSAxNTUKKwkJCQlQb3J0c21vdXRoIE5IIDAzODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy05RCAgIChoZXgpCQlNYXJ2ZWxsIEhpc3BhbmEgUy5MLiAKKzAwMTM5RCAgICAgKGJhc2UgMTYpCQlNYXJ2ZWxsIEhpc3BhbmEgUy5MLiAKKwkJCQlDLyBDaGFybGVzIFJvYmVydCBEYXJ3aW4sIDIKKwkJCQlQYXJjIFRlY25vbG9naWMgUGF0ZXJuYSA0Njk4MAorCQkJCVNQQUlOCisKKzAwLTEzLTlFICAgKGhleCkJCUNpYXJhIFRlY2hub2xvZ2llcyBJbmMuCiswMDEzOUUgICAgIChiYXNlIDE2KQkJQ2lhcmEgVGVjaG5vbG9naWVzIEluYy4KKwkJCQk5MzAwIFRyYW5zIENhbmFkYSBIaWdod2F5CisJCQkJU2FpbnQtTGF1cmVudCBRdWViZWMgSDRTIDFLNQorCQkJCUNBTkFEQQorCiswMC0xMy05RiAgIChoZXgpCQlFbGVjdHJvbmljcyBEZXNpZ24gU2VydmljZXMsIENvLiwgTHRkLgorMDAxMzlGICAgICAoYmFzZSAxNikJCUVsZWN0cm9uaWNzIERlc2lnbiBTZXJ2aWNlcywgQ28uLCBMdGQuCisJCQkJNS0xMC0yMCBUb2t1bWFydQorCQkJCUl0YWJhc2hpLWt1IFRva3lvIDE3NS0wMDgzCisJCQkJSkFQQU4KKworMDAtMTMtQTAgICAoaGV4KQkJQUxHT1NZU1RFTSBDby4sIEx0ZC4KKzAwMTNBMCAgICAgKGJhc2UgMTYpCQlBTEdPU1lTVEVNIENvLiwgTHRkLgorCQkJCTY1NiBrb2JpcmFvIG1paGFyYS1jaG8KKwkJCQlzYWthaSBvc2FrYSA1ODctMDAyMQorCQkJCUpBUEFOCisKKzAwLTEzLUExICAgKGhleCkJCUNyb3cgRWxlY3Ryb25pYyBFbmdlbmVlcmluZworMDAxM0ExICAgICAoYmFzZSAxNikJCUNyb3cgRWxlY3Ryb25pYyBFbmdlbmVlcmluZworCQkJCTEyIEtpbm5lcmV0IHN0LgorCQkJCUFpcnBvcnQgQ2l0eSAgCisJCQkJSVNSQUVMCisKKzAwLTEzLUEyICAgKGhleCkJCU1heFN0cmVhbSwgSW5jCiswMDEzQTIgICAgIChiYXNlIDE2KQkJTWF4U3RyZWFtLCBJbmMKKwkJCQkzNTUgU291dGggNTIwIFdlc3QgU3VpdGUgMTgwCisJCQkJTGluZG9uIFV0IDg0MDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1BMyAgIChoZXgpCQlTaWVtZW5zIENvbSBDUEUgRGV2aWNlcworMDAxM0EzICAgICAoYmFzZSAxNikJCVNpZW1lbnMgQ29tIENQRSBEZXZpY2VzCisJCQkJNDg0OSBBbHBoYSBSb2FkCisJCQkJRGFsbGFzIFRleGFzIDc1MjQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1BNCAgIChoZXgpCQlLZXlFeWUgQ29tbXVuaWNhdGlvbnMKKzAwMTNBNCAgICAgKGJhc2UgMTYpCQlLZXlFeWUgQ29tbXVuaWNhdGlvbnMKKwkJCQk5Nzg1IEdvZXRoZQorCQkJCVNhY3JhbWVudG8gQ0EgOTU4MjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUE1ICAgKGhleCkJCUdlbmVyYWwgU29sdXRpb25zLCBMVEQuCiswMDEzQTUgICAgIChiYXNlIDE2KQkJR2VuZXJhbCBTb2x1dGlvbnMsIExURC4KKwkJCQk1OTAyIFNvdmVyZWlnbiBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUE2ICAgKGhleCkJCUV4dHJpY29tIEx0ZAorMDAxM0E2ICAgICAoYmFzZSAxNikJCUV4dHJpY29tIEx0ZAorCQkJCUdsaWwgWWFtCisJCQkJSGVyemxpYSAgNDY5MDUKKwkJCQlJU1JBRUwKKworMDAtMTMtQTcgICAoaGV4KQkJQkFUVEVMTEUgTUVNT1JJQUwgSU5TVElUVVRFCiswMDEzQTcgICAgIChiYXNlIDE2KQkJQkFUVEVMTEUgTUVNT1JJQUwgSU5TVElUVVRFCisJCQkJNTA1IEtJTkcgQVZFCisJCQkJQ09MVU1CVVMgT0hJTyA0MzIwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQTggICAoaGV4KQkJVGFuaXN5cyBUZWNobm9sb2d5CiswMDEzQTggICAgIChiYXNlIDE2KQkJVGFuaXN5cyBUZWNobm9sb2d5CisJCQkJMTIyMDEgVGVjaG5vbG9neSBCbHZkLgorCQkJCVN1aXRlIDEyNQorCQkJCUF1c3RpbiBUWCA3ODcyNy02NjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1BOSAgIChoZXgpCQlTb255IENvcnBvcmF0aW9uCiswMDEzQTkgICAgIChiYXNlIDE2KQkJU29ueSBDb3Jwb3JhdGlvbgorCQkJCUdvdGVueWFtYSBUZWMgNS0xLTIKKwkJCQlLaXRhc2hpbmFnYXdhLAorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAwMQorCQkJCUpBUEFOCisKKzAwLTEzLUFBICAgKGhleCkJCUFMUyAgJiBURUMgTHRkLgorMDAxM0FBICAgICAoYmFzZSAxNikJCUFMUyAgJiBURUMgTHRkLgorCQkJCTYgQi4gS2F6YWNoeWEgc3RyLgorCQkJCVNhcmF0b3YgU2FyYXRvdiByZWdpb24gNDEwNjAwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTEzLUFCICAgKGhleCkJCVRlbGVtb3RpdmUgQUcKKzAwMTNBQiAgICAgKGJhc2UgMTYpCQlUZWxlbW90aXZlIEFHCisJCQkJQnJlaXR3aWVzZW4KKwkJCQlNdWVobGhhdXNlbiBCYWRlbiBXdWVydHRlbWJlcmcgNzMzNDcKKwkJCQlHRVJNQU5ZCisKKzAwLTEzLUFDICAgKGhleCkJCVN1bm15dW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECiswMDEzQUMgICAgIChiYXNlIDE2KQkJU3VubXl1bmcgRWxlY3Ryb25pY3MgQ28uLCBMVEQKKwkJCQlMQVJHTy1QTEFaQSA4RiwgSmFuZ2hhbmctRG9uZworCQkJCTg1Ny0xLCBJbHNhbi1LdQorCQkJCUtveWFuZyBLeXVuZ2tpIDQxMS04MzcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtQUQgICAoaGV4KQkJU2VuZG8gTHRkCiswMDEzQUQgICAgIChiYXNlIDE2KQkJU2VuZG8gTHRkCisJCQkJSGF0Y2hmb3JkIEJyb29rCisJCQkJSGF0Y2hmb3JkIFdheQorCQkJCUJpcm1pbmdoYW0gV2VzdCBNaWRsYW5kcyBCMjYgM1JaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTMtQUUgICAoaGV4KQkJUmFkaWFuY2UgVGVjaG5vbG9naWVzLCBJbmMuCiswMDEzQUUgICAgIChiYXNlIDE2KQkJUmFkaWFuY2UgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMzUwIFd5bm4gRHIuCisJCQkJSHVudHN2aWxsZSBBbGFiYW1hIDM1ODA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1BRiAgIChoZXgpCQlOVU1BIFRlY2hub2xvZ3ksSW5jLgorMDAxM0FGICAgICAoYmFzZSAxNikJCU5VTUEgVGVjaG5vbG9neSxJbmMuCisJCQkJNEYsTm83NzgsU2VjIDQsUGF0Y2ggUmQuCisJCQkJVGFpcGVpICAxMTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLUIwICAgKGhleCkJCUphYmxvdHJvbgorMDAxM0IwICAgICAoYmFzZSAxNikJCUphYmxvdHJvbgorCQkJCVBvZCBTa2Fsa291IDMzCisJCQkJSmFibG9uZWMgbmFkIE5pc291ICA0NjYwMQorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTEzLUIxICAgKGhleCkJCUludGVsbGlnZW50IENvbnRyb2wgU3lzdGVtcyAoQXNpYSkgUHRlIEx0ZAorMDAxM0IxICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IENvbnRyb2wgU3lzdGVtcyAoQXNpYSkgUHRlIEx0ZAorCQkJCTcwIFViaSBDcmVzY2VudCAjMDEtMTIKKwkJCQlVYmkgVGVjaCBQYXJrCisJCQkJNDA4NTcwCisJCQkJU0lOR0FQT1JFCisKKzAwLTEzLUIyICAgKGhleCkJCUNhcmFsbG9uIExpbWl0ZWQKKzAwMTNCMiAgICAgKGJhc2UgMTYpCQlDYXJhbGxvbiBMaW1pdGVkCisJCQkJU3R1ZGlvIEcyMCBTaGVwaGVyZHMgQnVpbGRpbmcKKwkJCQlSb2NrbGV5IFJvYWQKKwkJCQlMb25kb24gVzE0IDBEQQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEzLUIzICAgKGhleCkJCUVjb20gQ29tbXVuaWNhdGlvbnMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTNCMyAgICAgKGJhc2UgMTYpCQlFY29tIENvbW11bmljYXRpb25zIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJRmxvb3IgNywgTWFjaGluZXJ5IEluZHVzdHJ5IEJ1aWxkaW5nLCBOby4yMiwKKwkJCQlCYWl3YW56aHVhbmcgU3RyZWV0LCBYaWNoZW5nIERpc3RyaWN0CisJCQkJQmVpamluZyAgCisJCQkJQ0hJTkEKKworMDAtMTMtQjQgICAoaGV4KQkJQXBwZWFyIFRWCiswMDEzQjQgICAgIChiYXNlIDE2KQkJQXBwZWFyIFRWCisJCQkJTGlsbGVha2VydmVpZW4gNmQKKwkJCQlQLk8uIEJveCA4IExpbGxlYWtlcgorCQkJCU5PLTAyMTYgT3NsbyAKKwkJCQlOT1JXQVkKKworMDAtMTMtQjUgICAoaGV4KQkJV2F2ZXNhdAorMDAxM0I1ICAgICAoYmFzZSAxNikJCVdhdmVzYXQKKwkJCQkxMzc1LCBUcmFucy1DYW5hZGEgSGlnaHdheQorCQkJCVN1aXRlIDMwMAorCQkJCURvcnZhbCBRdWViZWMgSDlQIDJXOAorCQkJCUNBTkFEQQorCiswMC0xMy1CNiAgIChoZXgpCQlTbGluZyBNZWRpYSwgSW5jLgorMDAxM0I2ICAgICAoYmFzZSAxNikJCVNsaW5nIE1lZGlhLCBJbmMuCisJCQkJMTg0MCBHYXRld2F5IENlbnRlcgorCQkJCTJuZCBGbG9vcgorCQkJCVNhbiBNYXRlbyBDQSA5NDQwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtQjcgICAoaGV4KQkJU2NhbnRlY2ggSUQKKzAwMTNCNyAgICAgKGJhc2UgMTYpCQlTY2FudGVjaCBJRAorCQkJCUFtZXJzZm9vcnRzZXN0cmFhdCAxMjQKKwkJCQlTb2VzdGVyYmVyZyBVdHJlY2h0IDM3NjkgQU4KKwkJCQlORVRIRVJMQU5EUworCiswMC0xMy1COCAgIChoZXgpCQlSeUNvIEVsZWN0cm9uaWMgU3lzdGVtcyBMaW1pdGVkCiswMDEzQjggICAgIChiYXNlIDE2KQkJUnlDbyBFbGVjdHJvbmljIFN5c3RlbXMgTGltaXRlZAorCQkJCVVuaXQgRSwgQ2FydGVsIEJ1c2luZXNzIEVzdGF0ZQorCQkJCUVkaW5idXJnaCBXYXkKKwkJCQlIYXJsb3cgRXNzZXggQ00yMCAyVFQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xMy1COSAgIChoZXgpCQlCTSBTUEEKKzAwMTNCOSAgICAgKGJhc2UgMTYpCQlCTSBTUEEKKwkJCQlWSUEgTUlMQU5PIDU0LzU2CisJCQkJUm96emFubyAgMjAwODkKKwkJCQlJVEFMWQorCiswMC0xMy1CQSAgIChoZXgpCQlSZWFkeUxpbmtzIEluYworMDAxM0JBICAgICAoYmFzZSAxNikJCVJlYWR5TGlua3MgSW5jCisJCQkJNjU5NSBFZGVudmFsZSBCb3VsZXZhcmQKKwkJCQlTdWl0ZSAxODAKKwkJCQlFZGVuIFByYWlyaWUgTU4gNTUzNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUJCICAgKGhleCkJCVNtYXJ0dnVlIENvcnBvcmF0aW9uCiswMDEzQkIgICAgIChiYXNlIDE2KQkJU21hcnR2dWUgQ29ycG9yYXRpb24KKwkJCQkxMDIgV29vZG1vbnQgQm91bGV2YXJkCisJCQkJU3VpdGUgMjAwCisJCQkJTmFzaHZpbGxlIFROIDM3MjA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1CQyAgIChoZXgpCQlBcnRpbWkgTHRkCiswMDEzQkMgICAgIChiYXNlIDE2KQkJQXJ0aW1pIEx0ZAorCQkJCUJldGplbWFuIEhvdXNlCisJCQkJMTA0IEhpbGxzIFJvYWQKKwkJCQlDYW1icmlkZ2UgQ2FtYnJpZGdlc2hpcmUgQ0IyIDFMUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTEzLUJEICAgKGhleCkJCUhZTUFUT00gU0EKKzAwMTNCRCAgICAgKGJhc2UgMTYpCQlIWU1BVE9NIFNBCisJCQkJWm9uZSBJbmR1c3RyaWVsbGUKKwkJCQkxNzUgcnVlIGRlIE1hc3NhY2FuCisJCQkJVkVOREFSR1VFUyBIRVJBVUxUIDM0NzQwCisJCQkJRlJBTkNFCisKKzAwLTEzLUJFICAgKGhleCkJCVZpcnR1YWwgQ29uZXhpb25zCiswMDEzQkUgICAgIChiYXNlIDE2KQkJVmlydHVhbCBDb25leGlvbnMKKwkJCQk0MTAgcnVlIFN0LU5pY29sYXMsIHN1aXRlIDYwMAorCQkJCU1vbnRyw6lhbCBRdcOpYmVjIEgyWSAyUDUKKwkJCQlDQU5BREEKKworMDAtMTMtQkYgICAoaGV4KQkJTWVkaWEgU3lzdGVtIFBsYW5uaW5nIENvcnAuCiswMDEzQkYgICAgIChiYXNlIDE2KQkJTWVkaWEgU3lzdGVtIFBsYW5uaW5nIENvcnAuCisJCQkJNEYgVmVsY28tS3Vyb21vbiBCbGRnLgorCQkJCTMtMTQtNSBVZW5vLAorCQkJCVRhaXRvLWt1LCBUb2t5byAxMTAtMDAwNQorCQkJCUpBUEFOCisKKzAwLTEzLUMwICAgKGhleCkJCVRyaXggVGVjbm9sb2dpYSBMdGRhLgorMDAxM0MwICAgICAoYmFzZSAxNikJCVRyaXggVGVjbm9sb2dpYSBMdGRhLgorCQkJCVJ1YSBkYSBQYXosIDE5NTcgLSBDaMOhY2FyYSBTYW50byBBbnTDtG5pbworCQkJCVPDo28gUGF1bG8gIDA0NzEzLTAwMgorCQkJCUJSQVpJTAorCiswMC0xMy1DMSAgIChoZXgpCQlBc29rYSBVU0EgQ29ycG9yYXRpb24KKzAwMTNDMSAgICAgKGJhc2UgMTYpCQlBc29rYSBVU0EgQ29ycG9yYXRpb24KKwkJCQk1NTggUGlsZ3JpbSBEcml2ZQorCQkJCVVuaXQgSAorCQkJCUZvc3RlciBDaXR5IENBIDk0NDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1DMiAgIChoZXgpCQlXQUNPTSBDby4sTHRkCiswMDEzQzIgICAgIChiYXNlIDE2KQkJV0FDT00gQ28uLEx0ZAorCQkJCTItNTEwLTEgVG95b25vZGFpIE90b25lLW1hY2hpCisJCQkJS2l0YXNhaXRhbWEtZ3VuIFNhaXRhbWEgMzQ5LTExNDgKKwkJCQlKQVBBTgorCiswMC0xMy1DMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDEzQzMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1DNCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDEzQzQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1DNSAgIChoZXgpCQlMSUdIVFJPTiBGSUJFUi1PUFRJQyBERVZJQ0VTIElOQy4KKzAwMTNDNSAgICAgKGJhc2UgMTYpCQlMSUdIVFJPTiBGSUJFUi1PUFRJQyBERVZJQ0VTIElOQy4KKwkJCQk1MS0xIE1vb25weXVuZy1Eb25nLCBUYWVkdWNrLUd1CisJCQkJVGFlam9uIDMwNi0yMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtQzYgICAoaGV4KQkJT3BlbkdlYXIsIEluYworMDAxM0M2ICAgICAoYmFzZSAxNikJCU9wZW5HZWFyLCBJbmMKKwkJCQk3OTg0IFNvdXRoIFdlbGJ5IFBhcmsgIzEwMQorCQkJCVNhbHQgTGFrZSBDaXR5IFVUQUggODQwODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUM3ICAgKGhleCkJCUlPTk9TIENvLixMdGQuCiswMDEzQzcgICAgIChiYXNlIDE2KQkJSU9OT1MgQ28uLEx0ZC4KKwkJCQkxLTM2LTE4IE1peWFzYWthCisJCQkJU2V0YWdheWEta3UgVG9reW8gMTU2LTAwNTEKKwkJCQlKQVBBTgorCiswMC0xMy1DOCAgIChoZXgpCQlBREIgQnJvYWRiYW5kIEl0YWxpYQorMDAxM0M4ICAgICAoYmFzZSAxNikJCUFEQiBCcm9hZGJhbmQgSXRhbGlhCisJCQkJVklBTEUgU0FSQ0EgMjIyCisJCQkJTUlMQU5PICAyMDEyNgorCQkJCUlUQUxZCisKKzAwLTEzLUM5ICAgKGhleCkJCUJleW9uZCBBY2hpZXZlIEVudGVycHJpc2VzIEx0ZC4KKzAwMTNDOSAgICAgKGJhc2UgMTYpCQlCZXlvbmQgQWNoaWV2ZSBFbnRlcnByaXNlcyBMdGQuCisJCQkJCisJCQkJUC5PLiBCb3ggOTU3LCBPZmZzaG9yZSBJbmNvcnBvcmF0aW9ucyBDZW50cmUKKwkJCQlSb2FkIFRvd24gVG9ydG9sYSAKKwkJCQlWSVJHSU4gSVNMQU5EUywgQlJJVElTSAorCiswMC0xMy1DQSAgIChoZXgpCQlQaWNvIERpZ2l0YWwKKzAwMTNDQSAgICAgKGJhc2UgMTYpCQlQaWNvIERpZ2l0YWwKKwkJCQk2MjYwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1DQiAgIChoZXgpCQlaZW5pdGVsIE5vcndheSBBUworMDAxM0NCICAgICAoYmFzZSAxNikJCVplbml0ZWwgTm9yd2F5IEFTCisJCQkJU2FuZGFrZXIgdiAyNCBjCisJCQkJUE8gQm94IDQ0OTgKKwkJCQlPc2xvIDA0MDMKKwkJCQlOT1JXQVkKKworMDAtMTMtQ0MgICAoaGV4KQkJVGFsbCBNYXBsZSBTeXN0ZW1zCiswMDEzQ0MgICAgIChiYXNlIDE2KQkJVGFsbCBNYXBsZSBTeXN0ZW1zCisJCQkJODUgU2FyYXRvZ2EgQXZlIFN1aXRlIDEzOQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1DRCAgIChoZXgpCQlNVEkgY28uIExURAorMDAxM0NEICAgICAoYmFzZSAxNikJCU1USSBjby4gTFRECisJCQkJMTY2LTEwIEthcmFrLWRvbmcKKwkJCQlSJkQgR3JvdXAgMworCQkJCVNvbmdwYS1rdSBTZW91bCAxMzgtODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLUNFICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxM0NFICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS10ZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTMtQ0YgICAoaGV4KQkJNEFjY2VzcyBDb21tdW5pY2F0aW9ucworMDAxM0NGICAgICAoYmFzZSAxNikJCTRBY2Nlc3MgQ29tbXVuaWNhdGlvbnMKKwkJCQkxIE4uIExhU2FsbGUgU3QuCisJCQkJU3VpdGUgMjAxNQorCQkJCUNoaWNhZ28gSUwgNjA2MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUQwICAgKGhleCkJCXQrIE1lZGljYWwgTHRkCiswMDEzRDAgICAgIChiYXNlIDE2KQkJdCsgTWVkaWNhbCBMdGQKKwkJCQkxNzRFIE1pbHRvbiBQYXJrCisJCQkJQWJpbmdkb24gIE9YMTQgNFNFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTMtRDEgICAoaGV4KQkJS0lSSyB0ZWxlY29tIEEvUworMDAxM0QxICAgICAoYmFzZSAxNikJCUtJUksgdGVsZWNvbSBBL1MKKwkJCQlMYW5nbWFya3N2ZWogMzQKKwkJCQlIb3JzZW5zICA4NzAwCisJCQkJREVOTUFSSworCiswMC0xMy1EMiAgIChoZXgpCQlQQUdFIElCRVJJQ0EsIFMuQS4KKzAwMTNEMiAgICAgKGJhc2UgMTYpCQlQQUdFIElCRVJJQ0EsIFMuQS4KKwkJCQlBVi4gREUgTEEgSU5EVVNUUklBLCAyNAorCQkJCVRSRVMgQ0FOVE9TIE1BRFJJRCAyODc2MAorCQkJCVNQQUlOCisKKzAwLTEzLUQzICAgKGhleCkJCU1JQ1JPLVNUQVIgSU5URVJOQVRJT05BTCBDTy4sIExURC4KKzAwMTNEMyAgICAgKGJhc2UgMTYpCQlNSUNSTy1TVEFSIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCisJCQkJTk8uIDY5LCBMSS1ERSBTVC4KKwkJCQlKVU5HLUhFIENJVFkgVEFJUEVJIEhTSUVOIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtRDQgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCiswMDEzRDQgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJTm8uNSBTaGluZyBZZWggU3RyZWV0CisJCQkJS3dlaSBTaGFuIEhzaWFuZworCQkJCVRhbyBZdWFuIEhzaWVuICAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLUQ1ICAgKGhleCkJCVJ1Z2dlZENvbQorMDAxM0Q1ICAgICAoYmFzZSAxNikJCVJ1Z2dlZENvbQorCQkJCTMwMCBBcHBsZXdvb2QgQ3Jlc2NlbnQgKFVuaXQgMSkKKwkJCQlDb25jb3JkLCAgT250YXJpbyBMNEsgNUM3CisJCQkJQ0FOQURBCisKKzAwLTEzLUQ2ICAgKGhleCkJCVRJSSBORVRXT1JLIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAxM0Q2ICAgICAoYmFzZSAxNikJCVRJSSBORVRXT1JLIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTEzODUgQUtST04gU1RSRUVUCisJCQkJQ09QSUFHVUUgTlkgMTE3MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUQ3ICAgKGhleCkJCVNQSURDT00gVGVjaG5vbG9naWVzIFNBCiswMDEzRDcgICAgIChiYXNlIDE2KQkJU1BJRENPTSBUZWNobm9sb2dpZXMgU0EKKwkJCQkxMzcgYXZlbnVlIGR1IEdlbmVyYWwgTEVDTEVSQworCQkJCUJPVVJHIExBIFJFSU5FICA5MjM0MAorCQkJCUZSQU5DRQorCiswMC0xMy1EOCAgIChoZXgpCQlQcmluY2V0b24gSW5zdHJ1bWVudHMKKzAwMTNEOCAgICAgKGJhc2UgMTYpCQlQcmluY2V0b24gSW5zdHJ1bWVudHMKKwkJCQkzNjYwIFF1YWtlcmJyaWRnZSBSb2FkCisJCQkJVHJlbnRvbiBOSiAwODYxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRDkgICAoaGV4KQkJTWF0cml4IFByb2R1Y3QgRGV2ZWxvcG1lbnQsIEluYy4KKzAwMTNEOSAgICAgKGJhc2UgMTYpCQlNYXRyaXggUHJvZHVjdCBEZXZlbG9wbWVudCwgSW5jLgorCQkJCTEzIE5vcnRoIEJpcmQgU3RyZWV0CisJCQkJU3VuIFByYWlyaWUgV0kgNTM1OTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLURBICAgKGhleCkJCURpc2t3YXJlIENvLiwgTHRkCiswMDEzREEgICAgIChiYXNlIDE2KQkJRGlza3dhcmUgQ28uLCBMdGQKKwkJCQkxLTQtMTIgS2liYQorCQkJCU5ha29qaWtpYmEgQmxkZy41RgorCQkJCUtvdG8ta3UgVG9reW8gMTM1LTAwNDIKKwkJCQlKQVBBTgorCiswMC0xMy1EQiAgIChoZXgpCQlTSE9FSSBFbGVjdHJpYyBDby4sTHRkCiswMDEzREIgICAgIChiYXNlIDE2KQkJU0hPRUkgRWxlY3RyaWMgQ28uLEx0ZAorCQkJCTEtMjktMixXYWthYmF5YXNoaQorCQkJCVNldGFnYXlhLWt1IFRva3lvIDE1NC0wMDIzCisJCQkJSkFQQU4KKworMDAtMTMtREMgICAoaGV4KQkJSUJURUsgSU5DLgorMDAxM0RDICAgICAoYmFzZSAxNikJCUlCVEVLIElOQy4KKwkJCQkxNkYsIDMwLCBQZWktUGluZyBFYXN0IFJkLiwKKwkJCQlUYWlwZWkgIDEwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTMtREQgICAoaGV4KQkJQWJib3R0IERpYWdub3N0aWNzCiswMDEzREQgICAgIChiYXNlIDE2KQkJQWJib3R0IERpYWdub3N0aWNzCisJCQkJNTQ0MCBQYXRyaWNrIEhlbnJ5IERyaXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLURFICAgKGhleCkJCUFkYXB0NCwgTExDCiswMDEzREUgICAgIChiYXNlIDE2KQkJQWRhcHQ0LCBMTEMKKwkJCQkxMDUwIFcgTmFzYSBCbHZkLAorCQkJCVN1aXRlIDEzNAorCQkJCU1lbGJvdXJuZSBGTCAzMjkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtREYgICAoaGV4KQkJUnl2b3IgQ29ycC4KKzAwMTNERiAgICAgKGJhc2UgMTYpCQlSeXZvciBDb3JwLgorCQkJCTE1MTQ1IFJlZCBIaWxsIEF2ZS4KKwkJCQlTdWl0ZSBCCisJCQkJVHVzdGluIENBIDkyNzgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1FMCAgIChoZXgpCQlNdXJhdGEgTWFudWZhY3R1cmluZyBDby4sIEx0ZC4KKzAwMTNFMCAgICAgKGJhc2UgMTYpCQlNdXJhdGEgTWFudWZhY3R1cmluZyBDby4sIEx0ZC4KKwkJCQkyMjg4LCBPc2hpbm9oYXJhLAorCQkJCVlhc3Utc2hpIFNoaWdhIDUyMC0yMzkzCisJCQkJSkFQQU4KKworMDAtMTMtRTEgICAoaGV4KQkJSXByb2JlIEFCCiswMDEzRTEgICAgIChiYXNlIDE2KQkJSXByb2JlIEFCCisJCQkJRmlubGFuZHNnYXRhbiAxMgorCQkJCUtpc3RhIFNFLTE2NDc0CisJCQkJU1dFREVOCisKKzAwLTEzLUUyICAgKGhleCkJCUdlb1Zpc2lvbiBJbmMuCiswMDEzRTIgICAgIChiYXNlIDE2KQkJR2VvVmlzaW9uIEluYy4KKwkJCQk5Ri4sTm8uMjQ2LFNlYy4xLAorCQkJCU5laWh1IFJkLE5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFBST1ZJTkNFIE9GIENISU5BCisKKzAwLTEzLUUzICAgKGhleCkJCUNvVmkgVGVjaG5vbG9naWVzLCBJbmMuCiswMDEzRTMgICAgIChiYXNlIDE2KQkJQ29WaSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk2MzAwIEJyaWRnZXBvaW50IFBhcmt3YXkKKwkJCQlTdWl0ZSAzMDAsIEJsZGcuIElJCisJCQkJQXVzdGluIFRleGFzIDc4NzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1FNCAgIChoZXgpCQlZQU5HSkFFIFNZU1RFTVMgQ09SUC4KKzAwMTNFNCAgICAgKGJhc2UgMTYpCQlZQU5HSkFFIFNZU1RFTVMgQ09SUC4KKwkJCQkxMjAyLiBIQU5TSElOIElUIFRPV0VSIEd1cm8tM0RvbmcsCisJCQkJR3Vyby1HdQorCQkJCVNlb3VsIDE1Mi04NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtRTUgICAoaGV4KQkJVEVOT1NZUywgSU5DLgorMDAxM0U1ICAgICAoYmFzZSAxNikJCVRFTk9TWVMsIElOQy4KKwkJCQlTZW9qaW4gQi9ELCAxNTY0LTEsIFNlb2Noby1kb25nLAorCQkJCVNlb2Noby1ndQorCQkJCVNlb3VsIDEzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTMtRTYgICAoaGV4KQkJVGVjaG5vbHV0aW9uCiswMDEzRTYgICAgIChiYXNlIDE2KQkJVGVjaG5vbHV0aW9uCisJCQkJWnVpZGVsaWpraGFsZnJvbmQgMQorCQkJCUdPVURBIFpIIDI4MDEgREQKKwkJCQlORVRIRVJMQU5EUworCiswMC0xMy1FNyAgIChoZXgpCQlIYWxjcm8KKzAwMTNFNyAgICAgKGJhc2UgMTYpCQlIYWxjcm8KKwkJCQlTdWl0ZSAxLCBMZXZlbCAxCisJCQkJOCBHcmVlbmhpbGwgUmQKKwkJCQlXYXl2aWxsZSBTb3V0aCBBdXN0cmFsaWEgNTAzNAorCQkJCUFVU1RSQUxJQQorCiswMC0xMy1FOCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMTNFOCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktdGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTEzLUU5ICAgKGhleCkJCVZlcmlXYXZlLCBJbmMuCiswMDEzRTkgICAgIChiYXNlIDE2KQkJVmVyaVdhdmUsIEluYy4KKwkJCQk5NjAwIFNXIE9hayBTdC4KKwkJCQlQb3J0bGFuZCBPUiA5NzIyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRUEgICAoaGV4KQkJS2Ftc3RydXAgQS9TCiswMDEzRUEgICAgIChiYXNlIDE2KQkJS2Ftc3RydXAgQS9TCisJCQkJSW5kdXN0cml2ZWogMjgKKwkJCQlTdGlsbGluZyAgODY2MAorCQkJCURFTk1BUksKKworMDAtMTMtRUIgICAoaGV4KQkJU3lzbWFzdGVyIENvcnBvcmF0aW9uCiswMDEzRUIgICAgIChiYXNlIDE2KQkJU3lzbWFzdGVyIENvcnBvcmF0aW9uCisJCQkJNTgwMSBDaHJpc3RpZSBBdmUuCisJCQkJU3VpdGUgNDAwCisJCQkJRW1lcnl2aWxsZSBDQSA5NDYwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRUMgICAoaGV4KQkJU3VuYmF5IFNvZnR3YXJlIEFHCiswMDEzRUMgICAgIChiYXNlIDE2KQkJU3VuYmF5IFNvZnR3YXJlIEFHCisJCQkJU2Vlc3RyYXNzZSA3OAorCQkJCVJ1ZXNjaGxpa29uIFpIIDg4MDMKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xMy1FRCAgIChoZXgpCQlQU0lBCiswMDEzRUQgICAgIChiYXNlIDE2KQkJUFNJQQorCQkJCTUxNy0xMyBJbmR1c3BpcyA1dGgKKwkJCQlTYW5nRGFlV29uRG9uZyBKdW5nV29uR3UKKwkJCQlTdW5nTmFtIEt5dW5nR2kgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTEzLUVFICAgKGhleCkJCUpCWCBEZXNpZ25zIEluYy4KKzAwMTNFRSAgICAgKGJhc2UgMTYpCQlKQlggRGVzaWducyBJbmMuCisJCQkJUE8gQm94IDk3MDE1OAorCQkJCUJvY2EgUmF0b24gRkwgMzM0OTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUVGICAgKGhleCkJCUtpbmdqb24gRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQKKzAwMTNFRiAgICAgKGJhc2UgMTYpCQlLaW5nam9uIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJUm9vbSA4MjcsSHVhbmFuIERpYW5saSBCdWxkaW5nLE5vLjIwNTAKKwkJCQlTaGVuemhlbiBHdWFuZ0RvbmcgNTE4MDMxCisJCQkJQ0hJTkEKKworMDAtMTMtRjAgICAoaGV4KQkJV2F2ZWZyb250IFNlbWljb25kdWN0b3IKKzAwMTNGMCAgICAgKGJhc2UgMTYpCQlXYXZlZnJvbnQgU2VtaWNvbmR1Y3RvcgorCQkJCTQ3NDYgNDR0aCBBdmUgU1cKKwkJCQlTdWl0ZSAyMDEKKwkJCQlTZWF0dGxlIFdBIDk4MTE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1GMSAgIChoZXgpCQlBTU9EIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDEzRjEgICAgIChiYXNlIDE2KQkJQU1PRCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTJGLiwgTm8uIDE2LCBQcm9zcGVyaXR5IFJvYWQgSUkKKwkJCQlTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1LCAgMzAwNzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLUYyICAgKGhleCkJCUtsYXMgTHRkCiswMDEzRjIgICAgIChiYXNlIDE2KQkJS2xhcyBMdGQKKwkJCQlCcmFjZXRvd24gQnVzaW5lc3MgUGFyaworCQkJCUNsb25lZSBDbyBNZWF0aCAKKwkJCQlJUkVMQU5ECisKKzAwLTEzLUYzICAgKGhleCkJCUdpZ2EtYnl0ZSBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDEzRjMgICAgIChiYXNlIDE2KQkJR2lnYS1ieXRlIENvbW11bmljYXRpb25zIEluYy4KKwkJCQk4RiwgTm8uNDMsIEZ1LUhzaW4gUm9hZC4gSHNpbi1UaWVuCisJCQkJVGFpcGVpIEhzaWVuICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTEzLUY0ICAgKGhleCkJCVBzaXRlayAoUHR5KSBMdGQKKzAwMTNGNCAgICAgKGJhc2UgMTYpCQlQc2l0ZWsgKFB0eSkgTHRkCisJCQkJVGhlIFZpbmV5YXJkcyBPZmZpY2UgRXN0YXRlCisJCQkJOTkgSmlwIGRlIEphZ2VyIERyaXZlCisJCQkJVHlnZXIgVmFsbGV5IENhcGUgVG93biA3NTMwCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTEzLUY1ICAgKGhleCkJCUFraW1iaSBTeXN0ZW1zCiswMDEzRjUgICAgIChiYXNlIDE2KQkJQWtpbWJpIFN5c3RlbXMKKwkJCQkxNDAwIEZhc2hpb24gSXNsYW5kIEJsdmQKKwkJCQlTdWl0ZSA5MDAKKwkJCQlTYW4gTWF0ZW8gQ0EgOTQ0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUY2ICAgKGhleCkJCUNpbnRlY2gKKzAwMTNGNiAgICAgKGJhc2UgMTYpCQlDaW50ZWNoCisJCQkJMjFhIHJvdXRlIGRlIGxhIHdhbnR6ZW5hdQorCQkJCUhvZW5oZWltICA2NzgwMAorCQkJCUZSQU5DRQorCiswMC0xMy1GNyAgIChoZXgpCQlTTUMgTmV0d29ya3MsIEluYy4KKzAwMTNGNyAgICAgKGJhc2UgMTYpCQlTTUMgTmV0d29ya3MsIEluYy4KKwkJCQkzOCBUZXNsYQorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTMtRjggICAoaGV4KQkJRGV4IFNlY3VyaXR5IFNvbHV0aW9ucworMDAxM0Y4ICAgICAoYmFzZSAxNikJCURleCBTZWN1cml0eSBTb2x1dGlvbnMKKwkJCQkxMCBKdW5jdGlvbiBSb2FkIFBhcmt0b3duCisJCQkJMm5kIEZsb29yIEJQIEhvdXNlCisJCQkJSm9oYW5uZXNidXJnIEd1dGVuZyAyMDAwCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTEzLUY5ICAgKGhleCkJCUNhdmVyYSBTeXN0ZW1zCiswMDEzRjkgICAgIChiYXNlIDE2KQkJQ2F2ZXJhIFN5c3RlbXMKKwkJCQkyMzU1IE9ha2xhbmQgUmQsIFN1aXRlIzMzCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUZBICAgKGhleCkJCUxpZmVTaXplIENvbW11bmljYXRpb25zLCBJbmMKKzAwMTNGQSAgICAgKGJhc2UgMTYpCQlMaWZlU2l6ZSBDb21tdW5pY2F0aW9ucywgSW5jCisJCQkJOTAxIFMuIE1vcGFjCisJCQkJQmxkZyAzLCBTdWl0ZSAzMDAKKwkJCQlBdXN0aW4gVFggNzg3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTEzLUZCICAgKGhleCkJCVJLQyBJTlNUUlVNRU5UIElOQy4KKzAwMTNGQiAgICAgKGJhc2UgMTYpCQlSS0MgSU5TVFJVTUVOVCBJTkMuCisJCQkJMTYtNiwgS3VnYWhhcmEgNS1jaG9tZSwKKwkJCQlPaHRhLWt1IFRva3lvIDE0Ni04NTE1CisJCQkJSkFQQU4KKworMDAtMTMtRkMgICAoaGV4KQkJU2lDb3J0ZXgsIEluYworMDAxM0ZDICAgICAoYmFzZSAxNikJCVNpQ29ydGV4LCBJbmMKKwkJCQkzIENsb2NrdG93ZXIgUGxhY2UKKwkJCQlTdWl0ZSAyMTAKKwkJCQlNYXluYXJkIE1BIDAxNzU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xMy1GRCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxM0ZEICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xMy1GRSAgIChoZXgpCQlHUkFORFRFQyBFTEVDVFJPTklDIENPUlAuCiswMDEzRkUgICAgIChiYXNlIDE2KQkJR1JBTkRURUMgRUxFQ1RST05JQyBDT1JQLgorCQkJCThGLE5PLjI2OCxMaWFuIENoZW5nIFJkLixDaHVuZyBIbyBDaXR5LAorCQkJCUhzaWVuIDIzNQorCQkJCVRhaXBlaSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xMy1GRiAgIChoZXgpCQlEYWdlLU1USSBvZiBNQywgSW5jLgorMDAxM0ZGICAgICAoYmFzZSAxNikJCURhZ2UtTVRJIG9mIE1DLCBJbmMuCisJCQkJNzAxIE4uIFJvZXNrZSBBdmUuCisJCQkJTWljaGlnYW4gQ2l0eSBJTiA0NjM2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMDAgICAoaGV4KQkJTUlORVJWQSBLT1JFQSBDTy4sIExURAorMDAxNDAwICAgICAoYmFzZSAxNikJCU1JTkVSVkEgS09SRUEgQ08uLCBMVEQKKwkJCQkjMjAzLCBTSCBTaWVubmUsIFNlb2h5ZW9uLURvbmcKKwkJCQlCdW5kYW5nLUd1CisJCQkJU2VvbmduYW0tU2kgR3llb25nZ2ktRG8gNDYzLTgyMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC0wMSAgIChoZXgpCQlSaXZlcnRyZWUgTmV0d29ya3MgQ29ycC4KKzAwMTQwMSAgICAgKGJhc2UgMTYpCQlSaXZlcnRyZWUgTmV0d29ya3MgQ29ycC4KKwkJCQlSIzMwNCwgSy1DZW50ZXIsIDE1OTEtOQorCQkJCUJ1cmltLWRvbmcsIERvbmdhaG4tZ3UKKwkJCQlBbnlhbmctc2kgS3l1bmdnaS1kbyA0MzEtODE1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTAyICAgKGhleCkJCWtrLWVsZWN0cm9uaWMgYS9zCiswMDE0MDIgICAgIChiYXNlIDE2KQkJa2stZWxlY3Ryb25pYyBhL3MKKwkJCQlDeXByZXN2ZWogNgorCQkJCUhlcm5pbmcgIDc0MDAKKwkJCQlERU5NQVJLCisKKzAwLTE0LTAzICAgKGhleCkJCVJlbmFzaXMsIExMQworMDAxNDAzICAgICAoYmFzZSAxNikJCVJlbmFzaXMsIExMQworCQkJCTE1MzAgTi4gU3RhdGUgU3QuCisJCQkJU3VpdGUgRQorCQkJCUxlaGkgVVQgODQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTA0ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE0MDQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0wNSAgIChoZXgpCQlPcGVuSUIsIEluYy4KKzAwMTQwNSAgICAgKGJhc2UgMTYpCQlPcGVuSUIsIEluYy4KKwkJCQlPcGVuRmFicmljcywgSW5jLiwgYy9vIFFMb2dpYyBDb3Jwb3JhdGlvbgorCQkJCTIwNzEgU3RpZXJsaW4gQ291cnQsIFN1aXRlIDIwMAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMtNDY1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMDYgICAoaGV4KQkJR28gTmV0d29ya3MKKzAwMTQwNiAgICAgKGJhc2UgMTYpCQlHbyBOZXR3b3JrcworCQkJCTEyNiBZaWdhbCBBbG9uIHN0LgorCQkJCVRlbCBBdml2ICA2NzQ0MworCQkJCUlTUkFFTAorCiswMC0xNC0wNyAgIChoZXgpCQlTcGVyaWFuIFByb3RlY3Rpb24gSW5zdHJ1bWVudGF0aW9uCiswMDE0MDcgICAgIChiYXNlIDE2KQkJU3BlcmlhbiBQcm90ZWN0aW9uIEluc3RydW1lbnRhdGlvbgorCQkJCTY1MSBTb3V0aCBNYWluIFN0cmVldAorCQkJCU1pZGRsZXRvd24gQ1QgMDY0NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTA4ICAgKGhleCkJCUVrYSBTeXN0ZW1zIEluYy4KKzAwMTQwOCAgICAgKGJhc2UgMTYpCQlFa2EgU3lzdGVtcyBJbmMuCisJCQkJMjAyNTEgQ2VudHVyeSBCbHZkCisJCQkJU3VpdGUgMTIwCisJCQkJR2VybWFudG93biBNRCAyMDg3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMDkgICAoaGV4KQkJTUFHTkVUSSBNQVJFTExJICAgUy5FLiBTLnAuQS4KKzAwMTQwOSAgICAgKGJhc2UgMTYpCQlNQUdORVRJIE1BUkVMTEkgICBTLkUuIFMucC5BLgorCQkJCVpJIE5vcmQsIEFsbGVlIGQnQXJnZW5zb24KKwkJCQlDSEFURUxMRVJBVUxUICA4NjEwMAorCQkJCUZSQU5DRQorCiswMC0xNC0wQSAgIChoZXgpCQlXRVBJTyBDby4sIEx0ZC4KKzAwMTQwQSAgICAgKGJhc2UgMTYpCQlXRVBJTyBDby4sIEx0ZC4KKwkJCQkjMTEyNSwgT3B1czEsIEd1cm9kb25nY29tcGxleCBidWlsZGluZworCQkJCTYxMS0yNixHdXJvLWRvbmcsR3Vyby1ndSwKKwkJCQlTZW91bCAgMTUyLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC0wQiAgIChoZXgpCQlGSVJTVCBJTlRFUk5BVElPTkFMIENPTVBVVEVSLCBJTkMuCiswMDE0MEIgICAgIChiYXNlIDE2KQkJRklSU1QgSU5URVJOQVRJT05BTCBDT01QVVRFUiwgSU5DLgorCQkJCUZJQyBCVUlMRElORywgTk8uMzAwLCBZQU5HIEdVQU5HIFNULiwKKwkJCQlORUlIVQorCQkJCVRBSVBFSSBDT1VOVFkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC0wQyAgIChoZXgpCQlHS0IgQ0NUViBDTy4sIExURC4KKzAwMTQwQyAgICAgKGJhc2UgMTYpCQlHS0IgQ0NUViBDTy4sIExURC4KKwkJCQk3RiwgTm8uIDEsIExhbmUgNjQxLAorCQkJCVNoZW4gTGluZyBTb3V0aCBSZC4sCisJCQkJVGEgWWEgSHNpYW5nLCBUQUlDSFVORyA0MjgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTBEICAgKGhleCkJCU5vcnRlbAorMDAxNDBEICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTE0LTBFICAgKGhleCkJCU5vcnRlbAorMDAxNDBFICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTE0LTBGICAgKGhleCkJCUZlZGVyYWwgU3RhdGUgVW5pdGFyeSBFbnRlcnByaXNlIExlbmluZ3JhZCBSJkQgSW5zdGl0dXRlIG9mCiswMDE0MEYgICAgIChiYXNlIDE2KQkJRmVkZXJhbCBTdGF0ZSBVbml0YXJ5IEVudGVycHJpc2UgTGVuaW5ncmFkIFImRCBJbnN0aXR1dGUgb2YKKwkJCQkxMSBXYXJzaGF3c2theWEgU3QuCisJCQkJU3QuIFBldGVyc2J1cmcgMTk2MTI4CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTE0LTEwICAgKGhleCkJCVN1emhvdSBLZWRhIFRlY2hub2xvZ3kgQ08uLEx0ZAorMDAxNDEwICAgICAoYmFzZSAxNikJCVN1emhvdSBLZWRhIFRlY2hub2xvZ3kgQ08uLEx0ZAorCQkJCTEzMSxKaW5zaGFuIFJvYWQKKwkJCQlTdXpob3UgSmlhbmdTdSAyMTUwMTEKKwkJCQlDSElOQQorCiswMC0xNC0xMSAgIChoZXgpCQlEZXV0c2NobWFubiBBdXRvbWF0aW9uIEdtYkggJiBDby4gS0cKKzAwMTQxMSAgICAgKGJhc2UgMTYpCQlEZXV0c2NobWFubiBBdXRvbWF0aW9uIEdtYkggJiBDby4gS0cKKwkJCQlDYXJsLVplaXNzLVN0ci4gOAorCQkJCUJhZCBDYW1iZXJnICBEIC0gNjU1MjAKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LTEyICAgKGhleCkJCVMtVEVDIGVsZWN0cm9uaWNzIEFHCiswMDE0MTIgICAgIChiYXNlIDE2KQkJUy1URUMgZWxlY3Ryb25pY3MgQUcKKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDQ5CisJCQkJWnVnIDYzMDAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xNC0xMyAgIChoZXgpCQlUcmViaW5nICYgSGltc3RlZHQgUHJvemVzc2F1dG9tYXRpb24gR21iSCAmIENvLiBLRworMDAxNDEzICAgICAoYmFzZSAxNikJCVRyZWJpbmcgJiBIaW1zdGVkdCBQcm96ZXNzYXV0b21hdGlvbiBHbWJIICYgQ28uIEtHCisJCQkJV2lsaGVsbS1IZW5uZW1hbm4tU3RyLiAxMworCQkJCVNjaHdlcmluIE1lY2tsZW5idXJnLVZvcnBvbW1lcm4gMTkwNjEKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LTE0ICAgKGhleCkJCUp1bXBub2RlIFN5c3RlbXMgTExDLgorMDAxNDE0ICAgICAoYmFzZSAxNikJCUp1bXBub2RlIFN5c3RlbXMgTExDLgorCQkJCTgwMCBXYXNoaW5ndG9uIEF2ZSBOLgorCQkJCVN1aXRlIDMwOQorCQkJCU1pbm5lYXBvbGlzIE1OIDU1MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0xNSAgIChoZXgpCQlJbnRlYyBBdXRvbWF0aW9uIEluYy4KKzAwMTQxNSAgICAgKGJhc2UgMTYpCQlJbnRlYyBBdXRvbWF0aW9uIEluYy4KKwkJCQkyNzUxIEFyYnV0dXMgUmQuCisJCQkJVmljdG9yaWEgQnJpdGlzaCBDb2x1bWJpYSBWOE4gNVg3CisJCQkJQ0FOQURBCisKKzAwLTE0LTE2ICAgKGhleCkJCVNjb3NjaGUgSW5kdXN0cmllcywgSW5jLgorMDAxNDE2ICAgICAoYmFzZSAxNikJCVNjb3NjaGUgSW5kdXN0cmllcywgSW5jLgorCQkJCVBPIEJveCAyOTAxCisJCQkJT3huYXJkIENBIDkzMDM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0xNyAgIChoZXgpCQlSU0UgSW5mb3JtYXRpb25zIFRlY2hub2xvZ2llIEdtYkgKKzAwMTQxNyAgICAgKGJhc2UgMTYpCQlSU0UgSW5mb3JtYXRpb25zIFRlY2hub2xvZ2llIEdtYkgKKwkJCQlTaWxiZXJiZXJnc3RyYXNzZSA5CisJCQkJV29sZnNiZXJnIEvDpHJudGVuIDk0MDAKKwkJCQlBVVNUUklBCisKKzAwLTE0LTE4ICAgKGhleCkJCUM0TGluZQorMDAxNDE4ICAgICAoYmFzZSAxNikJCUM0TGluZQorCQkJCTEwMDEgSHl1bmRhaSBQYXJpc2lhbiwKKwkJCQk5MDctMTAgTW9rNS1Eb25nCisJCQkJWWFuZ2NodW4tR3UgU2VvdWwgMTU4LTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC0xOSAgIChoZXgpCQlTSURTQQorMDAxNDE5ICAgICAoYmFzZSAxNikJCVNJRFNBCisJCQkJUFRNIC0gVE9SUkVTIFFVRVZFRE8gMQorCQkJCVRSRVMgQ0FOVE9TIE1BRFJJRCAyODc2MAorCQkJCVNQQUlOCisKKzAwLTE0LTFBICAgKGhleCkJCURFSUNZIENPUlBPUkFUSU9OCiswMDE0MUEgICAgIChiYXNlIDE2KQkJREVJQ1kgQ09SUE9SQVRJT04KKwkJCQkzLTMtNixTYWthZS1jaG8sSGFtdXJhLXNoaSwKKwkJCQlUb2t5byAyMDUtMDAwMgorCQkJCUpBUEFOCisKKzAwLTE0LTFCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTQxQiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTFDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTQxQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTFEICAgKGhleCkJCUx1c3QgQW50cmllYnN0ZWNobmlrIEdtYkgKKzAwMTQxRCAgICAgKGJhc2UgMTYpCQlMdXN0IEFudHJpZWJzdGVjaG5payBHbWJICisJCQkJR2V3ZXJiZXN0cmFzc2UgNS05CisJCQkJTGFobmF1IEhlc3NlbiAzNTYzMworCQkJCUdFUk1BTlkKKworMDAtMTQtMUUgICAoaGV4KQkJUC5BLiBTZW1pLCBJbmMuCiswMDE0MUUgICAgIChiYXNlIDE2KQkJUC5BLiBTZW1pLCBJbmMuCisJCQkJMzk2NSBGcmVlZG9tIENpcmNsZSwgRmwgOAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0xRiAgIChoZXgpCQlTdW5Ld2FuZyBFbGVjdHJvbmljcyBDby4sIEx0ZAorMDAxNDFGICAgICAoYmFzZSAxNikJCVN1bkt3YW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJIzM2NShUZWNobm8tcGFyaywgMzAxIGRvbmcsIDkwMSBobywpIFNhbWp1bmctZG9uZywgT2hqdW5nLWt1LAorCQkJCUJ1Y2hlb24tc2hpIEt5dW5nZ2ktZG8gNDIxLTgwOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC0yMCAgIChoZXgpCQlHLUxpbmtzIG5ldHdvcmtpbmcgY29tcGFueQorMDAxNDIwICAgICAoYmFzZSAxNikJCUctTGlua3MgbmV0d29ya2luZyBjb21wYW55CisJCQkJMUZMLiBOTy4xNS00OSwgTUlORyBERVIgU0VDT05EIFJPQUQsCisJCQkJQ0hJIERVIERJU1RSSUNULAorCQkJCUtlZWx1bmcgIDIwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtMjEgICAoaGV4KQkJVG90YWwgV2lyZWxlc3MgVGVjaG5vbG9naWVzIFB0ZS4gTHRkLgorMDAxNDIxICAgICAoYmFzZSAxNikJCVRvdGFsIFdpcmVsZXNzIFRlY2hub2xvZ2llcyBQdGUuIEx0ZC4KKwkJCQlCbGsgMTAwMywgQnVraXQgTWVyYWggQ2VudHJhbCwgIzA0LTE4CisJCQkJVGVjaG5vcHJlbmV1ciBDZW50cmUKKwkJCQkxNTk4MzYKKwkJCQlTSU5HQVBPUkUKKworMDAtMTQtMjIgICAoaGV4KQkJRGVsbCBJbmMuCiswMDE0MjIgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMjMgICAoaGV4KQkJSi1TIENvLiBORVVST0NPTQorMDAxNDIzICAgICAoYmFzZSAxNikJCUotUyBDby4gTkVVUk9DT00KKwkJCQlFbmVyZ2V0aWNoZXNraWkgcHJvZXpkLCA2CisJCQkJTW9zY293ICAxMTEyNTAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMTQtMjQgICAoaGV4KQkJTWVycnkgRWxlY3RyaWNzIENPLiwgTFRELgorMDAxNDI0ICAgICAoYmFzZSAxNikJCU1lcnJ5IEVsZWN0cmljcyBDTy4sIExURC4KKwkJCQlOTy4yMiwyM3JkIFJPQUQKKwkJCQlQQVJLIFRBSUNIVU5HLAorCQkJCVRBSUNIVU5HIENJVFkgIDQwODUwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC0yNSAgIChoZXgpCQlHYWxhY3RpYyBDb21wdXRpbmcgQ29ycC4KKzAwMTQyNSAgICAgKGJhc2UgMTYpCQlHYWxhY3RpYyBDb21wdXRpbmcgQ29ycC4KKwkJCQkxL0YKKwkJCQkxMiBMZWUgQ2h1bmcgU3RyZWV0CisJCQkJQ2hhaSBXYW4gRGlzdHJpY3QgIAorCQkJCUhPTkcgS09ORworCiswMC0xNC0yNiAgIChoZXgpCQlOTCBUZWNobm9sb2d5CiswMDE0MjYgICAgIChiYXNlIDE2KQkJTkwgVGVjaG5vbG9neQorCQkJCTgwMCBUdXJucGlrZSBTdHJlZXQKKwkJCQlTVEUgMTAwCisJCQkJTm9ydGggQW5kb3ZlciBNQSAwMTg0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMjcgICAoaGV4KQkJSmF6ek11dGFudAorMDAxNDI3ICAgICAoYmFzZSAxNikJCUphenpNdXRhbnQKKwkJCQkyIGFsbGVlIGR1IERveWVuIEdlb3JnZXMgQnJ1cworCQkJCVBlc3NhYyAgMzM2MDAKKwkJCQlGUkFOQ0UKKworMDAtMTQtMjggICAoaGV4KQkJVm9jb2xsZWN0LCBJbmMKKzAwMTQyOCAgICAgKGJhc2UgMTYpCQlWb2NvbGxlY3QsIEluYworCQkJCTcwMyBSb2RpIFJvYWQKKwkJCQlQaXR0c2J1cmdoIFBBIDE1MjM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0yOSAgIChoZXgpCQlWIENlbnRlciBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDE0MjkgICAgIChiYXNlIDE2KQkJViBDZW50ZXIgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCTdGLTcsIE5PLjM1LCBIc2ludGFpIFJkLgorCQkJCUp1YmVpIENpdHkgSHNpbmNodSAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTJBICAgKGhleCkJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtIENvLiwgTHRkCiswMDE0MkEgICAgIChiYXNlIDE2KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uLCBMdGQKKwkJCQlOby4yMiwgQWxsZXkgMzgsIExhbmUgOTEsIFNlYy4gMSwKKwkJCQlOZWkgSHUgUm9hZAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC0yQiAgIChoZXgpCQlFZGF0YSBDb21tdW5pY2F0aW9uIEluYy4KKzAwMTQyQiAgICAgKGJhc2UgMTYpCQlFZGF0YSBDb21tdW5pY2F0aW9uIEluYy4KKwkJCQkyRi0xLCBOby4gODcyLCBDaHVuZy1DaGVuZyBSZAorCQkJCUNodW5nLUhvIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC0yQyAgIChoZXgpCQlLb25jZXB0IEludGVybmF0aW9uYWwsIEluYy4KKzAwMTQyQyAgICAgKGJhc2UgMTYpCQlLb25jZXB0IEludGVybmF0aW9uYWwsIEluYy4KKwkJCQkyNTAwIEUgRm9vdGhpbGwgQmx2ZC4gIzQwNworCQkJCVBhc2FkZW5hIENBIDkxMTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0yRCAgIChoZXgpCQlUb3JhZGV4IEFHCiswMDE0MkQgICAgIChiYXNlIDE2KQkJVG9yYWRleCBBRworCQkJCUFsdHNhZ2Vuc3RyYXNzZSA1CisJCQkJSG9ydyBMVSA2MDQ4CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTQtMkUgICAoaGV4KQkJNzcgRWxla3Ryb25pa2EgS2Z0LgorMDAxNDJFICAgICAoYmFzZSAxNikJCTc3IEVsZWt0cm9uaWthIEtmdC4KKwkJCQlGZWhlcnZhcmkgdXQgOTguCisJCQkJQnVkYXBlc3QgSC0xMTYzCisJCQkJSFVOR0FSWQorCiswMC0xNC0yRiAgIChoZXgpCQlXaWxkUGFja2V0cworMDAxNDJGICAgICAoYmFzZSAxNikJCVdpbGRQYWNrZXRzCisJCQkJMTM0MCBUcmVhdCBCb3VsZXZhcmQKKwkJCQlTdWl0ZSA1MDAKKwkJCQlXYWxudXQgQ3JlZWsgQ0EgOTQ1OTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTMwICAgKGhleCkJCVZpUG93RVIsIEluYworMDAxNDMwICAgICAoYmFzZSAxNikJCVZpUG93RVIsIEluYworCQkJCTlGLiwgTm8uMjA1LTMsIFNlYy4gMywgQmVpc2luIFJkCisJCQkJU2luZGlhbiBUYWlwZWkgQ291bnR5IDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtMzEgICAoaGV4KQkJUERMIEVsZWN0cm9uaWNzIEx0ZAorMDAxNDMxICAgICAoYmFzZSAxNikJCVBETCBFbGVjdHJvbmljcyBMdGQKKwkJCQk4MSBBdXN0aW4gU3RyZWV0CisJCQkJTmFwaWVyIEhhd2tlcyBCYXkgNDAxNQorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTE0LTMyICAgKGhleCkJCVRhcmFsbGF4IFdpcmVsZXNzLCBJbmMuCiswMDE0MzIgICAgIChiYXNlIDE2KQkJVGFyYWxsYXggV2lyZWxlc3MsIEluYy4KKwkJCQkxMCBXZXN0IDEwMCBTb3V0aCwKKwkJCQlTdWl0ZSA2MDAKKwkJCQlTYWx0IExha2UgQ2l0eSBVVCA4NDEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtMzMgICAoaGV4KQkJRW1wb3dlciBUZWNobm9sb2dpZXMoQ2FuYWRhKSBJbmMuCiswMDE0MzMgICAgIChiYXNlIDE2KQkJRW1wb3dlciBUZWNobm9sb2dpZXMoQ2FuYWRhKSBJbmMuCisJCQkJVW5pdCA0MDUgLSA1NjAwIFBhcmt3b29kIFdheSwKKwkJCQlSaWNobW9uZCBCcml0aXNoIENvbHVtYmlhIFY2ViAyTTIKKwkJCQlDQU5BREEKKworMDAtMTQtMzQgICAoaGV4KQkJS2VyaSBTeXN0ZW1zLCBJbmMKKzAwMTQzNCAgICAgKGJhc2UgMTYpCQlLZXJpIFN5c3RlbXMsIEluYworCQkJCVN1aXRlIDEwMAorCQkJCTE1MzAgT2FrbGFuZCBSZAorCQkJCVNhbiBKb3NlIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0zNSAgIChoZXgpCQlDaXR5Q29tIENvcnAuCiswMDE0MzUgICAgIChiYXNlIDE2KQkJQ2l0eUNvbSBDb3JwLgorCQkJCTNGLiwgTm8uNTMyLCBTZWMuIDIsCisJCQkJSmhvbmdzaGFuIFJkLgorCQkJCUpob25naGUgQ2l0eSBUYWlwZWkgSHNpZW4gMjM1NTcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTM2ICAgKGhleCkJCVF3ZXJ0eSBFbGVrdHJvbmlrIEFCCiswMDE0MzYgICAgIChiYXNlIDE2KQkJUXdlcnR5IEVsZWt0cm9uaWsgQUIKKwkJCQlHcnl0IDQ0CisJCQkJU0UtMTQ4IDkyCisJCQkJ1nNtbyAgNjEwIDYwCisJCQkJU1dFREVOCisKKzAwLTE0LTM3ICAgKGhleCkJCUdTVGVsZXRlY2ggQ28uLEx0ZC4KKzAwMTQzNyAgICAgKGJhc2UgMTYpCQlHU1RlbGV0ZWNoIENvLixMdGQuCisJCQkJMTM4NS0xNCwgSnVhbi1Eb25nLCBOYW0tZ3UKKwkJCQlJbmNoZW9uIDQwMi0yMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtMzggICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzAwMTQzOCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5IFNvdXRoCisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0zOSAgIChoZXgpCQlCbG9uZGVyIFRvbmd1ZSBMYWJvcmF0b3JpZXMsIEluYy4KKzAwMTQzOSAgICAgKGJhc2UgMTYpCQlCbG9uZGVyIFRvbmd1ZSBMYWJvcmF0b3JpZXMsIEluYy4KKwkJCQlPbmUgSmFrZSBCcm93biBSb2FkCisJCQkJT2xkIEJyaWRnZSBOZXcgSmVyc2V5IDA4ODU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC0zQSAgIChoZXgpCQlSQVlUQUxLIElOVEVSTkFUSU9OQUwgU1JMCiswMDE0M0EgICAgIChiYXNlIDE2KQkJUkFZVEFMSyBJTlRFUk5BVElPTkFMIFNSTAorCQkJCVN0LiBNYXJlY2NoaWEgNzkKKwkJCQlWZXJ1Y2NoaW8gKFJOKSA0NzgyNgorCQkJCUlUQUxZCisKKzAwLTE0LTNCICAgKGhleCkJCVNlbnNvdmF0aW9uIEFHCiswMDE0M0IgICAgIChiYXNlIDE2KQkJU2Vuc292YXRpb24gQUcKKwkJCQlMdWR3aWdzaGFmZW5lciBTdHIuIDI5CisJCQkJU3RvY2thY2ggQmFkZW4tV3VlcnR0ZW1iZXJnIDc4MzMzCisJCQkJR0VSTUFOWQorCiswMC0xNC0zQyAgIChoZXgpCQlSaGVpbm1ldGFsbCBDYW5hZGEgSW5jLgorMDAxNDNDICAgICAoYmFzZSAxNikJCVJoZWlubWV0YWxsIENhbmFkYSBJbmMuCisJCQkJMjI1IGJvdWwgZHUgc2VtaW5haXJlIHN1ZAorCQkJCVN0LUplYW4tc3VyLVJpY2hlbGlldSBRdWViZWMgSjNCIDhFOQorCQkJCUNBTkFEQQorCiswMC0xNC0zRCAgIChoZXgpCQlBZXZvZSBJbmMuCiswMDE0M0QgICAgIChiYXNlIDE2KQkJQWV2b2UgSW5jLgorCQkJCTExRiwgTm8gMjMsIEtlZWx1bmcgUm9hZAorCQkJCVRhaXBlaSBIc2luWWkgRGlzdHJpY3QgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC0zRSAgIChoZXgpCQlBaXJMaW5rIENvbW11bmljYXRpb25zLCBJbmMuCiswMDE0M0UgICAgIChiYXNlIDE2KQkJQWlyTGluayBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTMxNTkgQ29ycG9yYXRlIFBsYWNlCisJCQkJSGF5d2FyZCBDQSA5NDU0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtM0YgICAoaGV4KQkJSG90d2F5IFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMTQzRiAgICAgKGJhc2UgMTYpCQlIb3R3YXkgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCU5vLiA4MSwgSHNpbiBUYWkgNXRoIFJvYWQgU2VjdGlvbiAxCisJCQkJMTFGLTMKKwkJCQlTaGlKciBUYWlwZWkgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC00MCAgIChoZXgpCQlBVE9NSUMgQ29ycG9yYXRpb24KKzAwMTQ0MCAgICAgKGJhc2UgMTYpCQlBVE9NSUMgQ29ycG9yYXRpb24KKwkJCQlNQU1QTyBCTERHCisJCQkJMS0zLTExLEFTQUtVU0FCQVNISQorCQkJCVRBSVRPLUtVIFRPS1lPIDExMS0wMDUzCisJCQkJSkFQQU4KKworMDAtMTQtNDEgICAoaGV4KQkJSW5ub3ZhdGlvbiBTb3VuZCBUZWNobm9sb2d5IENvLiwgTFRELgorMDAxNDQxICAgICAoYmFzZSAxNikJCUlubm92YXRpb24gU291bmQgVGVjaG5vbG9neSBDby4sIExURC4KKwkJCQlCdWlsZGluZyAydGguLEN1aWhhaSBJbmR1c3RyaWFsIEFyZWEsCisJCQkJSHVhaWRlLCBGdXlvbmcgVG93bgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDMKKwkJCQlDSElOQQorCiswMC0xNC00MiAgIChoZXgpCQlBVFRPIENPUlBPUkFUSU9OCiswMDE0NDIgICAgIChiYXNlIDE2KQkJQVRUTyBDT1JQT1JBVElPTgorCQkJCTEtMjUtMjMgSG9uZ28sCisJCQkJQnVua3lvLWt1LAorCQkJCVRva3lvIDExMy04NDI1CisJCQkJSkFQQU4KKworMDAtMTQtNDMgICAoaGV4KQkJQ29uc3VsdHJvbmljcyBFdXJvcGUgTHRkCiswMDE0NDMgICAgIChiYXNlIDE2KQkJQ29uc3VsdHJvbmljcyBFdXJvcGUgTHRkCisJCQkJRWxlY3Ryb24gV2F5CisJCQkJQ2hhbmRsZXJzIEZvcmQgSGFudHMgU081MyA0U0UKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNC00NCAgIChoZXgpCQlHcnVuZGZvcyBFbGVjdHJvbmljcworMDAxNDQ0ICAgICAoYmFzZSAxNikJCUdydW5kZm9zIEVsZWN0cm9uaWNzCisJCQkJQmlya2V2YWVuZ2V0IDItMTAKKwkJCQlCamVycmluZ2JybyAgREs4ODUwCisJCQkJREVOTUFSSworCiswMC0xNC00NSAgIChoZXgpCQlUZWxlZm9uLUdyYWRuamEgZC5vLm8uCiswMDE0NDUgICAgIChiYXNlIDE2KQkJVGVsZWZvbi1HcmFkbmphIGQuby5vLgorCQkJCVBsZXNpdmlja2EgMworCQkJCVN2ZXRhIE5lZGVsamEgWnVwYW5pamEgWmFncmViYWNrYSAxMDQzMQorCQkJCUNST0FUSUEKKworMDAtMTQtNDYgICAoaGV4KQkJU3VwZXJWaXNpb24gU29sdXRpb25zIExMQworMDAxNDQ2ICAgICAoYmFzZSAxNikJCVN1cGVyVmlzaW9uIFNvbHV0aW9ucyBMTEMKKwkJCQk3NjIgSW5kdXN0cmlhbCBEci4KKwkJCQlFbG1odXJzdCBJTCA2MDEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNDcgICAoaGV4KQkJQk9BWiBJbmMuCiswMDE0NDcgICAgIChiYXNlIDE2KQkJQk9BWiBJbmMuCisJCQkJMjgyIFB1a29rLXJpIFNvbmdTYW4tbXlvbiBEYW5nemluLWd1biBDaHVuZ2NoZW9uZ25hbS1kbywgIDM0My04MzQKKwkJCQkjMzAxLCAxNDI5LTcgU2VvQ2hvLWRvbmcKKwkJCQlTZW91bCBTZW9DaG8tZ3UgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC00OCAgIChoZXgpCQlJbnZlbnRlYyBNdWx0aW1lZGlhICYgVGVsZWNvbSBDb3Jwb3JhdGlvbgorMDAxNDQ4ICAgICAoYmFzZSAxNikJCUludmVudGVjIE11bHRpbWVkaWEgJiBUZWxlY29tIENvcnBvcmF0aW9uCisJCQkJNUYsTk8uMzk2LFNlYy4xIE5laS1IdSBSb2FkCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTQ5ICAgKGhleCkJCVNpY2h1YW4gQ2hhbmdob25nIEVsZWN0cmljIEx0ZC4KKzAwMTQ0OSAgICAgKGJhc2UgMTYpCQlTaWNodWFuIENoYW5naG9uZyBFbGVjdHJpYyBMdGQuCisJCQkJTm8uMzUsRWFzdCBNaWFuWGluIFJvYWQKKwkJCQlNaWFuWWFuZyBTaUNodWFuIFBSQyA2MjEwMDAKKwkJCQlDSElOQQorCiswMC0xNC00QSAgIChoZXgpCQlUYWl3YW4gVGhpY2stRmlsbSBJbmQuIENvcnAuCiswMDE0NEEgICAgIChiYXNlIDE2KQkJVGFpd2FuIFRoaWNrLUZpbG0gSW5kLiBDb3JwLgorCQkJCU5PLjEyNixXdXUgR29uZyAybmQgUkQsCisJCQkJV3V1IEd1dSBJbmR1c3RyaWFsIFpvbmUKKwkJCQlUYWlwZWkgSHNpZW4gIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtNEIgICAoaGV4KQkJSGlmbiwgSW5jLgorMDAxNDRCICAgICAoYmFzZSAxNikJCUhpZm4sIEluYy4KKwkJCQk3NTAgVW5pdmVyc2l0eSBBdmUKKwkJCQlTdWl0ZSAyMDAKKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTRDICAgKGhleCkJCUdlbmVyYWwgTWV0ZXJzIENvcnAuCiswMDE0NEMgICAgIChiYXNlIDE2KQkJR2VuZXJhbCBNZXRlcnMgQ29ycC4KKwkJCQkxOTM1IERvbWluaW9uIFdheQorCQkJCUNvbG9yYWRvIFNwcmluZ3MgQ29sb3JhZG8gODA5MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTREICAgKGhleCkJCUludGVsbGlnZW50IFN5c3RlbXMKKzAwMTQ0RCAgICAgKGJhc2UgMTYpCQlJbnRlbGxpZ2VudCBTeXN0ZW1zCisJCQkJMTExMDEgSm9obnMgSG9wa2lucyBSb2FkCisJCQkJTGF1cmVsIE1EIDIwNzIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC00RSAgIChoZXgpCQlTUklTQQorMDAxNDRFICAgICAoYmFzZSAxNikJCVNSSVNBCisJCQkJMzYvMSwgTmFraGltb3Zza2l5IHByLXQKKwkJCQlNb3Njb3cgMTE3MjE4CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTE0LTRGICAgKGhleCkJCU9yYWNsZSBDb3Jwb3JhdGlvbgorMDAxNDRGICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbgorCQkJCTE3IE5ldHdvcmsgQ2lyY2xlCisJCQkJQmxkZy4gMTcsIFVNUEsxNy0xMzEKKwkJCQlNZW5sbyBQYXJrIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC01MCAgIChoZXgpCQlIZWltIFN5c3RlbXMgR21iSAorMDAxNDUwICAgICAoYmFzZSAxNikJCUhlaW0gU3lzdGVtcyBHbWJICisJCQkJRnJpZWRyaWNoIEViZXJ0IFN0cmFzc2UKKwkJCQlUZWNobm9sb2dpZVBhcmsKKwkJCQlCZXJnaXNjaCBHbGFkYmFjaCBOUlcgNTE0MjkKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LTUxICAgKGhleCkJCUFwcGxlIENvbXB1dGVyIEluYy4KKzAwMTQ1MSAgICAgKGJhc2UgMTYpCQlBcHBsZSBDb21wdXRlciBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJTVM6MzVHUE8KKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTUyICAgKGhleCkJCUNBTENVTEVYLElOQy4KKzAwMTQ1MiAgICAgKGJhc2UgMTYpCQlDQUxDVUxFWCxJTkMuCisJCQkJMTMyIFcuIExBUyBDUlVDRVMgQVZFLgorCQkJCUxBUyBDUlVDRVMgTkVXIE1FWElDTyA4ODAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNTMgICAoaGV4KQkJQURWQU5URUNIIFRFQ0hOT0xPR0lFUyBDTy4sTFRECiswMDE0NTMgICAgIChiYXNlIDE2KQkJQURWQU5URUNIIFRFQ0hOT0xPR0lFUyBDTy4sTFRECisJCQkJIzEyMDIgQUNFIFRFQ0hOTyBUT1dFUiwgNjg0LTEKKwkJCQlEZXVuZ2Nob24tM0RvbmcsIEthbmdzZW8tS3UKKwkJCQlTZW91bCAxNTctNzIxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTU0ICAgKGhleCkJCVN5bXdhdmUKKzAwMTQ1NCAgICAgKGJhc2UgMTYpCQlTeW13YXZlCisJCQkJMTAyNTEgVmlzdGEgU29ycmVudG8gUGFya3dheQorCQkJCVN1aXRlIDEwMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNTUgICAoaGV4KQkJQ29kZXIgRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KKzAwMTQ1NSAgICAgKGJhc2UgMTYpCQlDb2RlciBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorCQkJCVRha2VkYSBCbGRnLCAxLTMwLTYgU2hpcmFzYWdpLAorCQkJCU5ha2Fuby1rdSBUb2t5byAxNjUtMDAzNQorCQkJCUpBUEFOCisKKzAwLTE0LTU2ICAgKGhleCkJCUVkZ2UgUHJvZHVjdHMKKzAwMTQ1NiAgICAgKGJhc2UgMTYpCQlFZGdlIFByb2R1Y3RzCisJCQkJMTA4MCBTb3V0aCBEZXBvdCBEcml2ZQorCQkJCU9nZGVuIFV0YWggODQ0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTU3ICAgKGhleCkJCVQtVklQUyBBUworMDAxNDU3ICAgICAoYmFzZSAxNikJCVQtVklQUyBBUworCQkJCU9zdGVuc2pvdmVpZW4gMTgKKwkJCQlPc2xvIE5PLTA2NjEKKwkJCQlOT1JXQVkKKworMDAtMTQtNTggICAoaGV4KQkJSFMgQXV0b21hdGljIEFwUworMDAxNDU4ICAgICAoYmFzZSAxNikJCUhTIEF1dG9tYXRpYyBBcFMKKwkJCQlCamVycmluZ2Jyb3ZlaiA3MAorCQkJCVJvZG92cmUgIDI2MTAKKwkJCQlERU5NQVJLCisKKzAwLTE0LTU5ICAgKGhleCkJCU1vcmFtIENvLiwgTHRkLgorMDAxNDU5ICAgICAoYmFzZSAxNikJCU1vcmFtIENvLiwgTHRkLgorCQkJCTNGLCBNYW53b2wgQmxkZy4sIDEwMjItNAorCQkJCVlvdW5ndG9uZy1kb25nLCBZb3VuZ3RvbmctZ3UKKwkJCQlTdXdvbi1zaGkgR3lvdW5nZ2ktZG8gNDQzLTgxMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC01QSAgIChoZXgpCQlOZXJhdGVjIEFHCiswMDE0NUEgICAgIChiYXNlIDE2KQkJTmVyYXRlYyBBRworCQkJCVJvc3N3aWVzc3RyYXNzZSAyOQorCQkJCUNILTg2MDggQnViaWtvbiBaSAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE0LTVCICAgKGhleCkJCVNlZWtlck5ldCBJbmMuCiswMDE0NUIgICAgIChiYXNlIDE2KQkJU2Vla2VyTmV0IEluYy4KKwkJCQkzMDAgU2F0ZWxsaXRlIEJsdmQuCisJCQkJU3V3YW5lZSBHZW9yZ2lhIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC01QyAgIChoZXgpCQlJbnRyb25pY3MgQi5WLgorMDAxNDVDICAgICAoYmFzZSAxNikJCUludHJvbmljcyBCLlYuCisJCQkJSGVybWVzd2VnIDIyCisJCQkJQmFybmV2ZWxkIEdlbGRlcmxhbmQgMzc3MSBORAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE0LTVEICAgKGhleCkJCVdKIENvbW11bmljYXRpb25zLCBJbmMuCiswMDE0NUQgICAgIChiYXNlIDE2KQkJV0ogQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk0MDEgUml2ZXIgT2FrcyBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTVFICAgKGhleCkJCUlCTSBDb3JwCiswMDE0NUUgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTVGICAgKGhleCkJCUFESVRFQyBDTy4gTFRECiswMDE0NUYgICAgIChiYXNlIDE2KQkJQURJVEVDIENPLiBMVEQKKwkJCQk0RiBIeW93b24gQi9ELCA5OS01LAorCQkJCUthcmFrLWRvbmcsU29uZ3BhLWd1CisJCQkJU2VvdWwgMTM4LTgwNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC02MCAgIChoZXgpCQlLeW9jZXJhIFdpcmVsZXNzIENvcnAuCiswMDE0NjAgICAgIChiYXNlIDE2KQkJS3lvY2VyYSBXaXJlbGVzcyBDb3JwLgorCQkJCTEwMzAwIENhbXB1cyBQb2ludCBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNjEgICAoaGV4KQkJQ09ST05BIENPUlBPUkFUSU9OCiswMDE0NjEgICAgIChiYXNlIDE2KQkJQ09ST05BIENPUlBPUkFUSU9OCisJCQkJNy03LCBISUdBU0hJLVNISU5CTworCQkJCVNBTkpPLVNISSBOSUlHQVRBIDk1NS04NTEwCisJCQkJSkFQQU4KKworMDAtMTQtNjIgICAoaGV4KQkJRGlnaXdlbGwgVGVjaG5vbG9neSwgaW5jCiswMDE0NjIgICAgIChiYXNlIDE2KQkJRGlnaXdlbGwgVGVjaG5vbG9neSwgaW5jCisJCQkJNEYsIE5vLjEsIFByb3NwZXJpdHkgMXN0IFJvYWQKKwkJCQlIc2luY2h1IFNjaWVuY2UgUGFyayAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTYzICAgKGhleCkJCUlEQ1MgTi5WLgorMDAxNDYzICAgICAoYmFzZSAxNikJCUlEQ1MgTi5WLgorCQkJCUhlbGxlYmVlbWRlbiA5CisJCQkJSGFzc2VsdCBMaW1idXJnIDM1MDAKKwkJCQlCRUxHSVVNCisKKzAwLTE0LTY0ICAgKGhleCkJCUNyeXB0b3NvZnQKKzAwMTQ2NCAgICAgKGJhc2UgMTYpCQlDcnlwdG9zb2Z0CisJCQkJTGVybW9udG92YSBzdHIsIDMKKwkJCQlQZW56YSByZWdpb24gNDQwMDI2CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTE0LTY1ICAgKGhleCkJCU5vdm8gTm9yZGlzayBBL1MKKzAwMTQ2NSAgICAgKGJhc2UgMTYpCQlOb3ZvIE5vcmRpc2sgQS9TCisJCQkJTm92byBBbGxlCisJCQkJQmFnc3ZhZXJkICAyODgwCisJCQkJREVOTUFSSworCiswMC0xNC02NiAgIChoZXgpCQlLbGVpbmhlbnogRWxla3Ryb25payBHbWJICiswMDE0NjYgICAgIChiYXNlIDE2KQkJS2xlaW5oZW56IEVsZWt0cm9uaWsgR21iSAorCQkJCUdyZWluZXJiZXJnIDE0CisJCQkJTXVuaWNoICA4MTM3MQorCQkJCUdFUk1BTlkKKworMDAtMTQtNjcgICAoaGV4KQkJQXJyb3dTcGFuIEluYy4KKzAwMTQ2NyAgICAgKGJhc2UgMTYpCQlBcnJvd1NwYW4gSW5jLgorCQkJCTQ2OTkgT2xkIElyb25zaWRlcyBEci4gU3VpdGUgMTAwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTY4ICAgKGhleCkJCUNlbFBsYW4gSW50ZXJuYXRpb25hbCwgSW5jLgorMDAxNDY4ICAgICAoYmFzZSAxNikJCUNlbFBsYW4gSW50ZXJuYXRpb25hbCwgSW5jLgorCQkJCTE4MzUgQWxleGFuZGVyIEJlbGwgRHJpdmUKKwkJCQlzdWl0ZSAyMDAKKwkJCQlSZXN0b24gVkEgMjAxOTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTY5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTQ2OSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTZBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTQ2QSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTZCICAgKGhleCkJCUFuYWdyYW4sIEluYy4KKzAwMTQ2QiAgICAgKGJhc2UgMTYpCQlBbmFncmFuLCBJbmMuCisJCQkJNTgwIE5vcnRoIFBhc3RvcmlhIEF2CisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC02QyAgIChoZXgpCQlOZXRnZWFyIEluYy4KKzAwMTQ2QyAgICAgKGJhc2UgMTYpCQlOZXRnZWFyIEluYy4KKwkJCQk0NTAwIEdyZWF0IEFtZXJpY2EgUGFya3dheQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC02RCAgIChoZXgpCQlSRiBUZWNobm9sb2dpZXMKKzAwMTQ2RCAgICAgKGJhc2UgMTYpCQlSRiBUZWNobm9sb2dpZXMKKwkJCQkzMTI1IE4gMTI2dGggU3RyZWV0CisJCQkJQnJvb2tmaWVsZCBXSSA1MzAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNkUgICAoaGV4KQkJSC4gU3RvbGwgR21iSCAmIENvLiBLRworMDAxNDZFICAgICAoYmFzZSAxNikJCUguIFN0b2xsIEdtYkggJiBDby4gS0cKKwkJCQlTdG9sbHdlZworCQkJCVJldXRsaW5nZW4gRGV1dHNjaGxhbmQgNzI3NjAKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LTZGICAgKGhleCkJCUtvaGxlciBDbworMDAxNDZGICAgICAoYmFzZSAxNikJCUtvaGxlciBDbworCQkJCTQ0NCBIaWdobGFuZCBEcml2ZQorCQkJCU1TIDA3MgorCQkJCUtvaGxlciBXSSA1MzA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtNzAgICAoaGV4KQkJUHJva29tIFNvZnR3YXJlIFNBCiswMDE0NzAgICAgIChiYXNlIDE2KQkJUHJva29tIFNvZnR3YXJlIFNBCisJCQkJQWwuIEplcm96b2xpbXNraWUgNjUvNzkKKwkJCQlXYXJzemF3YSBNYXpvd2llY2tpZSAwMC02OTcKKwkJCQlQT0xBTkQKKworMDAtMTQtNzEgICAoaGV4KQkJRWFzdGVybiBBc2lhIFRlY2hub2xvZ3kgTGltaXRlZAorMDAxNDcxICAgICAoYmFzZSAxNikJCUVhc3Rlcm4gQXNpYSBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQkxM0YsIE5vLiA5OSwgU2VjLiAxLCBOYW5rYW4gUm9hZCwKKwkJCQlMdWNodSwgVGFveXVhbiAzMzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTcyICAgKGhleCkJCUNoaW5hIEJyb2FkYmFuZCBXaXJlbGVzcyBJUCBTdGFuZGFyZCBHcm91cAorMDAxNDcyICAgICAoYmFzZSAxNikJCUNoaW5hIEJyb2FkYmFuZCBXaXJlbGVzcyBJUCBTdGFuZGFyZCBHcm91cAorCQkJCVAuTy5CT1ggODgsV2VzdCBIaWdoLXRlY2gKKwkJCQlEZXZlbG9wbWVudCBDZW50ZXIsCisJCQkJWGknYW4gU2hhYW4gWGkgNzEwMDc1CisJCQkJQ0hJTkEKKworMDAtMTQtNzMgICAoaGV4KQkJQm9va2hhbSBJbmMKKzAwMTQ3MyAgICAgKGJhc2UgMTYpCQlCb29raGFtIEluYworCQkJCTEwIEJyZXdlciBIdW50IFdheQorCQkJCUthbmF0YSBPTiBLMksgMkI1CisJCQkJQ0FOQURBCisKKzAwLTE0LTc0ICAgKGhleCkJCUs0MCBFbGVjdHJvbmljcworMDAxNDc0ICAgICAoYmFzZSAxNikJCUs0MCBFbGVjdHJvbmljcworCQkJCTYwMCBUb2xsZ2F0ZSBSZC4gVW5pdCBBCisJCQkJRWxnaW4gSUwgNjAxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTc1ICAgKGhleCkJCVdpbGluZSBOZXR3b3JrcywgSW5jLgorMDAxNDc1ICAgICAoYmFzZSAxNikJCVdpbGluZSBOZXR3b3JrcywgSW5jLgorCQkJCTc0MSBBbGV4YW5kZXIgUmQKKwkJCQlQcmluY2V0b24gTkogMDg1NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTc2ICAgKGhleCkJCU11bHRpQ29tIEluZHVzdHJpZXMgTGltaXRlZAorMDAxNDc2ICAgICAoYmFzZSAxNikJCU11bHRpQ29tIEluZHVzdHJpZXMgTGltaXRlZAorCQkJCVJvb20gMTIwNi03LCBNYW5oYXR0YW4gQ2VudGVyLAorCQkJCTggS3dhaSBDaGVvbmcgUmQuCisJCQkJS3dhaSBDaHVuZywgTi5ULiAgCisJCQkJSE9ORyBLT05HCisKKzAwLTE0LTc3ICAgKGhleCkJCU5lcnRlYyAgSW5jLgorMDAxNDc3ICAgICAoYmFzZSAxNikJCU5lcnRlYyAgSW5jLgorCQkJCTk1MCBDb3dpZSBzdC4KKwkJCQlHcmFuYnkgUXVlYmVjIEoySiAxUDIKKwkJCQlDQU5BREEKKworMDAtMTQtNzggICAoaGV4KQkJU2hlblpoZW4gVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDE0NzggICAgIChiYXNlIDE2KQkJU2hlblpoZW4gVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJMy9GLEJsZGcuUjEtQixIaS10ZWNoIEluZHVzdHJpYWwgUGFyaywKKwkJCQlTaGVubmFuIFJkLgorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xNC03OSAgIChoZXgpCQlORUMgTWFnbnVzIENvbW11bmljYXRpb25zLEx0ZC4KKzAwMTQ3OSAgICAgKGJhc2UgMTYpCQlORUMgTWFnbnVzIENvbW11bmljYXRpb25zLEx0ZC4KKwkJCQk0LTI4CisJCQkJTWl0YSAxLUNob21lCisJCQkJTWluYXRvLWt1IFRva3lvIDEwOC0wMDczCisJCQkJSkFQQU4KKworMDAtMTQtN0EgICAoaGV4KQkJRXVidXMgR21iSAorMDAxNDdBICAgICAoYmFzZSAxNikJCUV1YnVzIEdtYkgKKwkJCQlHb2xsaWVyc3RyLiA3MCAgQXVmZ2FuZyBFICA0LlN0b2NrCisJCQkJTXVuaWNoIEJhdmFyaWEgODAzMzkKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LTdCICAgKGhleCkJCUl0ZXJpcywgSW5jLgorMDAxNDdCICAgICAoYmFzZSAxNikJCUl0ZXJpcywgSW5jLgorCQkJCTE1MTUgUy4gTWFuY2hlc3RlciBBdmUuCisJCQkJQW5haGVpbSBDQSA5MjgwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtN0MgICAoaGV4KQkJM0NvbSBMdGQKKzAwMTQ3QyAgICAgKGJhc2UgMTYpCQkzQ29tIEx0ZAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlQZW9wbGVidWlsZGluZyBFc3RhdGUsIE1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cyBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTQtN0QgICAoaGV4KQkJQWVvbiBEaWdpdGFsIEludGVybmF0aW9uYWwKKzAwMTQ3RCAgICAgKGJhc2UgMTYpCQlBZW9uIERpZ2l0YWwgSW50ZXJuYXRpb25hbAorCQkJCTMxLTYsIFRoZSBCdW5kIENlbnRlcgorCQkJCTIyMiBZYW4gQW4gRS4gUmQKKwkJCQlTaGFuZ2hhaSBTSCAyMDAwMDIKKwkJCQlDSElOQQorCiswMC0xNC03RSAgIChoZXgpCQlJbm5lcldpcmVsZXNzCiswMDE0N0UgICAgIChiYXNlIDE2KQkJSW5uZXJXaXJlbGVzcworCQkJCTExNTUgS2FzIERyaXZlLCBTdWl0ZSAyMDAKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC03RiAgIChoZXgpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorMDAxNDdGICAgICAoYmFzZSAxNikJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCisJCQkJUHJpbnMgQm91ZGV3aWpubGFhbiA0NworCQkJCUVkZWdlbSBBbnR3ZXJwIEItMjY1MAorCQkJCUJFTEdJVU0KKworMDAtMTQtODAgICAoaGV4KQkJSGl0YWNoaS1MRyBEYXRhIFN0b3JhZ2UgS29yZWEsIEluYworMDAxNDgwICAgICAoYmFzZSAxNikJCUhpdGFjaGktTEcgRGF0YSBTdG9yYWdlIEtvcmVhLCBJbmMKKwkJCQkxOS0xLENoZW9uZ2hvLXJpCisJCQkJSmlud3V5LU15dW4KKwkJCQlQeXVuZ3RhaWsgS3l1bmdnaS1EbyA0NTEtNzEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LTgxICAgKGhleCkJCU11bHRpbGluayBJbmMKKzAwMTQ4MSAgICAgKGJhc2UgMTYpCQlNdWx0aWxpbmsgSW5jCisJCQkJNTgwIFRlcm5lcyBBdmUKKwkJCQlFbHlyaWEgT0ggNDQwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTgyICAgKGhleCkJCUdvQmFja1RWLCBJbmMKKzAwMTQ4MiAgICAgKGJhc2UgMTYpCQlHb0JhY2tUViwgSW5jCisJCQkJOTM3IEhhbWlsdG9uIEF2ZW51ZQorCQkJCU1lbmxvIFBhcmsgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTgzICAgKGhleCkJCWVYUyBJbmMuCiswMDE0ODMgICAgIChiYXNlIDE2KQkJZVhTIEluYy4KKwkJCQkxOTAwIEFsYW1lZGEgZGUgbGFzIFB1bGdhcworCQkJCVN1aXRlIDEwMworCQkJCVNhbiBNYXRlbyBDQSA5NDQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtODQgICAoaGV4KQkJQ2VybWF0ZSBUZWNobm9sb2dpZXMgSW5jLgorMDAxNDg0ICAgICAoYmFzZSAxNikJCUNlcm1hdGUgVGVjaG5vbG9naWVzIEluYy4KKwkJCQk3Ri0xLCBObyAxNjggTGllbi1DaGVuIFJkLgorCQkJCUNodW5nLUhvIENpdHkgVGFpcGVpIENvdW50eSAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTg1ICAgKGhleCkJCUdpZ2EtQnl0ZQorMDAxNDg1ICAgICAoYmFzZSAxNikJCUdpZ2EtQnl0ZQorCQkJCU5vLjIxNSxOYW4tUGluZyBSb2FkLAorCQkJCVBpbi1KZW4gVGFveXVhbiAzMjYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LTg2ICAgKGhleCkJCUVjaG8gRGlnaXRhbCBBdWRpbyBDb3Jwb3JhdGlvbgorMDAxNDg2ICAgICAoYmFzZSAxNikJCUVjaG8gRGlnaXRhbCBBdWRpbyBDb3Jwb3JhdGlvbgorCQkJCTY0NTAgVmlhIFJlYWwgIzEKKwkJCQlDYXJwaW50ZXJpYSBDQSA5MzAxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtODcgICAoaGV4KQkJQW1lcmljYW4gVGVjaG5vbG9neSBJbnRlZ3JhdG9ycworMDAxNDg3ICAgICAoYmFzZSAxNikJCUFtZXJpY2FuIFRlY2hub2xvZ3kgSW50ZWdyYXRvcnMKKwkJCQkxMzU4IFJvc2FsaWEgQXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTg4ICAgKGhleCkJCUFrb3JyaQorMDAxNDg4ICAgICAoYmFzZSAxNikJCUFrb3JyaQorCQkJCTMwNSBGb3N0ZXIgU3RyZWV0CisJCQkJTGl0dGxldG9uIE1BIDAxNDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC04OSAgIChoZXgpCQlCMTU0MDIxMDAgLSBKQU5ERUksIFMuTC4KKzAwMTQ4OSAgICAgKGJhc2UgMTYpCQlCMTU0MDIxMDAgLSBKQU5ERUksIFMuTC4KKwkJCQlQT0wuIElORC4gUE9DT01BQ08sIEUtMjgKKwkJCQlMQSBDT1JVw4PigJhBICAxNTE5MAorCQkJCVNQQUlOCisKKzAwLTE0LThBICAgKGhleCkJCUVsaW4gRWJnIFRyYWN0aW9uIEdtYmgKKzAwMTQ4QSAgICAgKGJhc2UgMTYpCQlFbGluIEViZyBUcmFjdGlvbiBHbWJoCisJCQkJQ3VtYmVybGFuZHN0cmFzc2UgMzIKKwkJCQlWaWVubmEgIDExNDAKKwkJCQlBVVNUUklBCisKKzAwLTE0LThCICAgKGhleCkJCUdsb2JvIEVsZWN0cm9uaWMgR21iSCAmIENvLiBLRworMDAxNDhCICAgICAoYmFzZSAxNikJCUdsb2JvIEVsZWN0cm9uaWMgR21iSCAmIENvLiBLRworCQkJCUluZHVzdHJpZXN0cmFzc2UgNGEKKwkJCQlOaWVkZXJsYXVlciBCYXllcm4gOTc2MTgKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LThDICAgKGhleCkJCUZvcnRyZXNzIFRlY2hub2xvZ2llcworMDAxNDhDICAgICAoYmFzZSAxNikJCUZvcnRyZXNzIFRlY2hub2xvZ2llcworCQkJCTIgVGVjaG5vbG9neSBQYXJrIERyaXZlCisJCQkJV2VzdGZvcmQgTUEgMDE4ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LThEICAgKGhleCkJCUN1YmljIERlZmVuc2UgU2ltdWxhdGlvbiBTeXN0ZW1zCiswMDE0OEQgICAgIChiYXNlIDE2KQkJQ3ViaWMgRGVmZW5zZSBTaW11bGF0aW9uIFN5c3RlbXMKKwkJCQkyMDAxIFcuIE9ha3JpZGdlIFJvYWQKKwkJCQlPcmxhbmRvIEZMIDMyODA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC04RSAgIChoZXgpCQlUZWxlIFBvd2VyIEluYy4KKzAwMTQ4RSAgICAgKGJhc2UgMTYpCQlUZWxlIFBvd2VyIEluYy4KKwkJCQkxLTQ2LTE1I0IxRgorCQkJCUFzYWhpZ2Fva2EKKwkJCQlOZXJpbWEta3UgVG9reW8gMTc2LTAwMDUKKwkJCQlKQVBBTgorCiswMC0xNC04RiAgIChoZXgpCQlQcm90cm9uaWMgKEZhciBFYXN0KSBMdGQuCiswMDE0OEYgICAgIChiYXNlIDE2KQkJUHJvdHJvbmljIChGYXIgRWFzdCkgTHRkLgorCQkJCVJtLiAyNTA0LCBOYW55YW5nIFBsYXphLAorCQkJCTU3IEh1bmcgVG8gUm9hZAorCQkJCUt3dW4gVG9uZyBLb3dsb29uIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xNC05MCAgIChoZXgpCQlBU1AgQ29ycG9yYXRpb24KKzAwMTQ5MCAgICAgKGJhc2UgMTYpCQlBU1AgQ29ycG9yYXRpb24KKwkJCQk0NjUgSW5kdXN0cmlhbCBQYXJrIFJvYWQKKwkJCQlIYXJ0d2VsbCBHQSAzMDY0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtOTEgICAoaGV4KQkJRGFuaWVscyBFbGVjdHJvbmljcyBMdGQuCiswMDE0OTEgICAgIChiYXNlIDE2KQkJRGFuaWVscyBFbGVjdHJvbmljcyBMdGQuCisJCQkJNDMgRXJpZSBTdAorCQkJCVZpY3RvcmlhIEJDIFY4ViAxUDgKKwkJCQlDQU5BREEKKworMDAtMTQtOTIgICAoaGV4KQkJTGl0ZW9uLCBNb2JpbGUgTWVkaWEgU29sdXRpb24gU0JVCiswMDE0OTIgICAgIChiYXNlIDE2KQkJTGl0ZW9uLCBNb2JpbGUgTWVkaWEgU29sdXRpb24gU0JVCisJCQkJNEYsIDMsIExhbmUgNzY4LCBTZWMuIDQsCisJCQkJUGF0ZWggUm9hZCwKKwkJCQlUYWlwZWkgIDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtOTMgICAoaGV4KQkJU3lzdGltYXggU29sdXRpb25zCiswMDE0OTMgICAgIChiYXNlIDE2KQkJU3lzdGltYXggU29sdXRpb25zCisJCQkJMTMwMCBFIExvb2tvdXQgRHJpdmUKKwkJCQlSaWNoYXJkc29uIFRleGFzIDc1MDgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC05NCAgIChoZXgpCQlFU1UgQUcKKzAwMTQ5NCAgICAgKGJhc2UgMTYpCQlFU1UgQUcKKwkJCQlMdWthc3N0cmFzc2UgMjkKKwkJCQlTdC4gR2FsbGVuICA5MDA4CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTQtOTUgICAoaGV4KQkJMldpcmUsIEluYy4KKzAwMTQ5NSAgICAgKGJhc2UgMTYpCQkyV2lyZSwgSW5jLgorCQkJCTE3MDQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTk2ICAgKGhleCkJCVBob25pYyBDb3JwLgorMDAxNDk2ICAgICAoYmFzZSAxNikJCVBob25pYyBDb3JwLgorCQkJCTEydGhGbCwgNTkgVHVuZyBIc2luZyBSZAorCQkJCVRhaXBlaSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC05NyAgIChoZXgpCQlaSElZVUFOIEVsZXRyb25pY3MgY28uLGx0ZC4KKzAwMTQ5NyAgICAgKGJhc2UgMTYpCQlaSElZVUFOIEVsZXRyb25pY3MgY28uLGx0ZC4KKwkJCQkyIEZsb29yLCBOTy4zIEJ1aWxkaW5nLCBIdWFuZ3pob3UgSW5kdXN0cmlhbCBFc3RhdGUsIENoZWJlaSBSb2FkLAorCQkJCVRpYW5oZQorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgNTEwNjYwCisJCQkJQ0hJTkEKKworMDAtMTQtOTggICAoaGV4KQkJVmlraW5nIERlc2lnbiBUZWNobm9sb2d5CiswMDE0OTggICAgIChiYXNlIDE2KQkJVmlraW5nIERlc2lnbiBUZWNobm9sb2d5CisJCQkJMkYsIE5vLjIsIExhbmUgNDIsCisJCQkJSG91LUdhbmcgU3RyZWV0LCBTaGloLUxpbiBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC05OSAgIChoZXgpCQlIZWxpY29tbSBJbmMKKzAwMTQ5OSAgICAgKGJhc2UgMTYpCQlIZWxpY29tbSBJbmMKKwkJCQkxOTQ3IENhbWlubyBWaWRhIFJvYmxlCisJCQkJU3VpdGUgMTA5CisJCQkJQ2FybHNiYWQgQ0EgOTIwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LTlBICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxNDlBICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTYwMCBOIFVzIEh3eSA0NQorCQkJCVJtIE1XMTEzCisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC05QiAgIChoZXgpCQlOb2tvdGEgQ29tbXVuaWNhdGlvbnMsIExMQworMDAxNDlCICAgICAoYmFzZSAxNikJCU5va290YSBDb21tdW5pY2F0aW9ucywgTExDCisJCQkJMjAwIEdhbGxlcmlhIFBhcmt3YXkKKwkJCQlTdWl0ZSAxODIwCisJCQkJQXRsYW50YSBHZW9yZ2lhIDMwMzM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC05QyAgIChoZXgpCQlIRiBDb21wYW55CiswMDE0OUMgICAgIChiYXNlIDE2KQkJSEYgQ29tcGFueQorCQkJCU5vZGUgUGFyayBUb3VyYWluZQorCQkJCUJQMSBUYXV4aWdueSAgMzczMTAKKwkJCQlGUkFOQ0UKKworMDAtMTQtOUQgICAoaGV4KQkJU291bmQgSUQgSW5jLgorMDAxNDlEICAgICAoYmFzZSAxNikJCVNvdW5kIElEIEluYy4KKwkJCQkzNDMwIFdlc3QgQmF5c2hvcmUgUm9hZAorCQkJCVBhbG8gQWx0byBDYWxpZm9ybmlhIDk0MzAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC05RSAgIChoZXgpCQlVYk9ORSBDby4sIEx0ZAorMDAxNDlFICAgICAoYmFzZSAxNikJCVViT05FIENvLiwgTHRkCisJCQkJU2hpbnlvdW5nIEIuRC4gNjAyLCBTZW9IeWVvbjItRG9uZworCQkJCUJ1bmRhbmctR3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnLWRvIDQ2My04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtOUYgICAoaGV4KQkJU3lzdGVtIGFuZCBDaGlwcywgSW5jLgorMDAxNDlGICAgICAoYmFzZSAxNikJCVN5c3RlbSBhbmQgQ2hpcHMsIEluYy4KKwkJCQk0RixOby4gMSwgTGFuZSA1MCwgTmFuS2FuZyBSb2FkLCBTZWN0aW9uIDMsCisJCQkJVGFpcGVpICAxMTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LUEwICAgKGhleCkJCUFjY3NlbnNlLCBJbmMuCiswMDE0QTAgICAgIChiYXNlIDE2KQkJQWNjc2Vuc2UsIEluYy4KKwkJCQk0NjAgV2FyZCBEcml2ZQorCQkJCVN1aXRlIEUyCisJCQkJU2FudGEgQmFyYmFyYSBDYWxpZm9ybmlhIDkzMTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1BMSAgIChoZXgpCQlTeW5jaHJvbm91cyBDb21tdW5pY2F0aW9uIENvcnAKKzAwMTRBMSAgICAgKGJhc2UgMTYpCQlTeW5jaHJvbm91cyBDb21tdW5pY2F0aW9uIENvcnAKKwkJCQk5IGZsb29yLCBObzE2OCwgUnVlaWd1YW5nIFJvYWQsIE5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LUEyICAgKGhleCkJCUNvcmUgTWljcm8gU3lzdGVtcyBJbmMuCiswMDE0QTIgICAgIChiYXNlIDE2KQkJQ29yZSBNaWNybyBTeXN0ZW1zIEluYy4KKwkJCQlXYWp1biBCbGRnLiA2RiwgMi0yMi0yLCBLb2lzaGlrYXdhCisJCQkJQnVua3lvLUt1IFRva3lvIDExMi0wMDAyCisJCQkJSkFQQU4KKworMDAtMTQtQTMgICAoaGV4KQkJVml0ZWxlYyBCVgorMDAxNEEzICAgICAoYmFzZSAxNikJCVZpdGVsZWMgQlYKKwkJCQlrYXBpdHRlbHdlZyAxOAorCQkJCVAuTy5Cb3ggNjU0MworCQkJCUJyZWRhIE5CIE5MIDQ4MjcgSEcKKwkJCQlORVRIRVJMQU5EUworCiswMC0xNC1BNCAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorMDAxNEE0ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCisJCQkJNUYtMSwgNSBIU0lOLUFOIFJPQUQKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU5DSFUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtQTUgICAoaGV4KQkJR2VtdGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDE0QTUgICAgIChiYXNlIDE2KQkJR2VtdGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uIDEgSmVuIEFpIFJvYWQKKwkJCQlIc2luY2h1IEluZHVzdHJpYWwgUGFyaworCQkJCUh1a291LCBIc2luY2h1ICAzMDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LUE2ICAgKGhleCkJCVRlcmFuZXRpY3MsIEluYy4KKzAwMTRBNiAgICAgKGJhc2UgMTYpCQlUZXJhbmV0aWNzLCBJbmMuCisJCQkJMzk2NSBGcmVlZG9tIENpcmNsZQorCQkJCSBTaXh0aCBGbG9vcgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1BNyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxNEE3ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICAxNzkwVgorCQkJCURFTk1BUksKKworMDAtMTQtQTggICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNEE4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQTkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNEE5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQUEgICAoaGV4KQkJQXNobHkgQXVkaW8sIEluYy4KKzAwMTRBQSAgICAgKGJhc2UgMTYpCQlBc2hseSBBdWRpbywgSW5jLgorCQkJCTg0NyBIb2x0IFJvYWQKKwkJCQlXZWJzdGVyIE5ZIDE0NTgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1BQiAgIChoZXgpCQlTZW5oYWkgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxNEFCICAgICAoYmFzZSAxNikJCVNlbmhhaSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJUm0uMTBBLiAyOC9GLlNFR1BsYXphIEh1YXFpYW5nYmVpIFJvYWQKKwkJCQlTaGVuZ3poZW4gR3Vhbmdkb25nIDUxODAzMQorCQkJCUNISU5BCisKKzAwLTE0LUFDICAgKGhleCkJCUJvdW50aWZ1bCBXaUZpCiswMDE0QUMgICAgIChiYXNlIDE2KQkJQm91bnRpZnVsIFdpRmkKKwkJCQk3MDcgV2VzdCA3MDAgU291dGgKKwkJCQlXb29kcyBDcm9zcyBVdGFoIDg0MDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1BRCAgIChoZXgpCQlHYXNzbmVyIFdpZWdlLSB1LiBNZcODxbh0ZWNobmlrIEdtYkgKKzAwMTRBRCAgICAgKGJhc2UgMTYpCQlHYXNzbmVyIFdpZWdlLSB1LiBNZcODxbh0ZWNobmlrIEdtYkgKKwkJCQlNw7xuY2huZXIgQnVuZGVzc3RyYcOfZSAxMjMgICAKKwkJCQlTYWx6YnVyZyAgQS01MDIwCisJCQkJQVVTVFJJQQorCiswMC0xNC1BRSAgIChoZXgpCQlXaXpsb2dpY3MgQ28uLCBMdGQuCiswMDE0QUUgICAgIChiYXNlIDE2KQkJV2l6bG9naWNzIENvLiwgTHRkLgorCQkJCVJtIzEzMjEsIFNhbWNoYW5nIFBsYXphLCAxNzMsCisJCQkJRG93aGEtRG9uZyBNYXBvLUd1LAorCQkJCVNlb3VsICAxMjEtNzQ1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LUFGICAgKGhleCkJCURhdGFzeW0gSW5jLgorMDAxNEFGICAgICAoYmFzZSAxNikJCURhdGFzeW0gSW5jLgorCQkJCTQzNSBFbGdpbiBTdHJlZXQKKwkJCQlCcmFudGZvcmQgT250YXJpbyBOM1M3UDUKKwkJCQlDQU5BREEKKworMDAtMTQtQjAgICAoaGV4KQkJTmFlaWwgQ29tbXVuaXR5CiswMDE0QjAgICAgIChiYXNlIDE2KQkJTmFlaWwgQ29tbXVuaXR5CisJCQkJIzUwNiBBY2VUd2luIFRvd2VyIDEsIEd1cm8tRG9uZworCQkJCVNlb3VsIEd1cm8tR3UgMTUyNzc5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LUIxICAgKGhleCkJCUF2aXRlYyBBQgorMDAxNEIxICAgICAoYmFzZSAxNikJCUF2aXRlYyBBQgorCQkJCUJveCA3MTM5CisJCQkJU1VOREJZQkVSRyAgU0UtMTc0IDA3CisJCQkJU1dFREVOCisKKzAwLTE0LUIyICAgKGhleCkJCW1DdWJlbG9naWNzIENvcnBvcmF0aW9uCiswMDE0QjIgICAgIChiYXNlIDE2KQkJbUN1YmVsb2dpY3MgQ29ycG9yYXRpb24KKwkJCQk0RiwgVW5pYm9va3MgQi9ELCA1MTQtMSwgRG9nb2stRG9uZywgS2FuZ05hbQorCQkJCVNlb3VsICAxMzUtMjcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LUIzICAgKGhleCkJCUNvcmVTdGFyIEludGVybmF0aW9uYWwgQ29ycAorMDAxNEIzICAgICAoYmFzZSAxNikJCUNvcmVTdGFyIEludGVybmF0aW9uYWwgQ29ycAorCQkJCTEwNDQgU2FuZHkgSGlsbCBSZAorCQkJCUlyd2luIFBBIDE1NjQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1CNCAgIChoZXgpCQlHZW5lcmFsIER5bmFtaWNzIFVuaXRlZCBLaW5nZG9tIEx0ZAorMDAxNEI0ICAgICAoYmFzZSAxNikJCUdlbmVyYWwgRHluYW1pY3MgVW5pdGVkIEtpbmdkb20gTHRkCisJCQkJQ2FzdGxlaGFtIFJvYWQKKwkJCQlTdCBMZW9uYXJkcyBvbiBTZWEgRWFzdCBTdXNzZXggVE4zOCA5TkoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNC1CNSAgIChoZXgpCQlQSFlTSU9NRVRSSVgsSU5DCiswMDE0QjUgICAgIChiYXNlIDE2KQkJUEhZU0lPTUVUUklYLElOQworCQkJCTEwMSBCSUxMRVJJQ0EgQVZFICM1CisJCQkJTi4gQklMTEVSSUNBIE1BIDAxODYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1CNiAgIChoZXgpCQlFbnN3ZXIgVGVjaG5vbG9neSBJbmMuCiswMDE0QjYgICAgIChiYXNlIDE2KQkJRW5zd2VyIFRlY2hub2xvZ3kgSW5jLgorCQkJCTFGIE5vLjcwIFNlYy4yIENodW5nIFNodW4gU3QuCisJCQkJVGFpcGVpICAxMTYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LUI3ICAgKGhleCkJCUFSIEluZm90ZWsgSW5jLgorMDAxNEI3ICAgICAoYmFzZSAxNikJCUFSIEluZm90ZWsgSW5jLgorCQkJCTlGLCBOby4xODUsIEdhbmdRaWFuIFJvYWQKKwkJCQlOZWlIdSBUZWNobm9sb2d5IFBhcmssCisJCQkJVGFpcGVpICAxMTQ5NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTQtQjggICAoaGV4KQkJSGlsbC1Sb20KKzAwMTRCOCAgICAgKGJhc2UgMTYpCQlIaWxsLVJvbQorCQkJCTExMjUgRS4gUGVhcmwgU3RyZWV0CisJCQkJQmF0ZXN2aWxsZSBJTiA0NzAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQjkgICAoaGV4KQkJTVNUQVIgU0VNSUNPTkRVQ1RPUgorMDAxNEI5ICAgICAoYmFzZSAxNikJCU1TVEFSIFNFTUlDT05EVUNUT1IKKwkJCQkxMS0xMyBydWUgUmVuw6kgSmFjcXVlcworCQkJCUlzc3kgbGVzIE1vdWxpbmVhdXggIDkyMTMwCisJCQkJRlJBTkNFCisKKzAwLTE0LUJBICAgKGhleCkJCUNhcnZlcnMgU0EgZGUgQ1YKKzAwMTRCQSAgICAgKGJhc2UgMTYpCQlDYXJ2ZXJzIFNBIGRlIENWCisJCQkJQWx2YXJleiBkZWwgQ2FzdGlsbG8gMTU1MAorCQkJCUNoYXB1bHRlcGVjIENvdW50cnkKKwkJCQlHdWFkYWxhamFyYSBKYWxpc2NvIDQ0NjIwCisJCQkJTUVYSUNPCisKKzAwLTE0LUJCICAgKGhleCkJCU9wZW4gSW50ZXJmYWNlIE5vcnRoIEFtZXJpY2EKKzAwMTRCQiAgICAgKGJhc2UgMTYpCQlPcGVuIEludGVyZmFjZSBOb3J0aCBBbWVyaWNhCisJCQkJNTA2IDJuZCBBdmVudWUsIFN1aXRlIDQyMAorCQkJCVNlYXR0bGUgV0EgOTgxMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUJDICAgKGhleCkJCVNZTkVDVElDIFRFTEVDT00gRVhQT1JUUyBQVlQuIExURC4KKzAwMTRCQyAgICAgKGJhc2UgMTYpCQlTWU5FQ1RJQyBURUxFQ09NIEVYUE9SVFMgUFZULiBMVEQuCisJCQkJMTk2LCAxc3QgTWFpbiwgM3JkIFN0YWdlLCA0dGggQmxvY2sKKwkJCQlCYXNhdmVzaHdhciBOYWdhcgorCQkJCUJBTkdBTE9SRSAgNTYwMDc5CisJCQkJSU5ESUEKKworMDAtMTQtQkQgICAoaGV4KQkJaW5jTkVUV09SS1MsIEluYworMDAxNEJEICAgICAoYmFzZSAxNikJCWluY05FVFdPUktTLCBJbmMKKwkJCQkxOTggQnJpZ2h0b24gQXZlCisJCQkJTG9uZyBCcmFuY2ggTkogMDc3NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUJFICAgKGhleCkJCVdpbmsgY29tbXVuaWNhdGlvbiB0ZWNobm9sb2d5IENPLkxURAorMDAxNEJFICAgICAoYmFzZSAxNikJCVdpbmsgY29tbXVuaWNhdGlvbiB0ZWNobm9sb2d5IENPLkxURAorCQkJCUh1aWppYW5nIEluZCBCbGRpbmcgRGFzaGkgVG93bgorCQkJCVBhbnl1IERpc3RyaWN0CisJCQkJR3VhbmcgemhvdSBHdWFuZyBkb25nIDUxMTQzMAorCQkJCUNISU5BCisKKzAwLTE0LUJGICAgKGhleCkJCUNpc2NvLUxpbmtzeXMgTExDCiswMDE0QkYgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cyBMTEMKKwkJCQkxMjEgVGhlb3J5IERyLgorCQkJCUlydmluZSBDQSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQzAgICAoaGV4KQkJU3ltc3RyZWFtIFRlY2hub2xvZ3kgR3JvdXAgTHRkCiswMDE0QzAgICAgIChiYXNlIDE2KQkJU3ltc3RyZWFtIFRlY2hub2xvZ3kgR3JvdXAgTHRkCisJCQkJTGV2ZWwgMSwgMyBDaGVzdGVyIFN0cmVldAorCQkJCU9ha2xlaWdoIFZpY3RvcmlhIDMxNjYKKwkJCQlBVVNUUkFMSUEKKworMDAtMTQtQzEgICAoaGV4KQkJVS5TLiBSb2JvdGljcyBDb3Jwb3JhdGlvbgorMDAxNEMxICAgICAoYmFzZSAxNikJCVUuUy4gUm9ib3RpY3MgQ29ycG9yYXRpb24KKwkJCQk5MzUgTmF0aW9uYWwgUGFya3dheQorCQkJCVNjaGF1bWJ1cmcgSUwgNjAxNzMtNTE1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQzIgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzAwMTRDMiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTIwNTU1IFRvbWJhbGwgUGFya3dheQorCQkJCU1TMDcwNDA1CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQzMgICAoaGV4KQkJU2VhZ2F0ZSBUZWNobm9sb2d5IExMQworMDAxNEMzICAgICAoYmFzZSAxNikJCVNlYWdhdGUgVGVjaG5vbG9neSBMTEMKKwkJCQkxMjgwIERpc2MgRHJpdmUKKwkJCQlTaGFrb3BlZSBNTiA1NTM3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQzQgICAoaGV4KQkJVml0ZWxjb20gTW9iaWxlIFRlY2hub2xvZ3kKKzAwMTRDNCAgICAgKGJhc2UgMTYpCQlWaXRlbGNvbSBNb2JpbGUgVGVjaG5vbG9neQorCQkJCVBUQSwgQXZkYSwgSnVhbiBMw7NwZXogUGXDsWFsdmVyLCBuwrogNworCQkJCTI5NTkwLCBDYW1wYW5pbGxhcworCQkJCUNhbXBhbmlsbGFzLiBNYWxhZ2EuIAorCQkJCVNQQUlOCisKKzAwLTE0LUM1ICAgKGhleCkJCUFsaXZlIFRlY2hub2xvZ2llcyBQdHkgTHRkCiswMDE0QzUgICAgIChiYXNlIDE2KQkJQWxpdmUgVGVjaG5vbG9naWVzIFB0eSBMdGQKKwkJCQkxMSBUZWNobm9sb2d5IERyaXZlCisJCQkJQXJ1bmRlbCBRdWVlbnNsYW5kIDQyMTQKKwkJCQlBVVNUUkFMSUEKKworMDAtMTQtQzYgICAoaGV4KQkJUXVpeGFudCBMdGQKKzAwMTRDNiAgICAgKGJhc2UgMTYpCQlRdWl4YW50IEx0ZAorCQkJCTYxQSBNb3VudCBQbGVhc2FudAorCQkJCUJpZ2dpbiBIaWxsCisJCQkJRW5nbGFuZCBLZW50IFROMTYgM1RQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTQtQzcgICAoaGV4KQkJTm9ydGVsCiswMDE0QzcgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTQtQzggICAoaGV4KQkJQ29udGVtcG9yYXJ5IFJlc2VhcmNoIENvcnAKKzAwMTRDOCAgICAgKGJhc2UgMTYpCQlDb250ZW1wb3JhcnkgUmVzZWFyY2ggQ29ycAorCQkJCTE3NjMwIERhdmVucG9ydCBSZAorCQkJCVNURSAxMTMKKwkJCQlEYWxsYXMgVFggNzUyNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUM5ICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorMDAxNEM5ICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorCQkJCTE3NDUgVGVjaG5vbG9neSBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQ0EgICAoaGV4KQkJS2V5IFJhZGlvIFN5c3RlbXMgTGltaXRlZAorMDAxNENBICAgICAoYmFzZSAxNikJCUtleSBSYWRpbyBTeXN0ZW1zIExpbWl0ZWQKKwkJCQlWZW51cyBIb3VzZQorCQkJCUNhbGxldmEgUGFyaworCQkJCUFsZGVybWFzdG9uIEJlcmtzaGlyZSBSRzcgOERBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTQtQ0IgICAoaGV4KQkJTGlmZVN5bmMgQ29ycG9yYXRpb24KKzAwMTRDQiAgICAgKGJhc2UgMTYpCQlMaWZlU3luYyBDb3Jwb3JhdGlvbgorCQkJCTEgRSBCcm93YXJkIEJvdWxldmFyZCwgU3VpdGUgMTcwMQorCQkJCUZvcnQgTGF1ZGVyZGFsZSBGbG9yaWRhIDMzMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1DQyAgIChoZXgpCQlaZXRlYywgSW5jLgorMDAxNENDICAgICAoYmFzZSAxNikJCVpldGVjLCBJbmMuCisJCQkJODIyNiBCcmFja2VuIFBsYWNlIFNFCisJCQkJU25vcXVhbG1pZSBXQSA5ODA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtQ0QgICAoaGV4KQkJRGlnaXRhbFpvbmUgQ28uLCBMdGQuCiswMDE0Q0QgICAgIChiYXNlIDE2KQkJRGlnaXRhbFpvbmUgQ28uLCBMdGQuCisJCQkJTm8uIDEwMDEgRSZDIFZlbnR1cmVEcmVhbVRvd2VyMgorCQkJCTE5Ny0xMCBHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC1DRSAgIChoZXgpCQlORiBDT1JQT1JBVElPTgorMDAxNENFICAgICAoYmFzZSAxNikJCU5GIENPUlBPUkFUSU9OCisJCQkJNi0zLTIwLCBUc3VuYXNoaW1hLWhpZ2FzaGkKKwkJCQlLb2hva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjMtODUwOAorCQkJCUpBUEFOCisKKzAwLTE0LUNGICAgKGhleCkJCUlOVklTSU8gQ29tbXVuaWNhdGlvbnMKKzAwMTRDRiAgICAgKGJhc2UgMTYpCQlJTlZJU0lPIENvbW11bmljYXRpb25zCisJCQkJU3RhbWhvbG1lbiAxNTcKKwkJCQlIdmlkb3ZyZSAgMjY1MAorCQkJCURFTk1BUksKKworMDAtMTQtRDAgICAoaGV4KQkJQlRJIFN5c3RlbXMgSW5jLgorMDAxNEQwICAgICAoYmFzZSAxNikJCUJUSSBTeXN0ZW1zIEluYy4KKwkJCQk1MCBOb3J0aHNpZGUgUm9hZAorCQkJCU90dGF3YSBPbnRhcmlvIEsySCA1WjYKKwkJCQlDQU5BREEKKworMDAtMTQtRDEgICAoaGV4KQkJVFJFTkRuZXQKKzAwMTREMSAgICAgKGJhc2UgMTYpCQlUUkVORG5ldAorCQkJCTIwNjc1IE1hbmhhdHRhbiBQbGFjZQorCQkJCVRvcnJhbmNlIENBIDkwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1EMiAgIChoZXgpCQlLeXVkZW4gVGVjaG5vc3lzdGVtcyBDb3Jwb3JhdGlvbgorMDAxNEQyICAgICAoYmFzZSAxNikJCUt5dWRlbiBUZWNobm9zeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJNC0xOS0xOCBTSElNSVpVLE1JTkFNSS1LVQorCQkJCUZVS1VPS0EgIDgxNS0wMDMxCisJCQkJSkFQQU4KKworMDAtMTQtRDMgICAoaGV4KQkJU0VQU0EKKzAwMTREMyAgICAgKGJhc2UgMTYpCQlTRVBTQQorCQkJCWNhbGxlIEFsYmF0cm9zLCA3IHkgOQorCQkJCVBvbC4gSW5kLiBMYSBFc3RhY2nDs24KKwkJCQlQSU5UTyBNYWRyaWQgMjgzMjAKKwkJCQlTUEFJTgorCiswMC0xNC1ENCAgIChoZXgpCQlLIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMTRENCAgICAgKGJhc2UgMTYpCQlLIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQkzMjUgR2FuYmFyYQorCQkJCUthbWktbWFjaGkKKwkJCQlLYW1pLWd1biBNaXlhZ2kta2VuIDk4MS00MjYzCisJCQkJSkFQQU4KKworMDAtMTQtRDUgICAoaGV4KQkJRGF0YW5nIFRlbGVjb20gVGVjaG5vbG9neSBDTy4gLCBMQ0QsT3B0aWNhbCBDb21tdW5pY2F0aW9uIEJyCiswMDE0RDUgICAgIChiYXNlIDE2KQkJRGF0YW5nIFRlbGVjb20gVGVjaG5vbG9neSBDTy4gLCBMQ0QsT3B0aWNhbCBDb21tdW5pY2F0aW9uIEJyCisJCQkJM3JkIEZsb29yLEJ1aWxkaW5nIDgsSGktVGVjaCBJbmN1YmF0aW9uIFBhcmssCisJCQkJTmFueWFueGlhbixUaWFuZnUgQXZlLGNoZW5nZHUgSGktVGVjaCBab25lLAorCQkJCUNoZW5nRHUgU2lDaHVhbiA2MTAwNDEKKwkJCQlDSElOQQorCiswMC0xNC1ENiAgIChoZXgpCQlKZW9uZ21pbiBFbGVjdHJvbmljcyBDby4sTHRkLgorMDAxNEQ2ICAgICAoYmFzZSAxNikJCUplb25nbWluIEVsZWN0cm9uaWNzIENvLixMdGQuCisJCQkJIzcxMCwgQnl1a3NhbiBEaWdpdGFsIFZhbGxleSAyLAorCQkJCUthc2FuLURvbmcsIEtldW1jaGVvbi1HdSwKKwkJCQlTZW91bCAgMTUzIDc4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC1ENyAgIChoZXgpCQlEYXRhc3RvcmUgVGVjaG5vbG9neSBDb3JwCiswMDE0RDcgICAgIChiYXNlIDE2KQkJRGF0YXN0b3JlIFRlY2hub2xvZ3kgQ29ycAorCQkJCTlGLCBOTy4xMCwgU0VDLjEsIENodW5nIEhzaW5nIFJELiwgV3UtS3UKKwkJCQlUYWlwZWkgSHNpZW4sICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE0LUQ4ICAgKGhleCkJCWJpby1sb2dpYyBTQQorMDAxNEQ4ICAgICAoYmFzZSAxNikJCWJpby1sb2dpYyBTQQorCQkJCTEsIHJ1ZSBkZSBsJ0V1cm9wZQorCQkJCUNMQUlYICAzODY0MAorCQkJCUZSQU5DRQorCiswMC0xNC1EOSAgIChoZXgpCQlJUCBGYWJyaWNzLCBJbmMuCiswMDE0RDkgICAgIChiYXNlIDE2KQkJSVAgRmFicmljcywgSW5jLgorCQkJCTE0OTY0IE5XIEdyZWVuYnJpZXIgUGFya3dheQorCQkJCUJlYXZlcnRvbiBPcmVnb24gOTcwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LURBICAgKGhleCkJCUh1bnRsZWlnaCBIZWFsdGhjYXJlCiswMDE0REEgICAgIChiYXNlIDE2KQkJSHVudGxlaWdoIEhlYWx0aGNhcmUKKwkJCQlIdW50bGVpZ2ggSGVhbHRoY2FyZSAtIERpYWdub3N0aWMgUHJvZHVjdHMgRGl2aXNpb24KKwkJCQkzNSBQb3J0bWFubW9vciBSb2FkCisJCQkJQ2FyZGlmZiAgQ0YyNCA1SE4KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNC1EQiAgIChoZXgpCQlFbG1hIFRyZW5ldyBFbGVjdHJvbmljIEdtYkgKKzAwMTREQiAgICAgKGJhc2UgMTYpCQlFbG1hIFRyZW5ldyBFbGVjdHJvbmljIEdtYkgKKwkJCQlTdHV0dGdhcnRlciBTdHJhc3NlIDExCisJCQkJUGZvcnpoZWltIEJXIDc1MTc5CisJCQkJR0VSTUFOWQorCiswMC0xNC1EQyAgIChoZXgpCQlDb21tdW5pY2F0aW9uIFN5c3RlbSBEZXNpZ24gJiBNYW51ZmFjdHVyaW5nIChDU0RNKQorMDAxNERDICAgICAoYmFzZSAxNikJCUNvbW11bmljYXRpb24gU3lzdGVtIERlc2lnbiAmIE1hbnVmYWN0dXJpbmcgKENTRE0pCisJCQkJUG9zdGJ1cyAxODEKKwkJCQlCdXNzdW0gTkggMTQwMCBBRAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE0LUREICAgKGhleCkJCUNvdmVyZ2VuY2UgSW5jLgorMDAxNEREICAgICAoYmFzZSAxNikJCUNvdmVyZ2VuY2UgSW5jLgorCQkJCU9uZSBDbG9jayBUb3dlciBQbGFjZSwgU3VpdGUgMjAwCisJCQkJTWF5bmFyZCBNQSAwMTc1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtREUgICAoaGV4KQkJU2FnZSBJbnN0cnVtZW50cyBJbmMuCiswMDE0REUgICAgIChiYXNlIDE2KQkJU2FnZSBJbnN0cnVtZW50cyBJbmMuCisJCQkJMjQwIEFpcnBvcnQgQmx2ZC4KKwkJCQlGcmVlZG9tIENBIDk1MDE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1ERiAgIChoZXgpCQlISS1QIFRlY2ggQ29ycG9yYXRpb24KKzAwMTRERiAgICAgKGJhc2UgMTYpCQlISS1QIFRlY2ggQ29ycG9yYXRpb24KKwkJCQkxLTI3LTIzIEhpZ2FzaGl0b2tvcm96YXdhCisJCQkJVG9rb3JvemF3YSBTYWl0YW1hIDM1OS0wMDIxCisJCQkJSkFQQU4KKworMDAtMTQtRTAgICAoaGV4KQkJTEVUJ1MgQ29ycG9yYXRpb24KKzAwMTRFMCAgICAgKGJhc2UgMTYpCQlMRVQnUyBDb3Jwb3JhdGlvbgorCQkJCUJhbmNobyBCbGRnLiA0RiwgMi0xOC0yMCBNYXJ1bm91Y2hpLCBOYWthCisJCQkJTmFnb3lhIEFpY2hpIDQ2MC0wMDAyCisJCQkJSkFQQU4KKworMDAtMTQtRTEgICAoaGV4KQkJRGF0YSBEaXNwbGF5IEFHCiswMDE0RTEgICAgIChiYXNlIDE2KQkJRGF0YSBEaXNwbGF5IEFHCisJCQkJSW5kdXN0cmllc3RyYcODxbhlIDEKKwkJCQlHZXJtZXJpbmcgQmF5ZXJuIDgyMTEwCisJCQkJR0VSTUFOWQorCiswMC0xNC1FMiAgIChoZXgpCQlkYXRhY29tIHN5c3RlbXMgaW5jLgorMDAxNEUyICAgICAoYmFzZSAxNikJCWRhdGFjb20gc3lzdGVtcyBpbmMuCisJCQkJOSBhZGxlciBkcml2ZQorCQkJCWVhc3Qgc3lyYWN1c2Ugbi55LiAxMzA1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRTMgICAoaGV4KQkJbW0tbGFiIEdtYkgKKzAwMTRFMyAgICAgKGJhc2UgMTYpCQltbS1sYWIgR21iSAorCQkJCVN0YW1taGVpbWVyIFN0cmFzc2UgMTAKKwkJCQlELTcwODA2CisJCQkJS29ybndlc3RoZWltICAKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LUU0ICAgKGhleCkJCUludGVncmFsIFRlY2hub2xvZ2llcworMDAxNEU0ICAgICAoYmFzZSAxNikJCUludGVncmFsIFRlY2hub2xvZ2llcworCQkJCTk4NTUgQ3Jvc3Nwb2ludCBCbHZkCisJCQkJU3RlIDEyNgorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRTUgICAoaGV4KQkJQWx0aWNhc3QKKzAwMTRFNSAgICAgKGJhc2UgMTYpCQlBbHRpY2FzdAorCQkJCTE2dGggZmxvb3IsIE5hcmEgQmxkZywgMTMyOC0zCisJCQkJU2VvY2hvLWRvbmcsIFNlb2Noby1ndSwKKwkJCQlTZW91bCAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LUU2ICAgKGhleCkJCUFJTSBJbmZyYXJvdG1vZHVsZSBHbWJICiswMDE0RTYgICAgIChiYXNlIDE2KQkJQUlNIEluZnJhcm90bW9kdWxlIEdtYkgKKwkJCQlTb2VmbGluZ2Vyc3RyLiAxMDAKKwkJCQlVbG0gQlcgODkwNzcKKwkJCQlHRVJNQU5ZCisKKzAwLTE0LUU3ICAgKGhleCkJCVN0b2xpbngsLiBJbmMKKzAwMTRFNyAgICAgKGJhc2UgMTYpCQlTdG9saW54LC4gSW5jCisJCQkJM0YgT2hjaGFuZyBCbGRnLiwgNjEgWWFuZ2phZS1kb25nCisJCQkJU2VvY2hvLWd1CisJCQkJU2VvdWwgIDEzNy04ODkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtRTggICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMTRFOCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUU5ICAgKGhleCkJCU5vcnRlY2ggSW50ZXJuYXRpb25hbAorMDAxNEU5ICAgICAoYmFzZSAxNikJCU5vcnRlY2ggSW50ZXJuYXRpb25hbAorCQkJCTMyQSBXaWdhbnRob3JwZSBSb2FkCisJCQkJV2lsbG93dG9uIEh1YgorCQkJCVBpZXRlcm1hcnRpemJ1cmcgS3dhWnVsdSBOYXRhbCAzMjAxCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTE0LUVBICAgKGhleCkJCVMgRGlnbSBJbmMuIChTYWZlIFBhcmFkaWdtIEluYy4pCiswMDE0RUEgICAgIChiYXNlIDE2KQkJUyBEaWdtIEluYy4gKFNhZmUgUGFyYWRpZ20gSW5jLikKKwkJCQk1RiwgU2hpbi1hbiBCbGRnLiA4OS04LAorCQkJCU1vb25qdW5nLURvbmcKKwkJCQlTb25ncGEtR3UgU2VvdWwgMTM4LTIwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNC1FQiAgIChoZXgpCQlBd2FyZVBvaW50IENvcnBvcmF0aW9uCiswMDE0RUIgICAgIChiYXNlIDE2KQkJQXdhcmVQb2ludCBDb3Jwb3JhdGlvbgorCQkJCTg4OTkgVW5pdmVyc2l0eSBDZW50ZXIgTGFuZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRUMgICAoaGV4KQkJQWNybyBUZWxlY29tCiswMDE0RUMgICAgIChiYXNlIDE2KQkJQWNybyBUZWxlY29tCisJCQkJNzE0IFdvb2xpbSBlLUJpeiBDZW50ZXIgMTcwLTUgR3Vyby1kb25nCisJCQkJR3Vyby1HdSBTZW91bCAxNTItNzY5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LUVEICAgKGhleCkJCUFpcmFrLCBJbmMuCiswMDE0RUQgICAgIChiYXNlIDE2KQkJQWlyYWssIEluYy4KKwkJCQkyMTY0MSBCZWF1bWVhZGUgQ2lyY2xlCisJCQkJU3VpdGUgMzAwCisJCQkJQXNoYnVybiBWaXJnaW5pYSAyMDE0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRUUgICAoaGV4KQkJV2VzdGVybiBEaWdpdGFsIFRlY2hub2xvZ2llcywgSW5jLgorMDAxNEVFICAgICAoYmFzZSAxNikJCVdlc3Rlcm4gRGlnaXRhbCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyMDUxMSBMYWtlIEZvcmVzdCBEci4KKwkJCQlMYWtlIEZvcmVzdCBDYSA5MjYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRUYgICAoaGV4KQkJVFplcm8gVGVjaG5vbG9naWVzLCBJbmMuCiswMDE0RUYgICAgIChiYXNlIDE2KQkJVFplcm8gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNDU1IFcuIE1hdWRlIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRjAgICAoaGV4KQkJQnVzaW5lc3MgU2VjdXJpdHkgT0wgQUIKKzAwMTRGMCAgICAgKGJhc2UgMTYpCQlCdXNpbmVzcyBTZWN1cml0eSBPTCBBQgorCQkJCUJveCAxMTAgNjUKKwkJCQlTdG9yYSBSYWJ5IEJ5YXZhZyA4OAorCQkJCUx1bmQgIDIyMCAxMQorCQkJCVNXRURFTgorCiswMC0xNC1GMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE0RjEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1GMiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE0RjIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1GMyAgIChoZXgpCQlWaVhTIFN5c3RlbXMgSW5jCiswMDE0RjMgICAgIChiYXNlIDE2KQkJVmlYUyBTeXN0ZW1zIEluYworCQkJCTIyMzUgU2hlcHBhcmQgQXZlIEVhc3QKKwkJCQlTdWl0ZTE3MDUKKwkJCQlUT1JPTlRPIE9OVEFSSU8gTTJKIDVCNQorCQkJCUNBTkFEQQorCiswMC0xNC1GNCAgIChoZXgpCQlEZWtUZWMgRGlnaXRhbCBWaWRlbyBCLlYuCiswMDE0RjQgICAgIChiYXNlIDE2KQkJRGVrVGVjIERpZ2l0YWwgVmlkZW8gQi5WLgorCQkJCVZhbiBSaWViZWVja3dlZyA0M0EKKwkJCQlIaWx2ZXJzdW0gTkggMTIxMkFFCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTQtRjUgICAoaGV4KQkJT1NJIFNlY3VyaXR5IERldmljZXMKKzAwMTRGNSAgICAgKGJhc2UgMTYpCQlPU0kgU2VjdXJpdHkgRGV2aWNlcworCQkJCTE1ODAgSmF5a2VuIFdheQorCQkJCUNodWxhIFZpc3RhIENhbGlmb3JuaWEgOTE5MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUY2ICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MsIEluYy4KKzAwMTRGNiAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzLCBJbmMuCisJCQkJMTE5NCBOLiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE0LUY3ICAgKGhleCkJCUNyZXZpcworMDAxNEY3ICAgICAoYmFzZSAxNikJCUNyZXZpcworCQkJCUQtMTFGLCBEaWdpdGFsIEVtcGlyZSBCbGRnLiwgOTgwLTMKKwkJCQlZb3VuZ3RvbmcKKwkJCQlTdXdvbiAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE0LUY4ICAgKGhleCkJCVNjaWVudGlmaWMgQXRsYW50YQorMDAxNEY4ICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMgQXRsYW50YQorCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlNUyA1LjIuNDI4CisJCQkJTGF3cmVuY2V2aWxsZSBHYSAzMDA0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRjkgICAoaGV4KQkJVmFudGFnZSBDb250cm9scworMDAxNEY5ICAgICAoYmFzZSAxNikJCVZhbnRhZ2UgQ29udHJvbHMKKwkJCQkxMDYxIFNvdXRoIDgwMCBFYXN0CisJCQkJT3JlbSBVVCA4NDA5NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTQtRkEgICAoaGV4KQkJQXNHYSBTLkEuCiswMDE0RkEgICAgIChiYXNlIDE2KQkJQXNHYSBTLkEuCisJCQkJUm9kIFJvYmVydG8gTW9yZWlyYSBLbSAwNAorCQkJCVBhdWxpbmlhIFNhbyBQYXVsbyAxMzE0MC0wMDAKKwkJCQlCUkFaSUwKKworMDAtMTQtRkIgICAoaGV4KQkJVGVjaG5pY2FsIFNvbHV0aW9ucyBJbmMuCiswMDE0RkIgICAgIChiYXNlIDE2KQkJVGVjaG5pY2FsIFNvbHV0aW9ucyBJbmMuCisJCQkJMTAxLTczMTEgVmFudGFnZSBXYXkKKwkJCQlEZWx0YSBCQyBWNEcgMUM5CisJCQkJQ0FOQURBCisKKzAwLTE0LUZDICAgKGhleCkJCUV4dGFuZG9uLCBJbmMuCiswMDE0RkMgICAgIChiYXNlIDE2KQkJRXh0YW5kb24sIEluYy4KKwkJCQkzOTM1MCBDaXZpYyBDZW50ZXIgRHJpdmUgU3RlLiAxNjAKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNC1GRCAgIChoZXgpCQlUaGVjdXMgVGVjaG5vbG9neSBDb3JwLgorMDAxNEZEICAgICAoYmFzZSAxNikJCVRoZWN1cyBUZWNobm9sb2d5IENvcnAuCisJCQkJMTVGLixOby4gNzksU2VjLiAxLFNpbnRhaSA1dGggUkQuLAorCQkJCVNpamhpaCBDaXR5IFRhaXBlaSBDb3VudHkgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNC1GRSAgIChoZXgpCQlBcnRlY2ggRWxlY3Ryb25pY3MKKzAwMTRGRSAgICAgKGJhc2UgMTYpCQlBcnRlY2ggRWxlY3Ryb25pY3MKKwkJCQkjMzAxLCBZYW5namFlIEJsZGcuLCAyNzYtMgorCQkJCVlhbmdqYWUtRG9uZywgU2VvY2hvLUt1CisJCQkJU2VvdWwgIDEzNy04OTUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTQtRkYgICAoaGV4KQkJUHJlY2lzZSBBdXRvbWF0aW9uLCBJbmMuCiswMDE0RkYgICAgIChiYXNlIDE2KQkJUHJlY2lzZSBBdXRvbWF0aW9uLCBJbmMuCisJCQkJMTQwMiBBbGV4YW5kcmEgQmx2ZAorCQkJCUNyeXN0YWwgTGFrZSBJTCA2MDAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMDAgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDE1MDAgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xNS0wMSAgIChoZXgpCQlMZXhCb3gKKzAwMTUwMSAgICAgKGJhc2UgMTYpCQlMZXhCb3gKKwkJCQkzLCBhdmVudWUgRGlkaWVyIERhdXJhdAorCQkJCVRPVUxPVVNFICAzMTQwMAorCQkJCUZSQU5DRQorCiswMC0xNS0wMiAgIChoZXgpCQlCRVRBIHRlY2gKKzAwMTUwMiAgICAgKGJhc2UgMTYpCQlCRVRBIHRlY2gKKwkJCQkxNSBydWUgZCdhcG9sbG8KKwkJCQlMJ1VOSU9OICAzMTI0MAorCQkJCUZSQU5DRQorCiswMC0xNS0wMyAgIChoZXgpCQlQUk9GSWNvbW1zIHMuci5vLgorMDAxNTAzICAgICAoYmFzZSAxNikJCVBST0ZJY29tbXMgcy5yLm8uCisJCQkJVHVyZ2VuZXZvdmEgNQorCQkJCUJybm8gRVUvRXVyb3BlIDYxOCAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTE1LTA0ICAgKGhleCkJCUdBTUUgUExVUyBDTy4sIExURC4KKzAwMTUwNCAgICAgKGJhc2UgMTYpCQlHQU1FIFBMVVMgQ08uLCBMVEQuCisJCQkJMTY0LTU3LCBZZW9uZ2h3YS1kb25nLCBKYW5nYW4tZ3UKKwkJCQlTdXdvbiBHeWVvbmdnaS1kbyA0NDAtODE4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTA1ICAgKGhleCkJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jIAorMDAxNTA1ICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jIAorCQkJCTc2MCBOb3J0aCBNYXJ5IEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMDYgICAoaGV4KQkJTmVvIFBob3RvbmljcworMDAxNTA2ICAgICAoYmFzZSAxNikJCU5lbyBQaG90b25pY3MKKwkJCQk5MTAgRS4gQ2FsaWZvcm5pYSBTdC4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTA3ICAgKGhleCkJCVJlbmFpc3NhbmNlIExlYXJuaW5nIEluYworMDAxNTA3ICAgICAoYmFzZSAxNikJCVJlbmFpc3NhbmNlIExlYXJuaW5nIEluYworCQkJCTI5MTEgUGVhY2ggU3RyZWV0CisJCQkJUE8gQm94IDgwMzYKKwkJCQlXaXNjb25zaW4gUmFwaWRzIFdpc2NvbnNpbiA1NDQ5NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMDggICAoaGV4KQkJR2xvYmFsIFRhcmdldCBFbnRlcnByaXNlIEluYworMDAxNTA4ICAgICAoYmFzZSAxNikJCUdsb2JhbCBUYXJnZXQgRW50ZXJwcmlzZSBJbmMKKwkJCQk1RiwgTm8uIDE4NiwgU2VjLiAyLCBDaHVuZy1Ic2luZyBSZC4sCisJCQkJSHNpbiBUaWVuLCBUYWlwZWkgY291bnR5IDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtMDkgICAoaGV4KQkJUGx1cyBUZWNobm9sb2d5IENvLiwgTHRkCiswMDE1MDkgICAgIChiYXNlIDE2KQkJUGx1cyBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJT2ZmaWNlICMyMDUsICBHYXlhbmcgVGVjaG5vLXRvd24sCisJCQkJR2F5YW5nIDMtIGRvbmcsIEdhbmdzZW8ta3UKKwkJCQlTZW91bCAxNTctODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTBBICAgKGhleCkJCVNvbm9hIFN5c3RlbXMsIEluYworMDAxNTBBICAgICAoYmFzZSAxNikJCVNvbm9hIFN5c3RlbXMsIEluYworCQkJCTM5MDAgRnJlZWRvbSBDaXJjbGUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMEIgICAoaGV4KQkJU0FHRSBJTkZPVEVDSCBMVEQuCiswMDE1MEIgICAgIChiYXNlIDE2KQkJU0FHRSBJTkZPVEVDSCBMVEQuCisJCQkJM0YsIE5vMzAsIElORFVTVFJZIEUuIDlUSCBSRC4sU0NJRU5DRS1CQVNFRAorCQkJCUlORFVTVFJJQUwgUEFSSworCQkJCUhTSU4tQ0hVIFRBSVdBTiAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LTBDICAgKGhleCkJCUFWTSBHbWJICiswMDE1MEMgICAgIChiYXNlIDE2KQkJQVZNIEdtYkgKKwkJCQlBbHQtTW9hYml0IDk1CisJCQkJQmVybGluICAxMDU1OQorCQkJCUdFUk1BTlkKKworMDAtMTUtMEQgICAoaGV4KQkJSG9hbmEgTWVkaWNhbCwgSW5jLgorMDAxNTBEICAgICAoYmFzZSAxNikJCUhvYW5hIE1lZGljYWwsIEluYy4KKwkJCQk4MjggRm9ydCBTdHJlZXQgTWFsbAorCQkJCVN1aXRlIDYyMAorCQkJCUhvbm9sdWx1IEhJIDk2ODEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0wRSAgIChoZXgpCQlPUEVOQlJBSU4gVEVDSE5PTE9HSUVTIENPLiwgTFRELgorMDAxNTBFICAgICAoYmFzZSAxNikJCU9QRU5CUkFJTiBURUNITk9MT0dJRVMgQ08uLCBMVEQuCisJCQkJIzgwNCxBTllBTkcgSy1DRU5URVIsMTU5MS05ICwgQlVSSU0tRE9ORyxET05HQU4tR1UsCisJCQkJQU5ZQU5HIEtZVU5HR0ktRE8gNDMxLTgxNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0wRiAgIChoZXgpCQltaW5nam9uZworMDAxNTBGICAgICAoYmFzZSAxNikJCW1pbmdqb25nCisJCQkJOEYsTk8uMSxMQU5FIDE2LFNaRSBDSFVBTiBST0FELFNFQy4yLFBBTkNISUFPIENJVFkuCisJCQkJVEFJUEVJICAyMjAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LTEwICAgKGhleCkJCVRlY2hzcGhlcmUgQ28uLCBMdGQKKzAwMTUxMCAgICAgKGJhc2UgMTYpCQlUZWNoc3BoZXJlIENvLiwgTHRkCisJCQkJNEYsIFdvbmlsIEJsZGcuLCA5ODAtNTQsIEJhbmdiYWUtZG9uZywgU2VvQ2hvLWd1CisJCQkJU2VvdWwgMTM3LTA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0xMSAgIChoZXgpCQlEYXRhIENlbnRlciBTeXN0ZW1zCiswMDE1MTEgICAgIChiYXNlIDE2KQkJRGF0YSBDZW50ZXIgU3lzdGVtcworCQkJCTE0ODAyIFZlbnR1cmUgRHJpdmUKKwkJCQlEYWxsYXMgVFggNzUyMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTEyICAgKGhleCkJCVp1cmljaCBVbml2ZXJzaXR5IG9mIEFwcGxpZWQgU2NpZW5jZXMKKzAwMTUxMiAgICAgKGJhc2UgMTYpCQladXJpY2ggVW5pdmVyc2l0eSBvZiBBcHBsaWVkIFNjaWVuY2VzCisJCQkJVGVjaG5pa3Vtc3RyYXNzZSA5CisJCQkJV2ludGVydGh1ciBaSCBDSC04NDAxCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTUtMTMgICAoaGV4KQkJRUZTIHNhcworMDAxNTEzICAgICAoYmFzZSAxNikJCUVGUyBzYXMKKwkJCQlCUCAzNAorCQkJCU1JTExFUlkgIEYtNjkzOTAKKwkJCQlGUkFOQ0UKKworMDAtMTUtMTQgICAoaGV4KQkJSHUgWmhvdSBOQVZBIE5ldHdvcmtzJkVsZWN0cm9uaWNzIEx0ZC4KKzAwMTUxNCAgICAgKGJhc2UgMTYpCQlIdSBaaG91IE5BVkEgTmV0d29ya3MmRWxlY3Ryb25pY3MgTHRkLgorCQkJCTMvRixOby4zMjgtNCxHdWFuZyBZdWFuIFJkLgorCQkJCUh1IFpob3UgWmhlIEppYW5nIDMxMzAwMAorCQkJCUNISU5BCisKKzAwLTE1LTE1ICAgKGhleCkJCUxlaXBvbGQrQ28uR21iSAorMDAxNTE1ICAgICAoYmFzZSAxNikJCUxlaXBvbGQrQ28uR21iSAorCQkJCUtyZXV6d2llc2UgMTIKKwkJCQlSb2NrZW5oYXVzZW4gUkxQIEQtNjc4MDYKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LTE2ICAgKGhleCkJCVVSSUVMIFNZU1RFTVMgSU5DLgorMDAxNTE2ICAgICAoYmFzZSAxNikJCVVSSUVMIFNZU1RFTVMgSU5DLgorCQkJCSMyMDQgQnl1Y2tzYW4gRGlnaXRhbHZhbGxleSAxc3QsIDIxMi0xNiwgR3Vyby1kb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtMTcgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDE1MTcgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEpsbiBIaS1UZWNoICAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE1LTE4ICAgKGhleCkJCVNoZW56aGVuIDEwTU9PTlMgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDTy4sTHRkCiswMDE1MTggICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gMTBNT09OUyBUZWNobm9sb2d5IERldmVsb3BtZW50IENPLixMdGQKKwkJCQlBZGQ6M0YsSHVheGluZyBidWlsZGluZywgUWlhb1hpYW5nIHJvYWQsCisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODA1MworCQkJCUNISU5BCisKKzAwLTE1LTE5ICAgKGhleCkJCVN0b3JlQWdlIE5ldHdvcmtpbmcgVGVjaG5vbG9naWVzCiswMDE1MTkgICAgIChiYXNlIDE2KQkJU3RvcmVBZ2UgTmV0d29ya2luZyBUZWNobm9sb2dpZXMKKwkJCQk2MyBCYXItWWVodWRhIHN0LgorCQkJCU5lc2hlciAgMzY2NTEKKwkJCQlJU1JBRUwKKworMDAtMTUtMUEgICAoaGV4KQkJSHVudGVyIEVuZ2luZWVyaW5nIENvbXBhbnkKKzAwMTUxQSAgICAgKGJhc2UgMTYpCQlIdW50ZXIgRW5naW5lZXJpbmcgQ29tcGFueQorCQkJCTExMjUwIEh1bnRlciBEcml2ZQorCQkJCUJyaWRnZXRvbiBNaXNzb3VyaSA2MzA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMUIgICAoaGV4KQkJSXNpbG9uIFN5c3RlbXMgSW5jLgorMDAxNTFCICAgICAoYmFzZSAxNikJCUlzaWxvbiBTeXN0ZW1zIEluYy4KKwkJCQkzMTAxIFdlc3Rlcm4gQXZlbnVlCisJCQkJU2VhdHRsZSBXQSA5ODEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMUMgICAoaGV4KQkJTEVORUNPCiswMDE1MUMgICAgIChiYXNlIDE2KQkJTEVORUNPCisJCQkJNnRoLixEb25nIE1vb24gR29vZCBNb3JuaW5nIFRvd2VyCisJCQkJMTMyMyBCZWFrc2Vvay1Eb25nIElsc2FuLUd1CisJCQkJS3llb25nIEtpLURvIEdvWWFuZy1TaSA0MTEtODE3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTFEICAgKGhleCkJCU0ySSBDT1JQT1JBVElPTgorMDAxNTFEICAgICAoYmFzZSAxNikJCU0ySSBDT1JQT1JBVElPTgorCQkJCUt5b25nZ2kgVmVudHVyZSBBbnlhbmcgdGVjaG5pY2FsIGNlbnRlciwgMTN0aCBGbG9vciwgNTcyLTUsIEFueWFuZyA4LURvbmcsIE1hbmFuLUd1CisJCQkJQW55YW5nLVNoaSBLeW9uZ2dpLURvIDQzMC03MzEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtMUUgICAoaGV4KQkJRXRoZXJuZXQgUG93ZXJsaW5rIFN0YW5kYXJkaXphdGlvbiBHcm91cCAoRVBTRykKKzAwMTUxRSAgICAgKGJhc2UgMTYpCQlFdGhlcm5ldCBQb3dlcmxpbmsgU3RhbmRhcmRpemF0aW9uIEdyb3VwIChFUFNHKQorCQkJCWMvbyBadXJpY2ggVW5pdmVyc2l0eSBvZiBBcHBsaWVkIFNjaWVuY2VzCisJCQkJVGVjaG5pa3Vtc3RyYXNzZSA5CisJCQkJQ0gtODQwMSBXaW50ZXJ0aHVyIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE1LTFGICAgKGhleCkJCU11bHRpdmlzaW9uIEludGVsbGlnZW50IFN1cnZlaWxsYW5jZSAoSG9uZyBLb25nKSBMdGQKKzAwMTUxRiAgICAgKGJhc2UgMTYpCQlNdWx0aXZpc2lvbiBJbnRlbGxpZ2VudCBTdXJ2ZWlsbGFuY2UgKEhvbmcgS29uZykgTHRkCisJCQkJMjYvRiwgQWl0a2VuIFZhbnNvbiBDZW50cmUsCisJCQkJNjEgSG9pIFl1ZW4gUm9hZCwgS3d1biBUb25nLCBLb3dsb29uLAorCQkJCUhPTkcgS09ORworCiswMC0xNS0yMCAgIChoZXgpCQlSYWRpb2NyYWZ0cyBBUworMDAxNTIwICAgICAoYmFzZSAxNikJCVJhZGlvY3JhZnRzIEFTCisJCQkJU2FuZGFrZXJ2ZWllbiA2NAorCQkJCU9zbG8gMDQ4NAorCQkJCU5PUldBWQorCiswMC0xNS0yMSAgIChoZXgpCQlIb3JvcXVhcnR6CiswMDE1MjEgICAgIChiYXNlIDE2KQkJSG9yb3F1YXJ0egorCQkJCUJQIDI1MQorCQkJCUZPTlRFTkFZIExFIENPTVRFIFZFTkRFRSA4NTIwNQorCQkJCUZSQU5DRQorCiswMC0xNS0yMiAgIChoZXgpCQlEZWEgU2VjdXJpdHkKKzAwMTUyMiAgICAgKGJhc2UgMTYpCQlEZWEgU2VjdXJpdHkKKwkJCQlWaWEgTWFnZW50YSA5CisJCQkJTWFzc2EgTVMgNTQxMDAKKwkJCQlJVEFMWQorCiswMC0xNS0yMyAgIChoZXgpCQlNZXRlb3IgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzAwMTUyMyAgICAgKGJhc2UgMTYpCQlNZXRlb3IgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKwkJCQkyMjYxNCA2NnRoIEF2ZW51ZSBTb3V0aAorCQkJCUtlbnQgV0EgOTgwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTI0ICAgKGhleCkJCU51bWF0aWNzLCBJbmMuCiswMDE1MjQgICAgIChiYXNlIDE2KQkJTnVtYXRpY3MsIEluYy4KKwkJCQk0NjI4MCBEeWxhbiBEci4KKwkJCQlOb3ZpIE1pY2hpZ2FuIDQ4Mzc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0yNSAgIChoZXgpCQlDaGFtYmVybGFpbiBBY2Nlc3MgU29sdXRpb25zCiswMDE1MjUgICAgIChiYXNlIDE2KQkJQ2hhbWJlcmxhaW4gQWNjZXNzIFNvbHV0aW9ucworCQkJCTkxNjAgRS4gQmFoaWEgRHIuCisJCQkJU2NvdHRzZGFsZSBBWiA4NTI2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMjYgICAoaGV4KQkJUmVtb3RlIFRlY2hub2xvZ2llcyBJbmMKKzAwMTUyNiAgICAgKGJhc2UgMTYpCQlSZW1vdGUgVGVjaG5vbG9naWVzIEluYworCQkJCTc2NTEgQW5hZ3JhbSBEcml2ZQorCQkJCUVkZW4gUHJhaXJpZSBNTiA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMjcgICAoaGV4KQkJQmFsYm9hIEluc3RydW1lbnRzCiswMDE1MjcgICAgIChiYXNlIDE2KQkJQmFsYm9hIEluc3RydW1lbnRzCisJCQkJMTM4MiBCZWxsIEF2ZQorCQkJCVR1c3RpbiBDQSA5Mjc4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMjggICAoaGV4KQkJQmVhY29uIE1lZGljYWwgUHJvZHVjdHMgTExDIGQuYi5hLiBCZWFjb25NZWRhZXMKKzAwMTUyOCAgICAgKGJhc2UgMTYpCQlCZWFjb24gTWVkaWNhbCBQcm9kdWN0cyBMTEMgZC5iLmEuIEJlYWNvbk1lZGFlcworCQkJCTE0NDA4IFcgMTA1VEggU1QKKwkJCQlMRU5FWEEgS1MgNjYyMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTI5ICAgKGhleCkJCU4zIENvcnBvcmF0aW9uCiswMDE1MjkgICAgIChiYXNlIDE2KQkJTjMgQ29ycG9yYXRpb24KKwkJCQkjNDAyIEd3YW5nTXllb25nIFRlY2hubyBUb3duCisJCQkJNjI2LTMgQ2x1bHNhbiAxLURvbmcsIEd3YW5nTXllb25nLUNpdHkKKwkJCQlHeWVvbmdHaS1EbyAgNDIzLTAzMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0yQSAgIChoZXgpCQlOb2tpYSBHbWJICiswMDE1MkEgICAgIChiYXNlIDE2KQkJTm9raWEgR21iSAorCQkJCVJlbnNpbmdzdHIuIDE1CisJCQkJQm9jaHVtIE5SVyA0NDgwNworCQkJCUdFUk1BTlkKKworMDAtMTUtMkIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNTJCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMkMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNTJDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtMkQgICAoaGV4KQkJVGVuWCBOZXR3b3JrcywgTExDCiswMDE1MkQgICAgIChiYXNlIDE2KQkJVGVuWCBOZXR3b3JrcywgTExDCisJCQkJNDg1NSBXaWxleSBQb3N0IFdheQorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0yRSAgIChoZXgpCQlQYWNrZXRIb3AsIEluYy4KKzAwMTUyRSAgICAgKGJhc2UgMTYpCQlQYWNrZXRIb3AsIEluYy4KKwkJCQkxMzAxIFNob3Jld2F5IFJvYWQKKwkJCQlTdWl0ZSAyMDAKKwkJCQlCZWxtb250IENhbGlmb3JuaWEgOTQwMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTJGICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE1MkYgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0zMCAgIChoZXgpCQlCdXMtVGVjaCwgSW5jLgorMDAxNTMwICAgICAoYmFzZSAxNikJCUJ1cy1UZWNoLCBJbmMuCisJCQkJMTI5IE1pZGRsZXNleCBUdXJucGlrZQorCQkJCUJ1cmxpbmd0b24gTWEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTMxICAgKGhleCkJCUtPQ09NCiswMDE1MzEgICAgIChiYXNlIDE2KQkJS09DT00KKwkJCQk1RiwgS09DT00gQmxkZy4sIDI2MC03CisJCQkJWXVtY2hhbmctRG9uZywgS2FuZ3Nlby1HdQorCQkJCVNFT1VMICAxNTctMDQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTMyICAgKGhleCkJCUNvbnN1bWVyIFRlY2hub2xvZ2llcyBHcm91cCwgTExDCiswMDE1MzIgICAgIChiYXNlIDE2KQkJQ29uc3VtZXIgVGVjaG5vbG9naWVzIEdyb3VwLCBMTEMKKwkJCQk4MDEgQnJvb2tob2xsb3cKKwkJCQlFZmxhbmQgTkMgMjcyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTMzICAgKGhleCkJCU5BREFNLkNPLixMVEQKKzAwMTUzMyAgICAgKGJhc2UgMTYpCQlOQURBTS5DTy4sTFRECisJCQkJIzkxLTMgV2FuZ3JpbS1MaQorCQkJCUJvbmdkYW0tRXVwCisJCQkJSHdhc2VvbmcgR3llb25nZ2kgNDQ1LTg5NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0zNCAgIChoZXgpCQlBIEJFTFRSw4PigJxOSUNBLCBDb21wYW5oaWEgZGUgQ29tdW5pY2HDg8Knw4PCtWVzLCBMZGEKKzAwMTUzNCAgICAgKGJhc2UgMTYpCQlBIEJFTFRSw4PigJxOSUNBLCBDb21wYW5oaWEgZGUgQ29tdW5pY2HDg8Knw4PCtWVzLCBMZGEKKwkJCQlSLiBEci4gSm9zw4PCqSBCYXB0aXN0YSBkZSBTb3VzYSwgMjcKKwkJCQlMaXNib24gIDE1NDktMDAyIExpcworCQkJCVBPUlRVR0FMCisKKzAwLTE1LTM1ICAgKGhleCkJCU9URSBTcGEKKzAwMTUzNSAgICAgKGJhc2UgMTYpCQlPVEUgU3BhCisJCQkJdmlhIEJhcnNhbnRpIDgKKwkJCQlGbG9yZW5jZSBGSSA1MDEyNworCQkJCUlUQUxZCisKKzAwLTE1LTM2ICAgKGhleCkJCVBvd2VydGVjaCBjby4sTHRkCiswMDE1MzYgICAgIChiYXNlIDE2KQkJUG93ZXJ0ZWNoIGNvLixMdGQKKwkJCQkjNzA1LCBkb25neW91bmcgVmVudHVyZXN0ZWwsIDE5OS0zMgorCQkJCUFueWFuZzctZG9uZywgTWFuYW4tZ3UKKwkJCQlBbnlhbmcgQ2l0eSBLeW91bmdraS1kbyA0MzAtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTM3ICAgKGhleCkJCVZlbnR1cyBOZXR3b3JrcworMDAxNTM3ICAgICAoYmFzZSAxNikJCVZlbnR1cyBOZXR3b3JrcworCQkJCTgwMCBDb25uZWN0aWN1dCBBdmUKKwkJCQkxc3QgZmxvb3Igd2VzdAorCQkJCU5vcndhbGsgQ1QgMDY4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTM4ICAgKGhleCkJCVJGSUQsIEluYy4KKzAwMTUzOCAgICAgKGJhc2UgMTYpCQlSRklELCBJbmMuCisJCQkJMTQxMDAgRWFzdCBKZXdlbGwgQXZlLgorCQkJCVN1aXRlIDEyCisJCQkJQXVyb3JhIENPIDgwMDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS0zOSAgIChoZXgpCQlUZWNobm9kcml2ZSBTUkwKKzAwMTUzOSAgICAgKGJhc2UgMTYpCQlUZWNobm9kcml2ZSBTUkwKKwkJCQlWaWEgTGVvbmFyZG8gZGEgVmluY2kgMTYyCisJCQkJVHJlenphbm8gc3VsIE5hdmlnbGlvIE1pbGFubyAyMDA5MAorCQkJCUlUQUxZCisKKzAwLTE1LTNBICAgKGhleCkJCVNoZW56aGVuIFN5c2NhbiBUZWNobm9sb2d5IENvLixMdGQuCiswMDE1M0EgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gU3lzY2FuIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQkxM0YsIE9seW1waWMgUGxhemEsCisJCQkJU2hhbmcgYmFvIFJvYWQsIEZ1dGlhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDM0CisJCQkJQ0hJTkEKKworMDAtMTUtM0IgICAoaGV4KQkJRU1IIG1ldGVyaW5nIEdtYkggJiBDby4gS0cKKzAwMTUzQiAgICAgKGJhc2UgMTYpCQlFTUggbWV0ZXJpbmcgR21iSCAmIENvLiBLRworCQkJCVN1ZWRyaW5nIDUKKwkJCQlXaXR0ZW5idXJnIE1lY2tsZW5idXJnLVZvcnBvbW1lcm4gMTkyNDMKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LTNDICAgKGhleCkJCUtwcm90ZWNoIENvLiwgTHRkLgorMDAxNTNDICAgICAoYmFzZSAxNikJCUtwcm90ZWNoIENvLiwgTHRkLgorCQkJCTJuZCBGbG9vciwgIyAyMDIsIE15b3VuZy1qaSBlLVNwYWNlIElJCisJCQkJMjE4LCBBbi15YW5nIDcgRG9uZywgTWFuLWFuIEd1LAorCQkJCUFuLXlhbmcgQ2l0eSBHeWVvbmctZ2kgRG8gNDMwLTgxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0zRCAgIChoZXgpCQlFTElNIFBST0RVQ1QgQ08uCiswMDE1M0QgICAgIChiYXNlIDE2KQkJRUxJTSBQUk9EVUNUIENPLgorCQkJCTYwMi0yIEdBWUFORyBURUNITk8gVE9XTiwgR0FZQU5HLCAzLURPTkcKKwkJCQlLQU5HU0VPLUdVIFNFT1VMIEtPUkVBCisJCQkJU0VPVUwgMTU3LTc5MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS0zRSAgIChoZXgpCQlRLU1hdGljIFN3ZWRlbiBBQgorMDAxNTNFICAgICAoYmFzZSAxNikJCVEtTWF0aWMgU3dlZGVuIEFCCisJCQkJTmVvbmdhdGFuIDgKKwkJCQlNb2xuZGFsICA0MzEgNTMKKwkJCQlTV0VERU4KKworMDAtMTUtM0YgICAoaGV4KQkJQWxjYXRlbCBBbGVuaWEgU3BhY2UgSXRhbGlhCiswMDE1M0YgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBBbGVuaWEgU3BhY2UgSXRhbGlhCisJCQkJU3RyYWRhIFBhZGFuYSBTdXBlcmlvcmUgMjkwCisJCQkJVmltb2Ryb25lIE1JIDIwMDkwCisJCQkJSVRBTFkKKworMDAtMTUtNDAgICAoaGV4KQkJTm9ydGVsCiswMDE1NDAgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkLCBTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTUtNDEgICAoaGV4KQkJU3RyYXRhTGlnaHQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTU0MSAgICAgKGJhc2UgMTYpCQlTdHJhdGFMaWdodCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTIxMDUgUy4gQmFzY29tIEF2ZW51ZQorCQkJCVN1aXRlIDMwMAorCQkJCUNhbXBiZWxsIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS00MiAgIChoZXgpCQlNSUNST0hBUkQgUy5SLkwuCiswMDE1NDIgICAgIChiYXNlIDE2KQkJTUlDUk9IQVJEIFMuUi5MLgorCQkJCVZpYSBQcmltbyBNYWdnaW8gMzYKKwkJCQlTYW4gVml0dG9yZSBPbG9uYSBNaWxhbm8gMjAwMjgKKwkJCQlJVEFMWQorCiswMC0xNS00MyAgIChoZXgpCQlBYmVyZGVlbiBUZXN0IENlbnRlcgorMDAxNTQzICAgICAoYmFzZSAxNikJCUFiZXJkZWVuIFRlc3QgQ2VudGVyCisJCQkJNDAwIENvbGxlcmFuIFJvYWQKKwkJCQlCbGRnLiAzNTAKKwkJCQlBYmVyZGVlbiBQcm92aW5nIEdyb3VuZHMgTUQgMjEwMDUtNTA1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNDQgICAoaGV4KQkJY29NLnMuYS50LiBBRworMDAxNTQ0ICAgICAoYmFzZSAxNikJCWNvTS5zLmEudC4gQUcKKwkJCQlCZXNzZWxzdHIuIDMKKwkJCQlNYW5uaGVpbSAgRC02ODIxOQorCQkJCUdFUk1BTlkKKworMDAtMTUtNDUgICAoaGV4KQkJU0VFQ09ERSBDby4sIEx0ZC4KKzAwMTU0NSAgICAgKGJhc2UgMTYpCQlTRUVDT0RFIENvLiwgTHRkLgorCQkJCTR0aCBGbG9vciwgQW1pbiBCbGRnLiwgMTEwLTEsIFlhbmdqYWVkb25nLCBTZW9jaG9ndQorCQkJCVNlb3VsICAxMzctODkxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTQ2ICAgKGhleCkJCUlURyBXb3JsZHdpZGUgU2RuIEJoZAorMDAxNTQ2ICAgICAoYmFzZSAxNikJCUlURyBXb3JsZHdpZGUgU2RuIEJoZAorCQkJCTIsIEphbGFuIEFzdGFrYVU4LzgzCisJCQkJU2Vrc3llbiBVOCwgQnVraXQgSmVsdXRvbmcKKwkJCQlTaGFoIEFsYW0gU2VsYW5nb3IgRGFydWwgRWhzYW4gNDAxNTAKKwkJCQlNQUxBWVNJQQorCiswMC0xNS00NyAgIChoZXgpCQlBaVplbiBTb2x1dGlvbnMgSW5jLgorMDAxNTQ3ICAgICAoYmFzZSAxNikJCUFpWmVuIFNvbHV0aW9ucyBJbmMuCisJCQkJMTBGLTEsIE5vLjI5LCBQdWRpbmcgUmQuCisJCQkJSHNpbmNodSBIc2luY2h1IENvdW50eSAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LTQ4ICAgKGhleCkJCUNVQkUgVEVDSE5PTE9HSUVTCiswMDE1NDggICAgIChiYXNlIDE2KQkJQ1VCRSBURUNITk9MT0dJRVMKKwkJCQkxMCwgcnVlIGRlcyBSb3Npw6lyaXN0ZXMKKwkJCQlDSEFNUEFHTkUgQVUgTU9OVCBEJ09SIEZSQU5DRSA2OTQxMAorCQkJCUZSQU5DRQorCiswMC0xNS00OSAgIChoZXgpCQlEaXh0YWwgQmlvbWVkaWNhIEluZC4gQ29tLiBMdGRhCiswMDE1NDkgICAgIChiYXNlIDE2KQkJRGl4dGFsIEJpb21lZGljYSBJbmQuIENvbS4gTHRkYQorCQkJCVIuIEVuZy4gRnJhbmNpc2NvIFBpdHRhIEJyaXRvLCA3MDMKKwkJCQlTYW8gUGF1bG8gU1AgMDQ3NTMtMDgwCisJCQkJQlJBWklMCisKKzAwLTE1LTRBICAgKGhleCkJCVdBTlNISUggRUxFQ1RST05JQyBDTy4sIExURAorMDAxNTRBICAgICAoYmFzZSAxNikJCVdBTlNISUggRUxFQ1RST05JQyBDTy4sIExURAorCQkJCTNGIDcyLCBXVSBLT05HIDZ0aCBSRC4sCisJCQkJV1UgS1UgSU5EVVNUUklBTCBESVNUUklDVCwKKwkJCQlUQUlQRUkgSFNJRU4gVEFJV0FOIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtNEIgICAoaGV4KQkJV29uZGUgUHJvdWQgVGVjaG5vbG9neSBDby4sIEx0ZAorMDAxNTRCICAgICAoYmFzZSAxNikJCVdvbmRlIFByb3VkIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQkyMUYuLCBOby4xMDAsIFNlYy4xLCBTaGludGFpIDV0aCBSZAorCQkJCVNpamhpaCBjaXR5IFRhaXBlaSBDb3VudHkgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS00QyAgIChoZXgpCQlTYXVuZGVycyBFbGVjdHJvbmljcworMDAxNTRDICAgICAoYmFzZSAxNikJCVNhdW5kZXJzIEVsZWN0cm9uaWNzCisJCQkJODIgSW5kdXN0cmlhbCBQYXJrIFJkCisJCQkJU2FjbyBNRSAwNDA3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNEQgICAoaGV4KQkJTmV0cm9ub21lIFN5c3RlbXMsIEluYy4KKzAwMTU0RCAgICAgKGJhc2UgMTYpCQlOZXRyb25vbWUgU3lzdGVtcywgSW5jLgorCQkJCTE0NCBFbWVyeXZpbGxlIERyaXZlCisJCQkJU3VpdGUgMjMwCisJCQkJQ3JhbmJlcnJ5IFR3cC4gUEEgMTYwNjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTRFICAgKGhleCkJCUlFQworMDAxNTRFICAgICAoYmFzZSAxNikJCUlFQworCQkJCTMsIHJ1ZSBkZSBWYXJlbWLDqQorCQkJCVAuTy4gQm94IDEzMQorCQkJCUNIIC0gMTIxMSBHRU5FVkEgMjAKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LTRGICAgKGhleCkJCW9uZSBSRiBUZWNobm9sb2d5CiswMDE1NEYgICAgIChiYXNlIDE2KQkJb25lIFJGIFRlY2hub2xvZ3kKKwkJCQkxMzYwIFJvdXRlIGRlcyBEb2xpbmVzCisJCQkJQmF0IEI0IExlcyBDYXJkb3VsaW5lcworCQkJCVZhbGJvbm5lIFNvcGhpYS1BbnRpcG9saXMgUEFDQSAwNjU2MAorCQkJCUZSQU5DRQorCiswMC0xNS01MCAgIChoZXgpCQlOaXRzIFRlY2hub2xvZ3kgSW5jCiswMDE1NTAgICAgIChiYXNlIDE2KQkJTml0cyBUZWNobm9sb2d5IEluYworCQkJCTJGTC4gTm8uIDggQWxsZXkgMTYsIExhbmUgMjM1LCBCYXVjaGlhdSBSZC4sCisJCQkJU2hpbmRpYW4gQ2l0eSBUYWlwZWkgSHNpZW4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS01MSAgIChoZXgpCQlSYWRpb1B1bHNlIEluYy4KKzAwMTU1MSAgICAgKGJhc2UgMTYpCQlSYWRpb1B1bHNlIEluYy4KKwkJCQkybmQgZmwuIEhhbnMgQi9ELCAxMTEtNTUKKwkJCQlTZW9uZ25hZS1kb25nLCBHYW5nZG9uZy1ndQorCQkJCVNlb3VsICAxMzQtODgzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTUyICAgKGhleCkJCVdpLUdlYXIgSW5jLgorMDAxNTUyICAgICAoYmFzZSAxNikJCVdpLUdlYXIgSW5jLgorCQkJCTM0MCBDaHVyY2ggU3RyZWV0CisJCQkJU3VpdGUgMTAKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS01MyAgIChoZXgpCQlDeXR5YyBDb3Jwb3JhdGlvbgorMDAxNTUzICAgICAoYmFzZSAxNikJCUN5dHljIENvcnBvcmF0aW9uCisJCQkJMjUwIENhbXB1cyBEaXZlCisJCQkJTWFybGJvcm91Z2ggTUEgMDE3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTU0ICAgKGhleCkJCUF0YWx1bSBXaXJlbGVzcyBTLkEuCiswMDE1NTQgICAgIChiYXNlIDE2KQkJQXRhbHVtIFdpcmVsZXNzIFMuQS4KKwkJCQlDLyBPcmVsbGFuYSA1LCAxwrogSQorCQkJCU1hZHJpZCAgMjgwMDQKKwkJCQlTUEFJTgorCiswMC0xNS01NSAgIChoZXgpCQlERk0gR21iSAorMDAxNTU1ICAgICAoYmFzZSAxNikJCURGTSBHbWJICisJCQkJTGFocmVyIFN0cmFzc2UgNgorCQkJCUxhaHIgQmFkZW4tV3VlcnR0ZW1iZXJnIDc3OTMzCisJCQkJR0VSTUFOWQorCiswMC0xNS01NiAgIChoZXgpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCiswMDE1NTYgICAgIChiYXNlIDE2KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorCQkJCUxlIFBvbm5hbnQgZGUgUGFyaXMKKwkJCQkyNyBSdWUgTGVibGFuYworCQkJCUNFREVYIFBhcmlzIDc1NTEyCisJCQkJRlJBTkNFCisKKzAwLTE1LTU3ICAgKGhleCkJCU9saXZldHRpCiswMDE1NTcgICAgIChiYXNlIDE2KQkJT2xpdmV0dGkKKwkJCQlWaWEgSmVydmlzIDc3CisJCQkJSXZyZWEgVG9yaW5vIDEwMDE1CisJCQkJSVRBTFkKKworMDAtMTUtNTggICAoaGV4KQkJRk9YQ09OTgorMDAxNTU4ICAgICAoYmFzZSAxNikJCUZPWENPTk4KKwkJCQlOby4yLDJuZCBEb25nSHVhbiBSb2FkLDEwdGggWW91U29uZworCQkJCUluZHVzdHJpYWwgRGlzdHJpY3QsTG9uZ0h1YSBTdHJlZXQsQmFvJ2FuLAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMDkKKwkJCQlDSElOQQorCiswMC0xNS01OSAgIChoZXgpCQlTZWN1cmFwbGFuZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTU1OSAgICAgKGJhc2UgMTYpCQlTZWN1cmFwbGFuZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMDgwMCBOLiBNYXZpbmVlIERyLgorCQkJCVR1Y3NvbiBBWiA4NTczNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNUEgICAoaGV4KQkJREFJTklQUE9OIFBIQVJNQUNFVVRJQ0FMIENPLiwgTFRELgorMDAxNTVBICAgICAoYmFzZSAxNikJCURBSU5JUFBPTiBQSEFSTUFDRVVUSUNBTCBDTy4sIExURC4KKwkJCQkyLTYtOCwgRE9TSE9NQUNISSwgQ0hVTy1LVQorCQkJCU9TQUtBIENJVFkgT1NBS0EgUFJFRi4gNTQxLTg1MjQKKwkJCQlKQVBBTgorCiswMC0xNS01QiAgIChoZXgpCQlTYW1wbyBDb3Jwb3JhdGlvbgorMDAxNTVCICAgICAoYmFzZSAxNikJCVNhbXBvIENvcnBvcmF0aW9uCisJCQkJMjE2IENodW5nIFNoYW4gUm9hZCwKKwkJCQlTZWMuIDEsIFBhbmNoaWFvIENpdHkKKwkJCQlUYWlwZWkgSHNpZW4gMjIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS01QyAgIChoZXgpCQlEcmVzc2VyIFdheW5lCiswMDE1NUMgICAgIChiYXNlIDE2KQkJRHJlc3NlciBXYXluZQorCQkJCTM4MTQgSmFycmV0dCBXYXkKKwkJCQlBdXN0aW4gVGV4YXMgNzg3MjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTVEICAgKGhleCkJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorMDAxNTVEICAgICAoYmFzZSAxNikJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorCQkJCU9uZSBNaWNyb3NvZnQgV2F5CisJCQkJUmVkbW9uZCBXQSA5ODA1Mi04MzAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS01RSAgIChoZXgpCQlNb3JnYW4gU3RhbmxleQorMDAxNTVFICAgICAoYmFzZSAxNikJCU1vcmdhbiBTdGFubGV5CisJCQkJNzUwIDd0aCBBdmVudWUKKwkJCQlOZXcgWW9yayBOWSAxMDAxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNUYgICAoaGV4KQkJR3JlZW5QZWFrIFRlY2hub2xvZ2llcworMDAxNTVGICAgICAoYmFzZSAxNikJCUdyZWVuUGVhayBUZWNobm9sb2dpZXMKKwkJCQlMaW5kZXN0cmFhdCAxOQorCQkJCVplbGUgIDkyNDAKKwkJCQlCRUxHSVVNCisKKzAwLTE1LTYwICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDE1NjAgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OSBTb3V0aAorCQkJCU1TMDcwNDA1CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNjEgICAoaGV4KQkJSkpQbHVzIENvcnBvcmF0aW9uCiswMDE1NjEgICAgIChiYXNlIDE2KQkJSkpQbHVzIENvcnBvcmF0aW9uCisJCQkJNjc4IE1hc3NhY2h1c2V0dHMgQXZlCisJCQkJU3VpdGUgNTAzCisJCQkJQ2FtYnJpZGdlIE1BIDAyMTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS02MiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE1NjIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS02MyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE1NjMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS02NCAgIChoZXgpCQlCRUhSSU5HRVIgU3BlemllbGxlIFN0dWRpb3RlY2huaWsgR21iSAorMDAxNTY0ICAgICAoYmFzZSAxNikJCUJFSFJJTkdFUiBTcGV6aWVsbGUgU3R1ZGlvdGVjaG5payBHbWJICisJCQkJSGFubnMtTWFydGluLVNjaGxleWVyLVN0ci4gMzYtMzgKKwkJCQlXaWxsaWNoICAKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LTY1ICAgKGhleCkJCVhJQU1FTiBZRUFMSU5LIE5FVFdPUksgVEVDSE5PTE9HWSBDTy4sTFRECiswMDE1NjUgICAgIChiYXNlIDE2KQkJWElBTUVOIFlFQUxJTksgTkVUV09SSyBURUNITk9MT0dZIENPLixMVEQKKwkJCQk3RiBIdWFsaWFuIEVsZWN0cm9uaWMgQkxERy41ODAgSmlhaGUgUm9hZCxYaWFtZW4gQ2hpbmEKKwkJCQlYaWFtZW4gRnVqaWFuIDM2MTAwNgorCQkJCUNISU5BCisKKzAwLTE1LTY2ICAgKGhleCkJCUEtRmlyc3QgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMTU2NiAgICAgKGJhc2UgMTYpCQlBLUZpcnN0IFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNUYsIE5vLiAxMTEtMiwgU2hpbi1UZWggUmQuLAorCQkJCVNhbi1DaHVuZyBDaXR5IFRhaXBlaSBTaGllbiAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LTY3ICAgKGhleCkJCVJBRFdJTiBJbmMuCiswMDE1NjcgICAgIChiYXNlIDE2KQkJUkFEV0lOIEluYy4KKwkJCQk5MDAgQ29ycG9yYXRlIERyaXZlCisJCQkJTWFod2FoIE5KIDA3NDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS02OCAgIChoZXgpCQlEaWxpdGhpdW0gTmV0d29ya3MKKzAwMTU2OCAgICAgKGJhc2UgMTYpCQlEaWxpdGhpdW0gTmV0d29ya3MKKwkJCQk1NDAxIE9sZCBSZWR3b29kIEh3eQorCQkJCVBldGFsdW1hIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS02OSAgIChoZXgpCQlQRUNPIElJLCBJbmMuCiswMDE1NjkgICAgIChiYXNlIDE2KQkJUEVDTyBJSSwgSW5jLgorCQkJCTcwNjAgSHVudGxleSBSb2FkCisJCQkJQ29sdW1idXMgT0ggNDMyMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTZBICAgKGhleCkJCURHMkwgVGVjaG5vbG9naWVzIFB2dC4gTHRkLgorMDAxNTZBICAgICAoYmFzZSAxNikJCURHMkwgVGVjaG5vbG9naWVzIFB2dC4gTHRkLgorCQkJCUFNTCBDZW50ZXIgMSwgR25kLiBGbG9vciwgOCBNYWhhbCBJbmRsLiBFc3QuCisJCQkJT2ZmLiBNYWhha2FsaSBDYXZlcyBSb2FkLCBBbmRoZXJpIEUKKwkJCQlNdW1iYWkgTWFoYXJhc2h0cmEgNDAwMDkzCisJCQkJSU5ESUEKKworMDAtMTUtNkIgICAoaGV4KQkJUGVyZmlzYW5zIE5ldHdvcmtzIENvcnAuCiswMDE1NkIgICAgIChiYXNlIDE2KQkJUGVyZmlzYW5zIE5ldHdvcmtzIENvcnAuCisJCQkJNDExOCAxNHRoIEF2ZW51ZQorCQkJCVVuaXQgNAorCQkJCU1hcmtoYW0gT250YXJpbyBMM1IgMEozCisJCQkJQ0FOQURBCisKKzAwLTE1LTZDICAgKGhleCkJCVNBTkUgU1lTVEVNIENPLiwgTFRECiswMDE1NkMgICAgIChiYXNlIDE2KQkJU0FORSBTWVNURU0gQ08uLCBMVEQKKwkJCQlQaWthLUJ1aWxkaW5nIDRGICM4OTQgSG9neWUtRG9uZyBEb25nYW4tR1UKKwkJCQlBbnlhbmctc2kgS3l1bmdnaS1kbyA0MzEtODM2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTZEICAgKGhleCkJCVViaXF1aXRpIE5ldHdvcmtzIEluYy4KKzAwMTU2RCAgICAgKGJhc2UgMTYpCQlVYmlxdWl0aSBOZXR3b3JrcyBJbmMuCisJCQkJNDk1IE1vbnRhZ3VlIEV4cHd5LgorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS02RSAgIChoZXgpCQlBLiBXLiBDb21tdW5pY2F0aW9uIFN5c3RlbXMgTHRkCiswMDE1NkUgICAgIChiYXNlIDE2KQkJQS4gVy4gQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIEx0ZAorCQkJCUNyb29rIEJhcm4KKwkJCQlUaGUgQ3Jvb2ssIFJvd2VsdG93bgorCQkJCUNhcmxpc2xlIEN1bWJyaWEgQ0E2IDZMSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE1LTZGICAgKGhleCkJCVhpcmFuZXQgQ29tbXVuaWNhdGlvbnMgR21iSAorMDAxNTZGICAgICAoYmFzZSAxNikJCVhpcmFuZXQgQ29tbXVuaWNhdGlvbnMgR21iSAorCQkJCUJlcnRvbHQtQnJlY2h0LUFsbGVlIDI0CisJCQkJRHJlc2RlbiBTYXhvbnkgMDEzMDkKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LTcwICAgKGhleCkJCVN5bWJvbCBUZWNobm9sb2dpZXNXaG9sbHkgb3duZWQgU3Vic2lkaWFyeSBvZiBNb3Rvcm9sYQorMDAxNTcwICAgICAoYmFzZSAxNikJCVN5bWJvbCBUZWNobm9sb2dpZXNXaG9sbHkgb3duZWQgU3Vic2lkaWFyeSBvZiBNb3Rvcm9sYQorCQkJCU9uZSBNb3Rvcm9sYSBQbGF6YQorCQkJCUhvbHRzdmlsbGUgTlkgMTE3NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTcxICAgKGhleCkJCU5vbGFuIFN5c3RlbXMKKzAwMTU3MSAgICAgKGJhc2UgMTYpCQlOb2xhbiBTeXN0ZW1zCisJCQkJMTU5NSBDbGVvIFNwcmluZ3MgRHIuCisJCQkJU2FuIEpvc2UgQ2EuIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS03MiAgIChoZXgpCQlSZWQtTGVtb24KKzAwMTU3MiAgICAgKGJhc2UgMTYpCQlSZWQtTGVtb24KKwkJCQlVbml0IDQsIDkvRiwgUGFyYW1vdW50IEJ1aWxkaW5nCisJCQkJTm8uIDEyLCBLYSBZaXAgU3RyZWV0CisJCQkJQ2hhaSBXYW4gIAorCQkJCUhPTkcgS09ORworCiswMC0xNS03MyAgIChoZXgpCQlOZXdTb2Z0ICBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDE1NzMgICAgIChiYXNlIDE2KQkJTmV3U29mdCAgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTNGLCAxOS0zLCBTYW5DaG9uZyBSRCwgTmFuS2FuZywKKwkJCQlUYWlwZWkgIDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtNzQgICAoaGV4KQkJSG9yaXpvbiBTZW1pY29uZHVjdG9ycyBMdGQuCiswMDE1NzQgICAgIChiYXNlIDE2KQkJSG9yaXpvbiBTZW1pY29uZHVjdG9ycyBMdGQuCisJCQkJOSBIYW1lbm9maW0gU3QuCisJCQkJUE9CIDIxOTIKKwkJCQlIZXJ6bGl5YSAgNDYxMjAKKwkJCQlJU1JBRUwKKworMDAtMTUtNzUgICAoaGV4KQkJTmV2aXMgTmV0d29ya3MgSW5jLgorMDAxNTc1ICAgICAoYmFzZSAxNikJCU5ldmlzIE5ldHdvcmtzIEluYy4KKwkJCQkzOTQ1IEZyZWVkb20gQ2lyY2xlCisJCQkJU3VpdGUgNzIwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LTc2ICAgKGhleCkJCXNjaWwgYW5pbWFsIGNhcmUgY29tcGFueSBHbWJICiswMDE1NzYgICAgIChiYXNlIDE2KQkJc2NpbCBhbmltYWwgY2FyZSBjb21wYW55IEdtYkgKKwkJCQlEaW5hLVdlaXNzbWFubi1BbGxlZSA2CisJCQkJVmllcm5oZWltIEhlc3NlbiA2ODUxOQorCQkJCUdFUk1BTlkKKworMDAtMTUtNzcgICAoaGV4KQkJQWxsaWVkIFRlbGVzaXMKKzAwMTU3NyAgICAgKGJhc2UgMTYpCQlBbGxpZWQgVGVsZXNpcworCQkJCTMyMDAgTm9ydGggRmlyc3QgU3RyZWV0CisJCQkJU2FuIEpvc2UgQ2FsaWZvcm5pYSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtNzggICAoaGV4KQkJQXVkaW8gLyBWaWRlbyBJbm5vdmF0aW9ucworMDAxNTc4ICAgICAoYmFzZSAxNikJCUF1ZGlvIC8gVmlkZW8gSW5ub3ZhdGlvbnMKKwkJCQlBMy0zMzc1IE5vcnRoIFNlcnZpY2UgUm9hZAorCQkJCUJ1cmxpbmd0b24gT04gTDdOIDNHMgorCQkJCUNBTkFEQQorCiswMC0xNS03OSAgIChoZXgpCQlMdW5hdG9uZSBJbmR1c3RyaWVsbGUgRWxla3Ryb25payBHbWJICiswMDE1NzkgICAgIChiYXNlIDE2KQkJTHVuYXRvbmUgSW5kdXN0cmllbGxlIEVsZWt0cm9uaWsgR21iSAorCQkJCVJlbm5iYWhud2VnIDU1CisJCQkJV2llbiAgMTIyMAorCQkJCUFVU1RSSUEKKworMDAtMTUtN0EgICAoaGV4KQkJVGVsZWZpbiBTLnAuQS4KKzAwMTU3QSAgICAgKGJhc2UgMTYpCQlUZWxlZmluIFMucC5BLgorCQkJCVZpYSBBbGJlcmUgODcvQQorCQkJCVZlcm9uYSBWUiAzNzEzOAorCQkJCUlUQUxZCisKKzAwLTE1LTdCICAgKGhleCkJCUxldXplIGVsZWN0cm9uaWMgR21iSCArIENvLiBLRworMDAxNTdCICAgICAoYmFzZSAxNikJCUxldXplIGVsZWN0cm9uaWMgR21iSCArIENvLiBLRworCQkJCUluIGRlciBCcmFpa2UgMQorCQkJCU93ZW4gQmFkZW4tV8O8cnR0ZW1iZXJnIDczMjc3CisJCQkJR0VSTUFOWQorCiswMC0xNS03QyAgIChoZXgpCQlEYXZlIE5ldHdvcmtzLCBJbmMuCiswMDE1N0MgICAgIChiYXNlIDE2KQkJRGF2ZSBOZXR3b3JrcywgSW5jLgorCQkJCTIxNTEgTyd0b29sIEF2ZW51ZQorCQkJCVN1aXRlIEgKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtN0QgICAoaGV4KQkJUE9TREFUQSBDTy4sIExURC4KKzAwMTU3RCAgICAgKGJhc2UgMTYpCQlQT1NEQVRBIENPLiwgTFRELgorCQkJCTI3Ni0yLFNlb2h5ZW9uLWRvbmcsQnVuZGFuZy1ndSwKKwkJCQlTZW9uZ25hbS1DaXR5IEt5ZW9uZ2dpLURvIDQ2My03NzUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtN0UgICAoaGV4KQkJV2VpZG38bGxlciBJbnRlcmZhY2UgR21iSCAmIENvLiBLRyAgIAorMDAxNTdFICAgICAoYmFzZSAxNikJCVdlaWRt/GxsZXIgSW50ZXJmYWNlIEdtYkggJiBDby4gS0cgICAKKwkJCQlLbGluZ2VuYmVyZ3N0cmHfZSAxNgorCQkJCURldG1vbGQgIDMyNzU4IAorCQkJCUdFUk1BTlkKKworMDAtMTUtN0YgICAoaGV4KQkJQ2h1YW5HIEludGVybmF0aW9uYWwgSG9sZGluZyBDTy4sTFRELgorMDAxNTdGICAgICAoYmFzZSAxNikJCUNodWFuRyBJbnRlcm5hdGlvbmFsIEhvbGRpbmcgQ08uLExURC4KKwkJCQkxRiwgTk8uMTIsIEFsbGV5IDEsIExhbmUgMTI1LCBHdW9saWFuIFN0cmVldCA0TGlybiwgV3VoYW4gVmlsbGFnZQorCQkJCVRhb3l1YW4gTG9uZ3RhbiAzMjUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LTgwICAgKGhleCkJCVUtV0FZIENPUlBPUkFUSU9OCiswMDE1ODAgICAgIChiYXNlIDE2KQkJVS1XQVkgQ09SUE9SQVRJT04KKwkJCQkzRi0yLCBOTy4gMTI1LCBMQU5FIDIzNSwgUEFPLUNISUFPCisJCQkJSFNJTlRJRU4gQ0lUWSBUQUlQRUkgSFNJRU4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS04MSAgIChoZXgpCQlNQUtVUyBJbmMuCiswMDE1ODEgICAgIChiYXNlIDE2KQkJTUFLVVMgSW5jLgorCQkJCTRGIERhZWRvIEJsZGcuIDc0OC0xNCBZZW9rc2FtLWRvbmcsIEthbmduYW0tZ3UKKwkJCQlTZW91bCAxMzUtMDgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTgyICAgKGhleCkJCVRWb25pY3MgTHRkCiswMDE1ODIgICAgIChiYXNlIDE2KQkJVFZvbmljcyBMdGQKKwkJCQlQZW5vY2VkIFRlY2hub2xvZ3kgUGFyaworCQkJCVBlbmNvZWQgTWlkIEdsYW0gQ0YzNSA1SFoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNS04MyAgIChoZXgpCQlJVlQgY29ycG9yYXRpb24KKzAwMTU4MyAgICAgKGJhc2UgMTYpCQlJVlQgY29ycG9yYXRpb24KKwkJCQlTaGFuZ2RpIFhpbnhpIHJvYWQsIEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0xNS04NCAgIChoZXgpCQlTY2hlbmNrIFByb2Nlc3MgR21iSAorMDAxNTg0ICAgICAoYmFzZSAxNikJCVNjaGVuY2sgUHJvY2VzcyBHbWJICisJCQkJUGFsbGFzd2llc2Vuc3RyLiAxMDAKKwkJCQlEYXJtc3RhZHQgSGVzc2VuIDY0MjkzCisJCQkJR0VSTUFOWQorCiswMC0xNS04NSAgIChoZXgpCQlBb252aXNpb24gVGVjaG5vbG9weSBDb3JwLgorMDAxNTg1ICAgICAoYmFzZSAxNikJCUFvbnZpc2lvbiBUZWNobm9sb3B5IENvcnAuCisJCQkJMkYsIE5vLiA1OCwgUGFyayAybmQgQXZlLiBTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1IDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtODYgICAoaGV4KQkJWGlhbWVuIE92ZXJzZWFzIENoaW5lc2UgRWxlY3Ryb25pYyBDby4sIEx0ZC4KKzAwMTU4NiAgICAgKGJhc2UgMTYpCQlYaWFtZW4gT3ZlcnNlYXMgQ2hpbmVzZSBFbGVjdHJvbmljIENvLiwgTHRkLgorCQkJCU5vLiAyMiwgSHVsaSBTdHJlZXQsCisJCQkJSHVsaSBJbmR1c3RyaWFsIERpc3RyaWN0CisJCQkJWGlhbWVuIEZ1amlhbiAzNjEwMDYKKwkJCQlDSElOQQorCiswMC0xNS04NyAgIChoZXgpCQlUYWtlbmFrYSBTZWlzYWt1c2hvIENvLixMdGQKKzAwMTU4NyAgICAgKGJhc2UgMTYpCQlUYWtlbmFrYSBTZWlzYWt1c2hvIENvLixMdGQKKwkJCQkxNzggSElTSElFCisJCQkJSElHQVNISS1PU0FLQSBDSVRZIE9TQUtBIDU3OC0wOTg0CisJCQkJSkFQQU4KKworMDAtMTUtODggICAoaGV4KQkJQmFsZGEgU29sdXRpb24gTWFsYXlzaWEgU2RuIEJoZAorMDAxNTg4ICAgICAoYmFzZSAxNikJCUJhbGRhIFNvbHV0aW9uIE1hbGF5c2lhIFNkbiBCaGQKKwkJCQkzIEphbGFuIFphcmliIDYKKwkJCQlLYXdhc2FuIFBlcmluZHVzdHJpYW4gWmFyaWIKKwkJCQlMYWhhdCwgSXBvaCBQZXJhayAzMTUwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE1LTg5ICAgKGhleCkJCUQtTUFYIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAxNTg5ICAgICAoYmFzZSAxNikJCUQtTUFYIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTdGLTYsTk8uMjYsTGlhbiBDaGVuZyBSRC4sQ2h1bmctSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS04QSAgIChoZXgpCQlTVVJFQ09NIFRlY2hub2xvZ3kgQ29ycC4KKzAwMTU4QSAgICAgKGJhc2UgMTYpCQlTVVJFQ09NIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQk2RiwgTm8uIDEyNSwgU2VjLiAyLCBEYXR1bmcgUmQuCisJCQkJU2hpanIgQ2l0eSwgVGFpcGVpIENvdW50eSAgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS04QiAgIChoZXgpCQlQYXJrIEFpciBTeXN0ZW1zIEx0ZAorMDAxNThCICAgICAoYmFzZSAxNikJCVBhcmsgQWlyIFN5c3RlbXMgTHRkCisJCQkJTm9ydGhmaWVsZHMKKwkJCQlNYXJrZXQgRGVlcGluZworCQkJCVBldGVyYm9yb3VnaCAgUEU2IDhVRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE1LThDICAgKGhleCkJCUxpYWIgQXBTCiswMDE1OEMgICAgIChiYXNlIDE2KQkJTGlhYiBBcFMKKwkJCQlPZXN0cmUgQWxsZSA2CisJCQkJU3RvZXZyaW5nICBESy05NTMwCisJCQkJREVOTUFSSworCiswMC0xNS04RCAgIChoZXgpCQlKZW5uaWMgTHRkCiswMDE1OEQgICAgIChiYXNlIDE2KQkJSmVubmljIEx0ZAorCQkJCUZ1cm5pdmFsIFN0cmVldAorCQkJCVNoZWZmaWVsZCBZb3Jrc2hpcmUgUzEgNFFUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtOEUgICAoaGV4KQkJUGx1c3Rlay5JTkMKKzAwMTU4RSAgICAgKGJhc2UgMTYpCQlQbHVzdGVrLklOQworCQkJCTEzRi0xLE5vMyhCdWlsZGluZyBGKSBZdWFuIFF1IFN0cmVldAorCQkJCVRhaXBlaSBZdWFuIFF1IDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtOEYgICAoaGV4KQkJTlRUIEFkdmFuY2VkIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMTU4RiAgICAgKGJhc2UgMTYpCQlOVFQgQWR2YW5jZWQgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCVNoaW5qdWt1IE1pdHN1aSBCbGRnLiAyLTEtMSwgTmlzaGktc2hpbmp1a3UKKwkJCQlTaGluanVrdS1rdSBUb2t5byAxNjMtMDQzMQorCQkJCUpBUEFOCisKKzAwLTE1LTkwICAgKGhleCkJCUhlY3Ryb25pYyBHbWJICiswMDE1OTAgICAgIChiYXNlIDE2KQkJSGVjdHJvbmljIEdtYkgKKwkJCQlBbGxtZW5kc3RyYXNzZSAxNQorCQkJCUJvbm5kb3JmIEJhZGVuLVfDvHJ0dGVtYmVyZyA3OTg0OAorCQkJCUdFUk1BTlkKKworMDAtMTUtOTEgICAoaGV4KQkJUkxXIEluYy4KKzAwMTU5MSAgICAgKGJhc2UgMTYpCQlSTFcgSW5jLgorCQkJCTIwMjkgQ2F0byBBdmUuCisJCQkJU3RhdGUgQ29sbGVnZSBQQSAxNjgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtOTIgICAoaGV4KQkJRmFjb20gVUsgTHRkIChNZWxrc2hhbSkKKzAwMTU5MiAgICAgKGJhc2UgMTYpCQlGYWNvbSBVSyBMdGQgKE1lbGtzaGFtKQorCQkJCUxhbmNhc3RlciBIb3VzZQorCQkJCUJvd2VyaGlsbCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCU1lbGtzaGFtIFdpbHRzaGlyZSBTTjEwNEZCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtOTMgICAoaGV4KQkJVTRFQSBUZWNobm9sb2dpZXMgSW5jLgorMDAxNTkzICAgICAoYmFzZSAxNikJCVU0RUEgVGVjaG5vbG9naWVzIEluYy4KKwkJCQk0ODg2MCBNaWxtb250IERyaXZlCisJCQkJU3VpdGUxMDdDCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtOTQgICAoaGV4KQkJQklYT0xPTiBDTy4sTFRECiswMDE1OTQgICAgIChiYXNlIDE2KQkJQklYT0xPTiBDTy4sTFRECisJCQkJNTAyLTUwOCxEaWdpdGFsIEVtcGlyZSBCbGRnLgorCQkJCTk4MC0zIFllb25ndG9uZy1Eb25nCisJCQkJWWVvbmd0b25nLUd1LFN1d29uIEd5ZW9uZ2dpLURvIDQ0My04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtOTUgICAoaGV4KQkJUXVlc3RlciBUYW5nZW50IENvcnBvcmF0aW9uCiswMDE1OTUgICAgIChiYXNlIDE2KQkJUXVlc3RlciBUYW5nZW50IENvcnBvcmF0aW9uCisJCQkJMjAxIC0gOTg2NSBXZXN0IFNhYW5pY2ggUm9hZAorCQkJCVNpZG5leSBCQyBWOEwgNVk4CisJCQkJQ0FOQURBCisKKzAwLTE1LTk2ICAgKGhleCkJCUFSUklTIEludGVybmF0aW9uYWwKKzAwMTU5NiAgICAgKGJhc2UgMTYpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS05NyAgIChoZXgpCQlBRVRBIEFVRElPIFNZU1RFTVMKKzAwMTU5NyAgICAgKGJhc2UgMTYpCQlBRVRBIEFVRElPIFNZU1RFTVMKKwkJCQkxOC0yMiwgYXZlbnVlIEVkb3VhcmQgSGVycmlvdAorCQkJCUtlcGxlciA0CisJCQkJTGUgUGxlc3NpcyBSb2JpbnNvbiAgOTIzNTAKKwkJCQlGUkFOQ0UKKworMDAtMTUtOTggICAoaGV4KQkJS29sZWt0b3IgZ3JvdXAKKzAwMTU5OCAgICAgKGJhc2UgMTYpCQlLb2xla3RvciBncm91cAorCQkJCVZvamtvdmEgMTAKKwkJCQlJZHJpamEgIDUyODAKKwkJCQlTTE9WRU5JQQorCiswMC0xNS05OSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECiswMDE1OTkgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIExURAorCQkJCTQxNiwgTWFldGFuLTNEb25nLCBZZW9uZ3RvbmctR3UKKwkJCQlTdXdvbiBHeWVvbmdnaSA0NDMtNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LTlBICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE1OUEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS05QiAgIChoZXgpCQlOb3J0ZWwKKzAwMTU5QiAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xNS05QyAgIChoZXgpCQlCLUtZVU5HIFNZU1RFTSBDby4sTHRkLgorMDAxNTlDICAgICAoYmFzZSAxNikJCUItS1lVTkcgU1lTVEVNIENvLixMdGQuCisJCQkJIzgxMixXT09MSU0gRS1CSVogQ0VOVEVSLDE3MC01CisJCQkJR1VSTy1ET05HIEdVUk8tR1UgMTUyLTg0NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS05RCAgIChoZXgpCQlNaW5pY29tIEFkdmFuY2VkIFN5c3RlbXMgbHRkCiswMDE1OUQgICAgIChiYXNlIDE2KQkJTWluaWNvbSBBZHZhbmNlZCBTeXN0ZW1zIGx0ZAorCQkJCTE2LCBIYXJ0b20gU3QuCisJCQkJSGFyLUhvdHp2aW0KKwkJCQlKZXJ1c2FsZW0gIDkxNDUwCisJCQkJSVNSQUVMCisKKzAwLTE1LTlFICAgKGhleCkJCU1hZCBDYXR6IEludGVyYWN0aXZlIEluYworMDAxNTlFICAgICAoYmFzZSAxNikJCU1hZCBDYXR6IEludGVyYWN0aXZlIEluYworCQkJCVVuaXRzIDMrNCBXZXN0IFBvaW50IFJvdworCQkJCUdyZWF0IFBhcmsgUmQsIEFsbW9uZHNidXJ5CisJCQkJQnJpc3RvbCBTb3V0aCBHbG91Y2VzdGVyc2hpcmUgQlMzMiA0UUcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNS05RiAgIChoZXgpCQlUZXJhc2NhbGEsIEluYy4KKzAwMTU5RiAgICAgKGJhc2UgMTYpCQlUZXJhc2NhbGEsIEluYy4KKwkJCQkxNDUgQm9kd2VsbCBTdHJlZXQKKwkJCQlBdm9uIE1BIDAyMzIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1BMCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxNUEwICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xNS1BMSAgIChoZXgpCQlFQ0EtU0lOVEVSUworMDAxNUExICAgICAoYmFzZSAxNikJCUVDQS1TSU5URVJTCisJCQkJNSwgcnVlIFBhdWwgTWVzcGzDqQorCQkJCVRPVUxPVVNFIENlZGV4IDAxIDMxMTA2CisJCQkJRlJBTkNFCisKKzAwLTE1LUEyICAgKGhleCkJCUFSUklTIEludGVybmF0aW9uYWwKKzAwMTVBMiAgICAgKGJhc2UgMTYpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1BMyAgIChoZXgpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCiswMDE1QTMgICAgIChiYXNlIDE2KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQTQgICAoaGV4KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorMDAxNUE0ICAgICAoYmFzZSAxNikJCUFSUklTIEludGVybmF0aW9uYWwKKwkJCQkzODcxIExha2VmaWVsZCBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCVN1d2FuZWUgR0EgMzAwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUE1ICAgKGhleCkJCURDSSBDby4sIEx0ZC4KKzAwMTVBNSAgICAgKGJhc2UgMTYpCQlEQ0kgQ28uLCBMdGQuCisJCQkJNHRoIEZsLiBTdXN1bmcgQi9ELCA4OTMtNAorCQkJCUppam9rLWRvbmcKKwkJCQlZdXNlb25nLWd1IERhZWplb24gMzA1LTMzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS1BNiAgIChoZXgpCQlEaWdpdGFsIEVsZWN0cm9uaWNzIFByb2R1Y3RzIEx0ZC4KKzAwMTVBNiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIEVsZWN0cm9uaWNzIFByb2R1Y3RzIEx0ZC4KKwkJCQlSb29tIDMwMSwgMyByZCBGbG9vciwgVHN1biBZaXAgQ2VudHJlCisJCQkJNDEgVHN1biBZaXAgU3RyZWV0CisJCQkJS3d1biBUb25nICA4NTIKKwkJCQlIT05HIEtPTkcKKworMDAtMTUtQTcgICAoaGV4KQkJUm9iYXRlY2ggQUcKKzAwMTVBNyAgICAgKGJhc2UgMTYpCQlSb2JhdGVjaCBBRworCQkJCVBpbGF0dXNyaW5nIDEwCisJCQkJTXVyaSBBRyA1NjMwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTUtQTggICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMTVBOCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOIFVzIEh3eSA0NQorCQkJCVJtIE1XMTEzCisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1BOSAgIChoZXgpCQlLV0FORyBXT08gSSZDIENPLixMVEQKKzAwMTVBOSAgICAgKGJhc2UgMTYpCQlLV0FORyBXT08gSSZDIENPLixMVEQKKwkJCQk4OTgtMjMsIEhvZ3llLWRvbmcsRG9uZ2FuLWd1CisJCQkJQW55YW5nLXNpLEd5ZW9uZ2dpLWRvCisJCQkJNDMxLTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS1BQSAgIChoZXgpCQlSZXh0ZWNobmlrIEludGVybmF0aW9uYWwgQ28uLAorMDAxNUFBICAgICAoYmFzZSAxNikJCVJleHRlY2huaWsgSW50ZXJuYXRpb25hbCBDby4sCisJCQkJUm9vbSA1LTMsIE5vLjUxLCBTZWN0aW9uIDIsIEtlZWx1bmcgUm9hZAorCQkJCVRhaXBlaSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS1BQiAgIChoZXgpCQlQUk8gQ08gU09VTkQgSU5DCiswMDE1QUIgICAgIChiYXNlIDE2KQkJUFJPIENPIFNPVU5EIElOQworCQkJCTIyNSBQQVJTT05TIFNUUkVFVAorCQkJCUtBTEFNQVpPTyBNSUNISUdBTiA0OTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQUMgICAoaGV4KQkJQ2FwZWxvbiBBQgorMDAxNUFDICAgICAoYmFzZSAxNikJCUNhcGVsb24gQUIKKwkJCQlKw6RnZXJob3JucyB2w6RnIDEKKwkJCQlLdW5nZW5zIEt1cnZhIFN0b2NraG9sbSBTLTE0MSA3NQorCQkJCVNXRURFTgorCiswMC0xNS1BRCAgIChoZXgpCQlBY2NlZGlhbiBOZXR3b3JrcworMDAxNUFEICAgICAoYmFzZSAxNikJCUFjY2VkaWFuIE5ldHdvcmtzCisJCQkJNDg3OCBMZXZ5LCBzdWl0ZSAyMDIKKwkJCQlzdWl0ZSAyMDIKKwkJCQlTdC1MYXVyZW50IFF1ZWJlYyBIOVAgMlY0CisJCQkJQ0FOQURBCisKKzAwLTE1LUFFICAgKGhleCkJCWt5dW5nIGlsCiswMDE1QUUgICAgIChiYXNlIDE2KQkJa3l1bmcgaWwKKwkJCQl3b2FyIHJvbmctbXluIHlvdWdhdGUtcmkgMTAxLTIKKwkJCQlwYWp1LWNpdHkgZ3llb25nIGdpIDQxMy04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtQUYgICAoaGV4KQkJQXp1cmVXYXZlIFRlY2hub2xvZ2llcywgSW5jLgorMDAxNUFGICAgICAoYmFzZSAxNikJCUF6dXJlV2F2ZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk4Ri4sIE5vLjk0LCBCYW96aG9uZyBSZC4sIFhpbmRpYW4KKwkJCQlUYWlwZWkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtQjAgICAoaGV4KQkJQVVUT1RFTEVORVQgQ08uLExURAorMDAxNUIwICAgICAoYmFzZSAxNikJCUFVVE9URUxFTkVUIENPLixMVEQKKwkJCQkyRiwgODk4LTI0LCBIb2d5ZTItZG9uZywgRG9uZ2FuLWd1CisJCQkJQW55YW5nLUNpdHkgS3l1bmdnaS1kbyA0MzEtODM2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LUIxICAgKGhleCkJCUFtYmllbnQgQ29ycG9yYXRpb24KKzAwMTVCMSAgICAgKGJhc2UgMTYpCQlBbWJpZW50IENvcnBvcmF0aW9uCisJCQkJNzkgQ2hhcGVsIFN0LgorCQkJCU5ld3RvbiBNQSAwMjQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQjIgICAoaGV4KQkJQWR2YW5jZWQgSW5kdXN0cmlhbCBDb21wdXRlciwgSW5jLgorMDAxNUIyICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIEluZHVzdHJpYWwgQ29tcHV0ZXIsIEluYy4KKwkJCQkxNzk3MCBFLiBBamF4IENpcmNsZQorCQkJCUNpdHkgb2YgSW5kdXN0cnkgQ0EgOTE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUIzICAgKGhleCkJCUNhcmV0ZWNoIEFCCiswMDE1QjMgICAgIChiYXNlIDE2KQkJQ2FyZXRlY2ggQUIKKwkJCQlOeWJvcmdzdsOkZ2VuIDE5NworCQkJCUthbGl4ICA5NTI5MQorCQkJCVNXRURFTgorCiswMC0xNS1CNCAgIChoZXgpCQlQb2x5bWFwICBXaXJlbGVzcyBMTEMKKzAwMTVCNCAgICAgKGJhc2UgMTYpCQlQb2x5bWFwICBXaXJlbGVzcyBMTEMKKwkJCQkzMTAgUy4gV2lsbGlhbXMgQmx2ZC4gU3RlLiAzNTAKKwkJCQlUdWNzb24gQVogODU3MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUI1ICAgKGhleCkJCUNJIE5ldHdvcmsgQ29ycC4KKzAwMTVCNSAgICAgKGJhc2UgMTYpCQlDSSBOZXR3b3JrIENvcnAuCisJCQkJMkYgRGFpbmkgSW5vdWUgQmxkZworCQkJCTEtNi02IEFrYXNha2EgTWluYXRvLWt1CisJCQkJVG9reW8gIDEwNy0wMDUyCisJCQkJSkFQQU4KKworMDAtMTUtQjYgICAoaGV4KQkJU2hpbk1heXdhIEluZHVzdHJpZXMsIEx0ZC4KKzAwMTVCNiAgICAgKGJhc2UgMTYpCQlTaGluTWF5d2EgSW5kdXN0cmllcywgTHRkLgorCQkJCTEtMSBTaGlubWVpd2EtY2hvCisJCQkJVGFrYXJhenVrYSBIeW9nbyA2NjUtODU1MAorCQkJCUpBUEFOCisKKzAwLTE1LUI3ICAgKGhleCkJCVRvc2hpYmEKKzAwMTVCNyAgICAgKGJhc2UgMTYpCQlUb3NoaWJhCisJCQkJMi05LFN1ZWhpcm8tQ2hvCisJCQkJT21lIFRva3lvIDE5ODg3MTAKKwkJCQlKQVBBTgorCiswMC0xNS1COCAgIChoZXgpCQlUYWhvZQorMDAxNUI4ICAgICAoYmFzZSAxNikJCVRhaG9lCisJCQkJdWwuIFVuaXdlcnN5dGVja2EgMQorCQkJCVdyb2NsYXcgIDUwOTUxCisJCQkJUE9MQU5ECisKKzAwLTE1LUI5ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDE1QjkgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkjOTQtMQorCQkJCUltc29vLURvbmcKKwkJCQlHdW1pLUNpdHkgR3llb25nLUJ1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE1LUJBICAgKGhleCkJCWliYSBBRworMDAxNUJBICAgICAoYmFzZSAxNikJCWliYSBBRworCQkJCUtvZW5pZ3N3YXJ0ZXJzdHJhc3NlIDQ0CisJCQkJRnVlcnRoIEJhdmFyaWEgOTA3NjIKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LUJCICAgKGhleCkJCVNNQSBTb2xhciBUZWNobm9sb2d5IEFHCiswMDE1QkIgICAgIChiYXNlIDE2KQkJU01BIFNvbGFyIFRlY2hub2xvZ3kgQUcKKwkJCQlTb25uZW5hbGxlZSAxCisJCQkJTmllc3RldGFsIEhlc3NlbiAzNDI2NgorCQkJCUdFUk1BTlkKKworMDAtMTUtQkMgICAoaGV4KQkJRGV2ZWxjbworMDAxNUJDICAgICAoYmFzZSAxNikJCURldmVsY28KKwkJCQlPbG9mIFBhbG1lcyBBbGzDqSA0MAorCQkJCUFhcmh1cyBOICA4MjAwCisJCQkJREVOTUFSSworCiswMC0xNS1CRCAgIChoZXgpCQlHcm91cCA0IFRlY2hub2xvZ3kgTHRkCiswMDE1QkQgICAgIChiYXNlIDE2KQkJR3JvdXAgNCBUZWNobm9sb2d5IEx0ZAorCQkJCUNoYWxsZW5nZSBIb3VzZQorCQkJCUludGVybmF0aW9uYWwgRHJpdmUKKwkJCQlUZXdrZXNidXJ5IEdsb3VjZXN0ZXJzaGlyZSBHTDIwIDhVUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE1LUJFICAgKGhleCkJCUlxdWEgTHRkLgorMDAxNUJFICAgICAoYmFzZSAxNikJCUlxdWEgTHRkLgorCQkJCUh5dm9uaW5rYXR1IDEKKwkJCQlTYWxvIFZhcnNpbmFpcy1TdW9taSAyNDI0MAorCQkJCUZJTkxBTkQKKworMDAtMTUtQkYgICAoaGV4KQkJdGVjaG5pY29iCiswMDE1QkYgICAgIChiYXNlIDE2KQkJdGVjaG5pY29iCisJCQkJNCBSdWUgQ2FtaWxsZSBTYWludC1TYWVucworCQkJCUxBTkVTVEVSIE1vcmJpaGFuIDU2NjAyCisJCQkJRlJBTkNFCisKKzAwLTE1LUMwICAgKGhleCkJCURJR0lUQUwgVEVMRU1FRElBIENPLixMVEQuCiswMDE1QzAgICAgIChiYXNlIDE2KQkJRElHSVRBTCBURUxFTUVESUEgQ08uLExURC4KKwkJCQkxN1RIIEZMT09SLCBDSElOQSBZVVNFIEJVSUxESU5HLAorCQkJCU5PIDYwMTMgU0hFTk5BTiBST0FELEZVVElBTiBESVNUUklDVAorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0xNS1DMSAgIChoZXgpCQlTT05ZIENvbXB1dGVyIEVudGVydGFpbm1lbnQgaW5jLAorMDAxNUMxICAgICAoYmFzZSAxNikJCVNPTlkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBpbmMsCisJCQkJNi0yMSwyQ2hvbWUKKwkJCQlNaW5hbWktQW95YW1hCisJCQkJTWluYXRvLWt1IFRva3lvIDEwNy0wMDYyCisJCQkJSkFQQU4KKworMDAtMTUtQzIgICAoaGV4KQkJM00gR2VybWFueQorMDAxNUMyICAgICAoYmFzZSAxNikJCTNNIEdlcm1hbnkKKwkJCQlDYXJsIFNjaHVyeiBTdHIuIDEKKwkJCQlOZXVzcyBOUlcgNDE0NTMKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LUMzICAgKGhleCkJCVJ1ZiBUZWxlbWF0aWsgQUcKKzAwMTVDMyAgICAgKGJhc2UgMTYpCQlSdWYgVGVsZW1hdGlrIEFHCisJCQkJUnVldGlzdHJhc3NlIDEzCisJCQkJU2NobGllcmVuIFpIIDg5NTIKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xNS1DNCAgIChoZXgpCQlGTE9WRUwgQ08uLCBMVEQuCiswMDE1QzQgICAgIChiYXNlIDE2KQkJRkxPVkVMIENPLiwgTFRELgorCQkJCVRoZSBUYWNoaWhpIGJ1aWxkaW5nIE5vLDMgaGFsbCwgNi0xLCBTYWthZS1jaG8sCisJCQkJVGFjaGlrYXdhLXNoaQorCQkJCVRva3lvICAxOTAtMDAwMworCQkJCUpBUEFOCisKKzAwLTE1LUM1ICAgKGhleCkJCURlbGwgSW5jCiswMDE1QzUgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXkKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1DNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE1QzYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1DNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE1QzcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1DOCAgIChoZXgpCQlGbGV4aVBhbmVsIEx0ZAorMDAxNUM4ICAgICAoYmFzZSAxNikJCUZsZXhpUGFuZWwgTHRkCisJCQkJNyBiaXMgcnVlIExhbG8KKwkJCQlQYXJpcyA3NTAxNgorCQkJCUZSQU5DRQorCiswMC0xNS1DOSAgIChoZXgpCQlHdW1zdGl4LCBJbmMKKzAwMTVDOSAgICAgKGJhc2UgMTYpCQlHdW1zdGl4LCBJbmMKKwkJCQkzMTMwIEFscGluZSBSb2FkCisJCQkJU3VpdGUgMjg4LTYwNgorCQkJCVBvcnRvbGEgVmFsbGV5IENBIDk0MDI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1DQSAgIChoZXgpCQlUZXJhUmVjb24sIEluYy4KKzAwMTVDQSAgICAgKGJhc2UgMTYpCQlUZXJhUmVjb24sIEluYy4KKwkJCQkyOTU1IENhbXB1cyBEcml2ZSwgU3VpdGUgMzI1CisJCQkJU2FuIE1hdGVvIENBIDk0NDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1DQiAgIChoZXgpCQlTdXJmIENvbW11bmljYXRpb24gU29sdXRpb25zIEx0ZC4KKzAwMTVDQiAgICAgKGJhc2UgMTYpCQlTdXJmIENvbW11bmljYXRpb24gU29sdXRpb25zIEx0ZC4KKwkJCQlQLk8uIEJveCAzNDMKKwkJCQlTb2x0YW0gSW5kdXN0cmlhbCBab25lCisJCQkJWW9rbmVhbSAgMjAxNjQKKwkJCQlJU1JBRUwKKworMDAtMTUtQ0MgICAoaGV4KQkJVEVQQ08gVVFVRVNULCBMVEQuCiswMDE1Q0MgICAgIChiYXNlIDE2KQkJVEVQQ08gVVFVRVNULCBMVEQuCisJCQkJU2Fubm9taXlhIEludGVzIEJsZGcuIDhGCisJCQkJNy0xLTggSXNvZ2FtaS1kb3JpLCBDaHVvLWt1CisJCQkJS29iZSBIWU9HTyA2NTEtMDA4NgorCQkJCUpBUEFOCisKKzAwLTE1LUNEICAgKGhleCkJCUV4YXJ0ZWNoIEludGVybmF0aW9uYWwgQ29ycC4KKzAwMTVDRCAgICAgKGJhc2UgMTYpCQlFeGFydGVjaCBJbnRlcm5hdGlvbmFsIENvcnAuCisJCQkJMy9GLCBOby42MiwgTGFuZSAxODgsIFJ1ZWkgR3VhbmcgUmQuLCBOZWlodQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS1DRSAgIChoZXgpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCiswMDE1Q0UgICAgIChiYXNlIDE2KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorCQkJCTM4NzEgTGFrZWZpZWxkIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJU3V3YW5lZSBHQSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtQ0YgICAoaGV4KQkJQVJSSVMgSW50ZXJuYXRpb25hbAorMDAxNUNGICAgICAoYmFzZSAxNikJCUFSUklTIEludGVybmF0aW9uYWwKKwkJCQkzODcxIExha2VmaWVsZCBEcml2ZQorCQkJCVN1aXRlIDMwMAorCQkJCVN1d2FuZWUgR0EgMzAwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUQwICAgKGhleCkJCUFSUklTIEludGVybmF0aW9uYWwKKzAwMTVEMCAgICAgKGJhc2UgMTYpCQlBUlJJUyBJbnRlcm5hdGlvbmFsCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1EMSAgIChoZXgpCQlBUlJJUyBHcm91cCwgSW5jLgorMDAxNUQxICAgICAoYmFzZSAxNikJCUFSUklTIEdyb3VwLCBJbmMuCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1EMiAgIChoZXgpCQlYYW50ZWNoIENvcnBvcmF0aW9uCiswMDE1RDIgICAgIChiYXNlIDE2KQkJWGFudGVjaCBDb3Jwb3JhdGlvbgorCQkJCTEzMTAwIFRlbGZhaXIgQXZlbnVlCisJCQkJU2Vjb25kIEZsb29yCisJCQkJU3lsbWFyIENBIDkxMzQyLTM1NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUQzICAgKGhleCkJCVBhbnRlY2gmQ3VyaXRlbCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAxNUQzICAgICAoYmFzZSAxNikJCVBhbnRlY2gmQ3VyaXRlbCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTE0NTEtMzQsIFNlb2Noby1kb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCAgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNS1ENCAgIChoZXgpCQlFbWl0b3IgQUIKKzAwMTVENCAgICAgKGJhc2UgMTYpCQlFbWl0b3IgQUIKKwkJCQlTasO2dmlrc2JhY2tlbiAxNAorCQkJCVN0b2NraG9sbSAgMTE3IDQzCisJCQkJU1dFREVOCisKKzAwLTE1LUQ1ICAgKGhleCkJCU5JQ0VWVAorMDAxNUQ1ICAgICAoYmFzZSAxNikJCU5JQ0VWVAorCQkJCVdhcnNoYXdza29lIHNob3NzZSAxMjUKKwkJCQlNb3Njb3cgIDExNzQwNQorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xNS1ENiAgIChoZXgpCQlPU0xpTksgU3AuIHogby5vLgorMDAxNUQ2ICAgICAoYmFzZSAxNikJCU9TTGlOSyBTcC4geiBvLm8uCisJCQkJdWwuIE1hcnNhIDI3CisJCQkJR2RhbnNrICA4MDI5OQorCQkJCVBPTEFORAorCiswMC0xNS1ENyAgIChoZXgpCQlSZXRpIENvcnBvcmF0aW9uCiswMDE1RDcgICAgIChiYXNlIDE2KQkJUmV0aSBDb3Jwb3JhdGlvbgorCQkJCTZGLE5vIDEzLCBMYW5lIDEyMCwgU2VjIDEsIE5laWh1IFJkLiwKKwkJCQlUYWlwZWkgQ2l0eSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS1EOCAgIChoZXgpCQlJbnRlcmxpbmsgRWxlY3Ryb25pY3MKKzAwMTVEOCAgICAgKGJhc2UgMTYpCQlJbnRlcmxpbmsgRWxlY3Ryb25pY3MKKwkJCQk1NDYgRmx5bm4gUm9hZAorCQkJCUNhbWFyaWxsbyBDQSA5MzAxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtRDkgICAoaGV4KQkJUEtDIEVsZWN0cm9uaWNzIE95CiswMDE1RDkgICAgIChiYXNlIDE2KQkJUEtDIEVsZWN0cm9uaWNzIE95CisJCQkJUGFqdW5paXR5bnRpZSA0MworCQkJCVJBQUhFICA5MjEyMAorCQkJCUZJTkxBTkQKKworMDAtMTUtREEgICAoaGV4KQkJSVJJVEVMIEEuRC4KKzAwMTVEQSAgICAgKGJhc2UgMTYpCQlJUklURUwgQS5ELgorCQkJCUJhdGFqbmlja2kgcHV0IDIzCisJCQkJQmVvZ3JhZCBTZXJiaWEgMTEwODAKKwkJCQlZVUdPU0xBVklBCisKKzAwLTE1LURCICAgKGhleCkJCUNhbmVzdGEgSW5jLgorMDAxNURCICAgICAoYmFzZSAxNikJCUNhbmVzdGEgSW5jLgorCQkJCTk2NSBXZXN0IE1hdWRlIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1EQyAgIChoZXgpCQlLVCZDIENvLiwgTHRkLgorMDAxNURDICAgICAoYmFzZSAxNikJCUtUJkMgQ28uLCBMdGQuCisJCQkJNDg3LTQsIEtUJkMgQmxkZy4KKwkJCQlCYW5nSHdhLURvbmcKKwkJCQlHYW5nU2VvLUt1IFNlb3VsIDE1Ny04NDkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTUtREQgICAoaGV4KQkJSVAgQ29udHJvbCBTeXN0ZW1zIEx0ZC4KKzAwMTVERCAgICAgKGJhc2UgMTYpCQlJUCBDb250cm9sIFN5c3RlbXMgTHRkLgorCQkJCVVuaXQgMTUsIEhpLVRlY2ggVmlsbGFnZSwKKwkJCQlXaXRuZXkgV2F5LCBCb2xkb24gQnVzaW5lc3MgUGFyaywKKwkJCQlCb2xkb24gVHluZSAmIFdlYXIgTkUzNSA5UEUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNS1ERSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxNURFICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwIFYKKwkJCQlERU5NQVJLCisKKzAwLTE1LURGICAgKGhleCkJCUNsaXZldCBTLnAuQS4KKzAwMTVERiAgICAgKGJhc2UgMTYpCQlDbGl2ZXQgUy5wLkEuCisJCQkJdmlhIENhbXAgTG9uYyAyNQorCQkJCUZlbHRyZSBCZWxsdW5vIDMyMDMwCisJCQkJSVRBTFkKKworMDAtMTUtRTAgICAoaGV4KQkJU1QtRXJpY3Nzb24KKzAwMTVFMCAgICAgKGJhc2UgMTYpCQlTVC1Fcmljc3NvbgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kICBTRS0yMjEgODMKKwkJCQlTV0VERU4KKworMDAtMTUtRTEgICAoaGV4KQkJUGljb2NoaXAgTHRkCiswMDE1RTEgICAgIChiYXNlIDE2KQkJUGljb2NoaXAgTHRkCisJCQkJVXBwZXIgQm9yb3VnaCBDb3VydAorCQkJCVVwcGVyIEJvcm91Z2ggV2FsbHMKKwkJCQlCYXRoICBCQTEgMVJHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtRTIgICAoaGV4KQkJRHIuSW5nLiBIZXJiZXJ0IEtuYXVlciBHbWJICiswMDE1RTIgICAgIChiYXNlIDE2KQkJRHIuSW5nLiBIZXJiZXJ0IEtuYXVlciBHbWJICisJCQkJSGVnYXVlciBXZWcgMzgKKwkJCQlCZXJsaW4gIDE0MTYzCisJCQkJR0VSTUFOWQorCiswMC0xNS1FMyAgIChoZXgpCQlEcmVhbSBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24KKzAwMTVFMyAgICAgKGJhc2UgMTYpCQlEcmVhbSBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24KKwkJCQlFYmlzdSBQcmltZSBTcXVhcmUsIDEtMS0zOSBIaXJvbworCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUwLTAwMTIKKwkJCQlKQVBBTgorCiswMC0xNS1FNCAgIChoZXgpCQlaaW1tZXIgRWxla3Ryb21lZGl6aW4KKzAwMTVFNCAgICAgKGJhc2UgMTYpCQlaaW1tZXIgRWxla3Ryb21lZGl6aW4KKwkJCQlKdW5rZXJzc3RyYXNzZSA5CisJCQkJTmV1LVVsbSBCYXllcm4gODkyMzEKKwkJCQlHRVJNQU5ZCisKKzAwLTE1LUU1ICAgKGhleCkJCUNoZWVydGVrIEluYy4KKzAwMTVFNSAgICAgKGJhc2UgMTYpCQlDaGVlcnRlayBJbmMuCisJCQkJTm8uMiwgRHUtU2luZyBGaXJzdCBSb2FkLCBTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LUU2ICAgKGhleCkJCU1PQklMRSBURUNITklLQSBJbmMuCiswMDE1RTYgICAgIChiYXNlIDE2KQkJTU9CSUxFIFRFQ0hOSUtBIEluYy4KKwkJCQlTb3RvYm9yaSBTa3kgQmxkLiA1dGggRmxvb3IKKwkJCQkyLTExIEljaGlnYXlhIEhvbm11cmEtY2hvLAorCQkJCVNoaW5qdWt1LWt1IFRva3lvIDE2Mi0wODQ1CisJCQkJSkFQQU4KKworMDAtMTUtRTcgICAoaGV4KQkJUXVhbnRlYyBQcm9BdWRpbworMDAxNUU3ICAgICAoYmFzZSAxNikJCVF1YW50ZWMgUHJvQXVkaW8KKwkJCQlMZW9wb2xkc3RyYXNzZSAxOAorCQkJCU3DvG5jaGVuICBELTgwODAyCisJCQkJR0VSTUFOWQorCiswMC0xNS1FOCAgIChoZXgpCQlOb3J0ZWwKKzAwMTVFOCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xNS1FOSAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzAwMTVFOSAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQkyRiwgTm8uMjMzLTIsIFBhby1DaGlhbyBSb2FkCisJCQkJSHNpbi1UaWVuLCBUYWlwZWkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNS1FQSAgIChoZXgpCQlUZWxsdW1hdCAoUHR5KSBMdGQKKzAwMTVFQSAgICAgKGJhc2UgMTYpCQlUZWxsdW1hdCAoUHR5KSBMdGQKKwkJCQk2NC83NCBXaGl0ZSBSb2FkCisJCQkJUmV0cmVhdAorCQkJCUNhcGUgVG93biBXZXN0ZXJuIFByb3ZpbmNlIDc5NDUKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMTUtRUIgICAoaGV4KQkJWlRFIENPUlBPUkFUSU9OCiswMDE1RUIgICAgIChiYXNlIDE2KQkJWlRFIENPUlBPUkFUSU9OCisJCQkJNS9GLEEgV2luZyxaVEUgUGxhemEsS2VqaSBSb2FkIFNvdXRoLEhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrLE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMTUtRUMgICAoaGV4KQkJQm9jYSBEZXZpY2VzIExMQworMDAxNUVDICAgICAoYmFzZSAxNikJCUJvY2EgRGV2aWNlcyBMTEMKKwkJCQk2MzUzIFcuIFJvZ2VycyBDaXJjbGUgIzQKKwkJCQlCb2NhIFJhdG9uIEZsb3JpZGEgMzM0ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUVEICAgKGhleCkJCUZ1bGNydW0gTWljcm9zeXN0ZW1zLCBJbmMuCiswMDE1RUQgICAgIChiYXNlIDE2KQkJRnVsY3J1bSBNaWNyb3N5c3RlbXMsIEluYy4KKwkJCQkyNjYzMCBBZ291cmEgUm9hZAorCQkJCUNhbGFiYXNhcyBDQSA5MTMwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtRUUgICAoaGV4KQkJT21uZXggQ29udHJvbCBTeXN0ZW1zCiswMDE1RUUgICAgIChiYXNlIDE2KQkJT21uZXggQ29udHJvbCBTeXN0ZW1zCisJCQkJIzc0IC0gMTgzMyBDb2FzdCBNZXJpZGlhbiBSZC4KKwkJCQlQb3J0IENvcXVpdGxhbSBCQyBWM0MgNkc1CisJCQkJQ0FOQURBCisKKzAwLTE1LUVGICAgKGhleCkJCU5FQyBUT0tJTiBDb3Jwb3JhdGlvbgorMDAxNUVGICAgICAoYmFzZSAxNikJCU5FQyBUT0tJTiBDb3Jwb3JhdGlvbgorCQkJCTEtMSxBc2FoaS1DaG8gNy1jaG9tZSxTaGlyb2lzaGkKKwkJCQlNaXlhZ2kgOTg5LTAyMjMKKwkJCQlKQVBBTgorCiswMC0xNS1GMCAgIChoZXgpCQlFR08gQlYKKzAwMTVGMCAgICAgKGJhc2UgMTYpCQlFR08gQlYKKwkJCQlQYXJhZGUgMTUKKwkJCQkncy1IZXJ0b2dlbmJvc2NoIE5vb3JkLUJyYWJhbnQgNTIxMUtMCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTUtRjEgICAoaGV4KQkJS1lMSU5LIENvbW11bmljYXRpb25zIENvcnAuCiswMDE1RjEgICAgIChiYXNlIDE2KQkJS1lMSU5LIENvbW11bmljYXRpb25zIENvcnAuCisJCQkJOEYtOCwgTm8uIDM1MSwgU2VjLiAyLCBaaG9uZ3NoYW4gUmQuLCBaaG9uZ2hlIENpdHkKKwkJCQlUYWlwZWkgQ291bnR5CisJCQkJMjM1MDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE1LUYyICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorMDAxNUYyICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCU5vLjUgU2hpbmcgWWVoIFN0cmVldCxLd2VpIFNoYW4gSHNpYW5nLFRhb3l1YW4KKwkJCQlUYWlwZWkgIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtRjMgICAoaGV4KQkJUEVMVE9SIEFCCiswMDE1RjMgICAgIChiYXNlIDE2KQkJUEVMVE9SIEFCCisJCQkJQm94IDIzNDEKKwkJCQlTRS0zMzEgMDIgIFbDg+KAnlJOQU1PICBTRS0zMzEgMDIKKwkJCQlTV0VERU4KKworMDAtMTUtRjQgICAoaGV4KQkJRXZlbnRpZGUKKzAwMTVGNCAgICAgKGJhc2UgMTYpCQlFdmVudGlkZQorCQkJCTEgQWxzYW4gV2F5CisJCQkJTGl0dGxlIEZlcnJ5IE5KIDA3NjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNS1GNSAgIChoZXgpCQlTdXN0YWluYWJsZSBFbmVyZ3kgU3lzdGVtcworMDAxNUY1ICAgICAoYmFzZSAxNikJCVN1c3RhaW5hYmxlIEVuZXJneSBTeXN0ZW1zCisJCQkJIzUwMCwgNjA5IDE0dGggU3RyZWV0IE5XCisJCQkJQ2FsZ2FyeSBBYiBUMlQgMVAzCisJCQkJQ0FOQURBCisKKzAwLTE1LUY2ICAgKGhleCkJCVNDSUVOQ0UgQU5EIEVOR0lORUVSSU5HIFNFUlZJQ0VTLCBJTkMuCiswMDE1RjYgICAgIChiYXNlIDE2KQkJU0NJRU5DRSBBTkQgRU5HSU5FRVJJTkcgU0VSVklDRVMsIElOQy4KKwkJCQk0MDE1IFBVTEFTS0kgUElLRSBOVworCQkJCUhVTlRTVklMTEUgQUwgMzU4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUY3ICAgKGhleCkJCVdpbnRlY3JvbmljcyBMdGQuCiswMDE1RjcgICAgIChiYXNlIDE2KQkJV2ludGVjcm9uaWNzIEx0ZC4KKwkJCQlOby4gNzE2LCAxMUYtMywgSnVuZyBKZW5nIFJkLgorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTUtRjggICAoaGV4KQkJS2luZ3Ryb25pY3MgSW5kdXN0cmlhbCBDby4gTHRkLgorMDAxNUY4ICAgICAoYmFzZSAxNikJCUtpbmd0cm9uaWNzIEluZHVzdHJpYWwgQ28uIEx0ZC4KKwkJCQlQZW50aG91c2UsIENlbnR1cnkgQ2VudHJlLAorCQkJCTQ0LTQ2IEh1bmcgVG8gUm9hZCwgS3d1biBUb25nCisJCQkJS293bG9vbiAgCisJCQkJSE9ORyBLT05HCisKKzAwLTE1LUY5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTVGOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUZBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTVGQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE1LUZCICAgKGhleCkJCXNldGV4IHNjaGVybXVseSB0ZXh0aWxlIGNvbXB1dGVyIGdtYmgKKzAwMTVGQiAgICAgKGJhc2UgMTYpCQlzZXRleCBzY2hlcm11bHkgdGV4dGlsZSBjb21wdXRlciBnbWJoCisJCQkJSGF1cHRzdHJhc3NlIDI1CisJCQkJTWVuZ2Vyc2tpcmNoZW4gSGVzc2VuIDM1Nzk0CisJCQkJR0VSTUFOWQorCiswMC0xNS1GQyAgIChoZXgpCQlMaXR0ZWxmdXNlIFN0YXJ0Y28KKzAwMTVGQyAgICAgKGJhc2UgMTYpCQlMaXR0ZWxmdXNlIFN0YXJ0Y28KKwkJCQkzNzE0IEtpbm5lYXIgUGwKKwkJCQlTYXNrYXRvb24gU0sgUzdQIDBBNgorCQkJCUNBTkFEQQorCiswMC0xNS1GRCAgIChoZXgpCQlDb21wbGV0ZSBNZWRpYSBTeXN0ZW1zCiswMDE1RkQgICAgIChiYXNlIDE2KQkJQ29tcGxldGUgTWVkaWEgU3lzdGVtcworCQkJCUdyb3ZlIFBsYWNlCisJCQkJQ3Vja2ZpZWxkIExhbmUKKwkJCQlXYXJuaW5nbGlkIFdlc3Qgc3Vzc2V4IFJIMTcgNVNOCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTUtRkUgICAoaGV4KQkJU0NISUxMSU5HIFJPQk9USUNTIExMQworMDAxNUZFICAgICAoYmFzZSAxNikJCVNDSElMTElORyBST0JPVElDUyBMTEMKKwkJCQkyMDEgQ09VU1RFQVUgUEwKKwkJCQlEQVZJUyBDQSA5NTYxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTUtRkYgICAoaGV4KQkJTm92YXRlbCBXaXJlbGVzcywgSW5jLgorMDAxNUZGICAgICAoYmFzZSAxNikJCU5vdmF0ZWwgV2lyZWxlc3MsIEluYy4KKwkJCQk5NjQ1IFNjcmFudG9uIFJvYWQKKwkJCQlTdWl0ZSAyMDUKKwkJCQlTYW4gRGllZ28gQ2FsaWZvcm5pYSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMDAgICAoaGV4KQkJQ2VsbGVCcml0ZSBNb2JpbGUgU3luY2hyb25pemF0aW9uCiswMDE2MDAgICAgIChiYXNlIDE2KQkJQ2VsbGVCcml0ZSBNb2JpbGUgU3luY2hyb25pemF0aW9uCisJCQkJMjUgQmFzZWwgU3QuCisJCQkJUE9CIDc1NjUKKwkJCQlQZXRhY2ggVGlrdmEgIDQ5MTcwCisJCQkJSVNSQUVMCisKKzAwLTE2LTAxICAgKGhleCkJCUJ1ZmZhbG8gSW5jLgorMDAxNjAxICAgICAoYmFzZSAxNikJCUJ1ZmZhbG8gSW5jLgorCQkJCTQtMTUgU2hpYmF0YSBob25kb3JpCisJCQkJTmFnb3lhIE1pbmFtaS1rdSwgQWljaGkgNDU3LTg1MjAKKwkJCQlKQVBBTgorCiswMC0xNi0wMiAgIChoZXgpCQlDRVlPTiBURUNITk9MT0dZIENPLixMVEQuCiswMDE2MDIgICAgIChiYXNlIDE2KQkJQ0VZT04gVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCTEzRiBTYW1zdW5nIEluc3VyYW5jZSBCL0QuICM5NDItOQorCQkJCUluZ3llLURvbmcsUGFsZGFsLUd1CisJCQkJU3V3b24tQ2l0eSBHeWVvbmdnaS1EbyA0NDItODMyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTAzICAgKGhleCkJCUNPT0xLU0tZIENvLiwgTFRECiswMDE2MDMgICAgIChiYXNlIDE2KQkJQ09PTEtTS1kgQ28uLCBMVEQKKwkJCQlTaGluZ3N1bmcgb2ZmY2V0ZWwgQTUxMSwgMTU4OC0xCisJCQkJU2VjaG8gU2VvdWwgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi0wNCAgIChoZXgpCQlTaWdwcm8KKzAwMTYwNCAgICAgKGJhc2UgMTYpCQlTaWdwcm8KKwkJCQk2NTUgVyBFdmVseW4gU1QKKwkJCQlTdWl0ZSAyCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMDUgICAoaGV4KQkJWU9SS1ZJTExFIFNPVU5EIElOQy4KKzAwMTYwNSAgICAgKGJhc2UgMTYpCQlZT1JLVklMTEUgU09VTkQgSU5DLgorCQkJCTQ2MjUgV0lUTUVSIElORFVTVFJJQUwgRVNUQVRFCisJCQkJTklBR0FSQSBGQUxMUyBOWSAxNDMwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMDYgICAoaGV4KQkJSWRlYWwgSW5kdXN0cmllcworMDAxNjA2ICAgICAoYmFzZSAxNikJCUlkZWFsIEluZHVzdHJpZXMKKwkJCQk5MTQ1IEJhbGJvYSBBdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTA3ICAgKGhleCkJCUN1cnZlcyBJbnRlcm5hdGlvbmFsIEluYy4KKzAwMTYwNyAgICAgKGJhc2UgMTYpCQlDdXJ2ZXMgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJMTAwIFJpdGNoaWUgUm9hZAorCQkJCVdhY28gVGV4YXMgNzY3MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTA4ICAgKGhleCkJCVNlcXVhbnMgQ29tbXVuaWNhdGlvbnMKKzAwMTYwOCAgICAgKGJhc2UgMTYpCQlTZXF1YW5zIENvbW11bmljYXRpb25zCisJCQkJMTkgTGUgUGFydmlzIGRlIGxhIETDqWZlbnNlCisJCQkJQsOidGltZW50IENpdGlDZW50ZXIKKwkJCQlQQVJJUyBMQSBERUZFTlNFIENFREVYIDkyMDczCisJCQkJRlJBTkNFCisKKzAwLTE2LTA5ICAgKGhleCkJCVVuaXRlY2ggZWxlY3Ryb25pY3MgY28uLCBsdGQuCiswMDE2MDkgICAgIChiYXNlIDE2KQkJVW5pdGVjaCBlbGVjdHJvbmljcyBjby4sIGx0ZC4KKwkJCQk1RixOby4xMzYsTGFuZSAyMzUgLFBhby1jaGlhbyBSZC4sCisJCQkJSHNpbi1UaWVuIGNpdHkgVGFpcGVpIEhzaWVuIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtMEEgICAoaGV4KQkJU1dFRVggRXVyb3BlIEJWCiswMDE2MEEgICAgIChiYXNlIDE2KQkJU1dFRVggRXVyb3BlIEJWCisJCQkJQW1wZXJld2VnIDMKKwkJCQlEZWxmdCBadWlkLUhvbGxhbmQgMjYyNyBCRworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE2LTBCICAgKGhleCkJCVRWV29ya3MgTExDCiswMDE2MEIgICAgIChiYXNlIDE2KQkJVFZXb3JrcyBMTEMKKwkJCQlUd28gQmVsdmVkZXJlIFBsYWNlLCAjMjAwCisJCQkJTWlsbCBWYWxsZXkgQ0EgOTQ5NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTBDICAgKGhleCkJCUxQTCAgREVWRUxPUE1FTlQgUy5BLiBERSBDLlYKKzAwMTYwQyAgICAgKGJhc2UgMTYpCQlMUEwgIERFVkVMT1BNRU5UIFMuQS4gREUgQy5WCisJCQkJTEFHTyBHSU5FQlJBIDM4MCBQMworCQkJCUNPTC4gRlJBTkNJU0NPIEkgTUFERVJPCisJCQkJRC5GLiAxMTQ4MAorCQkJCU1FWElDTworCiswMC0xNi0wRCAgIChoZXgpCQlCZSBIZXJlIENvcnBvcmF0aW9uCiswMDE2MEQgICAgIChiYXNlIDE2KQkJQmUgSGVyZSBDb3Jwb3JhdGlvbgorCQkJCTM5MzAwIENpdmljIENlbnRlciBEci4sIFN1aXRlIDE4MAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTBFICAgKGhleCkJCU9wdGljYSBUZWNobm9sb2dpZXMgSW5jLgorMDAxNjBFICAgICAoYmFzZSAxNikJCU9wdGljYSBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTIwNTEgRG9nd29vZCBTdHJlZXQKKwkJCQlTdWl0ZSAyMTAKKwkJCQlMb3Vpc3ZpbGxlIENPIDgwMDI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0wRiAgIChoZXgpCQlCQURHRVIgTUVURVIgSU5DCiswMDE2MEYgICAgIChiYXNlIDE2KQkJQkFER0VSIE1FVEVSIElOQworCQkJCTQ1NDUgVyBCUk9XTiBERUVSIFJECisJCQkJTUlMV0FVS0VFIFdJIDUzMjIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0xMCAgIChoZXgpCQlDYXJpbmEgVGVjaG5vbG9neQorMDAxNjEwICAgICAoYmFzZSAxNikJCUNhcmluYSBUZWNobm9sb2d5CisJCQkJNjkwQSBEaXNjb3ZlcnkgRHJpdmUKKwkJCQlIdW50c3ZpbGxlIEFMIDM1ODA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0xMSAgIChoZXgpCQlBbHRlY29uIFNybAorMDAxNjExICAgICAoYmFzZSAxNikJCUFsdGVjb24gU3JsCisJCQkJVmlhIEYubGxpIENhaXJvbGksIDE3CisJCQkJTGlzc29uZSBNaWxhbm8gMjAwMzUKKwkJCQlJVEFMWQorCiswMC0xNi0xMiAgIChoZXgpCQlPdHN1a2EgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDE2MTIgICAgIChiYXNlIDE2KQkJT3RzdWthIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTEtMTAgU2FzYWdhb2thLCBNaW5ha3VjaGkKKwkJCQlrb3VrYSBzaGlnYSA1MjgtMDA2MQorCQkJCUpBUEFOCisKKzAwLTE2LTEzICAgKGhleCkJCUxpYnJlU3RyZWFtIFRlY2hub2xvZ2llcyBJbmMuCiswMDE2MTMgICAgIChiYXNlIDE2KQkJTGlicmVTdHJlYW0gVGVjaG5vbG9naWVzIEluYy4KKwkJCQk4OTUgV2F2ZXJsZXkgU3RyZWV0CisJCQkJU3VpdGUgMTEwCisJCQkJV2lubmlwZWcgTWFuaXRvYmEgUjNUIDVQNAorCQkJCUNBTkFEQQorCiswMC0xNi0xNCAgIChoZXgpCQlQaWNvc2Vjb25kIFB1bHNlIExhYnMKKzAwMTYxNCAgICAgKGJhc2UgMTYpCQlQaWNvc2Vjb25kIFB1bHNlIExhYnMKKwkJCQkyNTAwIDU1dGggU3RyZWV0CisJCQkJQm91bGRlciBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMTUgICAoaGV4KQkJTml0dGFuIENvbXBhbnksIExpbWl0ZWQKKzAwMTYxNSAgICAgKGJhc2UgMTYpCQlOaXR0YW4gQ29tcGFueSwgTGltaXRlZAorCQkJCTExLTYsIDEtY2hvbWUsIEhhdGFnYXlhCisJCQkJU2hpYnV5YS1rdSBUb2t5byAxNTEtODUzNQorCQkJCUpBUEFOCisKKzAwLTE2LTE2ICAgKGhleCkJCUJST1dBTiBDT01NVU5JQ0FUSU9OIElOQy4KKzAwMTYxNiAgICAgKGJhc2UgMTYpCQlCUk9XQU4gQ09NTVVOSUNBVElPTiBJTkMuCisJCQkJTm8uMSBKZW4tQWkgUm9hZCwgSHNpbkNodSBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHVLb3UgSHNpYW5nIEhzaW5DaHUgSHNpZW4gMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi0xNyAgIChoZXgpCQlNU0kKKzAwMTYxNyAgICAgKGJhc2UgMTYpCQlNU0kKKwkJCQlOby42OSwgTGktRGUgU3QsIEp1bmctSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi0xOCAgIChoZXgpCQlISVZJT04gQ28uLCBMdGQuCiswMDE2MTggICAgIChiYXNlIDE2KQkJSElWSU9OIENvLiwgTHRkLgorCQkJCTJGLiwgQWt5dW5nIEJsZGcuLCA1NC0xMCwgTXVuamVvbmctZG9uZywKKwkJCQlTb25ncGEtR3UgU2VvdWwgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTE5ICAgKGhleCkJCUxhIEZhY3RvcsOtYSBkZSBDb211bmljYWNpb25lcyBBcGxpY2FkYXMsUy5MLgorMDAxNjE5ICAgICAoYmFzZSAxNikJCUxhIEZhY3RvcsOtYSBkZSBDb211bmljYWNpb25lcyBBcGxpY2FkYXMsUy5MLgorCQkJCUMvQWdyaWN1bHR1cmEsMTExCisJCQkJVGVycmFzc2EgQmFyY2Vsb25hIDA4MjIzCisJCQkJU1BBSU4KKworMDAtMTYtMUEgICAoaGV4KQkJRGFtZXRyaWMgQUIKKzAwMTYxQSAgICAgKGJhc2UgMTYpCQlEYW1ldHJpYyBBQgorCQkJCUJveCAxMjAKKwkJCQlTa2FyaG9sbWVuIFN0b2NraG9sbSBTRS0xMjcyMworCQkJCVNXRURFTgorCiswMC0xNi0xQiAgIChoZXgpCQlNaWNyb25ldCBDb3Jwb3JhdGlvbgorMDAxNjFCICAgICAoYmFzZSAxNikJCU1pY3JvbmV0IENvcnBvcmF0aW9uCisJCQkJMTc4OC0zODggTm9tdXJhIEhpcm9va2EKKwkJCQlTaGlvamlyaS1zaGkgTmFnYW5vLWtlbiAzOTktMDcwMgorCQkJCUpBUEFOCisKKzAwLTE2LTFDICAgKGhleCkJCWU6Y3VlCiswMDE2MUMgICAgIChiYXNlIDE2KQkJZTpjdWUKKwkJCQlGcmllZHJpY2gtTGlzdC1TdHJhc3NlIDIzCisJCQkJUGFkZXJib3JuICAzMzEwMAorCQkJCUdFUk1BTlkKKworMDAtMTYtMUQgICAoaGV4KQkJSW5ub3ZhdGl2ZSBXaXJlbGVzcyBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTYxRCAgICAgKGJhc2UgMTYpCQlJbm5vdmF0aXZlIFdpcmVsZXNzIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEwNDcgVmlzdGEgUGFyayBEci4KKwkJCQlTdWl0ZSBBCisJCQkJRm9yZXN0IFZBIDI0NTUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0xRSAgIChoZXgpCQlXb29qaW5uZXQKKzAwMTYxRSAgICAgKGJhc2UgMTYpCQlXb29qaW5uZXQKKwkJCQkyOTIgb3NhbiBkb25ndGFuCisJCQkJaHdhc2Vvbmcga3lvbmdnaSA0NDUtODEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTFGICAgKGhleCkJCVNVTldBVkVURUMgQ28uLCBMdGQuCiswMDE2MUYgICAgIChiYXNlIDE2KQkJU1VOV0FWRVRFQyBDby4sIEx0ZC4KKwkJCQkjODIzLCBLd2FueWFuZy1kb25nLCBEb25nYW4ta3UKKwkJCQlBbnlhbmctc2kgS3l1bmdraS1kbyA0MzEtMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTIwICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDE2MjAgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworMDAtMTYtMjEgICAoaGV4KQkJQ29sb3JhZG8gVm5ldAorMDAxNjIxICAgICAoYmFzZSAxNikJCUNvbG9yYWRvIFZuZXQKKwkJCQkyNTUgRS4gNnRoIFN0LgorCQkJCUxvdmVsYW5kIENPIDgwNTM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0yMiAgIChoZXgpCQlCQkggU1lTVEVNUyBHTUJICiswMDE2MjIgICAgIChiYXNlIDE2KQkJQkJIIFNZU1RFTVMgR01CSAorCQkJCULDtnR0Z2Vyc3RyYXNzZSA0MAorCQkJCVdlaWRlbiBpLmQuT1BmLiBCYXllcm4gOTI2MzcKKwkJCQlHRVJNQU5ZCisKKzAwLTE2LTIzICAgKGhleCkJCUludGVydmFsIE1lZGlhCiswMDE2MjMgICAgIChiYXNlIDE2KQkJSW50ZXJ2YWwgTWVkaWEKKwkJCQkzMjAwIEFzaCBTdHJlZXQKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTI0ICAgKGhleCkJCVRlbmVyb3MsIEluYy4KKzAwMTYyNCAgICAgKGJhc2UgMTYpCQlUZW5lcm9zLCBJbmMuCisJCQkJMjE1IENhc3RybyBTdC4KKwkJCQkzcmQgRmxvb3IKKwkJCQlNdC4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMjUgICAoaGV4KQkJSW1waW5qLCBJbmMuCiswMDE2MjUgICAgIChiYXNlIDE2KQkJSW1waW5qLCBJbmMuCisJCQkJNzAxIE4uIDM0dGggU3RyZWV0CisJCQkJU3VpdGUgMzAwCisJCQkJU2VhdHRsZSBXQSA5ODEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMjYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMTYyNiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTI3ICAgKGhleCkJCWVtYmVkZGVkLWxvZ2ljIERFU0lHTiBBTkQgTU9SRSBHbWJICiswMDE2MjcgICAgIChiYXNlIDE2KQkJZW1iZWRkZWQtbG9naWMgREVTSUdOIEFORCBNT1JFIEdtYkgKKwkJCQlIYW5zZXN0cmFzc2UgMjQKKwkJCQlNdWVuc3RlciBOUlcgNDgxNTMKKwkJCQlHRVJNQU5ZCisKKzAwLTE2LTI4ICAgKGhleCkJCVVsdHJhIEVsZWN0cm9uaWNzIE1hbnVmYWN0dXJpbmcgYW5kIENhcmQgU3lzdGVtcworMDAxNjI4ICAgICAoYmFzZSAxNikJCVVsdHJhIEVsZWN0cm9uaWNzIE1hbnVmYWN0dXJpbmcgYW5kIENhcmQgU3lzdGVtcworCQkJCUhhbXBzaGlyZSBSb2FkCisJCQkJR3JhbmJ5IEVzdGF0ZQorCQkJCVdleW1vdXRoIERvcnNldCBEVDQgOVhECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTYtMjkgICAoaGV4KQkJTml2dXMgR21iSAorMDAxNjI5ICAgICAoYmFzZSAxNikJCU5pdnVzIEdtYkgKKwkJCQlJbSBUw6RsZSAyCisJCQkJRXBwaW5nZW4gQmFkZW4tV3VlcnR0ZW1iZXJnIDc1MDMxCisJCQkJR0VSTUFOWQorCiswMC0xNi0yQSAgIChoZXgpCQlBbnRpayBjb21wdXRlcnMgJiBjb21tdW5pY2F0aW9ucyBzLnIuby4KKzAwMTYyQSAgICAgKGJhc2UgMTYpCQlBbnRpayBjb21wdXRlcnMgJiBjb21tdW5pY2F0aW9ucyBzLnIuby4KKwkJCQlSYXp1c292YSAyCisJCQkJS29zaWNlIFNLIFNLLTA0MDAxCisJCQkJU0xPVkFLSUEKKworMDAtMTYtMkIgICAoaGV4KQkJVG9nYW1pIEVsZWN0cmljIE1mZy5jby4sTHRkLgorMDAxNjJCICAgICAoYmFzZSAxNikJCVRvZ2FtaSBFbGVjdHJpYyBNZmcuY28uLEx0ZC4KKwkJCQkxLTEgT2h0YWthcmEtS2l0YW1hY2hpCisJCQkJU2FnYS5QUkYgODQwLTA4MDIKKwkJCQlKQVBBTgorCiswMC0xNi0yQyAgIChoZXgpCQlYYW5ib28KKzAwMTYyQyAgICAgKGJhc2UgMTYpCQlYYW5ib28KKwkJCQkxMTUgV2VzdCAzMHRoLCA2dGggRmwKKwkJCQlOZXcgWW9yayBOWSAxMDAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMkQgICAoaGV4KQkJU1ROZXQgQ28uLCBMdGQuCiswMDE2MkQgICAgIChiYXNlIDE2KQkJU1ROZXQgQ28uLCBMdGQuCisJCQkJU2hpbi13aGEgQnVpbGRpbmcgNEYsIDk1NC0yNQorCQkJCUt3YW55YW5nLWRvbmcsIERvbmdhbi1ndQorCQkJCUFueWFuZy1zaSBLeXVuZ2tpLWRvICA0MzEtMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTJFICAgKGhleCkJCVNwYWNlIFNodXR0bGUgSGktVGVjaCBDby4sIEx0ZC4KKzAwMTYyRSAgICAgKGJhc2UgMTYpCQlTcGFjZSBTaHV0dGxlIEhpLVRlY2ggQ28uLCBMdGQuCisJCQkJTm8uIDIyNiwgV3UtSG8gU3QuLCBXdS1MdW5nIFZpbGxhZ2UsCisJCQkJQ2hpdW5nLUxpbiBIc2lhbmcsCisJCQkJSHNpbmNodSBIc2llbiAgMzA3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi0yRiAgIChoZXgpCQlHZXV0ZWJyw7xjayBHbWJICiswMDE2MkYgICAgIChiYXNlIDE2KQkJR2V1dGVicsO8Y2sgR21iSAorCQkJCUltIE5hc3NlbiA3LTkKKwkJCQlXaW5kaGFnZW4gIDUzNTc4CisJCQkJR0VSTUFOWQorCiswMC0xNi0zMCAgIChoZXgpCQlWYXRpdiBUZWNobm9sb2dpZXMKKzAwMTYzMCAgICAgKGJhc2UgMTYpCQlWYXRpdiBUZWNobm9sb2dpZXMKKwkJCQk5MzM5IEdlbmVzZWUgQXZlbnVlCisJCQkJU3VpdGUgMTMwCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0zMSAgIChoZXgpCQlYdGVhbQorMDAxNjMxICAgICAoYmFzZSAxNikJCVh0ZWFtCisJCQkJcm9vbSA4MDEsIE5vLjEwMiBpbnRlcm5hdGlvbmFsIFNjaWVuY2UgJiBUZWNob2xvZ3kgUGFyaworCQkJCU5vLjIgU2hhbmdEaSBJbmZvIFJvYWQsIEhhaURpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nIDg2MTAKKwkJCQlDSElOQQorCiswMC0xNi0zMiAgIChoZXgpCQlTQU1TVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDAxNjMyICAgICAoYmFzZSAxNikJCVNBTVNVTkcgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJNDE2LCBNRVRBTi0zRE9ORywKKwkJCQlZT1VOR1RPTkctR1UKKwkJCQlTVVdPTiBLWVVOR0tJLURPIDQ0Mi03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtMzMgICAoaGV4KQkJT3hmb3JkIERpYWdub3N0aWNzIEx0ZC4KKzAwMTYzMyAgICAgKGJhc2UgMTYpCQlPeGZvcmQgRGlhZ25vc3RpY3MgTHRkLgorCQkJCVNhbmR5YnJhZQorCQkJCVdoaXRlYmFybiBEciwgQm9hcnMgSGlsbAorCQkJCU94Zm9yZCBPeG9uLiBPWDEgNUhKCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTYtMzQgICAoaGV4KQkJTWF0aHRlY2gsIEluYy4KKzAwMTYzNCAgICAgKGJhc2UgMTYpCQlNYXRodGVjaCwgSW5jLgorCQkJCTY0MDIgQXJsaW5ndG9uIEJsdmQuLAorCQkJCVN1aXRlIDEyMDAKKwkJCQlGYWxscyBDaHVyY2ggVmlyZ2luaWEgMjIwNDItMjM1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtMzUgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzAwMTYzNSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5IFNvdXRoCisJCQkJTVMwNzA0MDUKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0zNiAgIChoZXgpCQlRdWFudGEgQ29tcHV0ZXIgSW5jLgorMDAxNjM2ICAgICAoYmFzZSAxNikJCVF1YW50YSBDb21wdXRlciBJbmMuCisJCQkJTm8uIDIxMSwgV2VuIEh3YSAyUmQuLCBLdWVpIFNoYW4gSHNpYW5nCisJCQkJVGFvIFl1YW4gU2hpZW4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtMzcgICAoaGV4KQkJQ2l0ZWwgU3JsCiswMDE2MzcgICAgIChiYXNlIDE2KQkJQ2l0ZWwgU3JsCisJCQkJVmlhIEwuIEcuIENvbHVtZWxsYSwgMzYKKwkJCQlNaWxhbiBNSSAyMDEyOAorCQkJCUlUQUxZCisKKzAwLTE2LTM4ICAgKGhleCkJCVRFQ09NIENvLiwgTHRkLgorMDAxNjM4ICAgICAoYmFzZSAxNikJCVRFQ09NIENvLiwgTHRkLgorCQkJCTIzIFImRCBSb2FkIDIgU2NpZW5jZSBCYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi0zOSAgIChoZXgpCQlVQklRVUFNIENvLixMdGQKKzAwMTYzOSAgICAgKGJhc2UgMTYpCQlVQklRVUFNIENvLixMdGQKKwkJCQlUZWNobm92aWxsIDRGLDI3Mi0zIFlhdGFwMworCQkJCUJ1bmRhbmcKKwkJCQlTZW9uZ25hbSBLeWVvbmdnaSA0NjMtODM2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTNBICAgKGhleCkJCVlWRVMgVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwMTYzQSAgICAgKGJhc2UgMTYpCQlZVkVTIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJTm8uNzQsIEZ1c2luZyAybmQgUmQuCisJCQkJR3VlaXNoYW4gVGFveXVhbiAzMzM3NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtM0IgICAoaGV4KQkJVmVydGV4UlNJL0dlbmVyYWwgRHluYW1pY3MKKzAwMTYzQiAgICAgKGJhc2UgMTYpCQlWZXJ0ZXhSU0kvR2VuZXJhbCBEeW5hbWljcworCQkJCTIxMjAgT2xkIEdhdGVzYnVyZyBSZC4KKwkJCQlTdGF0ZSBjb2xsZWdlIFBBIDE2ODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi0zQyAgIChoZXgpCQlSZWJveCBCLlYuCiswMDE2M0MgICAgIChiYXNlIDE2KQkJUmVib3ggQi5WLgorCQkJCUhlbmRyaWsgRmlnZWV3ZWcgMVgKKwkJCQlIYWFybGVtIE5vb3JkLUhvbGxhbmQgMjAzMSBCSgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE2LTNEICAgKGhleCkJCVRzaW5naHVhIFRvbmdmYW5nIExlZ2VuZCBTaWxpY29uIFRlY2guIENvLiwgTHRkLgorMDAxNjNEICAgICAoYmFzZSAxNikJCVRzaW5naHVhIFRvbmdmYW5nIExlZ2VuZCBTaWxpY29uIFRlY2guIENvLiwgTHRkLgorCQkJCTI2RiBUU0lOR0hVQSBUT05HRkFORyBISS1URUNIIFBMQVpBCisJCQkJQkVJSklORyAgMTAwMDgzCisJCQkJQ0hJTkEKKworMDAtMTYtM0UgICAoaGV4KQkJWGVuc291cmNlLCBJbmMuCiswMDE2M0UgICAgIChiYXNlIDE2KQkJWGVuc291cmNlLCBJbmMuCisJCQkJMjMwMCBHZW5nIFJkLgorCQkJCVN1aXRlIDI1MAorCQkJCVBhbG8gQWx0byBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtM0YgICAoaGV4KQkJQ1JlVEUgU1lTVEVNUyBJbmMuCiswMDE2M0YgICAgIChiYXNlIDE2KQkJQ1JlVEUgU1lTVEVNUyBJbmMuCisJCQkJN0YsTm8uMjUwLFNlYy4zLFBlaSBTaGVuIFJkLixTaGVuIEtlbmcgSHNpYW5nCisJCQkJVGFpcGVpIENvdW50eSAgMjIyMDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTQwICAgKGhleCkJCUFzbW9iaWxlIENvbW11bmljYXRpb24gSW5jLgorMDAxNjQwICAgICAoYmFzZSAxNikJCUFzbW9iaWxlIENvbW11bmljYXRpb24gSW5jLgorCQkJCU5vLjExIExhbmUgMTIwLCBMaS1UZSBSZC4sIFBlaXRvdSAxMTIsIFRhaXBlaSwgVGFpd2FuLCBSLk8uQworCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi00MSAgIChoZXgpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzAwMTY0MSAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKwkJCQkxNDEsIExBTkUgMzUxLCBTRUMuMSxUQUlQSU5HIFJELiAKKwkJCQlUU0FPVFVFTiBOQU5UT1UgNTQyNjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTQyICAgKGhleCkJCVBhbmdvbGluCiswMDE2NDIgICAgIChiYXNlIDE2KQkJUGFuZ29saW4KKwkJCQk5NTAxIFNhdGVsbGl0ZSBCb3VsZXZhcmQsIFN1aXRlIDEwOQorCQkJCU9ybGFuZG8gRkwgMzI4MzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTQzICAgKGhleCkJCVN1bmhpbGxvIENvcnBvcmF0aW9uCiswMDE2NDMgICAgIChiYXNlIDE2KQkJU3VuaGlsbG8gQ29ycG9yYXRpb24KKwkJCQk0NDQgS2VsbGV5IERyaXZlCisJCQkJV2VzdCBCZXJsaW4gTmV3IEplcnNleSAwODA5MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNDQgICAoaGV4KQkJTElURS1PTiBUZWNobm9sb2d5IENvcnAuCiswMDE2NDQgICAgIChiYXNlIDE2KQkJTElURS1PTiBUZWNobm9sb2d5IENvcnAuCisJCQkJMThGLCBOby4zOTIsIFJ1ZXkgS3VhbmcgUm9hZCwgTmllaHUsCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTQ1ICAgKGhleCkJCVBvd2VyIERpc3RyaWJ1dGlvbiwgSW5jLgorMDAxNjQ1ICAgICAoYmFzZSAxNikJCVBvd2VyIERpc3RyaWJ1dGlvbiwgSW5jLgorCQkJCTQyMDAgT2FrbGV5cyBDdC4KKwkJCQlSaWNobW9uZCBWQSAyMzIyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNDYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNjQ2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNDcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxNjQ3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNDggICAoaGV4KQkJU1NEIENvbXBhbnkgTGltaXRlZAorMDAxNjQ4ICAgICAoYmFzZSAxNikJCVNTRCBDb21wYW55IExpbWl0ZWQKKwkJCQkzLTMtNCBIaWdhc2hpeWFndXJhCisJCQkJS3VzYXRzdS1jaXR5IFNoaWdhIDUyNS0wMDU0CisJCQkJSkFQQU4KKworMDAtMTYtNDkgICAoaGV4KQkJU2V0T25lIEdtYkgKKzAwMTY0OSAgICAgKGJhc2UgMTYpCQlTZXRPbmUgR21iSAorCQkJCUhlZ2VuaGVpbWVyIFN0ci4gMgorCQkJCVdlaWwgYW0gUmhlaW4gQmFkZW4gV3VlcnRlbWJlcmcgRC03OTU3NgorCQkJCUdFUk1BTlkKKworMDAtMTYtNEEgICAoaGV4KQkJVmlicmF0aW9uIFRlY2hub2xvZ3kgTGltaXRlZAorMDAxNjRBICAgICAoYmFzZSAxNikJCVZpYnJhdGlvbiBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlWaWJ0ZWNoIEhvdXNlLCBDZW50cmFsIEJvdWxldmFyZAorCQkJCUNlbnRyYWwgUGFyaworCQkJCUxhcmJlcnQgU2NvdGxhbmQgRks1IDRSVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE2LTRCICAgKGhleCkJCVF1b3Jpb24gRGF0YSBTeXN0ZW1zIEdtYkgKKzAwMTY0QiAgICAgKGJhc2UgMTYpCQlRdW9yaW9uIERhdGEgU3lzdGVtcyBHbWJICisJCQkJQW4gZGVyIEtsaW5nZSA2CisJCQkJRXJmdXJ0IFRodXJpbmdpYSA5OTE5NQorCQkJCUdFUk1BTlkKKworMDAtMTYtNEMgICAoaGV4KQkJUExBTkVUIElOVCBDby4sIEx0ZAorMDAxNjRDICAgICAoYmFzZSAxNikJCVBMQU5FVCBJTlQgQ28uLCBMdGQKKwkJCQk4dGggRmxvb3IsIFNhZXVtIEIvRCwgMTM2MS01CisJCQkJU2VvY2hvLURvbmcsIFNlb2Noby1LdQorCQkJCVNlb3VsICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTREICAgKGhleCkJCUFsY2F0ZWwgTm9ydGggQW1lcmljYSBJUCBEaXZpc2lvbgorMDAxNjREICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTm9ydGggQW1lcmljYSBJUCBEaXZpc2lvbgorCQkJCTcwMSBFLiBNaWRkbGVmaWVsZCBSRC4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi00RSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxNjRFICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xNi00RiAgIChoZXgpCQlXb3JsZCBFdGhuaWMgQnJvYWRjYXN0aW4gSW5jLgorMDAxNjRGICAgICAoYmFzZSAxNikJCVdvcmxkIEV0aG5pYyBCcm9hZGNhc3RpbiBJbmMuCisJCQkJNTAgQ2FsaWZvcm5pYSBTdHJlZXQsIFN1aXRlIDE1MDAKKwkJCQlTYW4gRnJhbmNpc2NvIENhbGlmb3JuaWEgOTQxMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTUwICAgKGhleCkJCUhlcmxleSBHZW5lcmFsIE1pY3Jvd2F2ZSBJc3JhZWwuIAorMDAxNjUwICAgICAoYmFzZSAxNikJCUhlcmxleSBHZW5lcmFsIE1pY3Jvd2F2ZSBJc3JhZWwuIAorCQkJCUtJQkJVVFogRVlBTAorCQkJCUQuTi4gSEFTSEFST04gSEFUSUNIT04KKwkJCQk0NTg0MAorCQkJCUlTUkFFTAorCiswMC0xNi01MSAgIChoZXgpCQlFeGVvIFN5c3RlbXMKKzAwMTY1MSAgICAgKGJhc2UgMTYpCQlFeGVvIFN5c3RlbXMKKwkJCQkxNjUwLCBydWUgTWljaGVsaW4sIHN1aXRlIDIwMQorCQkJCUxhdmFsIFF1w6liZWMgSDdMIDRSMworCQkJCUNBTkFEQQorCiswMC0xNi01MiAgIChoZXgpCQlIb2F0ZWNoIFRlY2hub2xvZ2llcywgSW5jLgorMDAxNjUyICAgICAoYmFzZSAxNikJCUhvYXRlY2ggVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMUYuLCBOby4yMjQsIEd1b3NoZW5nIFN0LgorCQkJCVpodWJlaSBIc2luQ2h1IEhzaWVuIDMwMjQ0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi01MyAgIChoZXgpCQlMRUdPIFN5c3RlbSBBL1MgSUUgRWxlY3Ryb25pY3MgRGl2aXNpb24KKzAwMTY1MyAgICAgKGJhc2UgMTYpCQlMRUdPIFN5c3RlbSBBL1MgSUUgRWxlY3Ryb25pY3MgRGl2aXNpb24KKwkJCQlBYXN0dmVqIDEKKwkJCQlCaWxsdW5kIEtvbW11bmUgNzE5MAorCQkJCURFTk1BUksKKworMDAtMTYtNTQgICAoaGV4KQkJRmxleC1QIEluZHVzdHJpZXMgU2RuLiBCaGQuCiswMDE2NTQgICAgIChiYXNlIDE2KQkJRmxleC1QIEluZHVzdHJpZXMgU2RuLiBCaGQuCisJCQkJTm8uMTI4LTEyLTIsIE1lbmFyYSBVTU5PLAorCQkJCUphbGFuIE1hY2FsaXN0ZXIsCisJCQkJR2VvcmdldG93biBQZW5hbmcgMTA0MDAKKwkJCQlNQUxBWVNJQQorCiswMC0xNi01NSAgIChoZXgpCQlGVUhPIFRFQ0hOT0xPR1kgQ28uLCBMVEQKKzAwMTY1NSAgICAgKGJhc2UgMTYpCQlGVUhPIFRFQ0hOT0xPR1kgQ28uLCBMVEQKKwkJCQlOby4gMzAsIExhbmUgNzI2LCBKaW5tYSBSZCwgU2VjLiAzCisJCQkJQ2hhbmcgSHVhIFRhaXdhIDUwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtNTYgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDE2NTYgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMTYtNTcgICAoaGV4KQkJQWVnYXRlIEx0ZAorMDAxNjU3ICAgICAoYmFzZSAxNikJCUFlZ2F0ZSBMdGQKKwkJCQlUZWNobm9sb2d5IENlbnRyZQorCQkJCU1lbGJvdXJuIEhlcnRmb3Jkc2hpcmUgU0c4IDZEUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE2LTU4ICAgKGhleCkJCUZ1c2lvbnRlY2ggVGVjaG5vbG9naWVzIEluYy4KKzAwMTY1OCAgICAgKGJhc2UgMTYpCQlGdXNpb250ZWNoIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNkYsIE5vLjc4LCBDaGVuZyBLdW5nIFJkLiwgU2VjLiAxLAorCQkJCU5hbiBLYW5nCisJCQkJVGFpcGVpICAxMTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTU5ICAgKGhleCkJCVouTS5QLiBSQURXQUcKKzAwMTY1OSAgICAgKGJhc2UgMTYpCQlaLk0uUC4gUkFEV0FHCisJCQkJQnJhY2thIDI4IHN0cmVldAorCQkJCVJBRE9NIE1hem93aWVja2llIDI2LTYwMAorCQkJCVBPTEFORAorCiswMC0xNi01QSAgIChoZXgpCQlIYXJtYW4gU3BlY2lhbHR5IEdyb3VwCiswMDE2NUEgICAgIChiYXNlIDE2KQkJSGFybWFuIFNwZWNpYWx0eSBHcm91cAorCQkJCTMgT2FrIFBhcmsgRHJpdmUKKwkJCQlCZWRmb3JkIE1BIDAxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi01QiAgIChoZXgpCQlHcmlwIEF1ZGlvCiswMDE2NUIgICAgIChiYXNlIDE2KQkJR3JpcCBBdWRpbworCQkJCTYzNDUgVy4gTG91aXNlIERyaXZlCisJCQkJR2xlbmRhbGUgQXJpem9uYSA4NTMxMC00MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi01QyAgIChoZXgpCQlUcmFja2Zsb3cgTHRkCiswMDE2NUMgICAgIChiYXNlIDE2KQkJVHJhY2tmbG93IEx0ZAorCQkJCTE2Ny0xNjkgS2Vuc2luZ3RvbiBIaWdoIFN0cmVldAorCQkJCUxvbmRvbiBFbmdsYW5kIFc4NlNICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTYtNUQgICAoaGV4KQkJQWlyRGVmZW5zZSwgSW5jLgorMDAxNjVEICAgICAoYmFzZSAxNikJCUFpckRlZmVuc2UsIEluYy4KKwkJCQk0ODAwIE5vcnRoIFBvaW50IFBrd3kKKwkJCQlTdGUgMTAwCisJCQkJQWxwaGFyZXR0YSBHQSAzMDAyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtNUUgICAoaGV4KQkJUHJlY2lzaW9uIEkvTworMDAxNjVFICAgICAoYmFzZSAxNikJCVByZWNpc2lvbiBJL08KKwkJCQk0MDA1IE1pcmFuZGEgQXZlLiwgU3VpdGUgMjEwCisJCQkJUGFsbyBBbHRvIENBIDk0MzA0LTEyMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTVGICAgKGhleCkJCUZhaXJtb3VudCBBdXRvbWF0aW9uCiswMDE2NUYgICAgIChiYXNlIDE2KQkJRmFpcm1vdW50IEF1dG9tYXRpb24KKwkJCQk0NjIxIFdlc3QgQ2hlc3RlciBQaWtlCisJCQkJTmV3dG93biBTcXVhcmUgUEEgMTkwNzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTYwICAgKGhleCkJCU5vcnRlbAorMDAxNjYwICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZCwgU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTE2LTYxICAgKGhleCkJCU5vdmF0aXVtIFNvbHV0aW9ucyAoUCkgTHRkCiswMDE2NjEgICAgIChiYXNlIDE2KQkJTm92YXRpdW0gU29sdXRpb25zIChQKSBMdGQKKwkJCQkzcmQgRmxvb3IsIFRlbXBsZSBUb3dlcnMsICM2NzIKKwkJCQlBbm5hIFNhbGFpLCBOYW5kYW5hbSwKKwkJCQlDaGVubmFpIFRhbWlsIE5hZHUgNjAwMDM1CisJCQkJSU5ESUEKKworMDAtMTYtNjIgICAoaGV4KQkJTGl5dWggVGVjaG5vbG9neSBMdGQuCiswMDE2NjIgICAgIChiYXNlIDE2KQkJTGl5dWggVGVjaG5vbG9neSBMdGQuCisJCQkJN0YtMSwgTm8uIDkyLCBTZWMuIDEsIEhlaSBIdSBSZC4KKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtNjMgICAoaGV4KQkJS0JUIE1vYmlsZQorMDAxNjYzICAgICAoYmFzZSAxNikJCUtCVCBNb2JpbGUKKwkJCQk0RiwgUG9sYXJpcyBJLCAxNS0zLCBKZW9uZ2phLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbS1zaSwgR3llb25nZ2ktZG8gNDYzLTgxMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi02NCAgIChoZXgpCQlQcm9kLUVsIFNwQQorMDAxNjY0ICAgICAoYmFzZSAxNikJCVByb2QtRWwgU3BBCisJCQkJVmlhIFBhbG1hbm92YSAxODUKKwkJCQlNaWxhbm8gTUkgMjAxMzIKKwkJCQlJVEFMWQorCiswMC0xNi02NSAgIChoZXgpCQlDZWxsb24gRnJhbmNlCiswMDE2NjUgICAgIChiYXNlIDE2KQkJQ2VsbG9uIEZyYW5jZQorCQkJCVJvdXRlIGQnQW5nZXJzIExlIE1hbnMgY2VkZXggOQorCQkJCUxlIE1hbnMgU2FydGhlIDcyMDgxCisJCQkJRlJBTkNFCisKKzAwLTE2LTY2ICAgKGhleCkJCVF1YW50aWVyIENvbW11bmljYXRpb24gSW5jLgorMDAxNjY2ICAgICAoYmFzZSAxNikJCVF1YW50aWVyIENvbW11bmljYXRpb24gSW5jLgorCQkJCTFGLCBOby4gMzYsIEluZHVzdHJ5IEUuIFJkIElWLAorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBwYXJrCisJCQkJSHNpbi1DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtNjcgICAoaGV4KQkJQS1URUMgU3Vic3lzdGVtIElOQy4KKzAwMTY2NyAgICAgKGJhc2UgMTYpCQlBLVRFQyBTdWJzeXN0ZW0gSU5DLgorCQkJCTRGLCBOby4gODYsIENodW5nLUhzaW5nIFJvYWQsIFNoaWpyIENpdHksCisJCQkJVGFpcGVpIENvdW50eQorCQkJCTIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtNjggICAoaGV4KQkJRWlzaGluIEVsZWN0cm9uaWNzCiswMDE2NjggICAgIChiYXNlIDE2KQkJRWlzaGluIEVsZWN0cm9uaWNzCisJCQkJTmlzaGlrdSBNaXlhc2hpdGEgMS0xOQorCQkJCUtvYmUgQ2l0eSBIeW9nbyBQcmVmZWN0dXJlIDY1MS0yMTQ2CisJCQkJSkFQQU4KKworMDAtMTYtNjkgICAoaGV4KQkJTVJWIENvbW11bmljYXRpb24gKE5ldHdvcmtzKSBMVEQKKzAwMTY2OSAgICAgKGJhc2UgMTYpCQlNUlYgQ29tbXVuaWNhdGlvbiAoTmV0d29ya3MpIExURAorCQkJCVAuTyBCb3ggNjE0CisJCQkJWW9rbmVhbSAgMjA2OTIKKwkJCQlJU1JBRUwKKworMDAtMTYtNkEgICAoaGV4KQkJVFBTCiswMDE2NkEgICAgIChiYXNlIDE2KQkJVFBTCisJCQkJMTQ1IHF1YWkgZGUgU3RhbGluZ3JhZAorCQkJCUlzc3kgTGVzIE1vdWxpbmVhdXggSWxlIGRlIEZyYW5jZSA5MjEzNworCQkJCUZSQU5DRQorCiswMC0xNi02QiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCiswMDE2NkIgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCTQxNixNYWV0YW4tM0RvbmcsWWVvbmd0b25nLUd1CisJCQkJU3V3b24tQ2l0eSBLeWVvbmdnaS1EbyA0NDMtNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LTZDICAgKGhleCkJCVNhbXN1bmcgRWxlY3RvbmljcyBEaWdpdGFsIFZpZGVvIFN5c3RlbSBEaXZpc2lvbgorMDAxNjZDICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3RvbmljcyBEaWdpdGFsIFZpZGVvIFN5c3RlbSBEaXZpc2lvbgorCQkJCTQxNiwgTWFldGFuLTNEb25nLFllb25ndG9uZy1HdQorCQkJCVN1d29uIEd5ZW9uZ2dpLURvIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtNkQgICAoaGV4KQkJWXVsb25nIENvbXB1dGVyIFRlbGVjb21tdW5pY2F0aW9uIFNjaWVudGlmaWMoc2hlbnpoZW4pQ28uLEx0CiswMDE2NkQgICAgIChiYXNlIDE2KQkJWXVsb25nIENvbXB1dGVyIFRlbGVjb21tdW5pY2F0aW9uIFNjaWVudGlmaWMoc2hlbnpoZW4pQ28uLEx0CisJCQkJOC9GLmhpZ2ggVGVjaCBQbGF6YSxUaWFuQW4gQ3liZXJwYXJrLENoZWdvbmdtaWFvCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA0MAorCQkJCUNISU5BCisKKzAwLTE2LTZFICAgKGhleCkJCUFyYml0cm9uIEluYy4KKzAwMTY2RSAgICAgKGJhc2UgMTYpCQlBcmJpdHJvbiBJbmMuCisJCQkJOTcwNSBQYXR1eGVudCBXb29kcyBEcml2ZQorCQkJCUNvbHVtYmlhIE1EIDIxMDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi02RiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAxNjZGICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEpsbiBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE2LTcwICAgKGhleCkJCVNLTkVUIENvcnBvcmF0aW9uCiswMDE2NzAgICAgIChiYXNlIDE2KQkJU0tORVQgQ29ycG9yYXRpb24KKwkJCQlGb250YW5hIFNoaW55b2tvaGFtYQorCQkJCVNoaW55b2tvaGFtYSAyLDE3LDIga29ob2t1LWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0xNi03MSAgIChoZXgpCQlTeW1waG94IEluZm9ybWF0aW9uIENvLgorMDAxNjcxICAgICAoYmFzZSAxNikJCVN5bXBob3ggSW5mb3JtYXRpb24gQ28uCisJCQkJMTVGLCBOby4gNTEsIFNlYy4gMywgTWluc2hlbmcgRS4gUm9hZAorCQkJCVRhaXBlaSBDaXR5ICAxMDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTcyICAgKGhleCkJCVplbndheSBlbnRlcnByaXNlIGx0ZAorMDAxNjcyICAgICAoYmFzZSAxNikJCVplbndheSBlbnRlcnByaXNlIGx0ZAorCQkJCTZGLiwgTm8uMjAsIExhbmUgMTUwLCBKaG9uZ3NpbmcgUmQuLCBTaWpoaWggQ2l0eQorCQkJCVRhaXBlaSAgODg2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi03MyAgIChoZXgpCQlCdXJ5IEdtYkggJiBDby4gS0cKKzAwMTY3MyAgICAgKGJhc2UgMTYpCQlCdXJ5IEdtYkggJiBDby4gS0cKKwkJCQlSb2JlcnQtS29jaC1TdHIuIDEtNworCQkJCUxvZWhuZSBHZXJtYW55IDMyNTg0CisJCQkJR0VSTUFOWQorCiswMC0xNi03NCAgIChoZXgpCQlFdXJvQ0IgKFBoaWxzLiksIEluYy4KKzAwMTY3NCAgICAgKGJhc2UgMTYpCQlFdXJvQ0IgKFBoaWxzLiksIEluYy4KKwkJCQlTRkIgTm8uMgorCQkJCU1hY3RhbiBFY29ub21pYyBab25lIC0gSQorCQkJCUxhcHVsYXB1IENpdHkgQ2VidSA2MDE1CisJCQkJUEhJTElQUElORVMKKworMDAtMTYtNzUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDE2NzUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjAwIE4gVVMgSHd5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElsbGlub2lzIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi03NiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAxNjc2ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEpsbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTYtNzcgICAoaGV4KQkJQmlobCtXaWVkZW1hbm4gR21iSAorMDAxNjc3ICAgICAoYmFzZSAxNikJCUJpaGwrV2llZGVtYW5uIEdtYkgKKwkJCQlGbG9zc3dvZXJ0aHN0ci4gNDEKKwkJCQlNYW5uaGVpbSBCYWRlbiBXw7xydGVtYmVyZyA2ODE5OQorCQkJCUdFUk1BTlkKKworMDAtMTYtNzggICAoaGV4KQkJU0hFTlpIRU4gQkFPQU4gR0FPS0UgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKzAwMTY3OCAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBCQU9BTiBHQU9LRSBFTEVDVFJPTklDUyBDTy4sIExURAorCQkJCUdBT0tFIElORFVTVFJJQUwgUEFSSywgTk8uOCBUQU5HS0VORyBST0FELCBTSElZQU4gVE9XTgorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyA1MTgxMDgKKwkJCQlDSElOQQorCiswMC0xNi03OSAgIChoZXgpCQllT24gQ29tbXVuaWNhdGlvbnMKKzAwMTY3OSAgICAgKGJhc2UgMTYpCQllT24gQ29tbXVuaWNhdGlvbnMKKwkJCQk0MTA1IFJveWFsIERyaXZlLCBTdWl0ZSAxMDAKKwkJCQlLZW5uZXNhdyBHZW9yZ2lhIDMwMTQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi03QSAgIChoZXgpCQlTa3l3b3J0aCBPdmVyc2VhcyBEdmVsb3BtZW50IEx0ZC4KKzAwMTY3QSAgICAgKGJhc2UgMTYpCQlTa3l3b3J0aCBPdmVyc2VhcyBEdmVsb3BtZW50IEx0ZC4KKwkJCQlSb29tIDE1MDUtMDYsV2VzdGxhbmRzIENlbnRyZQorCQkJCTIwIFdlc3RsYW5kcyBSb2FkLCBRdWFycnkgQmF5LAorCQkJCUhPTkcgS09ORworCiswMC0xNi03QiAgIChoZXgpCQlIYXZlciZCb2Vja2VyCiswMDE2N0IgICAgIChiYXNlIDE2KQkJSGF2ZXImQm9lY2tlcgorCQkJCUNhcmwtSGF2ZXItUGxhdHogMworCQkJCU9lbGRlIE5SVyA1OTMwMgorCQkJCUdFUk1BTlkKKworMDAtMTYtN0MgICAoaGV4KQkJaVJleCBUZWNobm9sb2dpZXMgQlYKKzAwMTY3QyAgICAgKGJhc2UgMTYpCQlpUmV4IFRlY2hub2xvZ2llcyBCVgorCQkJCUhpZ2hUZWNoIENhbXB1cworCQkJCUJ1aWxkaW5nIDQ2LCByb29tIHAtMDA1CisJCQkJRWluZGhvdmVuIEJyYWJhbnQgNTY1NkFFCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTYtN0QgICAoaGV4KQkJU2t5LUxpbmUgSW5mb3JtYXRpb24gQ28uLCBMdGQuCiswMDE2N0QgICAgIChiYXNlIDE2KQkJU2t5LUxpbmUgSW5mb3JtYXRpb24gQ28uLCBMdGQuCisJCQkJOEYuLE5vLjM4LFNpaHl1YW4gUmQuLAorCQkJCVNpbmlodWFuZyBUYWlwZWkgMjQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi03RSAgIChoZXgpCQlESUJPU1MuQ08uLExURAorMDAxNjdFICAgICAoYmFzZSAxNikJCURJQk9TUy5DTy4sTFRECisJCQkJMTI2LTEsIEdvbmdkYW4tZG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC05MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtN0YgICAoaGV4KQkJQmx1ZWJpcmQgU29mdCBJbmMuCiswMDE2N0YgICAgIChiYXNlIDE2KQkJQmx1ZWJpcmQgU29mdCBJbmMuCisJCQkJNTYyLTIxIEdhbmduYW0tZ3UsCisJCQkJU2VvdWwgIDEzNS04OTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtODAgICAoaGV4KQkJQmFsbHkgR2FtaW5nICsgU3lzdGVtcworMDAxNjgwICAgICAoYmFzZSAxNikJCUJhbGx5IEdhbWluZyArIFN5c3RlbXMKKwkJCQk5NTAgU2FuZGhpbGwgUm9hZAorCQkJCVJlbm8gTlYgODk1MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTgxICAgKGhleCkJCVZlY3RvciBJbmZvcm1hdGlrIEdtYkgKKzAwMTY4MSAgICAgKGJhc2UgMTYpCQlWZWN0b3IgSW5mb3JtYXRpayBHbWJICisJCQkJSW5nZXJzaGVpbWVyIFN0ci4gMjQKKwkJCQlTdHV0dGdhcnQgQmFkZW4tV3VlcnR0ZW1iZXJnIDcwNDk5CisJCQkJR0VSTUFOWQorCiswMC0xNi04MiAgIChoZXgpCQlQcm8gRGV4LCBJbmMKKzAwMTY4MiAgICAgKGJhc2UgMTYpCQlQcm8gRGV4LCBJbmMKKwkJCQkxODAwIE5XIDE2OXRoIFBsYWNlCisJCQkJQzEwMAorCQkJCUJlYXZlcnRvbiBPcmVnb24gOTcwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTgzICAgKGhleCkJCVdFQklPIEludGVybmF0aW9uYWwgQ28uLC5MdGQuCiswMDE2ODMgICAgIChiYXNlIDE2KQkJV0VCSU8gSW50ZXJuYXRpb25hbCBDby4sLkx0ZC4KKwkJCQkyMUYuLE5vLjE3MSBTb25nZGUgUmQuLFNpbnlpIERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTA4NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtODQgICAoaGV4KQkJRG9uamluIENvLixMdGQuCiswMDE2ODQgICAgIChiYXNlIDE2KQkJRG9uamluIENvLixMdGQuCisJCQkJMjFGLENhbmdzb25nIEJ1aWxkaW5nLFRhaXJhbixGdXRpYW4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworMDAtMTYtODUgICAoaGV4KQkJRWxpc2EgT3lqCiswMDE2ODUgICAgIChiYXNlIDE2KQkJRWxpc2EgT3lqCisJCQkJRWxla3Ryb25paWtrYXRpZSA0CisJCQkJOTA1NzAgT3VsdSAKKwkJCQlGSU5MQU5ECisKKzAwLTE2LTg2ICAgKGhleCkJCUthcmwgU3RvcnogSW1hZ2luZworMDAxNjg2ICAgICAoYmFzZSAxNikJCUthcmwgU3RvcnogSW1hZ2luZworCQkJCTE3NSBDcmVtb25hIERyLgorCQkJCUdvbGV0YSBDQSA5MzExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtODcgICAoaGV4KQkJQ2h1YmIgQ1NDLVZlbmRvciBBUAorMDAxNjg3ICAgICAoYmFzZSAxNikJCUNodWJiIENTQy1WZW5kb3IgQVAKKwkJCQlPdHRhd2EgU1ROCisJCQkJUC5PLiBCT1ggOTgzMgorCQkJCU90dGF3YSAgSzFHIDZXNgorCQkJCUNBTkFEQQorCiswMC0xNi04OCAgIChoZXgpCQlTZXJ2ZXJFbmdpbmVzIExMQworMDAxNjg4ICAgICAoYmFzZSAxNikJCVNlcnZlckVuZ2luZXMgTExDCisJCQkJMjA5IE4uIEZhaXIgT2FrcyBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTg5ICAgKGhleCkJCVBpbGtvciBFbGVjdHJvbmljcyBDby4sIEx0ZAorMDAxNjg5ICAgICAoYmFzZSAxNikJCVBpbGtvciBFbGVjdHJvbmljcyBDby4sIEx0ZAorCQkJCTM4MSxXb25jaHVuLURvbmcsWWVvdW5ndG9uZy1HdQorCQkJCVN1d29uIEt5dW5nIEtpLURvIDQ0Mi0zODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtOEEgICAoaGV4KQkJaWQtQ29uZmlybSBJbmMKKzAwMTY4QSAgICAgKGJhc2UgMTYpCQlpZC1Db25maXJtIEluYworCQkJCTE4MDAgQm91bGRlciBTdAorCQkJCVN1aXRlIDQwMAorCQkJCURlbnZlciBDTyA4MDIxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtOEIgICAoaGV4KQkJUGFyYWxhbiBDb3Jwb3JhdGlvbgorMDAxNjhCICAgICAoYmFzZSAxNikJCVBhcmFsYW4gQ29ycG9yYXRpb24KKwkJCQk0NjU1IFJ1ZmZuZXIgU3QuCisJCQkJU2FuIERpZWdvIENBIDkyMTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi04QyAgIChoZXgpCQlEU0wgUGFydG5lciBBUworMDAxNjhDICAgICAoYmFzZSAxNikJCURTTCBQYXJ0bmVyIEFTCisJCQkJSGF2cmV2ZWllbiA0OQorCQkJCU9zbG8gIDA2ODAKKwkJCQlOT1JXQVkKKworMDAtMTYtOEQgICAoaGV4KQkJS09SV0lOIENPLiwgTHRkLgorMDAxNjhEICAgICAoYmFzZSAxNikJCUtPUldJTiBDTy4sIEx0ZC4KKwkJCQkzcmQgRmxvb3IsIEhhbmEgQmxkZywgMTIzLTcgTm9uaHl1bi1kb25nCisJCQkJS2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LThFICAgKGhleCkJCVZpbWljcm8gY29ycG9yYXRpb24KKzAwMTY4RSAgICAgKGJhc2UgMTYpCQlWaW1pY3JvIGNvcnBvcmF0aW9uCisJCQkJMTUvRixTaGluaW5nIFRvd2VyLE5vLjM1LHh1ZXl1YW4KKwkJCQlSb2FkLEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODMKKwkJCQlDSElOQQorCiswMC0xNi04RiAgIChoZXgpCQlHTiBOZXRjb20gYXMKKzAwMTY4RiAgICAgKGJhc2UgMTYpCQlHTiBOZXRjb20gYXMKKwkJCQlNZXRhbGJ1ZW4gNjYKKwkJCQlQLk8uQm94IDIwMQorCQkJCUJhbGxlcnVwIFNrb3ZsdW5kZSBESyAtIDI3NTAKKwkJCQlERU5NQVJLCisKKzAwLTE2LTkwICAgKGhleCkJCUotVEVLIElOQ09SUE9SQVRJT04KKzAwMTY5MCAgICAgKGJhc2UgMTYpCQlKLVRFSyBJTkNPUlBPUkFUSU9OCisJCQkJMkYtMSwgTm8uIDgzLCBTZWMuIDIsIEdvbmdEYW9XdSBSZC4sCisJCQkJSHNpbmNodSBDaXR5ICAzMDA3MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtOTEgICAoaGV4KQkJTW9zZXItQmFlciBBRworMDAxNjkxICAgICAoYmFzZSAxNikJCU1vc2VyLUJhZXIgQUcKKwkJCQlTcGl0YWxzdHJhc3NlIDcKKwkJCQlTdW1pc3dhbGQgQkUgMzQ1NAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE2LTkyICAgKGhleCkJCVNjaWVudGlmaWMtQXRsYW50YSwgSW5jLgorMDAxNjkyICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMtQXRsYW50YSwgSW5jLgorCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlBVEwgMS4zLjQ3MworCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LTkzICAgKGhleCkJCVBvd2VyTGluayBUZWNobm9sb2d5IEluYy4KKzAwMTY5MyAgICAgKGJhc2UgMTYpCQlQb3dlckxpbmsgVGVjaG5vbG9neSBJbmMuCisJCQkJTjAuIDE4LCBBbGxleSAxLCBMYW5lIDE1MSwgU2VjLiAxLCBKaG9uZ3NpbmcgUmQuLCBXdWd1IFRvd25zaGlwCisJCQkJVGFpcGVpIEhzaWVuICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LTk0ICAgKGhleCkJCVNlbm5oZWlzZXIgQ29tbXVuaWNhdGlvbnMgQS9TCiswMDE2OTQgICAgIChiYXNlIDE2KQkJU2VubmhlaXNlciBDb21tdW5pY2F0aW9ucyBBL1MKKwkJCQlMYW5nYWdlciA2CisJCQkJU29scsO4ZCBTdHJhbmQgQ29wZW5oYWdlbiAyNjgwCisJCQkJREVOTUFSSworCiswMC0xNi05NSAgIChoZXgpCQlBVkMgVGVjaG5vbG9neSBMaW1pdGVkCiswMDE2OTUgICAgIChiYXNlIDE2KQkJQVZDIFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCTYvRiBFbnRlcnByaXNlIFNxdWFyZSBJSUkKKwkJCQkzOSBXYW5nIENoaXUgUm9hZAorCQkJCUtvd2xvb24gQmF5ICAKKwkJCQlIT05HIEtPTkcKKworMDAtMTYtOTYgICAoaGV4KQkJUURJIFRlY2hub2xvZ3kgKEguSy4pIExpbWl0ZWQKKzAwMTY5NiAgICAgKGJhc2UgMTYpCQlRREkgVGVjaG5vbG9neSAoSC5LLikgTGltaXRlZAorCQkJCTE2L0YsIFN0YW5kYXJkIENoYXJ0ZXJlZCBCYW5rIEJ1aWxkaW5nIDQtNEEKKwkJCQlEZXMgVm9ldXggUm9hZCBDZW50cmFsCisJCQkJSG9uZyBLb25nICAKKwkJCQlDSElOQQorCiswMC0xNi05NyAgIChoZXgpCQlORUMgQ29ycG9yYXRpb24KKzAwMTY5NyAgICAgKGJhc2UgMTYpCQlORUMgQ29ycG9yYXRpb24KKwkJCQk3LTEsIFNoaWJhIDUtY2hvbWUgTWluYXRvLWt1LAorCQkJCVRva3lvIDEwOC04MDAxCisJCQkJSkFQQU4KKworMDAtMTYtOTggICAoaGV4KQkJVCZBIE1vYmlsZSBQaG9uZXMKKzAwMTY5OCAgICAgKGJhc2UgMTYpCQlUJkEgTW9iaWxlIFBob25lcworCQkJCTQvRiwgU291dGggQnVpbGRpbmcsTm8uMjk2NiwgSmlua2UgUm9hZAorCQkJCVpoYW5namlhbmcgSGlnaC1UZWNrIFBhcmsKKwkJCQlQdWRvbmcgU2hhbmdoYWkgMjAxMjAzCisJCQkJQ0hJTkEKKworMDAtMTYtOTkgICAoaGV4KQkJVG9uaWMgRFZCIE1hcmtldGluZyBMdGQKKzAwMTY5OSAgICAgKGJhc2UgMTYpCQlUb25pYyBEVkIgTWFya2V0aW5nIEx0ZAorCQkJCVVuaXQgQiwgMTAvRiwgU3VtbWl0IEJ1aWxkaW5nLAorCQkJCTMwIE1hbiBZdWUgU3RyZWV0LAorCQkJCUh1bmcgSG9tIEtvd2xvb24gCisJCQkJSE9ORyBLT05HCisKKzAwLTE2LTlBICAgKGhleCkJCVF1YWRyaWNzIEx0ZAorMDAxNjlBICAgICAoYmFzZSAxNikJCVF1YWRyaWNzIEx0ZAorCQkJCTEgQnJpZGV3ZWxsIFN0cmVldAorCQkJCUJyaXN0b2wgIEJTMSAyQUEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi05QiAgIChoZXgpCQlBbHN0b20gVHJhbnNwb3J0CiswMDE2OUIgICAgIChiYXNlIDE2KQkJQWxzdG9tIFRyYW5zcG9ydAorCQkJCTExLCAxMyBhdmVudWUgZGUgQmVsIEFpcgorCQkJCVZpbGxldXJiYW5uZSBSaG9uZSA2OTEwMAorCQkJCUZSQU5DRQorCiswMC0xNi05QyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE2OUMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi05RCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE2OUQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi05RSAgIChoZXgpCQlUViBPbmUgTHRkCiswMDE2OUUgICAgIChiYXNlIDE2KQkJVFYgT25lIEx0ZAorCQkJCVVuaXQgViBDb250aW5lbnRhbCBBcHByb2FjaAorCQkJCVdlc3R3b29kIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJTWFyZ2F0ZSBLZW50IENUOSA0SkcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi05RiAgIChoZXgpCQlWaW10cm9uIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAxNjlGICAgICAoYmFzZSAxNikJCVZpbXRyb24gRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJN0YuLCBOby45LCBBbGxleSAyLCBMYW5lIDM1CisJCQkJSmlodSBSZC4KKwkJCQlOZWlodSBEaXN0cmljdCBUYWlwZWkgQ2l0eSAxMTQ5MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtQTAgICAoaGV4KQkJQXV0by1NYXNraW4KKzAwMTZBMCAgICAgKGJhc2UgMTYpCQlBdXRvLU1hc2tpbgorCQkJCVNvcGhpZSBSYWRpY2hzIFZlaSA3CisJCQkJTElMTEVTVFJPTSBBa2Vyc2h1cyAyMDAzCisJCQkJTk9SV0FZCisKKzAwLTE2LUExICAgKGhleCkJCTNMZWFmIE5ldHdvcmtzCiswMDE2QTEgICAgIChiYXNlIDE2KQkJM0xlYWYgTmV0d29ya3MKKwkJCQkzMjU1LTEgU2NvdHQgQmx2ZAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1BMiAgIChoZXgpCQlDZW50cmFMaXRlIFN5c3RlbXMsIEluYy4KKzAwMTZBMiAgICAgKGJhc2UgMTYpCQlDZW50cmFMaXRlIFN5c3RlbXMsIEluYy4KKwkJCQk2NDIwIFdhbGwgU3RyZWV0CisJCQkJTW9iaWxlIEFMIDM2Njk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1BMyAgIChoZXgpCQlJbmdldGVhbSBUcmFuc21pc3Npb24mRGlzdHJpYnV0aW9uLCBTLkEuCiswMDE2QTMgICAgIChiYXNlIDE2KQkJSW5nZXRlYW0gVHJhbnNtaXNzaW9uJkRpc3RyaWJ1dGlvbiwgUy5BLgorCQkJCUMvIFVzYXVzdWFnYSwgNworCQkJCVBvbC4gQXJ0dW5kdWFnYQorCQkJCUJhc2F1cmkgQml6a2FpYSA0ODk3MAorCQkJCVNQQUlOCisKKzAwLTE2LUE0ICAgKGhleCkJCUV6dXJpbyBMdGQKKzAwMTZBNCAgICAgKGJhc2UgMTYpCQlFenVyaW8gTHRkCisJCQkJVW5pdCAyCisJCQkJMTI2IENvbGluZGFsZSBBdmVudWUKKwkJCQlMb25kb24gIE5XOSA1SEQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNi1BNSAgIChoZXgpCQlUYW5kYmVyZyBTdG9yYWdlIEFTQQorMDAxNkE1ICAgICAoYmFzZSAxNikJCVRhbmRiZXJnIFN0b3JhZ2UgQVNBCisJCQkJUG9zdGJva3MgMTkxCisJCQkJMTMyNSBMeXNha2VyCisJCQkJTk9SV0FZCisKKzAwLTE2LUE2ICAgKGhleCkJCURvdmFkbyBGWi1MTEMKKzAwMTZBNiAgICAgKGJhc2UgMTYpCQlEb3ZhZG8gRlotTExDCisJCQkJQWwtVGh1cmF5YSBUb3dlciAxLCBvZmZpY2UgNTA0CisJCQkJUC5PLiBCb3ggNTAwNDIyCisJCQkJRHViYWkgIAorCQkJCVVOSVRFRCBBUkFCIEVNSVJBVEVTCisKKzAwLTE2LUE3ICAgKGhleCkJCUFXRVRBIEcmUAorMDAxNkE3ICAgICAoYmFzZSAxNikJCUFXRVRBIEcmUAorCQkJCUJ1cmcuIFdpbmtlbGxhYW4gMworCQkJCU5vb3Rkb3JwICAyNjMxIEhHCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTYtQTggICAoaGV4KQkJQ1dUIENPLiwgTFRELgorMDAxNkE4ICAgICAoYmFzZSAxNikJCUNXVCBDTy4sIExURC4KKwkJCQkxMEYgTm8uIDc0IFNlYy4gMSBDaHVuZy1IdWEgUmQuCisJCQkJVGFpcGVpICAxMDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUE5ICAgKGhleCkJCTJFSQorMDAxNkE5ICAgICAoYmFzZSAxNikJCTJFSQorCQkJCVJ1YSBkb3MgUnViaXMsIDc3IC0gQXNzdW1wY2FvCisJCQkJQWd1YXMgZGUgTGluZG9pYSBTYW8gUGF1bG8gMTM5NDAtMDAwCisJCQkJQlJBWklMCisKKzAwLTE2LUFBICAgKGhleCkJCUtlaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgSW5jLgorMDAxNkFBICAgICAoYmFzZSAxNikJCUtlaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgSW5jLgorCQkJCTgtQkFOIENIVU9VCisJCQkJS09CRSBIWU9HTyA2NTAtMDAyNAorCQkJCUpBUEFOCisKKzAwLTE2LUFCICAgKGhleCkJCVBCSS1EYW5zZW5zb3IgQS9TCiswMDE2QUIgICAgIChiYXNlIDE2KQkJUEJJLURhbnNlbnNvciBBL1MKKwkJCQlSb2VubmVkZXZlaiAxOAorCQkJCVJpbmdzdGVkICBESy00MTAwCisJCQkJREVOTUFSSworCiswMC0xNi1BQyAgIChoZXgpCQlUb2hvIFRlY2hub2xvZ3kgQ29ycC4KKzAwMTZBQyAgICAgKGJhc2UgMTYpCQlUb2hvIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQlISUdBU0hJIDUtMQorCQkJCU9SSVpVU0hJTU9NQUNISQorCQkJCUlOQVpBV0EtQ0lUWSBBSUNISSA0OTItODUwMQorCQkJCUpBUEFOCisKKzAwLTE2LUFEICAgKGhleCkJCUJULUxpbmtzIENvbXBhbnkgTGltaXRlZAorMDAxNkFEICAgICAoYmFzZSAxNikJCUJULUxpbmtzIENvbXBhbnkgTGltaXRlZAorCQkJCVJtIDgwMiwgTmFuIEZ1bmcgQ2VudHJlLCAyNjQtMjk4IENhc3RsZSBQZWFrIFJkCisJCQkJVHN1ZW4gV2FuCisJCQkJSE9ORyBLT05HCisKKzAwLTE2LUFFICAgKGhleCkJCUlOVkVOVEVMCiswMDE2QUUgICAgIChiYXNlIDE2KQkJSU5WRU5URUwKKwkJCQkzNSBydWUgVG91cm5lZm9ydAorCQkJCVBBUklTICA3NTAwNQorCQkJCUZSQU5DRQorCiswMC0xNi1BRiAgIChoZXgpCQlTaGVuemhlbiBVbmlvbiBOZXR3b3JrcyBFcXVpcG1lbnQgQ28uLEx0ZC4KKzAwMTZBRiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBVbmlvbiBOZXR3b3JrcyBFcXVpcG1lbnQgQ28uLEx0ZC4KKwkJCQlZaWhhaSBTcXVhcmUgZWFzdCBidWlsZGluZyAyMzA3LCBDaHVhbmd5ZSByb2FkLCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NAorCQkJCUNISU5BCisKKzAwLTE2LUIwICAgKGhleCkJCVZLIENvcnBvcmF0aW9uCiswMDE2QjAgICAgIChiYXNlIDE2KQkJVksgQ29ycG9yYXRpb24KKwkJCQlWSyBCL0QsIDU0OC02LCBBbnlhbmcgOGRvbmcsIE1hbmFuLWd1CisJCQkJQW55YW5nIEt5b3VuZ2dpIDQzMC04OTAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LUIxICAgKGhleCkJCUtCUworMDAxNkIxICAgICAoYmFzZSAxNikJCUtCUworCQkJCTg4IHJ1ZSBQaWVycmUgU8OpbWFyZAorCQkJCUJQIDU1CisJCQkJTW9pc3N5IGNlZGV4IElsZSBkZSBGcmFuY2UgNzc1NTIKKwkJCQlGUkFOQ0UKKworMDAtMTYtQjIgICAoaGV4KQkJRHJpdmVDYW0gSW5jCiswMDE2QjIgICAgIChiYXNlIDE2KQkJRHJpdmVDYW0gSW5jCisJCQkJMzk1NCBNdXJwaHkgQ2FueW9uIFJvYWQKKwkJCQlTdWl0ZSBEMjA1CisJCQkJU2FuIERpZWdvIENBIDkyMTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1CMyAgIChoZXgpCQlQaG90b25pY2JyaWRnZXMgKENoaW5hKSBDby4sIEx0ZC4KKzAwMTZCMyAgICAgKGJhc2UgMTYpCQlQaG90b25pY2JyaWRnZXMgKENoaW5hKSBDby4sIEx0ZC4KKwkJCQlOby4gOTAwLCBZaXNoYW4gcm9hZCwKKwkJCQlTaGFuZ2hhaSAgMjAwMjMzCisJCQkJQ0hJTkEKKworMDAtMTYtQjQgICAoaGV4KQkJUFJJVkFURQorMDAxNkI0ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0xNi1CNSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxNkI1ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQjYgICAoaGV4KQkJQ2lzY28tTGlua3N5cworMDAxNkI2ICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMKKwkJCQkxMjEgVGhlb3J5CisJCQkJSXJ2aW5lIENBIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1CNyAgIChoZXgpCQlTZW91bCBDb21tdGVjaAorMDAxNkI3ICAgICAoYmFzZSAxNikJCVNlb3VsIENvbW10ZWNoCisJCQkJNDQ4LTExLCBTZW9uZ25hZSAzZG9uZy4gR2FuZ2RvbmcgZ3UsCisJCQkJU2VvdWwgIDEzNDAzMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi1COCAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworMDAxNkI4ICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU2vDpW5lIDIyMTg4CisJCQkJU1dFREVOCisKKzAwLTE2LUI5ICAgKGhleCkJCVByb0N1cnZlIE5ldHdvcmtpbmcKKzAwMTZCOSAgICAgKGJhc2UgMTYpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nCisJCQkJODAwMCBGb290aGlsbHMgQmx2ZAorCQkJCU1TIDU2NjIKKwkJCQlSb3NldmlsbGUgQ0EgOTU3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUJBICAgKGhleCkJCVdFQVRIRVJORVdTIElOQy4KKzAwMTZCQSAgICAgKGJhc2UgMTYpCQlXRUFUSEVSTkVXUyBJTkMuCisJCQkJTkFLQVNFIDEtMyBNVEcKKwkJCQlDSElCQSAgMjYyLTAwMzIKKwkJCQlKQVBBTgorCiswMC0xNi1CQiAgIChoZXgpCQlMYXctQ2hhaW4gQ29tcHV0ZXIgVGVjaG5vbG9neSBDbyBMdGQKKzAwMTZCQiAgICAgKGJhc2UgMTYpCQlMYXctQ2hhaW4gQ29tcHV0ZXIgVGVjaG5vbG9neSBDbyBMdGQKKwkJCQk3Ri0yLCAyODYtNCwgaHNpbiB5YSByb2FkLCBjaGllbiBjaGVuIGRpc3RyaWN0CisJCQkJS2FvaHNpdW5nICA4MDY3MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtQkMgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTZCQyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMTYtQkQgICAoaGV4KQkJQVRJIEluZHVzdHJpYWwgQXV0b21hdGlvbgorMDAxNkJEICAgICAoYmFzZSAxNikJCUFUSSBJbmR1c3RyaWFsIEF1dG9tYXRpb24KKwkJCQkxMDMxIEdvb2R3b3J0aCBEcml2ZQorCQkJCUFwZXggTm9ydGggQ2Fyb2xpbmEgMjc1MzktMzg2OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQkUgICAoaGV4KQkJSU5GUkFORVQsIEluYy4KKzAwMTZCRSAgICAgKGJhc2UgMTYpCQlJTkZSQU5FVCwgSW5jLgorCQkJCTh0aCBGbG9vciwgQ293ZWxsIEIvRCwgNjYtMQorCQkJCUJhbnBvLURvbmcsIFNlb2Noby1HdQorCQkJCVNlb3VsICAxMzctMDQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LUJGICAgKGhleCkJCVBhbG9ERXggR3JvdXAgT3kKKzAwMTZCRiAgICAgKGJhc2UgMTYpCQlQYWxvREV4IEdyb3VwIE95CisJCQkJUC5PLiBCb3ggNjQKKwkJCQlOYWhrZWxhbnRpZSAxNjAKKwkJCQlUdXVzdWxhICAwNDMwMQorCQkJCUZJTkxBTkQKKworMDAtMTYtQzAgICAoaGV4KQkJU2VtdGVjaCBDb3Jwb3JhdGlvbgorMDAxNkMwICAgICAoYmFzZSAxNikJCVNlbXRlY2ggQ29ycG9yYXRpb24KKwkJCQkyMDAgRmx5bm4gUmQKKwkJCQlDYW1hcmlsbG8gQ2FsaWZvcm5pYSA5MzAxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQzEgICAoaGV4KQkJRWxla3NlbiBMdGQKKzAwMTZDMSAgICAgKGJhc2UgMTYpCQlFbGVrc2VuIEx0ZAorCQkJCVBpbmV3b29kIFN0dWRpb3MKKwkJCQlJdmVyIEhlYXRoCisJCQkJSXZlciBCdWNrcyBTTDAgME5ICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTYtQzIgICAoaGV4KQkJQXZ0ZWMgU3lzdGVtcyBJbmMKKzAwMTZDMiAgICAgKGJhc2UgMTYpCQlBdnRlYyBTeXN0ZW1zIEluYworCQkJCTE0NDMyIEFsYmVtYXJsZSBQb2ludCBQbGFjZQorCQkJCUNoYW50aWxseSBWaXJnaW5pYSAyMDE1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQzMgICAoaGV4KQkJQkEgU3lzdGVtcyBJbmMKKzAwMTZDMyAgICAgKGJhc2UgMTYpCQlCQSBTeXN0ZW1zIEluYworCQkJCTY4OTUgVmlhIERlbCBPcm8KKwkJCQlTYW4gSm9zZSBDQSA5NTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQzQgICAoaGV4KQkJU2lSRiBUZWNobm9sb2d5LCBJbmMuCiswMDE2QzQgICAgIChiYXNlIDE2KQkJU2lSRiBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjE3IERldmNvbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtQzUgICAoaGV4KQkJU2hlbnpoZW4gWGluZyBGZW5nIEluZHVzdHJ5IENvLixMdGQKKzAwMTZDNSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBYaW5nIEZlbmcgSW5kdXN0cnkgQ28uLEx0ZAorCQkJCUZsb29yIDEgLSA0LCBCbG9jayAyNSwgSG9uZ3RpYW4gSmlueXVhbiBJbmR1c3RyaWFsLAorCQkJCUhvbmd0aWFuIFJvYWQgSHVhbmdwdSwgU2hhamluLCBCYW9hbiwKKwkJCQlTaGVuemhlbiBHdWFuZ0RvbmcgODYKKwkJCQlDSElOQQorCiswMC0xNi1DNiAgIChoZXgpCQlOb3J0aCBBdGxhbnRpYyBJbmR1c3RyaWVzCiswMDE2QzYgICAgIChiYXNlIDE2KQkJTm9ydGggQXRsYW50aWMgSW5kdXN0cmllcworCQkJCTE3MCBXaWxidXIgUGxhY2UKKwkJCQlCb2hlbWlhIE5ZIDExNzE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1DNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE2QzcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1DOCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE2QzggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1DOSAgIChoZXgpCQlOQVQgU2VhdHRsZSwgSW5jLgorMDAxNkM5ICAgICAoYmFzZSAxNikJCU5BVCBTZWF0dGxlLCBJbmMuCisJCQkJMjIxMjUgMTd0aCBBdmUgU0UKKwkJCQlCb3RoZWxsIFdBIDk4MDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1DQSAgIChoZXgpCQlOb3J0ZWwKKzAwMTZDQSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQsIFN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xNi1DQiAgIChoZXgpCQlBcHBsZSBDb21wdXRlcgorMDAxNkNCICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyCisJCQkJMSBJbmZpbml0ZSBMb29wIE1TOjM1R1BPCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1DQyAgIChoZXgpCQlYY3V0ZSBNb2JpbGUgQ29ycC4KKzAwMTZDQyAgICAgKGJhc2UgMTYpCQlYY3V0ZSBNb2JpbGUgQ29ycC4KKwkJCQkzRi4gTm8uMjUsIEFsbHkxNSwgTGFuZSAxMjAsIFNlYy4xLCBOZWlodSBSZC4KKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtQ0QgICAoaGV4KQkJSElKSSBISUdILVRFQ0ggQ08uLCBMVEQuCiswMDE2Q0QgICAgIChiYXNlIDE2KQkJSElKSSBISUdILVRFQ0ggQ08uLCBMVEQuCisJCQkJT2hnYSA4MTMzCisJCQkJSGlqaQorCQkJCUhheWFtaSBPaXRhIDg3OS0xNTA0CisJCQkJSkFQQU4KKworMDAtMTYtQ0UgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMTZDRSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCTY2LCBDaHVuZyBTaGFuIFJkLiBUdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi1DRiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorMDAxNkNGICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCisJCQkJNjYsIENodW5nIFNoYW4gUmQuIFR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUQwICAgKGhleCkJCUFUZWNoIGVsZWt0cm9uaWthIGQuby5vLgorMDAxNkQwICAgICAoYmFzZSAxNikJCUFUZWNoIGVsZWt0cm9uaWthIGQuby5vLgorCQkJCUJhYyBwcmkgTWF0ZXJpamkgMzAKKwkJCQlNYXRlcmlqYSBTSSA2MjQyCisJCQkJU0xPVkVOSUEKKworMDAtMTYtRDEgICAoaGV4KQkJWkFUIGEucy4KKzAwMTZEMSAgICAgKGJhc2UgMTYpCQlaQVQgYS5zLgorCQkJCUsgUG9kbGVzaSA1NDEKKwkJCQlQcmlicmFtIFZJICAyNjE4MAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTE2LUQyICAgKGhleCkJCUNhc3BpYW4KKzAwMTZEMiAgICAgKGJhc2UgMTYpCQlDYXNwaWFuCisJCQkJMTcwIEJheXRlY2ggRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtRDMgICAoaGV4KQkJV2lzdHJvbiBDb3Jwb3JhdGlvbgorMDAxNkQzICAgICAoYmFzZSAxNikJCVdpc3Ryb24gQ29ycG9yYXRpb24KKwkJCQkyMUYsIDg4LCBTZWMuMSwgSHNpbiBUYWkgV3UgUmQuLCBIc2ljaGloLAorCQkJCVRhaXBlaSBIc2llbiAgMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi1ENCAgIChoZXgpCQlDb21wYWwgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMTZENCAgICAgKGJhc2UgMTYpCQlDb21wYWwgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk3dGgsIEZMLCBOby4gMzE5LCBTZWMuIDQsIFBhLVRlaCByZC4KKwkJCQlUYWlwZWkgIDg4NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtRDUgICAoaGV4KQkJU3luY2NvbSBDby4sIEx0ZAorMDAxNkQ1ICAgICAoYmFzZSAxNikJCVN5bmNjb20gQ28uLCBMdGQKKwkJCQkjMzA2IE15dW5naSBlLXNwYWNlICAyMTgtMjAKKwkJCQlBbnlhbmc3LWRvbmcgTWFuYW4tZ3UKKwkJCQlBbnlhbmctc2kgS3l1bmdraS1kbyA0MzAtODE3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE2LUQ2ICAgKGhleCkJCVREQSBUZWNoIFB0eSBMdGQKKzAwMTZENiAgICAgKGJhc2UgMTYpCQlUREEgVGVjaCBQdHkgTHRkCisJCQkJMjEwIC8gNTQgQ3VycmllIFN0cmVldAorCQkJCUFkZWxhaWRlIFNvdXRoIEF1c3RyYWxpYSA1MDAwCisJCQkJQVVTVFJBTElBCisKKzAwLTE2LUQ3ICAgKGhleCkJCVN1bndheXMgQUcKKzAwMTZENyAgICAgKGJhc2UgMTYpCQlTdW53YXlzIEFHCisJCQkJTWFjYWlyZXN0ci4zLTUKKwkJCQlLb25zdGFueiBCYWRlbiBXw7xydHRlbWJlcmcgNzg0NjcKKwkJCQlHRVJNQU5ZCisKKzAwLTE2LUQ4ICAgKGhleCkJCVNlbmVhIEFCCiswMDE2RDggICAgIChiYXNlIDE2KQkJU2VuZWEgQUIKKwkJCQlGw4PCtnJldGFnc2FsbGVuIDEyCisJCQkJw4PigKZrZXJzYmVyZ2EgIDE4NDg0CisJCQkJU1dFREVOCisKKzAwLTE2LUQ5ICAgKGhleCkJCU5JTkdCTyBCSVJEIENPLixMVEQuCiswMDE2RDkgICAgIChiYXNlIDE2KQkJTklOR0JPIEJJUkQgQ08uLExURC4KKwkJCQlOby45OTkgRGFjaGVuZyBFYXN0IFJvYWQKKwkJCQlGZW5naHVhIFpoZWppYW5nIDMxNTUwMAorCQkJCUNISU5BCisKKzAwLTE2LURBICAgKGhleCkJCUZ1dHJvbmljIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKzAwMTZEQSAgICAgKGJhc2UgMTYpCQlGdXRyb25pYyBUZWNobm9sb2d5IENvLiBMdGQuCisJCQkJUm9vbSAxMDE2QSwgMTAvRi4sIFByb2ZpdCBJbmQuIEJsZGcuLAorCQkJCTEtMTUgS3dhaSBGdW5nIENyZXNjZW50LAorCQkJCUt3YWkgQ2h1bmcgIDAwMDAwCisJCQkJSE9ORyBLT05HCisKKzAwLTE2LURCICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDE2REIgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWktQ2l0eSBHeWVvbmctQnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtREMgICAoaGV4KQkJQVJDSE9TCiswMDE2REMgICAgIChiYXNlIDE2KQkJQVJDSE9TCisJCQkJMTIgcnVlIEFNUEVSRQorCQkJCUlHTlkgRVNTT05ORVMgOTE0MzAKKwkJCQlGUkFOQ0UKKworMDAtMTYtREQgICAoaGV4KQkJR2lnYWJlYW0gQ29ycG9yYXRpb24KKzAwMTZERCAgICAgKGJhc2UgMTYpCQlHaWdhYmVhbSBDb3Jwb3JhdGlvbgorCQkJCTQwNyBTcHJpbmdwYXJrIFBsYWNlCisJCQkJU3RlIDkwMAorCQkJCUhlcm5kb24gVkEgMjAxNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LURFICAgKGhleCkJCUZBU1QgSW5jCiswMDE2REUgICAgIChiYXNlIDE2KQkJRkFTVCBJbmMKKwkJCQk5MDUgSG9uZXlzcG90IFJkCisJCQkJU3RyYXRmb3JkIENUIDA2NjE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1ERiAgIChoZXgpCQlMdW5kaW5vdmEgQUIKKzAwMTZERiAgICAgKGJhc2UgMTYpCQlMdW5kaW5vdmEgQUIKKwkJCQlEYWxieXZhZ2VuIDEKKwkJCQlMdW5kIFNrYWFuZSBTRS0yMjQgNjAKKwkJCQlTV0VERU4KKworMDAtMTYtRTAgICAoaGV4KQkJM0NvbSBMdGQKKzAwMTZFMCAgICAgKGJhc2UgMTYpCQkzQ29tIEx0ZAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlQZW9wbGVidWlsZGluZyBFc3RhdGUsIE1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cyBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTYtRTEgICAoaGV4KQkJU2lsaWNvblN0b3IsIEluYy4KKzAwMTZFMSAgICAgKGJhc2UgMTYpCQlTaWxpY29uU3RvciwgSW5jLgorCQkJCTQ4NDMwIExha2V2aWV3IEJsdmQuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtRTIgICAoaGV4KQkJQW1lcmljYW4gRmliZXJ0ZWssIEluYy4KKzAwMTZFMiAgICAgKGJhc2UgMTYpCQlBbWVyaWNhbiBGaWJlcnRlaywgSW5jLgorCQkJCTEyMCBCZWxtb250IERyaXZlCisJCQkJU29tZXJzZXQgTmV3IEplcnNleSAwODg3My0xMjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1FMyAgIChoZXgpCQlBU0tFWSBDT01QVVRFUiBDT1JQLgorMDAxNkUzICAgICAoYmFzZSAxNikJCUFTS0VZIENPTVBVVEVSIENPUlAuCisJCQkJMTBGLCBOTy4xMTksIENISUVOS0FORyBSRC4sCisJCQkJQ0hVTkctSE8sIFRBSVBFSSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNi1FNCAgIChoZXgpCQlWQU5HVUFSRCBTRUNVUklUWSBFTkdJTkVFUklORyBDT1JQLgorMDAxNkU0ICAgICAoYmFzZSAxNikJCVZBTkdVQVJEIFNFQ1VSSVRZIEVOR0lORUVSSU5HIENPUlAuCisJCQkJMywgTEFORSAzMiwgS1NPIENISU5HIFJELgorCQkJCVlBTkdNRUkgVEFPWVVBTiAzMjYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUU1ICAgKGhleCkJCUZPUkRMRVkgREVWRUxPUE1FTlQgTElNSVRFRAorMDAxNkU1ICAgICAoYmFzZSAxNikJCUZPUkRMRVkgREVWRUxPUE1FTlQgTElNSVRFRAorCQkJCVJPT00gNzA2LCA3VEggRkxPT1IsIFlVIFNVTkcgQk9PTiBCVUlMRElORywgMTA3LTExMSBERVMgVk9FVVggUk9BRCwgQ0VOVFJBTCwKKwkJCQlIT05HIEtPTkcKKworMDAtMTYtRTYgICAoaGV4KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKzAwMTZFNiAgICAgKGJhc2UgMTYpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCVBpbi1KZW4gQ2l0eSwgVGFveXVhbgorCQkJCTMyNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtRTcgICAoaGV4KQkJRHluYW1peCBQcm9tb3Rpb25zIExpbWl0ZWQKKzAwMTZFNyAgICAgKGJhc2UgMTYpCQlEeW5hbWl4IFByb21vdGlvbnMgTGltaXRlZAorCQkJCTc4OC03OTAsIEZpbmNobGV5IFJvYWQKKwkJCQlMb25kb24gIE5XMTEgN1RKCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTYtRTggICAoaGV4KQkJU2lnbWEgRGVzaWducywgSW5jLgorMDAxNkU4ICAgICAoYmFzZSAxNikJCVNpZ21hIERlc2lnbnMsIEluYy4KKwkJCQkxNzc4IE1jQ2FydGh5IEJsdmQuCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUU5ICAgKGhleCkJCVRpYmEgTWVkaWNhbCBJbmMKKzAwMTZFOSAgICAgKGJhc2UgMTYpCQlUaWJhIE1lZGljYWwgSW5jCisJCQkJNTAyNCBMYWtld29vZCBEcml2ZQorCQkJCVBsYW5vIFRYIDc1MDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1FQSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAxNkVBICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggUGFyayAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsgS3VsaW0gMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xNi1FQiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAxNkVCICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMTYtRUMgICAoaGV4KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW1zIENvLiwgTHRkLgorMDAxNkVDICAgICAoYmFzZSAxNikJCUVsaXRlZ3JvdXAgQ29tcHV0ZXIgU3lzdGVtcyBDby4sIEx0ZC4KKwkJCQlOby4gMjIsIEFsbGV5IDM4LCBMYW5lIDkxLCBTZWMuIDEsIE5laSBIdSBSb2FkLAorCQkJCVRhaXBlaSAgMTE0NDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUVEICAgKGhleCkJCURpZ2l0YWwgU2FmZXR5IFRlY2hub2xvZ2llcywgSW5jCiswMDE2RUQgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBTYWZldHkgVGVjaG5vbG9naWVzLCBJbmMKKwkJCQk1MTEgRGF2aXMgRHJpdmUKKwkJCQlTdWl0ZSAzMDAKKwkJCQlNb3JyaXN2aWxsZSBOQyAyNzU2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtRUUgICAoaGV4KQkJUm95YWxEaWdpdGFsIEluYy4KKzAwMTZFRSAgICAgKGJhc2UgMTYpCQlSb3lhbERpZ2l0YWwgSW5jLgorCQkJCThGLiwgTm8uMzA4LCBTZWMuMSwgTmVpaHUgUmQuCisJCQkJTmVpaHUgRGlzdHJpY3QsCisJCQkJVGFpcGVpIENpdHkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTYtRUYgICAoaGV4KQkJS29rbyBGaXRuZXNzLCBJbmMuCiswMDE2RUYgICAgIChiYXNlIDE2KQkJS29rbyBGaXRuZXNzLCBJbmMuCisJCQkJMTM2IExvbmd3YXRlciBEcml2ZQorCQkJCU5vcndlbGwgTUEgMDIwNjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUYwICAgKGhleCkJCURlbGwKKzAwMTZGMCAgICAgKGJhc2UgMTYpCQlEZWxsCisJCQkJOTA5IEhlcm1vc2EgQ3QKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE2LUYxICAgKGhleCkJCU9tbmlTZW5zZSwgTExDCiswMDE2RjEgICAgIChiYXNlIDE2KQkJT21uaVNlbnNlLCBMTEMKKwkJCQkyIFJvYmluIERyaXZlCisJCQkJTGFkeXMgSXNsYW5kIFNDIDI5OTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1GMiAgIChoZXgpCQlEbW9iaWxlIFN5c3RlbSBDby4sIEx0ZC4KKzAwMTZGMiAgICAgKGJhc2UgMTYpCQlEbW9iaWxlIFN5c3RlbSBDby4sIEx0ZC4KKwkJCQkyRiwgTm8uMTMtMjAsIFNlYy42LCBNaW5jeXVhbiBFLlJkLAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUYzICAgKGhleCkJCUNBU1QgSW5mb3JtYXRpb24gQ28uLCBMdGQKKzAwMTZGMyAgICAgKGJhc2UgMTYpCQlDQVNUIEluZm9ybWF0aW9uIENvLiwgTHRkCisJCQkJNUYgTVNBIEJsZGcuIDg5MS00MyBEYWNjaGktRG9uZywKKwkJCQlnYW5nbmFtLUd1CisJCQkJU0VPVUwgIDEzNS0yODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtRjQgICAoaGV4KQkJRWlkaWNvbSBDby4sIEx0ZC4KKzAwMTZGNCAgICAgKGJhc2UgMTYpCQlFaWRpY29tIENvLiwgTHRkLgorCQkJCVBvbHljaGVtIEIvRCA0dGggRmxvb3IsIDkwMC0xCisJCQkJS3dhbnlhbmctZG9uZywgRG9uZ2FuLWt1CisJCQkJQW55YW5nLXNpIEt5ZW9uZ2dpLWRvIDQzMS0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTYtRjUgICAoaGV4KQkJRGFsaWFuIEdvbGRlbiBIdWFsdSBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAxNkY1ICAgICAoYmFzZSAxNikJCURhbGlhbiBHb2xkZW4gSHVhbHUgRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlOby4xIEh1YSBSb2FkLFFpeGlhbmxpbmcKKwkJCQlEYWxpYW4gTGlhb05pbmcgMTE2MDIzCisJCQkJQ0hJTkEKKworMDAtMTYtRjYgICAoaGV4KQkJVmlkZW8gUHJvZHVjdHMgR3JvdXAKKzAwMTZGNiAgICAgKGJhc2UgMTYpCQlWaWRlbyBQcm9kdWN0cyBHcm91cAorCQkJCTE2MDAgRW1lcnNvbiBBdmVudWUKKwkJCQlPeG5hcmQgQ2FsaWZvcm5pYSA5MzAzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTYtRjcgICAoaGV4KQkJTC0zIENvbW11bmljYXRpb25zLCBFbGVjdHJvZHluYW1pY3MsIEluYy4KKzAwMTZGNyAgICAgKGJhc2UgMTYpCQlMLTMgQ29tbXVuaWNhdGlvbnMsIEVsZWN0cm9keW5hbWljcywgSW5jLgorCQkJCTEyMDAgSGlja3MgUmQuCisJCQkJUm9sbGluZyBNZWFkb3dzIElMIDYwMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNi1GOCAgIChoZXgpCQlBVklRVEVDSCBURUNITk9MT0dZIENPLiwgTFRELgorMDAxNkY4ICAgICAoYmFzZSAxNikJCUFWSVFURUNIIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJNkYgMTIsIExpLWhzaW4gUm9hZCwgU0JJUAorCQkJCUhzaW4tY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE2LUY5ICAgKGhleCkJCUNFVFJUQSBQT1QsIGQuby5vLiwgS3JhbmoKKzAwMTZGOSAgICAgKGJhc2UgMTYpCQlDRVRSVEEgUE9ULCBkLm8uby4sIEtyYW5qCisJCQkJUGxhbmluYSAzCisJCQkJS3JhbmogU0kgNDAwMAorCQkJCVNMT1ZFTklBCisKKzAwLTE2LUZBICAgKGhleCkJCUVDSSBUZWxlY29tIEx0ZC4KKzAwMTZGQSAgICAgKGJhc2UgMTYpCQlFQ0kgVGVsZWNvbSBMdGQuCisJCQkJMzAgSGFzaXZpbSBTdC4KKwkJCQlQZXRhaCBUaWt2YSAgNDkxMzMKKwkJCQlJU1JBRUwKKworMDAtMTYtRkIgICAoaGV4KQkJU0hFTlpIRU4gTVRDIENPLixMVEQuCiswMDE2RkIgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gTVRDIENPLixMVEQuCisJCQkJNS9GIEJlbll1YW4gQmxkZyw2MDE1IFNoZW5OYW4gUm9hZAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0xNi1GQyAgIChoZXgpCQlUT0hLRU4gQ08uLExURC4KKzAwMTZGQyAgICAgKGJhc2UgMTYpCQlUT0hLRU4gQ08uLExURC4KKwkJCQkyLTE2LTIwIFRhbWFnYXdhCisJCQkJQ2hvZnUgVG9reW8gMTgyLTAwMjUKKwkJCQlKQVBBTgorCiswMC0xNi1GRCAgIChoZXgpCQlKYXR5IEVsZWN0cm9uaWNzCiswMDE2RkQgICAgIChiYXNlIDE2KQkJSmF0eSBFbGVjdHJvbmljcworCQkJCUphdHkgQmxkZyAxMEYsIDE2NTktNSBCb25nY2h1bjExLURvbmcKKwkJCQlLd2FuYWstS3UKKwkJCQlTZW91bCAgMTUxLTgzMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNi1GRSAgIChoZXgpCQlBbHBzIEVsZWN0cmljIENvLiwgTHRkCiswMDE2RkUgICAgIChiYXNlIDE2KQkJQWxwcyBFbGVjdHJpYyBDby4sIEx0ZAorCQkJCTEtMi0xLCBPa2lub3VjaGksCisJCQkJU29tYS1jaXR5LCBGdWt1c2hpbWEtcHJlZi4sIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMTYtRkYgICAoaGV4KQkJV2FtaW4gT3B0b2NvbW0gTWZnIENvcnAKKzAwMTZGRiAgICAgKGJhc2UgMTYpCQlXYW1pbiBPcHRvY29tbSBNZmcgQ29ycAorCQkJCU5vLiAyMzkgUWlhb2hlIFJvYWQKKwkJCQlaaG9uZ2hlIENpdHkgVGFpcGVpIENvdW50eSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTAwICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE3MDAgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gVVMgSHd5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0wMSAgIChoZXgpCQlLREUsIEluYy4KKzAwMTcwMSAgICAgKGJhc2UgMTYpCQlLREUsIEluYy4KKwkJCQlLREUgVE9XTiwgNDItNywgTWFuZ3dvbC1kb25nCisJCQkJSGFuYW0gR3llb25nZ2ktZG8gNDY1LTE1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy0wMiAgIChoZXgpCQlPc3VuZyBNaWRpY29tIENvLiwgTHRkCiswMDE3MDIgICAgIChiYXNlIDE2KQkJT3N1bmcgTWlkaWNvbSBDby4sIEx0ZAorCQkJCTIzMS0xOCwgRG9yaW0yLWRvbmcsCisJCQkJU2VvdWwsIFlvdW5nZGV1bmdwby1ndSAxNTAtODMyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTAzICAgKGhleCkJCU1PU0RBTiBJbnRlcm5hdGlvbiBDby4sTHRkCiswMDE3MDMgICAgIChiYXNlIDE2KQkJTU9TREFOIEludGVybmF0aW9uIENvLixMdGQKKwkJCQlOby43NCBDaGVnZ3VuZyBTaGludHN1ZW4sU2hhbmh1YSBKZW4sCisJCQkJVGFpbmFuICA3NDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTA0ICAgKGhleCkJCVNoaW5jbyBFbGVjdHJvbmljcyBHcm91cCBDby4sTHRkCiswMDE3MDQgICAgIChiYXNlIDE2KQkJU2hpbmNvIEVsZWN0cm9uaWNzIEdyb3VwIENvLixMdGQKKwkJCQlOby41IFdhaWh1YW4gUm9hZAorCQkJCUNoYW5nemhvdSBKaWFuZ3N1IDIxMzAyMgorCQkJCUNISU5BCisKKzAwLTE3LTA1ICAgKGhleCkJCU1ldGhvZGUgRWxlY3Ryb25pY3MKKzAwMTcwNSAgICAgKGJhc2UgMTYpCQlNZXRob2RlIEVsZWN0cm9uaWNzCisJCQkJNzQwMSBXLiBXaWxzb24KKwkJCQlDaGljYWdvIElMIDYwNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0wNiAgIChoZXgpCQlUZWNoZmFpdGggV2lyZWxlc3MgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IExpbWl0ZWQuCiswMDE3MDYgICAgIChiYXNlIDE2KQkJVGVjaGZhaXRoIFdpcmVsZXNzIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBMaW1pdGVkLgorCQkJCTIvRiBNOCBXZXN0IE5vLjEgSml1IFhpYW4gUWlhbyBEb25nIFJvYWQsCisJCQkJQ2hhbyBZYW5nIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDE2CisJCQkJQ0hJTkEKKworMDAtMTctMDcgICAoaGV4KQkJSW5HcmlkLCBJbmMKKzAwMTcwNyAgICAgKGJhc2UgMTYpCQlJbkdyaWQsIEluYworCQkJCTkyMCBDYXNzYXR0IFJkCisJCQkJU3VpdGUgMjIwCisJCQkJQmVyd3luIFBhIDE5MzEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0wOCAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAxNzA4ICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0wOSAgIChoZXgpCQlFeGFsdCBDb21tdW5pY2F0aW9ucworMDAxNzA5ICAgICAoYmFzZSAxNikJCUV4YWx0IENvbW11bmljYXRpb25zCisJCQkJNTgwIERpdmlzaW9uIFN0cmVldAorCQkJCUNhbXBiZWxsIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0wQSAgIChoZXgpCQlJTkVXIERJR0lUQUwgQ09NUEFOWQorMDAxNzBBICAgICAoYmFzZSAxNikJCUlORVcgRElHSVRBTCBDT01QQU5ZCisJCQkJU3VwcGx5IEJ1cmVhdSAzdGggZmxvb3IgS1QmRyAyMDMtMSwKKwkJCQlQeW9uZyBjaG9uLWRvbmcsIERhZWRlb2cKKwkJCQlEYWVqZW9uICAzMDYtNzEyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTBCICAgKGhleCkJCUNvbnRlbGEsIEluYy4KKzAwMTcwQiAgICAgKGJhc2UgMTYpCQlDb250ZWxhLCBJbmMuCisJCQkJNi04IFNvb25hZS1kb25nLCBCdW5kYW5nLWd1LAorCQkJCTV0aCBGbG9vciwgS29yZWEgRmlyc3QgQmxkZy4sCisJCQkJU3VuZ25hbSBLeXVuZ2dpLWRvIDQ2My04MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctMEMgICAoaGV4KQkJVHdpZyBDb20gTHRkLiAKKzAwMTcwQyAgICAgKGJhc2UgMTYpCQlUd2lnIENvbSBMdGQuIAorCQkJCU1lcmluaWl0eW5rYXR1IDExCisJCQkJU2FsbyAyNDAwCisJCQkJRklOTEFORAorCiswMC0xNy0wRCAgIChoZXgpCQlEdXN0IE5ldHdvcmtzIEluYy4KKzAwMTcwRCAgICAgKGJhc2UgMTYpCQlEdXN0IE5ldHdvcmtzIEluYy4KKwkJCQkzMDY5NSBIdW50d29vZCBBdmUuCisJCQkJSGF5d2FyZCBDYS4gOTQ1NDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTBFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTcwRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTBGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTcwRiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTEwICAgKGhleCkJCUNhc2EgU3lzdGVtcyBJbmMuCiswMDE3MTAgICAgIChiYXNlIDE2KQkJQ2FzYSBTeXN0ZW1zIEluYy4KKwkJCQkxMCwgTmV3IEVuZ2xhbmQgQnVzaW5lc3MgQ2VudGVyIERyLgorCQkJCVN1aXRlIDExMAorCQkJCUFuZG92ZXIgTUEgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTExICAgKGhleCkJCUdFIEhlYWx0aGNhcmUgQmlvLVNjaWVuY2VzIEFCCiswMDE3MTEgICAgIChiYXNlIDE2KQkJR0UgSGVhbHRoY2FyZSBCaW8tU2NpZW5jZXMgQUIKKwkJCQlCasO2cmtnYXRhbiAzMAorCQkJCVVwcHNhbGEgU0UgNzUxODQKKwkJCQlTV0VERU4KKworMDAtMTctMTIgICAoaGV4KQkJSVNDTyBJbnRlcm5hdGlvbmFsCiswMDE3MTIgICAgIChiYXNlIDE2KQkJSVNDTyBJbnRlcm5hdGlvbmFsCisJCQkJMTAwMSBDYW1icmlkZ2UgRHJpdmUKKwkJCQlFbGsgR3JvdmUgVmlsbGFnZSBJTCA2MDAwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctMTMgICAoaGV4KQkJVGlnZXIgTmV0Q29tCiswMDE3MTMgICAgIChiYXNlIDE2KQkJVGlnZXIgTmV0Q29tCisJCQkJSi0xNSBNdWRhbiBDdW4sIFlpamluZyBIdWF5dWFuLAorCQkJCUFpZ3VvIFJvYWQsIEx1b2h1IERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDMKKwkJCQlDSElOQQorCiswMC0xNy0xNCAgIChoZXgpCQlCUiBDb250cm9scyBOZWRlcmxhbmQgYnYKKzAwMTcxNCAgICAgKGJhc2UgMTYpCQlCUiBDb250cm9scyBOZWRlcmxhbmQgYnYKKwkJCQlCcmFuZGVyd2VnIDEKKwkJCQlad29sbGUgT3Zlcmlqc3NlbCA4MDQyIFBECisJCQkJTkVUSEVSTEFORFMKKworMDAtMTctMTUgICAoaGV4KQkJUXN0aWsKKzAwMTcxNSAgICAgKGJhc2UgMTYpCQlRc3RpaworCQkJCUNhcnRlbCBCdXNpbmVzcyBFc3RhdGUKKwkJCQlFZGluYnVyZ2ggV2F5CisJCQkJSGFybG93IEVzc2V4IENNMjAgMlRUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctMTYgICAoaGV4KQkJUW5vIFRlY2hub2xvZ3kgSW5jLgorMDAxNzE2ICAgICAoYmFzZSAxNikJCVFubyBUZWNobm9sb2d5IEluYy4KKwkJCQk2Ri0yLCBOby4yNSwgUHVkaW5nIFJvYWQKKwkJCQlIc2luY2h1IFRhaXdhbiAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTE3ICAgKGhleCkJCUxlaWNhIEdlb3N5c3RlbXMgQUcKKzAwMTcxNyAgICAgKGJhc2UgMTYpCQlMZWljYSBHZW9zeXN0ZW1zIEFHCisJCQkJSGVpbnJpY2ggV2lsZCBTdHJhc3NlCisJCQkJSGVlcmJydWdnIFN0LiBHYWxsZW4gQ0gtOTQzNQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE3LTE4ICAgKGhleCkJCVZhbnNjbyBFbGVjdHJvbmljcyBPeQorMDAxNzE4ICAgICAoYmFzZSAxNikJCVZhbnNjbyBFbGVjdHJvbmljcyBPeQorCQkJCVRpaWxlbmx5b2phbmthdHUgNQorCQkJCUZPUlNTQSAgMzAxMDEKKwkJCQlGSU5MQU5ECisKKzAwLTE3LTE5ICAgKGhleCkJCUF1ZGlvQ29kZXMgVVNBLCBJbmMKKzAwMTcxOSAgICAgKGJhc2UgMTYpCQlBdWRpb0NvZGVzIFVTQSwgSW5jCisJCQkJMjcgV29ybGQncyBGYWlyIERyaXZlCisJCQkJU29tZXJzZXQgTkogMDg4NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTFBICAgKGhleCkJCVdpbmVnYXJkIENvbXBhbnkKKzAwMTcxQSAgICAgKGJhc2UgMTYpCQlXaW5lZ2FyZCBDb21wYW55CisJCQkJMzAwMCBLaXJrd29vZCBTdHJlZXQKKwkJCQlCdXJsaW5ndG9uIElBIDUyNjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0xQiAgIChoZXgpCQlJbm5vdmF0aW9uIExhYiBDb3JwLgorMDAxNzFCICAgICAoYmFzZSAxNikJCUlubm92YXRpb24gTGFiIENvcnAuCisJCQkJMTJGTC4sIE5vLiAyODUsIFNlYy4gMiwgVGlEaW5nIEJsdmQuLAorCQkJCVRhaXBlaSAgMTE0OTMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTFDICAgKGhleCkJCU5UIE1pY3JvU3lzdGVtcywgSW5jLgorMDAxNzFDICAgICAoYmFzZSAxNikJCU5UIE1pY3JvU3lzdGVtcywgSW5jLgorCQkJCTEtNS0zLTJGIFRhbWFnYXdhZGFpCisJCQkJU2V0YWdheWEgVG9reW8gMTU4LTAwOTYKKwkJCQlKQVBBTgorCiswMC0xNy0xRCAgIChoZXgpCQlESUdJVAorMDAxNzFEICAgICAoYmFzZSAxNikJCURJR0lUCisJCQkJVmlhIFBhc3RldXIgLCAxLzMKKwkJCQlTLlBpZXRybyBNb3NlenpvIE5PVkFSQSAyODA2MAorCQkJCUlUQUxZCisKKzAwLTE3LTFFICAgKGhleCkJCVRoZW8gQmVubmluZyBHbWJIICYgQ28uIEtHCiswMDE3MUUgICAgIChiYXNlIDE2KQkJVGhlbyBCZW5uaW5nIEdtYkggJiBDby4gS0cKKwkJCQlNdWVuc3RlcnN0cmHDg8W4ZSAxMzUtMTM3CisJCQkJQm9jaG9sdCBOUlcgNDYzOTcKKwkJCQlHRVJNQU5ZCisKKzAwLTE3LTFGICAgKGhleCkJCUlNViBDb3Jwb3JhdGlvbgorMDAxNzFGICAgICAoYmFzZSAxNikJCUlNViBDb3Jwb3JhdGlvbgorCQkJCTItNi0xMCBUYWtlamltYQorCQkJCU5pc2hpeW9kb2dhd2Eta3UKKwkJCQlPc2FrYSAgNTU1LTAwMTEKKwkJCQlKQVBBTgorCiswMC0xNy0yMCAgIChoZXgpCQlJbWFnZSBTZW5zaW5nIFN5c3RlbXMsIEluYy4KKzAwMTcyMCAgICAgKGJhc2UgMTYpCQlJbWFnZSBTZW5zaW5nIFN5c3RlbXMsIEluYy4KKwkJCQkxNjAwIFVuaXZlcnNpdHkgQXZlLiBXLgorCQkJCVN1aXRlIDUwMAorCQkJCVN0LiBQYXVsIE1OIDU1MTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0yMSAgIChoZXgpCQlGSVRSRSBTLnAuQS4KKzAwMTcyMSAgICAgKGJhc2UgMTYpCQlGSVRSRSBTLnAuQS4KKwkJCQlWaWEgVmFsc29sZGEsIDE1CisJCQkJTUlMQU4gTUlMQU5PIDIwMTQyCisJCQkJSVRBTFkKKworMDAtMTctMjIgICAoaGV4KQkJSGFuYXplZGVyIEVsZWN0cm9uaWMgR21iSAorMDAxNzIyICAgICAoYmFzZSAxNikJCUhhbmF6ZWRlciBFbGVjdHJvbmljIEdtYkgKKwkJCQlKLk0uIERpbW1lbHN0ciAxMAorCQkJCVJpZWQgaS4gSS4gT2JlcsO2c3RlcnJlaWNoIDQ5MTAKKwkJCQlBVVNUUklBCisKKzAwLTE3LTIzICAgKGhleCkJCVN1bW1pdCBEYXRhIENvbW11bmljYXRpb25zCiswMDE3MjMgICAgIChiYXNlIDE2KQkJU3VtbWl0IERhdGEgQ29tbXVuaWNhdGlvbnMKKwkJCQk1MjYgU291dGggTWFpbiBTdHJlZXQKKwkJCQlTdWl0ZSA4MDUKKwkJCQlBa3JvbiBPaGlvIDQ0MzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0yNCAgIChoZXgpCQlTdHVkZXIgUHJvZmVzc2lvbmFsIEF1ZGlvIEdtYkgKKzAwMTcyNCAgICAgKGJhc2UgMTYpCQlTdHVkZXIgUHJvZmVzc2lvbmFsIEF1ZGlvIEdtYkgKKwkJCQlBbHRoYXJkc3RyYXNzZSAzMAorCQkJCVJlZ2Vuc2RvcmYgWsO8cmljaCBDSC04MTA1CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTctMjUgICAoaGV4KQkJTGlxdWlkIENvbXB1dGluZworMDAxNzI1ICAgICAoYmFzZSAxNikJCUxpcXVpZCBDb21wdXRpbmcKKwkJCQkzNDAgVGVycnkgRm94IERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJT3R0YXdhIE9udGFyaW8gSzJLIDNBMgorCQkJCUNBTkFEQQorCiswMC0xNy0yNiAgIChoZXgpCQltMmMgRWxlY3Ryb25pYyBUZWNobm9sb2d5IEx0ZC4KKzAwMTcyNiAgICAgKGJhc2UgMTYpCQltMmMgRWxlY3Ryb25pYyBUZWNobm9sb2d5IEx0ZC4KKwkJCQkyNDAzLCAyNC9GLCBOYW55YW5nIFBsYXphCisJCQkJNTcgSHVuZyBUbyBSb2FkCisJCQkJS3d1bnRvbmcgSG9uZyBLb25nIDk5OSA5OTkKKwkJCQlDSElOQQorCiswMC0xNy0yNyAgIChoZXgpCQlUaGVybW8gUmFtc2V5IEl0YWxpYSBzLnIubC4KKzAwMTcyNyAgICAgKGJhc2UgMTYpCQlUaGVybW8gUmFtc2V5IEl0YWxpYSBzLnIubC4KKwkJCQlTdHJhZGEgUml2b2x0YW5hIGttIDYvNworCQkJCVJvZGFubyBNaWxhbm8gMjAwOTAKKwkJCQlJVEFMWQorCiswMC0xNy0yOCAgIChoZXgpCQlTZWxleCBDb21tdW5pY2F0aW9ucworMDAxNzI4ICAgICAoYmFzZSAxNikJCVNlbGV4IENvbW11bmljYXRpb25zCisJCQkJVmlhIFBpZXJhZ29zdGluaSA4MAorCQkJCUdlbm92YSAgMTYxNTEKKwkJCQlJVEFMWQorCiswMC0xNy0yOSAgIChoZXgpCQlVYmljb2QgQ28uTFRECiswMDE3MjkgICAgIChiYXNlIDE2KQkJVWJpY29kIENvLkxURAorCQkJCTdGIENodW4tZ2luIEJsZGcsIDUzLTUgV29uaHlvLXJvCisJCQkJWW9uZ3Nhbi1ndQorCQkJCVNlb3VsICAxNDAtNzE5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTJBICAgKGhleCkJCVByb3dhcmUgVGVjaG5vbG9neSBDb3JwLgorMDAxNzJBICAgICAoYmFzZSAxNikJCVByb3dhcmUgVGVjaG5vbG9neSBDb3JwLgorCQkJCTZGbC4sIE5vLiA0LCBBbGxleSAxLCBMYW5lIDIzNSwgUGFvQ2hhbyBSZC4KKwkJCQlIc2luIFRpZW4gQ2l0eSBUYWlwZWkgSHNpZW4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy0yQiAgIChoZXgpCQlHbG9iYWwgVGVjaG5vbG9naWVzIEluYy4KKzAwMTcyQiAgICAgKGJhc2UgMTYpCQlHbG9iYWwgVGVjaG5vbG9naWVzIEluYy4KKwkJCQk0L0YgS2ljb3ggQmxkZy4sMTg4LTUsR3Vyby1Eb25nLEd1cm8tZ3UsCisJCQkJU2VvdWwgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy0yQyAgIChoZXgpCQlUQUVKSU4gSU5GT1RFQ0gKKzAwMTcyQyAgICAgKGJhc2UgMTYpCQlUQUVKSU4gSU5GT1RFQ0gKKwkJCQk2RiBXb29saW0gZS1CaXogQ2VudGVyLCAxNzAtNQorCQkJCUd1cm8tRG9uZywgR3Vyby1HdSwKKwkJCQlTZW91bCAgMTUyLTc2OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy0yRCAgIChoZXgpCQlBeGNlbiBQaG90b25pY3MgQ29ycG9yYXRpb24KKzAwMTcyRCAgICAgKGJhc2UgMTYpCQlBeGNlbiBQaG90b25pY3MgQ29ycG9yYXRpb24KKwkJCQk2RiwgTm8uIDExOSwgQmF1anVuZyBSZC4sCisJCQkJU2hpbmRpYW4gQ2l0eSwgVGFpcGVpICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTJFICAgKGhleCkJCUZYQyBJbmMuCiswMDE3MkUgICAgIChiYXNlIDE2KQkJRlhDIEluYy4KKwkJCQkxMC0xNiA2RiwgTmlob25iYXNoaSBUb21pemF3YS1DaG91LCBDaHVvLWt1CisJCQkJVG9reW8gIDEwMy0wMDA2CisJCQkJSkFQQU4KKworMDAtMTctMkYgICAoaGV4KQkJTmV1TGlvbiBJbmNvcnBvcmF0ZWQKKzAwMTcyRiAgICAgKGJhc2UgMTYpCQlOZXVMaW9uIEluY29ycG9yYXRlZAorCQkJCTE2MDAgT2xkIENvdW50cnkgUm9hZAorCQkJCVBsYWludmlldyBOWSAxMTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctMzAgICAoaGV4KQkJQXV0b21hdGlvbiBFbGVjdHJvbmljcworMDAxNzMwICAgICAoYmFzZSAxNikJCUF1dG9tYXRpb24gRWxlY3Ryb25pY3MKKwkJCQkxMTEgQmlnIEhvcm4gUmQuCisJCQkJQ2FzcGVyIFd5IDgyNjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0zMSAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMTczMSAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQlOby41IFNoaW5nIFllaCBTdHJlZXQsS3dlaSBTaGFuIEhzaWFuZyxUYW95dWFuCisJCQkJVGFpcGVpICAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTMyICAgKGhleCkJCVNjaWVuY2UtVGVjaG5pY2FsIENlbnRlciAiUklTU0EiCiswMDE3MzIgICAgIChiYXNlIDE2KQkJU2NpZW5jZS1UZWNobmljYWwgQ2VudGVyICJSSVNTQSIKKwkJCQlzdC4gQWJyYW10c2V2c2thamEsIGguOQorCQkJCU1vc2NvdyAgMTI4NTcyCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTE3LTMzICAgKGhleCkJCVNGUgorMDAxNzMzICAgICAoYmFzZSAxNikJCVNGUgorCQkJCTQyIFF1YWkgZHUgcG9pbnQgZHUgam91cgorCQkJCUJvdWxvZ25lIEJpbGxhbmNvdXJ0IEhhdXRzIGRlIFNlaW5lIDkyNjU5CisJCQkJRlJBTkNFCisKKzAwLTE3LTM0ICAgKGhleCkJCUFEQyBUZWxlY29tbXVuaWNhdGlvbnMKKzAwMTczNCAgICAgKGJhc2UgMTYpCQlBREMgVGVsZWNvbW11bmljYXRpb25zCisJCQkJNTQxIEUgVHJpbWJsZSBSb2FkICAgIAorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMzQtMTIyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctMzUgICAoaGV4KQkJUFJJVkFURQorMDAxNzM1ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0xNy0zNiAgIChoZXgpCQlpaVRyb24gSW5jLgorMDAxNzM2ICAgICAoYmFzZSAxNikJCWlpVHJvbiBJbmMuCisJCQkJODggTWVyY3kgU3QuCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctMzcgICAoaGV4KQkJSW5kdXN0cmllIERpYWwgRmFjZSBTLnAuQS4KKzAwMTczNyAgICAgKGJhc2UgMTYpCQlJbmR1c3RyaWUgRGlhbCBGYWNlIFMucC5BLgorCQkJCXZpYSBDYW56bywgNAorCQkJCVBlc2NoaWVyYSBCb3Jyb21lbyBNaWxhbm8gMjAwNjgKKwkJCQlJVEFMWQorCiswMC0xNy0zOCAgIChoZXgpCQlJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIE1hY2hpbmVzCiswMDE3MzggICAgIChiYXNlIDE2KQkJSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBNYWNoaW5lcworCQkJCTEgQXpyaWVsaSBDZW50ZXIKKwkJCQlUZWwgQXZpdiAgNjcwMjEKKwkJCQlJU1JBRUwKKworMDAtMTctMzkgICAoaGV4KQkJQnJpZ2h0IEhlYWRwaG9uZSBFbGVjdHJvbmljcyBDb21wYW55CiswMDE3MzkgICAgIChiYXNlIDE2KQkJQnJpZ2h0IEhlYWRwaG9uZSBFbGVjdHJvbmljcyBDb21wYW55CisJCQkJOEYsIDEwOSwgTGkgRGUgU3RyZWV0CisJCQkJQ2h1bmcgSG8gQ2l0eSBUYWlwZWkgQ291bnR5IDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctM0EgICAoaGV4KQkJUmVhY2ggU3lzdGVtcyBJbmMuCiswMDE3M0EgICAgIChiYXNlIDE2KQkJUmVhY2ggU3lzdGVtcyBJbmMuCisJCQkJMTMzMCBCcm9hZHdheQorCQkJCVN1aXRlIDEyMDEKKwkJCQlPYWtsYW5kIENBIDk0NjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0zQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDE3M0IgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0zQyAgIChoZXgpCQlFeHRyZW1lIEVuZ2luZWVyaW5nIFNvbHV0aW9ucworMDAxNzNDICAgICAoYmFzZSAxNikJCUV4dHJlbWUgRW5naW5lZXJpbmcgU29sdXRpb25zCisJCQkJMzIyNSBEZW1pbmcgV2F5CisJCQkJU3VpdGUgMTIwCisJCQkJTWlkZGxldG9uIFdJIDUzNTYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy0zRCAgIChoZXgpCQlOZW9sb2d5CiswMDE3M0QgICAgIChiYXNlIDE2KQkJTmVvbG9neQorCQkJCTEzMDAwIEdyZWdnIFN0cmVldCBTdWl0ZSBBCisJCQkJUG93YXkgQ0EgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTNFICAgKGhleCkJCUxldWNvdHJvbkVxdWlwYW1lbnRvcyBMdGRhLgorMDAxNzNFICAgICAoYmFzZSAxNikJCUxldWNvdHJvbkVxdWlwYW1lbnRvcyBMdGRhLgorCQkJCVJ1YSBKb3JnZSBEaW9uaXNpbyBCYXJib3NhLCAzMTIKKwkJCQlTYW50YSBSaXRhIGRvIFNhcHVjYWkgTWluYXMgR2VyYWlzIDM3LjU0MC0wMDAKKwkJCQlCUkFaSUwKKworMDAtMTctM0YgICAoaGV4KQkJQmVsa2luIENvcnBvcmF0aW9uCiswMDE3M0YgICAgIChiYXNlIDE2KQkJQmVsa2luIENvcnBvcmF0aW9uCisJCQkJNTAxIFcuIFdhbG51dCBTdHJlZXQKKwkJCQlDb21wdG9uIENBIDkwMjIwLTUyMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTQwICAgKGhleCkJCUJsdWJlcmkgR2FtaW5nIFRlY2hub2xvZ2llcyBJbmMKKzAwMTc0MCAgICAgKGJhc2UgMTYpCQlCbHViZXJpIEdhbWluZyBUZWNobm9sb2dpZXMgSW5jCisJCQkJMjEyNSwgcnVlIExldGVuZHJlIFN1aXRlIDQyMAorCQkJCURydW1tb25kdmlsbGUgUXVlYmVjIEoyQyA3RzEKKwkJCQlDQU5BREEKKworMDAtMTctNDEgICAoaGV4KQkJREVGSURFVgorMDAxNzQxICAgICAoYmFzZSAxNikJCURFRklERVYKKwkJCQkyNyBBdmVudWUgZGUgVmVyZHVuCisJCQkJVmFudmVzICA5MjE3MAorCQkJCUZSQU5DRQorCiswMC0xNy00MiAgIChoZXgpCQlGVUpJVFNVIExJTUlURUQKKzAwMTc0MiAgICAgKGJhc2UgMTYpCQlGVUpJVFNVIExJTUlURUQKKwkJCQlNdXNhc2hpLWtvc3VnaSBUb3dlciBQbGFjZSBCbGRnLiw0MDMKKwkJCQlLb3N1Z2ktY2hvIDEtY2hvbWUsTmFrYWhhcmEta3UKKwkJCQlLYXdhc2FraSBLYW5hZ2F3YSAyMTEtODU4OAorCQkJCUpBUEFOCisKKzAwLTE3LTQzICAgKGhleCkJCURlY2sgU3JsCiswMDE3NDMgICAgIChiYXNlIDE2KQkJRGVjayBTcmwKKwkJCQlWaWEgRmFiaW8gRmlsemkgMgorCQkJCU1pbGFuICAyMDEyNAorCQkJCUlUQUxZCisKKzAwLTE3LTQ0ICAgKGhleCkJCUFyYW5lbyBMdGQuCiswMDE3NDQgICAgIChiYXNlIDE2KQkJQXJhbmVvIEx0ZC4KKwkJCQkxMDMgTWVkaW5hdCBIYXllaHVkaW0KKwkJCQlIZXJ6bGl5YSAgNDY3MzMKKwkJCQlJU1JBRUwKKworMDAtMTctNDUgICAoaGV4KQkJSU5OT1RaIENPLiwgTHRkCiswMDE3NDUgICAgIChiYXNlIDE2KQkJSU5OT1RaIENPLiwgTHRkCisJCQkJMTRGLCBQcmltZSBDZW50ZXIgNTQ2LTQgR3V1aS1Eb25nIEt3YW5nZ2luLUd1CisJCQkJU2VvdWwgU2VvdWwgMTQzLTIwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy00NiAgIChoZXgpCQlGcmVlZG9tOSBJbmMuCiswMDE3NDYgICAgIChiYXNlIDE2KQkJRnJlZWRvbTkgSW5jLgorCQkJCTQxNDBCIFNMQURFVklFVyBDUkUuLAorCQkJCVVOSVQgNCwKKwkJCQlNSVNTSVNTQVVHQSwgT250YXJpbyBMNUw2QTEKKwkJCQlDQU5BREEKKworMDAtMTctNDcgICAoaGV4KQkJVHJpbWJsZQorMDAxNzQ3ICAgICAoYmFzZSAxNikJCVRyaW1ibGUKKwkJCQkzNDUgU1cgQXZlcnkgQXZlCisJCQkJQ29ydmFsbGlzIE9SIDk3MzMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy00OCAgIChoZXgpCQlOZW9rb3JvcyBCcmFzaWwgTHRkYQorMDAxNzQ4ICAgICAoYmFzZSAxNikJCU5lb2tvcm9zIEJyYXNpbCBMdGRhCisJCQkJUnVhIDg2LCBudW1lcm8gNTAxLCBTZXRvciBTdWwKKwkJCQlHb2lhbmlhIEdvaWFzIDc0MDgzLTMzMAorCQkJCUJSQVpJTAorCiswMC0xNy00OSAgIChoZXgpCQlIWVVOREFFIFlPTkctTy1TQSBDTy4sTFRECiswMDE3NDkgICAgIChiYXNlIDE2KQkJSFlVTkRBRSBZT05HLU8tU0EgQ08uLExURAorCQkJCTQ0OC0xMCwgSHl1Y2tqYWUgQi9EIFNlb25nbmFlLCBLYW5nZG9uZy1ndQorCQkJCVNlb3VsICAxMzQtODQ3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LTRBICAgKGhleCkJCVNPQ09NRUMKKzAwMTc0QSAgICAgKGJhc2UgMTYpCQlTT0NPTUVDCisJCQkJcnVlIGRlIFdlc3Rob3VzZQorCQkJCUJFTkZFTEQgQ0VERVggIDY3MjM1CisJCQkJRlJBTkNFCisKKzAwLTE3LTRCICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDE3NEIgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTE3LTRDICAgKGhleCkJCU1pbGxpcG9yZQorMDAxNzRDICAgICAoYmFzZSAxNikJCU1pbGxpcG9yZQorCQkJCTEsIHJ1ZSBKYWNxdWVzIE1vbm9kCisJCQkJUm9uZC1wb2ludCBkZXMgU2FuZ2xpZXJzCisJCQkJR3V5YW5jb3VydCAgNzgyODAKKwkJCQlGUkFOQ0UKKworMDAtMTctNEQgICAoaGV4KQkJRFlOQU1JQyBORVRXT1JLIEZBQ1RPUlksIElOQy4KKzAwMTc0RCAgICAgKGJhc2UgMTYpCQlEWU5BTUlDIE5FVFdPUksgRkFDVE9SWSwgSU5DLgorCQkJCTI2MjUwIEVERU4gTEFORElORyBSRC4KKwkJCQlIQVlXQVJEIENBIDk0NTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy00RSAgIChoZXgpCQlQYXJhbWEtdGVjaCBDby4sTHRkLgorMDAxNzRFICAgICAoYmFzZSAxNikJCVBhcmFtYS10ZWNoIENvLixMdGQuCisJCQkJMi0xOS04LCBTaGFyeW8sIEhpZ2FzaGkta3UKKwkJCQlGdWt1b2thICA4MTItMDA2OAorCQkJCUpBUEFOCisKKzAwLTE3LTRGICAgKGhleCkJCWlDYXRjaCBJbmMuCiswMDE3NEYgICAgIChiYXNlIDE2KQkJaUNhdGNoIEluYy4KKwkJCQkxMEYtMiwgTm8uIDEwOSwgU2VjLiA2LCBNaW5jeXVhbiBFLiBSZC4sCisJCQkJTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctNTAgICAoaGV4KQkJR1NJIEdyb3VwLCBNaWNyb0UgU3lzdGVtcworMDAxNzUwICAgICAoYmFzZSAxNikJCUdTSSBHcm91cCwgTWljcm9FIFN5c3RlbXMKKwkJCQk4IEVyaWUgRHJpdmUKKwkJCQlOYXRpY2sgTUEgMDE3NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTUxICAgKGhleCkJCU9ubGluZSBDb3Jwb3JhdGlvbgorMDAxNzUxICAgICAoYmFzZSAxNikJCU9ubGluZSBDb3Jwb3JhdGlvbgorCQkJCTIyRi0zLCBOby4gMzk4LCBIdWFuIFBlaSBSb2FkLAorCQkJCUNodW5nIExpIFRhb3l1YW4gMzIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy01MiAgIChoZXgpCQlEQUdTLCBJbmMKKzAwMTc1MiAgICAgKGJhc2UgMTYpCQlEQUdTLCBJbmMKKwkJCQlDLTUxMCwgV29vbGltIExpb24ncyBWYWxsZXksIDM3MS0yOCwgR2FzYW4gRG9uZywgR2V1bWNoZW9uIEt1CisJCQkJU2VvdWwgIDE1My03ODYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctNTMgICAoaGV4KQkJbkZvcmUgVGVjaG5vbG9neSBJbmMuCiswMDE3NTMgICAgIChiYXNlIDE2KQkJbkZvcmUgVGVjaG5vbG9neSBJbmMuCisJCQkJMTBGLCA0MSBEb25nIFhpbmcgUmQsCisJCQkJVGFpcGVpIFRhaXBlaSAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTU0ICAgKGhleCkJCUFya2lubyBIaVRPUCBDb3Jwb3JhdGlvbiBMaW1pdGVkCiswMDE3NTQgICAgIChiYXNlIDE2KQkJQXJraW5vIEhpVE9QIENvcnBvcmF0aW9uIExpbWl0ZWQKKwkJCQkzRi4sIE5vLjgsIFNpbmdodWEgUmQuCisJCQkJS3dlaSBTaGFuIEluZC4gUGFyaworCQkJCVRhb3l1YW4gQ2l0eSBUYW95dWFuIENvdW50eSAgMzMwNjgsCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy01NSAgIChoZXgpCQlHRSBTZWN1cml0eQorMDAxNzU1ICAgICAoYmFzZSAxNikJCUdFIFNlY3VyaXR5CisJCQkJMTIzNDUgU1cgTGV2ZXRvbiBEcml2ZQorCQkJCVR1YWxhdGluIE9SIDk3MDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy01NiAgIChoZXgpCQlWaW5jaSBMYWJzIE95CiswMDE3NTYgICAgIChiYXNlIDE2KQkJVmluY2kgTGFicyBPeQorCQkJCUZpbmxheXNvbmlua3VqYSAyMSBBCisJCQkJVGFtcGVyZSBMw6Ruc2ktU3VvbWkgMzMyMTAKKwkJCQlGSU5MQU5ECisKKzAwLTE3LTU3ICAgKGhleCkJCVJJWCBURUNITk9MT0dZIExJTUlURUQKKzAwMTc1NyAgICAgKGJhc2UgMTYpCQlSSVggVEVDSE5PTE9HWSBMSU1JVEVECisJCQkJMTcgREFJIFdBTkcgU1RSRUVUCisJCQkJVEFJIFBPIElORFVTVFJJQUwgRVNUQVRFCisJCQkJVEFJIFBPIE5FVyBURVJSSVRPUklFUyAKKwkJCQlIT05HIEtPTkcKKworMDAtMTctNTggICAoaGV4KQkJVGhydVZpc2lvbiBMdGQKKzAwMTc1OCAgICAgKGJhc2UgMTYpCQlUaHJ1VmlzaW9uIEx0ZAorCQkJCUNlbnRyYWwgMTI3LCBOby4xOAorCQkJCU1pbHRvbiBQYXJrCisJCQkJQWJpbmdkb24gT3hmb3Jkc2hpcmUgT1gxNCA0U0EKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNy01OSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3NTkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy01QSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3NUEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy01QiAgIChoZXgpCQlBQ1MgU29sdXRpb25zIFN3aXR6ZXJsYW5kIEx0ZC4KKzAwMTc1QiAgICAgKGJhc2UgMTYpCQlBQ1MgU29sdXRpb25zIFN3aXR6ZXJsYW5kIEx0ZC4KKwkJCQlGcmFua2Vuc3RyYXNzZSA3MAorCQkJCUJlcm4tIEJ1ZW1wbGl6ICAzMDE4CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTctNUMgICAoaGV4KQkJU0hBUlAgQ09SUE9SQVRJT04KKzAwMTc1QyAgICAgKGJhc2UgMTYpCQlTSEFSUCBDT1JQT1JBVElPTgorCQkJCTIyLTIyLCBOQUdBSUtFLUNITywKKwkJCQlBQkVOTy1LVQorCQkJCU9TQUtBICA1NDUtODUyMgorCQkJCUpBUEFOCisKKzAwLTE3LTVEICAgKGhleCkJCURvbmdzZW8gc3lzdGVtLgorMDAxNzVEICAgICAoYmFzZSAxNikJCURvbmdzZW8gc3lzdGVtLgorCQkJCTk3NC0yMSBNYW5zdS1kb25nIE5hbWRvbmctZ3UKKwkJCQlJbmNoZW9uIEluLUNoZW9uIDQwNS04NjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctNUUgICAoaGV4KQkJWmVkLTMKKzAwMTc1RSAgICAgKGJhc2UgMTYpCQlaZWQtMworCQkJCTUwMSBWYWxsZXkgV2F5CisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTVGICAgKGhleCkJCVhFTk9MSU5LIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorMDAxNzVGICAgICAoYmFzZSAxNikJCVhFTk9MSU5LIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorCQkJCTJuZCBGbC4sIEp1bmd5b3UgQi9EIDc5Ny0yMgorCQkJCVllb2tzYW0tZG9uZyBHYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS05MzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctNjAgICAoaGV4KQkJTmFpdG8gRGVuc2VpIE1hY2hpZGEgTUZHLkNPLixMVEQKKzAwMTc2MCAgICAgKGJhc2UgMTYpCQlOYWl0byBEZW5zZWkgTWFjaGlkYSBNRkcuQ08uLExURAorCQkJCTItMTctMjggRnVjaGlub2JlCisJCQkJU2FnYW1paGFyYSBLYW5hZ2F3YSAyMjktMDAwNgorCQkJCUpBUEFOCisKKzAwLTE3LTYxICAgKGhleCkJCVpLU29mdHdhcmUgSW5jLgorMDAxNzYxICAgICAoYmFzZSAxNikJCVpLU29mdHdhcmUgSW5jLgorCQkJCVhpbndlaXphaSwgQmFudGlhbiwgTG9uZ2dhbmcgZGlzdHJpY3QsU2hlbnpoZW4gQ2hpbmEgNTE4MTI5CisJCQkJQ0hJTkEKKworMDAtMTctNjIgICAoaGV4KQkJU29sYXIgVGVjaG5vbG9neSwgSW5jLgorMDAxNzYyICAgICAoYmFzZSAxNikJCVNvbGFyIFRlY2hub2xvZ3ksIEluYy4KKwkJCQk3NjIwIENldHJvbmlhIFJvYWQKKwkJCQlBbGxlbnRvd24gUEEgMTgxMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTYzICAgKGhleCkJCUVzc2VudGlhIFMucC5BLgorMDAxNzYzICAgICAoYmFzZSAxNikJCUVzc2VudGlhIFMucC5BLgorCQkJCVZpYSBHLkIuIFZpY28sIDI5CisJCQkJQ2VsbGEgKFJFKSBSZWdnaW8gRW1pbGlhIDQyMDQwCisJCQkJSVRBTFkKKworMDAtMTctNjQgICAoaGV4KQkJQVRNZWRpYSBHbWJICiswMDE3NjQgICAgIChiYXNlIDE2KQkJQVRNZWRpYSBHbWJICisJCQkJU3R1aGxzYXR6ZW5oYXVzd2VnIDY5CisJCQkJU2FhcmJydWVja2VuIFNhYXJsYW5kIDY2MTIzCisJCQkJR0VSTUFOWQorCiswMC0xNy02NSAgIChoZXgpCQlOb3J0ZWwKKzAwMTc2NSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTctNjYgICAoaGV4KQkJQWNjZW5zZSBUZWNobm9sb2d5LCBJbmMuCiswMDE3NjYgICAgIChiYXNlIDE2KQkJQWNjZW5zZSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMzUgVGFuc3VtYWNoaQorCQkJCVNoaW5qeXVrdS1rdSBUb2t5byAxNjIwODMzCisJCQkJSkFQQU4KKworMDAtMTctNjcgICAoaGV4KQkJRWFyZm9yY2UgQVMKKzAwMTc2NyAgICAgKGJhc2UgMTYpCQlFYXJmb3JjZSBBUworCQkJCVAuTy5Cb3ggNAorCQkJCUJyeW5lICA0MzQ5CisJCQkJTk9SV0FZCisKKzAwLTE3LTY4ICAgKGhleCkJCVppbndhdmUgTHRkCiswMDE3NjggICAgIChiYXNlIDE2KQkJWmlud2F2ZSBMdGQKKwkJCQlaaW53YXZlIEx0ZCwgSGFyc3RvbiBNaWxsCisJCQkJSGFyc3RvbgorCQkJCUNhbWJyaWRnZSBDYW1icmlkZ2VzaGlyZSBDQjIgNUdHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctNjkgICAoaGV4KQkJQ3ltcGhvbml4IENvcnAKKzAwMTc2OSAgICAgKGJhc2UgMTYpCQlDeW1waG9uaXggQ29ycAorCQkJCTg4NzEgUy4gU2FuZHkgUGFya3dheSwgU3VpdGUgMTUwCisJCQkJU2FuZHkgVVQgODQwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTZBICAgKGhleCkJCUF2YWdvIFRlY2hub2xvZ2llcworMDAxNzZBICAgICAoYmFzZSAxNikJCUF2YWdvIFRlY2hub2xvZ2llcworCQkJCTM1MCBXZXN0IFRyaW1ibGUgUmQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctNkIgICAoaGV4KQkJS2l5b24sIEluYy4KKzAwMTc2QiAgICAgKGJhc2UgMTYpCQlLaXlvbiwgSW5jLgorCQkJCTkzODEgSnVkaWNpYWwgRHJpdmUKKwkJCQlTdWl0ZSAxNjAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTZDICAgKGhleCkJCVBpdm90MywgSW5jLgorMDAxNzZDICAgICAoYmFzZSAxNikJCVBpdm90MywgSW5jLgorCQkJCTY2MDUgQ3lwcmVzc3dvb2QgRHJpdmUsIFN0ZSAzNTAKKwkJCQlTcHJpbmcgVFggNzczNzktNzc0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctNkQgICAoaGV4KQkJQ09SRSBDT1JQT1JBVElPTgorMDAxNzZEICAgICAoYmFzZSAxNikJCUNPUkUgQ09SUE9SQVRJT04KKwkJCQkxLTIyLTMsIFNhbmdlbmpheWEsCisJCQkJU2V0YWdheWEta3UgVG9reW8tdG8gMTU0LTg1NTIKKwkJCQlKQVBBTgorCiswMC0xNy02RSAgIChoZXgpCQlEVUNBVEkgU0lTVEVNSQorMDAxNzZFICAgICAoYmFzZSAxNikJCURVQ0FUSSBTSVNURU1JCisJCQkJVklBIE1BUkNPIEVNSUxJTyBMRVBJRE8sIDE4MgorCQkJCUJPTE9HTkEgIDQwMTMyCisJCQkJSVRBTFkKKworMDAtMTctNkYgICAoaGV4KQkJUEFYIENvbXB1dGVyIFRlY2hub2xvZ3koU2hlbnpoZW4pIEx0ZC4KKzAwMTc2RiAgICAgKGJhc2UgMTYpCQlQQVggQ29tcHV0ZXIgVGVjaG5vbG9neShTaGVuemhlbikgTHRkLgorCQkJCTQvRiwgTm8uMyBCdWlsZGluZywgU29mdHdhcmUgUGFyaywgU2Vjb25kIENlbnRyYWwgU2NpZW5jZS1UZWNoIFJvYWQsIEhpZ2gtVGVjaAorCQkJCWluZHVzdHJpYWwgUGFyaworCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xNy03MCAgIChoZXgpCQlBcnRpIEluZHVzdHJpYWwgRWxlY3Ryb25pY3MgTHRkLgorMDAxNzcwICAgICAoYmFzZSAxNikJCUFydGkgSW5kdXN0cmlhbCBFbGVjdHJvbmljcyBMdGQuCisJCQkJR2VyLVNhbiBTaXRlc2ksIDY1Ny4gU29rYWsKKwkJCQlObzogODAsIEVyZ2F6aQorCQkJCUFua2FyYSBUUiAwNjM3MAorCQkJCVRVUktFWQorCiswMC0xNy03MSAgIChoZXgpCQlBUEQgQ29tbXVuaWNhdGlvbnMgTHRkCiswMDE3NzEgICAgIChiYXNlIDE2KQkJQVBEIENvbW11bmljYXRpb25zIEx0ZAorCQkJCU5ld2xhbmRzIENlbnRyZQorCQkJCUluZ2xlbWlyZSBMYW5lCisJCQkJSFVMTCBFYXN0IFlvcmtzaGlyZSBIVTYgN1RRCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctNzIgICAoaGV4KQkJQVNUUk8gU3Ryb2JlbCBLb21tdW5pa2F0aW9uc3N5c3RlbWUgR21iSAorMDAxNzcyICAgICAoYmFzZSAxNikJCUFTVFJPIFN0cm9iZWwgS29tbXVuaWthdGlvbnNzeXN0ZW1lIEdtYkgKKwkJCQlPbGVmYW50IDEtMworCQkJCUJlcmdpc2NoIEdsYWRiYWNoIE5SVyA1MTQyNworCQkJCUdFUk1BTlkKKworMDAtMTctNzMgICAoaGV4KQkJTGFrZXR1bmUgVGVjaG5vbG9naWVzIENvLiBMdGQKKzAwMTc3MyAgICAgKGJhc2UgMTYpCQlMYWtldHVuZSBUZWNobm9sb2dpZXMgQ28uIEx0ZAorCQkJCU5vLiAzOCBaaWppbmdodWEgUmQuIFdlc3RsYWtlIERpc3RyaWN0CisJCQkJR3VkYW5nIEluZHVzdHJpYWwgWm9uZSBCdWlsZGluZyAxMSwgNUYKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwMTMKKwkJCQlDSElOQQorCiswMC0xNy03NCAgIChoZXgpCQlFbGVzdGEgR21iSAorMDAxNzc0ICAgICAoYmFzZSAxNikJCUVsZXN0YSBHbWJICisJCQkJR290dGxpZWIgRGFpbWxlciBTdHJhc3NlIDEKKwkJCQlLb25zdGFueiAgNzg0NjcKKwkJCQlHRVJNQU5ZCisKKzAwLTE3LTc1ICAgKGhleCkJCVRURSBHZXJtYW55IEdtYkgKKzAwMTc3NSAgICAgKGJhc2UgMTYpCQlUVEUgR2VybWFueSBHbWJICisJCQkJSGVybWFubi1TY2h3ZXItU3RyLiAzCisJCQkJVmlsbGluZ2VuLVNjaHdlbm5pbmdlbiBCYWRlbi1Xw7xydHRlbWJlcmcgNzgwNDgKKwkJCQlHRVJNQU5ZCisKKzAwLTE3LTc2ICAgKGhleCkJCU1lc28gU2NhbGUgRGlhZ25vc3RpY3MsIExMQworMDAxNzc2ICAgICAoYmFzZSAxNikJCU1lc28gU2NhbGUgRGlhZ25vc3RpY3MsIExMQworCQkJCTkyMzggR2FpdGhlciBSZC4KKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTc3ICAgKGhleCkJCU9ic2lkaWFuIFJlc2VhcmNoIENvcnBvcmF0aW9uCiswMDE3NzcgICAgIChiYXNlIDE2KQkJT2JzaWRpYW4gUmVzZWFyY2ggQ29ycG9yYXRpb24KKwkJCQlFZG1vbnRvbiBSZXNlYXJjaCBQYXJrCisJCQkJU3VpdGUgMTA2ICAgOTY1MC0yMCBBdmUKKwkJCQlFZG1vbnRvbiBBbGJlcnRhIFQ2TjFHMQorCQkJCUNBTkFEQQorCiswMC0xNy03OCAgIChoZXgpCQlDZW50cmFsIE11c2ljIENvLgorMDAxNzc4ICAgICAoYmFzZSAxNikJCUNlbnRyYWwgTXVzaWMgQ28uCisJCQkJMDcxMS0wNzEyIFRvd2VyIEQsIFNPSE8gTmV3IFRvd24KKwkJCQlOby4gODggSmlhbmd1byBSb2FkLCBDaGFveWFuZyBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDAyMgorCQkJCUNISU5BCisKKzAwLTE3LTc5ICAgKGhleCkJCVF1aWNrVGVsCiswMDE3NzkgICAgIChiYXNlIDE2KQkJUXVpY2tUZWwKKwkJCQlDb3JuaXNoZSBFbC1OaWxlLCBNYWFzYXJhCisJCQkJQ2Fpcm8gIDExNzQzCisJCQkJRUdZUFQKKworMDAtMTctN0EgICAoaGV4KQkJQVNTQSBBQkxPWSBBQgorMDAxNzdBICAgICAoYmFzZSAxNikJCUFTU0EgQUJMT1kgQUIKKwkJCQlUaGVyZXMgU3ZlbnNzb25zIGdhdGEgMTUKKwkJCQk0MTc1NSBHb3RlYm9yZworCQkJCUdvdGVib3JnICA0MTc1NQorCQkJCVNXRURFTgorCiswMC0xNy03QiAgIChoZXgpCQlBemFsZWEgTmV0d29ya3MgaW5jCiswMDE3N0IgICAgIChiYXNlIDE2KQkJQXphbGVhIE5ldHdvcmtzIGluYworCQkJCTY3MyBTIE1pbHBpdGFzIEJsdmQKKwkJCQlTdWl0ZSAxMDUKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctN0MgICAoaGV4KQkJU21hcnRsaW5rIE5ldHdvcmsgU3lzdGVtcyBMaW1pdGVkCiswMDE3N0MgICAgIChiYXNlIDE2KQkJU21hcnRsaW5rIE5ldHdvcmsgU3lzdGVtcyBMaW1pdGVkCisJCQkJTC03LCBWZXJuYSBFbGVjdHJvbmljIGNpdHkKKwkJCQlWZXJuYQorCQkJCU5hZ29hIEdvYSA0MDMgNzIyCisJCQkJSU5ESUEKKworMDAtMTctN0QgICAoaGV4KQkJSURUIEludGVybmF0aW9uYWwgTGltaXRlZAorMDAxNzdEICAgICAoYmFzZSAxNikJCUlEVCBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKwkJCQlCbG9jayBDLCA5L0YsIEthaXNlciBFc3RhdGUsIFBoYXNlIEkKKwkJCQk0MSBNYW4gWXVlIFN0cmVldCwgSHVuZ2hvbSwgS293bG9vbgorCQkJCUhPTkcgS09ORworCiswMC0xNy03RSAgIChoZXgpCQlNZXNoY29tIFRlY2hub2xvZ2llcyBJbmMuCiswMDE3N0UgICAgIChiYXNlIDE2KQkJTWVzaGNvbSBUZWNobm9sb2dpZXMgSW5jLgorCQkJCU1lcml0dWxsaW5rYXR1IDEgQworCQkJCUhlbHNpbmtpICAwMDE3MAorCQkJCUZJTkxBTkQKKworMDAtMTctN0YgICAoaGV4KQkJV29ybGRzbWFydCBSZXRlY2gKKzAwMTc3RiAgICAgKGJhc2UgMTYpCQlXb3JsZHNtYXJ0IFJldGVjaAorCQkJCTIzIEhpLVRlY2ggQ291cnQKKwkJCQlFaWdodCBNaWxlIFBsYWlucyBRTEQgNDExMworCQkJCUFVU1RSQUxJQQorCiswMC0xNy04MCAgIChoZXgpCQlBcHBsaWVkIEJpb3N5c3RlbXMgQi5WLgorMDAxNzgwICAgICAoYmFzZSAxNikJCUFwcGxpZWQgQmlvc3lzdGVtcyBCLlYuCisJCQkJQmxrIDMzLCBNYXJzaWxpbmcgSW5kdXN0cmlhbCBFc3RhdGUgUm9hZCAzLAorCQkJCSMwNS0wMworCQkJCTczOTI1NgorCQkJCVNJTkdBUE9SRQorCiswMC0xNy04MSAgIChoZXgpCQlHcmV5c3RvbmUgRGF0YSBTeXN0ZW0sIEluYy4KKzAwMTc4MSAgICAgKGJhc2UgMTYpCQlHcmV5c3RvbmUgRGF0YSBTeXN0ZW0sIEluYy4KKwkJCQk0MDgwMCBFbmN5Y29wZWRpYSBDaXJjbGUKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy04MiAgIChoZXgpCQlMb0Jlbm4gSW5jLgorMDAxNzgyICAgICAoYmFzZSAxNikJCUxvQmVubiBJbmMuCisJCQkJMTUwIEthdGltYXZpayBSb2FkCisJCQkJU3VpdGUgMjAyCisJCQkJT3R0YXdhIE9udGFyaW8gSzJMIDJOMgorCQkJCUNBTkFEQQorCiswMC0xNy04MyAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxNzgzICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy04NCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxNzg0ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4uIEh3eSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctODUgICAoaGV4KQkJU3BhcnIgRWxlY3Ryb25pY3MgTHRkCiswMDE3ODUgICAgIChiYXNlIDE2KQkJU3BhcnIgRWxlY3Ryb25pY3MgTHRkCisJCQkJU3BhcnIgRWxlY3Ryb25pY3MgTHRkCisJCQkJNDMgSE1UIE1haW4gUm9hZCBNYXRoaWtlcmUKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MDA1NAorCQkJCUlORElBCisKKzAwLTE3LTg2ICAgKGhleCkJCXdpc2VtYmVkCiswMDE3ODYgICAgIChiYXNlIDE2KQkJd2lzZW1iZWQKKwkJCQk4MDgsIGhhbnNpbiBJVCB0b3dlciwgMjM1IGd1cm8zLWRvbmcsIGd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTc2OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy04NyAgIChoZXgpCQlCcm90aGVyLCBCcm90aGVyICYgU29ucyBBcFMKKzAwMTc4NyAgICAgKGJhc2UgMTYpCQlCcm90aGVyLCBCcm90aGVyICYgU29ucyBBcFMKKwkJCQlWZWQgQW1hZ2VyYmFuZW4gOQorCQkJCUNvcGVuaGFnZW4gUyAgREstMjMwMAorCQkJCURFTk1BUksKKworMDAtMTctODggICAoaGV4KQkJUGhpbGlwcyBMaWdodGluZyBCVgorMDAxNzg4ICAgICAoYmFzZSAxNikJCVBoaWxpcHMgTGlnaHRpbmcgQlYKKwkJCQlNYXRoaWxkZWxhYW4gMQorCQkJCUVpbmRob3ZlbiBOb29yZCBCcmFiYW50IDU2MTEgQkQKKwkJCQlORVRIRVJMQU5EUworCiswMC0xNy04OSAgIChoZXgpCQlaZW5pdHJvbiBDb3Jwb3JhdGlvbgorMDAxNzg5ICAgICAoYmFzZSAxNikJCVplbml0cm9uIENvcnBvcmF0aW9uCisJCQkJTm8uIDgsIExhbmUgMjUwLCBTaW5odSAybmQgUmQuLCBOZWlodSBEaXN0cmljdCwKKwkJCQlUYWlwZWkgIDExNDk0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy04QSAgIChoZXgpCQlEQVJUUyBURUNITk9MT0dJRVMgQ09SUC4KKzAwMTc4QSAgICAgKGJhc2UgMTYpCQlEQVJUUyBURUNITk9MT0dJRVMgQ09SUC4KKwkJCQkyRixOby4xMTksQ2hpZW4gS2FuZyBSZC4sCisJCQkJQ2h1bmctSG8gVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctOEIgICAoaGV4KQkJVGVsZWR5bmUgVGVjaG5vbG9naWVzIEluY29ycG9yYXRlZAorMDAxNzhCICAgICAoYmFzZSAxNikJCVRlbGVkeW5lIFRlY2hub2xvZ2llcyBJbmNvcnBvcmF0ZWQKKwkJCQkxMjMzMyBXZXN0IE9seW1waWMgQmx2ZAorCQkJCUxvcyBBbmdlbGVzIENBIDkwMDY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy04QyAgIChoZXgpCQlJbmRlcGVuZGVudCBXaXRuZXNzLCBJbmMKKzAwMTc4QyAgICAgKGJhc2UgMTYpCQlJbmRlcGVuZGVudCBXaXRuZXNzLCBJbmMKKwkJCQkxNTE1IFdlc3QgMjIwMCBTb3V0aAorCQkJCVN1aXRlIEUKKwkJCQlTYWx0IExha2UgQ2l0eSBVVCA4NDExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctOEQgICAoaGV4KQkJQ2hlY2twb2ludCBTeXN0ZW1zLCBJbmMuCiswMDE3OEQgICAgIChiYXNlIDE2KQkJQ2hlY2twb2ludCBTeXN0ZW1zLCBJbmMuCisJCQkJMTAxIFdvbGYgRHJpdmUKKwkJCQlUaG9yb2ZhcmUgTkogMDgwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LThFICAgKGhleCkJCUd1bm5lYm8gQ2FzaCBBdXRvbWF0aW9uIEFCCiswMDE3OEUgICAgIChiYXNlIDE2KQkJR3VubmVibyBDYXNoIEF1dG9tYXRpb24gQUIKKwkJCQlGYWJyaWtzZ2F0YW4gMTAKKwkJCQlHw7Z0ZWJvcmcgIDQwMiAyNworCQkJCVNXRURFTgorCiswMC0xNy04RiAgIChoZXgpCQlOSU5HQk8gWUlET05HIEVMRUNUUk9OSUMgQ08uLExURC4KKzAwMTc4RiAgICAgKGJhc2UgMTYpCQlOSU5HQk8gWUlET05HIEVMRUNUUk9OSUMgQ08uLExURC4KKwkJCQlOby42NSBTaW1pbmcgRWFzdCBSZAorCQkJCVl1eWFvIENpdHksIFpoZWppYW5nIFByb3ZpbmNlIFpoZWppYW5nIFByb3ZpbmNlIENoaW5hIFAuQyAzMTU0MDAKKwkJCQlDSElOQQorCiswMC0xNy05MCAgIChoZXgpCQlIWVVOREFJIERJR0lURUNIIENvLCBMdGQuCiswMDE3OTAgICAgIChiYXNlIDE2KQkJSFlVTkRBSSBESUdJVEVDSCBDbywgTHRkLgorCQkJCTEzdGggRmwsIENob3VuZy1KaW4gQmxkZywgNTMtNQorCQkJCVdvbmh5by1ybyAzR2EsIFlvbmdzYW4tR3UKKwkJCQlTZW91bCAgMTQwLTcxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy05MSAgIChoZXgpCQlMaW5UZWNoIEdtYkgKKzAwMTc5MSAgICAgKGJhc2UgMTYpCQlMaW5UZWNoIEdtYkgKKwkJCQlGcmllZHJpY2gtRW5nZWxzLVN0ci4gMzUKKwkJCQlCZXJsaW4gIDEzMTU2CisJCQkJR0VSTUFOWQorCiswMC0xNy05MiAgIChoZXgpCQlGYWxjb20gV2lyZWxlc3MgQ29tdW5pY2F0aW9ucyBHbWJoCiswMDE3OTIgICAgIChiYXNlIDE2KQkJRmFsY29tIFdpcmVsZXNzIENvbXVuaWNhdGlvbnMgR21iaAorCQkJCUdld2VyYmVyaW5nIDYKKwkJCQlMYW5nZXdpZXNlbiBUaHVyaW5naWEgOTg3MDQKKwkJCQlHRVJNQU5ZCisKKzAwLTE3LTkzICAgKGhleCkJCVRpZ2kgQ29ycG9yYXRpb24KKzAwMTc5MyAgICAgKGJhc2UgMTYpCQlUaWdpIENvcnBvcmF0aW9uCisJCQkJMjA3MCBDaGFpbiBCcmlkZ2Ugcm9hZAorCQkJCVN1aXRlIEctMTAwCisJCQkJVmllbm5hIFZhIDIyMTgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy05NCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3OTQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy05NSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3OTUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy05NiAgIChoZXgpCQlSaXR0bWV5ZXIgQUcKKzAwMTc5NiAgICAgKGJhc2UgMTYpCQlSaXR0bWV5ZXIgQUcKKwkJCQlJbndpbGVycmllZHN0cmFzc2UgNTcKKwkJCQlQb3N0ZmFjaCA0NjQKKwkJCQlCYWFyIFpHIENILTYzNDEKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xNy05NyAgIChoZXgpCQlUZWxzeSBFbGV0dHJvbmljYSBTLnAuQS4KKzAwMTc5NyAgICAgKGJhc2UgMTYpCQlUZWxzeSBFbGV0dHJvbmljYSBTLnAuQS4KKwkJCQlDb3JzbyBTdml6emVyYSAxODUKKwkJCQlUb3Jpbm8gIDEwMTQ5CisJCQkJSVRBTFkKKworMDAtMTctOTggICAoaGV4KQkJQXpvbmljIFRlY2hub2xvZ3kgQ28uLCBMVEQKKzAwMTc5OCAgICAgKGJhc2UgMTYpCQlBem9uaWMgVGVjaG5vbG9neSBDby4sIExURAorCQkJCTE1Ri0zLCBOby4gMTYzLCBTZWMuLCAxIEtlZWx1bmcgUmQuCisJCQkJVGFpcGVpICAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTk5ICAgKGhleCkJCVNtYXJUaXJlIFN5c3RlbXMgSW5jLgorMDAxNzk5ICAgICAoYmFzZSAxNikJCVNtYXJUaXJlIFN5c3RlbXMgSW5jLgorCQkJCVN1aXRlIDE1MAorCQkJCTEzMTUxIFZhbmllciBQbGFjZQorCQkJCVJpY2htb25kIEJDIFY2ViAySjEKKwkJCQlDQU5BREEKKworMDAtMTctOUEgICAoaGV4KQkJRC1MaW5rIENvcnBvcmF0aW9uCiswMDE3OUEgICAgIChiYXNlIDE2KQkJRC1MaW5rIENvcnBvcmF0aW9uCisJCQkJTm8uIDI4OSwgU2luaHUgM3JkIFJkLiwgTmVpaHUgRGlzdHJpY3QsCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LTlCICAgKGhleCkJCUNoYW50IFNpbmNlcmUgQ08uLCBMVEQuCiswMDE3OUIgICAgIChiYXNlIDE2KQkJQ2hhbnQgU2luY2VyZSBDTy4sIExURC4KKwkJCQk3Ri0yLE5PLjE4OCxTZWMgMyxUYSBUdW5nIFJvb2QsCisJCQkJSHNpIENoaWggQ2l0eSBUYWlwZWkgSHNpZW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy05QyAgIChoZXgpCQlERVBSQUcgU0NIVUxaIEdNQkggdS4gQ08uCiswMDE3OUMgICAgIChiYXNlIDE2KQkJREVQUkFHIFNDSFVMWiBHTUJIIHUuIENPLgorCQkJCUt1cmbDvHJzdGVucmluZyAxMi4xOAorCQkJCUFtYmVyZyBCYXllcm4gOTIyMjQKKwkJCQlHRVJNQU5ZCisKKzAwLTE3LTlEICAgKGhleCkJCUtlbG1hbiBMaW1pdGVkCiswMDE3OUQgICAgIChiYXNlIDE2KQkJS2VsbWFuIExpbWl0ZWQKKwkJCQlSYXRoZG93biBDbG9zZQorCQkJCUxpc3N1ZSBFYXN0IEluZHVzdHJpYWwgRXN0YXRlCisJCQkJTGlzYnVybiBDby4gQW50cmltIEJUMjggMlJCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctOUUgICAoaGV4KQkJU2lyaXQgSW5jCiswMDE3OUUgICAgIChiYXNlIDE2KQkJU2lyaXQgSW5jCisJCQkJMjUyNSBNZXJpZGlhbiBQYXJrd2F5CisJCQkJU3VpdGUgNjAKKwkJCQlEdXJoYW0gTkMgMjc3MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LTlGICAgKGhleCkJCUFwcmljb3JuCiswMDE3OUYgICAgIChiYXNlIDE2KQkJQXByaWNvcm4KKwkJCQkxMjE5MSBLaXJraGFtIFJECisJCQkJUG93YXkgQ2FsaWZvcm5pYSA5MjA2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctQTAgICAoaGV4KQkJUm9ib1RlY2ggc3JsCiswMDE3QTAgICAgIChiYXNlIDE2KQkJUm9ib1RlY2ggc3JsCisJCQkJVmlhIE1henppbmkgODIKKwkJCQlTYXJ6YW5hIChTUCkgIEktMTkwMzgKKwkJCQlJVEFMWQorCiswMC0xNy1BMSAgIChoZXgpCQkzc29mdCBpbmMuCiswMDE3QTEgICAgIChiYXNlIDE2KQkJM3NvZnQgaW5jLgorCQkJCXNoaW55b3VuZyBibGRnIDRmLCBjaHVuZ2RhbS1kb25nLCBnYW5nbmFtLWd1CisJCQkJc2VvdWwgIDEzNS0xMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctQTIgICAoaGV4KQkJQ2Ftcml2b3ggTHRkLgorMDAxN0EyICAgICAoYmFzZSAxNikJCUNhbXJpdm94IEx0ZC4KKwkJCQlUaGUgSmVmZnJleXMgQnVpbGRpbmcKKwkJCQlDb3dsZXkgUm9hZAorCQkJCUNhbWJyaWRnZSBDYW1icmlkZ2VzaGlyZSBDQjQgMFdTCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTctQTMgICAoaGV4KQkJTUlYIHMuci5sLgorMDAxN0EzICAgICAoYmFzZSAxNikJCU1JWCBzLnIubC4KKwkJCQlWaWEgQ2FsZGVyYSwgMjEKKwkJCQlNaWxhbiAgSS0yMDE1MworCQkJCUlUQUxZCisKKzAwLTE3LUE0ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDE3QTQgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctQTUgICAoaGV4KQkJUmFsaW5rIFRlY2hub2xvZ3kgQ29ycAorMDAxN0E1ICAgICAoYmFzZSAxNikJCVJhbGluayBUZWNobm9sb2d5IENvcnAKKwkJCQlTdWl0ZSAyMTUsIEJsZGcgNTMuIDE5NS02MSBTZWMuNCwgQ2h1bmcgSHNpbmcgUmQsCisJCQkJQ2h1dHVuZyBIc2luY2h1IDMxMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctQTYgICAoaGV4KQkJWU9TSU4gRUxFQ1RST05JQ1MgQ08uLCBMVEQuCiswMDE3QTYgICAgIChiYXNlIDE2KQkJWU9TSU4gRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJNkYtMiwgTm8uMTcsIExhbiAxNzQsIFNoaW4tTWluZyBSb2FkCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LUE3ICAgKGhleCkJCU1vYmlsZSBDb21wdXRpbmcgUHJvbW90aW9uIENvbnNvcnRpdW0KKzAwMTdBNyAgICAgKGJhc2UgMTYpCQlNb2JpbGUgQ29tcHV0aW5nIFByb21vdGlvbiBDb25zb3J0aXVtCisJCQkJMy01LTEyIFNoaWJhLUtvZW4KKwkJCQlNaW5hdG8ta3UKKwkJCQlUb2t5byAgMTA1LTAwMTEKKwkJCQlKQVBBTgorCiswMC0xNy1BOCAgIChoZXgpCQlFRE0gQ29ycG9yYXRpb24KKzAwMTdBOCAgICAgKGJhc2UgMTYpCQlFRE0gQ29ycG9yYXRpb24KKwkJCQkzLTUtMiBJdGFiYXNoaQorCQkJCUl0YWJhc2hpLWt1IFRva3lvIDE3My0wMDA0CisJCQkJSkFQQU4KKworMDAtMTctQTkgICAoaGV4KQkJU2VudGl2aXNpb24KKzAwMTdBOSAgICAgKGJhc2UgMTYpCQlTZW50aXZpc2lvbgorCQkJCU1hcnluYXJza2EgMTlhCisJCQkJV2Fyc2F3IE1hem93aWVja2llIDAyLTY3NAorCQkJCVBPTEFORAorCiswMC0xNy1BQSAgIChoZXgpCQllbGFiLWV4cGVyaWVuY2UgaW5jLgorMDAxN0FBICAgICAoYmFzZSAxNikJCWVsYWItZXhwZXJpZW5jZSBpbmMuCisJCQkJMTA0IEFub3RzdXBpYQorCQkJCUFub3RzdWRhaSA0LTYtMQorCQkJCVRzdS1zaGkgbWllIHByZWZlY3R1cmUgNTE0LTAxMzEKKwkJCQlKQVBBTgorCiswMC0xNy1BQiAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMTdBQiAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xNy1BQyAgIChoZXgpCQlPJ05laWwgUHJvZHVjdCBEZXZlbG9wbWVudCBJbmMuCiswMDE3QUMgICAgIChiYXNlIDE2KQkJTydOZWlsIFByb2R1Y3QgRGV2ZWxvcG1lbnQgSW5jLgorCQkJCTggTWFzb24KKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUFEICAgKGhleCkJCUFjZU5ldCBDb3Jwb3JhdGlvbgorMDAxN0FEICAgICAoYmFzZSAxNikJCUFjZU5ldCBDb3Jwb3JhdGlvbgorCQkJCTdGLTQsIE5vLjE0NiwgV2VuLVNoaW4gUm9hZAorCQkJCUd1ZWlzaGFuIFRBT1lVQU4gCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xNy1BRSAgIChoZXgpCQlHQUktVHJvbmljcworMDAxN0FFICAgICAoYmFzZSAxNikJCUdBSS1Ucm9uaWNzCisJCQkJQnJ1bmVsIERyaXZlCisJCQkJU3RyZXR0b24gUGFyaworCQkJCUJ1cnRvbiBVcG9uIFRyZW50IFN0YWZmb3Jkc2hpcmUgREUxMyAwQloKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNy1BRiAgIChoZXgpCQlFbmVybWV0CiswMDE3QUYgICAgIChiYXNlIDE2KQkJRW5lcm1ldAorCQkJCVNhbHZlc2VuaW50aWUKKwkJCQlKeXNrw6QgIEZJTi00MDQyMAorCQkJCUZJTkxBTkQKKworMDAtMTctQjAgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTdCMCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMTctQjEgICAoaGV4KQkJQUNJU1QgTWVkaWNhbCBTeXN0ZW1zLCBJbmMuCiswMDE3QjEgICAgIChiYXNlIDE2KQkJQUNJU1QgTWVkaWNhbCBTeXN0ZW1zLCBJbmMuCisJCQkJNzQ1MCBGbHlpbmcgQ2xvdWQgRHJpdmUKKwkJCQlTdWl0ZSAxNTAKKwkJCQlFZGVuIFByYWlyaWUgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUIyICAgKGhleCkJCVNLIFRlbGVzeXMKKzAwMTdCMiAgICAgKGJhc2UgMTYpCQlTSyBUZWxlc3lzCisJCQkJNEYsIEt5dW5nZG9uZyBibGRnLCA0LTQsIFN1bmFlLURvbmcsIFB1bmRhbmctR3UKKwkJCQlTdW5nbmFtLUNpdHkgS3VuZ2dpLURvIDQ2My04MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctQjMgICAoaGV4KQkJQWZ0ZWsgSW5mb3N5cyBMaW1pdGVkCiswMDE3QjMgICAgIChiYXNlIDE2KQkJQWZ0ZWsgSW5mb3N5cyBMaW1pdGVkCisJCQkJUGF3YW4gQ29tcGxleAorCQkJCVNoZWVsYSBWaWhhciBDb2xvbnkKKwkJCQlQdW5lIE1haGFyYXNodHJhIDQxMSAwMzgKKwkJCQlJTkRJQQorCiswMC0xNy1CNCAgIChoZXgpCQlSZW1vdGUgU2VjdXJpdHkgU3lzdGVtcywgTExDCiswMDE3QjQgICAgIChiYXNlIDE2KQkJUmVtb3RlIFNlY3VyaXR5IFN5c3RlbXMsIExMQworCQkJCTQ4MDYgVXBwZXIgQnJhbmRvbiBQbGFjZQorCQkJCU1hcmlldHRhIEdlb3JnaWEgMzAwNjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUI1ICAgKGhleCkJCVBlZXJsZXNzIFN5c3RlbXMgQ29ycG9yYXRpb24KKzAwMTdCNSAgICAgKGJhc2UgMTYpCQlQZWVybGVzcyBTeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJMjM4MSBSb3NlY3JhbnMgQXZlbnVlLCBTdWl0ZSA0MDAKKwkJCQlFbCBTZWd1bmRvIENBIDkwMjQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1CNiAgIChoZXgpCQlBcXVhbnRpYQorMDAxN0I2ICAgICAoYmFzZSAxNikJCUFxdWFudGlhCisJCQkJNzAwIFRhc21hbiBEci4KKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctQjcgICAoaGV4KQkJVG9uemUgVGVjaG5vbG9neSBDby4KKzAwMTdCNyAgICAgKGJhc2UgMTYpCQlUb256ZSBUZWNobm9sb2d5IENvLgorCQkJCTVGLTEwLCBOby42LCBMYW5lIDE4MCwKKwkJCQlTZWMgNiwgTWluY3l1YW4gRWFzdCBSb2FkCisJCQkJVGFpcGVpICAxMTQ5MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctQjggICAoaGV4KQkJTk9WQVRST04gQ08uLCBMVEQuCiswMDE3QjggICAgIChiYXNlIDE2KQkJTk9WQVRST04gQ08uLCBMVEQuCisJCQkJIzYwMSBwb2xhcmlzIGJsZGcuLCAxNS0zIGplb25namEtZG9uZywgYnVuZGFuZy1ndQorCQkJCVNlb25nIE5hbSBHeWVvbmdnaSBEbyA0NjMtODExCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUI5ICAgKGhleCkJCUdhbWJybyBMdW5kaWEgQUIKKzAwMTdCOSAgICAgKGJhc2UgMTYpCQlHYW1icm8gTHVuZGlhIEFCCisJCQkJQk9YIDEwMTAxCisJCQkJTFVORCBTa8OlbmUgMjIwMTAKKwkJCQlTV0VERU4KKworMDAtMTctQkEgICAoaGV4KQkJU0VETyBDTy4sIExURC4KKzAwMTdCQSAgICAgKGJhc2UgMTYpCQlTRURPIENPLiwgTFRELgorCQkJCTMwMiwgS1QgQmxkZywgMUFOTkVYLCAzNS0xCisJCQkJWWVvbmdkZXVuZ3BvLWRvbmcgOGdhLCBZZW9uZ2RldW5ncG8tZ3UKKwkJCQlTZW91bCAgMTUwLTAzOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy1CQiAgIChoZXgpCQlTeXJpbnggSW5kdXN0cmlhbCBFbGVjdHJvbmljcworMDAxN0JCICAgICAoYmFzZSAxNikJCVN5cmlueCBJbmR1c3RyaWFsIEVsZWN0cm9uaWNzCisJCQkJRGUgRmFjdG9yaWogMTMKKwkJCQlad2FhZyBOb29yZCBIb2xsYW5kIDE2ODkgQUsKKwkJCQlORVRIRVJMQU5EUworCiswMC0xNy1CQyAgIChoZXgpCQlUb3VjaHR1bmVzIE11c2ljIENvcnBvcmF0aW9uCiswMDE3QkMgICAgIChiYXNlIDE2KQkJVG91Y2h0dW5lcyBNdXNpYyBDb3Jwb3JhdGlvbgorCQkJCTMgUGxhY2UgZHUgQ29tbWVyY2UKKwkJCQk0dGggRmxvb3IKKwkJCQlNb250csOpYWwgUXXDqWJlYyBIM0UgMUg3CisJCQkJQ0FOQURBCisKKzAwLTE3LUJEICAgKGhleCkJCVRpYmV0c3lzdGVtCiswMDE3QkQgICAgIChiYXNlIDE2KQkJVGliZXRzeXN0ZW0KKwkJCQk2RiBJVCBDYXN0bGUgSUkgNTUwLTEgR2FzYW4tZG9uZworCQkJCVNlb3VsIEdldW1jaGVvbi1ndSAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUJFICAgKGhleCkJCVRyYXRlYyBUZWxlY29tIEIuVi4KKzAwMTdCRSAgICAgKGJhc2UgMTYpCQlUcmF0ZWMgVGVsZWNvbSBCLlYuCisJCQkJRGUgU21hbGxlIFppamRlIDEyCisJCQkJVmVlbmVuZGFhbCAgTkwwLTM5MDMgTFAKKwkJCQlORVRIRVJMQU5EUworCiswMC0xNy1CRiAgIChoZXgpCQlDb2hlcmVudCBSZXNlYXJjaCBMaW1pdGVkCiswMDE3QkYgICAgIChiYXNlIDE2KQkJQ29oZXJlbnQgUmVzZWFyY2ggTGltaXRlZAorCQkJCTggUHJpbmNlc3MgTWV3cworCQkJCUhvcmFjZSBSb2FkCisJCQkJS2luZ3N0b24gdXBvbiBUaGFtZXMgU3VycmV5IEtUMSAyU1oKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNy1DMCAgIChoZXgpCQlQdXJlVGVjaCBTeXN0ZW1zLCBJbmMuCiswMDE3QzAgICAgIChiYXNlIDE2KQkJUHVyZVRlY2ggU3lzdGVtcywgSW5jLgorCQkJCTIwNzUgVyBQaW5uYWNsZSBQZWFrIFJvYWQgIzEyMAorCQkJCVBob2VuaXggQVogODUwMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUMxICAgKGhleCkJCUNNIFByZWNpc2lvbiBUZWNobm9sb2d5IExURC4KKzAwMTdDMSAgICAgKGJhc2UgMTYpCQlDTSBQcmVjaXNpb24gVGVjaG5vbG9neSBMVEQuCisJCQkJMiBGbCwgTm8uIDE3NywgQ2hpZW4tRSBSb2FkLCBDaHVuZy1IbyBDaXR5CisJCQkJVGFpcGVpIEhzaWVuICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LUMyICAgKGhleCkJCUFEQiBCcm9hZGJhbmQgSXRhbGlhCiswMDE3QzIgICAgIChiYXNlIDE2KQkJQURCIEJyb2FkYmFuZCBJdGFsaWEKKwkJCQl2LlNhcmNhIDIyMgorCQkJCU1pbGFubyAgMjAxMjYKKwkJCQlJVEFMWQorCiswMC0xNy1DMyAgIChoZXgpCQlLVEYgVGVjaG5vbG9naWVzIEluYy4KKzAwMTdDMyAgICAgKGJhc2UgMTYpCQlLVEYgVGVjaG5vbG9naWVzIEluYy4KKwkJCQk0dGggRmwuLCBDZW50cmFsIFRvd2VyLCAyNjUtMywgU2VvaHl1bi1Eb25nCisJCQkJQnVuZG5hZy1HdQorCQkJCVN1bmduYW0tQ2l0eSBLeXVuZ2dpLURvIDQ2My03NjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctQzQgICAoaGV4KQkJUXVhbnRhIE1pY3Jvc3lzdGVtcywgSU5DLgorMDAxN0M0ICAgICAoYmFzZSAxNikJCVF1YW50YSBNaWNyb3N5c3RlbXMsIElOQy4KKwkJCQkxODggV2VuaHdhIDJuZCBSRC4sIEt1ZWlzaGFuIEhzaWFuZworCQkJCVRhb3l1YW4gU2hpZW4gIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctQzUgICAoaGV4KQkJU29uaWNXQUxMCiswMDE3QzUgICAgIChiYXNlIDE2KQkJU29uaWNXQUxMCisJCQkJMTE0MyBCb3JyZWdhcyBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTUxMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUM2ICAgKGhleCkJCUNyb3NzIE1hdGNoIFRlY2hub2xvZ2llcyBJbmMKKzAwMTdDNiAgICAgKGJhc2UgMTYpCQlDcm9zcyBNYXRjaCBUZWNobm9sb2dpZXMgSW5jCisJCQkJNDAwLCBib3VsLiBKZWFuLUxlc2FnZQorCQkJCUhhbGwgT3Vlc3QsIFN1aXRlIDMwCisJCQkJUXXDqWJlYywgUWMgIEcxSyA4VzEKKwkJCQlDQU5BREEKKworMDAtMTctQzcgICAoaGV4KQkJTUFSQSBTeXN0ZW1zIENvbnN1bHRpbmcgQUIKKzAwMTdDNyAgICAgKGJhc2UgMTYpCQlNQVJBIFN5c3RlbXMgQ29uc3VsdGluZyBBQgorCQkJCUluc3RydW1lbnR2w6RnZW4gNDUKKwkJCQlTdG9ja2hvbG0gIDEyNiA1MworCQkJCVNXRURFTgorCiswMC0xNy1DOCAgIChoZXgpCQlLeW9jZXJhIE1pdGEgQ29ycG9yYXRpb24KKzAwMTdDOCAgICAgKGJhc2UgMTYpCQlLeW9jZXJhIE1pdGEgQ29ycG9yYXRpb24KKwkJCQkyLTE0LTksIFRhbWFnYXdhZGFpCisJCQkJU2V0YWdheWEtV2FyZAorCQkJCVRva3lvICAxNTgtODYxMAorCQkJCUpBUEFOCisKKzAwLTE3LUM5ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDE3QzkgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQk0MTYsIE1hZXRhbi0zRG9uZywgWWVvbmd0b25nLUd1CisJCQkJU3V3b24gR2V5b25nZ2ktRG8gNDQzLTc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy1DQSAgIChoZXgpCQlRaXNkYSBDb3Jwb3JhdGlvbgorMDAxN0NBICAgICAoYmFzZSAxNikJCVFpc2RhIENvcnBvcmF0aW9uCisJCQkJMTU3IFNoYW4gWWluZyBSb2FkLAorCQkJCUd1ZWlTaGFuIFRhb3l1YW4sIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTctQ0IgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworMDAxN0NCICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE5vcnRoIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg5LTEyMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUNDICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50CiswMDE3Q0MgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQKKwkJCQk2MDEgRGF0YSBEci4KKwkJCQlNL1MgMzIwCisJCQkJUGxhbm8gVFggNzUwNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUNEICAgKGhleCkJCUNFQyBXaXJlbGVzcyBSJkQgTHRkLgorMDAxN0NEICAgICAoYmFzZSAxNikJCUNFQyBXaXJlbGVzcyBSJkQgTHRkLgorCQkJCVdlc3QgTTUgQnVpbGRpbmcsTm8uMSBFYXN0IFJvYWQKKwkJCQlKaXV4aWFucWlhbyBDaGFvIFlhbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwMTYKKwkJCQlDSElOQQorCiswMC0xNy1DRSAgIChoZXgpCQlTY3JlZW4gU2VydmljZSBTcGEKKzAwMTdDRSAgICAgKGJhc2UgMTYpCQlTY3JlZW4gU2VydmljZSBTcGEKKwkJCQlWaWEgRy5EaSBWaXR0b3JpbyAxNworCQkJCUJyZXNjaWEgMjUxMjUKKwkJCQlJVEFMWQorCiswMC0xNy1DRiAgIChoZXgpCQlpTUNBLUdtYkgKKzAwMTdDRiAgICAgKGJhc2UgMTYpCQlpTUNBLUdtYkgKKwkJCQlEb3Jmc3RyYXNzZSAyOGIKKwkJCQlJdHplaG9lIFNjaGxlc3dpZy1Ib2xzdGVpbiAyNTUyNAorCQkJCUdFUk1BTlkKKworMDAtMTctRDAgICAoaGV4KQkJT3B0aWNvbSBDb21tdW5pY2F0aW9ucywgTExDCiswMDE3RDAgICAgIChiYXNlIDE2KQkJT3B0aWNvbSBDb21tdW5pY2F0aW9ucywgTExDCisJCQkJMTA1MCBDb25uZWN0aWN1dCBBdmVudWUsIE5XCisJCQkJU3VpdGUgMTAwMAorCQkJCVdhc2hpbmd0b24gREMgMjAwMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUQxICAgKGhleCkJCU5vcnRlbAorMDAxN0QxICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xNy1EMiAgIChoZXgpCQlUSElOTElOWCBQVFkgTFRECiswMDE3RDIgICAgIChiYXNlIDE2KQkJVEhJTkxJTlggUFRZIExURAorCQkJCTMxIENhcndvb2xhIENyZXNjZW50CisJCQkJTW9vbG9vbGFiYSBRdWVlbnNsYW5kIDQ1NTcKKwkJCQlBVVNUUkFMSUEKKworMDAtMTctRDMgICAoaGV4KQkJRXR5bW90aWMgUmVzZWFyY2gsIEluYy4KKzAwMTdEMyAgICAgKGJhc2UgMTYpCQlFdHltb3RpYyBSZXNlYXJjaCwgSW5jLgorCQkJCTYxIE1hcnRpbiBMYW5lCisJCQkJRWxrIEdyb3ZlIFZpbGxhZ2UgSUwgNjAwNjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUQ0ICAgKGhleCkJCU1vbnNvb24gTXVsdGltZWRpYSwgSW5jCiswMDE3RDQgICAgIChiYXNlIDE2KQkJTW9uc29vbiBNdWx0aW1lZGlhLCBJbmMKKwkJCQkxNzMwIFNvdXRoIEFtcGhsZXR0IGJsdmQuIFN1aXRlIDEwMQorCQkJCVNhbiBNYXRlbyBDQSA5NDQwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRDUgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMTdENSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaS1DaXR5IEd5ZW9uZy1CdWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xNy1ENiAgIChoZXgpCQlCbHVlY2hpcHMgTWljcm9ob3VzZSBDby4sTHRkLgorMDAxN0Q2ICAgICAoYmFzZSAxNikJCUJsdWVjaGlwcyBNaWNyb2hvdXNlIENvLixMdGQuCisJCQkJMjEyLzIgTS4xMCBUYW1ib2wgVW1vbmcKKwkJCQlBbXBodXIgTXVhbmcKKwkJCQlMYW1waHVuICA1MTE1MAorCQkJCVRIQUlMQU5ECisKKzAwLTE3LUQ3ICAgKGhleCkJCUlPTiBHZW9waHlzaWNhbCBDb3Jwb3JhdGlvbiBJbmMuCiswMDE3RDcgICAgIChiYXNlIDE2KQkJSU9OIEdlb3BoeXNpY2FsIENvcnBvcmF0aW9uIEluYy4KKwkJCQk4NTAgRG9yb3RoeQorCQkJCVN1aXRlIDUxMAorCQkJCVJpY2hhcmRzb24gVGV4YXMgNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUQ4ICAgKGhleCkJCU1hZ251bSBTZW1pY29uZHVjdG9yLCBJbmMuCiswMDE3RDggICAgIChiYXNlIDE2KQkJTWFnbnVtIFNlbWljb25kdWN0b3IsIEluYy4KKwkJCQk1OTEgWW9zZW1pdGUgRHJpdmUKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRDkgICAoaGV4KQkJQUFJIENvcnBvcmF0aW9uCiswMDE3RDkgICAgIChiYXNlIDE2KQkJQUFJIENvcnBvcmF0aW9uCisJCQkJUC5PLiBCb3ggMTI2CisJCQkJSHVudCBWYWxsZXkgTWFyeWxhbmQgMjEwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LURBICAgKGhleCkJCVNwYW5zIExvZ2ljCiswMDE3REEgICAgIChiYXNlIDE2KQkJU3BhbnMgTG9naWMKKwkJCQkyMDEgU2FuIEFudG9uaW8gQ2lyY2xlCisJCQkJIzI4MAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LURCICAgKGhleCkJCUNBTktPIFRFQ0hOT0xPR0lFUyBJTkMuCiswMDE3REIgICAgIChiYXNlIDE2KQkJQ0FOS08gVEVDSE5PTE9HSUVTIElOQy4KKwkJCQk1IEZMLiBET05HIFNVTkcgQkxERy4gMTctOAorCQkJCVlPSURPLURPTkcsIFlFT05HREVVTkdQTy1LVQorCQkJCVNFT1VMICAxNTAtODc0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LURDICAgKGhleCkJCURBRU1ZVU5HIFpFUk8xCiswMDE3REMgICAgIChiYXNlIDE2KQkJREFFTVlVTkcgWkVSTzEKKwkJCQkjODA5LEh5b3N1bmcgSW50ZWxsaWFuCisJCQkJMTU5NC0xIEd3YW55YW5nLWRvbmcsRG9uZ2FuLWd1CisJCQkJQW55YW5nLXNpIEd5ZW9uZ2dpLWRvIDQzMS0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctREQgICAoaGV4KQkJQ2xpcHNhbCBBdXN0cmFsaWEKKzAwMTdERCAgICAgKGJhc2UgMTYpCQlDbGlwc2FsIEF1c3RyYWxpYQorCQkJCTMzLTM3IFBvcnQgV2FrZWZpZWxkIFJkCisJCQkJR2VwcHMgQ3Jvc3MgU291dGggQXVzdHJhbGlhIDUwOTQKKwkJCQlBVVNUUkFMSUEKKworMDAtMTctREUgICAoaGV4KQkJQWR2YW50YWdlIFNpeCBMdGQKKzAwMTdERSAgICAgKGJhc2UgMTYpCQlBZHZhbnRhZ2UgU2l4IEx0ZAorCQkJCTIwOCBHZW9yZ2UgU3QKKwkJCQlTaGF3CisJCQkJT0xESEFNIExhbmNzIE9MMiA4RFIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNy1ERiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3REYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1FMCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE3RTAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1FMSAgIChoZXgpCQlEQUNPUyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDE3RTEgICAgIChiYXNlIDE2KQkJREFDT1MgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCTEwNCBEYWVyeXVuZy1UZWNobm90b3duIElJSSA0NDgKKwkJCQlHYXNhbi1Eb25nCisJCQkJU0VPVUwgS2V1bWNoZW9uLUd1IDE1My03NzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctRTIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDE3RTIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjAwIE4uIEh3eSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTMgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFMyAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTQgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFNCAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTUgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFNSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTYgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFNiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTcgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFNyAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTggICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFOCAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRTkgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFOSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRUEgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFQSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRUIgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFQiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRUMgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMTdFQyAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRUQgICAoaGV4KQkJV29vSm9vSVQgTHRkLgorMDAxN0VEICAgICAoYmFzZSAxNikJCVdvb0pvb0lUIEx0ZC4KKwkJCQlIYW5rb29rdGlyZSBCL0QgNHRoIGZsb29yLCA1MDEtMTksCisJCQkJU2lud29sMiAtZG9uZywKKwkJCQlZYW5nY2hlb24tZ3UsIFNlb3VsIDE1OC04MzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctRUUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMTdFRSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUVGICAgKGhleCkJCUlCTSBDb3JwCiswMDE3RUYgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkyMDUxIE1pc3Npb24gQ29sbGVnZSBCbHZkIAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xNy1GMCAgIChoZXgpCQlTWkNPTSBCcm9hZGJhbmQgTmV0d29yayBUZWNobm9sb2d5IENvLixMdGQKKzAwMTdGMCAgICAgKGJhc2UgMTYpCQlTWkNPTSBCcm9hZGJhbmQgTmV0d29yayBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlSb29tIDYwMiBOby44IEJ1aWxkaW5nICxTaGVuemhlbiBTb2Z0d2FyZSBQYXJrLAorCQkJCUhpLVRlY2ggQy5ab25lICxOYW5zaGFuIEFyZWEKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMTctRjEgICAoaGV4KQkJUmVudSBFbGVjdHJvbmljcyBQdnQgTHRkCiswMDE3RjEgICAgIChiYXNlIDE2KQkJUmVudSBFbGVjdHJvbmljcyBQdnQgTHRkCisJCQkJU3IgTm8gMi82LCBCYW5lciBSb2FkLAorCQkJCUJhbmVyLAorCQkJCVB1bmUgTWFoYXJhc2h0cmEgNDExMDQ1CisJCQkJSU5ESUEKKworMDAtMTctRjIgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIKKzAwMTdGMiAgICAgKGJhc2UgMTYpCQlBcHBsZSBDb21wdXRlcgorCQkJCTEgSW5maW5pdGUgTG9vcCBNUzozNUdQTworCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRjMgICAoaGV4KQkJSGFycmlzIENvcnBhcmF0aW9uCiswMDE3RjMgICAgIChiYXNlIDE2KQkJSGFycmlzIENvcnBhcmF0aW9uCisJCQkJMTAyNSBXZXN0IE5BU0EgQmx2ZAorCQkJCU1lbGJvdXJuZSBGTCAzMjkxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRjQgICAoaGV4KQkJWkVST04gQUxMSUFOQ0UKKzAwMTdGNCAgICAgKGJhc2UgMTYpCQlaRVJPTiBBTExJQU5DRQorCQkJCSAzRiBET09SSSBCVUlMRC4gMjQ0LTE0IGJ1bmppLCBQb2ktZG9uZywgR2FuZ25hbS1ndQorCQkJCVNFT1VMICAxMzUtOTY1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUY1ICAgKGhleCkJCUxJRyBORU9QVEVLCiswMDE3RjUgICAgIChiYXNlIDE2KQkJTElHIE5FT1BURUsKKwkJCQk5MjYgR29zYWVrLWRvbmcKKwkJCQlHd29uc2Vvbi1ndQorCQkJCVN1d29uLXNpIEd5ZW9uZ2dpLWRvIDQ0MS04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctRjYgICAoaGV4KQkJUHlyYW1pZCBNZXJpZGVuIEluYy4KKzAwMTdGNiAgICAgKGJhc2UgMTYpCQlQeXJhbWlkIE1lcmlkZW4gSW5jLgorCQkJCTQ1IEdyYWNleSBBdmUuCisJCQkJTWVyaWRlbiBDVCAwNjQ1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRjcgICAoaGV4KQkJQ0VNIFNvbHV0aW9ucyBQdnQgTHRkCiswMDE3RjcgICAgIChiYXNlIDE2KQkJQ0VNIFNvbHV0aW9ucyBQdnQgTHRkCisJCQkJNDksS2FuaWphIEJoYXZhbgorCQkJCVJhY2UgQ291cnNlIFJvYWQKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MCAwMDEKKwkJCQlJTkRJQQorCiswMC0xNy1GOCAgIChoZXgpCQlNb3RlY2ggSW5kdXN0cmllcyBJbmMuCiswMDE3RjggICAgIChiYXNlIDE2KQkJTW90ZWNoIEluZHVzdHJpZXMgSW5jLgorCQkJCTZGLCBOby4gMjQ4LCBTZWMuIDMsIFBlaS1TaGVuIFJkLiwKKwkJCQlTaGVuLUtlbmcgSHNpYW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMjIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE3LUY5ICAgKGhleCkJCUZvcmNvbSBTcC4geiBvLm8uCiswMDE3RjkgICAgIChiYXNlIDE2KQkJRm9yY29tIFNwLiB6IG8uby4KKwkJCQlHYWpvd2EgNgorCQkJCVBvem5hbiBXTEtQIDYwLTgxNQorCQkJCVBPTEFORAorCiswMC0xNy1GQSAgIChoZXgpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKzAwMTdGQSAgICAgKGJhc2UgMTYpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKwkJCQlPbmUgTWljcm9zb2Z0IFdheQorCQkJCVJFRC1CLzEwNzIKKwkJCQlSZWRtb25kIFdhc2hpbmd0b24gOTgwNTItNjM5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTctRkIgICAoaGV4KQkJRkEKKzAwMTdGQiAgICAgKGJhc2UgMTYpCQlGQQorCQkJCTYyOC03LCBEdW5nY2hvbi1Eb25nCisJCQkJU2VvdWwgS2FuZ3Nlby1LdSAxNTctODM4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE3LUZDICAgKGhleCkJCVN1cHJlbWEgSW5jLgorMDAxN0ZDICAgICAoYmFzZSAxNikJCVN1cHJlbWEgSW5jLgorCQkJCTE2RiBQYXJrdmlldyBPZmZpY2UgVG93ZXIsCisJCQkJSmVvbmdqYS1kb25nLCBCdW5kYW5nLWd1LAorCQkJCVNlb25nbmFtIEd5ZW9uZ2dpIDQ2My04NjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTctRkQgICAoaGV4KQkJQW11bGV0IEhvdGtleQorMDAxN0ZEICAgICAoYmFzZSAxNikJCUFtdWxldCBIb3RrZXkKKwkJCQlDYXZhbGllciBSb2FkCisJCQkJSGVhdGhmaWVsZCBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCUhlYXRoZmllbGQgRGV2b24gVFExMiA2VFEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xNy1GRSAgIChoZXgpCQlUQUxPUyBTWVNURU0gSU5DLgorMDAxN0ZFICAgICAoYmFzZSAxNikJCVRBTE9TIFNZU1RFTSBJTkMuCisJCQkJNjE5MSBDT1JORVJTVE9ORSBDVC4gU1RFICMxMDkKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE3LUZGICAgKGhleCkJCVBMQVlMSU5FIENvLixMdGQuCiswMDE3RkYgICAgIChiYXNlIDE2KQkJUExBWUxJTkUgQ28uLEx0ZC4KKwkJCQkxLTQtMjEgTU9UT0FLQVNBS0EKKwkJCQlNSU5BVE9LVQorCQkJCVRPS1lPICAxMDctMDA1MQorCQkJCUpBUEFOCisKKzAwLTE4LTAwICAgKGhleCkJCVVOSUdSQU5EIExURAorMDAxODAwICAgICAoYmFzZSAxNikJCVVOSUdSQU5EIExURAorCQkJCTdGLTIsIE5vLjQ1LCBKaW5nZGUgU3QuLCBKaG9uZ2hlIENpdHksCisJCQkJVGFpcGVpIENvdW50eQorCQkJCTIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtMDEgICAoaGV4KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMgCiswMDE4MDEgICAgIChiYXNlIDE2KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMgCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0wMiAgIChoZXgpCQlBbHBoYSBOZXR3b3JrcyBJbmMuCiswMDE4MDIgICAgIChiYXNlIDE2KQkJQWxwaGEgTmV0d29ya3MgSW5jLgorCQkJCU5vLjggTGktc2hpbmcgU2V2ZW50aCBSb2FkLFNjaWVuY2UtYmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC0wMyAgIChoZXgpCQlBcmNTb2Z0IFNoYW5naGFpIENvLiBMVEQKKzAwMTgwMyAgICAgKGJhc2UgMTYpCQlBcmNTb2Z0IFNoYW5naGFpIENvLiBMVEQKKwkJCQkyMHRoIEZsb29yLCBTdWl0ZSAoRUFTVCkgMjAwOCwgQ2hpbmEgTWVyY2hhbnRzIFBsYXphLCAzMzMKKwkJCQlTaGFuZ2hhaSAgMjAwMDQxCisJCQkJQ0hJTkEKKworMDAtMTgtMDQgICAoaGV4KQkJRS1URUsgRElHSVRBTCBURUNITk9MT0dZIExJTUlURUQKKzAwMTgwNCAgICAgKGJhc2UgMTYpCQlFLVRFSyBESUdJVEFMIFRFQ0hOT0xPR1kgTElNSVRFRAorCQkJCVVOSVQxNTIwLDE1L0YuLFRPV0VSIDIsR1JBTkQgQ0VOVFVSWSBQTEFDRSwxOTMgUFJJTkNFIEVEV0FSRCBST0FEIFdFU1QsS09XTE9PTiwKKwkJCQlIT05HIEtPTkcKKworMDAtMTgtMDUgICAoaGV4KQkJQmVpamluZyBJbkhhbmQgTmV0d29ya2luZyBUZWNobm9sb2d5IENvLixMdGQuCiswMDE4MDUgICAgIChiYXNlIDE2KQkJQmVpamluZyBJbkhhbmQgTmV0d29ya2luZyBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJMy9GLEJ1aWxkaW5nIEEsR0VNIFRlY2hjaGVudGVyCisJCQkJTm8sOSAzcmQgU3RyZWV0IG9mIFNoYW5nZGkKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0xOC0wNiAgIChoZXgpCQlIb2trZWkgSW5kdXN0cmllcyBDby4sIEx0ZC4KKzAwMTgwNiAgICAgKGJhc2UgMTYpCQlIb2trZWkgSW5kdXN0cmllcyBDby4sIEx0ZC4KKwkJCQlJbWFoaXJhIDQzMgorCQkJCUhha3VzYW4gSXNoaWthd2EgOTI0LTA4MjcKKwkJCQlKQVBBTgorCiswMC0xOC0wNyAgIChoZXgpCQlGYW5zdGVsIENvcnAuCiswMDE4MDcgICAgIChiYXNlIDE2KQkJRmFuc3RlbCBDb3JwLgorCQkJCTc0NjYgRS4gTW9udGUgQ3Jpc3RvIEF2ZS4KKwkJCQlTY290dHNkYWxlIEFyaXpvbmEgODUyNjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTA4ICAgKGhleCkJCVNpZ2h0TG9naXgsIEluYy4KKzAwMTgwOCAgICAgKGJhc2UgMTYpCQlTaWdodExvZ2l4LCBJbmMuCisJCQkJNzQ1IEFsZXhhbmRlciBSb2FkCisJCQkJUHJpbmNldG9uIE5KIDA4NTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0wOSAgIChoZXgpCQlDUkVTWU4KKzAwMTgwOSAgICAgKGJhc2UgMTYpCQlDUkVTWU4KKwkJCQk4LTIyLEphbXdvbi1kb25nCisJCQkJU2VvdWwgU2VvY2hvLUd1ICMxMzctOTAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LTBBICAgKGhleCkJCU1lcmFraSwgSW5jLgorMDAxODBBICAgICAoYmFzZSAxNikJCU1lcmFraSwgSW5jLgorCQkJCTk5IFJob2RlIElzbGFuZCBTdC4KKwkJCQlTYW4gRnJhbmNpc2NvLCBDQSA5NDEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMEIgICAoaGV4KQkJQnJpbGxpYW50IFRlbGVjb21tdW5pY2F0aW9ucworMDAxODBCICAgICAoYmFzZSAxNikJCUJyaWxsaWFudCBUZWxlY29tbXVuaWNhdGlvbnMKKwkJCQkzMDcgT3JjaGFyZCBDaXR5IERyLgorCQkJCVN1aXRlIDEwMgorCQkJCUNhbXBiZWxsIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0wQyAgIChoZXgpCQlPcHRlbGlhbiBBY2Nlc3MgTmV0d29ya3MKKzAwMTgwQyAgICAgKGJhc2UgMTYpCQlPcHRlbGlhbiBBY2Nlc3MgTmV0d29ya3MKKwkJCQkyMkEtMTA1MSBCYXh0ZXIgUm9hZAorCQkJCU90dGF3YSBPbnRhcmlvIEsyQyAzUDIKKwkJCQlDQU5BREEKKworMDAtMTgtMEQgICAoaGV4KQkJVGVyYWJ5dGVzIFNlcnZlciBTdG9yYWdlIFRlY2ggQ29ycAorMDAxODBEICAgICAoYmFzZSAxNikJCVRlcmFieXRlcyBTZXJ2ZXIgU3RvcmFnZSBUZWNoIENvcnAKKwkJCQkxNDI1NyBFIERvbiBKdWxpYW4gUmQKKwkJCQlDaXR5IG9mIEluZHVzdHJ5IENBIDkxNzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0wRSAgIChoZXgpCQlBdmVnYSBTeXN0ZW1zCiswMDE4MEUgICAgIChiYXNlIDE2KQkJQXZlZ2EgU3lzdGVtcworCQkJCTU5IFZpY3RvcmlhIFN0cmVldAorCQkJCU1jTWFob25zIFBvaW50IE5TVyAyMDYwCisJCQkJQVVTVFJBTElBCisKKzAwLTE4LTBGICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDE4MEYgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgRGVubWFyayAxNzkwVgorCQkJCURFTk1BUksKKworMDAtMTgtMTAgICAoaGV4KQkJSVBUcmFkZSBTLkEuCiswMDE4MTAgICAgIChiYXNlIDE2KQkJSVBUcmFkZSBTLkEuCisJCQkJUGFyYyBTY2llbnRpZmlxdWUKKwkJCQlBdmVudWUgZGVzIENoYXNzZXVycyBBcmRlbm5haXMsIDQKKwkJCQlTYXJ0LVRpbG1hbiBXYWxsb25pZSA0MDMxCisJCQkJQkVMR0lVTQorCiswMC0xOC0xMSAgIChoZXgpCQlOZXVyb3MgVGVjaG5vbG9neSBJbnRlcm5hdGlvbmFsLCBMTEMuCiswMDE4MTEgICAgIChiYXNlIDE2KQkJTmV1cm9zIFRlY2hub2xvZ3kgSW50ZXJuYXRpb25hbCwgTExDLgorCQkJCTY1MCBXIExha2UgU3QKKwkJCQlTdWl0ZSAzMzAKKwkJCQlDaGljYWdvIElMIDYwNjYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0xMiAgIChoZXgpCQlCZWlqaW5nIFhpbndlaSBUZWxlY29tIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDE4MTIgICAgIChiYXNlIDE2KQkJQmVpamluZyBYaW53ZWkgVGVsZWNvbSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCVhpbndlaSBCbGRnLiwgTm8uIDcgWmhvbmdndWFuY3VuIFNvZnR3YXJlIFBhcmssCisJCQkJTm8uIDggRG9uZ2JlaXdhbmcgV2VzdCBSb2FkCisJCQkJSGFpZGlhbiBEaXN0cmljdCBCZWlqaW5nIDEwMDA5NAorCQkJCUNISU5BCisKKzAwLTE4LTEzICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCiswMDE4MTMgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTa8OlbmUgMjIxODgKKwkJCQlTV0VERU4KKworMDAtMTgtMTQgICAoaGV4KQkJTWl0dXRveW8gQ29ycG9yYXRpb24KKzAwMTgxNCAgICAgKGJhc2UgMTYpCQlNaXR1dG95byBDb3Jwb3JhdGlvbgorCQkJCTIwLTEsIFNha2FkbyAxLWNob21lLCBUYWthdHN1LWt1LAorCQkJCUthd2FzYWtpLXNoaSAgMjEzLTg1MzMKKwkJCQlKQVBBTgorCiswMC0xOC0xNSAgIChoZXgpCQlHWiBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTgxNSAgICAgKGJhc2UgMTYpCQlHWiBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQlSb29tIDEsIDVGLiwgTm8uOTQsIEJhb2pob25nIFJkLgorCQkJCVNpbmRpYW4gQ2l0eQorCQkJCVRhaXBlaSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC0xNiAgIChoZXgpCQlVYml4b24gQ28uLCBMdGQuCiswMDE4MTYgICAgIChiYXNlIDE2KQkJVWJpeG9uIENvLiwgTHRkLgorCQkJCUNoZW9uZ2RvbmcgQnVpbGRpbmcgMkYKKwkJCQkxMzQ0LTI5IFNlb2NobyBkb25nIFNlb2NobyBrdQorCQkJCVNlb3VsICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LTE3ICAgKGhleCkJCUQuIEUuIFNoYXcgUmVzZWFyY2gsIExMQworMDAxODE3ICAgICAoYmFzZSAxNikJCUQuIEUuIFNoYXcgUmVzZWFyY2gsIExMQworCQkJCTEyMCBXLiA0NXRoIFN0LiwgMzNyZCBGbG9vcgorCQkJCU5ldyBZb3JrIE5ZIDEwMDM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0xOCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE4MTggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0xOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE4MTkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0xQSAgIChoZXgpCQlBVmVyTWVkaWEgSW5mb3JtYXRpb24gSW5jLgorMDAxODFBICAgICAoYmFzZSAxNikJCUFWZXJNZWRpYSBJbmZvcm1hdGlvbiBJbmMuCisJCQkJNUYuLCBOby4gMTM1LCBKaWFuIDFzdCBSZC4sCisJCQkJWmhvbmdIZSBEaXN0LiwKKwkJCQlOZXcgVGFpcGVpIENpdHkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC0xQiAgIChoZXgpCQlUYWlKaW4gTWV0YWwgQ28uLCBMdGQuCiswMDE4MUIgICAgIChiYXNlIDE2KQkJVGFpSmluIE1ldGFsIENvLiwgTHRkLgorCQkJCSM5NS05LCBIYW5nZG9uZzctR2EsIEpvb25nLUd1CisJCQkJSW4gQ2hlb24gIDQwMC0wMzcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtMUMgICAoaGV4KQkJRXh0ZXJpdHkgTGltaXRlZAorMDAxODFDICAgICAoYmFzZSAxNikJCUV4dGVyaXR5IExpbWl0ZWQKKwkJCQlSaWRnZSBXYXksIEhpbGxlbmQgSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlEYWxnZXR5IEJheQorCQkJCUR1bmZlcm1saW5lIEZpZmUgS1kxMSA5SkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOC0xRCAgIChoZXgpCQlBU0lBIEVMRUNUUk9OSUNTIENPLixMVEQKKzAwMTgxRCAgICAgKGJhc2UgMTYpCQlBU0lBIEVMRUNUUk9OSUNTIENPLixMVEQKKwkJCQk2MjAtMyBET0NIRU9OLURPTkcKKwkJCQlHV0FOR1NBTi1HVQorCQkJCUdXQU5HSlUgIDUwNi0zMDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtMUUgICAoaGV4KQkJR0RYIFRlY2hub2xvZ2llcyBMdGQuCiswMDE4MUUgICAgIChiYXNlIDE2KQkJR0RYIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJNjEtNjMgQmFjayBTbmVkZG9uIFN0cmVldAorCQkJCVBhaXNsZXkgUmVuZnJld3NoaXJlIFBBMyAyREQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOC0xRiAgIChoZXgpCQlQYWxtbWljcm8gQ29tbXVuaWNhdGlvbnMKKzAwMTgxRiAgICAgKGJhc2UgMTYpCQlQYWxtbWljcm8gQ29tbXVuaWNhdGlvbnMKKwkJCQlSb29tIDA2MTEsIEJsZGcuQiBUc2luZ2h1YSBUb25nZmFuZyBUZWNobm9sb2d5IFBsYXphCisJCQkJMSBXYW5nemh1YW5nIFJvYWQKKwkJCQlCZWlqaW5nICAxMDAwODMKKwkJCQlDSElOQQorCiswMC0xOC0yMCAgIChoZXgpCQl3NW5ldHdvcmtzCiswMDE4MjAgICAgIChiYXNlIDE2KQkJdzVuZXR3b3JrcworCQkJCTQ4Mzg5IEZyZW1vbnQgQmx2ZAorCQkJCVN1aXRlIDEwNgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTIxICAgKGhleCkJCVNJTkRPUklDT0gKKzAwMTgyMSAgICAgKGJhc2UgMTYpCQlTSU5ET1JJQ09ICisJCQkJMjc3LTIyLCAyZ2EsIFN1bmdzdS1kb25nLCBTdW5nZG9uZy1ndSwKKwkJCQlTZW91bCAgMTMzLTEyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC0yMiAgIChoZXgpCQlDRUMgVEVMRUNPTSBDTy4sTFRELgorMDAxODIyICAgICAoYmFzZSAxNikJCUNFQyBURUxFQ09NIENPLixMVEQuCisJCQkJMTB0aEZMLkNFQyBCdWlsZGluZyw2IFpob25nZ3VhbmN1biBTb3V0aCBTdHJlZXQKKwkJCQlCZWlqaW5nICAxMDAwODYKKwkJCQlDSElOQQorCiswMC0xOC0yMyAgIChoZXgpCQlEZWx0YSBFbGVjdHJvbmljcywgSW5jLgorMDAxODIzICAgICAoYmFzZSAxNikJCURlbHRhIEVsZWN0cm9uaWNzLCBJbmMuCisJCQkJMTg2IFJ1ZXkgS3VhbmcgUm9hZCwgTmVpaHUsCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LTI0ICAgKGhleCkJCUtpbWFsZGkgRWxlY3Ryb25pY3MsIFMuTC4KKzAwMTgyNCAgICAgKGJhc2UgMTYpCQlLaW1hbGRpIEVsZWN0cm9uaWNzLCBTLkwuCisJCQkJQ3RyYS4gZGUgUnViw60sIDI5MiBCCisJCQkJUG9sLiBJbmQuIENhbiBHdWl0YXJkCisJCQkJVGVycmFzc2EgQmFyY2Vsb25hIDA4MjI4CisJCQkJU1BBSU4KKworMDAtMTgtMjUgICAoaGV4KQkJUFJJVkFURQorMDAxODI1ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0xOC0yNiAgIChoZXgpCQlDYWxlIEFjY2VzcyBBQgorMDAxODI2ICAgICAoYmFzZSAxNikJCUNhbGUgQWNjZXNzIEFCCisJCQkJQm94IDEzMDcKKwkJCQlTb2xuYSAgU0UtMTcxIDI1CisJCQkJU1dFREVOCisKKzAwLTE4LTI3ICAgKGhleCkJCU5FQyBVTklGSUVEIFNPTFVUSU9OUyBORURFUkxBTkQgQi5WLgorMDAxODI3ICAgICAoYmFzZSAxNikJCU5FQyBVTklGSUVEIFNPTFVUSU9OUyBORURFUkxBTkQgQi5WLgorCQkJCUFOVE9OIFBISUxJUFNXRUcgMQorCQkJCUhJTFZFUlNVTSBOSCAxMjIzS1oKKwkJCQlORVRIRVJMQU5EUworCiswMC0xOC0yOCAgIChoZXgpCQllMnYgdGVjaG5vbG9naWVzIChVSykgbHRkLgorMDAxODI4ICAgICAoYmFzZSAxNikJCWUydiB0ZWNobm9sb2dpZXMgKFVLKSBsdGQuCisJCQkJMTA2IFdhdGVyaG91c2UgTGFuZQorCQkJCUNoZWxtc2ZvcmQgRXNzZXggQ00xIDJRVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE4LTI5ICAgKGhleCkJCUdhdHNvbWV0ZXIKKzAwMTgyOSAgICAgKGJhc2UgMTYpCQlHYXRzb21ldGVyCisJCQkJQ2xhZXMgVGlsbHl3ZWcgMgorCQkJCUhhYXJsZW0gTm9vcmQtSG9sbGFuZCAyMDMxIENXCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTgtMkEgICAoaGV4KQkJVGFpd2FuIFZpZGVvICYgTW9uaXRvcgorMDAxODJBICAgICAoYmFzZSAxNikJCVRhaXdhbiBWaWRlbyAmIE1vbml0b3IKKwkJCQkzRiwgMTQxIEplbiBBaSBSZCBTZWMuIDMKKwkJCQlUYWlwZWkgQ2l0eSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC0yQiAgIChoZXgpCQlTb2Z0aWVyCiswMDE4MkIgICAgIChiYXNlIDE2KQkJU29mdGllcgorCQkJCVRpZGhhciAzCisJCQkJTWlsbGVuaXVtIGJsZGcgZmxvb3IgMTEKKwkJCQlSYSdhbmFuYSBub25lIDQzNjY1CisJCQkJSVNSQUVMCisKKzAwLTE4LTJDICAgKGhleCkJCUFzY2VuZCBOZXR3b3JrcywgSW5jLgorMDAxODJDICAgICAoYmFzZSAxNikJCUFzY2VuZCBOZXR3b3JrcywgSW5jLgorCQkJCU5vLiA0IC0gNCwgTGFuZSA0MTMsIENodW5nQ2hhbiBSb2FkLAorCQkJCUJlblF1YW8gQ2l0eSBUYWlwZWkgMjIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC0yRCAgIChoZXgpCQlBcnRlYyBHcm91cCBPw4PFkworMDAxODJEICAgICAoYmFzZSAxNikJCUFydGVjIEdyb3VwIE/Dg8WTCisJCQkJVMODwrxyaSAxMEMKKwkJCQlUYWxsaW5uIEhhcmp1bWFhIDExMzEzCisJCQkJRVNUT05JQQorCiswMC0xOC0yRSAgIChoZXgpCQlYU3RyZWFtSEQsIExMQworMDAxODJFICAgICAoYmFzZSAxNikJCVhTdHJlYW1IRCwgTExDCisJCQkJNzkwMEIgV2VzdHBhcmsgRHJpdmUKKwkJCQlTdWl0ZSAyMDBUCisJCQkJTWNMZWFuIFZBIDIyMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0yRiAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxODJGICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zMCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxODMwICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zMSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxODMxICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zMiAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxODMyICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zMyAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxODMzICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zNCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAxODM0ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zNSAgIChoZXgpCQlUaG9yYXRlYyAvIElUQworMDAxODM1ICAgICAoYmFzZSAxNikJCVRob3JhdGVjIC8gSVRDCisJCQkJMjY1NiBQYXR0b24gUm9hZAorCQkJCVJvc2V2aWxsZSBNTiA1NTExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtMzYgICAoaGV4KQkJUmVsaWFuY2UgRWxlY3RyaWMgTGltaXRlZAorMDAxODM2ICAgICAoYmFzZSAxNikJCVJlbGlhbmNlIEVsZWN0cmljIExpbWl0ZWQKKwkJCQkyLTMtMiBGdWt1dXJhLCBLYW5hemF3YS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIzNi04NjQxCisJCQkJSkFQQU4KKworMDAtMTgtMzcgICAoaGV4KQkJVW5pdmVyc2FsIEFCSVQgQ28uLCBMdGQuCiswMDE4MzcgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIEFCSVQgQ28uLCBMdGQuCisJCQkJN0YsIE5vLiAzMjMgWWFuZ2d1YW5nIFN0LiwKKwkJCQlOZWlodSBUYWlwZWkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC0zOCAgIChoZXgpCQlQYW5BY2Nlc3MgQ29tbXVuaWNhdGlvbnMsSW5jLgorMDAxODM4ICAgICAoYmFzZSAxNikJCVBhbkFjY2VzcyBDb21tdW5pY2F0aW9ucyxJbmMuCisJCQkJRmxvb3IgOCxUb3dlciBCLEdsb2JhbCBUcmFkZSBDZW50ZXIsMzYgQmVpc2FuaHVhbmRvbmdsdSxEb25nY2hlbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nIDEwMDAxMworCQkJCUNISU5BCisKKzAwLTE4LTM5ICAgKGhleCkJCUNpc2NvLUxpbmtzeXMgTExDCiswMDE4MzkgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cyBMTEMKKwkJCQkxMjEgVGhlb3J5CisJCQkJSXJ2aW5lIENBIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zQSAgIChoZXgpCQlXZXN0ZWxsIFRlY2hub2xvZ2llcworMDAxODNBICAgICAoYmFzZSAxNikJCVdlc3RlbGwgVGVjaG5vbG9naWVzCisJCQkJNzUwIE4uIENvbW1vbnMgRHIuCisJCQkJQXVyb3JhIElMIDYwNTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC0zQiAgIChoZXgpCQlDRU5JVFMgQ28uLCBMdGQuCiswMDE4M0IgICAgIChiYXNlIDE2KQkJQ0VOSVRTIENvLiwgTHRkLgorCQkJCTNGLCBZYW5namFlIEJsZGcuLCAyNjQtMworCQkJCVlhbmdqYWUtRG9uZywgU2VvY2hvLUd1CisJCQkJU2VvdWwgIDEzNy0xMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtM0MgICAoaGV4KQkJRW5jb3JlIFNvZnR3YXJlIExpbWl0ZWQKKzAwMTgzQyAgICAgKGJhc2UgMTYpCQlFbmNvcmUgU29mdHdhcmUgTGltaXRlZAorCQkJCTZGIExlbyBDb21wbGV4CisJCQkJNDQgUmVzaWRlbmN5IENyb3NzIFJvYWQKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MDAyNQorCQkJCUlORElBCisKKzAwLTE4LTNEICAgKGhleCkJCVZlcnRleCBMaW5rIENvcnBvcmF0aW9uCiswMDE4M0QgICAgIChiYXNlIDE2KQkJVmVydGV4IExpbmsgQ29ycG9yYXRpb24KKwkJCQlNZWl0ZXRzdSBGdWRvc2FuIFRha2ViYXNoaSBCbGRnIDZGCisJCQkJMy0xNSBLYW5kYSBOaXNoaWtpY2hvCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtMDA1NAorCQkJCUpBUEFOCisKKzAwLTE4LTNFICAgKGhleCkJCURpZ2lsZW50LCBJbmMKKzAwMTgzRSAgICAgKGJhc2UgMTYpCQlEaWdpbGVudCwgSW5jCisJCQkJMjE1IEUuIE1haW4gU3QuCisJCQkJU3VpdGUgRAorCQkJCVB1bGxtYW4gV0EgOTkxNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTNGICAgKGhleCkJCTJXaXJlLCBJbmMKKzAwMTgzRiAgICAgKGJhc2UgMTYpCQkyV2lyZSwgSW5jCisJCQkJMTcwNCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNDAgICAoaGV4KQkJMyBQaG9lbml4LCBJbmMuCiswMDE4NDAgICAgIChiYXNlIDE2KQkJMyBQaG9lbml4LCBJbmMuCisJCQkJMTMxMzUgTGVlIEphY2tzb24gSHd5CisJCQkJU3VpdGUgMzMwCisJCQkJRmFpcmZheCBWaXJnaW5pYSAyMjAzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNDEgICAoaGV4KQkJSGlnaCBUZWNoIENvbXB1dGVyIENvcnAKKzAwMTg0MSAgICAgKGJhc2UgMTYpCQlIaWdoIFRlY2ggQ29tcHV0ZXIgQ29ycAorCQkJCTIzIEhzaW4gSHVhIFJkLgorCQkJCVRhb3l1YW4gIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtNDIgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTg0MiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MCBWCisJCQkJREVOTUFSSworCiswMC0xOC00MyAgIChoZXgpCQlEYXdldmlzaW9uIEx0ZAorMDAxODQzICAgICAoYmFzZSAxNikJCURhd2V2aXNpb24gTHRkCisJCQkJMTk3IEhpZ2ggU3RyZWV0CisJCQkJQ290dGVuaGFtIENhbWJyaWRnZSBDQjQgOFJYCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTgtNDQgICAoaGV4KQkJSGVhZHMgVXAgVGVjaG5vbG9naWVzLCBJbmMuCiswMDE4NDQgICAgIChiYXNlIDE2KQkJSGVhZHMgVXAgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMjAzMyBDaGVubmF1bHQgRHJpdmUsIFN1aXRlIDEwMAorCQkJCUNhcnJvbGx0b24gVGV4YXMgNzUwMDYtNTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNDUgICAoaGV4KQkJTlBMIFB1bHNhciBMdGQuCiswMDE4NDUgICAgIChiYXNlIDE2KQkJTlBMIFB1bHNhciBMdGQuCisJCQkJWmFoYXJvdmEsIDE4YQorCQkJCVBlbnphICA0NDAwNDQKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMTgtNDYgICAoaGV4KQkJQ3J5cHRvIFMuQS4KKzAwMTg0NiAgICAgKGJhc2UgMTYpCQlDcnlwdG8gUy5BLgorCQkJCVYuIElwaXJvdSA0NQorCQkJCU1hcm91c2kgQXRoZW5zIDE1MTI1CisJCQkJR1JFRUNFCisKKzAwLTE4LTQ3ICAgKGhleCkJCUFjZU5ldCBUZWNobm9sb2d5IEluYy4KKzAwMTg0NyAgICAgKGJhc2UgMTYpCQlBY2VOZXQgVGVjaG5vbG9neSBJbmMuCisJCQkJMTMzIFZpZW5uYSBEci4KKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNDggICAoaGV4KQkJVmVjaW1hIE5ldHdvcmtzIEluYy4KKzAwMTg0OCAgICAgKGJhc2UgMTYpCQlWZWNpbWEgTmV0d29ya3MgSW5jLgorCQkJCTE1MCBDYXJkaW5hbCBQbGFjZQorCQkJCVNhc2thdG9vbiBTayBTN0wgNkg3CisJCQkJQ0FOQURBCisKKzAwLTE4LTQ5ICAgKGhleCkJCVBpZ2VvbiBQb2ludCBTeXN0ZW1zCiswMDE4NDkgICAgIChiYXNlIDE2KQkJUGlnZW9uIFBvaW50IFN5c3RlbXMKKwkJCQkyMTkxIFMuIEVsIENhbWlubyBSZWFsCisJCQkJU3VpdGUgMjA5CisJCQkJT2NlYW5zaWRlIENBIDkyMDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC00QSAgIChoZXgpCQlDYXRjaGVyLCBJbmMuCiswMDE4NEEgICAgIChiYXNlIDE2KQkJQ2F0Y2hlciwgSW5jLgorCQkJCTU4NjQgT3dlbnMgQXZlLgorCQkJCVN1aXRlIDEwMQorCQkJCUNhcmxzYmFkIENBIDkyMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC00QiAgIChoZXgpCQlMYXMgVmVnYXMgR2FtaW5nLCBJbmMuCiswMDE4NEIgICAgIChiYXNlIDE2KQkJTGFzIFZlZ2FzIEdhbWluZywgSW5jLgorCQkJCTQwMDAgV2VzdCBBbGkgQmFiYSBMYW5lLCBTdWl0ZSBECisJCQkJTGFzIFZlZ2FzIE5ldmFkYSA4OTExOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNEMgICAoaGV4KQkJQm9nZW4gQ29tbXVuaWNhdGlvbnMKKzAwMTg0QyAgICAgKGJhc2UgMTYpCQlCb2dlbiBDb21tdW5pY2F0aW9ucworCQkJCTUwIFNwcmluZyBTdC4KKwkJCQlSYW1zZXkgTkogMDc0NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTREICAgKGhleCkJCU5ldGdlYXIgSW5jLgorMDAxODREICAgICAoYmFzZSAxNikJCU5ldGdlYXIgSW5jLgorCQkJCTQ1MDAgR3JlYXQgQW1lcmljYSBQYXJrd2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTRFICAgKGhleCkJCUxpYW5oZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTg0RSAgICAgKGJhc2UgMTYpCQlMaWFuaGUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJM0YsICMxMTksIERhSHUgU2hhblpodWFuZyBTdC4KKwkJCQlOZWlodSBEaXN0cmljdCBUYWlwZWkgQ2l0eSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LTRGICAgKGhleCkJCTggV2F5cyBUZWNobm9sb2d5IENvcnAuCiswMDE4NEYgICAgIChiYXNlIDE2KQkJOCBXYXlzIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkyRi0xLCBOby4gMjE2LCBTZWMuIDMsIFJvb3NldmVsdCBSZC4KKwkJCQlUYWlwZWkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC01MCAgIChoZXgpCQlTZWNmb25lIEtmdAorMDAxODUwICAgICAoYmFzZSAxNikJCVNlY2ZvbmUgS2Z0CisJCQkJNTEgQmVyY3NlbnlpIHN0cgorCQkJCUphc3piZXJlbnkgIDUxMDAKKwkJCQlIVU5HQVJZCisKKzAwLTE4LTUxICAgKGhleCkJCVNXc29mdAorMDAxODUxICAgICAoYmFzZSAxNikJCVNXc29mdAorCQkJCTEzNzU1IFN1bnJpc2UgVmFsbGV5IERyaXZlLCBTdWl0ZSA2MDAKKwkJCQlIZXJuZG9uIFZBIDIwMTcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC01MiAgIChoZXgpCQlTdG9yTGluayBTZW1pY29uZHVjdG9ycywgSW5jLgorMDAxODUyICAgICAoYmFzZSAxNikJCVN0b3JMaW5rIFNlbWljb25kdWN0b3JzLCBJbmMuCisJCQkJMTgwNCBOLiBTaG9yZWxpbmUgQm91bGV2YXJkCisJCQkJU3VpdGUgMjQwCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNTMgICAoaGV4KQkJQXRlcmEgTmV0d29ya3MgTFRELgorMDAxODUzICAgICAoYmFzZSAxNikJCUF0ZXJhIE5ldHdvcmtzIExURC4KKwkJCQkzMSwgSGFiYXJ6ZWwgU3QuCisJCQkJUmFtYXQgSGFjaGF5YWwKKwkJCQlUZWwtQXZpdiAgNjk3MTAKKwkJCQlJU1JBRUwKKworMDAtMTgtNTQgICAoaGV4KQkJQXJnYXJkIENvLiwgTHRkCiswMDE4NTQgICAgIChiYXNlIDE2KQkJQXJnYXJkIENvLiwgTHRkCisJCQkJMjU3MSBMYXJkcHJhbyBSZC4KKwkJCQl3YW5ndGhvbmdsYW5nIEJhbmdrb2sgMTAzMTAKKwkJCQlUSEFJTEFORAorCiswMC0xOC01NSAgIChoZXgpCQlBZXJvbWFyaXRpbWUgU3lzdGVtYmF1IEdtYkgKKzAwMTg1NSAgICAgKGJhc2UgMTYpCQlBZXJvbWFyaXRpbWUgU3lzdGVtYmF1IEdtYkgKKwkJCQlMdWR3aWctRXJoYXJkLVN0ci4gMTYKKwkJCQlELTg1Mzc1IE5ldWZhaHJuIAorCQkJCUdFUk1BTlkKKworMDAtMTgtNTYgICAoaGV4KQkJRXllRmksIEluYworMDAxODU2ICAgICAoYmFzZSAxNikJCUV5ZUZpLCBJbmMKKwkJCQkxNDkgQ29tbW9ud2VhbHRoIERyaXZlCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNTcgICAoaGV4KQkJVW5pbGV2ZXIgUiZECiswMDE4NTcgICAgIChiYXNlIDE2KQkJVW5pbGV2ZXIgUiZECisJCQkJQmxkZy4gNTAKKwkJCQlTaGFybmJyb29rCisJCQkJQmVkZm9yZCBCZWRmb3Jkc2hpcmUgTUs0NCAxTFEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOC01OCAgIChoZXgpCQlUYWdNYXN0ZXIgQUIKKzAwMTg1OCAgICAgKGJhc2UgMTYpCQlUYWdNYXN0ZXIgQUIKKwkJCQlLcm9uYm9yZ3NncsOkbmQgMQorCQkJCUtpc3RhIFN0b2NraG9sbSBTLTE2NDg3CisJCQkJU1dFREVOCisKKzAwLTE4LTU5ICAgKGhleCkJCVN0cmF3YmVycnkgTGludXggQ28uLEx0ZC4KKzAwMTg1OSAgICAgKGJhc2UgMTYpCQlTdHJhd2JlcnJ5IExpbnV4IENvLixMdGQuCisJCQkJMS0yOC04LTIwNCBIaWdhc2hpYXlhc2UKKwkJCQlBZGFjaGlrdSBUb2t5byAxMjAtMDAwNAorCQkJCUpBUEFOCisKKzAwLTE4LTVBICAgKGhleCkJCXVDb250cm9sLCBJbmMuCiswMDE4NUEgICAgIChiYXNlIDE2KQkJdUNvbnRyb2wsIEluYy4KKwkJCQk1OTE0IFcuIENvdXJ0eWFyZCBEcml2ZQorCQkJCVN1aXRlIDIxMAorCQkJCUF1c3RpbiBUWCA3ODczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNUIgICAoaGV4KQkJTmV0d29yayBDaGVtaXN0cnksIEluYworMDAxODVCICAgICAoYmFzZSAxNikJCU5ldHdvcmsgQ2hlbWlzdHJ5LCBJbmMKKwkJCQkxODA0IEVtYmFyY2FkZXJvIFJkCisJCQkJUGFsbyBBbHRvIENBIDk0MzAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC01QyAgIChoZXgpCQlFRFMgTGFiIFB0ZSBMdGQKKzAwMTg1QyAgICAgKGJhc2UgMTYpCQlFRFMgTGFiIFB0ZSBMdGQKKwkJCQkyMCBBeWVyIFJhamFoIENyZXNjZW50CisJCQkJIzA4LTI2CisJCQkJMTM5OTY0CisJCQkJU0lOR0FQT1JFCisKKzAwLTE4LTVEICAgKGhleCkJCVRBSUdVRU4gVEVDSE5PTE9HWSAoU0hFTi1aSEVOKSBDTy4sIExURC4KKzAwMTg1RCAgICAgKGJhc2UgMTYpCQlUQUlHVUVOIFRFQ0hOT0xPR1kgKFNIRU4tWkhFTikgQ08uLCBMVEQuCisJCQkJTm8uIDIzLCBUaGUgVGhpcmQgSW5kdXN0cmlhbCBQYXJrIG9mIFhpYSBWaWxsYWdlLAorCQkJCUdvbmdtaW5nLCBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBDaXR5LCBHdWFuZ2RvbmcsIDgxNTEwNgorCQkJCUNISU5BCisKKzAwLTE4LTVFICAgKGhleCkJCU5leHRlcm0gSW5jLgorMDAxODVFICAgICAoYmFzZSAxNikJCU5leHRlcm0gSW5jLgorCQkJCTEtMTItMywgU2hpYmF1cmEsIE1pbmF0by1rdSwKKwkJCQlUb2t5byAgMTA1LTAwMjMKKwkJCQlKQVBBTgorCiswMC0xOC01RiAgIChoZXgpCQlUQUMgSW5jLgorMDAxODVGICAgICAoYmFzZSAxNikJCVRBQyBJbmMuCisJCQkJNjYgTmlzaGlpc2hpZ2F0c3Vib2NobyBOaXNoaW5hbmFqeW8gU2hpbW9neW9rdQorCQkJCUt5b3RvICA2MDAtODg5NgorCQkJCUpBUEFOCisKKzAwLTE4LTYwICAgKGhleCkJCVNJTSBUZWNobm9sb2d5IEdyb3VwIFNoYW5naGFpIFNpbWNvbSBMdGQuLAorMDAxODYwICAgICAoYmFzZSAxNikJCVNJTSBUZWNobm9sb2d5IEdyb3VwIFNoYW5naGFpIFNpbWNvbSBMdGQuLAorCQkJCVNJTSBUZWNobm9sb2d5IGJ1aWxkaW5nLAorCQkJCTcwMCBZaXNoYW4gUmQsIFNoYW5naGFpIDIwMDIzMworCQkJCVNoYW5naGFpICAyMDAyMzMKKwkJCQlDSElOQQorCiswMC0xOC02MSAgIChoZXgpCQlPb21hLCBJbmMuCiswMDE4NjEgICAgIChiYXNlIDE2KQkJT29tYSwgSW5jLgorCQkJCTU1NSBVbml2ZXJzaXR5IEF2ZW51ZQorCQkJCVBhbG8gQWx0byBDQSA5NDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNjIgICAoaGV4KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CiswMDE4NjIgICAgIChiYXNlIDE2KQkJU2VhZ2F0ZSBUZWNobm9sb2d5CisJCQkJMTI4MCBEaXNjIERyaXZlCisJCQkJU2hha29wZWUgTU4gNTUzNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTYzICAgKGhleCkJCVZlcml0ZWNoIEVsZWN0cm9uaWNzIExpbWl0ZWQKKzAwMTg2MyAgICAgKGJhc2UgMTYpCQlWZXJpdGVjaCBFbGVjdHJvbmljcyBMaW1pdGVkCisJCQkJOEYsIDY3LCBTZWMuIDEsIFpob25nc2hhbiBSb2FkLCBYaW56aHVhbmcsCisJCQkJVGFpcGVpICAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LTY0ICAgKGhleCkJCUN5YmVjdGVjIEluYy4KKzAwMTg2NCAgICAgKGJhc2UgMTYpCQlDeWJlY3RlYyBJbmMuCisJCQkJNzMwLCBydWUgQ29tbWVyY2lhbGUKKwkJCQlTdWl0ZSAyMDAKKwkJCQlTdC1KZWFuLUNocnlzb3N0b21lIFFDIEc2WiAyQzUKKwkJCQlDQU5BREEKKworMDAtMTgtNjUgICAoaGV4KQkJU2llbWVucyBIZWFsdGhjYXJlIERpYWdub3N0aWNzIE1hbnVmYWN0dXJpbmcgTHRkCiswMDE4NjUgICAgIChiYXNlIDE2KQkJU2llbWVucyBIZWFsdGhjYXJlIERpYWdub3N0aWNzIE1hbnVmYWN0dXJpbmcgTHRkCisJCQkJTm9ydGhlcm4gUm9hZAorCQkJCUNoaWx0b24gSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlTdWRidXJ5IFN1ZmZvbGsgQzAxMCAyWFEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOC02NiAgIChoZXgpCQlMZXV0cm9uIFZpc2lvbgorMDAxODY2ICAgICAoYmFzZSAxNikJCUxldXRyb24gVmlzaW9uCisJCQkJSW5kdXN0cmllc3RyYXNzZSA1NworCQkJCUdsYXR0YnJ1Z2cgWkggODE1MgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE4LTY3ICAgKGhleCkJCUV2b2x1dGlvbiBSb2JvdGljcyBSZXRhaWwKKzAwMTg2NyAgICAgKGJhc2UgMTYpCQlFdm9sdXRpb24gUm9ib3RpY3MgUmV0YWlsCisJCQkJNDMzIE4uIEZhaXIgT2FrcyBBdmUKKwkJCQlQYXNhZGVuYSBDQSA5MTEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNjggICAoaGV4KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBBIENpc2NvIENvbXBhbnkKKzAwMTg2OCAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIEF0bGFudGEsIEEgQ2lzY28gQ29tcGFueQorCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC02OSAgIChoZXgpCQlLSU5HSklNCiswMDE4NjkgICAgIChiYXNlIDE2KQkJS0lOR0pJTQorCQkJCU5vLjEwLTE4LDItQ2hvbWUKKwkJCQlIaWdhc2hpLUthbmRhCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtMDAzMQorCQkJCUpBUEFOCisKKzAwLTE4LTZBICAgKGhleCkJCUdsb2JhbCBMaW5rIERpZ2l0YWwgVGVjaG5vbG9neSBDbywuTFRECiswMDE4NkEgICAgIChiYXNlIDE2KQkJR2xvYmFsIExpbmsgRGlnaXRhbCBUZWNobm9sb2d5IENvLC5MVEQKKwkJCQlRaWJhb3lpZGluZyBJbmQuQXJlYQorCQkJCUxpdWNob25nd2VpIFdhbmppYW5nIHRvd24KKwkJCQlEb25nZ3VhbiBHdWFuZ2RvbmcgNTIzMDUxCisJCQkJQ0hJTkEKKworMDAtMTgtNkIgICAoaGV4KQkJU2FtYnUgQ29tbXVuaWNzIENPLiwgTFRELgorMDAxODZCICAgICAoYmFzZSAxNikJCVNhbWJ1IENvbW11bmljcyBDTy4sIExURC4KKwkJCQkzOEItMUwgTmFtZG9uZyBJbmR1c3RyaWFsIENvbXBsZXgKKwkJCQk2MjYgTmFtY2hvbi1kb25nLCBOYW1kb25nLWd1CisJCQkJSW5jaGVvbiAgNDA1LTEwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC02QyAgIChoZXgpCQlOZW9ub2RlIEFCCiswMDE4NkMgICAgIChiYXNlIDE2KQkJTmVvbm9kZSBBQgorCQkJCUJpYmxpb3Rla3NnYXRhbiAxMSwgMXN0IGZsb29yCisJCQkJU3RvY2tob2xtICBTLTExMSA0NgorCQkJCVNXRURFTgorCiswMC0xOC02RCAgIChoZXgpCQlaaGVuamlhbmcgU2FwcGhpcmUgRWxlY3Ryb25pYyBJbmR1c3RyeSBDTy4KKzAwMTg2RCAgICAgKGJhc2UgMTYpCQlaaGVuamlhbmcgU2FwcGhpcmUgRWxlY3Ryb25pYyBJbmR1c3RyeSBDTy4KKwkJCQlXZWkgU2FuIFJvYWQsRGluZ21hbyBEZXZlbG9wIEFyZWEKKwkJCQl6aGVuamlhbmcgamlhbmdzdSAyMTIwMDkKKwkJCQlDSElOQQorCiswMC0xOC02RSAgIChoZXgpCQkzQ29tIEx0ZAorMDAxODZFICAgICAoYmFzZSAxNikJCTNDb20gTHRkCisJCQkJUGVvcGxlYnVpbGRpbmcgMgorCQkJCVBlb3BsZWJ1aWxkaW5nIEVzdGF0ZSwgTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzLiBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMTgtNkYgICAoaGV4KQkJU2V0aGEgSW5kdXN0cmlhIEVsZXRyb25pY2EgTFREQQorMDAxODZGICAgICAoYmFzZSAxNikJCVNldGhhIEluZHVzdHJpYSBFbGV0cm9uaWNhIExUREEKKwkJCQlSdWEgQWx2YXJvIGRlIE1hY2VkbyAxMzQKKwkJCQlQYXJhZGEgZGUgTHVjYXMKKwkJCQlSaW8gZGUgSmFuZWlybyBSSiAyMS4yNTAtNjIwCisJCQkJQlJBWklMCisKKzAwLTE4LTcwICAgKGhleCkJCUUyOCBTaGFuZ2hhaSBMaW1pdGVkCiswMDE4NzAgICAgIChiYXNlIDE2KQkJRTI4IFNoYW5naGFpIExpbWl0ZWQKKwkJCQkyL0YgRWFzdGVybiBUb3dlcgorCQkJCTY4OSBCZWlqaW5nIFJvYWQgKEVhc3QpCisJCQkJU2hhbmdoYWkgIDIwMDAwMQorCQkJCUNISU5BCisKKzAwLTE4LTcxICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDE4NzEgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNzIgICAoaGV4KQkJRXhwZXJ0aXNlIEVuZ2luZWVyaW5nCiswMDE4NzIgICAgIChiYXNlIDE2KQkJRXhwZXJ0aXNlIEVuZ2luZWVyaW5nCisJCQkJNDE4NiBTb3JyZW50byBWYWxsZXkgQmx2ZCBTdWl0ZSAtSgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNzMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxODczICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNzQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxODc0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtNzUgICAoaGV4KQkJQW5hQ2lzZSBUZXN0bm9sb2d5IFB0ZSBMdGQKKzAwMTg3NSAgICAgKGJhc2UgMTYpCQlBbmFDaXNlIFRlc3Rub2xvZ3kgUHRlIEx0ZAorCQkJCTMgQmlzaGFuIFBsYWNlICMwMi0wNgorCQkJCUNQRiBCaXNoYW4gQnVpbGRpbmcKKwkJCQk1Nzk4MzgKKwkJCQlTSU5HQVBPUkUKKworMDAtMTgtNzYgICAoaGV4KQkJV293V2VlIEx0ZC4KKzAwMTg3NiAgICAgKGJhc2UgMTYpCQlXb3dXZWUgTHRkLgorCQkJCTkyIEdyYW52aWxsZSBSZC4gU3VpdGUgMzAxQS1DCisJCQkJRW5lcmd5IFBsYXphCisJCQkJVC5TLlQuIEVhc3QgS293bG9vbiAKKwkJCQlIT05HIEtPTkcKKworMDAtMTgtNzcgICAoaGV4KQkJQW1wbGV4IEEvUworMDAxODc3ICAgICAoYmFzZSAxNikJCUFtcGxleCBBL1MKKwkJCQlTaWxrZWJvcmd2ZWogMgorCQkJCUFhcmh1cyBDICA4MDAwCisJCQkJREVOTUFSSworCiswMC0xOC03OCAgIChoZXgpCQlNYWNrd2FyZSBHbWJICiswMDE4NzggICAgIChiYXNlIDE2KQkJTWFja3dhcmUgR21iSAorCQkJCVNjaMOkbnpsZSAxMworCQkJCVdhaWJsaW5nZW4gQmFkZW4tV8O8cnR0ZW1iZXJnIDcxMzMyCisJCQkJR0VSTUFOWQorCiswMC0xOC03OSAgIChoZXgpCQlkU3lzCiswMDE4NzkgICAgIChiYXNlIDE2KQkJZFN5cworCQkJCVNvZWZsaW5nZXIgU3RyLiAxMDAKKwkJCQlVbG0gQlcgODkwNzcKKwkJCQlHRVJNQU5ZCisKKzAwLTE4LTdBICAgKGhleCkJCVdpcmVtb2xkCiswMDE4N0EgICAgIChiYXNlIDE2KQkJV2lyZW1vbGQKKwkJCQk2MCBXb29kbGF3biBTdC4KKwkJCQlXZXN0IEhhcnRmb3JkIENUIDA2MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC03QiAgIChoZXgpCQk0TlNZUyBDby4gTHRkLgorMDAxODdCICAgICAoYmFzZSAxNikJCTROU1lTIENvLiBMdGQuCisJCQkJM0YsIEhhbmEgQmxkZworCQkJCTExOC0yLCBPcnl1LURvbmcKKwkJCQlHdXJvLUd1IFNlb3VsIDE1Mi0xMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtN0MgICAoaGV4KQkJSU5URVJDUk9TUywgTExDCiswMDE4N0MgICAgIChiYXNlIDE2KQkJSU5URVJDUk9TUywgTExDCisJCQkJTm92b3NlbG92IHN0ci4sIDU4LzcKKwkJCQlSeWF6YW4gIDM5MDA0OQorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xOC03RCAgIChoZXgpCQlBcm1vcmxpbmsgc2hhbmdoYWkgQ28uIEx0ZAorMDAxODdEICAgICAoYmFzZSAxNikJCUFybW9ybGluayBzaGFuZ2hhaSBDby4gTHRkCisJCQkJTk8gNTE1LCBTaGVuZ2Z1IHJvYWQKKwkJCQlTaGFuZ2hhaSAgMjAxMTA4CisJCQkJQ0hJTkEKKworMDAtMTgtN0UgICAoaGV4KQkJUkdCIFNwZWN0cnVtCiswMDE4N0UgICAgIChiYXNlIDE2KQkJUkdCIFNwZWN0cnVtCisJCQkJOTUwIE1hcmluYSBWaWxsYWdlIFBrd3kKKwkJCQlBbGFtZWRhIENBIDk0NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC03RiAgIChoZXgpCQlaT0RJQU5FVAorMDAxODdGICAgICAoYmFzZSAxNikJCVpPRElBTkVUCisJCQkJMjMsIHJ1ZSBkZXMgRnJhaXNldHRlcworCQkJCVBBTEFJU0VBVSBFU1NPTk5FIDkxMTIwCisJCQkJRlJBTkNFCisKKzAwLTE4LTgwICAgKGhleCkJCU1heGltIEludGVncmF0ZWQgUHJvZHVjdHMKKzAwMTg4MCAgICAgKGJhc2UgMTYpCQlNYXhpbSBJbnRlZ3JhdGVkIFByb2R1Y3RzCisJCQkJMTIwIFNhbiBHYWJyaWVsIERyLgorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtODEgICAoaGV4KQkJQnV5YW5nIEVsZWN0cm9uaWNzIEluZHVzdHJpYWwgQ28uLCBMdGQKKzAwMTg4MSAgICAgKGJhc2UgMTYpCQlCdXlhbmcgRWxlY3Ryb25pY3MgSW5kdXN0cmlhbCBDby4sIEx0ZAorCQkJCTQzNC0xNDAsIE9yeXUtRG9uZworCQkJCVNlby1LdQorCQkJCUluY2hlb24gIDQwNC0zMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtODIgICAoaGV4KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMTg4MiAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCUYxLTIwLFNlY3Rpb24gRixIdWF3ZWkgQmFzZSxCYW50aWFuLCBMb25nZ2FuZyBEaXN0cmljdAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCiswMC0xOC04MyAgIChoZXgpCQlGT1JNT1NBMjEgSU5DLgorMDAxODgzICAgICAoYmFzZSAxNikJCUZPUk1PU0EyMSBJTkMuCisJCQkJOEYtNiwgTk8uMzUxLCBDSFVORyBTSEFOIFJELiwgU0VDLjIKKwkJCQlDSFVORyBITyBDSVRZCisJCQkJVEFJUEVJICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LTg0ICAgKGhleCkJCUZvbiBUZWNobm9sb2d5IFMuTC4KKzAwMTg4NCAgICAgKGJhc2UgMTYpCQlGb24gVGVjaG5vbG9neSBTLkwuCisJCQkJQXZkYS4gQnJ1c2VsYXMsIG4uIDcsIFBsYW50YSAzLCBBbGNvYmVuZGFzCisJCQkJTWFkcmlkIDI4MTAwCisJCQkJU1BBSU4KKworMDAtMTgtODUgICAoaGV4KQkJQXZpZ2lsb24gQ29ycG9yYXRpb24KKzAwMTg4NSAgICAgKGJhc2UgMTYpCQlBdmlnaWxvbiBDb3Jwb3JhdGlvbgorCQkJCUJveCAzNzgsIDEwMSAtIDEwMDEgV2VzdCBCcm9hZHdheQorCQkJCVZhbmNvdXZlciBCQyBWNkggNEU0CisJCQkJQ0FOQURBCisKKzAwLTE4LTg2ICAgKGhleCkJCUVMLVRFQ0gsIElOQy4KKzAwMTg4NiAgICAgKGJhc2UgMTYpCQlFTC1URUNILCBJTkMuCisJCQkJQS03MTEsIFdPT0xJTSBMSU9OJ1MgVkFMTEVZLCAzNzEtMjgKKwkJCQlHQVNBTi1ET05HLCBHRVVNQ0hFT04tR1UsCisJCQkJU0VPVUwgIDE1MC04MzQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtODcgICAoaGV4KQkJTWV0YXN5c3RlbSBTcEEKKzAwMTg4NyAgICAgKGJhc2UgMTYpCQlNZXRhc3lzdGVtIFNwQQorCQkJCVZpYSBPYmVyZGFuIDE2CisJCQkJUmVnZ2lvIEVtaWxpYSBSRSA0MjEwMAorCQkJCUlUQUxZCisKKzAwLTE4LTg4ICAgKGhleCkJCUdPVElWRSBhLnMuCiswMDE4ODggICAgIChiYXNlIDE2KQkJR09USVZFIGEucy4KKwkJCQlaw6Ftb2Nrw6EgMzQKKwkJCQlCcmF0aXNsYXZhICA4MTEwMQorCQkJCVNMT1ZBS0lBCisKKzAwLTE4LTg5ICAgKGhleCkJCVdpbk5ldCBTb2x1dGlvbnMgTGltaXRlZAorMDAxODg5ICAgICAoYmFzZSAxNikJCVdpbk5ldCBTb2x1dGlvbnMgTGltaXRlZAorCQkJCVJtODA0LCBLb3JuaGlsbCBNZXRybyBUb3dlciwgUXVhcnJ5IEJheQorCQkJCUhLIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xOC04QSAgIChoZXgpCQlJbmZpbm92YSBMTEMKKzAwMTg4QSAgICAgKGJhc2UgMTYpCQlJbmZpbm92YSBMTEMKKwkJCQk1MSBTdG91dHMgTGFuZSwgVW5pdCAxICYgMgorCQkJCU1vbm1vdXRoIEp1bmN0aW9uIE5ldyBKZXJzZXkgMDg4NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LThCICAgKGhleCkJCURlbGwKKzAwMTg4QiAgICAgKGJhc2UgMTYpCQlEZWxsCisJCQkJT25lIERlbGwgV2F5CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtOEMgICAoaGV4KQkJTW9iaWxlIEFjdGlvbiBUZWNobm9sb2d5IEluYy4KKzAwMTg4QyAgICAgKGJhc2UgMTYpCQlNb2JpbGUgQWN0aW9uIFRlY2hub2xvZ3kgSW5jLgorCQkJCTVGLCBOby4gMjA1LTMsIFNlYy4gMywgQmVpc2hpbiBSZC4KKwkJCQlTaGluZGlhbiBDaXR5LCBUYWlwZWkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtOEQgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTg4RCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgMTc5MAorCQkJCURFTk1BUksKKworMDAtMTgtOEUgICAoaGV4KQkJRWthaGF1LCBJbmMuCiswMDE4OEUgICAgIChiYXNlIDE2KQkJRWthaGF1LCBJbmMuCisJCQkJVGFsbGJlcmdpbmthdHUgMgorCQkJCUhFTFNJTktJIFVVU0lNQUEgMDAxODAKKwkJCQlGSU5MQU5ECisKKzAwLTE4LThGICAgKGhleCkJCU1vbnRnb21lcnkgVGVjaG5vbG9neSwgSW5jLgorMDAxODhGICAgICAoYmFzZSAxNikJCU1vbnRnb21lcnkgVGVjaG5vbG9neSwgSW5jLgorCQkJCTgwMCBFYXN0IENvbW1lcmNlIFN0cmVldAorCQkJCUdyZWVudmlsbGUgQUwgMzYwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LTkwICAgKGhleCkJCVJhZGlvQ09NLCBzLnIuby4KKzAwMTg5MCAgICAgKGJhc2UgMTYpCQlSYWRpb0NPTSwgcy5yLm8uCisJCQkJTWlzaWtvdmEgMjIKKwkJCQlCcmF0aXNsYXZhICA4MTEgMDYKKwkJCQlTTE9WQUtJQQorCiswMC0xOC05MSAgIChoZXgpCQlaaG9uZ3NoYW4gR2VuZXJhbCBLLW1hdGUgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzAwMTg5MSAgICAgKGJhc2UgMTYpCQlaaG9uZ3NoYW4gR2VuZXJhbCBLLW1hdGUgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKwkJCQkzL0YgQjEgQnVpbGRpbmcsIEZ1d2FuIEluZC4gWm9uZSBTdW4gV2VuIEVhc3QgUm9hZAorCQkJCVpob25nc2hhbiBHdWFuZ2RvbmcgNTI4NDAzCisJCQkJQ0hJTkEKKworMDAtMTgtOTIgICAoaGV4KQkJYWRzLXRlYyBHbWJICiswMDE4OTIgICAgIChiYXNlIDE2KQkJYWRzLXRlYyBHbWJICisJCQkJUmFpZmZlaXNlbnN0cmFzc2UgMTQKKwkJCQlMZWluZmVsZGVuLUVjaHRlcmRpbmdlbiBCYWRlbi1Xw7xydHRlbWJlcmcgNzA3NzEKKwkJCQlHRVJNQU5ZCisKKzAwLTE4LTkzICAgKGhleCkJCVNIRU5aSEVOIFBIT1RPTiBCUk9BREJBTkQgVEVDSE5PTE9HWSBDTy4sTFRECiswMDE4OTMgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gUEhPVE9OIEJST0FEQkFORCBURUNITk9MT0dZIENPLixMVEQKKwkJCQkyL0YgSGl2YWMgQkxELDJ0aCBMYW5nc2hhbiBSZCxOb3J0aCBIaS1UZWNoIEluZHVzdHJpYWwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMTgtOTQgICAoaGV4KQkJemltb2NvbQorMDAxODk0ICAgICAoYmFzZSAxNikJCXppbW9jb20KKwkJCQkzfjVGLCBCb25nVWkgQmxkZywgNzYtMSwgTXVuamVvbmctZG9uZworCQkJCVNvbmdwYWd1CisJCQkJU2VvdWwgIDEzOC0yMDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtOTUgICAoaGV4KQkJSGFuc3VuIFRlY2hub2xvZ2llcyBJbmMuCiswMDE4OTUgICAgIChiYXNlIDE2KQkJSGFuc3VuIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJUm9vbSAzMDEsIEJ1aWxkaW5nIDEwMywgV2FuZ2ppbmdrZWppeXVhbiwgQ2hhb3lhbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAxMDIKKwkJCQlDSElOQQorCiswMC0xOC05NiAgIChoZXgpCQlHcmVhdCBXZWxsIEVsZWN0cm9uaWMgTFRECiswMDE4OTYgICAgIChiYXNlIDE2KQkJR3JlYXQgV2VsbCBFbGVjdHJvbmljIExURAorCQkJCVRoZSBUaGlyZCBJbmR1c3RyaWFsICBBcmVhCisJCQkJR3VhbmxhbiBUb3duCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODExMAorCQkJCUNISU5BCisKKzAwLTE4LTk3ICAgKGhleCkJCUpFU1MtTElOSyBQUk9EVUNUUyBDby4sIExURAorMDAxODk3ICAgICAoYmFzZSAxNikJCUpFU1MtTElOSyBQUk9EVUNUUyBDby4sIExURAorCQkJCTlGLCBOby4gMTc2LCBKaWFuLVlpIFJkLiwgQ2h1bmcgSG8gQ2l0eQorCQkJCVRhaXBlaSBDb3VudHkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtOTggICAoaGV4KQkJS0lOR1NUQVRFIEVMRUNUUk9OSUNTIENPUlBPUkFUSU9OCiswMDE4OTggICAgIChiYXNlIDE2KQkJS0lOR1NUQVRFIEVMRUNUUk9OSUNTIENPUlBPUkFUSU9OCisJCQkJMTBGLCBOby42OS0xMSwgU2VjLjIsIENodW5nIENoZW5nIEUuIFJkLiwKKwkJCQlUYW1zaHVpIFRvd24KKwkJCQlUYWlwZWkgQ291bnR5ICAyNTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LTk5ICAgKGhleCkJCVNoZW5aaGVuIGppZXNodW4gU2NpZW5jZSZUZWNobm9sb2d5IEluZHVzdHJ5IENPLExURC4KKzAwMTg5OSAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBqaWVzaHVuIFNjaWVuY2UmVGVjaG5vbG9neSBJbmR1c3RyeSBDTyxMVEQuCisJCQkJQ2hpbmEgR3VhbmdEb25nIHN0YXRlIFNoZW56aGVuIENpdHkgRnV0aWFuIHNlY3Rpb24gTk8xNy4gTWVpbGluIFJvYWQKKwkJCQlTaGVuemhlbiBHdWFuZ0RvbmcgNTE4MDQ5CisJCQkJQ0hJTkEKKworMDAtMTgtOUEgICAoaGV4KQkJSEFOQSBNaWNyb24gSW5jLgorMDAxODlBICAgICAoYmFzZSAxNikJCUhBTkEgTWljcm9uIEluYy4KKwkJCQkjOTUtMSBXb25uYW0tTGksIFVtYm9uZy1NeWVvbgorCQkJCUNodW5nLU5hbSwgU291dGggS29yZWEuCisJCQkJQXNhbi1DaXR5IENodW5nLU5hbSAzMzYtODY0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LTlCICAgKGhleCkJCVRob21zb24gSW5jLgorMDAxODlCICAgICAoYmFzZSAxNikJCVRob21zb24gSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MC0xMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC05QyAgIChoZXgpCQlXZWxkZXggQ29ycG9yYXRpb24KKzAwMTg5QyAgICAgKGJhc2UgMTYpCQlXZWxkZXggQ29ycG9yYXRpb24KKwkJCQk2NzUxIEthdGVsbGEgQXZlbnVlCisJCQkJQ3lwcmVzcyBDQSA5MDYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtOUQgICAoaGV4KQkJTmF2Y2FzdCBJbmMuCiswMDE4OUQgICAgIChiYXNlIDE2KQkJTmF2Y2FzdCBJbmMuCisJCQkJU3VpdGUgNjEyLCA2NzExIE1pc3Npc3NhdWdhIFJvYWQKKwkJCQlNaXNzaXNzYXVnYSBPTiBtMnIgMWEzCisJCQkJQ0FOQURBCisKKzAwLTE4LTlFICAgKGhleCkJCU9NTklLRVkgR21iSC4KKzAwMTg5RSAgICAgKGJhc2UgMTYpCQlPTU5JS0VZIEdtYkguCisJCQkJRmVyaWh1bWVyc3RyYXNzZSAxMworCQkJCUxpbnogVXBwZXJhdXN0cmlhIDQwNDAKKwkJCQlBVVNUUklBCisKKzAwLTE4LTlGICAgKGhleCkJCUxlbm50ZWsgQ29ycG9yYXRpb24KKzAwMTg5RiAgICAgKGJhc2UgMTYpCQlMZW5udGVrIENvcnBvcmF0aW9uCisJCQkJNEYsIDEyNSBHdWFuZ01pbmcgM3JkLiBSb2FkCisJCQkJSmh1IEJlaSBIc2luIENodSAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LUEwICAgKGhleCkJCUNpZXJtYSBBc2NlbnNldXJzCiswMDE4QTAgICAgIChiYXNlIDE2KQkJQ2llcm1hIEFzY2Vuc2V1cnMKKwkJCQkxNyBhdmVudWUgZ3VpZ2xpb25kYSBkZSBzYWludCBhZ2F0aGUKKwkJCQlOaWNlIFBBQ0EgMDYzMDAKKwkJCQlGUkFOQ0UKKworMDAtMTgtQTEgICAoaGV4KQkJVGlxaXQgQ29tcHV0ZXJzLCBJbmMuCiswMDE4QTEgICAgIChiYXNlIDE2KQkJVGlxaXQgQ29tcHV0ZXJzLCBJbmMuCisJCQkJMjIxNSBPbGQgUGFnZSBNaWxsIFJkCisJCQkJUGFsbyBBbHRvIENBIDk0MzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1BMiAgIChoZXgpCQlYSVAgVGVjaG5vbG9neSBBQgorMDAxOEEyICAgICAoYmFzZSAxNikJCVhJUCBUZWNobm9sb2d5IEFCCisJCQkJUE8gQm94IDQzNworCQkJCUrDtm5rw7ZwaW5nIFN3ZWRlbiBTRS0gNTUxIDE2CisJCQkJU1dFREVOCisKKzAwLTE4LUEzICAgKGhleCkJCVpJUFBZIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMThBMyAgICAgKGJhc2UgMTYpCQlaSVBQWSBURUNITk9MT0dZIENPUlAuCisJCQkJMTBGLCBOby4gNTAsIE1pbmN5dWFuIFJkLiwgU2luZGlhbiBDaXR5CisJCQkJVGFpcGVpICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LUE0ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDE4QTQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gSHd5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1BNSAgIChoZXgpCQlBRGlnaXQgVGVjaG5vbG9naWVzIENvcnAuCiswMDE4QTUgICAgIChiYXNlIDE2KQkJQURpZ2l0IFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCVJtIEQzMDJFLE5vLjE4NSAzRi0yLEt1ci1Xb25nIFJvYWQsCisJCQkJTHVuZy1UYW5nLAorCQkJCVRhby15dWFuLCAgMzI1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC1BNiAgIChoZXgpCQlQZXJzaXN0ZW50IFN5c3RlbXMsIExMQworMDAxOEE2ICAgICAoYmFzZSAxNikJCVBlcnNpc3RlbnQgU3lzdGVtcywgTExDCisJCQkJMTE4IE4uIEhvd2FyZCBTdC4gIzcyCisJCQkJQmFsdGltb3JlIE1EIDIxMjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1BNyAgIChoZXgpCQlZb2dnaWUgU2VjdXJpdHkgU3lzdGVtcyBMVEQuCiswMDE4QTcgICAgIChiYXNlIDE2KQkJWW9nZ2llIFNlY3VyaXR5IFN5c3RlbXMgTFRELgorCQkJCVAuUC5Cb3ggMTU2CisJCQkJQmV0aCBIYWxldnkgIDQyODcwCisJCQkJSVNSQUVMCisKKzAwLTE4LUE4ICAgKGhleCkJCUFuTmVhbCBUZWNobm9sb2d5IEluYy4KKzAwMThBOCAgICAgKGJhc2UgMTYpCQlBbk5lYWwgVGVjaG5vbG9neSBJbmMuCisJCQkJTm8uMzAtMTEsIFd1bmh1YSBSZC4sIE1pbnN5b25nCisJCQkJQ2hpYXlpICA2MjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LUE5ICAgKGhleCkJCUV0aGVybmV0IERpcmVjdCBDb3Jwb3JhdGlvbgorMDAxOEE5ICAgICAoYmFzZSAxNikJCUV0aGVybmV0IERpcmVjdCBDb3Jwb3JhdGlvbgorCQkJCTE5RixOby4zNDUgQ2h1bmcgSG8gUm9hZCwgWXVuZyBIbyBDaXR5CisJCQkJVGFpcGVpICAyMzQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LUFBICAgKGhleCkJCVByb3RlYyBGaXJlIERldGVjdGlvbiBwbGMKKzAwMThBQSAgICAgKGJhc2UgMTYpCQlQcm90ZWMgRmlyZSBEZXRlY3Rpb24gcGxjCisJCQkJUHJvdGVjIEhvdXNlCisJCQkJQ2h1cmNoaWxsIFdheQorCQkJCU5lbHNvbiBMYW5jYXNoaXJlIEJCOSA2UlQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOC1BQiAgIChoZXgpCQlCRUlKSU5HIExIV1QgTUlDUk9FTEVDVFJPTklDUyBJTkMuCiswMDE4QUIgICAgIChiYXNlIDE2KQkJQkVJSklORyBMSFdUIE1JQ1JPRUxFQ1RST05JQ1MgSU5DLgorCQkJCTE4L0YsUVVBTlRVTSBQTEFaQSxOTy4yNyBaSEkgQ0hVTiBSRC4sSEFJIERJQU4gRElTVFJJQ1QsQkVJSklORworCQkJCUNISU5BCisKKzAwLTE4LUFDICAgKGhleCkJCVNoYW5naGFpIEppYW8gRGEgSElTWVMgVGVjaG5vbG9neSBDby4gTHRkLgorMDAxOEFDICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEppYW8gRGEgSElTWVMgVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCTdGIEhhb3JhbiBIaVRlY2ggQmxkZy4sIE5vLjE5NTQgSHVhc2hhbiBSb2FkCisJCQkJc2hhbmdoYWkgeHVodWkgMjAwMDMwCisJCQkJQ0hJTkEKKworMDAtMTgtQUQgICAoaGV4KQkJTklERUMgU0FOS1lPIENPUlBPUkFUSU9OCiswMDE4QUQgICAgIChiYXNlIDE2KQkJTklERUMgU0FOS1lPIENPUlBPUkFUSU9OCisJCQkJNTMyOSwgU2hpbW9zdXdhLW1hY2hpLCBTdXdhLWd1bgorCQkJCU5hZ2FubyAzOTMtODUxMQorCQkJCUpBUEFOCisKKzAwLTE4LUFFICAgKGhleCkJCVRWVCBDTy4sTFRECiswMDE4QUUgICAgIChiYXNlIDE2KQkJVFZUIENPLixMVEQKKwkJCQk1L0YsTm9ydGggQmxvY2ssQ0UgTGlnaHRpbmcgSG91c2UKKwkJCQlIaS10ZWNoIFBhcmssIE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODAyNgorCQkJCUNISU5BCisKKzAwLTE4LUFGICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDE4QUYgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWktQ2l0eSBHeWVvbmctQnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtQjAgICAoaGV4KQkJTm9ydGVsCiswMDE4QjAgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTE4LUIxICAgKGhleCkJCUlCTSBDb3JwCiswMDE4QjEgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkyMDUxIE1pc3Npb24gQ29sbGVnZSBCbHZkIAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1CMiAgIChoZXgpCQlBREVVTklTIFJGCiswMDE4QjIgICAgIChiYXNlIDE2KQkJQURFVU5JUyBSRgorCQkJCTI4MyBSdWUgTkVFTAorCQkJCUNST0xMRVMgSVNFUkUgMzg5MjAKKwkJCQlGUkFOQ0UKKworMDAtMTgtQjMgICAoaGV4KQkJVEVDIFdpekhvbWUgQ28uLCBMdGQuCiswMDE4QjMgICAgIChiYXNlIDE2KQkJVEVDIFdpekhvbWUgQ28uLCBMdGQuCisJCQkJMThmbC4sIEluLVNvbmcgYmxkZy4sIDE5NC0xNSwKKwkJCQlIZW9oeXVuLURvbmcsIDFHYSwgSnVuZy1HdQorCQkJCVNlb3VsICAxMDAtOTUyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LUI0ICAgKGhleCkJCURhd29uIE1lZGlhIEluYy4KKzAwMThCNCAgICAgKGJhc2UgMTYpCQlEYXdvbiBNZWRpYSBJbmMuCisJCQkJUm01MDMuIHdvb2xpbSBlLWJpeiBjZW50ZXIgMTcwLTUsIEd1cm8zZG9uZyBHdXJvZ3UsCisJCQkJU2VvdWwgIDE1Mi03NjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtQjUgICAoaGV4KQkJTWFnbmEgQ2FydGEKKzAwMThCNSAgICAgKGJhc2UgMTYpCQlNYWduYSBDYXJ0YQorCQkJCU5hcml0YXdlZyAxMjYKKwkJCQlBbXN0ZXJkYW0gTm9vcmQgSG9sbGFuZCAxMDQzIENBCisJCQkJTkVUSEVSTEFORFMKKworMDAtMTgtQjYgICAoaGV4KQkJUzNDLCBJbmMuCiswMDE4QjYgICAgIChiYXNlIDE2KQkJUzNDLCBJbmMuCisJCQkJMTAxMCBTdGV3YXJ0IERyLgorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1CNyAgIChoZXgpCQlEMyBMRUQsIExMQworMDAxOEI3ICAgICAoYmFzZSAxNikJCUQzIExFRCwgTExDCisJCQkJMzgwIE1vdW50YWluIFJkCisJCQkJU3VpdGUgMTQxMgorCQkJCVVuaW9uIENpdHkgTkogMDcwODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUI4ICAgKGhleCkJCU5ldyBWb2ljZSBJbnRlcm5hdGlvbmFsIEFHCiswMDE4QjggICAgIChiYXNlIDE2KQkJTmV3IFZvaWNlIEludGVybmF0aW9uYWwgQUcKKwkJCQlTdC4gR2FsbGVyc3RyYXNzZSA4CisJCQkJTGFjaGVuIFNaIDg4NTMKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xOC1COSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE4QjkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1CQSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE4QkEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1CQiAgIChoZXgpCQlFbGl3ZWxsIENvbnRyb2xzIHNybAorMDAxOEJCICAgICAoYmFzZSAxNikJCUVsaXdlbGwgQ29udHJvbHMgc3JsCisJCQkJVmlhIGRlbGwnSW5kdXN0cmlhLCAxNQorCQkJCVBpZXZlIGQnQWxwYWdvIEJlbGx1bm8gMzIwMTAKKwkJCQlJVEFMWQorCiswMC0xOC1CQyAgIChoZXgpCQlaQU8gTlZQIEJvbGlkCiswMDE4QkMgICAgIChiYXNlIDE2KQkJWkFPIE5WUCBCb2xpZAorCQkJCVBpb25lcnNrYXlhIHN0ci4sIDQKKwkJCQlLb3JvbHlvdiBNb3Njb3cgcmVnaW9uIDE0MTA3MAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xOC1CRCAgIChoZXgpCQlTSEVOWkhFTiBEVkJXT1JMRCBURUNITk9MT0dZIENPLiwgTFRELgorMDAxOEJEICAgICAoYmFzZSAxNikJCVNIRU5aSEVOIERWQldPUkxEIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJMk5EIEZMT09SLCBCVUlMRElORyBBLCBRSU5HSFUgWElOUUlBTyBJTkRVU1RSWSBBUkVBLAorCQkJCUxPTkdIVUEsIEJBTyBBTiBESVNUUklDVAorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyA1MTgwMDAKKwkJCQlDSElOQQorCiswMC0xOC1CRSAgIChoZXgpCQlBTlNBIENvcnBvcmF0aW9uCiswMDE4QkUgICAgIChiYXNlIDE2KQkJQU5TQSBDb3Jwb3JhdGlvbgorCQkJCTE3Ri4sIE5vLjczOCwgQ2h1bmcgQ2hlbmcgUmQuCisJCQkJQ2h1bmcgSG8gQ2l0eSwgVGFpcGVpIENvdW50eSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC1CRiAgIChoZXgpCQlFc3NlbmNlIFRlY2hub2xvZ3kgU29sdXRpb24sIEluYy4KKzAwMThCRiAgICAgKGJhc2UgMTYpCQlFc3NlbmNlIFRlY2hub2xvZ3kgU29sdXRpb24sIEluYy4KKwkJCQlCMSwgTm8uIDIwNywgQmVpc2luIFJkLiwgU2VjLiAzCisJCQkJU2luZGlhbiwgVGFpcGVpIENvdW50eSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC1DMCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxOEMwICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtQzEgICAoaGV4KQkJQWxtaXRlYyBJbmZvcm3DoXRpY2EgZSBDb23DqXJjaW8gTHRkYS4KKzAwMThDMSAgICAgKGJhc2UgMTYpCQlBbG1pdGVjIEluZm9ybcOhdGljYSBlIENvbcOpcmNpbyBMdGRhLgorCQkJCTQ2MSwgRnJhbmNpc2NvIGRlIE1vcmFpcyBTdC4KKwkJCQlTw6NvIFBhdWxvICAwNDcxNC0wMTAKKwkJCQlCUkFaSUwKKworMDAtMTgtQzIgICAoaGV4KQkJRmlyZXRpZGUsIEluYworMDAxOEMyICAgICAoYmFzZSAxNikJCUZpcmV0aWRlLCBJbmMKKwkJCQkxNjc5NSBMYXJrIEF2LCBTdWl0ZSAyMDAKKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUMzICAgKGhleCkJCUNTIENvcnBvcmF0aW9uCiswMDE4QzMgICAgIChiYXNlIDE2KQkJQ1MgQ29ycG9yYXRpb24KKwkJCQlDUy1idWlsZGluZywgUGFuZ3lvIHNldmVuIHZlbnR1cmUgdmFsbGV5IDYyNQorCQkJCVNhbXB5ZW9uZy1kb25nLCBCdW5kYW5nLWd1CisJCQkJIFNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2My00MDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtQzQgICAoaGV4KQkJUmFiYSBUZWNobm9sb2dpZXMgTExDCiswMDE4QzQgICAgIChiYXNlIDE2KQkJUmFiYSBUZWNobm9sb2dpZXMgTExDCisJCQkJODgzMCBTdGFuZm9yZCBCbHZkIFN1aXRlIDIwNQorCQkJCUNvbHVtYmlhIE1hcnlsYW5kIDIxMDQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1DNSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxOEM1ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICAxNzkwCisJCQkJREVOTUFSSworCiswMC0xOC1DNiAgIChoZXgpCQlPUFcgRnVlbCBNYW5hZ2VtZW50IFN5c3RlbXMKKzAwMThDNiAgICAgKGJhc2UgMTYpCQlPUFcgRnVlbCBNYW5hZ2VtZW50IFN5c3RlbXMKKwkJCQk2OTAwIFNhbnRhIEZlIERyaXZlCisJCQkJSG9kZ2tpbnMgSWxsaW5vaXMgNjA1MjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUM3ICAgKGhleCkJCVJlYWwgVGltZSBBdXRvbWF0aW9uCiswMDE4QzcgICAgIChiYXNlIDE2KQkJUmVhbCBUaW1lIEF1dG9tYXRpb24KKwkJCQkyODI1IE4gTWF5ZmFpciBSZCBTdGUgMTEKKwkJCQlXYXV3YXRvc2EgV0kgNTMyMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUM4ICAgKGhleCkJCUlTT05BUyBJbmMuCiswMDE4QzggICAgIChiYXNlIDE2KQkJSVNPTkFTIEluYy4KKwkJCQk2MzI1IEd1bnBhcmsgRHJpdmUKKwkJCQlTdWl0ZSAxMDEKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1DOSAgIChoZXgpCQlFT3BzIFRlY2hub2xvZ3kgTGltaXRlZAorMDAxOEM5ICAgICAoYmFzZSAxNikJCUVPcHMgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJUm9vbSAyMDAxLCBGYWlybW9udCBIb3VzZSwKKwkJCQk4IENvdHRvbiBUcmVlIERyaXZlLCBDZW50cmFsLAorCQkJCUhvbmcgS29uZyAgCisJCQkJSE9ORyBLT05HCisKKzAwLTE4LUNBICAgKGhleCkJCVZpcHJpbmV0IEdtYkgKKzAwMThDQSAgICAgKGJhc2UgMTYpCQlWaXByaW5ldCBHbWJICisJCQkJQmFzaWxpa2FzdHJhc3NlIDMKKwkJCQlCaW5nZW4gYW0gUmhlaW4gIDU1NDExCisJCQkJR0VSTUFOWQorCiswMC0xOC1DQiAgIChoZXgpCQlUZWNvYmVzdCBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMThDQiAgICAgKGJhc2UgMTYpCQlUZWNvYmVzdCBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQk1My9GLixCbG9jayBBLFVuaXRlZCBQbGF6YSwKKwkJCQlOby41MDIyLEJpbiBIZSBSb2FkCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAyNgorCQkJCUNISU5BCisKKzAwLTE4LUNDICAgKGhleCkJCUFYSU9ITSBTQVMKKzAwMThDQyAgICAgKGJhc2UgMTYpCQlBWElPSE0gU0FTCisJCQkJMSBSVUUgRCdBUkNVRUlMCisJCQkJTU9OVFJPVUdFICA5MjEyMAorCQkJCUZSQU5DRQorCiswMC0xOC1DRCAgIChoZXgpCQlFcmFlIEVsZWN0cm9uaWNzIEluZHVzdHJ5IENvLiwgTHRkCiswMDE4Q0QgICAgIChiYXNlIDE2KQkJRXJhZSBFbGVjdHJvbmljcyBJbmR1c3RyeSBDby4sIEx0ZAorCQkJCSMzNzEtNTEsIEdhc2FuLWRvbmcKKwkJCQlHZXVtY2hlbi1ndSBTZW91bCAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LUNFICAgKGhleCkJCURyZWFtdGVjaCBDby4sIEx0ZAorMDAxOENFICAgICAoYmFzZSAxNikJCURyZWFtdGVjaCBDby4sIEx0ZAorCQkJCSMzNDAtNSwgWWFuZy1kYW5nIFJpLCBKaWstc2FuIE15ZW9uCisJCQkJQ2hlb24tYW4gc2kgQ2h1bmctTmFtIDMzMDgxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOC1DRiAgIChoZXgpCQlCYWxkb3IgRWxlY3RyaWMgQ29tcGFueQorMDAxOENGICAgICAoYmFzZSAxNikJCUJhbGRvciBFbGVjdHJpYyBDb21wYW55CisJCQkJNjAwIFMuIFplcm8gU3QuCisJCQkJRm9ydCBTbWl0aCBBUiA3MjkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtRDAgICAoaGV4KQkJQXRSb2FkLCAgQSBUcmltYmxlIENvbXBhbnkKKzAwMThEMCAgICAgKGJhc2UgMTYpCQlBdFJvYWQsICBBIFRyaW1ibGUgQ29tcGFueQorCQkJCTQ3MDcxIEJheXNpZGUgUGFya3dheQorCQkJCUZyZW1vbnQgQ2FsaWZvcm5pYSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtRDEgICAoaGV4KQkJU2llbWVucyBIb21lICYgT2ZmaWNlIENvbW0uIERldmljZXMKKzAwMThEMSAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEhvbWUgJiBPZmZpY2UgQ29tbS4gRGV2aWNlcworCQkJCTQ4NDkgQWxwaGEgUmQuCisJCQkJRGFsbGFzIFRleGFzIDc1MjQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1EMiAgIChoZXgpCQlIaWdoLUdhaW4gQW50ZW5uYXMgTExDCiswMDE4RDIgICAgIChiYXNlIDE2KQkJSGlnaC1HYWluIEFudGVubmFzIExMQworCQkJCTExNjc5IFMuIENvcm1vcmFudCBDaXJjbGUKKwkJCQlQYXJrZXIgQ08gODAxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUQzICAgKGhleCkJCVRFQU1DQVNUCiswMDE4RDMgICAgIChiYXNlIDE2KQkJVEVBTUNBU1QKKwkJCQlDZW50cmUgRXNwYWNlIFBlcmZvcm1hbmNlCisJCQkJU2FpbnQgR3JlZ29pcmUgIDM1NzY5CisJCQkJRlJBTkNFCisKKzAwLTE4LUQ0ICAgKGhleCkJCVVuaWZpZWQgRGlzcGxheSBJbnRlcmZhY2UgU0lHCiswMDE4RDQgICAgIChiYXNlIDE2KQkJVW5pZmllZCBEaXNwbGF5IEludGVyZmFjZSBTSUcKKwkJCQkxNTIwMSBTVyBHcmVlbmJyaWVyIFBhcmt3YXkKKwkJCQlCZWF2ZXJ0b24gT3JlZ29uIDk3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1ENSAgIChoZXgpCQlSRUlHTkNPTQorMDAxOEQ1ICAgICAoYmFzZSAxNikJCVJFSUdOQ09NCisJCQkJMTRGIEthbWNvIFlhbmphZSBUb3dlciwgOTQ5LTMKKwkJCQlEb2dvayAxLWRvbmdtLCBHYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS03MzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtRDYgICAoaGV4KQkJU3dpcmxuZXQgQS9TCiswMDE4RDYgICAgIChiYXNlIDE2KQkJU3dpcmxuZXQgQS9TCisJCQkJRGlwbG9tdmVqIDM4MQorCQkJCUx5bmdieSAgREstMjgwMAorCQkJCURFTk1BUksKKworMDAtMTgtRDcgICAoaGV4KQkJSmF2YWQgTmF2aWdhdGlvbiBTeXN0ZW1zIEluYy4KKzAwMThENyAgICAgKGJhc2UgMTYpCQlKYXZhZCBOYXZpZ2F0aW9uIFN5c3RlbXMgSW5jLgorCQkJCTE3MzEgVGVjaG5vbG9neSBEcml2ZSwgU3VpdGUgNjgwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUQ4ICAgKGhleCkJCUFSQ0ggTUVURVIgQ29ycG9yYXRpb24KKzAwMThEOCAgICAgKGJhc2UgMTYpCQlBUkNIIE1FVEVSIENvcnBvcmF0aW9uCisJCQkJNEYsIE5vLjMtMiwgSW5kdXN0cnkgRS4gUmQuCisJCQkJOSxIc2luY2h1IFNjaWVuY2UgUGFyaworCQkJCUhzaW5jaHUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtRDkgICAoaGV4KQkJU2FudG9zaGEgSW50ZXJuYXRvbmFsLCBJbmMKKzAwMThEOSAgICAgKGJhc2UgMTYpCQlTYW50b3NoYSBJbnRlcm5hdG9uYWwsIEluYworCQkJCTM4NDMgUy4gQnJpc3RvbCBTdC4gIzI0MgorCQkJCVNhbnRhIEFuYSBDQSA5MjcwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtREEgICAoaGV4KQkJQU1CRVIgd2lyZWxlc3MgR21iSAorMDAxOERBICAgICAoYmFzZSAxNikJCUFNQkVSIHdpcmVsZXNzIEdtYkgKKwkJCQlBbGJpbi1Lb2ViaXMtU3RyLiAxOAorCQkJCUtvZWxuICA1MTE0NworCQkJCUdFUk1BTlkKKworMDAtMTgtREIgICAoaGV4KQkJRVBMIFRlY2hub2xvZ3kgTHRkCiswMDE4REIgICAgIChiYXNlIDE2KQkJRVBMIFRlY2hub2xvZ3kgTHRkCisJCQkJTG9uZ0RvbmcsTG9uZ2dhbmcgRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTE2CisJCQkJQ0hJTkEKKworMDAtMTgtREMgICAoaGV4KQkJUHJvc3RhciBDby4sIEx0ZC4KKzAwMThEQyAgICAgKGJhc2UgMTYpCQlQcm9zdGFyIENvLiwgTHRkLgorCQkJCUEtNzAzIFRlY2hub3Rvd24sIDI1MC0zIEhhZ3llLWRvbmcsIE5vd29uLWd1CisJCQkJU2VvdWwgIDEzOS0yMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTgtREQgICAoaGV4KQkJU2lsaWNvbmR1c3QgRW5naW5lZXJpbmcgTHRkCiswMDE4REQgICAgIChiYXNlIDE2KQkJU2lsaWNvbmR1c3QgRW5naW5lZXJpbmcgTHRkCisJCQkJUE8gQm94IDc0LTI5OQorCQkJCU1hcmtldCBSZAorCQkJCUF1Y2tsYW5kICAKKwkJCQlORVcgWkVBTEFORAorCiswMC0xOC1ERSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDAxOERFICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xOC1ERiAgIChoZXgpCQlUaGUgTW9yZXkgQ29ycG9yYXRpb24KKzAwMThERiAgICAgKGJhc2UgMTYpCQlUaGUgTW9yZXkgQ29ycG9yYXRpb24KKwkJCQkxMDAgTW9yZXkgRHJpdmUKKwkJCQlXb29kcmlkZ2UgSUwgNjA1MTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUUwICAgKGhleCkJCUFOQVZFTworMDAxOEUwICAgICAoYmFzZSAxNikJCUFOQVZFTworCQkJCUxlcyBDYXJyw6lzIGR1IHBhcmMKKwkJCQkxMCBydWUgZGVzIFJvc2nDqXJpc3RlcworCQkJCUNIQU1QQUdORSBhdSBNT05UIEQnT1IgUmjDtG5lIEYtNjk0MTAKKwkJCQlGUkFOQ0UKKworMDAtMTgtRTEgICAoaGV4KQkJVmVya2VyayBTZXJ2aWNlIFN5c3RlbWVuCiswMDE4RTEgICAgIChiYXNlIDE2KQkJVmVya2VyayBTZXJ2aWNlIFN5c3RlbWVuCisJCQkJTW9sZW52bGlldCAxCisJCQkJWndpam5kcmVjaHQgWnVpZC1Ib2xsYW5kIE5MLTMzMzVMSAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTE4LUUyICAgKGhleCkJCVRvcGRhdGEgU2lzdGVtYXMgZGUgQXV0b21hY2FvIEx0ZGEKKzAwMThFMiAgICAgKGJhc2UgMTYpCQlUb3BkYXRhIFNpc3RlbWFzIGRlIEF1dG9tYWNhbyBMdGRhCisJCQkJUnVhIERyIENhcnZhbGhvIENoYXZlcywgNjYyCisJCQkJQ3VyaXRpYmEgUFIgODAuMjIwLTAxMAorCQkJCUJSQVpJTAorCiswMC0xOC1FMyAgIChoZXgpCQlWaXN1YWxnYXRlIFN5c3RlbXMsIEluYy4KKzAwMThFMyAgICAgKGJhc2UgMTYpCQlWaXN1YWxnYXRlIFN5c3RlbXMsIEluYy4KKwkJCQk2NCBCYWtlcnNmaWVsZCBTdHJlZXQKKwkJCQlUb3JvbnRvIE9udGFyaW8gTTNKIDJXNworCQkJCUNBTkFEQQorCiswMC0xOC1FNCAgIChoZXgpCQlZSUdVQU5HCiswMDE4RTQgICAgIChiYXNlIDE2KQkJWUlHVUFORworCQkJCTMvRkwuSW5kdXN0cnkgem9uZSxGdXhpbmxpbixIYW5nY2hlbmcsWGl4aWFuZyxCYW9hbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjYKKwkJCQlDSElOQQorCiswMC0xOC1FNSAgIChoZXgpCQlBZGhvY28gQUcKKzAwMThFNSAgICAgKGJhc2UgMTYpCQlBZGhvY28gQUcKKwkJCQlUZWNobm9wYXJrCisJCQkJSmFlZ2Vyc3RyLiAyCisJCQkJV2ludGVydGh1ciBaSCBDSC04NDA2IAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE4LUU2ICAgKGhleCkJCUNvbXB1dGVyIEhhcmR3YXJlIERlc2lnbiBTSUEKKzAwMThFNiAgICAgKGJhc2UgMTYpCQlDb21wdXRlciBIYXJkd2FyZSBEZXNpZ24gU0lBCisJCQkJRHplbHphdmFzIDEyMGkKKwkJCQlSaWdhICBMVi0xMDIxCisJCQkJTEFUVklBCisKKzAwLTE4LUU3ICAgKGhleCkJCUNhbWVvIENvbW11bmljYXRpb25zLCBJTkMuCiswMDE4RTcgICAgIChiYXNlIDE2KQkJQ2FtZW8gQ29tbXVuaWNhdGlvbnMsIElOQy4KKwkJCQlOTy40MiwgU2VjLiA2LCBNaW5jeXVhbiBFLiBSZC4KKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtRTggICAoaGV4KQkJSGFjZXRyb24gQ29ycG9yYXRpb24KKzAwMThFOCAgICAgKGJhc2UgMTYpCQlIYWNldHJvbiBDb3Jwb3JhdGlvbgorCQkJCU5vLiA1NDIsCisJCQkJU2VjLjEsIFlhbmctSFUgUmQsCisJCQkJWWFuZy1NZWksIFRhby1ZdWFuLCAzMjYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LUU5ICAgKGhleCkJCU51bWF0YSBDb3Jwb3JhdGlvbgorMDAxOEU5ICAgICAoYmFzZSAxNikJCU51bWF0YSBDb3Jwb3JhdGlvbgorCQkJCTgtMi0zOSBuYW5rby1oaWdhc2hpCisJCQkJU3VtaW5vZS1rdQorCQkJCU9zYWthLXNoaSBPc2FrYS1mdSA1NTktMDAzMQorCQkJCUpBUEFOCisKKzAwLTE4LUVBICAgKGhleCkJCUFsbHRlYyBHbWJICiswMDE4RUEgICAgIChiYXNlIDE2KQkJQWxsdGVjIEdtYkgKKwkJCQlBbiBkZXIgVHJhdmUgMjctMzEKKwkJCQlTZWxtc2RvcmYgTWVja2xlbmJ1cmctVm9ycG9tbWVybiAyMzkyMworCQkJCUdFUk1BTlkKKworMDAtMTgtRUIgICAoaGV4KQkJQnJvVmlzIFdpcmVsZXNzIE5ldHdvcmtzCiswMDE4RUIgICAgIChiYXNlIDE2KQkJQnJvVmlzIFdpcmVsZXNzIE5ldHdvcmtzCisJCQkJMTk5MjUgU3RldmVucyBDcmVlayBCbHZkCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1FQyAgIChoZXgpCQlXZWxkaW5nIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMThFQyAgICAgKGJhc2UgMTYpCQlXZWxkaW5nIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQkyNDc3NSBDcmVzdHZpZXcgQ291cnQKKwkJCQlGYXJtaW5ndG9uIEhpbGxzIE1JIDQ4MzM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1FRCAgIChoZXgpCQlBY2N1dGVjaCBVbHRyYXN5c3RlbXMgQ28uLCBMdGQuCiswMDE4RUQgICAgIChiYXNlIDE2KQkJQWNjdXRlY2ggVWx0cmFzeXN0ZW1zIENvLiwgTHRkLgorCQkJCTExRi00LCBOby4gMTUwLAorCQkJCUNISUVOLVlJIFJPQUQsCisJCQkJQ0hVTkctSE8gQ0lUWSwgVEFJUEVJIEhTSUVOLCAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE4LUVFICAgKGhleCkJCVZpZGVvbG9neSBJbWFnaW5nIFNvbHV0aW9ucywgSW5jLgorMDAxOEVFICAgICAoYmFzZSAxNikJCVZpZGVvbG9neSBJbWFnaW5nIFNvbHV0aW9ucywgSW5jLgorCQkJCTM3IE0gTGFyayBJbmR1c3RyaWFsIFBhcmt3YXkKKwkJCQlHcmVlbnZpbGxlIFJJIDAyODI4LTMwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUVGICAgKGhleCkJCUVzY2FwZSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAxOEVGICAgICAoYmFzZSAxNikJCUVzY2FwZSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTI2MTUgUGFjaWZpYyBDb2FzdCBId3kKKwkJCQlTdGUgMzI5CisJCQkJSGVybW9zYSBCZWFjaCBDQSA5MDI1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTgtRjAgICAoaGV4KQkJSk9ZVE9UTyBDby4sIEx0ZC4KKzAwMThGMCAgICAgKGJhc2UgMTYpCQlKT1lUT1RPIENvLiwgTHRkLgorCQkJCTNGIFN1bmd3b28gQmxkZy4gNzE3LTMsIFNvb3Nlby1Eb25nCisJCQkJS2FuZ25hbS1HdQorCQkJCVNlb3VsICAxMzUtMjIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LUYxICAgKGhleCkJCUNodW5pY2hpIERlbnNoaSBDby4sTFRELgorMDAxOEYxICAgICAoYmFzZSAxNikJCUNodW5pY2hpIERlbnNoaSBDby4sTFRELgorCQkJCTEgRGVuaml5YW1hCisJCQkJTmFydW1pIGNobyBNaWRvcmkga3UKKwkJCQlOYWdveWEgQWljaGkgNDU4LTg1MjUKKwkJCQlKQVBBTgorCiswMC0xOC1GMiAgIChoZXgpCQlCZWlqaW5nIFRpYW55dSBDb21tdW5pY2F0aW9uIEVxdWlwbWVudCBDby4sIEx0ZAorMDAxOEYyICAgICAoYmFzZSAxNikJCUJlaWppbmcgVGlhbnl1IENvbW11bmljYXRpb24gRXF1aXBtZW50IENvLiwgTHRkCisJCQkJMjd0aCBGbG9vciwgVGVuZ2RhIFBsYXphCisJCQkJWGl6aGltZW5nd2FpIFN0cmVldCwgSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA0NAorCQkJCUNISU5BCisKKzAwLTE4LUYzICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorMDAxOEYzICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTgtRjQgICAoaGV4KQkJRU8gVEVDSE5JQ1MgQ28uLCBMdGQuCiswMDE4RjQgICAgIChiYXNlIDE2KQkJRU8gVEVDSE5JQ1MgQ28uLCBMdGQuCisJCQkJODY0LTQsIEt3YW55YW5nIDItRG9uZworCQkJCURvbmdhbi1HdQorCQkJCUFueWFuZyBLeWVvbmdnaS1EbyA0MzEtMDYyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE4LUY1ICAgKGhleCkJCVNoZW56aGVuIFN0cmVhbWluZyBWaWRlbyBUZWNobm9sb2d5IENvbXBhbnkgTGltaXRlZAorMDAxOEY1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFN0cmVhbWluZyBWaWRlbyBUZWNobm9sb2d5IENvbXBhbnkgTGltaXRlZAorCQkJCTUvRiwgQmxvY2sgMywgU29mdHdhcmUgUGFydCBOby4xLCBLZWppIE1pZGRsZSAyIFJvYWQsCisJCQkJU2hlbnpoZW4gSGktVGVjaCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTaGVuemhlbiBHYXVuZ0RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMTgtRjYgICAoaGV4KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKzAwMThGNiAgICAgKGJhc2UgMTYpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorCQkJCVByaW5zIEJvdWRld2lqbmxhYW4gNDcKKwkJCQlFZGVnZW0gQW50d2VycCBCLTI2NTAKKwkJCQlCRUxHSVVNCisKKzAwLTE4LUY3ICAgKGhleCkJCUthbWVsZW9uIFRlY2hub2xvZ2llcworMDAxOEY3ICAgICAoYmFzZSAxNikJCUthbWVsZW9uIFRlY2hub2xvZ2llcworCQkJCTIxNywgcnVlIFN0IEhvbm9yw6kKKwkJCQlQYXJpcyAgNzUwMDEKKwkJCQlGUkFOQ0UKKworMDAtMTgtRjggICAoaGV4KQkJQ2lzY28tTGlua3N5cyBMTEMKKzAwMThGOCAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzIExMQworCQkJCTEyMSBUaGVvcnkgRHJpdmUKKwkJCQlJcnZpbmUgQ0EgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE4LUY5ICAgKGhleCkJCVZWT05ELCBJbmMuCiswMDE4RjkgICAgIChiYXNlIDE2KQkJVlZPTkQsIEluYy4KKwkJCQkzMDAwIEJyaWRnZSBQYXJrd2F5CisJCQkJU3VpdGUgMTAyCisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1GQSAgIChoZXgpCQlZdXNoaW4gUHJlY2lzaW9uIEVxdWlwbWVudCBDby4sTHRkLgorMDAxOEZBICAgICAoYmFzZSAxNikJCVl1c2hpbiBQcmVjaXNpb24gRXF1aXBtZW50IENvLixMdGQuCisJCQkJMTEtMjYwIEtPR0FIT05NQUNISQorCQkJCUZVU0hJTUktS1UKKwkJCQlLWU9UTyAgNjEyLTg0OTIgSkFQCisJCQkJSkFQQU4KKworMDAtMTgtRkIgICAoaGV4KQkJQ29tcHJvIFRlY2hub2xvZ3kKKzAwMThGQiAgICAgKGJhc2UgMTYpCQlDb21wcm8gVGVjaG5vbG9neQorCQkJCTMvRiBObyAxMiwgQWxsZXkgNiwgTGFuZSA0NSwgUGFvIFNoaW4gUmQKKwkJCQlIc2ludGllbiAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOC1GQyAgIChoZXgpCQlBbHRlYyBFbGVjdHJvbmljIEFHCiswMDE4RkMgICAgIChiYXNlIDE2KQkJQWx0ZWMgRWxlY3Ryb25pYyBBRworCQkJCUxlbmdnZW5iYWNoc3RyYXNzZSAzCisJCQkJRmFocndlaWQgWsO8cmljaCBDSC04OTUxCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTgtRkQgICAoaGV4KQkJT3B0aW1hbCBUZWNobm9sb2dpZXMgSW50ZXJuYXRpb25hbCBJbmMuCiswMDE4RkQgICAgIChiYXNlIDE2KQkJT3B0aW1hbCBUZWNobm9sb2dpZXMgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJMTIgU3BhbmlzaCBNYWluIERyaXZlCisJCQkJUE8gQm94IEYtNDI0MDkvMzU5CisJCQkJRnJlZXBvcnQgR0JJIAorCQkJCUJBSEFNQVMKKworMDAtMTgtRkUgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzAwMThGRSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJTVMwNjAzMDgKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOC1GRiAgIChoZXgpCQlQb3dlclF1YXR0cm8gQ28uCiswMDE4RkYgICAgIChiYXNlIDE2KQkJUG93ZXJRdWF0dHJvIENvLgorCQkJCUrDoW5vcyB1LiAxNzUuCisJCQkJQnVkYXBlc3QgIEgtMTE2MQorCQkJCUhVTkdBUlkKKworMDAtMTktMDAgICAoaGV4KQkJSW50ZWxsaXZlcmVzZSAtIERCQSBWb2ljZWNvbQorMDAxOTAwICAgICAoYmFzZSAxNikJCUludGVsbGl2ZXJlc2UgLSBEQkEgVm9pY2Vjb20KKwkJCQk1OTAwIFdpbmR3YXJkIFBhcmt3YXkKKwkJCQlTdWl0ZSA1MDAKKwkJCQlBbHBoYXJldHRhIEdlb3JnaWEgMzAwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTAxICAgKGhleCkJCUYxTUVESUEKKzAwMTkwMSAgICAgKGJhc2UgMTYpCQlGMU1FRElBCisJCQkJNjEwLCBLZXVta2FuZyBIaWdodGVjaCDCpcKxLCAxMzgtMSBTYW5nZGFld29uLURvbmcsIEp1bmd3b24tR3UKKwkJCQlTZW9uZ25hbS1TaSBHeWVvbmdnaS1EbyA0NjItNzA3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LTAyICAgKGhleCkJCUNhbWJyaWRnZSBDb25zdWx0YW50cyBMdGQKKzAwMTkwMiAgICAgKGJhc2UgMTYpCQlDYW1icmlkZ2UgQ29uc3VsdGFudHMgTHRkCisJCQkJU2NpZW5jZSBQYXJrCisJCQkJTWlsdG9uIFJvYWQKKwkJCQlDYW1icmlkZ2UgQ2FtYnMgQ0I0IDBEVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE5LTAzICAgKGhleCkJCUJpZ2Zvb3QgTmV0d29ya3MgSW5jCiswMDE5MDMgICAgIChiYXNlIDE2KQkJQmlnZm9vdCBOZXR3b3JrcyBJbmMKKwkJCQkzOTI1IFdlc3QgQnJha2VyIExhbmUKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTA0ICAgKGhleCkJCVdCIEVsZWN0cm9uaWNzIFNwLiB6IG8uby4KKzAwMTkwNCAgICAgKGJhc2UgMTYpCQlXQiBFbGVjdHJvbmljcyBTcC4geiBvLm8uCisJCQkJdWwuIFBvem5hbnNrYSAxMjkvMTMzCisJCQkJT3phcm93IE1hem93aWVja2kgTWF6b3dpZWNraWUgMDUtODUwCisJCQkJUE9MQU5ECisKKzAwLTE5LTA1ICAgKGhleCkJCVNDSFJBQ0sgU2Vjb25ldCBBRworMDAxOTA1ICAgICAoYmFzZSAxNikJCVNDSFJBQ0sgU2Vjb25ldCBBRworCQkJCUVpYmVzYnJ1bm5lcmdhc3NlIDE4CisJCQkJV2llbiDDg+KAk3N0ZXJyZWljaCAxMTIyCisJCQkJQVVTVFJJQQorCiswMC0xOS0wNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE5MDYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0wNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE5MDcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0wOCAgIChoZXgpCQlEdWF4ZXMgQ29ycG9yYXRpb24KKzAwMTkwOCAgICAgKGJhc2UgMTYpCQlEdWF4ZXMgQ29ycG9yYXRpb24KKwkJCQkyLTUsIEthc3VtaWdhc2VraSAzLWNob21lLCBDaGl5b2RhLWt1LgorCQkJCVRva3lvIEZvcmVpZ24gMTAwLTYwMTQKKwkJCQlKQVBBTgorCiswMC0xOS0wOSAgIChoZXgpCQlEZXZpIEEvUworMDAxOTA5ICAgICAoYmFzZSAxNikJCURldmkgQS9TCisJCQkJVWx2ZWhhdmV2ZWogNjEKKwkJCQlWZWpsZSAgNzEwMAorCQkJCURFTk1BUksKKworMDAtMTktMEEgICAoaGV4KQkJSEFTV0FSRSBJTkMuCiswMDE5MEEgICAgIChiYXNlIDE2KQkJSEFTV0FSRSBJTkMuCisJCQkJNC0xMi0zIEhJR0FTSEkKKwkJCQlLVU5JVEFDSEkgVE9LWU8gMTg2LTAwMDIKKwkJCQlKQVBBTgorCiswMC0xOS0wQiAgIChoZXgpCQlTb3V0aGVybiBWaXNpb24gU3lzdGVtcywgSW5jLgorMDAxOTBCICAgICAoYmFzZSAxNikJCVNvdXRoZXJuIFZpc2lvbiBTeXN0ZW1zLCBJbmMuCisJCQkJODIxNSBNYWRpc29uIEJsdmQsIFN1aXRlIDE1MAorCQkJCU1hZGlzb24gQUwgMzU3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTBDICAgKGhleCkJCUVuY29yZSBFbGVjdHJvbmljcywgSW5jLgorMDAxOTBDICAgICAoYmFzZSAxNikJCUVuY29yZSBFbGVjdHJvbmljcywgSW5jLgorCQkJCTE2NDgzIE9sZCBWYWxsZXkgQmx2ZC4KKwkJCQlMYSBQdWVudGUgQ0EgOTE3NDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTBEICAgKGhleCkJCUlFRUUgMTM5NGMKKzAwMTkwRCAgICAgKGJhc2UgMTYpCQlJRUVFIDEzOTRjCisJCQkJYy9vIDEzOTQgVHJhZGUgQXNzb2NpYXRpb24KKwkJCQkxNTYwIEVhc3QgU291dGhsYWtlIEJsdmQuLCBTdWl0ZSAyMjAKKwkJCQlTb3V0aGxha2UgVFggNzYwOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTBFICAgKGhleCkJCUF0ZWNoIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDE5MEUgICAgIChiYXNlIDE2KQkJQXRlY2ggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk0IEZsLiwgTm8uIDEwMywgU2VjIDIsIEppdXpvbmcgUmQuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTBGICAgKGhleCkJCUFkdmFuc3VzIENvcnAuCiswMDE5MEYgICAgIChiYXNlIDE2KQkJQWR2YW5zdXMgQ29ycC4KKwkJCQlOby41IFNoaW5nIFllaCBTdHJlZXQsIEt3ZWkgSHNpYW5nCisJCQkJVGFveXVhbiAgMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS0xMCAgIChoZXgpCQlLbmljayBFbGVrdHJvbmlzY2hlIE1lc3NnZXJhZXRlIEdtYkggJiBDby4gS0cKKzAwMTkxMCAgICAgKGJhc2UgMTYpCQlLbmljayBFbGVrdHJvbmlzY2hlIE1lc3NnZXJhZXRlIEdtYkggJiBDby4gS0cKKwkJCQlCZXVja2VzdHIuIDIyCisJCQkJQmVybGluICAxNDE2MworCQkJCUdFUk1BTlkKKworMDAtMTktMTEgICAoaGV4KQkJSnVzdCBJbiBNb2JpbGUgSW5mb3JtYXRpb24gVGVjaG5vbG9naWVzIChTaGFuZ2hhaSkgQ28uLCBMdGQuCiswMDE5MTEgICAgIChiYXNlIDE2KQkJSnVzdCBJbiBNb2JpbGUgSW5mb3JtYXRpb24gVGVjaG5vbG9naWVzIChTaGFuZ2hhaSkgQ28uLCBMdGQuCisJCQkJNXRoIEZsb29yLCAybmQgQXJlYSwgSGFpd2FuZ3hpbmcgQnVpbGRpbmcsIDYyIFhpbmdndWFuZyBBdmUuLCBOLkhpZ2gtVGVjaCBQYXJrCisJCQkJQ2hvbmdxaW5nICA0MDExMjEKKwkJCQlDSElOQQorCiswMC0xOS0xMiAgIChoZXgpCQlXZWxjYXQgSW5jCiswMDE5MTIgICAgIChiYXNlIDE2KQkJV2VsY2F0IEluYworCQkJCUVhc3QgVG93ZXIgNkYsIFNoaW5hZ2F3YSBTZWFzaWRlLCA0LTEyLTgsIEhpZ2FzaGkgU2hpbmFnYXdhLCBTaGluYWdhd2EgU2VjdGlvbgorCQkJCVRva3lvICAxNDAtMDAwMgorCQkJCUpBUEFOCisKKzAwLTE5LTEzICAgKGhleCkJCUNodWFuZy1ZaSBOZXR3b3JrIEVxdWlwbWVudCBDby5MdGQuCiswMDE5MTMgICAgIChiYXNlIDE2KQkJQ2h1YW5nLVlpIE5ldHdvcmsgRXF1aXBtZW50IENvLkx0ZC4KKwkJCQkyMzggVGlhbk11U2hhbiBSZC4sIFdlc3QgTGFrZSBkaXN0cmljdAorCQkJCUhhbmdaaG91IFpoZUppYW5nIDMxMDAwMAorCQkJCUNISU5BCisKKzAwLTE5LTE0ICAgKGhleCkJCVdpbml4IENvLiwgTHRkCiswMDE5MTQgICAgIChiYXNlIDE2KQkJV2luaXggQ28uLCBMdGQKKwkJCQkzNjMgQW5nYWRlIEJsZGcuLCBZYW5namFlLWRvbmcKKwkJCQlTZW9jaG8tZ3UKKwkJCQlTZW91bCAgMTM3LTg5OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS0xNSAgIChoZXgpCQlURUNPTSBDby4sIEx0ZC4KKzAwMTkxNSAgICAgKGJhc2UgMTYpCQlURUNPTSBDby4sIEx0ZC4KKwkJCQkyMyBSJkQgUm9hZCAyIFNjaWVuY2UgQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbi1DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktMTYgICAoaGV4KQkJUGF5VGVjIEFHCiswMDE5MTYgICAgIChiYXNlIDE2KQkJUGF5VGVjIEFHCisJCQkJUm9zZW5nYXJ0ZW5zdHJhc3NlIDMKKwkJCQlab2xsaWtlcmJlcmcgWkggODEyNQorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE5LTE3ICAgKGhleCkJCVBvc2lmbGV4IEluYy4KKzAwMTkxNyAgICAgKGJhc2UgMTYpCQlQb3NpZmxleCBJbmMuCisJCQkJNiwgV3UtQ2h1YW4gUm9hZAorCQkJCVd1IEt1CisJCQkJVGFpcGVpIEhzaWVuICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTE4ICAgKGhleCkJCUludGVyYWN0aXZlIFdlYXIgQUcKKzAwMTkxOCAgICAgKGJhc2UgMTYpCQlJbnRlcmFjdGl2ZSBXZWFyIEFHCisJCQkJUGV0ZXJzYnJ1bm5lciBTdHIuIDMKKwkJCQlTdGFybmJlcmcgQmF2YXJpYSA4MjMxOQorCQkJCUdFUk1BTlkKKworMDAtMTktMTkgICAoaGV4KQkJQVNURUwgSW5jLgorMDAxOTE5ICAgICAoYmFzZSAxNikJCUFTVEVMIEluYy4KKwkJCQk1OS03IEphbmctZG9uZyBZdXN1bmctR3UKKwkJCQlEYWVqZW9uIENodW5nbmFtIDMwNS0zNDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktMUEgICAoaGV4KQkJSVJMSU5LCiswMDE5MUEgICAgIChiYXNlIDE2KQkJSVJMSU5LCisJCQkJSGFuWW91bmcgQi9EIDZGLCA0LTYKKwkJCQlNdW5qZW9uZy1kb25nLCBTb25wYS1rdQorCQkJCVNFT1VMICAxMzgtODI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LTFCICAgKGhleCkJCVNwdXRuaWsgRW5naW5lZXJpbmcgQUcKKzAwMTkxQiAgICAgKGJhc2UgMTYpCQlTcHV0bmlrIEVuZ2luZWVyaW5nIEFHCisJCQkJSMO2aGV3ZWcgODUKKwkJCQlCaWVsLUJpZW5uZSBCRSAgMjUwMgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTE5LTFDICAgKGhleCkJCVNlbnNpY2FzdCBTeXN0ZW1zCiswMDE5MUMgICAgIChiYXNlIDE2KQkJU2Vuc2ljYXN0IFN5c3RlbXMKKwkJCQkyMDAgUmVzZXJ2b2lyIFN0CisJCQkJU3VpdGUgMTAwCisJCQkJTmVlZGhhbSBNQSAwMjQ5NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMUQgICAoaGV4KQkJTmludGVuZG8gQ28uLEx0ZC4KKzAwMTkxRCAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTE5LTFFICAgKGhleCkJCUJleW9uZHdpeiBDby4sIEx0ZC4KKzAwMTkxRSAgICAgKGJhc2UgMTYpCQlCZXlvbmR3aXogQ28uLCBMdGQuCisJCQkJM0YsIERhZWNoYW5nIEJsZGcuLAorCQkJCTgtMiwgU29vbmFlLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTdW5nbmFtIEt5dW5na2ktZG8gNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS0xRiAgIChoZXgpCQlNaWNyb2xpbmsgY29tbXVuaWNhdGlvbnMgSW5jLgorMDAxOTFGICAgICAoYmFzZSAxNikJCU1pY3JvbGluayBjb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJOEYgLCAzMSAsIEhzaW50YWkgUm9hZCAsIENodXBlaSBDaXR5ICwgSHNpbmNodQorCQkJCUNodXBlaSBUYWl3YW4gMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS0yMCAgIChoZXgpCQlLVU1FIGVsZWN0cmljIENvLixMdGQuCiswMDE5MjAgICAgIChiYXNlIDE2KQkJS1VNRSBlbGVjdHJpYyBDby4sTHRkLgorCQkJCTQtMi0yNCBLaXRha2F3YXJhCisJCQkJSXRhbWktY2l0eSBIeW91Z28gCisJCQkJSkFQQU4KKworMDAtMTktMjEgICAoaGV4KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uCiswMDE5MjEgICAgIChiYXNlIDE2KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW0gQ28uCisJCQkJTm8uMjIsQWxsZXkgMzgsTGFuZSA5MSwgU2VjLiAxLE5laSBIdSBSb2FkLgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS0yMiAgIChoZXgpCQlDTSBDb21hbmRvcyBMaW5lYXJlcworMDAxOTIyICAgICAoYmFzZSAxNikJCUNNIENvbWFuZG9zIExpbmVhcmVzCisJCQkJQXYgRW5nIEFsYmVydG8gZGUgWmFnb3R0aXMsIDc2MAorCQkJCUp1cnViYXR1YmEKKwkJCQlTYW8gUGF1bG8gU1AgMDQ2NzUtMDg1CisJCQkJQlJBWklMCisKKzAwLTE5LTIzICAgKGhleCkJCVBob25leCBLb3JlYSBDby4sIExURC4KKzAwMTkyMyAgICAgKGJhc2UgMTYpCQlQaG9uZXggS29yZWEgQ28uLCBMVEQuCisJCQkJMzMtMywgR2VveWVvLURvbmcKKwkJCQlTZW91bCBTb25ncGEtR3UgMTM4LTgxNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS0yNCAgIChoZXgpCQlMQk5MICBFbmdpbmVlcmluZworMDAxOTI0ICAgICAoYmFzZSAxNikJCUxCTkwgIEVuZ2luZWVyaW5nCisJCQkJMSBDeWNsb3Ryb24gUmQuCisJCQkJTVM0NlIwMTI1CisJCQkJQmVya2VsZXkgQ0EgOTQ3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTI1ICAgKGhleCkJCUludGVsaWNpcyBDb3Jwb3JhdGlvbgorMDAxOTI1ICAgICAoYmFzZSAxNikJCUludGVsaWNpcyBDb3Jwb3JhdGlvbgorCQkJCTQ2MzMgT2xkIElyb25zaWRlcyBEcml2ZSwgU3VpdGUgMTUwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTI2ICAgKGhleCkJCUJpdHNHZW4gQ28uLCBMdGQuCiswMDE5MjYgICAgIChiYXNlIDE2KQkJQml0c0dlbiBDby4sIEx0ZC4KKwkJCQkjNTAyLCBPd25lcidzIFRvd2VyLCAjMTYtNSwgU3VuZWEtZG9uZworCQkJCUJ1bmRhbmctZ3UgU2VvbmduYW0tc2kgNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS0yNyAgIChoZXgpCQlJbUNvU3lzIEx0ZAorMDAxOTI3ICAgICAoYmFzZSAxNikJCUltQ29TeXMgTHRkCisJCQkJQnVuZGVzc3RyYXNzZSA1CisJCQkJWnVnIFpHIDYzMDAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xOS0yOCAgIChoZXgpCQlTaWVtZW5zIEFHLCBUcmFuc3BvcnRhdGlvbiBTeXN0ZW1zCiswMDE5MjggICAgIChiYXNlIDE2KQkJU2llbWVucyBBRywgVHJhbnNwb3J0YXRpb24gU3lzdGVtcworCQkJCVdlcm5lci12b24tU2llbWVucy1TdHJhw4PFuGUgNjcKKwkJCQlFcmxhbmdlbiAgOTEwNTIKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTI5ICAgKGhleCkJCTJNMkIgTW9udGFkb3JhIGRlIE1hcXVpbmFzIEJhaGlhIEJyYXNpbCBMVERBCiswMDE5MjkgICAgIChiYXNlIDE2KQkJMk0yQiBNb250YWRvcmEgZGUgTWFxdWluYXMgQmFoaWEgQnJhc2lsIExUREEKKwkJCQlSdWEgRGphbG1hIGR1dHJhLCA2NjgsIFNldGUgUG9ydGFzCisJCQkJU2FsdmFkb3IgQmFoaWEgNDAyNDAwODAKKwkJCQlCUkFaSUwKKworMDAtMTktMkEgICAoaGV4KQkJQW50aW9wZSBBc3NvY2lhdGVzCiswMDE5MkEgICAgIChiYXNlIDE2KQkJQW50aW9wZSBBc3NvY2lhdGVzCisJCQkJMTggQ2xheSBTdHJlZXQKKwkJCQlGYWlyIEhhdmVuIE5ldyBKZXJzZXkgMDc3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTJCICAgKGhleCkJCUFjbGFyYSBSRiBTeXN0ZW1zIEluYy4KKzAwMTkyQiAgICAgKGJhc2UgMTYpCQlBY2xhcmEgUkYgU3lzdGVtcyBJbmMuCisJCQkJMzA0MDAgU29sb24gUm9hZAorCQkJCVNvbG9uIE9IIDQ0MTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0yQyAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMTkyQyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2MDAgTi4gSHd5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0yRCAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorMDAxOTJEICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJUmVuc2luZ3N0ci4gMTUKKwkJCQlCb2NodW0gTlJXIDQ0ODA3CisJCQkJR0VSTUFOWQorCiswMC0xOS0yRSAgIChoZXgpCQlTcGVjdHJhbCBJbnN0cnVtZW50cywgSW5jLgorMDAxOTJFICAgICAoYmFzZSAxNikJCVNwZWN0cmFsIEluc3RydW1lbnRzLCBJbmMuCisJCQkJNDIwIE4gQm9uaXRhIEF2ZQorCQkJCVR1Y3NvbiBBWiA4NTc0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMkYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOTJGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMzAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOTMwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktMzEgICAoaGV4KQkJQmFsbHVmZiBHbWJICiswMDE5MzEgICAgIChiYXNlIDE2KQkJQmFsbHVmZiBHbWJICisJCQkJU2NodXJ3YWxkc3RyLiA5CisJCQkJTmV1aGF1c2VuIEJXIDczNzY1CisJCQkJR0VSTUFOWQorCiswMC0xOS0zMiAgIChoZXgpCQlHdWRlIEFuYWxvZy0gdW5kIERpZ2lhbHN5c3RlbWUgR21iSAorMDAxOTMyICAgICAoYmFzZSAxNikJCUd1ZGUgQW5hbG9nLSB1bmQgRGlnaWFsc3lzdGVtZSBHbWJICisJCQkJRWludHJhY2hzdHJhc3NlIDExMworCQkJCUNvbG9nbmUgTlJXIDUwNjY4CisJCQkJR0VSTUFOWQorCiswMC0xOS0zMyAgIChoZXgpCQlTdHJpeCBTeXN0ZW1zLCBJbmMuCiswMDE5MzMgICAgIChiYXNlIDE2KQkJU3RyaXggU3lzdGVtcywgSW5jLgorCQkJCTI2NjEwIEFnb3VyYSBSb2FkCisJCQkJQ2FsYWJhc2FzIENBIDkxMzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0zNCAgIChoZXgpCQlUUkVORE9OIFRPVUNIIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMTkzNCAgICAgKGJhc2UgMTYpCQlUUkVORE9OIFRPVUNIIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkyRiBOby41LCBBbGxleSAyMiwgTGFuZSA1MTMsIFJ1ZWlndWFuZyBSZC4sIE5laWh1CisJCQkJVGFpcGVpIENpdHkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktMzUgICAoaGV4KQkJRHVlcnIgRGVudGFsIEdtYkggJiBDby4gS0cKKzAwMTkzNSAgICAgKGJhc2UgMTYpCQlEdWVyciBEZW50YWwgR21iSCAmIENvLiBLRworCQkJCUhvZXBmaWdoZWltZXIgU3RyYXNzZSAxNworCQkJCUJpZXRpZ2hlaW0tQmlzc2luZ2VuIEJhZGVuLVd1ZXJ0dGVtYmVyZyA3NDMyMQorCQkJCUdFUk1BTlkKKworMDAtMTktMzYgICAoaGV4KQkJU1RFUkxJVEUgT1BUSUNBTCBURUNITk9MT0dJRVMgTElNSVRFRAorMDAxOTM2ICAgICAoYmFzZSAxNikJCVNURVJMSVRFIE9QVElDQUwgVEVDSE5PTE9HSUVTIExJTUlURUQKKwkJCQlFLTEsRS0yLCZFLTMKKwkJCQlNSURDICwgV0FMVUoKKwkJCQlBVVJBTkdBQkFEIE1BSEFSQVNUUkEgNDMxMTM2CisJCQkJSU5ESUEKKworMDAtMTktMzcgICAoaGV4KQkJQ29tbWVyY2VHdWFyZCBBQgorMDAxOTM3ICAgICAoYmFzZSAxNikJCUNvbW1lcmNlR3VhcmQgQUIKKwkJCQlHdXN0YXZzbHVuZHN2IDE1MUEKKwkJCQlCUk9NTUEgIDE2NzE0CisJCQkJU1dFREVOCisKKzAwLTE5LTM4ICAgKGhleCkJCVVNQiBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMTkzOCAgICAgKGJhc2UgMTYpCQlVTUIgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCisJCQkJMTAxMCwgNSwgQUNFIFRlY2hubyBUb3dlciwgMTk3LTIyLCBHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUxLTc2NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS0zOSAgIChoZXgpCQlHaWdhbWlwcworMDAxOTM5ICAgICAoYmFzZSAxNikJCUdpZ2FtaXBzCisJCQkJNXRoIEZsb29yLCBZYW5namFlIEJ1aWxkaW5nLCAyNjEsIFlhbmdqYWUtRG9uZworCQkJCVNlb2Noby1HdSBTZW91bCAxMzctMTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LTNBICAgKGhleCkJCU9FU09MVVRJT05TCiswMDE5M0EgICAgIChiYXNlIDE2KQkJT0VTT0xVVElPTlMKKwkJCQlUZWNobm9wYXJrLCA5NTgtMyBEYWVjaG9uLURvbmcsIEJ1ay1HdQorCQkJCUd3YW5nanUgQnVrLUd1IDUwMC03MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktM0IgICAoaGV4KQkJV2lsaWJveCBEZWxpYmVyYW50IEdyb3VwIExMQworMDAxOTNCICAgICAoYmFzZSAxNikJCVdpbGlib3ggRGVsaWJlcmFudCBHcm91cCBMTEMKKwkJCQkxNDQwIER1dGNoIFZhbGxleSBQbGFjZQorCQkJCVN1aXRlIDExNTUKKwkJCQlBdGxhbnRhIEdBIDMwMzI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0zQyAgIChoZXgpCQlIaWdoUG9pbnQgVGVjaG5vbG9naWVzIEluY29ycG9yYXRlZAorMDAxOTNDICAgICAoYmFzZSAxNikJCUhpZ2hQb2ludCBUZWNobm9sb2dpZXMgSW5jb3Jwb3JhdGVkCisJCQkJMTE2MSBDYWRpbGxhYyBDb3VydAorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS0zRCAgIChoZXgpCQlHTUMgR3VhcmRpYW4gTW9iaWxpdHkgQ29ycC4KKzAwMTkzRCAgICAgKGJhc2UgMTYpCQlHTUMgR3VhcmRpYW4gTW9iaWxpdHkgQ29ycC4KKwkJCQlTdWl0ZSAyMDAKKwkJCQk0MyBBdXJpZ2EgRHIuCisJCQkJT3R0YXdhIE9OIEsyRSA3WTgKKwkJCQlDQU5BREEKKworMDAtMTktM0UgICAoaGV4KQkJQURCIEJyb2FkYmFuZCBJdGFsaWEKKzAwMTkzRSAgICAgKGJhc2UgMTYpCQlBREIgQnJvYWRiYW5kIEl0YWxpYQorCQkJCVZJQUxFIFNBUkNBIDIyMgorCQkJCU1JTEFOTyAgMjAxMjYKKwkJCQlJVEFMWQorCiswMC0xOS0zRiAgIChoZXgpCQlSREkgdGVjaG5vbG9neShTaGVuemhlbikgQ28uLExURAorMDAxOTNGICAgICAoYmFzZSAxNikJCVJESSB0ZWNobm9sb2d5KFNoZW56aGVuKSBDby4sTFRECisJCQkJQnVpbGRpbmcgQzEmQzIsICBYaW4gVGFuZyBJbmR1c3RyaWFsIFpvbmUsRWFzdCBCYWlTaGlYaWEgVmlsbGFnZSwgRnV5b25nIFRvd24sIEJhb2FuIERpc3RyaWN0CisJCQkJU0hFTlpIRU4gR1VBTkdET05HIHByb3ZpbmNlIDUxODEwMworCQkJCUNISU5BCisKKzAwLTE5LTQwICAgKGhleCkJCVJhY2thYmxlIFN5c3RlbXMKKzAwMTk0MCAgICAgKGJhc2UgMTYpCQlSYWNrYWJsZSBTeXN0ZW1zCisJCQkJMTkzMyBNaWxtb250IERyaXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTQxICAgKGhleCkJCVBpdG5leSBCb3dlcywgSW5jCiswMDE5NDEgICAgIChiYXNlIDE2KQkJUGl0bmV5IEJvd2VzLCBJbmMKKwkJCQkzNSBXYXRlcnZpZXcgRHJpdmUKKwkJCQlNU0MgMjYtMjEKKwkJCQlTaGVsdG9uIENUIDA2NDg0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS00MiAgIChoZXgpCQlPTiBTT0ZUV0FSRSBJTlRFUk5BVElPTkFMIExJTUlURUQKKzAwMTk0MiAgICAgKGJhc2UgMTYpCQlPTiBTT0ZUV0FSRSBJTlRFUk5BVElPTkFMIExJTUlURUQKKwkJCQk5RiwgTk8uIDE3LCBTRUMuIDEsIENIRU5HLVRFIFJELgorCQkJCVRBSVBFSSAgMTAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS00MyAgIChoZXgpCQlCZWxkZW4KKzAwMTk0MyAgICAgKGJhc2UgMTYpCQlCZWxkZW4KKwkJCQk3OTMgRm9ydCBNaWxsIEhpZ2h3YXkKKwkJCQlGb3J0IE1pbGwgU291dGggQ2Fyb2xpbmEgMjk3MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTQ0ICAgKGhleCkJCUZvc3NpbCBQYXJ0bmVycywgTC5QLgorMDAxOTQ0ICAgICAoYmFzZSAxNikJCUZvc3NpbCBQYXJ0bmVycywgTC5QLgorCQkJCTIyODAgTi4gR3JlZW52aWxsZSBBdmUuCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNDUgICAoaGV4KQkJVGVuLVRlYyBJbmMuCiswMDE5NDUgICAgIChiYXNlIDE2KQkJVGVuLVRlYyBJbmMuCisJCQkJMTE4NSBEb2xseSBQYXJ0b24gUGt3eQorCQkJCVNldmllcnZpbGxlIFROIDM3ODYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS00NiAgIChoZXgpCQlDaWFuZXQgSW5kdXN0cmlhIGUgQ29tZXJjaW8gUy9BCiswMDE5NDYgICAgIChiYXNlIDE2KQkJQ2lhbmV0IEluZHVzdHJpYSBlIENvbWVyY2lvIFMvQQorCQkJCXJvZCBTQzQwMSwga20wMSBUZWNub3BvbGlzL0FsZmFtYSA0by4gQW5kYXIKKwkJCQlGbG9yaWFub3BvbGlzIFNhbnRhIENhdGFyaW5hIDg4MDMwLTkwMgorCQkJCUJSQVpJTAorCiswMC0xOS00NyAgIChoZXgpCQlTY2llbnRpZmljIEF0bGFudGEsIEEgQ2lzY28gQ29tcGFueQorMDAxOTQ3ICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMgQXRsYW50YSwgQSBDaXNjbyBDb21wYW55CisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCUFUTCAxLjMuNDczCisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNDggICAoaGV4KQkJQWlyZVNwaWRlciBOZXR3b3JrcworMDAxOTQ4ICAgICAoYmFzZSAxNikJCUFpcmVTcGlkZXIgTmV0d29ya3MKKwkJCQkxMTcxIE1vbnRhZ3VlIEV4cHJlc3MgV2F5CisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTQ5ICAgKGhleCkJCVRFTlRFTCAgQ09NVEVDSCBDTy4sIExURC4KKzAwMTk0OSAgICAgKGJhc2UgMTYpCQlURU5URUwgIENPTVRFQ0ggQ08uLCBMVEQuCisJCQkJMy9GLiwgTk8uIDQyLCBMQU5FIDgwLCBTRUMuIDMsIE5BTi1LQU5HIFJELiwKKwkJCQlUQUlQRUkgIDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktNEEgICAoaGV4KQkJVEVTVE8gQUcKKzAwMTk0QSAgICAgKGJhc2UgMTYpCQlURVNUTyBBRworCQkJCVRlc3RvIFN0cmFzc2UgMQorCQkJCUxlbnpraXJjaCBCYWRlbi1Xw7xydGVtYmVyZyA3OTg1MworCQkJCUdFUk1BTlkKKworMDAtMTktNEIgICAoaGV4KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorMDAxOTRCICAgICAoYmFzZSAxNikJCVNBR0VNIENPTU1VTklDQVRJT04KKwkJCQkyNyBSVUUgTEVCTEFOQworCQkJCVBBUklTICA3NTUxMgorCQkJCUZSQU5DRQorCiswMC0xOS00QyAgIChoZXgpCQlGdWppYW4gU3RlbGNvbSBpbmZvcm1hdGlvbiAmIFRlY2hub2xvZ3kgQ08uLEx0ZAorMDAxOTRDICAgICAoYmFzZSAxNikJCUZ1amlhbiBTdGVsY29tIGluZm9ybWF0aW9uICYgVGVjaG5vbG9neSBDTy4sTHRkCisJCQkJNEYsQnVpbGRpbmcgQSxTdGFydCBTY2llbmNlIFBhcmssIE5vLjY4LEhvbmdzaGFueXVhbiBSZAorCQkJCUZ1emhvdSBGdWppYW4gMzUwMDAyCisJCQkJQ0hJTkEKKworMDAtMTktNEQgICAoaGV4KQkJQXZhZ28gVGVjaG5vbG9naWVzIFNkbiBCaGQKKzAwMTk0RCAgICAgKGJhc2UgMTYpCQlBdmFnbyBUZWNobm9sb2dpZXMgU2RuIEJoZAorCQkJCUJheWFuIExlcGFzIEZyZWUgSW5kdXN0cmlhbCBab25lCisJCQkJQmF5YW4gTGVwYXMgUGVuYW5nIDExOTAwCisJCQkJTUFMQVlTSUEKKworMDAtMTktNEUgICAoaGV4KQkJVWx0cmEgRWxlY3Ryb25pY3MgLSBUQ1MgKFRhY3RpY2FsIENvbW11bmljYXRpb24gU3lzdGVtcykKKzAwMTk0RSAgICAgKGJhc2UgMTYpCQlVbHRyYSBFbGVjdHJvbmljcyAtIFRDUyAoVGFjdGljYWwgQ29tbXVuaWNhdGlvbiBTeXN0ZW1zKQorCQkJCTU5OTAgQ290ZSBEZSBMaWVzc2UKKwkJCQlUTVIgUXVlYmVjIEg0VCAxVjcKKwkJCQlDQU5BREEKKworMDAtMTktNEYgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTk0RiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMTktNTAgICAoaGV4KQkJSGFybWFuIE11bHRpbWVkaWEKKzAwMTk1MCAgICAgKGJhc2UgMTYpCQlIYXJtYW4gTXVsdGltZWRpYQorCQkJCTg0MDAgQmFsYm9hIEJsdmQuCisJCQkJTm9ydGhyaWRnZSBDQSA5MTMyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNTEgICAoaGV4KQkJTkVUQ09OUywgcy5yLm8uCiswMDE5NTEgICAgIChiYXNlIDE2KQkJTkVUQ09OUywgcy5yLm8uCisJCQkJU3RhcmEgVmFqbm9yc2thIDM3CisJCQkJQnJhdGlzbGF2YSBTbG92YWtpYSA4MzEgMDQKKwkJCQlTTE9WQUtJQQorCiswMC0xOS01MiAgIChoZXgpCQlBQ09HSVRPIENvLiwgTHRkCiswMDE5NTIgICAgIChiYXNlIDE2KQkJQUNPR0lUTyBDby4sIEx0ZAorCQkJCSM1MDEgU2hpbnlvdW5nIFBhbGFjZSBUb3dlciwgMjQ2LTIsIFNlb2h5dW4KKwkJCQlTdW5nbmFtIEt5dW5nZ2kgNDYzLTgyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS01MyAgIChoZXgpCQlDaGFpbmxlYWRlciBDb21tdW5pY2F0aW9ucyBDb3JwLgorMDAxOTUzICAgICAoYmFzZSAxNikJCUNoYWlubGVhZGVyIENvbW11bmljYXRpb25zIENvcnAuCisJCQkJNUYsIE5vLiA0MDAsIFNlYy4gMiBCYWRlIFJkLiwKKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktNTQgICAoaGV4KQkJTGVhZiBDb3Jwb3JhdGlvbi4KKzAwMTk1NCAgICAgKGJhc2UgMTYpCQlMZWFmIENvcnBvcmF0aW9uLgorCQkJCUFtdXplIDFGCisJCQkJSGlnYXNoaSBOYXJ1c2UgMzUtMTAKKwkJCQlJc2VoYXJhIENpdHkgS2FuYWdhd2EtUHJlZi4gMjU5LTExMTcKKwkJCQlKQVBBTgorCiswMC0xOS01NSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE5NTUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS01NiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDE5NTYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS01NyAgIChoZXgpCQlTYWFmbmV0IENhbmFkYSBJbmMuCiswMDE5NTcgICAgIChiYXNlIDE2KQkJU2FhZm5ldCBDYW5hZGEgSW5jLgorCQkJCTEwNy0xMDg5IEVhc3QgS2VudCBBdmUgKE4pCisJCQkJVmFuY291dmVyIEJDIFY1WCA0VjkKKwkJCQlDQU5BREEKKworMDAtMTktNTggICAoaGV4KQkJQmx1ZXRvb3RoIFNJRywgSW5jLgorMDAxOTU4ICAgICAoYmFzZSAxNikJCUJsdWV0b290aCBTSUcsIEluYy4KKwkJCQk1MDAgMTA4dGggQXZlbnVlIE5FCisJCQkJU3VpdGUgMjUwCisJCQkJQmVsbGV2dWUgV0EgOTgwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTU5ICAgKGhleCkJCVN0YWNjYXRvIENvbW11bmljYXRpb25zIEluYy4KKzAwMTk1OSAgICAgKGJhc2UgMTYpCQlTdGFjY2F0byBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJNjE5NSBMdXNrIEJsdmQuCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS01QSAgIChoZXgpCQlKZW5hZXIgQW50cmllYnN0ZWNobmlrIEdtYkgKKzAwMTk1QSAgICAgKGJhc2UgMTYpCQlKZW5hZXIgQW50cmllYnN0ZWNobmlrIEdtYkgKKwkJCQlCdWNoYWVyIFN0cmFzc2UgMQorCQkJCUplbmEgVGh1ZXJpbmdlbiAwNzc0NQorCQkJCUdFUk1BTlkKKworMDAtMTktNUIgICAoaGV4KQkJRC1MaW5rIENvcnBvcmF0aW9uCiswMDE5NUIgICAgIChiYXNlIDE2KQkJRC1MaW5rIENvcnBvcmF0aW9uCisJCQkJTk8uMjg5LCBTaW5odSAzcmQgUmQuLAorCQkJCU5laWh1IERpc3RyaWN0LCBUYWlwZWkgQ2l0eSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTVDICAgKGhleCkJCUlubm90ZWNoIENvcnBvcmF0aW9uCiswMDE5NUMgICAgIChiYXNlIDE2KQkJSW5ub3RlY2ggQ29ycG9yYXRpb24KKwkJCQkzLTE3LTYKKwkJCQlTaGluLVlva29oYW1hLCBLb2hva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjItODU4MAorCQkJCUpBUEFOCisKKzAwLTE5LTVEICAgKGhleCkJCVNoZW5aaGVuIFhpbkh1YVRvbmcgT3B0byBFbGVjdHJvbmljcyBDby4sTHRkCiswMDE5NUQgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gWGluSHVhVG9uZyBPcHRvIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQk1RixCYW9kYVpob3UsU2hhbmNoZW5nIEluZHVzdHJpYWwgWm9uZSxCYW9BbiBEaXN0cmljdAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMDgKKwkJCQlDSElOQQorCiswMC0xOS01RSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxOTVFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNUYgICAoaGV4KQkJVmFsZW1vdW50IE5ldHdvcmtzIENvcnBvcmF0aW9uCiswMDE5NUYgICAgIChiYXNlIDE2KQkJVmFsZW1vdW50IE5ldHdvcmtzIENvcnBvcmF0aW9uCisJCQkJMTIwMS0gNXRoIEF2ZQorCQkJCVBPIEJveCA2ODcKKwkJCQlWYWxlbW91bnQgQkMgVjBFMlowCisJCQkJQ0FOQURBCisKKzAwLTE5LTYwICAgKGhleCkJCURvQ29NbyBTeXN0ZW1zLCBJbmMuCiswMDE5NjAgICAgIChiYXNlIDE2KQkJRG9Db01vIFN5c3RlbXMsIEluYy4KKwkJCQlNZWd1cm8gVGVjaG5vIEJsZGcuIDJuZCBGbG9vcgorCQkJCTQtMzEtMTggTmlzaGktR290YW5kYQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAzMQorCQkJCUpBUEFOCisKKzAwLTE5LTYxICAgKGhleCkJCUJsYXVwdW5rdCAgRW1iZWRkZWQgU3lzdGVtcyBHbWJICiswMDE5NjEgICAgIChiYXNlIDE2KQkJQmxhdXB1bmt0ICBFbWJlZGRlZCBTeXN0ZW1zIEdtYkgKKwkJCQlCYWhuaG9mc3N0cmFzc2UgMTYKKwkJCQlTY2hsaXR6ICAzNjExMAorCQkJCUdFUk1BTlkKKworMDAtMTktNjIgICAoaGV4KQkJQ29tbWVyY2lhbnQsIExQCiswMDE5NjIgICAgIChiYXNlIDE2KQkJQ29tbWVyY2lhbnQsIExQCisJCQkJMjkwMSBXaWxjcmVzdAorCQkJCVN1aXRlIDI1MAorCQkJCUhvdXN0b24gVGV4YXMgNzcwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTYzICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDE5NjMgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTa8OlbmUgMjIxIDg4CisJCQkJU1dFREVOCisKKzAwLTE5LTY0ICAgKGhleCkJCURvb3JraW5nIEluYy4KKzAwMTk2NCAgICAgKGJhc2UgMTYpCQlEb29ya2luZyBJbmMuCisJCQkJMTIwIEdsYXNnb3cgU3QuCisJCQkJSW5nbGV3b29kIENBLiA5MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNjUgICAoaGV4KQkJWXVIdWEgVGVsVGVjaCAoU2hhbmdIYWkpIENvLiwgTHRkLgorMDAxOTY1ICAgICAoYmFzZSAxNikJCVl1SHVhIFRlbFRlY2ggKFNoYW5nSGFpKSBDby4sIEx0ZC4KKwkJCQlZdUh1YSBSJkQgQnVpbGRpbmcsMjcgeGluIGppbiBxaWFvIHJvYWQsCisJCQkJUHVkb25nLAorCQkJCVNIQU5HSEFJICAyMDEyMDYKKwkJCQlDSElOQQorCiswMC0xOS02NiAgIChoZXgpCQlBc2lhcm9jayBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMTk2NiAgICAgKGJhc2UgMTYpCQlBc2lhcm9jayBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlQLk8uIEJveDk1NywgT2Zmc2hvcmUgSW5jb3Jwb3JhdGlvbnMgQ2VudHJlCisJCQkJUm9hZCBUb3duIFRvcnRvbGEgCisJCQkJVklSR0lOIElTTEFORFMsIEJSSVRJU0gKKworMDAtMTktNjcgICAoaGV4KQkJVEVMREFUIFNwLkouCiswMDE5NjcgICAgIChiYXNlIDE2KQkJVEVMREFUIFNwLkouCisJCQkJS2lqb3dza2EgNDQKKwkJCQlOSVAgNTU0IDE5IDI2IDA0MgorCQkJCUJ5ZGdvc3pjeiB3b2ouIGt1amF3c2tvLXBvbW9yc2tpZSA4NS03MDMKKwkJCQlQT0xBTkQKKworMDAtMTktNjggICAoaGV4KQkJRGlnaXRhbCBWaWRlbyBOZXR3b3JrcyhTaGFuZ2hhaSkgQ08uIExURC4KKzAwMTk2OCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFZpZGVvIE5ldHdvcmtzKFNoYW5naGFpKSBDTy4gTFRELgorCQkJCTl0aCBGbG9vcixIZWNodWFuIEJ1aWxkaW5nLCBOby4xMDI2IFlpU2hhbiBSZAorCQkJCVNoYW5naGFpICAyMDExMDMKKwkJCQlDSElOQQorCiswMC0xOS02OSAgIChoZXgpCQlOb3J0ZWwKKzAwMTk2OSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMTktNkEgICAoaGV4KQkJTWlrcm9NIEdtYkgKKzAwMTk2QSAgICAgKGJhc2UgMTYpCQlNaWtyb00gR21iSAorCQkJCURvdmVzdHIuIDEKKwkJCQlCZXJsaW4gIDEwNTg3CisJCQkJR0VSTUFOWQorCiswMC0xOS02QiAgIChoZXgpCQlEYW5wZXggQ29ycG9yYXRpb24KKzAwMTk2QiAgICAgKGJhc2UgMTYpCQlEYW5wZXggQ29ycG9yYXRpb24KKwkJCQkyMTE0IFJpbmd3b29kIEF2ZW51ZQorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTZDICAgKGhleCkJCUVUUk9WSVNJT04gVEVDSE5PTE9HWQorMDAxOTZDICAgICAoYmFzZSAxNikJCUVUUk9WSVNJT04gVEVDSE5PTE9HWQorCQkJCTJGLCAxOS01IFNhbiBDaHVuZyBSZC4sCisJCQkJQmxvY2sgQywgTmFuIEthbmcgU29mdHdhcmUgUGFyaywgTmFuIEthbmcgRGlzdHJpY3QsCisJCQkJVEFJUEVJICAxMTUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTZEICAgKGhleCkJCVJheWJpdCBTeXN0ZW1zIEtvcmVhLCBJbmMKKzAwMTk2RCAgICAgKGJhc2UgMTYpCQlSYXliaXQgU3lzdGVtcyBLb3JlYSwgSW5jCisJCQkJRHJlYW0gVG93ZXIgMTIyMQorCQkJCTkyMy0xNCwgTW9rZG9uZywgWWFuZ2NodW5rdQorCQkJCVNlb3VsICAxNTgtNzE4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LTZFICAgKGhleCkJCU1ldGFjb20gKFB0eSkgTHRkLgorMDAxOTZFICAgICAoYmFzZSAxNikJCU1ldGFjb20gKFB0eSkgTHRkLgorCQkJCTYgTmRhYmVuaSBCdXNpbmVzcyBQYXJrCisJCQkJSW55b25pIFN0ciwgTmRhYmVuaQorCQkJCUNhcGUgVG93biBXZXN0ZXJuIENhcGUgNzQwNQorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xOS02RiAgIChoZXgpCQlTZW5zb1BhcnQgR21iSAorMDAxOTZGICAgICAoYmFzZSAxNikJCVNlbnNvUGFydCBHbWJICisJCQkJQW0gV2llZGVuYmFjaCAxCisJCQkJV2llZGVuIEJhZGVuLVd1ZXJ0dGVtYmVyZyBELTc5Njk1CisJCQkJR0VSTUFOWQorCiswMC0xOS03MCAgIChoZXgpCQlaLUNvbSwgSW5jLgorMDAxOTcwICAgICAoYmFzZSAxNikJCVotQ29tLCBJbmMuCisJCQkJN0YtMiwgTk8uOSwgUFJPU1BFUklUWSAxU1QgUkQuCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOQ0hVICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTcxICAgKGhleCkJCUd1YW5nemhvdSBVbmljb21wIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDAxOTcxICAgICAoYmFzZSAxNikJCUd1YW5nemhvdSBVbmljb21wIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTcvRixOb3J0aCBUb3dlcixKaW5zaGFuIEJ1aWxkaW5nLk5vLjI0OAorCQkJCVJkIFd1c2hhbiwgVGlhbmhlIERpc3RyaWN0CisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2MzAKKwkJCQlDSElOQQorCiswMC0xOS03MiAgIChoZXgpCQlQbGV4dXMgKFhpYW1lbikgQ28uLGx0ZAorMDAxOTcyICAgICAoYmFzZSAxNikJCVBsZXh1cyAoWGlhbWVuKSBDby4sbHRkCisJCQkJTm8uNiBYaWFuZ3hpbmcgMiBSb2FkCisJCQkJWGlhbmd5dSBGcmVlIFRyYWRlIFpvbmUKKwkJCQlYaWFtZW4gRnVqaWFuIDM2MTAwNgorCQkJCUNISU5BCisKKzAwLTE5LTczICAgKGhleCkJCVpldWdtYSBTeXN0ZW1zCiswMDE5NzMgICAgIChiYXNlIDE2KQkJWmV1Z21hIFN5c3RlbXMKKwkJCQlTdWl0ZSAyNTAKKwkJCQkxMzU3MSBDb21tZXJjZSBQYXJrd2F5CisJCQkJUmljaG1vbmQgQkMgVjZWIDJSMgorCQkJCUNBTkFEQQorCiswMC0xOS03NCAgIChoZXgpCQlBYm9Db20gU3lzdGVtcywgSW5jLgorMDAxOTc0ICAgICAoYmFzZSAxNikJCUFib0NvbSBTeXN0ZW1zLCBJbmMuCisJCQkJMUYgLCBOby4gMjEsIFlhbmZhIDJuZCBSZC4sIFNCSVAKKwkJCQlIc2luY2h1IENpdHkgSHNpbmNodSAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LTc1ICAgKGhleCkJCUJlaWppbmcgSHVpc2VuIG5ldHdvcmtzIHRlY2hub2xvZ3kgSW5jCiswMDE5NzUgICAgIChiYXNlIDE2KQkJQmVpamluZyBIdWlzZW4gbmV0d29ya3MgdGVjaG5vbG9neSBJbmMKKwkJCQlKaWEjMiBvZiBYaWxpIG9mIEJhaXl1biByb2FkLFhpY2hlbmcgZGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwNDUKKwkJCQlDSElOQQorCiswMC0xOS03NiAgIChoZXgpCQlYaXBoZXIgVGVjaG5vbG9naWVzLCBMTEMKKzAwMTk3NiAgICAgKGJhc2UgMTYpCQlYaXBoZXIgVGVjaG5vbG9naWVzLCBMTEMKKwkJCQkxNTYgUml2ZXIgUm9hZAorCQkJCVdpbGxpbmd0b24gQ1QgMDYyNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTc3ICAgKGhleCkJCUFlcm9oaXZlIE5ldHdvcmtzLCBJbmMuCiswMDE5NzcgICAgIChiYXNlIDE2KQkJQWVyb2hpdmUgTmV0d29ya3MsIEluYy4KKwkJCQkzMTUwLUMgQ29yb25hZG8gRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNzggICAoaGV4KQkJRGF0dW0gU3lzdGVtcywgSW5jLgorMDAxOTc4ICAgICAoYmFzZSAxNikJCURhdHVtIFN5c3RlbXMsIEluYy4KKwkJCQkzNjY2IFRpZmZhbmkgQ3QuCisJCQkJU2FudGEgQ3J1eiBDQSA5NTA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktNzkgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTk3OSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMTktN0EgICAoaGV4KQkJTUFaZVQgR21iSAorMDAxOTdBICAgICAoYmFzZSAxNikJCU1BWmVUIEdtYkgKKwkJCQlHb2VzY2h3aXR6ZXIgU3RyLiAzMgorCQkJCUplbmEgIEQtMDc3NDUKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTdCICAgKGhleCkJCVBpY290ZXN0IENvcnAuCiswMDE5N0IgICAgIChiYXNlIDE2KQkJUGljb3Rlc3QgQ29ycC4KKwkJCQk4Ri0xLCAyODYtOSwgSHNpbi1ZYSBSZC4sIDgwNjczCisJCQkJS2FvaHNpdW5nICA4MDY3MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktN0MgICAoaGV4KQkJUmllZGVsIENvbW11bmljYXRpb25zIEdtYkgKKzAwMTk3QyAgICAgKGJhc2UgMTYpCQlSaWVkZWwgQ29tbXVuaWNhdGlvbnMgR21iSAorCQkJCVVlbGxlbmRhaGxlciBTdHIuIDM1MworCQkJCVd1cHBlcnRhbCBOUlcgNDIxMDkKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTdEICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQKKzAwMTk3RCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkCisJCQkJNjYsIENodW5nIFNoYW4gUmQuVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktN0UgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZAorMDAxOTdFICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQKKwkJCQk2NiwgQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS03RiAgIChoZXgpCQlQTEFOVFJPTklDUywgSU5DLgorMDAxOTdGICAgICAoYmFzZSAxNikJCVBMQU5UUk9OSUNTLCBJTkMuCisJCQkJMzQ1IEVOQ0lOQUwgU1RSRUVUCisJCQkJU0FOVEEgQ1JVWiBDQUxJRk9STklBIDk1MDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS04MCAgIChoZXgpCQlHcmlkcG9pbnQgU3lzdGVtcworMDAxOTgwICAgICAoYmFzZSAxNikJCUdyaWRwb2ludCBTeXN0ZW1zCisJCQkJNDA0MyBDYXJsaW5nIEF2ZW51ZSwgU3VpdGUgMjAwCisJCQkJT3R0YXdhIE9udGFyaW8gSzJLIDJBMworCQkJCUNBTkFEQQorCiswMC0xOS04MSAgIChoZXgpCQlWaXZveCBJbmMKKzAwMTk4MSAgICAgKGJhc2UgMTYpCQlWaXZveCBJbmMKKwkJCQk0MCBTcGVlbiBTdHJlZXQKKwkJCQlTdWl0ZSA0MDIKKwkJCQlGcmFtaW5naGFtIE1BIDAxNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS04MiAgIChoZXgpCQlTbWFyRFRWCiswMDE5ODIgICAgIChiYXNlIDE2KQkJU21hckRUVgorCQkJCTUzMSBBdmVudWUgZHUgU2VycG9sZXQKKwkJCQlaRSBBdGjDqWxpYSAyCisJCQkJTGEgQ2lvdGF0IEZyYW5jZSAxMyA3MDQKKwkJCQlGUkFOQ0UKKworMDAtMTktODMgICAoaGV4KQkJQ0NUIFImRCBMaW1pdGVkCiswMDE5ODMgICAgIChiYXNlIDE2KQkJQ0NUIFImRCBMaW1pdGVkCisJCQkJMTgvRiBDQ1QgVGVsZWNvbSBCdWlsZGluZworCQkJCTExIFdvIFNoaW5nIFN0cmVldAorCQkJCUZvdGFuLCBTaGF0aW4gTi5ULiAwMDAwCisJCQkJSE9ORyBLT05HCisKKzAwLTE5LTg0ICAgKGhleCkJCUVTVElDIENvcnBvcmF0aW9uCiswMDE5ODQgICAgIChiYXNlIDE2KQkJRVNUSUMgQ29ycG9yYXRpb24KKwkJCQkyLTUtOSBIYXNoaWJhaGlnYXNoaW5vLWNobworCQkJCU1vcmlndWNoaSBPc2FrYSA1NzAtMDAzMQorCQkJCUpBUEFOCisKKzAwLTE5LTg1ICAgKGhleCkJCUlUIFdhdGNoZG9ncywgSW5jCiswMDE5ODUgICAgIChiYXNlIDE2KQkJSVQgV2F0Y2hkb2dzLCBJbmMKKwkJCQkxMjg4NSBSZXNlYXJjaCwgU3VpdGUgMjEwQgorCQkJCUF1c3RpbiBUWCA3ODc1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktODYgICAoaGV4KQkJQ2hlbmcgSG9uZ2ppYW4KKzAwMTk4NiAgICAgKGJhc2UgMTYpCQlDaGVuZyBIb25namlhbgorCQkJCVJtLjIzMDVCLlNlZ2UgUGxhemEsSHVhcWlhbmcgTm9ydGggUmQuLAorCQkJCUZ1dGlhbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xOS04NyAgIChoZXgpCQlQYW5hc29uaWMgTW9iaWxlIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorMDAxOTg3ICAgICAoYmFzZSAxNikJCVBhbmFzb25pYyBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCisJCQkJNjAwIFNhZWRvLWNobywgVHN1enVraS1rdSwKKwkJCQlZb2tvaGFtYSBDaXR5IEthbmFnYXdhIFByZWZlY3R1cmUgMjI0LTg1MzkKKwkJCQlKQVBBTgorCiswMC0xOS04OCAgIChoZXgpCQlXaTJXaSwgSW5jCiswMDE5ODggICAgIChiYXNlIDE2KQkJV2kyV2ksIEluYworCQkJCTIxMDcgTi4gMXN0IFN0cmVldAorCQkJCVN1aXRlIDU0MAorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS04OSAgIChoZXgpCQlTb25pdHJvbCBDb3Jwb3JhdGlvbgorMDAxOTg5ICAgICAoYmFzZSAxNikJCVNvbml0cm9sIENvcnBvcmF0aW9uCisJCQkJMTcwNyBPcmxhbmRvIENlbnRyYWwgUGt3eS4KKwkJCQlTdWl0ZSA1MDAKKwkJCQlPcmxhbmRvIEZMIDMyODA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS04QSAgIChoZXgpCQlOb3J0aHJvcCBHcnVtbWFuIFN5c3RlbXMgQ29ycC4KKzAwMTk4QSAgICAgKGJhc2UgMTYpCQlOb3J0aHJvcCBHcnVtbWFuIFN5c3RlbXMgQ29ycC4KKwkJCQk3MDU1IFRyb3kgSGlsbCBEcml2ZQorCQkJCUVsa3JpZGdlIE1hcnlsYW5kIDIxMDc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS04QiAgIChoZXgpCQlOb3ZlcmEgT3B0aWNzIEtvcmVhLCBJbmMuCiswMDE5OEIgICAgIChiYXNlIDE2KQkJTm92ZXJhIE9wdGljcyBLb3JlYSwgSW5jLgorCQkJCTQ2My0xIEplb24gTWluIERvbmcgWXVzZW9uZyBHdQorCQkJCURlYWplb24gIDMwNS04MTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktOEMgICAoaGV4KQkJaVhTZWEKKzAwMTk4QyAgICAgKGJhc2UgMTYpCQlpWFNlYQorCQkJCTU1IGF2IGF1Z3VzdGUgUmVub2lyCisJCQkJTWFybHkgbGUgUm9pICA3ODE2MAorCQkJCUZSQU5DRQorCiswMC0xOS04RCAgIChoZXgpCQlPY2VhbiBPcHRpY3MsIEluYy4KKzAwMTk4RCAgICAgKGJhc2UgMTYpCQlPY2VhbiBPcHRpY3MsIEluYy4KKwkJCQk4MzAgRG91Z2xhcyBBdmUKKwkJCQlEdW5lZGluIEZMIDM0Njk4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS04RSAgIChoZXgpCQlPdGljb24gQS9TCiswMDE5OEUgICAgIChiYXNlIDE2KQkJT3RpY29uIEEvUworCQkJCUtvbmdlYmFra2VuIDkKKwkJCQlTbcO4cnVtICAyNzY1CisJCQkJREVOTUFSSworCiswMC0xOS04RiAgIChoZXgpCQlBbGNhdGVsIEJlbGwgTi5WLgorMDAxOThGICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgQmVsbCBOLlYuCisJCQkJQ29wZXJuaWN1c2xhYW4gNTAKKwkJCQlBbnR3ZXJwICBCLTIwMTgKKwkJCQlCRUxHSVVNCisKKzAwLTE5LTkwICAgKGhleCkJCUVMTSBEQVRBIENvLiwgTHRkLgorMDAxOTkwICAgICAoYmFzZSAxNikJCUVMTSBEQVRBIENvLiwgTHRkLgorCQkJCTItMTUgVEVDSE5PLVBBUksgMS1DSE9NRQorCQkJCVNISU1PTk9QUE9STywgQVRTVUJFVFNVLUtVCisJCQkJU0FQUE9STyBIT0tLQUlETyAwMDQtMDAxNQorCQkJCUpBUEFOCisKKzAwLTE5LTkxICAgKGhleCkJCWF2aW5mbworMDAxOTkxICAgICAoYmFzZSAxNikJCWF2aW5mbworCQkJCUppYWh1aXl1YW4gNzAzLEh1YWFvIENlbnRlciwzMSMgWml6aHV5dWFuIFJvYWQsCisJCQkJSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4OQorCQkJCUNISU5BCisKKzAwLTE5LTkyICAgKGhleCkJCUFEVFJBTiBJTkMuCiswMDE5OTIgICAgIChiYXNlIDE2KQkJQURUUkFOIElOQy4KKwkJCQk5MDEgRXhwbG9yZXIgQmx2ZC4KKwkJCQlIdW50c3ZpbGxlIEFMIDM1ODA2LTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LTkzICAgKGhleCkJCUNoYW5nc2h1IFN3aXRjaGdlYXIgTUZHLiBDby4sTHRkLiAoRm9ybWVyIENoYW5nc2h1IFN3aXRjaGdlYQorMDAxOTkzICAgICAoYmFzZSAxNikJCUNoYW5nc2h1IFN3aXRjaGdlYXIgTUZHLiBDby4sTHRkLiAoRm9ybWVyIENoYW5nc2h1IFN3aXRjaGdlYQorCQkJCU5vLiA4IEppYW55ZSBSb2FkCisJCQkJQ2hhbmdzaHUgSmlhbmdzdSAyMTU1MDAKKwkJCQlDSElOQQorCiswMC0xOS05NCAgIChoZXgpCQlKb3JqaW4gVGVjaG5vbG9naWVzIEluYy4KKzAwMTk5NCAgICAgKGJhc2UgMTYpCQlKb3JqaW4gVGVjaG5vbG9naWVzIEluYy4KKwkJCQk1RiwgTm8uMjgsIExhbmUxNDEsIFNpbmctYWkgUmQuCisJCQkJTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMTktOTUgICAoaGV4KQkJSnVyb25nIEhpLVRlY2ggKFN1emhvdSlDby5sdGQKKzAwMTk5NSAgICAgKGJhc2UgMTYpCQlKdXJvbmcgSGktVGVjaCAoU3V6aG91KUNvLmx0ZAorCQkJCTI3NSxYaW5nIExvbmcgU3RyZWV0wqPCrFN1emhvdSBJbmR1ZHRyaWFsIFBhcmsKKwkJCQlTdXpob3UgSmlhbmcgU3UgMjE1MDIxCisJCQkJQ0hJTkEKKworMDAtMTktOTYgICAoaGV4KQkJVHVyYm9DaGVmIFRlY2hub2xvZ2llcyBJbmMuCiswMDE5OTYgICAgIChiYXNlIDE2KQkJVHVyYm9DaGVmIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNDI0MCBJbnRlcm5hdGlvbmFsIFBhcmt3YXkKKwkJCQlTdWl0ZSAxMDUKKwkJCQlDYXJyb2xsdG9uIFRleGFzIDc1MDA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS05NyAgIChoZXgpCQlTb2Z0IERldmljZSBTZG4gQmhkCiswMDE5OTcgICAgIChiYXNlIDE2KQkJU29mdCBEZXZpY2UgU2RuIEJoZAorCQkJCTY3LTIgSmFsYW4gMi8yN0YKKwkJCQlLTFNDIFdhbmdzYSBNYWp1CisJCQkJS3VhbGEgTHVtcHVyIFdQIDUzMzAwCisJCQkJTUFMQVlTSUEKKworMDAtMTktOTggICAoaGV4KQkJU0FUTyBDT1JQT1JBVElPTgorMDAxOTk4ICAgICAoYmFzZSAxNikJCVNBVE8gQ09SUE9SQVRJT04KKwkJCQkxLTIwNyxPTkFSSS1DSE8sCisJCQkJT01JWUEtS1UKKwkJCQlTQUlUQU1BLVNISSBTQUlUQU1BIDMzMC0wODUyCisJCQkJSkFQQU4KKworMDAtMTktOTkgICAoaGV4KQkJRnVqaXRzdSBUZWNobm9sb2d5IFNvbHV0aW9ucworMDAxOTk5ICAgICAoYmFzZSAxNikJCUZ1aml0c3UgVGVjaG5vbG9neSBTb2x1dGlvbnMKKwkJCQlCdWVyZ2VybWVpc3Rlci1VbHJpY2gtU3RyYXNzZSAxMDAKKwkJCQlBdWdzYnVyZyAgODYxOTkKKwkJCQlHRVJNQU5ZCisKKzAwLTE5LTlBICAgKGhleCkJCUVETy1FVkkKKzAwMTk5QSAgICAgKGJhc2UgMTYpCQlFRE8tRVZJCisJCQkJNzA2NSBDb2x1bWJpYSBHYXRld2F5IERyLgorCQkJCUNvbHVtYmlhIE1EIDIxMDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS05QiAgIChoZXgpCQlEaXZlcnNpZmllZCBUZWNobmljYWwgU3lzdGVtcywgSW5jLgorMDAxOTlCICAgICAoYmFzZSAxNikJCURpdmVyc2lmaWVkIFRlY2huaWNhbCBTeXN0ZW1zLCBJbmMuCisJCQkJOTA5IEVsZWN0cmljIEF2ZW51ZQorCQkJCVN1aXRlIDIwNgorCQkJCVNlYWwgQmVhY2ggQ2FsaWZvcm5pYSA5MDc0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktOUMgICAoaGV4KQkJQ1RSSU5HCiswMDE5OUMgICAgIChiYXNlIDE2KQkJQ1RSSU5HCisJCQkJIzUxNCwgV29ybGQgTWVyaWRpYW4gVmVudHVyZSBDZW50ZXIgSUkKKwkJCQlHYXNuYS1kb25nCisJCQkJS2V1bWNoZW9uLWd1IFNlb3VsIDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktOUQgICAoaGV4KQkJVklaSU8sIEluYy4KKzAwMTk5RCAgICAgKGJhc2UgMTYpCQlWSVpJTywgSW5jLgorCQkJCTM5IFRlc2xhCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS05RSAgIChoZXgpCQlTSE9XQURFTlNISSBFTEVDVFJPTklDUyxJTkMuCiswMDE5OUUgICAgIChiYXNlIDE2KQkJU0hPV0FERU5TSEkgRUxFQ1RST05JQ1MsSU5DLgorCQkJCTE5NzggSElST09LQS1OT01VUkEKKwkJCQlTSElPSklSSS1DSVRZIE5BR0FOTy1QUkVGLiAzOTktMDcwMgorCQkJCUpBUEFOCisKKzAwLTE5LTlGICAgKGhleCkJCURLVCBBL1MKKzAwMTk5RiAgICAgKGJhc2UgMTYpCQlES1QgQS9TCisJCQkJRmFub2V2ZWogNgorCQkJCUtyLiBTYWFieSAgREstNDA2MAorCQkJCURFTk1BUksKKworMDAtMTktQTAgICAoaGV4KQkJTklIT04gREFUQSBTWVNURU5TLCBJTkMuCiswMDE5QTAgICAgIChiYXNlIDE2KQkJTklIT04gREFUQSBTWVNURU5TLCBJTkMuCisJCQkJNi05LCBLb3lvLWNobyBuYWthCisJCQkJSGlnYXNoaW5hZGEta3UKKwkJCQlLb2JlLXNoaSBIeW9nbyA2NTgtMDAzMgorCQkJCUpBUEFOCisKKzAwLTE5LUExICAgKGhleCkJCUxHIElORk9STUFUSU9OICYgQ09NTS4KKzAwMTlBMSAgICAgKGJhc2UgMTYpCQlMRyBJTkZPUk1BVElPTiAmIENPTU0uCisJCQkJNjAtMzksS2FzYW4tZG9uZyxLdW1jaG9uLWt1CisJCQkJU2VvdWwgIDE1My0wMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktQTIgICAoaGV4KQkJT1JEWU4gVEVDSE5PTE9HSUVTCiswMDE5QTIgICAgIChiYXNlIDE2KQkJT1JEWU4gVEVDSE5PTE9HSUVTCisJCQkJT3pvbmUgTWFuYXkgVGVjaCBQYXJrLCAKKwkJCQkybmQgRmxvb3IsIFRvd2VyIEIsIEJlZ3VyIEhvYmxpLCBIb25nYXNhbmRyYSwgSG9zdXIgUm9hZCwgCisJCQkJQmFuZ2Fsb3JlICAgNTYwIDA2OAorCQkJCUlORElBCisKKzAwLTE5LUEzICAgKGhleCkJCWFzdGVlbCBlbGVjdHJvbmlxdWUgYXRsYW50aXF1ZQorMDAxOUEzICAgICAoYmFzZSAxNikJCWFzdGVlbCBlbGVjdHJvbmlxdWUgYXRsYW50aXF1ZQorCQkJCXphIGRlIGxhIGxhbmRlIGRlIHNhaW50IGplYW4KKwkJCQlicCA5MDExMQorCQkJCXNhaW50ZSBtYXJpZSBkZSByZWRvbiAgMzU2MDAKKwkJCQlGUkFOQ0UKKworMDAtMTktQTQgICAoaGV4KQkJQXVzdGFyIFRlY2hub2xvZ3kgKGhhbmcgemhvdSkgQ28uLEx0ZAorMDAxOUE0ICAgICAoYmFzZSAxNikJCUF1c3RhciBUZWNobm9sb2d5IChoYW5nIHpob3UpIENvLixMdGQKKwkJCQk3LTQwMixXZXN0IExha2UgU29mdHdhcmUgUGFydAorCQkJCU5vIDEsSmlhZ29uZyBSZC4KKwkJCQlIYW5nIFpob3UgWmhlIEppYW5nIDMxMDAxMgorCQkJCUNISU5BCisKKzAwLTE5LUE1ICAgKGhleCkJCVJhZGFyRmluZCBDb3Jwb3JhdGlvbgorMDAxOUE1ICAgICAoYmFzZSAxNikJCVJhZGFyRmluZCBDb3Jwb3JhdGlvbgorCQkJCTIxMDAgR2F0ZXdheSBDZW50cmUgQmx2ZC4sIFN1aXRlIDE1MAorCQkJCU1vcnJpc3ZpbGxlIE5DIDI3NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1BNiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMTlBNiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1BNyAgIChoZXgpCQlJVFUtVAorMDAxOUE3ICAgICAoYmFzZSAxNikJCUlUVS1UCisJCQkJUGxhY2UgZGVzIE5hdGlvbnMKKwkJCQlHZW5ldmEgMjAgIENILTEyMTEKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xOS1BOCAgIChoZXgpCQlXaVF1ZXN0IENvbW11bmljYXRpb25zCiswMDE5QTggICAgIChiYXNlIDE2KQkJV2lRdWVzdCBDb21tdW5pY2F0aW9ucworCQkJCTkxNSBFbnRlcnByaXNlIEJsdmQuCisJCQkJU3VpdGUgMjAwCisJCQkJQWxsZW4gVGV4YXMgNzUwMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUE5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTlBOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUFBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMTlBQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUFCICAgKGhleCkJCVJheWNvbSBDTyAuLCBMVEQKKzAwMTlBQiAgICAgKGJhc2UgMTYpCQlSYXljb20gQ08gLiwgTFRECisJCQkJQSwzLTQvRkwsIEJ1aWxkaW5nIDEsMjcgQ2h1YW5neGluIFJvYWQsCisJCQkJQ2hhbmdwaW5nIFNjaWVuY2UgUGFyaworCQkJCUJlaWppbmcgIDEwMjIwMAorCQkJCUNISU5BCisKKzAwLTE5LUFDICAgKGhleCkJCUdTUCBTWVNURU1TIEluYy4KKzAwMTlBQyAgICAgKGJhc2UgMTYpCQlHU1AgU1lTVEVNUyBJbmMuCisJCQkJMTNGTCwgMTAxIERvbmcsIENodW51aSBUZWNobm8gUGFyayAxLAorCQkJCTIwMC0xLCBDaHVudWktRG9uZywgV29ubWktR1UsCisJCQkJQnVjaGVvbi1DaXR5IEd5ZW9uZ2dpLURvIDQyMC04NTcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktQUQgICAoaGV4KQkJQk9CU1QgU0EKKzAwMTlBRCAgICAgKGJhc2UgMTYpCQlCT0JTVCBTQQorCQkJCXJ0ZSBkZXMgZmx1bWVhdXggNTAKKwkJCQlDYXNlIFBvc3RhbGUgMTAwMSBMYXVzYW5uZQorCQkJCVBSSUxMWSBWRCAxMDA4CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMTktQUUgICAoaGV4KQkJSG9wbGluZyBUZWNobm9sb2dpZXMgYi52LgorMDAxOUFFICAgICAoYmFzZSAxNikJCUhvcGxpbmcgVGVjaG5vbG9naWVzIGIudi4KKwkJCQlDYW1lcmFzdHJhYXQgMTAKKwkJCQlBbG1lcmUgRmxldm9sYW5kIDEzMjIgQkMKKwkJCQlORVRIRVJMQU5EUworCiswMC0xOS1BRiAgIChoZXgpCQlSaWdvbCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMTlBRiAgICAgKGJhc2UgMTYpCQlSaWdvbCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQlOby4gMTU2IENhaSBIZSBWaWxsYWdlLCBTaGEgSGUgVG93bgorCQkJCUNoYW5nIFBpbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDIyMDYKKwkJCQlDSElOQQorCiswMC0xOS1CMCAgIChoZXgpCQlIYW5ZYW5nIFN5c3RlbQorMDAxOUIwICAgICAoYmFzZSAxNikJCUhhbllhbmcgU3lzdGVtCisJCQkJNzAxSG8sIEtvZm9tbyBUZWNobm8gQ2VudGVyIElJLCAxMjg5LTUKKwkJCQlKdW5nd2FuZy1Eb25nCisJCQkJU2hpaHVuZy1TaGkgS3l1bmdnaS1EbyA0MjktODUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTE5LUIxICAgKGhleCkJCUFycm93NyBDb3Jwb3JhdGlvbgorMDAxOUIxICAgICAoYmFzZSAxNikJCUFycm93NyBDb3Jwb3JhdGlvbgorCQkJCUthbWlqaW1hIDMtMjctNworCQkJCUhhbWFtYXRzdSBTaGl6dW9rYSA0MzMtODEyMgorCQkJCUpBUEFOCisKKzAwLTE5LUIyICAgKGhleCkJCVhZbmV0c29mdCBDby4sTHRkCiswMDE5QjIgICAgIChiYXNlIDE2KQkJWFluZXRzb2Z0IENvLixMdGQKKwkJCQlOTy4xNThaaGVueXUgU3RyZWV0IEhpZ2ggSW5kdXN0cmllcyBEZXZlbG9wbWVudCBhcmVhCisJCQkJQ2hhbmdDaHVuIEppTGluIDEzMDAwMAorCQkJCUNISU5BCisKKzAwLTE5LUIzICAgKGhleCkJCVN0YW5mb3JkIFJlc2VhcmNoIFN5c3RlbXMKKzAwMTlCMyAgICAgKGJhc2UgMTYpCQlTdGFuZm9yZCBSZXNlYXJjaCBTeXN0ZW1zCisJCQkJMTI5MC1EIFJlYW13b29kIEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQjQgICAoaGV4KQkJVmlkZW9DYXN0IEx0ZC4KKzAwMTlCNCAgICAgKGJhc2UgMTYpCQlWaWRlb0Nhc3QgTHRkLgorCQkJCUd5YXJtYXQgdS4gOTkvQgorCQkJCUJ1ZGFwZXN0ICAxMTQ3CisJCQkJSFVOR0FSWQorCiswMC0xOS1CNSAgIChoZXgpCQlGYW1hciBGdWVndWluYSBTLkEuCiswMDE5QjUgICAgIChiYXNlIDE2KQkJRmFtYXIgRnVlZ3VpbmEgUy5BLgorCQkJCVJvZG5leSA3MAorCQkJCUJ1ZW5vcyBBaXJlcyAgMTQyNworCQkJCUFSR0VOVElOQQorCiswMC0xOS1CNiAgIChoZXgpCQlFdXJvIEVtbWUgcy5yLmwuCiswMDE5QjYgICAgIChiYXNlIDE2KQkJRXVybyBFbW1lIHMuci5sLgorCQkJCVZpYSBCZWx2ZWRlcmUsIDI0CisJCQkJR2FsbGlhdGUgTG9tYmFyZG8gVmFyZXNlIDIxMDIwCisJCQkJSVRBTFkKKworMDAtMTktQjcgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMTlCNyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMTktQjggICAoaGV4KQkJQm91bmRhcnkgRGV2aWNlcworMDAxOUI4ICAgICAoYmFzZSAxNikJCUJvdW5kYXJ5IERldmljZXMKKwkJCQk3MjAwIFcuIE9ha2xhbmQKKwkJCQlDaGFuZGxlciBBWiA4NTIyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQjkgICAoaGV4KQkJRGVsbCBJbmMuCiswMDE5QjkgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5CisJCQkJTVMgODU0NQorCQkJCVJvdW5kIFJvY2sgVFggNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUJBICAgKGhleCkJCVBhcmFkb3ggU2VjdXJpdHkgU3lzdGVtcyBMdGQKKzAwMTlCQSAgICAgKGJhc2UgMTYpCQlQYXJhZG94IFNlY3VyaXR5IFN5c3RlbXMgTHRkCisJCQkJNzgwIEluZHVzdHJpYWwgQmx2ZAorCQkJCVN0LUV1c3RhY2hlIFF1ZWJlYyBKN1IgNVYzCisJCQkJQ0FOQURBCisKKzAwLTE5LUJCICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDE5QkIgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDYwMzA4CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQkMgICAoaGV4KQkJRUxFQ1RSTyBDSEFOQ0UgU1JMCiswMDE5QkMgICAgIChiYXNlIDE2KQkJRUxFQ1RSTyBDSEFOQ0UgU1JMCisJCQkJQ0FSSFVFIDMxNzkKKwkJCQlBVi4gRVZBIFBFUk9OIDcwNDkKKwkJCQlDQVBJVEFMIEZFREVSQUwgQlVFTk9TIEFJUkVTIDE0NDAKKwkJCQlBUkdFTlRJTkEKKworMDAtMTktQkQgICAoaGV4KQkJTmV3IE1lZGlhIExpZmUKKzAwMTlCRCAgICAgKGJhc2UgMTYpCQlOZXcgTWVkaWEgTGlmZQorCQkJCUhlYSBKdSBCaWxkLCA1RiwgODM3LTcsIFllb2tzYW0tZG9uZworCQkJCUthbmduYW0tZ3UgU2VvdWwgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS1CRSAgIChoZXgpCQlBbHRhaSBUZWNobm9sb2dpZXMgTGltaXRlZAorMDAxOUJFICAgICAoYmFzZSAxNikJCUFsdGFpIFRlY2hub2xvZ2llcyBMaW1pdGVkCisJCQkJVW5pdCAxMDNCIGFuZCAxMDUsIDEvRiwgQmxvY2sgOSwKKwkJCQlIb25nIEtvbmcgU2NpZW5jZSBQYXJrCisJCQkJU2hhdGluIE5ldyBUZXJyaXRvcmllcyAKKwkJCQlIT05HIEtPTkcKKworMDAtMTktQkYgICAoaGV4KQkJQ2l0aXdheSB0ZWNobm9sb2d5IENvLixsdGQKKzAwMTlCRiAgICAgKGJhc2UgMTYpCQlDaXRpd2F5IHRlY2hub2xvZ3kgQ28uLGx0ZAorCQkJCU5vLjIgQnVpbGRpbmcsSmlhIDMyLEJlaWhleWFuIEF2ZW51ZSxFYXN0IENpdHkKKwkJCQlQZWlqaW5nICAxMDAwMDYKKwkJCQlDSElOQQorCiswMC0xOS1DMCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKzAwMTlDMCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAKKwkJCQk2MDAgTi4gSHd5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1DMSAgIChoZXgpCQlBbHBzIEVsZWN0cmljIENvLiwgTHRkCiswMDE5QzEgICAgIChiYXNlIDE2KQkJQWxwcyBFbGVjdHJpYyBDby4sIEx0ZAorCQkJCTEtMi0xLCBPa2lub3VjaGksCisJCQkJU29tYS1jaXR5IEZ1a3VzaGltYS1wcmVmLiA5NzYtODUwMQorCQkJCUpBUEFOCisKKzAwLTE5LUMyICAgKGhleCkJCUVxdXVzdGVrIFNvbHV0aW9ucywgSW5jLgorMDAxOUMyICAgICAoYmFzZSAxNikJCUVxdXVzdGVrIFNvbHV0aW9ucywgSW5jLgorCQkJCSMyODYgLSA1NDg5IEJ5cm5lIFJvYWQsCisJCQkJQnVybmFieSBCQyBWNUogM0oxCisJCQkJQ0FOQURBCisKKzAwLTE5LUMzICAgKGhleCkJCVF1YWxpdHJvbAorMDAxOUMzICAgICAoYmFzZSAxNikJCVF1YWxpdHJvbAorCQkJCVdpbGRmbG93ZXIgV2F5CisJCQkJQXBvbGxvIFJvYWQKKwkJCQlCZWxmYXN0IENvLiBBbnRyaW0gQlQxMiA2VEEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xOS1DNCAgIChoZXgpCQlJbmZvY3J5cHQgSW5jLgorMDAxOUM0ICAgICAoYmFzZSAxNikJCUluZm9jcnlwdCBJbmMuCisJCQkJNzExLCBCWVVDS1NBTiBESUdJVEFMIFZBTExFWSAxIDIxMi0xNiwKKwkJCQlHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktQzUgICAoaGV4KQkJU09OWSBDb21wdXRlciBFbnRlcnRhaW5tZW50IGluYywKKzAwMTlDNSAgICAgKGJhc2UgMTYpCQlTT05ZIENvbXB1dGVyIEVudGVydGFpbm1lbnQgaW5jLAorCQkJCTYtMjEsMkNob21lCisJCQkJTWluYW1pLUFveWFtYQorCQkJCU1pbmF0by1rdSBUb2t5byAxMDctMDA2MgorCQkJCUpBUEFOCisKKzAwLTE5LUM2ICAgKGhleCkJCVpURSBDb3Jwb3JhdGlvbgorMDAxOUM2ICAgICAoYmFzZSAxNikJCVpURSBDb3Jwb3JhdGlvbgorCQkJCVRlY2hub2xvZ3kgTWFuYWdlbWVudCBEZXBhcnRtZW50LCAKKwkJCQkxMi9GLiwgWlRFIFImRCBCdWlsZGluZywgS2VqaW5hbiBSb2FkCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTE5LUM3ICAgKGhleCkJCUNhbWJyaWRnZSBJbmR1c3RyaWVzKEdyb3VwKSBDby4sTHRkLgorMDAxOUM3ICAgICAoYmFzZSAxNikJCUNhbWJyaWRnZSBJbmR1c3RyaWVzKEdyb3VwKSBDby4sTHRkLgorCQkJCVJvb20gMzA5LDMzMyBIb25nIFFpYW8gUm9hZAorCQkJCVNoYW5naGFpICAyMDAwMzAKKwkJCQlDSElOQQorCiswMC0xOS1DOCAgIChoZXgpCQlBbnlEQVRBIENvcnBvcmF0aW9uCiswMDE5QzggICAgIChiYXNlIDE2KQkJQW55REFUQSBDb3Jwb3JhdGlvbgorCQkJCTE4OTAyIEJhcmRlZW4gQXZlLgorCQkJCUlydmluZSBDQSA5MTYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQzkgICAoaGV4KQkJUyZDIEVMRUNUUklDIENPTVBBTlkKKzAwMTlDOSAgICAgKGJhc2UgMTYpCQlTJkMgRUxFQ1RSSUMgQ09NUEFOWQorCQkJCTExMzUgQVRMQU5USUMgQVZFCisJCQkJQUxBTUVEQSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQ0EgICAoaGV4KQkJQnJvYWRhdGEgQ29tbXVuaWNhdGlvbnMsIEluYworMDAxOUNBICAgICAoYmFzZSAxNikJCUJyb2FkYXRhIENvbW11bmljYXRpb25zLCBJbmMKKwkJCQkyNTQ1IFcgMjM3dGggU3QgU3RlIEsKKwkJCQlUb3JyYW5jZSBDYSA5MDUwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktQ0IgICAoaGV4KQkJWnlYRUwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzAwMTlDQiAgICAgKGJhc2UgMTYpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorCQkJCU5vLiA2LCBJbm5vdmF0aW9uIFJvYWQgSUkKKwkJCQlIc2luY2h1IFNjaWVuY2UgUGFyaywgSHNpbmNodSAzMDAKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTE5LUNDICAgKGhleCkJCVJDRyAoSEspIEx0ZAorMDAxOUNDICAgICAoYmFzZSAxNikJCVJDRyAoSEspIEx0ZAorCQkJCTkvRi4sIENvcmUgQywgQ3liZXJwb3J0IDMKKwkJCQkxMDAgQ3liZXJwb3J0IFJkCisJCQkJSE9ORyBLT05HCisKKzAwLTE5LUNEICAgKGhleCkJCUNoZW5nZHUgZXRoZXJjb20gaW5mb3JtYXRpb24gdGVjaG5vbG9neSBMdGQuCiswMDE5Q0QgICAgIChiYXNlIDE2KQkJQ2hlbmdkdSBldGhlcmNvbSBpbmZvcm1hdGlvbiB0ZWNobm9sb2d5IEx0ZC4KKwkJCQlTb3V0aCBFeHRlbnNpb24gb2YgVGlhbmZ1IFdpZGUgUm9hZCBOby43IGRlcGFydG1lbnQgcm9vbSAyMDEKKwkJCQlDaGVuZ2R1IFNpY2h1YW4gNjEwMDQxCisJCQkJQ0hJTkEKKworMDAtMTktQ0UgICAoaGV4KQkJUHJvZ3Jlc3NpdmUgR2FtaW5nIEludGVybmF0aW9uYWwKKzAwMTlDRSAgICAgKGJhc2UgMTYpCQlQcm9ncmVzc2l2ZSBHYW1pbmcgSW50ZXJuYXRpb25hbAorCQkJCTkyMCBQaWxvdCBSb2FkCisJCQkJTGFzIFZlZ2FzIE5WIDg5MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1DRiAgIChoZXgpCQlTQUxJQ1JVLCBTLkEuCiswMDE5Q0YgICAgIChiYXNlIDE2KQkJU0FMSUNSVSwgUy5BLgorCQkJCUF2LiBTZXJyYSAsIDEwMAorCQkJCVN0YS5NYS5QYWxhdXRvcmRlcmEgQmFyY2Vsb25hIDA4NDYwCisJCQkJU1BBSU4KKworMDAtMTktRDAgICAoaGV4KQkJQ2F0aGV4aXMKKzAwMTlEMCAgICAgKGJhc2UgMTYpCQlDYXRoZXhpcworCQkJCVBPIEJveCAxMDkxCisJCQkJVW1obGFuZ2EgUm9ja3MKKwkJCQlEdXJiYW4gS3dhWnVsdSBOYXRhbCA0MzIwCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTE5LUQxICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDE5RDEgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE5LUQyICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDE5RDIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTE5LUQzICAgKGhleCkJCVRSQUsgTWljcm93YXZlCiswMDE5RDMgICAgIChiYXNlIDE2KQkJVFJBSyBNaWNyb3dhdmUKKwkJCQk0NzI2IEVpc2VuaG93ZXIgQmx2ZAorCQkJCVRhbXBhIEZMIDMzNjM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1ENCAgIChoZXgpCQlJQ1ggVGVjaG5vbG9naWVzCiswMDE5RDQgICAgIChiYXNlIDE2KQkJSUNYIFRlY2hub2xvZ2llcworCQkJCTM0NDAgRnJhbmNpcy1IdWdoZXMKKwkJCQlTdWl0ZSAxMjAKKwkJCQlMYXZhbCBRdWViZWMgSDdMIDVBOQorCQkJCUNBTkFEQQorCiswMC0xOS1ENSAgIChoZXgpCQlJUCBJbm5vdmF0aW9ucywgSW5jLgorMDAxOUQ1ICAgICAoYmFzZSAxNikJCUlQIElubm92YXRpb25zLCBJbmMuCisJCQkJMTUxNyAxNDZ0aCBBdmUKKwkJCQlEb3JyIE1JIDQ5MzIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1ENiAgIChoZXgpCQlMUyBDYWJsZSBMdGQuCiswMDE5RDYgICAgIChiYXNlIDE2KQkJTFMgQ2FibGUgTHRkLgorCQkJCTEyRiBMUyBUb3dlciwgMTAyNi02LCBIb2dleS1kb25nCisJCQkJQW55YW5nLXNpIEd5ZW9uZ2dpLWRvIDQzMS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktRDcgICAoaGV4KQkJRk9SVFVORVRFSyBDTy4sIExURAorMDAxOUQ3ICAgICAoYmFzZSAxNikJCUZPUlRVTkVURUsgQ08uLCBMVEQKKwkJCQkxMkYsIE5vLiA3NSwgU2VjIDEsIENob25ncWluZyBTLiBSZC4sCisJCQkJWmhvbmd6aGVuZyBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS1EOCAgIChoZXgpCQlNQVhGT1IKKzAwMTlEOCAgICAgKGJhc2UgMTYpCQlNQVhGT1IKKwkJCQkjRSA4MDksIEJ1bmRhbmcsIFRlY2huby1QYXJrCisJCQkJWWF0YXAtRG9uZywgQnVuZ2RhbmctR3UKKwkJCQlTZW9uZ25hbS1DaXR5IEd5ZW9uZ2dpLURvIDQ2My03NjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMTktRDkgICAoaGV4KQkJWmV1dHNjaGVsIEdtYkgKKzAwMTlEOSAgICAgKGJhc2UgMTYpCQlaZXV0c2NoZWwgR21iSAorCQkJCUhlZXJ3ZWcgMgorCQkJCVTDvGJpbmdlbi1IaXJzY2hhdSBCVyBELTcyMDcwCisJCQkJR0VSTUFOWQorCiswMC0xOS1EQSAgIChoZXgpCQlXZWxsdHJhbnMgTyZFIFRlY2hub2xvZ3kgQ28uICwgTHRkLgorMDAxOURBICAgICAoYmFzZSAxNikJCVdlbGx0cmFucyBPJkUgVGVjaG5vbG9neSBDby4gLCBMdGQuCisJCQkJdGhlIDNyZCBGbG9vciwgYnVpbGRpbmcgQy1ELCBIaS10ZWNoIERpZ2l0YWwgSGFyYm9yLCBHdWFuZG9uZyBJbmR1c3RyaWFsIFBhcmsKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzQKKwkJCQlDSElOQQorCiswMC0xOS1EQiAgIChoZXgpCQlNSUNSTy1TVEFSIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCiswMDE5REIgICAgIChiYXNlIDE2KQkJTUlDUk8tU1RBUiBJTlRFUk5BVElPTkFMIENPLiwgTFRELgorCQkJCU5PLiA2OSwgTEktREUgU1QuLCBKVU5HLUhFIENJVFkKKwkJCQlUQUlQRUkgSFNJRU4gIDIzNQorCQkJCVRVVkFMVQorCiswMC0xOS1EQyAgIChoZXgpCQlFTkVOU1lTIFRlY2hub2xvZ2llcworMDAxOURDICAgICAoYmFzZSAxNikJCUVORU5TWVMgVGVjaG5vbG9naWVzCisJCQkJTGUgR2VybWFuaXVtCisJCQkJODAgQXZlbnVlIGRlcyBidXR0ZXMgZGUgQ2/Dq3NtZXMKKwkJCQlSRU5ORVMgQnJpdHRhbnkgMzU3MDAKKwkJCQlGUkFOQ0UKKworMDAtMTktREQgICAoaGV4KQkJRkVJLVp5ZmVyLCBJbmMuCiswMDE5REQgICAgIChiYXNlIDE2KQkJRkVJLVp5ZmVyLCBJbmMuCisJCQkJMTUxNSBTLiBNYW5jaGVzdGVyCisJCQkJQW5haGVpbSBDQSA5MjgwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktREUgICAoaGV4KQkJTU9CSVRFSworMDAxOURFICAgICAoYmFzZSAxNikJCU1PQklURUsKKwkJCQk1RixOby42MCxMYW5lIDMyMSxZYW5nLUt3YW5nIFN0cmVldAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS1ERiAgIChoZXgpCQlUaG9tc29uIEluYy4KKzAwMTlERiAgICAgKGJhc2UgMTYpCQlUaG9tc29uIEluYy4KKwkJCQkxMDEgV2VzdCAxMDNyZCBTdHJlZXQKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyOTAtMTEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRTAgICAoaGV4KQkJVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDE5RTAgICAgIChiYXNlIDE2KQkJVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJU291dGggQnVpbGRpbmcsIE5vLjUgS2V5dWFuIFJvYWQKKwkJCQlDZW50cmFsIFpvbmUsIFNjaWVuY2UgJiBUZWNobm9sb2d5IFBhcmsKKwkJCQlOYW5zaGFuIFNoZW56aGVuIDUxODA1NworCQkJCUNISU5BCisKKzAwLTE5LUUxICAgKGhleCkJCU5vcnRlbAorMDAxOUUxICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xOS1FMiAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCiswMDE5RTIgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTi4gTWF0aGlsZGEgQXZlLgorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRTMgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIgSW5jLgorMDAxOUUzICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ2FsaWZvcm5pYSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRTQgICAoaGV4KQkJMldpcmUsIEluYworMDAxOUU0ICAgICAoYmFzZSAxNikJCTJXaXJlLCBJbmMKKwkJCQkxNzA0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1FNSAgIChoZXgpCQlMeW54IFN0dWRpbyBUZWNobm9sb2d5LCBJbmMuCiswMDE5RTUgICAgIChiYXNlIDE2KQkJTHlueCBTdHVkaW8gVGVjaG5vbG9neSwgSW5jLgorCQkJCTE1NDAgQmFydG9uIFJkICMgMjY4CisJCQkJUmVkbGFuZHMgQ0EgOTIzNzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUU2ICAgKGhleCkJCVRPWU8gTUVESUMgQ08uLExURC4KKzAwMTlFNiAgICAgKGJhc2UgMTYpCQlUT1lPIE1FRElDIENPLixMVEQuCisJCQkJMS0xNy0yMiBLaXRhaG9yaWUsIE5pc2hpLWt1CisJCQkJT3Nha2EgIDU1MC0wMDE0CisJCQkJSkFQQU4KKworMDAtMTktRTcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOUU3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRTggICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxOUU4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRTkgICAoaGV4KQkJUy1JbmZvcm1hdGlvbiBUZWNobm9sZ3ksIENvLiwgTHRkLgorMDAxOUU5ICAgICAoYmFzZSAxNikJCVMtSW5mb3JtYXRpb24gVGVjaG5vbGd5LCBDby4sIEx0ZC4KKwkJCQlTdW5nd29vIEJsZGcsIDcxNy0zIFN1c2VvLWRvbmcsCisJCQkJR2FuZ25hbS1ndSwKKwkJCQlTZW91bCAgMTM1LTg4NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xOS1FQSAgIChoZXgpCQlUZXJhTWFnZSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDE5RUEgICAgIChiYXNlIDE2KQkJVGVyYU1hZ2UgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCUdvbGRlbiBMYW5kIEJ1aWxkaW5nIFN1aXRlIDkwNworCQkJCTMyIExpYW5nIE1hIEJyaWRnZSBSb2FkCisJCQkJQmVpamluZyAgMTAwMDE2CisJCQkJQ0hJTkEKKworMDAtMTktRUIgICAoaGV4KQkJUHlyb25peCBMdGQKKzAwMTlFQiAgICAgKGJhc2UgMTYpCQlQeXJvbml4IEx0ZAorCQkJCUJyYWl0aHdlbGwgV2F5CisJCQkJSGVsbGFieQorCQkJCVJvdGhlcmhhbSBTb3V0aCBZb3Jrc2hpcmUgUzY2IDhRWQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE5LUVDICAgKGhleCkJCVNhZ2Ftb3JlIFN5c3RlbXMsIEluYy4KKzAwMTlFQyAgICAgKGJhc2UgMTYpCQlTYWdhbW9yZSBTeXN0ZW1zLCBJbmMuCisJCQkJNTUgTWlkZGxlc2V4IFN0cmVldAorCQkJCVN1aXRlIDIxNworCQkJCU5vcnRoIENoZWxtc2ZvcmQgTUEgMDE4NjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUVEICAgKGhleCkJCUF4ZXNzdGVsIEluYy4KKzAwMTlFRCAgICAgKGJhc2UgMTYpCQlBeGVzc3RlbCBJbmMuCisJCQkJNjgxNSBGbGFuZGVycyBTci4KKwkJCQlTdGUgMjEwCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1FRSAgIChoZXgpCQlDQVJMTyBHQVZBWlpJIENPTlRST0xTIFNQQS1Db250cm9scyBEaXZpc2lvbgorMDAxOUVFICAgICAoYmFzZSAxNikJCUNBUkxPIEdBVkFaWkkgQ09OVFJPTFMgU1BBLUNvbnRyb2xzIERpdmlzaW9uCisJCQkJVmlhIFNhZmZvcnplIDgKKwkJCQlCRUxMVU5PIEJMIEktMzIxMDAKKwkJCQlJVEFMWQorCiswMC0xOS1FRiAgIChoZXgpCQlTSEVOWkhFTiBMSU5OS0lORyBFTEVDVFJPTklDUyBDTy4sTFRECiswMDE5RUYgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gTElOTktJTkcgRUxFQ1RST05JQ1MgQ08uLExURAorCQkJCVJvb20gOTAxLEIgQmxvY2ssUWluZ2h1YSBJbmZvcm1hdGlvbiBDZW50ZXIgSGktdGVjIHBhcmsgTm9ydGggRGlzdHJpY3QsTmFuc2hhbiBEaXN0cmljdCxTaGVuemhlbgorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xOS1GMCAgIChoZXgpCQlVTklPTk1BTiBURUNITk9MT0dZIENPLixMVEQKKzAwMTlGMCAgICAgKGJhc2UgMTYpCQlVTklPTk1BTiBURUNITk9MT0dZIENPLixMVEQKKwkJCQkxOEYsIEhVQVlBTkcgVE9XRVIsWUFOREFZSSBST0FECisJCQkJSFVJWkhPVSBHVUFOR0RPTkcgNTE2MDA3CisJCQkJQ0hJTkEKKworMDAtMTktRjEgICAoaGV4KQkJU3RhciBDb21tdW5pY2F0aW9uIE5ldHdvcmsgVGVjaG5vbG9neSBDby4sTHRkCiswMDE5RjEgICAgIChiYXNlIDE2KQkJU3RhciBDb21tdW5pY2F0aW9uIE5ldHdvcmsgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJMTAvRixUb3dlciBCLFNPSE8gTmV3IFRvd24sTm8uODggamlhbmd1b1JvYWQsQ2hhb3lhbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwMjIKKwkJCQlDSElOQQorCiswMC0xOS1GMiAgIChoZXgpCQlUZXJhZHluZSBLLksuCiswMDE5RjIgICAgIChiYXNlIDE2KQkJVGVyYWR5bmUgSy5LLgorCQkJCTI3Mi0xMywgSGVpc2VpLCBUYWthb25vCisJCQkJT3p1LW1hY2hpCisJCQkJS2lrdWNoaS1ndW4gS3VtYW1vdG8gODY5LTEyMzIKKwkJCQlKQVBBTgorCiswMC0xOS1GMyAgIChoZXgpCQlDZXRpcywgSW5jCiswMDE5RjMgICAgIChiYXNlIDE2KQkJQ2V0aXMsIEluYworCQkJCTUwMjUgR2FsbGV5IFJkCisJCQkJQ29sb3JhZG8gU3ByaW5ncyBDTyA4MDkxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMTktRjQgICAoaGV4KQkJQ29udmVyZ2VucyBPeSBMdGQKKzAwMTlGNCAgICAgKGJhc2UgMTYpCQlDb252ZXJnZW5zIE95IEx0ZAorCQkJCVdlc3RlbmRpbnRpZSA5OSBCCisJCQkJRXNwb28gVXVzaW1hYSBGSU4tMDIxNjAKKwkJCQlGSU5MQU5ECisKKzAwLTE5LUY1ICAgKGhleCkJCUltYWdpbmF0aW9uIFRlY2hub2xvZ2llcyBMdGQKKzAwMTlGNSAgICAgKGJhc2UgMTYpCQlJbWFnaW5hdGlvbiBUZWNobm9sb2dpZXMgTHRkCisJCQkJWnVyaWNoIEhvdXNlCisJCQkJQ2FuYWwgV2hhcmYKKwkJCQlMZWVkcyBXZXN0IFlvcmtzaGlyZSBMUzExIDVEQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE5LUY2ICAgKGhleCkJCUFjY29uZXQgKFBURSkgTHRkCiswMDE5RjYgICAgIChiYXNlIDE2KQkJQWNjb25ldCAoUFRFKSBMdGQKKwkJCQlOby4gMTYgQXllciBSYWphaCBDcmVzY2VudAorCQkJCSMgMDMtMDMKKwkJCQlTaW5nYXBvcmUgIDEzOTk2NQorCQkJCVNJTkdBUE9SRQorCiswMC0xOS1GNyAgIChoZXgpCQlPbnNldCBDb21wdXRlciBDb3Jwb3JhdGlvbgorMDAxOUY3ICAgICAoYmFzZSAxNikJCU9uc2V0IENvbXB1dGVyIENvcnBvcmF0aW9uCisJCQkJUC5PLiBCb3ggMzQ1MAorCQkJCVBvY2Fzc2V0IE1BIDAyNTU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1GOCAgIChoZXgpCQlFbWJlZGRlZCBTeXN0ZW1zIERlc2lnbiwgSW5jLgorMDAxOUY4ICAgICAoYmFzZSAxNikJCUVtYmVkZGVkIFN5c3RlbXMgRGVzaWduLCBJbmMuCisJCQkJNjgxMCBEZWVycGF0aCBSb2FkCisJCQkJU3VpdGUgMzAwCisJCQkJRWxrcmlkZ2UgTUQgMjEwNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTE5LUY5ICAgKGhleCkJCVRESy1MYW1iZGEKKzAwMTlGOSAgICAgKGJhc2UgMTYpCQlUREstTGFtYmRhCisJCQkJNDA1IEVzc2V4IFJvYWQKKwkJCQlOZXB0dW5lIE5KIDA3NzUzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xOS1GQSAgIChoZXgpCQlDYWJsZSBWaXNpb24gRWxlY3Ryb25pY3MgQ08uLCBMVEQuCiswMDE5RkEgICAgIChiYXNlIDE2KQkJQ2FibGUgVmlzaW9uIEVsZWN0cm9uaWNzIENPLiwgTFRELgorCQkJCTEyRi0zLCBOby4xNiwgQ2hpZW4gUGEgUmQuCisJCQkJQ2h1bmcgSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xOS1GQiAgIChoZXgpCQlCU2t5QiBMdGQKKzAwMTlGQiAgICAgKGJhc2UgMTYpCQlCU2t5QiBMdGQKKwkJCQkxNjkgS0lOR1MgUk9BRAorCQkJCUJSRU5UV09PRCBFU1NFWCBDTTE0IDRFRgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTE5LUZDICAgKGhleCkJCVBULiBVZm9ha3NlcyBTdWtzZXMgTHVhcmJpYXNhCiswMDE5RkMgICAgIChiYXNlIDE2KQkJUFQuIFVmb2Frc2VzIFN1a3NlcyBMdWFyYmlhc2EKKwkJCQlKbC4gU3VsdGFuIEhhc2FudWRpbiBOby4gNDEKKwkJCQlLZWJheW9yYW4gQmFydQorCQkJCUpha2FydGEgU2VsYXRhbiBES0kgSmFrYXJ0YSAxMjE2MAorCQkJCUlORE9ORVNJQQorCiswMC0xOS1GRCAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMTlGRCAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xOS1GRSAgIChoZXgpCQlTSEVOWkhFTiBTRUVDT01NIFRFQ0hOT0xPR1kgQ08uLExURC4KKzAwMTlGRSAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBTRUVDT01NIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQlSb29tIDYwOSw0MDRZYW5uYW4gUm9hZAorCQkJCVNoZW5aaGVuIEd1YW5nZG9uZyA1MTgwMzEKKwkJCQlDSElOQQorCiswMC0xOS1GRiAgIChoZXgpCQlGaW5uenltZXMKKzAwMTlGRiAgICAgKGJhc2UgMTYpCQlGaW5uenltZXMKKwkJCQk4MDAgV2VzdCBDdW1taW5ncyBQYXJrCisJCQkJU3VpdGUgNTU1MAorCQkJCVdvYnVybiBNQSAwMTgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMDAgICAoaGV4KQkJTUFUUklYIElOQy4KKzAwMUEwMCAgICAgKGJhc2UgMTYpCQlNQVRSSVggSU5DLgorCQkJCUFTIGJsZC4zLTEzLTIwCisJCQkJTmlzaGktVGVtbWEgS2l0YS1LdQorCQkJCU9zYWthICA1MzAtMDA0NworCQkJCUpBUEFOCisKKzAwLTFBLTAxICAgKGhleCkJCVNtaXRocyBNZWRpY2FsCiswMDFBMDEgICAgIChiYXNlIDE2KQkJU21pdGhzIE1lZGljYWwKKwkJCQk0MzUwIFJpdmVyZ3JlZW4gUGFya3dheQorCQkJCVN1aXRlIDIwMAorCQkJCUR1bHV0aCBHQSAzMDA5NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMDIgICAoaGV4KQkJU0VDVVJFIENBUkUgUFJPRFVDVFMsIElOQworMDAxQTAyICAgICAoYmFzZSAxNikJCVNFQ1VSRSBDQVJFIFBST0RVQ1RTLCBJTkMKKwkJCQkzOSBDSEVORUxMIERSSVZFCisJCQkJQ09OQ09SRCBOSCAwMzMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMDMgICAoaGV4KQkJQW5nZWwgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDFBMDMgICAgIChiYXNlIDE2KQkJQW5nZWwgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJMTcsIExhbmUgMTM0LCBTaG91IFNoYW4gUm9hZCwgVGFpIFNoYW4sCisJCQkJVGFpcGVpICAyNDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTA0ICAgKGhleCkJCUludGVyYXkgU29sdXRpb25zIEJWCiswMDFBMDQgICAgIChiYXNlIDE2KQkJSW50ZXJheSBTb2x1dGlvbnMgQlYKKwkJCQlNci4gVy5NLiBPcHBlZGlqayB2YW4gVmVlbndlZyA4CisJCQkJQlVSR1VNIEZyaWVzbGFuZCA5MjUxIEdBCisJCQkJTkVUSEVSTEFORFMKKworMDAtMUEtMDUgICAoaGV4KQkJT1BUSUJBU0UgTFRECiswMDFBMDUgICAgIChiYXNlIDE2KQkJT1BUSUJBU0UgTFRECisJCQkJNyBTaGFua2FyIFN0LgorCQkJCUhlcnpsaXlhIElTUkFFTCA0NjEyMAorCQkJCUlTUkFFTAorCiswMC0xQS0wNiAgIChoZXgpCQlPcFZpc3RhLCBJbmMuCiswMDFBMDYgICAgIChiYXNlIDE2KQkJT3BWaXN0YSwgSW5jLgorCQkJCTg3MCBOb3J0aCBNY0NhcnRoeSBCbHZkLgorCQkJCU1pbHBpdGFzIENhbGlmb3JuaWEgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTA3ICAgKGhleCkJCUFyZWNvbnQgVmlzaW9uCiswMDFBMDcgICAgIChiYXNlIDE2KQkJQXJlY29udCBWaXNpb24KKwkJCQkyNDAwIE4uIExpbmNvbG4gQXZlCisJCQkJQWx0YWRlbmEgQ0EgOTEwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTA4ICAgKGhleCkJCURhbG1hbiBUZWNobmljYWwgU2VydmljZXMKKzAwMUEwOCAgICAgKGJhc2UgMTYpCQlEYWxtYW4gVGVjaG5pY2FsIFNlcnZpY2VzCisJCQkJMzYgRHVrZSBDbG9zZQorCQkJCVdlc3QgV2F5CisJCQkJQW5kb3ZlciBIYW1wc2hpcmUgU1AxMCA1QVAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQS0wOSAgIChoZXgpCQlXYXlmYXJlciBUcmFuc2l0IFN5c3RlbXMgTHRkCiswMDFBMDkgICAgIChiYXNlIDE2KQkJV2F5ZmFyZXIgVHJhbnNpdCBTeXN0ZW1zIEx0ZAorCQkJCTEwIFdpbGxpcyBXYXkKKwkJCQlGbGVldHMgSW5zZHVzdHJpYWwgRXN0CisJCQkJUG9vbGUgRG9yc2V0IEJIMTUgM1NTCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUEtMEEgICAoaGV4KQkJQWRhcHRpdmUgTWljcm8tV2FyZSBJbmMuCiswMDFBMEEgICAgIChiYXNlIDE2KQkJQWRhcHRpdmUgTWljcm8tV2FyZSBJbmMuCisJCQkJNjkxNyBJbm5vdmF0aW9uIEJsdmQKKwkJCQlGb3J0IFdheW5lIElOIDQ2ODE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0wQiAgIChoZXgpCQlCT05BIFRFQ0hOT0xPR1kgSU5DLgorMDAxQTBCICAgICAoYmFzZSAxNikJCUJPTkEgVEVDSE5PTE9HWSBJTkMuCisJCQkJNEYsIEUtUGxhY2UgQmxkZy4sIDcxOS0yNAorCQkJCVllb2tzYW0tRG9uZywgR2FuZ25hbS1HdSwKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS0wQyAgIChoZXgpCQlTd2UtRGlzaCBTYXRlbGxpdGUgU3lzdGVtcyBBQgorMDAxQTBDICAgICAoYmFzZSAxNikJCVN3ZS1EaXNoIFNhdGVsbGl0ZSBTeXN0ZW1zIEFCCisJCQkJVG9yZ2dhdGFuIDE1CisJCQkJU29sbmEgU3RvY2tob2xtIFNFLTE3MSAwNgorCQkJCVNXRURFTgorCiswMC0xQS0wRCAgIChoZXgpCQlIYW5kSGVsZCBlbnRlcnRhaW5tZW50LCBJbmMuCiswMDFBMEQgICAgIChiYXNlIDE2KQkJSGFuZEhlbGQgZW50ZXJ0YWlubWVudCwgSW5jLgorCQkJCTUzOSBCcnlhbnQgU3RyZWV0LCBTdWl0ZSA0MDMKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0wRSAgIChoZXgpCQlDaGVuZyBVZWkgUHJlY2lzaW9uIEluZHVzdHJ5IENvLixMdGQKKzAwMUEwRSAgICAgKGJhc2UgMTYpCQlDaGVuZyBVZWkgUHJlY2lzaW9uIEluZHVzdHJ5IENvLixMdGQKKwkJCQlKdW5kYSBJbmR1c3RyeSBEaXN0cmljdCwgRG9uZ2tlbmcgVG93bixEb25nZ3VhbiBDaXR5CisJCQkJRG9uZ0d1YW4gR3VhbmcgRG9uZyA1MjM0NTUKKwkJCQlDSElOQQorCiswMC0xQS0wRiAgIChoZXgpCQlTaXN0ZW1hcyBBdmFuemFkb3MgZGUgQ29udHJvbCwgUy5BLgorMDAxQTBGICAgICAoYmFzZSAxNikJCVNpc3RlbWFzIEF2YW56YWRvcyBkZSBDb250cm9sLCBTLkEuCisJCQkJY2FsbGUgQ29scXVpZGUgNgorCQkJCUxhcyBSb3phcyBNYWRyaWQgMjgyMzAKKwkJCQlTUEFJTgorCiswMC0xQS0xMCAgIChoZXgpCQlMVUNFTlQgVFJBTlMgRUxFQ1RST05JQ1MgQ08uLExURAorMDAxQTEwICAgICAoYmFzZSAxNikJCUxVQ0VOVCBUUkFOUyBFTEVDVFJPTklDUyBDTy4sTFRECisJCQkJOUYtMSxOby4xNixDaGllbiBQYWggUmQuCisJCQkJQ2h1bmcgSG8gVGFpcGVpIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtMTEgICAoaGV4KQkJR29vZ2xlIEluYy4KKzAwMUExMSAgICAgKGJhc2UgMTYpCQlHb29nbGUgSW5jLgorCQkJCTE2MDAgQW1waGl0aGVhdGVyIFBhcmt3YXkKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0xMiAgIChoZXgpCQlFc3NpbG9yCiswMDFBMTIgICAgIChiYXNlIDE2KQkJRXNzaWxvcgorCQkJCTY0IEJpcyBBdmVudWUgQXViZXJ0CisJCQkJOTQzMDAgVmluY2VubmVzIAorCQkJCUZSQU5DRQorCiswMC0xQS0xMyAgIChoZXgpCQlXYW5saWRhIEdyb3VwIENvLiwgTFRECiswMDFBMTMgICAgIChiYXNlIDE2KQkJV2FubGlkYSBHcm91cCBDby4sIExURAorCQkJCUppYWhlIFJvYWQgTm8uNjE4CisJCQkJWGlhbWVuIEZ1amlhbiAzNjEwMDYKKwkJCQlDSElOQQorCiswMC0xQS0xNCAgIChoZXgpCQlYaW4gSHVhIENvbnRyb2wgRW5naW5lZXJpbmcgQ28uLEx0ZC4KKzAwMUExNCAgICAgKGJhc2UgMTYpCQlYaW4gSHVhIENvbnRyb2wgRW5naW5lZXJpbmcgQ28uLEx0ZC4KKwkJCQkxNjAgV2VuamluZyBSZC4sIE1pbmhhbmcKKwkJCQlTaGFuZ2hhaSAgMjAwMDI0NQorCQkJCUNISU5BCisKKzAwLTFBLTE1ICAgKGhleCkJCWdlbWFsdG8gZS1QYXltZW50CiswMDFBMTUgICAgIChiYXNlIDE2KQkJZ2VtYWx0byBlLVBheW1lbnQKKwkJCQk2IHJ1ZSBkZSBsYSBWZXJyZXJpZQorCQkJCU1ldWRvbiAgOTIxOTcKKwkJCQlGUkFOQ0UKKworMDAtMUEtMTYgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUExNiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUEtMTcgICAoaGV4KQkJVGVhayBUZWNobm9sb2dpZXMsIEluYy4KKzAwMUExNyAgICAgKGJhc2UgMTYpCQlUZWFrIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTI5MDEgVGFzbWFuIERyLiwgU3RlLiAjMjEwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTE4ICAgKGhleCkJCUFkdmFuY2VkIFNpbXVsYXRpb24gVGVjaG5vbG9neSBpbmMuCiswMDFBMTggICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgU2ltdWxhdGlvbiBUZWNobm9sb2d5IGluYy4KKwkJCQk1MDBBIEh1bnRtYXIgUGFyayBEcml2ZQorCQkJCUhlcm5kb24gVkEgMjAxNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTE5ICAgKGhleCkJCUNvbXB1dGVyIEVuZ2luZWVyaW5nIExpbWl0ZWQKKzAwMUExOSAgICAgKGJhc2UgMTYpCQlDb21wdXRlciBFbmdpbmVlcmluZyBMaW1pdGVkCisJCQkJUE8gQm94IDI2LTI1CisJCQkJRXBzb20KKwkJCQlBdWNrbGFuZCBBSyAxMzQ0CisJCQkJTkVXIFpFQUxBTkQKKworMDAtMUEtMUEgICAoaGV4KQkJR2VudGV4IENvcnBvcmF0aW9uL0VsZWN0cm8tQWNvdXN0aWMgUHJvZHVjdHMKKzAwMUExQSAgICAgKGJhc2UgMTYpCQlHZW50ZXggQ29ycG9yYXRpb24vRWxlY3Ryby1BY291c3RpYyBQcm9kdWN0cworCQkJCTI0NTYgQnJvd24gQXZlbnVlCisJCQkJTWFuY2hlc3RlciBOSCAwMzEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMUIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDFBMUIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjAwIE4uIEh3eSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMUMgICAoaGV4KQkJR1QmVCBFbmdpbmVlcmluZyBQdGUgTHRkCiswMDFBMUMgICAgIChiYXNlIDE2KQkJR1QmVCBFbmdpbmVlcmluZyBQdGUgTHRkCisJCQkJMiBBbmcgTW8gS2lvIFN0LjY0LCBFY29uIEJ1aWxkaW5nLCAjMDQtMDAKKwkJCQlTaW5nYXBvcmUgNTY5MDg0CisJCQkJU0lOR0FQT1JFCisKKzAwLTFBLTFEICAgKGhleCkJCVBDaG9tZSBPbmxpbmUgSW5jLgorMDAxQTFEICAgICAoYmFzZSAxNikJCVBDaG9tZSBPbmxpbmUgSW5jLgorCQkJCTExRiwgMTA1LCBTZWMuIDIsIFR1bi1Id2EgUy4gUmQuCisJCQkJVGFpcGVpIDEwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtMUUgICAoaGV4KQkJQXJ1YmEgTmV0d29ya3MKKzAwMUExRSAgICAgKGJhc2UgMTYpCQlBcnViYSBOZXR3b3JrcworCQkJCTEzMjIgQ3Jvc3NtYW4gQXYKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTFGICAgKGhleCkJCUNvYXN0YWwgRW52aXJvbm1lbnRhbCBTeXN0ZW1zCiswMDFBMUYgICAgIChiYXNlIDE2KQkJQ29hc3RhbCBFbnZpcm9ubWVudGFsIFN5c3RlbXMKKwkJCQk4MjAgRmlyc3QgQXZlbnVlIFNvdXRoCisJCQkJU2VhdHRsZSB3YSA5ODEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMjAgICAoaGV4KQkJQ01PVEVDSCBDby4gTHRkLgorMDAxQTIwICAgICAoYmFzZSAxNikJCUNNT1RFQ0ggQ28uIEx0ZC4KKwkJCQk1RiBFdHJvbml4IEJsZGcuIDE3LTEwCisJCQkJWW9pZG8tRG9uZworCQkJCVlvdW5nZHVuZ3BvLUd1IFNlb3VsIDE1MC04NzQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtMjEgICAoaGV4KQkJSW5kYWMgQi5WLgorMDAxQTIxICAgICAoYmFzZSAxNikJCUluZGFjIEIuVi4KKwkJCQlJbnN0aXR1dGVud2VnIDE1QQorCQkJCUVuc2NoZWRlIE92ZXJpanNzZWwgNzUyMSBQSAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTFBLTIyICAgKGhleCkJCWVRLTMgRW50d2lja2x1bmcgR21iSAorMDAxQTIyICAgICAoYmFzZSAxNikJCWVRLTMgRW50d2lja2x1bmcgR21iSAorCQkJCU1haWJ1cmdlciBTdHIuIDM2CisJCQkJTGVlciBOaWVkZXJzYWNoc2VuIEQtMjY3ODkKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLTIzICAgKGhleCkJCUljZSBRdWJlLCBJbmMKKzAwMUEyMyAgICAgKGJhc2UgMTYpCQlJY2UgUXViZSwgSW5jCisJCQkJMTQxIFdpbHNvbiBBdmUKKwkJCQlHcmVlbnNidXJnIFBhIDE1NjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0yNCAgIChoZXgpCQlHYWxheHkgVGVsZWNvbSBUZWNobm9sb2dpZXMgTHRkCiswMDFBMjQgICAgIChiYXNlIDE2KQkJR2FsYXh5IFRlbGVjb20gVGVjaG5vbG9naWVzIEx0ZAorCQkJCU5vLjI1LCBUaGUgMXN0IEdhb3hpbiBSb2FkCisJCQkJWGknYW4gQ2l0eSBTaGFubnhpIDcxMDA3NQorCQkJCUNISU5BCisKKzAwLTFBLTI1ICAgKGhleCkJCURFTFRBIERPUkUKKzAwMUEyNSAgICAgKGJhc2UgMTYpCQlERUxUQSBET1JFCisJCQkJQk9OTkVNQUlOCisJCQkJQ09NQk9VUkcgQlJFVEFHTkUgMzUgMzUyNzAKKwkJCQlGUkFOQ0UKKworMDAtMUEtMjYgICAoaGV4KQkJRGVsdGFub2RlIFNvbHV0aW9ucyBBQgorMDAxQTI2ICAgICAoYmFzZSAxNikJCURlbHRhbm9kZSBTb2x1dGlvbnMgQUIKKwkJCQlCb3ggOTIgMTg0CisJCQkJU3RvY2tob2xtICAxMjAgMDkKKwkJCQlTV0VERU4KKworMDAtMUEtMjcgICAoaGV4KQkJVWJpc3RhcgorMDAxQTI3ICAgICAoYmFzZSAxNikJCVViaXN0YXIKKwkJCQk4RiwgU2VvbmdkbyBCdWlsZGluZywgNTg3LTIzCisJCQkJU2luc2EtRG9uZywgR2FuZ25hbS1HdQorCQkJCVNlb3VsICAxMzUtNzQ3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTI4ICAgKGhleCkJCUFTV1QgQ28uLCBMVEQuIFRhaXdhbiBCcmFuY2ggSC5LLgorMDAxQTI4ICAgICAoYmFzZSAxNikJCUFTV1QgQ28uLCBMVEQuIFRhaXdhbiBCcmFuY2ggSC5LLgorCQkJCTdGLiwgTm8uMyBMYW5lIDkxLCBEb25nbWVpIFJkLgorCQkJCUhzaW5jaHUgIDMwMDcwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS0yOSAgIChoZXgpCQlUZWNoc29uaWMgSW5kdXN0cmllcyBkL2IvYSBIdW1taW5iaXJkCiswMDFBMjkgICAgIChiYXNlIDE2KQkJVGVjaHNvbmljIEluZHVzdHJpZXMgZC9iL2EgSHVtbWluYmlyZAorCQkJCTEyMjAgT2xkIEFscGhhcmV0dGEgUmQKKwkJCQlTdWl0ZSAzNDAKKwkJCQlBbHBoYXJldHRhIEdBIDMwMDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0yQSAgIChoZXgpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDFBMkEgICAgIChiYXNlIDE2KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLiwgTm8uIDkgLCBQYXJrIEF2ZW51ZSBJSSwKKwkJCQlTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTJCICAgKGhleCkJCUF5ZWNvbSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxQTJCICAgICAoYmFzZSAxNikJCUF5ZWNvbSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLiAyNSwgUiZEIFJvYWQgMiwgU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTJDICAgKGhleCkJCVNBVEVDIENvLixMVEQKKzAwMUEyQyAgICAgKGJhc2UgMTYpCQlTQVRFQyBDby4sTFRECisJCQkJMzU4LTQsIFBhbGdvazItRG9uZywgU2FuZ25vay1HdQorCQkJCUFuc2FuLVNpIEt5dW5na2ktRG8gNDI2LTE5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS0yRCAgIChoZXgpCQlUaGUgTmF2dm8gR3JvdXAKKzAwMUEyRCAgICAgKGJhc2UgMTYpCQlUaGUgTmF2dm8gR3JvdXAKKwkJCQk0NDAwIEJha2VyIFJvYWQKKwkJCQlNaW5uZXRvbmthIE1OIDU1MzQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0yRSAgIChoZXgpCQlaaW92YSBDb3BvcmF0aW9uCiswMDFBMkUgICAgIChiYXNlIDE2KQkJWmlvdmEgQ29wb3JhdGlvbgorCQkJCVVuaXQgMywgNy05IFNoZXJyaWZmcyByb2FkCisJCQkJTG9uc2RhbGUgUy5BLiA1MTYwCisJCQkJQVVTVFJBTElBCisKKzAwLTFBLTJGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUEyRiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTMwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUEzMCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTMxICAgKGhleCkJCVNDQU4gQ09JTiBJbmR1c3RyaWVzIEFCCiswMDFBMzEgICAgIChiYXNlIDE2KQkJU0NBTiBDT0lOIEluZHVzdHJpZXMgQUIKKwkJCQlKYWdlcnNoaWxsZ2F0YW4gMjYKKwkJCQlNYWxtb2UgU2thbmUgMjEzNzUKKwkJCQlTV0VERU4KKworMDAtMUEtMzIgICAoaGV4KQkJQUNUSVZBIE1VTFRJTUVESUEKKzAwMUEzMiAgICAgKGJhc2UgMTYpCQlBQ1RJVkEgTVVMVElNRURJQQorCQkJCVNJQ1AgQ1NFCisJCQkJU0FOVCBKT0FOIERFU1BJIEJBUkNFTE9OQSAwODk3MAorCQkJCVNQQUlOCisKKzAwLTFBLTMzICAgKGhleCkJCUFTSSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAxQTMzICAgICAoYmFzZSAxNikJCUFTSSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTEwNDIgRSBHdWFkYWx1cGUgUmQKKwkJCQlUZW1wZSBBWiA4NTI4MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMzQgICAoaGV4KQkJS29ua2EgR3JvdXAgQ28uLCBMdGQuCiswMDFBMzQgICAgIChiYXNlIDE2KQkJS29ua2EgR3JvdXAgQ28uLCBMdGQuCisJCQkJT3ZlcnNlYSBDaGluZXNlIFRvd24sTmFuc2hhbiwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDUzCisJCQkJQ0hJTkEKKworMDAtMUEtMzUgICAoaGV4KQkJQkFSVEVDIEdtYkgKKzAwMUEzNSAgICAgKGJhc2UgMTYpCQlCQVJURUMgR21iSAorCQkJCVNjaHVsc3RyLiAzMAorCQkJCUdvdHRlc3plbGwgQmF2YXJpYSA5NDIzOQorCQkJCUdFUk1BTlkKKworMDAtMUEtMzYgICAoaGV4KQkJQWlwZXJtb24gR21iSCAmIENvLiBLRworMDAxQTM2ICAgICAoYmFzZSAxNikJCUFpcGVybW9uIEdtYkggJiBDby4gS0cKKwkJCQlaYW1kb3JmZXIgU3RyLiAxMDAKKwkJCQlNdW5jaGVuCisJCQkJTXVuaWNoIEJhdmFyaWEgRC04MTY3NworCQkJCUdFUk1BTlkKKworMDAtMUEtMzcgICAoaGV4KQkJTGVhciBDb3Jwb3JhdGlvbgorMDAxQTM3ICAgICAoYmFzZSAxNikJCUxlYXIgQ29ycG9yYXRpb24KKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDQ4CisJCQkJS3JvbmFjaCBCYXllcm4gOTYzMTcKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLTM4ICAgKGhleCkJCVNhbm1pbmEtU0NJCiswMDFBMzggICAgIChiYXNlIDE2KQkJU2FubWluYS1TQ0kKKwkJCQkxMzAwMCBTb3V0aCBNZW1vcmlhbCBQYXJrd2F5CisJCQkJSHVudHN2aWxsZSBBTCAzNTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtMzkgICAoaGV4KQkJTWVydGVuIEdtYkgmQ29LRworMDAxQTM5ICAgICAoYmFzZSAxNikJCU1lcnRlbiBHbWJIJkNvS0cKKwkJCQlGcml0ei1Lb3R6LVN0ci4gOAorCQkJCVdpZWhsIE5SVyA1MTY3NAorCQkJCUdFUk1BTlkKKworMDAtMUEtM0EgICAoaGV4KQkJRG9uZ2FoZWxlY29tbQorMDAxQTNBICAgICAoYmFzZSAxNikJCURvbmdhaGVsZWNvbW0KKwkJCQk2NzgtMyxKZWlsLXJpLFlhbmdnaS1teXVuLENoZW9pbi1ndQorCQkJCVlvbmdpbi1zaSBHeWVvbmdnaS1kbyA0NDktODIxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTNCICAgKGhleCkJCURvYWggRWxlY29tIEluYy4KKzAwMUEzQiAgICAgKGJhc2UgMTYpCQlEb2FoIEVsZWNvbSBJbmMuCisJCQkJOHRoIGZsLiBDZW50dXJ5IFBsYXphLCAyNzctNDAKKwkJCQlTdW5nc3UtMkdhIDNEb25nCisJCQkJU2VvdWwgIDEzMy0xMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtM0MgICAoaGV4KQkJVGVjaG5vd2F2ZSBMdGQuCiswMDFBM0MgICAgIChiYXNlIDE2KQkJVGVjaG5vd2F2ZSBMdGQuCisJCQkJU2FrdXJhaSBCbGRnLjFGLAorCQkJCTEtMzUtNiBOYWthY2hvCisJCQkJTXVzYXNoaW5vLXNoaSBUb2t5byAxODAtMDAwNgorCQkJCUpBUEFOCisKKzAwLTFBLTNEICAgKGhleCkJCUFqaW4gVmlzaW9uIENvLixMdGQKKzAwMUEzRCAgICAgKGJhc2UgMTYpCQlBamluIFZpc2lvbiBDby4sTHRkCisJCQkJMTQwNCwgTWFyaW8tVG93ZXIsIDIyMi0xMgorCQkJCUd1cm8tZG9uZywgR3Vyby1ndQorCQkJCVNlb3VsICAxNTItMDUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTNFICAgKGhleCkJCUZhc3RlciBUZWNobm9sb2d5IExMQworMDAxQTNFICAgICAoYmFzZSAxNikJCUZhc3RlciBUZWNobm9sb2d5IExMQworCQkJCTE4MTIgQXZlbnVlIEQKKwkJCQlTdWl0ZSAyMDIKKwkJCQlLYXR5IFRleGFzIDc3NDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS0zRiAgIChoZXgpCQlpbnRlbGJyYXMKKzAwMUEzRiAgICAgKGJhc2UgMTYpCQlpbnRlbGJyYXMKKwkJCQlyb2RvdmlhIGJyIDEwMSBrbSAyMTAKKwkJCQlpbnRlbGJyYXMKKwkJCQlzYW8gam9zZSBzYyA4ODEwNDgwMAorCQkJCUJSQVpJTAorCiswMC0xQS00MCAgIChoZXgpCQlBLUZPVVIgVEVDSCBDTy4sIExURC4KKzAwMUE0MCAgICAgKGJhc2UgMTYpCQlBLUZPVVIgVEVDSCBDTy4sIExURC4KKwkJCQk2RiwgTm8uIDEwOCwgTWluLUNodWFuIFJkLiwKKwkJCQlIc2luLVRpZW4gVGFpcGVpIDIzMTQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS00MSAgIChoZXgpCQlJTk9DT1ZBIENvLixMdGQKKzAwMUE0MSAgICAgKGJhc2UgMTYpCQlJTk9DT1ZBIENvLixMdGQKKwkJCQk1RiBTRU9VTCBCRC43MzYtMTcKKwkJCQlZZW9rc2FtLURvbmcsIEthbmduYW0tS3UgU0VPVUwgMTM1LTkyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS00MiAgIChoZXgpCQlUZWNoY2l0eSBUZWNobm9sb2d5IGNvLiwgTHRkLgorMDAxQTQyICAgICAoYmFzZSAxNikJCVRlY2hjaXR5IFRlY2hub2xvZ3kgY28uLCBMdGQuCisJCQkJNEYsIE5vLiA0LCBBbGxleSAxLCBTenUgV2VpIExhbmUsIENodW5nIENoZW5nIFJkLiwKKwkJCQlIc2luIFRlaW4gQ2l0eSBUYWlwZWkgSHNpZW4gMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS00MyAgIChoZXgpCQlMb2dpY2FsIExpbmsgQ29tbXVuaWNhdGlvbnMKKzAwMUE0MyAgICAgKGJhc2UgMTYpCQlMb2dpY2FsIExpbmsgQ29tbXVuaWNhdGlvbnMKKwkJCQkxOTA5IENlbnRyYWwgRHJpdmUgU3VpdGUgMjA1CisJCQkJQmVkZm9yZCBUWCA3NjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNDQgICAoaGV4KQkJSldUcmFkaW5nIENvLiwgTHRkCiswMDFBNDQgICAgIChiYXNlIDE2KQkJSldUcmFkaW5nIENvLiwgTHRkCisJCQkJMTU5MCBLd2FueWFuZy1kb25nLCBEb25nYW4ta3UKKwkJCQlBaG55YW5nIEt5dW5na2kgLSBkbyA0MzEtMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTQ1ICAgKGhleCkJCUdOIE5ldGNvbSBhcworMDAxQTQ1ICAgICAoYmFzZSAxNikJCUdOIE5ldGNvbSBhcworCQkJCU1ldGFsYnVlbiA2NgorCQkJCVAuTy5Cb3ggMjAxCisJCQkJQmFsbGVydXAgU2tvdmx1bmRlIERLIC0gMjc1MAorCQkJCURFTk1BUksKKworMDAtMUEtNDYgICAoaGV4KQkJRGlnaXRhbCBNdWx0aW1lZGlhIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMUE0NiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIE11bHRpbWVkaWEgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCURvb3JpbSBCbGRnLCAzcmQgRmwsIDE2NC0yMSBQb2ktRG9uZywKKwkJCQlTZW91bCBLYW5nbmFtLUd1IDEzNS05NjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtNDcgICAoaGV4KQkJQWdhbWkgU3lzdGVtcywgSW5jLgorMDAxQTQ3ICAgICAoYmFzZSAxNikJCUFnYW1pIFN5c3RlbXMsIEluYy4KKwkJCQkxMjY5IElubnNicnVjayBEcml2ZQorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS00OCAgIChoZXgpCQlUYWthY29tIENvcnBvcmF0aW9uCiswMDFBNDggICAgIChiYXNlIDE2KQkJVGFrYWNvbSBDb3Jwb3JhdGlvbgorCQkJCTMwNC03MDkgQXphLU5pc2hpeWFubWEKKwkJCQlPcm9zaGktY2hvCisJCQkJVG9raS1zaGkgR2lmdS1rZW4gNTA5LTUyMDIKKwkJCQlKQVBBTgorCiswMC0xQS00OSAgIChoZXgpCQlNaWNybyBWaXNpb24gQ28uLExURAorMDAxQTQ5ICAgICAoYmFzZSAxNikJCU1pY3JvIFZpc2lvbiBDby4sTFRECisJCQkJMS05LTE1CisJCQkJS2FuZG91amkgTWluYW1pCisJCQkJTmlpZ2F0YS1jaXR5IE5paWdhdGEta2VuIDk1MC0wOTg2CisJCQkJSkFQQU4KKworMDAtMUEtNEEgICAoaGV4KQkJUXVtcmFuZXQgSW5jLgorMDAxQTRBICAgICAoYmFzZSAxNikJCVF1bXJhbmV0IEluYy4KKwkJCQk1MzAgTGFrZXNpZGUgRHJpdmUKKwkJCQlTdWl0ZSAyMjAKKwkJCQlTdW5ueXZhbGUgQ2FsaWZvcm5pYSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNEIgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzAwMUE0QiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJTVMwNjAzMDgKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS00QyAgIChoZXgpCQlDcm9zc2JvdyBUZWNobm9sb2d5LCBJbmMKKzAwMUE0QyAgICAgKGJhc2UgMTYpCQlDcm9zc2JvdyBUZWNobm9sb2d5LCBJbmMKKwkJCQk0MTQ1IE4uIEZpcnN0IFN0cmVldAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS00RCAgIChoZXgpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorMDAxQTREICAgICAoYmFzZSAxNikJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCisJCQkJCisJCQkJUGluLUplbiBUYW95dWFuIDMyNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNEUgICAoaGV4KQkJTlRJIEFHIC8gTGluTW90CiswMDFBNEUgICAgIChiYXNlIDE2KQkJTlRJIEFHIC8gTGluTW90CisJCQkJSGFlcmRsaXN0cmFzc2UgMTUKKwkJCQlTcHJlaXRlbmJhY2ggQUcgODk1NworCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFBLTRGICAgKGhleCkJCUFWTSBHbWJICiswMDFBNEYgICAgIChiYXNlIDE2KQkJQVZNIEdtYkgKKwkJCQlBbHQtTW9hYml0IDk1CisJCQkJQmVybGluICAxMDU1OQorCQkJCUdFUk1BTlkKKworMDAtMUEtNTAgICAoaGV4KQkJUGhlZU5ldCBUZWNobm9sb2d5IENvcnAuCiswMDFBNTAgICAgIChiYXNlIDE2KQkJUGhlZU5ldCBUZWNobm9sb2d5IENvcnAuCisJCQkJUm0uIDMsIDIwRiwgTm8uIDc5LCBTZWMuIDEgSHNpbiBUYWkgV3UgUmQuCisJCQkJSHNpLUNoaWggVGFpcGVpIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNTEgICAoaGV4KQkJQWxmcmVkIE1hbm4gRm91bmRhdGlvbgorMDAxQTUxICAgICAoYmFzZSAxNikJCUFsZnJlZCBNYW5uIEZvdW5kYXRpb24KKwkJCQlQLk8uIEJveCA5MDUKKwkJCQlTYW50YSBDbGFyaXRhIENBIDkxMzgwLTkwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTUyICAgKGhleCkJCU1lc2hsaW54IFdpcmVsZXNzIEluYy4KKzAwMUE1MiAgICAgKGJhc2UgMTYpCQlNZXNobGlueCBXaXJlbGVzcyBJbmMuCisJCQkJMTQxMCBHIEF2ZW51ZSwgU3VpdGUgVAorCQkJCVBsYW5vIFRleGFzIDc1MDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS01MyAgIChoZXgpCQlaeWxheWEKKzAwMUE1MyAgICAgKGJhc2UgMTYpCQlaeWxheWEKKwkJCQk0NDQgTi4gRnJlZGVyaWNrIEF2ZS4KKwkJCQlTdWl0ZSAzMTgKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTU0ICAgKGhleCkJCUhpcCBTaGluZyBFbGVjdHJvbmljcyBMdGQuCiswMDFBNTQgICAgIChiYXNlIDE2KQkJSGlwIFNoaW5nIEVsZWN0cm9uaWNzIEx0ZC4KKwkJCQlVbml0IDEvMi8zLCAyMC9GLCBOZXcgVHJlYXN1cmUgQ2VudGVyCisJCQkJMTAgTmcgRm9uZyBTdHJlZXQsIFNhbiBQbyBLb25nLCBLb3dsb29uCisJCQkJSE9ORyBLT05HCisKKzAwLTFBLTU1ICAgKGhleCkJCUFDQS1EaWdpdGFsIENvcnBvcmF0aW9uCiswMDFBNTUgICAgIChiYXNlIDE2KQkJQUNBLURpZ2l0YWwgQ29ycG9yYXRpb24KKwkJCQkxNyBGLCBOby4gODY2LTcsIENodW5nIENoZW5nIFJkLiwKKwkJCQlDaHVuZyBIbyBDaXR5IFRhaXBlaSBDb3VudHkgMjM1ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTU2ICAgKGhleCkJCVZpZXdUZWwgQ28sLiBMdGQuCiswMDFBNTYgICAgIChiYXNlIDE2KQkJVmlld1RlbCBDbywuIEx0ZC4KKwkJCQkjQi01MDIsQnVuZGFuZyBUZWNobm8gUGFyayAxNDgKKwkJCQlZYVRhcC1Eb25nCisJCQkJQnVuRGFuZy1LdSwgU2VvbmdOYW0tU2kgR3llb25nR2ktRG8gNDYzLTc2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS01NyAgIChoZXgpCQlNYXRyaXggRGVzaWduIEdyb3VwLCBMTEMKKzAwMUE1NyAgICAgKGJhc2UgMTYpCQlNYXRyaXggRGVzaWduIEdyb3VwLCBMTEMKKwkJCQk1NzQxIFByb3NwZWN0IERyLgorCQkJCU5ld2J1cmdoIElOIDQ3NjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS01OCAgIChoZXgpCQlDQ1YgRGV1dHNjaGxhbmQgR21iSCAtIENlbGVjdHJvbmljIGVIZWFsdGggRGl2LgorMDAxQTU4ICAgICAoYmFzZSAxNikJCUNDViBEZXV0c2NobGFuZCBHbWJIIC0gQ2VsZWN0cm9uaWMgZUhlYWx0aCBEaXYuCisJCQkJTm9yZGxpY2h0c3RyYXNzZSA2MworCQkJCUJlcmxpbiAgRC0xMzQwNQorCQkJCUdFUk1BTlkKKworMDAtMUEtNTkgICAoaGV4KQkJSXJjb25hCiswMDFBNTkgICAgIChiYXNlIDE2KQkJSXJjb25hCisJCQkJVW5pdCA0Qi0xLCBDb3Jwb3JhdGUgUGFyaworCQkJCUJsYW5jaGFyZHN0b3duIER1YmxpbiAxNQorCQkJCUlSRUxBTkQKKworMDAtMUEtNUEgICAoaGV4KQkJS29yZWEgRWxlY3RyaWMgUG93ZXIgRGF0YSBOZXR3b3JrICAoS0ROKSBDby4sIEx0ZAorMDAxQTVBICAgICAoYmFzZSAxNikJCUtvcmVhIEVsZWN0cmljIFBvd2VyIERhdGEgTmV0d29yayAgKEtETikgQ28uLCBMdGQKKwkJCQk2NjUgTkFFU09OLURPTkcsCisJCQkJR1lFT05HR0ktRE8gVUlXQU5HLVNJLCBOQUVTT04tRE9ORyA0MzctMDgyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTVCICAgKGhleCkJCU5ldENhcmUgU2VydmljZSBDby4sIEx0ZC4KKzAwMUE1QiAgICAgKGJhc2UgMTYpCQlOZXRDYXJlIFNlcnZpY2UgQ28uLCBMdGQuCisJCQkJNS0xMy0xNiBTaGltaXp1LCBBc2FoaS1rdQorCQkJCU9zYWthICA1MzUtMDAyMQorCQkJCUpBUEFOCisKKzAwLTFBLTVDICAgKGhleCkJCUV1Y2huZXIgR21iSCtDby4gS0cKKzAwMUE1QyAgICAgKGJhc2UgMTYpCQlFdWNobmVyIEdtYkgrQ28uIEtHCisJCQkJS29obGhhbW1lcnN0ci4gMTYKKwkJCQlMZWluZmVsZGVuLUVjaHRlcmRpbmdlbiBCVyA3MDc3MQorCQkJCUdFUk1BTlkKKworMDAtMUEtNUQgICAoaGV4KQkJTW9iaW5ub3ZhIENvcnAuCiswMDFBNUQgICAgIChiYXNlIDE2KQkJTW9iaW5ub3ZhIENvcnAuCisJCQkJMTFGLCA4NDUsIENIVU5HIFNIQU4gUkQKKwkJCQlUQU9ZVUFOICAzMzA1OQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNUUgICAoaGV4KQkJVGhpbmNvbSBUZWNobm9sb2d5IENvLixMdGQKKzAwMUE1RSAgICAgKGJhc2UgMTYpCQlUaGluY29tIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTE3Ri0zLCBOby4zOTgsIEh1YW5iZWkgUmQuLAorCQkJCVpob25nbGkgQ2l0eSBUYW95dWFuIENvbnRyeSAzMjAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTVGICAgKGhleCkJCUtpdFdvcmtzLmZpIEx0ZC4KKzAwMUE1RiAgICAgKGJhc2UgMTYpCQlLaXRXb3Jrcy5maSBMdGQuCisJCQkJU25vd3BvbGlzCisJCQkJVnVva2F0dGkgS2FpbnV1IDg4NjEwCisJCQkJRklOTEFORAorCiswMC0xQS02MCAgIChoZXgpCQlXYXZlIEVsZWN0cm9uaWNzIENvLixMdGQuCiswMDFBNjAgICAgIChiYXNlIDE2KQkJV2F2ZSBFbGVjdHJvbmljcyBDby4sTHRkLgorCQkJCTN0aCBGbC4sRGFlU2FuIFBsYXphIEIvRCxHdXVuLURvbmcsIDEyLTEsR3dvbnNlb24tR3UKKwkJCQlTdXdvbi1zaSBLeWVvbmdnaS1EbyA0NDEtODE0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTYxICAgKGhleCkJCVBhY1N0YXIgQ29ycC4KKzAwMUE2MSAgICAgKGJhc2UgMTYpCQlQYWNTdGFyIENvcnAuCisJCQkJMTUwNTUgU1cgU2VxdW9pYSBQa3d5LCBTdWl0ZSAxMDAKKwkJCQlQb3J0bGFuZCBPUiA5NzAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNjIgICAoaGV4KQkJRGF0YSBSb2JvdGljcywgSW5jb3Jwb3JhdGVkCiswMDFBNjIgICAgIChiYXNlIDE2KQkJRGF0YSBSb2JvdGljcywgSW5jb3Jwb3JhdGVkCisJCQkJMTg4MSBMYW5kaW5ncyBEcgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTYzICAgKGhleCkJCUVsc3RlciBTb2x1dGlvbnMsIExMQywKKzAwMUE2MyAgICAgKGJhc2UgMTYpCQlFbHN0ZXIgU29sdXRpb25zLCBMTEMsCisJCQkJMjA4IFNvdXRoIFJvZ2VycyBMYW5lCisJCQkJUmFsZWlnaCBOQyAyNzYxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNjQgICAoaGV4KQkJSUJNIENvcnAKKzAwMUE2NCAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtNjUgICAoaGV4KQkJU2VsdXhpdAorMDAxQTY1ICAgICAoYmFzZSAxNikJCVNlbHV4aXQKKwkJCQlOeWhhdm5zZ2FkZSA5LCAyLnNhbAorCQkJCUFhbGJvcmcgTm9yZCBKeWxsYW5kIDkwMDAKKwkJCQlERU5NQVJLCisKKzAwLTFBLTY2ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxQTY2ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTY3ICAgKGhleCkJCUluZmluaXRlIFFMIFNkbiBCaGQKKzAwMUE2NyAgICAgKGJhc2UgMTYpCQlJbmZpbml0ZSBRTCBTZG4gQmhkCisJCQkJRy4wMiwgQmxvY2sgQSwgRGF0YXJhbiBIYW1vZGFsCisJCQkJTm8uNCwgSmFsYW4gMTMvNCwgU2VjdC4gMTMsCisJCQkJUGV0YWxpbmcgSmF5YSBTZWxhbmdvciBEYXJ1bCBFaHNhbiA0NjMwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFBLTY4ICAgKGhleCkJCVdlbHRlYyBFbnRlcnByaXNlIENvLiwgTHRkLgorMDAxQTY4ICAgICAoYmFzZSAxNikJCVdlbHRlYyBFbnRlcnByaXNlIENvLiwgTHRkLgorCQkJCTJGLCBOby4gMzUxIFl1bmcgSG8gUmQuCisJCQkJVGFpcGVpIEhzaWVuCisJCQkJQ2h1bmcgSG8gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNjkgICAoaGV4KQkJV3VoYW4gWWFuZ3R6ZSBPcHRpY2FsIFRlY2hub2xvZ3kgQ08uLEx0ZC4KKzAwMUE2OSAgICAgKGJhc2UgMTYpCQlXdWhhbiBZYW5ndHplIE9wdGljYWwgVGVjaG5vbG9neSBDTy4sTHRkLgorCQkJCTQjLEd1YW5zaGFuIDIgUm9hZAorCQkJCVd1aGFuIEh1YmVpIDQzMDA3MworCQkJCUNISU5BCisKKzAwLTFBLTZBICAgKGhleCkJCVRyYW56YXMsIEluYy4KKzAwMUE2QSAgICAgKGJhc2UgMTYpCQlUcmFuemFzLCBJbmMuCisJCQkJUXVlZW5zIHRvd2VyIEMxNworCQkJCU1pbmF0b21pcmFpIDItMy01IE5pc2hpLWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2Eta2VuIDIyMC02MjE3CisJCQkJSkFQQU4KKworMDAtMUEtNkIgICAoaGV4KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCiswMDFBNkIgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJMTQxLCBMQU5FIDM1MSxTZWMuMSwgVEFJUElORyBSRC4KKwkJCQlUU0FPVFVFTiwKKwkJCQlOQU5UT1UgIDU0MjYxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS02QyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFBNkMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS02RCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFBNkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS02RSAgIChoZXgpCQlJbXBybyBUZWNobm9sb2dpZXMKKzAwMUE2RSAgICAgKGJhc2UgMTYpCQlJbXBybyBUZWNobm9sb2dpZXMKKwkJCQk0N0IgR2lsbGl0cyBSZAorCQkJCVBpbmV0b3duIEt3YVp1bHUtTmF0YWwgMzYxMAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0xQS02RiAgIChoZXgpCQlNSS5URUwgcy5yLmwuCiswMDFBNkYgICAgIChiYXNlIDE2KQkJTUkuVEVMIHMuci5sLgorCQkJCVZJQSBHVUlETyBST1NTQSwgMjIKKwkJCQlDT1JOQVRFIEQnQUREQSBNSUxBTk8gMjAwNDAKKwkJCQlJVEFMWQorCiswMC0xQS03MCAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzAwMUE3MCAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTcxICAgKGhleCkJCURpb3N0ZWNoIENvLiwgTHRkLgorMDAxQTcxICAgICAoYmFzZSAxNikJCURpb3N0ZWNoIENvLiwgTHRkLgorCQkJCTE1MS0yMSwgQnVrLXJpLCBOYW1zYS1teWVvbiwKKwkJCQlDaGVvaW4tZ3UKKwkJCQlZb25naW4tY2l0eSBHeWVvbmdnaS1kbyA0NDkgODg0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTcyICAgKGhleCkJCU1vc2FydCBTZW1pY29uZHVjdG9yIENvcnAuCiswMDFBNzIgICAgIChiYXNlIDE2KQkJTW9zYXJ0IFNlbWljb25kdWN0b3IgQ29ycC4KKwkJCQkyM0YuLCBOby4zMywgU2VjLjEsCisJCQkJTWluIFNoZW5nIFJkLiwgUGFuY2hpYW8gQ2l0eQorCQkJCVRhaXBlaSAgMjIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS03MyAgIChoZXgpCQlHZW10ZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMUE3MyAgICAgKGJhc2UgMTYpCQlHZW10ZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gMSBKZW4gQWkgUm9hZCwgSHNpbmNodSBJbmR1c3RyaWFsIFBhcmssIEh1a291LAorCQkJCUhzaW5jaHUgIDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNzQgICAoaGV4KQkJUHJvY2FyZSBJbnRlcm5hdGlvbmFsIENvCiswMDFBNzQgICAgIChiYXNlIDE2KQkJUHJvY2FyZSBJbnRlcm5hdGlvbmFsIENvCisJCQkJNUYsIE5vLjg4LCBKaG91emloIFN0cmVldCwgTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUEtNzUgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKzAwMUE3NSAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNrw6VuZSAyMjE4OAorCQkJCVNXRURFTgorCiswMC0xQS03NiAgIChoZXgpCQlTRFQgaW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTFRELgorMDAxQTc2ICAgICAoYmFzZSAxNikJCVNEVCBpbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLixMVEQuCisJCQkJU2FtaWwgQi9CIDJGLCA1LTYzIEh5b2NoYW5nLWRvbmcKKwkJCQlZb25nc2FuLUt1LAorCQkJCVNlb3VsICAxNDAtODk2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLTc3ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxQTc3ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTYwMCBOLiBId3kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLTc4ICAgKGhleCkJCXVidG9zCiswMDFBNzggICAgIChiYXNlIDE2KQkJdWJ0b3MKKwkJCQlSbi4yMTMsIFdvb2xpbSBMaW9uwqHCr3MgVmFsbGV5IMKlwrEsICM2ODAKKwkJCQlzZW91bCBHYXNhbi1kb25nIDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtNzkgICAoaGV4KQkJVEVMRUNPTVVOSUNBVElPTiBURUNITk9MT0dJRVMgTFRELgorMDAxQTc5ICAgICAoYmFzZSAxNikJCVRFTEVDT01VTklDQVRJT04gVEVDSE5PTE9HSUVTIExURC4KKwkJCQk0RCBaSFVLT1ZBIEJMVi4KKwkJCQlPREVTU0EgIDY1MTIxCisJCQkJVUtSQUlORQorCiswMC0xQS03QSAgIChoZXgpCQlMaXNtb3JlIEluc3RydW1lbnRzIExpbWl0ZWQKKzAwMUE3QSAgICAgKGJhc2UgMTYpCQlMaXNtb3JlIEluc3RydW1lbnRzIExpbWl0ZWQKKwkJCQlVbml0IDIgVHJpc3RhciBDZW50cmUsIFN0YXIgUm9hZAorCQkJCVBhcnRyaWRnZSBHcmVlbgorCQkJCUhvcnNoYW0gV2VzdCBTdXNzZXggUkgxMyA4UkEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQS03QiAgIChoZXgpCQlUZWxlY28sIEluYy4KKzAwMUE3QiAgICAgKGJhc2UgMTYpCQlUZWxlY28sIEluYy4KKwkJCQk0MzAgV29vZHJ1ZmYgUmQuCisJCQkJU3VpdGUgMzAwCisJCQkJR3JlZW52aWxsZSBTQyAyOTYwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtN0MgICAoaGV4KQkJSGlyc2NobWFubiBNdWx0aW1lZGlhIEIuVi4KKzAwMUE3QyAgICAgKGJhc2UgMTYpCQlIaXJzY2htYW5uIE11bHRpbWVkaWEgQi5WLgorCQkJCVBhbXB1c2xhYW4gMTcwCisJCQkJV2Vlc3AgTm9vcmQtSG9sbGFuZCAxMzgyIEpTCisJCQkJTkVUSEVSTEFORFMKKworMDAtMUEtN0QgICAoaGV4KQkJY3liZXItYmx1ZShISylMdGQKKzAwMUE3RCAgICAgKGJhc2UgMTYpCQljeWJlci1ibHVlKEhLKUx0ZAorCQkJCVJvb20gMTQwOCBibG9jayBDIHN0YXJzIFBsYXphIEhvbmdMaVJvYWQsRnVUaWFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDUxODAyOAorCQkJCUNISU5BCisKKzAwLTFBLTdFICAgKGhleCkJCUxOIFNyaXRoYWkgQ29tbSBMdGQuCiswMDFBN0UgICAgIChiYXNlIDE2KQkJTE4gU3JpdGhhaSBDb21tIEx0ZC4KKwkJCQk3MS8xMiBNLjUsIEJhbmduYS1UcmFkIFJkLCBLTS41MiwgVGhha2FtCisJCQkJQmFuZ3Bha29uZyBDaGFjaG9lbmdzYW8gMjQxMzAKKwkJCQlUSEFJTEFORAorCiswMC0xQS03RiAgIChoZXgpCQlHQ0kgU2NpZW5jZSZUZWNobm9sb2d5IENvLixMdGQuCiswMDFBN0YgICAgIChiYXNlIDE2KQkJR0NJIFNjaWVuY2UmVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCU5vLjM4MSwgWGluZ2FuZ3pob25nIFJvYWQsCisJCQkJZ3Vhbmd6aG91IGd1YW5nZG9uZyA1MTAzMTAKKwkJCQlDSElOQQorCiswMC0xQS04MCAgIChoZXgpCQlTb255IENvcnBvcmF0aW9uCiswMDFBODAgICAgIChiYXNlIDE2KQkJU29ueSBDb3Jwb3JhdGlvbgorCQkJCUdvdGVueWFtYSBUZWMgNS0xLTIKKwkJCQlLaXRhc2hpbmFnYXdhCisJCQkJU2hpbmFnYXdhLWt1IFRva3lvIDE0MS0wMDAxCisJCQkJSkFQQU4KKworMDAtMUEtODEgICAoaGV4KQkJWmVsYXgKKzAwMUE4MSAgICAgKGJhc2UgMTYpCQlaZWxheAorCQkJCTJuZCBidWlkLiwgMUIsIFphdm9kc2theWEgc3QuLAorCQkJCU1vc2NvdyAgMTI0NjgxCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFBLTgyICAgKGhleCkJCVBST0JBIEJ1aWxkaW5nIEF1dG9tYXRpb24gQ28uLExURAorMDAxQTgyICAgICAoYmFzZSAxNikJCVBST0JBIEJ1aWxkaW5nIEF1dG9tYXRpb24gQ28uLExURAorCQkJCVBlbmdodWFuIEJ1aWxkaW5nIDUwMSwgU2hhbmdkaSBFYXN0IFJvYWQgIzEsIEhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMUEtODMgICAoaGV4KQkJUGVnYXN1cyBUZWNobm9sb2dpZXMgSW5jLgorMDAxQTgzICAgICAoYmFzZSAxNikJCVBlZ2FzdXMgVGVjaG5vbG9naWVzIEluYy4KKwkJCQkxMDggUGF3bm9vayBGYXJtIFJkLgorCQkJCUxlbm9pciBDaXR5IFROIDM3NzcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS04NCAgIChoZXgpCQlWIE9uZSBNdWx0aW1lZGlhIFB0ZSBMdGQKKzAwMUE4NCAgICAgKGJhc2UgMTYpCQlWIE9uZSBNdWx0aW1lZGlhIFB0ZSBMdGQKKwkJCQlCbGsgNTQsIEthbGxhbmcgQmFocnUKKwkJCQkjMDItMDQKKwkJCQkzMzkzMzYKKwkJCQlTSU5HQVBPUkUKKworMDAtMUEtODUgICAoaGV4KQkJTlYgTWljaGVsIFZhbiBkZSBXaWVsZQorMDAxQTg1ICAgICAoYmFzZSAxNikJCU5WIE1pY2hlbCBWYW4gZGUgV2llbGUKKwkJCQlNLiBWYW5kZXdpZWxlc3RyYWF0IDcKKwkJCQlNYXJrZSBXZXN0LVZsYWFuZGVyZW4gODUxMAorCQkJCUJFTEdJVU0KKworMDAtMUEtODYgICAoaGV4KQkJQWR2YW5jZWRJTyBTeXN0ZW1zIEluYworMDAxQTg2ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkSU8gU3lzdGVtcyBJbmMKKwkJCQk1OTUgSG93ZSBTdHJlZXQsIFN1aXRlIDUwMgorCQkJCVZhbmNvdXZlciBCQyBWNkMgMlQ1CisJCQkJQ0FOQURBCisKKzAwLTFBLTg3ICAgKGhleCkJCUNhbmhvbGQgSW50ZXJuYXRpb25hbCBMaW1pdGVkCiswMDFBODcgICAgIChiYXNlIDE2KQkJQ2FuaG9sZCBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKwkJCQlGbGF0IDQsIDEzL0YuLCBCbG9jayA0LCBUYWkgUGluZyBJbmR1c3RyaWFsIENlbnRyZQorCQkJCTUxQSBUaW5nIEtvayBSb2FkLCBUYWkgUG8sIE4uVC4sCisJCQkJMDA4NTIKKwkJCQlIT05HIEtPTkcKKworMDAtMUEtODggICAoaGV4KQkJVmVuZXJneSxDbyxMdGQKKzAwMUE4OCAgICAgKGJhc2UgMTYpCQlWZW5lcmd5LENvLEx0ZAorCQkJCVdlc3QgNnRoIEZsb29yLE0tOCBCdWlsZGluZyBNYXF1ZWxpbmcgWm9uZSwKKwkJCQlTaGVuemhlbiBIaWdoLVRlY2ggUGFyaywgTmFuc2hhbiBkaXN0cmljdCwKKwkJCQlzaGVuemhlbiBndWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworMDAtMUEtODkgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUE4OSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUEtOEEgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMUE4QSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaS1DaXR5IEd5ZW9uZy1CdWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS04QiAgIChoZXgpCQlDSFVOSUwgRUxFQ1RSSUMgSU5ELiwgQ08uCiswMDFBOEIgICAgIChiYXNlIDE2KQkJQ0hVTklMIEVMRUNUUklDIElORC4sIENPLgorCQkJCTMwOCxCeXVja1NhbiBEaWdpdGFsIFZhbGxleSwxMzItNyxHYW1qZW9uLURvbmcsU2FzYW5nLUd1CisJCQkJQnVzYW4gR3llb25nU2FuZ05hbURvIDYxNy04MDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtOEMgICAoaGV4KQkJQXN0YXJvIEFHCiswMDFBOEMgICAgIChiYXNlIDE2KQkJQXN0YXJvIEFHCisJCQkJQW1hbGllbmJhZHN0ci4gMzYKKwkJCQlCYXUgMzNhCisJCQkJS2FybHNydWhlIEJXIDc2MjI3CisJCQkJR0VSTUFOWQorCiswMC0xQS04RCAgIChoZXgpCQlBVkVDUyBCZXJnZW4gR21iSAorMDAxQThEICAgICAoYmFzZSAxNikJCUFWRUNTIEJlcmdlbiBHbWJICisJCQkJQmlsbHJvdGhzdHIuIDExIGEKKwkJCQlCZXJnZW4gYXVmIFLDvGdlbiBNL1YgMTg1MjgKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLThFICAgKGhleCkJCTNXYXkgTmV0d29ya3MgTHRkCiswMDFBOEUgICAgIChiYXNlIDE2KQkJM1dheSBOZXR3b3JrcyBMdGQKKwkJCQk3MjAwIENhbWJyaWRnZSBSZXNlYXJjaCBQYXJrCisJCQkJV2F0ZXJiZWFjaAorCQkJCUNhbWJyaWRnZSBDYW1icmlkZ2VzaGlyZSBDQjUgOVRMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUEtOEYgICAoaGV4KQkJTm9ydGVsCiswMDFBOEYgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTFBLTkwICAgKGhleCkJCVRyw7NwaWNvIFNpc3RlbWFzIGUgVGVsZWNvbXVuaWNhw6fDtWVzIGRhIEFtYXrDtG5pYSBMVERBLgorMDAxQTkwICAgICAoYmFzZSAxNikJCVRyw7NwaWNvIFNpc3RlbWFzIGUgVGVsZWNvbXVuaWNhw6fDtWVzIGRhIEFtYXrDtG5pYSBMVERBLgorCQkJCVJvZC4gIENhbXBpbmFzLU1vZ2ktTWlyaW0gKFNQIDM0MCkgIEttIDExOCw1CisJCQkJUG9saXMgZGUgVGVjbm9sb2dpYSAoQ1BxRCktUHLDqWRpbyA5QQorCQkJCUNhbXBpbmFzIFPDo28gUGF1bG8gMTMuMDg2LTkwMgorCQkJCUJSQVpJTAorCiswMC0xQS05MSAgIChoZXgpCQlGdXNpb25EeW5hbWljIEx0ZC4KKzAwMUE5MSAgICAgKGJhc2UgMTYpCQlGdXNpb25EeW5hbWljIEx0ZC4KKwkJCQkxIEIuUy5SLiB0b3dlcnMsIDQtdGggZmxvb3IKKwkJCQkyIEJlbiBHdXJpb24gc3RyZWV0CisJCQkJUmFtYXQgR2FuICA1MjU3MworCQkJCUlTUkFFTAorCiswMC0xQS05MiAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMUE5MiAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91CisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTkzICAgKGhleCkJCUVSQ08gTGV1Y2h0ZW4gR21iSAorMDAxQTkzICAgICAoYmFzZSAxNikJCUVSQ08gTGV1Y2h0ZW4gR21iSAorCQkJCUJyb2NraGF1c2VyIFdlZyA4MC04MgorCQkJCUzDvGRlbnNjaGVpZCBOUlcgRC01ODUwNworCQkJCUdFUk1BTlkKKworMDAtMUEtOTQgICAoaGV4KQkJVm90cm9uaWMgR21iSAorMDAxQTk0ICAgICAoYmFzZSAxNikJCVZvdHJvbmljIEdtYkgKKwkJCQlTYWFyYnJ1ZWNrZXIgU3RyLiA4CisJCQkJU3QuIEluZ2JlcnQgU2FhcmxhbmQgNjYzODYKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLTk1ICAgKGhleCkJCUhpc2Vuc2UgTW9iaWxlIENvbW11bmljYXRpb25zIFRlY2hub2xpZ3kgQ28uLEx0ZC4KKzAwMUE5NSAgICAgKGJhc2UgMTYpCQlIaXNlbnNlIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBUZWNobm9saWd5IENvLixMdGQuCisJCQkJMTEsSmlhbmdYaSBSb2FkLAorCQkJCVFpbmdEYW8gU2hhbkRvbmcgMjY2MDcxCisJCQkJQ0hJTkEKKworMDAtMUEtOTYgICAoaGV4KQkJRUNMRVIgUy5BLgorMDAxQTk2ICAgICAoYmFzZSAxNikJCUVDTEVSIFMuQS4KKwkJCQlNb3RvcnMgMTY2LTE2OAorCQkJCUJhcmNlbG9uYSAgMDgwMzgKKwkJCQlTUEFJTgorCiswMC0xQS05NyAgIChoZXgpCQlmaXRpdmlzaW9uIHRlY2hub2xvZ3kgSW5jLgorMDAxQTk3ICAgICAoYmFzZSAxNikJCWZpdGl2aXNpb24gdGVjaG5vbG9neSBJbmMuCisJCQkJOEYsIE5vLiAzNTYsIFNlYy4gMSwgTmVpaHUgUmQKKwkJCQlOZWlodSBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS05OCAgIChoZXgpCQlBc290ZWwgQ29tbXVuaWNhdGlvbiBMaW1pdGVkIFRhaXdhbiBCcmFuY2gKKzAwMUE5OCAgICAgKGJhc2UgMTYpCQlBc290ZWwgQ29tbXVuaWNhdGlvbiBMaW1pdGVkIFRhaXdhbiBCcmFuY2gKKwkJCQkzRzE3LCBObzUsIEhzaW4gWWkgUm9hZCwgU2VjLiA1CisJCQkJVGFpcGVpICAxMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLTk5ICAgKGhleCkJCVNtYXJ0eSAoSFopIEluZm9ybWF0aW9uIEVsZWN0cm9uaWNzIENvLiwgTHRkCiswMDFBOTkgICAgIChiYXNlIDE2KQkJU21hcnR5IChIWikgSW5mb3JtYXRpb24gRWxlY3Ryb25pY3MgQ28uLCBMdGQKKwkJCQlZb25naHVhIEluZHVzdHJpYWwgRGlzdHJpY3QsSHVpc2hlbiBSb2FkLFpoZW5sb25nIFRvd24KKwkJCQlIdWlaaG91IEd1YW5nRG9uZyA1MTYyMjcKKwkJCQlDSElOQQorCiswMC0xQS05QSAgIChoZXgpCQlTa3l3b3J0aCBEaWdpdGFsIHRlY2hub2xvZ3koc2hlbnpoZW4pY28ubHRkLgorMDAxQTlBICAgICAoYmFzZSAxNikJCVNreXdvcnRoIERpZ2l0YWwgdGVjaG5vbG9neShzaGVuemhlbiljby5sdGQuCisJCQkJMTNGLEJsb2NrIEEsU2t5d29ydGggQnVpbGRpbmcsR2FveGluIEFWRS4xLlMsCisJCQkJTmFuc2hhbiBEaXN0cmljdCwKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMUEtOUIgICAoaGV4KQkJQURFQyAmIFBhcnRlciBBRworMDAxQTlCICAgICAoYmFzZSAxNikJCUFERUMgJiBQYXJ0ZXIgQUcKKwkJCQlTdGFsZGVuYmFjaHN0cmFzc2UgMzAKKwkJCQlQZmFlZmZpa29uIFpIIDg4MDgKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xQS05QyAgIChoZXgpCQlSaWdodEhhbmQgVGVjaG5vbG9naWVzLCBJbmMuCiswMDFBOUMgICAgIChiYXNlIDE2KQkJUmlnaHRIYW5kIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTY1NDUgTiBPbG1zdGVkIEF2ZW51ZQorCQkJCUNoaWNhZ28gSUwgNjA2MzEtMTQxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtOUQgICAoaGV4KQkJU2tpcHBlciBXaXJlbGVzcywgSW5jLgorMDAxQTlEICAgICAoYmFzZSAxNikJCVNraXBwZXIgV2lyZWxlc3MsIEluYy4KKwkJCQlTaGluanVrdS1TdW1pdG9tbyBCbGRnLiAyMEYKKwkJCQkyLTYtMSBOaXNoaS1TaGluanVrdQorCQkJCVNoaW5qdWt1IFRva3lvIDE2My0wMjIwCisJCQkJSkFQQU4KKworMDAtMUEtOUUgICAoaGV4KQkJSUNPTiBEaWdpdGFsIEludGVybmF0aW9uYWwgTGltaXRlZAorMDAxQTlFICAgICAoYmFzZSAxNikJCUlDT04gRGlnaXRhbCBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKwkJCQlTdWl0ZTIyMDksIDIyL0YuLCBTa3lMaW5lIFRvd2VyLAorCQkJCTM5IFdhbmcgS3dvbmcgUm9hZCwgS293bG9vbiBCYXkKKwkJCQlDSElOQQorCiswMC0xQS05RiAgIChoZXgpCQlBLUxpbmsgRXVyb3BlIEx0ZAorMDAxQTlGICAgICAoYmFzZSAxNikJCUEtTGluayBFdXJvcGUgTHRkCisJCQkJUC5PLkJveCAzCisJCQkJRXNwb28gIEZJLTAyOTQxCisJCQkJRklOTEFORAorCiswMC0xQS1BMCAgIChoZXgpCQlEZWxsIEluYworMDAxQUEwICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCAgTVMgUlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQTEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQUExICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQTIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQUEyICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQTMgICAoaGV4KQkJREVMT1JNRQorMDAxQUEzICAgICAoYmFzZSAxNikJCURFTE9STUUKKwkJCQkyIERFTE9STUUgRFJJVkUKKwkJCQlZQVJNT1VUSCBNQUlORSAwNDA5NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQTQgICAoaGV4KQkJRnV0dXJlIFVuaXZlcnNpdHktSGFrb2RhdGUKKzAwMUFBNCAgICAgKGJhc2UgMTYpCQlGdXR1cmUgVW5pdmVyc2l0eS1IYWtvZGF0ZQorCQkJCTExNi0yIEthbWVkYW5ha2Fuby1jaG8KKwkJCQlIYWtvZGF0ZSBIb2trYWlkbyAwNDEtODY1NQorCQkJCUpBUEFOCisKKzAwLTFBLUE1ICAgKGhleCkJCUJSTiBQaG9lbml4CiswMDFBQTUgICAgIChiYXNlIDE2KQkJQlJOIFBob2VuaXgKKwkJCQkyNTAwIEF1Z3VzdGluZSBEcml2ZSwgU3VpdGUgMjAwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUE2ICAgKGhleCkJCVRlbGVmdW5rZW4gUmFkaW8gQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIEdtYkggJkNPLktHCiswMDFBQTYgICAgIChiYXNlIDE2KQkJVGVsZWZ1bmtlbiBSYWRpbyBDb21tdW5pY2F0aW9uIFN5c3RlbXMgR21iSCAmQ08uS0cKKwkJCQlFYmVyaGFyZC1GaW5ja2gtU3RyYXNzZSA1NQorCQkJCVVsbSBCYWRlbi1Xw7xydHRlbWJlcmcgODkwNzUKKwkJCQlHRVJNQU5ZCisKKzAwLTFBLUE3ICAgKGhleCkJCVRvcmlhbiBXaXJlbGVzcworMDAxQUE3ICAgICAoYmFzZSAxNikJCVRvcmlhbiBXaXJlbGVzcworCQkJCTIwNCBKb2huc3RvbiBTdHJlZXQKKwkJCQlDb2xsaW5nd29vZCBWaWN0b3JpYSAzMDY2CisJCQkJQVVTVFJBTElBCisKKzAwLTFBLUE4ICAgKGhleCkJCU1hbWl5YSBEaWdpdGFsIEltYWdpbmcgQ28uLCBMdGQuCiswMDFBQTggICAgIChiYXNlIDE2KQkJTWFtaXlhIERpZ2l0YWwgSW1hZ2luZyBDby4sIEx0ZC4KKwkJCQkyLTE0LTIyIFVlbm8KKwkJCQlUYWl0by1rdSBUb2t5byAxMTAtMDAwNQorCQkJCUpBUEFOCisKKzAwLTFBLUE5ICAgKGhleCkJCUZVSklBTiBTVEFSLU5FVCBDT01NVU5JQ0FUSU9OIENPLixMVEQKKzAwMUFBOSAgICAgKGJhc2UgMTYpCQlGVUpJQU4gU1RBUi1ORVQgQ09NTVVOSUNBVElPTiBDTy4sTFRECisJCQkJMTktMjIjIEJ1aWxkaW5nLCBTdGFyLW5ldCBTY2llbmNlIFBsYXphLCBKdXl1YW56aG91LAorCQkJCTYxOCBKaW5zaGFuIFJvYWQsCisJCQkJRlVaSE9VIEZVSklBTiAzNTAwMDIKKwkJCQlDSElOQQorCiswMC0xQS1BQSAgIChoZXgpCQlBbmFsb2dpYyBDb3JwLgorMDAxQUFBICAgICAoYmFzZSAxNikJCUFuYWxvZ2ljIENvcnAuCisJCQkJOCBDZW50ZW5uaWFsIERyaXZlCisJCQkJUGVhYm9keSBNQSAwMTk2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQUIgICAoaGV4KQkJZVdpbmdzIHMuci5sLgorMDAxQUFCICAgICAoYmFzZSAxNikJCWVXaW5ncyBzLnIubC4KKwkJCQl2aWEgUy4gUXVhc2ltb2RvIDQ2CisJCQkJQ2FzdGVsIE1hZ2dpb3JlIEJvbG9nbmEgNDAwMTMKKwkJCQlJVEFMWQorCiswMC0xQS1BQyAgIChoZXgpCQlDb3JlbGF0dXMgQUIKKzAwMUFBQyAgICAgKGJhc2UgMTYpCQlDb3JlbGF0dXMgQUIKKwkJCQlUZWduZXJnYXRhbiAzNworCQkJCVN0b2NraG9sbSAgMTExNjEKKwkJCQlTV0VERU4KKworMDAtMUEtQUQgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUFBRCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUFFICAgKGhleCkJCVNhdmFudCBTeXN0ZW1zIExMQworMDAxQUFFICAgICAoYmFzZSAxNikJCVNhdmFudCBTeXN0ZW1zIExMQworCQkJCTc3MEEgTWFpbiBTdAorCQkJCU9zdGVydmlsbGUgTWFzc2FjaHVzZXR0cyAwMjY1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQUYgICAoaGV4KQkJQkxVU0VOUyBURUNITk9MT0dZCiswMDFBQUYgICAgIChiYXNlIDE2KQkJQkxVU0VOUyBURUNITk9MT0dZCisJCQkJRURJRklDSU8gQ05MLC0gQVYuCisJCQkJRkVSTkFORE8gQ0FTQVMgTk9WT0EgLE7DgsK6IDM3QiAyw4LCugorCQkJCTE1NzA3IC0gU0FOVElBR08gREUgQ09NUE9TVEVMQSBBIENPUlXDg+KAmEEgCisJCQkJU1BBSU4KKworMDAtMUEtQjAgICAoaGV4KQkJU2lnbmFsIE5ldHdvcmtzIFB2dC4gTHRkLiwKKzAwMUFCMCAgICAgKGJhc2UgMTYpCQlTaWduYWwgTmV0d29ya3MgUHZ0LiBMdGQuLAorCQkJCU5vLjEyLCBLYWxwYXRhcnUgQXBhcnRtZW50cywKKwkJCQlSYWNlIENvdXJzZSBDcm9zcyBSb2FkLCBNYWRoYXZuYWdhciwKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MDAwMQorCQkJCUlORElBCisKKzAwLTFBLUIxICAgKGhleCkJCUFzaWEgUGFjaWZpYyBTYXRlbGxpdGUgSW5kdXN0cmllcyBDby4sIEx0ZC4KKzAwMUFCMSAgICAgKGJhc2UgMTYpCQlBc2lhIFBhY2lmaWMgU2F0ZWxsaXRlIEluZHVzdHJpZXMgQ28uLCBMdGQuCisJCQkJOXRoIEZMLCBJVCBDYXN0bGUgMi1Eb25nLCAjNTUwLTEsIEdhc2FuLURvbmcsIEdldW1DaGVvbi1HdSwKKwkJCQlTZW91bCAgMTUzLTc2OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS1CMiAgIChoZXgpCQlDeWJlciBTb2x1dGlvbnMgSW5jLgorMDAxQUIyICAgICAoYmFzZSAxNikJCUN5YmVyIFNvbHV0aW9ucyBJbmMuCisJCQkJNi02LTMsIE1pbmFtaSBZb3NoaW5hcmkKKwkJCQlBb2JhLWt1CisJCQkJU2VuZGFpIE1peWFnaS1rZW4gOTg5LTMyMDQKKwkJCQlKQVBBTgorCiswMC0xQS1CMyAgIChoZXgpCQlWSVNJT05JVEUgSU5DLgorMDAxQUIzICAgICAoYmFzZSAxNikJCVZJU0lPTklURSBJTkMuCisJCQkJIzcwNyBEYWVyeXVuZyBUZWNobm90b3duLTIgNTY5LTIxCisJCQkJR2FzYW4tRG9uZyBHZXVtY2hlb24tR3UKKwkJCQlTZW91bCAgMTUzLTc3MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQS1CNCAgIChoZXgpCQlGRkVJIEx0ZC4KKzAwMUFCNCAgICAgKGJhc2UgMTYpCQlGRkVJIEx0ZC4KKwkJCQlCbG9jayAyLCAgRWF0b24gQ291cnQKKwkJCQlFYXRvbiBSb2FkCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRmb3Jkc2hpcmUgSFAyIDdEUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFBLUI1ICAgKGhleCkJCUhvbWUgTmV0d29yayBTeXN0ZW0KKzAwMUFCNSAgICAgKGJhc2UgMTYpCQlIb21lIE5ldHdvcmsgU3lzdGVtCisJCQkJMTA3LCBIeXVuZGFpIEktVmFsbHkKKwkJCQlTYW5nZGFld29uIDEoaWwpLWRvbmcsIEp1bmd3b24tZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjItNzE0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLUI2ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDFBQjYgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMDggV2lsZCBCYXNpbiBTdGUgMzUwCisJCQkJQXVzdGluIFRYIDc4NzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1CNyAgIChoZXgpCQlFdGhvcyBOZXR3b3JrcyBMVEQuCiswMDFBQjcgICAgIChiYXNlIDE2KQkJRXRob3MgTmV0d29ya3MgTFRELgorCQkJCTIgTWFza2l0IFN0LgorCQkJCUJ1aWxkaW5nIEQsIFBPQm94IDQwOTAKKwkJCQlIZXJ6bGlhICA0Njc2NgorCQkJCUlTUkFFTAorCiswMC0xQS1COCAgIChoZXgpCQlBbnNlcmkgQ29ycG9yYXRpb24KKzAwMUFCOCAgICAgKGJhc2UgMTYpCQlBbnNlcmkgQ29ycG9yYXRpb24KKwkJCQkzNUUgSW5kdXN0cmlhbCBXYXkKKwkJCQlTdWl0ZSAxMDEKKwkJCQlSb2NoZXN0ZXIgTkggMDM4NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUI5ICAgKGhleCkJCVBNQworMDAxQUI5ICAgICAoYmFzZSAxNikJCVBNQworCQkJCTU2LCBhdmVudWUgUmFzcGFpbAorCQkJCVNhaW50IE1hdXIgdmFsIGRlIG1hcm5lIDk0MTAwCisJCQkJRlJBTkNFCisKKzAwLTFBLUJBICAgKGhleCkJCUNhdG9uIE92ZXJzZWFzIExpbWl0ZWQKKzAwMUFCQSAgICAgKGJhc2UgMTYpCQlDYXRvbiBPdmVyc2VhcyBMaW1pdGVkCisJCQkJUm9vbSAxMDIsIE5vLiAxMDEsIExhbmUgOTEKKwkJCQlFLVNoYW4gUm9hZCwgUHVkb25nIERpc3RyaWN0CisJCQkJU2hhbmdoYWkgIDIwMDEyNworCQkJCUNISU5BCisKKzAwLTFBLUJCICAgKGhleCkJCUZvbnRhbCBUZWNobm9sb2d5IEluY29ycG9yYXRpb24KKzAwMUFCQiAgICAgKGJhc2UgMTYpCQlGb250YWwgVGVjaG5vbG9neSBJbmNvcnBvcmF0aW9uCisJCQkJUm0uNTIyLCBCbGRnLiA1MiwgMTk1LCBTZWMuIDQsIENodW5nSHNpbmcgUmQuLCBDaHV0dW5nCisJCQkJSHNpbmNodSAgMzEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS1CQyAgIChoZXgpCQlVNEVBIFRlY2hub2xvZ2llcyBMdGQKKzAwMUFCQyAgICAgKGJhc2UgMTYpCQlVNEVBIFRlY2hub2xvZ2llcyBMdGQKKwkJCQlDaXR5IFBvaW50CisJCQkJVGVtcGxlIEdhdGUKKwkJCQlCcmlzdG9sICBCUzEgNlBMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUEtQkQgICAoaGV4KQkJSW1wYXRpY2EgSW5jLgorMDAxQUJEICAgICAoYmFzZSAxNikJCUltcGF0aWNhIEluYy4KKwkJCQkyMDUtMTcyNSBTdC4gTGF1cmVudCBCbHZkLgorCQkJCU90dGF3YSBPTiBLMUcgM1Y0CisJCQkJQ0FOQURBCisKKzAwLTFBLUJFICAgKGhleCkJCUNPTVBVVEVSIEhJLVRFQ0ggSU5DLgorMDAxQUJFICAgICAoYmFzZSAxNikJCUNPTVBVVEVSIEhJLVRFQ0ggSU5DLgorCQkJCUhpZ2FzaGlVZW5vMy0xOC03CisJCQkJVGFpdG9rdSBUb2t5byAxMTAtMDAxNQorCQkJCUpBUEFOCisKKzAwLTFBLUJGICAgKGhleCkJCVRSVU1QRiBMYXNlciBNYXJraW5nIFN5c3RlbXMgQUcKKzAwMUFCRiAgICAgKGJhc2UgMTYpCQlUUlVNUEYgTGFzZXIgTWFya2luZyBTeXN0ZW1zIEFHCisJCQkJQXVzc2VyZmVsZAorCQkJCUdydWVzY2ggR1IgNzIxNAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFBLUMwICAgKGhleCkJCUpPWUJJRU4gVEVDSE5PTE9HSUVTIENPLiwgTFRELgorMDAxQUMwICAgICAoYmFzZSAxNikJCUpPWUJJRU4gVEVDSE5PTE9HSUVTIENPLiwgTFRELgorCQkJCTE4Ri0xLCBOTy43MDAsIFpIT05HWkhFTkcgUkQuLAorCQkJCVpIT05HSEUgQ0lUWSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS1DMSAgIChoZXgpCQkzQ29tIEx0ZAorMDAxQUMxICAgICAoYmFzZSAxNikJCTNDb20gTHRkCisJCQkJUGVvcGxlYnVpbGRpbmcgMgorCQkJCVBlb3BsZWJ1aWxkaW5nIEVzdGF0ZSwgTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQS1DMiAgIChoZXgpCQlZRUMgQ28uLEx0ZC4KKzAwMUFDMiAgICAgKGJhc2UgMTYpCQlZRUMgQ28uLEx0ZC4KKwkJCQk1NDMtOSBUc3VydW1hCisJCQkJTWFjaGlkYSBUb2t5byAxOTQtMDAwNAorCQkJCUpBUEFOCisKKzAwLTFBLUMzICAgKGhleCkJCVNjaWVudGlmaWMtQXRsYW50YSwgSW5jCiswMDFBQzMgICAgIChiYXNlIDE2KQkJU2NpZW50aWZpYy1BdGxhbnRhLCBJbmMKKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJQVRMIDEuMy40NzMKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1DNCAgIChoZXgpCQkyV2lyZSwgSW5jCiswMDFBQzQgICAgIChiYXNlIDE2KQkJMldpcmUsIEluYworCQkJCTE3MDQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUM1ICAgKGhleCkJCUJyZWFraW5nUG9pbnQgU3lzdGVtcywgSW5jLgorMDAxQUM1ICAgICAoYmFzZSAxNikJCUJyZWFraW5nUG9pbnQgU3lzdGVtcywgSW5jLgorCQkJCTM5MDAgTi4gQ2FwaXRhbCBvZiBUZXhhcyBId3kKKwkJCQlTdWl0ZSAxODAKKwkJCQlBdXN0aW4gVFggNzg3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUM2ICAgKGhleCkJCU1pY3JvIENvbnRyb2wgRGVzaWducworMDAxQUM2ICAgICAoYmFzZSAxNikJCU1pY3JvIENvbnRyb2wgRGVzaWducworCQkJCTE3NDkwIENhcmlib3UgRHIKKwkJCQlNb251bWVudCBDby4gODAxMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUM3ICAgKGhleCkJCVVOSVBPSU5UCiswMDFBQzcgICAgIChiYXNlIDE2KQkJVU5JUE9JTlQKKwkJCQk3RiBHd2FuZ3N1bmcgQmxkIDgzMS00NyBZZW9rU2FtLURvbmcKKwkJCQlLYW5nbmFtLUd1IFNlb3VsIDEzNS05MzYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtQzggICAoaGV4KQkJSVNMIChJbnN0cnVtZW50YXRpb24gU2NpZW50aWZpcXVlIGRlIExhYm9yYXRvaXJlKQorMDAxQUM4ICAgICAoYmFzZSAxNikJCUlTTCAoSW5zdHJ1bWVudGF0aW9uIFNjaWVudGlmaXF1ZSBkZSBMYWJvcmF0b2lyZSkKKwkJCQlJbXBhc3NlIGRlcyA0IHZlbnRzCisJCQkJUGFyYyBkJ0FjdGl2aXTDqSBkZSBsYSBNZXNuaWxsacOpcmUKKwkJCQlWRVJTT04gQ0FMVkFET1MgMTQ3OTAKKwkJCQlGUkFOQ0UKKworMDAtMUEtQzkgICAoaGV4KQkJU1VaVUtFTiBDTy4sTFRECiswMDFBQzkgICAgIChiYXNlIDE2KQkJU1VaVUtFTiBDTy4sTFRECisJCQkJU1VaVUtFTiBUT01FSSBCTERHLgorCQkJCTI2IEhJTUVXQUtBLUNITyBNRUlUTy1LVQorCQkJCU5BR09ZQS1TSSBBSUNISS1LRU4gNDY1LTAwNDUKKwkJCQlKQVBBTgorCiswMC0xQS1DQSAgIChoZXgpCQlUaWxlcmEgQ29ycG9yYXRpb24KKzAwMUFDQSAgICAgKGJhc2UgMTYpCQlUaWxlcmEgQ29ycG9yYXRpb24KKwkJCQkxOTAwIFdlc3QgUGFyayBEcml2ZQorCQkJCVN1aXRlIDI5MAorCQkJCVdlc3Rib3JvdWdoIE1BIDAxNTgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1DQiAgIChoZXgpCQlBdXRvY29tIFByb2R1Y3RzIEx0ZAorMDAxQUNCICAgICAoYmFzZSAxNikJCUF1dG9jb20gUHJvZHVjdHMgTHRkCisJCQkJVW5pdCA0IFRhY2hicm9vayBMaW5rLCBUYWNoYnJvb2sgUGFyayBEcml2ZQorCQkJCVdhcndpY2sgV2Fyd2lja3NoaXJlIENWMzQgNlJICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUEtQ0MgICAoaGV4KQkJQ2VsZXN0aWFsIFNlbWljb25kdWN0b3IsIEx0ZAorMDAxQUNDICAgICAoYmFzZSAxNikJCUNlbGVzdGlhbCBTZW1pY29uZHVjdG9yLCBMdGQKKwkJCQlVZ2xhbmQgSG91c2UsIFNvdXRoIENodXJjaCBTdHJlZXQsCisJCQkJIENheW1hbiBJc2xhbmRzCisJCQkJR2VvcmdlIFRvd24sICBDYXltYW4gSXNsYW5kcyAwMDAwMAorCQkJCUNBWU1BTiBJU0xBTkRTCisKKzAwLTFBLUNEICAgKGhleCkJCVRpZGVsIEVuZ2luZWVyaW5nIExQCiswMDFBQ0QgICAgIChiYXNlIDE2KQkJVGlkZWwgRW5naW5lZXJpbmcgTFAKKwkJCQkyMDI1IFcgQmVsdCBMaW5lIFJvYWQgU3VpdGUgMTE0CisJCQkJQ2Fycm9sbHRvbiBUWCA3NTAxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtQ0UgICAoaGV4KQkJWVVQSVRFUlUgQ09SUE9SQVRJT04KKzAwMUFDRSAgICAgKGJhc2UgMTYpCQlZVVBJVEVSVSBDT1JQT1JBVElPTgorCQkJCTMsIERhbm5vdWUsIEl3YXp1LWNobywgT2themFraS1jaXR5LCBBaWNoaQorCQkJCU9rYXpha2kgQWljaGkgNDQ0LTIxNDQKKwkJCQlKQVBBTgorCiswMC0xQS1DRiAgIChoZXgpCQlDLlQuIEVMRVRUUk9OSUNBCiswMDFBQ0YgICAgIChiYXNlIDE2KQkJQy5ULiBFTEVUVFJPTklDQQorCQkJCVZpYSBDYWR1dGkgZGkgTmFzc2lyaXlhIDUgQgorCQkJCUJhcmJlcmlubyBWYWwgRCdFbHNhIChGSSkgIDUwMDIxCisJCQkJSVRBTFkKKworMDAtMUEtRDAgICAoaGV4KQkJQWxiaXMgVGVjaG5vbG9naWVzIEFHCiswMDFBRDAgICAgIChiYXNlIDE2KQkJQWxiaXMgVGVjaG5vbG9naWVzIEFHCisJCQkJQWxiaXNyaWVkZXJzdHJhc3NlIDE5OQorCQkJCUNIIDgwNDcgWnVlcmljaCAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xQS1EMSAgIChoZXgpCQlGQVJHTyBDTy4sIExURC4KKzAwMUFEMSAgICAgKGJhc2UgMTYpCQlGQVJHTyBDTy4sIExURC4KKwkJCQk0Ri4gS1lFTVlVTkcgQi9ECisJCQkJMTY1LTQgU0FNU1VORy1ET05HLCBLQU5HTkFNLUtVCisJCQkJU0VPVUwgIDEzNSA4ODUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtRDIgICAoaGV4KQkJRWxldHJvbmljYSBOaXRyb24gTHRkYQorMDAxQUQyICAgICAoYmFzZSAxNikJCUVsZXRyb25pY2EgTml0cm9uIEx0ZGEKKwkJCQlSdWEgRHIuIFVsaXNzZXMgRXNjb2JhciA0MTUKKwkJCQlKYXJkaW0gVmlzdGEgQWxlZ3JlCisJCQkJQ2FtYW5kdWNhaWEgTWluYXMgR2VyYWlzIDM3NjUwLTAwMAorCQkJCUJSQVpJTAorCiswMC0xQS1EMyAgIChoZXgpCQlWYW1wIEx0ZC4KKzAwMUFEMyAgICAgKGJhc2UgMTYpCQlWYW1wIEx0ZC4KKwkJCQlQTyBCb3ggODEwCisJCQkJVmFhc2EgIDY1MTAxCisJCQkJRklOTEFORAorCiswMC0xQS1ENCAgIChoZXgpCQlpUE9YIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFBRDQgICAgIChiYXNlIDE2KQkJaVBPWCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTE1Ri0xLCBOby4xODYsIEppYW4tWWkgUmQuLCBDaHVuZy1IbyBDaXR5LAorCQkJCVRhaXBlaSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS1ENSAgIChoZXgpCQlLTUMgQ0hBSU4gSU5EVVNUUklBTCBDTy4sIExURC4KKzAwMUFENSAgICAgKGJhc2UgMTYpCQlLTUMgQ0hBSU4gSU5EVVNUUklBTCBDTy4sIExURC4KKwkJCQk3Ri04LCBOby4gODEsIFN1aS1MaWggUmQuLCBIc2luY2h1CisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQS1ENiAgIChoZXgpCQlKSUFHTlNVIEFFVE5BIEVMRUNUUklDIENPLixMVEQKKzAwMUFENiAgICAgKGJhc2UgMTYpCQlKSUFHTlNVIEFFVE5BIEVMRUNUUklDIENPLixMVEQKKwkJCQlOTy41NzEgUUlBTkhVIFJPQUQsUUlBTlFJQU8gSU5EVVNUUlkgUEFSSyxXVVhJLEpJQU5HU1UsQ0hJTkEKKwkJCQlXVVhJIEpJQU5HU1UgMjE0MTUxCisJCQkJQ0hJTkEKKworMDAtMUEtRDcgICAoaGV4KQkJQ2hyaXN0aWUgRGlnaXRhbCBTeXN0ZW1zLCBJbmMuCiswMDFBRDcgICAgIChiYXNlIDE2KQkJQ2hyaXN0aWUgRGlnaXRhbCBTeXN0ZW1zLCBJbmMuCisJCQkJODA5IFdlbGxpbmd0b24gU3RyZWV0IE5vcnRoCisJCQkJS2l0Y2hlbmVyIE9udGFyaW8gTjJHIDRZNworCQkJCUNBTkFEQQorCiswMC0xQS1EOCAgIChoZXgpCQlBbHN0ZXJBZXJvIEdtYkgKKzAwMUFEOCAgICAgKGJhc2UgMTYpCQlBbHN0ZXJBZXJvIEdtYkgKKwkJCQlMw4PCvGJlY2tlciBTdHJhw4PFuGUgMQorCQkJCUhhbWJ1cmcgIDIyMDg3CisJCQkJR0VSTUFOWQorCiswMC0xQS1EOSAgIChoZXgpCQlJbnRlcm5hdGlvbmFsIEJyb2FkYmFuZCBFbGVjdHJpYyBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAxQUQ5ICAgICAoYmFzZSAxNikJCUludGVybmF0aW9uYWwgQnJvYWRiYW5kIEVsZWN0cmljIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMjg1IER1bmxvcCBCbHZkLiBTVworCQkJCVN1aXRlIEsKKwkJCQlIdW50c3ZpbGxlIEFMIDM1ODI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1EQSAgIChoZXgpCQlCaXotMi1NZSBJbmMuCiswMDFBREEgICAgIChiYXNlIDE2KQkJQml6LTItTWUgSW5jLgorCQkJCTEzMDEgV2VzdCBFYXUgR2FsbGllIEJsdmQKKwkJCQlTdWl0ZSAxMDYKKwkJCQlNZWxib3VybmUgRkwgMzI5MzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLURCICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDFBREIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gSHd5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1EQyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxQURDICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xQS1ERCAgIChoZXgpCQlQZVBXYXZlIEx0ZAorMDAxQUREICAgICAoYmFzZSAxNikJCVBlUFdhdmUgTHRkCisJCQkJMTcvRi4sIFBhcmsgQnVpbGRpbmcsCisJCQkJNDc2IENhc3RsZSBQZWFrIFJvYWQKKwkJCQlDaGV1bmcgU2hhIFdhbiBLb3dsb29uIAorCQkJCUhPTkcgS09ORworCiswMC0xQS1ERSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxQURFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtREYgICAoaGV4KQkJSW50ZXJhY3RpdmV0diBQdHkgTGltaXRlZAorMDAxQURGICAgICAoYmFzZSAxNikJCUludGVyYWN0aXZldHYgUHR5IExpbWl0ZWQKKwkJCQlTdWl0ZSAxMCBMZXZlbCAzCisJCQkJNTYgQm93bWFuIFN0cmVldAorCQkJCVB5cm1vbnQsIFN5ZG5leSBOU1cgMjAwOQorCQkJCUFVU1RSQUxJQQorCiswMC0xQS1FMCAgIChoZXgpCQlNeXRob2xvZ3kgVGVjaCBFeHByZXNzIEluYy4KKzAwMUFFMCAgICAgKGJhc2UgMTYpCQlNeXRob2xvZ3kgVGVjaCBFeHByZXNzIEluYy4KKwkJCQkyRiwgTm8uMTAsIExhbmUgMjM1LCBCYW8gQ2hpYW8gcm9hZCwKKwkJCQlIc2luLVRpZW4uCisJCQkJVGFpcGVpICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLUUxICAgKGhleCkJCUVER0UgQUNDRVNTIElOQworMDAxQUUxICAgICAoYmFzZSAxNikJCUVER0UgQUNDRVNTIElOQworCQkJCTU0NDAgQkVBVU1PTlQgQ0VOVEVSIEJMVkQKKwkJCQlTVUlURSA0OTAKKwkJCQlUQU1QQSBGTCAzMzYzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRTIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQUUyICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRTMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQUUzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRTQgICAoaGV4KQkJTWVkaWNpcyBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24KKzAwMUFFNCAgICAgKGJhc2UgMTYpCQlNZWRpY2lzIFRlY2hub2xvZ2llcyBDb3Jwb3JhdGlvbgorCQkJCTExODE4IE5vcnRoIENyZWVrIFBhcmt3YXkgTi4KKwkJCQlCb3RoZWxsIFdBIDk4MDExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1FNSAgIChoZXgpCQlNdm94IFRlY2hub2xvZ2llcyBJbmMuCiswMDFBRTUgICAgIChiYXNlIDE2KQkJTXZveCBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTE5MDUwIFBydW5lcmlkZ2UgQXZlCisJCQkJU3RlLiAxMjgKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUU2ICAgKGhleCkJCUF0bGFudGEgQWR2YW5jZWQgQ29tbXVuaWNhdGlvbnMgSG9sZGluZ3MgTGltaXRlZAorMDAxQUU2ICAgICAoYmFzZSAxNikJCUF0bGFudGEgQWR2YW5jZWQgQ29tbXVuaWNhdGlvbnMgSG9sZGluZ3MgTGltaXRlZAorCQkJCTE5MDAgV2VzdCBPYWsgQ2lyY2xlLCBNYXJpZXR0YQorCQkJCUF0bGFudGEgR2VvcmdpYSAzMDA2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRTcgICAoaGV4KQkJQXp0ZWsgTmV0d29ya3MsIEluYy4KKzAwMUFFNyAgICAgKGJhc2UgMTYpCQlBenRlayBOZXR3b3JrcywgSW5jLgorCQkJCTI0NzcgNTV0aCBTdC4gIzIwMgorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUU4ICAgKGhleCkJCVNpZW1lbnMgRW50ZXJwcmlzZSBDb21tdW5pY2F0aW9ucyBHbWJIICYgQ28uIEtHCiswMDFBRTggICAgIChiYXNlIDE2KQkJU2llbWVucyBFbnRlcnByaXNlIENvbW11bmljYXRpb25zIEdtYkggJiBDby4gS0cKKwkJCQlTRU4gU0MgTUMKKwkJCQlIb2ZtYW5uc3RyYXNzZSA1MQorCQkJCU11bmljaCA4MTM3OQorCQkJCUdFUk1BTlkKKworMDAtMUEtRTkgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDFBRTkgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMUEtRUEgICAoaGV4KQkJUmFkaW8gVGVybWluYWwgU3lzdGVtcyBQdHkgTHRkCiswMDFBRUEgICAgIChiYXNlIDE2KQkJUmFkaW8gVGVybWluYWwgU3lzdGVtcyBQdHkgTHRkCisJCQkJMXN0IEZsb29yCisJCQkJMTA4IERvaGVydHlzIFJvYWQKKwkJCQlMYXZlcnRvbiBOb3J0aCBWaWN0b3JpYSAzMDI2CisJCQkJQVVTVFJBTElBCisKKzAwLTFBLUVCICAgKGhleCkJCUFsbGllZCBUZWxlc2lzIEsuSy4KKzAwMUFFQiAgICAgKGJhc2UgMTYpCQlBbGxpZWQgVGVsZXNpcyBLLksuCisJCQkJTm8uMiBUT0MgQmxkZy4KKwkJCQk3LTIxLTExIE5pc2hpLUdvdGFuZGEKKwkJCQlTaGluYWdhd2Eta3UgVG9reW8gMTQxLTAwMzEKKwkJCQlKQVBBTgorCiswMC0xQS1FQyAgIChoZXgpCQlLZXVtYmVlIEVsZWN0cm9uaWNzIENvLixMdGQuCiswMDFBRUMgICAgIChiYXNlIDE2KQkJS2V1bWJlZSBFbGVjdHJvbmljcyBDby4sTHRkLgorCQkJCTMtMjYsIEphbmdzYW5nLWRvbmcsIFNhbmdyb2stZ3UKKwkJCQlBbnNhbi1zaSBLeXVuZ2tpLWRvIDQyNi00MTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtRUQgICAoaGV4KQkJSU5DT1RFQyBHbWJICiswMDFBRUQgICAgIChiYXNlIDE2KQkJSU5DT1RFQyBHbWJICisJCQkJQmxvbWVzdHJhc3NlIDI1IC0gMjcKKwkJCQlCaWVsZWZlbGQgTlJXIDMzNjA5CisJCQkJR0VSTUFOWQorCiswMC0xQS1FRSAgIChoZXgpCQlTaGVuenRlY2ggTHRkCiswMDFBRUUgICAgIChiYXNlIDE2KQkJU2hlbnp0ZWNoIEx0ZAorCQkJCTgxMywgOEYsIEhPTExZV09PRCBQTEFaQSwgNjEwIE5BVEhBTiBST0FELAorCQkJCUtPV0xPT04gIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0xQS1FRiAgIChoZXgpCQlMb29wY29tbSBUZWNobm9sb2d5LCBJbmMuCiswMDFBRUYgICAgIChiYXNlIDE2KQkJTG9vcGNvbW0gVGVjaG5vbG9neSwgSW5jLgorCQkJCTE4Ri0xLCBOby4gMTUwLCBKaWFuIFlpIFJkLiwKKwkJCQlDaHVuZy1IbyBDaXR5IFRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFBLUYwICAgKGhleCkJCUFsY2F0ZWwgLSBJUEQKKzAwMUFGMCAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIC0gSVBECisJCQkJNzAxIEUuIE1pZGRsZWZpZWxkIFJkLgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUYxICAgKGhleCkJCUVtYmVkZGVkIEFydGlzdHMgQUIKKzAwMUFGMSAgICAgKGJhc2UgMTYpCQlFbWJlZGRlZCBBcnRpc3RzIEFCCisJCQkJU29kcmEgUHJvbWVuYWRlbiA1MQorCQkJCU1hbG1vZSAgMjExIDM4CisJCQkJU1dFREVOCisKKzAwLTFBLUYyICAgKGhleCkJCUR5bmF2aXNpb25zIFNjaHdlaXogQUcKKzAwMUFGMiAgICAgKGJhc2UgMTYpCQlEeW5hdmlzaW9ucyBTY2h3ZWl6IEFHCisJCQkJRnJlaXNpbmdlciBMYW5kc3RyYXNzZSAyMQorCQkJCUQtODA5MzkgTXVlbmNoZW4gCisJCQkJR0VSTUFOWQorCiswMC0xQS1GMyAgIChoZXgpCQlTYW15b3VuZyBFbGVjdHJvbmljcworMDAxQUYzICAgICAoYmFzZSAxNikJCVNhbXlvdW5nIEVsZWN0cm9uaWNzCisJCQkJMTQ2LTEsIHNhbmdkYWV3b24tZG9uZywgam9vbmd3b24tZ3UKKwkJCQlzdW5nbmFtLXNoaSBHeXVuZ2dpLWRvIDQ2Mi04MDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUEtRjQgICAoaGV4KQkJSGFuZHJlYW1uZXQKKzAwMUFGNCAgICAgKGJhc2UgMTYpCQlIYW5kcmVhbW5ldAorCQkJCSMxMjA5IE1hcmlvVG93ZXIsIDIyMi0xMgorCQkJCUd1cm8tRG9uZywgR3Vyby1HdQorCQkJCVNlb3VsICAxNTItODQ4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLUY1ICAgKGhleCkJCVBFTlRBT05FLiBDTy4sIExURC4KKzAwMUFGNSAgICAgKGJhc2UgMTYpCQlQRU5UQU9ORS4gQ08uLCBMVEQuCisJCQkJSHlvIENoYW5nIEJsZGcsIDNGLCAxMDEzLTYsIElua3llLWRvbmcgUGFsZGFsLUd1LAorCQkJCVN1d29uIENpdHkgR3l1bmdnaS1EbyA0MjItODMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFBLUY2ICAgKGhleCkJCVdvdmVuIFN5c3RlbXMsIEluYy4KKzAwMUFGNiAgICAgKGJhc2UgMTYpCQlXb3ZlbiBTeXN0ZW1zLCBJbmMuCisJCQkJMjQ1NSBBdWd1c3RpbmUgRHJpdmUKKwkJCQlTdWl0ZSAyMTEKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRjcgICAoaGV4KQkJZGF0YXNjaGFsdCBlK2EgR21iSAorMDAxQUY3ICAgICAoYmFzZSAxNikJCWRhdGFzY2hhbHQgZSthIEdtYkgKKwkJCQlBbiBkZXIgSMO8bHNob3JzdCA3LTkKKwkJCQlMw7xiZWNrICAyMzU2OAorCQkJCUdFUk1BTlkKKworMDAtMUEtRjggICAoaGV4KQkJQ29wbGV5IENvbnRyb2xzIENvcnBvcmF0aW9uCiswMDFBRjggICAgIChiYXNlIDE2KQkJQ29wbGV5IENvbnRyb2xzIENvcnBvcmF0aW9uCisJCQkJMjAgRGFuIFJvYWQKKwkJCQlDYW50b24gTUEgMDIwMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUY5ICAgKGhleCkJCUFlcm9WSXJvbm1lbnQgKEFWIEluYykKKzAwMUFGOSAgICAgKGJhc2UgMTYpCQlBZXJvVklyb25tZW50IChBViBJbmMpCisJCQkJNDY4NSBJbmR1c3RyaWFsIFN0CisJCQkJUE8gQTE4MjcxCisJCQkJU2ltaSBWYWxsZXkgQ0EgOTMwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUZBICAgKGhleCkJCVdlbGNoIEFsbHluLCBJbmMuCiswMDFBRkEgICAgIChiYXNlIDE2KQkJV2VsY2ggQWxseW4sIEluYy4KKwkJCQk0NjE5IEpvcmRhbiBSb2FkCisJCQkJUE8gQm94IDE4NworCQkJCVNrYW5lYXRlbGVzIEZhbGxzIE5ZIDEzMTUzLTAxODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFBLUZCICAgKGhleCkJCUpvYnkgSW5jLgorMDAxQUZCICAgICAoYmFzZSAxNikJCUpvYnkgSW5jLgorCQkJCTE1MzUgTWlzc2lvbiBTdC4KKwkJCQlGbG9vciAyCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUEtRkMgICAoaGV4KQkJTW9kdXNMaW5rIENvcnBvcmF0aW9uCiswMDFBRkMgICAgIChiYXNlIDE2KQkJTW9kdXNMaW5rIENvcnBvcmF0aW9uCisJCQkJMjkwNSBQcmVzdG9ud29vZCBEcml2ZQorCQkJCVBsYW5vIFRleGFzIDc1MDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQS1GRCAgIChoZXgpCQlFVk9MSVMKKzAwMUFGRCAgICAgKGJhc2UgMTYpCQlFVk9MSVMKKwkJCQkyOSBhdmVudWUgZGUgbGEgZm9udGFpbmUKKwkJCQlaSSBBbmdlcnMgYmVhdWNvdXplCisJCQkJQmVhdWNvdXplICA0OTA3MAorCQkJCUZSQU5DRQorCiswMC0xQS1GRSAgIChoZXgpCQlTT0ZBQ1JFQUwKKzAwMUFGRSAgICAgKGJhc2UgMTYpCQlTT0ZBQ1JFQUwKKwkJCQkxNDkgYXZlbnVlIGR1IE1BSU5FCisJCQkJUEFSSVMgUmVnaW9uIFBhcmlzaWVubmUgNzUwMTQKKwkJCQlGUkFOQ0UKKworMDAtMUEtRkYgICAoaGV4KQkJV2l6eW91bmcgVGVjaC4KKzAwMUFGRiAgICAgKGJhc2UgMTYpCQlXaXp5b3VuZyBUZWNoLgorCQkJCTlGLCBOby4gMjUsIFNlYy4gMSwgTmFuamluZyBFLiBSZC4KKwkJCQlUYWlwZWkgIDEwNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItMDAgICAoaGV4KQkJTmVvcG9zdCBUZWNobm9sb2dpZXMKKzAwMUIwMCAgICAgKGJhc2UgMTYpCQlOZW9wb3N0IFRlY2hub2xvZ2llcworCQkJCTExMyBydWUgSmVhbi1NYXJpbiBOYXVkaW4KKwkJCQlCYWduZXV4ICA5MjIyMAorCQkJCUZSQU5DRQorCiswMC0xQi0wMSAgIChoZXgpCQlBcHBsaWVkIFJhZGlvIFRlY2hub2xvZ2llcworMDAxQjAxICAgICAoYmFzZSAxNikJCUFwcGxpZWQgUmFkaW8gVGVjaG5vbG9naWVzCisJCQkJMTEyNCBTb3V0aCBTZXJ2aWNlIFJvYWQgV2VzdAorCQkJCU9ha3ZpbGxlIE9udGFyaW8gTDZMIDVUNworCQkJCUNBTkFEQQorCiswMC0xQi0wMiAgIChoZXgpCQlFRCBDby5MdGQKKzAwMUIwMiAgICAgKGJhc2UgMTYpCQlFRCBDby5MdGQKKwkJCQk1MTctMTUgU2FuZ0RhZVdvbi1Eb25nCisJCQkJU2VvbmdOYW0tQ2l0eSBHeWVvbmdHaS1EbyA0NjItODA2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLTAzICAgKGhleCkJCUFjdGlvbiBUZWNobm9sb2d5IChTWikgQ28uLCBMdGQKKzAwMUIwMyAgICAgKGJhc2UgMTYpCQlBY3Rpb24gVGVjaG5vbG9neSAoU1opIENvLiwgTHRkCisJCQkJQWN0aW9uIFRlY2hub2xvZ3kgQnVpbGRpbmcgQmFveXVhbiBSb2FkLCBYaXhpYW5nLCBCYW8nYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTAyCisJCQkJQ0hJTkEKKworMDAtMUItMDQgICAoaGV4KQkJQWZmaW5pdHkgSW50ZXJuYXRpb25hbCBTLnAuYQorMDAxQjA0ICAgICAoYmFzZSAxNikJCUFmZmluaXR5IEludGVybmF0aW9uYWwgUy5wLmEKKwkJCQlDLnNvIFNhdm9uYSA1MQorCQkJCVZpbGxhc3RlbGxvbmUgVG9yaW5vIEkxMDAyOQorCQkJCUlUQUxZCisKKzAwLTFCLTA1ICAgKGhleCkJCVlNQyBBRworMDAxQjA1ICAgICAoYmFzZSAxNikJCVlNQyBBRworCQkJCVNvbm5lbnN0cmFzc2UgNAorCQkJCUtyZXV6bGluZ2VuIFRodXJnYXUgODI4MAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFCLTA2ICAgKGhleCkJCUF0ZWxpZXJzIFIuIExBVU1PTklFUgorMDAxQjA2ICAgICAoYmFzZSAxNikJCUF0ZWxpZXJzIFIuIExBVU1PTklFUgorCQkJCTExLCBydWUgZHUgQ2hlbml2YWwKKwkJCQlCUCAxCisJCQkJTmVzbGVzIGxhIFZhbGzDqWUgVmFsIGQnT2lzZSA5NTY5MAorCQkJCUZSQU5DRQorCiswMC0xQi0wNyAgIChoZXgpCQlNZW5kb2Npbm8gU29mdHdhcmUKKzAwMUIwNyAgICAgKGJhc2UgMTYpCQlNZW5kb2Npbm8gU29mdHdhcmUKKwkJCQk0NzAwMSBCZW5lY2lhIFN0LgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTA4ICAgKGhleCkJCURhbmZvc3MgRHJpdmVzIEEvUworMDAxQjA4ICAgICAoYmFzZSAxNikJCURhbmZvc3MgRHJpdmVzIEEvUworCQkJCVVsc25hZXMgMQorCQkJCUdyYWFzdGVuIDYzMDAgCisJCQkJREVOTUFSSworCiswMC0xQi0wOSAgIChoZXgpCQlNYXRyaXggVGVsZWNvbSBQdnQuIEx0ZC4KKzAwMUIwOSAgICAgKGJhc2UgMTYpCQlNYXRyaXggVGVsZWNvbSBQdnQuIEx0ZC4KKwkJCQkzOTQsIEdJREMsIE1ha2FycHVyYSwKKwkJCQlWYWRvZGFyYSBHdWphcmF0IDM5MDAxMAorCQkJCUlORElBCisKKzAwLTFCLTBBICAgKGhleCkJCUludGVsbGlnZW50IERpc3RyaWJ1dGVkIENvbnRyb2xzIEx0ZAorMDAxQjBBICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IERpc3RyaWJ1dGVkIENvbnRyb2xzIEx0ZAorCQkJCUtleW5lcyBIb3VzZSwgQ2hlc3RlciBQYXJrCisJCQkJQWxmcmV0b24gUm9hZAorCQkJCURlcmJ5IERlcmJ5c2hpcmUgREUyMSA0QVMKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQi0wQiAgIChoZXgpCQlQaGlkZ2V0cyBJbmMuCiswMDFCMEIgICAgIChiYXNlIDE2KQkJUGhpZGdldHMgSW5jLgorCQkJCTI3MTVBIDE2QSBTdHJlZXQgTi5XLgorCQkJCUNhbGdhcnkgQWxiZXJ0YSBUMk0gM1I3CisJCQkJQ0FOQURBCisKKzAwLTFCLTBDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUIwQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTBEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUIwRCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTBFICAgKGhleCkJCUlub1RlYyBHbWJIIE9yZ2FuaXNhdGlvbnNzeXN0ZW1lCiswMDFCMEUgICAgIChiYXNlIDE2KQkJSW5vVGVjIEdtYkggT3JnYW5pc2F0aW9uc3N5c3RlbWUKKwkJCQlCaWVkcmljaHN0cmFzc2UgMTEKKwkJCQlXb2VsZmVyc2hlaW0gSGVzc2VuIEQtNjEyMDAKKwkJCQlHRVJNQU5ZCisKKzAwLTFCLTBGICAgKGhleCkJCVBldHJhdGVjCiswMDFCMEYgICAgIChiYXNlIDE2KQkJUGV0cmF0ZWMKKwkJCQlEZXJlY2ggSGEtU2hhcm9uIDEyCisJCQkJS2ZhciBTYWJhIFNoYXJvbiA0NDI3MQorCQkJCUlTUkFFTAorCiswMC0xQi0xMCAgIChoZXgpCQlTaGVuWmhlbiBLYW5nIEh1aSBUZWNobm9sb2d5IENvLixsdGQKKzAwMUIxMCAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBLYW5nIEh1aSBUZWNobm9sb2d5IENvLixsdGQKKwkJCQlDaGluYSAgR3VhbmdEb25nCisJCQkJVHdvIHMsZmxvb3IgQmFvQW4gRGlzdHJpY3QgTG9uZ0h1YQorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMDkKKwkJCQlDSElOQQorCiswMC0xQi0xMSAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzAwMUIxMSAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOTy4yODksIFNpbmh1IDNyZCBSZC4sCisJCQkJTmVpaHUgRGlzdHJpY3QsIFRhaXBlaSBDaXR5IDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItMTIgICAoaGV4KQkJQXBwcmlvbgorMDAxQjEyICAgICAoYmFzZSAxNikJCUFwcHJpb24KKwkJCQlOYXNhIEFtZXMgUmVyZWFyY2ggQ2VudGVyCisJCQkJUC5PLiBCb3ggOTUgQnVpbGRpbmcgMTkgU3VpdGUgMTAwMAorCQkJCU1vZmZldHQgRmllbGQgQ2FsaWZvcm5pYSA5NDAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMTMgICAoaGV4KQkJSWNyb24gVGVjaG5vbG9naWVzIENvcnBvcmF0aW9uCiswMDFCMTMgICAgIChiYXNlIDE2KQkJSWNyb24gVGVjaG5vbG9naWVzIENvcnBvcmF0aW9uCisJCQkJMjIxIC0gNDY2NCBMb3VnaGVlZCBIaWdod2F5CisJCQkJQnVybmFieSBCQyBWNUMgNVQ1CisJCQkJQ0FOQURBCisKKzAwLTFCLTE0ICAgKGhleCkJCUNhcmV4IExpZ2h0aW5nIEVxdWlwbWVudCBGYWN0b3J5CiswMDFCMTQgICAgIChiYXNlIDE2KQkJQ2FyZXggTGlnaHRpbmcgRXF1aXBtZW50IEZhY3RvcnkKKwkJCQk1MCBDaGFuZyBUYW5nIFJkLiwgWWFuIFRpYW4gRGlzdHJpY3QsCisJCQkJRnVuZ2tvbmcsIERvbmdHdWFuCisJCQkJR3Vhbmdkb25nIHByb3ZpbmNlIAorCQkJCUNISU5BCisKKzAwLTFCLTE1ICAgKGhleCkJCVZveHRlbCwgSW5jLgorMDAxQjE1ICAgICAoYmFzZSAxNikJCVZveHRlbCwgSW5jLgorCQkJCTEyNzI1IFNXIE1pbGxpa2FuIFdheQorCQkJCVN1aXRlIDIzMAorCQkJCUJlYXZlcnRvbiBPUiA5NzAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMTYgICAoaGV4KQkJQ2VsdHJvIEx0ZC4KKzAwMUIxNiAgICAgKGJhc2UgMTYpCQlDZWx0cm8gTHRkLgorCQkJCUF6b3JpbSBCdXNpbmVzcyBQYXJrCisJCQkJOTQgRW0gSG1vc2hhdm90IFJvYWQuCisJCQkJUGV0YWNoIFRpa3ZhICA0OTUyNworCQkJCUlTUkFFTAorCiswMC0xQi0xNyAgIChoZXgpCQlQYWxvIEFsdG8gTmV0d29ya3MKKzAwMUIxNyAgICAgKGJhc2UgMTYpCQlQYWxvIEFsdG8gTmV0d29ya3MKKwkJCQkyMTMwIEdvbGQgU3RyZWV0IFN1aXRlIDIwMAorCQkJCUFsdmlzbyBDQSA5NTAyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMTggICAoaGV4KQkJVHN1a2VuIEVsZWN0cmljIEluZC4gQ28uLEx0ZAorMDAxQjE4ICAgICAoYmFzZSAxNikJCVRzdWtlbiBFbGVjdHJpYyBJbmQuIENvLixMdGQKKwkJCQkzLTkgQWtlZG91cmkgSXp1bWkta3UKKwkJCQlTZW5kYWkgQ2l0eSBNaXlhZ2kgOTgxLTMyMDYKKwkJCQlKQVBBTgorCiswMC0xQi0xOSAgIChoZXgpCQlJRUVFIEkmTSBTb2NpZXR5IFRDOSAKKzAwMUIxOSAgICAgKGJhc2UgMTYpCQlJRUVFIEkmTSBTb2NpZXR5IFRDOSAKKwkJCQkxMDAgQnVyZWF1IERyLiwgTWFpbCBTdG9wIDgyMjAKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4OTktODIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMUEgICAoaGV4KQkJZS10cmVlcyBKYXBhbiwgSW5jLgorMDAxQjFBICAgICAoYmFzZSAxNikJCWUtdHJlZXMgSmFwYW4sIEluYy4KKwkJCQlPb3dhZGEtY2hvIDItOS0yCisJCQkJRGFpd2F1bnl1IGJsZGcgM0YKKwkJCQlIYWNoaW9qaS1jaXR5IFRva3lvIDE1MC0wMDAxCisJCQkJSkFQQU4KKworMDAtMUItMUIgICAoaGV4KQkJU2llbWVucyBBRywKKzAwMUIxQiAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEFHLAorCQkJCUkgSUEgU0MgRVdLIFBVMSwgT2VzdGxpY2hlIFJoZWluYnJ1ZWNrZW5zdHJhc3NlIDUwCisJCQkJNzYxODEsIEthcmxzcnVoZSBCYWRlbiBXdWVydHRlbWJlcmcgCisJCQkJR0VSTUFOWQorCiswMC0xQi0xQyAgIChoZXgpCQlDb2hlcmVudAorMDAxQjFDICAgICAoYmFzZSAxNikJCUNvaGVyZW50CisJCQkJMTI4MCBCbHVlcyBIaWxscyBBdmUuCisJCQkJQmxvb21maWVsZCBDVCAwNjAwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMUQgICAoaGV4KQkJUGhvZW5peCBJbnRlcm5hdGlvbmFsIENvLiwgTHRkCiswMDFCMUQgICAgIChiYXNlIDE2KQkJUGhvZW5peCBJbnRlcm5hdGlvbmFsIENvLiwgTHRkCisJCQkJMTFGLiBOby40Mi0xLCBTZWMuMSwgWmhvbmd5YW5nIE4uIFJkLiBCZWl0b3UKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItMUUgICAoaGV4KQkJSEFSVCBDb21tdW5pY2F0aW9uIEZvdW5kYXRpb24KKzAwMUIxRSAgICAgKGJhc2UgMTYpCQlIQVJUIENvbW11bmljYXRpb24gRm91bmRhdGlvbgorCQkJCVNURSAxLTM1MAorCQkJCTkzOTAgUmVzZWFyY2ggQmx2ZAorCQkJCUF1c3RpbiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMUYgICAoaGV4KQkJREVMVEEgLSBEYW5pc2ggRWxlY3Ryb25pY3MsIExpZ2h0ICYgQWNvdXN0aWNzCiswMDFCMUYgICAgIChiYXNlIDE2KQkJREVMVEEgLSBEYW5pc2ggRWxlY3Ryb25pY3MsIExpZ2h0ICYgQWNvdXN0aWNzCisJCQkJVmVubGlnaGVkc3ZlaiA0CisJCQkJSMO4cnNob2xtICBESy0yOTcwCisJCQkJREVOTUFSSworCiswMC0xQi0yMCAgIChoZXgpCQlUUGluZSBUZWNobm9sb2d5CiswMDFCMjAgICAgIChiYXNlIDE2KQkJVFBpbmUgVGVjaG5vbG9neQorCQkJCTNGLCBOby4xLCBBTi1JIFJkLAorCQkJCUtlZWx1bmcgIDExMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItMjEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDFCMjEgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xQi0yMiAgIChoZXgpCQlQYWxpdCBNaWNyb3N5c3RlbXMgKCBILksuKSBMdGQuCiswMDFCMjIgICAgIChiYXNlIDE2KQkJUGFsaXQgTWljcm9zeXN0ZW1zICggSC5LLikgTHRkLgorCQkJCVJvb20gNC02LDExRixOYW4gRnVuZyBDb21tZXJjaWFsIENlbnRlcgorCQkJCTE5IExhbSBMb2sgUm9hZCxLb3dsb29uIEJheQorCQkJCUtvd2xvb24gIDExMQorCQkJCUhPTkcgS09ORworCiswMC0xQi0yMyAgIChoZXgpCQlTaW1wbGVDb21Ub29scworMDAxQjIzICAgICAoYmFzZSAxNikJCVNpbXBsZUNvbVRvb2xzCisJCQkJNTk4IEluZGlhbiBUcmFpbCBSZCBTLgorCQkJCVN1aXRlICMxMDIKKwkJCQlJbmRpYW4gVHJhaWwgTkMgMjgwNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTI0ICAgKGhleCkJCVF1YW50YSBDb21wdXRlciBJbmMuCiswMDFCMjQgICAgIChiYXNlIDE2KQkJUXVhbnRhIENvbXB1dGVyIEluYy4KKwkJCQlOby4gMjExLCBXZW4gSHdhIDJuZCBSZC4sCisJCQkJS3VlaSBTaGFuIEhzaWFuZyBUYW8gWXVhbiBTaGllbiAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTI1ICAgKGhleCkJCU5vcnRlbAorMDAxQjI1ICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xQi0yNiAgIChoZXgpCQlST04tVGVsZWNvbSBaQU8KKzAwMUIyNiAgICAgKGJhc2UgMTYpCQlST04tVGVsZWNvbSBaQU8KKwkJCQkxNSBBLCBaYXJlY2huYXlhIHN0LgorCQkJCVRyZWhnb3JueSBDaGVseWFiaW5zayByZWdpb24gNDU2MDgwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFCLTI3ICAgKGhleCkJCU1lcmxpbiBDU0kKKzAwMUIyNyAgICAgKGJhc2UgMTYpCQlNZXJsaW4gQ1NJCisJCQkJMTI2MjUgRGFuaWVsc29uIENvdXJ0CisJCQkJU3VpdGUgMTA5CisJCQkJUG93YXkgQ0EgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTI4ICAgKGhleCkJCVBPTFlHT04sIEpTQworMDAxQjI4ICAgICAoYmFzZSAxNikJCVBPTFlHT04sIEpTQworCQkJCTM3LzEsIEthcmwgTWFyeCBzdHIuLCBmbG9vciA1CisJCQkJVWZhIEJhc2hrb3J0b3N0YW4gNDUwMDc3CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFCLTI5ICAgKGhleCkJCUF2YW50aXMuQ28uLEx0ZAorMDAxQjI5ICAgICAoYmFzZSAxNikJCUF2YW50aXMuQ28uLEx0ZAorCQkJCTUwMiBTRU9JTCBCTERHLgorCQkJCTE1NDMtOCBTRU9DSE8tRE9ORywgU0VPQ0hPLUdVCisJCQkJU0VPVUwgIDEzMi04NzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItMkEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQjJBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMkIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQjJCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSi1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMkMgICAoaGV4KQkJQVRST04gZWxlY3Ryb25pYyBHbWJICiswMDFCMkMgICAgIChiYXNlIDE2KQkJQVRST04gZWxlY3Ryb25pYyBHbWJICisJCQkJQW0gWmllZ2Vsc3RhZGVsIDEyICsgMTQKKwkJCQlNYXJrdCBTY2h3YWJlbiAgODU1NzAKKwkJCQlHRVJNQU5ZCisKKzAwLTFCLTJEICAgKGhleCkJCU1lZC1FbmcgU3lzdGVtcyBJbmMuCiswMDFCMkQgICAgIChiYXNlIDE2KQkJTWVkLUVuZyBTeXN0ZW1zIEluYy4KKwkJCQkyNDAwIFN0LiBMYXVyZW50IEJsdmQuCisJCQkJT3R0YXdhIE9udGFyaW8gSzFHIDZDNAorCQkJCUNBTkFEQQorCiswMC0xQi0yRSAgIChoZXgpCQlTaW5reW8gRWxlY3Ryb24gSW5jCiswMDFCMkUgICAgIChiYXNlIDE2KQkJU2lua3lvIEVsZWN0cm9uIEluYworCQkJCTMtMy0yMSBhc2FoaWdhb2thCisJCQkJaGluby1jaXR5IFRva3lvIDE5MS0wMDY1CisJCQkJSkFQQU4KKworMDAtMUItMkYgICAoaGV4KQkJTkVUR0VBUiBJbmMuCiswMDFCMkYgICAgIChiYXNlIDE2KQkJTkVUR0VBUiBJbmMuCisJCQkJNDUwMCBHcmVhdCBBbWVyaWNhIFBhcmt3YXkKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItMzAgICAoaGV4KQkJU29saXRlY2ggSW5jLgorMDAxQjMwICAgICAoYmFzZSAxNikJCVNvbGl0ZWNoIEluYy4KKwkJCQkxODM4IE1haW4gU3RyZWV0CisJCQkJU3RldmVuc3ZpbGxlIE1EIDIxNjY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0zMSAgIChoZXgpCQlOZXVyYWwgSW1hZ2UuIENvLiBMdGQuCiswMDFCMzEgICAgIChiYXNlIDE2KQkJTmV1cmFsIEltYWdlLiBDby4gTHRkLgorCQkJCUEzMDcsIENBU0ksIE9zYWthIFVuaXYuCisJCQkJMi0xLCBZYW1hZGEtb2thCisJCQkJU3VpdGEgY2l0eSBPc2FrYSA1NjUtMDg3MQorCQkJCUpBUEFOCisKKzAwLTFCLTMyICAgKGhleCkJCVFMb2dpYyBDb3Jwb3JhdGlvbgorMDAxQjMyICAgICAoYmFzZSAxNikJCVFMb2dpYyBDb3Jwb3JhdGlvbgorCQkJCTI2NjUwIEFsaXNvIFZpZWpvIFBhcmt3YXkKKwkJCQlBbGlzbyBWaWVqbyBDYWxpZm9ybmlhIDkyNjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0zMyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxQjMzICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xQi0zNCAgIChoZXgpCQlGb2N1cyBTeXN0ZW0gSW5jLgorMDAxQjM0ICAgICAoYmFzZSAxNikJCUZvY3VzIFN5c3RlbSBJbmMuCisJCQkJMTlGLTEsIE5vLiAyNjYgV2VuIEh3YSAybmQgUmQuLCBTZWMuIDEKKwkJCQlMaW5rb3UgVGFpcGVpIENvdW50eSAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTM1ICAgKGhleCkJCUNob25nUWluZyBKSU5PVSBTY2llbmNlICYgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDTy4sTHRkCiswMDFCMzUgICAgIChiYXNlIDE2KQkJQ2hvbmdRaW5nIEpJTk9VIFNjaWVuY2UgJiBUZWNobm9sb2d5IERldmVsb3BtZW50IENPLixMdGQKKwkJCQlDaHVhbmd5ZXl1YW4gMjA4IyBLZXl1YW4gM3JkIFJvYWQgMTA2IworCQkJCSBIaS1UZWNoIERldmVsb3BtZW50IFpvbmUKKwkJCQlDaG9uZ3FpbmcgIDQwMDAzMAorCQkJCUNISU5BCisKKzAwLTFCLTM2ICAgKGhleCkJCVRzdWJhdGEgRW5naW5lZXJpbmcgQ28uLEx0ZC4gKEhlYWQgT2ZmaWNlKQorMDAxQjM2ICAgICAoYmFzZSAxNikJCVRzdWJhdGEgRW5naW5lZXJpbmcgQ28uLEx0ZC4gKEhlYWQgT2ZmaWNlKQorCQkJCUtveWFuYWdpIDEtMgorCQkJCVNlbmp1IGJsZC4KKwkJCQlJYmFyYWtpIE9zYWthIDU2Ny0wODUyCisJCQkJSkFQQU4KKworMDAtMUItMzcgICAoaGV4KQkJQ29tcHV0ZWMgT3kKKzAwMUIzNyAgICAgKGJhc2UgMTYpCQlDb21wdXRlYyBPeQorCQkJCUp1aG9sYW5rYXR1IDgKKwkJCQlQTCA2NgorCQkJCUtvdXZvbGEgS3ltaSA0NTIwMAorCQkJCUZJTkxBTkQKKworMDAtMUItMzggICAoaGV4KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIExURC4KKzAwMUIzOCAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELgorCQkJCU5PLiAyNSwgVEhFIDNSRCBBVkVOVUUKKwkJCQlLVU5TSEFOIEVYUE9SVCBQUk9DRVNTSU5HIFpPTkUKKwkJCQlLVU5TSEFOIENJVFkgU1VaSE9VIFBST1ZJTkNFIDIxNTMwMAorCQkJCUNISU5BCisKKzAwLTFCLTM5ICAgKGhleCkJCVByb3hpY2FzdAorMDAxQjM5ICAgICAoYmFzZSAxNikJCVByb3hpY2FzdAorCQkJCTMxMiBTdW5ueWZpZWxkIERyaXZlCisJCQkJU3VpdGUgMjAwCisJCQkJR2xlbnNoYXcgUEEgMTUxMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTNBICAgKGhleCkJCVNJTVMgQ29ycC4KKzAwMUIzQSAgICAgKGJhc2UgMTYpCQlTSU1TIENvcnAuCisJCQkJUkFPTiBCbGRnLCA5RiwgOTItOCwgV29uaHlvcm8tMmdhLCBZb25nc2FuLWd1CisJCQkJU2VvdWwgIDE0MC04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItM0IgICAoaGV4KQkJWWktUWluZyBDTy4sIExURAorMDAxQjNCICAgICAoYmFzZSAxNikJCVlpLVFpbmcgQ08uLCBMVEQKKwkJCQkzMTAgUk9PTSwxMkYKKwkJCQlOTy41LTEgSEVORyBZQU5HIFJELgorCQkJCVRBSVBFSSAgMTAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi0zQyAgIChoZXgpCQlTb2Z0d2FyZSBUZWNobm9sb2dpZXMgR3JvdXAsSW5jLgorMDAxQjNDICAgICAoYmFzZSAxNikJCVNvZnR3YXJlIFRlY2hub2xvZ2llcyBHcm91cCxJbmMuCisJCQkJMTAzMzAgVy4gUm9vc2V2ZWx0IFJvYWQKKwkJCQlTdWl0ZSAzMTAKKwkJCQlXZXNjaGVzdGVyIElMIDYwMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0zRCAgIChoZXgpCQlFdXJvVGVsIFNwYQorMDAxQjNEICAgICAoYmFzZSAxNikJCUV1cm9UZWwgU3BhCisJCQkJdmlhbGUgTWFydGlyaSBkZWxsYSBMaWJlcnRhLDQKKwkJCQlMaXNzb25lIE1pbGFuIDIwMDM1CisJCQkJSVRBTFkKKworMDAtMUItM0UgICAoaGV4KQkJQ3VydGlzLCBJbmMuCiswMDFCM0UgICAgIChiYXNlIDE2KQkJQ3VydGlzLCBJbmMuCisJCQkJMjQwNSBBbm5hcG9saXMgTGFuZQorCQkJCVN1aXRlIDIyMAorCQkJCU1pbm5lYXBvbGlzIE1OIDU1NDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi0zRiAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCiswMDFCM0YgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQuCisJCQkJUm9zZXZpbGxlIENhbGlmb3JuaWEgOTU3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTQwICAgKGhleCkJCU5ldHdvcmsgQXV0b21hdGlvbiBteGMgQUIKKzAwMUI0MCAgICAgKGJhc2UgMTYpCQlOZXR3b3JrIEF1dG9tYXRpb24gbXhjIEFCCisJCQkJQm94IDcyOTQKKwkJCQlTdG9ja2hvbG0gIDEwMzkwCisJCQkJU1dFREVOCisKKzAwLTFCLTQxICAgKGhleCkJCUdlbmVyYWwgSW5maW5pdHkgQ28uLEx0ZC4KKzAwMUI0MSAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIEluZmluaXR5IENvLixMdGQuCisJCQkJM0YsTm8uMTY5LCBYaW5nLWFpIFJkLAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTQyICAgKGhleCkJCVdpc2UgJiBCbHVlCiswMDFCNDIgICAgIChiYXNlIDE2KQkJV2lzZSAmIEJsdWUKKwkJCQkjNzE1LTMgQW55YW5nIE1lZ2F2YWxsZXkKKwkJCQk3OTkgR3dhbnlhbmctRG9uZywgRG9uZ2FuLUd1CisJCQkJQW55YW5nLVNpIEd5dW5nZ2ktRG8gNDMxLTc2NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi00MyAgIChoZXgpCQlCZWlqaW5nIERHIFRlbGVjb21tdW5pY2F0aW9ucyBlcXVpcG1lbnQgQ28uLEx0ZAorMDAxQjQzICAgICAoYmFzZSAxNikJCUJlaWppbmcgREcgVGVsZWNvbW11bmljYXRpb25zIGVxdWlwbWVudCBDby4sTHRkCisJCQkJTm8uNSBKaWFuZ3RhaSBSb2FkLCBDaGFveWFuZyBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDAxNgorCQkJCUNISU5BCisKKzAwLTFCLTQ0ICAgKGhleCkJCVNhbkRpc2sgQ29ycG9yYXRpb24KKzAwMUI0NCAgICAgKGJhc2UgMTYpCQlTYW5EaXNrIENvcnBvcmF0aW9uCisJCQkJNjAxIE1jQ2FydGh5IEJvdWxldmFyZAorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi00NSAgIChoZXgpCQlBQkIgQVMsIERpdmlzaW9uIEF1dG9tYXRpb24gUHJvZHVjdHMKKzAwMUI0NSAgICAgKGJhc2UgMTYpCQlBQkIgQVMsIERpdmlzaW9uIEF1dG9tYXRpb24gUHJvZHVjdHMKKwkJCQlCZXJnZXJ2ZWllbiAxMgorCQkJCVBPQiA5MAorCQkJCUJpbGxpbmdzdGFkICBOTy0xMzc1CisJCQkJTk9SV0FZCisKKzAwLTFCLTQ2ICAgKGhleCkJCUJsdWVvbmUgVGVjaG5vbG9neSBDby4sTHRkCiswMDFCNDYgICAgIChiYXNlIDE2KQkJQmx1ZW9uZSBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlSb29tIDMwOSwzIEZsb29yLCA0MDQgQnVpbGRpbmcsIFNoYW5nQnUgaW5kdXN0cmlhbAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMjgKKwkJCQlDSElOQQorCiswMC0xQi00NyAgIChoZXgpCQlGdXRhcnF1ZSBBL1MKKzAwMUI0NyAgICAgKGJhc2UgMTYpCQlGdXRhcnF1ZSBBL1MKKwkJCQlBYWdhZGUgMTVCCisJCQkJQWFsYm9yZyAgOTAwMAorCQkJCURFTk1BUksKKworMDAtMUItNDggICAoaGV4KQkJU2hlbnpoZW4gTGFudGVjaCBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMUI0OCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBMYW50ZWNoIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTMwNiBSb29tLCBOYW5zaGFuIFdhdGVyIEJ1aWxkaW5nLAorCQkJCU5hbmhhaSBSb2FkLCBOYW5zaGFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1MgorCQkJCUNISU5BCisKKzAwLTFCLTQ5ICAgKGhleCkJCVJvYmVydHMgUmFkaW8gbGltaXRlZAorMDAxQjQ5ICAgICAoYmFzZSAxNikJCVJvYmVydHMgUmFkaW8gbGltaXRlZAorCQkJCVN3aW50b24gV29ya3MKKwkJCQlUYWxib3QgUm9hZAorCQkJCU1leGJvcm91Z2ggU291dGggWW9ya3NoaXJlIFM2NCA4QUoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQi00QSAgIChoZXgpCQlXJlcgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMUI0QSAgICAgKGJhc2UgMTYpCQlXJlcgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkyOTAzIEJ1bmtlciBIaWxsIExhbmUKKwkJCQlTdWl0ZSAxMDcKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNEIgICAoaGV4KQkJU0FOSU9OIENvLiwgTHRkLgorMDAxQjRCICAgICAoYmFzZSAxNikJCVNBTklPTiBDby4sIEx0ZC4KKwkJCQkjMjA4IEFDRVRFQ0hOTyBUT1dFUiwgNTUtNywgTVVMTEFFLURPTkcgM0dBLAorCQkJCVlFT05HREVVTkdQTy1HVSBTRU9VTCAxNTAtOTkyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLTRDICAgKGhleCkJCVNpZ250ZWNoCiswMDFCNEMgICAgIChiYXNlIDE2KQkJU2lnbnRlY2gKKwkJCQk2MDkgU2VvbmlsIFRlY2hub3BpYSA2MDkKKwkJCQlTYW5nZGFld29uIDFEb25nIEp1bmd3b24gZ3UKKwkJCQlTdW5nbmFtc2kgS3l1bmdnaWRvIDQ2Mi0xMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItNEQgICAoaGV4KQkJQXJlY2EgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxQjREICAgICAoYmFzZSAxNikJCUFyZWNhIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk4Ri4sIE5vLiAyMiwgTGFuZSAzNSwgSmktSHUgUmQuCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTRFICAgKGhleCkJCU5hdm1hbiBOZXcgWmVhbGFuZAorMDAxQjRFICAgICAoYmFzZSAxNikJCU5hdm1hbiBOZXcgWmVhbGFuZAorCQkJCTctMjEgS2F3YW5hIFN0cmVldAorCQkJCU5vcnRoY290ZQorCQkJCUF1Y2tsYW5kICAwNjI3CisJCQkJTkVXIFpFQUxBTkQKKworMDAtMUItNEYgICAoaGV4KQkJQXZheWEgSW5jLgorMDAxQjRGICAgICAoYmFzZSAxNikJCUF2YXlhIEluYy4KKwkJCQlSb29tIDFBIDMwOQorCQkJCTMwNyBNaWRkbGV0b3duIExpbmNyb2Z0IFJkCisJCQkJTGluY3JvZnQgTkogMDc3MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTUwICAgKGhleCkJCU5pemhueSBOb3Znb3JvZCBGYWN0b3J5IG5hbWVkIGFmdGVyIE0uRnJ1bnplLCBGU1VFIChOWmlGKQorMDAxQjUwICAgICAoYmFzZSAxNikJCU5pemhueSBOb3Znb3JvZCBGYWN0b3J5IG5hbWVkIGFmdGVyIE0uRnJ1bnplLCBGU1VFIChOWmlGKQorCQkJCTE3NCwgR2FnYXJpbmEgQXZlbnVlCisJCQkJTml6aG55IE5vdmdvcm9kICA2MDM5NTAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUItNTEgICAoaGV4KQkJVmVjdG9yIFRlY2hub2xvZ3kgQ29ycC4KKzAwMUI1MSAgICAgKGJhc2UgMTYpCQlWZWN0b3IgVGVjaG5vbG9neSBDb3JwLgorCQkJCU5vLjcsIExhbmUxMiwgWWFqb3UgUm9hZC4KKwkJCQlUdWNoZW5nIFRhaXBlaSAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTUyICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxQjUyICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTYwMCBOLiBId3kgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTUzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUI1MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTU0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUI1NCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTU1ICAgKGhleCkJCUh1cmNvIEF1dG9tYXRpb24gTHRkLgorMDAxQjU1ICAgICAoYmFzZSAxNikJCUh1cmNvIEF1dG9tYXRpb24gTHRkLgorCQkJCTZGLCBOby4gMzEsIFNoaW50YWkgUmQuCisJCQkJSnViZWkgQ2l0eSwgSHNpbmNodSBIc2llbiAzMDI0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItNTYgICAoaGV4KQkJVGVodXRpIE5ldHdvcmtzIEx0ZC4KKzAwMUI1NiAgICAgKGJhc2UgMTYpCQlUZWh1dGkgTmV0d29ya3MgTHRkLgorCQkJCTEsIFNoZW5rYXIgU3QuCisJCQkJSGVydHpsaXlhICA0NjEwNQorCQkJCUlTUkFFTAorCiswMC0xQi01NyAgIChoZXgpCQlTRU1JTkRJQSBTWVNURU1TIFBSSVZBVEUgTElNSVRFRAorMDAxQjU3ICAgICAoYmFzZSAxNikJCVNFTUlORElBIFNZU1RFTVMgUFJJVkFURSBMSU1JVEVECisJCQkJIzExMDYvOSxBLk0uSW5kdXN0cmlhbCBFc3RhdGUsR2FydmViaGFpIHBhbHlhLAorCQkJCTd0aCBNaWxlLCBIb3N1ciBSb2FkLAorCQkJCUJBTkdBTE9SRSBLQVJOQVRBS0EgNTYwMDY4CisJCQkJSU5ESUEKKworMDAtMUItNTggICAoaGV4KQkJQUNFIENBRCBFbnRlcnByaXNlIENvLiwgTHRkLgorMDAxQjU4ICAgICAoYmFzZSAxNikJCUFDRSBDQUQgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKwkJCQkyRiwgTm8uIDk0LCBCYW8gQ2h1bmcgUm9hZCwKKwkJCQlIc2luIFRpZW4gQ2l0eSwgVGFpcGVpIEhzaWVuIDIzMTQ0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi01OSAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorMDAxQjU5ICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKKzAwLTFCLTVBICAgKGhleCkJCUFwb2xsbyBJbWFnaW5nIFRlY2hub2xvZ2llcywgSW5jLgorMDAxQjVBICAgICAoYmFzZSAxNikJCUFwb2xsbyBJbWFnaW5nIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE4NTQ1IFJhbmdlbGFuZCBSZAorCQkJCVJhbW9uYSBDQSA5MjA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNUIgICAoaGV4KQkJMldpcmUsIEluYy4KKzAwMUI1QiAgICAgKGJhc2UgMTYpCQkyV2lyZSwgSW5jLgorCQkJCTE3MDQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTVDICAgKGhleCkJCUF6dXJldGVjIENvLiwgTHRkLgorMDAxQjVDICAgICAoYmFzZSAxNikJCUF6dXJldGVjIENvLiwgTHRkLgorCQkJCTNGLCBOby44LCBBbGxleSA4LCBMYW5lIDQ1LCBCYW94aW5nIFJkLiwKKwkJCQlYaW5kaWFuIENpdHkgVGFpcGVpIENvdW50eSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLTVEICAgKGhleCkJCVZvbG9saW5rIFB0eSBMdGQKKzAwMUI1RCAgICAgKGJhc2UgMTYpCQlWb2xvbGluayBQdHkgTHRkCisJCQkJTGV2ZWwgMiwgNTQxIEJsYWNrYnVybiBSb2FkCisJCQkJTW91bnQgV2F2ZXJsZXkgVmljdG9yaWEgMzE0OQorCQkJCUFVU1RSQUxJQQorCiswMC0xQi01RSAgIChoZXgpCQlCUEwgTGltaXRlZAorMDAxQjVFICAgICAoYmFzZSAxNikJCUJQTCBMaW1pdGVkCisJCQkJQlBMIFRvd2VycworCQkJCTEzLCBLYXN0dXJiYSBSb2FkCisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAwMDEKKwkJCQlJTkRJQQorCiswMC0xQi01RiAgIChoZXgpCQlBbGllbiBUZWNobm9sb2d5CiswMDFCNUYgICAgIChiYXNlIDE2KQkJQWxpZW4gVGVjaG5vbG9neQorCQkJCTE4MjIwIEJ1dHRlcmZpZWxkIEJsdmQuCisJCQkJTW9yZ2FuIEhpbGwgQ0EgOTUwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTYwICAgKGhleCkJCU5BVklHT04gQUcKKzAwMUI2MCAgICAgKGJhc2UgMTYpCQlOQVZJR09OIEFHCisJCQkJQmVybGluZXIgUGxhdHogMTEKKwkJCQlXdWVyemJ1cmcgQmF2YXJpYSA5NzA4MAorCQkJCUdFUk1BTlkKKworMDAtMUItNjEgICAoaGV4KQkJRGlnaXRhbCBBY291c3RpY3MsIExMQworMDAxQjYxICAgICAoYmFzZSAxNikJCURpZ2l0YWwgQWNvdXN0aWNzLCBMTEMKKwkJCQkzNyBTaGVyd29vZCBUZXJyYWNlCisJCQkJTGFrZSBCbHVmZiBJTCA2MDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNjIgICAoaGV4KQkJSkhUIE9wdG9lbGVjdHJvbmljcyBDby4sTHRkLgorMDAxQjYyICAgICAoYmFzZSAxNikJCUpIVCBPcHRvZWxlY3Ryb25pY3MgQ28uLEx0ZC4KKwkJCQlIZXRpYW4gSW5kdXN0cmlhbCBQYXJrIDJyZCxIb3VqaWUgVG93biwgRG9uZ3VhbiwKKwkJCQlEb25nZ3VhbiBHdWFuZ2RvbmcgNTIzOTQ1CisJCQkJQ0hJTkEKKworMDAtMUItNjMgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIgSW5jLgorMDAxQjYzICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ2FsaWZvcm5pYSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNjQgICAoaGV4KQkJSXNhYWNMYW5kS29yZWEgQ28uLCBMdGQsCiswMDFCNjQgICAgIChiYXNlIDE2KQkJSXNhYWNMYW5kS29yZWEgQ28uLCBMdGQsCisJCQkJUm0gNjA4LCBIYW5nYW5nLUh5dW5kYWktSHllbCBCbGRnLiAyLTM2LAorCQkJCUhhbmdhbmdubyAyLWdhLCBZb25nc2FuLWd1LAorCQkJCVNlb3VsICAxNDAtODcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLTY1ICAgKGhleCkJCUNoaW5hIEdyaWRjb20gQ28uLCBMdGQKKzAwMUI2NSAgICAgKGJhc2UgMTYpCQlDaGluYSBHcmlkY29tIENvLiwgTHRkCisJCQkJMjEvRiwgSHVhbmVuZyBCdWlsZGluZywgTm8uIDIwNjggU2hlbm5hbiBNYWluIFJvYWQKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgMDA4NgorCQkJCUNISU5BCisKKzAwLTFCLTY2ICAgKGhleCkJCVNlbm5oZWlzZXIgZWxlY3Ryb25pYyBHbWJIICYgQ28uIEtHCiswMDFCNjYgICAgIChiYXNlIDE2KQkJU2VubmhlaXNlciBlbGVjdHJvbmljIEdtYkggJiBDby4gS0cKKwkJCQlBbSBMYWJvciAxCisJCQkJV2VkZW1hcmsgTmllZGVyc2FjaHNlbiAzMDkwMAorCQkJCUdFUk1BTlkKKworMDAtMUItNjcgICAoaGV4KQkJVWJpcXVpc3lzIEx0ZAorMDAxQjY3ICAgICAoYmFzZSAxNikJCVViaXF1aXN5cyBMdGQKKwkJCQlUaGUgU3RlbGxhIEJ1aWxkaW5nCisJCQkJV2luZG1pbGwgSGlsbCBCdXNpbmVzcyBQYXJrCisJCQkJU3dpbmRvbiBXaWx0c2hpcmUgU041IDZOWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFCLTY4ICAgKGhleCkJCU1vZG5uZXQgQ28uLCBMdGQKKzAwMUI2OCAgICAgKGJhc2UgMTYpCQlNb2RubmV0IENvLiwgTHRkCisJCQkJMjEzOSBEYWVteXVuZy1Eb25nIERJUCBtYWluIEIvRCBSb29tIzUwNSwgTmFtZ3UKKwkJCQlEYWVndSBLeXVuZ3NhbmcgQm9va2RvIDcwNS03MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItNjkgICAoaGV4KQkJRXF1YWxpbmUgQ29ycG9yYXRpb24KKzAwMUI2OSAgICAgKGJhc2UgMTYpCQlFcXVhbGluZSBDb3Jwb3JhdGlvbgorCQkJCTlGLCBOby4gMjM0LCBTZWN0aW9uIDQsIENoZW5nLURlIFJvYWQsCisJCQkJVGFpcGVpIEhzaWVuIDI1MTYyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi02QSAgIChoZXgpCQlQb3dlcndhdmUgVGVjaG5vbG9naWVzIFN3ZWRlbiBBQgorMDAxQjZBICAgICAoYmFzZSAxNikJCVBvd2Vyd2F2ZSBUZWNobm9sb2dpZXMgU3dlZGVuIEFCCisJCQkJMTY0IDI2CisJCQkJS2lzdGEKKwkJCQlLbmFycmFybsOkc2dhdGFuIDcsIEtpc3RhICAKKwkJCQlTV0VERU4KKworMDAtMUItNkIgICAoaGV4KQkJU3d5eCBTb2x1dGlvbnMgQUcKKzAwMUI2QiAgICAgKGJhc2UgMTYpCQlTd3l4IFNvbHV0aW9ucyBBRworCQkJCUpvc2VwaC12b24tRnJhdW5ob2Zlci1zdHIuMTNhCisJCQkJRG9ydG11bmQgTlJXIDQ0MjI3CisJCQkJR0VSTUFOWQorCiswMC0xQi02QyAgIChoZXgpCQlMb29rWCBEaWdpdGFsIE1lZGlhIEJWCiswMDFCNkMgICAgIChiYXNlIDE2KQkJTG9va1ggRGlnaXRhbCBNZWRpYSBCVgorCQkJCVJvZWtlbnZlbGR3ZWcgMQorCQkJCUJydW5zc3VtIExpbWJ1cmcgNjQ0NkRLCisJCQkJTkVUSEVSTEFORFMKKworMDAtMUItNkQgICAoaGV4KQkJTWlkdHJvbmljcywgSW5jLgorMDAxQjZEICAgICAoYmFzZSAxNikJCU1pZHRyb25pY3MsIEluYy4KKwkJCQk3MDAwIE1vbnJvZSBTdC4KKwkJCQlXaWxsb3dicm9vayBJTCA2MDUyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNkUgICAoaGV4KQkJQW51ZSBTeXN0ZW1zLCBJbmMuCiswMDFCNkUgICAgIChiYXNlIDE2KQkJQW51ZSBTeXN0ZW1zLCBJbmMuCisJCQkJOTExMSBKb2xseXZpbGxlIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTZGICAgKGhleCkJCVRlbGV0cmFrIEx0ZAorMDAxQjZGICAgICAoYmFzZSAxNikJCVRlbGV0cmFrIEx0ZAorCQkJCTIxNCBLZXBhIFJvYWQKKwkJCQlNaXNzaW9uIEJheQorCQkJCUF1Y2tsYW5kICAxMDcxCisJCQkJTkVXIFpFQUxBTkQKKworMDAtMUItNzAgICAoaGV4KQkJSVJJIFViaXRlcSwgSU5DLgorMDAxQjcwICAgICAoYmFzZSAxNikJCUlSSSBVYml0ZXEsIElOQy4KKwkJCQlTaGluanVrdS1Ob211cmEgQmxkZy4gNDdGLAorCQkJCTEtMjYtMiBOaXNoaS1zaGluanVrdSwKKwkJCQlTaGluanVrdS1rdSBUb2t5byAxNjMtMDU0NworCQkJCUpBUEFOCisKKzAwLTFCLTcxICAgKGhleCkJCVRlbHVsYXIgQ29ycC4KKzAwMUI3MSAgICAgKGJhc2UgMTYpCQlUZWx1bGFyIENvcnAuCisJCQkJMzExIFNvdXRoIFdhY2tlciBEcml2ZQorCQkJCVN1aXRlIDQzMDAKKwkJCQlDaGljYWdvIElMIDYwNjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi03MiAgIChoZXgpCQlTaWNlcCBzLnAuYS4KKzAwMUI3MiAgICAgKGJhc2UgMTYpCQlTaWNlcCBzLnAuYS4KKwkJCQlWaWEgY2FsYWJyaWEsIDE0CisJCQkJQ2VydGFsZG8gIDUwMDUyCisJCQkJSVRBTFkKKworMDAtMUItNzMgICAoaGV4KQkJRFRMIEJyb2FkY2FzdCBMdGQKKzAwMUI3MyAgICAgKGJhc2UgMTYpCQlEVEwgQnJvYWRjYXN0IEx0ZAorCQkJCUpvaG5zb24ncyBFc3RhdGUKKwkJCQlTaWx2ZXJkYWxlIFJvYWQKKwkJCQlIQVlFUyBNaWRkbGVzZXggVUIzIDNCQQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFCLTc0ICAgKGhleCkJCU1pcmFMaW5rIENvcnBvcmF0aW9uCiswMDFCNzQgICAgIChiYXNlIDE2KQkJTWlyYUxpbmsgQ29ycG9yYXRpb24KKwkJCQkxMTEgU1cgNXRoIEF2ZS4KKwkJCQlTdGUuIDEwMDAKKwkJCQlQb3J0bGFuZCBPUiA5NzIwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItNzUgICAoaGV4KQkJSHlwZXJtZWRpYSBTeXN0ZW1zCiswMDFCNzUgICAgIChiYXNlIDE2KQkJSHlwZXJtZWRpYSBTeXN0ZW1zCisJCQkJMkIgQmVyZ21hbiBTdC4KKwkJCQlSYWJiaW4gSW5kdXN0cmlhbCBQYXJrCisJCQkJUmVob3ZvdCAgNzY3MDUKKwkJCQlJU1JBRUwKKworMDAtMUItNzYgICAoaGV4KQkJUmlwY29kZSwgSW5jLgorMDAxQjc2ICAgICAoYmFzZSAxNikJCVJpcGNvZGUsIEluYy4KKwkJCQkxMTMwIEUuIEFyYXBhaG8gUm9hZAorCQkJCVN1aXRlIDQzNQorCQkJCVJpY2hhcmRzb24gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTc3ICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxQjc3ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMUItNzggICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzAwMUI3OCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJbXMwNDA4MDEKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi03OSAgIChoZXgpCQlGQUlWRUxFWSBUUkFOU1BPUlQKKzAwMUI3OSAgICAgKGJhc2UgMTYpCQlGQUlWRUxFWSBUUkFOU1BPUlQKKwkJCQlaSSBkdSBib2lzIGRlIHBsYW50ZQorCQkJCXJ1ZSBhbWVsaWEgZWFyaGFydAorCQkJCUxBIFZJTExFIEFVWCBEQU1FUyAgMzc3MDAKKwkJCQlGUkFOQ0UKKworMDAtMUItN0EgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDFCN0EgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMUItN0IgICAoaGV4KQkJVGhlIFRpbnRvbWV0ZXIgTHRkCiswMDFCN0IgICAgIChiYXNlIDE2KQkJVGhlIFRpbnRvbWV0ZXIgTHRkCisJCQkJU29sYXIgV2F5CisJCQkJU29sc3RpY2UgUGFyaworCQkJCUFtZXNidXJ5IFdpbHRzaGlyZSBTUDQgN1NaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUItN0MgICAoaGV4KQkJQSAmIFIgQ2FtYnJpZGdlCiswMDFCN0MgICAgIChiYXNlIDE2KQkJQSAmIFIgQ2FtYnJpZGdlCisJCQkJUGVtYnJva2UgQXZlbnVlCisJCQkJV2F0ZXJiZWFjaAorCQkJCUNhbWJyaWRnZSBDQU1CUyBDQjI1IDlRUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFCLTdEICAgKGhleCkJCUNYUiBBbmRlcnNvbiBKYWNvYnNvbgorMDAxQjdEICAgICAoYmFzZSAxNikJCUNYUiBBbmRlcnNvbiBKYWNvYnNvbgorCQkJCVJ1ZSBkZSBsJ29ybmV0dGUKKwkJCQlBYm9uZGFudCAgMjg0MTAKKwkJCQlGUkFOQ0UKKworMDAtMUItN0UgICAoaGV4KQkJQmVja21hbm4gR21iSAorMDAxQjdFICAgICAoYmFzZSAxNikJCUJlY2ttYW5uIEdtYkgKKwkJCQlCcmFuZHRzdHIuIDEKKwkJCQlIb2V2ZWxob2YgTlJXIDMzMTYxCisJCQkJR0VSTUFOWQorCiswMC0xQi03RiAgIChoZXgpCQlUTU4gVGVjaG5vbG9naWVzIFRlbGVjb211bmljYWNvZXMgTHRkYQorMDAxQjdGICAgICAoYmFzZSAxNikJCVRNTiBUZWNobm9sb2dpZXMgVGVsZWNvbXVuaWNhY29lcyBMdGRhCisJCQkJUnVhIE5pbHphLCA0MjIKKwkJCQlTYW8gUGF1bG8gU1AgMDM2NTEtMTIwCisJCQkJQlJBWklMCisKKzAwLTFCLTgwICAgKGhleCkJCUxPUkQgQ29ycG9yYXRpb24KKzAwMUI4MCAgICAgKGJhc2UgMTYpCQlMT1JEIENvcnBvcmF0aW9uCisJCQkJMjAwMCBXZXN0IEdyYW5kdmlldyBCbHZkCisJCQkJRXJpZSBQYSAxNjUwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItODEgICAoaGV4KQkJREFUQVEgSW5zdHJ1bWVudHMsIEluYy4KKzAwMUI4MSAgICAgKGJhc2UgMTYpCQlEQVRBUSBJbnN0cnVtZW50cywgSW5jLgorCQkJCTI0MSBTcHJpbmdzaWRlIERyaXZlCisJCQkJQWtyb24gT2hpbyA0NDMzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItODIgICAoaGV4KQkJVGFpd2FuIFNlbWljb25kdWN0b3IgQ28uLCBMdGQuCiswMDFCODIgICAgIChiYXNlIDE2KQkJVGFpd2FuIFNlbWljb25kdWN0b3IgQ28uLCBMdGQuCisJCQkJMTFGLCBOby4gMjA1LCBTZWMuIDMsIEJlaXNoaW4gUmQsCisJCQkJU2hpbmRpYW4gVGFpcGVpIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItODMgICAoaGV4KQkJRmluc29mdCBMdGQKKzAwMUI4MyAgICAgKGJhc2UgMTYpCQlGaW5zb2Z0IEx0ZAorCQkJCTE2LTE4IEhhdHRvbiBHYXJkZW4KKwkJCQlMb25kb24gIEVDMU4gOEFUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUItODQgICAoaGV4KQkJU2NhbiBFbmdpbmVlcmluZyBUZWxlY29tCiswMDFCODQgICAgIChiYXNlIDE2KQkJU2NhbiBFbmdpbmVlcmluZyBUZWxlY29tCisJCQkJU3ZvYm9keSBzdHIuIDc1CisJCQkJVm9yb25lemggIDM5NDAzMAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xQi04NSAgIChoZXgpCQlNQU4gRGllc2VsIFNFCiswMDFCODUgICAgIChiYXNlIDE2KQkJTUFOIERpZXNlbCBTRQorCQkJCVRlZ2xob2xtc2dhZGUgNDEKKwkJCQlDb3BlbmhhZ2VuICAyNDUwCisJCQkJREVOTUFSSworCiswMC0xQi04NiAgIChoZXgpCQlCb3NjaCBBY2Nlc3MgU3lzdGVtcyBHbWJICiswMDFCODYgICAgIChiYXNlIDE2KQkJQm9zY2ggQWNjZXNzIFN5c3RlbXMgR21iSAorCQkJCUNoYXJsb3R0ZW5idXJnZXIgQWxsZWUgNTAgICAgICAgICAgICAKKwkJCQlBQUNIRU4gICAgRC01MjA2OCAKKwkJCQlHRVJNQU5ZCisKKzAwLTFCLTg3ICAgKGhleCkJCURlZXBzb3VuZCBUZWNoLiBDby4sIEx0ZAorMDAxQjg3ICAgICAoYmFzZSAxNikJCURlZXBzb3VuZCBUZWNoLiBDby4sIEx0ZAorCQkJCTNGIE5vLiA1NzYgU2VjLiAxLCBNaW5zaGVuZyBOLiBSZC4sIEd1ZWlzaGFuIFRvd25zaGlwLAorCQkJCVRhb3l1YW4gIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItODggICAoaGV4KQkJRGl2aW5ldCBBY2Nlc3MgVGVjaG5vbG9naWVzIEx0ZAorMDAxQjg4ICAgICAoYmFzZSAxNikJCURpdmluZXQgQWNjZXNzIFRlY2hub2xvZ2llcyBMdGQKKwkJCQk0dGggRmxvb3IsIE1lZGlhIENlbnRlciwKKwkJCQlTYWthYWwgTmFnYXIsIEJhbmVyIFJvYWQKKwkJCQlQdW5lIE1haGFyYXNodHJhIDQxMTAwNworCQkJCUlORElBCisKKzAwLTFCLTg5ICAgKGhleCkJCUVNWkEgVmlzdWFsIFNlbnNlIEx0ZC4KKzAwMUI4OSAgICAgKGJhc2UgMTYpCQlFTVpBIFZpc3VhbCBTZW5zZSBMdGQuCisJCQkJMjAgSGEndGEnYXMgU3QuLCBCZWl0aCBIYXBhbW9uCisJCQkJc3VpdGUgMzkxCisJCQkJS2ZhciBTYWJhICA0NDQyNQorCQkJCUlTUkFFTAorCiswMC0xQi04QSAgIChoZXgpCQkyTSBFbGVjdHJvbmljIEEvUworMDAxQjhBICAgICAoYmFzZSAxNikJCTJNIEVsZWN0cm9uaWMgQS9TCisJCQkJTWFsZXJ2ZWogMTAKKwkJCQlUYWFzdHJ1cCAgMjYzMAorCQkJCURFTk1BUksKKworMDAtMUItOEIgICAoaGV4KQkJTkVDIEFjY2Vzc1RlY2huaWNhLCBMdGQuCiswMDFCOEIgICAgIChiYXNlIDE2KQkJTkVDIEFjY2Vzc1RlY2huaWNhLCBMdGQuCisJCQkJODAwIFNoaW1vbWF0YQorCQkJCUtha2VnYXdhIFNoaXp1b2thIDQzNi04NTAxCisJCQkJSkFQQU4KKworMDAtMUItOEMgICAoaGV4KQkJSk1pY3JvbiBUZWNobm9sb2d5IENvcnAuCiswMDFCOEMgICAgIChiYXNlIDE2KQkJSk1pY3JvbiBUZWNobm9sb2d5IENvcnAuCisJCQkJMUYsIE5vLjEzLCBJbm5vdmF0aW9uIFJvYWQgMQorCQkJCUhzaW5jaHUgU2NpZW5jZSBQYXJrCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi04RCAgIChoZXgpCQlFbGVjdHJvbmljIENvbXB1dGVyIFN5c3RlbXMsIEluYy4KKzAwMUI4RCAgICAgKGJhc2UgMTYpCQlFbGVjdHJvbmljIENvbXB1dGVyIFN5c3RlbXMsIEluYy4KKwkJCQk0MTggRG9uZWdhbCBEcml2ZQorCQkJCVRvd3NvbiBNRCAyMTI4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItOEUgICAoaGV4KQkJSHVsdSBTd2VkZW4gQUIKKzAwMUI4RSAgICAgKGJhc2UgMTYpCQlIdWx1IFN3ZWRlbiBBQgorCQkJCUJveCAxMjMyOCwgMTAyMjgKKwkJCQlLaXN0YSBTdG9ja2hvbG0gMTY0IDQwCisJCQkJU1dFREVOCisKKzAwLTFCLThGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUI4RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTkwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUI5MCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0otTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTkxICAgKGhleCkJCUVGS09OIEFHCiswMDFCOTEgICAgIChiYXNlIDE2KQkJRUZLT04gQUcKKwkJCQlBbmRyaXR6ZXIgUmVpY2hzc3RyYXNzZSA2NgorCQkJCUdyYXogU3R5cmlhIDgwNDUKKwkJCQlBVVNUUklBCisKKzAwLTFCLTkyICAgKGhleCkJCWwtYWNvdXN0aWNzCiswMDFCOTIgICAgIChiYXNlIDE2KQkJbC1hY291c3RpY3MKKwkJCQlwYXJjIGRlIGxhIGZvbnRhaW5lIGRlIGpvdXZlbmNlCisJCQkJbWFyY291c3NpcyBlc3Nvbm5lIDkxNDYyCisJCQkJRlJBTkNFCisKKzAwLTFCLTkzICAgKGhleCkJCUpDIERlY2F1eCBTQSBETlQKKzAwMUI5MyAgICAgKGJhc2UgMTYpCQlKQyBEZWNhdXggU0EgRE5UCisJCQkJMjEgcnVlIGNsYXVkZSBCZXJuYXJkCisJCQkJTUFVUkVQQVMgIDc4MzEwCisJCQkJRlJBTkNFCisKKzAwLTFCLTk0ICAgKGhleCkJCVQuRS5NLkEuIFMucC5BLgorMDAxQjk0ICAgICAoYmFzZSAxNikJCVQuRS5NLkEuIFMucC5BLgorCQkJCXZpYSBkZWxsYSBTY2llbnphIDIxIEEvQworCQkJCUNhc3RlbG51b3ZvIFJhbmdvbmUgTW9kZW5hIDQxMDUxCisJCQkJSVRBTFkKKworMDAtMUItOTUgICAoaGV4KQkJVklERU8gU1lTVEVNUyBTUkwKKzAwMUI5NSAgICAgKGJhc2UgMTYpCQlWSURFTyBTWVNURU1TIFNSTAorCQkJCUxvYy4gR29yaXp6bywgMTYKKwkJCQkzMzAzMAorCQkJCUNBTUlOTyBBTCBUQUdMSUFNRU5UTyBVRCAKKwkJCQlJVEFMWQorCiswMC0xQi05NiAgIChoZXgpCQlHZW5lcmFsIFNlbnNpbmcKKzAwMUI5NiAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIFNlbnNpbmcKKwkJCQkxMDggTGluY29sbiBTdC4KKwkJCQlCb3N0b24gTUEgMDIxMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTk3ICAgKGhleCkJCVZpb2xpbiBUZWNobm9sb2dpZXMKKzAwMUI5NyAgICAgKGJhc2UgMTYpCQlWaW9saW4gVGVjaG5vbG9naWVzCisJCQkJMzMgV29vZCBBdmUgU291dGgKKwkJCQlJc2VsaW4gTkogMDg4MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLTk4ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDFCOTggICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUdVTUkgR3llb25nLUJ1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLTk5ICAgKGhleCkJCUtTIFN5c3RlbSBHbWJICiswMDFCOTkgICAgIChiYXNlIDE2KQkJS1MgU3lzdGVtIEdtYkgKKwkJCQlBbGV4YW5kZXJzdHIuIDM3CisJCQkJTXVlbGhlaW0gTlJXIDQ1NDcyCisJCQkJR0VSTUFOWQorCiswMC0xQi05QSAgIChoZXgpCQlBcG9sbG8gRmlyZSBEZXRlY3RvcnMgTHRkCiswMDFCOUEgICAgIChiYXNlIDE2KQkJQXBvbGxvIEZpcmUgRGV0ZWN0b3JzIEx0ZAorCQkJCTM2IEJyb29rc2lkZSBSb2FkCisJCQkJSGF2YW50IEhhbXBzaGlyZSBQMDkgMUpSCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUItOUIgICAoaGV4KQkJSG9zZS1NY0Nhbm4gQ29tbXVuaWNhdGlvbnMKKzAwMUI5QiAgICAgKGJhc2UgMTYpCQlIb3NlLU1jQ2FubiBDb21tdW5pY2F0aW9ucworCQkJCTEyNDEgV2VzdCBOZXdwb3J0IENlbnRlciBEcml2ZQorCQkJCURlZXJmaWVsZCBCZWFjaCBGTCAzMzQ0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItOUMgICAoaGV4KQkJU0FURUwgc3AuIHogby5vLgorMDAxQjlDICAgICAoYmFzZSAxNikJCVNBVEVMIHNwLiB6IG8uby4KKwkJCQlTY2h1YmVydGEgNzkKKwkJCQlHZGFuc2sgcG9tb3Jza2llIDgwLTE3MgorCQkJCVBPTEFORAorCiswMC0xQi05RCAgIChoZXgpCQlOb3Z1cyBTZWN1cml0eSBTcC4geiBvLm8uCiswMDFCOUQgICAgIChiYXNlIDE2KQkJTm92dXMgU2VjdXJpdHkgU3AuIHogby5vLgorCQkJCXVsLiBQdcKzYXdza2EgNDMxCisJCQkJV2Fyc2F3IHdvai4gbWF6b3dpZWNraWUgMDItODAxCisJCQkJUE9MQU5ECisKKzAwLTFCLTlFICAgKGhleCkJCUFTS0VZICBDT01QVVRFUiAgQ09SUAorMDAxQjlFICAgICAoYmFzZSAxNikJCUFTS0VZICBDT01QVVRFUiAgQ09SUAorCQkJCTEwRixOTy4xMTksQ0hJRU5LQU5HIFJELAorCQkJCUNIVU5HLUhPLFRQSVBFSSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi05RiAgIChoZXgpCQlDYWx5cHRlY2ggUHR5IEx0ZAorMDAxQjlGICAgICAoYmFzZSAxNikJCUNhbHlwdGVjaCBQdHkgTHRkCisJCQkJNS80ODYgTG93ZXIgSGVpZGVsYmVyZyBSb2FkCisJCQkJSGVpZGVsYmVyZyBWaWN0b3JpYSAzMDg0CisJCQkJQVVTVFJBTElBCisKKzAwLTFCLUEwICAgKGhleCkJCUF3b3gKKzAwMUJBMCAgICAgKGJhc2UgMTYpCQlBd294CisJCQkJOTMsIFBsYWNlIFBpZXJyZSBEdWhlbSwKKwkJCQlMZXMgQ2VudHVyaWVzCisJCQkJMzQwMDAgTW9udHBlbGxpZXIgCisJCQkJRlJBTkNFCisKKzAwLTFCLUExICAgKGhleCkJCcOD4oCmbWljIEFCCiswMDFCQTEgICAgIChiYXNlIDE2KQkJw4PigKZtaWMgQUIKKwkJCQlVcHBzYWxhIHNjaWVuY2UgcGFyaworCQkJCURhZyBIYW1tcnNrasODwrZsZHMgdsODwqRnIDUyIEIKKwkJCQlVcHBzYWxhICA3NTE4MworCQkJCVNXRURFTgorCiswMC0xQi1BMiAgIChoZXgpCQlJRFMgSW1hZ2luZyBEZXZlbG9wbWVudCBTeXN0ZW1zIEdtYkgKKzAwMUJBMiAgICAgKGJhc2UgMTYpCQlJRFMgSW1hZ2luZyBEZXZlbG9wbWVudCBTeXN0ZW1zIEdtYkgKKwkJCQlEaW1iYWNoZXIgU3RyLiA2CisJCQkJT2JlcnN1bG0gQlcgNzQxODIKKwkJCQlHRVJNQU5ZCisKKzAwLTFCLUEzICAgKGhleCkJCUZsZXhpdCBHcm91cCBHbWJICiswMDFCQTMgICAgIChiYXNlIDE2KQkJRmxleGl0IEdyb3VwIEdtYkgKKwkJCQlCcsODwqR1aGF1c3N0cmHDg8W4ZSAxNAorCQkJCVNhbHpidXJnIFNhbHpidXJnIDUwMjAKKwkJCQlBVVNUUklBCisKKzAwLTFCLUE0ICAgKGhleCkJCVMuQS5FIEFmaWtpbQorMDAxQkE0ICAgICAoYmFzZSAxNikJCVMuQS5FIEFmaWtpbQorCQkJCUtpYnV0eiBBZmlraW0KKwkJCQlLaWJ1dHogQWZpa2ltICAxNTE0OAorCQkJCUlTUkFFTAorCiswMC0xQi1BNSAgIChoZXgpCQlNeXVuZ01pbiBTeXN0ZW1zLCBJbmMuCiswMDFCQTUgICAgIChiYXNlIDE2KQkJTXl1bmdNaW4gU3lzdGVtcywgSW5jLgorCQkJCSM0MTAsRG9vc2FuIFZlbnR1cmUgRGltZSAyLWNoYSwxMzA3LTM3CisJCQkJS3dhbnlhbmctRG9uZywKKwkJCQlLeXVuZ2tpLWRvICA0MzEtMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLUE2ICAgKGhleCkJCWludG90ZWNoIGluYy4KKzAwMUJBNiAgICAgKGJhc2UgMTYpCQlpbnRvdGVjaCBpbmMuCisJCQkJIDEzRiBETUMgUiZEIENlbnRlciBFMy0yIEJ1aWxkaW5nIExhbmQgRGV2ZWxvcG1lbnQgRGlzdHJpY3QgU2FuZ2FtLURvbmcKKwkJCQlNYXBvZ3UgU2VvdWwgMTIxLTI3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi1BNyAgIChoZXgpCQlMb3JpY2EgU29sdXRpb25zCiswMDFCQTcgICAgIChiYXNlIDE2KQkJTG9yaWNhIFNvbHV0aW9ucworCQkJCTI3NSBOb3J0aHBvaW50ZSBQYXJrd2F5CisJCQkJQW1oZXJzdCBOWSAxNDIyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItQTggICAoaGV4KQkJVUJJJk1PQkksLkluYworMDAxQkE4ICAgICAoYmFzZSAxNikJCVVCSSZNT0JJLC5JbmMKKwkJCQkzRiwgRHVpZG8gQmxkZywgIzI4OC01LCBZYW5namFlLURvbmcKKwkJCQlTZW9jaG8tR3UgU2VvdWwgMTM3LTEzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi1BOSAgIChoZXgpCQlCUk9USEVSIElORFVTVFJJRVMsIExURC4KKzAwMUJBOSAgICAgKGJhc2UgMTYpCQlCUk9USEVSIElORFVTVFJJRVMsIExURC4KKwkJCQlQcmludGluZyAmIFNvbHV0aW9ucyBDb21wYW55LCBEZXZlbG9wbWVudCBNYW5hZ2VtZW50IERlcHQuCisJCQkJMTUtMSBOYWVzaGlyby1jaG8sIE1penVoby1rdQorCQkJCU5hZ295YSBBaWNoaSA0NjctODU2MQorCQkJCUpBUEFOCisKKzAwLTFCLUFBICAgKGhleCkJCVhlbklDcyBudgorMDAxQkFBICAgICAoYmFzZSAxNikJCVhlbklDcyBudgorCQkJCUFtYmFjaHRlbmxhYW4gNDQKKwkJCQlMZXV2ZW4gVmxhYW1zLUJyYWJhbnQgQi0zMDAxCisJCQkJQkVMR0lVTQorCiswMC0xQi1BQiAgIChoZXgpCQlUZWxjaGVteSwgSW5jb3Jwb3JhdGVkCiswMDFCQUIgICAgIChiYXNlIDE2KQkJVGVsY2hlbXksIEluY29ycG9yYXRlZAorCQkJCTI5MDUgUHJlbWllcmUgUGFya3dheQorCQkJCVN1aXRlIDI4MAorCQkJCUR1bHV0aCBHQSAzMDA5NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItQUMgICAoaGV4KQkJQ3VydGlzcyBXcmlnaHQgQ29udHJvbHMgRW1iZWRkZWQgQ29tcHV0aW5nCiswMDFCQUMgICAgIChiYXNlIDE2KQkJQ3VydGlzcyBXcmlnaHQgQ29udHJvbHMgRW1iZWRkZWQgQ29tcHV0aW5nCisJCQkJMTAyMDEgV2F0ZXJpZGdlIENpcmNsZQorCQkJCVN1aXRlIDMwMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItQUQgICAoaGV4KQkJaUNvbnRyb2wgSW5jb3Jwb3JhdGVkCiswMDFCQUQgICAgIChiYXNlIDE2KQkJaUNvbnRyb2wgSW5jb3Jwb3JhdGVkCisJCQkJMzIzNSBLaWZlciBSb2FkCisJCQkJU3VpdGUgMjYwCisJCQkJU2FudGEgQ2xhcmEgQ2FsaWZvcm5pYSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItQUUgICAoaGV4KQkJTWljcm8gQ29udHJvbCBTeXN0ZW1zLCBJbmMKKzAwMUJBRSAgICAgKGJhc2UgMTYpCQlNaWNybyBDb250cm9sIFN5c3RlbXMsIEluYworCQkJCTU4NzcgRW50ZXJwcmlzZSBQYXJrd2F5CisJCQkJRm9ydCBNeWVycyBGbG9yaWRhIDMzOTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1BRiAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxQkFGICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xQi1CMCAgIChoZXgpCQlCSEFSQVQgRUxFQ1RST05JQ1MKKzAwMUJCMCAgICAgKGJhc2UgMTYpCQlCSEFSQVQgRUxFQ1RST05JQ1MKKwkJCQlKQUxBSEFMTEkgUE9TVAorCQkJCUJBTkdBTE9SRSBLQVJOQVRBS0EgNTYwMDEzCisJCQkJSU5ESUEKKworMDAtMUItQjEgICAoaGV4KQkJV2lzdHJvbiBOZXdlYiBDb3JwLgorMDAxQkIxICAgICAoYmFzZSAxNikJCVdpc3Ryb24gTmV3ZWIgQ29ycC4KKwkJCQlOby4gMTAtMSwgTGktaHNpbiBSb2FkIEksIEhzaW5jaHUgU2NpZW5jZSBQYXJrLAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItQjIgICAoaGV4KQkJSW50ZWxsZWN0IEludGVybmF0aW9uYWwgTlYKKzAwMUJCMiAgICAgKGJhc2UgMTYpCQlJbnRlbGxlY3QgSW50ZXJuYXRpb25hbCBOVgorCQkJCUtsZWluZSBLbG9vc3RlcnN0cmFhdCAyMworCQkJCVphdmVudGVtIFZsYWFtc2UgYnJhYmFudCAxOTMyCisJCQkJQkVMR0lVTQorCiswMC0xQi1CMyAgIChoZXgpCQlDb25kYWxvIEdtYkgKKzAwMUJCMyAgICAgKGJhc2UgMTYpCQlDb25kYWxvIEdtYkgKKwkJCQlLb2hsc3RhdHQgMworCQkJCUxpY2h0ZW5hdSBCYXZhcmlhIDg2NzA2CisJCQkJR0VSTUFOWQorCiswMC0xQi1CNCAgIChoZXgpCQlBaXJ2b2QgTGltaXRlZAorMDAxQkI0ICAgICAoYmFzZSAxNikJCUFpcnZvZCBMaW1pdGVkCisJCQkJSGVhdGhlciBIb3VzZQorCQkJCUhlYXRoZXIgUm9hZAorCQkJCVNhbmR5Zm9yZCBJbmQgRXN0IER1YmxpbiAxOCBEMTgKKwkJCQlJUkVMQU5ECisKKzAwLTFCLUI1ICAgKGhleCkJCVpGIEVsZWN0cm9uaWNzIEdtYkgKKzAwMUJCNSAgICAgKGJhc2UgMTYpCQlaRiBFbGVjdHJvbmljcyBHbWJICisJCQkJQ2hlcnJ5c3RyYXNzZSAxCisJCQkJQXVlcmJhY2ggaS4gZC4gT3BmLiBCYXllcm4gRC05MTI3NQorCQkJCUdFUk1BTlkKKworMDAtMUItQjYgICAoaGV4KQkJQmlyZCBFbGVjdHJvbmljIENvcnAuCiswMDFCQjYgICAgIChiYXNlIDE2KQkJQmlyZCBFbGVjdHJvbmljIENvcnAuCisJCQkJMzAzMDMgQXVyb3JhIFJvYWQKKwkJCQlTb2xvbiBPaGlvIDQ0MTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1CNyAgIChoZXgpCQlBbHRhIEhlaWdodHMgVGVjaG5vbG9neSBDb3JwLgorMDAxQkI3ICAgICAoYmFzZSAxNikJCUFsdGEgSGVpZ2h0cyBUZWNobm9sb2d5IENvcnAuCisJCQkJMTA4IEFsdGEgSGVpZ2h0cyBDb3VydAorCQkJCUxvcyBHYXRvcyBDYWxpZm9ybmlhIDk1MDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1COCAgIChoZXgpCQlCTFVFV0FZIEVMRUNUUk9OSUMgQ087TFRECiswMDFCQjggICAgIChiYXNlIDE2KQkJQkxVRVdBWSBFTEVDVFJPTklDIENPO0xURAorCQkJCVdvcmtzaG9wIEIsRG9uZyBGZW5nIFZpbGxhZ2UsCisJCQkJRnJvbnQgQmFpeXVuLEd1IFRhbmcgQW8KKwkJCQlIdWlaaG91IEd1YW5nRG9uZyA1MTYwMDgKKwkJCQlDSElOQQorCiswMC0xQi1COSAgIChoZXgpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4KKzAwMUJCOSAgICAgKGJhc2UgMTYpCQlFbGl0ZWdyb3VwIENvbXB1dGVyIFN5c3RlbSBDby4KKwkJCQlOby4yMiwgQWxsZXkgMzgsIExhbmUgOTEgLCBTZWMuIDEgLCBOZWkgSHUgUm9hZAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1CQSAgIChoZXgpCQlOb3J0ZWwKKzAwMUJCQSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMUItQkIgICAoaGV4KQkJUkZUZWNoIENvLixMdGQKKzAwMUJCQiAgICAgKGJhc2UgMTYpCQlSRlRlY2ggQ28uLEx0ZAorCQkJCTMzOS0xNyBKd2FoYW5nLVJpLFdvbnNhbS1NeXVuLAorCQkJCUNoZW9pbi1HdQorCQkJCVlvbmdpbi1TaSBLeXVuZ2tpLURvIDQ0OS04NzEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUItQkMgICAoaGV4KQkJU2lsdmVyIFBlYWsgU3lzdGVtcywgSW5jLgorMDAxQkJDICAgICAoYmFzZSAxNikJCVNpbHZlciBQZWFrIFN5c3RlbXMsIEluYy4KKwkJCQk0NzEgRWwgQ2FtaW5vIFJlYWwKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItQkQgICAoaGV4KQkJRk1DIEtvbmdzYmVyZyBTdWJzZWEgQVMKKzAwMUJCRCAgICAgKGJhc2UgMTYpCQlGTUMgS29uZ3NiZXJnIFN1YnNlYSBBUworCQkJCUtpcmtlZ2FhcmRzdmVpZW4gNDUKKwkJCQlLb25nc2JlcmcgQnVza2VydWQgMzYwMQorCQkJCU5PUldBWQorCiswMC0xQi1CRSAgIChoZXgpCQlJQ09QIERpZ2l0YWwKKzAwMUJCRSAgICAgKGJhc2UgMTYpCQlJQ09QIERpZ2l0YWwKKwkJCQkxNjgwMSBXLiAxMTZ0aCBTdC4KKwkJCQlMZW5leGEgS1MgNjYyMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUJGICAgKGhleCkJCVNBR0VNIENPTU1VTklDQVRJT04KKzAwMUJCRiAgICAgKGJhc2UgMTYpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCisJCQkJMTQgUnVlIFBhdWwgRGF1dGllcgorCQkJCVbDqWxpenkgIDc4NDU3CisJCQkJRlJBTkNFCisKKzAwLTFCLUMwICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzAwMUJDMCAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItQzEgICAoaGV4KQkJSE9MVVggVGVjaG5vbG9neSwgSW5jLgorMDAxQkMxICAgICAoYmFzZSAxNikJCUhPTFVYIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxRiwgTm8uIDMwLCBSJkQgUmQuIElJLAorCQkJCVNjaWVuY2UtYmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1DMiAgIChoZXgpCQlJbnRlZ3JhdGVkIENvbnRyb2wgVGVjaG5vbG9neSBMaW1pdGllZAorMDAxQkMyICAgICAoYmFzZSAxNikJCUludGVncmF0ZWQgQ29udHJvbCBUZWNobm9sb2d5IExpbWl0aWVkCisJCQkJNkMgQXNjZW5zaW9uIFBsYWNlCisJCQkJTWFpcmFuZ2kgQmF5CisJCQkJQXVja2xhbmQgQXVja2xhbmQgMDczNQorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTFCLUMzICAgKGhleCkJCU1vYmlzb2x1dGlvbiBDby4sTHRkCiswMDFCQzMgICAgIChiYXNlIDE2KQkJTW9iaXNvbHV0aW9uIENvLixMdGQKKwkJCQk4NDgtMTYKKwkJCQlHdXllb25nLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLUM0ICAgKGhleCkJCVVsdHJhdGVjLCBJbmMuCiswMDFCQzQgICAgIChiYXNlIDE2KQkJVWx0cmF0ZWMsIEluYy4KKwkJCQk0NTAgU2NpZW5jZSBEcml2ZQorCQkJCU1hZGlzb24gV0kgNTM3MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUM1ICAgKGhleCkJCUlFRUUgUmVnaXN0cmF0aW9uIEF1dGhvcml0eQorMDAxQkM1ICAgICAoYmFzZSAxNikJCUlFRUUgUmVnaXN0cmF0aW9uIEF1dGhvcml0eQorCQkJCTQ0NSBIb2VzIExhbmUKKwkJCQlQaXNjYXRhd2F5IE5KIDA4ODU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1DNiAgIChoZXgpCQlTdHJhdG8gUmVjaGVuemVudHJ1bSBBRworMDAxQkM2ICAgICAoYmFzZSAxNikJCVN0cmF0byBSZWNoZW56ZW50cnVtIEFHCisJCQkJUGFzY2Fsc3RyYXNzZSAxMAorCQkJCUQtMTA1ODcgQmVybGluIAorCQkJCUdFUk1BTlkKKworMDAtMUItQzcgICAoaGV4KQkJU3RhclZlZGlhIFRlY2hub2xvZ3kgSW5jLgorMDAxQkM3ICAgICAoYmFzZSAxNikJCVN0YXJWZWRpYSBUZWNobm9sb2d5IEluYy4KKwkJCQkzRiwgTm8uIDI0NywgRG9uZSBTZWMuIDEsIEd1YW5nbWluZyA2dGggUmQuCisJCQkJSmh1YmVpIEhzaW4tQ2h1IENvdW50eSAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLUM4ICAgKGhleCkJCU1JVVJBIENPLixMVEQKKzAwMUJDOCAgICAgKGJhc2UgMTYpCQlNSVVSQSBDTy4sTFRECisJCQkJODY0LTEsSG9qeW90c3VqaQorCQkJCU1hdHN1eWFtYSBFaGltZSA3OTktMjQzMAorCQkJCUpBUEFOCisKKzAwLTFCLUM5ICAgKGhleCkJCUZTTiBESVNQTEFZIElOQworMDAxQkM5ICAgICAoYmFzZSAxNikJCUZTTiBESVNQTEFZIElOQworCQkJCUJhZWtzdWstRG9uZyAxMTQxLTEsIElsc2FuIFRlY2hubyBUb3duIDEwMDkKKwkJCQlLb3lhbmctU2ksIElsc2FuLUd1LCBLeWVvbmdnaS1EbywgUmVwdWJsaWMgb2YgS29yZWEKKwkJCQlLb3lhbmctc2kgS3llb25nZ2ktRG8gNDEwNzIyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFCLUNBICAgKGhleCkJCUJlaWppbmcgUnVuIFRlY2hub2xvZ3kgTFRELiBDb21wYW55CiswMDFCQ0EgICAgIChiYXNlIDE2KQkJQmVpamluZyBSdW4gVGVjaG5vbG9neSBMVEQuIENvbXBhbnkKKwkJCQk0L0YsIEhhbmd0aWFuIFRlY2hub2xvZ3kgQnVpbGRpbmcKKwkJCQlCZWlqaW5nIDEwMDAzNworCQkJCUNISU5BCisKKzAwLTFCLUNCICAgKGhleCkJCVBFTVBFSyBTWVNURU1TIFBUWSBMVEQKKzAwMUJDQiAgICAgKGJhc2UgMTYpCQlQRU1QRUsgU1lTVEVNUyBQVFkgTFRECisJCQkJVU5JVCAzIC8gMTMgSE9ZTEUgQVZFTlVFCisJCQkJQ0FTVExFIEhJTEwgTlNXIDIxNTQKKwkJCQlBVVNUUkFMSUEKKworMDAtMUItQ0MgICAoaGV4KQkJS0lOR1RFSyBDQ1RWIEFMTElBTkNFIENPLiwgTFRELgorMDAxQkNDICAgICAoYmFzZSAxNikJCUtJTkdURUsgQ0NUViBBTExJQU5DRSBDTy4sIExURC4KKwkJCQk1Ri0zLCBOTy4gMTA2LCBTRUMuIDMsIEhTSU4gWUkgUk9BRAorCQkJCVRBSVBFSSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1DRCAgIChoZXgpCQlEQVZJU0NPTU1TIChTKSBQVEUgTFRECiswMDFCQ0QgICAgIChiYXNlIDE2KQkJREFWSVNDT01NUyAoUykgUFRFIExURAorCQkJCUJsayA3MCBVYmkgQ3Jlc2NlbnQgIzAxLTA3CisJCQkJVWJpIFRlY2hwYXJrCisJCQkJNDA4NTcwCisJCQkJU0lOR0FQT1JFCisKKzAwLTFCLUNFICAgKGhleCkJCU1lYXN1cmVtZW50IERldmljZXMgTHRkCiswMDFCQ0UgICAgIChiYXNlIDE2KQkJTWVhc3VyZW1lbnQgRGV2aWNlcyBMdGQKKwkJCQlTaWx2ZXJidXJuIENyZXNjZW50CisJCQkJQnJpZGdlIG9mIERvbgorCQkJCUFiZXJkZWVuIEFiZXJkZWVuc2hpcmUgQUIyMyA4RVcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQi1DRiAgIChoZXgpCQlEYXRhdXBpYSBDb3Jwb3JhdGlvbgorMDAxQkNGICAgICAoYmFzZSAxNikJCURhdGF1cGlhIENvcnBvcmF0aW9uCisJCQkJT25lIEFsZXdpZmUgQ2VudGVyCisJCQkJQ2FtYnJpZGdlIE1BIDAyMTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQi1EMCAgIChoZXgpCQlJREVOVEVDIFNPTFVUSU9OUworMDAxQkQwICAgICAoYmFzZSAxNikJCUlERU5URUMgU09MVVRJT05TCisJCQkJSGVydHpzdHIuIDEwCisJCQkJV2VpbmhlaW0gIDY5NDY5CisJCQkJR0VSTUFOWQorCiswMC0xQi1EMSAgIChoZXgpCQlTT0dFU1RNQVRJQworMDAxQkQxICAgICAoYmFzZSAxNikJCVNPR0VTVE1BVElDCisJCQkJNDA5IFJvdXRlIGRlIGxhIEdhcmUKKwkJCQlDSEFURUFVTkVVRiBERSBHQURBR05FIFBBQ0EgODQ0NzAKKwkJCQlGUkFOQ0UKKworMDAtMUItRDIgICAoaGV4KQkJVUxUUkEtWCBBU0lBIFBBQ0lGSUMgSW5jLgorMDAxQkQyICAgICAoYmFzZSAxNikJCVVMVFJBLVggQVNJQSBQQUNJRklDIEluYy4KKwkJCQk1LTEtMTUgU290b2thbmRhCisJCQkJVG9reW8gQ2hpeW9kYS1rdSAxMDEtMDAyMQorCQkJCUpBUEFOCisKKzAwLTFCLUQzICAgKGhleCkJCU1hdHN1c2hpdGEgRWxlY3RyaWMgUGFuYXNvbmljIEFWQworMDAxQkQzICAgICAoYmFzZSAxNikJCU1hdHN1c2hpdGEgRWxlY3RyaWMgUGFuYXNvbmljIEFWQworCQkJCTEtMTUgTWF0c3VvLWNobworCQkJCTY3OC01MTgKKwkJCQlLYWRvbWEgT3Nha2EgNTcxLTg1MDQKKwkJCQlKQVBBTgorCiswMC0xQi1ENCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFCRDQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItRDUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQkQ1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUQ2ICAgKGhleCkJCUtlbHZpbiBIdWdoZXMgTHRkCiswMDFCRDYgICAgIChiYXNlIDE2KQkJS2VsdmluIEh1Z2hlcyBMdGQKKwkJCQlOZXcgTm9ydGggUm9hZAorCQkJCUhhaW5hdWx0CisJCQkJSWxmb3JkIEVzc2V4IElHNiAyVVIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQi1ENyAgIChoZXgpCQlTY2llbnRpZmljIEF0bGFudGEsIEEgQ2lzY28gQ29tcGFueQorMDAxQkQ3ICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMgQXRsYW50YSwgQSBDaXNjbyBDb21wYW55CisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCUFUTCAxLjMuNDczCisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItRDggICAoaGV4KQkJRFZUZWwgTFRECiswMDFCRDggICAgIChiYXNlIDE2KQkJRFZUZWwgTFRECisJCQkJNSBTYXBpcgorCQkJCTQ2ODUyIEhlcnplbGlhIAorCQkJCUlTUkFFTAorCiswMC0xQi1EOSAgIChoZXgpCQlFZGdld2F0ZXIgQ29tcHV0ZXIgU3lzdGVtcworMDAxQkQ5ICAgICAoYmFzZSAxNikJCUVkZ2V3YXRlciBDb21wdXRlciBTeXN0ZW1zCisJCQkJMTEyNSBJbm5vdmF0aW9uIERyaXZlCisJCQkJT3R0YXdhIE9udGFyaW8gSzJLLTNHNgorCQkJCUNBTkFEQQorCiswMC0xQi1EQSAgIChoZXgpCQlVVFN0YXJjb20gSW5jCiswMDFCREEgICAgIChiYXNlIDE2KQkJVVRTdGFyY29tIEluYworCQkJCTEyNzUgSGFyYm9yIEJheSBQS1dZCisJCQkJQWxhbWVkYSBDQSA5NDUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItREIgICAoaGV4KQkJVmFsZW8gVkVDUworMDAxQkRCICAgICAoYmFzZSAxNikJCVZhbGVvIFZFQ1MKKwkJCQkyIEF2ZW51ZSBGZXJuYW5kIFBvdWlsbG9uCisJCQkJRXVyb3BhcmMKKwkJCQlDUkVURUlMIElsZSBkZSBGcmFuY2UgOTQwNDIKKwkJCQlGUkFOQ0UKKworMDAtMUItREMgICAoaGV4KQkJVmVuY2VyIENvLiwgTHRkLgorMDAxQkRDICAgICAoYmFzZSAxNikJCVZlbmNlciBDby4sIEx0ZC4KKwkJCQkyMEYtMSwgTm8uNzcsIFNlYy4xLCBIc2luIFRhaSBXdSBSZC4sCisJCQkJSHNpIENoaWggVGFpcGVpIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItREQgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDFCREQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItREUgICAoaGV4KQkJUmVua3VzLUhlaW56LCBJbmMuCiswMDFCREUgICAgIChiYXNlIDE2KQkJUmVua3VzLUhlaW56LCBJbmMuCisJCQkJMTkyMDEgQ29vayBTdC4KKwkJCQlGb290aGlsbCBSYW5jaCBDQSA5MjYxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItREYgICAoaGV4KQkJSXNrcmEgTUlTCiswMDFCREYgICAgIChiYXNlIDE2KQkJSXNrcmEgTUlTCisJCQkJTGp1YmxqYW5za2EgY2VzdGEgMjRhCisJCQkJS3JhbmogU2xvdmVuaWEgNDAwMAorCQkJCVNMT1ZFTklBCisKKzAwLTFCLUUwICAgKGhleCkJCVRFTEVOT1QgRUxFQ1RST05JQyBHbWJICiswMDFCRTAgICAgIChiYXNlIDE2KQkJVEVMRU5PVCBFTEVDVFJPTklDIEdtYkgKKwkJCQlXaWVzZW50YWxzdHJhw4PFuGUgNDIKKwkJCQlBYWxlbiBCYWRlbi1Xw4PCvHJ0dGVtYmVyZyA3MzQzNAorCQkJCUdFUk1BTlkKKworMDAtMUItRTEgICAoaGV4KQkJVmlhTG9neQorMDAxQkUxICAgICAoYmFzZSAxNikJCVZpYUxvZ3kKKwkJCQkyNDAwIExpbmNvbG4gQXZlCisJCQkJQWx0YWRlbmEgQ0EgOTEwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUUyICAgKGhleCkJCUFobkxhYixJbmMuCiswMDFCRTIgICAgIChiYXNlIDE2KQkJQWhuTGFiLEluYy4KKwkJCQk2dGggRmwsIENDTU0gQmxkZywgMTIgWWVvdWlkby1kb25nCisJCQkJU2VvdWwgIDE1MDg2OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi1FMyAgIChoZXgpCQlIZWFsdGggSGVybyBOZXR3b3JrLCBJbmMuCiswMDFCRTMgICAgIChiYXNlIDE2KQkJSGVhbHRoIEhlcm8gTmV0d29yaywgSW5jLgorCQkJCTIwMDAgU2VhcG9ydCBCbHZkLgorCQkJCVN1aXRlIDQwMAorCQkJCVJlZHdvb2QgQ2l0eSBDQSA5NDA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItRTQgICAoaGV4KQkJVE9XTkVUIFNSTAorMDAxQkU0ICAgICAoYmFzZSAxNikJCVRPV05FVCBTUkwKKwkJCQlWSUEgREVJIEZJTkFMRSwgMjAKKwkJCQk2MTA0MyBDQUdMSSAoUFUpIAorCQkJCUlUQUxZCisKKzAwLTFCLUU1ICAgKGhleCkJCTgwMmF1dG9tYXRpb24gTGltaXRlZAorMDAxQkU1ICAgICAoYmFzZSAxNikJCTgwMmF1dG9tYXRpb24gTGltaXRlZAorCQkJCTE4IEZpcnN0IEF2ZW51ZQorCQkJCVdvcnRoaW5nIFdlc3QgU3Vzc2V4IEJOMTQgOU5KCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUItRTYgICAoaGV4KQkJVlIgQUcKKzAwMUJFNiAgICAgKGJhc2UgMTYpCQlWUiBBRworCQkJCVLDvHRpc3RyYXNzZSAxOAorCQkJCVNjaGxpZXJlbiAgQ0gtODk1MgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFCLUU3ICAgKGhleCkJCVBvc3RlayBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMUJFNyAgICAgKGJhc2UgMTYpCQlQb3N0ZWsgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJU3VpdGUgNTEwLCBTaGFuZ2hhbmcgQnVpbGRpbmcKKwkJCQlIb25nbGkgUm9hZAorCQkJCVNoZW4gWmhlbiBHdWFuZyBEb25nIDUxODAyOAorCQkJCUNISU5BCisKKzAwLTFCLUU4ICAgKGhleCkJCVVsdHJhdHJvbmlrIEdtYkgKKzAwMUJFOCAgICAgKGJhc2UgMTYpCQlVbHRyYXRyb25payBHbWJICisJCQkJR2V3ZXJiZXN0ci4gNTIKKwkJCQlIZXJyc2NoaW5nIEJhdmFyaWEgRC04MjIxMQorCQkJCUdFUk1BTlkKKworMDAtMUItRTkgICAoaGV4KQkJQnJvYWRjb20gQ29ycG9yYXRpb24KKzAwMUJFOSAgICAgKGJhc2UgMTYpCQlCcm9hZGNvbSBDb3Jwb3JhdGlvbgorCQkJCTE2MjE1IEFsdG9uIFBhcmt3YXkKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUVBICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAxQkVBICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFCLUVCICAgKGhleCkJCURNUCBFbGVjdHJvbmljcyBJTkMuCiswMDFCRUIgICAgIChiYXNlIDE2KQkJRE1QIEVsZWN0cm9uaWNzIElOQy4KKwkJCQk4Ri4sIE5vLjEyLCBXdWN5dWFuIDd0aCBSZC4KKwkJCQlXdWd1IFRvd25zaGlwCisJCQkJVGFpcGVpIENvdW50eSAgMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1FQyAgIChoZXgpCQlOZXRpbyBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKzAwMUJFQyAgICAgKGJhc2UgMTYpCQlOZXRpbyBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKwkJCQk0Ri0xLCBOby4gNTgyLCBSdWVpZ3VhbmcgUmQuLCBOZWlodSBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTE0OTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFCLUVEICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCiswMDFCRUQgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUItRUUgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUJFRSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUItRUYgICAoaGV4KQkJQmxvc3NvbXMgRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQuCiswMDFCRUYgICAgIChiYXNlIDE2KQkJQmxvc3NvbXMgRGlnaXRhbCBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJQkxLMjUsSGVuZ2ZlbmcgSW5kLkNpdHksSGV6aG91CisJCQkJWGl4aWFuZyBUb3duCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyNgorCQkJCUNISU5BCisKKzAwLTFCLUYwICAgKGhleCkJCVZhbHVlIFBsYXRmb3JtcyBMaW1pdGVkCiswMDFCRjAgICAgIChiYXNlIDE2KQkJVmFsdWUgUGxhdGZvcm1zIExpbWl0ZWQKKwkJCQlSbSA3MTItNzEzLCBCdWlsZGluZyA5LCA1LCBTY2llbmNlIFBhcmsgV2VzdCBBdmUuLAorCQkJCUhvbmcgS29uZyBTY2llbmNlIFBhcmssCisJCQkJU2hhdGluLCAgCisJCQkJSE9ORyBLT05HCisKKzAwLTFCLUYxICAgKGhleCkJCU5hbmppbmcgU2lsdmVyTmV0IFNvZnR3YXJlIENvLiwgTHRkLgorMDAxQkYxICAgICAoYmFzZSAxNikJCU5hbmppbmcgU2lsdmVyTmV0IFNvZnR3YXJlIENvLiwgTHRkLgorCQkJCTMvRiwgMTAgYnVpbGRpbmcsIE5hbmppbmcgV29ybGQgV2luZG93IFRlY2hub2xvZ3kgJiBTb2Z0d2FyZSBQYXJrCisJCQkJMTIgRGluZ0h1YWlNZW4sIEd1bG91IERpc3RyaWN0LCBOYW5qaW5nCisJCQkJTmFuamluZyBKaWFuZ3N1IDIxMDAxMworCQkJCUNISU5BCisKKzAwLTFCLUYyICAgKGhleCkJCUtXT1JMRCBDT01QVVRFUiBDTy4sIExURAorMDAxQkYyICAgICAoYmFzZSAxNikJCUtXT1JMRCBDT01QVVRFUiBDTy4sIExURAorCQkJCU5vLiAxMTMsIEppYW4gMm5kIFJkLiwKKwkJCQlKaG9uZ2hlIFRhaXBlaSBjb3VudHkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1GMyAgIChoZXgpCQlUUkFOU1JBRElPIFNlbmRlclN5c3RlbWUgQmVybGluIEFHCiswMDFCRjMgICAgIChiYXNlIDE2KQkJVFJBTlNSQURJTyBTZW5kZXJTeXN0ZW1lIEJlcmxpbiBBRworCQkJCU1lcnRlbnNzdHJhc3NlIDYzCisJCQkJQmVybGluIDEzNTg3CisJCQkJR0VSTUFOWQorCiswMC0xQi1GNCAgIChoZXgpCQlLRU5XSU4gSU5EVVNUUklBTChISykgTFRELgorMDAxQkY0ICAgICAoYmFzZSAxNikJCUtFTldJTiBJTkRVU1RSSUFMKEhLKSBMVEQuCisJCQkJUk0uMTUxMiAxNS9GIFNIQVRJTiBHQUxMRVJJQQorCQkJCTE4LTI0IFNIQU4gTUVJIFNULCBGT1RBTgorCQkJCUhPTkcgS09ORworCiswMC0xQi1GNSAgIChoZXgpCQlUZWxsaW5rIFNpc3RlbWFzIGRlIFRlbGVjb211bmljYWNpw7NuIFMuTC4KKzAwMUJGNSAgICAgKGJhc2UgMTYpCQlUZWxsaW5rIFNpc3RlbWFzIGRlIFRlbGVjb211bmljYWNpw7NuIFMuTC4KKwkJCQlDLyBNYXLDrWEgVHViYXUgTsK6IDUgQmFqbyBCCisJCQkJTWFkcmlkICAyODA1MAorCQkJCVNQQUlOCisKKzAwLTFCLUY2ICAgKGhleCkJCUNPTldJU0UgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbiBMdGQuCiswMDFCRjYgICAgIChiYXNlIDE2KQkJQ09OV0lTRSBUZWNobm9sb2d5IENvcnBvcmF0aW9uIEx0ZC4KKwkJCQkyRiBOby40NCwgUGFyayBBdmUuIDIsIEhzaW5jaHUgU2NpZW5jZSBQYXJrCisJCQkJSHNpbmNodSBDaXR5ICAzMDA3NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUItRjcgICAoaGV4KQkJTHVuZCBJUCBQcm9kdWN0cyBBQgorMDAxQkY3ICAgICAoYmFzZSAxNikJCUx1bmQgSVAgUHJvZHVjdHMgQUIKKwkJCQlEYWxieXYuIDEKKwkJCQlMdW5kIFNrYW5lIDIyNCA2MAorCQkJCVNXRURFTgorCiswMC0xQi1GOCAgIChoZXgpCQlEaWdpdHJheCBJbmMuCiswMDFCRjggICAgIChiYXNlIDE2KQkJRGlnaXRyYXggSW5jLgorCQkJCTI0NDMgVHJhbnNtaXR0ZXIgUmQsCisJCQkJU3VpdGUgMjA2CisJCQkJUGFuYW1hIENpdHkgRkwgMzI0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFCLUY5ICAgKGhleCkJCUludGVsbGl0ZWN0IFdhdGVyIEx0ZAorMDAxQkY5ICAgICAoYmFzZSAxNikJCUludGVsbGl0ZWN0IFdhdGVyIEx0ZAorCQkJCVN1aXRlIDE5LCBCYXNlcG9pbnQgQnVzaW5lc3MgQ2VudHJlCisJCQkJQXZpYXRpb24gUGFyayBXZXN0CisJCQkJQ2hyaXN0Y2h1cmNoIERvcnNldCBCSDIzIF5OVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFCLUZBICAgKGhleCkJCUcuaS5OLiBtYkgKKzAwMUJGQSAgICAgKGJhc2UgMTYpCQlHLmkuTi4gbWJICisJCQkJUmFpZmZlaXNlbnN0ci4gMTUKKwkJCQlHcmllc2hlaW0gSGVzc2VuIDY0MzQ3CisJCQkJR0VSTUFOWQorCiswMC0xQi1GQiAgIChoZXgpCQlBbHBzIEVsZWN0cmljIENvLiwgTHRkCiswMDFCRkIgICAgIChiYXNlIDE2KQkJQWxwcyBFbGVjdHJpYyBDby4sIEx0ZAorCQkJCTEtMi0xLCBPa2lub3VjaGkKKwkJCQlTb21hLWNpdHkgRnVrdXNoaW1hLS1wcmVmIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMUItRkMgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCiswMDFCRkMgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdQorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1GRCAgIChoZXgpCQlEaWduc3lzIEluYy4KKzAwMUJGRCAgICAgKGJhc2UgMTYpCQlEaWduc3lzIEluYy4KKwkJCQkxNEYsIERpZ2l0YWwgRW1waXJlIEJsZGcuLCBCLTE0MDgKKwkJCQlZZW9uZ3RvbmctZ3UsCisJCQkJU3V3b24gR3llb25nZ2ktZG8gNDQzLTgxMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQi1GRSAgIChoZXgpCQlaYXZpbyBJbmMuCiswMDFCRkUgICAgIChiYXNlIDE2KQkJWmF2aW8gSW5jLgorCQkJCU5vLjEsTGlzaW5nIDFzdCBSZC4gU2NpZW5jZSBCYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQi1GRiAgIChoZXgpCQlNaWxsZW5uaWEgTWVkaWEgaW5jLgorMDAxQkZGICAgICAoYmFzZSAxNikJCU1pbGxlbm5pYSBNZWRpYSBpbmMuCisJCQkJNDIwMCBEYXkgU3ByaW5nIENUCisJCQkJUGxhY2VydmlsbGUgQ0EgOTU2NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTAwICAgKGhleCkJCUVudHJ5IFBvaW50LCBMTEMKKzAwMUMwMCAgICAgKGJhc2UgMTYpCQlFbnRyeSBQb2ludCwgTExDCisJCQkJUC5PLiBCb3ggMzM1NAorCQkJCTkzMCBFYXN0IExpbmNvbG4gUm9hZAorCQkJCUlkYWhvIEZhbGxzIElkYWhvIDgzNDAzLTMzNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTAxICAgKGhleCkJCUFCQiBPeSBEcml2ZXMKKzAwMUMwMSAgICAgKGJhc2UgMTYpCQlBQkIgT3kgRHJpdmVzCisJCQkJSGlvbW90aWUgMTMKKwkJCQlIZWxzaW5raSAgRkktMDAzODAKKwkJCQlGSU5MQU5ECisKKzAwLTFDLTAyICAgKGhleCkJCVBhbm8gTG9naWMKKzAwMUMwMiAgICAgKGJhc2UgMTYpCQlQYW5vIExvZ2ljCisJCQkJMjAwMCBTZWFwb3J0IERyaXZlLCBTdWl0ZSAyMDAKKwkJCQlTdWl0ZSAyMDAKKwkJCQlSZWR3b29kIENpdHkgQ0EgOTQwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTAzICAgKGhleCkJCUJldHR5IFRWIFRlY2hub2xvZ3kgQUcKKzAwMUMwMyAgICAgKGJhc2UgMTYpCQlCZXR0eSBUViBUZWNobm9sb2d5IEFHCisJCQkJSGFyZHR1cm1zdHJhc3NlIDIKKwkJCQladXJpY2ggIDgwMDA1CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUMtMDQgICAoaGV4KQkJQWlyZ2FpbiwgSW5jLgorMDAxQzA0ICAgICAoYmFzZSAxNikJCUFpcmdhaW4sIEluYy4KKwkJCQkxOTMwIFBhbG9tYXIgUG9pbnQgV2F5CisJCQkJU3VpdGUgMTA3CisJCQkJQ2FybHNiYWQgQ0EgOTIwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTA1ICAgKGhleCkJCU5vbmluIE1lZGljYWwgSW5jLgorMDAxQzA1ICAgICAoYmFzZSAxNikJCU5vbmluIE1lZGljYWwgSW5jLgorCQkJCTEzNzAwIDFzdCBBdmVudWUgTm9ydGgKKwkJCQlQbHltb3V0aCBNTiA1NTQ0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMDYgICAoaGV4KQkJU2llbWVucyBOdW1lcmljYWwgQ29udHJvbCBMdGQuLCBOYW5qaW5nCiswMDFDMDYgICAgIChiYXNlIDE2KQkJU2llbWVucyBOdW1lcmljYWwgQ29udHJvbCBMdGQuLCBOYW5qaW5nCisJCQkJTm8uIDE4IFNpZW1lbnMgUm9hZCwgSmlhbmduaW5nIERldmVsb3BtZW50IFpvbmUKKwkJCQlOYW5qaW5nIEppYW5nU3UgMjExMTAwCisJCQkJQ0hJTkEKKworMDAtMUMtMDcgICAoaGV4KQkJQ3dsaW51eCBMaW1pdGVkCiswMDFDMDcgICAgIChiYXNlIDE2KQkJQ3dsaW51eCBMaW1pdGVkCisJCQkJVW5pdCAxMzgsIDEzL0YsIFdlc3dpY2sgQ29tbWVyY2lhbCBCdWlsZGluZywKKwkJCQkxNDctMTUxIFF1ZWVuJ3MgUm9hZCBFYXN0LAorCQkJCVdhbiBDaGFpICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUMtMDggICAoaGV4KQkJRWNobzM2MCwgSW5jLgorMDAxQzA4ICAgICAoYmFzZSAxNikJCUVjaG8zNjAsIEluYy4KKwkJCQkyMTAwMCBBdGxhbnRpYyBCbHZkCisJCQkJU3VpdGUgNjAwCisJCQkJRHVsbGVzIFZBIDIwMTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0wOSAgIChoZXgpCQlTQUUgRWxlY3Ryb25pYyBDby4sTHRkLgorMDAxQzA5ICAgICAoYmFzZSAxNikJCVNBRSBFbGVjdHJvbmljIENvLixMdGQuCisJCQkJMjMvRixZaW5nIExvbmcgWmhhbiBZZSBCdWlsZGluZywKKwkJCQlOby42MDI1LCBTaGVuIE5hbiBSb2FkLEZ1dGlhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nIERvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworMDAtMUMtMEEgICAoaGV4KQkJU2hlbnpoZW4gQUVFIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMUMwQSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBBRUUgVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTFzdCBGbG9vciBCIEJ1aWxkaW5nLCBTaGVuemhlbiwKKwkJCQlUc2luZ2h1YSBIaS1UZWNoIFBhcmssIE5hbnNoYW4gSGktVGVjaCBQYXJrIE5vcnRoLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xQy0wQiAgIChoZXgpCQlTbWFydEFudCBUZWxlY29tCiswMDFDMEIgICAgIChiYXNlIDE2KQkJU21hcnRBbnQgVGVsZWNvbQorCQkJCTJGLCBOby4gNjY5LCBTZWMuIDQsIENodW5nIEhzaW5nIFJkLiwgQ2h1dHVuZworCQkJCUhzaW5jaHUgIDMxMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtMEMgICAoaGV4KQkJVEFOSVRBIENvcnBvcmF0aW9uCiswMDFDMEMgICAgIChiYXNlIDE2KQkJVEFOSVRBIENvcnBvcmF0aW9uCisJCQkJMS0xNC0yLE1hZW5vLWNobworCQkJCUl0YWJhc2hpLWt1CisJCQkJVG9reW8gIDE3NC04NjMwCisJCQkJSkFQQU4KKworMDAtMUMtMEQgICAoaGV4KQkJRy1UZWNobm9sb2d5LCBJbmMuCiswMDFDMEQgICAgIChiYXNlIDE2KQkJRy1UZWNobm9sb2d5LCBJbmMuCisJCQkJMTY1MyBTdGFuZm9yZCBTdHJlZXQKKwkJCQlTYW50YSBNb25pY2EgQ0EgOTA0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTBFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUMwRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0wRiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFDMEYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMTAgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCiswMDFDMTAgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0xMSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxQzExICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMTIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUMxMiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVUyA0NQorCQkJCUxpYmVydHl2aWxsZSBJbGxpbm9pcyA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMTMgICAoaGV4KQkJT1BUU1lTIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDFDMTMgICAgIChiYXNlIDE2KQkJT1BUU1lTIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJU1VJVEUgQi04MDIgQlVOREFORyBURUNITk8gUEFSSworCQkJCVlBVEFQLURPTkcsIEJVTkRBTkctS1UKKwkJCQlTRU9OR05BTS1TSSBHWUVPTkdHSS1ETyA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTE0ICAgKGhleCkJCVZNd2FyZSwgSW5jCiswMDFDMTQgICAgIChiYXNlIDE2KQkJVk13YXJlLCBJbmMKKwkJCQkzNDAxIEhpbGx2aWV3IEF2ZW51ZQorCQkJCVBhbG8gQWx0byBDQSA5NDMwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMTUgICAoaGV4KQkJVFhQIENvcnBvcmF0aW9uCiswMDFDMTUgICAgIChiYXNlIDE2KQkJVFhQIENvcnBvcmF0aW9uCisJCQkJMTI5OSBDb21tZXJjZSBEci4KKwkJCQlSaWNoYXJkc29uIFRleGFzIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0xNiAgIChoZXgpCQlUaHlzc2VuS3J1cHAgRWxldmF0b3IKKzAwMUMxNiAgICAgKGJhc2UgMTYpCQlUaHlzc2VuS3J1cHAgRWxldmF0b3IKKwkJCQk5MjgwIENyZXN0d3luIEhpbGxzIERyaXZlCisJCQkJTWVtcGhpcyBUTiAzODEyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMTcgICAoaGV4KQkJTm9ydGVsCiswMDFDMTcgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTFDLTE4ICAgKGhleCkJCVNpY2VydCBTLnIuTC4KKzAwMUMxOCAgICAgKGJhc2UgMTYpCQlTaWNlcnQgUy5yLkwuCisJCQkJVmlhIEJlcm5hcmRpbm8gQWxpbWVuYSwgMTI4CisJCQkJUm9tZSAgMDAxNzMKKwkJCQlJVEFMWQorCiswMC0xQy0xOSAgIChoZXgpCQlzZWN1bmV0IFNlY3VyaXR5IE5ldHdvcmtzIEFHCiswMDFDMTkgICAgIChiYXNlIDE2KQkJc2VjdW5ldCBTZWN1cml0eSBOZXR3b3JrcyBBRworCQkJCUtyb25wcmluemVuc3RyYcODxbhlIDMwCisJCQkJRXNzZW4gTlJXIDQ1MTI4CisJCQkJR0VSTUFOWQorCiswMC0xQy0xQSAgIChoZXgpCQlUaG9tYXMgSW5zdHJ1bWVudGF0aW9uLCBJbmMKKzAwMUMxQSAgICAgKGJhc2UgMTYpCQlUaG9tYXMgSW5zdHJ1bWVudGF0aW9uLCBJbmMKKwkJCQkxMzMgTGFuZGluZyBSZAorCQkJCUNhcGUgTWF5IENvdXJ0IEhvdXNlIE5KIDA4MjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0xQiAgIChoZXgpCQlIeXBlcnN0b25lIEdtYkgKKzAwMUMxQiAgICAgKGJhc2UgMTYpCQlIeXBlcnN0b25lIEdtYkgKKwkJCQlMaW5lLUVpZC1TdHIuIDMKKwkJCQlLb25zdGFueiBCYWRlbi1Xw7xydHRlbWJlcmcgNzg0NjcKKwkJCQlHRVJNQU5ZCisKKzAwLTFDLTFDICAgKGhleCkJCUNlbnRlciBDb21tdW5pY2F0aW9uIFN5c3RlbXMgR21iSAorMDAxQzFDICAgICAoYmFzZSAxNikJCUNlbnRlciBDb21tdW5pY2F0aW9uIFN5c3RlbXMgR21iSAorCQkJCUlnbmF6LUtvZWNrLVN0cmFzc2UgMTkKKwkJCQlWaWVubmEgIEEtMTIxMAorCQkJCUFVU1RSSUEKKworMDAtMUMtMUQgICAoaGV4KQkJQ0hFTlpIT1UgR09TUEVMTCBESUdJVEFMIFRFQ0hOT0xPR1kgQ08uLExURAorMDAxQzFEICAgICAoYmFzZSAxNikJCUNIRU5aSE9VIEdPU1BFTEwgRElHSVRBTCBURUNITk9MT0dZIENPLixMVEQKKwkJCQlCQUlMVVRBTkcsU1VYSUFOIERJU1RSSUNULAorCQkJCUNIRU5aSE9VIEhVTkFOIDQyMzAyNQorCQkJCUNISU5BCisKKzAwLTFDLTFFICAgKGhleCkJCWVtdHJpb24gR21iSAorMDAxQzFFICAgICAoYmFzZSAxNikJCWVtdHJpb24gR21iSAorCQkJCUdyZXNjaGJhY2hzdHJhc3NlIDEyCisJCQkJS2FybHNydWhlIEJhZGVuIFd1ZXJ0dGVtYmVyZyA3NjIyOQorCQkJCUdFUk1BTlkKKworMDAtMUMtMUYgICAoaGV4KQkJUXVlc3QgUmV0YWlsIFRlY2hub2xvZ3kgUHR5IEx0ZAorMDAxQzFGICAgICAoYmFzZSAxNikJCVF1ZXN0IFJldGFpbCBUZWNobm9sb2d5IFB0eSBMdGQKKwkJCQkzNy0zOSBXYWxzaCBTdHJlZXQKKwkJCQlUaGViYXJ0b24gU0EgNTAzMQorCQkJCUFVU1RSQUxJQQorCiswMC0xQy0yMCAgIChoZXgpCQlDTEIgQmVuZWx1eAorMDAxQzIwICAgICAoYmFzZSAxNikJCUNMQiBCZW5lbHV4CisJCQkJUmFtZ2F0c2V3ZWcgMTcKKwkJCQlSYWFtc2RvbmtzdmVlciBOQlIgNDk0MSBWTgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTFDLTIxICAgKGhleCkJCU51Y3NhZmUgSW5jLgorMDAxQzIxICAgICAoYmFzZSAxNikJCU51Y3NhZmUgSW5jLgorCQkJCTYwMSBPYWsgUmlkZ2UgVHVybnBpa2UKKwkJCQlPYWsgUmlkZ2UgVGVubmVzc2VlIDM3ODMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0yMiAgIChoZXgpCQlBZXJpcyBFbGV0dHJvbmljYSBzLnIubC4KKzAwMUMyMiAgICAgKGJhc2UgMTYpCQlBZXJpcyBFbGV0dHJvbmljYSBzLnIubC4KKwkJCQlab25hIEluZC5sZSBWYWxsZWN1cGEKKwkJCQlDb2xvbm5lbGxhIFRlcmFtbyA2NDAxMAorCQkJCUlUQUxZCisKKzAwLTFDLTIzICAgKGhleCkJCURlbGwgSW5jCiswMDFDMjMgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksICBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0yNCAgIChoZXgpCQlGb3Jtb3NhIFdpcmVsZXNzIFN5c3RlbXMgQ29ycC4KKzAwMUMyNCAgICAgKGJhc2UgMTYpCQlGb3Jtb3NhIFdpcmVsZXNzIFN5c3RlbXMgQ29ycC4KKwkJCQlOby4gNDA4LCBHdWFuZG9uZyBSZC4sCisJCQkJSHNpbkNodSBDaXR5ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLTI1ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzAwMUMyNSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJNjYsQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy0yNiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCiswMDFDMjYgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCTY2LENodW5nIFNoYW4gUmQuVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtMjcgICAoaGV4KQkJU3VuZWxsIEVsZWN0cm9uaWNzIENvLgorMDAxQzI3ICAgICAoYmFzZSAxNikJCVN1bmVsbCBFbGVjdHJvbmljcyBDby4KKwkJCQkzcmQgRmxvb3IsQmxkZy41MTQsQmFHdWEgUmQKKwkJCQlGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ2RvbmcgNTE4MDI5CisJCQkJQ0hJTkEKKworMDAtMUMtMjggICAoaGV4KQkJU3BoYWlyb24gVGVjaG5vbG9naWVzIEdtYkggCiswMDFDMjggICAgIChiYXNlIDE2KQkJU3BoYWlyb24gVGVjaG5vbG9naWVzIEdtYkggCisJCQkJUGhpbGlwcC1SZWlzLVN0cmFzc2UgMQorCQkJCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisJCQkJQmF1dHplbiBTYXhvbnkgMDI2MjUgICAgCisJCQkJR0VSTUFOWQorCiswMC0xQy0yOSAgIChoZXgpCQlDT1JFIERJR0lUQUwgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKzAwMUMyOSAgICAgKGJhc2UgMTYpCQlDT1JFIERJR0lUQUwgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKwkJCQkxMDA2IyAxMDIgQ0hVTlVJVEVDSE5PUEFSSyAyMDAtMQorCQkJCUNIVU5VSS1ET05HLCBXT05NSS1HVQorCQkJCUJVQ0hFT04tQ0lUWSBHWVVOR0dJLURPIDQyMC04NTcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtMkEgICAoaGV4KQkJRW52aXNhY29yIFRlY2hub2xvZ2llcyBJbmMuCiswMDFDMkEgICAgIChiYXNlIDE2KQkJRW52aXNhY29yIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMTQ4NDUtNiBZb25nZSBTdHJlZXQsIFN1aXRlIDMxMAorCQkJCUF1cm9yYSBPTiBMNEcgNkg4CisJCQkJQ0FOQURBCisKKzAwLTFDLTJCICAgKGhleCkJCUFsZXJ0bWUuY29tIExpbWl0ZWQKKzAwMUMyQiAgICAgKGJhc2UgMTYpCQlBbGVydG1lLmNvbSBMaW1pdGVkCisJCQkJMjctMjggQnJpZGdlIFN0cmVldAorCQkJCUNhbWJyaWRnZSBDYW1icmlkZ2VzaGlyZSBDQjIgMVVKCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUMtMkMgICAoaGV4KQkJU3luYXBzZQorMDAxQzJDICAgICAoYmFzZSAxNikJCVN5bmFwc2UKKwkJCQkxMzIgRXhwb3J0IENpcmNsZQorCQkJCUh1bnRzdmlsbGUgQUwgMzU4MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTJEICAgKGhleCkJCUZsZXhSYWRpbyBTeXN0ZW1zCiswMDFDMkQgICAgIChiYXNlIDE2KQkJRmxleFJhZGlvIFN5c3RlbXMKKwkJCQk4OTAwIE1hcnliYW5rIERyLgorCQkJCUF1c3RpbiBUWCA3ODc1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtMkUgICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorMDAxQzJFICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkCisJCQkJUm9zZXZpbGxlIENBIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0yRiAgIChoZXgpCQlQZmlzdGVyIEdtYkgKKzAwMUMyRiAgICAgKGJhc2UgMTYpCQlQZmlzdGVyIEdtYkgKKwkJCQlTdMODwqR0emxpbmdlciBTdHJhw4PFuGUgNzAKKwkJCQlBdWdzYnVyZyBCYXZhcmlhIDg2MTY1CisJCQkJR0VSTUFOWQorCiswMC0xQy0zMCAgIChoZXgpCQlNb2RlIExpZ2h0aW5nIChVSyApIEx0ZC4KKzAwMUMzMCAgICAgKGJhc2UgMTYpCQlNb2RlIExpZ2h0aW5nIChVSyApIEx0ZC4KKwkJCQlUaGUgTWFsdGluZ3MKKwkJCQk2MyBIaWdoIFN0cmVldAorCQkJCVdhcmUgSGVydGZvcmRzaGlyZSBTRzEyIDlBRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFDLTMxICAgKGhleCkJCU1vYmlsZSBYUCBUZWNobm9sb2d5IENvLiwgTFRECiswMDFDMzEgICAgIChiYXNlIDE2KQkJTW9iaWxlIFhQIFRlY2hub2xvZ3kgQ28uLCBMVEQKKwkJCQlSb29tIE5vLjI1MDYsVHJpLXRvd2VyIEMgYnVpbGRpbmcsTm8uNjbCo8KsWmhvbmdndWFuY3VuIEVhc3QgUm9hZCxIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgwCisJCQkJQ0hJTkEKKworMDAtMUMtMzIgICAoaGV4KQkJVGVsaWFuIENvcnBvcmF0aW9uCiswMDFDMzIgICAgIChiYXNlIDE2KQkJVGVsaWFuIENvcnBvcmF0aW9uCisJCQkJNEZMLiBOYW1qZW9uIEJsZGcuIDUzLTMgSGFhbmRvbmcKKwkJCQlLd2FuZ215dW5nc2kgS3lvdW5na2lkbyA0MjMwNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtMzMgICAoaGV4KQkJU3V0cm9uCiswMDFDMzMgICAgIChiYXNlIDE2KQkJU3V0cm9uCisJCQkJMjEzMDAgUmlkZ2V0b3AgQ2lyCisJCQkJU3RlcmxpbmcgVkEgMjAxNjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTM0ICAgKGhleCkJCUhVRVkgQ0hJQU8gSU5URVJOQVRJT05BTCBDTy4sIExURC4KKzAwMUMzNCAgICAgKGJhc2UgMTYpCQlIVUVZIENISUFPIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQuCisJCQkJNUYsIE5PLiA2NDktMSwKKwkJCQlDSFVORyBDSEVORyBSRC4sCisJCQkJSFNJTiBDSFVBTkcgQ0lUWSBUQUlQRUkgMjQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy0zNSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxQzM1ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwVgorCQkJCURFTk1BUksKKworMDAtMUMtMzYgICAoaGV4KQkJaU5FV2lUIE5WCiswMDFDMzYgICAgIChiYXNlIDE2KQkJaU5FV2lUIE5WCisJCQkJU2NoYWxpw6tuaG9ldmVkcmVlZiAyMEQKKwkJCQlNZWNoZWxlbiBBbnR3ZXJwIDI4MDAKKwkJCQlCRUxHSVVNCisKKzAwLTFDLTM3ICAgKGhleCkJCUNhbGxwb2QsIEluYy4KKzAwMUMzNyAgICAgKGJhc2UgMTYpCQlDYWxscG9kLCBJbmMuCisJCQkJODUwIFcuIEphY2tzb24KKwkJCQlTdWl0ZSAyNjAKKwkJCQlDaGljYWdvIElMIDYwNjA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0zOCAgIChoZXgpCQlCaW8tUmFkIExhYm9yYXRvcmllcywgSW5jLgorMDAxQzM4ICAgICAoYmFzZSAxNikJCUJpby1SYWQgTGFib3JhdG9yaWVzLCBJbmMuCisJCQkJMjQ1IFdpbnRlciBTdC4KKwkJCQlTdWl0ZSAxMDAKKwkJCQlXYWx0aGFtIE1BIDAyNDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0zOSAgIChoZXgpCQlTIE5ldHN5c3RlbXMgSW5jLgorMDAxQzM5ICAgICAoYmFzZSAxNikJCVMgTmV0c3lzdGVtcyBJbmMuCisJCQkJMTBGIFN1bmd3b24gQmxkZy4sIDE0MSBTYW1zdW5nLURvbmcKKwkJCQlLYW5nbmFtLUt1CisJCQkJU2VvdWwgIDEzNS03MTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtM0EgICAoaGV4KQkJRWxlbWVudCBMYWJzLCBJbmMuCiswMDFDM0EgICAgIChiYXNlIDE2KQkJRWxlbWVudCBMYWJzLCBJbmMuCisJCQkJMzM1MCBTY290dCBCb3VsZXZhcmQKKwkJCQlCdWlsZGluZyAjMgorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy0zQiAgIChoZXgpCQlBbVJvYWQgVGVjaG5vbG9neSBJbmMuCiswMDFDM0IgICAgIChiYXNlIDE2KQkJQW1Sb2FkIFRlY2hub2xvZ3kgSW5jLgorCQkJCTE4Ri0zIE5vLiAxNTAgLCBDaGllbiBJIFJkCisJCQkJQ2h1bmcgSG8gVGFpcGVpIEhzaWVuIDIzNTExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy0zQyAgIChoZXgpCQlTZW9uIERlc2lnbiBJbmMuCiswMDFDM0MgICAgIChiYXNlIDE2KQkJU2VvbiBEZXNpZ24gSW5jLgorCQkJCTExMS0zQiBCdXJiaWRnZSBTdHJlZXQKKwkJCQlDb3F1aXRsYW0gQkMgVjNLIDdCMgorCQkJCUNBTkFEQQorCiswMC0xQy0zRCAgIChoZXgpCQlXYXZlU3Rvcm0KKzAwMUMzRCAgICAgKGJhc2UgMTYpCQlXYXZlU3Rvcm0KKwkJCQk0MCBydWUgZCdPcmFkb3VyLXN1ci1HbGFuZQorCQkJCVBhcmlzIMODxb1sZS1kZS1GcmFuY2UgNzUwMTUKKwkJCQlGUkFOQ0UKKworMDAtMUMtM0UgICAoaGV4KQkJRUNLZXkgTGltaXRlZAorMDAxQzNFICAgICAoYmFzZSAxNikJCUVDS2V5IExpbWl0ZWQKKwkJCQlQTyBCb3ggMTI4IDA1NworCQkJCVJlbXVlcmEKKwkJCQlBdWNrbGFuZCAgMTA1MAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTFDLTNGICAgKGhleCkJCUludGVybmF0aW9uYWwgUG9saWNlIFRlY2hub2xvZ2llcywgSW5jLgorMDAxQzNGICAgICAoYmFzZSAxNikJCUludGVybmF0aW9uYWwgUG9saWNlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTQxNTAgUy4gODd0aCBFLiBBdmVudWUKKwkJCQlUdWxzYSBPSyA3NDE0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNDAgICAoaGV4KQkJVkRHLVNlY3VyaXR5IGJ2CiswMDFDNDAgICAgIChiYXNlIDE2KQkJVkRHLVNlY3VyaXR5IGJ2CisJCQkJUmFkb25zdHJhYXQgMTAtMTQKKwkJCQlab2V0ZXJtZWVyIFpIIDI3MTggVEEKKwkJCQlORVRIRVJMQU5EUworCiswMC0xQy00MSAgIChoZXgpCQlzY2VtdGVjIFRyYW5zcG9uZGVyIFRlY2hub2xvZ3kgR21iSAorMDAxQzQxICAgICAoYmFzZSAxNikJCXNjZW10ZWMgVHJhbnNwb25kZXIgVGVjaG5vbG9neSBHbWJICisJCQkJR2V3ZXJiZXBhcmtzdHIuIDIwCisJCQkJUmVpY2hzaG9mIE5SVyA1MTU4MAorCQkJCUdFUk1BTlkKKworMDAtMUMtNDIgICAoaGV4KQkJUGFyYWxsZWxzLCBJbmMuCiswMDFDNDIgICAgIChiYXNlIDE2KQkJUGFyYWxsZWxzLCBJbmMuCisJCQkJNjYwIFNXIDM5aCBTdHJlZXQKKwkJCQlTdWl0ZSAyMDUKKwkJCQlSZW50b24gV0EgOTgwNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTQzICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAxQzQzICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy00NCAgIChoZXgpCQlCb3NjaCBTZWN1cml0eSBTeXN0ZW1zIEJWCiswMDFDNDQgICAgIChiYXNlIDE2KQkJQm9zY2ggU2VjdXJpdHkgU3lzdGVtcyBCVgorCQkJCUthcGl0dGVsd2VnIDEwCisJCQkJNDgyNyBIRyAgQnJlZGEgQnJhYmFudCA0ODI3CisJCQkJTkVUSEVSTEFORFMKKworMDAtMUMtNDUgICAoaGV4KQkJQ2hlbmJybyBNaWNvbSBDby4sIEx0ZC4KKzAwMUM0NSAgICAgKGJhc2UgMTYpCQlDaGVuYnJvIE1pY29tIENvLiwgTHRkLgorCQkJCTE1RmwuLCBOby4gMTUwLCBKaWFuIFlpIFJvYWQKKwkJCQlDaHVuZyBIbyBDaXR5IFRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLTQ2ICAgKGhleCkJCVFUVU0KKzAwMUM0NiAgICAgKGJhc2UgMTYpCQlRVFVNCisJCQkJIzUwNyBCeXVja3Nhbi9LeXVuZ2luIERpZ2l0YWwgVmFsbGV5IDIgNDgxLTEwCisJCQkJR2FzYW4tZG9uZyBHZXVtY2hlb24tZ3UKKwkJCQlTZW91bCAgMTUzLTc4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy00NyAgIChoZXgpCQlIYW5nemhvdSBIb2xseXN5cyBBdXRvbWF0aW9uIENvLiwgTHRkCiswMDFDNDcgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgSG9sbHlzeXMgQXV0b21hdGlvbiBDby4sIEx0ZAorCQkJCU5vLjEwIE1pZGRsZSBSb2FkLCBKaWFuY2FpY2hlbmcsIEhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDk2CisJCQkJQ0hJTkEKKworMDAtMUMtNDggICAoaGV4KQkJV2lEZUZpLCBJbmMuCiswMDFDNDggICAgIChiYXNlIDE2KQkJV2lEZUZpLCBJbmMuCisJCQkJMTMzMyBHYXRld2F5IEJsdmQKKwkJCQlTdWl0ZSAxMDEyCisJCQkJTWVsYm91cm5lIEZMIDMyOTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy00OSAgIChoZXgpCQlab2x0YW4gVGVjaG5vbG9neSBJbmMuCiswMDFDNDkgICAgIChiYXNlIDE2KQkJWm9sdGFuIFRlY2hub2xvZ3kgSW5jLgorCQkJCTRGLCBOby4zMCwgV3Vuc2kgU3QuCisJCQkJSmh1YmVpIEhzaW5jaHUgMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy00QSAgIChoZXgpCQlBVk0gR21iSAorMDAxQzRBICAgICAoYmFzZSAxNikJCUFWTSBHbWJICisJCQkJQWx0LU1vYWJpdCA5NQorCQkJCUJlcmxpbiAgMTA1NTkKKwkJCQlHRVJNQU5ZCisKKzAwLTFDLTRCICAgKGhleCkJCUdlbmVyOCwgSW5jLgorMDAxQzRCICAgICAoYmFzZSAxNikJCUdlbmVyOCwgSW5jLgorCQkJCTg5NyBJbmRlcGVuZGVuY2UgQXZlCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNEMgICAoaGV4KQkJUGV0cm90ZXN0IEluc3RydW1lbnRzCiswMDFDNEMgICAgIChiYXNlIDE2KQkJUGV0cm90ZXN0IEluc3RydW1lbnRzCisJCQkJTHVkd2lnLUVyaGFyZC1SaW5nIDEzCisJCQkJRGFobGV3aXR6IEJCRyAxNTgyNworCQkJCUdFUk1BTlkKKworMDAtMUMtNEQgICAoaGV4KQkJWmVldG9vLCBJbmMuCiswMDFDNEQgICAgIChiYXNlIDE2KQkJWmVldG9vLCBJbmMuCisJCQkJMTI4IEdyZWF0IFJvYWQKKwkJCQlCZWRmb3JkIE1BIDAxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy00RSAgIChoZXgpCQlUQVNBIEludGVybmF0aW9uYWwgTGltaXRlZAorMDAxQzRFICAgICAoYmFzZSAxNikJCVRBU0EgSW50ZXJuYXRpb25hbCBMaW1pdGVkCisJCQkJNUbCo8KsQnVpbGRpbmcywqPCrE5vLjEyOTUgLFhpbiBKaW5xaWFvIFJvYWQsCisJCQkJU2hhbmdoYWkgIDIwMTIwNgorCQkJCUNISU5BCisKKzAwLTFDLTRGICAgKGhleCkJCU1BQ0FCIEFCCiswMDFDNEYgICAgIChiYXNlIDE2KQkJTUFDQUIgQUIKKwkJCQlWYW5uaMO2Z3NnYXRhbiA3CisJCQkJVHJlbGxlYm9yZyAgMjMxNjYKKwkJCQlTV0VERU4KKworMDAtMUMtNTAgICAoaGV4KQkJVENMIFRlY2hub2x5IEVsZWN0cm9uaWNzKEh1aXpob3UpQ28uLEx0ZAorMDAxQzUwICAgICAoYmFzZSAxNikJCVRDTCBUZWNobm9seSBFbGVjdHJvbmljcyhIdWl6aG91KUNvLixMdGQKKwkJCQkxMC9GLCBCbG9jayBBICwgVENMIFRvd2VyCisJCQkJMSBHYW94aW4gTmFuIFJvYWQsIE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMUMtNTEgICAoaGV4KQkJQ2VsZW5vIENvbW11bmljYXRpb25zCiswMDFDNTEgICAgIChiYXNlIDE2KQkJQ2VsZW5vIENvbW11bmljYXRpb25zCisJCQkJMjIgWmFyaGluIFN0cmVldAorCQkJCVJhJ2FuYW5hICA0MzY2NQorCQkJCUlTUkFFTAorCiswMC0xQy01MiAgIChoZXgpCQlWSVNJT05FRSBTUkwKKzAwMUM1MiAgICAgKGJhc2UgMTYpCQlWSVNJT05FRSBTUkwKKwkJCQlWSUFMRSBERUxMQSBSRVBVQkJMSUNBLCAyMgorCQkJCVZJTExPUkJBIFRSRVZJU08gMzEwNTAKKwkJCQlJVEFMWQorCiswMC0xQy01MyAgIChoZXgpCQlTeW5lcmd5IExpZ2h0aW5nIENvbnRyb2xzCiswMDFDNTMgICAgIChiYXNlIDE2KQkJU3luZXJneSBMaWdodGluZyBDb250cm9scworCQkJCU9uZSBMaXRob25pYSBXYXkKKwkJCQlDb255ZXJzIEdBIDMwMDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy01NCAgIChoZXgpCQlIaWxsc3RvbmUgTmV0d29ya3MgSW5jCiswMDFDNTQgICAgIChiYXNlIDE2KQkJSGlsbHN0b25lIE5ldHdvcmtzIEluYworCQkJCUEtMTkwNSBlLVdpbmcgQ2VudGVyCisJCQkJWmhpY2h1biBSb2FkLCBIYWlkaWFuCisJCQkJQmVpamluZyAgMTAwMDg2CisJCQkJQ0hJTkEKKworMDAtMUMtNTUgICAoaGV4KQkJU2hlbnpoZW4gS2FpZmEgVGVjaG5vbG9neSBDby4KKzAwMUM1NSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBLYWlmYSBUZWNobm9sb2d5IENvLgorCQkJCTcwMDYgQ2FpdGlhbiBSb2FkLCBGdXRpYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAzNQorCQkJCUNISU5BCisKKzAwLTFDLTU2ICAgKGhleCkJCVBhZG8gU3lzdGVtcywgSW5jLgorMDAxQzU2ICAgICAoYmFzZSAxNikJCVBhZG8gU3lzdGVtcywgSW5jLgorCQkJCSM3MDYgTG9hZGxhbmQgRVogVG93ZXIgMTUzCisJCQkJR3VtaS1Eb25nLCBCdW5kYW5nLUd1CisJCQkJU3VuZ05hbSBHeXVuZyBnaS1EbyA0NjMtODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTU3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUM1NyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy01OCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFDNTggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNTkgICAoaGV4KQkJREVWT04gSVQKKzAwMUM1OSAgICAgKGJhc2UgMTYpCQlERVZPTiBJVAorCQkJCTExMDAgRklSU1QgQVZFTlVFCisJCQkJU1VJVEUgMTAwCisJCQkJS0lORyBPRiBQUlVTU0lBIFBBIDE5NDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy01QSAgIChoZXgpCQlBZHZhbmNlZCBSZWxheSBDb3Jwb3JhdGlvbgorMDAxQzVBICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIFJlbGF5IENvcnBvcmF0aW9uCisJCQkJMTg5NiBDb2x1bWJpYSBTdAorCQkJCUV1Z2VuZSBPUiA5NzQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNUIgICAoaGV4KQkJQ2h1YmIgRWxlY3Ryb25pYyBTZWN1cml0eSBTeXN0ZW1zIEx0ZAorMDAxQzVCICAgICAoYmFzZSAxNikJCUNodWJiIEVsZWN0cm9uaWMgU2VjdXJpdHkgU3lzdGVtcyBMdGQKKwkJCQlTaGFkc3dvcnRoIFJvYWQKKwkJCQlCbGFja2J1cm4gTGFuY2FzaGlyZSBCQjEgMlBSCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUMtNUMgICAoaGV4KQkJSW50ZWdyYXRlZCBNZWRpY2FsIFN5c3RlbXMsIEluYy4KKzAwMUM1QyAgICAgKGJhc2UgMTYpCQlJbnRlZ3JhdGVkIE1lZGljYWwgU3lzdGVtcywgSW5jLgorCQkJCTE5ODQgT2Jpc3BvIEF2ZW51ZQorCQkJCVNpZ25hbCBIaWxsIENBIDkwNzU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy01RCAgIChoZXgpCQlMZWljYSBNaWNyb3N5c3RlbXMKKzAwMUM1RCAgICAgKGJhc2UgMTYpCQlMZWljYSBNaWNyb3N5c3RlbXMKKwkJCQlQT0JveCA4MAorCQkJCTUxNSBDb2xkaGFtcyBMYW5lCisJCQkJQ2FtYnJpZGdlICBDQjEgM1laCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUMtNUUgICAoaGV4KQkJQVNUT04gRnJhbmNlCiswMDFDNUUgICAgIChiYXNlIDE2KQkJQVNUT04gRnJhbmNlCisJCQkJMTUxIEF2ZW51ZSBHYWxsaWVuaQorCQkJCUJBR05PTEVUIGlsZSBkZSBmcmFuY2UgOTMxNzcKKwkJCQlGUkFOQ0UKKworMDAtMUMtNUYgICAoaGV4KQkJV2lubGFuZCBFbGVjdHJvbmljcywgSW5jLgorMDAxQzVGICAgICAoYmFzZSAxNikJCVdpbmxhbmQgRWxlY3Ryb25pY3MsIEluYy4KKwkJCQkxOTUwIEV4Y2VsIERyaXZlCisJCQkJTWFua2F0byBNTiA1NjAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNjAgICAoaGV4KQkJQ1NQIEZyb250aWVyIFRlY2hub2xvZ2llcyxJbmMuCiswMDFDNjAgICAgIChiYXNlIDE2KQkJQ1NQIEZyb250aWVyIFRlY2hub2xvZ2llcyxJbmMuCisJCQkJMy0yLTMsU2FzYXp1a2EKKwkJCQlTaGlidXlhLWt1IFRva3lvIDE1MS0wMDczCisJCQkJSkFQQU4KKworMDAtMUMtNjEgICAoaGV4KQkJR2FsYXh5IFRlY2hub2xvZ3kgKEhLKSBMdGQuCiswMDFDNjEgICAgIChiYXNlIDE2KQkJR2FsYXh5IFRlY2hub2xvZ3kgKEhLKSBMdGQuCisJCQkJVW5pdCA4MDIsIDgvRiwgU2h1aSBIaW5nIENlbnRyZSwgMTMgU2hldW5nIFl1ZXQgUm9hZCwKKwkJCQlLb3dsb29uIEJheSAgS2xuLiwgCisJCQkJSE9ORyBLT05HCisKKzAwLTFDLTYyICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzIEluYworMDAxQzYyICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzIEluYworCQkJCTYwLTM5LCBHYXNhbi1Eb25nCisJCQkJS3VtY2hvbi1HdQorCQkJCVNlb3VsICAxNTMtMDIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTYzICAgKGhleCkJCVRSVUVOCiswMDFDNjMgICAgIChiYXNlIDE2KQkJVFJVRU4KKwkJCQk0RiBTQU1XT04gQkxERy4sIDQ1MS03CisJCQkJIEJBTkdCQUUtRE9ORywgU0VPQ0hPLUdVCisJCQkJU0VPVUwgIDEzNy04MTgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtNjQgICAoaGV4KQkJQ2VsbG5ldCtIdW50CiswMDFDNjQgICAgIChiYXNlIDE2KQkJQ2VsbG5ldCtIdW50CisJCQkJNjQzNiBDb3VudHkgUm9hZCAxMQorCQkJCVBlcXVvdCBMYWtlcyBNaW5uZXNvdGEgNTY0NzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTY1ICAgKGhleCkJCUpvZVNjYW4sIEluYy4KKzAwMUM2NSAgICAgKGJhc2UgMTYpCQlKb2VTY2FuLCBJbmMuCisJCQkJMTE5IEUgOHRoIFN0LgorCQkJCVZhbmNvdXZlciBXQSA5ODY2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNjYgICAoaGV4KQkJVUNBTVAgQ08uLExURAorMDAxQzY2ICAgICAoYmFzZSAxNikJCVVDQU1QIENPLixMVEQKKwkJCQkjMTAxNSwgS29sb24gU2NpZW5jZSBWYWxsZXkgwqXCsQorCQkJCVNlb3VsIEd1cm8tRG9uZyxHdXJvLWd1LCAxNTItODQ4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTY3ICAgKGhleCkJCVB1bXBraW4gTmV0d29ya3MsIEluYy4KKzAwMUM2NyAgICAgKGJhc2UgMTYpCQlQdW1wa2luIE5ldHdvcmtzLCBJbmMuCisJCQkJM0ZMIEp1bmdIbyBCbGRnLCAxMDgtNCBTYW5nZG8tRG9uZywgRG9uZ2phay1HdQorCQkJCVNFT1VMICAxNTYtMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTY4ICAgKGhleCkJCUFuaHVpIFN1biBDcmVhdGUgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzAwMUM2OCAgICAgKGJhc2UgMTYpCQlBbmh1aSBTdW4gQ3JlYXRlIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJTk8uMTk5IFhpYW5nemhhbmcgUm9hZAorCQkJCUhlZmVpIEFuaHVpIDIzMDA4OAorCQkJCUNISU5BCisKKzAwLTFDLTY5ICAgKGhleCkJCVBhY2tldCBWaXNpb24gTHRkCiswMDFDNjkgICAgIChiYXNlIDE2KQkJUGFja2V0IFZpc2lvbiBMdGQKKwkJCQlTQyBIb3VzZQorCQkJCVZhbndhbGwgUm9hZAorCQkJCU1haWRlbmhlYWQgQmVya3MgU0w2IDRVQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFDLTZBICAgKGhleCkJCVdlaXNzIEVuZ2luZWVyaW5nIEx0ZC4KKzAwMUM2QSAgICAgKGJhc2UgMTYpCQlXZWlzcyBFbmdpbmVlcmluZyBMdGQuCisJCQkJRmxvcmFzdHJhc3NlIDQyCisJCQkJVXN0ZXIgWkggODYxMAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFDLTZCICAgKGhleCkJCUNPVkFYICBDby4gTHRkCiswMDFDNkIgICAgIChiYXNlIDE2KQkJQ09WQVggIENvLiBMdGQKKwkJCQkzLTI3LTIyIGtpdGFoYW5hZGEtY2hvIGtpdGFrdQorCQkJCXNha2FpLXNoaSBvb3Nha2EgNTkxLTgwMDIKKwkJCQlKQVBBTgorCiswMC0xQy02QyAgIChoZXgpCQlKYWJpbCBDaXJjdWl0IChHdWFuZ3pob3UpIExpbWl0ZWQKKzAwMUM2QyAgICAgKGJhc2UgMTYpCQlKYWJpbCBDaXJjdWl0IChHdWFuZ3pob3UpIExpbWl0ZWQKKwkJCQkxMjgsIEp1biBDaGVuZyBSb2FkLHVhbmd6aG91IEVjb25vbWljIGFuZCBUZWNobm9sb2dpY2FsIERldmVsb3BtZW50IERpc3RyaWN0CisJCQkJR3Vhbmdkb25nIFByb3ZpbmNlCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA1MzAKKwkJCQlDSElOQQorCiswMC0xQy02RCAgIChoZXgpCQlLWU9IUklUU1UgRUxFQ1RST05JQyBJTkRVU1RSWSBDTy4sIExURC4KKzAwMUM2RCAgICAgKGJhc2UgMTYpCQlLWU9IUklUU1UgRUxFQ1RST05JQyBJTkRVU1RSWSBDTy4sIExURC4KKwkJCQkyLTUtMSwgTklQUE9OQkFTSEktTklTSEksCisJCQkJTkFOSVdBLUtVCisJCQkJT1NBS0EgIDU1Ni0wMDA0CisJCQkJSkFQQU4KKworMDAtMUMtNkUgICAoaGV4KQkJTmV3YnVyeSBOZXR3b3JrcywgSW5jLgorMDAxQzZFICAgICAoYmFzZSAxNikJCU5ld2J1cnkgTmV0d29ya3MsIEluYy4KKwkJCQk0MTkgQm95bHN0b24gU3RyZWV0CisJCQkJQm9zdG9uIE1BIDAyMTE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy02RiAgIChoZXgpCQlFbWZpdCBMdGQKKzAwMUM2RiAgICAgKGJhc2UgMTYpCQlFbWZpdCBMdGQKKwkJCQlLb250dGlzZW50aWUgOCBCCisJCQkJVmFhamFrb3NraSAgNDA4MDAKKwkJCQlGSU5MQU5ECisKKzAwLTFDLTcwICAgKGhleCkJCU5PVkFDT01NIExUREEKKzAwMUM3MCAgICAgKGJhc2UgMTYpCQlOT1ZBQ09NTSBMVERBCisJCQkJUlVBIEJFSUpVSSwgNzAKKwkJCQlTQU5UTyBBTUFSTworCQkJCVNBTyBQQVVMTyAgMDQ2ODktMDAwCisJCQkJQlJBWklMCisKKzAwLTFDLTcxICAgKGhleCkJCUVtZXJnZW50IEVsZWN0cm9uaWNzCiswMDFDNzEgICAgIChiYXNlIDE2KQkJRW1lcmdlbnQgRWxlY3Ryb25pY3MKKwkJCQlCbGRnIDIgTGV2ZWwgMyBTdWl0ZSAzMDUKKwkJCQkyNTkxIFdleGZvcmQtQmF5bmUgUm9hZAorCQkJCVNld2lja2xleSBQQSAxNTE0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNzIgICAoaGV4KQkJTWF5ZXIgJiBDaWUgR21iSCAmIENvIEtHCiswMDFDNzIgICAgIChiYXNlIDE2KQkJTWF5ZXIgJiBDaWUgR21iSCAmIENvIEtHCisJCQkJRW1pbCBNYXllciBTdHJhc3NlIDEwCisJCQkJQWxic3RhZHQgQmFkZW4gV8O8cnR0ZW1iZXJnIDcyNDYxCisJCQkJR0VSTUFOWQorCiswMC0xQy03MyAgIChoZXgpCQlBcmlzdGEgTmV0d29ya3MsIEluYy4KKzAwMUM3MyAgICAgKGJhc2UgMTYpCQlBcmlzdGEgTmV0d29ya3MsIEluYy4KKwkJCQkyNzUgTWlkZGxlZmllbGQgUm9hZCwgU3RlIDUwCisJCQkJTWVubG8gUGFyayBDYWxpZm9ybmlhIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy03NCAgIChoZXgpCQlTeXN3YW4gVGVjaG5vbG9naWVzIEluYy4KKzAwMUM3NCAgICAgKGJhc2UgMTYpCQlTeXN3YW4gVGVjaG5vbG9naWVzIEluYy4KKwkJCQkyMDUwIEJlYXZlcmNyZWVrIFJvYWQKKwkJCQlTdWl0ZSAxMDEgIzM4OAorCQkJCU9yZWdvbiBDaXR5IE9yZWdvbiA5NzA0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtNzUgICAoaGV4KQkJUkYgU3lzdGVtcyBHbWJICiswMDFDNzUgICAgIChiYXNlIDE2KQkJUkYgU3lzdGVtcyBHbWJICisJCQkJRWluc3RlaW5zdHJhw4PFuGUgMTEKKwkJCQlWaWVybmhlaW0gSGVzc2VuIEQgNjg1MTkKKwkJCQlHRVJNQU5ZCisKKzAwLTFDLTc2ICAgKGhleCkJCVRoZSBXYW5kc3dvcnRoIEdyb3VwIEx0ZAorMDAxQzc2ICAgICAoYmFzZSAxNikJCVRoZSBXYW5kc3dvcnRoIEdyb3VwIEx0ZAorCQkJCUFsYmVydCBEcml2ZQorCQkJCVNoZWVyd2F0ZXIKKwkJCQlXb2tpbmcgU3VycmV5IEdVMjEgNVNFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUMtNzcgICAoaGV4KQkJUHJvZHlzCiswMDFDNzcgICAgIChiYXNlIDE2KQkJUHJvZHlzCisJCQkJQy9UcmlnbyA1NCBQb2wuIEluZC4gUG9sdm9yYW5jYQorCQkJCUxlZ2FuZXMgTUFEUklEIDI4OTE0CisJCQkJU1BBSU4KKworMDAtMUMtNzggICAoaGV4KQkJV1lQTEFZIFNBUworMDAxQzc4ICAgICAoYmFzZSAxNikJCVdZUExBWSBTQVMKKwkJCQkyMDAgYXZlbnVlIGRlIFByb3ZlbmNlCisJCQkJQUxMQVVDSCBCZFIgMTMxOTAKKwkJCQlGUkFOQ0UKKworMDAtMUMtNzkgICAoaGV4KQkJQ29oZXNpdmUgRmluYW5jaWFsIFRlY2hub2xvZ2llcyBMTEMKKzAwMUM3OSAgICAgKGJhc2UgMTYpCQlDb2hlc2l2ZSBGaW5hbmNpYWwgVGVjaG5vbG9naWVzIExMQworCQkJCTIwMCBTb3V0aCBXYWNrZXIgRHIuCisJCQkJU3VpdGUgMTUwMAorCQkJCUNoaWNhZ28gSUwgNjA2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLTdBICAgKGhleCkJCVBlcmZlY3RvbmUgTmV0d2FyZSBDb21wYW55IEx0ZAorMDAxQzdBICAgICAoYmFzZSAxNikJCVBlcmZlY3RvbmUgTmV0d2FyZSBDb21wYW55IEx0ZAorCQkJCVVuaXQgODE1LCBTdW4gRnVuZyBDZW50cmUsCisJCQkJS3dvayBTaHVpIFJkLAorCQkJCUt3YWkgQ2h1bmcgIAorCQkJCUhPTkcgS09ORworCiswMC0xQy03QiAgIChoZXgpCQlDYXN0bGVuZXQgVGVjaG5vbG9neSBJbmMuCiswMDFDN0IgICAgIChiYXNlIDE2KQkJQ2FzdGxlbmV0IFRlY2hub2xvZ3kgSW5jLgorCQkJCU5vLjY0LCBDaHVuZy1TaGFuIFJkLgorCQkJCVR1LUNoZW5nIENpdHkgVGFpcGVpIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtN0MgICAoaGV4KQkJUEVSUSBTWVNURU1TIENPUlBPUkFUSU9OCiswMDFDN0MgICAgIChiYXNlIDE2KQkJUEVSUSBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJMjYwMCBMSUJFUkVUWSBBVkVOVUUKKwkJCQlQLk8uIEJPWCAyNjAwCisJCQkJUElUVFNCVVJHSCBQQSAxNTIzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtN0QgICAoaGV4KQkJRXhjZWxwb2ludCBNYW51ZmFjdHVyaW5nIFB0ZSBMdGQKKzAwMUM3RCAgICAgKGJhc2UgMTYpCQlFeGNlbHBvaW50IE1hbnVmYWN0dXJpbmcgUHRlIEx0ZAorCQkJCTE1LCBDaGFuZ2kgQnVzaW5lc3MgUGFyaworCQkJCUNlbnRyYWwgMSwgNXRoIExldmVsCisJCQkJNDg2MDU3CisJCQkJU0lOR0FQT1JFCisKKzAwLTFDLTdFICAgKGhleCkJCVRvc2hpYmEKKzAwMUM3RSAgICAgKGJhc2UgMTYpCQlUb3NoaWJhCisJCQkJMi05LFN1ZWhpcm8tQ2hvCisJCQkJT21lIFRva3lvIDE5ODg3MTAKKwkJCQlKQVBBTgorCiswMC0xQy03RiAgIChoZXgpCQlDaGVjayBQb2ludCBTb2Z0d2FyZSBUZWNobm9sb2dpZXMKKzAwMUM3RiAgICAgKGJhc2UgMTYpCQlDaGVjayBQb2ludCBTb2Z0d2FyZSBUZWNobm9sb2dpZXMKKwkJCQkzQSBKYWJvdGluc2t5IFN0LgorCQkJCURpYW1vbmQgVG93ZXIKKwkJCQlSYW1hdCBHYW4gIDUyNTIwCisJCQkJSVNSQUVMCisKKzAwLTFDLTgwICAgKGhleCkJCU5ldyBCdXNpbmVzcyBEaXZpc2lvbi9SaGVhLUluZm9ybWF0aW9uIENPLiwgTFRELgorMDAxQzgwICAgICAoYmFzZSAxNikJCU5ldyBCdXNpbmVzcyBEaXZpc2lvbi9SaGVhLUluZm9ybWF0aW9uIENPLiwgTFRELgorCQkJCTRGIDU5NCBZZW9uZyBQdW5nIEJsZGcsIEd1ZXVpLURvbmcKKwkJCQlTZW91bCBHd2FuZ2ppbi1HdSAxNDMtMjAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLTgxICAgKGhleCkJCU5leHRHZW4gVmVudHVyaSBMVEQKKzAwMUM4MSAgICAgKGJhc2UgMTYpCQlOZXh0R2VuIFZlbnR1cmkgTFRECisJCQkJVGVjaG5pdW0gMgorCQkJCUtpbmdzIFJvYWQKKwkJCQlTd2Fuc2VhIFdlc3QgR2xhbW9yZ2FuIFNBMThQSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFDLTgyICAgKGhleCkJCUdlbmV3IFRlY2hub2xvZ2llcworMDAxQzgyICAgICAoYmFzZSAxNikJCUdlbmV3IFRlY2hub2xvZ2llcworCQkJCTNBMyBCdWlsZGluZyBCMSwgQ3liZXItdGVjaCBab25lLAorCQkJCUdhb3hpbiBBdmUuIDdTLCBIaS10ZWNoIEluZHVzdHJpYWwgUGFyaywKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMUMtODMgICAoaGV4KQkJTmV3IExldmVsIFRlbGVjb20gQ28uLCBMdGQuCiswMDFDODMgICAgIChiYXNlIDE2KQkJTmV3IExldmVsIFRlbGVjb20gQ28uLCBMdGQuCisJCQkJSU5OT1BMRVggMS03MDMKKwkJCQkzNzEtNDcsICBHYXNhbi1Eb25nLCBHZXVtY2hlb24tR3UKKwkJCQlTZW91bCAgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy04NCAgIChoZXgpCQlTVEwgU29sdXRpb24gQ28uLEx0ZC4KKzAwMUM4NCAgICAgKGJhc2UgMTYpCQlTVEwgU29sdXRpb24gQ28uLEx0ZC4KKwkJCQkjNzEwLCBXb3JsZCBNZXJpZGlhbiBWZW50dXJlIENlbnRlciBJCisJCQkJNjAtMjQsIEdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTI3ODEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtODUgICAoaGV4KQkJRXVuaWNvcm4KKzAwMUM4NSAgICAgKGJhc2UgMTYpCQlFdW5pY29ybgorCQkJCTIyNi0xNiB1bmJvIGIvZCBzdWNrY2hvbi1kb25nIHNvbmdwYS1ndQorCQkJCXNlb3VsICAxMzg4NDUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtODYgICAoaGV4KQkJQ3Jhbml0ZSBTeXN0ZW1zLCBJbmMuCiswMDFDODYgICAgIChiYXNlIDE2KQkJQ3Jhbml0ZSBTeXN0ZW1zLCBJbmMuCisJCQkJMTIxIEFsYnJpZ2h0IFdheQorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtODcgICAoaGV4KQkJVXJpdmVyIEluYy4KKzAwMUM4NyAgICAgKGJhc2UgMTYpCQlVcml2ZXIgSW5jLgorCQkJCTNyZC4sIEZsLiwgQm9nd2FuZyBCbGRnLiwgUG9pLWRvbmcsIDIzOC03IEdhbmduYW0tZ3UsCisJCQkJU2VvdWwgIDEzNS05NjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtODggICAoaGV4KQkJVFJBTlNZU1RFTSBJTkMuCiswMDFDODggICAgIChiYXNlIDE2KQkJVFJBTlNZU1RFTSBJTkMuCisJCQkJTm8uIDEtMiwgTGktSHNpbiBSZCAxLCBTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtODkgICAoaGV4KQkJRm9yY2UgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMUM4OSAgICAgKGJhc2UgMTYpCQlGb3JjZSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCVBPIEJveCAyNTAyODYKKwkJCQlQbGFubyBUWCA3NTAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtOEEgICAoaGV4KQkJQ2lycmFzY2FsZSBDb3Jwb3JhdGlvbgorMDAxQzhBICAgICAoYmFzZSAxNikJCUNpcnJhc2NhbGUgQ29ycG9yYXRpb24KKwkJCQk5NDQ5IENhcnJvbGwgUGFyayBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtOEIgICAoaGV4KQkJTUogSW5ub3ZhdGlvbnMgTHRkLgorMDAxQzhCICAgICAoYmFzZSAxNikJCU1KIElubm92YXRpb25zIEx0ZC4KKwkJCQkzMzMgV3llY3JvZnQgUm9hZAorCQkJCVVuaXQgMworCQkJCU9ha3ZpbGxlIE9udGFyaW8gTDZLIDJIMgorCQkJCUNBTkFEQQorCiswMC0xQy04QyAgIChoZXgpCQlESUFMIFRFQ0hOT0xPR1kgTFRELgorMDAxQzhDICAgICAoYmFzZSAxNikJCURJQUwgVEVDSE5PTE9HWSBMVEQuCisJCQkJNkYtNCwgTk8uMTgsIExBTkUuNjA5LCBTRUMuNSwgQ0hPTkdTSU4gUkQuLAorCQkJCVNBTkNIT05HIENJVFkgVEFJUEVJIENPVU5UWSAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLThEICAgKGhleCkJCU1lc2EgSW1hZ2luZworMDAxQzhEICAgICAoYmFzZSAxNikJCU1lc2EgSW1hZ2luZworCQkJCUJhZGVuZXJzdHJhc3NlIDU2OQorCQkJCVrDvHJpY2ggWkggODA0OAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFDLThFICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50IElQRAorMDAxQzhFICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50IElQRAorCQkJCTcwMSBFLiBNaWRkbGVmaWVsZCBSZC4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy04RiAgIChoZXgpCQlBZHZhbmNlZCBFbGVjdHJvbmljIERlc2lnbiwgSW5jLgorMDAxQzhGICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIEVsZWN0cm9uaWMgRGVzaWduLCBJbmMuCisJCQkJMzQ0IEpvaG4gTCBEaWV0c2NoIEJsdmQuLCBVbml0ICMyCisJCQkJTm9ydGggQXR0bGVib3JvIE1BIDAyNzYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy05MCAgIChoZXgpCQlFbXBhY2tldCBDb3Jwb3JhdGlvbgorMDAxQzkwICAgICAoYmFzZSAxNikJCUVtcGFja2V0IENvcnBvcmF0aW9uCisJCQkJT3Nha2kgS0kgYmxkZy4KKwkJCQkxLTE5LTEwIE9zYWtpCisJCQkJU2hpbmFnYXdhIFRva3lvIDE0MS0wMDMyCisJCQkJSkFQQU4KKworMDAtMUMtOTEgICAoaGV4KQkJR2VmZW4gSW5jLgorMDAxQzkxICAgICAoYmFzZSAxNikJCUdlZmVuIEluYy4KKwkJCQkyMDYwMCBOb3JkaG9mZiBTdHJlZXQKKwkJCQlDaGF0c3dvcnRoIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy05MiAgIChoZXgpCQlUZXJ2ZWxhCiswMDFDOTIgICAgIChiYXNlIDE2KQkJVGVydmVsYQorCQkJCTQzIE5hZ29nIFBhcmsKKwkJCQlTdWl0ZSAyMDEKKwkJCQlBY3RvbiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtOTMgICAoaGV4KQkJRXhhRGlnbSBJbmMKKzAwMUM5MyAgICAgKGJhc2UgMTYpCQlFeGFEaWdtIEluYworCQkJCTI4NzEgUHVsbG1hbiBTdAorCQkJCVNhbnRhIEFuYSBDQSA5MjcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtOTQgICAoaGV4KQkJTEktQ09SIEJpb3NjaWVuY2VzCiswMDFDOTQgICAgIChiYXNlIDE2KQkJTEktQ09SIEJpb3NjaWVuY2VzCisJCQkJNDY0NyBTdXBlcmlvciBTdHJlZXQKKwkJCQlMaW5jb2xuIE5FIDY4NTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy05NSAgIChoZXgpCQlPcHRpY29tbSBDb3Jwb3JhdGlvbgorMDAxQzk1ICAgICAoYmFzZSAxNikJCU9wdGljb21tIENvcnBvcmF0aW9uCisJCQkJNjgyNyBOYW5jeSBSaWRnZSBEcgorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtOTYgICAoaGV4KQkJTGlua3dpc2UgVGVjaG5vbG9neSBQdGUgTHRkCiswMDFDOTYgICAgIChiYXNlIDE2KQkJTGlua3dpc2UgVGVjaG5vbG9neSBQdGUgTHRkCisJCQkJQmxrIDMsIEFuZyBNbyBLaW8gSW5kdXN0cmlhbCBQYXJrIDJBCisJCQkJIzA2LTAzLiBBTUsgVGVjaCBJCisJCQkJNTY4MDUwCisJCQkJU0lOR0FQT1JFCisKKzAwLTFDLTk3ICAgKGhleCkJCUVuenl0ZWsgVGVjaG5vbG9neSBJbmMuLAorMDAxQzk3ICAgICAoYmFzZSAxNikJCUVuenl0ZWsgVGVjaG5vbG9neSBJbmMuLAorCQkJCTdGLCBOby4zNSwgSHN1ZWggRnUgUmQuLAorCQkJCUhzaW5jaHUgIDMwMCwKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLTk4ICAgKGhleCkJCUxVQ0tZIFRFQ0hOT0xPR1kgKEhLKSBDT01QQU5ZIExJTUlURUQKKzAwMUM5OCAgICAgKGJhc2UgMTYpCQlMVUNLWSBURUNITk9MT0dZIChISykgQ09NUEFOWSBMSU1JVEVECisJCQkJRkxBVC9STSAxNTAzIDE1L0YgSVNMQU5EIEJFVkVSTEVZIE5PIDEgR1JFQVQgR0VPUkdFIFNUUkVFVCBDQVVTRVdBWSBCQVkKKwkJCQk5OTkwNzcKKwkJCQlIT05HIEtPTkcKKworMDAtMUMtOTkgICAoaGV4KQkJU2h1bnJhIFNvZnR3YXJlIEx0ZC4KKzAwMUM5OSAgICAgKGJhc2UgMTYpCQlTaHVucmEgU29mdHdhcmUgTHRkLgorCQkJCTIwIEhhdGEnYXMgU3QuCisJCQkJS2VmYXItU2FiYSAgNDQ0MjUKKwkJCQlJU1JBRUwKKworMDAtMUMtOUEgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUM5QSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUMtOUIgICAoaGV4KQkJRkVJRyBFTEVDVFJPTklDIEdtYkgKKzAwMUM5QiAgICAgKGJhc2UgMTYpCQlGRUlHIEVMRUNUUk9OSUMgR21iSAorCQkJCUxhbmdlIFN0cmHDg8W4ZSA0CisJCQkJV2VpbGJ1cmcgSGVzc2VuIDM1NzgxCisJCQkJR0VSTUFOWQorCiswMC0xQy05QyAgIChoZXgpCQlOb3J0ZWwKKzAwMUM5QyAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMUMtOUQgICAoaGV4KQkJTGllY3RoaSBBRworMDAxQzlEICAgICAoYmFzZSAxNikJCUxpZWN0aGkgQUcKKwkJCQkxMCBVbnRlcmhvbHogU3RyZWV0CisJCQkJS3JpZWdzdGV0dGVuIFNvbG90aHVybiA0NTY2CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUMtOUUgICAoaGV4KQkJRHVhbHRlY2ggSVQgQUIKKzAwMUM5RSAgICAgKGJhc2UgMTYpCQlEdWFsdGVjaCBJVCBBQgorCQkJCUJhbmVoYWdzZ2F0YW4gMUYKKwkJCQlHT1RIRU5CVVJHIFbDpHN0cmEgR8O2dGFsYW5kIDQxNDUxCisJCQkJU1dFREVOCisKKzAwLTFDLTlGICAgKGhleCkJCVJhem9yc3RyZWFtLCBMTEMKKzAwMUM5RiAgICAgKGJhc2UgMTYpCQlSYXpvcnN0cmVhbSwgTExDCisJCQkJMjM4MS1DIFJlbmFpc3NhbmNlIERyaXZlCisJCQkJTGFzIFZlZ2FzIE5WIDg5MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1BMCAgIChoZXgpCQlQcm9kdWN0aW9uIFJlc291cmNlIEdyb3VwLCBMTEMKKzAwMUNBMCAgICAgKGJhc2UgMTYpCQlQcm9kdWN0aW9uIFJlc291cmNlIEdyb3VwLCBMTEMKKwkJCQk1MzkgVGVtcGxlIEhpbGwgUm9hZAorCQkJCU5ldyBXaW5kc29yIE5ZIDEyNTUzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1BMSAgIChoZXgpCQlBS0FNQUkgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDFDQTEgICAgIChiYXNlIDE2KQkJQUtBTUFJIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTggQ0FNQlJJREdFIENFTlRFUgorCQkJCUNBTUJSSURHRSBNQSAwMjE0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtQTIgICAoaGV4KQkJQURCIEJyb2FkYmFuZCBJdGFsaWEKKzAwMUNBMiAgICAgKGJhc2UgMTYpCQlBREIgQnJvYWRiYW5kIEl0YWxpYQorCQkJCVZJQUxFIFNBUkNBIDIyMgorCQkJCU1JTEFOTyAgMjAxMjYKKwkJCQlJVEFMWQorCiswMC0xQy1BMyAgIChoZXgpCQlUZXJyYQorMDAxQ0EzICAgICAoYmFzZSAxNikJCVRlcnJhCisJCQkJRHJhdWd5c3RlcyBzdHIuIDIyCisJCQkJS2F1bmFzICBMVC01MTI1NgorCQkJCUxJVEhVQU5JQQorCiswMC0xQy1BNCAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworMDAxQ0E0ICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU2vDpW5lIDIyMTg4CisJCQkJU1dFREVOCisKKzAwLTFDLUE1ICAgKGhleCkJCVp5Z28gQ29ycG9yYXRpb24KKzAwMUNBNSAgICAgKGJhc2UgMTYpCQlaeWdvIENvcnBvcmF0aW9uCisJCQkJMjEgTGF1cmVsIEJyb29rIFJkLgorCQkJCU1pZGRsZWZpZWxkIENUIDA2NDU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1BNiAgIChoZXgpCQlXaW40TkVUCiswMDFDQTYgICAgIChiYXNlIDE2KQkJV2luNE5FVAorCQkJCTEzMDEgS09MT04gRGlnaXRhbCBUb3dlciwKKwkJCQkyMjItNyBLdXJvLWRvbmcKKwkJCQlLdXJvLWd1IFNlb3VsIDE1Mi04NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtQTcgICAoaGV4KQkJSW50ZXJuYXRpb25hbCBRdWFydHogTGltaXRlZAorMDAxQ0E3ICAgICAoYmFzZSAxNikJCUludGVybmF0aW9uYWwgUXVhcnR6IExpbWl0ZWQKKwkJCQkybmQgRmxvb3IsIDIsIERhaSBXYW5nIFN0cmVldCwKKwkJCQlUYWkgUG8gSW5kdXN0cmlhbCBFc3RhdGUsIFRhaSBQbywgTi5ULgorCQkJCUhvbmcgS29uZyA4NTIKKwkJCQlDSElOQQorCiswMC0xQy1BOCAgIChoZXgpCQlBaXJUaWVzIFdpcmVsZXNzIE5ldHdvcmtzCiswMDFDQTggICAgIChiYXNlIDE2KQkJQWlyVGllcyBXaXJlbGVzcyBOZXR3b3JrcworCQkJCUJ1eXVrZGVyZSBDYWQgTm8gMTAzIEthdCA1CisJCQkJTWVjaWRpeWVrb3ksIElzdGFuYnVsIDM0NDYwCisJCQkJVFVSS0VZCisKKzAwLTFDLUE5ICAgKGhleCkJCUF1ZGlvbWF0aWNhIFNybAorMDAxQ0E5ICAgICAoYmFzZSAxNikJCUF1ZGlvbWF0aWNhIFNybAorCQkJCVZpYSBNYW5mcmVkaSAxMgorCQkJCUZsb3JlbmNlIEl0YWx5IDUwMTM2CisJCQkJSVRBTFkKKworMDAtMUMtQUEgICAoaGV4KQkJQmVsbG9uIFB0eSBMdGQKKzAwMUNBQSAgICAgKGJhc2UgMTYpCQlCZWxsb24gUHR5IEx0ZAorCQkJCVVuaXQgMTIvMTItMTggVmljdG9yaWEgU3QgRWFzdAorCQkJCUxpZGNvbWJlIE5TVyAyMDAwCisJCQkJQVVTVFJBTElBCisKKzAwLTFDLUFCICAgKGhleCkJCU1leWVyIFNvdW5kIExhYm9yYXRvcmllcywgSW5jLgorMDAxQ0FCICAgICAoYmFzZSAxNikJCU1leWVyIFNvdW5kIExhYm9yYXRvcmllcywgSW5jLgorCQkJCTI4MzIgU2FuIFBhYmxvIEF2ZS4KKwkJCQlCZXJrZWxleSBDQSA5NDcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtQUMgICAoaGV4KQkJUW5pcSBUZWNobm9sb2d5IENvcnAuCiswMDFDQUMgICAgIChiYXNlIDE2KQkJUW5pcSBUZWNobm9sb2d5IENvcnAuCisJCQkJNUYsIE5vLjEzMywgU2VjLjQsIE1pbnNoZW5nIEUuIFJkLiwKKwkJCQlTb25nc2hhbiBEaXN0cmljdCwKKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtQUQgICAoaGV4KQkJV3VoYW4gVGVsZWNvbW11bmljYXRpb24gRGV2aWNlcyBDby4sTHRkCiswMDFDQUQgICAgIChiYXNlIDE2KQkJV3VoYW4gVGVsZWNvbW11bmljYXRpb24gRGV2aWNlcyBDby4sTHRkCisJCQkJODggWW91a2V5dWFuIFJvYWQsSG9uZ3NoYW4gRGlzdHJpY3QKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzQKKwkJCQlDSElOQQorCiswMC0xQy1BRSAgIChoZXgpCQlXaUNob3J1cywgSW5jLgorMDAxQ0FFICAgICAoYmFzZSAxNikJCVdpQ2hvcnVzLCBJbmMuCisJCQkJMzU5MCBOIDFzdCBTdHJlZXQsIFN1aXRlIDMwMAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1BRiAgIChoZXgpCQlQbGF0byBOZXR3b3JrcyBJbmMuCiswMDFDQUYgICAgIChiYXNlIDE2KQkJUGxhdG8gTmV0d29ya3MgSW5jLgorCQkJCTI4NTUgS2lmZXIgUm9hZAorCQkJCVN1aXRlIDIwNAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1CMCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFDQjAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtQjEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQ0IxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUIyICAgKGhleCkJCUJQVCBTUEEKKzAwMUNCMiAgICAgKGJhc2UgMTYpCQlCUFQgU1BBCisJCQkJVmlhIFN0YXppb25lLDQ4CisJCQkJU2VzdG8gYWwgUmVnaGVuYSBQb3JkZW5vbmUgMzMwNzkKKwkJCQlJVEFMWQorCiswMC0xQy1CMyAgIChoZXgpCQlBUFBMRSwgSU5DCiswMDFDQjMgICAgIChiYXNlIDE2KQkJQVBQTEUsIElOQworCQkJCTEgSU5GSU5JVEUgTE9PUAorCQkJCUNVUEVSVElOTyBDQUxJRk9STklBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1CNCAgIChoZXgpCQlJcmlkaXVtIFNhdGVsbGl0ZSBMTEMKKzAwMUNCNCAgICAgKGJhc2UgMTYpCQlJcmlkaXVtIFNhdGVsbGl0ZSBMTEMKKwkJCQk4NDQwIFMuIFJpdmVyIFBhcmt3YXkKKwkJCQlUZW1wZSBBWiA4NTI4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtQjUgICAoaGV4KQkJTmVpaHVhIE5ldHdvcmsgVGVjaG5vbG9neSBDby4sTFRELihOSE4pCiswMDFDQjUgICAgIChiYXNlIDE2KQkJTmVpaHVhIE5ldHdvcmsgVGVjaG5vbG9neSBDby4sTFRELihOSE4pCisJCQkJUGxvdCBYaW5tZWkgUm9hZCAxMDItUSxOZXcgRGlzdHJpY3QKKwkJCQlXdVhpIEppYW5nc3UgMjE0MDI4CisJCQkJQ0hJTkEKKworMDAtMUMtQjYgICAoaGV4KQkJRHV6b24gQ05UIENvLiwgTHRkLgorMDAxQ0I2ICAgICAoYmFzZSAxNikJCUR1em9uIENOVCBDby4sIEx0ZC4KKwkJCQkxNHRoIEZsb29yLCBJUkUgYnVpbGRpbmcgMgorCQkJCVlhbmdweXVuZy1kb25nIDRnYSwgWW91bmdkdW5ncG8tZ3UKKwkJCQlTZW91bCAgMTUwLTk2NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xQy1CNyAgIChoZXgpCQlVU0MgRGlnaUFyayBDb3Jwb3JhdGlvbgorMDAxQ0I3ICAgICAoYmFzZSAxNikJCVVTQyBEaWdpQXJrIENvcnBvcmF0aW9uCisJCQkJNkYgVGVubm96IENlbnRyYWwgVG93ZXIgMi0yLTI0IEhpZ2FzaGlzaGluYWdhd2EKKwkJCQlUb2t5byBTaGluYWdhd2Eta3UgMTQwLTAwMDIKKwkJCQlKQVBBTgorCiswMC0xQy1COCAgIChoZXgpCQlDQkMgQ28uLCBMdGQKKzAwMUNCOCAgICAgKGJhc2UgMTYpCQlDQkMgQ28uLCBMdGQKKwkJCQkyLTE1LTEzLCBUc3VraXNoaW1hLCBDaHVvLWt1CisJCQkJVG9reW8gIDEwNC0wMDUyCisJCQkJSkFQQU4KKworMDAtMUMtQjkgICAoaGV4KQkJS1dBTkcgU1VORyBFTEVDVFJPTklDUyBDTy4sIExURC4KKzAwMUNCOSAgICAgKGJhc2UgMTYpCQlLV0FORyBTVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCTIwMSwgV09STEQgVkVOVFVSRSBUT1dOIDYwLTI0LCBHQVNBTi1ET05HIEdFVU1DSFVOLUdVLAorCQkJCVNFT1VMICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLUJBICAgKGhleCkJCVZlclNjaWVudCwgSW5jLgorMDAxQ0JBICAgICAoYmFzZSAxNikJCVZlclNjaWVudCwgSW5jLgorCQkJCTc3MDAgRXF1aXRhYmxlIERyaXZlCisJCQkJU3VpdGUgMTAwCisJCQkJRWRlbiBQcmFpcmllIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1CQiAgIChoZXgpCQlNdXNpY2lhbkxpbmsKKzAwMUNCQiAgICAgKGJhc2UgMTYpCQlNdXNpY2lhbkxpbmsKKwkJCQkyNDAxIENvcnkgQXZlLgorCQkJCVNhbiBKb3NlIENBIDk1MTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1CQyAgIChoZXgpCQlDYXN0R3JhYmJlciwgTExDCiswMDFDQkMgICAgIChiYXNlIDE2KQkJQ2FzdEdyYWJiZXIsIExMQworCQkJCTY1MDcgV2lsa2lucyBBdmVudWUKKwkJCQlQaXR0c2J1cmdoIFBBIDE1MjE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1CRCAgIChoZXgpCQlFenplIE1vYmlsZSBUZWNoLiwgSW5jLgorMDAxQ0JEICAgICAoYmFzZSAxNikJCUV6emUgTW9iaWxlIFRlY2guLCBJbmMuCisJCQkJM0YsIEJ1Ym11c2EgQmxkZy4sIDE1MS0zMQorCQkJCU5vbmh5dW4tZG9uZywgS2FuZ25hbS1rdQorCQkJCVNlb3VsIDEzNS04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtQkUgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDFDQkUgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gS1lPVE8gNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xQy1CRiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMUNCRiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFDLUMwICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxQ0MwICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMUMtQzEgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDFDQzEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjAwIE4uIFVTIDQ1CisJCQkJTGliZXJ0eXZpbGxlIElsbGlub2lzIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1DMiAgIChoZXgpCQlQYXJ0IElJIFJlc2VhcmNoLCBJbmMuCiswMDFDQzIgICAgIChiYXNlIDE2KQkJUGFydCBJSSBSZXNlYXJjaCwgSW5jLgorCQkJCTQ2MDEgRS4gQWlycG9ydCBEci4KKwkJCQlPbnRhcmlvIENBIDkxNzYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1DMyAgIChoZXgpCQlQYWNlIHBsYworMDAxQ0MzICAgICAoYmFzZSAxNikJCVBhY2UgcGxjCisJCQkJU2FsdHMgTWlsbAorCQkJCVZpY3RvcmlhIFJvYWQKKwkJCQlCcmFkZm9yZCBXZXN0IFlvcmtzaGlyZSBCRDE4IDNMRgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFDLUM0ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDFDQzQgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCW1zMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtQzUgICAoaGV4KQkJM0NPTSBMVEQKKzAwMUNDNSAgICAgKGJhc2UgMTYpCQkzQ09NIExURAorCQkJCTNDb20gRXVyb3BlIEx0ZCwgUGVvcGxlYnVpbGRpbmcgMgorCQkJCVBlb3BsZWJ1aWxkaW5nIEVzdGF0ZSwgTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xQy1DNiAgIChoZXgpCQlQcm9TdG9yIFN5c3RlbXMKKzAwMUNDNiAgICAgKGJhc2UgMTYpCQlQcm9TdG9yIFN5c3RlbXMKKwkJCQk1NTU1IENlbnRyYWwgQXZlbnVlCisJCQkJU3VpdGUgMTAwCisJCQkJQm91bGRlciBDb2xvcmFkbyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtQzcgICAoaGV4KQkJUmVtYnJhbmR0IFRlY2hub2xvZ2llcywgTExDIGQvYi9hIFJFTVNUUkVBTQorMDAxQ0M3ICAgICAoYmFzZSAxNikJCVJlbWJyYW5kdCBUZWNobm9sb2dpZXMsIExMQyBkL2IvYSBSRU1TVFJFQU0KKwkJCQkxNDAgU291dGggQmV2ZXJseSBEcml2ZQorCQkJCVN1aXRlIDIwMworCQkJCUJldmVybHkgSGlsbHMgQ0EgOTAyMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUM4ICAgKGhleCkJCUlORFVTVFJPTklDIEluZHVzdHJpZS1FbGVjdHJvbmljIEdtYkggJiBDby4gS0cKKzAwMUNDOCAgICAgKGJhc2UgMTYpCQlJTkRVU1RST05JQyBJbmR1c3RyaWUtRWxlY3Ryb25pYyBHbWJIICYgQ28uIEtHCisJCQkJQ2FybC1KYWNvYi1Lb2xiLVdlZyAxCisJCQkJV2VydGhlaW0gQmFkZW4tV3VlcnR0ZW1iZXJnIDk3ODc3CisJCQkJR0VSTUFOWQorCiswMC0xQy1DOSAgIChoZXgpCQlLYWlzZSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFDQzkgICAgIChiYXNlIDE2KQkJS2Fpc2UgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLjY3OCwgV3Vuc3l1ZSBSZC4sIFp1b3lpbmcgRGlzdHJpY3QsCisJCQkJS2FvaHNpdW5nICA4MTMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLUNBICAgKGhleCkJCVNoYW5naGFpIEdhb3poaSBTY2llbmNlICYgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby4KKzAwMUNDQSAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBHYW96aGkgU2NpZW5jZSAmIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ28uCisJCQkJTm8uMjgzIFFpbiBKaWFuZyBSZC4gU2hhbmdoYWksQ2hpbmEKKwkJCQlTaGFuZ2hhaSAgMjAwMjMzCisJCQkJQ0hJTkEKKworMDAtMUMtQ0IgICAoaGV4KQkJRm9ydGggQ29ycG9yYXRpb24gUHVibGljIENvbXBhbnkgTGltaXRlZAorMDAxQ0NCICAgICAoYmFzZSAxNikJCUZvcnRoIENvcnBvcmF0aW9uIFB1YmxpYyBDb21wYW55IExpbWl0ZWQKKwkJCQkyMjYvMTIsMTMsMTYgUGFob2x5b3RoaW4gUm9hZAorCQkJCVNhbXNlbm5haSwgUGF5YXRoYWkKKwkJCQlCYW5na29rICAxMDQwMAorCQkJCVRIQUlMQU5ECisKKzAwLTFDLUNDICAgKGhleCkJCVJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkCiswMDFDQ0MgICAgIChiYXNlIDE2KQkJUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQKKwkJCQkzMDUgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCAzVzgKKwkJCQlDQU5BREEKKworMDAtMUMtQ0QgICAoaGV4KQkJQWxla3Ryb25hIENvcnBvcmF0aW9uCiswMDFDQ0QgICAgIChiYXNlIDE2KQkJQWxla3Ryb25hIENvcnBvcmF0aW9uCisJCQkJOTUgSGF0aGF3YXkgU3RyZWV0LCBTdWl0ZSAxMAorCQkJCVByb3ZpZGVuY2UgUkkgMDI5MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUNFICAgKGhleCkJCUJ5IFRlY2hkZXNpZ24KKzAwMUNDRSAgICAgKGJhc2UgMTYpCQlCeSBUZWNoZGVzaWduCisJCQkJQy8gTWFycXVlcyBkZSBBaHVtYWRhIDExCisJCQkJTWFkcmlkICAyODAyOAorCQkJCVNQQUlOCisKKzAwLTFDLUNGICAgKGhleCkJCUxJTUVURUsKKzAwMUNDRiAgICAgKGJhc2UgMTYpCQlMSU1FVEVLCisJCQkJIzIxMy0xLCBCeXVja3NhbiBEaWdpdGFsIFZhbGxleSBJSSwgNDgwLTEwLCBHYXNhbi1kb25nLAorCQkJCUdldW1jaGVuLWd1CisJCQkJU2VvdWwgIDE1My03ODMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtRDAgICAoaGV4KQkJQ2lyY2xlb25lIENvLixMdGQuCiswMDFDRDAgICAgIChiYXNlIDE2KQkJQ2lyY2xlb25lIENvLixMdGQuCisJCQkJODYwLTEsTm9kYQorCQkJCUJlcHB1LXNoaSBPb2l0YS1rZW4gODc0LTAwMTYKKwkJCQlKQVBBTgorCiswMC0xQy1EMSAgIChoZXgpCQlXYXZlcyBBdWRpbyBMVEQKKzAwMUNEMSAgICAgKGJhc2UgMTYpCQlXYXZlcyBBdWRpbyBMVEQKKwkJCQlBenJpbGVpIENlbnRlciAzLCBUcmlhbmdsZSB0b3dlcgorCQkJCTMybmQgZmxvb3IKKwkJCQlUZWwgQXZpdiBDZW50cmFsIDY3MDIzCisJCQkJSVNSQUVMCisKKzAwLTFDLUQyICAgKGhleCkJCUtpbmcgQ2hhbXBpb24gKEhvbmcgS29uZykgTGltaXRlZAorMDAxQ0QyICAgICAoYmFzZSAxNikJCUtpbmcgQ2hhbXBpb24gKEhvbmcgS29uZykgTGltaXRlZAorCQkJCVVuaXQgMTUyMCwgMTUvRiwgUGhhc2UgMSwgTWV0cm8gQ2VudHJlLAorCQkJCTMyIExhbSBIaW5nIFN0cmVldCwgS293bG9vbiBCYXksCisJCQkJS293bG9vbiAgCisJCQkJSE9ORyBLT05HCisKKzAwLTFDLUQzICAgKGhleCkJCVpQIEVuZ2luZWVyaW5nIFNFTAorMDAxQ0QzICAgICAoYmFzZSAxNikJCVpQIEVuZ2luZWVyaW5nIFNFTAorCQkJCXZpYSBBcmRpdG8gRGVzaW8sIDYwCisJCQkJVGVjbm9wb2xvIFRpYnVydGlubworCQkJCVJPTUUgIDAwMTMxCisJCQkJSVRBTFkKKworMDAtMUMtRDQgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUNENCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUMtRDUgICAoaGV4KQkJWmVlVmVlLCBJbmMuCiswMDFDRDUgICAgIChiYXNlIDE2KQkJWmVlVmVlLCBJbmMuCisJCQkJMSBNb25hcmNoIERyaXZlCisJCQkJU3VpdGUgMjAwCisJCQkJTGl0dGxldG9uIE1BIDAxNDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1ENiAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxQ0Q2ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xQy1ENyAgIChoZXgpCQlIYXJtYW4vQmVja2VyIEF1dG9tb3RpdmUgU3lzdGVtcyBHbWJICiswMDFDRDcgICAgIChiYXNlIDE2KQkJSGFybWFuL0JlY2tlciBBdXRvbW90aXZlIFN5c3RlbXMgR21iSAorCQkJCUJlY2tlci1Hw7ZyaW5nLVN0ci4gMTYKKwkJCQlLYXJsc2JhZCBCYWRlbiAtIFfDvHJ0dGVtYmVyZyA3NjMwNworCQkJCUdFUk1BTlkKKworMDAtMUMtRDggICAoaGV4KQkJQmx1ZUFudCBXaXJlbGVzcworMDAxQ0Q4ICAgICAoYmFzZSAxNikJCUJsdWVBbnQgV2lyZWxlc3MKKwkJCQkyNDUgU3QuS2lsZGEgUmQsIFN0IEtpbGRhCisJCQkJTWVsYm91cm5lIFZpY3RvcmlhIDMxODIKKwkJCQlBVVNUUkFMSUEKKworMDAtMUMtRDkgICAoaGV4KQkJR2xvYmFsVG9wIFRlY2hub2xvZ3kgSW5jLgorMDAxQ0Q5ICAgICAoYmFzZSAxNikJCUdsb2JhbFRvcCBUZWNobm9sb2d5IEluYy4KKwkJCQkxNiBOYW4ta2UgOXRoIFJkLiBTY2llbmNlLWJhc2UgSW5kdXN0cmlhbCBQYXJrLAorCQkJCVNoYW5IdWEgVGFpbmFuIGNvdW50eSA3NDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLURBICAgKGhleCkJCUV4ZWdpbiBUZWNobm9sb2dpZXMgTGltaXRlZAorMDAxQ0RBICAgICAoYmFzZSAxNikJCUV4ZWdpbiBUZWNobm9sb2dpZXMgTGltaXRlZAorCQkJCTIwNCAtIDIwNzEgS2luZ3N3YXkgQXZlbnVlCisJCQkJUG9ydCBDb3F1aXRsYW0gQkMgVjNDIDZOMgorCQkJCUNBTkFEQQorCiswMC0xQy1EQiAgIChoZXgpCQlDQVJQT0lOVCBDTy4sTFRECiswMDFDREIgICAgIChiYXNlIDE2KQkJQ0FSUE9JTlQgQ08uLExURAorCQkJCTEzNDAtNiwgTmFtZ2FuZyBCbGQgN0YsIFNlb2Noby1Eb25nCisJCQkJU2VvY2hvLUt1LAorCQkJCVNFT1VMICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFDLURDICAgKGhleCkJCUN1c3RvbSBDb21wdXRlciBTZXJ2aWNlcywgSW5jLgorMDAxQ0RDICAgICAoYmFzZSAxNikJCUN1c3RvbSBDb21wdXRlciBTZXJ2aWNlcywgSW5jLgorCQkJCTEwMjAgU3ByaW5nIENpdHkgRHJpdmUKKwkJCQlXYXVrZXNoYSBXSSA1MzE4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtREQgICAoaGV4KQkJQ09XQkVMTCBFTkdJTkVFUklORyBDTy4sIExURC4KKzAwMUNERCAgICAgKGJhc2UgMTYpCQlDT1dCRUxMIEVOR0lORUVSSU5HIENPLiwgTFRELgorCQkJCTE3MzktMSBOYWdhdG9ybworCQkJCVNBS1UgTmFnYW5vIDM4NS0wMDIxCisJCQkJSkFQQU4KKworMDAtMUMtREUgICAoaGV4KQkJSW50ZXJhY3RpdmUgTXVsdGltZWRpYSBlWGNoYW5nZSBJbmMuCiswMDFDREUgICAgIChiYXNlIDE2KQkJSW50ZXJhY3RpdmUgTXVsdGltZWRpYSBlWGNoYW5nZSBJbmMuCisJCQkJTk8uIDE2NSBXZW5saW4gUm9hZC4KKwkJCQlUYWlwZWkgVGFpd2FuIDExMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtREYgICAoaGV4KQkJQmVsa2luIEludGVybmF0aW9uYWwgSW5jLgorMDAxQ0RGICAgICAoYmFzZSAxNikJCUJlbGtpbiBJbnRlcm5hdGlvbmFsIEluYy4KKwkJCQk1MDEgVy4gV2FsbnV0IFN0LgorCQkJCUNvbXB0b24gQ2EgOTAyMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUUwICAgKGhleCkJCURBU0FOIFRQUworMDAxQ0UwICAgICAoYmFzZSAxNikJCURBU0FOIFRQUworCQkJCUhVTUFYIFZpbGxhZ2UgNkYsIDExLTQgU3VuYWUtZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2My04MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUMtRTEgICAoaGV4KQkJSU5EUkEgU0lTVEVNQVMsIFMuQS4KKzAwMUNFMSAgICAgKGJhc2UgMTYpCQlJTkRSQSBTSVNURU1BUywgUy5BLgorCQkJCUN0cmEuIGRlIExvZWNoZXMsIG4uw4LCuiA5CisJCQkJVE9SUkVKw4PigJxOIERFIEFSRE9aIE1BRFJJRCAyODg1MAorCQkJCVNQQUlOCisKKzAwLTFDLUUyICAgKGhleCkJCUF0dGVybyBUZWNoLCBMTEMuCiswMDFDRTIgICAgIChiYXNlIDE2KQkJQXR0ZXJvIFRlY2gsIExMQy4KKwkJCQkxMzE1IERpcmVjdG9ycyBSb3cgLSBTdWl0ZSAxMDcKKwkJCQlGb3J0IFdheW5lIEluZGlhbmEgNDY4MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUUzICAgKGhleCkJCU9wdGltZWRpY2FsIFN5c3RlbXMKKzAwMUNFMyAgICAgKGJhc2UgMTYpCQlPcHRpbWVkaWNhbCBTeXN0ZW1zCisJCQkJMjM1IEhlbWJyZWUgUGFyayBEcml2ZQorCQkJCVJvc3dlbGwgR0EgMzAwNzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUU0ICAgKGhleCkJCUVsZVN5IEpTQworMDAxQ0U0ICAgICAoYmFzZSAxNikJCUVsZVN5IEpTQworCQkJCUFsdGF5c2theWEgc3RyZWV0LCAxNjFhCisJCQkJVG9tc2sgb2JsYXN0IDYzNDAyMQorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xQy1FNSAgIChoZXgpCQlNQlMgRWxlY3Ryb25pYyBTeXN0ZW1zIEdtYkgKKzAwMUNFNSAgICAgKGJhc2UgMTYpCQlNQlMgRWxlY3Ryb25pYyBTeXN0ZW1zIEdtYkgKKwkJCQlSaW5nc3RyYXNzZSAzCisJCQkJODIzMTkgU3Rhcm5iZXJnIEJhdmFyaWEgODIzMTkKKwkJCQlHRVJNQU5ZCisKKzAwLTFDLUU2ICAgKGhleCkJCUlOTkVTCiswMDFDRTYgICAgIChiYXNlIDE2KQkJSU5ORVMKKwkJCQk4MCBhdmVudWUgZGVzIEJ1dHRlcyBkZSBDb8Orc21lcworCQkJCVJFTk5FUyAgMzU3MDAKKwkJCQlGUkFOQ0UKKworMDAtMUMtRTcgICAoaGV4KQkJUm9jb24gUExDIFJlc2VhcmNoIENlbnRyZQorMDAxQ0U3ICAgICAoYmFzZSAxNikJCVJvY29uIFBMQyBSZXNlYXJjaCBDZW50cmUKKwkJCQkyMSBWZWsgNTZBIHN0ci4KKwkJCQlTb2ZpYSAgMTcwMAorCQkJCUJVTEdBUklBCisKKzAwLTFDLUU4ICAgKGhleCkJCUN1bW1pbnMgSW5jCiswMDFDRTggICAgIChiYXNlIDE2KQkJQ3VtbWlucyBJbmMKKwkJCQkxNDAwIDczcmQgQXZlIE5FCisJCQkJRnJpZGxleSBNTiA1NTQzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRTkgICAoaGV4KQkJR2FsYXh5IFRlY2hub2xvZ3kgTGltaXRlZAorMDAxQ0U5ICAgICAoYmFzZSAxNikJCUdhbGF4eSBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQk5L0YgV2luIEZ1bGwgQ29tbWVyaWNhbCBCdWlsZGluZywgMTcyLTE3NiBXaW5nIExvayBTdHJlZXQsCisJCQkJU2hldW5nIFdhbiwgIAorCQkJCUhPTkcgS09ORworCiswMC0xQy1FQSAgIChoZXgpCQlTY2llbnRpZmljLUF0bGFudGEsIEluYworMDAxQ0VBICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMtQXRsYW50YSwgSW5jCisJCQkJNTAzMCBTdWdhcmxvYWYgUGt3eQorCQkJCUFUTCAyLlQuNjAzCisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRUIgICAoaGV4KQkJTm9ydGVsCiswMDFDRUIgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTFDLUVDICAgKGhleCkJCU1vYmlsZXNvZnQgKEF1c3QuKSBQdHkgTHRkCiswMDFDRUMgICAgIChiYXNlIDE2KQkJTW9iaWxlc29mdCAoQXVzdC4pIFB0eSBMdGQKKwkJCQlTdWl0ZSAyLCAyNy0zNSBHcm9zdmVub3IgU3RyZWV0CisJCQkJTmV1dHJhbCBCYXkKKwkJCQlTeWRuZXkgTlNXIDIwODkKKwkJCQlBVVNUUkFMSUEKKworMDAtMUMtRUQgICAoaGV4KQkJRU5WSVJPTk5FTUVOVCBTQQorMDAxQ0VEICAgICAoYmFzZSAxNikJCUVOVklST05ORU1FTlQgU0EKKwkJCQkxMTEgYmQuIFJvYmVzcGllcnJlCisJCQkJUE9JU1NZIFl2ZWxpbmVzIDc4MzAwCisJCQkJRlJBTkNFCisKKzAwLTFDLUVFICAgKGhleCkJCVNIQVJQIENvcnBvcmF0aW9uCiswMDFDRUUgICAgIChiYXNlIDE2KQkJU0hBUlAgQ29ycG9yYXRpb24KKwkJCQkyMi0yMixOYWdhaWtlLWNobyxBYmVuby1rdQorCQkJCU9zYWthICA1NDUtODUyMgorCQkJCUpBUEFOCisKKzAwLTFDLUVGICAgKGhleCkJCVByaW1heCBFbGVjdHJvbmljcyBMVEQKKzAwMUNFRiAgICAgKGJhc2UgMTYpCQlQcmltYXggRWxlY3Ryb25pY3MgTFRECisJCQkJNjY5LCBSdWV5IEt1YW5nIFJvYWQsIE5laWh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFDLUYwICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxQ0YwICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5PLjI4OSwgU2luaHUgM3JkIFJkLiwKKwkJCQlOZWlodSBEaXN0cmljdCwgVGFpcGVpIENpdHkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xQy1GMSAgIChoZXgpCQlTVVBvWCBUZWNobm9sb2d5IENvLiAsIExURC4KKzAwMUNGMSAgICAgKGJhc2UgMTYpCQlTVVBvWCBUZWNobm9sb2d5IENvLiAsIExURC4KKwkJCQk3RiwgNDE5ICwgQ2h1bmcgU2FuIFJkLiAsIFNlYyAyCisJCQkJQ2h1bmcgSG8gVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUMtRjIgICAoaGV4KQkJVGVubG9uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMUNGMiAgICAgKGJhc2UgMTYpCQlUZW5sb24gVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTQvRi4sU2hlbmh1YSBCbGRnLE5vLjMxNTUsQmluaGUgUm9hZCxGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDMzCisJCQkJQ0hJTkEKKworMDAtMUMtRjMgICAoaGV4KQkJRVZTIEJST0FEQ0FTVCBFUVVJUE1FTlQKKzAwMUNGMyAgICAgKGJhc2UgMTYpCQlFVlMgQlJPQURDQVNUIEVRVUlQTUVOVAorCQkJCUxpZWdlIFNjaWVuY2UgUGFyaworCQkJCXJ1ZSBCb2lzIFN0IEplYW4gMTYKKwkJCQlPdWdyZWUgTGllZ2UgNDEwMgorCQkJCUJFTEdJVU0KKworMDAtMUMtRjQgICAoaGV4KQkJTWVkaWEgVGVjaG5vbG9neSBTeXN0ZW1zIEluYworMDAxQ0Y0ICAgICAoYmFzZSAxNikJCU1lZGlhIFRlY2hub2xvZ3kgU3lzdGVtcyBJbmMKKwkJCQk3NjYgTGFrZWZpZWxkIFJvYWQKKwkJCQlVbml0IEYKKwkJCQlXZXN0bGFrZSBWaWxsYWdlIENBIDkxMzc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1GNSAgIChoZXgpCQlXaXNlYmx1ZSBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMUNGNSAgICAgKGJhc2UgMTYpCQlXaXNlYmx1ZSBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlSbSBHNSwgNS9GLCBLaW5nc2ZvcmQgSW5kdXN0cmlhbCBCdWlsZGluZyBQaGFzZSBJSSwgMjYtMzIgS3dhaSBIZWkgU3RyZWV0LAorCQkJCUt3YWkgQ2h1bmcgTi5ULiAKKwkJCQlIT05HIEtPTkcKKworMDAtMUMtRjYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxQ0Y2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUY3ICAgKGhleCkJCUF1ZGlvU2NpZW5jZQorMDAxQ0Y3ICAgICAoYmFzZSAxNikJCUF1ZGlvU2NpZW5jZQorCQkJCTcyOSB3ZXN0IDE2dGggc3QKKwkJCQlTdWl0ZSBDMgorCQkJCUNvc3RhIE1lc2EgQ2FsaWZvcm5pYSA5MjYyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRjggICAoaGV4KQkJUGFyYWRlIFRlY2hub2xvZ2llcywgTHRkLgorMDAxQ0Y4ICAgICAoYmFzZSAxNikJCVBhcmFkZSBUZWNobm9sb2dpZXMsIEx0ZC4KKwkJCQlDL08gUGFyYWRlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTUzMCBMYWtlc2lkZSBEci4gU3VpdGUgMjMwCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xQy1GOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFDRjkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRkEgICAoaGV4KQkJQWxhcm0uY29tCiswMDFDRkEgICAgIChiYXNlIDE2KQkJQWxhcm0uY29tCisJCQkJODE1MCBMZWVzYnVyZyBQaWtlCisJCQkJU3VpdGUgMTQwMAorCQkJCVZpZW5uYSBWQSAyMjE4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRkIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUNGQiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFDLUZDICAgKGhleCkJCVN1bWluZXQgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgKFNoYW5naGFpKSBDby4sIEx0ZC4KKzAwMUNGQyAgICAgKGJhc2UgMTYpCQlTdW1pbmV0IENvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIChTaGFuZ2hhaSkgQ28uLCBMdGQuCisJCQkJNEYsIDNCbGQuIDY0NyBMb25nLCBTb25nVGFvIFJvYWQsIFpoYW5nSmlhbmcgSGktVGVjaCBQYXJrCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzAwLTFDLUZEICAgKGhleCkJCVVuaXZlcnNhbCBFbGVjdHJvbmljcworMDAxQ0ZEICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBFbGVjdHJvbmljcworCQkJCTYxMDEgR2F0ZXdheSBEcml2ZQorCQkJCUN5cHJlc3MgQ2FsaWZvcm5pYSA5MDYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRkUgICAoaGV4KQkJUXVhcnRpY3MgSW5jCiswMDFDRkUgICAgIChiYXNlIDE2KQkJUXVhcnRpY3MgSW5jCisJCQkJMTUyNDEgTGFndW5hIENhbnlvbiBSb2FkCisJCQkJU3RlIDIwMAorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUMtRkYgICAoaGV4KQkJTmFwZXJhIE5ldHdvcmtzIEluYworMDAxQ0ZGICAgICAoYmFzZSAxNikJCU5hcGVyYSBOZXR3b3JrcyBJbmMKKwkJCQk3NjgzIFNFIDI3dGgKKwkJCQlTdWl0ZSAxMjAKKwkJCQlNZXJjZXIgSXNsYW5kIFdBIDk4MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0wMCAgIChoZXgpCQlCcml2byBTeXN0ZW1zLCBMTEMKKzAwMUQwMCAgICAgKGJhc2UgMTYpCQlCcml2byBTeXN0ZW1zLCBMTEMKKwkJCQk0MzMwIEVhc3QgV2VzdCBIaWdod2F5CisJCQkJU3VpdGUgMjUwCisJCQkJQmV0aGVzZGEgTUQgMjA4MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTAxICAgKGhleCkJCU5lcHR1bmUgRGlnaXRhbAorMDAxRDAxICAgICAoYmFzZSAxNikJCU5lcHR1bmUgRGlnaXRhbAorCQkJCU1lZG5hcm9kbmkgbWVqbmkgcHJlaG9kIDYKKwkJCQlWcnRvamJhIE5vdmEgR29yaWNhIDUyOTAKKwkJCQlTTE9WRU5JQQorCiswMC0xRC0wMiAgIChoZXgpCQlDeWJlcnRlY2ggVGVsZWNvbSBEZXZlbG9wbWVudAorMDAxRDAyICAgICAoYmFzZSAxNikJCUN5YmVydGVjaCBUZWxlY29tIERldmVsb3BtZW50CisJCQkJSGF6ZW5rb29nIDI1CisJCQkJQWxrbWFhciBOb29yZCBIb2xsYW5kIDE4MjIgQlMKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRC0wMyAgIChoZXgpCQlEZXNpZ24gU29sdXRpb25zIEluYy4KKzAwMUQwMyAgICAgKGJhc2UgMTYpCQlEZXNpZ24gU29sdXRpb25zIEluYy4KKwkJCQk4MSBEYXZpZCBMb3ZlIFBsYWNlCisJCQkJR29sZXRhIENhIDkzMTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0wNCAgIChoZXgpCQlaaXBpdCBXaXJlbGVzcywgSW5jLgorMDAxRDA0ICAgICAoYmFzZSAxNikJCVppcGl0IFdpcmVsZXNzLCBJbmMuCisJCQkJNDkgU2FsdGVycyBSb2FkLgorCQkJCVN1aXRlIDYKKwkJCQlHcmVlbnZpbGxlIFNDIDI5NjA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0wNSAgIChoZXgpCQlpTGlnaHQKKzAwMUQwNSAgICAgKGJhc2UgMTYpCQlpTGlnaHQKKwkJCQlVbml0IDQgRW50ZXJwcmlzZSBDZW50cmUKKwkJCQlSb2d1ZXMgSGlsbAorCQkJCVBlbnNodXJzdCBLZW50IFROMTEgOEJHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUQtMDYgICAoaGV4KQkJSE0gRWxlY3Ryb25pY3MsIEluYy4KKzAwMUQwNiAgICAgKGJhc2UgMTYpCQlITSBFbGVjdHJvbmljcywgSW5jLgorCQkJCTE0MTEwIFN0b3dlIERyaXZlCisJCQkJUG93YXkgQ0EgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTA3ICAgKGhleCkJCVNoZW56aGVuIFNhbmcgRmVpIENvbnN1bWVyIENvbW11bmljYXRpb25zIENvLixMdGQKKzAwMUQwNyAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBTYW5nIEZlaSBDb25zdW1lciBDb21tdW5pY2F0aW9ucyBDby4sTHRkCisJCQkJMTEgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSBSb2FkLAorCQkJCVNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgSW5kdXN0cmlhbCBQYXJrIE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTFELTA4ICAgKGhleCkJCUpJQU5HU1UgWUlOSEUgRUxFQ1RST05JQ1MgQ08uLCBMVEQKKzAwMUQwOCAgICAgKGJhc2UgMTYpCQlKSUFOR1NVIFlJTkhFIEVMRUNUUk9OSUNTIENPLiwgTFRECisJCQkJMTg4IE5BTkhVQU4gUk9BRAorCQkJCVRBTkdRSUFPCisJCQkJWkhBTkdKSUFHQU5HIEpJQU5HU1UgMjE1NjExCisJCQkJQ0hJTkEKKworMDAtMUQtMDkgICAoaGV4KQkJRGVsbCBJbmMKKzAwMUQwOSAgICAgKGJhc2UgMTYpCQlEZWxsIEluYworCQkJCU9uZSBEZWxsIFdheSwgTVMgUlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtMEEgICAoaGV4KQkJRGF2aXMgSW5zdHJ1bWVudHMsIEluYy4KKzAwMUQwQSAgICAgKGJhc2UgMTYpCQlEYXZpcyBJbnN0cnVtZW50cywgSW5jLgorCQkJCTM0NjUgRGlhYmxvIEF2ZS4KKwkJCQlIYXl3YXJkIENBIDk0NTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0wQiAgIChoZXgpCQlQb3dlciBTdGFuZGFyZHMgTGFiCiswMDFEMEIgICAgIChiYXNlIDE2KQkJUG93ZXIgU3RhbmRhcmRzIExhYgorCQkJCTEyMDEgTWFyaW5hIFZpbGxhZ2UgUGFya3dheSAjMTAxCisJCQkJQWxhbWVkYSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtMEMgICAoaGV4KQkJTW9iaWxlQ29tcGlhCiswMDFEMEMgICAgIChiYXNlIDE2KQkJTW9iaWxlQ29tcGlhCisJCQkJRG9uZ3dvbiBCbGRnLCA3MjUtMzAsIFllb2tzYW0tZG9uZywgR2FuZ25hbS1ndSwKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRC0wRCAgIChoZXgpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgaW5jLgorMDAxRDBEICAgICAoYmFzZSAxNikJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBpbmMuCisJCQkJNi0yMSwyQ2hvbWUKKwkJCQlNaW5hbWktQW95YW1hCisJCQkJTWluYXRvLUt1IFRva3lvIDEwNy0wMDYyCisJCQkJSkFQQU4KKworMDAtMUQtMEUgICAoaGV4KQkJQWdhcGhhIFRlY2hub2xvZ3kgY28uLCBMdGQuCiswMDFEMEUgICAgIChiYXNlIDE2KQkJQWdhcGhhIFRlY2hub2xvZ3kgY28uLCBMdGQuCisJCQkJOUYgTm8uMTIxLCBTaGluZ2RlIFJkLiwKKwkJCQlTYW5jaHVuZyBDaXR5IFRhaXBlaSBDb3VudHkgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC0wRiAgIChoZXgpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMUQwRiAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQkzL0YsIEJsZGcuIFIxLUIsCisJCQkJSGktdGVjaCBJbmR1c3RyaWFsIFBhcmssIFNoZW5uYW4gUmQuLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xRC0xMCAgIChoZXgpCQlMaWdodEhhdXMgTG9naWMsIEluYy4KKzAwMUQxMCAgICAgKGJhc2UgMTYpCQlMaWdodEhhdXMgTG9naWMsIEluYy4KKwkJCQkxMjYtMTAyMCBNYWlubGFuZCBTdHJlZXQKKwkJCQlWYW5jb3V2ZXIgQkMgVjZCIDJUNAorCQkJCUNBTkFEQQorCiswMC0xRC0xMSAgIChoZXgpCQlBbmFsb2d1ZSAmIE1pY3JvIEx0ZAorMDAxRDExICAgICAoYmFzZSAxNikJCUFuYWxvZ3VlICYgTWljcm8gTHRkCisJCQkJTGFrZXNpZGUgSG91c2UKKwkJCQlMYWtlc2lkZQorCQkJCUxsYW50YXJuYW0gSW5kdXN0cmlhbCBQYXJrIEN3bWJyYW4gTlA0NCAzWFMKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRC0xMiAgIChoZXgpCQlST0hNIENPLiwgTFRELgorMDAxRDEyICAgICAoYmFzZSAxNikJCVJPSE0gQ08uLCBMVEQuCisJCQkJMjEgU2FpaW4tTWl6b3Nha2ktY2hvLAorCQkJCVVreW8ta3UsCisJCQkJS3lvdG8tc2hpIEtZT1RPIDYxNS04NTg1CisJCQkJSkFQQU4KKworMDAtMUQtMTMgICAoaGV4KQkJTmV4dEdUVgorMDAxRDEzICAgICAoYmFzZSAxNikJCU5leHRHVFYKKwkJCQkxM0YgQnl1Y2tzYW4vS3l1bmdpbiBEaWdpdGFsIFZhbGxleSBsbAorCQkJCUdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELTE0ICAgKGhleCkJCVNQRVJBRFRPTkUgSU5GT1JNQVRJT04gVEVDSE5PTE9HWSBMSU1JVEVECiswMDFEMTQgICAgIChiYXNlIDE2KQkJU1BFUkFEVE9ORSBJTkZPUk1BVElPTiBURUNITk9MT0dZIExJTUlURUQKKwkJCQlSb29tIDEwMDEgTk8uNDE4IEd1aSBQaW5nIFJvYWQsCisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTFELTE1ICAgKGhleCkJCVNoZW56aGVuIERvbHBoaW4gRWxlY3Ryb25pYyBDby4sIEx0ZAorMDAxRDE1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIERvbHBoaW4gRWxlY3Ryb25pYyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nMjEsQmFveXVhbiwgTm8uMSBJbmR1c3RyaWFsIFpvbmUsCisJCQkJWGl4aWFuZywgQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwMworCQkJCUNISU5BCisKKzAwLTFELTE2ICAgKGhleCkJCUVmaXhvCiswMDFEMTYgICAgIChiYXNlIDE2KQkJRWZpeG8KKwkJCQk1IGF2ZW51ZSBkZSBTYWludCBNZW5ldAorCQkJCUltbWV1YmxlIEF4aW9tZSwgQsOidCBCCisJCQkJTUFSU0VJTExFIFBBQ0EgMTMwMTEKKwkJCQlGUkFOQ0UKKworMDAtMUQtMTcgICAoaGV4KQkJRGlnaXRhbCBTa3kgQ29ycG9yYXRpb24KKzAwMUQxNyAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFNreSBDb3Jwb3JhdGlvbgorCQkJCTUtNS0xNSBTb3Rva2FuZGEsCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtMDAyMQorCQkJCUpBUEFOCisKKzAwLTFELTE4ICAgKGhleCkJCVBvd2VyIElubm92YXRpb24gR21iSAorMDAxRDE4ICAgICAoYmFzZSAxNikJCVBvd2VyIElubm92YXRpb24gR21iSAorCQkJCVJlaGxhbmQgMgorCQkJCUFjaGltIE5pZWRlcnNhY2hzZW4gMjg4MzIKKwkJCQlHRVJNQU5ZCisKKzAwLTFELTE5ICAgKGhleCkJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMUQxOSAgICAgKGJhc2UgMTYpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYuLCBOby4gOSAsIFBhcmsgQXZlbnVlIElJLAorCQkJCVNjaWVuY2UtYmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtMUEgICAoaGV4KQkJT3Zpc0xpbmsgUy5BLgorMDAxRDFBICAgICAoYmFzZSAxNikJCU92aXNMaW5rIFMuQS4KKwkJCQlDL0FuZHJlcyBPYmlzcG8sIDM3LiBQbC4gNC4KKwkJCQlNYWRyaWQgIDI4MDQzCisJCQkJU1BBSU4KKworMDAtMUQtMUIgICAoaGV4KQkJU2FuZ2VhbiBFbGVjdHJvbmljcyBJbmMuCiswMDFEMUIgICAgIChiYXNlIDE2KQkJU2FuZ2VhbiBFbGVjdHJvbmljcyBJbmMuCisJCQkJTm8uIDE4LCBMYW5lIDcsIExpLURlIHN0cmVldAorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtMUMgICAoaGV4KQkJR2VubmV0IHMuYS4KKzAwMUQxQyAgICAgKGJhc2UgMTYpCQlHZW5uZXQgcy5hLgorCQkJCTIgTWVzb2dlaW9uIGF2ZS4KKwkJCQlQaXJnb3MgQXRoaW5vbgorCQkJCUF0aGVucyBBdHRpa2kgMTE1MjcKKwkJCQlHUkVFQ0UKKworMDAtMUQtMUQgICAoaGV4KQkJSW50ZXItTSBDb3Jwb3JhdGlvbgorMDAxRDFEICAgICAoYmFzZSAxNikJCUludGVyLU0gQ29ycG9yYXRpb24KKwkJCQk2NTMtNSBCYW5naGFrLURvbmcsIERvYm9uZy1LdQorCQkJCVNlb3VsICAxMzItODQ2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELTFFICAgKGhleCkJCUtZVVNIVSBURU4gQ08uLExURAorMDAxRDFFICAgICAoYmFzZSAxNikJCUtZVVNIVSBURU4gQ08uLExURAorCQkJCTIzNjAgWVVOT0tJTU9UT01BQ0hJCisJCQkJU0FTRUJPLUNpdHkgTkFHQVNBS0kgUHJlZmVjdHVyZSA4NTctMDExNQorCQkJCUpBUEFOCisKKzAwLTFELTFGICAgKGhleCkJCVNpYXVsaXUgVGF1cm8gVGVsZXZpem9yaWFpLCBKU0MKKzAwMUQxRiAgICAgKGJhc2UgMTYpCQlTaWF1bGl1IFRhdXJvIFRlbGV2aXpvcmlhaSwgSlNDCisJCQkJUHJhbW9uZXMsMTUKKwkJCQlTaWF1bGlhaSAgTFQtNTczMTgKKwkJCQlMSVRIVUFOSUEKKworMDAtMUQtMjAgICAoaGV4KQkJQ09NVFJFTkQgQ08uCiswMDFEMjAgICAgIChiYXNlIDE2KQkJQ09NVFJFTkQgQ08uCisJCQkJM0YtMSAxMCBMQU5FIDYwOSBDSFVORyBIU0lOIFJPQUQsIFNFQyA1LCBTQU4gQ0hVTkcgQ0lUWSwgVEFJUEVJIFRBSVdBTiAyNDEKKwkJCQlUQUlQRUkgIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtMjEgICAoaGV4KQkJQWxjYWQgU0wKKzAwMUQyMSAgICAgKGJhc2UgMTYpCQlBbGNhZCBTTAorCQkJCVBvbC4gSW5kLiBBcnJlY2hlLVVnYWxkZSwgMQorCQkJCUlyw7puIEd1aXDDunpjb2EgRS0yMDMwNQorCQkJCVNQQUlOCisKKzAwLTFELTIyICAgKGhleCkJCUZvc3MgQW5hbHl0aWNhbCBBL1MKKzAwMUQyMiAgICAgKGJhc2UgMTYpCQlGb3NzIEFuYWx5dGljYWwgQS9TCisJCQkJU2xhbmdlcnVwZ2FkZSA2OQorCQkJCUhpbGxlcsO4ZCBTZWVsYW5kIDM0MDAKKwkJCQlERU5NQVJLCisKKzAwLTFELTIzICAgKGhleCkJCVNFTlNVUyAKKzAwMUQyMyAgICAgKGJhc2UgMTYpCQlTRU5TVVMgCisJCQkJNDQgQ0FTVElMSUFOIERSSVZFCisJCQkJR09MRVRBIENBTElGT1JOSUEgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTI0ICAgKGhleCkJCUFjbGFyYSBQb3dlci1MaW5lIFN5c3RlbXMgSW5jLgorMDAxRDI0ICAgICAoYmFzZSAxNikJCUFjbGFyYSBQb3dlci1MaW5lIFN5c3RlbXMgSW5jLgorCQkJCTk0NSBIb3JuZXQgRHJpdmUKKwkJCQlIYXplbHdvb2QgTU8gNjMwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTI1ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAxRDI1ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRC0yNiAgIChoZXgpCQlSb2NrcmlkZ2Vzb3VuZCBUZWNobm9sb2d5IENvLgorMDAxRDI2ICAgICAoYmFzZSAxNikJCVJvY2tyaWRnZXNvdW5kIFRlY2hub2xvZ3kgQ28uCisJCQkJRnVtaW4gSW5kdXN0cmlhbCBQYXJrLCBIb3VqaWUgVG93bgorCQkJCURvbmcgR3VhbiBHdWFuZyBEb25nIDUyMzk1NgorCQkJCUNISU5BCisKKzAwLTFELTI3ICAgKGhleCkJCU5BQy1JTlRFUkNPTQorMDAxRDI3ICAgICAoYmFzZSAxNikJCU5BQy1JTlRFUkNPTQorCQkJCUMuIFFVSU5URUxBLCAyNyBQT1JUQUwgNCBMT0NBTAorCQkJCVZJR08gUE9OVEVWRURSQSAzNjIwOQorCQkJCVNQQUlOCisKKzAwLTFELTI4ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDFEMjggICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworMDAtMUQtMjkgICAoaGV4KQkJRG9ybyBBQgorMDAxRDI5ICAgICAoYmFzZSAxNikJCURvcm8gQUIKKwkJCQlNYWdpc3RyYXRzdsOkZ2VuIDEwCisJCQkJTHVuZCAgMjI2IDQzCisJCQkJU1dFREVOCisKKzAwLTFELTJBICAgKGhleCkJCVRpZGV3YXkgRWxlY3Ryb25pYyBMVEQKKzAwMUQyQSAgICAgKGJhc2UgMTYpCQlUaWRld2F5IEVsZWN0cm9uaWMgTFRECisJCQkJWmhpSmkgSW5kdXN0cmlhbCAgQXJlYSAsSmluWWUgUm9hZAorCQkJCUI0IERvbmcuIGt1aXlvbmcgVG93bgorCQkJCXNoZW5nemhlbiBsb25nZ2FuZyBndWFuZ2RvbmcgNTE4MTE5CisJCQkJQ0hJTkEKKworMDAtMUQtMkIgICAoaGV4KQkJV3VoYW4gUG9udCBUZWNobm9sb2d5IENPLiAsIExURAorMDAxRDJCICAgICAoYmFzZSAxNikJCVd1aGFuIFBvbnQgVGVjaG5vbG9neSBDTy4gLCBMVEQKKwkJCQlCdWlsZGluZyBFLCBHdWFuZG9uZyBTY2llbmNlIGFuZCBUZWNobm9sb2d5IEluZHVzdHJ5ICBQYXJrLAorCQkJCUVhc3QgTGFrZSBIaWdoIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgWm9uZSwKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzQKKwkJCQlDSElOQQorCiswMC0xRC0yQyAgIChoZXgpCQlXYXZldHJlbmQgVGVjaG5vbG9naWVzIChQdHkpIExpbWl0ZWQKKzAwMUQyQyAgICAgKGJhc2UgMTYpCQlXYXZldHJlbmQgVGVjaG5vbG9naWVzIChQdHkpIExpbWl0ZWQKKwkJCQlXYXZldHJlbmQgSG91c2UsIEJ1aWxkaW5nIDgxNi8zCisJCQkJSGFtbWV0cyBDcm9zc2luZyBPZmZpY2UgUGFyayxTZWxib3VybmUgcm9hZCwgZm91cndheXMKKwkJCQlHYXV0ZW5nICAyMDIxCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTFELTJEICAgKGhleCkJCVB5bG9uZSwgSW5jLgorMDAxRDJEICAgICAoYmFzZSAxNikJCVB5bG9uZSwgSW5jLgorCQkJCTRGIE5ha2FubyBCbGRnLiA0LTMwLTggS2l0YS1TaGluanVrdQorCQkJCVNoaW5qdWt1LWt1LCBUb2t5byAxNjktMDA3NAorCQkJCUpBUEFOCisKKzAwLTFELTJFICAgKGhleCkJCVJ1Y2t1cyBXaXJlbGVzcworMDAxRDJFICAgICAoYmFzZSAxNikJCVJ1Y2t1cyBXaXJlbGVzcworCQkJCTg4MCBXZXN0IE1hdWRlIEF2ZS4KKwkJCQlTdWl0ZSAxMDEKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTJGICAgKGhleCkJCVF1YW50dW1WaXNpb24gQ29ycG9yYXRpb24KKzAwMUQyRiAgICAgKGJhc2UgMTYpCQlRdWFudHVtVmlzaW9uIENvcnBvcmF0aW9uCisJCQkJMzM1IFBsYW50YXRpb24gV2F5CisJCQkJUm9zd2VsbCBHYSAzMDA3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtMzAgICAoaGV4KQkJWVggV2lyZWxlc3MgUy5BLgorMDAxRDMwICAgICAoYmFzZSAxNikJCVlYIFdpcmVsZXNzIFMuQS4KKwkJCQlBdi4gVmljdcOxYSBNYWNrZW5uYSAjNDg2MAorCQkJCUVkaWZpY2lvIDUxMiwgcGlzbyAzLiBNYWN1bAorCQkJCVNhbnRpYWdvICA4NTgwNzEwCisJCQkJQ0hJTEUKKworMDAtMUQtMzEgICAoaGV4KQkJSElHSFBSTyBJTlRFUk5BVElPTkFMIFImRCBDTywuTFRELgorMDAxRDMxICAgICAoYmFzZSAxNikJCUhJR0hQUk8gSU5URVJOQVRJT05BTCBSJkQgQ08sLkxURC4KKwkJCQkzRixOby4yOTUsUnVpR3VhbmcgUmQsTmVpIEh1LAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC0zMiAgIChoZXgpCQlMb25na2F5IENvbW11bmljYXRpb24gJiBUZWNobm9sb2d5IChTaGFuZ2hhaSkgQ28uIEx0ZAorMDAxRDMyICAgICAoYmFzZSAxNikJCUxvbmdrYXkgQ29tbXVuaWNhdGlvbiAmIFRlY2hub2xvZ3kgKFNoYW5naGFpKSBDby4gTHRkCisJCQkJTm8uNSBCdWlsZGluZywgVW5pdCAyLCBMYW5lIDI5OSBCaXNoZW5nIFJkLAorCQkJCVNoYW5naGFpICAyMDEyMDQKKwkJCQlDSElOQQorCiswMC0xRC0zMyAgIChoZXgpCQlNYXZlcmljayBTeXN0ZW1zIEluYy4KKzAwMUQzMyAgICAgKGJhc2UgMTYpCQlNYXZlcmljayBTeXN0ZW1zIEluYy4KKwkJCQk5MDgsIERhZXJ1bmdwb3N0dG93ZXIgMi1jaGEsIDE4Mi0xMworCQkJCUd1cm8tZG9uZywgR3Vyby1ndQorCQkJCVNlb3VsICAxNTItNzkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELTM0ICAgKGhleCkJCVNZUklTIFRlY2hub2xvZ3kgQ29ycAorMDAxRDM0ICAgICAoYmFzZSAxNikJCVNZUklTIFRlY2hub2xvZ3kgQ29ycAorCQkJCTIxIEYtMiwgIE5PLiAxMiwgIFNFQy4gMSwgIFRhaWp1bmdnYW5nIFJkLgorCQkJCVRhaWNodW5nICA0MDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTM1ICAgKGhleCkJCVZpY29uaWNzIEVsZWN0cm9uaWNzIEluYy4KKzAwMUQzNSAgICAgKGJhc2UgMTYpCQlWaWNvbmljcyBFbGVjdHJvbmljcyBJbmMuCisJCQkJOTI0NSBMYW5nZWxpZXIKKwkJCQlTYWludCBMZW9uYXJkIFF1ZWJlYyBIMVAzSzkKKwkJCQlDQU5BREEKKworMDAtMUQtMzYgICAoaGV4KQkJRUxFQ1RST05JQ1MgQ09SUE9SQVRJT04gT0YgSU5ESUEgTElNSVRFRAorMDAxRDM2ICAgICAoYmFzZSAxNikJCUVMRUNUUk9OSUNTIENPUlBPUkFUSU9OIE9GIElORElBIExJTUlURUQKKwkJCQlDT05UUk9MIEFORCBBVVRPTUFUSU9OIERJVklTSU9OLTMKKwkJCQlFQ0lMIFBPU1QKKwkJCQlIWURFUkFCQUQgQU5ESFJBIFBSQURFU0ggNTAwIDA2MgorCQkJCUlORElBCisKKzAwLTFELTM3ICAgKGhleCkJCVRoYWxlcy1QYW5kYSBUcmFuc3BvcnRhdGlvbiBTeXN0ZW0KKzAwMUQzNyAgICAgKGJhc2UgMTYpCQlUaGFsZXMtUGFuZGEgVHJhbnNwb3J0YXRpb24gU3lzdGVtCisJCQkJNnRoIGZsb29yLCBIVUlKSUUgUGxhemEsIDI2OCBaaG9uZ3NoYW4gUmQuCisJCQkJbmFuamluZyBqaWFuZ3N1IDIxMDAwOAorCQkJCUNISU5BCisKKzAwLTFELTM4ICAgKGhleCkJCVNlYWdhdGUgVGVjaG5vbG9neQorMDAxRDM4ICAgICAoYmFzZSAxNikJCVNlYWdhdGUgVGVjaG5vbG9neQorCQkJCTEyODAgRGlzYyBEcml2ZQorCQkJCVNoYWtvcGVlIE1OIDU1Mzc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC0zOSAgIChoZXgpCQlNT09IQURJR0lUQUwgQ08uLCBMVEQKKzAwMUQzOSAgICAgKGJhc2UgMTYpCQlNT09IQURJR0lUQUwgQ08uLCBMVEQKKwkJCQlTZW91bCBIaWdodGVjaCBWZW50dXJlIENlbnRlciBDLTMwNyA2NDctMjYKKwkJCQlEZXVuZ2Nob24tRG9uZyBHYW5nc2VvLUd1CisJCQkJU0VPVUwgIDE1Ny0wMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUQtM0EgICAoaGV4KQkJbWggYWNvdXN0aWNzIExMQworMDAxRDNBICAgICAoYmFzZSAxNikJCW1oIGFjb3VzdGljcyBMTEMKKwkJCQkyNUEgU3VtbWl0IEF2ZQorCQkJCVN1bW1pdCBOSiAwNzkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtM0IgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUQzQiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMUQtM0MgICAoaGV4KQkJTXVzY2xlIENvcnBvcmF0aW9uCiswMDFEM0MgICAgIChiYXNlIDE2KQkJTXVzY2xlIENvcnBvcmF0aW9uCisJCQkJMi01LTM1LCBLaWthd2EtaGlnYXNoaQorCQkJCU9zYWthICA1MzItMDAxMgorCQkJCUpBUEFOCisKKzAwLTFELTNEICAgKGhleCkJCUF2aWR5bmUgQ29ycG9yYXRpb24KKzAwMUQzRCAgICAgKGJhc2UgMTYpCQlBdmlkeW5lIENvcnBvcmF0aW9uCisJCQkJMjAyIFdlc3QgRHIKKwkJCQlNZWxib3VybmUgRkwgMzI5MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTNFICAgKGhleCkJCVNBS0EgVEVDSE5PIFNDSUVOQ0UgQ08uLExURAorMDAxRDNFICAgICAoYmFzZSAxNikJCVNBS0EgVEVDSE5PIFNDSUVOQ0UgQ08uLExURAorCQkJCU5pc2hpIDEwNS0xCisJCQkJS2l0YXp1a2EtbWFjaGkKKwkJCQlLYW5hemF3YSBJc2hpa2F3YSA5MjAtMDM2NworCQkJCUpBUEFOCisKKzAwLTFELTNGICAgKGhleCkJCU1pdHJvbiBQdHkgTHRkCiswMDFEM0YgICAgIChiYXNlIDE2KQkJTWl0cm9uIFB0eSBMdGQKKwkJCQlVbml0IDExCisJCQkJMTItMTggQ2xhcmVuZG9uIFN0cmVldAorCQkJCUFydGFybW9uIE5TVyAyMDY1CisJCQkJQVVTVFJBTElBCisKKzAwLTFELTQwICAgKGhleCkJCUxpdmluZyBJbmRlcGVuZGVudGx5IEdyb3VwLCBJbmMuCiswMDFENDAgICAgIChiYXNlIDE2KQkJTGl2aW5nIEluZGVwZW5kZW50bHkgR3JvdXAsIEluYy4KKwkJCQk3NjcgVGhpcmQgQXZlLCAxNHRoIEZsb29yCisJCQkJTmV3IFlvcmsgTlkgMTAwMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTQxICAgKGhleCkJCUhhcmR5IEluc3RydW1lbnRzCiswMDFENDEgICAgIChiYXNlIDE2KQkJSGFyZHkgSW5zdHJ1bWVudHMKKwkJCQkzODYwIENhbGxlIEZvcnR1bmFkYQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNDIgICAoaGV4KQkJTm9ydGVsCiswMDFENDIgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJODIwMCBEaXhpZSBSb2FkCisJCQkJU3VpdGUgMTAwCisJCQkJQnJhbXB0b24gT250YXJpbyBMNlQgNVA2CisJCQkJQ0FOQURBCisKKzAwLTFELTQzICAgKGhleCkJCVNoZW56aGVuIEctbGluayBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFENDMgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gRy1saW5rIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk0RiwgRSBCdWlsZGluZyxIdWFjaHVhbmcgRGEgVGVjaG5vbG9neSBab25lICxIYW5nY2hlbmcgSGlnaHdheSxHdXNodSxYaXhpYW5nICwKKwkJCQlzaGVuemhlbiBHdWFuZ0RvbmcgNTE4MTI2CisJCQkJQ0hJTkEKKworMDAtMUQtNDQgICAoaGV4KQkJS3JvaG5lCiswMDFENDQgICAgIChiYXNlIDE2KQkJS3JvaG5lCisJCQkJS2Vya2VwbGFhdCAxMgorCQkJCURvcmRyZWNodCBaSCAzMzEzIExDCisJCQkJTkVUSEVSTEFORFMKKworMDAtMUQtNDUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRDQ1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTQ2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUQ0NiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC00NyAgIChoZXgpCQlDb3ZvdGUgR21iSCAmIENvIEtHCiswMDFENDcgICAgIChiYXNlIDE2KQkJQ292b3RlIEdtYkggJiBDbyBLRworCQkJCVJpdHRlcmh1ZmVuIDMwCisJCQkJQmVybGluICAxNDE2NQorCQkJCUdFUk1BTlkKKworMDAtMUQtNDggICAoaGV4KQkJU2Vuc29yLVRlY2huaWsgV2llZGVtYW5uIEdtYkgKKzAwMUQ0OCAgICAgKGJhc2UgMTYpCQlTZW5zb3ItVGVjaG5payBXaWVkZW1hbm4gR21iSAorCQkJCUFtIELDpHJlbndhbGQgNgorCQkJCUthdWZiZXVyZW4gQmF5ZXJuIDg3NjAwCisJCQkJR0VSTUFOWQorCiswMC0xRC00OSAgIChoZXgpCQlJbm5vdmF0aW9uIFdpcmVsZXNzIEluYy4KKzAwMUQ0OSAgICAgKGJhc2UgMTYpCQlJbm5vdmF0aW9uIFdpcmVsZXNzIEluYy4KKwkJCQk0Ri0xLCBOTy44MSwgU0hVRUlMSSBSRC4KKwkJCQlIU0lOQ0hVICAzMDA1OQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtNEEgICAoaGV4KQkJQ2FyZXN0cmVhbSBIZWFsdGgsIEluYy4KKzAwMUQ0QSAgICAgKGJhc2UgMTYpCQlDYXJlc3RyZWFtIEhlYWx0aCwgSW5jLgorCQkJCTE1MCBWZXJvbmEgU3RyZWV0CisJCQkJUm9jaGVzdHNlciBOWSAxNDYwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNEIgICAoaGV4KQkJR3JpZCBDb25uZWN0IEluYy4KKzAwMUQ0QiAgICAgKGJhc2UgMTYpCQlHcmlkIENvbm5lY3QgSW5jLgorCQkJCTE2MzAgVy4gRGllaGwgUmQKKwkJCQlOYXBlcnZpbGxlIElMIDYwNTYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC00QyAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudAorMDAxRDRDICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50CisJCQkJNjAxIERhdGEgRHJpdmUKKwkJCQlNL1MgMzIwCisJCQkJUGxhbm8gVFggNzUwNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTREICAgKGhleCkJCUFkYXB0aXZlIFJlY29nbml0aW9uIEh1bmdhcnksIEluYworMDAxRDREICAgICAoYmFzZSAxNikJCUFkYXB0aXZlIFJlY29nbml0aW9uIEh1bmdhcnksIEluYworCQkJCUtpcmFseWhhZ28gdGVyIDgtOQorCQkJCUJ1ZGFwZXN0IEV1cm9wZSAxMTI2CisJCQkJSFVOR0FSWQorCiswMC0xRC00RSAgIChoZXgpCQlUQ00gTW9iaWxlIExMQworMDAxRDRFICAgICAoYmFzZSAxNikJCVRDTSBNb2JpbGUgTExDCisJCQkJOTIxOCBNZXRjYWxmLAorCQkJCVN1aXRlICMyOTMKKwkJCQlPdmVybGFuZCBQYXJrIEthbnNhcyA2NjIxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNEYgICAoaGV4KQkJQXBwbGUgQ29tcHV0ZXIgSW5jLgorMDAxRDRGICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ2FsaWZvcm5pYSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNTAgICAoaGV4KQkJU1BJTkVUSVggU0EKKzAwMUQ1MCAgICAgKGJhc2UgMTYpCQlTUElORVRJWCBTQQorCQkJCVBhcmMgU2NpZW50aWZpcXVlIGRlIGwnRVBGTCwgQsOidGltZW50IEMKKwkJCQlMYXVzYW5uZSBWRCAxMDE1CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUQtNTEgICAoaGV4KQkJQmFiY29jayAmIFdpbGNveCBQb3dlciBHZW5lcmF0aW9uIEdyb3VwLCBJbmMKKzAwMUQ1MSAgICAgKGJhc2UgMTYpCQlCYWJjb2NrICYgV2lsY294IFBvd2VyIEdlbmVyYXRpb24gR3JvdXAsIEluYworCQkJCTExODY0IENhbm9uIEJsdmQsIFN1aXRlIDEwNQorCQkJCU5ld3BvcnQgTmV3cyBWQSAyMzYwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNTIgICAoaGV4KQkJRGVmem9uZSBCLlYuCiswMDFENTIgICAgIChiYXNlIDE2KQkJRGVmem9uZSBCLlYuCisJCQkJVHJhbnNwb3J0Y2VudHJ1bSAxMAorCQkJCUVuc2NoZWRlIE92ZXJpanNzZWwgNzU0NyBSVworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTFELTUzICAgKGhleCkJCVMmTyBFbGVjdHJvbmljcyAoTWFsYXlzaWEpIFNkbi4gQmhkLgorMDAxRDUzICAgICAoYmFzZSAxNikJCVMmTyBFbGVjdHJvbmljcyAoTWFsYXlzaWEpIFNkbi4gQmhkLgorCQkJCUxvdCAyMDIsIEJha2FyIEFyYW5nCisJCQkJSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQkwODAwMCBTdW5nYWkgUGV0YW5pIEtlZGFoIAorCQkJCU1BTEFZU0lBCisKKzAwLTFELTU0ICAgKGhleCkJCVN1bm5pYyBUZWNobm9sb2d5ICYgTWVyY2hhbmRpc2UgSU5DLgorMDAxRDU0ICAgICAoYmFzZSAxNikJCVN1bm5pYyBUZWNobm9sb2d5ICYgTWVyY2hhbmRpc2UgSU5DLgorCQkJCTZGLCBOTy43NCxaSE9VLVogU1QuLAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC01NSAgIChoZXgpCQlaQU5UQVosIEluYworMDAxRDU1ICAgICAoYmFzZSAxNikJCVpBTlRBWiwgSW5jCisJCQkJNTc1OCBXLiBMYXMgUG9zaXRhcyBBdmVudWUKKwkJCQlQbGVhc2FudG9uIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC01NiAgIChoZXgpCQlLcmFtZXIgRWxlY3Ryb25pY3MgTHRkLgorMDAxRDU2ICAgICAoYmFzZSAxNikJCUtyYW1lciBFbGVjdHJvbmljcyBMdGQuCisJCQkJMyBBbSBWZU9sYW1vIFN0cmVldAorCQkJCUplcnVzYWxlbSAgOTU0NjMKKwkJCQlJU1JBRUwKKworMDAtMUQtNTcgICAoaGV4KQkJQ0FFVEVDIE1lc3N0ZWNobmlrCiswMDFENTcgICAgIChiYXNlIDE2KQkJQ0FFVEVDIE1lc3N0ZWNobmlrCisJCQkJU2NobG9zc3N0cmFzc2UgOTVhCisJCQkJT2xjaGluZyBCYXllcm4gODIxNDAKKwkJCQlHRVJNQU5ZCisKKzAwLTFELTU4ICAgKGhleCkJCUNRIEluYworMDAxRDU4ICAgICAoYmFzZSAxNikJCUNRIEluYworCQkJCTVGLCBOby4gNDMsIExhbmUgNzYsIFJ1aSBHdWFuZyBSb2FkCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTU5ICAgKGhleCkJCU1pdHJhIEVuZXJneSAmIEluZnJhc3RydWN0dXJlCiswMDFENTkgICAgIChiYXNlIDE2KQkJTWl0cmEgRW5lcmd5ICYgSW5mcmFzdHJ1Y3R1cmUKKwkJCQlCb3VsZXZhcmQgZGUgbCdFdXJvcGUgMTMxCisJCQkJMTMwMSBXYXZyZSAKKwkJCQlCRUxHSVVNCisKKzAwLTFELTVBICAgKGhleCkJCTJXaXJlIEluYy4KKzAwMUQ1QSAgICAgKGJhc2UgMTYpCQkyV2lyZSBJbmMuCisJCQkJMTcwNCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gIEpvc2UgQ2FsaWZvcm5pYSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNUIgICAoaGV4KQkJVGVjdmFuIEluZm9ybWF0aWNhIEx0ZGEKKzAwMUQ1QiAgICAgKGJhc2UgMTYpCQlUZWN2YW4gSW5mb3JtYXRpY2EgTHRkYQorCQkJCVJ1YSBHdWFpY3VydXMsIDE0NQorCQkJCVZpbGEgQ29uY2VpY8OjbworCQkJCURpYWRlbWEgU8OjbyBQYXVsbyAwOTkxMS02MzAKKwkJCQlCUkFaSUwKKworMDAtMUQtNUMgICAoaGV4KQkJVG9tIENvbW11bmljYXRpb24gSW5kdXN0cmlhbCBDby4sTHRkLgorMDAxRDVDICAgICAoYmFzZSAxNikJCVRvbSBDb21tdW5pY2F0aW9uIEluZHVzdHJpYWwgQ28uLEx0ZC4KKwkJCQkxMTczIE5pcHBhLWNob2ggS29ob2t1LWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjIzLTAwNTcKKwkJCQlKQVBBTgorCiswMC0xRC01RCAgIChoZXgpCQlDb250cm9sIER5bmFtaWNzIFB0eS4gTHRkLgorMDAxRDVEICAgICAoYmFzZSAxNikJCUNvbnRyb2wgRHluYW1pY3MgUHR5LiBMdGQuCisJCQkJUE8gQm94IDYzNgorCQkJCU1PUkxFWSBXZXN0ZXJuIEF1c3RyYWxpYSA2OTQzCisJCQkJQVVTVFJBTElBCisKKzAwLTFELTVFICAgKGhleCkJCUNPTUlORyBNRURJQSBDT1JQLgorMDAxRDVFICAgICAoYmFzZSAxNikJCUNPTUlORyBNRURJQSBDT1JQLgorCQkJCUJPTkEgQmxkLiA0dGggRmwuLCA1NDgtMTgKKwkJCQlEb2dvay0xRG9uZywgS2FuZ25hbS1LdSwKKwkJCQlTZW91bCAgMTM1LTE1OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRC01RiAgIChoZXgpCQlPdmVyU3BlZWQgU0FSTAorMDAxRDVGICAgICAoYmFzZSAxNikJCU92ZXJTcGVlZCBTQVJMCisJCQkJMTUsIGFsbGVlIGR1IEJvaXMgQ2FpbGxleQorCQkJCUxlIFRodWl0LVNpZ25vbCBOb3JtYW5kaWUgMjczNzAKKwkJCQlGUkFOQ0UKKworMDAtMUQtNjAgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCiswMDFENjAgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdQorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC02MSAgIChoZXgpCQlCSUogQ29ycG9yYXRpb24KKzAwMUQ2MSAgICAgKGJhc2UgMTYpCQlCSUogQ29ycG9yYXRpb24KKwkJCQk3RiBUYWthbWl6YXdhIEJ1aWxkaW5nLDItNy0xMCwKKwkJCQlLaXRhc2Fpd2FpLE5pc2hpCisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjIwLTAwMDQKKwkJCQlKQVBBTgorCiswMC0xRC02MiAgIChoZXgpCQlJblBoYXNlIFRlY2hub2xvZ2llcworMDAxRDYyICAgICAoYmFzZSAxNikJCUluUGhhc2UgVGVjaG5vbG9naWVzCisJCQkJMjAwMCBQaWtlIFJvYWQKKwkJCQlMb25nbW9udCBDb2xvcmFkbyA4MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNjMgICAoaGV4KQkJTWllbGUgJiBDaWUuIEtHCiswMDFENjMgICAgIChiYXNlIDE2KQkJTWllbGUgJiBDaWUuIEtHCisJCQkJQ2FybC1NaWVsZS1TdHIuIDI5CisJCQkJR8O8dGVyc2xvaCAgMzMzMzIKKwkJCQlHRVJNQU5ZCisKKzAwLTFELTY0ICAgKGhleCkJCUFkYW0gQ29tbXVuaWNhdGlvbnMgU3lzdGVtcyBJbnQgTHRkCiswMDFENjQgICAgIChiYXNlIDE2KQkJQWRhbSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zIEludCBMdGQKKwkJCQlUaGUgTWlzc2lvbgorCQkJCVdlbGxpbmd0b24gU3RyZWV0CisJCQkJU3RvY2twb3J0IENoZXNoaXJlIFNLMSAzQUgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRC02NSAgIChoZXgpCQlNaWNyb3dhdmUgUmFkaW8gQ29tbXVuaWNhdGlvbnMKKzAwMUQ2NSAgICAgKGJhc2UgMTYpCQlNaWNyb3dhdmUgUmFkaW8gQ29tbXVuaWNhdGlvbnMKKwkJCQkxMDEgQmlsbGVyaWNhIEF2ZW11ZSwgQmxkZyA2CisJCQkJTi4gQmlsbGVyaWNhIE1BIDAxODYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC02NiAgIChoZXgpCQlIeXVuZGFpIFRlbGVjb20KKzAwMUQ2NiAgICAgKGJhc2UgMTYpCQlIeXVuZGFpIFRlbGVjb20KKwkJCQlIeXVuZGFpIFRlbGVjb20gQmxkZy4sIDQyNzMtMTIsIFNoaW5naWwtRG9uZywgWW91bmdkdW5ncG8tR3UsCisJCQkJU2VvdWwgIDE1MC04NTkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUQtNjcgICAoaGV4KQkJQU1FQworMDAxRDY3ICAgICAoYmFzZSAxNikJCUFNRUMKKwkJCQk5RixOby4zNjAsUnVlbCBHdWFuZyBSZCxOZWlodQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC02OCAgIChoZXgpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorMDAxRDY4ICAgICAoYmFzZSAxNikJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCisJCQkJUHJpbnMgQm91ZGV3aWpubGFhbiA0NyBCCisJCQkJRWRlZ2VtIEFudHdlcnAgQi0yNjUwCisJCQkJQkVMR0lVTQorCiswMC0xRC02OSAgIChoZXgpCQlLbm9yci1CcmVtc2UgQUcKKzAwMUQ2OSAgICAgKGJhc2UgMTYpCQlLbm9yci1CcmVtc2UgQUcKKwkJCQlNb29zYWNoZXIgU3RyLiA4MAorCQkJCU11ZW5jaGVuIEJZIDgwODA5CisJCQkJR0VSTUFOWQorCiswMC0xRC02QSAgIChoZXgpCQlBbHBoYSBOZXR3b3JrcyBJbmMuCiswMDFENkEgICAgIChiYXNlIDE2KQkJQWxwaGEgTmV0d29ya3MgSW5jLgorCQkJCU5vLjggTGktc2hpbmcgU2V2ZW50aCBSb2FkLFNjaWVuY2UtYmFzZWQKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTZCICAgKGhleCkJCU1vdG9yb2xhIChmb3JtZXJseSBOZXRvcGlhLCBJbmMKKzAwMUQ2QiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSAoZm9ybWVybHkgTmV0b3BpYSwgSW5jCisJCQkJNjAwMSBTaGVsbG1vdW5kIFN0CisJCQkJNHRoIEZsb29yCisJCQkJRW1lcnl2aWxsZSBDQSA5NDYwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNkMgICAoaGV4KQkJQ2xhcmlQaHkgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMUQ2QyAgICAgKGJhc2UgMTYpCQlDbGFyaVBoeSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTE2IFRlY2hub2xvZ3kgRHIuLCBTdWl0ZSAxNjUKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTZEICAgKGhleCkJCUNvbmZpZGFudCBJbnRlcm5hdGlvbmFsIExMQworMDAxRDZEICAgICAoYmFzZSAxNikJCUNvbmZpZGFudCBJbnRlcm5hdGlvbmFsIExMQworCQkJCTI1MzAgTWVyaWRpYW4gUGt3eQorCQkJCUR1cmhhbSBOb3J0aCBDYXJvbGluYSAyNzcxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtNkUgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUQ2RSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRC02RiAgIChoZXgpCQlDaGFpbnpvbmUgVGVjaG5vbG9neSBDby4sIEx0ZAorMDAxRDZGICAgICAoYmFzZSAxNikJCUNoYWluem9uZSBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJQ2hhaW56b25lIFRlY2guIEluZCBQYXJrLCBOYW54aW4gMXN0IFJkLgorCQkJCUd1aWNoZW5nIE5hbmhhaQorCQkJCUZvc2hhbiBHdWFuZ2RvbmcgNTI4MjAwCisJCQkJQ0hJTkEKKworMDAtMUQtNzAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRDcwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTcxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUQ3MSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC03MiAgIChoZXgpCQlXaXN0cm9uIENvcnBvcmF0aW9uCiswMDFENzIgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBDb3Jwb3JhdGlvbgorCQkJCTIxRiwgODgsIFNlYy4xLCBIc2luIFRhaSBXdSBSZC4sIEhzaWNoaWgsCisJCQkJVGFpcGVpIEhzaWVuIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtNzMgICAoaGV4KQkJQnVmZmFsbyBJbmMuCiswMDFENzMgICAgIChiYXNlIDE2KQkJQnVmZmFsbyBJbmMuCisJCQkJMTUsU2hpYmF0YSBIb25kb3JpIDQtY2hvbWUsCisJCQkJTWluYW1pLWt1CisJCQkJTmFnb3lhIEFpY2hpIFByZWYuIDQ1Ny04NTIwCisJCQkJSkFQQU4KKworMDAtMUQtNzQgICAoaGV4KQkJVGlhbmppbiBDaGluYS1TaWxpY29uIE1pY3JvZWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDFENzQgICAgIChiYXNlIDE2KQkJVGlhbmppbiBDaGluYS1TaWxpY29uIE1pY3JvZWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJMzAxLDNGIEJ1aWxkaW5nIDIxMSxOby4yMTQgSG9uZ3FpIFJvYWQsIE5hbmthaSBEaXN0cmljdCwgVGlhbmppbiBDaGluYQorCQkJCVRpYW5qaW4gIDMwMDE5MAorCQkJCUNISU5BCisKKzAwLTFELTc1ICAgKGhleCkJCVJhZGlvc2NhcGUgUExDCiswMDFENzUgICAgIChiYXNlIDE2KQkJUmFkaW9zY2FwZSBQTEMKKwkJCQkxIEFsYmFueSBUZXJyYWNlCisJCQkJUmVnZW50J3MgUGFyayBMb25kb24gTlcxIDREUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFELTc2ICAgKGhleCkJCUV5ZWhlaWdodCBMdGQuCiswMDFENzYgICAgIChiYXNlIDE2KQkJRXllaGVpZ2h0IEx0ZC4KKwkJCQlVbml0IDM0LCBQYXJrIEhvdXNlCisJCQkJMTUtMTkgR3JlZW5oaWxsIENyZXNjZW50CisJCQkJV2F0Zm9yZCBIZXJ0cyBXRDE4IDhQSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFELTc3ICAgKGhleCkJCU5TR2F0ZQorMDAxRDc3ICAgICAoYmFzZSAxNikJCU5TR2F0ZQorCQkJCVJtIDEzMDQsIDM5IEtpcnBpY2huYXlhIFN0cmVldAorCQkJCU1vc2NvdyAgMTA1MTg3CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFELTc4ICAgKGhleCkJCUludmVuZ28gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkCiswMDFENzggICAgIChiYXNlIDE2KQkJSW52ZW5nbyBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLixMdGQKKwkJCQkzL0YsTm8uVDItQixIaWdoLVRlY2ggSW5kdXN0cmlhbCBQYXJrIFNvdXRoCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTFELTc5ICAgKGhleCkJCVNJR05BTUFYIExMQworMDAxRDc5ICAgICAoYmFzZSAxNikJCVNJR05BTUFYIExMQworCQkJCTEwOTAgVmVybW9udCBBdmVudWUKKwkJCQlXYXNoaW5ndG9uIFdhc2hpbmd0b24gRC5DLiAyMDAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtN0EgICAoaGV4KQkJV2lkZWJhbmQgU2VtaWNvbmR1Y3RvciwgSW5jLgorMDAxRDdBICAgICAoYmFzZSAxNikJCVdpZGViYW5kIFNlbWljb25kdWN0b3IsIEluYy4KKwkJCQkxMzUwIFBlYXIgQXZlCisJCQkJU3VpdGUgQworCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTdCICAgKGhleCkJCUljZSBFbmVyZ3ksIEluYy4KKzAwMUQ3QiAgICAgKGJhc2UgMTYpCQlJY2UgRW5lcmd5LCBJbmMuCisJCQkJOTM1MSBFYXN0bWFuIFBhcmsgRHJpdmUKKwkJCQlTdWl0ZSBCCisJCQkJV2luZHNvciBDb2xvcmFkbyA4MDU1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtN0MgICAoaGV4KQkJQUJFIEVsZXR0cm9uaWNhIFMucC5BLgorMDAxRDdDICAgICAoYmFzZSAxNikJCUFCRSBFbGV0dHJvbmljYSBTLnAuQS4KKwkJCQlWaWEgTGVvbmFyZG8gZGEgVmluY2ksIDkyCisJCQkJQ0FSQVZBR0dJTyBCRyAyNDA0MworCQkJCUlUQUxZCisKKzAwLTFELTdEICAgKGhleCkJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCiswMDFEN0QgICAgIChiYXNlIDE2KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQlQaW4tSmVuIENpdHksIFRhb3l1YW4sCisJCQkJUGluLUplbiBUYW95dWFuIDMyNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtN0UgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCiswMDFEN0UgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC03RiAgIChoZXgpCQlUZWtyb24gSW50ZXJuYXRpb25hbCBMdGQKKzAwMUQ3RiAgICAgKGJhc2UgMTYpCQlUZWtyb24gSW50ZXJuYXRpb25hbCBMdGQKKwkJCQk0MDkgQ3ViYSBTdHJlZXQsIEFsaWNldG93bgorCQkJCVBPIEJveCAzMS0yODUKKwkJCQlMb3dlciBIdXR0IFdlbGxpbmd0b24gNTAxMAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTFELTgwICAgKGhleCkJCUJlaWppbmcgSHVhaHVhbiBFbGV0cm9uaWNzIENvLixMdGQKKzAwMUQ4MCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEh1YWh1YW4gRWxldHJvbmljcyBDby4sTHRkCisJCQkJTm8uMjYsU2hhbmdkaSA2dGggU3QuSGFpZGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0xRC04MSAgIChoZXgpCQlHVUFOR1pIT1UgR0FURVdBWSBFTEVDVFJPTklDUyBDTy4sIExURAorMDAxRDgxICAgICAoYmFzZSAxNikJCUdVQU5HWkhPVSBHQVRFV0FZIEVMRUNUUk9OSUNTIENPLiwgTFRECisJCQkJQjIwIyw0RixOby45IEppYW5nb25nIFJvYWQsVGlhbmhlIFNvZnR3YXJlIFBhcmssVGlhbmhlIERpc3RyaWN0LAorCQkJCUdVQU5HWkhPVSBHdWFuZ2RvbmcgNTEwNjY1CisJCQkJQ0hJTkEKKworMDAtMUQtODIgICAoaGV4KQkJR04gQS9TIChHTiBOZXRjb20gQS9TKQorMDAxRDgyICAgICAoYmFzZSAxNikJCUdOIEEvUyAoR04gTmV0Y29tIEEvUykKKwkJCQlMYXV0cnVwYmplcmcgNworCQkJCVAuTy5Cb3ggOTkKKwkJCQlCYWxsZXJ1cCAgREsgLSAyNzUwCisJCQkJREVOTUFSSworCiswMC0xRC04MyAgIChoZXgpCQlFbWl0ZWNoIENvcnBvcmF0aW9uCiswMDFEODMgICAgIChiYXNlIDE2KQkJRW1pdGVjaCBDb3Jwb3JhdGlvbgorCQkJCTJGLE5vLjctMSxJbmR1c3RyeSBFLFJkLjkKKwkJCQlTY2llbmNlLUJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1ICAzMDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTg0ICAgKGhleCkJCUdhdGV3YXksIEluYy4KKzAwMUQ4NCAgICAgKGJhc2UgMTYpCQlHYXRld2F5LCBJbmMuCisJCQkJNjEwIEdhdGV3YXkgRHJpdmUKKwkJCQlQLk8uIEJveCAyMDAwCisJCQkJTm9ydGggU2lvdXggQ2l0eSBTb3V0aCBEYWtvdGEgNTcwNDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTg1ICAgKGhleCkJCUNhbGwgRGlyZWN0IENlbGx1bGFyIFNvbHV0aW9ucworMDAxRDg1ICAgICAoYmFzZSAxNikJCUNhbGwgRGlyZWN0IENlbGx1bGFyIFNvbHV0aW9ucworCQkJCVN1aXRlIDE0NSwgTmF0aW9uYWwgSW5ub3ZhdGlvbiBDZW50cmUKKwkJCQlBdXN0cmFsaWFuIFRlY2hub2xvZ3kgUGFyaworCQkJCUV2ZWxlaWdoIE5TVyAxNDMwCisJCQkJQVVTVFJBTElBCisKKzAwLTFELTg2ICAgKGhleCkJCVNoaW53YSBJbmR1c3RyaWVzKENoaW5hKSBMdGQuCiswMDFEODYgICAgIChiYXNlIDE2KQkJU2hpbndhIEluZHVzdHJpZXMoQ2hpbmEpIEx0ZC4KKwkJCQk4IFBpbmduYW56aG9uZyBSb2FkLCBQaW5nbmFuIEluZHVzdHJpYWwgUGFyaywgWmhvbmdrYWkgTm8uNCBSb2FkLAorCQkJCUh1aXpob3UgQ2l0eSBHdWFuZ2RvbmcgUHJvdmluY2UgNTE2MDA2CisJCQkJQ0hJTkEKKworMDAtMUQtODcgICAoaGV4KQkJVmlnVGVjaCBMYWJzIFNkbiBCaGQKKzAwMUQ4NyAgICAgKGJhc2UgMTYpCQlWaWdUZWNoIExhYnMgU2RuIEJoZAorCQkJCTQ1LTExIFRoZSBCb3VsZXZhcmQgTWlkIFZhbGxleSBDaXR5CisJCQkJTGluZ2thcmFuIFN5ZWQgUHV0cmEKKwkJCQlLdWFsYSBMdW1wdXIgU2VsYW5nb3IgNTkyMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xRC04OCAgIChoZXgpCQlDbGVhcndpcmUKKzAwMUQ4OCAgICAgKGJhc2UgMTYpCQlDbGVhcndpcmUKKwkJCQk0NDAwIENhcmlsbG9uIFBvaW50CisJCQkJS2lya2xhbmQgV2FzaGluZ3RvbiA5ODAzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtODkgICAoaGV4KQkJVmF1bHRTdG9yIENvcnBvcmF0aW9uCiswMDFEODkgICAgIChiYXNlIDE2KQkJVmF1bHRTdG9yIENvcnBvcmF0aW9uCisJCQkJMTAxMCBCcmlvc28gRHJpdmUKKwkJCQlDb3N0YSBNZXNhIENBIDkyNjI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC04QSAgIChoZXgpCQlUZWNoVHJleCBJbmMKKzAwMUQ4QSAgICAgKGJhc2UgMTYpCQlUZWNoVHJleCBJbmMKKwkJCQk2MjIxIEhpZ2h3YXkgNywgVW5pdCAxMgorCQkJCVdvb2RicmlkZ2UgT250YWxpbyBMNEggMEs4CisJCQkJQ0FOQURBCisKKzAwLTFELThCICAgKGhleCkJCUFEQiBCcm9hZGJhbmQgSXRhbGlhCiswMDFEOEIgICAgIChiYXNlIDE2KQkJQURCIEJyb2FkYmFuZCBJdGFsaWEKKwkJCQlWSUFMRSBTQVJDQSAyMjIKKwkJCQlNSUxBTk8gIDIwMTI2CisJCQkJSVRBTFkKKworMDAtMUQtOEMgICAoaGV4KQkJTGEgQ3Jvc3NlIFRlY2hub2xvZ3kgTFRECiswMDFEOEMgICAgIChiYXNlIDE2KQkJTGEgQ3Jvc3NlIFRlY2hub2xvZ3kgTFRECisJCQkJMjgwOSBMb3NleSBCbHZkLiBTby4KKwkJCQlMYSBDcm9zc2UgV0kgNTQ2MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELThEICAgKGhleCkJCVJheXRlayBHbWJICiswMDFEOEQgICAgIChiYXNlIDE2KQkJUmF5dGVrIEdtYkgKKwkJCQlCbGFua2VuYnVyZ2VyIFN0ci4gMTM1CisJCQkJQmVybGluICAxMzEyNworCQkJCUdFUk1BTlkKKworMDAtMUQtOEUgICAoaGV4KQkJQWxlcmVvbiwgSW5jLgorMDAxRDhFICAgICAoYmFzZSAxNikJCUFsZXJlb24sIEluYy4KKwkJCQk3NjAwIE4uIENhcGl0YWwgb2YgVGV4YXMgSHd5CisJCQkJQmxkZyBDLCAjMjAwCisJCQkJQXVzdGluIFRYIDc4NzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC04RiAgIChoZXgpCQlQdXJlV2F2ZSBOZXR3b3JrcworMDAxRDhGICAgICAoYmFzZSAxNikJCVB1cmVXYXZlIE5ldHdvcmtzCisJCQkJMjY2MC1DIE1hcmluZSBXYXkKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC05MCAgIChoZXgpCQlFTUNPIEZsb3cgU3lzdGVtcworMDAxRDkwICAgICAoYmFzZSAxNikJCUVNQ08gRmxvdyBTeXN0ZW1zCisJCQkJMjE1MCBNaWxsZXIgRHJpdmUKKwkJCQlMb25nbW9udCBDTyA4MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtOTEgICAoaGV4KQkJRGlnaXRpemUsIEluYworMDAxRDkxICAgICAoYmFzZSAxNikJCURpZ2l0aXplLCBJbmMKKwkJCQkxNTggRWRpc29uIFJvYWQKKwkJCQlMYWtlIEhvcGF0Y29uZyBOZXcgSmVyc2V5IDA3ODQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC05MiAgIChoZXgpCQlNSUNSTy1TVEFSIElOVCdMIENPLixMVEQuCiswMDFEOTIgICAgIChiYXNlIDE2KQkJTUlDUk8tU1RBUiBJTlQnTCBDTy4sTFRELgorCQkJCU5vLjY5LExpLURlIFN0LEp1bmctSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELTkzICAgKGhleCkJCU1vZGFjb20KKzAwMUQ5MyAgICAgKGJhc2UgMTYpCQlNb2RhY29tCisJCQkJSmluc3VrIEJ1aWxkaW5nIDE1MzYtNworCQkJCVNlb2Noby1Eb25nLCBTZW9jaG8tR3UKKwkJCQlTZW91bCAgMTM3LTA3MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRC05NCAgIChoZXgpCQlDbGltYXggVGVjaG5vbG9neSBDby4sIEx0ZAorMDAxRDk0ICAgICAoYmFzZSAxNikJCUNsaW1heCBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJTm8uIDI1OCwgSHNpbiBIdSAybmQgUm9hZAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpIENpdHkgVGFpcGVpIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtOTUgICAoaGV4KQkJRmxhc2gsIEluYy4KKzAwMUQ5NSAgICAgKGJhc2UgMTYpCQlGbGFzaCwgSW5jLgorCQkJCTM3MDMgTi4gMjAwdGggU3QuCisJCQkJRWxraG9ybiBORSA2ODAyMi0yOTIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC05NiAgIChoZXgpCQlXYXRjaEd1YXJkIFZpZGVvCiswMDFEOTYgICAgIChiYXNlIDE2KQkJV2F0Y2hHdWFyZCBWaWRlbworCQkJCTMwMDEgU3VtbWl0IEF2ZS4KKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtOTcgICAoaGV4KQkJQWxlcnR1cyBUZWNobm9sb2dpZXMgTExDCiswMDFEOTcgICAgIChiYXNlIDE2KQkJQWxlcnR1cyBUZWNobm9sb2dpZXMgTExDCisJCQkJMTE3ODUgQmVsdHN2aWxsZSBEcml2ZQorCQkJCVN1aXRlIDEzMjUKKwkJCQlCZWx0c3ZpbGxlIE1EIDIwNzA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC05OCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRDk4ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRC05OSAgIChoZXgpCQlDeWFuIE9wdGljLCBJbmMuCiswMDFEOTkgICAgIChiYXNlIDE2KQkJQ3lhbiBPcHRpYywgSW5jLgorCQkJCTEzOTAgTi4gTWNEb3dlbGwgQmx2ZAorCQkJCVN1aXRlIEctMzI3CisJCQkJUGV0YWx1bWEgQ0EgOTQ5NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTlBICAgKGhleCkJCUdPREVYIElOVEVSTkFUSU9OQUwgQ08uLCBMVEQKKzAwMUQ5QSAgICAgKGJhc2UgMTYpCQlHT0RFWCBJTlRFUk5BVElPTkFMIENPLiwgTFRECisJCQkJNEYuIE5PLjE2OCwgTGlhbi1DaGVuZyBSb2FkIENodW5nLUhvIENpdHksCisJCQkJVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtOUIgICAoaGV4KQkJSG9rdXlvIEF1dG9tYXRpYyBDby4sIEx0ZC4KKzAwMUQ5QiAgICAgKGJhc2UgMTYpCQlIb2t1eW8gQXV0b21hdGljIENvLiwgTHRkLgorCQkJCU5paXRha2EgMS0xMC05CisJCQkJWW9kb2dhd2EtS3UKKwkJCQlPc2FrYSAgNTMyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0xRC05QyAgIChoZXgpCQlSb2Nrd2VsbCBBdXRvbWF0aW9uCiswMDFEOUMgICAgIChiYXNlIDE2KQkJUm9ja3dlbGwgQXV0b21hdGlvbgorCQkJCTEgQWxsZW4tQnJhZGxleSBEcml2ZQorCQkJCUNTLUMyMzkKKwkJCQlNYXlmaWVsZCBIZWlnaHRzIE9oaW8gNDQxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELTlEICAgKGhleCkJCUFSVEpPWSBJTlRFUk5BVElPTkFMIExJTUlURUQKKzAwMUQ5RCAgICAgKGJhc2UgMTYpCQlBUlRKT1kgSU5URVJOQVRJT05BTCBMSU1JVEVECisJCQkJUm9vbSAxNjAxLE5vLjIzOSBaaG9uZ1hpbmcgUm9hZCxMdW9IdSBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDEKKwkJCQlDSElOQQorCiswMC0xRC05RSAgIChoZXgpCQlBWElPTiBURUNITk9MT0dJRVMKKzAwMUQ5RSAgICAgKGJhc2UgMTYpCQlBWElPTiBURUNITk9MT0dJRVMKKwkJCQkxNTEgUlVFIFBBUkMgSU5OT1ZBVElPTgorCQkJCUxBIFBPQ0FUSUVSRSBRVUVCRUMgRzBSMVowCisJCQkJQ0FOQURBCisKKzAwLTFELTlGICAgKGhleCkJCU1BVFQgICBSLlAuVHJhY3p5bnNjeSBTcC5KLgorMDAxRDlGICAgICAoYmFzZSAxNikJCU1BVFQgICBSLlAuVHJhY3p5bnNjeSBTcC5KLgorCQkJCVBvbG5vY25hIDQ0CisJCQkJS29zY2lhbiB3aWVsa29wb2xza2llIFBMLTY0MDAwCisJCQkJUE9MQU5ECisKKzAwLTFELUEwICAgKGhleCkJCUhlbmcgWXUgRWxlY3Ryb25pYyBNYW51ZmFjdHVyaW5nIENvbXBhbnkgTGltaXRlZAorMDAxREEwICAgICAoYmFzZSAxNikJCUhlbmcgWXUgRWxlY3Ryb25pYyBNYW51ZmFjdHVyaW5nIENvbXBhbnkgTGltaXRlZAorCQkJCVJvb20gMTAwNCwgSFNIIE1vbmdrb2sgUGxhemEsCisJCQkJNzk0LTgwMiBOYXRoYW4gUm9hZCwKKwkJCQlLb3dsb29uICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUQtQTEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxREExICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUEyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMURBMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1BMyAgIChoZXgpCQlTYWJpT3NvCiswMDFEQTMgICAgIChiYXNlIDE2KQkJU2FiaU9zbworCQkJCTE4OSBTIFN0YXRlIFN1aXRlICMyNTAKKwkJCQlDbGVhcmZpZWxkIFV0YWggODQwMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUE0ICAgKGhleCkJCUhhbmd6aG91IFN5c3RlbSBUZWNobm9sb2d5IENPLiwgTFRECiswMDFEQTQgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgU3lzdGVtIFRlY2hub2xvZ3kgQ08uLCBMVEQKKwkJCQlST09NIEExNTA1IEh1YVhpbmcgdGltZXMgcGxhemEsTk8gNDc4IFdlbnNhbiBSb2FkCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworMDAtMUQtQTUgICAoaGV4KQkJV0IgRWxlY3Ryb25pY3MKKzAwMURBNSAgICAgKGJhc2UgMTYpCQlXQiBFbGVjdHJvbmljcworCQkJCUxhbmdlbGFuZHN2ZWogMUEKKwkJCQlIZXJuaW5nIEhlcm5pbmcgNzQwMAorCQkJCURFTk1BUksKKworMDAtMUQtQTYgICAoaGV4KQkJTWVkaWEgTnVtZXJpY3MgTGltaXRlZAorMDAxREE2ICAgICAoYmFzZSAxNikJCU1lZGlhIE51bWVyaWNzIExpbWl0ZWQKKwkJCQlSb2RlbmJhY2hlciBDaGF1c3NlZSA2CisJCQkJSGFuYXUgSGVzc2VuIDYzNDU3CisJCQkJR0VSTUFOWQorCiswMC0xRC1BNyAgIChoZXgpCQlTZWFtbGVzcyBJbnRlcm5ldAorMDAxREE3ICAgICAoYmFzZSAxNikJCVNlYW1sZXNzIEludGVybmV0CisJCQkJMjA1MCBSdXNzZXR0IFdheSBTdWl0ZSAzMzgKKwkJCQlDYXJzb24gQ2l0eSBOZXZhZGEgODk3MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUE4ICAgKGhleCkJCVRha2FoYXRhIEVsZWN0cm9uaWNzIENvLixMdGQKKzAwMURBOCAgICAgKGJhc2UgMTYpCQlUYWthaGF0YSBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJMTE4OCxLdWJvdGEsS3Vib3RhLW1hY2hpCisJCQkJWW9uZXphd2Etc2hpIFlhbWFnYXRhLVByZWYuIDk5Mi0wMDAzCisJCQkJSkFQQU4KKworMDAtMUQtQTkgICAoaGV4KQkJQ2FzdGxlcyBUZWNobm9sb2d5LCBDby4sIExURAorMDAxREE5ICAgICAoYmFzZSAxNikJCUNhc3RsZXMgVGVjaG5vbG9neSwgQ28uLCBMVEQKKwkJCQkyRiwgTm8uMjA1LCBTZWMgMyBCZWlzaGluIFJkLiwKKwkJCQlIc2luLVRpZW4gQ2l0eSBUYWlwZWkgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRC1BQSAgIChoZXgpCQlEcmF5VGVrIENvcnAuCiswMDFEQUEgICAgIChiYXNlIDE2KQkJRHJheVRlayBDb3JwLgorCQkJCU5vLiAyNiwgRnUtU2hpbmcgUm9hZAorCQkJCUh1S291IENvdW50eSwgSHNpbi1DaHUgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbi1DaHUgIDMwMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtQUIgICAoaGV4KQkJU3dpc3NRdWFsIExpY2Vuc2UgQUcKKzAwMURBQiAgICAgKGJhc2UgMTYpCQlTd2lzc1F1YWwgTGljZW5zZSBBRworCQkJCUJhYXJlcnN0cmFzc2UgNzgKKwkJCQladWcgUG9zdGZhY2ggMTE3CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUQtQUMgICAoaGV4KQkJR2lnYW1vbiBTeXN0ZW1zIExMQworMDAxREFDICAgICAoYmFzZSAxNikJCUdpZ2Ftb24gU3lzdGVtcyBMTEMKKwkJCQk1OTggR2licmFsdGFyIERyaXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUFEICAgKGhleCkJCVNpbm90ZWNoIEVuZ2luZWVyaW5nIENvbnN1bHRhbnRzLCBJbmMuICBHZW90ZWNobmljYWwgRW5naW5lZQorMDAxREFEICAgICAoYmFzZSAxNikJCVNpbm90ZWNoIEVuZ2luZWVyaW5nIENvbnN1bHRhbnRzLCBJbmMuICBHZW90ZWNobmljYWwgRW5naW5lZQorCQkJCUJhc2VtZW50IE5vLjcgTGFuZSAyNiwgWWF0LVNlbiBSZC4KKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtQUUgICAoaGV4KQkJQ0hBTkcgVFNFTkcgVEVDSE5PTE9HWSBDTy4sIExURAorMDAxREFFICAgICAoYmFzZSAxNikJCUNIQU5HIFRTRU5HIFRFQ0hOT0xPR1kgQ08uLCBMVEQKKwkJCQkyRiBOTy4xNjAgQkFDSyBCVUlMRElORywgTEVOIENIRU5HIFJELiwgQ0hVTkcgSE8gQ0lUWQorCQkJCVRBSVBFSSBIU0lFTiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELUFGICAgKGhleCkJCU5vcnRlbAorMDAxREFGICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xRC1CMCAgIChoZXgpCQlGdUppYW4gSGVuZ1RvbmcgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkCiswMDFEQjAgICAgIChiYXNlIDE2KQkJRnVKaWFuIEhlbmdUb25nIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCU5vLjE0LTgwNCxCdWlsZGluZyAyLEppblhpdUZ1Q2hlbmcsTm8uMzM4LEh1YUxpbiBSb2FkCisJCQkJRnVaaG91IENpdHkgRnVKaWFuIFByb3ZpbmNlIDM1MDAwMQorCQkJCUNISU5BCisKKzAwLTFELUIxICAgKGhleCkJCUNyZXNjZW5kbyBOZXR3b3JrcworMDAxREIxICAgICAoYmFzZSAxNikJCUNyZXNjZW5kbyBOZXR3b3JrcworCQkJCTYgWW9uaSBOZXRhbnlhaHUgU3QuCisJCQkJT3ItWWVodWRhICA2MDM3NgorCQkJCUlTUkFFTAorCiswMC0xRC1CMiAgIChoZXgpCQlIT0tLQUlETyBFTEVDVFJJQyBFTkdJTkVFUklORyBDTy4sTFRELgorMDAxREIyICAgICAoYmFzZSAxNikJCUhPS0tBSURPIEVMRUNUUklDIEVOR0lORUVSSU5HIENPLixMVEQuCisJCQkJU291dGgxNS1XZXN0MjMKKwkJCQlOYW5wb3JvLUNobyBIb2trYWlkbyAwNjktMDIxNQorCQkJCUpBUEFOCisKKzAwLTFELUIzICAgKGhleCkJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKzAwMURCMyAgICAgKGJhc2UgMTYpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCisJCQkJODAwMCBGb290aGlsbHMgQmx2ZAorCQkJCVJvc2V2aWxsZSBDQSA5NTc0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQjQgICAoaGV4KQkJS1VNSE8gRU5HIENPLixMVEQKKzAwMURCNCAgICAgKGJhc2UgMTYpCQlLVU1ITyBFTkcgQ08uLExURAorCQkJCTQ5OC0xMywgSFlVTkRBSSBCL0QgNUYKKwkJCQlQWUVPTkdSSSAzLURPTkcsIFNFTy1HVQorCQkJCURBRUdVICA3MDMtODM1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELUI1ICAgKGhleCkJCUp1bmlwZXIgbmV0d29ya3MKKzAwMURCNSAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIG5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUI2ICAgKGhleCkJCUJlc3RDb21tIE5ldHdvcmtzLCBJbmMuCiswMDFEQjYgICAgIChiYXNlIDE2KQkJQmVzdENvbW0gTmV0d29ya3MsIEluYy4KKwkJCQk0NDAwIEUuIEJyb2Fkd2F5IEJsdmQuCisJCQkJU3VpdGUgMjAxCisJCQkJVHVjc29uIEFaIDg1NzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1CNyAgIChoZXgpCQlUZW5kcmlsIE5ldHdvcmtzLCBJbmMuCiswMDFEQjcgICAgIChiYXNlIDE2KQkJVGVuZHJpbCBOZXR3b3JrcywgSW5jLgorCQkJCTU3MDAtRCBGbGF0aXJvbiBQYXJrd2F5CisJCQkJU3VpdGUgNTcwMC1ECisJCQkJQm91bGRlciBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQjggICAoaGV4KQkJSW50b3RvIEluYy4KKzAwMURCOCAgICAgKGJhc2UgMTYpCQlJbnRvdG8gSW5jLgorCQkJCTMxMDAgRGUgTGEgQ3J1eiBCbHZkLiAgIzMwMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1COSAgIChoZXgpCQlXZWxsc3ByaW5nIFdpcmVsZXNzCiswMDFEQjkgICAgIChiYXNlIDE2KQkJV2VsbHNwcmluZyBXaXJlbGVzcworCQkJCTEwNyBNYWdlbGxhIENvdXJ0CisJCQkJTm9ydGggV2FsZXMgUGEgMTk0NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUJBICAgKGhleCkJCVNvbnkgQ29ycG9yYXRpb24KKzAwMURCQSAgICAgKGJhc2UgMTYpCQlTb255IENvcnBvcmF0aW9uCisJCQkJR290ZW55YW1hIFRlYyw1LTEtMTIsCisJCQkJS2l0YXNoaW5hZ2F3YQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAwMQorCQkJCUpBUEFOCisKKzAwLTFELUJCICAgKGhleCkJCUR5bmFtaWMgU3lzdGVtIEVsZWN0cm9uaWNzIENvcnAuCiswMDFEQkIgICAgIChiYXNlIDE2KQkJRHluYW1pYyBTeXN0ZW0gRWxlY3Ryb25pY3MgQ29ycC4KKwkJCQk1RixOTyw5LExBTkUgMTMwLFNFQyAxLEtVQU5HRyBGVSBSRC5TQU4gQ0hVTkcgQ0lUWSwKKwkJCQlUYWlwZWkgSHNpZW4gMjQxNTgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELUJDICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAxREJDICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFELUJEICAgKGhleCkJCVZlcnNhbWVkIEluYy4KKzAwMURCRCAgICAgKGJhc2UgMTYpCQlWZXJzYW1lZCBJbmMuCisJCQkJMiBCbHVlIEhpbGwgUGxhemEKKwkJCQlQZWFybCBSaXZlciBOWSAxMDk2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQkUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCiswMDFEQkUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjAwIE4uIFVTIDQ1CisJCQkJTGliZXJ0eXZpbGxlIElsbGlub2lzIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1CRiAgIChoZXgpCQlSYWRpaWVudCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMURCRiAgICAgKGJhc2UgMTYpCQlSYWRpaWVudCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyMDg0LUEgV2Fsc2ggQXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUMwICAgKGhleCkJCUVucGhhc2UgRW5lcmd5CiswMDFEQzAgICAgIChiYXNlIDE2KQkJRW5waGFzZSBFbmVyZ3kKKwkJCQkyMDEgMXN0IFN0cmVldCwgU3VpdGUgMTExCisJCQkJUGV0YWx1bWEgQ0EgOTQ5NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUMxICAgKGhleCkJCUF1ZGluYXRlIFB0eSBMCiswMDFEQzEgICAgIChiYXNlIDE2KQkJQXVkaW5hdGUgUHR5IEwKKwkJCQlMZXZlbCAxLCA0NTggV2F0dGxlIFN0CisJCQkJVWx0aW1vIE5TVyAyMDA3CisJCQkJQVVTVFJBTElBCisKKzAwLTFELUMyICAgKGhleCkJCVhPUlRFQyBPWQorMDAxREMyICAgICAoYmFzZSAxNikJCVhPUlRFQyBPWQorCQkJCUjDtnl0w6Rtw7ZudGllIDYKKwkJCQlMZW1ww6TDpGzDpCBQaXJrYW5tYWEgMzM4ODAKKwkJCQlGSU5MQU5ECisKKzAwLTFELUMzICAgKGhleCkJCVJJS09SIFRWLCBMdGQKKzAwMURDMyAgICAgKGJhc2UgMTYpCQlSSUtPUiBUViwgTHRkCisJCQkJS29zdG9tYXJvdnNreSBwZXIuLDMKKwkJCQlNb3Njb3cgIDEwNTEyMAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRC1DNCAgIChoZXgpCQlBSU9JIFN5c3RlbXMgQ28uLCBMdGQuCiswMDFEQzQgICAgIChiYXNlIDE2KQkJQUlPSSBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCUtEWCBPbW9yaSwgQmxkZy4gOEYKKwkJCQkxLTYtOCBPbW9yaSBLaXRhLCBPdGEta3UKKwkJCQlUb2t5byAgMTQzLTAwMTYKKwkJCQlKQVBBTgorCiswMC0xRC1DNSAgIChoZXgpCQlCZWlqaW5nIEppYXh1biBGZWlob25nIEVsZWN0cmljaWFsIENvLiwgTHRkLgorMDAxREM1ICAgICAoYmFzZSAxNikJCUJlaWppbmcgSmlheHVuIEZlaWhvbmcgRWxlY3RyaWNpYWwgQ28uLCBMdGQuCisJCQkJRWxlY3RyaWNhbCBCdWlsZGluZyxOby4gMzEgSmlhb2RhIEVhc3QgUm9hZCwKKwkJCQlCZWlqaW5nIEhhaWRpYW4gRGlzdHJpY3QsIDEwMDA0NAorCQkJCUNISU5BCisKKzAwLTFELUM2ICAgKGhleCkJCVNOUiBJbmMuCiswMDFEQzYgICAgIChiYXNlIDE2KQkJU05SIEluYy4KKwkJCQlWQklDIFQyMjNobywgSUNVLCAxMDMtNiBNdW5qaS1kb25nLCBZb3VzZW9uZy1ndQorCQkJCURhZWplb24gIDMwNS03MzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUQtQzcgICAoaGV4KQkJTC0zIENvbW11bmljYXRpb25zIEdlbmV2YSBBZXJvc3BhY2UKKzAwMURDNyAgICAgKGJhc2UgMTYpCQlMLTMgQ29tbXVuaWNhdGlvbnMgR2VuZXZhIEFlcm9zcGFjZQorCQkJCTQyNDAgSW50ZXJuYXRpb25hbCBQYXJrd2F5CisJCQkJU3VpdGUgMTAwCisJCQkJQ2Fycm9sbHRvbiBUZXhhcyA3NTAwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQzggICAoaGV4KQkJU2NhZGFNZXRyY3MsIExMQy4KKzAwMURDOCAgICAgKGJhc2UgMTYpCQlTY2FkYU1ldHJjcywgTExDLgorCQkJCTU5NSBWaXN0YSBIaWxscyBDb3VydAorCQkJCUV1cmVrYSBNaXNzb3VyaSA2MzAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQzkgICAoaGV4KQkJR2FpblNwYW4gQ29ycC4KKzAwMURDOSAgICAgKGJhc2UgMTYpCQlHYWluU3BhbiBDb3JwLgorCQkJCVAuTy4gQm94IDIyMzU4MAorCQkJCUNhcm1lbCBDQSA5MzkyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtQ0EgICAoaGV4KQkJUEFWIEVsZWN0cm9uaWNzIExpbWl0ZWQKKzAwMURDQSAgICAgKGJhc2UgMTYpCQlQQVYgRWxlY3Ryb25pY3MgTGltaXRlZAorCQkJCTcgTGF2ZXJvY2sgUm9hZAorCQkJCVN0aXJsaW5nIFJvYWQgSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQlBaXJkcmllIExhbmFya3NoaXJlIE1MNiA3VUQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRC1DQiAgIChoZXgpCQlFeMOpbnMgRGV2ZWxvcG1lbnQgT3kKKzAwMURDQiAgICAgKGJhc2UgMTYpCQlFeMOpbnMgRGV2ZWxvcG1lbnQgT3kKKwkJCQlLYXVwcGFrYXR1IDM2CisJCQkJS2FqYWFuaSBLYWludXUgODcxMDAKKwkJCQlGSU5MQU5ECisKKzAwLTFELUNDICAgKGhleCkJCUhldHJhIFNlY3VyZSBTb2x1dGlvbnMKKzAwMURDQyAgICAgKGJhc2UgMTYpCQlIZXRyYSBTZWN1cmUgU29sdXRpb25zCisJCQkJMjM1MCBDb21tZXJjZSBQYXJrIERyLgorCQkJCVBhbG0gQmF5IEZMIDMyOTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1DRCAgIChoZXgpCQlBUlJJUyBHcm91cCwgSW5jLgorMDAxRENEICAgICAoYmFzZSAxNikJCUFSUklTIEdyb3VwLCBJbmMuCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1DRSAgIChoZXgpCQlBUlJJUyBHcm91cCwgSW5jLgorMDAxRENFICAgICAoYmFzZSAxNikJCUFSUklTIEdyb3VwLCBJbmMuCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1DRiAgIChoZXgpCQlBUlJJUyBHcm91cCwgSW5jLgorMDAxRENGICAgICAoYmFzZSAxNikJCUFSUklTIEdyb3VwLCBJbmMuCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1EMCAgIChoZXgpCQlBUlJJUyBHcm91cCwgSW5jLgorMDAxREQwICAgICAoYmFzZSAxNikJCUFSUklTIEdyb3VwLCBJbmMuCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1EMSAgIChoZXgpCQlBUlJJUyBHcm91cCwgSW5jLgorMDAxREQxICAgICAoYmFzZSAxNikJCUFSUklTIEdyb3VwLCBJbmMuCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1EMiAgIChoZXgpCQlBUlJJUyBHcm91cCwgSW5jLgorMDAxREQyICAgICAoYmFzZSAxNikJCUFSUklTIEdyb3VwLCBJbmMuCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1EMyAgIChoZXgpCQlBUlJJUyBHcm91cCwgSW5jLgorMDAxREQzICAgICAoYmFzZSAxNikJCUFSUklTIEdyb3VwLCBJbmMuCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1ENCAgIChoZXgpCQlBUlJJUyBHcm91cCwgSW5jLgorMDAxREQ0ICAgICAoYmFzZSAxNikJCUFSUklTIEdyb3VwLCBJbmMuCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1ENSAgIChoZXgpCQlBUlJJUyBHcm91cCwgSW5jLgorMDAxREQ1ICAgICAoYmFzZSAxNikJCUFSUklTIEdyb3VwLCBJbmMuCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1ENiAgIChoZXgpCQlBUlJJUyBHcm91cCwgSW5jLgorMDAxREQ2ICAgICAoYmFzZSAxNikJCUFSUklTIEdyb3VwLCBJbmMuCisJCQkJMzg3MSBMYWtlZmllbGQgRHJpdmUKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1ENyAgIChoZXgpCQlBbGdvbGl0aAorMDAxREQ3ICAgICAoYmFzZSAxNikJCUFsZ29saXRoCisJCQkJNDAwIElzYWJleQorCQkJCVNhaW50LUxhdXJlbnQgUWMgSDRUIDFWMworCQkJCUNBTkFEQQorCiswMC0xRC1EOCAgIChoZXgpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKzAwMUREOCAgICAgKGJhc2UgMTYpCQlNaWNyb3NvZnQgQ29ycG9yYXRpb24KKwkJCQlPbmUgTWljcm9zb2Z0IFdheQorCQkJCVJlZG1vbmQgV2FzaGluZ3RvbiA5ODA1Mi02Mzk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1EOSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uLEx0ZC4KKzAwMUREOSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uLEx0ZC4KKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtREEgICAoaGV4KQkJTWlrcm9lbGVrdHJvbmlrYSBzcG9sLiBzIHIuIG8uCiswMDFEREEgICAgIChiYXNlIDE2KQkJTWlrcm9lbGVrdHJvbmlrYSBzcG9sLiBzIHIuIG8uCisJCQkJRHLDoWJ5IDg0OQorCQkJCVZ5c29rw6kgTcO9dG8gQ1ogNTY2IDAxCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMUQtREIgICAoaGV4KQkJQy1CRUwgQ29ycG9yYXRpb24KKzAwMUREQiAgICAgKGJhc2UgMTYpCQlDLUJFTCBDb3Jwb3JhdGlvbgorCQkJCUZ1dGFiYWNobyAzNS0xMgorCQkJCTZGIE9rYWRhIEJpbGRnCisJCQkJSXRhYmFzaGkta3UgVG9reW8gMTczLTAwMTEKKwkJCQlKQVBBTgorCiswMC0xRC1EQyAgIChoZXgpCQlIYW5nWmhvdSBEZUNoYW5nTG9uZyBUZWNoJkluZm8gQ28uLEx0ZAorMDAxRERDICAgICAoYmFzZSAxNikJCUhhbmdaaG91IERlQ2hhbmdMb25nIFRlY2gmSW5mbyBDby4sTHRkCisJCQkJUm9vbSAxMTAyLEtlSmkgTWFuc2lvbiwKKwkJCQlFYXN0IFNvZnR3YXJlIFBhcmssOTAgV2VuU2FuIFJvYWQuCisJCQkJSGFuZ1pob3UgWmhlSmlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworMDAtMUQtREQgICAoaGV4KQkJREFUIEguSy4gTElNSVRFRAorMDAxREREICAgICAoYmFzZSAxNikJCURBVCBILksuIExJTUlURUQKKwkJCQlTdWl0ZSAxNDA1IDE0L0YuLCBDaXR5IFBsYXphIDQsIFRhaSBLb28gV2FuIFJkLAorCQkJCVRhaSBLb28gU2hpbmcgSG9uZyBLb25nIElzbGFuZCAwNjQ4MjgKKwkJCQlIT05HIEtPTkcKKworMDAtMUQtREUgICAoaGV4KQkJWmhlamlhbmcgQnJvYWRjYXN0JlRlbGV2aXNpb24gVGVjaG5vbG9neSBDby4sTHRkLgorMDAxRERFICAgICAoYmFzZSAxNikJCVpoZWppYW5nIEJyb2FkY2FzdCZUZWxldmlzaW9uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQlCdWlsZGluZyBOby4xNixYaWRvdW1lbiBJbmR1c3RyeSBQYXJrLFdlbnlpIFJvYWQsCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworMDAtMUQtREYgICAoaGV4KQkJU3VuaXRlYyBFbnRlcnByaXNlIENvLiwgTHRkLgorMDAxRERGICAgICAoYmFzZSAxNikJCVN1bml0ZWMgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKwkJCQkzRi4sIE5vLiA5OC0xLCBNaW5jeXVhbiBSZC4KKwkJCQlTaW5kaWFuIENpdHkgVGFpcGVpIENvdW50eSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFELUUwICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAxREUwICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMUQtRTEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDFERTEgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xRC1FMiAgIChoZXgpCQlSYWRpb25vciBDb21tdW5pY2F0aW9ucworMDAxREUyICAgICAoYmFzZSAxNikJCVJhZGlvbm9yIENvbW11bmljYXRpb25zCisJCQkJSW5ndmFsZCBZc3RnYWFyZHMgdmVnIDIzCisJCQkJVHJvbmRoZWltIFRSRCA3MDQ2CisJCQkJTk9SV0FZCisKKzAwLTFELUUzICAgKGhleCkJCUludHVpY29tCiswMDFERTMgICAgIChiYXNlIDE2KQkJSW50dWljb20KKwkJCQkxODgwIFMuIEZsYXRpcm9uIEN0LgorCQkJCVN1aXRlIFIKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1FNCAgIChoZXgpCQlWaXNpb25lZXJlZCBJbWFnZSBTeXN0ZW1zCiswMDFERTQgICAgIChiYXNlIDE2KQkJVmlzaW9uZWVyZWQgSW1hZ2UgU3lzdGVtcworCQkJCTEwNTYxIEdhcmRlbiBHcm92ZSBCbHZkCisJCQkJR2FyZGVuIEdyb3ZlIENhbGlmb3JuaWEgOTI4NDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUU1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMURFNSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1FNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFERTYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRTcgICAoaGV4KQkJTWFyaW5lIFNvbmljIFRlY2hub2xvZ3ksIEx0ZC4KKzAwMURFNyAgICAgKGJhc2UgMTYpCQlNYXJpbmUgU29uaWMgVGVjaG5vbG9neSwgTHRkLgorCQkJCTU1MDggR2VvcmdlIFdhc2hpbmd0b24gTWVtb3JpYWwgSGlnaHdheQorCQkJCVAuTy4gQm94IDczMAorCQkJCVdoaXRlIE1hcnNoIFZpcmdpbmlhIDIzMTgzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1FOCAgIChoZXgpCQlOaWtrbyBEZW5raSBUc3VzaGluIENvbXBhbnkoTkRUQykKKzAwMURFOCAgICAgKGJhc2UgMTYpCQlOaWtrbyBEZW5raSBUc3VzaGluIENvbXBhbnkoTkRUQykKKwkJCQk0NDAgS2Ftb3NoaWRhLXRvd24sIEFvYmEta3UKKwkJCQlZb2tvaGFtYSAgMjI3LTAwMzMKKwkJCQlKQVBBTgorCiswMC0xRC1FOSAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxREU5ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRC1FQSAgIChoZXgpCQlDb21tdGVzdCBJbnN0cnVtZW50cyBMdGQKKzAwMURFQSAgICAgKGJhc2UgMTYpCQlDb21tdGVzdCBJbnN0cnVtZW50cyBMdGQKKwkJCQlMZXZlbCAyLCAyMiBNb29yaG91c2UgQXZlCisJCQkJQ2hyaXN0Y2h1cmNoIENhbnRlcmJ1cnkgODI0MworCQkJCU5FVyBaRUFMQU5ECisKKzAwLTFELUVCICAgKGhleCkJCURJTkVDIEludGVybmF0aW9uYWwKKzAwMURFQiAgICAgKGJhc2UgMTYpCQlESU5FQyBJbnRlcm5hdGlvbmFsCisJCQkJUnVlIGRlIGxhIEdhcmUsIDMwCisJCQkJQlJBSU5FIEwnQUxMRVVEIEJSQUJBTlQgV0FMTE9OIDE0MjAKKwkJCQlCRUxHSVVNCisKKzAwLTFELUVDICAgKGhleCkJCU1hcnVzeXMKKzAwMURFQyAgICAgKGJhc2UgMTYpCQlNYXJ1c3lzCisJCQkJRXVuc3VuZyBCbGRnLiA1RgorCQkJCTUzLTggQ2h1bmdEYW0tRG9uZyBLYW5nTmFtLUt1CisJCQkJU2VvdWwgIDEzNS03NjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUQtRUQgICAoaGV4KQkJR3JpZCBOZXQsIEluYy4KKzAwMURFRCAgICAgKGJhc2UgMTYpCQlHcmlkIE5ldCwgSW5jLgorCQkJCTM0MCBCcmFubmFuIFN0cmVldAorCQkJCVN1aXRlIDUwMQorCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUVFICAgKGhleCkJCU5FWFRWSVNJT04gU0lTVEVNQVMgRElHSVRBSVMgREUgVEVMRVZJU8ODxpJPIExUREEuCiswMDFERUUgICAgIChiYXNlIDE2KQkJTkVYVFZJU0lPTiBTSVNURU1BUyBESUdJVEFJUyBERSBURUxFVklTw4PGkk8gTFREQS4KKwkJCQlBbGFtZWRhIFJpbyBOZWdybywgMTAzMCAtIDE5by4gYW5kYXIgY29uai4gMTkwNAorCQkJCUJhcnVlcmkgU8ODwqNvIFBhdWxvIDA2NDU0LTAwMAorCQkJCUJSQVpJTAorCiswMC0xRC1FRiAgIChoZXgpCQlUUklNTSwgSU5DLgorMDAxREVGICAgICAoYmFzZSAxNikJCVRSSU1NLCBJTkMuCisJCQkJNDA3IFJBSUxST0FEIFNUUkVFVAorCQkJCUJVVE5FUiBOQyAyNzUwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRjAgICAoaGV4KQkJVmlkaWVudCBTeXN0ZW1zLCBJbmMuCiswMDFERjAgICAgIChiYXNlIDE2KQkJVmlkaWVudCBTeXN0ZW1zLCBJbmMuCisJCQkJNDAwMCBCdXJ0b24gRHJpdmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NDA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRjEgICAoaGV4KQkJSW50ZWdvIFN5c3RlbXMsIEluYy4KKzAwMURGMSAgICAgKGJhc2UgMTYpCQlJbnRlZ28gU3lzdGVtcywgSW5jLgorCQkJCTUzNDMgQm93ZGVuIFJvYWQKKwkJCQlKYWNrc29udmlsbGUgRkwgMzIyMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFELUYyICAgKGhleCkJCU5ldGZsaXgsIEluYy4KKzAwMURGMiAgICAgKGJhc2UgMTYpCQlOZXRmbGl4LCBJbmMuCisJCQkJMTAwIFdpbmNoZXN0ZXIgQ2lyY2xlCisJCQkJTG9zIEdhdG9zIENBIDk1MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRC1GMyAgIChoZXgpCQlTQlMgU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMURGMyAgICAgKGJhc2UgMTYpCQlTQlMgU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlXMi1CNS82IEhpZ2gtdGVjaCBpbmR1c3RyaWFsIHBhcmsKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMUQtRjQgICAoaGV4KQkJTWFnZWxsYW4gVGVjaG5vbG9neSBQdHkgTGltaXRlZAorMDAxREY0ICAgICAoYmFzZSAxNikJCU1hZ2VsbGFuIFRlY2hub2xvZ3kgUHR5IExpbWl0ZWQKKwkJCQk2NSBKb2huc3RvbiBTdHJlZXQKKwkJCQlBbm5hbmRhbGUgTlNXIDIwMDAKKwkJCQlBVVNUUkFMSUEKKworMDAtMUQtRjUgICAoaGV4KQkJU3Vuc2hpbmUgQ28sTFRECiswMDFERjUgICAgIChiYXNlIDE2KQkJU3Vuc2hpbmUgQ28sTFRECisJCQkJMS0zLTUgS29qaW1hY2hpCisJCQkJQ2hpeW9kYS1rdQorCQkJCVRPS1lPIEthbnRvIHJlZ2lvbiAxMDItMDA4MworCQkJCUpBUEFOCisKKzAwLTFELUY2ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAxREY2ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRC1GNyAgIChoZXgpCQlSLiBTVEFITCBTY2hhbHRnZXLDpHRlIEdtYkgKKzAwMURGNyAgICAgKGJhc2UgMTYpCQlSLiBTVEFITCBTY2hhbHRnZXLDpHRlIEdtYkgKKwkJCQlhbSBCYWhuaG9mIDMwCisJCQkJV2FsZGVuYnVyZyBCYWRlbiBXw7xydHRlbWJlcmcgNzQ2MzgKKwkJCQlHRVJNQU5ZCisKKzAwLTFELUY4ICAgKGhleCkJCVdlYnBybyBWaXNpb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAxREY4ICAgICAoYmFzZSAxNikJCVdlYnBybyBWaXNpb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLiwgTm8uNTczLCBDaW5ncGluZyBSZC4KKwkJCQlBbnBpbmcgRGlzdHJpY3QgIDcwOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUQtRjkgICAoaGV4KQkJQ3liaW90cm9uaWNzIChGYXIgRWFzdCkgTGltaXRlZAorMDAxREY5ICAgICAoYmFzZSAxNikJCUN5YmlvdHJvbmljcyAoRmFyIEVhc3QpIExpbWl0ZWQKKwkJCQlVbml0IDE5MDYsIEVhc3Rlcm4gQ2VudHJlLAorCQkJCTEwNjUgS2luZydzIFJvYWQsCisJCQkJUXVhcnJ5IEJheSAgCisJCQkJSE9ORyBLT05HCisKKzAwLTFELUZBICAgKGhleCkJCUZ1amlhbiBMQU5ESSBDb21tZXJjaWFsIEVxdWlwbWVudCBDby4sTHRkCiswMDFERkEgICAgIChiYXNlIDE2KQkJRnVqaWFuIExBTkRJIENvbW1lcmNpYWwgRXF1aXBtZW50IENvLixMdGQKKwkJCQlCdWlsZGluZyAyMyx0aGUgMXN0IHNlY3Rpb24sU29mdHdhcmUgR2FyZGVuCisJCQkJTm8uODkgU29mdHdhcmUgUm9hZCwKKwkJCQlGdXpob3UgRnVqaWFuIDM1MDAwMworCQkJCUNISU5BCisKKzAwLTFELUZCICAgKGhleCkJCU5FVENMRVVTIFN5c3RlbXMgQ29ycG9yYXRpb24KKzAwMURGQiAgICAgKGJhc2UgMTYpCQlORVRDTEVVUyBTeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJM0YsIERhaWljaGktbWFlZGEgQmxkZy4KKwkJCQkzLTUtMywgWWFtYXRvLWhpZ2FzaGkKKwkJCQlZYW1hdG8tc2hpICAyNDItMDAxNworCQkJCUpBUEFOCisKKzAwLTFELUZDICAgKGhleCkJCUtTSUMKKzAwMURGQyAgICAgKGJhc2UgMTYpCQlLU0lDCisJCQkJIzZGLCBLb3JlYSBGZWRlcmF0aW9uIG9mIFRlYWNoZXIncyBBc3NvY2lhdGlvbnMsIDExNC0xLCBUYWVCb25nLVJvLAorCQkJCVNlb3VsIFNlb2Noby1LdSAxMzctNzE1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFELUZEICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFERkQgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTFELUZFICAgKGhleCkJCVBhbG0sIEluYworMDAxREZFICAgICAoYmFzZSAxNikJCVBhbG0sIEluYworCQkJCTk1MCBXZXN0IE1hdWRlIEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUQtRkYgICAoaGV4KQkJTmV0d29yayBDcml0aWNhbCBTb2x1dGlvbnMgTHRkCiswMDFERkYgICAgIChiYXNlIDE2KQkJTmV0d29yayBDcml0aWNhbCBTb2x1dGlvbnMgTHRkCisJCQkJMTJCIFNvdXRodmlldyBQYXJrCisJCQkJQ2F2ZXJzaGFtCisJCQkJUmVhZGluZyBCZXJrc2hpcmUgUkc0NUFGCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUUtMDAgICAoaGV4KQkJU2hhbnRvdSBJbnN0aXR1dGUgb2YgVWx0cmFzb25pYyBJbnN0cnVtZW50cworMDAxRTAwICAgICAoYmFzZSAxNikJCVNoYW50b3UgSW5zdGl0dXRlIG9mIFVsdHJhc29uaWMgSW5zdHJ1bWVudHMKKwkJCQlOby43NywgSmluc2hhIFJvYWQsCisJCQkJU2hhbnRvdSBHdWFuZ2RvbmcgNTE1MDQxCisJCQkJQ0hJTkEKKworMDAtMUUtMDEgICAoaGV4KQkJUmVuZXNhcyBUZWNobm9sb2d5IFNhbGVzIENvLiwgTHRkLgorMDAxRTAxICAgICAoYmFzZSAxNikJCVJlbmVzYXMgVGVjaG5vbG9neSBTYWxlcyBDby4sIEx0ZC4KKwkJCQkyLTYtMgorCQkJCU90ZW1hY2hpCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDAtMDAwNAorCQkJCUpBUEFOCisKKzAwLTFFLTAyICAgKGhleCkJCVNvdWdvdSBLZWlrYWt1IEtvdWd5b3UgQ28uLEx0ZC4KKzAwMUUwMiAgICAgKGJhc2UgMTYpCQlTb3Vnb3UgS2Vpa2FrdSBLb3VneW91IENvLixMdGQuCisJCQkJSEsyIGJsZC4gMi0yMS0xMAorCQkJCU5pc2hpb2dpbWluYW1pCisJCQkJU3VnaW5hbWlrdSBUb2t5byAxNjctMDA1MworCQkJCUpBUEFOCisKKzAwLTFFLTAzICAgKGhleCkJCUxpQ29tbSBDby4sIEx0ZC4KKzAwMUUwMyAgICAgKGJhc2UgMTYpCQlMaUNvbW0gQ28uLCBMdGQuCisJCQkJOTA4LTEgU0VPLVJJLCBJRE9ORy1NWUVPTgorCQkJCVlPTkdJTi1TSSBHWUVPTkdHSS1ETyA0NDktODM0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTA0ICAgKGhleCkJCUhhbnNvbiBSZXNlYXJjaCBDb3Jwb3JhdGlvbgorMDAxRTA0ICAgICAoYmFzZSAxNikJCUhhbnNvbiBSZXNlYXJjaCBDb3Jwb3JhdGlvbgorCQkJCTk4MTAgVmFyaWVsIEF2ZS4KKwkJCQlDaGF0c3dvcnRoIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS0wNSAgIChoZXgpCQlYc2VlZCBUZWNobm9sb2dpZXMgJiBDb21wdXRpbmcKKzAwMUUwNSAgICAgKGJhc2UgMTYpCQlYc2VlZCBUZWNobm9sb2dpZXMgJiBDb21wdXRpbmcKKwkJCQlUb3BheiBIb3VzZSwgTUFUQU0KKwkJCQk1IE5haHVtIEhhdCBTdC4KKwkJCQlIYWlmYSAgMzkxMDAKKwkJCQlJU1JBRUwKKworMDAtMUUtMDYgICAoaGV4KQkJV0lCUkFJTgorMDAxRTA2ICAgICAoYmFzZSAxNikJCVdJQlJBSU4KKwkJCQkzMDYgSkVJIFBsYXRzIEIvRCA0NTktMTEgR2FzYW4tZG9uZywgR2V1bWNoZW9uLWd1CisJCQkJU0VPVUwgIDE1My04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtMDcgICAoaGV4KQkJV2lueSBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAxRTA3ICAgICAoYmFzZSAxNikJCVdpbnkgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkzMDUtMzAzLCBCdWNoZW9uIFRlY2huby1wYXJrLCAjMzY1CisJCQkJU2FtamVvbmctZG9uZywgT2plb25nLWd1CisJCQkJQnVjaGVvbiBHeWVvbmdnaS1kbyA0MjEtNzQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTA4ICAgKGhleCkJCUNlbnRlYyBOZXR3b3JrcyBJbmMKKzAwMUUwOCAgICAgKGJhc2UgMTYpCQlDZW50ZWMgTmV0d29ya3MgSW5jCisJCQkJU2NpZW5jZSBQbGF6YSAxMEYgLCAzMjggQWlycG9ydCBSZAorCQkJCVN1emhvdSBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTdXpob3UgSmlhbmdzdSAyMTUwMjEKKwkJCQlDSElOQQorCiswMC0xRS0wOSAgIChoZXgpCQlaRUZBVEVLIENvLixMVEQKKzAwMUUwOSAgICAgKGJhc2UgMTYpCQlaRUZBVEVLIENvLixMVEQKKwkJCQkzMjYtNCBHYXNhbmRvbmcsIEdldW1jaGVvbmd1CisJCQkJU2VvdWwgIDE1My04MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtMEEgICAoaGV4KQkJU3liYSBUZWNoIExpbWl0ZWQKKzAwMUUwQSAgICAgKGJhc2UgMTYpCQlTeWJhIFRlY2ggTGltaXRlZAorCQkJCVJNMTMwMSwgVmFudGEgSW5kdXN0cmlhbCBDZW50cmUsCisJCQkJMjEtMzMgVGFpIExpbiBQYWkgUmQuCisJCQkJS3dhaSBDaHVuZyAgCisJCQkJSE9ORyBLT05HCisKKzAwLTFFLTBCICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDFFMEIgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMEMgICAoaGV4KQkJU2hlcndvb2QgSW5mb3JtYXRpb24gUGFydG5lcnMsIEluYy4KKzAwMUUwQyAgICAgKGJhc2UgMTYpCQlTaGVyd29vZCBJbmZvcm1hdGlvbiBQYXJ0bmVycywgSW5jLgorCQkJCTExMjAgVywgMTIybmQgQXZlLCBTdGUgMzAwCisJCQkJV2VzdG1pbnN0ZXIgQ08gODAyMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTBEICAgKGhleCkJCU1pY3JhbiBMdGQuCiswMDFFMEQgICAgIChiYXNlIDE2KQkJTWljcmFuIEx0ZC4KKwkJCQlWZXJzaGluaW5hIHN0LiA0NworCQkJCVRvbXNrIFRvbXNrIFJlZ2lvbiA2MzQwMzQKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUUtMEUgICAoaGV4KQkJTUFYSSBWSUVXIEhPTERJTkdTIExJTUlURUQKKzAwMUUwRSAgICAgKGJhc2UgMTYpCQlNQVhJIFZJRVcgSE9MRElOR1MgTElNSVRFRAorCQkJCVN1aXRlIDIzMDIsMjMvRiBHcmVhdCBFYWdsZSBDZW50cmUsIDIzIEhhcmJvdXIgUm9hZCwgV2FuY2hhaQorCQkJCUhvbmcgS29uZyAgCisJCQkJQ0hJTkEKKworMDAtMUUtMEYgICAoaGV4KQkJQnJpb3QgSW50ZXJuYXRpb25hbAorMDAxRTBGICAgICAoYmFzZSAxNikJCUJyaW90IEludGVybmF0aW9uYWwKKwkJCQkyIHJ1ZSByb2dlciBCb25uZXQKKwkJCQlQb250IGRlIGwnQXJjaGUgRXVyZSAyNzM0MAorCQkJCUZSQU5DRQorCiswMC0xRS0xMCAgIChoZXgpCQlTaGVuWmhlbiBIdWF3ZWkgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzAwMUUxMCAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBIdWF3ZWkgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKwkJCQlIVUFXRUkgSU5EVVNUUklBTCBQSyBCQU5USUFOLCBMT05HR0FORyBESVNUIFNIRU5aSEVOCisJCQkJU0hFTlpIRU4gR1VBTkdET05HIDUxODA3NworCQkJCUNISU5BCisKKzAwLTFFLTExICAgKGhleCkJCUVMRUxVWCBJTlRFUk5BVElPTkFMIExURAorMDAxRTExICAgICAoYmFzZSAxNikJCUVMRUxVWCBJTlRFUk5BVElPTkFMIExURAorCQkJCTNGLiwgTk8uMTAzIENIT1cgVFpFIFNUUkVFVAorCQkJCU5FSS1IVSBESVNUUklDVCAoMTE0KQorCQkJCVRBSVBFSSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS0xMiAgIChoZXgpCQlFY29sYWIKKzAwMUUxMiAgICAgKGJhc2UgMTYpCQlFY29sYWIKKwkJCQk2NTUgTG9uZSBPYWsgRHJpdmUKKwkJCQlSZXNlYXJjaCBDZW50ZXIgRG9jayAtLSBGNDQxNgorCQkJCUVhZ2FuIE1OIDU1MTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS0xMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFFMTMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMTQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRTE0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTE1ICAgKGhleCkJCUJlZWNoIEhpbGwgRWxlY3Ryb25pY3MKKzAwMUUxNSAgICAgKGJhc2UgMTYpCQlCZWVjaCBIaWxsIEVsZWN0cm9uaWNzCisJCQkJQmVlY2hjcm9mdCwgQmVlY2ggSGlsbCBSb2FkCisJCQkJQmVlY2ggSGlsbAorCQkJCVJlYWRpbmcgQmVya3NoaXJlIFJHNyAyQVUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRS0xNiAgIChoZXgpCQlLZXl0cm9uaXgKKzAwMUUxNiAgICAgKGJhc2UgMTYpCQlLZXl0cm9uaXgKKwkJCQlVbmdhcmdhc3NlIDY0LTY2LzEvMTA5CisJCQkJVmllbm5hICAxMDMwCisJCQkJQVVTVFJJQQorCiswMC0xRS0xNyAgIChoZXgpCQlTVE4gQlYKKzAwMUUxNyAgICAgKGJhc2UgMTYpCQlTVE4gQlYKKwkJCQlBbWVyaWthd2VnIDQKKwkJCQlIdWxzdCBaZWVsYW5kIDQ1NjEgUEIKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRS0xOCAgIChoZXgpCQlSYWRpbyBBY3Rpdml0eSBzcmwKKzAwMUUxOCAgICAgKGJhc2UgMTYpCQlSYWRpbyBBY3Rpdml0eSBzcmwKKwkJCQlWaWEgUG9udGUgTnVvdm8gOAorCQkJCU1pbGFubyBNSSAyMDEyOAorCQkJCUlUQUxZCisKKzAwLTFFLTE5ICAgKGhleCkJCUdUUkkKKzAwMUUxOSAgICAgKGJhc2UgMTYpCQlHVFJJCisJCQkJTS9TIDA4MjEKKwkJCQlBdGxhbnRhIEdBIDMwMzMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS0xQSAgIChoZXgpCQlCZXN0IFNvdXJjZSBUYWl3YW4gSW5jLgorMDAxRTFBICAgICAoYmFzZSAxNikJCUJlc3QgU291cmNlIFRhaXdhbiBJbmMuCisJCQkJMkYsIE5vLjE2LCBMYW5lIDU2LCBKaG9uZ2poZW5nIFcuIFJkLiwKKwkJCQlKaHViZWkgQ2l0eSwgSHNpbmNodSBDb3VudHkgMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS0xQiAgIChoZXgpCQlEaWdpdGFsIFN0cmVhbSBUZWNobm9sb2d5LCBJbmMuCiswMDFFMUIgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBTdHJlYW0gVGVjaG5vbG9neSwgSW5jLgorCQkJCTQsNSw2dGggRmwuLCBUYWVDaGFuZyBCL0QsIDQ1MS0xCisJCQkJU3VuZ05hZS1Eb25nLCBHYW5nRG9uZy1LdQorCQkJCVNlb3VsICAxMzQtMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTFDICAgKGhleCkJCVNXUyBBdXN0cmFsaWEgUHR5IExpbWl0ZWQKKzAwMUUxQyAgICAgKGJhc2UgMTYpCQlTV1MgQXVzdHJhbGlhIFB0eSBMaW1pdGVkCisJCQkJMjMgU2NhbmxvbiBEcml2ZQorCQkJCUVwcGluZyBWaWN0b3JpYSAzMDc2CisJCQkJQVVTVFJBTElBCisKKzAwLTFFLTFEICAgKGhleCkJCUVhc3QgQ29hc3QgRGF0YWNvbSwgSW5jLgorMDAxRTFEICAgICAoYmFzZSAxNikJCUVhc3QgQ29hc3QgRGF0YWNvbSwgSW5jLgorCQkJCTI0NSBHdXMgSGlwcCBCbHZkLiwgU1RFIDMKKwkJCQlSb2NrbGVkZ2UgRkwgMzI5NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTFFICAgKGhleCkJCUhvbmV5d2VsbCBMaWZlIFNhZmV0eQorMDAxRTFFICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbCBMaWZlIFNhZmV0eQorCQkJCTEyIENsaW50b252aWxsZSBSb2FkCisJCQkJTm9ydGhmb3JkIENUIDA0MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTFGICAgKGhleCkJCU5vcnRlbAorMDAxRTFGICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xRS0yMCAgIChoZXgpCQlJbnRlcnRhaW4gSW5jLgorMDAxRTIwICAgICAoYmFzZSAxNikJCUludGVydGFpbiBJbmMuCisJCQkJU3VpdGUgNjA4IExHIEVjbGF0LTIsIDI0NS00IFNlb2h5dW4tZG9uZywgQnVuZGFuZy1ndQorCQkJCVN1bmduZ20tc2hpIEt5dW5nZ2ktZG8gNDYzLTgyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS0yMSAgIChoZXgpCQlRaXNkYSBDby4KKzAwMUUyMSAgICAgKGJhc2UgMTYpCQlRaXNkYSBDby4KKwkJCQkxNTcgU2hhbi1ZaW5nIFJvYWQsIEd1ZWlzaGFuCisJCQkJVGFveXVhbiAgMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS0yMiAgIChoZXgpCQlBUlZPTyBJbWFnaW5nIFByb2R1Y3RzIEJWCiswMDFFMjIgICAgIChiYXNlIDE2KQkJQVJWT08gSW1hZ2luZyBQcm9kdWN0cyBCVgorCQkJCVBPIEJveCA0MzkKKwkJCQlXb2VyZGVuIFVUIDM0NDAgQUsKKwkJCQlORVRIRVJMQU5EUworCiswMC0xRS0yMyAgIChoZXgpCQlFbGVjdHJvbmljIEVkdWNhdGlvbmFsIERldmljZXMsIEluYworMDAxRTIzICAgICAoYmFzZSAxNikJCUVsZWN0cm9uaWMgRWR1Y2F0aW9uYWwgRGV2aWNlcywgSW5jCisJCQkJMTkwMyBTIEdyYW50IFN0CisJCQkJRGVudmVyIENPIDgwMjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS0yNCAgIChoZXgpCQlaaGVqaWFuZyBCZWxsIFRlY2hub2xvZ3kgQ28uLGx0ZAorMDAxRTI0ICAgICAoYmFzZSAxNikJCVpoZWppYW5nIEJlbGwgVGVjaG5vbG9neSBDby4sbHRkCisJCQkJNiBYaWRvdW1lbiBSZC4gV2VzdCBMYWtlIGRpc3RyaWN0CisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworMDAtMUUtMjUgICAoaGV4KQkJSW50ZWsgRGlnaXRhbCBJbmMKKzAwMUUyNSAgICAgKGJhc2UgMTYpCQlJbnRlayBEaWdpdGFsIEluYworCQkJCTExMDEsIDExdGggRmwuLCBBbnlhbmcgSy1jZW50ZXIgYnVpbGRpbmcsIDE1OTEtOQorCQkJCUd3YW55YW5nLWRvbmcsIERvbmdhbi1ndQorCQkJCUFueWFuZyBHeWVvbmdnaS1kbyA0MzEtODE1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTI2ICAgKGhleCkJCURpZ2lmcmllbmRzIENvLiBMdGQKKzAwMUUyNiAgICAgKGJhc2UgMTYpCQlEaWdpZnJpZW5kcyBDby4gTHRkCisJCQkJSm95YW5nIEIvRCA2dGggRmxvb3IKKwkJCQkxMTMgU2Ftc3VuZy1kb25nLCBLYW5nbmFtLWd1CisJCQkJU2VvdWwgIDEzNS0wOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtMjcgICAoaGV4KQkJU0JOIFRFQ0ggQ28uLEx0ZC4KKzAwMUUyNyAgICAgKGJhc2UgMTYpCQlTQk4gVEVDSCBDby4sTHRkLgorCQkJCSM3MDYgSW5kdXN0cmlhbCBBY2FkZW1pYyBDZW50ZXIsIEtvbmt1ayBVbml2ZXJzaXR5LCBId2F5YW5nLWRvbmcsIEd3YW5namluLWd1CisJCQkJU2VvdWwgIDE0My03MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtMjggICAoaGV4KQkJTHVtZXhpcyBDb3Jwb3JhdGlvbgorMDAxRTI4ICAgICAoYmFzZSAxNikJCUx1bWV4aXMgQ29ycG9yYXRpb24KKwkJCQkzMTg0IEFpcndheSBBdmUgQmxkZyBECisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMjkgICAoaGV4KQkJSHlwZXJ0aGVybSBJbmMKKzAwMUUyOSAgICAgKGJhc2UgMTYpCQlIeXBlcnRoZXJtIEluYworCQkJCTE1IEdyZWF0IEhvbGxvdyBSZAorCQkJCVBPIEJveCA1MDEwCisJCQkJSGFub3ZlciBOSCAwMzc1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMkEgICAoaGV4KQkJTmV0Z2VhciBJbmMuCiswMDFFMkEgICAgIChiYXNlIDE2KQkJTmV0Z2VhciBJbmMuCisJCQkJNDUwMCBHcmVhdCBBbWVyaWNhIFBhcmt3YXkKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtMkIgICAoaGV4KQkJUmFkaW8gU3lzdGVtcyBEZXNpZ24sIEluYy4KKzAwMUUyQiAgICAgKGJhc2UgMTYpCQlSYWRpbyBTeXN0ZW1zIERlc2lnbiwgSW5jLgorCQkJCTYwMSBIZXJvbiBEcml2ZQorCQkJCUxvZ2FuIFR3cCBOZXcgSmVyc2V5IDA4MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS0yQyAgIChoZXgpCQlDeVZlcnNlIENvcnBvcmF0aW9uCiswMDFFMkMgICAgIChiYXNlIDE2KQkJQ3lWZXJzZSBDb3Jwb3JhdGlvbgorCQkJCVNob3V0b3UgUm91a3ViYW5rYW4gQmxkZy4gNEYKKwkJCQkxLTI4LTQsIFNob3V0b3UKKwkJCQlTaGlidXlhLWt1IFRva3lvIDE1MC0wMDQ2CisJCQkJSkFQQU4KKworMDAtMUUtMkQgICAoaGV4KQkJU1RJTQorMDAxRTJEICAgICAoYmFzZSAxNikJCVNUSU0KKwkJCQlaQUMgbGVzIENPVVNURUxMSUVSUworCQkJCTYgUnVlIGRlIEwnQUJSSVZBRE8KKwkJCQlDQVNUUklFUyBIRVJBVUxUIDM0MTYwCisJCQkJRlJBTkNFCisKKzAwLTFFLTJFICAgKGhleCkJCVNJUlRJIFMucC5BLgorMDAxRTJFICAgICAoYmFzZSAxNikJCVNJUlRJIFMucC5BLgorCQkJCVZpYSBTdGFtaXJhIGQnQW5jb25hIDkKKwkJCQlNSUxBTiAgMjAxMjcKKwkJCQlJVEFMWQorCiswMC0xRS0yRiAgIChoZXgpCQlEaU1vdG8gUHR5IEx0ZAorMDAxRTJGICAgICAoYmFzZSAxNikJCURpTW90byBQdHkgTHRkCisJCQkJNyBNZWxqYXJlbiBQbGFjZQorCQkJCUJ1ZGVyaW0gUXVlZW5zbGFuZCA0NTU2CisJCQkJQVVTVFJBTElBCisKKzAwLTFFLTMwICAgKGhleCkJCVNoaXJlZW4gSW5jCiswMDFFMzAgICAgIChiYXNlIDE2KQkJU2hpcmVlbiBJbmMKKwkJCQk4NTMxIFppZ2d5IExhbmUKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTMxICAgKGhleCkJCUlORk9NQVJLIENPLixMVEQuCiswMDFFMzEgICAgIChiYXNlIDE2KQkJSU5GT01BUksgQ08uLExURC4KKwkJCQk1Ri4sR2Vvd24gQmxkZy4sMTM2MC01MworCQkJCVNlb3VsIFNlb2Noby1kb25nLFNlb2Noby1ndSAxMzctODYzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTMyICAgKGhleCkJCVplbnN5cworMDAxRTMyICAgICAoYmFzZSAxNikJCVplbnN5cworCQkJCUVtZHJ1cHZlaiAyNgorCQkJCUNvcGVuaGFnZW4gTyAgREstMjEwMAorCQkJCURFTk1BUksKKworMDAtMUUtMzMgICAoaGV4KQkJSW52ZW50ZWMgQ29ycG9yYXRpb24KKzAwMUUzMyAgICAgKGJhc2UgMTYpCQlJbnZlbnRlYyBDb3Jwb3JhdGlvbgorCQkJCUludmVudGVjIEJ1aWxkaW5nLCA2NiBIb3UtS2FuZyBTdHJlZXQKKwkJCQlTaGluLUxpbiBEaXN0cmljdAorCQkJCVRhaXBlaSAgMTExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS0zNCAgIChoZXgpCQlDcnlwdG9NZXRyaWNzCiswMDFFMzQgICAgIChiYXNlIDE2KQkJQ3J5cHRvTWV0cmljcworCQkJCTE2MCBNaWNoYWVsIENvd3BsYW5kIERyCisJCQkJT3R0YXdhIE9udGFyaW8gSzJNIDFQNgorCQkJCUNBTkFEQQorCiswMC0xRS0zNSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMUUzNSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyBLWU9UTyA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTFFLTM2ICAgKGhleCkJCUlQVEUKKzAwMUUzNiAgICAgKGJhc2UgMTYpCQlJUFRFCisJCQkJR2VsZWVubGFhbiA1CisJCQkJR2VuayBMaW1idXJnIDM2MDAKKwkJCQlCRUxHSVVNCisKKzAwLTFFLTM3ICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAxRTM3ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTEFORSAzNTEsIFNFQy4xLFRBSVBJTkcgUkQuCisJCQkJVFNBT1RVRU4KKwkJCQlOQU5UT1UgNTQyNjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLTM4ICAgKGhleCkJCUJsdWVjYXJkIFNvZnR3YXJlIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFFMzggICAgIChiYXNlIDE2KQkJQmx1ZWNhcmQgU29mdHdhcmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlELTgwMSBTaGFuZ2RpIFNjaWVuY2UgQnVpbGRpbmcKKwkJCQlOby44IFNoYW5nZGkgV2VzdCBSb2FkCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMUUtMzkgICAoaGV4KQkJQ29tc3lzIENvbW11bmljYXRpb24gTHRkLgorMDAxRTM5ICAgICAoYmFzZSAxNikJCUNvbXN5cyBDb21tdW5pY2F0aW9uIEx0ZC4KKwkJCQk5IEhhbWVub2ZpbSBzdC4KKwkJCQlIZXJ6ZWxpYSAgNDY3MjUKKwkJCQlJU1JBRUwKKworMDAtMUUtM0EgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUUzQSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRS0zQiAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRTNCICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRS0zQyAgIChoZXgpCQlMeW5nYm94IE1lZGlhIEFCCiswMDFFM0MgICAgIChiYXNlIDE2KQkJTHluZ2JveCBNZWRpYSBBQgorCQkJCURpc2tldHRnYXRhbiAxMUIKKwkJCQlMaW5rb3BpbmcgIFNFLTU4MzM1CisJCQkJU1dFREVOCisKKzAwLTFFLTNEICAgKGhleCkJCUFscHMgRWxlY3RyaWMgQ28uLCBMdGQKKzAwMUUzRCAgICAgKGJhc2UgMTYpCQlBbHBzIEVsZWN0cmljIENvLiwgTHRkCisJCQkJMS0yLTEsIE9raW5vdWNoaQorCQkJCVNvbWEgY2l0eSBGdWt1c2hpbS1wcmVmIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMUUtM0UgICAoaGV4KQkJS01XIEluYy4KKzAwMUUzRSAgICAgKGJhc2UgMTYpCQlLTVcgSW5jLgorCQkJCTY1IFlvdW5nY2h1bi1yaSwgRG9uZ3Rhbi1teXVuCisJCQkJSHdhc3VuZy1zaSBLeXVuZ2tpLWRvIDQ0NS04MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtM0YgICAoaGV4KQkJVHJlbGxpc1dhcmUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDFFM0YgICAgIChiYXNlIDE2KQkJVHJlbGxpc1dhcmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTY1MTYgVmlhIEVzcHJpbGxvLCBTdWl0ZSAzMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTQwICAgKGhleCkJCVNoYW5naGFpIERhcmVHbG9iYWwgVGVjaG5vbG9naWVzICBDby4sTHRkLgorMDAxRTQwICAgICAoYmFzZSAxNikJCVNoYW5naGFpIERhcmVHbG9iYWwgVGVjaG5vbG9naWVzICBDby4sTHRkLgorCQkJCTIyRiwgbG5mbyBUZWNoIEJ1aWxkaW5nLCBOTy4xNTU1IEtvbmdqaWFuZyBSb2FkLAorCQkJCVNoYW5naGFpICAyMDAwOTIKKwkJCQlDSElOQQorCiswMC0xRS00MSAgIChoZXgpCQlNaWNyb3dhdmUgQ29tbXVuaWNhdGlvbiAmIENvbXBvbmVudCwgSW5jLgorMDAxRTQxICAgICAoYmFzZSAxNikJCU1pY3Jvd2F2ZSBDb21tdW5pY2F0aW9uICYgQ29tcG9uZW50LCBJbmMuCisJCQkJIzIwNCwgV09PTElNIExJT05gUyBWQUxMRVkgMiwgNjgwCisJCQkJR2FzYW4tRG9uZywgR2V1bWNob24tR1UKKwkJCQlTZW91bCAgMTUwLTc4NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS00MiAgIChoZXgpCQlUZWx0b25pa2EKKzAwMUU0MiAgICAgKGJhc2UgMTYpCQlUZWx0b25pa2EKKwkJCQlaaXJtdW51IDI3CisJCQkJVmlsbml1cyAgTFQgLSAwOTEwNQorCQkJCUxJVEhVQU5JQQorCiswMC0xRS00MyAgIChoZXgpCQlBSVNJTiBBVyBDTy4sTFRELgorMDAxRTQzICAgICAoYmFzZSAxNikJCUFJU0lOIEFXIENPLixMVEQuCisJCQkJNi0xOCBIQVJBWUFNQQorCQkJCU9LQS1DSE8KKwkJCQlPS0FaQUtJIEFJQ0hJIDQ0NC04NTY0CisJCQkJSkFQQU4KKworMDAtMUUtNDQgICAoaGV4KQkJU0FOVEVDCiswMDFFNDQgICAgIChiYXNlIDE2KQkJU0FOVEVDCisJCQkJQW4gZGVyIFN0cnVzYmVrIDMxCisJCQkJQWhyZW5zYnVyZyBTY2hsZXN3aWcgSG9sc3RlaW4gMjI5MjYKKwkJCQlHRVJNQU5ZCisKKzAwLTFFLTQ1ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDFFNDUgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworMDAtMUUtNDYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUU0NiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTQ3ICAgKGhleCkJCVBULiBIYXJpZmYgRGF5YSBUdW5nZ2FsIEVuZ2luZWVyaW5nCiswMDFFNDcgICAgIChiYXNlIDE2KQkJUFQuIEhhcmlmZiBEYXlhIFR1bmdnYWwgRW5naW5lZXJpbmcKKwkJCQlKbC4gU29la2Fybm8gSGF0dGEgTm8uIDQ1MAorCQkJCUJhbmR1bmcgSmF3YSBCYXJhdCA0MDI2NgorCQkJCUlORE9ORVNJQQorCiswMC0xRS00OCAgIChoZXgpCQlXaS1MaW5rcworMDAxRTQ4ICAgICAoYmFzZSAxNikJCVdpLUxpbmtzCisJCQkJMzMyIEF5aW91IHN0cmVldAorCQkJCUxpbWFzc29sICAzNzI1CisJCQkJQ1lQUlVTCisKKzAwLTFFLTQ5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUU0OSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS00QSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFFNEEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNEIgICAoaGV4KQkJQ2l0eSBUaGVhdHJpY2FsCiswMDFFNEIgICAgIChiYXNlIDE2KQkJQ2l0eSBUaGVhdHJpY2FsCisJCQkJNDc1IEJhcmVsbCBBdmUKKwkJCQlDYXJsc3RhZHQgTmV3IEplcnNleSAwNzA3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNEMgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLiwgTHRkLgorMDAxRTRDICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC5Dby4sIEx0ZC4KKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtNEQgICAoaGV4KQkJV2Vsa2luIFNjaWVuY2VzLCBMTEMKKzAwMUU0RCAgICAgKGJhc2UgMTYpCQlXZWxraW4gU2NpZW5jZXMsIExMQworCQkJCTEwMiBTLiBUZWpvbiBTdCwgU3VpdGUgMjAwCisJCQkJQ29sb3JhZG8gU3ByaW5ncyBDTyA4MDkwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNEUgICAoaGV4KQkJREFLTyBFRFYtSW5nZW5pZXVyLSB1bmQgU3lzdGVtaGF1cyBHbWJICiswMDFFNEUgICAgIChiYXNlIDE2KQkJREFLTyBFRFYtSW5nZW5pZXVyLSB1bmQgU3lzdGVtaGF1cyBHbWJICisJCQkJRXJuc3QtSGFlY2tlbC1QbGF0eiA1LzYKKwkJCQlKZW5hIFRodXJpbmdpYSAwNzc0NQorCQkJCUdFUk1BTlkKKworMDAtMUUtNEYgICAoaGV4KQkJRGVsbCBJbmMuCiswMDFFNEYgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS01MCAgIChoZXgpCQlCQVRUSVNUT05JIFJFU0VBUkNICiswMDFFNTAgICAgIChiYXNlIDE2KQkJQkFUVElTVE9OSSBSRVNFQVJDSAorCQkJCVBBUkNPIERPTklDQSA1NgorCQkJCUZJU0NJQU5PIFNBTEVSTk8gODQwODQKKwkJCQlJVEFMWQorCiswMC0xRS01MSAgIChoZXgpCQlDb252ZXJ0ZXIgSW5kdXN0cnkgU3JsCiswMDFFNTEgICAgIChiYXNlIDE2KQkJQ29udmVydGVyIEluZHVzdHJ5IFNybAorCQkJCVZpYSBFdWNsaWRlLCAxMgorCQkJCUZvcmxpJyBGQyA0NzEwMAorCQkJCUlUQUxZCisKKzAwLTFFLTUyICAgKGhleCkJCUFwcGxlIENvbXB1dGVyIEluYworMDAxRTUyICAgICAoYmFzZSAxNikJCUFwcGxlIENvbXB1dGVyIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDYWxpZm9ybmlhIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS01MyAgIChoZXgpCQlGdXJ0aGVyIFRlY2ggQ28uLCBMVEQKKzAwMUU1MyAgICAgKGJhc2UgMTYpCQlGdXJ0aGVyIFRlY2ggQ28uLCBMVEQKKwkJCQk4RixOTyA0MjEsIFN1bmdzaGFuIFJELixUYWlwZWksIFRhaXduLFIuTy5DLgorCQkJCVRhaXBlaSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS01NCAgIChoZXgpCQlUT1lPIEVMRUNUUklDIENvcnBvcmF0aW9uCiswMDFFNTQgICAgIChiYXNlIDE2KQkJVE9ZTyBFTEVDVFJJQyBDb3Jwb3JhdGlvbgorCQkJCTEtMzkgSElLSVNBV0EKKwkJCQlLQUdJWUEtQ0hPCisJCQkJS0FTVUdBSSBBSUNISSA0ODAtMDM5MworCQkJCUpBUEFOCisKKzAwLTFFLTU1ICAgKGhleCkJCUNPV09OIFNZU1RFTVMsSW5jLgorMDAxRTU1ICAgICAoYmFzZSAxNikJCUNPV09OIFNZU1RFTVMsSW5jLgorCQkJCTZ0aCBGbC4gQ09XT04gVE9XRVIsNjg5LTMsCisJCQkJWWVva3NhbS1Eb25nLEdhbmduYW0tR3UsCisJCQkJU2VvdWwgIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtNTYgICAoaGV4KQkJQmFsbHkgV3VsZmYgRW50ZXJ0YWlubWVudCBHbWJICiswMDFFNTYgICAgIChiYXNlIDE2KQkJQmFsbHkgV3VsZmYgRW50ZXJ0YWlubWVudCBHbWJICisJCQkJTWF5YmFjaHVmZXIgNDgtNTEKKwkJCQlCZXJsaW4gIDEyMDQ1CisJCQkJR0VSTUFOWQorCiswMC0xRS01NyAgIChoZXgpCQlBTENPTUEsIHNwb2wuIHMgci5vLgorMDAxRTU3ICAgICAoYmFzZSAxNikJCUFMQ09NQSwgc3BvbC4gcyByLm8uCisJCQkJS2x1a292aWNlIDMxMywgUHJhaGEgLSA1CisJCQkJUHJhaGEgIDE1MiAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTFFLTU4ICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAxRTU4ICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5PLjI4OSwgU2luaHUgM3JkIFJkLiwKKwkJCQlOZWlodSBEaXN0cmljdCwgVGFpcGVpIENpdHkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS01OSAgIChoZXgpCQlTaWxpY29uIFR1cm5rZXkgRXhwcmVzcywgTExDCiswMDFFNTkgICAgIChiYXNlIDE2KQkJU2lsaWNvbiBUdXJua2V5IEV4cHJlc3MsIExMQworCQkJCTc0OSBNaW5lciBSb2FkCisJCQkJSGlnaGxhbmQgSGVpZ2h0cyBPaGlvIDQ0MTQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS01QSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAxRTVBICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtNUIgICAoaGV4KQkJVW5pdHJvbiBDb21wYW55LCBJbmMuCiswMDFFNUIgICAgIChiYXNlIDE2KQkJVW5pdHJvbiBDb21wYW55LCBJbmMuCisJCQkJMTA5MjUgTWlsbGVyIFJvYWQKKwkJCQlEYWxsYXMgVFggNzUyMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTVDICAgKGhleCkJCVJCIEdlbmVyYWxFa29ub21paworMDAxRTVDICAgICAoYmFzZSAxNikJCVJCIEdlbmVyYWxFa29ub21paworCQkJCUJ1bGV2YXIgZGVzcG90YSBzdGVmYW5hIDU5YQorCQkJCUJlb2dyYWQgU2VyYmlhIDExMDAwCisJCQkJWVVHT1NMQVZJQQorCiswMC0xRS01RCAgIChoZXgpCQlIb2xvc3lzIGQuby5vLgorMDAxRTVEICAgICAoYmFzZSAxNikJCUhvbG9zeXMgZC5vLm8uCisJCQkJTWF0aWplIEd1cGNhIDcKKwkJCQlPcm9zbGF2amUgIDQ5MjQzCisJCQkJQ1JPQVRJQQorCiswMC0xRS01RSAgIChoZXgpCQlDT21wdXRpbWUgTHRkLgorMDAxRTVFICAgICAoYmFzZSAxNikJCUNPbXB1dGltZSBMdGQuCisJCQkJMTcvRiBHcmVhdCBFYWdsZSBDZW50cmUKKwkJCQkyMyBIYXJib3VyIFJvYWQKKwkJCQlXYW5jaGFpICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUUtNUYgICAoaGV4KQkJS3dpa0J5dGUsIExMQworMDAxRTVGICAgICAoYmFzZSAxNikJCUt3aWtCeXRlLCBMTEMKKwkJCQkyNDMwIFcuIDEydGggU3RyZWV0CisJCQkJVGVtcGUgQVogODUyODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTYwICAgKGhleCkJCURpZ2l0YWwgTGlnaHRpbmcgU3lzdGVtcywgSW5jCiswMDFFNjAgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBMaWdodGluZyBTeXN0ZW1zLCBJbmMKKwkJCQkxMjMwMiBTdyAxMjh0aCBjdCwgICAjMTA1CisJCQkJTWlhbWkgRkwgMzMxODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTYxICAgKGhleCkJCUlURUMgR21iSAorMDAxRTYxICAgICAoYmFzZSAxNikJCUlURUMgR21iSAorCQkJCUxhc3NuaXR6dGhhbCAzMDAKKwkJCQlBLTgyMDAgIEdsZWlzZG9yZgorCQkJCUFVU1RSSUEKKworMDAtMUUtNjIgICAoaGV4KQkJU2llbW9uCiswMDFFNjIgICAgIChiYXNlIDE2KQkJU2llbW9uCisJCQkJMjcgU2llbW9uIENvbXBhbnkgRHJpdmUKKwkJCQlXYXRlcnRvd24gQ1QgMDY3OTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTYzICAgKGhleCkJCVZpYnJvLU1ldGVyIFNBCiswMDFFNjMgICAgIChiYXNlIDE2KQkJVmlicm8tTWV0ZXIgU0EKKwkJCQlSb3V0ZSBkZSBNb25jb3IgNAorCQkJCUZyaWJvdXJnICBDSC0xNzAxCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUUtNjQgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDFFNjQgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xRS02NSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMUU2NSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFFLTY2ICAgKGhleCkJCVJFU09MIEVsZWt0cm9uaXNjaGUgUmVnZWx1bmdlbiBHbWJICiswMDFFNjYgICAgIChiYXNlIDE2KQkJUkVTT0wgRWxla3Ryb25pc2NoZSBSZWdlbHVuZ2VuIEdtYkgKKwkJCQlIZWlza2FtcHN0ci4gMTAKKwkJCQlIYXR0aW5nZW4gTlJXIDQ1NTI3CisJCQkJR0VSTUFOWQorCiswMC0xRS02NyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMUU2NyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFFLTY4ICAgKGhleCkJCVF1YW50YSBDb21wdXRlcgorMDAxRTY4ICAgICAoYmFzZSAxNikJCVF1YW50YSBDb21wdXRlcgorCQkJCU5PLiAyMTEsIFdFTiBIV0EgMlJELiwgS1VFSSBTSEFOIEhTSUFORworCQkJCVRBSVBFSSBUQU8gWVVBTiBTSElFTiAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLTY5ICAgKGhleCkJCVRob21zb24gSW5jLgorMDAxRTY5ICAgICAoYmFzZSAxNikJCVRob21zb24gSW5jLgorCQkJCTEwMSBXZXN0LiAxMDNyZCBTdHJlZXQKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTZBICAgKGhleCkJCUJlaWppbmcgQmx1ZXhvbiBUZWNobm9sb2d5IENvLixMdGQKKzAwMUU2QSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEJsdWV4b24gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJSmlucWl1emhpY2h1biA3LTMwMSxaaGljaHVuIFJkLiwKKwkJCQlIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg4CisJCQkJQ0hJTkEKKworMDAtMUUtNkIgICAoaGV4KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBBIENpc2NvIENvbXBhbnkKKzAwMUU2QiAgICAgKGJhc2UgMTYpCQlTY2llbnRpZmljIEF0bGFudGEsIEEgQ2lzY28gQ29tcGFueQorCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS02QyAgIChoZXgpCQlDYXJib24gTW91bnRhaW4gTExDCiswMDFFNkMgICAgIChiYXNlIDE2KQkJQ2FyYm9uIE1vdW50YWluIExMQworCQkJCTQ4MjAgRmlzaGVyIFJvYWQKKwkJCQlBdGhlbnMgT0ggNDU3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTZEICAgKGhleCkJCUlUIFImRCBDZW50ZXIKKzAwMUU2RCAgICAgKGJhc2UgMTYpCQlJVCBSJkQgQ2VudGVyCisJCQkJNDYxLTI1LCBKZW9ubWluLWRvbmcsWXVzZW9uZy1HdQorCQkJCURhZWplb24gIDMwNS04MTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtNkUgICAoaGV4KQkJU2hlbnpoZW4gRmlyc3QgTWlsZSBDb21tdW5pY2F0aW9ucyBMdGQKKzAwMUU2RSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBGaXJzdCBNaWxlIENvbW11bmljYXRpb25zIEx0ZAorCQkJCTV0aCBGbG9vciwgQmxvY2sgUjMtQQorCQkJCUhpZ2gtVGVjaCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMUUtNkYgICAoaGV4KQkJTWFnbmEtUG93ZXIgRWxlY3Ryb25pY3MsIEluYy4KKzAwMUU2RiAgICAgKGJhc2UgMTYpCQlNYWduYS1Qb3dlciBFbGVjdHJvbmljcywgSW5jLgorCQkJCTM5IFJveWFsIFJvYWQKKwkJCQlGbGVtaW5ndG9uIE5KIDA4ODIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS03MCAgIChoZXgpCQlDb2JoYW0gRGVmZW5jZSBDb21tdW5pY2F0aW9ucyBMdGQKKzAwMUU3MCAgICAgKGJhc2UgMTYpCQlDb2JoYW0gRGVmZW5jZSBDb21tdW5pY2F0aW9ucyBMdGQKKwkJCQlIYXNsaW5nZGVuIFJvYWQKKwkJCQlCbGFja2J1cm4gTGFuY2FzaGlyZSBCQjEgMkVFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUUtNzEgICAoaGV4KQkJSWdlYWNhcmUgU29sdXRpb25zIEluYy4KKzAwMUU3MSAgICAgKGJhc2UgMTYpCQlJZ2VhY2FyZSBTb2x1dGlvbnMgSW5jLgorCQkJCTE2MyBSaXZhbGRhIFJvYWQsIE5vcnRoIFlvcmsKKwkJCQlPbnRhcmlvIE05TSAyTTcKKwkJCQlDQU5BREEKKworMDAtMUUtNzIgICAoaGV4KQkJUENTCiswMDFFNzIgICAgIChiYXNlIDE2KQkJUENTCisJCQkJUlVFIFNBSU5UIEVYVVBFUlkKKwkJCQlCUDcwMzIyCisJCQkJTEVTQ0FSIFBZUkVORUVTIEFUTEFOVElRVUVTIDY0MjMwCisJCQkJRlJBTkNFCisKKzAwLTFFLTczICAgKGhleCkJCVpURSBDT1JQT1JBVElPTgorMDAxRTczICAgICAoYmFzZSAxNikJCVpURSBDT1JQT1JBVElPTgorCQkJCTEyL0YgWlRFIFBsYXphLEtlamkgUm9hZCBTb3V0aCxIaS1UZWNoIEluZHVzdHJpYWwgUGFyayxOYW5zaGFuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEdVQU5HRE9ORyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0xRS03NCAgIChoZXgpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCiswMDFFNzQgICAgIChiYXNlIDE2KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorCQkJCTE0IFJ1ZSBQYXVsIERhdXRpZXIKKwkJCQlWZWxpenkgIDc4NDU3CisJCQkJRlJBTkNFCisKKzAwLTFFLTc1ICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzCiswMDFFNzUgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MKKwkJCQk2MC0zOSxLYXNhbi1kb25nLEt1bWNob24ta3UKKwkJCQlTZW91bCAgMTUzLTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS03NiAgIChoZXgpCQlUaGVybW8gRmlzaGVyIFNjaWVudGlmaWMKKzAwMUU3NiAgICAgKGJhc2UgMTYpCQlUaGVybW8gRmlzaGVyIFNjaWVudGlmaWMKKwkJCQkyMjE1IEdyYW5kIEF2ZW51ZSBQYXJrd2F5CisJCQkJQXVzdGluIFRleGFzIDc4NzI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS03NyAgIChoZXgpCQlBaXIyQXBwCiswMDFFNzcgICAgIChiYXNlIDE2KQkJQWlyMkFwcAorCQkJCTUwIE9sZCBGb3JnZSBSZAorCQkJCUhhbm92ZXIgTUEgMDIzMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTc4ICAgKGhleCkJCU93aXRlayBUZWNobm9sb2d5IEx0ZC4sCiswMDFFNzggICAgIChiYXNlIDE2KQkJT3dpdGVrIFRlY2hub2xvZ3kgTHRkLiwKKwkJCQlOby4yLCBMYW5lIDc4LCBDaW5nc2hhbiA2dGggU3QuLAorCQkJCVlhbmdtZWkgVG93bnNoaXAsCisJCQkJVGFveXVhbiBDb3VudHkgIDMyNjU3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS03OSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFFNzkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtN0EgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRTdBICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTdCICAgKGhleCkJCVIuSS5DTy4gUy5yLmwuCiswMDFFN0IgICAgIChiYXNlIDE2KQkJUi5JLkNPLiBTLnIubC4KKwkJCQl2aWEgQWRyaWF0aWNhLCAxNworCQkJCUNhc3RlbGZpZGFyZG8gQU4gNjAwMjIKKwkJCQlJVEFMWQorCiswMC0xRS03QyAgIChoZXgpCQlUYWl3aWNrIExpbWl0ZWQKKzAwMUU3QyAgICAgKGJhc2UgMTYpCQlUYWl3aWNrIExpbWl0ZWQKKwkJCQk1L0YuLCBCbG9jayBFLCBIaW5nIFlpcCBGYWN0b3J5IEJsZGcuLAorCQkJCTMxIEhpbmcgWWlwIFN0cmVldC4sIEt3dW4gVG9uZywgS2xuLiwgSEsuCisJCQkJQ2hpbmEgODUyCisJCQkJSE9ORyBLT05HCisKKzAwLTFFLTdEICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAxRTdEICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS03RSAgIChoZXgpCQlOb3J0ZWwKKzAwMUU3RSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwKKwkJCQk4MjAwIERpeGllIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlCcmFtcHRvbiBPbnRhcmlvIEw2VCA1UDYKKwkJCQlDQU5BREEKKworMDAtMUUtN0YgICAoaGV4KQkJQ0JNIG9mIEFtZXJpY2EKKzAwMUU3RiAgICAgKGJhc2UgMTYpCQlDQk0gb2YgQW1lcmljYQorCQkJCTE0NTUgV2VzdCBOZXdwb3J0IENlbnRlciBEcml2ZQorCQkJCURlZXJmaWVsZCBCZWFjaCBGbG9yaWRhIDMzNDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS04MCAgIChoZXgpCQlMYXN0IE1pbGUgTHRkLgorMDAxRTgwICAgICAoYmFzZSAxNikJCUxhc3QgTWlsZSBMdGQuCisJCQkJMTIvRiBWSVAgQ29tbWVyY2lhbCBDZW50cmUKKwkJCQkxMjAgQ2FudG9uIFJvYWQKKwkJCQlUc2ltc2hhdHN1aSAgCisJCQkJSE9ORyBLT05HCisKKzAwLTFFLTgxICAgKGhleCkJCUNOQiBUZWNobm9sb2d5IEluYy4KKzAwMUU4MSAgICAgKGJhc2UgMTYpCQlDTkIgVGVjaG5vbG9neSBJbmMuCisJCQkJIzcwMSBTdGFyIFZhbGxleSwgNjAtMTEgR2FzYW4tRG9uZywKKwkJCQlHZXVtY2hlb24tR3UKKwkJCQlTZW91bCAgMTUzNzc3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTgyICAgKGhleCkJCVNhbkRpc2sgQ29ycG9yYXRpb24gCiswMDFFODIgICAgIChiYXNlIDE2KQkJU2FuRGlzayBDb3Jwb3JhdGlvbiAKKwkJCQk2MzAgQWxkZXIgRHJpdmUsCisJCQkJU3VpdGUgMjAyCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLTgzICAgKGhleCkJCUxBTi9NQU4gU3RhbmRhcmRzIEFzc29jaWF0aW9uIChMTVNDKQorMDAxRTgzICAgICAoYmFzZSAxNikJCUxBTi9NQU4gU3RhbmRhcmRzIEFzc29jaWF0aW9uIChMTVNDKQorCQkJCUMvTyBJRUVFIFN0YW5kYXJkcyBBc3NvY2lhdGlvbgorCQkJCTQ0NSBIb2VzIExhbmUsCisJCQkJUGlzY2F0YXdheSBOSiAwODg1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtODQgICAoaGV4KQkJUGlrYSBUZWNobm9sb2dpZXMgSW5jLgorMDAxRTg0ICAgICAoYmFzZSAxNikJCVBpa2EgVGVjaG5vbG9naWVzIEluYy4KKwkJCQk1MzUgTGVnZ2V0IERyaXZlCisJCQkJU3VpdGUgNDAwCisJCQkJT3R0YXdhIE9udGFyaW8gSzJLIDNCOAorCQkJCUNBTkFEQQorCiswMC0xRS04NSAgIChoZXgpCQlMYWdvdGVrIENvcnBvcmF0aW9uCiswMDFFODUgICAgIChiYXNlIDE2KQkJTGFnb3RlayBDb3Jwb3JhdGlvbgorCQkJCTExNjYxIFNFIDFzdCBTdC4gIzIwOAorCQkJCUJlbGxldnVlIFdBIDk4MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS04NiAgIChoZXgpCQlNRUwgQ28uLEx0ZC4KKzAwMUU4NiAgICAgKGJhc2UgMTYpCQlNRUwgQ28uLEx0ZC4KKwkJCQlUc3VrYWdvc2hpIDUtNS0xLFdhcmFiaS1zaGksU2FpdGFtYSxKYXBuYQorCQkJCVdhcmFiaSBTYWl0YW1hIDMzNS0wMDAyCisJCQkJSkFQQU4KKworMDAtMUUtODcgICAoaGV4KQkJUmVhbGVhc2UgTGltaXRlZAorMDAxRTg3ICAgICAoYmFzZSAxNikJCVJlYWxlYXNlIExpbWl0ZWQKKwkJCQkxNS9GLCBNb3JyaXNvbiBDb21tZXJjaWFsIEJ1aWxkaW5nCisJCQkJMzEgTW9ycmlzb24gSGlsbCBSb2FkCisJCQkJV2FuQ2hhaSAgCisJCQkJSE9ORyBLT05HCisKKzAwLTFFLTg4ICAgKGhleCkJCUFORE9SIFNZU1RFTSBTVVBQT1JUIENPLiwgTFRELgorMDAxRTg4ICAgICAoYmFzZSAxNikJCUFORE9SIFNZU1RFTSBTVVBQT1JUIENPLiwgTFRELgorCQkJCU1pbmFtaS1TaGluYWdhd2EgMi0xNS04CisJCQkJU2luYWdhd2EgVG9reW8gMTQwLTAwMDQKKwkJCQlKQVBBTgorCiswMC0xRS04OSAgIChoZXgpCQlDUkZTIExpbWl0ZWQKKzAwMUU4OSAgICAgKGJhc2UgMTYpCQlDUkZTIExpbWl0ZWQKKwkJCQlCdWlsZGluZyA3MjAwCisJCQkJQ2FtYnJpZGdlIFJlc2VhcmNoIFBhcmsKKwkJCQlXYXRlcmJlYWNoIENhbWJyaWRnZXNoaXJlIENCMjUgOVRMCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUUtOEEgICAoaGV4KQkJZUNvcHksIEluYworMDAxRThBICAgICAoYmFzZSAxNikJCWVDb3B5LCBJbmMKKwkJCQkxIE9yYWNsZSBEcgorCQkJCU5hc2h1YSBOSCAwMzA2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtOEIgICAoaGV4KQkJSW5mcmEgQWNjZXNzIEtvcmVhIENvLiwgTHRkLgorMDAxRThCICAgICAoYmFzZSAxNikJCUluZnJhIEFjY2VzcyBLb3JlYSBDby4sIEx0ZC4KKwkJCQk5RiBEYWV5YW5nIEIvRCwKKwkJCQk3MzUtMTEgQm9uZ2NodW4gMWRvbmcsCisJCQkJS3dhbmFrLWd1LCBTZW91bCAxNTEtODMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLThDICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorMDAxRThDICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtOEQgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMUU4RCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVUyA0NQorCQkJCUxpYmVydHl2aWxsZSBJbGxpbm9pcyA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtOEUgICAoaGV4KQkJSHVua2VsZXIgQUcKKzAwMUU4RSAgICAgKGJhc2UgMTYpCQlIdW5rZWxlciBBRworCQkJCUJhaG5ob2ZzdHJhc3NlIDMxCisJCQkJV2lrb24gQ0ggNDgwNgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTFFLThGICAgKGhleCkJCUNBTk9OIElOQy4KKzAwMUU4RiAgICAgKGJhc2UgMTYpCQlDQU5PTiBJTkMuCisJCQkJMy0zMC0yCisJCQkJU2hpbW9tYXJ1a28KKwkJCQlPaHRhLUt1IFRva3lvIDE0Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMUUtOTAgICAoaGV4KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW1zIENvCiswMDFFOTAgICAgIChiYXNlIDE2KQkJRWxpdGVncm91cCBDb21wdXRlciBTeXN0ZW1zIENvCisJCQkJTm8uMjM5LCBTZWMuIDIsIFRpIERpbmcgQmx2ZAorCQkJCVRhaXBlaSAgMTE0OTMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLTkxICAgKGhleCkJCUtJTUlOIEVsZWN0cm9uaWMgQ28uLCBMdGQuCiswMDFFOTEgICAgIChiYXNlIDE2KQkJS0lNSU4gRWxlY3Ryb25pYyBDby4sIEx0ZC4KKwkJCQkyOTMtNCwgRG9uZ2Rhbi1Eb25nCisJCQkJR3VtaS1jaXR5IEd5ZW9uZ0J1ayA3MzAtOTA2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLTkyICAgKGhleCkJCUpFVUxJTiBTLkEuCiswMDFFOTIgICAgIChiYXNlIDE2KQkJSkVVTElOIFMuQS4KKwkJCQlaSSBOwrAxCisJCQkJcnVlIEphY3F1ZXMgTW9ub2QKKwkJCQlFdnJldXggIEYyNzAxOQorCQkJCUZSQU5DRQorCiswMC0xRS05MyAgIChoZXgpCQlDaXJpVGVjaCBTeXN0ZW1zIEluYworMDAxRTkzICAgICAoYmFzZSAxNikJCUNpcmlUZWNoIFN5c3RlbXMgSW5jCisJCQkJOTIwIEhpbGx2aWV3IEN0CisJCQkJIzE3MAorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS05NCAgIChoZXgpCQlTVVBFUkNPTSBURUNITk9MT0dZIENPUlBPUkFUSU9OCiswMDFFOTQgICAgIChiYXNlIDE2KQkJU1VQRVJDT00gVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCThGLCBOTyAxMDAtMSwgTWluZy1DaHVhbiBSZC4KKwkJCQlTaGluZyBUaWVuIFRhaXBlaSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLTk1ICAgKGhleCkJCVNJR01BTElOSworMDAxRTk1ICAgICAoYmFzZSAxNikJCVNJR01BTElOSworCQkJCURvb1NhbiBWZW50dXJlRGlnbSAxMDI4LAorCQkJCTEyNi0xIFB5dW5nY2hvbi1kb25nLCBEb25nYW4tS3UKKwkJCQlBbnlhbmctQ2l0eSBLeXVuZ2dpLWRvIDQzMS0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtOTYgICAoaGV4KQkJU2VwdXJhIFBsYworMDAxRTk2ICAgICAoYmFzZSAxNikJCVNlcHVyYSBQbGMKKwkJCQlSYWRpbyBIb3VzZQorCQkJCVN0IEFuZHJld3MgUm9hZAorCQkJCUNhbWJyaWRnZSBDQU1CUklER0VTSElSRSBDQjQgMUdSCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUUtOTcgICAoaGV4KQkJTWVkaXVtIExpbmsgU3lzdGVtIFRlY2hub2xvZ3kgQ08uLCBMVEQsCiswMDFFOTcgICAgIChiYXNlIDE2KQkJTWVkaXVtIExpbmsgU3lzdGVtIFRlY2hub2xvZ3kgQ08uLCBMVEQsCisJCQkJMTFGLi0yLCBOby43LCBBbGxleSA5MiwgTGFuZSA3NywgU2VjLiA0LCBTaW5oYWkgUmQuLAorCQkJCVd1bnNoYW4gRGlzdHJpY3QsIFRhaXBlaSAxMTY5MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtOTggICAoaGV4KQkJR3JlZW5MaW5lIENvbW11bmljYXRpb25zCiswMDFFOTggICAgIChiYXNlIDE2KQkJR3JlZW5MaW5lIENvbW11bmljYXRpb25zCisJCQkJQWxyYWJpYWgsIEFscmFiZWVhIHN0cmVldAorCQkJCUJ1aWxkaW5nIDgsIFAuTy4gQm94IDkyMQorCQkJCUFtbWFuIENlbnRyYWwgUmVnaW9uIDExOTUzCisJCQkJSk9SREFOCisKKzAwLTFFLTk5ICAgKGhleCkJCVZhbnRhbm9sIEluZHVzdHJpYWwgQ29ycG9yYXRpb24KKzAwMUU5OSAgICAgKGJhc2UgMTYpCQlWYW50YW5vbCBJbmR1c3RyaWFsIENvcnBvcmF0aW9uCisJCQkJOUYsIE5PIDMxIC4gU2hpbi1UYWkgUm9hZAorCQkJCUp1YmVpIENpdHkgU2hpbmNodSAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFFLTlBICAgKGhleCkJCUhBTUlMVE9OIEJvbmFkdXogQUcKKzAwMUU5QSAgICAgKGJhc2UgMTYpCQlIQU1JTFRPTiBCb25hZHV6IEFHCisJCQkJVmlhIENydXNjaCA4CisJCQkJQm9uYWR1eiBHcmF1YnVlbmRlbiA3NDAyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUUtOUIgICAoaGV4KQkJU2FuLUVpc2hhLCBMdGQuCiswMDFFOUIgICAgIChiYXNlIDE2KQkJU2FuLUVpc2hhLCBMdGQuCisJCQkJMi0xIEViYXJhIDUtY2hvbWUKKwkJCQlTaGluYWdhd2Eta3UgVG9reW8gMTQyLTg2MTEKKwkJCQlKQVBBTgorCiswMC0xRS05QyAgIChoZXgpCQlGaWR1c3Ryb24gSU5DCiswMDFFOUMgICAgIChiYXNlIDE2KQkJRmlkdXN0cm9uIElOQworCQkJCU5PLjc3MC02LCBKaG9uZ2loZW5nIFJkLgorCQkJCUpob25naGUgQ2l0eSBUYWlwZWkgQ291bnR5IDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtOUQgICAoaGV4KQkJUmVjYWxsIFRlY2hub2xvZ2llcywgSW5jLgorMDAxRTlEICAgICAoYmFzZSAxNikJCVJlY2FsbCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMzAgRW50ZXJwcmlzZSBBdmUuCisJCQkJU3VpdGUgRgorCQkJCVBhbG0gQmF5IEZMIDMyOTA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS05RSAgIChoZXgpCQlkZG0gaG9wdCArIHNjaHVsZXIgR21iaCArIENvLiBLRworMDAxRTlFICAgICAoYmFzZSAxNikJCWRkbSBob3B0ICsgc2NodWxlciBHbWJoICsgQ28uIEtHCisJCQkJS29lbmlnc2JlcmdlciBTdHJhc3NlIDEyCisJCQkJUm90dHdlaWwgQmFkZW4tV3VlcnR0ZW1iZXJnIDc4NjI2CisJCQkJR0VSTUFOWQorCiswMC0xRS05RiAgIChoZXgpCQlWaXNpb25lZXJpbmcgU3lzdGVtcywgSW5jLgorMDAxRTlGICAgICAoYmFzZSAxNikJCVZpc2lvbmVlcmluZyBTeXN0ZW1zLCBJbmMuCisJCQkJNTkzMSBTZWEgTGlvbiBQbGFjZQorCQkJCVN1aXRlIDEwOQorCQkJCUNhcmxzYmFkIENhbGlmb3JuaWEgOTIwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUEwICAgKGhleCkJCVhMTi10CiswMDFFQTAgICAgIChiYXNlIDE2KQkJWExOLXQKKwkJCQlIb29nc3RyYWF0IDUyCisJCQkJUHV0dGUgQW50d2VycCBCMjU4MAorCQkJCUJFTEdJVU0KKworMDAtMUUtQTEgICAoaGV4KQkJQnJ1bmF0YSBhL3MKKzAwMUVBMSAgICAgKGJhc2UgMTYpCQlCcnVuYXRhIGEvcworCQkJCVZlc3Rlcmx1bmR2ZWogMTQKKwkJCQlIZXJsZXYgIDI3MzAKKwkJCQlERU5NQVJLCisKKzAwLTFFLUEyICAgKGhleCkJCVN5bXggU3lzdGVtcywgSW5jLgorMDAxRUEyICAgICAoYmFzZSAxNikJCVN5bXggU3lzdGVtcywgSW5jLgorCQkJCTYzMjAgTlcgODR0aCBBdmVudWUKKwkJCQlNaWFtaSBGbG9yaWRhIDMzMTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1BMyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRUEzICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRS1BNCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRUE0ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRS1BNSAgIChoZXgpCQlST0JPVE9VUywgSW5jLgorMDAxRUE1ICAgICAoYmFzZSAxNikJCVJPQk9UT1VTLCBJbmMuCisJCQkJTmV4IENlbnRlci0yMDEoTGFiLiksIFNLIG4gVGVjaG5vcGFyaworCQkJCVNhbmdkYWV3b24tZG9uZywgSnVuZ3dvbi1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2Mi0xMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtQTYgICAoaGV4KQkJQmVzdCBJVCBXb3JsZCAoSW5kaWEpIFB2dC4gTHRkLgorMDAxRUE2ICAgICAoYmFzZSAxNikJCUJlc3QgSVQgV29ybGQgKEluZGlhKSBQdnQuIEx0ZC4KKwkJCQk4Ny83MC85MyBNaXN0cnkgSW5kdXN0cmlhbCBDb21wbGV4LAorCQkJCU1JREMgQ3Jvc3MgUm9hZCAnQScsIEFuZGhlcmkgKEVhc3QpCisJCQkJTXVtYmFpIE1haGFyYXNodHJhIDQwMDA5MworCQkJCUlORElBCisKKzAwLTFFLUE3ICAgKGhleCkJCUFjdGlvblRlYyBFbGVjdHJvbmljcywgSW5jIAorMDAxRUE3ICAgICAoYmFzZSAxNikJCUFjdGlvblRlYyBFbGVjdHJvbmljcywgSW5jIAorCQkJCTc2MCBOb3J0aCBNYXJ5IEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtQTggICAoaGV4KQkJRGF0YW5nIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBFcXVpcG1lbnQgQ08uLExURAorMDAxRUE4ICAgICAoYmFzZSAxNikJCURhdGFuZyBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgRXF1aXBtZW50IENPLixMVEQKKwkJCQlOby4yOSxYdWV5dWFuIFJkLixIYWlkaWFuIERpc3RyaWN0LEJlaWppbmcsMTAwMDgzIFAuUi5DaGluYQorCQkJCUJlaWppbmcgIDEwMDA4MworCQkJCUNISU5BCisKKzAwLTFFLUE5ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAxRUE5ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPIEtZT1RPIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMUUtQUEgICAoaGV4KQkJRS1TZW56YSBUZWNobm9sb2dpZXMgR21iSAorMDAxRUFBICAgICAoYmFzZSAxNikJCUUtU2VuemEgVGVjaG5vbG9naWVzIEdtYkgKKwkJCQlCbGFyZXJzdHJhc3NlIDU2CisJCQkJS29uc3RhbnogQlcgNzg0NjIKKwkJCQlHRVJNQU5ZCisKKzAwLTFFLUFCICAgKGhleCkJCVRlbGVXZWxsIE95CiswMDFFQUIgICAgIChiYXNlIDE2KQkJVGVsZVdlbGwgT3kKKwkJCQlBbGFob3RpZSAxNCBiCisJCQkJSmFydmVucGFhIFV1c2ltYWEgMDQ0MzAKKwkJCQlGSU5MQU5ECisKKzAwLTFFLUFDICAgKGhleCkJCUFybWFkZXVzIFN5c3RlbXMKKzAwMUVBQyAgICAgKGJhc2UgMTYpCQlBcm1hZGV1cyBTeXN0ZW1zCisJCQkJVGVjaG5vcG9sZSAtICA0MCwgcnVlIE1hcmMgU2VndWluCisJCQkJQlAgMjExOAorCQkJCU1VTEhPVVNFIGNlZGV4IEhhdXQtUmhpbiA2ODA2MAorCQkJCUZSQU5DRQorCiswMC0xRS1BRCAgIChoZXgpCQlXaW5ndGVjaCBHcm91cCBMaW1pdGVkCiswMDFFQUQgICAgIChiYXNlIDE2KQkJV2luZ3RlY2ggR3JvdXAgTGltaXRlZAorCQkJCTZ0aCBmbG9vciwgVW5pdCBHLCBOby42NjgsIEVhc3QgQmVpamluZyBSb2FkLAorCQkJCVNoYW5naGFpICAyMDAwMDEKKwkJCQlDSElOQQorCiswMC0xRS1BRSAgIChoZXgpCQlDb250aW5lbnRhbCBBdXRvbW90aXZlIFN5c3RlbXMKKzAwMUVBRSAgICAgKGJhc2UgMTYpCQlDb250aW5lbnRhbCBBdXRvbW90aXZlIFN5c3RlbXMKKwkJCQkyMTQ0MCBXZXN0IExha2UgQ29vayBSb2FkCisJCQkJRGVlciBQYXJrIElMIDYwMDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1BRiAgIChoZXgpCQlPcGhpciBPcHRyb25pY3MgTHRkCiswMDFFQUYgICAgIChiYXNlIDE2KQkJT3BoaXIgT3B0cm9uaWNzIEx0ZAorCQkJCVBPQiA0NTAyMQorCQkJCUplcnVzYWxlbSAgOTE0NTAKKwkJCQlJU1JBRUwKKworMDAtMUUtQjAgICAoaGV4KQkJSW1lc0QgRWxlY3Ryb25pY2EgUy5MLgorMDAxRUIwICAgICAoYmFzZSAxNikJCUltZXNEIEVsZWN0cm9uaWNhIFMuTC4KKwkJCQlFbnRlbsOnYSA4MQorCQkJCUJhcmNlbG9uYSAgMDgwMTUKKwkJCQlTUEFJTgorCiswMC0xRS1CMSAgIChoZXgpCQlDcnlwdHNvZnQgUHR5IEx0ZAorMDAxRUIxICAgICAoYmFzZSAxNikJCUNyeXB0c29mdCBQdHkgTHRkCisJCQkJUC5PLiBCb3ggNjM4OQorCQkJCUZhaXJmaWVsZCBHYXJkZW5zIFF1ZWVuc2xhbmQgNDEwMworCQkJCUFVU1RSQUxJQQorCiswMC0xRS1CMiAgIChoZXgpCQlMRyBpbm5vdGVrCiswMDFFQjIgICAgIChiYXNlIDE2KQkJTEcgaW5ub3RlaworCQkJCUhhbnlhbmcgVW5pdi4gMTI3MSwgU2EtZG9uZywgU2FuZ3Jvay1ndQorCQkJCUFuc2FuLXNpIEd5ZW9uZ2dpLWRvIDQyNi03OTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtQjMgICAoaGV4KQkJUHJpbWV4IFdpcmVsZXNzCiswMDFFQjMgICAgIChiYXNlIDE2KQkJUHJpbWV4IFdpcmVsZXNzCisJCQkJOTY1IFdlbGxzIFN0cmVldAorCQkJCUxha2UgR2VuZXZhIFdJIDUzMTQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1CNCAgIChoZXgpCQlVTklGQVQgVEVDSE5PTE9HWSBMVEQuCiswMDFFQjQgICAgIChiYXNlIDE2KQkJVU5JRkFUIFRFQ0hOT0xPR1kgTFRELgorCQkJCTcvRkxPT1IgU1VJIEhPTkcgSU5ELiBCTERHLiwKKwkJCQk1NDctNTQ5IENBU1RMRSBQRUFLIFJPQUQKKwkJCQlLV0FJIENIVU5HLCBOLlQuIAorCQkJCUhPTkcgS09ORworCiswMC0xRS1CNSAgIChoZXgpCQlFdmVyIFNwYXJrbGUgVGVjaG5vbG9naWVzIEx0ZAorMDAxRUI1ICAgICAoYmFzZSAxNikJCUV2ZXIgU3BhcmtsZSBUZWNobm9sb2dpZXMgTHRkCisJCQkJVW5pdCA0MDMsIE5hbiBGdW5nIENvbW1lcmNpYWwgQ2VudHJlCisJCQkJMTksIExhbSBMb2sgU3QuCisJCQkJS293bG9vbiBCYXkgS293bG9vbiAKKwkJCQlIT05HIEtPTkcKKworMDAtMUUtQjYgICAoaGV4KQkJVEFHIEhldWVyIFNBCiswMDFFQjYgICAgIChiYXNlIDE2KQkJVEFHIEhldWVyIFNBCisJCQkJUnVlIExvdWlzLUpvc2VwaCBDaGV2cm9sZXQgNkEKKwkJCQlsYSBDaGF1eC1kZS1Gb25kcyBORSAyMzAwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMUUtQjcgICAoaGV4KQkJVEJUZWNoLCBDby4sIEx0ZC4KKzAwMUVCNyAgICAgKGJhc2UgMTYpCQlUQlRlY2gsIENvLiwgTHRkLgorCQkJCTExMDksIEh5dW5kYWkgS3JpbSwgMTMzMC0xOCwgU2VvY2hvLWRvbmcsCisJCQkJU2VvY2hvLUd1LAorCQkJCVNlb3VsICAxMzctMDcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLUI4ICAgKGhleCkJCUZvcnRpcywgSW5jLgorMDAxRUI4ICAgICAoYmFzZSAxNikJCUZvcnRpcywgSW5jLgorCQkJCSM1MDIgVGVjaG5vIHBsYXphLCAxNDktMTAgWWF0YXAtZG9uZywKKwkJCQlCdW5kYW5nLWd1LAorCQkJCVNlb25nbmFtLXNpLCBHeWVvbmdnaS1kbywgNDYzLTgxNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS1COSAgIChoZXgpCQlTaW5nIEZhaSBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMUVCOSAgICAgKGJhc2UgMTYpCQlTaW5nIEZhaSBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlOby43MDAsIEthb2hzaXVuZyBVbml2ZXJzaXR5IFJkLiwgTmFuLVR6dSBEaXN0LgorCQkJCU5VSyBBZHZhbmNlZCBCdXNpbmVzcyBJbmN1YmF0aW9uIENlbnRlcgorCQkJCUthb2hzaXVuZyAgODExCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRS1CQSAgIChoZXgpCQlIaWdoIERlbnNpdHkgRGV2aWNlcyBBUworMDAxRUJBICAgICAoYmFzZSAxNikJCUhpZ2ggRGVuc2l0eSBEZXZpY2VzIEFTCisJCQkJVmVzdHJlIFN0cmFuZGdhdGUgMjYKKwkJCQlLcmlzdGlhbnNhbmQgIDQ2MTEKKwkJCQlOT1JXQVkKKworMDAtMUUtQkIgICAoaGV4KQkJQkxVRUxJR0hUIFRFQ0hOT0xPR1kgSU5DLgorMDAxRUJCICAgICAoYmFzZSAxNikJCUJMVUVMSUdIVCBURUNITk9MT0dZIElOQy4KKwkJCQk2NDcyIENBTURFTiBBVkUuLCBTVUlURSAxMDJCCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUJDICAgKGhleCkJCVdJTlRFQ0ggQVVUT01BVElPTiBDTy4sTFRELgorMDAxRUJDICAgICAoYmFzZSAxNikJCVdJTlRFQ0ggQVVUT01BVElPTiBDTy4sTFRELgorCQkJCSMxMTE1LCBUQUVLV0FORyBCTFZELgorCQkJCVlPVU5HUk9ORy1ET05HLCBZT1VOR1RPTkctR1UKKwkJCQlTVVdPTi1TSSBLWVVOR0dJIDQ0My04MTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtQkQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRUJEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUJFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUVCRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1CRiAgIChoZXgpCQlIYWFzIEF1dG9tYXRpb24gSW5jLgorMDAxRUJGICAgICAoYmFzZSAxNikJCUhhYXMgQXV0b21hdGlvbiBJbmMuCisJCQkJMjgwMCBTdHVyZ2lzIFJkCisJCQkJT3huYXJkIENBIDkzMDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1DMCAgIChoZXgpCQlNaWNyb2NoaXAgVGVjaG5vbG9neSBJbmMuCiswMDFFQzAgICAgIChiYXNlIDE2KQkJTWljcm9jaGlwIFRlY2hub2xvZ3kgSW5jLgorCQkJCTIzNTUgVy4gQ2hhbmRsZXIgQmx2ZC4sCisJCQkJQ2hhbmRsZXIgQVogODUyMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUMxICAgKGhleCkJCTNDT00gRVVST1BFIExURAorMDAxRUMxICAgICAoYmFzZSAxNikJCTNDT00gRVVST1BFIExURAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSEVSVFMuIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRS1DMiAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDFFQzIgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5pZmludGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtQzMgICAoaGV4KQkJS296aW8sIEluYy4KKzAwMUVDMyAgICAgKGJhc2UgMTYpCQlLb3ppbywgSW5jLgorCQkJCTI0MDAgVHJhZGUgQ2VudHJlIEF2ZQorCQkJCUxvbmdtb250IENPIDgwNTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1DNCAgIChoZXgpCQlDZWxpbyBDb3JwCiswMDFFQzQgICAgIChiYXNlIDE2KQkJQ2VsaW8gQ29ycAorCQkJCTI2NSBFIDEwMCBTICAjIDI4MAorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1DNSAgIChoZXgpCQlNaWRkbGUgQXRsYW50aWMgUHJvZHVjdHMgSW5jCiswMDFFQzUgICAgIChiYXNlIDE2KQkJTWlkZGxlIEF0bGFudGljIFByb2R1Y3RzIEluYworCQkJCTMwMCBGYWlyZmllbGQgUm9hZAorCQkJCUZhaXJmaWVsZCBOSiAwNzAwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtQzYgICAoaGV4KQkJT2J2aXVzIEhvbGRpbmdzIExMQworMDAxRUM2ICAgICAoYmFzZSAxNikJCU9idml1cyBIb2xkaW5ncyBMTEMKKwkJCQkyMDgxMSBOVyBDb3JuZWxsIFJvYWQKKwkJCQlTdWl0ZSA3MDAKKwkJCQlIaWxsc2Jvcm8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUM3ICAgKGhleCkJCTJXaXJlCiswMDFFQzcgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzA0IEF1dG9tYXRpb24gUHJrd3kKKwkJCQlTYW4gSm9zZSBDYSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtQzggICAoaGV4KQkJUmFwaWQgTW9iaWxlIChQdHkpIEx0ZAorMDAxRUM4ICAgICAoYmFzZSAxNikJCVJhcGlkIE1vYmlsZSAoUHR5KSBMdGQKKwkJCQlCdWlsZGluZyBDLEQsRSBBcGV4IENvcnBvcmF0ZSBQYXJrCisJCQkJUXVpbnRpbiBCcmFuZCBTdHJlZXQsIFBlcnNlcXVvciBUZWNobm9wYXJrCisJCQkJUHJldG9yaWEgR2F1dGVuZyAwMDIwCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTFFLUM5ICAgKGhleCkJCURlbGwgSW5jCiswMDFFQzkgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUNBICAgKGhleCkJCU5vcnRlbAorMDAxRUNBICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTgyMDAgRGl4aWUgUm9hZAorCQkJCVN1aXRlIDEwMAorCQkJCUJyYW1wdG9uIE9udGFyaW8gTDZUIDVQNgorCQkJCUNBTkFEQQorCiswMC0xRS1DQiAgIChoZXgpCQkiUlBDICJFbmVyZ29hdXRvbWF0aWthIiBMdGQKKzAwMUVDQiAgICAgKGJhc2UgMTYpCQkiUlBDICJFbmVyZ29hdXRvbWF0aWthIiBMdGQKKwkJCQlLcmFzbm9rYXphcm1lbm5heWEgc3QuLCAxMy8xCisJCQkJTW9zY293ICAxMTEyNTAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUUtQ0MgICAoaGV4KQkJQ0RWSQorMDAxRUNDICAgICAoYmFzZSAxNikJCUNEVkkKKwkJCQkzMSBBdmVudWUgZHUgR8OpbsOpcmFsIExlY2xlcmMKKwkJCQlQQU5USU4gSWxlIGRlIEZyYW5jZSA5MzUwMAorCQkJCUZSQU5DRQorCiswMC0xRS1DRCAgIChoZXgpCQlLWUxBTkQKKzAwMUVDRCAgICAgKGJhc2UgMTYpCQlLWUxBTkQKKwkJCQlObzk1IEJ1aWxkaW5nLAorCQkJCVNvdXRoZWFzdCBDb3JuZXIgb2YgWGlzYW5xaSBCcmlkZ2UsCisJCQkJSGFpZGlhbiBCZWlqaW5nIDEwMDA5NgorCQkJCUNISU5BCisKKzAwLTFFLUNFICAgKGhleCkJCUJJU0EgVGVjaG5vbG9naWVzIChIb25nIEtvbmcpIExpbWl0ZWQKKzAwMUVDRSAgICAgKGJhc2UgMTYpCQlCSVNBIFRlY2hub2xvZ2llcyAoSG9uZyBLb25nKSBMaW1pdGVkCisJCQkJMTEwMiwgVHJhbnMgQXNpYSBDZW50cmUsCisJCQkJMTggS2luIEhvbmcgU3RyZWV0LAorCQkJCUt3YWkgQ2h1bmcgIAorCQkJCUhPTkcgS09ORworCiswMC0xRS1DRiAgIChoZXgpCQlQSElMSVBTIEVMRUNUUk9OSUNTIFVLIExURAorMDAxRUNGICAgICAoYmFzZSAxNikJCVBISUxJUFMgRUxFQ1RST05JQ1MgVUsgTFRECisJCQkJUEhJTElQUyBDRU5UUkUKKwkJCQlHVUlMREZPUkQgQlVTSU5FU1MgUEFSSworCQkJCUdVSUxERk9SRCBTVVJSRVkgR1UyIDhYSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFFLUQwICAgKGhleCkJCUNPTk5FWElVTQorMDAxRUQwICAgICAoYmFzZSAxNikJCUNPTk5FWElVTQorCQkJCTM5IEwnQUxCQVJFREUKKwkJCQlBVVpJRUxMRSAgMzE2NTAKKwkJCQlGUkFOQ0UKKworMDAtMUUtRDEgICAoaGV4KQkJS2V5cHJvY2Vzc29yIEIuVi4KKzAwMUVEMSAgICAgKGJhc2UgMTYpCQlLZXlwcm9jZXNzb3IgQi5WLgorCQkJCVBhYXNoZXV2ZWx3ZWcgMjAKKwkJCQlBbXN0ZXJkYW0gTkggMTEwNSBCSgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTFFLUQyICAgKGhleCkJCVJheSBTaGluZSBWaWRlbyBUZWNobm9sb2d5IEluYworMDAxRUQyICAgICAoYmFzZSAxNikJCVJheSBTaGluZSBWaWRlbyBUZWNobm9sb2d5IEluYworCQkJCTZGLE5vLjk4LFNlYy4xLFhpbnRhaSA1dGggUmQuCisJCQkJWGl6aGkgQ2l0eSBUYWlwZWkgQ291bnR5IDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtRDMgICAoaGV4KQkJRG90IFRlY2hub2xvZ3kgSW50J2wgQ28uLCBMdGQuCiswMDFFRDMgICAgIChiYXNlIDE2KQkJRG90IFRlY2hub2xvZ3kgSW50J2wgQ28uLCBMdGQuCisJCQkJVW5pdCAxMDAxLCBGb3Vyc2VhcyBCdWlsZGluZyAyMDgtMjEyLCBOYXRoYW4gUm9hZAorCQkJCUtvd2xvb24gIAorCQkJCUhPTkcgS09ORworCiswMC0xRS1ENCAgIChoZXgpCQlEb2JsZSBFbmdpbmVlcmluZworMDAxRUQ0ICAgICAoYmFzZSAxNikJCURvYmxlIEVuZ2luZWVyaW5nCisJCQkJODUgV2FsbnV0IFN0cmVldAorCQkJCVdhdGVydG93biBNYXNzYWNodXNldHRzIDAyNDcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1ENSAgIChoZXgpCQlUZWtvbi1BdXRvbWF0aWNzCiswMDFFRDUgICAgIChiYXNlIDE2KQkJVGVrb24tQXV0b21hdGljcworCQkJCVplbGVub2dyYWQsIDUxMi0yOQorCQkJCU1vc2NvdyAgMTI0NDgyCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFFLUQ2ICAgKGhleCkJCUFsZW50ZWMgJiBPcmlvbiBBQgorMDAxRUQ2ICAgICAoYmFzZSAxNikJCUFsZW50ZWMgJiBPcmlvbiBBQgorCQkJCUJveCAxMDgKKwkJCQkxMzIgMjMgU2FsdHNqw7YtQm9vIAorCQkJCVNXRURFTgorCiswMC0xRS1ENyAgIChoZXgpCQlILVN0cmVhbSBXaXJlbGVzcywgSW5jLgorMDAxRUQ3ICAgICAoYmFzZSAxNikJCUgtU3RyZWFtIFdpcmVsZXNzLCBJbmMuCisJCQkJMjU5NSBFYXN0IEJheXNob3JlIFJvYWQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUQ4ICAgKGhleCkJCURpZ2l0YWwgVW5pdGVkIEluYy4KKzAwMUVEOCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIFVuaXRlZCBJbmMuCisJCQkJOUYsIE5vLjIyMCwgR2FuZ2NpYW4gUmQuCisJCQkJVGFpcGVpICAxMTQ0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUUtRDkgICAoaGV4KQkJTWl0c3ViaXNoaSBQcmVjaXNpb24gQ28uLExUZC4KKzAwMUVEOSAgICAgKGJhc2UgMTYpCQlNaXRzdWJpc2hpIFByZWNpc2lvbiBDby4sTFRkLgorCQkJCTM0NSBLQU1JTUFDSElZQQorCQkJCUtBTUFLVVJBLUNpdHkgS0FOQUdBV0EtUHJlZmVjdHVyZSAyNDctODUwNQorCQkJCUpBUEFOCisKKzAwLTFFLURBICAgKGhleCkJCVdlc2VtYW5uIEVsZWt0cm90ZWNobmllayBCLlYuCiswMDFFREEgICAgIChiYXNlIDE2KQkJV2VzZW1hbm4gRWxla3Ryb3RlY2huaWVrIEIuVi4KKwkJCQlEcm9vZ2Jsb2VtIDMxCisJCQkJUm90dGVyZGFtIFp1aWQtSG9sbGFuZCAzMDY4IEFXCisJCQkJTkVUSEVSTEFORFMKKworMDAtMUUtREIgICAoaGV4KQkJR2lrZW4gVHJhc3RlbSBDby4sIEx0ZC4KKzAwMUVEQiAgICAgKGJhc2UgMTYpCQlHaWtlbiBUcmFzdGVtIENvLiwgTHRkLgorCQkJCTQtMSBUYWtlZGEgRGFua2F3YXJhY2hvIEZ1c2hpbWlrdQorCQkJCUt5b3RvICA2MTItODQxNAorCQkJCUpBUEFOCisKKzAwLTFFLURDICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiswMDFFREMgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworMDAtMUUtREQgICAoaGV4KQkJV0FTS08gUy5BLgorMDAxRUREICAgICAoYmFzZSAxNikJCVdBU0tPIFMuQS4KKwkJCQlCZXJiZWNraWVnbyA2CisJCQkJR2xpd2ljZSBTaWxlc2lhIDQ0LTEwMAorCQkJCVBPTEFORAorCiswMC0xRS1ERSAgIChoZXgpCQlCWUQgQ09NUEFOWSBMSU1JVEVECiswMDFFREUgICAgIChiYXNlIDE2KQkJQllEIENPTVBBTlkgTElNSVRFRAorCQkJCU5PLjEsQmFvcGluZyBSb2FkLEJhb2xvbmcgSW5kdXN0cmlhbCBUb3duLExvbmdnYW5nCisJCQkJU0hFTiBaSEVOIEd1YW5nZG9uZyA1MTgxMTYKKwkJCQlDSElOQQorCiswMC0xRS1ERiAgIChoZXgpCQlNYXN0ZXIgSW5kdXN0cmlhbGl6YXRpb24gQ2VudGVyIEtpc3RhCiswMDFFREYgICAgIChiYXNlIDE2KQkJTWFzdGVyIEluZHVzdHJpYWxpemF0aW9uIENlbnRlciBLaXN0YQorCQkJCVRvcnNoYW1uc2dhdGFuIDM2CisJCQkJS2lzdGEKKwkJCQlTdG9ja2hvbG0gIFNFLTE2NCA4MAorCQkJCVNXRURFTgorCiswMC0xRS1FMCAgIChoZXgpCQlVcm1ldCBEb211cyBTcEEKKzAwMUVFMCAgICAgKGJhc2UgMTYpCQlVcm1ldCBEb211cyBTcEEKKwkJCQlWaWEgQm9sb2duYSAxODgvQworCQkJCVRvcmlubyBUTyBJLTEwMTU0CisJCQkJSVRBTFkKKworMDAtMUUtRTEgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswMDFFRTEgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFFLUUyICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAxRUUyICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRS1FMyAgIChoZXgpCQlUJlcgRWxlY3Ryb25pY3MgKFNoZW5aaGVuKSBDby4sTHRkCiswMDFFRTMgICAgIChiYXNlIDE2KQkJVCZXIEVsZWN0cm9uaWNzIChTaGVuWmhlbikgQ28uLEx0ZAorCQkJCTJGIEJhaXlpbmcgQnVpbGRpbmcsIE5vLjE5LCBOYW5oYWlSZC4sIE5hbnNoYW4gRGlzdAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNTIKKwkJCQlDSElOQQorCiswMC0xRS1FNCAgIChoZXgpCQlBQ1MgU29sdXRpb25zIEZyYW5jZQorMDAxRUU0ICAgICAoYmFzZSAxNikJCUFDUyBTb2x1dGlvbnMgRnJhbmNlCisJCQkJUnVlIENsYXVkZSBDaGFwcGUKKwkJCQlHdWlsaGVyYW5kIEdyYW5nZXMgQXJkZWNoZSAwNzUwMworCQkJCUZSQU5DRQorCiswMC0xRS1FNSAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzAwMUVFNSAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUU2ICAgKGhleCkJCVNoZW56aGVuIEFkdmFuY2VkIFZpZGVvIEluZm8tVGVjaCBDby4sIEx0ZC4KKzAwMUVFNiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBBZHZhbmNlZCBWaWRlbyBJbmZvLVRlY2ggQ28uLCBMdGQuCisJCQkJVGlhbnhpYW5nIDExQSwgIFRpYW4nYW4gQ3liZXIgUGFyayAsIEZ1dGlhbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNDgKKwkJCQlDSElOQQorCiswMC0xRS1FNyAgIChoZXgpCQlFcGljIFN5c3RlbXMgSW5jCiswMDFFRTcgICAgIChiYXNlIDE2KQkJRXBpYyBTeXN0ZW1zIEluYworCQkJCTM5MCBTLiBBYmJvdHQgQXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUU4ICAgKGhleCkJCU15dGVrCiswMDFFRTggICAgIChiYXNlIDE2KQkJTXl0ZWsKKwkJCQkxNTEgTGFmYXlldHRlIFN0ciAzIEZsCisJCQkJTmV3IFlvcmsgTlkgMTAwMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUU5ICAgKGhleCkJCVN0b25lcmlkZ2UgRWxlY3Ryb25pY3MgQUIKKzAwMUVFOSAgICAgKGJhc2UgMTYpCQlTdG9uZXJpZGdlIEVsZWN0cm9uaWNzIEFCCisJCQkJR8OlcmRzZm9nZGV2w6RnZW4gMThBCisJCQkJQnJvbW1hIFN0b2NraG9sbSAxNjggNjYKKwkJCQlTV0VERU4KKworMDAtMUUtRUEgICAoaGV4KQkJU2Vuc29yIFN3aXRjaCwgSW5jLgorMDAxRUVBICAgICAoYmFzZSAxNikJCVNlbnNvciBTd2l0Y2gsIEluYy4KKwkJCQk5MDAgTm9ydGhyb3AgUm9hZAorCQkJCVdhbGxpbmdmb3JkIENUIDA2NDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1FQiAgIChoZXgpCQlUYWxrLUEtUGhvbmUgQ28uCiswMDFFRUIgICAgIChiYXNlIDE2KQkJVGFsay1BLVBob25lIENvLgorCQkJCTUwMTMgTi4gS2VkemllIEF2ZS4KKwkJCQlDaGljYWdvIElMIDYwNjI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1FQyAgIChoZXgpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELgorMDAxRUVDICAgICAoYmFzZSAxNikJCUNPTVBBTCBJTkZPUk1BVElPTiAoS1VOU0hBTikgQ08uLCBMVEQuCisJCQkJTk8uIDI1LCBUSEUgM1JEIFN0cmVldAorCQkJCUtVTlNIQU4gRVhQT1JUIFBST0NFU1NJTkcgWk9ORQorCQkJCUtVTlNIQU4gQ0lUWSBTVVpIT1UgUFJPVklOQ0UgMjE1MzAwCisJCQkJQ0hJTkEKKworMDAtMUUtRUQgICAoaGV4KQkJQWR2ZW50aXEgTHRkLgorMDAxRUVEICAgICAoYmFzZSAxNikJCUFkdmVudGlxIEx0ZC4KKwkJCQlUZWNobm9sb2d5IEhvdXNlCisJCQkJVHJhZmFsZ2FyIFdheQorCQkJCUJhciBIaWxsIENhbWJzLiBDQjMgOFNRCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUUtRUUgICAoaGV4KQkJRVRMIFN5c3RlbXMgTHRkCiswMDFFRUUgICAgIChiYXNlIDE2KQkJRVRMIFN5c3RlbXMgTHRkCisJCQkJQ29sZHdlbGwgUmFkaW8gU3RhdGlvbgorCQkJCU1hZGxleQorCQkJCUhlcmVmb3JkIEhlcmVmb3Jkc2hpcmUgSFIyIDlORQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFFLUVGICAgKGhleCkJCUNhbnRyb25pYyBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKzAwMUVFRiAgICAgKGJhc2UgMTYpCQlDYW50cm9uaWMgSW50ZXJuYXRpb25hbCBMaW1pdGVkCisJCQkJVW5pdCA1MTUtNTE2LCBCdWlsZGluZyAxNSwgRWFzdCBXaW5nLCBObyA4IFNjaWVuY2UgUGFyayBXZXN0IEF2ZW51ZSwgSG9uZyBLb25nIFNjaWVuY2UgUGFyayBQaGFzZSBJSQorCQkJCVNoYXRpbiBOZXcgVGVycml0b3JpZXMgODUyCisJCQkJSE9ORyBLT05HCisKKzAwLTFFLUYwICAgKGhleCkJCUdpZ2FmaW4gTmV0d29ya3MKKzAwMUVGMCAgICAgKGJhc2UgMTYpCQlHaWdhZmluIE5ldHdvcmtzCisJCQkJMTkwNTAgUHJ1bmVyaWRnZQorCQkJCVN1aXRlIDIwMAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtRjEgICAoaGV4KQkJU2VydmltYXQKKzAwMUVGMSAgICAgKGJhc2UgMTYpCQlTZXJ2aW1hdAorCQkJCVpBRVQgTGVzIEhhaWVzCisJCQkJUnVlIEJlbm9pdCBGcmFjaG9uCisJCQkJU3QgTWF4aW1pbiBPaXNlIDYwNzQwCisJCQkJRlJBTkNFCisKKzAwLTFFLUYyICAgKGhleCkJCU1pY3JvIE1vdGlvbiBJbmMKKzAwMUVGMiAgICAgKGJhc2UgMTYpCQlNaWNybyBNb3Rpb24gSW5jCisJCQkJNzA3MCBXaW5jaGVzdGVyIENpcmNsZQorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFFLUYzICAgKGhleCkJCUZyb20yCiswMDFFRjMgICAgIChiYXNlIDE2KQkJRnJvbTIKKwkJCQkyRiwgTWVzdGVyIGluYworCQkJCTE2ODctMywgU2luaWwtZG9uZworCQkJCURhZWplb24gIDMwNi0yMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUUtRjQgICAoaGV4KQkJTC0zIENvbW11bmljYXRpb25zIERpc3BsYXkgU3lzdGVtcworMDAxRUY0ICAgICAoYmFzZSAxNikJCUwtMyBDb21tdW5pY2F0aW9ucyBEaXNwbGF5IFN5c3RlbXMKKwkJCQkxMzU1IEJsdWVncmFzcyBMYWtlcyBQYXJrd2F5CisJCQkJQWxwaGFyZXR0YSBHQSAzMDAwNC04NDU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1GNSAgIChoZXgpCQlIaXRlayBBdXRvbWF0ZWQgSW5jLgorMDAxRUY1ICAgICAoYmFzZSAxNikJCUhpdGVrIEF1dG9tYXRlZCBJbmMuCisJCQkJUm9vbSBDMy05MDEsIE5vLjM4MywgSHVhbWVuIFNoaWppYQorCQkJCVdlbnNhbmx1IFJvYWQsCisJCQkJSGFuZ3pob3UgIDMxMDAxMgorCQkJCUNISU5BCisKKzAwLTFFLUY2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUVGNiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRS1GNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFFRjcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUUtRjggICAoaGV4KQkJRW1maW5pdHkgSW5jLgorMDAxRUY4ICAgICAoYmFzZSAxNikJCUVtZmluaXR5IEluYy4KKwkJCQkxMTEgRWxtIFN0cmVldAorCQkJCVN1aXRlIDIwMQorCQkJCVN1ZGJ1cnkgT250YXJpbyBQM0MxVDMKKwkJCQlDQU5BREEKKworMDAtMUUtRjkgICAoaGV4KQkJUGFzY29tIEtvbW11bmlrYXRpb25zIHN5c3RlbWUgR21iSC4KKzAwMUVGOSAgICAgKGJhc2UgMTYpCQlQYXNjb20gS29tbXVuaWthdGlvbnMgc3lzdGVtZSBHbWJILgorCQkJCVRlY2hub2xvZ2llc3RyLiA0CisJCQkJQXJiaW5nIFVwcGVyIEF1c3RyaWEgNDMzMgorCQkJCUFVU1RSSUEKKworMDAtMUUtRkEgICAoaGV4KQkJUFJPVEVJIEx0ZC4KKzAwMUVGQSAgICAgKGJhc2UgMTYpCQlQUk9URUkgTHRkLgorCQkJCTYwQSBCLlNhbXBzb25pZXZza3ksICBCdXNpbmVzcyBDZW50ZXIKKwkJCQlTdC5QZXRlcnNidXJnIFJVIDE5NDA0NAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRS1GQiAgIChoZXgpCQlUcmlvIE1vdGlvbiBUZWNobm9sb2d5IEx0ZAorMDAxRUZCICAgICAoYmFzZSAxNikJCVRyaW8gTW90aW9uIFRlY2hub2xvZ3kgTHRkCisJCQkJU2hhbm5vbiBXYXkKKwkJCQlUZXdrZXNidXJ5IEdsb3VjZXN0ZXJzaGlyZSBHTDIwIDhORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFFLUZDICAgKGhleCkJCUpTQyAiTUFTU0EtSyIKKzAwMUVGQyAgICAgKGJhc2UgMTYpCQlKU0MgIk1BU1NBLUsiCisJCQkJMTUsIEEsIFBpcm9nb3Zza2F5YSBuYWIuCisJCQkJU2FpbnQtUGV0ZXJzYnVyZyBMZW5pbmdyYWRza2l5IHJlZy4gMTk0MDQ0CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFFLUZEICAgKGhleCkJCU1pY3JvYml0IDIuMCBBQgorMDAxRUZEICAgICAoYmFzZSAxNikJCU1pY3JvYml0IDIuMCBBQgorCQkJCU55c3RhZGVuIDEKKwkJCQlLQUxJWCAgOTUyNjEKKwkJCQlTV0VERU4KKworMDAtMUUtRkUgICAoaGV4KQkJTEVWRUwgcy5yLm8uCiswMDFFRkUgICAgIChiYXNlIDE2KQkJTEVWRUwgcy5yLm8uCisJCQkJUGxob3Zza8OhIDE5OTcKKwkJCQlOw6FjaG9kICA1NDcgMDEKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0xRS1GRiAgIChoZXgpCQlNdWVsbGVyLUVsZWt0cm9uaWsgR21iSCAmIENvLiBLRworMDAxRUZGICAgICAoYmFzZSAxNikJCU11ZWxsZXItRWxla3Ryb25payBHbWJIICYgQ28uIEtHCisJCQkJRnJhbnotS2xlaW5lLVN0ci4gMTgKKwkJCQlTYWx6a290dGVuIE5SVyAzMzE1NAorCQkJCUdFUk1BTlkKKworMDAtMUYtMDAgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMUYwMCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MFYKKwkJCQlERU5NQVJLCisKKzAwLTFGLTAxICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFGMDEgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTB2CisJCQkJREVOTUFSSworCiswMC0xRi0wMiAgIChoZXgpCQlQaXhlbG1ldHJpeCBDb3Jwb3JhdGlvbiBQdGUgTHRkCiswMDFGMDIgICAgIChiYXNlIDE2KQkJUGl4ZWxtZXRyaXggQ29ycG9yYXRpb24gUHRlIEx0ZAorCQkJCTMxIEtha2kgQnVraXQgUm9hZCAzCisJCQkJIzA3LTAzLCBUZWNobGluaworCQkJCTQxNzgxOAorCQkJCVNJTkdBUE9SRQorCiswMC0xRi0wMyAgIChoZXgpCQlOVU0gQUcKKzAwMUYwMyAgICAgKGJhc2UgMTYpCQlOVU0gQUcKKwkJCQlCYXR0ZW5odXNzdHJhc3NlIDE2CisJCQkJVGV1ZmVuIEFSIDkwNTMKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xRi0wNCAgIChoZXgpCQlHcmFuY2ggTHRkLgorMDAxRjA0ICAgICAoYmFzZSAxNikJCUdyYW5jaCBMdGQuCisJCQkJNDAgS29yb2xldmEgc3RyLgorCQkJCTUzIFBpc2FyZXZhIHN0ci4KKwkJCQlOb3Zvc2liaXJzayBOU08gNjMwMDE1CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFGLTA1ICAgKGhleCkJCWlUQVMgVGVjaG5vbG9neSBDb3JwLgorMDAxRjA1ICAgICAoYmFzZSAxNikJCWlUQVMgVGVjaG5vbG9neSBDb3JwLgorCQkJCU5vLiA3NSwgU2h1aXl1YW4gU3QuCisJCQkJSHNpbmNodSBDaXR5ICAzMDA2OQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtMDYgICAoaGV4KQkJSW50ZWdyYXRlZCBEaXNwYXRjaCBTb2x1dGlvbnMKKzAwMUYwNiAgICAgKGJhc2UgMTYpCQlJbnRlZ3JhdGVkIERpc3BhdGNoIFNvbHV0aW9ucworCQkJCTY0NSBNb3VudGFpbiBBdmUKKwkJCQlXeWNrb2ZmIE5KIDA3NDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi0wNyAgIChoZXgpCQlBWlRFUSBNb2JpbGUKKzAwMUYwNyAgICAgKGJhc2UgMTYpCQlBWlRFUSBNb2JpbGUKKwkJCQlTdWl0ZSAyMTAsIDUyNSBVbml2ZXJzaXR5IEF2ZQorCQkJCVBhbG8gQWx0byBDQSA5NDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMDggICAoaGV4KQkJUklTQ08gTFRECiswMDFGMDggICAgIChiYXNlIDE2KQkJUklTQ08gTFRECisJCQkJMzIgSGFjaGFyb3NoZXQgU3QKKwkJCQlLaXJpYXQgTWFsYWNoaSAgODMxMDEKKwkJCQlJU1JBRUwKKworMDAtMUYtMDkgICAoaGV4KQkJSkFTVEVDIENPLiwgTFRELgorMDAxRjA5ICAgICAoYmFzZSAxNikJCUpBU1RFQyBDTy4sIExURC4KKwkJCQlKYXN0ZWMgQi9ELCA5Mi03CisJCQkJS3VtLWdvayBEb25nLCBCb29uLURhbmcgR3UKKwkJCQlTZW9uZy1uYW0gU2kgIEt5dW5nLWdpIERvIDQ2My04MDQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtMEEgICAoaGV4KQkJTm9ydGVsCiswMDFGMEEgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJMTgzMCBNYXRoZXNvbiBCb3VsZXZhcmQKKwkJCQlTdWl0ZSAxCisJCQkJTWlzc2lzc2F1Z2EgT250YXJpbyBMNFcgMEIzCisJCQkJQ0FOQURBCisKKzAwLTFGLTBCICAgKGhleCkJCUZlZGVyYWwgU3RhdGUgVW5pdGFyeSBFbnRlcnByaXNlIEluZHVzdHJpYWwgVW5pb24iRWxlY3Ryb3ByaWJvciIKKzAwMUYwQiAgICAgKGJhc2UgMTYpCQlGZWRlcmFsIFN0YXRlIFVuaXRhcnkgRW50ZXJwcmlzZSBJbmR1c3RyaWFsIFVuaW9uIkVsZWN0cm9wcmlib3IiCisJCQkJCisJCQkJUGVuemEgIDQ0MDAxMQorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRi0wQyAgIChoZXgpCQlJbnRlbGxpZ2VudCBEaWdpdGFsIFNlcnZpY2VzIEdtYkgKKzAwMUYwQyAgICAgKGJhc2UgMTYpCQlJbnRlbGxpZ2VudCBEaWdpdGFsIFNlcnZpY2VzIEdtYkgKKwkJCQlHcmV2ZXNtdWVobGVuZXIgU3RyYXNzZSA4CisJCQkJTWFsbGVudGluIE1lY2tsZW5idXJnLVZvcnBvbW1lcm4gMjM2MzkKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLTBEICAgKGhleCkJCUwzIENvbW11bmljYXRpb25zIC0gVGVsZW1ldHJ5IFdlc3QKKzAwMUYwRCAgICAgKGJhc2UgMTYpCQlMMyBDb21tdW5pY2F0aW9ucyAtIFRlbGVtZXRyeSBXZXN0CisJCQkJOTAyMCBCYWxib2EgQXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi0wRSAgIChoZXgpCQlKYXBhbiBLeWFzdGVtIENvLiwgTHRkCiswMDFGMEUgICAgIChiYXNlIDE2KQkJSmFwYW4gS3lhc3RlbSBDby4sIEx0ZAorCQkJCTEtNC00CisJCQkJTmlzaGlraS1jaG8KKwkJCQlUYWNoaWthd2EgVG9reW8gMTkwLTAwMjIKKwkJCQlKQVBBTgorCiswMC0xRi0wRiAgIChoZXgpCQlTZWxlY3QgRW5naW5lZXJlZCBTeXN0ZW1zCiswMDFGMEYgICAgIChiYXNlIDE2KQkJU2VsZWN0IEVuZ2luZWVyZWQgU3lzdGVtcworCQkJCTc5OTEgVy4gMjYgQXZlCisJCQkJSGlhbGVhaCBGbG9yaWRhIDMzMDE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi0xMCAgIChoZXgpCQlUT0xFRE8gRE8gQlJBU0lMIElORFVTVFJJQSBERSBCQUxBTkNBUyAgTFREQQorMDAxRjEwICAgICAoYmFzZSAxNikJCVRPTEVETyBETyBCUkFTSUwgSU5EVVNUUklBIERFIEJBTEFOQ0FTICBMVERBCisJCQkJUlVBIE1BTk9FTCBDUkVNT05FU0ksIDEKKwkJCQlFU1RSQURBIFNBTVVFTCBBSVpFTUJFUkcsIDM0NQorCQkJCVNBTyBCRVJOQVJETyBETyBDQU1QTyBTUCAwOTg1MS05MDAKKwkJCQlCUkFaSUwKKworMDAtMUYtMTEgICAoaGV4KQkJT1BFTk1PS08sIElOQy4KKzAwMUYxMSAgICAgKGJhc2UgMTYpCQlPUEVOTU9LTywgSU5DLgorCQkJCTdGLCBObyAzMDAsIFlhbmcgR3VhbmcgU3RyZWV0CisJCQkJTmVpSHUKKwkJCQlUYWlwZWkgIDExNDkxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi0xMiAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCiswMDFGMTIgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTEzICAgKGhleCkJCVMuJiBBLlMuIEx0ZC4KKzAwMUYxMyAgICAgKGJhc2UgMTYpCQlTLiYgQS5TLiBMdGQuCisJCQkJQm91dHJvcyBCbGRnLiAxc3QgYnNtdAorCQkJCUdoYWJpIFN0cmVldAorCQkJCUJlaXJ1dCAgMjA2NyA3ODA4CisJCQkJTEVCQU5PTgorCiswMC0xRi0xNCAgIChoZXgpCQlOZXhHCiswMDFGMTQgICAgIChiYXNlIDE2KQkJTmV4RworCQkJCTVGIFNlb3VsIEFjYWRlbXkgQmxkZywgRGFlY2hpLURvbmcsIEdhbmduYW0tR3UsCisJCQkJU2VvdWwgIDEzNS0yODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtMTUgICAoaGV4KQkJQmlvc2NyeXB0IEluYworMDAxRjE1ICAgICAoYmFzZSAxNikJCUJpb3NjcnlwdCBJbmMKKwkJCQk1MDUgQ29jaHJhbmUgRHJpdmUKKwkJCQlNYXJraGFtIE9udGFyaW8gTDNSIDhFMworCQkJCUNBTkFEQQorCiswMC0xRi0xNiAgIChoZXgpCQlXaXN0cm9uIENvcnBvcmF0aW9uCiswMDFGMTYgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBDb3Jwb3JhdGlvbgorCQkJCTIxRiwgODgsIFNlYy4xLEhzaW4gVGFpIFd1IFJkLiwgSHNpY2hpaCwKKwkJCQlUYWlwZWkgSHNpZW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi0xNyAgIChoZXgpCQlJRFggQ29tcGFueSwgTHRkLgorMDAxRjE3ICAgICAoYmFzZSAxNikJCUlEWCBDb21wYW55LCBMdGQuCisJCQkJNi0yOC0xMSBTaHVrdWdhd2FyYSwgVGFuYS1rdQorCQkJCUthd2FzYWtpLVNoaSBLYW5hZ2F3YS1LZW4gMjE0MDAyMQorCQkJCUpBUEFOCisKKzAwLTFGLTE4ICAgKGhleCkJCUhha3VzYW4uTWZnLkNvLC5MdGQKKzAwMUYxOCAgICAgKGJhc2UgMTYpCQlIYWt1c2FuLk1mZy5DbywuTHRkCisJCQkJVG9taW4tS291Z3lvdS1Ja2VidWt1cm8gQkxELjVGCisJCQkJMi0yNi01ICBNaW5hbWktSWtlYnVrdXJvCisJCQkJVG9zaW1hIFdhcmQgVG9reW8tTWV0LiAxNzEtMDAyMgorCQkJCUpBUEFOCisKKzAwLTFGLTE5ICAgKGhleCkJCUJFTi1SSSBFTEVDVFJPTklDQSBTLkEuCiswMDFGMTkgICAgIChiYXNlIDE2KQkJQkVOLVJJIEVMRUNUUk9OSUNBIFMuQS4KKwkJCQlQT0wuIElORC4gVkVOVE9SUk8gREVMIENBTk8KKwkJCQlDLy4gTE9aT1lBIDgKKwkJCQlBTENPUkNPTiBNQURSSUQgMjg5MjUKKwkJCQlTUEFJTgorCiswMC0xRi0xQSAgIChoZXgpCQlQcm9taW52ZXN0CiswMDFGMUEgICAgIChiYXNlIDE2KQkJUHJvbWludmVzdAorCQkJCTcsIEJvYnJ1aXNrYXlhIHVsaWNhCisJCQkJU2FpbnQtUGV0ZXJzYnVyZyBOb3J0aC1XZXN0IEZlZGVyYWwgRGlzdHJpY3QgMTk1MDA5CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFGLTFCICAgKGhleCkJCVJveWFsVGVrIENvbXBhbnkgTHRkLgorMDAxRjFCICAgICAoYmFzZSAxNikJCVJveWFsVGVrIENvbXBhbnkgTHRkLgorCQkJCVN1aXRlIDlGLTEsIE5vLiAxMDcxLCBDaHVuZyBDaGVuZyBSZC4KKwkJCQlUYW95dWFuIFNoaWVuIFRhb3l1YW4gMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi0xQyAgIChoZXgpCQlLT0JJU0hJIEVMRUNUUklDIENvLixMdGQuCiswMDFGMUMgICAgIChiYXNlIDE2KQkJS09CSVNISSBFTEVDVFJJQyBDby4sTHRkLgorCQkJCTE4MDUtMQorCQkJCUthbWl5YQorCQkJCUtvdW5vc3Utc2hpIFNhaXRhbWEta2VuIDM2NS0wMDI3CisJCQkJSkFQQU4KKworMDAtMUYtMUQgICAoaGV4KQkJQXRsYXMgTWF0ZXJpYWwgVGVzdGluZyBUZWNobm9sb2d5IExMQworMDAxRjFEICAgICAoYmFzZSAxNikJCUF0bGFzIE1hdGVyaWFsIFRlc3RpbmcgVGVjaG5vbG9neSBMTEMKKwkJCQk0MTE0IE4uIFJhdmVuc3dvb2QgQXZlLgorCQkJCUNoaWNhZ28gSUwgNjA2MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTFFICAgKGhleCkJCUFzdGVjIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMUYxRSAgICAgKGJhc2UgMTYpCQlBc3RlYyBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJMTJGLCBOby4yLCBKaWFuIEJhIFJkLgorCQkJCUNodW5nIEhvIFRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTFGICAgKGhleCkJCUVkaW1heCBUZWNobm9sb2d5IENvLiBMdGQuCiswMDFGMUYgICAgIChiYXNlIDE2KQkJRWRpbWF4IFRlY2hub2xvZ3kgQ28uIEx0ZC4KKwkJCQlOby4gMywgV3UtQ2h1YW4gM3JkIFJvYWQsIFd1LUt1IEluZHVzdHJpYWwgUGFyaywKKwkJCQlUYWlwZWkgSHNpZW4gMjQ4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi0yMCAgIChoZXgpCQlMb2dpdGVjaCBFdXJvcGUgU0EKKzAwMUYyMCAgICAgKGJhc2UgMTYpCQlMb2dpdGVjaCBFdXJvcGUgU0EKKwkJCQlNb3VsaW4gZHUgQ2hvYyBECisJCQkJUm9tYW5lbCBzdXIgTW9yZ2VzIENIIDExMjIKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xRi0yMSAgIChoZXgpCQlJbm5lciBNb25nb2xpYSBZaW4gQW4gU2NpZW5jZSAmIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ28uLEwKKzAwMUYyMSAgICAgKGJhc2UgMTYpCQlJbm5lciBNb25nb2xpYSBZaW4gQW4gU2NpZW5jZSAmIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ28uLEwKKwkJCQlZaW5BbiBCdWlsZGluZyBZaXdlaSBSb2FkLlJ1WWkKKwkJCQlEZXZlbG9wbWVudCBab25lLEhvaGhvdAorCQkJCUJlaWppbmcgIDAxMDAxMAorCQkJCUNISU5BCisKKzAwLTFGLTIyICAgKGhleCkJCVNvdXJjZSBQaG90b25pY3MsIEluYy4KKzAwMUYyMiAgICAgKGJhc2UgMTYpCQlTb3VyY2UgUGhvdG9uaWNzLCBJbmMuCisJCQkJMjA1NTAgTm9yZGhvZmYgU3RyZWV0CisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMjMgICAoaGV4KQkJSW50ZXJhY291c3RpY3MKKzAwMUYyMyAgICAgKGJhc2UgMTYpCQlJbnRlcmFjb3VzdGljcworCQkJCURyZWplcnZhZW5nZXQgOAorCQkJCUFzc2VucyBESyA1NjEwCisJCQkJREVOTUFSSworCiswMC0xRi0yNCAgIChoZXgpCQlESUdJVFZJRVcgVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwMUYyNCAgICAgKGJhc2UgMTYpCQlESUdJVFZJRVcgVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQlOTy4gMTQtMjIsIFRJQU4tRlUgLAorCQkJCVNBTlNJQSBUT1dOU0hJUCwKKwkJCQlUQUlQRUkgQ09VTlRZICAyMzcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLTI1ICAgKGhleCkJCU1CUyBHbWJICiswMDFGMjUgICAgIChiYXNlIDE2KQkJTUJTIEdtYkgKKwkJCQlSw4PCtm1lcnN0cmHDg8W4ZSAxNQorCQkJCUtyZWZlbGQgTm9yZHJoZWluLVdlc3RmYWxlbiA0NzgwOQorCQkJCUdFUk1BTlkKKworMDAtMUYtMjYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRjI2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTI3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUYyNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi0yOCAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCiswMDFGMjggICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQKKwkJCQlSb3NldmlsbGUgQ0EgOTU3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTI5ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDFGMjkgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAyCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMkEgICAoaGV4KQkJQUNDTQorMDAxRjJBICAgICAoYmFzZSAxNikJCUFDQ00KKwkJCQlPYm91ciBJbmR1c3RyaWFsIENpdHksIEluZHVzdHJpYWwgem9uZSBBLCBsb3QxNCwgYmxvY2sgMTIwMDYuCisJCQkJQ2Fpcm8gIAorCQkJCUVHWVBUCisKKzAwLTFGLTJCICAgKGhleCkJCU9yYW5nZSBMb2dpYworMDAxRjJCICAgICAoYmFzZSAxNikJCU9yYW5nZSBMb2dpYworCQkJCSM3MDYgQWNlVGVjaG5vVG93ZXIgMTAtY2hhLDQ3MC01CisJCQkJR2FzYW4tZG9uZyBHZXVtY2hlb24tZ3UKKwkJCQlTRU9VTCAgMTUzLTc4OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi0yQyAgIChoZXgpCQlTdGFyYnJpZGdlIE5ldHdvcmtzCiswMDFGMkMgICAgIChiYXNlIDE2KQkJU3RhcmJyaWRnZSBOZXR3b3JrcworCQkJCTMyNjUgTWVyaWRpYW4gUGFya3dheQorCQkJCVN1aXRlIDEzNAorCQkJCVdlc3RvbiBGTCAzMzMzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtMkQgICAoaGV4KQkJRWxlY3Ryby1PcHRpY2FsIEltYWdpbmcsIEluYy4KKzAwMUYyRCAgICAgKGJhc2UgMTYpCQlFbGVjdHJvLU9wdGljYWwgSW1hZ2luZywgSW5jLgorCQkJCTQzMDAgRm9ydHVuZSBQbGFjZSwgU3VpdGUgQworCQkJCVdlc3QgTWVsYm91cm5lIEZMIDMyOTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi0yRSAgIChoZXgpCQlUcmlhbmdsZSBSZXNlYXJjaCBJbnQnbCBQdGUgTHRkCiswMDFGMkUgICAgIChiYXNlIDE2KQkJVHJpYW5nbGUgUmVzZWFyY2ggSW50J2wgUHRlIEx0ZAorCQkJCTEwIFViaSBDcmVzY2VudCAjMDUtODMKKwkJCQlVYmkgVGVjaHBhcmsgU0cgNDA4NjY0CisJCQkJU0lOR0FQT1JFCisKKzAwLTFGLTJGICAgKGhleCkJCUJlcmtlciBHbWJIICYgQ28uIEtHCiswMDFGMkYgICAgIChiYXNlIDE2KQkJQmVya2VyIEdtYkggJiBDby4gS0cKKwkJCQlLbGFnZWJhY2ggMzgKKwkJCQlTY2hhbGtzbXVlaGxlIE5SVyA1ODU3OQorCQkJCUdFUk1BTlkKKworMDAtMUYtMzAgICAoaGV4KQkJVHJhdmVscGluZworMDAxRjMwICAgICAoYmFzZSAxNikJCVRyYXZlbHBpbmcKKwkJCQkKKwkJCQlMZWlwemlnZXIgU3RyLiA0NgorCQkJCUNoZW1uaXR6IFNheG9ueSAwOTExMworCQkJCUdFUk1BTlkKKworMDAtMUYtMzEgICAoaGV4KQkJUmFkaW9jb21wCiswMDFGMzEgICAgIChiYXNlIDE2KQkJUmFkaW9jb21wCisJCQkJS3Jha2VzdmVqIDE3CisJCQkJSGlsbGVyb2VkIENvcGVuaGFnZW4gMzQwMAorCQkJCURFTk1BUksKKworMDAtMUYtMzIgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDFGMzIgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gS1lPVE8gNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0xRi0zMyAgIChoZXgpCQlOZXRnZWFyIEluYy4KKzAwMUYzMyAgICAgKGJhc2UgMTYpCQlOZXRnZWFyIEluYy4KKwkJCQk0NTAwIEdyZWF0IEFtZXJpY2EgUGt3eQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi0zNCAgIChoZXgpCQlMdW5nIEh3YSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMUYzNCAgICAgKGJhc2UgMTYpCQlMdW5nIEh3YSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkzRiwgMjQ4LCBQZWkgU2hlbmcgUmQuIFNlYy4gMywKKwkJCQlTaGVuZyBLZW5nCisJCQkJVGFpcGVpIEhzaWVuIDIyMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtMzUgICAoaGV4KQkJQUlSODAyIExMQworMDAxRjM1ICAgICAoYmFzZSAxNikJCUFJUjgwMiBMTEMKKwkJCQkxMTY5IEJhbnlvbiBDb3VydAorCQkJCU5hcGVydmlsbGUgSUwgNjA1NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTM2ICAgKGhleCkJCUJlbGx3aW4gSW5mb3JtYXRpb24gQ28uIEx0ZC4sCiswMDFGMzYgICAgIChiYXNlIDE2KQkJQmVsbHdpbiBJbmZvcm1hdGlvbiBDby4gTHRkLiwKKwkJCQkxN0YtMSxOby4xMjgsQ2h1bmcgRGUgUmQuCisJCQkJVGFpY2h1bmcgIDQwNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtMzcgICAoaGV4KQkJR2VuZXNpcyBJJkMKKzAwMUYzNyAgICAgKGJhc2UgMTYpCQlHZW5lc2lzIEkmQworCQkJCSM1MTUgbGlzYW50ZWtldW5vdGF1bgorCQkJCTExNDEtMSBCYWVrc2Vvay1Eb25nLCBsaXNhbmRvbmctR3UKKwkJCQlHb3lhbmcgR3llb25nZ2kgNDEwLTcyMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi0zOCAgIChoZXgpCQlQT1NJVFJPTgorMDAxRjM4ICAgICAoYmFzZSAxNikJCVBPU0lUUk9OCisJCQkJRVNUUkFEQSBURUxFQlJBUy1VTklDQU1QLCBLTTAsOTcgLSBDSi4wMQorCQkJCUJBSVJSTzogQ0lEQURFIFVOSVZFUlNJVEFSSUEKKwkJCQlDQU1QSU5BUyBTQU8gUEFVTE8gMTMwODQtOTcxCisJCQkJQlJBWklMCisKKzAwLTFGLTM5ICAgKGhleCkJCUNvbnN0cnVjY2lvbmVzIHkgQXV4aWxpYXIgZGUgRmVycm9jYXJyaWxlcywgUy5BLgorMDAxRjM5ICAgICAoYmFzZSAxNikJCUNvbnN0cnVjY2lvbmVzIHkgQXV4aWxpYXIgZGUgRmVycm9jYXJyaWxlcywgUy5BLgorCQkJCUMvIEouTS4gSXR1cnJpb3osIDI2CisJCQkJQmVhc2FpbiBHdWlww7p6Y29hIEUtMjAyMDAKKwkJCQlTUEFJTgorCiswMC0xRi0zQSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uLCBMdGQuCiswMDFGM0EgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLiwgTHRkLgorCQkJCTY2LCBDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtM0IgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDFGM0IgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0xRi0zQyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMUYzQyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFGLTNEICAgKGhleCkJCVFiaXQgR21iSAorMDAxRjNEICAgICAoYmFzZSAxNikJCVFiaXQgR21iSAorCQkJCVN0ZWd3aWVzZW5zdHJhc3NlIDMyCisJCQkJQnJ1Y2hzYWwgR2VybWFueSA3NjY0NgorCQkJCUdFUk1BTlkKKworMDAtMUYtM0UgICAoaGV4KQkJUlAtVGVjaG5payBlLksuCiswMDFGM0UgICAgIChiYXNlIDE2KQkJUlAtVGVjaG5payBlLksuCisJCQkJSGVybWFubi1TdGF1ZGluZ2VyLVN0ci4gMTAtMTYKKwkJCQlSb2RnYXUgSGVzc2VuIDYzMTEwCisJCQkJR0VSTUFOWQorCiswMC0xRi0zRiAgIChoZXgpCQlBVk0gR21iSAorMDAxRjNGICAgICAoYmFzZSAxNikJCUFWTSBHbWJICisJCQkJQWx0LU1vYWJpdCA5NQorCQkJCUJlcmxpbiAgMTA1NTkKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLTQwICAgKGhleCkJCVNwZWFrZXJjcmFmdCBJbmMuCiswMDFGNDAgICAgIChiYXNlIDE2KQkJU3BlYWtlcmNyYWZ0IEluYy4KKwkJCQk5NDAgQ29sdW1iaWEgQXZlLiwKKwkJCQlSaXZlcnNpZGUgQ0EgOTI1MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTQxICAgKGhleCkJCVJ1Y2t1cyBXaXJlbGVzcworMDAxRjQxICAgICAoYmFzZSAxNikJCVJ1Y2t1cyBXaXJlbGVzcworCQkJCTg4MCBXZXN0IE1hdWRlIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTQyICAgKGhleCkJCUV0aGVyc3RhY2sgUHR5IEx0ZAorMDAxRjQyICAgICAoYmFzZSAxNikJCUV0aGVyc3RhY2sgUHR5IEx0ZAorCQkJCTIwMSBOYXRpb25hbCBJbm5vdmF0aW9uIENlbnRyZQorCQkJCUF1c3RyYWxpYW4gVGVjaG5vbG9neSBQYXJrIE5TVyAyMjM0CisJCQkJQVVTVFJBTElBCisKKzAwLTFGLTQzICAgKGhleCkJCUVOVEVTIEVMRUtUUk9OSUsKKzAwMUY0MyAgICAgKGJhc2UgMTYpCQlFTlRFUyBFTEVLVFJPTklLCisJCQkJWS4gRHVkdWxsdSBPcmcuIFNhbi4gQm9sLiBBbmQgU2FuYXlpIFNpdC4gTm8uNgorCQkJCVVtcmFuaXllCisJCQkJSXN0YW5idWwgRHVkdWxsdSAzNDc3NQorCQkJCVRVUktFWQorCiswMC0xRi00NCAgIChoZXgpCQlHRSBUcmFuc3BvcnRhdGlvbiBTeXN0ZW1zCiswMDFGNDQgICAgIChiYXNlIDE2KQkJR0UgVHJhbnNwb3J0YXRpb24gU3lzdGVtcworCQkJCTI5MDEgRWFzdCBMYWtlIFJvYWQKKwkJCQlFcmllIFBBIDE2NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi00NSAgIChoZXgpCQlFbnRlcmFzeXMKKzAwMUY0NSAgICAgKGJhc2UgMTYpCQlFbnRlcmFzeXMKKwkJCQk1MCBNaW51dGVtYW4gUm9hZAorCQkJCUFuZG92ZXIgTUEgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTQ2ICAgKGhleCkJCU5vcnRlbAorMDAxRjQ2ICAgICAoYmFzZSAxNikJCU5vcnRlbAorCQkJCTIyMjEgTGFrZXNpZGUgQmx2ZAorCQkJCVJpY2hhcmRzb24gVGV4YXMgNzUwODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTQ3ICAgKGhleCkJCU1DUyBMb2dpYyBJbmMuCiswMDFGNDcgICAgIChiYXNlIDE2KQkJTUNTIExvZ2ljIEluYy4KKwkJCQk2Ri4gU2FtaG8gQ2VudGVyIEIgQmxkZy4sIDI3NS02CisJCQkJWWFuZ2phZS1Eb25nLCBTZWNoby1LdQorCQkJCVNlb3VsICAxMzctOTQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLTQ4ICAgKGhleCkJCU1vaml4IEluYy4KKzAwMUY0OCAgICAgKGJhc2UgMTYpCQlNb2ppeCBJbmMuCisJCQkJMTEwNzUgU2FudGEgTW9uaWNhIEJsdmQuCisJCQkJU3VpdGUgMzUwCisJCQkJTG9zIEFuZ2VsZXMgQ2EgOTAwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTQ5ICAgKGhleCkJCUV1cm9zYXQgRGlzdHJpYnV0aW9uIEx0ZAorMDAxRjQ5ICAgICAoYmFzZSAxNikJCUV1cm9zYXQgRGlzdHJpYnV0aW9uIEx0ZAorCQkJCTUgT3hnYXRlIENlbnRyZQorCQkJCU94Z2F0ZSBMYW5lCisJCQkJTG9uZG9uICBOVzIgN0pBCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUYtNEEgICAoaGV4KQkJQWxiZW50aWEgU3lzdGVtcyBTLkEuCiswMDFGNEEgICAgIChiYXNlIDE2KQkJQWxiZW50aWEgU3lzdGVtcyBTLkEuCisJCQkJQWxiYWxhIDEzCisJCQkJTWFkcmlkICAyODAzNworCQkJCVNQQUlOCisKKzAwLTFGLTRCICAgKGhleCkJCUxpbmVhZ2UgUG93ZXIKKzAwMUY0QiAgICAgKGJhc2UgMTYpCQlMaW5lYWdlIFBvd2VyCisJCQkJMzAwMCBTa3lsaW5lIERyLgorCQkJCU1lc3F1aXRlIFRYIDc1MTQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi00QyAgIChoZXgpCQlSb3NlbWFuIEVuZ2luZWVyaW5nIEx0ZAorMDAxRjRDICAgICAoYmFzZSAxNikJCVJvc2VtYW4gRW5naW5lZXJpbmcgTHRkCisJCQkJNjUgV2Vpem1hbiBTdHJlZXQKKwkJCQlHaXZhdGFpbSBJc3JhZWwgNTM0NjgKKwkJCQlJU1JBRUwKKworMDAtMUYtNEQgICAoaGV4KQkJU2VnbmV0aWNzIExMQworMDAxRjREICAgICAoYmFzZSAxNikJCVNlZ25ldGljcyBMTEMKKwkJCQlTaGtpcGVyc2tpIHByb3RvayAxNAorCQkJCVNhaW50LVBldGVyc2J1cmcgIDE5OTEwNgorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRi00RSAgIChoZXgpCQlDb25NZWQgTGludmF0ZWMKKzAwMUY0RSAgICAgKGJhc2UgMTYpCQlDb25NZWQgTGludmF0ZWMKKwkJCQkxMTMxMSBDb25jZXB0IEJsdmQuCisJCQkJTGFyZ28gRkwgMzM3NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTRGICAgKGhleCkJCVRoaW5rd2FyZSBDby4gTHRkLgorMDAxRjRGICAgICAoYmFzZSAxNikJCVRoaW5rd2FyZSBDby4gTHRkLgorCQkJCTE1RkwsIEhhbm1pIFRvd2VyLCA0NSwKKwkJCQlCYW5naS1Eb25nLCBTb25ncGEtZ3UKKwkJCQlTZW91bCAgMTM4LTcyNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi01MCAgIChoZXgpCQlTd2lzc2RpcyBBRworMDAxRjUwICAgICAoYmFzZSAxNikJCVN3aXNzZGlzIEFHCisJCQkJR3Jhc3dlZyA3CisJCQkJU2Nod2FyemhhZXVzZXJuIEJFIDQ5MTEKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xRi01MSAgIChoZXgpCQlIRCBDb21tdW5pY2F0aW9ucyBDb3JwCiswMDFGNTEgICAgIChiYXNlIDE2KQkJSEQgQ29tbXVuaWNhdGlvbnMgQ29ycAorCQkJCTIxODAgRmlmdGggQXZlCisJCQkJUm9ua29ua29tYSBOWSAxMTc3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNTIgICAoaGV4KQkJVVZUIFVudGVybmVobWVuc2JlcmF0dW5nIGbDvHIgVmVya2VociB1bmQgVGVjaG5payBHbWJICiswMDFGNTIgICAgIChiYXNlIDE2KQkJVVZUIFVudGVybmVobWVuc2JlcmF0dW5nIGbDvHIgVmVya2VociB1bmQgVGVjaG5payBHbWJICisJCQkJSm9zZWZzc3RyLjU0LTU2CisJCQkJTWFpbnogUkxQIDU1MTE4CisJCQkJR0VSTUFOWQorCiswMC0xRi01MyAgIChoZXgpCQlHRU1BQyBHZXNlbGxzY2hhZnQgZsO8ciBNaWtyb2VsZWt0cm9uaWthbndlbmR1bmcgQ2hlbW5pdHogbWJICiswMDFGNTMgICAgIChiYXNlIDE2KQkJR0VNQUMgR2VzZWxsc2NoYWZ0IGbDvHIgTWlrcm9lbGVrdHJvbmlrYW53ZW5kdW5nIENoZW1uaXR6IG1iSAorCQkJCVp3aWNrYXVlciBTdHIuIDIyNworCQkJCUNoZW1uaXR6IFNhY2hzZW4gMDkxMTYKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLTU0ICAgKGhleCkJCUxvcmV4IFRlY2hub2xvZ3kgSW5jLgorMDAxRjU0ICAgICAoYmFzZSAxNikJCUxvcmV4IFRlY2hub2xvZ3kgSW5jLgorCQkJCTMwMCBBbGRlbiBSb2FkCisJCQkJTWFya2hhbSBPbnRhcmlvIEwzUjRDMQorCQkJCUNBTkFEQQorCiswMC0xRi01NSAgIChoZXgpCQlIb25leXdlbGwgU2VjdXJpdHkgKENoaW5hKSBDby4sIEx0ZC4KKzAwMUY1NSAgICAgKGJhc2UgMTYpCQlIb25leXdlbGwgU2VjdXJpdHkgKENoaW5hKSBDby4sIEx0ZC4KKwkJCQlCbG9jayAyOCwgU2VjdGlvbiAyLCBIdWFpICBEZSBDdWkgR2FuZyBJbmR1c3RyaWFsICBFc3RhdGUsIEZ1IFlvbmcsIEJhbyBBbiwgU2hlblpoZW4sIFAuUi4gQ2hpbmEKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTAzCisJCQkJQ0hJTkEKKworMDAtMUYtNTYgICAoaGV4KQkJRElHSVRBTCBGT1JFQ0FTVAorMDAxRjU2ICAgICAoYmFzZSAxNikJCURJR0lUQUwgRk9SRUNBU1QKKwkJCQk1dGggRmwuLCA1MDcsIEUmQyBWZW50dXJlIERyZWFtIFRvd2VyIElJSSwgMTk3LTMzCisJCQkJR3VybyAzLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCBHeXVuZ2dpLWRvIDE1Mi03MTkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtNTcgICAoaGV4KQkJUGhvbmlrIElubm92YXRpb24gQ28uLExURAorMDAxRjU3ICAgICAoYmFzZSAxNikJCVBob25payBJbm5vdmF0aW9uIENvLixMVEQKKwkJCQkyOS8xNjcgTW9vMiwgMzQ1IFJkLCBMYW1wbywKKwkJCQlCYW5nYnVhdGhvbmcKKwkJCQlOb250aGFidXJpICAxMTExMAorCQkJCVRIQUlMQU5ECisKKzAwLTFGLTU4ICAgKGhleCkJCUVNSCBFbmVyZ2llbWVzc3RlY2huaWsgR21iSCAmIGNvLktHCiswMDFGNTggICAgIChiYXNlIDE2KQkJRU1IIEVuZXJnaWVtZXNzdGVjaG5payBHbWJIICYgY28uS0cKKwkJCQlOZXUtR2FsbGluZXIgV2VnIDEKKwkJCQlHYWxsaW4gTWVja2xlbmJ1cmcgLSBWb3Jwb21tZXJuCisJCQkJMTkgMjU4CisJCQkJR0VSTUFOWQorCiswMC0xRi01OSAgIChoZXgpCQlLcm9uYmFjayBUcmFjZXJzCiswMDFGNTkgICAgIChiYXNlIDE2KQkJS3JvbmJhY2sgVHJhY2VycworCQkJCWMvbyBJSEssIE0xNDYKKwkJCQlMYXV0cnVwdmFuZyAxNQorCQkJCUJhbGxlcnVwIENvcGVuaGFnZW4gMjc1MAorCQkJCURFTk1BUksKKworMDAtMUYtNUEgICAoaGV4KQkJQmVja3dpdGggRWxlY3RyaWMgQ28uCiswMDFGNUEgICAgIChiYXNlIDE2KQkJQmVja3dpdGggRWxlY3RyaWMgQ28uCisJCQkJNjE5MCAxMTh0aCBBdmUgTm8KKwkJCQlMYXJnbyBGbG9yaWRhIDMzNzczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi01QiAgIChoZXgpCQlBcHBsZSwgSW5jLgorMDAxRjVCICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJTVMgMzUtR1BPCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi01QyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRjVDICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRi01RCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAxRjVEICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0xRi01RSAgIChoZXgpCQlEeW5hIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzAwMUY1RSAgICAgKGJhc2UgMTYpCQlEeW5hIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQlIYW9IYWkgQnVpbGRpbmcgMUYsTm8uNyw1dGggU3RyZWV0LFNoYW5nZGksCisJCQkJSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTFGLTVGICAgKGhleCkJCUJsYXRhbmQgR21iSAorMDAxRjVGICAgICAoYmFzZSAxNikJCUJsYXRhbmQgR21iSAorCQkJCUxpY2h0ZW5iZXJnc3RyYcODxbhlIDgKKwkJCQlHYXJjaGluZyBCYXZhcmlhIDg1NzQ4CisJCQkJR0VSTUFOWQorCiswMC0xRi02MCAgIChoZXgpCQlDT01QQVNTIFNZU1RFTVMgQ09SUC4KKzAwMUY2MCAgICAgKGJhc2UgMTYpCQlDT01QQVNTIFNZU1RFTVMgQ09SUC4KKwkJCQk2RiwgTm8uIDQxMywgU2VjLiAyLCBUaS1EaW5nIEJsdmQuLAorCQkJCVRhaXBlaSBOZWlodURpc3QgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi02MSAgIChoZXgpCQlUYWxlbnQgQ29tbXVuaWNhdGlvbiBOZXR3b3JrcyBJbmMuCiswMDFGNjEgICAgIChiYXNlIDE2KQkJVGFsZW50IENvbW11bmljYXRpb24gTmV0d29ya3MgSW5jLgorCQkJCVJtLiA5MTAgUiZGIFBsYXphLCAjNzYsIEh1YW5ncHUgQXZlLiBXZXN0LAorCQkJCUd1YW5nemhvdSAoQ2FudG9uKSBHdWFuZ2RvbmcgUHJvdmluY2UgNTEwMzYwCisJCQkJQ0hJTkEKKworMDAtMUYtNjIgICAoaGV4KQkJSlNDICJTdGlsc29mdCIKKzAwMUY2MiAgICAgKGJhc2UgMTYpCQlKU0MgIlN0aWxzb2Z0IgorCQkJCU1heWFrb3Zza29nbyAxNQorCQkJCVN0YXZyb3BvbCAgMzU1MDAwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFGLTYzICAgKGhleCkJCUpTQyBHb29kd2luLUV1cm9wYQorMDAxRjYzICAgICAoYmFzZSAxNikJCUpTQyBHb29kd2luLUV1cm9wYQorCQkJCTIwLzUgTWFya3Npc3Rza2F5YSBzdC4KKwkJCQlNb3Njb3cgIDEwOTE0NworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0xRi02NCAgIChoZXgpCQlCZWlqaW5nIEF1dGVsYW4gVGVjaG5vbG9neSBJbmMuCiswMDFGNjQgICAgIChiYXNlIDE2KQkJQmVpamluZyBBdXRlbGFuIFRlY2hub2xvZ3kgSW5jLgorCQkJCVJvb20gQi0xMkIwMSwgS2VzaGkgUGxhemEsIFhpbnhpIHJvYWQsCisJCQkJU2hhbmdkaSBwYXJrLEhhaWRpYW4sCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMUYtNjUgICAoaGV4KQkJS09SRUEgRUxFQ1RSSUMgVEVSTUlOQUwgQ08uLCBMVEQuCiswMDFGNjUgICAgIChiYXNlIDE2KQkJS09SRUEgRUxFQ1RSSUMgVEVSTUlOQUwgQ08uLCBMVEQuCisJCQkJIzctMzggU09OR0RPLURPTkcKKwkJCQlZRU9OU1UtR1UgSU5DSEVPTiA0MDYtODQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLTY2ICAgKGhleCkJCVBMQU5BUiBMTEMKKzAwMUY2NiAgICAgKGJhc2UgMTYpCQlQTEFOQVIgTExDCisJCQkJMzIsIEVsa2luYSBzdHIKKwkJCQlDaGVseWFiaW5zayBTVSA0NTQwOTEKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUYtNjcgICAoaGV4KQkJSGl0YWNoaSxMdGQuCiswMDFGNjcgICAgIChiYXNlIDE2KQkJSGl0YWNoaSxMdGQuCisJCQkJTWluYW1pb2kgNi0yNy0xOCwgU2hpbmFnYXdhLWt1CisJCQkJVG9reW8gMTQwLTg1NzIKKwkJCQlKQVBBTgorCiswMC0xRi02OCAgIChoZXgpCQlNYXJ0aW5zc29uIEVsZWt0cm9uaWsgQUIKKzAwMUY2OCAgICAgKGJhc2UgMTYpCQlNYXJ0aW5zc29uIEVsZWt0cm9uaWsgQUIKKwkJCQlCb3ggOTA2MAorCQkJCUjDpGdlcnN0ZW4gU3RvY2tob2xtIDEyNiAwOQorCQkJCVNXRURFTgorCiswMC0xRi02OSAgIChoZXgpCQlQaW5nb29kIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFGNjkgICAgIChiYXNlIDE2KQkJUGluZ29vZCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCVJtMTkxNywgU291dGggQmxvY2ssIENhbmdzb25nIEJsZGcuLCBUYWlyYW4gSW5kdXN0cmlhbCBab25lLCBGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworMDAtMUYtNkEgICAoaGV4KQkJUGFja2V0Rmx1eCBUZWNobm9sb2dpZXMsIEluYy4KKzAwMUY2QSAgICAgKGJhc2UgMTYpCQlQYWNrZXRGbHV4IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTUwIDExdGggQXZlbnVlCisJCQkJSGVsZW5hIE1UIDU5NjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi02QiAgIChoZXgpCQlMRyBFbGVjdHJvbmljcworMDAxRjZCICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzCisJCQkJNjAtMzksS2FzYW4tZG9uZyxLdW1jaG9uLWt1CisJCQkJU2VvdWwgIDE1My0wMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtNkMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRjZDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTZEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUY2RCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi02RSAgIChoZXgpCQlWdGVjaCBFbmdpbmVlcmluZyBDb3Jwb3JhdGlvbgorMDAxRjZFICAgICAoYmFzZSAxNikJCVZ0ZWNoIEVuZ2luZWVyaW5nIENvcnBvcmF0aW9uCisJCQkJMjAgTmV3IEVuZ2xhbmQgQnVzaW5lc3MgQ2VudGVyCisJCQkJQW5kb3ZlciBNQSAwMTgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtNkYgICAoaGV4KQkJRnVqaWFuIFN1bm5hZGEgQ29tbXVuaWNhdGlvbiBDby4sTHRkLgorMDAxRjZGICAgICAoYmFzZSAxNikJCUZ1amlhbiBTdW5uYWRhIENvbW11bmljYXRpb24gQ28uLEx0ZC4KKwkJCQk3L0bCo8KsTWFpbiBCdWlsZGluZ8KjwqxGdWppYW4gVG9yY2ggSGktVGVjaCBJbm5vdmF0aW9uIFBhcmvCo8KsIzYxMSBJbmR1c3RyaWFsIFJvYWTCo8KsIEZ1emhvdcKjwqxQUkMgMzUwMDAyCisJCQkJNyMgQnVpbGRpbmcgQiBEaXN0cmljdCwgU29mdHdhcmUgUGFyaywgVG9uZ1BhbiBSb2FkIEZ1emhvdSwgUFJDIDM1MDAwMworCQkJCUZ1emhvdSBGdWppYW4gMzUwMDAyCisJCQkJQ0hJTkEKKworMDAtMUYtNzAgICAoaGV4KQkJQm90aWsgVGVjaG5vbG9naWVzIExURAorMDAxRjcwICAgICAoYmFzZSAxNikJCUJvdGlrIFRlY2hub2xvZ2llcyBMVEQKKwkJCQlUcnVkb3ZheWEsIDEKKwkJCQlQZXJlc2xhdmwtWmFsZXNza3kgWWFyb3NsYXZza2F5YSAxNTIwMjAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMUYtNzEgICAoaGV4KQkJeEcgVGVjaG5vbG9neSwgSW5jLgorMDAxRjcxICAgICAoYmFzZSAxNikJCXhHIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyNDAgUy4gUGluZWFwcGxlIEF2ZW51ZQorCQkJCVN1aXRlIDcwMQorCQkJCVNhcmFzb3RhIEZMIDM0MjM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi03MiAgIChoZXgpCQlRaW5nRGFvIEhpcGhvbmUgVGVjaG5vbG9neSBDbywuTHRkCiswMDFGNzIgICAgIChiYXNlIDE2KQkJUWluZ0RhbyBIaXBob25lIFRlY2hub2xvZ3kgQ28sLkx0ZAorCQkJCU5PLjEwNixKaWFuZ1hpIFJvYWQKKwkJCQlRaW5nRGFvIFNoYW5Eb25nIDI2NjA3MQorCQkJCUNISU5BCisKKzAwLTFGLTczICAgKGhleCkJCVRlcmF2aWV3IFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFGNzMgICAgIChiYXNlIDE2KQkJVGVyYXZpZXcgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkyM0YsIE5vLiAyOS01LCBTZWMuIDIsIEpob25namhlbmcgRS4gUm9hZCwKKwkJCQlEYW5zaHVpIFRvd25zaGlwLAorCQkJCVRhaXBlaSBDb3VudHkgIDI1MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtNzQgICAoaGV4KQkJRWlnZW4gRGV2ZWxvcG1lbnQKKzAwMUY3NCAgICAgKGJhc2UgMTYpCQlFaWdlbiBEZXZlbG9wbWVudAorCQkJCTE4MDcgVzEwdGggQXZlCisJCQkJVmFuY291dmVyIEJDIFY2SiAyQTkKKwkJCQlDQU5BREEKKworMDAtMUYtNzUgICAoaGV4KQkJR2lCYWhuIE1lZGlhCiswMDFGNzUgICAgIChiYXNlIDE2KQkJR2lCYWhuIE1lZGlhCisJCQkJMTgxNiBSb3NlZGFsZSBTdXNlby1kb25nCisJCQkJS2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUtODg1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLTc2ICAgKGhleCkJCUFpckxvZ2ljIFN5c3RlbXMgSW5jLgorMDAxRjc2ICAgICAoYmFzZSAxNikJCUFpckxvZ2ljIFN5c3RlbXMgSW5jLgorCQkJCTMwMjIgUGVsZWtlIFN0LlN1aXRlIDEKKwkJCQlMaWh1J2UgSEkgOTY3NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTc3ICAgKGhleCkJCUhFT0wgREVTSUdOCiswMDFGNzcgICAgIChiYXNlIDE2KQkJSEVPTCBERVNJR04KKwkJCQkxIGJkIGQnYXJtb3IKKwkJCQlMQU5OSU9OIEJSRVRBR05FIDIyMzAwCisJCQkJRlJBTkNFCisKKzAwLTFGLTc4ICAgKGhleCkJCUJsdWUgRm94IFBvcmluaSBUZXh0aWxlCiswMDFGNzggICAgIChiYXNlIDE2KQkJQmx1ZSBGb3ggUG9yaW5pIFRleHRpbGUKKwkJCQkxMjA4IFBvaW50ZSBDZW50cmUgRHJpdmUKKwkJCQlTVEUgMjAwCisJCQkJQ2hhdHRhbm9vZ2EgVE4gMzc0MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTc5ICAgKGhleCkJCUxvZGFtIEVsZWN0cm9uaWNzIEEvUworMDAxRjc5ICAgICAoYmFzZSAxNikJCUxvZGFtIEVsZWN0cm9uaWNzIEEvUworCQkJCUvDpnJ2ZWogNzcKKwkJCQlTw7huZGVyYm9yZyBBbHMgREstNjQwMAorCQkJCURFTk1BUksKKworMDAtMUYtN0EgICAoaGV4KQkJV2lXaWRlIEluYy4KKzAwMUY3QSAgICAgKGJhc2UgMTYpCQlXaVdpZGUgSW5jLgorCQkJCTEwQjEwLCBIdWEgSmllIFBsYXphCisJCQkJIzEzIERhIFpob25nIFNpLCBIYWlkaWFuCisJCQkJQmVpamluZyAgMTAwMDg5CisJCQkJQ0hJTkEKKworMDAtMUYtN0IgICAoaGV4KQkJVGVjaE5leGlvbiBMdGQuCiswMDFGN0IgICAgIChiYXNlIDE2KQkJVGVjaE5leGlvbiBMdGQuCisJCQkJMTdGLTEsIE5vLiAxNiwgSmlhbiBCYSBSb2FkLAorCQkJCUNodW5nIEhvICBUYWlwZWkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi03QyAgIChoZXgpCQlXaXRlbGNvbSBBUworMDAxRjdDICAgICAoYmFzZSAxNikJCVdpdGVsY29tIEFTCisJCQkJVmVyZnRzZ3QgMTAKKwkJCQlNb3NzIE9zdGZvbGQgMTUxMQorCQkJCU5PUldBWQorCiswMC0xRi03RCAgIChoZXgpCQllbWJlZGRlZCB3aXJlbGVzcyBHbWJICiswMDFGN0QgICAgIChiYXNlIDE2KQkJZW1iZWRkZWQgd2lyZWxlc3MgR21iSAorCQkJCVPDtmZsaW5nZXIgU3RyLiAxMDAKKwkJCQlVbG0gQlcgODkwNzcKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLTdFICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDFGN0UgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gVVMgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSWxsaW5vaXMgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTdGICAgKGhleCkJCVBoYWJyaXggTGltaXRlZAorMDAxRjdGICAgICAoYmFzZSAxNikJCVBoYWJyaXggTGltaXRlZAorCQkJCUJsaW5kbWFucyBHYXRlIENvdHRhZ2UKKwkJCQlXb29sdG9uIEhpbGwKKwkJCQlOZXdidXJ5IEhhbXBzaGlyZSBSRzIwIDlYQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFGLTgwICAgKGhleCkJCUx1Y2FzIEhvbGRpbmcgYnYKKzAwMUY4MCAgICAgKGJhc2UgMTYpCQlMdWNhcyBIb2xkaW5nIGJ2CisJCQkJRG9tZWluIDI4CisJCQkJR2VtZXJ0IE5CIDU0MjFBUgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTFGLTgxICAgKGhleCkJCUFjY2VsIFNlbWljb25kdWN0b3IgQ29ycAorMDAxRjgxICAgICAoYmFzZSAxNikJCUFjY2VsIFNlbWljb25kdWN0b3IgQ29ycAorCQkJCTFGLE1haW5ibGRnLDE0OSBDaHVuIFhpYW8gUm9hZCwKKwkJCQlTaGFuZ2hhaSAgMjAxMjAzCisJCQkJQ0hJTkEKKworMDAtMUYtODIgICAoaGV4KQkJQ2FsLUNvbXAgRWxlY3Ryb25pY3MgJiBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZAorMDAxRjgyICAgICAoYmFzZSAxNikJCUNhbC1Db21wIEVsZWN0cm9uaWNzICYgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQKKwkJCQkzRiwgIzIwNSwgU2VjLjMgUGVpaHNpbiBSZC4KKwkJCQlIc2ludGVpbiBUYWlwZWkgQ291bnR5IDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtODMgICAoaGV4KQkJVGVsZXBsYW4gVGVjaG5vbG9neSBTZXJ2aWNlcyBTZG4gQmhkCiswMDFGODMgICAgIChiYXNlIDE2KQkJVGVsZXBsYW4gVGVjaG5vbG9neSBTZXJ2aWNlcyBTZG4gQmhkCisJCQkJMjU4MCwgVGluZ2thdCBQZXJ1c2FoYWFuIDRCCisJCQkJWm9uIFBlcmRhZ2FuZ2FuIEJlYmFzIER1YQorCQkJCVBlcmFpIFBlbmFuZyAxMzYwMAorCQkJCU1BTEFZU0lBCisKKzAwLTFGLTg0ICAgKGhleCkJCUdpZ2xlIFNlbWljb25kdWN0b3IKKzAwMUY4NCAgICAgKGJhc2UgMTYpCQlHaWdsZSBTZW1pY29uZHVjdG9yCisJCQkJQmFyY2Vsb25hIEFjdGl2YSAtIFZpdmVybyBHbG9yaWFzCisJCQkJTGxhY3VuYSAxNjIKKwkJCQlCYXJjZWxvbmEgIDA4MDE4CisJCQkJU1BBSU4KKworMDAtMUYtODUgICAoaGV4KQkJQXByaXZhIElTUywgTExDCiswMDFGODUgICAgIChiYXNlIDE2KQkJQXByaXZhIElTUywgTExDCisJCQkJNjkwMCBFIENhbWVsYmFjayBSZAorCQkJCVN1aXRlIDcwMAorCQkJCVNjb3R0c2RhbGUgQVogODUyNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTg2ICAgKGhleCkJCWRpZ0Vjb3IKKzAwMUY4NiAgICAgKGJhc2UgMTYpCQlkaWdFY29yCisJCQkJMTYyNSBOLiAxMTAwIFcuCisJCQkJU3ByaW5ndmlsbGUgVVQgODQ2NjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTg3ICAgKGhleCkJCVNreWRpZ2l0YWwgSW5jLgorMDAxRjg3ICAgICAoYmFzZSAxNikJCVNreWRpZ2l0YWwgSW5jLgorCQkJCSMyOC05IFdvbmh5b3JvMS1nYSwgWW9uZ3Nhbi1ndSwKKwkJCQlTZW91bCAgMTQwLTg0NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi04OCAgIChoZXgpCQlGTVMgRm9yY2UgTWVhc3VyaW5nIFN5c3RlbXMgQUcKKzAwMUY4OCAgICAgKGJhc2UgMTYpCQlGTVMgRm9yY2UgTWVhc3VyaW5nIFN5c3RlbXMgQUcKKwkJCQlBc3BzdHJhc3NlIDYKKwkJCQlPYmVyZ2xhdHQgWnVyaWNoIDgxNTQKKwkJCQlTV0lUWkVSTEFORAorCiswMC0xRi04OSAgIChoZXgpCQlTaWduYWxpb24gR21iSAorMDAxRjg5ICAgICAoYmFzZSAxNikJCVNpZ25hbGlvbiBHbWJICisJCQkJU3VkaGF1c3dlZyA1CisJCQkJRHJlc2RlbiBTYXhvbnkgMDEwOTkKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLThBICAgKGhleCkJCUVsbGlvbiBEaWdpdGFsIEluYy4KKzAwMUY4QSAgICAgKGJhc2UgMTYpCQlFbGxpb24gRGlnaXRhbCBJbmMuCisJCQkJU3VpdGUgODA5LCBTaWNveCBUb3dlciwgNTEzLTE0LCBTYW5nZGFld29uLWRvbmcsIEp1bmd3b24tZ3UKKwkJCQlTdW5nbmFtLWNpdHkgS3lvbmdnaS1kbyA0MjYtNzI2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLThCICAgKGhleCkJCUNhY2hlIElRCiswMDFGOEIgICAgIChiYXNlIDE2KQkJQ2FjaGUgSVEKKwkJCQk4ODM0IE5vcnRoIENhcGl0YWwgb2YgVGV4YXMgSHd5CisJCQkJQXVzdGluIFRleGFzIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi04QyAgIChoZXgpCQlDQ1MgSW5jLgorMDAxRjhDICAgICAoYmFzZSAxNikJCUNDUyBJbmMuCisJCQkJU2hpbW9kYWNoaXVyaS1hZ2FydQorCQkJCUthcmFzdW1hLWRvcmksIEthbWlneW8ta3UKKwkJCQlLeW90byBLeW90byA2MDItODAxMQorCQkJCUpBUEFOCisKKzAwLTFGLThEICAgKGhleCkJCUluZ2VuaWV1cmJ1ZXJvIFN0YXJrIEdtYkggdW5kIEtvLiBLRworMDAxRjhEICAgICAoYmFzZSAxNikJCUluZ2VuaWV1cmJ1ZXJvIFN0YXJrIEdtYkggdW5kIEtvLiBLRworCQkJCVJ1ZG9sZi1EaWVzZWwtU3RyYXNzZSA0NAorCQkJCUxhaWNoaW5nZW4gQlcgODkxNTAKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLThFICAgKGhleCkJCU1ldHJpcyBVU0EgSW5jLgorMDAxRjhFICAgICAoYmFzZSAxNikJCU1ldHJpcyBVU0EgSW5jLgorCQkJCTEyNzAxIEdyYW5kIFJpdmVyCisJCQkJQnJpZ2h0b24gTUkgNDgxMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLThGICAgKGhleCkJCVNoYW5naGFpIEJlbGxtYW5uIERpZ2l0YWwgU291cmNlIENvLixMdGQuCiswMDFGOEYgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgQmVsbG1hbm4gRGlnaXRhbCBTb3VyY2UgQ28uLEx0ZC4KKwkJCQk0MDQtNDA4IE1haW4gQmQsIEZEVVNQLCBOby4xMSBHdW90YWkgUmQuCisJCQkJU2hhbmdoYWkgIDIwMDQzMworCQkJCUNISU5BCisKKzAwLTFGLTkwICAgKGhleCkJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jIAorMDAxRjkwICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jIAorCQkJCTc2MCBOb3J0aCBNYXJ5IEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOTEgICAoaGV4KQkJREJTIExvZGdpbmcgVGVjaG5vbG9naWVzLCBMTEMKKzAwMUY5MSAgICAgKGJhc2UgMTYpCQlEQlMgTG9kZ2luZyBUZWNobm9sb2dpZXMsIExMQworCQkJCTIxMTk2IExpbWJlcgorCQkJCU1pc3Npb24gVmllam8gQ0EgOTI2OTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTkyICAgKGhleCkJCVZpZGVvSVEsIEluYy4KKzAwMUY5MiAgICAgKGJhc2UgMTYpCQlWaWRlb0lRLCBJbmMuCisJCQkJMjEzIEJ1cmxpbmd0b24gUm9hZAorCQkJCVN1aXRlIDEwNAorCQkJCUJlZGZvcmQgTUEgMDE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTkzICAgKGhleCkJCVhpb3RlY2ggQ29ycG9yYXRpb24KKzAwMUY5MyAgICAgKGJhc2UgMTYpCQlYaW90ZWNoIENvcnBvcmF0aW9uCisJCQkJNjQ1NSBGbHlpbmcgQ2xvdWQgRHJpdmUKKwkJCQlFZGVuIFByYWlyaWUgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTk0ICAgKGhleCkJCUxhc2NhciBFbGVjdHJvbmljcyBMdGQKKzAwMUY5NCAgICAgKGJhc2UgMTYpCQlMYXNjYXIgRWxlY3Ryb25pY3MgTHRkCisJCQkJTW9kdWxlIEhvdXNlCisJCQkJV2hpdGVwYXJpc2gKKwkJCQlOciBTYWxpc2J1cnkgV2lsdHNoaXJlIFNQNSAyU0oKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0xRi05NSAgIChoZXgpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCiswMDFGOTUgICAgIChiYXNlIDE2KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorCQkJCTE0IFJ1ZSBQYXVsIERhdXRpZXIKKwkJCQlWZWxpenkgIDc4NDU3CisJCQkJRlJBTkNFCisKKzAwLTFGLTk2ICAgKGhleCkJCUFQUk9URUNIIENPLkxURAorMDAxRjk2ICAgICAoYmFzZSAxNikJCUFQUk9URUNIIENPLkxURAorCQkJCUtPTE9ORElHSVRBTCBUT1dFUiBBU1RPTiAyMDEsIDUwNS0xNAorCQkJCUdBU0FOLURPTkcsS1VNQ0hPTi1HVQorCQkJCVNFT1VMICBLU1hYIDAwMjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtOTcgICAoaGV4KQkJQkVSVEFOQSBTUkwKKzAwMUY5NyAgICAgKGJhc2UgMTYpCQlCRVJUQU5BIFNSTAorCQkJCVZJQUxFIEdBTElMRU8gRkVSUkFSSVMgMjcKKwkJCQlCUlVJTk8gVE9SSU5PIDEwMDkwCisJCQkJSVRBTFkKKworMDAtMUYtOTggICAoaGV4KQkJREFJSUNISS1ERU5UU1UgTFRELgorMDAxRjk4ICAgICAoYmFzZSAxNikJCURBSUlDSEktREVOVFNVIExURC4KKwkJCQlPT01PUkkgNjkwLTEKKwkJCQlLQU5JIEdJRlUgNTA5LTAyMzgKKwkJCQlKQVBBTgorCiswMC0xRi05OSAgIChoZXgpCQlTRVJPTklDUyBjby5sdGQKKzAwMUY5OSAgICAgKGJhc2UgMTYpCQlTRVJPTklDUyBjby5sdGQKKwkJCQkjNDAxIFRlY2hub3BvbGlzLAorCQkJCTcxMUhvc2FuLWRvbmcsIERhbHNlby1ndQorCQkJCURhZWd1IEd5ZW9uZy1idWsgNzA0LTIzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi05QSAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMUY5QSAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQkyMjIxIExha2VzaWRlIEJsdmQKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgyLTQzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTlCICAgKGhleCkJCVBPU0JSTworMDAxRjlCICAgICAoYmFzZSAxNikJCVBPU0JSTworCQkJCVNoaW55b3VuZ0d0b3dlciA2RiwgMjcxLTEKKwkJCQlTZW9oeXVuLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbS1zaSBLeXVuZ2dpLWRvIDQ2My04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtOUMgICAoaGV4KQkJTEVEQ08KKzAwMUY5QyAgICAgKGJhc2UgMTYpCQlMRURDTworCQkJCTQ3ODAxIFcgQW5jaG9yIENvdXJ0CisJCQkJUGx5bW91dGggTUkgNDgxNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLTlEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUY5RCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi05RSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDFGOUUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtOUYgICAoaGV4KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKzAwMUY5RiAgICAgKGJhc2UgMTYpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorCQkJCVByaW5zIEJvdWRld2lqbmxhYW4gNDcKKwkJCQlFZGVnZW0gQW50d2VycCBCLTI2NTAKKwkJCQlCRUxHSVVNCisKKzAwLTFGLUEwICAgKGhleCkJCUExMCBOZXR3b3JrcworMDAxRkEwICAgICAoYmFzZSAxNikJCUExMCBOZXR3b3JrcworCQkJCTIzMDkgQmVyaW5nIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUExICAgKGhleCkJCUd0cmFuIEluYworMDAxRkExICAgICAoYmFzZSAxNikJCUd0cmFuIEluYworCQkJCTI2NTEgTGF2ZXJ5IENvdXJ0CisJCQkJTmV3YnVyeSBQYXJrIENBIDkxMzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1BMiAgIChoZXgpCQlEYXRyb24gV29ybGQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMUZBMiAgICAgKGJhc2UgMTYpCQlEYXRyb24gV29ybGQgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkzMDMwIEVudGVycHJpc2UgQ291cnQKKwkJCQlWaXN0YSBDYWxpZm9ybmlhIDkyMDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1BMyAgIChoZXgpCQlUJlcgRWxlY3Ryb25pY3MoU2hlbnpoZW4pQ28uLEx0ZC4KKzAwMUZBMyAgICAgKGJhc2UgMTYpCQlUJlcgRWxlY3Ryb25pY3MoU2hlbnpoZW4pQ28uLEx0ZC4KKwkJCQkyRixCYWl5aW5nIEJ1aWxkaW5nLCBOby4xMDE5LAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwNjcKKwkJCQlDSElOQQorCiswMC0xRi1BNCAgIChoZXgpCQlTaGVuWmhlbiBHb25namluIEVsZWN0cm9uaWNzIENvLixMdGQKKzAwMUZBNCAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBHb25namluIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQk0RixCYWl5aW5nIEJ1aWxkaW5nLCBOby4xMDE5LE5hbmhhaSBSRCxTaGVrb3UsCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA2NworCQkJCUNISU5BCisKKzAwLTFGLUE1ICAgKGhleCkJCUJsdWUtV2hpdGUgSW5kdXN0cmllcworMDAxRkE1ICAgICAoYmFzZSAxNikJCUJsdWUtV2hpdGUgSW5kdXN0cmllcworCQkJCTUzMDAgQnVzaW5lc3MgRHJpdmUKKwkJCQlIdW50aW5ndG9uIEJlYWNoIENBIDkyNjQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1BNiAgIChoZXgpCQlTdGlsbyBzcmwKKzAwMUZBNiAgICAgKGJhc2UgMTYpCQlTdGlsbyBzcmwKKwkJCQlWaWEgQmVzYW5hLCA0CisJCQkJMjAxMjIgTWlsYW5vIAorCQkJCUlUQUxZCisKKzAwLTFGLUE3ICAgKGhleCkJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBJbmMuCiswMDFGQTcgICAgIChiYXNlIDE2KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50IEluYy4KKwkJCQkyLTYtMjEgTWluYW1pLUFveWFtYSwKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA3LTAwNjIKKwkJCQlKQVBBTgorCiswMC0xRi1BOCAgIChoZXgpCQlTbWFydCBFbmVyZ3kgSW5zdHJ1bWVudHMgSW5jLgorMDAxRkE4ICAgICAoYmFzZSAxNikJCVNtYXJ0IEVuZXJneSBJbnN0cnVtZW50cyBJbmMuCisJCQkJMjk3IExha2VzaG9yZSBSb2FkIEVhc3QKKwkJCQlVbml0IDEKKwkJCQlPYWt2aWxsZSBPbnRhcmlvIEw2SiAxSjMKKwkJCQlDQU5BREEKKworMDAtMUYtQTkgICAoaGV4KQkJQXRsYW50YSBEVEgsIEluYy4KKzAwMUZBOSAgICAgKGJhc2UgMTYpCQlBdGxhbnRhIERUSCwgSW5jLgorCQkJCTUzODggTmV3IFBlYWNodHJlZSBSZAorCQkJCUNoYW1ibGVlIEdBIDMwMzQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1BQSAgIChoZXgpCQlUYXNlb24sIEluYy4KKzAwMUZBQSAgICAgKGJhc2UgMTYpCQlUYXNlb24sIEluYy4KKwkJCQkgMzA5OSBOLiBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQUIgICAoaGV4KQkJSS5TIEhJR0ggVEVDSC5JTkMKKzAwMUZBQiAgICAgKGJhc2UgMTYpCQlJLlMgSElHSCBURUNILklOQworCQkJCTYwMy0xLFN1bmdib24tcmksRGFlc28tbXl1bgorCQkJCUV1bXN1bmctZ3VuIENodW5nY2hlb25nYnVrLWRvIDM2OS04MjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtQUMgICAoaGV4KQkJR29vZG1pbGwgU3lzdGVtcyBMdGQKKzAwMUZBQyAgICAgKGJhc2UgMTYpCQlHb29kbWlsbCBTeXN0ZW1zIEx0ZAorCQkJCVNpbmlrYWxsaW9udGllIDEwCisJCQkJRXNwb28gVXVzaW1hYSAwMjYzMAorCQkJCUZJTkxBTkQKKworMDAtMUYtQUQgICAoaGV4KQkJQnJvd24gSW5ub3ZhdGlvbnMsIEluYworMDAxRkFEICAgICAoYmFzZSAxNikJCUJyb3duIElubm92YXRpb25zLCBJbmMKKwkJCQkzNjkgQ29uZ3Jlc3MgU3RyZWV0CisJCQkJRm91cnRoIEZsb29yCisJCQkJQm9zdG9uIE1BIDAyMjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1BRSAgIChoZXgpCQlCbGljayBTb3V0aCBBZnJpY2EgKFB0eSkgTHRkCiswMDFGQUUgICAgIChiYXNlIDE2KQkJQmxpY2sgU291dGggQWZyaWNhIChQdHkpIEx0ZAorCQkJCVBPIEJveCAxOTA4CisJCQkJUml2b25pYQorCQkJCUpvaGFubmVzYnVyZyBHYXV0ZW5nIDIxMDgKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtMUYtQUYgICAoaGV4KQkJTmV4dElPLCBJbmMuCiswMDFGQUYgICAgIChiYXNlIDE2KQkJTmV4dElPLCBJbmMuCisJCQkJMTI0MDEgUmVzZWFyY2ggQmx2ZC4KKwkJCQlCbGRnLiAyIFN1aXRlIDIwMAorCQkJCUF1c3RpbiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQjAgICAoaGV4KQkJVGltZUlQUywgSW5jLgorMDAxRkIwICAgICAoYmFzZSAxNikJCVRpbWVJUFMsIEluYy4KKwkJCQkzNTIyIE4gQ29tb3RhcmEgU3QKKwkJCQlXaWNoaXRhIEtTIDY3MjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1CMSAgIChoZXgpCQlDeWJlcnRlY2ggSW5jLgorMDAxRkIxICAgICAoYmFzZSAxNikJCUN5YmVydGVjaCBJbmMuCisJCQkJOTM1IEhvcnNoYW0gUmQKKwkJCQlVbml0IEkKKwkJCQlIb3JzaGFtIFBBIDE5MDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1CMiAgIChoZXgpCQlTb250aGVpbSBJbmR1c3RyaWUgRWxla3Ryb25payBHbWJICiswMDFGQjIgICAgIChiYXNlIDE2KQkJU29udGhlaW0gSW5kdXN0cmllIEVsZWt0cm9uaWsgR21iSAorCQkJCURpZXNlbHN0cmFzc2UgNworCQkJCUtlbXB0ZW4gQWxsZ2FldSBCYXZhcmlhIEQtODc0MzcKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLUIzICAgKGhleCkJCTJXaXJlCiswMDFGQjMgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1CNCAgIChoZXgpCQlTbWFydFNoYXJlIFN5c3RlbXMKKzAwMUZCNCAgICAgKGJhc2UgMTYpCQlTbWFydFNoYXJlIFN5c3RlbXMKKwkJCQlUb2Jha3N2ZWplbiAyNSwgMS4gdGguCisJCQkJU29lYm9yZyAgREstMjg2MAorCQkJCURFTk1BUksKKworMDAtMUYtQjUgICAoaGV4KQkJSS9PIEludGVyY29ubmVjdCBJbmMuCiswMDFGQjUgICAgIChiYXNlIDE2KQkJSS9PIEludGVyY29ubmVjdCBJbmMuCisJCQkJMTIwMiBFIFdha2VoYW0gQXZlCisJCQkJU2FudGEgQW5hIENBIDkyNzA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1CNiAgIChoZXgpCQlDaGkgTGluIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDFGQjYgICAgIChiYXNlIDE2KQkJQ2hpIExpbiBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLjE4LCBTaGVuZyBMaSAxc3QgU3QuLCBKZW4gVGUgSHNpYW5nLAorCQkJCVRhaW5hbiBUYWl3YW4gNzE3NTgKKwkJCQlDSElOQQorCiswMC0xRi1CNyAgIChoZXgpCQlXaU1hdGUgVGVjaG5vbG9naWVzIENvcnAuCiswMDFGQjcgICAgIChiYXNlIDE2KQkJV2lNYXRlIFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCTE0QSBCdWlsZGluZyAyLCBHdWltaWFvIEdhcmRlbiwgTmFuZ3VhbmdsdSwgTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTQKKwkJCQlDSElOQQorCiswMC0xRi1COCAgIChoZXgpCQlVbml2ZXJzYWwgUmVtb3RlIENvbnRyb2wsIEluYy4KKzAwMUZCOCAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgUmVtb3RlIENvbnRyb2wsIEluYy4KKwkJCQk1MDAgTWFtYXJvbmVjayBBdmVudWUKKwkJCQlTdWl0ZSA1MDIKKwkJCQlIYXJyaXNvbiBOWSAxMDUyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQjkgICAoaGV4KQkJUGFsdHJvbmljcworMDAxRkI5ICAgICAoYmFzZSAxNikJCVBhbHRyb25pY3MKKwkJCQkxMTQ1IFBhbHRyb25pY3MgQ3QKKwkJCQlDcnlzdGFsIExha2UgSUwgNjAwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUJBICAgKGhleCkJCUJvWW91bmcgVGVjaC4gJiBNYXJrZXRpbmcsIEluYy4KKzAwMUZCQSAgICAgKGJhc2UgMTYpCQlCb1lvdW5nIFRlY2guICYgTWFya2V0aW5nLCBJbmMuCisJCQkJWW91bmdkZXVuZ3BvLUd1IE11bnJhZTNnYSA4NC0yCisJCQkJRG9uZ2d1ayBNZXJ0aWFuIDYwMgorCQkJCVNlb3VsICAxNTAtMDkzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLUJCICAgKGhleCkJCVhlbmF0ZWNoIENvLixMVEQKKzAwMUZCQiAgICAgKGJhc2UgMTYpCQlYZW5hdGVjaCBDby4sTFRECisJCQkJIDUxNC0yIFlhIFRhYi1Eb25nIEJ1biBEYW5nIEd1CisJCQkJU2VvbmcgbmFtc2kgR3lvbmcgZ2ktZG8gNDYzLTgzOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0xRi1CQyAgIChoZXgpCQlFVkdBIENvcnBvcmF0aW9uCiswMDFGQkMgICAgIChiYXNlIDE2KQkJRVZHQSBDb3Jwb3JhdGlvbgorCQkJCTI5MDAgU2F0dXJuIFN0LgorCQkJCVN1aXRlIEIKKwkJCQlCcmVhIENBIDkyODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1CRCAgIChoZXgpCQlLeW9jZXJhIFdpcmVsZXNzIENvcnAuCiswMDFGQkQgICAgIChiYXNlIDE2KQkJS3lvY2VyYSBXaXJlbGVzcyBDb3JwLgorCQkJCTEwMzAwIENhbXB1cyBQb2ludCBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtQkUgICAoaGV4KQkJU2hlbnpoZW4gTW9wbmV0IEluZHVzdHJpYWwgQ28uLEx0ZAorMDAxRkJFICAgICAoYmFzZSAxNikJCVNoZW56aGVuIE1vcG5ldCBJbmR1c3RyaWFsIENvLixMdGQKKwkJCQlGIDMuTm8uMyBLZXl1YW4gUmQuCisJCQkJU2hlbnpoZW4gTmFuc2hhbiBTY2llbmNlJkluZHVzdHJ5IFBhcmsKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMUYtQkYgICAoaGV4KQkJRnVsaHVhIE1pY3JvZWxlY3Ryb25pY3MgQ29ycC4gVGFpd2FuIEJyYW5jaAorMDAxRkJGICAgICAoYmFzZSAxNikJCUZ1bGh1YSBNaWNyb2VsZWN0cm9uaWNzIENvcnAuIFRhaXdhbiBCcmFuY2gKKwkJCQkxRiwgTm8uMTIsIFImRCBSb2FkLAorCQkJCVNjaWVuY2UtYmFzZWQgSW5kLiBQYXJrLAorCQkJCUhzaW4tQ2h1LCAzMDAgIDg4NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtQzAgICAoaGV4KQkJQ29udHJvbCBFeHByZXNzIEZpbmxhbmQgT3kKKzAwMUZDMCAgICAgKGJhc2UgMTYpCQlDb250cm9sIEV4cHJlc3MgRmlubGFuZCBPeQorCQkJCUxhaXRhYXRzaWxsYW50aWUgMworCQkJCVNhdm9ubGlubmEgIDU3MTcwCisJCQkJRklOTEFORAorCiswMC0xRi1DMSAgIChoZXgpCQlIYW5sb25nIFRlY2hub2xvZ3kgQ28uLExURAorMDAxRkMxICAgICAoYmFzZSAxNikJCUhhbmxvbmcgVGVjaG5vbG9neSBDby4sTFRECisJCQkJUk0uMjIyMCxCbG9jayBCLE5ldyBDZW50dXJ5IFBsYXphLDEgVGFpIFBpbmcgTmFuIFJvYWQsCisJCQkJTmFuamluZyBKaWFuZ3N1IDIxMDAwMgorCQkJCUNISU5BCisKKzAwLTFGLUMyICAgKGhleCkJCUpvdyBUb25nIFRlY2hub2xvZ3kgQ28gTHRkCiswMDFGQzIgICAgIChiYXNlIDE2KQkJSm93IFRvbmcgVGVjaG5vbG9neSBDbyBMdGQKKwkJCQk0NiBMYW5lIDMzNyBDaHVuZyBDaGVuZyBSZAorCQkJCVl1bmcgS2FuZyBDaXR5IFRhaW5hbiBDb3VudHkgNzEwNjYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLUMzICAgKGhleCkJCVNtYXJ0U3luY2gsIEluYworMDAxRkMzICAgICAoYmFzZSAxNikJCVNtYXJ0U3luY2gsIEluYworCQkJCTQ0MDAgT2xkIENhbnRvbiBSZAorCQkJCVN1aXRlIDMwMAorCQkJCUphY2tzb24gTVMgMzkyMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUM0ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorMDAxRkM0ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuIAorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUM1ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAxRkM1ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPIEtZT1RPIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMUYtQzYgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCiswMDFGQzYgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdSxUYWlwZWkgMTEyCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLUM3ICAgKGhleCkJCUNhc2lvIEhpdGFjaGkgTW9iaWxlIENvbXVuaWNhdGlvbnMgQ28uLCBMdGQuCiswMDFGQzcgICAgIChiYXNlIDE2KQkJQ2FzaW8gSGl0YWNoaSBNb2JpbGUgQ29tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQkyLTIyOS0xLCBTYWt1cmFnYW9rYQorCQkJCUhpZ2FzaGl5YW1hdG8tc2hpIFRva3lvIDIwNy04NTAxCisJCQkJSkFQQU4KKworMDAtMUYtQzggICAoaGV4KQkJVXAtVG9kYXkgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzAwMUZDOCAgICAgKGJhc2UgMTYpCQlVcC1Ub2RheSBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTcvRi4sIFVuaWZ5IENvbW1lcmNpYWwgJiBJbmR1c3RyaWFsIEJ1aWxkaW5nCisJCQkJMzEgVGFpIFlpcCBTdHJlZXQsIEt3dW4gVG9uZywKKwkJCQlLb3dsb29uICAKKwkJCQlIT05HIEtPTkcKKworMDAtMUYtQzkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAxRkM5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUNBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMUZDQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1DQiAgIChoZXgpCQlOSVcgU29sdXRpb25zCiswMDFGQ0IgICAgIChiYXNlIDE2KQkJTklXIFNvbHV0aW9ucworCQkJCVAuTy4gQm94IDYyCisJCQkJT25lIFRyZWUgSGlsbCBTb3V0aCBBdXN0cmFsaWEgNTExNAorCQkJCUFVU1RSQUxJQQorCiswMC0xRi1DQyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzAwMUZDQyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtQ0QgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworMDAxRkNEICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtQ0UgICAoaGV4KQkJUVRFQ0ggTExDCiswMDFGQ0UgICAgIChiYXNlIDE2KQkJUVRFQ0ggTExDCisJCQkJTm92b3phdm9kc2theWEgc3QuIDE4IGJ1aWxkLiAxCisJCQkJTW9zY293IE1vc2NvdyByZWdpb24gMTIxMzA5CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTFGLUNGICAgKGhleCkJCU1TSSBUZWNobm9sb2d5IEdtYkgKKzAwMUZDRiAgICAgKGJhc2UgMTYpCQlNU0kgVGVjaG5vbG9neSBHbWJICisJCQkJSGFuYXVlciBMYW5kc3RyYcODxbhlIDMyOC0zMzAKKwkJCQlGcmFua2Z1cnQgYW0gTWFpbiBIZXNzZW4gNjAzMTQKKwkJCQlHRVJNQU5ZCisKKzAwLTFGLUQwICAgKGhleCkJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCiswMDFGRDAgICAgIChiYXNlIDE2KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQlOby4yMTUsTmFuLVBpbmcgUm9hZCwKKwkJCQlQaW4tSmVuIFRhb3l1YW4gMzI0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi1EMSAgIChoZXgpCQlPUFRFWCBDTy4sTFRELgorMDAxRkQxICAgICAoYmFzZSAxNikJCU9QVEVYIENPLixMVEQuCisJCQkJNS04LTEyCisJCQkJT2dvdG8KKwkJCQlPdHN1IFNoaWdhIDUyMC0wMTAxCisJCQkJSkFQQU4KKworMDAtMUYtRDIgICAoaGV4KQkJQ09NTVRFQ0ggVEVDSE5PTE9HWSBNQUNBTyBDT01NRVJDSUFMIE9GRlNIT1JFIExURC4KKzAwMUZEMiAgICAgKGJhc2UgMTYpCQlDT01NVEVDSCBURUNITk9MT0dZIE1BQ0FPIENPTU1FUkNJQUwgT0ZGU0hPUkUgTFRELgorCQkJCTMxLFRBSSBZSVAgU1RSRUVULCA3L0YgS1dVTiBUT05HLAorCQkJCUtPV0xPT04sIEhPTkdLT05HIAorCQkJCUNISU5BCisKKzAwLTFGLUQzICAgKGhleCkJCVJJVkEgTmV0d29ya3MgSW5jLgorMDAxRkQzICAgICAoYmFzZSAxNikJCVJJVkEgTmV0d29ya3MgSW5jLgorCQkJCTU1NSBSaXZhIEF2ZQorCQkJCUVhc3QgQnJ1bnN3aWNrIE5KIDA4ODE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1ENCAgIChoZXgpCQk0SVBORVQsIElOQy4KKzAwMUZENCAgICAgKGJhc2UgMTYpCQk0SVBORVQsIElOQy4KKwkJCQkzODEyOSBDQU1CUklER0UgQ09VUlQKKwkJCQlGUkVNT05UIENBIDk0NTM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1ENSAgIChoZXgpCQlNSUNST1JJU0Mgcy5yLm8uCiswMDFGRDUgICAgIChiYXNlIDE2KQkJTUlDUk9SSVNDIHMuci5vLgorCQkJCURlbG5pY2thIDIyMgorCQkJCUppY2luIGtyYWxvdmVocmFkZWNreSBrcmFqIDUwNjAxCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworMDAtMUYtRDYgICAoaGV4KQkJU2hlbnpoZW4gQWxseXdsbAorMDAxRkQ2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEFsbHl3bGwKKwkJCQlLZWppeXVhbiBOYW5zaGFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTFGLUQ3ICAgKGhleCkJCVRFTEVSQUQgU0EKKzAwMUZENyAgICAgKGJhc2UgMTYpCQlURUxFUkFEIFNBCisJCQkJMiwgYXZlbnVlIGRlIGxhIGJ1dHRlIGF1eCBjYWlsbGVzCisJCQkJQU5HTEVUICA2NDYwMAorCQkJCUZSQU5DRQorCiswMC0xRi1EOCAgIChoZXgpCQlBLVRSVVNUIENPTVBVVEVSIENPUlBPUkFUSU9OCiswMDFGRDggICAgIChiYXNlIDE2KQkJQS1UUlVTVCBDT01QVVRFUiBDT1JQT1JBVElPTgorCQkJCTNGLiwgTk8uMzYxLCBGVVNJTkcgMVNUIFJELiwgR1VFSVNIQU4gVE9XTlNISVAsCisJCQkJVEFPWVVBTiAgMzMzNzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLUQ5ICAgKGhleCkJCVJTRCBDb21tdW5pY2F0aW9ucyBMdGQKKzAwMUZEOSAgICAgKGJhc2UgMTYpCQlSU0QgQ29tbXVuaWNhdGlvbnMgTHRkCisJCQkJOCBCb3Jyb3dtZWFkb3cgUm9hZAorCQkJCVNwcmluZ2tlcnNlIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJU3RpcmxpbmcgU2NvdGxhbmQgRks3IDdVVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTFGLURBICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAxRkRBICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTIyMjEgTGFrZXNpZGUgQmx2ZAorCQkJCVJpY2hhcmRzb24gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLURCICAgKGhleCkJCU5ldHdvcmsgU3VwcGx5IENvcnAuLAorMDAxRkRCICAgICAoYmFzZSAxNikJCU5ldHdvcmsgU3VwcGx5IENvcnAuLAorCQkJCTE5MzggTkFLQURBSVJBIEtBTkFFCisJCQkJSUlEQSBOQUdBTk8gMzk1LTA4MDEKKwkJCQlKQVBBTgorCiswMC0xRi1EQyAgIChoZXgpCQlNb2JpbGUgU2FmZSBUcmFjayBMdGQKKzAwMUZEQyAgICAgKGJhc2UgMTYpCQlNb2JpbGUgU2FmZSBUcmFjayBMdGQKKwkJCQlOaWVtZW5rYXR1IDczCisJCQkJMTUxNDkgTGFodGkgCisJCQkJRklOTEFORAorCiswMC0xRi1ERCAgIChoZXgpCQlHREkgTExDCiswMDFGREQgICAgIChiYXNlIDE2KQkJR0RJIExMQworCQkJCU9uZSBNaWRBbWVyaWNhIFBsYXphCisJCQkJU3VpdGUgMTAxMAorCQkJCU9ha2Jyb29rIFRlcnJhY2UgSUwgNjAxODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLURFICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFGREUgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTFGLURGICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDFGREYgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTFGLUUwICAgKGhleCkJCUVkZ2VWZWxvY2l0eSBDb3JwCiswMDFGRTAgICAgIChiYXNlIDE2KQkJRWRnZVZlbG9jaXR5IENvcnAKKwkJCQkzIEJvdXJib24gU3RyZWV0CisJCQkJUGVhYm9keSBNQSAwMTk2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtRTEgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMUZFMSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCTY2LCBDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLUUyICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCiswMDFGRTIgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKwkJCQk2NiwgQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0xRi1FMyAgIChoZXgpCQlMRyBFbGVjdHJvbmljcworMDAxRkUzICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzCisJCQkJNjAtMzksS2FzYW4tZG9uZyxLdW1jaG9uLWt1LAorCQkJCVNlb3VsICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTFGLUU0ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCiswMDFGRTQgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTa8OlbmUgMjIxODgKKwkJCQlTV0VERU4KKworMDAtMUYtRTUgICAoaGV4KQkJSW4tQ2lyY3VpdCBHbWJICiswMDFGRTUgICAgIChiYXNlIDE2KQkJSW4tQ2lyY3VpdCBHbWJICisJCQkJS8O2bmlnc2Jyw7xja2VyIFN0cmFzc2UgNjkKKwkJCQlEcmVzZGVuICAwMTA5OQorCQkJCUdFUk1BTlkKKworMDAtMUYtRTYgICAoaGV4KQkJQWxwaGlvbiBDb3Jwb3JhdGlvbgorMDAxRkU2ICAgICAoYmFzZSAxNikJCUFscGhpb24gQ29ycG9yYXRpb24KKwkJCQkxOTYgUHJpbmNldG9uIEhpZ2h0c3Rvd24gUm9hZAorCQkJCVN1aXRlIDFBCisJCQkJUHJpbmNldG9uIEp1bmN0aW9uIE5ldyBKZXJzZXkgMDg1NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUU3ICAgKGhleCkJCVNpbWV0CiswMDFGRTcgICAgIChiYXNlIDE2KQkJU2ltZXQKKwkJCQlTdHJhZGEgZGVsIFBvcnRvbmUgMTI5CisJCQkJR3J1Z2xpYXNjbyBUb3Jpbm8gMTAwOTUKKwkJCQlJVEFMWQorCiswMC0xRi1FOCAgIChoZXgpCQlLVVJVU1VHQVdBIEVsZWN0cm9uaWNzIEluZHVzdHJ5IEluYywuCiswMDFGRTggICAgIChiYXNlIDE2KQkJS1VSVVNVR0FXQSBFbGVjdHJvbmljcyBJbmR1c3RyeSBJbmMsLgorCQkJCTJGLCA1Mi01LCBOb2dhdGEgNmNob21lCisJCQkJTmFrYW5vLUt1IFRPS1lPIDE2NS0wMDI3CisJCQkJSkFQQU4KKworMDAtMUYtRTkgICAoaGV4KQkJUHJpbnRyZXgsIEluYy4KKzAwMUZFOSAgICAgKGJhc2UgMTYpCQlQcmludHJleCwgSW5jLgorCQkJCTI3NiBFYXN0IEdpc2ggUm9hZAorCQkJCVNhbiBKb3NlIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1FQSAgIChoZXgpCQlBcHBsaWVkIE1lZGlhIFRlY2hub2xvZ2llcyBDb3Jwb3JhdGlvbgorMDAxRkVBICAgICAoYmFzZSAxNikJCUFwcGxpZWQgTWVkaWEgVGVjaG5vbG9naWVzIENvcnBvcmF0aW9uCisJCQkJNDA5MSBBTVRDIENlbnRlciBEcml2ZQorCQkJCUNsZWFyd2F0ZXIgRkwgMzM3NjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUVCICAgKGhleCkJCVRyaW8gRGF0YWNvbSBQdHkgTHRkCiswMDFGRUIgICAgIChiYXNlIDE2KQkJVHJpbyBEYXRhY29tIFB0eSBMdGQKKwkJCQk0MSBBc3RlciBBdmVudWUKKwkJCQlDYXJydW0gRG93bnMgVmljdG9yaWEgMzIwMQorCQkJCUFVU1RSQUxJQQorCiswMC0xRi1FQyAgIChoZXgpCQlTeW5hcHNlIMOpbGVjdHJvbmlxdWUKKzAwMUZFQyAgICAgKGJhc2UgMTYpCQlTeW5hcHNlIMOpbGVjdHJvbmlxdWUKKwkJCQkxMDEwLCA3ZSBBdmVudWUKKwkJCQlHcmFuZC1Nw6hyZSBRdcOpYmVjIEc5VCAyQjgKKwkJCQlDQU5BREEKKworMDAtMUYtRUQgICAoaGV4KQkJVGVjYW4gU3lzdGVtcyBJbmMuCiswMDFGRUQgICAgIChiYXNlIDE2KQkJVGVjYW4gU3lzdGVtcyBJbmMuCisJCQkJMjQ1MCBaYW5rZXIgUm9hZAorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0xRi1FRSAgIChoZXgpCQl1YmlzeXMgdGVjaG5vbG9naWVzIEdtYkgKKzAwMUZFRSAgICAgKGJhc2UgMTYpCQl1YmlzeXMgdGVjaG5vbG9naWVzIEdtYkgKKwkJCQlBbSBXZWhyaGFobiA0NQorCQkJCUTDvHNzZWxkb3JmIE5SVyA0MDIxMQorCQkJCUdFUk1BTlkKKworMDAtMUYtRUYgICAoaGV4KQkJU0hJTlNFSSBJTkRVU1RSSUVTIENPLixMVEQKKzAwMUZFRiAgICAgKGJhc2UgMTYpCQlTSElOU0VJIElORFVTVFJJRVMgQ08uLExURAorCQkJCTQtMTItMTUsSE9SSUZVTkUsIEtJVEEtS1UsCisJCQkJVE9LT1lPICAxMTQtMDAwNAorCQkJCUpBUEFOCisKKzAwLTFGLUYwICAgKGhleCkJCUF1ZGlvIFBhcnRuZXJzaGlwCiswMDFGRjAgICAgIChiYXNlIDE2KQkJQXVkaW8gUGFydG5lcnNoaXAKKwkJCQlHYWxsZXJ5IENvdXJ0CisJCQkJSGFua2V5IFBsYWNlCisJCQkJTG9uZG9uICBTRTEgNEJCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMUYtRjEgICAoaGV4KQkJUGFyYWRveCBIZWxsYXMgUy5BLgorMDAxRkYxICAgICAoYmFzZSAxNikJCVBhcmFkb3ggSGVsbGFzIFMuQS4KKwkJCQkzIEtvcmludGhveSBTdAorCQkJCU1ldGFtb3Jmb3NpCisJCQkJQXRoZW5zIEF0dGlraSAxNDQ1MQorCQkJCUdSRUVDRQorCiswMC0xRi1GMiAgIChoZXgpCQlWSUEgVGVjaG5vbG9naWVzLCBJbmMuCiswMDFGRjIgICAgIChiYXNlIDE2KQkJVklBIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTFGLCA1MzEsIENodW5nLUNoZW5nIFJvYWQKKwkJCQlIc2luLVRpZW4gVGFpcGVpIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMUYtRjMgICAoaGV4KQkJQXBwbGUsIEluYworMDAxRkYzICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUY0ICAgKGhleCkJCVBvd2VyIE1vbml0b3JzLCBJbmMuCiswMDFGRjQgICAgIChiYXNlIDE2KQkJUG93ZXIgTW9uaXRvcnMsIEluYy4KKwkJCQk4MDAgTm9ydGggTWFpbiBTdHJlZXQKKwkJCQlNdC4gQ3Jhd2ZvcmQgVmlyZ2luaWEgMjI4NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUY1ICAgKGhleCkJCUtvbmdzYmVyZyBEZWZlbmNlICYgQWVyb3NwYWNlCiswMDFGRjUgICAgIChiYXNlIDE2KQkJS29uZ3NiZXJnIERlZmVuY2UgJiBBZXJvc3BhY2UKKwkJCQlPbGF2IEJydW5ib3JncyB2ZWkgNgorCQkJCUJpbGxpbmdzdGFkICAxMzk2CisJCQkJTk9SV0FZCisKKzAwLTFGLUY2ICAgKGhleCkJCVBTIEF1ZGlvIEludGVybmF0aW9uYWwKKzAwMUZGNiAgICAgKGJhc2UgMTYpCQlQUyBBdWRpbyBJbnRlcm5hdGlvbmFsCisJCQkJNDgyNiBTdGVybGluZyBEcml2ZQorCQkJCUJvdWxkZXIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUY3ICAgKGhleCkJCU5ha2FqaW1hIEFsbCBQcmVjaXNpb24gQ28uLCBMdGQuCiswMDFGRjcgICAgIChiYXNlIDE2KQkJTmFrYWppbWEgQWxsIFByZWNpc2lvbiBDby4sIEx0ZC4KKwkJCQlLYW1pLUdvbXlvMTQ4MAorCQkJCVNha2FraS1NYWNoaQorCQkJCUhhbmlzaGluYS1HdW4gTmFnYW5vLUtlbiAzODktMDYwNgorCQkJCUpBUEFOCisKKzAwLTFGLUY4ICAgKGhleCkJCVNpZW1lbnMgQUcsIFNlY3RvciBJbmR1c3RyeSwgRHJpdmUgVGVjaG5vbG9naWVzLCBNb3Rpb24gQ29udHJvbCBTeXN0ZW1zCiswMDFGRjggICAgIChiYXNlIDE2KQkJU2llbWVucyBBRywgU2VjdG9yIEluZHVzdHJ5LCBEcml2ZSBUZWNobm9sb2dpZXMsIE1vdGlvbiBDb250cm9sIFN5c3RlbXMKKwkJCQlGcmF1ZW5hdXJhY2hlcnN0cmFzc2UgODAKKwkJCQlFcmxhbmdlbiBCYXZhcmlhIDkxMDU2CisJCQkJR0VSTUFOWQorCiswMC0xRi1GOSAgIChoZXgpCQlBZHZhbmNlZCBLbm93bGVkZ2UgQXNzb2NpYXRlcworMDAxRkY5ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIEtub3dsZWRnZSBBc3NvY2lhdGVzCisJCQkJMzM1MCBTY290dCBCbHZkLCBTdWl0ZSA0MAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0LTMxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTFGLUZBICAgKGhleCkJCUNvcmV0cmVlLCBDbywgTHRkCiswMDFGRkEgICAgIChiYXNlIDE2KQkJQ29yZXRyZWUsIENvLCBMdGQKKwkJCQkjNTAyIElUIFZlbnR1cmUgVG93biwgNjk0CisJCQkJVGFwcmliLWRvbmcsIFl1c3VuZy1HdQorCQkJCURhZWplb24gIDMwNS01MTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMUYtRkIgICAoaGV4KQkJR3JlZW4gUGFja2V0IEJoZAorMDAxRkZCICAgICAoYmFzZSAxNikJCUdyZWVuIFBhY2tldCBCaGQKKwkJCQlMb3QgMS00LCBJbmN1YmF0b3IgMiwgVGVjaG5vbG9neSBQYXJrIE1hbGF5c2lhCisJCQkJTGVidWhyYXlhIFB1Y2hvbmcgLSBTZyBCZXNpLCBCdWtpdCBKYWxpbAorCQkJCUt1YWxhIEx1bXB1ciBXaWxheWFoIFBlcnNla3V0dWFuIDU3MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMUYtRkMgICAoaGV4KQkJUmljY2l1cytTb2huIEdtYkgKKzAwMUZGQyAgICAgKGJhc2UgMTYpCQlSaWNjaXVzK1NvaG4gR21iSAorCQkJCUhheW5hdWVyIFN0ci4gNDkKKwkJCQlCZXJsaW4gIDEyMjQ5CisJCQkJR0VSTUFOWQorCiswMC0xRi1GRCAgIChoZXgpCQlJbmRpZ28gTW9iaWxlIFRlY2hub2xvZ2llcyBDb3JwLgorMDAxRkZEICAgICAoYmFzZSAxNikJCUluZGlnbyBNb2JpbGUgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJMTFGLCBObzIyLCBMYW40MDcsVGlEaW5nIEJsdmQgU2VjdGlvbjIsIE5laWh1IFRlY2hub2xvZ3kgUGFyaworCQkJCVRhaXBlaSBDaXR5ICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTFGLUZFICAgKGhleCkJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKzAwMUZGRSAgICAgKGJhc2UgMTYpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCisJCQkJODAwMCBGb290aGlsbHMgQmx2ZAorCQkJCVJvc2V2aWxsZSBDQSA5NTc0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMUYtRkYgICAoaGV4KQkJUmVzcGlyb25pY3MsIEluYy4KKzAwMUZGRiAgICAgKGJhc2UgMTYpCQlSZXNwaXJvbmljcywgSW5jLgorCQkJCTE3NDAgR29sZGVuIE1pbGUgSGlnaHdheQorCQkJCU1vbnJvZXZpbGxlIFBBIDE1MTQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0wMCAgIChoZXgpCQlMRVhNQVJLIElOVEVSTkFUSU9OQUwsIElOQy4KKzAwMjAwMCAgICAgKGJhc2UgMTYpCQlMRVhNQVJLIElOVEVSTkFUSU9OQUwsIElOQy4KKwkJCQk3NDAgTkVXIENJUkNMRSBST0FECisJCQkJQkxERy4gMzUKKwkJCQlMRVhJTkdUT04gS1kgNDA1NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTAxICAgKGhleCkJCURTUCBTT0xVVElPTlMsIElOQy4KKzAwMjAwMSAgICAgKGJhc2UgMTYpCQlEU1AgU09MVVRJT05TLCBJTkMuCisJCQkJMjQ2NCBFTUJBUkNBREVSTyBXQVkKKwkJCQlQQUxPIEFMVE8gQ0EgOTQzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTAyICAgKGhleCkJCVNFUklURUNIIEVOVEVSUFJJU0UgQ08uLCBMVEQuCiswMDIwMDIgICAgIChiYXNlIDE2KQkJU0VSSVRFQ0ggRU5URVJQUklTRSBDTy4sIExURC4KKwkJCQlGTC4gMTgyLCBOTy4gNTMxLTEKKwkJCQlDSFVORyBDSEVORyBST0FEIEhTSU4gVElFTiBDSVRZCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLTAzICAgKGhleCkJCVBJWEVMIFBPV0VSIExURC4KKzAwMjAwMyAgICAgKGJhc2UgMTYpCQlQSVhFTCBQT1dFUiBMVEQuCisJCQkJVW5pdCA1IENvbGxlZ2UgQnVzaW5lc3MgUGFyaworCQkJCUNvbGRoYW1zIExhbmUKKwkJCQlDQU1CUklER0UgIENCMSAzSEQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC0wNCAgIChoZXgpCQlZQU1BVEFLRS1IT05FWVdFTEwgQ08uLCBMVEQuCiswMDIwMDQgICAgIChiYXNlIDE2KQkJWUFNQVRBS0UtSE9ORVlXRUxMIENPLiwgTFRELgorCQkJCTU0IFNVWlVLQVdBLCBJU0VIQVJBCisJCQkJS0FOQUdBV0EgMjU5LTExICAKKwkJCQlKQVBBTgorCiswMC0yMC0wNSAgIChoZXgpCQlTSU1QTEUgVEVDSE5PTE9HWQorMDAyMDA1ICAgICAoYmFzZSAxNikJCVNJTVBMRSBURUNITk9MT0dZCisJCQkJMzAwMSBEQUlNTEVSIFJPQUQKKwkJCQlTQU5UQSBBTkEgQ0EgOTI3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTA2ICAgKGhleCkJCUdBUlJFVFQgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMjAwNiAgICAgKGJhc2UgMTYpCQlHQVJSRVRUIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJNDg1MzEgV0FSTVNQUklOR1MgQkxWRC4KKwkJCQlGUkVNT05UIENBIDk0NTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0wNyAgIChoZXgpCQlTRkEsIElOQy4KKzAwMjAwNyAgICAgKGJhc2UgMTYpCQlTRkEsIElOQy4KKwkJCQkxNDAxIE1DQ09STUlDSyBEUklWRQorCQkJCUxBTkRPVkVSIE1EIDIwNzg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0wOCAgIChoZXgpCQlDQUJMRSAmIENPTVBVVEVSIFRFQ0hOT0xPR1kKKzAwMjAwOCAgICAgKGJhc2UgMTYpCQlDQUJMRSAmIENPTVBVVEVSIFRFQ0hOT0xPR1kKKwkJCQkxNTU1IFNPLiBTSU5DTEFJUiBTVFJFRVQKKwkJCQlBTkFIRUlNIENBIDkyODA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0wOSAgIChoZXgpCQlQQUNLQVJEIEJFTEwgRUxFQy4sIElOQy4KKzAwMjAwOSAgICAgKGJhc2UgMTYpCQlQQUNLQVJEIEJFTEwgRUxFQy4sIElOQy4KKwkJCQk5NDI1IENBTk9HQSBBVkVOVUUKKwkJCQlDSEFUU1dPUlRIIENBIDkxMzIxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMEEgICAoaGV4KQkJU09VUkNFLUNPTU0gQ09SUC4KKzAwMjAwQSAgICAgKGJhc2UgMTYpCQlTT1VSQ0UtQ09NTSBDT1JQLgorCQkJCTI1MDIwIFcuIEFWRU5VRSBTVEFORk9SRAorCQkJCVVOSVQgMTgwCisJCQkJVkFMRU5DSUEgQ0EgOTEzNTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTBCICAgKGhleCkJCU9DVEFHT04gU1lTVEVNUyBDT1JQLgorMDAyMDBCICAgICAoYmFzZSAxNikJCU9DVEFHT04gU1lTVEVNUyBDT1JQLgorCQkJCTY1MTAgVy4gOTFTVCBBVkVOVUUKKwkJCQlXRVNUTUlOU1RFUiBDTyA4MDAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMEMgICAoaGV4KQkJQURBU1RSQSBTWVNURU1TIENPUlAuCiswMDIwMEMgICAgIChiYXNlIDE2KQkJQURBU1RSQSBTWVNURU1TIENPUlAuCisJCQkJMjgzMTAgSU5EVVNUUklBTCBCTFZELi1TVEUtSworCQkJCUhBWVdBUkQgQ0EgOTQ1NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTBEICAgKGhleCkJCUNBUkwgWkVJU1MKKzAwMjAwRCAgICAgKGJhc2UgMTYpCQlDQVJMIFpFSVNTCisJCQkJUE9TVEZBQ0ggMTM4MAorCQkJCUFCVC4gIDEtRUwgNzM0NDQgT0JFUktPQ0hFTgorCQkJCUdFUk1BTlkKKworMDAtMjAtMEUgICAoaGV4KQkJU0FURUxMSVRFIFRFQ0hOT0xPR1kgTUdNVCwgSU5DCiswMDIwMEUgICAgIChiYXNlIDE2KQkJU0FURUxMSVRFIFRFQ0hOT0xPR1kgTUdNVCwgSU5DCisJCQkJMzUzMCBIWUxBTkQgQVZFTlVFCisJCQkJQ09TVEEgTUVTQSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMEYgICAoaGV4KQkJVEFOQkFDIENPLiwgTFRELgorMDAyMDBGICAgICAoYmFzZSAxNikJCVRBTkJBQyBDTy4sIExURC4KKwkJCQlTQUtVUkFJIERBSSAyIEJHCisJCQkJMjctNCBJUklZQSAxLUNIT01FIFRBSVRPLUtVIFRPS1lPIDExMAorCQkJCUpBUEFOCisKKzAwLTIwLTEwICAgKGhleCkJCUpFT0wgU1lTVEVNIFRFQ0hOT0xPR1kgQ08uIExURAorMDAyMDEwICAgICAoYmFzZSAxNikJCUpFT0wgU1lTVEVNIFRFQ0hOT0xPR1kgQ08uIExURAorCQkJCTMtMS0yIE11c2FzaGlubworCQkJCUFraXNoaW1hLXNoaSBUb2t5byAxOTYtODU1OAorCQkJCUpBUEFOCisKKzAwLTIwLTExICAgKGhleCkJCUNBTk9QVVMgQ08uLCBMVEQuCiswMDIwMTEgICAgIChiYXNlIDE2KQkJQ0FOT1BVUyBDTy4sIExURC4KKwkJCQlLT0JFIEhJLVRFQ0ggUEFSSworCQkJCTEtMi0yIE1VUk9UQU5JIE5JU0hJLUtVIEtPQkUKKwkJCQk2NTEtMjIgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0yMC0xMiAgIChoZXgpCQlDQU1UUk9OSUNTIE1FRElDQUwgU1lTVEVNUworMDAyMDEyICAgICAoYmFzZSAxNikJCUNBTVRST05JQ1MgTUVESUNBTCBTWVNURU1TCisJCQkJUC5PLiBCT1ggOTUwCisJCQkJSEFSVExBTkQgV0kgNTMwMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTEzICAgKGhleCkJCURJVkVSU0lGSUVEIFRFQ0hOT0xPR1ksIElOQy4KKzAwMjAxMyAgICAgKGJhc2UgMTYpCQlESVZFUlNJRklFRCBURUNITk9MT0dZLCBJTkMuCisJCQkJMTEyIEUuIFNUQVRFIFNUUkVFVAorCQkJCVJJREdFTEFORCBNUyAzOTE1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMTQgICAoaGV4KQkJR0xPQkFMIFZJRVcgQ08uLCBMVEQuCiswMDIwMTQgICAgIChiYXNlIDE2KQkJR0xPQkFMIFZJRVcgQ08uLCBMVEQuCisJCQkJNEYsIE5PLiAyMywgTEFORSAzMDYKKwkJCQlGVS1URUggMSBSRC4gSFNJLUNISUgsIFRBSVBFSSwgSFNJRU4KKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMC0xNSAgIChoZXgpCQlBQ1RJUyBDT01QVVRFUiBTQQorMDAyMDE1ICAgICAoYmFzZSAxNikJCUFDVElTIENPTVBVVEVSIFNBCisJCQkJMTYgQ0hFTUlOIERFUyBBVUxYCisJCQkJMTIyOCBQTEFOIExFUyBPVkFURVMKKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTIwLTE2ICAgKGhleCkJCVNIT1dBIEVMRUNUUklDIFdJUkUgJiBDQUJMRSBDTworMDAyMDE2ICAgICAoYmFzZSAxNikJCVNIT1dBIEVMRUNUUklDIFdJUkUgJiBDQUJMRSBDTworCQkJCU5PLiAyMC0yNSwgU0VJU0hJTiA4LUNIT01FCisJCQkJU0FHQU1JSEFSQSwgS0FOQUdBV0EKKwkJCQkyMjkgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0yMC0xNyAgIChoZXgpCQlPUkJPVEVDSAorMDAyMDE3ICAgICAoYmFzZSAxNikJCU9SQk9URUNICisJCQkJSU5EVVNUUklBTCBaT05FCisJCQkJUC5PLiBCT1ggMjE1IDcwNjUxICBZQVZORQorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0yMC0xOCAgIChoZXgpCQlDSVMgVEVDSE5PTE9HWSBJTkMuCiswMDIwMTggICAgIChiYXNlIDE2KQkJQ0lTIFRFQ0hOT0xPR1kgSU5DLgorCQkJCUZMLiA5LTEsIE5PLiA5NCwgUEFPIENIVU5HIFJELgorCQkJCUhTSU4gVElFTiBDSVRZCisJCQkJVEFJUEVJIEhTSUVOICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLTE5ICAgKGhleCkJCU9ITEVSIEdtYkgKKzAwMjAxOSAgICAgKGJhc2UgMTYpCQlPSExFUiBHbWJICisJCQkJTUFZQkFDSFNUUkFTRSAzMAorCQkJCTcxMzMyIFdBSUJMSU5HRU4gIAorCQkJCUdFUk1BTlkKKworMDAtMjAtMUEgICAoaGV4KQkJTVJWIENvbW11bmljYXRpb25zLCBJbmMuCiswMDIwMUEgICAgIChiYXNlIDE2KQkJTVJWIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMjA0MTUgTm9yZGhvZmYgU3QuCisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMUIgICAoaGV4KQkJTk9SVEhFUk4gVEVMRUNPTS9ORVRXT1JLCiswMDIwMUIgICAgIChiYXNlIDE2KQkJTk9SVEhFUk4gVEVMRUNPTS9ORVRXT1JLCisJCQkJU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCTI1MCBTSURORVkgU1RSRUVUIEJFTExFVklMTEUsIE9OVEFSSU8KKwkJCQlLOE4gNUI3CisJCQkJQ0FOQURBCisKKzAwLTIwLTFDICAgKGhleCkJCUVYQ0VMLCBJTkMuCiswMDIwMUMgICAgIChiYXNlIDE2KQkJRVhDRUwsIElOQy4KKwkJCQkzNTUgT0xEIFBMWU1PVVRIIFJPQUQKKwkJCQlTQUdBTU9SRSBCRUFDSCBNQSAwMjU2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMUQgICAoaGV4KQkJS0FUQU5BIFBST0RVQ1RTCiswMDIwMUQgICAgIChiYXNlIDE2KQkJS0FUQU5BIFBST0RVQ1RTCisJCQkJVEhFIFNUVURJTywgUVVBUlJZIEhJTEwgQk9YLAorCQkJCVdJTFRTSElSRSBTTjE0IDlIVCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtMUUgICAoaGV4KQkJTkVUUVVFU1QgQ09SUE9SQVRJT04KKzAwMjAxRSAgICAgKGJhc2UgMTYpCQlORVRRVUVTVCBDT1JQT1JBVElPTgorCQkJCTUyMyBGRUxMT1dTSElQIFJPQUQtU1RFLiMyMDUKKwkJCQlNVC4gTEFVUkVMIE5KIDA4MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0xRiAgIChoZXgpCQlCRVNUIFBPV0VSIFRFQ0hOT0xPR1ksIElOQy4KKzAwMjAxRiAgICAgKGJhc2UgMTYpCQlCRVNUIFBPV0VSIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQlQLk8uIEJPWCAyODAKKwkJCQlORUNFREFIIFdJIDU0NjQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0yMCAgIChoZXgpCQlNRUdBVFJPTiBDT01QVVRFUiBJTkRVU1RSSUVTIFBUWSwgTFRELgorMDAyMDIwICAgICAoYmFzZSAxNikJCU1FR0FUUk9OIENPTVBVVEVSIElORFVTVFJJRVMgUFRZLCBMVEQuCisJCQkJCisJCQkJVU5JVCAyLCAgNjItNjQgQ0hBUlRFUiBTVFJFRVQgUklOR1dPT0QgVgorCQkJCUFVU1RSQUxJQQorCiswMC0yMC0yMSAgIChoZXgpCQlBTEdPUklUSE1TIFNPRlRXQVJFIFBWVC4gTFRELgorMDAyMDIxICAgICAoYmFzZSAxNikJCUFMR09SSVRITVMgU09GVFdBUkUgUFZULiBMVEQuCisJCQkJODMgSk9MTFkgTUFLRVIgQ0hBTUJFUlMgSUkKKwkJCQlOQVJJTUFOIFBPSU5UIEJPTUJBWSAgNDAwMDIxCisJCQkJSU5ESUEKKwkJCQlJTkRJQQorCiswMC0yMC0yMiAgIChoZXgpCQlOTVMgQ29tbXVuaWNhdGlvbnMKKzAwMjAyMiAgICAgKGJhc2UgMTYpCQlOTVMgQ29tbXVuaWNhdGlvbnMKKwkJCQkxMDAgQ3Jvc3NpbmcgQm91bGV2YXJkCisJCQkJRnJhbWluZ2hhbSBNQSAwMTcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMjMgICAoaGV4KQkJVC5DLiBURUNITk9MT0dJRVMgUFRZLiBMVEQKKzAwMjAyMyAgICAgKGJhc2UgMTYpCQlULkMuIFRFQ0hOT0xPR0lFUyBQVFkuIExURAorCQkJCTYvNjAgRkFJUkZPUkQgUkQuCisJCQkJUEFEU1RPVyAgTlNXMjIxMQorCQkJCUFVU1RSQUxJQQorCiswMC0yMC0yNCAgIChoZXgpCQlQQUNJRklDIENPTU1VTklDQVRJT04gU0NJRU5DRVMKKzAwMjAyNCAgICAgKGJhc2UgMTYpCQlQQUNJRklDIENPTU1VTklDQVRJT04gU0NJRU5DRVMKKwkJCQk5NjQ1IFNDUkFOVE9OIFJPQUQKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTI1ICAgKGhleCkJCUNPTlRST0wgVEVDSE5PTE9HWSwgSU5DLgorMDAyMDI1ICAgICAoYmFzZSAxNikJCUNPTlRST0wgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTU3MzQgTUlERExFQlJPT0sgUElLRQorCQkJCUtOT1hWSUxMRSBUTiAzNzkyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMjYgICAoaGV4KQkJQU1LTFkgU1lTVEVNUywgSU5DLgorMDAyMDI2ICAgICAoYmFzZSAxNikJCUFNS0xZIFNZU1RFTVMsIElOQy4KKwkJCQkxNTgwMSBST0NLRklFTEQgQkxWRC4sICNQCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0yNyAgIChoZXgpCQlNSU5HIEZPUlRVTkUgSU5EVVNUUlkgQ08uLCBMVEQKKzAwMjAyNyAgICAgKGJhc2UgMTYpCQlNSU5HIEZPUlRVTkUgSU5EVVNUUlkgQ08uLCBMVEQKKwkJCQk0RiwgTk8uIDgwMCBDSFVORyBDSEVORyBSRCwKKwkJCQlDSFVORyBITyBDSVRZLCBUQUlQRUkgSFNJRU4KKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjAtMjggICAoaGV4KQkJV0VTVCBFR0cgU1lTVEVNUywgSU5DLgorMDAyMDI4ICAgICAoYmFzZSAxNikJCVdFU1QgRUdHIFNZU1RFTVMsIElOQy4KKwkJCQk2NSBISUdIIFJJREdFIFJPQUQtU1RFLiMyODYKKwkJCQlTVEFNRk9SRCBDVCAwNjkwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMjkgICAoaGV4KQkJVEVMRVBST0NFU1NJTkcgUFJPRFVDVFMsIElOQy4KKzAwMjAyOSAgICAgKGJhc2UgMTYpCQlURUxFUFJPQ0VTU0lORyBQUk9EVUNUUywgSU5DLgorCQkJCTQ1NjUgRS4gSU5EVVNUUklBTCBTVFJFRVQKKwkJCQlCVUlMRElORyAjN0sKKwkJCQlTSU1JIFZBTExFWSBDQSA5MzA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMkEgICAoaGV4KQkJTi5WLiBEWklORQorMDAyMDJBICAgICAoYmFzZSAxNikJCU4uVi4gRFpJTkUKKwkJCQlLT05JTkcgTEVPUE9MRCBJSUkgTEFBTiAyCisJCQkJQiAtIDg1MDAgS09SVFJJSksKKwkJCQlCRUxHSVVNCisJCQkJQkVMR0lVTQorCiswMC0yMC0yQiAgIChoZXgpCQlBRFZBTkNFRCBURUxFQ09NTVVOSUNBVElPTlMgTU9EVUxFUywgTFRELgorMDAyMDJCICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIFRFTEVDT01NVU5JQ0FUSU9OUyBNT0RVTEVTLCBMVEQuCisJCQkJCisJCQkJTU9VTlQgUExFQVNBTlQgSE9VU0UgSFVOVElOR0RPTiBST0FELAorCQkJCUNhbWJyaWRnZSBDQjMgT0JMICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC0yQyAgIChoZXgpCQlXRUxMVFJPTklYIENPLiwgTFRELgorMDAyMDJDICAgICAoYmFzZSAxNikJCVdFTExUUk9OSVggQ08uLCBMVEQuCisJCQkJM0YsIE5PLiAzNi0xLCBIV0FORyBIU0kgU1RSRUVUCisJCQkJU0hJTi1MSU4gVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLTJEICAgKGhleCkJCVRBSVlPIENPUlBPUkFUSU9OCiswMDIwMkQgICAgIChiYXNlIDE2KQkJVEFJWU8gQ09SUE9SQVRJT04KKwkJCQkxLTItNiBTQU5OT0gsIE9IVEEtS1UKKwkJCQlUT0tZTworCQkJCTE0MyAKKwkJCQlKQVBBTgorCiswMC0yMC0yRSAgIChoZXgpCQlEQVlTVEFSIERJR0lUQUwKKzAwMjAyRSAgICAgKGJhc2UgMTYpCQlEQVlTVEFSIERJR0lUQUwKKwkJCQk1NTU2IEFUTEFOVEEgSElHSFdBWQorCQkJCUZMT1dFUlkgQlJBTkNIIEdBIDMwNTQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0yRiAgIChoZXgpCQlaRVRBIENPTU1VTklDQVRJT05TLCBMVEQuCiswMDIwMkYgICAgIChiYXNlIDE2KQkJWkVUQSBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCVpFTklUSCBIT1VTRQorCQkJCUdSRVNGT1JEIElORFVTVFJJQUwgUEFSSworCQkJCVdSRVhIQU0sIENMV1lELCBMTDEyIDhMWCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtMzAgICAoaGV4KQkJQU5BTE9HICYgRElHSVRBTCBTWVNURU1TCiswMDIwMzAgICAgIChiYXNlIDE2KQkJQU5BTE9HICYgRElHSVRBTCBTWVNURU1TCisJCQkJMS8yIExBVkVMTEUgUk9BRAorCQkJCUJBTkdBTE9SRSAtIDU2MDAwMQorCQkJCUlORElBCisJCQkJSU5ESUEKKworMDAtMjAtMzEgICAoaGV4KQkJVGF0dGlsZSBTUkwgCiswMDIwMzEgICAgIChiYXNlIDE2KQkJVGF0dGlsZSBTUkwgCisJCQkJQU0gUEVTVEFMT1paSVJJTkcgMjQKKwkJCQlELTkxMDU4IEVSTEFOR0VOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTMyICAgKGhleCkJCUFMQ0FURUwgVEFJU0VMCiswMDIwMzIgICAgIChiYXNlIDE2KQkJQUxDQVRFTCBUQUlTRUwKKwkJCQk0LCBNSU5HIFNIRU5HIFNUUkVFVCBUVS1DSEVORworCQkJCUlORFVTVFJJQUwgRElTVFJJQ1QgVEFJUEVJIEhTSUVICisJCQkJVEFJV0FOIFJPQworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjAtMzMgICAoaGV4KQkJU1lOQVBTRSBURUNITk9MT0dJRVMsIElOQy4KKzAwMjAzMyAgICAgKGJhc2UgMTYpCQlTWU5BUFNFIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTQ4MjIgQUxCRU1BUkxFIFJPQUQsICMxMDQKKwkJCQlDSEFSTE9UVEUgTkMgMjgyMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTM0ICAgKGhleCkJCVJPVEVDIElORFVTVFJJRUFVVE9NQVRJT04gR01CSAorMDAyMDM0ICAgICAoYmFzZSAxNikJCVJPVEVDIElORFVTVFJJRUFVVE9NQVRJT04gR01CSAorCQkJCUdVVEVOQkVSR1NUUi4gMTUKKwkJCQk3NjQzNyBSQVNUQVRUCisJCQkJR0VSTUFOWQorCiswMC0yMC0zNSAgIChoZXgpCQlJQk0gQ29ycAorMDAyMDM1ICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMzAzOSBFIENvcm53YWxsaXMgUm9hZAorCQkJCVAuTy4gQk9YIDEyMTk1CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0yMTk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0zNiAgIChoZXgpCQlCTUMgU09GVFdBUkUKKzAwMjAzNiAgICAgKGJhc2UgMTYpCQlCTUMgU09GVFdBUkUKKwkJCQkxNjAwIENJVFkgV0VTVCBCTFZELiwgIzE2MDAKKwkJCQlIT1VTVE9OIFRYIDc3MDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0zNyAgIChoZXgpCQlTRUFHQVRFIFRFQ0hOT0xPR1kKKzAwMjAzNyAgICAgKGJhc2UgMTYpCQlTRUFHQVRFIFRFQ0hOT0xPR1kKKwkJCQk4MDAxIEUuIEJMT09NSU5HVE9OIEZXWQorCQkJCU0vUyAtIE1QUzA0MworCQkJCUJMT09NSU5HVE9OIE1OIDU1NDIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0zOCAgIChoZXgpCQlWTUUgTUlDUk9TWVNURU1TIElOVEVSTkFUSU9OQUwgQ09SUE9SQVRJT04KKzAwMjAzOCAgICAgKGJhc2UgMTYpCQlWTUUgTUlDUk9TWVNURU1TIElOVEVSTkFUSU9OQUwgQ09SUE9SQVRJT04KKwkJCQkxMjA5MCBTLiBNRU1PUklBTCBQQVJLV0FZCisJCQkJSFVOVFNWSUxMRSBBTCAzNTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtMzkgICAoaGV4KQkJU0NJTkVUUworMDAyMDM5ICAgICAoYmFzZSAxNikJCVNDSU5FVFMKKwkJCQkxNTc1IFRFTkFLQSAtIFNURSMgTjgKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTNBICAgKGhleCkJCURJR0lUQUwgQkkwTUVUUklDUyBJTkMuCiswMDIwM0EgICAgIChiYXNlIDE2KQkJRElHSVRBTCBCSTBNRVRSSUNTIElOQy4KKwkJCQk1NjAwIFJPV0xBTkQgUk9BRC0gU1RFLiMyMDUKKwkJCQlNSU5ORVRPTktBIE1OIDU1MzY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0zQiAgIChoZXgpCQlXSVNETSBMVEQuCiswMDIwM0IgICAgIChiYXNlIDE2KQkJV0lTRE0gTFRELgorCQkJCVNULiBKT0hOUyBJTk5PVkFUSU9OIENFTlRSRQorCQkJCUNPV0xFWSBST0FEIENBTUJSSURHRSAgQ0I0IDRXUworCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC0zQyAgIChoZXgpCQlFVVJPVElNRSBBQgorMDAyMDNDICAgICAoYmFzZSAxNikJCUVVUk9USU1FIEFCCisJCQkJQk9YIDI3NworCQkJCVMtNTMyMjQgU0tBUkEKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtMjAtM0QgICAoaGV4KQkJSG9uZXl3ZWxsIEVDQworMDAyMDNEICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbCBFQ0MKKwkJCQkxOTg1IERvdWdsYXMgRHJpdmUKKwkJCQlNTjEwLTEyMUEKKwkJCQlHb2xkZW4gVmFsbGV5IE1OIDU1NDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC0zRSAgIChoZXgpCQlMb2dpQ2FuIFRlY2hub2xvZ2llcywgSW5jLgorMDAyMDNFICAgICAoYmFzZSAxNikJCUxvZ2lDYW4gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTUwIEtBUkwgQ0xBUksgUk9BRAorCQkJCUVETU9OVE9OLCBBTEJFUlRBIFQ2TiAxRTIgIAorCQkJCUNBTkFEQQorCiswMC0yMC0zRiAgIChoZXgpCQlKVUtJIENPUlBPUkFUSU9OCiswMDIwM0YgICAgIChiYXNlIDE2KQkJSlVLSSBDT1JQT1JBVElPTgorCQkJCTgtMi0xIEtPS1VSWU8tQ0hPCisJCQkJQ0hPRlUtU0hJIFRPS1lPICAxODIKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTIwLTQwICAgKGhleCkJCU1vdG9yb2xhIEJyb2FkYmFuZCBDb21tdW5pY2F0aW9ucyBTZWN0b3IKKzAwMjA0MCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBCcm9hZGJhbmQgQ29tbXVuaWNhdGlvbnMgU2VjdG9yCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNDEgICAoaGV4KQkJREFUQSBORVQKKzAwMjA0MSAgICAgKGJhc2UgMTYpCQlEQVRBIE5FVAorCQkJCVNVV09OIFAuTy4gQk9YIDEwNiwgU1VXT04KKwkJCQlLWVVOR0dJLURPCisJCQkJS09SRUEgNDQwLTYwMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMC00MiAgIChoZXgpCQlEQVRBTUVUUklDUyBDT1JQLgorMDAyMDQyICAgICAoYmFzZSAxNikJCURBVEFNRVRSSUNTIENPUlAuCisJCQkJODk2NiBDT01BTkNIRSBBVkUuCisJCQkJQ0hBVFNXT1JUSCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNDMgICAoaGV4KQkJTkVVUk9OIENPTVBBTlkgTElNSVRFRAorMDAyMDQzICAgICAoYmFzZSAxNikJCU5FVVJPTiBDT01QQU5ZIExJTUlURUQKKwkJCQkxNSBLV0FJIFlJIFJPQUQsICBCTE9DSyAyLAorCQkJCTIxU1QgRkxPT1IsIEZMQVQgQgorCQkJCUtXQUkgQ0hVTkcsICAgTi5ULiAgCisJCQkJSE9ORyBLT05HCisKKzAwLTIwLTQ0ICAgKGhleCkJCUdFTklURUNIIFBUWSBMVEQKKzAwMjA0NCAgICAgKGJhc2UgMTYpCQlHRU5JVEVDSCBQVFkgTFRECisJCQkJUC5PLiBCT1ggMTk2CisJCQkJQVNRVUlUSCBOU1cgMjA3NworCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC0yMC00NSAgIChoZXgpCQlJT04gTmV0d29ya3MsIEluYy4KKzAwMjA0NSAgICAgKGJhc2UgMTYpCQlJT04gTmV0d29ya3MsIEluYy4KKwkJCQkxNTUxIFNvdXRoIFdhc2hpbmd0b24gQXZlLgorCQkJCVBpc2NhdGF3YXkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTQ2ICAgKGhleCkJCUNJUFJJQ08sIElOQy4KKzAwMjA0NiAgICAgKGJhc2UgMTYpCQlDSVBSSUNPLCBJTkMuCisJCQkJMjgwMCBDQU1QVVMgRFJJVkUtLVNVSVRFICM2MAorCQkJCVBMWU1PVVRIIE1OIDU1NDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC00NyAgIChoZXgpCQlTVEVJTkJSRUNIRVIgQ09SUC4KKzAwMjA0NyAgICAgKGJhc2UgMTYpCQlTVEVJTkJSRUNIRVIgQ09SUC4KKwkJCQkzMCBOT1JUSCBBVkVOVUUKKwkJCQlCVVJMSU5HVE9OIE1BIDAxODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC00OCAgIChoZXgpCQlNYXJjb25pIENvbW11bmljYXRpb25zCiswMDIwNDggICAgIChiYXNlIDE2KQkJTWFyY29uaSBDb21tdW5pY2F0aW9ucworCQkJCTEwMDAgRm9yZSBEcml2ZQorCQkJCVdhcnJlbmRhbGUgUEEgMTUwODYtNzUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNDkgICAoaGV4KQkJQ09NVFJPTiwgSU5DLgorMDAyMDQ5ICAgICAoYmFzZSAxNikJCUNPTVRST04sIElOQy4KKwkJCQlTQU5DQVRIRVJJTkEgQkxERy4KKwkJCQkzNi0xMiBTSElOSlVLVSAxLUNIT01FIFNISU5KVUtVLUtVCisJCQkJVE9LWU8gMTYwIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMjAtNEEgICAoaGV4KQkJUFJPTkVUIEdNQkgKKzAwMjA0QSAgICAgKGJhc2UgMTYpCQlQUk9ORVQgR01CSAorCQkJCUtBUkxTVFJBU1NFIDQ5CisJCQkJRC03ODA1IEYgVklMTElOR0VOLVNDSFdFTk5JTkdFTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTRCICAgKGhleCkJCUFVVE9DT01QVVRFUiBDTy4sIExURC4KKzAwMjA0QiAgICAgKGJhc2UgMTYpCQlBVVRPQ09NUFVURVIgQ08uLCBMVEQuCisJCQkJTk8uIDE4LCBQRUkgWVVBTiBST0FECisJCQkJQ0hVTkctTEkgQ0lUWSwgVEFPLVlVQU4gSFNJRU4KKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjAtNEMgICAoaGV4KQkJTUlUUk9OIENPTVBVVEVSIFBURSBMVEQuCiswMDIwNEMgICAgIChiYXNlIDE2KQkJTUlUUk9OIENPTVBVVEVSIFBURSBMVEQuCisJCQkJMTAyMCBIT1VHQU5HIEFWRU5VRSAxICMwMy0zNTA0CisJCQkJU0lOR0FQT1JFIDE5NTMKKwkJCQlTSU5HQVBPUkUKKworMDAtMjAtNEQgICAoaGV4KQkJSU5PVklTIEdNQkgKKzAwMjA0RCAgICAgKGJhc2UgMTYpCQlJTk9WSVMgR01CSAorCQkJCUhBTk5TLUJSQVVOIFNUUkFTU0UgNTAKKwkJCQk4NTM3NSBORVVGQUhSTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTRFICAgKGhleCkJCU5FVFdPUksgU0VDVVJJVFkgU1lTVEVNUywgSU5DLgorMDAyMDRFICAgICAoYmFzZSAxNikJCU5FVFdPUksgU0VDVVJJVFkgU1lTVEVNUywgSU5DLgorCQkJCTk0MDEgV0FQTEVTIFNUUkVFVCxTVEUuICMxMDAKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTRGICAgKGhleCkJCURFVVRTQ0hFIEFFUk9TUEFDRSBBRworMDAyMDRGICAgICAoYmFzZSAxNikJCURFVVRTQ0hFIEFFUk9TUEFDRSBBRworCQkJCUdFU0NIQUVGVFNGRUxECisJCQkJVkVSVEVJRElHVU5HIFVORCBaSVZJTEUgU1lTVEVNIDgxNjYzIE1VRQorCQkJCUJVTkRFU1JFUFVCTElLIERFVVRTQ0hMQU5ECisJCQkJR0VSTUFOWQorCiswMC0yMC01MCAgIChoZXgpCQlLT1JFQSBDT01QVVRFUiBJTkMuCiswMDIwNTAgICAgIChiYXNlIDE2KQkJS09SRUEgQ09NUFVURVIgSU5DLgorCQkJCTQ2OSwgREFFSEVVTkctRE9ORworCQkJCU1BUE8tR1UsIFNFT1VMCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjAtNTEgICAoaGV4KQkJVmVyaWxpbmsgQ29ycG9yYXRpb24KKzAwMjA1MSAgICAgKGJhc2UgMTYpCQlWZXJpbGluayBDb3Jwb3JhdGlvbgorCQkJCTEyNyBKZXRwbGV4IENpcmNsZQorCQkJCU1hZGlzb24gQUwgMzU3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTUyICAgKGhleCkJCVJBR1VMQSBTWVNURU1TCiswMDIwNTIgICAgIChiYXNlIDE2KQkJUkFHVUxBIFNZU1RFTVMKKwkJCQk0NTQwIFMuIEpVUElURVIgRFJJVkUKKwkJCQlTQUxUIExBS0UgQ0lUWSBVVCA4NDEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNTMgICAoaGV4KQkJSFVOVFNWSUxMRSBNSUNST1NZU1RFTVMsIElOQy4KKzAwMjA1MyAgICAgKGJhc2UgMTYpCQlIVU5UU1ZJTExFIE1JQ1JPU1lTVEVNUywgSU5DLgorCQkJCVAuTy4gQk9YIDEyNDE1CisJCQkJSFVOVFNWSUxMRSBBTCAzNTgxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNTQgICAoaGV4KQkJU3ljYW1vcmUgTmV0d29ya3MKKzAwMjA1NCAgICAgKGJhc2UgMTYpCQlTeWNhbW9yZSBOZXR3b3JrcworCQkJCTIyMCBNaWxsIFJkCisJCQkJQ2hlbG1zZm9yZCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNTUgICAoaGV4KQkJQUxURUNIIENPLiwgTFRELgorMDAyMDU1ICAgICAoYmFzZSAxNikJCUFMVEVDSCBDTy4sIExURC4KKwkJCQlPSElTSEkgQkxERy4sIDItMjMtMTEKKwkJCQlOSVNISS1OSVBQT1JJLCBBUkFLQVdBLUtVCisJCQkJIFRPS1lPIDExNiAgCisJCQkJSkFQQU4KKworMDAtMjAtNTYgICAoaGV4KQkJTkVPUFJPRFVDVFMKKzAwMjA1NiAgICAgKGJhc2UgMTYpCQlORU9QUk9EVUNUUworCQkJCTI1IENIQVBNQU4gU1RSRUVUCisJCQkJQkxBQ0tCVVJOIE5PUlRIIFZJQ1RPUklBIDMxMzAKKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtMjAtNTcgICAoaGV4KQkJVElUWkUgREFURU5URUNITklLIEdtYkgKKzAwMjA1NyAgICAgKGJhc2UgMTYpCQlUSVRaRSBEQVRFTlRFQ0hOSUsgR21iSAorCQkJCURJRVNFTFNUUkFTU0UgMTAKKwkJCQlEUy03MTI3MiBSRU5OSU5HRU4tMiAgCisJCQkJR0VSTUFOWQorCiswMC0yMC01OCAgIChoZXgpCQlBTExJRUQgU0lHTkFMIElOQy4KKzAwMjA1OCAgICAgKGJhc2UgMTYpCQlBTExJRUQgU0lHTkFMIElOQy4KKwkJCQlST1VURSA0NgorCQkJCVRFVEVSQk9STyBOSiAwNzYwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNTkgICAoaGV4KQkJTUlSTyBDT01QVVRFUiBQUk9EVUNUUyBBRworMDAyMDU5ICAgICAoYmFzZSAxNikJCU1JUk8gQ09NUFVURVIgUFJPRFVDVFMgQUcKKwkJCQlDQVJMIE1JRUxFIFNUUi4gNAorCQkJCUQtMzgxMTIgQlJBVU5TQ0hXRUlHICAKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTVBICAgKGhleCkJCUNPTVBVVEVSIElERU5USUNTCiswMDIwNUEgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgSURFTlRJQ1MKKwkJCQk1IFNIQVdNVVQgUk9BRAorCQkJCUNBTlRPTiBNQSAwMjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNUIgICAoaGV4KQkJS2VudHJveCwgTExDCiswMDIwNUIgICAgIChiYXNlIDE2KQkJS2VudHJveCwgTExDCisJCQkJMjAwMTAgTlcgVGFuYXNib3VybmUgRHIuCisJCQkJSGlsbHNib3JvIE9SIDk3MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC01QyAgIChoZXgpCQlJbnRlck5ldCBTeXN0ZW1zIG9mIEZsb3JpZGEsIEluYy4KKzAwMjA1QyAgICAgKGJhc2UgMTYpCQlJbnRlck5ldCBTeXN0ZW1zIG9mIEZsb3JpZGEsIEluYy4KKwkJCQlQLk8uIEJPWCA1NzgKKwkJCQlDUkVTVFZJRVcgRkwgMzI1MzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTVEICAgKGhleCkJCU5BTk9NQVRJQyBPWQorMDAyMDVEICAgICAoYmFzZSAxNikJCU5BTk9NQVRJQyBPWQorCQkJCVBVSVNUT0xBTiBSQUlUVEkgNAorCQkJCTAwNzYwIEhFTFNJTktJCisJCQkJRklOTEFORAorCQkJCUZJTkxBTkQKKworMDAtMjAtNUUgICAoaGV4KQkJQ0FTVExFIFJPQ0ssIElOQy4KKzAwMjA1RSAgICAgKGJhc2UgMTYpCQlDQVNUTEUgUk9DSywgSU5DLgorCQkJCTIwIFNPVVRIIFNBTlRBIENSVVogQVZFLgorCQkJCVNVSVRFICMzMTAKKwkJCQlMT1MgR0FUT1MgQ0EgOTUwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTVGICAgKGhleCkJCUdBTU1BREFUQSBDT01QVVRFUiBHTUJICiswMDIwNUYgICAgIChiYXNlIDE2KQkJR0FNTUFEQVRBIENPTVBVVEVSIEdNQkgKKwkJCQlHVVRFTkJFUkdTVFIuIDEzCisJCQkJODIxNjggUFVDSEhFSU0KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0yMC02MCAgIChoZXgpCQlBTENBVEVMIElUQUxJQSBTLnAuQS4KKzAwMjA2MCAgICAgKGJhc2UgMTYpCQlBTENBVEVMIElUQUxJQSBTLnAuQS4KKwkJCQlWSUEgVFJFTlRPLCAzMAorCQkJCTIwMDU5IFZJTUVSQ0FURSAoTUkpICAKKwkJCQlJVEFMWQorCiswMC0yMC02MSAgIChoZXgpCQlHYXJyZXR0Q29tLCBJbmMuCiswMDIwNjEgICAgIChiYXNlIDE2KQkJR2FycmV0dENvbSwgSW5jLgorCQkJCTQ3ODIzIFdlc3Rpbmdob3VzZSBEci4KKwkJCQlGcmVtb250IENBIDk0NTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC02MiAgIChoZXgpCQlTQ09SUElPTiBMT0dJQywgTFRELgorMDAyMDYyICAgICAoYmFzZSAxNikJCVNDT1JQSU9OIExPR0lDLCBMVEQuCisJCQkJMTkgQlJPT0tTSURFIFJPQUQKKwkJCQlPWEhFWSwgV0FURk9SRAorCQkJCUhFUlRTIFdEMSA0QlcgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLTYzICAgKGhleCkJCVdJUFJPIElORk9URUNIIExURC4KKzAwMjA2MyAgICAgKGJhc2UgMTYpCQlXSVBSTyBJTkZPVEVDSCBMVEQuCisJCQkJVU5JVFMgNDctNDgsIFNERiBCTE9DSyBWSUkKKwkJCQlNRVBaLCBLQURBUFBFUkkgTUFEUkFTLTYwMDA0NQorCQkJCUlORElBCisKKzAwLTIwLTY0ICAgKGhleCkJCVBST1RFQyBNSUNST1NZU1RFTVMsIElOQy4KKzAwMjA2NCAgICAgKGJhc2UgMTYpCQlQUk9URUMgTUlDUk9TWVNURU1TLCBJTkMuCisJCQkJMjk3IExBQlJPU1NFCisJCQkJUE9JTlRFLUNMQUlSRSwgUVVFQkVDIEg5UiAxQTMgIAorCQkJCUNBTkFEQQorCiswMC0yMC02NSAgIChoZXgpCQlTVVBFUk5FVCBORVRXT1JLSU5HIElOQy4KKzAwMjA2NSAgICAgKGJhc2UgMTYpCQlTVVBFUk5FVCBORVRXT1JLSU5HIElOQy4KKwkJCQkxNiBUT1pFUkVUIEhBJ0FSRVRaIFNULgorCQkJCVRFTC1BVklWIDY3ODkxICAKKwkJCQlJU1JBRUwKKworMDAtMjAtNjYgICAoaGV4KQkJR0VORVJBTCBNQUdJQywgSU5DLgorMDAyMDY2ICAgICAoYmFzZSAxNikJCUdFTkVSQUwgTUFHSUMsIElOQy4KKwkJCQkyNDY1IExBVEhBTSBTVFJFRVQKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC02NyAgIChoZXgpCQlQUklWQVRFCiswMDIwNjcgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTIwLTY4ICAgKGhleCkJCUlTRFlORQorMDAyMDY4ICAgICAoYmFzZSAxNikJCUlTRFlORQorCQkJCTExIFJPWEJVUlkgQVZFTlVFCisJCQkJTkFUSUNLIE1BIDAxNzYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC02OSAgIChoZXgpCQlJU0ROIFNZU1RFTVMgQ09SUE9SQVRJT04KKzAwMjA2OSAgICAgKGJhc2UgMTYpCQlJU0ROIFNZU1RFTVMgQ09SUE9SQVRJT04KKwkJCQk4MzIwIE9MRCBDT1VSVEhPVVNFIFJELgorCQkJCVNVSVRFICMyMDMKKwkJCQlWSUVOTkEgVkEgMjIxODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTZBICAgKGhleCkJCU9TQUtBIENPTVBVVEVSIENPUlAuCiswMDIwNkEgICAgIChiYXNlIDE2KQkJT1NBS0EgQ09NUFVURVIgQ09SUC4KKwkJCQkyLTggS09ZQUNIT1UgTkVZQUdBVy1TSEkKKwkJCQlPU0FLQSA1NzIKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTIwLTZCICAgKGhleCkJCUtPTklDQSBNSU5PTFRBIEhPTERJTkdTLCBJTkMuCiswMDIwNkIgICAgIChiYXNlIDE2KQkJS09OSUNBIE1JTk9MVEEgSE9MRElOR1MsIElOQy4KKwkJCQkxLTYtMSwgTWFydW5vdWNoaSwKKwkJCQlDaGl5b2RhLWt1CisJCQkJVG9reW8gIDEwMC0wMDA1CisJCQkJSkFQQU4KKworMDAtMjAtNkMgICAoaGV4KQkJRVZFUkdSRUVOIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMjA2QyAgICAgKGJhc2UgMTYpCQlFVkVSR1JFRU4gVEVDSE5PTE9HWSBDT1JQLgorCQkJCTIzMSBFTUVSU09OIFNUUkVFVAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNkQgICAoaGV4KQkJREFUQSBSQUNFLCBJTkMuCiswMDIwNkQgICAgIChiYXNlIDE2KQkJREFUQSBSQUNFLCBJTkMuCisJCQkJMTE1NTAgSUgtMTBXRVNUICBTVEUjMzk1CisJCQkJU0FOIEFOVE9OSU8gVFggNzgyMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTZFICAgKGhleCkJCVhBQ1QsIElOQy4KKzAwMjA2RSAgICAgKGJhc2UgMTYpCQlYQUNULCBJTkMuCisJCQkJUC5PLiBCT1ggNTUKKwkJCQlBUkdZTEUgVFggNzYyMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTZGICAgKGhleCkJCUZMT1dQT0lOVCBDT1JQT1JBVElPTgorMDAyMDZGICAgICAoYmFzZSAxNikJCUZMT1dQT0lOVCBDT1JQT1JBVElPTgorCQkJCTcyOTEgQ09ST05BRE8gRFJJVkUsIFNURSMgNAorCQkJCVNBTiBKT1NFIENBIDk1MTI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC03MCAgIChoZXgpCQlIWU5FVCwgTFRELgorMDAyMDcwICAgICAoYmFzZSAxNikJCUhZTkVULCBMVEQuCisJCQkJMTAyIEpBQk9USU5TS1kgU1QuCisJCQkJUE8gQk9YIDM2MzgKKwkJCQlQRVRBQ0ggVElLVkEgNDkxMzAgIAorCQkJCUlTUkFFTAorCiswMC0yMC03MSAgIChoZXgpCQlJQlIgR01CSAorMDAyMDcxICAgICAoYmFzZSAxNikJCUlCUiBHTUJICisJCQkJS09ITEVSU1RSLiA0NQorCQkJCUQtNDYyODYgRE9SU1RFTiAgCisJCQkJR0VSTUFOWQorCiswMC0yMC03MiAgIChoZXgpCQlXT1JLTElOSyBJTk5PVkFUSU9OUworMDAyMDcyICAgICAoYmFzZSAxNikJCVdPUktMSU5LIElOTk9WQVRJT05TCisJCQkJMjQ1MiBBUk1TVFJPTkcgU1RSRUVUCisJCQkJTElWRVJNT1JFIENBIDk0NTVPCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC03MyAgIChoZXgpCQlGVVNJT04gU1lTVEVNUyBDT1JQT1JBVElPTgorMDAyMDczICAgICAoYmFzZSAxNikJCUZVU0lPTiBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJNzYwMCBTVEFORElTSCBQTEFDRQorCQkJCVJPQ0tWSUxMRSBNRCAyMDg1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtNzQgICAoaGV4KQkJU1VOR1dPT04gU1lTVEVNUworMDAyMDc0ICAgICAoYmFzZSAxNikJCVNVTkdXT09OIFNZU1RFTVMKKwkJCQlZVVNVTiBCTERHLjQ0LTQKKwkJCQlTQU1TVU5HLURPTkcgS0FOR05BTS1LVSwgU0VPVUwgMTM1LTA5MAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIwLTc1ICAgKGhleCkJCU1PVE9ST0xBIENPTU1VTklDQVRJT04gSVNSQUVMCiswMDIwNzUgICAgIChiYXNlIDE2KQkJTU9UT1JPTEEgQ09NTVVOSUNBVElPTiBJU1JBRUwKKwkJCQkzIEtSRU1FTkVUU0tJIFNUUkVFVAorCQkJCVBPQiAyNTAxNgorCQkJCVRFTC1BVklWICA2MTI1MCAgCisJCQkJSVNSQUVMCisKKzAwLTIwLTc2ICAgKGhleCkJCVJFVURPIENPUlBPUkFUSU9OCiswMDIwNzYgICAgIChiYXNlIDE2KQkJUkVVRE8gQ09SUE9SQVRJT04KKwkJCQk0LTEtMTAgU0hJTlNBTgorCQkJCU5BR0FPS0EgQ0lUWSwgTklJR0FUQSA5NDAtMjEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTIwLTc3ICAgKGhleCkJCUtBUkRJT1MgU1lTVEVNUyBDT1JQLgorMDAyMDc3ICAgICAoYmFzZSAxNikJCUtBUkRJT1MgU1lTVEVNUyBDT1JQLgorCQkJCTI2IE4gU1VNTUlUIEFWRS4KKwkJCQlHQUlUSEVSU0JVUkcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTc4ICAgKGhleCkJCVJVTlRPUCwgSU5DLgorMDAyMDc4ICAgICAoYmFzZSAxNikJCVJVTlRPUCwgSU5DLgorCQkJCTUvRiwgTk8uIDEwLCBBTExFWSA4LCBMQU5FIDQ1CisJCQkJUEFPIFNISU4gUk9BRCwgSFNJTlRJRU4gVEFJUEVJIEhTSUVOCisJCQkJVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjAtNzkgICAoaGV4KQkJTUlLUk9OIEdNQkgKKzAwMjA3OSAgICAgKGJhc2UgMTYpCQlNSUtST04gR01CSAorCQkJCUJSRVNMQVVFUlNUUi4gMS0zCisJCQkJODUzODYgRUNISU5HICAKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTdBICAgKGhleCkJCVdpU0UgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMjA3QSAgICAgKGJhc2UgMTYpCQlXaVNFIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMTMwIEtOT1dMRVMgRFJJVkUKKwkJCQlMT1MgR0FUT1MgQ0EgOTUwMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTdCICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCiswMDIwN0IgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQkyMTExIE5FIDI1dGggQXZlbnVlCisJCQkJSkYzLTQyMAorCQkJCUhpbGxzYm9ybyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtN0MgICAoaGV4KQkJQVVURUMgR21iSAorMDAyMDdDICAgICAoYmFzZSAxNikJCUFVVEVDIEdtYkgKKwkJCQlCQUhOSE9GU1RSLiA1NworCQkJCTU1MjM0IEZSQU1FUlNIRUlNICAKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTdEICAgKGhleCkJCUFEVkFOQ0VEIENPTVBVVEVSIEFQUExJQ0FUSU9OUworMDAyMDdEICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIENPTVBVVEVSIEFQUExJQ0FUSU9OUworCQkJCTEwNyBQRU5OUyBUUkFJTAorCQkJCU5FV1RPV04gUEEgMTg5NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTdFICAgKGhleCkJCUZJTkVDT00gQ28uLCBMdGQuCiswMDIwN0UgICAgIChiYXNlIDE2KQkJRklORUNPTSBDby4sIEx0ZC4KKwkJCQkxMTA4IEhXQUtPSy1ET05HLCBLQU5HU0VPLUtVCisJCQkJU0VPVUwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMC03RiAgIChoZXgpCQlLWU9FSSBTQU5HWU8gQ08uLCBMVEQuCiswMDIwN0YgICAgIChiYXNlIDE2KQkJS1lPRUkgU0FOR1lPIENPLiwgTFRELgorCQkJCURJUi4gJiBHRU4nTCBNR1IuSU5ELiBTWVNURU1TCisJCQkJMjAtNCwgU0hPVE8gMi1DSE9NRSBTSElCVVlBLUtVCisJCQkJVE9LWU8KKwkJCQlKQVBBTgorCiswMC0yMC04MCAgIChoZXgpCQlTWU5FUkdZIChVSykgTFRELgorMDAyMDgwICAgICAoYmFzZSAxNikJCVNZTkVSR1kgKFVLKSBMVEQuCisJCQkJSEFSVENSQU4gSE9VU0UKKwkJCQlDQVJQRU5ERVJTIFBBUkssCisJCQkJV0FURk9SRCBIRVJUUy4gIFdEMSA1RVogIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLTgxICAgKGhleCkJCVRJVEFOIEVMRUNUUk9OSUNTCiswMDIwODEgICAgIChiYXNlIDE2KQkJVElUQU4gRUxFQ1RST05JQ1MKKwkJCQkzMDMzIFNDSUVOQ0UgUEFSSyBST0FECisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC04MiAgIChoZXgpCQlPTkVBQyBDT1JQT1JBVElPTgorMDAyMDgyICAgICAoYmFzZSAxNikJCU9ORUFDIENPUlBPUkFUSU9OCisJCQkJMjc5NDQgTi4gQlJBRExFWSBSRC4KKwkJCQlMSUJFUlRZVklMTEUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTgzICAgKGhleCkJCVBSRVNUSUNPTSBJTkNPUlBPUkFURUQKKzAwMjA4MyAgICAgKGJhc2UgMTYpCQlQUkVTVElDT00gSU5DT1JQT1JBVEVECisJCQkJMzI3NSwgMVNUIFNUUkVFVCwgU1RFLiAjMQorCQkJCVNULUhVQkVSVCAoUVVFQkVDKQorCQkJCUNBTkFEQSBKM1kgOFk2CisJCQkJQ0FOQURBCisKKzAwLTIwLTg0ICAgKGhleCkJCU9DRSBQUklOVElORyBTWVNURU1TLCBHTUJICiswMDIwODQgICAgIChiYXNlIDE2KQkJT0NFIFBSSU5USU5HIFNZU1RFTVMsIEdNQkgKKwkJCQlTSUVNRU5TQUxMRUUgMgorCQkJCUQtODU1ODYgUE9JTkcKKwkJCQlHRVJNQU5ZCisKKzAwLTIwLTg1ICAgKGhleCkJCUVYSURFIEVMRUNUUk9OSUNTCiswMDIwODUgICAgIChiYXNlIDE2KQkJRVhJREUgRUxFQ1RST05JQ1MKKwkJCQlQLk8uIEJPWCAgNTgxODkKKwkJCQlSQUxFSUdIIE5DIDI3NjU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC04NiAgIChoZXgpCQlNSUNST1RFQ0ggRUxFQ1RST05JQ1MgTElNSVRFRAorMDAyMDg2ICAgICAoYmFzZSAxNikJCU1JQ1JPVEVDSCBFTEVDVFJPTklDUyBMSU1JVEVECisJCQkJTEFOQ0FTVEVSIFJPQUQKKwkJCQlDUkVTU0VYIElORFVTVFJJQUwgRVNUQVRFIEhJR0ggV1lDT01CRSwKKwkJCQlLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtODcgICAoaGV4KQkJTUVNT1RFQywgSU5DLgorMDAyMDg3ICAgICAoYmFzZSAxNikJCU1FTU9URUMsIElOQy4KKwkJCQk3NzU1IEhlbnJpLUJvdXJhc3NhCisJCQkJTU9OVFJFQUwsIFFVRUJFQyAgIEg0UyAxUDcKKwkJCQlDQU5BREEKKworMDAtMjAtODggICAoaGV4KQkJR0xPQkFMIFZJTExBR0UgQ09NTVVOSUNBVElPTgorMDAyMDg4ICAgICAoYmFzZSAxNikJCUdMT0JBTCBWSUxMQUdFIENPTU1VTklDQVRJT04KKwkJCQkxMTQ0IEVBU1QgQVJRVUVTIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtODkgICAoaGV4KQkJVDNQTFVTIE5FVFdPUktJTkcsIElOQy4KKzAwMjA4OSAgICAgKGJhc2UgMTYpCQlUM1BMVVMgTkVUV09SS0lORywgSU5DLgorCQkJCTI4NDAgU0FOIFRPTUFTIEVYUFJFU1NXQVkKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtOEEgICAoaGV4KQkJU09OSVggQ09NTVVOSUNBVElPTlMsIExURC4KKzAwMjA4QSAgICAgKGJhc2UgMTYpCQlTT05JWCBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCVdJTEtJTlNPTiBST0FECisJCQkJQ0lSRU5DRVNURVIsIEdMT1MuIEdMNyAxWVQKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtOEIgICAoaGV4KQkJTEFQSVMgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDIwOEIgICAgIChiYXNlIDE2KQkJTEFQSVMgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTEwMCBNQVJJTkEgVklMTEFHRSBQS1dZCisJCQkJU1VJVEUgIzEwMAorCQkJCUFMQU1FREEgQ0EgOTQ1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLThDICAgKGhleCkJCUdBTEFYWSBORVRXT1JLUywgSU5DLgorMDAyMDhDICAgICAoYmFzZSAxNikJCUdBTEFYWSBORVRXT1JLUywgSU5DLgorCQkJCTkzNDggREUgU09UTyBBVkVOVUUKKwkJCQlDSEFUU1dPUlRIIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC04RCAgIChoZXgpCQlDTUQgVEVDSE5PTE9HWQorMDAyMDhEICAgICAoYmFzZSAxNikJCUNNRCBURUNITk9MT0dZCisJCQkJMSBWQU5ERVJCSUxUCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC04RSAgIChoZXgpCQlDSEVWSU4gU09GVFdBUkUgRU5HLiBMVEQuCiswMDIwOEUgICAgIChiYXNlIDE2KQkJQ0hFVklOIFNPRlRXQVJFIEVORy4gTFRELgorCQkJCTIgQk9ST1VHSEdBVEUsIE9UTEVZLAorCQkJCUxFRURTLCBXRVNULCBZT1JLU0hJUkUKKwkJCQlMUzIxIDNBTCBVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIwLThGICAgKGhleCkJCUVDSSBURUxFQ09NIExURC4KKzAwMjA4RiAgICAgKGJhc2UgMTYpCQlFQ0kgVEVMRUNPTSBMVEQuCisJCQkJSEFTSVZJTSBTVC4gMzAsCisJCQkJUEVUQUNILVRJS1ZBIDQ5MTMzICAKKwkJCQlJU1JBRUwKKworMDAtMjAtOTAgICAoaGV4KQkJQURWQU5DRUQgQ09NUFJFU1NJT04gVEVDSE5PTE9HWSwgSU5DLgorMDAyMDkwICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIENPTVBSRVNTSU9OIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk4MjAgRkxZTk4gUk9BRAorCQkJCUNBTUFSSUxMTyBDQSA5MzAxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtOTEgICAoaGV4KQkJSjEyNSwgTkFUSU9OQUwgU0VDVVJJVFkgQUdFTkNZCiswMDIwOTEgICAgIChiYXNlIDE2KQkJSjEyNSwgTkFUSU9OQUwgU0VDVVJJVFkgQUdFTkNZCisJCQkJOTgwMCBTQVZBR0UgUk9BRAorCQkJCUZULiBNRUFERSBNRCAyMDc1NS02MDAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC05MiAgIChoZXgpCQlDSEVTUyBFTkdJTkVFUklORyBCLlYuCiswMDIwOTIgICAgIChiYXNlIDE2KQkJQ0hFU1MgRU5HSU5FRVJJTkcgQi5WLgorCQkJCU5JRVVXRSBHUkFDSFQgNzQKKwkJCQkyMDExIE5KIEhBQVJMRU0KKwkJCQlORVRIRVJMQU5EUworCiswMC0yMC05MyAgIChoZXgpCQlMQU5ESU5HUyBURUNITk9MT0dZIENPUlAuCiswMDIwOTMgICAgIChiYXNlIDE2KQkJTEFORElOR1MgVEVDSE5PTE9HWSBDT1JQLgorCQkJCTE2MyBXQVRFUiBTVFJFRVQKKwkJCQlNRVJSSUxMIEJMT0NLIFVOSVQgQTIKKwkJCQlFWEVURVIgTkggMDM4MzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTk0ICAgKGhleCkJCUNVQklYIENPUlBPUkFUSU9OCiswMDIwOTQgICAgIChiYXNlIDE2KQkJQ1VCSVggQ09SUE9SQVRJT04KKwkJCQkyODAwIExPQ0tIRUVEIFdBWQorCQkJCUNBUlNPTiBDSVRZIE5WIDg5NzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC05NSAgIChoZXgpCQlSSVZBIEVMRUNUUk9OSUNTCiswMDIwOTUgICAgIChiYXNlIDE2KQkJUklWQSBFTEVDVFJPTklDUworCQkJCVVOSVQgMTcsIEJBUlJTRk9MRCBSRC4KKwkJCQlXSU5HQVRFUyBJTkRVU1RSSUFMIFBBUksgV0VTVEhPVUdIVE9OLCBCCisJCQkJTEFOQ0FTSElSRSBFTkdMQU5EIEJMNSAzWFcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC05NiAgIChoZXgpCQlJbnZlbnN5cworMDAyMDk2ICAgICAoYmFzZSAxNikJCUludmVuc3lzCisJCQkJMTM1NCBDbGlmZm9yZCBBdmVudWUKKwkJCQlMb3ZlcyBQYXJrIElMIDYxMTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC05NyAgIChoZXgpCQlBUFBMSUVEIFNJR05BTCBURUNITk9MT0dZCiswMDIwOTcgICAgIChiYXNlIDE2KQkJQVBQTElFRCBTSUdOQUwgVEVDSE5PTE9HWQorCQkJCTE2MCBTT0JSQU5URSBXQVkKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTk4ICAgKGhleCkJCUhFQ1RST05JQyBBQgorMDAyMDk4ICAgICAoYmFzZSAxNikJCUhFQ1RST05JQyBBQgorCQkJCUJPWCAzMDAyCisJCQkJUy03NTAwMyBVUFBTQUxBICAKKwkJCQlTV0VERU4KKworMDAtMjAtOTkgICAoaGV4KQkJQk9OIEVMRUNUUklDIENPLiwgTFRELgorMDAyMDk5ICAgICAoYmFzZSAxNikJCUJPTiBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQk0LTQgMjgsIE1JWlVETy1DSE8KKwkJCQlBTUFHQVNBS0ksIDY2MQorCQkJCUhZT0dPIEhZT0dPIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMjAtOUEgICAoaGV4KQkJVEhFIDNETyBDT01QQU5ZCiswMDIwOUEgICAgIChiYXNlIDE2KQkJVEhFIDNETyBDT01QQU5ZCisJCQkJNjAwIEdBTFZFU1RPTiBEUklWRQorCQkJCVJFRFdPT0QgQ0lUWSBDQSA5NDA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtOUIgICAoaGV4KQkJRVJTQVQgRUxFQ1RST05JQyBHTUJICiswMDIwOUIgICAgIChiYXNlIDE2KQkJRVJTQVQgRUxFQ1RST05JQyBHTUJICisJCQkJSEFBUkJFUkdTVFIuIDYxCisJCQkJRC05OTA5NyBFUkZVUlQKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0yMC05QyAgIChoZXgpCQlQUklNQVJZIEFDQ0VTUyBDT1JQLgorMDAyMDlDICAgICAoYmFzZSAxNikJCVBSSU1BUlkgQUNDRVNTIENPUlAuCisJCQkJMTAwODAgQ0FSUk9MTCBDQU5ZT04gUkQKKwkJCQlTQU4gRElFR08gQ0EgOTIxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLTlEICAgKGhleCkJCUxJUFBFUlQgQVVUT01BVElPTlNURUNITklLCiswMDIwOUQgICAgIChiYXNlIDE2KQkJTElQUEVSVCBBVVRPTUFUSU9OU1RFQ0hOSUsKKwkJCQlELTY4MTY1IE1BTk5IRUlNCisJCQkJS1JBUFBNVUVITFNUUi4gMzQKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0yMC05RSAgIChoZXgpCQlCUk9XTidTIE9QRVJBVElORyBTWVNURU0gU0VSVklDRVMsIExURC4KKzAwMjA5RSAgICAgKGJhc2UgMTYpCQlCUk9XTidTIE9QRVJBVElORyBTWVNURU0gU0VSVklDRVMsIExURC4KKwkJCQlTVC4gQUdORVMgSE9VU0UsIENSRVNTV0VMTCBQSywKKwkJCQlCTEFDS0hFQVRILCBMb25kb24gU0UzIDlSRCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtOUYgICAoaGV4KQkJTUVSQ1VSWSBDT01QVVRFUiBTWVNURU1TLCBJTkMuCiswMDIwOUYgICAgIChiYXNlIDE2KQkJTUVSQ1VSWSBDT01QVVRFUiBTWVNURU1TLCBJTkMuCisJCQkJMTk5IFJJVkVSTkVDSyBST0FECisJCQkJQ0hFTE1TRk9SRCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQTAgICAoaGV4KQkJT0EgTEFCT1JBVE9SWSBDTy4sIExURC4KKzAwMjBBMCAgICAgKGJhc2UgMTYpCQlPQSBMQUJPUkFUT1JZIENPLiwgTFRELgorCQkJCTIyOCBLQU1JTUFDSElZQSBLQU1BS1VSQQorCQkJCUtBTkFHQVdBIDI0NworCQkJCUpBUEFOCisKKzAwLTIwLUExICAgKGhleCkJCURPVkFUUk9OCiswMDIwQTEgICAgIChiYXNlIDE2KQkJRE9WQVRST04KKwkJCQlQUk9EVUNUUyBESVZJU0lPTgorCQkJCTExOTggQk9TVE9OIEFWRU5VRQorCQkJCUxPTkdNT05UIENPIDgwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1BMiAgIChoZXgpCQlHQUxDT00gTkVUV09SS0lORyBMVEQuCiswMDIwQTIgICAgIChiYXNlIDE2KQkJR0FMQ09NIE5FVFdPUktJTkcgTFRELgorCQkJCVAuTy4gQk9YIDE1NjgKKwkJCQlSQU1BVCBIQVNIQVJPTiA0NzExMyAgCisJCQkJSVNSQUVMCisKKzAwLTIwLUEzICAgKGhleCkJCURJVklDT00gSU5DLgorMDAyMEEzICAgICAoYmFzZSAxNikJCURJVklDT00gSU5DLgorCQkJCTU4MCBDT1RUT05XT09EIERSSVZFCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUE0ICAgKGhleCkJCU1VTFRJUE9JTlQgTkVUV09SS1MKKzAwMjBBNCAgICAgKGJhc2UgMTYpCQlNVUxUSVBPSU5UIE5FVFdPUktTCisJCQkJMTkgREFWSVMgRFJJVkUKKwkJCQlCRUxNT05UIENBIDk0MDAyLTMwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUE1ICAgKGhleCkJCUFQSSBFTkdJTkVFUklORworMDAyMEE1ICAgICAoYmFzZSAxNikJCUFQSSBFTkdJTkVFUklORworCQkJCTI2ODkgUE9QTEFSV09PRCBXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQTYgICAoaGV4KQkJUHJveGltIFdpcmVsZXNzCiswMDIwQTYgICAgIChiYXNlIDE2KQkJUHJveGltIFdpcmVsZXNzCisJCQkJMTU2MSBCdWNrZXllIERyaXZlCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUE3ICAgKGhleCkJCVBBSVJHQUlOIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAyMEE3ICAgICAoYmFzZSAxNikJCVBBSVJHQUlOIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTE0NDAyIEZSQU5LTElOIEFWRU5VRQorCQkJCVRVU1RJTiBDQSA5MjY4MC03MDEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1BOCAgIChoZXgpCQlTQVNUIFRFQ0hOT0xPR1kgQ09SUC4KKzAwMjBBOCAgICAgKGJhc2UgMTYpCQlTQVNUIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkyMjUgT0xEIE5FVyBCUlVOU1dJQ0sgUkQuCisJCQkJU1VJVEUgIzEwMQorCQkJCVBJU0NBVEFXQVkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUE5ICAgKGhleCkJCVdISVRFIEhPUlNFIElORFVTVFJJQUwKKzAwMjBBOSAgICAgKGJhc2UgMTYpCQlXSElURSBIT1JTRSBJTkRVU1RSSUFMCisJCQkJNEYuIE5PLjE2LCBBTExFWSA1NiwgTEFORSAxODEKKwkJCQlTRUMuNCwgQ0hVTkcgSFNJQU8gRUFTVCBST0FEIFRBSVBFSQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjAtQUEgICAoaGV4KQkJRElHSU1FRElBIFZJU0lPTiBMVEQuCiswMDIwQUEgICAgIChiYXNlIDE2KQkJRElHSU1FRElBIFZJU0lPTiBMVEQuCisJCQkJQ1JBV0xFWSBDT1VSVAorCQkJCVdJTkNIRVNURVIsIEhBTVBTSElSRQorCQkJCVNPMjEgMlFBIFVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtQUIgICAoaGV4KQkJTUlDUk8gSU5EVVNUUklFUyBDT1JQLgorMDAyMEFCICAgICAoYmFzZSAxNikJCU1JQ1JPIElORFVTVFJJRVMgQ09SUC4KKwkJCQk4Mzk5IEdSRUVOIE1FQURPV1MgRFIuIE4uCisJCQkJV0VTVEVSVklMTEUgT0ggNDMwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUFDICAgKGhleCkJCUlOVEVSRkxFWCBEQVRFTlNZU1RFTUUgR01CSAorMDAyMEFDICAgICAoYmFzZSAxNikJCUlOVEVSRkxFWCBEQVRFTlNZU1RFTUUgR01CSAorCQkJCUdST0JXSUVTRU5TVFJBU0UgMjQKKwkJCQlXLTcyMDEgRFVSQ0hIQVVTRU4KKwkJCQlXRVNUR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMjAtQUQgICAoaGV4KQkJTElOUSBTWVNURU1TCiswMDIwQUQgICAgIChiYXNlIDE2KQkJTElOUSBTWVNURU1TCisJCQkJUC5PLiBCT1ggMTEwNDAKKwkJCQlUVUNTT04gQVogODU3MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUFFICAgKGhleCkJCU9STkVUIERBVEEgQ09NTVVOSUNBVElPTiBURUNILgorMDAyMEFFICAgICAoYmFzZSAxNikJCU9STkVUIERBVEEgQ09NTVVOSUNBVElPTiBURUNILgorCQkJCVAuTy4gQk9YIDMyMworCQkJCUNBUk1JRUwgIDIwMTAwCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTIwLUFGICAgKGhleCkJCTNDT00gQ09SUE9SQVRJT04KKzAwMjBBRiAgICAgKGJhc2UgMTYpCQkzQ09NIENPUlBPUkFUSU9OCisJCQkJNTQwMCBCQVlGUk9OVCBQTEFaQQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1CMCAgIChoZXgpCQlHQVRFV0FZIERFVklDRVMsIElOQy4KKzAwMjBCMCAgICAgKGJhc2UgMTYpCQlHQVRFV0FZIERFVklDRVMsIElOQy4KKwkJCQkyNDQwIFNUQU5XRUxMIERSSVZFCisJCQkJQ09OQ09SRCBDQSA5NDUyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQjEgICAoaGV4KQkJQ09NVEVDSCBSRVNFQVJDSCBJTkMuCiswMDIwQjEgICAgIChiYXNlIDE2KQkJQ09NVEVDSCBSRVNFQVJDSCBJTkMuCisJCQkJMjQyNzEgVEFIT0UKKwkJCQlMQUdVTkEgTklHVUVMIENBIDkyNjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1CMiAgIChoZXgpCQlHS0QgR2VzZWxsc2NoYWZ0IEZ1ciBLb21tdW5pa2F0aW9uIFVuZCBEYXRlbnRlY2huaWsKKzAwMjBCMiAgICAgKGJhc2UgMTYpCQlHS0QgR2VzZWxsc2NoYWZ0IEZ1ciBLb21tdW5pa2F0aW9uIFVuZCBEYXRlbnRlY2huaWsKKwkJCQkKKwkJCQlTQUFSQlVSR0VSIFJJTkcgMTAtMTIKKwkJCQk2ODIyOSBNQU5OSEVJTSAgCisJCQkJR0VSTUFOWQorCiswMC0yMC1CMyAgIChoZXgpCQlUYXR0aWxlIFNSTCAKKzAwMjBCMyAgICAgKGJhc2UgMTYpCQlUYXR0aWxlIFNSTCAKKwkJCQkzIEFQT0xMTyBQTEFDRQorCQkJCUxBTkUgQ09WRSBOLlMuVy4gMjA2NgorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC0yMC1CNCAgIChoZXgpCQlURVJNQSBFTEVLVFJPTklLIEFTCiswMDIwQjQgICAgIChiYXNlIDE2KQkJVEVSTUEgRUxFS1RST05JSyBBUworCQkJCUhPVk1BUktFTiA0LAorCQkJCURLLTg1MjAgTFlTVFJVUCAgCisJCQkJREVOTUFSSworCiswMC0yMC1CNSAgIChoZXgpCQlZQVNLQVdBIEVMRUNUUklDIENPUlBPUkFUSU9OCiswMDIwQjUgICAgIChiYXNlIDE2KQkJWUFTS0FXQSBFTEVDVFJJQyBDT1JQT1JBVElPTgorCQkJCTItMSBLVVJPU0FLSS1TSElST0lTSEkKKwkJCQlZQUhBVEFOSVNISS1LVSBLSVRBS1lVU0hVLUNJVFkKKwkJCQlKQVBBTgorCiswMC0yMC1CNiAgIChoZXgpCQlBR0lMRSBORVRXT1JLUywgSU5DLgorMDAyMEI2ICAgICAoYmFzZSAxNikJCUFHSUxFIE5FVFdPUktTLCBJTkMuCisJCQkJMjAwIEJBS0VSIEFWRU5VRQorCQkJCUNPTkNPUkQgTUEgMDE3NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUI3ICAgKGhleCkJCU5BTUFRVUEgQ09NUFVURVJXQVJFCiswMDIwQjcgICAgIChiYXNlIDE2KQkJTkFNQVFVQSBDT01QVVRFUldBUkUKKwkJCQlQLk8uIEJPWCA3MTU1CisJCQkJU1RFTExFTiBCT1NDSCA3NTk5CisJCQkJU09VVEggQUZSSUNBCisKKzAwLTIwLUI4ICAgKGhleCkJCVBSSU1FIE9QVElPTiwgSU5DLgorMDAyMEI4ICAgICAoYmFzZSAxNikJCVBSSU1FIE9QVElPTiwgSU5DLgorCQkJCTIzNDEgVy4gMjA1VEggU1RSRUVUICMxMTYKKwkJCQlUT1JSQU5DRSBDQSA5MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQjkgICAoaGV4KQkJTUVUUklDT00sIElOQy4KKzAwMjBCOSAgICAgKGJhc2UgMTYpCQlNRVRSSUNPTSwgSU5DLgorCQkJCTk4MCBVTklWRVJTSVRZIEFWRU5VRQorCQkJCUxPUyBHQVRPUyBDQSA5NTAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQkEgICAoaGV4KQkJQ0VOVEVSIEZPUiBISUdIIFBFUkZPUk1BTkNFCiswMDIwQkEgICAgIChiYXNlIDE2KQkJQ0VOVEVSIEZPUiBISUdIIFBFUkZPUk1BTkNFCisJCQkJQ09NUFVUSU5HIE9GIFdQSQorCQkJCVNVSVRFICMxNzAgMjkzIEJPU1RPTiBQT1NUIFJPQUQgVy4KKwkJCQlNQVJMQk9STyBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQkIgICAoaGV4KQkJWkFYIENPUlBPUkFUSU9OCiswMDIwQkIgICAgIChiYXNlIDE2KQkJWkFYIENPUlBPUkFUSU9OCisJCQkJMjAtMTIgT0dJS1VCTyA1LUNIT01FCisJCQkJU1VHSU5BTUktS1UgVE9LWU8KKwkJCQkxNjcgSkFQQU4KKwkJCQlKQVBBTgorCiswMC0yMC1CQyAgIChoZXgpCQlMb25nIFJlYWNoIE5ldHdvcmtzIFB0eSBMdGQKKzAwMjBCQyAgICAgKGJhc2UgMTYpCQlMb25nIFJlYWNoIE5ldHdvcmtzIFB0eSBMdGQKKwkJCQlVbml0IDMsIDExOC0xMjIgQm93ZGVuIFN0CisJCQkJTUVBRE9XQkFOSyBOU1cgMjExNCAgCisJCQkJQVVTVFJBTElBCisKKzAwLTIwLUJEICAgKGhleCkJCU5JT0JSQVJBIFIgJiBEIENPUlBPUkFUSU9OCiswMDIwQkQgICAgIChiYXNlIDE2KQkJTklPQlJBUkEgUiAmIEQgQ09SUE9SQVRJT04KKwkJCQlQTyBCT1ggMzQxOAorCQkJCUpPUExJTiBNTyA2NDgwMy0zNDE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1CRSAgIChoZXgpCQlMQU4gQUNDRVNTIENPUlAuCiswMDIwQkUgICAgIChiYXNlIDE2KQkJTEFOIEFDQ0VTUyBDT1JQLgorCQkJCTI3MzAgTU9OVEVSRVkgU1RSRUVULCBTVEUuIzEwMgorCQkJCVRPUlJBTkNFIENBIDkwNTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1CRiAgIChoZXgpCQlBRUhSIFRFU1QgU1lTVEVNUworMDAyMEJGICAgICAoYmFzZSAxNikJCUFFSFIgVEVTVCBTWVNURU1TCisJCQkJMTY2NyBQTFlNT1VUSCBTVFJFRVQKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1DMCAgIChoZXgpCQlQVUxTRSBFTEVDVFJPTklDUywgSU5DLgorMDAyMEMwICAgICAoYmFzZSAxNikJCVBVTFNFIEVMRUNUUk9OSUNTLCBJTkMuCisJCQkJNTcwNiBGUkVERVJJQ0sgQVZFTlVFCisJCQkJUk9DS1ZJTExFIE1EIDIwODUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1DMSAgIChoZXgpCQlTQVhBLCBJbmMuCiswMDIwQzEgICAgIChiYXNlIDE2KQkJU0FYQSwgSW5jLgorCQkJCU5CRiBQbGF0aW51bSBUb3dlciAxLTE3LTMgU2hpcm9rYW5lCisJCQkJTWluYXRvLWt1CisJCQkJVG9reW8gIDEwOC04MDUwCisJCQkJSkFQQU4KKworMDAtMjAtQzIgICAoaGV4KQkJVEVYQVMgTUVNT1JZIFNZU1RFTVMsIElOQy4KKzAwMjBDMiAgICAgKGJhc2UgMTYpCQlURVhBUyBNRU1PUlkgU1lTVEVNUywgSU5DLgorCQkJCTExMjAwIFdFU1RIRUlNRVIgUkQtU1RFIzEwMDAKKwkJCQlIT1VTVE9OIFRYIDc3MDQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1DMyAgIChoZXgpCQlDT1VOVEVSIFNPTFVUSU9OUyBMVEQuCiswMDIwQzMgICAgIChiYXNlIDE2KQkJQ09VTlRFUiBTT0xVVElPTlMgTFRELgorCQkJCTI2MyBIRUFHRSBST0FECisJCQkJUklQTEVZLCBERVJCWVMgREU1IDNHSCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtQzQgICAoaGV4KQkJSU5FVCxJTkMuCiswMDIwQzQgICAgIChiYXNlIDE2KQkJSU5FVCxJTkMuCisJCQkJODAxIEUuIENBTVBCRUxMLVNURS4jMzMwCisJCQkJUklDSEFSRFNPTiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQzUgICAoaGV4KQkJRUFHTEUgVEVDSE5PTE9HWQorMDAyMEM1ICAgICAoYmFzZSAxNikJCUVBR0xFIFRFQ0hOT0xPR1kKKwkJCQkyODY1IFpBTktFUiBST0FECisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUM2ICAgKGhleCkJCU5FQ1RFQworMDAyMEM2ICAgICAoYmFzZSAxNikJCU5FQ1RFQworCQkJCVJBTUEgVkkgUk9BRAorCQkJCVJBSlRIRVZJIEJBTkdLT0sgIDEwNDAwCisJCQkJVEhBSUxBTkQKKwkJCQlUSEFJTEFORAorCiswMC0yMC1DNyAgIChoZXgpCQlBS0FJIFByb2Zlc3Npb25hbCBNLkkuIENvcnAuCiswMDIwQzcgICAgIChiYXNlIDE2KQkJQUtBSSBQcm9mZXNzaW9uYWwgTS5JLiBDb3JwLgorCQkJCTEtMywgSGlyYW51bWEgMS1DaG9tZSwKKwkJCQlOaXNoaS1rdSwgWW9rb2hhbWEsCisJCQkJMjIwLTAwMjMgCisJCQkJSkFQQU4KKworMDAtMjAtQzggICAoaGV4KQkJTEFSU0NPTSBJTkNPUlBPUkFURUQKKzAwMjBDOCAgICAgKGJhc2UgMTYpCQlMQVJTQ09NIElOQ09SUE9SQVRFRAorCQkJCTQ2MDAgUEFUUklDSyBIRU5SWSBEUklWRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1DOSAgIChoZXgpCQlWSUNUUk9OIEJWCiswMDIwQzkgICAgIChiYXNlIDE2KQkJVklDVFJPTiBCVgorCQkJCVBPQiAzMQorCQkJCU5MIDk3MDAgQUEgR1JPTklOR0VOCisJCQkJVEhFIE5FVEhFUkxBTkRTCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjAtQ0EgICAoaGV4KQkJRElHSVRBTCBPQ0VBTgorMDAyMENBICAgICAoYmFzZSAxNikJCURJR0lUQUwgT0NFQU4KKwkJCQkxMTIwNiBUSE9NUFNPTiBBVkVOVUUKKwkJCQlMRU5FWEEgS1MgNjYyMTktMjMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtQ0IgICAoaGV4KQkJUFJFVEVDIEVMRUNUUk9OSUNTIENPUlAuCiswMDIwQ0IgICAgIChiYXNlIDE2KQkJUFJFVEVDIEVMRUNUUk9OSUNTIENPUlAuCisJCQkJMzk4OTkgQkFMRU5USU5FIERSLgorCQkJCVNVSVRFICMzMDUKKwkJCQlORVdBUksgQ0EgOTQ1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUNDICAgKGhleCkJCURJR0lUQUwgU0VSVklDRVMsIExURC4KKzAwMjBDQyAgICAgKGJhc2UgMTYpCQlESUdJVEFMIFNFUlZJQ0VTLCBMVEQuCisJCQkJOSBXQVlURSBTVFJFRVQKKwkJCQlDT1NIQU0gSEFNUFNISVJFCisJCQkJRU5HTEFORCBQTzYgM0JTCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjAtQ0QgICAoaGV4KQkJSFlCUklEIE5FVFdPUktTLCBJTkMuCiswMDIwQ0QgICAgIChiYXNlIDE2KQkJSFlCUklEIE5FVFdPUktTLCBJTkMuCisJCQkJMTAyMDEgQlVCQiBST0FECisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0LTQxNjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUNFICAgKGhleCkJCUxPR0lDQUwgREVTSUdOIEdST1VQLCBJTkMuCiswMDIwQ0UgICAgIChiYXNlIDE2KQkJTE9HSUNBTCBERVNJR04gR1JPVVAsIElOQy4KKwkJCQk2MzAxIENIQVBFTCBISUxMIFJPQUQKKwkJCQlSQUxFSUdIIE5DIDI3NjA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1DRiAgIChoZXgpCQlURVNUICYgTUVBU1VSRU1FTlQgU1lTVEVNUyBJTkMKKzAwMjBDRiAgICAgKGJhc2UgMTYpCQlURVNUICYgTUVBU1VSRU1FTlQgU1lTVEVNUyBJTkMKKwkJCQkyMDQ1IFNJVEtBIENPVVJUCisJCQkJTE9WRUxBTkQgQ08gODA1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUQwICAgKGhleCkJCVZFUlNBTFlOWCBDT1JQT1JBVElPTgorMDAyMEQwICAgICAoYmFzZSAxNikJCVZFUlNBTFlOWCBDT1JQT1JBVElPTgorCQkJCTg5NTAgQ0FSTEVZIENJUkNMRQorCQkJCVNBTiBESUVHTyBDQSA5MjEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRDEgICAoaGV4KQkJTUlDUk9DT01QVVRFUiBTWVNURU1TIChNKSBTRE4uCiswMDIwRDEgICAgIChiYXNlIDE2KQkJTUlDUk9DT01QVVRFUiBTWVNURU1TIChNKSBTRE4uCisJCQkJMjMtMjUsIEpBTEFOIEpFSkFLQSBUVUpVSAorCQkJCVRBTUFOIE1BTFVSSSwgQ0hFUkFTIDU1MTAwIEtVQUxBIExVTVBVUgorCQkJCU1BTEFZU0lBCisJCQkJTUFMQVlTSUEKKworMDAtMjAtRDIgICAoaGV4KQkJUkFEIERBVEEgQ09NTVVOSUNBVElPTlMsIExURC4KKzAwMjBEMiAgICAgKGJhc2UgMTYpCQlSQUQgREFUQSBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCTggSEFORUNIT1NIRVQgU1RSRUVUCisJCQkJVEVMLUFWSVYgIDY5NzEwCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTIwLUQzICAgKGhleCkJCU9TVCAoT1VFU1QgU1RBTkRBUkQgVEVMRU1BVElRVQorMDAyMEQzICAgICAoYmFzZSAxNikJCU9TVCAoT1VFU1QgU1RBTkRBUkQgVEVMRU1BVElRVQorCQkJCVJVRSBEVSBCQVMgVklMTEFHRQorCQkJCUJQIDE1OCwgWi5JLiBTVUQtRVNUIDM1NTE1IENFU1NPTi1TRVZJR04KKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMjAtRDQgICAoaGV4KQkJQ0FCTEVUUk9OIC0gWkVJVFRORVQgSU5DLgorMDAyMEQ0ICAgICAoYmFzZSAxNikJCUNBQkxFVFJPTiAtIFpFSVRUTkVUIElOQy4KKwkJCQkzNSBJTkRVU1RSSUFMIFdBWQorCQkJCVAuTy4gQk9YIDUwMDUKKwkJCQlST0hFU1RFUiBOSCAwMzg2Ni01MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1ENSAgIChoZXgpCQlWSVBBIEdNQkgKKzAwMjBENSAgICAgKGJhc2UgMTYpCQlWSVBBIEdNQkgKKwkJCQlXRVRURVJLUkVVWiAyNworCQkJCUQtOTEwNTggRVJMQU5HRU4KKwkJCQlHRVJNQU5ZCisKKzAwLTIwLUQ2ICAgKGhleCkJCUJSRUVaRUNPTQorMDAyMEQ2ICAgICAoYmFzZSAxNikJCUJSRUVaRUNPTQorCQkJCUFUSURJTSBURUNITk9MT0dJQ0FMIFBLLUJMREcuMworCQkJCVRFTC1BVklWICA2MTEzMQorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0yMC1ENyAgIChoZXgpCQlKQVBBTiBNSU5JQ09NUFVURVIgU1lTVEVNUyBDTy4sIEx0ZC4KKzAwMjBENyAgICAgKGJhc2UgMTYpCQlKQVBBTiBNSU5JQ09NUFVURVIgU1lTVEVNUyBDTy4sIEx0ZC4KKwkJCQkzLTMzLTE4IFRBS0FJRE9ISUdBU0hJCisJCQkJU1VHSU5BTUktS1UKKwkJCQlUT0tZTyAxNjggIAorCQkJCUpBUEFOCisKKzAwLTIwLUQ4ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAyMEQ4ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTQ0MDEgR3JlYXQgQW1lcmljYSBQa3d5LgorCQkJCVNhbnRhIENsYXJhIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1EOSAgIChoZXgpCQlQQU5BU09OSUMgVEVDSE5PTE9HSUVTLCBJTkMuL01JRUNPLVVTCiswMDIwRDkgICAgIChiYXNlIDE2KQkJUEFOQVNPTklDIFRFQ0hOT0xPR0lFUywgSU5DLi9NSUVDTy1VUworCQkJCTE3MDMgTi4gUkFOREFMTCBSRC4KKwkJCQlFTEdJTiBJTCA2MDEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtREEgICAoaGV4KQkJQWxjYXRlbCBOb3J0aCBBbWVyaWNhIEVTRAorMDAyMERBICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTm9ydGggQW1lcmljYSBFU0QKKwkJCQkyNjgwMSBXZXN0IEFnb3VyYSBSb2FkCisJCQkJQ0FMQUJBU0FTIENBIDkxMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1EQiAgIChoZXgpCQlYTkVUIFRFQ0hOT0xPR1ksIElOQy4KKzAwMjBEQiAgICAgKGJhc2UgMTYpCQlYTkVUIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk0MjYgUy4gSElMTFZJRVcgRFJJVkUKKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtREMgICAoaGV4KQkJREVOU0lUUk9OIFRBSVdBTiBMVEQuCiswMDIwREMgICAgIChiYXNlIDE2KQkJREVOU0lUUk9OIFRBSVdBTiBMVEQuCisJCQkJS1lPV0EgTkFOQUJBTktBTiA1RgorCQkJCTEtMTEtNSBPTU9SSS1LSVRBIE9UQS1LVSwgIFRPS1lPIDE0MworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMjAtREQgICAoaGV4KQkJQ3liZXJ0ZWMgUHR5IEx0ZAorMDAyMEREICAgICAoYmFzZSAxNikJCUN5YmVydGVjIFB0eSBMdGQKKwkJCQlVbml0IDExLCA0MSBIaWdnaW5ib3RoYW0gUm9hZAorCQkJCUdsYWRlc3ZpbGxlIE5TVyAyMTExCisJCQkJQVVTVFJBTElBCisKKzAwLTIwLURFICAgKGhleCkJCUpBUEFOIERJR0lUQUwgTEFCT1JBVCdZIENPLkxURAorMDAyMERFICAgICAoYmFzZSAxNikJCUpBUEFOIERJR0lUQUwgTEFCT1JBVCdZIENPLkxURAorCQkJCUpETCBLQVdBU0FLSSBSICYgRCBDRU5URVIKKwkJCQkxMC0xIE1JTkFNSS1LVVJPS0FXQSBBU0FPLUtVLCBLQVdBU0tBS0ktCisJCQkJS0FOQUdBV0EtS0VOICAyMTUKKwkJCQlKQVBBTgorCiswMC0yMC1ERiAgIChoZXgpCQlLWU9TQU4gRUxFQ1RSSUMgTUZHLiBDTy4sIExURC4KKzAwMjBERiAgICAgKGJhc2UgMTYpCQlLWU9TQU4gRUxFQ1RSSUMgTUZHLiBDTy4sIExURC4KKwkJCQkyLTI5LCBIRUlBTi1DSE8sIFRTVVJVTUktS1UKKwkJCQlZT0tPSEFNQSwgMjMwCisJCQkJSkFQQU4KKworMDAtMjAtRTAgICAoaGV4KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMuIAorMDAyMEUwICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jLiAKKwkJCQk3NjAgTm9ydGggTWFyeSBBdmUuCisJCQkJU3Vubnl2YWxlLiBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRTEgICAoaGV4KQkJQUxBTUFSIEVMRUNUUk9OSUNTCiswMDIwRTEgICAgIChiYXNlIDE2KQkJQUxBTUFSIEVMRUNUUk9OSUNTCisJCQkJNDg5IERJVklTSU9OIFNUUkVFVAorCQkJCUNBTVBCRUxMIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1FMiAgIChoZXgpCQlJTkZPUk1BVElPTiBSRVNPVVJDRSBFTkdJTkVFUklORworMDAyMEUyICAgICAoYmFzZSAxNikJCUlORk9STUFUSU9OIFJFU09VUkNFIEVOR0lORUVSSU5HCisJCQkJODAyOSBDT1JQT1JBVEUgRFJJVkUKKwkJCQlCQUxUSU1PUkUgTUQgMjEyMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUUzICAgKGhleCkJCU1DRCBLRU5DT00gQ09SUE9SQVRJT04KKzAwMjBFMyAgICAgKGJhc2UgMTYpCQlNQ0QgS0VOQ09NIENPUlBPUkFUSU9OCisJCQkJMjA5NTAgQ0FTVExFIFJPQ0sgUk9BRAorCQkJCUxBR1VOQSBCRUFDSCBDQSA5MjY1MS0xMTE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1FNCAgIChoZXgpCQlIU0lORyBURUNIIEVOVEVSUFJJU0UgQ08uLCBMVEQKKzAwMjBFNCAgICAgKGJhc2UgMTYpCQlIU0lORyBURUNIIEVOVEVSUFJJU0UgQ08uLCBMVEQKKwkJCQlOTy4gMiwgTEFORSAxMjgsIFNFQy4gMgorCQkJCUNIVU5HIFNIQU4gTi4gUkQuCisJCQkJVEVJUEVJLCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMC1FNSAgIChoZXgpCQlBUEVYIERBVEEsIElOQy4KKzAwMjBFNSAgICAgKGJhc2UgMTYpCQlBUEVYIERBVEEsIElOQy4KKwkJCQk2NjI0IE9XRU5TIERSSVZFCisJCQkJUExFQVNBTlRPTiBDQSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRTYgICAoaGV4KQkJTElES09QSU5HIE1BQ0hJTkUgVE9PTFMgQUIKKzAwMjBFNiAgICAgKGJhc2UgMTYpCQlMSURLT1BJTkcgTUFDSElORSBUT09MUyBBQgorCQkJCUJPWCA5MTAKKwkJCQk1MzEgMTkgTElES09QSU5HCisJCQkJU1dFREVOCisKKzAwLTIwLUU3ICAgKGhleCkJCUImVyBOVUNMRUFSIFNFUlZJQ0UgQ09NUEFOWQorMDAyMEU3ICAgICAoYmFzZSAxNikJCUImVyBOVUNMRUFSIFNFUlZJQ0UgQ09NUEFOWQorCQkJCVNQRUNJQUwgUFJPRFVDVFMgJiBJTlRFRy5TVkNTLgorCQkJCTE1NSBNSUxMIFJJREdFIFJPQUQKKwkJCQlMWU5DSEJVUkcgVkEgMjQ1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUU4ICAgKGhleCkJCURBVEFUUkVLIENPUlBPUkFUSU9OCiswMDIwRTggICAgIChiYXNlIDE2KQkJREFUQVRSRUsgQ09SUE9SQVRJT04KKwkJCQk0NTA1IFdZTEFORCBEUklWRQorCQkJCUVMS0hBUlQgSU4gNDY1MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUU5ICAgKGhleCkJCURBTlRFTAorMDAyMEU5ICAgICAoYmFzZSAxNikJCURBTlRFTAorCQkJCVAuTy4gQk9YIDU1MDEzCisJCQkJMjk5MSBOT1JUSCBBUkdZTEUgQVZFLgorCQkJCUZSRVNOTyBDQSA5MzcyNy0xMzg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1FQSAgIChoZXgpCQlFRkZJQ0lFTlQgTkVUV09SS1MsIElOQy4KKzAwMjBFQSAgICAgKGJhc2UgMTYpCQlFRkZJQ0lFTlQgTkVUV09SS1MsIElOQy4KKwkJCQk0MjAxIFNQUklORyBWQUxMRVkgUk9BRAorCQkJCVNVSVRFICMxMjAwCisJCQkJREFMTEFTIFRYIDc1MjQ0LTM2NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUVCICAgKGhleCkJCUNJTkNJTk5BVEkgTUlDUk9XQVZFLCBJTkMuCiswMDIwRUIgICAgIChiYXNlIDE2KQkJQ0lOQ0lOTkFUSSBNSUNST1dBVkUsIElOQy4KKwkJCQlPTkUgTUlDUk9XQVZFIFBMQVpBCisJCQkJQ0lOQ0lOTkFUSSBPSCA0NTI0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRUMgICAoaGV4KQkJVEVDSFdBUkUgU1lTVEVNUyBDT1JQLgorMDAyMEVDICAgICAoYmFzZSAxNikJCVRFQ0hXQVJFIFNZU1RFTVMgQ09SUC4KKwkJCQkjMTAwIC0gMTIwNTEgSE9SU0VTSE9FIFdBWQorCQkJCVJJQ0hNT05ELCBCLkMuIENBTkFEQQorCQkJCVY3QSA0VjQKKwkJCQlDQU5BREEKKworMDAtMjAtRUQgICAoaGV4KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDIwRUQgICAgIChiYXNlIDE2KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJMzY1IENMT1ZFUkxFQUYKKwkJCQlCQUxEV0lOIFBBUksgQ0EgOTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUVFICAgKGhleCkJCUdURUNIIENPUlBPUkFUSU9OCiswMDIwRUUgICAgIChiYXNlIDE2KQkJR1RFQ0ggQ09SUE9SQVRJT04KKwkJCQk1NSBURUNITk9MT0dZIFdBWQorCQkJCVdFU1QgR1JFRU5XSUNIIFJJIDAyODE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1FRiAgIChoZXgpCQlVU0MgQ09SUE9SQVRJT04KKzAwMjBFRiAgICAgKGJhc2UgMTYpCQlVU0MgQ09SUE9SQVRJT04KKwkJCQk2LTQsIE9TQUtJIDEtQ0hPTUUKKwkJCQlTSElOQUdBV0EtS1UgVE9LWU8sCisJCQkJMTQxIEpBUEFOCisJCQkJSkFQQU4KKworMDAtMjAtRjAgICAoaGV4KQkJVU5JVkVSU0FMIE1JQ1JPRUxFQ1RST05JQ1MgQ08uCiswMDIwRjAgICAgIChiYXNlIDE2KQkJVU5JVkVSU0FMIE1JQ1JPRUxFQ1RST05JQ1MgQ08uCisJCQkJMywgMjdUSCBSRC4sIFRBSUNIVU5HIElORC5QQVJLCisJCQkJVEFJQ0hVTgorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMC1GMSAgIChoZXgpCQlBTFRPUyBJTkRJQSBMSU1JVEVECiswMDIwRjEgICAgIChiYXNlIDE2KQkJQUxUT1MgSU5ESUEgTElNSVRFRAorCQkJCUQtNjAsIE9LTEhMQSBJTkRVU1RSSUFMCisJCQkJQVJFQSwgUEhBU0UgMSBORVcgREVMSEkgLTExMDAyMAorCQkJCUlORElBCisJCQkJSU5ESUEKKworMDAtMjAtRjIgICAoaGV4KQkJT3JhY2xlIENvcnBvcmF0aW9uIAorMDAyMEYyICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbiAKKwkJCQk1MDAgT3JhY2xlIFBhcmt3YXkKKwkJCQlSZWR3b29kIFNob3JlcyBDQSA5NTA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRjMgICAoaGV4KQkJUkFZTkVUIENPUlBPUkFUSU9OCiswMDIwRjMgICAgIChiYXNlIDE2KQkJUkFZTkVUIENPUlBPUkFUSU9OCisJCQkJMTU1IENPTlNUSVRVVElPTiBEUklWRQorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUY0ICAgKGhleCkJCVNQRUNUUklYIENPUlBPUkFUSU9OCiswMDIwRjQgICAgIChiYXNlIDE2KQkJU1BFQ1RSSVggQ09SUE9SQVRJT04KKwkJCQkxMDYgV0lMTU9UIFJPQUQsIFNVSVRFIDI1MAorCQkJCURFRVJGSUVMRCBJTCA2MDAxNS01MTUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1GNSAgIChoZXgpCQlQQU5EQVRFTCBBRworMDAyMEY1ICAgICAoYmFzZSAxNikJCVBBTkRBVEVMIEFHCisJCQkJRkFTQU5FTldFRyAyNQorCQkJCUQtMjIxNDUgIEhBTUJVUkcKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0yMC1GNiAgIChoZXgpCQlORVQgVEVLICBBTkQgS0FSTE5FVCwgSU5DLgorMDAyMEY2ICAgICAoYmFzZSAxNikJCU5FVCBURUsgIEFORCBLQVJMTkVULCBJTkMuCisJCQkJTElUVExFIFNUUkVBTVMKKwkJCQlUSEUgQUJCT1RTQlJPT0ssIEJPVVJORSBFTkQgQlVDS1MsIFNMOCA1CisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMC1GNyAgIChoZXgpCQlDWUJFUkRBVEEgQ09SUE9SQVRJT04KKzAwMjBGNyAgICAgKGJhc2UgMTYpCQlDWUJFUkRBVEEgQ09SUE9SQVRJT04KKwkJCQkzIEp1c3RpbiBDb3VydAorCQkJCU1PTlRFUkVZIENBIDkzOTQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1GOCAgIChoZXgpCQlDQVJSRVJBIENPTVBVVEVSUywgSU5DLgorMDAyMEY4ICAgICAoYmFzZSAxNikJCUNBUlJFUkEgQ09NUFVURVJTLCBJTkMuCisJCQkJMjMxODEgVkVSRFVHTyBEUklWRS1TVEUuIzEwNUEKKwkJCQlMQUdVTkEgSElMTFMgQ0EgOTI2NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUY5ICAgKGhleCkJCVBBUkFMSU5LIE5FVFdPUktTLCBJTkMuCiswMDIwRjkgICAgIChiYXNlIDE2KQkJUEFSQUxJTksgTkVUV09SS1MsIElOQy4KKwkJCQk0RiwgTk8uIDI3LCBTRUMuMywgUEFURUggUkQuCisJCQkJVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIwLUZBICAgKGhleCkJCUdERSBTWVNURU1TLCBJTkMuCiswMDIwRkEgICAgIChiYXNlIDE2KQkJR0RFIFNZU1RFTVMsIElOQy4KKwkJCQlQLk8uIEJPWCA4NTQ2OCAtIEJMREcuIzYxCisJCQkJU0FOIERJRUdPIENBIDkyMTg2LTU0NjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIwLUZCICAgKGhleCkJCU9DVEVMIENPTU1VTklDQVRJT05TIENPUlAuCiswMDIwRkIgICAgIChiYXNlIDE2KQkJT0NURUwgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQkxMDAxIE1VUlBIWSBSQU5DSCBSRAorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMC1GQyAgIChoZXgpCQlNQVRST1gKKzAwMjBGQyAgICAgKGJhc2UgMTYpCQlNQVRST1gKKwkJCQkxMDU1IFNULiBSRUdJUywKKwkJCQlET1JWQUwsIFFVRUJFQyAgSDlQLTJUNCAgCisJCQkJQ0FOQURBCisKKzAwLTIwLUZEICAgKGhleCkJCUlUViBURUNITk9MT0dJRVMsIElOQy4KKzAwMjBGRCAgICAgKGJhc2UgMTYpCQlJVFYgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNjgwMCBPV0VOU01PVVRIIEFWRS4gICMyMzAKKwkJCQlDQU5PR0EgUEFSSyBDQSA5MTMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjAtRkUgICAoaGV4KQkJVE9QV0FSRSBJTkMuIC8gR1JBTkQgQ09NUFVURVIKKzAwMjBGRSAgICAgKGJhc2UgMTYpCQlUT1BXQVJFIElOQy4gLyBHUkFORCBDT01QVVRFUgorCQkJCUNPUlBPUkFUSU9OCisJCQkJQjEsIE5PLiA5LCBMQU5FIDUwIFNFQ1RJT04gMywgTkFOIEtBTkcgUgorCQkJCVRBSVBFSSAgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMC1GRiAgIChoZXgpCQlTWU1NRVRSSUNBTCBURUNITk9MT0dJRVMKKzAwMjBGRiAgICAgKGJhc2UgMTYpCQlTWU1NRVRSSUNBTCBURUNITk9MT0dJRVMKKwkJCQk1MDAgSFVOVE1BUiBQQVJLIERSSVZFCisJCQkJSEVSTkRPTiBWQSAyMjA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMDAgICAoaGV4KQkJR2VtVGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDIxMDAgICAgIChiYXNlIDE2KQkJR2VtVGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uMSBKZW4gQWkgUm9hZCwgSHNpbmNodSBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHVrb3UsIEhzaW5jaHUgMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMS0wMSAgIChoZXgpCQlBcGxpY2FjaW9uZXMgRWxlY3Ryb25pY2FzIFF1YXNhciAoQUVRKQorMDAyMTAxICAgICAoYmFzZSAxNikJCUFwbGljYWNpb25lcyBFbGVjdHJvbmljYXMgUXVhc2FyIChBRVEpCisJCQkJQy9SZXkgUGFzdG9yIDQwCisJCQkJUG9saWdvbm8gSW5kdXN0cmlhbCBCdXRhcnF1ZQorCQkJCUxlZ2FuZXMgTWFkcmlkIDI4OTE0CisJCQkJU1BBSU4KKworMDAtMjEtMDIgICAoaGV4KQkJVXBkYXRlTG9naWMgSW5jLgorMDAyMTAyICAgICAoYmFzZSAxNikJCVVwZGF0ZUxvZ2ljIEluYy4KKwkJCQkyIFdpbGxvdyBTdHJlZXQsIFN1aXRlIDEwMQorCQkJCVNvdXRoYm9yb3VnaCBNQSAwMTc0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMDMgICAoaGV4KQkJR0hJIEVsZWN0cm9uaWNzLCBMTEMKKzAwMjEwMyAgICAgKGJhc2UgMTYpCQlHSEkgRWxlY3Ryb25pY3MsIExMQworCQkJCTM1NTU1IEdhcmZpZWxkIFJkLgorCQkJCVN1aXRlIDRCCisJCQkJQ2xpbnRvbiBUb3duc2hpcCBNSSA0ODAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMDQgICAoaGV4KQkJR2lnYXNldCBDb21tdW5pY2F0aW9ucyBHbWJICiswMDIxMDQgICAgIChiYXNlIDE2KQkJR2lnYXNldCBDb21tdW5pY2F0aW9ucyBHbWJICisJCQkJRnJhbmtlbnN0cmFzc2UgMgorCQkJCTQ2Mzk1IEJvY2hvbHQgCisJCQkJR0VSTUFOWQorCiswMC0yMS0wNSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudAorMDAyMTA1ICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50CisJCQkJNzAxIEUuIE1pZGRsZWZpZWxkIFJkLgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTA2ICAgKGhleCkJCVJJTSBUZXN0aW5nIFNlcnZpY2VzCiswMDIxMDYgICAgIChiYXNlIDE2KQkJUklNIFRlc3RpbmcgU2VydmljZXMKKwkJCQk0NDAgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPTiBOMkwgNVI5CisJCQkJQ0FOQURBCisKKzAwLTIxLTA3ICAgKGhleCkJCVNlb3dvbmludGVjaCBDbyBMdGQuCiswMDIxMDcgICAgIChiYXNlIDE2KQkJU2Vvd29uaW50ZWNoIENvIEx0ZC4KKwkJCQk2ODktNDcgR2V1bWplb25nZG9uZworCQkJCUd1bnBvc2kgS3lvdW5na2lkbyA0MzYtODYyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTA4ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDIxMDggICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTIxLTA5ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDIxMDkgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTIxLTBBICAgKGhleCkJCWJ5ZDpzaWduIENvcnBvcmF0aW9uCiswMDIxMEEgICAgIChiYXNlIDE2KQkJYnlkOnNpZ24gQ29ycG9yYXRpb24KKwkJCQkyLTEwLTYgVHN1a2lqaQorCQkJCUJQUyBTUVVBUkUgMkYKKwkJCQlDaHVvLWt1IFRva3lvIDEwNC0wMDQ1CisJCQkJSkFQQU4KKworMDAtMjEtMEIgICAoaGV4KQkJR0VNSU5JIFRSQVpFIFJGSUQgUFZULiBMVEQuCiswMDIxMEIgICAgIChiYXNlIDE2KQkJR0VNSU5JIFRSQVpFIFJGSUQgUFZULiBMVEQuCisJCQkJMSwgRFIuIFJBTkdBIFJPQUQKKwkJCQlBTFdBUlBFVAorCQkJCUNIRU5OQUkgVEFNSUxOQURVIDYwMDAxOAorCQkJCUlORElBCisKKzAwLTIxLTBDICAgKGhleCkJCUN5bXRlYyBTeXN0ZW1zLCBJbmMuCiswMDIxMEMgICAgIChiYXNlIDE2KQkJQ3ltdGVjIFN5c3RlbXMsIEluYy4KKwkJCQkxMDg0NSBPbGl2ZSBCb3VsZXZlYXJkCisJCQkJU3VpdGUgMzA2CisJCQkJU3QgTG91aXMgTU8gNjMxNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTBEICAgKGhleCkJCVNBTVNJTiBJTk5PVEVDCiswMDIxMEQgICAgIChiYXNlIDE2KQkJU0FNU0lOIElOTk9URUMKKwkJCQlTQVJJWVVORE9ORyBJTFNBTkRPTkctR1UKKwkJCQkyNTItMjMKKwkJCQlHT1lBTkcgS1lVTkdHSSA0MTE1MzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtMEUgICAoaGV4KQkJT3JwYWsgU3lzdGVtcyBMLlQuRC4KKzAwMjEwRSAgICAgKGJhc2UgMTYpCQlPcnBhayBTeXN0ZW1zIEwuVC5ELgorCQkJCTMxIExlY2hpIFN0CisJCQkJQm5laSAtIEJyYWsgIDUxMTE0CisJCQkJSVNSQUVMCisKKzAwLTIxLTBGICAgKGhleCkJCUNlcm5pdW0gQ29ycAorMDAyMTBGICAgICAoYmFzZSAxNikJCUNlcm5pdW0gQ29ycAorCQkJCTE5NDMgSXNhYWMgTmV3dG9uIFNxCisJCQkJU3VpdGUgMjAwCisJCQkJUmVzdG9uIFZBIDIwMTkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0xMCAgIChoZXgpCQlDbGVhcmJveCBTeXN0ZW1zCiswMDIxMTAgICAgIChiYXNlIDE2KQkJQ2xlYXJib3ggU3lzdGVtcworCQkJCVVuaXQgMTEsIDEyLTE0IEJlYXVtb250IFJvYWQKKwkJCQlNdCBLdXJpbmctR2FpIE5TVyAyMDgwCisJCQkJQVVTVFJBTElBCisKKzAwLTIxLTExICAgKGhleCkJCVVuaXBob25lIEluYy4KKzAwMjExMSAgICAgKGJhc2UgMTYpCQlVbmlwaG9uZSBJbmMuCisJCQkJNzk1IE1haW4gU3RyZWV0CisJCQkJSGFsZiBNb29uIEJheSBDQSA5NDAxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMTIgICAoaGV4KQkJV0lTQ09NIFNZU1RFTSBDTy4sTFRECiswMDIxMTIgICAgIChiYXNlIDE2KQkJV0lTQ09NIFNZU1RFTSBDTy4sTFRECisJCQkJMTAwIEppYW5nanVuIFJvYWQsSmlhbmduaW5nLAorCQkJCU5hbmppbmcgIDIxMTEwMAorCQkJCUNISU5BCisKKzAwLTIxLTEzICAgKGhleCkJCVBhZHRlYyBTL0EKKzAwMjExMyAgICAgKGJhc2UgMTYpCQlQYWR0ZWMgUy9BCisJCQkJUm9hZCBDYW1waW5hcyBNb2dpLU1pcmltIGttIDExOCw1CisJCQkJQ2FtcGluYXMgU8OjbyBQYXVsbyAxMzA4Ni05MDIKKwkJCQlCUkFaSUwKKworMDAtMjEtMTQgICAoaGV4KQkJSHlsYWIgVGVjaG5vbG9neSBJbmMuCiswMDIxMTQgICAgIChiYXNlIDE2KQkJSHlsYWIgVGVjaG5vbG9neSBJbmMuCisJCQkJMTVGLTIuLE5vLjg3MixKaG9uZ2poZW5nIFJkLgorCQkJCUpob25naGUgQ2l0eSwgVGFpcGVpIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjEtMTUgICAoaGV4KQkJUEhZV0UgU3lzdGVtZSBHbWJIICYgQ28uIEtHCiswMDIxMTUgICAgIChiYXNlIDE2KQkJUEhZV0UgU3lzdGVtZSBHbWJIICYgQ28uIEtHCisJCQkJUm9iZXJ0LUJvc2NoLUJyZWl0ZSAxMAorCQkJCUdvZXR0aW5nZW4gTmllZGVyc2FjaHNlbiAzNzA3OQorCQkJCUdFUk1BTlkKKworMDAtMjEtMTYgICAoaGV4KQkJVHJhbnNjb24gRWxlY3Ryb25pYyBTeXN0ZW1zLCBzcG9sLiBzIHIuIG8uCiswMDIxMTYgICAgIChiYXNlIDE2KQkJVHJhbnNjb24gRWxlY3Ryb25pYyBTeXN0ZW1zLCBzcG9sLiBzIHIuIG8uCisJCQkJS3ZhcGlsb3ZhIDIxMzMKKwkJCQlGcnlkZWstTWlzdGVrICA3MzgwMgorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTIxLTE3ICAgKGhleCkJCVRlbGxvcmQKKzAwMjExNyAgICAgKGJhc2UgMTYpCQlUZWxsb3JkCisJCQkJR3Vyb2d1IEd1cm9kb25nIDE3MC01IFdvb2xpbSBlLUJpeiBDZW50ZXIgNzA5CisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtMTggICAoaGV4KQkJQXRoZW5hIFRlY2gsIEluYy4KKzAwMjExOCAgICAgKGJhc2UgMTYpCQlBdGhlbmEgVGVjaCwgSW5jLgorCQkJCTM3MjEgTWFjaW50b3NoIERyCisJCQkJVmludCBIaWxsIFRlY2ggUGFyaworCQkJCVdhcnJlbnRvbiBWQSAyMDE4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMTkgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvLU1lY2hhbmljcworMDAyMTE5ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryby1NZWNoYW5pY3MKKwkJCQkzMTQsIE1ldGFuIDMgZG9uZworCQkJCVN1d29uIEt5dW5nLWdpIGRvIDQ0My03NDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtMUEgICAoaGV4KQkJTEluVGVjaCBDb3Jwb3JhdGlvbgorMDAyMTFBICAgICAoYmFzZSAxNikJCUxJblRlY2ggQ29ycG9yYXRpb24KKwkJCQlLcmFzbm9rYXphcm1lbm5heWEgc3QuLCAxMgorCQkJCU1vc2NvdyAgMTExMjUwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTIxLTFCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjExQiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0xQyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIxMUMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMUQgICAoaGV4KQkJRGF0YWxpbmUgQUIKKzAwMjExRCAgICAgKGJhc2UgMTYpCQlEYXRhbGluZSBBQgorCQkJCUthdHJpbmVkYWxzZ2F0YW4gNTMKKwkJCQlCT1LDg+KAplMgIFMtNTA0NTEKKwkJCQlTV0VERU4KKworMDAtMjEtMUUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjExRSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTFGICAgKGhleCkJCVNISU5TVU5HIERFTFRBVEVDSCBDTy4sTFRELgorMDAyMTFGICAgICAoYmFzZSAxNikJCVNISU5TVU5HIERFTFRBVEVDSCBDTy4sTFRELgorCQkJCTQ0LTEwCisJCQkJVU5HTkFNLURPTkcKKwkJCQlDSEFOR1dPTi1DSVRZIEtZVU5HTkFNLURPIDY0MS0yOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtMjAgICAoaGV4KQkJU2VxdWVsIFRlY2hub2xvZ2llcworMDAyMTIwICAgICAoYmFzZSAxNikJCVNlcXVlbCBUZWNobm9sb2dpZXMKKwkJCQkyOTUxIENsZXZlbGFuZCBBdmUgTgorCQkJCVJvc2V2aWxsZSBNTiA1NTExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMjEgICAoaGV4KQkJVlJtYWdpYyBHbWJICiswMDIxMjEgICAgIChiYXNlIDE2KQkJVlJtYWdpYyBHbWJICisJCQkJQXVndXN0YWFubGFnZSAzMgorCQkJCU1hbm5oZWltIEJXIDY4MTY1CisJCQkJR0VSTUFOWQorCiswMC0yMS0yMiAgIChoZXgpCQlDaGlwLXBybyBMdGQuCiswMDIxMjIgICAgIChiYXNlIDE2KQkJQ2hpcC1wcm8gTHRkLgorCQkJCTVGLi00LCBOby42MywgU2l3ZWkgUmQuLCBOb3J0aCBEaXN0cmljdCwKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIxLTIzICAgKGhleCkJCUFlcm9zYXQgQXZpb25pY3MKKzAwMjEyMyAgICAgKGJhc2UgMTYpCQlBZXJvc2F0IEF2aW9uaWNzCisJCQkJNjIgU3RhdGUgUmQuCisJCQkJMTAxQSBTdWl0ZSAyQgorCQkJCUFtaGVyc3QgTkggMDMwMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTI0ICAgKGhleCkJCU9wdG9zIFBsYworMDAyMTI0ICAgICAoYmFzZSAxNikJCU9wdG9zIFBsYworCQkJCVF1ZWVuc2ZlcnJ5IEhvdXNlCisJCQkJQ2FybmVnaWUgQnVzaW5lc3MgQ2FtcHVzCisJCQkJRHVuZmVybWxpbmUgRmlmZSBLWTExIDhHUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIxLTI1ICAgKGhleCkJCUtVSyBKRSBUT05HIFNISU4gQ28uLExURAorMDAyMTI1ICAgICAoYmFzZSAxNikJCUtVSyBKRSBUT05HIFNISU4gQ28uLExURAorCQkJCTQ3Ni0zCisJCQkJSmFrSmVvbi1Eb25nLAorCQkJCUluY2hlb24gS3dhbmd5b3VrLVNpIDQwNy0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtMjYgICAoaGV4KQkJU2hlbnpoZW4gVG9yY2ggRXF1aXBtZW50IENvLiwgTHRkLgorMDAyMTI2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFRvcmNoIEVxdWlwbWVudCBDby4sIEx0ZC4KKwkJCQlGbG9vciA1LCBCbG9jayAzLCBMaW1pbmcgSW5kdXN0cmlhbCBEaXN0cmljdCwgWmhvbmdzaGFueXVhbiBSb2FkLCBOYW5zaGFuLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTIKKwkJCQlDSElOQQorCiswMC0yMS0yNyAgIChoZXgpCQlUUC1MSU5LIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDIxMjcgICAgIChiYXNlIDE2KQkJVFAtTElOSyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCVNvdXRoIEJ1aWxkaW5nLCBOby41IEtleXVhbiBSb2FkLCBDZW50cmFsIFpvbmUsCisJCQkJU2NpZW5jZSAmIFRlY2hub2xvZ3kgUGFyayxOYW5zaGFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzAwLTIxLTI4ICAgKGhleCkJCU9yYWNsZSBDb3Jwb3JhdGlvbgorMDAyMTI4ICAgICAoYmFzZSAxNikJCU9yYWNsZSBDb3Jwb3JhdGlvbgorCQkJCTE3IE5ldHdvcmsgQ2lyY2xlCisJCQkJQnVpbGRpbmcgMTcsIFVNUEsxNy0xMzEKKwkJCQlNZW5sbyBQYXJrIENBIDk1MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0yOSAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzAwMjEyOSAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMjEgVGhlb3J5IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTJBICAgKGhleCkJCUF1ZGlvdm94IENvcnBvcmF0aW9uCiswMDIxMkEgICAgIChiYXNlIDE2KQkJQXVkaW92b3ggQ29ycG9yYXRpb24KKwkJCQkxNTAgTWFyY3VzIEJsdmQKKwkJCQlIYXVwcGF1Z2UgTlkgMTE3ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTJCICAgKGhleCkJCU1TQSBBdWVyCiswMDIxMkIgICAgIChiYXNlIDE2KQkJTVNBIEF1ZXIKKwkJCQlUaGllbWFubnN0ci4gMQorCQkJCUJlcmxpbiAgMTIwNTkKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLTJDICAgKGhleCkJCVNlbUluZGlhIFN5c3RlbSBQcml2YXRlIExpbWl0ZWQKKzAwMjEyQyAgICAgKGJhc2UgMTYpCQlTZW1JbmRpYSBTeXN0ZW0gUHJpdmF0ZSBMaW1pdGVkCisJCQkJTm8uIDExMDYvOSwgQS5NIEluZHVzdHJpYWwgRXN0YXRlLCBHYXJ2ZWJoYXZpcGFseWEKKwkJCQk3dGggbWlsZSwgSG9zdXIgUm9hZAorCQkJCUJhbmdhbG9yZSBLYXJuYXRha2EgNTYwIDA2OAorCQkJCUlORElBCisKKzAwLTIxLTJEICAgKGhleCkJCVNDSU1PTEVYIENPUlBPUkFUSU9OCiswMDIxMkQgICAgIChiYXNlIDE2KQkJU0NJTU9MRVggQ09SUE9SQVRJT04KKwkJCQkyNDMwLCBTYWlqb3UsIFNob3dhLWNobworCQkJCU5ha2Frb21hLWd1biwgWWFtYW5hc2hpICA0MDktMzg2NgorCQkJCUpBUEFOCisKKzAwLTIxLTJFICAgKGhleCkJCWRyZXNkZW4tZWxla3Ryb25paworMDAyMTJFICAgICAoYmFzZSAxNikJCWRyZXNkZW4tZWxla3Ryb25paworCQkJCUdsYXNld2FsZHRzdHJhw4PFuGUgMjIKKwkJCQlEcmVzZGVuIFNheG9ueSBELTAxMjc3CisJCQkJR0VSTUFOWQorCiswMC0yMS0yRiAgIChoZXgpCQlQaG9lYmUgTWljcm8gSW5jLgorMDAyMTJGICAgICAoYmFzZSAxNikJCVBob2ViZSBNaWNybyBJbmMuCisJCQkJNDc2MDYgS2F0byBSZAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTMwICAgKGhleCkJCUtlaWNvIEhpZ2h0ZWNoIEluYy4KKzAwMjEzMCAgICAgKGJhc2UgMTYpCQlLZWljbyBIaWdodGVjaCBJbmMuCisJCQkJQWNlIHR3aW4gdG93ZXIgSSwgMTJ0aCBGbC4KKwkJCQkyMTItMSwgR3Vyby1kb25nLCBndXJvLWd1CisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtMzEgICAoaGV4KQkJQmx5bmtlIEluYy4KKzAwMjEzMSAgICAgKGJhc2UgMTYpCQlCbHlua2UgSW5jLgorCQkJCTEzMyBSaWNobW9uZCBTdC4gV2VzdAorCQkJCVN1aXRlIDYwMAorCQkJCVRvcm9udG8gT250YXJpbyBNNUggMkwzCisJCQkJQ0FOQURBCisKKzAwLTIxLTMyICAgKGhleCkJCU1hc3RlcmNsb2NrLCBJbmMuCiswMDIxMzIgICAgIChiYXNlIDE2KQkJTWFzdGVyY2xvY2ssIEluYy4KKwkJCQkyNDg0IFdlc3QgQ2xheSBTdC4KKwkJCQlTdC4gQ2hhcmxlcyBNTyA2MzMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMzMgICAoaGV4KQkJQnVpbGRpbmcgQiwgSW5jCiswMDIxMzMgICAgIChiYXNlIDE2KQkJQnVpbGRpbmcgQiwgSW5jCisJCQkJMTAwMCBOVyA2NXRoIFN0cmVldCwgU3VpdGUgMzAwCisJCQkJRnQuIExhdWRlcmRhbGUgRkwgMzMzMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTM0ICAgKGhleCkJCUJyYW5keXdpbmUgQ29tbXVuaWNhdGlvbnMKKzAwMjEzNCAgICAgKGJhc2UgMTYpCQlCcmFuZHl3aW5lIENvbW11bmljYXRpb25zCisJCQkJMTE1MyBXYXJuZXIgQXZlCisJCQkJVHVzdGluIENBIDkyNzgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0zNSAgIChoZXgpCQlBTENBVEVMLUxVQ0VOVAorMDAyMTM1ICAgICAoYmFzZSAxNikJCUFMQ0FURUwtTFVDRU5UCisJCQkJUmFtaXJleiBkZSBQcmFkbyA1CisJCQkJTWFkcmlkICAyODA0NQorCQkJCVNQQUlOCisKKzAwLTIxLTM2ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIxMzYgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gVVMgSGlnaHdheSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtMzcgICAoaGV4KQkJQmF5IENvbnRyb2xzLCBMTEMKKzAwMjEzNyAgICAgKGJhc2UgMTYpCQlCYXkgQ29udHJvbHMsIExMQworCQkJCTY1MjggV2VhdGhlcmZpZWxkIEN0CisJCQkJTWF1bWVlIE9IIDQzNTM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0zOCAgIChoZXgpCQlDZXBoZWlkCiswMDIxMzggICAgIChiYXNlIDE2KQkJQ2VwaGVpZAorCQkJCTkwNCBDYXJpYmJlYW4gRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTM5ICAgKGhleCkJCUVzY2hlcmxvZ2ljIEluYy4KKzAwMjEzOSAgICAgKGJhc2UgMTYpCQlFc2NoZXJsb2dpYyBJbmMuCisJCQkJMTQ4MSBSb3NlYmFuayBSZC4KKwkJCQlQaWNrZXJpbmcgT250YXJpbyBMMVYgMVAzCisJCQkJQ0FOQURBCisKKzAwLTIxLTNBICAgKGhleCkJCVdpbmNoZXN0ZXIgU3lzdGVtcyBJbmMuCiswMDIxM0EgICAgIChiYXNlIDE2KQkJV2luY2hlc3RlciBTeXN0ZW1zIEluYy4KKwkJCQkxMDEgQmlsbGVyaWNhIEF2ZW51ZQorCQkJCUJsZGcgNSBzdWl0ZSAxMDEKKwkJCQlCaWxsZXJpY2EsIE1BIDAxODYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0zQiAgIChoZXgpCQlCZXJrc2hpcmUgUHJvZHVjdHMsIEluYworMDAyMTNCICAgICAoYmFzZSAxNikJCUJlcmtzaGlyZSBQcm9kdWN0cywgSW5jCisJCQkJUE8gQm94IDI4MTkKKwkJCQlDdW1taW5nIEdBIDMwMDI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0zQyAgIChoZXgpCQlBbGlwaENvbQorMDAyMTNDICAgICAoYmFzZSAxNikJCUFsaXBoQ29tCisJCQkJMTUwIEV4ZWN1dGl2ZSBQYXJrIEJsdmQKKwkJCQlTdWl0ZSA0NTUwCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtM0QgICAoaGV4KQkJQ2VybWV0ZWsgTWljcm9lbGVjdHJvbmljcywgSW5jLgorMDAyMTNEICAgICAoYmFzZSAxNikJCUNlcm1ldGVrIE1pY3JvZWxlY3Ryb25pY3MsIEluYy4KKwkJCQkzNzQgVHVycXVvaXNlIFN0cmVldAorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS0zRSAgIChoZXgpCQlUb21Ub20KKzAwMjEzRSAgICAgKGJhc2UgMTYpCQlUb21Ub20KKwkJCQlPb3N0ZXJkb2tzc3RyYWF0IDExNAorCQkJCUFtc3RlcmRhbSBOb3J0aCBIb2xsYW5kIDEwMTEgREsKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMS0zRiAgIChoZXgpCQlBLVRlYW0gVGVjaG5vbG9neSBMdGQuCiswMDIxM0YgICAgIChiYXNlIDE2KQkJQS1UZWFtIFRlY2hub2xvZ3kgTHRkLgorCQkJCVJtLiAxNjA4LCAxNi9GLiwgTWV0cm9wb2xlIFNxdWFyZSwKKwkJCQkyIE9uIFlpdSBTdC4sIFNoYXRpbiwKKwkJCQlOZXcgVGVycml0b3JpZXMsICAKKwkJCQlIT05HIEtPTkcKKworMDAtMjEtNDAgICAoaGV4KQkJRU4gVGVjaG5vbG9naWVzIEluYy4KKzAwMjE0MCAgICAgKGJhc2UgMTYpCQlFTiBUZWNobm9sb2dpZXMgSW5jLgorCQkJCUdldW1ib2sgQmxkZy4gOUYsIEJhbmQteWktZG9uZyA0NS0yLCBTb25ncGEtZ3UKKwkJCQlTZW91bCAgMTM4LTgyOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS00MSAgIChoZXgpCQlSQURMSVZFCiswMDIxNDEgICAgIChiYXNlIDE2KQkJUkFETElWRQorCQkJCTQgSGFuZWNob3NoZXQgU3QuCisJCQkJVGVsIEF2aXYgIDY5NzEwCisJCQkJSVNSQUVMCisKKzAwLTIxLTQyICAgKGhleCkJCUFkdmFuY2VkIENvbnRyb2wgU3lzdGVtcyBkb28KKzAwMjE0MiAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBDb250cm9sIFN5c3RlbXMgZG9vCisJCQkJQnVsZXZhciBab3JhbmEgRGppbmRqaWNhIDhhCisJCQkJQmVsZ3JhZGUgU2VyYmlhIDExMDcwCisKKzAwLTIxLTQzICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIxNDMgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS00NCAgIChoZXgpCQlTUyBUZWxlY29tcworMDAyMTQ0ICAgICAoYmFzZSAxNikJCVNTIFRlbGVjb21zCisJCQkJMjMgQm90aGEgQXZlbnVlCisJCQkJTHl0dGVsdG9uIE1hbm9yCisJCQkJQ2VudHVyaW9uIEdhdXRlbmcgMDE0MAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0yMS00NSAgIChoZXgpCQlTZW1wdGlhbiBUZWNobm9sb2dpZXMgTHRkLgorMDAyMTQ1ICAgICAoYmFzZSAxNikJCVNlbXB0aWFuIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJTm8uIDgwOSwgIFRvd2VyIEIsIFNoaSBKaSBLZSBNYW8KKwkJCQlOby4gNjYgUmQuIFpob25nZ3VhbiBDdW4gRG9uZworCQkJCUJlaWppbmcgIDEwMDE5MAorCQkJCUNISU5BCisKKzAwLTIxLTQ2ICAgKGhleCkJCVNDSSBUZWNobm9sb2d5CiswMDIxNDYgICAgIChiYXNlIDE2KQkJU0NJIFRlY2hub2xvZ3kKKwkJCQlQT0IgMTAwMAorCQkJCUh1bnRzdmlsbGUgQUwgMzU4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTQ3ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyMTQ3ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTIxLTQ4ICAgKGhleCkJCUthY28gU29sYXIgS29yZWEKKzAwMjE0OCAgICAgKGJhc2UgMTYpCQlLYWNvIFNvbGFyIEtvcmVhCisJCQkJQ2h1bmctd29uLWt1IFNhbmctZGVhLXdvbi1kb25nIDMzMy0xCisJCQkJU29uZ25hbSBLeXVuZy1raWRvIDQ2Mi04MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtNDkgICAoaGV4KQkJQ2hpbmEgRGFoZW5nIEdyb3VwICxJbmMuCiswMDIxNDkgICAgIChiYXNlIDE2KQkJQ2hpbmEgRGFoZW5nIEdyb3VwICxJbmMuCisJCQkJMTJGIERhaGVuZyBTY2llbmNlICYgVGVjaG5vbG9neSBUb3dlciAsTk8uMyBTdXpob3UgU3RyLgorCQkJCUJlaWppbmcgIDEwMDA4MAorCQkJCUNISU5BCisKKzAwLTIxLTRBICAgKGhleCkJCVBpeGVsIFZlbG9jaXR5LCBJbmMKKzAwMjE0QSAgICAgKGJhc2UgMTYpCQlQaXhlbCBWZWxvY2l0eSwgSW5jCisJCQkJMzkxNyBSZXNlYXJjaCBQYXJrIERyLgorCQkJCVN1aXRlIEI3CisJCQkJQW5uIEFyYm9yIE1JIDQ4MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS00QiAgIChoZXgpCQlTaGVuemhlbiBIQU1QIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLixMdGQKKzAwMjE0QiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBIQU1QIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlOby4zMDItMzAzLDMgRmxvb3IsRGlzdHJpY3QgQSxUQ0wgVG93ZXIsR2FveGluIE5hbiBZaSBSb2FkLE5hblNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjEtNEMgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPTklDUyBDTy4sIExURC4KKzAwMjE0QyAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCTQxNiwgTUVUQU4tM0RPTkcsCisJCQkJWU9VTkdUT05HLUdVCisJCQkJU1VXT04gS1lVTkdLSS1ETyA0NDItNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTREICAgKGhleCkJCUd1YW5nemhvdSBTa3l0b25lIFRyYW5zbWlzc2lvbiBUZWNobm9sb2d5IENvbS4gTHRkLgorMDAyMTREICAgICAoYmFzZSAxNikJCUd1YW5nemhvdSBTa3l0b25lIFRyYW5zbWlzc2lvbiBUZWNobm9sb2d5IENvbS4gTHRkLgorCQkJCTMvRiBXZXN0LCBCbG9jayA0LCBIdWFuZ3pob3UKKwkJCQlJbmR1c3RyaWFsIFBhcmssIENoZWJlaSBSb2FkLgorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgNTEwNjYwCisJCQkJQ0hJTkEKKworMDAtMjEtNEUgICAoaGV4KQkJR1MgWXVhc2EgUG93ZXIgU3VwcGx5IEx0ZC4KKzAwMjE0RSAgICAgKGJhc2UgMTYpCQlHUyBZdWFzYSBQb3dlciBTdXBwbHkgTHRkLgorCQkJCTEsIElub2JhbmJhLWNobywgTmlzaGlub3NobywgS2lzc2hvaW4sIE1pbmFtaS1rdSwKKwkJCQlLeW90byAgNjAxLTg1MjAKKwkJCQlKQVBBTgorCiswMC0yMS00RiAgIChoZXgpCQlBTFBTIEVsZWN0cmljIENvLiwgTHRkCiswMDIxNEYgICAgIChiYXNlIDE2KQkJQUxQUyBFbGVjdHJpYyBDby4sIEx0ZAorCQkJCTEtMi0xLCBPa2lub3VjaGkKKwkJCQlTb21hIGNpdHkgRnVrdXNoaW1hIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMjEtNTAgICAoaGV4KQkJRVlFVklFVyBFTEVDVFJPTklDUworMDAyMTUwICAgICAoYmFzZSAxNikJCUVZRVZJRVcgRUxFQ1RST05JQ1MKKwkJCQkzIEZsb29yLCBOby4gODYsIEt1bmcgWWVoIDMyIFJvYWQKKwkJCQlUQUlDSFVORyAgNDA3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMS01MSAgIChoZXgpCQlNaWxsaW5ldCBDby4sIEx0ZC4KKzAwMjE1MSAgICAgKGJhc2UgMTYpCQlNaWxsaW5ldCBDby4sIEx0ZC4KKwkJCQkyRiwgV2VzdCBCdWlsZGluZywgSVQgVmVudHVyZSBUb3dlciwgNzgsIEdhcmFrYm9uLURvbmcKKwkJCQlTb25ncGEtZ3UgU2VvdWwgMTM4LTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS01MiAgIChoZXgpCQlHZW5lcmFsIFNhdGVsbGl0ZSBSZXNlYXJjaCAmIERldmVsb3BtZW50IExpbWl0ZWQKKzAwMjE1MiAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIFNhdGVsbGl0ZSBSZXNlYXJjaCAmIERldmVsb3BtZW50IExpbWl0ZWQKKwkJCQlMaXQuICJFIiwgYnVpbGRpbmcgMiwgNCBOb3ZvbGFkb3poc2theWEgc3RyCisJCQkJU2FpbnQgUGV0ZXJzYnVyZyAgMTk3MTEwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTIxLTUzICAgKGhleCkJCVNlYU1pY3JvIEluYy4KKzAwMjE1MyAgICAgKGJhc2UgMTYpCQlTZWFNaWNybyBJbmMuCisJCQkJMzI1MCBKYXkgU3RyZWV0CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTU0ICAgKGhleCkJCUQtVEFDUSBTb2x1dGlvbnMgTHRkCiswMDIxNTQgICAgIChiYXNlIDE2KQkJRC1UQUNRIFNvbHV0aW9ucyBMdGQKKwkJCQlKYW1lcyBXYXR0IEJ1aWxkaW5nCisJCQkJU0VUUAorCQkJCUVhc3QgS2lsYnJpZGUgTGFuYXJrc2hpcmUgRzc1IDBRRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIxLTU1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjE1NSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS01NiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIxNTYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNTcgICAoaGV4KQkJTmF0aW9uYWwgRGF0YWNhc3QsIEluYy4KKzAwMjE1NyAgICAgKGJhc2UgMTYpCQlOYXRpb25hbCBEYXRhY2FzdCwgSW5jLgorCQkJCTIxMDAgQ3J5c3RhbCBEcml2ZSwgU3VpdGUgNzUwCisJCQkJQXJsaW5ndG9uIFZBIDIyMjAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS01OCAgIChoZXgpCQlTdHlsZSBGbHlpbmcgVGVjaG5vbG9neSBDby4KKzAwMjE1OCAgICAgKGJhc2UgMTYpCQlTdHlsZSBGbHlpbmcgVGVjaG5vbG9neSBDby4KKwkJCQkyMi9GLEN5YmVyIFRvd2VyIEIsTm8uMiBaaG9uZyBHdWFuIEN1biBTb3V0aCBTdHJlZXQsSGFpZGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwODYKKwkJCQlDSElOQQorCiswMC0yMS01OSAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCiswMDIxNTkgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTi4gTWF0aGlsZGEgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS01QSAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAyMTVBICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMgorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTVCICAgKGhleCkJCUlub3RpdmUKKzAwMjE1QiAgICAgKGJhc2UgMTYpCQlJbm90aXZlCisJCQkJRGUgUGluY2thcnQgNTQKKwkJCQlOdWVuZW4gTm9vcmQgQnJhYmFudCA1Njc0IENDCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjEtNUMgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDIxNUMgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yMS01RCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjE1RCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTIxLTVFICAgKGhleCkJCUlCTSBDb3JwCiswMDIxNUUgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTVGICAgKGhleCkJCUlIU0UgR21iSAorMDAyMTVGICAgICAoYmFzZSAxNikJCUlIU0UgR21iSAorCQkJCU1heWJhY2hzdHJhc3NlIDExCisJCQkJT2JlcnRldXJpbmdlbiBCYWRlbi1Xw7xydHRlbWJlcmcgODgwOTQKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLTYwICAgKGhleCkJCUhpZGVhIFNvbHV0aW9ucyBDby4gTHRkLgorMDAyMTYwICAgICAoYmFzZSAxNikJCUhpZGVhIFNvbHV0aW9ucyBDby4gTHRkLgorCQkJCTRGLCBEbyZDYW4gaG91c2UgRGxkZy4sICM2NTYtMTY4MywgU2VvbmdzdSAxLWdhIDItZG9uZywgU2Vvbmdkb25nLWd1CisJCQkJU2VvdWwgIDY1Ni0xNjgzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTYxICAgKGhleCkJCVlvdXJuZXQgSW5jLgorMDAyMTYxICAgICAoYmFzZSAxNikJCVlvdXJuZXQgSW5jLgorCQkJCUtUIFImRCBDZW50ZXIKKwkJCQkxNyBVbXllb24tZG9uZywgU2VvY2hvLWd1CisJCQkJU2VvdWwgIDEzNy03OTIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtNjIgICAoaGV4KQkJTm9ydGVsCiswMDIxNjIgICAgIChiYXNlIDE2KQkJTm9ydGVsCisJCQkJMTgzMCBNYXRoZXNvbiBCb3VsZXZhcmQKKwkJCQlTdWl0ZSAxCisJCQkJTWlzc2lzc2F1Z2EgT250YXJpbyBMNFcgMEIzCisJCQkJQ0FOQURBCisKKzAwLTIxLTYzICAgKGhleCkJCUFTS0VZIENPTVBVVEVSIENPUlAKKzAwMjE2MyAgICAgKGJhc2UgMTYpCQlBU0tFWSBDT01QVVRFUiBDT1JQCisJCQkJMTBGLE5PLjExOS5DSElFTktBTkcgUkQsQ0hVTkctSE8sCisJCQkJVEFJUEVJIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjEtNjQgICAoaGV4KQkJU3BlY2lhbCBEZXNpZ24gQnVyZWF1IGZvciBTZWlzbWljIEluc3RydW1lbnRhdGlvbgorMDAyMTY0ICAgICAoYmFzZSAxNikJCVNwZWNpYWwgRGVzaWduIEJ1cmVhdSBmb3IgU2Vpc21pYyBJbnN0cnVtZW50YXRpb24KKwkJCQkxMjksIEtyYWlueWF5YSBTdHIuCisJCQkJU2FyYXRvdiBTYXJhdG92IHJlZ2lvbiA0MTAwMTkKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjEtNjUgICAoaGV4KQkJUHJlc3N0ZWsgSW5jLgorMDAyMTY1ICAgICAoYmFzZSAxNikJCVByZXNzdGVrIEluYy4KKwkJCQk1NSBFeGVjdXRpdmUgRHJpdmUKKwkJCQlIdWRzb24gTmV3IEhhbXBzaGlyZSAwMzA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNjYgICAoaGV4KQkJTm92QXRlbCBJbmMuCiswMDIxNjYgICAgIChiYXNlIDE2KQkJTm92QXRlbCBJbmMuCisJCQkJMTEyMCAtIDY4IEF2ZSBORQorCQkJCUNhbGdhcnkgQWxiZXJ0YSBUMkUgOFM1CisJCQkJQ0FOQURBCisKKzAwLTIxLTY3ICAgKGhleCkJCUhXQSBKSU4gVCZJIENvcnAuCiswMDIxNjcgICAgIChiYXNlIDE2KQkJSFdBIEpJTiBUJkkgQ29ycC4KKwkJCQk1Ri4sIFNFSFdBIEJsZGcgMTY0LTI0LCBQb2ktZG9uZywgR2FuZ25hbS1ndSwgU2VvdWwsIEtvcmVhCisJCQkJR2FuZ25hbS1ndSBTZW91bCAxMzUtOTYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTY4ICAgKGhleCkJCWlWZWlhLCBMTEMKKzAwMjE2OCAgICAgKGJhc2UgMTYpCQlpVmVpYSwgTExDCisJCQkJNTEgRnJhbmtsaW4gU3RyZWV0CisJCQkJU3VpdGUgMzAxCisJCQkJQW5uYXBvbGlzIE1EIDIxNDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS02OSAgIChoZXgpCQlQcm9sb2dpeCwgTExDLgorMDAyMTY5ICAgICAoYmFzZSAxNikJCVByb2xvZ2l4LCBMTEMuCisJCQkJMTcyMTcgTkUgMTMzcmQgUGxhY2UKKwkJCQlSZWRtb25kIFdhc2hpbmd0b24gOTgwNTItMjE1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNkEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDIxNkEgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yMS02QiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjE2QiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTIxLTZDICAgKGhleCkJCU9EVkEKKzAwMjE2QyAgICAgKGJhc2UgMTYpCQlPRFZBCisJCQkJNDIyMCBWYXJzaXR5IERyaXZlCisJCQkJU3VpdGUgQQorCQkJCUFubiBBcmJvciBNSSA0ODEwOC01MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS02RCAgIChoZXgpCQlTb2x0ZWNoIENvLiwgTHRkLgorMDAyMTZEICAgICAoYmFzZSAxNikJCVNvbHRlY2ggQ28uLCBMdGQuCisJCQkJIzMwLTMsM0YKKwkJCQlXb25oeW9ybzItS2EKKwkJCQlZb25nc2FuIEt1IFNlb3VsIDE0MDgzNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS02RSAgIChoZXgpCQlGdW5jdGlvbiBBVEkgKEh1aXpob3UpIFRlbGVjb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwMjE2RSAgICAgKGJhc2UgMTYpCQlGdW5jdGlvbiBBVEkgKEh1aXpob3UpIFRlbGVjb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQlOby4gOCwgSHVpdGFpIFJvYWQsIEh1aXRhaSBJbmR1c3RyaWFsIFpvbmUKKwkJCQlIdWl6aG91IENpdHkgR3Vhbmdkb25nIFByb3ZpbmNlIDUxNjAwNgorCQkJCUNISU5BCisKKzAwLTIxLTZGICAgKGhleCkJCVN5bUNvbSwgSW5jLgorMDAyMTZGICAgICAoYmFzZSAxNikJCVN5bUNvbSwgSW5jLgorCQkJCTI4ODAgTm9ydGggUGxhemEgRHJpdmUKKwkJCQlSYXBpZCBDaXR5IFNEIDU3NzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS03MCAgIChoZXgpCQlEZWxsIEluYworMDAyMTcwICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS03MSAgIChoZXgpCQlXZXN1bmcgVE5DIENvLiwgTHRkLgorMDAyMTcxICAgICAoYmFzZSAxNikJCVdlc3VuZyBUTkMgQ28uLCBMdGQuCisJCQkJMTAyLTE0MDksIEJ1Y2hlb24gQ2h1bnVpIFRlY2hub3BhcmsgMXN0LAorCQkJCTIwMC0xLCBDaHVudWktZG9uZywgV29ubWktR3UKKwkJCQlCdWNoZW9uLUNpdHksIEd5ZW9uZ2dnaS1EbyA0MjAtODU3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTcyICAgKGhleCkJCVNlb3VsdGVrIFZhbGxleQorMDAyMTcyICAgICAoYmFzZSAxNikJCVNlb3VsdGVrIFZhbGxleQorCQkJCUJhbmctaSBEb25nIDUxLTUsIFNvbmdwYQorCQkJCVNlb3VsICAxMzgtMDUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLTczICAgKGhleCkJCUlvbiBUb3JyZW50IFN5c3RlbXMsIEluYy4KKzAwMjE3MyAgICAgKGJhc2UgMTYpCQlJb24gVG9ycmVudCBTeXN0ZW1zLCBJbmMuCisJCQkJMzcgU291bmR2aWV3IFJkCisJCQkJU3VpdGUgIDIKKwkJCQlHdWlsZm9yZCBDVCAwNjQzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNzQgICAoaGV4KQkJQXZhTEFOIFdpcmVsZXNzCiswMDIxNzQgICAgIChiYXNlIDE2KQkJQXZhTEFOIFdpcmVsZXNzCisJCQkJOTU4IFNhbiBMZWFuZHJvIEF2ZSwgU3VpdGUgOTAwCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtNzUgICAoaGV4KQkJUGFjaWZpYyBTYXRlbGxpdGUgSW50ZXJuYXRpb25hbCBMdGQuCiswMDIxNzUgICAgIChiYXNlIDE2KQkJUGFjaWZpYyBTYXRlbGxpdGUgSW50ZXJuYXRpb25hbCBMdGQuCisJCQkJMjAvRiBUYWkgVHVuZyBCdWlsZGluZywKKwkJCQk4IEZsZW1pbmcgUm9hZCwKKwkJCQlXYW5jaGFpICAxMDAwMDAKKwkJCQlIT05HIEtPTkcKKworMDAtMjEtNzYgICAoaGV4KQkJWU1heCBUZWxlY29tIEx0ZC4KKzAwMjE3NiAgICAgKGJhc2UgMTYpCQlZTWF4IFRlbGVjb20gTHRkLgorCQkJCTExIE1vc2hlIExldmkgc3RyLgorCQkJCVVNSSBCdWlsZGluZworCQkJCVJpc2hvbiBMZSBaaW9uICA3NTY1OAorCQkJCUlTUkFFTAorCiswMC0yMS03NyAgIChoZXgpCQlXLiBMLiBHb3JlICYgQXNzb2NpYXRlcworMDAyMTc3ICAgICAoYmFzZSAxNikJCVcuIEwuIEdvcmUgJiBBc3NvY2lhdGVzCisJCQkJNDAyIFZpZXZlcyBXYXkKKwkJCQlFbGt0b24gTUQgMjE5MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTc4ICAgKGhleCkJCU1hdHVzY2hlayBNZXNzdGVjaG5payBHbWJICiswMDIxNzggICAgIChiYXNlIDE2KQkJTWF0dXNjaGVrIE1lc3N0ZWNobmlrIEdtYkgKKwkJCQlXZXJuZXIgSGVpc2VuYmVyZyBTdHJhw4PFuGUgMTQKKwkJCQlBbHNkb3JmIE5SVyA1MjQ3NworCQkJCUdFUk1BTlkKKworMDAtMjEtNzkgICAoaGV4KQkJSU9HRUFSLCBJbmMuCiswMDIxNzkgICAgIChiYXNlIDE2KQkJSU9HRUFSLCBJbmMuCisJCQkJMjMgSHViYmxlCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS03QSAgIChoZXgpCQlTZWppbiBFbGVjdHJvbiwgSW5jLgorMDAyMTdBICAgICAoYmFzZSAxNikJCVNlamluIEVsZWN0cm9uLCBJbmMuCisJCQkJU0ogVGVjaG5vdmlsbGUKKwkJCQk0dGggRmxvb3IgUm9vbSA0MTIsIDYwLTE5IEthU2FuLURvbmcsIEtldW1DaG9uLUt1CisJCQkJU2VvdWwgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtN0IgICAoaGV4KQkJQmFzdGVjIEFCCiswMDIxN0IgICAgIChiYXNlIDE2KQkJQmFzdGVjIEFCCisJCQkJSMOkc3R2w6RnZW4gNEEKKwkJCQlNYWxtw7YgTSAyMTIgMzUKKwkJCQlTV0VERU4KKworMDAtMjEtN0MgICAoaGV4KQkJMldpcmUKKzAwMjE3QyAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTdEICAgKGhleCkJCVBZWElTIFMuUi5MLgorMDAyMTdEICAgICAoYmFzZSAxNikJCVBZWElTIFMuUi5MLgorCQkJCUMvTyBESVAuIElORk9STUFUSUNBIEUgU0lTVEVNSVNUSUNBIC0gVU5JVkVSU0lUWSBPRiBQQVZJQQorCQkJCVZJQSBGRVJSQVRBIDEKKwkJCQlQQVZJQSAgMjcxMDAKKwkJCQlJVEFMWQorCiswMC0yMS03RSAgIChoZXgpCQlUZWxpdCBDb21tdW5pY2F0aW9uIHMucC5hCiswMDIxN0UgICAgIChiYXNlIDE2KQkJVGVsaXQgQ29tbXVuaWNhdGlvbiBzLnAuYQorCQkJCVZpYSBzdGF6aW9uZSBkaSBwcm9zZWNjbyA1QgorCQkJCVNHT05JQ08gVHJpZXN0ZSAzNDAxMAorCQkJCUlUQUxZCisKKzAwLTIxLTdGICAgKGhleCkJCUludHJhY28gVGVjaG5vbG9neSBQdGUgTHRkCiswMDIxN0YgICAgIChiYXNlIDE2KQkJSW50cmFjbyBUZWNobm9sb2d5IFB0ZSBMdGQKKwkJCQk3NTBlIENoYWkgQ2hlZSBSb2FkICMwNS0wMQorCQkJCVNpbmdhcG9yZSAgNDY5MDAwNQorCQkJCVNJTkdBUE9SRQorCiswMC0yMS04MCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyMTgwICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtODEgICAoaGV4KQkJU2kyIE1pY3Jvc3lzdGVtcyBMaW1pdGVkCiswMDIxODEgICAgIChiYXNlIDE2KQkJU2kyIE1pY3Jvc3lzdGVtcyBMaW1pdGVkCisJCQkJTm8gODQsIFN5IE5vIDE1MCwgRVBJUCwgV2hpdGVmaWVsZCBJbmR1c3RyaWFsIEFyZWEKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MDA2NgorCQkJCUlORElBCisKKzAwLTIxLTgyICAgKGhleCkJCVNhbmRMaW5rcyBTeXN0ZW1zLCBMdGQuCiswMDIxODIgICAgIChiYXNlIDE2KQkJU2FuZExpbmtzIFN5c3RlbXMsIEx0ZC4KKwkJCQlQLk8uQm94IDQ2MjkKKwkJCQlQZXRhaC1UaXF3YSBJc3JhZWwgNDkyNzcKKwkJCQlJU1JBRUwKKworMDAtMjEtODMgICAoaGV4KQkJVkFURUNIIEhZRFJPCiswMDIxODMgICAgIChiYXNlIDE2KQkJVkFURUNIIEhZRFJPCisJCQkJV2llbmVyYmVyZ3N0cmFzc2UgNDEKKwkJCQlPYmplY3QgRAorCQkJCVZpZW5uYSAgQS0xMTIwCisJCQkJQVVTVFJJQQorCiswMC0yMS04NCAgIChoZXgpCQlQT1dFUlNPRlQgU1JMCiswMDIxODQgICAgIChiYXNlIDE2KQkJUE9XRVJTT0ZUIFNSTAorCQkJCVZJQSBFTlJJQ08gQ09OVEksIDUKKwkJCQlTQ0FORElDQ0kgRkkgNTAwMTgKKwkJCQlJVEFMWQorCiswMC0yMS04NSAgIChoZXgpCQlNSUNSTy1TVEFSIElOVCdMIENPLixMVEQuCiswMDIxODUgICAgIChiYXNlIDE2KQkJTUlDUk8tU1RBUiBJTlQnTCBDTy4sTFRELgorCQkJCU5vLjY5LExpLURlIFN0LEp1bmctSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMS04NiAgIChoZXgpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZAorMDAyMTg2ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkCisJCQkJMTQxLCBMYW5lIDM1MSwgU2VjLjEsIFRhaXBpbmcgUm9hZCwKKwkJCQlUU0FPVFVFTiAKKwkJCQlOQU5UT1UgIDU0MjYxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMS04NyAgIChoZXgpCQlJbWFjcyBHbWJICiswMDIxODcgICAgIChiYXNlIDE2KQkJSW1hY3MgR21iSAorCQkJCU1pdHRlbGZlbGRzdHJhc3NlIDI1CisJCQkJS29ybndlc3RoZWltIEdlcm1hbnkgRC03MDgwNgorCQkJCUdFUk1BTlkKKworMDAtMjEtODggICAoaGV4KQkJRU1DIENvcnBvcmF0aW9uCiswMDIxODggICAgIChiYXNlIDE2KQkJRU1DIENvcnBvcmF0aW9uCisJCQkJMjQyMSBNaXNzaW9uIENvbGxlZ2UgQmx2ZAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS04OSAgIChoZXgpCQlBcHBUZWNoLCBJbmMuCiswMDIxODkgICAgIChiYXNlIDE2KQkJQXBwVGVjaCwgSW5jLgorCQkJCTM2MyBHcmV5aG91bmQgUGFzcworCQkJCUNhcm1lbCBJbmRpYW5hIDQ2MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS04QSAgIChoZXgpCQlFbGVjdHJvbmljIERlc2lnbiBhbmQgTWFudWZhY3R1cmluZyBDb21wYW55CiswMDIxOEEgICAgIChiYXNlIDE2KQkJRWxlY3Ryb25pYyBEZXNpZ24gYW5kIE1hbnVmYWN0dXJpbmcgQ29tcGFueQorCQkJCTMxIE1pbGxyYWNlIERyCisJCQkJTHluY2hidXJnIFZBIDI0NTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS04QiAgIChoZXgpCQlXZXNjb24gVGVjaG5vbG9neSwgSW5jLgorMDAyMThCICAgICAoYmFzZSAxNikJCVdlc2NvbiBUZWNobm9sb2d5LCBJbmMuCisJCQkJNDY1NS0xNzAgT2xkIElyb25zaWRlcyBEcml2ZQorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLThDICAgKGhleCkJCVRvcENvbnRyb2wgR01CSAorMDAyMThDICAgICAoYmFzZSAxNikJCVRvcENvbnRyb2wgR01CSAorCQkJCUVuemVuYmVyZ3dlZyAyNC9BCisJCQkJVGVybGFuIChCWikgIDM5MDE4CisJCQkJSVRBTFkKKworMDAtMjEtOEQgICAoaGV4KQkJQVAgUm91dGVyIEluZC4gRWxldHJvbmljYSBMVERBCiswMDIxOEQgICAgIChiYXNlIDE2KQkJQVAgUm91dGVyIEluZC4gRWxldHJvbmljYSBMVERBCisJCQkJQXYuIExvbWFudG8gSnVuaW9yLCAxMDAwCisJCQkJQmFpcnJvIFBvbnRhbAorCQkJCUlsaGV1cyBCYWhpYSA0NTY1NC0wMDAKKwkJCQlCUkFaSUwKKworMDAtMjEtOEUgICAoaGV4KQkJTUVLSUNTIENPLiwgTFRELgorMDAyMThFICAgICAoYmFzZSAxNikJCU1FS0lDUyBDTy4sIExURC4KKwkJCQlJbmR1c3RyaWFsIFpvbmUgODYxLTEwLCBUYWVneWUtRG9uZworCQkJCUNodW5jaG9uIEthbmd3b24gMjAwLTk0NAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS04RiAgIChoZXgpCQlBdmFudGdhcmRlIEFjb3VzdGljIExhdXRzcHJlY2hlcnN5c3RlbWUgR21iSAorMDAyMThGICAgICAoYmFzZSAxNikJCUF2YW50Z2FyZGUgQWNvdXN0aWMgTGF1dHNwcmVjaGVyc3lzdGVtZSBHbWJICisJCQkJTmliZWx1bmdlbnN0ci4gMzQ5CisJCQkJTGF1dGVydGFsIC0gUmVpY2hlbmJhY2ggSGVzc2VuIEQtNjQ2ODYKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLTkwICAgKGhleCkJCUdvbGlhdGggU29sdXRpb25zCiswMDIxOTAgICAgIChiYXNlIDE2KQkJR29saWF0aCBTb2x1dGlvbnMKKwkJCQkzMDgyIFN0ZXJsaW5nIENpcmNsZQorCQkJCUJvdWxkZXIgQ29sb3JhZG8gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLTkxICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorMDAyMTkxICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5PLjI4OSwgU2luaHUgM3JkIFJELgorCQkJCU5laWh1IERpc3RyaWN0IFRhaXBlaSBDaXR5IDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjEtOTIgICAoaGV4KQkJQmFvZGluZyBHYWxheHkgRWxlY3Ryb25pYyBUZWNobm9sb2d5ICBDby4sTHRkCiswMDIxOTIgICAgIChiYXNlIDE2KQkJQmFvZGluZyBHYWxheHkgRWxlY3Ryb25pYyBUZWNobm9sb2d5ICBDby4sTHRkCisJCQkJTk8uOTEgRmVuZ2ZhbiBSZC4sR2FvS2FpIERpc3RyaWN0LEJhb2RpbmcgQ2l0eSxIZWJlaSBQcm92LkNoaW5hIDA3MTA1MQorCQkJCUJhb2RpbmcgQ2l0eSBIZWJlaSBQcm92LiAwNzEwNTEKKwkJCQlDSElOQQorCiswMC0yMS05MyAgIChoZXgpCQlWaWRlb2ZvbiBNVgorMDAyMTkzICAgICAoYmFzZSAxNikJCVZpZGVvZm9uIE1WCisJCQkJNiBCbGFja29hayBNZXdzCisJCQkJTmV3dG93biBQQSAxODk0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtOTQgICAoaGV4KQkJUGluZyBDb21tdW5pY2F0aW9uCiswMDIxOTQgICAgIChiYXNlIDE2KQkJUGluZyBDb21tdW5pY2F0aW9uCisJCQkJU2FuZGFrZXJ2ZWllbiAyNEMKKwkJCQlPc2xvICAwNDczCisJCQkJTk9SV0FZCisKKzAwLTIxLTk1ICAgKGhleCkJCUdXRCBNZWRpYSBMaW1pdGVkCiswMDIxOTUgICAgIChiYXNlIDE2KQkJR1dEIE1lZGlhIExpbWl0ZWQKKwkJCQkxMCBMZWVkcyBSb2FkCisJCQkJU2hlZmZpZWxkIFNvdXRoIFlvcmtzaGlyZSBTOSAzVFkKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMS05NiAgIChoZXgpCQlUZWxzZXkgIFMucC5BLgorMDAyMTk2ICAgICAoYmFzZSAxNikJCVRlbHNleSAgUy5wLkEuCisJCQkJVmlhbGUgZGVsbCdJbmR1c3RyaWEsIDEKKwkJCQlRdWludG8gRGlUcmV2aXNvIDMxMDU1CisJCQkJSVRBTFkKKworMDAtMjEtOTcgICAoaGV4KQkJRUxJVEVHUk9VUCBDT01QVVRFUiBTWVNURU0KKzAwMjE5NyAgICAgKGJhc2UgMTYpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTQorCQkJCU5PLjIzOSwgU2VjLiAyLCBUaSBEaW5nIEJsdmQuLAorCQkJCVRhaXBlaSAgMTE0OTMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIxLTk4ICAgKGhleCkJCVRoYWkgUmFkaW8gQ28sIExURAorMDAyMTk4ICAgICAoYmFzZSAxNikJCVRoYWkgUmFkaW8gQ28sIExURAorCQkJCUhpLVRlY2ggSW5kdXN0cmlhbCBFc3RhdGUKKwkJCQk3ODcgTTAwIDEgQmFhbmxhbmUgU3ViIERpc3RyaWN0IEJhbmcgUGEtSW4gRGlzdHJpY3QKKwkJCQlBeXV0dGhheWEgIDEzMTYwCisJCQkJVEhBSUxBTkQKKworMDAtMjEtOTkgICAoaGV4KQkJVmFjb24gUGxjCiswMDIxOTkgICAgIChiYXNlIDE2KQkJVmFjb24gUGxjCisJCQkJUC5PLkJveCAyNQorCQkJCVZhYXNhICA2NTM4MAorCQkJCUZJTkxBTkQKKworMDAtMjEtOUEgICAoaGV4KQkJQ2FtYnJpZGdlIFZpc3VhbCBOZXR3b3JrcyBMdGQKKzAwMjE5QSAgICAgKGJhc2UgMTYpCQlDYW1icmlkZ2UgVmlzdWFsIE5ldHdvcmtzIEx0ZAorCQkJCTYxIFNlbHd5biBSb2FkCisJCQkJQ2FtYnJpZGdlIENhbWJyaWRnZXNoaXJlIENCMyA5RUEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMS05QiAgIChoZXgpCQlEZWxsIEluYworMDAyMTlCICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS05QyAgIChoZXgpCQlIb25leXdsZCBUZWNobm9sb2d5IENvcnAuCiswMDIxOUMgICAgIChiYXNlIDE2KQkJSG9uZXl3bGQgVGVjaG5vbG9neSBDb3JwLgorCQkJCU5vLjQwLEhzdWVoLUZ1IFJkLgorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjEtOUQgICAoaGV4KQkJQWRlc3lzIEJWCiswMDIxOUQgICAgIChiYXNlIDE2KQkJQWRlc3lzIEJWCisJCQkJTW9sZW53ZWVyIDQKKwkJCQlXYXRlcmluZ2VuIFp1aWQgSG9sbGFuZCAyMjkxIE5SCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjEtOUUgICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKzAwMjE5RSAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNrw6VuZSAyMjE4OAorCQkJCVNXRURFTgorCiswMC0yMS05RiAgIChoZXgpCQlTQVRFTCBPWQorMDAyMTlGICAgICAoYmFzZSAxNikJCVNBVEVMIE9ZCisJCQkJTWVyaW5paXR5bmthdHUgMTcKKwkJCQlTQUxPIExhbnNpLVN1b21lbiBMYWFuaSAyNDEwMAorCQkJCUZJTkxBTkQKKworMDAtMjEtQTAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMUEwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUExICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjFBMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1BMiAgIChoZXgpCQlFS0UtRWxlY3Ryb25pY3MgTHRkLgorMDAyMUEyICAgICAoYmFzZSAxNikJCUVLRS1FbGVjdHJvbmljcyBMdGQuCisJCQkJUGlpc3BhbnBvcnR0aSA3CisJCQkJRVNQT08gIDAyMjQwCisJCQkJRklOTEFORAorCiswMC0yMS1BMyAgIChoZXgpCQlNaWNyb21pbnQKKzAwMjFBMyAgICAgKGJhc2UgMTYpCQlNaWNyb21pbnQKKwkJCQkxMTEgQ29tbWVyY2UgU3QKKwkJCQlMYWtlIE1hcnkgRkwgMzI3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUE0ICAgKGhleCkJCURiaWkgTmV0d29ya3MKKzAwMjFBNCAgICAgKGJhc2UgMTYpCQlEYmlpIE5ldHdvcmtzCisJCQkJMjIxNyBWaWEgQmxhbmNhCisJCQkJT2NlYW5zaWRlIENBIDkyMDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1BNSAgIChoZXgpCQlFUkxQaGFzZSBQb3dlciBUZWNobm9sb2dpZXMgTHRkLgorMDAyMUE1ICAgICAoYmFzZSAxNikJCUVSTFBoYXNlIFBvd2VyIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJNzQgU2N1cmZpZWxkIEJsdmQuCisJCQkJV2lubmlwZWcgTWFuaXRvYmEgUjNZIDFHNAorCQkJCUNBTkFEQQorCiswMC0yMS1BNiAgIChoZXgpCQlWaWRlb3RlYyBTcGEKKzAwMjFBNiAgICAgKGJhc2UgMTYpCQlWaWRlb3RlYyBTcGEKKwkJCQlWaWEgRnJpdWxpLDYKKwkJCQlTY2hpbyBWaWNlbnphIDM2MDE1CisJCQkJSVRBTFkKKworMDAtMjEtQTcgICAoaGV4KQkJSGFudGxlIFN5c3RlbSBDby4sIEx0ZC4KKzAwMjFBNyAgICAgKGJhc2UgMTYpCQlIYW50bGUgU3lzdGVtIENvLiwgTHRkLgorCQkJCTQ4MS0xMCBCeXVja3NhbiBEaWdpdGFsIFZhbGx5IElJLCBSTSAxNTExCisJCQkJR2FzYW4tRG9uZywgR3VtY2hvbi1HdQorCQkJCVNlb3VsIENpdHkgU2VvdWwgMTUzLTc4MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS1BOCAgIChoZXgpCQlUZWxlcGhvbmljcyBDb3Jwb3JhdGlvbgorMDAyMUE4ICAgICAoYmFzZSAxNikJCVRlbGVwaG9uaWNzIENvcnBvcmF0aW9uCisJCQkJODE1IEJyb2FkIEhvbGxvdyBSb2FkCisJCQkJRmFybWluZ2RhbGUgTmV3IFlvcmsgMTE3OTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUE5ICAgKGhleCkJCU1vYmlsaW5rIFRlbGVjb20gQ28uLEx0ZAorMDAyMUE5ICAgICAoYmFzZSAxNikJCU1vYmlsaW5rIFRlbGVjb20gQ28uLEx0ZAorCQkJCTI5Mi0zIFNpbmRhbmctcmksIFNhbmRvbmctbXl1bgorCQkJCUd1bWkgR3llb25nYnVrIDczMC04NTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtQUEgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjFBQSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjEtQUIgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjFBQiAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MCBWCisJCQkJREVOTUFSSworCiswMC0yMS1BQyAgIChoZXgpCQlJbmZyYXJlZCBJbnRlZ3JhdGVkIFN5c3RlbXMgTHRkCiswMDIxQUMgICAgIChiYXNlIDE2KQkJSW5mcmFyZWQgSW50ZWdyYXRlZCBTeXN0ZW1zIEx0ZAorCQkJCVBhcmsgQ2lyY2xlLCBUaXRoZSBCYXJuIFdheQorCQkJCVN3YW4gVmFsbGV5CisJCQkJTm9ydGhhbXB0b24gTm9ydGhhbnRzIE5ONCA5QkcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMS1BRCAgIChoZXgpCQlOb3JkaWMgSUQgT3kKKzAwMjFBRCAgICAgKGJhc2UgMTYpCQlOb3JkaWMgSUQgT3kKKwkJCQlNeWxseW9qYW5rYXR1IDJBCisJCQkJU0FMTyAgRklOLTI0MTAwCisJCQkJRklOTEFORAorCiswMC0yMS1BRSAgIChoZXgpCQlBTENBVEVMLUxVQ0VOVCBGUkFOQ0UgLSBXVEQKKzAwMjFBRSAgICAgKGJhc2UgMTYpCQlBTENBVEVMLUxVQ0VOVCBGUkFOQ0UgLSBXVEQKKwkJCQk3LTksIEF2ZW51ZSBNb3JhbmUgU2F1bG5pZXIKKwkJCQlCUCA1NworCQkJCVZFTElaWSAgNzgxNDEKKwkJCQlGUkFOQ0UKKworMDAtMjEtQUYgICAoaGV4KQkJUmFkaW8gRnJlcXVlbmN5IFN5c3RlbXMKKzAwMjFBRiAgICAgKGJhc2UgMTYpCQlSYWRpbyBGcmVxdWVuY3kgU3lzdGVtcworCQkJCUthYmVsa2FtcCAyMAorCQkJCUhhbm5vdmVyICAzMDE3OQorCQkJCUdFUk1BTlkKKworMDAtMjEtQjAgICAoaGV4KQkJVHljbyBUZWxlY29tbXVuaWNhdGlvbnMKKzAwMjFCMCAgICAgKGJhc2UgMTYpCQlUeWNvIFRlbGVjb21tdW5pY2F0aW9ucworCQkJCTEwMTEgUGF3dHVja2V0IEJsdmQKKwkJCQlMb3dlbGwgTWFzc2FjaHVzZXR0cyAwMTg1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtQjEgICAoaGV4KQkJRElHSVRBTCBTT0xVVElPTlMgTFRECiswMDIxQjEgICAgIChiYXNlIDE2KQkJRElHSVRBTCBTT0xVVElPTlMgTFRECisJCQkJVHNhcmlncmFkc2tvIFNob3NlIDdrbSBCTFZECisJCQkJSGkgVGVjaCBQYXJrIEl6b3QsCisJCQkJU29maWEgU29maWEgMTc4NAorCQkJCUJVTEdBUklBCisKKzAwLTIxLUIyICAgKGhleCkJCUZpYmVyYmxhemUgQS9TCiswMDIxQjIgICAgIChiYXNlIDE2KQkJRmliZXJibGF6ZSBBL1MKKwkJCQlLaWxkZXZhbmdzdmVqIDkKKwkJCQlHb2VkZXJ1cAorCQkJCVJvc2tpbGRlICA0MDAwCisJCQkJREVOTUFSSworCiswMC0yMS1CMyAgIChoZXgpCQlSb3NzIENvbnRyb2xzCiswMDIxQjMgICAgIChiYXNlIDE2KQkJUm9zcyBDb250cm9scworCQkJCU9uZSBSb3NzIFdheQorCQkJCUxhdm9uaWEgR0EgMzA1NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUI0ICAgKGhleCkJCUFQUk8gTUVESUEgQ08uLCBMVEQKKzAwMjFCNCAgICAgKGJhc2UgMTYpCQlBUFJPIE1FRElBIENPLiwgTFRECisJCQkJIzEzLTUsRG9kYW5nLURvbmcsV29ubWktR3UsCisJCQkJQnVjaGVvbi1DaXR5IEt5dW5nZ2ktRG8gNDIwLTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS1CNSAgIChoZXgpCQlWeXJvIEdhbWVzIExpbWl0ZWQKKzAwMjFCNSAgICAgKGJhc2UgMTYpCQlWeXJvIEdhbWVzIExpbWl0ZWQKKwkJCQkxNCBTdC4gU3RlcGhlbidzIEdyZWVuCisJCQkJRHVibGluICAyCisJCQkJSVJFTEFORAorCiswMC0yMS1CNiAgIChoZXgpCQlUcmlhY3RhIFBvd2VyIFRlY2hub2xvZ2llcyBJbmMuCiswMDIxQjYgICAgIChiYXNlIDE2KQkJVHJpYWN0YSBQb3dlciBUZWNobm9sb2dpZXMgSW5jLgorCQkJCUJveCA1ODIsIDcgTWlsbCBTdHJlZXQKKwkJCQlBbG1vbnRlIE9udGFyaW8gSzBBIDFBMAorCQkJCUNBTkFEQQorCiswMC0yMS1CNyAgIChoZXgpCQlMZXhtYXJrIEludGVybmF0aW9uYWwgSW5jLgorMDAyMUI3ICAgICAoYmFzZSAxNikJCUxleG1hcmsgSW50ZXJuYXRpb25hbCBJbmMuCisJCQkJNzQwIFdlc3QgTmV3IENpcmNsZSBSb2FkCisJCQkJTGV4aW5ndG9uIEtZIDQwNTUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1COCAgIChoZXgpCQlJbnBoaSBDb3Jwb3JhdGlvbgorMDAyMUI4ICAgICAoYmFzZSAxNikJCUlucGhpIENvcnBvcmF0aW9uCisJCQkJMjM5MyBUb3duc0dhdGUgUmQuLCBTdWl0ZSAxMDEKKwkJCQlXZXN0bGFrZSBWaWxsYWdlIENBIDkxMzYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1COSAgIChoZXgpCQlVbml2ZXJzYWwgRGV2aWNlcyBJbmMuCiswMDIxQjkgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIERldmljZXMgSW5jLgorCQkJCTUzNTMgWWFybW91dGggQXZlLiAjMjA5CisJCQkJRW5jaW5vIENBIDkxMzE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1CQSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDAyMUJBICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkLCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1CQiAgIChoZXgpCQlSaWtlbiBLZWlraSBDby4sIEx0ZC4KKzAwMjFCQiAgICAgKGJhc2UgMTYpCQlSaWtlbiBLZWlraSBDby4sIEx0ZC4KKwkJCQkgMi03LTYgQXp1c2F3YQorCQkJCUl0YWJhc2hpLUt1IFRva3lvIDE3NC04NzQ0CisJCQkJSkFQQU4KKworMDAtMjEtQkMgICAoaGV4KQkJWkFMQSBDT01QVVRFUgorMDAyMUJDICAgICAoYmFzZSAxNikJCVpBTEEgQ09NUFVURVIKKwkJCQlFTCBCT1VOSQorCQkJCUFOTkFCQSAgMjMwMDAKKwkJCQlBTEdFUklBCisKKzAwLTIxLUJEICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyMUJEICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTIxLUJFICAgKGhleCkJCUNpc2NvLCBTZXJ2aWNlIFByb3ZpZGVyIFZpZGVvIFRlY2hub2xvZ3kgR3JvdXAKKzAwMjFCRSAgICAgKGJhc2UgMTYpCQlDaXNjbywgU2VydmljZSBQcm92aWRlciBWaWRlbyBUZWNobm9sb2d5IEdyb3VwCisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCU1haWwgU3RvcCAyLlQuNjAzCisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtQkYgICAoaGV4KQkJSGl0YWNoaSBIaWdoLVRlY2ggQ29udHJvbCBTeXN0ZW1zIENvcnBvcmF0aW9uCiswMDIxQkYgICAgIChiYXNlIDE2KQkJSGl0YWNoaSBIaWdoLVRlY2ggQ29udHJvbCBTeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJNTAwLE1peXUtY2hvCisJCQkJTWl0by1zaGkgSWJhcmFraS1rZW4gMzE5LTAzMTYKKwkJCQlKQVBBTgorCiswMC0yMS1DMCAgIChoZXgpCQlNb2JpbGUgQXBwbGlhbmNlLCBJbmMuCiswMDIxQzAgICAgIChiYXNlIDE2KQkJTW9iaWxlIEFwcGxpYW5jZSwgSW5jLgorCQkJCSM4MTkgS3JhbnogVGVjaG5vLAorCQkJCVNhbmdkYWV3b24tMSBEb25nLCBKdW5nd29uLUd1CisJCQkJU2VvbmcgbmFtIEd5ZW9uZ2dpLURvIDQ2Mi03MjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtQzEgICAoaGV4KQkJQUJCIE95IC8gRGlzdHJpYnV0aW9uIEF1dG9tYXRpb24KKzAwMjFDMSAgICAgKGJhc2UgMTYpCQlBQkIgT3kgLyBEaXN0cmlidXRpb24gQXV0b21hdGlvbgorCQkJCVBPIEJveCA2OTkKKwkJCQlWYWFzYSAgRkktNjUxMDEKKwkJCQlGSU5MQU5ECisKKzAwLTIxLUMyICAgKGhleCkJCUdMIENvbW11bmljYXRpb25zIEluYworMDAyMUMyICAgICAoYmFzZSAxNikJCUdMIENvbW11bmljYXRpb25zIEluYworCQkJCTgxOCBXZXN0IERpYW1vbmQgQXZlCisJCQkJVGhpcmQgRmxvb3IKKwkJCQlHYWl0aGVyc2J1cmcgTUQgMjA4NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUMzICAgKGhleCkJCUNPUk5FTEwgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwMjFDMyAgICAgKGJhc2UgMTYpCQlDT1JORUxMIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJNzkxNSBOLiA4MXN0IFN0cmVldAorCQkJCU1pbHdhdWtlZSBXaXNjb25zaW4gNTMyMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUM0ICAgKGhleCkJCUNvbnNpbGl1bSBBQgorMDAyMUM0ICAgICAoYmFzZSAxNikJCUNvbnNpbGl1bSBBQgorCQkJCVbDpHN0cmEgRmlubmJvZGF2w6RnZW4gMi00CisJCQkJTmFja2EgU3RvY2tob2xtIDEzMTMxCisJCQkJU1dFREVOCisKKzAwLTIxLUM1ICAgKGhleCkJCTNEU1AgQ29ycAorMDAyMUM1ICAgICAoYmFzZSAxNikJCTNEU1AgQ29ycAorCQkJCTE2MjcxIExhZ3VuYSBDYW55b24gUm9hZAorCQkJCVN1aXRlIDIwMAorCQkJCUlydmluZSwgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUM2ICAgKGhleCkJCUNTSiBHbG9iYWwsIEluYy4KKzAwMjFDNiAgICAgKGJhc2UgMTYpCQlDU0ogR2xvYmFsLCBJbmMuCisJCQkJOXRoIEZsLiBTYW13aGFuIEJsZGcuIEFubmV4LCAxNy0yNiBZZW91aWRvLWRvbmcsCisJCQkJWW91bmdkZXVuZ3BvLUd1CisJCQkJU2VvdWwgIDE1MC04NzQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtQzcgICAoaGV4KQkJUnVzc291bmQKKzAwMjFDNyAgICAgKGJhc2UgMTYpCQlSdXNzb3VuZAorCQkJCTUgRm9yYmVzIFJvYWQKKwkJCQlOZXdtYXJrZXQgTkggMDM4NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUM4ICAgKGhleCkJCUxPSFVJUyBOZXR3b3JrcworMDAyMUM4ICAgICAoYmFzZSAxNikJCUxPSFVJUyBOZXR3b3JrcworCQkJCTI2ODEgVFYgTW9uc3RlcgorCQkJCVZvdGxhYW4gNDA4IFZvdGxhYW4gMzEKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMS1DOSAgIChoZXgpCQlXYXZlY29tIEFzaWEgUGFjaWZpYyBMaW1pdGVkCiswMDIxQzkgICAgIChiYXNlIDE2KQkJV2F2ZWNvbSBBc2lhIFBhY2lmaWMgTGltaXRlZAorCQkJCTIwMSBCaW8tSW5mb3JtYXRpY3MgQ2VudHJlLCAgTm8uMiBTY2llbmNlIFBhcmsgV2VzdCBBdmUKKwkJCQlIb25nIEtvbmcgU2NpZW5jZSBQYXJrLCBTaGF0aW4sIE5UCisJCQkJSE9ORyBLT05HCisKKzAwLTIxLUNBICAgKGhleCkJCUFSVCBTeXN0ZW0gQ28uLCBMdGQuCiswMDIxQ0EgICAgIChiYXNlIDE2KQkJQVJUIFN5c3RlbSBDby4sIEx0ZC4KKwkJCQlNb2JpbGUgVGVjaG5vIEJsZGcgUm9vbSA5MTAKKwkJCQk1NzMtMTMsIEJva2h5ZW9uLWRvbmcsIEJ1ay1ndQorCQkJCURhZS1HdSAgNzAyLTAyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMS1DQiAgIChoZXgpCQlTTVMgVEVDTk9MT0dJQSBFTEVUUk9OSUNBIExUREEKKzAwMjFDQiAgICAgKGJhc2UgMTYpCQlTTVMgVEVDTk9MT0dJQSBFTEVUUk9OSUNBIExUREEKKwkJCQlBdi4gUGlyw4PCom1pZGUsIDY2MQorCQkJCURJQURFTUEgU8ODxpJPIFBBVUxPIDA5OTcwMzMwCisJCQkJQlJBWklMCisKKzAwLTIxLUNDICAgKGhleCkJCUZsZXh0cm9uaWNzIEludGVybmF0aW9uYWwKKzAwMjFDQyAgICAgKGJhc2UgMTYpCQlGbGV4dHJvbmljcyBJbnRlcm5hdGlvbmFsCisJCQkJMjI0MSBMdW5keSBBdmUuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUNEICAgKGhleCkJCUxpdmVUVgorMDAyMUNEICAgICAoYmFzZSAxNikJCUxpdmVUVgorCQkJCTEzMzMgR2F0ZXdheSBEcml2ZSwgU3VpdGUgMTAwNworCQkJCU1lbGJvdXJuZSBGbG9yaWRhIDMyOTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1DRSAgIChoZXgpCQlOVEMtTWV0cm90ZWsKKzAwMjFDRSAgICAgKGJhc2UgMTYpCQlOVEMtTWV0cm90ZWsKKwkJCQk5LCBOZXZ6b3Jvdm95IHN0cmVldAorCQkJCVNhaW50LVBldGVyc2J1cmcgIDE5MjE0OAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yMS1DRiAgIChoZXgpCQlUaGUgQ3J5cHRvIEdyb3VwCiswMDIxQ0YgICAgIChiYXNlIDE2KQkJVGhlIENyeXB0byBHcm91cAorCQkJCVp1Z2Vyc3RyYXNzZSA0MgorCQkJCVN0ZWluaGF1c2VuIFp1ZyA2MzEyCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMjEtRDAgICAoaGV4KQkJR2xvYmFsIERpc3BsYXkgU29sdXRpb25zIFNwYQorMDAyMUQwICAgICAoYmFzZSAxNikJCUdsb2JhbCBEaXNwbGF5IFNvbHV0aW9ucyBTcGEKKwkJCQlWaWEgVGV6emUsIDIwL0EKKwkJCQlWQVQgSVQwMjk0MDE4MDI0OQorCQkJCUNvcm5lZG8gVmljZW50aW5vIFZpY2VuemEgMzYwNzMKKwkJCQlJVEFMWQorCiswMC0yMS1EMSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzAwMjFEMSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjEtRDIgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswMDIxRDIgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLUQzICAgKGhleCkJCUJPQ09NIFNFQ1VSSVRZKEFTSUEgUEFDSUZJQykgTElNSVRFRAorMDAyMUQzICAgICAoYmFzZSAxNikJCUJPQ09NIFNFQ1VSSVRZKEFTSUEgUEFDSUZJQykgTElNSVRFRAorCQkJCUZsci4zLE5PLjI5LCM2OSBHdWlxaW5nIFJECisJCQkJQ2hpbmEKKwkJCQlTaGFuZ2hhaSAgMjAwMjMzCisJCQkJQ0hJTkEKKworMDAtMjEtRDQgICAoaGV4KQkJVm9sbG1lciBXZXJrZSBHbWJICiswMDIxRDQgICAgIChiYXNlIDE2KQkJVm9sbG1lciBXZXJrZSBHbWJICisJCQkJTWFzY2hpbmVuZmFicmlrCisJCQkJQmliZXJhY2ggQmFkZW4tV8O8cnR0ZW1iZXJnIDg4NDAwCisJCQkJR0VSTUFOWQorCiswMC0yMS1ENSAgIChoZXgpCQlYMkUgR21iSAorMDAyMUQ1ICAgICAoYmFzZSAxNikJCVgyRSBHbWJICisJCQkJUmFpZmZlaXNlbnN0cmFzc2UgOQorCQkJCVdpbmRlbiBSaGVpbmxhbmQtUGZhbHogNzY4NzIKKwkJCQlHRVJNQU5ZCisKKzAwLTIxLUQ2ICAgKGhleCkJCUxYSSBDb25zb3J0aXVtCiswMDIxRDYgICAgIChiYXNlIDE2KQkJTFhJIENvbnNvcnRpdW0KKwkJCQlQLk8uIEJveCAxMDE2CisJCQkJTml3b3QgQ08gODA1NDQtMTAxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRDcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMUQ3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUQ4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjFEOCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1EOSAgIChoZXgpCQlTRUtPTklDIENPUlBPUkFUSU9OCiswMDIxRDkgICAgIChiYXNlIDE2KQkJU0VLT05JQyBDT1JQT1JBVElPTgorCQkJCTctMjQtMTQKKwkJCQlPSVpVTUktR0FLVUVOLUNITworCQkJCU5FUklNQS1LVSBUT0tZTyAxNzgtODY4NgorCQkJCUpBUEFOCisKKzAwLTIxLURBICAgKGhleCkJCUF1dG9tYXRpb24gUHJvZHVjdHMgR3JvdXAgSW5jLgorMDAyMURBICAgICAoYmFzZSAxNikJCUF1dG9tYXRpb24gUHJvZHVjdHMgR3JvdXAgSW5jLgorCQkJCTEwMjUgV2VzdCAxNzAwIE5vcnRoCisJCQkJTG9nYW4gVXRhaCA4NDMyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtREIgICAoaGV4KQkJU2FudGFjaGkgVmlkZW8gVGVjaG5vbG9neSAoU2hlbnpoZW4pIENvLiwgTHRkLgorMDAyMURCICAgICAoYmFzZSAxNikJCVNhbnRhY2hpIFZpZGVvIFRlY2hub2xvZ3kgKFNoZW56aGVuKSBDby4sIEx0ZC4KKwkJCQlTYW50YWNoaSBCdWlsZGluZywjMTQgS2FpZmVuZyBSb2FkLE1laWxpbiwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQ5CisJCQkJQ0hJTkEKKworMDAtMjEtREMgICAoaGV4KQkJVEVDTk9BTEFSTSBTLnIubC4KKzAwMjFEQyAgICAgKGJhc2UgMTYpCQlURUNOT0FMQVJNIFMuci5sLgorCQkJCVZpYSBDaXJpZScKKwkJCQlTYW4gTWF1cm8gVG9yaW5lc2UgVG9yaW5vIDEwMDk5CisJCQkJSVRBTFkKKworMDAtMjEtREQgICAoaGV4KQkJTm9ydGhzdGFyIFN5c3RlbXMgQ29ycAorMDAyMUREICAgICAoYmFzZSAxNikJCU5vcnRoc3RhciBTeXN0ZW1zIENvcnAKKwkJCQk1RiwgTm8uMjAwIEdhbmcgUWlhbiBSZAorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMS1ERSAgIChoZXgpCQlGaXJlcHJvIFdpcmVsZXNzCiswMDIxREUgICAgIChiYXNlIDE2KQkJRmlyZXBybyBXaXJlbGVzcworCQkJCTI3LCBaYW1ydWRwdXIgQ29tbXVuaXR5IENlbnRlciwKKwkJCQlLYWlsYXNoIENvbG9ueQorCQkJCU5ldyBEZWxoaSBIYXJ5YW5hIDExMDAyMAorCQkJCUlORElBCisKKzAwLTIxLURGICAgKGhleCkJCU1hcnRpbiBDaHJpc3QgR21iSAorMDAyMURGICAgICAoYmFzZSAxNikJCU1hcnRpbiBDaHJpc3QgR21iSAorCQkJCUFuIGRlciBVbnRlcmVuIFNvZXNlIDUwCisJCQkJT3N0ZXJvZGUgTmllZGVyc2FjaHNlbiAzNzUyMAorCQkJCUdFUk1BTlkKKworMDAtMjEtRTAgICAoaGV4KQkJQ29tbUFnaWxpdHkgTHRkCiswMDIxRTAgICAgIChiYXNlIDE2KQkJQ29tbUFnaWxpdHkgTHRkCisJCQkJSW5ub3ZhdGlvbiBDZW50cmUKKwkJCQlFcGluYWwgV2F5CisJCQkJTG91Z2hib3JvdWdoIExlaWNzIExFMTEgM0VICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjEtRTEgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDIxRTEgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJMjIyMSBMYWtlc2lkZSBCbHZkCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4Mi00Mzk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1FMiAgIChoZXgpCQlDcmVhdGl2ZSBFbGVjdHJvbmljIEdtYkgKKzAwMjFFMiAgICAgKGJhc2UgMTYpCQlDcmVhdGl2ZSBFbGVjdHJvbmljIEdtYkgKKwkJCQlMb3JjaGVyIFN0cmFzc2UgNTIKKwkJCQlCaXJlbmJhY2ggQmFkZW4tV8O8cnR0ZW1iZXJnIDczMTAyCisJCQkJR0VSTUFOWQorCiswMC0yMS1FMyAgIChoZXgpCQlTZXJpYWxUZWsgTExDCiswMDIxRTMgICAgIChiYXNlIDE2KQkJU2VyaWFsVGVrIExMQworCQkJCTE2MzAgT2FrbGFuZCBSZAorCQkJCVN1aXRlIEExMTcKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRTQgICAoaGV4KQkJSS1XSU4KKzAwMjFFNCAgICAgKGJhc2UgMTYpCQlJLVdJTgorCQkJCTI3IFJ1ZSBkZXMgRWNvbmRlYXV4CisJCQkJRVBJTkFZIFNVUiBTRUlORSBTZWluZSBTYWludCBEZW5pcyA5MzgwMAorCQkJCUZSQU5DRQorCiswMC0yMS1FNSAgIChoZXgpCQlEaXNwbGF5IFNvbHV0aW9uIEFHCiswMDIxRTUgICAgIChiYXNlIDE2KQkJRGlzcGxheSBTb2x1dGlvbiBBRworCQkJCVRhbGhvZnN0ci4gMzJhCisJCQkJR2lsY2hpbmcgRCA4MjIwNQorCQkJCUdFUk1BTlkKKworMDAtMjEtRTYgICAoaGV4KQkJU3RhcmxpZ2h0IFZpZGVvIExpbWl0ZWQKKzAwMjFFNiAgICAgKGJhc2UgMTYpCQlTdGFybGlnaHQgVmlkZW8gTGltaXRlZAorCQkJCTUvRi4sIFNoaW5nIERhbyBJbmR1c3RyaWFsIEJ1aWxkaW5nLAorCQkJCTIzMiBBYmVyZGVlbiBNYWluIFJvYWQsCisJCQkJSE9ORyBLT05HCisKKzAwLTIxLUU3ICAgKGhleCkJCUluZm9ybWF0aWNzIFNlcnZpY2VzIENvcnBvcmF0aW9uCiswMDIxRTcgICAgIChiYXNlIDE2KQkJSW5mb3JtYXRpY3MgU2VydmljZXMgQ29ycG9yYXRpb24KKwkJCQkxNDAsIE5lZ2luIEJsZGcuLAorCQkJCU1pcmRhbWFkIEJsdmQKKwkJCQlUZWhyYW4gIDE1NDk1MzQ1MTEKKwkJCQlJUkFOLCBJU0xBTUlDIFJFUFVCTElDIE9GCisKKzAwLTIxLUU4ICAgKGhleCkJCU11cmF0YSBNYW51ZmFjdHVyaW5nIENvLiwgTHRkLgorMDAyMUU4ICAgICAoYmFzZSAxNikJCU11cmF0YSBNYW51ZmFjdHVyaW5nIENvLiwgTHRkLgorCQkJCTEwLTEsIEhpZ2FzaGlrb3RhcmkgMS1jaG9tZQorCQkJCU5hZ2Fva2FreW8tc2hpIEt5b3RvIDYxNy04NTU1CisJCQkJSkFQQU4KKworMDAtMjEtRTkgICAoaGV4KQkJQXBwbGUsIEluYworMDAyMUU5ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUVBICAgKGhleCkJCUJ5c3Ryb25pYyBMYXNlciBBRworMDAyMUVBICAgICAoYmFzZSAxNikJCUJ5c3Ryb25pYyBMYXNlciBBRworCQkJCUluZHVzdHJpZXN0ci4gMjEKKwkJCQkzMzYyIE5pZWRlcsO2bnogCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMjEtRUIgICAoaGV4KQkJRVNQIFNZU1RFTVMsIExMQworMDAyMUVCICAgICAoYmFzZSAxNikJCUVTUCBTWVNURU1TLCBMTEMKKwkJCQkxNDIyIEVhc3QgRm91cnRoIFN0cmVldAorCQkJCUNoYXJsb3R0ZSBOQyAyODIwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRUMgICAoaGV4KQkJU29sdXRyb25pYyBHbWJICiswMDIxRUMgICAgIChiYXNlIDE2KQkJU29sdXRyb25pYyBHbWJICisJCQkJS3VlZmVyc3RyYXNzZSAxOAorCQkJCUtvZW5nZW4gIDczMjU3CisJCQkJR0VSTUFOWQorCiswMC0yMS1FRCAgIChoZXgpCQlUZWxlZ2VzaXMKKzAwMjFFRCAgICAgKGJhc2UgMTYpCQlUZWxlZ2VzaXMKKwkJCQk4NCBTdGF0aW9uIFJvYWQKKwkJCQlNYXJsb3cgQnVja3MgU0w3IDFOWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIxLUVFICAgKGhleCkJCUZ1bGwgU3BlY3RydW0gSW5jLgorMDAyMUVFICAgICAoYmFzZSAxNikJCUZ1bGwgU3BlY3RydW0gSW5jLgorCQkJCTExNDkgQ2hlc3RudXQgU3RyZWV0LCBTdWl0ZSAxMDAKKwkJCQlNZW5sbyBQYXJrIENhbGlmb3JuaWEgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUVGICAgKGhleCkJCUthcHN5cworMDAyMUVGICAgICAoYmFzZSAxNikJCUthcHN5cworCQkJCTc5MCBBdiBkdSBEb2N0ZXVyIE1hdXJpY2UgRG9uYXQKKwkJCQlMZSBNYXJjbyBQb2xvIEExCisJCQkJMDYyNTAgTW91Z2lucyBTb3BoaWEgQW50aXBvbGlzIAorCQkJCUZSQU5DRQorCiswMC0yMS1GMCAgIChoZXgpCQlFVzMgVGVjaG5vbG9naWVzIExMQworMDAyMUYwICAgICAoYmFzZSAxNikJCUVXMyBUZWNobm9sb2dpZXMgTExDCisJCQkJMjAgSG9tZXN0ZWFkIFZpbGxhZ2UgRHJpdmUKKwkJCQlXYXJ3aWNrIE5ZIDEwOTkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1GMSAgIChoZXgpCQlUdXR1cyBEYXRhIEFCCiswMDIxRjEgICAgIChiYXNlIDE2KQkJVHV0dXMgRGF0YSBBQgorCQkJCVN2YXJkdmFnZW4gMTEKKwkJCQlEYW5kZXJ5ZCBTdG9ja2hvbG0gMTgyMzMKKwkJCQlTV0VERU4KKworMDAtMjEtRjIgICAoaGV4KQkJRUFTWTNDQUxMIFRlY2hub2xvZ3kgTGltaXRlZAorMDAyMUYyICAgICAoYmFzZSAxNikJCUVBU1kzQ0FMTCBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlSb29tIDE5MDMtNiwgMTkvRi4sIEhJTkcgWUlQIENvbW1lcmNpYWwgQ2VudHJlCisJCQkJMjcyLTI4NCBERVMgVk9FVVggUm9hZCBDZW50cmFsCisJCQkJSG9uZyBLb25nICA5OTkwNzcKKwkJCQlDSElOQQorCiswMC0yMS1GMyAgIChoZXgpCQlTaTE0IFNwQQorMDAyMUYzICAgICAoYmFzZSAxNikJCVNpMTQgU3BBCisJCQkJVmlhIFRvbW1hc2VvIDc3CisJCQkJUGFkb3ZhIFBEIDM1MTMxCisJCQkJSVRBTFkKKworMDAtMjEtRjQgICAoaGV4KQkJSU5SYW5nZSBTeXN0ZW1zLCBJbmMKKzAwMjFGNCAgICAgKGJhc2UgMTYpCQlJTlJhbmdlIFN5c3RlbXMsIEluYworCQkJCTIyMCBMYWtlbW9udCBQYXJrIEJsdmQKKwkJCQlBbHRvb25hIFBBIDE2NjAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1GNSAgIChoZXgpCQlXZXN0ZXJuIEVuZ3JhdmVycyBTdXBwbHksIEluYy4KKzAwMjFGNSAgICAgKGJhc2UgMTYpCQlXZXN0ZXJuIEVuZ3JhdmVycyBTdXBwbHksIEluYy4KKwkJCQkxNzYyMSBOIEJsYWNrIENhbnlvbiBIaWdod2F5CisJCQkJUGhvZW5peCBBWiA4NTAyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRjYgICAoaGV4KQkJT3JhY2xlIENvcnBvcmF0aW9uCiswMDIxRjYgICAgIChiYXNlIDE2KQkJT3JhY2xlIENvcnBvcmF0aW9uCisJCQkJOTAwIENoZWxtc2ZvcmQgU3RyZWV0CisJCQkJTG93ZWxsIE1BIDAxODUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMS1GNyAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCiswMDIxRjcgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQKKwkJCQlSb3NldmlsbGUgQ0EgOTU3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIxLUY4ICAgKGhleCkJCUVuc2VvLCBJbmMuCiswMDIxRjggICAgIChiYXNlIDE2KQkJRW5zZW8sIEluYy4KKwkJCQk0MDEgSW50ZXJuYXRpb25hbCBQYXJrd2F5CisJCQkJU3VpdGUgMTAwCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjEtRjkgICAoaGV4KQkJV0lSRUNPTSBUZWNobm9sb2dpZXMKKzAwMjFGOSAgICAgKGJhc2UgMTYpCQlXSVJFQ09NIFRlY2hub2xvZ2llcworCQkJCTEzNSwgcnVlIEphY3F1ZXMgQ2hhcmxlcworCQkJCU9MSVZFVCBMb2lyZXQgNDUxNjYKKwkJCQlGUkFOQ0UKKworMDAtMjEtRkEgICAoaGV4KQkJQTRTUCBUZWNobm9sb2dpZXMgTHRkLgorMDAyMUZBICAgICAoYmFzZSAxNikJCUE0U1AgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQlLZWlsYXJhbnRhIDE5IEQKKwkJCQlFc3BvbyBVdXNpbWFhIDAyMTUwCisJCQkJRklOTEFORAorCiswMC0yMS1GQiAgIChoZXgpCQlMRyBFbGVjdHJvbmljcworMDAyMUZCICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzCisJCQkJNjAtMzksS2FzYW4tZG9uZyxLdW1jaG9uLWt1LAorCQkJCVNlb3VsICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIxLUZDICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDIxRkMgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTIxLUZEICAgKGhleCkJCURTVEEgUy5MLgorMDAyMUZEICAgICAoYmFzZSAxNikJCURTVEEgUy5MLgorCQkJCU1hamFkYSA0CisJCQkJVHJlcyBDYW50b3MgTWFkcmlkIDI4NzYwCisJCQkJU1BBSU4KKworMDAtMjEtRkUgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjFGRSAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjEtRkYgICAoaGV4KQkJQ3lmcm93eSBQb2xzYXQgU0EKKzAwMjFGRiAgICAgKGJhc2UgMTYpCQlDeWZyb3d5IFBvbHNhdCBTQQorCQkJCcKjdWJpbm93YSA0QQorCQkJCVdhcnNhdyBNYXpvd2llY2tpZSAwMy04NzgKKwkJCQlQT0xBTkQKKworMDAtMjItMDAgICAoaGV4KQkJSUJNIENvcnAKKzAwMjIwMCAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTIwNTEgTWlzc2lvbiBDb2xsZWdlIEJsdmQgCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTAxICAgKGhleCkJCUFrc3lzIE5ldHdvcmtzIEluYworMDAyMjAxICAgICAoYmFzZSAxNikJCUFrc3lzIE5ldHdvcmtzIEluYworCQkJCTQyOCwgMzU1MyAtIDMxIFN0cmVldCBOVworCQkJCUNhbGdhcnkgIFQyTCAySzcKKwkJCQlDQU5BREEKKworMDAtMjItMDIgICAoaGV4KQkJRXhjaXRvIEVsZWt0cm9uaWsgaSBTa8OlbmUgQUIKKzAwMjIwMiAgICAgKGJhc2UgMTYpCQlFeGNpdG8gRWxla3Ryb25payBpIFNrw6VuZSBBQgorCQkJCUJveCAxMjYKKwkJCQlMw7ZkZGVrw7ZwaW5nZSAgMjQ2IDIyCisJCQkJU1dFREVOCisKKzAwLTIyLTAzICAgKGhleCkJCUdsZW5zb3VuZCBFbGVjdHJvbmljcyBMdGQKKzAwMjIwMyAgICAgKGJhc2UgMTYpCQlHbGVuc291bmQgRWxlY3Ryb25pY3MgTHRkCisJCQkJMSAtIDYgQnJvb2tzIFBsYWNlCisJCQkJTWFpZHN0b25lIEtlbnQgTUUxNyAxVU4KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMi0wNCAgIChoZXgpCQlLT1JBVEVLCiswMDIyMDQgICAgIChiYXNlIDE2KQkJS09SQVRFSworCQkJCUdldW1qZW9uZy1kb25nCisJCQkJR3VucG8tc2kgR3llb25nZ2ktZG8gNDM1LTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMi0wNSAgIChoZXgpCQlXZUxpbmsgU29sdXRpb25zLCBJbmMuCiswMDIyMDUgICAgIChiYXNlIDE2KQkJV2VMaW5rIFNvbHV0aW9ucywgSW5jLgorCQkJCTNGLCBOby4gODgsIFNlYy4gMSwgTmVpLUh1IFJkLgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi0wNiAgIChoZXgpCQlDeWJlcmR5bmUgSW5jLgorMDAyMjA2ICAgICAoYmFzZSAxNikJCUN5YmVyZHluZSBJbmMuCisJCQkJNTA0woFAQzQ5LTIKKwkJCQlUc3VrdWJhLXNoaSBJYmFyYWtpLWtlbiAzMDUtMDgxNworCQkJCUpBUEFOCisKKzAwLTIyLTA3ICAgKGhleCkJCUludGVubyBCcm9hZGJhbmQgVGVjaG5vbG9neSBBQgorMDAyMjA3ICAgICAoYmFzZSAxNikJCUludGVubyBCcm9hZGJhbmQgVGVjaG5vbG9neSBBQgorCQkJCURyaXZoanVsc3bDpGdlbiAyMgorCQkJCVN0b2NraG9sbSBTRSAxMjYzMAorCQkJCVNXRURFTgorCiswMC0yMi0wOCAgIChoZXgpCQlDZXJ0aWNvbSBDb3JwCiswMDIyMDggICAgIChiYXNlIDE2KQkJQ2VydGljb20gQ29ycAorCQkJCTU1MjAgRXhwbG9yZXIgRHJpdmUsIDR0aCBGbG9vcgorCQkJCU1pc3Npc3NhdWdhIE9OIEw0VyA1TDEKKwkJCQlDQU5BREEKKworMDAtMjItMDkgICAoaGV4KQkJT21yb24gSGVhbHRoY2FyZSBDby4sIEx0ZAorMDAyMjA5ICAgICAoYmFzZSAxNikJCU9tcm9uIEhlYWx0aGNhcmUgQ28uLCBMdGQKKwkJCQkyNCBZYW1hbm9zaGl0YS1jaG8gWWFtYW5vdWNoaQorCQkJCVVreW9rdQorCQkJCUt5b3RvICA2MTUwMDg0CisJCQkJSkFQQU4KKworMDAtMjItMEEgICAoaGV4KQkJT25MaXZlLCBJbmMKKzAwMjIwQSAgICAgKGJhc2UgMTYpCQlPbkxpdmUsIEluYworCQkJCTE4MSBMeXR0b24gQXZlCisJCQkJUGFsbyBBbHRvIENhbGlmb3JuaWEgOTQzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTBCICAgKGhleCkJCU5hdGlvbmFsIFNvdXJjZSBDb2RpbmcgQ2VudGVyCiswMDIyMEIgICAgIChiYXNlIDE2KQkJTmF0aW9uYWwgU291cmNlIENvZGluZyBDZW50ZXIKKwkJCQlTdWl0ZSA3MDEsUG93ZXIgQ3JlYXRpdmUgQSxOby4xCisJCQkJU2hhbmdkaSBFYXN0IFJvYWQsSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTIyLTBDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjIwQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0wRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIyMEQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMEUgICAoaGV4KQkJSW5kaWdvIFNlY3VyaXR5IENvLiwgTHRkLgorMDAyMjBFICAgICAoYmFzZSAxNikJCUluZGlnbyBTZWN1cml0eSBDby4sIEx0ZC4KKwkJCQkybmQgRmxvb3IsIDI3Ny0xNjkgU3VuZ3NvbzItR2EsIFN1bmdkb25nLUd1CisJCQkJU2VvdWwgIDEzMy04MzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItMEYgICAoaGV4KQkJTW9DQSAoTXVsdGltZWRpYSBvdmVyIENvYXggQWxsaWFuY2UpCiswMDIyMEYgICAgIChiYXNlIDE2KQkJTW9DQSAoTXVsdGltZWRpYSBvdmVyIENvYXggQWxsaWFuY2UpCisJCQkJOTAgSW52ZXJuZXNzIENpcmNsZSBFYXN0CisJCQkJRW5nbGV3b29kIENBIDk0NTgzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0xMCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyMjEwICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMTEgICAoaGV4KQkJUm9oYXRpIFN5c3RlbXMKKzAwMjIxMSAgICAgKGJhc2UgMTYpCQlSb2hhdGkgU3lzdGVtcworCQkJCTExOTIgQm9ycmVnYXMgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0xMiAgIChoZXgpCQlDQUkgTmV0d29ya3MsIEluYy4KKzAwMjIxMiAgICAgKGJhc2UgMTYpCQlDQUkgTmV0d29ya3MsIEluYy4KKwkJCQkxNzE1IEUuIFdpbHNoaXJlIEF2ZW51ZQorCQkJCVNURSA3MTkKKwkJCQlTYW50YSBBbmEgQ2FsaWZvcm5pYSA5MjcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMTMgICAoaGV4KQkJUENJIENPUlBPUkFUSU9OCiswMDIyMTMgICAgIChiYXNlIDE2KQkJUENJIENPUlBPUkFUSU9OCisJCQkJTm8uMjUsIExhbmUgNjYsIEhlYmVpIDFzdCBTdC4sICBCZWl0dW4gRGlzdHJpY3QKKwkJCQlUYWljaHVuZyAgNDA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi0xNCAgIChoZXgpCQlSSU5OQUkgS09SRUEKKzAwMjIxNCAgICAgKGJhc2UgMTYpCQlSSU5OQUkgS09SRUEKKwkJCQk1NjAtMiwgU2hpYmpvbmctMWRvbmcsIFB1cHlvdW5nLWd1CisJCQkJNXRoIFJlc2VhcmNoIFRlYW0KKwkJCQlQdXB5b3VuZy1ndSBJbmNoZW9uIDQwMy04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItMTUgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCiswMDIyMTUgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdSwKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItMTYgICAoaGV4KQkJU0hJQkFVUkEgVkVORElORyBNQUNISU5FIENPUlBPUkFUSU9OCiswMDIyMTYgICAgIChiYXNlIDE2KQkJU0hJQkFVUkEgVkVORElORyBNQUNISU5FIENPUlBPUkFUSU9OCisJCQkJRWtpbWFlLWNobzEzLTEwCisJCQkJT2JhbWEtc2hpIEZ1a3VpLWtlbiA5MTctMDA3NworCQkJCUpBUEFOCisKKzAwLTIyLTE3ICAgKGhleCkJCU5lYXQgRWxlY3Ryb25pY3MKKzAwMjIxNyAgICAgKGJhc2UgMTYpCQlOZWF0IEVsZWN0cm9uaWNzCisJCQkJVmFydXbDpGdlbiAyCisJCQkJTMO2ZGRla8O2cGluZ2UgU2vDpW5lIFNFLTI0NjQyCisJCQkJU1dFREVOCisKKzAwLTIyLTE4ICAgKGhleCkJCVZlcml2dWUgSW5jLgorMDAyMjE4ICAgICAoYmFzZSAxNikJCVZlcml2dWUgSW5jLgorCQkJCTMgQ2FybGlzbGUgUm9hZAorCQkJCVdlc3Rmb3JkIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0xOSAgIChoZXgpCQlEZWxsIEluYworMDAyMjE5ICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0xQSAgIChoZXgpCQlBdWRpbyBQcmVjaXNpb24KKzAwMjIxQSAgICAgKGJhc2UgMTYpCQlBdWRpbyBQcmVjaXNpb24KKwkJCQk1NzUwIFNXIEFyY3RpYyBEcml2ZQorCQkJCUJlYXZlcnRvbiBPUiA5NzAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMUIgICAoaGV4KQkJTW9yZWdhIFN5c3RlbXMKKzAwMjIxQiAgICAgKGJhc2UgMTYpCQlNb3JlZ2EgU3lzdGVtcworCQkJCTU3NzAgSHVyb250YXJpbyBTdHJlZXQKKwkJCQlTdWl0ZSA1MDEKKwkJCQlNaXNzaXNzYXVnYSBPbnRhcmlvIEw1UiAzRzUKKwkJCQlDQU5BREEKKworMDAtMjItMUMgICAoaGV4KQkJUFJJVkFURQorMDAyMjFDICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0yMi0xRCAgIChoZXgpCQlGcmVlZ2VuZSBUZWNobm9sb2d5IExURAorMDAyMjFEICAgICAoYmFzZSAxNikJCUZyZWVnZW5lIFRlY2hub2xvZ3kgTFRECisJCQkJMy9GICxDIEJMREcsV2VpcGVuZ2RhIEluZHVzdHJpYWwgUGFyaworCQkJCWxvbmdrb3UgaW5kdXN0cmlhbCBhcmVhLGJhby1hbiBkaXN0cmljdAorCQkJCVNoZW56aGVuIEdvbmdkb25nIDUxODEwOQorCQkJCUNISU5BCisKKzAwLTIyLTFFICAgKGhleCkJCU1lZGlhIERldmljZXMgQ28uLCBMdGQuCiswMDIyMUUgICAgIChiYXNlIDE2KQkJTWVkaWEgRGV2aWNlcyBDby4sIEx0ZC4KKwkJCQlSbTEwMDIgQWNlIFRlY2hub1Rvd2VyKDl0aCkgMzQ1LTMwCisJCQkJS2FzYW4tZG9uZywgS3VtY2hvbi1rdQorCQkJCVNlb3VsICAxNTMtODAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIyLTFGICAgKGhleCkJCWVTYW5nIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwMjIxRiAgICAgKGJhc2UgMTYpCQllU2FuZyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJIzEtODE3LCBJVCBDYXN0bGUgNTUwLTEsIEdhc2FuLURvbmcsCisJCQkJR2V1bWNoZW9uLUd1LAorCQkJCVNlb3VsICAxNTMtNzY4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIyLTIwICAgKGhleCkJCU1pdGFjIFRlY2hub2xvZ3kgQ29ycAorMDAyMjIwICAgICAoYmFzZSAxNikJCU1pdGFjIFRlY2hub2xvZ3kgQ29ycAorCQkJCTl0aCBGbC4sICM3NSwgTWluLXNoZW5nIEUuIFJvYWQsIFNlYy4gMywKKwkJCQlUYWlwZWkgIDEwNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItMjEgICAoaGV4KQkJSVRPSCBERU5LSSBDTyxMVEQuCiswMDIyMjEgICAgIChiYXNlIDE2KQkJSVRPSCBERU5LSSBDTyxMVEQuCisJCQkJMTE0Ni0yLCBBc2F6dW1hLWNobworCQkJCUthc2FpIEh5b2dvIDY3OS0wMTgwCisJCQkJSkFQQU4KKworMDAtMjItMjIgICAoaGV4KQkJU2NoYWZmbmVyIERldXRzY2hsYW5kIEdtYkggCiswMDIyMjIgICAgIChiYXNlIDE2KQkJU2NoYWZmbmVyIERldXRzY2hsYW5kIEdtYkggCisJCQkJTvxydGluZ2VuIEJyYW5jaAorCQkJCVJhaWR3YW5nZXIgU3RyLiAxMiAKKwkJCQlO/HJ0aW5nZW4gQlcgRC03MjYyMiAKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLTIzICAgKGhleCkJCVRpbWVLZWVwaW5nIFN5c3RlbXMsIEluYy4KKzAwMjIyMyAgICAgKGJhc2UgMTYpCQlUaW1lS2VlcGluZyBTeXN0ZW1zLCBJbmMuCisJCQkJMzA3MDAgQmFpbmJyaWRnZSBSb2FkCisJCQkJU3VpdGUgSAorCQkJCVNvbG9uIE9IIDQ0MTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0yNCAgIChoZXgpCQlHb29kIFdpbGwgSW5zdHJ1bWVudCBDby4sIEx0ZC4KKzAwMjIyNCAgICAgKGJhc2UgMTYpCQlHb29kIFdpbGwgSW5zdHJ1bWVudCBDby4sIEx0ZC4KKwkJCQlOby4gNy0xIEpob25nc2luZyBSb2FkLAorCQkJCVR1Y2hlbmcgQ2l0eQorCQkJCVRhaXBlaSAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi0yNSAgIChoZXgpCQlUaGFsZXMgQXZpb25pY3MgTHRkCiswMDIyMjUgICAgIChiYXNlIDE2KQkJVGhhbGVzIEF2aW9uaWNzIEx0ZAorCQkJCTg2IEJ1c2hleSBSb2FkCisJCQkJUmF5bmVzIFBhcmsKKwkJCQlMb25kb24gIFNXMjAgMEpXCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjItMjYgICAoaGV4KQkJQXZhYWssIEluYy4KKzAwMjIyNiAgICAgKGJhc2UgMTYpCQlBdmFhaywgSW5jLgorCQkJCTk2NDUgU2NyYW50b24gUmQuLCBTdWl0ZSAxMTAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTI3ICAgKGhleCkJCXV2LWVsZWN0cm9uaWMgR21iSAorMDAyMjI3ICAgICAoYmFzZSAxNikJCXV2LWVsZWN0cm9uaWMgR21iSAorCQkJCUdyb3Nzd2llc2Vuc3RyYXNzZSAyMAorCQkJCUR1cmNoaGF1c2VuIEJhZGVuLVfDvHJ0dGVtYmVyZyA3ODU5MQorCQkJCUdFUk1BTlkKKworMDAtMjItMjggICAoaGV4KQkJQnJlZXplIElubm92YXRpb25zIEx0ZC4KKzAwMjIyOCAgICAgKGJhc2UgMTYpCQlCcmVlemUgSW5ub3ZhdGlvbnMgTHRkLgorCQkJCUhhciBIb3R6dmltLCBQLk8uIEJveCA0NTM5NworCQkJCUplcnVzYWxlbSBJc3JhZWwgOTE0NTEKKwkJCQlJU1JBRUwKKworMDAtMjItMjkgICAoaGV4KQkJQ29tcHVtZWRpY3MgTHRkCiswMDIyMjkgICAgIChiYXNlIDE2KQkJQ29tcHVtZWRpY3MgTHRkCisJCQkJMzAgLSA0MCBGbG9ja2hhcnQgU3RyZWV0CisJCQkJQWJib3RzZm9yZCBWaWN0b3JpYSAzMDY3CisJCQkJQVVTVFJBTElBCisKKzAwLTIyLTJBICAgKGhleCkJCVNvdW5kRWFyIEEvUworMDAyMjJBICAgICAoYmFzZSAxNikJCVNvdW5kRWFyIEEvUworCQkJCVJlbnRlbWVzdGVydmVqIDgwCisJCQkJQ29wZW5oYWdlbiBOViBEZW5tYXJrIERLLTI0MDAKKwkJCQlERU5NQVJLCisKKzAwLTIyLTJCICAgKGhleCkJCU51Y29tbSwgSW5jLgorMDAyMjJCICAgICAoYmFzZSAxNikJCU51Y29tbSwgSW5jLgorCQkJCTEwMSBCaWxieSBSb2FkCisJCQkJSGFja2V0dHN0b3duIE5KIDA3ODQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0yQyAgIChoZXgpCQlDZXRvbiBDb3JwCiswMDIyMkMgICAgIChiYXNlIDE2KQkJQ2V0b24gQ29ycAorCQkJCTgyNTkgMTIybmQgQXZlIE5FLCBTdWl0ZSAyNzUKKwkJCQlLaXJrbGFuZCBXYXNoaW5ndG9uIDk4MDMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0yRCAgIChoZXgpCQlTTUMgTmV0d29ya3MgSW5jLgorMDAyMjJEICAgICAoYmFzZSAxNikJCVNNQyBOZXR3b3JrcyBJbmMuCisJCQkJMjAgTWFzb24KKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTJFICAgKGhleCkJCW1haW50ZWNoIEdtYkgKKzAwMjIyRSAgICAgKGJhc2UgMTYpCQltYWludGVjaCBHbWJICisJCQkJU2Vld2VnIDYwCisJCQkJSMO2Y2hiZXJnIEJhdmFyaWEgOTcyMDQKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLTJGICAgKGhleCkJCU9wZW4gR3JpZCBDb21wdXRpbmcsIEluYy4KKzAwMjIyRiAgICAgKGJhc2UgMTYpCQlPcGVuIEdyaWQgQ29tcHV0aW5nLCBJbmMuCisJCQkJNDAzMC0xIFdlc3QgQnJha2VyIExhbmUgU1RFMTMwCisJCQkJQXVzdGluIFRYIDc4NzU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0zMCAgIChoZXgpCQlGdXR1cmVMb2dpYyBJbmMuCiswMDIyMzAgICAgIChiYXNlIDE2KQkJRnV0dXJlTG9naWMgSW5jLgorCQkJCTQyNSBFLiBDb2xvcmFkbyBTdC4sIFN0ZS4gMTAwCisJCQkJR2xlbmRhbGUgQ0EgOTEyMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTMxICAgKGhleCkJCVNNVCZDIENvLiwgTHRkLgorMDAyMjMxICAgICAoYmFzZSAxNikJCVNNVCZDIENvLiwgTHRkLgorCQkJCTJGci4gSGFrc2FuIEJsZGcuIDExMCwgR3dhbmdqYW5nLWRvbmcsIEd3YW5namluLWd1CisJCQkJU2VvdWwgIDE0My04MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItMzIgICAoaGV4KQkJRGVzaWduIERlc2lnbiBUZWNobm9sb2d5IEx0ZAorMDAyMjMyICAgICAoYmFzZSAxNikJCURlc2lnbiBEZXNpZ24gVGVjaG5vbG9neSBMdGQKKwkJCQlVbml0IDksIEFzaCBSb2FkIFNvdXRoCisJCQkJV3JleGhhbSBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCVdyZXhoYW0gTm9ydGggV2FsZXMgTEwxMyA5VUcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMi0zMyAgIChoZXgpCQlBREIgQnJvYWRiYW5kIEl0YWxpYQorMDAyMjMzICAgICAoYmFzZSAxNikJCUFEQiBCcm9hZGJhbmQgSXRhbGlhCisJCQkJVklBTEUgU0FSQ0EgMjIyCisJCQkJTUlMQU5PICAyMDEyNgorCQkJCUlUQUxZCisKKzAwLTIyLTM0ICAgKGhleCkJCUNvcnZlbnRpcyBJbmMuCiswMDIyMzQgICAgIChiYXNlIDE2KQkJQ29ydmVudGlzIEluYy4KKwkJCQkxNDEwIEVuZXJneSBQYXJrIERyLiBTdWl0ZSAjMQorCQkJCVN0LiBQYXVsIE1pbm5lc290YSA1NTEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItMzUgICAoaGV4KQkJU3RydWt0b24gU3lzdGVtcyBidgorMDAyMjM1ICAgICAoYmFzZSAxNikJCVN0cnVrdG9uIFN5c3RlbXMgYnYKKwkJCQlXZXN0a2FuYWFsZGlqayAyCisJCQkJVXRyZWNodCAgMzU0MiBEQQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIyLTM2ICAgKGhleCkJCVZFQ1RPUiBTUC4gWiBPLk8uCiswMDIyMzYgICAgIChiYXNlIDE2KQkJVkVDVE9SIFNQLiBaIE8uTy4KKwkJCQlLUlpFTU9XQSA2CisJCQkJR0RZTklBICA4MS01NzcKKwkJCQlQT0xBTkQKKworMDAtMjItMzcgICAoaGV4KQkJU2hpbmhpbnQgR3JvdXAKKzAwMjIzNyAgICAgKGJhc2UgMTYpCQlTaGluaGludCBHcm91cAorCQkJCVVuaXQgMTUwNiwgMTUvRiwgTmFueWFuZyBQbGF6YSwsIDU3IEh1bmcgVG8gUm9hZCwKKwkJCQlLd3VuIFRvbmcsIEtsbgorCQkJCUhPTkcgS09ORworCiswMC0yMi0zOCAgIChoZXgpCQlMT0dJUExVUworMDAyMjM4ICAgICAoYmFzZSAxNikJCUxPR0lQTFVTCisJCQkJMSwgUlVFIENMRU1FTlQgQURFUgorCQkJCUItNjA0MSBHT1NTRUxFSUVTCisJCQkJR09TU0VMSUVTIEhBSU5BVVQgQi02MDQxCisJCQkJQkVMR0lVTQorCiswMC0yMi0zOSAgIChoZXgpCQlJbmRpYW5hIExpZmUgU2NpZW5jZXMgSW5jb3Jwb3JhdGVkCiswMDIyMzkgICAgIChiYXNlIDE2KQkJSW5kaWFuYSBMaWZlIFNjaWVuY2VzIEluY29ycG9yYXRlZAorCQkJCTg4NzUgQmFzaCBTdHJlZXQKKwkJCQlJbmRpYW5hcG9saXMgSW5kaWFuYSA0NjI1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItM0EgICAoaGV4KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBDaXNjbyBTUFZUIEdyb3VwCiswMDIyM0EgICAgIChiYXNlIDE2KQkJU2NpZW50aWZpYyBBdGxhbnRhLCBDaXNjbyBTUFZUIEdyb3VwCisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTNCICAgKGhleCkJCUNvbW11bmljYXRpb24gTmV0d29ya3MsIExMQworMDAyMjNCICAgICAoYmFzZSAxNikJCUNvbW11bmljYXRpb24gTmV0d29ya3MsIExMQworCQkJCTMgQ29ycG9yYXRlIERyaXZlCisJCQkJRGFuYnVyeSBDVCAwNjgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItM0MgICAoaGV4KQkJUkFUSU8gRW50d2lja2x1bmdlbiBHbWJICiswMDIyM0MgICAgIChiYXNlIDE2KQkJUkFUSU8gRW50d2lja2x1bmdlbiBHbWJICisJCQkJTHVkd2lnLUVyaGFyZC1TdHJhc3NlIDIyCisJCQkJSGFtYnVyZyAgMjA0NTkKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLTNEICAgKGhleCkJCUp1bXBHZW4gU3lzdGVtcywgTExDCiswMDIyM0QgICAgIChiYXNlIDE2KQkJSnVtcEdlbiBTeXN0ZW1zLCBMTEMKKwkJCQkyMTExIFBhbG9tYXIgQWlycG9ydCBSZCwgU3RlIDE0MAorCQkJCUNhcmxzYmFkIENBIDkyMDExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi0zRSAgIChoZXgpCQlJUlRyYW5zIEdtYkgKKzAwMjIzRSAgICAgKGJhc2UgMTYpCQlJUlRyYW5zIEdtYkgKKwkJCQlFaW5zdGVpbnN0cmFzc2UgMTQKKwkJCQlVbnRlcnNjaGxlaXNzaGVpbSBCQVlFUk4gODU3MTYKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLTNGICAgKGhleCkJCU5ldGdlYXIgSW5jLgorMDAyMjNGICAgICAoYmFzZSAxNikJCU5ldGdlYXIgSW5jLgorCQkJCTQ1MDAgR3JlYXQgQW1lcmljYSBQa3kKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNDAgICAoaGV4KQkJVW5pdmVyc2FsIFRlbGVjb20gUy9BCiswMDIyNDAgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIFRlbGVjb20gUy9BCisJCQkJQXZlbmlkYSBQYXVsaXN0YSwgMjQ0NCAtIDE3IGFuZGFyCisJCQkJU2FvIFBhdWxvICAwMTMxMC0zMDAKKwkJCQlCUkFaSUwKKworMDAtMjItNDEgICAoaGV4KQkJQXBwbGUsIEluYworMDAyMjQxICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTQyICAgKGhleCkJCUFsYWNyb24gSW5jLgorMDAyMjQyICAgICAoYmFzZSAxNikJCUFsYWNyb24gSW5jLgorCQkJCTcxIFNwaXQgQnJvb2sgUmQuCisJCQkJU3VpdGUgMjA0CisJCQkJTmFzaHVhIE5IIDAzMDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi00MyAgIChoZXgpCQlBenVyZVdhdmUgVGVjaG5vbG9naWVzLCBJbmMuCiswMDIyNDMgICAgIChiYXNlIDE2KQkJQXp1cmVXYXZlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCThGLiwgTm8uIDk0LCBCYW96aG9uZyBSZC4sIFhpbmRpYW4KKwkJCQlUYWlwZWkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItNDQgICAoaGV4KQkJQ2hlbmdkdSBMaW5rb24gQ29tbXVuaWNhdGlvbnMgRGV2aWNlIENvLiwgTHRkCiswMDIyNDQgICAgIChiYXNlIDE2KQkJQ2hlbmdkdSBMaW5rb24gQ29tbXVuaWNhdGlvbnMgRGV2aWNlIENvLiwgTHRkCisJCQkJNWYtMDIsIEp1bnRvbmcgQnVpbGRpbmcsIE5vLiA1MyxTaHVhbmdmZW5nIFJvYWQsIFd1aG91IERpc3RyaWN0LAorCQkJCUNoZW5nZHUgU2ljaHVhbiA2MTAwNDEKKwkJCQlDSElOQQorCiswMC0yMi00NSAgIChoZXgpCQlMZWluZSAmIExpbmRlIEFCCiswMDIyNDUgICAgIChiYXNlIDE2KQkJTGVpbmUgJiBMaW5kZSBBQgorCQkJCUJveCA4CisJCQkJU3Ryw6RuZ27DpHMgU8O2ZGVybWFubGFuZCBTRS02NDUgMjEKKwkJCQlTV0VERU4KKworMDAtMjItNDYgICAoaGV4KQkJRXZvYyBJbnRlbGxpZ2VudCBUZWNobm9sb2d5IENvLixMdGQuCiswMDIyNDYgICAgIChiYXNlIDE2KQkJRXZvYyBJbnRlbGxpZ2VudCBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJTm8uMzEgR2FveGluIENlbnRlcmFsIEF2ZW51ZSA0dGggUm9hZCxOYW5zaGFuIERpc3RyaWN0IFNoZW56aGVuIENpdHkKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjItNDcgICAoaGV4KQkJREFDIEVOR0lORUVSSU5HIENPLiwgTFRELgorMDAyMjQ3ICAgICAoYmFzZSAxNikJCURBQyBFTkdJTkVFUklORyBDTy4sIExURC4KKwkJCQkxLTUgT3lhbmFnaS1jaG8KKwkJCQlLYW1pdG9iYSwgTWluYW1pLWt1CisJCQkJS3lvdG8gIDYwMS04MTI4CisJCQkJSkFQQU4KKworMDAtMjItNDggICAoaGV4KQkJTWljcm9zb2Z0IENvcnBvcmF0aW9uCiswMDIyNDggICAgIChiYXNlIDE2KQkJTWljcm9zb2Z0IENvcnBvcmF0aW9uCisJCQkJT25lIE1pY3Jvc29mdCBXYXkKKwkJCQlSZWRtb25kIFdhc2hpbmd0b24gOTgwNTItNjM5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNDkgICAoaGV4KQkJSE9NRSBNVUxUSUVORVJHWSBTTAorMDAyMjQ5ICAgICAoYmFzZSAxNikJCUhPTUUgTVVMVElFTkVSR1kgU0wKKwkJCQlDQVBJVMOBTiBIQVlBIDEKKwkJCQlFRElGSUNJTyBFVUNPQ0VOVFJPIEJBSk8KKwkJCQlNQURSSUQgIDI4MDIwCisJCQkJU1BBSU4KKworMDAtMjItNEEgICAoaGV4KQkJUkFZTEFTRSBBRworMDAyMjRBICAgICAoYmFzZSAxNikJCVJBWUxBU0UgQUcKKwkJCQlBcmdlbHNyaWVkZXIgRmVsZCAyLTQKKwkJCQlXZXNzbGluZyBCYXZhcmlhIDgyMjM0CisJCQkJR0VSTUFOWQorCiswMC0yMi00QiAgIChoZXgpCQlBSVJURUNIIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAyMjRCICAgICAoYmFzZSAxNikJCUFJUlRFQ0ggVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTlmbC00LCBuby43NywgSHNpbiBUYWkgV3UgUmQuLCBzZWMuMSwgSHNpbi1DaGloCisJCQkJVGFpcGVpICAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLTRDICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyMjRDICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTIyLTREICAgKGhleCkJCU1JVEFDIElOVEVSTkFUSU9OQUwgQ09SUC4KKzAwMjI0RCAgICAgKGJhc2UgMTYpCQlNSVRBQyBJTlRFUk5BVElPTkFMIENPUlAuCisJCQkJNlRIIEZMLiwgTk8xODcsIFRJRElORyBCTFZELiwgU0VDLiAyCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLTRFICAgKGhleCkJCVNFRW5lcmd5IENvcnAuCiswMDIyNEUgICAgIChiYXNlIDE2KQkJU0VFbmVyZ3kgQ29ycC4KKwkJCQk0RiwgTm8uNjEsIERvbmdzaW5nIFJELgorCQkJCVRhaXBlaSAgMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi00RiAgIChoZXgpCQlCeXpvcm8gTmV0d29ya3MgTHRkLgorMDAyMjRGICAgICAoYmFzZSAxNikJCUJ5em9ybyBOZXR3b3JrcyBMdGQuCisJCQkJUm9vbSA1QTEsQmxvY2sgQSwgS2VzaGkgUGxhemEsTm8uIDI4QSBJbmZvLiBSb2FkLAorCQkJCUhhaURpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAxMDAwODUKKwkJCQlDSElOQQorCiswMC0yMi01MCAgIChoZXgpCQlQb2ludCBTaXggV2lyZWxlc3MsIExMQworMDAyMjUwICAgICAoYmFzZSAxNikJCVBvaW50IFNpeCBXaXJlbGVzcywgTExDCisJCQkJMjMzMyBBbHVtbmkgUGFyayBQbGF6YQorCQkJCVN1aXRlIDMwNQorCQkJCUxleGluZ3RvbiBLWSA0MDUxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNTEgICAoaGV4KQkJTHVtYXNlbnNlIFRlY2hub2xvZ2llcworMDAyMjUxICAgICAoYmFzZSAxNikJCUx1bWFzZW5zZSBUZWNobm9sb2dpZXMKKwkJCQkzMDMzIFNjb3R0IEJsdmQuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTUyICAgKGhleCkJCVpPTEwgTGlmZWNvciBDb3Jwb3JhdGlvbgorMDAyMjUyICAgICAoYmFzZSAxNikJCVpPTEwgTGlmZWNvciBDb3Jwb3JhdGlvbgorCQkJCTEyMSBGcmVlcG9ydCBSb2FkCisJCQkJUGl0dHNidXJnaCBQQSAxNTIzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNTMgICAoaGV4KQkJRW50b3JpYW4gVGVjaG5vbG9naWVzCiswMDIyNTMgICAgIChiYXNlIDE2KQkJRW50b3JpYW4gVGVjaG5vbG9naWVzCisJCQkJODkwMCBTaG9hbCBDcmVlayBCbHZkCisJCQkJQXVzdGluIFRYIDc4NzU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi01NCAgIChoZXgpCQlCaWdlbG93IEFlcm9zcGFjZQorMDAyMjU0ICAgICAoYmFzZSAxNikJCUJpZ2Vsb3cgQWVyb3NwYWNlCisJCQkJMTg5OSBXLiBCcm9va3MgQXZlCisJCQkJTm9ydGggTGFzIFZlZ2FzIE5WIDg5MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi01NSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIyNTUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNTYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMjU2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTU3ICAgKGhleCkJCTNDb20gRXVyb3BlIEx0ZAorMDAyMjU3ICAgICAoYmFzZSAxNikJCTNDb20gRXVyb3BlIEx0ZAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSGVydHMuIEhQMiA0TlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMi01OCAgIChoZXgpCQlUYWl5byBZdWRlbiBDby4sIEx0ZC4KKzAwMjI1OCAgICAgKGJhc2UgMTYpCQlUYWl5byBZdWRlbiBDby4sIEx0ZC4KKwkJCQk4LTEsIFNha2FlLWNobworCQkJCVRha2FzYWtpLXNoaSBHdW5tYS1rZW4gMzcwLTg1MjIKKwkJCQlKQVBBTgorCiswMC0yMi01OSAgIChoZXgpCQlHdWFuZ3pob3UgTmV3IFBvc3Rjb20gRXF1aXBtZW50IENvLixMdGQuCiswMDIyNTkgICAgIChiYXNlIDE2KQkJR3Vhbmd6aG91IE5ldyBQb3N0Y29tIEVxdWlwbWVudCBDby4sTHRkLgorCQkJCU5vLjPCocKhR3VhbmdwdXhpIFJvYWQsR3Vhbmd6aG91IFNjaWVuY2UgQ2l0eSwKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDY2MworCQkJCUNISU5BCisKKzAwLTIyLTVBICAgKGhleCkJCUdhcmRlIFNlY3VyaXR5IEFCCiswMDIyNUEgICAgIChiYXNlIDE2KQkJR2FyZGUgU2VjdXJpdHkgQUIKKwkJCQlCb3ggNzgKKwkJCQlTb2RlcmhhbW4gIFMtODI2IDIyCisJCQkJU1dFREVOCisKKzAwLTIyLTVCICAgKGhleCkJCVRlcmFkaWNpIENvcnBvcmF0aW9uCiswMDIyNUIgICAgIChiYXNlIDE2KQkJVGVyYWRpY2kgQ29ycG9yYXRpb24KKwkJCQkxMDEgNDYyMSBDYW5hZGEgV2F5LAorCQkJCUJ1cm5hYnkgQkMgVjZHIDRYOAorCQkJCUNBTkFEQQorCiswMC0yMi01QyAgIChoZXgpCQlNdWx0aW1lZGlhICYgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5CiswMDIyNUMgICAgIChiYXNlIDE2KQkJTXVsdGltZWRpYSAmIENvbW11bmljYXRpb24gVGVjaG5vbG9neQorCQkJCURpZ2l0YWwgRW1waXJlIEQtODAxICM5ODAtMworCQkJCVllb25nVG9uZy1Eb25nCisJCQkJU3V3b24tQ2l0eSBLeWVvbmdHaS1EbyA0NDMtODEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIyLTVEICAgKGhleCkJCURpZ2ljYWJsZSBOZXR3b3JrIEluZGlhIFB2dC4gTHRkLgorMDAyMjVEICAgICAoYmFzZSAxNikJCURpZ2ljYWJsZSBOZXR3b3JrIEluZGlhIFB2dC4gTHRkLgorCQkJCTdCLCBTaGFoIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJT2ZmLiBWZWVyYSBEZXNhaSBSb2FkLAorCQkJCUFuZGhlcmkgLSBXZXN0LCBNdW1iYWkuIE1haGFyYXNodHJhIDQwMCAwNTMKKwkJCQlJTkRJQQorCiswMC0yMi01RSAgIChoZXgpCQlVd2luIFRlY2hub2xvZ2llcyBDby4sTFRECiswMDIyNUUgICAgIChiYXNlIDE2KQkJVXdpbiBUZWNobm9sb2dpZXMgQ28uLExURAorCQkJCTJGLE5vLjIyLlImRCBSRCBJSSxTQklQCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi01RiAgIChoZXgpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAyMjVGICAgICAoYmFzZSAxNikJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYsOTAsQ2hpZW4gMSBSb2FkLENodW5nSG8sCisJCQkJVGFpcGVpIEhzaWVuLCAyMzU4NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItNjAgICAoaGV4KQkJQUZSRUVZIEluYy4KKzAwMjI2MCAgICAgKGJhc2UgMTYpCQlBRlJFRVkgSW5jLgorCQkJCTZGLCBOby4yNDksIENoaWVuIEkgUm9hZAorCQkJCUNodW5nIEhvIENpdHkgVGFpcGVpIENvdW50eSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLTYxICAgKGhleCkJCUZyb250aWVyIFNpbGljb24gTHRkCiswMDIyNjEgICAgIChiYXNlIDE2KQkJRnJvbnRpZXIgU2lsaWNvbiBMdGQKKwkJCQlHbGVuZWFnbGVzLCBUaGUgQmVsZnJ5CisJCQkJQ29sb25pYWwgV2F5CisJCQkJV2F0Zm9yZCBIZXJ0Zm9yZHNoaXJlIFdEMjQgNFdICisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjItNjIgICAoaGV4KQkJQkVQIE1hcmluZQorMDAyMjYyICAgICAoYmFzZSAxNikJCUJFUCBNYXJpbmUKKwkJCQkxMyBUYXJuZGFsZSBHcm92ZSBBbGJhbnkKKwkJCQlOb3J0aCBTaG9yZQorCQkJCUF1Y2tsYW5kICAwNjMyCisJCQkJTkVXIFpFQUxBTkQKKworMDAtMjItNjMgICAoaGV4KQkJS29vcyBUZWNobmljYWwgU2VydmljZXMsIEluYy4KKzAwMjI2MyAgICAgKGJhc2UgMTYpCQlLb29zIFRlY2huaWNhbCBTZXJ2aWNlcywgSW5jLgorCQkJCTEwMjUgR3JlZW53b29kIEJsdmQuCisJCQkJU3VpdGUgMzkxCisJCQkJTGFrZSBNYXJ5IEZMIDMyNzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi02NCAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAyMjY0ICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMgorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTY1ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDIyNjUgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTIyLTY2ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDIyNjYgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTIyLTY3ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAyMjY3ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTIyMjEgTGFrZXNpZGUgQmx2ZAorCQkJCVJpY2hhcmRzb24gVGV4YXMgNzUwODItNDM5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNjggICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMjI2OCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCTY2LCBDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLTY5ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCiswMDIyNjkgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKwkJCQk2NiwgQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi02QSAgIChoZXgpCQlIb25leXdlbGwKKzAwMjI2QSAgICAgKGJhc2UgMTYpCQlIb25leXdlbGwKKwkJCQk4ODQwIEV2ZXJncmVlbiBCbHZkLgorCQkJCU1pbm5lYXBvbGlzIE1OIDU1NDMzLTYwNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTZCICAgKGhleCkJCUNpc2NvLUxpbmtzeXMsIExMQworMDAyMjZCICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMsIExMQworCQkJCTEyMSBUaGVvcnkgRHJpdmUKKwkJCQlJcnZpbmUgQ2FsaWZvcm5pYSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItNkMgICAoaGV4KQkJTGlua1Nwcml0ZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMjI2QyAgICAgKGJhc2UgMTYpCQlMaW5rU3ByaXRlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE0MTAgQ2Fubm9uIE1vdW50YWluIERyCisJCQkJTG9uZ21vbnQgQ08gODA1MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTZEICAgKGhleCkJCVNoZW56aGVuIEdJRUMgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCiswMDIyNkQgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gR0lFQyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkyNC9GLCBYaU5pYW4gQ2VudGVyLCBTaGVuTmFuIFJvYWQgNjAyMSMsIEZ1dGlhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyBQcm92aW5jZSA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0yMi02RSAgIChoZXgpCQlHb3dlbGwgRWxlY3Ryb25pYyBMaW1pdGVkCiswMDIyNkUgICAgIChiYXNlIDE2KQkJR293ZWxsIEVsZWN0cm9uaWMgTGltaXRlZAorCQkJCVJvb20gMzYwMSAsMzYgRmxvb3IsR29sZGVuIENlbnRyYWwgVG93ZXIsSmludGlhbiBSb2FkLEZ1dGlhbiBDZW50cmFsIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwNDgKKwkJCQlDSElOQQorCiswMC0yMi02RiAgIChoZXgpCQkzb25lZGF0YSBUZWNobm9sb2d5IENvLiBMdGQuCiswMDIyNkYgICAgIChiYXNlIDE2KQkJM29uZWRhdGEgVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCTMvRiwgQi8yLCBKaXV4aWFuZ2xpbmcgSW5kdXN0cmlhbCBEaXN0cmljdCwgWGlsaSBUb3duLCBOYW5zaGFuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTUKKwkJCQlDSElOQQorCiswMC0yMi03MCAgIChoZXgpCQlBQksgTm9ydGggQW1lcmljYSwgTExDCiswMDIyNzAgICAgIChiYXNlIDE2KQkJQUJLIE5vcnRoIEFtZXJpY2EsIExMQworCQkJCTQ0MCBOb3J0aCBXb2xmZSBSZC4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTcxICAgKGhleCkJCUrDg8KkZ2VyIENvbXB1dGVyZ2VzdGV1ZXJ0ZSBNZXNzdGVjaG5payBHbWJICiswMDIyNzEgICAgIChiYXNlIDE2KQkJSsODwqRnZXIgQ29tcHV0ZXJnZXN0ZXVlcnRlIE1lc3N0ZWNobmlrIEdtYkgKKwkJCQlSaGVpbnN0cmHDg8W4ZSAyLTQKKwkJCQlMb3JzY2ggSGVzc2VuIDY0NjUzCisJCQkJR0VSTUFOWQorCiswMC0yMi03MiAgIChoZXgpCQlBbWVyaWNhbiBNaWNyby1GdWVsIERldmljZSBDb3JwLgorMDAyMjcyICAgICAoYmFzZSAxNikJCUFtZXJpY2FuIE1pY3JvLUZ1ZWwgRGV2aWNlIENvcnAuCisJCQkJMjE4MSBCdWNoYW5hbiBMb29wCisJCQkJRmVybmRhbGUgV0EgOTgyNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTczICAgKGhleCkJCVRlY2h3YXkKKzAwMjI3MyAgICAgKGJhc2UgMTYpCQlUZWNod2F5CisJCQkJUm0gMTAwMiwgRGFlaHl1biBUZWNobm8gV29ybGQgQmQsCisJCQkJMTc0LCBPanVuLURvbmcsCisJCQkJVWl3YW5nLVNpLCBLeXVuZ2tpLURvIDQzNy04MjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItNzQgICAoaGV4KQkJRmFtaWx5UGhvbmUgQUIKKzAwMjI3NCAgICAgKGJhc2UgMTYpCQlGYW1pbHlQaG9uZSBBQgorCQkJCUFuY2thcmdyaXBzZ2F0YW4gMworCQkJCU1hbG3DtiAgMjExMTkKKwkJCQlTV0VERU4KKworMDAtMjItNzUgICAoaGV4KQkJQmVsa2luIEludGVybmF0aW9uYWwsIEluYy4KKzAwMjI3NSAgICAgKGJhc2UgMTYpCQlCZWxraW4gSW50ZXJuYXRpb25hbCwgSW5jLgorCQkJCTUwMSBXLiBXYWxudXQgU3QuCisJCQkJQ29tcHRvbiBDQS4gOTAyMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTc2ICAgKGhleCkJCVRyaXBsZSBFWUUgQi5WLgorMDAyMjc2ICAgICAoYmFzZSAxNikJCVRyaXBsZSBFWUUgQi5WLgorCQkJCVZhYXNzZW5zZXdlZyA3MQorCQkJCUVtc3QgIDgxNjYgQVQKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMi03NyAgIChoZXgpCQlORUMgQXVzdHJhbGlhIFB0eSBMdGQKKzAwMjI3NyAgICAgKGJhc2UgMTYpCQlORUMgQXVzdHJhbGlhIFB0eSBMdGQKKwkJCQk2NDktNjU1IFNwcmluZ3ZhbGUgUmQKKwkJCQlNdWxncmF2ZSBWaWN0b3JpYSAzMTcwCisJCQkJQVVTVFJBTElBCisKKzAwLTIyLTc4ICAgKGhleCkJCVNoZW56aGVuICBUb25nZmFuZyBNdWx0aW1lZGlhICBUZWNobm9sb2d5IENvLixMdGQuCiswMDIyNzggICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gIFRvbmdmYW5nIE11bHRpbWVkaWEgIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQk5dGggRmxvb3IsQnVpbGRpbmcgI0QsVG9uZ2ZhbmcgSW5mb3JtYXRpb24gSGFyYm91cixIaWdoLXRlY2ggSW5kdXN0cmlhbCBQYXJrLExhbmdzaGFuIFJELCBOYW5TaGFuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuZyBHdWFuZ0RvbmcgNTE4MDU4CisJCQkJQ0hJTkEKKworMDAtMjItNzkgICAoaGV4KQkJTmlwcG9uIENvbmx1eCBDby4sIEx0ZC4KKzAwMjI3OSAgICAgKGJhc2UgMTYpCQlOaXBwb24gQ29ubHV4IENvLiwgTHRkLgorCQkJCTUtMy04LCBDaGl5b2RhCisJCQkJU2FrYWRvLXNoaSBTYWl0YW1hIDM1MC0wMjE0CisJCQkJSkFQQU4KKworMDAtMjItN0EgICAoaGV4KQkJVGVsZWNvbSBEZXNpZ24KKzAwMjI3QSAgICAgKGJhc2UgMTYpCQlUZWxlY29tIERlc2lnbgorCQkJCVphIFJlbW9yYQorCQkJCVZvaWUgUm9tYWluZQorCQkJCTMzMTcwIEdyYWRpZ25hbiAKKwkJCQlGUkFOQ0UKKworMDAtMjItN0IgICAoaGV4KQkJQXBvZ2VlIExhYnMsIEluYy4KKzAwMjI3QiAgICAgKGJhc2UgMTYpCQlBcG9nZWUgTGFicywgSW5jLgorCQkJCTIxMCBTLiAzcmQgU3QuCisJCQkJTm9ydGggV2FsZXMgUEEgMTk0NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTdDICAgKGhleCkJCVdvb3JpIFNNVCBDby4sbHRkCiswMDIyN0MgICAgIChiYXNlIDE2KQkJV29vcmkgU01UIENvLixsdGQKKwkJCQk2NDktMixTdXdvbGFtLXJpLFNlb3Rhbi1NeXVuCisJCQkJUHlvbmd0YWVrIEt5b25nZ2ktRG8gNDUxLTg1MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMi03RCAgIChoZXgpCQlZRSBEQVRBIElOQy4KKzAwMjI3RCAgICAgKGJhc2UgMTYpCQlZRSBEQVRBIElOQy4KKwkJCQkxODIgU2hpbmtvCisJCQkJSXJ1bWEgU2FpdGFtYSAzNTgtMDA1NQorCQkJCUpBUEFOCisKKzAwLTIyLTdFICAgKGhleCkJCUNoZW5nZHUgMzBLYWl0aWFuIENvbW11bmljYXRpb24gSW5kdXN0cnkgQ28uTHRkCiswMDIyN0UgICAgIChiYXNlIDE2KQkJQ2hlbmdkdSAzMEthaXRpYW4gQ29tbXVuaWNhdGlvbiBJbmR1c3RyeSBDby5MdGQKKwkJCQlOby42IENodWFuZ3llIFJvYWQKKwkJCQlDaGVuZ2R1IFNpY2h1YW4gNjEwMDQxCisJCQkJQ0hJTkEKKworMDAtMjItN0YgICAoaGV4KQkJUnVja3VzIFdpcmVsZXNzCiswMDIyN0YgICAgIChiYXNlIDE2KQkJUnVja3VzIFdpcmVsZXNzCisJCQkJODgwIFdlc3QgTWF1ZGUgQXZlLgorCQkJCVN1aXRlIDEwMQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItODAgICAoaGV4KQkJQTJCIEVsZWN0cm9uaWNzIEFCCiswMDIyODAgICAgIChiYXNlIDE2KQkJQTJCIEVsZWN0cm9uaWNzIEFCCisJCQkJQm94IDE0CisJCQkJTW90YWxhICBTLTU5MSAyMQorCQkJCVNXRURFTgorCiswMC0yMi04MSAgIChoZXgpCQlEYWludHJlZSBOZXR3b3JrcyBJbmMKKzAwMjI4MSAgICAgKGJhc2UgMTYpCQlEYWludHJlZSBOZXR3b3JrcyBJbmMKKwkJCQkzMzQwIFdhbG51dCBBdmUKKwkJCQlTdWl0ZSAyNzUKKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi04MiAgIChoZXgpCQk4MDg2IExpbWl0ZWQKKzAwMjI4MiAgICAgKGJhc2UgMTYpCQk4MDg2IExpbWl0ZWQKKwkJCQkxNyBMb3dmaWVsZCBMYW5lCisJCQkJQmFsZGVydG9uCisJCQkJTmV3YXJrIE5vdHRzIE5HMjQgM0hKCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjItODMgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworMDAyMjgzICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi04NCAgIChoZXgpCQlERVNBWSBBJlYgU0NJRU5DRSBBTkQgVEVDSE5PTE9HWSBDTy4sTFRECiswMDIyODQgICAgIChiYXNlIDE2KQkJREVTQVkgQSZWIFNDSUVOQ0UgQU5EIFRFQ0hOT0xPR1kgQ08uLExURAorCQkJCURFU0FZIDNyZCBab25lLENoZW5qaWFuZywKKwkJCQlIdWl6aG91IEd1YW5nZG9uZyA1MTYyMjkKKwkJCQlDSElOQQorCiswMC0yMi04NSAgIChoZXgpCQlOT01VUyBDT01NIFNZU1RFTVMKKzAwMjI4NSAgICAgKGJhc2UgMTYpCQlOT01VUyBDT01NIFNZU1RFTVMKKwkJCQk2MDEsIEd1bmphbiBUb3dlciwKKwkJCQlPZmYuIEFsZW1iaWMgR29yd2EgUm9hZAorCQkJCUJhcm9kYSBHdWphcmF0IDM5MDAyMworCQkJCUlORElBCisKKzAwLTIyLTg2ICAgKGhleCkJCUFTVFJPTgorMDAyMjg2ICAgICAoYmFzZSAxNikJCUFTVFJPTgorCQkJCU91ZGVob29nZXZlZW5zZWRpamsgNAorCQkJCUR3aW5nZWxvbyBEcmVudGhlIDc5OTFQRAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIyLTg3ICAgKGhleCkJCVRpdGFuIFdpcmVsZXNzIExMQworMDAyMjg3ICAgICAoYmFzZSAxNikJCVRpdGFuIFdpcmVsZXNzIExMQworCQkJCTM5MTQgR2F0dGlzIFNjaG9vbCBSZAorCQkJCVN1aXRlIDEwMgorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2NjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTg4ICAgKGhleCkJCVNhZ3JhZCwgSW5jLgorMDAyMjg4ICAgICAoYmFzZSAxNikJCVNhZ3JhZCwgSW5jLgorCQkJCTc1MSBOb3J0aCBEcml2ZQorCQkJCU1lbGJvdXJuZSBGTCAzMjkzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItODkgICAoaGV4KQkJT3B0b3NlY3VyaXR5IEluYy4KKzAwMjI4OSAgICAgKGJhc2UgMTYpCQlPcHRvc2VjdXJpdHkgSW5jLgorCQkJCTUwNSwgQm91bC4gZHUgUGFyYyBUZWNobm9sb2dpcXVlCisJCQkJUXVlYmVjICBHMVAgNFM5CisJCQkJQ0FOQURBCisKKzAwLTIyLThBICAgKGhleCkJCVRlcmF0cm9uaWsgZWxla3Ryb25pc2NoZSBzeXN0ZW1lIGdtYmgKKzAwMjI4QSAgICAgKGJhc2UgMTYpCQlUZXJhdHJvbmlrIGVsZWt0cm9uaXNjaGUgc3lzdGVtZSBnbWJoCisJCQkJS2FybC1VbHJpY2gtU3RyYXNzZSAxCisJCQkJR3Jvc3MtVW1zdGFkdCAgRC02NDgyMworCQkJCUdFUk1BTlkKKworMDAtMjItOEIgICAoaGV4KQkJS2Vuc2luZ3RvbiBDb21wdXRlciBQcm9kdWN0cyBHcm91cAorMDAyMjhCICAgICAoYmFzZSAxNikJCUtlbnNpbmd0b24gQ29tcHV0ZXIgUHJvZHVjdHMgR3JvdXAKKwkJCQkzMzMgVHdpbiBEb2xwaGluIERyLgorCQkJCVNpeHRoIEZsb29yCisJCQkJUmVkd29vZCBTaG9yZXMgQ0EgOTQwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLThDICAgKGhleCkJCVBob3RvbiBFdXJvcGUgR21iSAorMDAyMjhDICAgICAoYmFzZSAxNikJCVBob3RvbiBFdXJvcGUgR21iSAorCQkJCUrDg8K8bGljaGVyIFN0cmHDg8W4ZSAzNzYKKwkJCQlBYWNoZW4gTm9yZHJoZWluLVdlc3RmYWxlbiA1MjA3MAorCQkJCUdFUk1BTlkKKworMDAtMjItOEQgICAoaGV4KQkJR0JTIExhYm9yYXRvcmllcyBMTEMKKzAwMjI4RCAgICAgKGJhc2UgMTYpCQlHQlMgTGFib3JhdG9yaWVzIExMQworCQkJCTIzMjUgRHVsbGVzIENvcm5lciBCbHZkCisJCQkJSGVybmRvbiBWQSAyMDE3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItOEUgICAoaGV4KQkJVFYtTlVNRVJJQworMDAyMjhFICAgICAoYmFzZSAxNikJCVRWLU5VTUVSSUMKKwkJCQkyNC0yNiBydWUgTG91aXMgQXJtYW5kCisJCQkJUGFyaXMgIDc1MDE1CisJCQkJRlJBTkNFCisKKzAwLTIyLThGICAgKGhleCkJCUNOUlMKKzAwMjI4RiAgICAgKGJhc2UgMTYpCQlDTlJTCisJCQkJTVJDVAorCQkJCTEgcGxhY2UgQXJpc3RpZGUgQnJpYW5kCisJCQkJTWV1ZG9uIElsZSBkZSBGcmFuY2UgOTIxOTUKKwkJCQlGUkFOQ0UKKworMDAtMjItOTAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMjkwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTkxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjI5MSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi05MiAgIChoZXgpCQlDaW5ldGFsCiswMDIyOTIgICAgIChiYXNlIDE2KQkJQ2luZXRhbAorCQkJCTg2NTEgQ2FzdGxlIFBhcmsKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyNTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTkzICAgKGhleCkJCVpURSBDb3Jwb3JhdGlvbgorMDAyMjkzICAgICAoYmFzZSAxNikJCVpURSBDb3Jwb3JhdGlvbgorCQkJCTEyL0YgenRlIHBsYXphLGtlamkgUm9hZCBTb3V0aCxIaS1UZWNoIEluZHVzdHJpYWwgUGFyayxOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTIyLTk0ICAgKGhleCkJCUt5b2NlcmEgQ29ycG9yYXRpb24KKzAwMjI5NCAgICAgKGJhc2UgMTYpCQlLeW9jZXJhIENvcnBvcmF0aW9uCisJCQkJMi0xLTEsS2FnYWhhcmEKKwkJCQlUc3V6dWtpLWt1CisJCQkJWW9rb2hhbWEtc2hpIEthbmFnYXdhIDIyNC04NTAyCisJCQkJSkFQQU4KKworMDAtMjItOTUgICAoaGV4KQkJU0dNIFRlY2hub2xvZ3kgZm9yIGxpZ2h0aW5nIHNwYQorMDAyMjk1ICAgICAoYmFzZSAxNikJCVNHTSBUZWNobm9sb2d5IGZvciBsaWdodGluZyBzcGEKKwkJCQlWaWEgUGlvIExhIFRvcnJlIDEKKwkJCQlUYXZ1bGxpYSBQVSA2MTAxMAorCQkJCUlUQUxZCisKKzAwLTIyLTk2ICAgKGhleCkJCUxpbm9XYXZlIENvcnBvcmF0aW9uCiswMDIyOTYgICAgIChiYXNlIDE2KQkJTGlub1dhdmUgQ29ycG9yYXRpb24KKwkJCQkxMDAxLTEwMSBDaGFtcGxhaW4gQXZlbnVlCisJCQkJQnVybGluZ3RvbiBPbmF0YXJpbyBMN0wgNVo0CisJCQkJQ0FOQURBCisKKzAwLTIyLTk3ICAgKGhleCkJCVhNT1MgU2VtaWNvbmR1Y3RvcgorMDAyMjk3ICAgICAoYmFzZSAxNikJCVhNT1MgU2VtaWNvbmR1Y3RvcgorCQkJCVZlbnR1cmVycyBIb3VzZQorCQkJCUtpbmcgU3RyZWV0CisJCQkJQnJpc3RvbCAgQlMxIDRQQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIyLTk4ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCiswMDIyOTggICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTa8OlbmUgMjIxODgKKwkJCQlTV0VERU4KKworMDAtMjItOTkgICAoaGV4KQkJU2VhTWljcm8gSW5jLgorMDAyMjk5ICAgICAoYmFzZSAxNikJCVNlYU1pY3JvIEluYy4KKwkJCQk0Njc3IE9sZCBJcm9uc2lkZXMgRHIuLAorCQkJCVN1aXRlIDMxMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi05QSAgIChoZXgpCQlMYXN0YXIsIEluYy4KKzAwMjI5QSAgICAgKGJhc2UgMTYpCQlMYXN0YXIsIEluYy4KKwkJCQkzNTU1IEtldHRlcmluZyBCTFZELgorCQkJCU1vcmFpbmUgT2hpbyA0NTQzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItOUIgICAoaGV4KQkJQXZlckxvZ2ljIFRlY2hub2xvZ2llcywgSW5jLgorMDAyMjlCICAgICAoYmFzZSAxNikJCUF2ZXJMb2dpYyBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk3Ri0yLCBOby4yLCBMYW5lIDI1OCwgUnVpIEd1YW5nIFJkLiwgTmVpLUh1IERpc3QuLAorCQkJCVRhaXBlaSBUYWl3YW4gMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi05QyAgIChoZXgpCQlWZXJpc21vIE5ldHdvcmtzIEluYworMDAyMjlDICAgICAoYmFzZSAxNikJCVZlcmlzbW8gTmV0d29ya3MgSW5jCisJCQkJMjk1IEJlcm5hbmRvIEF2ZW51ZQorCQkJCVN0ZSAjIDMwMAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLTlEICAgKGhleCkJCVBZVU5HLUhXQSBJTkQuQ08uLExURAorMDAyMjlEICAgICAoYmFzZSAxNikJCVBZVU5HLUhXQSBJTkQuQ08uLExURAorCQkJCTIzMC0xCisJCQkJRHVja3dvby1SSSwgUGFsdGFuLU1ZVU4KKwkJCQlIV0FTVU5HLVNJIEtZVU5HR0ktRE8gNDQ1LTkxMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMi05RSAgIChoZXgpCQlTb2NpYWwgQWlkIFJlc2VhcmNoIENvLiwgTHRkLgorMDAyMjlFICAgICAoYmFzZSAxNikJCVNvY2lhbCBBaWQgUmVzZWFyY2ggQ28uLCBMdGQuCisJCQkJU291dGggMywgV2VzdCAxMCwgQ2h1by1rdQorCQkJCTdGLCBGdWt1eWFtYS1NaW5hbWktM2p5b3UgQnVpbGQuCisJCQkJU2FwcG9ybyBIb2trYWlkbyAwNjAtMDA2MworCQkJCUpBUEFOCisKKzAwLTIyLTlGICAgKGhleCkJCVNlbnN5cyBUcmFmZmljIEFCCiswMDIyOUYgICAgIChiYXNlIDE2KQkJU2Vuc3lzIFRyYWZmaWMgQUIKKwkJCQlTbG90dHNnYXRhbiAxNAorCQkJCUJveCAyMTc0CisJCQkJSm9ua29waW5nIFNtYWxhbmQgNTUzMjIKKwkJCQlTV0VERU4KKworMDAtMjItQTAgICAoaGV4KQkJRGVscGhpIENvcnBvcmF0aW9uCiswMDIyQTAgICAgIChiYXNlIDE2KQkJRGVscGhpIENvcnBvcmF0aW9uCisJCQkJTS9DLTQ4MC00MDUtMjU1CisJCQkJNTgyMCBEZWxwaGkgRHJpdmUKKwkJCQlUcm95IE1JIDQ4NDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1BMSAgIChoZXgpCQlIdWF3ZWkgU3ltYW50ZWMgVGVjaG5vbG9naWVzIENvLixMdGQuCiswMDIyQTEgICAgIChiYXNlIDE2KQkJSHVhd2VpIFN5bWFudGVjIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCUJ1aWxkaW5nIDEsVGhlIFdlc3QgWm9uZSBTY2llbmNlIFBhcmsgb2YgVUVTVEMsTm8uODgsVGlhbmNoZW4gUm9hZAorCQkJCUNoZW5nZHUgU2ljaHVhbiA2MTE3MzEKKwkJCQlDSElOQQorCiswMC0yMi1BMiAgIChoZXgpCQlYdHJhbXVzIFRlY2hub2xvZ2llcworMDAyMkEyICAgICAoYmFzZSAxNikJCVh0cmFtdXMgVGVjaG5vbG9naWVzCisJCQkJNXRoIEZsLiwgTm8uIDEwMiwgTGlkZSBTdC4sCisJCQkJWmhvbmdoZSBDaXR5IFRhaXBlaSBDb3VudHkgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi1BMyAgIChoZXgpCQlDYWxpZm9ybmlhIEVhc3Rlcm4gTGFib3JhdG9yaWVzCiswMDIyQTMgICAgIChiYXNlIDE2KQkJQ2FsaWZvcm5pYSBFYXN0ZXJuIExhYm9yYXRvcmllcworCQkJCTQ1OTAgUGF0cmljayBIZW5yeSBEci4KKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQTQgICAoaGV4KQkJMldpcmUKKzAwMjJBNCAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUE1ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDIyQTUgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUE2ICAgKGhleCkJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBBbWVyaWNhCiswMDIyQTYgICAgIChiYXNlIDE2KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50IEFtZXJpY2EKKwkJCQk5MTkgRWFzdCBIaWxsc2RhbGUgQmx2ZAorCQkJCUZvc3RlciBDaXR5IENhbGlmb3JuaWEgOTQ0MDQtMjE3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQTcgICAoaGV4KQkJVHljbyBFbGVjdHJvbmljcyBBTVAgR21iSAorMDAyMkE3ICAgICAoYmFzZSAxNikJCVR5Y28gRWxlY3Ryb25pY3MgQU1QIEdtYkgKKwkJCQlBbXBlcmVzdHIuIDEyLTE0CisJCQkJQmVuc2hlaW0gSGVzc2VuIDY0NjI1CisJCQkJR0VSTUFOWQorCiswMC0yMi1BOCAgIChoZXgpCQlPdW1hbiBGaW5sYW5kIE95CiswMDIyQTggICAgIChiYXNlIDE2KQkJT3VtYW4gRmlubGFuZCBPeQorCQkJCVZvaW1hdGllIDYKKwkJCQlLZW1wZWxlICBGSU4tOTA0NDAKKwkJCQlGSU5MQU5ECisKKzAwLTIyLUE5ICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzIEluYworMDAyMkE5ICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzIEluYworCQkJCTYwLTM5LEdhc2FuLWRvbmcKKwkJCQlHdW1jaG9uLWd1CisJCQkJU2VvdWwgIDE1My0wMjMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItQUEgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDIyQUEgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMjItQUIgICAoaGV4KQkJU2hlbnpoZW4gVHVyYm9zaWdodCBUZWNobm9sb2d5IEx0ZAorMDAyMkFCICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFR1cmJvc2lnaHQgVGVjaG5vbG9neSBMdGQKKwkJCQlVbml0IEMtOEEsU2hlbm5hbiBHYXJkZW4gQmxkZyxIaWdodGVjaCBQYXJrLE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjItQUMgICAoaGV4KQkJSGFuZ3pob3UgU2l5dWFuIFRlY2guIENvLiwgTHRkCiswMDIyQUMgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgU2l5dWFuIFRlY2guIENvLiwgTHRkCisJCQkJNSBGLCBUb3dlciBCLCBOby4gMzcsIFhpYW5nIFl1YW4gUm9hZAorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDAxMgorCQkJCUNISU5BCisKKzAwLTIyLUFEICAgKGhleCkJCVRFTEVTSVMgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDIyQUQgICAgIChiYXNlIDE2KQkJVEVMRVNJUyBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkyODE4MSBSaXZlciBEcml2ZQorCQkJCUNpcmNsZXZpbGxlIE9oaW8gNDMxMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUFFICAgKGhleCkJCU1hdHRlbCBJbmMuCiswMDIyQUUgICAgIChiYXNlIDE2KQkJTWF0dGVsIEluYy4KKwkJCQkzMzMgQ29udGluZW50YWwgQmx2ZC4KKwkJCQlFbCBTZWd1bmRvIENBIDkwMjQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1BRiAgIChoZXgpCQlTYWZldHkgVmlzaW9uCiswMDIyQUYgICAgIChiYXNlIDE2KQkJU2FmZXR5IFZpc2lvbgorCQkJCTYxMDAgVy4gU2FtIEhvdXN0b24gUGt3eS4gTm9ydGgKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1CMCAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzAwMjJCMCAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOby4yODksIFNpbmh1IDNyZCBSRC4sCisJCQkJTmVpaHUgRGlzdHJpY3QsIFRhaXBlaSBDaXR5IDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjItQjEgICAoaGV4KQkJRWxiaXQgU3lzdGVtcworMDAyMkIxICAgICAoYmFzZSAxNikJCUVsYml0IFN5c3RlbXMKKwkJCQlQT0IgNTM5CisJCQkJSGFpZmEgIDMxMDUzCisJCQkJSVNSQUVMCisKKzAwLTIyLUIyICAgKGhleCkJCTRSRiBDb21tdW5pY2F0aW9ucyBMdGQKKzAwMjJCMiAgICAgKGJhc2UgMTYpCQk0UkYgQ29tbXVuaWNhdGlvbnMgTHRkCisJCQkJMjYgR2xvdmVyIFN0cmVldAorCQkJCU5nYXVyYW5nYSBXZWxsaW5ndG9uIDYwMzUKKwkJCQlORVcgWkVBTEFORAorCiswMC0yMi1CMyAgIChoZXgpCQlTZWkgUy5wLkEuCiswMDIyQjMgICAgIChiYXNlIDE2KQkJU2VpIFMucC5BLgorCQkJCVZpYSBSdWZmaWxsaSwgMQorCQkJCUN1cm5vIEJlcmdhbW8gMjQwMzUKKwkJCQlJVEFMWQorCiswMC0yMi1CNCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyMkI0ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4uIFUuUy4gSGlnaHdheSA0NQorCQkJCUxpYmVydHl2aWxsZSBJbGxpbm9pcyA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQjUgICAoaGV4KQkJTk9WSVRBCiswMDIyQjUgICAgIChiYXNlIDE2KQkJTk9WSVRBCisJCQkJM0YzMDEsTmFtc3VuZyBCL0QgMzQwLTMwCisJCQkJR2FzYW4tRG9uZworCQkJCUdldW1jaGVvbi1HdSBTZW91bCAxNTMtNzgyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIyLUI2ICAgKGhleCkJCVN1cGVyZmxvdyBUZWNobm9sb2dpZXMgR3JvdXAKKzAwMjJCNiAgICAgKGJhc2UgMTYpCQlTdXBlcmZsb3cgVGVjaG5vbG9naWVzIEdyb3VwCisJCQkJNDA2MCBEaXhvbiBTdHJlZXQKKwkJCQlEZXMgTW9pbmVzIElBIDUwMjY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1CNyAgIChoZXgpCQlHU1MgR3J1bmRpZyBTQVQtU3lzdGVtcyBHbWJICiswMDIyQjcgICAgIChiYXNlIDE2KQkJR1NTIEdydW5kaWcgU0FULVN5c3RlbXMgR21iSAorCQkJCUJldXRoZXJuZXIgU3RyYXNzZSA0MworCQkJCU51ZXJuYmVyZyBCYXllcm4gOTA0NzEKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLUI4ICAgKGhleCkJCU5vcmNvdHQKKzAwMjJCOCAgICAgKGJhc2UgMTYpCQlOb3Jjb3R0CisJCQkJQnJvb2tmaWVsZCBIb3VzZQorCQkJCUdyaW1zZGl0Y2ggTGFuZSBvZmYgVGFycG9ybGV5IFJvYWQKKwkJCQlOb3Jjb3R0IEJyb29rIENoZXNoaXJlIFdBNCA0RUEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMi1COSAgIChoZXgpCQlBbmFsb2dpeCBTZW1pbmNvbmR1Y3RvciwgSW5jCiswMDIyQjkgICAgIChiYXNlIDE2KQkJQW5hbG9naXggU2VtaW5jb25kdWN0b3IsIEluYworCQkJCTMyMTEgU2NvdHQgQmx2ZC4sIFN1aXRlIDEwMAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1CQSAgIChoZXgpCQlIVVRIIEVsZWt0cm9uaWsgU3lzdGVtZSBHbWJICiswMDIyQkEgICAgIChiYXNlIDE2KQkJSFVUSCBFbGVrdHJvbmlrIFN5c3RlbWUgR21iSAorCQkJCUVjaHRlcm5hY2hlciBTdHIuIDEwCisJCQkJVHJvaXNkb3JmLVNwaWNoIE5SVyA1Mzg0MgorCQkJCUdFUk1BTlkKKworMDAtMjItQkIgICAoaGV4KQkJYmV5ZXJkeW5hbWljIEdtYkggJiBDby4gS0cKKzAwMjJCQiAgICAgKGJhc2UgMTYpCQliZXllcmR5bmFtaWMgR21iSCAmIENvLiBLRworCQkJCVRoZXJlc2llbnN0ci4gOAorCQkJCUhlaWxicm9ubiAgNzQwNzIKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLUJDICAgKGhleCkJCUpEU1UgRnJhbmNlIFNBUworMDAyMkJDICAgICAoYmFzZSAxNikJCUpEU1UgRnJhbmNlIFNBUworCQkJCTM0IHJ1ZSBOZWNrZXIKKwkJCQlTQUlOVCBFVElFTk5FIExPSVJFIDQyMDAwCisJCQkJRlJBTkNFCisKKzAwLTIyLUJEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjJCRCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1CRSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIyQkUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQkYgICAoaGV4KQkJU2llQW1wIEdyb3VwIG9mIENvbXBhbmllcworMDAyMkJGICAgICAoYmFzZSAxNikJCVNpZUFtcCBHcm91cCBvZiBDb21wYW5pZXMKKwkJCQkyIEFuZyBNbyBLaW8gU3RyZWV0IDY0CisJCQkJQW5nIE1vIEtpbyBJbmR1c3RyaWFsIFBhcmsgMywgVW5pdCAwMi0wMUQgRWNvbiBCdWlsZGluZworCQkJCVNpbmdhcG9yZSAgNTY5MDg0CisJCQkJU0lOR0FQT1JFCisKKzAwLTIyLUMwICAgKGhleCkJCVNoZW56aGVuIEZvcmNlbGluayBFbGVjdHJvbmljIENvLCBMdGQKKzAwMjJDMCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBGb3JjZWxpbmsgRWxlY3Ryb25pYyBDbywgTHRkCisJCQkJMm5kIGFuZCAzcmQgZmxvb3IsIEhhc3NlIG1hbnVmYWN0dXJlIGJ1aWxkaW5nLCBIYXNlZSBpbmR1c3RyaWFsIHBhcmsKKwkJCQlCYW54dWVnYW5nIGluZHVzdHJpYWwgYXJlYSwgTG9uZ2dhbmcgZGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTEyCisJCQkJQ0hJTkEKKworMDAtMjItQzEgICAoaGV4KQkJQWN0aXZlIFN0b3JhZ2UgSW5jLgorMDAyMkMxICAgICAoYmFzZSAxNikJCUFjdGl2ZSBTdG9yYWdlIEluYy4KKwkJCQkyMjk1IEplZmZlcnNvbiBTdHJlZXQKKwkJCQlUb3JyYW5jZSBDQSA5MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItQzIgICAoaGV4KQkJUHJvdmlldyBFbGV0cm9uaWNhIGRvIEJyYXNpbCBMVERBCiswMDIyQzIgICAgIChiYXNlIDE2KQkJUHJvdmlldyBFbGV0cm9uaWNhIGRvIEJyYXNpbCBMVERBCisJCQkJUi4gQWNhcsOhLCAyMDMgLSBEaXN0cml0byBJbmR1c3RyaWFsCisJCQkJTWFuYXVzIEFtYXpvbmFzIDY5MDc1LTAzMAorCQkJCUJSQVpJTAorCiswMC0yMi1DMyAgIChoZXgpCQlaZWVwb3J0IFRlY2hub2xvZ3kgSW5jLgorMDAyMkMzICAgICAoYmFzZSAxNikJCVplZXBvcnQgVGVjaG5vbG9neSBJbmMuCisJCQkJMUYsTm8yMzEsWGlhbnpoZW5nIDJuZCBSZC4KKwkJCQlIc2luQ2h1IFRhaXdhbiAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLUM0ICAgKGhleCkJCWVwcm8gR21iSAorMDAyMkM0ICAgICAoYmFzZSAxNikJCWVwcm8gR21iSAorCQkJCUpvZWJrZXN3ZWcgMworCQkJCUdyb25hdSBOUlcgNDg1OTkKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLUM1ICAgKGhleCkJCUlORk9SU09OIENvLEx0ZC4KKzAwMjJDNSAgICAgKGJhc2UgMTYpCQlJTkZPUlNPTiBDbyxMdGQuCisJCQkJUm9vbSA3MDQsVG93ZXIgQjEsIENoYW5nWXVhblRpYW5EaSBQbGF6YQorCQkJCVN1WmhvdSBTdHJlZXQsIEhhaURpYW4gRGlzdHJpY3QKKwkJCQlCZWlKaW5nIENpdHkgIDEwMDA4MAorCQkJCUNISU5BCisKKzAwLTIyLUM2ICAgKGhleCkJCVN1dHVzIEluYworMDAyMkM2ICAgICAoYmFzZSAxNikJCVN1dHVzIEluYworCQkJCTMwMS0zOTk5IEhlbm5pbmcgRHJpdmUKKwkJCQlCdXJuYWJ5IEJyaXRpc2ggQ29sdW1iaWEgVjVDIDZQOQorCQkJCUNBTkFEQQorCiswMC0yMi1DNyAgIChoZXgpCQlTRUdHRVIgTWljcm9jb250cm9sbGVyIEdtYkggJiBDby4gS0cKKzAwMjJDNyAgICAgKGJhc2UgMTYpCQlTRUdHRVIgTWljcm9jb250cm9sbGVyIEdtYkggJiBDby4gS0cKKwkJCQlJbiBkZW4gV2VpZGVuIDExCisJCQkJSGlsZGVuIE5SVyA0MDcyMQorCQkJCUdFUk1BTlkKKworMDAtMjItQzggICAoaGV4KQkJQXBwbGllZCBJbnN0cnVtZW50cworMDAyMkM4ICAgICAoYmFzZSAxNikJCUFwcGxpZWQgSW5zdHJ1bWVudHMKKwkJCQlFZGlzb253ZWcgMzlkCisJCQkJVmxpc3NpbmdlbiBaZWVsYW5kIE5MLTQzODJOVgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTIyLUM5ICAgKGhleCkJCUxlbm9yZCwgQmF1ZXIgJiBDbyBHbWJICiswMDIyQzkgICAgIChiYXNlIDE2KQkJTGVub3JkLCBCYXVlciAmIENvIEdtYkgKKwkJCQlEb2hsZW5zdHIgMzIKKwkJCQlPYmVyaGF1c2VuIE5SVyA0NjE0NQorCQkJCUdFUk1BTlkKKworMDAtMjItQ0EgICAoaGV4KQkJQW52aXogQmlvbWV0cmljIFRlY2guIENvLiwgTHRkLgorMDAyMkNBICAgICAoYmFzZSAxNikJCUFudml6IEJpb21ldHJpYyBUZWNoLiBDby4sIEx0ZC4KKwkJCQk1dGggRmxvb3IsIDQyOTkgSmluZHUgUm9hZCwKKwkJCQlTaGFuZ2hhaSAgMjAxMTA4CisJCQkJQ0hJTkEKKworMDAtMjItQ0IgICAoaGV4KQkJSU9OT0RFUyBJbmMuCiswMDIyQ0IgICAgIChiYXNlIDE2KQkJSU9OT0RFUyBJbmMuCisJCQkJMTU1NSBBdmVuaXIKKwkJCQlTdWl0ZSAxMDMKKwkJCQlMYXZhbCBRdWViZWMgSDdTMk41CisJCQkJQ0FOQURBCisKKzAwLTIyLUNDICAgKGhleCkJCVNjaUxvZywgSW5jLgorMDAyMkNDICAgICAoYmFzZSAxNikJCVNjaUxvZywgSW5jLgorCQkJCTg4NDUgU291dGggR3JlZW52aWV3IERyaXZlCisJCQkJU3VpdGUgNAorCQkJCU1pZGRsZXRvbiBXaXNjb25zaW4gNTM1NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUNEICAgKGhleCkJCUFyZWQgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMjJDRCAgICAgKGJhc2UgMTYpCQlBcmVkIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNkYtOCBOby44MyBTZWMuMSwgTmFua2FuIFJkLiBMdXpodSBTaGlhbmcKKwkJCQlUYW95dWFuIENvdW50eSBUYWl3YW4gMzM4NTkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLUNFICAgKGhleCkJCUNpc2NvLCBTZXJ2aWNlIFByb3ZpZGVyIFZpZGVvIFRlY2hub2xvZ3kgR3JvdXAKKzAwMjJDRSAgICAgKGJhc2UgMTYpCQlDaXNjbywgU2VydmljZSBQcm92aWRlciBWaWRlbyBUZWNobm9sb2d5IEdyb3VwCisJCQkJNTAzMCBTdWdhcmxvYWYgUGFya3dheQorCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUNGICAgKGhleCkJCVBMQU5FWCBDb21tdW5pY2F0aW9ucyBJTkMKKzAwMjJDRiAgICAgKGJhc2UgMTYpCQlQTEFORVggQ29tbXVuaWNhdGlvbnMgSU5DCisJCQkJMkYgRsKBRU5JU1NBWSBFYmlzdSBCbGRnMy0xNi0zCisJCQkJU2hpYnV5YS1rdSBUb2t5byAxNTAtMDAxMQorCQkJCUpBUEFOCisKKzAwLTIyLUQwICAgKGhleCkJCVBvbGFyIEVsZWN0cm8gT3kKKzAwMjJEMCAgICAgKGJhc2UgMTYpCQlQb2xhciBFbGVjdHJvIE95CisJCQkJUHJvZmVzc29yaW50aWUgNQorCQkJCUtlbXBlbGUgT3VsdSA5MDQ0MAorCQkJCUZJTkxBTkQKKworMDAtMjItRDEgICAoaGV4KQkJQWxicmVjaHQgSnVuZyBHbWJIICYgQ28uIEtHCiswMDIyRDEgICAgIChiYXNlIDE2KQkJQWxicmVjaHQgSnVuZyBHbWJIICYgQ28uIEtHCisJCQkJVm9sbWVzdHJhw4PFuGUgMQorCQkJCVNjaGFsa3Ntw4PCvGhsZSBOUlcgNTg1NzkKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLUQyICAgKGhleCkJCUFsbCBFYXJ0aCBDb23DqXJjaW8gZGUgRWxldHLDtG5pY29zIExUREEuCiswMDIyRDIgICAgIChiYXNlIDE2KQkJQWxsIEVhcnRoIENvbcOpcmNpbyBkZSBFbGV0csO0bmljb3MgTFREQS4KKwkJCQlSdWEgQmVudG8gZGUgQXJydWRhIENhbWFyZ28KKwkJCQkyNzAgLSBKZC4gU2FudGFuYQorCQkJCUNhbXBpbmFzIFPDo28gUGF1bG8gMTMwODgtNjUwCisJCQkJQlJBWklMCisKKzAwLTIyLUQzICAgKGhleCkJCUh1Yi1UZWNoCiswMDIyRDMgICAgIChiYXNlIDE2KQkJSHViLVRlY2gKKwkJCQk3NywgSW1hZS1kb25nCisJCQkJQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2My04MjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjItRDQgICAoaGV4KQkJQ29tV29ydGggQ28uLCBMdGQuCiswMDIyRDQgICAgIChiYXNlIDE2KQkJQ29tV29ydGggQ28uLCBMdGQuCisJCQkJMi0zNS03IE5pc2hpbWFnb21lCisJCQkJT2h0YS1rdSBUb2t5byAxNDMtMDAyNgorCQkJCUpBUEFOCisKKzAwLTIyLUQ1ICAgKGhleCkJCUVhdG9uIENvcnAuIEVsZWN0cmljYWwgR3JvdXAgRGF0YSBDZW50ZXIgU29sdXRpb25zIC0gUHVsaXp6aQorMDAyMkQ1ICAgICAoYmFzZSAxNikJCUVhdG9uIENvcnAuIEVsZWN0cmljYWwgR3JvdXAgRGF0YSBDZW50ZXIgU29sdXRpb25zIC0gUHVsaXp6aQorCQkJCTMyMDAgUy4gU3VzYW4gU3QuCisJCQkJU2FudGEgQW5hIENBIDkyNzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1ENiAgIChoZXgpCQlDeXBhayBBQgorMDAyMkQ2ICAgICAoYmFzZSAxNikJCUN5cGFrIEFCCisJCQkJUC5PLiBCT1ggMjMzMgorCQkJCUZ1bmNrZW5zIEdyw6RuZCAxCisJCQkJU3RvY2tob2xtICAxMDMgMTgKKwkJCQlTV0VERU4KKworMDAtMjItRDcgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDIyRDcgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMjItRDggICAoaGV4KQkJU2hlbnpoZW4gR1NUIFNlY3VyaXR5IGFuZCBTYWZldHkgVGVjaG5vbG9neSBMaW1pdGVkCiswMDIyRDggICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gR1NUIFNlY3VyaXR5IGFuZCBTYWZldHkgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJUm9vbSA1MDIsQnVpbGRpbmcgNiBvZiBLdXBhaSBJbmZvbWF0aW9uIEhhcmJvdXIsCisJCQkJTm8uMiBNZW5neGkgUm9hZCwgSE5USUEoTm9ydGggYXJlYSksTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0yMi1EOSAgIChoZXgpCQlGb3J0ZXggSW5kdXN0cmlhbCBMdGQuCiswMDIyRDkgICAgIChiYXNlIDE2KQkJRm9ydGV4IEluZHVzdHJpYWwgTHRkLgorCQkJCUZsYXQgMTYsIDEyIC9GLixQYWNpZmljIFRyYWRlIENlbnRyZQorCQkJCTIgS2FpIEhpbmcgUm9hZCxLb3dsb29uIEJheSwKKwkJCQlLb3dsb29uIEhvbmcgS29uZyA4NTIKKwkJCQlDSElOQQorCiswMC0yMi1EQSAgIChoZXgpCQlBTkFURUssIExMQworMDAyMkRBICAgICAoYmFzZSAxNikJCUFOQVRFSywgTExDCisJCQkJMzIxOSBFYXN0IENhbWVsYmFjayBSb2FkCisJCQkJU3VpdGUgNTAyCisJCQkJUGhvZW5peCBBWiA4NTAxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItREIgICAoaGV4KQkJVHJhbnNsb2dpYyBDb3Jwb3JhdGlvbgorMDAyMkRCICAgICAoYmFzZSAxNikJCVRyYW5zbG9naWMgQ29ycG9yYXRpb24KKwkJCQkxMDgyNSBFLiA0N3RoIEF2ZW51ZQorCQkJCURlbnZlciBDb2xvcmFkbyA4MDIzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItREMgICAoaGV4KQkJVmlnaWwgSGVhbHRoIFNvbHV0aW9ucyBJbmMuCiswMDIyREMgICAgIChiYXNlIDE2KQkJVmlnaWwgSGVhbHRoIFNvbHV0aW9ucyBJbmMuCisJCQkJMjEwMi00NDY0IE1hcmtoYW0gU3QKKwkJCQlWaWN0b3JpYSBCQyBWOFogN1g4CisJCQkJQ0FOQURBCisKKzAwLTIyLUREICAgKGhleCkJCVByb3RlY3RhIEVsZWN0cm9uaWNzIEx0ZAorMDAyMkREICAgICAoYmFzZSAxNikJCVByb3RlY3RhIEVsZWN0cm9uaWNzIEx0ZAorCQkJCUtlc21hcmsgc3RyIDcvQQorCQkJCUJ1ZGFwZXN0IEh1bmdhcnkgMTE1OAorCQkJCUhVTkdBUlkKKworMDAtMjItREUgICAoaGV4KQkJT1BQTyBEaWdpdGFsLCBJbmMuCiswMDIyREUgICAgIChiYXNlIDE2KQkJT1BQTyBEaWdpdGFsLCBJbmMuCisJCQkJMjYyOUIgVGVybWluYWwgQmx2ZAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLURGICAgKGhleCkJCVRBTVVaIE1vbml0b3JzCiswMDIyREYgICAgIChiYXNlIDE2KQkJVEFNVVogTW9uaXRvcnMKKwkJCQlUaWVkZW5rYW1wIDE2CisJCQkJSGVuc3RlZHQtVWx6YnVyZyBTSCAyNDU1OAorCQkJCUdFUk1BTlkKKworMDAtMjItRTAgICAoaGV4KQkJQXRsYW50aWMgU29mdHdhcmUgVGVjaG5vbG9naWVzIFMuci5MLgorMDAyMkUwICAgICAoYmFzZSAxNikJCUF0bGFudGljIFNvZnR3YXJlIFRlY2hub2xvZ2llcyBTLnIuTC4KKwkJCQlWaWEgTWFydGlubyBCYXNzaSwgOQorCQkJCU1pbGFubyAgMjAxNDgKKwkJCQlJVEFMWQorCiswMC0yMi1FMSAgIChoZXgpCQlaT1JUIExhYnMsIExMQy4KKzAwMjJFMSAgICAgKGJhc2UgMTYpCQlaT1JUIExhYnMsIExMQy4KKwkJCQk0NEggRG92ZXIgUG9pbnQgUm9hZAorCQkJCURvdmVyIE5IIDAzODIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1FMiAgIChoZXgpCQlXQUJURUMgVHJhbnNpdCBEaXZpc2lvbgorMDAyMkUyICAgICAoYmFzZSAxNikJCVdBQlRFQyBUcmFuc2l0IERpdmlzaW9uCisJCQkJMTMwIFJpZGdldmlldyBDaXJjbGUKKwkJCQlEdW5jYW4gU0MgMjkzMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUUzICAgKGhleCkJCUFtZXJpZ29uCiswMDIyRTMgICAgIChiYXNlIDE2KQkJQW1lcmlnb24KKwkJCQkyMTY4MCBIYWdnZXJ0eSBSb2FkCisJCQkJU3VpdGUgMTAxCisJCQkJTm9ydGh2aWxsZSBNaWNoaWdhbiA0ODE2NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjItRTQgICAoaGV4KQkJQVBBU1MgVEVDSE5PTE9HWSBDTy4sIExURC4KKzAwMjJFNCAgICAgKGJhc2UgMTYpCQlBUEFTUyBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCTJGLCBOby4gMjY3LCBTZWMuIDMsIENoZW5nZGUgUmQuLAorCQkJCURhdG9uZyBEaXN0cmljdAorCQkJCVRFSVBFSSAgMTEzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi1FNSAgIChoZXgpCQlGaXNoZXItUm9zZW1vdW50IFN5c3RlbXMgSW5jLgorMDAyMkU1ICAgICAoYmFzZSAxNikJCUZpc2hlci1Sb3NlbW91bnQgU3lzdGVtcyBJbmMuCisJCQkJMTIzMDEgUmVzZWFyY2ggQmx2ZAorCQkJCUJ1aWxkaW5nIDMKKwkJCQlBdXN0aW4gVGV4YXMgNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUU2ICAgKGhleCkJCUludGVsbGlnZW50IERhdGEKKzAwMjJFNiAgICAgKGJhc2UgMTYpCQlJbnRlbGxpZ2VudCBEYXRhCisJCQkJRWRmLiBJbnZlcmlubm92YSDDouKCrOKAnCBBdmRhLiBQdW50byBNb2JpLCA0LiBQYXJxdWUgQ2llbnTDg8KtZmljbyBUZWNub2zDg8KzZ2ljbworCQkJCVRFQ05PQUxDQUzDg8KBLiBDcnRhLiBOYWNpb25hbCBJSSBNYWRyaWQtQmFyY2Vsb25hIEttLiAzMSw2MDAKKwkJCQlBbGNhbMODwqEgZGUgSGVuYXJlcyBNYWRyaWQgMjg4MDUKKwkJCQlTUEFJTgorCiswMC0yMi1FNyAgIChoZXgpCQlXUFMgUGFya2luZyBTeXN0ZW1zCiswMDIyRTcgICAgIChiYXNlIDE2KQkJV1BTIFBhcmtpbmcgU3lzdGVtcworCQkJCUhvZXZlbndlZyAxMQorCQkJCUVpbmRob3ZlbiBOb29yZC1CcmFiYW50IDU2NTIgQVcKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMi1FOCAgIChoZXgpCQlBcHBsaXRpb24gQ28uLCBMdGQuCiswMDIyRTggICAgIChiYXNlIDE2KQkJQXBwbGl0aW9uIENvLiwgTHRkLgorCQkJCTUwOS0xLCBCdW5kYW5nIFRlY2hubyBQYXJrIEQtZG9uZywKKwkJCQkxNTEgWWF0YXAtZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nTmFtIEt5dW5nZ2ktZG8gNDYzLTc2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMi1FOSAgIChoZXgpCQlQcm9WaXNpb24gQ29tbXVuaWNhdGlvbnMKKzAwMjJFOSAgICAgKGJhc2UgMTYpCQlQcm9WaXNpb24gQ29tbXVuaWNhdGlvbnMKKwkJCQkxIFBvcnRsYW5kIFNxdWFyZQorCQkJCUJyaXN0b2wgIEJTMiA4UlIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMi1FQSAgIChoZXgpCQlSdXN0ZWxjb20gSW5jLgorMDAyMkVBICAgICAoYmFzZSAxNikJCVJ1c3RlbGNvbSBJbmMuCisJCQkJR2FyYWduaXkgcHJvZXpkLCAxCisJCQkJU3QuLVBldGVyc2J1cmcgIDE5MjI4OAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yMi1FQiAgIChoZXgpCQlEYXRhIFJlc3BvbnMgQS9TCiswMDIyRUIgICAgIChiYXNlIDE2KQkJRGF0YSBSZXNwb25zIEEvUworCQkJCUVsbGVrw6ZyIDYKKwkJCQlIZXJsZXYgIDI3MzAKKwkJCQlERU5NQVJLCisKKzAwLTIyLUVDICAgKGhleCkJCUlERUFMQlQgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorMDAyMkVDICAgICAoYmFzZSAxNikJCUlERUFMQlQgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCTZGLiwgTk8uOCwgTEFORSAzNDUsIFlBTkdHVUFORyBTVC4sIE5FSUhVIERJU1RSSUNUCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIyLUVEICAgKGhleCkJCVRTSSBQb3dlciBDb3Jwb3JhdGlvbgorMDAyMkVEICAgICAoYmFzZSAxNikJCVRTSSBQb3dlciBDb3Jwb3JhdGlvbgorCQkJCTExMDMgV2VzdCBQaWVyY2UgQXZlbnVlCisJCQkJQW50aWdvIFdJIDU0NDA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1FRSAgIChoZXgpCQlBbGdvIENvbW11bmljYXRpb24gUHJvZHVjdHMgTHRkCiswMDIyRUUgICAgIChiYXNlIDE2KQkJQWxnbyBDb21tdW5pY2F0aW9uIFByb2R1Y3RzIEx0ZAorCQkJCTQ1MDAgQmVlZGllIFN0cmVldAorCQkJCUJ1cm5hYnkgQkMgVjVKIDVMMgorCQkJCUNBTkFEQQorCiswMC0yMi1FRiAgIChoZXgpCQlJYmlzIFRlaywgTExDCiswMDIyRUYgICAgIChiYXNlIDE2KQkJSWJpcyBUZWssIExMQworCQkJCTkxMiBQaXR0c2J1cmdoIFJvYWQKKwkJCQlCdXRsZXIgUEEgMTYwMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUYwICAgKGhleCkJCTMgR3JlZW5zIEF2aWF0aW9uIExpbWl0ZWQKKzAwMjJGMCAgICAgKGJhc2UgMTYpCQkzIEdyZWVucyBBdmlhdGlvbiBMaW1pdGVkCisJCQkJMTAgSGVkaW5naGFtIENsb3NlCisJCQkJTWFjY2xlc2ZpZWxkICBTSzEwIDNMWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIyLUYxICAgKGhleCkJCVBSSVZBVEUKKzAwMjJGMSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMjItRjIgICAoaGV4KQkJU3VuUG93ZXIgQ29ycAorMDAyMkYyICAgICAoYmFzZSAxNikJCVN1blBvd2VyIENvcnAKKwkJCQkxNDE0IEhhcmJvdXIgV2F5IFNvdXRoCisJCQkJUmljaG1vbmQgQ0EgOTQ4MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUYzICAgKGhleCkJCVNIQVJQIENPUlBPUkFUSU9OCiswMDIyRjMgICAgIChiYXNlIDE2KQkJU0hBUlAgQ09SUE9SQVRJT04KKwkJCQkyMi0yMixOYWdhaWtlLWNobywKKwkJCQlBYmVuby1LVSwKKwkJCQlPc2FrYSwgNTQ1LTg1MjIsCisJCQkJSkFQQU4KKworMDAtMjItRjQgICAoaGV4KQkJQU1QQUsgVGVjaG5vbG9neSwgSW5jLgorMDAyMkY0ICAgICAoYmFzZSAxNikJCUFNUEFLIFRlY2hub2xvZ3ksIEluYy4KKwkJCQlOby4gOC0xLCBOYW55dWFuIDJuZCBSZC4KKwkJCQlKaG9uZ2xpIFRhb3l1YW4gMzIwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMi1GNSAgIChoZXgpCQlBZHZhbmNlZCBSZWFsdGltZSBUcmFja2luZyBHbWJICiswMDIyRjUgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgUmVhbHRpbWUgVHJhY2tpbmcgR21iSAorCQkJCUFtIE9lZmVybCA2CisJCQkJV2VpbGhlaW0gQmF5ZXJuIEQtODIzNjIKKwkJCQlHRVJNQU5ZCisKKzAwLTIyLUY2ICAgKGhleCkJCVN5cmFjdXNlIFJlc2VhcmNoIENvcnBvcmF0aW9uCiswMDIyRjYgICAgIChiYXNlIDE2KQkJU3lyYWN1c2UgUmVzZWFyY2ggQ29ycG9yYXRpb24KKwkJCQk2MjI1IFJ1bm5pbmcgUmlkZ2UgUm9hZAorCQkJCU5vcnRoIFN5cmFjdXNlIE5ZIDEzMjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMi1GNyAgIChoZXgpCQlDb25jZXB0cm9uaWMKKzAwMjJGNyAgICAgKGJhc2UgMTYpCQlDb25jZXB0cm9uaWMKKwkJCQlEYXRhYmFua3dlZyA3CisJCQkJQU1FUlNGT09SVCB1dHJlY2h0IDM4MjEgQUwKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMi1GOCAgIChoZXgpCQlQSU1BIEVsZWN0cm9uaWMgU3lzdGVtcyBMdGQuCiswMDIyRjggICAgIChiYXNlIDE2KQkJUElNQSBFbGVjdHJvbmljIFN5c3RlbXMgTHRkLgorCQkJCTUgSGF0em9yZWYgU3QuCisJCQkJSG9sb24gIDU4ODU2CisJCQkJSVNSQUVMCisKKzAwLTIyLUY5ICAgKGhleCkJCVBvbGxpbiBFbGVjdHJvbmljIEdtYkgKKzAwMjJGOSAgICAgKGJhc2UgMTYpCQlQb2xsaW4gRWxlY3Ryb25pYyBHbWJICisJCQkJTWF4LVBvbGxpbi1TdHIuIDEKKwkJCQlQZm9lcnJpbmcgIDg1MTA0CisJCQkJR0VSTUFOWQorCiswMC0yMi1GQSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjJGQSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTIyLUZCICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAyMkZCICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMjItRkMgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjJGQyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjItRkQgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjJGRCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjItRkUgICAoaGV4KQkJTWljcm9wcm9jZXNzb3IgRGVzaWducyBJbmMKKzAwMjJGRSAgICAgKGJhc2UgMTYpCQlNaWNyb3Byb2Nlc3NvciBEZXNpZ25zIEluYworCQkJCTY1IExvbmdtZWFkb3cgRHJpdmUKKwkJCQlQTyBCb3ggMTYwCisJCQkJU2hlbGJ1cm5lIFZlcm1vbnQgMDU0ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIyLUZGICAgKGhleCkJCU5JVklTIExMQworMDAyMkZGICAgICAoYmFzZSAxNikJCU5JVklTIExMQworCQkJCTEwMDAgQ2lyY2xlIDc1CisJCQkJU3VpdGUgMzAwCisJCQkJQXRsYW50YSBHQSAzMDMzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMDAgICAoaGV4KQkJQ2F5ZWUgQ29tcHV0ZXIgTHRkLgorMDAyMzAwICAgICAoYmFzZSAxNikJCUNheWVlIENvbXB1dGVyIEx0ZC4KKwkJCQlVbml0cyAxMDAyLTEwMDMsIDEwL0YsIEpvaW4tSW4gSGFuZyBTaW5nIENlbnRyZQorCQkJCTcxLTc1IENvbnRhaW5lciBQb3J0IFJvYWQKKwkJCQlLd2FpIENodW5nIE4uVCAKKwkJCQlIT05HIEtPTkcKKworMDAtMjMtMDEgICAoaGV4KQkJV2l0cm9uIFRlY2hub2xvZ3kgTGltaXRlZAorMDAyMzAxICAgICAoYmFzZSAxNikJCVdpdHJvbiBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQk2L0YsIFhpbiBSdWkgQnVpbGRpbmcsIDMyIFRhbyBIdWEgUm9hZCwgRnV0aWFuIEZyZWUgVHJhZGUgWm9uZSwKKwkJCQlTaGVuemhlbiA4NgorCQkJCUNISU5BCisKKzAwLTIzLTAyICAgKGhleCkJCUNvYmFsdCBEaWdpdGFsLCBJbmMuCiswMDIzMDIgICAgIChiYXNlIDE2KQkJQ29iYWx0IERpZ2l0YWwsIEluYy4KKwkJCQkyNDA2IEVhc3QgVW5pdmVyc2l0eSBBdmVudWUKKwkJCQlVcmJhbmEgSUwgNjE4MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTAzICAgKGhleCkJCUxJVEUtT04gSVQgQ29ycG9yYXRpb24KKzAwMjMwMyAgICAgKGJhc2UgMTYpCQlMSVRFLU9OIElUIENvcnBvcmF0aW9uCisJCQkJMTRGLCBOby4gMzkyLCBSdWV5IEt1YW5nIFJvYWQsIE5laWh1CisJCQkJVGFpcGVpIENpdHkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjMtMDQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMzA0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTA1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjMwNSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0wNiAgIChoZXgpCQlBTFBTIEVsZWN0cmljIENvLiwgTHRkCiswMDIzMDYgICAgIChiYXNlIDE2KQkJQUxQUyBFbGVjdHJpYyBDby4sIEx0ZAorCQkJCTEtMi0xLCBPa2lub3VjaGkKKwkJCQlTb21hIGNpdHkgRnVrdXNoaW1hIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMjMtMDcgICAoaGV4KQkJRlVUVVJFIElOTk9WQVRJT04gVEVDSCBDTy4sTFRECiswMDIzMDcgICAgIChiYXNlIDE2KQkJRlVUVVJFIElOTk9WQVRJT04gVEVDSCBDTy4sTFRECisJCQkJMzEyIDMtRE9ORywgR1dBTkdNWVVORyBJTkRVU1RSSUFMIENPTVBMRVggMjAxCisJCQkJSEFBTi1ET05HCisJCQkJR1dBTkdNWVVORyBHWVVOR0dJIDQyMzA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy0wOCAgIChoZXgpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDIzMDggICAgIChiYXNlIDE2KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLiwgTm8uIDkgLCBQYXJrIEF2ZW51ZSBJSSwKKwkJCQlTY2llbmNlLWJhc2VkIEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1IFRhaXdhbiAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTA5ICAgKGhleCkJCUphbmFtIFRlY2hub2xvZ2llcyBMTEMKKzAwMjMwOSAgICAgKGJhc2UgMTYpCQlKYW5hbSBUZWNobm9sb2dpZXMgTExDCisJCQkJMTAwIENyb3Nzd2F5cyBQYXJrIFdlc3QKKwkJCQlTdWl0ZSAxMDUKKwkJCQlXb29kYnVyeSBOWSAxMTc5NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMEEgICAoaGV4KQkJQVJCVVJHIEdtYkggJiBDbyBLRworMDAyMzBBICAgICAoYmFzZSAxNikJCUFSQlVSRyBHbWJIICYgQ28gS0cKKwkJCQlBcnRodXIgSGVobCBTdHJhc3NlCisJCQkJTG9zc2J1cmcgIEQtNzIyOTAKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLTBCICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIzMEIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0wQyAgIChoZXgpCQlDTE9WRVIgRUxFQ1RST05JQ1MgQ08uLExURC4KKzAwMjMwQyAgICAgKGJhc2UgMTYpCQlDTE9WRVIgRUxFQ1RST05JQ1MgQ08uLExURC4KKwkJCQlBS0VOTyAzMDYtMQorCQkJCU9CQVRBIENoeW91CisJCQkJSVNFIENpdHkgTUlFIFByZWZlY3R1cmUgNTE5LTA1MDEKKwkJCQlKQVBBTgorCiswMC0yMy0wRCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMjMwRCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQkyMjIxIExha2VzaWRlIEJsdmQKKwkJCQlSaWNoYXJkc29uIFRleGFzIDc1MDgyLTQzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTBFICAgKGhleCkJCUdvcmJhIEFHCiswMDIzMEUgICAgIChiYXNlIDE2KQkJR29yYmEgQUcKKwkJCQlTYW5kYWNrZXJzdHJhc3NlCisJCQkJT2JlcmLDvHJlbiBTRyBDSCAtIDkyNDUKKwkJCQlTV0lUWkVSTEFORAorCiswMC0yMy0wRiAgIChoZXgpCQlIaXJzY2ggRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KKzAwMjMwRiAgICAgKGJhc2UgMTYpCQlIaXJzY2ggRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KKwkJCQkxOTAwIENhcm5lZ2llLCBCbGRnIEIKKwkJCQlTYW50YSBBbmEgQ0EgOTI3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTEwICAgKGhleCkJCUxOQyBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAyMzEwICAgICAoYmFzZSAxNikJCUxOQyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTE5RiwgTm8uIDc4LTIsIFNlYy4gMywgVGFpY2h1bmcgS2FuZyBSZC4KKwkJCQlUYWljaHVuZyAgNDA3NjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTExICAgKGhleCkJCUdsb3Njb20gQ28uLCBMdGQuCiswMDIzMTEgICAgIChiYXNlIDE2KQkJR2xvc2NvbSBDby4sIEx0ZC4KKwkJCQkjNTA3IENoYW5naHl1biBCbGRnLgorCQkJCTk2MC0xIEhvZ3llLWRvbmcKKwkJCQlBbnlhbmcgQ2l0eSBLeXVuZ2dvLWRvIDQzMS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtMTIgICAoaGV4KQkJQXBwbGUsIEluYworMDAyMzEyICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTEzICAgKGhleCkJCVFvb2wgVGVjaG5vbG9naWVzIEx0ZC4KKzAwMjMxMyAgICAgKGJhc2UgMTYpCQlRb29sIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJR290YW5kYSBOby4zIEhhbmF0YW5pIEJsZGcgM0YsCisJCQkJNS0yOC05LEhpZ2FzaGktZ290YW5kYQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAyMgorCQkJCUpBUEFOCisKKzAwLTIzLTE0ICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAyMzE0ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMjMtMTUgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDIzMTUgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yMy0xNiAgIChoZXgpCQlLSVNBTiBFTEVDVFJPTklDUyBDTworMDAyMzE2ICAgICAoYmFzZSAxNikJCUtJU0FOIEVMRUNUUk9OSUNTIENPCisJCQkJMzE3LTE1CisJCQkJU1VORyBTVSAyR0EgM0RPTkcKKwkJCQlTRU9VTkctRE9ORyBHVSBTRU9VTCAxMzMtMTIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLTE3ICAgKGhleCkJCUxhc2VyY3JhZnQgSW5jCiswMDIzMTcgICAgIChiYXNlIDE2KQkJTGFzZXJjcmFmdCBJbmMKKwkJCQkxNDUwIE9ha2Jyb29rIERyaXZlCisJCQkJU3VpdGUgOTAwCisJCQkJTm9yY3Jvc3MgR0EgMzAwOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTE4ICAgKGhleCkJCVRvc2hpYmEKKzAwMjMxOCAgICAgKGJhc2UgMTYpCQlUb3NoaWJhCisJCQkJMi05LFN1ZWhpcm8tQ2hvCisJCQkJT21lIFRva3lvIDE5ODg3MTAKKwkJCQlKQVBBTgorCiswMC0yMy0xOSAgIChoZXgpCQlTaWVsb3ggTExDCiswMDIzMTkgICAgIChiYXNlIDE2KQkJU2llbG94IExMQworCQkJCTE3MCBFYXN0IE5pbnRoIEF2ZS4KKwkJCQlSdW5uZW1lZGUgTkogMDgwNzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTFBICAgKGhleCkJCUlURiBDby4sIEx0ZC4KKzAwMjMxQSAgICAgKGJhc2UgMTYpCQlJVEYgQ28uLCBMdGQuCisJCQkJMi0yLTExIE5pc2hpa2ktY2hvCisJCQkJVGFjaGlrYXdhLXNoaSBUb2t5byAxOTAtMDAyMgorCQkJCUpBUEFOCisKKzAwLTIzLTFCICAgKGhleCkJCURhbmFoZXIgTW90aW9uIC0gS29sbG1vcmdlbgorMDAyMzFCICAgICAoYmFzZSAxNikJCURhbmFoZXIgTW90aW9uIC0gS29sbG1vcmdlbgorCQkJCTIwMSBXLiBSb2NrIFJvYWQKKwkJCQlSYWRmb3JkIFZBIDI0MTQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0xQyAgIChoZXgpCQlGb3VyaWVyIFN5c3RlbXMgTHRkLgorMDAyMzFDICAgICAoYmFzZSAxNikJCUZvdXJpZXIgU3lzdGVtcyBMdGQuCisJCQkJMTYgSGFtZWxhY2hhIFN0CisJCQkJUm9zaCBIYWF5aW4gIDQ4MDkxCisJCQkJSVNSQUVMCisKKzAwLTIzLTFEICAgKGhleCkJCURlbHRhY29tIEVsZWN0cm9uaWNzIEx0ZAorMDAyMzFEICAgICAoYmFzZSAxNikJCURlbHRhY29tIEVsZWN0cm9uaWNzIEx0ZAorCQkJCTJGLFpJVCw3a20gVHphcmlncmFkc2tvIFNob3NlCisJCQkJU29maWEgU29maWEtZ3JhZCAxNzg0CisJCQkJQlVMR0FSSUEKKworMDAtMjMtMUUgICAoaGV4KQkJQ2V6emVyIE11bHRpbWVkaWEgVGVjaG5vbG9naWVzCiswMDIzMUUgICAgIChiYXNlIDE2KQkJQ2V6emVyIE11bHRpbWVkaWEgVGVjaG5vbG9naWVzCisJCQkJUMOpcGluacOocmUgZCdlbnRyZXByaXNlcyBDUkVBVElDCisJCQkJMTE1IHJ1ZSBDbGF1ZGUgQ2hhcHBlCisJCQkJUGxvdXphbsOpICAyOTI4MAorCQkJCUZSQU5DRQorCiswMC0yMy0xRiAgIChoZXgpCQlHdWFuZ2RhIEVsZWN0cm9uaWMgJiBUZWxlY29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLiwgTHRkLgorMDAyMzFGICAgICAoYmFzZSAxNikJCUd1YW5nZGEgRWxlY3Ryb25pYyAmIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ28uLCBMdGQuCisJCQkJIzggR2FvcGVuZ2RvbmcgUm9hZCwgR2FveGluIERpc3RyaWN0CisJCQkJQ2hlbmdkdSBTaWNodWFuIDYxMDA0MQorCQkJCUNISU5BCisKKzAwLTIzLTIwICAgKGhleCkJCU5pY2lyYSBOZXR3b3JrcworMDAyMzIwICAgICAoYmFzZSAxNikJCU5pY2lyYSBOZXR3b3JrcworCQkJCTM0NjAgVy4gQmF5c2hvcmUgUmQuCisJCQkJUGFsbyBBbHRvIENBIDk0MzAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0yMSAgIChoZXgpCQlBdml0ZWNoIEludGVybmF0aW9uYWwgQ29ycAorMDAyMzIxICAgICAoYmFzZSAxNikJCUF2aXRlY2ggSW50ZXJuYXRpb25hbCBDb3JwCisJCQkJMTUzMzMgTkUgOTB0aCBTdHJlZXQKKwkJCQlSZWRtb25kIFdBIDk4MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0yMiAgIChoZXgpCQlLSVNTIFRla25pY2FsIFNvbHV0aW9ucywgSW5jLgorMDAyMzIyICAgICAoYmFzZSAxNikJCUtJU1MgVGVrbmljYWwgU29sdXRpb25zLCBJbmMuCisJCQkJMTU4MyBTLiBOYXZham8gV2F5CisJCQkJQ2hhbmRsZXIgQXJpem9uYSA4NTI4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMjMgICAoaGV4KQkJWnlsaW4gQVMKKzAwMjMyMyAgICAgKGJhc2UgMTYpCQlaeWxpbiBBUworCQkJCUF1Z2xlbmRzZGFsZW4gNzgKKwkJCQlTdGF2YW5nZXIgIDQwMTcKKwkJCQlOT1JXQVkKKworMDAtMjMtMjQgICAoaGV4KQkJRy1QUk8gQ09NUFVURVIKKzAwMjMyNCAgICAgKGJhc2UgMTYpCQlHLVBSTyBDT01QVVRFUgorCQkJCWZpcnN0IGFycmFuZ2UgQywgWWluZ0h1IGluZHVzdHJpYWwgZXN0YXRlCisJCQkJUWluZ1hpIENvdW50cnkKKwkJCQlEb25nR3VhbiBDaXR5IEd1YW5nRG9uZyBQcm92aW5jZSA1MjM2NDgKKwkJCQlDSElOQQorCiswMC0yMy0yNSAgIChoZXgpCQlJT0xBTiBIb2xkaW5nCiswMDIzMjUgICAgIChiYXNlIDE2KQkJSU9MQU4gSG9sZGluZworCQkJCU1vbiBQbGFpc2lyIDI2CisJCQkJRXR0ZW4gTGV1ciAgNDg3OUFOCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjMtMjYgICAoaGV4KQkJRnVqaXRzdSBMaW1pdGVkCiswMDIzMjYgICAgIChiYXNlIDE2KQkJRnVqaXRzdSBMaW1pdGVkCisJCQkJTXVzYXNoaS1rb3N1Z2kgVG93ZXIgUGxhY2UgQmxkZy4sCisJCQkJNDAzLCBLb3N1Z2ktY2hvIDEtY2hvbWUsTmFrYWhhcmEta3UKKwkJCQlLYXdhc2FraSBLYW5hZ2F3YSAyMTEtMDA2MworCQkJCUpBUEFOCisKKzAwLTIzLTI3ICAgKGhleCkJCVNob3V5byBFbGVjdHJvbmljcyBDTy4sIExURAorMDAyMzI3ICAgICAoYmFzZSAxNikJCVNob3V5byBFbGVjdHJvbmljcyBDTy4sIExURAorCQkJCTRGLiwgTm8uOCwgTGFuZSAzNDUsIFlhbmcgS3VuZyBTdC4KKwkJCQlUYWlwZWkgIDExNDkxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy0yOCAgIChoZXgpCQlBTENPTiBURUxFQ09NTVVOSUNBVElPTlMgQ08uLCBMVEQuCiswMDIzMjggICAgIChiYXNlIDE2KQkJQUxDT04gVEVMRUNPTU1VTklDQVRJT05TIENPLiwgTFRELgorCQkJCTJuZCBGTCwgTk8gNDgwLTUsIFNFQy4gNiwgWUVOLVBJTkcgTi4gUkQuLAorCQkJCVNISUgtTElOCisJCQkJVEFJUEVJIFRBSVdBTiAxMTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTI5ICAgKGhleCkJCUREUmRyaXZlIExMQworMDAyMzI5ICAgICAoYmFzZSAxNikJCUREUmRyaXZlIExMQworCQkJCTExMDc2IEVsYXRpIFN0CisJCQkJTm9ydGhnbGVubiBDTyA4MDIzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMkEgICAoaGV4KQkJZW9uYXMgSVQtQmVyYXR1bmcgdW5kIC1FbnR3aWNrbHVuZyBHbWJICiswMDIzMkEgICAgIChiYXNlIDE2KQkJZW9uYXMgSVQtQmVyYXR1bmcgdW5kIC1FbnR3aWNrbHVuZyBHbWJICisJCQkJR3JlaWZlbmhhZ2VuZXIgU3RyLiA1NAorCQkJCUJlcmxpbiAgMTA0MzcKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLTJCICAgKGhleCkJCUlSRCBBL1MKKzAwMjMyQiAgICAgKGJhc2UgMTYpCQlJUkQgQS9TCisJCQkJS3VsbGluZ2dhZGUgMzEKKwkJCQlTdmVuZGJvcmcgRnluIDU3MDAKKwkJCQlERU5NQVJLCisKKzAwLTIzLTJDICAgKGhleCkJCVNlbnRpY2FyZQorMDAyMzJDICAgICAoYmFzZSAxNikJCVNlbnRpY2FyZQorCQkJCTE2MSBXb3JjZXN0ZXIgUmQKKwkJCQlTdWl0ZSAzMDUKKwkJCQlGcmFtaW5naGFtIE1BIDAxNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0yRCAgIChoZXgpCQlTYW5kRm9yY2UKKzAwMjMyRCAgICAgKGJhc2UgMTYpCQlTYW5kRm9yY2UKKwkJCQkxMjk1MCBTYXJhdG9nYSBBdmUuCisJCQkJU2FyYXRvZ2EgQ2FsaWZvcm5pYSA5NTA3MC00NjU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0yRSAgIChoZXgpCQlLZWRhaCBFbGVjdHJvbmljcyBFbmdpbmVlcmluZywgTExDCiswMDIzMkUgICAgIChiYXNlIDE2KQkJS2VkYWggRWxlY3Ryb25pY3MgRW5naW5lZXJpbmcsIExMQworCQkJCVplbGVub2dyYWQsIDQ0NQorCQkJCU1vc2NvdyAgMTI0NDk4CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTIzLTJGICAgKGhleCkJCUFkdmFuY2VkIENhcmQgU3lzdGVtcyBMdGQuCiswMDIzMkYgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgQ2FyZCBTeXN0ZW1zIEx0ZC4KKwkJCQlVbml0IDIwMTAtMTMsIENoZXZhbGllciBDb21tZXJjaWFsIENlbnRyZSwKKwkJCQk4IFdhbmcgSG9pIFJvYWQsCisJCQkJS293bG9vbiBCYXksIFNBUiAKKwkJCQlIT05HIEtPTkcKKworMDAtMjMtMzAgICAoaGV4KQkJRElaSVBJQSwgSU5DLgorMDAyMzMwICAgICAoYmFzZSAxNikJCURJWklQSUEsIElOQy4KKwkJCQkxNXRoIEZsb29yLCBFYXN0IFdpbmcsIElUIFZlbnR1cmUgVG93ZXIKKwkJCQk3OCBHYXJhay1kb25nLCBTb25ncGEtR3UsCisJCQkJU2VvdWwgIDEzODE2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy0zMSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMjMzMSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyBLWU9UTyA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTIzLTMyICAgKGhleCkJCUFwcGxlLCBJbmMKKzAwMjMzMiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy0zMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIzMzMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtMzQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMzM0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTM1ICAgKGhleCkJCUxpbmtmbGV4IENvLixMdGQKKzAwMjMzNSAgICAgKGJhc2UgMTYpCQlMaW5rZmxleCBDby4sTHRkCisJCQkJNUYuIE1pbiBZb3VuZyBCbGRnLiAxNzUtMgorCQkJCU5vbmh5ZW9uLURvbmcsIEdhbmduYW0tR3UKKwkJCQlTZW91bCAgMTM1LTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy0zNiAgIChoZXgpCQlNRVRFTCBzLnIuby4KKzAwMjMzNiAgICAgKGJhc2UgMTYpCQlNRVRFTCBzLnIuby4KKwkJCQlWZWxrYSBKZXNlbmljZSAxMjUKKwkJCQlWZWxrYSBKZXNlbmljZSBOYWNob2QgNTUyMjQKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0yMy0zNyAgIChoZXgpCQlHbG9iYWwgU3RhciBTb2x1dGlvbnMgVUxDCiswMDIzMzcgICAgIChiYXNlIDE2KQkJR2xvYmFsIFN0YXIgU29sdXRpb25zIFVMQworCQkJCTQ2MDAgSmFjb21icyBSb2FkCisJCQkJUmljaG1vbmQgQkMgVjZWIDNCMQorCQkJCUNBTkFEQQorCiswMC0yMy0zOCAgIChoZXgpCQlPSi1FbGVjdHJvbmljcyBBL1MKKzAwMjMzOCAgICAgKGJhc2UgMTYpCQlPSi1FbGVjdHJvbmljcyBBL1MKKwkJCQlTdGVuYWdlciAxM0IKKwkJCQlTw7huZGVyYm9yZyAgNjQwMAorCQkJCURFTk1BUksKKworMDAtMjMtMzkgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworMDAyMzM5ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtM0EgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswMDIzM0EgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLTNCICAgKGhleCkJCUMtTWF0aWMgU3lzdGVtcyBMdGQKKzAwMjMzQiAgICAgKGJhc2UgMTYpCQlDLU1hdGljIFN5c3RlbXMgTHRkCisJCQkJV2FycmVuIENvdXJ0CisJCQkJUGFyayBSb2FkCisJCQkJQ3Jvd2Jvcm91Z2ggRWFzdCBTdXNzZXggVE42IDJRWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIzLTNDICAgKGhleCkJCUFsZmxleAorMDAyMzNDICAgICAoYmFzZSAxNikJCUFsZmxleAorCQkJCUJsYXV3LXJvb2RsYWFuIDMwMAorCQkJCVpPRVRFUk1FRVIgIDI3MTggU0sKKwkJCQlORVRIRVJMQU5EUworCiswMC0yMy0zRCAgIChoZXgpCQlOb3Zlcm8gaG9sZGluZyBCLlYuCiswMDIzM0QgICAgIChiYXNlIDE2KQkJTm92ZXJvIGhvbGRpbmcgQi5WLgorCQkJCVBhcnNldmFsc3RyYXNzZSA3QQorCQkJCUT8c3NlbGRvcmYgIDQwNDY4CisJCQkJR0VSTUFOWQorCiswMC0yMy0zRSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudC1JUEQKKzAwMjMzRSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudC1JUEQKKwkJCQk3MDEgRS4gTWlkZGxlZmllbGQgUmQuCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtM0YgICAoaGV4KQkJUHVyZWNob2ljZSBJbmMKKzAwMjMzRiAgICAgKGJhc2UgMTYpCQlQdXJlY2hvaWNlIEluYworCQkJCTExNDgxIFJ1cHAgRHJpdmUKKwkJCQlCdXJuc3ZpbGxlIE1OIDU1MzM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy00MCAgIChoZXgpCQlNaVggVGVsZW1hdGljcworMDAyMzQwICAgICAoYmFzZSAxNikJCU1pWCBUZWxlbWF0aWNzCisJCQkJQmxhYXV3a2xpcCBPZmZpY2UgUGFyayAyCisJCQkJQ25yIFN0cmFuZCAmIFdlYmVyc3ZhbGxlaSBSZAorCQkJCVN0ZWxsZW5ib3NjaCBXZXN0ZXJuIENhcGUgNzYwMAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0yMy00MSAgIChoZXgpCQlTaWVtZW5zIEFHLCBJbmZyYXN0cnVjdHVyZSAmIENpdGllcyBTZWN0b3IsIEJ1aWxkaW5nIFRlY2hub2xvZ2llcyBEaXZpc2lvbgorMDAyMzQxICAgICAoYmFzZSAxNikJCVNpZW1lbnMgQUcsIEluZnJhc3RydWN0dXJlICYgQ2l0aWVzIFNlY3RvciwgQnVpbGRpbmcgVGVjaG5vbG9naWVzIERpdmlzaW9uCisJCQkJU2llbWVuc2FsbGVlIDg0CisJCQkJS2FybHNydWhlIEJhZGVuLVd1ZXJ0dGVtYmVyZyBELTc2MTg3CisJCQkJR0VSTUFOWQorCiswMC0yMy00MiAgIChoZXgpCQlDb2ZmZWUgRXF1aXBtZW50IENvbXBhbnkKKzAwMjM0MiAgICAgKGJhc2UgMTYpCQlDb2ZmZWUgRXF1aXBtZW50IENvbXBhbnkKKwkJCQk0MjE2IDZ0aCBBdmUgTlcKKwkJCQlTZWF0dGxlIFdBIDk4MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy00MyAgIChoZXgpCQlURU0gQUcKKzAwMjM0MyAgICAgKGJhc2UgMTYpCQlURU0gQUcKKwkJCQlUcmlzdHN0cmFzc2UgOAorCQkJCUNodXIgIDcwMDcKKwkJCQlTV0lUWkVSTEFORAorCiswMC0yMy00NCAgIChoZXgpCQlPYmplY3RpdmUgSW50ZXJmYWNlIFN5c3RlbXMKKzAwMjM0NCAgICAgKGJhc2UgMTYpCQlPYmplY3RpdmUgSW50ZXJmYWNlIFN5c3RlbXMKKwkJCQkxMzg3MyBQYXJrIENlbnRlciBSZAorCQkJCVN1aXRlIDM2MAorCQkJCUhlcm5kb24gVkEgMjAxNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTQ1ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCiswMDIzNDUgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTa8OlbmUgMjIxODgKKwkJCQlTV0VERU4KKworMDAtMjMtNDYgICAoaGV4KQkJVmVzdGFjCiswMDIzNDYgICAgIChiYXNlIDE2KQkJVmVzdGFjCisJCQkJUC5PLiBCb3ggNzM1OAorCQkJCVNocmV3c2J1cnkgTkogMDc3MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTQ3ICAgKGhleCkJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKzAwMjM0NyAgICAgKGJhc2UgMTYpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCisJCQkJODAwMCBGb290aGlsbHMgQmx2ZAorCQkJCVJvc2V2aWxsZSBDYWxpZm9ybmlhIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy00OCAgIChoZXgpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCiswMDIzNDggICAgIChiYXNlIDE2KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorCQkJCTE0IFJ1ZSBQYXVsIERhdXRpZXIKKwkJCQlWZWxpenkgIDc4NDU3CisJCQkJRlJBTkNFCisKKzAwLTIzLTQ5ICAgKGhleCkJCUhlbG1ob2x0eiBDZW50cmUgQmVybGluIGZvciBNYXRlcmlhbCBhbmQgRW5lcmd5CiswMDIzNDkgICAgIChiYXNlIDE2KQkJSGVsbWhvbHR6IENlbnRyZSBCZXJsaW4gZm9yIE1hdGVyaWFsIGFuZCBFbmVyZ3kKKwkJCQlEZXBhcnRtZW50IEZNRAorCQkJCUdsaWVuaWNrZXIgU3RyYXNzZSAxMDAKKwkJCQlCZXJsaW4gIDE0MTA5CisJCQkJR0VSTUFOWQorCiswMC0yMy00QSAgIChoZXgpCQlQUklWQVRFCiswMDIzNEEgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTIzLTRCICAgKGhleCkJCUlueXVhbiBUZWNobm9sb2d5IEluYy4KKzAwMjM0QiAgICAgKGJhc2UgMTYpCQlJbnl1YW4gVGVjaG5vbG9neSBJbmMuCisJCQkJTm8uIDMsIFNpbmd5ZSBTdC4sCisJCQkJR3VlaXNoYW4gVG93bnNoaXAKKwkJCQlUYW95dWFuIENvdW50eSAgMzMzNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTRDICAgKGhleCkJCUtUQyBBQgorMDAyMzRDICAgICAoYmFzZSAxNikJCUtUQyBBQgorCQkJCUYgTyBQZXRlcnNvbnMgZ2F0YSA2CisJCQkJVmFzdHJhIEZyb2x1bmRhIEdvdGhlbmJ1cmcgU0UtNDIxMzEKKwkJCQlTV0VERU4KKworMDAtMjMtNEQgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMjM0RCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCTY2LCBDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuIFRhaXdhbiAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTRFICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCiswMDIzNEUgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LWNoZW5nCisJCQkJVGFpcGVpIEhzaWVuIFRhaXdhbiAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTRGICAgKGhleCkJCUx1bWlub3VzIFBvd2VyIFRlY2hub2xvZ2llcyBQdnQuIEx0ZC4KKzAwMjM0RiAgICAgKGJhc2UgMTYpCQlMdW1pbm91cyBQb3dlciBUZWNobm9sb2dpZXMgUHZ0LiBMdGQuCisJCQkJQzgtQzksIENvbW11bml0eSBDZW50ZXIsCisJCQkJQmVoaW5kIEphbmFrIENpbmVtYSwgSmFuYWtwdXJpLAorCQkJCU5ldyBEZWxoaSAgMTEwMDU4CisJCQkJSU5ESUEKKworMDAtMjMtNTAgICAoaGV4KQkJTHluVGVjCiswMDIzNTAgICAgIChiYXNlIDE2KQkJTHluVGVjCisJCQkJODQwMSBNZWxyb3NlIERyaXZlCisJCQkJTGVuZXhhIEtTIDY2MjE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy01MSAgIChoZXgpCQkyV2lyZQorMDAyMzUxICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNTIgICAoaGV4KQkJREFUQVNFTlNPUiBTLnAuQS4KKzAwMjM1MiAgICAgKGJhc2UgMTYpCQlEQVRBU0VOU09SIFMucC5BLgorCQkJCVZpYSBMYXZpbm8sIDI2NQorCQkJCU1vbnRlIFNhbiBQaWV0cm8gKEJPKSAgNDAwNTAKKwkJCQlJVEFMWQorCiswMC0yMy01MyAgIChoZXgpCQlGIEUgVCBFbGV0dHJvbmljYSBzbmMKKzAwMjM1MyAgICAgKGJhc2UgMTYpCQlGIEUgVCBFbGV0dHJvbmljYSBzbmMKKwkJCQlWaWEgQS5NYW56b25pIDE0L2EKKwkJCQlDUDMwMyBQUFRUIFBvZ2dpYm9uc2kgQ2VudHJvCisJCQkJUG9nZ2lib25zaSBTaWVuYSA1MzAzNgorCQkJCUlUQUxZCisKKzAwLTIzLTU0ICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorMDAyMzU0ICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UsCisJCQkJVGFpcGVpIFRhaXdhbiAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTU1ICAgKGhleCkJCUtpbmNvIEF1dG9tYXRpb24oU2hhbmdoYWkpIEx0ZC4KKzAwMjM1NSAgICAgKGJhc2UgMTYpCQlLaW5jbyBBdXRvbWF0aW9uKFNoYW5naGFpKSBMdGQuCisJCQkJQmxkZzEsIE5vLjEzODcsIFpoYW5nZG9uZyBSb2FkLAorCQkJCVpoYW5namlhbmcgSGktdGVjaCBQYXJrLCBQdWRvbmcuCisJCQkJU2hhbmdoYWkgMjAxMjAzCisJCQkJQ0hJTkEKKworMDAtMjMtNTYgICAoaGV4KQkJUGFja2V0IEZvcmVuc2ljcyBMTEMKKzAwMjM1NiAgICAgKGJhc2UgMTYpCQlQYWNrZXQgRm9yZW5zaWNzIExMQworCQkJCTQyMCBTIFNtaXRoIFJkCisJCQkJVGVtcGUgQVogODUyODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTU3ICAgKGhleCkJCVBpdHJvbm90IFRlY2hub2xvZ2llcyBhbmQgRW5naW5lZXJpbmcgUC5ULkUuIEx0ZC4KKzAwMjM1NyAgICAgKGJhc2UgMTYpCQlQaXRyb25vdCBUZWNobm9sb2dpZXMgYW5kIEVuZ2luZWVyaW5nIFAuVC5FLiBMdGQuCisJCQkJOCBIYXR1dCBzdAorCQkJCVBhcmRlc2l5YSAgNDI4MTUKKwkJCQlJU1JBRUwKKworMDAtMjMtNTggICAoaGV4KQkJU1lTVEVMIFNBCiswMDIzNTggICAgIChiYXNlIDE2KQkJU1lTVEVMIFNBCisJCQkJWkkgREUgQkVMTEUgQUlSRQorCQkJCUJQIDMxCisJCQkJQVlUUkUgIDE3NDQwCisJCQkJRlJBTkNFCisKKzAwLTIzLTU5ICAgKGhleCkJCUJlbmNobWFyayBFbGVjdHJvbmljcyAoIFRoYWlsYW5kICkgUHVibGljIENvbXBhbnkgTGltaXRlZAorMDAyMzU5ICAgICAoYmFzZSAxNikJCUJlbmNobWFyayBFbGVjdHJvbmljcyAoIFRoYWlsYW5kICkgUHVibGljIENvbXBhbnkgTGltaXRlZAorCQkJCTk0IE1vbyAxLCBIaS1UZWNoIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJQmFubGFuZQorCQkJCUJhbmcgUGEtaW4gQXl1ZGhheWEgMTMxNjAKKwkJCQlUSEFJTEFORAorCiswMC0yMy01QSAgIChoZXgpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTHRkLgorMDAyMzVBICAgICAoYmFzZSAxNikJCUNPTVBBTCBJTkZPUk1BVElPTiAoS1VOU0hBTikgQ08uLCBMdGQuCisJCQkJTk8gMjUsIFRoZSAzcmQgc3RyZWV0LAorCQkJCUt1YW5TaGFuIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUKKwkJCQlLdWFuU2hhbiBTVVpIT1UgMjE1MzAwCisJCQkJQ0hJTkEKKworMDAtMjMtNUIgICAoaGV4KQkJR3VsZnN0cmVhbQorMDAyMzVCICAgICAoYmFzZSAxNikJCUd1bGZzdHJlYW0KKwkJCQkzMiBMdW1tdXMgRHJpdmUKKwkJCQlSREMgTGFiIFItMDgKKwkJCQlTYXZhbm5haCBHQSAzMTQwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNUMgICAoaGV4KQkJQXByaXVzLCBJbmMuCiswMDIzNUMgICAgIChiYXNlIDE2KQkJQXByaXVzLCBJbmMuCisJCQkJNDQwIE4uIFdvbGZlIFJkCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy01RCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIzNUQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNUUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyMzVFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTVGICAgKGhleCkJCVNpbGljb24gTWljcm8gU2Vuc29ycyBHbWJICiswMDIzNUYgICAgIChiYXNlIDE2KQkJU2lsaWNvbiBNaWNybyBTZW5zb3JzIEdtYkgKKwkJCQlHcmVuenN0cmFzc2UgMjggLyBHZWLDpHVkZSAzMgorCQkJCURyZXNkZW4gU2F4b255IDAxMTA5CisJCQkJR0VSTUFOWQorCiswMC0yMy02MCAgIChoZXgpCQlMb29raXQgVGVjaG5vbG9neSBDby4sIEx0ZAorMDAyMzYwICAgICAoYmFzZSAxNikJCUxvb2tpdCBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJRkwgOCBTZWFzaG9yZSBNYW5zaW9uCisJCQkJQmFvJ2FuIENCRCBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDAKKwkJCQlDSElOQQorCiswMC0yMy02MSAgIChoZXgpCQlVbmlnZW4gQ29ycG9yYXRpb24KKzAwMjM2MSAgICAgKGJhc2UgMTYpCQlVbmlnZW4gQ29ycG9yYXRpb24KKwkJCQk0NTM4OCBXYXJtIFNwcmluZ3MgQmx2ZAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTYyICAgKGhleCkJCUdvbGRsaW5lIENvbnRyb2xzCiswMDIzNjIgICAgIChiYXNlIDE2KQkJR29sZGxpbmUgQ29udHJvbHMKKwkJCQk2MSBXaGl0ZWNhcCBEcgorCQkJCU5vcnRoIEtpbmdzdG93biBSSSAwMjg1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNjMgICAoaGV4KQkJWmh1aGFpIFJheVNoYXJwIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDIzNjMgICAgIChiYXNlIDE2KQkJWmh1aGFpIFJheVNoYXJwIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uMTE5IG9mIEh1YXdlaSBSb2FkLCBRaWFuc2hhbiBTY2llbmNlICYgVGVjaG5vbG9neSBQYXJrLAorCQkJCVpodWhhaSBHdWFuZ2RvbmcgNTE5MDcwCisJCQkJQ0hJTkEKKworMDAtMjMtNjQgICAoaGV4KQkJUG93ZXIgSW5zdHJ1bWVudHMgUHRlIEx0ZAorMDAyMzY0ICAgICAoYmFzZSAxNikJCVBvd2VyIEluc3RydW1lbnRzIFB0ZSBMdGQKKwkJCQlCTEsgNDAgVE9IIEdVQU4gUkQgRUFTVCwgIzAxLTYyIEVOVEVSUFJJU0UgSFVCCisJCQkJNjA4NTgyCisJCQkJU0lOR0FQT1JFCisKKzAwLTIzLTY1ICAgKGhleCkJCUVMS0EtRWxla3Ryb25payBHbWJICiswMDIzNjUgICAgIChiYXNlIDE2KQkJRUxLQS1FbGVrdHJvbmlrIEdtYkgKKwkJCQlUYWxzdHJhc3NlIDEwNAorCQkJCUzDvGRlbnNjaGVpZCBOUlcgNTg1MTUKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLTY2ICAgKGhleCkJCUJlaWppbmcgU2lhc3VuIEVsZWN0cm9uaWMgU3lzdGVtIENvLixMdGQuCiswMDIzNjYgICAgIChiYXNlIDE2KQkJQmVpamluZyBTaWFzdW4gRWxlY3Ryb25pYyBTeXN0ZW0gQ28uLEx0ZC4KKwkJCQlSbS4xMDE4IEh1YXRpYW4gQmxkZywgTm8uNiBCZWkgWGlhb21hY2hhbmcKKwkJCQlIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDM4CisJCQkJQ0hJTkEKKworMDAtMjMtNjcgICAoaGV4KQkJVW5pQ29udHJvbHMgYS5zLgorMDAyMzY3ICAgICAoYmFzZSAxNikJCVVuaUNvbnRyb2xzIGEucy4KKwkJCQlLcmVuaWNrYSAyMjU3CisJCQkJUHJhZ3VlIDEwICAxMDAgMDAKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswMC0yMy02OCAgIChoZXgpCQlNb3Rvcm9sYQorMDAyMzY4ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhCisJCQkJMSBNb3Rvcm9sYSBQbGF6YQorCQkJCUhvbHRzdmlsbGUgTlkgMTE3NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTY5ICAgKGhleCkJCUNpc2NvLUxpbmtzeXMsIExMQworMDAyMzY5ICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMsIExMQworCQkJCTEyMSBUaGVvcnkgRHJpdmUKKwkJCQlJcnZpbmUgQ2FsaWZvcm5pYSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNkEgICAoaGV4KQkJQ2xlYXJBY2Nlc3MsIEluYy4KKzAwMjM2QSAgICAgKGJhc2UgMTYpCQlDbGVhckFjY2VzcywgSW5jLgorCQkJCTEzMDEgTkUgMTQ0dGggU3RyZWV0CisJCQkJU3VpdGUgMTE5CisJCQkJVmFuY291dmVyIFdBIDk4Njg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy02QiAgIChoZXgpCQlYZW1iZWRkZWQsIEluYy4KKzAwMjM2QiAgICAgKGJhc2UgMTYpCQlYZW1iZWRkZWQsIEluYy4KKwkJCQkxMDUwIEhpZ2hsYW5kIERyCisJCQkJU3VpdGUgRQorCQkJCUFubiBBcmJvciBNSSA0ODEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNkMgICAoaGV4KQkJQXBwbGUsIEluYworMDAyMzZDICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTZEICAgKGhleCkJCVJlc01lZCBMdGQKKzAwMjM2RCAgICAgKGJhc2UgMTYpCQlSZXNNZWQgTHRkCisJCQkJMSwgRWxpemFiZXRoIE1hY2FydGh1ciBEcml2ZQorCQkJCUJlbGxhIFZpc3RhIE5TVyAyMTUzCisJCQkJQVVTVFJBTElBCisKKzAwLTIzLTZFICAgKGhleCkJCUJ1cnN0ZXIgR21iSCAmIENvIEtHCiswMDIzNkUgICAgIChiYXNlIDE2KQkJQnVyc3RlciBHbWJIICYgQ28gS0cKKwkJCQlUYWxzdHJhc3NlIDEtNQorCQkJCUdlcm5zYmFjaCBCYWRlbi1Xw7xydHRlbWJlcmcgNzY1OTMKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLTZGICAgKGhleCkJCURBUSBTeXN0ZW0KKzAwMjM2RiAgICAgKGJhc2UgMTYpCQlEQVEgU3lzdGVtCisJCQkJNzA5LTEsIEJ1bmRhbmcgVGVjaG5vIFBhcmsgQS1Eb25nLAorCQkJCVlhdGFwLURvbmcsIEJ1bmRhbmctR3UKKwkJCQlTdW5nbmFtLVNpIEt5dW5nZ2ktRG8sIDQ2My03NjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtNzAgICAoaGV4KQkJU25lbGwKKzAwMjM3MCAgICAgKGJhc2UgMTYpCQlTbmVsbAorCQkJCUhhcnRtYW4gSG91c2UKKwkJCQlEYW5laGlsbAorCQkJCVJlYWRpbmcgQmVya3MgUkc2IDRQQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIzLTcxICAgKGhleCkJCVNPQU0gU3lzdGVsCiswMDIzNzEgICAgIChiYXNlIDE2KQkJU09BTSBTeXN0ZWwKKwkJCQkxODItMTMsIERhZXJ1bmcgUG9zdCBUb3dlciBJSSwgMTUwNAorCQkJCVNlb3VsIEd1cm8tZG9uZywgR3Vyby1ndSAxNTItODQ3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLTcyICAgKGhleCkJCU1PUkUgU1RBUiBJTkRVU1RSSUFMIEdST1VQIExJTUlURUQKKzAwMjM3MiAgICAgKGJhc2UgMTYpCQlNT1JFIFNUQVIgSU5EVVNUUklBTCBHUk9VUCBMSU1JVEVECisJCQkJUm0xMjIxLTEyMjUsIEYxMiBTYW5nZGEgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSBCdWlsZGluZyAsCisJCQkJS2VqaSBSb2FkICwgSGktVGVjaCBJbmR1c3RyaWFsIFBhcmssCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTIzLTczICAgKGhleCkJCUdyaWRJcm9uIFN5c3RlbXMsIEluYy4KKzAwMjM3MyAgICAgKGJhc2UgMTYpCQlHcmlkSXJvbiBTeXN0ZW1zLCBJbmMuCisJCQkJNzI2IFBhbG9tYXIgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy03NCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyMzc0ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtNzUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjM3NSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTc2ICAgKGhleCkJCUhUQyBDb3Jwb3JhdGlvbgorMDAyMzc2ICAgICAoYmFzZSAxNikJCUhUQyBDb3Jwb3JhdGlvbgorCQkJCU5vLjIzIFhpbmdodWEgUm9hZAorCQkJCVRhb3l1YW4gQ2l0eQorCQkJCVRhb3l1YW4gQ291bnR5ICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTc3ICAgKGhleCkJCUlzb3RlayBFbGVjdHJvbmljcyBMdGQKKzAwMjM3NyAgICAgKGJhc2UgMTYpCQlJc290ZWsgRWxlY3Ryb25pY3MgTHRkCisJCQkJOSBDbGF5dG9uIFdvb2QgQmFuaworCQkJCVdlc3QgUGFyayBSaW5nIFJvYWQKKwkJCQlMZWVkcyAgTFMxNiA2UVoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yMy03OCAgIChoZXgpCQlHTiBOZXRjb20gQS9TCiswMDIzNzggICAgIChiYXNlIDE2KQkJR04gTmV0Y29tIEEvUworCQkJCUxhdXRydXBiamVyZyA3CisJCQkJUC5PLkJveCA5OQorCQkJCUJhbGxlcnVwICBESyAtIDI3NTAKKwkJCQlERU5NQVJLCisKKzAwLTIzLTc5ICAgKGhleCkJCVVuaW9uIEJ1c2luZXNzIE1hY2hpbmVzIENvLiBMdGQuCiswMDIzNzkgICAgIChiYXNlIDE2KQkJVW5pb24gQnVzaW5lc3MgTWFjaGluZXMgQ28uIEx0ZC4KKwkJCQlVbml0IDIsIDIvRiwgQmxvY2sgQSwgSG9uZyBLb25nIEluZHVzdHJpYWwgQ2VudHJlLAorCQkJCTQ4OS00OTEgQ2FzdGxlIFBlYWsgUm9hZCwKKwkJCQlMYWkgQ2hpIEtvayBLb3dsb29uIAorCQkJCUhPTkcgS09ORworCiswMC0yMy03QSAgIChoZXgpCQlSSU0KKzAwMjM3QSAgICAgKGJhc2UgMTYpCQlSSU0KKwkJCQkyOTUgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCAzVzgKKwkJCQlDQU5BREEKKworMDAtMjMtN0IgICAoaGV4KQkJV0hESSBMTEMKKzAwMjM3QiAgICAgKGJhc2UgMTYpCQlXSERJIExMQworCQkJCTIzNTAgTWlzc2lvbiBDb2xsZWdlIEJsdmQuCisJCQkJU3VpdGUgNTAwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTdDICAgKGhleCkJCU5FT1RJT04KKzAwMjM3QyAgICAgKGJhc2UgMTYpCQlORU9USU9OCisJCQkJWkkgbGVzIFBhbHVkcworCQkJCTE2NSwgYXZlbnVlIGR1IE1hcmluIEJsYW5jCisJCQkJQVVCQUdORSAgRi0xMzQwMAorCQkJCUZSQU5DRQorCiswMC0yMy03RCAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAyMzdEICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMgorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTdFICAgKGhleCkJCUVMU1RFUiBHTUJICiswMDIzN0UgICAgIChiYXNlIDE2KQkJRUxTVEVSIEdNQkgKKwkJCQlLVUhCUlVFQ0tFTlNUUkFTU0UgMi00CisJCQkJSEFNRUxOICAzMTc4NQorCQkJCUdFUk1BTlkKKworMDAtMjMtN0YgICAoaGV4KQkJUExBTlRST05JQ1MKKzAwMjM3RiAgICAgKGJhc2UgMTYpCQlQTEFOVFJPTklDUworCQkJCTM0NSBFTkNJTkFMIFNUCisJCQkJU0FOVEEgQ1JVWiBDQSA5NTA2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtODAgICAoaGV4KQkJTmFub3RlcQorMDAyMzgwICAgICAoYmFzZSAxNikJCU5hbm90ZXEKKwkJCQkgUE8gQm94IDc5OTEKKwkJCQkxIFBpZXRlciBTdHJlZXQsIEhpZ2h2ZWxkIFBhcmsKKwkJCQlDZW50dXJpb24gR2F1dGVuZyAwMDQ2CisJCQkJU09VVEggQUZSSUNBCisKKzAwLTIzLTgxICAgKGhleCkJCUxlbmdkYSBUZWNobm9sb2d5KFhpYW1lbikgQ28uLEx0ZC4KKzAwMjM4MSAgICAgKGJhc2UgMTYpCQlMZW5nZGEgVGVjaG5vbG9neShYaWFtZW4pIENvLixMdGQuCisJCQkJNS9GLCA0NyBIYWlqaW5nIFNvdXRoIDJuZCBSb2FkLFhpYW1lbiBFeHBvcnQgUHJvY2Vzc2luZyBab25lLCBIYWljYW5nIERpc3RyaWN0LAorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDI2CisJCQkJQ0hJTkEKKworMDAtMjMtODIgICAoaGV4KQkJTGloIFJvbmcgRWxlY3Ryb25pYyBFbnRlcnByaXNlIENvLiwgTHRkLgorMDAyMzgyICAgICAoYmFzZSAxNikJCUxpaCBSb25nIEVsZWN0cm9uaWMgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKwkJCQlOby4gMiwgTGFuZSAzODcsIEhzaW4gU2h1IFJkLgorCQkJCUhzaW4gQ2h1YW5nIENpdHksIFRhaXBlaSAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTgzICAgKGhleCkJCUluTWFnZSBTeXN0ZW1zIEluYworMDAyMzgzICAgICAoYmFzZSAxNikJCUluTWFnZSBTeXN0ZW1zIEluYworCQkJCTMyNTUtMSBTY290dCBCbHZkLCAjMTA0CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTg0ICAgKGhleCkJCUdHSCBFbmdpbmVlcmluZyBzLnIubC4KKzAwMjM4NCAgICAgKGJhc2UgMTYpCQlHR0ggRW5naW5lZXJpbmcgcy5yLmwuCisJCQkJVmlhIEFndWNjaGkgODQvMgorCQkJCUJvbG9nbmEgIDQwMTMzCisJCQkJSVRBTFkKKworMDAtMjMtODUgICAoaGV4KQkJQU5USVBPREUKKzAwMjM4NSAgICAgKGJhc2UgMTYpCQlBTlRJUE9ERQorCQkJCTUgUlVFIERFIERPVUFJCisJCQkJUEFSSVMgSUxFIERFIEZSQU5DRSA3NTAwOQorCQkJCUZSQU5DRQorCiswMC0yMy04NiAgIChoZXgpCQlUb3VyICYgQW5kZXJzc29uIEFCCiswMDIzODYgICAgIChiYXNlIDE2KQkJVG91ciAmIEFuZGVyc3NvbiBBQgorCQkJCUFubmVsdW5kCisJCQkJTGp1bmcgIDUyNCA4MAorCQkJCVNXRURFTgorCiswMC0yMy04NyAgIChoZXgpCQlUaGlua0Zsb29kLCBJbmMuCiswMDIzODcgICAgIChiYXNlIDE2KQkJVGhpbmtGbG9vZCwgSW5jLgorCQkJCTEzOCBDbGFmbGluIFN0CisJCQkJQmVsbW9udCBNQSAwMjQ3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtODggICAoaGV4KQkJVi5ULiBUZWxlbWF0aWNhIFMucC5hLgorMDAyMzg4ICAgICAoYmFzZSAxNikJCVYuVC4gVGVsZW1hdGljYSBTLnAuYS4KKwkJCQlWaWEgR29ya3ksIDIxCisJCQkJU2FuIEdpdWxpYW5vIE1pbGFuZXNlIE1pbGFubyAyMDA5OAorCQkJCUlUQUxZCisKKzAwLTIzLTg5ICAgKGhleCkJCUhBTkdaSE9VIEgzQyBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDIzODkgICAgIChiYXNlIDE2KQkJSEFOR1pIT1UgSDNDIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlPcmllbnRhbCBFbGVjdHJvbmljcyBCbGRnLiwgIzIsIENodWFuZ3llIFJvYWTCo8KsU2hhbmdkaSBJbmZvcm1hdGlvbiBJbmR1c3RyeSBCYXNlLAorCQkJCUhhaWRpYW4gRGlzdHJpY3QsIEJlaWppbmcsIFAuUi5DaGluYQorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzAwLTIzLThBICAgKGhleCkJCUNpZW5hIENvcnBvcmF0aW9uCiswMDIzOEEgICAgIChiYXNlIDE2KQkJQ2llbmEgQ29ycG9yYXRpb24KKwkJCQk5MjAgRWxrcmlkZ2UgTGFuZGluZworCQkJCUxpbnRoaWN1bSBNRCAyMTA5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtOEIgICAoaGV4KQkJUXVhbnRhIENvbXB1dGVyIEluYy4KKzAwMjM4QiAgICAgKGJhc2UgMTYpCQlRdWFudGEgQ29tcHV0ZXIgSW5jLgorCQkJCU5PLiAyMTEsIFdFTiBIV0EgMlJELixLVUVJIFNIQU4gSFNJQU5HLCBUQU8gWVVBTiBTSElFTiwKKwkJCQlUQUlQRUkgVEFJV0FOIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjMtOEMgICAoaGV4KQkJUFJJVkFURQorMDAyMzhDICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0yMy04RCAgIChoZXgpCQlUZWNobm8gRGVzaWduIENvLiwgTHRkLgorMDAyMzhEICAgICAoYmFzZSAxNikJCVRlY2hubyBEZXNpZ24gQ28uLCBMdGQuCisJCQkJMzEyLTIKKwkJCQlUb3Jpa28sIE5pc2hpaGFyYS1tdXJhCisJCQkJQXNvLWd1biBLdW1hbW90by1rZW4gODYxLTI0MDEKKwkJCQlKQVBBTgorCiswMC0yMy04RSAgIChoZXgpCQlBREIgQnJvYWRiYW5kIEl0YWxpYQorMDAyMzhFICAgICAoYmFzZSAxNikJCUFEQiBCcm9hZGJhbmQgSXRhbGlhCisJCQkJVklBTEUgU0FSQ0EgMjIyCisJCQkJTUlMQU5PICAyMDEyNgorCQkJCUlUQUxZCisKKzAwLTIzLThGICAgKGhleCkJCU5JREVDIENPUEFMIENPUlBPUkFUSU9OCiswMDIzOEYgICAgIChiYXNlIDE2KQkJTklERUMgQ09QQUwgQ09SUE9SQVRJT04KKwkJCQkyLTE4LTEwLFNISU1VUkEKKwkJCQlJVEFCQVNISS1LVSBUT0tZTyAxNzQtODU1MAorCQkJCUpBUEFOCisKKzAwLTIzLTkwICAgKGhleCkJCUFsZ29sd2FyZSBDb3Jwb3JhdGlvbgorMDAyMzkwICAgICAoYmFzZSAxNikJCUFsZ29sd2FyZSBDb3Jwb3JhdGlvbgorCQkJCTEzRi01LCBOby4gNzcsIFNlYy4gMSwgU2ludGFpIDV0aCBSZC4sCisJCQkJU2lqaGloIENpdHksCisJCQkJVGFpcGVpIENvdW50eSBUYWl3YW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy05MSAgIChoZXgpCQlNYXhpYW4KKzAwMjM5MSAgICAgKGJhc2UgMTYpCQlNYXhpYW4KKwkJCQkyMXRoIEZsLiBLSU5TIHRvd2VyLCAyNS0xCisJCQkJSmVvbmphLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbS1jaXR5IEd5ZW9uZ2dpLWRvIDQ2My04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtOTIgICAoaGV4KQkJUHJvdGV1cyBJbmR1c3RyaWVzIEluYy4KKzAwMjM5MiAgICAgKGJhc2UgMTYpCQlQcm90ZXVzIEluZHVzdHJpZXMgSW5jLgorCQkJCTM0MCBQaW9uZWVyIFdheQorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLTkzICAgKGhleCkJCUFKSU5FWFRFSworMDAyMzkzICAgICAoYmFzZSAxNikJCUFKSU5FWFRFSworCQkJCTktMywgSG9saW1kb25nLCBEYWxzZW9ndQorCQkJCURhZWd1ICA3MDQtMjQwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLTk0ICAgKGhleCkJCVNhbWplb24KKzAwMjM5NCAgICAgKGJhc2UgMTYpCQlTYW1qZW9uCisJCQkJIzEzMTMtMSBKb2lsLVJpLCBTYW1kb25nLU15ZXVuLFVsanUtR3VuCisJCQkJVWxzYW4gQ2l0eSBTb3V0aCBLb3JlYSA2ODktOTM0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLTk1ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDIzOTUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy05NiAgIChoZXgpCQlBTkRFUyBURUNITk9MT0dZIENPUlBPUkFUSU9OCiswMDIzOTYgICAgIChiYXNlIDE2KQkJQU5ERVMgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCTJGLE5vLiAxLCBMaS1Ic2luIEZpcnN0IFJvYWQsCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luLUNodSBUYWl3YW4gMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy05NyAgIChoZXgpCQlXZXN0ZWxsIFRlY2hub2xvZ2llcyBJbmMuCiswMDIzOTcgICAgIChiYXNlIDE2KQkJV2VzdGVsbCBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTExODUyIFByZXNsZXkgQ3IKKwkJCQlQbGFpbmZpZWxkIElMIDYwNTg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy05OCAgIChoZXgpCQlTa3kgQ29udHJvbAorMDAyMzk4ICAgICAoYmFzZSAxNikJCVNreSBDb250cm9sCisJCQkJdWwuIFN2b3Jub3N0aSA0MQorCQkJCUJyYXRpc2xhdmEgQkEgODIgMTA3CisJCQkJU0xPVkFLSUEKKworMDAtMjMtOTkgICAoaGV4KQkJVkQgRGl2aXNpb24sIFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uCiswMDIzOTkgICAgIChiYXNlIDE2KQkJVkQgRGl2aXNpb24sIFNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uCisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIHllb25ndG9uZy1ndSwgU3V3b24tY2l0eQorCQkJCUtvcmVhCisJCQkJU3V3b24gIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtOUEgICAoaGV4KQkJRWFzeURhdGEgU29mdHdhcmUgR21iSAorMDAyMzlBICAgICAoYmFzZSAxNikJCUVhc3lEYXRhIFNvZnR3YXJlIEdtYkgKKwkJCQlTdGVpbmJhY2hlciBTdHJhw4PFuGUgMTQtMjQKKwkJCQlFc2NoYm9ybiAvIFRzLiBIZXNzZW4gRC02NTc2MAorCQkJCUdFUk1BTlkKKworMDAtMjMtOUIgICAoaGV4KQkJRWxzdGVyIFNvbHV0aW9ucywgTExDCiswMDIzOUIgICAgIChiYXNlIDE2KQkJRWxzdGVyIFNvbHV0aW9ucywgTExDCisJCQkJMjA4IFNvdXRoIFJvZ2VycyBMYW5lCisJCQkJUmFsZWlnaCBOb3J0aCBDYXJvbGluYSAyNzYxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtOUMgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworMDAyMzlDICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy05RCAgIChoZXgpCQlNYXBvd2VyIEVsZWN0cm9uaWNzIENvLiwgTHRkCiswMDIzOUQgICAgIChiYXNlIDE2KQkJTWFwb3dlciBFbGVjdHJvbmljcyBDby4sIEx0ZAorCQkJCU5vLiA1MCBNaW5xdWFuIFJvYWQKKwkJCQlMdXpodSBTaGlhbmcKKwkJCQlUYW95dWFuIENvdW50eSAgMzM4NDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLTlFICAgKGhleCkJCUppYW5nc3UgTGVtb3RlIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTGltaXRlZAorMDAyMzlFICAgICAoYmFzZSAxNikJCUppYW5nc3UgTGVtb3RlIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24gTGltaXRlZAorCQkJCU1lbmdsYW4gSW5kdXN0cmlhbCBQYXJrLFl1c2hhbgorCQkJCUNoYW5nc2h1IEppYW5nc3UgMjE1NTAwCisJCQkJQ0hJTkEKKworMDAtMjMtOUYgICAoaGV4KQkJSW5zdGl0dXQgZsO8ciBQcsO8ZnRlY2huaWsKKzAwMjM5RiAgICAgKGJhc2UgMTYpCQlJbnN0aXR1dCBmw7xyIFByw7xmdGVjaG5paworCQkJCVNjaHVsc3RyLiAzCisJCQkJVG9kdGVud2VpcyBCYXllcm4gODY0NDcKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLUEwICAgKGhleCkJCUhhbmEgQ05TIENvLiwgTFRELgorMDAyM0EwICAgICAoYmFzZSAxNikJCUhhbmEgQ05TIENvLiwgTFRELgorCQkJCVRhZWphbmctZG9uZyAxNzIwLTUyIFRhZWphbmctTm9uZ0dvbmctRGFuamkKKwkJCQlXb25qdSBHYW5nd29uLWRvIDIyMC05NjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtQTEgICAoaGV4KQkJVHJlbmQgRWxlY3Ryb25pY3MgTHRkCiswMDIzQTEgICAgIChiYXNlIDE2KQkJVHJlbmQgRWxlY3Ryb25pY3MgTHRkCisJCQkJR3V0IE5vLiAzNTAKKwkJCQlWaWxsYWdlIC0gQmhhbGdhb24KKwkJCQlBdXJhbmFnYWJhZCBNYWhhcmFzaHRyYSA0MzEyMTAKKwkJCQlJTkRJQQorCiswMC0yMy1BMiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyM0EyICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQTMgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjNBMyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUE0ICAgKGhleCkJCU5ldyBDb25jZXB0cyBEZXZlbG9wbWVudCBDb3JwLgorMDAyM0E0ICAgICAoYmFzZSAxNikJCU5ldyBDb25jZXB0cyBEZXZlbG9wbWVudCBDb3JwLgorCQkJCTI2NTAgQnJpZGdlIExhbmUKKwkJCQlXb29kc3RvY2sgSUwgNjAwOTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUE1ICAgKGhleCkJCVNhZ2VUViwgTExDCiswMDIzQTUgICAgIChiYXNlIDE2KQkJU2FnZVRWLCBMTEMKKwkJCQk5ODAwIFMuIExhIENpZW5lZ2EgQmx2ZAorCQkJCVN1aXRlIDkwNQorCQkJCUluZ2xld29vZCBDQSA5MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQTYgICAoaGV4KQkJRS1Nb24KKzAwMjNBNiAgICAgKGJhc2UgMTYpCQlFLU1vbgorCQkJCU9uZSBPeGZvcmQgVmFsbGV5LCBTdWl0ZSA0MTgKKwkJCQlMYW5naG9ybmUgUEEgMTkwNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUE3ICAgKGhleCkJCVJlZHBpbmUgU2lnbmFscywgSW5jLgorMDAyM0E3ICAgICAoYmFzZSAxNikJCVJlZHBpbmUgU2lnbmFscywgSW5jLgorCQkJCVBsb3QgODcsIFNhZ2FyIFNvY2lldHkKKwkJCQlCYW5qYXJhIEhpbGxzIFJvYWQgTm8uIDIKKwkJCQlIeWRlcmFiYWQgQVAgNTAwMDM0CisJCQkJSU5ESUEKKworMDAtMjMtQTggICAoaGV4KQkJTWFyc2hhbGwgRWxlY3Ryb25pY3MKKzAwMjNBOCAgICAgKGJhc2UgMTYpCQlNYXJzaGFsbCBFbGVjdHJvbmljcworCQkJCTE5MTAgRSBNYXBsZSBBdmUKKwkJCQlFbCBTZWd1bmRvIENhIDkwMjQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1BOSAgIChoZXgpCQlCZWlqaW5nIERldGlhbnF1YW4gRWxlY3Ryb21lY2hhbmljYWwgRXF1aXBtZW50IENvLiwgTHRkCiswMDIzQTkgICAgIChiYXNlIDE2KQkJQmVpamluZyBEZXRpYW5xdWFuIEVsZWN0cm9tZWNoYW5pY2FsIEVxdWlwbWVudCBDby4sIEx0ZAorCQkJCU5vLiAyIENoYXBlbmcgUm9hZCwgSGFpZGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwOTEKKwkJCQlDSElOQQorCiswMC0yMy1BQSAgIChoZXgpCQlIRlIsIEluYy4KKzAwMjNBQSAgICAgKGJhc2UgMTYpCQlIRlIsIEluYy4KKwkJCQk1RiwgSGFuYSBFWiBUb3dlcgorCQkJCTE1OCwgR3VtaS1kb25nLCBCdW5kYW5nLWd1CisJCQkJU3VuZ25hbS1zaSBLeXVuZ2dpLWRvIDQ2My04NzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtQUIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyM0FCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUFDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjNBQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1BRCAgIChoZXgpCQlYbWFyayBDb3Jwb3JhdGlvbgorMDAyM0FEICAgICAoYmFzZSAxNikJCVhtYXJrIENvcnBvcmF0aW9uCisJCQkJMzA5IExlZ2dldCAgRHJpdmUKKwkJCQlPdHRhd2EgT250YXJpbyBLMksgM0EzCisJCQkJQ0FOQURBCisKKzAwLTIzLUFFICAgKGhleCkJCURlbGwgSW5jLgorMDAyM0FFICAgICAoYmFzZSAxNikJCURlbGwgSW5jLgorCQkJCU9uZSBEZWxsIFdheSwgTVMgUlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtQUYgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjNBRiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVLlMuIEhpZ2h3YXkgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSWxsaW5vaXMgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUIwICAgKGhleCkJCUNPTVhJT04gVGVjaG5vbG9neSBJbmMuCiswMDIzQjAgICAgIChiYXNlIDE2KQkJQ09NWElPTiBUZWNobm9sb2d5IEluYy4KKwkJCQkxMUYsIE5vLiAxMTEsIFNlYyAyLCBLZWVsdW5nIFJkLiwgU2lueWkgRGlzdHJpYworCQkJCVRhaXBlaSBUYWl3YW4gMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy1CMSAgIChoZXgpCQlMb25nY2hlZXIgVGVjaG5vbG9neSAoU2luZ2Fwb3JlKSBQdGUgTHRkCiswMDIzQjEgICAgIChiYXNlIDE2KQkJTG9uZ2NoZWVyIFRlY2hub2xvZ3kgKFNpbmdhcG9yZSkgUHRlIEx0ZAorCQkJCTQzIEtha2kgQnVraXQgVmlldywgICMwNC0wMSAgLAorCQkJCUtha2kgQnVraXQgVGVjaCBQYXJrIElJLAorCQkJCTQxNTk3MAorCQkJCVNJTkdBUE9SRQorCiswMC0yMy1CMiAgIChoZXgpCQlJbnRlbGxpZ2VudCBNZWNoYXRyb25pYyBTeXN0ZW1zIEluYworMDAyM0IyICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IE1lY2hhdHJvbmljIFN5c3RlbXMgSW5jCisJCQkJMTYxIFJvZ2VyIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJKIDFCMQorCQkJCUNBTkFEQQorCiswMC0yMy1CMyAgIChoZXgpCQlMeXluIEFCCiswMDIzQjMgICAgIChiYXNlIDE2KQkJTHl5biBBQgorCQkJCUlERU9OIFNjaWVuY2UgUGFyaworCQkJCVNjaGVlbGV2w6RnZW4gMTcKKwkJCQlMdW5kICAyMjMgNzAKKwkJCQlTV0VERU4KKworMDAtMjMtQjQgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjNCNCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gdiAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjMtQjUgICAoaGV4KQkJT1JUQU5BIExURAorMDAyM0I1ICAgICAoYmFzZSAxNikJCU9SVEFOQSBMVEQKKwkJCQlPU1RJTSBLT0NBU0lOQU4gU0FOQVlJIFNJVEVTSQorCQkJCTEzLiBTT0tBSyBOTzozNy0zOSBZLiBNQUhBTExFCisJCQkJQU5LQVJBICAwNjM3MAorCQkJCVRVUktFWQorCiswMC0yMy1CNiAgIChoZXgpCQlTRUNVUklURSBDT01NVU5JQ0FUSU9OUyAvIEhPTkVZV0VMTAorMDAyM0I2ICAgICAoYmFzZSAxNikJCVNFQ1VSSVRFIENPTU1VTklDQVRJT05TIC8gSE9ORVlXRUxMCisJCQkJRk9OVCBERSBMJ09STUUKKwkJCQkxMTk4IEFWIERVIERPQ1RFVVIgRE9OQVQKKwkJCQlNT1VHSU5TIEZSQU5DRSAwNjI1MAorCQkJCUZSQU5DRQorCiswMC0yMy1CNyAgIChoZXgpCQlRLUxpZ2h0IENvLiwgTHRkLgorMDAyM0I3ICAgICAoYmFzZSAxNikJCVEtTGlnaHQgQ28uLCBMdGQuCisJCQkJMTc4LTEgV29vZ3llLVJpLCBTYW5nZG9uZy1NeXVuLAorCQkJCUdpbWhhZS1TaSBHeXVuZ3NhbmdOYW0tRG8gNjIxLTgxMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy1COCAgIChoZXgpCQlTaWNodWFuIEppdXpob3UgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLixMdGQKKzAwMjNCOCAgICAgKGJhc2UgMTYpCQlTaWNodWFuIEppdXpob3UgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlOby4yNTkgSml1emhvdSBSb2FkLAorCQkJCU1pYW55YW5nIFNpY2h1YW4gNjIxMDAwCisJCQkJQ0hJTkEKKworMDAtMjMtQjkgICAoaGV4KQkJRUFEUyBEZXV0c2NobGFuZCBHbWJICiswMDIzQjkgICAgIChiYXNlIDE2KQkJRUFEUyBEZXV0c2NobGFuZCBHbWJICisJCQkJV2lsbHkgTWVzc2Vyc2NobWl0dCBTdHIuCisJCQkJT3R0b2JydW5uIEJhdmFyaWEgODU1MjEKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLUJBICAgKGhleCkJCUNocm9tYQorMDAyM0JBICAgICAoYmFzZSAxNikJCUNocm9tYQorCQkJCTY4LCBId2EtWWEgMXN0IFJkLiwgSHdhLVlhIFRlY2huaWNhbCBQYXJrLAorCQkJCUt1ZWktU2hhbiBIc2lhbmcsCisJCQkJVGFveXVhbiBIc2llbiBUYWl3YW4gMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy1CQiAgIChoZXgpCQlTY2htaXR0IEluZHVzdHJpZXMKKzAwMjNCQiAgICAgKGJhc2UgMTYpCQlTY2htaXR0IEluZHVzdHJpZXMKKwkJCQkyNzY1IE5XIE5pY29sYWkgU3QKKwkJCQlQb3J0bGFuZCBPcmVnb24gOTcyMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUJDICAgKGhleCkJCUVRLVNZUyBHbWJICiswMDIzQkMgICAgIChiYXNlIDE2KQkJRVEtU1lTIEdtYkgKKwkJCQlIaW50ZXIgZGVuIEfDpHJ0ZW4gMTViCisJCQkJVHJldWVuYnJpZXR6ZW4gT1QgRmVsZGhlaW0gQnJhbmRlbmJ1cmcgMTQ5MjkKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLUJEICAgKGhleCkJCURpZ2l0YWwgQWxseSwgSW5jLgorMDAyM0JEICAgICAoYmFzZSAxNikJCURpZ2l0YWwgQWxseSwgSW5jLgorCQkJCTEyMTggVmFsbGV5IFJpZGdlIERyaXZlCisJCQkJR3JhaW4gVmFsbGV5IE1PIDY0MDI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1CRSAgIChoZXgpCQlDaXNjbyBTUFZURworMDAyM0JFICAgICAoYmFzZSAxNikJCUNpc2NvIFNQVlRHCisJCQkJNTAzMCBTdWdhcmxvYWYgUGt3eQorCQkJCUxhd3JlbmNldmlsbGUgR0EgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUJGICAgKGhleCkJCU1haW5waW5lLCBJbmMuCiswMDIzQkYgICAgIChiYXNlIDE2KQkJTWFpbnBpbmUsIEluYy4KKwkJCQlQTyBCb3ggMjQxCisJCQkJV2lsc29udmlsbGUgT3JlZ29uIDk3MDcwLTAyNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUMwICAgKGhleCkJCUJyb2Fkd2F5IE5ldHdvcmtzCiswMDIzQzAgICAgIChiYXNlIDE2KQkJQnJvYWR3YXkgTmV0d29ya3MKKwkJCQkxNzU0IFRlY2hub2xvZ3kgRHJpdmUsIFN1aXRlIDIwOAorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUMxICAgKGhleCkJCVNlY3VyaXRhcyBEaXJlY3QgQUIKKzAwMjNDMSAgICAgKGJhc2UgMTYpCQlTZWN1cml0YXMgRGlyZWN0IEFCCisJCQkJS2FsZW5kZWdhdGFuIDI2CisJCQkJTWFsbcO2ICAyMDMyMAorCQkJCVNXRURFTgorCiswMC0yMy1DMiAgIChoZXgpCQlTQU1TVU5HIEVsZWN0cm9uaWNzLiBDby4gTFRECiswMDIzQzIgICAgIChiYXNlIDE2KQkJU0FNU1VORyBFbGVjdHJvbmljcy4gQ28uIExURAorCQkJCTE5dGggRmwuLCBLb3JlYSBMaWZlIEJsZGcuIDEzMzgtMTIKKwkJCQlTZW9jaG8gMiBEb25nIFNlb2Noby1ndSBEb21hc3RpYyBTYWxlcyYgTWFya2V0aW5nIERpdmlzaW9uCisJCQkJU2VvdWwgIDEzNy04NjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjMtQzMgICAoaGV4KQkJTG9nTWVJbiwgSW5jLgorMDAyM0MzICAgICAoYmFzZSAxNikJCUxvZ01lSW4sIEluYy4KKwkJCQk1MDAgVW5pY29ybiBQYXJrIERyaXZlCisJCQkJV29idXJuIE1hc3NhY2h1c2V0dHMgMDE4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUM0ICAgKGhleCkJCUx1eCBMdW1lbgorMDAyM0M0ICAgICAoYmFzZSAxNikJCUx1eCBMdW1lbgorCQkJCUtlcm5lbmVyZ2llc3RyYWF0IDUzQQorCQkJCVdpbHJpamsgQW50d2VycCAyNjEwCisJCQkJQkVMR0lVTQorCiswMC0yMy1DNSAgIChoZXgpCQlSYWRpYXRpb24gU2FmZXR5IGFuZCBDb250cm9sIFNlcnZpY2VzIEluYworMDAyM0M1ICAgICAoYmFzZSAxNikJCVJhZGlhdGlvbiBTYWZldHkgYW5kIENvbnRyb2wgU2VydmljZXMgSW5jCisJCQkJOTEgUG9ydHNtb3V0aCBBdmUKKwkJCQlTdHJhdGhhbSBOZXcgSGFtcHNoaXJlIDAzODg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1DNiAgIChoZXgpCQlTTUMgQ29ycG9yYXRpb24KKzAwMjNDNiAgICAgKGJhc2UgMTYpCQlTTUMgQ29ycG9yYXRpb24KKwkJCQk0LTItMiwgS2ludW5vZGFpCisJCQkJVHN1a3ViYSBNaXJhaS1zaGkgSWJhcmFraS1rZW4gMzAwLTI0OTMKKwkJCQlKQVBBTgorCiswMC0yMy1DNyAgIChoZXgpCQlBVlN5c3RlbQorMDAyM0M3ICAgICAoYmFzZSAxNikJCUFWU3lzdGVtCisJCQkJdWwuIEZyaWVkbGVpbmEgNAorCQkJCUtyYWvDs3cgbWHCs29wb2xza2llIDMwLTAwOQorCQkJCVBPTEFORAorCiswMC0yMy1DOCAgIChoZXgpCQlURUFNLVIKKzAwMjNDOCAgICAgKGJhc2UgMTYpCQlURUFNLVIKKwkJCQlHcmFnZGFuc2tpIHN0ci4xMTEsIEEsIDktTgorCQkJCVN0LiBQZXRlcnNidXJnICAxOTUyNjUKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjMtQzkgICAoaGV4KQkJU2ljaHVhbiBUaWFueWkgSW5mb3JtYXRpb24gU2NpZW5jZSAmIFRlY2hub2xvZ3kgU3RvY2sgQ08uLExURAorMDAyM0M5ICAgICAoYmFzZSAxNikJCVNpY2h1YW4gVGlhbnlpIEluZm9ybWF0aW9uIFNjaWVuY2UgJiBUZWNobm9sb2d5IFN0b2NrIENPLixMVEQKKwkJCQlOby4xLEhvdCBTcHJpbmcgSGlnaHdheSxEYXlpIENvdW50eQorCQkJCUNoZW5nZHUgU2ljaHVhbiA2MTEzMzAKKwkJCQlDSElOQQorCiswMC0yMy1DQSAgIChoZXgpCQlCZWhpbmQgVGhlIFNldCwgTExDCiswMDIzQ0EgICAgIChiYXNlIDE2KQkJQmVoaW5kIFRoZSBTZXQsIExMQworCQkJCTIxODUgS25vbGx3b29kIERyLgorCQkJCUJvdWxkZXIgQ08gODAzMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUNCICAgKGhleCkJCVNoZW56aGVuIEZ1bGwtam9pbiBUZWNobm9sb2d5IENvLixMdGQKKzAwMjNDQiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBGdWxsLWpvaW4gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJOS9GLE5vLjEsWGlucnVpIFJvYWQsSG91cnVpICxYaXhpYW5nIFRvd24sIEJhbydhbiBEaXN0cmljdAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCiswMC0yMy1DQyAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMjNDQyAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yMy1DRCAgIChoZXgpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKzAwMjNDRCAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQlTb3V0aCBCdWlsZGluZywgTm8uNSBLZXl1YW4gUm9hZCwgQ2VudHJhbCBab25lLAorCQkJCVNjaWVuY2UgJiBUZWNobm9sb2d5IFBhcmsgTmFuc2hhbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCiswMC0yMy1DRSAgIChoZXgpCQlLSVRBIERFTlNISSBDT1JQT1JBVElPTgorMDAyM0NFICAgICAoYmFzZSAxNikJCUtJVEEgREVOU0hJIENPUlBPUkFUSU9OCisJCQkJMTJGIFRPS1lPLU5JU0hJSUtFQlVLVVJPIEJpbGcuLAorCQkJCTEtNy03LCBOaXNoaS1pa2VidWt1cm8KKwkJCQlUb3NoaW1hLWt1LCBUb2t5byAxNzEtMDAyMQorCQkJCUpBUEFOCisKKzAwLTIzLUNGICAgKGhleCkJCUNVTU1JTlMtQUxMSVNPTiBDT1JQLgorMDAyM0NGICAgICAoYmFzZSAxNikJCUNVTU1JTlMtQUxMSVNPTiBDT1JQLgorCQkJCTg5MSBGRUVIQU5WSUxMRSBEUklWRQorCQkJCU1ULiBQUk9TUEVDVCBJTCA2MDA1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRDAgICAoaGV4KQkJVW5pbG9jIFVTQSBJbmMuCiswMDIzRDAgICAgIChiYXNlIDE2KQkJVW5pbG9jIFVTQSBJbmMuCisJCQkJMzMzMyBNaWNoZWxzb24gRHJpdmUKKwkJCQlTdWl0ZSA2MDAKKwkJCQlJcnZpbmUgQ0EgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUQxICAgKGhleCkJCVRSRworMDAyM0QxICAgICAoYmFzZSAxNikJCVRSRworCQkJCVdpc21hIEtvc2dvcm8gMTN0aCBGbG9vcgorCQkJCUpsLiBNSC4gVGhhbXJpbiA1MworCQkJCUpha2FydGEgUHVzYXQgIDEwMzUwCisJCQkJSU5ET05FU0lBCisKKzAwLTIzLUQyICAgKGhleCkJCUluaGFuZCBFbGVjdHJvbmljcywgSW5jLgorMDAyM0QyICAgICAoYmFzZSAxNikJCUluaGFuZCBFbGVjdHJvbmljcywgSW5jLgorCQkJCTMwIFdlc3QgR3VkZSBEcml2ZQorCQkJCVN1aXRlIDU1MAorCQkJCVJvY2t2aWxsZSBNYXJ5bGFuZCAyMDg1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRDMgICAoaGV4KQkJQWlyTGluayBXaUZpIE5ldHdvcmtpbmcgQ29ycC4KKzAwMjNEMyAgICAgKGJhc2UgMTYpCQlBaXJMaW5rIFdpRmkgTmV0d29ya2luZyBDb3JwLgorCQkJCTE5Ri0xIFJvb20gQSAsIE5vLjk3LCBTZWMgNCwgQ2h1bmcgSHNpbiBSZC4sCisJCQkJU2FuIENodW5nIENpdHksIFRhaXBlaSBIc2llbiAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTIzLUQ0ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswMDIzRDQgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUQ1ICAgKGhleCkJCVdBUkVNQSBlbGVjdHJvbmljIEdtYkgKKzAwMjNENSAgICAgKGJhc2UgMTYpCQlXQVJFTUEgZWxlY3Ryb25pYyBHbWJICisJCQkJRGlsbGJlcmcgMzMKKwkJCQlNYXJrdGhlaWRlbmZlbGQgQmF2YXJpYSA5NzgyOAorCQkJCUdFUk1BTlkKKworMDAtMjMtRDYgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTFRECiswMDIzRDYgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTFRECisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLUQ3ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzAwMjNENyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLUQ4ICAgKGhleCkJCUJhbGwtSXQgT3kKKzAwMjNEOCAgICAgKGJhc2UgMTYpCQlCYWxsLUl0IE95CisJCQkJVXVzaWthdHUgMjQgRyA3NgorCQkJCU91bHUgIDkwMTAwCisJCQkJRklOTEFORAorCiswMC0yMy1EOSAgIChoZXgpCQlCYW5uZXIgRW5naW5lZXJpbmcKKzAwMjNEOSAgICAgKGJhc2UgMTYpCQlCYW5uZXIgRW5naW5lZXJpbmcKKwkJCQk5NzE0IDEwdGggQXZlLiBOLgorCQkJCVBseW1vdXRoIE1OIDU1NDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1EQSAgIChoZXgpCQlJbmR1c3RyaWFsIENvbXB1dGVyIFNvdXJjZSAoRGV1dHNjaGxhbmQpR21iSAorMDAyM0RBICAgICAoYmFzZSAxNikJCUluZHVzdHJpYWwgQ29tcHV0ZXIgU291cmNlIChEZXV0c2NobGFuZClHbWJICisJCQkJTWFyaWUtQ3VyaWUtU3RyYcODxbhlIDkKKwkJCQlQdWxoZWltIE5SVyA1MDI1OQorCQkJCUdFUk1BTlkKKworMDAtMjMtREIgICAoaGV4KQkJc2F4bmV0IGdtYmgKKzAwMjNEQiAgICAgKGJhc2UgMTYpCQlzYXhuZXQgZ21iaAorCQkJCVdpbGx5LUJyYW5kdC1SaW5nIDEKKwkJCQlPZWxzbml0eiBTYWNoc2VuIDA4NjA2CisJCQkJR0VSTUFOWQorCiswMC0yMy1EQyAgIChoZXgpCQlCZW5laW4sIEluYworMDAyM0RDICAgICAoYmFzZSAxNikJCUJlbmVpbiwgSW5jCisJCQkJSHlvamFjaG9uamVzYW5nZ2EyMjggQjksIDI5NywKKwkJCQlzZW9oeXVuLWRvbmcsIGJ1bmRhbmctZ3UKKwkJCQlTZW5nbmFtLXNpIEt5dW5nZ2ktZG8gNDYzLTgxOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy1ERCAgIChoZXgpCQlFTEdJTiBTLkEuCiswMDIzREQgICAgIChiYXNlIDE2KQkJRUxHSU4gUy5BLgorCQkJCVJVQSBCQVJBTyBERSBDQU1QSU5BUywgMzA1CisJCQkJQ0FNUE9TIEVMSVNFT1MKKwkJCQlTQU8gUEFVTE8gIDAxMjAxLTkwMQorCQkJCUJSQVpJTAorCiswMC0yMy1ERSAgIChoZXgpCQlBbnN5bmMgSW5jLgorMDAyM0RFICAgICAoYmFzZSAxNikJCUFuc3luYyBJbmMuCisJCQkJNDk3MCBSb2JlcnQgSiBNYXR0aGV3cyBQa3kKKwkJCQlTdWl0ZSAxNjAKKwkJCQlFbCBEb3JhZG8gSGlsbHMgQ0EgOTU3NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLURGICAgKGhleCkJCUFwcGxlLCBJbmMKKzAwMjNERiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1FMCAgIChoZXgpCQlJTk8gVGhlcmFwZXV0aWNzIExMQworMDAyM0UwICAgICAoYmFzZSAxNikJCUlOTyBUaGVyYXBldXRpY3MgTExDCisJCQkJMjkwMiBEYWlyeSBEcml2ZQorCQkJCU1hZGlzb24gV0kgNTM3MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUUxICAgKGhleCkJCUNhdmVuYSBJbWFnZSBQcm9kdWN0cyBBQgorMDAyM0UxICAgICAoYmFzZSAxNikJCUNhdmVuYSBJbWFnZSBQcm9kdWN0cyBBQgorCQkJCU55dG9ycHN2YWdlbiAyNgorCQkJCVTDpGJ5IFN0b2NraG9sbSBzZS0xODMgNTMKKwkJCQlTV0VERU4KKworMDAtMjMtRTIgICAoaGV4KQkJU0VBIFNpZ25hbGlzYXRpb24KKzAwMjNFMiAgICAgKGJhc2UgMTYpCQlTRUEgU2lnbmFsaXNhdGlvbgorCQkJCTIwLTIyIFJ1ZSBQaWVycmUgTWVuZMOocyBGcmFuY2UKKwkJCQlCUCAyMzEKKwkJCQlWYXVseCBlbiBWZWxpbiBDRURFWCAgNjk1MTUKKwkJCQlGUkFOQ0UKKworMDAtMjMtRTMgICAoaGV4KQkJTWljcm90cm9uaWMgQUcKKzAwMjNFMyAgICAgKGJhc2UgMTYpCQlNaWNyb3Ryb25pYyBBRworCQkJCUR1ZW5uZXJuc3RyYXNzZSAzMgorCQkJCU9lbnNpbmdlbiBTb2xvdGh1cm4gNDcwMgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTIzLUU0ICAgKGhleCkJCUlQbmVjdCBjby4gbHRkLgorMDAyM0U0ICAgICAoYmFzZSAxNikJCUlQbmVjdCBjby4gbHRkLgorCQkJCTgwOCBhbGJhdHJvc3MgQi9EIDIzNy0xOAorCQkJCUdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLUU1ICAgKGhleCkJCUlQYVhpb20gTmV0d29ya3MKKzAwMjNFNSAgICAgKGJhc2UgMTYpCQlJUGFYaW9tIE5ldHdvcmtzCisJCQkJQXN0b24gQ291cnQKKwkJCQlLaW5nc21lYWQgQnVzaW5lc3MgUGFyaywgRnJlZGVyaWNrIFBsYWNlCisJCQkJSGlnaCBXeWNvbWJlIEJ1Y2tpbmdoYW1zaGlyZSBIUDExIDFMQQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTIzLUU2ICAgKGhleCkJCVBpcmt1cywgSW5jLgorMDAyM0U2ICAgICAoYmFzZSAxNikJCVBpcmt1cywgSW5jLgorCQkJCTJGLDEtMS0yCisJCQkJU2hpbXVyYQorCQkJCUl0YWJhc2hpLWt1IFRva3lvIDE3NC0wMDU2CisJCQkJSkFQQU4KKworMDAtMjMtRTcgICAoaGV4KQkJSGlua2UgQS9TCiswMDIzRTcgICAgIChiYXNlIDE2KQkJSGlua2UgQS9TCisJCQkJVGluZ2JqZXJndmVqIDIKKwkJCQlCamFldmVyc2tvdiAgREstNDYzMgorCQkJCURFTk1BUksKKworMDAtMjMtRTggICAoaGV4KQkJRGVtY28gQ29ycC4KKzAwMjNFOCAgICAgKGJhc2UgMTYpCQlEZW1jbyBDb3JwLgorCQkJCSM5MTksIERvb3NhbiBWZW50dXJlZGlnbSwgMTI2LTEKKwkJCQlQeXVuZ2Nob24tRG9uZywgRG9uZ2FuLUt1CisJCQkJQW55YW5nLVNpIEt5dW5na2ktRG8gNDMxLTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yMy1FOSAgIChoZXgpCQlGNSBOZXR3b3JrcywgSW5jLgorMDAyM0U5ICAgICAoYmFzZSAxNikJCUY1IE5ldHdvcmtzLCBJbmMuCisJCQkJNDAxIEVsbGlvdHQgQXZlLiBXLgorCQkJCVNlYXR0bGUgV0EgOTgxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUVBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjNFQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1FQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDIzRUIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRUMgICAoaGV4KQkJQWxnb3JpdGhtaXggR21iSAorMDAyM0VDICAgICAoYmFzZSAxNikJCUFsZ29yaXRobWl4IEdtYkgKKwkJCQlLbGV0dGdhdXN0cmFzc2UgMjEKKwkJCQlXYWxkc2h1dC1UaWVuZ2VuIEJXIDc5NzYxCisJCQkJR0VSTUFOWQorCiswMC0yMy1FRCAgIChoZXgpCQlNb3Rvcm9sYSBDSFMKKzAwMjNFRCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBDSFMKKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1FRSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyM0VFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRUYgICAoaGV4KQkJWnVlbmQgU3lzdGVtdGVjaG5payBBRworMDAyM0VGICAgICAoYmFzZSAxNikJCVp1ZW5kIFN5c3RlbXRlY2huaWsgQUcKKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDgKKwkJCQlBbHRzdGFldHRlbiBTRyA5NDUwCisJCQkJU1dJVFpFUkxBTkQKKworMDAtMjMtRjAgICAoaGV4KQkJU2hhbmdoYWkgSmluZ2hhbiBXZWlnaGluZyBBcHBhcmF0dXMgQ28uIEx0ZC4KKzAwMjNGMCAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBKaW5naGFuIFdlaWdoaW5nIEFwcGFyYXR1cyBDby4gTHRkLgorCQkJCUJ1aWxkaW5nIDU4LCBOby45OSBDaHVuZ3VhbmcgUm9hZCwgWGluemh1YW5nIEluZHVzdHJpYWwgWm9uZSxNaW5oYW5nLAorCQkJCVNoYW5naGFpICAyMDExMDgKKwkJCQlDSElOQQorCiswMC0yMy1GMSAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworMDAyM0YxICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU2vDpW5lIDIyMTg4CisJCQkJU1dFREVOCisKKzAwLTIzLUYyICAgKGhleCkJCVRWTG9naWMKKzAwMjNGMiAgICAgKGJhc2UgMTYpCQlUVkxvZ2ljCisJCQkJc3VpdGUgOTE0IEFDRSBUZWNobm8gVG93ZXItOXRoCisJCQkJR2FzYW4tZG9uZworCQkJCUdldW1jaGVvbi1ndSBTRU9VTCAxNTMtNzgyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTIzLUYzICAgKGhleCkJCUdsb2NvbSwgSW5jLgorMDAyM0YzICAgICAoYmFzZSAxNikJCUdsb2NvbSwgSW5jLgorCQkJCTIyIEZpcnN0ZmllbGQgUm9hZAorCQkJCVN1aXRlIDEyNQorCQkJCUdhaXRoZXJzYnVyZyBNYXJ5bGFuZCAyMDg3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRjQgICAoaGV4KQkJTWFzdGVybmF1dAorMDAyM0Y0ICAgICAoYmFzZSAxNikJCU1hc3Rlcm5hdXQKKwkJCQk0LCBydWUgQ2hhcmxlcyBDcm9zCisJCQkJTG91dmllcnMgIDI3NDA3CisJCQkJRlJBTkNFCisKKzAwLTIzLUY1ICAgKGhleCkJCVdJTE8gU0UKKzAwMjNGNSAgICAgKGJhc2UgMTYpCQlXSUxPIFNFCisJCQkJTm9ydGtpcmNoZW5zdHIuIDEwMAorCQkJCUQgLSA0NDI2MyBEb3J0bXVuZCBOUlcgNDQyNjMKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLUY2ICAgKGhleCkJCVNvZnR3ZWxsIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDIzRjYgICAgIChiYXNlIDE2KQkJU29mdHdlbGwgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk0RiwgTm8uIDQxOSwgSmhvbmdoZSBSZC4sIFlvbmdoZSBDaXR5LAorCQkJCVRhaXBlaSBDb3VudHkgIDIzNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjMtRjcgICAoaGV4KQkJUFJJVkFURQorMDAyM0Y3ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0yMy1GOCAgIChoZXgpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorMDAyM0Y4ICAgICAoYmFzZSAxNikJCVp5WEVMIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCisJCQkJTk8uNiBJbm5vdmF0aW9uIFJvYWQgSUksCisJCQkJU2NpZW5jZSBQYXJrLAorCQkJCUhzaW4tQ2h1LCBUYWl3YW4gMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yMy1GOSAgIChoZXgpCQlEb3VibGUtVGFrZSBTb2Z0d2FyZSwgSU5DLgorMDAyM0Y5ICAgICAoYmFzZSAxNikJCURvdWJsZS1UYWtlIFNvZnR3YXJlLCBJTkMuCisJCQkJODQ3MCBBbGxpc29uIFBvaW50ZSBCbHZkCisJCQkJU3VpdGUgMzAwCisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yMy1GQSAgIChoZXgpCQlSRyBOZXRzLCBJbmMuCiswMDIzRkEgICAgIChiYXNlIDE2KQkJUkcgTmV0cywgSW5jLgorCQkJCTEwMDAgRS4gV2lsbGlhbSBTdHJlZXQKKwkJCQlTdWl0ZSAyMDQKKwkJCQlDYXJzb24gQ2l0eSBOViA4OTcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjMtRkIgICAoaGV4KQkJSVAgRGF0YXRlbCwgSW5jLgorMDAyM0ZCICAgICAoYmFzZSAxNikJCUlQIERhdGF0ZWwsIEluYy4KKwkJCQkxMzExMCBTb3V0aHdlc3QgRnJlZXdheQorCQkJCVN1Z2FyIExhbmQgVGV4YXMgNzc0NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUZDICAgKGhleCkJCVVsdHJhIFN0ZXJlbyBMYWJzLCBJbmMKKzAwMjNGQyAgICAgKGJhc2UgMTYpCQlVbHRyYSBTdGVyZW8gTGFicywgSW5jCisJCQkJMTgxIEJvbmV0dGkgRHJpdmUKKwkJCQlTYW4gTHVpcyBPYmlzcG8gQ0EgOTM0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTIzLUZEICAgKGhleCkJCUFGVCBBdGxhcyBGYWhyemV1Z3RlY2huaWsgR21iSAorMDAyM0ZEICAgICAoYmFzZSAxNikJCUFGVCBBdGxhcyBGYWhyemV1Z3RlY2huaWsgR21iSAorCQkJCUdld2VyYmVzdHIuIDE0CisJCQkJV2VyZG9obCAgNTg3OTEKKwkJCQlHRVJNQU5ZCisKKzAwLTIzLUZFICAgKGhleCkJCUJpb2RldmljZXMsIFNBCiswMDIzRkUgICAgIChiYXNlIDE2KQkJQmlvZGV2aWNlcywgU0EKKwkJCQlSdWEgNSBkZSBPdXR1YnJvIDMwOQorCQkJCVBvcnRvICA0MTAwLTE3NQorCQkJCVBPUlRVR0FMCisKKzAwLTIzLUZGICAgKGhleCkJCUJlaWppbmcgSFRUQyBUZWNobm9sb2d5IEx0ZC4KKzAwMjNGRiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEhUVEMgVGVjaG5vbG9neSBMdGQuCisJCQkJQi0xM0QtMyBLZXNoaSBCdWlsZGluZyxKaWEgTm8uMjggWGlueGkgUm9hZCxTSEFOR0RJIElUIEluZHVzdHJ5IEJhc2UKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiswMC0yNC0wMCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMjQwMCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQkyMjIxIExha2VzaWRlIEJsdmQKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0wMSAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzAwMjQwMSAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOby4yODksIFhpbmh1IDNyZC4KKwkJCQlOZWlodSBEaXN0cmljdCBUYWlwZWkgQ2l0eSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTAyICAgKGhleCkJCU9wLVRlY3Rpb24gR21iSAorMDAyNDAyICAgICAoYmFzZSAxNikJCU9wLVRlY3Rpb24gR21iSAorCQkJCUJvcnNpZ3N0cmHDg8W4ZSA4MAorCQkJCUhlaW5zYmVyZyBHZXJtYW55IDUyNTI1CisJCQkJR0VSTUFOWQorCiswMC0yNC0wMyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNDAzICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yNC0wNCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNDA0ICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yNC0wNSAgIChoZXgpCQlEaWxvZyBOb3JkaWMgQUIKKzAwMjQwNSAgICAgKGJhc2UgMTYpCQlEaWxvZyBOb3JkaWMgQUIKKwkJCQlGYWt0b3J2w6RnZW4gOQorCQkJCUt1bmdzYmFja2EgSGFsbGFuZCA0MzkgMzQKKwkJCQlTV0VERU4KKworMDAtMjQtMDYgICAoaGV4KQkJUG9pbnRtb2JpbGUKKzAwMjQwNiAgICAgKGJhc2UgMTYpCQlQb2ludG1vYmlsZQorCQkJCTMwMSxXb3JsZCBNZXJpZGlhbiBWZXJ0dXJlIENlbnRlci0xIDYwLTI0CisJCQkJR2FzYW4tZG9uZworCQkJCVNlb3VsIEdldW1jaGVvbi1ndSAxNTM3ODEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtMDcgICAoaGV4KQkJVEVMRU0gU0FTCiswMDI0MDcgICAgIChiYXNlIDE2KQkJVEVMRU0gU0FTCisJCQkJMTYsIFJVRSBERSBMJ0VUQU5HCisJCQkJR0lFUkVTIFJIT05FIEFMUEVTIDM4NjEwCisJCQkJRlJBTkNFCisKKzAwLTI0LTA4ICAgKGhleCkJCVBhY2lmaWMgQmlvc2NpZW5jZXMKKzAwMjQwOCAgICAgKGJhc2UgMTYpCQlQYWNpZmljIEJpb3NjaWVuY2VzCisJCQkJMTUwNSBBZGFtcyBEcml2ZQorCQkJCU1lbmxvIFBhcmsgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTA5ICAgKGhleCkJCVRoZSBUb3JvIENvbXBhbnkKKzAwMjQwOSAgICAgKGJhc2UgMTYpCQlUaGUgVG9ybyBDb21wYW55CisJCQkJNTgyNSBKYXNtaW5lIFN0cmVldAorCQkJCVJpdmVyc2lkZSBDQSA5MjUwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMEEgICAoaGV4KQkJVVMgQmV2ZXJhZ2UgTmV0CiswMDI0MEEgICAgIChiYXNlIDE2KQkJVVMgQmV2ZXJhZ2UgTmV0CisJCQkJMTAwMSBXLiBGYXlldHRlIFN0cmVldAorCQkJCTNBCisJCQkJU3lyYWN1c2UgTlkgMTMyMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTBCICAgKGhleCkJCVZpcnR1YWwgQ29tcHV0ZXIgSW5jLgorMDAyNDBCICAgICAoYmFzZSAxNikJCVZpcnR1YWwgQ29tcHV0ZXIgSW5jLgorCQkJCTMgTEFOIERyaXZlCisJCQkJV2VzdGZvcmQgTUEgMDE4ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTBDICAgKGhleCkJCURFTEVDIEdtYkgKKzAwMjQwQyAgICAgKGJhc2UgMTYpCQlERUxFQyBHbWJICisJCQkJUnVoZXdlZyAxNy0yMQorCQkJCUfDtmxsaGVpbSBSaGVpbmxhbmQtUGZhbHogNjczMDcKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LTBEICAgKGhleCkJCU9uZVBhdGggTmV0d29ya3MgTFRELgorMDAyNDBEICAgICAoYmFzZSAxNikJCU9uZVBhdGggTmV0d29ya3MgTFRELgorCQkJCTggSGFydG9tIFN0CisJCQkJSmVydXNhbGVtICA5MTQ1MAorCQkJCUlTUkFFTAorCiswMC0yNC0wRSAgIChoZXgpCQlJbnZlbnRlYyBCZXN0YSBDby4sIEx0ZC4KKzAwMjQwRSAgICAgKGJhc2UgMTYpCQlJbnZlbnRlYyBCZXN0YSBDby4sIEx0ZC4KKwkJCQkxMEZMLCBOby4zNiwgTGFuZSA1MTMsIFJ1aSBHdWFuZyBSb2FkLCBOZWkgSHUgRGlzdC4KKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtMEYgICAoaGV4KQkJSXNoaWkgVG9vbCAmIEVuZ2luZWVyaW5nIENvcnBvcmF0aW9uCiswMDI0MEYgICAgIChiYXNlIDE2KQkJSXNoaWkgVG9vbCAmIEVuZ2luZWVyaW5nIENvcnBvcmF0aW9uCisJCQkJMi01LTYwIEhpZ2FzaGktT21pY2hpCisJCQkJT2l0YSAgODcwLTA4MjMKKwkJCQlKQVBBTgorCiswMC0yNC0xMCAgIChoZXgpCQlOVUVURVEgVGVjaG5vbG9neSxJbmMuCiswMDI0MTAgICAgIChiYXNlIDE2KQkJTlVFVEVRIFRlY2hub2xvZ3ksSW5jLgorCQkJCTExRiwgTm8uIDExMiwgU2VjLiAxLCBaaG9uZy1YaWFvIEUgUmQuCisJCQkJVGFpcGVpICAxMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTExICAgKGhleCkJCVBoYXJtYVNtYXJ0IExMQworMDAyNDExICAgICAoYmFzZSAxNikJCVBoYXJtYVNtYXJ0IExMQworCQkJCTM0OTUgV2ludG9uIFBsYWNlCisJCQkJQmxkZyBBLCBTdWl0ZSAxCisJCQkJUm9jaGVzdGVyIE5ZIDE0NjIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0xMiAgIChoZXgpCQlCZW5pZ24gVGVjaG5vbG9naWVzIENvLCBMdGQuCiswMDI0MTIgICAgIChiYXNlIDE2KQkJQmVuaWduIFRlY2hub2xvZ2llcyBDbywgTHRkLgorCQkJCTUwNCByb29tLCA1RiwgU291dGggYnVpbGRpbmcsIEZvcnNhZmUgVG93ZXIsCisJCQkJU291dGggT25lIFN0cmVldCwgSGktVGVjaCBab25lLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0yNC0xMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI0MTMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMTQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNDE0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTE1ICAgKGhleCkJCU1hZ25ldGljIEF1dG9jb250cm9sIEdtYkgKKzAwMjQxNSAgICAgKGJhc2UgMTYpCQlNYWduZXRpYyBBdXRvY29udHJvbCBHbWJICisJCQkJR3JpZW5tYXR0IDIwCisJCQkJU2Nob3BmaGVpbSAgRC03OTY1MAorCQkJCUdFUk1BTlkKKworMDAtMjQtMTYgICAoaGV4KQkJQW55IFVzZQorMDAyNDE2ICAgICAoYmFzZSAxNikJCUFueSBVc2UKKwkJCQlMRyBBUFQgMjExLTE4MDUsCisJCQkJU2hpbmJvbmctRG9uZywgU3VqaS1HdSwKKwkJCQlZb25naW4gQ2l0eSBHeWVvbmctR2kgUHJvdmluY2UgNDQ4LTE1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC0xNyAgIChoZXgpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorMDAyNDE3ICAgICAoYmFzZSAxNikJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCisJCQkJUHJpbnMgQm91ZGV3aWpubGFhbiA0NworCQkJCUVkZWdlbSAtIEFudHdlcnAgIEItMjY1MAorCQkJCUJFTEdJVU0KKworMDAtMjQtMTggICAoaGV4KQkJTmV4dHdhdmUgU2VtaWNvbmR1Y3RvcgorMDAyNDE4ICAgICAoYmFzZSAxNikJCU5leHR3YXZlIFNlbWljb25kdWN0b3IKKwkJCQkzNjExIFZhbGxleSBDZW50cmUgRHIKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTE5ICAgKGhleCkJCVBSSVZBVEUKKzAwMjQxOSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtMjQtMUEgICAoaGV4KQkJUmVkIEJlZXRsZSBJbmMuCiswMDI0MUEgICAgIChiYXNlIDE2KQkJUmVkIEJlZXRsZSBJbmMuCisJCQkJODk4IFNpbGFzIERlYW5lIEhpZ2h3YXkKKwkJCQlXZXRoZXJzZmllbGQgQ1QgMDYxMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTFCICAgKGhleCkJCWlXT1cgQ29tbXVuaWNhdGlvbnMgUHRlIEx0ZAorMDAyNDFCICAgICAoYmFzZSAxNikJCWlXT1cgQ29tbXVuaWNhdGlvbnMgUHRlIEx0ZAorCQkJCTEgTG9yb25nIDIgVG9hIFBheW9oICMwNC0wMQorCQkJCVllbGxvdyBQYWdlcyBCdWlsZGluZworCQkJCTMxOTYzNworCQkJCVNJTkdBUE9SRQorCiswMC0yNC0xQyAgIChoZXgpCQlGdUdhbmcgRWxlY3Ryb25pYyAoREcpIENvLixMdGQKKzAwMjQxQyAgICAgKGJhc2UgMTYpCQlGdUdhbmcgRWxlY3Ryb25pYyAoREcpIENvLixMdGQKKwkJCQlJbmR1c3RyeSBTdHJlZXQsIERvbmctS2VuZworCQkJCUd1YW5nIERvbmcgUHJvdmluY2UKKwkJCQlEb25nIEd1YW4gQ2l0eSAgNTIzNDQ4CisJCQkJQ0hJTkEKKworMDAtMjQtMUQgICAoaGV4KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKzAwMjQxRCAgICAgKGJhc2UgMTYpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCU5vLjIxNSxOYW4tUGluZyBSb2FkLAorCQkJCVBpbi1KZW4gVGFveXVhbiAzMjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTFFICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyNDFFICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTI0LTFGICAgKGhleCkJCURDVC1EZWx0YSBHbWJICiswMDI0MUYgICAgIChiYXNlIDE2KQkJRENULURlbHRhIEdtYkgKKwkJCQlCb2RhbnJ1ZWNrc3RyYXNzZSAxCisJCQkJQm9kbWFuIC0gTHVkd2lnc2hhZmVuIEJhZGVuIC0gV8O8cnR0ZW1iZXJnIDc4MzUxCisJCQkJR0VSTUFOWQorCiswMC0yNC0yMCAgIChoZXgpCQlOZXRVUCBJbmMuCiswMDI0MjAgICAgIChiYXNlIDE2KQkJTmV0VVAgSW5jLgorCQkJCU9sb2YgUGFsbWUgc3QuLCAxLCBzZWN0LiA3CisJCQkJTW9zY293ICAxMTkzMTEKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjQtMjEgICAoaGV4KQkJTUlDUk8tU1RBUiBJTlQnTCBDTy4sIExURC4KKzAwMjQyMSAgICAgKGJhc2UgMTYpCQlNSUNSTy1TVEFSIElOVCdMIENPLiwgTFRELgorCQkJCU5vLjY5LCBMaS1EZSBTdAorCQkJCUp1bmctSG8gQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC0yMiAgIChoZXgpCQlLbmFwcCBMb2dpc3RpayBBdXRvbWF0aW9uIEdtYkgKKzAwMjQyMiAgICAgKGJhc2UgMTYpCQlLbmFwcCBMb2dpc3RpayBBdXRvbWF0aW9uIEdtYkgKKwkJCQlHw7xudGVyLUtuYXBwLVN0cmFzc2UgNS03CisJCQkJSGFydCBiZWkgR3JheiBTdHlyaWEgODA3NQorCQkJCUFVU1RSSUEKKworMDAtMjQtMjMgICAoaGV4KQkJQXp1cmVXYXZlIFRlY2hub2xvZ2llcyAoU2hhbmdoYWkpIEluYy4KKzAwMjQyMyAgICAgKGJhc2UgMTYpCQlBenVyZVdhdmUgVGVjaG5vbG9naWVzIChTaGFuZ2hhaSkgSW5jLgorCQkJCU5PLiA4LCBMQU5FIDY2LCBDSEVOR0JBTyBSRC4KKwkJCQlNQUxVIENPVU5UWSwgSklBRElORyBESVNUUklDVCwKKwkJCQlTSEFOR0hBSSAgMjAxODAxCisJCQkJQ0hJTkEKKworMDAtMjQtMjQgICAoaGV4KQkJQXhpcyBOZXR3b3JrIFRlY2hub2xvZ3kKKzAwMjQyNCAgICAgKGJhc2UgMTYpCQlBeGlzIE5ldHdvcmsgVGVjaG5vbG9neQorCQkJCVVuaXQgMTAsIE1pZHNoaXJlcyBCdXMgUGFyaworCQkJCVNtZWF0b24gQ2xvc2UKKwkJCQlBeWxlc2J1cnkgQnVja3MgSFAxOSA4SEwKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yNC0yNSAgIChoZXgpCQlTaGVuemhlbnNoaSBjaHVhbmd6aGljaGVuZyBUZWNobm9sb2d5IENvLixMdGQKKzAwMjQyNSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbnNoaSBjaHVhbmd6aGljaGVuZyBUZWNobm9sb2d5IENvLixMdGQKKwkJCQk1dGggRmxvb3IsQmxvY2syLDI1dGggQnVpbGRpbmcsSW5kdXN0cmlhbCBab25lIFdlc3QgS2V5dWFuIFNjaS10ZWNoIEdhcmRlbiBOYW5zaGFuIERpc3RyaWNoLFNoZW56aGVuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTI0LTI2ICAgKGhleCkJCU5PSE1JIEJPU0FJIExURC4KKzAwMjQyNiAgICAgKGJhc2UgMTYpCQlOT0hNSSBCT1NBSSBMVEQuCisJCQkJNy0zLEt1ZGFuLU1pbmFtaSA0LUNob21lLAorCQkJCUNoaXlvZGEta3UKKwkJCQlUb2t5byAgMTAyLTgyNzcKKwkJCQlKQVBBTgorCiswMC0yNC0yNyAgIChoZXgpCQlTU0kgQ09NUFVURVIgQ09SUAorMDAyNDI3ICAgICAoYmFzZSAxNikJCVNTSSBDT01QVVRFUiBDT1JQCisJCQkJNEYsIE5PNCwgTEFORSAyMzUsIEJBTyBDSElBTyBST0FECisJCQkJSFNJTiBUSUVOIFRBSVBFSSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTI4ICAgKGhleCkJCUVuZXJneUlDVAorMDAyNDI4ICAgICAoYmFzZSAxNikJCUVuZXJneUlDVAorCQkJCVRoZW9kb29yIFNldmVuc2xhYW4gMTA0YQorCQkJCUtvcnRyaWprICA4NTAwCisJCQkJQkVMR0lVTQorCiswMC0yNC0yOSAgIChoZXgpCQlNSyBNQVNURVIgSU5DLgorMDAyNDI5ICAgICAoYmFzZSAxNikJCU1LIE1BU1RFUiBJTkMuCisJCQkJNkYsIC0xLCBOTy4gMTEwLFNFQy4gMywgSkhPTkdTSEFOIFJELiwKKwkJCQlKSE9ORy1IRSBDSVRZLCBUQUlQRUkgQ09VTlRZIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtMkEgICAoaGV4KQkJSGl0dGl0ZSBNaWNyb3dhdmUgQ29ycG9yYXRpb24KKzAwMjQyQSAgICAgKGJhc2UgMTYpCQlIaXR0aXRlIE1pY3Jvd2F2ZSBDb3Jwb3JhdGlvbgorCQkJCTIwIEFscGhhIFJkCisJCQkJQ2hlbG1zZm9yZCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMkIgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLixMdGQuCiswMDI0MkIgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLixMdGQuCisJCQkJNjYsQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiBUYWl3YW4gMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC0yQyAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorMDAyNDJDICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCisJCQkJNjYsQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC0yRSAgIChoZXgpCQlEYXRhc3RyaXAgSW5jLgorMDAyNDJFICAgICAoYmFzZSAxNikJCURhdGFzdHJpcCBJbmMuCisJCQkJMSBXYXRlcnZpZXcgRHJpdmUKKwkJCQlTdWl0ZSAxMDMKKwkJCQlTaGVsdG9uIENUIDA2NDg0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0yRiAgIChoZXgpCQlWaXJ0ZW5TeXMgSW5jCiswMDI0MkYgICAgIChiYXNlIDE2KQkJVmlydGVuU3lzIEluYworCQkJCTg3MDUgTmltYnVzIEF2ZSBTdGUgMTAwCisJCQkJQmVhdmVydG9uIE9SIDk3MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0zMCAgIChoZXgpCQlSdWJ5IFRlY2ggQ29ycC4KKzAwMjQzMCAgICAgKGJhc2UgMTYpCQlSdWJ5IFRlY2ggQ29ycC4KKwkJCQkzRiwgTk8uIDEsIExhbmUgNTAsIE5hbiBLYW5nIFJvYWQsIFNlYy4gMywKKwkJCQlUYWlwZWkgIDExNTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC0zMSAgIChoZXgpCQlVbmktdiBjby4sbHRkCiswMDI0MzEgICAgIChiYXNlIDE2KQkJVW5pLXYgY28uLGx0ZAorCQkJCTUvRixDT0ZDTyBQcm9wZXJ0eSBUb3dlciwKKwkJCQl0aGUgM3JkIEFyZWEsIEJhbydhbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjYKKwkJCQlDSElOQQorCiswMC0yNC0zMiAgIChoZXgpCQlOZW9zdGFyIFRlY2hub2xvZ3kgQ28uLExURAorMDAyNDMyICAgICAoYmFzZSAxNikJCU5lb3N0YXIgVGVjaG5vbG9neSBDby4sTFRECisJCQkJOEYuLCBOby4xMDIsIFNlYy4gMSwgU2ludGFpIDV0aCBSZC4KKwkJCQlTaWpoaWggQ2l0eSBUYWlwZWkgMjIxNjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTMzICAgKGhleCkJCUFscHMgRWxlY3RyaWMgQ28uLCBMdGQKKzAwMjQzMyAgICAgKGJhc2UgMTYpCQlBbHBzIEVsZWN0cmljIENvLiwgTHRkCisJCQkJMS0yLTEsIE9raW5vdWNoaQorCQkJCVNvbWEgY2l0eSBGdWt1c2hpbWEta2VuIDk3Ni04NTAxCisJCQkJSkFQQU4KKworMDAtMjQtMzQgICAoaGV4KQkJTGVjdHJvc29uaWNzLCBJbmMuCiswMDI0MzQgICAgIChiYXNlIDE2KQkJTGVjdHJvc29uaWNzLCBJbmMuCisJCQkJNTgxIExhc2VyIFJkLgorCQkJCVJpbyBSYW5jaG8gTk0gODcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTM1ICAgKGhleCkJCVdJREUgQ09SUE9SQVRJT04KKzAwMjQzNSAgICAgKGJhc2UgMTYpCQlXSURFIENPUlBPUkFUSU9OCisJCQkJTEVBREVSUyBUT1dFUiA3VEggRkwuLCBHT01BRS1ET05HLCBHSUhFVU5HLUdVCisJCQkJWU9OR0lOIEdZRU9OR0dJIDQ0Ni05MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtMzYgICAoaGV4KQkJQXBwbGUsIEluYworMDAyNDM2ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTM3ICAgKGhleCkJCU1vdG9yb2xhIC0gQlNHCiswMDI0MzcgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgLSBCU0cKKwkJCQkxMTAxIE1hcmluYSBWaWxsYWdlIFBrd3kKKwkJCQlTdGUgMjAwCisJCQkJQWxhbWVkYSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtMzggICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKzAwMjQzOCAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworCQkJCTE3NDUgVGVjaG5vbG9neSBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0zOSAgIChoZXgpCQlFc3NlbnRpYWwgVmlld2luZyBTeXN0ZW1zIExpbWl0ZWQKKzAwMjQzOSAgICAgKGJhc2UgMTYpCQlFc3NlbnRpYWwgVmlld2luZyBTeXN0ZW1zIExpbWl0ZWQKKwkJCQlIaWxsaW5ndG9uIFBhcmsgSW5ub3ZhdGlvbiBDZW50cmUKKwkJCQkxIEFpbnNsaWUgUm9hZAorCQkJCUdsYXNnb3cgUmVuZnJld3NoaXJlIEc1MiA0UlUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yNC0zQSAgIChoZXgpCQlMdWRsIEVsZWN0cm9uaWMgUHJvZHVjdHMKKzAwMjQzQSAgICAgKGJhc2UgMTYpCQlMdWRsIEVsZWN0cm9uaWMgUHJvZHVjdHMKKwkJCQkxNzEgQnJhZHkgQXZlCisJCQkJSGF3dGhvcm5lIE5ZIDEwNTMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0zQiAgIChoZXgpCQlDU1NJIChTKSBQdGUgTHRkCiswMDI0M0IgICAgIChiYXNlIDE2KQkJQ1NTSSAoUykgUHRlIEx0ZAorCQkJCTcwIEJlbmRlbWVlciBSb2FkIFVuaXQgMDQtMDQKKwkJCQkzMzk5NDAKKwkJCQlTSU5HQVBPUkUKKworMDAtMjQtM0MgICAoaGV4KQkJUy5BLkEuQS4KKzAwMjQzQyAgICAgKGJhc2UgMTYpCQlTLkEuQS5BLgorCQkJCVouQS4gQ3JvaXggU2FpbnQgTWF0aGlldQorCQkJCUdBTExBUkRPTiBFdXJlIGV0IExvaXIgMjgzMjAKKwkJCQlGUkFOQ0UKKworMDAtMjQtM0QgICAoaGV4KQkJRW1lcnNvbiBBcHBsaWFuY2UgTW90b3JzIGFuZCBDb250cm9scworMDAyNDNEICAgICAoYmFzZSAxNikJCUVtZXJzb24gQXBwbGlhbmNlIE1vdG9ycyBhbmQgQ29udHJvbHMKKwkJCQkxOTAxIFNvdXRoIFN0LgorCQkJCUVsZ2luIElMIDYwMTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC0zRiAgIChoZXgpCQlTdG9yd2l6ZSwgSW5jLgorMDAyNDNGICAgICAoYmFzZSAxNikJCVN0b3J3aXplLCBJbmMuCisJCQkJMTEgQWxhdGxlZiBTdC4KKwkJCQlZZWh1ZCAgNTYyMTYKKwkJCQlJU1JBRUwKKworMDAtMjQtNDAgICAoaGV4KQkJSGFsbyBNb25pdG9yaW5nLCBJbmMuCiswMDI0NDAgICAgIChiYXNlIDE2KQkJSGFsbyBNb25pdG9yaW5nLCBJbmMuCisJCQkJNTE1IFNwYXJrbWFuIERyLgorCQkJCUh1bnRzdmlsbGUgQUwgMzU4MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTQxICAgKGhleCkJCVdhbnpsIE1ldGFsbHdhcmVuZmFicmlrIEdtYkgKKzAwMjQ0MSAgICAgKGJhc2UgMTYpCQlXYW56bCBNZXRhbGx3YXJlbmZhYnJpayBHbWJICisJCQkJQnViZXNoZWltZXIgU3RyYXNzZSA0CisJCQkJTGVpcGhlaW0gQmF2YXJpYSA4OTM0MAorCQkJCUdFUk1BTlkKKworMDAtMjQtNDIgICAoaGV4KQkJQXhvbmEgTGltaXRlZAorMDAyNDQyICAgICAoYmFzZSAxNikJCUF4b25hIExpbWl0ZWQKKwkJCQkxNDggR3JlZW4gTGFuZQorCQkJCVN0LiBBbGJhbnMgSGVydHMgQUwzIDZFVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI0LTQzICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworMDAyNDQzICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCTIyMjEgTGFrZXNpZGUgQmx2ZAorCQkJCVJpY2hhcmRzb24gVFggNzUwODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTQ0ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyNDQ0ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPIEtZT1RPIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMjQtNDUgICAoaGV4KQkJTGlxdWlkeFN0cmVhbSBTeXN0ZW1zIEluYy4KKzAwMjQ0NSAgICAgKGJhc2UgMTYpCQlMaXF1aWR4U3RyZWFtIFN5c3RlbXMgSW5jLgorCQkJCTg0ODAgQm91bC4gRHUgR29sZgorCQkJCU1vbnRyZWFsIFF1ZWJlYyBIMUogM0ExCisJCQkJQ0FOQURBCisKKzAwLTI0LTQ2ICAgKGhleCkJCU1NQiBSZXNlYXJjaCBJbmMuCiswMDI0NDYgICAgIChiYXNlIDE2KQkJTU1CIFJlc2VhcmNoIEluYy4KKwkJCQkzNSBQcmluY2UgQXJ0aHVyIEF2ZS4KKwkJCQlUb3JvbnRvIE9udGFyaW8gTTVSIDFCMgorCQkJCUNBTkFEQQorCiswMC0yNC00NyAgIChoZXgpCQlLYXp0ZWsgU3lzdGVtcworMDAyNDQ3ICAgICAoYmFzZSAxNikJCUthenRlayBTeXN0ZW1zCisJCQkJMTcgQnJvbWZpZWxkIFJvYWQKKwkJCQlBY3RvbiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNDggICAoaGV4KQkJU3BpZGVyQ2xvdWQgV2lyZWxlc3MsIEluYworMDAyNDQ4ICAgICAoYmFzZSAxNikJCVNwaWRlckNsb3VkIFdpcmVsZXNzLCBJbmMKKwkJCQkzOTAwIEZyZWVkb20gQ2lyY2xlLCBTdWl0ZSAxMDQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNDkgICAoaGV4KQkJU2hlbiBaaGVuIExpdGUgU3RhciBFbGVjdHJvbmljcyBUZWNobm9sb2d5IENvLiwgTHRkCiswMDI0NDkgICAgIChiYXNlIDE2KQkJU2hlbiBaaGVuIExpdGUgU3RhciBFbGVjdHJvbmljcyBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJWGluZ2hvbmcgU2NpZW5jZSBQYXJrLDFzdCBJbmQuQXJlYSwKKwkJCQlGZW5naHVhbmdndWFuZywgWGl4aWFuZyxCYW9hbiBBcmVhCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODEwMgorCQkJCUNISU5BCisKKzAwLTI0LTRBICAgKGhleCkJCVZveWFudCBJbnRlcm5hdGlvbmFsCiswMDI0NEEgICAgIChiYXNlIDE2KQkJVm95YW50IEludGVybmF0aW9uYWwKKwkJCQk0NDQgQ2FzdHJvIFN0CisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNEIgICAoaGV4KQkJUEVSQ0VQVFJPTiBJTkMKKzAwMjQ0QiAgICAgKGJhc2UgMTYpCQlQRVJDRVBUUk9OIElOQworCQkJCTQ3ODI3IEhBTFlBUkQgRFIKKwkJCQlQTyAjQ0M2NzM0OAorCQkJCVBMWU1PVVRIIE1JIDQ4MTcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC00QyAgIChoZXgpCQlTb2xhcnRyb24gTWV0cm9sb2d5IEx0ZAorMDAyNDRDICAgICAoYmFzZSAxNikJCVNvbGFydHJvbiBNZXRyb2xvZ3kgTHRkCisJCQkJU3RleW5pbmcgV2F5CisJCQkJQm9nbm9yIFJlZ2lzIFdlc3QgU3Vzc2V4IFBPMjAgOVNUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjQtNEQgICAoaGV4KQkJSG9ra2FpZG8gRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KKzAwMjQ0RCAgICAgKGJhc2UgMTYpCQlIb2trYWlkbyBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorCQkJCTEtMSBFYXN0IDEwIE5vcnRoIDEwCisJCQkJSGlnYXNoaS1rdQorCQkJCVNhcHBvcm8gSG9ra2FpZG8gMDY1LTAwMTAKKwkJCQlKQVBBTgorCiswMC0yNC00RSAgIChoZXgpCQlSYWRDaGlwcywgSW5jLgorMDAyNDRFICAgICAoYmFzZSAxNikJCVJhZENoaXBzLCBJbmMuCisJCQkJNDIyIEVhc3QgVmVybWlqbyBBdmUuCisJCQkJU3VpdGUgNDAxCisJCQkJQ29sb3JhZG8gU3ByaW5ncyBDTyA4MDkwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtNEYgICAoaGV4KQkJQXNhbnRyb24gVGVjaG5vbG9naWVzIEx0ZC4KKzAwMjQ0RiAgICAgKGJhc2UgMTYpCQlBc2FudHJvbiBUZWNobm9sb2dpZXMgTHRkLgorCQkJCTNGLTEsIE5vLjMwIEppaGUgUmQuLCAxMTEKKwkJCQlTaGlobGluIERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTE2NgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtNTAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNDUwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTUxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjQ1MSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC01MiAgIChoZXgpCQlTaWxpY29uIFNvZnR3YXJlIEdtYkgKKzAwMjQ1MiAgICAgKGJhc2UgMTYpCQlTaWxpY29uIFNvZnR3YXJlIEdtYkgKKwkJCQlTdGV1YmVuc3RyLiA0NgorCQkJCU1hbm5oZWltIEJhZGVuLVfDvHJ0dGVtYmVyZyA2ODE2MworCQkJCUdFUk1BTlkKKworMDAtMjQtNTMgICAoaGV4KQkJSW5pdHJhIGQuby5vLgorMDAyNDUzICAgICAoYmFzZSAxNikJCUluaXRyYSBkLm8uby4KKwkJCQlTbG9tc2tvdmEgMzMKKwkJCQlManVibGphbmEgIDEwMDAKKwkJCQlTTE9WRU5JQQorCiswMC0yNC01NCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECiswMDI0NTQgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIExURAorCQkJCTQxNiwgTWFldGFuIDNEb25nLCBZZW9uZ3RvbmctR3UsCisJCQkJU3V3b24gR3llb25nZ2ktRG8gNDQzNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LTU1ICAgKGhleCkJCU11TG9naWMgQlYKKzAwMjQ1NSAgICAgKGJhc2UgMTYpCQlNdUxvZ2ljIEJWCisJCQkJT2xpdmllciB2YW4gTm9vcnRzdHJhYXQgNAorCQkJCVNjaGllZGFtIFpIIDMxMjRMQQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTI0LTU2ICAgKGhleCkJCTJXaXJlCiswMDI0NTYgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC01OCAgIChoZXgpCQlQQSBCYXN0aW9uIENDCiswMDI0NTggICAgIChiYXNlIDE2KQkJUEEgQmFzdGlvbiBDQworCQkJCTk3LCBsaXRlciBLLCBCdWRkeW9ubm92c2t5IGF2ZS4KKwkJCQlSb3N0b3Ytb24tRG9uICAzNDQwMTEKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjQtNTkgICAoaGV4KQkJQUJCIFNUT1RaLUtPTlRBS1QgR21iSAorMDAyNDU5ICAgICAoYmFzZSAxNikJCUFCQiBTVE9UWi1LT05UQUtUIEdtYkgKKwkJCQlFcHBlbGhlaW1lciBTdHJhw4PFuGUgODIKKwkJCQlTVE8vS0UxCisJCQkJSGVpZGVsYmVyZyAgNjkxMjMKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LTVBICAgKGhleCkJCU5hbmppbmcgUGFuZGEgRWxlY3Ryb25pY3MgQ29tcGFueSBMaW1pdGVkCiswMDI0NUEgICAgIChiYXNlIDE2KQkJTmFuamluZyBQYW5kYSBFbGVjdHJvbmljcyBDb21wYW55IExpbWl0ZWQKKwkJCQlaaG9uZ3NoYW4gRWFzdFJvYWQgMzAxLAorCQkJCU5BTkpJTkcgSklBTkdTVSAyMTAwMTYKKwkJCQlDSElOQQorCiswMC0yNC01QiAgIChoZXgpCQlSQUlET04gVEVDSE5PTE9HWSwgSU5DLgorMDAyNDVCICAgICAoYmFzZSAxNikJCVJBSURPTiBURUNITk9MT0dZLCBJTkMuCisJCQkJNEYtOCwgTk8uMTYsIExhbmUgNjA5LCBTZWMuNSwgQ2h1bmctSHNpbiBSZC4sCisJCQkJU2FuLUNodW5nIENpdHkgVGFpcGVpIGNvdW50eSwgMjQxNTkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTVDICAgKGhleCkJCURlc2lnbi1Db20gVGVjaG5vbG9naWVzIFB0eS4gTHRkLgorMDAyNDVDICAgICAoYmFzZSAxNikJCURlc2lnbi1Db20gVGVjaG5vbG9naWVzIFB0eS4gTHRkLgorCQkJCTE0IFJlZGxhbmQgRHJpdmUKKwkJCQlNaXRjaGFtIFZpY3RvcmlhIDMxMzIKKwkJCQlBVVNUUkFMSUEKKworMDAtMjQtNUQgICAoaGV4KQkJVGVyYmVyZyBiZXN0dXJpbmdzdGVjaG5pZWsgQi5WLgorMDAyNDVEICAgICAoYmFzZSAxNikJCVRlcmJlcmcgYmVzdHVyaW5nc3RlY2huaWVrIEIuVi4KKwkJCQlMYWdlIERpamstTm9vcmQgMworCQkJCUlKc3NlbHN0ZWluIFV0cmVjaHQgMzQwMSBWQQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTI0LTVFICAgKGhleCkJCUhpdmlzaW9uIENvLixsdGQKKzAwMjQ1RSAgICAgKGJhc2UgMTYpCQlIaXZpc2lvbiBDby4sbHRkCisJCQkJMjIwMS0yMjAyLCBDT0ZDTyBQcm9wZXJ0eSBUb3dlciwKKwkJCQkzcmQgQmFvJ2FuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwMQorCQkJCUNISU5BCisKKzAwLTI0LTVGICAgKGhleCkJCVZpbmUgVGVsZWNvbSBDTy4sTHRkLgorMDAyNDVGICAgICAoYmFzZSAxNikJCVZpbmUgVGVsZWNvbSBDTy4sTHRkLgorCQkJCTE5MS00LCA0RiwgQW55YW5nLWRvbmcsIE1hbmFuLWd1CisJCQkJQW55YW5nLXNpIEd5ZW9uZ2dpLWRvIDQzMC0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtNjAgICAoaGV4KQkJR2lhdmFsIFNjaWVuY2UgRGV2ZWxvcG1lbnQgQ28uIEx0ZC4KKzAwMjQ2MCAgICAgKGJhc2UgMTYpCQlHaWF2YWwgU2NpZW5jZSBEZXZlbG9wbWVudCBDby4gTHRkLgorCQkJCTU4IEJlaSBTaSBIdWFuIFhpIFJkCisJCQkJSWRlYWwgUGxhemEsIFN1aXRlIDQxMworCQkJCUJlaWppbmcgMTAwMDgwCisJCQkJQ0hJTkEKKworMDAtMjQtNjEgICAoaGV4KQkJU2hpbiBXYW5nIFRlY2guCiswMDI0NjEgICAgIChiYXNlIDE2KQkJU2hpbiBXYW5nIFRlY2guCisJCQkJNjMyLTYyLCBHdXJvLURvbmcsIEd1cm8tR3UKKwkJCQkxMDUtSG8sIEMtRG9uZywgR3Vyb2N1bGF0aW9uIERlcHQuCisJCQkJU2VvdWwgIDE1Mi04NjYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtNjIgICAoaGV4KQkJUmF5em9uZSBDb3Jwb3JhdGlvbgorMDAyNDYyICAgICAoYmFzZSAxNikJCVJheXpvbmUgQ29ycG9yYXRpb24KKwkJCQkjMjAwOCwgQi1Eb25nLCBTYW1obyBCTERHCisJCQkJWWFuZ2phZTItRG9uZywgU2VvY2hvLUd1CisJCQkJU2VvdWwgIDEzNy05NDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtNjMgICAoaGV4KQkJUGh5YnJpZGdlIEluYworMDAyNDYzICAgICAoYmFzZSAxNikJCVBoeWJyaWRnZSBJbmMKKwkJCQkzNDk1IExhaXJkIFJkIAorCQkJCVVuaXQgMTIKKwkJCQlNaXNzaXNzYXVnYSBPbnRhcmlvIEw1TDVTNQorCQkJCUNBTkFEQQorCiswMC0yNC02NCAgIChoZXgpCQlCcmlkZ2UgVGVjaG5vbG9naWVzIENvIEFTCiswMDI0NjQgICAgIChiYXNlIDE2KQkJQnJpZGdlIFRlY2hub2xvZ2llcyBDbyBBUworCQkJCU3DuGxsZXBhcmtlbiA0CisJCQkJT3NsbyAgMDQ1OQorCQkJCU5PUldBWQorCiswMC0yNC02NSAgIChoZXgpCQlFbGVudGVjCiswMDI0NjUgICAgIChiYXNlIDE2KQkJRWxlbnRlYworCQkJCTQwMS0xMyBDaHVuZ2d5ZS1SaSxEb25ndGFuLU15dW4KKwkJCQlId2FzdW5nIEt5dW5nZ2kgNDQ1LTgxMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC02NiAgIChoZXgpCQlVbml0cm9uIG52CiswMDI0NjYgICAgIChiYXNlIDE2KQkJVW5pdHJvbiBudgorCQkJCUZyYW5ya2lqa2xhYW4gMjcKKwkJCQlQb3BlcmluZ2UgVy12bCA4OTcwCisJCQkJQkVMR0lVTQorCiswMC0yNC02NyAgIChoZXgpCQlBT0MgSW50ZXJuYXRpb25hbCAoRXVyb3BlKSBHbWJICiswMDI0NjcgICAgIChiYXNlIDE2KQkJQU9DIEludGVybmF0aW9uYWwgKEV1cm9wZSkgR21iSAorCQkJCUxhaG5zdHJhc3NlIDg2QQorCQkJCUJlcmxpbiAgMTIwNTUKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LTY4ICAgKGhleCkJCVN1bWF2aXNpb24gVGVjaG5vbG9naWVzIENvLixMdGQKKzAwMjQ2OCAgICAgKGJhc2UgMTYpCQlTdW1hdmlzaW9uIFRlY2hub2xvZ2llcyBDby4sTHRkCisJCQkJNkYsIEJsb2NrIEEyLCBQb3dlciBDcmVhdGl2ZSBCdWlsZGluZyxOby4xIFNoYW5nZGkgRWFzdCBSb2FkLCBIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDAtMjQtNjkgICAoaGV4KQkJU21hcnQgRG9vcnBob25lcworMDAyNDY5ICAgICAoYmFzZSAxNikJCVNtYXJ0IERvb3JwaG9uZXMKKwkJCQlTcGlldmVsZHN0cmFhdCAyNAorCQkJCUxva2VyZW4gIDkxNjAKKwkJCQlCRUxHSVVNCisKKzAwLTI0LTZBICAgKGhleCkJCVNvbGlkIFllYXIgQ28uLCBMdGQuCiswMDI0NkEgICAgIChiYXNlIDE2KQkJU29saWQgWWVhciBDby4sIEx0ZC4KKwkJCQkyRi0xLCBOby4gOTQsIEJhby1jaHVuZyBSb2FkLAorCQkJCUhzaW4tdGllbiBDaXR5IFRhaXBlaSBIc2llbiAyMzE0NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtNkIgICAoaGV4KQkJQ292aWEsIEluYy4KKzAwMjQ2QiAgICAgKGJhc2UgMTYpCQlDb3ZpYSwgSW5jLgorCQkJCUJlbmV4IFMtMyBCbGRnLiwgMy0yMC04LCBTaGlueW9rb2hhbWEsS29ob2t1LWt1LAorCQkJCVlva29oYW1hLWNpdHkgS2FuYWdhd2EtcHJlZi4gMjIyLTAwMzMKKwkJCQlKQVBBTgorCiswMC0yNC02QyAgIChoZXgpCQlBUlVCQSBORVRXT1JLUywgSU5DLgorMDAyNDZDICAgICAoYmFzZSAxNikJCUFSVUJBIE5FVFdPUktTLCBJTkMuCisJCQkJMTM0NCBDcm9zc21hbiBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTZEICAgKGhleCkJCVdlaW56aWVybCBFbmdpbmVlcmluZyBHbWJICiswMDI0NkQgICAgIChiYXNlIDE2KQkJV2VpbnppZXJsIEVuZ2luZWVyaW5nIEdtYkgKKwkJCQlCYWhuaG9mc3RyLiA2CisJCQkJVHlybGFjaGluZyBCYXZhcmlhIDg0NTU4CisJCQkJR0VSTUFOWQorCiswMC0yNC02RSAgIChoZXgpCQlQaGlob25nIFVTQSBDb3JwLgorMDAyNDZFICAgICAoYmFzZSAxNikJCVBoaWhvbmcgVVNBIENvcnAuCisJCQkJNDc4MDAgRnJlbW9udCBCbHZkLgorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTZGICAgKGhleCkJCU9uZGEgQ29tbXVuaWNhdGlvbiBzcGEKKzAwMjQ2RiAgICAgKGJhc2UgMTYpCQlPbmRhIENvbW11bmljYXRpb24gc3BhCisJCQkJdmlhIGRlbCBsYXZvcm8gOQorCQkJCXBvcmRlbm9uZSAgMzMxNzAKKwkJCQlJVEFMWQorCiswMC0yNC03MCAgIChoZXgpCQlBVVJPVEVDSCB1bHRyYXNvdW5kIEFTLgorMDAyNDcwICAgICAoYmFzZSAxNikJCUFVUk9URUNIIHVsdHJhc291bmQgQVMuCisJCQkJU3ZpbmdlbiAxCisJCQkJVHlkYWwgU3ItVHIgTi03NTkwCisJCQkJTk9SV0FZCisKKzAwLTI0LTcxICAgKGhleCkJCUZ1c2lvbiBNdWx0aVN5c3RlbXMgZGJhIEZ1c2lvbi1pbworMDAyNDcxICAgICAoYmFzZSAxNikJCUZ1c2lvbiBNdWx0aVN5c3RlbXMgZGJhIEZ1c2lvbi1pbworCQkJCTYzNTAgUy4gMzAwMCBFLiwgNnRoIGZsb29yCisJCQkJU2FsdCBsYWtlIENpdHkgVVQgODQxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTcyICAgKGhleCkJCVJlRHJpdmVuIFBvd2VyIEluYy4KKzAwMjQ3MiAgICAgKGJhc2UgMTYpCQlSZURyaXZlbiBQb3dlciBJbmMuCisJCQkJMjRBIEJhdGggUmQuCisJCQkJSXJvcXVvaXMgT250YXJpbyBLMEUgMUswCisJCQkJQ0FOQURBCisKKzAwLTI0LTczICAgKGhleCkJCTNDb20gRXVyb3BlIEx0ZAorMDAyNDczICAgICAoYmFzZSAxNikJCTNDb20gRXVyb3BlIEx0ZAorCQkJCVBlb3BsZSBCdWlsZGluZyAyCisJCQkJTWF5bGFuZHMgQXZlbnVlCisJCQkJSGVtZWwgSGVtcHN0ZWFkIEhlcnRzLiBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjQtNzQgICAoaGV4KQkJQXV0cm9uaWNhIEZpcmUgQW5kIFNlY3VyaXJ0eQorMDAyNDc0ICAgICAoYmFzZSAxNikJCUF1dHJvbmljYSBGaXJlIEFuZCBTZWN1cmlydHkKKwkJCQlIYWFrb24gVklJJ3MgZy40CisJCQkJVHJvbmRoZWltIE4tNzQ4MworCQkJCU5PUldBWQorCiswMC0yNC03NSAgIChoZXgpCQlDb21wYXNzIFN5c3RlbShFbWJlZGRlZCBEZXB0LikKKzAwMjQ3NSAgICAgKGJhc2UgMTYpCQlDb21wYXNzIFN5c3RlbShFbWJlZGRlZCBEZXB0LikKKwkJCQkxNDAzIEFDRSBUZWNobm9Ub3dlciA4dGgKKwkJCQkxOTEtNywgR3Vyby1kb25nLCBHdXJvLUd1CisJCQkJU2VvdWwgIDE1Mi0wNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtNzYgICAoaGV4KQkJVEFQLnR2CiswMDI0NzYgICAgIChiYXNlIDE2KQkJVEFQLnR2CisJCQkJMTZ3MzYxIFNvdXRoIEZyb250YWdlIFJvYWQKKwkJCQlTdWl0ZSAxMjgKKwkJCQlCdXJyIFJpZGdlIElMIDYwNTI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC03NyAgIChoZXgpCQlUaWJibyBUZWNobm9sb2d5CiswMDI0NzcgICAgIChiYXNlIDE2KQkJVGliYm8gVGVjaG5vbG9neQorCQkJCTlGLTMsIE5vIDMxLCBMYW5lIDE2OSwgS2FuZy1OaW5nIFN0LiwKKwkJCQlIc2ktQ2hpaCBUYWlwZWkgSHNpZW4gMjIxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC03OCAgIChoZXgpCQlNYWcgVGVjaCBFbGVjdHJvbmljcyBDbyBMaW1pdGVkCiswMDI0NzggICAgIChiYXNlIDE2KQkJTWFnIFRlY2ggRWxlY3Ryb25pY3MgQ28gTGltaXRlZAorCQkJCUZsYXQgLyBSb29tIFQ3OCBHT0YgQmFuZ2tvayBCdWlsZGluZworCQkJCTE4IEJvbmhhbSBTdHJhbmQgV2VzdAorCQkJCVNoZXVuZyBXYW4gSEsgCisJCQkJSE9ORyBLT05HCisKKzAwLTI0LTc5ICAgKGhleCkJCU9wdGVjIERpc3BsYXlzLCBJbmMuCiswMDI0NzkgICAgIChiYXNlIDE2KQkJT3B0ZWMgRGlzcGxheXMsIEluYy4KKwkJCQk1MjggUy4gNnRoIEF2ZW51ZQorCQkJCUNpdHkgb2YgSW5kdXN0cnkgQ2FsaWZvcm5pYSA5MTc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtN0EgICAoaGV4KQkJRlUgWUkgQ0hFTkcgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMjQ3QSAgICAgKGJhc2UgMTYpCQlGVSBZSSBDSEVORyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTEzRiwgTm8uIDEwNS0xLCBKaWxpbiBSZC4sIEx1anUgU2hpYW5nLAorCQkJCVRhb3l1YW4gIDMzOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtN0IgICAoaGV4KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMgCiswMDI0N0IgICAgIChiYXNlIDE2KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMgCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC03QyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNDdDICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwVgorCQkJCURFTk1BUksKKworMDAtMjQtN0QgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjQ3RCAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjQtN0UgICAoaGV4KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQKKzAwMjQ3RSAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZAorCQkJCTE0MSwgTEFORSAzNTEsU0VDLjEsICBUQUlQSU5HIFJELgorCQkJCVRTQU9UVUVOCisJCQkJTkFOVE9VIDU0MjYxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC03RiAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMjQ3RiAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQkyMjIxIExha2VzaWRlIEJsdmQKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgyLTQzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTgwICAgKGhleCkJCU1ldGVvY29udHJvbCBHbWJICiswMDI0ODAgICAgIChiYXNlIDE2KQkJTWV0ZW9jb250cm9sIEdtYkgKKwkJCQlTcGljaGVyZXJzdHJhc3NlIDQ4CisJCQkJQXVnc2J1cmcgQmF2YXJpYSA4NjE1MgorCQkJCUdFUk1BTlkKKworMDAtMjQtODEgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzAwMjQ4MSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTIwNTU1IFN0YXRlIEhpZ2h3YXkgMjQ5CisJCQkJTVMwNDA4MDIKKwkJCQlIb3VzdG9uIFRYIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC04MiAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzAwMjQ4MiAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC04MyAgIChoZXgpCQlMRyBFbGVjdHJvbmljcworMDAyNDgzICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzCisJCQkJNjAtMzksS2FzYW4tZG9uZyxLdW1jaG9uLWt1LAorCQkJCVNlb3VsICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI0LTg0ICAgKGhleCkJCUJhbmcgYW5kIE9sdWZzZW4gTWVkaWNvbSBhL3MKKzAwMjQ4NCAgICAgKGJhc2UgMTYpCQlCYW5nIGFuZCBPbHVmc2VuIE1lZGljb20gYS9zCisJCQkJR2ltc2luZ2x1bmR2ZWogMjAKKwkJCQlTdHJ1ZXIgREsgREs3NjAwCisJCQkJREVOTUFSSworCiswMC0yNC04NSAgIChoZXgpCQlDb250ZVh0cmVhbSBMdGQKKzAwMjQ4NSAgICAgKGJhc2UgMTYpCQlDb250ZVh0cmVhbSBMdGQKKwkJCQk5NCBFbS1IYU1vc2hhdm90CisJCQkJUE9CIDMyNDYKKwkJCQlQZXRhY2gtVGlrdmEgIDQ5NTI3CisJCQkJSVNSQUVMCisKKzAwLTI0LTg2ICAgKGhleCkJCURlc2lnbkFydCBOZXR3b3JrcworMDAyNDg2ICAgICAoYmFzZSAxNikJCURlc2lnbkFydCBOZXR3b3JrcworCQkJCTQgSGEnaGFyb3NoZXQgU3QKKwkJCQlQLk8uIEJveCAyMjc4CisJCQkJUmEnYW5hbmEgIDQzMTAxCisJCQkJSVNSQUVMCisKKzAwLTI0LTg3ICAgKGhleCkJCUJsYWNrYm9hcmQgSW5jLgorMDAyNDg3ICAgICAoYmFzZSAxNikJCUJsYWNrYm9hcmQgSW5jLgorCQkJCTIyNjAxIE5vcnRoIDE5dGggQXZlbnVlCisJCQkJU3VpdGUgMjAwCisJCQkJUGhvZW5peCBBWiA4NTAyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtODggICAoaGV4KQkJQ2VudHJlIEZvciBEZXZlbG9wbWVudCBPZiBUZWxlbWF0aWNzCiswMDI0ODggICAgIChiYXNlIDE2KQkJQ2VudHJlIEZvciBEZXZlbG9wbWVudCBPZiBUZWxlbWF0aWNzCisJCQkJQjAxLCBFbGVjdHJvbmljIENpdHksIFBoYXNlIDEKKwkJCQlIb3N1ciBSb2FkCisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAxMDAKKwkJCQlJTkRJQQorCiswMC0yNC04OSAgIChoZXgpCQlWb2RhZm9uZSBPbW5pdGVsIE4uVi4KKzAwMjQ4OSAgICAgKGJhc2UgMTYpCQlWb2RhZm9uZSBPbW5pdGVsIE4uVi4KKwkJCQlWaWEgSmVydmlzIDEzCisJCQkJMTAwMTUgSXZyZWEgVG9yaW5vCisJCQkJSVRBTFkKKworMDAtMjQtOEEgICAoaGV4KQkJS2FnYSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzAwMjQ4QSAgICAgKGJhc2UgMTYpCQlLYWdhIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCUhvbmdvIDItMi05CisJCQkJQnVua3lvLWt1CisJCQkJVG9reW8gMTEzLTg1MDMKKwkJCQlKQVBBTgorCiswMC0yNC04QiAgIChoZXgpCQlIWUJVUyBDTy4sIExURC4KKzAwMjQ4QiAgICAgKGJhc2UgMTYpCQlIWUJVUyBDTy4sIExURC4KKwkJCQlSbSMgNzAxLCBEYWVydW5nIFBvc3QgVG93ZXIgMXN0CisJCQkJMjEyLTgsIEd1cm8tM2RvbmcsIEd1cm8tZ3UKKwkJCQlTRU9VTCAgMTUyLTc5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC04QyAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzAwMjQ4QyAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91LAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNC04RCAgIChoZXgpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgSW5jLgorMDAyNDhEICAgICAoYmFzZSAxNikJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBJbmMuCisJCQkJMi02LTIxIE1pbmFtaS1Bb3lhbWEsCisJCQkJTWluYXRvLWt1IFRva3lvIDEwNy0wMDYyCisJCQkJSkFQQU4KKworMDAtMjQtOEUgICAoaGV4KQkJSW5mb3dhcmUgWlJ0LgorMDAyNDhFICAgICAoYmFzZSAxNikJCUluZm93YXJlIFpSdC4KKwkJCQlIdXNlZyB1LiAxMC9hCisJCQkJQnVkYXBlc3QgIDEyMjMKKwkJCQlIVU5HQVJZCisKKzAwLTI0LThGICAgKGhleCkJCURPLU1PTklYCiswMDI0OEYgICAgIChiYXNlIDE2KQkJRE8tTU9OSVgKKwkJCQkjNTAxLCBLb3JlYW5hIEIvRAorCQkJCTctNSwgU3VuYWUtZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDgyCisJCQkJS09SRUEsIERFTU9DUkFUSUMgUEVPUExFJ1MgUkVQVUJMSQorCiswMC0yNC05MCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMVEQKKzAwMjQ5MCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMVEQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtOTEgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworMDAyNDkxICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtOTIgICAoaGV4KQkJTW90b3JvbGEsIEJyb2FkYmFuZCBTb2x1dGlvbnMgR3JvdXAKKzAwMjQ5MiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSwgQnJvYWRiYW5kIFNvbHV0aW9ucyBHcm91cAorCQkJCTExMDEgTWFyaW5hIFZpbGxhZ2UgUGFya3dheQorCQkJCVN1aXRlIDIwMAorCQkJCUFsYW1lZGEgQ0EgOTQ1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTkzICAgKGhleCkJCU1vdG9yb2xhLCBJbmMKKzAwMjQ5MyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSwgSW5jCisJCQkJMTEwMSBNYXJpbmEgVmlsbGFnZSBQYXJrd2F5CisJCQkJU3VpdGUgMjAwCisJCQkJQWxhbWVkYSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtOTQgICAoaGV4KQkJU2hlbnpoZW4gQmFveGluIFRlY2ggQ08uLCBMdGQuCiswMDI0OTQgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQmFveGluIFRlY2ggQ08uLCBMdGQuCisJCQkJNkYgSHVhbGUgQkxERy4sIFpob25naGFuZ2JlaSBSZC4sCisJCQkJRnV0aWFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDUxODAyOAorCQkJCUNISU5BCisKKzAwLTI0LTk1ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDI0OTUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gVS5TLiBIaWdod2F5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElsbGlub2lzIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC05NiAgIChoZXgpCQlHaW56aW5nZXIgZWxlY3Ryb25pYyBzeXN0ZW1zCiswMDI0OTYgICAgIChiYXNlIDE2KQkJR2luemluZ2VyIGVsZWN0cm9uaWMgc3lzdGVtcworCQkJCUdld2VyYmVnZWJpZXQgUGlyYXRoIDE2CisJCQkJV2VuZyBVcHBlciBBdXN0cmlhIDQ5NTIKKwkJCQlBVVNUUklBCisKKzAwLTI0LTk3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjQ5NyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC05OCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI0OTggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtOTkgICAoaGV4KQkJQXF1aWxhIFRlY2hub2xvZ2llcworMDAyNDk5ICAgICAoYmFzZSAxNikJCUFxdWlsYSBUZWNobm9sb2dpZXMKKwkJCQk4NDI5QSBXYXNoaW5ndG9uIFBsYWNlIE5FCisJCQkJQWxidXF1ZXJxdWUgTk0gODcxMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LTlBICAgKGhleCkJCUJlaWppbmcgWmhvbmdjaHVhbmcgVGVsZWNvbW11bmljYXRpb24gVGVzdCBDby4sIEx0ZC4KKzAwMjQ5QSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFpob25nY2h1YW5nIFRlbGVjb21tdW5pY2F0aW9uIFRlc3QgQ28uLCBMdGQuCisJCQkJMTItMTQsQmxvY2sgQyxCZWlqaW5nIEludGVybmF0aW9uYWwgQnVpbGRpbmcsIzE4LFpob25nIEd1YW4gQ3VuIE5hbiBSb2FkLAorCQkJCUhhaSBEaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgxCisJCQkJQ0hJTkEKKworMDAtMjQtOUIgICAoaGV4KQkJQWN0aW9uIFN0YXIgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKzAwMjQ5QiAgICAgKGJhc2UgMTYpCQlBY3Rpb24gU3RhciBFbnRlcnByaXNlIENvLiwgTHRkLgorCQkJCTEwRiwgTm8uMTU5LCBUYS1UdW5nIFJkLiwgU2VjLjIKKwkJCQlIc2ljaGloIFRhaXBlaSBIc2llbiAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LTlDICAgKGhleCkJCUJpbWVuZyBDb211bmljYXRpb24gU3lzdGVtIENvLiBMdGQKKzAwMjQ5QyAgICAgKGJhc2UgMTYpCQlCaW1lbmcgQ29tdW5pY2F0aW9uIFN5c3RlbSBDby4gTHRkCisJCQkJTGV2ZWwgMTYvZiwgVG93ZXIgQixTaW5vdHJhbnMgUGxhemEsTm8uNDMsIFhpIFpoaSBNZW4gTm9ydGhlcm4gUm9hZCxIYWkgZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA0NAorCQkJCUNISU5BCisKKzAwLTI0LTlEICAgKGhleCkJCU5FUyBUZWNobm9sb2d5IEluYy4KKzAwMjQ5RCAgICAgKGJhc2UgMTYpCQlORVMgVGVjaG5vbG9neSBJbmMuCisJCQkJIzIwNSBBQ0UgVGVjaG5vdG93ZXIgMTAsIDQ3MC01IEdhc2FuLWRvbmcKKwkJCQlHZXVtY2hlb24tZ3UKKwkJCQlTZW91bCAgMTUzLTc4OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC05RSAgIChoZXgpCQlBREMtRWxla3Ryb25payBHbWJICiswMDI0OUUgICAgIChiYXNlIDE2KQkJQURDLUVsZWt0cm9uaWsgR21iSAorCQkJCcOD4oCTc3RpbmdzdHJhw4PFuGUgMTNiCisJCQkJSGFtbSBOUlcgRC01OTA2MworCQkJCUdFUk1BTlkKKworMDAtMjQtOUYgICAoaGV4KQkJUklNIFRlc3RpbmcgU2VydmljZXMKKzAwMjQ5RiAgICAgKGJhc2UgMTYpCQlSSU0gVGVzdGluZyBTZXJ2aWNlcworCQkJCTQ0MCBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDVSOQorCQkJCUNBTkFEQQorCiswMC0yNC1BMCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyNEEwICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQTEgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjRBMSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUEyICAgKGhleCkJCUhvbmcgS29uZyBNaWRkbGV3YXJlIFRlY2hub2xvZ3kgTGltaXRlZAorMDAyNEEyICAgICAoYmFzZSAxNikJCUhvbmcgS29uZyBNaWRkbGV3YXJlIFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCVJvb20gMTMxNSAsTGVpZ2h0b24gQ2VudHJlLDc3IExlaWdodG9uIFJvYWQKKwkJCQlDYXVzZXdheSBCYXkgIDg1MgorCQkJCUhPTkcgS09ORworCiswMC0yNC1BMyAgIChoZXgpCQlTb25pbSBUZWNobm9sb2dpZXMgSW5jCiswMDI0QTMgICAgIChiYXNlIDE2KQkJU29uaW0gVGVjaG5vbG9naWVzIEluYworCQkJCTE4NzUgUy5HcmFudCBTdHJlZXQKKwkJCQlTdGUjNjIwCisJCQkJU2FubWF0ZW8gQ0EgOTQ0MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUE0ICAgKGhleCkJCVNpa2x1IENvbW11bmljYXRpb24KKzAwMjRBNCAgICAgKGJhc2UgMTYpCQlTaWtsdSBDb21tdW5pY2F0aW9uCisJCQkJNyBTaG9oYW0gU3QuLCAsIDNyZCBGbG9vcgorCQkJCVBldGFoIFRpa3ZhICA0OTUxNworCQkJCUlTUkFFTAorCiswMC0yNC1BNSAgIChoZXgpCQlCdWZmYWxvIEluYy4KKzAwMjRBNSAgICAgKGJhc2UgMTYpCQlCdWZmYWxvIEluYy4KKwkJCQkxNSwgU2hpYmF0YSBIb25kb3JpIDQtY2hvbWUKKwkJCQlNaW5hbWkta3UsTmFnb3lhIEFpY2hpIFByZWYuIDQ1Ny04NTIwCisJCQkJSkFQQU4KKworMDAtMjQtQTYgICAoaGV4KQkJVEVMRVNUQVIgRElHSVRBTCBHbWJICiswMDI0QTYgICAgIChiYXNlIDE2KQkJVEVMRVNUQVIgRElHSVRBTCBHbWJICisJCQkJVnVsa2FuaMO2aGUgLyBCNDEwCisJCQkJRHJlaXMgLSBCcsO8Y2sgIDU0NTUyCisJCQkJR0VSTUFOWQorCiswMC0yNC1BNyAgIChoZXgpCQlBZHZhbmNlZCBWaWRlbyBDb21tdW5pY2F0aW9ucyBJbmMuCiswMDI0QTcgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgVmlkZW8gQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTYzMyBXIDV0aCBTdHJlZXQKKwkJCQk2ODAwCisJCQkJTG9zIEFuZ2VsZXMgQ0EgOTAwMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUE4ICAgKGhleCkJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKzAwMjRBOCAgICAgKGJhc2UgMTYpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCisJCQkJODAwMCBGb290aGlsbHMgQmx2ZAorCQkJCVJvc2V2aWxsZSBDYWxpZm9ybmlhIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1BOSAgIChoZXgpCQlBZyBMZWFkZXIgVGVjaG5vbG9neQorMDAyNEE5ICAgICAoYmFzZSAxNikJCUFnIExlYWRlciBUZWNobm9sb2d5CisJCQkJMjIwMiBTIFJpdmVyc2lkZSBEci4KKwkJCQlQTyBCb3ggMjM0OAorCQkJCUFtZXMgSUEgNTAwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUFBICAgKGhleCkJCUR5Y29yIFRlY2hub2xvZ2llcyBMdGQuCiswMDI0QUEgICAgIChiYXNlIDE2KQkJRHljb3IgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQkxODUxIDk0IFN0cmVldAorCQkJCUVkbW9udG9uIEFsYmVydGEgVDZOIDFFNgorCQkJCUNBTkFEQQorCiswMC0yNC1BQiAgIChoZXgpCQlBNyBFbmdpbmVlcmluZywgSW5jLgorMDAyNEFCICAgICAoYmFzZSAxNikJCUE3IEVuZ2luZWVyaW5nLCBJbmMuCisJCQkJMTIxMjcgS2lya2hhbSBSb2FkIFN1aXRlIDEwMQorCQkJCVBvd2F5IENBIDkyMDY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1BQyAgIChoZXgpCQlIYW5nemhvdSBEUHRlY2ggVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAyNEFDICAgICAoYmFzZSAxNikJCUhhbmd6aG91IERQdGVjaCBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJSHVhcm9uZyBTaGlkYWkgQmxkLiwgTk8uMzg4MCxKaWFuZy1OYW4gQXZlbnVlLCBCaW5qaWFuZyBEaXN0cmljdAorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDA1MQorCQkJCUNISU5BCisKKzAwLTI0LUFEICAgKGhleCkJCUFkb2xmIFRoaWVzIEdtYmggJiBDby4gS0cKKzAwMjRBRCAgICAgKGJhc2UgMTYpCQlBZG9sZiBUaGllcyBHbWJoICYgQ28uIEtHCisJCQkJSGF1cHRzdHIuIDc2CisJCQkJR8O2dHRpbmdlbiAgMzcwODMKKwkJCQlHRVJNQU5ZCisKKzAwLTI0LUFFICAgKGhleCkJCU1vcnBobworMDAyNEFFICAgICAoYmFzZSAxNikJCU1vcnBobworCQkJCTE4IGNoYXVzc2VlIEp1bGVzIENlc2FyCisJCQkJT1NOWSAgOTU1MjAKKwkJCQlGUkFOQ0UKKworMDAtMjQtQUYgICAoaGV4KQkJRWNob1N0YXIgVGVjaG5vbG9naWVzCiswMDI0QUYgICAgIChiYXNlIDE2KQkJRWNob1N0YXIgVGVjaG5vbG9naWVzCisJCQkJOTQgSW52ZXJuZXNzIENpcmNsZQorCQkJCUVuZ2xld29vZCBDTyA4MDExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQjAgICAoaGV4KQkJRVNBQiBBQgorMDAyNEIwICAgICAoYmFzZSAxNikJCUVTQUIgQUIKKwkJCQlCb3ggODAwNAorCQkJCUxpbmRob2xtc2FsbMOpbiA5CisJCQkJR290aGVuYnVyZyAgU0UtNDAyIDc3CisJCQkJU1dFREVOCisKKzAwLTI0LUIxICAgKGhleCkJCUNvdWxvbWIgVGVjaG5vbG9naWVzCiswMDI0QjEgICAgIChiYXNlIDE2KQkJQ291bG9tYiBUZWNobm9sb2dpZXMKKwkJCQkxNjkyIERlbGwgQXZlCisJCQkJQ2FtcGJlbGwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUIyICAgKGhleCkJCU5ldGdlYXIKKzAwMjRCMiAgICAgKGJhc2UgMTYpCQlOZXRnZWFyCisJCQkJMzUwIEVhc3QgUGx1bWVyaWEgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQjMgICAoaGV4KQkJR3JhZi1TeXRlY28gR21iSCAmIENvLiBLRworMDAyNEIzICAgICAoYmFzZSAxNikJCUdyYWYtU3l0ZWNvIEdtYkggJiBDby4gS0cKKwkJCQlLYWlzZXJzdHIuIDE4CisJCQkJVHVuaW5nZW4gQmFkZW4tV8O8cnR0ZW1iZXJnIDc4NjA5CisJCQkJR0VSTUFOWQorCiswMC0yNC1CNCAgIChoZXgpCQlFU0NBVFJPTklDIEdtYkgKKzAwMjRCNCAgICAgKGJhc2UgMTYpCQlFU0NBVFJPTklDIEdtYkgKKwkJCQlXdWVyemJ1cmdlciBTdHIuIDgKKwkJCQlMYWF0emVuIExvd2VyIFNheG9ueSAzMDg4MAorCQkJCUdFUk1BTlkKKworMDAtMjQtQjUgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDI0QjUgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJMjIyMSBMYWtlc2lkZSBCbHZkCisJCQkJUmljaGFyZHNvbiBUWCA3NTA4Mi00Mzk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1CNiAgIChoZXgpCQlTZWFnYXRlIFRlY2hub2xvZ3kKKzAwMjRCNiAgICAgKGJhc2UgMTYpCQlTZWFnYXRlIFRlY2hub2xvZ3kKKwkJCQkxMjgwIERpc2MgRHJpdmUKKwkJCQlTaGFrb3BlZSBNTiA1NTM3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQjcgICAoaGV4KQkJR3JpZFBvaW50LCBJbmMuCiswMDI0QjcgICAgIChiYXNlIDE2KQkJR3JpZFBvaW50LCBJbmMuCisJCQkJMjgwMSBDbGFyZW5kb24gQmx2ZC4KKwkJCQlTdWl0ZSAxMDAKKwkJCQlBcmxpbmd0b24gVkEgMjIyMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUI4ICAgKGhleCkJCWZyZWUgYWxsaWFuY2Ugc2RuIGJoZAorMDAyNEI4ICAgICAoYmFzZSAxNikJCWZyZWUgYWxsaWFuY2Ugc2RuIGJoZAorCQkJCUItMy0yIFBsYXphIERhbWFzCisJCQkJU3JpIEhhcnRhbWFzCisJCQkJS3VhbGEgTHVtcHVyIFdQIDUwNDgwCisJCQkJTUFMQVlTSUEKKworMDAtMjQtQjkgICAoaGV4KQkJV3VoYW4gSGlnaGVhc3kgRWxlY3Ryb25pYyBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLkx0ZAorMDAyNEI5ICAgICAoYmFzZSAxNikJCVd1aGFuIEhpZ2hlYXN5IEVsZWN0cm9uaWMgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDby5MdGQKKwkJCQlCbGRnIEEyIE9wdGljcyBWYWxsZXkgU29mdHdhcmUgUGFyayxHdWFuc2hhbiAxc3QgUmQsCisJCQkJV3VoYW4gSHViZWkgNDMwMDMzCisJCQkJQ0hJTkEKKworMDAtMjQtQkEgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzAwMjRCQSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVMgODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQkIgICAoaGV4KQkJQ0VOVFJBTCBDb3Jwb3JhdGlvbgorMDAyNEJCICAgICAoYmFzZSAxNikJCUNFTlRSQUwgQ29ycG9yYXRpb24KKwkJCQlOSVNTTyAxNyBCbGRnLjdGIDItMTQtMzAKKwkJCQlTaGlueW9rb2hhbWEgS291aG9rdS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyMi0wMDMzCisJCQkJSkFQQU4KKworMDAtMjQtQkMgICAoaGV4KQkJSHVSb2IgQ28uLEx0ZAorMDAyNEJDICAgICAoYmFzZSAxNikJCUh1Um9iIENvLixMdGQKKwkJCQkyMTIxLCBKZW9uZ3dhbmctRG9uZworCQkJCVNpaGV1bmctU2kgR3llb25nZ2ktRG8gNDI5LTc5MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNC1CRCAgIChoZXgpCQlIYWluemwgSW5kdXN0cmllc3lzdGVtZSBHbWJICiswMDI0QkQgICAgIChiYXNlIDE2KQkJSGFpbnpsIEluZHVzdHJpZXN5c3RlbWUgR21iSAorCQkJCUluZHVzdHJpZXplaWxlIDU2CisJCQkJUG9zdGZhY2ggMTAwCisJCQkJTGlueiBVcHBlciBBdXN0cmlhIDQwMjEKKwkJCQlBVVNUUklBCisKKzAwLTI0LUJFICAgKGhleCkJCVNvbnkgQ29ycG9yYXRpb24KKzAwMjRCRSAgICAgKGJhc2UgMTYpCQlTb255IENvcnBvcmF0aW9uCisJCQkJR290ZW55YW1hIFRlYy4gNS0xLTEyCisJCQkJS2l0YXNoaW5hZ2F3YQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAwMQorCQkJCUpBUEFOCisKKzAwLTI0LUJGICAgKGhleCkJCUNJQVQKKzAwMjRCRiAgICAgKGJhc2UgMTYpCQlDSUFUCisJCQkJMzAsIEF2ZW51ZSBKZWFuIEZhbGNvbm5pZXIKKwkJCQlDdWxveiAgMDEzNTAKKwkJCQlGUkFOQ0UKKworMDAtMjQtQzAgICAoaGV4KQkJTlRJIENPTU9ETyBJTkMKKzAwMjRDMCAgICAgKGJhc2UgMTYpCQlOVEkgQ09NT0RPIElOQworCQkJCVJtIzUwMiwgS2FuZ3lvbmcgQmxkZywgU3VuZ25hbS1kb25nCisJCQkJQ2hldW5nd29uLWd1CisJCQkJU3VuZ25hbS1zaSBLeXVuZ2dpLWRvIDQ2Mi04MjcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtQzEgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjRDMSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCU5vLjExODcgQmluQW4gUm9hZCwgQmluamlhbmcgRGlzdHJpY3QsCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDUzCisJCQkJQ0hJTkEKKworMDAtMjQtQzIgICAoaGV4KQkJQXN1bW8gQ28uLEx0ZC4KKzAwMjRDMiAgICAgKGJhc2UgMTYpCQlBc3VtbyBDby4sTHRkLgorCQkJCU95YS1LaXRhIDEtMy0xCisJCQkJRUJJTkEtQ0lUWSBLQU5BR0FXQS1QUkVGLiAyNDMtMDQxOQorCQkJCUpBUEFOCisKKzAwLTI0LUMzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjRDMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1DNCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI0QzQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQzUgICAoaGV4KQkJTWVyaWRpYW4gQXVkaW8gTGltaXRlZAorMDAyNEM1ICAgICAoYmFzZSAxNikJCU1lcmlkaWFuIEF1ZGlvIExpbWl0ZWQKKwkJCQkxMSBMYXRoYW0gUm9hZAorCQkJCUh1bnRpbmdkb24gQ2FtYnMgUEUyOSA2WUUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yNC1DNiAgIChoZXgpCQlIYWdlciBFbGVjdHJvIFNBUworMDAyNEM2ICAgICAoYmFzZSAxNikJCUhhZ2VyIEVsZWN0cm8gU0FTCisJCQkJMTMyLCBib3VsZXZhcmQgZCdFdXJvcGUKKwkJCQlPYmVybmFpIEJhcy1SaGluIDY3MjE1CisJCQkJRlJBTkNFCisKKzAwLTI0LUM3ICAgKGhleCkJCU1vYmlsYXJtIEx0ZAorMDAyNEM3ICAgICAoYmFzZSAxNikJCU1vYmlsYXJtIEx0ZAorCQkJCTc2OCBDYW5uaW5nIEhpZ2h3YXkKKwkJCQlBcHBsZWNyb3NzCisJCQkJV2VzdGVybiBBdXN0cmFsaWEgNjE1MworCQkJCUFVU1RSQUxJQQorCiswMC0yNC1DOCAgIChoZXgpCQlCcm9hZGJhbmQgU29sdXRpb25zIEdyb3VwCiswMDI0QzggICAgIChiYXNlIDE2KQkJQnJvYWRiYW5kIFNvbHV0aW9ucyBHcm91cAorCQkJCTExMDEgTWFyaW5hIFZpbGxhZ2UgUGFya3dheQorCQkJCUFsYW1lZGEgQ0EgOTQ1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUM5ICAgKGhleCkJCUJyb2FkYmFuZCBTb2x1dGlvbnMgR3JvdXAKKzAwMjRDOSAgICAgKGJhc2UgMTYpCQlCcm9hZGJhbmQgU29sdXRpb25zIEdyb3VwCisJCQkJMTEwMSBNYXJpbmEgVmlsbGFnZSBQYXJrd2F5CisJCQkJQWxhbWVkYSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQ0EgICAoaGV4KQkJVG9iaWkgVGVjaG5vbG9neSBBQgorMDAyNENBICAgICAoYmFzZSAxNikJCVRvYmlpIFRlY2hub2xvZ3kgQUIKKwkJCQlLYXJsc3JvdsOkZ2VuIDJECisJCQkJRGFuZGVyeWQgIDE4MjUzCisJCQkJU1dFREVOCisKKzAwLTI0LUNCICAgKGhleCkJCUF1dG9uZXQgTW9iaWxlCiswMDI0Q0IgICAgIChiYXNlIDE2KQkJQXV0b25ldCBNb2JpbGUKKwkJCQkyMjM1IE1lcmN1cnkgV2F5IFN0ZS4gMTQ1CisJCQkJU2FudGEgUm9zYSBDQSA5NTQwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtQ0MgICAoaGV4KQkJRmFzY2luYXRpb25zIFRveXMgYW5kIEdpZnRzLCBJbmMuCiswMDI0Q0MgICAgIChiYXNlIDE2KQkJRmFzY2luYXRpb25zIFRveXMgYW5kIEdpZnRzLCBJbmMuCisJCQkJMTkyMjQgRGVzIE1vaW5lcyBXYXkgUworCQkJCVN0ZSAxMDAKKwkJCQlTZWF0dGxlIFdhc2hpbmd0b24gOTgxNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUNEICAgKGhleCkJCVdpbGxvdyBHYXJhZ2UsIEluYy4KKzAwMjRDRCAgICAgKGJhc2UgMTYpCQlXaWxsb3cgR2FyYWdlLCBJbmMuCisJCQkJNjggV2lsbG93IFJkLgorCQkJCU1lbmxvIFBhcmsgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUNFICAgKGhleCkJCUV4ZWx0ZWNoIEluYworMDAyNENFICAgICAoYmFzZSAxNikJCUV4ZWx0ZWNoIEluYworCQkJCTczMTcgSmFjayBOZXdlbGwgQmx2ZCBOb3J0aAorCQkJCUZvcnQgV29ydGggVFggNzYxMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUNGICAgKGhleCkJCUluc2NhcGUgRGF0YSBDb3Jwb3JhdGlvbgorMDAyNENGICAgICAoYmFzZSAxNikJCUluc2NhcGUgRGF0YSBDb3Jwb3JhdGlvbgorCQkJCTE2MTEgU291dGggTWFpbiBTdHJlZXQKKwkJCQlNaWxwaXRhcyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRDAgICAoaGV4KQkJU2hlbnpoZW4gU09HT09EIEluZHVzdHJ5IENPLixMVEQuCiswMDI0RDAgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gU09HT09EIEluZHVzdHJ5IENPLixMVEQuCisJCQkJU09HT09EIFNjaWVuY2UgUGFyayxBdmlhdGlvbiBSb2FkLFhpWGlhbmcgVG93bixCYW8nYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmd6aG91IDUxODEwMgorCQkJCUNISU5BCisKKzAwLTI0LUQxICAgKGhleCkJCVRob21zb24gSW5jLgorMDAyNEQxICAgICAoYmFzZSAxNikJCVRob21zb24gSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRDIgICAoaGV4KQkJQXNrZXkgQ29tcHV0ZXIKKzAwMjREMiAgICAgKGJhc2UgMTYpCQlBc2tleSBDb21wdXRlcgorCQkJCTEwRixOTy4xMTksQ0hJRU5LQU5HIFJELENIVU5HLUhPLFRBSVBFSSwKKwkJCQlUQUlXQU4gVEFJUEVJIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjQtRDMgICAoaGV4KQkJUVVBTElDQSBJbmMuCiswMDI0RDMgICAgIChiYXNlIDE2KQkJUVVBTElDQSBJbmMuCisJCQkJNS0yOS0xNSxUb3lvLAorCQkJCUtvdG8ta3UsCisJCQkJVG9reW8gIDEzNS0wMDE2CisJCQkJSkFQQU4KKworMDAtMjQtRDQgICAoaGV4KQkJRlJFRUJPWCBTQQorMDAyNEQ0ICAgICAoYmFzZSAxNikJCUZSRUVCT1ggU0EKKwkJCQk4IHJ1ZSBkZSBsYSBWaWxsZSBsJ0V2ZXF1ZQorCQkJCVBBUklTIElkRiA3NTAwOAorCQkJCUZSQU5DRQorCiswMC0yNC1ENSAgIChoZXgpCQlXaW53YXJkIEluZHVzdHJpYWwgTGltaXRlZAorMDAyNEQ1ICAgICAoYmFzZSAxNikJCVdpbndhcmQgSW5kdXN0cmlhbCBMaW1pdGVkCisJCQkJUm0uNywgUCBGbG9vciwgVG93ZXIgQSwKKwkJCQlIdW5nIEhvbSBDb21tZXJjaWFsIENlbnRyZSwKKwkJCQlIb25nS29uZyAgODUyCisJCQkJQ0hJTkEKKworMDAtMjQtRDYgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDI0RDYgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yNC1ENyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjRENyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTI0LUQ4ICAgKGhleCkJCUlsU3VuZyBQcmVjaXNpb24KKzAwMjREOCAgICAgKGJhc2UgMTYpCQlJbFN1bmcgUHJlY2lzaW9uCisJCQkJMTgyLTIsIEplZ2ktcmksIEplb25nbmFtLW15ZW9uCisJCQkJSHdhbnNlb25nLXNpIEd5ZW9uZ2dpLWRvIDQ0NS05NjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtRDkgICAoaGV4KQkJQklDT00sIEluYy4KKzAwMjREOSAgICAgKGJhc2UgMTYpCQlCSUNPTSwgSW5jLgorCQkJCTc1NSBNYWluIFN0cmVldAorCQkJCUJ1aWxkaW5nIDMKKwkJCQlNb25yb2UgQ1QgMDY0NjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LURBICAgKGhleCkJCUlubm92YXIgU3lzdGVtcyBMaW1pdGVkCiswMDI0REEgICAgIChiYXNlIDE2KQkJSW5ub3ZhciBTeXN0ZW1zIExpbWl0ZWQKKwkJCQkxMjE1NSBDb21taXNzaW9uZXIgRHJpdmUKKwkJCQlQTyBCb3ggNjY4CisJCQkJTm9ydGggSmFja3NvbiBPaGlvIDQ0NDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1EQiAgIChoZXgpCQlBbGNvaG9sIE1vbml0b3JpbmcgU3lzdGVtcworMDAyNERCICAgICAoYmFzZSAxNikJCUFsY29ob2wgTW9uaXRvcmluZyBTeXN0ZW1zCisJCQkJMTI0MSBXLiBNaW5lcmFsIEF2ZW51ZQorCQkJCVN1aXRlIDIwMAorCQkJCUxpdHRsZXRvbiBDTyA4MDEyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtREMgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworMDAyNERDICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1ERCAgIChoZXgpCQlDZW50cmFrLCBJbmMuCiswMDI0REQgICAgIChiYXNlIDE2KQkJQ2VudHJhaywgSW5jLgorCQkJCTIwNyBQZW5ucyBUcmFpbAorCQkJCU5ld3Rvd24gUEEgMTg5NDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LURFICAgKGhleCkJCUdMT0JBTCBUZWNobm9sb2d5IEluYy4KKzAwMjRERSAgICAgKGJhc2UgMTYpCQlHTE9CQUwgVGVjaG5vbG9neSBJbmMuCisJCQkJTm8uMTY4LFNoYW5zaGFuIFJkLiwgV2FuZ2NodW4gSW5kdXN0cmlhbCBQYXJrLAorCQkJCU5pbmdibyAgMzE1MTc2CisJCQkJQ0hJTkEKKworMDAtMjQtREYgICAoaGV4KQkJRGlnaXRhbGJveCBFdXJvcGUgR21iSAorMDAyNERGICAgICAoYmFzZSAxNikJCURpZ2l0YWxib3ggRXVyb3BlIEdtYkgKKwkJCQlTYW5kc3RyYcODxbhlIDY1CisJCQkJUmF0aW5nZW4gIDQwODc4CisJCQkJR0VSTUFOWQorCiswMC0yNC1FMCAgIChoZXgpCQlEUyBUZWNoLCBMTEMKKzAwMjRFMCAgICAgKGJhc2UgMTYpCQlEUyBUZWNoLCBMTEMKKwkJCQkyMjEwIEh1dHRvbiBEcml2ZQorCQkJCVN1aXRlIDEwMAorCQkJCUNhcnJvbGx0b24gVFggNzUwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUUxICAgKGhleCkJCUNvbnZleSBDb21wdXRlciBDb3JwLgorMDAyNEUxICAgICAoYmFzZSAxNikJCUNvbnZleSBDb21wdXRlciBDb3JwLgorCQkJCTEzMDIgRS4gQ29sbGlucyBCbHZkLgorCQkJCVJpY2hhcmRzb24gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUUyICAgKGhleCkJCUhBU0VHQVdBIEVMRUNUUklDIENPLixMVEQuCiswMDI0RTIgICAgIChiYXNlIDE2KQkJSEFTRUdBV0EgRUxFQ1RSSUMgQ08uLExURC4KKwkJCQk1LTYtMjAgU0hJT0UKKwkJCQlMSUdIVE5JTkcgVEVDSE5PTE9HWSBDRU5URVIKKwkJCQlBTUFHQVNBS0kgSFlPR08gNjYxLTA5NzYKKwkJCQlKQVBBTgorCiswMC0yNC1FMyAgIChoZXgpCQlDQU8gR3JvdXAKKzAwMjRFMyAgICAgKGJhc2UgMTYpCQlDQU8gR3JvdXAKKwkJCQk0NjI4IFdlc3QgU2t5aGF3ayBEcml2ZQorCQkJCVdlc3QgSm9yZGFuIFVUIDg0MDg0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1FNCAgIChoZXgpCQlXaXRoaW5ncworMDAyNEU0ICAgICAoYmFzZSAxNikJCVdpdGhpbmdzCisJCQkJMzdiaXMgcnVlIGR1IEdlbmVyYWwgTGVjbGVyYworCQkJCUlzc3kgbGVzIE1vdWxpbmVhdXggIDkyNDQyCisJCQkJRlJBTkNFCisKKzAwLTI0LUU1ICAgKGhleCkJCVNlZXIgVGVjaG5vbG9neSwgSW5jCiswMDI0RTUgICAgIChiYXNlIDE2KQkJU2VlciBUZWNobm9sb2d5LCBJbmMKKwkJCQkyNjgxIFBhcmxleXMgV2F5CisJCQkJU3VpdGUgMjAxCisJCQkJU2FsdCBMYWtlIENpdHkgVXRhaCA4NDEwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjQtRTYgICAoaGV4KQkJSW4gTW90aW9uIFRlY2hub2xvZ3kgSW5jLgorMDAyNEU2ICAgICAoYmFzZSAxNikJCUluIE1vdGlvbiBUZWNobm9sb2d5IEluYy4KKwkJCQkjMzUwLCA2MjUgQWduZXMgU3RyZWV0CisJCQkJTmV3IFdlc3RtaW5zdGVyIEJDIFYzTSA1WTQKKwkJCQlDQU5BREEKKworMDAtMjQtRTcgICAoaGV4KQkJUGxhc3RlciBOZXR3b3JrcworMDAyNEU3ICAgICAoYmFzZSAxNikJCVBsYXN0ZXIgTmV0d29ya3MKKwkJCQk5MzUgSGFtaWx0b24gQXZlbnVlCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNS0xNDMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1FOCAgIChoZXgpCQlEZWxsIEluYy4KKzAwMjRFOCAgICAgKGJhc2UgMTYpCQlEZWxsIEluYy4KKwkJCQlPbmUgRGVsbCBXYXksIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUU5ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuLCBTdG9yYWdlIFN5c3RlbSBEaXZpc2lvbgorMDAyNEU5ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuLCBTdG9yYWdlIFN5c3RlbSBEaXZpc2lvbgorCQkJCTQxNiwgTWFldGFuIDNEb25nLCBZZW9uZ3RvbmctR3UKKwkJCQlTdXdvbiBDaXR5IEdleW9uZ2dpIERvIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtRUEgICAoaGV4KQkJaXJpcy1HbWJIIGluZnJhcmVkICYgaW50ZWxsaWdlbnQgc2Vuc29ycworMDAyNEVBICAgICAoYmFzZSAxNikJCWlyaXMtR21iSCBpbmZyYXJlZCAmIGludGVsbGlnZW50IHNlbnNvcnMKKwkJCQlPc3RlbmRzdHJhc3NlIDEtMTQKKwkJCQlCZXJsaW4gIDEyNDU5CisJCQkJR0VSTUFOWQorCiswMC0yNC1FQiAgIChoZXgpCQlDbGVhclBhdGggTmV0d29ya3MsIEluYy4KKzAwMjRFQiAgICAgKGJhc2UgMTYpCQlDbGVhclBhdGggTmV0d29ya3MsIEluYy4KKwkJCQkxOTQwIEUuIE1hcmlwb3NhIEF2ZS4KKwkJCQlTdWl0ZSAxNTAKKwkJCQlFbCBTZWd1bmRvIENBIDkwMjQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1FQyAgIChoZXgpCQlVbml0ZWQgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkLgorMDAyNEVDICAgICAoYmFzZSAxNikJCVVuaXRlZCBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJNS9GLDl0aCBCdWlsZGluZyxTb2Z0d2FyZSBQYXJrLDJuZCBLZWppLXpob25nIFJvYWQsSGlnaC1UZWNoIEluZHVzdHJpYWwgUGFyaworCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0yNC1FRCAgIChoZXgpCQlZVCBFbGVjLiBDbywuTHRkLgorMDAyNEVEICAgICAoYmFzZSAxNikJCVlUIEVsZWMuIENvLC5MdGQuCisJCQkJQmxvY2sgQiwyIEZsb29yICxCYW8gWWluZyBJbmR1c3RyaWFsIERpc3RyaWN0LAorCQkJCUxvbmcgR2FuZyBMb25nWGksCisJCQkJV3UgTGlhbiBMdSBTaGVuemhlbiA1MTgxMTYKKwkJCQlDSElOQQorCiswMC0yNC1FRSAgIChoZXgpCQlXeW5tYXggSW5jLgorMDAyNEVFICAgICAoYmFzZSAxNikJCVd5bm1heCBJbmMuCisJCQkJMThGLiwgTm8uIDc1LCBTZWMuIDEsIFhpblRhaSA1dGggIFJkLiwKKwkJCQlYaXpoaSAgQ2l0eSwgVGFpcGVpIENvdW50eSAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LUVGICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCiswMDI0RUYgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCAgMjIxODgKKwkJCQlTV0VERU4KKworMDAtMjQtRjAgICAoaGV4KQkJU2Vhbm9kZXMKKzAwMjRGMCAgICAgKGJhc2UgMTYpCQlTZWFub2RlcworCQkJCUJhdGltZW50IFBsYXRvbgorCQkJCTI1IEJ2ZCBWaWN0b3IgSHVnbworCQkJCUNvbG9taWVycyAgMzE3NzAKKwkJCQlGUkFOQ0UKKworMDAtMjQtRjEgICAoaGV4KQkJU2hlbnpoZW4gRmFuaGFpIFNhbmppYW5nIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorMDAyNEYxICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEZhbmhhaSBTYW5qaWFuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQkzRsKjwqxHdWFuZ2NhaSBYaW50aWFuZGkgQnVpbGRpbmcsTmFuc2hhbiBSZCxOYW5zaGFuLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTQKKwkJCQlDSElOQQorCiswMC0yNC1GMiAgIChoZXgpCQlVbmlwaG9uZSBUZWxlY29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKzAwMjRGMiAgICAgKGJhc2UgMTYpCQlVbmlwaG9uZSBUZWxlY29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKwkJCQlOby4gMjUsIENodS1LdW5nIDNyZCBMYW5lLCBDaHUtSG91IFRzdW5nLCBKZW4tV3UgSHNpYW5nLAorCQkJCUthb2hzaXVuZyBIc2llbiAgODE0NDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI0LUYzICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyNEYzICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPIEtZT1RPIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMjQtRjQgICAoaGV4KQkJS2FtaW5hcmlvIFRlY2hub2xvZ2llcyBMdGQuCiswMDI0RjQgICAgIChiYXNlIDE2KQkJS2FtaW5hcmlvIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJWWF0YW0gSW5kdXN0cmlhbCBQYXJrCisJCQkJQ1BDIEJ1aWxkaW5nCisJCQkJWW9rbmVhbSBJU1JBRUwgMjA2OTIKKwkJCQlJU1JBRUwKKworMDAtMjQtRjUgICAoaGV4KQkJTkRTIFN1cmdpY2FsIEltYWdpbmcKKzAwMjRGNSAgICAgKGJhc2UgMTYpCQlORFMgU3VyZ2ljYWwgSW1hZ2luZworCQkJCTU3NTAgSGVsbHllciBBdmUuCisJCQkJU2FuIEpvc2UgQ0EuIDk1MTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNC1GNiAgIChoZXgpCQlNSVlPU0hJIEVMRUNUUk9OSUNTIENPUlBPUkFUSU9OCiswMDI0RjYgICAgIChiYXNlIDE2KQkJTUlZT1NISSBFTEVDVFJPTklDUyBDT1JQT1JBVElPTgorCQkJCTMtMTMtMjEgS1VTSElSTworCQkJCUtBV0FOSVNISS1DSVRZIEhZT0dPLVBSRUYuIDY2Ni0wMDI0CisJCQkJSkFQQU4KKworMDAtMjQtRjcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNEY3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUY4ICAgKGhleCkJCVRlY2huaWNhbCBTb2x1dGlvbnMgQ29tcGFueSBMdGQuCiswMDI0RjggICAgIChiYXNlIDE2KQkJVGVjaG5pY2FsIFNvbHV0aW9ucyBDb21wYW55IEx0ZC4KKwkJCQlCb3ggMzE3NTAKKwkJCQlXaGl0ZWhvcnNlIFl1a29uIFkxQSA2TDMKKwkJCQlDQU5BREEKKworMDAtMjQtRjkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNEY5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI0LUZBICAgKGhleCkJCUhpbGdlciB1LiBLZXJuIEdNQkgKKzAwMjRGQSAgICAgKGJhc2UgMTYpCQlIaWxnZXIgdS4gS2VybiBHTUJICisJCQkJS2FlZmVydGFsZXIgU3RyYXNzZSAyNTMtMjU1CisJCQkJTWFubmhlaW0gQmFkZW4tV3VlcnR0ZW1iZXJnIDY4MTY3CisJCQkJR0VSTUFOWQorCiswMC0yNC1GQiAgIChoZXgpCQlQUklWQVRFCiswMDI0RkIgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTI0LUZDICAgKGhleCkJCVF1b1BpbiBDby4sIEx0ZC4KKzAwMjRGQyAgICAgKGJhc2UgMTYpCQlRdW9QaW4gQ28uLCBMdGQuCisJCQkJIzEwOSwgUiZEIENlbnRlciBmb3IgQWR2YW5jZWQgVGVjaG5vbG9neSA2OCBZYXRhcC1kb25nIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbSBLeXVuZ2tpLWRvIDQ2My04MTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjQtRkQgICAoaGV4KQkJUHJvc2lsaWVudCBUZWNobm9sb2dpZXMgQUIKKzAwMjRGRCAgICAgKGJhc2UgMTYpCQlQcm9zaWxpZW50IFRlY2hub2xvZ2llcyBBQgorCQkJCcOD4oCmcnN0YcODwqRuZ3N2w4PCpGdlbiAyNSAoM3JkIGZsb29yKSwgKEJveCA0NzIzMSkKKwkJCQlTdG9ja2hvbG0gIFNFLTEwMDc0CisJCQkJU1dFREVOCisKKzAwLTI0LUZFICAgKGhleCkJCUFWTSBHbWJICiswMDI0RkUgICAgIChiYXNlIDE2KQkJQVZNIEdtYkgKKwkJCQlBbHQtTW9hYml0IDk1CisJCQkJQmVybGluICAxMDU1OQorCQkJCUdFUk1BTlkKKworMDAtMjQtRkYgICAoaGV4KQkJUUxvZ2ljIENvcnBvcmF0aW9uCiswMDI0RkYgICAgIChiYXNlIDE2KQkJUUxvZ2ljIENvcnBvcmF0aW9uCisJCQkJMjY2NTAgQWxpc28gVmllam8gUGFya3dheQorCQkJCUFsaXNvIFZpZWpvIENBIDkyNjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0wMCAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDI1MDAgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMDEgICAoaGV4KQkJSlNDICJTdXBlcnRlbCIKKzAwMjUwMSAgICAgKGJhc2UgMTYpCQlKU0MgIlN1cGVydGVsIgorCQkJCTM4QSBQZXRyb2dyYWRza2F5YSBlbWIuCisJCQkJU3QuUGV0ZXJzYnVyZyAgMTk3MTAxCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTI1LTAyICAgKGhleCkJCU5hdHVyYWxQb2ludAorMDAyNTAyICAgICAoYmFzZSAxNikJCU5hdHVyYWxQb2ludAorCQkJCVBPIEJveCAyMzE3CisJCQkJQ29ydmFsbGlzIE9SIDk3MzM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0wMyAgIChoZXgpCQlJQk0gQ29ycAorMDAyNTAzICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMjA1MSBNaXNzaW9uIENvbGxlZ2UgQmx2ZCAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMDQgICAoaGV4KQkJVmFsaWFudCBDb21tdW5pY2F0aW9ucyBMaW1pdGVkCiswMDI1MDQgICAgIChiYXNlIDE2KQkJVmFsaWFudCBDb21tdW5pY2F0aW9ucyBMaW1pdGVkCisJCQkJNzEtMSBTaGl2YWppIE1hcmcKKwkJCQlOZXcgRGVsaGkgRGVsaGkgMTEwMDE1CisJCQkJSU5ESUEKKworMDAtMjUtMDUgICAoaGV4KQkJZWtzIEVuZ2VsIEdtYkggJiBDby4gS0cKKzAwMjUwNSAgICAgKGJhc2UgMTYpCQlla3MgRW5nZWwgR21iSCAmIENvLiBLRworCQkJCVNjaHVldHplbnN0cmFzc2UgMgorCQkJCVdlbmRlbi1IaWxsbWlja2UgTlJXIDU3NDgyCisJCQkJR0VSTUFOWQorCiswMC0yNS0wNiAgIChoZXgpCQlBLkkuIEFOVElUQUNDSEVHR0lPIElUQUxJQSBTUkwKKzAwMjUwNiAgICAgKGJhc2UgMTYpCQlBLkkuIEFOVElUQUNDSEVHR0lPIElUQUxJQSBTUkwKKwkJCQlWSUNPTE8gREVMTEUgREFNRSA0CisJCQkJQk9MT0dOQSAgNDAxMjQKKwkJCQlJVEFMWQorCiswMC0yNS0wNyAgIChoZXgpCQlBU1RBSyBJbmMuCiswMDI1MDcgICAgIChiYXNlIDE2KQkJQVNUQUsgSW5jLgorCQkJCTE5MTEgSGFydG9nIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTA4ICAgKGhleCkJCU1hcXVldCBDYXJkaW9wdWxtb25hcnkgQUcKKzAwMjUwOCAgICAgKGJhc2UgMTYpCQlNYXF1ZXQgQ2FyZGlvcHVsbW9uYXJ5IEFHCisJCQkJSGVjaGluZ2VyIFN0cmFzc2UgMzgKKwkJCQlIaXJybGluZ2VuICA3MjE0NQorCQkJCUdFUk1BTlkKKworMDAtMjUtMDkgICAoaGV4KQkJU0hBUkVUUk9OSUMgR3JvdXAgTFRECiswMDI1MDkgICAgIChiYXNlIDE2KQkJU0hBUkVUUk9OSUMgR3JvdXAgTFRECisJCQkJU2hhSmluZyxCYW8nYW4gWm9uZSwKKwkJCQlTaGVuWmhlbiBHdWFuZ2RvbmcgNTE4MTA0CisJCQkJQ0hJTkEKKworMDAtMjUtMEEgICAoaGV4KQkJU2VjdXJpdHkgRXhwZXJ0IENvLiBMdGQKKzAwMjUwQSAgICAgKGJhc2UgMTYpCQlTZWN1cml0eSBFeHBlcnQgQ28uIEx0ZAorCQkJCThGLTMsIE5vLjIsIEppYW4gOHRoIFJkLiwKKwkJCQlKaG9uZ2hlIFRhaXBlaSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LTBCICAgKGhleCkJCUNFTlRST0ZBQ1RPUiAgSU5DCiswMDI1MEIgICAgIChiYXNlIDE2KQkJQ0VOVFJPRkFDVE9SICBJTkMKKwkJCQlSb2FkIFRvd24sIFRvcnRvbGEsIFAuTy5Cb3ggMzE2MSwKKwkJCQlUb3J0b2xhICAxOTQyOTUKKwkJCQlWSVJHSU4gSVNMQU5EUywgQlJJVElTSAorCiswMC0yNS0wQyAgIChoZXgpCQlFbmVydHJhYworMDAyNTBDICAgICAoYmFzZSAxNikJCUVuZXJ0cmFjCisJCQkJOTQgUml2ZXIgUmQKKwkJCQlTdWl0ZSAxMDAKKwkJCQlIdWRzb24gTkggMDMwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTBEICAgKGhleCkJCUdaVCBUZWxrb20tVGVsbW9yIHNwLiB6IG8uby4KKzAwMjUwRCAgICAgKGJhc2UgMTYpCQlHWlQgVGVsa29tLVRlbG1vciBzcC4geiBvLm8uCisJCQkJTWlja2lld2ljemEgNS83CisJCQkJR2RhbnNrIHBvbW9yc2tpZSA4MC00MjUKKwkJCQlQT0xBTkQKKworMDAtMjUtMEUgICAoaGV4KQkJZ3QgZ2VybWFuIHRlbGVtYXRpY3MgZ21iaAorMDAyNTBFICAgICAoYmFzZSAxNikJCWd0IGdlcm1hbiB0ZWxlbWF0aWNzIGdtYmgKKwkJCQlSYW5rZXN0cmFzc2UgMjYKKwkJCQlCZXJsaW4gIEQtMTA3ODkKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTBGICAgKGhleCkJCU9uLVJhbXAgV2lyZWxlc3MsIEluYy4KKzAwMjUwRiAgICAgKGJhc2UgMTYpCQlPbi1SYW1wIFdpcmVsZXNzLCBJbmMuCisJCQkJMTY4ODUgV2VzdCBCZXJuYXJkbyBEcml2ZQorCQkJCVN1aXRlIDI1NQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMTAgICAoaGV4KQkJUGljby1UZXNsYSBNYWduZXRpYyBUaGVyYXBpZXMKKzAwMjUxMCAgICAgKGJhc2UgMTYpCQlQaWNvLVRlc2xhIE1hZ25ldGljIFRoZXJhcGllcworCQkJCTc4NTIgU291dGggRWxhdGkKKwkJCQkjMjAyCisJCQkJTGl0dGxldG9uIENPIDgwMTIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0xMSAgIChoZXgpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTSBDTy4sIExURC4KKzAwMjUxMSAgICAgKGJhc2UgMTYpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTSBDTy4sIExURC4KKwkJCQlOTy4gMjM5LCBTZWMuIDIsIFRpIERpbmcgQmx2ZC4KKwkJCQlUYWlwZWkgVGFpd2FuIDExNDkzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNS0xMiAgIChoZXgpCQlaVEUgQ29ycG9yYXRpb24KKzAwMjUxMiAgICAgKGJhc2UgMTYpCQlaVEUgQ29ycG9yYXRpb24KKwkJCQkxMkYsIFImRCBCdWlsZGluZywgWnRlLCBIaS1UZWNoIEluZHVzdHJpYWwgUGFyaworCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0yNS0xMyAgIChoZXgpCQlDWFAgRElHSVRBTCBCVgorMDAyNTEzICAgICAoYmFzZSAxNikJCUNYUCBESUdJVEFMIEJWCisJCQkJRGUgUmV1bHZlciA5N0EKKwkJCQlFbnNjaGVkZSAgNzU0NFJUCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjUtMTQgICAoaGV4KQkJUEMgV29ydGggSW50J2wgQ28uLCBMdGQuCiswMDI1MTQgICAgIChiYXNlIDE2KQkJUEMgV29ydGggSW50J2wgQ28uLCBMdGQuCisJCQkJMThGLCBOby4xMDAsIEhzaW4tVGFpLVd1IFJkLiwgU2VjLiAxLAorCQkJCUhzaS1DaGloLCBUYWlwZWkgMjIxMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LTE1ICAgKGhleCkJCVNGUgorMDAyNTE1ICAgICAoYmFzZSAxNikJCVNGUgorCQkJCTQyIFF1YWkgZHUgcG9pbnQgZHUgam91cgorCQkJCUJvdWxvZ25lIGJpbGxhbmNvdXJ0IC4gOTI2NTkKKwkJCQlGUkFOQ0UKKworMDAtMjUtMTYgICAoaGV4KQkJSW50ZWdyYXRlZCBEZXNpZ24gVG9vbHMsIEluYy4KKzAwMjUxNiAgICAgKGJhc2UgMTYpCQlJbnRlZ3JhdGVkIERlc2lnbiBUb29scywgSW5jLgorCQkJCTEyMDIgRSBQYXJrIEF2ZW51ZQorCQkJCVRhbGxhaGFzc2VlIEZMIDMyMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0xNyAgIChoZXgpCQlWZW5udGlzLCBMTEMKKzAwMjUxNyAgICAgKGJhc2UgMTYpCQlWZW5udGlzLCBMTEMKKwkJCQkxMTMwMSBKYW1lcyBTdHJlZXQKKwkJCQlIb2xsYW5kIE1JIDQ5NDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0xOCAgIChoZXgpCQlQb3dlciBQTFVTIENvbW11bmljYXRpb25zIEFHCiswMDI1MTggICAgIChiYXNlIDE2KQkJUG93ZXIgUExVUyBDb21tdW5pY2F0aW9ucyBBRworCQkJCUFtIEV4ZXJ6aWVycGxhdHogMgorCQkJCU1hbm5oZWltIEJhZGVuIFd1ZXJ0dGVtYmVyZyA2ODE2NworCQkJCUdFUk1BTlkKKworMDAtMjUtMTkgICAoaGV4KQkJVmlhYXMgSW5jCiswMDI1MTkgICAgIChiYXNlIDE2KQkJVmlhYXMgSW5jCisJCQkJMzE3NSBTb3V0aCBXaW5jaGVzdGVyIEJsdmQKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMUEgICAoaGV4KQkJUHNpYmVyIERhdGEgU3lzdGVtcyBJbmMuCiswMDI1MUEgICAgIChiYXNlIDE2KQkJUHNpYmVyIERhdGEgU3lzdGVtcyBJbmMuCisJCQkJNzA3NS1LIE1pc3Npb24gR29yZ2UgUmQKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTFCICAgKGhleCkJCVBoaWxpcHMgQ2FyZVNlcnZhbnQKKzAwMjUxQiAgICAgKGJhc2UgMTYpCQlQaGlsaXBzIENhcmVTZXJ2YW50CisJCQkJSGlnaCBUZWNoIENhbXB1cyAyNworCQkJCUVpbmRob3ZlbiBOb29yZC1CcmFiYW50IDU2NTYgQUUKKwkJCQlORVRIRVJMQU5EUworCiswMC0yNS0xQyAgIChoZXgpCQlFRFQKKzAwMjUxQyAgICAgKGJhc2UgMTYpCQlFRFQKKwkJCQkxNDAwIFNXIENvbXB0b24KKwkJCQlTdWl0ZSAzMTUKKwkJCQlCZWF2ZXJ0b24gT1IgOTcwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTFEICAgKGhleCkJCURTQSBFbmNvcmUsIExMQworMDAyNTFEICAgICAoYmFzZSAxNikJCURTQSBFbmNvcmUsIExMQworCQkJCTUwIFBvY29ubyBSZAorCQkJCUJyb29rZmllbGQgQ1QgMDY4MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTFFICAgKGhleCkJCVJPVEVMIFRFQ0hOT0xPR0lFUworMDAyNTFFICAgICAoYmFzZSAxNikJCVJPVEVMIFRFQ0hOT0xPR0lFUworCQkJCUNFVklaTElERVJFIDE0LkNEIE5POjIvMTkgQkFMR0FUCisJCQkJQU5LQVJBICAwNjUyMAorCQkJCVRVUktFWQorCiswMC0yNS0xRiAgIChoZXgpCQlaWU5VUyBWSVNJT04gSU5DLgorMDAyNTFGICAgICAoYmFzZSAxNikJCVpZTlVTIFZJU0lPTiBJTkMuCisJCQkJMS0xLTctMUEKKwkJCQlTQUdBTUlIQVJBIEtBTkFHQVdBIDIyOS0wMDM5CisJCQkJSkFQQU4KKworMDAtMjUtMjAgICAoaGV4KQkJU01BIFJhaWx3YXkgVGVjaG5vbG9neSBHbWJICiswMDI1MjAgICAgIChiYXNlIDE2KQkJU01BIFJhaWx3YXkgVGVjaG5vbG9neSBHbWJICisJCQkJTWlyYW1zdHIuIDg3CisJCQkJS2Fzc2VsIEhlc3NlIDM0MTIzCisJCQkJR0VSTUFOWQorCiswMC0yNS0yMSAgIChoZXgpCQlMb2dpdGVrIEVsZWN0cm9uaWMgU3lzdGVtcywgSW5jLgorMDAyNTIxICAgICAoYmFzZSAxNikJCUxvZ2l0ZWsgRWxlY3Ryb25pYyBTeXN0ZW1zLCBJbmMuCisJCQkJNTYyMiBFZGdlbW9vciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTIyICAgKGhleCkJCUFTUm9jayBJbmNvcnBvcmF0aW9uCiswMDI1MjIgICAgIChiYXNlIDE2KQkJQVNSb2NrIEluY29ycG9yYXRpb24KKwkJCQkyRi4sIE5vLiAzNywgU2VjLiAyLCBKaG9uZ3lhbmcgUy4gUmQuLCBCZWl0b3UgRGlzdHJpY3QsCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LTIzICAgKGhleCkJCU9DUCBJbmMuCiswMDI1MjMgICAgIChiYXNlIDE2KQkJT0NQIEluYy4KKwkJCQkxODQ5NSBTIERpeGllIEh3eSAgICBQTUIgMTA3CisJCQkJTWlhbWkgRmxvcmlkYSAzMzE1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMjQgICAoaGV4KQkJTGlnaHRjb21tIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMjUyNCAgICAgKGJhc2UgMTYpCQlMaWdodGNvbW0gVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCTkvRi4sSGktVGVjaCBWZW50dXJlIFBhcmsgVG93ZXIgQSwKKwkJCQlUaWFuIGFuIEN5YmVyIFBhcmssRnV0aWFuCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA0MAorCQkJCUNISU5BCisKKzAwLTI1LTI1ICAgKGhleCkJCUNURVJBIE5ldHdvcmtzIEx0ZC4KKzAwMjUyNSAgICAgKGJhc2UgMTYpCQlDVEVSQSBOZXR3b3JrcyBMdGQuCisJCQkJMjQgSW1iZXIgU3QuCisJCQkJUGV0YWNoLVRpa3ZhICA0OTUxMTEKKwkJCQlJU1JBRUwKKworMDAtMjUtMjYgICAoaGV4KQkJR2VudWluZSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDI1MjYgICAgIChiYXNlIDE2KQkJR2VudWluZSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJS2xpbmdlbG5iZXJnIEJsZGcuCisJCQkJMS0xMy0xMiBTaGluLVlva29oYW1hIEtvdWhva3Uta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjItMDAzMworCQkJCUpBUEFOCisKKzAwLTI1LTI3ICAgKGhleCkJCUJpdHJvZGUgQ29ycC4KKzAwMjUyNyAgICAgKGJhc2UgMTYpCQlCaXRyb2RlIENvcnAuCisJCQkJOTc4NyBHcmVlbiBQYXJrIEluZHVzdHJpYWwgRHJpdmUKKwkJCQlTdC4gTG91aXMgTU8gNjMxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTI4ICAgKGhleCkJCURhaWRvIFNpZ25hbCBDby4sIEx0ZC4KKzAwMjUyOCAgICAgKGJhc2UgMTYpCQlEYWlkbyBTaWduYWwgQ28uLCBMdGQuCisJCQkJMi0yMC0yCisJCQkJTmFrYWlrZWdhbWkKKwkJCQlPaHRhLWt1IFRPS1lPIDE0Ni04Njc4CisJCQkJSkFQQU4KKworMDAtMjUtMjkgICAoaGV4KQkJQ09NRUxJVCBHUk9VUCBTLlAuQQorMDAyNTI5ICAgICAoYmFzZSAxNikJCUNPTUVMSVQgR1JPVVAgUy5QLkEKKwkJCQlET04gQVJSSUdPTkkgTi4gNQorCQkJCVNBTiBMT1JFTlpPLCBST1ZFVFRBIEJFUkdBTU8gMjQwMjAKKwkJCQlJVEFMWQorCiswMC0yNS0yQSAgIChoZXgpCQlDaGVuZ2R1IEdlZVlhIFRlY2hub2xvZ3kgQ28uLExURAorMDAyNTJBICAgICAoYmFzZSAxNikJCUNoZW5nZHUgR2VlWWEgVGVjaG5vbG9neSBDby4sTFRECisJCQkJNTAgU2h1eGkgUm9hZCwKKwkJCQlDaGVuZ2R1IFNpQ2h1YW4gNjEwMDkxCisJCQkJQ0hJTkEKKworMDAtMjUtMkIgICAoaGV4KQkJU3RpcmxpbmcgRW5lcmd5IFN5c3RlbXMKKzAwMjUyQiAgICAgKGJhc2UgMTYpCQlTdGlybGluZyBFbmVyZ3kgU3lzdGVtcworCQkJCVNhbmRpYSBOYXRpb25hbCBMYWJzIC0gTlNUVEYKKwkJCQlQTyBCb3ggNTgwMCBNUyAxMTI3CisJCQkJQWxidXF1ZXJxdWUgTk0gODcxODUtMTEyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMkMgICAoaGV4KQkJRW50b3VyYWdlIFN5c3RlbXMsIEluYy4KKzAwMjUyQyAgICAgKGJhc2UgMTYpCQlFbnRvdXJhZ2UgU3lzdGVtcywgSW5jLgorCQkJCTc5MDEgSm9uZXMgQnJhbmNoIERyaXZlCisJCQkJU3VpdGUgNzAwCisJCQkJTWNMZWFuIFZpcmdpbmlhIDIyMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0yRCAgIChoZXgpCQlLaXJ5dW5nIEVsZWN0cm9uaWNzCiswMDI1MkQgICAgIChiYXNlIDE2KQkJS2lyeXVuZyBFbGVjdHJvbmljcworCQkJCUtpcnl1bmcgQmxkZy4gNjg2LTcwLCBTaW5kYWViYW5nLWRvbmcKKwkJCQlEb25namFrLWd1LAorCQkJCVNlb3VsICAxNTYtMDEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LTJFICAgKGhleCkJCUNpc2NvIFNQVlRHCiswMDI1MkUgICAgIChiYXNlIDE2KQkJQ2lzY28gU1BWVEcKKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtMkYgICAoaGV4KQkJRW5lcmd5LCBJbmMuCiswMDI1MkYgICAgIChiYXNlIDE2KQkJRW5lcmd5LCBJbmMuCisJCQkJMzI5NyBQYWNpZmljIFN0cmVldAorCQkJCUNoYXJsZXN0b24gU0MgMjk0MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTMwICAgKGhleCkJCUFldGFzIFN5c3RlbXMgSW5jLgorMDAyNTMwICAgICAoYmFzZSAxNikJCUFldGFzIFN5c3RlbXMgSW5jLgorCQkJCTNBMywgTm8uIDEsIExpSHNpbiBSb2FkIEkKKwkJCQlIc2luQ2h1IFRhaXdhbiAzMDA3OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtMzEgICAoaGV4KQkJQ2xvdWQgRW5naW5lcywgSW5jLgorMDAyNTMxICAgICAoYmFzZSAxNikJCUNsb3VkIEVuZ2luZXMsIEluYy4KKwkJCQk4NTcgTW9udGdvbWVyeSBTdHJlZXQKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0zMiAgIChoZXgpCQlEaWdpdGFsIFJlY29yZGVycworMDAyNTMyICAgICAoYmFzZSAxNikJCURpZ2l0YWwgUmVjb3JkZXJzCisJCQkJNDAxOCBQYXRyaW90IERyaXZlCisJCQkJU3VpdGUgMTAwCisJCQkJRHVyaGFtIE5DIDI3NzA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0zMyAgIChoZXgpCQlXSVRURU5TVEVJTiBBRworMDAyNTMzICAgICAoYmFzZSAxNikJCVdJVFRFTlNURUlOIEFHCisJCQkJV2FsdGVyLVdpdHRlbnN0ZWluLVN0ci4gMQorCQkJCUlnZXJzaGVpbSAgOTc5OTkKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTM1ICAgKGhleCkJCU1pbmltYXggR21iSCAmIENvIEtHCiswMDI1MzUgICAgIChiYXNlIDE2KQkJTWluaW1heCBHbWJIICYgQ28gS0cKKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDEwLzEyCisJCQkJQmFkIE9sZGVzbG9lIFNIIDIzODQwCisJCQkJR0VSTUFOWQorCiswMC0yNS0zNiAgIChoZXgpCQlPa2kgRWxlY3RyaWMgSW5kdXN0cnkgQ28uLCBMdGQuCiswMDI1MzYgICAgIChiYXNlIDE2KQkJT2tpIEVsZWN0cmljIEluZHVzdHJ5IENvLiwgTHRkLgorCQkJCTEtMTYtOCBDaHVvdQorCQkJCVdhcmFiaS1zaGkgU2FpdGFtYSAzMzUtODUxMAorCQkJCUpBUEFOCisKKzAwLTI1LTM3ICAgKGhleCkJCVJ1bmNvbSBUZWNobm9sb2dpZXMgTHRkLgorMDAyNTM3ICAgICAoYmFzZSAxNikJCVJ1bmNvbSBUZWNobm9sb2dpZXMgTHRkLgorCQkJCTExIE1vc2hlIExldmkgU3RyLiAxMXRoIEZsci4KKwkJCQlVTUkgQnVpbGRpbmcKKwkJCQlSaXNob24gTGUgWmlvbiAgNzU2NTgKKwkJCQlJU1JBRUwKKworMDAtMjUtMzggICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4sIE1lbW9yeSBEaXZpc2lvbgorMDAyNTM4ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMdGQuLCBNZW1vcnkgRGl2aXNpb24KKwkJCQlTYW4gIzE2IEJhbndvbC1Eb25nLCBUYWVhbi1HdQorCQkJCUh3YXN1bmcgQ2l0eSBHeWVvbmdnaSBEbyA0NDUtNzAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LTM5ICAgKGhleCkJCUlmVEEgR21iSAorMDAyNTM5ICAgICAoYmFzZSAxNikJCUlmVEEgR21iSAorCQkJCUluZHVzdHJpZXN0cmFzc2UgMzMKKwkJCQlHcm9lYmVuemVsbCBCYXZhcmlhIDgyMTk0CisJCQkJR0VSTUFOWQorCiswMC0yNS0zQSAgIChoZXgpCQlDRVZBLCBMdGQuCiswMDI1M0EgICAgIChiYXNlIDE2KQkJQ0VWQSwgTHRkLgorCQkJCTIgTWFza2l0IFN0cmVldC4KKwkJCQlQLk8uIEJveCAyMDY4CisJCQkJSGVyemVsaWEgIDQ2MTIwCisJCQkJSVNSQUVMCisKKzAwLTI1LTNCICAgKGhleCkJCWRpbiBEaWV0bWFyIE5vY2tlciBGYWNpbGl0eW1hbmFnZW1lbnQgR21iSAorMDAyNTNCICAgICAoYmFzZSAxNikJCWRpbiBEaWV0bWFyIE5vY2tlciBGYWNpbGl0eW1hbmFnZW1lbnQgR21iSAorCQkJCUtvdHppbmFzdHJhc3NlIDUKKwkJCQlMaW56IFVwcGVyIEF1c3RyaWEgNDAzMAorCQkJCUFVU1RSSUEKKworMDAtMjUtM0MgICAoaGV4KQkJMldpcmUKKzAwMjUzQyAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTNEICAgKGhleCkJCURSUyBDb25zb2xpZGF0ZWQgQ29udHJvbHMKKzAwMjUzRCAgICAgKGJhc2UgMTYpCQlEUlMgQ29uc29saWRhdGVkIENvbnRyb2xzCisJCQkJMjEgU291dGggU3RyZWV0CisJCQkJRGFuYnVyeSBDVCAwNjgxMC04MTQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS0zRSAgIChoZXgpCQlTZW5zdXMgTWV0ZXJpbmcgU3lzdGVtcworMDAyNTNFICAgICAoYmFzZSAxNikJCVNlbnN1cyBNZXRlcmluZyBTeXN0ZW1zCisJCQkJOTk0MSBXLiBFbWVyYWxkIFN0cmVldAorCQkJCUJvaXNlIElkYWhvIDgzNzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS00MCAgIChoZXgpCQlRdWFzYXIgVGVjaG5vbG9naWVzLCBJbmMuCiswMDI1NDAgICAgIChiYXNlIDE2KQkJUXVhc2FyIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE3MDEgQmFycmV0dCBMYWtlcyBCb3VsZXZhcmQKKwkJCQlTdWl0ZSAxNjAKKwkJCQlLZW5uZXNhdyBHQSAzMDE0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNDEgICAoaGV4KQkJTWFxdWV0IENyaXRpY2FsIENhcmUgQUIKKzAwMjU0MSAgICAgKGJhc2UgMTYpCQlNYXF1ZXQgQ3JpdGljYWwgQ2FyZSBBQgorCQkJCVLDtm50Z2VudsOkZ2VuIDIKKwkJCQlTb2xuYSAgU0UtMTcxIDk1CisJCQkJU1dFREVOCisKKzAwLTI1LTQyICAgKGhleCkJCVBpdHRhc29mdAorMDAyNTQyICAgICAoYmFzZSAxNikJCVBpdHRhc29mdAorCQkJCSM5MTMgRGFlcnl1bmcgVGVjaG5vIFRvd24gOHRoIDQ4MS0xMWdhCisJCQkJR2FzYW4tZG9uZworCQkJCUdldW1jaGVvbi1ndSBTZW91bCAxNTMtNzc1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LTQzICAgKGhleCkJCU1PTkVZVEVDSAorMDAyNTQzICAgICAoYmFzZSAxNikJCU1PTkVZVEVDSAorCQkJCVJ1YSBHdWlyYXRpbmdhIDkzMSB1bi4gMTAzCisJCQkJQ2hhY2FyYSBJbmdsZXNhCisJCQkJU2FvIFBhdWxvIFNQIDA0MTQxLTAwMQorCQkJCUJSQVpJTAorCiswMC0yNS00NCAgIChoZXgpCQlMb0phY2sgQ29ycG9yYXRpb24KKzAwMjU0NCAgICAgKGJhc2UgMTYpCQlMb0phY2sgQ29ycG9yYXRpb24KKwkJCQk3ODAgRGVkaGFtIFN0cmVldAorCQkJCU1BIDAyMDIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS00NSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI1NDUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNDYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNTQ2ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTQ3ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDI1NDcgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTI1LTQ4ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDI1NDggICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTI1LTQ5ICAgKGhleCkJCUplb3JpY2ggVGVjaC4gQ28uLEx0ZC4KKzAwMjU0OSAgICAgKGJhc2UgMTYpCQlKZW9yaWNoIFRlY2guIENvLixMdGQuCisJCQkJNEYuLCBOby42LCBMbi4gNzAsIFNlYy4gMiwgQWNhZGVtaWEgUmQuLCBOYW5nYW5nIERpc3RyaWN0LCBUYWlwZWkgQ2l0eSAxMTUsIFRhaXdhbiAoUi5PLkMuKQorCQkJCVRhaXBlaSBUYWl3YW4gMTEwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNS00QSAgIChoZXgpCQlSaW5nQ3ViZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMjU0QSAgICAgKGJhc2UgMTYpCQlSaW5nQ3ViZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMDAgV2VzdCBFdmVseW4gQXZlLCBTdWl0ZSAyMTAKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS00QiAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDI1NEIgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCWN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNEMgICAoaGV4KQkJVmlkZW9uIENlbnRyYWwsIEluYy4KKzAwMjU0QyAgICAgKGJhc2UgMTYpCQlWaWRlb24gQ2VudHJhbCwgSW5jLgorCQkJCTIxNzEgU2FuZHkgRHJpdmUKKwkJCQlTdGF0ZSBDb2xsZWdlIFBBIDE2ODAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS00RCAgIChoZXgpCQlTaW5nYXBvcmUgVGVjaG5vbG9naWVzIEVsZWN0cm9uaWNzIExpbWl0ZWQKKzAwMjU0RCAgICAgKGJhc2UgMTYpCQlTaW5nYXBvcmUgVGVjaG5vbG9naWVzIEVsZWN0cm9uaWNzIExpbWl0ZWQKKwkJCQkyNCBBbmcgTW8gS2lvCisJCQkJU3RyZWV0IDY1CisJCQkJNTY5MDYxCisJCQkJU0lOR0FQT1JFCisKKzAwLTI1LTRFICAgKGhleCkJCVZlcnRleCBXaXJlbGVzcyBDby4sIEx0ZC4KKzAwMjU0RSAgICAgKGJhc2UgMTYpCQlWZXJ0ZXggV2lyZWxlc3MgQ28uLCBMdGQuCisJCQkJNUYsIFNlb2h5ZW9uIFBsYXphLCAyNTQtNSwgU2VvaHllb24tZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2My04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtNEYgICAoaGV4KQkJRUxFVFRST0xBQiBTcmwKKzAwMjU0RiAgICAgKGJhc2UgMTYpCQlFTEVUVFJPTEFCIFNybAorCQkJCVZpYSBEZWxsJ0luZHVzdHJpYSAyNQorCQkJCVNhbiBWZW5kZW1pYW5vIFRyZXZpc28gMzEwMjAKKwkJCQlJVEFMWQorCiswMC0yNS01MCAgIChoZXgpCQlSaXZlcmJlZCBUZWNobm9sb2d5CiswMDI1NTAgICAgIChiYXNlIDE2KQkJUml2ZXJiZWQgVGVjaG5vbG9neQorCQkJCTEyNSBDYW1icmlkZ2UgUGFyayBEcml2ZQorCQkJCUNhbWJyaWRnZSBNQSAwMjE0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNTEgICAoaGV4KQkJU0UtRWxla3Ryb25pYyBHbWJICiswMDI1NTEgICAgIChiYXNlIDE2KQkJU0UtRWxla3Ryb25pYyBHbWJICisJCQkJRXl0aHN0ci4gMTYKKwkJCQlHb2VwcGluZ2VuICA3MzAzNworCQkJCUdFUk1BTlkKKworMDAtMjUtNTIgICAoaGV4KQkJVlhJIENPUlBPUkFUSU9OCiswMDI1NTIgICAgIChiYXNlIDE2KQkJVlhJIENPUlBPUkFUSU9OCisJCQkJT25lIEZyb250IFNyZWV0CisJCQkJUm9sbGluc2ZvcmQgTkggMDM4NjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTUzICAgKGhleCkJCUFEQiBCcm9hZGJhbmQgSXRhbGlhCiswMDI1NTMgICAgIChiYXNlIDE2KQkJQURCIEJyb2FkYmFuZCBJdGFsaWEKKwkJCQlWSUFMRSBTQVJDQSAyMjIKKwkJCQlNSUxBTk8gSVRBTFkgMjAxMjYKKwkJCQlJVEFMWQorCiswMC0yNS01NCAgIChoZXgpCQlQaXhlbDggTmV0d29ya3MKKzAwMjU1NCAgICAgKGJhc2UgMTYpCQlQaXhlbDggTmV0d29ya3MKKwkJCQkyMiBHcmVhdCBPYWtzIEJsdmQsIFN1aXRlIDE1MAorCQkJCVNhbiBKb3NlIENBIDk1MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS01NSAgIChoZXgpCQlWaXNvbmljIFRlY2hub2xvZ2llcyAxOTkzIEx0ZAorMDAyNTU1ICAgICAoYmFzZSAxNikJCVZpc29uaWMgVGVjaG5vbG9naWVzIDE5OTMgTHRkCisJCQkJMjMgSGFiYXJ6ZWwgc3QnCisJCQkJVGVsIC0gQXZpdiAgNjk3MTAKKwkJCQlJU1JBRUwKKworMDAtMjUtNTYgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sIEx0ZC4KKzAwMjU1NiAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorCQkJCU5vLjE5MjUsIE5hbmxlIFJvYWQKKwkJCQlTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZQorCQkJCVNoYW5nSGFpICAyMDE2MTMKKwkJCQlDSElOQQorCiswMC0yNS01NyAgIChoZXgpCQlSZXNlYXJjaCBJbiBNb3Rpb24KKzAwMjU1NyAgICAgKGJhc2UgMTYpCQlSZXNlYXJjaCBJbiBNb3Rpb24KKwkJCQk0NDAgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCA1VzkKKwkJCQlDQU5BREEKKworMDAtMjUtNTggICAoaGV4KQkJTVBFRElBCiswMDI1NTggICAgIChiYXNlIDE2KQkJTVBFRElBCisJCQkJU2hpbnlvdW5nIFRvd2VyIDEyRiAyNDYtMgorCQkJCVNlb2h5ZW9uLWRpbmcgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtIEd5ZW9uZ2dpLWRvIDQ2My04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtNTkgICAoaGV4KQkJU3lwaGFuIFRlY2hub2xvZ2llcyBMdGQKKzAwMjU1OSAgICAgKGJhc2UgMTYpCQlTeXBoYW4gVGVjaG5vbG9naWVzIEx0ZAorCQkJCVRoZSBXYXRlcm1pbGwKKwkJCQlCcm91Z2h0b24gSGFsbAorCQkJCVNraXB0b24gTm9ydGggWW9ya3NoaXJlIEJEMjMgM0FHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjUtNUEgICAoaGV4KQkJVGFudGFsdXMgU3lzdGVtcyBDb3JwLgorMDAyNTVBICAgICAoYmFzZSAxNikJCVRhbnRhbHVzIFN5c3RlbXMgQ29ycC4KKwkJCQkzMDEtMzQ4MCBHaWxtb3JlIFdheQorCQkJCUJ1cm5hYnkgQkMgVjVHIDRZMQorCQkJCUNBTkFEQQorCiswMC0yNS01QiAgIChoZXgpCQlDb2FjaENvbW0sIExMQworMDAyNTVCICAgICAoYmFzZSAxNikJCUNvYWNoQ29tbSwgTExDCisJCQkJMjA1IFRlY2hub2xvZ3kgUGFya3dheQorCQkJCUF1YnVybiBBTCAzNjgzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNUMgICAoaGV4KQkJTkVDIENvcnBvcmF0aW9uCiswMDI1NUMgICAgIChiYXNlIDE2KQkJTkVDIENvcnBvcmF0aW9uCisJCQkJMTc1MywgU2hpbW9udW1hYmUsIE5ha2FoYXJhLUt1LCBLYXdhc2FraQorCQkJCUthbmFnYXdhICAyMTEtODY2NgorCQkJCUpBUEFOCisKKzAwLTI1LTVEICAgKGhleCkJCU1vcm5pbmdzdGFyIENvcnBvcmF0aW9uCiswMDI1NUQgICAgIChiYXNlIDE2KQkJTW9ybmluZ3N0YXIgQ29ycG9yYXRpb24KKwkJCQk5MDU1IEd1aWxmb3JkIFJkLgorCQkJCVN1aXRlIEcKKwkJCQlDb2x1bWJpYSBNRCAyMTA0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNUUgICAoaGV4KQkJU2hhbmdoYWkgRGFyZSBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzAwMjU1RSAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBEYXJlIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCTIyRixJbmZvIFRlY2ggQnVpbGRpbmcsIE5vLjE1NTUsS29uZ2ppYW5nIFJvYWQsCisJCQkJU2hhbmdoYWkgMjAwMDkyCisJCQkJQ0hJTkEKKworMDAtMjUtNUYgICAoaGV4KQkJU2VuVGVjIEFHCiswMDI1NUYgICAgIChiYXNlIDE2KQkJU2VuVGVjIEFHCisJCQkJUmluZ3N0cmFzc2UgMzkKKwkJCQlUaGVyd2lsICA0MTA2CisJCQkJU1dJVFpFUkxBTkQKKworMDAtMjUtNjAgICAoaGV4KQkJSWJyaWRnZSBOZXR3b3JrcyAmIENvbW11bmljYXRpb25zIEx0ZC4KKzAwMjU2MCAgICAgKGJhc2UgMTYpCQlJYnJpZGdlIE5ldHdvcmtzICYgQ29tbXVuaWNhdGlvbnMgTHRkLgorCQkJCTI4LEJlZGZvcmQgUm9hZCBFYXN0IEhhbQorCQkJCUxvbmRvbiAgRTYgMk5OCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjUtNjEgICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorMDAyNTYxICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkLgorCQkJCVJvc2V2aWxsZSBDYWxpZm9ybmlhIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS02MiAgIChoZXgpCQlpbnRlcmJybyBDby4gTHRkLgorMDAyNTYyICAgICAoYmFzZSAxNikJCWludGVyYnJvIENvLiBMdGQuCisJCQkJNkYgSm95YW5nIEIvRCwgMTEzIFNhbXNlb25nLURvbmcsIEdhbmduYW0tR3UKKwkJCQlTZW91bCAgMTM1LTA5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS02MyAgIChoZXgpCQlMdXh0ZXJhIEluYworMDAyNTYzICAgICAoYmFzZSAxNikJCUx1eHRlcmEgSW5jCisJCQkJMjMyMC4gQ2FtaW5vIFZpZGEgUm9ibGUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlDYXJsc2JhZCBDQSA5MjAxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNjQgICAoaGV4KQkJRGVsbCBJbmMuCiswMDI1NjQgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS02NSAgIChoZXgpCQlWaXppbWF4IEluYy4KKzAwMjU2NSAgICAgKGJhc2UgMTYpCQlWaXppbWF4IEluYy4KKwkJCQkyMjg0LCBydWUgZGUgbGEgUHJvdmluY2UKKwkJCQlMb25ndWV1aWwgUXXDqWJlYyBKNEcgMUcxCisJCQkJQ0FOQURBCisKKzAwLTI1LTY2ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDAyNTY2ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS02NyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCiswMDI1NjcgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS02OCAgIChoZXgpCQlTaGVuemhlbiBIdWF3ZWkgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKzAwMjU2OCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBIdWF3ZWkgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDgKKwkJCQlDSElOQQorCiswMC0yNS02OSAgIChoZXgpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCiswMDI1NjkgICAgIChiYXNlIDE2KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorCQkJCTE0IFJ1ZSBQYXVsIERhdXRpZXIKKwkJCQlWZWxpenkgIDc4NDU3CisJCQkJRlJBTkNFCisKKzAwLTI1LTZBICAgKGhleCkJCWluSVQgLSBJbnN0aXR1dCBJbmR1c3RyaWFsIElUCiswMDI1NkEgICAgIChiYXNlIDE2KQkJaW5JVCAtIEluc3RpdHV0IEluZHVzdHJpYWwgSVQKKwkJCQlMaWViaWdzdHJhc3NlIDg3CisJCQkJTGVtZ28gTm9ydGhyaGluZS1XZXN0ZmFsaWEgMzI2NTcKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTZCICAgKGhleCkJCUFURU5JWCBFLkUuIHMuci5sLgorMDAyNTZCICAgICAoYmFzZSAxNikJCUFURU5JWCBFLkUuIHMuci5sLgorCQkJCVZpYSBUb3JyaWNlbGxpLCAxNS9iCisJCQkJVkVST05BIFZSIDM3MTM1CisJCQkJSVRBTFkKKworMDAtMjUtNkMgICAoaGV4KQkJIkF6aW11dCIgUHJvZHVjdGlvbiBBc3NvY2lhdGlvbiBKU0MKKzAwMjU2QyAgICAgKGJhc2UgMTYpCQkiQXppbXV0IiBQcm9kdWN0aW9uIEFzc29jaWF0aW9uIEpTQworCQkJCTItQiBBdGFldmEgU3RyZWV0CisJCQkJTWFraGFjaGthbGEgRGFnZXN0YW4gMzY3MDA1CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTI1LTZEICAgKGhleCkJCUJyb2FkYmFuZCBGb3J1bQorMDAyNTZEICAgICAoYmFzZSAxNikJCUJyb2FkYmFuZCBGb3J1bQorCQkJCTQ4Mzc3IEZyZW1vbnQgQm91bGV2YXJkCisJCQkJU3VpdGUgMTE3CisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtNkUgICAoaGV4KQkJVmFuIEJyZWRhIEIuVi4KKzAwMjU2RSAgICAgKGJhc2UgMTYpCQlWYW4gQnJlZGEgQi5WLgorCQkJCU1lcmN1cml1c3dlZyAyMQorCQkJCUJydW1tZW4gR2VsZGVybGFuZCA2OTcxIEdWCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjUtNkYgICAoaGV4KQkJRGFudGhlcm0gUG93ZXIKKzAwMjU2RiAgICAgKGJhc2UgMTYpCQlEYW50aGVybSBQb3dlcgorCQkJCU1hcmllbmx5c3R2ZWogNjUKKwkJCQlTa2l2ZSAgNzgwMAorCQkJCURFTk1BUksKKworMDAtMjUtNzAgICAoaGV4KQkJRWFzdGVybiBDb21tdW5pY2F0aW9ucyBDb21wYW55IExpbWl0ZWQKKzAwMjU3MCAgICAgKGJhc2UgMTYpCQlFYXN0ZXJuIENvbW11bmljYXRpb25zIENvbXBhbnkgTGltaXRlZAorCQkJCU5vLjM5OCBXZW5zYW4gUm9hZCwKKwkJCQlOby42NiBEb25neGluIFJvYWQsUiZEIGJ1aWxkaW5nLEIzMTEKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwMTMKKwkJCQlDSElOQQorCiswMC0yNS03MSAgIChoZXgpCQlaaGVqaWFuZyBUaWFubGUgRGlnaXRhbCBFbGVjdHJpYyBDby4sTHRkCiswMDI1NzEgICAgIChiYXNlIDE2KQkJWmhlamlhbmcgVGlhbmxlIERpZ2l0YWwgRWxlY3RyaWMgQ28uLEx0ZAorCQkJCU5vLjggVGlhbmxlIFJkLEVjb25vbWljIERldmVsb3BtZW50IFpvbmUKKwkJCQlTaGVuZ3pob3UgWmhlamlhbmcgMzEyNDAwCisJCQkJQ0hJTkEKKworMDAtMjUtNzIgICAoaGV4KQkJTmVtby1RIEludGVybmF0aW9uYWwgQUIKKzAwMjU3MiAgICAgKGJhc2UgMTYpCQlOZW1vLVEgSW50ZXJuYXRpb25hbCBBQgorCQkJCUJveCAyMTAKKwkJCQlTb2xsZW50dW5hICAxOTEyMworCQkJCVNXRURFTgorCiswMC0yNS03MyAgIChoZXgpCQlTVCBFbGVjdHJvbmljcyAoSW5mby1TZWN1cml0eSkgUHRlIEx0ZAorMDAyNTczICAgICAoYmFzZSAxNikJCVNUIEVsZWN0cm9uaWNzIChJbmZvLVNlY3VyaXR5KSBQdGUgTHRkCisJCQkJMTAwLCBKdXJvbmcgRWFzdCBTdHJlZXQgMjEsIFNUIEVsZWN0cm9uaWNzIEp1cm9uZyBFYXN0IEJsZGcKKwkJCQk2MDk2MDIKKwkJCQlTSU5HQVBPUkUKKworMDAtMjUtNzQgICAoaGV4KQkJS1VOSU1JIE1FRElBIERFVklDRSBDby4sIEx0ZC4KKzAwMjU3NCAgICAgKGJhc2UgMTYpCQlLVU5JTUkgTUVESUEgREVWSUNFIENvLiwgTHRkLgorCQkJCTMgS0lUQU1BQ0hJREEgWUFNQVpBS0kKKwkJCQlLVU5JTUksIERBVEUgRlVLVVNISU1BIDk2OS0xNzcxCisJCQkJSkFQQU4KKworMDAtMjUtNzUgICAoaGV4KQkJRmliZXJQbGV4IEluYworMDAyNTc1ICAgICAoYmFzZSAxNikJCUZpYmVyUGxleCBJbmMKKwkJCQkxMDg0MC00MTIgR3VpbGZvcmQgUmQKKwkJCQlBbm5hcG9saXMgSnVuY3Rpb24gTUQgMjA3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTc2ICAgKGhleCkJCU5FTEkgVEVDSE5PTE9HSUVTCiswMDI1NzYgICAgIChiYXNlIDE2KQkJTkVMSSBURUNITk9MT0dJRVMKKwkJCQlSb3V0ZSBOYXRpb25hbGUKKwkJCQlJbW1ldWJsZSBPcmNoaXMKKwkJCQlMRSBSSEVVICAzNTY1MAorCQkJCUZSQU5DRQorCiswMC0yNS03NyAgIChoZXgpCQlELUJPWCBUZWNobm9sb2dpZXMKKzAwMjU3NyAgICAgKGJhc2UgMTYpCQlELUJPWCBUZWNobm9sb2dpZXMKKwkJCQkyMTcyIGRlIGxhIFByb3ZpbmNlCisJCQkJTG9uZ3VldWlsIFF1ZWJlYyBKNEcgMVI3CisJCQkJQ0FOQURBCisKKzAwLTI1LTc4ICAgKGhleCkJCUpTQyAiQ29uY2VybiAiU296dmV6ZGllIgorMDAyNTc4ICAgICAoYmFzZSAxNikJCUpTQyAiQ29uY2VybiAiU296dmV6ZGllIgorCQkJCVBsZWtoYW5vdnNrYXlhIHN0LiwgMTQKKwkJCQlWb3JvbmV6aCAgMzk0MDE4CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLTI1LTc5ICAgKGhleCkJCUogJiBGIExhYnMKKzAwMjU3OSAgICAgKGJhc2UgMTYpCQlKICYgRiBMYWJzCisJCQkJMTIxNCBXLiBCb3N0b24gUG9zdCBSb2FkCisJCQkJTWFtYXJvbmVjayBOWSAxMDU0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtN0EgICAoaGV4KQkJQ0FNQ08gUHJvZHVrdGlvbnMtIHVuZCBWZXJ0cmllYnMtR21iSCBmw7xyIEJlc2NoYWxsdW5ncy0gdW5kIEJlbGV1Y2h0dW5nc2FubGFnZW4KKzAwMjU3QSAgICAgKGJhc2UgMTYpCQlDQU1DTyBQcm9kdWt0aW9ucy0gdW5kIFZlcnRyaWVicy1HbWJIIGbDvHIgQmVzY2hhbGx1bmdzLSB1bmQgQmVsZXVjaHR1bmdzYW5sYWdlbgorCQkJCUZpc2NocGlja2UgNQorCQkJCVdlbmRlbiBOUlcgNTc0ODIKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LTdCICAgKGhleCkJCVNUSiAgRUxFQ1RST05JQ1MgIFBWVCAgTFRECiswMDI1N0IgICAgIChiYXNlIDE2KQkJU1RKICBFTEVDVFJPTklDUyAgUFZUICBMVEQKKwkJCQlYLTI0IE9LSExBICBJTkRVU1RSSUFMICBBUkVBCisJCQkJUEhBU0UgLSAyCisJCQkJTkVXICBERUxISSBERUxISSAxMTAgMDIwCisJCQkJSU5ESUEKKworMDAtMjUtN0MgICAoaGV4KQkJSHVhY2hlbnRlbCBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLiwgTHRkCiswMDI1N0MgICAgIChiYXNlIDE2KQkJSHVhY2hlbnRlbCBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLiwgTHRkCisJCQkJNzQ3IFhpbll1IFJkLiBIaWdoLVRlY2ggWm9uZQorCQkJCUppbmFuIFNoYW5kb25nIFByb3ZpbmNlIDI1MDEwMQorCQkJCUNISU5BCisKKzAwLTI1LTdEICAgKGhleCkJCVBvaW50UmVkIFRlbGVjb20gUHJpdmF0ZSBMdGQuCiswMDI1N0QgICAgIChiYXNlIDE2KQkJUG9pbnRSZWQgVGVsZWNvbSBQcml2YXRlIEx0ZC4KKwkJCQkxNUYgLSA1LiwgTm8uIDEwNzEsIFpob25nemhlbmcgUm9hZCwKKwkJCQlUYW95dWFuIENpdHkgMzMwICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LTdFICAgKGhleCkJCU5FVyBQT1MgVGVjaG5vbG9neSBMaW1pdGVkCiswMDI1N0UgICAgIChiYXNlIDE2KQkJTkVXIFBPUyBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQk2RlJNLCA2RiwgQ2hpbmEgRWNvbm9taWMgVHJhZGUgQnVpbGRpbmcKKwkJCQk3UmQgWml6aHUsIFpodXppbGluLCBGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworMDAtMjUtN0YgICAoaGV4KQkJQ2FsbFRlY2hTb2x1dGlvbiBDby4sTHRkCiswMDI1N0YgICAgIChiYXNlIDE2KQkJQ2FsbFRlY2hTb2x1dGlvbiBDby4sTHRkCisJCQkJIzEyMyxEYWV3b29wcnVnaW8gQi9ELDM0NC0xLCBTZW9neW8tRG9uZyxNYXBvLWd1CisJCQkJU2VvdWwgIDEyMS04MzcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtODAgICAoaGV4KQkJRXF1aXBzb24gUy5BLgorMDAyNTgwICAgICAoYmFzZSAxNikJCUVxdWlwc29uIFMuQS4KKwkJCQlQb2xpZ29ubyBJbmQuIEzCtEFsdGVyw7MKKwkJCQlBdmRhLiBTYWxlciwgMTQKKwkJCQlTaWxsYSBWYWxlbmNpYSA0NjQ2MAorCQkJCVNQQUlOCisKKzAwLTI1LTgxICAgKGhleCkJCXgtc3RhciBuZXR3b3JrcyBJbmMuCiswMDI1ODEgICAgIChiYXNlIDE2KQkJeC1zdGFyIG5ldHdvcmtzIEluYy4KKwkJCQkxRixOTzEtMixDaHVuZ2NoaW5nIFMuUmQuU2VjIDMKKwkJCQlUYWlwZWkgIDEwMDc2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNS04MiAgIChoZXgpCQlNYWtzYXQgVGVjaG5vbG9naWVzIChQKSBMdGQKKzAwMjU4MiAgICAgKGJhc2UgMTYpCQlNYWtzYXQgVGVjaG5vbG9naWVzIChQKSBMdGQKKwkJCQlELTEwLzYsIE9raGxhLCBQaGFzZS1JCisJCQkJTmV3IERlbGhpICAxMTAwMjAKKwkJCQlJTkRJQQorCiswMC0yNS04MyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI1ODMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtODQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNTg0ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTg1ICAgKGhleCkJCUtPS1VZTyBTJlQgQ28uLCBMdGQuCiswMDI1ODUgICAgIChiYXNlIDE2KQkJS09LVVlPIFMmVCBDby4sIEx0ZC4KKwkJCQkxLTgtMzUKKwkJCQlLb25hbgorCQkJCU1pbmF0by1rdSBUb2t5byAxMDgtODcxMAorCQkJCUpBUEFOCisKKzAwLTI1LTg2ICAgKGhleCkJCVRQLUxJTksgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorMDAyNTg2ICAgICAoYmFzZSAxNikJCVRQLUxJTksgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCUJ1aWxkaW5nIDcsIFNlY29uZCBQYXJ0LCBIb25naHVhbGluZyBJbmR1c3RyaWFsIFpvbmUKKwkJCQlYaWxpIHRvd24sIE5hbnNoYW4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjUtODcgICAoaGV4KQkJVml0YWxpdHksIEluYy4KKzAwMjU4NyAgICAgKGJhc2UgMTYpCQlWaXRhbGl0eSwgSW5jLgorCQkJCU9uZSBCcm9hZHdheQorCQkJCTE0dGggRmxvb3IKKwkJCQlDYW1icmlkZ2UgTUEgMDIxNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTg4ICAgKGhleCkJCUdlbmllIEluZHVzdHJpZXMsIEluYy4KKzAwMjU4OCAgICAgKGJhc2UgMTYpCQlHZW5pZSBJbmR1c3RyaWVzLCBJbmMuCisJCQkJMTg2MjAgTkUgNjd0aCBDdAorCQkJCVJlZG1vbmQgV0EgOTgwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTg5ICAgKGhleCkJCUhpbGxzIEluZHVzdHJpZXMgTGltaXRlZAorMDAyNTg5ICAgICAoYmFzZSAxNikJCUhpbGxzIEluZHVzdHJpZXMgTGltaXRlZAorCQkJCTUgQ2FtYnJpYSBSb2FkCisJCQkJS2V5c2Jvcm91Z2gKKwkJCQlNZWxib3VybmUgVklDIDMxNzMKKwkJCQlBVVNUUkFMSUEKKworMDAtMjUtOEEgICAoaGV4KQkJUG9sZS9aZXJvIENvcnBvcmF0aW9uCiswMDI1OEEgICAgIChiYXNlIDE2KQkJUG9sZS9aZXJvIENvcnBvcmF0aW9uCisJCQkJNTUzMCBVbmlvbiBDZW50cmUgRHJpdmUKKwkJCQlXZXN0IENoZXN0ZXIgT0ggNDUwNjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LThCICAgKGhleCkJCU1lbGxhbm94IFRlY2hub2xvZ2llcyBMdGQKKzAwMjU4QiAgICAgKGJhc2UgMTYpCQlNZWxsYW5veCBUZWNobm9sb2dpZXMgTHRkCisJCQkJMzUwIE9ha21lYWQgUGFya3dheQorCQkJCVN1bm55dmFsZSwgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LThDICAgKGhleCkJCUVTVVMgRUxFS1RST05JSyBTQU4uIFZFIERJUy4gVElDLiBMVEQuIFNUSS4KKzAwMjU4QyAgICAgKGJhc2UgMTYpCQlFU1VTIEVMRUtUUk9OSUsgU0FOLiBWRSBESVMuIFRJQy4gTFRELiBTVEkuCisJCQkJRVNFTlNFSElSIE1BSEFMTEVTSSBLVVJLQ1VMRVIgQ0FEREVTSQorCQkJCVNBRklSIFNPS0FLIE5POjExLzEgRFVEVUxMVSBVTVJBTklZRQorCQkJCUlTVEFOQlVMICAzNDc3NgorCQkJCVRVUktFWQorCiswMC0yNS04RCAgIChoZXgpCQlIYWllcgorMDAyNThEICAgICAoYmFzZSAxNikJCUhhaWVyCisJCQkJTm8uMSxIYWllciBSb2FkCisJCQkJUWluZ2RhbyBTaGFuZG9uZyAyNjYxMDEKKwkJCQlDSElOQQorCiswMC0yNS04RSAgIChoZXgpCQlUaGUgV2VhdGhlciBDaGFubmVsCiswMDI1OEUgICAgIChiYXNlIDE2KQkJVGhlIFdlYXRoZXIgQ2hhbm5lbAorCQkJCU1haWwgU3RvcCA1MDAKKwkJCQkzMDAgSW50ZXJzdGF0ZSBOb3J0aCBQa3d5CisJCQkJQXRsYW50YSBHQSAzMDMzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtOEYgICAoaGV4KQkJVHJpZGVudCBNaWNyb3N5c3RlbXMsIEluYy4KKzAwMjU4RiAgICAgKGJhc2UgMTYpCQlUcmlkZW50IE1pY3Jvc3lzdGVtcywgSW5jLgorCQkJCTM0MDggR2FycmV0dCBEcml2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS05MCAgIChoZXgpCQlTdXBlciBNaWNybyBDb21wdXRlciwgSW5jLgorMDAyNTkwICAgICAoYmFzZSAxNikJCVN1cGVyIE1pY3JvIENvbXB1dGVyLCBJbmMuCisJCQkJOTgwIFJvY2sgQXZlbnVlCisJCQkJU2FuIEpvc2UgQ2FsaWZvcm5pYSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtOTEgICAoaGV4KQkJTkVYVEVLLCBJbmMuCiswMDI1OTEgICAgIChiYXNlIDE2KQkJTkVYVEVLLCBJbmMuCisJCQkJNDEwIERvdWdsYXNzIFN0cmVldAorCQkJCVJlYWRpbmcgUEEgMTk2MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTkyICAgKGhleCkJCUd1YW5nemhvdSBTaGlydWkgRWxlY3Ryb25pYyBDby4sIEx0ZAorMDAyNTkyICAgICAoYmFzZSAxNikJCUd1YW5nemhvdSBTaGlydWkgRWxlY3Ryb25pYyBDby4sIEx0ZAorCQkJCTMwMUQsIE5vLjksIENhaXBpbiBSb2FkLAorCQkJCUd1YW5nemhvdSBTY2llbmNlIFBhcmsKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDY2MworCQkJCUNISU5BCisKKzAwLTI1LTkzICAgKGhleCkJCURhdE5ldCBJbmZvcm1hdGlrYWkgS2Z0LgorMDAyNTkzICAgICAoYmFzZSAxNikJCURhdE5ldCBJbmZvcm1hdGlrYWkgS2Z0LgorCQkJCUjDqXR2ZXrDqXIgdS4gNS4KKwkJCQlTemlnZXRzemVudG1pa2zDs3MgUGVzdCBtZWd5ZSAyMzEwCisJCQkJSFVOR0FSWQorCiswMC0yNS05NCAgIChoZXgpCQlFdXJvZGVzaWduIEJHIExURAorMDAyNTk0ICAgICAoYmFzZSAxNikJCUV1cm9kZXNpZ24gQkcgTFRECisJCQkJMTUtMTcgVGludGlhdmEgU3RyLiwKKwkJCQlTb2ZpYSAgMTExMworCQkJCUJVTEdBUklBCisKKzAwLTI1LTk1ICAgKGhleCkJCU5vcnRod2VzdCBTaWduYWwgU3VwcGx5LCBJbmMKKzAwMjU5NSAgICAgKGJhc2UgMTYpCQlOb3J0aHdlc3QgU2lnbmFsIFN1cHBseSwgSW5jCisJCQkJMTI5NjUgU1cgSGVybWFuIFJkCisJCQkJVHVhbGF0aW4gT1IgOTcwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LTk2ICAgKGhleCkJCUdJR0FWSVNJT04gc3JsCiswMDI1OTYgICAgIChiYXNlIDE2KQkJR0lHQVZJU0lPTiBzcmwKKwkJCQlWaWEgRmlnaW5pLCAxNgorCQkJCU11Z2dpw7IgTWlsYW5vIDIwMDUzCisJCQkJSVRBTFkKKworMDAtMjUtOTcgICAoaGV4KQkJS2Fsa2kgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMKKzAwMjU5NyAgICAgKGJhc2UgMTYpCQlLYWxraSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcworCQkJCSMxNDcsMm5kIEZsb29yLCBBbmFudGFQdXNocGEgQnVpbGRpbmcsCisJCQkJNXRoIE1haW4gUm9hZCw3dGggU2VjdG9yLEhTUiBMYXlvdXQKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MDAzNAorCQkJCUlORElBCisKKzAwLTI1LTk4ICAgKGhleCkJCVpob25nIFNoYW4gQ2l0eSBMaXRhaSBFbGVjdHJvbmljIEluZHVzdHJpYWwgQ28uIEx0ZAorMDAyNTk4ICAgICAoYmFzZSAxNikJCVpob25nIFNoYW4gQ2l0eSBMaXRhaSBFbGVjdHJvbmljIEluZHVzdHJpYWwgQ28uIEx0ZAorCQkJCU5vLjMgSW5kdXN0cmlhbCBEaXN0cmljdCwgV3VndWlzaGFuLCBDaGVuZyBndWkgUm9hZAorCQkJCVpob25nIHNoYW4gQ2l0eSBHdWFuZyBkb25nIFByb3ZpbmNlIDUyODQ1OAorCQkJCUNISU5BCisKKzAwLTI1LTk5ICAgKGhleCkJCUhlZG9uIGUuZC4gQi5WLgorMDAyNTk5ICAgICAoYmFzZSAxNikJCUhlZG9uIGUuZC4gQi5WLgorCQkJCUVsZWt0cm9uaWNhd2VnIDE1CisJCQkJRGVsZnQgWnVpZCBIb2xsYW5kIDI2MjggWEcKKwkJCQlORVRIRVJMQU5EUworCiswMC0yNS05QSAgIChoZXgpCQlDRVN0cm9uaWNzIEdtYkgKKzAwMjU5QSAgICAgKGJhc2UgMTYpCQlDRVN0cm9uaWNzIEdtYkgKKwkJCQlGcmllZHJpY2hzdHIuIDI0MworCQkJCVZlbGJlcnQgIDQyNTUxCisJCQkJR0VSTUFOWQorCiswMC0yNS05QiAgIChoZXgpCQlCZWlqaW5nIFBLVU5JVFkgTWljcm9zeXN0ZW1zIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMjU5QiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFBLVU5JVFkgTWljcm9zeXN0ZW1zIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQkxMXRoIEZsb29yLCBSZXNvdXJjZSBQbGF6YSwgTm8uMTUxIE5vcnRoIFpob25nZ3VhbmN1biBTdHJlZXQKKwkJCQlIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgwCisJCQkJQ0hJTkEKKworMDAtMjUtOUMgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCiswMDI1OUMgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS05RCAgIChoZXgpCQlQUklWQVRFCiswMDI1OUQgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTI1LTlFICAgKGhleCkJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCiswMDI1OUUgICAgIChiYXNlIDE2KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlCMS03LEh1YXdlaSBCYXNlLEJhbnRpYW4sIExvbmdnYW5nIERpc3RyaWN0LFNoZW5aaGVuLEd1YW5nRG9uZyxDSElOQQorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCiswMC0yNS05RiAgIChoZXgpCQlUZWNobm9EaWdpdGFsIFRlY2hub2xvZ2llcyBHbWJICiswMDI1OUYgICAgIChiYXNlIDE2KQkJVGVjaG5vRGlnaXRhbCBUZWNobm9sb2dpZXMgR21iSAorCQkJCUhhZXNzbGVyc3RyLiA4CisJCQkJRXJmdXJ0IFRodXJpbmdpYSA5OTA5NgorCQkJCUdFUk1BTlkKKworMDAtMjUtQTAgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCiswMDI1QTAgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworMDAtMjUtQTEgICAoaGV4KQkJRW5hbGFzeXMKKzAwMjVBMSAgICAgKGJhc2UgMTYpCQlFbmFsYXN5cworCQkJCTI1MCBBdmVuaWRhIENhbXBpbGxvCisJCQkJQ2FsZXhpY28gQ2FsaWZvcm5pYSA5MjIzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQTIgICAoaGV4KQkJQWx0YSBEZWZpbmljaW9uIExJTkNFTyBTLkwuCiswMDI1QTIgICAgIChiYXNlIDE2KQkJQWx0YSBEZWZpbmljaW9uIExJTkNFTyBTLkwuCisJCQkJTWFyaWEgZGUgTHVuYSAxMSwgbmF2ZSA0CisJCQkJWmFyYWdvemEgIEVzLTUwMDE4CisJCQkJU1BBSU4KKworMDAtMjUtQTMgICAoaGV4KQkJVHJpbWF4IFdpcmVsZXNzLCBJbmMuCiswMDI1QTMgICAgIChiYXNlIDE2KQkJVHJpbWF4IFdpcmVsZXNzLCBJbmMuCisJCQkJMjY3NSBTIEhvcnNlc2hvZSBEcgorCQkJCVN1aXRlIDQwMQorCQkJCU5hcGxlcyBGTCAzNDEwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQTQgICAoaGV4KQkJRXVyb0Rlc2lnbiBlbWJlZGRlZCB0ZWNobm9sb2dpZXMgR21iSAorMDAyNUE0ICAgICAoYmFzZSAxNikJCUV1cm9EZXNpZ24gZW1iZWRkZWQgdGVjaG5vbG9naWVzIEdtYkgKKwkJCQlXYWxkc3RyYcODxbhlIDRBCisJCQkJS2lyY2hkb3JmIGEuZC4gQW1wZXIgQmF5ZXJuIDg1NDE0CisJCQkJR0VSTUFOWQorCiswMC0yNS1BNSAgIChoZXgpCQlXYWxudXQgTWVkaWEgTmV0d29yaworMDAyNUE1ICAgICAoYmFzZSAxNikJCVdhbG51dCBNZWRpYSBOZXR3b3JrCisJCQkJNDQwIE4gV29sZmUgUmQKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUE2ICAgKGhleCkJCUNlbnRyYWwgTmV0d29yayBTb2x1dGlvbiBDby4sIEx0ZC4KKzAwMjVBNiAgICAgKGJhc2UgMTYpCQlDZW50cmFsIE5ldHdvcmsgU29sdXRpb24gQ28uLCBMdGQuCisJCQkJNTg0LTEsIFBhamFuZy1Eb25nLCBKYW5nQW4tR3UKKwkJCQlTdXdvbi1TaSwgS3l1bmdnaS1EbyA0NDAtODU0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LUE3ICAgKGhleCkJCUNvbXZlcmdlLCBJbmMuCiswMDI1QTcgICAgIChiYXNlIDE2KQkJQ29tdmVyZ2UsIEluYy4KKwkJCQk1MzkwIFRyaWFuZ2xlIFBhcmt3YXkKKwkJCQlTdWl0ZSAzMDAKKwkJCQlOb3Jjcm9zcyBHQSAzMDA5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQTggICAoaGV4KQkJS29udHJvbiAoQmVpSmluZykgVGVjaG5vbG9neSBDby4sTHRkCiswMDI1QTggICAgIChiYXNlIDE2KQkJS29udHJvbiAoQmVpSmluZykgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJMTcgQnVpbGRpbmcsIEJsb2NrICMxLEFCUC4gIDE4OCBXZXN0ZXJuIFNvdXRoIDR0aCBSaW5nIFJvYWQKKwkJCQlCZWlKaW5nICAxMDAwNzAKKwkJCQlDSElOQQorCiswMC0yNS1BOSAgIChoZXgpCQlTaGFuZ2hhaSBFbWJlZHdheSBJbmZvcm1hdGlvbiBUZWNobm9sb2dpZXMgQ28uLEx0ZAorMDAyNUE5ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEVtYmVkd2F5IEluZm9ybWF0aW9uIFRlY2hub2xvZ2llcyBDby4sTHRkCisJCQkJMkYsQnVpbGRpbmcgOSxMdWppYXp1aSBTb2Z0d2FyZSBQYXJrLCBOby4yMCxMYW5lIDkxLEUnU2hhbiBSb2FkCisJCQkJU2hhbmdoYWkgIDIwMDEyNworCQkJCUNISU5BCisKKzAwLTI1LUFBICAgKGhleCkJCUJlaWppbmcgU291bCBUZWNobm9sb2d5IENvLixMdGQuCiswMDI1QUEgICAgIChiYXNlIDE2KQkJQmVpamluZyBTb3VsIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQlSb29tIDYwNixYaW56aGVuZyBPZmZpY2UgQnVpbGRpbmcKKwkJCQlOby4xIENoYW5nd2EgTWlkZGxlIFN0cmVldCxIYWlkaWFuIERpc3RyaWN0LgorCQkJCUJFSUpJTkcgIDEwMDA4OQorCQkJCUNISU5BCisKKzAwLTI1LUFCICAgKGhleCkJCUFJTyBMQ0QgUEMgQlUgLyBUUFYKKzAwMjVBQiAgICAgKGJhc2UgMTYpCQlBSU8gTENEIFBDIEJVIC8gVFBWCisJCQkJMTBGLiwgTm8uLCAyMzAsIExpYW5jaGVuZyBSZC4KKwkJCQlaaG9uZ2hlIENpdHkgVGFpcGVpIFRhaXdhbiAyMzU1MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtQUMgICAoaGV4KQkJSS1UZWNoIGNvcnBvcmF0aW9uCiswMDI1QUMgICAgIChiYXNlIDE2KQkJSS1UZWNoIGNvcnBvcmF0aW9uCisJCQkJMS0xNSBTaGluLW9nYXdhIG1hY2hpCisJCQkJU2hpbmp5dWt1LWt1IFRva3lvIDE2Mi0wODE0CisJCQkJSkFQQU4KKworMDAtMjUtQUQgICAoaGV4KQkJTWFudWZhY3R1cmluZyBSZXNvdXJjZXMgSW50ZXJuYXRpb25hbAorMDAyNUFEICAgICAoYmFzZSAxNikJCU1hbnVmYWN0dXJpbmcgUmVzb3VyY2VzIEludGVybmF0aW9uYWwKKwkJCQkxNjAwIFVuaW9uIEhpbGwgUm9hZAorCQkJCUFscGhhcmV0dGEgR0EgMzAwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUFFICAgKGhleCkJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorMDAyNUFFICAgICAoYmFzZSAxNikJCU1pY3Jvc29mdCBDb3Jwb3JhdGlvbgorCQkJCU9uZSBNaWNyb3NvZnQgV2F5CisJCQkJUmVkbW9uZCBXYXNoaW5ndG9uIDk4MDUyLTYzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUFGICAgKGhleCkJCUNPTUZJTEUgVGVjaG5vbG9neQorMDAyNUFGICAgICAoYmFzZSAxNikJCUNPTUZJTEUgVGVjaG5vbG9neQorCQkJCUd1cm8gNSBkb25nLCBHdXJvLWd1CisJCQkJMTA0LTUKKwkJCQlTZW91bCAgMTUyLTg0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS1CMCAgIChoZXgpCQlTY2htYXJ0eiBJbmMKKzAwMjVCMCAgICAgKGJhc2UgMTYpCQlTY2htYXJ0eiBJbmMKKwkJCQkyMzA3IFZhbGVyaWFuIFRybAorCQkJCVJvdW5kIFJvY2sgVFggNzg2NjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUIxICAgKGhleCkJCU1heWEtQ3JlYXRpb24gQ29ycG9yYXRpb24KKzAwMjVCMSAgICAgKGJhc2UgMTYpCQlNYXlhLUNyZWF0aW9uIENvcnBvcmF0aW9uCisJCQkJM0YsIEJ1aWxkaW5nIE0tMTAsIENlbnRyZSBvZCBIaS1UZWNoIEluZC4gRGlzdC4KKwkJCQlTaGVuemhlbiAgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjUtQjIgICAoaGV4KQkJTEZLLUxlbmtmbHVna8ODwrZycGVyc3lzdGVtZSBHbWJICiswMDI1QjIgICAgIChiYXNlIDE2KQkJTEZLLUxlbmtmbHVna8ODwrZycGVyc3lzdGVtZSBHbWJICisJCQkJTGFuZHNodXRlciBTdHJhw4PFuGUgIDI2CisJCQkJVW50ZXJzY2hsZWnDg8W4aGVpbSBCYXZhcmlhIDg1NzE2CisJCQkJR0VSTUFOWQorCiswMC0yNS1CMyAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAyNUIzICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCU1TIDYuMy4wNDkKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1CNCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI1QjQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQjUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNUI1ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUI2ICAgKGhleCkJCVRlbGVjb20gRk0KKzAwMjVCNiAgICAgKGJhc2UgMTYpCQlUZWxlY29tIEZNCisJCQkJODk1IFBseW1vdXRoIFJvYWQKKwkJCQlTbG91Z2ggQmVya3MgU0wxIDRMUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI1LUI3ICAgKGhleCkJCUNvc3RhciAgZWxlY3Ryb25pY3MsIGluYy4sCiswMDI1QjcgICAgIChiYXNlIDE2KQkJQ29zdGFyICBlbGVjdHJvbmljcywgaW5jLiwKKwkJCQkzZmwsLTEgbm8gMTMsbGFuZSAxMjAsbmVpLWh1IHJvYWQgc2VjLjEsCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LUI4ICAgKGhleCkJCUFnaWxlIENvbW11bmljYXRpb25zLCBJbmMuCiswMDI1QjggICAgIChiYXNlIDE2KQkJQWdpbGUgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkxMjQyNyBSZW53aWNrIERyCisJCQkJUmFuY2hvIEN1Y2Ftb25nYSBDYWxpZm9ybmlhIDkxNzM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1COSAgIChoZXgpCQlBZ2lsaW5rIFN5c3RlbXMgQ29ycC4KKzAwMjVCOSAgICAgKGJhc2UgMTYpCQlBZ2lsaW5rIFN5c3RlbXMgQ29ycC4KKwkJCQkjMzAwLTEyNzUgV2VzdCA2dGggQXZlCisJCQkJVmFuY291dmVyIEJDIFY2SCAxQTYKKwkJCQlDQU5BREEKKworMDAtMjUtQkEgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQgSVBECiswMDI1QkEgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQgSVBECisJCQkJNzAxIEUuIE1pZGRsZWZpZWxkIFJkLgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUJCICAgKGhleCkJCUlOTkVSSU5UIENvLiwgTHRkLgorMDAyNUJCICAgICAoYmFzZSAxNikJCUlOTkVSSU5UIENvLiwgTHRkLgorCQkJCURvbmd5b3VuZyBDZW50cmFsVG93ZXIgIzIwMiwgR2V1bWp1bmctZG9uZywKKwkJCQlHdW5wby1zaSxLeXVuZ2dpLWRvLDQzNS0wNTAgU291dGggS09SRUEuCisJCQkJR3VucG8tc2kgS3l1bmdnaS1kbyA0MzAwNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtQkMgICAoaGV4KQkJQXBwbGUsIEluYworMDAyNUJDICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUJEICAgKGhleCkJCUl0YWxkYXRhIEluZ2VnbmVyaWEgZGVsbCdJZGVhIFMucC5BLgorMDAyNUJEICAgICAoYmFzZSAxNikJCUl0YWxkYXRhIEluZ2VnbmVyaWEgZGVsbCdJZGVhIFMucC5BLgorCQkJCXZpYWxlIEVyb2kgZGkgQ2VmYWxvbmlhIDEyMworCQkJCVJvbWEgIDAwMTI4CisJCQkJSVRBTFkKKworMDAtMjUtQkUgICAoaGV4KQkJVGVrdHJhcCBTeXN0ZW1zIEluYy4KKzAwMjVCRSAgICAgKGJhc2UgMTYpCQlUZWt0cmFwIFN5c3RlbXMgSW5jLgorCQkJCTE1IEJ1dGVhdSBTdC4KKwkJCQlTdWl0ZSAyMzAtOQorCQkJCUdhdGluZWF1IFF1ZWJlYyBKOFogMVY0CisJCQkJQ0FOQURBCisKKzAwLTI1LUJGICAgKGhleCkJCVdpcmVsZXNzIENhYmxlcyBJbmMuCiswMDI1QkYgICAgIChiYXNlIDE2KQkJV2lyZWxlc3MgQ2FibGVzIEluYy4KKwkJCQkyODgwIFphbmtlciBSZCwgU3RlIDIwMworCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1DMCAgIChoZXgpCQlaaWxsaW9uVFYgQ29ycG9yYXRpb24KKzAwMjVDMCAgICAgKGJhc2UgMTYpCQlaaWxsaW9uVFYgQ29ycG9yYXRpb24KKwkJCQkxMTcwIEtpZmVyIFJvYWQKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUMxICAgKGhleCkJCU5hd29vIEtvcmVhIENvcnAuCiswMDI1QzEgICAgIChiYXNlIDE2KQkJTmF3b28gS29yZWEgQ29ycC4KKwkJCQk0RmwuLCBIYW53b24gQmxkZy4sIDYtMSwgU3VuYWUtZG9uZywgQnVuZGFuZy1ndSwKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjMtODI1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LUMyICAgKGhleCkJCVJpbmdCZWxsIENvLixMdGQuCiswMDI1QzIgICAgIChiYXNlIDE2KQkJUmluZ0JlbGwgQ28uLEx0ZC4KKwkJCQkxMDU4NiBLaW5nR2VvcmdlIEh3eQorCQkJCVN1cnJleSBCLkMgVjNUIDJYMworCQkJCUNBTkFEQQorCiswMC0yNS1DMyAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzAwMjVDMyAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlDQVJSRVRFUkEgQkFTRSBBRVJFQSAjIDU4NTAKKwkJCQlaYXBvcGFuIEphbGlzY28gNDQxMzAKKwkJCQlNRVhJQ08KKworMDAtMjUtQzQgICAoaGV4KQkJUnVja3VzIFdpcmVsZXNzCiswMDI1QzQgICAgIChiYXNlIDE2KQkJUnVja3VzIFdpcmVsZXNzCisJCQkJODgwIFdlc3QgTWF1ZGUgQXZlLgorCQkJCVN1aXRlIDEwMQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtQzUgICAoaGV4KQkJU3RhciBMaW5rIENvbW11bmljYXRpb24gUHZ0LiBMdGQuCiswMDI1QzUgICAgIChiYXNlIDE2KQkJU3RhciBMaW5rIENvbW11bmljYXRpb24gUHZ0LiBMdGQuCisJCQkJSFIxMTQvNiAmIEhyMTMyLzYsIFB1bHByZWhsYWRwdXIsCisJCQkJU3VyYWoga3VuZCBSb2FkLCBOZWFyIEJhZGFycHVyLAorCQkJCU5ldyBEZWxoaSAgMTEwMDQ0CisJCQkJSU5ESUEKKworMDAtMjUtQzYgICAoaGV4KQkJa2FzZXJjb3JwLCBsdGQKKzAwMjVDNiAgICAgKGJhc2UgMTYpCQlrYXNlcmNvcnAsIGx0ZAorCQkJCVNvdXRoIDIwLEdhb2J1IFJvYWQsR2FvYnUgVG93bgorCQkJCURvbmd3YW4gR3Vhbmdkb25nIDUyMzAwMAorCQkJCUNISU5BCisKKzAwLTI1LUM3ICAgKGhleCkJCWFsdGVrIENvcnBvcmF0aW9uCiswMDI1QzcgICAgIChiYXNlIDE2KQkJYWx0ZWsgQ29ycG9yYXRpb24KKwkJCQkzRiwgTm8uIDEwLCBMaS1Ic2luIFJvYWQsIFNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhzaW5jaHUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjUtQzggICAoaGV4KQkJUy1BY2Nlc3MgR21iSAorMDAyNUM4ICAgICAoYmFzZSAxNikJCVMtQWNjZXNzIEdtYkgKKwkJCQlPYmVyaGF1c2Vuc3RyYXNzZSA0NworCQkJCVdldHRzd2lsIGEvQSBadWVyaWNoIDg5MDcKKwkJCQlTV0lUWkVSTEFORAorCiswMC0yNS1DOSAgIChoZXgpCQlTSEVOWkhFTiBIVUFQVSBESUdJVEFMIENPLiwgTFRECiswMDI1QzkgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gSFVBUFUgRElHSVRBTCBDTy4sIExURAorCQkJCUZ1dGlhbiBEaXN0cmljdCxDaGVnb25nbWlhbyxUaWFuQW4gQ3liZXJwYXJrCisJCQkJMTcvRiBFYXN0LEhpZ2gtVGVjaCBQbGF6YSwgUGhhc2UgwqLDsgorCQkJCVNoZW5aaGVuIEd1YW5nZG9uZyBQcm92aW5jZSA1MTgwNDAKKwkJCQlDSElOQQorCiswMC0yNS1DQSAgIChoZXgpCQlMUyBSZXNlYXJjaCwgTExDCiswMDI1Q0EgICAgIChiYXNlIDE2KQkJTFMgUmVzZWFyY2gsIExMQworCQkJCVc2NiBOMjIwIENvbW1lcmNlIENvdXJ0CisJCQkJQ2VkYXJidXJnIFdJIDUzMDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1DQiAgIChoZXgpCQlSZWluZXIgU0NUCiswMDI1Q0IgICAgIChiYXNlIDE2KQkJUmVpbmVyIFNDVAorCQkJCVJlaW5lciBLYXJ0ZW5nZXLDpHRlIEdtYkggJiBDby4gS0cuCisJCQkJR29ldGhlc3RyLiAxNAorCQkJCUZ1cnR3YW5nZW4gIDc4MTIwCisJCQkJR0VSTUFOWQorCiswMC0yNS1DQyAgIChoZXgpCQlNb2JpbGUgQ29tbXVuaWNhdGlvbnMgS29yZWEgSW5jb3Jwb3JhdGVkCiswMDI1Q0MgICAgIChiYXNlIDE2KQkJTW9iaWxlIENvbW11bmljYXRpb25zIEtvcmVhIEluY29ycG9yYXRlZAorCQkJCTEwMTEtMTAxMiwgU3V3b24gSGlnaCBWZW50dXJlIFZhbGxleSwKKwkJCQk5NTggR29zYWVrLWRvbmcsIEd3b25zZW9uLWd1LAorCQkJCVN1d29uLXNpLCBHeWVvbmdnaS1kbywgNDQxLTM2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS1DRCAgIChoZXgpCQlTa3lsYW5lIE9wdGljcworMDAyNUNEICAgICAoYmFzZSAxNikJCVNreWxhbmUgT3B0aWNzCisJCQkJUnVlIGQnQXJsb24sIDYKKwkJCQlXaW5kaG9mICA4Mzk5CisJCQkJTFVYRU1CT1VSRworCiswMC0yNS1DRSAgIChoZXgpCQlJbm5lclNwYWNlCiswMDI1Q0UgICAgIChiYXNlIDE2KQkJSW5uZXJTcGFjZQorCQkJCVBPIEJveCAyMTg2CisJCQkJR3JhbmQgUmFwaWRzIE1JIDQ5NTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1DRiAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNUNGICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCiswMC0yNS1EMCAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMDAyNUQwICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJIENvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworMDAtMjUtRDEgICAoaGV4KQkJRWFzdGVjaCBFbGVjdHJvbmljcyAoVGFpd2FuKSBJbmMuCiswMDI1RDEgICAgIChiYXNlIDE2KQkJRWFzdGVjaCBFbGVjdHJvbmljcyAoVGFpd2FuKSBJbmMuCisJCQkJMTNGLCBOby4gOTksIFNlYy4gMSwgTmFua2FuIFJvYWQsIEx1Y2h1IFNoaWFuZworCQkJCVRhb3l1YW4gSHNpZW4gMzM4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNS1EMiAgIChoZXgpCQlJbnBlZ1Zpc2lvbiBDby4sIEx0ZAorMDAyNUQyICAgICAoYmFzZSAxNikJCUlucGVnVmlzaW9uIENvLiwgTHRkCisJCQkJMjI2LTMsIEJ1Z29rLWRvbmcsIEdldW1qZW9uZy1ndSwKKwkJCQlCdXNhbiAgNjA5LTMyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNS1EMyAgIChoZXgpCQlBenVyZVdhdmUgVGVjaG5vbG9naWVzLCBJbmMKKzAwMjVEMyAgICAgKGJhc2UgMTYpCQlBenVyZVdhdmUgVGVjaG5vbG9naWVzLCBJbmMKKwkJCQk4RiAuLCBOby45NCwgQmFvemhvbmcgUmQuCisJCQkJWGluZGlhbiBDaXR5ICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LUQ0ICAgKGhleCkJCUZvcnRyZXNzIFRlY2hub2xvZ2llcworMDAyNUQ0ICAgICAoYmFzZSAxNikJCUZvcnRyZXNzIFRlY2hub2xvZ2llcworCQkJCTIgVGVjaG5vbG9neSBQYXJrIERyCisJCQkJV2VzdGZvcmQgTUEgMDE4ODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUQ1ICAgKGhleCkJCVJvYm9uaWNhIChQdHkpIEx0ZAorMDAyNUQ1ICAgICAoYmFzZSAxNikJCVJvYm9uaWNhIChQdHkpIEx0ZAorCQkJCTQxIFBhcmsgQXZlbnVlIE5vcnRoCisJCQkJSGlnaHdheSBCdXNpbmVzcyBQYXJrCisJCQkJQ2VudHVyaW9uIEdhdXRlbmcgMDA0NgorCQkJCVNPVVRIIEFGUklDQQorCiswMC0yNS1ENiAgIChoZXgpCQlUaGUgS3JvZ2VyIENvLgorMDAyNUQ2ICAgICAoYmFzZSAxNikJCVRoZSBLcm9nZXIgQ28uCisJCQkJMTE0NTAgR3Jvb21zIFJvYWQKKwkJCQlCbHVlIEFzaCBPSCA0NTI0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtRDcgICAoaGV4KQkJQ0VETworMDAyNUQ3ICAgICAoYmFzZSAxNikJCUNFRE8KKwkJCQlWaWRlbnNrYSAxMjcKKwkJCQlCUk5PICA2MTkwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTI1LUQ4ICAgKGhleCkJCUtPUkVBIE1BSU5URU5BTkNFCiswMDI1RDggICAgIChiYXNlIDE2KQkJS09SRUEgTUFJTlRFTkFOQ0UKKwkJCQkzRiBIQUVMSU0gQlVJRElORyAxMDMtNywgR1VSTy01RE9ORworCQkJCUdVUk8tR1UsCisJCQkJU0VPVUwgIDE1Mi04NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtRDkgICAoaGV4KQkJRGF0YUZhYiBTeXN0ZW1zIEluYy4KKzAwMjVEOSAgICAgKGJhc2UgMTYpCQlEYXRhRmFiIFN5c3RlbXMgSW5jLgorCQkJCTM4NS0zIEhvbmd6dW4gUm9hZAorCQkJCVBpbmd6aGVuIENpdHkgVGFveXVhbiBDb3VudHkgMzI0NjYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LURBICAgKGhleCkJCVNlY3VyYSBLZXkKKzAwMjVEQSAgICAgKGJhc2UgMTYpCQlTZWN1cmEgS2V5CisJCQkJMjAzMDEgTm9yZGhvZmYgU3QuCisJCQkJQ2hhdHN3b3J0aCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjUtREIgICAoaGV4KQkJQVRJIEVsZWN0cm9uaWNzKFNoZW56aGVuKSBDby4sIExURAorMDAyNURCICAgICAoYmFzZSAxNikJCUFUSSBFbGVjdHJvbmljcyhTaGVuemhlbikgQ28uLCBMVEQKKwkJCQkyRiwxc3QgQnVsaWRpbmcsVGFuZ3lhbnNoYW4gSW5kdXN0cmlhbCBQYXJrLAorCQkJCVRhbmdrZW5nIFZpbGxhZ2UsU2hpeWFuIFRvd24sCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwOAorCQkJCUNISU5BCisKKzAwLTI1LURDICAgKGhleCkJCVN1bWl0b21vIEVsZWN0cmljIE5ldHdvcmtzLCBJbmMKKzAwMjVEQyAgICAgKGJhc2UgMTYpCQlTdW1pdG9tbyBFbGVjdHJpYyBOZXR3b3JrcywgSW5jCisJCQkJMS0xLTMsIFNoaW1heWEsIEtvbm9oYW5hLWt1CisJCQkJT3Nha2EgT3Nha2EgUHJlZmVjdHVyZSA1NTQtMDAyNAorCQkJCUpBUEFOCisKKzAwLTI1LUREICAgKGhleCkJCVNVTk5ZVEVLIElORk9STUFUSU9OIENPLiwgTFRELgorMDAyNUREICAgICAoYmFzZSAxNikJCVNVTk5ZVEVLIElORk9STUFUSU9OIENPLiwgTFRELgorCQkJCTEyRiwgTk8uIDg4LCBIU0lOLVRFIFJPQUQKKwkJCQlTQU4gQ0hVTkcgQ0lUWQorCQkJCVRBSVBFSSBIU0lFTiAgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNS1ERSAgIChoZXgpCQlQcm9iaXRzIENvLiwgTFRELgorMDAyNURFICAgICAoYmFzZSAxNikJCVByb2JpdHMgQ28uLCBMVEQuCisJCQkJIzE1MDIsIEtvbG9uIFNjaWVuY2UgVmFsbGV5IElJLCA4MTEKKwkJCQlHdXJvLURvbmcsIEd1cm8tR3UsCisJCQkJU2VvdWwgIDE1Mi04NzgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtREYgICAoaGV4KQkJUFJJVkFURQorMDAyNURGICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC0yNS1FMCAgIChoZXgpCQlDZWVkVGVjIFNkbiBCaGQKKzAwMjVFMCAgICAgKGJhc2UgMTYpCQlDZWVkVGVjIFNkbiBCaGQKKwkJCQkzMDMtNC01LCBLcnlzdGFsIFBvaW50IEJ1c2luZXNzIENlbnRlcgorCQkJCUJheWFuIExlcGFzIFBlbmFuZyAxMTkwMAorCQkJCU1BTEFZU0lBCisKKzAwLTI1LUUxICAgKGhleCkJCVNIQU5HSEFJIFNFRVlPTyBFTEVDVFJPTklDICYgVEVDSE5PTE9HWSBDTy4sIExURAorMDAyNUUxICAgICAoYmFzZSAxNikJCVNIQU5HSEFJIFNFRVlPTyBFTEVDVFJPTklDICYgVEVDSE5PTE9HWSBDTy4sIExURAorCQkJCVJNNzAxLFhJTidBTiBCVUlMRElORyw5OSBUSUFOWkhPVSBSRCxYVUhVSSBESVNUUklDVCxTSEFOR0hBSQorCQkJCVNIQU5HSEFJICAyMDAyMzMKKwkJCQlDSElOQQorCiswMC0yNS1FMiAgIChoZXgpCQlFdmVyc3ByaW5nIEluZHVzdHJ5IENvLiwgTHRkLgorMDAyNUUyICAgICAoYmFzZSAxNikJCUV2ZXJzcHJpbmcgSW5kdXN0cnkgQ28uLCBMdGQuCisJCQkJN0YuLCBOby4gNjA5LCBTZWMgMSwgV2Fuc2hvdSBSZC4KKwkJCQlHdWVpc2hhbiBUb3duc2hpcCBUYW95dWFuIENvdW50eSAzMzMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LUUzICAgKGhleCkJCUhhbnNoaW5pdCBJbmMuCiswMDI1RTMgICAgIChiYXNlIDE2KQkJSGFuc2hpbml0IEluYy4KKwkJCQlEb25nLVdvbiBCbGQgM0YsIDM5NS0xMywgR2FsLU1hIDIsIFNlby1HdQorCQkJCURhZWplb24gIDMwMi04MDkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjUtRTQgICAoaGV4KQkJT01OSS1XaUZpLCBMTEMKKzAwMjVFNCAgICAgKGJhc2UgMTYpCQlPTU5JLVdpRmksIExMQworCQkJCTEwNyBQaW5lIEhpbGwgUm9hZAorCQkJCUJlcndpY2sgTWFpbmUgMDM5MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUU1ICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzIEluYworMDAyNUU1ICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzIEluYworCQkJCTYwLTM5ICxHYXNhbi1Eb25nCisJCQkJR3VtY2hvbi1ndQorCQkJCVNlb3VsICAxNTMtMDIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LUU2ICAgKGhleCkJCUJlbGdpYW4gTW9uaXRvcmluZyBTeXN0ZW1zIGJ2YmEKKzAwMjVFNiAgICAgKGJhc2UgMTYpCQlCZWxnaWFuIE1vbml0b3JpbmcgU3lzdGVtcyBidmJhCisJCQkJVGguIFNldmVuc2xhYW4gMTA2CisJCQkJS29ydHJpamsgV1ZMIDg1MDAKKwkJCQlCRUxHSVVNCisKKzAwLTI1LUU3ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCiswMDI1RTcgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCAgMjIxODgKKwkJCQlTV0VERU4KKworMDAtMjUtRTggICAoaGV4KQkJSWRhaG8gVGVjaG5vbG9neQorMDAyNUU4ICAgICAoYmFzZSAxNikJCUlkYWhvIFRlY2hub2xvZ3kKKwkJCQkzOTAgV2FrYXJhIHdheQorCQkJCVNhbHQgbGFrZSBDaXR5IFVUIDg0MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1FOSAgIChoZXgpCQlpLW1hdGUgRGV2ZWxvcG1lbnQsIEluYy4KKzAwMjVFOSAgICAgKGJhc2UgMTYpCQlpLW1hdGUgRGV2ZWxvcG1lbnQsIEluYy4KKwkJCQk4MzgzIDE1OHRoIEF2ZS4gTi5FLiwgU3VpdGUgMzAwLCBSZWRtb25kLAorCQkJCVdBIDk4MDUyLTM4NzEKKwkJCQlXYXNoaW5ndG9uIFdBIDk4MDUyLTM4NzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUVBICAgKGhleCkJCUlwaGlvbiBCVgorMDAyNUVBICAgICAoYmFzZSAxNikJCUlwaGlvbiBCVgorCQkJCVdpbGxlbXN0cmFhdCAxMDYKKwkJCQlFaW5kaG92ZW4gIDU2MTZHRQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLTI1LUVCICAgKGhleCkJCVJldXRlY2ggUmFkYXIgU3lzdGVtcyAoUFRZKSBMdGQKKzAwMjVFQiAgICAgKGJhc2UgMTYpCQlSZXV0ZWNoIFJhZGFyIFN5c3RlbXMgKFBUWSkgTHRkCisJCQkJMzUgRWxlY3Ryb24gQXZlbnVlCisJCQkJVGVjaG5vcGFyaworCQkJCVN0ZWxsZW5ib3NjaCBXZXN0ZXJuIENhcGUgNzYwMAorCQkJCVNPVVRIIEFGUklDQQorCiswMC0yNS1FQyAgIChoZXgpCQlIdW1hbndhcmUKKzAwMjVFQyAgICAgKGJhc2UgMTYpCQlIdW1hbndhcmUKKwkJCQk0NDUgcnVlIGR1IFBhcmMgSW5kdXN0cmllbAorCQkJCUxvbmd1ZXVpbCBRdcOpYmVjIEo0SCAzVjcKKwkJCQlDQU5BREEKKworMDAtMjUtRUQgICAoaGV4KQkJTnVWbyBUZWNobm9sb2dpZXMgTExDCiswMDI1RUQgICAgIChiYXNlIDE2KQkJTnVWbyBUZWNobm9sb2dpZXMgTExDCisJCQkJMzAxNSBLdXN0b20gRHJpdmUKKwkJCQlIZWJyb24gS1kgNDEwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUVFICAgKGhleCkJCUF2dGV4IEx0ZAorMDAyNUVFICAgICAoYmFzZSAxNikJCUF2dGV4IEx0ZAorCQkJCVVuaXQgRzUgQ2FwaXRhbCBCdXNpbmVzcyBQYXJrCisJCQkJUGFya3dheQorCQkJCUNhcmRpZmYgIENGMyAyUFgKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC0yNS1FRiAgIChoZXgpCQlJLVRFQyBDby4sIEx0ZC4KKzAwMjVFRiAgICAgKGJhc2UgMTYpCQlJLVRFQyBDby4sIEx0ZC4KKwkJCQk3L0YsS0FXQVJBTUFDSEkgS09ZTyBCTERHLjMtNC0zLEtBV0FSQU1DSEksQ0hVTy1LVSwKKwkJCQlPU0FLQSAgNTQxLTAwNDgKKwkJCQlKQVBBTgorCiswMC0yNS1GMCAgIChoZXgpCQlTdWdhIEVsZWN0cm9uaWNzIExpbWl0ZWQKKzAwMjVGMCAgICAgKGJhc2UgMTYpCQlTdWdhIEVsZWN0cm9uaWNzIExpbWl0ZWQKKwkJCQlVbml0cyAxOTA0LTE5MDcsIENoZXZhbGllciBDb21tZXJjaWFsIENlbnRyZSwKKwkJCQk4IFdhbmcgSG9pIFJvYWQsICwKKwkJCQlLb3dsb29uIEJheSBIb25nIEtvbmcgCisJCQkJQ0hJTkEKKworMDAtMjUtRjEgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzAwMjVGMSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUYyICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDI1RjIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNS1GMyAgIChoZXgpCQlOb3Jkd2VzdGRldXRzY2hlIFrDpGhsZXJyZXZpc2lvbgorMDAyNUYzICAgICAoYmFzZSAxNikJCU5vcmR3ZXN0ZGV1dHNjaGUgWsOkaGxlcnJldmlzaW9uCisJCQkJSW5nLiBBdWcuIEtuZW1leWVyIEdtYkggJiBDby4gS0cKKwkJCQlIZWlkZXdlZyAzMworCQkJCUJhZCBMYWVyIE5pZWRlcnNhY2hzZW4gNDkxOTYKKwkJCQlHRVJNQU5ZCisKKzAwLTI1LUY0ICAgKGhleCkJCUtvQ28gQ29ubmVjdG9yIEFHCiswMDI1RjQgICAgIChiYXNlIDE2KQkJS29DbyBDb25uZWN0b3IgQUcKKwkJCQlNYXJpZW5zdHJhw4PFuGUgMTIKKwkJCQlCZXJsaW4gIDEwMTE3CisJCQkJR0VSTUFOWQorCiswMC0yNS1GNSAgIChoZXgpCQlEVlMgS29yZWEsIENvLiwgTHRkCiswMDI1RjUgICAgIChiYXNlIDE2KQkJRFZTIEtvcmVhLCBDby4sIEx0ZAorCQkJCTQ5Ny0zLCBTYW5nSGEtRG9uZywgR2loZXVuZy1ndQorCQkJCVImRCBIYXJkd2FyZSAyVGVhbQorCQkJCVlvbmctSW4gY2l0eSBHeWVvbmdnaS1kbyA0NDYtOTE0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI1LUY2ICAgKGhleCkJCW5ldFRBTEsuY29tLCBJbmMuCiswMDI1RjYgICAgIChiYXNlIDE2KQkJbmV0VEFMSy5jb20sIEluYy4KKwkJCQkxMTAwIE5XIDE2M1JEIERSSVZFCisJCQkJU1VJVEUgQi00CisJCQkJTk9SVEggTUlBTUkgQkVBQ0ggRkwgMzMxNjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUY3ICAgKGhleCkJCUFuc2FsZG8gU1RTIFVTQQorMDAyNUY3ICAgICAoYmFzZSAxNikJCUFuc2FsZG8gU1RTIFVTQQorCQkJCTEwMDAgVGVjaG5vbG9neSBEcml2ZQorCQkJCVVuaW9uIFN3aXRjaCAmIFNpZ25hbCBCdWlsZGluZworCQkJCVBpdHRzYnVyZ2ggUEEgMTUyMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI1LUY5ICAgKGhleCkJCUdNSyBlbGVjdHJvbmljIGRlc2lnbiBHbWJICiswMDI1RjkgICAgIChiYXNlIDE2KQkJR01LIGVsZWN0cm9uaWMgZGVzaWduIEdtYkgKKwkJCQlEYWltbGVyc3RyLiA4CisJCQkJV2VybmJlcmctS29lYmxpdHogQmF2YXJpYSBELTkyNTMzCisJCQkJR0VSTUFOWQorCiswMC0yNS1GQSAgIChoZXgpCQlKJk0gQW5hbHl0aWsgQUcKKzAwMjVGQSAgICAgKGJhc2UgMTYpCQlKJk0gQW5hbHl0aWsgQUcKKwkJCQlXaWxseS1NZXNzZXJzY2htaXR0LVN0cmFzc2UgOAorCQkJCUVzc2luZ2VuIEJXIDczNDU3CisJCQkJR0VSTUFOWQorCiswMC0yNS1GQiAgIChoZXgpCQlUdW5zdGFsbCBIZWFsdGhjYXJlIEEvUworMDAyNUZCICAgICAoYmFzZSAxNikJCVR1bnN0YWxsIEhlYWx0aGNhcmUgQS9TCisJCQkJU3Ryb2VtbWVuIDYKKwkJCQlOb2VycmVzdW5kYnkgIDk0MDAKKwkJCQlERU5NQVJLCisKKzAwLTI1LUZDICAgKGhleCkJCUVOREEgRU5EVVNUUklZRUwgRUxFS1RST05JSyBMVEQuIFNUSS4KKzAwMjVGQyAgICAgKGJhc2UgMTYpCQlFTkRBIEVORFVTVFJJWUVMIEVMRUtUUk9OSUsgTFRELiBTVEkuCisJCQkJWS4gRHVkdWxsdSBCYXJiYXJvcyBDLiBLdXR1cCBTLiBOby4gMjAKKwkJCQlVbXJhbml5ZQorCQkJCUlzdGFuYnVsICAzNDc3NQorCQkJCVRVUktFWQorCiswMC0yNS1GRCAgIChoZXgpCQlPQlIgQ2VudHJ1bSBUZWNobmlraSBNb3Jza2llaiBTLkEuCiswMDI1RkQgICAgIChiYXNlIDE2KQkJT0JSIENlbnRydW0gVGVjaG5pa2kgTW9yc2tpZWogUy5BLgorCQkJCURpY2ttYW5hIDYyCisJCQkJR2R5bmlhICA4MS0xMDkKKwkJCQlQT0xBTkQKKworMDAtMjUtRkUgICAoaGV4KQkJUGlsb3QgRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KKzAwMjVGRSAgICAgKGJhc2UgMTYpCQlQaWxvdCBFbGVjdHJvbmljcyBDb3Jwb3JhdGlvbgorCQkJCU5vLiAyLCBUenUtQ2hpYW5nIDNyZCBSb2FkLCBDaHVuZy1MaSBJbmR1c3RyaWFsIFpvbmUsCisJCQkJVGFveXVhbiAgSHNpZW4gMzIwNjMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI1LUZGICAgKGhleCkJCUNyZU5vdmEgVGVjaG5vbG9neSBHbWJICiswMDI1RkYgICAgIChiYXNlIDE2KQkJQ3JlTm92YSBUZWNobm9sb2d5IEdtYkgKKwkJCQlBbiBkZXIgU2NoaW5kaG9obCA3CisJCQkJU3VsemJhY2ggSGVzc2VuIDY1ODQzCisJCQkJR0VSTUFOWQorCiswMC0yNi0wMCAgIChoZXgpCQlURUFDIEF1c3RyYWxpYSBQdHkgTHRkLgorMDAyNjAwICAgICAoYmFzZSAxNikJCVRFQUMgQXVzdHJhbGlhIFB0eSBMdGQuCisJCQkJNzUgTm9ydGhnYXRlIERyaXZlCisJCQkJVGhvbWFzdG93biBWaWN0b3JpYSAzMDc0CisJCQkJQVVTVFJBTElBCisKKzAwLTI2LTAxICAgKGhleCkJCUN1dGVyYSBJbmMKKzAwMjYwMSAgICAgKGJhc2UgMTYpCQlDdXRlcmEgSW5jCisJCQkJMzI0MCBCYXlzaG9yZSBCbHZkCisJCQkJQnJpc2JhbmUgQ0EgOTQ0MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTAyICAgKGhleCkJCVNNQVJUIFRlbXBzIExMQworMDAyNjAyICAgICAoYmFzZSAxNikJCVNNQVJUIFRlbXBzIExMQworCQkJCTMwMyBTIEJ5cmtpdCBTdAorCQkJCU1pc2hhd2FrYSBJTiA0NjU0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMDMgICAoaGV4KQkJU2hlbnpoZW4gV2lzdGFyIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzAwMjYwMyAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBXaXN0YXIgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCVJtOTE5LCBTY2llbmNlICZUZWNobm9sb2d5IFNlcnZpY2UgQ2VudGVyCisJCQkJTm8uMSBRaWxpbiBSZAorCQkJCVNoZW56aGVuIEd1YW5nIERvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworMDAtMjYtMDQgICAoaGV4KQkJQXVkaW8gUHJvY2Vzc2luZyBUZWNobm9sb2d5IEx0ZAorMDAyNjA0ICAgICAoYmFzZSAxNikJCUF1ZGlvIFByb2Nlc3NpbmcgVGVjaG5vbG9neSBMdGQKKwkJCQlXaGl0ZXJvY2sgQnVzaW5lc3MgUGFyaworCQkJCTcyOSBTcHJpbmdmaWVsZCBSb2FkCisJCQkJQmVsZmFzdCBDb3VudHkgQW50cmltIEJUMTIgN0ZQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjYtMDUgICAoaGV4KQkJQ0MgU3lzdGVtcyBBQgorMDAyNjA1ICAgICAoYmFzZSAxNikJCUNDIFN5c3RlbXMgQUIKKwkJCQlCb3ggODMKKwkJCQlBbGZ0YSBTd2VkZW4gODIyMjIKKwkJCQlTV0VERU4KKworMDAtMjYtMDYgICAoaGV4KQkJUkFVTUZFTEQgR21iSAorMDAyNjA2ICAgICAoYmFzZSAxNikJCVJBVU1GRUxEIEdtYkgKKwkJCQlSZWljaGVuYmVyZ2VyIFN0ci4gMTI0CisJCQkJQmVybGluICAxMDk5OQorCQkJCUdFUk1BTlkKKworMDAtMjYtMDcgICAoaGV4KQkJRW5hYmxpbmcgVGVjaG5vbG9neSBQdHkgTHRkCiswMDI2MDcgICAgIChiYXNlIDE2KQkJRW5hYmxpbmcgVGVjaG5vbG9neSBQdHkgTHRkCisJCQkJMjMvNDQgS2luZ3MgUGFyayBSb2FkCisJCQkJV2VzdCBQZXJ0aCBXZXN0ZXJuIEF1c3RyYWxpYSA2MDA1CisJCQkJQVVTVFJBTElBCisKKzAwLTI2LTA4ICAgKGhleCkJCUFwcGxlLCBJbmMKKzAwMjYwOCAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0wOSAgIChoZXgpCQlQaHlsbGlzIENvLiwgTHRkLgorMDAyNjA5ICAgICAoYmFzZSAxNikJCVBoeWxsaXMgQ28uLCBMdGQuCisJCQkJOXRoIEZsLiwgUm9vbSAzLzQsIE5vLiA1MiwgU2VjLiAyLCBDaHVuZyBTaGFuIE5vcnRoIFJvYWQsCisJCQkJVGFpcGVpICAxMDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTBBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjYwQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0wQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI2MEIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMEMgICAoaGV4KQkJRGF0YXJhbQorMDAyNjBDICAgICAoYmFzZSAxNikJCURhdGFyYW0KKwkJCQkxODYgUHJpbmNldG9uIFJkLgorCQkJCUJsZGcuIDNBCisJCQkJV2VzdCBXaW5kc29yIE5KIDA4NTUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0wRCAgIChoZXgpCQlNaWNyb25ldGljcywgSW5jLgorMDAyNjBEICAgICAoYmFzZSAxNikJCU1pY3JvbmV0aWNzLCBJbmMuCisJCQkJMjYgSGFtcHNoaXJlIERyCisJCQkJSHVkc29uIE5IIDAzMDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0wRSAgIChoZXgpCQlBYmxhemUgU3lzdGVtcywgTExDCiswMDI2MEUgICAgIChiYXNlIDE2KQkJQWJsYXplIFN5c3RlbXMsIExMQworCQkJCTUyMyBXZXN0IFZhbGxleSBSb2FkCisJCQkJV2F5bmUgUGVubnN5bHZhbmlhIDE5MDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0wRiAgIChoZXgpCQlMaW5uIFByb2R1Y3RzIEx0ZAorMDAyNjBGICAgICAoYmFzZSAxNikJCUxpbm4gUHJvZHVjdHMgTHRkCisJCQkJR2xhc2dvdyBSb2FkCisJCQkJV2F0ZXJmb290CisJCQkJR2xhc2dvdyAgRzc2IDBFUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI2LTEwICAgKGhleCkJCUFwYWNld2F2ZSBUZWNobm9sb2dpZXMKKzAwMjYxMCAgICAgKGJhc2UgMTYpCQlBcGFjZXdhdmUgVGVjaG5vbG9naWVzCisJCQkJNDgzODkgRnJlbW9udCBCbHZkLCBTVEUjMTAwCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMTEgICAoaGV4KQkJTGljZXJhIEFCCiswMDI2MTEgICAgIChiYXNlIDE2KQkJTGljZXJhIEFCCisJCQkJVGVrbmlrcmluZ2VuIDFDCisJCQkJTGlua8O2cGluZyAgNTgzMzAKKwkJCQlTV0VERU4KKworMDAtMjYtMTIgICAoaGV4KQkJU3BhY2UgRXhwbG9yYXRpb24gVGVjaG5vbG9naWVzCiswMDI2MTIgICAgIChiYXNlIDE2KQkJU3BhY2UgRXhwbG9yYXRpb24gVGVjaG5vbG9naWVzCisJCQkJMSBSb2NrZXQgUm9hZAorCQkJCUhhd3Rob3JuZSBDQSA5MDI1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMTMgICAoaGV4KQkJRW5nZWwgQXhpbCBTLkwuCiswMDI2MTMgICAgIChiYXNlIDE2KQkJRW5nZWwgQXhpbCBTLkwuCisJCQkJUHVpZyBkZWxzIFR1ZG9ucywgNgorCQkJCVBvbC4gSW5kdXN0cmlhbCBTYW50aWdhCisJCQkJQmFyYmVyYSBkZWwgVmFsbGVzIEJhcmNlbG9uYSAwODIxMAorCQkJCVNQQUlOCisKKzAwLTI2LTE0ICAgKGhleCkJCUtUTkYKKzAwMjYxNCAgICAgKGJhc2UgMTYpCQlLVE5GCisJCQkJMjA0LERhZXJ5dW5ndGVjaG5vdG93bjEsMzI3LEdhc2FuLURvbmcsCisJCQkJR2V1bWNoZW9uLUd1LAorCQkJCVNlb3VsICAxNTMtNzcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LTE1ICAgKGhleCkJCVRlcmFjb20gTGltaXRlZAorMDAyNjE1ICAgICAoYmFzZSAxNikJCVRlcmFjb20gTGltaXRlZAorCQkJCUItODQKKwkJCQlTZWN0b3IgLSA2MAorCQkJCU5vaWRhIFV0dGFyIFByYWRlc2ggMjAxMzAxCisJCQkJSU5ESUEKKworMDAtMjYtMTYgICAoaGV4KQkJUm9zZW1vdW50IEluYy4KKzAwMjYxNiAgICAgKGJhc2UgMTYpCQlSb3NlbW91bnQgSW5jLgorCQkJCTgyMDAgTWFya2V0IEJvdWxldmFyZAorCQkJCUNoYW5oYXNzZW4gTU4gNTUzMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTE3ICAgKGhleCkJCU9FTSBXb3JsZHdpZGUKKzAwMjYxNyAgICAgKGJhc2UgMTYpCQlPRU0gV29ybGR3aWRlCisJCQkJMjkyMCBLZWxseSBBdmUKKwkJCQlXYXRlcnRvd24gU0QgNTcyMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTE4ICAgKGhleCkJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorMDAyNjE4ICAgICAoYmFzZSAxNikJCUFTVVNUZWsgQ09NUFVURVIgSU5DLgorCQkJCTE1LExpLVRlIFJkLixQZWl0b3UKKwkJCQlUYWlwZWkgVGFpd2FuIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtMTkgICAoaGV4KQkJRlJDCiswMDI2MTkgICAgIChiYXNlIDE2KQkJRlJDCisJCQkJMTUxMSBTb3V0aCBCZW5qYW1pbiBBdmVudWUKKwkJCQlNYXNvbiBDaXR5IElBIDUwNDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0xQSAgIChoZXgpCQlGZW10b2NvbW0gU3lzdGVtIFRlY2hub2xvZ3kgQ29ycC4KKzAwMjYxQSAgICAgKGJhc2UgMTYpCQlGZW10b2NvbW0gU3lzdGVtIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkyRi4tMixOby4yOCwgVGFpeXVhbiBTdC4sCisJCQkJSmh1YmVpIENpdHksIEhzaW5jaHUgQ291bnRyeSwgMzAyODgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTFCICAgKGhleCkJCUxBVVJFTCBCQU5LIE1BQ0hJTkVTIENPLiwgTFRELgorMDAyNjFCICAgICAoYmFzZSAxNikJCUxBVVJFTCBCQU5LIE1BQ0hJTkVTIENPLiwgTFRELgorCQkJCTEyLTYKKwkJCQloaWdhc2hpdGFiYXRhIDEtQ2hvbWUKKwkJCQlLaXRhLUt1IFRva3lvIDExNC0wMDEzCisJCQkJSkFQQU4KKworMDAtMjYtMUMgICAoaGV4KQkJTkVPVklBIElOQy4KKzAwMjYxQyAgICAgKGJhc2UgMTYpCQlORU9WSUEgSU5DLgorCQkJCTUwMyBMT1RURSBJVCBDQVNUTEUgMURPTkcsNTUwLTEKKwkJCQlHQVNBTi1ET05HLCBHRVVNQ0hFT04tR1UKKwkJCQlTRU9VTCAgMTUzLTc2OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi0xRCAgIChoZXgpCQlDT1AgU0VDVVJJVFkgU1lTVEVNIENPUlAuCiswMDI2MUQgICAgIChiYXNlIDE2KQkJQ09QIFNFQ1VSSVRZIFNZU1RFTSBDT1JQLgorCQkJCTR+N0YsIE5vLjUsIExhbmUgMTMwLCBNaW4tQ2h1bmcgUmQuLAorCQkJCUhzaW4gVGllbiBDaXR5CisJCQkJVGFpcGVpICAyMzE0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtMUUgICAoaGV4KQkJUUlOR0JBTkcgRUxFQyhTWikgQ08uLCBMVEQKKzAwMjYxRSAgICAgKGJhc2UgMTYpCQlRSU5HQkFORyBFTEVDKFNaKSBDTy4sIExURAorCQkJCU5vLiAyLCBxaW1pbiBSZC4gTm9ydGggRGlzdHJpY3QsIEhpZ2gtdGVjaCBJbmR1c3RyaWFsIFBhcmssIE5hbnNoYW4sCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzAwLTI2LTFGICAgKGhleCkJCVNBRSBNYWduZXRpY3MgKEguSy4pIEx0ZC4KKzAwMjYxRiAgICAgKGJhc2UgMTYpCQlTQUUgTWFnbmV0aWNzIChILksuKSBMdGQuCisJCQkJU0FFIFRlY2hub2xvZ3kgQ2VudHJlCisJCQkJNiBTY2llbmNlIFBhcmsgRWFzdCBBdmVudWUKKwkJCQlIb25nIEtvbmcgU2NpZW5jZSBQYXJrIFNoYXRpbiwgTmV3IFRlcnJpdG9yaWVzIAorCQkJCUhPTkcgS09ORworCiswMC0yNi0yMCAgIChoZXgpCQlJU0dVUyBHbWJICiswMDI2MjAgICAgIChiYXNlIDE2KQkJSVNHVVMgR21iSAorCQkJCU9iZXJkb3Jmc3RyYcODxbhlIDE4IC0gMjIKKwkJCQlWUyAtIFNjaHdlbm5pbmdlbiBCVyA3ODA1NAorCQkJCUdFUk1BTlkKKworMDAtMjYtMjEgICAoaGV4KQkJSW50ZWxpQ2xvdWQgVGVjaG5vbG9neSBJbmMuCiswMDI2MjEgICAgIChiYXNlIDE2KQkJSW50ZWxpQ2xvdWQgVGVjaG5vbG9neSBJbmMuCisJCQkJODk1IERvdmUgU3QuCisJCQkJU3RlLiAzMDAKKwkJCQlOZXdwb3J0IEJlYWNoIENBIDkyNjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0yMiAgIChoZXgpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELgorMDAyNjIyICAgICAoYmFzZSAxNikJCUNPTVBBTCBJTkZPUk1BVElPTiAoS1VOU0hBTikgQ08uLCBMVEQuCisJCQkJTk8uIDI1LCBUSEUgM1JEIFN0cmVldCBLVU5TSEFOIEVYUE9SVCBQUk9DRVNTSU5HIFpPTkUKKwkJCQlLVU5TSEFOIFNVWkhPVSAyMTUzMDAKKwkJCQlDSElOQQorCiswMC0yNi0yMyAgIChoZXgpCQlKUkQgQ29tbXVuaWNhdGlvbiBJbmMKKzAwMjYyMyAgICAgKGJhc2UgMTYpCQlKUkQgQ29tbXVuaWNhdGlvbiBJbmMKKwkJCQkxNi9GLCBUQ0wgVG93ZXIsIEdhb3hpbiBOYW55aSBSb2FkLCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTI2LTI0ICAgKGhleCkJCVRob21zb24gSW5jLgorMDAyNjI0ICAgICAoYmFzZSAxNikJCVRob21zb24gSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtMjUgICAoaGV4KQkJTWVkaWFTcHV0bmlrCiswMDI2MjUgICAgIChiYXNlIDE2KQkJTWVkaWFTcHV0bmlrCisJCQkJWWFyb3NsYXZza29lIHNob3NzZSwgMTksCisJCQkJTW9zY293ICAxMjkzMzcKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjYtMjYgICAoaGV4KQkJR2VvcGh5c2ljYWwgU3VydmV5IFN5c3RlbXMsIEluYy4KKzAwMjYyNiAgICAgKGJhc2UgMTYpCQlHZW9waHlzaWNhbCBTdXJ2ZXkgU3lzdGVtcywgSW5jLgorCQkJCTEyIEluZHVzdHJpYWwgV2F5CisJCQkJU2FsZW0gTkggMDMwNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTI3ICAgKGhleCkJCVRydWVzZWxsCiswMDI2MjcgICAgIChiYXNlIDE2KQkJVHJ1ZXNlbGwKKwkJCQkzMDEgU3VuZ3l1biBCbGRnLCA4OS0yCisJCQkJWWFuZ2phZS1kb25nLAorCQkJCVNlb2Noby1ndSwgU2VvdWwgMTM3LTEzMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi0yOCAgIChoZXgpCQljb21wYW55dGVjIGF1dG9tYcOnw6NvIGUgY29udHJvbGUgbHRkYQorMDAyNjI4ICAgICAoYmFzZSAxNikJCWNvbXBhbnl0ZWMgYXV0b21hw6fDo28gZSBjb250cm9sZSBsdGRhCisJCQkJUnVhIE1hcmNpbGlvIERpYXMgMzAwNQorCQkJCVBlbG90YXMgUmlvIEdyYW5kZSBkbyBTdWwgOTYwMjAtNDgwCisJCQkJQlJBWklMCisKKzAwLTI2LTI5ICAgKGhleCkJCUp1cGhvb24gU3lzdGVtIFNvZnR3YXJlIEluYy4KKzAwMjYyOSAgICAgKGJhc2UgMTYpCQlKdXBob29uIFN5c3RlbSBTb2Z0d2FyZSBJbmMuCisJCQkJUm9vbSA5MTAsQnVpbGRpbmcgMgorCQkJCVNoYW5nZG9uZyBJbnRlcm5hdGlvbiBCdWlsZGluZyxKaWFuZ2RvbmcgRGlzdHJpY3QKKwkJCQlOaW5nYm8gWmhlamlhbmcgMzE1MDQxCisJCQkJQ0hJTkEKKworMDAtMjYtMkEgICAoaGV4KQkJUHJveGVuc2UsIExMQworMDAyNjJBICAgICAoYmFzZSAxNikJCVByb3hlbnNlLCBMTEMKKwkJCQk2ODkgTlcgU3RvbmVwaW5lIERyCisJCQkJQmVuZCBPcmVnb24gOTc3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTJCICAgKGhleCkJCVdvbmdzIEVsZWN0cm9uaWNzIENvLiBMdGQuCiswMDI2MkIgICAgIChiYXNlIDE2KQkJV29uZ3MgRWxlY3Ryb25pY3MgQ28uIEx0ZC4KKwkJCQlXYW5mZW5nIEluZC4gRXNhdGEsIFNoYWppbmcsIEJhb2FuLAorCQkJCVNoZW56aGVuIEd1YW5nIERvbmcgNTE4MTA0CisJCQkJQ0hJTkEKKworMDAtMjYtMkMgICAoaGV4KQkJSUtUIEFkdmFuY2VkIFRlY2hub2xvZ2llcyBzLnIuby4KKzAwMjYyQyAgICAgKGJhc2UgMTYpCQlJS1QgQWR2YW5jZWQgVGVjaG5vbG9naWVzIHMuci5vLgorCQkJCVBpc2Vja2VobyAzMzQvMTkKKwkJCQlQcmFoYSA1ICAxNTAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzAwLTI2LTJEICAgKGhleCkJCVdpc3Ryb24gQ29ycG9yYXRpb24KKzAwMjYyRCAgICAgKGJhc2UgMTYpCQlXaXN0cm9uIENvcnBvcmF0aW9uCisJCQkJMjFGLCA4OCwgU2VjLjEsIEhzaW4gVGFpIFd1IFJkLiwgSHNpY2hpaCwKKwkJCQlUYWlwZWkgSHNpZW4gVGFpd2FuIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtMkUgICAoaGV4KQkJQ2hlbmdkdSBKaXV6aG91IEVsZWN0cm9uaWMgVGVjaG5vbG9neSBJbmMKKzAwMjYyRSAgICAgKGJhc2UgMTYpCQlDaGVuZ2R1IEppdXpob3UgRWxlY3Ryb25pYyBUZWNobm9sb2d5IEluYworCQkJCUEyIEJ1aWxkaW5nLFRpYW5mdSBTb2Z0d2FyZSBQYXJrCisJCQkJTm8uNzY1LE1pZCBUaWFuZnUgQXZlbnVlLEhpZ2gtdGVjaCBpbmR1c3RyaWFsIERldmVsb3BtZW50IFpvbmUKKwkJCQlDaGVuZ2R1IFNpY2h1YW4gNjEwMDQxCisJCQkJQ0hJTkEKKworMDAtMjYtMkYgICAoaGV4KQkJSEFNQU1BVFNVIFRPQSBFTEVDVFJPTklDUworMDAyNjJGICAgICAoYmFzZSAxNikJCUhBTUFNQVRTVSBUT0EgRUxFQ1RST05JQ1MKKwkJCQk5MTYyLTEKKwkJCQlNSVlBS09EQS1DSE8KKwkJCQlIQU1BTUFUU1UgU0laVU9LQSA0MzEtMjEwMgorCQkJCUpBUEFOCisKKzAwLTI2LTMwICAgKGhleCkJCUFDT1JFTCBTLkEuUworMDAyNjMwICAgICAoYmFzZSAxNikJCUFDT1JFTCBTLkEuUworCQkJCTMsIFJ1ZSBQYXVsIExBTkdFVklOCisJCQkJU0FJTlQtUEVSQVkgIEYtMDcxMzAKKwkJCQlGUkFOQ0UKKworMDAtMjYtMzEgICAoaGV4KQkJQ09NTVRBQ1QgTFRECiswMDI2MzEgICAgIChiYXNlIDE2KQkJQ09NTVRBQ1QgTFRECisJCQkJTmFoYWwgU25pciAxMAorCQkJCVBPIEJveCAxNjkKKwkJCQlZYXpuZSAgODExMDEKKwkJCQlJU1JBRUwKKworMDAtMjYtMzIgICAoaGV4KQkJSW5zdHJ1bWVudGF0aW9uIFRlY2hub2xvZ2llcyBkLmQuCiswMDI2MzIgICAgIChiYXNlIDE2KQkJSW5zdHJ1bWVudGF0aW9uIFRlY2hub2xvZ2llcyBkLmQuCisJCQkJVmVsaWthIHBvdCAyMgorCQkJCVNvbGthbiBOb3ZhIEdvcmljYSA1MjUwCisJCQkJU0xPVkVOSUEKKworMDAtMjYtMzMgICAoaGV4KQkJTUlSIC0gTWVkaWNhbCBJbnRlcm5hdGlvbmFsIFJlc2VhcmNoCiswMDI2MzMgICAgIChiYXNlIDE2KQkJTUlSIC0gTWVkaWNhbCBJbnRlcm5hdGlvbmFsIFJlc2VhcmNoCisJCQkJVmlhIGRlbCBNYWdnaW9saW5vIDEyNQorCQkJCVJvbWUgUk0gMDAxNTUKKwkJCQlJVEFMWQorCiswMC0yNi0zNCAgIChoZXgpCQlJbmZpbmV0YSBTeXN0ZW1zLCBJbmMKKzAwMjYzNCAgICAgKGJhc2UgMTYpCQlJbmZpbmV0YSBTeXN0ZW1zLCBJbmMKKwkJCQkyODcwIFphbmtlciBSZAorCQkJCVN1aXRlIDEwMAorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0zNSAgIChoZXgpCQlCbHVldGVjaG5peCBHbWJICiswMDI2MzUgICAgIChiYXNlIDE2KQkJQmx1ZXRlY2huaXggR21iSAorCQkJCVdhaWRoYXVzZW5zdHIuIDMvMTkKKwkJCQlWaWVubmEgIDExNDAKKwkJCQlBVVNUUklBCisKKzAwLTI2LTM2ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiswMDI2MzYgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTi4gVVMgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTM3ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryby1NZWNoYW5pY3MKKzAwMjYzNyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm8tTWVjaGFuaWNzCisJCQkJMzE0LCBNZXRhbiBkb25nCisJCQkJU3V3b24gS3l1bmcta2kgZG8gNDQzLTc0MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi0zOCAgIChoZXgpCQlYaWEgTWVuIEpveWF0ZWNoIENvLiwgTHRkLgorMDAyNjM4ICAgICAoYmFzZSAxNikJCVhpYSBNZW4gSm95YXRlY2ggQ28uLCBMdGQuCisJCQkJUm9vbSAzMDQsIDI4dGggQnVpbGRpbmcsIEd1YW5yaSBSb2FkLCBYaWFtZW4gU29mdHdhcmUgUGFyaworCQkJCVhpYW1lbiBGdWppYW4gUHJvdmluY2UgMzYxMDA4CisJCQkJQ0hJTkEKKworMDAtMjYtMzkgICAoaGV4KQkJVC5NLiBFbGVjdHJvbmljcywgSW5jLgorMDAyNjM5ICAgICAoYmFzZSAxNikJCVQuTS4gRWxlY3Ryb25pY3MsIEluYy4KKwkJCQk0NSBNYWluIFN0CisJCQkJQm95bHN0b24gTUEgMDE1MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTNBICAgKGhleCkJCURpZ2l0ZWMgU3lzdGVtcworMDAyNjNBICAgICAoYmFzZSAxNikJCURpZ2l0ZWMgU3lzdGVtcworCQkJCUM1QS8yNTcsIDFzdCBGbG9vcgorCQkJCUphbmFrcHVyaQorCQkJCU5ldyBEZWxoaSBEZWxoaSAxMTAwNTgKKwkJCQlJTkRJQQorCiswMC0yNi0zQiAgIChoZXgpCQlPbmJuZXRlY2gKKzAwMjYzQiAgICAgKGJhc2UgMTYpCQlPbmJuZXRlY2gKKwkJCQk1MDYsIFNhbXN1bmcgSVQgVmFsbGV5LCAxOTctNQorCQkJCUd1cm8tRG9uZworCQkJCUd1cm8tR3UgU2VvdWwgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi0zQyAgIChoZXgpCQlCYWNobWFubiBHbWJIICYgQ28uIEtHCiswMDI2M0MgICAgIChiYXNlIDE2KQkJQmFjaG1hbm4gR21iSCAmIENvLiBLRworCQkJCUVybnN0aGFsZGVuc3RyYXNzZSAzMworCQkJCVN0dXR0Z2FydCBCVyA3MDU2NQorCQkJCUdFUk1BTlkKKworMDAtMjYtM0QgICAoaGV4KQkJTUlBIENvcnBvcmF0aW9uCiswMDI2M0QgICAgIChiYXNlIDE2KQkJTUlBIENvcnBvcmF0aW9uCisJCQkJMS0zLTE1IFlvc2hpbm8tY2hvLCBNaW5hbWkta3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMzItMDAxNAorCQkJCUpBUEFOCisKKzAwLTI2LTNFICAgKGhleCkJCVRyYXBlemUgTmV0d29ya3MKKzAwMjYzRSAgICAgKGJhc2UgMTYpCQlUcmFwZXplIE5ldHdvcmtzCisJCQkJNTc1MyBXZXN0IExhcyBQb3NpdGFzIEJsdmQuCisJCQkJUGxlYXNhbnRvbiBDYWxpZm9ybmlhIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi0zRiAgIChoZXgpCQlMSU9TIFRlY2hub2xvZ3kgR21iSAorMDAyNjNGICAgICAoYmFzZSAxNikJCUxJT1MgVGVjaG5vbG9neSBHbWJICisJCQkJU2NoYW56ZW5zdHJhw4PFuGUgMzkKKwkJCQlCdWlsZGluZyBEOS1EMTMKKwkJCQlLw4PCtmxuIEdlcm1hbnkgRC01MTA2MworCQkJCUdFUk1BTlkKKworMDAtMjYtNDAgICAoaGV4KQkJQmF1c3RlbSBCcm9hZGJhbmQgVGVjaG5vbG9naWVzLCBMdGQuCiswMDI2NDAgICAgIChiYXNlIDE2KQkJQmF1c3RlbSBCcm9hZGJhbmQgVGVjaG5vbG9naWVzLCBMdGQuCisJCQkJOTEwIFF1YW50dW0gUGxhemEKKwkJCQlOby4yMyBaaGljaHVuIFJvYWQKKwkJCQlCZWlqaW5nICAxMDAxOTEKKwkJCQlDSElOQQorCiswMC0yNi00MSAgIChoZXgpCQlNb3Rvcm9sYSwgSW5jCiswMDI2NDEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEsIEluYworCQkJCTExMDEgTWFyaW5hIFZpbGxhZ2UgUGFya3dheQorCQkJCVN1aXRlIDIwMAorCQkJCUFsYW1lZGEgQ0EgOTQ1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTQyICAgKGhleCkJCU1vdG9yb2xhLCBJbmMKKzAwMjY0MiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSwgSW5jCisJCQkJMTEwMSBNYXJpbmEgVmlsbGFnZSBQYXJrd2F5CisJCQkJU3VpdGUgMjAwCisJCQkJQWxhbWVkYSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNDMgICAoaGV4KQkJQWxwcyBFbGVjdHJpYyBDby4sIEx0ZAorMDAyNjQzICAgICAoYmFzZSAxNikJCUFscHMgRWxlY3RyaWMgQ28uLCBMdGQKKwkJCQkxLTItMSxPa2lub3VjaGkKKwkJCQlTb21hLWNpdHkgRnVrdXNoaW1hLWtlbiA5NzYtODUwMQorCQkJCUpBUEFOCisKKzAwLTI2LTQ0ICAgKGhleCkJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCiswMDI2NDQgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKwkJCQlQcmlucyBCb3VkZXdpam5sYWFuIDQ3CisJCQkJRWRlZ2VtIEFudHdlcnAgQi0yNjUwCisJCQkJQkVMR0lVTQorCiswMC0yNi00NSAgIChoZXgpCQlDaXJjb250cm9sIFMuQS4KKzAwMjY0NSAgICAgKGJhc2UgMTYpCQlDaXJjb250cm9sIFMuQS4KKwkJCQlMZXBhbnQgNDMKKwkJCQlUZXJyYXNzYSBCYXJjZWxvbmEgMDgyMjMKKwkJCQlTUEFJTgorCiswMC0yNi00NiAgIChoZXgpCQlTSEVOWUFORyBUT05HRkFORyBNVUxUSU1FRElBIFRFQ0hOT0xPR1kgQ09NUEFOWSBMSU1JVEVECiswMDI2NDYgICAgIChiYXNlIDE2KQkJU0hFTllBTkcgVE9OR0ZBTkcgTVVMVElNRURJQSBURUNITk9MT0dZIENPTVBBTlkgTElNSVRFRAorCQkJCU5vLjEwIFBpbmcgTmFuIEVhc3QgUm9hZAorCQkJCUh1bm5hbiBOZXcgRGlzdHJpY3QuCisJCQkJU2hlbnlhbmcgTGlhbyBOaW5nIDExMDAxNAorCQkJCUNISU5BCisKKzAwLTI2LTQ3ICAgKGhleCkJCVdGRSBURUNITk9MT0dZIENPUlAuCiswMDI2NDcgICAgIChiYXNlIDE2KQkJV0ZFIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkxN0YgTk8uMjM4LENoaW4tSHVhIE4gUmQsCisJCQkJVGFpY2h1bmcgIDQwNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtNDggICAoaGV4KQkJRW1pdGVjaCBDb3JwLgorMDAyNjQ4ICAgICAoYmFzZSAxNikJCUVtaXRlY2ggQ29ycC4KKwkJCQlOby4gMTU2LTVBLCBDaGVuZ0dvbmcgMXN0IFN0LiwKKwkJCQlKaHViZWkgQ2l0eSBIc2luY2h1IENvdW50eSAzMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTRBICAgKGhleCkJCUFwcGxlLCBJbmMKKzAwMjY0QSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNEMgICAoaGV4KQkJU2hhbmdoYWkgRGlnaVZpc2lvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAyNjRDICAgICAoYmFzZSAxNikJCVNoYW5naGFpIERpZ2lWaXNpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4gMzMzIEd1YW5namkgUmQuCisJCQkJU2hhbmdoYWkgIDIwMDA4MworCQkJCUNISU5BCisKKzAwLTI2LTREICAgKGhleCkJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzAwMjY0RCAgICAgKGJhc2UgMTYpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYuLCBOby4gOSAsIFBhcmsgQXZlbnVlIElJICwKKwkJCQlIc2luY2h1IFNjaWVuY2UgUGFyayAsCisJCQkJSHNpbmNodSBUYWl3YW4gMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi00RSAgIChoZXgpCQlSYWlsICYgUm9hZCBQcm90ZWMgR21iSAorMDAyNjRFICAgICAoYmFzZSAxNikJCVJhaWwgJiBSb2FkIFByb3RlYyBHbWJICisJCQkJTm9yZGVyaG9mZW5kZW4gMTItMTMKKwkJCQlGbGVuc2J1cmcgIDI0OTM3CisJCQkJR0VSTUFOWQorCiswMC0yNi00RiAgIChoZXgpCQlLcsO8Z2VyJkdvdGhlIEdtYkgKKzAwMjY0RiAgICAgKGJhc2UgMTYpCQlLcsO8Z2VyJkdvdGhlIEdtYkgKKwkJCQlBdHplbmRvcmZlciBTdHJhc3NlIDE5CisJCQkJU3Rhc3NmdXJ0IFNhY2hzZW4gQW5oYWx0IDM5NDE4CisJCQkJR0VSTUFOWQorCiswMC0yNi01MCAgIChoZXgpCQkyV2lyZQorMDAyNjUwICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNTEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNjUxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTUyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjY1MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi01MyAgIChoZXgpCQlEYXlTZXF1ZXJyYSBDb3Jwb3JhdGlvbgorMDAyNjUzICAgICAoYmFzZSAxNikJCURheVNlcXVlcnJhIENvcnBvcmF0aW9uCisJCQkJMTU0IENvb3BlciBSb2FkCisJCQkJU3VpdGUgIzkwMgorCQkJCVdlc3QgQmVybGluIE5KIDA4MDkxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi01NCAgIChoZXgpCQkzQ29tIENvcnBvcmF0aW9uCiswMDI2NTQgICAgIChiYXNlIDE2KQkJM0NvbSBDb3Jwb3JhdGlvbgorCQkJCTUzNTMgQmV0c3kgUm9zcyBEcml2ZQorCQkJCUJsZGcgMTQsIE0vUyAxNDI1CisJCQkJU2FudGEgQ2xhcmEgQ2FsaWZvcm5pYSA5NTA1NC0xMTYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi01NSAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDAyNjU1ICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCU1zIDA2MDMwMgorCQkJCUhvdXN0b24gVGV4YXMgNzcwOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTU2ICAgKGhleCkJCVNhbnNvbmljIEVsZWN0cm9uaWNzIFVTQQorMDAyNjU2ICAgICAoYmFzZSAxNikJCVNhbnNvbmljIEVsZWN0cm9uaWNzIFVTQQorCQkJCTk5NTAgQmFsZHdpbiBQbGFjZQorCQkJCUVsIE1vbnRlIENhaWxmb3JuaWEgOTE3MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTU3ICAgKGhleCkJCU9PTyBOUFAgRUtSQQorMDAyNjU3ICAgICAoYmFzZSAxNikJCU9PTyBOUFAgRUtSQQorCQkJCUkuWWFrb3ZsZXZhIFN0LiwgMworCQkJCUNoZWJva3NhcnkgQ2h1dmFzaCBSZXB1YmxpYyA0MjgwMDMKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDAtMjYtNTggICAoaGV4KQkJVC1QbGF0Zm9ybXMgKEN5cHJ1cykgTGltaXRlZAorMDAyNjU4ICAgICAoYmFzZSAxNikJCVQtUGxhdGZvcm1zIChDeXBydXMpIExpbWl0ZWQKKwkJCQlUaGVtaXN0b2tsaSBEZXJ2aSAzLCBKdWxpYSBIb3VzZQorCQkJCU5pY29zaWEgIFAuQy4tMTA2NgorCQkJCUNZUFJVUworCiswMC0yNi01OSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzAwMjY1OSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCiswMC0yNi01QSAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzAwMjY1QSAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOby4yODksIFNpbmh1IDNyZCBSZC4sCisJCQkJTmVpaHUgRGlzdHJpY3QgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtNUIgICAoaGV4KQkJSGl0cm9uIFRlY2hub2xvZ2llcy4gSW5jCiswMDI2NUIgICAgIChiYXNlIDE2KQkJSGl0cm9uIFRlY2hub2xvZ2llcy4gSW5jCisJCQkJTm8uIDEtOCwgTGlzaW5nIDFzdCBSZC4gSHNpbmNodSBTY2llbmNlIFBhcmssCisJCQkJSHNpbi1jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtNUMgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorMDAyNjVDICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKKzAwLTI2LTVEICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzAwMjY1RCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LTVFICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzAwMjY1RSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZQorCQkJCVNoYW5naGFpICAyMDE2MTMKKwkJCQlDSElOQQorCiswMC0yNi01RiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzAwMjY1RiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtNjAgICAoaGV4KQkJTG9naXdheXMKKzAwMjY2MCAgICAgKGJhc2UgMTYpCQlMb2dpd2F5cworCQkJCTI0LzI2IHJ1ZSBMb3VpcyBBUk1BTkQKKwkJCQlQQVJJUyAgNzUwMTUKKwkJCQlGUkFOQ0UKKworMDAtMjYtNjEgICAoaGV4KQkJSXJ1bXRlayBDby4sIEx0ZC4KKzAwMjY2MSAgICAgKGJhc2UgMTYpCQlJcnVtdGVrIENvLiwgTHRkLgorCQkJCUFwdCA3MDggIDUxMy0yMiBKb29uZ2lsIEVpbmVzIFBsYXR6CisJCQkJU2FuZ2RhZXdvbi1kb25nLCBKdW5nd29uLUd1CisJCQkJU2VvbmduYW0tQ2l0eSBHeXVuZ2dpLWRvIDQ2Mi0xMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtNjIgICAoaGV4KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMgCiswMDI2NjIgICAgIChiYXNlIDE2KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMgCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi02MyAgIChoZXgpCQlTaGVuemhlbiBIdWl0YWl3ZWkgVGVjaC4gTHRkLCBjby4KKzAwMjY2MyAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBIdWl0YWl3ZWkgVGVjaC4gTHRkLCBjby4KKwkJCQlKaWFuRGEgQnVpbGRpbmcsNTAxLTUwMgorCQkJCUtld2VpIE5vLiAxCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzAwLTI2LTY0ICAgKGhleCkJCUNvcmUgU3lzdGVtIEphcGFuCiswMDI2NjQgICAgIChiYXNlIDE2KQkJQ29yZSBTeXN0ZW0gSmFwYW4KKwkJCQlCdW5zaHUgQmxkZywyLTI3LTYsTXlvamluCisJCQkJSGFjaGlvamkgVG9reW8gMTkyMDA0NgorCQkJCUpBUEFOCisKKzAwLTI2LTY1ICAgKGhleCkJCVByb3RlY3RlZExvZ2ljIENvcnBvcmF0aW9uCiswMDI2NjUgICAgIChiYXNlIDE2KQkJUHJvdGVjdGVkTG9naWMgQ29ycG9yYXRpb24KKwkJCQlQTyBCb3ggNjc3MDcKKwkJCQlBbGJ1cXVlcnF1ZSBOTSA4NzE5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNjYgICAoaGV4KQkJRUZNIE5ldHdvcmtzCiswMDI2NjYgICAgIChiYXNlIDE2KQkJRUZNIE5ldHdvcmtzCisJCQkJNkYgQmVucG9zcmEgSUkgQi9EIDE4MDItMQorCQkJCUJvamVvbmctZG9uZyBHaWhldW5nLWd1LAorCQkJCVlvbmcgSW4gS3l1bmdnaS1kbyA0NDYtOTEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LTY3ICAgKGhleCkJCUNBUkVDT00gQ08uLExURC4KKzAwMjY2NyAgICAgKGJhc2UgMTYpCQlDQVJFQ09NIENPLixMVEQuCisJCQkJMy0zNS00CisJCQkJVGFtYWdhd2EKKwkJCQlDaG9mdSBUb2t5byAxODItMDAyNQorCQkJCUpBUEFOCisKKzAwLTI2LTY4ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDI2NjggICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTI2LTY5ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiswMDI2NjkgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzAwLTI2LTZBICAgKGhleCkJCUVTU0VOU0lVTSBOVgorMDAyNjZBICAgICAoYmFzZSAxNikJCUVTU0VOU0lVTSBOVgorCQkJCUdhc3RvbiBHZWVuc2xhYW4gOQorCQkJCUxFVVZFTiBWTCBCUkFCQU5UIDMwMDEKKwkJCQlCRUxHSVVNCisKKzAwLTI2LTZCICAgKGhleCkJCVNISU5FIFVOSU9OIEVOVEVSUFJJU0UgTElNSVRFRAorMDAyNjZCICAgICAoYmFzZSAxNikJCVNISU5FIFVOSU9OIEVOVEVSUFJJU0UgTElNSVRFRAorCQkJCVVOSVQgMTIxMSwgMTJGTC4sIENIRVZBTElFUiBDT01NRVJDSUFMIENFTlRFUiwKKwkJCQlOTy44IFdBTkcgSE9JIFJPQUQsIEtPV0xPT05CQVkKKwkJCQlLT1dMT09OICBOSUwKKwkJCQlIT05HIEtPTkcKKworMDAtMjYtNkMgICAoaGV4KQkJSW52ZW50ZWMKKzAwMjY2QyAgICAgKGJhc2UgMTYpCQlJbnZlbnRlYworCQkJCUludmVudGVjIEJ1aWxkaW5nLCA2NiBIb3UtS2FuZyBTdHJlZXQgU2hpaC1MaW4gRGlzdHJpY3QsCisJCQkJVGFpcGVpICAxMTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTZEICAgKGhleCkJCU1vYmlsZUFjY2VzcyBOZXR3b3JrcworMDAyNjZEICAgICAoYmFzZSAxNikJCU1vYmlsZUFjY2VzcyBOZXR3b3JrcworCQkJCTgzOTEgT2xkIENvdXJ0aG91c2UgUmQuCisJCQkJU3VpdGUgMzAwCisJCQkJVmllbm5hIFZBIDIyMTgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi02RSAgIChoZXgpCQlOaXNzaG8tZGVua2kgQ28uLExURC4KKzAwMjY2RSAgICAgKGJhc2UgMTYpCQlOaXNzaG8tZGVua2kgQ28uLExURC4KKwkJCQkzLTctNixjaGlkb3JpCisJCQkJb2h0YSBUb2t5byAxNDYtMDA4MworCQkJCUpBUEFOCisKKzAwLTI2LTZGICAgKGhleCkJCUNvb3JkaXdpc2UgVGVjaG5vbG9neSBDb3JwLgorMDAyNjZGICAgICAoYmFzZSAxNikJCUNvb3JkaXdpc2UgVGVjaG5vbG9neSBDb3JwLgorCQkJCTJGLiwgTm8uMTIzLCBTZWMuIDEsIExpb3VqaWEgNXRoIFJkLgorCQkJCUpodWJlaSBDaXR5LCBIc2luY2h1IENvdW50eSAgMzAyNzIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTcwICAgKGhleCkJCUNpbmNoIENvbm5lY3RvcnMKKzAwMjY3MCAgICAgKGJhc2UgMTYpCQlDaW5jaCBDb25uZWN0b3JzCisJCQkJMTcwMCBGaW5sZXkgUm9hZAorCQkJCUxvbWJhcmQgSUwgNjAxNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTcxICAgKGhleCkJCUFVVE9WSVNJT04gQ28uLCBMdGQKKzAwMjY3MSAgICAgKGJhc2UgMTYpCQlBVVRPVklTSU9OIENvLiwgTHRkCisJCQkJU2hpbnNlZ2FlIFlCUyBCbGRnLiAxMDIKKwkJCQkyMjctMSwgWW9uZ2RhcC1Eb25nCisJCQkJU2Vvbmdkb25nLWd1IFNlb3VsIDEzMy04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtNzIgICAoaGV4KQkJQUFNUCBvZiBBbWVyaWNhCiswMDI2NzIgICAgIChiYXNlIDE2KQkJQUFNUCBvZiBBbWVyaWNhCisJCQkJMTMxOTAgNTZ0aCBDb3VydAorCQkJCVN1aXRlIDQwMQorCQkJCUNsZWFyd2F0ZXIgRmxvcmlkYSAzMzc2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNzMgICAoaGV4KQkJUklDT0ggQ09NUEFOWSBMVEQuCiswMDI2NzMgICAgIChiYXNlIDE2KQkJUklDT0ggQ09NUEFOWSBMVEQuCisJCQkJODEwIFNISU1PSU1BSVpVTUkKKwkJCQlFYmluYSBDaXR5IEtBTkFHQVdBIFBSRUYgMjQzLTA0NjAKKwkJCQlKQVBBTgorCiswMC0yNi03NCAgIChoZXgpCQlFbGVjdHJvbmljIFNvbHV0aW9ucywgSW5jLgorMDAyNjc0ICAgICAoYmFzZSAxNikJCUVsZWN0cm9uaWMgU29sdXRpb25zLCBJbmMuCisJCQkJMTM1NSBIb3Jpem9uIEF2ZW51ZQorCQkJCUxhZmF5ZXR0ZSBDTyA4MDAyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtNzUgICAoaGV4KQkJQXp0ZWNoIEVsZWN0cm9uaWNzIFB0ZSBMdGQKKzAwMjY3NSAgICAgKGJhc2UgMTYpCQlBenRlY2ggRWxlY3Ryb25pY3MgUHRlIEx0ZAorCQkJCTMxIFViaSBSb2FkIDEKKwkJCQlBenRlY2ggQnVpbGRpbmcKKwkJCQlTaW5nYXBvcmUgIDQwODY5NAorCQkJCVNJTkdBUE9SRQorCiswMC0yNi03NiAgIChoZXgpCQlDT01NaWR0IEFTCiswMDI2NzYgICAgIChiYXNlIDE2KQkJQ09NTWlkdCBBUworCQkJCUtpa3JlZ2F0YSA1Ny01OQorCQkJCUxldmFuZ2VyIE5vcmQtVHJvZW5kZWxhZyA3NjAwCisJCQkJTk9SV0FZCisKKzAwLTI2LTc3ICAgKGhleCkJCURFSUYgQS9TCiswMDI2NzcgICAgIChiYXNlIDE2KQkJREVJRiBBL1MKKwkJCQlGcmlzZW5ib3JndmVqIDMzCisJCQkJU2tpdmUgIDc4MDAKKwkJCQlERU5NQVJLCisKKzAwLTI2LTc4ICAgKGhleCkJCUxvZ2ljIEluc3RydW1lbnQgU0EKKzAwMjY3OCAgICAgKGJhc2UgMTYpCQlMb2dpYyBJbnN0cnVtZW50IFNBCisJCQkJNDMsIEF2ZW51ZSBkZSBsJ0V1cm9wZQorCQkJCUJQIDYwMDEyCisJCQkJRG9tb250ICA5NTMzMAorCQkJCUZSQU5DRQorCiswMC0yNi03OSAgIChoZXgpCQlFdXBob25pYyBUZWNobm9sb2dpZXMsIEluYy4KKzAwMjY3OSAgICAgKGJhc2UgMTYpCQlFdXBob25pYyBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyLTUtMTAgU2hpbi15b2tvaGFtYSwgS291aG9rdS1rdQorCQkJCVlva29oYW1hICAyMjItMDAzMworCQkJCUpBUEFOCisKKzAwLTI2LTdBICAgKGhleCkJCXd1aGFuIGhvbmd4aW4gdGVsZWNvbW11bmljYXRpb24gdGVjaG5vbG9naWVzIGNvLixsdGQKKzAwMjY3QSAgICAgKGJhc2UgMTYpCQl3dWhhbiBob25neGluIHRlbGVjb21tdW5pY2F0aW9uIHRlY2hub2xvZ2llcyBjby4sbHRkCisJCQkJTm8uNSBEb254aW4gUm9hZCxXdWhhbiBFYXN0IExha2UgSGlnaC1UZWNoIERldmVsb3BtZW50IFpvbmUKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzMKKwkJCQlDSElOQQorCiswMC0yNi03QiAgIChoZXgpCQlHU0kgSGVsbWhvbHR6emVudHJ1bSBmw4PCvHIgU2Nod2VyaW9uZW5mb3JzY2h1bmcgR21iSAorMDAyNjdCICAgICAoYmFzZSAxNikJCUdTSSBIZWxtaG9sdHp6ZW50cnVtIGbDg8K8ciBTY2h3ZXJpb25lbmZvcnNjaHVuZyBHbWJICisJCQkJUGxhbmNrc3RyYcODxbhlIDEKKwkJCQlEYXJtc3RhZHQgSGVzc2VuIDY0MjkxCisJCQkJR0VSTUFOWQorCiswMC0yNi03QyAgIChoZXgpCQlNZXR6LVdlcmtlIEdtYkggJiBDbyBLRworMDAyNjdDICAgICAoYmFzZSAxNikJCU1ldHotV2Vya2UgR21iSCAmIENvIEtHCisJCQkJT2htc3RyYXNzZSA1NQorCQkJCVppcm5kb3JmICA5MDUxMworCQkJCUdFUk1BTlkKKworMDAtMjYtN0QgICAoaGV4KQkJQS1NYXggVGVjaG5vbG9neSBNYWNhbyBDb21tZXJjaWFsIE9mZnNob3JlIENvbXBhbnkgTGltaXRlZAorMDAyNjdEICAgICAoYmFzZSAxNikJCUEtTWF4IFRlY2hub2xvZ3kgTWFjYW8gQ29tbWVyY2lhbCBPZmZzaG9yZSBDb21wYW55IExpbWl0ZWQKKwkJCQlBdmVuaWRhIERhIFByYWlhIEdyYW5kZSBOby4gNDA5CisJCQkJRWRpZmljaW8gRG9zIFNlcnZpY29zIEp1cmlkaWNvcyBEYSBDaGluYSA1QQorCQkJCU1hY2F1ICAKKwkJCQlDSElOQQorCiswMC0yNi03RSAgIChoZXgpCQlQYXJyb3QgU0EKKzAwMjY3RSAgICAgKGJhc2UgMTYpCQlQYXJyb3QgU0EKKwkJCQkxNzQgcXVhaSBkZSBKZW1tYXBlcworCQkJCVBhcmlzICA3ODEwMAorCQkJCUZSQU5DRQorCiswMC0yNi03RiAgIChoZXgpCQlaZW50ZXJpbyBBQgorMDAyNjdGICAgICAoYmFzZSAxNikJCVplbnRlcmlvIEFCCisJCQkJRGlza2V0dGdhdGFuIDExQgorCQkJCUxpbmvDtnBpbmcgIDU4MzM1CisJCQkJU1dFREVOCisKKzAwLTI2LTgwICAgKGhleCkJCUxvY2tpZSBJbm5vdmF0aW9uIFB0eSBMdGQKKzAwMjY4MCAgICAgKGJhc2UgMTYpCQlMb2NraWUgSW5ub3ZhdGlvbiBQdHkgTHRkCisJCQkJVW5pdCAyNAorCQkJCTItMTIgVGVtcGxlIFN0cmVldAorCQkJCUFzaHdvb2QgVklDVE9SSUEgMzE0NworCQkJCUFVU1RSQUxJQQorCiswMC0yNi04MSAgIChoZXgpCQlJbnRlcnNwaXJvIEFCCiswMDI2ODEgICAgIChiYXNlIDE2KQkJSW50ZXJzcGlybyBBQgorCQkJCUJveCAxMDA2MAorCQkJCUxpZGluZ8O2ICAxODExMAorCQkJCVNXRURFTgorCiswMC0yNi04MiAgIChoZXgpCQlHZW10ZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzAwMjY4MiAgICAgKGJhc2UgMTYpCQlHZW10ZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlOby4xIEplbiBBaSBSb2FkLCBIc2luY2h1IEluZHVzdHJpYWwgUGFyaywKKwkJCQlIc2luY2h1IFRhaXdhbiAzMDMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTgzICAgKGhleCkJCUFqb2hvIEVudGVycHJpc2UgQ28uLCBMdGQuCiswMDI2ODMgICAgIChiYXNlIDE2KQkJQWpvaG8gRW50ZXJwcmlzZSBDby4sIEx0ZC4KKwkJCQkxRi4sIE5vLjMwMC0zLCBTZWMuIDMsIEhvcGluZyBXLiBSZC4sIFdhbi1IdWEgMTA4CisJCQkJVGFpcGVpIFRhaXdhbiAxMDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LTg0ICAgKGhleCkJCUtJU0FOIFNZU1RFTQorMDAyNjg0ICAgICAoYmFzZSAxNikJCUtJU0FOIFNZU1RFTQorCQkJCVlVQ0hFT04gUEFDVE9QSUEgNjIzLCBBTllBTkc3CisJCQkJQU5ZQU5HIEdZRU9OR0dJIDQzMC03MjcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtODUgICAoaGV4KQkJRGlnaXRhbCBJbm5vdmF0aW9uCiswMDI2ODUgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBJbm5vdmF0aW9uCisJCQkJVHJhdmJhbmV2ZWllbiA2CisJCQkJVHJvbmRoZWltICA3MDQ0CisJCQkJTk9SV0FZCisKKzAwLTI2LTg2ICAgKGhleCkJCVF1YW50ZW5uYSBDb21tdW5jYXRpb25zLCBJbmMuCiswMDI2ODYgICAgIChiYXNlIDE2KQkJUXVhbnRlbm5hIENvbW11bmNhdGlvbnMsIEluYy4KKwkJCQkzNDUwIFcuIFdhcnJlbiBBdmUuCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtODcgICAoaGV4KQkJQUxMSUVEIFRFTEVTSVMsIEsuSyBjb3JlZ2EgZGl2aXNpb24uCiswMDI2ODcgICAgIChiYXNlIDE2KQkJQUxMSUVEIFRFTEVTSVMsIEsuSyBjb3JlZ2EgZGl2aXNpb24uCisJCQkJMS0xOS0yMCwgU2hpbnlva29oYW1hCisJCQkJS291aG9rdS1rdQorCQkJCVlva29oYW1hLWNpdHkgS2FuYWdhd2Eta2VuIDIyMi0wMDMzCisJCQkJSkFQQU4KKworMDAtMjYtODggICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworMDAyNjg4ICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi04OSAgIChoZXgpCQlHZW5lcmFsIER5bmFtaWNzIFJvYm90aWMgU3lzdGVtcworMDAyNjg5ICAgICAoYmFzZSAxNikJCUdlbmVyYWwgRHluYW1pY3MgUm9ib3RpYyBTeXN0ZW1zCisJCQkJMTIzMSBUZWNoIENvdXJ0CisJCQkJV2VzdG1pbnN0ZXIgTUQgMjExNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LThBICAgKGhleCkJCVRlcnJpZXIgU0MgTHRkCiswMDI2OEEgICAgIChiYXNlIDE2KQkJVGVycmllciBTQyBMdGQKKwkJCQlTdHJldHRpdCBGYXJtCisJCQkJU25vbGwgSGF0Y2ggUm9hZAorCQkJCUVhc3QgUGVja2hhbSBLZW50IFROMTIgNUVFCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjYtOEIgICAoaGV4KQkJR3Vhbmd6aG91IEVzY2VuZSBDb21wdXRlciBUZWNobm9sb2d5IExpbWl0ZWQKKzAwMjY4QiAgICAgKGJhc2UgMTYpCQlHdWFuZ3pob3UgRXNjZW5lIENvbXB1dGVyIFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCVJvb20gMjA5LCBOby41NC01NiBZdWVoZSBCdWlsZGluZywgSHVhY3VpIFN0cmVldCwgVGlhbmhlIEluZHVzdHJpYWwgUGFyaworCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgUHJvdmluY2UgNTEwMDY1CisJCQkJQ0hJTkEKKworMDAtMjYtOEMgICAoaGV4KQkJU3RhckxlYWYgTHRkLgorMDAyNjhDICAgICAoYmFzZSAxNikJCVN0YXJMZWFmIEx0ZC4KKwkJCQlDaGFzdG9uIEhvdXNlLCBNaWxsIENvdXJ0CisJCQkJR3JlYXQgU2hlbGZvcmQKKwkJCQlDYW1icmlkZ2UgIENCMjIgNUxECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMjYtOEQgICAoaGV4KQkJQ2VsbFRlbCBTLnAuQS4KKzAwMjY4RCAgICAgKGJhc2UgMTYpCQlDZWxsVGVsIFMucC5BLgorCQkJCVZpYSBSb21hbm8gNzIKKwkJCQlTY2FybWFnbm8gVG9yaW5vIDEwMDEwCisJCQkJSVRBTFkKKworMDAtMjYtOEUgICAoaGV4KQkJQWx0YSBTb2x1dGlvbnMsIEluYy4KKzAwMjY4RSAgICAgKGJhc2UgMTYpCQlBbHRhIFNvbHV0aW9ucywgSW5jLgorCQkJCTExMzA1IFJhbmNobyBCZXJuYXJkbyBSb2FkCisJCQkJU3VpdGUgMTA0CisJCQkJU2FuIERpZWdvIENBIDkyMTI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi04RiAgIChoZXgpCQlNVEEgU3BBCiswMDI2OEYgICAgIChiYXNlIDE2KQkJTVRBIFNwQQorCQkJCVZpYWxlIGRlbGwgSW5kdXN0cmlhIDEyCisJCQkJQ29kb2dubyBMT0RJIDI2ODQ1CisJCQkJSVRBTFkKKworMDAtMjYtOTAgICAoaGV4KQkJSSBETyBJVAorMDAyNjkwICAgICAoYmFzZSAxNikJCUkgRE8gSVQKKwkJCQkxMzA4LCBXb29saW1MaW9uczJuZCBEb2tzYW4gU3RhdGlvbgorCQkJCVNlb3VsICAxNTMtNzg3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LTkxICAgKGhleCkJCVNBR0VNIENPTU1VTklDQVRJT04KKzAwMjY5MSAgICAgKGJhc2UgMTYpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCisJCQkJMTQgUnVlIFBhdWwgRGF1dGllcgorCQkJCVZlbGl6eSAgNzg0NTcKKwkJCQlGUkFOQ0UKKworMDAtMjYtOTIgICAoaGV4KQkJTWl0c3ViaXNoaSBFbGVjdHJpYyBDby4KKzAwMjY5MiAgICAgKGJhc2UgMTYpCQlNaXRzdWJpc2hpIEVsZWN0cmljIENvLgorCQkJCTItNy0zIE1hcnVub3VjaGkKKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMC04MzEwCisJCQkJSkFQQU4KKworMDAtMjYtOTMgICAoaGV4KQkJUVZpZGl1bSBUZWNobm9sb2dpZXMsIEluYy4KKzAwMjY5MyAgICAgKGJhc2UgMTYpCQlRVmlkaXVtIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEyOTg5IENoYXBhcnJhbCBSaWRnZSBSZAorCQkJCVNhbiBEaWVnbyBDQSA5MjEzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtOTQgICAoaGV4KQkJU2Vuc2NpZW50IEx0ZAorMDAyNjk0ICAgICAoYmFzZSAxNikJCVNlbnNjaWVudCBMdGQKKwkJCQlVbml0IDIsIEJsb2NrIEEsIEFyZW5hIEJ1c2luZXNzIENlbnRyZQorCQkJCUhvbHkgUm9vZCBDbG9zZQorCQkJCVBvb2xlIERvcnNldCBCSDE3IDdGSgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI2LTk1ICAgKGhleCkJCVpUIEdyb3VwIEludCdsIEluYworMDAyNjk1ICAgICAoYmFzZSAxNikJCVpUIEdyb3VwIEludCdsIEluYworCQkJCTM1MCBNZWFkb3dsYW5kcyBQYXJrd2F5CisJCQkJU2VjYXVjdXMgTkogMDcwOTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTk2ICAgKGhleCkJCU5PT0xJWCBDby4sIEx0ZAorMDAyNjk2ICAgICAoYmFzZSAxNikJCU5PT0xJWCBDby4sIEx0ZAorCQkJCURBRUNIQU5HIEIvRCAzRiwgOC0yIFNVTkFFLURPTkcKKwkJCQlCVURBTkctR1UKKwkJCQlTVU5HTkFNLVNJIEtZVU5HR0ktRE8gNDYzLTgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi05NyAgIChoZXgpCQlDaGVldGFoIFRlY2hub2xvZ2llcywgTC5QLgorMDAyNjk3ICAgICAoYmFzZSAxNikJCUNoZWV0YWggVGVjaG5vbG9naWVzLCBMLlAuCisJCQkJMzgxIE1hbnNmaWVsZCBBdmVudWUKKwkJCQlTdWl0ZSAyMDAKKwkJCQlQaXR0c2J1cmdoIFBBIDE1MjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi05OCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI2OTggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtOTkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDAyNjk5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkMtTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LTlBICAgKGhleCkJCWNhcmluYSBzeXN0ZW0gY28uLCBsdGQuCiswMDI2OUEgICAgIChiYXNlIDE2KQkJY2FyaW5hIHN5c3RlbSBjby4sIGx0ZC4KKwkJCQkxLTUtMiBNaW5hdG9qaW1hLW1pbmFtaW1hY2hpCisJCQkJQ2h1by1rdQorCQkJCUtvYmUgSHlvZ28gNjUwLTAwNDcKKwkJCQlKQVBBTgorCiswMC0yNi05QiAgIChoZXgpCQlTT0tSQVQgTHRkLgorMDAyNjlCICAgICAoYmFzZSAxNikJCVNPS1JBVCBMdGQuCisJCQkJVm9sa29uc2tvZ28gMgorCQkJCUlya3V0c2sgIDY2NDAwNworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yNi05QyAgIChoZXgpCQlJVFVTIEpBUEFOIENPLiBMVEQKKzAwMjY5QyAgICAgKGJhc2UgMTYpCQlJVFVTIEpBUEFOIENPLiBMVEQKKwkJCQk3RiBTaGlua2F3YSBCL0QKKwkJCQkxLTEtNyBTaGlua2F3YQorCQkJCUNodW9rdSBUb2t5byAxMDQwMDMzCisJCQkJSkFQQU4KKworMDAtMjYtOUQgICAoaGV4KQkJTTJNbmV0IENvLiwgTHRkLgorMDAyNjlEICAgICAoYmFzZSAxNikJCU0yTW5ldCBDby4sIEx0ZC4KKwkJCQk2MDcgRG93bnRvd24gQmxkLiAxMDQzLTEgSG9neWUtRG9uZyBEb25nYW4tR3UKKwkJCQlBbnlhbmctQ2l0eSBLeXVuZ2dpLURvIDQzMS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtOUUgICAoaGV4KQkJUXVhbnRhIENvbXB1dGVyIEluYworMDAyNjlFICAgICAoYmFzZSAxNikJCVF1YW50YSBDb21wdXRlciBJbmMKKwkJCQlOTy4gMjExLCBXRU4gSFdBIDJSRC4sIEtVRUkgU0hBTiBIU0lBTkcsIFRBSVBFSSwgU0hJRU4KKwkJCQlUQU8gWVVBTiAgMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi05RiAgIChoZXgpCQlQUklWQVRFCiswMDI2OUYgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLTI2LUEwICAgKGhleCkJCW1vYmxpYworMDAyNkEwICAgICAoYmFzZSAxNikJCW1vYmxpYworCQkJCTdGLCAyNzEtMSwgU2VvaHllb24tZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpIEt5ZW9uZ2dpLWRvIDQ2My04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtQTEgICAoaGV4KQkJTWVnZ2VyCiswMDI2QTEgICAgIChiYXNlIDE2KQkJTWVnZ2VyCisJCQkJNDI3MSBCcm9uemUgV2F5CisJCQkJRGFsbGFzIFRleGFzIDc1MjM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1BMiAgIChoZXgpCQlJbnN0cnVtZW50YXRpb24gVGVjaG5vbG9neSBTeXN0ZW1zCiswMDI2QTIgICAgIChiYXNlIDE2KQkJSW5zdHJ1bWVudGF0aW9uIFRlY2hub2xvZ3kgU3lzdGVtcworCQkJCTE5MzYwIEJ1c2luZXNzIENlbnRlciBEcml2ZQorCQkJCU5vcnRocmlkZ2UgQ0EgOTEzMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUEzICAgKGhleCkJCUZRIEluZ2VuaWVyaWEgRWxlY3Ryb25pY2EgUy5BLgorMDAyNkEzICAgICAoYmFzZSAxNikJCUZRIEluZ2VuaWVyaWEgRWxlY3Ryb25pY2EgUy5BLgorCQkJCUNvcnNlZ2EgMzcyIDEgMgorCQkJCUJhcmNlbG9uYSAgMDgwMzcKKwkJCQlTUEFJTgorCiswMC0yNi1BNCAgIChoZXgpCQlOb3Z1cyBQcm9kdXRvcyBFbGV0cm9uaWNvcyBMdGRhCiswMDI2QTQgICAgIChiYXNlIDE2KQkJTm92dXMgUHJvZHV0b3MgRWxldHJvbmljb3MgTHRkYQorCQkJCVJ1YSBBbHZhcm8gQ2hhdmVzLCAxNTUKKwkJCQlCYWlycm8gRmxvcmVzdGEKKwkJCQlQb3J0byBBbGVncmUgUlMgOTAyMjAtMDQwCisJCQkJQlJBWklMCisKKzAwLTI2LUE1ICAgKGhleCkJCU1JQ1JPUk9CT1QuQ08uLExURAorMDAyNkE1ICAgICAoYmFzZSAxNikJCU1JQ1JPUk9CT1QuQ08uLExURAorCQkJCTE2Ny0zIEd1bmdweWVvbmctcmkKKwkJCQlEb2NoZW9rLW15ZW9uCisJCQkJR3dhbmdqdS1zaSBHeWVvbmdnaS1EbyA0NjQtODgxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LUE2ICAgKGhleCkJCVRSSVhFTEwKKzAwMjZBNiAgICAgKGJhc2UgMTYpCQlUUklYRUxMCisJCQkJNDYwLCBSdWUgZHUgcG9tbWFyaW4KKwkJCQlNT0lSQU5TICAzODIxMAorCQkJCUZSQU5DRQorCiswMC0yNi1BNyAgIChoZXgpCQlDT05ORUNUIFNSTAorMDAyNkE3ICAgICAoYmFzZSAxNikJCUNPTk5FQ1QgU1JMCisJCQkJVmlhIENlcm5haWEsIDExCisJCQkJTWlsYW4gIDIwMTIxCisJCQkJSVRBTFkKKworMDAtMjYtQTggICAoaGV4KQkJREFFSEFQIEhZUEVSLVRFQ0gKKzAwMjZBOCAgICAgKGJhc2UgMTYpCQlEQUVIQVAgSFlQRVItVEVDSAorCQkJCU1lZ2EgY2VudGVyICMxMTA4LCBTSyBUZWNobm8tUGFyaywgIzE5MC0xLCBTYW5nZGFld29uLURvbmcsIEp1bmd3b24tR3UKKwkJCQlTZW9uZ25hbSBHeWVvbmdnaS1EbyA0NjItODA3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LUE5ICAgKGhleCkJCVN0cm9uZyBUZWNobm9sb2dpZXMgUHR5IEx0ZAorMDAyNkE5ICAgICAoYmFzZSAxNikJCVN0cm9uZyBUZWNobm9sb2dpZXMgUHR5IEx0ZAorCQkJCTYwIFdlZGdld29vZCBSb2FkCisJCQkJSGFsbGFtIFZpY3RvcmlhIDM4MDMKKwkJCQlBVVNUUkFMSUEKKworMDAtMjYtQUEgICAoaGV4KQkJS2VubWVjIE1lY2hhbmljYWwgRW5naW5lZXJpbmcgQ28uLCBMdGQuCiswMDI2QUEgICAgIChiYXNlIDE2KQkJS2VubWVjIE1lY2hhbmljYWwgRW5naW5lZXJpbmcgQ28uLCBMdGQuCisJCQkJM0YsIE5vLiA5NywgU2VjLjIgTmFuLUthbmcgUmQuLAorCQkJCVRhaXBlaSAgMTE1NzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LUFCICAgKGhleCkJCVNFSUtPIEVQU09OIENPUlBPUkFUSU9OCiswMDI2QUIgICAgIChiYXNlIDE2KQkJU0VJS08gRVBTT04gQ09SUE9SQVRJT04KKwkJCQkzLTMtNSBPV0EKKwkJCQlTVVdBLVNISSBOQUdBTk8tS0VOIDM5Mi04NTAyCisJCQkJSkFQQU4KKworMDAtMjYtQUMgICAoaGV4KQkJU2hhbmdoYWkgTFVTVEVSIFRlcmFiYW5kIHBob3RvbmljIENvLiwgTHRkLgorMDAyNkFDICAgICAoYmFzZSAxNikJCVNoYW5naGFpIExVU1RFUiBUZXJhYmFuZCBwaG90b25pYyBDby4sIEx0ZC4KKwkJCQlGNCwgTm8uMzkgQ2hlbmdaaG9uZyBSZC4KKwkJCQlKaWFEaW5nIERpc3RyaWN0CisJCQkJU2hhbmdoYWkgIDIwMTgwMAorCQkJCUNISU5BCisKKzAwLTI2LUFEICAgKGhleCkJCUFyYWRhIFN5c3RlbXMsIEluYy4KKzAwMjZBRCAgICAgKGJhc2UgMTYpCQlBcmFkYSBTeXN0ZW1zLCBJbmMuCisJCQkJMTAyNCBNb3JzZSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUFFICAgKGhleCkJCVdpcmVsZXNzIE1lYXN1cmVtZW50IEx0ZAorMDAyNkFFICAgICAoYmFzZSAxNikJCVdpcmVsZXNzIE1lYXN1cmVtZW50IEx0ZAorCQkJCVRoZSBDcmVzY2VudAorCQkJCUVNU1dPUlRIICBQTzEwIDhKUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI2LUFGICAgKGhleCkJCUR1ZWxjbyBBL1MKKzAwMjZBRiAgICAgKGJhc2UgMTYpCQlEdWVsY28gQS9TCisJCQkJTW9tbWFya3ZlaiA1CisJCQkJVm9sbGVydXAKKwkJCQlTb2VuZGVyYm9yZyBTb2VuZGVyanlsbGFuZCBESzY0MDAKKwkJCQlERU5NQVJLCisKKzAwLTI2LUIwICAgKGhleCkJCUFwcGxlLCBJbmMKKzAwMjZCMCAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1CMSAgIChoZXgpCQlOYXZpcyBBdXRvIE1vdGl2ZSBTeXN0ZW1zLCBJbmMuCiswMDI2QjEgICAgIChiYXNlIDE2KQkJTmF2aXMgQXV0byBNb3RpdmUgU3lzdGVtcywgSW5jLgorCQkJCTNyZCBGTE9PUiwgSFlVTkRBSSBBUVVBIFBBTEFDRSA3ODUsIFdPTyAxLURPTkcsIEhBRVVOREFFR1UKKwkJCQlCVVNBTiAgNjEyLTgyMgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1CMiAgIChoZXgpCQlTZXRyaXggQUcKKzAwMjZCMiAgICAgKGJhc2UgMTYpCQlTZXRyaXggQUcKKwkJCQlUaGVyZXNpZW5zdHJhc3NlIDYtOAorCQkJCU11ZW5jaGVuIEJheWVybiA4MDMzMworCQkJCUdFUk1BTlkKKworMDAtMjYtQjMgICAoaGV4KQkJVGhhbGVzIENvbW11bmljYXRpb25zIEluYworMDAyNkIzICAgICAoYmFzZSAxNikJCVRoYWxlcyBDb21tdW5pY2F0aW9ucyBJbmMKKwkJCQkyMjYwNSBHYXRld2F5IENlbnRlciBEcml2ZQorCQkJCUNsYXJrc2J1cmcgTUQgMjA4NzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUI0ICAgKGhleCkJCUZvcmQgTW90b3IgQ29tcGFueQorMDAyNkI0ICAgICAoYmFzZSAxNikJCUZvcmQgTW90b3IgQ29tcGFueQorCQkJCTIwMzAwIFJvdHVuZGEgRHJpdmUKKwkJCQlCdWlsZGluZyAjNSwgMkUwOTkKKwkJCQlEZWFyYm9ybiBNSSA0ODEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQjUgICAoaGV4KQkJSUNPTU0gVGVsZSBMdGQKKzAwMjZCNSAgICAgKGJhc2UgMTYpCQlJQ09NTSBUZWxlIEx0ZAorCQkJCTMwNCwgVHJlbmRzZXQgVG93ZXJzLAorCQkJCVJhb2QgIyAyLCBCYW5qYXJhIEhpbGxzCisJCQkJSHlkZXJhYmFkIEFQIDUwMDAzNAorCQkJCUlORElBCisKKzAwLTI2LUI2ICAgKGhleCkJCUFza2V5IENvbXB1dGVyCiswMDI2QjYgICAgIChiYXNlIDE2KQkJQXNrZXkgQ29tcHV0ZXIKKwkJCQkxMEYsTk8uMTE5LENISUVOS0FORyBSRCxDSFVORy1ITworCQkJCVRBSVBFSSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi1CNyAgIChoZXgpCQlLaW5nc3RvbiBUZWNobm9sb2d5IENvbXBhbnksIEluYy4KKzAwMjZCNyAgICAgKGJhc2UgMTYpCQlLaW5nc3RvbiBUZWNobm9sb2d5IENvbXBhbnksIEluYy4KKwkJCQkxNzYwMCBOZXdob3BlIFN0LgorCQkJCUZvdW50YWluIFZhbGxleSBDQSA5MjcwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQjggICAoaGV4KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMgCiswMDI2QjggICAgIChiYXNlIDE2KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMgCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1COSAgIChoZXgpCQlEZWxsIEluYworMDAyNkI5ICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1CQSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMDAyNkJBICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4sIFVTIDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1CQiAgIChoZXgpCQlBcHBsZSwgSW5jCiswMDI2QkIgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyAgQ0EKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUJDICAgKGhleCkJCUdlbmVyYWwgSmFjayBUZWNobm9sb2d5IEx0ZC4KKzAwMjZCQyAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIEphY2sgVGVjaG5vbG9neSBMdGQuCisJCQkJVGhlIEFyZWEgb2YgQWRtaW5pc3RyYXRpb24gb2YgTGlhbiBCZWksCisJCQkJQ2hhbmcgUGluZworCQkJCURvbmcgR3VhbiBHdWFuZyBEb25nIDUyMzU4MAorCQkJCUNISU5BCisKKzAwLTI2LUJEICAgKGhleCkJCUpURUMgQ2FyZCAmIENvbW11bmljYXRpb24gQ28uLCBMdGQuCiswMDI2QkQgICAgIChiYXNlIDE2KQkJSlRFQyBDYXJkICYgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKwkJCQlEYWJvIEJsZGcsIDRGLCA2MS0xLCBHeWVzdS1kb25nLCBTb3NhLWd1CisJCQkJQnVjaGVvbiBHeXVuZ2dpLWRvIDQyMi0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtQkUgICAoaGV4KQkJU2Nob29uZGVyYmVlayBFbGVrdHJvbmljYSBTeXN0ZW1lbiBCLlYuCiswMDI2QkUgICAgIChiYXNlIDE2KQkJU2Nob29uZGVyYmVlayBFbGVrdHJvbmljYSBTeXN0ZW1lbiBCLlYuCisJCQkJUm9nZ2VzdHJhYXQgMy01CisJCQkJTmlldXcgVmVubmVwIE5vb3JkIEhvbGxhbmQgMjE1M0dDCisJCQkJTkVUSEVSTEFORFMKKworMDAtMjYtQkYgICAoaGV4KQkJU2hlblpoZW4gVGVtb2JpIFNjaWVuY2UmVGVjaCBEZXZlbG9wbWVudCBDby4sTHRkCiswMDI2QkYgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gVGVtb2JpIFNjaWVuY2UmVGVjaCBEZXZlbG9wbWVudCBDby4sTHRkCisJCQkJNEZsb29yRywgSmlucnVuIFRvd2VyLCA2MDE5IFNoZW5uYW4gUm9hZAorCQkJCUZ1VGlhbiBEaXN0cmljdAorCQkJCVNoZW5aaGVuICA1MTgwMDAKKwkJCQlDSElOQQorCiswMC0yNi1DMCAgIChoZXgpCQlFbmVyZ3lIdWIKKzAwMjZDMCAgICAgKGJhc2UgMTYpCQlFbmVyZ3lIdWIKKwkJCQkyMzIgM3JkIFN0IEMyMDEKKwkJCQlCcm9va2x5biBOWSAxMTIxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQzEgICAoaGV4KQkJQVJUUkFZIENPLiwgTFRELgorMDAyNkMxICAgICAoYmFzZSAxNikJCUFSVFJBWSBDTy4sIExURC4KKwkJCQk1RiBVZW5vIEJsZGcsIDEtMTctNSBLb3Vlbmppa2l0YSwKKwkJCQlTdWdpbmFtaS1rdSwKKwkJCQlUb2t5byAgMTY2LTAwMDIKKwkJCQlKQVBBTgorCiswMC0yNi1DMiAgIChoZXgpCQlTQ0RJIENvLiBMVEQKKzAwMjZDMiAgICAgKGJhc2UgMTYpCQlTQ0RJIENvLiBMVEQKKwkJCQkjNDUxLCBIYWdhbC1Eb25nLCBHaWhldW5nLUd1LAorCQkJCVlvbmdpbi1TaSBHeWVvbmdnaS1EbyA0NDYtOTMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LUMzICAgKGhleCkJCUluc2lnaHRlayBDb3JwLgorMDAyNkMzICAgICAoYmFzZSAxNikJCUluc2lnaHRlayBDb3JwLgorCQkJCTVGLE5PLjc1NSxDaHVuZyBDaGVuZyBSZC4sCisJCQkJQ2h1bmcgSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi1DNCAgIChoZXgpCQlDYWRtb3MgbWljcm9zeXN0ZW1zIFMuci5sLgorMDAyNkM0ICAgICAoYmFzZSAxNikJCUNhZG1vcyBtaWNyb3N5c3RlbXMgUy5yLmwuCisJCQkJVmlhIFBpZXRybyBGcmF0dGluaSwgMjU1CisJCQkJUm9tYSAgMDAxNDkKKwkJCQlJVEFMWQorCiswMC0yNi1DNSAgIChoZXgpCQlHdWFuZ2RvbmcgR29zdW4gVGVsZWNvbW11bmljYXRpb25zIENvLixMdGQKKzAwMjZDNSAgICAgKGJhc2UgMTYpCQlHdWFuZ2RvbmcgR29zdW4gVGVsZWNvbW11bmljYXRpb25zIENvLixMdGQKKwkJCQlHdWFuZ2Rvbmcgc29mdHdhcmUgcGFyayBELCBOby4xMSwgQ2FpUGluZyByb2FkICwgR3Vhbmd6aG91IHNjaWVuY2UgY2l0eQorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgNTEwNjYzCisJCQkJQ0hJTkEKKworMDAtMjYtQzYgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDI2QzYgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yNi1DNyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwMjZDNyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLTI2LUM4ICAgKGhleCkJCVN5c3RlbSBTZW5zb3IKKzAwMjZDOCAgICAgKGJhc2UgMTYpCQlTeXN0ZW0gU2Vuc29yCisJCQkJMzgyNSBPaGlvIEF2ZW51ZQorCQkJCVNhaW50IENoYXJsZXMgSUwgNjAxNzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUM5ICAgKGhleCkJCVByb3ZlbnRpeCBTeXN0ZW1zLCBJbmMuCiswMDI2QzkgICAgIChiYXNlIDE2KQkJUHJvdmVudGl4IFN5c3RlbXMsIEluYy4KKwkJCQk0NTE4IFZhbGxleWRhbGUgUm9hZAorCQkJCVN1aXRlIDIwMgorCQkJCUJpcm1pbmdoYW0gQUwgMzUyNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUNBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjZDQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1DQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI2Q0IgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQ0MgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKKzAwMjZDQyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MCBWCisJCQkJREVOTUFSSworCiswMC0yNi1DRCAgIChoZXgpCQlQdXJwbGVDb21tLCBJbmMuCiswMDI2Q0QgICAgIChiYXNlIDE2KQkJUHVycGxlQ29tbSwgSW5jLgorCQkJCTI2MjAgQXVndXN0aW5lIERyLiwgU3RlLiAxMDAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQ0UgICAoaGV4KQkJS296dW1pIFVTQSBDb3JwLgorMDAyNkNFICAgICAoYmFzZSAxNikJCUtvenVtaSBVU0EgQ29ycC4KKwkJCQkzMDA1IEhhcnRyaWRnZSBUZXJyYWNlCisJCQkJV2VsbGluZ3RvbiBGTCAzMzQxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtQ0YgICAoaGV4KQkJREVLQSBSJkQKKzAwMjZDRiAgICAgKGJhc2UgMTYpCQlERUtBIFImRAorCQkJCTM0MCBDb21tZXJjaWFsIFN0cmVldAorCQkJCU1hbmNoZXN0ZXIgTkggMDMxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUQwICAgKGhleCkJCVNlbWloYWxmCiswMDI2RDAgICAgIChiYXNlIDE2KQkJU2VtaWhhbGYKKwkJCQl1bC4gUmFjaWJvcnNrYSAxNUQvMzIKKwkJCQlLcmFrb3cgIDMwLTM4NAorCQkJCVBPTEFORAorCiswMC0yNi1EMSAgIChoZXgpCQlTIFNxdWFyZWQgSW5ub3ZhdGlvbnMgSW5jLgorMDAyNkQxICAgICAoYmFzZSAxNikJCVMgU3F1YXJlZCBJbm5vdmF0aW9ucyBJbmMuCisJCQkJNjgwNy0xMDQgU3RyZWV0CisJCQkJRWRtb250b24gQUIgVDZIIDJMNQorCQkJCUNBTkFEQQorCiswMC0yNi1EMiAgIChoZXgpCQlQY3ViZSBTeXN0ZW1zLCBJbmMuCiswMDI2RDIgICAgIChiYXNlIDE2KQkJUGN1YmUgU3lzdGVtcywgSW5jLgorCQkJCTE4NTcgTydUb29sZSBMYW5lCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUQzICAgKGhleCkJCVplbm8gSW5mb3JtYXRpb24gU3lzdGVtCiswMDI2RDMgICAgIChiYXNlIDE2KQkJWmVubyBJbmZvcm1hdGlvbiBTeXN0ZW0KKwkJCQkjMTQwNCBBLURvbmcgRGlnaXRhbCBFbXBpcmUgQmxkZywgOTgwLTMsIFlvdW5ndG9uZy1kb25nLCBZb3VuZ3RvbmctZ3UKKwkJCQlTdXdvbiBDaXR5IEd5ZW9uZ2dpLURvIDQ0My03MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtRDQgICAoaGV4KQkJSVJDQSBTcEEKKzAwMjZENCAgICAgKGJhc2UgMTYpCQlJUkNBIFNwQQorCQkJCVZpYWxlIFZlbmV6aWEgMzEgLSBDLlAuIDI0OAorCQkJCVNhbiBWZW5kZW1pYW5vIChUcmV2aXNvKSBJdGFseSAzMTAyMAorCQkJCUlUQUxZCisKKzAwLTI2LUQ1ICAgKGhleCkJCU9yeSBTb2x1Y29lcyBlbSBDb21lcmNpbyBkZSBJbmZvcm1hdGljYSBMdGRhLgorMDAyNkQ1ICAgICAoYmFzZSAxNikJCU9yeSBTb2x1Y29lcyBlbSBDb21lcmNpbyBkZSBJbmZvcm1hdGljYSBMdGRhLgorCQkJCUF2LiBVbmlzaW5vcywgNjE1CisJCQkJU2FvIExlb3BvbGRvIFJTIDkzMDIyMDAwCisJCQkJQlJBWklMCisKKzAwLTI2LUQ2ICAgKGhleCkJCU5pbmdibyBBbmR5IE9wdG9lbGVjdHJvbmljIENvLiwgTHRkLgorMDAyNkQ2ICAgICAoYmFzZSAxNikJCU5pbmdibyBBbmR5IE9wdG9lbGVjdHJvbmljIENvLiwgTHRkLgorCQkJCUxhbmppYW5nIFN0cmVldCBJbmR1c3RyaWFsIFpvbmUKKwkJCQlZdXlhbyBaaGVqaWFuZyAzMTU0MDAKKwkJCQlDSElOQQorCiswMC0yNi1ENyAgIChoZXgpCQlYaWFtZW4gQkIgRWxlY3Ryb24gJiBUZWNobm9sb2d5IENvLiwgTHRkLgorMDAyNkQ3ICAgICAoYmFzZSAxNikJCVhpYW1lbiBCQiBFbGVjdHJvbiAmIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMzAzLCBBbmd5ZSBCdWlsZGluZywgVG9yY2ggSGlnaC10ZWNoIERldmVsb3BtZW50IFpvbmUKKwkJCQlYaWFtZW4gRnVqaWFuIDM2MTAwOQorCQkJCUNISU5BCisKKzAwLTI2LUQ4ICAgKGhleCkJCU1hZ2ljIFBvaW50IEluYy4KKzAwMjZEOCAgICAgKGJhc2UgMTYpCQlNYWdpYyBQb2ludCBJbmMuCisJCQkJU3VpdGUgMjAzLCBCdWlsZGluZyAxNywgTm8uIDI5NSBMaW4gTmFuIFJvYWQsIFB1ZG9uZyBTb2Z0d2FyZSBQYXJrIFNhbmxpbiBXb3JsZCBFeHBvIEJsb2NrCisJCQkJU2hhbmdoYWkgIDIwMDAxMjYKKwkJCQlDSElOQQorCiswMC0yNi1EOSAgIChoZXgpCQlQYWNlIHBsYworMDAyNkQ5ICAgICAoYmFzZSAxNikJCVBhY2UgcGxjCisJCQkJU2FsdHMgTWlsbAorCQkJCVZpY3RvcmlhIFJvYWQKKwkJCQlCcmFkZm9yZCBXZXN0IFlvcmtzaGlyZSBCRDE4IDNMRgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTI2LURBICAgKGhleCkJCVVuaXZlcnNhbCBNZWRpYSBDb3Jwb3JhdGlvbiAvU2xvdmFraWEvIHMuci5vLgorMDAyNkRBICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBNZWRpYSBDb3Jwb3JhdGlvbiAvU2xvdmFraWEvIHMuci5vLgorCQkJCU1pY2tpZXdpY3pvdmEgNzEwNC8xNAorCQkJCUJyYXRpc2xhdmEgIDgxMSAwNworCQkJCVNMT1ZBS0lBCisKKzAwLTI2LURCICAgKGhleCkJCUlvbmljcyBFTVMgSW5jLgorMDAyNkRCICAgICAoYmFzZSAxNikJCUlvbmljcyBFTVMgSW5jLgorCQkJCUNhcm1lbHJheSBJbmR1c3RyaWFsIFBhcmsgMiwgQnJneS4gVHVsbworCQkJCUNhbGFtYmEgTGFndW5hIDQwMjcKKwkJCQlQSElMSVBQSU5FUworCiswMC0yNi1EQyAgIChoZXgpCQlPcHRpY2FsIFN5c3RlbXMgRGVzaWduCiswMDI2REMgICAgIChiYXNlIDE2KQkJT3B0aWNhbCBTeXN0ZW1zIERlc2lnbgorCQkJCTcvMSBWdWtvIFBsYWNlCisJCQkJV2Fycmlld29vZCBOU1cgMjEwMgorCQkJCUFVU1RSQUxJQQorCiswMC0yNi1ERCAgIChoZXgpCQlGaXZhbCBDb3Jwb3JhdGlvbgorMDAyNkREICAgICAoYmFzZSAxNikJCUZpdmFsIENvcnBvcmF0aW9uCisJCQkJcm9vbSAyMDEtNyBzYWdpdHRhcml1cyBCCisJCQkJd3V4aSBzb2Z0d2FyZSBwYXJrCisJCQkJamlhbmdzdSBwcm92aW5jZSAyMTQwMjgKKwkJCQlDSElOQQorCiswMC0yNi1ERSAgIChoZXgpCQlGREkgTUFURUxFQworMDAyNkRFICAgICAoYmFzZSAxNikJCUZESSBNQVRFTEVDCisJCQkJUm91dGUgZGUgc2FpbnQgc3ltcGhvcmllbgorCQkJCUJQIDY5CisJCQkJTGVzIGxhbmRlcyBHw6ludXNzb24gIDg1MTMwCisJCQkJRlJBTkNFCisKKzAwLTI2LURGICAgKGhleCkJCVRhaURvYyBUZWNobm9sb2d5IENvcnAuCiswMDI2REYgICAgIChiYXNlIDE2KQkJVGFpRG9jIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQk3RiwgTm8uIDEyNywgV3Vnb25nIDJuZCBSZC4sIDI0ODg4IFd1Z3UgVG93bnNoaXAKKwkJCQlUYWlwZWkgQ291bnR5IFRhaXdhbiAyNDg4OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMjYtRTAgICAoaGV4KQkJQVNJVEVRCiswMDI2RTAgICAgIChiYXNlIDE2KQkJQVNJVEVRCisJCQkJNUYsIERPTkdZT1VORyBCbGRnLDM4Mi02LFlhdGFwIGRvbmcKKwkJCQlCdW5kYW5nIEd1LAorCQkJCVN1bmcgTmFtIHNpIEt5b3VuZ2dpLWRvIDQ2My04MjcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtRTEgICAoaGV4KQkJU3RhbmZvcmQgVW5pdmVyc2l0eSwgT3BlbkZsb3cgR3JvdXAKKzAwMjZFMSAgICAgKGJhc2UgMTYpCQlTdGFuZm9yZCBVbml2ZXJzaXR5LCBPcGVuRmxvdyBHcm91cAorCQkJCTM1MyBTZXJyYSBNYWxsCisJCQkJRUUgLSBDb21wdXRlciBTeXN0ZW1zIExhYm9yYXRvcnkKKwkJCQlTdGFuZm9yZCBDQSA5NDMwNS05MDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1FMiAgIChoZXgpCQlMRyBFbGVjdHJvbmljcworMDAyNkUyICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzCisJCQkJNjAtMzksR2FzYW4tZG9uZyxHdW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtMDIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LUUzICAgKGhleCkJCURUSQorMDAyNkUzICAgICAoYmFzZSAxNikJCURUSQorCQkJCVJ1ZSBkZSBsYSBnYXJlLCAzNQorCQkJCU5BTklOTkUgTkFNVVIgNTEwMAorCQkJCUJFTEdJVU0KKworMDAtMjYtRTQgICAoaGV4KQkJQ0FOQUwgT1ZFUlNFQVMKKzAwMjZFNCAgICAgKGJhc2UgMTYpCQlDQU5BTCBPVkVSU0VBUworCQkJCTQ4IHF1YWkgZHUgcG9pbnQgZHUgam91cgorCQkJCUJvdWxvZ25lLUJpbGxhbmNvdXJ0ICA5MjY1OQorCQkJCUZSQU5DRQorCiswMC0yNi1FNSAgIChoZXgpCQlBRUcgUG93ZXIgU29sdXRpb25zCiswMDI2RTUgICAgIChiYXNlIDE2KQkJQUVHIFBvd2VyIFNvbHV0aW9ucworCQkJCUVtaWwgU2llcG1hbm5zdHIuIDMyCisJCQkJV2Fyc3RlaW4gTlJXIDU5NTgxCisJCQkJR0VSTUFOWQorCiswMC0yNi1FNiAgIChoZXgpCQlWaXNpb25oaXRlY2ggQ28uLCBMdGQuCiswMDI2RTYgICAgIChiYXNlIDE2KQkJVmlzaW9uaGl0ZWNoIENvLiwgTHRkLgorCQkJCVZpc2lvbiBibGRnLiAxNTAtMworCQkJCVNpbWdvay1Eb25nLCBXb25taS1LdQorCQkJCUJ1Y2hvbiBLeXVuZ2dpLURvIDQyMC04MjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjYtRTcgICAoaGV4KQkJU2hhbmdoYWkgT05MQU4gQ29tbXVuaWNhdGlvbiBUZWNoLiBDby4sIEx0ZC4KKzAwMjZFNyAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBPTkxBTiBDb21tdW5pY2F0aW9uIFRlY2guIENvLiwgTHRkLgorCQkJCTNGLCA2QywgTm8uIDE2NTgsIEd1bWVpIFJvYWQsIFh1aHVpIERpc3RyaWN0CisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzAwLTI2LUU4ICAgKGhleCkJCU11cmF0YSBNYW51ZmFjdHVyaW5nIENvLiwgTHRkLgorMDAyNkU4ICAgICAoYmFzZSAxNikJCU11cmF0YSBNYW51ZmFjdHVyaW5nIENvLiwgTHRkLgorCQkJCTEwLTEsIEhpZ2FzaGlrb3RhcmkgMS1jaG9tZQorCQkJCU5hZ2Fva2FreW8tc2hpIEt5b3RvIDYxNy04NTU1CisJCQkJSkFQQU4KKworMDAtMjYtRTkgICAoaGV4KQkJU1AgQ29ycAorMDAyNkU5ICAgICAoYmFzZSAxNikJCVNQIENvcnAKKwkJCQlHdXJvIDMtZG9uZyAsR3Vyby1ndQorCQkJCUFjZSBUZWNobm8gOCBDaGEgMTMwNQorCQkJCVNlb3VsICAxNTItNzgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTI2LUVBICAgKGhleCkJCUNoZWVyY2hpcCBFbGVjdHJvbmljIFRlY2hub2xvZ3kgKFNoYW5nSGFpKSBDby4sIEx0ZC4KKzAwMjZFQSAgICAgKGJhc2UgMTYpCQlDaGVlcmNoaXAgRWxlY3Ryb25pYyBUZWNobm9sb2d5IChTaGFuZ0hhaSkgQ28uLCBMdGQuCisJCQkJUk9PTSAxMjAyLCBOTy4gNTEsIDcgQXJlYSwgTk8uIDE0NjcgQ0FPQkFPIFJPQUQ7CisJCQkJTUlOSEFORyBBUkVBCisJCQkJU0hBTkdIQUkgIDIwMTEwMQorCQkJCUNISU5BCisKKzAwLTI2LUVCICAgKGhleCkJCUFkdmFuY2VkIFNwZWN0cnVtIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDI2RUIgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgU3BlY3RydW0gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxRi4sIE5vLjY3IEpob25namhlbmcgUmQuCisJCQkJU2luamh1YW5nIFRhaXdhbiAyNDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LUVDICAgKGhleCkJCUxlZ3JhbmQgSG9tZSBTeXN0ZW1zLCBJbmMKKzAwMjZFQyAgICAgKGJhc2UgMTYpCQlMZWdyYW5kIEhvbWUgU3lzdGVtcywgSW5jCisJCQkJMzAxIEZ1bGxpbmcgTWlsbCBSZAorCQkJCVN1aXRlIEcKKwkJCQlNaWRkbGV0b3duIFBBIDE3MDU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1FRCAgIChoZXgpCQl6dGUgY29ycG9yYXRpb24KKzAwMjZFRCAgICAgKGJhc2UgMTYpCQl6dGUgY29ycG9yYXRpb24KKwkJCQkxMi9GIHp0ZSBwbGF6YSxrZWppIFJvYWQgU291dGgsSEktVGVjaCBJbmR1c3RyaWFsIFBhcmssTmFuc2hhbiBEaXN0cmljdAorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiswMC0yNi1FRSAgIChoZXgpCQlUS00gR21iSAorMDAyNkVFICAgICAoYmFzZSAxNikJCVRLTSBHbWJICisJCQkJU2NobG9zc3N0cmHDg8W4ZSAxMjMKKwkJCQlNw4PCtm5jaGVuZ2xhZGJhY2ggTlJXIDQxMjM4CisJCQkJR0VSTUFOWQorCiswMC0yNi1FRiAgIChoZXgpCQlUZWNobm9sb2d5IEFkdmFuY2VtZW50IEdyb3VwLCBJbmMuCiswMDI2RUYgICAgIChiYXNlIDE2KQkJVGVjaG5vbG9neSBBZHZhbmNlbWVudCBHcm91cCwgSW5jLgorCQkJCTIyMzU1IFRhZyBXYXkKKwkJCQlEdWxsZXMgVkEgMjAxNjYtOTMxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtRjAgICAoaGV4KQkJY1RyaXhzIEludGVybmF0aW9uYWwgR21iSC4KKzAwMjZGMCAgICAgKGJhc2UgMTYpCQljVHJpeHMgSW50ZXJuYXRpb25hbCBHbWJILgorCQkJCUxpZWZlcmluZ2VyIEhhdXB0c3RyLiAxNDAKKwkJCQlTYWx6YnVyZyBTYWx6YnVyZyA1MDIwCisJCQkJQVVTVFJJQQorCiswMC0yNi1GMSAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCiswMDI2RjEgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMDAgRm9vdGhpbGxzIEJsdmQuCisJCQkJUm9zZXZpbGxlIENhbGlmb3JuaWEgOTU3NDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI2LUYyICAgKGhleCkJCU5ldGdlYXIKKzAwMjZGMiAgICAgKGJhc2UgMTYpCQlOZXRnZWFyCisJCQkJMzUwIEVhc3QgUGx1bWVyaWEgRHJpdmUKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNi1GMyAgIChoZXgpCQlTTUMgTmV0d29ya3MKKzAwMjZGMyAgICAgKGJhc2UgMTYpCQlTTUMgTmV0d29ya3MKKwkJCQkyMCBNYXNvbgorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtRjQgICAoaGV4KQkJTmVzc2xhYgorMDAyNkY0ICAgICAoYmFzZSAxNikJCU5lc3NsYWIKKwkJCQk0ODktMiBNYWV0YW4gMy1kb25nLCBZZW9uZyBUb25nLWd1CisJCQkJU3V3b24tc2kgR3llb25nZ2ktZG8gNDQzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1GNSAgIChoZXgpCQlYUlBMVVMgSW5jLgorMDAyNkY1ICAgICAoYmFzZSAxNikJCVhSUExVUyBJbmMuCisJCQkJIzgwNSBBY2UgVGVjaG5vIFRvd2VyIDJuZCAxOTctMTcKKwkJCQlHdXJvM0RvbmcsIEd1cm8tR3UKKwkJCQlTZW91bCAgMTUyLTc2NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNi1GNiAgIChoZXgpCQlNaWxpdGFyeSBDb21tdW5pY2F0aW9uIEluc3RpdHV0ZQorMDAyNkY2ICAgICAoYmFzZSAxNikJCU1pbGl0YXJ5IENvbW11bmljYXRpb24gSW5zdGl0dXRlCisJCQkJdWwuIFdhcnN6YXdza2EgMjJBCisJCQkJWmVncnplICAwNS0xMzAKKwkJCQlQT0xBTkQKKworMDAtMjYtRjcgICAoaGV4KQkJSW5mb3N5cyBUZWNobm9sb2dpZXMgTHRkLgorMDAyNkY3ICAgICAoYmFzZSAxNikJCUluZm9zeXMgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQk0NCwgRWxlY3Ryb25pY3MgQ2l0eQorCQkJCUhvc3VyIFJvYWQKKwkJCQlCYW5nYWxvcmUgS2FybmFrYXRhIDU2MDEwMAorCQkJCUlORElBCisKKzAwLTI2LUY4ICAgKGhleCkJCUdvbGRlbiBIaWdod2F5IEluZHVzdHJ5IERldmVsb3BtZW50IENvLiwgTHRkLgorMDAyNkY4ICAgICAoYmFzZSAxNikJCUdvbGRlbiBIaWdod2F5IEluZHVzdHJ5IERldmVsb3BtZW50IENvLiwgTHRkLgorCQkJCUZsb29yIDcsIEJsb2NrIDgsIFZpc2lvbiBTaGVuemhlbiBCdXNpbmVzcyBQYXJrLCBOby45IEdhb3hpbiA5dGggU291dGggUm9hZAorCQkJCVNoZW56aGVuIEhpLXRlY2ggSW5kdXN0cmlhbCBQYXJrLCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gQ2l0eSBHdWFuZ2RvbmcgUHJvdmluY2UgNTE4MDU3CisJCQkJQ0hJTkEKKworMDAtMjYtRjkgICAoaGV4KQkJUy5FLk0uIHNybAorMDAyNkY5ICAgICAoYmFzZSAxNikJCVMuRS5NLiBzcmwKKwkJCQl2aWEgTGVjY28sIDYxCisJCQkJVmltZXJjYXRlIE1vbnphIEJyaWFuemEgMjAwNTkKKwkJCQlJVEFMWQorCiswMC0yNi1GQSAgIChoZXgpCQlCYW5kUmljaCBJbmMuCiswMDI2RkEgICAgIChiYXNlIDE2KQkJQmFuZFJpY2ggSW5jLgorCQkJCTdGLiwgTm8uMTg4LCBCYW9jaWFvIFJvYWQKKwkJCQlTaW5kaWFuIENpdHkgVGFpcGVpIDIzMTQ1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi1GQiAgIChoZXgpCQlBaXJEaW8gV2lyZWxlc3MsIEluYy4KKzAwMjZGQiAgICAgKGJhc2UgMTYpCQlBaXJEaW8gV2lyZWxlc3MsIEluYy4KKwkJCQkxMy01LCBOby4gNzksIFNlYy4gMSwgSHNpbiBUYWkgV3UgUm9hZAorCQkJCUhzaWNoaWggQ2l0eSwgVGFpcGVpIENvdW50eSBUYWl3YW4gMjIxMDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LUZDICAgKGhleCkJCUFjU2lQIFRlY2hub2xvZ3kgQ29ycC4KKzAwMjZGQyAgICAgKGJhc2UgMTYpCQlBY1NpUCBUZWNobm9sb2d5IENvcnAuCisJCQkJM0YuLCBOby4yMiwgRGFsaW4gUmQuLAorCQkJCVRhb3l1YW4gQ2l0eSwgVGFveXVhbiBDb3VudHkgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNi1GRCAgIChoZXgpCQlJbnRlcmFjdGl2ZSBJbnRlbGxpZ2VuY2UKKzAwMjZGRCAgICAgKGJhc2UgMTYpCQlJbnRlcmFjdGl2ZSBJbnRlbGxpZ2VuY2UKKwkJCQk3NjAxIEludGVyYWN0aXZlIFdheQorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjYtRkUgICAoaGV4KQkJTUtEIFRlY2hub2xvZ3kgSW5jLgorMDAyNkZFICAgICAoYmFzZSAxNikJCU1LRCBUZWNobm9sb2d5IEluYy4KKwkJCQkgUi5COCwgTm8uMSBMaXNpbmcgMXN0ICBSZC4sCisJCQkJSHNpbmNodSAgMzAwNzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI2LUZGICAgKGhleCkJCVJlc2VhcmNoIEluIE1vdGlvbgorMDAyNkZGICAgICAoYmFzZSAxNikJCVJlc2VhcmNoIEluIE1vdGlvbgorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCiswMC0yNy0wMCAgIChoZXgpCQlTaGVuemhlbiBTaWdsZW50IFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDI3MDAgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gU2lnbGVudCBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCUJVSUxESU5HIEE4LFRBTkdMQU5HIElORFVTVFJJQUwgWk9ORSxYSUxJLE5BTlNIQU4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworMDAtMjctMDEgICAoaGV4KQkJSU5DT3N0YXJ0ZWMgR21iSAorMDAyNzAxICAgICAoYmFzZSAxNikJCUlOQ09zdGFydGVjIEdtYkgKKwkJCQlSaGVpbnN0ci4gMTcKKwkJCQlUZWx0b3cgR2VybWFueSAxNDUxMworCQkJCUdFUk1BTlkKKworMDAtMjctMDIgICAoaGV4KQkJU29sYXJFZGdlIFRlY2hub2xvZ2llcworMDAyNzAyICAgICAoYmFzZSAxNikJCVNvbGFyRWRnZSBUZWNobm9sb2dpZXMKKwkJCQkxIEFiYmEgRWJhbiBTdC4KKwkJCQlQT0IgMTI3NjYKKwkJCQlIZXJ6ZWxpYSAgNDY3MjUKKwkJCQlJU1JBRUwKKworMDAtMjctMDMgICAoaGV4KQkJVGVzdGVjaCBFbGVjdHJvbmljcyBQdGUgTHRkCiswMDI3MDMgICAgIChiYXNlIDE2KQkJVGVzdGVjaCBFbGVjdHJvbmljcyBQdGUgTHRkCisJCQkJQmxvY2sgMTE4LCAjMDUtMTEwLAorCQkJCUFsanVuaWVkIEF2ZSAyCisJCQkJU2luZ2Fwb3JlICAzODAxMTgKKwkJCQlTSU5HQVBPUkUKKworMDAtMjctMDQgICAoaGV4KQkJQWNjZWxlcmF0ZWQgQ29uY2VwdHMsIEluYworMDAyNzA0ICAgICAoYmFzZSAxNikJCUFjY2VsZXJhdGVkIENvbmNlcHRzLCBJbmMKKwkJCQk0MDE3IFcgRHIgTWFydGluIEx1dGhlciBLaW5nIEpyIEJsdmQKKwkJCQlUYW1wYSBGTCAzMzYxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjctMDUgICAoaGV4KQkJU2VjdHJvbmljCiswMDI3MDUgICAgIChiYXNlIDE2KQkJU2VjdHJvbmljCisJCQkJWi5JLiBMZXMgU2F1bG5pZXJzCisJCQkJU2FpbnRlLU1hdXJlIGRlIFRvdXJhaW5lICAzNzgwMAorCQkJCUZSQU5DRQorCiswMC0yNy0wNiAgIChoZXgpCQlZT0lTWVMKKzAwMjcwNiAgICAgKGJhc2UgMTYpCQlZT0lTWVMKKwkJCQkzMDktNTIgU1VOR1NVLTJHQSwgMURPTkcsIFNVTkdET05HLUdVCisJCQkJU0VPVUwgIDEzMy04MjcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMjctMDcgICAoaGV4KQkJTGlmdCBDb21wbGV4IERTLCBKU0MKKzAwMjcwNyAgICAgKGJhc2UgMTYpCQlMaWZ0IENvbXBsZXggRFMsIEpTQworCQkJCW1pa3JvcmF5b24gR29yc2t5LCA2CisJCQkJTm92b3NpYmlyc2sgIDYzMDA3MworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC0yNy0wOCAgIChoZXgpCQlOb3JkaWFnIEFTQQorMDAyNzA4ICAgICAoYmFzZSAxNikJCU5vcmRpYWcgQVNBCisJCQkJRnJ5c2phdmVpZW4gNDAKKwkJCQlPc2xvICAwODg0CisJCQkJTk9SV0FZCisKKzAwLTI3LTA5ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMDAyNzA5ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzAwLTI3LTBBICAgKGhleCkJCUlFRSBTLkEuCiswMDI3MEEgICAgIChiYXNlIDE2KQkJSUVFIFMuQS4KKwkJCQlaQUUgV2VpZXJnZXdhbgorCQkJCTExLCBydWUgRWRtb25kIFJldXRlcgorCQkJCUNvbnRlcm4gIEwtNTMyNgorCQkJCUxVWEVNQk9VUkcKKworMDAtMjctMEIgICAoaGV4KQkJQWR1cmEgVGVjaG5vbG9naWVzCiswMDI3MEIgICAgIChiYXNlIDE2KQkJQWR1cmEgVGVjaG5vbG9naWVzCisJCQkJMjggU2Vjb25kIFN0cmVldAorCQkJCTR0aCBGbG9vcgorCQkJCVNhbiBGcmFuY2lzY28gQ0EgOTQxMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI3LTBDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwMjcwQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNy0wRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDI3MEQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjctMEUgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswMDI3MEUgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswMC0yNy0wRiAgIChoZXgpCQlFbnZpc2lvbm5vdmF0aW9uIEluYworMDAyNzBGICAgICAoYmFzZSAxNikJCUVudmlzaW9ubm92YXRpb24gSW5jCisJCQkJNCBXYXJlaGFtIERyaXZlCisJCQkJTWlzc2lzc2F1Z2EgT250YXJpbyBMNU0gMUI2CisJCQkJQ0FOQURBCisKKzAwLTI3LTEwICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorMDAyNzEwICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworMDAtMjctMTEgICAoaGV4KQkJTGFuUHJvIEluYworMDAyNzExICAgICAoYmFzZSAxNikJCUxhblBybyBJbmMKKwkJCQkxODgwIE5XIDkzQXYKKwkJCQlNaWFtaSBGbG9yaWRhIDMzMTcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yNy0xMiAgIChoZXgpCQlNYXhWaXNpb24gTExDCiswMDI3MTIgICAgIChiYXNlIDE2KQkJTWF4VmlzaW9uIExMQworCQkJCTQ5NSBQcm9kdWN0aW9uIEF2ZQorCQkJCU1hZGlzb24gQUwgMzU3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTI3LTEzICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAyNzEzICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTEFORSAzNTEsIFNFQy4xLCBUQUlQSU5HIFJELgorCQkJCVRTQU9UVUVOCisJCQkJTkFOVE9VIDU0MjYxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0yNy0xNCAgIChoZXgpCQlHcmFpbm11c3RhcmRzLCBDbyxsdGQuCiswMDI3MTQgICAgIChiYXNlIDE2KQkJR3JhaW5tdXN0YXJkcywgQ28sbHRkLgorCQkJCUhFSVdBIE1LIEJsZGcsMi00OC00LE5paG9uYmFzaGktSGFtYS1jaG8KKwkJCQlDaHVvLWt1LAorCQkJCVRva3lvICAxMDMtMDAwNworCQkJCUpBUEFOCisKKzAwLTI3LTE1ICAgKGhleCkJCVJlYm91bmQgVGVsZWNvbS4gQ28uLCBMdGQKKzAwMjcxNSAgICAgKGJhc2UgMTYpCQlSZWJvdW5kIFRlbGVjb20uIENvLiwgTHRkCisJCQkJMTJGLEJ1aWxkaW5nIE5vLjgyLE5vLjExOTgsTm9ydGggUWluemhvdSBSZCwKKwkJCQlTaGFuZ2hhaSAgMjAwMjMzCisJCQkJQ0hJTkEKKworMDAtMjctMTYgICAoaGV4KQkJQWRhY2hpLVN5b2thaSBDby4sIEx0ZC4KKzAwMjcxNiAgICAgKGJhc2UgMTYpCQlBZGFjaGktU3lva2FpIENvLiwgTHRkLgorCQkJCTIyOC0yIEhhemFtYSBNYWtpCisJCQkJRnVrdWNoaXlhbWEtc2hpIEt5b3RvIDYyMC0wOTEzCisJCQkJSkFQQU4KKworMDAtMjctMTcgICAoaGV4KQkJQ0UgRGlnaXRhbChaaGVuamlhbmcpQ28uLEx0ZAorMDAyNzE3ICAgICAoYmFzZSAxNikJCUNFIERpZ2l0YWwoWmhlbmppYW5nKUNvLixMdGQKKwkJCQlXZWkgMyBSb2FkLCBEaW5nbWFvLCBFY28uRGV2LlpvbmUsCisJCQkJSmlhbmdzdQorCQkJCVpoZW5qaWFuZyAgMjEyMDA5CisJCQkJQ0hJTkEKKworMDAtMjctMTggICAoaGV4KQkJU3V6aG91IE5FVyBTRUFVTklPTiBWaWRlbyBUZWNobm9sb2d5IENvLixMdGQKKzAwMjcxOCAgICAgKGJhc2UgMTYpCQlTdXpob3UgTkVXIFNFQVVOSU9OIFZpZGVvIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCTM4MyBKaW5nbWFvIFJvYWQsIEluZHVzdHJ5IFBhcmsKKwkJCQlTdXpob3UgSmlhbmdzdSAyMTUwMjEKKwkJCQlDSElOQQorCiswMC0yNy0xOSAgIChoZXgpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKzAwMjcxOSAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQlCdWlsZGluZyA3LCBTZWNvbmQgUGFydCwgSG9uZ2h1YWxpbmcgSW5kdXN0cmlhbCBab25lLCBYaWxpIHRvd24KKwkJCQlOYW5zaGFuCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA1NworCQkJCUNISU5BCisKKzAwLTI3LTFBICAgKGhleCkJCUdlZW5vdm8gVGVjaG5vbG9neSBMdGQuCiswMDI3MUEgICAgIChiYXNlIDE2KQkJR2Vlbm92byBUZWNobm9sb2d5IEx0ZC4KKwkJCQlVbml0IDQwMiwgNC9GLiwgVG93ZXIgSSxTSFVJIFFJTkcgTVUgSFVBIFlVQU4sCisJCQkJSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4MAorCQkJCUNISU5BCisKKzAwLTI3LTFCICAgKGhleCkJCUFsZWMgU2ljaGVyaGVpdHNzeXN0ZW1lIEdtYkgKKzAwMjcxQiAgICAgKGJhc2UgMTYpCQlBbGVjIFNpY2hlcmhlaXRzc3lzdGVtZSBHbWJICisJCQkJRnJpZWRyaWNoLUhvZWxzY2hlci1TdHJhc3NlIDM2NworCQkJCURvcnRtdW5kICA0NDMyOAorCQkJCUdFUk1BTlkKKworMDAtMjctMUMgICAoaGV4KQkJTUVSQ1VSWSBDT1JQT1JBVElPTgorMDAyNzFDICAgICAoYmFzZSAxNikJCU1FUkNVUlkgQ09SUE9SQVRJT04KKwkJCQk1MzEtNiwgR2Fqd2Fkb25nLAorCQkJCVNlb2d1CisJCQkJSW5jaGVvbiAgNDA0LTI1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNy0xRCAgIChoZXgpCQlDb21iYSBUZWxlY29tIFN5c3RlbXMgKENoaW5hKSBMdGQuCiswMDI3MUQgICAgIChiYXNlIDE2KQkJQ29tYmEgVGVsZWNvbSBTeXN0ZW1zIChDaGluYSkgTHRkLgorCQkJCTEwIFNoZW56aG91IFJvYWQKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDY2MworCQkJCUNISU5BCisKKzAwLTI3LTFFICAgKGhleCkJCVhhZ3lsIENvbW11bmljYXRpb25zCiswMDI3MUUgICAgIChiYXNlIDE2KQkJWGFneWwgQ29tbXVuaWNhdGlvbnMKKwkJCQkxNjY3IE1hcnJvbmllciBDcnQKKwkJCQlDdW1iZXJsYW5kIE9udGFyaW8gSzRDIDFDMgorCQkJCUNBTkFEQQorCiswMC0yNy0xRiAgIChoZXgpCQlNSVBSTyBFbGVjdHJvbmljcyBDby4sIEx0ZAorMDAyNzFGICAgICAoYmFzZSAxNikJCU1JUFJPIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJODE0LFBlaWthbmcgUm9hZAorCQkJCUNoaWF5aSAgNjAwOTYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTI3LTIwICAgKGhleCkJCU5FVy1TT0wgQ09NCiswMDI3MjAgICAgIChiYXNlIDE2KQkJTkVXLVNPTCBDT00KKwkJCQlCdWNoZW9uIFRlY25vcGFyayA0MDMtNjAyCisJCQkJWWFrZGFlLWRvbmcgV29ubWktZ3UKKwkJCQlCdWNoZW9uIGNpdHkgS3lvdW5na2ktZG8gNDIwLTczNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0yNy0yMSAgIChoZXgpCQlTaGVuemhlbiBCYW9hbiBGZW5kYSBJbmR1c3RyaWFsIENvLiwgTHRkCiswMDI3MjEgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQmFvYW4gRmVuZGEgSW5kdXN0cmlhbCBDby4sIEx0ZAorCQkJCUZlbmRhIEhpLVRlY2ggUGFyaworCQkJCVpob3VzaGkgUm9hZCwgU2hpeWFuCisJCQkJQmFvYW4gU2hlbnpoZW4gNTE4MTA4CisJCQkJQ0hJTkEKKworMDAtMjctMjIgICAoaGV4KQkJVWJpcXVpdGkgTmV0d29ya3MKKzAwMjcyMiAgICAgKGJhc2UgMTYpCQlVYmlxdWl0aSBOZXR3b3JrcworCQkJCTkxIEUuIFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMjctRjggICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKzAwMjdGOCAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworCQkJCTE3NDUgVGVjaG5vbG9neSBEcgorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0yQS02QSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMDJBNkEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMkEtQUYgICAoaGV4KQkJTEFSc3lzLUF1dG9tYXRpb24gR21iSAorMDAyQUFGICAgICAoYmFzZSAxNikJCUxBUnN5cy1BdXRvbWF0aW9uIEdtYkgKKwkJCQlTaW56aW5nZXIgU3RyLiAzCisJCQkJSG9jaGJ1cmctQWNoICA1MTIyCisJCQkJQVVTVFJJQQorCiswMC0yRC03NiAgIChoZXgpCQlUSVRFQ0ggR21iSAorMDAyRDc2ICAgICAoYmFzZSAxNikJCVRJVEVDSCBHbWJICisJCQkJT3R0by1IYWhuLVN0ci4gNgorCQkJCU11ZWxoZWltLUthZXJsaWNoICA1NjIxOAorCQkJCUdFUk1BTlkKKworMDAtMzAtMDAgICAoaGV4KQkJQUxMV0VMTCBURUNITk9MT0dZIENPUlAuCiswMDMwMDAgICAgIChiYXNlIDE2KQkJQUxMV0VMTCBURUNITk9MT0dZIENPUlAuCisJCQkJNEYsICMxNSwgTEFORTMsIFNFQy4yCisJCQkJQ0hJRU4gS1dPIE4uIFJPQUQgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTAxICAgKGhleCkJCVNNUAorMDAzMDAxICAgICAoYmFzZSAxNikJCVNNUAorCQkJCTIyLCBSVUUgREVTIENPU01PTkFVVEVTCisJCQkJMzE0MDAgVE9VTE9VU0UKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtMzAtMDIgICAoaGV4KQkJRXhwYW5kIE5ldHdvcmtzCiswMDMwMDIgICAgIChiYXNlIDE2KQkJRXhwYW5kIE5ldHdvcmtzCisJCQkJQXRpZGltIFRlY2ggUGFyaywgQmxkZy4gNAorCQkJCVAuTy4gQm94IDU4MTQyCisJCQkJVGVsLUF2aXYgNjE1ODAgIAorCQkJCUlTUkFFTAorCiswMC0zMC0wMyAgIChoZXgpCQlQaGFzeXMgTHRkLgorMDAzMDAzICAgICAoYmFzZSAxNikJCVBoYXN5cyBMdGQuCisJCQkJIzEwMC05NDA0IDQxc3QgQXZlbnVlCisJCQkJRWRtb250b24gQWxiZXJ0YSBUNlggMVIyIAorCQkJCUNBTkFEQQorCiswMC0zMC0wNCAgIChoZXgpCQlMRUFEVEVLIFJFU0VBUkNIIElOQy4KKzAwMzAwNCAgICAgKGJhc2UgMTYpCQlMRUFEVEVLIFJFU0VBUkNIIElOQy4KKwkJCQkxOEYsIE5vLjE2NiwgQ2hpZW4tWWkgUm9hZAorCQkJCUNodW5nLUhvIFRhaXBlaSwKKwkJCQlIc2llbiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC0wNSAgIChoZXgpCQlGdWppdHN1IFNpZW1lbnMgQ29tcHV0ZXJzCiswMDMwMDUgICAgIChiYXNlIDE2KQkJRnVqaXRzdSBTaWVtZW5zIENvbXB1dGVycworCQkJCUJ1ZXJnZXJtZWlzdGVyIHVscmljaCAxMDAKKwkJCQk4NjE5OSBBdWdzYnVyZyAgCisJCQkJR0VSTUFOWQorCiswMC0zMC0wNiAgIChoZXgpCQlTVVBFUlBPV0VSIENPTVBVVEVSCiswMDMwMDYgICAgIChiYXNlIDE2KQkJU1VQRVJQT1dFUiBDT01QVVRFUgorCQkJCUVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCU5PLiAyMCBXVS1HT05HIDZUSCBST0FEIFdVLUtVIElORFVTVFInTAorCQkJCVRhaXBlaSAyNDggIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtMDcgICAoaGV4KQkJT1BUSSwgSU5DLgorMDAzMDA3ICAgICAoYmFzZSAxNikJCU9QVEksIElOQy4KKwkJCQkxNDQwIE1DQ0FSVEhZIEJMVkQuCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTA4ICAgKGhleCkJCUFWSU8gRElHSVRBTCwgSU5DLgorMDAzMDA4ICAgICAoYmFzZSAxNikJCUFWSU8gRElHSVRBTCwgSU5DLgorCQkJCTk1NyBJTkRVU1RSSUFMIFJPQUQKKwkJCQlTQU4gQ0FSTE9TIENBIDk0MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0wOSAgIChoZXgpCQlUYWNoaW9uIE5ldHdvcmtzLCBJbmMuCiswMDMwMDkgICAgIChiYXNlIDE2KQkJVGFjaGlvbiBOZXR3b3JrcywgSW5jLgorCQkJCTIgTWVyaWRpYW4gUm9hZAorCQkJCUVhdG9udG93biBOSiAwNzcyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMEEgICAoaGV4KQkJQVpURUNIIEVsZWN0cm9uaWNzIFB0ZSBMdGQKKzAwMzAwQSAgICAgKGJhc2UgMTYpCQlBWlRFQ0ggRWxlY3Ryb25pY3MgUHRlIEx0ZAorCQkJCTMxIFVCSSBST0FEIDEKKwkJCQlBWlRFQ0ggQlVJTERJTkcKKwkJCQk0MDg2OTQKKwkJCQlTSU5HQVBPUkUKKworMDAtMzAtMEIgICAoaGV4KQkJbVBIQVNFIFRlY2hub2xvZ2llcywgSW5jLgorMDAzMDBCICAgICAoYmFzZSAxNikJCW1QSEFTRSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyNTAgMTR0aCBTdHJlZXQKKwkJCQlHQ0FUVCBCbGRnLiAtIFJvb20gIzI0OEEKKwkJCQlBdGxhbnRhIEdBIDMwMzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0wQyAgIChoZXgpCQlDT05HUlVFTkNZLCBMVEQuCiswMDMwMEMgICAgIChiYXNlIDE2KQkJQ09OR1JVRU5DWSwgTFRELgorCQkJCTIzIEhBU0lWSU0gU1RSRUVUCisJCQkJUE9CIDc4MTMKKwkJCQlQRVRBSC1USUtWQSA0OTE3MCAgCisJCQkJSVNSQUVMCisKKzAwLTMwLTBEICAgKGhleCkJCU1NQyBUZWNobm9sb2d5LCBJbmMuCiswMDMwMEQgICAgIChiYXNlIDE2KQkJTU1DIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkjMTUwMiwgU2VvdWwgVmVudHVyZSBUb3duLCBBanUgQmxkZworCQkJCTY3OS01LCBZZW9rc2FtLURvbmcsIEthbmduYW0tR3UKKwkJCQlTZW91bCAxMzUtMDgwICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMzAtMEUgICAoaGV4KQkJS2xvdHogRGlnaXRhbCBBRworMDAzMDBFICAgICAoYmFzZSAxNikJCUtsb3R6IERpZ2l0YWwgQUcKKwkJCQlIYW5zLVN0aWVzc2JlcmdlcnN0ci4gMkEKKwkJCQlELTg1NTQwIEhhYXIgIAorCQkJCUdFUk1BTlkKKworMDAtMzAtMEYgICAoaGV4KQkJSU1UIC0gSW5mb3JtYXRpb24gTWFuYWdlbWVudCBUCiswMDMwMEYgICAgIChiYXNlIDE2KQkJSU1UIC0gSW5mb3JtYXRpb24gTWFuYWdlbWVudCBUCisJCQkJR2V3ZXJiZXN0cmFzc2UgOAorCQkJCUNILTk0NzAgQnVjaHMgIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTMwLTEwICAgKGhleCkJCVZJU0lPTkVUSUNTIElOVEVSTkFUSU9OQUwKKzAwMzAxMCAgICAgKGJhc2UgMTYpCQlWSVNJT05FVElDUyBJTlRFUk5BVElPTkFMCisJCQkJM0YsIE5PLiAzLCBQUk9TUEVSSVRZIFJPQUQgMQorCQkJCVNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLIEhTSU5DSFUKKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC0xMSAgIChoZXgpCQlITVMgSW5kdXN0cmlhbCBOZXR3b3JrcyAgIAorMDAzMDExICAgICAoYmFzZSAxNikJCUhNUyBJbmR1c3RyaWFsIE5ldHdvcmtzICAgCisJCQkJUCBPIEJveCA0MTI2CisJCQkJSEFMTVNUQUQKKwkJCQlTRS0zMDAgMDQKKwkJCQlTV0VERU4KKworMDAtMzAtMTIgICAoaGV4KQkJRElHSVRBTCBFTkdJTkVFUklORyBMVEQuCiswMDMwMTIgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFTkdJTkVFUklORyBMVEQuCisJCQkJMiBUUkVOQ0ggUk9BRCwgTUFMTFVTSworCQkJCUJFTEZBU1QgQlQzNiA0VFkKKwkJCQlOT1JUSEVSTiBJUkVMQU5ECisJCQkJSVJFTEFORAorCiswMC0zMC0xMyAgIChoZXgpCQlORUMgQ29ycG9yYXRpb24KKzAwMzAxMyAgICAgKGJhc2UgMTYpCQlORUMgQ29ycG9yYXRpb24KKwkJCQkxLTEwIE5pc3NoaW5jaG8sIEZ1Y2h1CisJCQkJVG9reW8gMTgzLTg1MDEgIAorCQkJCUpBUEFOCisKKzAwLTMwLTE0ICAgKGhleCkJCURJVklPLCBJTkMuCiswMDMwMTQgICAgIChiYXNlIDE2KQkJRElWSU8sIElOQy4KKwkJCQk5OTcgRS4gQVJRVUVTIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMTUgICAoaGV4KQkJQ1AgQ0xBUkUgQ09SUC4KKzAwMzAxNSAgICAgKGJhc2UgMTYpCQlDUCBDTEFSRSBDT1JQLgorCQkJCTc4IENIRVJSWSBISUxMIERSSVZFCisJCQkJQkVWRVJMWSBNQSAwMTkxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMTYgICAoaGV4KQkJSVNISURBIENPLiwgTFRELgorMDAzMDE2ICAgICAoYmFzZSAxNikJCUlTSElEQSBDTy4sIExURC4KKwkJCQk5NTktMSBTSElNT01BR0FSSQorCQkJCVJJVFRPLUNITyBLVVJJVEEtR1VOIFNISUdBICA1MjAtMzAyNgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtMzAtMTcgICAoaGV4KQkJQmx1ZUFyYyBVSyBMdGQKKzAwMzAxNyAgICAgKGJhc2UgMTYpCQlCbHVlQXJjIFVLIEx0ZAorCQkJCVF1ZWVuc2dhdGUgSG91c2UKKwkJCQlDb29raGFtIFJvYWQKKwkJCQlCcmFja25lbGwgIFJHMTIgMVJCCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMzAtMTggICAoaGV4KQkJSmV0d2F5IEluZm9ybWF0aW9uIENvLiwgTHRkLgorMDAzMDE4ICAgICAoYmFzZSAxNikJCUpldHdheSBJbmZvcm1hdGlvbiBDby4sIEx0ZC4KKwkJCQk0RiwgTm8uIDE2OCwgTEkgVEhFIFNULgorCQkJCUNodW5nIEhvIENpdHkgMjM1IFRhaXBlaSAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTE5ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMzAxOSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMUEgICAoaGV4KQkJU01BUlRCUklER0VTIFBURS4gTFRELgorMDAzMDFBICAgICAoYmFzZSAxNikJCVNNQVJUQlJJREdFUyBQVEUuIExURC4KKwkJCQk3NDUgVG9hIFBheW9oIExvcm9uZyA1CisJCQkJIzA0LTAxCisJCQkJMzE5NDU1CisJCQkJU0lOR0FQT1JFCisKKzAwLTMwLTFCICAgKGhleCkJCVNIVVRUTEUsIElOQy4KKzAwMzAxQiAgICAgKGJhc2UgMTYpCQlTSFVUVExFLCBJTkMuCisJCQkJNUYsIE5vLiAzNCwgTGFuZSA2MAorCQkJCVdlbi1IdSBTdC4sIE5laS1IdSBEaXN0LiwKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtMUMgICAoaGV4KQkJQUxUVkFURVIgQUlSREFUQSBTWVNURU1TCiswMDMwMUMgICAgIChiYXNlIDE2KQkJQUxUVkFURVIgQUlSREFUQSBTWVNURU1TCisJCQkJR01CSCAmIENPLiBLRworCQkJCVJJRU1FTlNUUkFTU0UgMzAgNzQ5MDYgQkFEIFJBUFBFTkFVCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMzAtMUQgICAoaGV4KQkJU0tZU1RSRUFNLCBJTkMuCiswMDMwMUQgICAgIChiYXNlIDE2KQkJU0tZU1RSRUFNLCBJTkMuCisJCQkJNDU1IERlR3VpZ25lIERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg2LTM4MzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTFFICAgKGhleCkJCTNDT00gRXVyb3BlIEx0ZC4KKzAwMzAxRSAgICAgKGJhc2UgMTYpCQkzQ09NIEV1cm9wZSBMdGQuCisJCQkJM0NPTSBDZW50cmUKKwkJCQlCb3VuZGFyeSBXYXksIEhlbWVsIEhlbXBzdGVhZAorCQkJCUhlcnRzLiAgSFAyIDdZVSAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMzAtMUYgICAoaGV4KQkJT1BUSUNBTCBORVRXT1JLUywgSU5DLgorMDAzMDFGICAgICAoYmFzZSAxNikJCU9QVElDQUwgTkVUV09SS1MsIElOQy4KKwkJCQkxNjYgQkFZUE9JTlRFIFBBUktXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMjAgICAoaGV4KQkJVFNJLCBJbmMuLgorMDAzMDIwICAgICAoYmFzZSAxNikJCVRTSSwgSW5jLi4KKwkJCQk1MDAgQ2FyZGlnYW4gUm9hZAorCQkJCVNob3JldmlldyBNTiA1NTEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMjEgICAoaGV4KQkJSFNJTkcgVEVDSC4gRU5URVJQUklTRSBDTy4sTFRECiswMDMwMjEgICAgIChiYXNlIDE2KQkJSFNJTkcgVEVDSC4gRU5URVJQUklTRSBDTy4sTFRECisJCQkJMkYsIE5PLiAyMiwgQUxMTEVZIDM4LCBMQU5FIDkxCisJCQkJU0VDLiAxLCBORUkgSFUgUk9BRAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC0yMiAgIChoZXgpCQlGb25nIEthaSBJbmR1c3RyaWFsIENvLiwgTHRkLgorMDAzMDIyICAgICAoYmFzZSAxNikJCUZvbmcgS2FpIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJNEYtMywgTm8uIDEzLCBXdSBDaHVhbiAxc3QgUm9hZAorCQkJCUhzaW4gQ2h1YW5nIENpdHksIFRhaXBlaSBIc2llbiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC0yMyAgIChoZXgpCQlDT0dFTlQgQ09NUFVURVIgU1lTVEVNUywgSU5DLgorMDAzMDIzICAgICAoYmFzZSAxNikJCUNPR0VOVCBDT01QVVRFUiBTWVNURU1TLCBJTkMuCisJCQkJMTAgUklWRVIgUk9BRCAtIFNURS4gIzIwNQorCQkJCVVYQlJJREdFIE1BIDAxNTY5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0yNCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDMwMjQgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRSAtU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMjUgICAoaGV4KQkJQ0hFQ0tPVVQgQ09NUFVURVIgU1lTVEVNUywgTFRECiswMDMwMjUgICAgIChiYXNlIDE2KQkJQ0hFQ0tPVVQgQ09NUFVURVIgU1lTVEVNUywgTFRECisJCQkJVE9XTlNFTkQgRkFSTSBST0FECisJCQkJSE9VR0hUT04gUkVHSVMsIERVTlNUQUJMRSBCRURGT1JEU0hJUkUKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTMwLTI2ICAgKGhleCkJCUhlaVRlbCBEaWdpdGFsIFZpZGVvIEdtYkgKKzAwMzAyNiAgICAgKGJhc2UgMTYpCQlIZWlUZWwgRGlnaXRhbCBWaWRlbyBHbWJICisJCQkJU3R1dGhhZ2VuIDI1CisJCQkJMjQxMTMgTW9sZnNlZQorCQkJCUdFUk1BTlkKKworMDAtMzAtMjcgICAoaGV4KQkJS0VSQkFOR08sIElOQy4KKzAwMzAyNyAgICAgKGJhc2UgMTYpCQlLRVJCQU5HTywgSU5DLgorCQkJCTIxNzcxIFNURVZFTlMgQ1JFRUsgQkxWRC4gIzEwMAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMjggICAoaGV4KQkJRkFTRSBTYWxkYXR1cmEgc3JsCiswMDMwMjggICAgIChiYXNlIDE2KQkJRkFTRSBTYWxkYXR1cmEgc3JsCisJCQkJVi5SLiBCZXJuYXJkaSA1CisJCQkJMTAwNDIgU3R1cGluaXFpLU5pY2hlbGlubworCQkJCVRPUklOTyAgCisJCQkJSVRBTFkKKworMDAtMzAtMjkgICAoaGV4KQkJT1BJQ09NCiswMDMwMjkgICAgIChiYXNlIDE2KQkJT1BJQ09NCisJCQkJUk9PTSAjMzAyLCBTVFlMRSBGQUNUT1JZIDE1MQorCQkJCVlBVEFCLURPTkcsIEJVTkRBTkctR1UgU1VOR05BTS1TSSwgS1lVTkcKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC0yQSAgIChoZXgpCQlTT1VUSEVSTiBJTkZPUk1BVElPTgorMDAzMDJBICAgICAoYmFzZSAxNikJCVNPVVRIRVJOIElORk9STUFUSU9OCisJCQkJU1lTVEVNLCBJTkMuCisJCQkJTk8uOCwgUiZEIFJELiBJViBTQ0lFTkNFLUJBU0VEIElORFVTVFJJQQorCQkJCUhTSU5DSFUgVEFJV0FOLCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTJCICAgKGhleCkJCUlOQUxQIE5FVFdPUktTLCBJTkMuCiswMDMwMkIgICAgIChiYXNlIDE2KQkJSU5BTFAgTkVUV09SS1MsIElOQy4KKwkJCQlNRVJJRURXRUcgNworCQkJCUNILTMxNzIgTklFREVSV0FOR0VOCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC0zMC0yQyAgIChoZXgpCQlTWUxBTlRSTyBTWVNURU1TIENPUlBPUkFUSU9OCiswMDMwMkMgICAgIChiYXNlIDE2KQkJU1lMQU5UUk8gU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCTE2ODYgREVMTCBBVkVOVUUKKwkJCQlDQU1QQkVMTCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMkQgICAoaGV4KQkJUVVBTlRVTSBCUklER0UgQ09NTVVOSUNBVElPTlMKKzAwMzAyRCAgICAgKGJhc2UgMTYpCQlRVUFOVFVNIEJSSURHRSBDT01NVU5JQ0FUSU9OUworCQkJCU9ORSBISUdIIFNUUkVFVAorCQkJCU5PUlRIIEFORE9WRVIgTUEgMDE4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTJFICAgKGhleCkJCUhvZnQgJiBXZXNzZWwgQUcKKzAwMzAyRSAgICAgKGJhc2UgMTYpCQlIb2Z0ICYgV2Vzc2VsIEFHCisJCQkJUm90ZW5idXJnZXIgU3RyYXNzZSAyMAorCQkJCTMwNjU5IEhhbm5vdmVyICAKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLTJGICAgKGhleCkJCUdFIEF2aWF0aW9uIFN5c3RlbQorMDAzMDJGICAgICAoYmFzZSAxNikJCUdFIEF2aWF0aW9uIFN5c3RlbQorCQkJCTMyOTAgUGF0dGVyc29uIEF2ZS4sIFMuRS4KKwkJCQlHcmFuZCBSYXBpZHMgTUkgNDk1MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTMwICAgKGhleCkJCUhBUk1PTklYIENPUlBPUkFUSU9OCiswMDMwMzAgICAgIChiYXNlIDE2KQkJSEFSTU9OSVggQ09SUE9SQVRJT04KKwkJCQkxNzU1IE9TR09PRCBTVFJFRVQKKwkJCQlOT1JUSCBBTkRPVkVSIE1BIDAxODQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0zMSAgIChoZXgpCQlMSUdIVFdBVkUgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMzAzMSAgICAgKGJhc2UgMTYpCQlMSUdIVFdBVkUgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkyNjEgUEVQRSdTIEZBUk0gUk9BRAorCQkJCU1JTEZPUkQgQ1QgMDY0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTMyICAgKGhleCkJCU1hZ2ljUmFtLCBJbmMuCiswMDMwMzIgICAgIChiYXNlIDE2KQkJTWFnaWNSYW0sIEluYy4KKwkJCQkxODUwIEJldmVybHkgQmx2ZC4KKwkJCQlMb3MgQW5nZWxlcyBDQSA5MDA1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMzMgICAoaGV4KQkJT1JJRU5UIFRFTEVDT00gQ08uLCBMVEQuCiswMDMwMzMgICAgIChiYXNlIDE2KQkJT1JJRU5UIFRFTEVDT00gQ08uLCBMVEQuCisJCQkJTUlTVU5HIEJVTERJTkcgMTE1LTcKKwkJCQlOT05IWVVOLURPTkcsIEtBTkdNQU4tS1UgU0VPVUwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC0zNCAgIChoZXgpCQlTRVQgRU5HSU5FRVJJTkcKKzAwMzAzNCAgICAgKGJhc2UgMTYpCQlTRVQgRU5HSU5FRVJJTkcKKwkJCQkxNTc1MCBWSU5FWUFSRCBCTFZELiBTVEUuICMxMDAKKwkJCQlNT1JHQU4gSElMTCBDQSA5NTAzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtMzUgICAoaGV4KQkJQ29ybmluZyBJbmNvcnBvcmF0ZWQKKzAwMzAzNSAgICAgKGJhc2UgMTYpCQlDb3JuaW5nIEluY29ycG9yYXRlZAorCQkJCURhdGEgQ2VudGVyCisJCQkJTS9TIC0gU1AtV1ctMDEKKwkJCQlDb3JuaW5nIE5ZIDE0ODMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0zNiAgIChoZXgpCQlSTVAgRUxFS1RST05JS1NZU1RFTUUgR01CSAorMDAzMDM2ICAgICAoYmFzZSAxNikJCVJNUCBFTEVLVFJPTklLU1lTVEVNRSBHTUJICisJCQkJSEFOTlMtTUFSVElOLVNDSExFJ1ItU1RSLjEyLTE0CisJCQkJRC00Nzg3NyBXSUxMSUNILU1VTkNISEVJREUKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0zMC0zNyAgIChoZXgpCQlQYWNrYXJkIEJlbGwgTmVjIFNlcnZpY2VzCiswMDMwMzcgICAgIChiYXNlIDE2KQkJUGFja2FyZCBCZWxsIE5lYyBTZXJ2aWNlcworCQkJCTI5OSBhdmVudWUgUGF0dG9uLCBCUCA2NDUKKwkJCQk0OTAwNiBBbmdlcnMgQ2VkZXggMDEgIAorCQkJCUZSQU5DRQorCiswMC0zMC0zOCAgIChoZXgpCQlYQ1AsIElOQy4KKzAwMzAzOCAgICAgKGJhc2UgMTYpCQlYQ1AsIElOQy4KKwkJCQk0MCBFTE0gU1RSRUVUCisJCQkJRFJZREVOIE5ZIDEzMDUzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC0zOSAgIChoZXgpCQlTT0ZUQk9PSyBQUkVTUworMDAzMDM5ICAgICAoYmFzZSAxNikJCVNPRlRCT09LIFBSRVNTCisJCQkJNzc0NSBIRVJTQ0hFTCBBVkVOVUUKKwkJCQlMQSBKT0xMQSBDQSA5MjAzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtM0EgICAoaGV4KQkJTUFBVEVMCiswMDMwM0EgICAgIChiYXNlIDE2KQkJTUFBVEVMCisJCQkJNDk1IFJVRSBERSBQT01NQVJJTgorCQkJCTM4MzYwIFZPUkVQUEUgIAorCQkJCUZSQU5DRQorCiswMC0zMC0zQiAgIChoZXgpCQlQb3dlckNvbSBUZWNobm9sb2d5CiswMDMwM0IgICAgIChiYXNlIDE2KQkJUG93ZXJDb20gVGVjaG5vbG9neQorCQkJCTJGLCBOby4gMzQsIEluZHVzdHJ5IEUuIFJvYWQgSVYKKwkJCQlIc2luY2h1IFNjaWVuY2UtYmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSAzMDAgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtM0MgICAoaGV4KQkJT05OVE8gQ09SUC4KKzAwMzAzQyAgICAgKGJhc2UgMTYpCQlPTk5UTyBDT1JQLgorCQkJCTEyRi0yLCAgTk8uIDE2MQorCQkJCVNVTkcgVEVIIFJELiwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTNEICAgKGhleCkJCUlWQSBDT1JQT1JBVElPTgorMDAzMDNEICAgICAoYmFzZSAxNikJCUlWQSBDT1JQT1JBVElPTgorCQkJCTI5IEhVRFNPTiBST0FECisJCQkJU1VEQlVSWSBNQSAwMTc3NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtM0UgICAoaGV4KQkJUmFkY29tIEx0ZC4KKzAwMzAzRSAgICAgKGJhc2UgMTYpCQlSYWRjb20gTHRkLgorCQkJCTEyIEhhbmVjaG9zaGV0IFN0cmVldAorCQkJCVRlbC1Bdml2IDY5NzEwICAKKwkJCQlJU1JBRUwKKworMDAtMzAtM0YgICAoaGV4KQkJVHVyYm9Db21tIFRlY2ggSW5jLgorMDAzMDNGICAgICAoYmFzZSAxNikJCVR1cmJvQ29tbSBUZWNoIEluYy4KKwkJCQk0Ri0yLCBObyAxNzEsIFN1bmctVGNoIFJvYWQKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtNDAgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAzMDQwICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUgLVNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTQxICAgKGhleCkJCVNBRUpJTiBUICYgTSBDTy4sIExURC4KKzAwMzA0MSAgICAgKGJhc2UgMTYpCQlTQUVKSU4gVCAmIE0gQ08uLCBMVEQuCisJCQkJMk5EIEZMLiwgU0FFSklOIEJMREcuIDY4OQorCQkJCUlMV09OLURPTkcsIEtBTkdOQU0tR1UsIFNFT1VMCisJCQkJMTM1LTIzMCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC00MiAgIChoZXgpCQlEZVRlV2UtRGV1dHNjaGUgVGVsZXBob253ZXJrZQorMDAzMDQyICAgICAoYmFzZSAxNikJCURlVGVXZS1EZXV0c2NoZSBUZWxlcGhvbndlcmtlCisJCQkJWmV1Z2hvZnN0cmFzc2UgMQorCQkJCUQtMTA5OTcgQmVybGluICAKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLTQzICAgKGhleCkJCUlEUkVBTSBURUNITk9MT0dJRVMsIFBURS4gTFRELgorMDAzMDQzICAgICAoYmFzZSAxNikJCUlEUkVBTSBURUNITk9MT0dJRVMsIFBURS4gTFRELgorCQkJCTU0IEtBTExBTkcgQkFIUlUsICMwMi0xNAorCQkJCVNJTkdBUE9SRSAzMzkzMzYKKwkJCQlTSU5HQVBPUkUKKwkJCQlTSU5HQVBPUkUKKworMDAtMzAtNDQgICAoaGV4KQkJQ3JhZGxlUG9pbnQsIEluYworMDAzMDQ0ICAgICAoYmFzZSAxNikJCUNyYWRsZVBvaW50LCBJbmMKKwkJCQk4MDUgVy4gRnJhbmtsaW4gU3QuCisJCQkJQm9pc2UgSUQgODM3MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTQ1ICAgKGhleCkJCVZpbGxhZ2UgTmV0d29ya3MsIEluYy4gKFZOSSkKKzAwMzA0NSAgICAgKGJhc2UgMTYpCQlWaWxsYWdlIE5ldHdvcmtzLCBJbmMuIChWTkkpCisJCQkJMTAwIFZpbGxhZ2UgQ291cnQgLSBTdGUuICMzMDEKKwkJCQlIYXpsZXQgTkogMDc3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTQ2ICAgKGhleCkJCUNvbnRyb2xsZWQgRWxlY3Ryb25pYyBNYW5hZ2VtZQorMDAzMDQ2ICAgICAoYmFzZSAxNikJCUNvbnRyb2xsZWQgRWxlY3Ryb25pYyBNYW5hZ2VtZQorCQkJCVVuaXQgNCBSYXZlbmhpbGwgQnVzaW5lc3MgUGFyaworCQkJCVJhdmVuaGlsbCBSb2FkCisJCQkJQmVsZmFzdCAgCisJCQkJSVJFTEFORAorCiswMC0zMC00NyAgIChoZXgpCQlOSVNTRUkgRUxFQ1RSSUMgQ08uLCBMVEQuCiswMDMwNDcgICAgIChiYXNlIDE2KQkJTklTU0VJIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTMyIE1JWUFXQUtFLCBTSElNT05PSVNISUtJLUNITworCQkJCU5BS0FHQVdBLUtVLCBOQUdPWUEgNDU0LTA5NDUKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTMwLTQ4ICAgKGhleCkJCVN1cGVybWljcm8gQ29tcHV0ZXIsIEluYy4KKzAwMzA0OCAgICAgKGJhc2UgMTYpCQlTdXBlcm1pY3JvIENvbXB1dGVyLCBJbmMuCisJCQkJMjA1MSBKdW5jdGlvbiBBdmVudWUKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNDkgICAoaGV4KQkJQlJZQU5UIFRFQ0hOT0xPR1ksIExURC4KKzAwMzA0OSAgICAgKGJhc2UgMTYpCQlCUllBTlQgVEVDSE5PTE9HWSwgTFRELgorCQkJCVAuTy4gQk9YIDY5NTU3CisJCQkJQlJZQU5TVE9OLCAyMDIxCisJCQkJU09VVEggQUZSSUNBCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTMwLTRBICAgKGhleCkJCUZyYXVuaG9mZXIgSVBNUworMDAzMDRBICAgICAoYmFzZSAxNikJCUZyYXVuaG9mZXIgSVBNUworCQkJCU1hcmlhLVJlaWNoZS1TdHJhc3NlIDIKKwkJCQkwMTEwOQorCQkJCUdFUk1BTlkKKworMDAtMzAtNEIgICAoaGV4KQkJT1JCQUNPTSBTWVNURU1TLCBJTkMuCiswMDMwNEIgICAgIChiYXNlIDE2KQkJT1JCQUNPTSBTWVNURU1TLCBJTkMuCisJCQkJMTcwNCBUQVlMT1JTIExBTkUKKwkJCQlDSU5OQU1JTlNPTiBOSiAwODA3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNEMgICAoaGV4KQkJQVBQSUFOIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDMwNEMgICAgIChiYXNlIDE2KQkJQVBQSUFOIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJODAgQ0VOVFJBTCBTVFJFRVQKKwkJCQlCT1hCT1JPVUdIIE1BIDAxNzE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC00RCAgIChoZXgpCQlFU0kKKzAwMzA0RCAgICAgKGJhc2UgMTYpCQlFU0kKKwkJCQkyNjAxIFN1bW1pdCBBdmVudWUKKwkJCQlQbGFubyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNEUgICAoaGV4KQkJQlVTVEVDIFBST0RVQ1RJT04gTFRELgorMDAzMDRFICAgICAoYmFzZSAxNikJCUJVU1RFQyBQUk9EVUNUSU9OIExURC4KKwkJCQlXT1JMRCBBVklBVElPTiBQQVJLCisJCQkJU2hhbm5vbiBDb3VudHkgQ2xhcmUgCisJCQkJSVJFTEFORAorCiswMC0zMC00RiAgIChoZXgpCQlQTEFORVQgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMDAzMDRGICAgICAoYmFzZSAxNikJCVBMQU5FVCBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJMTFGLCBOby4gOTYsIE1pbi1DaHVhbiBSb2FkCisJCQkJSHNpbi1UaWVuIFRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC01MCAgIChoZXgpCQlWZXJzYSBUZWNobm9sb2d5CiswMDMwNTAgICAgIChiYXNlIDE2KQkJVmVyc2EgVGVjaG5vbG9neQorCQkJCTQ0MzAgRS4gTWlyYWxvbWEgQXZlLiwgLSBTdGUuCisJCQkJQW5haGVpbSBDQSA5MjgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNTEgICAoaGV4KQkJT1JCSVQgQVZJT05JQyAmIENPTU1VTklDQVRJT04KKzAwMzA1MSAgICAgKGJhc2UgMTYpCQlPUkJJVCBBVklPTklDICYgQ09NTVVOSUNBVElPTgorCQkJCVNZU1RFTVMsIExURC4KKwkJCQlQLk8uIEJPWCAzMTcxIElORFVTVFJJQUwgWk9ORSwgTkVUQU5ZQSA0CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTMwLTUyICAgKGhleCkJCUVMQVNUSUMgTkVUV09SS1MKKzAwMzA1MiAgICAgKGJhc2UgMTYpCQlFTEFTVElDIE5FVFdPUktTCisJCQkJNjEyMCBXSU5EV0FSRCBQQVJLV0FZIC1TVEUjMTAwCisJCQkJQUxQSEFSRVRUQSBHQSAzMDAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNTMgICAoaGV4KQkJQmFzbGVyIEFHCiswMDMwNTMgICAgIChiYXNlIDE2KQkJQmFzbGVyIEFHCisJCQkJQW4gRGVyIFN0cnVzYmVrIDYwLTYyCisJCQkJMjI5MjYgQWhyZW5zYnVyZyAgCisJCQkJR0VSTUFOWQorCiswMC0zMC01NCAgIChoZXgpCQlDQVNUTEVORVQgVEVDSE5PTE9HWSwgSU5DLgorMDAzMDU0ICAgICAoYmFzZSAxNikJCUNBU1RMRU5FVCBURUNITk9MT0dZLCBJTkMuCisJCQkJTk8uIDEzMCBXVS1LVU5HIFJELiwKKwkJCQlXVS1LVSBIU0lBTkcgVEFJUEVJIEhTSUVOCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLTU1ICAgKGhleCkJCVJlbmVzYXMgVGVjaG5vbG9neSBBbWVyaWNhLCBJbmMuCiswMDMwNTUgICAgIChiYXNlIDE2KQkJUmVuZXNhcyBUZWNobm9sb2d5IEFtZXJpY2EsIEluYy4KKwkJCQk0NTAgSG9sZ2VyIFdheQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC01NiAgIChoZXgpCQlCZWNrIElQQyBHbWJICiswMDMwNTYgICAgIChiYXNlIDE2KQkJQmVjayBJUEMgR21iSAorCQkJCUdyw7xuaW5nZXIgV2VnIDI0CisJCQkJRC0zNTQxNSBQb2hsaGVpbSAKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLTU3ICAgKGhleCkJCVFUZWxOZXQsIEluYy4KKzAwMzA1NyAgICAgKGJhc2UgMTYpCQlRVGVsTmV0LCBJbmMuCisJCQkJNDAwIC0gMzExNSAxMnRoIFN0cmVldCBORQorCQkJCUNhbGdhcnkgQWxiZXJ0YSBUMkUgN0oyCisJCQkJQ0FOQURBCisKKzAwLTMwLTU4ICAgKGhleCkJCUFQSSBNT1RJT04KKzAwMzA1OCAgICAgKGJhc2UgMTYpCQlBUEkgTU9USU9OCisJCQkJNDUgSEFaRUxXT09EIERSSVZFCisJCQkJQU1IRVJTVCBOWSAxNDIyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNTkgICAoaGV4KQkJS09OVFJPTiBDT01QQUNUIENPTVBVVEVSUyBBRworMDAzMDU5ICAgICAoYmFzZSAxNikJCUtPTlRST04gQ09NUEFDVCBDT01QVVRFUlMgQUcKKwkJCQlOb3Jkc3RyYXNzZSAxMS9GCisJCQkJIExVVEVSQkFDSCAgNDU0MgorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTMwLTVBICAgKGhleCkJCVRFTEdFTiBDT1JQT1JBVElPTgorMDAzMDVBICAgICAoYmFzZSAxNikJCVRFTEdFTiBDT1JQT1JBVElPTgorCQkJCTMxMDEgU09WRVJFSUdOIERSLiAtIFNURS4KKwkJCQlMQU5TSU5HIE1JIDQ4OTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC01QiAgIChoZXgpCQlUb2tvIEluYy4KKzAwMzA1QiAgICAgKGJhc2UgMTYpCQlUb2tvIEluYy4KKwkJCQkxOCBDT01JR0FZQSwgVFNVUlVHQVNISU1BLVNISQorCQkJCVNBSVRBTUEtS0VOCisJCQkJSkFQQU4gMzUwLTIyODEKKwkJCQlKQVBBTgorCiswMC0zMC01QyAgIChoZXgpCQlTTUFSIExhYm9yYXRvcmllcyBDb3JwLgorMDAzMDVDICAgICAoYmFzZSAxNikJCVNNQVIgTGFib3JhdG9yaWVzIENvcnAuCisJCQkJMTA5NjAgTWlsbHJpZGdlIE5vcnRoIC0gU3RlLiAjMTA3CisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNUQgICAoaGV4KQkJRElHSVRSQSBTWVNURU1TLCBJTkMuCiswMDMwNUQgICAgIChiYXNlIDE2KQkJRElHSVRSQSBTWVNURU1TLCBJTkMuCisJCQkJOC02MSwgR0FXT0wtRE9ORworCQkJCVlPTkdTQU4tS1UgU0VPVUwKKwkJCQlLT1JFQSAxNDAtMTUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTMwLTVFICAgKGhleCkJCUFiZWxrbyBJbm5vdmF0aW9uCiswMDMwNUUgICAgIChiYXNlIDE2KQkJQWJlbGtvIElubm92YXRpb24KKwkJCQlCb3ggODA4CisJCQkJUy05NzEyNSBMdWxlYSAgCisJCQkJU1dFREVOCisKKzAwLTMwLTVGICAgKGhleCkJCUhhc3NlbGJsYWQKKzAwMzA1RiAgICAgKGJhc2UgMTYpCQlIYXNzZWxibGFkCisJCQkJSGVqcmV2ZWogMzAKKwkJCQlDb3BlbmhhZ2VuIE5WIERLLTI0MDAKKwkJCQlERU5NQVJLCisKKzAwLTMwLTYwICAgKGhleCkJCVBvd2VyZmlsZSwgSW5jLgorMDAzMDYwICAgICAoYmFzZSAxNikJCVBvd2VyZmlsZSwgSW5jLgorCQkJCTMzNTAgVGhvbWFzIFJvYWQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NC0yMDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC02MSAgIChoZXgpCQlNb2J5VEVMCiswMDMwNjEgICAgIChiYXNlIDE2KQkJTW9ieVRFTAorCQkJCTQzMDEgQ29ubmVjdGljdXQgQXZlLiBOVworCQkJCVN0ZS4gIzQ1NAorCQkJCVdhc2hpbmd0b24gREMgMjAwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTYyICAgKGhleCkJCVBBVEggMSBORVRXT1JLIFRFQ0hOT0wnUyBJTkMuCiswMDMwNjIgICAgIChiYXNlIDE2KQkJUEFUSCAxIE5FVFdPUksgVEVDSE5PTCdTIElOQy4KKwkJCQkzNjM2IE5PQkVMIERSSVZFIC0gU1RFLiAjMjc1CisJCQkJU0FOIERJRUdPIENBIDkyMTIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC02MyAgIChoZXgpCQlTQU5URVJBIFNZU1RFTVMsIElOQy4KKzAwMzA2MyAgICAgKGJhc2UgMTYpCQlTQU5URVJBIFNZU1RFTVMsIElOQy4KKwkJCQkyOTAxIFNVTU1JVCBBVkVOVUUgLSBTVEUuICMxMDAKKwkJCQlQTEFOTyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNjQgICAoaGV4KQkJQURMSU5LIFRFQ0hOT0xPR1ksIElOQy4KKzAwMzA2NCAgICAgKGJhc2UgMTYpCQlBRExJTksgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTlGLCBOTy4gMTY2LCBKSUVOLVlJIFIuRC4KKwkJCQlDSFVORy1ITyBDSVRZIFRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC02NSAgIChoZXgpCQlBUFBMRSBDT01QVVRFUiwgSU5DLgorMDAzMDY1ICAgICAoYmFzZSAxNikJCUFQUExFIENPTVBVVEVSLCBJTkMuCisJCQkJMjA2NTAgVkFMTEVZIEdSRUVOIERSSVZFCisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC02NiAgIChoZXgpCQlSRk0KKzAwMzA2NiAgICAgKGJhc2UgMTYpCQlSRk0KKwkJCQkzMDc5IFByZW1pZXJlIFBrd3kKKwkJCQlTdWl0ZSAxNDAKKwkJCQlEdWx1dGggR0EgMzAwOTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTY3ICAgKGhleCkJCUJJT1NUQVIgTUlDUk9URUNIIElOVCdMIENPUlAuCiswMDMwNjcgICAgIChiYXNlIDE2KQkJQklPU1RBUiBNSUNST1RFQ0ggSU5UJ0wgQ09SUC4KKwkJCQkyRkwuIE5PLiAxMDgtMiBNSU4gQ0hVQU4gUk9BRAorCQkJCUhTSU4gVElFTiBDSVRZLCBUQUlQRUkgSFNJRU4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtNjggICAoaGV4KQkJQ1lCRVJORVRJQ1MgVEVDSC4gQ08uLCBMVEQuCiswMDMwNjggICAgIChiYXNlIDE2KQkJQ1lCRVJORVRJQ1MgVEVDSC4gQ08uLCBMVEQuCisJCQkJREFJVE9IIEJMREcuIDRGIDMtMzItMQorCQkJCVRBS0FEQSwgVE9TSElNQS1LVSwgVE9LWU8KKwkJCQlKQVBBTiAxNzEtMDAzMworCQkJCUpBUEFOCisKKzAwLTMwLTY5ICAgKGhleCkJCUlNUEFDQ1QgVEVDSE5PTE9HWSBDT1JQLgorMDAzMDY5ICAgICAoYmFzZSAxNikJCUlNUEFDQ1QgVEVDSE5PTE9HWSBDT1JQLgorCQkJCTJGLCBOTy4gMTIsIFImRCBSRC4gSUkKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSyBIU0lOLUNIVQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC02QSAgIChoZXgpCQlQRU5UQSBNRURJQSBDTy4sIExURC4KKzAwMzA2QSAgICAgKGJhc2UgMTYpCQlQRU5UQSBNRURJQSBDTy4sIExURC4KKwkJCQlFLTUwNCBCdW5kYW5nIFRlY2hub3BhcmssMTUxCisJCQkJWWF0b3AtZG9uZyBCdW5kYW5nLWd1CisJCQkJU2VvbmduYW0gR3llb25nZ2ktZG8gCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTMwLTZCICAgKGhleCkJCUNNT1MgU1lTVEVNUywgSU5DLgorMDAzMDZCICAgICAoYmFzZSAxNikJCUNNT1MgU1lTVEVNUywgSU5DLgorCQkJCTIzNDQwIEhBV1RIT1JORSBCTFZELVNURSAjMjkwCisJCQkJVE9SUkFOQ0UgQ0EgOTA1MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTZDICAgKGhleCkJCUhpdGV4IEhvbGRpbmcgR21iSAorMDAzMDZDICAgICAoYmFzZSAxNikJCUhpdGV4IEhvbGRpbmcgR21iSAorCQkJCUdyZXNjaGJhY2hzdHIuIDEyCisJCQkJNzYyMjkgS2FybHNydWhlICAKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLTZEICAgKGhleCkJCUxVQ0VOVCBURUNITk9MT0dJRVMKKzAwMzA2RCAgICAgKGJhc2UgMTYpCQlMVUNFTlQgVEVDSE5PTE9HSUVTCisJCQkJMzAwIEJBS0VSIEFWRU5VRSAtIFNURS4gIzEwMAorCQkJCUNPTkNPUkQgTUEgMDE3NDItMjE2OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNkUgICAoaGV4KQkJSEVXTEVUVCBQQUNLQVJECiswMDMwNkUgICAgIChiYXNlIDE2KQkJSEVXTEVUVCBQQUNLQVJECisJCQkJMTEwMDAgV09MRkUgUk9BRAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNkYgICAoaGV4KQkJU0VZRU9OIFRFQ0guIENPLiwgTFRELgorMDAzMDZGICAgICAoYmFzZSAxNikJCVNFWUVPTiBURUNILiBDTy4sIExURC4KKwkJCQlOQU1DSEVPTiBCTERHLiA2RiwKKwkJCQlEQUVDSEktRE9ORywgOTU3LTAxMyBLQU5HTkFNLUdVLCBTRU9VTAorCQkJCUtPUkVBIDEzNS0yODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMzAtNzAgICAoaGV4KQkJMU5ldCBDb3Jwb3JhdGlvbgorMDAzMDcwICAgICAoYmFzZSAxNikJCTFOZXQgQ29ycG9yYXRpb24KKwkJCQkzNDcgRWxpemFiZXRoIEF2ZW51ZSAtIFN0ZS4gIzEwMAorCQkJCVNvbWVyc2V0IE5KIDA4ODczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC03MSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDMwNzEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2IC0gU0pBLTIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNzIgICAoaGV4KQkJSW50ZWxsaWJ5dGUgSW5jLgorMDAzMDcyICAgICAoYmFzZSAxNikJCUludGVsbGlieXRlIEluYy4KKwkJCQlDYW5hZGEgVHJ1c3QgVG93ZXIgLSBCQ0UgUGxhY2UKKwkJCQkxNjEgQmF5IFN0LiAyN3RoIEZsb29yLAorCQkJCVRvcm9udG8gT250YXJpbyBNNUogMlMxCisJCQkJQ0FOQURBCisKKzAwLTMwLTczICAgKGhleCkJCUludGVybmF0aW9uYWwgTWljcm9zeXN0ZW1zLCBJbgorMDAzMDczICAgICAoYmFzZSAxNikJCUludGVybmF0aW9uYWwgTWljcm9zeXN0ZW1zLCBJbgorCQkJCTUyMSBWYWxsZXkgV2F5CisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTc0ICAgKGhleCkJCUVRVUlJTkVUIExURC4KKzAwMzA3NCAgICAgKGJhc2UgMTYpCQlFUVVJSU5FVCBMVEQuCisJCQkJRURJU09OIEhPVVNFCisJCQkJRURJU09OIFJPQUQKKwkJCQkgU1dJTkRPTiwgU04zIDVKQSAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtMzAtNzUgICAoaGV4KQkJQURURUNICiswMDMwNzUgICAgIChiYXNlIDE2KQkJQURURUNICisJCQkJUlVFIERVIFZBTCBTVCBMQU1CRVJUIDE5MSAvIGkKKwkJCQkgU0VSQUlORyAgNDEwMAorCQkJCUJFTEdJVU0KKworMDAtMzAtNzYgICAoaGV4KQkJQWthbWJhIENvcnBvcmF0aW9uCiswMDMwNzYgICAgIChiYXNlIDE2KQkJQWthbWJhIENvcnBvcmF0aW9uCisJCQkJMTU1OTUgTG9zIEdhdG9zIEJsdmQuCisJCQkJTG9zIEdhdG9zIENBIDk1MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC03NyAgIChoZXgpCQlPTlBSRU0gTkVUV09SS1MKKzAwMzA3NyAgICAgKGJhc2UgMTYpCQlPTlBSRU0gTkVUV09SS1MKKwkJCQk0MjUwMSBBTEJSQUUgU1RSRUVUCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtNzggICAoaGV4KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorMDAzMDc4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMsIEluYy4KKwkJCQkxNzAgV2VzdCBUYXNtYW4gRHJpdmUgLSBTSkEtMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC03OSAgIChoZXgpCQlDUU9TLCBJTkMuCiswMDMwNzkgICAgIChiYXNlIDE2KQkJQ1FPUywgSU5DLgorCQkJCTI1IE1BVUNITFkgIC0gU1RFLiAjMzI5CisJCQkJSVJWSU5FIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC03QSAgIChoZXgpCQlBZHZhbmNlZCBUZWNobm9sb2d5ICYgU3lzdGVtcworMDAzMDdBICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIFRlY2hub2xvZ3kgJiBTeXN0ZW1zCisJCQkJWW9rb2hhbWEgQnVzaW5lc3MgUGFyayBFYXN0IFRvd2VyIDlGLAorCQkJCTEzNCBHb3Vkby1jaG8sIEhvZG9nYXlhLWt1LCBZb2tvaGFtYSwgS2EKKwkJCQkyNDAtMDAwNQorCQkJCUpBUEFOCisKKzAwLTMwLTdCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwMzA3QiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyaXZlIC0gU0pBLTIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtN0MgICAoaGV4KQkJQURJRCBTQQorMDAzMDdDICAgICAoYmFzZSAxNikJCUFESUQgU0EKKwkJCQk3MCBSVSBBTkFUT0xFIEZSQU5DRQorCQkJCTkyIDMwMCBMRVZBTExPSVMtUEVSUkVUIENFREVYICAKKwkJCQlGUkFOQ0UKKworMDAtMzAtN0QgICAoaGV4KQkJR1JFIEFNRVJJQ0EsIElOQy4KKzAwMzA3RCAgICAgKGJhc2UgMTYpCQlHUkUgQU1FUklDQSwgSU5DLgorCQkJCTQyNSBIQVJCT1IgQkxWRC4KKwkJCQlCRUxNT05UIENBIDk0MDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC03RSAgIChoZXgpCQlSZWRmbGV4IENvbW11bmljYXRpb24gU3lzdGVtcworMDAzMDdFICAgICAoYmFzZSAxNikJCVJlZGZsZXggQ29tbXVuaWNhdGlvbiBTeXN0ZW1zCisJCQkJMTEtMjkgRWFzdGVybiBSb2FkCisJCQkJU291dGggTWVsYm91cm5lIFZpY3RvcmlhIDMyMDUgCisJCQkJQVVTVFJBTElBCisKKzAwLTMwLTdGICAgKGhleCkJCUlSTEFOIExURC4KKzAwMzA3RiAgICAgKGJhc2UgMTYpCQlJUkxBTiBMVEQuCisJCQkJMSBIQVRBTUFSIFNUUkVFVAorCQkJCVAuTy4gQk9YIDI4OCBZT0tORUFNIDIwNjkyCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTMwLTgwICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMzA4MCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtODEgICAoaGV4KQkJQUxUT1MgQyZDCiswMDMwODEgICAgIChiYXNlIDE2KQkJQUxUT1MgQyZDCisJCQkJMTUwLTAxMCBSTS4gMTAxMiwgNDQtMQorCQkJCURBRSBZT1VORyBCL0QsIFlPVklETy1ET05HIFlPVU5HQ0hVTkdQTy0KKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC04MiAgIChoZXgpCQlUQUlIQU4gRUxFQ1RSSUMgV0lSRSBDTy4sIExURC4KKzAwMzA4MiAgICAgKGJhc2UgMTYpCQlUQUlIQU4gRUxFQ1RSSUMgV0lSRSBDTy4sIExURC4KKwkJCQlDb21tdW5pY2F0aW9uIEVuZ2luZWVyaW5nIFRlYW0KKwkJCQk5OTYgU2loZXVuZy1Eb25nIEtleW0gQ2hlb24ta3UKKwkJCQlTZW91bCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTMwLTgzICAgKGhleCkJCUl2cm9uIFN5c3RlbXMKKzAwMzA4MyAgICAgKGJhc2UgMTYpCQlJdnJvbiBTeXN0ZW1zCisJCQkJMTktMjAgWU9SSyBST0FECisJCQkJRFVOIExBT0dIQUlSRSBDT1VOVFkgRFVCTElOCisJCQkJSVJFTEFORAorCQkJCUlSRUxBTkQKKworMDAtMzAtODQgICAoaGV4KQkJQUxMSUVEIFRFTEVTWU4gSU5URVJOQUlPTkFMCiswMDMwODQgICAgIChiYXNlIDE2KQkJQUxMSUVEIFRFTEVTWU4gSU5URVJOQUlPTkFMCisJCQkJQ09SUE9SQVRJT04KKwkJCQk5NjAgU1RFV0FSVCBEUklWRSwgIFNURS4KKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTg1ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMzA4NSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTg2ICAgKGhleCkJCVRyYW5zaXN0b3IgRGV2aWNlcywgSW5jLgorMDAzMDg2ICAgICAoYmFzZSAxNikJCVRyYW5zaXN0b3IgRGV2aWNlcywgSW5jLgorCQkJCTM2QSBOZXdidXJnaCBSb2FkCisJCQkJSGFja2V0dHN0b3duIE5KIDA3ODQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC04NyAgIChoZXgpCQlWRUdBIEdSSUVTSEFCRVIgS0cKKzAwMzA4NyAgICAgKGJhc2UgMTYpCQlWRUdBIEdSSUVTSEFCRVIgS0cKKwkJCQlBTSBIT0hFTlNURUlOIDExMworCQkJCTc3NzYxIFNDSFVMVEFDSAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLTg4ICAgKGhleCkJCUVyaWNzc29uCiswMDMwODggICAgIChiYXNlIDE2KQkJRXJpY3Nzb24KKwkJCQkxMDAgSGVhZHF1YXJ0ZXJzIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTg5ICAgKGhleCkJCVNwZWN0cmFwb2ludCBXaXJlbGVzcywgTExDCiswMDMwODkgICAgIChiYXNlIDE2KQkJU3BlY3RyYXBvaW50IFdpcmVsZXNzLCBMTEMKKwkJCQkxMTI1IEUuIENvbGxpbnMgQmx2ZC4KKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC04QSAgIChoZXgpCQlOSUNPVFJBIFNJU1RFTUkgUy5QLkEKKzAwMzA4QSAgICAgKGJhc2UgMTYpCQlOSUNPVFJBIFNJU1RFTUkgUy5QLkEKKwkJCQk0MSBWaWEgUHJpbW8gTWFnZ2lvCisJCQkJQmFyYW56YXRlIChNSSkgMjAwMjEKKwkJCQlJVEFMWQorCiswMC0zMC04QiAgIChoZXgpCQlCcml4IE5ldHdvcmtzCiswMDMwOEIgICAgIChiYXNlIDE2KQkJQnJpeCBOZXR3b3JrcworCQkJCTMwMCBDb25jb3JkIFJvYWQKKwkJCQlCaWxsZXJpY2EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLThDICAgKGhleCkJCVF1YW50dW0gQ29ycG9yYXRpb24KKzAwMzA4QyAgICAgKGJhc2UgMTYpCQlRdWFudHVtIENvcnBvcmF0aW9uCisJCQkJMTAxMjUgRmVkZXJhbCBEcml2ZQorCQkJCUNvbG9yYWRvIFNwcmluZ3MgQ08gODA5MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLThEICAgKGhleCkJCVBpbm5hY2xlIFN5c3RlbXMsIEluYy4KKzAwMzA4RCAgICAgKGJhc2UgMTYpCQlQaW5uYWNsZSBTeXN0ZW1zLCBJbmMuCisJCQkJRnJhbmtmdXJ0ZXIgU3RyLiAzYworCQkJCUQtMzgxMjIgQnJhdW5zY2h3ZWlnIAorCQkJCUdFUk1BTlkKKworMDAtMzAtOEUgICAoaGV4KQkJQ1JPU1MgTUFUQ0ggVEVDSE5PTE9HSUVTLCBJTkMuCiswMDMwOEUgICAgIChiYXNlIDE2KQkJQ1JPU1MgTUFUQ0ggVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMzk2MCBSQ0EgQmx2ZC4sIFN1aXRlIDYwMDEKKwkJCQlQYWxtIEJlYWNoIEZMIDMzNDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC04RiAgIChoZXgpCQlNSUNSSUxPUiwgSW5jLgorMDAzMDhGICAgICAoYmFzZSAxNikJCU1JQ1JJTE9SLCBJbmMuCisJCQkJMTcgTGFrZXNpZGUgT2ZmaWNlIFBhcmsKKwkJCQk2MDcgTm9ydGggQXZlbnVlCisJCQkJV2FrZWZpZWxkIE1BIDAxODgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05MCAgIChoZXgpCQlDWVJBIFRFQ0hOT0xPR0lFUywgSU5DLgorMDAzMDkwICAgICAoYmFzZSAxNikJCUNZUkEgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJODAwMCBDQVBXRUxMIERSSVZFCisJCQkJT0FLTEFORCBDQSA5NDYyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtOTEgICAoaGV4KQkJVEFJV0FOIEZJUlNUIExJTkUgRUxFQy4gQ09SUC4KKzAwMzA5MSAgICAgKGJhc2UgMTYpCQlUQUlXQU4gRklSU1QgTElORSBFTEVDLiBDT1JQLgorCQkJCTQwIENodW5nLVNoYW4gUm9hZAorCQkJCVR1LUNoZW5nIEluZHVzdHJpYWwgUGFyaworCQkJCVRhaXBlaSBDb3VudHkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtOTIgICAoaGV4KQkJTW9kdU5PUk0gR21iSAorMDAzMDkyICAgICAoYmFzZSAxNikJCU1vZHVOT1JNIEdtYkgKKwkJCQlMYW5ncnV0aXN0cmFzc2UgMzMKKwkJCQlDSC04ODQwIEVpbnNsZWRlbG4gIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTMwLTkzICAgKGhleCkJCVNvbm5ldCBUZWNobm9sb2dpZXMsIEluYworMDAzMDkzICAgICAoYmFzZSAxNikJCVNvbm5ldCBUZWNobm9sb2dpZXMsIEluYworCQkJCTggQXV0cnkKKwkJCQlJcnZpbmUsIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05NCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMDMwOTQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZSAtIFNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTk1ICAgKGhleCkJCVByb2NvbXAgSW5mb3JtYXRpY3MsIEx0ZC4KKzAwMzA5NSAgICAgKGJhc2UgMTYpCQlQcm9jb21wIEluZm9ybWF0aWNzLCBMdGQuCisJCQkJNUYsIDY5LTEwLCBTZWMuIDIsCisJCQkJQ2h1bmcgQ2hlbmcgRS4gUm9hZAorCQkJCVRhbXNodWksIFRhaXBlaSwgSHNpZW4gIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtOTYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDAzMDk2ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUgLSBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05NyAgIChoZXgpCQlBQiBSZWdpbgorMDAzMDk3ICAgICAoYmFzZSAxNikJCUFCIFJlZ2luCisJCQkJQm94IDM2NgorCQkJCVNFLTI2MTIzIExhbmRza3JvbmEgCisJCQkJU1dFREVOCisKKzAwLTMwLTk4ICAgKGhleCkJCUdsb2JhbCBDb252ZXJnaW5nIFRlY2hub2xvZ2llcworMDAzMDk4ICAgICAoYmFzZSAxNikJCUdsb2JhbCBDb252ZXJnaW5nIFRlY2hub2xvZ2llcworCQkJCTE4MDAgUHJlc3RvbiBQYXJrIEJsdmQuCisJCQkJU3VpdGUgIzI1MAorCQkJCVBsYW5vIFRYIDc1MDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05OSAgIChoZXgpCQlCT0VOSUcgVU5EIEtBTExFTkJBQ0ggT0hHCiswMDMwOTkgICAgIChiYXNlIDE2KQkJQk9FTklHIFVORCBLQUxMRU5CQUNIIE9IRworCQkJCUFNIFNQT0VSS0VMIDEwMAorCQkJCTQ0MjI3IERPUlRNVU5ECisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMzAtOUEgICAoaGV4KQkJQVNUUk8gVEVSUkEgQ09SUC4KKzAwMzA5QSAgICAgKGJhc2UgMTYpCQlBU1RSTyBURVJSQSBDT1JQLgorCQkJCTExNTI2IFNPUlJFTlRPIFZBTExFWSBST0FECisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05QiAgIChoZXgpCQlTbWFydHdhcmUKKzAwMzA5QiAgICAgKGJhc2UgMTYpCQlTbWFydHdhcmUKKwkJCQk0OSBBViBBcmlzdGlkZQorCQkJCUJyaWFuZAorCQkJCTkyMTYwIEFudG9ueSAgCisJCQkJRlJBTkNFCisKKzAwLTMwLTlDICAgKGhleCkJCVRpbWluZyBBcHBsaWNhdGlvbnMsIEluYy4KKzAwMzA5QyAgICAgKGJhc2UgMTYpCQlUaW1pbmcgQXBwbGljYXRpb25zLCBJbmMuCisJCQkJNDc3NSBXYWxudXQgU3QuCisJCQkJU3VpdGUgMUIKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC05RCAgIChoZXgpCQlOaW1ibGUgTWljcm9zeXN0ZW1zLCBJbmMuCiswMDMwOUQgICAgIChiYXNlIDE2KQkJTmltYmxlIE1pY3Jvc3lzdGVtcywgSW5jLgorCQkJCTUwIENodXJjaCBTdHJlZXQgLSA1dGggRmxvb3IKKwkJCQlDYW1icmlkZ2UgTUEgMDIxMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLTlFICAgKGhleCkJCVdPUktCSVQgQ09SUE9SQVRJT04uCiswMDMwOUUgICAgIChiYXNlIDE2KQkJV09SS0JJVCBDT1JQT1JBVElPTi4KKwkJCQkxLTItMiBDaHVvdSwgWWFtYXRvCisJCQkJS2FuYWdhd2EgIDI0Mi0wMDIxICAKKwkJCQlKQVBBTgorCiswMC0zMC05RiAgIChoZXgpCQlBTUJFUiBORVRXT1JLUworMDAzMDlGICAgICAoYmFzZSAxNikJCUFNQkVSIE5FVFdPUktTCisJCQkJMjQ3NSBBVUdVU1RJTkUgRFIuCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUEwICAgKGhleCkJCVRZQ08gU1VCTUFSSU5FIFNZU1RFTVMsIExURC4KKzAwMzBBMCAgICAgKGJhc2UgMTYpCQlUWUNPIFNVQk1BUklORSBTWVNURU1TLCBMVEQuCisJCQkJMjUwIElORFVTVFJJQUwgV0FZIFdFU1QKKwkJCQlFQVRPTlRPV04gTkogMDc3MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUExICAgKGhleCkJCVdFQkdBVEUgSW5jLgorMDAzMEExICAgICAoYmFzZSAxNikJCVdFQkdBVEUgSW5jLgorCQkJCTRGLCBQaWthIEJsZGcuLCA4OTQtMjAsIEhveWtlIDItZG9uZworCQkJCURvbmdhbi1LdSwKKwkJCQlBbnlhbmctU2kgS3l1bmdnaS1EbyAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMzAtQTIgICAoaGV4KQkJTGlnaHRuZXIgRW5naW5lZXJpbmcKKzAwMzBBMiAgICAgKGJhc2UgMTYpCQlMaWdodG5lciBFbmdpbmVlcmluZworCQkJCTg1NTEgTGEgSm9sbGEgU2hvcmVzIERyCisJCQkJTGEgSm9sbGEgQ0EgOTIwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUEzICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMzBBMyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFIC1TSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1BNCAgIChoZXgpCQlXb29kd2luZCBDb21tdW5pY2F0aW9ucyBTeXN0ZW0KKzAwMzBBNCAgICAgKGJhc2UgMTYpCQlXb29kd2luZCBDb21tdW5pY2F0aW9ucyBTeXN0ZW0KKwkJCQkyMDMwMCBDZW50dXJ5IEJsdmQuLCBTdWl0ZSAyMDBCCisJCQkJR2VybWFudG93biBNRCAyMDg3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQTUgICAoaGV4KQkJQUNUSVZFIFBPV0VSCiswMDMwQTUgICAgIChiYXNlIDE2KQkJQUNUSVZFIFBPV0VSCisJCQkJMTE1MjUgU1RPTkVIT0xMT1cgLSBTVEUuIzI1NQorCQkJCUFVU1RJTiBUWCA3ODc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQTYgICAoaGV4KQkJVklBTkVUIFRFQ0hOT0xPR0lFUywgTFRELgorMDAzMEE2ICAgICAoYmFzZSAxNikJCVZJQU5FVCBURUNITk9MT0dJRVMsIExURC4KKwkJCQk4IEhBQ0hBUkFTSCBTVFJFRVQKKwkJCQlSQU1BVCBIQVNIQVJPTiA0NzI2MgorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC0zMC1BNyAgIChoZXgpCQlTQ0hXRUlUWkVSIEVOR0lORUVSSU5HCiswMDMwQTcgICAgIChiYXNlIDE2KQkJU0NIV0VJVFpFUiBFTkdJTkVFUklORworCQkJCUxBQk9SQVRPUklFUywgSU5DLgorCQkJCTIzNTAgTkUgSE9QS0lOUyBDT1VSVAorCQkJCVBVTExNQU4gV0EgOTkxNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUE4ICAgKGhleCkJCU9MJ0UgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwMzBBOCAgICAgKGJhc2UgMTYpCQlPTCdFIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTk2MiBaQU5LRVIgUk9BRAorCQkJCVNBTiBKT1NFIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1BOSAgIChoZXgpCQlOZXRpdmVyc2UsIEluYy4KKzAwMzBBOSAgICAgKGJhc2UgMTYpCQlOZXRpdmVyc2UsIEluYy4KKwkJCQkxMDAgQ2VudHVyeSBDZW50ZXIgQ291cnQKKwkJCQlTdWl0ZSAjNjAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUFBICAgKGhleCkJCUFYVVMgTUlDUk9TWVNURU1TLCBJTkMuCiswMDMwQUEgICAgIChiYXNlIDE2KQkJQVhVUyBNSUNST1NZU1RFTVMsIElOQy4KKwkJCQkyRi00LCBOTy4xOC9OLiA2MDksIFNFQy4gNQorCQkJCUNIVU4tSFNJTiBST0FELCBTQU4gQ0hVTkcgVEFJUEVJIENPVU5UWQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC1BQiAgIChoZXgpCQlERUxUQSBORVRXT1JLUywgSU5DLgorMDAzMEFCICAgICAoYmFzZSAxNikJCURFTFRBIE5FVFdPUktTLCBJTkMuCisJCQkJOCwgS09OIEpBTiBXRVNUIFJPQUQKKwkJCQlMSVVUVSBJTkRVU1RSSUFMIFpPTkUgS0VFTFVORworCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC1BQyAgIChoZXgpCQlTeXN0ZW1lIExhdWVyIEdtYkggJiBDby4sIEx0ZC4KKzAwMzBBQyAgICAgKGJhc2UgMTYpCQlTeXN0ZW1lIExhdWVyIEdtYkggJiBDby4sIEx0ZC4KKwkJCQlLZWx0ZXJzdHJhc3NlIDU5CisJCQkJNzI2NjkgVW50ZXJlbnNpbmdlbiAgCisJCQkJR0VSTUFOWQorCiswMC0zMC1BRCAgIChoZXgpCQlTSEFOR0hBSSBDT01NVU5JQ0FUSU9OCiswMDMwQUQgICAgIChiYXNlIDE2KQkJU0hBTkdIQUkgQ09NTVVOSUNBVElPTgorCQkJCVRFQ0hOT0xPR0lFUyBDRU5URVIKKwkJCQkxNSBHVUktUUlORyBST0FEIFNIQU5HSEFJIDIwMDIzMworCQkJCVAuUi4gQ0hJTkEKKwkJCQlDSElOQQorCiswMC0zMC1BRSAgIChoZXgpCQlUaW1lcyBOIFN5c3RlbSwgSW5jLgorMDAzMEFFICAgICAoYmFzZSAxNikJCVRpbWVzIE4gU3lzdGVtLCBJbmMuCisJCQkJMTgyNiBLcmFtZXIgTGFuZSAtIFN0ZS4KKwkJCQlBdXN0aW4gVFggNzg3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUFGICAgKGhleCkJCUhvbmV5d2VsbCBHbWJICiswMDMwQUYgICAgIChiYXNlIDE2KQkJSG9uZXl3ZWxsIEdtYkgKKwkJCQlCb2VibGluZ2VyIFN0ci4gMTcKKwkJCQlQLk8uIEJveCAxMTY0CisJCQkJRC03MTA5OCBTY2hvZW5haWNoICAKKwkJCQlHRVJNQU5ZCisKKzAwLTMwLUIwICAgKGhleCkJCUNvbnZlcmdlbmV0IFRlY2hub2xvZ2llcworMDAzMEIwICAgICAoYmFzZSAxNikJCUNvbnZlcmdlbmV0IFRlY2hub2xvZ2llcworCQkJCTIyMjIgVHJhZGUgWm9uZSBCb3VsZXZhcmQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQjEgICAoaGV4KQkJVHJ1bmtOZXQKKzAwMzBCMSAgICAgKGJhc2UgMTYpCQlUcnVua05ldAorCQkJCUF1YmVyZ2VudmlsbGVyIEFsbGVlIDUxCisJCQkJRGllYnVyZyAgRC02NDgwNworCQkJCUdFUk1BTlkKKworMDAtMzAtQjIgICAoaGV4KQkJTC0zIFNvbm9tYSBFTworMDAzMEIyICAgICAoYmFzZSAxNikJCUwtMyBTb25vbWEgRU8KKwkJCQk0MjggQXZpYXRpb24gQmx2ZAorCQkJCVNhbnRhIFJvc2EgQ0EgOTU0MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUIzICAgKGhleCkJCVNhbiBWYWxsZXkgU3lzdGVtcywgSW5jLgorMDAzMEIzICAgICAoYmFzZSAxNikJCVNhbiBWYWxsZXkgU3lzdGVtcywgSW5jLgorCQkJCTIxMDUgUy4gQmFzY29tIEF2ZS4gLSBTdGUuICMzOTAKKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQjQgICAoaGV4KQkJSU5URVJTSUwgQ09SUC4KKzAwMzBCNCAgICAgKGJhc2UgMTYpCQlJTlRFUlNJTCBDT1JQLgorCQkJCVAuTy4gQk9YIDg4MworCQkJCTI0MDEgUEFMTSBCQVkgUk9BRAorCQkJCU1FTEJPVVJORSBGTCAzMjkwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQjUgICAoaGV4KQkJVGFkaXJhbiBNaWNyb3dhdmUgTmV0d29ya3MKKzAwMzBCNSAgICAgKGJhc2UgMTYpCQlUYWRpcmFuIE1pY3Jvd2F2ZSBOZXR3b3JrcworCQkJCTQwMDAgR3JlZW5icmlhciBEcml2ZQorCQkJCVN0YWZmb3JkIFRYIDc3NDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1CNiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDMwQjYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRSAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUI3ICAgKGhleCkJCVRlbGV0cm9sIFN5c3RlbXMsIEluYy4KKzAwMzBCNyAgICAgKGJhc2UgMTYpCQlUZWxldHJvbCBTeXN0ZW1zLCBJbmMuCisJCQkJVGVjaG5vbG9neSBDZW50ZXIKKwkJCQkyODYgQ29tbWVyY2lhbCBTdHJlZXQKKwkJCQlNYW5jaGVzdGVyIE5IIDAzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1COCAgIChoZXgpCQlSaXZlckRlbHRhIE5ldHdvcmtzCiswMDMwQjggICAgIChiYXNlIDE2KQkJUml2ZXJEZWx0YSBOZXR3b3JrcworCQkJCVRocmVlIEhpZ2h3b29kIERyaXZlIEVhc3QKKwkJCQlUZXdrc2J1cnkgTUEgMDE4NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUI5ICAgKGhleCkJCUVDVEVMCiswMDMwQjkgICAgIChiYXNlIDE2KQkJRUNURUwKKwkJCQkyMjI0MCBDT01TQVQgRFJJVkUKKwkJCQlDTEFSS1NCVVJHIE1EIDIwODcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1CQSAgIChoZXgpCQlBQyZUIFNZU1RFTSBDTy4sIExURC4KKzAwMzBCQSAgICAgKGJhc2UgMTYpCQlBQyZUIFNZU1RFTSBDTy4sIExURC4KKwkJCQlST09NIDcwMiwgS0VVTS1XSEEgUExBWkEKKwkJCQkxMTQyLTUsIFNBTkJPTi1ET05HIEtPT05QTy1TSEksIEtZT05HS0ktCisJCQkJNDM1LTA0MCBTT1VUSCBLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC1CQiAgIChoZXgpCQlDYWNoZUZsb3csIEluYy4KKzAwMzBCQiAgICAgKGJhc2UgMTYpCQlDYWNoZUZsb3csIEluYy4KKwkJCQk2NTAgQWxtYW5vciBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQkMgICAoaGV4KQkJT3B0cm9uaWMgQUcKKzAwMzBCQyAgICAgKGJhc2UgMTYpCQlPcHRyb25pYyBBRworCQkJCXVudGVyZWdnZXJzdHJhc3NlIDUzCisJCQkJOTQwMyBHb2xkYWNoICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC0zMC1CRCAgIChoZXgpCQlCRUxLSU4gQ09NUE9ORU5UUworMDAzMEJEICAgICAoYmFzZSAxNikJCUJFTEtJTiBDT01QT05FTlRTCisJCQkJNTAxIFdFU1QgV0FMTlVUIFNUUkVFVAorCQkJCUNPTVBUT04gQ0EgOTAyMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUJFICAgKGhleCkJCUNpdHktTmV0IFRlY2hub2xvZ3ksIEluYy4KKzAwMzBCRSAgICAgKGJhc2UgMTYpCQlDaXR5LU5ldCBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTM1IEUuIENoZXNudXQgQXZlLiwgU3RlLgorCQkJCU1vbnJvdmlhIENBIDkxMDE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1CRiAgIChoZXgpCQlNVUxUSURBVEEgR01CSAorMDAzMEJGICAgICAoYmFzZSAxNikJCU1VTFRJREFUQSBHTUJICisJCQkJQUxTRkVMREVSIFNUUi4gMworCQkJCUQtNjQyODkgREFSTVNUQURUCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMzAtQzAgICAoaGV4KQkJTGFyYSBUZWNobm9sb2d5LCBJbmMuCiswMDMwQzAgICAgIChiYXNlIDE2KQkJTGFyYSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMjM0NSBOb3J0aCBGaXJzdCBTdHJlZXQKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQzEgICAoaGV4KQkJSEVXTEVUVC1QQUNLQVJECiswMDMwQzEgICAgIChiYXNlIDE2KQkJSEVXTEVUVC1QQUNLQVJECisJCQkJMTEwMDAgV09MRkUgUk9BRAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQzIgICAoaGV4KQkJQ09NT05FCiswMDMwQzIgICAgIChiYXNlIDE2KQkJQ09NT05FCisJCQkJUGFyYyBEZSBNYXJ0aWNvdAorCQkJCTMzNjEwIENlc3RhcyAgCisJCQkJRlJBTkNFCisKKzAwLTMwLUMzICAgKGhleCkJCUZMVUVDS0lHRVIgRUxFS1RST05JSyBBRworMDAzMEMzICAgICAoYmFzZSAxNikJCUZMVUVDS0lHRVIgRUxFS1RST05JSyBBRworCQkJCUtJUkNIQkFSR1NUUkFTU0UgMjAxCisJCQkJQ0gtMzQwMCBCVVJHRE9SRgorCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDAtMzAtQzQgICAoaGV4KQkJQ2Fub24gSW1hZ2luZyBTeXN0ZW1zIEluYy4KKzAwMzBDNCAgICAgKGJhc2UgMTYpCQlDYW5vbiBJbWFnaW5nIFN5c3RlbXMgSW5jLgorCQkJCTEtMjQgWW9uZXlhbWEsIENodW8ta3UKKwkJCQlOaWlnYXRhLXNoaSBOaWlnYXRhIDk1MC0wOTE2CisJCQkJSkFQQU4KKworMDAtMzAtQzUgICAoaGV4KQkJQ0FERU5DRSBERVNJR04gU1lTVEVNUworMDAzMEM1ICAgICAoYmFzZSAxNikJCUNBREVOQ0UgREVTSUdOIFNZU1RFTVMKKwkJCQlDQU5BREEsIExURC4KKwkJCQkyNDAtMTEzMCBNT1JSSVNPTiBEUklWRSBPVFRBV0EsIE9OVEFSSU8KKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtMzAtQzYgICAoaGV4KQkJQ09OVFJPTCBTT0xVVElPTlMsIElOQy4KKzAwMzBDNiAgICAgKGJhc2UgMTYpCQlDT05UUk9MIFNPTFVUSU9OUywgSU5DLgorCQkJCTIwMSA4NVRIIEFWRU5VRSBOVworCQkJCU1JTk5FQVBPTElTIE1OIDU1NDMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1DNyAgIChoZXgpCQlNYWNyb21hdGUgQ29ycC4KKzAwMzBDNyAgICAgKGJhc2UgMTYpCQlNYWNyb21hdGUgQ29ycC4KKwkJCQk4RixVbml2ZXJzYWwgQ2VudGVyLE51bWJlciAxNzkKKwkJCQlTZWMuMSxUYS1UdW5nIFJvYWQsIEhzaS1DaGloCisJCQkJVGFpcGVpIEhzaWVuIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtQzggICAoaGV4KQkJR0FEIExJTkUsIExURC4KKzAwMzBDOCAgICAgKGJhc2UgMTYpCQlHQUQgTElORSwgTFRELgorCQkJCUJFSVQgUk9LQVIgSEFSIEhPVFpWSU0KKwkJCQlKRVJVU0FMRU0KKwkJCQlJU1JBRUwKKworMDAtMzAtQzkgICAoaGV4KQkJTHV4TiwgTgorMDAzMEM5ICAgICAoYmFzZSAxNikJCUx1eE4sIE4KKwkJCQk1NzAgTWF1ZGUgQ291cnQKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUNBICAgKGhleCkJCURpc2NvdmVyeSBDb20KKzAwMzBDQSAgICAgKGJhc2UgMTYpCQlEaXNjb3ZlcnkgQ29tCisJCQkJNDkzNSBDZW50dXJ5IFN0cmVldAorCQkJCUh1bnRzdmlsbGUgQUwgMzU4MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUNCICAgKGhleCkJCU9NTkkgRkxPVyBDT01QVVRFUlMsIElOQy4KKzAwMzBDQiAgICAgKGJhc2UgMTYpCQlPTU5JIEZMT1cgQ09NUFVURVJTLCBJTkMuCisJCQkJMTA3MDEgQ09SUE9SQVRFIERSSVZFLVNURS4jMzAwCisJCQkJU1RBRkZPUkQgVFggNzc0NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUNDICAgKGhleCkJCVRlbm9yIE5ldHdvcmtzLCBJbmMuCiswMDMwQ0MgICAgIChiYXNlIDE2KQkJVGVub3IgTmV0d29ya3MsIEluYy4KKwkJCQk1MCBOYWdvZyBQYXJrCisJCQkJQWN0b24gTUEgMDE3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUNEICAgKGhleCkJCUNPTkVYQU5UIFNZU1RFTVMsIElOQy4KKzAwMzBDRCAgICAgKGJhc2UgMTYpCQlDT05FWEFOVCBTWVNURU1TLCBJTkMuCisJCQkJNDMxMSBKQU1CT1JFRSBST0FECisJCQkJTkVXUE9SVCBCRUFDSCBDQSA5MjY2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtQ0UgICAoaGV4KQkJWmFmZmlyZQorMDAzMENFICAgICAoYmFzZSAxNikJCVphZmZpcmUKKwkJCQkyNjMwIE9yY2hhcmQgUGFya3dheQorCQkJCVNhbiBKb3NlIENBIDk1MTM0LTIwMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUNGICAgKGhleCkJCVRXTyBURUNITk9MT0dJRVMsIElOQy4KKzAwMzBDRiAgICAgKGJhc2UgMTYpCQlUV08gVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNDE5IFNBUkdPTiBXQVkKKwkJCQlIT1JTSEFNIFBBIDE5MDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1EMCAgIChoZXgpCQlUZWxsYWJzCiswMDMwRDAgICAgIChiYXNlIDE2KQkJVGVsbGFicworCQkJCTE3NTAgRm91bmRlcidzIFBhcmt3YXkKKwkJCQlTdWl0ZSAxMDAKKwkJCQlBbHBoYXJldHRhIEdBIDMwMDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1EMSAgIChoZXgpCQlJTk9WQSBDT1JQT1JBVElPTgorMDAzMEQxICAgICAoYmFzZSAxNikJCUlOT1ZBIENPUlBPUkFUSU9OCisJCQkJMTEwIEFWT04gU1RSRUVUCisJCQkJQ0hBUkxPVFRFU1ZJTEUgVkEgMjI5MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUQyICAgKGhleCkJCVdJTiBURUNITk9MT0dJRVMsIENPLiwgTFRELgorMDAzMEQyICAgICAoYmFzZSAxNikJCVdJTiBURUNITk9MT0dJRVMsIENPLiwgTFRELgorCQkJCTRGLTYsIE5vLiA4MSwgU2VjLiAxCisJCQkJSHNpbiBUYWkgV3UgUm9hZCwgSHNpLUNoaQorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC1EMyAgIChoZXgpCQlBZ2lsZW50IFRlY2hub2xvZ2llcworMDAzMEQzICAgICAoYmFzZSAxNikJCUFnaWxlbnQgVGVjaG5vbG9naWVzCisJCQkJMTUwMSBQYWdlIE1pbGwgUm9hZAorCQkJCVBhbG8gQWx0byBDQSA5NDMwNC0xMTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1ENCAgIChoZXgpCQlBQUUgU3lzdGVtcywgSW5jCiswMDMwRDQgICAgIChiYXNlIDE2KQkJQUFFIFN5c3RlbXMsIEluYworCQkJCTY0MiBOb3J0aCBQYXN0b3JpYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUQ1ICAgKGhleCkJCURSZXNlYXJjaCBHbWJICiswMDMwRDUgICAgIChiYXNlIDE2KQkJRFJlc2VhcmNoIEdtYkgKKwkJCQlPdHRvLVNjaG1pcmdhbC1TdHIuMworCQkJCTEwMzE5IEJlcmxpbiAgCisJCQkJR0VSTUFOWQorCiswMC0zMC1ENiAgIChoZXgpCQlNU0MgVkVSVFJJRUJTIEdNQkgKKzAwMzBENiAgICAgKGJhc2UgMTYpCQlNU0MgVkVSVFJJRUJTIEdNQkgKKwkJCQlJTkRVU1RSSUVTVFIuIDE2CisJCQkJRC03NjI5NyBTVFVURU5TRUUKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC0zMC1ENyAgIChoZXgpCQlJbm5vdmF0aXZlIFN5c3RlbXMsIEwuTC5DLgorMDAzMEQ3ICAgICAoYmFzZSAxNikJCUlubm92YXRpdmUgU3lzdGVtcywgTC5MLkMuCisJCQkJMTAwMCBJbm5vdmF0aXZlIERyaXZlCisJCQkJTWl0Y2hlbGwgU0QgNTczMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUQ4ICAgKGhleCkJCVNJVEVLCiswMDMwRDggICAgIChiYXNlIDE2KQkJU0lURUsKKwkJCQlWSUEgTU9OVEUgRklPUklOTyA5CisJCQkJMzcwNTcgLSBTLiBHSU9WQU5OSSBMVVAuIFZFUk9OQQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtMzAtRDkgICAoaGV4KQkJREFUQUNPUkUgU09GVFdBUkUgQ09SUC4KKzAwMzBEOSAgICAgKGJhc2UgMTYpCQlEQVRBQ09SRSBTT0ZUV0FSRSBDT1JQLgorCQkJCUNPUlBPUkFURSBQQVJLCisJCQkJNjI2MSBOVyA2VEggV0FZICMxMTAKKwkJCQlGT1JUIExBVURFUkRBTEUgRkwgMzMzMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLURBICAgKGhleCkJCUNPTVRSRU5EIENPLgorMDAzMERBICAgICAoYmFzZSAxNikJCUNPTVRSRU5EIENPLgorCQkJCTNGLTEgMTAgTEFORSA2MDkgQ0hVTkcKKwkJCQlIU0lOIFJPQUQsIFNFQyA1LCBTQU4gQ0hVTkcgQ0lUWSwgVEFJUEVJCisJCQkJVEFJV0FOIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtREIgICAoaGV4KQkJTWluZHJlYWR5IFNvbHV0aW9ucywgSW5jLgorMDAzMERCICAgICAoYmFzZSAxNikJCU1pbmRyZWFkeSBTb2x1dGlvbnMsIEluYy4KKwkJCQkyODAwIE1hcmllLUN1cmllIEF2ZW51ZQorCQkJCVNhaW50LUxhdXJlbnQKKwkJCQlRdWViZWMgIEg0UyAyQzIKKwkJCQlDQU5BREEKKworMDAtMzAtREMgICAoaGV4KQkJUklHSFRFQ0ggQ09SUE9SQVRJT04KKzAwMzBEQyAgICAgKGJhc2UgMTYpCQlSSUdIVEVDSCBDT1JQT1JBVElPTgorCQkJCTRGLCBOTy4gMzUxLCBDSFVORy1TSFVOIFJELgorCQkJCVNFQy4gMiwgQ0hVTkctSE8gQ0lUWSBUQUlQRUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtREQgICAoaGV4KQkJSU5ESUdJVEEgQ09SUE9SQVRJT04KKzAwMzBERCAgICAgKGJhc2UgMTYpCQlJTkRJR0lUQSBDT1JQT1JBVElPTgorCQkJCTMwIENvcnBvcmF0ZSBQYXJrIERyaXZlCisJCQkJU3VpdGUgMzEwCisJCQkJSXJ2aW5lIENBIDkyNjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1ERSAgIChoZXgpCQlXQUdPIEtvbnRha3R0ZWNobmlrIEdtYkgKKzAwMzBERSAgICAgKGJhc2UgMTYpCQlXQUdPIEtvbnRha3R0ZWNobmlrIEdtYkgKKwkJCQlIYW5zYXN0cmFzc2UgMjcKKwkJCQkzMjQyMyBNaW5kZW4gIAorCQkJCUdFUk1BTlkKKworMDAtMzAtREYgICAoaGV4KQkJS0IvVEVMIFRFTEVDT01VTklDQUNJT05FUworMDAzMERGICAgICAoYmFzZSAxNikJCUtCL1RFTCBURUxFQ09NVU5JQ0FDSU9ORVMKKwkJCQlTLkEuIERFIEMuVi4KKwkJCQlUT1JSRSBURUxNRVggNCAgUElTTywgUExBWkEgQ1VJQ1VJTENPCisJCQkJTWV4aWNvIENpdHkgMTQwNjAgIAorCQkJCU1FWElDTworCiswMC0zMC1FMCAgIChoZXgpCQlPWEZPUkQgU0VNSUNPTkRVQ1RPUiBMVEQuCiswMDMwRTAgICAgIChiYXNlIDE2KQkJT1hGT1JEIFNFTUlDT05EVUNUT1IgTFRELgorCQkJCTI1IE1JTFRPTiBQQVJLCisJCQkJQWJpbmdkb24gT3hvbiBPWDE0IDRTSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTMwLUUxICAgKGhleCkJCU5ldHdvcmsgRXF1aXBtZW50IFRlY2hub2xvZ2llcywgSW5jLgorMDAzMEUxICAgICAoYmFzZSAxNikJCU5ldHdvcmsgRXF1aXBtZW50IFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTY5MDAgUGFzZW8gUGFkcmUgUGFya3dheQorCQkJCUZyZW1vbnQgQ0EgOTQ1NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUUyICAgKGhleCkJCUdBUk5FVCBTWVNURU1TIENPLiwgTFRELgorMDAzMEUyICAgICAoYmFzZSAxNikJCUdBUk5FVCBTWVNURU1TIENPLiwgTFRELgorCQkJCVN1bmd3b24gQmxkZy4gNTQ1LTcKKwkJCQlEb2dvay1Eb25nLCBLYW5nbmFtLUd1CisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zMC1FMyAgIChoZXgpCQlTRURPTkEgTkVUV09SS1MgQ09SUC4KKzAwMzBFMyAgICAgKGJhc2UgMTYpCQlTRURPTkEgTkVUV09SS1MgQ09SUC4KKwkJCQkxMEEgSEVBUlNUIFdBWQorCQkJCUtBTkFUQSwgIE9OVEFSSU8KKwkJCQlDQU5BREEgSzJMIDJQNAorCQkJCUNBTkFEQQorCiswMC0zMC1FNCAgIChoZXgpCQlDSElZT0RBIFNZU1RFTSBSSUtFTgorMDAzMEU0ICAgICAoYmFzZSAxNikJCUNISVlPREEgU1lTVEVNIFJJS0VOCisJCQkJMi03LCBLQU5EQS1OSVNISUtJLUNITworCQkJCUNISVlPREEtS1UgVE9LWU8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTMwLUU1ICAgKGhleCkJCUFtcGVyIERhdG9zIFMuQS4KKzAwMzBFNSAgICAgKGJhc2UgMTYpCQlBbXBlciBEYXRvcyBTLkEuCisJCQkJQy9NYXJjb25pIG4qMyAgKFBUTSkKKwkJCQlUcmVzIENhbnRvcworCQkJCTI4NzYwIE1hZHJpZCAgCisJCQkJU1BBSU4KKworMDAtMzAtRTYgICAoaGV4KQkJRHJhZWdlciBNZWRpY2FsIFN5c3RlbXMsIEluYy4KKzAwMzBFNiAgICAgKGJhc2UgMTYpCQlEcmFlZ2VyIE1lZGljYWwgU3lzdGVtcywgSW5jLgorCQkJCTYgVGVjaCBEcml2ZQorCQkJCUFuZG92ZXIgTUEgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUU3ICAgKGhleCkJCUNORiBNT0JJTEUgU09MVVRJT05TLCBJTkMuCiswMDMwRTcgICAgIChiYXNlIDE2KQkJQ05GIE1PQklMRSBTT0xVVElPTlMsIElOQy4KKwkJCQk3NzIyIEUuIEdSQVkgUk9BRAorCQkJCVNDT1RUU0RBTEUgQVogODUyNjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUU4ICAgKGhleCkJCUVOU0lNIENPUlAuCiswMDMwRTggICAgIChiYXNlIDE2KQkJRU5TSU0gQ09SUC4KKwkJCQkxMjE1IFRlcnJhIEJlbGxhIEF2ZS4KKwkJCQlNb3VudGFpbnZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUU5ICAgKGhleCkJCUdNQSBDT01NVU5JQ0FUSU9OIE1BTlVGQUNUJ0cKKzAwMzBFOSAgICAgKGJhc2UgMTYpCQlHTUEgQ09NTVVOSUNBVElPTiBNQU5VRkFDVCdHCisJCQkJTUFSS0VUSU5HLCAoMTk5MSkgTFRELgorCQkJCTEwMiBKQUJVVElOU0tJIFNUUkVFVCBLSVJZQVQgQVJJRSwgUEVUQUMKKwkJCQlJU1JBRUwgSVNSQUVMIDQ5MTMwCisJCQkJSVNSQUVMCisKKzAwLTMwLUVBICAgKGhleCkJCVRlcmFGb3JjZSBUZWNobm9sb2d5IENvcnBvcmF0aW9uCiswMDMwRUEgICAgIChiYXNlIDE2KQkJVGVyYUZvcmNlIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQkxMTAwIEVYRUNVVElWRSBEUklWRQorCQkJCVJJQ0hBUkRTT04gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUVCICAgKGhleCkJCVRVUkJPTkVUIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDMwRUIgICAgIChiYXNlIDE2KQkJVFVSQk9ORVQgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxOUYtMSwgTk8uIDE3MSwgU1VORy1URUggUk9BRAorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC1FQyAgIChoZXgpCQlCT1JHQVJEVAorMDAzMEVDICAgICAoYmFzZSAxNikJCUJPUkdBUkRUCisJCQkJRElFU0VMU1RSLiAxNQorCQkJCUQ3MTY2NSBWQUlISU5HRU4vRU5aCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtMzAtRUQgICAoaGV4KQkJRXhwZXJ0IE1hZ25ldGljcyBDb3JwLgorMDAzMEVEICAgICAoYmFzZSAxNikJCUV4cGVydCBNYWduZXRpY3MgQ29ycC4KKwkJCQkxMi9GLiwgVW5pdCBELCBNVEcgQmxkZy4sIDEtMywgTmFrYXNlCisJCQkJTWloYW1hLWt1LCBDaGliYS1jaXR5LCAyNjEtODUwMSAgCisJCQkJSkFQQU4KKworMDAtMzAtRUUgICAoaGV4KQkJRFNHIFRlY2hub2xvZ3ksIEluYy4KKzAwMzBFRSAgICAgKGJhc2UgMTYpCQlEU0cgVGVjaG5vbG9neSwgSW5jLgorCQkJCTZGLTQgTm8uIDI3MCwgQ2h3aWcgSHNpYW8KKwkJCQlFYXN0IFJvYWQsIFNlYy4gNAorCQkJCSBUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtMzAtRUYgICAoaGV4KQkJTkVPTiBURUNITk9MT0dZLCBJTkMuCiswMDMwRUYgICAgIChiYXNlIDE2KQkJTkVPTiBURUNITk9MT0dZLCBJTkMuCisJCQkJODUgV0VTVCBNT05UQUdVRSBFWFBSRVNTV0FZCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUYwICAgKGhleCkJCVVuaWZvcm0gSW5kdXN0cmlhbCBDb3JwLgorMDAzMEYwICAgICAoYmFzZSAxNikJCVVuaWZvcm0gSW5kdXN0cmlhbCBDb3JwLgorCQkJCTE4RiwgMTcxLCBTaHVuZyBUZWggUm9hZAorCQkJCVRhaXBlaSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC0zMC1GMSAgIChoZXgpCQlBY2N0b24gVGVjaG5vbG9neSBDb3JwLgorMDAzMEYxICAgICAoYmFzZSAxNikJCUFjY3RvbiBUZWNobm9sb2d5IENvcnAuCisJCQkJTm8uIDEsIENyZWF0aW9uIFJkLiBJVgorCQkJCVMuRy5aLlAKKwkJCQlIc2luY2h1ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMwLUYyICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwMzBGMiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA4NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRjMgICAoaGV4KQkJQXQgV29yayBDb21wdXRlcnMKKzAwMzBGMyAgICAgKGJhc2UgMTYpCQlBdCBXb3JrIENvbXB1dGVycworCQkJCVAuTy4gQm94IDk0NworCQkJCUNvcnZhbGxpcyBPUiA5NzMzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRjQgICAoaGV4KQkJU1RBUkRPVCBURUNITk9MT0dJRVMKKzAwMzBGNCAgICAgKGJhc2UgMTYpCQlTVEFSRE9UIFRFQ0hOT0xPR0lFUworCQkJCTY4MjAtSCBPUkFOR0UgVEhPUlBFIEFWRS4KKwkJCQlCVUVOQSBQQVJLIENBIDkwNjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1GNSAgIChoZXgpCQlXaWxkIExhYi4gTHRkLgorMDAzMEY1ICAgICAoYmFzZSAxNikJCVdpbGQgTGFiLiBMdGQuCisJCQkJMS0zMy0xNy02MDQgSGFyYXlhbWEKKwkJCQlVcmF3YSBDaXR5IFNhaXRhbWEgcHJpZi4gMzM2LTA5MzEgCisJCQkJSkFQQU4KKworMDAtMzAtRjYgICAoaGV4KQkJU0VDVVJFTE9HSVggQ09SUE9SQVRJT04KKzAwMzBGNiAgICAgKGJhc2UgMTYpCQlTRUNVUkVMT0dJWCBDT1JQT1JBVElPTgorCQkJCTEzNzUwIFNBTiBQRURSTworCQkJCVNBTiBBTlRPTklPIFRYIDc4MjMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1GNyAgIChoZXgpCQlSQU1JWCBJTkMuCiswMDMwRjcgICAgIChiYXNlIDE2KQkJUkFNSVggSU5DLgorCQkJCTE2NzIgRE9OTE9OIFNUUkVFVAorCQkJCVZFTlRVUkEgQ0EgOTMwMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTMwLUY4ICAgKGhleCkJCUR5bmFwcm8gU3lzdGVtcywgSW5jLgorMDAzMEY4ICAgICAoYmFzZSAxNikJCUR5bmFwcm8gU3lzdGVtcywgSW5jLgorCQkJCTgwMCBDYXJsZXRvbiBDb3VydAorCQkJCUFubmFjaXMgSXNsYW5kCisJCQkJTmV3IFdlc3RtaW5zdGVyIEJyaXRpc2ggQ29sdW1iaWEgVjNNIDZMMyAKKwkJCQlDQU5BREEKKworMDAtMzAtRjkgICAoaGV4KQkJU29sbGFlIFN5c3RlbXMgQ28uLCBMdGQuCiswMDMwRjkgICAgIChiYXNlIDE2KQkJU29sbGFlIFN5c3RlbXMgQ28uLCBMdGQuCisJCQkJNjA3IEluY2hlbyBJVCBUb3dlcgorCQkJCTU5Mi01LCBEb2h3YS0xLWRvbmcKKwkJCQlOYW0tZ3UgSW5jaGVvbiAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtMzAtRkEgICAoaGV4KQkJVEVMSUNBLCBJTkMuCiswMDMwRkEgICAgIChiYXNlIDE2KQkJVEVMSUNBLCBJTkMuCisJCQkJNzM0IEZPUkVTVCBTVFJFRVQsIEJMREcuCisJCQkJU1VJVEUgIzEwMAorCQkJCU1BUkxCT1JPIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zMC1GQiAgIChoZXgpCQlBWlMgVGVjaG5vbG9neSBBRworMDAzMEZCICAgICAoYmFzZSAxNikJCUFaUyBUZWNobm9sb2d5IEFHCisJCQkJU3RlaW5iZWlzc3RyYXNzZSAyLTQKKwkJCQk3MjUxMCBTdGV0dGVuIEEuSy5NLiAgCisJCQkJR0VSTUFOWQorCiswMC0zMC1GQyAgIChoZXgpCQlUZXJhd2F2ZSBDb21tdW5pY2F0aW9ucywgSW5jLgorMDAzMEZDICAgICAoYmFzZSAxNikJCVRlcmF3YXZlIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMzA2OTUgSHVudHdvb2QgQXZlbnVlCisJCQkJSGF5d2FyZCBDQSA5NDU0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRkQgICAoaGV4KQkJSU5URUdSQVRFRCBTWVNURU1TIERFU0lHTgorMDAzMEZEICAgICAoYmFzZSAxNikJCUlOVEVHUkFURUQgU1lTVEVNUyBERVNJR04KKwkJCQkzNjUwLUcgQ0VOVFJFIENJUkNMRSBEUklWRQorCQkJCUZPUlQgTUlMTCBTQyAyOTcxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzAtRkUgICAoaGV4KQkJRFNBIEdtYkgKKzAwMzBGRSAgICAgKGJhc2UgMTYpCQlEU0EgR21iSAorCQkJCVBhc2NhbHN0ci4gMjgKKwkJCQk1MjA3NiBBYWNoZW4gIAorCQkJCUdFUk1BTlkKKworMDAtMzAtRkYgICAoaGV4KQkJREFUQUZBQiBTWVNURU1TLCBJTkMuCiswMDMwRkYgICAgIChiYXNlIDE2KQkJREFUQUZBQiBTWVNURU1TLCBJTkMuCisJCQkJUk9PTSAjMTkxMCwgMTlGLCBOTy4gMzMzCisJCQkJS0VFTFVORyBST0FEIFNFQy4gMSwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTMzLTZDICAgKGhleCkJCVN5bmFwU2Vuc2UgQ29ycG9yYXRpb24KKzAwMzM2QyAgICAgKGJhc2UgMTYpCQlTeW5hcFNlbnNlIENvcnBvcmF0aW9uCisJCQkJMjM2NSBJcm9uIFBvaW50IFJvYWQsIFN1aXRlIDEwMAorCQkJCUZvbHNvbSBDQSA5NTYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzQtRjEgICAoaGV4KQkJUmFkaWNvbSBSZXNlYXJjaCwgSW5jLgorMDAzNEYxICAgICAoYmFzZSAxNikJCVJhZGljb20gUmVzZWFyY2gsIEluYy4KKwkJCQkyMTQ4IEJlcmluZyBEcml2ZQorCQkJCVNhbiBKb3NlIENhIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zNS0zMiAgIChoZXgpCQlFbGVjdHJvLU1ldHJpY3MgQ29ycG9yYXRpb24KKzAwMzUzMiAgICAgKGJhc2UgMTYpCQlFbGVjdHJvLU1ldHJpY3MgQ29ycG9yYXRpb24KKwkJCQkyMzEgRW50ZXJwcmlzZSBSb2FkCisJCQkJSm9obnN0b3duIE5ldyBZb3JrIDEyMDk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC0zNi1GOCAgIChoZXgpCQlDb250aSBUZW1pYyBtaWNyb2VsZWN0cm9uaWMgR21iSAorMDAzNkY4ICAgICAoYmFzZSAxNikJCUNvbnRpIFRlbWljIG1pY3JvZWxlY3Ryb25pYyBHbWJICisJCQkJRG9ybmllcnN0cmHvv71lIDEKKwkJCQlNYXJrZG9yZiAgODg2NzcKKwkJCQlHRVJNQU5ZCisKKzAwLTM2LUZFICAgKGhleCkJCVN1cGVyVmlzaW9uCiswMDM2RkUgICAgIChiYXNlIDE2KQkJU3VwZXJWaXNpb24KKwkJCQlwbyBib3ggMzQ3MgorCQkJCXBhbG9zIHZlcmRlcyBDQSA5MDI3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtMzctNkQgICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCiswMDM3NkQgICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJMS0xMC0xLEhpZ2FzaGlrb3RhcmkKKwkJCQlOYWdhb2tha3lvLXNoaSBLeW90byA2MTctODU1NQorCQkJCUpBUEFOCisKKzAwLTNBLTk4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwM0E5OCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTNBLTk5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwM0E5OSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTNBLTlBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwM0E5QSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTNBLTlCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwM0E5QiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTNBLTlDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzAwM0E5QyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTNBLTlEICAgKGhleCkJCU5FQyBBY2Nlc3NUZWNobmljYSwgTHRkLgorMDAzQTlEICAgICAoYmFzZSAxNikJCU5FQyBBY2Nlc3NUZWNobmljYSwgTHRkLgorCQkJCTgwMCBTaGltb21hdGEKKwkJCQlLYWtlZ2F3YSBTaGl6dW9rYSA0MzYtODUwMQorCQkJCUpBUEFOCisKKzAwLTNBLUFGICAgKGhleCkJCUJsdWVCaXQgTHRkLgorMDAzQUFGICAgICAoYmFzZSAxNikJCUJsdWVCaXQgTHRkLgorCQkJCVVuaXQgQiwgMjEvRi4sIDc4IEh1bmcgVG8gUm9hZCwKKwkJCQlLd3VuIFRvbmcsIAorCQkJCUtvd2xvb24sICAgCisJCQkJSE9ORyBLT05HCisKKzAwLTNDLUM1ICAgKGhleCkJCVdPTldPTyBFbmdpbmVlcmluZyBDby4sIEx0ZAorMDAzQ0M1ICAgICAoYmFzZSAxNikJCVdPTldPTyBFbmdpbmVlcmluZyBDby4sIEx0ZAorCQkJCTdGIDIwMSwgVGVjaG5vLVBhcmsgU3NhbmdZb25nIElJSSwgCisJCQkJMzYtMSBTYW1qZW9uZy1kb25nIE9qZW9uZy1ndSwKKwkJCQlCdWNoZW9uIENpdHkgR3llb25nZ2ktRG8gNDIxLTgwOAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC0zRC00MSAgIChoZXgpCQlIYXR0ZWxhbmQgQ29tcHV0ZXIgQVMKKzAwM0Q0MSAgICAgKGJhc2UgMTYpCQlIYXR0ZWxhbmQgQ29tcHV0ZXIgQVMKKwkJCQlBYW1zb3NlbgorCQkJCU5lZHJlIFZhdHMgUm9nYWxhbmQgNTU3OAorCQkJCU5PUldBWQorCiswMC0zRS1FMSAgIChoZXgpCQlBcHBsZSwgSW5jLgorMDAzRUUxICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBpbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0wMCAgIChoZXgpCQlQQ0kgQ09NUE9ORU5URVMgREEgQU1aT05JQSBMVEQKKzAwNDAwMCAgICAgKGJhc2UgMTYpCQlQQ0kgQ09NUE9ORU5URVMgREEgQU1aT05JQSBMVEQKKwkJCQlSVUEgSk9TRUYgS1JZU1MKKwkJCQkxMjkgLSBTQU8gUEFVTE8gLSBTUAorCQkJCTAxMTQwIEJSQVNJTAorCQkJCUJSQVpJTAorCiswMC00MC0wMSAgIChoZXgpCQlaZXJvIE9uZSBUZWNobm9sb2d5IENvLiBMdGQuCiswMDQwMDEgICAgIChiYXNlIDE2KQkJWmVybyBPbmUgVGVjaG5vbG9neSBDby4gTHRkLgorCQkJCTEwIEZsLiwgTm8uIDgsIExhbmUgMzYwLCBTZWMgMSwgCisJCQkJTmVpaHUgUm9hZAorCQkJCU5laWh1IERpc3QuLCBUYWlwZWkgQ2l0eSAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLTAyICAgKGhleCkJCVBFUkxFIFNZU1RFTVMgTElNSVRFRAorMDA0MDAyICAgICAoYmFzZSAxNikJCVBFUkxFIFNZU1RFTVMgTElNSVRFRAorCQkJCTYwIFJFTkZSRVcgRFJJVkUKKwkJCQlNQVJLSEFNIE9OVEFSSU8KKwkJCQlDQU5BREEgTDNSIDBFMQorCQkJCUNBTkFEQQorCiswMC00MC0wMyAgIChoZXgpCQlFbWVyc29uIFByb2Nlc3MgTWFuYWdlbWVudCBQb3dlciAmIFdhdGVyIFNvbHV0aW9ucywgSW5jLgorMDA0MDAzICAgICAoYmFzZSAxNikJCUVtZXJzb24gUHJvY2VzcyBNYW5hZ2VtZW50IFBvd2VyICYgV2F0ZXIgU29sdXRpb25zLCBJbmMuCisJCQkJMjAwIEJldGEgRHJpdmUKKwkJCQlQSVRUU0JVUkdIIFBBIDE1MjM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0wNCAgIChoZXgpCQlJQ00gQ08uIExURC4KKzAwNDAwNCAgICAgKGJhc2UgMTYpCQlJQ00gQ08uIExURC4KKwkJCQk0LTItOSBOSUhPTkJBU0hJIE5BTklXQS1LVQorCQkJCU9TQUtBLCAoNTU2KQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtMDUgICAoaGV4KQkJQU5JIENPTU1VTklDQVRJT05TIElOQy4KKzAwNDAwNSAgICAgKGJhc2UgMTYpCQlBTkkgQ09NTVVOSUNBVElPTlMgSU5DLgorCQkJCTggQU5aSU8KKwkJCQlJUlZJTkUgQ0EgOTI3MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTA2ICAgKGhleCkJCVNBTVBPIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKzAwNDAwNiAgICAgKGJhc2UgMTYpCQlTQU1QTyBURUNITk9MT0dZIENPUlBPUkFUSU9OCisJCQkJMjYtMiBUSU5HLUhVLAorCQkJCVRBLUtBTkcgVFNVTiBLVUVJLVNIQU4gSFNJQU5HLCBUQU9ZVUFOIEgKKwkJCQkzMzMzNCBUQUlXQU4gMzMzMzQgVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNDAtMDcgICAoaGV4KQkJVEVMTUFUIElORk9STUFUSVFVRQorMDA0MDA3ICAgICAoYmFzZSAxNikJCVRFTE1BVCBJTkZPUk1BVElRVUUKKwkJCQk2IFJVRSBERSBMJ0lORFVTVFJJRQorCQkJCUJQIDEyICA2ODM2MCBTT1VMVFoKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtNDAtMDggICAoaGV4KQkJQSBQTFVTIElORk8gQ09SUE9SQVRJT04KKzAwNDAwOCAgICAgKGJhc2UgMTYpCQlBIFBMVVMgSU5GTyBDT1JQT1JBVElPTgorCQkJCTVGLCBOTy4yLCBMQU5FIDIzNQorCQkJCUJBTyBDSElBTyBST0FEIEhTSU4gVElFTiwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLTA5ICAgKGhleCkJCVRBQ0hJQkFOQSBURUNUUk9OIENPLiwgTFRELgorMDA0MDA5ICAgICAoYmFzZSAxNikJCVRBQ0hJQkFOQSBURUNUUk9OIENPLiwgTFRELgorCQkJCVNZU1RFTUFUSUMgRVFVSVBNRU5UIERJVklTSU9OCisJCQkJMi0yLTUgSElHQVNISVlBTUEsIE1FR1VST0tVIFRPS1lPLCAxNTMKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLTBBICAgKGhleCkJCVBJVk9UQUwgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDQwMEEgICAgIChiYXNlIDE2KQkJUElWT1RBTCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkxMDAgVy4gUklOQ09OIEFWRU5VRS1TVEUgIzIxMQorCQkJCUNBTVBCRUxMIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0wQiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDQwMEIgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTBDICAgKGhleCkJCUdFTkVSQUwgTUlDUk8gU1lTVEVNUywgSU5DLgorMDA0MDBDICAgICAoYmFzZSAxNikJCUdFTkVSQUwgTUlDUk8gU1lTVEVNUywgSU5DLgorCQkJCVAuTy4gQk9YIDM2ODkKKwkJCQlSQU5DSE8gQ1VDQU1PTkdBIENBIDkxNzI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0wRCAgIChoZXgpCQlMQU5ORVQgREFUQSBDT01NVU5JQ0FUSU9OUyxMVEQKKzAwNDAwRCAgICAgKGJhc2UgMTYpCQlMQU5ORVQgREFUQSBDT01NVU5JQ0FUSU9OUyxMVEQKKwkJCQlBVElESU0gVEVDSE5PTE9HJ0wgUEFSSywgQkcuIzMKKwkJCQlURUwgQVZJViA2MTEzMQorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC00MC0wRSAgIChoZXgpCQlNRU1PVEVDLCBJTkMuCiswMDQwMEUgICAgIChiYXNlIDE2KQkJTUVNT1RFQywgSU5DLgorCQkJCTc3NTUgSGVucmktQm91cmFzc2EKKwkJCQlNT05UUkVBTCwgUVVFQkVDICAgSDRTIDFQNworCQkJCUNBTkFEQQorCiswMC00MC0wRiAgIChoZXgpCQlEQVRBQ09NIFRFQ0hOT0xPR0lFUworMDA0MDBGICAgICAoYmFzZSAxNikJCURBVEFDT00gVEVDSE5PTE9HSUVTCisJCQkJMTEwMDEgMzFTVCBQTEFDRSBXRVNUCisJCQkJRVZFUkVUVCBXQSA5ODIwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMTAgICAoaGV4KQkJU09OSUMgU1lTVEVNUywgSU5DLgorMDA0MDEwICAgICAoYmFzZSAxNikJCVNPTklDIFNZU1RFTVMsIElOQy4KKwkJCQk1NzUgUEFTVE9SSUEgTk9SVEggQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMTEgICAoaGV4KQkJQU5ET1ZFUiBDT05UUk9MUyBDT1JQT1JBVElPTgorMDA0MDExICAgICAoYmFzZSAxNikJCUFORE9WRVIgQ09OVFJPTFMgQ09SUE9SQVRJT04KKwkJCQkzMDAgQlJJQ0tTVE9ORSBTUVVBUkUKKwkJCQlBTkRPVkVSIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0xMiAgIChoZXgpCQlXSU5EQVRBLCBJTkMuCiswMDQwMTIgICAgIChiYXNlIDE2KQkJV0lOREFUQSwgSU5DLgorCQkJCTEwIEJFQVJGT09UIFJPQUQKKwkJCQlOT1JUSEJPUk8gTUEgMDE1MzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTEzICAgKGhleCkJCU5UVCBEQVRBIENPTU0uIFNZU1RFTVMgQ09SUC4KKzAwNDAxMyAgICAgKGJhc2UgMTYpCQlOVFQgREFUQSBDT01NLiBTWVNURU1TIENPUlAuCisJCQkJREVWRUxPUE1FTlQgSEVBRFFVQVJURVJTCisJCQkJVE9ZT1NVIENFTlRFUiBCTERHLiwgMy0zLTMgVE9ZT1NVLCBLT1RPLQorCQkJCVRPS1lPIDEzNSBUT0tZTyAxMzUgSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC0xNCAgIChoZXgpCQlDT01TT0ZUIEdNQkgKKzAwNDAxNCAgICAgKGJhc2UgMTYpCQlDT01TT0ZUIEdNQkgKKwkJCQlXQUNISEFVU1NUUi4gNUEKKwkJCQk3NTAwIEtBUkxTUlVIRSA0MQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLTE1ICAgKGhleCkJCUFTQ09NIElORlJBU1lTIEFHCiswMDQwMTUgICAgIChiYXNlIDE2KQkJQVNDT00gSU5GUkFTWVMgQUcKKwkJCQlEUFQuIEVBU08gMzcyNgorCQkJCUdMVVRaLUJMT1RaSEVJTVNUUi4gMSBDSC00NTAzICBTT0xPVEhVUk4KKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTQwLTE2ICAgKGhleCkJCUFEQyAtIEdsb2JhbCBDb25uZWN0aXZpdHkgU29sdXRpb25zIERpdmlzaW9uCiswMDQwMTYgICAgIChiYXNlIDE2KQkJQURDIC0gR2xvYmFsIENvbm5lY3Rpdml0eSBTb2x1dGlvbnMgRGl2aXNpb24KKwkJCQlQLk8uIEJveCAxMTAxCisJCQkJTWlubmVhcG9saXMgTU4gNTU0NDAtMTEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMTcgICAoaGV4KQkJU2lsZXggVGVjaG5vbG9neSBBbWVyaWNhCiswMDQwMTcgICAgIChiYXNlIDE2KQkJU2lsZXggVGVjaG5vbG9neSBBbWVyaWNhCisJCQkJMTU3IFdlc3QgNzA2NSBTb3V0aAorCQkJCVNhbHQgTGFrZSBDaXR5IFVUIDg0MDQ3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0xOCAgIChoZXgpCQlBRE9CRSBTWVNURU1TLCBJTkMuCiswMDQwMTggICAgIChiYXNlIDE2KQkJQURPQkUgU1lTVEVNUywgSU5DLgorCQkJCTE1ODUgQ0hBUkxFU1RPTiBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMTkgICAoaGV4KQkJQUVPTiBTWVNURU1TLCBJTkMuCiswMDQwMTkgICAgIChiYXNlIDE2KQkJQUVPTiBTWVNURU1TLCBJTkMuCisJCQkJODQwMSBXQVNISU5HVE9OIFBMQUNFIE5FCisJCQkJQUxCVVFVRVJRVUUgTk0gODcxMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTFBICAgKGhleCkJCUZVSkkgRUxFQ1RSSUMgQ08uLCBMVEQuCiswMDQwMUEgICAgIChiYXNlIDE2KQkJRlVKSSBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQlORVcgWVVSQUtVQ0hPIEJMREcKKwkJCQkxMi0xIFlVUkFLVUNITyAxLUNIT01FIENISVlPREEtS1UsIFRPS1lPCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC0xQiAgIChoZXgpCQlQUklOVEVSIFNZU1RFTVMgQ09SUC4KKzAwNDAxQiAgICAgKGJhc2UgMTYpCQlQUklOVEVSIFNZU1RFTVMgQ09SUC4KKwkJCQkyMDcgUEVSUlkgUEFSS1dBWQorCQkJCUdBSVRIRVJTQlVSRyBNRCAyMDg3Ny0yMTQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0xQyAgIChoZXgpCQlBU1QgUkVTRUFSQ0gsIElOQy4KKzAwNDAxQyAgICAgKGJhc2UgMTYpCQlBU1QgUkVTRUFSQ0gsIElOQy4KKwkJCQlNUyAyLTc4CisJCQkJMTYxNSBBTFRPTiBQQVJLV0FZCisJCQkJSVJWSU5FIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0xRCAgIChoZXgpCQlJTlZJU0lCTEUgU09GVFdBUkUsIElOQy4KKzAwNDAxRCAgICAgKGJhc2UgMTYpCQlJTlZJU0lCTEUgU09GVFdBUkUsIElOQy4KKwkJCQkxMTQyIENIRVNTIERSSVZFCisJCQkJRk9TVEVSIENJVFkgQ0EgOTQ0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTFFICAgKGhleCkJCUlDQworMDA0MDFFICAgICAoYmFzZSAxNikJCUlDQworCQkJCTgyMzAgTU9OVEdPTUVSWSBST0FECisJCQkJQ0lOQ0lOTkFUSSBPSCA0NTIzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMUYgICAoaGV4KQkJQ09MT1JHUkFQSCBMVEQKKzAwNDAxRiAgICAgKGJhc2UgMTYpCQlDT0xPUkdSQVBIIExURAorCQkJCVVOSVQgMiwgTUFSUyBIT1VTRQorCQkJCUNBTExFVkEgUEFSSywgQUxERVJNQVNUT04gTlIuIFJFQURJTkcsIEIKKwkJCQlSRzcgNFFXIC0gVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC00MC0yMCAgIChoZXgpCQlURSBDb25uZWN0aXZpdHkgTHRkLgorMDA0MDIwICAgICAoYmFzZSAxNikJCVRFIENvbm5lY3Rpdml0eSBMdGQuCisJCQkJS2lubWVsIFBhcmsKKwkJCQlCb2RlbHd5ZGRhbiBSSFlMIExMMTggNVRaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtMjEgICAoaGV4KQkJUkFTVEVSIEdSQVBISUNTCiswMDQwMjEgICAgIChiYXNlIDE2KQkJUkFTVEVSIEdSQVBISUNTCisJCQkJMjg1IE4uIFdPTEZFIFJPQUQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTIyICAgKGhleCkJCUtMRVZFUiBDT01QVVRFUlMsIElOQy4KKzAwNDAyMiAgICAgKGJhc2UgMTYpCQlLTEVWRVIgQ09NUFVURVJTLCBJTkMuCisJCQkJMTAyOCBXLiBNQVVERSBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTIzICAgKGhleCkJCUxPR0lDIENPUlBPUkFUSU9OCiswMDQwMjMgICAgIChiYXNlIDE2KQkJTE9HSUMgQ09SUE9SQVRJT04KKwkJCQkzLTE0LTEwIE1FSUpJLVNFSU1FSSBCVUlMRElORworCQkJCU1JVEEgTUlOQVRPLUtVIFRPS1lPCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC0yNCAgIChoZXgpCQlDT01QQUMgSU5DLgorMDA0MDI0ICAgICAoYmFzZSAxNikJCUNPTVBBQyBJTkMuCisJCQkJMTYtNyBOSUhPTkJBU0kgSEFNQUNITyAzLUNITworCQkJCUNIVU8tS1UsIFRPS1lPCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC0yNSAgIChoZXgpCQlNT0xFQ1VMQVIgRFlOQU1JQ1MKKzAwNDAyNSAgICAgKGJhc2UgMTYpCQlNT0xFQ1VMQVIgRFlOQU1JQ1MKKwkJCQk4ODAgRUFTVCBBUlFVRVMgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2LTQ1MzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTI2ICAgKGhleCkJCUJ1ZmZhbG8sIEluYworMDA0MDI2ICAgICAoYmFzZSAxNikJCUJ1ZmZhbG8sIEluYworCQkJCU1FTENPIEhJLVRFQ0ggQ0VOVEVSLAorCQkJCTQtMTUgIFNoaWJhdGEsIEhvbmRvcmksIAorCQkJCU1JTkFNSS1LVSwgTkFHT1lBIEFpY2hpIDQ1Ny04NTIwCisJCQkJSkFQQU4KKworMDAtNDAtMjcgICAoaGV4KQkJU01DIE1BU1NBQ0hVU0VUVFMsIElOQy4KKzAwNDAyNyAgICAgKGJhc2UgMTYpCQlTTUMgTUFTU0FDSFVTRVRUUywgSU5DLgorCQkJCTI1IFdBTEtFUlMgQlJPT0sgRFJJVkUKKwkJCQlSRUFESU5HIE1BIDAxODY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0yOCAgIChoZXgpCQlORVRDT01NIExJTUlURUQKKzAwNDAyOCAgICAgKGJhc2UgMTYpCQlORVRDT01NIExJTUlURUQKKwkJCQkzIE9MWU1QSUMgQlVTSU5FU1MgQ0VOVFJFCisJCQkJUEFZQ09DS0UgUk9BRCBCQVNJTERPTiwgRVNTRVggU1MxNCAzRVgKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLTI5ICAgKGhleCkJCUNPTVBFWAorMDA0MDI5ICAgICAoYmFzZSAxNikJCUNPTVBFWAorCQkJCUIuUC4gMzUKKwkJCQk3NDM3MSBQUklOR1ktRlJBTkNFCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTQwLTJBICAgKGhleCkJCUNBTk9HQS1QRVJLSU5TCiswMDQwMkEgICAgIChiYXNlIDE2KQkJQ0FOT0dBLVBFUktJTlMKKwkJCQkyMTAxMiBMQVNTRU4gU1RSRUVUCisJCQkJQ0hBVFNXT1JUSCBDQSA5MTMxMS00MjQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0yQiAgIChoZXgpCQlUUklHRU0gQ09NUFVURVIsIElOQy4KKzAwNDAyQiAgICAgKGJhc2UgMTYpCQlUUklHRU0gQ09NUFVURVIsIElOQy4KKwkJCQlLSVNVTkcgQi9EIDRGLCA3ODQtNgorCQkJCVlFT0tTQU0tRE9ORywgS0FOR05BTS1HVQorCQkJCVNFT1VMIEtPUkVBIDEzNS0wODAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNDAtMkMgICAoaGV4KQkJSVNJUyBESVNUUklCVVRFRCBTWVNURU1TLCBJTkMuCiswMDQwMkMgICAgIChiYXNlIDE2KQkJSVNJUyBESVNUUklCVVRFRCBTWVNURU1TLCBJTkMuCisJCQkJMTExIFNPVVRIIENBWVVHQSBTVFJFRVQKKwkJCQlTVUlURSAjMjAwCisJCQkJSVRIQUNBIE5ZIDE0ODUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0yRCAgIChoZXgpCQlIQVJSSVMgQURBQ09NIENPUlBPUkFUSU9OCiswMDQwMkQgICAgIChiYXNlIDE2KQkJSEFSUklTIEFEQUNPTSBDT1JQT1JBVElPTgorCQkJCTExMDAgVkVOVFVSRSBDT1VSVAorCQkJCUNBUlJPTExUT04gVFggNzUwMDYtNTQxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMkUgICAoaGV4KQkJUFJFQ0lTSU9OIFNPRlRXQVJFLCBJTkMuCiswMDQwMkUgICAgIChiYXNlIDE2KQkJUFJFQ0lTSU9OIFNPRlRXQVJFLCBJTkMuCisJCQkJNjAwIFMgRkVERVJBTCBIV1kgU1RFCisJCQkJREVFUkZJRUxEIEJFQUNIIEZMIDMzNDQxLTQxOTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTJGICAgKGhleCkJCVhMTlQgREVTSUdOUyBJTkMuCiswMDQwMkYgICAgIChiYXNlIDE2KQkJWExOVCBERVNJR05TIElOQy4KKwkJCQkxNTA1MCBBVkVOVUUgT0YgU0NJRU5DRQorCQkJCVNVSVRFIDIwMAorCQkJCVNBTiBESUVHTyBDQSA5MjEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMzAgICAoaGV4KQkJR0sgQ09NUFVURVIKKzAwNDAzMCAgICAgKGJhc2UgMTYpCQlHSyBDT01QVVRFUgorCQkJCUJBU0xFUiBTVFJBU1NFIDEwMworCQkJCUQtNzgwMCBGUkVJQlVSRworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLTMxICAgKGhleCkJCUtPS1VTQUkgRUxFQ1RSSUMgQ08uLCBMVEQKKzAwNDAzMSAgICAgKGJhc2UgMTYpCQlLT0tVU0FJIEVMRUNUUklDIENPLiwgTFRECisJCQkJMi0xIFlBU1VVQ0hJCisJCQkJWUFUU1VPLU1BQ0hJIE5FSUdVTgorCQkJCVRPWUFNQSA5MzktMjMgSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC0zMiAgIChoZXgpCQlESUdJVEFMIENPTU1VTklDQVRJT05TCiswMDQwMzIgICAgIChiYXNlIDE2KQkJRElHSVRBTCBDT01NVU5JQ0FUSU9OUworCQkJCUFTU09DSUFURVMsIElOQy4KKwkJCQkyMDEwIEZPUlRVTkUgRFJJVkUsICMxMDEKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMzMgICAoaGV4KQkJQUREVFJPTiBURUNITk9MT0dZIENPLiwgTFRELgorMDA0MDMzICAgICAoYmFzZSAxNikJCUFERFRST04gVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQk0NjU2MCBGUkVNT05UIEJMVkQuICMzMDMKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0zNCAgIChoZXgpCQlCVVNURUsgQ09SUE9SQVRJT04KKzAwNDAzNCAgICAgKGJhc2UgMTYpCQlCVVNURUsgQ09SUE9SQVRJT04KKwkJCQk0MTUxIEJVUlRPTiBEUklWRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0zNSAgIChoZXgpCQlPUENPTQorMDA0MDM1ICAgICAoYmFzZSAxNikJCU9QQ09NCisJCQkJMTIxNSBXLiBDUk9TQlkgUkQuCisJCQkJQ0FSUk9MTFRPTiBUWCA3NTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtMzYgICAoaGV4KQkJVFJJQkUgQ09NUFVURVIgV09SS1MsIElOQy4KKzAwNDAzNiAgICAgKGJhc2UgMTYpCQlUUklCRSBDT01QVVRFUiBXT1JLUywgSU5DLgorCQkJCTExOTUgUEFSSyBBVkVOVUUtU1RFICMyMTEKKwkJCQlFTUVSWVZJTExFIENBIDk0NjA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0zNyAgIChoZXgpCQlTRUEtSUxBTiwgSU5DLgorMDA0MDM3ICAgICAoYmFzZSAxNikJCVNFQS1JTEFOLCBJTkMuCisJCQkJMTQ2MDIgTk9SVEggVVMgSElHSFdBWSAjMzEKKwkJCQlDQVJNRUwgSU4gNDYwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTM4ICAgKGhleCkJCVRBTEVOVCBFTEVDVFJJQyBJTkNPUlBPUkFURUQKKzAwNDAzOCAgICAgKGJhc2UgMTYpCQlUQUxFTlQgRUxFQ1RSSUMgSU5DT1JQT1JBVEVECisJCQkJM1JEIEZMLiwgTk8uIDI2MCwgUEEgVEVIIFJPQUQKKwkJCQlTRUMuIDIgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLTM5ICAgKGhleCkJCU9QVEVDIERBSUlDSEkgREVOS08gQ08uLCBMVEQuCiswMDQwMzkgICAgIChiYXNlIDE2KQkJT1BURUMgREFJSUNISSBERU5LTyBDTy4sIExURC4KKwkJCQlGSUJFUiBPUFRJQ1MgJiBURUxFQ09NLiBESVYuCisJCQkJMy0xLTEgTUFSVU5PVUNISSBDSElZT0RBS1UgVE9LWU8gMTAwCisJCQkJSkFQQU4KKworMDAtNDAtM0EgICAoaGV4KQkJSU1QQUNUIFRFQ0hOT0xPR0lFUworMDA0MDNBICAgICAoYmFzZSAxNikJCUlNUEFDVCBURUNITk9MT0dJRVMKKwkJCQk2IFJVRSBERSBMJ0FDQURJRQorCQkJCVouQS4gQ09VUlRBQk9FVUYgOTE5NTMgTEVTIFVMSVMgQ0VERVgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtNDAtM0IgICAoaGV4KQkJU1lORVJKRVQgSU5URVJOQVRJT05BTCBDT1JQLgorMDA0MDNCICAgICAoYmFzZSAxNikJCVNZTkVSSkVUIElOVEVSTkFUSU9OQUwgQ09SUC4KKwkJCQk1RiwgTk8gMzUsIEtVQU5HIEZVIFMuIFJPQUQKKwkJCQlUQUlQRUksCisJCQkJVEFJV0FOIFIuIE8uIEMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC00MC0zQyAgIChoZXgpCQlGT1JLUywgSU5DLgorMDA0MDNDICAgICAoYmFzZSAxNikJCUZPUktTLCBJTkMuCisJCQkJMS0yNy00IElSSVlBLAorCQkJCUlSSVlBIDEtMjctNCBUQUlUTywKKwkJCQkxMTAgSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC0zRCAgIChoZXgpCQlUZXJhZGF0YSBDb3Jwb3JhdGlvbgorMDA0MDNEICAgICAoYmFzZSAxNikJCVRlcmFkYXRhIENvcnBvcmF0aW9uCisJCQkJMTcwOTUgVmlhIERlbCBDYW1wbworCQkJCVNhbiBEaWVnbyBDQSA5MjEyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtM0UgICAoaGV4KQkJUkFTVEVSIE9QUyBDT1JQT1JBVElPTgorMDA0MDNFICAgICAoYmFzZSAxNikJCVJBU1RFUiBPUFMgQ09SUE9SQVRJT04KKwkJCQkyNTAwIFdBTFNIIEFWRU5VRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC0zRiAgIChoZXgpCQlTU0FOR1lPTkcgQ09NUFVURVIgU1lTVEVNUworMDA0MDNGICAgICAoYmFzZSAxNikJCVNTQU5HWU9ORyBDT01QVVRFUiBTWVNURU1TCisJCQkJQ09SUE9SQVRJT04KKwkJCQk2MC0xLCAzR0EsIENIVU5HTVUtUk8sIEpVTkctR1UgU0VPVUwKKwkJCQlLT1JFQSAxMDAtNzA1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTQwLTQwICAgKGhleCkJCVJJTkcgQUNDRVNTLCBJTkMuCiswMDQwNDAgICAgIChiYXNlIDE2KQkJUklORyBBQ0NFU1MsIElOQy4KKwkJCQk5NTctUiBJTkRVU1RSSUFMIFJPQUQKKwkJCQlTQU4gQ0FSTE9TIENBIDk0MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC00MSAgIChoZXgpCQlGVUpJS1VSQSBMVEQuCiswMDQwNDEgICAgIChiYXNlIDE2KQkJRlVKSUtVUkEgTFRELgorCQkJCTEtNS0xLCBLSUJBLCBLT1RPLUtVCisJCQkJVE9LWU8gMTM1CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC00MiAgIChoZXgpCQlOLkEuVC4gR01CSAorMDA0MDQyICAgICAoYmFzZSAxNikJCU4uQS5ULiBHTUJICisJCQkJR09FVEhFU1RSLiAyCisJCQkJNTIxMCBUUk9JU0RPUkYtU0lFR0xBUgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLTQzICAgKGhleCkJCU5va2lhIFNpZW1lbnMgTmV0d29ya3MgR21iSCAmIENvLiBLRy4KKzAwNDA0MyAgICAgKGJhc2UgMTYpCQlOb2tpYSBTaWVtZW5zIE5ldHdvcmtzIEdtYkggJiBDby4gS0cuCisJCQkJV2VybmVyLXZvbi1TaWVtZW5zIFN0ci4gMi02CisJCQkJQnJ1Y2hzYWwgQmFkZW4tV8O8cnRlbWJlcmcgNzY2NDYKKwkJCQlGSU5MQU5ECisKKzAwLTQwLTQ0ICAgKGhleCkJCVFOSVggQ09NUFVURVIgQ08uLCBMVEQuCiswMDQwNDQgICAgIChiYXNlIDE2KQkJUU5JWCBDT01QVVRFUiBDTy4sIExURC4KKwkJCQk4LDlGIEtPUkVBTiBURUFDSEVSJ1MgTVVULkJMREcKKwkJCQkzNS0zLCBZRU9VSURPX0RPTkcsIFlFT05HREVVTkdQT19HVQorCQkJCVNFT1VMIEtPUkVBIDE1MC0wMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNDAtNDUgICAoaGV4KQkJVFdJTkhFQUQgQ09SUE9SQVRJT04KKzAwNDA0NSAgICAgKGJhc2UgMTYpCQlUV0lOSEVBRCBDT1JQT1JBVElPTgorCQkJCTE1MzcgQ0VOVFJFIFBPSU5URSBEUklWRQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC00NiAgIChoZXgpCQlVREMgUkVTRUFSQ0ggTElNSVRFRAorMDA0MDQ2ICAgICAoYmFzZSAxNikJCVVEQyBSRVNFQVJDSCBMSU1JVEVECisJCQkJOEEgS0lORyBXQU4gSU5EVVNUUklBTCBCTERHLgorCQkJCTU0IEhVTkcgVE8gUk9BRCwgS1dVTiBUT05HCisJCQkJSE9ORyBLT05HCisJCQkJSE9ORyBLT05HCisKKzAwLTQwLTQ3ICAgKGhleCkJCVdJTkQgUklWRVIgU1lTVEVNUworMDA0MDQ3ICAgICAoYmFzZSAxNikJCVdJTkQgUklWRVIgU1lTVEVNUworCQkJCTEwMTAgQVRMQU5USUMgQVZFTlVFCisJCQkJQUxBTUVEQSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNDggICAoaGV4KQkJU01EIElORk9STUFUSUNBIFMuQS4KKzAwNDA0OCAgICAgKGJhc2UgMTYpCQlTTUQgSU5GT1JNQVRJQ0EgUy5BLgorCQkJCUxBUkdPIE1PVklNRU5UTyBEQVMgRk9SQ0FTCisJCQkJQVJNQURBUywgNCBBTEZSQUdJREUsICAyNzAwIEFNQURPUkEKKwkJCQlQT1JUVUdBTAorCQkJCVBPUlRVR0FMCisKKzAwLTQwLTQ5ICAgKGhleCkJCVJvY2hlIERpYWdub3N0aWNzIEx0ZC4KKzAwNDA0OSAgICAgKGJhc2UgMTYpCQlSb2NoZSBEaWFnbm9zdGljcyBMdGQuCisJCQkJRk9SUkVOU1RSQVNTRQorCQkJCTYzNDMgUk9US1JFVVoKKwkJCQlTV0lUWkVSTEFORAorCiswMC00MC00QSAgIChoZXgpCQlXRVNUIEFVU1RSQUxJQU4gREVQQVJUTUVOVAorMDA0MDRBICAgICAoYmFzZSAxNikJCVdFU1QgQVVTVFJBTElBTiBERVBBUlRNRU5UCisJCQkJT0YgRU1QTE9ZTUVOVCAoREVWRVQpCisJCQkJTEVWRVIgMiwgMTUxIFJPWUFMIFNULiBFQVNUIFBFUlRIICA2MDAxCisJCQkJV0VTVEVSTiBBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtNDAtNEIgICAoaGV4KQkJTUFQTEUgQ09NUFVURVIgU1lTVEVNUworMDA0MDRCICAgICAoYmFzZSAxNikJCU1BUExFIENPTVBVVEVSIFNZU1RFTVMKKwkJCQlQLk8uIEJPWCAxMDA1MAorCQkJCVNULiBKT0hOJ1MsIE5GCisJCQkJQ0FOQURBIEFMQSA0TDUKKwkJCQlDQU5BREEKKworMDAtNDAtNEMgICAoaGV4KQkJSFlQRVJURUMgUFRZIExURC4KKzAwNDA0QyAgICAgKGJhc2UgMTYpCQlIWVBFUlRFQyBQVFkgTFRELgorCQkJCVAuTy4gQk9YIDE3ODIKKwkJCQlNQUNRVUFSSUUgQ0VOVFJFIE5TVywgMjExMworCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC00MC00RCAgIChoZXgpCQlURUxFQ09NTVVOSUNBVElPTlMgVEVDSE5JUVVFUworMDA0MDREICAgICAoYmFzZSAxNikJCVRFTEVDT01NVU5JQ0FUSU9OUyBURUNITklRVUVTCisJCQkJTS9TCisJCQkJMjA0MDAgT0JTRVJWQVRJT04gRFJJVkUKKwkJCQlHRVJNQU5UT1dOIE1EIDIwODc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC00RSAgIChoZXgpCQlGTFVFTlQsIElOQy4KKzAwNDA0RSAgICAgKGJhc2UgMTYpCQlGTFVFTlQsIElOQy4KKwkJCQk1OTQgV09SQ0VTVEVSIFJPQUQtU1RFLiMzMDgKKwkJCQlOQVRJQ0sgTUEgMDE3NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTRGICAgKGhleCkJCVNQQUNFICYgTkFWQUwgV0FSRkFSRSBTWVNURU1TCiswMDQwNEYgICAgIChiYXNlIDE2KQkJU1BBQ0UgJiBOQVZBTCBXQVJGQVJFIFNZU1RFTVMKKwkJCQlOVVdDCisJCQkJQ09ERSAyMjIyLCAgQkxERyAxMTcxLTMKKwkJCQlORVdQT1JUIFJJIDAyODQxLTUwNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTUwICAgKGhleCkJCUlST05JQ1MsIElOQ09SUE9SQVRFRAorMDA0MDUwICAgICAoYmFzZSAxNikJCUlST05JQ1MsIElOQ09SUE9SQVRFRAorCQkJCTc2NyBXQVJSRU4gUkQKKwkJCQlJVEhBQ0EgTi5ZLiAxNDg1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNTEgICAoaGV4KQkJR1JBQ0lMSVMsIElOQy4KKzAwNDA1MSAgICAgKGJhc2UgMTYpCQlHUkFDSUxJUywgSU5DLgorCQkJCTYyMyBQQUxBQ0UgU1RSRUVUCisJCQkJQVVST1JBIElMIDYwNTA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC01MiAgIChoZXgpCQlTVEFSIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA0MDUyICAgICAoYmFzZSAxNikJCVNUQVIgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNTE1IFNIQVcgUk9BRAorCQkJCVNURVJMSU5HIFZBIDIyMDc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC01MyAgIChoZXgpCQlBTVBSTyBDT01QVVRFUlMKKzAwNDA1MyAgICAgKGJhc2UgMTYpCQlBTVBSTyBDT01QVVRFUlMKKwkJCQk5OTAgQUxNT05ET1IgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC01NCAgIChoZXgpCQlDT05ORUNUSU9OIE1BQ0hJTkVTIFNFUlZJQ0VTCiswMDQwNTQgICAgIChiYXNlIDE2KQkJQ09OTkVDVElPTiBNQUNISU5FUyBTRVJWSUNFUworCQkJCTEyIEhFTlNIQVcgU1RSRUVUCisJCQkJV09CVVJOIE1BIDAxODAxLTQ2NjY2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNTUgICAoaGV4KQkJTUVUUk9OSVggR01CSAorMDA0MDU1ICAgICAoYmFzZSAxNikJCU1FVFJPTklYIEdNQkgKKwkJCQlORVVFIEtOT0NIRU5IQVVFUlNUUkFCRSA1CisJCQkJRC0zMzAwIEJSQVVOU0NIV0VJRworCQkJCVdFU1QgR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtNTYgICAoaGV4KQkJTUNNIEpBUEFOIExURC4KKzAwNDA1NiAgICAgKGJhc2UgMTYpCQlNQ00gSkFQQU4gTFRELgorCQkJCVNZVVVLQUVOIEJMRC4gMi0xMS0xCisJCQkJS09NQVpBV0EgU0VUQUdBWUEtS1UgVE9LWU8gMTU0CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC01NyAgIChoZXgpCQlMT0NLSEVFRCAtIFNBTkRFUlMKKzAwNDA1NyAgICAgKGJhc2UgMTYpCQlMT0NLSEVFRCAtIFNBTkRFUlMKKwkJCQlEQU5JRUwgV0VCU1RFUiBISUdIV0FZIFNPVVRICisJCQkJUC5PLiBCT1ggODY4CisJCQkJTkFTSFVBIE5IIDAzMDYxLTA4NjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTU4ICAgKGhleCkJCUtST05PUywgSU5DLgorMDA0MDU4ICAgICAoYmFzZSAxNikJCUtST05PUywgSU5DLgorCQkJCTQwMCBGSUZUSCBBVkVOVUUKKwkJCQlXQUxUSEFNIE1BIDAyMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC01OSAgIChoZXgpCQlZT1NISURBIEtPR1lPIEsuIEsuCiswMDQwNTkgICAgIChiYXNlIDE2KQkJWU9TSElEQSBLT0dZTyBLLiBLLgorCQkJCVRFQ0hOSUNBTCBSRVNFQVJDSCBERVBULgorCQkJCTIwMCBZT1NISURBIEtVUk9CRSBDSVRZIFRPWUFNQSBQUkVGLgorCQkJCTkzOSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLTVBICAgKGhleCkJCUdPTERTVEFSIElORk9STUFUSU9OICYgQ09NTS4KKzAwNDA1QSAgICAgKGJhc2UgMTYpCQlHT0xEU1RBUiBJTkZPUk1BVElPTiAmIENPTU0uCisJCQkJNTMzLCBIT0dBRS1ET05HLCBBTllBTkctU0hJCisJCQkJS1lPTkdLSS1ETyA0MzAtMDgwCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNDAtNUIgICAoaGV4KQkJRlVOQVNTRVQgTElNSVRFRAorMDA0MDVCICAgICAoYmFzZSAxNikJCUZVTkFTU0VUIExJTUlURUQKKwkJCQlPUkNIQVJEUywgMTQgVE9XTlNFTkQKKwkJCQlTT01FUlNFVCBUQTE5IE9BVSBJTE1JTlNURVIKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLTVDICAgKGhleCkJCUZVVFVSRSBTWVNURU1TLCBJTkMuCiswMDQwNUMgICAgIChiYXNlIDE2KQkJRlVUVVJFIFNZU1RFTVMsIElOQy4KKwkJCQlST09NIDEwMiBET05HIEJBTkcgQi9ELAorCQkJCVlFT0cgU0FNLURPTkcgNzQwLTUsIEtBTkcgTkFNLUtVCisJCQkJU0VPVUwgMTMwLTA4MCBTRU9VTCAxMzAtMDgwIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTQwLTVEICAgKGhleCkJCVNUQVItVEVLLCBJTkMuCiswMDQwNUQgICAgIChiYXNlIDE2KQkJU1RBUi1URUssIElOQy4KKwkJCQk3MSBMWU1BTiBTVFJFRVQKKwkJCQlOT1JUSEJPUk8gTUEgMDE1MzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTVFICAgKGhleCkJCU5PUlRIIEhJTExTIElTUkFFTAorMDA0MDVFICAgICAoYmFzZSAxNikJCU5PUlRIIEhJTExTIElTUkFFTAorCQkJCVAuTy4gQk9YIDEyODAKKwkJCQlZT0tORUFNIDIwNjkyCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTQwLTVGICAgKGhleCkJCUFGRSBDT01QVVRFUlMgTFRELgorMDA0MDVGICAgICAoYmFzZSAxNikJCUFGRSBDT01QVVRFUlMgTFRELgorCQkJCTYyIEFOQ0hPUkFHRSBST0FECisJCQkJU1VUVE9OIENPTERGSUVMRCBXRVNUIE1JRExBTkRTIEI3NCAyUEcKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLTYwICAgKGhleCkJCUNPTUVOREVDIExURAorMDA0MDYwICAgICAoYmFzZSAxNikJCUNPTUVOREVDIExURAorCQkJCUVOVEVSUFJJU0UgV0FZLAorCQkJCUFTVE9OIFNDSUVOQ0UgUEFSSywgQVNUT04gVFJJQU5HTEUKKwkJCQlCSVJNSU5HSEFNIEJJUk1JTkdIQU0gRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLTYxICAgKGhleCkJCURBVEFURUNIIEVOVEVSUFJJU0VTIENPLiwgTFRELgorMDA0MDYxICAgICAoYmFzZSAxNikJCURBVEFURUNIIEVOVEVSUFJJU0VTIENPLiwgTFRELgorCQkJCShMSU4gS09VIElORFVTVFJJQUwgWk9ORSBTRUMsNAorCQkJCTI3LCBIU0ktU0hJSCBMQUtFIFJPQUQgS1VFSS1TSEFOIEhTSUFORworCQkJCVRBT1lVQU4gQ09VTlRZIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLTYyICAgKGhleCkJCUUtU1lTVEVNUywgSU5DLi9HQVJMQU5EIERJVi4KKzAwNDA2MiAgICAgKGJhc2UgMTYpCQlFLVNZU1RFTVMsIElOQy4vR0FSTEFORCBESVYuCisJCQkJUC5PLiBCT1ggNjYwMDIzCisJCQkJTUFJTCBTVE9QIDYzMDAwCisJCQkJREFMTEFTIFRYIDc1MjY2LTAwMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTYzICAgKGhleCkJCVZJQSBURUNITk9MT0dJRVMsIElOQy4KKzAwNDA2MyAgICAgKGJhc2UgMTYpCQlWSUEgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNTAyMCBCUkFORElOIENPVVJUCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNjQgICAoaGV4KQkJS0xBIElOU1RSVU1FTlRTIENPUlBPUkFUSU9OCiswMDQwNjQgICAgIChiYXNlIDE2KQkJS0xBIElOU1RSVU1FTlRTIENPUlBPUkFUSU9OCisJCQkJMTYwIFJJTyBST0JMRVMKKwkJCQlTQU4gSk9TRSBDQSA5NTE2MS05MDU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC02NSAgIChoZXgpCQlHVEUgU1BBQ0VORVQKKzAwNDA2NSAgICAgKGJhc2UgMTYpCQlHVEUgU1BBQ0VORVQKKwkJCQkxNzAwIE9MRCBNRUFET1cgUk9BRAorCQkJCU1DTEVBTiBWQSAyMjEwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNjYgICAoaGV4KQkJSElUQUNISSBDQUJMRSwgTFRELgorMDA0MDY2ICAgICAoYmFzZSAxNikJCUhJVEFDSEkgQ0FCTEUsIExURC4KKwkJCQlPUFRPIEVMRUNUUk9OSUMgU1lTVEVNIExBQgorCQkJCTg4MCBJU0FHT1pBVy1DSE8sIEhJVEFDSEktU0hJIElCQVJBS0ktS0UKKwkJCQkzMTktMTQgSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC02NyAgIChoZXgpCQlPTU5JQllURSBDT1JQT1JBVElPTgorMDA0MDY3ICAgICAoYmFzZSAxNikJCU9NTklCWVRFIENPUlBPUkFUSU9OCisJCQkJMjQ1IFdFU1QgUk9PU0VWRUxUIFJPQUQKKwkJCQlXRVNUIENISUNBR08gSUwgNjAxODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTY4ICAgKGhleCkJCUVYVEVOREVEIFNZU1RFTVMKKzAwNDA2OCAgICAgKGJhc2UgMTYpCQlFWFRFTkRFRCBTWVNURU1TCisJCQkJNjEyMyBOT1JUSCBNRUVLRVIgQVZFTlVFCisJCQkJQk9JU0UgSUQgODM3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTY5ICAgKGhleCkJCUxFTUNPTSBTWVNURU1TLCBJTkMuCiswMDQwNjkgICAgIChiYXNlIDE2KQkJTEVNQ09NIFNZU1RFTVMsIElOQy4KKwkJCQkyMTA0IFdFU1QgUEVPUklBIEFWRU5VRQorCQkJCVBIT0VOSVggQVogODUwMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTZBICAgKGhleCkJCUtFTlRFSyBJTkZPUk1BVElPTiBTWVNURU1TLElOQworMDA0MDZBICAgICAoYmFzZSAxNikJCUtFTlRFSyBJTkZPUk1BVElPTiBTWVNURU1TLElOQworCQkJCTI5NDUgV0lMREVSTkVTUyBQTEFDRQorCQkJCUJPVUxERVIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTZCICAgKGhleCkJCVNZU0dFTgorMDA0MDZCICAgICAoYmFzZSAxNikJCVNZU0dFTgorCQkJCTU1NiBHSUJSQUxUQVIgRFJJVkUKKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNkMgICAoaGV4KQkJQ09QRVJOSVFVRQorMDA0MDZDICAgICAoYmFzZSAxNikJCUNPUEVSTklRVUUKKwkJCQk2LCBNQUlMIERFIEwnRVVST1BFIEJQIDI1CisJCQkJNzgxNzAgTEEgQ0VMTEUtU0FJTlQtQ0xPVUQKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtNDAtNkQgICAoaGV4KQkJTEFOQ08sIElOQy4KKzAwNDA2RCAgICAgKGJhc2UgMTYpCQlMQU5DTywgSU5DLgorCQkJCTgwMCBXRVNUIEFJUlBPUlQgRlJFRVdBWQorCQkJCVNVSVRFICMxMTAwCisJCQkJSVJWSU5HIFRYIDc1MDYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC02RSAgIChoZXgpCQlDT1JPTExBUlksIElOQy4KKzAwNDA2RSAgICAgKGJhc2UgMTYpCQlDT1JPTExBUlksIElOQy4KKwkJCQkyODAyIEtFTFZJTgorCQkJCUlSVklORSBDQSA5MjcxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNkYgICAoaGV4KQkJU1lOQyBSRVNFQVJDSCBJTkMuCiswMDQwNkYgICAgIChiYXNlIDE2KQkJU1lOQyBSRVNFQVJDSCBJTkMuCisJCQkJNyBTVFVERUJBS0VSCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC03MCAgIChoZXgpCQlJTlRFUldBUkUgQ08uLCBMVEQuCiswMDQwNzAgICAgIChiYXNlIDE2KQkJSU5URVJXQVJFIENPLiwgTFRELgorCQkJCTdGIEtVREFOIE5FVyBDRU5UUkFMIEJMREcuLAorCQkJCTEtNC01IEtVREFOLUtJVEEsIENISVlPREEtS1UKKwkJCQlUT0tZTyAxMDIgVE9LWU8gMTAyIEpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtNzEgICAoaGV4KQkJQVRNIENPTVBVVEVSIEdNQkgKKzAwNDA3MSAgICAgKGJhc2UgMTYpCQlBVE0gQ09NUFVURVIgR01CSAorCQkJCUJVQ0tMRVNUUi4gMS01LFBPU1RGQUNIIDEwMTA0MworCQkJCUQ3NzUwIEtPTlNUQU5aCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtNzIgICAoaGV4KQkJQXBwbGllZCBJbm5vdmF0aW9uIEluYy4KKzAwNDA3MiAgICAgKGJhc2UgMTYpCQlBcHBsaWVkIElubm92YXRpb24gSW5jLgorCQkJCTU4MDAgSW5ub3ZhdGlvbiBEcml2ZQorCQkJCUR1YmxpbiBPSCA0MzAxNi0zMjcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC03MyAgIChoZXgpCQlCQVNTIEFTU09DSUFURVMKKzAwNDA3MyAgICAgKGJhc2UgMTYpCQlCQVNTIEFTU09DSUFURVMKKwkJCQk0MzUgVEFTU08gU1RSRUVULCBTVEUuICMzMjUKKwkJCQlQQUxPIEFMVE8gQ0EgOTQzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTc0ICAgKGhleCkJCUNBQkxFIEFORCBXSVJFTEVTUworMDA0MDc0ICAgICAoYmFzZSAxNikJCUNBQkxFIEFORCBXSVJFTEVTUworCQkJCUNPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTkxOSBHQUxMT1dTIFJPQUQKKwkJCQlWSUVOTkEgVkEgMjIxODItMzk2NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtNzUgICAoaGV4KQkJVGF0dGlsZSBTUkwgCiswMDQwNzUgICAgIChiYXNlIDE2KQkJVGF0dGlsZSBTUkwgCisJCQkJMTEtMTIgTk9SVEhGSUVMRCBQUk9TUEVDVAorCQkJCVBVVE5FWSBCUklER0UgUk9BRCBMT05ET04gU1cxOCAxSFIKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLTc2ICAgKGhleCkJCVN1biBDb252ZXJzaW9uIFRlY2hub2xvZ2llcworMDA0MDc2ICAgICAoYmFzZSAxNikJCVN1biBDb252ZXJzaW9uIFRlY2hub2xvZ2llcworCQkJCTEwMCBDb21tZXJjZSBCb3VsZXZhcmQKKwkJCQlRdWFrZXJ0b3duIFBBIDc4OTUxLTIyMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTc3ICAgKGhleCkJCU1BWFRPTiBURUNITk9MT0dZIENPUlBPUkFUSU9OCiswMDQwNzcgICAgIChiYXNlIDE2KQkJTUFYVE9OIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKwkJCQk0RkssIDI0OSwgU0VDLiAzLAorCQkJCUNIVU5HIEhTSUFPIEUuIFJELiwgVEFJUEVJCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC00MC03OCAgIChoZXgpCQlXRUFSTkVTIEFVVE9NQVRJT04gUFRFIExURAorMDA0MDc4ICAgICAoYmFzZSAxNikJCVdFQVJORVMgQVVUT01BVElPTiBQVEUgTFRECisJCQkJODAxIExPUk9ORyA3LCBUT0EgUEFZT0gKKwkJCQlTSU5HQVBPUkUgMTIzMQorCQkJCVNJTkdBUE9SRQorCiswMC00MC03OSAgIChoZXgpCQlKVUtPIE1BTlVGQUNUVVJFIENPTVBBTlksIExURC4KKzAwNDA3OSAgICAgKGJhc2UgMTYpCQlKVUtPIE1BTlVGQUNUVVJFIENPTVBBTlksIExURC4KKwkJCQlGTEFUIEMsIDNSRCBGTE9PUiwgQ0RXIEJMREcuCisJCQkJMzg4IENBU1RMRSBQRUFLIFJPQUQsIFRTVUVOIFdBTiwgTi5ULgorCQkJCUhPTkcgS09ORworCQkJCUhPTkcgS09ORworCiswMC00MC03QSAgIChoZXgpCQlTT0NJRVRFIEQnRVhQTE9JVEFUSU9OIERVIENOSVQKKzAwNDA3QSAgICAgKGJhc2UgMTYpCQlTT0NJRVRFIEQnRVhQTE9JVEFUSU9OIERVIENOSVQKKwkJCQkyIEdMQUNFIERFIExBIERFRkVOU0UgOTIwNTMKKwkJCQlQQVJJUy1MQS1ERUZFTlNFCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTQwLTdCICAgKGhleCkJCVNDSUVOVElGSUMgQVRMQU5UQQorMDA0MDdCICAgICAoYmFzZSAxNikJCVNDSUVOVElGSUMgQVRMQU5UQQorCQkJCUluZm9ybWF0aW9uIFRlY2hub2xvZ3kKKwkJCQk0MzExIENvbW11bmljYXRpb25zIERyaXZlIE1haWwgQ29kZTogIDMwCisJCQkJTm9yY3Jvc3MgR0EgMzAwOTEtNjg1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtN0MgICAoaGV4KQkJUVVNRSBDT1JQT1JBVElPTgorMDA0MDdDICAgICAoYmFzZSAxNikJCVFVTUUgQ09SUE9SQVRJT04KKwkJCQk1MDAgWU9TRU1JVEUgRFJJVkUsIE0vUy0yOQorCQkJCU1JTFBJVEFTIENBIDk1MDM1LTU0MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTdEICAgKGhleCkJCUVYVEVOU0lPTiBURUNITk9MT0dZIENPUlAuCiswMDQwN0QgICAgIChiYXNlIDE2KQkJRVhURU5TSU9OIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkzMCBIT0xMSVMgU1RSRUVUCisJCQkJRlJBTUlOR0hBTSBNQSAwMTcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtN0UgICAoaGV4KQkJRVZFUkdSRUVOIFNZU1RFTVMsIElOQy4KKzAwNDA3RSAgICAgKGJhc2UgMTYpCQlFVkVSR1JFRU4gU1lTVEVNUywgSU5DLgorCQkJCTEyMCBMQU5ESU5HIENPVVJULVNVSVRFCisJCQkJTk9WQVRPIENBIDk0OTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC03RiAgIChoZXgpCQlGTElSIFN5c3RlbXMKKzAwNDA3RiAgICAgKGJhc2UgMTYpCQlGTElSIFN5c3RlbXMKKwkJCQlCT1ggMworCQkJCTE4Mi0xMSAgREFOREVSWUQKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtNDAtODAgICAoaGV4KQkJQVRIRU5JWCBDT1JQT1JBVElPTgorMDA0MDgwICAgICAoYmFzZSAxNikJCUFUSEVOSVggQ09SUE9SQVRJT04KKwkJCQk2NzUgQUxNQU5PUiBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTgxICAgKGhleCkJCU1BTk5FU01BTk4gU0NBTkdSQVBISUMgR01CSAorMDA0MDgxICAgICAoYmFzZSAxNikJCU1BTk5FU01BTk4gU0NBTkdSQVBISUMgR01CSAorCQkJCVJJU1NFTkVSIFNUUkFTU0UgMTEyLTExNAorCQkJCVctMjAwMCBXRURFTAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLTgyICAgKGhleCkJCUxBQk9SQVRPUlkgRVFVSVBNRU5UIENPUlAuCiswMDQwODIgICAgIChiYXNlIDE2KQkJTEFCT1JBVE9SWSBFUVVJUE1FTlQgQ09SUC4KKwkJCQkxLTctMyBNSU5BVE9NQUNISQorCQkJCVRVQ0hJVVJBLUNJVFkgSUJBUkFHSS1LRU4sCisJCQkJMzAwIEpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtODMgICAoaGV4KQkJVERBIElORFVTVFJJQSBERSBQUk9EVVRPUworMDA0MDgzICAgICAoYmFzZSAxNikJCVREQSBJTkRVU1RSSUEgREUgUFJPRFVUT1MKKwkJCQlFTEVUUk9OSUNPUyBTLkEuCisJCQkJUlVFIEFHT1NUSU5PIFRPR05FUkksIDkyIDA0NjkwIC0gU0FPIFBBVQorCQkJCUJSQVpJTAorCQkJCUJSQVpJTAorCiswMC00MC04NCAgIChoZXgpCQlIT05FWVdFTEwgQUNTCiswMDQwODQgICAgIChiYXNlIDE2KQkJSE9ORVlXRUxMIEFDUworCQkJCQorCQkJCTUxMiBWaXJnaW5pYSBEcml2ZQorCQkJCUZvcnQgV2FzaGluZ3RvbiBQQSAxOTAzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtODUgICAoaGV4KQkJU0FBQiBJTlNUUlVNRU5UUyBBQgorMDA0MDg1ICAgICAoYmFzZSAxNikJCVNBQUIgSU5TVFJVTUVOVFMgQUIKKwkJCQlQLk8uIEJPWCAxMDE3CisJCQkJUy01NTEgMTEgSk9OS09QSU5HCisJCQkJU1dFREVOCisKKzAwLTQwLTg2ICAgKGhleCkJCU1JQ0hFTFMgJiBLTEVCRVJIT0ZGIENPTVBVVEVSCiswMDQwODYgICAgIChiYXNlIDE2KQkJTUlDSEVMUyAmIEtMRUJFUkhPRkYgQ09NUFVURVIKKwkJCQlHQVRIRSAxMTcKKwkJCQk1NjAwIFdVUFBFUlRBTCAxCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtODcgICAoaGV4KQkJVUJJVFJFWCBDT1JQT1JBVElPTgorMDA0MDg3ICAgICAoYmFzZSAxNikJCVVCSVRSRVggQ09SUE9SQVRJT04KKwkJCQkxOVRIIEZMT09SLCAxNTUgQ0FSTFRPTiBTVFJFRVQKKwkJCQlXSU5OSVBFRywgTUFOSVRPQkEKKwkJCQlDQU5BREEgUjNDIDNIOAorCQkJCUNBTkFEQQorCiswMC00MC04OCAgIChoZXgpCQlNT0JJVVMgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDQwODggICAgIChiYXNlIDE2KQkJTU9CSVVTIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTU4MzUgRE9ZTEUgU1RSRUVUCisJCQkJRU1FUllWSUxMRSBDQSA5NDYwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtODkgICAoaGV4KQkJTUVJREVOU0hBIENPUlBPUkFUSU9OCiswMDQwODkgICAgIChiYXNlIDE2KQkJTUVJREVOU0hBIENPUlBPUkFUSU9OCisJCQkJRkFDVE9SWSBOTy40LCA1MTUgS0FNSU5BS0FNSVpPCisJCQkJSElHQVNISSBNQUtBRE8gTlVNQVpVLUNJVFkgU0hJWlVPS0EtUFJFRgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtOEEgICAoaGV4KQkJVFBTIFRFTEVQUk9DRVNTSU5HIFNZUy4gR01CSAorMDA0MDhBICAgICAoYmFzZSAxNikJCVRQUyBURUxFUFJPQ0VTU0lORyBTWVMuIEdNQkgKKwkJCQlTQ0hXQURFUk1VQ0hMU1RSQVNTRSA0LTgKKwkJCQlXLTg1MDEgQ0FET0xaQlVSRworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLThCICAgKGhleCkJCVJBWUxBTiBDT1JQT1JBVElPTgorMDA0MDhCICAgICAoYmFzZSAxNikJCVJBWUxBTiBDT1JQT1JBVElPTgorCQkJCTEyMCBJTkRFUEVOREVOQ0UgRFJJVkUKKwkJCQlNRU5MTyBQQVJLIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC04QyAgIChoZXgpCQlBWElTIENPTU1VTklDQVRJT05TIEFCCiswMDQwOEMgICAgIChiYXNlIDE2KQkJQVhJUyBDT01NVU5JQ0FUSU9OUyBBQgorCQkJCVNDSEVFTEVWQUdFTiAxNgorCQkJCVMtMjIzIDcwIExVTkQKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtNDAtOEQgICAoaGV4KQkJVEhFIEdPT0RZRUFSIFRJUkUgJiBSVUJCRVIgQ08uCiswMDQwOEQgICAgIChiYXNlIDE2KQkJVEhFIEdPT0RZRUFSIFRJUkUgJiBSVUJCRVIgQ08uCisJCQkJMTE0NCBFQVNUIE1BUktFVCBTVFJFRVQKKwkJCQlBS1JPTiBPSCA0NDMxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtOEUgICAoaGV4KQkJVGF0dGlsZSBTUkwgCiswMDQwOEUgICAgIChiYXNlIDE2KQkJVGF0dGlsZSBTUkwgCisJCQkJMjM2MCBNQVJZTEFORCBST0FECisJCQkJV0lMTE9XIEdST1ZFIFBBIDE5MDkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC04RiAgIChoZXgpCQlXTS1EQVRBIE1JTkZPIEFCCiswMDQwOEYgICAgIChiYXNlIDE2KQkJV00tREFUQSBNSU5GTyBBQgorCQkJCU9MT0YgQVNLTFVORFMgR0FUQSAxNAorCQkJCUJPWCAyMDY1IDQyMSAwMiBHT1RFQk9SRworCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC00MC05MCAgIChoZXgpCQlBTlNFTCBDT01NVU5JQ0FUSU9OUworMDA0MDkwICAgICAoYmFzZSAxNikJCUFOU0VMIENPTU1VTklDQVRJT05TCisJCQkJMTcwMSBKVU5DVElPTiBDT1VSVAorCQkJCVNBTiBKT1NFIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC05MSAgIChoZXgpCQlQUk9DT01QIElORFVTVFJJQSBFTEVUUk9OSUNBCiswMDQwOTEgICAgIChiYXNlIDE2KQkJUFJPQ09NUCBJTkRVU1RSSUEgRUxFVFJPTklDQQorCQkJCUFWLiBLRU5LSVRJIFNJTU9NT1RPLCA3NjcKKwkJCQkwNTM0NyAtIFNBTyBQQVVMTyAvIFNQCisJCQkJQlJBWklMCisJCQkJQlJBWklMCisKKzAwLTQwLTkyICAgKGhleCkJCUFTUCBDT01QVVRFUiBQUk9EVUNUUywgSU5DLgorMDA0MDkyICAgICAoYmFzZSAxNikJCUFTUCBDT01QVVRFUiBQUk9EVUNUUywgSU5DLgorCQkJCTE2MCBTQU4gR0FCUklFTCBEUklWRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtOTMgICAoaGV4KQkJUEFYREFUQSBORVRXT1JLUyBMVEQuCiswMDQwOTMgICAgIChiYXNlIDE2KQkJUEFYREFUQSBORVRXT1JLUyBMVEQuCisJCQkJQ09NTVVOSUNBVElPTlMgSE9VU0UsCisJCQkJRlJPR01PUkUgUk9BRCBIRU1FTCBIRU1QU1RFQUQsIEhFUlRTIEhQMworCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC00MC05NCAgIChoZXgpCQlTSE9HUkFQSElDUywgSU5DLgorMDA0MDk0ICAgICAoYmFzZSAxNikJCVNIT0dSQVBISUNTLCBJTkMuCisJCQkJMTg5MCBOLiBTSE9SRUxJTkUgQkxWRC4KKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC05NSAgIChoZXgpCQlSLlAuVC4gSU5URVJHUk9VUFMgSU5UJ0wgTFRELgorMDA0MDk1ICAgICAoYmFzZSAxNikJCVIuUC5ULiBJTlRFUkdST1VQUyBJTlQnTCBMVEQuCisJCQkJOUYsIDUwIE1JTiBDSFVBTiBSRAorCQkJCUhTSU4gVElFTiwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLTk2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMsIEluYy4KKzAwNDA5NiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTcwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC05NyAgIChoZXgpCQlEQVRFWCBESVZJU0lPTiBPRgorMDA0MDk3ICAgICAoYmFzZSAxNikJCURBVEVYIERJVklTSU9OIE9GCisJCQkJSU5TVFJVTUVOVEFSSVVNIENPUlAuCisJCQkJUC5PLiBCT1ggNDQ2LCBTRi0wMDEwMSBIRUxTSU5LSQorCQkJCUZJTkxBTkQKKwkJCQlGSU5MQU5ECisKKzAwLTQwLTk4ICAgKGhleCkJCURSRVNTTEVSIEdNQkggJiBDTy4KKzAwNDA5OCAgICAgKGJhc2UgMTYpCQlEUkVTU0xFUiBHTUJIICYgQ08uCisJCQkJS0FDS0VSVFNUUkFTU0UgMTAKKwkJCQlELTUyMDcyIEFBQ0hFTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLTk5ICAgKGhleCkJCU5FV0dFTiBTWVNURU1TIENPUlAuCiswMDQwOTkgICAgIChiYXNlIDE2KQkJTkVXR0VOIFNZU1RFTVMgQ09SUC4KKwkJCQkxNzU4MCBORVdIT1BFIFNUUkVFVAorCQkJCUZPVU5UQUlOIFZBTExFWSBDQSA5MjcwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtOUEgICAoaGV4KQkJTkVUV09SSyBFWFBSRVNTLCBJTkMuCiswMDQwOUEgICAgIChiYXNlIDE2KQkJTkVUV09SSyBFWFBSRVNTLCBJTkMuCisJCQkJMjIwMCBHUkVFTiBST0FEIC0gU1RFCisJCQkJQU5OIEFSQk9SIE1JIDQ4MTcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC05QiAgIChoZXgpCQlIQUwgQ09NUFVURVIgU1lTVEVNUyBJTkMuCiswMDQwOUIgICAgIChiYXNlIDE2KQkJSEFMIENPTVBVVEVSIFNZU1RFTVMgSU5DLgorCQkJCTEzMTUgREVMTCBBVkVOVUUKKwkJCQlDQU1QQkVMTCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtOUMgICAoaGV4KQkJVFJBTlNXQVJFCiswMDQwOUMgICAgIChiYXNlIDE2KQkJVFJBTlNXQVJFCisJCQkJMjEsIFJVRSBEVSA4IE1BSSAxOTQ1CisJCQkJOTQxMTA3IEFSQ1VFSUwKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtNDAtOUQgICAoaGV4KQkJRElHSUJPQVJELCBJTkMuCiswMDQwOUQgICAgIChiYXNlIDE2KQkJRElHSUJPQVJELCBJTkMuCisJCQkJNjQwMCBGTFlJTkcgQ0xPVUQgRFJJVkUKKwkJCQlFREVOIFBSQUlSSUUgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLTlFICAgKGhleCkJCUNPTkNVUlJFTlQgVEVDSE5PTE9HSUVTICBMVEQuCiswMDQwOUUgICAgIChiYXNlIDE2KQkJQ09OQ1VSUkVOVCBURUNITk9MT0dJRVMgIExURC4KKwkJCQk2NTQgVEhFIENSRVNDRU5UCisJCQkJQ09MQ0hFU1RFUiBCVVNJTkVTUyBQQVJLIENPTENIRVNURVIsIEVTUworCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtOUYgICAoaGV4KQkJVGVsY28gU3lzdGVtcywgSW5jLiAKKzAwNDA5RiAgICAgKGJhc2UgMTYpCQlUZWxjbyBTeXN0ZW1zLCBJbmMuIAorCQkJCTE1IEJlcmtzaGlyZSBSb2FkCisJCQkJTWFuc2ZpZWxkLCBNQSAwMjA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQTAgICAoaGV4KQkJR09MRFNUQVIgQ08uLCBMVEQuCiswMDQwQTAgICAgIChiYXNlIDE2KQkJR09MRFNUQVIgQ08uLCBMVEQuCisJCQkJNiBHQSAzQiBNVU5MQUUgWUVPTkdERVVOR1BPCisJCQkJU0VPVUwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC00MC1BMSAgIChoZXgpCQlFUkdPIENPTVBVVElORworMDA0MEExICAgICAoYmFzZSAxNikJCUVSR08gQ09NUFVUSU5HCisJCQkJT05FIElOVEVSQ09OVElORU5UQUwgV0FZCisJCQkJUEVBQk9EWSBNQSAwMTk2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQTIgICAoaGV4KQkJS0lOR1NUQVIgVEVDSE5PTE9HWSBJTkMuCiswMDQwQTIgICAgIChiYXNlIDE2KQkJS0lOR1NUQVIgVEVDSE5PTE9HWSBJTkMuCisJCQkJMS0zRiwgTk8uIDE4NSwgU0VDLiAzLAorCQkJCUNIRU5HIFRFSCBST0FECisJCQkJVEFJUEVJIFRBSVdBTiwgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC00MC1BMyAgIChoZXgpCQlNSUNST1VOSVRZIFNZU1RFTVMgRU5HSU5FRVJJTkcKKzAwNDBBMyAgICAgKGJhc2UgMTYpCQlNSUNST1VOSVRZIFNZU1RFTVMgRU5HSU5FRVJJTkcKKwkJCQkyNTUgQ0FTUElBTiBEUklWRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OS0xMDE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1BNCAgIChoZXgpCQlST1NFIEVMRUNUUk9OSUNTCiswMDQwQTQgICAgIChiYXNlIDE2KQkJUk9TRSBFTEVDVFJPTklDUworCQkJCVAuTy4gQk9YIDc0MjU3MQorCQkJCUhPVVNUT04gVFggNzcyNzQtMjU3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQTUgICAoaGV4KQkJQ0xJTklDT01QIElOVEwuCiswMDQwQTUgICAgIChiYXNlIDE2KQkJQ0xJTklDT01QIElOVEwuCisJCQkJNDUxMCBFWEVDQ1VUSVZFIERSSVZFLVNURS4jMjAwCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1BNiAgIChoZXgpCQlDcmF5LCBJbmMuCiswMDQwQTYgICAgIChiYXNlIDE2KQkJQ3JheSwgSW5jLgorCQkJCTY1NUYgTE9ORSBPQUsgRFJJVkUKKwkJCQlFQUdBTiBNTiA1NTEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQTcgICAoaGV4KQkJSVRBVVRFQyBQSElMQ08gUy5BLgorMDA0MEE3ICAgICAoYmFzZSAxNikJCUlUQVVURUMgUEhJTENPIFMuQS4KKwkJCQlHUlVQTyBJVEFVVEVDIFBISUxDTworCQkJCVJVQSBTQU5UQSBDQVRBUklOQSwgMSAwMzA4Ni0wMjAgU0FPIFBBVUwKKwkJCQlCUkFaSUwKKwkJCQlCUkFaSUwKKworMDAtNDAtQTggICAoaGV4KQkJSU1GIElOVEVSTkFUSU9OQUwgTFRELgorMDA0MEE4ICAgICAoYmFzZSAxNikJCUlNRiBJTlRFUk5BVElPTkFMIExURC4KKwkJCQlOTy41IDIvRiBLSU5HU0ZPUkQgSU5ELiBDRU5UUkUKKwkJCQkxMyBXQU5HIEhPSSBST0FEIEtPV0xPT04gQkFZLCBLT1dMT09OCisJCQkJSE9ORyBLT05HCisJCQkJSE9ORyBLT05HCisKKzAwLTQwLUE5ICAgKGhleCkJCURBVEFDT00gSU5DLgorMDA0MEE5ICAgICAoYmFzZSAxNikJCURBVEFDT00gSU5DLgorCQkJCTE0NiBISUdIV0FZIFJPVVRFIDM0IC0gU1RFIDI1MAorCQkJCUhPTE1ERUwgTkogMDc3MzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUFBICAgKGhleCkJCVZBTE1FVCBBVVRPTUFUSU9OIElOQy4KKzAwNDBBQSAgICAgKGJhc2UgMTYpCQlWQUxNRVQgQVVUT01BVElPTiBJTkMuCisJCQkJUC5PLiBCT1ggMjM3CisJCQkJU0YtMzMxMDEgVEFNUEVSRQorCQkJCUZJTkxBTkQKKwkJCQlGSU5MQU5ECisKKzAwLTQwLUFCICAgKGhleCkJCVJPTEFORCBERyBDT1JQT1JBVElPTgorMDA0MEFCICAgICAoYmFzZSAxNikJCVJPTEFORCBERyBDT1JQT1JBVElPTgorCQkJCTEyMjcgT0tVQk8tQ0hPLCBIQU1BTUFUU1UtU0hJCisJCQkJU0hJWlVPS0EtS0VOCisJCQkJNDMyIEpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtQUMgICAoaGV4KQkJU1VQRVIgV09SS1NUQVRJT04sIElOQy4KKzAwNDBBQyAgICAgKGJhc2UgMTYpCQlTVVBFUiBXT1JLU1RBVElPTiwgSU5DLgorCQkJCTIxOTAgUEFSQUdPTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1BRCAgIChoZXgpCQlTTUEgUkVHRUxTWVNURU1FIEdNQkgKKzAwNDBBRCAgICAgKGJhc2UgMTYpCQlTTUEgUkVHRUxTWVNURU1FIEdNQkgKKwkJCQlIQU5OT1ZFUlNDSEUgU1RSLiAxLTUKKwkJCQlEIDM1MDEgTklFU1RFVEFMCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtQUUgICAoaGV4KQkJREVMVEEgQ09OVFJPTFMsIElOQy4KKzAwNDBBRSAgICAgKGJhc2UgMTYpCQlERUxUQSBDT05UUk9MUywgSU5DLgorCQkJCTEzNTIwIDc4VEggQVZFTlVFCisJCQkJU1VSUkVZLCBCLkMuCisJCQkJQ0FOQURBIFYzVyA4SjYKKwkJCQlDQU5BREEKKworMDAtNDAtQUYgICAoaGV4KQkJRElHSVRBTCBQUk9EVUNUUywgSU5DLgorMDA0MEFGICAgICAoYmFzZSAxNikJCURJR0lUQUwgUFJPRFVDVFMsIElOQy4KKwkJCQk0MTEgV0FWRVJMWSBPQUtTIFJPQUQKKwkJCQlXQUxUSEFNIE1BIDAyMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1CMCAgIChoZXgpCQlCWVRFWCBDT1JQT1JBVElPTiwgRU5HSU5FRVJJTkcKKzAwNDBCMCAgICAgKGJhc2UgMTYpCQlCWVRFWCBDT1JQT1JBVElPTiwgRU5HSU5FRVJJTkcKKwkJCQkxMzg3MyBQQVJLIENFTlRFUiBST0FECisJCQkJSEVSTkRPTiBWQSAyMjA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQjEgICAoaGV4KQkJQ09ET05JQ1MgSU5DLgorMDA0MEIxICAgICAoYmFzZSAxNikJCUNPRE9OSUNTIElOQy4KKwkJCQkxNzk5MSBFTkdMRVdPT0QgRFJJVkUKKwkJCQlNSURETEVCVVJHIEhUUyBPSCA0NDEzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQjIgICAoaGV4KQkJU1lTVEVNRk9SU0NIVU5HCiswMDQwQjIgICAgIChiYXNlIDE2KQkJU1lTVEVNRk9SU0NIVU5HCisJCQkJS09OSUdTVFJBU1NFIDMzQQorCQkJCTUzMDAgQk9OTiAxCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtQjMgICAoaGV4KQkJUGFyVGVjaCBJbmMuCiswMDQwQjMgICAgIChiYXNlIDE2KQkJUGFyVGVjaCBJbmMuCisJCQkJODM4MyBTZW5lY2EgVHVybnBpa2UKKwkJCQlORVcgSEFSVEZPUkQgTlkgMTM0MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUI0ICAgKGhleCkJCU5FWFRDT00gSy5LLgorMDA0MEI0ICAgICAoYmFzZSAxNikJCU5FWFRDT00gSy5LLgorCQkJCTEtMTItMSBTSElCVVlBCisJCQkJU0hJQlVZQS1LVSwgVE9LWU8sIDE1MAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtQjUgICAoaGV4KQkJVklERU8gVEVDSE5PTE9HWSBDT01QVVRFUlMgTFRECiswMDQwQjUgICAgIChiYXNlIDE2KQkJVklERU8gVEVDSE5PTE9HWSBDT01QVVRFUlMgTFRECisJCQkJMzMvRi4sIEJMT0NLICMxLAorCQkJCVRBSSBQSU5HIElORFVTVFJJQUwgQ0VOVEVSIDU3IFRJTkcgS09LIFIKKwkJCQlOLlQuIEhPTkcgS09ORworCQkJCUhPTkcgS09ORworCiswMC00MC1CNiAgIChoZXgpCQlDT01QVVRFUk0gIENPUlBPUkFUSU9OCiswMDQwQjYgICAgIChiYXNlIDE2KQkJQ09NUFVURVJNICBDT1JQT1JBVElPTgorCQkJCTExMSBXT09EIFNUUkVFVAorCQkJCVBJVFRTQlVSR0ggUEEgMTUyMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUI3ICAgKGhleCkJCVNURUFMVEggQ09NUFVURVIgU1lTVEVNUworMDA0MEI3ICAgICAoYmFzZSAxNikJCVNURUFMVEggQ09NUFVURVIgU1lTVEVNUworCQkJCTIzNDEgUkVHSU5BIENULgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1COCAgIChoZXgpCQlJREVBIEFTU09DSUFURVMKKzAwNDBCOCAgICAgKGJhc2UgMTYpCQlJREVBIEFTU09DSUFURVMKKwkJCQkyOSBEVU5IQU0gUk9BRAorCQkJCUJJTExFUklDQSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQjkgICAoaGV4KQkJTUFDUSBFTEVDVFJPTklRVUUgU0EKKzAwNDBCOSAgICAgKGJhc2UgMTYpCQlNQUNRIEVMRUNUUk9OSVFVRSBTQQorCQkJCVJVRSBERSBMJ0FFUk9ORUYgMgorCQkJCUIgLSAxMTQwIEJSVVNTRUxTCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtNDAtQkEgICAoaGV4KQkJQUxMSUFOVCBDT01QVVRFUiBTWVNURU1TIENPUlAuCiswMDQwQkEgICAgIChiYXNlIDE2KQkJQUxMSUFOVCBDT01QVVRFUiBTWVNURU1TIENPUlAuCisJCQkJT05FIE1PTkFSQ0ggRFJJVkUKKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUJCICAgKGhleCkJCUdPTERTVEFSIENBQkxFIENPLiwgTFRELgorMDA0MEJCICAgICAoYmFzZSAxNikJCUdPTERTVEFSIENBQkxFIENPLiwgTFRELgorCQkJCTU1NSwgSE9HWUUtRE9ORywgQU5ZQU5HLVNISQorCQkJCUtZVU5HS0ktRE8sIDQzMC0wODAKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC00MC1CQyAgIChoZXgpCQlBTEdPUklUSE1JQ1MgTFRELgorMDA0MEJDICAgICAoYmFzZSAxNikJCUFMR09SSVRITUlDUyBMVEQuCisJCQkJMyBEUkFZVE9OIFBBUksKKwkJCQlMT05ET04gTjUgMU5VCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTQwLUJEICAgKGhleCkJCVNUQVJMSUdIVCBORVRXT1JLUywgSU5DLgorMDA0MEJEICAgICAoYmFzZSAxNikJCVNUQVJMSUdIVCBORVRXT1JLUywgSU5DLgorCQkJCTQ0NCBDQVNUUk8gU1RSRUVUIFNURQorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUJFICAgKGhleCkJCUJPRUlORyBERUZFTlNFICYgU1BBQ0UKKzAwNDBCRSAgICAgKGJhc2UgMTYpCQlCT0VJTkcgREVGRU5TRSAmIFNQQUNFCisJCQkJUC5PLiBCT1ggMzk5OQorCQkJCU1BSUwgU1RPUCA4OC0xMgorCQkJCVNFQVRUTEUgV0EgOTgxMjQtMjQ5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQkYgICAoaGV4KQkJQ0hBTk5FTCBTWVNURU1TIElOVEVSTidMIElOQy4KKzAwNDBCRiAgICAgKGJhc2UgMTYpCQlDSEFOTkVMIFNZU1RFTVMgSU5URVJOJ0wgSU5DLgorCQkJCTkzIFNPLiBMQSBQQVRFUkEgTEFORQorCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUMwICAgKGhleCkJCVZJU1RBIENPTlRST0xTIENPUlBPUkFUSU9OCiswMDQwQzAgICAgIChiYXNlIDE2KQkJVklTVEEgQ09OVFJPTFMgQ09SUE9SQVRJT04KKwkJCQkyNzgyNSBGUkVNT05UIENPVVJUCisJCQkJVkFMRU5DSUEgQ0EgOTEzNTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUMxICAgKGhleCkJCUJJWkVSQkEtV0VSS0UgV0lMSEVJTSBLUkFVVAorMDA0MEMxICAgICAoYmFzZSAxNikJCUJJWkVSQkEtV0VSS0UgV0lMSEVJTSBLUkFVVAorCQkJCUdNQkggJiBDTy4gS0csCisJCQkJV0lMSEVMTS1LUkFVVC1TVFIuIDY1IFAuTy4gQk9YIDEwMDE2NAorCQkJCUQtNzQ2MCBCQUxJTkdFTiBELTc0NjAgQkFMSU5HRU4gR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtNDAtQzIgICAoaGV4KQkJQVBQTElFRCBDT01QVVRJTkcgREVWSUNFUworMDA0MEMyICAgICAoYmFzZSAxNikJCUFQUExJRUQgQ09NUFVUSU5HIERFVklDRVMKKwkJCQlBTEVQSCBQQVJLCisJCQkJMTAwIFNPVVRIIENBTVBVUyBEUklWRQorCQkJCVRFUlJFIEhBVVRFIElOIDQ3ODAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1DMyAgIChoZXgpCQlGSVNDSEVSIEFORCBQT1JURVIgQ08uCiswMDQwQzMgICAgIChiYXNlIDE2KQkJRklTQ0hFUiBBTkQgUE9SVEVSIENPLgorCQkJCTEyNSBFLiBDT1VOVFkgTElORSBST0FECisJCQkJV0FSTUlOU1RFUiBQQSAxODk3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQzQgICAoaGV4KQkJS0lOS0VJIFNZU1RFTSBDT1JQT1JBVElPTgorMDA0MEM0ICAgICAoYmFzZSAxNikJCUtJTktFSSBTWVNURU0gQ09SUE9SQVRJT04KKwkJCQkxLTIyLTE3LCBLQU1JS0lUQSwgSElSQU5PS1UKKwkJCQlPU0FLQSwgNTQ3CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC1DNSAgIChoZXgpCQlNSUNPTSBDT01NVU5JQ0FUSU9OUyBJTkMuCiswMDQwQzUgICAgIChiYXNlIDE2KQkJTUlDT00gQ09NTVVOSUNBVElPTlMgSU5DLgorCQkJCTQxMDAgTE9TIEFOR0VMRVMgQVZFTlVFCisJCQkJU0lNSSBWQUxMRVkgQ0EgOTMwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUM2ICAgKGhleCkJCUZJQkVSTkVUIFJFU0VBUkNILCBJTkMuCiswMDQwQzYgICAgIChiYXNlIDE2KQkJRklCRVJORVQgUkVTRUFSQ0gsIElOQy4KKwkJCQkxIFRBUkEgQk9VTEVWQVJELSM0MDUKKwkJCQlOQVNIVUEgTkggMDMwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUM3ICAgKGhleCkJCVJVQlkgVEVDSCBDT1JQT1JBVElPTgorMDA0MEM3ICAgICAoYmFzZSAxNikJCVJVQlkgVEVDSCBDT1JQT1JBVElPTgorCQkJCTZGLTEsIE5PLjMsIExBTkUgMjUwLAorCQkJCVNFQy4gNSBOQU5LSU5HIEUuUk9BRAorCQkJCVRBSVBFSSBUQUlXQU4sIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNDAtQzggICAoaGV4KQkJTUlMQU4gVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorMDA0MEM4ICAgICAoYmFzZSAxNikJCU1JTEFOIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKwkJCQk4OTQgUk9TUyBEUklWRS0tU1RFICMxMDUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUM5ICAgKGhleCkJCU5DVUJFCiswMDQwQzkgICAgIChiYXNlIDE2KQkJTkNVQkUKKwkJCQk5MTkgRUFTVCBISUxMU0RBTEUgQkxWRC4KKwkJCQlTVUlURSAyMDAKKwkJCQlGT1NURVIgQ0lUWSBDQSA5NDQwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQ0EgICAoaGV4KQkJRklSU1QgSU5URVJOQVQnTCBDT01QVVRFUiwgSU5DCiswMDQwQ0EgICAgIChiYXNlIDE2KQkJRklSU1QgSU5URVJOQVQnTCBDT01QVVRFUiwgSU5DCisJCQkJRklDIEJ1aWxkaW5nCisJCQkJTm8gMzAwIFlhbmcgR3VhbmcgU3RyZWV0CisJCQkJTmVpaHUgVGFpcGVpIDExNCBUYWlwZWkgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC00MC1DQiAgIChoZXgpCQlMQU5XQU4gVEVDSE5PTE9HSUVTCiswMDQwQ0IgICAgIChiYXNlIDE2KQkJTEFOV0FOIFRFQ0hOT0xPR0lFUworCQkJCTE1NjYgTEEgUFJBREVSQSBEUklWRQorCQkJCUNBTVBCRUxMIENBIDk1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1DQyAgIChoZXgpCQlTSUxDT00gTUFOVUYnRyBURUNITk9MT0dZIElOQy4KKzAwNDBDQyAgICAgKGJhc2UgMTYpCQlTSUxDT00gTUFOVUYnRyBURUNITk9MT0dZIElOQy4KKwkJCQk1NjIwIFRJTUJFUkxFQSBCT1VMRVZBUkQKKwkJCQlNSVNTSVNTQVVHQSwgT05UQVJJTworCQkJCUNBTkFEQSBMNFcgNE02CisJCQkJQ0FOQURBCisKKzAwLTQwLUNEICAgKGhleCkJCVRFUkEgTUlDUk9TWVNURU1TLCBJTkMuCiswMDQwQ0QgICAgIChiYXNlIDE2KQkJVEVSQSBNSUNST1NZU1RFTVMsIElOQy4KKwkJCQkyNTAwIEdSRUFUIEFNRVJJQ0EgUEFSS1dBWQorCQkJCVNURS4gIzI1MAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1DRSAgIChoZXgpCQlORVQtU09VUkNFLCBJTkMuCiswMDQwQ0UgICAgIChiYXNlIDE2KQkJTkVULVNPVVJDRSwgSU5DLgorCQkJCTEyNjUgRUwgQ0FNSU5PIFJFQUwKKwkJCQlTVUlURSAxMDEKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtQ0YgICAoaGV4KQkJU1RSQVdCRVJSWSBUUkVFLCBJTkMuCiswMDQwQ0YgICAgIChiYXNlIDE2KQkJU1RSQVdCRVJSWSBUUkVFLCBJTkMuCisJCQkJMTYwIFNPVVRIIFdPTEZFIFJPQUQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUQwICAgKGhleCkJCU1JVEFDIElOVEVSTkFUSU9OQUwgQ09SUC4KKzAwNDBEMCAgICAgKGJhc2UgMTYpCQlNSVRBQyBJTlRFUk5BVElPTkFMIENPUlAuCisJCQkJOFRIIEZMLiA1ODUgTUlORyBTSEVORyBFLiBSRC4KKwkJCQlUQUlQRUkKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLUQxICAgKGhleCkJCUZVS1VEQSBERU5TSEkgQ08uLCBMVEQuCiswMDQwRDEgICAgIChiYXNlIDE2KQkJRlVLVURBIERFTlNISSBDTy4sIExURC4KKwkJCQlSICYgRCBERVBBUlRNRU5UIE5PLiAxCisJCQkJMzUtOCwgSE9OR08gMi1DSE9NRSwgQlVOS1lPLUtVIFRPS1lPIDExMworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtRDIgICAoaGV4KQkJUEFHSU5FIENPUlBPUkFUSU9OCiswMDQwRDIgICAgIChiYXNlIDE2KQkJUEFHSU5FIENPUlBPUkFUSU9OCisJCQkJMTk2MS1BIENPTkNPVVJTRSBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1EMyAgIChoZXgpCQlLSU1QU0lPTiBJTlRFUk5BVElPTkFMIENPUlAuCiswMDQwRDMgICAgIChiYXNlIDE2KQkJS0lNUFNJT04gSU5URVJOQVRJT05BTCBDT1JQLgorCQkJCTQ3MDEgUEFUUklDSyBIRU5SWSBEUklWRQorCQkJCVNVSVRFIDQwMQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1ENCAgIChoZXgpCQlHQUdFIFRBTEtFUiBDT1JQLgorMDA0MEQ0ICAgICAoYmFzZSAxNikJCUdBR0UgVEFMS0VSIENPUlAuCisJCQkJMTM2ODAgTkUgMTZUSCBTVFJFRVQKKwkJCQlCRUxMRVZVRSBXQSA5ODAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRDUgICAoaGV4KQkJU2FydG9yaXVzIE1lY2hhdHJvbmljcyBUJkggR21iSCAKKzAwNDBENSAgICAgKGJhc2UgMTYpCQlTYXJ0b3JpdXMgTWVjaGF0cm9uaWNzIFQmSCBHbWJIIAorCQkJCVdFRU5ERVIgTEFORFNUUjogOTQgLSAxMDgKKwkJCQkzNDAwIEdPVFRJTkdFTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLUQ2ICAgKGhleCkJCUxPQ0FNQVRJT04gQi5WLgorMDA0MEQ2ICAgICAoYmFzZSAxNikJCUxPQ0FNQVRJT04gQi5WLgorCQkJCVBPU1RCT1ggMzYwCisJCQkJNzUwMCBBSiBFTlNDSEVERQorCQkJCUhPTExBTkQKKwkJCQlORVRIRVJMQU5EUworCiswMC00MC1ENyAgIChoZXgpCQlTVFVESU8gR0VOIElOQy4KKzAwNDBENyAgICAgKGJhc2UgMTYpCQlTVFVESU8gR0VOIElOQy4KKwkJCQkzLTEyLTggVEFLQU5BV0EgIzIwMgorCQkJCU1JTkFUT0tVLCBUT0tZTyAxMDgKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTQwLUQ4ICAgKGhleCkJCU9DRUFOIE9GRklDRSBBVVRPTUFUSU9OIExURC4KKzAwNDBEOCAgICAgKGJhc2UgMTYpCQlPQ0VBTiBPRkZJQ0UgQVVUT01BVElPTiBMVEQuCisJCQkJNFRIICYgNVRIIEZMT09SLCBLQURFUiBCTERHLgorCQkJCTIyIEtBSSBDSEVVTkcgUk9BRCBLT1dMT09OIEJBWSwgS09XTE9PTgorCQkJCUhPTkcgS09ORworCQkJCUhPTkcgS09ORworCiswMC00MC1EOSAgIChoZXgpCQlBTUVSSUNBTiBNRUdBVFJFTkRTIElOQy4KKzAwNDBEOSAgICAgKGJhc2UgMTYpCQlBTUVSSUNBTiBNRUdBVFJFTkRTIElOQy4KKwkJCQk2MTQ1RiBOIEJFTFQgUEFSS1dBWQorCQkJCU5PUkNST1NTIEdBIDMwMDcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1EQSAgIChoZXgpCQlURUxTUEVDIExURAorMDA0MERBICAgICAoYmFzZSAxNikJCVRFTFNQRUMgTFRECisJCQkJTEFOQ0FTVEVSIFBBUktFUiBST0FECisJCQkJUk9DSEVTVEVSIEFJUlBPUlQsIFJPQ0hFU1RFUiBLRU5UIE1FMSAzUQorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC00MC1EQiAgIChoZXgpCQlBRFZBTkNFRCBURUNITklDQUwgU09MVVRJT05TCiswMDQwREIgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgVEVDSE5JQ0FMIFNPTFVUSU9OUworCQkJCTgwNTAgU0VNSU5PTEUgT0ZGSUNFIENFTlRFUgorCQkJCVNVSVRFIDIxMAorCQkJCVNFTUlOT0xFIEZMIDM0NjQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1EQyAgIChoZXgpCQlUUklURUMgRUxFQ1RST05JQyBHTUJICiswMDQwREMgICAgIChiYXNlIDE2KQkJVFJJVEVDIEVMRUNUUk9OSUMgR01CSAorCQkJCVJPQkVSVCBLT0NIIFNUUi4gMzUKKwkJCQlENjUwMCBNQUlOWiA0MgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTQwLUREICAgKGhleCkJCUhPTkcgVEVDSE5PTE9HSUVTCiswMDQwREQgICAgIChiYXNlIDE2KQkJSE9ORyBURUNITk9MT0dJRVMKKwkJCQk1MzIgV0VEREVMTCBEUklWRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtREUgICAoaGV4KQkJRWxzYWcgRGF0YW1hdCBzcGEKKzAwNDBERSAgICAgKGJhc2UgMTYpCQlFbHNhZyBEYXRhbWF0IHNwYQorCQkJCUVMU0FHIFMuUC5BLgorCQkJCVZJQSBHLiBQVUNDSU5JLCAyCisJCQkJR0VOT1ZBICAxNjE1NAorCQkJCUlUQUxZCisKKzAwLTQwLURGICAgKGhleCkJCURJR0FMT0cgU1lTVEVNUywgSU5DLgorMDA0MERGICAgICAoYmFzZSAxNikJCURJR0FMT0cgU1lTVEVNUywgSU5DLgorCQkJCTMxODAgU09VVEggMTY2VEggU1RSRUVUCisJCQkJTkVXIEJFUkxJTiBXSSA1MzE1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRTAgICAoaGV4KQkJQVRPTVdJREUgTFRELgorMDA0MEUwICAgICAoYmFzZSAxNikJCUFUT01XSURFIExURC4KKwkJCQkyMyBUSEUgR1JFRU5XQVkKKwkJCQlPUlBJTkdUT04gQlI1IDJBWQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNDAtRTEgICAoaGV4KQkJTUFSTkVSIElOVEVSTkFUSU9OQUwsIElOQy4KKzAwNDBFMSAgICAgKGJhc2UgMTYpCQlNQVJORVIgSU5URVJOQVRJT05BTCwgSU5DLgorCQkJCTE2MTcgOTNSRCBMQU5FIE5FCisJCQkJQkxBSU5FIE1OIDU1NDQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1FMiAgIChoZXgpCQlNRVNBIFJJREdFIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA0MEUyICAgICAoYmFzZSAxNikJCU1FU0EgUklER0UgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNjcyNSBNRVNBIFJJREdFIFJPQUQtU1RFIzEwMAorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRTMgICAoaGV4KQkJUVVJTiBTWVNURU1TIExURAorMDA0MEUzICAgICAoYmFzZSAxNikJCVFVSU4gU1lTVEVNUyBMVEQKKwkJCQlPQUtMQU5EUyBCVVNJTkVTUyBDRU5UUkUKKwkJCQlPQUtMQU5EUyBQQVJLLCBXT0tJTkdIQU0gQkVSS1MgIFJHMTEgMkZECisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC00MC1FNCAgIChoZXgpCQlFLU0gVEVDSE5PTE9HWSwgSU5DLgorMDA0MEU0ICAgICAoYmFzZSAxNikJCUUtTSBURUNITk9MT0dZLCBJTkMuCisJCQkJOTI0NSBTT1VUSFdFU1QgTklNQlVTIEFWRS4KKwkJCQlCRUFWRVJUT04gT1IgOTcwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUU1ICAgKGhleCkJCVNZQlVTIENPUlBPUkFUSU9OCiswMDQwRTUgICAgIChiYXNlIDE2KQkJU1lCVVMgQ09SUE9SQVRJT04KKwkJCQkyMzAwIFRBTEwgUElORSBEUklWRS1TVEUuICMxMDAKKwkJCQlMQVJHTyBGTCAzNDY0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRTYgICAoaGV4KQkJQy5BLkUuTi4KKzAwNDBFNiAgICAgKGJhc2UgMTYpCQlDLkEuRS5OLgorCQkJCTIsIENIRU1JTiBMQVRFUkFMCisJCQkJRjk0MjkwIFZJTExFTkVVVkUgTEUgUk9JCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLTQwLUU3ICAgKGhleCkJCUFSTk9TIElOU1RSVU1FTlRTICYgQ09NUFVURVIKKzAwNDBFNyAgICAgKGJhc2UgMTYpCQlBUk5PUyBJTlNUUlVNRU5UUyAmIENPTVBVVEVSCisJCQkJU1lTVEVNUyAoR1JPVVApIENPLiwgTFRELgorCQkJCTQvRi4sIEVVUkVLQSBJTkQuIEJMREcuLCAxLTE3IFNBSSBMQVUgS08KKwkJCQlUU1VFTiBXQU4gTi5ULiBIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtNDAtRTggICAoaGV4KQkJQ0hBUkxFUyBSSVZFUiBEQVRBIFNZU1RFTVMsSU5DCiswMDQwRTggICAgIChiYXNlIDE2KQkJQ0hBUkxFUyBSSVZFUiBEQVRBIFNZU1RFTVMsSU5DCisJCQkJOTgzIENPTkNPUkQgU1RSRUVUCisJCQkJRlJBTUlOR0hBTSBNQSAwMTcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRTkgICAoaGV4KQkJQUNDT1JEIFNZU1RFTVMsIElOQy4KKzAwNDBFOSAgICAgKGJhc2UgMTYpCQlBQ0NPUkQgU1lTVEVNUywgSU5DLgorCQkJCTU3MiBWQUxMRVkgV0FZCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUVBICAgKGhleCkJCVBMQUlOIFRSRUUgU1lTVEVNUyBJTkMKKzAwNDBFQSAgICAgKGJhc2UgMTYpCQlQTEFJTiBUUkVFIFNZU1RFTVMgSU5DCisJCQkJQ0hJRUYgRVhFQ1RVVklFIE9GRklDRVIKKwkJCQk1OSBJQkVSIFJPQUQsIFNUSVRUU1ZJTExFIE9OVEFSSU8gSzJTIDFFCisJCQkJQ0FOQURBCisJCQkJQ0FOQURBCisKKzAwLTQwLUVCICAgKGhleCkJCU1BUlRJTiBNQVJJRVRUQSBDT1JQT1JBVElPTgorMDA0MEVCICAgICAoYmFzZSAxNikJCU1BUlRJTiBNQVJJRVRUQSBDT1JQT1JBVElPTgorCQkJCTEyNTA2IExBS0UgVU5ERVJISUxMCisJCQkJT1JMQU5ETyBGTCAzMjgyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRUMgICAoaGV4KQkJTUlLQVNBIFNZU1RFTSBFTkdJTkVFUklORworMDA0MEVDICAgICAoYmFzZSAxNikJCU1JS0FTQSBTWVNURU0gRU5HSU5FRVJJTkcKKwkJCQlDTy4sIExURC4KKwkJCQkxLTMtMTAsIE1JTkFNSS1TSElOTUFDSEksIENIVU8tS1UsIE9TQUtBCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC1FRCAgIChoZXgpCQlORVRXT1JLIENPTlRST0xTIElOVCdOQVRMIElOQy4KKzAwNDBFRCAgICAgKGJhc2UgMTYpCQlORVRXT1JLIENPTlRST0xTIElOVCdOQVRMIElOQy4KKwkJCQk5IFdPT0RMQVdOIEdSRUVOCisJCQkJQ0hBUkxPVFRFIE5DIDI4MjE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1FRSAgIChoZXgpCQlPUFRJTUVNCiswMDQwRUUgICAgIChiYXNlIDE2KQkJT1BUSU1FTQorCQkJCTI5NyBOLiBCRVJOQVJETyBBVkVOVUUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzLTUyMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUVGICAgKGhleCkJCUhZUEVSQ09NLCBJTkMuCiswMDQwRUYgICAgIChiYXNlIDE2KQkJSFlQRVJDT00sIElOQy4KKwkJCQkyODUxIFdFU1QgS0FUSExFRU4gUk9BRAorCQkJCVBIT0VOSVggQVogODUwMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUYwICAgKGhleCkJCU1pY3JvQnJhaW4sSW5jLgorMDA0MEYwICAgICAoYmFzZSAxNikJCU1pY3JvQnJhaW4sSW5jLgorCQkJCVl1emFuIEJsZGcuIDRGLAorCQkJCTIwNSxLaWJ1dGFrZSxOYWdha3V0ZSYjODIwODsgQ2hvLAorCQkJCUFpY2hpLWd1biBBSUNISSAgNDgwLTExMTcKKwkJCQlKQVBBTgorCiswMC00MC1GMSAgIChoZXgpCQlDSFVPIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDA0MEYxICAgICAoYmFzZSAxNikJCUNIVU8gRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJMS05LTksIE1PVE9IT05HTy1DSE8KKwkJCQlIQUNISU9KSS1TSEkgVE9LWU8gMTkyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC00MC1GMiAgIChoZXgpCQlKQU5JQ0ggJiBLTEFTUyBDT01QVVRFUlRFQ0hOSUsKKzAwNDBGMiAgICAgKGJhc2UgMTYpCQlKQU5JQ0ggJiBLTEFTUyBDT01QVVRFUlRFQ0hOSUsKKwkJCQlaVU0gQUxURU4gWk9MTEhBVVMgMjAKKwkJCQlXLTU2MDAgV1VQUEVSVEFMIDIKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC1GMyAgIChoZXgpCQlORVRDT1IKKzAwNDBGMyAgICAgKGJhc2UgMTYpCQlORVRDT1IKKwkJCQk4NTAgQVVCVVJOIENPVVJUCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRjQgICAoaGV4KQkJQ0FNRU8gQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwNDBGNCAgICAgKGJhc2UgMTYpCQlDQU1FTyBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTcxIFNQSVRCUk9PSyBST0FELCBTVEUgIzQxMAorCQkJCU5BU0hVQSBOSCAwMzA2MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUY1ICAgKGhleCkJCU9FTSBFTkdJTkVTCiswMDQwRjUgICAgIChiYXNlIDE2KQkJT0VNIEVOR0lORVMKKwkJCQkxMTkwIERFTEwgQVZFTlVFLCBTVEUuCisJCQkJQ0FNUEJFTEwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUY2ICAgKGhleCkJCUtBVFJPTiBDT01QVVRFUlMgSU5DLgorMDA0MEY2ICAgICAoYmFzZSAxNikJCUtBVFJPTiBDT01QVVRFUlMgSU5DLgorCQkJCTQgRkwuIE5PLiAyLCBBTExFWSAyMworCQkJCUxBTkUgOTEgU0VDLiAxIE5FSSBIVSBST0FECisJCQkJVEFJUEVJIFRBSVBFSSBUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTQwLUY3ICAgKGhleCkJCVBvbGFyb2lkIENvcnBvcmF0aW9uCiswMDQwRjcgICAgIChiYXNlIDE2KQkJUG9sYXJvaWQgQ29ycG9yYXRpb24KKwkJCQkzMDAgQmFrZXIgQXZlbnVlCisJCQkJQ29uY29yZCBNQSAwMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRjggICAoaGV4KQkJU1lTVEVNSEFVUyBESVNDT00KKzAwNDBGOCAgICAgKGJhc2UgMTYpCQlTWVNURU1IQVVTIERJU0NPTQorCQkJCURJU1RSSUJVVEVEIENPTVBVVElORyBHTUJICisJCQkJUk9FUk1PTkRFUlNUUi4gNjE1IEQtNTEwMCBBQUNIRU4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC1GOSAgIChoZXgpCQlDT01CSU5FVAorMDA0MEY5ICAgICAoYmFzZSAxNikJCUNPTUJJTkVUCisJCQkJMzMzIFcuIEVMIENBTUlOTyBSRUFMLVNURSMzMTAKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQwLUZBICAgKGhleCkJCU1JQ1JPQk9BUkRTLCBJTkMuCiswMDQwRkEgICAgIChiYXNlIDE2KQkJTUlDUk9CT0FSRFMsIElOQy4KKwkJCQkzMS04LCBUQUtBU0VDSE8sRlVOQUJBU0hJLUNJVFkKKwkJCQlDSElCQSAyNzMgQ0hJQkEgMjczIEpBUEFOCisJCQkJSkFQQU4KKworMDAtNDAtRkIgICAoaGV4KQkJQ0FTQ0FERSBDT01NVU5JQ0FUSU9OUyBDT1JQLgorMDA0MEZCICAgICAoYmFzZSAxNikJCUNBU0NBREUgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQlQUk9EVUNUSU9OIFFVQUxJVFkgRU5HSU5FRVIKKwkJCQkyMzkgTElUVExFVE9OIFJPQUQtVU5JVCA0QQorCQkJCVdFU1RGT1JEIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1GQyAgIChoZXgpCQlJQlIgQ09NUFVURVIgVEVDSE5JSyBHTUJICiswMDQwRkMgICAgIChiYXNlIDE2KQkJSUJSIENPTVBVVEVSIFRFQ0hOSUsgR01CSAorCQkJCUZSQU5LRlVSVEVSIFNUUi4gMTE0CisJCQkJRCA2MDU2IEhFVVNFTlNUQU1NCisJCQkJV0VTVCBHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC00MC1GRCAgIChoZXgpCQlMWEUKKzAwNDBGRCAgICAgKGJhc2UgMTYpCQlMWEUKKwkJCQkzMDMgUkVTRUFSQ0ggRFJJVkUKKwkJCQlOT1JDUk9TUyBHQSAzMDA5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDAtRkUgICAoaGV4KQkJU1lNUExFWCBDT01NVU5JQ0FUSU9OUworMDA0MEZFICAgICAoYmFzZSAxNikJCVNZTVBMRVggQ09NTVVOSUNBVElPTlMKKwkJCQk1IFJFU0VBUkNIIERSSVZFCisJCQkJQU5OIEFSQk9SIE1JIDQ4MTAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC00MC1GRiAgIChoZXgpCQlURUxFQklUIENPUlBPUkFUSU9OCiswMDQwRkYgICAgIChiYXNlIDE2KQkJVEVMRUJJVCBDT1JQT1JBVElPTgorCQkJCTEzMTUgQ0hFU0FQRUFLRSBURVJSQUNFCisJCQkJU1VOTllWQUxFIENBIDk0MDg5LTExMDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQxLUI0ICAgKGhleCkJCVd1eGkgWmhvbmd4aW5nIE9wdG9lbGVjdHJvbmljcyBUZWNobm9sb2d5IENvLixMdGQuCiswMDQxQjQgICAgIChiYXNlIDE2KQkJV3V4aSBaaG9uZ3hpbmcgT3B0b2VsZWN0cm9uaWNzIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQlCbG9jayA5My1DLCBTY2kuICYgVGVjaC4gSW5kdXN0cnkgcGFyaywKKwkJCQlOZXcgZGlzdHJpY3QuCisJCQkJV3V4aSBKaWFuZ3N1IDIxNDAyOAorCQkJCUNISU5BCisKKzAwLTQyLTUyICAgKGhleCkJCVJMWCBUZWNobm9sb2dpZXMKKzAwNDI1MiAgICAgKGJhc2UgMTYpCQlSTFggVGVjaG5vbG9naWVzCisJCQkJMjUyMzEgR3JvZ3JhbnMgTWlsbCBSZAorCQkJCVN1aXRlIDYwMAorCQkJCVRoZSBXb29kbGFuZHMgVHggNzczODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTQzLUZGICAgKGhleCkJCUtFVFJPTiBTLlIuTC4KKzAwNDNGRiAgICAgKGJhc2UgMTYpCQlLRVRST04gUy5SLkwuCisJCQkJVmlhIEdpdXNlcHBlIFRhbGllcmNpbyBuLiA3CisJCQkJQW5jb25hICA2MDEzMQorCQkJCUlUQUxZCisKKzAwLTQ1LTAxICAgKGhleCkJCVZlcnN1cyBUZWNobm9sb2d5LCBJbmMuCiswMDQ1MDEgICAgIChiYXNlIDE2KQkJVmVyc3VzIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyNjAwIE1pbGxlciBDcmVlayBSb2FkCisJCQkJVHJhdmVyc2UgQ2l0eSBNSSA0OTY4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNDYtNEIgICAoaGV4KQkJSFVBV0VJIFRFQ0hOT0xPR0lFUyBDTy4sTFREIAorMDA0NjRCICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURCAKKwkJCQlIdWF3ZWkgaW5kdXN0cmlhbCBiYXNlLEJhbnRpYW4sTG9uZ2dhbmcKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworMDAtNTAtMDAgICAoaGV4KQkJTkVYTyBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDA1MDAwICAgICAoYmFzZSAxNikJCU5FWE8gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkyTkQgRkwuLCAxNjAsIE1JTkdDSFUgUk9BRAorCQkJCUhTSU5DSFUgQ0lUWSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC0wMSAgIChoZXgpCQlZQU1BU0hJVEEgU1lTVEVNUyBDT1JQLgorMDA1MDAxICAgICAoYmFzZSAxNikJCVlBTUFTSElUQSBTWVNURU1TIENPUlAuCisJCQkJNS03LTEyIElLRUdBTUkKKwkJCQlPVEEtS1UgVE9LWU8gIAorCQkJCUpBUEFOCisKKzAwLTUwLTAyICAgKGhleCkJCU9NTklTRUMgQUcKKzAwNTAwMiAgICAgKGJhc2UgMTYpCQlPTU5JU0VDIEFHCisJCQkJUklFVFNUUkFTU0UgMTQKKwkJCQlDSC04MTA4IERBRUxMSUtPTiAgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtNTAtMDMgICAoaGV4KQkJWHJpdGUgSW5jCiswMDUwMDMgICAgIChiYXNlIDE2KQkJWHJpdGUgSW5jCisJCQkJNDMwMCA0NFRIIFN0cmVldCwgUy5FLgorCQkJCUdyYW5kIFJhcGlkcyBNSSA0OTUxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMDQgICAoaGV4KQkJM0NPTSBDT1JQT1JBVElPTgorMDA1MDA0ICAgICAoYmFzZSAxNikJCTNDT00gQ09SUE9SQVRJT04KKwkJCQk1NDAwIEJBWUZST05UIFBMQVpBCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTA2ICAgKGhleCkJCVRBQyBBQgorMDA1MDA2ICAgICAoYmFzZSAxNikJCVRBQyBBQgorCQkJCUpBR0VSU0hJTExHQVRPTiAxOAorCQkJCTIxMzc1IE1BTE1PICAKKwkJCQlTV0VERU4KKworMDAtNTAtMDcgICAoaGV4KQkJU0lFTUVOUyBURUxFQ09NTVVOSUNBVElPTiBTWVNURU1TIExJTUlURUQKKzAwNTAwNyAgICAgKGJhc2UgMTYpCQlTSUVNRU5TIFRFTEVDT01NVU5JQ0FUSU9OIFNZU1RFTVMgTElNSVRFRAorCQkJCU5PLiA5MCwgU0VDLiAxLCBDSElFTiBLVU8gTk9SVEggUk9BRAorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC0wOCAgIChoZXgpCQlUSVZBIE1JQ1JPQ09NUFVURVIgQ09SUC4gKFRNQykKKzAwNTAwOCAgICAgKGJhc2UgMTYpCQlUSVZBIE1JQ1JPQ09NUFVURVIgQ09SUC4gKFRNQykKKwkJCQk0ODU1MCBGUkVNT05UIEJMVkQuCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMDkgICAoaGV4KQkJUEhJTElQUyBCUk9BREJBTkQgTkVUV09SS1MKKzAwNTAwOSAgICAgKGJhc2UgMTYpCQlQSElMSVBTIEJST0FEQkFORCBORVRXT1JLUworCQkJCTY0IFBFUklNRVRFUiBDRU5UUkUgRUFTVAorCQkJCUFUTEFOVEEgR0EgMzAzNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTBBICAgKGhleCkJCUlSSVMgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDUwMEEgICAgIChiYXNlIDE2KQkJSVJJUyBURUNITk9MT0dJRVMsIElOQy4KKwkJCQlXRVNUTU9SRUxBTkQgSU5EVVNSSUFMIFBBUksKKwkJCQlSLlIuIDEyICBCT1ggMzYKKwkJCQlHUkVFTlNCVVJHIFBBIDE1NjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0wQiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwMEIgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlNL1MgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0wQyAgIChoZXgpCQllLVRlayBMYWJzLCBJbmMuCiswMDUwMEMgICAgIChiYXNlIDE2KQkJZS1UZWsgTGFicywgSW5jLgorCQkJCTEwNTcgRUFTVCBIRU5SSUVUVEEgUkQuCisJCQkJUk9DSEVTVEVSIE5ZIDE0NjIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0wRCAgIChoZXgpCQlTQVRPUkkgRUxFQ1RPUklDIENPLiwgTFRELgorMDA1MDBEICAgICAoYmFzZSAxNikJCVNBVE9SSSBFTEVDVE9SSUMgQ08uLCBMVEQuCisJCQkJVElHVVNBREFJIDM4LTggIE1JRE9SSS1LVQorCQkJCVlPS09IQU1BLCBLQU5BR0FXQSAgCisJCQkJSkFQQU4KKworMDAtNTAtMEUgICAoaGV4KQkJQ0hST01BVElTIE5FVFdPUktTLCBJTkMuCiswMDUwMEUgICAgIChiYXNlIDE2KQkJQ0hST01BVElTIE5FVFdPUktTLCBJTkMuCisJCQkJMyBCRVRIRVNEQSBNRVRSTyBDRU5URVIKKwkJCQlCRVRIRVNEQSBNRCAyMDgxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMEYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MDBGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0xMCAgIChoZXgpCQlOb3ZhTkVUIExlYXJuaW5nLCBJbmMuCiswMDUwMTAgICAgIChiYXNlIDE2KQkJTm92YU5FVCBMZWFybmluZywgSW5jLgorCQkJCTEyNSBXLiBDSFVSQ0ggU1RSRUVULVNURS4gIzMwMAorCQkJCUNIQU1QQUlHTiBJTCA2MTgyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMTIgICAoaGV4KQkJQ0JMIC0gR01CSAorMDA1MDEyICAgICAoYmFzZSAxNikJCUNCTCAtIEdNQkgKKwkJCQlEQVJNU1RBRURURVIgU1RSLiA4MQorCQkJCUQtNjQ4MzkgTVVFTlNURVIgIAorCQkJCUdFUk1BTlkKKworMDAtNTAtMTMgICAoaGV4KQkJQ2hhcGFycmFsIE5ldHdvcmsgU3RvcmFnZQorMDA1MDEzICAgICAoYmFzZSAxNikJCUNoYXBhcnJhbCBOZXR3b3JrIFN0b3JhZ2UKKwkJCQk3NDIwIEUuIERyeSBDcmVlayBQYXJrd2F5CisJCQkJTG9uZ21vbnQgQ08gODA1MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTE0ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNTAxNCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJTS9TLyBTSkEtMgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0xNSAgIChoZXgpCQlCUklHSFQgU1RBUiBFTkdJTkVFUklORworMDA1MDE1ICAgICAoYmFzZSAxNikJCUJSSUdIVCBTVEFSIEVOR0lORUVSSU5HCisJCQkJMTkgRU5GSUVMRCBEUklWRQorCQkJCUFORE9WRVIgTUEgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTE2ICAgKGhleCkJCVNTVC9XT09ESEVBRCBJTkRVU1RSSUVTCiswMDUwMTYgICAgIChiYXNlIDE2KQkJU1NUL1dPT0RIRUFEIElORFVTVFJJRVMKKwkJCQk1MCBOT1JUSExBTkQgUk9BRAorCQkJCVdBVEVSTE9PCisJCQkJT05UQVJJTyBOMlYgMU4zICAKKwkJCQlDQU5BREEKKworMDAtNTAtMTcgICAoaGV4KQkJUlNSIFMuUi5MLgorMDA1MDE3ICAgICAoYmFzZSAxNikJCVJTUiBTLlIuTC4KKwkJCQlWSUEgU0lOSUdBR0xJQSwgMzgKKwkJCQlMVVJBVEUgQ0FDQ0lWSU8gKENPKQorCQkJCTIyMDc1IElUQUxZCisJCQkJSVRBTFkKKworMDAtNTAtMTggICAoaGV4KQkJQU1JVCwgSW5jLgorMDA1MDE4ICAgICAoYmFzZSAxNikJCUFNSVQsIEluYy4KKwkJCQlOby4zMiwgSHVhbmdvbmcgUmQuLAorCQkJCVlvbmdrYW5nIENpdHksIFRhaW5hbiBDb3VudHkgNzEwNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLTE5ICAgKGhleCkJCVNQUklORyBUSURFIE5FVFdPUktTLCBJTkMuCiswMDUwMTkgICAgIChiYXNlIDE2KQkJU1BSSU5HIFRJREUgTkVUV09SS1MsIElOQy4KKwkJCQk4NSBTV0FOU09OIFJPQUQKKwkJCQlCT1hCT1JPVUdIIE1BIDAxNzE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0xQSAgIChoZXgpCQlJUWluVmlzaW9uCiswMDUwMUEgICAgIChiYXNlIDE2KQkJSVFpblZpc2lvbgorCQkJCTMzMTIyIFZhbGxlIFJvYWQKKwkJCQlTYW4gSnVhbiBDYXBpc3RyYW5vIENBIDkyNjc1LTQ4NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTFCICAgKGhleCkJCUFCTCBDQU5BREEsIElOQy4KKzAwNTAxQiAgICAgKGJhc2UgMTYpCQlBQkwgQ0FOQURBLCBJTkMuCisJCQkJODU1MCBDT1RFIERFIExJRVNTRQorCQkJCVNULUxBVVJFTlQgKFFVRUJFQykgSDRUIDFIMiAgCisJCQkJQ0FOQURBCisKKzAwLTUwLTFDICAgKGhleCkJCUpBVE9NIFNZU1RFTVMsIElOQy4KKzAwNTAxQyAgICAgKGJhc2UgMTYpCQlKQVRPTSBTWVNURU1TLCBJTkMuCisJCQkJOTkgTUlDSEFFTCBDT1dQTEFORCBEUklWRQorCQkJCUtBTkFUQQorCQkJCU9OVEFSSU8sIEsyTSAxWDMgIAorCQkJCUNBTkFEQQorCiswMC01MC0xRSAgIChoZXgpCQlNaXJhbmRhIFRlY2hub2xvZ2llcywgSW5jLgorMDA1MDFFICAgICAoYmFzZSAxNikJCU1pcmFuZGEgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMzQ5OSwgRG91Z2xhcyBCLiBGbG9yZWFuaQorCQkJCVNhbml0LUxhdXJlbnQsIFFDCisJCQkJSDRTIDJDNiAKKwkJCQlDQU5BREEKKworMDAtNTAtMUYgICAoaGV4KQkJTVJHIFNZU1RFTVMsIExURC4KKzAwNTAxRiAgICAgKGJhc2UgMTYpCQlNUkcgU1lTVEVNUywgTFRELgorCQkJCVdJTExPVyBIT1VTRSwgU0xBRCBST0FECisJCQkJU1RST1VECisJCQkJR0xPUy4gIEdMNSAxUUcgRW5nbGFuZCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNTAtMjAgICAoaGV4KQkJTUVESUFTVEFSIENPLiwgTFRELgorMDA1MDIwICAgICAoYmFzZSAxNikJCU1FRElBU1RBUiBDTy4sIExURC4KKwkJCQkzRkwsIFNPSFVOIEJMREcuCisJCQkJOTUxLTMzIERPR09LLURPTkcsIEtBTkdOQU0tS1UgU0VPVUwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC01MC0yMSAgIChoZXgpCQlFSVMgSU5URVJOQVRJT05BTCwgSU5DLgorMDA1MDIxICAgICAoYmFzZSAxNikJCUVJUyBJTlRFUk5BVElPTkFMLCBJTkMuCisJCQkJMTM1MSBXQVNISU5HVE9OIEJMVkQuCisJCQkJU1RBTUZPUkQgQ1QgMDY5MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTIyICAgKGhleCkJCVpPTkVUIFRFQ0hOT0xPR1ksIElOQy4KKzAwNTAyMiAgICAgKGJhc2UgMTYpCQlaT05FVCBURUNITk9MT0dZLCBJTkMuCisJCQkJODMwIFJPT00sIEJMREcuIDUzLCAxOTUsIFNFQy40CisJCQkJQ0hVTkcgSFNJVU5HIFJELCBDSFVUVU5HCisJCQkJSFNJTkNIQSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC0yMyAgIChoZXgpCQlQRyBERVNJR04gRUxFQ1RST05JQ1MsIElOQy4KKzAwNTAyMyAgICAgKGJhc2UgMTYpCQlQRyBERVNJR04gRUxFQ1RST05JQ1MsIElOQy4KKwkJCQk0ODcwMCBTVFJVQ1RVUkFMIERSSVZFCisJCQkJQ0hFU1RFUkZJRUxEIE1JIDQ4MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0yNCAgIChoZXgpCQlOQVZJQyBTWVNURU1TLCBJTkMuCiswMDUwMjQgICAgIChiYXNlIDE2KQkJTkFWSUMgU1lTVEVNUywgSU5DLgorCQkJCTc0IENSRVNDRU5UIFNUUkVFVAorCQkJCU5FRURIQU0gTUEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTI2ICAgKGhleCkJCUNPU1lTVEVNUywgSU5DLgorMDA1MDI2ICAgICAoYmFzZSAxNikJCUNPU1lTVEVNUywgSU5DLgorCQkJCTEyNjMgT0FLTUVBRCBQQVJLV0FZCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0yNyAgIChoZXgpCQlHRU5JQ09NIENPUlBPUkFUSU9OCiswMDUwMjcgICAgIChiYXNlIDE2KQkJR0VOSUNPTSBDT1JQT1JBVElPTgorCQkJCTkwMCBDTE9QUEVSIFJPQUQgLSBTVEUuICMxMTAKKwkJCQlHQUlUSEVSU0JVUkcgTUQgMjA4NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTI4ICAgKGhleCkJCUFWQUwgQ09NTVVOSUNBVElPTlMKKzAwNTAyOCAgICAgKGJhc2UgMTYpCQlBVkFMIENPTU1VTklDQVRJT05TCisJCQkJMTc3NyBOT1JUSCBDQUxJRk9STklBIEJMVkQuCisJCQkJV0FMTlVUIENSRUVLIENBIDk0NTk2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0yOSAgIChoZXgpCQkxMzk0IFBSSU5URVIgV09SS0lORyBHUk9VUAorMDA1MDI5ICAgICAoYmFzZSAxNikJCTEzOTQgUFJJTlRFUiBXT1JLSU5HIEdST1VQCisJCQkJUC5PLiBCT1ggMjMxNTgKKwkJCQlTQU4gSk9TRSBDQSA5NTE1MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMkEgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MDJBICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQlNL1MgU0pBLTIKKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMkIgICAoaGV4KQkJR0VOUkFEIExURC4KKzAwNTAyQiAgICAgKGJhc2UgMTYpCQlHRU5SQUQgTFRELgorCQkJCU9SSU9OIEJVU0lORVNTIFBBUksKKwkJCQlCSVJESEFMTCBMQU5FIFNUT0NLUE9SVCwgQ0hFU0hJUkUKKwkJCQlVTklURUQgS0lOR0RPTSBTSzMgT1hHCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNTAtMkMgICAoaGV4KQkJU09ZTyBDT01QVVRFUiwgSU5DLgorMDA1MDJDICAgICAoYmFzZSAxNikJCVNPWU8gQ09NUFVURVIsIElOQy4KKwkJCQlOTy4gMjEgV1UtS1VORyA1IFJELgorCQkJCUhTSU5HIENIVUFORyBDSVRZIFRBSVBFSSBIU0lFTgorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC0yRCAgIChoZXgpCQlBQ0NFTCwgSU5DLgorMDA1MDJEICAgICAoYmFzZSAxNikJCUFDQ0VMLCBJTkMuCisJCQkJMUYsIE5PLiA3LCBSJkQgMVNUIFJPQUQKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU5DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtMkUgICAoaGV4KQkJQ0FNQkVYIENPUlBPUkFUSU9OCiswMDUwMkUgICAgIChiYXNlIDE2KQkJQ0FNQkVYIENPUlBPUkFUSU9OCisJCQkJMTE1IEZsYW5kZXJzIFJvYWQKKwkJCQlXZXN0Ym9yb3VnaCBNQSAwMTU4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMkYgICAoaGV4KQkJVG9sbEJyaWRnZSBUZWNobm9sb2dpZXMsIEluYy4KKzAwNTAyRiAgICAgKGJhc2UgMTYpCQlUb2xsQnJpZGdlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTg3MiBIRVJNT1NBIERSSVZFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0zMCAgIChoZXgpCQlGVVRVUkUgUExVUyBTWVNURU1TCiswMDUwMzAgICAgIChiYXNlIDE2KQkJRlVUVVJFIFBMVVMgU1lTVEVNUworCQkJCTM2IE9MREUgRU5HTElTSCBSRC4KKwkJCQlCRURGT1JEIE5IIDAzMTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0zMSAgIChoZXgpCQlBRVJPRkxFWCBMQUJPUkFUT1JJRVMsIElOQy4KKzAwNTAzMSAgICAgKGJhc2UgMTYpCQlBRVJPRkxFWCBMQUJPUkFUT1JJRVMsIElOQy4KKwkJCQkzNSBTT1VUSCBTRVJWSUNFIFJPQUQKKwkJCQlQTEFJTlZJRVcgTlkgMTE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTMyICAgKGhleCkJCVBJQ0FaTyBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDA1MDMyICAgICAoYmFzZSAxNikJCVBJQ0FaTyBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTYxIERBR0dFVFQgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtMzMgICAoaGV4KQkJTUFZQU4gTkVUV09SS1MKKzAwNTAzMyAgICAgKGJhc2UgMTYpCQlNQVlBTiBORVRXT1JLUworCQkJCTMzNTAgU0NPVFQgQkxWRC4gLSBCTERHLiAjOQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0zNiAgIChoZXgpCQlORVRDQU0sIExURC4KKzAwNTAzNiAgICAgKGJhc2UgMTYpCQlORVRDQU0sIExURC4KKwkJCQk2MDcxIE4uIFBBU0VPIFpBTERJVkFSCisJCQkJVFVDU09OIEFaIDg1NzUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC0zNyAgIChoZXgpCQlLT0dBIEVMRUNUUk9OSUNTIENPLgorMDA1MDM3ICAgICAoYmFzZSAxNikJCUtPR0EgRUxFQ1RST05JQ1MgQ08uCisJCQkJNS04LTEwLCBURUhBUkEsIFJJVFRPLUNITworCQkJCUtVUklUQSBHVU4KKwkJCQlTSElHQSwgNDIwLTMwNDcgIAorCQkJCUpBUEFOCisKKzAwLTUwLTM4ICAgKGhleCkJCURBSU4gVEVMRUNPTSBDTy4sIExURC4KKzAwNTAzOCAgICAgKGJhc2UgMTYpCQlEQUlOIFRFTEVDT00gQ08uLCBMVEQuCisJCQkJMk5EIEZsci4sIE9ILVNVTkcgQkxERy4gIzItMjgKKwkJCQlZQU5HSkFFLURPTkcsIFNFT0NITy1HVSBTRU9VTCAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNTAtMzkgICAoaGV4KQkJTUFSSU5FUiBORVRXT1JLUworMDA1MDM5ICAgICAoYmFzZSAxNikJCU1BUklORVIgTkVUV09SS1MKKwkJCQkxNTg1IFMuIE1BTkNIRVNURVIgQVZFLgorCQkJCUFOQUhFSU0gQ0EgOTI4MDItMjkwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtM0EgICAoaGV4KQkJREFUT05HIEVMRUNUUk9OSUNTIExURC4KKzAwNTAzQSAgICAgKGJhc2UgMTYpCQlEQVRPTkcgRUxFQ1RST05JQ1MgTFRELgorCQkJCUNMQVlUT04gV09PRCBDTE9TRQorCQkJCVdFU1QgUEFSSworCQkJCUxlZWRzIExTMTYgNlFFICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC01MC0zQiAgIChoZXgpCQlNRURJQUZJUkUgQ09SUE9SQVRJT04KKzAwNTAzQiAgICAgKGJhc2UgMTYpCQlNRURJQUZJUkUgQ09SUE9SQVRJT04KKwkJCQkxMTMxNyBGUkVERVJJQ0sgQVZFTlVFCisJCQkJQkVMVFNWSUxMRSBNRCAyMDcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtM0MgICAoaGV4KQkJVFNJTkdIVUEgTk9WRUwgRUxFQ1RST05JQ1MKKzAwNTAzQyAgICAgKGJhc2UgMTYpCQlUU0lOR0hVQSBOT1ZFTCBFTEVDVFJPTklDUworCQkJCUNPLiwgTFRELgorCQkJCVJPT00gMTIwNSwgSFVBWUUgQlVJTERJTkcgVFNJTkdIVUEgVU5JVkUKKwkJCQkxMDAwODQgMTAwMDg0IENISU5BCisJCQkJQ0hJTkEKKworMDAtNTAtM0UgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MDNFICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJTS9TLyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTNGICAgKGhleCkJCUFOQ0hPUiBHQU1FUworMDA1MDNGICAgICAoYmFzZSAxNikJCUFOQ0hPUiBHQU1FUworCQkJCTgxNSBQSUxPVCBST0FELCBTdWl0ZSBHCisJCQkJTEFTIFZFR0FTIE5WIDg5MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC00MCAgIChoZXgpCQlQYW5hc29uaWMgRWxlY3RyaWMgV29ya3MgQ28uLCBMdGQuCiswMDUwNDAgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIEVsZWN0cmljIFdvcmtzIENvLiwgTHRkLgorCQkJCVRzdS1GYWN0b3J5LCAxNjY4LCBGdWppa2F0YQorCQkJCVRzdS1zaGkgTWllLWtlbiA1MTQtODU1NQorCQkJCUpBUEFOCisKKzAwLTUwLTQxICAgKGhleCkJCUNvcmV0cm9uaWMgQ29ycG9yYXRpb24KKzAwNTA0MSAgICAgKGJhc2UgMTYpCQlDb3JldHJvbmljIENvcnBvcmF0aW9uCisJCQkJTk8uMTEsIExJIEhTSU4gUkQuCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksgSElTTkNIVQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtNDIgICAoaGV4KQkJU0NJIE1BTlVGQUNUVVJJTkcgU0lOR0FQT1JFIFBURSwgTFRELgorMDA1MDQyICAgICAoYmFzZSAxNikJCVNDSSBNQU5VRkFDVFVSSU5HIFNJTkdBUE9SRSBQVEUsIExURC4KKwkJCQkzIERFUE9UIENMT1NFCisJCQkJU0lOR0FQT1JFIDEwOTg0MCAKKwkJCQlTSU5HQVBPUkUKKworMDAtNTAtNDMgICAoaGV4KQkJTUFSVkVMTCBTRU1JQ09ORFVDVE9SLCBJTkMuCiswMDUwNDMgICAgIChiYXNlIDE2KQkJTUFSVkVMTCBTRU1JQ09ORFVDVE9SLCBJTkMuCisJCQkJNjQ1IEFMTUFOT1IgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC00NCAgIChoZXgpCQlBU0FDQSBDT1JQT1JBVElPTgorMDA1MDQ0ICAgICAoYmFzZSAxNikJCUFTQUNBIENPUlBPUkFUSU9OCisJCQkJNDIwIENPUlBPUkFURSBDSVJDTEUsIFVuaXQgSAorCQkJCUdPTERFTiBDTyA4MDQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNDUgICAoaGV4KQkJUklPV09SS1MgU09MVVRJT05TLCBJTkMuCiswMDUwNDUgICAgIChiYXNlIDE2KQkJUklPV09SS1MgU09MVVRJT05TLCBJTkMuCisJCQkJNEYsIE5PLjI4LCBMQU5FIDU4MworCQkJCUpVSS1LV0FORyBST0FEIFRBSVBFSSwgIDExNDU3CisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLTQ2ICAgKGhleCkJCU1FTklDWCBJTlRFUk5BVElPTkFMIENPLiwgTFRELgorMDA1MDQ2ICAgICAoYmFzZSAxNikJCU1FTklDWCBJTlRFUk5BVElPTkFMIENPLiwgTFRELgorCQkJCU5PLjksIE1JTkcgVFNVTiBST0FECisJCQkJQ0hVVFVORywgSFNJTkNIVQorCQkJCVRBSVdBTiAzMTAgVEFJV0FOIDMxMCBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLTQ3ICAgKGhleCkJCVBSSVZBVEUKKzAwNTA0NyAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDAtNTAtNDggICAoaGV4KQkJSU5GT0xJQlJJQQorMDA1MDQ4ICAgICAoYmFzZSAxNikJCUlORk9MSUJSSUEKKwkJCQk0MTEgV0FWRVJMWSBPQUtTIFJELVNURSAjMzIzCisJCQkJV0FMVEhBTSBNQSAwMjE1NC04NDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC00OSAgIChoZXgpCQlBcmJvciBOZXR3b3JrcyBJbmMKKzAwNTA0OSAgICAgKGJhc2UgMTYpCQlBcmJvciBOZXR3b3JrcyBJbmMKKwkJCQk2IE9tbmkgV2F5CisJCQkJQ2hlbG1zZm9yZCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNEEgICAoaGV4KQkJRUxURUNPIEEuUy4KKzAwNTA0QSAgICAgKGJhc2UgMTYpCQlFTFRFQ08gQS5TLgorCQkJCVJPU0lOU0tBIENFU1RBICBQLk8uIEJPWCBDLTkKKwkJCQkwMTAwMSBaSUxJTkEKKwkJCQlTTE9WQUtJQQorCQkJCVNMT1ZBS0lBCisKKzAwLTUwLTRCICAgKGhleCkJCUJBUkNPTkVUIE4uVi4KKzAwNTA0QiAgICAgKGJhc2UgMTYpCQlCQVJDT05FVCBOLlYuCisJCQkJTFVJUEFBUkRTVFJBQVQgMTIKKwkJCQk4NTAwIEtPUlRSSUpLCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtNTAtNEMgICAoaGV4KQkJR2FsaWwgTW90aW9uIENvbnRyb2wKKzAwNTA0QyAgICAgKGJhc2UgMTYpCQlHYWxpbCBNb3Rpb24gQ29udHJvbAorCQkJCTI3MCBUZWNobm9sb2d5IFdheQorCQkJCVJvY2tsaW4gQ0EgOTU3NjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTREICAgKGhleCkJCVRva3lvIEVsZWN0cm9uIERldmljZSBMaW1pdGVkCiswMDUwNEQgICAgIChiYXNlIDE2KQkJVG9reW8gRWxlY3Ryb24gRGV2aWNlIExpbWl0ZWQKKwkJCQkxLCBIaWdhc2hpa2F0YS1tYWNoaSwgVHN1enVraS1rdSwKKwkJCQlZb2tvaGFtYS1zaGkgS2FuYWdhd2Eta2VuIAorCQkJCUpBUEFOCisKKzAwLTUwLTRFICAgKGhleCkJCVNJRVJSQSBNT05JVE9SIENPUlAuCiswMDUwNEUgICAgIChiYXNlIDE2KQkJU0lFUlJBIE1PTklUT1IgQ09SUC4KKwkJCQkxOTkxIFRBUk9CIENPVVJUCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTRGICAgKGhleCkJCU9MRU5DT00gRUxFQ1RST05JQ1MKKzAwNTA0RiAgICAgKGJhc2UgMTYpCQlPTEVOQ09NIEVMRUNUUk9OSUNTCisJCQkJU09MVEFNIElORFVTVFJJQUwgUEFSSworCQkJCVAuTy4gQk9YIDE5NgorCQkJCVlPS05FQU0gMjA2OTIgIAorCQkJCUlTUkFFTAorCiswMC01MC01MCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwNTAgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNTEgICAoaGV4KQkJSVdBVFNVIEVMRUNUUklDIENPLiwgTFRELgorMDA1MDUxICAgICAoYmFzZSAxNikJCUlXQVRTVSBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQk3LTQxLCBLVUdBWUFNQSAxLUNIT01FCisJCQkJU1VHSU5BTUktS1UsIFRPS1lPIDE2OC04NTAxICAKKwkJCQlKQVBBTgorCiswMC01MC01MiAgIChoZXgpCQlUSUFSQSBORVRXT1JLUywgSU5DLgorMDA1MDUyICAgICAoYmFzZSAxNikJCVRJQVJBIE5FVFdPUktTLCBJTkMuCisJCQkJMTEzIEZPT1JJRVIgQVZFTlVFCisJCQkJRlJFTU9OVCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNTMgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MDUzICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFLVNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNTQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA1MDU0ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQlNL1MgU0pBLTIKKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNTUgICAoaGV4KQkJRE9NUyBBL1MKKzAwNTA1NSAgICAgKGJhc2UgMTYpCQlET01TIEEvUworCQkJCUZPUk1FUlZBTkdFTiAyOAorCQkJCURLLTI2MDAgR0xPU1RSVVAKKwkJCQlERU5NQVJLCisJCQkJREVOTUFSSworCiswMC01MC01NiAgIChoZXgpCQlWTXdhcmUsIEluYy4KKzAwNTA1NiAgICAgKGJhc2UgMTYpCQlWTXdhcmUsIEluYy4KKwkJCQkzNDAxIEhpbGx2aWV3IEF2ZW51ZQorCQkJCVBBTE8gQUxUTyBDQSA5NDMwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNTcgICAoaGV4KQkJQlJPQURCQU5EIEFDQ0VTUyBTWVNURU1TCiswMDUwNTcgICAgIChiYXNlIDE2KQkJQlJPQURCQU5EIEFDQ0VTUyBTWVNURU1TCisJCQkJMjAxIEZPUkVTVCBTVFJFRVQKKwkJCQlNQVJMQk9ST1VHSCBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNTggICAoaGV4KQkJVmVnYVN0cmVhbSBHcm91cCBMaW10ZWQKKzAwNTA1OCAgICAgKGJhc2UgMTYpCQlWZWdhU3RyZWFtIEdyb3VwIExpbXRlZAorCQkJCUFzbWVjIENlbnRyZSwgRWFnbGUgSG91c2UKKwkJCQlUaGUgUmluZworCQkJCUJyYWNrbmVsbCBCZXJrc2hpcmUgUkcxMiAxSEIKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC01MC01OSAgIChoZXgpCQlpQkFITgorMDA1MDU5ICAgICAoYmFzZSAxNikJCWlCQUhOCisJCQkJMTA3NTcgUy4gUml2ZXIgRnJvbnQgUGFya3dheQorCQkJCVN1aXRlIDMwMAorCQkJCVNvdXRoIEpvcmRhbiBVVCA4NDA5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNUEgICAoaGV4KQkJTkVUV09SSyBBTENIRU1ZLCBJTkMuCiswMDUwNUEgICAgIChiYXNlIDE2KQkJTkVUV09SSyBBTENIRU1ZLCBJTkMuCisJCQkJMTUyMS41IFBBQ0lGSUMgQVZFTlVFCisJCQkJU0FOVEEgQ1JVWiBDQSA5NTA2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNUIgICAoaGV4KQkJS0FXQVNBS0kgTFNJIFUuUy5BLiwgSU5DLgorMDA1MDVCICAgICAoYmFzZSAxNikJCUtBV0FTQUtJIExTSSBVLlMuQS4sIElOQy4KKwkJCQkyNTcwIE5PUlRIRklSU1QgU1RSRUVUCisJCQkJU1VJVEUgIzMwMQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC01QyAgIChoZXgpCQlUVU5ETyBDT1JQT1JBVElPTgorMDA1MDVDICAgICAoYmFzZSAxNikJCVRVTkRPIENPUlBPUkFUSU9OCisJCQkJNyBHSUJPUkVJIElTUkFFTCBTVFJFRVQKKwkJCQlOQVRBTllBIDQyNTA0ICAKKwkJCQlJU1JBRUwKKworMDAtNTAtNUUgICAoaGV4KQkJRElHSVRFSyBNSUNST0xPR0lDIFMuQS4KKzAwNTA1RSAgICAgKGJhc2UgMTYpCQlESUdJVEVLIE1JQ1JPTE9HSUMgUy5BLgorCQkJCVNBTlQgSk9BTiBERSBMQSBTQUxMRSA2CisJCQkJRTA4MDIyIEJBUkNFTE9OQQorCQkJCVNQQUlOCisJCQkJU1BBSU4KKworMDAtNTAtNUYgICAoaGV4KQkJQlJBTkQgSU5OT1ZBVE9SUworMDA1MDVGICAgICAoYmFzZSAxNikJCUJSQU5EIElOTk9WQVRPUlMKKwkJCQlERSBQSU5DSyBBUlQgNTQKKwkJCQk1Njc0IENDIE5VRU5FTiAgCisJCQkJTkVUSEVSTEFORFMKKworMDAtNTAtNjAgICAoaGV4KQkJVEFOREJFUkcgVEVMRUNPTSBBUworMDA1MDYwICAgICAoYmFzZSAxNikJCVRBTkRCRVJHIFRFTEVDT00gQVMKKwkJCQlQaGlsaXAgUGVkZXJzZW5zIHZlaSAyMAorCQkJCTEzNjEgTHlzYWtlciAKKwkJCQlOT1JXQVkKKworMDAtNTAtNjIgICAoaGV4KQkJS09VV0VMTCBFTEVDVFJPTklDUyBDT1JQLiAgKioKKzAwNTA2MiAgICAgKGJhc2UgMTYpCQlLT1VXRUxMIEVMRUNUUk9OSUNTIENPUlAuICAqKgorCQkJCTdGLCBOTy45OSwgTkFOLUtBTkcgUk9BRAorCQkJCVNFQy4gMywgVEFJUEVJCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC02MyAgIChoZXgpCQlPWSBDT01TRUwgU1lTVEVNIEFCCiswMDUwNjMgICAgIChiYXNlIDE2KQkJT1kgQ09NU0VMIFNZU1RFTSBBQgorCQkJCVRFR0VMQlJVS1NHQVRBTiA1LTcKKwkJCQlGSU4tNjUxMDAgVkFTQSAgCisJCQkJRklOTEFORAorCiswMC01MC02NCAgIChoZXgpCQlDQUUgRUxFQ1RST05JQ1MKKzAwNTA2NCAgICAgKGJhc2UgMTYpCQlDQUUgRUxFQ1RST05JQ1MKKwkJCQlQLk8uIEJPWCAxODAwCisJCQkJU1QuIExBVVJFTlQsIFFVRUJFQyBINEwgNFg0ICAKKwkJCQlDQU5BREEKKworMDAtNTAtNjUgICAoaGV4KQkJVERLLUxhbWJkYSBDb3Jwb3JhdGlvbgorMDA1MDY1ICAgICAoYmFzZSAxNikJCVRESy1MYW1iZGEgQ29ycG9yYXRpb24KKwkJCQkzNi0xIEthc3VtaW5vc2F0bworCQkJCUFtaS1NYWNoaSBJbmFzaGlraS1HdW4gSWJhcmFraSwgMzAwLTAzOTYKKwkJCQlKQVBBTgorCiswMC01MC02NiAgIChoZXgpCQlBdGVjb00gR21iSCBhZHZhbmNlZCB0ZWxlY29tdW5pY2F0aW9uIG1vZHVsZXMKKzAwNTA2NiAgICAgKGJhc2UgMTYpCQlBdGVjb00gR21iSCBhZHZhbmNlZCB0ZWxlY29tdW5pY2F0aW9uIG1vZHVsZXMKKwkJCQlLQUlTRVJTVFIuIDEwMAorCQkJCUQtNTIxMzQgSEVSWk9HRU5SQVRIICAKKwkJCQlHRVJNQU5ZCisKKzAwLTUwLTY3ICAgKGhleCkJCUFFUk9DT01NLCBJTkMuCiswMDUwNjcgICAgIChiYXNlIDE2KQkJQUVST0NPTU0sIElOQy4KKwkJCQkxMzI1NiBXLiA5OFRIIFNUUkVFVAorCQkJCUxFTkVYQSBLUyA2NjIxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNjggICAoaGV4KQkJRUxFQ1RST05JQyBJTkRVU1RSSUVTIEFTU09DSUFUSU9OCiswMDUwNjggICAgIChiYXNlIDE2KQkJRUxFQ1RST05JQyBJTkRVU1RSSUVTIEFTU09DSUFUSU9OCisJCQkJMjUwMCBXSUxTT04gQkxWRC4KKwkJCQlBUkxJTkdUT04gVkEgMjIyMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTY5ICAgKGhleCkJCVBpeFN0cmVhbSBJbmNvcnBvcmF0ZWQKKzAwNTA2OSAgICAgKGJhc2UgMTYpCQlQaXhTdHJlYW0gSW5jb3Jwb3JhdGVkCisJCQkJMTgwIENPTFVNQklBIFNULiBXLgorCQkJCVdBVEVSTE9PCisJCQkJT250YXJpbyBOMkwgM0wzICAKKwkJCQlDQU5BREEKKworMDAtNTAtNkEgICAoaGV4KQkJRURFVkEsIElOQy4KKzAwNTA2QSAgICAgKGJhc2UgMTYpCQlFREVWQSwgSU5DLgorCQkJCTI5OCBTLiBTVU5OWVZBTEUgQVZFLiAtICMyMDgKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTZCICAgKGhleCkJCVNQWC1BVEVHCiswMDUwNkIgICAgIChiYXNlIDE2KQkJU1BYLUFURUcKKwkJCQk4MDIgUy4gTUFJTiBTVFJFRVQKKwkJCQlXQVlMQU5EIE1JIDQ5MzQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC02QyAgIChoZXgpCQlCZWlqZXIgRWxlY3Ryb25pY3MgUHJvZHVjdHMgQUIKKzAwNTA2QyAgICAgKGJhc2UgMTYpCQlCZWlqZXIgRWxlY3Ryb25pY3MgUHJvZHVjdHMgQUIKKwkJCQlCb3ggNDI2CisJCQkJU0UtMjAxIDI0IE1hbG1vZSAKKwkJCQlTV0VERU4KKworMDAtNTAtNkQgICAoaGV4KQkJVklERU9KRVQgU1lTVEVNUworMDA1MDZEICAgICAoYmFzZSAxNikJCVZJREVPSkVUIFNZU1RFTVMKKwkJCQlJTlRFUk5BVElPTkFMIElOQy4KKwkJCQkxNTAwIE1JVFRFTCBCTFZELgorCQkJCVdPT0REQUxFIElMIDYwMDkxLTEwNzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTZFICAgKGhleCkJCUNPUkRFUiBFTkdJTkVFUklORyBDT1JQT1JBVElPTgorMDA1MDZFICAgICAoYmFzZSAxNikJCUNPUkRFUiBFTkdJTkVFUklORyBDT1JQT1JBVElPTgorCQkJCTE1MSBLQUxNVVMgRFJJVkUgLSBTVEUgI0ExMDMKKwkJCQlDT1NUQSBNRVNBIENBIDkyNjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC02RiAgIChoZXgpCQlHLUNPTk5FQ1QKKzAwNTA2RiAgICAgKGJhc2UgMTYpCQlHLUNPTk5FQ1QKKwkJCQlQLk8uIEJPWCAyMjAwCisJCQkJSEVSWkxJWUEgNDYxMjAgIAorCQkJCUlTUkFFTAorCiswMC01MC03MCAgIChoZXgpCQlDSEFJTlRFQ0ggQ09NUFVURVIgQ08uLCBMVEQuCiswMDUwNzAgICAgIChiYXNlIDE2KQkJQ0hBSU5URUNIIENPTVBVVEVSIENPLiwgTFRELgorCQkJCTVUSCBGLCBBTExFWSAyLCBMQU5FIDIyMgorCQkJCUxJRU4tQ0hFTkcgUkQuLCBDSFVORy1ITyBUQUlQRUktSFNJRU4KKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC03MSAgIChoZXgpCQlBSVdBIENPLiwgTFRELgorMDA1MDcxICAgICAoYmFzZSAxNikJCUFJV0EgQ08uLCBMVEQuCisJCQkJMS0xMSwgS0FNSVRPTUFUU1VSSSA0LUNIT01FCisJCQkJVVRTVU5PTUlZQS1TSEksIFRPQ0hJR0ktS0VOIDMyMC04NSAgCisJCQkJSkFQQU4KKworMDAtNTAtNzIgICAoaGV4KQkJQ09SVklTIENPUlBPUkFUSU9OCiswMDUwNzIgICAgIChiYXNlIDE2KQkJQ09SVklTIENPUlBPUkFUSU9OCisJCQkJODMyMCBHVUlMRk9SRCBST0FECisJCQkJQ09MVU1CSUEgTUQgMjEwNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTczICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNTA3MyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCU0vUyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTc0ICAgKGhleCkJCUFEVkFOQ0VEIEhJLVRFQ0ggQ09SUC4KKzAwNTA3NCAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBISS1URUNIIENPUlAuCisJCQkJMTk5MCBFQVNUIEdSQU5EIEFWRS4KKwkJCQlFTCBTRUdVTkRPIENBIDkwNTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC03NSAgIChoZXgpCQlLRVNUUkVMIFNPTFVUSU9OUworMDA1MDc1ICAgICAoYmFzZSAxNikJCUtFU1RSRUwgU09MVVRJT05TCisJCQkJMjM3MCBDSEFSTEVTVE9OIFJPQUQKKwkJCQlNVC4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtNzYgICAoaGV4KQkJSUJNIENvcnAKKzAwNTA3NiAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQIE8gQm94IDEyMTk1CisJCQkJUmVlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTc3ICAgKGhleCkJCVBST0xJRklDIFRFQ0hOT0xPR1ksIElOQy4KKzAwNTA3NyAgICAgKGJhc2UgMTYpCQlQUk9MSUZJQyBURUNITk9MT0dZLCBJTkMuCisJCQkJNkYgMSwgTEFORSA1MSwgU0VDIDEKKwkJCQlOQU4tQ0hBTiBST0FEIFRBSVBFSQorCQkJCTEwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtNzggICAoaGV4KQkJTUVHQVRPTiBIT1VTRSwgTFRELgorMDA1MDc4ICAgICAoYmFzZSAxNikJCU1FR0FUT04gSE9VU0UsIExURC4KKwkJCQlaSVA6IDIyNCBOTy4xLTMtNSBOQUtBTUFDSElCQUkKKwkJCQlUU1VEVUtJIFdBUkQKKwkJCQlZT0tPSEFNQSAgCisJCQkJSkFQQU4KKworMDAtNTAtNzkgICAoaGV4KQkJUFJJVkFURQorMDA1MDc5ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC01MC03QSAgIChoZXgpCQlYUEVFRCwgSU5DLgorMDA1MDdBICAgICAoYmFzZSAxNikJCVhQRUVELCBJTkMuCisJCQkJNDY5OSBPTEQgSVJPTlNJREVTIERSSVZFCisJCQkJU1VJVEUgIzMwMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC03QiAgIChoZXgpCQlNRVJMT1QgQ09NTVVOSUNBVElPTlMKKzAwNTA3QiAgICAgKGJhc2UgMTYpCQlNRVJMT1QgQ09NTVVOSUNBVElPTlMKKwkJCQlCRVJLU0hJUkUgQ09SUE9SQVRFIFBBUksKKwkJCQk0IEJFUktTSElSRSBCTFZELgorCQkJCUJFVEhFTCBDVCAwNjgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtN0MgICAoaGV4KQkJVklERU9DT04gQUcKKzAwNTA3QyAgICAgKGJhc2UgMTYpCQlWSURFT0NPTiBBRworCQkJCUFMQkVSVC1TQ0hXRUlUWkVSLVNUUi4gNjQKKwkJCQlELTgxNzM1IE1VTklDSAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTUwLTdEICAgKGhleCkJCUlGUAorMDA1MDdEICAgICAoYmFzZSAxNikJCUlGUAorCQkJCUxFU1NJTkdTVFIuIDQKKwkJCQlELTc4MzE1IFJBRE9MRlpFTEwgIAorCQkJCUdFUk1BTlkKKworMDAtNTAtN0UgICAoaGV4KQkJTkVXRVIgVEVDSE5PTE9HWQorMDA1MDdFICAgICAoYmFzZSAxNikJCU5FV0VSIFRFQ0hOT0xPR1kKKwkJCQk0ODQ4IFdFU1QgSVJWSU5HIFNULgorCQkJCVdJQ0hJVEEgS1MgNjcyMDktMjYyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtN0YgICAoaGV4KQkJRHJheVRlayBDb3JwLgorMDA1MDdGICAgICAoYmFzZSAxNikJCURyYXlUZWsgQ29ycC4KKwkJCQkyNiwgRnVzaGluZyBSZC4KKwkJCQlIc2luY2h1IEluZHVzdHJpYWwgUGFyaworCQkJCUhzaW5jaHUgSHVrb3UgMzAzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC04MCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwODAgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCU0vUyBTSkEtMgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC04MSAgIChoZXgpCQlNVVJBVEEgTUFDSElORVJZLCBMVEQuCiswMDUwODEgICAgIChiYXNlIDE2KQkJTVVSQVRBIE1BQ0hJTkVSWSwgTFRELgorCQkJCTEzNiwgVEFLRURBLU1VS0FJU0hJUk8tQ0hPCisJCQkJRlVTSElNSS1LVSwgS1lPVE8gNjEyLTg2ODYgIAorCQkJCUpBUEFOCisKKzAwLTUwLTgyICAgKGhleCkJCUZPUkVTU09OIENPUlBPUkFUSU9OCiswMDUwODIgICAgIChiYXNlIDE2KQkJRk9SRVNTT04gQ09SUE9SQVRJT04KKwkJCQkzRiwgTk8uOSBTRUMuMQorCQkJCUNIQU5HIEFOIEVBU1QgUk9BRAorCQkJCVRBSVBFSSAxMDQwNCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC04MyAgIChoZXgpCQlHSUxCQVJDTywgSU5DLgorMDA1MDgzICAgICAoYmFzZSAxNikJCUdJTEJBUkNPLCBJTkMuCisJCQkJUE9CIDIyMDg3CisJCQkJR1JFRU5TQk9STyBOQyAyNzQyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtODQgICAoaGV4KQkJQVRMIFBST0RVQ1RTCiswMDUwODQgICAgIChiYXNlIDE2KQkJQVRMIFBST0RVQ1RTCisJCQkJMjgwMSBLRUxWSU4gQVZFTlVFCisJCQkJSVJWSU5FIENBIDkyNjE0LTU4NzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTg2ICAgKGhleCkJCVRFTEtPTSBTQSwgTFRELgorMDA1MDg2ICAgICAoYmFzZSAxNikJCVRFTEtPTSBTQSwgTFRELgorCQkJCVRFTEtPTSBMQUJPUkFUT1JZCisJCQkJUC4gQkFHIFg3NAorCQkJCVBSRVRPUklBICAKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtNTAtODcgICAoaGV4KQkJVEVSQVNBS0kgRUxFQ1RSSUMgQ08uLCBMVEQuCiswMDUwODcgICAgIChiYXNlIDE2KQkJVEVSQVNBS0kgRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJNy0yLTEwIEhBTk5BTi1DSE8gQUJFTk8tS1UKKwkJCQlPU0FLQSwgNTQ1LTAwMjEgIAorCQkJCUpBUEFOCisKKzAwLTUwLTg4ICAgKGhleCkJCUFNQU5PIENPUlBPUkFUSU9OCiswMDUwODggICAgIChiYXNlIDE2KQkJQU1BTk8gQ09SUE9SQVRJT04KKwkJCQkyNzUsIE1BTUVETy1DSE8KKwkJCQlLT1VIT0tVLUtVLCBZT0tPSEFNQQorCQkJCTIyMi04NTU4ICAKKwkJCQlKQVBBTgorCiswMC01MC04OSAgIChoZXgpCQlTQUZFVFkgTUFOQUdFTUVOVCBTWVNURU1TCiswMDUwODkgICAgIChiYXNlIDE2KQkJU0FGRVRZIE1BTkFHRU1FTlQgU1lTVEVNUworCQkJCUJSQU5ERVJJSlNUUkFBVCA2CisJCQkJNTIyMyBBUyAnUy1IRVJUT0dFTkJPU0NIJyAgTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC01MC04QiAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMDA1MDhCICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMjA1NTUgU3RhdGUgSGlnaHdheSAyNDkKKwkJCQlNUzA0MDgwMQorCQkJCUhvdXN0b24gVFggNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLThDICAgKGhleCkJCVJTSSBTWVNURU1TCiswMDUwOEMgICAgIChiYXNlIDE2KQkJUlNJIFNZU1RFTVMKKwkJCQk1NTU1IFcuIDc4VEggU1RSRUVULCBTdWl0ZSBGCisJCQkJRURJTkEgTU4gNTU0MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLThEICAgKGhleCkJCUFCSVQgQ09NUFVURVIgQ09SUE9SQVRJT04KKzAwNTA4RCAgICAgKGJhc2UgMTYpCQlBQklUIENPTVBVVEVSIENPUlBPUkFUSU9OCisJCQkJM0YtNywgTk8uIDc5LCBTRUMuMQorCQkJCUhTSU4gVEFJIFdVIFJPQUQsIEhTSSBDSEkKKwkJCQlUQUlQRUkgSFNJRU4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtOEUgICAoaGV4KQkJT1BUSU1BVElPTiwgSU5DLgorMDA1MDhFICAgICAoYmFzZSAxNikJCU9QVElNQVRJT04sIElOQy4KKwkJCQlQLk8uIEJPWCAxNDM1NworCQkJCUhVTlRTVklMTEUgQUwgMzU4MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLThGICAgKGhleCkJCUFTSVRBIFRFQ0hOT0xPR0lFUyBJTlQnTCBMVEQuCiswMDUwOEYgICAgIChiYXNlIDE2KQkJQVNJVEEgVEVDSE5PTE9HSUVTIElOVCdMIExURC4KKwkJCQlVTklUIDIgQkFMTFlCUklUIEJVU0lORVNTIFBBUksKKwkJCQlHQUxXQVkKKwkJCQlJUkVMQU5ECisKKzAwLTUwLTkwICAgKGhleCkJCURDVFJJCiswMDUwOTAgICAgIChiYXNlIDE2KQkJRENUUkkKKwkJCQlOTy40MCBYVUUgWVVBTiBSRAorCQkJCUhBSURJQU4gRElTVFJJQ1QgQkVJSklORywgMTAwMDgzLCBQLlIuCisJCQkJQ0hJTkEKKwkJCQlDSElOQQorCiswMC01MC05MSAgIChoZXgpCQlORVRBQ0NFU1MsIElOQy4KKzAwNTA5MSAgICAgKGJhc2UgMTYpCQlORVRBQ0NFU1MsIElOQy4KKwkJCQkxOCBLRUVXQVlESU4gRFJJVkUKKwkJCQlTQUxFTSBOSCAwMzA3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtOTIgICAoaGV4KQkJUklHQUtVIElORFVTVFJJQUwgQ09SUE9SQVRJT04KKzAwNTA5MiAgICAgKGJhc2UgMTYpCQlSSUdBS1UgSU5EVVNUUklBTCBDT1JQT1JBVElPTgorCQkJCTE0LTggQUtBT0pJLUNITworCQkJCVRBS0FUU1VLSS1TSEksIE9TQUtBIDU2OS0xMTQ2ICAKKwkJCQlKQVBBTgorCiswMC01MC05MyAgIChoZXgpCQlCT0VJTkcKKzAwNTA5MyAgICAgKGJhc2UgMTYpCQlCT0VJTkcKKwkJCQkzMzcwIE1pcmFsb21hIEF2ZW51ZQorCQkJCUFuYWhlaW0gQ0EgOTI4MDMtMzEwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtOTQgICAoaGV4KQkJUEFDRSBwbGMKKzAwNTA5NCAgICAgKGJhc2UgMTYpCQlQQUNFIHBsYworCQkJCVZJQ1RPUklBIFJELCBTQUxUQUlSRQorCQkJCVNISVBMRVksIFcuIFlPUktTSElSRSBCUkFERk9SRCAgQkQyOCAzTEYKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNTAtOTUgICAoaGV4KQkJUEVSQUNPTSBORVRXT1JLUworMDA1MDk1ICAgICAoYmFzZSAxNikJCVBFUkFDT00gTkVUV09SS1MKKwkJCQkxMzAwMCBXRVNUT04gUEFSS1dBWQorCQkJCVNVSVRFICMxMDUKKwkJCQlDQVJZIE5DIDI3NTEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC05NiAgIChoZXgpCQlTQUxJWCBURUNITk9MT0dJRVMsIElOQy4KKzAwNTA5NiAgICAgKGJhc2UgMTYpCQlTQUxJWCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk5MDQgV0lORCBSSVZFUiBMQU5FLSBTVEUuICMxMDEKKwkJCQlHQUlUSEVSU0JVUkcgTUQgMjA4NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLTk3ICAgKGhleCkJCU1NQy1FTUJFRERFRCBDT01QVVRFUlRFQ0hOSUsgR21iSAorMDA1MDk3ICAgICAoYmFzZSAxNikJCU1NQy1FTUJFRERFRCBDT01QVVRFUlRFQ0hOSUsgR21iSAorCQkJCVVMUklDSFNCRVJHRVJTVFIuIDE3CisJCQkJRC05NDQ2OSBERUdHRU5ET1JGICAKKwkJCQlHRVJNQU5ZCisKKzAwLTUwLTk4ICAgKGhleCkJCUdMT0JBTE9PUCwgTFRELgorMDA1MDk4ICAgICAoYmFzZSAxNikJCUdMT0JBTE9PUCwgTFRELgorCQkJCTEyIEhBU0hBUk9OIFJPQUQKKwkJCQlLRkFSIFNBQkEgNDQyNjkgIAorCQkJCUlTUkFFTAorCiswMC01MC05OSAgIChoZXgpCQkzQ09NIEVVUk9QRSwgTFRELgorMDA1MDk5ICAgICAoYmFzZSAxNikJCTNDT00gRVVST1BFLCBMVEQuCisJCQkJQk9VTkRBUlkgV0FZCisJCQkJSEVNRUwgSEVNUFNURUFECisJCQkJSEVSVFMuIEhQMiA3WVUgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTUwLTlBICAgKGhleCkJCVRBRyBFTEVDVFJPTklDIFNZU1RFTVMKKzAwNTA5QSAgICAgKGJhc2UgMTYpCQlUQUcgRUxFQ1RST05JQyBTWVNURU1TCisJCQkJR0VORVNJUyBCVVNJTkVTUyBQQVJLCisJCQkJQWxiZXJ0IERyaXZlCisJCQkJV09LSU5HLCBTVVJSRVkgR1UyMSA1UlcgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTUwLTlCICAgKGhleCkJCVNXSVRDSENPUkUgQUIKKzAwNTA5QiAgICAgKGJhc2UgMTYpCQlTV0lUQ0hDT1JFIEFCCisJCQkJUE9TSVRJT05FTiAxNTMKKwkJCQkxMTUgNzQgU1RPQ0tIT0xNCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLTUwLTlDICAgKGhleCkJCUJFVEEgUkVTRUFSQ0gKKzAwNTA5QyAgICAgKGJhc2UgMTYpCQlCRVRBIFJFU0VBUkNICisJCQkJQkVUQVNUUi4gMQorCQkJCTg1Nzc0IFVOVEVSRk9FSFJJTkcgIAorCQkJCUdFUk1BTlkKKworMDAtNTAtOUQgICAoaGV4KQkJVEhFIElORFVTVFJFRSBCLlYuCiswMDUwOUQgICAgIChiYXNlIDE2KQkJVEhFIElORFVTVFJFRSBCLlYuCisJCQkJUC5PLiBCT1ggNDYyCisJCQkJNTYwMCBBTCBFSU5ESE9WRU4KKwkJCQlUSEUgTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC01MC05RSAgIChoZXgpCQlMZXMgVGVjaG5vbG9naWVzIFNvZnRBY291c3RpayBJbmMuCiswMDUwOUUgICAgIChiYXNlIDE2KQkJTGVzIFRlY2hub2xvZ2llcyBTb2Z0QWNvdXN0aWsgSW5jLgorCQkJCQorCQkJCTM5MCwgUlVFIFNBSU5ULVZBTExJRVIgRVNULCA0dGggZmxvb3IKKwkJCQlRdWViZWMgRzFLICAzUDYgIAorCQkJCUNBTkFEQQorCiswMC01MC05RiAgIChoZXgpCQlIT1JJWk9OIENPTVBVVEVSCiswMDUwOUYgICAgIChiYXNlIDE2KQkJSE9SSVpPTiBDT01QVVRFUgorCQkJCVRSSU5JVFkgQkxERy4gNC0yMi03CisJCQkJTklTSEktQVpBQlUsIE1JTkFUTy1LVQorCQkJCSBUT0tZTyAxMDYgIAorCQkJCUpBUEFOCisKKzAwLTUwLUEwICAgKGhleCkJCURFTFRBIENPTVBVVEVSIFNZU1RFTVMsIElOQy4KKzAwNTBBMCAgICAgKGJhc2UgMTYpCQlERUxUQSBDT01QVVRFUiBTWVNURU1TLCBJTkMuCisJCQkJMTE3MTkgTkUgOTVUSCBTVFJFRVQgLSBTVEUuCisJCQkJVkFOQ09VVkVSIFdBIDk4NjgyLTI0NDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUExICAgKGhleCkJCUNBUkxPIEdBVkFaWkksIElOQy4KKzAwNTBBMSAgICAgKGJhc2UgMTYpCQlDQVJMTyBHQVZBWlpJLCBJTkMuCisJCQkJMjIyIFBFTk5CUklHSFQgRFIuIC0gU1RFLiMyMTAKKwkJCQlIT1VTVE9OIFRYIDc3MDkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1BMiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwQTIgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUgLSBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUEzICAgKGhleCkJCVRyYW5zTWVkaWEgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzAwNTBBMyAgICAgKGJhc2UgMTYpCQlUcmFuc01lZGlhIENvbW11bmljYXRpb25zLCBJbmMuCisJCQkJMjAgR1JFQVQgT0FLUyBCTFZELiwgIzIxMAorCQkJCVNBTiBKT1NFIENBIDk1MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1BNCAgIChoZXgpCQlJTyBURUNILCBJTkMuCiswMDUwQTQgICAgIChiYXNlIDE2KQkJSU8gVEVDSCwgSU5DLgorCQkJCTI1OTcxIENBTk5PTiBST0FECisJCQkJQ0xFVkVMQU5EIE9IIDQ0MTQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1BNSAgIChoZXgpCQlDQVBJVE9MIEJVU0lORVNTIFNZU1RFTVMsIExURC4KKzAwNTBBNSAgICAgKGJhc2UgMTYpCQlDQVBJVE9MIEJVU0lORVNTIFNZU1RFTVMsIExURC4KKwkJCQk0My80NCBSSVZFUlNJREUKKwkJCQlTSVIgVEhPTUFTIExPTkdMRVkgUk9BRAorCQkJCVJPQ0hFU1RFUiwgS0VOVCBFbmdsYW5kIE1FMiA0RFAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNTAtQTYgICAoaGV4KQkJT1BUUk9OSUNTCiswMDUwQTYgICAgIChiYXNlIDE2KQkJT1BUUk9OSUNTCisJCQkJMTc1IENSRU1PTkEgRFJJVkUKKwkJCQlHT0xFVEEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUE3ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNTBBNyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCU0vUyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUE4ICAgKGhleCkJCU9wZW5Db24gU3lzdGVtcywgSW5jLgorMDA1MEE4ICAgICAoYmFzZSAxNikJCU9wZW5Db24gU3lzdGVtcywgSW5jLgorCQkJCTM3NyBIT0VTIExBTkUKKwkJCQlQSVNDQVRBV0FZIE5KIDA4ODU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1BOSAgIChoZXgpCQlNT0xEQVQgV0lSRUxFU1MgVEVDSE5PTEdJRVMKKzAwNTBBOSAgICAgKGJhc2UgMTYpCQlNT0xEQVQgV0lSRUxFU1MgVEVDSE5PTEdJRVMKKwkJCQkzIFNISU1PTiBJU1JBRUxJIFNUUkVFVAorCQkJCVJJU0hPTiBMRSBaSU9OIDc1NjU0CisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLTUwLUFBICAgKGhleCkJCUtPTklDQSBNSU5PTFRBIEhPTERJTkdTLCBJTkMuCiswMDUwQUEgICAgIChiYXNlIDE2KQkJS09OSUNBIE1JTk9MVEEgSE9MRElOR1MsIElOQy4KKwkJCQkxLTYtMSwgTWFydW5vdWNoaSwKKwkJCQlDaGl5b2RhLWt1CisJCQkJVG9reW8gIDEwMC0wMDA1CisJCQkJSkFQQU4KKworMDAtNTAtQUIgICAoaGV4KQkJTkFMVEVDLCBJbmMuCiswMDUwQUIgICAgIChiYXNlIDE2KQkJTkFMVEVDLCBJbmMuCisJCQkJMS0xLTE1LCBOYWthbm9nbywgU2hpbWl6dS1rdQorCQkJCVNoaXp1b2thLXNoaSBTaGl6dW9rYSA0MjQtMDg4OAorCQkJCUpBUEFOCisKKzAwLTUwLUFDICAgKGhleCkJCU1BUExFIENPTVBVVEVSIENPUlBPUkFUSU9OCiswMDUwQUMgICAgIChiYXNlIDE2KQkJTUFQTEUgQ09NUFVURVIgQ09SUE9SQVRJT04KKwkJCQkyRiwgTk8uIDE4NCwgU0VDLiAyCisJCQkJQ0hBTkctQU4gRS4gUkQuCisJCQkJVGFpcGVpICAKKwkJCQlUQUpJS0lTVEFOCisKKzAwLTUwLUFEICAgKGhleCkJCUNvbW1VbmlxdWUgV2lyZWxlc3MgQ29ycC4KKzAwNTBBRCAgICAgKGJhc2UgMTYpCQlDb21tVW5pcXVlIFdpcmVsZXNzIENvcnAuCisJCQkJMTA3MCBNQVJJTkEgVklMTEFHRSBQQVJLV0FZCisJCQkJU1VJVEUgIzIwNgorCQkJCUFMQU1FREEgQ0EgOTQ1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUFFICAgKGhleCkJCUlXQUtJIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDA1MEFFICAgICAoYmFzZSAxNikJCUlXQUtJIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCTEsIEtBTUFOT01BRQorCQkJCUpPQkFOLUtBTUlZVU5BR0FZQS1NQUNISQorCQkJCUlXQUtJLUNJVFksIEZVS1VTSElNQSA5NzItODMyMiA5NzItODMyMiAKKwkJCQlKQVBBTgorCiswMC01MC1BRiAgIChoZXgpCQlJTlRFUkdPTiwgSU5DLgorMDA1MEFGICAgICAoYmFzZSAxNikJCUlOVEVSR09OLCBJTkMuCisJCQkJNTgwMCBSQU5DSEVTVEVSIERSSVZFCisJCQkJSE9VU1RPTiBUWCA3NzAzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQjAgICAoaGV4KQkJVEVDSE5PTE9HWSBBVExBTlRBIENPUlBPUkFUSU9OCiswMDUwQjAgICAgIChiYXNlIDE2KQkJVEVDSE5PTE9HWSBBVExBTlRBIENPUlBPUkFUSU9OCisJCQkJNTAwIFN1Z2FyIE1pbGwgUm9hZAorCQkJCVN1aXRlIDIwMkEKKwkJCQlBdGxhbnRhIEdBIDMwMzUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1CMSAgIChoZXgpCQlHSURESU5HUyAmIExFV0lTCiswMDUwQjEgICAgIChiYXNlIDE2KQkJR0lERElOR1MgJiBMRVdJUworCQkJCTY2MCBTLiBNSUxJVEFSWSBSRC4KKwkJCQlGT05EIERVIExBQyBXSSA1NDkzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQjIgICAoaGV4KQkJQlJPREVMIEFVVE9NQVRJT04KKzAwNTBCMiAgICAgKGJhc2UgMTYpCQlCUk9ERUwgQVVUT01BVElPTgorCQkJCURpc3RlbGJ1c2NoIDI0CisJCQkJNDI1NDkgVmVsYmVydCAKKwkJCQlHRVJNQU5ZCisKKzAwLTUwLUIzICAgKGhleCkJCVZPSUNFQk9BUkQgQ09SUE9SQVRJT04KKzAwNTBCMyAgICAgKGJhc2UgMTYpCQlWT0lDRUJPQVJEIENPUlBPUkFUSU9OCisJCQkJMzE1MSBXRVNUIEZJRlRIIFNUUkVFVAorCQkJCU9YTkFSRCBDQSA5MzAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQjQgICAoaGV4KQkJU0FUQ0hXRUxMIENPTlRST0wgU1lTVEVNUywgTFRECiswMDUwQjQgICAgIChiYXNlIDE2KQkJU0FUQ0hXRUxMIENPTlRST0wgU1lTVEVNUywgTFRECisJCQkJUC5PLiBCT1ggNTcsICA5NCBGQVJOSEFNIFJPQUQKKwkJCQlTTE9VR0gsCisJCQkJQkVSS1NISVJFIFNMMSA0VUggIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTUwLUI1ICAgKGhleCkJCUZJQ0hFVC1CQVVDSEUKKzAwNTBCNSAgICAgKGJhc2UgMTYpCQlGSUNIRVQtQkFVQ0hFCisJCQkJMTUtMTcgQVZFLiBNT1JBTkUtU0FVTE5JRVIKKwkJCQk3ODE0MCBWRUxJWlkKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtNTAtQjYgICAoaGV4KQkJR09PRCBXQVkgSU5ELiBDTy4sIExURC4KKzAwNTBCNiAgICAgKGJhc2UgMTYpCQlHT09EIFdBWSBJTkQuIENPLiwgTFRELgorCQkJCTVGLCBOTy44LCBBTExFWSA2LAorCQkJCUxBTkUgNDUgUEFPLUhTSU4gUkQuLUhTSU4gVElFTiBUQUlQRUkgSFMKKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC1CNyAgIChoZXgpCQlCT1NFUiBURUNITk9MT0dZIENPLiwgTFRELgorMDA1MEI3ICAgICAoYmFzZSAxNikJCUJPU0VSIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJMTVGLTYsIDc3IEhTSU4gVEFJIFdVIFJPQUQKKwkJCQlTRUMuIDEsIEhTSS1DSEkKKwkJCQlUQUlQRUkgSFNJRU4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtQjggICAoaGV4KQkJSU5PVkEgQ09NUFVURVJTIEdNQkggJiBDTy4gS0cKKzAwNTBCOCAgICAgKGJhc2UgMTYpCQlJTk9WQSBDT01QVVRFUlMgR01CSCAmIENPLiBLRworCQkJCVNVREVURU5TVFJBU1NFIDUKKwkJCQk4NzYwMCBLQVVGQkVVUkVOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTUwLUI5ICAgKGhleCkJCVhJVFJPTiBURUNITk9MT0dJRVMsIElOQy4KKzAwNTBCOSAgICAgKGJhc2UgMTYpCQlYSVRST04gVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNjI5NS1EIEZFUlJJUyBTUVVBUkUKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUJBICAgKGhleCkJCUQtTElOSworMDA1MEJBICAgICAoYmFzZSAxNikJCUQtTElOSworCQkJCTJGLCBOTy4gMjMzTC0yLCBQQU8tQ0hJQU8gUkQuCisJCQkJSHNpbi1UaWVuIDIzMQorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC1CQiAgIChoZXgpCQlDTVMgVEVDSE5PTE9HSUVTCiswMDUwQkIgICAgIChiYXNlIDE2KQkJQ01TIFRFQ0hOT0xPR0lFUworCQkJCTEzOTU1IEZBUk1JTkdUT04gUkFPRAorCQkJCUxJVk9OSUEgTUkgNDgxNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUJDICAgKGhleCkJCUhBTU1FUiBTVE9SQUdFIFNPTFVUSU9OUworMDA1MEJDICAgICAoYmFzZSAxNikJCUhBTU1FUiBTVE9SQUdFIFNPTFVUSU9OUworCQkJCTg0NTAgQ0VOVFJBTCBBVkVOVUUKKwkJCQlORVdBUksgQ0EgOTQ1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUJEICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNTBCRCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRSAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQkUgICAoaGV4KQkJRkFTVCBNVUxUSU1FRElBIEFHCiswMDUwQkUgICAgIChiYXNlIDE2KQkJRkFTVCBNVUxUSU1FRElBIEFHCisJCQkJUlVFREVTSEVJTUVSU1RSLiAxMS0xMworCQkJCTgwNjg2IE1VTklDSCAgCisJCQkJR0VSTUFOWQorCiswMC01MC1CRiAgIChoZXgpCQlNZXRhbGxpZ2VuY2UgVGVjaG5vbG9neSBDb3JwLgorMDA1MEJGICAgICAoYmFzZSAxNikJCU1ldGFsbGlnZW5jZSBUZWNobm9sb2d5IENvcnAuCisJCQkJTk8uOSwgUEFSSyBBVkVOVUUgSUkKKwkJCQlTQ0lFTkNFLUJBU0UgSU5EVVNUUklBTCBQQVJLCisJCQkJSFNJTi1DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtQzAgICAoaGV4KQkJR0FUQU4sIElOQy4KKzAwNTBDMCAgICAgKGJhc2UgMTYpCQlHQVRBTiwgSU5DLgorCQkJCTU5MzMgQ09ST05BRE8gTEFORQorCQkJCVBMRUFTQU5UT04gQ0EgOTQ1ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUMxICAgKGhleCkJCUdFTUZMRVggTkVUV09SS1MsIExURC4KKzAwNTBDMSAgICAgKGJhc2UgMTYpCQlHRU1GTEVYIE5FVFdPUktTLCBMVEQuCisJCQkJMjMwLTY2NTEgRlJBU0VSV09PRCBQTC4KKwkJCQlSSUNITU9ORCwgQi5DLgorCQkJCUNBTkFEQSBWNlcgMUozCisJCQkJQ0FOQURBCisKKzAwLTUwLUMyICAgKGhleCkJCUlFRUUgUkVHSVNUUkFUSU9OIEFVVEhPUklUWQorMDA1MEMyICAgICAoYmFzZSAxNikJCUlFRUUgUkVHSVNUUkFUSU9OIEFVVEhPUklUWQorCQkJCTQ0NSBIT0VTIExBTkUKKwkJCQlQSVNDQVRBV0FZIE5KIDA4ODU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1DNCAgIChoZXgpCQlJTUQKKzAwNTBDNCAgICAgKGJhc2UgMTYpCQlJTUQKKwkJCQlIRVJCU1RSQVNTRSA4CisJCQkJRC04MjE3OCBQVUNISEVJTSAgCisJCQkJR0VSTUFOWQorCiswMC01MC1DNSAgIChoZXgpCQlBRFMgVGVjaG5vbG9naWVzLCBJbmMKKzAwNTBDNSAgICAgKGJhc2UgMTYpCQlBRFMgVGVjaG5vbG9naWVzLCBJbmMKKwkJCQkxMjYyNyBIaWRkZW5jcmVlayBXYXkKKwkJCQlDZXJyaXRvcyBDQSA5MDcwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQzYgICAoaGV4KQkJTE9PUCBURUxFQ09NTVVOSUNBVElPTiBJTlRFUk5BVElPTkFMLCBJTkMuCiswMDUwQzYgICAgIChiYXNlIDE2KQkJTE9PUCBURUxFQ09NTVVOSUNBVElPTiBJTlRFUk5BVElPTkFMLCBJTkMuCisJCQkJMkYsIE5PLiAyMiwgUFJPU1BFUklUWSBSRC4gMgorCQkJCVNjaWVuY2UtQmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSFNJTkNIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC01MC1DOCAgIChoZXgpCQkgQWRkb25pY3MgVGVjaG5vbG9naWVzLCBJbmMuCiswMDUwQzggICAgIChiYXNlIDE2KQkJIEFkZG9uaWNzIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTE5MTggSnVuY3Rpb24gQXZlLiwKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtQzkgICAoaGV4KQkJTUFTUFJPIERFTktPSCBDT1JQLgorMDA1MEM5ICAgICAoYmFzZSAxNikJCU1BU1BSTyBERU5LT0ggQ09SUC4KKwkJCQlBU0FEQSBOSVNTSElOIEFJQ0hJCisJCQkJNDcwLTAxOTQKKwkJCQlKQVBBTgorCiswMC01MC1DQSAgIChoZXgpCQlORVQgVE8gTkVUIFRFQ0hOT0xPR0lFUworMDA1MENBICAgICAoYmFzZSAxNikJCU5FVCBUTyBORVQgVEVDSE5PTE9HSUVTCisJCQkJNjgwIENFTlRSQUwgQVZFTlVFIC0gU1RFLiAjMzAxCisJCQkJRE9WRVIgTkggMDM4MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUNCICAgKGhleCkJCUpFVFRFUgorMDA1MENCICAgICAoYmFzZSAxNikJCUpFVFRFUgorCQkJCUdSQUVURVJTVFJBU1NFIDIKKwkJCQlENzE2NDIgIExVRFdJR1NCVVJHCisJCQkJR0VSTUFOWQorCiswMC01MC1DQyAgIChoZXgpCQlYWVJBVEVYCiswMDUwQ0MgICAgIChiYXNlIDE2KQkJWFlSQVRFWAorCQkJCU1BSUwgUE9JTlQ6IDI2LzEzOyBERVBUOiAgU1RPUkFHRSBTWVNURU0KKwkJCQlMYW5nc3RvbmUgUm9hZAorCQkJCUhhdmFudCBQTzkgMVNBICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC01MC1DRCAgIChoZXgpCQlESUdJQU5TV0VSIEEvUworMDA1MENEICAgICAoYmFzZSAxNikJCURJR0lBTlNXRVIgQS9TCisJCQkJU0tBTEhVU0UgNQorCQkJCTkyNDAgTklCRQorCQkJCURFTk1BUksKKworMDAtNTAtQ0UgICAoaGV4KQkJTEcgSU5URVJOQVRJT05BTCBDT1JQLgorMDA1MENFICAgICAoYmFzZSAxNikJCUxHIElOVEVSTkFUSU9OQUwgQ09SUC4KKwkJCQlMRyBUV0lOIFRPV0VSUworCQkJCTIwIFlPSURPLURPTkcsIFlPVU5HRFVOR1BPLUdVCisJCQkJU0VPVUwsICAxNTAtNjA2ICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNTAtQ0YgICAoaGV4KQkJVkFOTElOSyBDT01NVU5JQ0FUSU9OIFRFQ0hOT0xPR1kgUkVTRUFSQ0ggSU5TVElUVVRFCiswMDUwQ0YgICAgIChiYXNlIDE2KQkJVkFOTElOSyBDT01NVU5JQ0FUSU9OIFRFQ0hOT0xPR1kgUkVTRUFSQ0ggSU5TVElUVVRFCisJCQkJMjEwIFlBREkgT0ZGSUNFIEJVSUxESU5HCisJCQkJIE5PLiA0OCBCRUkgU0FOIEh1YW4gWmhvbmcgTHUKKwkJCQlCRUlKSU5HIDEwMDA4OCAgCisJCQkJQ0hJTkEKKworMDAtNTAtRDAgICAoaGV4KQkJTUlORVJWQSBTWVNURU1TCiswMDUwRDAgICAgIChiYXNlIDE2KQkJTUlORVJWQSBTWVNURU1TCisJCQkJMTU4NSBDSEFSTEVTVE9OIFJPQUQKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDg0OTQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1EMSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwRDEgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlNL1MgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1EMiAgIChoZXgpCQlDTUMgRWxlY3Ryb25pY3MgSW5jCiswMDUwRDIgICAgIChiYXNlIDE2KQkJQ01DIEVsZWN0cm9uaWNzIEluYworCQkJCTYwMCBEci5GcmVkZXJpay1QaGlsaXBzIEJsdmQKKwkJCQlNb250cmVhbCAgUUMgSDRNIDJTOQorCQkJCUNBTkFEQQorCiswMC01MC1EMyAgIChoZXgpCQlESUdJVEFMIEFVRElPIFBST0NFU1NJTkcgUFRZLiBMVEQuCiswMDUwRDMgICAgIChiYXNlIDE2KQkJRElHSVRBTCBBVURJTyBQUk9DRVNTSU5HIFBUWS4gTFRELgorCQkJCVBPIEJPWCA0MAorCQkJCUNPTkNPUkQgV0VTVAorCQkJCU5TVyAyMTM4ICAKKwkJCQlBVVNUUkFMSUEKKworMDAtNTAtRDQgICAoaGV4KQkJSk9PSE9ORyBJTkZPUk1BVElPTiAmCiswMDUwRDQgICAgIChiYXNlIDE2KQkJSk9PSE9ORyBJTkZPUk1BVElPTiAmCisJCQkJQ09NTVVOSUNBVElPTlMsIExURC4KKwkJCQlKVU5HTkFNIEIvRCwgNzIxLTM5IFlFT0tTQU0tRE9ORywgS0FOR05BCisJCQkJU0VPVUwgU0VPVUwgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNTAtRDUgICAoaGV4KQkJQUQgU1lTVEVNUyBDT1JQLgorMDA1MEQ1ICAgICAoYmFzZSAxNikJCUFEIFNZU1RFTVMgQ09SUC4KKwkJCQkxLTQtMSwgTkFLQUNITywgTVVTQVNISU5PIENJVFkKKwkJCQlUT0tZTyAxODAtMDAwNiAgCisJCQkJSkFQQU4KKworMDAtNTAtRDYgICAoaGV4KQkJQVRMQVMgQ09QQ08gVE9PTFMgQUIKKzAwNTBENiAgICAgKGJhc2UgMTYpCQlBVExBUyBDT1BDTyBUT09MUyBBQgorCQkJCQorCQkJCVMtMTA1IDIzIFNUT0NLSE9MTSAgCisJCQkJU1dFREVOCisKKzAwLTUwLUQ3ICAgKGhleCkJCVRFTFNUUkFUCiswMDUwRDcgICAgIChiYXNlIDE2KQkJVEVMU1RSQVQKKwkJCQkzNjAwIEFWRU5VRQorCQkJCVBMQU5PIFRYIDc1MDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1EOCAgIChoZXgpCQlVTklDT1JOIENPTVBVVEVSIENPUlAuCiswMDUwRDggICAgIChiYXNlIDE2KQkJVU5JQ09STiBDT01QVVRFUiBDT1JQLgorCQkJCTcgRkwuLCAgTk8uIDk2IEtXQU5HIEZVIE5PUlRIIFJPQUQKKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtRDkgICAoaGV4KQkJRU5HRVRST04tRU5HRU5IQVJJQSBFTEVUUk9OSUNBIElORC4gZSBDT00uIExUREEKKzAwNTBEOSAgICAgKGJhc2UgMTYpCQlFTkdFVFJPTi1FTkdFTkhBUklBIEVMRVRST05JQ0EgSU5ELiBlIENPTS4gTFREQQorCQkJCVZJQSBTT0NSQVRFUyBNLiBCSVRURU5DT1VSVCwgMTA5OQorCQkJCTMyMDEwLTAxMCBDb250YWdlbSBNRyAgCisJCQkJQlJBWklMCisKKzAwLTUwLURBICAgKGhleCkJCTNDT00gQ09SUE9SQVRJT04KKzAwNTBEQSAgICAgKGJhc2UgMTYpCQkzQ09NIENPUlBPUkFUSU9OCisJCQkJNTQwMCBCQVlGUk9OVCBQTEFaQQorCQkJCU1TOiA0MjIwCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLURCICAgKGhleCkJCUNPTlRFTVBPUkFSWSBDT05UUk9MCiswMDUwREIgICAgIChiYXNlIDE2KQkJQ09OVEVNUE9SQVJZIENPTlRST0wKKwkJCQlTWVNURU1TLCBJTkMuCisJCQkJMjQzMSBDVVJUSVNTIFNUUkVFVAorCQkJCURPV05FUlMgR1JPVkUgSUwgNjA1MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLURDICAgKGhleCkJCVRBUyBURUxFRk9OQkFVIEEuIFNDSFdBQkUgR01CSCAmIENPLiBLRworMDA1MERDICAgICAoYmFzZSAxNikJCVRBUyBURUxFRk9OQkFVIEEuIFNDSFdBQkUgR01CSCAmIENPLiBLRworCQkJCQorCQkJCUxBTkdNQUFSIDI1CisJCQkJRC00MTIzOCBNT05DSEVOR0xBREJBQ0ggIAorCQkJCUdFUk1BTlkKKworMDAtNTAtREQgICAoaGV4KQkJU0VSUkEgU09MREFEVVJBLCBTLkEuCiswMDUwREQgICAgIChiYXNlIDE2KQkJU0VSUkEgU09MREFEVVJBLCBTLkEuCisJCQkJUE9MLiBJTkQuIFpPTkEgRlJBTkNBLAorCQkJCVNFQ1RPUiBDLCBDQUxMRSBELCBOLiAyOSAwODA0MCBCQVJDRUxPTkEKKwkJCQlTUEFJTgorCQkJCVNQQUlOCisKKzAwLTUwLURFICAgKGhleCkJCVNJR05VTSBTWVNURU1TIENPUlAuCiswMDUwREUgICAgIChiYXNlIDE2KQkJU0lHTlVNIFNZU1RFTVMgQ09SUC4KKwkJCQkxMjExIEZseW5uIFJkLAorCQkJCSMxMDQKKwkJCQlDYW1hcmlsbG8gQ0EgOTMwMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLURGICAgKGhleCkJCUFpckZpYmVyLCBJbmMuCiswMDUwREYgICAgIChiYXNlIDE2KQkJQWlyRmliZXIsIEluYy4KKwkJCQlQLk8uIEJPWCA1MDIxNDgKKwkJCQlTQU4gRElFR08gQ0EgOTIxNTAtMjE0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRTEgICAoaGV4KQkJTlMgVEVDSCBFTEVDVFJPTklDUyBTRE4gQkhECiswMDUwRTEgICAgIChiYXNlIDE2KQkJTlMgVEVDSCBFTEVDVFJPTklDUyBTRE4gQkhECisJCQkJTk8uIDIxICYgMjMgSkFMQU4gQ0FOR0dJSCAxMAorCQkJCVRBTUFOIFBFUklORFVTVFJJQU4gQ0VNRVJMQU5HCisJCQkJODE4MDAgVWx1IFRpcmFtLUpvaG9yIEJhaHJ1ICAKKwkJCQlNQUxBWVNJQQorCiswMC01MC1FMiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwRTIgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUgLSBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUUzICAgKGhleCkJCU1vdG9yb2xhLCBJbmMuCiswMDUwRTMgICAgIChiYXNlIDE2KQkJTW90b3JvbGEsIEluYy4KKwkJCQkyNDUwIFdhbHNoIEF2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1FNCAgIChoZXgpCQlBUFBMRSBDT01QVVRFUiwgSU5DLgorMDA1MEU0ICAgICAoYmFzZSAxNikJCUFQUExFIENPTVBVVEVSLCBJTkMuCisJCQkJMjA2NTAgVkFMTEVZIEdSRUVOIERSLgorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRTYgICAoaGV4KQkJSEFLVVNBTiBDT1JQT1JBVElPTgorMDA1MEU2ICAgICAoYmFzZSAxNikJCUhBS1VTQU4gQ09SUE9SQVRJT04KKwkJCQlKIFRPV0VSLCAxLTEsIE5JS0tPVS1DSE8KKwkJCQlGVUNIVS1TSEkgVE9LWU8gMTgzLTAwNDQKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTUwLUU3ICAgKGhleCkJCVBBUkFESVNFIElOTk9WQVRJT05TIChBU0lBKQorMDA1MEU3ICAgICAoYmFzZSAxNikJCVBBUkFESVNFIElOTk9WQVRJT05TIChBU0lBKQorCQkJCVBURS4gTFRELgorCQkJCTI1IFNFUkFOR09PTiBOT1JUSCBBVkUuIDUgNlRIIEZMT09SIFVSQUMKKwkJCQlTSU5HQVBPUkUgNTU0OTE0CisJCQkJU0lOR0FQT1JFCisKKzAwLTUwLUU4ICAgKGhleCkJCU5PTUFESVggSU5DLgorMDA1MEU4ICAgICAoYmFzZSAxNikJCU5PTUFESVggSU5DLgorCQkJCTI3MDEgT0NFQU4gUEFSSyBCTFZELi1TVEUuIzIzMQorCQkJCVNBTlRBIE1PTklDQSBDQSA5MDQwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRUEgICAoaGV4KQkJWEVMIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDUwRUEgICAgIChiYXNlIDE2KQkJWEVMIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTcxMDEgRS4gT0hJTyBEUklWRQorCQkJCUFVUk9SQSBDTyA4MDAxNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRUIgICAoaGV4KQkJQUxQSEEtVE9QIENPUlBPUkFUSU9OCiswMDUwRUIgICAgIChiYXNlIDE2KQkJQUxQSEEtVE9QIENPUlBPUkFUSU9OCisJCQkJMTlGLiwgTk8uIDIsIExBTkUgMTUwCisJCQkJU0VDLiA1LCBIU0lOLVlJIFJPQUQKKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtRUMgICAoaGV4KQkJT0xJQ09NIEEvUworMDA1MEVDICAgICAoYmFzZSAxNikJCU9MSUNPTSBBL1MKKwkJCQlOWUJST1ZFSiAxMTQKKwkJCQlESy0yODAwIExZTkdCWQorCQkJCURFTk1BUksKKworMDAtNTAtRUQgICAoaGV4KQkJQU5EQSBORVRXT1JLUworMDA1MEVEICAgICAoYmFzZSAxNikJCUFOREEgTkVUV09SS1MKKwkJCQkyOTIxIENPUFBFUiBST0FECisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUVFICAgKGhleCkJCVRFSyBESUdJVEVMIENPUlBPUkFUSU9OCiswMDUwRUUgICAgIChiYXNlIDE2KQkJVEVLIERJR0lURUwgQ09SUE9SQVRJT04KKwkJCQkyMDAxMCBDRU5UVVJZIEJMVkQuICMzMDAKKwkJCQlHRVJNQU5UT1dOIE1EIDIwODc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1FRiAgIChoZXgpCQlTUEUgU3lzdGVtaGF1cyBHbWJICiswMDUwRUYgICAgIChiYXNlIDE2KQkJU1BFIFN5c3RlbWhhdXMgR21iSAorCQkJCVdBTERTVFJBU1NFIDcKKwkJCQk2MzE1MCBIRVVTRU5TVEFNTSAgCisJCQkJR0VSTUFOWQorCiswMC01MC1GMCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDUwRjAgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlNL1MgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC01MC1GMSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorMDA1MEYxICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJOTQgRW0tSGFtb3NoYXZvdCBXYXkuCisJCQkJUGFyayBBem9yaW0sUC5PLiBCb3ggMTAwOTcKKwkJCQlQZXRhY2gtVGlrdmEgIAorCQkJCUlTUkFFTAorCiswMC01MC1GMiAgIChoZXgpCQlNSUNST1NPRlQgQ09SUC4KKzAwNTBGMiAgICAgKGJhc2UgMTYpCQlNSUNST1NPRlQgQ09SUC4KKwkJCQlPTkUgTUlDUk9TT0ZUIFdBWQorCQkJCVJFRE1PTkQgV0EgOTgwNTItNjM5OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRjMgICAoaGV4KQkJR0xPQkFMIE5FVCBJTkZPUk1BVElPTiBDTy4sIEx0ZC4KKzAwNTBGMyAgICAgKGJhc2UgMTYpCQlHTE9CQUwgTkVUIElORk9STUFUSU9OIENPLiwgTHRkLgorCQkJCU5PUlRIIFRPV0VSLSBSTSAxMzA1CisJCQkJV09STEQgVFJBREUgQ0VOVFJFIENPTVBMRVggTk8uMzcxLTM3NSwgSAorCQkJCUdVQU5HIFpIT1UgNTEwMDk1ICAKKwkJCQlDSElOQQorCiswMC01MC1GNCAgIChoZXgpCQlTSUdNQVRFSyBHTUJIICYgQ08uIEtHCiswMDUwRjQgICAgIChiYXNlIDE2KQkJU0lHTUFURUsgR01CSCAmIENPLiBLRworCQkJCUEtNTExMiBMQU1QUkVDSFRTSEFVU0VOLAorCQkJCUJVUk1PT1NFUiBTVFJBU1NFIDEwCisJCQkJQVVTVFJJQQorCQkJCUFVU1RSSUEKKworMDAtNTAtRjYgICAoaGV4KQkJUEFOLUlOVEVSTkFUSU9OQUwgSU5EVVNUUklBTCBDT1JQLgorMDA1MEY2ICAgICAoYmFzZSAxNikJCVBBTi1JTlRFUk5BVElPTkFMIElORFVTVFJJQUwgQ09SUC4KKwkJCQlHRiwgTk8uIDE3NiwgQ0hBTkcgQ0hVTiBSRC4KKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNTAtRjcgICAoaGV4KQkJVkVOVFVSRSBNQU5VRkFDVFVSSU5HIChTSU5HQVBPUkUpIExURC4KKzAwNTBGNyAgICAgKGJhc2UgMTYpCQlWRU5UVVJFIE1BTlVGQUNUVVJJTkcgKFNJTkdBUE9SRSkgTFRELgorCQkJCQorCQkJCTUwMDYgQU5HIE1PIEtJTyBBVkVOVUUKKwkJCQkjMDUtMDEgVGVjaHBsYWNlIElJICA1Njk4NzMKKwkJCQlTSU5HQVBPUkUKKworMDAtNTAtRjggICAoaGV4KQkJRU5UUkVHQSBURUNITk9MT0dJRVMsIElOQy4KKzAwNTBGOCAgICAgKGJhc2UgMTYpCQlFTlRSRUdBIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTI1NjkxIEFUTEFOVElDIE9DRUFOIERSSVZFCisJCQkJU1VJVEUgIzE4CisJCQkJTEFLRSBGT1JFU1QgQ0EgOTI2MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTUwLUY5ICAgKGhleCkJCVNFTlNPUk1BVElDIEFDRAorMDA1MEY5ICAgICAoYmFzZSAxNikJCVNFTlNPUk1BVElDIEFDRAorCQkJCTcwIFdFU1RWSUVXIFNUUkVFVAorCQkJCUxFWElOR1RPTiBNQSAwMjE3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNTAtRkEgICAoaGV4KQkJT1hURUwsIExURC4KKzAwNTBGQSAgICAgKGJhc2UgMTYpCQlPWFRFTCwgTFRELgorCQkJCVRIRSBNQVJLRVQgUExBQ0UKKwkJCQlESURDT1QKKwkJCQkwWDExIDdMRSBFbmdsYW5kICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC01MC1GQiAgIChoZXgpCQlWU0sgRUxFQ1RST05JQ1MKKzAwNTBGQiAgICAgKGJhc2UgMTYpCQlWU0sgRUxFQ1RST05JQ1MKKwkJCQlWRU5FVElFTEFBTiAzOQorCQkJCTg1MzAgSEFSRUxCRUtFCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtNTAtRkMgICAoaGV4KQkJRURJTUFYIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDUwRkMgICAgIChiYXNlIDE2KQkJRURJTUFYIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJMyBXVS1DSFVOIDNyZCBST0FECisJCQkJV3UtS3UgSW5kdXN0cmlhbCBQYXJrCisJCQkJVEFJUEVJIEhzaWVuICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTUwLUZEICAgKGhleCkJCVZJU0lPTkNPTU0gQ08uLCBMVEQuCiswMDUwRkQgICAgIChiYXNlIDE2KQkJVklTSU9OQ09NTSBDTy4sIExURC4KKwkJCQk0LCA1RiwgREFFV09OIEIvRAorCQkJCTE5OC04LCBTRU9CSU5HR08tRE9ORworCQkJCVlPTkdTQU4tR1UsIFNFT1VMICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNTAtRkUgICAoaGV4KQkJUENUVm5ldCBBU0EKKzAwNTBGRSAgICAgKGJhc2UgMTYpCQlQQ1RWbmV0IEFTQQorCQkJCVNUUkFORFZFSUxFTiA1MAorCQkJCU4tMTMyNCBMWVNBS0VSICAKKwkJCQlOT1JXQVkKKworMDAtNTAtRkYgICAoaGV4KQkJSEFLS08gRUxFQ1RST05JQ1MgQ08uLCBMVEQuCiswMDUwRkYgICAgIChiYXNlIDE2KQkJSEFLS08gRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJMjM4LCBLQU1JS0FTSElXQU5PLU1BQ0hJCisJCQkJTUFUVE8tU0hJLCBJU0hJS0FXQSA5MjQtMDAzNSAgCisJCQkJSkFQQU4KKworMDAtNTItMTggICAoaGV4KQkJV3V4aSBLZWJvZGEgRWxlY3Ryb24gQ28uTHRkCiswMDUyMTggICAgIChiYXNlIDE2KQkJV3V4aSBLZWJvZGEgRWxlY3Ryb24gQ28uTHRkCisJCQkJTm8uMTU1IENodW5odWkgUm9hZCwgWGlzaGFuIERpc3RyaWN0LCAKKwkJCQlXdXhpIEppYW5nc3UgMjE0MTAxCisJCQkJQ0hJTkEKKworMDAtNTQtQUYgICAoaGV4KQkJQ29udGluZW50YWwgQXV0b21vdGl2ZSBTeXN0ZW1zIEluYy4KKzAwNTRBRiAgICAgKGJhc2UgMTYpCQlDb250aW5lbnRhbCBBdXRvbW90aXZlIFN5c3RlbXMgSW5jLgorCQkJCTIxNDQwIFcuIExha2UgQ29vayBSZC4KKwkJCQlEZWVyIFBhcmsgSUwgNjAwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTVDLUIxICAgKGhleCkJCUdvc3BlbGwgRElHSVRBTCBURUNITk9MT0dZIENPLiwgTFRECiswMDVDQjEgICAgIChiYXNlIDE2KQkJR29zcGVsbCBESUdJVEFMIFRFQ0hOT0xPR1kgQ08uLCBMVEQKKwkJCQlCbG9jayBGMTAtRjEzoaJGNTE4IElkZWEgbGFuZCChokJhbyBZdWFuIFJvYWQKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTAyCisJCQkJQ0hJTkEKKworMDAtNjAtMDAgICAoaGV4KQkJWFlDT00gSU5DLgorMDA2MDAwICAgICAoYmFzZSAxNikJCVhZQ09NIElOQy4KKwkJCQk3NTAgTi4gTUFQTEUKKwkJCQlTQUxJTkUgTUkgNDgxNzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTAxICAgKGhleCkJCUlubm9TeXMsIEluYy4KKzAwNjAwMSAgICAgKGJhc2UgMTYpCQlJbm5vU3lzLCBJbmMuCisJCQkJMzA5NSBSSUNITU9ORCBQS1dZICMyMDcKKwkJCQlSSUNITU9ORCBDQSA5NDgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMDIgICAoaGV4KQkJU0NSRUVOIFNVQlRJVExJTkcgU1lTVEVNUywgTFRECiswMDYwMDIgICAgIChiYXNlIDE2KQkJU0NSRUVOIFNVQlRJVExJTkcgU1lTVEVNUywgTFRECisJCQkJVEhFIE9MRCBSRUNUT1JZCisJCQkJQ0hVUkNIIExBTkUKKwkJCQlDTEFZRE9OIElQU1dJQ0ggIElQNiBPRVEgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNjAtMDMgICAoaGV4KQkJVEVSQU9LQSBXRUlHSCBTWVNURU0gUFRFLCBMVEQuCiswMDYwMDMgICAgIChiYXNlIDE2KQkJVEVSQU9LQSBXRUlHSCBTWVNURU0gUFRFLCBMVEQuCisJCQkJM0EgVFVBUyBBVkVOVUUgOAorCQkJCVNJTkdBUE9SRSA2MzkxMjggCisJCQkJU0lOR0FQT1JFCisKKzAwLTYwLTA0ICAgKGhleCkJCUNPTVBVVEFET1JFUyBNT0RVTEFSRVMgU0EKKzAwNjAwNCAgICAgKGJhc2UgMTYpCQlDT01QVVRBRE9SRVMgTU9EVUxBUkVTIFNBCisJCQkJQVZEQSBNT05URVNJRVJSQSBTL04KKwkJCQlFRElGSUNJTyBDT05HUkVTT1MgMzE0CisJCQkJNDEwMjAtU0VWSUxMQSAgCisJCQkJU1BBSU4KKworMDAtNjAtMDUgICAoaGV4KQkJRkVFREJBQ0sgREFUQSBMVEQuCiswMDYwMDUgICAgIChiYXNlIDE2KQkJRkVFREJBQ0sgREFUQSBMVEQuCisJCQkJUEFSSyBST0FECisJCQkJQ1JPV0JPUk9VR0gKKwkJCQlFQVNUIFNVU1NFWCwgVE42IDJRUiAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNjAtMDYgICAoaGV4KQkJU09URUMgQ08uLCBMVEQKKzAwNjAwNiAgICAgKGJhc2UgMTYpCQlTT1RFQyBDTy4sIExURAorCQkJCVlPS09IQU1BIEJBU0hBTUlDSEkgQkxERy4sCisJCQkJNC01NSBPSFRBLUNITyBOQUtBLUtVCisJCQkJWU9LT0hBTUEgIDIzMSAgCisJCQkJSkFQQU4KKworMDAtNjAtMDcgICAoaGV4KQkJQUNSRVMgR0FNSU5HLCBJTkMuCiswMDYwMDcgICAgIChiYXNlIDE2KQkJQUNSRVMgR0FNSU5HLCBJTkMuCisJCQkJODE1IE5XIDlUSCBTVFJFRVQKKwkJCQlDT1JWQUxMSVMgT1IgOTczMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTA4ICAgKGhleCkJCTNDT00gQ09SUE9SQVRJT04KKzAwNjAwOCAgICAgKGJhc2UgMTYpCQkzQ09NIENPUlBPUkFUSU9OCisJCQkJNTQwMCBCQVlGUk9OVCBQTEFaQQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0wOSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDYwMDkgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0wQSAgIChoZXgpCQlTT1JEIENPTVBVVEVSIENPUlBPUkFUSU9OCiswMDYwMEEgICAgIChiYXNlIDE2KQkJU09SRCBDT01QVVRFUiBDT1JQT1JBVElPTgorCQkJCTIwLTcsIE1BU0FHTyA1LUNIT01FCisJCQkJTUlIQU1BLUtVLCBDSElCQS1TSEkKKwkJCQlDSElCQSAyNjEgIAorCQkJCUpBUEFOCisKKzAwLTYwLTBCICAgKGhleCkJCUxPR1dBUkUgR21iSAorMDA2MDBCICAgICAoYmFzZSAxNikJCUxPR1dBUkUgR21iSAorCQkJCVNDSFdFREVOU1RSLiA5CisJCQkJRC0xMzM1OSBCRVJMSU4gIAorCQkJCUdFUk1BTlkKKworMDAtNjAtMEMgICAoaGV4KQkJRXVyb3RlY2ggSW5jLgorMDA2MDBDICAgICAoYmFzZSAxNikJCUV1cm90ZWNoIEluYy4KKwkJCQkxMDI2MCBPbGQgQ29sdW1iaWEgUm9hZAorCQkJCUNPTFVNQklBIE1EIDIxMDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0wRCAgIChoZXgpCQlEaWdpdGFsIExvZ2ljIEdtYkgKKzAwNjAwRCAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIExvZ2ljIEdtYkgKKwkJCQlTdGFobHdlcmtzdHIuIDI1CisJCQkJTXVkZXJzYmFjaCAgNTc1NTUKKwkJCQlHRVJNQU5ZCisKKzAwLTYwLTBFICAgKGhleCkJCVdBVkVORVQgSU5URVJOQVRJT05BTCwgSU5DLgorMDA2MDBFICAgICAoYmFzZSAxNikJCVdBVkVORVQgSU5URVJOQVRJT05BTCwgSU5DLgorCQkJCTU4MjUgS0VOTkVEWSBST0FECisJCQkJTUlTU0lTU0FVR0EsIE9OVEFSSU8gTDRaIDJHMyAgCisJCQkJQ0FOQURBCisKKzAwLTYwLTBGICAgKGhleCkJCVdFU1RFTEwsIElOQy4KKzAwNjAwRiAgICAgKGJhc2UgMTYpCQlXRVNURUxMLCBJTkMuCisJCQkJNzUgRVhFQ1VUSVZFIERSSVZFCisJCQkJQVVST1JBIElMIDYwNTA0LTQxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTEwICAgKGhleCkJCU5FVFdPUksgTUFDSElORVMsIElOQy4KKzAwNjAxMCAgICAgKGJhc2UgMTYpCQlORVRXT1JLIE1BQ0hJTkVTLCBJTkMuCisJCQkJMjU1IE9MRCBORVcgQlJVTlNXSUNLIFJELiwgIyBOMzIwCisJCQkJUElTQ0FUQVdBWSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMTEgICAoaGV4KQkJQ1JZU1RBTCBTRU1JQ09ORFVDVE9SIENPUlAuCiswMDYwMTEgICAgIChiYXNlIDE2KQkJQ1JZU1RBTCBTRU1JQ09ORFVDVE9SIENPUlAuCisJCQkJUC5PLiBCT1ggMTc4NDcKKwkJCQlBVVNUSU4gVFggNzg3NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTEyICAgKGhleCkJCVBPV0VSIENPTVBVVElORyBDT1JQT1JBVElPTgorMDA2MDEyICAgICAoYmFzZSAxNikJCVBPV0VSIENPTVBVVElORyBDT1JQT1JBVElPTgorCQkJCTEwMjYxIEJVQkIgUk9BRAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMTMgICAoaGV4KQkJTkVUU1RBTCBNQVNDSElORU4gQUcKKzAwNjAxMyAgICAgKGJhc2UgMTYpCQlORVRTVEFMIE1BU0NISU5FTiBBRworCQkJCUlORFVTVFJJRVNUUkFTU0UKKwkJCQlDSC04NzUyIE5BRUZFTFMgIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTYwLTE0ICAgKGhleCkJCUVERUMgQ08uLCBMVEQuCiswMDYwMTQgICAgIChiYXNlIDE2KQkJRURFQyBDTy4sIExURC4KKwkJCQk5RiBPRiBULk8uQy4gQlVJTERJTkcKKwkJCQk3LTIyLTE3IE5JU0hJR09UQU5EQQorCQkJCVNISU5BR0FXQUtVLCAgVE9LWU8gIAorCQkJCUpBUEFOCisKKzAwLTYwLTE1ICAgKGhleCkJCU5FVDJORVQgQ09SUE9SQVRJT04KKzAwNjAxNSAgICAgKGJhc2UgMTYpCQlORVQyTkVUIENPUlBPUkFUSU9OCisJCQkJMTMxIENPT0xJREdFIFNUUkVFVAorCQkJCUhVRFNPTiBNQSAwMTc0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMTYgICAoaGV4KQkJQ0xBUklJT04KKzAwNjAxNiAgICAgKGJhc2UgMTYpCQlDTEFSSUlPTgorCQkJCUNPU0xJTiBEUklWRQorCQkJCU1haWwgU3RvcCBDMjUKKwkJCQlTT1VUSEJPUk8gTUEgMDE3NzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTE3ICAgKGhleCkJCVRPS0lNRUMgSU5DLgorMDA2MDE3ICAgICAoYmFzZSAxNikJCVRPS0lNRUMgSU5DLgorCQkJCTItMTYsIE1JTkFNSS1LQU1BVEEsIE9IVEEtS1UKKwkJCQlUT0tZTyAxNDQgIAorCQkJCUpBUEFOCisKKzAwLTYwLTE4ICAgKGhleCkJCVNURUxMQVIgT05FIENPUlBPUkFUSU9OCiswMDYwMTggICAgIChiYXNlIDE2KQkJU1RFTExBUiBPTkUgQ09SUE9SQVRJT04KKwkJCQk1MDAgMTA4VEggQVZFLiBORS0tU1RFLiAjMjIwMAorCQkJCUJFTExFVlVFIFdBIDk4MDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0xOSAgIChoZXgpCQlSb2NoZSBEaWFnbm9zdGljcworMDA2MDE5ICAgICAoYmFzZSAxNikJCVJvY2hlIERpYWdub3N0aWNzCisJCQkJOTExNSBIYWd1ZSBSb2FkCisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjUwLTA0NTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTFBICAgKGhleCkJCUtFSVRITEVZIElOU1RSVU1FTlRTCiswMDYwMUEgICAgIChiYXNlIDE2KQkJS0VJVEhMRVkgSU5TVFJVTUVOVFMKKwkJCQkzMDUwMCBCQUlOQlJJREdFIFJELgorCQkJCVNPTE9OIE9IIDQ0MTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0xQiAgIChoZXgpCQlNRVNBIEVMRUNUUk9OSUNTCiswMDYwMUIgICAgIChiYXNlIDE2KQkJTUVTQSBFTEVDVFJPTklDUworCQkJCTEzMjMgNjFTVCBTVFJFRVQKKwkJCQlFTUVSWVZJTExFIENBIDk0NjA4LTIxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTFDICAgKGhleCkJCVRFTFhPTiBDT1JQT1JBVElPTgorMDA2MDFDICAgICAoYmFzZSAxNikJCVRFTFhPTiBDT1JQT1JBVElPTgorCQkJCTMzMzAgVy4gTUFSS0VUIFNUUkVFVAorCQkJCVBPIEJPWCA1NTgyCisJCQkJQUtST04gT0ggNDQzMzQtMDU4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMUQgICAoaGV4KQkJTFVDRU5UIFRFQ0hOT0xPR0lFUworMDA2MDFEICAgICAoYmFzZSAxNikJCUxVQ0VOVCBURUNITk9MT0dJRVMKKwkJCQkxMDEgQ1JBV0ZPUkRTIENPUk5FUiBSRC4KKwkJCQlST09NICA0Sy0zMjEKKwkJCQlIT0xNREVMIE5KIDA3NzMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0xRSAgIChoZXgpCQlTT0ZUTEFCLCBJTkMuCiswMDYwMUUgICAgIChiYXNlIDE2KQkJU09GVExBQiwgSU5DLgorCQkJCVAuTy4gQk9YIDgKKwkJCQlDSElNTkVZIFJPQ0sgQ08gODExMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTFGICAgKGhleCkJCVNUQUxMSU9OIFRFQ0hOT0xPR0lFUworMDA2MDFGICAgICAoYmFzZSAxNikJCVNUQUxMSU9OIFRFQ0hOT0xPR0lFUworCQkJCTMzIFdPT0RTVE9DSyBST0FECisJCQkJVE9PV09ORyBRLUwtRC0gNDA2NiAgCisJCQkJQVVTVFJBTElBCisKKzAwLTYwLTIwICAgKGhleCkJCVBJVk9UQUwgTkVUV09SS0lORywgSU5DLgorMDA2MDIwICAgICAoYmFzZSAxNikJCVBJVk9UQUwgTkVUV09SS0lORywgSU5DLgorCQkJCTcyNDYgU0hBUk9OIERSLiwgU1RFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTIxICAgKGhleCkJCURTQyBDT1JQT1JBVElPTgorMDA2MDIxICAgICAoYmFzZSAxNikJCURTQyBDT1JQT1JBVElPTgorCQkJCVJFQ1JVSVQtU0hJTk9IVFNVS0EgQkxERy4sCisJCQkJMi0yNS0xNSBNSU5BTUlPSFRTVUtBLCBUT1NISU1BLUtVLAorCQkJCVRPS1lPIDE3MCAgCisJCQkJSkFQQU4KKworMDAtNjAtMjIgICAoaGV4KQkJVklDT00gU1lTVEVNUywgSU5DLgorMDA2MDIyICAgICAoYmFzZSAxNikJCVZJQ09NIFNZU1RFTVMsIElOQy4KKwkJCQkxOTYxIExBTkRJTkdTIERSSVZFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMjMgICAoaGV4KQkJUEVSSUNPTSBTRU1JQ09ORFVDVE9SIENPUlAuCiswMDYwMjMgICAgIChiYXNlIDE2KQkJUEVSSUNPTSBTRU1JQ09ORFVDVE9SIENPUlAuCisJCQkJMjM4MCBCRVJJTkcgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMjQgICAoaGV4KQkJR1JBRElFTlQgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDYwMjQgICAgIChiYXNlIDE2KQkJR1JBRElFTlQgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMiBNT1VOVCBST1lBTCBBVkVOVUUKKwkJCQlNQVJMQk9STyBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMjUgICAoaGV4KQkJQUNUSVZFIElNQUdJTkcgUExDCiswMDYwMjUgICAgIChiYXNlIDE2KQkJQUNUSVZFIElNQUdJTkcgUExDCisJCQkJSEFUVE9SSSBIT1VTRQorCQkJCVZBTldBTEwgQlVTSU5FU1MgUEFSSworCQkJCU1BSURFTkhFQUQgQmVya3NoaXJlIFNMNiA0VUIgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNjAtMjYgICAoaGV4KQkJVklLSU5HIE1vZHVsYXIgU29sdXRpb25zCiswMDYwMjYgICAgIChiYXNlIDE2KQkJVklLSU5HIE1vZHVsYXIgU29sdXRpb25zCisJCQkJMTEgQ09MVU1CSUEKKwkJCQlMQUdVTkEgSElMTFMgQ0EgOTI2NTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTI3ICAgKGhleCkJCVN1cGVyaW9yIE1vZHVsYXIgUHJvZHVjdHMKKzAwNjAyNyAgICAgKGJhc2UgMTYpCQlTdXBlcmlvciBNb2R1bGFyIFByb2R1Y3RzCisJCQkJR2VuZXJhbCBUZWNobm9sb2d5IERpdmlzaW9uCisJCQkJNDE1IFBJTkVEQSBDT1VSVAorCQkJCU1FTEJPVVJORSBGTCAzMjk0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMjggICAoaGV4KQkJTUFDUk9WSVNJT04gQ09SUE9SQVRJT04KKzAwNjAyOCAgICAgKGJhc2UgMTYpCQlNQUNST1ZJU0lPTiBDT1JQT1JBVElPTgorCQkJCTI4MzAgRGUgTGEgQ3J1eiBCb3VsZXZhcmQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMjkgICAoaGV4KQkJQ0FSWSBQRVJJUEhFUkFMUyBJTkMuCiswMDYwMjkgICAgIChiYXNlIDE2KQkJQ0FSWSBQRVJJUEhFUkFMUyBJTkMuCisJCQkJMTkwIENPTE9OTkFERSBST0FEIFMsIFVOSVQgOQorCQkJCU5FUEVBTiwgT05UQVJJTyBLMkUgN0o1ICAKKwkJCQlDQU5BREEKKworMDAtNjAtMkEgICAoaGV4KQkJU1lNSUNST04gQ09NUFVURVIgQ09NTVVOSUNBVElPTlMsIExURC4KKzAwNjAyQSAgICAgKGJhc2UgMTYpCQlTWU1JQ1JPTiBDT01QVVRFUiBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCVVOSVQgNCBHUkVFTiBMQU5FIEJVU0lORVNTIFBBUksKKwkJCQkyMzggR3JlZW4gbGFuZQorCQkJCUxvbmRvbiBTRTkgM1RMICAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTJCICAgKGhleCkJCVBFQUsgQVVESU8KKzAwNjAyQiAgICAgKGJhc2UgMTYpCQlQRUFLIEFVRElPCisJCQkJMTc5MCAzMFRIIFNUUkVFVCBTVEUgIzQxNAorCQkJCUJPVUxERVIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTJDICAgKGhleCkJCUxJTlggRGF0YSBUZXJtaW5hbHMsIEluYy4KKzAwNjAyQyAgICAgKGJhc2UgMTYpCQlMSU5YIERhdGEgVGVybWluYWxzLCBJbmMuCisJCQkJNjI1IERJR0lUQUwgRFJJVkUtU1RFICMxMDAKKwkJCQlQTEFOTyBUWCA3NTA3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMkQgICAoaGV4KQkJQUxFUlRPTiBURUNITk9MT0dJRVMsIElOQy4KKzAwNjAyRCAgICAgKGJhc2UgMTYpCQlBTEVSVE9OIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTY2NzAgMTg1VEggQVZFLiBOLkUuCisJCQkJUkVETU9ORCBXQSA5ODA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMkUgICAoaGV4KQkJQ1lDTEFERVMgQ09SUE9SQVRJT04KKzAwNjAyRSAgICAgKGJhc2UgMTYpCQlDWUNMQURFUyBDT1JQT1JBVElPTgorCQkJCTQxOTM0IENIUklTVFkgU1RSRUVUCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMkYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA2MDJGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtMzAgICAoaGV4KQkJVklMTEFHRSBUUk9OSUMgRU5UV0lDS0xVTkcKKzAwNjAzMCAgICAgKGJhc2UgMTYpCQlWSUxMQUdFIFRST05JQyBFTlRXSUNLTFVORworCQkJCVdFTExXRUcgOTUKKwkJCQkzMTE1NyBTQVJTVEVEVCAgCisJCQkJR0VSTUFOWQorCiswMC02MC0zMSAgIChoZXgpCQlIUksgU1lTVEVNUworMDA2MDMxICAgICAoYmFzZSAxNikJCUhSSyBTWVNURU1TCisJCQkJUC5PLiBCT1ggNTE0CisJCQkJV0VTVFZJTExFIDM2MzAgIAorCQkJCVNPVVRIIEFGUklDQQorCiswMC02MC0zMiAgIChoZXgpCQlJLUNVQkUsIElOQy4KKzAwNjAzMiAgICAgKGJhc2UgMTYpCQlJLUNVQkUsIElOQy4KKwkJCQkyMzI4LUMgV0FMU0ggQVZFTlVFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTMzICAgKGhleCkJCUFDVUlUWSBJTUFHSU5HLCBJTkMuCiswMDYwMzMgICAgIChiYXNlIDE2KQkJQUNVSVRZIElNQUdJTkcsIElOQy4KKwkJCQk5IFRPV05TRU5EIFdFU1QKKwkJCQlOQVNIVUEgTkggMDMwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTM0ICAgKGhleCkJCVJPQkVSVCBCT1NDSCBHbWJICiswMDYwMzQgICAgIChiYXNlIDE2KQkJUk9CRVJUIEJPU0NIIEdtYkgKKwkJCQlQT1NUQk9YIDExIDYyCisJCQkJRC02NDcwMSBFUkJBQ0ggIAorCQkJCUdFUk1BTlkKKworMDAtNjAtMzUgICAoaGV4KQkJREFMTEFTIFNFTUlDT05EVUNUT1IsIElOQy4KKzAwNjAzNSAgICAgKGJhc2UgMTYpCQlEQUxMQVMgU0VNSUNPTkRVQ1RPUiwgSU5DLgorCQkJCTQ0MDEgU09VVEggQkVMVFdPT0QgUEFSS1dBWQorCQkJCURBTExBUyBUWCA3NTI0NC0zMjkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0zNiAgIChoZXgpCQlBSVQgQXVzdHJpYW4gSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3kgR21iSAorMDA2MDM2ICAgICAoYmFzZSAxNikJCUFJVCBBdXN0cmlhbiBJbnN0aXR1dGUgb2YgVGVjaG5vbG9neSBHbWJICisJCQkJRG9uYXUtQ2l0eS1TdHJhw4PFuGUgMQorCQkJCVZpZW5uYSAgMTIyMAorCQkJCUFVU1RSSUEKKworMDAtNjAtMzcgICAoaGV4KQkJTlhQIFNlbWljb25kdWN0b3JzCiswMDYwMzcgICAgIChiYXNlIDE2KQkJTlhQIFNlbWljb25kdWN0b3JzCisJCQkJTWlsbGJyb29rIFRlY2hub2xvZ3kgQ2FtcHVzCisJCQkJTWlsbGJyb29rIFNvdXRoYW1wdG9uIFNPMTUgMERKCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNjAtMzggICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCiswMDYwMzggICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJR2xvYmFsIE9wZXJhdGlvbnMgRW5naW5lZXJpbmcKKwkJCQlEZXAgNjgwMCBQcm9ncmFtIE1hbmFnZXIgODIwMCBEaXhpZSBSb2FkCisJCQkJQnJhbXB0b24gT250YXJpbyAxNlQgNVA2IAorCQkJCUNBTkFEQQorCiswMC02MC0zOSAgIChoZXgpCQlTYW5Db20gVGVjaG5vbG9neSwgSW5jLgorMDA2MDM5ICAgICAoYmFzZSAxNikJCVNhbkNvbSBUZWNobm9sb2d5LCBJbmMuCisJCQkJNzcxOSBXT09EIEhPTExPVyBEUklWRQorCQkJCVNVSVRFICMxNTYKKwkJCQlBVVNUSU4gVFggNzg3MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTNBICAgKGhleCkJCVFVSUNLIENPTlRST0xTIExURC4KKzAwNjAzQSAgICAgKGJhc2UgMTYpCQlRVUlDSyBDT05UUk9MUyBMVEQuCisJCQkJRFVSSEFNIEhPVVNFLCBXQVJXSUNLIENPVVJUCisJCQkJUEFSSyBST0FELCBNSURETEVUT04KKwkJCQlNQU5DSEVTVEVSICBNMjQgMUFFICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC02MC0zQiAgIChoZXgpCQlBTVRFQyBzcGEKKzAwNjAzQiAgICAgKGJhc2UgMTYpCQlBTVRFQyBzcGEKKwkJCQlMT0MuIFMuIE1BUlRJTk8KKwkJCQk1MzAyNSBQSUFOQ0FTVEFHTkFJTyAoU0lFTkEpICAKKwkJCQlJVEFMWQorCiswMC02MC0zQyAgIChoZXgpCQlIQUdJV0FSQSBTWVMtQ09NIENPLiwgTFRELgorMDA2MDNDICAgICAoYmFzZSAxNikJCUhBR0lXQVJBIFNZUy1DT00gQ08uLCBMVEQuCisJCQkJMi00LTMgTklTSElLSSBOQUtBLUtVCisJCQkJTkFHT1lBCisJCQkJQUlDSEkgNDYwICAKKwkJCQlKQVBBTgorCiswMC02MC0zRCAgIChoZXgpCQkzQ1gKKzAwNjAzRCAgICAgKGJhc2UgMTYpCQkzQ1gKKwkJCQkyMDg1IEhBTUlMVE9OIEFWRS4sIC1TVEUuIzIyMAorCQkJCVNBTiBKT1NFIENBIDk1MTI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0zRSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDYwM0UgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC0zRiAgIChoZXgpCQlQQVRBUFNDTyBERVNJR05TCiswMDYwM0YgICAgIChiYXNlIDE2KQkJUEFUQVBTQ08gREVTSUdOUworCQkJCTUzNTAgUEFSVE5FUlMgQ09VUlQKKwkJCQlGUkVERVJJQ0sgTUQgMjE3MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTQwICAgKGhleCkJCU5FVFJPIENPUlAuCiswMDYwNDAgICAgIChiYXNlIDE2KQkJTkVUUk8gQ09SUC4KKwkJCQkzMTIwIFNDT1RUIEJMVkQuCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTQxICAgKGhleCkJCVlva29nYXdhIEVsZWN0cmljIENvcnBvcmF0aW9uCiswMDYwNDEgICAgIChiYXNlIDE2KQkJWW9rb2dhd2EgRWxlY3RyaWMgQ29ycG9yYXRpb24KKwkJCQkyLTktMzEgTmFrYWNobywgTXVzYXNoaW5vLXNoaQorCQkJCVRva3lvIDE4MC04NzUwICAKKwkJCQlKQVBBTgorCiswMC02MC00MiAgIChoZXgpCQlUS1MgKFVTQSksIElOQy4KKzAwNjA0MiAgICAgKGJhc2UgMTYpCQlUS1MgKFVTQSksIElOQy4KKwkJCQkxMjAxIENPTU1FUkNFCisJCQkJUklDSEFSRFNPTiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNDMgICAoaGV4KQkJaURpcmVjdCwgSU5DLgorMDA2MDQzICAgICAoYmFzZSAxNikJCWlEaXJlY3QsIElOQy4KKwkJCQkxMzg2NSBTdW5yaXNlIFZhbGx5IERyaXZlCisJCQkJU3VpdGUgMTAwCisJCQkJSGVybmRvbiBWQSAyMDE3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNDQgICAoaGV4KQkJTElUVE9OL1BPTFktU0NJRU5USUZJQworMDA2MDQ0ICAgICAoYmFzZSAxNikJCUxJVFRPTi9QT0xZLVNDSUVOVElGSUMKKwkJCQkyMjAwIFNPVVRIIE1BSU4gU1RSRUVUCisJCQkJQkxBQ0tTQlVSRyBWQSAyNDA2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNDUgICAoaGV4KQkJUEFUSExJR0hUIFRFQ0hOT0xPR0lFUworMDA2MDQ1ICAgICAoYmFzZSAxNikJCVBBVEhMSUdIVCBURUNITk9MT0dJRVMKKwkJCQk3NjcgV0FSUkVOIFJPQUQKKwkJCQlJVEhBQ0EgTlkgMTQ4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTQ2ICAgKGhleCkJCVZNRVRSTywgSU5DLgorMDA2MDQ2ICAgICAoYmFzZSAxNikJCVZNRVRSTywgSU5DLgorCQkJCTE4ODAgREFJUlkgQVNIRk9SRC0gU1RFICM1MzUKKwkJCQlIT1VTVE9OIFRYIDc3MDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC00NyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDYwNDcgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC00OCAgIChoZXgpCQlFTUMgQ09SUE9SQVRJT04KKzAwNjA0OCAgICAgKGJhc2UgMTYpCQlFTUMgQ09SUE9SQVRJT04KKwkJCQkxNzEgU09VVEggU1QuLAorCQkJCUhPUEtJTlRPTiBNQSAwMTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNDkgICAoaGV4KQkJVklOQSBURUNITk9MT0dJRVMKKzAwNjA0OSAgICAgKGJhc2UgMTYpCQlWSU5BIFRFQ0hOT0xPR0lFUworCQkJCTYgVU5JT04gU1FVQVJFIC0gU1RFIEYKKwkJCQlVTklPTiBDSVRZIENBIDk0NTg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC00QSAgIChoZXgpCQlTQUlDIElERUFTIEdST1VQCiswMDYwNEEgICAgIChiYXNlIDE2KQkJU0FJQyBJREVBUyBHUk9VUAorCQkJCTcxMjAgQ09MVU1CSUEgR0FURVdBWSBEUklWRQorCQkJCUNPTFVNQklBIE1EIDIxMDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC00QiAgIChoZXgpCQlTYWZlLWNvbSBHbWJIICYgQ28uIEtHCiswMDYwNEIgICAgIChiYXNlIDE2KQkJU2FmZS1jb20gR21iSCAmIENvLiBLRworCQkJCUJ1cmcgTGljaHRlbmZlbHMKKwkJCQkzNTEwNCBMaWNodGVuZmVscyAgCisJCQkJR0VSTUFOWQorCiswMC02MC00QyAgIChoZXgpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCiswMDYwNEMgICAgIChiYXNlIDE2KQkJU0FHRU0gQ09NTVVOSUNBVElPTgorCQkJCTI3IFJVRSBMRUJMQU5DCisJCQkJQ0VERVggMTUgUEFSSVMgNzU1MTIKKwkJCQlGUkFOQ0UKKworMDAtNjAtNEQgICAoaGV4KQkJTU1DIE5FVFdPUktTLCBJTkMuCiswMDYwNEQgICAgIChiYXNlIDE2KQkJTU1DIE5FVFdPUktTLCBJTkMuCisJCQkJMTEzNCBFQVNUIEFSUVVFUyBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYtNDYwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNEUgICAoaGV4KQkJQ1lDTEUgQ09NUFVURVIgQ09SUE9SQVRJT04sIElOQy4KKzAwNjA0RSAgICAgKGJhc2UgMTYpCQlDWUNMRSBDT01QVVRFUiBDT1JQT1JBVElPTiwgSU5DLgorCQkJCTIwMjQ1IFNURVZFTlMgQ1JFRUsgQkxWRC4KKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTRGICAgKGhleCkJCVRhdHRpbGUgU1JMIAorMDA2MDRGICAgICAoYmFzZSAxNikJCVRhdHRpbGUgU1JMIAorCQkJCTU1Mi01MSBBSklHQVVSQQorCQkJCUhJVEFDSElOQUtBCisJCQkJSUJBUkFLSSwgMzExLTEyICAKKwkJCQlKQVBBTgorCiswMC02MC01MCAgIChoZXgpCQlJTlRFUk5JWCBJTkMuCiswMDYwNTAgICAgIChiYXNlIDE2KQkJSU5URVJOSVggSU5DLgorCQkJCTU5LTEwIFRBS0FLVVJBLUNITworCQkJCUhBQ0hJT0pJCisJCQkJVE9LWU8gMTkyIAorCQkJCUpBUEFOCisKKzAwLTYwLTUxICAgKGhleCkJCVFVQUxJVFkgU0VNSUNPTkRVQ1RPUgorMDA2MDUxICAgICAoYmFzZSAxNikJCVFVQUxJVFkgU0VNSUNPTkRVQ1RPUgorCQkJCTg1MSBNQVJUSU4gQVZFTlVFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTUyICAgKGhleCkJCVBFUklQSEVSQUxTIEVOVEVSUFJJU0UgQ08uLCBMdGQuCiswMDYwNTIgICAgIChiYXNlIDE2KQkJUEVSSVBIRVJBTFMgRU5URVJQUklTRSBDTy4sIEx0ZC4KKwkJCQkzRiwgTk8uMTAsIEFMTEVZIDYsIExBTkUgNDUKKwkJCQlQQU8gU0hJTiBST0FELCBIU0lOIFRJRU4gQ0lUWQorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC02MC01MyAgIChoZXgpCQlUT1lPREEgTUFDSElORSBXT1JLUywgTFRELgorMDA2MDUzICAgICAoYmFzZSAxNikJCVRPWU9EQSBNQUNISU5FIFdPUktTLCBMVEQuCisJCQkJMS03IEtJVEFKSVpPWUFNQSBOT0RBQ0hPVQorCQkJCUtBUklZQSBDSVRZLCBBSUNISSAgCisJCQkJSkFQQU4KKworMDAtNjAtNTQgICAoaGV4KQkJQ09OVFJPTFdBUkUgR01CSAorMDA2MDU0ICAgICAoYmFzZSAxNikJCUNPTlRST0xXQVJFIEdNQkgKKwkJCQlXQUxEU1RSQVNTRSA5MgorCQkJCTYzMTI4IERJRVRaRU5CQUNIICAKKwkJCQlHRVJNQU5ZCisKKzAwLTYwLTU1ICAgKGhleCkJCUNPUk5FTEwgVU5JVkVSU0lUWQorMDA2MDU1ICAgICAoYmFzZSAxNikJCUNPUk5FTEwgVU5JVkVSU0lUWQorCQkJCTExMCBNQVBMRSBBVkVOVUUKKwkJCQlJVEhBQ0EgTlkgMTQ4NTAtNDkwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNTYgICAoaGV4KQkJTkVUV09SSyBUT09MUywgSU5DLgorMDA2MDU2ICAgICAoYmFzZSAxNikJCU5FVFdPUksgVE9PTFMsIElOQy4KKwkJCQkyOTc1IEJPV0VSUyBBVkVOVUUsICMyMDIKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MS0wOTU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC01NyAgIChoZXgpCQlNVVJBVEEgTUFOVUZBQ1RVUklORyBDTy4sIExURC4KKzAwNjA1NyAgICAgKGJhc2UgMTYpCQlNVVJBVEEgTUFOVUZBQ1RVUklORyBDTy4sIExURC4KKwkJCQkxLTE4LTEgSEFLVVNBTiBNSURPUkktS1UKKwkJCQlZT0tPSEFNQSAgMjI2ICAKKwkJCQlKQVBBTgorCiswMC02MC01OCAgIChoZXgpCQlDT1BQRVIgTU9VTlRBSU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwNjA1OCAgICAgKGJhc2UgMTYpCQlDT1BQRVIgTU9VTlRBSU4gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk2NjUwIExVU0sgQkxWRC4tU1RFICNCMTAzCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC01OSAgIChoZXgpCQlURUNITklDQUwgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwNjA1OSAgICAgKGJhc2UgMTYpCQlURUNITklDQUwgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQkxMDAgRE9NSU5PIERSSVZFCisJCQkJQ09OQ09SRCBNQSAwMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNUEgICAoaGV4KQkJQ0VMQ09SRSwgSU5DLgorMDA2MDVBICAgICAoYmFzZSAxNikJCUNFTENPUkUsIElOQy4KKwkJCQk4MDAxIENFTlRFUlZJRVcgUEFSS1dBWQorCQkJCVNVSVRFICMyMDEKKwkJCQlNRU1QSElTIFROIDM4MDE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC01QiAgIChoZXgpCQlJbnRyYVNlcnZlciBUZWNobm9sb2d5LCBJbmMuCiswMDYwNUIgICAgIChiYXNlIDE2KQkJSW50cmFTZXJ2ZXIgVGVjaG5vbG9neSwgSW5jLgorCQkJCTEyNSBIT1BQSU5HIEJST09LIFBBUksKKwkJCQlIT0xMSVNUT04gTUEgMDE3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTVDICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwNjA1QyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTVEICAgKGhleCkJCVNDQU5JVkFMVkUgQ09SUC4KKzAwNjA1RCAgICAgKGJhc2UgMTYpCQlTQ0FOSVZBTFZFIENPUlAuCisJCQkJMTcyMiBOLiBNQURTT04gU1RSRUVUCisJCQkJTElCRVJUWSBMQUtFIFdBIDk5MDE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC01RSAgIChoZXgpCQlMSUJFUlRZIFRFQ0hOT0xPR1kgTkVUV09SS0lORworMDA2MDVFICAgICAoYmFzZSAxNikJCUxJQkVSVFkgVEVDSE5PTE9HWSBORVRXT1JLSU5HCisJCQkJUC5PLiBCT1ggMTE1NjYKKwkJCQlIQVRGSUVMRCwgUFJFVE9SSUEgMDAyOCAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTYwLTVGICAgKGhleCkJCU5JUFBPTiBVTklTT0ZUIENPUlBPUkFUSU9OCiswMDYwNUYgICAgIChiYXNlIDE2KQkJTklQUE9OIFVOSVNPRlQgQ09SUE9SQVRJT04KKwkJCQlCUiBOSU5HWU9DSE8gMSwyLTEzLTkKKwkJCQlOSUhPTkJBU0hJLU5JTkdZT0NITywgQ0hVTy1LVQorCQkJCVRPS1lPIDEwMyAgCisJCQkJSkFQQU4KKworMDAtNjAtNjAgICAoaGV4KQkJREFXTklORyBURUNITk9MT0dJRVMsIElOQy4KKzAwNjA2MCAgICAgKGJhc2UgMTYpCQlEQVdOSU5HIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTQwOSBNQVNPTiBST0FECisJCQkJRkFJUlBPUlQgTlkgMTQ0NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTYxICAgKGhleCkJCVdISVNUTEUgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwNjA2MSAgICAgKGJhc2UgMTYpCQlXSElTVExFIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJMTEwIE1BUlNIIERSSVZFLVNURSAjMTAwCisJCQkJRk9TVEVSIENJVFkgQ0EgOTQ0MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTYyICAgKGhleCkJCVRFTEVTWU5DLCBJTkMuCiswMDYwNjIgICAgIChiYXNlIDE2KQkJVEVMRVNZTkMsIElOQy4KKwkJCQk1NTU1IE9BS0JST09LIFBLV1ktU1RFICMxMTAKKwkJCQlOT1JDUk9TUyBHQSAzMDA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNjMgICAoaGV4KQkJUFNJT04gREFDT00gUExDLgorMDA2MDYzICAgICAoYmFzZSAxNikJCVBTSU9OIERBQ09NIFBMQy4KKwkJCQlQU0lPTiBEQUNPTSBIT1VTRQorCQkJCVBSRVNMRVkgV0FZLAorCQkJCUNST1dOSElMTCBNSUxUT04gS0VZTkVTICBNSzggMEVGIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTYwLTY0ICAgKGhleCkJCU5FVENPTU0gTElNSVRFRAorMDA2MDY0ICAgICAoYmFzZSAxNikJCU5FVENPTU0gTElNSVRFRAorCQkJCVBPIEJPWCAzNzkKKwkJCQlOT1JUSCBSWURFLCBOU1csIDIxMTMgIAorCQkJCUFVU1RSQUxJQQorCiswMC02MC02NSAgIChoZXgpCQlCRVJORUNLRVIgJiBSQUlORVIgSU5EVVNUUklFLUVMRUtUUk9OSUMgR21iSAorMDA2MDY1ICAgICAoYmFzZSAxNikJCUJFUk5FQ0tFUiAmIFJBSU5FUiBJTkRVU1RSSUUtRUxFS1RST05JQyBHbWJICisJCQkJRUdHRUxTQkVSRyAxMjAKKwkJCQk1MTQyIEVHR0VMU0JFUkcgIAorCQkJCUFVU1RSSUEKKworMDAtNjAtNjYgICAoaGV4KQkJTEFDUk9JWCBUcmFmaWMKKzAwNjA2NiAgICAgKGJhc2UgMTYpCQlMQUNST0lYIFRyYWZpYworCQkJCTEgZXJlIEF2ZW51ZSwgMTEgZW1lIHJ1ZQorCQkJCTA2NTE2IENBUlJPUyAgCisJCQkJRlJBTkNFCisKKzAwLTYwLTY3ICAgKGhleCkJCUFDRVIgTkVUWFVTIElOQy4KKzAwNjA2NyAgICAgKGJhc2UgMTYpCQlBQ0VSIE5FVFhVUyBJTkMuCisJCQkJNUYtMywgNSBIU0lOIEFOTiBST0FEICBTQklQCisJCQkJSFNJTkNIVSAzMDAgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNjAtNjggICAoaGV4KQkJRGlhbG9naWMgQ29ycG9yYXRpb24KKzAwNjA2OCAgICAgKGJhc2UgMTYpCQlEaWFsb2dpYyBDb3Jwb3JhdGlvbgorCQkJCTk4MDAgQ2F2ZW5kaXNoIEJsdmQsIDV0aCBGbG9vcgorCQkJCU1vbnRyZWFsIFF1ZWJlYyBINE0gMlY5CisJCQkJQ0FOQURBCisKKzAwLTYwLTY5ICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorMDA2MDY5ICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorCQkJCTE3NDUgVGVjaG5vbG9neSBEcml2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC02QSAgIChoZXgpCQlNSVRTVUJJU0hJIFdJUkVMRVNTIENPTU1VTklDQVRJT05TLiBJTkMuCiswMDYwNkEgICAgIChiYXNlIDE2KQkJTUlUU1VCSVNISSBXSVJFTEVTUyBDT01NVU5JQ0FUSU9OUy4gSU5DLgorCQkJCTIwMDEgQ0hFUlJZIERSSVZFCisJCQkJQlJBU0VMVE9OIEdBIDMwNTE3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC02QiAgIChoZXgpCQlTeW5jbGF5ZXIgSW5jLgorMDA2MDZCICAgICAoYmFzZSAxNikJCVN5bmNsYXllciBJbmMuCisJCQkJMS0yMCBIaW1lZ2Fva2EKKwkJCQlLYW5pLUNpdHkKKwkJCQlHSUZVIDUwOS0wMjQ5ICAKKwkJCQlKQVBBTgorCiswMC02MC02QyAgIChoZXgpCQlBUkVTQ09NCiswMDYwNkMgICAgIChiYXNlIDE2KQkJQVJFU0NPTQorCQkJCTI4MzMgSlVOQ1RJT04gQVZFLiAtIFNURSAjMjA2CisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTZEICAgKGhleCkJCURJR0lUQUwgRVFVSVBNRU5UIENPUlAuCiswMDYwNkQgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUC4KKwkJCQk1NTAgS0lORyBTVFJFRVQKKwkJCQlNL1MgTEtHMS0zL0ExMAorCQkJCUxJVFRMRVRPTiBNQSAwMTQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNkUgICAoaGV4KQkJREFWSUNPTSBTRU1JQ09ORFVDVE9SLCBJTkMuCiswMDYwNkUgICAgIChiYXNlIDE2KQkJREFWSUNPTSBTRU1JQ09ORFVDVE9SLCBJTkMuCisJCQkJMjQ1NyBBVUdVU1RJTkUgRFJJVkUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtNkYgICAoaGV4KQkJQ0xBUklPTiBDT1JQT1JBVElPTiBPRiBBTUVSSUNBCiswMDYwNkYgICAgIChiYXNlIDE2KQkJQ0xBUklPTiBDT1JQT1JBVElPTiBPRiBBTUVSSUNBCisJCQkJMTcgTEFLRVNJREUgT0ZGSUNFIFBBUksKKwkJCQk2MDcgTk9SVEggQVZFTlVFCisJCQkJV0FLRUZJRUxEIE1BIDAxODgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC03MCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDYwNzAgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC03MSAgIChoZXgpCQlNSURBUyBMQUIsIElOQy4KKzAwNjA3MSAgICAgKGJhc2UgMTYpCQlNSURBUyBMQUIsIElOQy4KKwkJCQk0IEtBVEFNQUNISSwKKwkJCQlTSElOSlVLVS1LVQorCQkJCVRPS1lPIDE2MCAKKwkJCQlKQVBBTgorCiswMC02MC03MiAgIChoZXgpCQlWWEwgSU5TVFJVTUVOVFMsIExJTUlURUQKKzAwNjA3MiAgICAgKGJhc2UgMTYpCQlWWEwgSU5TVFJVTUVOVFMsIExJTUlURUQKKwkJCQlQTE9UIE5PLiAxNywgS09OQVBQQU5BIEFHUkFIQVJBCisJCQkJRUxFQ1RST05JQyBDSVRZCisJCQkJQkFOR0FMT1JFIC0gIDU2MSAyMjkgIAorCQkJCUlORElBCisKKzAwLTYwLTczICAgKGhleCkJCVJFRENSRUVLIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDYwNzMgICAgIChiYXNlIDE2KQkJUkVEQ1JFRUsgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkzOTAwIE5FV1BBUksgTUFMTCBST0FECisJCQkJTkVXQVJLIENBIDk0NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC03NCAgIChoZXgpCQlRU0MgQVVESU8gUFJPRFVDVFMKKzAwNjA3NCAgICAgKGJhc2UgMTYpCQlRU0MgQVVESU8gUFJPRFVDVFMKKwkJCQkxNjc1IE1BQ0FSVEhVUiBCTFZELgorCQkJCUNPU1RBIE1FU0EgQ0EgOTI2MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTc1ICAgKGhleCkJCVBFTlRFSywgSU5DLgorMDA2MDc1ICAgICAoYmFzZSAxNikJCVBFTlRFSywgSU5DLgorCQkJCTEgUEFSSyBXQVkKKwkJCQlVUFBFUiBTQURETEUgUklWRVIgTkogMDc0NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTc2ICAgKGhleCkJCVNDSExVTUJFUkdFUiBURUNITk9MT0dJRVMgUkVUQUlMIFBFVFJPTEVVTSBTWVNURU1TCiswMDYwNzYgICAgIChiYXNlIDE2KQkJU0NITFVNQkVSR0VSIFRFQ0hOT0xPR0lFUyBSRVRBSUwgUEVUUk9MRVVNIFNZU1RFTVMKKwkJCQk4MjUtTSBHUkVFTkJSSUVSIENJUkNMRQorCQkJCUNIRVNBUEVBS0UgVkEgMjMzMjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTc3ICAgKGhleCkJCVBSSVNBIE5FVFdPUktTCiswMDYwNzcgICAgIChiYXNlIDE2KQkJUFJJU0EgTkVUV09SS1MKKwkJCQk2NjIwIE1lc2EgUmlkZ2UgUm9hZCwKKwkJCQlTdWl0ZSAyMDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTc4ICAgKGhleCkJCVBPV0VSIE1FQVNVUkVNRU5UIExURC4KKzAwNjA3OCAgICAgKGJhc2UgMTYpCQlQT1dFUiBNRUFTVVJFTUVOVCBMVEQuCisJCQkJMjE5NSBLRUFUSU5HIENST1NTIFJPQUQKKwkJCQlTQUFOSUNIVE9OLCBCLkMuIFY4TSAyQTUgIAorCQkJCUNBTkFEQQorCiswMC02MC03OSAgIChoZXgpCQlNYWluc3RyZWFtIERhdGEsIEluYy4KKzAwNjA3OSAgICAgKGJhc2UgMTYpCQlNYWluc3RyZWFtIERhdGEsIEluYy4KKwkJCQkzNzUgQ2hpcGV0YSBXYXksIFN1aXRlIEIKKwkJCQlTYWx0IExha2UgQ2l0eSBVVCA4NDEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtN0EgICAoaGV4KQkJRFZTIEdtYkgKKzAwNjA3QSAgICAgKGJhc2UgMTYpCQlEVlMgR21iSAorCQkJCUtSRVBFTlNUUkFTU0UgOAorCQkJCUQtMzAxNjUgSEFOTk9WRVIgIAorCQkJCUdFUk1BTlkKKworMDAtNjAtN0IgICAoaGV4KQkJRk9SRSBTWVNURU1TLCBJTkMuCiswMDYwN0IgICAgIChiYXNlIDE2KQkJRk9SRSBTWVNURU1TLCBJTkMuCisJCQkJMTAwMCBGT1JFIERSSVZFCisJCQkJV0FSUkVOREFMRSBQQSAxNTA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtN0MgICAoaGV4KQkJV2F2ZUFjY2VzcywgTHRkLgorMDA2MDdDICAgICAoYmFzZSAxNikJCVdhdmVBY2Nlc3MsIEx0ZC4KKwkJCQlQLk8uIEJPWCAyNDczCisJCQkJMTAgSEFZRVpJUkEgU1RSRUVUCisJCQkJUkEnQU5BTkEgNDM2NjMgIAorCQkJCUlTUkFFTAorCiswMC02MC03RCAgIChoZXgpCQlTRU5USUVOVCBORVRXT1JLUyBJTkMuCiswMDYwN0QgICAgIChiYXNlIDE2KQkJU0VOVElFTlQgTkVUV09SS1MgSU5DLgorCQkJCTIyMDEgQ0FOVFUgQ09VUlQtU1RFICMyMDUKKwkJCQlTQVJBU09UQSBGTCAzNDIzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtN0UgICAoaGV4KQkJR0lHQUxBQlMsIElOQy4KKzAwNjA3RSAgICAgKGJhc2UgMTYpCQlHSUdBTEFCUywgSU5DLgorCQkJCTI5MCBTQU5UQSBBTkEgQ09VUlQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTdGICAgKGhleCkJCUFVUk9SQSBURUNITk9MT0dJRVMsIElOQy4KKzAwNjA3RiAgICAgKGJhc2UgMTYpCQlBVVJPUkEgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTc2IFNFQ09ORCBBVkVOVUUKKwkJCQlXQUxUSEFNIE1BIDAyMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04MCAgIChoZXgpCQlNSUNST1RST05JWCBEQVRBQ09NIExURC4KKzAwNjA4MCAgICAgKGJhc2UgMTYpCQlNSUNST1RST05JWCBEQVRBQ09NIExURC4KKwkJCQkyMDAgQUJFUkRFRU4gRFJJVkUKKwkJCQlMT05ET04sIE9OVEFSSU8gTjVWIDROMiAgCisJCQkJQ0FOQURBCisKKzAwLTYwLTgxICAgKGhleCkJCVRWL0NPTSBJTlRFUk5BVElPTkFMCiswMDYwODEgICAgIChiYXNlIDE2KQkJVFYvQ09NIElOVEVSTkFUSU9OQUwKKwkJCQkxNjUxNiBWSUEgRVNQUklMTE8KKwkJCQlTQU4gRElFR08gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTgyICAgKGhleCkJCU5PVkFMSU5LIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA2MDgyICAgICAoYmFzZSAxNikJCU5PVkFMSU5LIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTQ4NTExIFdBUk0gU1BSSU5HUyBCTFZELiAjMjA4CisJCQkJRlJFTU9OVCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtODMgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA2MDgzICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtODQgICAoaGV4KQkJRElHSVRBTCBWSURFTworMDA2MDg0ICAgICAoYmFzZSAxNikJCURJR0lUQUwgVklERU8KKwkJCQk0OTIwIEFWQUxPTiBSSURHRSBQS1dZCisJCQkJU1VJVEUgIzYwMAorCQkJCU5PUkNST1NTIEdBIDMwMDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04NSAgIChoZXgpCQlTdG9yYWdlIENvbmNlcHRzCiswMDYwODUgICAgIChiYXNlIDE2KQkJU3RvcmFnZSBDb25jZXB0cworCQkJCTE0MzUyIENoYW1iZXIgUm9hZAorCQkJCVR1c3RpbiBDQSA5Mjc4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtODYgICAoaGV4KQkJTE9HSUMgUkVQTEFDRU1FTlQgVEVDSC4gTFRELgorMDA2MDg2ICAgICAoYmFzZSAxNikJCUxPR0lDIFJFUExBQ0VNRU5UIFRFQ0guIExURC4KKwkJCQkxNCBBUktXUklHSFQgUk9BRAorCQkJCVJFQURJTkcgQkVSS1MgUkcyMExTCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC02MC04NyAgIChoZXgpCQlLQU5TQUkgRUxFQ1RSSUMgQ08uLCBMVEQuCiswMDYwODcgICAgIChiYXNlIDE2KQkJS0FOU0FJIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTYtMTQtOSBNSURPUklJLCBBU0FNSU5BTUktS1UKKwkJCQlISVJPU0hJTUEgNzMxLTAxICAKKwkJCQlKQVBBTgorCiswMC02MC04OCAgIChoZXgpCQlXSElURSBNT1VOVEFJTiBEU1AsIElOQy4KKzAwNjA4OCAgICAgKGJhc2UgMTYpCQlXSElURSBNT1VOVEFJTiBEU1AsIElOQy4KKwkJCQk0MTAgQU1IRVJTVCBTVFJFRVQtU1RFICMzMjUKKwkJCQlOQVNIVUEgTkggMDMwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTg5ICAgKGhleCkJCVhBVEEKKzAwNjA4OSAgICAgKGJhc2UgMTYpCQlYQVRBCisJCQkJMTUxIEVBU1QgQ0xJRkYgUk9BRC1TVEUuIzEwCisJCQkJQlVSTlNWSUxMRSBNTiA1NTMzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtOEEgICAoaGV4KQkJQ0lUQURFTCBDT01QVVRFUgorMDA2MDhBICAgICAoYmFzZSAxNikJCUNJVEFERUwgQ09NUFVURVIKKwkJCQkyOSBBUk1PUlkgUkQKKwkJCQlNSUxGT1JEIE1BIDAzMDU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04QiAgIChoZXgpCQlDb25mZXJUZWNoIEludGVybmF0aW9uYWwKKzAwNjA4QiAgICAgKGJhc2UgMTYpCQlDb25mZXJUZWNoIEludGVybmF0aW9uYWwKKwkJCQkxMjExMCBOLiBQRUNPUyBTVFJFRVQKKwkJCQlXRVNUTUlOU1RFUiBDTyA4MDIzNC0yMDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04QyAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMDYwOEMgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQkFZRlJPTlQgUExBWkEKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1Mi04MTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC04RCAgIChoZXgpCQlVTklQVUxTRSBDT1JQLgorMDA2MDhEICAgICAoYmFzZSAxNikJCVVOSVBVTFNFIENPUlAuCisJCQkJMi03LCBTRU5HRU5EQUktTklTSEkKKwkJCQlLT1NISUdBWUEtQ0lUWQorCQkJCVNBSVRBTUEgMzQzICAKKwkJCQlKT1JEQU4KKworMDAtNjAtOEUgICAoaGV4KQkJSEUgRUxFQ1RST05JQ1MsIFRFQ0hOT0xPR0lFICYgU1lTVEVNVEVDSE5JSyBHbWJICiswMDYwOEUgICAgIChiYXNlIDE2KQkJSEUgRUxFQ1RST05JQ1MsIFRFQ0hOT0xPR0lFICYgU1lTVEVNVEVDSE5JSyBHbWJICisJCQkJQU0gR05FSVNFTkFVRkxPVCA4CisJCQkJIEQtNjY1MzggTkVVTkhJUkNIRU4gIAorCQkJCUdFUk1BTlkKKworMDAtNjAtOEYgICAoaGV4KQkJVEVLUkFNIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDYwOEYgICAgIChiYXNlIDE2KQkJVEVLUkFNIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJQjEsIE5PLiAxNywgTEFORSAxNTksIFNFQy4gNgorCQkJCVJPT1NFVkVMVCBSRCwKKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNjAtOTAgICAoaGV4KQkJQXJ0aXphIE5ldHdvcmtzIEluYworMDA2MDkwICAgICAoYmFzZSAxNikJCUFydGl6YSBOZXR3b3JrcyBJbmMKKwkJCQlGYXJldCBUYWNoaWthd2EgQ2VudGVyIFNxdWFyZSwgMi0zNi0yIEFrZWJvbm8tY2hvLCAKKwkJCQlUYWNoaWthd2Etc2hpLCBUb2t5byAgMTkwLTAwMTIKKwkJCQlKQVBBTgorCiswMC02MC05MSAgIChoZXgpCQlGSVJTVCBQQUNJRklDIE5FVFdPUktTLCBJTkMuCiswMDYwOTEgICAgIChiYXNlIDE2KQkJRklSU1QgUEFDSUZJQyBORVRXT1JLUywgSU5DLgorCQkJCTg3MSBGT1ggTEFORQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC05MiAgIChoZXgpCQlNSUNSTy9TWVMsIElOQy4KKzAwNjA5MiAgICAgKGJhc2UgMTYpCQlNSUNSTy9TWVMsIElOQy4KKwkJCQkzNDQ3IE9DRUFOIFZJRVcgQkxWRC4KKwkJCQlHTEVOREFMRSBDQSA5MTIwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtOTMgICAoaGV4KQkJVkFSSUFOCiswMDYwOTMgICAgIChiYXNlIDE2KQkJVkFSSUFOCisJCQkJMjcwMCBNSVRDSEVMTCBEUi4KKwkJCQlXQUxOVVQgR1JFRUsgQ0EgOTQ1OTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTk0ICAgKGhleCkJCUlCTSBDb3JwCiswMDYwOTQgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSb2FkCisJCQkJUE8gQk9YIDEyMTk1CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0yMTk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC05NSAgIChoZXgpCQlBQ0NVLVRJTUUgU1lTVEVNUywgSU5DLgorMDA2MDk1ICAgICAoYmFzZSAxNikJCUFDQ1UtVElNRSBTWVNURU1TLCBJTkMuCisJCQkJNDIwIFNPTUVSUyBST0FECisJCQkJRUxMSU5HVE9OIENUIDA2MDI5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC05NiAgIChoZXgpCQlULlMuIE1JQ1JPVEVDSCBJTkMuCiswMDYwOTYgICAgIChiYXNlIDE2KQkJVC5TLiBNSUNST1RFQ0ggSU5DLgorCQkJCTIwODE4IEhJR0dJTlMgQ09VUlQKKwkJCQlUT1JSQU5DRSBDQSA5MDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtOTcgICAoaGV4KQkJM0NPTSBDT1JQT1JBVElPTgorMDA2MDk3ICAgICAoYmFzZSAxNikJCTNDT00gQ09SUE9SQVRJT04KKwkJCQk1NDAwIEJBWUZST05UIFBMQVpBCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTk4ICAgKGhleCkJCUhUIENPTU1VTklDQVRJT05TCiswMDYwOTggICAgIChiYXNlIDE2KQkJSFQgQ09NTVVOSUNBVElPTlMKKwkJCQk0NDgwIFNIT1BQSU5HIExBTkUKKwkJCQlTSU1JIFZBTExFWSBDQSA5MzA2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtOTkgICAoaGV4KQkJU0JFLCBJbmMuCiswMDYwOTkgICAgIChiYXNlIDE2KQkJU0JFLCBJbmMuCisJCQkJMjMwNSBDYW1pbm8gUmFtb24KKwkJCQlTdWl0ZSAyMDAKKwkJCQlTYW4gUmFtb24gQ0EgOTQ1ODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTlBICAgKGhleCkJCU5KSyBURUNITk8gQ08uCiswMDYwOUEgICAgIChiYXNlIDE2KQkJTkpLIFRFQ0hOTyBDTy4KKwkJCQlOMS0yNSBLQU1JWUFTQVRPCisJCQkJS09NQVRTVSAgIzkyMyAgCisJCQkJSkFQQU4KKworMDAtNjAtOUIgICAoaGV4KQkJQVNUUk8tTUVELCBJTkMuCiswMDYwOUIgICAgIChiYXNlIDE2KQkJQVNUUk8tTUVELCBJTkMuCisJCQkJNjAwIEVBU1QgR1JFRU5XSUNIIEFWRS4KKwkJCQlXRVNUIFdBUldJQ0sgUkkgMDI4OTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTlDICAgKGhleCkJCVBlcmtpbi1FbG1lciBJbmNvcnBvcmF0ZWQKKzAwNjA5QyAgICAgKGJhc2UgMTYpCQlQZXJraW4tRWxtZXIgSW5jb3Jwb3JhdGVkCisJCQkJNzEwIEJyaWRnZXBvcnQgQXZlLgorCQkJCVNoZWx0b24gQ1QgMDY0ODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTlEICAgKGhleCkJCVBNSSBGT09EIEVRVUlQTUVOVCBHUk9VUAorMDA2MDlEICAgICAoYmFzZSAxNikJCVBNSSBGT09EIEVRVUlQTUVOVCBHUk9VUAorCQkJCTcwMSBSSURHRSBBVkVOVUUKKwkJCQlUUk9ZIE9IIDQ1Mzc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC05RSAgIChoZXgpCQlBU0MgWDMgLSBJTkZPUk1BVElPTiBURUNITk9MT0dZIFNUQU5EQVJEUyBTRUNSRVRBUklBVFMKKzAwNjA5RSAgICAgKGJhc2UgMTYpCQlBU0MgWDMgLSBJTkZPUk1BVElPTiBURUNITk9MT0dZIFNUQU5EQVJEUyBTRUNSRVRBUklBVFMKKwkJCQkxMjUwIEVZRSBTVFJFRVQgTlcgLSBTVEUgIzIwMAorCQkJCVdBU0hJTkdUT04gREMgMjAwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLTlGICAgKGhleCkJCVBIQVNUIENPUlBPUkFUSU9OCiswMDYwOUYgICAgIChiYXNlIDE2KQkJUEhBU1QgQ09SUE9SQVRJT04KKwkJCQk3OSBXRVNUIDQ1MDAgU09VVEggLSBCTERHLiMxNAorCQkJCVNBTFQgTEFLRSBDSVRZIFVUIDg0MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1BMCAgIChoZXgpCQlTV0lUQ0hFRCBORVRXT1JLIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA2MEEwICAgICAoYmFzZSAxNikJCVNXSVRDSEVEIE5FVFdPUksgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTM4MDUgMVNUIEFWRU5VRSBOT1JUSAorCQkJCVBMWU1PVVRIIE1OIDU1NDQxLTU0NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUExICAgKGhleCkJCVZQTmV0LCBJbmMuCiswMDYwQTEgICAgIChiYXNlIDE2KQkJVlBOZXQsIEluYy4KKwkJCQk1NTUgTi4gTUFUSElMREEgQVZFLiwtU1RFICMxMTAKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUEyICAgKGhleCkJCU5JSE9OIFVOSVNZUyBMSU1JVEVEIENPLgorMDA2MEEyICAgICAoYmFzZSAxNikJCU5JSE9OIFVOSVNZUyBMSU1JVEVEIENPLgorCQkJCVAuTy4gQk9YIDEzNQorCQkJCVRPS1lPLVRPLCAgS09VVE9VLUtVCisJCQkJU0hJTk9OT01FIDEtMTAtOSAgCisJCQkJSkFQQU4KKworMDAtNjAtQTMgICAoaGV4KQkJQ09OVElOVVVNIFRFQ0hOT0xPR1kgQ09SUC4KKzAwNjBBMyAgICAgKGJhc2UgMTYpCQlDT05USU5VVU0gVEVDSE5PTE9HWSBDT1JQLgorCQkJCTIyMCBDT05USU5VVU0gRFJJVkUKKwkJCQlGTEVUQ0hFUiBOQyAyODczMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQTQgICAoaGV4KQkJR1JJTkFLRVIgU1lTVEVNIFRFQ0hOT0xPR0lFUworMDA2MEE0ICAgICAoYmFzZSAxNikJCUdSSU5BS0VSIFNZU1RFTSBURUNITk9MT0dJRVMKKwkJCQlCT1ggOTEyLTU2MQorCQkJCVNJTFZFUlRPTiAgMDEyNyAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTYwLUE1ICAgKGhleCkJCVBFUkZPUk1BTkNFIFRFTEVDT00gQ09SUC4KKzAwNjBBNSAgICAgKGJhc2UgMTYpCQlQRVJGT1JNQU5DRSBURUxFQ09NIENPUlAuCisJCQkJMTAgQ0FSTFNPTiBST0FECisJCQkJUk9DSEVTVEVSIE5ZIDE0NjEwLTEwMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUE2ICAgKGhleCkJCVBBUlRJQ0xFIE1FQVNVUklORyBTWVNURU1TCiswMDYwQTYgICAgIChiYXNlIDE2KQkJUEFSVElDTEUgTUVBU1VSSU5HIFNZU1RFTVMKKwkJCQk1NDc1IEFJUlBPUlQgQkxWRC4KKwkJCQlCT1VMREVSIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1BNyAgIChoZXgpCQlNSUNST1NFTlMgR21iSCAmIENPLiBLRworMDA2MEE3ICAgICAoYmFzZSAxNikJCU1JQ1JPU0VOUyBHbWJIICYgQ08uIEtHCisJCQkJS3VlZmVyc3RyYXNzZSAxNgorCQkJCUQtNTkwNjcgSGFtbSAgCisJCQkJR0VSTUFOWQorCiswMC02MC1BOCAgIChoZXgpCQlUSURPTUFUIEFCCiswMDYwQTggICAgIChiYXNlIDE2KQkJVElET01BVCBBQgorCQkJCQorCQkJCVMtMTIwODkgU1RPQ0tIT0xNICAKKwkJCQlTV0VERU4KKworMDAtNjAtQTkgICAoaGV4KQkJR0VTWVRFQyBNYkgKKzAwNjBBOSAgICAgKGJhc2UgMTYpCQlHRVNZVEVDIE1iSAorCQkJCVBBU0NBTFNUUkFTU0UgNgorCQkJCUQgNTIwNzYgQUFDSEVOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTYwLUFBICAgKGhleCkJCUlOVEVMTElHRU5UIERFVklDRVMgSU5DLiAoSURJKQorMDA2MEFBICAgICAoYmFzZSAxNikJCUlOVEVMTElHRU5UIERFVklDRVMgSU5DLiAoSURJKQorCQkJCTE3MTgtTCBCRUxNT05UIEFWRU5VRQorCQkJCUJBTFRJTU9SRSBNRCAyMTI0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQUIgICAoaGV4KQkJTEFSU0NPTSBJTkNPUlBPUkFURUQKKzAwNjBBQiAgICAgKGJhc2UgMTYpCQlMQVJTQ09NIElOQ09SUE9SQVRFRAorCQkJCTE4NDUgTUNDQU5ETEVTUyBEUklWRQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1BQyAgIChoZXgpCQlSRVNJTElFTkNFIENPUlBPUkFUSU9OCiswMDYwQUMgICAgIChiYXNlIDE2KQkJUkVTSUxJRU5DRSBDT1JQT1JBVElPTgorCQkJCTE3NTUgRU1CQVJDQURFUk8gUk9BRC1TVEUgIzEyMAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQUQgICAoaGV4KQkJTWVnYUNoaXBzIENvcnBvcmF0aW9uCiswMDYwQUQgICAgIChiYXNlIDE2KQkJTWVnYUNoaXBzIENvcnBvcmF0aW9uCisJCQkJNC0xLTYsTWl5YWhhcmEKKwkJCQlZb2RvZ2F3YS1rdQorCQkJCU9zYWthIDUzMi0wMDAzCisJCQkJSkFQQU4KKworMDAtNjAtQUUgICAoaGV4KQkJVFJJTyBJTkZPUk1BVElPTiBTWVNURU1TIEFCCiswMDYwQUUgICAgIChiYXNlIDE2KQkJVFJJTyBJTkZPUk1BVElPTiBTWVNURU1TIEFCCisJCQkJRk9HREVWQUdFTiA0QgorCQkJCVMtMTgzIDY0IFRBQlkgCisJCQkJU1dFREVOCisKKzAwLTYwLUFGICAgKGhleCkJCVBBQ0lGSUMgTUlDUk8gREFUQSwgSU5DLgorMDA2MEFGICAgICAoYmFzZSAxNikJCVBBQ0lGSUMgTUlDUk8gREFUQSwgSU5DLgorCQkJCTE2NzUxIE1JTExJS0FOIEFWRU5VRQorCQkJCUlSVklORSBDQSA5MjcxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQjAgICAoaGV4KQkJSEVXTEVUVC1QQUNLQVJEIENPLgorMDA2MEIwICAgICAoYmFzZSAxNikJCUhFV0xFVFQtUEFDS0FSRCBDTy4KKwkJCQlNUyA0MkxFCisJCQkJMTAwMDAgV09MRkUgUk9BRAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQjEgICAoaGV4KQkJSU5QVVQvT1VUUFVULCBJTkMuCiswMDYwQjEgICAgIChiYXNlIDE2KQkJSU5QVVQvT1VUUFVULCBJTkMuCisJCQkJMTIzMDAgUEFSQyBDUkVTVCBEUklWRQorCQkJCVNUQUZGT1JEIFRYIDc3NDc3LTI0MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUIyICAgKGhleCkJCVBST0NFU1MgQ09OVFJPTCBDT1JQLgorMDA2MEIyICAgICAoYmFzZSAxNikJCVBST0NFU1MgQ09OVFJPTCBDT1JQLgorCQkJCTY4NzUgTUlNTVMgRFJJVkUKKwkJCQlBVExBTlRBIEdBIDMwMzQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1CMyAgIChoZXgpCQlaLUNPTSwgSU5DLgorMDA2MEIzICAgICAoYmFzZSAxNikJCVotQ09NLCBJTkMuCisJCQkJN0YtMiwgTk8uOSwgUFJPU1BFUklUWSAxU1QgUkQuCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTYwLUI0ICAgKGhleCkJCUdMRU5BWVJFIFImRCBJTkMuCiswMDYwQjQgICAgIChiYXNlIDE2KQkJR0xFTkFZUkUgUiZEIElOQy4KKwkJCQkxNTcwIEtPT1RFTkFZIFNUUkVFVAorCQkJCVZBTkNPVVZFUiwgQkMgVjVLIDVCOCAgCisJCQkJQ0FOQURBCisKKzAwLTYwLUI1ICAgKGhleCkJCUtFQkEgR21iSAorMDA2MEI1ICAgICAoYmFzZSAxNikJCUtFQkEgR21iSAorCQkJCUdFV0VSQkVQQVJLIFVSRkFIUgorCQkJCUEtNDA0MSBMSU5aICAKKwkJCQlBVVNUUklBCisKKzAwLTYwLUI2ICAgKGhleCkJCUxBTkQgQ09NUFVURVIgQ08uLCBMVEQuCiswMDYwQjYgICAgIChiYXNlIDE2KQkJTEFORCBDT01QVVRFUiBDTy4sIExURC4KKwkJCQk3LTQtMTcgTklTSElOQUtBSklNQQorCQkJCVlPRE9HQVdBS1UgNTMyICAKKwkJCQlKQVBBTgorCiswMC02MC1CNyAgIChoZXgpCQlDSEFOTkVMTUFUSUMsIElOQy4KKzAwNjBCNyAgICAgKGJhc2UgMTYpCQlDSEFOTkVMTUFUSUMsIElOQy4KKwkJCQkxNzAwIEdJTExFU1BJRSBXQVkKKwkJCQlFTCBDQUpPTiBDQSA5MjAyMC0wOTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1COCAgIChoZXgpCQlDT1JFTElTIEluYy4KKzAwNjBCOCAgICAgKGJhc2UgMTYpCQlDT1JFTElTIEluYy4KKwkJCQkxMjYwNyBIaWRkZW5jcmVlayBXYXkKKwkJCQlDZXJyaXRvcyBDQSA5MDcwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQjkgICAoaGV4KQkJTkVDIEluZnJvbnRpYSBDb3Jwb3JhdGlvbgorMDA2MEI5ICAgICAoYmFzZSAxNikJCU5FQyBJbmZyb250aWEgQ29ycG9yYXRpb24KKwkJCQkyLTYtMSxLaXRhbWlrYXRhLFRha2F0c3Uta3UKKwkJCQlLYXdhc2FraSAgMjEzLTg1MTEKKwkJCQlKQVBBTgorCiswMC02MC1CQSAgIChoZXgpCQlTQUhBUkEgTkVUV09SS1MsIElOQy4KKzAwNjBCQSAgICAgKGJhc2UgMTYpCQlTQUhBUkEgTkVUV09SS1MsIElOQy4KKwkJCQkzMzUgSElHSExBTkQgQVZFLgorCQkJCUNIRVNISVJFIENUIDA2NDEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1CQiAgIChoZXgpCQlDQUJMRVRST04gLSBORVRMSU5LLCBJTkMuCiswMDYwQkIgICAgIChiYXNlIDE2KQkJQ0FCTEVUUk9OIC0gTkVUTElOSywgSU5DLgorCQkJCTM1IElORFVTVFJJQUwgV0FZCisJCQkJUC5PLiBCT1ggNTAwNQorCQkJCVJPQ0hFU1RFUiBOSCAwMzg2Ni01MDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1CQyAgIChoZXgpCQlLZXVuWW91bmcgRWxlY3Ryb25pY3MgJiBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorMDA2MEJDICAgICAoYmFzZSAxNikJCUtldW5Zb3VuZyBFbGVjdHJvbmljcyAmIENvbW11bmljYXRpb24gQ28uLCBMdGQuCisJCQkJMzI1LTc2LCBEQUVIRVVORy1ET05HLCBNQVBPLUdVLAorCQkJCVNFT1VMICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtNjAtQkQgICAoaGV4KQkJSFVCQkVMTC1QVUxTRUNPTQorMDA2MEJEICAgICAoYmFzZSAxNikJCUhVQkJFTEwtUFVMU0VDT00KKwkJCQkyOTAwIFRPV0VSVklFVyBST0FECisJCQkJSEVSTkRPTiBWQSAyMTA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtQkUgICAoaGV4KQkJV0VCVFJPTklDUworMDA2MEJFICAgICAoYmFzZSAxNikJCVdFQlRST05JQ1MKKwkJCQkzQi0xICA4LTItMTIKKwkJCQlOSVNISS1HT1RBTkRBCisJCQkJU0hJTkFHQVdBLUtVIFRPS1lPIDE0MSAgCisJCQkJSkFQQU4KKworMDAtNjAtQkYgICAoaGV4KQkJTUFDUkFJR09SIFNZU1RFTVMsIElOQy4KKzAwNjBCRiAgICAgKGJhc2UgMTYpCQlNQUNSQUlHT1IgU1lTVEVNUywgSU5DLgorCQkJCVBPIEJPWCAxMDA4CisJCQkJQlJPT0tMSU5FIFZJTExBR0UgTUEgMDIxNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUMwICAgKGhleCkJCU5lcmEgTmV0d29ya3MgQVMKKzAwNjBDMCAgICAgKGJhc2UgMTYpCQlOZXJhIE5ldHdvcmtzIEFTCisJCQkJS29rc3RhZHZlaWVuIDIzCisJCQkJQmVyZ2VuICA1MDIwCisJCQkJTk9SV0FZCisKKzAwLTYwLUMxICAgKGhleCkJCVdhdmVTcGFuIENvcnBvcmF0aW9uCiswMDYwQzEgICAgIChiYXNlIDE2KQkJV2F2ZVNwYW4gQ29ycG9yYXRpb24KKwkJCQk1MDAgTi4gQkVSTkFSRE8gQVZFLgorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUMyICAgKGhleCkJCU1QTCBBRworMDA2MEMyICAgICAoYmFzZSAxNikJCU1QTCBBRworCQkJCVRhZWZlcm5zdHJhc3NlIDIwCisJCQkJQ0gtNTQwNSBEYWV0dHdpbCAKKwkJCQlTV0lUWkVSTEFORAorCiswMC02MC1DMyAgIChoZXgpCQlORVRWSVNJT04gQ09SUE9SQVRJT04KKzAwNjBDMyAgICAgKGJhc2UgMTYpCQlORVRWSVNJT04gQ09SUE9SQVRJT04KKwkJCQlNUyMgMUEKKwkJCQlPTkUgQ09NQUMgTE9PUAorCQkJCVJPTktPTktPTUEgTlkgMTE3NzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUM0ICAgKGhleCkJCVNPTElUT04gU1lTVEVNUyBLLksuCiswMDYwQzQgICAgIChiYXNlIDE2KQkJU09MSVRPTiBTWVNURU1TIEsuSy4KKwkJCQkyLTQtMyBTSElOSlVLVSwgU0hJTkpVS1UtS1UKKwkJCQlUT0tZTyAxNjAgIAorCQkJCUpBUEFOCisKKzAwLTYwLUM1ICAgKGhleCkJCUFOQ09UIENPUlAuCiswMDYwQzUgICAgIChiYXNlIDE2KQkJQU5DT1QgQ09SUC4KKwkJCQkxMTUgQ09OU1RJVFVUSU9OIERSLgorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUM2ICAgKGhleCkJCURDUyBBRworMDA2MEM2ICAgICAoYmFzZSAxNikJCURDUyBBRworCQkJCVNBTFpBQ0hTVFJBU1MgMzEKKwkJCQlELTE0MTI5ICBCRVJMSU4gIAorCQkJCUdFUk1BTlkKKworMDAtNjAtQzcgICAoaGV4KQkJQU1BVEkgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwNjBDNyAgICAgKGJhc2UgMTYpCQlBTUFUSSBDT01NVU5JQ0FUSU9OUyBDT1JQLgorCQkJCTIwNDMgU0FNQVJJVEFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUM4ICAgKGhleCkJCUtVS0EgV0VMRElORyBTWVNURU1TICYgUk9CT1RTCiswMDYwQzggICAgIChiYXNlIDE2KQkJS1VLQSBXRUxESU5HIFNZU1RFTVMgJiBST0JPVFMKKwkJCQlCTFVFQ0hFUlNUUkFTU0UgMTQ0CisJCQkJREVQVC4gUkUtU0gKKwkJCQlELTg2MTY1IEFVR1NCVVJHICAKKwkJCQlHRVJNQU5ZCisKKzAwLTYwLUM5ICAgKGhleCkJCUNvbnRyb2xOZXQsIEluYy4KKzAwNjBDOSAgICAgKGJhc2UgMTYpCQlDb250cm9sTmV0LCBJbmMuCisJCQkJNzQ3IENBTURFTiwgU1RFLiBBCisJCQkJQ0FNUEJFTEwgQ0EgOTUwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUNBICAgKGhleCkJCUhBUk1PTklDIFNZU1RFTVMgSU5DT1JQT1JBVEVECiswMDYwQ0EgICAgIChiYXNlIDE2KQkJSEFSTU9OSUMgU1lTVEVNUyBJTkNPUlBPUkFURUQKKwkJCQkxOTkgMVNUIFNUUkVFVCAtIFNURSAjMzAyCisJCQkJTE9TIEFMVE9TIENBIDk0MDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1DQiAgIChoZXgpCQlISVRBQ0hJIFpPU0VOIENPUlBPUkFUSU9OCiswMDYwQ0IgICAgIChiYXNlIDE2KQkJSElUQUNISSBaT1NFTiBDT1JQT1JBVElPTgorCQkJCTMtNCwgU0FLVVJBSklNQSAxLUNIT01FCisJCQkJS09OT0hBTkEtS1UsIE9TQUtBIDU1NCAgCisJCQkJSkFQQU4KKworMDAtNjAtQ0MgICAoaGV4KQkJRU1UUkFLLCBJTkNPUlBPUkFURUQKKzAwNjBDQyAgICAgKGJhc2UgMTYpCQlFTVRSQUssIElOQ09SUE9SQVRFRAorCQkJCTcxNTAgQ0FNUFVTIERSSVZFLCBTVEUgIzE4MAorCQkJCUNPTE9SQURPIFNQUklOR1MgQ08gODA5MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUNEICAgKGhleCkJCVZpZGVvU2VydmVyLCBJbmMuCiswMDYwQ0QgICAgIChiYXNlIDE2KQkJVmlkZW9TZXJ2ZXIsIEluYy4KKwkJCQk1IEZPUkJFUyBST0FECisJCQkJTEVYSU5HVE9OIE1BIDAyMTczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1DRSAgIChoZXgpCQlBQ0NMQUlNIENPTU1VTklDQVRJT05TCiswMDYwQ0UgICAgIChiYXNlIDE2KQkJQUNDTEFJTSBDT01NVU5JQ0FUSU9OUworCQkJCTUwMDAgT0xEIElST05TSURFUyBEUklWRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1DRiAgIChoZXgpCQlBTFRFT04gTkVUV09SS1MsIElOQy4KKzAwNjBDRiAgICAgKGJhc2UgMTYpCQlBTFRFT04gTkVUV09SS1MsIElOQy4KKwkJCQk1MCBHUkVBVCBPQUtTIEJMVkQuCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUQwICAgKGhleCkJCVNOTVAgUkVTRUFSQ0ggSU5DT1JQT1JBVEVECiswMDYwRDAgICAgIChiYXNlIDE2KQkJU05NUCBSRVNFQVJDSCBJTkNPUlBPUkFURUQKKwkJCQkzMDAxIEtJTUJFUkxJTiBIRUlHSFRTIFJPQUQKKwkJCQlLTk9YVklMTEUgVE4gMzc5MjAtOTcxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRDEgICAoaGV4KQkJQ0FTQ0FERSBDT01NVU5JQ0FUSU9OUworMDA2MEQxICAgICAoYmFzZSAxNikJCUNBU0NBREUgQ09NTVVOSUNBVElPTlMKKwkJCQk2IFRFQ0hOT0xPR1kgUEFSSyBEUklWRQorCQkJCVdFU1RGT1JEIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1EMiAgIChoZXgpCQlMVUNFTlQgVEVDSE5PTE9HSUVTIFRBSVdBTiBURUxFQ09NTVVOSUNBVElPTlMgQ08uLCBMVEQuCiswMDYwRDIgICAgIChiYXNlIDE2KQkJTFVDRU5UIFRFQ0hOT0xPR0lFUyBUQUlXQU4gVEVMRUNPTU1VTklDQVRJT05TIENPLiwgTFRELgorCQkJCSMyLCBJTk5PVkFUSU9OIFJPQUQgSUkKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU4gQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTYwLUQzICAgKGhleCkJCUFUJlQKKzAwNjBEMyAgICAgKGJhc2UgMTYpCQlBVCZUCisJCQkJMTAxIENSQVdGT1JEUyBDT1JORVIgUk9BRCwgUmQuIDFKMzIxCisJCQkJUC5PLiBCT1ggMzAzMAorCQkJCUhPTE1ERUwgTkogMDc3MzMtMzAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRDQgICAoaGV4KQkJRUxEQVQgQ09NTVVOSUNBVElPTiBMVEQuCiswMDYwRDQgICAgIChiYXNlIDE2KQkJRUxEQVQgQ09NTVVOSUNBVElPTiBMVEQuCisJCQkJMTAgSEFLSVNIT04gU1RSRUVUCisJCQkJQk5FSS1CUkFLICA1MTIwMyAgCisJCQkJSVNSQUVMCisKKzAwLTYwLUQ1ICAgKGhleCkJCU1JWUFDSEkgVEVDSE5PUyBDT1JQLgorMDA2MEQ1ICAgICAoYmFzZSAxNikJCU1JWUFDSEkgVEVDSE5PUyBDT1JQLgorCQkJCTk1LTMsIEZVVEFTVVpVS0EKKwkJCQlOT0RBIENJVFksIENISUJBLCAyNzggIAorCQkJCUpBUEFOCisKKzAwLTYwLUQ2ICAgKGhleCkJCU5vdkF0ZWwgV2lyZWxlc3MgVGVjaG5vbG9naWVzIEx0ZC4KKzAwNjBENiAgICAgKGJhc2UgMTYpCQlOb3ZBdGVsIFdpcmVsZXNzIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJU1VJVEUgMjAwLCA2NzE1LThUSCBTVFJFRVQgTkUKKwkJCQlDQUxHQVJZLCBBTEJFUlRBIFQyRSA4TTQgIAorCQkJCUNBTkFEQQorCiswMC02MC1ENyAgIChoZXgpCQlFQ09MRSBQT0xZVEVDSE5JUVVFIEZFREVSQUxFIERFIExBVVNBTk5FIChFUEZMKQorMDA2MEQ3ICAgICAoYmFzZSAxNikJCUVDT0xFIFBPTFlURUNITklRVUUgRkVERVJBTEUgREUgTEFVU0FOTkUgKEVQRkwpCisJCQkJRUNVQkxFTlMKKwkJCQlDSC0xMDE1IExBVVNBTk5FICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC02MC1EOCAgIChoZXgpCQlFTE1JQyBTWVNURU1TLCBJTkMuCiswMDYwRDggICAgIChiYXNlIDE2KQkJRUxNSUMgU1lTVEVNUywgSU5DLgorCQkJCURBSS1JQ0hJIFNFSU1FSSBCTERHLgorCQkJCTQtNTkgQkVOVEVOLURPUkksIE5BS0EtS1UKKwkJCQlZT0tPSEFNQSAyMzEgIAorCQkJCUpBUEFOCisKKzAwLTYwLUQ5ICAgKGhleCkJCVRSQU5TWVMgTkVUV09SS1MgSU5DLgorMDA2MEQ5ICAgICAoYmFzZSAxNikJCVRSQU5TWVMgTkVUV09SS1MgSU5DLgorCQkJCTM0MDMgR1JJRkZJVEgKKwkJCQlTVC4gTEFVUkVOVCwgUVVFQkVDIEg0VCAxVzUgIAorCQkJCUNBTkFEQQorCiswMC02MC1EQSAgIChoZXgpCQlKQk0gRUxFQ1RST05JQ1MgQ08uCiswMDYwREEgICAgIChiYXNlIDE2KQkJSkJNIEVMRUNUUk9OSUNTIENPLgorCQkJCTQ2NDUgTGFHdWFyZGlhbiBEcml2ZQorCQkJCVNULiBMT1VJUyBNTyA2MzEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtREIgICAoaGV4KQkJTlRQIEVMRUtUUk9OSUsgQS9TCiswMDYwREIgICAgIChiYXNlIDE2KQkJTlRQIEVMRUtUUk9OSUsgQS9TCisJCQkJS05BUEhPTE0gNworCQkJCURLLTI3MzAgSEVSTEVWICAKKwkJCQlERU5NQVJLCisKKzAwLTYwLURDICAgKGhleCkJCVRveW8gTmV0d29yayBTeXN0ZW1zICAmIFN5c3RlbSBJbnRlZ3JhdGlvbiBDby4gTFRECiswMDYwREMgICAgIChiYXNlIDE2KQkJVG95byBOZXR3b3JrIFN5c3RlbXMgICYgU3lzdGVtIEludGVncmF0aW9uIENvLiBMVEQKKwkJCQkxOCBOaWhvbi1vZG9yaSxOYWthLWt1CisJCQkJWW9rb2hhbWEsIEthbmFnYXdhICAyMzEtMDAyMQorCQkJCUpBUEFOCisKKzAwLTYwLUREICAgKGhleCkJCU1ZUklDT00sIElOQy4KKzAwNjBERCAgICAgKGJhc2UgMTYpCQlNWVJJQ09NLCBJTkMuCisJCQkJMzI1QiBOLiBTQU5UQSBBTklUQSBBVkUuCisJCQkJQVJDQURJQSBDQSA5MTAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtREUgICAoaGV4KQkJS2F5c2VyLVRocmVkZSBHbWJICiswMDYwREUgICAgIChiYXNlIDE2KQkJS2F5c2VyLVRocmVkZSBHbWJICisJCQkJV29sZnJhdHNoYXVzZXIgU3RyLiA0OAorCQkJCUQtODEzNzkgTXVuaWNoIAorCQkJCUdFUk1BTlkKKworMDAtNjAtREYgICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCiswMDYwREYgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJMTc0NSBUZWNobm9sb2d5IERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1FMCAgIChoZXgpCQlBWElPTSBURUNITk9MT0dZIENPLiwgTFRELgorMDA2MEUwICAgICAoYmFzZSAxNikJCUFYSU9NIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJM0YsIDE0LCBMQU5FIDIzNQorCQkJCVBBTyBDSElBTyBST0FELCBIU0lOIFRJRU4KKwkJCQlUQUlQRUkgSFNJRU4gIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtNjAtRTEgICAoaGV4KQkJT1JDS0lUIENPTU1VTklDQVRJT05TIExURC4KKzAwNjBFMSAgICAgKGJhc2UgMTYpCQlPUkNLSVQgQ09NTVVOSUNBVElPTlMgTFRELgorCQkJCTM4IE5BSEFMQVQgWUlaSEFLIFNUUkVFVAorCQkJCVRFTC1BVklWICA2NzQ0OCAgCisJCQkJSVNSQUVMCisKKzAwLTYwLUUyICAgKGhleCkJCVFVRVNUIEVOR0lORUVSSU5HICYgREVWRUxPUE1FTlQKKzAwNjBFMiAgICAgKGJhc2UgMTYpCQlRVUVTVCBFTkdJTkVFUklORyAmIERFVkVMT1BNRU5UCisJCQkJMTM0NSBFQVNUIFJPQ0sgV1JFTiBST0FECisJCQkJUEhPRU5JWCBBWiA4NTA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRTMgICAoaGV4KQkJQVJCSU4gSU5TVFJVTUVOVFMKKzAwNjBFMyAgICAgKGJhc2UgMTYpCQlBUkJJTiBJTlNUUlVNRU5UUworCQkJCTMyMDYgTE9OR01JUkUgRFJJVkUKKwkJCQlDT0xMRUdFIFNUQVRJT04gVFggNzc4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUU0ICAgKGhleCkJCUNPTVBVU0VSVkUsIElOQy4KKzAwNjBFNCAgICAgKGJhc2UgMTYpCQlDT01QVVNFUlZFLCBJTkMuCisJCQkJNTAwMCBBUkxJTkdUT04gQ0VOVFJFIEJMVkQuCisJCQkJUC5PLiBCT1ggMjAyMTIKKwkJCQlDT0xVTUJVUyBPSCA0MzIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRTUgICAoaGV4KQkJRlVKSSBBVVRPTUFUSU9OIENPLiwgTFRELgorMDA2MEU1ICAgICAoYmFzZSAxNikJCUZVSkkgQVVUT01BVElPTiBDTy4sIExURC4KKwkJCQkzLTIzLTEwLCBORUdJU0hJCisJCQkJVVJBV0EtU0hJLCAzMzYgU0FJVEFNQSAgCisJCQkJSkFQQU4KKworMDAtNjAtRTYgICAoaGV4KQkJU0hPTUlUSSBTWVNURU1TIElOQ09SUE9SQVRFRAorMDA2MEU2ICAgICAoYmFzZSAxNikJCVNIT01JVEkgU1lTVEVNUyBJTkNPUlBPUkFURUQKKwkJCQkyMDk5IEdBVEVXQVkgUExBQ0UgLSBTVEUuIzIyMAorCQkJCVNBTiBKT1NFIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1FNyAgIChoZXgpCQlSQU5EQVRBCiswMDYwRTcgICAgIChiYXNlIDE2KQkJUkFOREFUQQorCQkJCVBPIEJPWCAyMDkKKwkJCQlIQVdUSE9STiAgVklDICAzMTIyICAKKwkJCQlBVVNUUkFMSUEKKworMDAtNjAtRTggICAoaGV4KQkJSElUQUNISSBDT01QVVRFUiBQUk9EVUNUUyAoQU1FUklDQSksIElOQy4KKzAwNjBFOCAgICAgKGJhc2UgMTYpCQlISVRBQ0hJIENPTVBVVEVSIFBST0RVQ1RTIChBTUVSSUNBKSwgSU5DLgorCQkJCTMxMDEgVEFTTUFOIERSSVZFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUU5ICAgKGhleCkJCUFUT1AgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDYwRTkgICAgIChiYXNlIDE2KQkJQVRPUCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQlTVUlURSAzMDUsIE5PLiA0NywgUEFSSyBBVkVOVUUgSUksCisJCQkJIFNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLCisJCQkJSFNJTkNIVSAzMDA0NyAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC02MC1FQSAgIChoZXgpCQlTdHJlYW1Mb2dpYworMDA2MEVBICAgICAoYmFzZSAxNikJCVN0cmVhbUxvZ2ljCisJCQkJMjEzMjkgTk9SREhPRkYgU1RSRUVUCisJCQkJQ0hBVFNXT1JUSCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRUIgICAoaGV4KQkJRk9VUlRIVFJBQ0sgU1lTVEVNUworMDA2MEVCICAgICAoYmFzZSAxNikJCUZPVVJUSFRSQUNLIFNZU1RFTVMKKwkJCQlVTklUIDMgVEhFIFNZQ0FNT1JFUworCQkJCTI3IE1JTEwgUk9BRAorCQkJCU1BUkxPVyAtIFNMNyAxUUIgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTYwLUVDICAgKGhleCkJCUhFUk1BUlkgT1BUTyBFTEVDVFJPTklDUyBJTkMuCiswMDYwRUMgICAgIChiYXNlIDE2KQkJSEVSTUFSWSBPUFRPIEVMRUNUUk9OSUNTIElOQy4KKwkJCQkyMDEtNDA1MCBHUkFWRUxFWSBTVAorCQkJCUJVUk5BQlksIEJDIFY1Qy0zVDYgIAorCQkJCUNBTkFEQQorCiswMC02MC1FRCAgIChoZXgpCQlSSUNBUkRPIFRFU1QgQVVUT01BVElPTiBMVEQuCiswMDYwRUQgICAgIChiYXNlIDE2KQkJUklDQVJETyBURVNUIEFVVE9NQVRJT04gTFRELgorCQkJCUxPV0VTTU9PUiBXSEFSRgorCQkJCVdPUkNFU1RFUiwgV1IxMlJTICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC02MC1FRSAgIChoZXgpCQlBUE9MTE8KKzAwNjBFRSAgICAgKGJhc2UgMTYpCQlBUE9MTE8KKwkJCQkzNjEwIEJJUkNIIFNUUkVFVC0tU1RFICMxMDAKKwkJCQlORVdQT1JUIEJFQUNIIENBIDkyNjYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1FRiAgIChoZXgpCQlGTFlURUNIIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMDYwRUYgICAgIChiYXNlIDE2KQkJRkxZVEVDSCBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCU5vLjE2OCBTaW5nLWFpIFJkLiwgTmVpaHUgRGlzdHJpY3QKKwkJCQlUQUlQRUkgQ0lUWSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC02MC1GMCAgIChoZXgpCQlKT0hOU09OICYgSk9ITlNPTiBNRURJQ0FMLCBJTkMKKzAwNjBGMCAgICAgKGJhc2UgMTYpCQlKT0hOU09OICYgSk9ITlNPTiBNRURJQ0FMLCBJTkMKKwkJCQk0MTEwIEdFT1JHRSBSRC4KKwkJCQlUQU1QQSBGTCAzMzYzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRjEgICAoaGV4KQkJRVhQIENPTVBVVEVSLCBJTkMuCiswMDYwRjEgICAgIChiYXNlIDE2KQkJRVhQIENPTVBVVEVSLCBJTkMuCisJCQkJMTQxIEVJTEVFTiBXQVkKKwkJCQlTWU9TU0VUIE5ZIDExNzkxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1GMiAgIChoZXgpCQlMQVNFUkdSQVBISUNTLCBJTkMuCiswMDYwRjIgICAgIChiYXNlIDE2KQkJTEFTRVJHUkFQSElDUywgSU5DLgorCQkJCTIwIEFEQQorCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRjMgICAoaGV4KQkJUGVyZm9ybWFuY2UgQW5hbHlzaXMgQnJvYWRiYW5kLCBTcGlyZW50IHBsYworMDA2MEYzICAgICAoYmFzZSAxNikJCVBlcmZvcm1hbmNlIEFuYWx5c2lzIEJyb2FkYmFuZCwgU3BpcmVudCBwbGMKKwkJCQkyNzM0OSBBZ291cmEgUm9hZAorCQkJCUNhbGFiYXNhcyBIaWxscyBDQSA5MTMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRjQgICAoaGV4KQkJQURWQU5DRUQgQ09NUFVURVIgU09MVVRJT05TLCBJbmMuCiswMDYwRjQgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgQ09NUFVURVIgU09MVVRJT05TLCBJbmMuCisJCQkJMTI2NzUgREFOSUVMU09OIENPVVJUCisJCQkJU1VJVEUgIzQwNworCQkJCVBPV0FZIENBIDkyMDY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1GNSAgIChoZXgpCQlJQ09OIFdFU1QsIElOQy4KKzAwNjBGNSAgICAgKGJhc2UgMTYpCQlJQ09OIFdFU1QsIElOQy4KKwkJCQkzMzQyIFNPVVRIIDMwMCBFQVNUCisJCQkJU0FMVCBMQUtFIENJVFkgVVQgODQxMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUY2ICAgKGhleCkJCU5FWFRFU1QgQ09NTVVOSUNBVElPTlMgUFJPRFVDVFMsIElOQy4KKzAwNjBGNiAgICAgKGJhc2UgMTYpCQlORVhURVNUIENPTU1VTklDQVRJT05TIFBST0RVQ1RTLCBJTkMuCisJCQkJVFdPIE1JRCBBTUVSSUNBIFBMQVpBLCBTVEUuNTAwCisJCQkJT0FLQlJPT0sgVEVSUkFDRSBJTCA2MDE4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRjcgICAoaGV4KQkJREFUQUZVU0lPTiBTWVNURU1TCiswMDYwRjcgICAgIChiYXNlIDE2KQkJREFUQUZVU0lPTiBTWVNURU1TCisJCQkJUC5PLiBCT1ggNTgyCisJCQkJU1RFTExFTkJPU0NILCAgNzU5OSAgCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTYwLUY4ICAgKGhleCkJCUxvcmFuIEludGVybmF0aW9uYWwgVGVjaG5vbG9naWVzIEluYy4KKzAwNjBGOCAgICAgKGJhc2UgMTYpCQlMb3JhbiBJbnRlcm5hdGlvbmFsIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJOTU1IEdSRUVOIFZBTExFWSBDUkVTQ0VOVAorCQkJCVNVSVRFICMxNjUKKwkJCQlPVFRBV0EsIE9OVEFSSU8gSzJDIDNWNCAgCisJCQkJQ0FOQURBCisKKzAwLTYwLUY5ICAgKGhleCkJCURJQU1PTkQgTEFORSBDT01NVU5JQ0FUSU9OUworMDA2MEY5ICAgICAoYmFzZSAxNikJCURJQU1PTkQgTEFORSBDT01NVU5JQ0FUSU9OUworCQkJCTEzMTAgUkVEV09PRCBXQVkgLSBTVEUuCisJCQkJUEVUQUxVTUEgQ0EgOTQ5NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUZBICAgKGhleCkJCUVEVUNBVElPTkFMIFRFQ0hOT0xPR1kgUkVTT1VSQ0VTLCBJTkMuCiswMDYwRkEgICAgIChiYXNlIDE2KQkJRURVQ0FUSU9OQUwgVEVDSE5PTE9HWSBSRVNPVVJDRVMsIElOQy4KKwkJCQkxNzQyIENIVVJDSCBTVFJFRVQKKwkJCQlIT0xCUk9PSyBOWSAxMTc0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRkIgICAoaGV4KQkJUEFDS0VURUVSLCBJTkMuCiswMDYwRkIgICAgIChiYXNlIDE2KQkJUEFDS0VURUVSLCBJTkMuCisJCQkJMTAyMDEgTi4gREUgQU5aQSBCT1VMRVZBUkQKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUZDICAgKGhleCkJCUNPTlNFUlZBVElPTiBUSFJPVUdIIElOTk9WQVRJT04gTFRELgorMDA2MEZDICAgICAoYmFzZSAxNikJCUNPTlNFUlZBVElPTiBUSFJPVUdIIElOTk9WQVRJT04gTFRELgorCQkJCTEwNDAgV0hJUFBMRSBTVC4tIFNURS4gIzIyNQorCQkJCVBSRVNDT1RUIEFaIDg2MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC02MC1GRCAgIChoZXgpCQlOZXRJQ3MsIEluYy4KKzAwNjBGRCAgICAgKGJhc2UgMTYpCQlOZXRJQ3MsIEluYy4KKwkJCQk0MiBOQUdPRyBQQVJLCisJCQkJQUNUT04gTUEgMDE3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTYwLUZFICAgKGhleCkJCUxZTlggU1lTVEVNIERFVkVMT1BFUlMsIElOQy4KKzAwNjBGRSAgICAgKGJhc2UgMTYpCQlMWU5YIFNZU1RFTSBERVZFTE9QRVJTLCBJTkMuCisJCQkJMTc1TiBORVcgQk9TVE9OIFNUUkVFVAorCQkJCVdPQlVSTiBNQSAwMTgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjAtRkYgICAoaGV4KQkJUXVWaXMsIEluYy4KKzAwNjBGRiAgICAgKGJhc2UgMTYpCQlRdVZpcywgSW5jLgorCQkJCTI5MjEgU1cgV0FOQU1BS0VSIERSSVZFCisJCQkJU1VJVEUgIzEwNworCQkJCVRPUEVLQSBLUyA2NjYxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjQtNDAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMDA2NDQwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNjQtQTYgICAoaGV4KQkJTWFxdWV0IENhcmRpb1Zhc2N1bGFyCiswMDY0QTYgICAgIChiYXNlIDE2KQkJTWFxdWV0IENhcmRpb1Zhc2N1bGFyCisJCQkJMTMwMCBNYWNBcnRodXIgQmx2ZAorCQkJCU1haHdhaCBOSiAwNzQzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNkItOUUgICAoaGV4KQkJVklaSU8gSW5jCiswMDZCOUUgICAgIChiYXNlIDE2KQkJVklaSU8gSW5jCisJCQkJMzkgVGVzbGEKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTZCLUEwICAgKGhleCkJCVNIRU5aSEVOIFVOSVZFUlNBTCBJTlRFTExJU1lTIFBURSBMVEQKKzAwNkJBMCAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBVTklWRVJTQUwgSU5URUxMSVNZUyBQVEUgTFRECisJCQkJUk9PTSAxNjA3LTE2MDgsWElOR0pJIE1BTlNJT04KKwkJCQlYSU5YSU5TSEEgUk9BRCwgU0hBSklORyBUT1dOCisJCQkJU0hFTlpIRU4gR1VBTkdET05HIDUxODEwNAorCQkJCUNISU5BCisKKzAwLTZELUZCICAgKGhleCkJCVZ1dHJpeCAoVUspIEx0ZAorMDA2REZCICAgICAoYmFzZSAxNikJCVZ1dHJpeCAoVUspIEx0ZAorCQkJCVVuaXQgMSBSZWQgTG9kZ2UgQnVzaW5lc3MgUGFyaworCQkJCVdhcmxleXMgTGFuZQorCQkJCVdlc3Rvbi1zdXBlci1tYXJlIE5vcnRoIFNvbWVyc2V0IEJTMjQgN1ROCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtNzAtQjAgICAoaGV4KQkJTS9BLUNPTSBJTkMuIENPTVBBTklFUworMDA3MEIwICAgICAoYmFzZSAxNikJCU0vQS1DT00gSU5DLiBDT01QQU5JRVMKKwkJCQkxMTcxNyBFWFBMT1JBVElPTiBMQU5FCisJCQkJR0VSTUFOVE9XTiBNRCAyMDc2NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtNzAtQjMgICAoaGV4KQkJREFUQSBSRUNBTEwgTFRELgorMDA3MEIzICAgICAoYmFzZSAxNikJCURBVEEgUkVDQUxMIExURC4KKwkJCQlTT05ERVMgUExBQ0UKKwkJCQlET1JLSU5HIFNVUlJFWSBSSDQgM0VGCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC03OC05RSAgIChoZXgpCQlTQUdFTUNPTQorMDA3ODlFICAgICAoYmFzZSAxNikJCVNBR0VNQ09NCisJCQkJMjUwIHJvdXRlIGRlIGwnRW1wZXJldXIKKwkJCQlSVUVJTCBNQUxNQUlTT04gIDkyODQ4CisJCQkJRlJBTkNFCisKKzAwLTdGLTI4ICAgKGhleCkJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jIAorMDA3RjI4ICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jIAorCQkJCTc2MCBOb3J0aCBNYXJ5IEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMDAgICAoaGV4KQkJTVVMVElURUNIIFNZU1RFTVMsIElOQy4KKzAwODAwMCAgICAgKGJhc2UgMTYpCQlNVUxUSVRFQ0ggU1lTVEVNUywgSU5DLgorCQkJCTIyMDUgV09PREFMRSBEUklWRQorCQkJCU1PVU5EUyBWSUVXIE1OIDU1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0wMSAgIChoZXgpCQlQRVJJUEhPTklDUyBDT1JQT1JBVElPTgorMDA4MDAxICAgICAoYmFzZSAxNikJCVBFUklQSE9OSUNTIENPUlBPUkFUSU9OCisJCQkJNDAwMCBWRVRFUkFOUyBNRU1PUklBTCBISUdIV0FZCisJCQkJQk9IRU1JQSBORVcgWU9SSyAxMTcxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMDIgICAoaGV4KQkJU0FURUxDT00gKFVLKSBMVEQKKzAwODAwMiAgICAgKGJhc2UgMTYpCQlTQVRFTENPTSAoVUspIExURAorCQkJCVRFQ0hOT0xPR1kgVFJBTlNGRVIgQ0VOVFJFCisJCQkJU0lMV09PRCBQQVJLLCBCVUNLSFVSU1QgUk9BRCBBU0NPVCwgQkVSSworCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC0wMyAgIChoZXgpCQlIWVRFQyBFTEVDVFJPTklDUyBMVEQuCiswMDgwMDMgICAgIChiYXNlIDE2KQkJSFlURUMgRUxFQ1RST05JQ1MgTFRELgorCQkJCTUgQ1JBRE9DSyBST0FECisJCQkJUkVBRElORyBCRVJLUyBSRzUgNERYCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTA0ICAgKGhleCkJCUFOVExPVyBDT01NVU5JQ0FUSU9OUywgTFRELgorMDA4MDA0ICAgICAoYmFzZSAxNikJCUFOVExPVyBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCTQgQ09MVEhST1AgV0FZCisJCQkJVEhBVENIQU0gUkcxOSA0TFcKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtMDUgICAoaGV4KQkJQ0FDVFVTIENPTVBVVEVSIElOQy4KKzAwODAwNSAgICAgKGJhc2UgMTYpCQlDQUNUVVMgQ09NUFVURVIgSU5DLgorCQkJCTExMjAgTUVUUk9DUkVTVCBEUklWRQorCQkJCVNVSVRFIDEwMworCQkJCUNBUlJPTExUT04gVFggNzUwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTA2ICAgKGhleCkJCUNPTVBVQUREIENPUlBPUkFUSU9OCiswMDgwMDYgICAgIChiYXNlIDE2KQkJQ09NUFVBREQgQ09SUE9SQVRJT04KKwkJCQlFTkdJTkVFUklORworCQkJCTEyMzAzIFRFQ0hOT0xPR1kgQkxWRC4KKwkJCQlBVVNUSU4gVFggNzg3MjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTA3ICAgKGhleCkJCURMT0cgTkMtU1lTVEVNRQorMDA4MDA3ICAgICAoYmFzZSAxNikJCURMT0cgTkMtU1lTVEVNRQorCQkJCVdFUk5FUi1WT04tU0lFTUVOUyBTVFJBU1NFIDEzCisJCQkJRC04MDM3LCBPTENISU5HCisJCQkJR0VSTUFOWQorCiswMC04MC0wOCAgIChoZXgpCQlEWU5BVEVDSCBDT01QVVRFUiBTWVNURU1TCiswMDgwMDggICAgIChiYXNlIDE2KQkJRFlOQVRFQ0ggQ09NUFVURVIgU1lTVEVNUworCQkJCTI4MCBCRVJOQVJETyBBVkVOVUUKKwkJCQlQLk8uIEJPWCA3NDAwCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDAzOS03NDAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0wOSAgIChoZXgpCQlKVVBJVEVSIFNZU1RFTVMsIElOQy4KKzAwODAwOSAgICAgKGJhc2UgMTYpCQlKVVBJVEVSIFNZU1RFTVMsIElOQy4KKwkJCQkzMDczIFRFQUdBUkRFTiBTVFJFRVQKKwkJCQlTQU4gTEVBTkRSTyBDQSA5NDU3Ny01NzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0wQSAgIChoZXgpCQlKQVBBTiBDT01QVVRFUiBDT1JQLgorMDA4MDBBICAgICAoYmFzZSAxNikJCUpBUEFOIENPTVBVVEVSIENPUlAuCisJCQkJTC4gSy4gQkxERy4gSElHQVNISSBLQU5EQQorCQkJCTItNi05IENISVlPREEtS1UgVE9LWU8gMTAxCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC0wQiAgIChoZXgpCQlDU0sgQ09SUE9SQVRJT04KKzAwODAwQiAgICAgKGJhc2UgMTYpCQlDU0sgQ09SUE9SQVRJT04KKwkJCQkxOEYgTUFUU1VTSElUQSBJTVAgQkxERywKKwkJCQkxLTMtNyBTSElST01JIENIVU8tS1UgT1NBS0EKKwkJCQlKQVBBTiA1NDAKKwkJCQlKQVBBTgorCiswMC04MC0wQyAgIChoZXgpCQlWSURFQ09NIExJTUlURUQKKzAwODAwQyAgICAgKGJhc2UgMTYpCQlWSURFQ09NIExJTUlURUQKKwkJCQlORVdUT1dOIEVTVEFURQorCQkJCUhFTkxFWS1PTi1USEFNRVMgT1hPTiAgUkc5IDFIRworCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC0wRCAgIChoZXgpCQlWT1NTV0lOS0VMIEYuVS4KKzAwODAwRCAgICAgKGJhc2UgMTYpCQlWT1NTV0lOS0VMIEYuVS4KKwkJCQlBTSBKT1NURU5IT0YgMTUKKwkJCQlELTQxMzAgTU9FUlMKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC04MC0wRSAgIChoZXgpCQlBVExBTlRJWCBDT1JQT1JBVElPTgorMDA4MDBFICAgICAoYmFzZSAxNikJCUFUTEFOVElYIENPUlBPUkFUSU9OCisJCQkJNTQwMSBOVyBCUk9LRU5TT1VORCBCTFZELgorCQkJCUJPQ0EgUkFUT04gRkwgMzM0MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTBGICAgKGhleCkJCVNUQU5EQVJEIE1JQ1JPU1lTVEVNUworMDA4MDBGICAgICAoYmFzZSAxNikJCVNUQU5EQVJEIE1JQ1JPU1lTVEVNUworCQkJCTMwMCBLRU5ORURZIERSSVZFCisJCQkJSEFVUFBBVUdFIE5ZIDExNzg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0xMCAgIChoZXgpCQlDT01NT0RPUkUgSU5URVJOQVRJT05BTAorMDA4MDEwICAgICAoYmFzZSAxNikJCUNPTU1PRE9SRSBJTlRFUk5BVElPTkFMCisJCQkJMTIwMCBXSUxTT04gRFJJVkUKKwkJCQlXRVNUIENIRVNURVIgUEEgMTkzODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTExICAgKGhleCkJCURJR0lUQUwgU1lTVEVNUyBJTlQnTC4gSU5DLgorMDA4MDExICAgICAoYmFzZSAxNikJCURJR0lUQUwgU1lTVEVNUyBJTlQnTC4gSU5DLgorCQkJCTc2NTkgMTc4VEggUEwuIE5FCisJCQkJUC5PLiBCT1ggOTA4CisJCQkJUkVETU9ORCBXQSA5ODA3My0wOTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0xMiAgIChoZXgpCQlJTlRFR1JBVEVEIE1FQVNVUkVNRU5UIFNZU1RFTVMKKzAwODAxMiAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIE1FQVNVUkVNRU5UIFNZU1RFTVMKKwkJCQk5NTI1IFNXIEdFTUlOSSBEUklWRQorCQkJCUJFQVZFUlRPTiBPUiA5NzAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMTMgICAoaGV4KQkJVEhPTUFTLUNPTlJBRCBDT1JQT1JBVElPTgorMDA4MDEzICAgICAoYmFzZSAxNikJCVRIT01BUy1DT05SQUQgQ09SUE9SQVRJT04KKwkJCQkxOTA4LVIgS1JBTUVSIExBTkUKKwkJCQlBVVNUSU4gVFggNzg3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTE0ICAgKGhleCkJCUVTUFJJVCBTWVNURU1TCiswMDgwMTQgICAgIChiYXNlIDE2KQkJRVNQUklUIFNZU1RFTVMKKwkJCQkxNEYsIE5PLiAxLCBTRUMuIDQKKwkJCQlOQU4gS0lORyBFQVNUIFJPQUQgMTA1NjkgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTgwLTE1ICAgKGhleCkJCVNFSUtPIFNZU1RFTVMsIElOQy4KKzAwODAxNSAgICAgKGJhc2UgMTYpCQlTRUlLTyBTWVNURU1TLCBJTkMuCisJCQkJU1lTVEVNUyBERVZFTE9QTUVOVCBESVZJU0lPTgorCQkJCTUtNCBIQUNDSE9CT1JJIDQtQ0hPVU1FIENIVVVPVS1LVSBUT0tPWU8KKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTE2ICAgKGhleCkJCVdBTkRFTCBBTkQgR09MVEVSTUFOTgorMDA4MDE2ICAgICAoYmFzZSAxNikJCVdBTkRFTCBBTkQgR09MVEVSTUFOTgorCQkJCTEwMzAgU1dBQklBIENPVVJUCisJCQkJUkVTRUFSQ0ggVFJJQU5HTEUgUEFSSworCQkJCU5DIDI3NzA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0xNyAgIChoZXgpCQlQRlUgTElNSVRFRAorMDA4MDE3ICAgICAoYmFzZSAxNikJCVBGVSBMSU1JVEVECisJCQkJTkVUV09SSyBTRUMuCisJCQkJNjU4LTEsIFRTVVJVTUEgTUFDSElEQS1TSEksIFRPS1lPIDE5NC0wMAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtMTggICAoaGV4KQkJS09CRSBTVEVFTCwgTFRELgorMDA4MDE4ICAgICAoYmFzZSAxNikJCUtPQkUgU1RFRUwsIExURC4KKwkJCQlLT0JFIElTVVpVIFJFQ1JVSVQgQkxERy4KKwkJCQk3VEggRkxPT1IgMi0yLCA0LUNIT01FLCBLVU1PSS1ET1JJLCBDSFVPCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC0xOSAgIChoZXgpCQlEQVlOQSBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDA4MDE5ICAgICAoYmFzZSAxNikJCURBWU5BIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJNTAgU09VVEggTUFJTiBTVFJFRVQtIzUzMAorCQkJCVNBTFQgTEFLRSBDSVRZIFVUQUggODQxNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTFBICAgKGhleCkJCUJFTEwgQVRMQU5USUMKKzAwODAxQSAgICAgKGJhc2UgMTYpCQlCRUxMIEFUTEFOVElDCisJCQkJTjkyIFcxNDYxMiAgQU5USE9OWSBBVkVOVUUKKwkJCQlNRU5PTU9ORUUgRkFMTFMgV0kgNTMwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTFCICAgKGhleCkJCUtPRElBSyBURUNITk9MT0dZCiswMDgwMUIgICAgIChiYXNlIDE2KQkJS09ESUFLIFRFQ0hOT0xPR1kKKwkJCQkyMzQwIEhBUlJJUyBXQVkKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMUMgICAoaGV4KQkJTkVXUE9SVCBTWVNURU1TIFNPTFVUSU9OUworMDA4MDFDICAgICAoYmFzZSAxNikJCU5FV1BPUlQgU1lTVEVNUyBTT0xVVElPTlMKKwkJCQk0MDE5IFdFU1RFUkxZIEFWRU5VRQorCQkJCVNVSVRFIDEwMworCQkJCU5FV1BPUlQgQkVBQ0ggQ0EgOTI2NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTFEICAgKGhleCkJCUlOVEVHUkFURUQgSU5GRVJFTkNFIE1BQ0hJTkVTCiswMDgwMUQgICAgIChiYXNlIDE2KQkJSU5URUdSQVRFRCBJTkZFUkVOQ0UgTUFDSElORVMKKwkJCQkxNDY4IEVBU1QgS0FURUxMQQorCQkJCUFOQUhFSU0gQ0EgOTI4MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTFFICAgKGhleCkJCVhJTkVUUk9OLCBJTkMuCiswMDgwMUUgICAgIChiYXNlIDE2KQkJWElORVRST04sIElOQy4KKwkJCQkyMzMwIEIuIFdBTFNIIEFWRS4KKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMUYgICAoaGV4KQkJS1JVUFAgQVRMQVMgRUxFQ1RST05JSyBHTUJICiswMDgwMUYgICAgIChiYXNlIDE2KQkJS1JVUFAgQVRMQVMgRUxFQ1RST05JSyBHTUJICisJCQkJUC5PLiBCT1ggNDQ4NTQ1CisJCQkJRC0yODAwIEJSRU1FTiA0NAorCQkJCUdFUk1BTlkKKworMDAtODAtMjAgICAoaGV4KQkJTkVUV09SSyBQUk9EVUNUUworMDA4MDIwICAgICAoYmFzZSAxNikJCU5FVFdPUksgUFJPRFVDVFMKKwkJCQlESVZJU0lPTiBPRiBBTkRSRVcgQ09SUE9SQVRJT04KKwkJCQkyNzcxIFBMQVpBIERFTCBBTU8zCisJCQkJVE9SUkFOQ0UgQ0EgOTA1MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTIxICAgKGhleCkJCUFsY2F0ZWwgQ2FuYWRhIEluYy4KKzAwODAyMSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIENhbmFkYSBJbmMuCisJCQkJMzQ5IFRlcnJ5IEZveCBEcml2ZQorCQkJCUthbmF0YSBPbnRhcmlvIEsySyAyVjYKKwkJCQlDQU5BREEKKworMDAtODAtMjIgICAoaGV4KQkJU0NBTi1PUFRJQ1MKKzAwODAyMiAgICAgKGJhc2UgMTYpCQlTQ0FOLU9QVElDUworCQkJCTIwMSBURUNITk9MT0dZIERSSVZFCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0yMyAgIChoZXgpCQlJTlRFR1JBVEVEIEJVU0lORVNTIE5FVFdPUktTCiswMDgwMjMgICAgIChiYXNlIDE2KQkJSU5URUdSQVRFRCBCVVNJTkVTUyBORVRXT1JLUworCQkJCTFCTiBUSEUgU1lTVEVNUyBDRU5UUkUKKwkJCQkxNCwgQlJJREdFR0FURSBCVVNJTkVTUyBQQVJLLCBHQVRFSE9VU0UKKwkJCQlCVUNLUyBIUDE5IDNYTiAtIEVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC0yNCAgIChoZXgpCQlLQUxQQU5BLCBJTkMuCiswMDgwMjQgICAgIChiYXNlIDE2KQkJS0FMUEFOQSwgSU5DLgorCQkJCTExNTQgRUFTVCBBUlFVRVMgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0yNSAgIChoZXgpCQlTVE9MTE1BTk4gR01CSAorMDA4MDI1ICAgICAoYmFzZSAxNikJCVNUT0xMTUFOTiBHTUJICisJCQkJTUFYLUJSQVVFUi1BTExFRSA4MQorCQkJCUQtMjAwMCBIQU1CVVJHIDUwCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtODAtMjYgICAoaGV4KQkJTkVUV09SSyBQUk9EVUNUUyBDT1JQT1JBVElPTgorMDA4MDI2ICAgICAoYmFzZSAxNikJCU5FVFdPUksgUFJPRFVDVFMgQ09SUE9SQVRJT04KKwkJCQkxNDQwIFdFU1QgQ09MT1JBRE8gQkxWRC4KKwkJCQlQQVNBREVOQSBDQSA5MTEwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMjcgICAoaGV4KQkJQURBUFRJVkUgU1lTVEVNUywgSU5DLgorMDA4MDI3ICAgICAoYmFzZSAxNikJCUFEQVBUSVZFIFNZU1RFTVMsIElOQy4KKwkJCQkxNDAwIE4uVy4gQ09NUFRPTiBEUklWRQorCQkJCVNVSVRFIDM0MAorCQkJCUJFQVZFUlRPTiBPUiA5NzAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMjggICAoaGV4KQkJVFJBRFBPU1QgKEhLKSBMVEQKKzAwODAyOCAgICAgKGJhc2UgMTYpCQlUUkFEUE9TVCAoSEspIExURAorCQkJCTUvRiwgU1RBUiBDRU5UUkUKKwkJCQk0NDMtNDUxIENBU1RMRSBQRUFLIFJPQUQgS1dBSSBDSFVORywgTi5UCisJCQkJSE9ORyBLT05HCisJCQkJSE9ORyBLT05HCisKKzAwLTgwLTI5ICAgKGhleCkJCUVBR0xFIFRFQ0hOT0xPR1ksIElOQy4KKzAwODAyOSAgICAgKGJhc2UgMTYpCQlFQUdMRSBURUNITk9MT0dZLCBJTkMuCisJCQkJNjgwMCBPUkFOR0VUSE9SUEUgQVZFLlVOSVQKKwkJCQlCVUVOQSBQQVJLIENBIDkwNjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0yQSAgIChoZXgpCQlURVNUIFNZU1RFTVMgJiBTSU1VTEFUSU9OUyBJTkMKKzAwODAyQSAgICAgKGJhc2UgMTYpCQlURVNUIFNZU1RFTVMgJiBTSU1VTEFUSU9OUyBJTkMKKwkJCQkzMjQyOSBJTkRVU1RSSUFMIERSSVZFCisJCQkJTUFESVNPTiBIRUlHSFRTIE1JIDQ4MDcxLTE1MjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTJCICAgKGhleCkJCUlOVEVHUkFURUQgTUFSS0VUSU5HIENPCiswMDgwMkIgICAgIChiYXNlIDE2KQkJSU5URUdSQVRFRCBNQVJLRVRJTkcgQ08KKwkJCQkxMzYwIEJPUkRFQVVYIERSSVZFCisJCQkJQkxERy4gIzQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTJDICAgKGhleCkJCVRIRSBTQUdFIEdST1VQIFBMQworMDA4MDJDICAgICAoYmFzZSAxNikJCVRIRSBTQUdFIEdST1VQIFBMQworCQkJCVNBR0UgSE9VU0UsIEJFTlRPTiBQQVJLIFJPQUQKKwkJCQlORVdDQVNUTEUgVVBPTiBUWU5FIE5FNyA3TFoKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTJEICAgKGhleCkJCVhZTE9HSUNTIElOQworMDA4MDJEICAgICAoYmFzZSAxNikJCVhZTE9HSUNTIElOQworCQkJCTUzIFRISVJEIEFWRU5VRQorCQkJCUJVUkxJTkdUT04gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTJFICAgKGhleCkJCUNBU1RMRSBST0NLIENPTVBVVElORworMDA4MDJFICAgICAoYmFzZSAxNikJCUNBU1RMRSBST0NLIENPTVBVVElORworCQkJCTIwODM3IEJPWUNFIExBTkUKKwkJCQlTQVJBVE9HQSBDQSA5NTA3MC00ODA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0yRiAgIChoZXgpCQlOQVRJT05BTCBJTlNUUlVNRU5UUyBDT1JQLgorMDA4MDJGICAgICAoYmFzZSAxNikJCU5BVElPTkFMIElOU1RSVU1FTlRTIENPUlAuCisJCQkJMTE1MDAgTm9ydGggTW9wYWMgRXhwcmVzc3dheQorCQkJCUFVU1RJTiBUWCA3ODc1OS0zNTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0zMCAgIChoZXgpCQlORVhVUyBFTEVDVFJPTklDUworMDA4MDMwICAgICAoYmFzZSAxNikJCU5FWFVTIEVMRUNUUk9OSUNTCisJCQkJMzkgU1BSSU5HRklFTEQgUk9BRAorCQkJCUNBTUJSSURHRSBDQjQgMUFECisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC0zMSAgIChoZXgpCQlCQVNZUywgQ09SUC4KKzAwODAzMSAgICAgKGJhc2UgMTYpCQlCQVNZUywgQ09SUC4KKwkJCQk1MDEgTUFDQVJBIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMzIgICAoaGV4KQkJQUNDRVNTIENPLiwgTFRELgorMDA4MDMyICAgICAoYmFzZSAxNikJCUFDQ0VTUyBDTy4sIExURC4KKwkJCQlISUVJLUtVREFOIEJMREcuIEIxCisJCQkJMy04LTExIEtVREFOLU1JTkFNSSwgQ0hJWU9EQS1LVSwgVE9LWU8gMQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtMzMgICAoaGV4KQkJRU1TIEF2aWF0aW9uLCBJbmMuCiswMDgwMzMgICAgIChiYXNlIDE2KQkJRU1TIEF2aWF0aW9uLCBJbmMuCisJCQkJMTIxIFdISVRURU5EQUxFIERSSVZFCisJCQkJU3VpdGUgQQorCQkJCU1PT1JFU1RPV04gTkogMDgwNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTM0ICAgKGhleCkJCVNNVCBHT1VQSUwKKzAwODAzNCAgICAgKGJhc2UgMTYpCQlTTVQgR09VUElMCisJCQkJMyBSVUUgREVTIEFSQ0hJVkVTCisJCQkJOTQwMDAgQ1JFVEVJTAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC04MC0zNSAgIChoZXgpCQlURUNITk9MT0dZIFdPUktTLCBJTkMuCiswMDgwMzUgICAgIChiYXNlIDE2KQkJVEVDSE5PTE9HWSBXT1JLUywgSU5DLgorCQkJCTQwMzAgQlJBS0VSIExBTkUgIzM1MAorCQkJCUFVU1RJTiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtMzYgICAoaGV4KQkJUkVGTEVYIE1BTlVGQUNUVVJJTkcgU1lTVEVNUworMDA4MDM2ICAgICAoYmFzZSAxNikJCVJFRkxFWCBNQU5VRkFDVFVSSU5HIFNZU1RFTVMKKwkJCQlVTklUIEQsIFRIRSBGTEVNSU5HIENFTlRSRSwKKwkJCQlGTEVNSU5HIFdBWSwgQ1JBV0xFWSBXRVNUIFNVU1NFWCBSSDEwIDJOCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLTM3ICAgKGhleCkJCUVyaWNzc29uIEdyb3VwCiswMDgwMzcgICAgIChiYXNlIDE2KQkJRXJpY3Nzb24gR3JvdXAKKwkJCQlUZWxlZm9uYWt0aWVib2xhZ2V0CisJCQkJTE0gRXJpY3Nzb24gQ29ycC4gMTI2IDI1IFNUT0NLSE9MTQorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC04MC0zOCAgIChoZXgpCQlEQVRBIFJFU0VBUkNIICYgQVBQTElDQVRJT05TCiswMDgwMzggICAgIChiYXNlIDE2KQkJREFUQSBSRVNFQVJDSCAmIEFQUExJQ0FUSU9OUworCQkJCTkwNDEgRVhFQ1VUSVZFIFBBUksgRFIuCisJCQkJU1VJVEUgMjAwCisJCQkJS05PWFZJTExFIFROIDM3OTIzLTQ2MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTM5ICAgKGhleCkJCUFMQ0FURUwgU1RDIEFVU1RSQUxJQQorMDA4MDM5ICAgICAoYmFzZSAxNikJCUFMQ0FURUwgU1RDIEFVU1RSQUxJQQorCQkJCTI1Mi0yODAgQk9UQU5ZIFJPQUQKKwkJCQlBTEVYQU5EUklBLCBOU1cgMjAxNQorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC04MC0zQSAgIChoZXgpCQlWQVJJVFlQRVIsIElOQy4KKzAwODAzQSAgICAgKGJhc2UgMTYpCQlWQVJJVFlQRVIsIElOQy4KKwkJCQk5MDAgTUlERExFU0VYIFRVUk5QSUtFCisJCQkJQklMTEVSSUNBIE1BIDAxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC0zQiAgIChoZXgpCQlBUFQgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwODAzQiAgICAgKGJhc2UgMTYpCQlBUFQgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk5NjA3IERSLiBQRVJSWSBST0FECisJCQkJSUpBTVNWSUxMRSBNRCAyMTc1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtM0MgICAoaGV4KQkJVFZTIEVMRUNUUk9OSUNTIExURAorMDA4MDNDICAgICAoYmFzZSAxNikJCVRWUyBFTEVDVFJPTklDUyBMVEQKKwkJCQk0NCwgTUlMTEVSIFJPQUQKKwkJCQlCQU5HQUxPUkUgNTYwIDA1MgorCQkJCUlORElBCisJCQkJSU5ESUEKKworMDAtODAtM0QgICAoaGV4KQkJU1VSSUdJS0VOIENPLiwgIExURC4KKzAwODAzRCAgICAgKGJhc2UgMTYpCQlTVVJJR0lLRU4gQ08uLCAgTFRELgorCQkJCVlPVVRIIEJMREcsIDQtMS05IFNISU5KVUtVCisJCQkJU0hJTkpVS1UtS1UsIFRPS1lPCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC0zRSAgIChoZXgpCQlTWU5FUk5FVElDUworMDA4MDNFICAgICAoYmFzZSAxNikJCVNZTkVSTkVUSUNTCisJCQkJODUgUkFOR0VXQVkgUk9BRAorCQkJCU5PUlRIIEJJTExFUklDQSBNQSAwMTg2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtM0YgICAoaGV4KQkJVEFUVU5HIENPTVBBTlkKKzAwODAzRiAgICAgKGJhc2UgMTYpCQlUQVRVTkcgQ09NUEFOWQorCQkJCTIyIENIVU5HU0hBTkcgTi4gUkQuIDNSRCBTRUMuCisJCQkJVEFJUEVJIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTgwLTQwICAgKGhleCkJCUpPSE4gRkxVS0UgTUFOVUZBQ1RVUklORyBDTy4KKzAwODA0MCAgICAgKGJhc2UgMTYpCQlKT0hOIEZMVUtFIE1BTlVGQUNUVVJJTkcgQ08uCisJCQkJUC5PLiBCT1ggQzkwOTAtTS9TIDI0NEYKKwkJCQlFVkVSRVRUIFdBIDk4MjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC00MSAgIChoZXgpCQlWRUIgS09NQklOQVQgUk9CT1RST04KKzAwODA0MSAgICAgKGJhc2UgMTYpCQlWRUIgS09NQklOQVQgUk9CT1RST04KKwkJCQlHUlVOQUVSIFNUUkFCRSAyLCBEUkVTREVOIDgwMTAKKwkJCQlHRFIgRUFTVCBHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC04MC00MiAgIChoZXgpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIKKzAwODA0MiAgICAgKGJhc2UgMTYpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIKKwkJCQkyOTAwIFMuIERpYWJsbyBXYXkKKwkJCQlUZW1wZSBBWiA4NTI4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNDMgICAoaGV4KQkJTkVUV09STEQsIElOQy4KKzAwODA0MyAgICAgKGJhc2UgMTYpCQlORVRXT1JMRCwgSU5DLgorCQkJCUtBTkRBIDMgQU1FUkVYIEJMREcuCisJCQkJMy0xMCBLQU5EQUpJTkJPQ0hPIENISVlPREEtS1UgICAgVE9LWU8gMQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtNDQgICAoaGV4KQkJU1lTVEVDSCBDT01QVVRFUiBDT1JQLgorMDA4MDQ0ICAgICAoYmFzZSAxNikJCVNZU1RFQ0ggQ09NUFVURVIgQ09SUC4KKwkJCQk2NDY1IE5BTkNZIFJJREdFIERSSVZFCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC00NSAgIChoZXgpCQlNQVRTVVNISVRBIEVMRUNUUklDIElORC4gQ08KKzAwODA0NSAgICAgKGJhc2UgMTYpCQlNQVRTVVNISVRBIEVMRUNUUklDIElORC4gQ08KKwkJCQlDT01QVVRFUiBESVZJU0lPTgorCQkJCTEwMDYsIEtBRE9NQSwKKwkJCQlPU0FLQSA1NzEgSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC00NiAgIChoZXgpCQlUYXR0aWxlIFNSTCAKKzAwODA0NiAgICAgKGJhc2UgMTYpCQlUYXR0aWxlIFNSTCAKKwkJCQlERVBULiBPRiBFTEVDVFJJQ0FMIEVOR0lOJ0lORworCQkJCTEwIEtJTkdTIENPTExFR0UgUkQuIFRPUk9OVE8sIE9OVEFSSU8gTTUKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtODAtNDcgICAoaGV4KQkJSU4tTkVUIENPUlAuCiswMDgwNDcgICAgIChiYXNlIDE2KQkJSU4tTkVUIENPUlAuCisJCQkJMTY3MjAgV0VTVCBCRVJOQVJETyBEUklWRQorCQkJCVNBTiBESUVHTyBDQSA5MjEyNy0xOTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC00OCAgIChoZXgpCQlDT01QRVggSU5DT1JQT1JBVEVECiswMDgwNDggICAgIChiYXNlIDE2KQkJQ09NUEVYIElOQ09SUE9SQVRFRAorCQkJCTQwNTUgRUFTVCBMQSBQQUxNQQorCQkJCVVOSVQKKwkJCQlBTkFIRUlNIENBIDkyODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC00OSAgIChoZXgpCQlOSVNTSU4gRUxFQ1RSSUMgQ08uLCBMVEQuCiswMDgwNDkgICAgIChiYXNlIDE2KQkJTklTU0lOIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTQ3LCBVTUVaVSAtIFRBS0FTRSAtIENITworCQkJCVVLWU8tS1UsIEtZT1RPLCA2MTUKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTRBICAgKGhleCkJCVBSTy1MT0cKKzAwODA0QSAgICAgKGJhc2UgMTYpCQlQUk8tTE9HCisJCQkJMTIgVVBQRVIgUkFHU0RBTEUgRFJJVkUKKwkJCQlNT05URVJFWSBDQSA5Mzk0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNEIgICAoaGV4KQkJRUFHTEUgVEVDSE5PTE9HSUVTIFBUWS5MVEQuCiswMDgwNEIgICAgIChiYXNlIDE2KQkJRUFHTEUgVEVDSE5PTE9HSUVTIFBUWS5MVEQuCisJCQkJNzAgS0VZUyBST0FECisJCQkJTU9PUkFCQklOICBWSUMuIDMxODkKKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtODAtNEMgICAoaGV4KQkJQ09OVEVDIENPLiwgTFRELgorMDA4MDRDICAgICAoYmFzZSAxNikJCUNPTlRFQyBDTy4sIExURC4KKwkJCQkzLTktMzEsIEhJTUVTQVRPCisJCQkJTklTSElZT0RPR0FXQS1LVSBPU0FLQSwgNTU1CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC00RCAgIChoZXgpCQlDWUNMT05FIE1JQ1JPU1lTVEVNUywgSU5DLgorMDA4MDREICAgICAoYmFzZSAxNikJCUNZQ0xPTkUgTUlDUk9TWVNURU1TLCBJTkMuCisJCQkJMjUgU0NJRU5DRSBQQVJLCisJCQkJTkVXIEhBVkVOIENUIDA2NTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC00RSAgIChoZXgpCQlBUEVYIENPTVBVVEVSIENPTVBBTlkKKzAwODA0RSAgICAgKGJhc2UgMTYpCQlBUEVYIENPTVBVVEVSIENPTVBBTlkKKwkJCQk0NTAwIDE1MFRIIEFWRU5VRSwgTkUKKwkJCQlSRURNT05EIFdBIDk4MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC00RiAgIChoZXgpCQlEQUlLSU4gSU5EVVNUUklFUywgTFRELgorMDA4MDRGICAgICAoYmFzZSAxNikJCURBSUtJTiBJTkRVU1RSSUVTLCBMVEQuCisJCQkJRUxFQ1RST05JQ1MgRElWSVNJT04KKwkJCQlTSElHQSBQTEFOVCAxMDAwLTIgT0hUQU5JIE9LQU1PVE8tQ0hPLCBLCisJCQkJSkFQQU4gNTI1CisJCQkJSkFQQU4KKworMDAtODAtNTAgICAoaGV4KQkJWklBVEVDSCBDT1JQT1JBVElPTgorMDA4MDUwICAgICAoYmFzZSAxNikJCVpJQVRFQ0ggQ09SUE9SQVRJT04KKwkJCQkzNDMzIFJPQkVSVE8gQ09VUlQKKwkJCQlTQU4gTFVJUyBPQklTUE8gQ0EgOTM0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTUxICAgKGhleCkJCUZJQkVSTVVYCiswMDgwNTEgICAgIChiYXNlIDE2KQkJRklCRVJNVVgKKwkJCQk5MzEwIFRPUEFOR0EgQ0FOWU9OIEJMVkQuCisJCQkJQ0hBVFNXT1JUSCBDQSA5MTMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNTIgICAoaGV4KQkJVEVDSE5JQ0FMTFkgRUxJVEUgQ09OQ0VQVFMKKzAwODA1MiAgICAgKGJhc2UgMTYpCQlURUNITklDQUxMWSBFTElURSBDT05DRVBUUworCQkJCTI2MTUgUEFDSUZJQyBDT0FTVCBISUdIV0FZCisJCQkJSEVSTU9TQSBCRUFDSCBDQSA5MDI1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNTMgICAoaGV4KQkJSU5URUxMSUNPTSwgSU5DLgorMDA4MDUzICAgICAoYmFzZSAxNikJCUlOVEVMTElDT00sIElOQy4KKwkJCQkyMDQxNSBOT1JESE9GRiBTVFJFRVQKKwkJCQlDSEFUU1dPUlRIIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC01NCAgIChoZXgpCQlGUk9OVElFUiBURUNITk9MT0dJRVMgQ09SUC4KKzAwODA1NCAgICAgKGJhc2UgMTYpCQlGUk9OVElFUiBURUNITk9MT0dJRVMgQ09SUC4KKwkJCQkxMDIwMSBOTy4gUFQuIFdBU0hJTkdUT04gUk9BRAorCQkJCU1FUVVPTiBXSSA1MzA5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNTUgICAoaGV4KQkJRkVSTUlMQUIKKzAwODA1NSAgICAgKGJhc2UgMTYpCQlGRVJNSUxBQgorCQkJCVAuTy4gQk9YIDUwMCwgTVMtMjM0CisJCQkJQkFUQVZJQSBJTCA2MDUxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNTYgICAoaGV4KQkJU1BISU5YIEVMRUtUUk9OSUsgR01CSAorMDA4MDU2ICAgICAoYmFzZSAxNikJCVNQSElOWCBFTEVLVFJPTklLIEdNQkgKKwkJCQlXQUxETUFUVEVOU1RSLCAxMworCQkJCTc4MDggV0FMREtJUkNIIDMgUkFQUEVORUNLU1RSQUJFIDEKKwkJCQlXRVNUIEdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTgwLTU3ICAgKGhleCkJCUFEU09GVCwgTFRELgorMDA4MDU3ICAgICAoYmFzZSAxNikJCUFEU09GVCwgTFRELgorCQkJCUltIEJhdW1nYXJ0ZW4gNgorCQkJCU1PSExJTiBDSC00MzEzIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTgwLTU4ICAgKGhleCkJCVBSSU5URVIgU1lTVEVNUyBDT1JQT1JBVElPTgorMDA4MDU4ICAgICAoYmFzZSAxNikJCVBSSU5URVIgU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCTIwNyBQQVJSWSBQQVJLV0FZCisJCQkJR0FJVEhFUlNCVVJHIE1EIDIwODc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC01OSAgIChoZXgpCQlTVEFOTEVZIEVMRUNUUklDIENPLiwgTFRECiswMDgwNTkgICAgIChiYXNlIDE2KQkJU1RBTkxFWSBFTEVDVFJJQyBDTy4sIExURAorCQkJCVImRCBMQUJPUkFUT1JZCisJCQkJMS0zLTEgRURBLU5JU0hJLCBNSURPUkktS1UsIFlPS09IQU1BLVNISQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtNUEgICAoaGV4KQkJVFVMSVAgQ09NUFVURVJTIElOVEVSTkFUJ0wgQi5WCiswMDgwNUEgICAgIChiYXNlIDE2KQkJVFVMSVAgQ09NUFVURVJTIElOVEVSTkFUJ0wgQi5WCisJCQkJUC5PLiBCT1ggMzMzMworCQkJCTUyMDMgREggJ1MtSEVSVE9HRU5CT1NDSAorCQkJCVRIRSBORVRIRVJMQU5EUworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTgwLTVCICAgKGhleCkJCUNPTkRPUiBTWVNURU1TLCBJTkMuCiswMDgwNUIgICAgIChiYXNlIDE2KQkJQ09ORE9SIFNZU1RFTVMsIElOQy4KKwkJCQkyMTMzIFNBTUFSSUxUQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNUMgICAoaGV4KQkJQUdJTElTIENPUlBPUkFUSU9OCiswMDgwNUMgICAgIChiYXNlIDE2KQkJQUdJTElTIENPUlBPUkFUSU9OCisJCQkJMTEwMSBTQU4gQU5UT05JTyBST0FECisJCQkJU1VJVEUgMTAxCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0My0xMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC01RCAgIChoZXgpCQlDQU5TVEFSCiswMDgwNUQgICAgIChiYXNlIDE2KQkJQ0FOU1RBUgorCQkJCTM5MDAgVklDVE9SSUEgUEFSSyBBVkVOVUUKKwkJCQlOT1JUSCBZT1JLIE9OVEFSSU8sIENBTkFEQQorCQkJCU0ySCAzSDcKKwkJCQlDQU5BREEKKworMDAtODAtNUUgICAoaGV4KQkJTFNJIExPR0lDIENPUlBPUkFUSU9OCiswMDgwNUUgICAgIChiYXNlIDE2KQkJTFNJIExPR0lDIENPUlBPUkFUSU9OCisJCQkJMTU1MSBNQ0NBUlRIWSBCT1VMRVZBUkQKKwkJCQlNUyBHODEzCisJCQkJTUlMUElUQVMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTVGICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CiswMDgwNUYgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkyMDU1NSBTdGF0ZSBIaWdod2F5IDI0OQorCQkJCU1TMDQwODAxCisJCQkJSG91c3RvbiBUWCA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNjAgICAoaGV4KQkJTkVUV09SSyBJTlRFUkZBQ0UgQ09SUE9SQVRJT04KKzAwODA2MCAgICAgKGJhc2UgMTYpCQlORVRXT1JLIElOVEVSRkFDRSBDT1JQT1JBVElPTgorCQkJCTE1MDE5IFdFU1QgOTUgU1RSRUVUCisJCQkJTEVORVhBIEtTIDY2MjE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC02MSAgIChoZXgpCQlMSVRUT04gU1lTVEVNUywgSU5DLgorMDA4MDYxICAgICAoYmFzZSAxNikJCUxJVFRPTiBTWVNURU1TLCBJTkMuCisJCQkJTS9TIDQ0LTIwCisJCQkJMjk4NTEgQUdPVVJBIFJPQUQKKwkJCQlBR09VUkEgSElMTFMgQ0EgOTEzMDEtMDUwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNjIgICAoaGV4KQkJSU5URVJGQUNFICBDTy4KKzAwODA2MiAgICAgKGJhc2UgMTYpCQlJTlRFUkZBQ0UgIENPLgorCQkJCTgtMjYgT1pVIDUtQ0hPTUUgTUlOQU1JLUtVCisJCQkJSElST1NISU1BIDczMgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtNjMgICAoaGV4KQkJSGlyc2NobWFubiBBdXRvbWF0aW9uIGFuZCBDb250cm9sIEdtYkgKKzAwODA2MyAgICAgKGJhc2UgMTYpCQlIaXJzY2htYW5uIEF1dG9tYXRpb24gYW5kIENvbnRyb2wgR21iSAorCQkJCVN0dXR0Z2FydGVyIFN0cmFzc2UgNDUtNTEgCisJCQkJTmVja2FydGVuemxpbmdlbiAgIEQtNzI2NTQgCisJCQkJR0VSTUFOWQorCiswMC04MC02NCAgIChoZXgpCQlUYXR0aWxlIFNSTCAKKzAwODA2NCAgICAgKGJhc2UgMTYpCQlUYXR0aWxlIFNSTCAKKwkJCQkzNDcxIE5PUlRIIEZJUlNUIFNUUkVFVCBNL1MKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNjUgICAoaGV4KQkJQ1lCRVJHUkFQSElDIFNZU1RFTVMgUFRZIExURC4KKzAwODA2NSAgICAgKGJhc2UgMTYpCQlDWUJFUkdSQVBISUMgU1lTVEVNUyBQVFkgTFRELgorCQkJCTI5MCBCVVJXT09EIFJPQUQKKwkJCQlIQVdUSE9STiwgVklDVE9SSUEgMzEyMgorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC04MC02NiAgIChoZXgpCQlBUkNPTSBDT05UUk9MIFNZU1RFTVMsIExURC4KKzAwODA2NiAgICAgKGJhc2UgMTYpCQlBUkNPTSBDT05UUk9MIFNZU1RFTVMsIExURC4KKwkJCQlVTklUIDgsIENMSUZUT04gUk9BRAorCQkJCUNBTUJSSURHRSBDQkkgNFdICisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC02NyAgIChoZXgpCQlTUVVBUkUgRCBDT01QQU5ZCiswMDgwNjcgICAgIChiYXNlIDE2KQkJU1FVQVJFIEQgQ09NUEFOWQorCQkJCTQwNDEgTk9SVEggUklDSEFSRCBTVFJFRVQKKwkJCQlQLk8uIEJPWCA0NzIKKwkJCQlNSUxXQVVLRUUgV0kgNTMyMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTY4ICAgKGhleCkJCVlBTUFURUNIIFNDSUVOVElGSUMgTFRELgorMDA4MDY4ICAgICAoYmFzZSAxNikJCVlBTUFURUNIIFNDSUVOVElGSUMgTFRELgorCQkJCTEyNTUgTEFJUkQsIFNVSVRFIDI2MAorCQkJCU1PTlRSRUFMLCBRVUVCRUMgSDNQIDJUMQorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC04MC02OSAgIChoZXgpCQlDT01QVVRPTkUgU1lTVEVNUworMDA4MDY5ICAgICAoYmFzZSAxNikJCUNPTVBVVE9ORSBTWVNURU1TCisJCQkJMTEwMCBOT1JUSE1FQURPVyBQQVJLV0FZCisJCQkJU1VJVEUgMTUwCisJCQkJUk9TV0VMTCBHQSAzMDA3NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNkEgICAoaGV4KQkJRVJJIChFTVBBQyBSRVNFQVJDSCBJTkMuKQorMDA4MDZBICAgICAoYmFzZSAxNikJCUVSSSAoRU1QQUMgUkVTRUFSQ0ggSU5DLikKKwkJCQk0NzU2MCBTRUFCUklER0UgRFJJVkUKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC02QiAgIChoZXgpCQlTQ0hNSUQgVEVMRUNPTU1VTklDQVRJT04KKzAwODA2QiAgICAgKGJhc2UgMTYpCQlTQ0hNSUQgVEVMRUNPTU1VTklDQVRJT04KKwkJCQlCSU5aU1RSQVNTRSAzNSwKKwkJCQlDSC04MDQ1IFpVUklDSAorCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDAtODAtNkMgICAoaGV4KQkJQ0VHRUxFQyBQUk9KRUNUUyBMVEQKKzAwODA2QyAgICAgKGJhc2UgMTYpCQlDRUdFTEVDIFBST0pFQ1RTIExURAorCQkJCURFUFQuIE1ERCwKKwkJCQlCT1VHSFRPTiBSRCwgIFJVR0JZIFdBUktTLCBDTzIxIDFCVQorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC02RCAgIChoZXgpCQlDRU5UVVJZIFNZU1RFTVMgQ09SUC4KKzAwODA2RCAgICAgKGJhc2UgMTYpCQlDRU5UVVJZIFNZU1RFTVMgQ09SUC4KKwkJCQkyLTgtMTIgTUlOQU1JLUNITworCQkJCUtPS1VCVU5KSS1TSEksIFRPS1lPCisJCQkJMTg1IEpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtNkUgICAoaGV4KQkJTklQUE9OIFNURUVMIENPUlBPUkFUSU9OCiswMDgwNkUgICAgIChiYXNlIDE2KQkJTklQUE9OIFNURUVMIENPUlBPUkFUSU9OCisJCQkJMzEtMSBTSElOS0FXQSAyLUNIT1VNRQorCQkJCUNIVU8tS1UgVE9LWU8gMTA0CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC02RiAgIChoZXgpCQlPTkVMQU4gTFRELgorMDA4MDZGICAgICAoYmFzZSAxNikJCU9ORUxBTiBMVEQuCisJCQkJUC5PLiBCT1ggMTA3CisJCQkJSEVOTEVZIE9OIFRIQU1FUyBPWEZPUkRTSElSRSBSRzkgM05PUQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtNzAgICAoaGV4KQkJQ09NUFVUQURPUkFTIE1JQ1JPTgorMDA4MDcwICAgICAoYmFzZSAxNikJCUNPTVBVVEFET1JBUyBNSUNST04KKwkJCQlHVUVSUkVSTyAyMDAxIC0gMTkKKwkJCQlJUkFQVUFUTyBHVE8gIDM2NjYwCisJCQkJTUVYSUNPCisJCQkJTUVYSUNPCisKKzAwLTgwLTcxICAgKGhleCkJCVNBSSBURUNITk9MT0dZCiswMDgwNzEgICAgIChiYXNlIDE2KQkJU0FJIFRFQ0hOT0xPR1kKKwkJCQk0MjI0IENBTVBVUyBQT0lOVCBDT1VSVAorCQkJCVNBTiBESUVHTyBDQSA5MjEyMS0xNTEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC03MiAgIChoZXgpCQlNSUNST1BMRVggU1lTVEVNUyBMVEQuCiswMDgwNzIgICAgIChiYXNlIDE2KQkJTUlDUk9QTEVYIFNZU1RFTVMgTFRELgorCQkJCTEwNC0yMDcxIEtpbmdzd2F5CisJCQkJUG9ydCBDb3F1aXRsYW0sICBCQyBWM0MgNk4yCisJCQkJQ0FOQURBCisKKzAwLTgwLTczICAgKGhleCkJCURXQiBBU1NPQ0lBVEVTCiswMDgwNzMgICAgIChiYXNlIDE2KQkJRFdCIEFTU09DSUFURVMKKwkJCQk5MzYwIFNXIEdFTUlOSSBEUklWRQorCQkJCUJFQVZFUlRPTiBPUiA5NzAwNS03MTUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC03NCAgIChoZXgpCQlGSVNIRVIgQ09OVFJPTFMKKzAwODA3NCAgICAgKGJhc2UgMTYpCQlGSVNIRVIgQ09OVFJPTFMKKwkJCQkxNzEyIENFTlRSRSBDUkVFSyBEUklWRQorCQkJCUFVU1RJTiBUWCA3ODc1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtNzUgICAoaGV4KQkJUEFSU1lURUMgR01CSAorMDA4MDc1ICAgICAoYmFzZSAxNikJCVBBUlNZVEVDIEdNQkgKKwkJCQlKVUVMSUNIRVIgU1RSLiAzMzgKKwkJCQlENTEwMCBBQUNIRU4KKwkJCQlGLlIuIEdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTgwLTc2ICAgKGhleCkJCU1DTkMKKzAwODA3NiAgICAgKGJhc2UgMTYpCQlNQ05DCisJCQkJUC5PLiBCT1ggMTI4ODkKKwkJCQlSVFAgTkMgMjc3MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTc3ICAgKGhleCkJCUJST1RIRVIgSU5EVVNUUklFUywgTFRELgorMDA4MDc3ICAgICAoYmFzZSAxNikJCUJST1RIRVIgSU5EVVNUUklFUywgTFRELgorCQkJCVJFU0VBUkNIIExBQk9SQVRPUlkKKwkJCQk5LTM1IEhPUklUQS1ET1JJLCBNSVpVSE8tS1UgTkFHT1lBLCA0NjcKKwkJCQlKQVBBTgorCiswMC04MC03OCAgIChoZXgpCQlQUkFDVElDQUwgUEVSSVBIRVJBTFMsIElOQy4KKzAwODA3OCAgICAgKGJhc2UgMTYpCQlQUkFDVElDQUwgUEVSSVBIRVJBTFMsIElOQy4KKwkJCQkzNzUgQ09ORUpPIFJJREdFIEFWRU5VRQorCQkJCVRIT1VTQU5EIE9BS1MgQ0EgOTEzNjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTc5ICAgKGhleCkJCU1JQ1JPQlVTIERFU0lHTlMgTFRELgorMDA4MDc5ICAgICAoYmFzZSAxNikJCU1JQ1JPQlVTIERFU0lHTlMgTFRELgorCQkJCVRSRUFEQVdBWSBISUxMCisJCQkJTE9VRFdBVEVSIEhJR0ggV1lDT01CRSBCVUNLUyBIUDEwIDlRTAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtN0EgICAoaGV4KQkJQUlURUNIIFNZU1RFTVMgTFRELgorMDA4MDdBICAgICAoYmFzZSAxNikJCUFJVEVDSCBTWVNURU1TIExURC4KKwkJCQkzMDgwIE9MQ09UVCBTVFJFRVQKKwkJCQlTVUlURSAxMDVBCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTdCICAgKGhleCkJCUFSVEVMIENPTU1VTklDQVRJT05TIENPUlAuCiswMDgwN0IgICAgIChiYXNlIDE2KQkJQVJURUwgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQkyMiBLQU5FIElORFVTVFJJQUwgRFJJVkUKKwkJCQlIVURTT04gTUEgMDE3NDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTdDICAgKGhleCkJCUZJQkVSQ09NLCBJTkMuCiswMDgwN0MgICAgIChiYXNlIDE2KQkJRklCRVJDT00sIElOQy4KKwkJCQkzMzUzIE9SQU5HRSBBVkVOVUUgTkUKKwkJCQlST0FOT0tFIFZBIDI0MDEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC03RCAgIChoZXgpCQlFUVVJTk9YIFNZU1RFTVMgSU5DLgorMDA4MDdEICAgICAoYmFzZSAxNikJCUVRVUlOT1ggU1lTVEVNUyBJTkMuCisJCQkJMTQyNjAgU1cgMTE5VEggQVZFTlVFCisJCQkJTUlBTUkgRkwgMzMxODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTdFICAgKGhleCkJCVNPVVRIRVJOIFBBQ0lGSUMgTFRELgorMDA4MDdFICAgICAoYmFzZSAxNikJCVNPVVRIRVJOIFBBQ0lGSUMgTFRELgorCQkJCVNBTldBIEJMREcuLCAyLTE2LTIwCisJCQkJTUlOQU1JU0FJV0FJIE5JU0hJIFlPS09IQU1BCisJCQkJSkFQQU4gSkFQQU4gMjIwCisJCQkJSkFQQU4KKworMDAtODAtN0YgICAoaGV4KQkJRFktNCBJTkNPUlBPUkFURUQKKzAwODA3RiAgICAgKGJhc2UgMTYpCQlEWS00IElOQ09SUE9SQVRFRAorCQkJCTMzMyBQQUxMQURJVU0gRFJJVkUsIE1TIDMxMgorCQkJCUtBTkFUQSwgT05UQVJJTywgSzJWIDFBNgorCQkJCUNBTkFEQQorCQkJCUNBTkFEQQorCiswMC04MC04MCAgIChoZXgpCQlEQVRBTUVESUEgQ09SUE9SQVRJT04KKzAwODA4MCAgICAgKGJhc2UgMTYpCQlEQVRBTUVESUEgQ09SUE9SQVRJT04KKwkJCQk3NDAxIENFTlRSQUwgSElHSFdBWQorCQkJCVBFTk5TQVVLRU4gTkogMDgxMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTgxICAgKGhleCkJCUtFTkRBTEwgU1FVQVJFIFJFU0VBUkNIIENPUlAuCiswMDgwODEgICAgIChiYXNlIDE2KQkJS0VOREFMTCBTUVVBUkUgUkVTRUFSQ0ggQ09SUC4KKwkJCQkxNzAgVFJBQ0VSIExBTkUKKwkJCQlXQUxUSEFNIE1BIDAyMTU0LTEzNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTgyICAgKGhleCkJCVBFUCBNT0RVTEFSIENPTVBVVEVSUyBHTUJICiswMDgwODIgICAgIChiYXNlIDE2KQkJUEVQIE1PRFVMQVIgQ09NUFVURVJTIEdNQkgKKwkJCQlBUEZFTFNUUkFOR0VSIFNUUi4gMTYKKwkJCQlEIC0gODk1MCBLQVVGQkVVUkVOCisJCQkJV0VTVCBHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC04MC04MyAgIChoZXgpCQlBTURBSEwKKzAwODA4MyAgICAgKGJhc2UgMTYpCQlBTURBSEwKKwkJCQkxMjUwIEVBU1QgQVJRVUVTIEFWRU5VRQorCQkJCU0vUyAyODYgUC5PLiBCT1ggMzQ3MAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OC0zNDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC04NCAgIChoZXgpCQlUSEUgQ0xPVUQgSU5DLgorMDA4MDg0ICAgICAoYmFzZSAxNikJCVRIRSBDTE9VRCBJTkMuCisJCQkJQ0xPVUQgQkxERy4KKwkJCQk3MS0xLCBDSEVPTkctREFNIERPTkcgS0FORy1OQU0gS1UsIFNFT1VMCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtODAtODUgICAoaGV4KQkJSC1USFJFRSBTWVNURU1TIENPUlBPUkFUSU9OCiswMDgwODUgICAgIChiYXNlIDE2KQkJSC1USFJFRSBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJMTAwIFBBUksgRFJJVkUsIFNVSVRFIDIwNAorCQkJCVJFU0VBUkNIIFRSSUFOR0xFIFBBUksKKwkJCQlOQyAyNzcwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtODYgICAoaGV4KQkJQ09NUFVURVIgR0VORVJBVElPTiBJTkMuCiswMDgwODYgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgR0VORVJBVElPTiBJTkMuCisJCQkJMzg1NSBQUkVTSURFTlRJQUwgUEFSS1dBWQorCQkJCUFUTEFOVEEgR0EgMzAzNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTg3ICAgKGhleCkJCU9LSSBFTEVDVFJJQyBJTkRVU1RSWSBDTy4sIExURAorMDA4MDg3ICAgICAoYmFzZSAxNikJCU9LSSBFTEVDVFJJQyBJTkRVU1RSWSBDTy4sIExURAorCQkJCTEwLTMgU0hJQkFVUkEgNC1DSE9NRQorCQkJCU1JTkFUTy1LVSwgVE9LWU8gMTA4CisJCQkJSkFQQU4KKworMDAtODAtODggICAoaGV4KQkJVklDVE9SIENPTVBBTlkgT0YgSkFQQU4sIExURC4KKzAwODA4OCAgICAgKGJhc2UgMTYpCQlWSUNUT1IgQ09NUEFOWSBPRiBKQVBBTiwgTFRELgorCQkJCTU4LTcgU0hJTk1FSS1DSE8sIFlPS09TVUtBCisJCQkJS0FOQUdBV0EgICAyMzkKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLTg5ICAgKGhleCkJCVRFQ05FVElDUyAoUFRZKSBMVEQuCiswMDgwODkgICAgIChiYXNlIDE2KQkJVEVDTkVUSUNTIChQVFkpIExURC4KKwkJCQlQLk8uIEJPWC9QT1NCVVMgNTY0MTIKKwkJCQlQSU5FR09XUklFLCAyMTIzCisJCQkJU09VVEggQUZSSUNBCisJCQkJU09VVEggQUZSSUNBCisKKzAwLTgwLThBICAgKGhleCkJCVNVTU1JVCBNSUNST1NZU1RFTVMgQ09SUC4KKzAwODA4QSAgICAgKGJhc2UgMTYpCQlTVU1NSVQgTUlDUk9TWVNURU1TIENPUlAuCisJCQkJNzEwIExBS0VXQVktU1RFLiMxNTAKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC04QiAgIChoZXgpCQlEQUNPTEwgTElNSVRFRAorMDA4MDhCICAgICAoYmFzZSAxNikJCURBQ09MTCBMSU1JVEVECisJCQkJREFDT0xMIEhPVVNFLCBHQVJETkVSUyBMQU5FCisJCQkJQkFUSEdBVEUgV0VTVCBMT1RISUFOCisJCQkJU0NPVExBTkQgRUg0OCAxVFAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC04QyAgIChoZXgpCQlOZXRTY291dCBTeXN0ZW1zLCBJbmMuCiswMDgwOEMgICAgIChiYXNlIDE2KQkJTmV0U2NvdXQgU3lzdGVtcywgSW5jLgorCQkJCTE1MDEgTUFJTiBTVFJFRVQKKwkJCQlTVUlURSAjNDAKKwkJCQlURVdLU0JVUlkgTUEgMDE4NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLThEICAgKGhleCkJCVdFU1RDT0FTVCBURUNITk9MT0dZIEIuVi4KKzAwODA4RCAgICAgKGJhc2UgMTYpCQlXRVNUQ09BU1QgVEVDSE5PTE9HWSBCLlYuCisJCQkJUC5PLiBCT1ggMzMxNworCQkJCTI2MDEgREggREVMRlQKKwkJCQlORVRIRVJMQU5EUworCQkJCU5FVEhFUkxBTkRTCisKKzAwLTgwLThFICAgKGhleCkJCVJBRFNUT05FIFRFQ0hOT0xPR1kKKzAwODA4RSAgICAgKGJhc2UgMTYpCQlSQURTVE9ORSBURUNITk9MT0dZCisJCQkJV0FURVIgTEFORSwgVE9XQ0VTVEVSCisJCQkJTk9SVEhBTlRTIE5OMTIgN0pOCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLThGICAgKGhleCkJCUMuIElUT0ggRUxFQ1RST05JQ1MsIElOQy4KKzAwODA4RiAgICAgKGJhc2UgMTYpCQlDLiBJVE9IIEVMRUNUUk9OSUNTLCBJTkMuCisJCQkJMjUwNSBNQ0NBQkUgV0FZCisJCQkJSVJWSU5FIENBIDkyNzE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC05MCAgIChoZXgpCQlNSUNST1RFSyBJTlRFUk5BVElPTkFMLCBJTkMuCiswMDgwOTAgICAgIChiYXNlIDE2KQkJTUlDUk9URUsgSU5URVJOQVRJT05BTCwgSU5DLgorCQkJCTMzMDAgTlcgMjExVEggVEVSUkFDRQorCQkJCUhJTExTQk9SIE9SIDk3MTI0LTcxMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLTkxICAgKGhleCkJCVRPS1lPIEVMRUNUUklDIENPLixMVEQKKzAwODA5MSAgICAgKGJhc2UgMTYpCQlUT0tZTyBFTEVDVFJJQyBDTy4sTFRECisJCQkJMTAtMTQgVUNISUtBTkRBCisJCQkJMS1DSE9NRSBDSElZT0RBLUtVCisJCQkJVE9LWU8gSkFQQU4gMTAxCisJCQkJSkFQQU4KKworMDAtODAtOTIgICAoaGV4KQkJU2lsZXggVGVjaG5vbG9neSwgSW5jLgorMDA4MDkyICAgICAoYmFzZSAxNikJCVNpbGV4IFRlY2hub2xvZ3ksIEluYy4KKwkJCQkyLTMtMSBIaWthcmlkYWksCisJCQkJU2Vpa2EtY2hvCisJCQkJS3lvdG8gIDYxOS0wMjM3CisJCQkJSkFQQU4KKworMDAtODAtOTMgICAoaGV4KQkJWFlST04gQ09SUE9SQVRJT04KKzAwODA5MyAgICAgKGJhc2UgMTYpCQlYWVJPTiBDT1JQT1JBVElPTgorCQkJCTc4NjQgTElMWSBDT1VSVAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtOTQgICAoaGV4KQkJQUxGQSBMQVZBTCBBVVRPTUFUSU9OIEFCCiswMDgwOTQgICAgIChiYXNlIDE2KQkJQUxGQSBMQVZBTCBBVVRPTUFUSU9OIEFCCisJCQkJQUROCisJCQkJUy0yMDUgMjIgTUFMTU8KKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtODAtOTUgICAoaGV4KQkJQkFTSUMgTUVSVE9OIEhBTkRFTFNHRVMuTS5CLkguCiswMDgwOTUgICAgIChiYXNlIDE2KQkJQkFTSUMgTUVSVE9OIEhBTkRFTFNHRVMuTS5CLkguCisJCQkJRFVSQ0hMQVNTLVNUUkFTU0UgNDIKKwkJCQlBIC0gOTAyMCBLTEFHRU5GVVJUCisJCQkJQVVTVFJJQQorCQkJCUFVU1RSSUEKKworMDAtODAtOTYgICAoaGV4KQkJSFVNQU4gREVTSUdORUQgU1lTVEVNUywgSU5DLgorMDA4MDk2ICAgICAoYmFzZSAxNikJCUhVTUFOIERFU0lHTkVEIFNZU1RFTVMsIElOQy4KKwkJCQk0MjEgRkVIRUxFWSBEUklWRQorCQkJCUtJTkcgT0YgUFJVU1NJQSBQQSAxOTQwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtOTcgICAoaGV4KQkJQ0VOVFJBTFAgQVVUT01BVElTTUVTCiswMDgwOTcgICAgIChiYXNlIDE2KQkJQ0VOVFJBTFAgQVVUT01BVElTTUVTCisJCQkJMjEsIFJVRSBNQVJDRUwgUEFHTk9MIDY5Njk0CisJCQkJVkVOSVNTSUVVWCBDRURFWAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC04MC05OCAgIChoZXgpCQlUREsgQ09SUE9SQVRJT04KKzAwODA5OCAgICAgKGJhc2UgMTYpCQlUREsgQ09SUE9SQVRJT04KKwkJCQlDT1JQLiBSJkQgREVQVC4gVEVDSC4gSERRVEVSUy4KKwkJCQkyLTE1LTcsIEhJR0FTSEktT1dBREEsIElDSElLQVdBLVNISQorCQkJCUNISUJBLUtFTiAyNzIsIEpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtOTkgICAoaGV4KQkJRWF0b24gSW5kdXN0cmllcyBHbWJICiswMDgwOTkgICAgIChiYXNlIDE2KQkJRWF0b24gSW5kdXN0cmllcyBHbWJICisJCQkJSGVpbi1Nb2VsbGVyIC0gU3RyYWJlIDctMTEKKwkJCQk1MzExNSBCb25uCisJCQkJR0VSTUFOWQorCiswMC04MC05QSAgIChoZXgpCQlOT1ZVUyBORVRXT1JLUyBMVEQKKzAwODA5QSAgICAgKGJhc2UgMTYpCQlOT1ZVUyBORVRXT1JLUyBMVEQKKwkJCQlKT0hOIFNDT1RUIEhPVVNFCisJCQkJTUFSS0VUIFNUUkVFVCBCUkFDS05FTEwsIEJFUktXICBSRzEyIDFKQgorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC05QiAgIChoZXgpCQlKVVNUU1lTVEVNIENPUlBPUkFUSU9OCiswMDgwOUIgICAgIChiYXNlIDE2KQkJSlVTVFNZU1RFTSBDT1JQT1JBVElPTgorCQkJCTMtNDYgT0tJTk9IQU1BSElHQVNISQorCQkJCVRPS1VTSU1BU0hJIDc3MAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtOUMgICAoaGV4KQkJTFVYQ09NLCBJTkMuCiswMDgwOUMgICAgIChiYXNlIDE2KQkJTFVYQ09NLCBJTkMuCisJCQkJMzI0OSBMQVVSRUxWSUVXIENPVVJUCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtOUQgICAoaGV4KQkJQ29tbXNjcmFmdCBMdGQuCiswMDgwOUQgICAgIChiYXNlIDE2KQkJQ29tbXNjcmFmdCBMdGQuCisJCQkJUE8gQk9YIDE2MAorCQkJCUJFTlRMRVksIFcuQS4gNjEwMgorCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC04MC05RSAgIChoZXgpCQlEQVRVUyBHTUJICiswMDgwOUUgICAgIChiYXNlIDE2KQkJREFUVVMgR01CSAorCQkJCUlORFVTVFJJRVNUUi4gMgorCQkJCUQtNTEwMiBXVVJTRUxFTi9BQUNIRU4KKwkJCQlXRVNUIEdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLTgwLTlGICAgKGhleCkJCUFMQ0FURUwgQlVTSU5FU1MgU1lTVEVNUworMDA4MDlGICAgICAoYmFzZSAxNikJCUFMQ0FURUwgQlVTSU5FU1MgU1lTVEVNUworCQkJCTU0LCBBVkVOVUUgSkVBTiBKQVVSRVMKKwkJCQk5MjcwNyBDT0xPTUJFUyBDRURFWAorCQkJCUZSQU5DRQorCiswMC04MC1BMCAgIChoZXgpCQlFRElTQSBIRVdMRVRUIFBBQ0tBUkQgUy9BCiswMDgwQTAgICAgIChiYXNlIDE2KQkJRURJU0EgSEVXTEVUVCBQQUNLQVJEIFMvQQorCQkJCUFMQU1FREEgUklPIE5FR1JPLAorCQkJCTc1MC1BTFBIQVZJTExFIDA2NDU0LTAwMCAgQkFSVUVSSSBTUAorCQkJCUJSQVpJTAorCQkJCUJSQVpJTAorCiswMC04MC1BMSAgIChoZXgpCQlNSUNST1RFU1QsIElOQy4KKzAwODBBMSAgICAgKGJhc2UgMTYpCQlNSUNST1RFU1QsIElOQy4KKwkJCQk0NzQ3IE4uIDIyTkQgU1RSRUVUCisJCQkJUEhPRU5JWCBBWiA4NTAxNi00NzA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1BMiAgIChoZXgpCQlUYXR0aWxlIFNSTCAKKzAwODBBMiAgICAgKGJhc2UgMTYpCQlUYXR0aWxlIFNSTCAKKwkJCQk3MCBST1VURSBEVSBQT05UIC0gQlVUSU4KKwkJCQlDSC0xMjEzIFBFVElULUxBTkNZIEdFTkVWQQorCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDAtODAtQTMgICAoaGV4KQkJTGFudHJvbml4CiswMDgwQTMgICAgIChiYXNlIDE2KQkJTGFudHJvbml4CisJCQkJMTUzNTMgQmFycmFuY2EgUGFya3dheQorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQTQgICAoaGV4KQkJTElCRVJUWSBFTEVDVFJPTklDUworMDA4MEE0ICAgICAoYmFzZSAxNikJCUxJQkVSVFkgRUxFQ1RST05JQ1MKKwkJCQkzMzIgSEFSQk9SIFdBWQorCQkJCVNPVVRIIFNBTiBGUkFOQ0lTQ08gQ0EgOTQwODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUE1ICAgKGhleCkJCVNQRUVEIElOVEVSTkFUSU9OQUwKKzAwODBBNSAgICAgKGJhc2UgMTYpCQlTUEVFRCBJTlRFUk5BVElPTkFMCisJCQkJMTMyMCBBUkJPTElUQSBEUi4KKwkJCQlMQSBIQUJSQSBDQSA5MDYzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQTYgICAoaGV4KQkJUkVQVUJMSUMgVEVDSE5PTE9HWSwgSU5DLgorMDA4MEE2ICAgICAoYmFzZSAxNikJCVJFUFVCTElDIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQlQLk8uIEJPWCAxNDEwMDYKKwkJCQlBVVNUSU4gVFggNzg3MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUE3ICAgKGhleCkJCUhvbmV5d2VsbCBJbnRlcm5hdGlvbmFsIEluYworMDA4MEE3ICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbCBJbnRlcm5hdGlvbmFsIEluYworCQkJCVZhbmNvdXZlciBDZW50ZXIgb2YgRXhjZWxsZW5jZSAKKwkJCQk1MDAgQnJvb2tzYmFuayBBdmVudWUgCisJCQkJTm9ydGggVmFuY291dmVyICBWN0ogM1M0IAorCQkJCUNBTkFEQQorCiswMC04MC1BOCAgIChoZXgpCQlWSVRBQ09NIENPUlBPUkFUSU9OCiswMDgwQTggICAgIChiYXNlIDE2KQkJVklUQUNPTSBDT1JQT1JBVElPTgorCQkJCTEzMzAgQ0hBUkxFU1RPTiBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQTkgICAoaGV4KQkJQ0xFQVJQT0lOVCBSRVNFQVJDSAorMDA4MEE5ICAgICAoYmFzZSAxNikJCUNMRUFSUE9JTlQgUkVTRUFSQ0gKKwkJCQkxOTAgTk9SVEggTUFJTiBTVFJFRVQKKwkJCQlOQVRJQ0sgTUEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUFBICAgKGhleCkJCU1BWFBFRUQKKzAwODBBQSAgICAgKGJhc2UgMTYpCQlNQVhQRUVECisJCQkJMTEyMCBDSEVTUyBEUklWRQorCQkJCUZPU1RFUiBDSVRZIENBIDk0NDA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1BQiAgIChoZXgpCQlEVUtBTkUgTkVUV09SSyBJTlRFR1JBVElPTgorMDA4MEFCICAgICAoYmFzZSAxNikJCURVS0FORSBORVRXT1JLIElOVEVHUkFUSU9OCisJCQkJMjkwMCBEVUtBTkUgRFJJVkUKKwkJCQlTVC4gQ0hBUkxFUyBJTCA2MDE3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQUMgICAoaGV4KQkJSU1MT0dJWCwgRElWSVNJT04gT0YgR0VORVNZUworMDA4MEFDICAgICAoYmFzZSAxNikJCUlNTE9HSVgsIERJVklTSU9OIE9GIEdFTkVTWVMKKwkJCQkxOTAwIFNVTU1JVCBUT1dFUiBCTFZELlNURSM3NzAKKwkJCQlPUkxBTkRPIEZMIDMyODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1BRCAgIChoZXgpCQlDTkVUIFRFQ0hOT0xPR1ksIElOQy4KKzAwODBBRCAgICAgKGJhc2UgMTYpCQlDTkVUIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkyMTk5IFpBTktFUiBST0FECisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUFFICAgKGhleCkJCUhVR0hFUyBORVRXT1JLIFNZU1RFTVMKKzAwODBBRSAgICAgKGJhc2UgMTYpCQlIVUdIRVMgTkVUV09SSyBTWVNURU1TCisJCQkJMTE3MTcgRVhQTE9SQVRJT04gTEFORQorCQkJCUdFUk1BTlRPV04gTUQgMjA4NzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUFGICAgKGhleCkJCUFMTFVNRVIgQ08uLCBMVEQuCiswMDgwQUYgICAgIChiYXNlIDE2KQkJQUxMVU1FUiBDTy4sIExURC4KKwkJCQkyLTgtOCBDSFVPLUNITywgTUVHVVJPLUtVCisJCQkJVE9LWU8gMTUyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC1CMCAgIChoZXgpCQlBRFZBTkNFRCBJTkZPUk1BVElPTgorMDA4MEIwICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIElORk9STUFUSU9OCisJCQkJVEVDSE5PTE9HWSwgSU5DLgorCQkJCTVGIDEtMi02IE5JSE9OQkFTSEktSE9OQ0hPIENIVU8tS1UsICBUT0sKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLUIxICAgKGhleCkJCVNPRlRDT00gQS9TCiswMDgwQjEgICAgIChiYXNlIDE2KQkJU09GVENPTSBBL1MKKwkJCQlTVFVESUVTVFJBRURFIDIxCisJCQkJREsgMTQ1NSBDT1BFTk5IQUdFTiBLLgorCQkJCURFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLTgwLUIyICAgKGhleCkJCU5FVFdPUksgRVFVSVBNRU5UIFRFQ0hOT0xPR0lFUworMDA4MEIyICAgICAoYmFzZSAxNikJCU5FVFdPUksgRVFVSVBNRU5UIFRFQ0hOT0xPR0lFUworCQkJCTY5MDAgUEFTRU8gUEFEUkUgUEFSS1dBWQorCQkJCUZSRU1PTlQgQ0EgOTQ1NTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUIzICAgKGhleCkJCUFWQUwgREFUQSBDT1JQT1JBVElPTgorMDA4MEIzICAgICAoYmFzZSAxNikJCUFWQUwgREFUQSBDT1JQT1JBVElPTgorCQkJCU1BQ0hJREEgRU5HSU5FRVJJTkcgQ0VOVEVSCisJCQkJMTc1Ny0xIEtBTkFJLUNITyBNQUNISURBIENJVFkgVE9LWU8gSkFQQQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtQjQgICAoaGV4KQkJU09QSElBIFNZU1RFTVMKKzAwODBCNCAgICAgKGJhc2UgMTYpCQlTT1BISUEgU1lTVEVNUworCQkJCTMzMzcgS0lGRVIgUk9BRAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1CNSAgIChoZXgpCQlVTklURUQgTkVUV09SS1MgSU5DLgorMDA4MEI1ICAgICAoYmFzZSAxNikJCVVOSVRFRCBORVRXT1JLUyBJTkMuCisJCQkJMjE3OCBQQVJBR09OIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUI2ICAgKGhleCkJCVRIRU1JUyBDT01QVVRFUgorMDA4MEI2ICAgICAoYmFzZSAxNikJCVRIRU1JUyBDT01QVVRFUgorCQkJCTY2ODEgT1dFTlMgRFJJVkUKKwkJCQlQTEVBU09OVE9OIENBIDk0NTg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1CNyAgIChoZXgpCQlTVEVMTEFSIENPTVBVVEVSCiswMDgwQjcgICAgIChiYXNlIDE2KQkJU1RFTExBUiBDT01QVVRFUgorCQkJCTk1IFdFTExTIEFWRU5VRQorCQkJCU5FV1RPTiBNQSAwMjE1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQjggICAoaGV4KQkJQlVHLCBJTkNPUlBPUkFURUQKKzAwODBCOCAgICAgKGJhc2UgMTYpCQlCVUcsIElOQ09SUE9SQVRFRAorCQkJCTEtMTQgVEVDSE5PLVBBUksgIDEtQ0hPTUUKKwkJCQlTSElNT05PUFBPUk8sIEFUU1VCRVRTVS1LVSBTQVBQT1JPIDAwNCwKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLUI5ICAgKGhleCkJCUFSQ0hFIFRFQ0hOT0xJR0lFUyBJTkMuCiswMDgwQjkgICAgIChiYXNlIDE2KQkJQVJDSEUgVEVDSE5PTElHSUVTIElOQy4KKwkJCQk0ODUwMiBLQVRPIFJPQUQKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUyBNSU5PUiBPVVRMWUlORyBJU0xBTgorCiswMC04MC1CQSAgIChoZXgpCQlTUEVDSUFMSVggKEFTSUEpIFBURSwgTFRECiswMDgwQkEgICAgIChiYXNlIDE2KQkJU1BFQ0lBTElYIChBU0lBKSBQVEUsIExURAorCQkJCTMgV0lOVEVSU0VMTFMgUk9BRAorCQkJCUJZRkxFRVQgU1VSUkVZICBLVDE0N0xGCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC1CQiAgIChoZXgpCQlIVUdIRVMgTEFOIFNZU1RFTVMKKzAwODBCQiAgICAgKGJhc2UgMTYpCQlIVUdIRVMgTEFOIFNZU1RFTVMKKwkJCQkxMjI1IENIQVJMRVNUT04gUk9BRAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUJDICAgKGhleCkJCUhJVEFDSEkgRU5HSU5FRVJJTkcgQ08uLCBMVEQKKzAwODBCQyAgICAgKGJhc2UgMTYpCQlISVRBQ0hJIEVOR0lORUVSSU5HIENPLiwgTFRECisJCQkJNC04LTI2LCBPTUlLQUNITworCQkJCUhJVEFDSEkgQ0lUWSBJQkFSQUtJIFBSRUZFQ1RVUkUgMzE5LTEyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC1CRCAgIChoZXgpCQlUSEUgRlVSVUtBV0EgRUxFQ1RSSUMgQ08uLCBMVEQKKzAwODBCRCAgICAgKGJhc2UgMTYpCQlUSEUgRlVSVUtBV0EgRUxFQ1RSSUMgQ08uLCBMVEQKKwkJCQk2LTEsIE1BUlVOT1VDSEkgMi1DSE9NRQorCQkJCUNISVlPREEtS1UsIFRPS1lPCisJCQkJMTAwIEpBUEFOCisJCQkJSkFQQU4KKworMDAtODAtQkUgICAoaGV4KQkJQVJJRVMgUkVTRUFSQ0gKKzAwODBCRSAgICAgKGJhc2UgMTYpCQlBUklFUyBSRVNFQVJDSAorCQkJCTQ2NzkxIEZSRU1PTkQgQkxWRC4KKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1CRiAgIChoZXgpCQlUQUtBT0tBIEVMRUNUUklDIE1GRy4gQ08uIExURC4KKzAwODBCRiAgICAgKGJhc2UgMTYpCQlUQUtBT0tBIEVMRUNUUklDIE1GRy4gQ08uIExURC4KKwkJCQlLQU5EQSBCUkFOQ0ggT0ZGSUNFIFRPTkVOCisJCQkJMi0xLTExLCBTQVJVR0FLVS1DSE8gQ0hJWU9EQS1LVSwgVE9LWU8sCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC1DMCAgIChoZXgpCQlQRU5SSUwgREFUQUNPTU0KKzAwODBDMCAgICAgKGJhc2UgMTYpCQlQRU5SSUwgREFUQUNPTU0KKwkJCQkxMzAwIFFVSU5DRSBPUkNIQVJEIEJMVkQuCisJCQkJR0FJVEhFUlNCVVJHIE1EIDIwODc4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1DMSAgIChoZXgpCQlMQU5FWCBDT1JQT1JBVElPTgorMDA4MEMxICAgICAoYmFzZSAxNikJCUxBTkVYIENPUlBPUkFUSU9OCisJCQkJMTA3MjcgVFVDS0VSIFNUUkVFVAorCQkJCUJFTFRTVklMTEUgTUQgMjA3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUMyICAgKGhleCkJCUlFRUUgODAyLjEgQ09NTUlUVEVFCiswMDgwQzIgICAgIChiYXNlIDE2KQkJSUVFRSA4MDIuMSBDT01NSVRURUUKKwkJCQk4MDIuMSBDaGFpciwgYy9vIElFRUUgU3RhbmRhcmRzIEFzc29jaWF0aW9uCisJCQkJNDQ1IEhvZXMgTGFuZQorCQkJCVBpc2NhdGF3YXkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUMzICAgKGhleCkJCUJJQ0MgSU5GT1JNQVRJT04gU1lTVEVNUyAmIFNWQworMDA4MEMzICAgICAoYmFzZSAxNikJCUJJQ0MgSU5GT1JNQVRJT04gU1lTVEVNUyAmIFNWQworCQkJCTUwMCBDQVBBQklMSVRZIEdSRUVOLCBMVVRPTgorCQkJCUJFREZPUkRTSElSRQorCQkJCUVOR0xBTkQgTFUxIDNMVAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLUM0ICAgKGhleCkJCURPQ1VNRU5UIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA4MEM0ICAgICAoYmFzZSAxNikJCURPQ1VNRU5UIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTEzMDAgQ0hBUkxFU1RPTiBST0FECisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQzUgICAoaGV4KQkJTk9WRUxMQ08gREUgTUVYSUNPCiswMDgwQzUgICAgIChiYXNlIDE2KQkJTk9WRUxMQ08gREUgTUVYSUNPCisJCQkJQ09OU1RJVFVZRU5URVMgTk8uIDkwNworCQkJCUNPTC4gTE9NQVMgQUxUQVMKKwkJCQkxMTk1MCBNRVhJQ08gMTE5NTAgTUVYSUNPIEQuRi4KKwkJCQlNRVhJQ08KKworMDAtODAtQzYgICAoaGV4KQkJTkFUSU9OQUwgREFUQUNPTU0gQ09SUE9SQVRJT04KKzAwODBDNiAgICAgKGJhc2UgMTYpCQlOQVRJT05BTCBEQVRBQ09NTSBDT1JQT1JBVElPTgorCQkJCTJGLCAyOCwgSU5EVVNUUlkgRUFTVCA5VEggUkQuCisJCQkJU0NJRU5DRSBQQVJLLCBIU0lOLUNIVQorCQkJCVRBSVdBTiAgMzAwNzcgVEFJV0FOICAzMDA3NyBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTgwLUM3ICAgKGhleCkJCVhJUkNPTQorMDA4MEM3ICAgICAoYmFzZSAxNikJCVhJUkNPTQorCQkJCTI2MDI1IE1VUkVBVSBST0FECisJCQkJQ0FMQUJBU0FTIENBIDkxMzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1DOCAgIChoZXgpCQlELUxJTksgU1lTVEVNUywgSU5DLgorMDA4MEM4ICAgICAoYmFzZSAxNikJCUQtTElOSyBTWVNURU1TLCBJTkMuCisJCQkJNTMgRGlzY292ZXIgRHIuCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1DOSAgIChoZXgpCQlBTEJFUlRBIE1JQ1JPRUxFQ1RST05JQyBDRU5UUkUKKzAwODBDOSAgICAgKGJhc2UgMTYpCQlBTEJFUlRBIE1JQ1JPRUxFQ1RST05JQyBDRU5UUkUKKwkJCQkzMTgsIDExMzE1IC0gODcgQVZFTlVFCisJCQkJRURNT05UT04sIEFCIFQ2RyAyQzIKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtODAtQ0EgICAoaGV4KQkJTkVUQ09NIFJFU0VBUkNIIElOQ09SUE9SQVRFRAorMDA4MENBICAgICAoYmFzZSAxNikJCU5FVENPTSBSRVNFQVJDSCBJTkNPUlBPUkFURUQKKwkJCQkyMDEgVEVDSE5PTE9HWSBEUklWRQorCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQ0IgICAoaGV4KQkJRkFMQ08gREFUQSBQUk9EVUNUUworMDA4MENCICAgICAoYmFzZSAxNikJCUZBTENPIERBVEEgUFJPRFVDVFMKKwkJCQk0NDAgUE9UUkVSTyBBVkVOVUUKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYtNDE5NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtQ0MgICAoaGV4KQkJTUlDUk9XQVZFIEJZUEFTUyBTWVNURU1TCiswMDgwQ0MgICAgIChiYXNlIDE2KQkJTUlDUk9XQVZFIEJZUEFTUyBTWVNURU1TCisJCQkJMjUgQlJBSU5UUkVFIEhJTEwgT0ZGSUNFIFBBUksKKwkJCQlCUkFJTlRSRUUgTUEgMDIxODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUNEICAgKGhleCkJCU1JQ1JPTklDUyBDT01QVVRFUiwgSU5DLgorMDA4MENEICAgICAoYmFzZSAxNikJCU1JQ1JPTklDUyBDT01QVVRFUiwgSU5DLgorCQkJCTQ1MzY1IE5PUlRIUE9SVCBMT09QIFdFU1QKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1DRSAgIChoZXgpCQlCUk9BRENBU1QgVEVMRVZJU0lPTiBTWVNURU1TCiswMDgwQ0UgICAgIChiYXNlIDE2KQkJQlJPQURDQVNUIFRFTEVWSVNJT04gU1lTVEVNUworCQkJCVAuTy4gQk9YIDMwODE2CisJCQkJU0FMVCBMQUtFIENJVFksIFVUQUgKKwkJCQlVdGFoIDg0MTMwLTA4MTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUNGICAgKGhleCkJCUVNQkVEREVEIFBFUkZPUk1BTkNFIElOQy4KKzAwODBDRiAgICAgKGJhc2UgMTYpCQlFTUJFRERFRCBQRVJGT1JNQU5DRSBJTkMuCisJCQkJMzM4NSBTQ09UVCBCTFZELgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0LTMxMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUQwICAgKGhleCkJCUNPTVBVVEVSIFBFUklQSEVSQUxTLCBJTkMuCiswMDgwRDAgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgUEVSSVBIRVJBTFMsIElOQy4KKwkJCQk2NjcgUkFOQ0hPIENPTkVKTyBCTFZELgorCQkJCU5FV0JVUlkgUEFSSyBDQSA5MTMyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRDEgICAoaGV4KQkJS0lNVFJPTiBDT1JQT1JBVElPTgorMDA4MEQxICAgICAoYmFzZSAxNikJCUtJTVRST04gQ09SUE9SQVRJT04KKwkJCQkxNzA5IEpVTkNUSU9OIENPVVJUCisJCQkJQlVJTERJTkcgMzgwCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUQyICAgKGhleCkJCVNISU5OSUhPTkRFTktPIENPLiwgTFRELgorMDA4MEQyICAgICAoYmFzZSAxNikJCVNISU5OSUhPTkRFTktPIENPLiwgTFRELgorCQkJCTYtOCBOSVNISVRFTk1BIDIgQ0hPTUUKKwkJCQlLSVRBLUtVLCBPU0FLQSA1MzAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLUQzICAgKGhleCkJCVNISVZBIENPUlAuCiswMDgwRDMgICAgIChiYXNlIDE2KQkJU0hJVkEgQ09SUC4KKwkJCQkyMDUgQlVSTElOR1RPTiBST0FECisJCQkJQkVERk9SRCBNQSAwMTczMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRDQgICAoaGV4KQkJQ0hBU0UgUkVTRUFSQ0ggTFRELgorMDA4MEQ0ICAgICAoYmFzZSAxNikJCUNIQVNFIFJFU0VBUkNIIExURC4KKwkJCQk3IENISU5FSEFNIEJVU0lORVNTIFBBUksKKwkJCQlCQVNJTkdTVE9LRSwgUkcgMjQgT1dECisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLUQ1ICAgKGhleCkJCUNBRFJFIFRFQ0hOT0xPR0lFUworMDA4MEQ1ICAgICAoYmFzZSAxNikJCUNBRFJFIFRFQ0hOT0xPR0lFUworCQkJCTE5NTQ1IE5XIFZPTiBORVVNQU5OIERSSVZFCisJCQkJQkVBVkVSVE9OIE9SIDk3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1ENiAgIChoZXgpCQlOVVZPVEVDSCwgSU5DLgorMDA4MEQ2ICAgICAoYmFzZSAxNikJCU5VVk9URUNILCBJTkMuCisJCQkJMjAxNSBCUklER0VXQVksIFNVSVRFIDIwNAorCQkJCVNBVVNBTElUTyBDQSA5NDk2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRDcgICAoaGV4KQkJRmFudHVtIEVuZ2luZWVyaW5nCiswMDgwRDcgICAgIChiYXNlIDE2KQkJRmFudHVtIEVuZ2luZWVyaW5nCisJCQkJCisJCQkJUC5PLiBCb3ggMTUwOQorCQkJCVJvY2t3YWxsIFRYIDc1MDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1EOCAgIChoZXgpCQlORVRXT1JLIFBFUklQSEVSQUxTIElOQy4KKzAwODBEOCAgICAgKGJhc2UgMTYpCQlORVRXT1JLIFBFUklQSEVSQUxTIElOQy4KKwkJCQkyODkwIFpPTktFUiBST0FEIFNVSVRFIDIwOQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1EOSAgIChoZXgpCQlFTUsgRWxla3Ryb25payBHbWJIICYgQ28uIEtHCiswMDgwRDkgICAgIChiYXNlIDE2KQkJRU1LIEVsZWt0cm9uaWsgR21iSCAmIENvLiBLRworCQkJCU9iZXJlIEJlcmdzdHJhc3NlIDE2CisJCQkJNzUzMzUgRG9iZWwgCisJCQkJR0VSTUFOWQorCiswMC04MC1EQSAgIChoZXgpCQlCcnVlbCAmIEtqYWVyIFNvdW5kICYgVmlicmF0aW9uIE1lYXN1cmVtZW50IEEvUworMDA4MERBICAgICAoYmFzZSAxNikJCUJydWVsICYgS2phZXIgU291bmQgJiBWaWJyYXRpb24gTWVhc3VyZW1lbnQgQS9TCisJCQkJU2tvZHNib3JndmVqIDMwNyAKKwkJCQlESy0yODUwIE5BRVJVTQorCQkJCURFTk1BUksKKworMDAtODAtREIgICAoaGV4KQkJR1JBUEhPTiBDT1JQT1JBVElPTgorMDA4MERCICAgICAoYmFzZSAxNikJCUdSQVBIT04gQ09SUE9SQVRJT04KKwkJCQkxNTA2IERFTEwgQVZFIC0gIworCQkJCUNBTVBCRUxMIENBIDk1MDA4LTY5MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLURDICAgKGhleCkJCVBJQ0tFUiBJTlRFUk5BVElPTkFMCiswMDgwREMgICAgIChiYXNlIDE2KQkJUElDS0VSIElOVEVSTkFUSU9OQUwKKwkJCQk1OTUgTUlORVIgUk9BRAorCQkJCUNMRVZFTEFORCBPSCA0NDE0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtREQgICAoaGV4KQkJR01YIElOQy9HSU1JWAorMDA4MEREICAgICAoYmFzZSAxNikJCUdNWCBJTkMvR0lNSVgKKwkJCQkzMjIzIEFSTk9MRCBMQU5FCisJCQkJTk9SVEhCUk9PSyBJTCA2MDA2Mi0yNDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1ERSAgIChoZXgpCQlHSVBTSSBTLkEuCiswMDgwREUgICAgIChiYXNlIDE2KQkJR0lQU0kgUy5BLgorCQkJCTIsQkQgVkFVQkFOIC0gQi5QLiAyNjgKKwkJCQk3ODA1MyBTVC4gUVVFTlRJTiBFTiBZVkVMSU5FUyBDRURFWAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC04MC1ERiAgIChoZXgpCQlBREMgQ09ERU5PTEwgVEVDSE5PTE9HWSBDT1JQLgorMDA4MERGICAgICAoYmFzZSAxNikJCUFEQyBDT0RFTk9MTCBURUNITk9MT0dZIENPUlAuCisJCQkJMjAwIENPUlBPUkFURSBCTFZELiBTTy4KKwkJCQlZT05LRVJTIE5ZIDEwNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1FMCAgIChoZXgpCQlYVFAgU1lTVEVNUywgSU5DLgorMDA4MEUwICAgICAoYmFzZSAxNikJCVhUUCBTWVNURU1TLCBJTkMuCisJCQkJMTkwMCBTVEFURSBTVFJFRVQgLCBTVEUKKwkJCQlTQU5UQSBCQVJCQVJBIENBIDkzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1FMSAgIChoZXgpCQlTVE1JQ1JPRUxFQ1RST05JQ1MKKzAwODBFMSAgICAgKGJhc2UgMTYpCQlTVE1JQ1JPRUxFQ1RST05JQ1MKKwkJCQkxMDAwIEFaVEVDIFdFU1QKKwkJCQlBTE1PTkRTQlVSWSBCUklTVE9MIEJTMzIgNFNRCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtRTIgICAoaGV4KQkJVC5ELkkuIENPLiwgTFRELgorMDA4MEUyICAgICAoYmFzZSAxNikJCVQuRC5JLiBDTy4sIExURC4KKwkJCQlERVZFTE9QTUVOVCBESVYuICAjMyBGVUpJIEJMREcKKwkJCQkxLTMtMTMgSVRBQ0hJQk9SSSBOSVNISS1LVSBPU0FLQSA1NTAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLUUzICAgKGhleCkJCUNPUkFMIE5FVFdPUksgQ09SUE9SQVRJT04KKzAwODBFMyAgICAgKGJhc2UgMTYpCQlDT1JBTCBORVRXT1JLIENPUlBPUkFUSU9OCisJCQkJKE5PVyBCQVkgTkVUV09SS1MpCisJCQkJNDQwMSBHUkVBVCBBTUVSSUNBTiBQS1dZIE0vUzogU0MwMS0wNQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyLTgxODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUU0ICAgKGhleCkJCU5PUlRIV0VTVCBESUdJVEFMIFNZU1RFTVMsIElOQworMDA4MEU0ICAgICAoYmFzZSAxNikJCU5PUlRIV0VTVCBESUdJVEFMIFNZU1RFTVMsIElOQworCQkJCVAuTy4gQk9YIDE1Mjg4CisJCQkJU0VBVFRMRSBXQSA5ODExNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRTUgICAoaGV4KQkJTFNJIExvZ2ljIENvcnBvcmF0aW9uCiswMDgwRTUgICAgIChiYXNlIDE2KQkJTFNJIExvZ2ljIENvcnBvcmF0aW9uCisJCQkJMzcxOCBOLiBSb2NrIFJvYWQKKwkJCQlXaWNoaXRhIEtTIDY3MjI2LTEzOTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUU2ICAgKGhleCkJCVBFRVIgTkVUV09SS1MsIElOQy4KKzAwODBFNiAgICAgKGJhc2UgMTYpCQlQRUVSIE5FVFdPUktTLCBJTkMuCisJCQkJMzM1MCBTQ09UVCBCTFZELiBCTERHLiAxNAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1FNyAgIChoZXgpCQlMWU5XT09EIFNDSUVOVElGSUMgREVWLiBMVEQuCiswMDgwRTcgICAgIChiYXNlIDE2KQkJTFlOV09PRCBTQ0lFTlRJRklDIERFVi4gTFRELgorCQkJCUZBUk5IQU0gVFJBRElORyBFU1RBVEUKKwkJCQlGQVJOSEFNLCBTVVJSRVksIEdVOSA5Tk4KKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTgwLUU4ICAgKGhleCkJCUNVTVVMVVMgQ09SUE9SQVRJSU9OCiswMDgwRTggICAgIChiYXNlIDE2KQkJQ1VNVUxVUyBDT1JQT1JBVElJT04KKwkJCQkyMzUwMCBNRVJDQU5USUxFIFJPQUQKKwkJCQlDTEVWRUxBTkQgT0ggNDQxMjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUU5ICAgKGhleCkJCU1hZGdlIEx0ZC4KKzAwODBFOSAgICAgKGJhc2UgMTYpCQlNYWRnZSBMdGQuCisJCQkJTWFkZ2UgSG91c2UKKwkJCQlQcmlvcnMgV2F5CisJCQkJTWFpbmRlbmhlYWQgQmVya3NoaXJlIFNMNiAySFAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC1FQSAgIChoZXgpCQlBRFZBIE9wdGljYWwgTmV0d29ya2luZyBMdGQuCiswMDgwRUEgICAgIChiYXNlIDE2KQkJQURWQSBPcHRpY2FsIE5ldHdvcmtpbmcgTHRkLgorCQkJCU9uZSBUZWNobm9sb2d5IFBhcmt3YXkgU291dGgKKwkJCQlOb3Jjcm9zcyBHQSAzMDA5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRUIgICAoaGV4KQkJQ09NUENPTlRST0wgQi5WLgorMDA4MEVCICAgICAoYmFzZSAxNikJCUNPTVBDT05UUk9MIEIuVi4KKwkJCQlTVFJBVFVNU0VEIEszMQorCQkJCTU2MTEgTkIgRUlOREhPVkVOCisJCQkJVEhFIE5FVEhFUkxBTkRTCisJCQkJTkVUSEVSTEFORFMKKworMDAtODAtRUMgICAoaGV4KQkJU1VQRVJDT01QVVRJTkcgU09MVVRJT05TLCBJTkMuCiswMDgwRUMgICAgIChiYXNlIDE2KQkJU1VQRVJDT01QVVRJTkcgU09MVVRJT05TLCBJTkMuCisJCQkJNjE3NSBOQU5DWSBSSURHRSBCTFZELgorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRUQgICAoaGV4KQkJSVEgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDgwRUQgICAgIChiYXNlIDE2KQkJSVEgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTE4MTEgTkUgRklSU1QgU1RSRUVUCisJCQkJU1VJVEUgMjAxCisJCQkJQkVMTEVWVUUgV0EgOTgwMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUVFICAgKGhleCkJCVRIT01TT04gQ1NGCiswMDgwRUUgICAgIChiYXNlIDE2KQkJVEhPTVNPTiBDU0YKKwkJCQk1MSBFU1BMQU5BREUgRFUgR0VORVJBTAorCQkJCURFIEdBVUxMRSA5MjA0NSAtIFBBUklTIExBICBERUZFTlNFIC0gQ0UKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtODAtRUYgICAoaGV4KQkJUkFUSU9OQUwKKzAwODBFRiAgICAgKGJhc2UgMTYpCQlSQVRJT05BTAorCQkJCTMzMjAgU0NPVFQgQk9VTEVWQVJECisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUYwICAgKGhleCkJCVBhbmFzb25pYyBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKzAwODBGMCAgICAgKGJhc2UgMTYpCQlQYW5hc29uaWMgQ29tbXVuaWNhdGlvbnMgQ28uLCBMdGQuCisJCQkJNC0xLTYyIE1pbm9zaGltYSBIYWthdGEgRnVrdW9rYQorCQkJCTgxMi04NTMxCisJCQkJSkFQQU4KKworMDAtODAtRjEgICAoaGV4KQkJT1BVUyBTWVNURU1TCiswMDgwRjEgICAgIChiYXNlIDE2KQkJT1BVUyBTWVNURU1TCisJCQkJMzAwMCBDT1JPTkFETyBEUklWRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1GMiAgIChoZXgpCQlSQVlDT00gU1lTVEVNUyBJTkMKKzAwODBGMiAgICAgKGJhc2UgMTYpCQlSQVlDT00gU1lTVEVNUyBJTkMKKwkJCQkxNjUyNSBTSEVSTUFOIFdBWSAjQy04CisJCQkJVkFOIE5VWVMgQ0EgOTE0MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUYzICAgKGhleCkJCVNVTiBFTEVDVFJPTklDUyBDT1JQLgorMDA4MEYzICAgICAoYmFzZSAxNikJCVNVTiBFTEVDVFJPTklDUyBDT1JQLgorCQkJCTI1MCBBU0FISSBLT0NISU5PLUNITworCQkJCUtPTkFOLUNJVFkgQUlDSEkKKwkJCQk0ODMgSkFQQU4KKwkJCQlKQVBBTgorCiswMC04MC1GNCAgIChoZXgpCQlURUxFTUVDQU5JUVVFIEVMRUNUUklRVUUKKzAwODBGNCAgICAgKGJhc2UgMTYpCQlURUxFTUVDQU5JUVVFIEVMRUNUUklRVUUKKwkJCQkzMyBCSVMgQVZFTlVFLAorCQkJCURVIE1BUkVDSEFMIEpPRkZSRSA5MjAwMiBOQU5URVJSRSBDRURFWAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC04MC1GNSAgIChoZXgpCQlRdWFudGVsIEx0ZAorMDA4MEY1ICAgICAoYmFzZSAxNikJCVF1YW50ZWwgTHRkCisJCQkJVHVybnBpa2UgUm9hZAorCQkJCU5ld2J1cnkgQmVya3NoaXJlIFJHMTQgMk5YCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtODAtRjYgICAoaGV4KQkJU1lORVJHWSBNSUNST1NZU1RFTVMKKzAwODBGNiAgICAgKGJhc2UgMTYpCQlTWU5FUkdZIE1JQ1JPU1lTVEVNUworCQkJCTk2MDUgU0NSQU5UT04gUk9BRC1TVEUgIzcwMAorCQkJCVNBTiBESUVHTyBDQSA5MjEyMS0xNzczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1GNyAgIChoZXgpCQlaRU5JVEggRUxFQ1RST05JQ1MKKzAwODBGNyAgICAgKGJhc2UgMTYpCQlaRU5JVEggRUxFQ1RST05JQ1MKKwkJCQkxMDAwIE1JTFdBVUtFRSBBVkVOVUUKKwkJCQlHTEVOVklFVyBJTCA2MDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtODAtRjggICAoaGV4KQkJTUlaQVIsIElOQy4KKzAwODBGOCAgICAgKGJhc2UgMTYpCQlNSVpBUiwgSU5DLgorCQkJCTE0MTkgRFVOTiBEUklWRQorCQkJCUNBUlJPTExUT04gVFggNzUwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUY5ICAgKGhleCkJCUhFVVJJS09OIENPUlBPUkFUSU9OCiswMDgwRjkgICAgIChiYXNlIDE2KQkJSEVVUklLT04gQ09SUE9SQVRJT04KKwkJCQk4MzEwIEVYQ0VMU0lPUiBEUklWRQorCQkJCU1BRElTT04gV0kgNTM3MTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUZBICAgKGhleCkJCVJXVCBHTUJICiswMDgwRkEgICAgIChiYXNlIDE2KQkJUldUIEdNQkgKKwkJCQlUQUxBTkdFUlNUUi4gNS03CisJCQkJRCAtIDgwMzMgS1JBSUxMSU5HCisJCQkJV0VTVCBHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC04MC1GQiAgIChoZXgpCQlCVk0gTElNSVRFRAorMDA4MEZCICAgICAoYmFzZSAxNikJCUJWTSBMSU1JVEVECisJCQkJSE9CQiBMQU5FCisJCQkJSEVER0UgRU5EIFNPVVRIQU1QVE9OCisJCQkJRU5HTEFORCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC04MC1GQyAgIChoZXgpCQlBVkFUQVIgQ09SUE9SQVRJT04KKzAwODBGQyAgICAgKGJhc2UgMTYpCQlBVkFUQVIgQ09SUE9SQVRJT04KKwkJCQk2NSBTT1VUSCBTVFJFRVQKKwkJCQlIT1BLSU5UT04gTUEgMDE3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTgwLUZEICAgKGhleCkJCUVYU0NFRUQgQ09SUFJBVElPTgorMDA4MEZEICAgICAoYmFzZSAxNikJCUVYU0NFRUQgQ09SUFJBVElPTgorCQkJCTEtMTUtMTIsIEtJVEFLQVNFLCBTQUlXQUktS1UKKwkJCQlLQVdBU0FLSS1DSVRZLCAyMTEgS0FOQUdBV0EKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLTgwLUZFICAgKGhleCkJCUFaVVJFIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA4MEZFICAgICAoYmFzZSAxNikJCUFaVVJFIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTYzIFNPVVRIIFNUUkVFVAorCQkJCUhPUEtJTlRPTiBNQSAwMTc0OC0yMjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04MC1GRiAgIChoZXgpCQlTT0MuIERFIFRFTEVJTkZPUk1BVElRVUUgUlRDCiswMDgwRkYgICAgIChiYXNlIDE2KQkJU09DLiBERSBURUxFSU5GT1JNQVRJUVVFIFJUQworCQkJCVAuTy4gQk9YIDk1NSBQTEFDRSBEVSBQQVJDCisJCQkJMzAwIExFTy1QQVJJU1RBVSAgICBTVUlURSA3MjUgTU9OVFJFQUwgKAorCQkJCUNBTkFEQSBIMlcgMk4xCisJCQkJQ0FOQURBCisKKzAwLThDLTEwICAgKGhleCkJCUJsYWNrIEJveCBDb3JwLgorMDA4QzEwICAgICAoYmFzZSAxNikJCUJsYWNrIEJveCBDb3JwLgorCQkJCTEwMDAgUGFyayBEcml2ZQorCQkJCUxhd3JlbmNlIFBBIDE1MDU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC04Qy1GQSAgIChoZXgpCQlJbnZlbnRlYyBDb3Jwb3JhdGlvbgorMDA4Q0ZBICAgICAoYmFzZSAxNikJCUludmVudGVjIENvcnBvcmF0aW9uCisJCQkJTm8uIDI1NSwgSmVuLUhvIFJvYWQgU2VjLiAyLCAzMzU0NywKKwkJCQlUYWNoaSBUYW95dWFuIDMzNTQ3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC04RC00RSAgIChoZXgpCQlDSlNDIE5JSSBTVFQKKzAwOEQ0RSAgICAgKGJhc2UgMTYpCQlDSlNDIE5JSSBTVFQKKwkJCQlOLkxlbmluZ3JhZHNrYXlhIHN0ciwgMTAKKwkJCQlTbW9sZW5zayAgMjE0MDEyCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLThELURBICAgKGhleCkJCUxpbmsgT25lIENvLiwgTHRkLgorMDA4RERBICAgICAoYmFzZSAxNikJCUxpbmsgT25lIENvLiwgTHRkLgorCQkJCTYwMUYgICBDaHVuZ2p1ayB0b3dlciA1NDYtOSAKKwkJCQlCdWNoaW9uIEd5ZW9uZ2dpLWRvICA0MjAtODY0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLThFLUYyICAgKGhleCkJCU5FVEdFQVIgSU5DLiwKKzAwOEVGMiAgICAgKGJhc2UgMTYpCQlORVRHRUFSIElOQy4sCisJCQkJMzUwIEVBU1QgUExVTUVSSUEgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQUxJRk9STklBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0wMCAgIChoZXgpCQlESUFNT05EIE1VTFRJTUVESUEKKzAwOTAwMCAgICAgKGJhc2UgMTYpCQlESUFNT05EIE1VTFRJTUVESUEKKwkJCQkzMTIgU0UgU1RPTkVNSUxMIERSSVZFCisJCQkJU1VJVEUgIzE1MAorCQkJCVZBTkNPVVZFUiBXQSA5ODY4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMDEgICAoaGV4KQkJTklTSElNVSBFTEVDVFJPTklDUyBJTkRVU1RSSUVTIENPLiwgTFRELgorMDA5MDAxICAgICAoYmFzZSAxNikJCU5JU0hJTVUgRUxFQ1RST05JQ1MgSU5EVVNUUklFUyBDTy4sIExURC4KKwkJCQk3MDAgVEFURU5PIE1JVEFHQVdBLUNITworCQkJCUtBTlpBS0ktR1VOIFNBR0EgUFJFRi4gIAorCQkJCUpBUEFOCisKKzAwLTkwLTAyICAgKGhleCkJCUFMTEdPTiBBQgorMDA5MDAyICAgICAoYmFzZSAxNikJCUFMTEdPTiBBQgorCQkJCUdBUkRBVE9SR0VUIDEKKwkJCQk0MTIgNTAgR09URUJPUkcgCisJCQkJU1dFREVOCisKKzAwLTkwLTAzICAgKGhleCkJCUFQTElPCiswMDkwMDMgICAgIChiYXNlIDE2KQkJQVBMSU8KKwkJCQkxOCBBdmVudWUgRHUgOCBNYWkgMTk0NQorCQkJCTk1MjAwIFNBUkNFTExFUworCQkJCUZSQU5DRQorCiswMC05MC0wNCAgIChoZXgpCQkzQ09NIEVVUk9QRSBMVEQuCiswMDkwMDQgICAgIChiYXNlIDE2KQkJM0NPTSBFVVJPUEUgTFRELgorCQkJCTNDT00gQ0VOVFJFLCBCT1VOREFSWSBXQVkKKwkJCQlIRU1FTCBIRU1QU1RFQUQKKwkJCQlIRVJUUy4gIEhQMiA3WVUgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTkwLTA1ICAgKGhleCkJCVBST1RFQ0ggU1lTVEVNUyBDTy4sIExURC4KKzAwOTAwNSAgICAgKGJhc2UgMTYpCQlQUk9URUNIIFNZU1RFTVMgQ08uLCBMVEQuCisJCQkJNUYsIE5PLiAzNCwgTEFORSA4MCwgU0VDLiAzCisJCQkJTkFOS0FORyBST0FECisJCQkJVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLTA2ICAgKGhleCkJCUhBTUFNQVRTVSBQSE9UT05JQ1MgSy5LLgorMDA5MDA2ICAgICAoYmFzZSAxNikJCUhBTUFNQVRTVSBQSE9UT05JQ1MgSy5LLgorCQkJCTgxMiBKT0tPLUNITworCQkJCUhBTUFNQVRTVSAgNDMxLTMxOTYKKwkJCQlKQVBBTgorCiswMC05MC0wNyAgIChoZXgpCQlET01FWCBURUNITk9MT0dZIENPUlAuCiswMDkwMDcgICAgIChiYXNlIDE2KQkJRE9NRVggVEVDSE5PTE9HWSBDT1JQLgorCQkJCU5PLiAyLCBURUNITk9MT0dZIFJELiAxCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQkgSFNJTkNIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC0wOCAgIChoZXgpCQlIYW5BIFN5c3RlbXMgSW5jLgorMDA5MDA4ICAgICAoYmFzZSAxNikJCUhhbkEgU3lzdGVtcyBJbmMuCisJCQkJRUFITyBCL0QgNzQwLTEKKwkJCQlZRU9LIFNBTS1ET05HLCBLQU5HTkFNLUtVCisJCQkJU0VPVUwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC05MC0wOSAgIChoZXgpCQlpIENvbnRyb2xzLCBJbmMuCiswMDkwMDkgICAgIChiYXNlIDE2KQkJaSBDb250cm9scywgSW5jLgorCQkJCTJuZCBGbCwgSSdQYXJrIDMwMiwgMTEgSmVvbmdqYS1Eb25nLAorCQkJCUJ1bmRhbmctR1UsIFNlb25nbmFtLAorCQkJCUd5ZW9uZ2dpLURvIDQ2My04NTkgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTkwLTBBICAgKGhleCkJCVBST1RPTiBFTEVDVFJPTklDIElORFVTVFJJQUwgQ08uLCBMVEQuCiswMDkwMEEgICAgIChiYXNlIDE2KQkJUFJPVE9OIEVMRUNUUk9OSUMgSU5EVVNUUklBTCBDTy4sIExURC4KKwkJCQkKKwkJCQk0RiwgNDUsIFNFQ1RJT04gMSwgU0FOLU1JTiBSRAorCQkJCVBhbmNoaWFvLCBUYWlwZWkgQ291bnR5ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLTBCICAgKGhleCkJCUxBTk5FUiBFTEVDVFJPTklDUywgSU5DLgorMDA5MDBCICAgICAoYmFzZSAxNikJCUxBTk5FUiBFTEVDVFJPTklDUywgSU5DLgorCQkJCThGLTQsIE5PLiA3NywgU0VDLiAxCisJCQkJSFNJTiBUQUkgV1UgUkQuLCBIU0lDSElICisJCQkJVEFJUEVJIEhTSUVOIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtMEMgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MDBDICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0wRCAgIChoZXgpCQlPdmVybGFuZCBTdG9yYWdlIEluYy4KKzAwOTAwRCAgICAgKGJhc2UgMTYpCQlPdmVybGFuZCBTdG9yYWdlIEluYy4KKwkJCQk0ODIwIE92ZXJsYW5kIEF2ZW51ZQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMEUgICAoaGV4KQkJSEFORExJTksgVEVDSE5PTE9HSUVTLCBJTkMuCiswMDkwMEUgICAgIChiYXNlIDE2KQkJSEFORExJTksgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNUYsIDI0LTIsIEluZHVzdHJ5IEUuIFJvYWQgSVYsCisJCQkJU2NpZW5jZS1CYXNlZCBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHNpbmNodSAzMDA3NyAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC0wRiAgIChoZXgpCQlLQVdBU0FLSSBIRUFWWSBJTkRVU1RSSUVTLCBMVEQKKzAwOTAwRiAgICAgKGJhc2UgMTYpCQlLQVdBU0FLSSBIRUFWWSBJTkRVU1RSSUVTLCBMVEQKKwkJCQlFTEVDLiAmIENPTlRST0wgVEVDSCBDRU5URVIKKwkJCQkxLTEgS0FXQVNBS0ktQ0hPIEFLQVNISSA2NzMtODY2NgorCQkJCUpBUEFOCisKKzAwLTkwLTEwICAgKGhleCkJCVNJTVVMQVRJT04gTEFCT1JBVE9SSUVTLCBJTkMuCiswMDkwMTAgICAgIChiYXNlIDE2KQkJU0lNVUxBVElPTiBMQUJPUkFUT1JJRVMsIElOQy4KKwkJCQkxMDA3OCBUWUxFUiBQTEFDRSAjQQorCQkJCUlKQU1TVklMTEUgTUQgMjE3NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTExICAgKGhleCkJCVdBVlRyYWNlLCBJbmMuCiswMDkwMTEgICAgIChiYXNlIDE2KQkJV0FWVHJhY2UsIEluYy4KKwkJCQkxNTU1IDEzMk5EIEFWRS4gTkUKKwkJCQlCRUxMRVZVRSBXQSA5ODAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMTIgICAoaGV4KQkJR0xPQkVTUEFOIFNFTUlDT05EVUNUT1IsIElOQy4KKzAwOTAxMiAgICAgKGJhc2UgMTYpCQlHTE9CRVNQQU4gU0VNSUNPTkRVQ1RPUiwgSU5DLgorCQkJCTEwMCBTQ0hVTFogRFJJVkUKKwkJCQlSRUQgQkFOSyBOSiAwNzcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMTMgICAoaGV4KQkJU0FNU0FOIENPUlAuCiswMDkwMTMgICAgIChiYXNlIDE2KQkJU0FNU0FOIENPUlAuCisJCQkJRUxFQ1RST05JQ1MgJiBDT01NIERJVklTSU9OCisJCQkJU0FNU0FOIEJMREcuLCA1MDYtNywgQU1TQS1ET05HCisJCQkJS2FuZ2RvbmctR3UgU2VvdWwgMTM0LTA1MCAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtOTAtMTQgICAoaGV4KQkJUk9UT1JLIElOU1RSVU1FTlRTLCBMVEQuCiswMDkwMTQgICAgIChiYXNlIDE2KQkJUk9UT1JLIElOU1RSVU1FTlRTLCBMVEQuCisJCQkJQ0hBVUwgRU5EIExBTkUKKwkJCQlMVVRPTiBCRURGT1JEU0hJUkUKKwkJCQlMVTQgOEVaIEVuZ2xhbmQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtOTAtMTUgICAoaGV4KQkJQ0VOVElHUkFNIENPTU1VTklDQVRJT05TIENPUlAuCiswMDkwMTUgICAgIChiYXNlIDE2KQkJQ0VOVElHUkFNIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJOTEgRUFTVCBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMTYgICAoaGV4KQkJWkFDCiswMDkwMTYgICAgIChiYXNlIDE2KQkJWkFDCisJCQkJU3T8dmVzdHIuIDkKKwkJCQlELTMxMTQxIEhpbGRlc2hlaW0gIAorCQkJCUdFUk1BTlkKKworMDAtOTAtMTcgICAoaGV4KQkJWnlwY29tLCBJbmMKKzAwOTAxNyAgICAgKGJhc2UgMTYpCQlaeXBjb20sIEluYworCQkJCTI4NDAwIEtvaG91dGVrIFdheQorCQkJCVN1aXRlIDE3MAorCQkJCVVuaW9uIENpdHkgQ0EgOTQ1ODctMTIxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMTggICAoaGV4KQkJSVRPIEVMRUNUUklDIElORFVTVFJZIENPLCBMVEQuCiswMDkwMTggICAgIChiYXNlIDE2KQkJSVRPIEVMRUNUUklDIElORFVTVFJZIENPLCBMVEQuCisJCQkJNC0yNi0xMiBNRUlFS0kgTkFLQU1VUkEtS1UKKwkJCQlOQUdPWUEtQ0lUWSBBSUNISSA0NTAtMDAwMiAgCisJCQkJSkFQQU4KKworMDAtOTAtMTkgICAoaGV4KQkJSEVSTUVTIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDA5MDE5ICAgICAoYmFzZSAxNikJCUhFUk1FUyBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQkzLTItMTIgWVVTSElNQSwgQlVOS1lPLUtVCisJCQkJVE9LWU8sIDExMy0wMDM0ICAKKwkJCQlKQVBBTgorCiswMC05MC0xQSAgIChoZXgpCQlVTklTUEhFUkUgU09MVVRJT05TCiswMDkwMUEgICAgIChiYXNlIDE2KQkJVU5JU1BIRVJFIFNPTFVUSU9OUworCQkJCTUgQ0FSTElTTEUgUk9BRAorCQkJCVdFU1RGT1JEIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0xQiAgIChoZXgpCQlESUdJVEFMIENPTlRST0xTCiswMDkwMUIgICAgIChiYXNlIDE2KQkJRElHSVRBTCBDT05UUk9MUworCQkJCTMwNSBQSU9ORUVSIEJMVkQuCisJCQkJU1BSSU5HQk9STyBPSCA0NTA2Ni0xMTAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0xQyAgIChoZXgpCQltcHMgU29mdHdhcmUgR21iaAorMDA5MDFDICAgICAoYmFzZSAxNikJCW1wcyBTb2Z0d2FyZSBHbWJoCisJCQkJTFVEV0lHU1RSIDM2CisJCQkJODU1NTEgS0lSQ0hIRUlNICAKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLTFEICAgKGhleCkJCVBFQyAoTlopIExURC4KKzAwOTAxRCAgICAgKGJhc2UgMTYpCQlQRUMgKE5aKSBMVEQuCisJCQkJMiBTVEFUSU9OIFJPQUQKKwkJCQlQLk8uIEJPWCAzMDgKKwkJCQlNQVJUT04gIAorCQkJCU5FVyBaRUFMQU5ECisKKzAwLTkwLTFFICAgKGhleCkJCVNlbGVzdGEgSW5nZWduZXJpYSBTLnAuQS4KKzAwOTAxRSAgICAgKGJhc2UgMTYpCQlTZWxlc3RhIEluZ2VnbmVyaWEgUy5wLkEuCisJCQkJdmlhIGRpIEZyYW5jaWEsIDI4CisJCQkJR2Vub3ZhICAxNjE0OQorCQkJCUlUQUxZCisKKzAwLTkwLTFGICAgKGhleCkJCUFEVEVDIFBST0RVQ1RJT05TLCBJTkMuCiswMDkwMUYgICAgIChiYXNlIDE2KQkJQURURUMgUFJPRFVDVElPTlMsIElOQy4KKwkJCQk0MDggUlVTU0VMTCBTVFJFRVQKKwkJCQlOQVNIVklMTEUgVE4gMzcyMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTIwICAgKGhleCkJCVBISUxJUFMgQU5BTFlUSUNBTCBYLVJBWSBCLlYuCiswMDkwMjAgICAgIChiYXNlIDE2KQkJUEhJTElQUyBBTkFMWVRJQ0FMIFgtUkFZIEIuVi4KKwkJCQlMRUxZV0VHIDEKKwkJCQk3NjAyIEVBIEFMTUVMTyAgCisJCQkJTkVUSEVSTEFORFMKKworMDAtOTAtMjEgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MDIxICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSLiAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMjIgICAoaGV4KQkJSVZFWAorMDA5MDIyICAgICAoYmFzZSAxNikJCUlWRVgKKwkJCQk0Mjk1IElOVEVSTkFUSU9OQUwgQkxWRC4KKwkJCQlTVUlURQorCQkJCU5PUkNST1NTIEdBIDMwMDkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0yMyAgIChoZXgpCQlaSUxPRyBJTkMuCiswMDkwMjMgICAgIChiYXNlIDE2KQkJWklMT0cgSU5DLgorCQkJCTkxMCBFYXN0IEhhbWlsdG9uIEF2ZS4KKwkJCQlDYW1wYmVsbCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMjQgICAoaGV4KQkJUElQRUxJTktTLCBJTkMuCiswMDkwMjQgICAgIChiYXNlIDE2KQkJUElQRUxJTktTLCBJTkMuCisJCQkJMjcxMCBXQUxTSCBBVkUuLCBTVEUgIzMwMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0yNSAgIChoZXgpCQlCQUUgU3lzdGVtcyBBdXN0cmFsaWEgKEVsZWN0cm9uaWMgU3lzdGVtcykgUHR5IEx0ZAorMDA5MDI1ICAgICAoYmFzZSAxNikJCUJBRSBTeXN0ZW1zIEF1c3RyYWxpYSAoRWxlY3Ryb25pYyBTeXN0ZW1zKSBQdHkgTHRkCisJCQkJMyBTZWNvbmQgQXZlCisJCQkJTWF3c29uIExha2VzIFNvdXRoIEF1c3RyYWxpYSA1MDk1CisJCQkJQVVTVFJBTElBCisKKzAwLTkwLTI2ICAgKGhleCkJCUFEVkFOQ0VEIFNXSVRDSElORyBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDA5MDI2ICAgICAoYmFzZSAxNikJCUFEVkFOQ0VEIFNXSVRDSElORyBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTgzMzAgQk9PTkUgQk9VTEVWQVJELS01VEggRkwuCisJCQkJVklFTk5BIFZBIDIyMTgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0yNyAgIChoZXgpCQlJTlRFTCBDT1JQT1JBVElPTgorMDA5MDI3ICAgICAoYmFzZSAxNikJCUlOVEVMIENPUlBPUkFUSU9OCisJCQkJSEYxLTA2CisJCQkJNTIwMCBOLkUuIEVMQU0gWU9VTkcgUEFSS1dBWQorCQkJCUhJTExTQk9STyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMjggICAoaGV4KQkJTklQUE9OIFNJR05BTCBDTy4sIExURC4KKzAwOTAyOCAgICAgKGJhc2UgMTYpCQlOSVBQT04gU0lHTkFMIENPLiwgTFRELgorCQkJCTExIEhJUkFJREUtS09HSU8tREFOQ0hJCisJCQkJVUlTVU5PTUlZQSBUT0NISUdJIDMyMS04NjUxICAKKwkJCQlKQVBBTgorCiswMC05MC0yOSAgIChoZXgpCQlDUllQVE8gQUcKKzAwOTAyOSAgICAgKGJhc2UgMTYpCQlDUllQVE8gQUcKKwkJCQlQLk8uIEJPWAorCQkJCUNILTYzMDEgWnVnICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC05MC0yQSAgIChoZXgpCQlDT01NVU5JQ0FUSU9OIERFVklDRVMsIElOQy4KKzAwOTAyQSAgICAgKGJhc2UgMTYpCQlDT01NVU5JQ0FUSU9OIERFVklDRVMsIElOQy4KKwkJCQk4NSBGdWx0b24gU3RyZWV0CisJCQkJQm9vbnRvbiBOSiAwNzAwNS0xOTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0yQiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDkwMkIgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCVNKQS0yCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTJDICAgKGhleCkJCURBVEEgJiBDT05UUk9MIEVRVUlQTUVOVCBMVEQuCiswMDkwMkMgICAgIChiYXNlIDE2KQkJREFUQSAmIENPTlRST0wgRVFVSVBNRU5UIExURC4KKwkJCQlDT1VOVFkgRkFSTSwgV0VORE9WRVIgUkQuCisJCQkJU1RPS0UgTUFOREVWSUxMRQorCQkJCUJVQ0tTLiBIUDIyIFNUQSAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtOTAtMkQgICAoaGV4KQkJREFUQSBFTEVDVFJPTklDUyAoQVVTVC4pIFBUWSwgTFRELgorMDA5MDJEICAgICAoYmFzZSAxNikJCURBVEEgRUxFQ1RST05JQ1MgKEFVU1QuKSBQVFksIExURC4KKwkJCQk3IFNFSVNNSUMgQ09VUlQKKwkJCQlST1dWSUxMRQorCQkJCVZJQ1RPUklBIDMxNzggIAorCQkJCUFVU1RSQUxJQQorCiswMC05MC0yRSAgIChoZXgpCQlOQU1DTyBMSU1JVEVECiswMDkwMkUgICAgIChiYXNlIDE2KQkJTkFNQ08gTElNSVRFRAorCQkJCTEtMS0zMiBTSElOLVVSQVNISU1BLUNITworCQkJCUtBTkFHQVdBLUtVLCBZT0tPSEFNQQorCQkJCUtBTkFHQVdBIDIyMS0wMDMxICAKKwkJCQlKQVBBTgorCiswMC05MC0yRiAgIChoZXgpCQlORVRDT1JFIFNZU1RFTVMsIElOQy4KKzAwOTAyRiAgICAgKGJhc2UgMTYpCQlORVRDT1JFIFNZU1RFTVMsIElOQy4KKwkJCQkxODcgQkFMTEFSRFZBTEUgU1RSRUVUCisJCQkJV0lMTUlOR1RPTiBNQSAwMTg4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMzAgICAoaGV4KQkJSE9ORVlXRUxMLURBVElORworMDA5MDMwICAgICAoYmFzZSAxNikJCUhPTkVZV0VMTC1EQVRJTkcKKwkJCQlWSUEgVElOVE9SRVRUTywgMTUKKwkJCQkyMTAxMiBDQVNTQU5PIE1BR05BR08gKFZBKSAgCisJCQkJSVRBTFkKKworMDAtOTAtMzEgICAoaGV4KQkJTVlTVElDT00sIExURC4KKzAwOTAzMSAgICAgKGJhc2UgMTYpCQlNWVNUSUNPTSwgTFRELgorCQkJCVAuTy4gODM2NAorCQkJCU5BVEFOSUEgNDI1MDQgIAorCQkJCUlTUkFFTAorCiswMC05MC0zMiAgIChoZXgpCQlQRUxDT01CRSBHUk9VUCBMVEQuCiswMDkwMzIgICAgIChiYXNlIDE2KQkJUEVMQ09NQkUgR1JPVVAgTFRELgorCQkJCU1BSU4gUk9BRAorCQkJCURPVkVSQ09VUlQsIEhBUldJQ0gKKwkJCQlFU1NFWCBDMDEyIDRMUCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC05MC0zMyAgIChoZXgpCQlJTk5PVkFQSE9ORSBBRworMDA5MDMzICAgICAoYmFzZSAxNikJCUlOTk9WQVBIT05FIEFHCisJCQkJQm9lYmxpbmdlciBTdHIuIDc2CisJCQkJU0lOREVMRklOR0VOICBENzEwNjUKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLTM0ICAgKGhleCkJCUlNQUdJQywgSU5DLgorMDA5MDM0ICAgICAoYmFzZSAxNikJCUlNQUdJQywgSU5DLgorCQkJCTIzNSBXZXN0IFJvYWQgIzcKKwkJCQlQb3J0c21vdXRoIE5IIDAzODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0zNSAgIChoZXgpCQlBTFBIQSBURUxFQ09NLCBJTkMuCiswMDkwMzUgICAgIChiYXNlIDE2KQkJQUxQSEEgVEVMRUNPTSwgSU5DLgorCQkJCTJGLCBOTy4yLCBMSSBIU0lOIFJPQUQKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU4tQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLTM2ICAgKGhleCkJCWVucywgaW5jLgorMDA5MDM2ICAgICAoYmFzZSAxNikJCWVucywgaW5jLgorCQkJCVAuTy4gQk9YIDE5MjA3CisJCQkJUkFMRUlHSCBOQyAyNzYxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtMzcgICAoaGV4KQkJQUNVQ09NTSwgSU5DLgorMDA5MDM3ICAgICAoYmFzZSAxNikJCUFDVUNPTU0sIElOQy4KKwkJCQk0NjMzIE9MRCBJUk9OU0lERVMgLSBTVEUgIzMxMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0zOCAgIChoZXgpCQlGT1VOVEFJTiBURUNITk9MT0dJRVMsIElOQy4KKzAwOTAzOCAgICAgKGJhc2UgMTYpCQlGT1VOVEFJTiBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk1MCBSQU5ET0xQSCBST0FECisJCQkJU09NRVJTRVQgTkogMDg4NzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTM5ICAgKGhleCkJCVNIQVNUQSBORVRXT1JLUworMDA5MDM5ICAgICAoYmFzZSAxNikJCVNIQVNUQSBORVRXT1JLUworCQkJCTI0OSBIVU1CT0xEVCBDT1VSVAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OS0xMzAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC0zQSAgIChoZXgpCQlOSUhPTiBNRURJQSBUT09MIElOQy4KKzAwOTAzQSAgICAgKGJhc2UgMTYpCQlOSUhPTiBNRURJQSBUT09MIElOQy4KKwkJCQkxODc1IE9ZQU1BLUNITworCQkJCVlPS0tBSUNISS1DSVRZCisJCQkJTUlFIDUxMi0xMTAyICAKKwkJCQlKQVBBTgorCiswMC05MC0zQiAgIChoZXgpCQlUcmlFTVMgUmVzZWFyY2ggTGFiLCBJbmMuCiswMDkwM0IgICAgIChiYXNlIDE2KQkJVHJpRU1TIFJlc2VhcmNoIExhYiwgSW5jLgorCQkJCTEyNzUgTi4gVFVTVElOIEFWRU5VRQorCQkJCUFOQUhFSU0gQ0EgOTI4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTNDICAgKGhleCkJCUFUTEFOVElDIE5FVFdPUksgU1lTVEVNUworMDA5MDNDICAgICAoYmFzZSAxNikJCUFUTEFOVElDIE5FVFdPUksgU1lTVEVNUworCQkJCUlNTUVVQkxFICJLZW5uZWR5IgorCQkJCVpJVEVSIEFWRU5VRSBKRiBLRU5ORURZCisJCQkJMzM3MDAgTUVSSUdOQUMgCisJCQkJRlJBTkNFCisKKzAwLTkwLTNEICAgKGhleCkJCUJJT1BBQyBTWVNURU1TLCBJTkMuCiswMDkwM0QgICAgIChiYXNlIDE2KQkJQklPUEFDIFNZU1RFTVMsIElOQy4KKwkJCQk0MiBBRVJPIENBTUlOTworCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTNFICAgKGhleCkJCU4uVi4gUEhJTElQUyBJTkRVU1RSSUFMIEFDVElWSVRJRVMKKzAwOTAzRSAgICAgKGJhc2UgMTYpCQlOLlYuIFBISUxJUFMgSU5EVVNUUklBTCBBQ1RJVklUSUVTCisJCQkJCisJCQkJSU5URVJMRVVWRU5MQUFOIDc0LTc2CisJCQkJQi0zMDAxIExFVVZFTiAgCisJCQkJQkVMR0lVTQorCiswMC05MC0zRiAgIChoZXgpCQlBWlRFQyBSQURJT01FRElBCiswMDkwM0YgICAgIChiYXNlIDE2KQkJQVpURUMgUkFESU9NRURJQQorCQkJCTMxLCBSVUUgRFUgQ0hFTUlOREVGRVIKKwkJCQk2NzIwMCBTVFJBU0JPVVJHICAKKwkJCQlGUkFOQ0UKKworMDAtOTAtNDAgICAoaGV4KQkJU2llbWVucyBOZXR3b3JrIENvbnZlcmdlbmNlIExMQworMDA5MDQwICAgICAoYmFzZSAxNikJCVNpZW1lbnMgTmV0d29yayBDb252ZXJnZW5jZSBMTEMKKwkJCQlUZW4gVGVjaG5vbG9neSBQYXJrIERyaXZlCisJCQkJV2VzdGZvcmQgTUEgMDE4ODYtMzE0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNDEgICAoaGV4KQkJQVBQTElFRCBESUdJVEFMIEFDQ0VTUworMDA5MDQxICAgICAoYmFzZSAxNikJCUFQUExJRUQgRElHSVRBTCBBQ0NFU1MKKwkJCQk5ODU1IFNDUkFOVE9OIFJPQUQKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTQyICAgKGhleCkJCUVDQ1MsIEluYy4KKzAwOTA0MiAgICAgKGJhc2UgMTYpCQlFQ0NTLCBJbmMuCisJCQkJT05FIFNIRUlMQSBEUklWRQorCQkJCVRJTlRPTiBGQUxMUyBOSiAwNzcyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNDMgICAoaGV4KQkJVGF0dGlsZSBTUkwgCiswMDkwNDMgICAgIChiYXNlIDE2KQkJVGF0dGlsZSBTUkwgCisJCQkJMS0xMy0xMCBTSElST0dBTkUgIENIVU8tS1UKKwkJCQlGVUtVT0tBLUNJVFkgIAorCQkJCUpBUEFOCisKKzAwLTkwLTQ0ICAgKGhleCkJCUFTU1VSRUQgRElHSVRBTCwgSU5DLgorMDA5MDQ0ICAgICAoYmFzZSAxNikJCUFTU1VSRUQgRElHSVRBTCwgSU5DLgorCQkJCTktMTEgR09MRFNNSVRIIFNULgorCQkJCUxJVFRMRVRPTiBNQSAwMTQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNDUgICAoaGV4KQkJTWFyY29uaSBDb21tdW5pY2F0aW9ucworMDA5MDQ1ICAgICAoYmFzZSAxNikJCU1hcmNvbmkgQ29tbXVuaWNhdGlvbnMKKwkJCQkxMDAwIEZvcmUgRHJpdmUKKwkJCQlXYXJyZW5kYWxlIFBBIDE1MDg2LTc1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTQ2ICAgKGhleCkJCURFWERZTkUsIExURC4KKzAwOTA0NiAgICAgKGJhc2UgMTYpCQlERVhEWU5FLCBMVEQuCisJCQkJMTUgTUFSS0VUIFBMLgorCQkJCUNJUkVOQ0VTVEVSCisJCQkJR0xPQ0VTVEVSU0hJUkUgR0w3IDJQQiAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtOTAtNDcgICAoaGV4KQkJR0lHQSBGQVNUIEUuIExURC4KKzAwOTA0NyAgICAgKGJhc2UgMTYpCQlHSUdBIEZBU1QgRS4gTFRELgorCQkJCTE0RiwgTk8uMTEyLCBTRUMuIDEKKwkJCQlIU0lOLVRBSSBXVSBSRC4KKwkJCQlIc2ktQ2hpaCBUYWlwZWkgSHNpZW4gCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC00OCAgIChoZXgpCQlaRUFMIENPUlBPUkFUSU9OCiswMDkwNDggICAgIChiYXNlIDE2KQkJWkVBTCBDT1JQT1JBVElPTgorCQkJCTMwMSwgSElSQUlLRQorCQkJCU5BR0FLVVRFLUNITywgQUlDSEktUFJFRi4gNDgwLTExNTUgIAorCQkJCUpBUEFOCisKKzAwLTkwLTQ5ICAgKGhleCkJCUVOVFJJRElBIENPUlBPUkFUSU9OCiswMDkwNDkgICAgIChiYXNlIDE2KQkJRU5UUklESUEgQ09SUE9SQVRJT04KKwkJCQkxMDEgUEFSSyBDRU5URVIgUExBWkEKKwkJCQlTVUlURSAjNTAwCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTMtMjIxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNEEgICAoaGV4KQkJQ09OQ1VSIFNZU1RFTSBURUNITk9MT0dJRVMKKzAwOTA0QSAgICAgKGJhc2UgMTYpCQlDT05DVVIgU1lTVEVNIFRFQ0hOT0xPR0lFUworCQkJCTI1MjUgV0FMTElOR1dPT0QgRFIuLVNURS4gIzgwNAorCQkJCUFVU1RJTiBUWCA3ODc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNEIgICAoaGV4KQkJR2VtVGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDkwNEIgICAgIChiYXNlIDE2KQkJR2VtVGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uIDEgSmVuIEFpIFJvYWQsCisJCQkJSHNpbmNodSBJbmR1c3RyaWFsIFBhcmssCisJCQkJSHVrb3UsIEhzaW5jaHUsIFRhaXdhbiAzMDM1MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtNEMgICAoaGV4KQkJRVBJR1JBTSwgSU5DLgorMDA5MDRDICAgICAoYmFzZSAxNikJCUVQSUdSQU0sIElOQy4KKwkJCQk4NzAgV0VTVCBNQVVERSBBVkUuCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC00RCAgIChoZXgpCQlTUEVDIFMuQS4KKzAwOTA0RCAgICAgKGJhc2UgMTYpCQlTUEVDIFMuQS4KKwkJCQlDQVNQIDE3MiAzLUIKKwkJCQkwODAxMyBCQVJDRUxPTkEgIAorCQkJCVNQQUlOCisKKzAwLTkwLTRFICAgKGhleCkJCURFTEVNIEJWCiswMDkwNEUgICAgIChiYXNlIDE2KQkJREVMRU0gQlYKKwkJCQlMVUNIVEhBVkVOIFdFRyA0MgorCQkJCTU2NTcgRUIgRUlOREhPVkVOICAKKwkJCQlORVRIRVJMQU5EUworCiswMC05MC00RiAgIChoZXgpCQlBQkIgUE9XRVIgVCZEIENPTVBBTlksIElOQy4KKzAwOTA0RiAgICAgKGJhc2UgMTYpCQlBQkIgUE9XRVIgVCZEIENPTVBBTlksIElOQy4KKwkJCQk3MDM2IFNOT1dEUklGVCBST0FECisJCQkJQUxMRU5UT1dOIFBBIDE4MTA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC01MCAgIChoZXgpCQlURUxFU1RFIE9ZCiswMDkwNTAgICAgIChiYXNlIDE2KQkJVEVMRVNURSBPWQorCQkJCVNFUE9OS0FUVSAxCisJCQkJTElUVE9JTkVOICBGSU4tMjA2NjAKKwkJCQlGSU5MQU5ECisKKzAwLTkwLTUxICAgKGhleCkJCVVMVElNQVRFIFRFQ0hOT0xPR1kgQ09SUC4KKzAwOTA1MSAgICAgKGJhc2UgMTYpCQlVTFRJTUFURSBURUNITk9MT0dZIENPUlAuCisJCQkJMTAwIFJBV1NPTiBST0FECisJCQkJVklDVE9SIE5ZIDE0NTY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC01MiAgIChoZXgpCQlTRUxDT00gRUxFVFRST05JQ0EgUy5SLkwuCiswMDkwNTIgICAgIChiYXNlIDE2KQkJU0VMQ09NIEVMRVRUUk9OSUNBIFMuUi5MLgorCQkJCVZJQSBHUkFOREksIDUKKwkJCQk0MDAxMyBDQVNURUxNQUdHSU9SRSBCTyAgCisJCQkJSVRBTFkKKworMDAtOTAtNTMgICAoaGV4KQkJREFFV09PIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMDA5MDUzICAgICAoYmFzZSAxNikJCURBRVdPTyBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQlESVQgUkVTRUFSQ0ggQ0VOVEVSCisJCQkJREFFV09PIENFTlRFUiA1NDEgTkFNREFFTVVOTk8gNS1HQQorCQkJCUNIVU5HLUdVIFNFT1VMIDEwMC03MTQgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLTkwLTU0ICAgKGhleCkJCUlOTk9WQVRJVkUgU0VNSUNPTkRVQ1RPUlMsIElOQworMDA5MDU0ICAgICAoYmFzZSAxNikJCUlOTk9WQVRJVkUgU0VNSUNPTkRVQ1RPUlMsIElOQworCQkJCTI1NzAgVy4gRUwgQ0FNSU5PIFJFQUwKKwkJCQlTVUlURSAjMjA1CisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNTUgICAoaGV4KQkJUEFSS0VSIEhBTk5JRklOIENPUlBPUkFUSU9OIENPTVBVTU9UT1IgRElWSVNJT04KKzAwOTA1NSAgICAgKGJhc2UgMTYpCQlQQVJLRVIgSEFOTklGSU4gQ09SUE9SQVRJT04gQ09NUFVNT1RPUiBESVZJU0lPTgorCQkJCTU1MDAgQlVTSU5FU1MgUEFSSyBEUklWRQorCQkJCVJPSE5FUlQgUEFSSyBDQSA5NDkyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNTYgICAoaGV4KQkJVEVMRVNUUkVBTSwgSU5DLgorMDA5MDU2ICAgICAoYmFzZSAxNikJCVRFTEVTVFJFQU0sIElOQy4KKwkJCQk4NDggR09MRCBGTEFUIFJELiwgU1VJVEUgMQorCQkJCU5FVkFEQSBDSVRZIENBIDk1OTU5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC01NyAgIChoZXgpCQlBQU5ldGNvbSwgSW5jLgorMDA5MDU3ICAgICAoYmFzZSAxNikJCUFBTmV0Y29tLCBJbmMuCisJCQkJNDk0OSBMSUJFUlRZIExBTkUgLSBTVEUuICMyMDAKKwkJCQlBTExFTlRPV04gUEEgMTgxMDYtOTAxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNTggICAoaGV4KQkJVWx0cmEgRWxlY3Ryb25pY3MgTHRkLiwgQ29tbWFuZCBhbmQgQ29udHJvbCBTeXN0ZW1zCiswMDkwNTggICAgIChiYXNlIDE2KQkJVWx0cmEgRWxlY3Ryb25pY3MgTHRkLiwgQ29tbWFuZCBhbmQgQ29udHJvbCBTeXN0ZW1zCisJCQkJS05BVkVTIEJFRUNIIEJVU0lORVNTIENFTlRSRQorCQkJCUxPVURXQVRFUiwgSElHSCBXWUNPTUJFCisJCQkJQlVDS0lOR0hBTVNISVJFIEhQMTAgOVVUIEVuZ2xhbmQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtOTAtNTkgICAoaGV4KQkJVEVMRUNPTSBERVZJQ0UgSy5LLgorMDA5MDU5ICAgICAoYmFzZSAxNikJCVRFTEVDT00gREVWSUNFIEsuSy4KKwkJCQlTQU5NSVlBTkFHQSBCTERHLiAzRiwgMS01LTEyCisJCQkJTU9UT0FLQVNBS0EsIE1JTkFUTy1LVQorCQkJCVRPS1lPIDEwNyAKKwkJCQlKQVBBTgorCiswMC05MC01QSAgIChoZXgpCQlERUFSQk9STiBHUk9VUCwgSU5DLgorMDA5MDVBICAgICAoYmFzZSAxNikJCURFQVJCT1JOIEdST1VQLCBJTkMuCisJCQkJMjcwMDcgSElMTFMgVEVDSCBDVC4KKwkJCQlGQVJNSU5HVE9OIEhJTExTIE1JIDQ4MzMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC01QiAgIChoZXgpCQlSQVlNT05EIEFORCBMQUUgRU5HSU5FRVJJTkcKKzAwOTA1QiAgICAgKGJhc2UgMTYpCQlSQVlNT05EIEFORCBMQUUgRU5HSU5FRVJJTkcKKwkJCQkyMDggQ09NTUVSQ0UgRFIuLCAgVU5JVCAjM0MKKwkJCQlGT1JUIENPTExJTlMgQ08gODA1MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTVDICAgKGhleCkJCUVETUkKKzAwOTA1QyAgICAgKGJhc2UgMTYpCQlFRE1JCisJCQkJNjI2IE9MRCBHWU1QSUUgUk9BRAorCQkJCU5BUkFOR0JBIFFMRCA0NTA0IAorCQkJCUFVU1RSQUxJQQorCiswMC05MC01RCAgIChoZXgpCQlORVRDT00gU0lDSEVSSEVJVFNURUNITklLIEdtYkgKKzAwOTA1RCAgICAgKGJhc2UgMTYpCQlORVRDT00gU0lDSEVSSEVJVFNURUNITklLIEdtYkgKKwkJCQlCT1BQU1RSQVNTRSAzOAorCQkJCTU1MTE4IE1BSU5aCisJCQkJR0VSTUFOWQorCiswMC05MC01RSAgIChoZXgpCQlSQVVMQU5ELUJPUkcgQ09SUE9SQVRJT04KKzAwOTA1RSAgICAgKGJhc2UgMTYpCQlSQVVMQU5ELUJPUkcgQ09SUE9SQVRJT04KKwkJCQkzNDUwIFcuIE9BS1RPTiBTVC4KKwkJCQlTS09LSUUgSUwgNjAwNzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTVGICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwOTA1RiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJU0pBLTIKKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNjAgICAoaGV4KQkJU1lTVEVNIENSRUFURSBDT1JQLgorMDA5MDYwICAgICAoYmFzZSAxNikJCVNZU1RFTSBDUkVBVEUgQ09SUC4KKwkJCQkzLTEzLTYgWU9TSElLQVdBIEJMRC4KKwkJCQlLSW1zaGkgU1VNSURBLUtVCisJCQkJVE9LWU8gIAorCQkJCUpBUEFOCisKKzAwLTkwLTYxICAgKGhleCkJCVBBQ0lGSUMgUkVTRUFSQ0ggJiBFTkdJTkVFUklORyBDT1JQT1JBVElPTgorMDA5MDYxICAgICAoYmFzZSAxNikJCVBBQ0lGSUMgUkVTRUFSQ0ggJiBFTkdJTkVFUklORyBDT1JQT1JBVElPTgorCQkJCTIwNzAgTEFTIFBBTE1BUyBEUklWRQorCQkJCUNBUkxTQkFEIENBIDkyMDA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02MiAgIChoZXgpCQlJQ1AgVk9SVEVYIENPTVBVVEVSU1lTVEVNRSBHbWJICiswMDkwNjIgICAgIChiYXNlIDE2KQkJSUNQIFZPUlRFWCBDT01QVVRFUlNZU1RFTUUgR21iSAorCQkJCUZBTFRFUlNUUkFTU0UgNTEtNTMKKwkJCQlEIDc0MjIzIEZMRUlOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLTYzICAgKGhleCkJCUNPSEVSRU5UIENPTU1VTklDQVRJT05TIFNZU1RFTVMgQ09SUE9SQVRJT04KKzAwOTA2MyAgICAgKGJhc2UgMTYpCQlDT0hFUkVOVCBDT01NVU5JQ0FUSU9OUyBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJNDUwODUgVU5JVkVSU0lUWSBEUklWRQorCQkJCUFTSEJVUk4gVkEgMjAxNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTY0ICAgKGhleCkJCVRob21zb24gSW5jLgorMDA5MDY0ICAgICAoYmFzZSAxNikJCVRob21zb24gSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MC0xMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02NSAgIChoZXgpCQlGSU5JU0FSIENPUlBPUkFUSU9OCiswMDkwNjUgICAgIChiYXNlIDE2KQkJRklOSVNBUiBDT1JQT1JBVElPTgorCQkJCTEzODkgTW9mZmV0dCBQYXJrIERyCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02NiAgIChoZXgpCQlUcm9pa2EgTmV0d29ya3MsIEluYy4KKzAwOTA2NiAgICAgKGJhc2UgMTYpCQlUcm9pa2EgTmV0d29ya3MsIEluYy4KKwkJCQkyODI5IFRvd25zZ2F0ZSBSb2FkLAorCQkJCVN1aXRlIDIwMAorCQkJCVdlc3RsYWtlIFZpbGxhZ2UgQ0EgOTEzNjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTY3ICAgKGhleCkJCVdhbGtBYm91dCBDb21wdXRlcnMsIEluYy4KKzAwOTA2NyAgICAgKGJhc2UgMTYpCQlXYWxrQWJvdXQgQ29tcHV0ZXJzLCBJbmMuCisJCQkJMjY1NSBOLiBPQ0VBTiBEUklWRS0tU1RFLiAjNTEwCisJCQkJU0lOR0VSIElTTEFORCBGTCAzMzQwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNjggICAoaGV4KQkJRFZUIENPUlAuCiswMDkwNjggICAgIChiYXNlIDE2KQkJRFZUIENPUlAuCisJCQkJMTY3MCBPQUtCUk9PSyBEUi4gLSBTVEUuICMzMzAKKwkJCQlOT1JDUk9TUyBHQSAzMDA5MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNjkgICAoaGV4KQkJSlVOSVBFUiBORVRXT1JLUywgSU5DLgorMDA5MDY5ICAgICAoYmFzZSAxNikJCUpVTklQRVIgTkVUV09SS1MsIElOQy4KKwkJCQkxMTk0IE4uIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OS0xMjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC02QSAgIChoZXgpCQlUVVJOU1RPTkUgU1lTVEVNUywgSU5DLgorMDA5MDZBICAgICAoYmFzZSAxNikJCVRVUk5TVE9ORSBTWVNURU1TLCBJTkMuCisJCQkJMjc0IEZlcmd1c29uIERyaXZlCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNkIgICAoaGV4KQkJQVBQTElFRCBSRVNPVVJDRVMsIElOQy4KKzAwOTA2QiAgICAgKGJhc2UgMTYpCQlBUFBMSUVEIFJFU09VUkNFUywgSU5DLgorCQkJCTk4MjEgV0lETUVSIFJPQUQKKwkJCQlMRU5FWEEgS1MgNjYyMTUtMTIzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNkMgICAoaGV4KQkJU2FydG9yaXVzIEhhbWJ1cmcgR21iSAorMDA5MDZDICAgICAoYmFzZSAxNikJCVNhcnRvcml1cyBIYW1idXJnIEdtYkgKKwkJCQlNZWllbmRvcmZlcnN0ci4gMjA1CisJCQkJSGFtYnVyZyAgRC0yMjE0NQorCQkJCUdFUk1BTlkKKworMDAtOTAtNkQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MDZEICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSLiAtICBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTZFICAgKGhleCkJCVBSQVhPTiwgSU5DLgorMDA5MDZFICAgICAoYmFzZSAxNikJCVBSQVhPTiwgSU5DLgorCQkJCTE3MDAgREVMTCBBVkVOVUUKKwkJCQlDQU1QQkVMTCBDQSA5NTAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNkYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MDZGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSLiAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtNzAgICAoaGV4KQkJTkVPIE5FVFdPUktTLCBJTkMuCiswMDkwNzAgICAgIChiYXNlIDE2KQkJTkVPIE5FVFdPUktTLCBJTkMuCisJCQkJMTAzMDAgQlJFTiBST0FEIEVBU1QKKwkJCQlNSU5ORVRPTktBIE1OIDU1MzQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC03MSAgIChoZXgpCQlBcHBsaWVkIElubm92YXRpb24gSW5jLgorMDA5MDcxICAgICAoYmFzZSAxNikJCUFwcGxpZWQgSW5ub3ZhdGlvbiBJbmMuCisJCQkJNTgwMCBJbm5vdmF0aW9uIERyaXZlCisJCQkJRHVibGluIE9IIDQzMDE2LTMyNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTcyICAgKGhleCkJCVNJTVJBRCBBUworMDA5MDcyICAgICAoYmFzZSAxNikJCVNJTVJBRCBBUworCQkJCVAuTy4gQk9YIDExMQorCQkJCTMxOTEgSE9SVEVOIAorCQkJCU5PUldBWQorCiswMC05MC03MyAgIChoZXgpCQlHQUlPIFRFQ0hOT0xPR1kKKzAwOTA3MyAgICAgKGJhc2UgMTYpCQlHQUlPIFRFQ0hOT0xPR1kKKwkJCQlPQUstWU9LT0hBTUEgQkxERy4KKwkJCQkyLTE1LTEwIEtJVEEtU0FJV0FJLAorCQkJCU5JU0hJLUtVIFlPS09IQU1BLUNJVFkgS2FuYWdhd2EgCisJCQkJSkFQQU4KKworMDAtOTAtNzQgICAoaGV4KQkJQVJHT04gTkVUV09SS1MsIElOQy4KKzAwOTA3NCAgICAgKGJhc2UgMTYpCQlBUkdPTiBORVRXT1JLUywgSU5DLgorCQkJCTI1IFBPUlRFUiBST0FECisJCQkJTElUVExFVE9OIE1BIDAxNDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC03NSAgIChoZXgpCQlORUMgRE8gQlJBU0lMIFMuQS4KKzAwOTA3NSAgICAgKGJhc2UgMTYpCQlORUMgRE8gQlJBU0lMIFMuQS4KKwkJCQlST0RPVklBIFBSRVNJREVOVEUgRFVUUkEsIEtNIDIxOAorCQkJCUNVTUJJQ0EtR1VBUlVMSE9TCisJCQkJU0FPIFBBVUxPLVNQIENFUCAtIDA3MjEwLTkwMiAKKwkJCQlCUkFaSUwKKworMDAtOTAtNzYgICAoaGV4KQkJRk1UIEFJUkNSQUZUIEdBVEUgU1VQUE9SVCBTWVNURU1TIEFCCiswMDkwNzYgICAgIChiYXNlIDE2KQkJRk1UIEFJUkNSQUZUIEdBVEUgU1VQUE9SVCBTWVNURU1TIEFCCisJCQkJCisJCQkJREFMQVNMSU5HQU4gOAorCQkJCVNFLTIzMSAzMiBUUkVMTEVCT1JHICAKKwkJCQlTV0VERU4KKworMDAtOTAtNzcgICAoaGV4KQkJQURWQU5DRUQgRklCUkUgQ09NTVVOSUNBVElPTlMKKzAwOTA3NyAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBGSUJSRSBDT01NVU5JQ0FUSU9OUworCQkJCVBPIEJPWCAjNzUxMjM5CisJCQkJMSBXSUxMT1dCUk9PSyBDVAorCQkJCVBFVEFMVU1BIENBIDk0OTc1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC03OCAgIChoZXgpCQlNRVIgVEVMRU1BTkFHRU1FTlQgU09MVVRJT05TLCBMVEQuCiswMDkwNzggICAgIChiYXNlIDE2KQkJTUVSIFRFTEVNQU5BR0VNRU5UIFNPTFVUSU9OUywgTFRELgorCQkJCTUgSEFUU09SRUYgU1RSLgorCQkJCUlORC4gQVJFQQorCQkJCUhPTE9OICAKKwkJCQlJU1JBRUwKKworMDAtOTAtNzkgICAoaGV4KQkJQ2xlYXJPbmUsIEluYy4KKzAwOTA3OSAgICAgKGJhc2UgMTYpCQlDbGVhck9uZSwgSW5jLgorCQkJCTI5OSBXQVNISU5HVE9OIFNUUkVFVAorCQkJCVdPQlVSTiBNQSAwMTgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtN0EgICAoaGV4KQkJUG9seWNvbSwgSW5jLgorMDA5MDdBICAgICAoYmFzZSAxNikJCVBvbHljb20sIEluYy4KKwkJCQk1NzU1IENFTlRSQUwgQVZFTlVFCisJCQkJQk9VTERFUiBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtN0IgICAoaGV4KQkJRS1URUNILCBJTkMuCiswMDkwN0IgICAgIChiYXNlIDE2KQkJRS1URUNILCBJTkMuCisJCQkJMzAsIFImRCBST0FEIDIKKwkJCQlTQ0lFTkNFIFBBUksKKwkJCQlIU0lOQ0hVICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLTdDICAgKGhleCkJCURJR0lUQUxDQVNULCBJTkMuCiswMDkwN0MgICAgIChiYXNlIDE2KQkJRElHSVRBTENBU1QsIElOQy4KKwkJCQk1MDMsIElMS1dBTkcgQkxERy4sIDE2NTYtMgorCQkJCVNFT0NITy1ET05HCisJCQkJU0VPQ0hPLUtVICBTRU9VTCAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtOTAtN0QgICAoaGV4KQkJTGFrZSBDb21tdW5pY2F0aW9ucworMDA5MDdEICAgICAoYmFzZSAxNikJCUxha2UgQ29tbXVuaWNhdGlvbnMKKwkJCQlCZWVjaCBIb3VzZSwgR3JlZW5oaWxscyBSb2FkCisJCQkJRHVibGluIDI0CisJCQkJSVJFTEFORAorCiswMC05MC03RSAgIChoZXgpCQlWRVRST05JWCBDT1JQLgorMDA5MDdFICAgICAoYmFzZSAxNikJCVZFVFJPTklYIENPUlAuCisJCQkJMjAzMCBBTEFNRURFIFBBRFJFIFNFUlJBCisJCQkJU0FOVEEgQkFSQkFSQSBDQSA5MzEwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtN0YgICAoaGV4KQkJV2F0Y2hHdWFyZCBUZWNobm9sb2dpZXMsIEluYy4KKzAwOTA3RiAgICAgKGJhc2UgMTYpCQlXYXRjaEd1YXJkIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTUwNSBGaWZ0aCBBdmUgU291dGgKKwkJCQlTdWl0ZSA1MDAKKwkJCQlTZWF0dGxlIFdBIDk4MTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC04MCAgIChoZXgpCQlOT1QgTElNSVRFRCwgSU5DLgorMDA5MDgwICAgICAoYmFzZSAxNikJCU5PVCBMSU1JVEVELCBJTkMuCisJCQkJNTAwIEFMTEVSVE9OIFNUUkVFVCwgU1RFICMxMDIKKwkJCQlSRURXT09EIENJVFkgQ0EgOTQwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTgxICAgKGhleCkJCUFMT0hBIE5FVFdPUktTLCBJTkMuCiswMDkwODEgICAgIChiYXNlIDE2KQkJQUxPSEEgTkVUV09SS1MsIElOQy4KKwkJCQkxMDAxQSBPJ1JFSUxMWSBBVkVOVUUKKwkJCQlQLk8uIEJPWCAyOTQ3MgorCQkJCVNBTiBGUkFOQ0lTQ08gQ0EgOTQxMjktMDQ3MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtODIgICAoaGV4KQkJRk9SQ0UgSU5TVElUVVRFCiswMDkwODIgICAgIChiYXNlIDE2KQkJRk9SQ0UgSU5TVElUVVRFCisJCQkJUEFSSyBBTExFIDM0NQorCQkJCURLLTI2MDUgQlJPRU5EQlkgIAorCQkJCURFTk1BUksKKworMDAtOTAtODMgICAoaGV4KQkJVFVSQk8gQ09NTVVOSUNBVElPTiwgSU5DLgorMDA5MDgzICAgICAoYmFzZSAxNikJCVRVUkJPIENPTU1VTklDQVRJT04sIElOQy4KKwkJCQk0Ri0yLCBOTy4gMTcxLCBTVU5HLVRFSCBST0FECisJCQkJVEFJUEVJICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLTg0ICAgKGhleCkJCUFURUNIIFNZU1RFTQorMDA5MDg0ICAgICAoYmFzZSAxNikJCUFURUNIIFNZU1RFTQorCQkJCTRGIERBRUJPT05HIEJMREcuIDE0NTEtNzgKKwkJCQlTRU9DSE8tRE9ORyBTRU9DSE8tS1UKKwkJCQkgU0VPVUwgIDEzNy0wNzAgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC05MC04NSAgIChoZXgpCQlHT0xERU4gRU5URVJQUklTRVMsIElOQy4KKzAwOTA4NSAgICAgKGJhc2UgMTYpCQlHT0xERU4gRU5URVJQUklTRVMsIElOQy4KKwkJCQk0NDUwIFdFU1QgRUFVIEdBTExJRSBCTFZELgorCQkJCTI1MCBQRVJJTUVURVIgQ0VOVEVSCisJCQkJTUVMQk9VUk5FIEZMIDMyOTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC04NiAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMDkwODYgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFIuIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC04NyAgIChoZXgpCQlJVElTCiswMDkwODcgICAgIChiYXNlIDE2KQkJSVRJUworCQkJCUNFTlRSRSBFU1BBQ0UgUEVSRk9STUFOQ0UKKwkJCQlBTFBIQVNJUy1CQVRJTUVOVCBDMQorCQkJCTM1NzY5IFNBSU5ULUdSRUdPSVJFIENFREVYICAKKwkJCQlGUkFOQ0UKKworMDAtOTAtODggICAoaGV4KQkJQkFYQUxMIFNFQ1VSSVRZIExURC4KKzAwOTA4OCAgICAgKGJhc2UgMTYpCQlCQVhBTEwgU0VDVVJJVFkgTFRELgorCQkJCVVOSVQgMSBDQVNUTEVISUxMCisJCQkJSE9SU0VGSUVMRCBXQVksIEJSRURCVVJZIFBBUksgSU5ELiBFc3RhdAorCQkJCVNUT0NLUE9SVCBHcmVhdCBCcml0YWluIFNLNiAyU1YgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtOTAtODkgICAoaGV4KQkJU09GVENPTSBNSUNST1NZU1RFTVMsIElOQy4KKzAwOTA4OSAgICAgKGJhc2UgMTYpCQlTT0ZUQ09NIE1JQ1JPU1lTVEVNUywgSU5DLgorCQkJCTQ3NTA5IFNFQUJSSURHRSBEUklWRQorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLThBICAgKGhleCkJCUJBWUxZIENPTU1VTklDQVRJT05TLCBJTkMuCiswMDkwOEEgICAgIChiYXNlIDE2KQkJQkFZTFkgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxMDUgR1JFRU4gQ09VUlQKKwkJCQlBSkFYIE9udGFyaW8gIEwxUyA2VzkgCisJCQkJQ0FOQURBCisKKzAwLTkwLThCICAgKGhleCkJCVRhdHRpbGUgU1JMIAorMDA5MDhCICAgICAoYmFzZSAxNikJCVRhdHRpbGUgU1JMIAorCQkJCTI2MDAgRmVybmJyb29rIExhbmUKKwkJCQlTdWl0ZSAxMzAKKwkJCQlQbHltb3V0aCBNTiA1NTQ0NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOEMgICAoaGV4KQkJRVRSRU5EIEVMRUNUUk9OSUNTLCBJTkMuCiswMDkwOEMgICAgIChiYXNlIDE2KQkJRVRSRU5EIEVMRUNUUk9OSUNTLCBJTkMuCisJCQkJMkYsIDIyIElORFVTVFJZIEUuIDlUSCBST0FECisJCQkJSFNJTkNIVSBTQ0lFTkNFIFBBUksKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLThEICAgKGhleCkJCVZJQ0tFUlMgRUxFQ1RST05JQ1MgU1lTVEVNUworMDA5MDhEICAgICAoYmFzZSAxNikJCVZJQ0tFUlMgRUxFQ1RST05JQ1MgU1lTVEVNUworCQkJCTExNTEgVy4gTUFTT04tTU9SUk9XIFJELgorCQkJCUxFQkFOT04gT0ggNDUwMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLThFICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcyBCcm9hZGJhbmQgQWNjZXNzCiswMDkwOEUgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzIEJyb2FkYmFuZCBBY2Nlc3MKKwkJCQkzOTY2MCBFdXJla2EgRHJpdmUKKwkJCQlOZXdhcmsgQ0EgOTQ1NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLThGICAgKGhleCkJCUFVRElPIENPREVTIExURC4KKzAwOTA4RiAgICAgKGJhc2UgMTYpCQlBVURJTyBDT0RFUyBMVEQuCisJCQkJM0EgTkVUQU5ZQUhVIFNUUkVFVAorCQkJCU9SIFlFSFVEQSA2MDI1NiAgCisJCQkJSVNSQUVMCisKKzAwLTkwLTkwICAgKGhleCkJCUktQlVTCiswMDkwOTAgICAgIChiYXNlIDE2KQkJSS1CVVMKKwkJCQk5MTc0IFNLWSBQQVJLIENPVVJUCisJCQkJU0FOIERJRUdPIENBIDkyMTIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05MSAgIChoZXgpCQlEaWdpdGFsU2NhcGUsIEluYy4KKzAwOTA5MSAgICAgKGJhc2UgMTYpCQlEaWdpdGFsU2NhcGUsIEluYy4KKwkJCQk2IE1PUkdBTiAgLSBTVEUuIzEwMAorCQkJCUlSVklORSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOTIgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MDkyICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJTS9TIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOTMgICAoaGV4KQkJTkFOQU8gQ09SUE9SQVRJT04KKzAwOTA5MyAgICAgKGJhc2UgMTYpCQlOQU5BTyBDT1JQT1JBVElPTgorCQkJCTE1MyBTSElNT0tBU0hJV0FOTywgTUFUVE8KKwkJCQlJU0hJS0FXQSA5MjQtODU2NiAgCisJCQkJSkFQQU4KKworMDAtOTAtOTQgICAoaGV4KQkJT1NQUkVZIFRFQ0hOT0xPR0lFUywgSU5DLgorMDA5MDk0ICAgICAoYmFzZSAxNikJCU9TUFJFWSBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk2MDAgQUlSUE9SVCBCTFZELiAtIFNURS4gIzkwMAorCQkJCU1PUlJJU1ZJTExFIE5DIDI3NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05NSAgIChoZXgpCQlVTklWRVJTQUwgQVZJT05JQ1MKKzAwOTA5NSAgICAgKGJhc2UgMTYpCQlVTklWRVJTQUwgQVZJT05JQ1MKKwkJCQkxMTM1MSBXSUxMT1dTIFJPQUQgTkUKKwkJCQlSRURNT05EIFdBIDk4MDUyLTI1NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTk2ICAgKGhleCkJCUFTS0VZIENPTVBVVEVSIENPUlAuCiswMDkwOTYgICAgIChiYXNlIDE2KQkJQVNLRVkgQ09NUFVURVIgQ09SUC4KKwkJCQkyRiwgTk8uIDIsIExBTkUgNDk3CisJCQkJQ0hVTkctQ0hFTkcgUkQuLCBIU0lOLVRJRU4KKwkJCQlUQUlQRUkgIDIzMTM2ICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLTk3ICAgKGhleCkJCVN5Y2Ftb3JlIE5ldHdvcmtzCiswMDkwOTcgICAgIChiYXNlIDE2KQkJU3ljYW1vcmUgTmV0d29ya3MKKwkJCQkyMjAgTWlsbCBSZAorCQkJCUNoZWxtc2ZvcmQgTUEgMDE4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLTk4ICAgKGhleCkJCVNCQyBERVNJR05TLCBJTkMuCiswMDkwOTggICAgIChiYXNlIDE2KQkJU0JDIERFU0lHTlMsIElOQy4KKwkJCQkzMDc3LUggTEVFTUFOIEZFUlJZIFJPQUQKKwkJCQlIVU5UU1ZJTExFIEFMIDM1ODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05OSAgIChoZXgpCQlBTExJRUQgVEVMRVNJUywgSy5LLgorMDA5MDk5ICAgICAoYmFzZSAxNikJCUFMTElFRCBURUxFU0lTLCBLLksuCisJCQkJTk8uIDIgIFRPQyBCVUlMRElORywgNy0yMS0xMU5pc2hpLUdvdGFuZAorCQkJCVNoaW5hZ2F3YS1LdSBUb2t5byAxNDEgCisJCQkJSkFQQU4KKworMDAtOTAtOUEgICAoaGV4KQkJT05FIFdPUkxEIFNZU1RFTVMsIElOQy4KKzAwOTA5QSAgICAgKGJhc2UgMTYpCQlPTkUgV09STEQgU1lTVEVNUywgSU5DLgorCQkJCTExNDQgRUFTVCBBUlFVRVMgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05QiAgIChoZXgpCQlJTUFKRQorMDA5MDlCICAgICAoYmFzZSAxNikJCUlNQUpFCisJCQkJR8O2dGF2ZXJrc2dhdGFuIDZBCisJCQkJR290aGVuYnVyZyAgNDE3IDU1CisJCQkJU1dFREVOCisKKzAwLTkwLTlDICAgKGhleCkJCU1vdG9yb2xhLCBJbmMuCiswMDkwOUMgICAgIChiYXNlIDE2KQkJTW90b3JvbGEsIEluYy4KKwkJCQkyNDUwIFdhbHNoIEF2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC05RCAgIChoZXgpCQlOb3ZhVGVjaCBQcm9jZXNzIFNvbHV0aW9ucywgTExDCiswMDkwOUQgICAgIChiYXNlIDE2KQkJTm92YVRlY2ggUHJvY2VzcyBTb2x1dGlvbnMsIExMQworCQkJCTExNTAwIENyb25yaWRnZSBEcml2ZQorCQkJCVN1aXRlIDExMAorCQkJCU93aW5ncyBNaWxscyBNRCAyMTExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOUUgICAoaGV4KQkJQ3JpdGljYWwgSU8sIExMQworMDA5MDlFICAgICAoYmFzZSAxNikJCUNyaXRpY2FsIElPLCBMTEMKKwkJCQk0ODUgRS4gMTd0aCBTdHJlZXQKKwkJCQlTdWl0ZSAyMDEwCisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtOUYgICAoaGV4KQkJRElHSS1EQVRBIENPUlBPUkFUSU9OCiswMDkwOUYgICAgIChiYXNlIDE2KQkJRElHSS1EQVRBIENPUlBPUkFUSU9OCisJCQkJODkyMC1EIFJvdXRlIDEwOAorCQkJCUNvbHVtYmlhIE1EIDIxMDQ1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BMCAgIChoZXgpCQk4WDggSU5DLgorMDA5MEEwICAgICAoYmFzZSAxNikJCThYOCBJTkMuCisJCQkJMjQ0NSBNSVNTSU9OIENPTExFR0UgQkxWRC4KKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQTEgICAoaGV4KQkJRmx5aW5nIFBpZyBTeXN0ZW1zL0hpZ2ggRW5kIFN5c3RlbXMgSW5jLgorMDA5MEExICAgICAoYmFzZSAxNikJCUZseWluZyBQaWcgU3lzdGVtcy9IaWdoIEVuZCBTeXN0ZW1zIEluYy4KKwkJCQkyMTA1IEdyYWN5IEZhcm1zIExhbmUKKwkJCQlBdXN0aW4gVFggNzg3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUEyICAgKGhleCkJCUNZQkVSVEFOIFRFQ0hOT0xPR1ksIElOQy4KKzAwOTBBMiAgICAgKGJhc2UgMTYpCQlDWUJFUlRBTiBURUNITk9MT0dZLCBJTkMuCisJCQkJQkxERy41MywgMTk1LTU2IFNFQy4gNCwKKwkJCQlDSFVORyBIU0lORyBST0FELAorCQkJCUNIVVRVTkcgSFNJTkNIVSAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLUEzICAgKGhleCkJCUNvcmVjZXNzIEluYy4KKzAwOTBBMyAgICAgKGJhc2UgMTYpCQlDb3JlY2VzcyBJbmMuCisJCQkJMTM1LTcyNiwgS2VvcHl1bmcgQi1Ub3duIDFGLCAyMDMsIE5vbmh5dQorCQkJCUthbmduYW0tZ3UsCisJCQkJU2VvdWwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC05MC1BNCAgIChoZXgpCQlBTFRJR0EgTkVUV09SS1MKKzAwOTBBNCAgICAgKGJhc2UgMTYpCQlBTFRJR0EgTkVUV09SS1MKKwkJCQkxMjQgR1JPVkUgU1RSRUVUCisJCQkJRlJBTktMSU4gTUEgMDIwMzgtMzIwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQTUgICAoaGV4KQkJU1BFQ1RSQSBMT0dJQworMDA5MEE1ICAgICAoYmFzZSAxNikJCVNQRUNUUkEgTE9HSUMKKwkJCQkxNzAwIE4uIDU1VEggU1RSRUVUCisJCQkJQk9VTERFUiBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQTYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MEE2ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSLiAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQTcgICAoaGV4KQkJQ0xJRU5URUMgQ09SUE9SQVRJT04KKzAwOTBBNyAgICAgKGJhc2UgMTYpCQlDTElFTlRFQyBDT1JQT1JBVElPTgorCQkJCTgxNzUgUy4gVklSR0lOSUEgU1QuCisJCQkJU1VJVEUgIzg1MC0yNDkKKwkJCQlSRU5PIE5WIDg5NTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BOCAgIChoZXgpCQlOaW5lVGlsZXMgTmV0d29ya3MsIEx0ZC4KKzAwOTBBOCAgICAgKGJhc2UgMTYpCQlOaW5lVGlsZXMgTmV0d29ya3MsIEx0ZC4KKwkJCQk5IFN0YXRpb24gUm9hZAorCQkJCVdhdGVyYmVhY2ggQ2FtYnJpZGdlIENCNSA5SFQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC05MC1BOSAgIChoZXgpCQlXRVNURVJOIERJR0lUQUwKKzAwOTBBOSAgICAgKGJhc2UgMTYpCQlXRVNURVJOIERJR0lUQUwKKwkJCQkxNTk5IE5PUlRIIEJST0FEV0FZCisJCQkJUk9DSEVTVEVSIE1OIDU1OTA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BQSAgIChoZXgpCQlJTkRJR08gQUNUSVZFIFZJU0lPTiBTWVNURU1TIExJTUlURUQKKzAwOTBBQSAgICAgKGJhc2UgMTYpCQlJTkRJR08gQUNUSVZFIFZJU0lPTiBTWVNURU1TIExJTUlURUQKKwkJCQlUSEUgRURJTkJVUkdIIFRFQ0hOT1BPTEUKKwkJCQlCQVNIIExPQU4KKwkJCQlFZGluYnVyZ2ggRUgyNiBPUEogIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLTkwLUFCICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwOTBBQiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRSAgIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQUMgICAoaGV4KQkJT1BUSVZJU0lPTiwgSU5DLgorMDA5MEFDICAgICAoYmFzZSAxNikJCU9QVElWSVNJT04sIElOQy4KKwkJCQkzNDUwIEhJTExWSUVXIEFWRU5VRQorCQkJCVBBTE8gQUxUTyBDQSA5NDMwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQUQgICAoaGV4KQkJQVNQRUNUIEVMRUNUUk9OSUNTLCBJTkMuCiswMDkwQUQgICAgIChiYXNlIDE2KQkJQVNQRUNUIEVMRUNUUk9OSUNTLCBJTkMuCisJCQkJMTI3NDAgRUFSSEFSVCBBVkUuCisJCQkJQVVCVVJOIENBIDk1NjAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1BRSAgIChoZXgpCQlJVEFMVEVMIFMucC5BLgorMDA5MEFFICAgICAoYmFzZSAxNikJCUlUQUxURUwgUy5wLkEuCisJCQkJTE9DQUxJVEEnIEJPU0NIRVRUTworCQkJCTY3MTAwIEwnQVFVSUxBICAKKwkJCQlJVEFMWQorCiswMC05MC1BRiAgIChoZXgpCQlKLiBNT1JJVEEgTUZHLiBDT1JQLgorMDA5MEFGICAgICAoYmFzZSAxNikJCUouIE1PUklUQSBNRkcuIENPUlAuCisJCQkJNjgwIEhJR0FTSElIQU1BIE1JTkFNSS1DSE8KKwkJCQlGVVNISU1JLUtVLCBLWU9UTyA2MTItODIxMyAKKwkJCQlKQVBBTgorCiswMC05MC1CMCAgIChoZXgpCQlWQURFTQorMDA5MEIwICAgICAoYmFzZSAxNikJCVZBREVNCisJCQkJMTk2MCBaQU5LRVIgUkQKKwkJCQlTQU4gSk9TRSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQjEgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MEIxICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSLiAtIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQjIgICAoaGV4KQkJQVZJQ0kgU1lTVEVNUyBJTkMuCiswMDkwQjIgICAgIChiYXNlIDE2KQkJQVZJQ0kgU1lTVEVNUyBJTkMuCisJCQkJMTIgRUxJWkFCRVRIIERSSVZFCisJCQkJQ0hFTE1TRk9SRCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQjMgICAoaGV4KQkJQUdSQU5BVCBTWVNURU1TCiswMDkwQjMgICAgIChiYXNlIDE2KQkJQUdSQU5BVCBTWVNURU1TCisJCQkJMTM0NSBNQUlOIFNUUkVFVAorCQkJCVdBTFRIQU0gTUEgMDIxNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUI0ICAgKGhleCkJCVdJTExPV0JST09LIFRFQ0hOT0xPR0lFUworMDA5MEI0ICAgICAoYmFzZSAxNikJCVdJTExPV0JST09LIFRFQ0hOT0xPR0lFUworCQkJCTcxMjAgSEFZVkVOSFVSU1QgQVZFLi1TVEUuIzQwMQorCQkJCVZBTiBOVVlTIENBIDkxNDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1CNSAgIChoZXgpCQlOSUtPTiBDT1JQT1JBVElPTgorMDA5MEI1ICAgICAoYmFzZSAxNikJCU5JS09OIENPUlBPUkFUSU9OCisJCQkJRWxlY3Ryb25pYyBJbWFnaW5nIERpdmlzaW9uLCBEZXNpZ25pbmcgRAorCQkJCTEtNi0zLCBOSVNISS1PSEksIFNISU5BR0FXQS1LVQorCQkJCVRPS1lPIDE0MC04NjAxICAKKwkJCQlKQVBBTgorCiswMC05MC1CNiAgIChoZXgpCQlGSUJFWCBTWVNURU1TCiswMDkwQjYgICAgIChiYXNlIDE2KQkJRklCRVggU1lTVEVNUworCQkJCTUzNTAgT0xEIFJFRFdPT0QgSElHSFdBWQorCQkJCVBFVEFMVU1BIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1CNyAgIChoZXgpCQlESUdJVEFMIExJR0hUV0FWRSwgSU5DLgorMDA5MEI3ICAgICAoYmFzZSAxNikJCURJR0lUQUwgTElHSFRXQVZFLCBJTkMuCisJCQkJNjAxIENMRVZFTEFORCBTVFJFRVQtIDVUSCBGTC4KKwkJCQlDTEVBUldBVEVSIEZMIDMzNzU1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1COCAgIChoZXgpCQlST0hERSAmIFNDSFdBUlogR01CSCAmIENPLiBLRworMDA5MEI4ICAgICAoYmFzZSAxNikJCVJPSERFICYgU0NIV0FSWiBHTUJIICYgQ08uIEtHCisJCQkJUE9TVEZBQ0g6IDgwIDE0IDY5L0FCVC46IDNDSworCQkJCUQtODE2MTQgTVVOQ0hFTiAgCisJCQkJR0VSTUFOWQorCiswMC05MC1COSAgIChoZXgpCQlCRVJBTiBJTlNUUlVNRU5UUyBMVEQuCiswMDkwQjkgICAgIChiYXNlIDE2KQkJQkVSQU4gSU5TVFJVTUVOVFMgTFRELgorCQkJCUhBVENITU9PUiBJTkRVU1RSSUFMIEVTVEFURQorCQkJCVRPUlJJTkdUT04KKwkJCQlOIERFVk9OIEVYMzggN0hQICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC05MC1CQSAgIChoZXgpCQlWQUxJRCBORVRXT1JLUywgSU5DLgorMDA5MEJBICAgICAoYmFzZSAxNikJCVZBTElEIE5FVFdPUktTLCBJTkMuCisJCQkJNiBDUk9NV0VMTCAjMTAyCisJCQkJSVJWSU5FIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1CQiAgIChoZXgpCQlUQUlORVQgQ09NTVVOSUNBVElPTiBTWVNURU0gQ29ycC4KKzAwOTBCQiAgICAgKGJhc2UgMTYpCQlUQUlORVQgQ09NTVVOSUNBVElPTiBTWVNURU0gQ29ycC4KKwkJCQkzIEZMLCBOTy4gNiwgQUxMRVkgMjMsIExBTkUgOTEgU0VDLiAxCisJCQkJTmVpLUh1IFJvYWQKKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtOTAtQkMgICAoaGV4KQkJVEVMRU1BTk4gQ08uLCBMVEQuCiswMDkwQkMgICAgIChiYXNlIDE2KQkJVEVMRU1BTk4gQ08uLCBMVEQuCisJCQkJNkYgRE9OR1NJTiBCTERHLgorCQkJCTU0MywgRE9HT0stRE9ORywgS0FOR05BTS1LVQorCQkJCVNFT1VMLCAxMzUtMjcwICAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtOTAtQkQgICAoaGV4KQkJT01OSUEgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwOTBCRCAgICAgKGJhc2UgMTYpCQlPTU5JQSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTEwMCBOSUNLRVJTT04gUk9BRAorCQkJCU1BUkxCT1JPVUdIIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1CRSAgIChoZXgpCQlJQkMvSU5URUdSQVRFRCBCVVNJTkVTUyBDT01QVVRFUlMKKzAwOTBCRSAgICAgKGJhc2UgMTYpCQlJQkMvSU5URUdSQVRFRCBCVVNJTkVTUyBDT01QVVRFUlMKKwkJCQkyNjg1IEMgUEFSSyBDRU5URVIgRFJJVkUKKwkJCQlTSU1JIFZBTExFWSBDQSA5MzA2NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQkYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MEJGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFICAgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1DMCAgIChoZXgpCQlLLkouIExBVyBFTkdJTkVFUlMsIElOQy4KKzAwOTBDMCAgICAgKGJhc2UgMTYpCQlLLkouIExBVyBFTkdJTkVFUlMsIElOQy4KKwkJCQk0MjMwMCBXLiBOSU5FIE1JTEUgUk9BRAorCQkJCU5PVkkgTUkgNDgzNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUMxICAgKGhleCkJCVBlY28gSUksIEluYy4KKzAwOTBDMSAgICAgKGJhc2UgMTYpCQlQZWNvIElJLCBJbmMuCisJCQkJNzA2MCBIdW50bGV5IFJvYWQKKwkJCQlDb2x1bWJ1cyBPSCA0MzIyOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQzIgICAoaGV4KQkJSksgbWljcm9zeXN0ZW1zLCBJbmMuCiswMDkwQzIgICAgIChiYXNlIDE2KQkJSksgbWljcm9zeXN0ZW1zLCBJbmMuCisJCQkJMTI3NSBZVUJBIEFWRU5VRQorCQkJCVNBTiBQQUJMTyBDQSA5NDgwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQzMgICAoaGV4KQkJVE9QSUMgU0VNSUNPTkRVQ1RPUiBDT1JQLgorMDA5MEMzICAgICAoYmFzZSAxNikJCVRPUElDIFNFTUlDT05EVUNUT1IgQ09SUC4KKwkJCQkxMUYtMSwgTk8uIDIsIFdVLUxJTiBSRC4KKwkJCQlIU0lOLUNIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC1DNCAgIChoZXgpCQlKQVZFTElOIFNZU1RFTVMsIElOQy4KKzAwOTBDNCAgICAgKGJhc2UgMTYpCQlKQVZFTElOIFNZU1RFTVMsIElOQy4KKwkJCQkxODgxIExBTkdMRVkgQVZFLgorCQkJCUlSVklORSBDQSA5MjYxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQzUgICAoaGV4KQkJSU5URVJORVQgTUFHSUMsIElOQy4KKzAwOTBDNSAgICAgKGJhc2UgMTYpCQlJTlRFUk5FVCBNQUdJQywgSU5DLgorCQkJCTY0NTAgTFVTSyBCTFZELi1TVEUuICNFLTIwMQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtQzYgICAoaGV4KQkJT1BUSU0gU1lTVEVNUywgSU5DLgorMDA5MEM2ICAgICAoYmFzZSAxNikJCU9QVElNIFNZU1RFTVMsIElOQy4KKwkJCQk4MjAxIEdSRUVOU0JPUk8gRFIuLVNURS4gIzEwMDAKKwkJCQlNQ0xFQU4gVkEgMjIxMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUM3ICAgKGhleCkJCUlDT00gSU5DLgorMDA5MEM3ICAgICAoYmFzZSAxNikJCUlDT00gSU5DLgorCQkJCTYtOS0xNiBLQU1JSElHQVNISQorCQkJCUhJUkFOTy1LVSwgT1NBS0EgIAorCQkJCUpBUEFOCisKKzAwLTkwLUM4ICAgKGhleCkJCVdBVkVSSURFUiBDT01NVU5JQ0FUSU9OUyAoQ0FOQURBKSBJTkMuCiswMDkwQzggICAgIChiYXNlIDE2KQkJV0FWRVJJREVSIENPTU1VTklDQVRJT05TIChDQU5BREEpIElOQy4KKwkJCQkKKwkJCQlCcml0aXNoIENvbHVtYmlhIFYxRSA0UjkgCisJCQkJQ0FOQURBCisKKzAwLTkwLUM5ICAgKGhleCkJCURQQUMgVGVjaG5vbG9naWVzCiswMDkwQzkgICAgIChiYXNlIDE2KQkJRFBBQyBUZWNobm9sb2dpZXMKKwkJCQk3MzIxIExpbmNvbG4gV2F5CisJCQkJR2FyZGVuIEdyb3ZlIENBIDkyODQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1DQSAgIChoZXgpCQlBQ0NPUkQgVklERU8gVEVMRUNPTU1VTklDQVRJT05TLCBMVEQuCiswMDkwQ0EgICAgIChiYXNlIDE2KQkJQUNDT1JEIFZJREVPIFRFTEVDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCTEwLCBNQVJUSU4gR0VITCBTVFIsIFBPIEJPWCAzNTY0CisJCQkJUGV0YWNoLVRpa3ZhIDQ5MTMwICAKKwkJCQlJU1JBRUwKKworMDAtOTAtQ0IgICAoaGV4KQkJV2lyZWxlc3MgT25MaW5lLCBJbmMuCiswMDkwQ0IgICAgIChiYXNlIDE2KQkJV2lyZWxlc3MgT25MaW5lLCBJbmMuCisJCQkJNDQxMCBFTCBDQU1JTk8gUkVBTCwgIFNURSAjMTAxCisJCQkJTE9TIEFMVE9TIENBIDk0MDIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1DQyAgIChoZXgpCQlQbGFuZXggQ29tbXVuaWNhdGlvbnMKKzAwOTBDQyAgICAgKGJhc2UgMTYpCQlQbGFuZXggQ29tbXVuaWNhdGlvbnMKKwkJCQkyRiBGRU5JU1NBWSBFYmlzdSBCbGRnCisJCQkJMy0xNi0zIEhpZ2FzaGksCisJCQkJU2hpYnV5YS1rdSwgVG9reW8gMTUwLTAwMTEKKwkJCQlKQVBBTgorCiswMC05MC1DRCAgIChoZXgpCQlFTlQtRU1QUkVTQSBOQUNJT05BTCBERSBURUxFQ09NTVVOSUNBQ09FUywgUy5BLgorMDA5MENEICAgICAoYmFzZSAxNikJCUVOVC1FTVBSRVNBIE5BQ0lPTkFMIERFIFRFTEVDT01NVU5JQ0FDT0VTLCBTLkEuCisJCQkJUi4gRU5HIEZSRURFUklDTyBVTFJJQ0ggLSAgQVBBUlRBRE8gMzA4MQorCQkJCUd1YXJkZWlyYXMgLSA0NDcwIE1vcmVpcmEgTWFpYSAgCisJCQkJUE9SVFVHQUwKKworMDAtOTAtQ0UgICAoaGV4KQkJVEVUUkEgR21iSAorMDA5MENFICAgICAoYmFzZSAxNikJCVRFVFJBIEdtYkgKKwkJCQlHRVdFUkJFUEFSSyAiQW1XYWxkIiA0CisJCQkJRC05ODY5MyBJTE1FTkFVICAKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLUNGICAgKGhleCkJCU5PUlRFTAorMDA5MENGICAgICAoYmFzZSAxNikJCU5PUlRFTAorCQkJCTI1MCBTSURORVkgU1RSRUVUCisJCQkJQmVsbGV2aWxsZSBPbnRhcmlvIEs4TiA1QjcgCisJCQkJQ0FOQURBCisKKzAwLTkwLUQwICAgKGhleCkJCVRob21zb24gVGVsZWNvbSBCZWxnaXVtCiswMDkwRDAgICAgIChiYXNlIDE2KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKwkJCQlQcmlucyBCb3VkZXdpam5sYWFuIDQ3CisJCQkJQi0yNjUwIEVERUdFTSAgCisJCQkJQkVMR0lVTQorCiswMC05MC1EMSAgIChoZXgpCQlMRUlDSFUgRU5URVJQUklTRSBDTy4sIExURC4KKzAwOTBEMSAgICAgKGJhc2UgMTYpCQlMRUlDSFUgRU5URVJQUklTRSBDTy4sIExURC4KKwkJCQk4RiwgTk8uIDIwMywgUEEtVEVIIFJPQUQsIFNFQy4yCisJCQkJVEFJUEVJIENJVFkKKwkJCQlUQUlXQU4gCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC1EMiAgIChoZXgpCQlBUlRFTCBWSURFTyBTWVNURU1TCiswMDkwRDIgICAgIChiYXNlIDE2KQkJQVJURUwgVklERU8gU1lTVEVNUworCQkJCTIzNyBDRURBUiBISUxMIFNULgorCQkJCU1BUkxCT1JPIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1EMyAgIChoZXgpCQlHSUVTRUNLRSAmIERFVlJJRU5UIEdtYkgKKzAwOTBEMyAgICAgKGJhc2UgMTYpCQlHSUVTRUNLRSAmIERFVlJJRU5UIEdtYkgKKwkJCQlQUklOWlJFR0VOVEVOU1RSQVNTRSAxNTkKKwkJCQlELTgxNjc3ICBNVU5DSEVOICAKKwkJCQlHRVJNQU5ZCisKKzAwLTkwLUQ0ICAgKGhleCkJCUJpbmRWaWV3IERldmVsb3BtZW50IENvcnAuCiswMDkwRDQgICAgIChiYXNlIDE2KQkJQmluZFZpZXcgRGV2ZWxvcG1lbnQgQ29ycC4KKwkJCQkzMzU1IFdFU1QgQUxBQkFNQSAjMTIwMAorCQkJCUhPVVNUT04gVFggNzcwOTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUQ1ICAgKGhleCkJCUVVUEhPTklYLCBJTkMuCiswMDkwRDUgICAgIChiYXNlIDE2KQkJRVVQSE9OSVgsIElOQy4KKwkJCQkyMjAgUE9SVEFHRSBBVkUuCisJCQkJUEFMTyBBTFRPIENBIDk0MzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1ENiAgIChoZXgpCQlDUllTVEFMIEdST1VQCiswMDkwRDYgICAgIChiYXNlIDE2KQkJQ1JZU1RBTCBHUk9VUAorCQkJCTg1MCBLQUNFTkEgUkQuCisJCQkJSElBV0FUSEEgSUEgNTIyMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUQ3ICAgKGhleCkJCU5ldEJvb3N0IENvcnAuCiswMDkwRDcgICAgIChiYXNlIDE2KQkJTmV0Qm9vc3QgQ29ycC4KKwkJCQkzOTAgQ0FNQlJJREdFIEFWRU5VRQorCQkJCVBBTE8gQUxUTyBDQSA5NDMwNi0xNTA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1EOCAgIChoZXgpCQlXSElURUNST1NTIFNZU1RFTVMKKzAwOTBEOCAgICAgKGJhc2UgMTYpCQlXSElURUNST1NTIFNZU1RFTVMKKwkJCQkzQSBXQVRFUlNJREUgUEFSSywgQ09PS0hBTSBSRAorCQkJCUJSQUNLTkVMTAorCQkJCUJFUktTSElSRSBSRzEyIDFSQiAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtOTAtRDkgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MEQ5ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJTS9TLyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLURBICAgKGhleCkJCURZTkFSQywgSU5DLgorMDA5MERBICAgICAoYmFzZSAxNikJCURZTkFSQywgSU5DLgorCQkJCTE4ODcgTEFORElOR1MgRFJJVkUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1EQiAgIChoZXgpCQlORVhUIExFVkVMIENPTU1VTklDQVRJT05TCiswMDkwREIgICAgIChiYXNlIDE2KQkJTkVYVCBMRVZFTCBDT01NVU5JQ0FUSU9OUworCQkJCTYwODUgU1RBVEUgRkFSTSBEUklWRQorCQkJCVJPSE5FUlQgUEFSSyBDQSA5NDkyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtREMgICAoaGV4KQkJVEVDTyBJTkZPUk1BVElPTiBTWVNURU1TCiswMDkwREMgICAgIChiYXNlIDE2KQkJVEVDTyBJTkZPUk1BVElPTiBTWVNURU1TCisJCQkJQ08uLCBMVEQuCisJCQkJMjg0MSBKVU5DVElPTiBBVkUuLCBTVEUuICMxMTYKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtREQgICAoaGV4KQkJVEhFIE1JSEFSVSBDT01NVU5JQ0FUSU9OUyBDTy4sIExURC4KKzAwOTBERCAgICAgKGJhc2UgMTYpCQlUSEUgTUlIQVJVIENPTU1VTklDQVRJT05TIENPLiwgTFRELgorCQkJCQorCQkJCTEyODUsIElXQVNFLCBLQU1BS1VSQS1DSVRZCisJCQkJS0FOQUdBV0EgIAorCQkJCUpBUEFOCisKKzAwLTkwLURFICAgKGhleCkJCUNBUkRLRVkgU1lTVEVNUywgSU5DLgorMDA5MERFICAgICAoYmFzZSAxNikJCUNBUkRLRVkgU1lTVEVNUywgSU5DLgorCQkJCTE3NTcgVEFQTyBDQU5ZT04gUk9BRAorCQkJCVNJTUkgVkFMTEVZIENBIDkzMDYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1ERiAgIChoZXgpCQlNSVRTVUJJU0hJIENIRU1JQ0FMIEFNRVJJQ0EsIElOQy4KKzAwOTBERiAgICAgKGJhc2UgMTYpCQlNSVRTVUJJU0hJIENIRU1JQ0FMIEFNRVJJQ0EsIElOQy4KKwkJCQk0NDUgSU5ESU8gV0FZCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1FMCAgIChoZXgpCQlTWVNUUkFOIENPUlAuCiswMDkwRTAgICAgIChiYXNlIDE2KQkJU1lTVFJBTiBDT1JQLgorCQkJCTQxMjYgTElOREVOIEFWRU5VRQorCQkJCURBWVRPTiBPSCA0NTQzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRTEgICAoaGV4KQkJVEVMRU5BIFMuUC5BLgorMDA5MEUxICAgICAoYmFzZSAxNikJCVRFTEVOQSBTLlAuQS4KKwkJCQlWSUEgU0FWT05BLCAxNDYKKwkJCQkyMDE0NCBNSUxBTk8gIAorCQkJCUlUQUxZCisKKzAwLTkwLUUyICAgKGhleCkJCURJU1RSSUJVVEVEIFBST0NFU1NJTkcgVEVDSE5PTE9HWQorMDA5MEUyICAgICAoYmFzZSAxNikJCURJU1RSSUJVVEVEIFBST0NFU1NJTkcgVEVDSE5PTE9HWQorCQkJCTE0MCBDQU5EQUNFIERSSVZFCisJCQkJT1JMQU5ETyBGTCAzMjc1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRTMgICAoaGV4KQkJQVZFWCBFTEVDVFJPTklDUyBJTkMuCiswMDkwRTMgICAgIChiYXNlIDE2KQkJQVZFWCBFTEVDVFJPTklDUyBJTkMuCisJCQkJNDgwNyBCUkFERk9SRCBEUklWRQorCQkJCUhVTlRTVklMTEUgQUwgMzU4MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUU0ICAgKGhleCkJCU5FQyBBTUVSSUNBLCBJTkMuCiswMDkwRTQgICAgIChiYXNlIDE2KQkJTkVDIEFNRVJJQ0EsIElOQy4KKwkJCQkzMTAwIE4uRS4gU0hVVEUgUk9BRAorCQkJCUhJTExTQk9STyBPUiA5NzEyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRTUgICAoaGV4KQkJVEVLTkVNQSwgSU5DLgorMDA5MEU1ICAgICAoYmFzZSAxNikJCVRFS05FTUEsIElOQy4KKwkJCQkyNjU2IEUuIEJBWVNIT1JFIFJPQUQKKwkJCQlQQUxPIEFMVE8gQ0EgOTQzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUU2ICAgKGhleCkJCUFMaSBDb3Jwb3JhdGlvbgorMDA5MEU2ICAgICAoYmFzZSAxNikJCUFMaSBDb3Jwb3JhdGlvbgorCQkJCTZGLCAyNDYgTmVpSHUgUm9hZCwgU2VjLiAxCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLUU3ICAgKGhleCkJCUhPUlNDSCBFTEVLVFJPTklLIEFHCiswMDkwRTcgICAgIChiYXNlIDE2KQkJSE9SU0NIIEVMRUtUUk9OSUsgQUcKKwkJCQlIQUFHRVJTVFJBU1NFCisJCQkJUE9TVEZBQ0gKKwkJCQlDSC05NDczIEdBTVMgIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLTkwLUU4ICAgKGhleCkJCU1PWEEgVEVDSE5PTE9HSUVTIENPUlAuLCBMVEQuCiswMDkwRTggICAgIChiYXNlIDE2KQkJTU9YQSBURUNITk9MT0dJRVMgQ09SUC4sIExURC4KKwkJCQk3RiwgTk8uIDIsIEFMWTYsIExOIDIzNQorCQkJCVBBTy1DSElBTyBSRCwKKwkJCQlTSElFTkctVElFTiBDSVRZIFRBSVBFSSAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLTkwLUU5ICAgKGhleCkJCUpBTlogQ09NUFVURVIgQUcKKzAwOTBFOSAgICAgKGJhc2UgMTYpCQlKQU5aIENPTVBVVEVSIEFHCisJCQkJSW0gRMO2cmVuZXIgRmVsZCA4CisJCQkJRC0zMzEwMCBQYWRlcmJvcm4gCisJCQkJR0VSTUFOWQorCiswMC05MC1FQSAgIChoZXgpCQlBTFBIQSBURUNITk9MT0dJRVMsIElOQy4KKzAwOTBFQSAgICAgKGJhc2UgMTYpCQlBTFBIQSBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkzNzY3IEFMUEhBIFdBWQorCQkJCUJFTExJTkdIQU0gV0EgOTgyMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUVCICAgKGhleCkJCVNFTlRSWSBURUxFQ09NIFNZU1RFTVMKKzAwOTBFQiAgICAgKGJhc2UgMTYpCQlTRU5UUlkgVEVMRUNPTSBTWVNURU1TCisJCQkJODY2NCBDT01NRVJDRSBDT1VSVAorCQkJCUJVUk5BQlkgQkMgVjVBIDRONyAKKwkJCQlDQU5BREEKKworMDAtOTAtRUMgICAoaGV4KQkJUFlSRVNDT00KKzAwOTBFQyAgICAgKGJhc2UgMTYpCQlQWVJFU0NPTQorCQkJCTMgQUxMRUUgRFUgTU9VTElOCisJCQkJNjY2ODAgQ0FOT0hFUyAgCisJCQkJRlJBTkNFCisKKzAwLTkwLUVEICAgKGhleCkJCUNFTlRSQUwgU1lTVEVNIFJFU0VBUkNIIENPLiwgTFRELgorMDA5MEVEICAgICAoYmFzZSAxNikJCUNFTlRSQUwgU1lTVEVNIFJFU0VBUkNIIENPLiwgTFRELgorCQkJCTQtMTMtMiBISVlPU0hJQ0hPCisJCQkJS09LVUJVTkpJLUNJVFkgVE9LWU8gMTg1MDAwMzIgCisJCQkJSkFQQU4KKworMDAtOTAtRUUgICAoaGV4KQkJUEVSU09OQUwgQ09NTVVOSUNBVElPTlMgVEVDSE5PTE9HSUVTCiswMDkwRUUgICAgIChiYXNlIDE2KQkJUEVSU09OQUwgQ09NTVVOSUNBVElPTlMgVEVDSE5PTE9HSUVTCisJCQkJNTAgU1RJTEVTIFJPQUQKKwkJCQlTQUxFTSBOSCAwMzA3OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRUYgICAoaGV4KQkJSU5URUdSSVgsIElOQy4KKzAwOTBFRiAgICAgKGJhc2UgMTYpCQlJTlRFR1JJWCwgSU5DLgorCQkJCTIwMDEgQ09SUE9SQVRFIENFTlRFUiBEUklWRQorCQkJCU5FV0JVUlkgUEFSSyBDQSA5MTMyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRjAgICAoaGV4KQkJSGFybW9uaWMgVmlkZW8gU3lzdGVtcyBMdGQuCiswMDkwRjAgICAgIChiYXNlIDE2KQkJSGFybW9uaWMgVmlkZW8gU3lzdGVtcyBMdGQuCisJCQkJMTkgQUxPTiBIQVRBVk9SIFNUUkVFVAorCQkJCVpvbmUgMywgUE8gQm94IDM2MDAKKwkJCQlDQUVTQVJFQSAgSW5kdXN0cmlhbCBQYXJrICAzODkwMAorCQkJCUlTUkFFTAorCiswMC05MC1GMSAgIChoZXgpCQlET1QgSElMTCBTWVNURU1TIENPUlBPUkFUSU9OCiswMDkwRjEgICAgIChiYXNlIDE2KQkJRE9UIEhJTEwgU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCTYzMDUgRWwgQ2FtaW5vIFJlYWwKKwkJCQlDYXJsc2JhZCBDQSA5MjAwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRjIgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDA5MEYyICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFIC0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1GMyAgIChoZXgpCQlBU1BFQ1QgQ09NTVVOSUNBVElPTlMKKzAwOTBGMyAgICAgKGJhc2UgMTYpCQlBU1BFQ1QgQ09NTVVOSUNBVElPTlMKKwkJCQkxMzEwIFJpZGRlciBQYXJrIERyaXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEtMjMxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRjQgICAoaGV4KQkJTElHSFROSU5HIElOU1RSVU1FTlRBVElPTgorMDA5MEY0ICAgICAoYmFzZSAxNikJCUxJR0hUTklORyBJTlNUUlVNRU5UQVRJT04KKwkJCQlCT1ZFUkVTU0VTIDUwCisJCQkJMTAxMCBMQVVTQU5ORSAgCisJCQkJU1dJVFpFUkxBTkQKKworMDAtOTAtRjUgICAoaGV4KQkJQ0xFVk8gQ08uCiswMDkwRjUgICAgIChiYXNlIDE2KQkJQ0xFVk8gQ08uCisJCQkJMzUsIFdVLUdPTiA2VEggUk9BRAorCQkJCVdVLUtVIElORFVTVFJJQUwgUEFSSworCQkJCVRBSVBFSSBIU0lFTiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC1GNiAgIChoZXgpCQlFU0NBTEFURSBORVRXT1JLUywgSU5DLgorMDA5MEY2ICAgICAoYmFzZSAxNikJCUVTQ0FMQVRFIE5FVFdPUktTLCBJTkMuCisJCQkJNiBIVUdIRVMKKwkJCQlJUlZJTkUgQ0EgOTI2MTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkwLUY3ICAgKGhleCkJCU5CQVNFIENPTU1VTklDQVRJT05TIExURC4KKzAwOTBGNyAgICAgKGJhc2UgMTYpCQlOQkFTRSBDT01NVU5JQ0FUSU9OUyBMVEQuCisJCQkJSU5EVVNUUklBTCBQQVJLCisJCQkJWU9RTkVBTSBJTElUIFAuTy4gQk9YIDExNAorCQkJCUlTUkFFTAorCiswMC05MC1GOCAgIChoZXgpCQlNRURJQVRSSVggVEVMRUNPTQorMDA5MEY4ICAgICAoYmFzZSAxNikJCU1FRElBVFJJWCBURUxFQ09NCisJCQkJNDIyOSBHQVJMT0NLCisJCQkJU0hFUkJST09LRQorCQkJCVFVRUJFQyBKMUwgMkM4ICAKKwkJCQlDQU5BREEKKworMDAtOTAtRjkgICAoaGV4KQkJTEVJVENICiswMDkwRjkgICAgIChiYXNlIDE2KQkJTEVJVENICisJCQkJMTAgRFlBUyBST0FECisJCQkJRE9OIE1JTExTCisJCQkJT05UQVJJTyBNM0IgMVY1ICAKKwkJCQlDQU5BREEKKworMDAtOTAtRkEgICAoaGV4KQkJRU1VTEVYIENvcnAKKzAwOTBGQSAgICAgKGJhc2UgMTYpCQlFTVVMRVggQ29ycAorCQkJCTMzMzMgU3VzYW4gU3RyZWV0CisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtOTAtRkIgICAoaGV4KQkJUE9SVFdFTEwsIElOQy4KKzAwOTBGQiAgICAgKGJhc2UgMTYpCQlQT1JUV0VMTCwgSU5DLgorCQkJCTdGLTQsIE5PLiAxNjAsIFNFQy4gNgorCQkJCU1JTkctQ0hVQU5HIEUuIFJELgorCQkJCVRBSVBFSSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05MC1GQyAgIChoZXgpCQlORVRXT1JLIENPTVBVVElORyBERVZJQ0VTCiswMDkwRkMgICAgIChiYXNlIDE2KQkJTkVUV09SSyBDT01QVVRJTkcgREVWSUNFUworCQkJCTMwMSBSQVZFTkRBTEUgRFJJVkUKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1GRCAgIChoZXgpCQlDb3BwZXJDb20sIEluYy4KKzAwOTBGRCAgICAgKGJhc2UgMTYpCQlDb3BwZXJDb20sIEluYy4KKwkJCQkzMjU1LTEgU0NPVFQgQkxWRC4sLS1TVEUuIzEwMworCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MC1GRSAgIChoZXgpCQlFTEVDT00gQ08uLCBMVEQuICAoTEFORUVEIERJVi4pCiswMDkwRkUgICAgIChiYXNlIDE2KQkJRUxFQ09NIENPLiwgTFRELiAgKExBTkVFRCBESVYuKQorCQkJCVNVTUlUT01PIEZVRE9TQU4KKwkJCQlISUdBU0hJIElLRUJVS1VSTyBCTERHLiA2RiwgMy0xMy0yIEhJR0FTCisJCQkJVE9TSElNQS1LVSBUT0tZTyAxNzAtMDAxMyAKKwkJCQlKQVBBTgorCiswMC05MC1GRiAgIChoZXgpCQlURUxMVVMgVEVDSE5PTE9HWSBJTkMuCiswMDkwRkYgICAgIChiYXNlIDE2KQkJVEVMTFVTIFRFQ0hOT0xPR1kgSU5DLgorCQkJCTQwOTkwIEVOQ1lDTE9QRURJQSBDSVIuCisJCQkJRlJFTU9OVCBDQSA5NDUzOC0yNDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05MS1ENiAgIChoZXgpCQlDcnlzdGFsIEdyb3VwLCBJbmMuCiswMDkxRDYgICAgIChiYXNlIDE2KQkJQ3J5c3RhbCBHcm91cCwgSW5jLgorCQkJCTg1MCBLYWNlbmEgUmQuCisJCQkJSGlhd2F0aGEgSUEgNTIyMzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkxLUZBICAgKGhleCkJCVN5bmFwc2UgUHJvZHVjdCBEZXZlbG9wbWVudAorMDA5MUZBICAgICAoYmFzZSAxNikJCVN5bmFwc2UgUHJvZHVjdCBEZXZlbG9wbWVudAorCQkJCTE1MTEgNnRoIEF2ZQorCQkJCVN1aXRlIDQwMAorCQkJCVNlYXR0bGUgV0EgOTgxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLTkzLTYzICAgKGhleCkJCVVuaS1MaW5rIFRlY2hub2xvZ3kgQ28uLCBMdGQuCiswMDkzNjMgICAgIChiYXNlIDE2KQkJVW5pLUxpbmsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk3LTUsIE5vLjY2LCBTZWMuMiwgTmFuLUthbiBSZC4sIEx1LUNodSBIc2lhbmcsCisJCQkJVGFveXVhbiAgMzM4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC05Ny1GRiAgIChoZXgpCQlIZWltYW5uIFNlbnNvciBHbWJICiswMDk3RkYgICAgIChiYXNlIDE2KQkJSGVpbWFubiBTZW5zb3IgR21iSAorCQkJCUdyZW56c3RyYXNzZSAyMgorCQkJCURyZXNkZW4gU2FjaHNlbiAwMTEwOQorCQkJCUdFUk1BTlkKKworMDAtOUMtMDIgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzAwOUMwMiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC05RC04RSAgIChoZXgpCQlDQVJESUFDIFJFQ09SREVSUywgSU5DLgorMDA5RDhFICAgICAoYmFzZSAxNikJCUNBUkRJQUMgUkVDT1JERVJTLCBJTkMuCisJCQkJMzQgU0NBUkJPUk8gUk9BRAorCQkJCUxPTkRPTiAgTjQgNEwgVQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtMDAgICAoaGV4KQkJQ0VOVElMTElPTiBORVRXT1JLUywgSU5DLgorMDBBMDAwICAgICAoYmFzZSAxNikJCUNFTlRJTExJT04gTkVUV09SS1MsIElOQy4KKwkJCQkzNTkgUkFWRU5EQUxFIERSSVZFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMDEgICAoaGV4KQkJRFJTIFNpZ25hbCBTb2x1dGlvbnMKKzAwQTAwMSAgICAgKGJhc2UgMTYpCQlEUlMgU2lnbmFsIFNvbHV0aW9ucworCQkJCTcwMCBRdWluY2UgT3JjaGFyZCBSb2FkCisJCQkJR2FpdGhlcnNidXJnIE1EIDIwODc4LTE3OTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTAyICAgKGhleCkJCUxFRURTICYgTk9SVEhSVVAgQVVTVFJBTElBIFBUWSBMVEQKKzAwQTAwMiAgICAgKGJhc2UgMTYpCQlMRUVEUyAmIE5PUlRIUlVQIEFVU1RSQUxJQSBQVFkgTFRECisJCQkJUE8gQk9YIDQwMDkKKwkJCQlFSUdIVCBNSUxFIFBMQUlOUyAgUUxEIDQxMTMgIAorCQkJCUFVU1RSQUxJQQorCiswMC1BMC0wMyAgIChoZXgpCQlTaWVtZW5zIFN3aXR6ZXJsYW5kIEx0ZC4sIEkgQiBUIEhWUAorMDBBMDAzICAgICAoYmFzZSAxNikJCVNpZW1lbnMgU3dpdHplcmxhbmQgTHRkLiwgSSBCIFQgSFZQCisJCQkJQnVpbGRpbmcgVGVjaG5vbG9naWVzIERpdmlzaW9uLCBJbnRlcm5hdGlvbmFsIEhlYWRxdWFydGVycworCQkJCUkgQlQgSFZQIFNZUyBSRCBFVSBHdWJlbHN0cmFzc2UgMjIKKwkJCQladWcgIDYzMDEKKwkJCQlTV0lUWkVSTEFORAorCiswMC1BMC0wNCAgIChoZXgpCQlORVRQT1dFUiwgSU5DLgorMDBBMDA0ICAgICAoYmFzZSAxNikJCU5FVFBPV0VSLCBJTkMuCisJCQkJNTQ1IE9BS01FQUQgUEFSS1dBWQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMDUgICAoaGV4KQkJREFOSUVMIElOU1RSVU1FTlRTLCBMVEQuCiswMEEwMDUgICAgIChiYXNlIDE2KQkJREFOSUVMIElOU1RSVU1FTlRTLCBMVEQuCisJCQkJVFJPTExTVFJBU1NFIDMzCisJCQkJQ0gtODQwMCBXSU5URVJUSFVSICAKKwkJCQlTV0lUWkVSTEFORAorCiswMC1BMC0wNiAgIChoZXgpCQlJTUFHRSBEQVRBIFBST0NFU1NJTkcgU1lTVEVNIEdST1VQCiswMEEwMDYgICAgIChiYXNlIDE2KQkJSU1BR0UgREFUQSBQUk9DRVNTSU5HIFNZU1RFTSBHUk9VUAorCQkJCVNISU5UT1lPRlVUQSAyLTEKKwkJCQlLQVNISVdBLUNJVFksIENISUJBIDI3NyAgCisJCQkJSkFQQU4KKworMDAtQTAtMDcgICAoaGV4KQkJQVBFWFggVEVDSE5PTE9HWSwgSU5DLgorMDBBMDA3ICAgICAoYmFzZSAxNikJCUFQRVhYIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk1MDYgUy4gMTFUSAorCQkJCVBPIEJPWCA5MjkxCisJCQkJQk9JU0UgSUQgODM3MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTA4ICAgKGhleCkJCU5FVENPUlAKKzAwQTAwOCAgICAgKGJhc2UgMTYpCQlORVRDT1JQCisJCQkJOCBQTEFDRSBPRiBDT01NRVJDRS0tU1RFICMyMDAKKwkJCQlCUk9TU0FSRCwgUVVFQkVDCisJCQkJQ0FOQURBIEo0VyAzSDIKKwkJCQlDQU5BREEKKworMDAtQTAtMDkgICAoaGV4KQkJV0hJVEVUUkVFIE5FVFdPUksKKzAwQTAwOSAgICAgKGJhc2UgMTYpCQlXSElURVRSRUUgTkVUV09SSworCQkJCVRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTMyMDAgQVNIIFNUUkVFVAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMEEgICAoaGV4KQkJQWlyc3BhbgorMDBBMDBBICAgICAoYmFzZSAxNikJCUFpcnNwYW4KKwkJCQlVbml0cm9uaWNzIEJ1aWxkaW5nLCBBcmF2YSBTdHJlZXQsIEFpcnBvcnQgQ2l0eQorCQkJCVBPQiAxOTkKKwkJCQk3MDEwMAorCQkJCUlTUkFFTAorCiswMC1BMC0wQiAgIChoZXgpCQlDT01QVVRFWCBDTy4sIExURC4KKzAwQTAwQiAgICAgKGJhc2UgMTYpCQlDT01QVVRFWCBDTy4sIExURC4KKwkJCQk0MzItMTMgR09KWU9CQVNISS1ISUdBU0hJIDQtQ0hZT01FCisJCQkJIEhJR0FTSElZQU1BS1UsIEtZT1RPLUNJVFkgNjA1ICAKKwkJCQlKQVBBTgorCiswMC1BMC0wQyAgIChoZXgpCQlLSU5HTUFYIFRFQ0hOT0xPR1ksIElOQy4KKzAwQTAwQyAgICAgKGJhc2UgMTYpCQlLSU5HTUFYIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkyRkwuLCBOTy4gNCwgTEFORSA5MDIsIFNFQy4yCisJCQkJS1VBTkcgRlUgUkQuLCBIU0lOLUNIVSBDSVRZCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1BMC0wRCAgIChoZXgpCQlUSEUgUEFOREEgUFJPSkVDVAorMDBBMDBEICAgICAoYmFzZSAxNikJCVRIRSBQQU5EQSBQUk9KRUNUCisJCQkJNTIwMSBDT05HUkVTUyBBVkUuIC0gQy0xMDAKKwkJCQlCT0NBIFJBVE9OIEZMIDMzNDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0wRSAgIChoZXgpCQlWSVNVQUwgTkVUV09SS1MsIElOQy4KKzAwQTAwRSAgICAgKGJhc2UgMTYpCQlWSVNVQUwgTkVUV09SS1MsIElOQy4KKwkJCQkyMDkyIEdBSVRIRVIgUk9BRC0gU1RFICMyMjAKKwkJCQlST0NLVklMTEUgTUQgMjA4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTBGICAgKGhleCkJCUJyb2FkYmFuZCBUZWNobm9sb2dpZXMKKzAwQTAwRiAgICAgKGJhc2UgMTYpCQlCcm9hZGJhbmQgVGVjaG5vbG9naWVzCisJCQkJUC5PLiBCb3ggMTM3MzcKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrLCBOQyAyNzcwOS0zNzM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0xMCAgIChoZXgpCQlTWVNMT0dJQyBEQVRFTlRFQ0hOSUsgQUcKKzAwQTAxMCAgICAgKGJhc2UgMTYpCQlTWVNMT0dJQyBEQVRFTlRFQ0hOSUsgQUcKKwkJCQlCcnVnZ2Vyc3RyYXNzZSA2OQorCQkJCUNILTU0MDAgQmFkZW4gIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLUEwLTExICAgKGhleCkJCU1VVE9IIElORFVTVFJJRVMgTFRELgorMDBBMDExICAgICAoYmFzZSAxNikJCU1VVE9IIElORFVTVFJJRVMgTFRELgorCQkJCTI1MyBLQU5BR0FXQS1LRU4sCisJCQkJQ0hJR0FTQUtJLVNISSBTSElNT01BQ0hJWUEgMS0zLTEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUEwLTEyICAgKGhleCkJCVRlbGNvIFN5c3RlbXMsIEluYy4gCiswMEEwMTIgICAgIChiYXNlIDE2KQkJVGVsY28gU3lzdGVtcywgSW5jLiAKKwkJCQkxNSBCZXJrc2hpcmUgUm9hZAorCQkJCU1hbnNmaWVsZCwgTUEgMDIwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTEzICAgKGhleCkJCVRFTFRSRU5EIExURC4KKzAwQTAxMyAgICAgKGJhc2UgMTYpCQlURUxUUkVORCBMVEQuCisJCQkJUklOR1dBWSBIT1VTRSwgQkVMTCBST0FECisJCQkJREFORVNISUxMLAorCQkJCUJBU0lOR1NUT0tFIEhBTVBTSElSRSBSRzI0IDhGICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC0xNCAgIChoZXgpCQlDU0lSCiswMEEwMTQgICAgIChiYXNlIDE2KQkJQ1NJUgorCQkJCVAuTy4gQk9YIDM5NQorCQkJCVBSRVRPUklBIDAwMDEKKwkJCQlTT1VUSCBBRlJJQ0EKKwkJCQlTT1VUSCBBRlJJQ0EKKworMDAtQTAtMTUgICAoaGV4KQkJV1lMRQorMDBBMDE1ICAgICAoYmFzZSAxNikJCVdZTEUKKwkJCQkzMDAwIEJPV0VSUyBBVkVOVUUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMTYgICAoaGV4KQkJTUlDUk9QT0xJUyBDT1JQLgorMDBBMDE2ICAgICAoYmFzZSAxNikJCU1JQ1JPUE9MSVMgQ09SUC4KKwkJCQkyMTIxMSBOT1JESE9GRiBTVFJFRVQKKwkJCQlDSEFUU1dPUlRIIENBIDkxMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0xNyAgIChoZXgpCQlKIEIgTSBDT1JQT1JBVElPTgorMDBBMDE3ICAgICAoYmFzZSAxNikJCUogQiBNIENPUlBPUkFUSU9OCisJCQkJMTAtMSwgQVJBTU9UT1NISU4gTUFDSEkKKwkJCQlISUdBU0hJIE9TQUtBCisJCQkJNTc3CisJCQkJSkFQQU4KKworMDAtQTAtMTggICAoaGV4KQkJQ1JFQVRJVkUgQ09OVFJPTExFUlMsIElOQy4KKzAwQTAxOCAgICAgKGJhc2UgMTYpCQlDUkVBVElWRSBDT05UUk9MTEVSUywgSU5DLgorCQkJCTEyOCBLRU5EUklDSyBMQU5FCisJCQkJUElDQVlVTkUgTVMgMzk0NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTE5ICAgKGhleCkJCU5FQlVMQSBDT05TVUxUQU5UUywgSU5DLgorMDBBMDE5ICAgICAoYmFzZSAxNikJCU5FQlVMQSBDT05TVUxUQU5UUywgSU5DLgorCQkJCTE0NDkgRFVOQ0FOIERSSVZFCisJCQkJREVMVEEsIEJDIFY0TCAxUjUgIAorCQkJCUNBTkFEQQorCiswMC1BMC0xQSAgIChoZXgpCQlCSU5BUiBFTEVLVFJPTklLIEFCCiswMEEwMUEgICAgIChiYXNlIDE2KQkJQklOQVIgRUxFS1RST05JSyBBQgorCQkJCU1BR05FVFVBR0VOIDE4CisJCQkJUy00NjEzOCBUUk9MTEhBVFRBTgorCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC1BMC0xQiAgIChoZXgpCQlQUkVNSVNZUyBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBBMDFCICAgICAoYmFzZSAxNikJCVBSRU1JU1lTIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJNDg2NjQgTUlMTU9OVCBEUklWRQorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTFDICAgKGhleCkJCU5BU0NFTlQgTkVUV09SS1MgQ09SUE9SQVRJT04KKzAwQTAxQyAgICAgKGJhc2UgMTYpCQlOQVNDRU5UIE5FVFdPUktTIENPUlBPUkFUSU9OCisJCQkJMjc3IE1BSU4gU1RSRUVULCAgM1JEIEZMUi4KKwkJCQlNQVJMQk9STyBNQSAwMTc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMUQgICAoaGV4KQkJU0lYTkVUCiswMEEwMUQgICAgIChiYXNlIDE2KQkJU0lYTkVUCisJCQkJUC5PLiBCT1ggNzY3CisJCQkJQ0xJRlRPTiBQQVJLIE5ZIDEyMDY1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0xRSAgIChoZXgpCQlFU1QgQ09SUE9SQVRJT04KKzAwQTAxRSAgICAgKGJhc2UgMTYpCQlFU1QgQ09SUE9SQVRJT04KKwkJCQkxMjAgUk9ZQUxMIFNUUkVFVAorCQkJCUNBTlRPTiBNQSAwMjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMUYgICAoaGV4KQkJVFJJQ09SRCBTWVNURU1TLCBJTkMuCiswMEEwMUYgICAgIChiYXNlIDE2KQkJVFJJQ09SRCBTWVNURU1TLCBJTkMuCisJCQkJMjgwMCBOT1JUSFdFU1QgQk9VTEVWQVJECisJCQkJUExZTU9VVEggTU4gNTU0NDEtMjYyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMjAgICAoaGV4KQkJQ0lUSUNPUlAvVFRJCiswMEEwMjAgICAgIChiYXNlIDE2KQkJQ0lUSUNPUlAvVFRJCisJCQkJMzEwMCBPQ0VBTiBQQVJLIEJMVkQuCisJCQkJU0FOVEEgTU9OSUNBIENBIDkwNDA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0yMSAgIChoZXgpCQlHZW5lcmFsIER5bmFtaWNzCiswMEEwMjEgICAgIChiYXNlIDE2KQkJR2VuZXJhbCBEeW5hbWljcworCQkJCUNvbW11bmljYXRpb24gU3lzdGVtcworCQkJCTc3QSBTdHJlZXQKKwkJCQlOZWVkaGFtIEhlaWdodHMgTUEgMDI0OTQtMjg5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMjIgICAoaGV4KQkJQ0VOVFJFIEZPUiBERVZFTE9QTUVOVCBPRiBBRFZBTkNFRCBDT01QVVRJTkcKKzAwQTAyMiAgICAgKGJhc2UgMTYpCQlDRU5UUkUgRk9SIERFVkVMT1BNRU5UIE9GIEFEVkFOQ0VEIENPTVBVVElORworCQkJCVVOSVZFUlNJVFkgT0YgUE9PTkEgQ0FNUFVTCisJCQkJR0FORVNIIEtISU5ELCBQdW5lIC0gNDExIDAwOCAgCisJCQkJSU5ESUEKKworMDAtQTAtMjMgICAoaGV4KQkJQVBQTElFRCBDUkVBVElWRSBURUNITk9MT0dZLCBJTkMuCiswMEEwMjMgICAgIChiYXNlIDE2KQkJQVBQTElFRCBDUkVBVElWRSBURUNITk9MT0dZLCBJTkMuCisJCQkJMjYyNiBMT01CQVJEWSBMQU5FLS1TVEUuIzEwNworCQkJCURBTExBUyBUWCA3NTIyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMjQgICAoaGV4KQkJM0NPTSBDT1JQT1JBVElPTgorMDBBMDI0ICAgICAoYmFzZSAxNikJCTNDT00gQ09SUE9SQVRJT04KKwkJCQk1NDAwIEJBWUZST05UIFBMQVpBCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTI1ICAgKGhleCkJCVJFRENPTSBMQUJTIElOQy4KKzAwQTAyNSAgICAgKGJhc2UgMTYpCQlSRURDT00gTEFCUyBJTkMuCisJCQkJT05FIFJFRENPTSBDRU5URVIKKwkJCQlWSUNUT1IgTlkgMTQ1NjQtMDk5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMjYgICAoaGV4KQkJVEVMREFULCBTLkEuCiswMEEwMjYgICAgIChiYXNlIDE2KQkJVEVMREFULCBTLkEuCisJCQkJUEFSUVVFIFRFQ05PTE9HSUNPIE1BRFJJRAorCQkJCTI4NzYwIFRBQ1MgQ0FOIFRPUyAoTUFEUklEKSAgCisJCQkJU1BBSU4KKworMDAtQTAtMjcgICAoaGV4KQkJRklSRVBPV0VSIFNZU1RFTVMsIElOQy4KKzAwQTAyNyAgICAgKGJhc2UgMTYpCQlGSVJFUE9XRVIgU1lTVEVNUywgSU5DLgorCQkJCTE5MCBJTkRFUEVOREVOQ0UgRFJJVkUKKwkJCQlNRU5MTyBQQVJLIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0yOCAgIChoZXgpCQlDT05ORVIgUEVSSVBIRVJBTFMKKzAwQTAyOCAgICAgKGJhc2UgMTYpCQlDT05ORVIgUEVSSVBIRVJBTFMKKwkJCQkzMDYxIFpBTktFUiBST0FECisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMjEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMjkgICAoaGV4KQkJQ09VTFRFUiBDT1JQT1JBVElPTgorMDBBMDI5ICAgICAoYmFzZSAxNikJCUNPVUxURVIgQ09SUE9SQVRJT04KKwkJCQkxMTgwMCBTLlcuIDE0N1RIIEFWRS4KKwkJCQlNSUFNSSBGTCAzMzE5NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMkEgICAoaGV4KQkJVFJBTkNFTEwgU1lTVEVNUworMDBBMDJBICAgICAoYmFzZSAxNikJCVRSQU5DRUxMIFNZU1RFTVMKKwkJCQkzMTgwIERFIExBIENSVVogQkxWRC4tU1RFIzIwMAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0LTI0MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTJCICAgKGhleCkJCVRSQU5TSVRJT05TIFJFU0VBUkNIIENPUlAuCiswMEEwMkIgICAgIChiYXNlIDE2KQkJVFJBTlNJVElPTlMgUkVTRUFSQ0ggQ09SUC4KKwkJCQlTSEVMVEVSIFJPQ0sgTEFORQorCQkJCURBTkJVUlkgQ1QgMDY4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTJDICAgKGhleCkJCWludGVyV0FWRSBDb21tdW5pY2F0aW9ucworMDBBMDJDICAgICAoYmFzZSAxNikJCWludGVyV0FWRSBDb21tdW5pY2F0aW9ucworCQkJCTY1NiBCQUlSIElTTEFORCBCTFZELi1TVEUuIzEwOAorCQkJCVJFRFdPT0QgQ0lUWSBDQSA5NDA2My0yNzA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0yRCAgIChoZXgpCQkxMzk0IFRyYWRlIEFzc29jaWF0aW9uCiswMEEwMkQgICAgIChiYXNlIDE2KQkJMTM5NCBUcmFkZSBBc3NvY2lhdGlvbgorCQkJCTM5MjUgV0VTVCBCUkFLRVIgTEFORQorCQkJCUFVU1RJTiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMkUgICAoaGV4KQkJQlJBTkQgQ09NTVVOSUNBVElPTlMsIExURC4KKzAwQTAyRSAgICAgKGJhc2UgMTYpCQlCUkFORCBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCUVOVEVSUFJJU0UgSE9VU0UsIENISVZFUlMgV0FZLAorCQkJCUhJU1RPTiwgQ0FNQlJJREdFIENCNCA0WlIgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLTJGICAgKGhleCkJCVBJUkVMTEkgQ0FWSQorMDBBMDJGICAgICAoYmFzZSAxNikJCVBJUkVMTEkgQ0FWSQorCQkJCVZJQUxFIFNBUkNBIDIyMgorCQkJCTIwMTI2IE1JTEFOICAKKwkJCQlJVEFMWQorCiswMC1BMC0zMCAgIChoZXgpCQlDQVBUT1IgTlYvU0EKKzAwQTAzMCAgICAgKGJhc2UgMTYpCQlDQVBUT1IgTlYvU0EKKwkJCQlERSBIRU5FIDEzCisJCQkJQi0xNzgwIFdFTU1FTAorCQkJCUJFTEdJVU0KKworMDAtQTAtMzEgICAoaGV4KQkJSEFaRUxUSU5FIENPUlBPUkFUSU9OLCBNUyAxLTE3CiswMEEwMzEgICAgIChiYXNlIDE2KQkJSEFaRUxUSU5FIENPUlBPUkFUSU9OLCBNUyAxLTE3CisJCQkJNDUwIEUuIFBVTEFTS0kgUk9BRAorCQkJCUdSRUVOTEFXTiBOWSAxMTc0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMzIgICAoaGV4KQkJR0VTIFNJTkdBUE9SRSBQVEUuIExURC4KKzAwQTAzMiAgICAgKGJhc2UgMTYpCQlHRVMgU0lOR0FQT1JFIFBURS4gTFRELgorCQkJCTE0IFNVTkdFSSBLQURVVCBBVkVOVUUKKwkJCQlTSU5HQVBPUkUgMjU3MgorCQkJCVNJTkdBUE9SRQorCiswMC1BMC0zMyAgIChoZXgpCQlpbWMgTWVCc3lzdGVtZSBHbWJICiswMEEwMzMgICAgIChiYXNlIDE2KQkJaW1jIE1lQnN5c3RlbWUgR21iSAorCQkJCVZPTFRBU1RSQVNTRSA1CisJCQkJRC0xMzM1NSBCRVJMSU4gIAorCQkJCUdFUk1BTlkKKworMDAtQTAtMzQgICAoaGV4KQkJQVhFTAorMDBBMDM0ICAgICAoYmFzZSAxNikJCUFYRUwKKwkJCQkxNiwgQVZFTlVFIERVIFFVRUJFQworCQkJCVouQS4gQ09VUlRBQk9FVUYgOTE5NjIgTEVTIFVMSVMKKwkJCQlGUkFOQ0UKKworMDAtQTAtMzUgICAoaGV4KQkJQ1lMSU5LIENPUlBPUkFUSU9OCiswMEEwMzUgICAgIChiYXNlIDE2KQkJQ1lMSU5LIENPUlBPUkFUSU9OCisJCQkJMzEzMSBKQVkgU1RSRUVUCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTM2ICAgKGhleCkJCUFQUExJRUQgTkVUV09SSyBURUNITk9MT0dZCiswMEEwMzYgICAgIChiYXNlIDE2KQkJQVBQTElFRCBORVRXT1JLIFRFQ0hOT0xPR1kKKwkJCQkzMTkgTElUVExFVE9OIFJPQUQtLVNURSAjMTAxCisJCQkJV0VTVEZPUkQgTUEgMDE4ODYtNDEzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtMzcgICAoaGV4KQkJTWluZHJheSBEUyBVU0EsIEluYy4KKzAwQTAzNyAgICAgKGJhc2UgMTYpCQlNaW5kcmF5IERTIFVTQSwgSW5jLgorCQkJCTgwMCBNYWNhcnRodXIgQmx2ZC4KKwkJCQlNYWh3YWggTkogMDc0MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTM4ICAgKGhleCkJCUVNQUlMIEVMRUNUUk9OSUNTCiswMEEwMzggICAgIChiYXNlIDE2KQkJRU1BSUwgRUxFQ1RST05JQ1MKKwkJCQlQLk8uIEJPWCAxNTQKKwkJCQlNT09ST09MQkFSSywgMzEzOCAgCisJCQkJQVVTVFJBTElBCisKKzAwLUEwLTM5ICAgKGhleCkJCVJPU1MgVEVDSE5PTE9HWSwgSU5DLgorMDBBMDM5ICAgICAoYmFzZSAxNikJCVJPU1MgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTUzMTYgSFdZIDI5MCBXRVNUIC0gU1RFLiAjNTAwCisJCQkJQVVTVElOIFRYIDc4NzM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0zQSAgIChoZXgpCQlLVUJPVEVLIENPUlBPUkFUSU9OCiswMEEwM0EgICAgIChiYXNlIDE2KQkJS1VCT1RFSyBDT1JQT1JBVElPTgorCQkJCTU2IE5JU0hJQUtFVEEtQ0hPLCBISUdBU0hJS1VKTworCQkJCU1JTkFNSS1LVSwgS1lPVE8gNjAxCisJCQkJSkFQQU4KKworMDAtQTAtM0IgICAoaGV4KQkJVE9TSElOIEVMRUNUUklDIENPLiwgTFRELgorMDBBMDNCICAgICAoYmFzZSAxNikJCVRPU0hJTiBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQkzRkwuIFJJVkVSLVNUT05FIDNSRC4gQkxHLjIzNAorCQkJCU1JWk9OT0tVQ0hJLCBUQUtBVFNVLUtWLCBLQVdBU0FLSS1TSEksCisJCQkJMjEzIEpBUEFOCisJCQkJSkFQQU4KKworMDAtQTAtM0MgICAoaGV4KQkJRUcmRyBOVUNMRUFSIElOU1RSVU1FTlRTCiswMEEwM0MgICAgIChiYXNlIDE2KQkJRUcmRyBOVUNMRUFSIElOU1RSVU1FTlRTCisJCQkJMTAwIE1JRExBTkQgUk9BRAorCQkJCU9BSyBSSURHRSBUTiAzNzgzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtM0QgICAoaGV4KQkJT1BUTy0yMgorMDBBMDNEICAgICAoYmFzZSAxNikJCU9QVE8tMjIKKwkJCQk0MzA0NCBCVVNJTkVTUyBQQVJLIERSLgorCQkJCVRFTUVDVUxBIENBIDkyNTkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC0zRSAgIChoZXgpCQlBVE0gRk9SVU0KKzAwQTAzRSAgICAgKGJhc2UgMTYpCQlBVE0gRk9SVU0KKwkJCQlXT1JMRFdJREUgSEVBRFFVQVJURVJTCisJCQkJMzAzIFZJTlRBR0UgUEFSSyBEUklWRQorCQkJCUZPU1RFUiBDSVRZIENBIDk0NDA0LTExMzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTNGICAgKGhleCkJCUNPTVBVVEVSIFNPQ0lFVFkgTUlDUk9QUk9DRVNTT1IgJiBNSUNST1BST0NFU1NPUiBTVEFOREFSRFMgQworMDBBMDNGICAgICAoYmFzZSAxNikJCUNPTVBVVEVSIFNPQ0lFVFkgTUlDUk9QUk9DRVNTT1IgJiBNSUNST1BST0NFU1NPUiBTVEFOREFSRFMgQworCQkJCSUgQVBQTEUgQ09NUFVURVIsIElOQy4KKwkJCQkgMSBJTkZJTklURSBMT09QLAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNDAgICAoaGV4KQkJQVBQTEUgQ09NUFVURVIKKzAwQTA0MCAgICAgKGJhc2UgMTYpCQlBUFBMRSBDT01QVVRFUgorCQkJCTIwNjUwIFZBTExFWSBHUkVFTiBEUklWRQorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNDEgICAoaGV4KQkJSU5GSUNPTgorMDBBMDQxICAgICAoYmFzZSAxNikJCUlORklDT04KKwkJCQkyIFRlY2hub2xvZ3kgUGxhY2UKKwkJCQlFLiBTeXJhY3VzZSBOWSAxMzA1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNDIgICAoaGV4KQkJU1BVUiBQUk9EVUNUUyBDT1JQLgorMDBBMDQyICAgICAoYmFzZSAxNikJCVNQVVIgUFJPRFVDVFMgQ09SUC4KKwkJCQk5Mjg4IFcuIEVNRVJBTEQgU1RSRUVUCisJCQkJQk9JU0UgSUQgODM3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTQzICAgKGhleCkJCUFNRVJJQ0FOIFRFQ0hOT0xPR1kgTEFCUywgSU5DLgorMDBBMDQzICAgICAoYmFzZSAxNikJCUFNRVJJQ0FOIFRFQ0hOT0xPR1kgTEFCUywgSU5DLgorCQkJCTExNSBXRVNUIDNSRCBTVFJFRVQKKwkJCQlMT1dFUiBMRVZFTAorCQkJCVNURVZFTlNWSUxMRSBNVCA1OTg3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNDQgICAoaGV4KQkJTlRUIElUIENPLiwgTFRELgorMDBBMDQ0ICAgICAoYmFzZSAxNikJCU5UVCBJVCBDTy4sIExURC4KKwkJCQkKKwkJCQlLQU5OQUktV0lTRSBCTERHLiwgMi05LTEgRlVST1UtQ0hPLCBOQUtBCisJCQkJMjMxIAorCQkJCUpBUEFOCisKKzAwLUEwLTQ1ICAgKGhleCkJCVBIT0VOSVggQ09OVEFDVCBHTUJIICYgQ08uCiswMEEwNDUgICAgIChiYXNlIDE2KQkJUEhPRU5JWCBDT05UQUNUIEdNQkggJiBDTy4KKwkJCQlQT1NURkFDSCAxMzQxCisJCQkJRC0zMjgxOSBCTE9NQkVSRworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUEwLTQ2ICAgKGhleCkJCVNDSVRFWCBDT1JQLiBMVEQuCiswMEEwNDYgICAgIChiYXNlIDE2KQkJU0NJVEVYIENPUlAuIExURC4KKwkJCQlQLk8uQk9YIDMzMAorCQkJCUhFUlpMSUEgQiA0NjEwMworCQkJCUlTUkFFTAorCiswMC1BMC00NyAgIChoZXgpCQlJTlRFR1JBVEVEIEZJVE5FU1MgQ09SUC4KKzAwQTA0NyAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIEZJVE5FU1MgQ09SUC4KKwkJCQkyNiA2VEggU1RSRUVUCisJCQkJU1RBTUZPUkQgQ1QgMDY5MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTQ4ICAgKGhleCkJCVFVRVNURUNILCBMVEQuCiswMEEwNDggICAgIChiYXNlIDE2KQkJUVVFU1RFQ0gsIExURC4KKwkJCQlFQVNUSEVBVEggQVZFTlVFCisJCQkJV09LSU5HSEFNCisJCQkJQkVSS1MsIFJHMTEgMlBQICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC00OSAgIChoZXgpCQlESUdJVEVDSCBJTkRVU1RSSUVTLCBJTkMuCiswMEEwNDkgICAgIChiYXNlIDE2KQkJRElHSVRFQ0ggSU5EVVNUUklFUywgSU5DLgorCQkJCVBPIEJPWCAyMjY3CisJCQkJNTUgS0VOT1NJQSBBVkVOVUUKKwkJCQlEQU5CVVJZIENUIDA2ODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC00QSAgIChoZXgpCQlOSVNTSElOIEVMRUNUUklDIENPLiwgTFRELgorMDBBMDRBICAgICAoYmFzZSAxNikJCU5JU1NISU4gRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJNSwgTUVPVE9HT1NISSwgTVVUU1VTSEksCisJCQkJU0hJS0FUU1UtQ1lPLCBOSVNISUtBU1VHQUksCisJCQkJQUlDSEkgNDgxICAKKwkJCQlKQVBBTgorCiswMC1BMC00QiAgIChoZXgpCQlURkwgTEFOIElOQy4KKzAwQTA0QiAgICAgKGJhc2UgMTYpCQlURkwgTEFOIElOQy4KKwkJCQk5RiwgTk8uIDQ5OSBDSFVORyBDSEVORyBST0FECisJCQkJU0hJSC1MSU4gRElTVFJJQ1QsIFRBSVBFSQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1BMC00QyAgIChoZXgpCQlJTk5PVkFUSVZFIFNZU1RFTVMgJiBURUNITk9MT0dJRVMsIElOQy4KKzAwQTA0QyAgICAgKGJhc2UgMTYpCQlJTk5PVkFUSVZFIFNZU1RFTVMgJiBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk0ODUxMSBXQVJNIFNQUklOR1MgQkxWRC4KKwkJCQlTVUlURSAgIyAyMTFDCisJCQkJRlJFTU9OVCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNEQgICAoaGV4KQkJRURBIElOU1RSVU1FTlRTLCBJTkMuCiswMEEwNEQgICAgIChiYXNlIDE2KQkJRURBIElOU1RSVU1FTlRTLCBJTkMuCisJCQkJNCBUSE9STkNMSUZGRSBQQVJLIERSSVZFCisJCQkJVE9ST05UTywgT05UQVJJTworCQkJCU00SCAxSDEKKwkJCQlDQU5BREEKKworMDAtQTAtNEUgICAoaGV4KQkJVk9FTEtFUiBURUNITk9MT0dJRVMsIElOQy4KKzAwQTA0RSAgICAgKGJhc2UgMTYpCQlWT0VMS0VSIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTIyIE5FVyBCT1NUT04gQ09VUlQKKwkJCQlEQU5WSUxMRSBDQSA5NDUyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNEYgICAoaGV4KQkJQU1FUklURUMgQ09SUC4KKzAwQTA0RiAgICAgKGJhc2UgMTYpCQlBTUVSSVRFQyBDT1JQLgorCQkJCTc2MCBBUlJPVyBHUkFORCBDSVJDTEUKKwkJCQlDT1ZJTkEgQ0EgOTE3MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTUwICAgKGhleCkJCUNZUFJFU1MgU0VNSUNPTkRVQ1RPUgorMDBBMDUwICAgICAoYmFzZSAxNikJCUNZUFJFU1MgU0VNSUNPTkRVQ1RPUgorCQkJCTM5MDEgTk9SVEggRklSU1QgU1RSRUVUCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTUxICAgKGhleCkJCUFOR0lBIENPTU1VTklDQVRJT05TLiBJTkMuCiswMEEwNTEgICAgIChiYXNlIDE2KQkJQU5HSUEgQ09NTVVOSUNBVElPTlMuIElOQy4KKwkJCQk0NDEgRUFTVCBCQVkgQkxWRC4KKwkJCQlQUk9WTyBVVEFIIDg0NjA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC01MiAgIChoZXgpCQlTVEFOSUxJVEUgRUxFQ1RST05JQ1MgUFRZLiBMVEQKKzAwQTA1MiAgICAgKGJhc2UgMTYpCQlTVEFOSUxJVEUgRUxFQ1RST05JQ1MgUFRZLiBMVEQKKwkJCQk0MjQsIExBTkUgQ09WRSBST0FECisJCQkJTk9SVEggUllERSBOU1cgMjExMyAgCisJCQkJQVVTVFJBTElBCisKKzAwLUEwLTUzICAgKGhleCkJCUNPTVBBQ1QgREVWSUNFUywgSU5DLgorMDBBMDUzICAgICAoYmFzZSAxNikJCUNPTVBBQ1QgREVWSUNFUywgSU5DLgorCQkJCTE2Nzk1IExBUksgQVZFTlVFCisJCQkJTE9TIEdBVE9TIENBIDk1MDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC01NCAgIChoZXgpCQlQUklWQVRFCiswMEEwNTQgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzAwLUEwLTU1ICAgKGhleCkJCURhdGEgRGV2aWNlIENvcnBvcmF0aW9uCiswMEEwNTUgICAgIChiYXNlIDE2KQkJRGF0YSBEZXZpY2UgQ29ycG9yYXRpb24KKwkJCQkxMDUgV2lsYnVyIFBsYWNlCisJCQkJQm9oZW1pYSBOWSAxMTcxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNTYgICAoaGV4KQkJTUlDUk9QUk9TUworMDBBMDU2ICAgICAoYmFzZSAxNikJCU1JQ1JPUFJPU1MKKwkJCQkzMywgUlVFIEdBTlRPSVMKKwkJCQk1OTAwMCBMSUxMRSAgCisJCQkJRlJBTkNFCisKKzAwLUEwLTU3ICAgKGhleCkJCUxBTkNPTSBTeXN0ZW1zIEdtYkgKKzAwQTA1NyAgICAgKGJhc2UgMTYpCQlMQU5DT00gU3lzdGVtcyBHbWJICisJCQkJQWRlbmF1ZXIgU3RyLjIwIC9CMgorCQkJCUQtNTIwNzAgQUFDSEVOCisJCQkJV8O8cnNlbGVuICA1MjE0NgorCQkJCUdFUk1BTlkKKworMDAtQTAtNTggICAoaGV4KQkJR0xPUlksIExURC4KKzAwQTA1OCAgICAgKGJhc2UgMTYpCQlHTE9SWSwgTFRELgorCQkJCTEtMy0xIFNISU1PVEVOTywgSElNRUpJCisJCQkJSFlPR08gUFJFRi4gNjcwICAKKwkJCQlKQVBBTgorCiswMC1BMC01OSAgIChoZXgpCQlIQU1JTFRPTiBIQUxMTUFSSworMDBBMDU5ICAgICAoYmFzZSAxNikJCUhBTUlMVE9OIEhBTExNQVJLCisJCQkJMjEwNSBMVU5EWSBBVkVOVUUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNUEgICAoaGV4KQkJS09GQVggSU1BR0UgUFJPRFVDVFMKKzAwQTA1QSAgICAgKGJhc2UgMTYpCQlLT0ZBWCBJTUFHRSBQUk9EVUNUUworCQkJCTMgSkVOTkVSIFNUUkVFVAorCQkJCUlSVklORSBDQSA5MjcxOC0zODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC01QiAgIChoZXgpCQlNQVJRVUlQLCBJTkMuCiswMEEwNUIgICAgIChiYXNlIDE2KQkJTUFSUVVJUCwgSU5DLgorCQkJCTEyNDUgRS4gV0FTSElOR1RPTiBBVkUuCisJCQkJTUFESVNPTiBXSSA1MzcwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNUMgICAoaGV4KQkJSU5WRU5UT1JZIENPTlZFUlNJT04sIElOQy4vCiswMEEwNUMgICAgIChiYXNlIDE2KQkJSU5WRU5UT1JZIENPTlZFUlNJT04sIElOQy4vCisJCQkJTkVLT1RFQ0ggRElWSVNJT04KKwkJCQkxMDIgVElERSBNSUxMIFJPQUQgLVNVSVRFICMgNgorCQkJCUhBTVBUT04gTkggMDM4NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTVEICAgKGhleCkJCUNTIENPTVBVVEVSIFNZU1RFTUUgR21iSAorMDBBMDVEICAgICAoYmFzZSAxNikJCUNTIENPTVBVVEVSIFNZU1RFTUUgR21iSAorCQkJCUlTQVJTVFJBU1NFIDMsCisJCQkJODIwNjUgQkFJRVJCUlVOTiAgCisJCQkJR0VSTUFOWQorCiswMC1BMC01RSAgIChoZXgpCQlNWVJJQUQgTE9HSUMgSU5DLgorMDBBMDVFICAgICAoYmFzZSAxNikJCU1ZUklBRCBMT0dJQyBJTkMuCisJCQkJMTEwOSBTUFJJTkcgU1RSRUVUCisJCQkJU0lMVkVSIFNQUklORyBNRCAyMDkxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNUYgICAoaGV4KQkJQlRHIEVsZWN0cm9uaWNzIERlc2lnbiBCVgorMDBBMDVGICAgICAoYmFzZSAxNikJCUJURyBFbGVjdHJvbmljcyBEZXNpZ24gQlYKKwkJCQlQLk8uIEJveCAxNTQzCisJCQkJMzI2MAorCQkJCUJBIE91ZCBCZWlqZXJsYW5kICAKKwkJCQlORVRIRVJMQU5EUworCiswMC1BMC02MCAgIChoZXgpCQlBQ0VSIFBFUklQSEVSQUxTLCBJTkMuCiswMEEwNjAgICAgIChiYXNlIDE2KQkJQUNFUiBQRVJJUEhFUkFMUywgSU5DLgorCQkJCTlGLCAxMzUgQ0hJQU4gS1VPIE4uIFJELiBTRUMgMgorCQkJCVRBSVBFSSwgIDEwNDc5CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1BMC02MSAgIChoZXgpCQlQVVJJVEFOIEJFTk5FVFQKKzAwQTA2MSAgICAgKGJhc2UgMTYpCQlQVVJJVEFOIEJFTk5FVFQKKwkJCQkyMjAwIEZBUkFEQVkgQVZFTlVFCisJCQkJQ0FSTFNCQUQgQ0EgOTIwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTYyICAgKGhleCkJCUFFUyBQUk9EQVRBCiswMEEwNjIgICAgIChiYXNlIDE2KQkJQUVTIFBST0RBVEEKKwkJCQkyNDkgQkFMQ0FUVEEgUk9BRAorCQkJCUJBTENBVFRBCisJCQkJV0VTVEVSTiBBVVNUUkFMSUEgNjAyMQorCQkJCUFVU1RSQUxJQQorCiswMC1BMC02MyAgIChoZXgpCQlKUkwgU1lTVEVNUywgSU5DLgorMDBBMDYzICAgICAoYmFzZSAxNikJCUpSTCBTWVNURU1TLCBJTkMuCisJCQkJODMwNSBIV1kgNzEgV0VTVAorCQkJCUFVU1RJTiBUWCA3ODczNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNjQgICAoaGV4KQkJS1ZCL0FOQUxFQ1QKKzAwQTA2NCAgICAgKGJhc2UgMTYpCQlLVkIvQU5BTEVDVAorCQkJCTk0MjAgSkVST05JTU8gUk9BRAorCQkJCUlSVklORSBDQSA5MjcxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNjUgICAoaGV4KQkJU3ltYW50ZWMgQ29ycG9yYXRpb24KKzAwQTA2NSAgICAgKGJhc2UgMTYpCQlTeW1hbnRlYyBDb3Jwb3JhdGlvbgorCQkJCTIwMzMwIFN0ZXZlbnMgQ3JlZWsgQmx2ZC4KKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTY2ICAgKGhleCkJCUlTQSBDTy4sIExURC4KKzAwQTA2NiAgICAgKGJhc2UgMTYpCQlJU0EgQ08uLCBMVEQuCisJCQkJU0hJTkpVS1UgTEFNQkRBWCBCTERHLiA1Ri4sCisJCQkJMi00LTEyIE9LVUJPLCBTSElOSlVLVS1LVSBUT0tZTworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQTAtNjcgICAoaGV4KQkJTkVUV09SSyBTRVJWSUNFUyBHUk9VUAorMDBBMDY3ICAgICAoYmFzZSAxNikJCU5FVFdPUksgU0VSVklDRVMgR1JPVVAKKwkJCQkzNDIxIENPTU1JU1NJT04gQ09VUlQtU1RFICMyMDIKKwkJCQlXT09EQlJJREdFIFZBIDIyMTkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC02OCAgIChoZXgpCQlCSFAgTElNSVRFRAorMDBBMDY4ICAgICAoYmFzZSAxNikJCUJIUCBMSU1JVEVECisJCQkJR1BPIEJPWCA4NkEKKwkJCQlNRUxCT1VSTkUgMzAwMSBWSUNUT1JJQQorCQkJCUFVU1RSQUxJQQorCiswMC1BMC02OSAgIChoZXgpCQlTeW1tZXRyaWNvbSwgSW5jLgorMDBBMDY5ICAgICAoYmFzZSAxNikJCVN5bW1ldHJpY29tLCBJbmMuCisJCQkJMzc1MCBXZXN0d2luZCBCbHZkLgorCQkJCVNhbnRhIFJvc2EgQ0EgOTU0MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTZBICAgKGhleCkJCVZlcmlsaW5rIENvcnBvcmF0aW9uCiswMEEwNkEgICAgIChiYXNlIDE2KQkJVmVyaWxpbmsgQ29ycG9yYXRpb24KKwkJCQkxMjcgSmV0cGxleCBDaXJjbGUKKwkJCQlNYWRpc29uIEFMIDM1NzU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC02QiAgIChoZXgpCQlETVMgRE9SU0NIIE1JS1JPU1lTVEVNIEdNQkgKKzAwQTA2QiAgICAgKGJhc2UgMTYpCQlETVMgRE9SU0NIIE1JS1JPU1lTVEVNIEdNQkgKKwkJCQlIT0xNTFVFQ0sgMTMtMTUKKwkJCQlELTI0OTcyIFNURUlOQkVSUUtJUkNIRQorCQkJCUdFUk1BTlkKKworMDAtQTAtNkMgICAoaGV4KQkJU0hJTkRFTkdFTiBFTEVDVFJJQyBNRkcuIENPLiwgTFRELgorMDBBMDZDICAgICAoYmFzZSAxNikJCVNISU5ERU5HRU4gRUxFQ1RSSUMgTUZHLiBDTy4sIExURC4KKwkJCQkxMC0xMywgTUlOQU1JLUNITywgSEFOTk9VLUNJVFkKKwkJCQlTQUlUQU1BIDM1NyAgCisJCQkJSk9SREFOCisKKzAwLUEwLTZEICAgKGhleCkJCU1BTk5FU01BTk4gVEFMTFkgQ09SUE9SQVRJT04KKzAwQTA2RCAgICAgKGJhc2UgMTYpCQlNQU5ORVNNQU5OIFRBTExZIENPUlBPUkFUSU9OCisJCQkJUC5PLiBCT1ggOTcwMTgKKwkJCQlLRU5UIFdBIDk4MDY0LTk3MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTZFICAgKGhleCkJCUFVU1RST04sIElOQy4KKzAwQTA2RSAgICAgKGJhc2UgMTYpCQlBVVNUUk9OLCBJTkMuCisJCQkJUC5PLiBCT1ggMTQ3NjYKKwkJCQlBVVNUSU4gVFggNzg3NjEtNDc2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNkYgICAoaGV4KQkJVEhFIEFQUENPTiBHUk9VUCwgSU5DLgorMDBBMDZGICAgICAoYmFzZSAxNikJCVRIRSBBUFBDT04gR1JPVVAsIElOQy4KKwkJCQkyMyBSSUNITU9ORCBTVFJFRVQKKwkJCQlST0NIRVNURVIgTlkgMTQ2MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTcwICAgKGhleCkJCUNPQVNUQ09NCiswMEEwNzAgICAgIChiYXNlIDE2KQkJQ09BU1RDT00KKwkJCQkxMTUxIEhBUkJPUiBCQVkgUEFSS1dBWQorCQkJCUFMQU1FREEgQ0EgOTQ1MDItNjUxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNzEgICAoaGV4KQkJVklERU8gTE9UVEVSWSBURUNITk9MT0dJRVMsSU5DCiswMEEwNzEgICAgIChiYXNlIDE2KQkJVklERU8gTE9UVEVSWSBURUNITk9MT0dJRVMsSU5DCisJCQkJMjMxMSBTT1VUSCA3VEggQVZFTlVFCisJCQkJQk9aRU1BTiBNVCA1OTcxNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNzIgICAoaGV4KQkJT1ZBVElPTiBTWVNURU1TIExURC4KKzAwQTA3MiAgICAgKGJhc2UgMTYpCQlPVkFUSU9OIFNZU1RFTVMgTFRELgorCQkJCUdSRUFUIEhBU0VMRVkgVFJBRC4gRVNULgorCQkJCUdSRUFUIEhBU0VMRVksICBPWEZPUkRTSElSRSBPWDkgN1BGCisJCQkJRU5HTEFORCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC03MyAgIChoZXgpCQlDT00yMSwgSU5DLgorMDBBMDczICAgICAoYmFzZSAxNikJCUNPTTIxLCBJTkMuCisJCQkJMjExMyBMQU5ESU5HUyBEUklWRQorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTc0ICAgKGhleCkJCVBFUkNFUFRJT04gVEVDSE5PTE9HWQorMDBBMDc0ICAgICAoYmFzZSAxNikJCVBFUkNFUFRJT04gVEVDSE5PTE9HWQorCQkJCTQwIFNIQVdNVVQgUk9BRAorCQkJCUNBTlRPTiBNQSAwMjAyMS0xNDA5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC03NSAgIChoZXgpCQlNSUNST04gVEVDSE5PTE9HWSwgSU5DLgorMDBBMDc1ICAgICAoYmFzZSAxNikJCU1JQ1JPTiBURUNITk9MT0dZLCBJTkMuCisJCQkJODAwMCBTLiBGZWRlcmFsIFdheQorCQkJCVAuTy4gQm94IDYKKwkJCQlCb2lzZSBJRCA4MzcwNy0wMDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC03NiAgIChoZXgpCQlDQVJEV0FSRSBMQUIsIElOQy4KKzAwQTA3NiAgICAgKGJhc2UgMTYpCQlDQVJEV0FSRSBMQUIsIElOQy4KKwkJCQkyODUgU09CUkFOVEUgV0FZLCBTVEUuCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC03NyAgIChoZXgpCQlGVUpJVFNVIE5FWElPTiwgSU5DLgorMDBBMDc3ICAgICAoYmFzZSAxNikJCUZVSklUU1UgTkVYSU9OLCBJTkMuCisJCQkJMjg5IEdSRUFUIFJPQUQKKwkJCQlBQ1RPTiBNQSAwMTcyMC00NzM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC03OCAgIChoZXgpCQlNYXJjb25pIENvbW11bmljYXRpb25zCiswMEEwNzggICAgIChiYXNlIDE2KQkJTWFyY29uaSBDb21tdW5pY2F0aW9ucworCQkJCTEwMDAgRm9yZSBEcml2ZQorCQkJCVdhcnJlbmRhbGUgUEEgMTUwODYtNzUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtNzkgICAoaGV4KQkJQUxQUyBFTEVDVFJJQyAoVVNBKSwgSU5DLgorMDBBMDc5ICAgICAoYmFzZSAxNikJCUFMUFMgRUxFQ1RSSUMgKFVTQSksIElOQy4KKwkJCQkzNTUzIE5PUlRIIDFTVCBTVFJFRVQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtN0EgICAoaGV4KQkJQURWQU5DRUQgUEVSSVBIRVJBTFMgVEVDSE5PTE9HSUVTLCBJTkMuCiswMEEwN0EgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgUEVSSVBIRVJBTFMgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJCisJCQkJS09KSU1BIEJVSUxESU5HLCAxMDMxIEZVSklTQVdBCisJCQkJRlVKSVNBV0EtU0hJLCBLQU5BR0FXQS1LRU4gMjUxICAKKwkJCQlKQVBBTgorCiswMC1BMC03QiAgIChoZXgpCQlEQVdOIENPTVBVVEVSIElOQ09SUE9SQVRJT04KKzAwQTA3QiAgICAgKGJhc2UgMTYpCQlEQVdOIENPTVBVVEVSIElOQ09SUE9SQVRJT04KKwkJCQk2IEtFWFVFWVVBTiBTT1VUSCBST0FECisJCQkJWkhPTkcgR1VBTiBDVU4gQkVJSklORyAxMDAwODAKKwkJCQlDSElOQQorCiswMC1BMC03QyAgIChoZXgpCQlUT05ZQU5HIE5ZTE9OIENPLiwgTFRELgorMDBBMDdDICAgICAoYmFzZSAxNikJCVRPTllBTkcgTllMT04gQ08uLCBMVEQuCisJCQkJRUxFQ1RST05JQyBSRVNFQVJDSCBMQUIKKwkJCQkxODMsIEhPR0UtRE9ORywgRE9OR0FOLUdVCisJCQkJQU5ZQU5HLUNJVFksIEtZVU5HS0ktRE8gNDMwLTA4MCAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUEwLTdEICAgKGhleCkJCVNFRVEgVEVDSE5PTE9HWSwgSU5DLgorMDBBMDdEICAgICAoYmFzZSAxNikJCVNFRVEgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTQ3MTMxIEJBWVNJREUgUEFSS1dBWQorCQkJCUZSRU1PTlQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTdFICAgKGhleCkJCUFWSUQgVEVDSE5PTE9HWSwgSU5DLgorMDBBMDdFICAgICAoYmFzZSAxNikJCUFWSUQgVEVDSE5PTE9HWSwgSU5DLgorCQkJCU1FVFJPUE9MSVRBTiBURUNITk9MT0dZIFBBUksKKwkJCQlPTkUgUEFSSyBXRVNUCisJCQkJVEVXS1NCVVJZIE1BIDAxODc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC03RiAgIChoZXgpCQlHU00tU1lOVEVMLCBMVEQuCiswMEEwN0YgICAgIChiYXNlIDE2KQkJR1NNLVNZTlRFTCwgTFRELgorCQkJCVZJQ1RPUklBIFdPUktTLCBRVUVFTlMgTUlMTCBSRAorCQkJCUhVRERFUlNGSUVMRCBXRVNUIFlPUktTSElSRQorCQkJCUhEMSAzUEcgRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLTgwICAgKGhleCkJCVRhdHRpbGUgU1JMIAorMDBBMDgwICAgICAoYmFzZSAxNikJCVRhdHRpbGUgU1JMIAorCQkJCTQwMDAgRXhlY3V0aXZlIFBhcmt3YXkKKwkJCQlTdWl0ZSAyMDAKKwkJCQlTYW4gUmFtb24gQ0EgOTQ1ODMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTgxICAgKGhleCkJCUFMQ0FURUwgREFUQSBORVRXT1JLUworMDBBMDgxICAgICAoYmFzZSAxNikJCUFMQ0FURUwgREFUQSBORVRXT1JLUworCQkJCTEyNTAyIFNVTlJJU0UgVkFMTEVZIERSSVZFCisJCQkJUkVTVE9OIFZBIDIyMDk2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC04MiAgIChoZXgpCQlOS1QgRUxFS1RST05JSyBBL1MKKzAwQTA4MiAgICAgKGJhc2UgMTYpCQlOS1QgRUxFS1RST05JSyBBL1MKKwkJCQlOS1QgQUxMRSA4NQorCQkJCURLLTI2MDUgQlJPTkRCWQorCQkJCURFTk1BUksKKworMDAtQTAtODMgICAoaGV4KQkJQVNJTU1QSE9OWSBUVVJLRVkKKzAwQTA4MyAgICAgKGJhc2UgMTYpCQlBU0lNTVBIT05ZIFRVUktFWQorCQkJCUVMRUNUUk9OSUNTLCBMVEQuCisJCQkJIzE2MC4yNjAgLSA2NjUxIEVMTUJSSURHRSBXQVkgUklDSE1PTkQgQgorCQkJCVY3QyA0TjEKKwkJCQlDQU5BREEKKworMDAtQTAtODQgICAoaGV4KQkJRGF0YXBsZXggUHR5IEx0ZAorMDBBMDg0ICAgICAoYmFzZSAxNikJCURhdGFwbGV4IFB0eSBMdGQKKwkJCQlMZXZlbCAyLCA3MSBFcHBpbmcgUmQsCisJCQkJTk9SVEggIFJZREUgTlNXIDIxMTMKKwkJCQlBVVNUUkFMSUEKKworMDAtQTAtODUgICAoaGV4KQkJUFJJVkFURQorMDBBMDg1ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCiswMC1BMC04NiAgIChoZXgpCQlBTUJFUiBXQVZFIFNZU1RFTVMsIElOQy4KKzAwQTA4NiAgICAgKGJhc2UgMTYpCQlBTUJFUiBXQVZFIFNZU1RFTVMsIElOQy4KKwkJCQk0MDMgTUFTU0FDSFVTRVRUUyBBVkVOVUUKKwkJCQlTVUlURSAjMjAyCisJCQkJQUNUT04gTUEgMDE3MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTg3ICAgKGhleCkJCVphcmxpbmsgU2VtaWNvbmR1Y3RvciBMdGQuCiswMEEwODcgICAgIChiYXNlIDE2KQkJWmFybGluayBTZW1pY29uZHVjdG9yIEx0ZC4KKwkJCQlDaGVuZXkgTWFub3IsIFN3aW5kb24KKwkJCQlXaWx0c2hpcmUgU04yIDJRVyAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtODggICAoaGV4KQkJRVNTRU5USUFMIENPTU1VTklDQVRJT05TCiswMEEwODggICAgIChiYXNlIDE2KQkJRVNTRU5USUFMIENPTU1VTklDQVRJT05TCisJCQkJNDM3NCBBTEVYQU5ERVIgQkxWRC4gTkUtU1RFCisJCQkJQUxCVVFVRVJRVUUgTk0gODcxMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTg5ICAgKGhleCkJCVhQT0lOVCBURUNITk9MT0dJRVMsIElOQy4KKzAwQTA4OSAgICAgKGJhc2UgMTYpCQlYUE9JTlQgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJOTAyIENMSU5UIE1PT1JFIFJELi1TVEUjMTMyCisJCQkJQk9DQSBSQVRPTiBGTCAzMzQ4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOEEgICAoaGV4KQkJQlJPT0tUUk9VVCBURUNITk9MT0dZLCBJTkMuCiswMEEwOEEgICAgIChiYXNlIDE2KQkJQlJPT0tUUk9VVCBURUNITk9MT0dZLCBJTkMuCisJCQkJMTQ0IEdPVUxEIFNUUkVFVC0gU1VJVEUgIzIwMAorCQkJCU5FRURIQU0gTUEgMDIxOTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLThCICAgKGhleCkJCUFTVE9OIEVMRUNUUk9OSUMgREVTSUdOUyBMVEQuCiswMEEwOEIgICAgIChiYXNlIDE2KQkJQVNUT04gRUxFQ1RST05JQyBERVNJR05TIExURC4KKwkJCQkxMjMvMTI3IERFRVBDVVQgQlJJREdFIFJPQUQKKwkJCQlERUVQQ1VULCAgQ0FNQkVSTEVZIFNVUlJFWSwgR1UxNiA2U0QKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtOEMgICAoaGV4KQkJTXVsdGlNZWRpYSBMQU5zLCBJbmMuCiswMEEwOEMgICAgIChiYXNlIDE2KQkJTXVsdGlNZWRpYSBMQU5zLCBJbmMuCisJCQkJNTYwMCBFWEVDVVRJVkUgQ0VOVEVSIERSSVZFCisJCQkJU1VJVEUgIzMxMgorCQkJCUNIQVJMT1RURSBOQyAyODIxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOEQgICAoaGV4KQkJSkFDT01PIENPUlBPUkFUSU9OCiswMEEwOEQgICAgIChiYXNlIDE2KQkJSkFDT01PIENPUlBPUkFUSU9OCisJCQkJMjY5MDAgRS4gUElOSyBISUxMIFJPQUQKKwkJCQlJTkRFUEVOREVOQ0UgTU8gNjQwNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLThFICAgKGhleCkJCUNoZWNrIFBvaW50IFNvZnR3YXJlIFRlY2hub2xvZ2llcworMDBBMDhFICAgICAoYmFzZSAxNikJCUNoZWNrIFBvaW50IFNvZnR3YXJlIFRlY2hub2xvZ2llcworCQkJCTgzMzMgUmlkZ2Vwb2ludCBEci4KKwkJCQlTdWl0ZSAxNTAKKwkJCQlJcnZpbmcgVFggNzUwNjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLThGICAgKGhleCkJCURFU0tORVQgU1lTVEVNUywgSU5DLgorMDBBMDhGICAgICAoYmFzZSAxNikJCURFU0tORVQgU1lTVEVNUywgSU5DLgorCQkJCTgwIEJVU0lORVNTIFBBUksgRFJJVkUKKwkJCQlBUk1PTksgTlkgMTA1MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTkwICAgKGhleCkJCVRpbWVTdGVwIENvcnBvcmF0aW9uCiswMEEwOTAgICAgIChiYXNlIDE2KQkJVGltZVN0ZXAgQ29ycG9yYXRpb24KKwkJCQkzNTkgVEVSUlkgRk9YIERSSVZFCisJCQkJS0FOQVRBLCBPTlRBUklPIEsySyAyRTcgIAorCQkJCUNBTkFEQQorCiswMC1BMC05MSAgIChoZXgpCQlBUFBMSUNPTSBJTlRFUk5BVElPTkFMCiswMEEwOTEgICAgIChiYXNlIDE2KQkJQVBQTElDT00gSU5URVJOQVRJT05BTAorCQkJCTQzLCBSVUUgTUFaQUdSQU4KKwkJCQk3NjMyMCBDQVVERUJFQy1MRVMtRUxCRVVGCisJCQkJRlJBTkNFCisKKzAwLUEwLTkyICAgKGhleCkJCUguIEJPTExNQU5OIE1BTlVGQUNUVVJFUlMsIExURAorMDBBMDkyICAgICAoYmFzZSAxNikJCUguIEJPTExNQU5OIE1BTlVGQUNUVVJFUlMsIExURAorCQkJCTI2IFZJQ1RPUklBIFdBWQorCQkJCUJVUkdFU1MgSElMTCBXLiBTVVNTRVggUkggMTUgOU5GCisJCQkJRU5HTEFORCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC05MyAgIChoZXgpCQlCL0UgQUVST1NQQUNFLCBJbmMuCiswMEEwOTMgICAgIChiYXNlIDE2KQkJQi9FIEFFUk9TUEFDRSwgSW5jLgorCQkJCTE3NDgxIFJFRCBISUxMCisJCQkJSVJWSU5FIENBIDkyNzE0LTU2MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTk0ICAgKGhleCkJCUNPTVNBVCBDT1JQT1JBVElPTgorMDBBMDk0ICAgICAoYmFzZSAxNikJCUNPTVNBVCBDT1JQT1JBVElPTgorCQkJCTIyMzAwIENPTVNBVCBEUklWRQorCQkJCUNMQVJLU0JVUkcgTUQgMjA4NzEtOTQ3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOTUgICAoaGV4KQkJQUNBQ0lBIE5FVFdPUktTLCBJTkMuCiswMEEwOTUgICAgIChiYXNlIDE2KQkJQUNBQ0lBIE5FVFdPUktTLCBJTkMuCisJCQkJODMxIFdPQlVSTiBTVFJFRVQKKwkJCQlXSUxNSU5HVE9OIE1BIDAxODg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC05NiAgIChoZXgpCQlNSVRTVU1JIEVMRUNUUklDIENPLiwgTFRELgorMDBBMDk2ICAgICAoYmFzZSAxNikJCU1JVFNVTUkgRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJMi0xMS0yLCBUc3VydW1ha2kKKwkJCQlUYW1hLXNoaSBUb2t5byAyMDYtODU2NworCQkJCUpBUEFOCisKKzAwLUEwLTk3ICAgKGhleCkJCUpDIElORk9STUFUSU9OIFNZU1RFTVMKKzAwQTA5NyAgICAgKGJhc2UgMTYpCQlKQyBJTkZPUk1BVElPTiBTWVNURU1TCisJCQkJNDQ4NyBURUNITk9MT0dZIERSSVZFCisJCQkJRlJFTU9OVCBDQSA5NDUzOC02MzQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC05OCAgIChoZXgpCQlOZXRBcHAKKzAwQTA5OCAgICAgKGJhc2UgMTYpCQlOZXRBcHAKKwkJCQk0OTUgRWFzdCBKYXZhIERyaXZlCisJCQkJU3Vubnl2YWxlLCBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOTkgICAoaGV4KQkJSy1ORVQgTFRELgorMDBBMDk5ICAgICAoYmFzZSAxNikJCUstTkVUIExURC4KKwkJCQlTQURETEVSUyBIT1VTRQorCQkJCTEwMCBSRUFESU5HIFJELgorCQkJCVlBVEVMRVksIFNVUlJFWSBHVTE3IDdSWCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtOUEgICAoaGV4KQkJTklIT04gS09IREVOIEFNRVJJQ0EKKzAwQTA5QSAgICAgKGJhc2UgMTYpCQlOSUhPTiBLT0hERU4gQU1FUklDQQorCQkJCTI0NDYgRFVQT05UIERSSVZFCisJCQkJSVJWSU5FIENBIDkyNzE1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC05QiAgIChoZXgpCQlRUFNYIENPTU1VTklDQVRJT05TLCBMVEQuCiswMEEwOUIgICAgIChiYXNlIDE2KQkJUVBTWCBDT01NVU5JQ0FUSU9OUywgTFRELgorCQkJCTMzIFJJQ0hBUkRTT04gU1RSRUVUCisJCQkJV0VTVCBQRVJUSCA2MDA1CisJCQkJQVVTVFJBTElBCisKKzAwLUEwLTlDICAgKGhleCkJCVh5cGxleCwgSW5jLgorMDBBMDlDICAgICAoYmFzZSAxNikJCVh5cGxleCwgSW5jLgorCQkJCTI1IEZPU1RFUiBTVFJFRVQKKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTlEICAgKGhleCkJCUpPSE5BVEhPTiBGUkVFTUFOIFRFQ0hOT0xPR0lFUworMDBBMDlEICAgICAoYmFzZSAxNikJCUpPSE5BVEhPTiBGUkVFTUFOIFRFQ0hOT0xPR0lFUworCQkJCVAuTy4gQk9YIDg4MDExNAorCQkJCVNBTiBGUkFOQ0lTQ08gQ0EgOTQxODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLTlFICAgKGhleCkJCUlDVFYKKzAwQTA5RSAgICAgKGJhc2UgMTYpCQlJQ1RWCisJCQkJMTQ2MDAgV0lOQ0hFU1RFUiBCTFZELgorCQkJCUxPUyBHQVRPUyBDQSA5NTAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtOUYgICAoaGV4KQkJQ09NTVZJU0lPTiBDT1JQLgorMDBBMDlGICAgICAoYmFzZSAxNikJCUNPTU1WSVNJT04gQ09SUC4KKwkJCQk1MTAgTE9HVUUgQVZFLgorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUEwICAgKGhleCkJCUNPTVBBQ1QgREFUQSwgTFRELgorMDBBMEEwICAgICAoYmFzZSAxNikJCUNPTVBBQ1QgREFUQSwgTFRELgorCQkJCTU4IERJVFRPTiBXQUxLCisJCQkJQ0FNQlJJREdFIENCNSA4UUUgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLUExICAgKGhleCkJCUVQSUMgREFUQSBJTkMuCiswMEEwQTEgICAgIChiYXNlIDE2KQkJRVBJQyBEQVRBIElOQy4KKwkJCQk3MjgwIFJJVkVSIFJPQUQKKwkJCQlSSUNITU9ORCwgIEIuQy4KKwkJCQlDQU5BREEgVjZYIDFYNQorCQkJCUNBTkFEQQorCiswMC1BMC1BMiAgIChoZXgpCQlESUdJQ09NIFMuUC5BLgorMDBBMEEyICAgICAoYmFzZSAxNikJCURJR0lDT00gUy5QLkEuCisJCQkJVklBIFZPTFRBIDM5CisJCQkJMjEwMTAgQ0FSREFOTyBBTCBDQU1QTyAoVkEpCisJCQkJSVRBTFkKKworMDAtQTAtQTMgICAoaGV4KQkJUkVMSUFCTEUgUE9XRVIgTUVURVJTCiswMEEwQTMgICAgIChiYXNlIDE2KQkJUkVMSUFCTEUgUE9XRVIgTUVURVJTCisJCQkJNDAwIEJMT1NTT00gSElMTCBST0FECisJCQkJTE9TIEdBVE9TIENBIDk1MDMyLTQ1MTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUE0ICAgKGhleCkJCU1JQ1JPUyBTWVNURU1TLCBJTkMuCiswMEEwQTQgICAgIChiYXNlIDE2KQkJTUlDUk9TIFNZU1RFTVMsIElOQy4KKwkJCQkxMjAwMCBCQUxUSU1PUkUgQVZFTlVFCisJCQkJQkVMVFNWSUxMRSBNRCAyMDcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQTUgICAoaGV4KQkJVEVLTk9SIE1JQ1JPU1lTVEVNRSwgSU5DLgorMDBBMEE1ICAgICAoYmFzZSAxNikJCVRFS05PUiBNSUNST1NZU1RFTUUsIElOQy4KKwkJCQk2MTYgQ1VSRSBCT0lWSU4KKwkJCQlCT0lTQlJJQU5EIFFVRUJFQworCQkJCUo3RyAyQTcKKwkJCQlDQU5BREEKKworMDAtQTAtQTYgICAoaGV4KQkJTS5JLiBTWVNURU1TLCBLLksuCiswMEEwQTYgICAgIChiYXNlIDE2KQkJTS5JLiBTWVNURU1TLCBLLksuCisJCQkJMi03LTEyLTMwOCBTYXRzdWtpZ2Fva2EKKwkJCQlJa2VkYS1TaGkgT3Nha2EgNTYzLTAwMjkKKwkJCQlKQVBBTgorCiswMC1BMC1BNyAgIChoZXgpCQlWT1JBWCBDT1JQT1JBVElPTgorMDBBMEE3ICAgICAoYmFzZSAxNikJCVZPUkFYIENPUlBPUkFUSU9OCisJCQkJMTAzMSBFQVNUIERVQU5FIEFWRU5VRSwgU1RFIEgKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUE4ICAgKGhleCkJCVJFTkVYIENPUlBPUkFUSU9OCiswMEEwQTggICAgIChiYXNlIDE2KQkJUkVORVggQ09SUE9SQVRJT04KKwkJCQkyNzUwIEtJTExBUk5FWSBEUklWRQorCQkJCVdPT0RCUklER0UgVkEgMjIxOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUE5ICAgKGhleCkJCU5BVlRFTCBDT01NVU5JQ0FUSU9OUyBJTkMuCiswMEEwQTkgICAgIChiYXNlIDE2KQkJTkFWVEVMIENPTU1VTklDQVRJT05TIElOQy4KKwkJCQk1NSBSRU5GUkVXIERSSVZFCisJCQkJTUFSS0hBTSwgT05UQVJJTyBMM1IgOEgzICAKKwkJCQlDQU5BREEKKworMDAtQTAtQUEgICAoaGV4KQkJU1BBQ0VMQUJTIE1FRElDQUwKKzAwQTBBQSAgICAgKGJhc2UgMTYpCQlTUEFDRUxBQlMgTUVESUNBTAorCQkJCTUxNTAgMjIwIEF2ZSBTRQorCQkJCUlzc2FxdWFoIFdBIDk4MDI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1BQiAgIChoZXgpCQlORVRDUyBJTkZPUk1BVElPTlNURUNITklLIEdNQkgKKzAwQTBBQiAgICAgKGJhc2UgMTYpCQlORVRDUyBJTkZPUk1BVElPTlNURUNITklLIEdNQkgKKwkJCQlLQVRIQVJJTkVOU1RSQVNTRSAxNy0xOAorCQkJCUQtMTA3MTEgQkVSTElOLAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUEwLUFDICAgKGhleCkJCUdJTEFUIFNBVEVMTElURSBORVRXT1JLUywgTFRELgorMDBBMEFDICAgICAoYmFzZSAxNikJCUdJTEFUIFNBVEVMTElURSBORVRXT1JLUywgTFRELgorCQkJCTI0QSBIQUJBUlpFTCBTVFJFRVQKKwkJCQlURUwgQVZJViAgNjk3MTAKKwkJCQlJU1JBRUwKKworMDAtQTAtQUQgICAoaGV4KQkJTUFSQ09OSSBTUEEKKzAwQTBBRCAgICAgKGJhc2UgMTYpCQlNQVJDT05JIFNQQQorCQkJCVZJQSBORUdST05FLCAxQQorCQkJCTE2MTUzIEdFTk9WQSBDT1JOSUdMSUFOTyAgCisJCQkJSVRBTFkKKworMDAtQTAtQUUgICAoaGV4KQkJTlVDT00gU1lTVEVNUywgSU5DLgorMDBBMEFFICAgICAoYmFzZSAxNikJCU5VQ09NIFNZU1RFTVMsIElOQy4KKwkJCQk5Ri02LCBOTyA0LCBMQU5FCisJCQkJNjA5IENIVU5HIEhTSU4gUk9BRCwgU0VDLiA1LCBTQU4gQ0hVTkcgQworCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1BMC1BRiAgIChoZXgpCQlXTVMgSU5EVVNUUklFUworMDBBMEFGICAgICAoYmFzZSAxNikJCVdNUyBJTkRVU1RSSUVTCisJCQkJMzQwMSBOLiBDQUxJRk9STklBCisJCQkJQ0hJQ0FHTyBJTCA2MDYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQjAgICAoaGV4KQkJSS1PIERBVEEgREVWSUNFLCBJTkMuCiswMEEwQjAgICAgIChiYXNlIDE2KQkJSS1PIERBVEEgREVWSUNFLCBJTkMuCisJCQkJMjQtMSwgU0FLVVJBREEtTUFDSEkKKwkJCQlLQU5BWkFXQSwgSVNISUtBV0EgOTIwICAKKwkJCQlKQVBBTgorCiswMC1BMC1CMSAgIChoZXgpCQlGSVJTVCBWSVJUVUFMIENPUlBPUkFUSU9OCiswMEEwQjEgICAgIChiYXNlIDE2KQkJRklSU1QgVklSVFVBTCBDT1JQT1JBVElPTgorCQkJCTMzOTMgT0NUQVZJVVMgRFIuLVNURS4jIDEwMgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CMiAgIChoZXgpCQlTSElNQSBTRUlLSQorMDBBMEIyICAgICAoYmFzZSAxNikJCVNISU1BIFNFSUtJCisJCQkJODUsIFNBS0FUQSBXQUtBWUFNQS1DSVRZCisJCQkJV0FLQVlBTUEgNjQxCisJCQkJSkFQQU4KKworMDAtQTAtQjMgICAoaGV4KQkJWllLUk9OSVgKKzAwQTBCMyAgICAgKGJhc2UgMTYpCQlaWUtST05JWAorCQkJCTcyNDggU09VVEggVFVDU09OIFdBWQorCQkJCUVOR0xFV09PRCBDTyA4MDExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQjQgICAoaGV4KQkJVEVYQVMgTUlDUk9TWVNURU1TLCBJTkMuCiswMEEwQjQgICAgIChiYXNlIDE2KQkJVEVYQVMgTUlDUk9TWVNURU1TLCBJTkMuCisJCQkJNTk1OSBDT1JQT1JBVEUgRFJJVkUKKwkJCQlIT1VTVE9OIFRYIDc3MDM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CNSAgIChoZXgpCQkzSCBURUNITk9MT0dZCiswMEEwQjUgICAgIChiYXNlIDE2KQkJM0ggVEVDSE5PTE9HWQorCQkJCTMzNzUgU0NPVFQgQkxWRC4gIzMzNgorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CNiAgIChoZXgpCQlTQU5SSVRaIEFVVE9NQVRJT04gQ08uLCBMVEQuCiswMEEwQjYgICAgIChiYXNlIDE2KQkJU0FOUklUWiBBVVRPTUFUSU9OIENPLiwgTFRELgorCQkJCTQtMjEgTUlOQU1JIE5BUlVTRQorCQkJCU1BQ0hJREEgQ0lUWSBUT0tZTyAgMTk0CisJCQkJSkFQQU4KKworMDAtQTAtQjcgICAoaGV4KQkJQ09SREFOVCwgSU5DLgorMDBBMEI3ICAgICAoYmFzZSAxNikJCUNPUkRBTlQsIElOQy4KKwkJCQkxMTQwMCBDT01NRVJDRSBQQVJLIERSLgorCQkJCVJFU1RPTiBWQSAyMjA5MS0xNTA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1COCAgIChoZXgpCQlTWU1CSU9TIExPR0lDIElOQy4KKzAwQTBCOCAgICAgKGJhc2UgMTYpCQlTWU1CSU9TIExPR0lDIElOQy4KKwkJCQkyMDAxIERhbmZpZWxkIEN0LgorCQkJCUZvcnQgQ29sbGlucyBDTyA4MDUyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQjkgICAoaGV4KQkJRUFHTEUgVEVDSE5PTE9HWSwgSU5DLgorMDBBMEI5ICAgICAoYmFzZSAxNikJCUVBR0xFIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk2ODAwIE9SQU5HRVRIT1JQRSBBVkUuLCBVTklUIEEKKwkJCQlCVUVOQSBQQVJLIENBIDkwNjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CQSAgIChoZXgpCQlQQVRUT04gRUxFQ1RST05JQ1MgQ08uCiswMEEwQkEgICAgIChiYXNlIDE2KQkJUEFUVE9OIEVMRUNUUk9OSUNTIENPLgorCQkJCTc2MjIgUklDS0VOQkFDS0VSIERSSVZFCisJCQkJR0FJVEhFUlNCVVJHIE1EIDIwODc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1CQiAgIChoZXgpCQlISUxBTiBHTUJICiswMEEwQkIgICAgIChiYXNlIDE2KQkJSElMQU4gR01CSAorCQkJCUhBSUQtVU5ELU5FVS1TVFJBU1NFIDcKKwkJCQlELTc2MTMxIEtBUkxTUlVIRQorCQkJCUdFUk1BTlkKKworMDAtQTAtQkMgICAoaGV4KQkJVklBU0FULCBJTkNPUlBPUkFURUQKKzAwQTBCQyAgICAgKGJhc2UgMTYpCQlWSUFTQVQsIElOQ09SUE9SQVRFRAorCQkJCTYxNTUgRWwgQ2FtaW5vIFJlYWwKKwkJCQlDYXJsc2JhZCBDYSA5MjAwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQkQgICAoaGV4KQkJSS1URUNIIENPUlAuCiswMEEwQkQgICAgIChiYXNlIDE2KQkJSS1URUNIIENPUlAuCisJCQkJMTAyMDAgVkFMTEVZIFZJRVcgUk9BRAorCQkJCUVERU4gUFJBSVJJRSBNTiA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQkUgICAoaGV4KQkJSU5URUdSQVRFRCBDSVJDVUlUIFNZU1RFTVMsIElOQy4gQ09NTVVOSUNBVElPTlMgR1JPVVAKKzAwQTBCRSAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIENJUkNVSVQgU1lTVEVNUywgSU5DLiBDT01NVU5JQ0FUSU9OUyBHUk9VUAorCQkJCTEyNzEgUEFSS01PT1IgQVZFTlVFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjYtMzQ0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQkYgICAoaGV4KQkJV0lSRUxFU1MgREFUQSBHUk9VUCBNT1RPUk9MQQorMDBBMEJGICAgICAoYmFzZSAxNikJCVdJUkVMRVNTIERBVEEgR1JPVVAgTU9UT1JPTEEKKwkJCQkxMjAxIEUuIFdJTEVZIFJPQUQKKwkJCQlTQ0hBVU1CVVJHIElMIDYwMTczCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1DMCAgIChoZXgpCQlESUdJVEFMIExJTksgQ09SUC4KKzAwQTBDMCAgICAgKGJhc2UgMTYpCQlESUdJVEFMIExJTksgQ09SUC4KKwkJCQkyMTcgSFVNQk9MRFQgQ09VUlQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUMxICAgKGhleCkJCU9SVElWVVMgTUVESUNBTCBBQgorMDBBMEMxICAgICAoYmFzZSAxNikJCU9SVElWVVMgTUVESUNBTCBBQgorCQkJCUJPWCA1MTMKKwkJCQlTLTE4MzI1IFRBQlkKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtQTAtQzIgICAoaGV4KQkJUi5BLiBTWVNURU1TIENPLiwgTFRELgorMDBBMEMyICAgICAoYmFzZSAxNikJCVIuQS4gU1lTVEVNUyBDTy4sIExURC4KKwkJCQkxODUwLTMgSElST09LQU5PTVVSQQorCQkJCVNISU9KSVJJLVNISSwgTkFHQU1PIDM5OS0wNworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQTAtQzMgICAoaGV4KQkJVU5JQ09NUFVURVIgR01CSAorMDBBMEMzICAgICAoYmFzZSAxNikJCVVOSUNPTVBVVEVSIEdNQkgKKwkJCQlMSU1CVVJHRVIgU1RSQVNTRSA0OAorCQkJCUQtNjE0NzYgS1JPTkJFUkcgSS5ULlMuCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQTAtQzQgICAoaGV4KQkJQ1JJU1RJRSBFTEVDVFJPTklDUyBMVEQuCiswMEEwQzQgICAgIChiYXNlIDE2KQkJQ1JJU1RJRSBFTEVDVFJPTklDUyBMVEQuCisJCQkJQk9ORCdTIE1JTEwKKwkJCQlTVE9ORUhPVVNFCisJCQkJR0xPVUNFU1RFUlNISVJFIEdMMTAgM1JHICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC1DNSAgIChoZXgpCQlaWVhFTCBDT01NVU5JQ0FUSU9OCiswMEEwQzUgICAgIChiYXNlIDE2KQkJWllYRUwgQ09NTVVOSUNBVElPTgorCQkJCTJORCBGTFIuLCAgNTggUEFSSyBBVkVOVUUgSUkKKwkJCQlTQ0lFTkNFIEJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCUhTSU5DSFUgMzAwNzcgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQTAtQzYgICAoaGV4KQkJUVVBTENPTU0gSU5DT1JQT1JBVEVECiswMEEwQzYgICAgIChiYXNlIDE2KQkJUVVBTENPTU0gSU5DT1JQT1JBVEVECisJCQkJIDU3NzUgTW9yZWhvdXNlIERyCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1DNyAgIChoZXgpCQlUQURJUkFOIFRFTEVDT01NVU5JQ0FUSU9OUworMDBBMEM3ICAgICAoYmFzZSAxNikJCVRBRElSQU4gVEVMRUNPTU1VTklDQVRJT05TCisJCQkJUC5PLiBCT1ggNTAwCisJCQkJUEVUQUgtVElLVkEgNDkxMDQgIAorCQkJCUlTUkFFTAorCiswMC1BMC1DOCAgIChoZXgpCQlBRFRSQU4gSU5DLgorMDBBMEM4ICAgICAoYmFzZSAxNikJCUFEVFJBTiBJTkMuCisJCQkJOTAxIEVYUExPUkVSIEJMVkQuCisJCQkJSFVOVFNWSUxMRSBBTCAzNTgwNi0yODA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1DOSAgIChoZXgpCQlJTlRFTCBDT1JQT1JBVElPTiAtIEhGMS0wNgorMDBBMEM5ICAgICAoYmFzZSAxNikJCUlOVEVMIENPUlBPUkFUSU9OIC0gSEYxLTA2CisJCQkJNTIwMCBORSBFTEFNIFlPVU5HIFBBUktXQVkKKwkJCQlISUxMU0JPUk8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUNBICAgKGhleCkJCUZVSklUU1UgREVOU08gTFRELgorMDBBMENBICAgICAoYmFzZSAxNikJCUZVSklUU1UgREVOU08gTFRELgorCQkJCTMwNTUgT1JDSEFSRCBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1DQiAgIChoZXgpCQlBUksgVEVMRUNPTU1VTklDQVRJT05TLCBJTkMuCiswMEEwQ0IgICAgIChiYXNlIDE2KQkJQVJLIFRFTEVDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTEyNCBDQVJNRU4gTEFORS0tU1VJVEUKKwkJCQlTQU5UQSBNQVJJQSBDQSA5MzQ1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQ0MgICAoaGV4KQkJTElURS1PTiBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBBMENDICAgICAoYmFzZSAxNikJCUxJVEUtT04gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk3MjAgUy4gSElMTFZJRVcgRFJJVkUKKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtQ0QgICAoaGV4KQkJRFIuIEpPSEFOTkVTIEhFSURFTkhBSU4gR21iSAorMDBBMENEICAgICAoYmFzZSAxNikJCURSLiBKT0hBTk5FUyBIRUlERU5IQUlOIEdtYkgKKwkJCQlEUi4tSk9IQU5ORVMtSEVJREVOSEFJTiBTVFIuCisJCQkJODMzMDEgVFJBVU5SRVVUICAKKwkJCQlHRVJNQU5ZCisKKzAwLUEwLUNFICAgKGhleCkJCUVjZXNzYQorMDBBMENFICAgICAoYmFzZSAxNikJCUVjZXNzYQorCQkJCTI4MDAgQ2FtcHVzIERyaXZlIAorCQkJCVN1aXRlIDE0MAorCQkJCVBseW1vdXRoIE1OIDU1NDQxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1DRiAgIChoZXgpCQlTT1RBUywgSU5DLgorMDBBMENGICAgICAoYmFzZSAxNikJCVNPVEFTLCBJTkMuCisJCQkJMiBSRVNFQVJDSCBQTEFDRSwgU1RFLgorCQkJCVJPQ0tWSUxMRSBNRCAyMDg1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRDAgICAoaGV4KQkJVEVOIFggVEVDSE5PTE9HWSwgSU5DLgorMDBBMEQwICAgICAoYmFzZSAxNikJCVRFTiBYIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkxMzA5MSBQT05EIFNQUklOR1MgUk9BRCwgU3VpdGUgQi0yMDAKKwkJCQlBVVNUSU4gVFggNzg3MjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUQxICAgKGhleCkJCUlOVkVOVEVDIENPUlBPUkFUSU9OCiswMEEwRDEgICAgIChiYXNlIDE2KQkJSU5WRU5URUMgQ09SUE9SQVRJT04KKwkJCQlJTlZFTlRFQyBCVUlMRElORworCQkJCTY2IEhPVS1LQU5HIFNUUkVFVCBTSEktTElOIERJU1RSSUNULCBUQUkKKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQTAtRDIgICAoaGV4KQkJQUxMSUVEIFRFTEVTSVMgSU5URVJOQVRJT05BTCBDT1JQT1JBVElPTgorMDBBMEQyICAgICAoYmFzZSAxNikJCUFMTElFRCBURUxFU0lTIElOVEVSTkFUSU9OQUwgQ09SUE9SQVRJT04KKwkJCQk5NTAgS0lGRVIgUk9BRAorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRDMgICAoaGV4KQkJSU5TVEVNIENPTVBVVEVSIFNZU1RFTVMsIExURC4KKzAwQTBEMyAgICAgKGJhc2UgMTYpCQlJTlNURU0gQ09NUFVURVIgU1lTVEVNUywgTFRELgorCQkJCVdBTFRPTiBJTkRVU1RSSUFMIEVTVEFURQorCQkJCVNUT05FLCBTVEFGRk9SRFNISVJFIFNUMTUgT0xUCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtRDQgICAoaGV4KQkJUkFESU9MQU4sICBJTkMuCiswMEEwRDQgICAgIChiYXNlIDE2KQkJUkFESU9MQU4sICBJTkMuCisJCQkJNDU0IERFR1VJR05FIERSSVZFIC0gU1RFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1ENSAgIChoZXgpCQlTSUVSUkEgV0lSRUxFU1MgSU5DLgorMDBBMEQ1ICAgICAoYmFzZSAxNikJCVNJRVJSQSBXSVJFTEVTUyBJTkMuCisJCQkJMTM4MTEgV2lyZWxlc3MgV2F5CisJCQkJUklDSE1PTkQgQi5DLiBWNlYgM0E0CisJCQkJQ0FOQURBCisKKzAwLUEwLUQ2ICAgKGhleCkJCVNCRSwgSU5DLgorMDBBMEQ2ICAgICAoYmFzZSAxNikJCVNCRSwgSU5DLgorCQkJCTIzMDUgQ2FtaW5vIFJhbW9uCisJCQkJU0FOIFJBTU9OIENBIDk0NTgzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1ENyAgIChoZXgpCQlLQVNURU4gQ0hBU0UgQVBQTElFRCBSRVNFQVJDSAorMDBBMEQ3ICAgICAoYmFzZSAxNikJCUtBU1RFTiBDSEFTRSBBUFBMSUVEIFJFU0VBUkNICisJCQkJNTEwMCBPUkJJVE9SIERSSVZFCisJCQkJTUlTU0lTU0FVR0EsIE9OVEFSSU8KKwkJCQlMNFcgNFo0CisJCQkJQ0FOQURBCisKKzAwLUEwLUQ4ICAgKGhleCkJCVNQRUNUUkEgLSBURUsKKzAwQTBEOCAgICAgKGJhc2UgMTYpCQlTUEVDVFJBIC0gVEVLCisJCQkJT1VUR0FORyBMQU5FCisJCQkJUElDS0VSSU5HIE5PUlRIIFlPUktTSElSRQorCQkJCUVOR0xBTkQgWTAxOCBGSkEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC1EOSAgIChoZXgpCQlDT05WRVggQ09NUFVURVIgQ09SUE9SQVRJT04KKzAwQTBEOSAgICAgKGJhc2UgMTYpCQlDT05WRVggQ09NUFVURVIgQ09SUE9SQVRJT04KKwkJCQkzMDAwIFdBVEVSVklFVyBQQVJLV0FZCisJCQkJUC5PLiBCT1ggODMzODUxCisJCQkJUklDSEFSRFNPTiBUWCA3NTA4My0zODUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1EQSAgIChoZXgpCQlJTlRFR1JBVEVEIFNZU1RFTVMgVGVjaG5vbG9neSwgSW5jLgorMDBBMERBICAgICAoYmFzZSAxNikJCUlOVEVHUkFURUQgU1lTVEVNUyBUZWNobm9sb2d5LCBJbmMuCisJCQkJNDYwMSBQUkVTSURFTlRTIERSSVZFCisJCQkJU1VJVEUgIzIxMAorCQkJCUxBTkhBTSBNRCAyMDcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtREIgICAoaGV4KQkJRklTSEVSICYgUEFZS0VMIFBST0RVQ1RJT04KKzAwQTBEQiAgICAgKGJhc2UgMTYpCQlGSVNIRVIgJiBQQVlLRUwgUFJPRFVDVElPTgorCQkJCU1BQ0hJTkVSWSBMSU1JVEVECisJCQkJUC5PLiBCT1ggNTgtMjIzLCBHUkVFTk1PVU5UIEFVQ0tMQU5ECisJCQkJTkVXIFpFQUxBTkQKKworMDAtQTAtREMgICAoaGV4KQkJTy5OLiBFTEVDVFJPTklDIENPLiwgTFRELgorMDBBMERDICAgICAoYmFzZSAxNikJCU8uTi4gRUxFQ1RST05JQyBDTy4sIExURC4KKwkJCQkzLTIwLTI3LCBUQVJVTUkKKwkJCQlTVUlUQSwgT1NBS0EgNTY0ICAKKwkJCQlKQVBBTgorCiswMC1BMC1ERCAgIChoZXgpCQlBWk9OSVggQ09SUE9SQVRJT04KKzAwQTBERCAgICAgKGJhc2UgMTYpCQlBWk9OSVggQ09SUE9SQVRJT04KKwkJCQk5MDAgTUlERExFU0VYIFRVUk5QSUtFCisJCQkJQkxERy4KKwkJCQlCSUxMRVJJQ0EgTUEgMDE4MjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLURFICAgKGhleCkJCVlBTUFIQSBDT1JQT1JBVElPTgorMDBBMERFICAgICAoYmFzZSAxNikJCVlBTUFIQSBDT1JQT1JBVElPTgorCQkJCUVMRUNUUk9OSUMgREVWSUNFUyBESVZJU0lPTgorCQkJCTIwMyBNQVRTVU5PS0lKSU1BIFRPWU9PS0EtTVVSQSBJV0FUQS1HVU4KKwkJCQk0MzgtMDEKKwkJCQlKQVBBTgorCiswMC1BMC1ERiAgIChoZXgpCQlTVFMgVEVDSE5PTE9HSUVTLCBJTkMuCiswMEEwREYgICAgIChiYXNlIDE2KQkJU1RTIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTEzNzY1IFNULiBDSEFSTEVTIFJPQ0sgUkQuCisJCQkJU1VJVEUgIzEwOAorCQkJCUJSSURHRVRPTiBNTyA2MzA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRTAgICAoaGV4KQkJVEVOTllTT04gVEVDSE5PTE9HSUVTIFBUWSBMVEQKKzAwQTBFMCAgICAgKGJhc2UgMTYpCQlURU5OWVNPTiBURUNITk9MT0dJRVMgUFRZIExURAorCQkJCTE0IEJVU0lORVNTIFBBUksgRFJJVkUKKwkJCQlOT1RUSU5HIEhJTEwKKwkJCQlWSUNUT1JJQSAtIDMxNjggIAorCQkJCUFVU1RSQUxJQQorCiswMC1BMC1FMSAgIChoZXgpCQlXRVNUUE9SVCBSRVNFQVJDSCBBU1NPQ0lBVEVTLCBJTkMuCiswMEEwRTEgICAgIChiYXNlIDE2KQkJV0VTVFBPUlQgUkVTRUFSQ0ggQVNTT0NJQVRFUywgSU5DLgorCQkJCTYxMDIgQVJMSU5HVE9OCisJCQkJUkFZVE9XTiBNTyA2NDEzMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRTIgICAoaGV4KQkJS2Vpc29rdWdpa2VuIENvcnBvcmF0aW9uCiswMEEwRTIgICAgIChiYXNlIDE2KQkJS2Vpc29rdWdpa2VuIENvcnBvcmF0aW9uCisJCQkJMjAyMS01IEhvdXNoYWt1amkKKwkJCQlUYWthbmV6YXdhLW1hY2hpCisJCQkJU2hpb3lhLWd1biBUb2NoaWdpIDMyOS0xMjMzCisJCQkJSkFQQU4KKworMDAtQTAtRTMgICAoaGV4KQkJWEtMIFNZU1RFTVMgQ09SUC4KKzAwQTBFMyAgICAgKGJhc2UgMTYpCQlYS0wgU1lTVEVNUyBDT1JQLgorCQkJCTg0MjAgMTU0VEggQVZFLiBORQorCQkJCVJFRE1PTkQgV0EgOTgwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUU0ICAgKGhleCkJCU9QVElRVUVTVAorMDBBMEU0ICAgICAoYmFzZSAxNikJCU9QVElRVUVTVAorCQkJCTIwNDkwIEJVU0lORVNTIFBBUktXQVkKKwkJCQlXQUxOVVQgQ0EgOTE3ODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUU1ICAgKGhleCkJCU5IQyBDT01NVU5JQ0FUSU9OUworMDBBMEU1ICAgICAoYmFzZSAxNikJCU5IQyBDT01NVU5JQ0FUSU9OUworCQkJCTU0NTAgQ09URSBERSBMSUVTU0UKKwkJCQlNT05UUkVBTCwgUVVFQkVDIEg0UCAxQTUKKwkJCQlDQU5BREEKKworMDAtQTAtRTYgICAoaGV4KQkJRElBTE9HSUMgQ09SUE9SQVRJT04KKzAwQTBFNiAgICAgKGJhc2UgMTYpCQlESUFMT0dJQyBDT1JQT1JBVElPTgorCQkJCTE1MTUgUk9VVEUgMTAKKwkJCQlQQVJTSVBQQU5ZIE5KIDA3MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1FNyAgIChoZXgpCQlDRU5UUkFMIERBVEEgQ09SUE9SQVRJT04KKzAwQTBFNyAgICAgKGJhc2UgMTYpCQlDRU5UUkFMIERBVEEgQ09SUE9SQVRJT04KKwkJCQkxNjAyIE5FV1RPTiBEUklWRQorCQkJCUNIQU1QQUlHTiBJTCA2MTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRTggICAoaGV4KQkJUkVVVEVSUyBIT0xESU5HUyBQTEMKKzAwQTBFOCAgICAgKGJhc2UgMTYpCQlSRVVURVJTIEhPTERJTkdTIFBMQworCQkJCTg1LCBGTEVFVCBTVFJFRVQKKwkJCQlMT05ET04gIEVDNFAgNEFKCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUEwLUU5ICAgKGhleCkJCUVMRUNUUk9OSUMgUkVUQUlMSU5HIFNZU1RFTVMgSU5URVJOQVRJT05BTAorMDBBMEU5ICAgICAoYmFzZSAxNikJCUVMRUNUUk9OSUMgUkVUQUlMSU5HIFNZU1RFTVMgSU5URVJOQVRJT05BTAorCQkJCTM3MiBEQU5CVVJZIFJPQUQKKwkJCQlXSUxUT04gQ1QgMDY4OTctMjUyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRUEgICAoaGV4KQkJRVRIRVJDT00gQ09SUC4KKzAwQTBFQSAgICAgKGJhc2UgMTYpCQlFVEhFUkNPTSBDT1JQLgorCQkJCTQ1OTkwIEhPVENIS0lTUyBTVC4KKwkJCQlGUkVFTU9OVCBDQSA5NDUzOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRUIgICAoaGV4KQkJRW5jb3JlIE5ldHdvcmtzLCBJbmMuCiswMEEwRUIgICAgIChiYXNlIDE2KQkJRW5jb3JlIE5ldHdvcmtzLCBJbmMuCisJCQkJMzgwMCBDb25jb3JkZSBQYXJrd2F5LAorCQkJCVN1aXRlIDE1MDAKKwkJCQlDaGFudGlsbHksIFZBIDIwMTUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1FQyAgIChoZXgpCQlUUkFOU01JVFRPTiBMVEQuCiswMEEwRUMgICAgIChiYXNlIDE2KQkJVFJBTlNNSVRUT04gTFRELgorCQkJCVNNSVNCWSBST0FECisJCQkJQVNIQlkgREUgTEEgWk9VQ0gKKwkJCQlMRUlDRVNURVJTSElSRSBMRTY1IDJVRyAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQTAtRUQgICAoaGV4KQkJQnJvb2tzIEF1dG9tYXRpb24sIEluYy4KKzAwQTBFRCAgICAgKGJhc2UgMTYpCQlCcm9va3MgQXV0b21hdGlvbiwgSW5jLgorCQkJCTE1IEVsaXphYmV0aCBEcml2ZQorCQkJCUNoZWxtc2ZvcmQgTUEgMDE4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUVFICAgKGhleCkJCU5BU0hPQkEgTkVUV09SS1MKKzAwQTBFRSAgICAgKGJhc2UgMTYpCQlOQVNIT0JBIE5FVFdPUktTCisJCQkJOS0xMSBHT0xEU01JVEggU1QuCisJCQkJTElUVExFVE9OIE1BIDAxNDYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1FRiAgIChoZXgpCQlMVUNJREFUQSBMVEQuCiswMEEwRUYgICAgIChiYXNlIDE2KQkJTFVDSURBVEEgTFRELgorCQkJCUxVQ0lEQVRBIEhPVVNFCisJCQkJU0VMV1lOIENMT1NFLAorCQkJCUdSRUFUIFNIRUxGT1JEIENBTUJSSURHRSAgQ0IyIDVIQSAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1BMC1GMCAgIChoZXgpCQlUT1JPTlRPIE1JQ1JPRUxFQ1RST05JQ1MgSU5DLgorMDBBMEYwICAgICAoYmFzZSAxNikJCVRPUk9OVE8gTUlDUk9FTEVDVFJPTklDUyBJTkMuCisJCQkJNTE0OSBCUkFEQ08gQk9VTEVWQVJECisJCQkJTUlTU0lTU0FVR0EsIE9OVEFSSU8KKwkJCQlMNFcgMkE2CisJCQkJQ0FOQURBCisKKzAwLUEwLUYxICAgKGhleCkJCU1USQorMDBBMEYxICAgICAoYmFzZSAxNikJCU1USQorCQkJCTQ5MDUgRS4gTEEgUEFMTUEgQVZFTlVFCisJCQkJQU5BSEVJTSBDQSA5MjgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRjIgICAoaGV4KQkJSU5GT1RFSyBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBBMEYyICAgICAoYmFzZSAxNikJCUlORk9URUsgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxMTEgQU5aQSBCTFZELiwgIzIwMworCQkJCUJVUkxJTkdBTUUgQ0EgOTQwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUYzICAgKGhleCkJCVNUQVVCTEkKKzAwQTBGMyAgICAgKGJhc2UgMTYpCQlTVEFVQkxJCisJCQkJMTgzIFJVRSBERVMgVVNJTkVTCisJCQkJQlAgNzAgRjc0MjEwIEZBVkVSR0VTCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLUEwLUY0ICAgKGhleCkJCUdFCiswMEEwRjQgICAgIChiYXNlIDE2KQkJR0UKKwkJCQlXLTY1NworCQkJCTMwMDAgTi4gR1JBTkRWSUVXIEJMVkQuCisJCQkJV0FVS0VTSEEgV0kgNTMxODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUY1ICAgKGhleCkJCVJBREdVQVJEIExURC4KKzAwQTBGNSAgICAgKGJhc2UgMTYpCQlSQURHVUFSRCBMVEQuCisJCQkJOCBIQU5FQ0hPU0hFVCBTVFJFRVQKKwkJCQlURUwtQVZJViAgNjk3MTAgIAorCQkJCUlTUkFFTAorCiswMC1BMC1GNiAgIChoZXgpCQlBdXRvR2FzIFN5c3RlbXMgSW5jLgorMDBBMEY2ICAgICAoYmFzZSAxNikJCUF1dG9HYXMgU3lzdGVtcyBJbmMuCisJCQkJUC5PLiBCT1ggNjk1NworCQkJCUFCSU9MRU5FIFRYIDc5NjA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMC1GNyAgIChoZXgpCQlWLkkgQ09NUFVURVIgQ09SUC4KKzAwQTBGNyAgICAgKGJhc2UgMTYpCQlWLkkgQ09NUFVURVIgQ09SUC4KKwkJCQk1MzEgRU5DSU5JVEFTIEJMVkQtLSMxMTQKKwkJCQlFTkNJTklUQVMgQ0EgOTIwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUY4ICAgKGhleCkJCVNZTUJPTCBURUNITk9MT0dJRVMsIElOQy4KKzAwQTBGOCAgICAgKGJhc2UgMTYpCQlTWU1CT0wgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMTEwMSBTT1VUSCBXSU5DSEVTVEVSIEJMVkQuCisJCQkJU1VJVEUgICMgQi0xMTAKKwkJCQlTQU4gSk9TRSBDQSA5NTEyOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRjkgICAoaGV4KQkJQklOVEVDIENPTU1VTklDQVRJT05TIEdNQkgKKzAwQTBGOSAgICAgKGJhc2UgMTYpCQlCSU5URUMgQ09NTVVOSUNBVElPTlMgR01CSAorCQkJCVNVRURXRVNUUEFSSyA5NAorCQkJCTkwNDQ5IE5VRVJOQkVSRyAgCisJCQkJR0VSTUFOWQorCiswMC1BMC1GQSAgIChoZXgpCQlNYXJjb25pIENvbW11bmljYXRpb24gR21iSAorMDBBMEZBICAgICAoYmFzZSAxNikJCU1hcmNvbmkgQ29tbXVuaWNhdGlvbiBHbWJICisJCQkJR2VyYmVyc3RyYXNzZSAzMworCQkJCUQtNzE1MjIgQmFjbmtuYW5nCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQTAtRkIgICAoaGV4KQkJVE9SQVkgRU5HSU5FRVJJTkcgQ08uLCBMVEQuCiswMEEwRkIgICAgIChiYXNlIDE2KQkJVE9SQVkgRU5HSU5FRVJJTkcgQ08uLCBMVEQuCisJCQkJMS00NSwgT0UgMS1DSE9NRSwgT1RTVSBDSVRZCisJCQkJU0hJR0EsCisJCQkJNTIwLTIxIEpBUEFOCisJCQkJSkFQQU4KKworMDAtQTAtRkMgICAoaGV4KQkJSU1BR0UgU0NJRU5DRVMsIElOQy4KKzAwQTBGQyAgICAgKGJhc2UgMTYpCQlJTUFHRSBTQ0lFTkNFUywgSU5DLgorCQkJCTc1MDAgSU5OT1ZBVElPTiBXQVkKKwkJCQlNQVNPTiBPSCA0NTA0MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQTAtRkQgICAoaGV4KQkJU0NJVEVYIERJR0lUQUwgUFJJTlRJTkcsIElOQy4KKzAwQTBGRCAgICAgKGJhc2UgMTYpCQlTQ0lURVggRElHSVRBTCBQUklOVElORywgSU5DLgorCQkJCTMxMDAgUkVTRUFSQ0ggQkxWRC4KKwkJCQlEQVlUT04gT0ggNDU0MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUZFICAgKGhleCkJCUJPU1RPTiBURUNITk9MT0dZLCBJTkMuCiswMEEwRkUgICAgIChiYXNlIDE2KQkJQk9TVE9OIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkxMDAgUVVBTk5BUE9XSVRUIFBBUktXQVkKKwkJCQlXQUtFRklFTEQgTUEgMDE4ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUEwLUZGICAgKGhleCkJCVRFTExBQlMgT1BFUkFUSU9OUywgSU5DLgorMDBBMEZGICAgICAoYmFzZSAxNikJCVRFTExBQlMgT1BFUkFUSU9OUywgSU5DLgorCQkJCTEwMDAgUkVNSU5HVE9OIEJMVkQuCisJCQkJQk9MSU5HQlJPT0sgIElMICA2MDQ0MAorCQkJCTYwNDQwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BMS1ERSAgIChoZXgpCQlTaGVuWmhlbiBTaGlIdWEgVGVjaG5vbG9neSBDTy4sTFRECiswMEExREUgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gU2hpSHVhIFRlY2hub2xvZ3kgQ08uLExURAorCQkJCVJvb201MDUsNS9GIFRzaW5nWWkgQnVpbGRpbmcsTGFuZ1NoYW4gMmVkIFJvYWQsSGlnaC1UZWNoIEluZHVzdHJpYWwgUGFyaywKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDUyCisJCQkJQ0hJTkEKKworMDAtQTItREEgICAoaGV4KQkJSU5BVCBHbWJICiswMEEyREEgICAgIChiYXNlIDE2KQkJSU5BVCBHbWJICisJCQkJT3N0ZW5kc3RyLiA1MEEKKwkJCQlOdXJlbWJlcmcgQmF2YXJpYSA5MDQ4MgorCQkJCUdFUk1BTlkKKworMDAtQUEtMDAgICAoaGV4KQkJSU5URUwgQ09SUE9SQVRJT04KKzAwQUEwMCAgICAgKGJhc2UgMTYpCQlJTlRFTCBDT1JQT1JBVElPTgorCQkJCTUyMDAgTkUgRUxBTSBZT1VORyBQQVJLV0FZCisJCQkJSElMTFNCT1JPIE9SIDk3MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BQS0wMSAgIChoZXgpCQlJTlRFTCBDT1JQT1JBVElPTgorMDBBQTAxICAgICAoYmFzZSAxNikJCUlOVEVMIENPUlBPUkFUSU9OCisJCQkJCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BQS0wMiAgIChoZXgpCQlJTlRFTCBDT1JQT1JBVElPTgorMDBBQTAyICAgICAoYmFzZSAxNikJCUlOVEVMIENPUlBPUkFUSU9OCisJCQkJCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1BQS0zQyAgIChoZXgpCQlPTElWRVRUSSBURUxFQ09NIFNQQSAoT0xURUNPKQorMDBBQTNDICAgICAoYmFzZSAxNikJCU9MSVZFVFRJIFRFTEVDT00gU1BBIChPTFRFQ08pCisJCQkJMTAwNjIgTUlMTEVSIEFWRS4tU1RFLiMyMDQKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUFBLTcwICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzIAorMDBBQTcwICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzIAorCQkJCTYwLTM5LCBLYXNhbi1kb25nLCBHdW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUIwLTA5ICAgKGhleCkJCUdyYXNzIFZhbGxleSBHcm91cAorMDBCMDA5ICAgICAoYmFzZSAxNikJCUdyYXNzIFZhbGxleSBHcm91cAorCQkJCVAuTy4gQm94IDU5OTAwMAorCQkJCU5ldmFkYSBDaXR5IENBIDk1OTU5LTc5MDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTE3ICAgKGhleCkJCUluZm9HZWFyIFRlY2hub2xvZ3kgQ29ycC4KKzAwQjAxNyAgICAgKGJhc2UgMTYpCQlJbmZvR2VhciBUZWNobm9sb2d5IENvcnAuCisJCQkJMjA1NSBXb29kc2lkZSBSb2FkCisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDYxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC0xOSAgIChoZXgpCQlVVEMgQ0NTCiswMEIwMTkgICAgIChiYXNlIDE2KQkJVVRDIENDUworCQkJCTc5MSBDb21tZXJjZSBCbHZkCisJCQkJU3VpdGUgMTAwCisJCQkJQm9jYSBSYXRvbiBGTCAzMzQ5NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtMUMgICAoaGV4KQkJV2VzdHBvcnQgVGVjaG5vbG9naWVzCiswMEIwMUMgICAgIChiYXNlIDE2KQkJV2VzdHBvcnQgVGVjaG5vbG9naWVzCisJCQkJMTUgQ2FwZWxsYSBDb3VydCwgVW5pdCAxMTYKKwkJCQlOZXBlYW4gT250YXJpbyAKKwkJCQlDQU5BREEKKworMDAtQjAtMUUgICAoaGV4KQkJUmFudGljIExhYnMsIEluYy4KKzAwQjAxRSAgICAgKGJhc2UgMTYpCQlSYW50aWMgTGFicywgSW5jLgorCQkJCTcwMiBCcmF6b3MsICBTdWl0ZSAjNTAwCisJCQkJQXVzdGluIFRYIDc4NzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC0yQSAgIChoZXgpCQlPUlNZUyBHbWJICiswMEIwMkEgICAgIChiYXNlIDE2KQkJT1JTWVMgR21iSAorCQkJCUFtIFN0YWR0Z3JhYmVuIDI1CisJCQkJRC04ODY3NyBNYXJrZG9yZiAgCisJCQkJR0VSTUFOWQorCiswMC1CMC0yRCAgIChoZXgpCQlWaWFHYXRlIFRlY2hub2xvZ2llcywgSW5jLgorMDBCMDJEICAgICAoYmFzZSAxNikJCVZpYUdhdGUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNzQ1IFJvdXRlIDIwMi8yMDYKKwkJCQlTdWl0ZSA1CisJCQkJQnJpZGdld2F0ZXIgTkogMDg4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTMzICAgKGhleCkJCU9BTyAiSXpoZXZza2l5IHJhZGlvemF2b2QiCiswMEIwMzMgICAgIChiYXNlIDE2KQkJT0FPICJJemhldnNraXkgcmFkaW96YXZvZCIKKwkJCQkxOSBCYXppc25heWEgc3RyZWV0CisJCQkJSXpoZXZzayBVZG11cnQgUmVwdWJsaWMgNDI2MDM0CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzAwLUIwLTNCICAgKGhleCkJCUhpUSBOZXR3b3JrcworMDBCMDNCICAgICAoYmFzZSAxNikJCUhpUSBOZXR3b3JrcworCQkJCTI0NzUgQXVndXN0aW5lIERyaXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTQ4ICAgKGhleCkJCU1hcmNvbmkgQ29tbXVuaWNhdGlvbnMgSW5jLgorMDBCMDQ4ICAgICAoYmFzZSAxNikJCU1hcmNvbmkgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTg2MTYgRnJlZXBvcnQgUGFya3dheQorCQkJCU1TIEEyCisJCQkJSXJ2aW5nIFRYIDc1MDYzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC00QSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMEIwNEEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZSAtIFNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTUyICAgKGhleCkJCUF0aGVyb3MgQ29tbXVuaWNhdGlvbnMKKzAwQjA1MiAgICAgKGJhc2UgMTYpCQlBdGhlcm9zIENvbW11bmljYXRpb25zCisJCQkJNTk1NSBULkcuIExlZSBCbHZkLCBTdGUuIDYwMAorCQkJCU9jYWxhIEZMIDMyODIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC02NCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMEIwNjQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZSAtIFNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTY5ICAgKGhleCkJCUhvbmV3ZWxsIE95CiswMEIwNjkgICAgIChiYXNlIDE2KQkJSG9uZXdlbGwgT3kKKwkJCQlQLk8uIEJveCAxNjgsIEZJTi03ODIwMQorCQkJCVZhcmthdXMKKwkJCQlGSU5MQU5ECisKKzAwLUIwLTZEICAgKGhleCkJCUpvbmVzIEZ1dHVyZXggSW5jLgorMDBCMDZEICAgICAoYmFzZSAxNikJCUpvbmVzIEZ1dHVyZXggSW5jLgorCQkJCTM3MTUgQXRoZXJ0b24gUm9hZAorCQkJCVJvY2tsaW4gQ0EgOTU3NjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTgwICAgKGhleCkJCU1hbm5lc21hbm4gSXB1bHN5cyBCLlYuCiswMEIwODAgICAgIChiYXNlIDE2KQkJTWFubmVzbWFubiBJcHVsc3lzIEIuVi4KKwkJCQlCb3JkZXdpamtsYWFuIDE4CisJCQkJMjU5MSBYUiBUaGUgSGFndWUgIAorCQkJCU5FVEhFUkxBTkRTCisKKzAwLUIwLTg2ICAgKGhleCkJCUxvY1NvZnQgTGltaXRlZAorMDBCMDg2ICAgICAoYmFzZSAxNikJCUxvY1NvZnQgTGltaXRlZAorCQkJCTcgQnJpZ2h0IFN0cmVldAorCQkJCUNsaXRoZXJvZSBMYW5jYXNoaXJlIEJCNyAxTlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1CMC04RSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMEIwOEUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZSAtU0pBLTIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtOTEgICAoaGV4KQkJVHJhbnNtZXRhIENvcnAuCiswMEIwOTEgICAgIChiYXNlIDE2KQkJVHJhbnNtZXRhIENvcnAuCisJCQkJMzk0MCBGcmVlZG9tIENpcmNsZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC05NCAgIChoZXgpCQlBbGFyaXMsIEluYy4KKzAwQjA5NCAgICAgKGJhc2UgMTYpCQlBbGFyaXMsIEluYy4KKwkJCQk0NzMzOCBGcmVtb250IEJvdWxldmFyZAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLTlBICAgKGhleCkJCU1vcnJvdyBUZWNobm9sb2dpZXMgQ29ycC4KKzAwQjA5QSAgICAgKGJhc2UgMTYpCQlNb3Jyb3cgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJMjMwMCBUYWxsIFBpbmVzIERyaXZlCisJCQkJTGFyZ28gRkwgMzM3NzEtNTM0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtOUQgICAoaGV4KQkJUG9pbnQgR3JleSBSZXNlYXJjaCBJbmMuCiswMEIwOUQgICAgIChiYXNlIDE2KQkJUG9pbnQgR3JleSBSZXNlYXJjaCBJbmMuCisJCQkJMzA1LTE4NDcgV2VzdCBCcm9hZHdheQorCQkJCVZhbmNvdXZlciBCcml0aXNoIENvbHVtYmlhIFY2SiAxWTYgCisJCQkJQ0FOQURBCisKKzAwLUIwLUFDICAgKGhleCkJCVNJQUUtTWljcm9lbGV0dHJvbmljYSBTLnAuQS4KKzAwQjBBQyAgICAgKGJhc2UgMTYpCQlTSUFFLU1pY3JvZWxldHRyb25pY2EgUy5wLkEuCisJCQkJVmlhIE1pY2hlbGFuZ2VsbyBCdW9uYXJyb3RpLCAyMQorCQkJCTIwMDkzIENvbG9nbm8gTS4gKE1sKSAgCisJCQkJSVRBTFkKKworMDAtQjAtQUUgICAoaGV4KQkJU3ltbWV0cmljb20KKzAwQjBBRSAgICAgKGJhc2UgMTYpCQlTeW1tZXRyaWNvbQorCQkJCTIzMDAgT3JjaGFyZCBQYXJrd2F5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLUIzICAgKGhleCkJCVhzdHJlYW1pcyBQTEMKKzAwQjBCMyAgICAgKGJhc2UgMTYpCQlYc3RyZWFtaXMgUExDCisJCQkJTWFnZGFsZW4gQ2VudHJlCisJCQkJT3hmb3JkIFNjaWVuY2UgUGFyaworCQkJCU94Zm9yZCAwWDQgNEdBICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1CMC1DMiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zLCBJbmMuCiswMEIwQzIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcywgSW5jLgorCQkJCTE3MCBXZXN0IFRhc21hbiBEcml2ZSAtIFNKQS0yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLUM3ICAgKGhleCkJCVRlbGxhYnMgT3BlcmF0aW9ucywgSW5jLgorMDBCMEM3ICAgICAoYmFzZSAxNikJCVRlbGxhYnMgT3BlcmF0aW9ucywgSW5jLgorCQkJCU9uZSBUZWxsYWJzIENlbnRlcgorCQkJCTE0MTUgV2VzdCBEaWVobCBSb2FkCisJCQkJTmFwZXJ2aWxsZSBJTCA2MDU2MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjAtQ0UgICAoaGV4KQkJVEVDSE5PTE9HWSBSRVNDVUUKKzAwQjBDRSAgICAgKGJhc2UgMTYpCQlURUNITk9MT0dZIFJFU0NVRQorCQkJCTQ2IEF2ZW51ZSBkZXMgU3BlcmVzIEx1bWllcmUKKwkJCQk3ODE5IFRyb3BwZXMgIAorCQkJCUZSQU5DRQorCiswMC1CMC1EMCAgIChoZXgpCQlEZWxsIENvbXB1dGVyIENvcnAuCiswMEIwRDAgICAgIChiYXNlIDE2KQkJRGVsbCBDb21wdXRlciBDb3JwLgorCQkJCU9uZSBEZWxsIFdheQorCQkJCVJvdW5kIFJvY2sgVFggNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLURCICAgKGhleCkJCU5leHRjZWxsLCBJbmMuCiswMEIwREIgICAgIChiYXNlIDE2KQkJTmV4dGNlbGwsIEluYy4KKwkJCQk2NTEgRWFzdCAxOHRoIFN0cmVldAorCQkJCVBsYW5vIFRYIDc1MDc0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC1ERiAgIChoZXgpCQlSRUxEQVRBIEluYworMDBCMERGICAgICAoYmFzZSAxNikJCVJFTERBVEEgSW5jCisJCQkJMTcxOSBSb3V0ZSAxMCAgLSAgU3VpdGUgIzIwOQorCQkJCVBhcnNpcHBhbnkgTkogMDcwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUIwLUU3ICAgKGhleCkJCUJyaXRpc2ggRmVkZXJhbCBMdGQuCiswMEIwRTcgICAgIChiYXNlIDE2KQkJQnJpdGlzaCBGZWRlcmFsIEx0ZC4KKwkJCQlDYXN0bGUgTWlsbCBXb3JrcworCQkJCUR1ZGxleSBEWTEgNERBIEVuZ2xhbmQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQjAtRUMgICAoaGV4KQkJRUFDRU0KKzAwQjBFQyAgICAgKGJhc2UgMTYpCQlFQUNFTQorCQkJCUF2ZW51ZSBMb3Vpc2UgMTQwLCBCdGUgNgorCQkJCUItMTA1MCBCUlVTU0VMUyAgCisJCQkJQkVMR0lVTQorCiswMC1CMC1FRSAgIChoZXgpCQlBamlsZSBTeXN0ZW1zLCBJbmMuCiswMEIwRUUgICAgIChiYXNlIDE2KQkJQWppbGUgU3lzdGVtcywgSW5jLgorCQkJCTIwNCBDb2xsaW5zIFJkIE5FCisJCQkJU3VpdGUgMTAwCisJCQkJQ2VkYXIgUmFwaWRzIElBIDUyNDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC1GMCAgIChoZXgpCQlDQUxZIE5FVFdPUktTCiswMEIwRjAgICAgIChiYXNlIDE2KQkJQ0FMWSBORVRXT1JLUworCQkJCTI5NSBTYW50YSBBbm5hIENvdXJ0CisJCQkJU3Vubnl2YWxlIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CMC1GNSAgIChoZXgpCQlOZXRXb3J0aCBUZWNobm9sb2dpZXMsIEluYy4KKzAwQjBGNSAgICAgKGJhc2UgMTYpCQlOZXRXb3J0aCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMDAwIEdlcm1hbnRvd24gUGlrZQorCQkJCWxkZy4gSi0xCisJCQkJUGx5bW91dGggTWV0dGluZyBQQSAxOTQ2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQjMtMzggICAoaGV4KQkJS29udHJvbiBEZXNpZ24gTWFudWZhY3R1cmluZyBTZXJ2aWNlcyAoTSkgU2RuLiBCaGQKKzAwQjMzOCAgICAgKGJhc2UgMTYpCQlLb250cm9uIERlc2lnbiBNYW51ZmFjdHVyaW5nIFNlcnZpY2VzIChNKSBTZG4uIEJoZAorCQkJCVBsb3QgNTU0LCBMb3JvbmcgUGVydXNhaGFhbiA0CisJCQkJUHJhaSBGcmVlIFRyYWRlIFpvbmUKKwkJCQlQcmFpIFBlbmFuZyAxMzYwMAorCQkJCU1BTEFZU0lBCisKKzAwLUIzLTQyICAgKGhleCkJCU1hY3JvU0FOIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzAwQjM0MiAgICAgKGJhc2UgMTYpCQlNYWNyb1NBTiBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJUm9vbSAxMDIsIE5vLjIgQnVpbGRpbmcKKwkJCQkzMDEgQmluIFhpbmcgUm9hZCxCaW5qaWFuZyBEaXN0cmljdAorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDA1MgorCQkJCUNISU5BCisKKzAwLUI1LUQ2ICAgKGhleCkJCU9tbmliaXQgSW5jLgorMDBCNUQ2ICAgICAoYmFzZSAxNikJCU9tbmliaXQgSW5jLgorCQkJCTItNy05LCBTb3RvLUthbmRhCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtMDAyMQorCQkJCUpBUEFOCisKKzAwLUI5LUY2ICAgKGhleCkJCVNoZW56aGVuIFN1cGVyIFJpY2ggRWxlY3Ryb25pY3MgQ28uLEx0ZAorMDBCOUY2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFN1cGVyIFJpY2ggRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCVJNLjEwMixTaGliaWRhIEJ1aWxkaW5nLE5vLjU1LFpoZW5odWEgUm9hZCxTaGVuemhlbiBGdXRpYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAzMQorCQkJCUNISU5BCisKKzAwLUJBLUMwICAgKGhleCkJCUJpb21ldHJpYyBBY2Nlc3MgQ29tcGFueQorMDBCQUMwICAgICAoYmFzZSAxNikJCUJpb21ldHJpYyBBY2Nlc3MgQ29tcGFueQorCQkJCTI1NTUgTm9ydGggSUggMzUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjY0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CQi0wMSAgIChoZXgpCQlPQ1RPVEhPUlBFIENPUlAuCiswMEJCMDEgICAgIChiYXNlIDE2KQkJT0NUT1RIT1JQRSBDT1JQLgorCQkJCTI4NSBXRVNUIEdSRUVOIFNUUkVFVAorCQkJCVBBU0FERU5BIENBIDkxMTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CQi04RSAgIChoZXgpCQlITUUgQ28uLCBMdGQuCiswMEJCOEUgICAgIChiYXNlIDE2KQkJSE1FIENvLiwgTHRkLgorCQkJCU5vLjIwMCAsIExpYW8gQmVpIFN0ci4sU2FuIE1pbiBEaXN0LiwKKwkJCQlLYW9oc2l1bmcgIDgwNworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQkItRjAgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBCQkYwICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUJELTI3ICAgKGhleCkJCUV4YXIgQ29ycC4KKzAwQkQyNyAgICAgKGJhc2UgMTYpCQlFeGFyIENvcnAuCisJCQkJNDg3MjAgS2F0byBSZC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1CRC0zQSAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorMDBCRDNBICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTcwCisJCQkJRklOTEFORAorCiswMC1CRi0xNSAgIChoZXgpCQlHZW5ldGVjIEluYy4KKzAwQkYxNSAgICAgKGJhc2UgMTYpCQlHZW5ldGVjIEluYy4KKwkJCQkyMjgwIGJvdWwuIEFsZnJlZC1Ob2JlbAorCQkJCVN1aXRlIDQwMAorCQkJCVN0LC4gTGF1cmVudCBRdWViZWMgSDRTIDJBNAorCQkJCUNBTkFEQQorCiswMC1DMC0wMCAgIChoZXgpCQlMQU5PUFRJQ1MsIExURC4KKzAwQzAwMCAgICAgKGJhc2UgMTYpCQlMQU5PUFRJQ1MsIExURC4KKwkJCQlQLk8uIEJPWCAxODQKKwkJCQlNSUdEQUwgSEEtRU1FSworCQkJCUlTUkFFTCBJU1JBRUwgMTA1NTEKKwkJCQlJU1JBRUwKKworMDAtQzAtMDEgICAoaGV4KQkJRElBVEVLIFBBVElFTlQgTUFOQUdNRU5UCiswMEMwMDEgICAgIChiYXNlIDE2KQkJRElBVEVLIFBBVElFTlQgTUFOQUdNRU5UCisJCQkJU1lTVEVNUywgSU5DLgorCQkJCTU3MjAgT0JFUkxJTiBEUklWRQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMS0xNzIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0wMiAgIChoZXgpCQlTRVJDT01NIENPUlBPUkFUSU9OCiswMEMwMDIgICAgIChiYXNlIDE2KQkJU0VSQ09NTSBDT1JQT1JBVElPTgorCQkJCTNGLE5PLjgxLFlVLVlJSCBST0FELENIVS1OQU4gQ0hFTgorCQkJCU1JQU8tTElIIEhTVUFOIDM1MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQzAtMDMgICAoaGV4KQkJR0xPQkFMTkVUIENPTU1VTklDQVRJT05TCiswMEMwMDMgICAgIChiYXNlIDE2KQkJR0xPQkFMTkVUIENPTU1VTklDQVRJT05TCisJCQkJOTEyLCBQTEFDRSBUUkFOUyBDQU5BREEKKwkJCQlMT05HVUVVSUwsIFFDCisJCQkJQ0FOQURBIEo0RyAyTTEKKwkJCQlDQU5BREEKKworMDAtQzAtMDQgICAoaGV4KQkJSkFQQU4gQlVTSU5FU1MgQ09NUFVURVIgQ08uTFRECiswMEMwMDQgICAgIChiYXNlIDE2KQkJSkFQQU4gQlVTSU5FU1MgQ09NUFVURVIgQ08uTFRECisJCQkJMTM2OCBGVVRPTy1DSE8sIEtPSE9LVS1LVQorCQkJCVlPS09IQU1BLUNJVFkKKwkJCQkyMjIgSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC0wNSAgIChoZXgpCQlMSVZJTkdTVE9OIEVOVEVSUFJJU0VTLCBJTkMuCiswMEMwMDUgICAgIChiYXNlIDE2KQkJTElWSU5HU1RPTiBFTlRFUlBSSVNFUywgSU5DLgorCQkJCTY5MjAgS09MTCBDRU5URVIgUEFSS1dBWSAjMjIwCisJCQkJUExFQVNBTlRPTiBDQSA5NDU2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMDYgICAoaGV4KQkJTklQUE9OIEFWSU9OSUNTIENPLiwgTFRELgorMDBDMDA2ICAgICAoYmFzZSAxNikJCU5JUFBPTiBBVklPTklDUyBDTy4sIExURC4KKwkJCQlJTkRVU1RSSUFMIFNZU1RFTSBESVZJU0lPTgorCQkJCTI4LTIsIEhPTkdPSCAyLUNIT01FLCBTRVlBLUtVIFlPS09IQU1BCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC0wNyAgIChoZXgpCQlQSU5OQUNMRSBEQVRBIFNZU1RFTVMsIElOQy4KKzAwQzAwNyAgICAgKGJhc2UgMTYpCQlQSU5OQUNMRSBEQVRBIFNZU1RFTVMsIElOQy4KKwkJCQkxMzUwIFdFU1QgRklGVEggQVZFTlVFCisJCQkJQ09MVU1CVVMgT0ggNDMyMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTA4ICAgKGhleCkJCVNFQ08gU1JMCiswMEMwMDggICAgIChiYXNlIDE2KQkJU0VDTyBTUkwKKwkJCQlWSUEgQ0FMQU1BTkRSRUkgOTEKKwkJCQk1MjEwMCBBUkVaWk8KKwkJCQlJVEFMWQorCQkJCUlUQUxZCisKKzAwLUMwLTA5ICAgKGhleCkJCUtUIFRFQ0hOT0xPR1kgKFMpIFBURSBMVEQKKzAwQzAwOSAgICAgKGJhc2UgMTYpCQlLVCBURUNITk9MT0dZIChTKSBQVEUgTFRECisJCQkJS1QgQlVJTERJTkcKKwkJCQkxMDBFIFBBU0lSIFBBTkpBTkcgUk9BRAorCQkJCVNJTkdBUE9SRSAwNTExCisJCQkJU0lOR0FQT1JFCisKKzAwLUMwLTBBICAgKGhleCkJCU1JQ1JPIENSQUZUCiswMEMwMEEgICAgIChiYXNlIDE2KQkJTUlDUk8gQ1JBRlQKKwkJCQkyLTQtMyBOSVNISUZVUlVNQVRTVQorCQkJCU9LQVlBTUEgQ0lUWSBPS0FZQU1BIFBSRUYuIDcwMAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtMEIgICAoaGV4KQkJTk9SQ09OVFJPTCBBLlMuCiswMEMwMEIgICAgIChiYXNlIDE2KQkJTk9SQ09OVFJPTCBBLlMuCisJCQkJUC5PLiBCT1ggMTAyNAorCQkJCU4tMzE5NCBIT1JURU4KKwkJCQlOT1JXQVkKKwkJCQlOT1JXQVkKKworMDAtQzAtMEMgICAoaGV4KQkJUkVMSUEgVEVDSE5PTEdJRVMKKzAwQzAwQyAgICAgKGJhc2UgMTYpCQlSRUxJQSBURUNITk9MR0lFUworCQkJCTFGLiwgTk8uIDI0LCBJTkRVU1RSWSBFLiA5VEgKKwkJCQlSRC4sIFNDSUVOQ0UtQkFTRUQgSU5EVVNUUklBTCBQQVJLIEhTSU4tCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUMwLTBEICAgKGhleCkJCUFEVkFOQ0VEIExPR0lDIFJFU0VBUkNILCBJTkMuCiswMEMwMEQgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgTE9HSUMgUkVTRUFSQ0gsIElOQy4KKwkJCQk5NDAxIEpFUk9OSU1PCisJCQkJSVJWSU5FIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0wRSAgIChoZXgpCQlQU0lURUNILCBJTkMuCiswMEMwMEUgICAgIChiYXNlIDE2KQkJUFNJVEVDSCwgSU5DLgorCQkJCTE4MzY4IEJBTkRJTElFUiBDSVJDTEUKKwkJCQlGT1VOVEFJTiBWQUxMRVkgQ0EgOTI3MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTBGICAgKGhleCkJCVFVQU5UVU0gU09GVFdBUkUgU1lTVEVNUyBMVEQuCiswMEMwMEYgICAgIChiYXNlIDE2KQkJUVVBTlRVTSBTT0ZUV0FSRSBTWVNURU1TIExURC4KKwkJCQkxNzUgVEVSUkVOQ0UgTUFUVEhFV1MgQ1JFU0NFTlQKKwkJCQlLQU5BVEEsIE9OVEFSSU8gQ0FOQURBCisJCQkJSzJMIDNUNQorCQkJCUNBTkFEQQorCiswMC1DMC0xMCAgIChoZXgpCQlISVJBS0FXQSBIRVdURUNIIENPUlAuCiswMEMwMTAgICAgIChiYXNlIDE2KQkJSElSQUtBV0EgSEVXVEVDSCBDT1JQLgorCQkJCTdGLCBCTERHLkIsIE9NT1JJIEJFTExQT1JUCisJCQkJNi0yNi0yLCBNSU5BTUktT0ksU0hJTkFHQVdBLUtVIFRPS1lPIDE0MAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtMTEgICAoaGV4KQkJSU5URVJBQ1RJVkUgQ09NUFVUSU5HIERFVklDRVMKKzAwQzAxMSAgICAgKGJhc2UgMTYpCQlJTlRFUkFDVElWRSBDT01QVVRJTkcgREVWSUNFUworCQkJCTE3MzUgVEVDSE5PTE9HWSBEUklWRS1TVEUgIzcyMAorCQkJCVNBTiBKT1NFIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0xMiAgIChoZXgpCQlORVRTUEFOIENPUlBPUkFUSU9OCiswMEMwMTIgICAgIChiYXNlIDE2KQkJTkVUU1BBTiBDT1JQT1JBVElPTgorCQkJCTE0MTEgRS4gQ0FNUEJFTEwgUkQKKwkJCQlTVUlURSAjMTAwMAorCQkJCVJJQ0hBUkRTT04gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTEzICAgKGhleCkJCU5FVFJJWAorMDBDMDEzICAgICAoYmFzZSAxNikJCU5FVFJJWAorCQkJCTEzNTk1IERVTExFUyBURUNITk9MT0dZIERSSVZFCisJCQkJSEVSTkRPTiBWQSAyMjA3MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMTQgICAoaGV4KQkJVEVMRU1BVElDUyBDQUxBQkFTQVMgSU5UJ0wsSU5DCiswMEMwMTQgICAgIChiYXNlIDE2KQkJVEVMRU1BVElDUyBDQUxBQkFTQVMgSU5UJ0wsSU5DCisJCQkJMjY2MzAgQUdPVVJBIFJPQUQKKwkJCQlDQUxBQkFTQVMgQ0EgOTEzMDItMTk4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMTUgICAoaGV4KQkJTkVXIE1FRElBIENPUlBPUkFUSU9OCiswMEMwMTUgICAgIChiYXNlIDE2KQkJTkVXIE1FRElBIENPUlBPUkFUSU9OCisJCQkJMTUzNzUgQkFSUkFOQ0EgUEFSS1dBWQorCQkJCUJVSUxESU5HCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0xNiAgIChoZXgpCQlFTEVDVFJPTklDIFRIRUFUUkUgQ09OVFJPTFMKKzAwQzAxNiAgICAgKGJhc2UgMTYpCQlFTEVDVFJPTklDIFRIRUFUUkUgQ09OVFJPTFMKKwkJCQkzMDMwIExBVVJBIExBTkUKKwkJCQlNSURETEVUT04gV0kgNTM1NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTE3ICAgKGhleCkJCUZsdWtlIENvcnBvcmF0aW9uCiswMEMwMTcgICAgIChiYXNlIDE2KQkJRmx1a2UgQ29ycG9yYXRpb24KKwkJCQk2OTIwIFNlYXdheSBCbHZkLgorCQkJCUV2ZXJldHQgV0EgOTgyMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTE4ICAgKGhleCkJCUxBTkFSVCBDT1JQT1JBVElPTgorMDBDMDE4ICAgICAoYmFzZSAxNikJCUxBTkFSVCBDT1JQT1JBVElPTgorCQkJCTE0NSBST1NFTUFSWSBTVFJFRVQKKwkJCQlORUVESEFNIE1BIDAyMTk0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0xOSAgIChoZXgpCQlMRUFQIFRFQ0hOT0xPR1ksIElOQy4KKzAwQzAxOSAgICAgKGJhc2UgMTYpCQlMRUFQIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQkyMAorCQkJCUJVUkxJTkdUT04gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTFBICAgKGhleCkJCUNPUk9NRVRSSUNTIE1FRElDQUwgU1lTVEVNUworMDBDMDFBICAgICAoYmFzZSAxNikJCUNPUk9NRVRSSUNTIE1FRElDQUwgU1lTVEVNUworCQkJCTYxIEJBUk5FUyBQQVJLIFJPQUQgTk9SVEgKKwkJCQlXQUxMSU5HRk9SRCBDVCAwNjQ5Mi0wMzMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0xQiAgIChoZXgpCQlTT0NLRVQgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwQzAxQiAgICAgKGJhc2UgMTYpCQlTT0NLRVQgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkyODIzIFdISVBQTEUgUkQuCisJCQkJVU5JT04gQ0lUWSBDQSA5NDU4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMUMgICAoaGV4KQkJSU5URVJMSU5LIENPTU1VTklDQVRJT05TIExURC4KKzAwQzAxQyAgICAgKGJhc2UgMTYpCQlJTlRFUkxJTksgQ09NTVVOSUNBVElPTlMgTFRELgorCQkJCUJSVU5FTCBST0FELAorCQkJCUdPUlNFIExBTkUgSU5EVVNUUklBTCBFU1RBVEUgQ0xBQ1RPTi1PTi0KKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtMUQgICAoaGV4KQkJR1JBTkQgSlVOQ1RJT04gTkVUV09SS1MsIElOQy4KKzAwQzAxRCAgICAgKGJhc2UgMTYpCQlHUkFORCBKVU5DVElPTiBORVRXT1JLUywgSU5DLgorCQkJCTMxMDEgV0hJUFBMRSBSRC4sICMyNworCQkJCVVOSU9OIENJVFkgQ0EgOTQ1ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTFFICAgKGhleCkJCUxBIEZSQU5DQUlTRSBERVMgSkVVWAorMDBDMDFFICAgICAoYmFzZSAxNikJCUxBIEZSQU5DQUlTRSBERVMgSkVVWAorCQkJCUNFTlRSRSBERSBST1VTU1kvRFRJCisJCQkJNzcyMzAgUk9VU1NZLUxFLVZJRVVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLUMwLTFGICAgKGhleCkJCVMuRS5SLkMuRS5MLgorMDBDMDFGICAgICAoYmFzZSAxNikJCVMuRS5SLkMuRS5MLgorCQkJCUIuUC4gNDM5CisJCQkJNDQ0NzQgQ0FSUVVFRk9VIENFREVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLUMwLTIwICAgKGhleCkJCUFSQ08gRUxFQ1RST05JQywgQ09OVFJPTCBMVEQuCiswMEMwMjAgICAgIChiYXNlIDE2KQkJQVJDTyBFTEVDVFJPTklDLCBDT05UUk9MIExURC4KKwkJCQkyNzUwIE5PUlRIIDI5VEggQVZFLi1TVEUuIzMxNgorCQkJCUhPTExZV09PRCBGTCAzMzAyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMjEgICAoaGV4KQkJTkVURVhQUkVTUworMDBDMDIxICAgICAoYmFzZSAxNikJCU5FVEVYUFJFU1MKKwkJCQk5ODkgRUFTVCBISUxMU0RBTEUgQkxWRC4KKwkJCQlTVUlURSAjMjkwCisJCQkJRk9TVEVSIENJVFkgQ0EgOTQ0MDQtMjExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMjIgICAoaGV4KQkJTEFTRVJNQVNURVIgVEVDSE5PTE9HSUVTLCBJTkMuCiswMEMwMjIgICAgIChiYXNlIDE2KQkJTEFTRVJNQVNURVIgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJNzE1NiBTSEFEWSBPQUsgUk9BRAorCQkJCUVERU4gUFJBSVJJRSBNTiA1NTM0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMjMgICAoaGV4KQkJVFVUQU5LSEFNT04gRUxFQ1RST05JQ1MKKzAwQzAyMyAgICAgKGJhc2UgMTYpCQlUVVRBTktIQU1PTiBFTEVDVFJPTklDUworCQkJCTI0NDYgRVNUQU5EIFdBWQorCQkJCVBMRUFTQU5UIEhJTEwgQ0EgOTQ1MjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTI0ICAgKGhleCkJCUVERU4gU0lTVEVNQVMgREUgQ09NUFVUQUNBTyBTQQorMDBDMDI0ICAgICAoYmFzZSAxNikJCUVERU4gU0lTVEVNQVMgREUgQ09NUFVUQUNBTyBTQQorCQkJCVJVQSBETyBPVVZJRE9SIDEyMSA1IEFOREFSCisJCQkJUklPIERFIEpBTkVJUk8KKwkJCQlCUkFaSUwKKwkJCQlCUkFaSUwKKworMDAtQzAtMjUgICAoaGV4KQkJREFUQVBST0RVQ1RTIENPUlBPUkFUSU9OCiswMEMwMjUgICAgIChiYXNlIDE2KQkJREFUQVBST0RVQ1RTIENPUlBPUkFUSU9OCisJCQkJNjIxOSBERVNPVE8gQVZFTlVFCisJCQkJV09PRExBTkQgSElMTFMgQ0EgOTEzNjUtMDc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMjYgICAoaGV4KQkJTEFOUyBURUNITk9MT0dZIENPLiwgTFRELgorMDBDMDI2ICAgICAoYmFzZSAxNikJCUxBTlMgVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQkxNTMgTUlOVFNVIFJELiAyRiwgVEFPWVVBTiwKKwkJCQlUQUlXQU4gUi4gTy4gQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUMwLTI3ICAgKGhleCkJCUNJUEhFUiBTWVNURU1TLCBJTkMuCiswMEMwMjcgICAgIChiYXNlIDE2KQkJQ0lQSEVSIFNZU1RFTVMsIElOQy4KKwkJCQkxODAwIE5XIDE2OXRoIFBsYWNlCisJCQkJU3VpdGUgQi0xMDAKKwkJCQlCZWF2ZXJ0b24gT1IgOTcwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTI4ICAgKGhleCkJCUpBU0NPIENPUlBPUkFUSU9OCiswMEMwMjggICAgIChiYXNlIDE2KQkJSkFTQ08gQ09SUE9SQVRJT04KKwkJCQkyOTY3LTUgSVNISUtBV0EtQ0hPLAorCQkJCUhBQ0hJT0pJLVNISSBUT0tZTyAxOTIKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLTI5ICAgKGhleCkJCU5leGFucyBEZXV0c2NobGFuZCBHbWJIIC0gQU5TCiswMEMwMjkgICAgIChiYXNlIDE2KQkJTmV4YW5zIERldXRzY2hsYW5kIEdtYkggLSBBTlMKKwkJCQlCb25uZW5icm9pY2hlciBTdHIuIDEwMAorCQkJCTQxMjM4IE1vZW5jaGVuZ2xhZGJhY2gKKwkJCQlHRVJNQU5ZCisKKzAwLUMwLTJBICAgKGhleCkJCU9IS1VSQSBFTEVDVFJJQyBDTy4sIExURC4KKzAwQzAyQSAgICAgKGJhc2UgMTYpCQlPSEtVUkEgRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJMi05MC0yMCBTSElSQUtPIFdBS08gQ0lUWQorCQkJCVNBSVRBTUEgUFJFRi4KKwkJCQkzNTEtMDEgSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC0yQiAgIChoZXgpCQlHRVJMT0ZGIEdFU0VMTFNDSEFGVCBGVVIKKzAwQzAyQiAgICAgKGJhc2UgMTYpCQlHRVJMT0ZGIEdFU0VMTFNDSEFGVCBGVVIKKwkJCQlFTEVLUk9OSVNDSEUgU1lTVEVNRU5UV0lDS0xVTkcKKwkJCQlGQVNBTkVOV0VHIDI1IFctMjAwMCBIQU1CVVJHIDczCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQzAtMkMgICAoaGV4KQkJQ0VOVFJVTSBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBDMDJDICAgICAoYmFzZSAxNikJCUNFTlRSVU0gQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkyODgwIFpBTktFUiBST0FELVNURSAjMTA4CisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTJEICAgKGhleCkJCUZVSkkgUEhPVE8gRklMTSBDTy4sIExURC4KKzAwQzAyRCAgICAgKGJhc2UgMTYpCQlGVUpJIFBIT1RPIEZJTE0gQ08uLCBMVEQuCisJCQkJNzk4IE1JWUFOT0RBSSBLQUlTRUktTUFDSEkKKwkJCQlBU0hJR0FSQS1LQU1JLUdVTiBLQU5BR0FXQQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtMkUgICAoaGV4KQkJTkVUV0laCiswMEMwMkUgICAgIChiYXNlIDE2KQkJTkVUV0laCisJCQkJMjYgR09MT01CIFNUUkVFVAorCQkJCUhBSUZBICAzMzM5MQorCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC1DMC0yRiAgIChoZXgpCQlPS1VNQSBDT1JQT1JBVElPTgorMDBDMDJGICAgICAoYmFzZSAxNikJCU9LVU1BIENPUlBPUkFUSU9OCisJCQkJT0dVQ0hJLUNITywgTklXQS1HVU4KKwkJCQlBSUNISSA0ODAtMDEKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLTMwICAgKGhleCkJCUlOVEVHUkFURUQgRU5HSU5FRVJJTkcgQi4gVi4KKzAwQzAzMCAgICAgKGJhc2UgMTYpCQlJTlRFR1JBVEVEIEVOR0lORUVSSU5HIEIuIFYuCisJCQkJRUxMRVJNQU5TVFJBQVQgMTUKKwkJCQkxMDk5IEJXIEFNU1RFUkRBTQorCQkJCVRIRSBORVRIRVJMQU5EUworCQkJCU5FVEhFUkxBTkRTCisKKzAwLUMwLTMxICAgKGhleCkJCURFU0lHTiBSRVNFQVJDSCBTWVNURU1TLCBJTkMuCiswMEMwMzEgICAgIChiYXNlIDE2KQkJREVTSUdOIFJFU0VBUkNIIFNZU1RFTVMsIElOQy4KKwkJCQk5MjUgRS4gRVhFQ1VUSVZFIFBBUksgRFIuCisJCQkJU1VJVEUKKwkJCQlTQUxUIExBS0UgQ0lUWSBVVCA4NDExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMzIgICAoaGV4KQkJSS1DVUJFRCBMSU1JVEVECiswMEMwMzIgICAgIChiYXNlIDE2KQkJSS1DVUJFRCBMSU1JVEVECisJCQkJVU5JVCBKMSwgVEhFIFBPQURET0NLUworCQkJCTM0NyBDSEVSUlkgSElOVE9OIFJPQUQgQ0FNQlJJREdFCisJCQkJQ0IxIDRESCBDQjEgNERIIEVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1DMC0zMyAgIChoZXgpCQlURUxFQklUIENPTU1VTklDQVRJT05TIEFQUworMDBDMDMzICAgICAoYmFzZSAxNikJCVRFTEVCSVQgQ09NTVVOSUNBVElPTlMgQVBTCisJCQkJU0tBTkRFUkJPUkdWRUogMjM0CisJCQkJREstODI2MCBWSUJZCisJCQkJREVOTUFSSworCQkJCURFTk1BUksKKworMDAtQzAtMzQgICAoaGV4KQkJVFJBTlNBQ1RJT04gTkVUV09SSworMDBDMDM0ICAgICAoYmFzZSAxNikJCVRSQU5TQUNUSU9OIE5FVFdPUksKKwkJCQlTRVJWSUNFUywgSU5DLgorCQkJCU9NTklMSU5LIENPTU1VTklDQVRJT05TIERJVi4gMzEwMSBURUNITk8KKwkJCQlMQU5TSU5HIE1JIDQ4OTEwLTgzNTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTM1ICAgKGhleCkJCVFVSU5UQVIgQ09NUEFOWQorMDBDMDM1ICAgICAoYmFzZSAxNikJCVFVSU5UQVIgQ09NUEFOWQorCQkJCTM3MCBBTUFQT0xBIEFWRS4sIFNURS4jMTA2CisJCQkJVE9SUkFOQ0UgQ0EgOTA1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTM2ICAgKGhleCkJCVJBWVRFQ0ggRUxFQ1RST05JQyBDT1JQLgorMDBDMDM2ICAgICAoYmFzZSAxNikJCVJBWVRFQ0ggRUxFQ1RST05JQyBDT1JQLgorCQkJCTJGLCBOTy42LCBMQU5FIDQ5NworCQkJCUNIVU5HIENIRU5HIFJELCBIU0lOIFRJRU4gQ0lUWSBUQUlQRUkgSFMKKwkJCQlUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1DMC0zNyAgIChoZXgpCQlEWU5BVEVNCiswMEMwMzcgICAgIChiYXNlIDE2KQkJRFlOQVRFTQorCQkJCTE1Nzk1IFJPQ0tGSUVMRCBCTFZELgorCQkJCVNVSVRFCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC0zOCAgIChoZXgpCQlSQVNURVIgSU1BR0UgUFJPQ0VTU0lORyBTWVNURU0KKzAwQzAzOCAgICAgKGJhc2UgMTYpCQlSQVNURVIgSU1BR0UgUFJPQ0VTU0lORyBTWVNURU0KKwkJCQk0NjY1IE5BVVRJTFVTIENPVVJUIFNPVVRICisJCQkJQk9VTERFUiBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtMzkgICAoaGV4KQkJVGVyaWRpYW4gU2VtaWNvbmR1Y3RvciBDb3Jwb3JhdGlvbgorMDBDMDM5ICAgICAoYmFzZSAxNikJCVRlcmlkaWFuIFNlbWljb25kdWN0b3IgQ29ycG9yYXRpb24KKwkJCQk2NDQwIE9hayBDYW55b24KKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTNBICAgKGhleCkJCU1FTi1NSUtSTyBFTEVLVFJPTklLIEdNQkgKKzAwQzAzQSAgICAgKGJhc2UgMTYpCQlNRU4tTUlLUk8gRUxFS1RST05JSyBHTUJICisJCQkJV0lFU0VOVEFMU1RSQVNTRSA0MAorCQkJCVctODUwMCBOVUVSTkJFUkcgOTAKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1DMC0zQiAgIChoZXgpCQlNVUxUSUFDQ0VTUyBDT01QVVRJTkcgQ09SUC4KKzAwQzAzQiAgICAgKGJhc2UgMTYpCQlNVUxUSUFDQ0VTUyBDT01QVVRJTkcgQ09SUC4KKwkJCQk1MzUwIEhPTExJU1RFUiBBVkUuLCBTVEUuCisJCQkJU0FOVEEgQkFSQkFSQSBDQSA5MzExMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtM0MgICAoaGV4KQkJVE9XRVIgVEVDSCBTLlIuTC4KKzAwQzAzQyAgICAgKGJhc2UgMTYpCQlUT1dFUiBURUNIIFMuUi5MLgorCQkJCVZJQSBSSURPTEZJIDYsOAorCQkJCTU2MTI0IFBJU0EKKwkJCQlJVEFMWQorCQkJCUlUQUxZCisKKzAwLUMwLTNEICAgKGhleCkJCVdJRVNFTUFOTiAmIFRIRUlTIEdNQkgKKzAwQzAzRCAgICAgKGJhc2UgMTYpCQlXSUVTRU1BTk4gJiBUSEVJUyBHTUJICisJCQkJV0lUVEVORVIgU1RSLiAzMTIKKwkJCQk1NjAwIFdVUFBFUlRBTCAyCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQzAtM0UgICAoaGV4KQkJRkEuIEdFQlIuIEhFTExFUiBHTUJICiswMEMwM0UgICAgIChiYXNlIDE2KQkJRkEuIEdFQlIuIEhFTExFUiBHTUJICisJCQkJUC5PLiBCT1ggMTQyOCwgREVQLiBFRTcKKwkJCQk3NDQwIE5VUlRJTkdFTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUMwLTNGICAgKGhleCkJCVNUT1JFUyBBVVRPTUFURUQgU1lTVEVNUywgSU5DLgorMDBDMDNGICAgICAoYmFzZSAxNikJCVNUT1JFUyBBVVRPTUFURUQgU1lTVEVNUywgSU5DLgorCQkJCTEzNjAgQURBTVMgUk9BRAorCQkJCUJFTlNBTEVNIFBBIDE5MDIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC00MCAgIChoZXgpCQlFQ0NJCiswMEMwNDAgICAgIChiYXNlIDE2KQkJRUNDSQorCQkJCTE1MDcwLUIgQVZFTlVFIE9GIFNDSUVOQ0UKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTQxICAgKGhleCkJCURJR0lUQUwgVFJBTlNNSVNTSU9OIFNZU1RFTVMKKzAwQzA0MSAgICAgKGJhc2UgMTYpCQlESUdJVEFMIFRSQU5TTUlTU0lPTiBTWVNURU1TCisJCQkJNDgzMCBSSVZFUiBHUkVFTiBQQVJLV0FZCisJCQkJRFVMVVRIIEdBIDMwMTM2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC00MiAgIChoZXgpCQlEQVRBTFVYIENPUlAuCiswMEMwNDIgICAgIChiYXNlIDE2KQkJREFUQUxVWCBDT1JQLgorCQkJCTI4MzYgQ0VTU05BIERSSVZFCisJCQkJV0lOQ0hFU1RFUiBWQSAyMjYwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNDMgICAoaGV4KQkJU1RSQVRBQ09NCiswMEMwNDMgICAgIChiYXNlIDE2KQkJU1RSQVRBQ09NCisJCQkJMTQwMCBQQVJLTU9PUiBBVkVOVUUKKwkJCQlTQU4gSk9TRSBDQSA5NTEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNDQgICAoaGV4KQkJRU1DT00gQ09SUE9SQVRJT04KKzAwQzA0NCAgICAgKGJhc2UgMTYpCQlFTUNPTSBDT1JQT1JBVElPTgorCQkJCTg0MCBBVkVOVUUKKwkJCQlQTEFOTyBUWCA3NTA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNDUgICAoaGV4KQkJSVNPTEFUSU9OIFNZU1RFTVMsIExURC4KKzAwQzA0NSAgICAgKGJhc2UgMTYpCQlJU09MQVRJT04gU1lTVEVNUywgTFRELgorCQkJCTI2IFNJWCBQT0lOVCBST0FECisJCQkJVE9ST05UTywgT05UQVJJTworCQkJCUNBTkFEQSBNOFogMlc5CisJCQkJQ0FOQURBCisKKzAwLUMwLTQ2ICAgKGhleCkJCUJsdWUgQ2hpcCBUZWNobm9sb2d5IEx0ZAorMDBDMDQ2ICAgICAoYmFzZSAxNikJCUJsdWUgQ2hpcCBUZWNobm9sb2d5IEx0ZAorCQkJCUNob3dsZXkgT2FrIExhbmUKKwkJCQlUYXR0ZW5oYWxsCisJCQkJQ2hlc3RlciBDaGVzaGlyZSBDSDMgOUVYCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtNDcgICAoaGV4KQkJVU5JTUlDUk8gU1lTVEVNUywgSU5DLgorMDBDMDQ3ICAgICAoYmFzZSAxNikJCVVOSU1JQ1JPIFNZU1RFTVMsIElOQy4KKwkJCQk0NDM4MiBTLiBHUklNTUVSIEJMVkQuCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNDggICAoaGV4KQkJQkFZIFRFQ0hOSUNBTCBBU1NPQ0lBVEVTCiswMEMwNDggICAgIChiYXNlIDE2KQkJQkFZIFRFQ0hOSUNBTCBBU1NPQ0lBVEVTCisJCQkJMjAwIE4uIFNFQ09ORCBTVFJFRVQKKwkJCQlQLk8uIEJPWCAzODcKKwkJCQlCQVkgU1QuIExPVUlTIE1TIDM5NTIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC00OSAgIChoZXgpCQlVLlMuIFJPQk9USUNTLCBJTkMuCiswMEMwNDkgICAgIChiYXNlIDE2KQkJVS5TLiBST0JPVElDUywgSU5DLgorCQkJCTgxMDAgTk9SVEggTUNDT1JNSUNLIEJMVkQuCisJCQkJU0tPS0lFIElMIDYwMDc2LTI5OTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTRBICAgKGhleCkJCUdST1VQIDIwMDAgQUcKKzAwQzA0QSAgICAgKGJhc2UgMTYpCQlHUk9VUCAyMDAwIEFHCisJCQkJUC5PLiBCT1ggMzMxCisJCQkJVEFOTkFHRVJURU5TVFIuIDkgQ0gtODYzNSBEVVJOVEVOCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC1DMC00QiAgIChoZXgpCQlDUkVBVElWRSBNSUNST1NZU1RFTVMKKzAwQzA0QiAgICAgKGJhc2UgMTYpCQlDUkVBVElWRSBNSUNST1NZU1RFTVMKKwkJCQk5LCBBVkVOVUUgRFUgQ0FOQURBCisJCQkJUEFSQyBISUdIVEVDIDYgWi5BLiBERSBDT1VSVEFCT0VVRgorCQkJCTkxOTY2IExFUyBVTElTLS0tRlJBTkMKKwkJCQlGUkFOQ0UKKworMDAtQzAtNEMgICAoaGV4KQkJREVQQVJUTUVOVCBPRiBGT1JFSUdOIEFGRkFJUlMKKzAwQzA0QyAgICAgKGJhc2UgMTYpCQlERVBBUlRNRU5UIE9GIEZPUkVJR04gQUZGQUlSUworCQkJCSYgVFJBREUKKwkJCQlBRE1JTklTVFJBVElWRSBCVUlMRElORyBQQVJLRVMgUExBQ0UsICBQCisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLUMwLTREICAgKGhleCkJCU1JVEVDLCBJTkMuCiswMEMwNEQgICAgIChiYXNlIDE2KQkJTUlURUMsIElOQy4KKwkJCQlCUi1LQU1FSURPIDEgQlVJTERJTkcKKwkJCQlaLTMzLTEsIEtBTUVJRE8sIEtPVVRPVS1LVSBUT0tZTywgMTM2CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC00RSAgIChoZXgpCQlDT01UUk9MIENPUlBPUkFUSU9OCiswMEMwNEUgICAgIChiYXNlIDE2KQkJQ09NVFJPTCBDT1JQT1JBVElPTgorCQkJCTI2NzUgUEFUVE9OIFJPQUQKKwkJCQlTVC4gUEFVTCBNTiA1NTExMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNEYgICAoaGV4KQkJREVMTCBDT01QVVRFUiBDT1JQT1JBVElPTgorMDBDMDRGICAgICAoYmFzZSAxNikJCURFTEwgQ09NUFVURVIgQ09SUE9SQVRJT04KKwkJCQkxODA3IFdFU1QgQlJBS0VSIExBTkUtQkxERy4KKwkJCQlBVVNUSU4gVFggNzg3NTgtMzYxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNTAgICAoaGV4KQkJVE9ZTyBERU5LSSBTRUlaTyBLLksuCiswMEMwNTAgICAgIChiYXNlIDE2KQkJVE9ZTyBERU5LSSBTRUlaTyBLLksuCisJCQkJNC02LTMyIEhJR0FTSElLQVNISVdBR0FZQQorCQkJCUVCSU5BU0hJCisJCQkJS0FOQUdBV0EgSkFQQU4gMjQzLTA0CisJCQkJSkFQQU4KKworMDAtQzAtNTEgICAoaGV4KQkJQURWQU5DRUQgSU5URUdSQVRJT04gUkVTRUFSQ0gKKzAwQzA1MSAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBJTlRFR1JBVElPTiBSRVNFQVJDSAorCQkJCTIxODggREVMIEZSQU5DTyBTVFJFRVQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNTIgICAoaGV4KQkJQlVSUi1CUk9XTgorMDBDMDUyICAgICAoYmFzZSAxNikJCUJVUlItQlJPV04KKwkJCQlQLk8uIEJPWCAxMTQwMAorCQkJCVRVQ1NPTiBBWiA4NTczNC0xNDAwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC01MyAgIChoZXgpCQlBc3BlY3QgU29mdHdhcmUgSW5jLgorMDBDMDUzICAgICAoYmFzZSAxNikJCUFzcGVjdCBTb2Z0d2FyZSBJbmMuCisJCQkJNiBUZWNobm9sb2d5IFBhcmsgRHJpdmUKKwkJCQlXZXN0Zm9yZCBNQSAwMTg4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNTQgICAoaGV4KQkJTkVUV09SSyBQRVJJUEhFUkFMUywgTFRELgorMDBDMDU0ICAgICAoYmFzZSAxNikJCU5FVFdPUksgUEVSSVBIRVJBTFMsIExURC4KKwkJCQk0VEggRkxPT1IsIDE3IEJPV0FURVIgUkQuCisJCQkJV0VTVE1JTlNURVIgSU5EVVNUUklBTCBFU1RBVEUgTE9ORE9OIFNFCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLTU1ICAgKGhleCkJCU1PRFVMQVIgQ09NUFVUSU5HIFRFQ0hOT0xPR0lFUworMDBDMDU1ICAgICAoYmFzZSAxNikJCU1PRFVMQVIgQ09NUFVUSU5HIFRFQ0hOT0xPR0lFUworCQkJCTIzNTIgTUFJTiBTVFJFRVQKKwkJCQlDT05DT1JEIE1BIDAxNzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC01NiAgIChoZXgpCQlTT01FTEVDCiswMEMwNTYgICAgIChiYXNlIDE2KQkJU09NRUxFQworCQkJCUJQIDcwMTAgLSA5NTA1MAorCQkJCUNFUkdZIFBPTlRPSVNFIENFREVYCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzAwLUMwLTU3ICAgKGhleCkJCU1ZQ08gRUxFQ1RST05JQ1MKKzAwQzA1NyAgICAgKGJhc2UgMTYpCQlNWUNPIEVMRUNUUk9OSUNTCisJCQkJTVVTU0VST05HUkFORCAxRworCQkJCVMtNzU2IFVQUFNBTEEKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtQzAtNTggICAoaGV4KQkJREFUQUVYUEVSVCBDT1JQLgorMDBDMDU4ICAgICAoYmFzZSAxNikJCURBVEFFWFBFUlQgQ09SUC4KKwkJCQkxMTU2IFNPTk9QUkEgQ09VUlROLUtBTkcgUkQuCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC01OSAgIChoZXgpCQlERU5TTyBDT1JQT1JBVElPTgorMDBDMDU5ICAgICAoYmFzZSAxNikJCURFTlNPIENPUlBPUkFUSU9OCisJCQkJMS0xLCBTaG93YS1jaG8sCisJCQkJS2FyaXlhLXNoaSwgQWljaGkgNDQ4LTg2NjEKKwkJCQlKQVBBTgorCiswMC1DMC01QSAgIChoZXgpCQlTRU1BUEhPUkUgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwQzA1QSAgICAgKGJhc2UgMTYpCQlTRU1BUEhPUkUgQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQkyMTcgSFVNQk9MRFQgQ09VUlQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODktMTMwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNUIgICAoaGV4KQkJTkVUV09SS1MgTk9SVEhXRVNULCBJTkMuCiswMEMwNUIgICAgIChiYXNlIDE2KQkJTkVUV09SS1MgTk9SVEhXRVNULCBJTkMuCisJCQkJUC5PLiBCT1ggMTE4OAorCQkJCUlTU0FRVUFIIFdBIDk4MDI3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC01QyAgIChoZXgpCQlFTE9ORVggUExDCiswMEMwNUMgICAgIChiYXNlIDE2KQkJRUxPTkVYIFBMQworCQkJCTIgQVBTTEVZIFdBWQorCQkJCUxPTkRPTiwgTlcyIDdIRgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtNUQgICAoaGV4KQkJTCZOIFRFQ0hOT0xPR0lFUworMDBDMDVEICAgICAoYmFzZSAxNikJCUwmTiBURUNITk9MT0dJRVMKKwkJCQkyODk5IEFHT1VSQSBST0FEICMxOTYKKwkJCQlXRVNUTEFLRSBWSUxMQUdFIENBIDkxMzYxLTMyMDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTVFICAgKGhleCkJCVZBUkktTElURSwgSU5DLgorMDBDMDVFICAgICAoYmFzZSAxNikJCVZBUkktTElURSwgSU5DLgorCQkJCTIwMSBSRUdBTCBST1cKKwkJCQlEQUxMQVMgVFggNzUyNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTVGICAgKGhleCkJCUZJTkUtUEFMIENPTVBBTlkgTElNSVRFRAorMDBDMDVGICAgICAoYmFzZSAxNikJCUZJTkUtUEFMIENPTVBBTlkgTElNSVRFRAorCQkJCVJNLiA5LCAxMUYsIEtJTkdTRk9SRCBJTkQuIENUUgorCQkJCTEzLCBXQU5HIEhPSSBST0FEIEtPV0xPT04gQkFZLCBLTE4KKwkJCQlIT05HIEtPTkcKKwkJCQlIT05HIEtPTkcKKworMDAtQzAtNjAgICAoaGV4KQkJSUQgU0NBTkRJTkFWSUEgQVMKKzAwQzA2MCAgICAgKGJhc2UgMTYpCQlJRCBTQ0FORElOQVZJQSBBUworCQkJCVAuTy4gQk9YIDQyMjcKKwkJCQlOLTUwMjggQkVSR0VOCisJCQkJTk9SV0FZCisJCQkJTk9SV0FZCisKKzAwLUMwLTYxICAgKGhleCkJCVNPTEVDVEVLIENPUlBPUkFUSU9OCiswMEMwNjEgICAgIChiYXNlIDE2KQkJU09MRUNURUsgQ09SUE9SQVRJT04KKwkJCQk2MzcwIE5BTkNZIFJJREdFIERSLi1TVEUuIzEwOQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNjIgICAoaGV4KQkJSU1QVUxTRSBURUNITk9MT0dZCiswMEMwNjIgICAgIChiYXNlIDE2KQkJSU1QVUxTRSBURUNITk9MT0dZCisJCQkJMjEwIERBSExPTkVHQSBTVC4jMjA0CisJCQkJQ1VNTUlORyBHQSAzMDEzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNjMgICAoaGV4KQkJTU9STklORyBTVEFSIFRFQ0hOT0xPR0lFUywgSU5DCiswMEMwNjMgICAgIChiYXNlIDE2KQkJTU9STklORyBTVEFSIFRFQ0hOT0xPR0lFUywgSU5DCisJCQkJMTc2MCBaT0xMSU5HRVIgUk9BRAorCQkJCUNPTFVNQlVTIE9IIDQzMjIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC02NCAgIChoZXgpCQlHRU5FUkFMIERBVEFDT01NIElORC4gSU5DLgorMDBDMDY0ICAgICAoYmFzZSAxNikJCUdFTkVSQUwgREFUQUNPTU0gSU5ELiBJTkMuCisJCQkJUEFSSyBST0FEIEVYVEVOU0lPTgorCQkJCVAuTy4gQk9YIDEyOTkKKwkJCQlNSURETEVCVVJZIENUIDA2NzYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC02NSAgIChoZXgpCQlTQ09QRSBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBDMDY1ICAgICAoYmFzZSAxNikJCVNDT1BFIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTAwIE9USVMgU1RSRUVUCisJCQkJTk9SVEhCT1JPIE1BIDAxNTMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC02NiAgIChoZXgpCQlET0NVUE9JTlQsIElOQy4KKzAwQzA2NiAgICAgKGJhc2UgMTYpCQlET0NVUE9JTlQsIElOQy4KKwkJCQkyNzAxIEJBWVZJRVcgRFJJVkUKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC02NyAgIChoZXgpCQlVTklURUQgQkFSQ09ERSBJTkRVU1RSSUVTCiswMEMwNjcgICAgIChiYXNlIDE2KQkJVU5JVEVEIEJBUkNPREUgSU5EVVNUUklFUworCQkJCTEyMjQwIElORElBTiBDUkVFSyBDT1VSVAorCQkJCUJFTFRTVklMTEUgTUQgMjA3MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTY4ICAgKGhleCkJCUhNRSBDbGVhci1Db20gTFRELgorMDBDMDY4ICAgICAoYmFzZSAxNikJCUhNRSBDbGVhci1Db20gTFRELgorCQkJCTc0MDAgQmVhY2ggRHJpdmUKKwkJCQlXYXRlcmJlYWNoCisJCQkJQ2FtYnJpZGdlc2hpcmUgIENCMjUgOVRQCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtNjkgICAoaGV4KQkJQXh4Y2VsZXJhIEJyb2FkYmFuZCBXaXJlbGVzcworMDBDMDY5ICAgICAoYmFzZSAxNikJCUF4eGNlbGVyYSBCcm9hZGJhbmQgV2lyZWxlc3MKKwkJCQkxMTEgQ2FzdGlsaWFuIERyaXZlCisJCQkJU2FudGEgQmFyYmFyYSBDQSA5MzExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNkEgICAoaGV4KQkJWkFITkVSLUVMRUtUUklLIEdNQkggJiBDTy4gS0cKKzAwQzA2QSAgICAgKGJhc2UgMTYpCQlaQUhORVItRUxFS1RSSUsgR01CSCAmIENPLiBLRworCQkJCVAuTy4gQk9YIDE4NDYKKwkJCQlUSFVFUklOR0VSIFNUUkFTU0UgMTIgRFctODY0MCBLUk9OQUNILUdVCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQzAtNkIgICAoaGV4KQkJT1NJIFBMVVMgQ09SUE9SQVRJT04KKzAwQzA2QiAgICAgKGJhc2UgMTYpCQlPU0kgUExVUyBDT1JQT1JBVElPTgorCQkJCTItMS0yMyBOQUtBTUVHVVJPCisJCQkJTUVHVVJPLUtVLCBUT0tZTyAgMTUzCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC02QyAgIChoZXgpCQlTVkVDIENPTVBVVEVSIENPUlAuCiswMEMwNkMgICAgIChiYXNlIDE2KQkJU1ZFQyBDT01QVVRFUiBDT1JQLgorCQkJCTNGLCA1MzEtMSBDSFVORyBDSEVORyBSRC4KKwkJCQlIU0lOLVRJRU4gQ0lUWSwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUMwLTZEICAgKGhleCkJCUJPQ0EgUkVTRUFSQ0gsIElOQy4KKzAwQzA2RCAgICAgKGJhc2UgMTYpCQlCT0NBIFJFU0VBUkNILCBJTkMuCisJCQkJNjQwMSBDT05HUkVTUyBBVkVOVUUKKwkJCQlCT0NBIFJBVE9OIEZMIDMzNDg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC02RSAgIChoZXgpCQlIQUZUIFRFQ0hOT0xPR1ksIElOQy4KKzAwQzA2RSAgICAgKGJhc2UgMTYpCQlIQUZUIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQlEQUlOSS1ET0hPIEJMREcuCisJCQkJMy1DSE9NRSAyNC03IE5JTk9NSVlBIFRTVUtVQkEgSUJBUkFHSQorCQkJCTMwNSBKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLTZGICAgKGhleCkJCUtPTUFUU1UgTFRELgorMDBDMDZGICAgICAoYmFzZSAxNikJCUtPTUFUU1UgTFRELgorCQkJCTI1OTcgU0hJTk9NSVlBIEhJUkFUU1VLQS1TSEkKKwkJCQlLQU5BR0FXQSAyNTQKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLTcwICAgKGhleCkJCVNFQ1RSQSBTRUNVUkUtVFJBTlNNSVNTSU9OIEFCCiswMEMwNzAgICAgIChiYXNlIDE2KQkJU0VDVFJBIFNFQ1VSRS1UUkFOU01JU1NJT04gQUIKKwkJCQlURUtOSUtSSU5HRU4gMgorCQkJCVMtNTgzIDMwIExJTktPUElORworCQkJCVNXRURFTgorCQkJCVNXRURFTgorCiswMC1DMC03MSAgIChoZXgpCQlBUkVBTkVYIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEMwNzEgICAgIChiYXNlIDE2KQkJQVJFQU5FWCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTMzMzMgT0NUQVZJVVMgRFJJVkUgVU5JVCBDCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTcyICAgKGhleCkJCUtOWCBMVEQuCiswMEMwNzIgICAgIChiYXNlIDE2KQkJS05YIExURC4KKwkJCQlIT0xMSU5HV09PRCBIT1VTRQorCQkJCVdFU1QgQ0hFVklOIFJPQUQgT1RMRVksIFcuIFlPUktTSElSRQorCQkJCUxTMjEgM0hBIFVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtNzMgICAoaGV4KQkJWEVESUEgQ09SUE9SQVRJT04KKzAwQzA3MyAgICAgKGJhc2UgMTYpCQlYRURJQSBDT1JQT1JBVElPTgorCQkJCTMwMSBCQUxMQVJEVkFMRSBTVFJFRVQKKwkJCQlXSUxNSU5HVE9OIE1BIDAxODg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC03NCAgIChoZXgpCQlUT1lPREEgQVVUT01BVElDIExPT00KKzAwQzA3NCAgICAgKGJhc2UgMTYpCQlUT1lPREEgQVVUT01BVElDIExPT00KKwkJCQlXT1JLUywgTFRELgorCQkJCTItMSwgVE9ZT0RBLUNITywgS0FSSVlBLVNISSBBSUNISS1LRU4KKwkJCQk0NDggSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC03NSAgIChoZXgpCQlYQU5URSBDT1JQT1JBVElPTgorMDBDMDc1ICAgICAoYmFzZSAxNikJCVhBTlRFIENPUlBPUkFUSU9OCisJCQkJMjU1OSBFTU9HRU5FIFNUUkVFVAorCQkJCU1PQklMRSBBTCAzNjYwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNzYgICAoaGV4KQkJSS1EQVRBIElOVEVSTkFUSU9OQUwgQS1TCiswMEMwNzYgICAgIChiYXNlIDE2KQkJSS1EQVRBIElOVEVSTkFUSU9OQUwgQS1TCisJCQkJMzUtNDMgVkFEU1RSVVBWRUoKKwkJCQlESy0yODgwIEJBR1NWQUVSRAorCQkJCURFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLUMwLTc3ICAgKGhleCkJCURBRVdPTyBURUxFQ09NIExURC4KKzAwQzA3NyAgICAgKGJhc2UgMTYpCQlEQUVXT08gVEVMRUNPTSBMVEQuCisJCQkJUFJPRFVDVFMgREVTSUdOIERFUFQuIDEKKwkJCQlQUk9EVUNUUyBERVNJR04gQ0VOVEVSIFNPQ0hPLiBQLk8uIEJPWCAxCisJCQkJU0VPVUwgU0VPVUwgS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtQzAtNzggICAoaGV4KQkJQ09NUFVURVIgU1lTVEVNUyBFTkdJTkVFUklORworMDBDMDc4ICAgICAoYmFzZSAxNikJCUNPTVBVVEVSIFNZU1RFTVMgRU5HSU5FRVJJTkcKKwkJCQk0Njc5MSBGUkVNT05UIEJMVkQuCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtNzkgICAoaGV4KQkJRk9OU1lTIENPLixMVEQuCiswMEMwNzkgICAgIChiYXNlIDE2KQkJRk9OU1lTIENPLixMVEQuCisJCQkJMjA5LTUsIFlBTkdKQUUsIFNFT0NITworCQkJCVNFT1VMICBBMzcxMzAKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1DMC03QSAgIChoZXgpCQlQUklWQSBCLlYuCiswMEMwN0EgICAgIChiYXNlIDE2KQkJUFJJVkEgQi5WLgorCQkJCVAuTy4gQk9YIDE4CisJCQkJMjY3OCAgWkcgREUgTElFUiAoWi1IKQorCQkJCU5FVEhFUkxBTkRTCisKKzAwLUMwLTdCICAgKGhleCkJCUFTQ0VORCBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBDMDdCICAgICAoYmFzZSAxNikJCUFTQ0VORCBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTE3MDEgSEFSQk9SIEJBWSBQQVJLV0FZCisJCQkJQUxBTUVEQSBDQSA5NDUwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtN0MgICAoaGV4KQkJSElHSFRFQ0ggSU5GT1JNQVRJT04KKzAwQzA3QyAgICAgKGJhc2UgMTYpCQlISUdIVEVDSCBJTkZPUk1BVElPTgorCQkJCVNZU1RFTSBMVEQuCisJCQkJVU5JVCA3LCAyL0YsIFBPIExVTkcgQ0VOVFJFIDExIFdBTkcgQ0hJVQorCQkJCUhPTkcgS09ORworCQkJCUhPTkcgS09ORworCiswMC1DMC03RCAgIChoZXgpCQlSSVNDIERFVkVMT1BNRU5UUyBMVEQuCiswMEMwN0QgICAgIChiYXNlIDE2KQkJUklTQyBERVZFTE9QTUVOVFMgTFRELgorCQkJCTExNyBIQVRGSUVMRCBST0FECisJCQkJU1QuIEFMQkFOUywgSEVSVFMgQUwxNEo1CisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLTdFICAgKGhleCkJCUtVQk9UQSBDT1JQT1JBVElPTiBFTEVDVFJPTklDCiswMEMwN0UgICAgIChiYXNlIDE2KQkJS1VCT1RBIENPUlBPUkFUSU9OIEVMRUNUUk9OSUMKKwkJCQlERVZJQ0UgREVQVC4KKwkJCQkyLTM1LCBKSU5NVS1DSE8sIFlBTy1DSVRZIE9TQUtBIFBSRUYuCisJCQkJSkFQQU4gIzU4MQorCQkJCUpBUEFOCisKKzAwLUMwLTdGICAgKGhleCkJCU5VUE9OIENPTVBVVElORyBDT1JQLgorMDBDMDdGICAgICAoYmFzZSAxNikJCU5VUE9OIENPTVBVVElORyBDT1JQLgorCQkJCTEzOTEgV0FSTkVSIEFWRS4sIC1TVUlURQorCQkJCVRVU1RJTiBDQSA5MjY4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtODAgICAoaGV4KQkJTkVUU1RBUiwgSU5DLgorMDBDMDgwICAgICAoYmFzZSAxNikJCU5FVFNUQVIsIElOQy4KKwkJCQlDRURBUiBCVVNJTkVTUyBDRU5URVIKKwkJCQkxODAxIEUuIDc5VEggU1RSRUVUCisJCQkJTUlOTkVBUE9MSVMgTU4gNTU0MjUtMTIzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtODEgICAoaGV4KQkJTUVUUk9EQVRBIExURC4KKzAwQzA4MSAgICAgKGJhc2UgMTYpCQlNRVRST0RBVEEgTFRELgorCQkJCUJMRU5IRUlNIEhPVVNFCisJCQkJQ1JBQlRSRUUgT0ZGSUNFIFZJTExBR0UgRVZFUlNMRVkgV0FZLCBFRworCQkJCVRXMjAgOFJZIFRXMjAgOFJZIEVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1DMC04MiAgIChoZXgpCQlNT09SRSBQUk9EVUNUUyBDTy4KKzAwQzA4MiAgICAgKGJhc2UgMTYpCQlNT09SRSBQUk9EVUNUUyBDTy4KKwkJCQlTVU1ORVlUT1dOIFBJS0UKKwkJCQlTUFJJTkcgSE9VU0UgUEEgMTk0NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTgzICAgKGhleCkJCVRSQUNFIE1PVU5UQUlOIFBST0RVQ1RTLCBJTkMuCiswMEMwODMgICAgIChiYXNlIDE2KQkJVFJBQ0UgTU9VTlRBSU4gUFJPRFVDVFMsIElOQy4KKwkJCQkxMDQwIEVBU1QgQlJPS0FXIFJPQUQKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtODQgICAoaGV4KQkJREFUQSBMSU5LIENPUlAuIExURC4KKzAwQzA4NCAgICAgKGJhc2UgMTYpCQlEQVRBIExJTksgQ09SUC4gTFRELgorCQkJCTMtMTUtMyBNSURPUklDSE8KKwkJCQlUT0tPUk9aQVdBLUNJVFkgU0FJVEFNQSAgMzU5CisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC04NSAgIChoZXgpCQlFTEVDVFJPTklDUyBGT1IgSU1BR0lORywgSU5DLgorMDBDMDg1ICAgICAoYmFzZSAxNikJCUVMRUNUUk9OSUNTIEZPUiBJTUFHSU5HLCBJTkMuCisJCQkJMjg1NSBDQU1QVVMgRFJJVkUKKwkJCQlTQU4gTUFURU8gQ0EgOTQ0MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTg2ICAgKGhleCkJCVRIRSBMWU5LIENPUlBPUkFUSU9OCiswMEMwODYgICAgIChiYXNlIDE2KQkJVEhFIExZTksgQ09SUE9SQVRJT04KKwkJCQkxMDEgUVVFRU5TIERSSVZFCisJCQkJS0lORyBPRiBQUlVTU0lBIFBBIDE5NDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC04NyAgIChoZXgpCQlVVU5FVCBURUNITk9MT0dJRVMsIElOQy4KKzAwQzA4NyAgICAgKGJhc2UgMTYpCQlVVU5FVCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkzMTEwIEZBSVJWSUVXIFBBUksgRFIuICM1NzAKKwkJCQlGQUxMUyBDSFVSQ0ggVkEgMjIwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTg4ICAgKGhleCkJCUVLRiBFTEVLVFJPTklLIEdNQkgKKzAwQzA4OCAgICAgKGJhc2UgMTYpCQlFS0YgRUxFS1RST05JSyBHTUJICisJCQkJUEhJTElQUC1SRUlTLVNUUi4gNAorCQkJCTQ3MDAgSEFNTQorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUMwLTg5ICAgKGhleCkJCVRFTElORFVTIERJU1RSSUJVVElPTgorMDBDMDg5ICAgICAoYmFzZSAxNikJCVRFTElORFVTIERJU1RSSUJVVElPTgorCQkJCUdFTERFTkFBS1NFQkFBTiAzMzUKKwkJCQkzMDAxIEhFVkVSTEVFCisJCQkJQkVMR0lVTQorCQkJCUJFTEdJVU0KKworMDAtQzAtOEEgICAoaGV4KQkJTGF1dGVyYmFjaCBHbWJICiswMEMwOEEgICAgIChiYXNlIDE2KQkJTGF1dGVyYmFjaCBHbWJICisJCQkJQWx0bGF1ZnN0ci4gNDAsCisJCQkJSPZoZW5raXJjaGVuLVNpZWdlcnRzYnJ1bm4sIDg1NjM1CisJCQkJR0VSTUFOWQorCiswMC1DMC04QiAgIChoZXgpCQlSSVNRIE1PRFVMQVIgU1lTVEVNUywgSU5DLgorMDBDMDhCICAgICAoYmFzZSAxNikJCVJJU1EgTU9EVUxBUiBTWVNURU1TLCBJTkMuCisJCQkJMzk4OTkgQkFMRU5USU5FIERSSVZFLVNURSAjMzc1CisJCQkJTkVXQVJLIENBIDk0NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC04QyAgIChoZXgpCQlQRVJGT1JNQU5DRSBURUNITk9MT0dJRVMsIElOQy4KKzAwQzA4QyAgICAgKGJhc2UgMTYpCQlQRVJGT1JNQU5DRSBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkzMTUgU0NJRU5DRSBQQVJLV0FZCisJCQkJUk9DSEVTVEVSIE5ZIDE0NjIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC04RCAgIChoZXgpCQlUUk9OSVggUFJPRFVDVCBERVZFTE9QTUVOVAorMDBDMDhEICAgICAoYmFzZSAxNikJCVRST05JWCBQUk9EVUNUIERFVkVMT1BNRU5UCisJCQkJNDkwOCBFLiBNQ0RPV0VMTCBSRC4gU1RFLiMxMDAKKwkJCQlQSE9FTklYIEFaIDg1MDA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC04RSAgIChoZXgpCQlORVRXT1JLIElORk9STUFUSU9OIFRFQ0hOT0xPR1kKKzAwQzA4RSAgICAgKGJhc2UgMTYpCQlORVRXT1JLIElORk9STUFUSU9OIFRFQ0hOT0xPR1kKKwkJCQkxMDQzMCBTLiBERSBBTlpBIEJMVkQuCisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC04RiAgIChoZXgpCQlQYW5hc29uaWMgRWxlY3RyaWMgV29ya3MgQ28uLCBMdGQuCiswMEMwOEYgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIEVsZWN0cmljIFdvcmtzIENvLiwgTHRkLgorCQkJCVRzdS1GYWN0b3J5CisJCQkJMTY2OCBGdWppa2F0YSBUc3Utc2hpCisJCQkJTWllLWtlbiA1MTQtODU1NSAKKwkJCQlKQVBBTgorCiswMC1DMC05MCAgIChoZXgpCQlQUkFJTSBTLlIuTC4KKzAwQzA5MCAgICAgKGJhc2UgMTYpCQlQUkFJTSBTLlIuTC4KKwkJCQlWSUEgTUFDQ0FOSSwgMTY5CisJCQkJMzgxMDAgVFJFTlRPIChUTikKKwkJCQlJVEFMWQorCiswMC1DMC05MSAgIChoZXgpCQlKQUJJTCBDSVJDVUlULCBJTkMuCiswMEMwOTEgICAgIChiYXNlIDE2KQkJSkFCSUwgQ0lSQ1VJVCwgSU5DLgorCQkJCTMyMjc1IE1BTExZIFJPQUQKKwkJCQlNQURJU09OIEhFSUdIVFMgTUkgNDgwNzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTkyICAgKGhleCkJCU1FTk5FTiBNRURJQ0FMIElOQy4KKzAwQzA5MiAgICAgKGJhc2UgMTYpCQlNRU5ORU4gTUVESUNBTCBJTkMuCisJCQkJMTAxMjMgTUFJTiBTVFJFRVQKKwkJCQlDTEFSRU5DRSBOWSAxNDAzMS0yMDk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC05MyAgIChoZXgpCQlBTFRBIFJFU0VBUkNIIENPUlAuCiswMEMwOTMgICAgIChiYXNlIDE2KQkJQUxUQSBSRVNFQVJDSCBDT1JQLgorCQkJCTYxNCBTT1VUSCBGRURFUkFMIEhJR0hXQVkKKwkJCQlERUVSRklFTEQgQkVBQ0ggRkwgMzM0NDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTk0ICAgKGhleCkJCVZNWCBJTkMuCiswMEMwOTQgICAgIChiYXNlIDE2KQkJVk1YIElOQy4KKwkJCQkyMTE1IE8nTkVMIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTk1ICAgKGhleCkJCVpOWVgKKzAwQzA5NSAgICAgKGJhc2UgMTYpCQlaTllYCisJCQkJNDg0MjEgTWlsbW9udCBEcml2ZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTk2ICAgKGhleCkJCVRBTVVSQSBDT1JQT1JBVElPTgorMDBDMDk2ICAgICAoYmFzZSAxNikJCVRBTVVSQSBDT1JQT1JBVElPTgorCQkJCUNPTU1VTklDQVRJT04gU1lTVEVNUyBESVYuCisJCQkJMTktNDMgSElHQVNISSBPSVpVTUkgMSBDSE9NRSBORVJJTUEtS1UsCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC05NyAgIChoZXgpCQlBUkNISVBFTCBTQQorMDBDMDk3ICAgICAoYmFzZSAxNikJCUFSQ0hJUEVMIFNBCisJCQkJMSBSVUUgRFUgQlVMTE9aCisJCQkJRiA3NDk0MCBBTk5FQ1ktTEUtVklFVVgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtQzAtOTggICAoaGV4KQkJQ0hVTlRFWCBFTEVDVFJPTklDIENPLiwgTFRELgorMDBDMDk4ICAgICAoYmFzZSAxNikJCUNIVU5URVggRUxFQ1RST05JQyBDTy4sIExURC4KKwkJCQk2Ri4sIE5PLjIsIEFMTEVZIDYsIExBTkUgMjM1CisJCQkJUEFPIENISUFPIFJELiwgSFNJTiBUSUVOLCBUQUlQRUkgSFNJRU4KKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQzAtOTkgICAoaGV4KQkJWU9TSElLSSBJTkRVU1RSSUFMIENPLixMVEQuCiswMEMwOTkgICAgIChiYXNlIDE2KQkJWU9TSElLSSBJTkRVU1RSSUFMIENPLixMVEQuCisJCQkJMS0zOCBNQVRTVUdBU0FLSSAyLUNIT01FCisJCQkJWU9ORVpBV0EgWUFNQUdBVEEKKwkJCQk5OTIgSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC05QSAgIChoZXgpCQlQSE9UT05JQ1MgQ09SUE9SQVRJT04KKzAwQzA5QSAgICAgKGJhc2UgMTYpCQlQSE9UT05JQ1MgQ09SUE9SQVRJT04KKwkJCQkyOTQwIE5PUlRIIEZJUlNUIFNUUkVFVAorCQkJCVNBTiBKT1NFIENBIDk1MTIzLTIwMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLTlCICAgKGhleCkJCVJFTElBTkNFIENPTU0vVEVDLCBSLVRFQworMDBDMDlCICAgICAoYmFzZSAxNikJCVJFTElBTkNFIENPTU0vVEVDLCBSLVRFQworCQkJCVNZU1RFTVMgSU5DLgorCQkJCTIxMDAgUkVMSUFOQ0UgUEFSS1dBWSwgIE1TIDIyCisJCQkJQkVERk9SRCBUWCA3NjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtOUMgICAoaGV4KQkJSElPS0kgRS5FLiBDT1JQT1JBVElPTgorMDBDMDlDICAgICAoYmFzZSAxNikJCUhJT0tJIEUuRS4gQ09SUE9SQVRJT04KKwkJCQk4MSBLb2l6dW1pLCBVZWRhLCBOYWdhbm8KKwkJCQlDaGl5b2RhLWt1CisJCQkJVG9reW8gIDM4Ni0xMTkyCisJCQkJSkFQQU4KKworMDAtQzAtOUQgICAoaGV4KQkJRElTVFJJQlVURUQgU1lTVEVNUyBJTlQnTCwgSU5DCiswMEMwOUQgICAgIChiYXNlIDE2KQkJRElTVFJJQlVURUQgU1lTVEVNUyBJTlQnTCwgSU5DCisJCQkJNTMxIFdFU1QgUk9PU0VWTEVUIFJELCBTVEUgIzIKKwkJCQlXSEVBVE9OIElMIDYwMTg3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC05RSAgIChoZXgpCQlDQUNIRSBDT01QVVRFUlMsIElOQy4KKzAwQzA5RSAgICAgKGJhc2UgMTYpCQlDQUNIRSBDT01QVVRFUlMsIElOQy4KKwkJCQk0NjYwMCBMQU5ESU5HIFBBUktXQVkKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC05RiAgIChoZXgpCQlRVUFOVEEgQ09NUFVURVIsIElOQy4KKzAwQzA5RiAgICAgKGJhc2UgMTYpCQlRVUFOVEEgQ09NUFVURVIsIElOQy4KKwkJCQk3Ri4sIDExNiwgSE9VLUtBTkcgU1QuLAorCQkJCVNISUgtTElOIERJU1QuIFRBSVBFSQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1DMC1BMCAgIChoZXgpCQlBRFZBTkNFIE1JQ1JPIFJFU0VBUkNILCBJTkMuCiswMEMwQTAgICAgIChiYXNlIDE2KQkJQURWQU5DRSBNSUNSTyBSRVNFQVJDSCwgSU5DLgorCQkJCTIwNDUgQ09SUE9SQVRFIENPVVJUCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUExICAgKGhleCkJCVRPS1lPIERFTlNISSBTRUtFSSBDTy4KKzAwQzBBMSAgICAgKGJhc2UgMTYpCQlUT0tZTyBERU5TSEkgU0VLRUkgQ08uCisJCQkJMjU1LTEgUkVOS09KSSwgVEFNQS1TSEkKKwkJCQlUT0tZTworCQkJCUpBUEFOIDIwNgorCQkJCUpBUEFOCisKKzAwLUMwLUEyICAgKGhleCkJCUlOVEVSTUVESVVNIEEvUworMDBDMEEyICAgICAoYmFzZSAxNikJCUlOVEVSTUVESVVNIEEvUworCQkJCU9ESU5TVkVKIDE5CisJCQkJREstMjYwMCBHTE9TVFJVUAorCQkJCURFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLUMwLUEzICAgKGhleCkJCURVQUwgRU5URVJQUklTRVMgQ09SUE9SQVRJT04KKzAwQzBBMyAgICAgKGJhc2UgMTYpCQlEVUFMIEVOVEVSUFJJU0VTIENPUlBPUkFUSU9OCisJCQkJOVRIIEZMT09SIDQ4IE5BTi1LQU5HIFJPQUQKKwkJCQlTRUMuMywgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUMwLUE0ICAgKGhleCkJCVVOSUdSQUYgT1kKKzAwQzBBNCAgICAgKGJhc2UgMTYpCQlVTklHUkFGIE9ZCisJCQkJUlVVS0lOVElFIDE4CisJCQkJMDIzMjAgRVNQMDAKKwkJCQlGSU5MQU5ECisJCQkJRklOTEFORAorCiswMC1DMC1BNSAgIChoZXgpCQlESUNLRU5TIERBVEEgU1lTVEVNUworMDBDMEE1ICAgICAoYmFzZSAxNikJCURJQ0tFTlMgREFUQSBTWVNURU1TCisJCQkJMTE3NSBOT1JUSE1FQURPVyBQS1dZLVNURSAjMTUwCisJCQkJUk9TV0VMTCBHQSAzMDA3NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQTYgICAoaGV4KQkJRVhJQ09NIEFVU1RSQUxJQSBQVFkuIExURAorMDBDMEE2ICAgICAoYmFzZSAxNikJCUVYSUNPTSBBVVNUUkFMSUEgUFRZLiBMVEQKKwkJCQk0NC00NiBNQU5EQVJJTiBTVFJFRVQKKwkJCQlWSUxMQVdPT0QgTlNXIDIxNjMKKwkJCQlBVVNUUkFMSUEKKwkJCQlBVVNUUkFMSUEKKworMDAtQzAtQTcgICAoaGV4KQkJU0VFTCBMVEQuCiswMEMwQTcgICAgIChiYXNlIDE2KQkJU0VFTCBMVEQuCisJCQkJMyBZT1VORyBTUVVBUkUKKwkJCQlMSVZJTkdTVE9OICBFSDU0ICA5QkoKKwkJCQlTQ09UTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLUE4ICAgKGhleCkJCUdWQyBDT1JQT1JBVElPTgorMDBDMEE4ICAgICAoYmFzZSAxNikJCUdWQyBDT1JQT1JBVElPTgorCQkJCTE5NjEgQ09OQ09VUlNFIERSSVZFLVNURQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1BOSAgIChoZXgpCQlCQVJST04gTUNDQU5OIExURC4KKzAwQzBBOSAgICAgKGJhc2UgMTYpCQlCQVJST04gTUNDQU5OIExURC4KKwkJCQlCRU1BQyBIT1VTRQorCQkJCUZJRlRIIEFWRU5VRSwgTEVUQ0hXT1JUSCBIRVJUUy4sIFNHNiAySEYKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLUFBICAgKGhleCkJCVNJTElDT04gVkFMTEVZIENPTVBVVEVSCiswMEMwQUEgICAgIChiYXNlIDE2KQkJU0lMSUNPTiBWQUxMRVkgQ09NUFVURVIKKwkJCQk0NDEgTi4gV0hJU01BTiBSRC4sIEJMREcuIzEzCisJCQkJTVQuIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUFCICAgKGhleCkJCVRlbGNvIFN5c3RlbXMsIEluYy4KKzAwQzBBQiAgICAgKGJhc2UgMTYpCQlUZWxjbyBTeXN0ZW1zLCBJbmMuCisJCQkJMTUgQmVya3NoaXJlIFJvYWQKKwkJCQlNYW5zZmllbGQsIE1BIDAyMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1BQyAgIChoZXgpCQlHQU1CSVQgQ09NUFVURVIgQ09NTVVOSUNBVElPTlMKKzAwQzBBQyAgICAgKGJhc2UgMTYpCQlHQU1CSVQgQ09NUFVURVIgQ09NTVVOSUNBVElPTlMKKwkJCQlTT0xUQU0gSU5EVVNUUklBTCBQQVJLCisJCQkJUC5PLiBCT1ggMTA3IFlPS05FQU0gMjA2OTIKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtQzAtQUQgICAoaGV4KQkJTUFSQkVOIENPTU1VTklDQVRJT04gU1lTVEVNUworMDBDMEFEICAgICAoYmFzZSAxNikJCU1BUkJFTiBDT01NVU5JQ0FUSU9OIFNZU1RFTVMKKwkJCQkxIFJVRSBEVSBCT0lTIENIQUxBTkQKKwkJCQlMSVNTRVMgOTEwMjkgRVZSWSBDRURFWAorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC1DMC1BRSAgIChoZXgpCQlUT1dFUkNPTSBDTy4gSU5DLiBEQkEgUEMgSE9VU0UKKzAwQzBBRSAgICAgKGJhc2UgMTYpCQlUT1dFUkNPTSBDTy4gSU5DLiBEQkEgUEMgSE9VU0UKKwkJCQk4NDEgRS4gQVJURVNJQSBCTFZELgorCQkJCUNBUlNPTiBDQSA5MDc0NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQUYgICAoaGV4KQkJVEVLTE9HSVggSU5DLgorMDBDMEFGICAgICAoYmFzZSAxNikJCVRFS0xPR0lYIElOQy4KKwkJCQkyMTAwIE1FQURPV1ZBTEUgQk9VTEVWQVJECisJCQkJTUlTU0lTU0FVR0EsIE9OVEFSSU8sCisJCQkJQ0FOQURBIEw1TiA3SjkKKwkJCQlDQU5BREEKKworMDAtQzAtQjAgICAoaGV4KQkJR0NDIFRFQ0hOT0xPR0lFUyxJTkMuCiswMEMwQjAgICAgIChiYXNlIDE2KQkJR0NDIFRFQ0hOT0xPR0lFUyxJTkMuCisJCQkJNTgwIFdJTlRFUiBTVFJFRVQKKwkJCQlXQUxUSEFNIE1BIDAyMTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1CMSAgIChoZXgpCQlHRU5JVVMgTkVUIENPLgorMDBDMEIxICAgICAoYmFzZSAxNikJCUdFTklVUyBORVQgQ08uCisJCQkJNEYsIEhBTlNPTyBCL0QgMjEwLTUKKwkJCQlZQU5HSkFFLURPTkcsIFNFT0NITy1HVSBTRU9VTAorCQkJCVNPVVRIIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUMwLUIyICAgKGhleCkJCU5PUkFORCBDT1JQT1JBVElPTgorMDBDMEIyICAgICAoYmFzZSAxNikJCU5PUkFORCBDT1JQT1JBVElPTgorCQkJCTU1MCAyTkQgU1RSRUVUIFNFCisJCQkJQ0VEQVIgUkFQSURTIElBIDUyNDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1CMyAgIChoZXgpCQlDT01TVEFUIERBVEFDT01NIENPUlBPUkFUSU9OCiswMEMwQjMgICAgIChiYXNlIDE2KQkJQ09NU1RBVCBEQVRBQ09NTSBDT1JQT1JBVElPTgorCQkJCTE3MjAgU1BFQ1RSVU0gRFJJVkUKKwkJCQlMQVdSRU5DRVZJTExFIEdBIDMwMjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1CNCAgIChoZXgpCQlNWVNPTiBURUNITk9MT0dZLCBJTkMuCiswMEMwQjQgICAgIChiYXNlIDE2KQkJTVlTT04gVEVDSE5PTE9HWSwgSU5DLgorCQkJCTJGLCBOTy4gMywgSU5EVVNUUlkgRS4gUkQuSVYKKwkJCQlTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSyBIU0lOQ0hVLCAoCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1DMC1CNSAgIChoZXgpCQlDT1JQT1JBVEUgTkVUV09SSyBTWVNURU1TLElOQy4KKzAwQzBCNSAgICAgKGJhc2UgMTYpCQlDT1JQT1JBVEUgTkVUV09SSyBTWVNURU1TLElOQy4KKwkJCQk1NzExIFNJWCBGT1JLUyBST0FELS1TVEUgIzMwNgorCQkJCVJBTEVJR0ggTkMgMjc2MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUI2ICAgKGhleCkJCU92ZXJsYW5kIFN0b3JhZ2UsIEluYy4KKzAwQzBCNiAgICAgKGJhc2UgMTYpCQlPdmVybGFuZCBTdG9yYWdlLCBJbmMuCisJCQkJNDgyMCBPdmVybGFuZCBBdmVudWUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUI3ICAgKGhleCkJCUFNRVJJQ0FOIFBPV0VSIENPTlZFUlNJT04gQ09SUAorMDBDMEI3ICAgICAoYmFzZSAxNikJCUFNRVJJQ0FOIFBPV0VSIENPTlZFUlNJT04gQ09SUAorCQkJCTI2NyBCT1NUT04gUk9BRCAjMgorCQkJCU5PUlRIIEJJTExFUklDQSBNQSAwMTg2MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQjggICAoaGV4KQkJRlJBU0VSJ1MgSElMTCBMVEQuCiswMEMwQjggICAgIChiYXNlIDE2KQkJRlJBU0VSJ1MgSElMTCBMVEQuCisJCQkJMjc1MDIgVy4gR0lMTCBST0FECisJCQkJUC5PLiBCT1ggMTg5CisJCQkJTU9SUklTVE9XTiBBWiA4NTM0MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQjkgICAoaGV4KQkJRlVOSyBTT0ZUV0FSRSwgSU5DLgorMDBDMEI5ICAgICAoYmFzZSAxNikJCUZVTksgU09GVFdBUkUsIElOQy4KKwkJCQkyMjIgVEhJUkQgU1RSRUVUCisJCQkJQ0FNQlJJREdFIE1BIDAyMTQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1CQSAgIChoZXgpCQlORVRWQU5UQUdFCiswMEMwQkEgICAgIChiYXNlIDE2KQkJTkVUVkFOVEFHRQorCQkJCTIwMSBDT05USU5FTlRBTCBCTFZELi1TVEUuIzIwMQorCQkJCUVMIFNFQ1VORE8gQ0EgOTAyNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUJCICAgKGhleCkJCUZPUlZBTCBDUkVBVElWRSwgSU5DLgorMDBDMEJCICAgICAoYmFzZSAxNikJCUZPUlZBTCBDUkVBVElWRSwgSU5DLgorCQkJCTMtMjctMTIgSE9OR08KKwkJCQlCVU5LWU8tS1UgVE9LWU8gIDExMworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtQkMgICAoaGV4KQkJVEVMRUNPTSBBVVNUUkFMSUEvQ1NTQworMDBDMEJDICAgICAoYmFzZSAxNikJCVRFTEVDT00gQVVTVFJBTElBL0NTU0MKKwkJCQlMT0NLRUQgQkFHIDg4MTIKKwkJCQlTT1VUSENPQVNUIE1BSUwgQ0VOVFJFIDI1MjEgTi5TLlcuCisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLUMwLUJEICAgKGhleCkJCUlORVggVEVDSE5PTE9HSUVTLCBJTkMuCiswMEMwQkQgICAgIChiYXNlIDE2KQkJSU5FWCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkzMzUwIFNDT1RUIEJMVkQuCisJCQkJQkxERy4jMjkKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQkUgICAoaGV4KQkJQUxDQVRFTCAtIFNFTAorMDBDMEJFICAgICAoYmFzZSAxNikJCUFMQ0FURUwgLSBTRUwKKwkJCQlMT1JFTlogU1RSLgorCQkJCTcwMDAgU1RVVFRHQVJUIDQwCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQzAtQkYgICAoaGV4KQkJVEVDSE5PTE9HWSBDT05DRVBUUywgTFRELgorMDBDMEJGICAgICAoYmFzZSAxNikJCVRFQ0hOT0xPR1kgQ09OQ0VQVFMsIExURC4KKwkJCQlHUkFOR0UgRVNUQVRFCisJCQkJQ1dNQlJBTiwgR1dFTlQsIE5QNDQgM1hSCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1DMC1DMCAgIChoZXgpCQlTSE9SRSBNSUNST1NZU1RFTVMsIElOQy4KKzAwQzBDMCAgICAgKGJhc2UgMTYpCQlTSE9SRSBNSUNST1NZU1RFTVMsIElOQy4KKwkJCQkyMyBQT0NBSE9OVEFTIEFWRU5VRQorCQkJCU9DRUFOUE9SVCBOSiAwNzc1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQzEgICAoaGV4KQkJUVVBRC9HUkFQSElDUywgSU5DLgorMDBDMEMxICAgICAoYmFzZSAxNikJCVFVQUQvR1JBUEhJQ1MsIElOQy4KKwkJCQlONjMgVzIzMDc1IEhXWSA3NAorCQkJCVNVU1NFWCBXSSA1MzA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQzIgICAoaGV4KQkJSU5GSU5JVEUgTkVUV09SS1MgTFRELgorMDBDMEMyICAgICAoYmFzZSAxNikJCUlORklOSVRFIE5FVFdPUktTIExURC4KKwkJCQkxOSBCUk9PS1NJREUgUk9BRCwgT1hIRVkKKwkJCQlXQVRGT1JELCBIRVJUUyAgV0QxIDRCVyBFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1DMC1DMyAgIChoZXgpCQlBQ1VTT04gQ09NUFVURUQgU09OT0dSQVBIWQorMDBDMEMzICAgICAoYmFzZSAxNikJCUFDVVNPTiBDT01QVVRFRCBTT05PR1JBUEhZCisJCQkJMTIyMCBDSEFSTEVTVE9OIFJPQUQKKwkJCQlQLk8uIEJPWCA3MzkzCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDAzOS03MzkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1DNCAgIChoZXgpCQlDT01QVVRFUiBPUEVSQVRJT05BTAorMDBDMEM0ICAgICAoYmFzZSAxNikJCUNPTVBVVEVSIE9QRVJBVElPTkFMCisJCQkJUkVRVUlSRU1FTlQgQU5BTFlTVFMgTFRECisJCQkJQ09SQUwgSE9VU0UsIDI3NEEgSElHSCBTVFJFRVQgQUxERVJTSE9ULAorCQkJCUdVMTIgNExaIEdVMTIgNExaIEVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1DMC1DNSAgIChoZXgpCQlTSUQgSU5GT1JNQVRJQ0EKKzAwQzBDNSAgICAgKGJhc2UgMTYpCQlTSUQgSU5GT1JNQVRJQ0EKKwkJCQlSVUEgRFIuIEdFUkFMRE8gQ0FNUE9TIE1PUkVJUkEKKwkJCQkyNDAgLSA1IEFOREFSIENFUCAwNDU3MS0wMjAgU0FPIFBBVUxPIC0KKwkJCQlCUkFaSUwKKwkJCQlCUkFaSUwKKworMDAtQzAtQzYgICAoaGV4KQkJUEVSU09OQUwgTUVESUEgQ09SUC4KKzAwQzBDNiAgICAgKGJhc2UgMTYpCQlQRVJTT05BTCBNRURJQSBDT1JQLgorCQkJCTEtNy03IE1ZIEJMREcuIEhJUkFUU1VLQQorCQkJCVNISU5BR0FXQSwgIFRPS1lPIDE0MgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtQzAtQzcgICAoaGV4KQkJU1BBUktUUlVNIE1JQ1JPU1lTVEVNUywgSU5DLgorMDBDMEM3ICAgICAoYmFzZSAxNikJCVNQQVJLVFJVTSBNSUNST1NZU1RFTVMsIElOQy4KKwkJCQkyODYwIFpBTktFUiBST0FELCAgU1RFLiMyMTAKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQzggICAoaGV4KQkJTUlDUk8gQllURSBQVFkuIExURC4KKzAwQzBDOCAgICAgKGJhc2UgMTYpCQlNSUNSTyBCWVRFIFBUWS4gTFRELgorCQkJCTE5NyBTSEVSQk9VUk5FIFJELgorCQkJCU1PTlRNT1JFTkNZIE1FTEJPVVJORSBWSUMKKwkJCQlBVVNUUkFMSUEgMzA5NAorCQkJCUFVU1RSQUxJQQorCiswMC1DMC1DOSAgIChoZXgpCQlFTFNBRyBCQUlMRVkgUFJPQ0VTUworMDBDMEM5ICAgICAoYmFzZSAxNikJCUVMU0FHIEJBSUxFWSBQUk9DRVNTCisJCQkJQVVUT01BVElPTgorCQkJCTI5ODAxIEVVQ0xJRCBBVkVOVUUgTVMtM1MxCisJCQkJV0lDS0xJRkZFIE9IIDQ0MDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1DQSAgIChoZXgpCQlBTEZBLCBJTkMuCiswMEMwQ0EgICAgIChiYXNlIDE2KQkJQUxGQSwgSU5DLgorCQkJCTExLTEsIElORFVTVFJZIEVBU1QgUk9BRCBJVgorCQkJCVNDSUVOQ0UgQkFTRUQgSU5EVVNUUklBTCBQQVJLIEhTSU5DSFUKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUMwLUNCICAgKGhleCkJCUNPTlRST0wgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorMDBDMENCICAgICAoYmFzZSAxNikJCUNPTlRST0wgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCTI1IFNPVVRIIFNUUkVFVAorCQkJCUhPUEtJTlRPTiBNQSAwMTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQ0MgICAoaGV4KQkJVEVMRVNDSUVOQ0VTIENPIFNZU1RFTVMsIElOQy4KKzAwQzBDQyAgICAgKGJhc2UgMTYpCQlURUxFU0NJRU5DRVMgQ08gU1lTVEVNUywgSU5DLgorCQkJCTM1MSBORVcgQUxCQU5ZIFJELgorCQkJCU1PT1JFU1RPV04gTkogMDgwNTctMTE3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtQ0QgICAoaGV4KQkJQ09NRUxUQSwgUy5BLgorMDBDMENEICAgICAoYmFzZSAxNikJCUNPTUVMVEEsIFMuQS4KKwkJCQlBVkRBLiBQQVJDIFRFQ05PTE9HSUMsIDQKKwkJCQkwODI5MCBDRVJEQU5ZT0xBIERFTCBWQUxMRVMgQkFSQ0VMT05BCisJCQkJU1BBSU4KKwkJCQlTUEFJTgorCiswMC1DMC1DRSAgIChoZXgpCQlDRUkgU1lTVEVNUyAmIEVOR0lORUVSSU5HIFBURQorMDBDMENFICAgICAoYmFzZSAxNikJCUNFSSBTWVNURU1TICYgRU5HSU5FRVJJTkcgUFRFCisJCQkJQkxLIDczICMwMi0xOCBBWUVSIFJBSkFIIENSRVNDCisJCQkJQVlFUiBSQUpBSCBJTkRVU1RSSUFMIEVTVEFURQorCQkJCVNJTkdBUE9SRSAwNTEzCisJCQkJU0lOR0FQT1JFCisKKzAwLUMwLUNGICAgKGhleCkJCUlNQVRSQU4gVk9JTUEgT1kKKzAwQzBDRiAgICAgKGJhc2UgMTYpCQlJTUFUUkFOIFZPSU1BIE9ZCisJCQkJSVZPCisJCQkJUC5PLiBCT1ggMzQwIDAyMTUxIEVTUE9PCisJCQkJRklOTEFORAorCQkJCUZJTkxBTkQKKworMDAtQzAtRDAgICAoaGV4KQkJUkFUT0MgU1lTVEVNIElOQy4KKzAwQzBEMCAgICAgKGJhc2UgMTYpCQlSQVRPQyBTWVNURU0gSU5DLgorCQkJCUFTQUhJIE5BTUJBIEJMREcuCisJCQkJMS02LTE0IFNISUtJVFNVIEhJR0FTSEkgTkFOSVdBS1UgT1NBS0EgQworCQkJCTU1NiBKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLUQxICAgKGhleCkJCUNPTVRSRUUgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorMDBDMEQxICAgICAoYmFzZSAxNikJCUNPTVRSRUUgVEVDSE5PTE9HWSBDT1JQT1JBVElPTgorCQkJCTVGLTcsIE5PLiAxLCBGVS1IU0lORyBOT1JUSCBSRAorCQkJCVRBSVBFSQorCQkJCVRBSVdBTiBSLk8uQy4KKwkJCQlDSElOQQorCiswMC1DMC1EMiAgIChoZXgpCQlTWU5URUxMRUNULCBJTkMuCiswMEMwRDIgICAgIChiYXNlIDE2KQkJU1lOVEVMTEVDVCwgSU5DLgorCQkJCTE1ODEwIE4uIDI4VEggQVZFTlVFCisJCQkJUEhPRU5JWCBBWiA4NTAyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRDMgICAoaGV4KQkJT0xZTVBVUyBJTUFHRSBTWVNURU1TLCBJTkMuCiswMEMwRDMgICAgIChiYXNlIDE2KQkJT0xZTVBVUyBJTUFHRSBTWVNURU1TLCBJTkMuCisJCQkJMTUyNzEgQkFSUkFOQ0EgUEFSS1dBWQorCQkJCUlSVklORSBDQSA5MjcxOC0yMjAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1ENCAgIChoZXgpCQlBWE9OIE5FVFdPUktTLCBJTkMuCiswMEMwRDQgICAgIChiYXNlIDE2KQkJQVhPTiBORVRXT1JLUywgSU5DLgorCQkJCTEwNCBTUFJVQ0UgU1RSRUVUCisJCQkJV0FURVJUT1dOIE1BIDAyMTcyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1ENSAgIChoZXgpCQlXZXJiZWFnZW50dXIgSsO8cmdlbiBTaWViZXJ0CiswMEMwRDUgICAgIChiYXNlIDE2KQkJV2VyYmVhZ2VudHVyIErDvHJnZW4gU2llYmVydAorCQkJCUltIEtsb3N0ZXJnYXJ0ZW4gOAorCQkJCUQtNTAzMjEgQnLDvGhsICAKKwkJCQlHRVJNQU5ZCisKKzAwLUMwLUQ2ICAgKGhleCkJCUoxIFNZU1RFTVMsIElOQy4KKzAwQzBENiAgICAgKGJhc2UgMTYpCQlKMSBTWVNURU1TLCBJTkMuCisJCQkJMyBEVU5XT09EWSBQQVJLLVNURS4jMTAzCisJCQkJQVRMQU5UQSBHQSAzMDMzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRDcgICAoaGV4KQkJVEFJV0FOIFRSQURJTkcgQ0VOVEVSIERCQQorMDBDMEQ3ICAgICAoYmFzZSAxNikJCVRBSVdBTiBUUkFESU5HIENFTlRFUiBEQkEKKwkJCQlUVEMgQ09NUFVURVIgUFJPRFVDVFMKKwkJCQkzMjQ0IE4uIFNLWVdBWSBDSVJDTEUgIzEwMgorCQkJCUlSVklORyBUWCA3NTAzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRDggICAoaGV4KQkJVU5JVkVSU0FMIERBVEEgU1lTVEVNUworMDBDMEQ4ICAgICAoYmFzZSAxNikJCVVOSVZFUlNBTCBEQVRBIFNZU1RFTVMKKwkJCQk1MDAwIEJSQURGT1JEIERSSVZFCisJCQkJSFVOVFNWSUxMRSBBTCAzNTgwNS0xOTkzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1EOSAgIChoZXgpCQlRVUlOVEUgTkVUV09SSyBDT05GSURFTlRJQUxJVFkKKzAwQzBEOSAgICAgKGJhc2UgMTYpCQlRVUlOVEUgTkVUV09SSyBDT05GSURFTlRJQUxJVFkKKwkJCQlFUVVJUE1FTlQgSU5DLgorCQkJCTIwNyAtIDEyMSBESU1EQVMgU1RSRUVUIEVBU1QgQkVMTEVWSUxMRSwKKwkJCQlDQU5BREEgSzhOIDFDMworCQkJCUNBTkFEQQorCiswMC1DMC1EQSAgIChoZXgpCQlOSUNFIFNZU1RFTVMgTFRELgorMDBDMERBICAgICAoYmFzZSAxNikJCU5JQ0UgU1lTVEVNUyBMVEQuCisJCQkJMyBURVZVT1QgSEEnQVJFVFogU1QKKwkJCQlURUwgQVZJViAgNjk1NDYKKwkJCQlJU1JBRUwKKwkJCQlJU1JBRUwKKworMDAtQzAtREIgICAoaGV4KQkJSVBDIENPUlBPUkFUSU9OIChQVEUpIExURC4KKzAwQzBEQiAgICAgKGJhc2UgMTYpCQlJUEMgQ09SUE9SQVRJT04gKFBURSkgTFRELgorCQkJCTEyMiBFVU5PUyBBVkUuLCA3ICMwNS0xMAorCQkJCVNJTkdBUE9SRSAxNDQwCisJCQkJU0lOR0FQT1JFCisKKzAwLUMwLURDICAgKGhleCkJCUVPUyBURUNITk9MT0dJRVMsIElOQy4KKzAwQzBEQyAgICAgKGJhc2UgMTYpCQlFT1MgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMzk0NSBGUkVFRE9NIENJUkNMRSwgU1RFLiM3NzAKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtREQgICAoaGV4KQkJUUxvZ2ljIENvcnBvcmF0aW9uCiswMEMwREQgICAgIChiYXNlIDE2KQkJUUxvZ2ljIENvcnBvcmF0aW9uCisJCQkJNjMyMSBCdXJ5IERyLgorCQkJCUVkZW4gUHJhcmllIE1OIDU1MzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1ERSAgIChoZXgpCQlaQ09NTSwgSU5DLgorMDBDMERFICAgICAoYmFzZSAxNikJCVpDT01NLCBJTkMuCisJCQkJMTA1MCBDIEVBU1QgRFVBTkUgQVZFTlVFCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1ERiAgIChoZXgpCQlLWUUgU3lzdGVtcyBDb3JwLgorMDBDMERGICAgICAoYmFzZSAxNikJCUtZRSBTeXN0ZW1zIENvcnAuCisJCQkJTm8uIDQ5MiBTZWMgNSwgQ2h1bmcgSHNpbiBSb2FkCisJCQkJVGFpcGVpIEhzaWVuIDI0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtQzAtRTAgICAoaGV4KQkJRFNDIENPTU1VTklDQVRJT04gQ09SUC4KKzAwQzBFMCAgICAgKGJhc2UgMTYpCQlEU0MgQ09NTVVOSUNBVElPTiBDT1JQLgorCQkJCTEwMDAgQ09JVCBST0FELCAgTVMjQURWUCAzCisJCQkJUExBTk8gVFggNzUwNzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUUxICAgKGhleCkJCVNPTklDIFNPTFVUSU9OUworMDBDMEUxICAgICAoYmFzZSAxNikJCVNPTklDIFNPTFVUSU9OUworCQkJCTE4OTEgRS4gRlJBTkNJU0NPIEJMVkQuCisJCQkJU0FOIFJBRkFFTCBDQSA5NDkwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRTIgICAoaGV4KQkJQ0FMQ09NUCwgSU5DLgorMDBDMEUyICAgICAoYmFzZSAxNikJCUNBTENPTVAsIElOQy4KKwkJCQkyNDExIFcuIExBUEFMTUEgQVZFTlVFCisJCQkJUC5PLiBCT1ggMzI1MCwgTVMyMgorCQkJCUFOQUhFSU0gQ0EgOTI4MDMtMzI1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRTMgICAoaGV4KQkJT1NJVEVDSCBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBDMEUzICAgICAoYmFzZSAxNikJCU9TSVRFQ0ggQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk2NzkgU09VVEhHQVRFIERSSVZFCisJCQkJR1VFTFBILCBPTlRBUklPCisJCQkJQ0FOQURBIE4xRyA0UzIKKwkJCQlDQU5BREEKKworMDAtQzAtRTQgICAoaGV4KQkJU0lFTUVOUyBCVUlMRElORworMDBDMEU0ICAgICAoYmFzZSAxNikJCVNJRU1FTlMgQlVJTERJTkcKKwkJCQlURUNITk9MT0dJRVMsIElOQy4KKwkJCQkxMDAwIERFRVJGSUVMRCBQQVJLV0FZCisJCQkJQlVGRkFMTyBHUk9WRSBJTCA2MDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRTUgICAoaGV4KQkJR0VTUEFDLCBTLkEuCiswMEMwRTUgICAgIChiYXNlIDE2KQkJR0VTUEFDLCBTLkEuCisJCQkJQ0hFTUlOIERFUyBBVUxYIDE4CisJCQkJQ0gtMTIyOCBHRU5FVkEKKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLUMwLUU2ICAgKGhleCkJCVZlcmlsaW5rIENvcnBvcmF0aW9uCiswMEMwRTYgICAgIChiYXNlIDE2KQkJVmVyaWxpbmsgQ29ycG9yYXRpb24KKwkJCQkxMjcgSmV0cGxleCBDaXJjbGUKKwkJCQlNYWRpc29uIEFMIDM1NzU4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1FNyAgIChoZXgpCQlGSUJFUkRBVEEgQUIKKzAwQzBFNyAgICAgKGJhc2UgMTYpCQlGSUJFUkRBVEEgQUIKKwkJCQlQLk8uIEJPWCAyMDA5NQorCQkJCVMtMTYxMDIgQlJPTU1BCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLUMwLUU4ICAgKGhleCkJCVBMRVhDT00sIElOQy4KKzAwQzBFOCAgICAgKGJhc2UgMTYpCQlQTEVYQ09NLCBJTkMuCisJCQkJNjUgTU9SRUxBTkQgUk9BREVOVVlFCisJCQkJU0lNSSBWQUxMRVkgQ0EgOTMwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUU5ICAgKGhleCkJCU9BSyBTT0xVVElPTlMsIExURC4KKzAwQzBFOSAgICAgKGJhc2UgMTYpCQlPQUsgU09MVVRJT05TLCBMVEQuCisJCQkJQlJPQURXQVkgSE9VU0UKKwkJCQkxNDktMTUxIFNUIE5FT1RTIFJELCBIQVJEV0lDSyBDQU1CUklER0UKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQzAtRUEgICAoaGV4KQkJQVJSQVkgVEVDSE5PTE9HWSBMVEQuCiswMEMwRUEgICAgIChiYXNlIDE2KQkJQVJSQVkgVEVDSE5PTE9HWSBMVEQuCisJCQkJMTQ1IEZSSU1MRVkgUk9BRAorCQkJCUNBTUJFUkxFWSwgU1VSUkVZCisJCQkJRU5HTEFORCBHVTE1IDJQUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUMwLUVCICAgKGhleCkJCVNFSCBDT01QVVRFUlRFQ0hOSUsgR01CSAorMDBDMEVCICAgICAoYmFzZSAxNikJCVNFSCBDT01QVVRFUlRFQ0hOSUsgR01CSAorCQkJCVN1ZWRyaW5nIDExCisJCQkJUC5PLiBCT1ggMTQwODI5IEQtMzM2MjggQmllbGVmZWxkCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtQzAtRUMgICAoaGV4KQkJREFVUEhJTiBURUNITk9MT0dZCiswMEMwRUMgICAgIChiYXNlIDE2KQkJREFVUEhJTiBURUNITk9MT0dZCisJCQkJNDUwIEVJU0VOSE9XRVIgTEFORSBOT1JUSAorCQkJCUxPTUJBUkQgSUwgNjAxNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUVEICAgKGhleCkJCVVTIEFSTVkgRUxFQ1RST05JQworMDBDMEVEICAgICAoYmFzZSAxNikJCVVTIEFSTVkgRUxFQ1RST05JQworCQkJCVBST1ZJTkcgR1JPVU5ECisJCQkJMTgzOCBQQVNFTyBTQU4gTFVJUworCQkJCVNJRVJSQSBWSVNUQSBBWiA4NTYzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRUUgICAoaGV4KQkJS1lPQ0VSQSBDT1JQT1JBVElPTgorMDBDMEVFICAgICAoYmFzZSAxNikJCUtZT0NFUkEgQ09SUE9SQVRJT04KKwkJCQkyLTE0LTkgVEFNQUdBV0FEQUkKKwkJCQlTRVRBR0FZQS1LVSwgVE9LWU8KKwkJCQkxNTggSkFQQU4KKwkJCQlKQVBBTgorCiswMC1DMC1FRiAgIChoZXgpCQlBQklUIENPUlBPUkFUSU9OCiswMEMwRUYgICAgIChiYXNlIDE2KQkJQUJJVCBDT1JQT1JBVElPTgorCQkJCTI5LTExIEhJUkFPS0EtQ0hPCisJCQkJSEFDSElPVUpJLVNISSBUT0tZTworCQkJCTE5MiBKQVBBTgorCQkJCUpBUEFOCisKKzAwLUMwLUYwICAgKGhleCkJCUtJTkdTVE9OIFRFQ0hOT0xPR1kgQ09SUC4KKzAwQzBGMCAgICAgKGJhc2UgMTYpCQlLSU5HU1RPTiBURUNITk9MT0dZIENPUlAuCisJCQkJMTc2MDAgTkVXSE9QRSBTVFJFRVQKKwkJCQlGT1VOVEFJTiBWQUxMRVkgQ0EgOTI3MDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUMwLUYxICAgKGhleCkJCVNISU5LTyBFTEVDVFJJQyBDTy4sIExURC4KKzAwQzBGMSAgICAgKGJhc2UgMTYpCQlTSElOS08gRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJQ09NUFVURVIgU1lTVEVNIERJVklTSU9OCisJCQkJMTUwIE1PVE9ZQVNISUtJLCBTQU5ZQS1DSE8gVE9ZT0hBU0hJLVNISQorCQkJCUpBUEFOIDQ0MS0zMQorCQkJCUpBUEFOCisKKzAwLUMwLUYyICAgKGhleCkJCVRSQU5TSVRJT04gTkVUV09SS1MKKzAwQzBGMiAgICAgKGJhc2UgMTYpCQlUUkFOU0lUSU9OIE5FVFdPUktTCisJCQkJNjQ3NSBDSVRZIFdFU1QgUEFSS1dBWQorCQkJCU1JTk5FQVBPTElTIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1GMyAgIChoZXgpCQlORVRXT1JLIENPTU1VTklDQVRJT05TIENPUlAuCiswMEMwRjMgICAgIChiYXNlIDE2KQkJTkVUV09SSyBDT01NVU5JQ0FUSU9OUyBDT1JQLgorCQkJCTU1MDEgR1JFRU4gVkFMTEVZIERSSVZFCisJCQkJQkxPT01JTkdUT04gTU4gNTU0MzctMTA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRjQgICAoaGV4KQkJSU5URVJMSU5LIFNZU1RFTSBDTy4sIExURC4KKzAwQzBGNCAgICAgKGJhc2UgMTYpCQlJTlRFUkxJTksgU1lTVEVNIENPLiwgTFRELgorCQkJCUlOVEVSTElOSyBCL0QsIDQ3Ni0yMAorCQkJCVNFT0dZTy1ET05HLCBNQVBPLUtVIFNFT1VMCisJCQkJS09SRUEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtQzAtRjUgICAoaGV4KQkJTUVUQUNPTVAsIElOQy4KKzAwQzBGNSAgICAgKGJhc2UgMTYpCQlNRVRBQ09NUCwgSU5DLgorCQkJCTEwOTg5IFZJQSBGUk9OVEVSQQorCQkJCVNBTiBESUVHTyBDQSA5MjEyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRjYgICAoaGV4KQkJQ0VMQU4gVEVDSE5PTE9HWSBJTkMuCiswMEMwRjYgICAgIChiYXNlIDE2KQkJQ0VMQU4gVEVDSE5PTE9HWSBJTkMuCisJCQkJTk8uIDEwMSwgTUlOLUhTSUFORyBTVC4KKwkJCQlIU0lOLUNIVSBDSVRZCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlDSElOQQorCiswMC1DMC1GNyAgIChoZXgpCQlFTkdBR0UgQ09NTVVOSUNBVElPTiwgSU5DLgorMDBDMEY3ICAgICAoYmFzZSAxNikJCUVOR0FHRSBDT01NVU5JQ0FUSU9OLCBJTkMuCisJCQkJOTA1MyBTT1FVRUwgRFJJVkUKKwkJCQlBUFRPUyBDQSA5NTAwMy00MDM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1GOCAgIChoZXgpCQlBQk9VVCBDT01QVVRJTkcgSU5DLgorMDBDMEY4ICAgICAoYmFzZSAxNikJCUFCT1VUIENPTVBVVElORyBJTkMuCisJCQkJUC5PLiBCT1ggMTcyCisJCQkJQkVMTU9OVCBNQSAwMjE3OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRjkgICAoaGV4KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCiswMEMwRjkgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCisJCQkJMjkwMCBTLiBEaWFibG8gV2F5IFN1aXRlIDE5MAorCQkJCVRlbXBlIEFaIDg1MjgyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1GQSAgIChoZXgpCQlDQU5BUlkgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwQzBGQSAgICAgKGJhc2UgMTYpCQlDQU5BUlkgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQkxODUxIFpBTktFUiBST0FECisJCQkJU0FOIEpPU0UgQ0EgOTUxMTItNDIxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzAtRkIgICAoaGV4KQkJQURWQU5DRUQgVEVDSE5PTE9HWSBMQUJTCiswMEMwRkIgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgVEVDSE5PTE9HWSBMQUJTCisJCQkJMjIxMDAgQk9USEVMTCBISUdIV0FZIFMuRS4KKwkJCQlQLk8uIEJPWCAzMDAzCisJCQkJQk9USEVMTCBXQSA5ODA0MS0zMDAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1GQyAgIChoZXgpCQlFTEFTVElDIFJFQUxJVFksIElOQy4KKzAwQzBGQyAgICAgKGJhc2UgMTYpCQlFTEFTVElDIFJFQUxJVFksIElOQy4KKwkJCQk5MjUgU1RFV0FSVCBTVFJFRVQKKwkJCQlNQURJU09OIFdJIDUzNzEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1GRCAgIChoZXgpCQlQUk9TVU0KKzAwQzBGRCAgICAgKGJhc2UgMTYpCQlQUk9TVU0KKwkJCQkxMiBSVUUgU0FESS1DQVJOT1QKKwkJCQk5NDM3MCAgTk9JU0VBVQorCQkJCUZSQU5DRQorCQkJCUZSQU5DRQorCiswMC1DMC1GRSAgIChoZXgpCQlBUFRFQyBDT01QVVRFUiBTWVNURU1TLCBJTkMuCiswMEMwRkUgICAgIChiYXNlIDE2KQkJQVBURUMgQ09NUFVURVIgU1lTVEVNUywgSU5DLgorCQkJCVAuTy4gQk9YIDY3NTAKKwkJCQlQT1JUTEFORCBPUiA5NzIyOC02NzUwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1DMC1GRiAgIChoZXgpCQlET1QgSElMTCBTWVNURU1TIENPUlBPUkFUSU9OCiswMEMwRkYgICAgIChiYXNlIDE2KQkJRE9UIEhJTEwgU1lTVEVNUyBDT1JQT1JBVElPTgorCQkJCTYzMDUgRWwgQ2FtaW5vIFJlYWwKKwkJCQlDYXJsc2JhZCBDQSA5MjAwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtQzYtMTAgICAoaGV4KQkJQXBwbGUsIEluYy4KKzAwQzYxMCAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyAgQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUNCLUJEICAgKGhleCkJCUNhbWJyaWRnZSBCcm9hZGJhbmQgTmV0d29ya3MgTHRkLgorMDBDQkJEICAgICAoYmFzZSAxNikJCUNhbWJyaWRnZSBCcm9hZGJhbmQgTmV0d29ya3MgTHRkLgorCQkJCVNlbHd5biBIb3VzZSBDYW1icmlkZ2UgQnVzaW5lc3MgUGFyaworCQkJCUNhbWJyaWRnZSBCdXNpbmVzcyBQYXJrCisJCQkJQ2FtYnJpZGdlICBDQjQgMFdaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtQ0QtOTAgICAoaGV4KQkJTUFTIEVsZWt0cm9uaWsgQUcKKzAwQ0Q5MCAgICAgKGJhc2UgMTYpCQlNQVMgRWxla3Ryb25payBBRworCQkJCVBvbGxob3JuYm9nZW4gMTkKKwkJCQlIYW1idXJnICAyMTEwNworCQkJCUdFUk1BTlkKKworMDAtQ0YtMUMgICAoaGV4KQkJQ09NTVVOSUNBVElPTiBNQUNISU5FUlkgQ09SUC4KKzAwQ0YxQyAgICAgKGJhc2UgMTYpCQlDT01NVU5JQ0FUSU9OIE1BQ0hJTkVSWSBDT1JQLgorCQkJCTEyMjYgQU5BQ0FQQQorCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTAwICAgKGhleCkJCUZFUlJBTiBTQ0lFTlRJRklDLCBJTkMuCiswMEQwMDAgICAgIChiYXNlIDE2KQkJRkVSUkFOIFNDSUVOVElGSUMsIElOQy4KKwkJCQkxMTU1OCBTT1JSRU5UTyBWQUxMRVkgUk9BRAorCQkJCVNVSVRFICAjMQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMDEgICAoaGV4KQkJVlNUIFRFQ0hOT0xPR0lFUywgSU5DLgorMDBEMDAxICAgICAoYmFzZSAxNikJCVZTVCBURUNITk9MT0dJRVMsIElOQy4KKwkJCQkxMjUgTkFHT0cgUEFSSworCQkJCUFDVE9OIE1BIDAxNzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0wMiAgIChoZXgpCQlESVRFQ0ggQ09SUE9SQVRJT04KKzAwRDAwMiAgICAgKGJhc2UgMTYpCQlESVRFQ0ggQ09SUE9SQVRJT04KKwkJCQk4MjUgRUFTVCBNSURETEVGSUVMRCBSRAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTAzICAgKGhleCkJCUNPTURBIEVOVEVSUFJJU0VTIENPUlAuCiswMEQwMDMgICAgIChiYXNlIDE2KQkJQ09NREEgRU5URVJQUklTRVMgQ09SUC4KKwkJCQkyRiwgTk8uIDUwMS0xOCwgQ0hVTkdDSEVOIFJPQUQKKwkJCQlIU0lOVElFTiwgVEFJUEVJCisJCQkJVEFJV0FOIFRBSVdBTiBST0MKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLTA0ICAgKGhleCkJCVBFTlRBQ09NIExURC4KKzAwRDAwNCAgICAgKGJhc2UgMTYpCQlQRU5UQUNPTSBMVEQuCisJCQkJOCBIQVNBRE5BT1QgU1RSRUVUCisJCQkJUC5PLiBCT1ggMTIxMDkgSEVSWkxJQSA0NjczMworCQkJCUlTUkFFTAorCQkJCUlTUkFFTAorCiswMC1EMC0wNSAgIChoZXgpCQlaSFMgWkVJVE1BTkFHRU1FTlRTWVNURU1FCiswMEQwMDUgICAgIChiYXNlIDE2KQkJWkhTIFpFSVRNQU5BR0VNRU5UU1lTVEVNRQorCQkJCUhBUkQtVU5EIFNPRlRXQVJFIEdNQkgKKwkJCQlLUkVVWkJFUkdFUiBSSU5HIDU2IDY1MjA1IFdJRVNCQURFTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLTA2ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDAwNiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTA3ICAgKGhleCkJCU1JQyBBU1NPQ0lBVEVTLCBJTkMuCiswMEQwMDcgICAgIChiYXNlIDE2KQkJTUlDIEFTU09DSUFURVMsIElOQy4KKwkJCQkxNTEwLTEsIEtBSURPS0kKKwkJCQlUQU1BLCBUT0tZTworCQkJCUpBUEFOIEpBUEFOIDIwNi0wMDEyCisJCQkJSkFQQU4KKworMDAtRDAtMDggICAoaGV4KQkJTUFDVEVMTCBDT1JQT1JBVElPTgorMDBEMDA4ICAgICAoYmFzZSAxNikJCU1BQ1RFTEwgQ09SUE9SQVRJT04KKwkJCQk3MDAwIENBTUVST04gUk9BRAorCQkJCUFVU1RJTiBUWCA3ODc1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMDkgICAoaGV4KQkJSFNJTkcgVEVDSC4gRU5URVJQUklTRSBDTy4gTFRECiswMEQwMDkgICAgIChiYXNlIDE2KQkJSFNJTkcgVEVDSC4gRU5URVJQUklTRSBDTy4gTFRECisJCQkJTk8uMiwgTEFORSAxMjgsIFNFQy4gMgorCQkJCUNIVU5HIFNIQU4gTi4gUkQuIFRBSVBFSQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC0wQSAgIChoZXgpCQlMQU5BQ0NFU1MgVEVMRUNPTSBTLkEuCiswMEQwMEEgICAgIChiYXNlIDE2KQkJTEFOQUNDRVNTIFRFTEVDT00gUy5BLgorCQkJCUdSQU4gVklBIDgtMTAgIDQgIDEKKwkJCQkwODkwMi0gTCdIT1NQSVRBTEVUIERFIExMT0JSRUdBVAorCQkJCVNQQUlOCisJCQkJU1BBSU4KKworMDAtRDAtMEIgICAoaGV4KQkJUkhLIFRFQ0hOT0xPR1ksIElOQy4KKzAwRDAwQiAgICAgKGJhc2UgMTYpCQlSSEsgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTEwNTAgRUFTVCBNQVBMRSBST0FECisJCQkJVFJPWSBNSSA0ODA4MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMEMgICAoaGV4KQkJU05JSkRFUiBNSUNSTyBTWVNURU1TCiswMEQwMEMgICAgIChiYXNlIDE2KQkJU05JSkRFUiBNSUNSTyBTWVNURU1TCisJCQkJUC5PLiBCT1ggMzAwCisJCQkJTkwtNTc1MCBBSCBERVVSTkUKKwkJCQlUSEUgTkVUSEVSTEFORFMKKwkJCQlORVRIRVJMQU5EUworCiswMC1EMC0wRCAgIChoZXgpCQlNSUNST01FUklUSUNTIElOU1RSVU1FTlQKKzAwRDAwRCAgICAgKGJhc2UgMTYpCQlNSUNST01FUklUSUNTIElOU1RSVU1FTlQKKwkJCQlDT1JQT1JBVElPTgorCQkJCU9ORSBNSUNST01FRVJJVElDUyBEUklWRQorCQkJCU5PUkNST1NTIEdBIDMwMDkzLTE4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTBFICAgKGhleCkJCVBMVVJJUywgSU5DLgorMDBEMDBFICAgICAoYmFzZSAxNikJCVBMVVJJUywgSU5DLgorCQkJCTEwNDU1IEJBTkRMRVkgRFJJVkUKKwkJCQlDVVBFUlRJTk8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTBGICAgKGhleCkJCVNQRUVDSCBERVNJR04gR01CSAorMDBEMDBGICAgICAoYmFzZSAxNikJCVNQRUVDSCBERVNJR04gR01CSAorCQkJCUlORFVTVFJJRVNUUi4gMQorCQkJCUQtODIxMTAgR0VSTUVSSU5HCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtRDAtMTAgICAoaGV4KQkJQ09OVkVSR0VOVCBORVRXT1JLUywgSU5DLgorMDBEMDEwICAgICAoYmFzZSAxNikJCUNPTlZFUkdFTlQgTkVUV09SS1MsIElOQy4KKwkJCQkyIEhJR0hXT09EIERSSVZFCisJCQkJVEVXS1NCVVJZIE1BIDAxODc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0xMSAgIChoZXgpCQlQUklTTSBWSURFTywgSU5DLgorMDBEMDExICAgICAoYmFzZSAxNikJCVBSSVNNIFZJREVPLCBJTkMuCisJCQkJMTU4NTEgREFMTEFTIFBBUktXQVktU1RFLiMxMDYwCisJCQkJQURESVNPTiBUWCA3NTAwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMTIgICAoaGV4KQkJR0FURVdPUktTIENPUlAuCiswMEQwMTIgICAgIChiYXNlIDE2KQkJR0FURVdPUktTIENPUlAuCisJCQkJNzYzMSBNT1JSTyBST0FECisJCQkJQVRBU0NBREVSTyBDQSA5MzQyMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMTMgICAoaGV4KQkJUFJJTUVYIEFFUk9TUEFDRSBDT01QQU5ZCiswMEQwMTMgICAgIChiYXNlIDE2KQkJUFJJTUVYIEFFUk9TUEFDRSBDT01QQU5ZCisJCQkJUC5PLiBCT1ggOTcwMDkKKwkJCQkxMTQ0MSBXSUxMT1dTIFJPQUQgTkUKKwkJCQlSRURNT05EIFdBIDk4MDczLTk3MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTE0ICAgKGhleCkJCVJPT1QsIElOQy4KKzAwRDAxNCAgICAgKGJhc2UgMTYpCQlST09ULCBJTkMuCisJCQkJOEYgVE9DMiBCbGRnLCA3LTIxLTExIE5pc2hpLUdvdGFuZGEKKwkJCQlTaGluYWdhd2Eta3UKKwkJCQlUb2t5byAxNDEtMDAzMQorCQkJCUpBUEFOCisKKzAwLUQwLTE1ICAgKGhleCkJCVVOSVZFWCBNSUNST1RFQ0hOT0xPR1kgQ09SUC4KKzAwRDAxNSAgICAgKGJhc2UgMTYpCQlVTklWRVggTUlDUk9URUNITk9MT0dZIENPUlAuCisJCQkJMiwgVFpFLUNISUFORyAzUkQgUk9BRAorCQkJCUNIVU5HLUxJIElORFVTVFJJQUwgUEFSSywgQ0hVTkctTEkKKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLTE2ICAgKGhleCkJCVNDTSBNSUNST1NZU1RFTVMsIElOQy4KKzAwRDAxNiAgICAgKGJhc2UgMTYpCQlTQ00gTUlDUk9TWVNURU1TLCBJTkMuCisJCQkJMTYwIEtOT1dMRVMgRFJJVkUKKwkJCQlMT1MgR0FUT1MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTE3ICAgKGhleCkJCVNZTlRFQ0ggSU5GT1JNQVRJT04gQ08uLCBMVEQuCiswMEQwMTcgICAgIChiYXNlIDE2KQkJU1lOVEVDSCBJTkZPUk1BVElPTiBDTy4sIExURC4KKwkJCQk4RiwgMjEwLCBUQS1UVU5HIFJELiwgU0VDLiAzCisJCQkJSFNJLUNISUgsIFRBSVBFSSBIU0lFTgorCQkJCVRBSVdBTiBUQUlXQU4gUk9DCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC0xOCAgIChoZXgpCQlRV0VTLiBDT00sIElOQy4KKzAwRDAxOCAgICAgKGJhc2UgMTYpCQlRV0VTLiBDT00sIElOQy4KKwkJCQkxNDc0MiBORVdQT1JUIEFWRS4gLSBTVEUuICMyMDMKKwkJCQlUVVNUSU4gQ0EgOTI3ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTE5ICAgKGhleCkJCURBSU5JUFBPTiBTQ1JFRU4gQ09SUE9SQVRFCiswMEQwMTkgICAgIChiYXNlIDE2KQkJREFJTklQUE9OIFNDUkVFTiBDT1JQT1JBVEUKKwkJCQlSRVBSRVNFTlRBVElWRVMgT0YgQU1FUklDQSxJTkMKKwkJCQkxNzk0MiBDT1dBTiBBVkVOVUUKKwkJCQlJUlZJTkUgQ0EgOTI2MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTFBICAgKGhleCkJCVVSTUVUICBUTEMgUy5QLkEuCiswMEQwMUEgICAgIChiYXNlIDE2KQkJVVJNRVQgIFRMQyBTLlAuQS4KKwkJCQlWSUEgREkgQ0FTVEVMIFJPTUFOTyAxNjcKKwkJCQkwMDEyOCAtIFJPTUEKKwkJCQlJVEFMWQorCiswMC1EMC0xQiAgIChoZXgpCQlNSU1BS0kgRU5HSU5FRVJJTkcgQ08uLCBMVEQuCiswMEQwMUIgICAgIChiYXNlIDE2KQkJTUlNQUtJIEVOR0lORUVSSU5HIENPLiwgTFRELgorCQkJCTUtOS00MSBLSVRBIFNISU5BR0FXQQorCQkJCVNISU5BR0FXQS1LVSBUT0tZTyAxNDEtMDAwMQorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtRDAtMUMgICAoaGV4KQkJU0JTIFRFQ0hOT0xPR0lFUywKKzAwRDAxQyAgICAgKGJhc2UgMTYpCQlTQlMgVEVDSE5PTE9HSUVTLAorCQkJCUNPTk5FQ1RJVklUWSBQUk9EVUNUUworCQkJCTEyODQgQ09SUE9SQVRFIENFTlRFUiBEUklWRQorCQkJCVNULiBQQVVMIE1OIDU1MTIxLTEyNDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTFEICAgKGhleCkJCUZVUlVOTyBFTEVDVFJJQyBDTy4sIExURC4KKzAwRDAxRCAgICAgKGJhc2UgMTYpCQlGVVJVTk8gRUxFQ1RSSUMgQ08uLCBMVEQuCisJCQkJTk8uIDktNTIsIEFTSElIQVJBLUNITworCQkJCU5JU0hJTk9NSVlBLUNJVFkKKwkJCQk2NjItODU4MCAKKwkJCQlKQVBBTgorCiswMC1EMC0xRSAgIChoZXgpCQlQSU5HVEVMIENPUlAuCiswMEQwMUUgICAgIChiYXNlIDE2KQkJUElOR1RFTCBDT1JQLgorCQkJCTc3MyBXSU5URVIgU1RSRUVUCisJCQkJTi4gQU5ET1ZFUiBNQSAwMTg0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMUYgICAoaGV4KQkJQ1RBTSBQVFkuIExURC4KKzAwRDAxRiAgICAgKGJhc2UgMTYpCQlDVEFNIFBUWS4gTFRELgorCQkJCTM5OSBISUdIIFNUUkVFVAorCQkJCUFTSEJVUlRPTiAzMTQ3IFZJQ1RPUklBCisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLUQwLTIwICAgKGhleCkJCUFJTSBTWVNURU0sIElOQy4KKzAwRDAyMCAgICAgKGJhc2UgMTYpCQlBSU0gU1lTVEVNLCBJTkMuCisJCQkJNFRIIEZMT09SIENIVU5HV09PIEIvRCAyMTktMQorCQkJCVBPWUVFLURPTkcsIEdBTkdOQU0tS1UgU0VPTCwgMTM1LTIwMAorCQkJCUtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQwLTIxICAgKGhleCkJCVJFR0VOVCBFTEVDVFJPTklDUyBDT1JQLgorMDBEMDIxICAgICAoYmFzZSAxNikJCVJFR0VOVCBFTEVDVFJPTklDUyBDT1JQLgorCQkJCTIwMCBDRU5URU5OSUFMIEFWRS4tU1RFLiAjMjAxCisJCQkJUElTQ0FUQVdBWSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMjIgICAoaGV4KQkJSU5DUkVESUJMRSBURUNITk9MT0dJRVMsIElOQy4KKzAwRDAyMiAgICAgKGJhc2UgMTYpCQlJTkNSRURJQkxFIFRFQ0hOT0xPR0lFUywgSU5DLgorCQkJCTE2MDAgSElDS1MgUk9BRAorCQkJCVJPTExJTkcgTUVBRE9XUyBJTCA2MDAwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMjMgICAoaGV4KQkJSU5GT1JUUkVORCBURUNITk9MT0dZLCBJTkMuCiswMEQwMjMgICAgIChiYXNlIDE2KQkJSU5GT1JUUkVORCBURUNITk9MT0dZLCBJTkMuCisJCQkJMTBGLCBOTy4gMzMgU0FOLU1JTiBSRC4KKwkJCQlTRUMuIDIgUEFOQ0hJQU8gQ0lUWSBUQUlQRUkgSFNJRU4KKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLTI0ICAgKGhleCkJCUNvZ25leCBDb3Jwb3JhdGlvbgorMDBEMDI0ICAgICAoYmFzZSAxNikJCUNvZ25leCBDb3Jwb3JhdGlvbgorCQkJCU1vZHVsYXIgVmlzaW9uIFN5c3RlbXMgRGl2aXNpb24KKwkJCQlJbi1TaWdodCBQcm9kdWN0cyBHcm91cCAxNTg2NSBTVyA3NHRoIEF2CisJCQkJUG9ydGxhbmQgT1IgOTcyMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTI1ICAgKGhleCkJCVhST1NTVEVDSCwgSU5DLgorMDBEMDI1ICAgICAoYmFzZSAxNikJCVhST1NTVEVDSCwgSU5DLgorCQkJCUhBQkRPTkcgQi9EIDVGIDIxMC0yCisJCQkJWUFOR0pBRS1ET05HLCBTRU9DSE8tS1UgU0VPVUwKKwkJCQlLT1JFQQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1EMC0yNiAgIChoZXgpCQlISVJTQ0hNQU5OIEFVU1RSSUEgR01CSAorMDBEMDI2ICAgICAoYmFzZSAxNikJCUhJUlNDSE1BTk4gQVVTVFJJQSBHTUJICisJCQkJT0JFUkVSIFBBU1BFTFNXRUcgNiAtIDgKKwkJCQk2ODMwIFJBTktXRUlMLUJSRURFUklTCisJCQkJQVVTVFJJQQorCQkJCUFVU1RSSUEKKworMDAtRDAtMjcgICAoaGV4KQkJQVBQTElFRCBBVVRPTUFUSU9OLCBJTkMuCiswMEQwMjcgICAgIChiYXNlIDE2KQkJQVBQTElFRCBBVVRPTUFUSU9OLCBJTkMuCisJCQkJUC5PLiBCT1ggOTk5OQorCQkJCUJBUlRMRVNWSUxMRSBPSyA3NDAwNS05OTk5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0yOCAgIChoZXgpCQlPTU5FT04gVklERU8gTkVUV09SS1MKKzAwRDAyOCAgICAgKGJhc2UgMTYpCQlPTU5FT04gVklERU8gTkVUV09SS1MKKwkJCQk5NjUgU3Rld2FydCBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4Ni0zOTEzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0yOSAgIChoZXgpCQlXQUtFRkVSTiBGT09EIENPUlBPUkFUSU9OCiswMEQwMjkgICAgIChiYXNlIDE2KQkJV0FLRUZFUk4gRk9PRCBDT1JQT1JBVElPTgorCQkJCTIzMCBSQVJJVEFOIENFTlRFUiBQQVJLV0FZCisJCQkJRURJU09OIE5KIDA4ODM3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0yQSAgIChoZXgpCQlWb3hlbnQgU3lzdGVtcyBMdGQuCiswMEQwMkEgICAgIChiYXNlIDE2KQkJVm94ZW50IFN5c3RlbXMgTHRkLgorCQkJCVVuaXQgMiwgUm93YW4gSG91c2UKKwkJCQlTaGVsZG9uIEJ1c2luZXNzIFBhcmsKKwkJCQlDaGlwcGVuaGFtIFdpbHRzaGlyZSBTTjE0IDBTUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLTJCICAgKGhleCkJCUpFVENFTEwsIElOQy4KKzAwRDAyQiAgICAgKGJhc2UgMTYpCQlKRVRDRUxMLCBJTkMuCisJCQkJMTczIENPTlNUSVRVVElPTiBEUklWRQorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUtMTEwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMkMgICAoaGV4KQkJQ0FNUEJFTEwgU0NJRU5USUZJQywgSU5DLgorMDBEMDJDICAgICAoYmFzZSAxNikJCUNBTVBCRUxMIFNDSUVOVElGSUMsIElOQy4KKwkJCQk4MTUgVy4gMTgwMCBOLgorCQkJCUxPR0FOIFVUIDg0MzIxLTE3ODQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTJEICAgKGhleCkJCUFERU1DTworMDBEMDJEICAgICAoYmFzZSAxNikJCUFERU1DTworCQkJCTE2NSBFSUxFRU4gV0FZCisJCQkJU1lPU1NFVCBOWSAxMTc5MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMkUgICAoaGV4KQkJQ09NTVVOSUNBVElPTiBBVVRPTUFUSU9OIENPUlAuCiswMEQwMkUgICAgIChiYXNlIDE2KQkJQ09NTVVOSUNBVElPTiBBVVRPTUFUSU9OIENPUlAuCisJCQkJMTE4MCBNQ0RFUk1PVFQgRFJJVkUKKwkJCQlXRVNUIENIRVNURVIgUEEgMTkzODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTJGICAgKGhleCkJCVZMU0kgVEVDSE5PTE9HWSBJTkMuCiswMEQwMkYgICAgIChiYXNlIDE2KQkJVkxTSSBURUNITk9MT0dZIElOQy4KKwkJCQk4Mzc1IFMuIFJJVkVSIFBBUktXQVkKKwkJCQlURU1QRSBBWiA4NTI4NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMzAgICAoaGV4KQkJU2FmZXRyYW4gU3lzdGVtcyBDb3JwCiswMEQwMzAgICAgIChiYXNlIDE2KQkJU2FmZXRyYW4gU3lzdGVtcyBDb3JwCisJCQkJMTA2NTUgN3RoIFN0cmVldAorCQkJCVJhbmNobyBDdWNhbW9uZ2EgQ0EgOTE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTMxICAgKGhleCkJCUlORFVTVFJJQUwgTE9HSUMgQ09SUE9SQVRJT04KKzAwRDAzMSAgICAgKGJhc2UgMTYpCQlJTkRVU1RSSUFMIExPR0lDIENPUlBPUkFUSU9OCisJCQkJMTUgUElFRE1PTlQgQ0VOVEVSLVNURSAjNzAwCisJCQkJQVRMQU5UQSBHQSAzMDMwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMzIgICAoaGV4KQkJWUFOTyBFTEVDVFJJQyBDTy4sIExURC4KKzAwRDAzMiAgICAgKGJhc2UgMTYpCQlZQU5PIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTctMy0xIElCVUtJREFJSElHQVNISU1BQ0hJCisJCQkJTklTSEktS1UsIEtPQkUsIDY1MS0yMjQyCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1EMC0zMyAgIChoZXgpCQlEQUxJQU4gREFYSUFOIE5FVFdPUksKKzAwRDAzMyAgICAgKGJhc2UgMTYpCQlEQUxJQU4gREFYSUFOIE5FVFdPUksKKwkJCQlTWVNURU0gQ08uLCBMVEQuCisJCQkJOTggU0hFTkdMSSBSRCBYSUdBTkcgRElTVFJJQ1QgREFMSUFOLCBQLgorCQkJCUNISU5BCisJCQkJQ0hJTkEKKworMDAtRDAtMzQgICAoaGV4KQkJT1JNRUMgU1lTVEVNUyBDT1JQLgorMDBEMDM0ICAgICAoYmFzZSAxNikJCU9STUVDIFNZU1RFTVMgQ09SUC4KKwkJCQkxOSBMSU5ERU4gUEFSSworCQkJCVJPQ0hFU1RFUiBOWSAxNDYyNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtMzUgICAoaGV4KQkJQkVIQVZJT1IgVEVDSC4gQ09NUFVURVIgQ09SUC4KKzAwRDAzNSAgICAgKGJhc2UgMTYpCQlCRUhBVklPUiBURUNILiBDT01QVVRFUiBDT1JQLgorCQkJCTIwRi1CLCBOby45OCwgU2VjLiAxLAorCQkJCVNpbnRhaSA1dGggUmQuCisJCQkJU2lqaGloIENpdHkgVGFpcGVpIENvdW50eSAyMjEwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtMzYgICAoaGV4KQkJVEVDSE5PTE9HWSBBVExBTlRBIENPUlAuCiswMEQwMzYgICAgIChiYXNlIDE2KQkJVEVDSE5PTE9HWSBBVExBTlRBIENPUlAuCisJCQkJMTQxIFcuIFdJRVVDQSBSRC4gTi5FLgorCQkJCVNVSVRFICMzMDAKKwkJCQlBVExBTlRBIEdBIDMwMzQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC0zNyAgIChoZXgpCQlQYWNlIEZyYW5jZQorMDBEMDM3ICAgICAoYmFzZSAxNikJCVBhY2UgRnJhbmNlCisJCQkJMzMgcnVlIGRlIFZlcmR1bgorCQkJCTkyMTUwIFN1cmVzbmVzIAorCQkJCUZSQU5DRQorCiswMC1EMC0zOCAgIChoZXgpCQlGSVZFTUVSRSwgTFRELgorMDBEMDM4ICAgICAoYmFzZSAxNikJCUZJVkVNRVJFLCBMVEQuCisJCQkJVU5JVCAxLUhFUk9OIElORFVTVFJJQUwgRVNUQVRFCisJCQkJQkFTSU5HU1RPS0UgUk9BRCBTUEVOQ0VSUyBXT09ELCAgUkVBRElORworCQkJCVJHNyAxUEogRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLTM5ICAgKGhleCkJCVVUSUxJQ09NLCBJTkMuCiswMEQwMzkgICAgIChiYXNlIDE2KQkJVVRJTElDT00sIElOQy4KKwkJCQkzMjMgTE9WRSBQTEFDRQorCQkJCVNBTlRBIEJBUkJBUkEgQ0EgOTMxMTItMzI4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtM0EgICAoaGV4KQkJWk9ORVdPUlgsIElOQy4KKzAwRDAzQSAgICAgKGJhc2UgMTYpCQlaT05FV09SWCwgSU5DLgorCQkJCTQwOTI1IENPVU5UWSBDRU5URVIgRFJJVkUKKwkJCQlTVUlURSAjMjAwCisJCQkJVEVNRUNVTEEgQ0EgOTI1OTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTNCICAgKGhleCkJCVZJU0lPTiBQUk9EVUNUUyBQVFkuIExURC4KKzAwRDAzQiAgICAgKGJhc2UgMTYpCQlWSVNJT04gUFJPRFVDVFMgUFRZLiBMVEQuCisJCQkJU0VDT05EIEFWRU5VRSwgVEVDSE5PTE9HWSBQQVJLCisJCQkJTUFXU09OIExBS0VTCisJCQkJQVVTVFJBTElBIDUwOTUKKwkJCQlBVVNUUkFMSUEKKworMDAtRDAtM0MgICAoaGV4KQkJVmllbywgSW5jLgorMDBEMDNDICAgICAoYmFzZSAxNikJCVZpZW8sIEluYy4KKwkJCQkxMjQxNiBIeW1lYWRvdyBEcml2ZSwKKwkJCQlTdWl0ZSAyMDAKKwkJCQlBdXN0aW4gVFggNzg3NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTNEICAgKGhleCkJCUdBTElMRU8gVEVDSE5PTE9HWSwgTFRELgorMDBEMDNEICAgICAoYmFzZSAxNikJCUdBTElMRU8gVEVDSE5PTE9HWSwgTFRELgorCQkJCU1PU0hBViBNQU5PRgorCQkJCUQuTi4gTUlTR0FWIDIwMTg0CisJCQkJSVNSQUVMCisKKzAwLUQwLTNFICAgKGhleCkJCVJPQ0tFVENISVBTLCBJTkMuCiswMEQwM0UgICAgIChiYXNlIDE2KQkJUk9DS0VUQ0hJUFMsIElOQy4KKwkJCQk3OTAxIFhFUlhFUyBBVkUuIFMuCisJCQkJTUlOTkVBUE9MSVMgTU4gNTU0MzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTNGICAgKGhleCkJCUFNRVJJQ0FOIENPTU1VTklDQVRJT04KKzAwRDAzRiAgICAgKGJhc2UgMTYpCQlBTUVSSUNBTiBDT01NVU5JQ0FUSU9OCisJCQkJVEVDSE5PTElHSUVTIElOVEVSTkFUSU9OQUwgSU5DCisJCQkJMzIwIFBST0ZFU1NJT05BTCBDRU5URVIgRFIuIFNVSVRFICMxMDAKKwkJCQlST0hORVJUIFBBUksgQ0EgOTQ5MjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTQwICAgKGhleCkJCVNZU01BVEUgQ08uLCBMVEQuCiswMEQwNDAgICAgIChiYXNlIDE2KQkJU1lTTUFURSBDTy4sIExURC4KKwkJCQkxMDkxIFdPTFBZT05HLURPTkcKKwkJCQlTRU8tR1UsIERFQUpDT04gMzAyLTI4MAorCQkJCVNPVVRIIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQwLTQxICAgKGhleCkJCUFNSUdPIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMEQwNDEgICAgIChiYXNlIDE2KQkJQU1JR08gVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQk0Ri0xQiwgTk8uMTIsIExBTkUgNjA5LCBTRUMuNSwKKwkJCQlDSFVORyBIU0lOIFJPQUQsIFNBTiBDSFVORyBUQUlQRUkgSFNJRU4KKwkJCQlUQUlXQU4gVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtNDIgICAoaGV4KQkJTUFITE8gR01CSCAmIENPLiBVRworMDBEMDQyICAgICAoYmFzZSAxNikJCU1BSExPIEdNQkggJiBDTy4gVUcKKwkJCQlET05BVVNUUkFTU0UgMTIKKwkJCQlELTkzMzQyIFNBQUwvRE9OQVUKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1EMC00MyAgIChoZXgpCQlaT05BTCBSRVRBSUwgREFUQSBTWVNURU1TCiswMEQwNDMgICAgIChiYXNlIDE2KQkJWk9OQUwgUkVUQUlMIERBVEEgU1lTVEVNUworCQkJCTI0IEZPUlRIIFNUUkVFVAorCQkJCUVESU5CVVJHSAorCQkJCVNDT1RMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRDAtNDQgICAoaGV4KQkJQUxJRElBTiBORVRXT1JLUywgSU5DLgorMDBEMDQ0ICAgICAoYmFzZSAxNikJCUFMSURJQU4gTkVUV09SS1MsIElOQy4KKwkJCQkxMzMwIFcuIE1JRERMRUZJRUxEIFJPQUQKKwkJCQlNT1VOVEFJTiBWSUVXIENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC00NSAgIChoZXgpCQlLVkFTRVIgQUIKKzAwRDA0NSAgICAgKGJhc2UgMTYpCQlLVkFTRVIgQUIKKwkJCQlCT1ggNDA3NgorCQkJCTUxMSAwNCBLSU5OQUhVTFQKKwkJCQlTV0VERU4KKwkJCQlTV0VERU4KKworMDAtRDAtNDYgICAoaGV4KQkJRE9MQlkgTEFCT1JBVE9SSUVTLCBJTkMuCiswMEQwNDYgICAgIChiYXNlIDE2KQkJRE9MQlkgTEFCT1JBVE9SSUVTLCBJTkMuCisJCQkJMTAwIFBvdHJlcm8gQXZlbnVlCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEwMy00OTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC00NyAgIChoZXgpCQlYTiBURUNITk9MT0dJRVMKKzAwRDA0NyAgICAgKGJhc2UgMTYpCQlYTiBURUNITk9MT0dJRVMKKwkJCQlQLk8uIEJPWCAzNTAKKwkJCQlDSEVORVkgV0EgOTkwMDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTQ4ICAgKGhleCkJCUVDVE9OLCBJTkMuCiswMEQwNDggICAgIChiYXNlIDE2KQkJRUNUT04sIElOQy4KKwkJCQk1MTY4IENBTVBVUyBEUklWRQorCQkJCVBMWU1PVVRIIE1FRVRJTkcgUEEgMTk0NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTQ5ICAgKGhleCkJCUlNUFJFU1NURUsgQ08uLCBMVEQuCiswMEQwNDkgICAgIChiYXNlIDE2KQkJSU1QUkVTU1RFSyBDTy4sIExURC4KKwkJCQk2RiwgU1BFQ0lBTFRZIENPTlNUUlVDVElPTiBDVFIKKwkJCQkxMjkwLCBTVU5TQU4tRE9ORyxTTy1HVQorCQkJCTMwMi0xMjAgS09SRUEgKFJFUC4pCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQwLTRBICAgKGhleCkJCVBSRVNFTkNFIFRFQ0hOT0xPR1kgR01CSAorMDBEMDRBICAgICAoYmFzZSAxNikJCVBSRVNFTkNFIFRFQ0hOT0xPR1kgR01CSAorCQkJCSsgQ08uIEtHCisJCQkJU0VOREVOSE9SU1RFUiBTVFIuIDMyIEQtNDgzMTcgRFJFTlNURUlORgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLTRCICAgKGhleCkJCUxBIENJRSBHUk9VUCBTLkEuCiswMEQwNEIgICAgIChiYXNlIDE2KQkJTEEgQ0lFIEdST1VQIFMuQS4KKwkJCQkxNyBSVUUgQU1QRVJFCisJCQkJOTEzNDkgTUFTU1kgQ0VERVgKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtRDAtNEMgICAoaGV4KQkJRVVST1RFTCBURUxFQ09NIExURC4KKzAwRDA0QyAgICAgKGJhc2UgMTYpCQlFVVJPVEVMIFRFTEVDT00gTFRELgorCQkJCUNBTklTVEVSIEhPVVNFCisJCQkJSkVXUlkgU1RSRUVUIFdJTkNIRVNURVIgQjAyMyA4U0EKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLTREICAgKGhleCkJCURJViBPRiBSRVNFQVJDSCAmIFNUQVRJU1RJQ1MKKzAwRDA0RCAgICAgKGJhc2UgMTYpCQlESVYgT0YgUkVTRUFSQ0ggJiBTVEFUSVNUSUNTCisJCQkJQk9HIE9GIFRIRSBGRURFUkFMIFJFU0VSVkUgU1lTCisJCQkJTUFJTCBTVE9QIDk2IDIwVEggJgorCQkJCVdBU0hJTkdUT04gREMgMjA1NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTRFICAgKGhleCkJCUxPR0lCQUcKKzAwRDA0RSAgICAgKGJhc2UgMTYpCQlMT0dJQkFHCisJCQkJMiwgUnVlIGRlIGxhIE1hbmRpbmnDqHJlCisJCQkJNzIzMDAgU0FCTEUvU0FSVEhFCisJCQkJRlJBTkNFCisKKzAwLUQwLTRGICAgKGhleCkJCUJJVFJPTklDUywgSU5DLgorMDBEMDRGICAgICAoYmFzZSAxNikJCUJJVFJPTklDUywgSU5DLgorCQkJCVAuTy4gQk9YIDIyMjkwCisJCQkJTEVISUdIIFZBTExFWSBQQSAxODAwMi0yMjkwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC01MCAgIChoZXgpCQlJU0tSQVRFTAorMDBEMDUwICAgICAoYmFzZSAxNikJCUlTS1JBVEVMCisJCQkJTEpVQkxKQU5TS0EgQy4gMjRBCisJCQkJNDAwMCBLUkFOSgorCQkJCVNMT1ZFTklBCisJCQkJU0xPVkVOSUEKKworMDAtRDAtNTEgICAoaGV4KQkJTzIgTUlDUk8sIElOQy4KKzAwRDA1MSAgICAgKGJhc2UgMTYpCQlPMiBNSUNSTywgSU5DLgorCQkJCTI5MDEgVEFTTUFOIERSSVZFLCBTVEUuIzIwNQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC01MiAgIChoZXgpCQlBU0NFTkQgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwRDA1MiAgICAgKGJhc2UgMTYpCQlBU0NFTkQgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQlPTkUgQVNDRU5EIFBMQVpBCisJCQkJMTcwMSBIQVJCT1IgQkFZIFBBUktXQVkKKwkJCQlBTEFNRURBIENBIDk0NTAyLTMwMDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTUzICAgKGhleCkJCUNPTk5FQ1RFRCBTWVNURU1TCiswMEQwNTMgICAgIChiYXNlIDE2KQkJQ09OTkVDVEVEIFNZU1RFTVMKKwkJCQkxMjYgVy4gRklHVUVST0EgU1RSRUVUCisJCQkJU0FOVEEgQkFSQkFSQSBDQSA5MzEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNTQgICAoaGV4KQkJU0FTIElOU1RJVFVURSBJTkMuCiswMEQwNTQgICAgIChiYXNlIDE2KQkJU0FTIElOU1RJVFVURSBJTkMuCisJCQkJU0FTIENBTVBVUyBEUklWRSwgUjQKKwkJCQlDQVJZIE5DIDI3NTExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC01NSAgIChoZXgpCQlLQVRIUkVJTi1XRVJLRSBLRworMDBEMDU1ICAgICAoYmFzZSAxNikJCUtBVEhSRUlOLVdFUktFIEtHCisJCQkJQU5UT04tS0FUSFJFSU4tU1RSQVNTIDEtMworCQkJCUQtODMwMDQgUk9TRU5IRUlNCisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtRDAtNTYgICAoaGV4KQkJU09NQVQgQ09SUE9SQVRJT04KKzAwRDA1NiAgICAgKGJhc2UgMTYpCQlTT01BVCBDT1JQT1JBVElPTgorCQkJCTcwMiBLSUxMQVJORVkgU1RSRUVUCisJCQkJVVJCQU5BIElMIDYxODAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC01NyAgIChoZXgpCQlVTFRSQUssIElOQy4KKzAwRDA1NyAgICAgKGJhc2UgMTYpCQlVTFRSQUssIElOQy4KKwkJCQkxMzAxIFdBVEVSUyBSSURHRSBEUklWRQorCQkJCUxFV0lTVklMTEUgVFggNzUwNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTU4ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDA1OCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTU5ICAgKGhleCkJCUFNQklUIE1JQ1JPU1lTVEVNUyBDT1JQLgorMDBEMDU5ICAgICAoYmFzZSAxNikJCUFNQklUIE1JQ1JPU1lTVEVNUyBDT1JQLgorCQkJCTVGLTEsIDUgSFNJTi1BTiBST0FECisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksgSFNJTkNIVQorCQkJCVRBSVdBTiBUQUlXQU4gUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC01QSAgIChoZXgpCQlTWU1CSU9OSUNTLCBMVEQuCiswMEQwNUEgICAgIChiYXNlIDE2KQkJU1lNQklPTklDUywgTFRELgorCQkJCVNULiBKT0hOJ1MgSU5OT1ZBVElPTiBQQVJLCisJCQkJQ0FNQlJJREdFICBDQjQgMFdTCisJCQkJRU5HTEFORAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUQwLTVCICAgKGhleCkJCUFDUk9MT09QIE1PVElPTiBDT05UUk9MCiswMEQwNUIgICAgIChiYXNlIDE2KQkJQUNST0xPT1AgTU9USU9OIENPTlRST0wKKwkJCQlTWVNURU1TCisJCQkJMzY1MCBDSEVTVE5VVCBTVC4gTi4KKwkJCQlDSEFTS0EgTU4gNTUzMTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTVDICAgKGhleCkJCVRFQ0hOT1RSRU5EIFNZU1RFTVRFQ0hOSUsgR01CSAorMDBEMDVDICAgICAoYmFzZSAxNikJCVRFQ0hOT1RSRU5EIFNZU1RFTVRFQ0hOSUsgR01CSAorCQkJCVdJTEhFTE0tV09MRkYtU1RSQVNTRSA2CisJCQkJR0VSLTk5MDk5IEVSRlVSVAorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLTVEICAgKGhleCkJCUlOVEVMTElXT1JYWCwgSU5DLgorMDBEMDVEICAgICAoYmFzZSAxNikJCUlOVEVMTElXT1JYWCwgSU5DLgorCQkJCTE4MTkgTUFJTiBTVFJFRVQsICBTVEUgIzExMDEKKwkJCQlTQVJBU09UQSBGTCAzNDIzNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNUUgICAoaGV4KQkJU1RSQVRBQkVBTSBURUNITk9MT0dZLCBJTkMuCiswMEQwNUUgICAgIChiYXNlIDE2KQkJU1RSQVRBQkVBTSBURUNITk9MT0dZLCBJTkMuCisJCQkJMTk0MyBMQU5ESU5HUyBEUklWRQorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTVGICAgKGhleCkJCVZBTENPTSwgSU5DLgorMDBEMDVGICAgICAoYmFzZSAxNikJCVZBTENPTSwgSU5DLgorCQkJCTExMTEgSU5EVVNUUlkgQVZFTlVFCisJCQkJUk9BTk9LRSBWQSAyNDAxMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNjAgICAoaGV4KQkJUGFuYXNvbmljIEV1cm9wZSBMdGQuCiswMEQwNjAgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIEV1cm9wZSBMdGQuCisJCQkJTEFCT1JBVE9SSUVTIEdNQkgKKwkJCQlNT05aQVNUUi4gNEMgRC02MzIyNSBMQU5HRU4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1EMC02MSAgIChoZXgpCQlUUkVNT04gRU5URVJQUklTRVMgQ08uLCBMVEQuCiswMEQwNjEgICAgIChiYXNlIDE2KQkJVFJFTU9OIEVOVEVSUFJJU0VTIENPLiwgTFRELgorCQkJCTE1RiwgTk8uIDExNiwgU0VDLiAxCisJCQkJSFNJTi1UQUkgNVRIIFJPQUQgSFNJQ0hJSCwgVEFJUEVJIENPVU5UWQorCQkJCVRBSVdBTiBUQUlXQU4gUk9DCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC02MiAgIChoZXgpCQlESUdJR1JBTQorMDBEMDYyICAgICAoYmFzZSAxNikJCURJR0lHUkFNCisJCQkJUEFSQyBERSBQUkUgTUlMTElFVAorCQkJCTM4MzMwIE1PTlRCT05OT1QKKwkJCQlGUkFOQ0UKKwkJCQlGUkFOQ0UKKworMDAtRDAtNjMgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBEMDYzICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNjQgICAoaGV4KQkJTVVMVElURUwKKzAwRDA2NCAgICAgKGJhc2UgMTYpCQlNVUxUSVRFTAorCQkJCTI5MDUgUlVFIERFIENFTExFUworCQkJCVFVRUJFQyBDSVRZLCBRVUVCRUMgUFJPVklOQ0UKKwkJCQlDQU5BREEgQ0FOQURBIEcyQy0xVzcKKwkJCQlDQU5BREEKKworMDAtRDAtNjUgICAoaGV4KQkJVE9LTyBFTEVDVFJJQworMDBEMDY1ICAgICAoYmFzZSAxNikJCVRPS08gRUxFQ1RSSUMKKwkJCQk0MDA4IEtVUk9IQU1BLCBIQVNVREEtU0hJCisJCQkJU0FJVEFNQSAzNDktMDE5MgorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtRDAtNjYgICAoaGV4KQkJV0lOVFJJU1MgRU5HSU5FRVJJTkcgQ09SUC4KKzAwRDA2NiAgICAgKGJhc2UgMTYpCQlXSU5UUklTUyBFTkdJTkVFUklORyBDT1JQLgorCQkJCTYzNDQgRkVSUklTIFNRVUFSRQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNjcgICAoaGV4KQkJQ0FNUElPIENPTU1VTklDQVRJT05TCiswMEQwNjcgICAgIChiYXNlIDE2KQkJQ0FNUElPIENPTU1VTklDQVRJT05TCisJCQkJMjAzMyBHQVRFV0FZIFBMLCBTVUlURSAjNjAwCisJCQkJU0FOIEpPU0UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTY4ICAgKGhleCkJCUlXSUxMIENPUlBPUkFUSU9OCiswMEQwNjggICAgIChiYXNlIDE2KQkJSVdJTEwgQ09SUE9SQVRJT04KKwkJCQlOTy4xMCwgV1UtQ0hVQU4gMyBSRCwKKwkJCQlIU0lOLUNIVUFOIENJVFkgVEFJUEVJCisJCQkJVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC02OSAgIChoZXgpCQlURUNITk9MT0dJQyBTWVNURU1TCiswMEQwNjkgICAgIChiYXNlIDE2KQkJVEVDSE5PTE9HSUMgU1lTVEVNUworCQkJCTE2NjEwIEUuIExBU0VSIERSSVZFLVNURS4gIzEwCisJCQkJRk9VTlRBSU4gSElMTFMgQVogODUyNjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTZBICAgKGhleCkJCUxJTktVUCBTWVNURU1TIENPUlBPUkFUSU9OCiswMEQwNkEgICAgIChiYXNlIDE2KQkJTElOS1VQIFNZU1RFTVMgQ09SUE9SQVRJT04KKwkJCQkxMTkwIENPTEVNQU4gQVZFLi0gU1RFICMyQworCQkJCVNBTiBKT1NFIENBIDk1MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC02QiAgIChoZXgpCQlTUiBURUxFQ09NIElOQy4KKzAwRDA2QiAgICAgKGJhc2UgMTYpCQlTUiBURUxFQ09NIElOQy4KKwkJCQk4MTUwIFRyYW5zIENhbmFkYSBIaWdod2F5CisJCQkJTW9udHJlYWwKKwkJCQlRdWViZWMgIEg0UyAxTTUKKwkJCQlDQU5BREEKKworMDAtRDAtNkMgICAoaGV4KQkJU0hBUkVXQVZFLCBJTkMuCiswMEQwNkMgICAgIChiYXNlIDE2KQkJU0hBUkVXQVZFLCBJTkMuCisJCQkJNTE3NSBISUxMU0RBTEUgQ0lSQ0xFCisJCQkJRUwgRE9SQURPIEhJTExTIENBIDk1NzYyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC02RCAgIChoZXgpCQlBQ1JJU09OLCBJTkMuCiswMEQwNkQgICAgIChiYXNlIDE2KQkJQUNSSVNPTiwgSU5DLgorCQkJCTIwIEVNUElSRSBCTFZELgorCQkJCU1PT05BQ0hJRSBOSiAwNzA3NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNkUgICAoaGV4KQkJVFJFTkRWSUVXIFJFQ09SREVSUyBMVEQuCiswMEQwNkUgICAgIChiYXNlIDE2KQkJVFJFTkRWSUVXIFJFQ09SREVSUyBMVEQuCisJCQkJNCBBSVJGSUVMRCBXQVkKKwkJCQlDSFJJU1RDSFVSQ0ggRE9SU0VUIEJIMjMgM1RTCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC02RiAgIChoZXgpCQlLTUMgQ09OVFJPTFMKKzAwRDA2RiAgICAgKGJhc2UgMTYpCQlLTUMgQ09OVFJPTFMKKwkJCQlQLk8uIEJPWCA0OTcKKwkJCQkxOTQ3NiBORVcgUEFSSVMgSU5EVVNUUklBTCBEUi4KKwkJCQlORVcgUEFSSVMgSU4gNDY1NTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTcwICAgKGhleCkJCUxPTkcgV0VMTCBFTEVDVFJPTklDUyBDT1JQLgorMDBEMDcwICAgICAoYmFzZSAxNikJCUxPTkcgV0VMTCBFTEVDVFJPTklDUyBDT1JQLgorCQkJCTRGLCBOTy4gNTktMSwgVFNBTyBESSBXRUkKKwkJCQlTSEVOR0tFTkcgSFNJQU5HLCBUQUlQRUkgSFNJRU4KKwkJCQlUQUlXQU4gMjIyIFRBSVdBTiAyMjIgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC03MSAgIChoZXgpCQlFQ0hFTE9OIENPUlAuCiswMEQwNzEgICAgIChiYXNlIDE2KQkJRUNIRUxPTiBDT1JQLgorCQkJCTU1MCBNZXJpZGlhbiBBdmVudWUKKwkJCQlTYW4gSm9zZSBDQSA5NTEyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNzIgICAoaGV4KQkJQlJPQURMT0dJQworMDBEMDcyICAgICAoYmFzZSAxNikJCUJST0FETE9HSUMKKwkJCQk0NjMgUy4gTUlMUElUQVMgQkxWRC4KKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNzMgICAoaGV4KQkJQUNOIEFEVkFOQ0VEIENPTU1VTklDQVRJT05TCiswMEQwNzMgICAgIChiYXNlIDE2KQkJQUNOIEFEVkFOQ0VEIENPTU1VTklDQVRJT05TCisJCQkJTkVUV09SS1MgU0EKKwkJCQlSVUUgRFUgUFVJVFMtR09ERVQgQkEgQ0gtMjAwMCBORVVDSEFURUwKKwkJCQlTV0lUWkVSTEFORAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLUQwLTc0ICAgKGhleCkJCVRBUVVBIFNZU1RFTVMsIElOQy4KKzAwRDA3NCAgICAgKGJhc2UgMTYpCQlUQVFVQSBTWVNURU1TLCBJTkMuCisJCQkJMTYwMCBGQUxNT1VUSCBSRC4gLSBTVEUKKwkJCQlDRU5URVJWSUxMRSBNQSAwMjYzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNzUgICAoaGV4KQkJQUxBUklTIE1FRElDQUwgU1lTVEVNUywgSU5DLgorMDBEMDc1ICAgICAoYmFzZSAxNikJCUFMQVJJUyBNRURJQ0FMIFNZU1RFTVMsIElOQy4KKwkJCQlQLk8uIEJPWCA4NTMzNQorCQkJCTEwMjIxIFdBVEVSSURHRSBDSVJDTEUKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEtMjczMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtNzYgICAoaGV4KQkJIEJhbmsgb2YgQW1lcmljYQorMDBEMDc2ICAgICAoYmFzZSAxNikJCSBCYW5rIG9mIEFtZXJpY2EKKwkJCQkxMTAwIE1lcnJpbGwgRHJpdmUKKwkJCQlQZW5uaW5ndG9uIE5KIDA4NTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC03NyAgIChoZXgpCQlMVUNFTlQgVEVDSE5PTE9HSUVTCiswMEQwNzcgICAgIChiYXNlIDE2KQkJTFVDRU5UIFRFQ0hOT0xPR0lFUworCQkJCUNMSUVOVCBBQ0NFU1MgQlVTSU5FU1MgVU5JVAorCQkJCTEwMSBDUkFXRk9SRFMgQ09STkVSIFJPQUQgUk9PTSAjMUUtNDM3QUwKKwkJCQlIT0xNREVMIE5KIDA3NzMzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC03OCAgIChoZXgpCQlFbHRleCBvZiBTd2VkZW4gQUIKKzAwRDA3OCAgICAgKGJhc2UgMTYpCQlFbHRleCBvZiBTd2VkZW4gQUIKKwkJCQlCb3ggMjQKKwkJCQkyODMgMjEgT1NCWSAgCisJCQkJU1dFREVOCisKKzAwLUQwLTc5ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDA3OSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTdBICAgKGhleCkJCUFNQVFVRVNUIENPTVBVVEVSIENPUlAuCiswMEQwN0EgICAgIChiYXNlIDE2KQkJQU1BUVVFU1QgQ09NUFVURVIgQ09SUC4KKwkJCQk4L0YsIDc5IEhTSU4tVEFJCisJCQkJNVRIIFJPQUQsIFNFQy4gMSBIUzEtQ0hJSCwgVEFJUEVJCisJCQkJVEFJV0FOIFIuTy5DLgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtN0IgICAoaGV4KQkJQ09NQ0FNIElOVEVSTkFUSU9OQUwgSU5DCiswMEQwN0IgICAgIChiYXNlIDE2KQkJQ09NQ0FNIElOVEVSTkFUSU9OQUwgSU5DCisJCQkJMTE0MCBNY0Rlcm1vdHQgRHJpdmUgU3VpdGUgMjAwCisJCQkJV0VTVCBDSEVTVEVSIFBBIDE5MzgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC03QyAgIChoZXgpCQlLT1lPIEVMRUNUUk9OSUNTIElOQy4gQ08uLExURC4KKzAwRDA3QyAgICAgKGJhc2UgMTYpCQlLT1lPIEVMRUNUUk9OSUNTIElOQy4gQ08uLExURC4KKwkJCQkxLTE3MSBURU5KSU4tQ0hPIEtPREFJUkEKKwkJCQlUT0tZTyAgMTg3LTAwMDQKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUQwLTdEICAgKGhleCkJCUNPU0lORSBDT01NVU5JQ0FUSU9OUworMDBEMDdEICAgICAoYmFzZSAxNikJCUNPU0lORSBDT01NVU5JQ0FUSU9OUworCQkJCTEyMDAgQlJJREdFIFBBUktXQVkKKwkJCQlSRURXT09EIENJVFkgQ0EgOTQwNjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTdFICAgKGhleCkJCUtFWUNPUlAgTFRELgorMDBEMDdFICAgICAoYmFzZSAxNikJCUtFWUNPUlAgTFRELgorCQkJCVAuTy4gQk9YIDE5OQorCQkJCUNIQVRTV09PRCBOU1cgMjA1NworCQkJCUFVU1RSQUxJQQorCQkJCUFVU1RSQUxJQQorCiswMC1EMC03RiAgIChoZXgpCQlTVFJBVEVHWSAmIFRFQ0hOT0xPR1ksIExJTUlURUQKKzAwRDA3RiAgICAgKGJhc2UgMTYpCQlTVFJBVEVHWSAmIFRFQ0hOT0xPR1ksIExJTUlURUQKKwkJCQlTdWl0ZSA0LjIsIENsaWZ0b24gSGVpZ2h0cworCQkJCVRyaWFuZ2xlIFdlc3QKKwkJCQlCcmlzdG9sIEJTOCAxRUoKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC04MCAgIChoZXgpCQlFWEFCWVRFIENPUlBPUkFUSU9OCiswMEQwODAgICAgIChiYXNlIDE2KQkJRVhBQllURSBDT1JQT1JBVElPTgorCQkJCTE2ODUgMzhUSCBTVFJFRVQKKwkJCQlCT1VMREVSIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04MSAgIChoZXgpCQlSVEQgRW1iZWRkZWQgVGVjaG5vbG9naWVzLCBJbmMuCiswMEQwODEgICAgIChiYXNlIDE2KQkJUlREIEVtYmVkZGVkIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTEwMyBJbm5vdmF0aW9uIEJsdmQuCisJCQkJU3RhdGUgQ29sbGVnZSBQQSAxNjgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtODIgICAoaGV4KQkJSU9XQVZFIElOQy4KKzAwRDA4MiAgICAgKGJhc2UgMTYpCQlJT1dBVkUgSU5DLgorCQkJCTEwMTAgV0lTQ09OU0lOIEFWRU5VRQorCQkJCVdBU0hJTkdUT04gREMgMjAwMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTgzICAgKGhleCkJCUlOVkVSVEVYLCBJTkMuCiswMEQwODMgICAgIChiYXNlIDE2KQkJSU5WRVJURVgsIElOQy4KKwkJCQkxMDEyIE1PUlNFIEFWRU5VRS0gU1RFLiM5CisJCQkJU1VOTllWQUxFIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04NCAgIChoZXgpCQlORVhDT01NIFNZU1RFTVMsIElOQy4KKzAwRDA4NCAgICAgKGJhc2UgMTYpCQlORVhDT01NIFNZU1RFTVMsIElOQy4KKwkJCQlTVUlUICNOQUwtOTAzLAorCQkJCVNVTkdOQU0gVEVDSE5PLVBBUksgMTQ4IFlBVEFQLURPTkcsIEJVTkQKKwkJCQlTVU5HTkFNLUNJVFkgU1VOR05BTS1DSVRZIEtZVU5HR0ktRE8sSworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1EMC04NSAgIChoZXgpCQlPVElTIEVMRVZBVE9SIENPTVBBTlkKKzAwRDA4NSAgICAgKGJhc2UgMTYpCQlPVElTIEVMRVZBVE9SIENPTVBBTlkKKwkJCQk1IEZBUk0gU1BSSU5HUyBSRC4KKwkJCQlGQVJNSU5HVE9OIENUIDA2MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04NiAgIChoZXgpCQlGT1ZFT04sIElOQy4KKzAwRDA4NiAgICAgKGJhc2UgMTYpCQlGT1ZFT04sIElOQy4KKwkJCQkyODIwIFNhbiBUb21hcyBFeHByZXNzd2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTg3ICAgKGhleCkJCU1JQ1JPRklSU1QgSU5DLgorMDBEMDg3ICAgICAoYmFzZSAxNikJCU1JQ1JPRklSU1QgSU5DLgorCQkJCTExIEVBU1QgT0FLIFNUUkVFVAorCQkJCU9BS0xBTkQgTkogMDc0MzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTg4ICAgKGhleCkJCU1vdG9yb2xhLCBJbmMuCiswMEQwODggICAgIChiYXNlIDE2KQkJTW90b3JvbGEsIEluYy4KKwkJCQkyNDUwIFdhbHNoIEF2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04OSAgIChoZXgpCQlEWU5BQ09MT1IsIElOQy4KKzAwRDA4OSAgICAgKGJhc2UgMTYpCQlEWU5BQ09MT1IsIElOQy4KKwkJCQlOby4xMTYsIFpob3V6aSBTdC4sIE5laWh1IERpc3QuCisJCQkJVGFpcGVpIENpdHkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtOEEgICAoaGV4KQkJUEhPVFJPTiBVU0EKKzAwRDA4QSAgICAgKGJhc2UgMTYpCQlQSE9UUk9OIFVTQQorCQkJCTExMDEgUy4gV0lOQ0hFU1RFUiBCTFZELgorCQkJCVNVSVRFICNELTE0NAorCQkJCVNBTiBKT1NFIENBIDk1MTI4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04QiAgIChoZXgpCQlBRFZBIE9wdGljYWwgTmV0d29ya2luZyBMdGQKKzAwRDA4QiAgICAgKGJhc2UgMTYpCQlBRFZBIE9wdGljYWwgTmV0d29ya2luZyBMdGQKKwkJCQlDTElGVE9OIFRFQ0hOT0xPR1kgQ0VOVFJFCisJCQkJQ0xJRlRPTiBNT09SCisJCQkJWU9SSyBOT1JUSCBZT1JLU0hJUkUgWU8zMCA0R1UKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC04QyAgIChoZXgpCQlHRU5PQSBURUNITk9MT0dZLCBJTkMuCiswMEQwOEMgICAgIChiYXNlIDE2KQkJR0VOT0EgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTU0MDEgVEVDSCBDSVJDTEUKKwkJCQlNT09SUEFSSyBDQSA5MzAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOEQgICAoaGV4KQkJUEhPRU5JWCBHUk9VUCwgSU5DLgorMDBEMDhEICAgICAoYmFzZSAxNikJCVBIT0VOSVggR1JPVVAsIElOQy4KKwkJCQkxMjMgTUFSQ1VTIEJMVkQuCisJCQkJSEFVUFBBVUdFIE5ZIDExNzg4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC04RSAgIChoZXgpCQlOVklTSU9OIElOQy4KKzAwRDA4RSAgICAgKGJhc2UgMTYpCQlOVklTSU9OIElOQy4KKwkJCQkxMjUgQ1JPV04gUE9JTlQgQ09VUlQKKwkJCQlHUkFTUyBWQUxMRVkgQ0EgOTU5NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLThGICAgKGhleCkJCUFSREVOVCBURUNITk9MT0dJRVMsIElOQy4KKzAwRDA4RiAgICAgKGJhc2UgMTYpCQlBUkRFTlQgVEVDSE5PTE9HSUVTLCBJTkMuCisJCQkJMjUwIE4uIFdPTEZFIFJPQUQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTkwICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDA5MCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTkxICAgKGhleCkJCVNNQVJUU0FOIFNZU1RFTVMsIElOQy4KKzAwRDA5MSAgICAgKGJhc2UgMTYpCQlTTUFSVFNBTiBTWVNURU1TLCBJTkMuCisJCQkJNDY1NSBPTEQgSVJPTlNJREVTIERSLiAjNDgwCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTkyICAgKGhleCkJCUdMRU5BWVJFIFdFU1RFUk4gTVVMVElQTEVYCiswMEQwOTIgICAgIChiYXNlIDE2KQkJR0xFTkFZUkUgV0VTVEVSTiBNVUxUSVBMRVgKKwkJCQkxMTk2IEJPUlJFR0FTIEFWRU5VRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOTMgICAoaGV4KQkJVFEgLSBDT01QT05FTlRTIEdNQkgKKzAwRDA5MyAgICAgKGJhc2UgMTYpCQlUUSAtIENPTVBPTkVOVFMgR01CSAorCQkJCUdVVCBERUxMSU5HIC0gTVVITFNUUiAyCisJCQkJRC04MjIyOSBTRUVGRUxECisJCQkJR0VSTUFOWQorCQkJCUdFUk1BTlkKKworMDAtRDAtOTQgICAoaGV4KQkJVElNRUxJTkUgVklTVEEsIElOQy4KKzAwRDA5NCAgICAgKGJhc2UgMTYpCQlUSU1FTElORSBWSVNUQSwgSU5DLgorCQkJCTE3NTUtQiBMQSBDT1NUQSBNRUFET1dTIERSSVZFCisJCQkJU0FOIE1BUkNPUyBDQSA5MjA2OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOTUgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQsIEVudGVycHJpc2UgQnVzaW5lc3MgR3JvdXAKKzAwRDA5NSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudCwgRW50ZXJwcmlzZSBCdXNpbmVzcyBHcm91cAorCQkJCTI2ODAxIFdlc3QgQWdvdXJhIFJvYWQKKwkJCQlDQUxBQkFTQVMgQ0EgOTEzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTk2ICAgKGhleCkJCTNDT00gRVVST1BFIExURC4KKzAwRDA5NiAgICAgKGJhc2UgMTYpCQkzQ09NIEVVUk9QRSBMVEQuCisJCQkJQk9VTkRBUlkgV0FZCisJCQkJSEVNRUwgSEVNUFNURUFEIEhFUlRTLiBIUDIgN1lVCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC05NyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEQwOTcgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRQorCQkJCU0vUyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC05OCAgIChoZXgpCQlQaG90b24gRHluYW1pY3MgQ2FuYWRhIEluYy4KKzAwRDA5OCAgICAgKGJhc2UgMTYpCQlQaG90b24gRHluYW1pY3MgQ2FuYWRhIEluYy4KKwkJCQkyMjEgV2hpdGVoYWxsIERyaXZlCisJCQkJTWFya2hhbSwgT250YXJpbworCQkJCUwzUiA5VDEKKwkJCQlDQU5BREEKKworMDAtRDAtOTkgICAoaGV4KQkJRUxDQVJEIE9ZCiswMEQwOTkgICAgIChiYXNlIDE2KQkJRUxDQVJEIE9ZCisJCQkJUC5PLiBCT1ggMTIwL0JFQ0tFUklOVElDIDM4CisJCQkJNTEyMDEgS0FOR0FTTklFTUkKKwkJCQlGSU5MQU5ECisJCQkJRklOTEFORAorCiswMC1EMC05QSAgIChoZXgpCQlGSUxBTkVUIENPUlBPUkFUSU9OCiswMEQwOUEgICAgIChiYXNlIDE2KQkJRklMQU5FVCBDT1JQT1JBVElPTgorCQkJCTkzMSBCZW5lY2lhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtOUIgICAoaGV4KQkJU1BFQ1RFTCBMVEQuCiswMEQwOUIgICAgIChiYXNlIDE2KQkJU1BFQ1RFTCBMVEQuCisJCQkJMjEgU1RJTExPUkdBTiBJTkRVU1RSSUFMIFBBUksKKwkJCQlTVElMTE9SR0FOLCBDTy4gRFVCTElOCisJCQkJSVJFTEFORAorCQkJCUlSRUxBTkQKKworMDAtRDAtOUMgICAoaGV4KQkJS0FQQURJQSBDT01NVU5JQ0FUSU9OUworMDBEMDlDICAgICAoYmFzZSAxNikJCUtBUEFESUEgQ09NTVVOSUNBVElPTlMKKwkJCQkzOTI1IFdFU1QgQlJPS0VSIExBTkUKKwkJCQlBVVNUSU4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLTlEICAgKGhleCkJCVZFUklTIElORFVTVFJJRVMKKzAwRDA5RCAgICAgKGJhc2UgMTYpCQlWRVJJUyBJTkRVU1RSSUVTCisJCQkJMTA4MzEgU1cgQ0FTQ0FERQorCQkJCVBPUlRMQU5EIE9SIDk3MjIzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC05RSAgIChoZXgpCQkyV0lSRSwgSU5DLgorMDBEMDlFICAgICAoYmFzZSAxNikJCTJXSVJFLCBJTkMuCisJCQkJNjk0IFRBU01BTiBEUklWRQorCQkJCU1JTFBJVEFTIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC05RiAgIChoZXgpCQlOT1ZURUsgVEVTVCBTWVNURU1TCiswMEQwOUYgICAgIChiYXNlIDE2KQkJTk9WVEVLIFRFU1QgU1lTVEVNUworCQkJCTIxNzAgUEFSQUdPTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BMCAgIChoZXgpCQlNSVBTIERFTk1BUksKKzAwRDBBMCAgICAgKGJhc2UgMTYpCQlNSVBTIERFTk1BUksKKwkJCQlMQVVUUlVQVkFORyAyQgorCQkJCTI3NTAgQkFMTEVSVVAKKwkJCQlESyAtIERFTk1BUksKKwkJCQlERU5NQVJLCisKKzAwLUQwLUExICAgKGhleCkJCU9TS0FSIFZJRVJMSU5HIEdNQkggKyBDTy4gS0cKKzAwRDBBMSAgICAgKGJhc2UgMTYpCQlPU0tBUiBWSUVSTElORyBHTUJIICsgQ08uIEtHCisJCQkJUFJFVFpGRUxERVIgU1RSLiAyMQorCQkJCTkxMzIwIEVCRVJNQU5OU1RBRFQKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1EMC1BMiAgIChoZXgpCQlJTlRFR1JBVEVEIERFVklDRQorMDBEMEEyICAgICAoYmFzZSAxNikJCUlOVEVHUkFURUQgREVWSUNFCisJCQkJVEVDSE5PTE9HWSwgSU5DLgorCQkJCTI5NzUgU1RFTkRFUiBXQVkgIE0vUyAwLTMxOAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BMyAgIChoZXgpCQlWT0NBTCBEQVRBLCBJTkMuCiswMEQwQTMgICAgIChiYXNlIDE2KQkJVk9DQUwgREFUQSwgSU5DLgorCQkJCTE3MDEgTiBHUkVFTlZJTExFICMzMDQKKwkJCQlSSUNIQVJEU09OIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BNCAgIChoZXgpCQlBTEFOVFJPIENPTU1VTklDQVRJT05TCiswMEQwQTQgICAgIChiYXNlIDE2KQkJQUxBTlRSTyBDT01NVU5JQ0FUSU9OUworCQkJCTE0MSBTVE9OWSBDSVJDTEUsICBTVEUuICMyMTAKKwkJCQlTQU5UQVJPU0EgQ0EgOTU0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUE1ICAgKGhleCkJCUFNRVJJQ0FOIEFSSVVNCiswMEQwQTUgICAgIChiYXNlIDE2KQkJQU1FUklDQU4gQVJJVU0KKwkJCQkxNDI4MSBDSEFNQkVSUyBST0FECisJCQkJVFVTVElOIENBIDkyNzgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BNiAgIChoZXgpCQlMQU5CSVJEIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMEQwQTYgICAgIChiYXNlIDE2KQkJTEFOQklSRCBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCVJPT00gQS0yMTEsIFMuQi5JLgorCQkJCTY0Ny0yNiwgREVVTkdDSE9OLURPTkcsIEtBTkdTRU8tR1UsICBTRU8KKwkJCQlLT1JFQSAxNTctMDMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQwLUE3ICAgKGhleCkJCVRPS1lPIFNPS0tJIEtFTktZVUpPIENPLiwgTFRELgorMDBEMEE3ICAgICAoYmFzZSAxNikJCVRPS1lPIFNPS0tJIEtFTktZVUpPIENPLiwgTFRELgorCQkJCTgtMiwgTUlOQU1JLU9ISSA2LUNIT01FCisJCQkJU0hJTkFHQVdBLUtVIFRPS1lPCisJCQkJSkFQQU4gMTQwLTg1NjAKKwkJCQlKQVBBTgorCiswMC1EMC1BOCAgIChoZXgpCQlORVRXT1JLIEVOR0lORVMsIElOQy4KKzAwRDBBOCAgICAgKGJhc2UgMTYpCQlORVRXT1JLIEVOR0lORVMsIElOQy4KKwkJCQk2MSBQTEVBU0FOVCBTVFJFRVQKKwkJCQlSQU5ET0xQSCBNQSAwMjM2OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQTkgICAoaGV4KQkJU0hJTkFOTyBLRU5TSEkgQ08uLCBMVEQuCiswMEQwQTkgICAgIChiYXNlIDE2KQkJU0hJTkFOTyBLRU5TSEkgQ08uLCBMVEQuCisJCQkJRUxFQ1RST05JQyBFUVVJUE1FTlQgRElWSVNJT04KKwkJCQk2LTE1LTI2LCBDSFVPLCBVRURBLVNISSBOQUdBTk8tS0VOLCAzODYtCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1EMC1BQSAgIChoZXgpCQlDSEFTRSBDT01NVU5JQ0FUSU9OUworMDBEMEFBICAgICAoYmFzZSAxNikJCUNIQVNFIENPTU1VTklDQVRJT05TCisJCQkJU1QuIExFT05BUkRTIFJPQUQKKwkJCQlFQVNUIFNIRUVOIExPTkRPTiBTVzE2IDdMWQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRDAtQUIgICAoaGV4KQkJREVMVEFLQUJFTCBURUxFQ09NIENWCiswMEQwQUIgICAgIChiYXNlIDE2KQkJREVMVEFLQUJFTCBURUxFQ09NIENWCisJCQkJSEFOWkVXRUcgMTQKKwkJCQkyODAzIE1DIEdPVURBCisJCQkJVEhFIE5FVEhFUkxBTkRTCisJCQkJTkVUSEVSTEFORFMKKworMDAtRDAtQUMgICAoaGV4KQkJR1JBWVNPTiBXSVJFTEVTUworMDBEMEFDICAgICAoYmFzZSAxNikJCUdSQVlTT04gV0lSRUxFU1MKKwkJCQkxNDAgVklTVEEgQ0VOVFJFIERSSVZFCisJCQkJRk9SRVNUIFZBIDI0NTUxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BRCAgIChoZXgpCQlUTCBJTkRVU1RSSUVTCiswMEQwQUQgICAgIChiYXNlIDE2KQkJVEwgSU5EVVNUUklFUworCQkJCTI1NDEgVFJBQ1kgUk9BRAorCQkJCU5PUlRIV09PRCBPSCA0MzYxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQUUgICAoaGV4KQkJT1JFU0lTIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEQwQUUgICAgIChiYXNlIDE2KQkJT1JFU0lTIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTQ2NzAgTlcgR1JFRU5CUklFUiBQS1dZCisJCQkJQkVBVkVSVE9OIE9SIDk3MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1BRiAgIChoZXgpCQlDVVRMRVItSEFNTUVSLCBJTkMuCiswMEQwQUYgICAgIChiYXNlIDE2KQkJQ1VUTEVSLUhBTU1FUiwgSU5DLgorCQkJCVBNUCBDRU5URVIKKwkJCQkyNDAgVklTVEEgUEFSSyBEUklWRQorCQkJCVBJVFRTQlVSR0ggUEEgMTUyMDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUIwICAgKGhleCkJCUJJVFNXSVRDSCBMVEQuCiswMEQwQjAgICAgIChiYXNlIDE2KQkJQklUU1dJVENIIExURC4KKwkJCQkzIE1FQURPVyBDT1VSVCwgQU1PUyBST0FECisJCQkJTUVBRE9XSEFMTCwgU0hFRkZJRUxEIFM5IDFCWAorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRDAtQjEgICAoaGV4KQkJT01FR0EgRUxFQ1RST05JQ1MgU0EKKzAwRDBCMSAgICAgKGJhc2UgMTYpCQlPTUVHQSBFTEVDVFJPTklDUyBTQQorCQkJCVJPVVRFIERFIFNPTEVVUkUgNjgKKwkJCQlDSC0yNTAwIEJJRU5ORSA0CisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswMC1EMC1CMiAgIChoZXgpCQlYSU9URUNIIENPUlBPUkFUSU9OCiswMEQwQjIgICAgIChiYXNlIDE2KQkJWElPVEVDSCBDT1JQT1JBVElPTgorCQkJCTY0NTUgRkxZSU5HIENMT1VEIERSSVZFCisJCQkJRURFTiBQUkFJUklFIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1CMyAgIChoZXgpCQlEUlMgRkxJR0hUIFNBRkVUWSBBTkQKKzAwRDBCMyAgICAgKGJhc2UgMTYpCQlEUlMgRkxJR0hUIFNBRkVUWSBBTkQKKwkJCQlDT01NVU5JQ0FUSU9OUworCQkJCTQwIENPTkNPVVJTRSBHQVRFIE5FUEVBTgorCQkJCUNBTkFEQSBLMkUgOEE2CisJCQkJQ0FOQURBCisKKzAwLUQwLUI0ICAgKGhleCkJCUtBVFNVSklNQSBDTy4sIExURC4KKzAwRDBCNCAgICAgKGJhc2UgMTYpCQlLQVRTVUpJTUEgQ08uLCBMVEQuCisJCQkJMS02LTEtLCBTSElSQVRPUkkKKwkJCQlLQVRTVVNISUtBLUtVIFRPS1lPIDEyNS0wMDYzCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1EMC1CNSAgIChoZXgpCQlJUHJpY290IGZvcm1lcmx5IERvdENvbQorMDBEMEI1ICAgICAoYmFzZSAxNikJCUlQcmljb3QgZm9ybWVybHkgRG90Q29tCisJCQkJMTAtMTIsIGF2ZW51ZSBkZSBWZXJkdW4KKwkJCQlMYS1HYXJlbm5lLUNvbG9tYmVzICBGLTkyMjUwCisJCQkJRlJBTkNFCisKKzAwLUQwLUI2ICAgKGhleCkJCUNSRVNDRU5UIE5FVFdPUktTLCBJTkMuCiswMEQwQjYgICAgIChiYXNlIDE2KQkJQ1JFU0NFTlQgTkVUV09SS1MsIElOQy4KKwkJCQkyMDEgUklWRVJORUNLIFJPQUQKKwkJCQlDSEVMTVNGT1JEIE1BIDAxODQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1CNyAgIChoZXgpCQlJTlRFTCBDT1JQT1JBVElPTgorMDBEMEI3ICAgICAoYmFzZSAxNikJCUlOVEVMIENPUlBPUkFUSU9OCisJCQkJNTIwMCBORSBFTEFNIFlPVU5HIFBBUktXQVkKKwkJCQlIRjEtMDgKKwkJCQlISUxMU0JPUk8gT1IgOTcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUI4ICAgKGhleCkJCUlvbWVnYSBDb3Jwb3JhdGlvbgorMDBEMEI4ICAgICAoYmFzZSAxNikJCUlvbWVnYSBDb3Jwb3JhdGlvbgorCQkJCQorCQkJCUNBTkFEQQorCiswMC1EMC1COSAgIChoZXgpCQlNSUNST1RFSyBJTlRFUk5BVElPTkFMLCBJTkMuCiswMEQwQjkgICAgIChiYXNlIDE2KQkJTUlDUk9URUsgSU5URVJOQVRJT05BTCwgSU5DLgorCQkJCU5PLiA2IElORFVTVFJZIEVBU1QgUk9BRCAzCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksgSFNJTkNIVQorCQkJCVRBSVdBTiAzMDA3NyBUQUlXQU4gMzAwNzcgUi5PLkMuCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC1CQSAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEQwQkEgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRS0gU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQkIgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBEMEJCICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUgIFNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUJDICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDBCQyAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFLVNKQS0yCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUJEICAgKGhleCkJCVNpbGljb24gSW1hZ2UgR21iSAorMDBEMEJEICAgICAoYmFzZSAxNikJCVNpbGljb24gSW1hZ2UgR21iSAorCQkJCUdhcmJzZW5lciBMYW5kc3RyLiAxMAorCQkJCUQtMzA0MTkgSGFubm92ZXIKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLUJFICAgKGhleCkJCUVNVVRFQyBJTkMuCiswMEQwQkUgICAgIChiYXNlIDE2KQkJRU1VVEVDIElOQy4KKwkJCQlQLk8uIEJPWCAzMDM1CisJCQkJRVZFUkVUVCBXQSA5ODIwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQkYgICAoaGV4KQkJUElWT1RBTCBURUNITk9MT0dJRVMKKzAwRDBCRiAgICAgKGJhc2UgMTYpCQlQSVZPVEFMIFRFQ0hOT0xPR0lFUworCQkJCTcwIFMuIExBS0UgQVZFTlVFIC0gU1RFLiAjOTAwCisJCQkJUEFTQURFTkEgQ0EgOTExMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUMwICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDBDMCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSLiAgU0pBLTIKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtQzEgICAoaGV4KQkJSEFSTU9OSUMgREFUQSBTWVNURU1TLCBMVEQuCiswMEQwQzEgICAgIChiYXNlIDE2KQkJSEFSTU9OSUMgREFUQSBTWVNURU1TLCBMVEQuCisJCQkJMTAgQkVJVCBTSEFNQUkgU1RSRUVUCisJCQkJVEVMLUFWSVYKKwkJCQlJU1JBRUwgNjcwMTgKKwkJCQlJU1JBRUwKKworMDAtRDAtQzIgICAoaGV4KQkJQkFMVEhBWkFSIFRFQ0hOT0xPR1kgQUIKKzAwRDBDMiAgICAgKGJhc2UgMTYpCQlCQUxUSEFaQVIgVEVDSE5PTE9HWSBBQgorCQkJCUFOS0RBTU1TR0FUQU4gMjQKKwkJCQlTLTE3MTQzIFNPTE5BCisJCQkJU1dFREVOCisJCQkJU1dFREVOCisKKzAwLUQwLUMzICAgKGhleCkJCVZJVklEIFRFQ0hOT0xPR1kgUFRFLCBMVEQuCiswMEQwQzMgICAgIChiYXNlIDE2KQkJVklWSUQgVEVDSE5PTE9HWSBQVEUsIExURC4KKwkJCQkxMDAzIEJVS0lUIE1FUkFIIENFTlRSQUwKKwkJCQkjMDMtMDksIFMxNTk4MzYKKwkJCQlTSU5HQVBPUkUKKwkJCQlTSU5HQVBPUkUKKworMDAtRDAtQzQgICAoaGV4KQkJVEVSQVRFQ0ggQ09SUE9SQVRJT04KKzAwRDBDNCAgICAgKGJhc2UgMTYpCQlURVJBVEVDSCBDT1JQT1JBVElPTgorCQkJCTIyMyBNSURETEVTRVggVFJQSy4KKwkJCQlCVVJMSU5HVE9OIE1BIDAxODAzLTMzMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUM1ICAgKGhleCkJCUNPTVBVVEFUSU9OQUwgU1lTVEVNUywgSU5DLgorMDBEMEM1ICAgICAoYmFzZSAxNikJCUNPTVBVVEFUSU9OQUwgU1lTVEVNUywgSU5DLgorCQkJCTgzNSBJTk5PVkFUSU9OIERSSVZFCisJCQkJS05PWFZJTExFIFROIDM3OTMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1DNiAgIChoZXgpCQlUSE9NQVMgJiBCRVRUUyBDT1JQLgorMDBEMEM2ICAgICAoYmFzZSAxNikJCVRIT01BUyAmIEJFVFRTIENPUlAuCisJCQkJVGhvbWFzICYgQmV0dHMgQXVzdC4gUHR5LiBMdGQuCisJCQkJMjNhIE55cmFuZyBTdHJlZXQKKwkJCQlMaWRjb21iZSBOZXcgU291dGggV2FsZXMgOTI2MTgKKwkJCQlBVVNUUkFMSUEKKworMDAtRDAtQzcgICAoaGV4KQkJUEFUSFdBWSwgSU5DLgorMDBEMEM3ICAgICAoYmFzZSAxNikJCVBBVEhXQVksIElOQy4KKwkJCQk3NzcgQkVUQSBEUklWRQorCQkJCU1BWUZJRUxEIFZJTExBR0UgT0ggNDQxNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUM4ICAgKGhleCkJCVByZXZhcyBBL1MKKzAwRDBDOCAgICAgKGJhc2UgMTYpCQlQcmV2YXMgQS9TCisJCQkJRnJlZGVyaWtza2FqIDYKKwkJCQlESy0yNDUwIEvDuGJlbmhhdm4gU1YgCisJCQkJREVOTUFSSworCiswMC1EMC1DOSAgIChoZXgpCQlBRFZBTlRFQ0ggQ08uLCBMVEQuCiswMEQwQzkgICAgIChiYXNlIDE2KQkJQURWQU5URUNIIENPLiwgTFRELgorCQkJCUZMLiA0LCBOTy4gIDEwOC0zCisJCQkJTUlORy1DSFVBTiBST0FEIFNISU5HLVRJRU4gQ0lUWQorCQkJCVRBSVBFSSBUQUlQRUkgVEFJV0FOCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1EMC1DQSAgIChoZXgpCQlJbnRyaW5zeWMgU29mdHdhcmUgSW50ZXJuYXRpb25hbCBJbmMuCiswMEQwQ0EgICAgIChiYXNlIDE2KQkJSW50cmluc3ljIFNvZnR3YXJlIEludGVybmF0aW9uYWwgSW5jLgorCQkJCTcwMCBXZXN0IFBlbmRlciBTdHJlZXQKKwkJCQkxMHRoIGZsb29yCisJCQkJVmFuY291dmVyIEIuQy4gVjZDIDFHOAorCQkJCUNBTkFEQQorCiswMC1EMC1DQiAgIChoZXgpCQlEQVNBTiBDTy4sIExURC4KKzAwRDBDQiAgICAgKGJhc2UgMTYpCQlEQVNBTiBDTy4sIExURC4KKwkJCQk2RiwgS09TTU8gVE9XRVIKKwkJCQkxMDAyLCBEQUVDSEktRE9ORywgS0FOR05BTS1LVSBTRU9VTAorCQkJCUtPUkVBIChaSVAgMTM1LTI4MCkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtRDAtQ0MgICAoaGV4KQkJVEVDSE5PTE9HSUVTIExZUkUgSU5DLgorMDBEMENDICAgICAoYmFzZSAxNikJCVRFQ0hOT0xPR0lFUyBMWVJFIElOQy4KKwkJCQkxMjAwIFNULUpFQU4tQkFQVElTVEUsCisJCQkJU1VJVEUgIzEyMCBRVUVCRUMsIFFVRUJFQworCQkJCUNBTkFEQSBHMkUgNUU4CisJCQkJQ0FOQURBCisKKzAwLUQwLUNEICAgKGhleCkJCUFUQU4gVEVDSE5PTE9HWSBJTkMuCiswMEQwQ0QgICAgIChiYXNlIDE2KQkJQVRBTiBURUNITk9MT0dZIElOQy4KKwkJCQkjNSwgQUxMRVkgMTgsIExBTkUgODEsCisJCQkJQ0hJRU4gS0FORywgMk5EIFJPQUQgSElOQ0hVCisJCQkJVEFJV0FOIFRBSVdBTiBSLk8uQy4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLUNFICAgKGhleCkJCUFTWVNUIEVMRUNUUk9OSUMKKzAwRDBDRSAgICAgKGJhc2UgMTYpCQlBU1lTVCBFTEVDVFJPTklDCisJCQkJQlJPRElTQ0UgNywgMTBDIFRSWklOCisJCQkJMTIzNiBUUlpJTgorCQkJCVNMT1ZFTklBCisJCQkJU0xPVkVOSUEKKworMDAtRDAtQ0YgICAoaGV4KQkJTU9SRVRPTiBCQVkKKzAwRDBDRiAgICAgKGJhc2UgMTYpCQlNT1JFVE9OIEJBWQorCQkJCTEyLzk3IEpJSkFXUyBTVFJFRVQKKwkJCQlTVU1ORVIgUEFSSy4gNDA3NCBRTEQuCisJCQkJQVVTVFJBTElBCisJCQkJQVVTVFJBTElBCisKKzAwLUQwLUQwICAgKGhleCkJCVpIT05HWElORyBURUxFQ09NIExURC4KKzAwRDBEMCAgICAgKGJhc2UgMTYpCQlaSE9OR1hJTkcgVEVMRUNPTSBMVEQuCisJCQkJOC05RiBCVUlMRElORyA1NCwzMDEjCisJCQkJWkhPTkcgU0hBTiBET05HTFUsIE5BTkpJTkcgUFJDLCBQQz0yMTAwMAorCQkJCUNISU5BCisJCQkJQ0hJTkEKKworMDAtRDAtRDEgICAoaGV4KQkJU3ljYW1vcmUgTmV0d29ya3MKKzAwRDBEMSAgICAgKGJhc2UgMTYpCQlTeWNhbW9yZSBOZXR3b3JrcworCQkJCTIyMCBNaWxsIFJkCisJCQkJQ2hlbG1zZm9yZCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRDIgICAoaGV4KQkJRVBJTE9HIENPUlBPUkFUSU9OCiswMEQwRDIgICAgIChiYXNlIDE2KQkJRVBJTE9HIENPUlBPUkFUSU9OCisJCQkJNTAwIENPUlBPUkFURSBDSVJDTEUgLSBTVEUuCisJCQkJR09MREVOIENPIDgwNDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1EMyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEQwRDMgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXRVNUIFRBU01BTiBEUklWRQorCQkJCU0vUyBTSkEtMgorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1ENCAgIChoZXgpCQlWLUJJVFMsIElOQy4KKzAwRDBENCAgICAgKGJhc2UgMTYpCQlWLUJJVFMsIElOQy4KKwkJCQkyMTUwIFRSQURFIFpPTkUgQkxWRC4KKwkJCQlTVUlURSAjMTA1CisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUQ1ICAgKGhleCkJCUdSVU5ESUcgQUcKKzAwRDBENSAgICAgKGJhc2UgMTYpCQlHUlVORElHIEFHCisJCQkJS1VSR0FSVEVOU0dUUkVFVCAzNworCQkJCUQtOTA3NjIgRlVFUlRIL0JBWUVSTgorCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLUQ2ICAgKGhleCkJCUFFVEhSQSBURUxFQ09NVU5JQ0FaSU9OSQorMDBEMEQ2ICAgICAoYmFzZSAxNikJCUFFVEhSQSBURUxFQ09NVU5JQ0FaSU9OSQorCQkJCVZJQSBNQVRURU8gUklDQ0ksIDEwCisJCQkJNjAwMjAgQU5DT05BCisJCQkJSVRBTFkKKwkJCQlJVEFMWQorCiswMC1EMC1ENyAgIChoZXgpCQlCMkMyLCBJTkMuCiswMEQwRDcgICAgIChiYXNlIDE2KQkJQjJDMiwgSU5DLgorCQkJCTIwMjAgQ0hBTExFTkdFUiBEUklWRS0KKwkJCQlTVUlURSAjMTAxCisJCQkJQUxBTUVEQSBDQSA5NDUwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRDggICAoaGV4KQkJM0NvbSBDb3Jwb3JhdGlvbgorMDBEMEQ4ICAgICAoYmFzZSAxNikJCTNDb20gQ29ycG9yYXRpb24KKwkJCQkyMTMzIExFR0hPUk4gU1RSRUVUCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRDkgICAoaGV4KQkJREVESUNBVEVEIE1JQ1JPQ09NUFVURVJTCiswMEQwRDkgICAgIChiYXNlIDE2KQkJREVESUNBVEVEIE1JQ1JPQ09NUFVURVJTCisJCQkJR1JPVVAsIExURC4KKwkJCQkxMSBPQUsgU1RSRUVULCBQRU5ETEVCVVJZIFNXSU5UT04sIE1BTkNICisJCQkJTTI3NEZMIFVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRDAtREEgICAoaGV4KQkJVEFJQ09NIERBVEEgU1lTVEVNUyBDTy4sIExURC4KKzAwRDBEQSAgICAgKGJhc2UgMTYpCQlUQUlDT00gREFUQSBTWVNURU1TIENPLiwgTFRELgorCQkJCTQ1LCBXVS1LVU5HIDUgUk9BRAorCQkJCVdVLUtVIElORC4gUEFWSyBUQUlQRUktSFNJRU4KKwkJCQlUQUlXQU4KKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUQwLURCICAgKGhleCkJCU1DUVVBWSBJTlRFUk5BVElPTkFMCiswMEQwREIgICAgIChiYXNlIDE2KQkJTUNRVUFZIElOVEVSTkFUSU9OQUwKKwkJCQkxMzYwMCBJTkRVU1RSSUFMIFBBUksgQkxWRC4KKwkJCQlNSU5ORUFQT0xJUyBNTiA1NTQ0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtREMgICAoaGV4KQkJTU9EVUxBUiBNSU5JTkcgU1lTVEVNUywgSU5DLgorMDBEMERDICAgICAoYmFzZSAxNikJCU1PRFVMQVIgTUlOSU5HIFNZU1RFTVMsIElOQy4KKwkJCQkzMjg5IEUuIEhFTUlTUEhFUkUgTE9PUAorCQkJCVRVQ1NPTiBBWiA4NTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtREQgICAoaGV4KQkJU1VOUklTRSBURUxFQ09NLCBJTkMuCiswMEQwREQgICAgIChiYXNlIDE2KQkJU1VOUklTRSBURUxFQ09NLCBJTkMuCisJCQkJMjIgR1JFQVQgT0FLUyBCTFZELgorCQkJCVNBTiBKT1NFIENBIDk1MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1ERSAgIChoZXgpCQlQSElMSVBTIE1VTFRJTUVESUEgTkVUV09SSworMDBEMERFICAgICAoYmFzZSAxNikJCVBISUxJUFMgTVVMVElNRURJQSBORVRXT1JLCisJCQkJU1lTVEVNUyBHTUJICisJCQkJRklDSFRFU1RSQVNTRSAxQSBELTAyNjAxIEJBVVRaRU4KKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswMC1EMC1ERiAgIChoZXgpCQlLVVpVTUkgRUxFQ1RST05JQ1MsIElOQy4KKzAwRDBERiAgICAgKGJhc2UgMTYpCQlLVVpVTUkgRUxFQ1RST05JQ1MsIElOQy4KKwkJCQkyOC02IElJSklNQS1DSFlPLCBTQUtBRS1LVQorCQkJCVlPS09IQU1BLVNISSBLQU5BR0FXQSwgMjQ0LTA4NDIKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUQwLUUwICAgKGhleCkJCURPT0lOIEVMRUNUUk9OSUNTIENPLgorMDBEMEUwICAgICAoYmFzZSAxNikJCURPT0lOIEVMRUNUUk9OSUNTIENPLgorCQkJCURPT0lOIEJMREcuIDE2LTYsIFNPT05BRS1ET05HCisJCQkJQlVOREFORy1HVSwgU1VOR05BTS1TSSBLWVVOR0dJLURPCisJCQkJS09SRUEgNDYzLTAyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1EMC1FMSAgIChoZXgpCQlBVklPTklURUsgSVNSQUVMIElOQy4KKzAwRDBFMSAgICAgKGJhc2UgMTYpCQlBVklPTklURUsgSVNSQUVMIElOQy4KKwkJCQkxIEVUR0FSIFNUUkVFVAorCQkJCVRJUkFUICBDQVJNRUwgIDM5MTIwCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLUQwLUUyICAgKGhleCkJCU1SVCBNSUNSTywgSU5DLgorMDBEMEUyICAgICAoYmFzZSAxNikJCU1SVCBNSUNSTywgSU5DLgorCQkJCTE0MDAwIFMuIE1JTElUQVJZIFRSQUlMCisJCQkJREVMUkFZIEJFQUNIIEZMIDMzNDg0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1FMyAgIChoZXgpCQlFTEUtQ0hFTSBFTkdJTkVFUklORyBDTy4sIExURC4KKzAwRDBFMyAgICAgKGJhc2UgMTYpCQlFTEUtQ0hFTSBFTkdJTkVFUklORyBDTy4sIExURC4KKwkJCQlXSU5EU1RPTkUgT0ZGSUNFCisJCQkJMS04MDMsIDI3NS0yIFlBTkdKVUUtRE9ORywgU0VPQ0hPLUtVCisJCQkJU0VPVUwgMTM3LTEzMCBTRU9VTCAxMzctMTMwIEtPUkVBCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUQwLUU0ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRDBFNCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFdFU1QgVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUU1ICAgKGhleCkJCVNPTElEVU0gU1lTVEVNUyBDT1JQLgorMDBEMEU1ICAgICAoYmFzZSAxNikJCVNPTElEVU0gU1lTVEVNUyBDT1JQLgorCQkJCTk0MCBCRUxGQVNUIFJPQUQgMVMuMjE3CisJCQkJT1RUQVdBLCBPTlRBUklPIEsxRyA0QTIKKwkJCQlDQU5BREEKKwkJCQlDQU5BREEKKworMDAtRDAtRTYgICAoaGV4KQkJSUJPTkQgSU5DLgorMDBEMEU2ICAgICAoYmFzZSAxNikJCUlCT05EIElOQy4KKwkJCQkzMTYwLCBERSBMQSBDUlVaIEJMVkQuCisJCQkJU1VJVEUgIzEwMQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1EMC1FNyAgIChoZXgpCQlWQ09OIFRFTEVDT01NVU5JQ0FUSU9OIExURC4KKzAwRDBFNyAgICAgKGJhc2UgMTYpCQlWQ09OIFRFTEVDT01NVU5JQ0FUSU9OIExURC4KKwkJCQkyMiBNQVNLSVQgU1RSRUVUCisJCQkJSEVSWkxJWUEgIDQ2NzMzCisJCQkJSVNSQUVMCisJCQkJSVNSQUVMCisKKzAwLUQwLUU4ICAgKGhleCkJCU1BQyBTWVNURU0gQ08uLCBMVEQuCiswMEQwRTggICAgIChiYXNlIDE2KQkJTUFDIFNZU1RFTSBDTy4sIExURC4KKwkJCQlSJkQgSU5TVElUVVRFCisJCQkJTUFDIFNZU1RFTSBDTy4sIExURC4gMjE5LTIgQU5BTkc3LURPTkcsCisJCQkJS1lVTkdLSS1ETyBLT1JFQSwgNDMwLTAxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1EMC1FOSAgIChoZXgpCQlBZHZhbnRhZ2UgQ2VudHVyeSBUZWxlY29tbXVuaWNhdGlvbiBDb3JwLgorMDBEMEU5ICAgICAoYmFzZSAxNikJCUFkdmFudGFnZSBDZW50dXJ5IFRlbGVjb21tdW5pY2F0aW9uIENvcnAuCisJCQkJNEYsIDQxLCBUdW5naHNpbiBSZC4KKwkJCQlUYWlwZWkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtRUEgICAoaGV4KQkJTkVYVE9ORSBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBEMEVBICAgICAoYmFzZSAxNikJCU5FWFRPTkUgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQk5NzAwIEdSRUFUIFNFTkVDQSBIR0hXWQorCQkJCVJPQ0tWSUxMRSBNRCAyMDg1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRUIgICAoaGV4KQkJTElHSFRFUkEgTkVUV09SS1MsIElOQy4KKzAwRDBFQiAgICAgKGJhc2UgMTYpCQlMSUdIVEVSQSBORVRXT1JLUywgSU5DLgorCQkJCTEwMjAxIEJVQkIgUk9BRAorCQkJCUNVUEVSVElOTyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRUMgICAoaGV4KQkJTkFLQVlPIFRFTEVDT01NVU5JQ0FUSU9OUywgSU5DCiswMEQwRUMgICAgIChiYXNlIDE2KQkJTkFLQVlPIFRFTEVDT01NVU5JQ0FUSU9OUywgSU5DCisJCQkJMS0zLTIgU09VSllBLU1BQ0hJCisJCQkJTUFFQkFTSEktU0hJIEdVTk1BLCAzNzEtMDg1MworCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDAtRDAtRUQgICAoaGV4KQkJWElPWAorMDBEMEVEICAgICAoYmFzZSAxNikJCVhJT1gKKwkJCQkxNTAgRE9XIFNUUkVFVAorCQkJCU1BTkNIRVNURVIgTkggMDMxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUVFICAgKGhleCkJCURJQ1RBUEhPTkUgQ09SUE9SQVRJT04KKzAwRDBFRSAgICAgKGJhc2UgMTYpCQlESUNUQVBIT05FIENPUlBPUkFUSU9OCisJCQkJMzE5MSBCUk9BREJSSURHRSBBVkUuCisJCQkJU1RSQVRGT1JEIENUIDA2NjE0LTI1NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUVGICAgKGhleCkJCUlHVAorMDBEMEVGICAgICAoYmFzZSAxNikJCUlHVAorCQkJCTkyOTUgUFJPVE9UWVBFIERSSVZFCisJCQkJUkVOTyBOViA4OTUxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRjAgICAoaGV4KQkJQ09OVklTSU9OIFRFQ0hOT0xPR1kgR01CSAorMDBEMEYwICAgICAoYmFzZSAxNikJCUNPTlZJU0lPTiBURUNITk9MT0dZIEdNQkgKKwkJCQlSRUJFTlJJTkcgMzMKKwkJCQlELTM4MTA2IEJSQVVOU0NIV0VJRworCQkJCUdFUk1BTlkKKwkJCQlHRVJNQU5ZCisKKzAwLUQwLUYxICAgKGhleCkJCVNFR0EgRU5URVJQUklTRVMsIExURC4KKzAwRDBGMSAgICAgKGJhc2UgMTYpCQlTRUdBIEVOVEVSUFJJU0VTLCBMVEQuCisJCQkJMTItMTQgSElHQVNISUtPVUpJWUEgMi1DSE9NRQorCQkJCU9IVEEtS1UgVE9LWU8gMTQ0LTg1MzIKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzAwLUQwLUYyICAgKGhleCkJCU1PTlRFUkVZIE5FVFdPUktTCiswMEQwRjIgICAgIChiYXNlIDE2KQkJTU9OVEVSRVkgTkVUV09SS1MKKwkJCQkxOTA5IE4uIEdMRU5WSUxMRSBEUklWRQorCQkJCVJJQ0hBUkRTT04gVFggNzUwODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUYzICAgKGhleCkJCVNPTEFSSSBESSBVRElORSBTUEEKKzAwRDBGMyAgICAgKGJhc2UgMTYpCQlTT0xBUkkgREkgVURJTkUgU1BBCisJCQkJVklBIEdJTk8gUElFUkkgMjkKKwkJCQkzMzEwMCBVRElORQorCQkJCUlUQUxZCisJCQkJSVRBTFkKKworMDAtRDAtRjQgICAoaGV4KQkJQ0FSSU5USElBTiBURUNIIElOU1RJVFVURQorMDBEMEY0ICAgICAoYmFzZSAxNikJCUNBUklOVEhJQU4gVEVDSCBJTlNUSVRVVEUKKwkJCQlSSUNIQVJELVdBR05FUiBTVFIuIDE5CisJCQkJOTUwMCBWSUxMQUNICisJCQkJQVVTVFJJQQorCQkJCUFVU1RSSUEKKworMDAtRDAtRjUgICAoaGV4KQkJT1JBTkdFIE1JQ1JPLCBJTkMuCiswMEQwRjUgICAgIChiYXNlIDE2KQkJT1JBTkdFIE1JQ1JPLCBJTkMuCisJCQkJMTQwMCBOLiBMQUtFVklFVyBBVkUuCisJCQkJQU5BSEVJTSBDQSA5MjgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRjYgICAoaGV4KQkJQWxjYXRlbCBDYW5hZGEKKzAwRDBGNiAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIENhbmFkYQorCQkJCTYwMCBNYXJjaCBSb2FkCisJCQkJS2FuYXRhLCBPbnRhcmlvCisJCQkJSzJLIDJFNgorCQkJCUNBTkFEQQorCiswMC1EMC1GNyAgIChoZXgpCQlORVhUIE5FVFMgQ09SUE9SQVRJT04KKzAwRDBGNyAgICAgKGJhc2UgMTYpCQlORVhUIE5FVFMgQ09SUE9SQVRJT04KKwkJCQlNSVRBIEtPS1VTQUkgQkxERy4gMTdGCisJCQkJMS00LTI4IE1JVEEgTUlOQVRPLUtVIFRPS1lPIDEwOC0wMDczCisJCQkJSkFQQU4KKwkJCQlKQVBBTgorCiswMC1EMC1GOCAgIChoZXgpCQlGVUpJQU4gU1RBUiBURVJNSU5BTAorMDBEMEY4ICAgICAoYmFzZSAxNikJCUZVSklBTiBTVEFSIFRFUk1JTkFMCisJCQkJREVWSUNFIENPLiwgTFRELgorCQkJCUZVRVIgSU5EVVNUUklBTCBaT05FIFNUQVIgU0NJRU5DRSAmIFRFQ0gKKwkJCQlGVVpIT1UgRlVKSUFOLCBDSElOQSAzNTAwMDIKKwkJCQlDSElOQQorCiswMC1EMC1GOSAgIChoZXgpCQlBQ1VURSBDT01NVU5JQ0FUSU9OUyBDT1JQLgorMDBEMEY5ICAgICAoYmFzZSAxNikJCUFDVVRFIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJTk8uIDEsIENSRUFUSU9OIFJPQUQgSUlJCisJCQkJU0NJRU5DRSBCQVNFRCBJTkRVU1RSSUFMIFBBUksgSFNJTkNIVSAzMAorCQkJCVRBSVdBTgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRDAtRkEgICAoaGV4KQkJVGhhbGVzIGUtU2VjdXJpdHkgTHRkLgorMDBEMEZBICAgICAoYmFzZSAxNikJCVRoYWxlcyBlLVNlY3VyaXR5IEx0ZC4KKwkJCQlNZWFkb3cgVmlldyBIb3VzZSwgQ3JlbmRvbiBJbmR1c3RyaWFsIEVzdGF0ZQorCQkJCUxvbmcgQ3JlbmRvbgorCQkJCUF5bGVzYnVyeSBCdWNraW5naGFtc2hpcmUgSFAxOCA5RVEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1EMC1GQiAgIChoZXgpCQlURUsgTUlDUk9TWVNURU1TLCBJTkNPUlBPUkFURUQKKzAwRDBGQiAgICAgKGJhc2UgMTYpCQlURUsgTUlDUk9TWVNURU1TLCBJTkNPUlBPUkFURUQKKwkJCQlPTkUgTk9SVEggQVZFTlVFCisJCQkJQlVSTElOR1RPTiBNQSAwMTgwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRkMgICAoaGV4KQkJR1JBTklURSBNSUNST1NZU1RFTVMKKzAwRDBGQyAgICAgKGJhc2UgMTYpCQlHUkFOSVRFIE1JQ1JPU1lTVEVNUworCQkJCTEwMjAyIE4uIEVOVEVSUFJJU0UgRFJJVkUKKwkJCQlNRVFVT04gV0kgNTMwOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQwLUZEICAgKGhleCkJCU9QVElNQSBURUxFLkNPTSwgSU5DLgorMDBEMEZEICAgICAoYmFzZSAxNikJCU9QVElNQSBURUxFLkNPTSwgSU5DLgorCQkJCTIwMC05MCBBbGxzdGF0ZSBQYXJrd2F5CisJCQkJTWFya2hhbSBPTiBMM1IgNkgzCisJCQkJQ0FOQURBCisKKzAwLUQwLUZFICAgKGhleCkJCUFTVFJBTCBQT0lOVAorMDBEMEZFICAgICAoYmFzZSAxNikJCUFTVFJBTCBQT0lOVAorCQkJCUNPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMjcgSU5EVVNUUklBTCBBVkUuLC1TVEUuICMzCisJCQkJQ0hFTE1TRk9SRCBNQSAwMTgyNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDAtRkYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBEMEZGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgV0VTVCBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRDEtMUMgICAoaGV4KQkJQUNFVEVMCiswMEQxMUMgICAgIChiYXNlIDE2KQkJQUNFVEVMCisJCQkJIzEwMDYsIFdvcmxkIE1lcmRpYW4gMi1jaGEsIDQyNi01LAorCQkJCUdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndSwKKwkJCQlTZW91bCAgMTUzLTc1OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1EMy04RCAgIChoZXgpCQlIb3RlbCBUZWNobm9sb2d5IE5leHQgR2VuZXJhdGlvbgorMDBEMzhEICAgICAoYmFzZSAxNikJCUhvdGVsIFRlY2hub2xvZ3kgTmV4dCBHZW5lcmF0aW9uCisJCQkJNjUwIEUuIEFsZ29ucXVpbiBSb2FkCisJCQkJU3RlIDIwNworCQkJCVNjaGF1bWJ1cmcgSUwgNjAxNzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUQ2LTMyICAgKGhleCkJCUdFIEVuZXJneQorMDBENjMyICAgICAoYmFzZSAxNikJCUdFIEVuZXJneQorCQkJCUxpc3N1ZSBJbmR1c3RyaWFsIEVzdGF0ZSBFYXN0CisJCQkJTGlzc3VlIFJvYWQKKwkJCQlMaXNidXJuIENvIEFudHJpbSBCVDI4IDJSRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLURCLTQ1ICAgKGhleCkJCVRIQU1XQVkgQ08uLExURC4KKzAwREI0NSAgICAgKGJhc2UgMTYpCQlUSEFNV0FZIENPLixMVEQuCisJCQkJMy05LTIKKwkJCQlJbWFpenVtaQorCQkJCUZ1amkgU2hpenVva2EgNDE3LTAwMDEKKwkJCQlKQVBBTgorCiswMC1EQi1ERiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzAwREJERiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzAwLURELTAwICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwMCAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wMSAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMDEgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMDIgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDAyICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTAzICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwMyAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wNCAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMDQgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMDUgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDA1ICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTA2ICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwNiAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wNyAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMDcgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMDggICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDA4ICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTA5ICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwOSAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wQSAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMEEgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMEIgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDBCICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTBDICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwQyAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERC0wRCAgIChoZXgpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCiswMEREMEQgICAgIChiYXNlIDE2KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorCQkJCTM5MDAgRlJFRURPTSBDSVJDTEUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtREQtMEUgICAoaGV4KQkJVU5HRVJNQU5OLUJBU1MgSU5DLgorMDBERDBFICAgICAoYmFzZSAxNikJCVVOR0VSTUFOTi1CQVNTIElOQy4KKwkJCQkzOTAwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLURELTBGICAgKGhleCkJCVVOR0VSTUFOTi1CQVNTIElOQy4KKzAwREQwRiAgICAgKGJhc2UgMTYpCQlVTkdFUk1BTk4tQkFTUyBJTkMuCisJCQkJMzkwMCBGUkVFRE9NIENJUkNMRQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1ERS1GQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswMERFRkIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMDAgICAoaGV4KQkJRnVqaXRzdSBMaW1pdGVkCiswMEUwMDAgICAgIChiYXNlIDE2KQkJRnVqaXRzdSBMaW1pdGVkCisJCQkJTXVzYXNoaS1rb3N1Z2kgVG93ZXIgUGxhY2UgQmxkZy4sCisJCQkJS29zdWdpLWNobyAxLWNob21lLE5ha2FoYXJhLWt1CisJCQkJS0FXQVNBS0kgMjExLTg4IEthbmFnYXdhIAorCQkJCUpBUEFOCisKKzAwLUUwLTAxICAgKGhleCkJCVNUUkFORCBMSUdIVElORyBMSU1JVEVECiswMEUwMDEgICAgIChiYXNlIDE2KQkJU1RSQU5EIExJR0hUSU5HIExJTUlURUQKKwkJCQlHUkFOVCBXQVkKKwkJCQlJU0xFV09SVEgKKwkJCQlNSURETEVTRVggRW5nbGFuZCBUVzcgNVFEIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUUwLTAyICAgKGhleCkJCUNST1NTUk9BRFMgU1lTVEVNUywgSU5DLgorMDBFMDAyICAgICAoYmFzZSAxNikJCUNST1NTUk9BRFMgU1lTVEVNUywgSU5DLgorCQkJCTkzOTAgUkVTRUFSQ0ggQkxWRC4KKwkJCQlTVUlURSAyLTMwMAorCQkJCUFVU1RJTiBUWCA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMDMgICAoaGV4KQkJTk9LSUEgV0lSRUxFU1MgQlVTSU5FU1MgQ09NTVVOCiswMEUwMDMgICAgIChiYXNlIDE2KQkJTk9LSUEgV0lSRUxFU1MgQlVTSU5FU1MgQ09NTVVOCisJCQkJQUNDRVNTIFBPSU5UIFBST0RVQ1RTIEdST1VQCisJCQkJVU5JVCA2LCBDQU1CUklER0UgQlVTIFBBUksgTUlMVE9OIFJELCBDQQorCQkJCUNCNCAwV1MgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUUwLTA0ICAgKGhleCkJCVBNQy1TSUVSUkEsIElOQy4KKzAwRTAwNCAgICAgKGJhc2UgMTYpCQlQTUMtU0lFUlJBLCBJTkMuCisJCQkJMTA1LTg1NTUgQkFYVEVSIFBMQUNFCisJCQkJQlVSTkFCWSwgQkMgVjVBIDRWNyAgCisJCQkJQ0FOQURBCisKKzAwLUUwLTA1ICAgKGhleCkJCVRFQ0hOSUNBTCBDT1JQLgorMDBFMDA1ICAgICAoYmFzZSAxNikJCVRFQ0hOSUNBTCBDT1JQLgorCQkJCTIyLTYgTUlOQU1JIFNFTkdFTkNITworCQkJCU5JU0hJS1UgWU9LT0hBTUEgQ0lUWQorCQkJCUtBTkFHQVdBICAKKwkJCQlKQVBBTgorCiswMC1FMC0wNiAgIChoZXgpCQlTSUxJQ09OIElOVEVHUkFURUQgU1lTLiBDT1JQLgorMDBFMDA2ICAgICAoYmFzZSAxNikJCVNJTElDT04gSU5URUdSQVRFRCBTWVMuIENPUlAuCisJCQkJMTYsIENSRUFUSU9OIFJELiBJCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOIENIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1FMC0wNyAgIChoZXgpCQlBdmF5YSBFQ1MgTHRkCiswMEUwMDcgICAgIChiYXNlIDE2KQkJQXZheWEgRUNTIEx0ZAorCQkJCVVuaXQgMSBTdGVybGluZyBDb3VydCwgTXVuZGVsbHMKKwkJCQlXZWx3eW4gR2FyZGVuIENpdHkgSGVydCBBTDcgMUxaCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtMDggICAoaGV4KQkJQU1BWklORyBDT05UUk9MUyEgSU5DLgorMDBFMDA4ICAgICAoYmFzZSAxNikJCUFNQVpJTkcgQ09OVFJPTFMhIElOQy4KKwkJCQkxNjE1IFdZQVRUIERSSVZFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTA5ICAgKGhleCkJCU1BUkFUSE9OIFRFQ0hOT0xPR0lFUyBDT1JQLgorMDBFMDA5ICAgICAoYmFzZSAxNikJCU1BUkFUSE9OIFRFQ0hOT0xPR0lFUyBDT1JQLgorCQkJCTEzMDAgTUFTU0FDSFVTRVRUUyBBVkVOVUUKKwkJCQlCT1hCT1JPVUdIIE1BIDAxNzE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0wQSAgIChoZXgpCQlESUJBLCBJTkMuCiswMEUwMEEgICAgIChiYXNlIDE2KQkJRElCQSwgSU5DLgorCQkJCTMzNTUgRURJU09OIFdBWQorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTBCICAgKGhleCkJCVJPT0ZUT1AgQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwRTAwQiAgICAgKGJhc2UgMTYpCQlST09GVE9QIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJNDY4IFBBQ08gRFJJVkUKKwkJCQlMT1MgQUxUT1MgQ0EgOTQwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTBDICAgKGhleCkJCU1PVE9ST0xBCiswMEUwMEMgICAgIChiYXNlIDE2KQkJTU9UT1JPTEEKKwkJCQk1NDAxIE4uIEJFQUNIIFNULiAgUzI0MworCQkJCUZULiBXT1JUSCBUWCA3NjEzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMEQgICAoaGV4KQkJUkFESUFOVCBTWVNURU1TCiswMEUwMEQgICAgIChiYXNlIDE2KQkJUkFESUFOVCBTWVNURU1TCisJCQkJMTAwMCBBTERFUk1BTiBEUi4KKwkJCQlBTFBIQVJFVFRBIEdBIDMwMjAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0wRSAgIChoZXgpCQlBVkFMT04gSU1BR0lORyBTWVNURU1TLCBJTkMuCiswMEUwMEUgICAgIChiYXNlIDE2KQkJQVZBTE9OIElNQUdJTkcgU1lTVEVNUywgSU5DLgorCQkJCTMxMzMgSU5ESUFOIFJPQUQKKwkJCQlCT1VMREVSIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0wRiAgIChoZXgpCQlTSEFOR0hBSSBCQVVEIERBVEEKKzAwRTAwRiAgICAgKGJhc2UgMTYpCQlTSEFOR0hBSSBCQVVEIERBVEEKKwkJCQlDT01NVU5JQ0FUSU9OIERFVkVMT1BNRU5UIENPUlAKKwkJCQkzRiwgR09MRCBMVUNLIEJVSUxESU5HIDI1MDcgUFVET05HIFJPQUQKKwkJCQlTSEFOR0hBSSAgCisJCQkJQ0hJTkEKKworMDAtRTAtMTAgICAoaGV4KQkJSEVTUyBTQi1BVVRPTUFURU5CQVUgR21iSAorMDBFMDEwICAgICAoYmFzZSAxNikJCUhFU1MgU0ItQVVUT01BVEVOQkFVIEdtYkgKKwkJCQlISU5ERU5CVVJHU1RSQVNTRSAyNy0yOQorCQkJCUQtNzExMDYgTUFHU1RBRFQgIAorCQkJCUdFUk1BTlkKKworMDAtRTAtMTEgICAoaGV4KQkJVW5pZGVuIENvcnBvcmF0aW9uCiswMEUwMTEgICAgIChiYXNlIDE2KQkJVW5pZGVuIENvcnBvcmF0aW9uCisJCQkJMi0xMi03IEhhdGNob2JvcmksCisJCQkJQ2h1by1rdSBUb2t5byAxMDQtODUxMgorCQkJCUpBUEFOCisKKzAwLUUwLTEyICAgKGhleCkJCVBMVVRPIFRFQ0hOT0xPR0lFUyBJTlRFUk5BVElPTkFMIElOQy4KKzAwRTAxMiAgICAgKGJhc2UgMTYpCQlQTFVUTyBURUNITk9MT0dJRVMgSU5URVJOQVRJT05BTCBJTkMuCisJCQkJMjUxMSA1NVRIIFNUUkVFVAorCQkJCUJPVUxERVIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTEzICAgKGhleCkJCUVBU1RFUk4gRUxFQ1RST05JQyBDTy4sIExURC4KKzAwRTAxMyAgICAgKGJhc2UgMTYpCQlFQVNURVJOIEVMRUNUUk9OSUMgQ08uLCBMVEQuCisJCQkJTk8uIDQsIFNISU4tTE9ORyBST0FELAorCQkJCUtXRUktU0hBTiBJTkRVU1RSSUFMIEFSRUEKKwkJCQlUQU8tWVVBTiAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1FMC0xNCAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEUwMTQgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0xNSAgIChoZXgpCQlIRUlXQSBDT1JQT1JBVElPTgorMDBFMDE1ICAgICAoYmFzZSAxNikJCUhFSVdBIENPUlBPUkFUSU9OCisJCQkJMi0zMDE0LTgsIEhJUk9TQVdBLUNITworCQkJCUtJUllVLVNISQorCQkJCUdVTk1BIFBSRUYuIDM3NiAgCisJCQkJSkFQQU4KKworMDAtRTAtMTYgICAoaGV4KQkJUkFQSUQgQ0lUWSBDT01NVU5JQ0FUSU9OUworMDBFMDE2ICAgICAoYmFzZSAxNikJCVJBUElEIENJVFkgQ09NTVVOSUNBVElPTlMKKwkJCQk1NTUgQ0xZREUgQVZFLgorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTE3ICAgKGhleCkJCUVYWEFDVCBHbWJICiswMEUwMTcgICAgIChiYXNlIDE2KQkJRVhYQUNUIEdtYkgKKwkJCQlSSEVJTlNUUkFTRSA3CisJCQkJRC00MTgzNiBIVUNLRUxIT1ZFTiAgCisJCQkJR0VSTUFOWQorCiswMC1FMC0xOCAgIChoZXgpCQlBU1VTVEVLIENPTVBVVEVSIElOQy4KKzAwRTAxOCAgICAgKGJhc2UgMTYpCQlBU1VTVEVLIENPTVBVVEVSIElOQy4KKwkJCQkxNTAgTEktVEUgUkQuCisJCQkJUEVJVE9VLCBUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtMTkgICAoaGV4KQkJSU5HLiBHSU9SREFOTyBFTEVUVFJPTklDQQorMDBFMDE5ICAgICAoYmFzZSAxNikJCUlORy4gR0lPUkRBTk8gRUxFVFRST05JQ0EKKwkJCQlWSUEgUElFVFJPIENPU1NBICAxMTUvMTIKKwkJCQkxMDE0Ni1UT1JJTk8gIAorCQkJCUlUQUxZCisKKzAwLUUwLTFBICAgKGhleCkJCUNPTVRFQyBTWVNURU1TLiBDTy4sIExURC4KKzAwRTAxQSAgICAgKGJhc2UgMTYpCQlDT01URUMgU1lTVEVNUy4gQ08uLCBMVEQuCisJCQkJNDA0LTkgQ0hPVU5HQ0hFTi1ET05HCisJCQkJQlVQWU9VTkctS1UsIElOQ0hPTiAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzAwLUUwLTFCICAgKGhleCkJCVNQSEVSRSBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBFMDFCICAgICAoYmFzZSAxNikJCVNQSEVSRSBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTIgRU5FUkdZIERSSVZFCisJCQkJTEFLRSBCTFVGRiBJTCA2MDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMUMgICAoaGV4KQkJQ3JhZGxlcG9pbnQsIEluYworMDBFMDFDICAgICAoYmFzZSAxNikJCUNyYWRsZXBvaW50LCBJbmMKKwkJCQkxMTk5IFNob3JlbGluZSBMYW5lCisJCQkJU3VpdGUgMzAxCisJCQkJQm9pc2UgSUQgODM3MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTFEICAgKGhleCkJCVdlYlRWIE5FVFdPUktTLCBJTkMuCiswMEUwMUQgICAgIChiYXNlIDE2KQkJV2ViVFYgTkVUV09SS1MsIElOQy4KKwkJCQkzMDUgTFlUVE9OIEFWRS4KKwkJCQlQQUxPIEFMVE8gQ0EgOTQzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTFFICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRTAxRSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTFGICAgKGhleCkJCUFWSURJQSBTeXN0ZW1zLCBJbmMuCiswMEUwMUYgICAgIChiYXNlIDE2KQkJQVZJRElBIFN5c3RlbXMsIEluYy4KKwkJCQkxMzUgTk9SVEggUExBSU5TIElORFVTVFJJQUwgUkQKKwkJCQlXQUxMSU5HRk9SRCBDVCAwNjQ5MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMjAgICAoaGV4KQkJVEVDTk9NRU4gT1kKKzAwRTAyMCAgICAgKGJhc2UgMTYpCQlURUNOT01FTiBPWQorCQkJCVAuTy4gQk9YIDkzCisJCQkJRklOLTAyMjcxIEVTUE9PICAKKwkJCQlGSU5MQU5ECisKKzAwLUUwLTIxICAgKGhleCkJCUZSRUVHQVRFIENPUlAuCiswMEUwMjEgICAgIChiYXNlIDE2KQkJRlJFRUdBVEUgQ09SUC4KKwkJCQk3MTAgTEFLRVdBWSAgU1RFLiMyMzAKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTIyICAgKGhleCkJCUFuYWxvZyBEZXZpY2VzIEluYy4KKzAwRTAyMiAgICAgKGJhc2UgMTYpCQlBbmFsb2cgRGV2aWNlcyBJbmMuCisJCQkJNzc3IEJheSBTdHJlZXQKKwkJCQlTdWl0ZSAyMzAzCisJCQkJVG9yb250byBPbnRhcmlvIE01RyAyQzgKKwkJCQlDQU5BREEKKworMDAtRTAtMjMgICAoaGV4KQkJVEVMUkFECiswMEUwMjMgICAgIChiYXNlIDE2KQkJVEVMUkFECisJCQkJUC5PLiBCT1ggNTAKKwkJCQlMT0QgNzExMDAgIAorCQkJCUlTUkFFTAorCiswMC1FMC0yNCAgIChoZXgpCQlHQURaT09YIE5FVFdPUktTCiswMEUwMjQgICAgIChiYXNlIDE2KQkJR0FEWk9PWCBORVRXT1JLUworCQkJCTU4NTAgSEVMTFlFUiBBVkVOVUUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMjUgICAoaGV4KQkJZGl0IENvLiwgTHRkLgorMDBFMDI1ICAgICAoYmFzZSAxNikJCWRpdCBDby4sIEx0ZC4KKwkJCQlQcmVtaWVyIFRveW9jaG8gQnVpbGRpbmcKKwkJCQkyMy0yMSBUb3lvIDMtY2hvbWUsCisJCQkJS290by1rdSBUb2t5byAxMzUtMDA1NgorCQkJCUpBUEFOCisKKzAwLUUwLTI2ICAgKGhleCkJCVJlZGxha2UgTUFTRCBMTEMKKzAwRTAyNiAgICAgKGJhc2UgMTYpCQlSZWRsYWtlIE1BU0QgTExDCisJCQkJMzQ0MCBFLiBQcml0YW5uaWEgRHIuCisJCQkJU3VpdGUgMTI0CisJCQkJVHVzY29uIEFaIDg1NzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0yNyAgIChoZXgpCQlEVVgsIElOQy4KKzAwRTAyNyAgICAgKGJhc2UgMTYpCQlEVVgsIElOQy4KKwkJCQk1LTE4LTE5LCBOSVNISUtBTUFUQSwgT1RBLUtVCisJCQkJVE9LWU8tVE8sIDE0NCAgCisJCQkJSkFQQU4KKworMDAtRTAtMjggICAoaGV4KQkJQVBUSVggQ09SUE9SQVRJT04KKzAwRTAyOCAgICAgKGJhc2UgMTYpCQlBUFRJWCBDT1JQT1JBVElPTgorCQkJCTI4ODAgTi4gRklSU1QgU1RSRUVUCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTI5ICAgKGhleCkJCVNUQU5EQVJEIE1JQ1JPU1lTVEVNUyBDT1JQLgorMDBFMDI5ICAgICAoYmFzZSAxNikJCVNUQU5EQVJEIE1JQ1JPU1lTVEVNUyBDT1JQLgorCQkJCTYgSFVHSEVTCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0yQSAgIChoZXgpCQlUQU5EQkVSRyBURUxFVklTSU9OIEFTCiswMEUwMkEgICAgIChiYXNlIDE2KQkJVEFOREJFUkcgVEVMRVZJU0lPTiBBUworCQkJCVBISUxJUCBQRURFUlNFTlMgViAyMAorCQkJCU4tMTMyNCBMWVNBS0VSICAKKwkJCQlOT1JXQVkKKworMDAtRTAtMkIgICAoaGV4KQkJRVhUUkVNRSBORVRXT1JLUworMDBFMDJCICAgICAoYmFzZSAxNikJCUVYVFJFTUUgTkVUV09SS1MKKwkJCQkxMDQ2MCBCQU5ETEVZIERSSVZFCisJCQkJQ1VQRVJJTlQwIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0yQyAgIChoZXgpCQlBU1QgQ09NUFVURVIKKzAwRTAyQyAgICAgKGJhc2UgMTYpCQlBU1QgQ09NUFVURVIKKwkJCQkxNjIxNSBBTFRPTiBQQVJLV0FZCisJCQkJSVJWSU5FIENBIDkyNzE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0yRCAgIChoZXgpCQlJbm5vTWVkaWFMb2dpYywgSW5jLgorMDBFMDJEICAgICAoYmFzZSAxNikJCUlubm9NZWRpYUxvZ2ljLCBJbmMuCisJCQkJMzY1MyBDSEVNSU4gQ0hBTUJMWQorCQkJCUxPTkdVRVVJTCwgUVVFQkVDIEo0TCBKNEwgIElOOQorCQkJCUNBTkFEQQorCiswMC1FMC0yRSAgIChoZXgpCQlTUEMgRUxFQ1RST05JQ1MgQ09SUE9SQVRJT04KKzAwRTAyRSAgICAgKGJhc2UgMTYpCQlTUEMgRUxFQ1RST05JQ1MgQ09SUE9SQVRJT04KKwkJCQkyLTEtMyBTSElCQVNBS0ksIENIT0ZVLVNISQorCQkJCVRPS1lPLCAxODIgIAorCQkJCUpBUEFOCisKKzAwLUUwLTJGICAgKGhleCkJCU1DTlMgSE9MRElOR1MsIEwuUC4KKzAwRTAyRiAgICAgKGJhc2UgMTYpCQlNQ05TIEhPTERJTkdTLCBMLlAuCisJCQkJVENJLCBJTkMuLVRFQ0hOT0xPR1kgVkVOVFVSRVMKKwkJCQlQLk8uIEJPWCA1NjMwCisJCQkJREVOVkVSIENPIDgwMjE3LTU2MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTMwICAgKGhleCkJCU1FTElUQSBJTlRFUk5BVElPTkFMIENPUlAuCiswMEUwMzAgICAgIChiYXNlIDE2KQkJTUVMSVRBIElOVEVSTkFUSU9OQUwgQ09SUC4KKwkJCQk1MDUxIFBFQUNIVFJFRSBDT1JORVJTIENJUkNMRQorCQkJCU5PUkNST1NTIEdBIDMwMDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0zMSAgIChoZXgpCQlIQUdJV0FSQSBFTEVDVFJJQyBDTy4sIExURC4KKzAwRTAzMSAgICAgKGJhc2UgMTYpCQlIQUdJV0FSQSBFTEVDVFJJQyBDTy4sIExURC4KKwkJCQk3LCBTSElNT0tPRlVLQURBLCBBU0FEQS1DSE8KKwkJCQlOSVNTSElOLVNISSwgQUlDSEkgIDQ3MC0wMSAgCisJCQkJSkFQQU4KKworMDAtRTAtMzIgICAoaGV4KQkJTUlTWVMgRklOQU5DSUFMIFNZU1RFTVMsIExURC4KKzAwRTAzMiAgICAgKGJhc2UgMTYpCQlNSVNZUyBGSU5BTkNJQUwgU1lTVEVNUywgTFRELgorCQkJCUJVQ0tIT0xUIERSSVZFLAorCQkJCVdBUk5ET04sIFdPUkNFU1RFUiBXUjQ5U1IgIAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAwLUUwLTMzICAgKGhleCkJCUUuRS5QLkQuIEdtYkgKKzAwRTAzMyAgICAgKGJhc2UgMTYpCQlFLkUuUC5ELiBHbWJICisJCQkJUk9FTUVSLVNUUkFTU0UgNAorCQkJCTg1MjI5IE1BUktUIElOREVSU0RPUkYgIAorCQkJCUdFUk1BTlkKKworMDAtRTAtMzQgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBFMDM0ICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtMzUgICAoaGV4KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCiswMEUwMzUgICAgIChiYXNlIDE2KQkJRW1lcnNvbiBOZXR3b3JrIFBvd2VyCisJCQkJMjkwMCBTLiBEaWFibG8gV2F5CisJCQkJVGVtcGUgQVogODUyODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTM2ICAgKGhleCkJCVBJT05FRVIgQ09SUE9SQVRJT04KKzAwRTAzNiAgICAgKGJhc2UgMTYpCQlQSU9ORUVSIENPUlBPUkFUSU9OCisJCQkJMjYxMCBIYW5hem9ubyA0LUNob21lCisJCQkJVG9rb3JvemF3YS1TaGkKKwkJCQlTYWl0YW1hIFByZWZlY3R1cmUsIDM1OS04ICAKKwkJCQlKQVBBTgorCiswMC1FMC0zNyAgIChoZXgpCQlDRU5UVVJZIENPUlBPUkFUSU9OCiswMEUwMzcgICAgIChiYXNlIDE2KQkJQ0VOVFVSWSBDT1JQT1JBVElPTgorCQkJCTItMjgtNSwgVGFpdG8KKwkJCQlUQUlUTy1LVSwgVE9LWU8gMTAxCisJCQkJSkFQQU4KKworMDAtRTAtMzggICAoaGV4KQkJUFJPWElNQSBDT1JQT1JBVElPTgorMDBFMDM4ICAgICAoYmFzZSAxNikJCVBST1hJTUEgQ09SUE9SQVRJT04KKwkJCQk5NDQwIENBUlJPTEwgUEFSSyBEUklWRQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMS0yMjk4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0zOSAgIChoZXgpCQlQQVJBRFlORSBDT1JQLgorMDBFMDM5ICAgICAoYmFzZSAxNikJCVBBUkFEWU5FIENPUlAuCisJCQkJODU0NSAxMjZUSCBBVkVOVUUgTk9SVEgKKwkJCQlMQVJHTyBGTCAzMzc3MworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtM0EgICAoaGV4KQkJQ0FCTEVUUk9OIFNZU1RFTVMsIElOQy4KKzAwRTAzQSAgICAgKGJhc2UgMTYpCQlDQUJMRVRST04gU1lTVEVNUywgSU5DLgorCQkJCTM1IElORFVTVFJJQUwgV0FZIC0gQkxERy4gIzM2CisJCQkJUk9DSEVTVEVSIE5IIDAzODY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0zQiAgIChoZXgpCQlQUk9NSU5FVCBDT1JQT1JBVElPTgorMDBFMDNCICAgICAoYmFzZSAxNikJCVBST01JTkVUIENPUlBPUkFUSU9OCisJCQkJMTEwIFRVUk5QSUtFIFJELiAtIFNURS4gIzIwOAorCQkJCVdFU1RCT1JPVUdIIE1BIDAxNTgxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0zQyAgIChoZXgpCQlBZHZhblN5cworMDBFMDNDICAgICAoYmFzZSAxNikJCUFkdmFuU3lzCisJCQkJMTE1MCBSSU5HV09PRCBDT1VSVAorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC0zRCAgIChoZXgpCQlGT0NPTiBFTEVDVFJPTklDIFNZU1RFTVMgQS9TCiswMEUwM0QgICAgIChiYXNlIDE2KQkJRk9DT04gRUxFQ1RST05JQyBTWVNURU1TIEEvUworCQkJCURBTVZBTkcsIFBPIEJPWCAyNjkKKwkJCQlESy02NDAwIFNPTkRFUkJPUkcgIAorCQkJCURFTk1BUksKKworMDAtRTAtM0UgICAoaGV4KQkJQUxGQVRFQ0gsIElOQy4KKzAwRTAzRSAgICAgKGJhc2UgMTYpCQlBTEZBVEVDSCwgSU5DLgorCQkJCVNISU4tT1NBS0EgRUlUTyBCTERHLgorCQkJCTQtMTUtMTggTklTSElOQUtBSklNQSwgWU9ET0dBV0EtS1UsCisJCQkJT1NBS0EgIAorCQkJCUpBUEFOCisKKzAwLUUwLTNGICAgKGhleCkJCUpBVE9OIENPUlBPUkFUSU9OCiswMEUwM0YgICAgIChiYXNlIDE2KQkJSkFUT04gQ09SUE9SQVRJT04KKwkJCQk1NTYgU09VVEggTUlMUElUQVMgQkxWRC4KKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNDAgICAoaGV4KQkJRGVza1N0YXRpb24gVGVjaG5vbG9neSwgSW5jLgorMDBFMDQwICAgICAoYmFzZSAxNikJCURlc2tTdGF0aW9uIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxNTcyOSBDT0xMRUdFIEJMVkQuCisJCQkJTEVORVhBIEtTIDY2MjE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC00MSAgIChoZXgpCQlDU1BJCiswMEUwNDEgICAgIChiYXNlIDE2KQkJQ1NQSQorCQkJCTQzIE1hbm5pbmcgUmQuCisJCQkJQmlsbGVyaWNhIE1BIDAxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC00MiAgIChoZXgpCQlQYWNvbSBTeXN0ZW1zIEx0ZC4KKzAwRTA0MiAgICAgKGJhc2UgMTYpCQlQYWNvbSBTeXN0ZW1zIEx0ZC4KKwkJCQlVTklUIDIyIDM4LzQ2IFNPVVRIIFNULgorCQkJCVJZREFMTUVSRSAyMTE2IE5TVyAKKwkJCQlBVVNUUkFMSUEKKworMDAtRTAtNDMgICAoaGV4KQkJVml0YWxDb20KKzAwRTA0MyAgICAgKGJhc2UgMTYpCQlWaXRhbENvbQorCQkJCTE1MjIyIERFTCBBTU8gQVZFLgorCQkJCVRVU1RJTiBDQSA5Mjc4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNDQgICAoaGV4KQkJTFNJQ1MgQ09SUE9SQVRJT04KKzAwRTA0NCAgICAgKGJhc2UgMTYpCQlMU0lDUyBDT1JQT1JBVElPTgorCQkJCTMtOC0zIE5JTk9NSVlBLCBUU0tVS1VCQS1TSEkKKwkJCQlJQkFSQUdJLUtFTiwgMzA1ICAKKwkJCQlKQVBBTgorCiswMC1FMC00NSAgIChoZXgpCQlUT1VDSFdBVkUsIElOQy4KKzAwRTA0NSAgICAgKGJhc2UgMTYpCQlUT1VDSFdBVkUsIElOQy4KKwkJCQk5OTQgU0FOIEFOVE9OSU8gUkQuCisJCQkJUEFMTyBBTFRPIENBIDk0MzAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC00NiAgIChoZXgpCQlCRU5UTFkgTkVWQURBIENPUlAuCiswMEUwNDYgICAgIChiYXNlIDE2KQkJQkVOVExZIE5FVkFEQSBDT1JQLgorCQkJCVBPIEJPWCAxNTcKKwkJCQlNSU5ERU4gTlYgODk0MjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTQ3ICAgKGhleCkJCUluRm9jdXMgQ29ycG9yYXRpb24KKzAwRTA0NyAgICAgKGJhc2UgMTYpCQlJbkZvY3VzIENvcnBvcmF0aW9uCisJCQkJMjc1MDAgU1cgUGFya3dheSBBdmVudWUKKwkJCQlXaWxzb252aWxsZSBPUiA5NzA3MC04MjM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC00OCAgIChoZXgpCQlTREwgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwRTA0OCAgICAgKGJhc2UgMTYpCQlTREwgQ09NTVVOSUNBVElPTlMsIElOQy4KKwkJCQlQLk8uIEJPWCAxMzAzCisJCQkJRUFTVE9OIE1BIDAyMzM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC00OSAgIChoZXgpCQlNSUNST1dJIEVMRUNUUk9OSUMgR21iSAorMDBFMDQ5ICAgICAoYmFzZSAxNikJCU1JQ1JPV0kgRUxFQ1RST05JQyBHbWJICisJCQkJWlVTQU1TVFJBU1NFIDgKKwkJCQlEIDg2MTY1IEFVR1NCVVJHICAKKwkJCQlHRVJNQU5ZCisKKzAwLUUwLTRBICAgKGhleCkJCUVOSEFOQ0VEIE1FU1NBR0lORyBTWVNURU1TLCBJTkMKKzAwRTA0QSAgICAgKGJhc2UgMTYpCQlFTkhBTkNFRCBNRVNTQUdJTkcgU1lTVEVNUywgSU5DCisJCQkJMjUwIFdFU1QgU09VVEhMQUtFIEJMVkQuCisJCQkJU09VVEhMQUtFIFRYIDc2MDkyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC00QiAgIChoZXgpCQlKVU1QIElORFVTVFJJRUxMRSBDT01QVVRFUlRFQ0hOSUsgR21iSAorMDBFMDRCICAgICAoYmFzZSAxNikJCUpVTVAgSU5EVVNUUklFTExFIENPTVBVVEVSVEVDSE5JSyBHbWJICisJCQkJCisJCQkJVkVJTENIRU5HQVNTRSA3CisJCQkJRDk0NDY5IERFR0dFTkRPUkYgIAorCQkJCUdFUk1BTlkKKworMDAtRTAtNEMgICAoaGV4KQkJUkVBTFRFSyBTRU1JQ09ORFVDVE9SIENPUlAuCiswMEUwNEMgICAgIChiYXNlIDE2KQkJUkVBTFRFSyBTRU1JQ09ORFVDVE9SIENPUlAuCisJCQkJMUYsIE5PLiAxMSwgSU5EVVNUUlkgRS4gUkQuIElYCisJCQkJU0NJRU5DRS1CQVNFRCBJTkRVU1RSSUFMIFBBUksKKwkJCQlIU0lOQ0hVIDMwMCAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1FMC00RCAgIChoZXgpCQlJTlRFUk5FVCBJTklUSUFUSVZFIEpBUEFOLCBJTkMKKzAwRTA0RCAgICAgKGJhc2UgMTYpCQlJTlRFUk5FVCBJTklUSUFUSVZFIEpBUEFOLCBJTkMKKwkJCQkxLTQsIFNBTkJBTi1DSE8sIENISVlPREEtS1UKKwkJCQlUT0tZTyAxMDIgCisJCQkJSkFQQU4KKworMDAtRTAtNEUgICAoaGV4KQkJU0FOWU8gREVOS0kgQ08uLCBMVEQuCiswMEUwNEUgICAgIChiYXNlIDE2KQkJU0FOWU8gREVOS0kgQ08uLCBMVEQuCisJCQkJODEyLTMsIFNoaW1vbm9nb3UsIFVlZGEtU2hpCisJCQkJTmFnYW5vICAzODYtMTIxMQorCQkJCUpBUEFOCisKKzAwLUUwLTRGICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRTA0RiAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTUwICAgKGhleCkJCUVYRUNVVE9ORSBJTkZPUk1BVElPTiBTWVNURU1TLCBJTkMuCiswMEUwNTAgICAgIChiYXNlIDE2KQkJRVhFQ1VUT05FIElORk9STUFUSU9OIFNZU1RFTVMsIElOQy4KKwkJCQk0NzggV0hFRUxFUlMgRkFSTVMgUk9BRAorCQkJCU1JTEZPUkQgQ1QgMDY0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTUxICAgKGhleCkJCVRBTFggQ09SUE9SQVRJT04KKzAwRTA1MSAgICAgKGJhc2UgMTYpCQlUQUxYIENPUlBPUkFUSU9OCisJCQkJMTg1MCBCT1JNQU4gQ09VUlQKKwkJCQlTVC4gTE9VSVMgTU8gNjMxNDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTUyICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCiswMEUwNTIgICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMKKwkJCQkxNzQ1IFRlY2hub2xvZ3kgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNTMgICAoaGV4KQkJQ0VMTFBPUlQgTEFCUywgSU5DLgorMDBFMDUzICAgICAoYmFzZSAxNikJCUNFTExQT1JUIExBQlMsIElOQy4KKwkJCQk4ODUgQVJBUEFIT0UgQVZFLiwKKwkJCQlCT1VMREVSIENPIDgwMzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC01NCAgIChoZXgpCQlLT0RBSSBISVRFQyBDTy4sIExURC4KKzAwRTA1NCAgICAgKGJhc2UgMTYpCQlLT0RBSSBISVRFQyBDTy4sIExURC4KKwkJCQkyLTQ1IE9OVU1BIEhBTllVIENJVFkKKwkJCQlTQUlUQU1BLjM0OCAgCisJCQkJSkFQQU4KKworMDAtRTAtNTUgICAoaGV4KQkJSU5HRU5JRVJJQSBFTEVDVFJPTklDQSBDT01FUkNJQUwgSU5FTENPTSBTLkEuCiswMEUwNTUgICAgIChiYXNlIDE2KQkJSU5HRU5JRVJJQSBFTEVDVFJPTklDQSBDT01FUkNJQUwgSU5FTENPTSBTLkEuCisJCQkJQ0wuIFBJUVVFUiBOTy4zCisJCQkJMjgwMzMgTUFEUklEICAKKwkJCQlTUEFJTgorCiswMC1FMC01NiAgIChoZXgpCQlIT0xPTlRFQ0ggQ09SUE9SQVRJT04KKzAwRTA1NiAgICAgKGJhc2UgMTYpCQlIT0xPTlRFQ0ggQ09SUE9SQVRJT04KKwkJCQkyMDM5IFNBTUFSSVRBTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC01NyAgIChoZXgpCQlIQU4gTUlDUk9URUxFQ09NLiBDTy4sIExURC4KKzAwRTA1NyAgICAgKGJhc2UgMTYpCQlIQU4gTUlDUk9URUxFQ09NLiBDTy4sIExURC4KKwkJCQlGQVNISU9OIEJELiwgM1JEIEZSLAorCQkJCTExOTQsIERPT05TQU4gMgorCQkJCURPTkcgU0VPLUdVLCBUQUVKT04gS09SRUEgMzAyLTE3MyAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDAtRTAtNTggICAoaGV4KQkJUEhBU0UgT05FIERFTk1BUksgQS9TCiswMEUwNTggICAgIChiYXNlIDE2KQkJUEhBU0UgT05FIERFTk1BUksgQS9TCisJCQkJUk9TS0lMREVWRUogMzkKKwkJCQlESy0yMDAwIEZSRURFUklLU0JFUkcgIAorCQkJCURFTk1BUksKKworMDAtRTAtNTkgICAoaGV4KQkJQ09OVFJPTExFRCBFTlZJUk9OTUVOVFMsIExURC4KKzAwRTA1OSAgICAgKGJhc2UgMTYpCQlDT05UUk9MTEVEIEVOVklST05NRU5UUywgTFRELgorCQkJCTU5MCBCRVJSWSBTVFJFRVQKKwkJCQlXSU5ORVBFRyBSM0ggT1I5ICAKKwkJCQlDQU5BREEKKworMDAtRTAtNUEgICAoaGV4KQkJR0FMRUEgTkVUV09SSyBTRUNVUklUWQorMDBFMDVBICAgICAoYmFzZSAxNikJCUdBTEVBIE5FVFdPUksgU0VDVVJJVFkKKwkJCQkyIFBMQUNFIGR1IENPTU1FUkNFIC0gU1RFICMzMjAKKwkJCQlCUk9TU0FSRCwgUVVFQkVDIEo0VyAyVDggIAorCQkJCUNBTkFEQQorCiswMC1FMC01QiAgIChoZXgpCQlXRVNUIEVORCBTWVNURU1TIENPUlAuCiswMEUwNUIgICAgIChiYXNlIDE2KQkJV0VTVCBFTkQgU1lTVEVNUyBDT1JQLgorCQkJCTM5IFdJTk5FUidTIENJUkNMRSBEUi4sCisJCQkJQVJOUFJJT1IsIE9OVEFSSU8gICAgSzdTIDNHOSAgCisJCQkJQ0FOQURBCisKKzAwLUUwLTVDICAgKGhleCkJCU1BVFNVU0hJVEEgS09UT0JVS0kgRUxFQ1RST05JQ1MgSU5EVVNUUklFUywgTFRELgorMDBFMDVDICAgICAoYmFzZSAxNikJCU1BVFNVU0hJVEEgS09UT0JVS0kgRUxFQ1RST05JQ1MgSU5EVVNUUklFUywgTFRELgorCQkJCTI0NywgRlVLVVRBS0UgU0FJSk8KKwkJCQlFSElNRSwgNzkzICAKKwkJCQlKQVBBTgorCiswMC1FMC01RCAgIChoZXgpCQlVTklURUMgQ08uLCBMVEQuCiswMEUwNUQgICAgIChiYXNlIDE2KQkJVU5JVEVDIENPLiwgTFRELgorCQkJCUtJU09HQVdBLUNITyAgSUNISU5PVE9SSSAyNAorCQkJCUhBR1VSSS1HVU4gQUlDSEkgNDkzICAKKwkJCQlKQVBBTgorCiswMC1FMC01RSAgIChoZXgpCQlKQVBBTiBBVklBVElPTiBFTEVDVFJPTklDUyBJTkRVU1RSWSwgTFRELgorMDBFMDVFICAgICAoYmFzZSAxNikJCUpBUEFOIEFWSUFUSU9OIEVMRUNUUk9OSUNTIElORFVTVFJZLCBMVEQuCisJCQkJCisJCQkJMy0xLTEgTVVTQVNISU5PIEFLSVNISU1BLVNISQorCQkJCVRPS1lPIDE5NiBKQVBBTiAKKwkJCQlKQVBBTgorCiswMC1FMC01RiAgIChoZXgpCQllLU5ldCwgSW5jLgorMDBFMDVGICAgICAoYmFzZSAxNikJCWUtTmV0LCBJbmMuCisJCQkJMTIzMjUgSFlNRUFET1cgRFJJVkUKKwkJCQlTVUlURSAjMi0yMDAKKwkJCQlBVVNUSU4gVFggNzg3NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTYwICAgKGhleCkJCVNIRVJXT09ECiswMEUwNjAgICAgIChiYXNlIDE2KQkJU0hFUldPT0QKKwkJCQkyMTA1NiBGT1JCRVMgU1RSRUVUCisJCQkJSEFZV0FSRCBDQSA5NDU0NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNjEgICAoaGV4KQkJRWRnZVBvaW50IE5ldHdvcmtzLCBJbmMuCiswMEUwNjEgICAgIChiYXNlIDE2KQkJRWRnZVBvaW50IE5ldHdvcmtzLCBJbmMuCisJCQkJMjIzOCBNQVJUSU4gQVZFTlVFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTYyICAgKGhleCkJCUhPU1QgRU5HSU5FRVJJTkcKKzAwRTA2MiAgICAgKGJhc2UgMTYpCQlIT1NUIEVOR0lORUVSSU5HCisJCQkJMjAwIEVBU1QgTUFJTiBTVFJFRVQgLVNURS4jNzAwCisJCQkJSk9ITlNPTiBDSVRZIFROIDM3NjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC02MyAgIChoZXgpCQlDQUJMRVRST04gLSBZQUdPIFNZU1RFTVMsIElOQy4KKzAwRTA2MyAgICAgKGJhc2UgMTYpCQlDQUJMRVRST04gLSBZQUdPIFNZU1RFTVMsIElOQy4KKwkJCQkzNSBJTkRVU1RSSUFMIFdBWQorCQkJCVAuTy4gQk9YIDUwMDUKKwkJCQlST0NIRVNURVIgTkggMDM4NjYtNTAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNjQgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPTklDUworMDBFMDY0ICAgICAoYmFzZSAxNikJCVNBTVNVTkcgRUxFQ1RST05JQ1MKKwkJCQk5OSBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNjUgICAoaGV4KQkJT1BUSUNBTCBBQ0NFU1MgSU5URVJOQVRJT05BTAorMDBFMDY1ICAgICAoYmFzZSAxNikJCU9QVElDQUwgQUNDRVNTIElOVEVSTkFUSU9OQUwKKwkJCQk1MDAgV0VTVCBDVU1NSU5HUyBQTC4gIzM0MDAKKwkJCQlXT0JVUk4gTUEgMDE4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTY2ICAgKGhleCkJCVByb01heCBTeXN0ZW1zLCBJbmMuCiswMEUwNjYgICAgIChiYXNlIDE2KQkJUHJvTWF4IFN5c3RlbXMsIEluYy4KKwkJCQkxNiBURUNITk9MT0dZIERSSVZFLS1CTERHLiMxMDYKKwkJCQlJUlZJTkUgQ0EgOTI2NTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTY3ICAgKGhleCkJCWVhYyBBVVRPTUFUSU9OLUNPTlNVTFRJTkcgR21iSAorMDBFMDY3ICAgICAoYmFzZSAxNikJCWVhYyBBVVRPTUFUSU9OLUNPTlNVTFRJTkcgR21iSAorCQkJCUhFUk1TRE9SRkVSIERBTU0gMjIyCisJCQkJNzM0NjcgQkVSTElOICAKKwkJCQlHRVJNQU5ZCisKKzAwLUUwLTY4ICAgKGhleCkJCU1FUlJJTUFDIFNZU1RFTVMgSU5DLgorMDBFMDY4ICAgICAoYmFzZSAxNikJCU1FUlJJTUFDIFNZU1RFTVMgSU5DLgorCQkJCTIxNDQgTUMgQ09ZIFJPQUQKKwkJCQlDQVJST0xMVE9OIFRYIDc1MDA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC02OSAgIChoZXgpCQlKQVlDT1IKKzAwRTA2OSAgICAgKGJhc2UgMTYpCQlKQVlDT1IKKwkJCQk5Nzc1IFRPV05FIENFTlRSRSBEUklWRQorCQkJCVNBTiBESUVHTyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNkEgICAoaGV4KQkJS0FQU0NIIEFHCiswMEUwNkEgICAgIChiYXNlIDE2KQkJS0FQU0NIIEFHCisJCQkJV0FHRU5TRUlMR0FTU0UgMQorCQkJCTExMjAtVklFTk5BICAKKwkJCQlBVVNUUklBCisKKzAwLUUwLTZCICAgKGhleCkJCVcmRyBTUEVDSUFMIFBST0RVQ1RTCiswMEUwNkIgICAgIChiYXNlIDE2KQkJVyZHIFNQRUNJQUwgUFJPRFVDVFMKKwkJCQlTQ0VJTkNFIFBBUksgRUlOREhPVklOIDUwNDkKKwkJCQk1NjkyIEVCIFNPTgorCQkJCU5FVEhFUkxBTkRTCisKKzAwLUUwLTZDICAgKGhleCkJCUFFUCBTeXN0ZW1zIEludGVybmF0aW9uYWwgTHRkCiswMEUwNkMgICAgIChiYXNlIDE2KQkJQUVQIFN5c3RlbXMgSW50ZXJuYXRpb25hbCBMdGQKKwkJCQlGb2N1cyAzMSwgV2VzdCBXaW5nCisJCQkJQ2xldmVsYW5kIFJvYWQKKwkJCQlIZW1lbCBIZW1zdGVhZCBIZXJ0cyBFbmdsYW5kIEhQMiA3QlcKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1FMC02RCAgIChoZXgpCQlDT01QVVdBUkUgQ09SUE9SQVRJT04KKzAwRTA2RCAgICAgKGJhc2UgMTYpCQlDT01QVVdBUkUgQ09SUE9SQVRJT04KKwkJCQlPbmUgQ2FtcHVzIE1hcnRpdXMKKwkJCQlEZXRyb2l0IE1JIDQ4MjI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC02RSAgIChoZXgpCQlGQVIgU1lTVEVNUyBTLnAuQS4KKzAwRTA2RSAgICAgKGJhc2UgMTYpCQlGQVIgU1lTVEVNUyBTLnAuQS4KKwkJCQlWSUEgRi4gWkVOSSA4CisJCQkJMzg2OCBST1ZFUkVUTyAoVE4pICAKKwkJCQlJVEFMWQorCiswMC1FMC02RiAgIChoZXgpCQlNb3Rvcm9sYSwgSW5jLgorMDBFMDZGICAgICAoYmFzZSAxNikJCU1vdG9yb2xhLCBJbmMuCisJCQkJMjQ1MCBXYWxzaCBBdmUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNzAgICAoaGV4KQkJREggVEVDSE5PTE9HWQorMDBFMDcwICAgICAoYmFzZSAxNikJCURIIFRFQ0hOT0xPR1kKKwkJCQkzMDAzIFJPTExJRSBHQVRFUyBEUklWRQorCQkJCVBBU08gUk9CTEVTIENBIDkzNDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03MSAgIChoZXgpCQlFUElTIE1JQ1JPQ09NUFVURVIKKzAwRTA3MSAgICAgKGJhc2UgMTYpCQlFUElTIE1JQ1JPQ09NUFVURVIKKwkJCQk3MjQ1OCBBTEJTVEFEVAorCQkJCUxBVVRMSU5HRVIgU1RSQVNTRSAxNDcKKwkJCQk3MjQ1OCBBTEJTVEFEVCAgCisJCQkJR0VSTUFOWQorCiswMC1FMC03MiAgIChoZXgpCQlMWU5LCiswMEUwNzIgICAgIChiYXNlIDE2KQkJTFlOSworCQkJCVJBQklOIEJVSUxESU5HCisJCQkJVEVSQURJT04gSU5EVVNUUklBTCBQQVJLCisJCQkJRC5OLiBNSVNHQVYgMjAxICAKKwkJCQlJU1JBRUwKKworMDAtRTAtNzMgICAoaGV4KQkJTkFUSU9OQUwgQU1VU0VNRU5UIE5FVFdPUkssIElOQy4KKzAwRTA3MyAgICAgKGJhc2UgMTYpCQlOQVRJT05BTCBBTVVTRU1FTlQgTkVUV09SSywgSU5DLgorCQkJCTQwMSBOLiBNSUNISUdBTiBBVkVOVUUKKwkJCQlDSElDQUdPIElMIDYwNjExCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03NCAgIChoZXgpCQlUSUVSTkFOIENPTU1VTklDQVRJT05TLCBJTkMuCiswMEUwNzQgICAgIChiYXNlIDE2KQkJVElFUk5BTiBDT01NVU5JQ0FUSU9OUywgSU5DLgorCQkJCTExMDI1IFJPU0VMTEUgU1QuCisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03NSAgIChoZXgpCQlWZXJpbGluayBDb3Jwb3JhdGlvbgorMDBFMDc1ICAgICAoYmFzZSAxNikJCVZlcmlsaW5rIENvcnBvcmF0aW9uCisJCQkJMTI3IEpldHBsZXggQ2lyY2xlCisJCQkJTWFkaXNvbiBBTCAzNTc1OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtNzYgICAoaGV4KQkJREVWRUxPUE1FTlQgQ09OQ0VQVFMsIElOQy4KKzAwRTA3NiAgICAgKGJhc2UgMTYpCQlERVZFTE9QTUVOVCBDT05DRVBUUywgSU5DLgorCQkJCTEwMDAgTi4gQlJPQUQgU1RSRUVUCisJCQkJTEFOU0RBTEUgUEEgMTk0NDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTc3ICAgKGhleCkJCVdFQkdFQVIsIElOQy4KKzAwRTA3NyAgICAgKGJhc2UgMTYpCQlXRUJHRUFSLCBJTkMuCisJCQkJMTI2MyBPQUtNRUFEIFBLV1kKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTc4ICAgKGhleCkJCUJFUktFTEVZIE5FVFdPUktTCiswMEUwNzggICAgIChiYXNlIDE2KQkJQkVSS0VMRVkgTkVUV09SS1MKKwkJCQk2ODMgUklWRVIgT0FLUyBQQVJLV0FZCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTc5ICAgKGhleCkJCUEuVC5OLlIuCiswMEUwNzkgICAgIChiYXNlIDE2KQkJQS5ULk4uUi4KKwkJCQlCUCA5NjYKKwkJCQk5MTk3NiBDT1VSVEFCT0VVRiAgCisJCQkJRlJBTkNFCisKKzAwLUUwLTdBICAgKGhleCkJCU1JS1JPRElEQUtUIEFCCiswMEUwN0EgICAgIChiYXNlIDE2KQkJTUlLUk9ESURBS1QgQUIKKwkJCQlTa2lmZmVydsOkZ2VuIDQ4CisJCQkJTFVORCAgU0UyMjQ3OAorCQkJCVNXRURFTgorCiswMC1FMC03QiAgIChoZXgpCQlCQVkgTkVUV09SS1MKKzAwRTA3QiAgICAgKGJhc2UgMTYpCQlCQVkgTkVUV09SS1MKKwkJCQkxMjUgTkFHT0cgUEFSSworCQkJCUFDVE9OIE1BIDAxNzIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03QyAgIChoZXgpCQlNRVRUTEVSLVRPTEVETywgSU5DLgorMDBFMDdDICAgICAoYmFzZSAxNikJCU1FVFRMRVItVE9MRURPLCBJTkMuCisJCQkJMTE1MCBERUFSQk9STiBEUklWRQorCQkJCVdPUlRISU5HVE9OIE9IIDQzMDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03RCAgIChoZXgpCQlORVRST05JWCwgSU5DLgorMDBFMDdEICAgICAoYmFzZSAxNikJCU5FVFJPTklYLCBJTkMuCisJCQkJMzQwIFRIT1IgUExBQ0UKKwkJCQlCUkVBIENBIDkyODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC03RSAgIChoZXgpCQlXQUxUIERJU05FWSBJTUFHSU5FRVJJTkcKKzAwRTA3RSAgICAgKGJhc2UgMTYpCQlXQUxUIERJU05FWSBJTUFHSU5FRVJJTkcKKwkJCQkxNDAxIEZMT1dFUiBTVC4KKwkJCQlHTEVOREFMRSBDQSA5MTIyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtN0YgICAoaGV4KQkJTE9HSVNUSVNURU0gcy5yLmwuCiswMEUwN0YgICAgIChiYXNlIDE2KQkJTE9HSVNUSVNURU0gcy5yLmwuCisJCQkJVklBIFBBTkNJQVRJQ0hJIDk0LzE4CisJCQkJNTAxMjcgRklSRU5aRSAgCisJCQkJSVRBTFkKKworMDAtRTAtODAgICAoaGV4KQkJQ09OVFJPTCBSRVNPVVJDRVMgQ09SUE9SQVRJT04KKzAwRTA4MCAgICAgKGJhc2UgMTYpCQlDT05UUk9MIFJFU09VUkNFUyBDT1JQT1JBVElPTgorCQkJCTE2LTAwIFBPTExJVFQgRFJJVkUKKwkJCQlGQUlSIExBV04gTkogMDc0MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTgxICAgKGhleCkJCVRZQU4gQ09NUFVURVIgQ09SUC4KKzAwRTA4MSAgICAgKGJhc2UgMTYpCQlUWUFOIENPTVBVVEVSIENPUlAuCisJCQkJMzI4OCBMQVVSRVZJRVcgQ1QKKwkJCQlGUkVNT05UIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC04MiAgIChoZXgpCQlBTkVSTUEKKzAwRTA4MiAgICAgKGJhc2UgMTYpCQlBTkVSTUEKKwkJCQlTQ0hBQVBTRFJJRVMgMjUKKwkJCQkyMjYwIFdFU1RFUkxPICAKKwkJCQlCRUxHSVVNCisKKzAwLUUwLTgzICAgKGhleCkJCUpBVE8gVEVDSE5PTE9HSUVTLCBJTkMuCiswMEUwODMgICAgIChiYXNlIDE2KQkJSkFUTyBURUNITk9MT0dJRVMsIElOQy4KKwkJCQk1MDUgRUFTVCBIVU5UTEFORCBEUi4gU1RFICM1NTAKKwkJCQlBVVNUSU4gVFggNzg3NTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTg0ICAgKGhleCkJCUNPTVBVTElURSBSJkQKKzAwRTA4NCAgICAgKGJhc2UgMTYpCQlDT01QVUxJVEUgUiZECisJCQkJMyBIQVJPU0hFVCBTVFIuIE5FVyBJTkQuIFpPTkUKKwkJCQlSQU1BVC1IQVNIQVJPTiA0NzI3OSAgCisJCQkJSVNSQUVMCisKKzAwLUUwLTg1ICAgKGhleCkJCUdMT0JBTCBNQUlOVEVDSCwgSU5DLgorMDBFMDg1ICAgICAoYmFzZSAxNikJCUdMT0JBTCBNQUlOVEVDSCwgSU5DLgorCQkJCTY0NjggQ0lUWSBXRVNUIFBBUktXQVkKKwkJCQlFREVOIFBSQUlSSUUgTU4gNTUzNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTg2ICAgKGhleCkJCUNZQkVYIENPTVBVVEVSIFBST0RVQ1RTCiswMEUwODYgICAgIChiYXNlIDE2KQkJQ1lCRVggQ09NUFVURVIgUFJPRFVDVFMKKwkJCQk0OTEyIFJFU0VBUkNIIERSSVZFCisJCQkJSFVOVFNWSUxMRSBBTCAzNTgwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtODcgICAoaGV4KQkJTGVDcm95IC0gTmV0d29ya2luZyBQcm9kdWN0aW9ucyBEaXZpc2lvbgorMDBFMDg3ICAgICAoYmFzZSAxNikJCUxlQ3JveSAtIE5ldHdvcmtpbmcgUHJvZHVjdGlvbnMgRGl2aXNpb24KKwkJCQkyNSBCVVJMSU5HVE9OIE1BTEwgUk9BRAorCQkJCUJVUkxJTkdUT04gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTg4ICAgKGhleCkJCUxUWCBDT1JQT1JBVElPTgorMDBFMDg4ICAgICAoYmFzZSAxNikJCUxUWCBDT1JQT1JBVElPTgorCQkJCTE0NSBVTklWRVJTSVRZIEFWRU5VRQorCQkJCVdFU1RXT09EIE1BIDAyMDkwLTIzMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTg5ICAgKGhleCkJCUlPTiBOZXR3b3JrcywgSW5jLgorMDBFMDg5ICAgICAoYmFzZSAxNikJCUlPTiBOZXR3b3JrcywgSW5jLgorCQkJCTE1NTEgU291dGggV2FzaGluZ3RvbiBBdmUuCisJCQkJUGlzY2F0YXdheSBOSiAwODg1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOEEgICAoaGV4KQkJR0VDIEFWRVJZLCBMVEQuCiswMEUwOEEgICAgIChiYXNlIDE2KQkJR0VDIEFWRVJZLCBMVEQuCisJCQkJRk9VTkRSWSBMQU5FCisJCQkJU01FVEhXSUNLLCBXQVJMRVkKKwkJCQlXRVNUIE1JRExBTkRTLCBCNjYgMkxQIEVuZ2xhbmQgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtOEIgICAoaGV4KQkJUUxvZ2ljIENvcnAuCiswMEUwOEIgICAgIChiYXNlIDE2KQkJUUxvZ2ljIENvcnAuCisJCQkJMjY2MDAgTGFndW5hIEhpbGxzIERyLgorCQkJCUFsaXNvIFZpZWpvIENBIDkyNjU2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC04QyAgIChoZXgpCQlORU9QQVJBRElHTSBMQUJTLCBJTkMuCiswMEUwOEMgICAgIChiYXNlIDE2KQkJTkVPUEFSQURJR00gTEFCUywgSU5DLgorCQkJCTE3MzUgTi4gRklSU1QgU1QuLCAgU1RFICMxMDgKKwkJCQlTQU4gSk9TRSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOEQgICAoaGV4KQkJUFJFU1NVUkUgU1lTVEVNUywgSU5DLgorMDBFMDhEICAgICAoYmFzZSAxNikJCVBSRVNTVVJFIFNZU1RFTVMsIElOQy4KKwkJCQkzNCBSRVNFQVJDSCBEUklWRQorCQkJCUhBTVBUT04gVkEgMjM2NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLThFICAgKGhleCkJCVVUU1RBUkNPTQorMDBFMDhFICAgICAoYmFzZSAxNikJCVVUU1RBUkNPTQorCQkJCTMzIFdPT0QgQVZFLiBTT1VUSAorCQkJCUlTRUxJTiBOSiAwODgzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOEYgICAoaGV4KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorMDBFMDhGICAgICAoYmFzZSAxNikJCUNJU0NPIFNZU1RFTVMsIElOQy4KKwkJCQkxNzAgVy4gVEFTTUFOIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQtMTcwNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOTAgICAoaGV4KQkJQkVDS01BTiBMQUIuIEFVVE9NQVRJT04gRElWLgorMDBFMDkwICAgICAoYmFzZSAxNikJCUJFQ0tNQU4gTEFCLiBBVVRPTUFUSU9OIERJVi4KKwkJCQk5MCBCT1JPTElORSBST0FECisJCQkJQUxMRU5EQUxFIE5KIDA3NDAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC05MSAgIChoZXgpCQlMRyBFTEVDVFJPTklDUywgSU5DLgorMDBFMDkxICAgICAoYmFzZSAxNikJCUxHIEVMRUNUUk9OSUNTLCBJTkMuCisJCQkJMTYsIFdPT01ZRU9OLURPTkcsCisJCQkJU0VPQ0hPLUdVLCBTRU9VTCwgMTM3LTE0MCwgIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswMC1FMC05MiAgIChoZXgpCQlBRE1URUsgSU5DT1JQT1JBVEVECiswMEUwOTIgICAgIChiYXNlIDE2KQkJQURNVEVLIElOQ09SUE9SQVRFRAorCQkJCTE5NjIgWkFOS0VSIFJPQUQKKwkJCQlTQU4gSk9TRSBDQSA5NTExMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOTMgICAoaGV4KQkJQUNLRklOIE5FVFdPUktTCiswMEUwOTMgICAgIChiYXNlIDE2KQkJQUNLRklOIE5FVFdPUktTCisJCQkJNTc1IE4uIFBBU1RPUklBIEFWRS4KKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTk0ICAgKGhleCkJCU9TQUkgU1JMCiswMEUwOTQgICAgIChiYXNlIDE2KQkJT1NBSSBTUkwKKwkJCQlWSUEgVE9SSU5PCisJCQkJNjAzLUlWUkVBIChUTykgIAorCQkJCUlUQUxZCisKKzAwLUUwLTk1ICAgKGhleCkJCUFEVkFOQ0VELVZJU0lPTiBURUNITk9MR0lFUyBDT1JQLgorMDBFMDk1ICAgICAoYmFzZSAxNikJCUFEVkFOQ0VELVZJU0lPTiBURUNITk9MR0lFUyBDT1JQLgorCQkJCThGLTEsIDg3IFNFQ1RJT04gMywgQ0hVTkcgWUFORyBSRCwKKwkJCQlUdSBDaGVuZyBUYWlwZWkgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1FMC05NiAgIChoZXgpCQlTSElNQURaVSBDT1JQT1JBVElPTgorMDBFMDk2ICAgICAoYmFzZSAxNikJCVNISU1BRFpVIENPUlBPUkFUSU9OCisJCQkJMSwgTklTSElOT0tZTy1LVVdBQkFSQUNITworCQkJCU5BS0FHWU8tS1UsIEtZT1RPIDYwNCAgCisJCQkJSkFQQU4KKworMDAtRTAtOTcgICAoaGV4KQkJQ0FSUklFUiBBQ0NFU1MgQ09SUE9SQVRJT04KKzAwRTA5NyAgICAgKGJhc2UgMTYpCQlDQVJSSUVSIEFDQ0VTUyBDT1JQT1JBVElPTgorCQkJCTUzOTUgUEVBUkwgUEFSS1dBWQorCQkJCUJPVUxERVIgQ08gODAzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTk4ICAgKGhleCkJCUFib0NvbSBTeXN0ZW1zLCBJbmMuCiswMEUwOTggICAgIChiYXNlIDE2KQkJQWJvQ29tIFN5c3RlbXMsIEluYy4KKwkJCQkxMkYtMywgTk8uIDMzMywgU0VDLiAxCisJCQkJR1VBTi1GVSBST0FECisJCQkJSFNJTi1DSFUgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtOTkgICAoaGV4KQkJU0FNU09OIEFHCiswMEUwOTkgICAgIChiYXNlIDE2KQkJU0FNU09OIEFHCisJCQkJV0VJU01VTExFUlNUUi4gMworCQkJCUQtNjAzMTQgRlJBTktGVVJUICAKKwkJCQlHRVJNQU5ZCisKKzAwLUUwLTlBICAgKGhleCkJCVBvc2l0cm9uIEluYy4KKzAwRTA5QSAgICAgKGJhc2UgMTYpCQlQb3NpdHJvbiBJbmMuCisJCQkJNTEwMSBCdWNoYW4gU3RyZWV0CisJCQkJU3VpdGUgMjIwCisJCQkJTW9udHJlYWwsIFF1ZWJlYyBINFAgMlI5CisJCQkJQ0FOQURBCisKKzAwLUUwLTlCICAgKGhleCkJCUVOR0FHRSBORVRXT1JLUywgSU5DLgorMDBFMDlCICAgICAoYmFzZSAxNikJCUVOR0FHRSBORVRXT1JLUywgSU5DLgorCQkJCTMxNiBOLiBNSUxXQVVLRUUgU1QuLCBTVEUuIzIxNAorCQkJCU1JTFdBVUtFRSBXSSA1MzIwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOUMgICAoaGV4KQkJTUlJCiswMEUwOUMgICAgIChiYXNlIDE2KQkJTUlJCisJCQkJTEUgcGFyYyBkdSBNT1VMSU4KKwkJCQkyLCBncmFuZGUgcnVlIFByb2xvbmdlZQorCQkJCUY5NTY1MCBQVUlTRVVYLVBPVE9JU0UgIAorCQkJCUZSQU5DRQorCiswMC1FMC05RCAgIChoZXgpCQlTQVJOT0ZGIENPUlBPUkFUSU9OCiswMEUwOUQgICAgIChiYXNlIDE2KQkJU0FSTk9GRiBDT1JQT1JBVElPTgorCQkJCUNOIDUzMDAKKwkJCQlQUklOQ0VUT04gTkogMDg1NDMtNTMwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtOUUgICAoaGV4KQkJUVVBTlRVTSBDT1JQT1JBVElPTgorMDBFMDlFICAgICAoYmFzZSAxNikJCVFVQU5UVU0gQ09SUE9SQVRJT04KKwkJCQk1MDAgTWNDYXJ0aHkgQm91bGV2YXJkCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLTlGICAgKGhleCkJCVBJWEVMIFZJU0lPTgorMDBFMDlGICAgICAoYmFzZSAxNikJCVBJWEVMIFZJU0lPTgorCQkJCTQzIE5BR09HIFBBUksKKwkJCQlBQ1RPTiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQTAgICAoaGV4KQkJV0lMVFJPTiBDTy4KKzAwRTBBMCAgICAgKGJhc2UgMTYpCQlXSUxUUk9OIENPLgorCQkJCTQ5MCBKQVJWSVMgRFJJVkUKKwkJCQlNT1JHQU4gSElMTCBDQSA5NTAzNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQTEgICAoaGV4KQkJSElNQSBQQVVMIEhJTERFQlJBTkRUIEdtYkggQ28uIEtHCiswMEUwQTEgICAgIChiYXNlIDE2KQkJSElNQSBQQVVMIEhJTERFQlJBTkRUIEdtYkggQ28uIEtHCisJCQkJCisJCQkJUE9TVEJPWCAxMjYxCisJCQkJRC02ODc3NyBCUlVFSEwgTkVBUiBNQU5OSEVJTSAKKwkJCQlHRVJNQU5ZCisKKzAwLUUwLUEyICAgKGhleCkJCU1JQ1JPU0xBVEUgSU5DLgorMDBFMEEyICAgICAoYmFzZSAxNikJCU1JQ1JPU0xBVEUgSU5DLgorCQkJCTk2MjUgSUdOQUNFIC0gU1RFLiBECisJCQkJQlJPU1NBUkQgIFFDIEo0WSAyUDMgIAorCQkJCUNBTkFEQQorCiswMC1FMC1BMyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEUwQTMgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1BNCAgIChoZXgpCQlFU0FPVEUgUy5wLkEuCiswMEUwQTQgICAgIChiYXNlIDE2KQkJRVNBT1RFIFMucC5BLgorCQkJCXZpYSBkaSBDQUNJT0xMRSwgMTUKKwkJCQk1MDEyNyBGTE9SRU5DRSAgCisJCQkJSVRBTFkKKworMDAtRTAtQTUgICAoaGV4KQkJQ29tQ29yZSBTZW1pY29uZHVjdG9yLCBJbmMuCiswMEUwQTUgICAgIChiYXNlIDE2KQkJQ29tQ29yZSBTZW1pY29uZHVjdG9yLCBJbmMuCisJCQkJNDUwNSBMQVMgVklSR0VORVMsIFN1aXRlIDIwMgorCQkJCUNBTEFCQVNBUyBDQSA5MTMwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQTYgICAoaGV4KQkJVEVMT0dZIE5FVFdPUktTLCBJTkMuCiswMEUwQTYgICAgIChiYXNlIDE2KQkJVEVMT0dZIE5FVFdPUktTLCBJTkMuCisJCQkJMjAyNTAgQ0VOVFVSWSBCTFZELgorCQkJCUdFUk1BTlRPV04gTUQgMjA4NzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUE3ICAgKGhleCkJCUlQQyBJTkZPUk1BVElPTiBTWVNURU1TLCBJTkMuCiswMEUwQTcgICAgIChiYXNlIDE2KQkJSVBDIElORk9STUFUSU9OIFNZU1RFTVMsIElOQy4KKwkJCQlNRVRSTyBDRU5URVIKKwkJCQlPTkUgU1RBVElPTiBQTEFDRQorCQkJCVNUQU1GT1JEIENUIDA2OTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1BOCAgIChoZXgpCQlTQVQgR21iSCAmIENvLgorMDBFMEE4ICAgICAoYmFzZSAxNikJCVNBVCBHbWJIICYgQ28uCisJCQkJUlVUSE5FUkdBU1NFIDEKKwkJCQlWSUVOTkEgQS0xMjEwICAKKwkJCQlBVVNUUklBCisKKzAwLUUwLUE5ICAgKGhleCkJCUZVTkFJIEVMRUNUUklDIENPLiwgTFRELgorMDBFMEE5ICAgICAoYmFzZSAxNikJCUZVTkFJIEVMRUNUUklDIENPLiwgTFRELgorCQkJCTctMSwgTkFLQUdBSVRPIDctQ0hPTUUsIERBSVRPCisJCQkJT1NBS0EgIDU3NCAgCisJCQkJSkFQQU4KKworMDAtRTAtQUEgICAoaGV4KQkJRUxFQ1RST1NPTklDIExURC4KKzAwRTBBQSAgICAgKGJhc2UgMTYpCQlFTEVDVFJPU09OSUMgTFRELgorCQkJCUhBV0xFWSBNSUxMLCBIQVdMRVkgUkQuCisJCQkJREFSVEZPUkQsIEtFTlQgREEyIDdTWSAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtQUIgICAoaGV4KQkJRElNQVQgUy5BLgorMDBFMEFCICAgICAoYmFzZSAxNikJCURJTUFUIFMuQS4KKwkJCQlDL0JJU0NBSUEgMzgzIDMKKwkJCQkwODAyMyAgQkFSQ0VMT05BICAKKwkJCQlTUEFJTgorCiswMC1FMC1BQyAgIChoZXgpCQlNSURTQ08sIElOQy4KKzAwRTBBQyAgICAgKGJhc2UgMTYpCQlNSURTQ08sIElOQy4KKwkJCQk3MTAgUk9VVEUgNDYgRUFTVAorCQkJCUZBSVJGSUVMRCBOSiAwNzAwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQUQgICAoaGV4KQkJRUVTIFRFQ0hOT0xPR1ksIExURC4KKzAwRTBBRCAgICAgKGJhc2UgMTYpCQlFRVMgVEVDSE5PTE9HWSwgTFRELgorCQkJCTI1IEVBU1RXQVlTCisJCQkJV0lUSEFNLCBFU1NFWCwgQ004IDNBTCAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtQUUgICAoaGV4KQkJWEFRVEkgQ09SUE9SQVRJT04KKzAwRTBBRSAgICAgKGJhc2UgMTYpCQlYQVFUSSBDT1JQT1JBVElPTgorCQkJCSAxNjMwIE9BS0xBTkQgUkQuICNBLTIxNAorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1BRiAgIChoZXgpCQlHRU5FUkFMIERZTkFNSUNTIElORk9STUFUSU9OIFNZU1RFTVMKKzAwRTBBRiAgICAgKGJhc2UgMTYpCQlHRU5FUkFMIERZTkFNSUNTIElORk9STUFUSU9OIFNZU1RFTVMKKwkJCQlDT01QVVRJTkcgREVWSUNFUywgTFRELgorCQkJCSAzMTkwIEZBSVJWSUVXIFBBCisJCQkJRkFMTFMgQ0hVUkNIIFZBIDIyMDQyLTQ1MjMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUIwICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRTBCMCAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUIxICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50LCBFbnRlcnByaXNlIEJ1c2luZXNzIEdyb3VwCiswMEUwQjEgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQsIEVudGVycHJpc2UgQnVzaW5lc3MgR3JvdXAKKwkJCQkyNjgwMSBXZXN0IEFnb3VyYSBSb2FkCisJCQkJQ2FsYWJhc2FzIENBIDkxMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CMiAgIChoZXgpCQlURUxNQVggQ09NTVVOSUNBVElPTlMgQ09SUC4KKzAwRTBCMiAgICAgKGJhc2UgMTYpCQlURUxNQVggQ09NTVVOSUNBVElPTlMgQ09SUC4KKwkJCQk0NjUxNSBMQU5ESU5HIFBBUktXQVkKKwkJCQlGUkVNT05UIENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CMyAgIChoZXgpCQlFdGhlcldBTiBTeXN0ZW1zLCBJbmMuCiswMEUwQjMgICAgIChiYXNlIDE2KQkJRXRoZXJXQU4gU3lzdGVtcywgSW5jLgorCQkJCTE0IEhVR0hFUywgIFNURS5CLTEwNQorCQkJCUlSVklORSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQjQgICAoaGV4KQkJVEVDSE5PIFNDT1BFIENPLiwgTFRELgorMDBFMEI0ICAgICAoYmFzZSAxNikJCVRFQ0hOTyBTQ09QRSBDTy4sIExURC4KKwkJCQkxMy02LTcgS0lTSElNQVRJIFVSQVdBU0kKKwkJCQlTQUlUQU1BIDMzNiAgCisJCQkJSkFQQU4KKworMDAtRTAtQjUgICAoaGV4KQkJQVJERU5UIENPTU1VTklDQVRJT05TIENPUlAuCiswMEUwQjUgICAgIChiYXNlIDE2KQkJQVJERU5UIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJMzgwMSBaQU5LRVIgUk9BRCwgIFN1aXRlIEEKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQjYgICAoaGV4KQkJRW50cmFkYSBOZXR3b3JrcworMDBFMEI2ICAgICAoYmFzZSAxNikJCUVudHJhZGEgTmV0d29ya3MKKwkJCQk5MDIwIEpVTkNUSU9OIERSSVZFCisJCQkJQU5OQVBPTElTIEpVTkNUSU9OIE1EIDIwNzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CNyAgIChoZXgpCQlQSSBHUk9VUCwgTFRELgorMDBFMEI3ICAgICAoYmFzZSAxNikJCVBJIEdST1VQLCBMVEQuCisJCQkJTUlMVE9OIEhBTEwsIENIVVJDSCBMQU5FCisJCQkJTUlMVE9OLCBDQU1CUklER0UgQ0JBIDZBQiAgCisJCQkJVU5JVEVEIEtJTkdET00KKworMDAtRTAtQjggICAoaGV4KQkJR0FURVdBWSAyMDAwCiswMEUwQjggICAgIChiYXNlIDE2KQkJR0FURVdBWSAyMDAwCisJCQkJNjEwIEdBVEVXQVkgRFJJVkUKKwkJCQlOLiBTSU9VWCBDSVRZIFNEIDU3MDQ5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1COSAgIChoZXgpCQlCWUFTIFNZU1RFTVMKKzAwRTBCOSAgICAgKGJhc2UgMTYpCQlCWUFTIFNZU1RFTVMKKwkJCQkyMjUwIE1PTlJPRSBTVFJFRVQsICAjMzcxCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUJBICAgKGhleCkJCUJFUkdIT0YgQVVUT01BVElPTlNURUNITklLIEdtYkgKKzAwRTBCQSAgICAgKGJhc2UgMTYpCQlCRVJHSE9GIEFVVE9NQVRJT05TVEVDSE5JSyBHbWJICisJCQkJSEFSUkVUIFNUUkFTU0UgMQorCQkJCUQgNzI4MDAgRU5JTkdFTiAgCisJCQkJR0VSTUFOWQorCiswMC1FMC1CQiAgIChoZXgpCQlOQlggQ09SUE9SQVRJT04KKzAwRTBCQiAgICAgKGJhc2UgMTYpCQlOQlggQ09SUE9SQVRJT04KKwkJCQkxMDAgQlJJQ0tTVE9ORSBTUVVBUkUKKwkJCQlBTkRPVkVSIE1BIDAxODEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CQyAgIChoZXgpCQlTWU1PTiBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBFMEJDICAgICAoYmFzZSAxNikJCVNZTU9OIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTA3MDEgQ09SUE9SQVRFIERSLi1TVEUuICMyOTAKKwkJCQlTVEFGRk9SRCBUWCA3NzQ3NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQkQgICAoaGV4KQkJSU5URVJGQUNFIFNZU1RFTVMsIElOQy4KKzAwRTBCRCAgICAgKGJhc2UgMTYpCQlJTlRFUkZBQ0UgU1lTVEVNUywgSU5DLgorCQkJCTU4NTUgSU5URVJGQUNFIERSSVZFCisJCQkJQU5OIEFSQk9SIE1JIDQ4MTAzLTk1MTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUJFICAgKGhleCkJCUdFTlJPQ08gSU5URVJOQVRJT05BTCwgSU5DLgorMDBFMEJFICAgICAoYmFzZSAxNikJCUdFTlJPQ08gSU5URVJOQVRJT05BTCwgSU5DLgorCQkJCTI1NSBFTkRFUlMgQ09VUlQKKwkJCQlTTElOR0VSIFdJIDUzMDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1CRiAgIChoZXgpCQlUT1JSRU5UIE5FVFdPUktJTkcgVEVDSE5PTE9HSUVTIENPUlAuCiswMEUwQkYgICAgIChiYXNlIDE2KQkJVE9SUkVOVCBORVRXT1JLSU5HIFRFQ0hOT0xPR0lFUyBDT1JQLgorCQkJCTgxODEgUFJPRkVTU0lPTkFMIFBMQUNFCisJCQkJU1VJVEUgIzE2MAorCQkJCUxBTkRPVkVSIE1EIDIwNzg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1DMCAgIChoZXgpCQlTRUlXQSBFTEVDVFJJQyBNRkcuIENPLiwgTFRELgorMDBFMEMwICAgICAoYmFzZSAxNikJCVNFSVdBIEVMRUNUUklDIE1GRy4gQ08uLCBMVEQuCisJCQkJODYgVEFSQURBIFNISU4tSUtFLAorCQkJCUpPWU8sCisJCQkJS1lPVE8gUFJFRkVDVFVSRSAgCisJCQkJSkFQQU4KKworMDAtRTAtQzEgICAoaGV4KQkJTUVNT1JFWCBURUxFWCBKQVBBTiwgTFRELgorMDBFMEMxICAgICAoYmFzZSAxNikJCU1FTU9SRVggVEVMRVggSkFQQU4sIExURC4KKwkJCQlZQUVTVUdVQ0hJIEtBSUtBTiwgMS03LTIwCisJCQkJWUFFU1UsIENIVU8tS1UKKwkJCQlUT0tZTyAxMDMgIAorCQkJCUpBUEFOCisKKzAwLUUwLUMyICAgKGhleCkJCU5FQ1NZIFMucC5BLgorMDBFMEMyICAgICAoYmFzZSAxNikJCU5FQ1NZIFMucC5BLgorCQkJCVZJQSBMSVNCT05BIDI4CisJCQkJMzUwMjAgUEFET1ZBICAKKwkJCQlJVEFMWQorCiswMC1FMC1DMyAgIChoZXgpCQlTQUtBSSBTWVNURU0gREVWRUxPUE1FTlQgQ09SUC4KKzAwRTBDMyAgICAgKGJhc2UgMTYpCQlTQUtBSSBTWVNURU0gREVWRUxPUE1FTlQgQ09SUC4KKwkJCQlQT1JUVVMgQ0VOVEVSIEJMRC4sIDQtNDUtMQorCQkJCUVCSVNVSklNQS1DSE8sICBTQUtBSS1DSVRZCisJCQkJT1NBS0EtRlUsIDU5MCAgCisJCQkJSkFQQU4KKworMDAtRTAtQzQgICAoaGV4KQkJSE9STkVSIEVMRUNUUklDLCBJTkMuCiswMEUwQzQgICAgIChiYXNlIDE2KQkJSE9STkVSIEVMRUNUUklDLCBJTkMuCisJCQkJMTUyMSBFLiBXQVNISU5HVE9OIFNULgorCQkJCUlORElBTkFQT0xJUyBJTiA0NjIwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQzUgICAoaGV4KQkJQkNPTSBFTEVDVFJPTklDUyBJTkMuCiswMEUwQzUgICAgIChiYXNlIDE2KQkJQkNPTSBFTEVDVFJPTklDUyBJTkMuCisJCQkJOCBGTCwgTk8uIDY0LCBBTiBITyBST0FELCBTRUMuIDIKKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtQzYgICAoaGV4KQkJTElOSzJJVCwgTC5MLkMuCiswMEUwQzYgICAgIChiYXNlIDE2KQkJTElOSzJJVCwgTC5MLkMuCisJCQkJNDI1NiBCRUNLIEFWRU5VRQorCQkJCVNUVURJTyBDSVRZIENBIDkxNjA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1DNyAgIChoZXgpCQlFVVJPVEVDSCBTUkwKKzAwRTBDNyAgICAgKGJhc2UgMTYpCQlFVVJPVEVDSCBTUkwKKwkJCQlWSUEgSkFDT1BPIExJTlVTU0lPIDEKKwkJCQkzMzAzMCBBTUFST08gKFVEKSAgCisJCQkJSVRBTFkKKworMDAtRTAtQzggICAoaGV4KQkJVklSVFVBTCBBQ0NFU1MsIExURC4KKzAwRTBDOCAgICAgKGJhc2UgMTYpCQlWSVJUVUFMIEFDQ0VTUywgTFRELgorCQkJCVdPT0RTSURFIEhPVVNFLCBXSU5LRklFTEQsCisJCQkJV0lORFNPUiwgQkVSS1NISVJFIFNMNCAyRFggRU5HTEFORCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1FMC1DOSAgIChoZXgpCQlBdXRvbWF0ZWRMb2dpYyBDb3Jwb3JhdGlvbgorMDBFMEM5ICAgICAoYmFzZSAxNikJCUF1dG9tYXRlZExvZ2ljIENvcnBvcmF0aW9uCisJCQkJMTE1MCBST0JFUlRTIEJPVUxFVkFSRAorCQkJCUtFTk5FU0FXIEdBIDMwMTQ0LTM2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUNBICAgKGhleCkJCUJFU1QgREFUQSBQUk9EVUNUUworMDBFMENBICAgICAoYmFzZSAxNikJCUJFU1QgREFUQSBQUk9EVUNUUworCQkJCTIxODAwIE5PUkRIT0ZGIFNUUkVFVAorCQkJCUNIQVRTV09SVEggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUNCICAgKGhleCkJCVJFU09OLCBJTkMuCiswMEUwQ0IgICAgIChiYXNlIDE2KQkJUkVTT04sIElOQy4KKwkJCQkzMDAgTE9QRVogUk9BRAorCQkJCUdPTEVUQSBDQSA5MzExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQ0MgICAoaGV4KQkJSEVSTyBTWVNURU1TLCBMVEQuCiswMEUwQ0MgICAgIChiYXNlIDE2KQkJSEVSTyBTWVNURU1TLCBMVEQuCisJCQkJVEhFIEJBUk5FUywgQ09PTUJFTEFORFMgTEFORSwKKwkJCQlBRERMRVNUT05FLCBXRVlCUklER0UKKwkJCQlTVVJSRVkgS1QxNSAxSFkgRW5nbGFuZCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1FMC1DRCAgIChoZXgpCQlTRU5TSVMgQ09SUE9SQVRJT04KKzAwRTBDRCAgICAgKGJhc2UgMTYpCQlTRU5TSVMgQ09SUE9SQVRJT04KKwkJCQk1NzkzIFdJREVXQVRFUlMgUEFSS1dBWQorCQkJCURFV0lUVCBOWSAxMzIxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtQ0UgICAoaGV4KQkJQVJOCiswMEUwQ0UgICAgIChiYXNlIDE2KQkJQVJOCisJCQkJNTEsIFJVRSBHQVNUT04gTEFVUklBVQorCQkJCUYtOTM1MTIgTU9OVFJFVUlMIENFREVYICAKKwkJCQlGUkFOQ0UKKworMDAtRTAtQ0YgICAoaGV4KQkJSU5URUdSQVRFRCBERVZJQ0UgVEVDSE5PTE9HWSwgSU5DLgorMDBFMENGICAgICAoYmFzZSAxNikJCUlOVEVHUkFURUQgREVWSUNFIFRFQ0hOT0xPR1ksIElOQy4KKwkJCQk2MDI0IFNpbHZlciBDcmVlayBWYWxsZXkgUm9hZAorCQkJCVNhbiBKb3NlIENBIDk1MTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1EMCAgIChoZXgpCQlORVRTUEVFRCwgSU5DLgorMDBFMEQwICAgICAoYmFzZSAxNikJCU5FVFNQRUVELCBJTkMuCisJCQkJMTIzMDMgVEVDSE5PTE9HWSBCTFZELgorCQkJCUFVU1RJTiBUWCA3ODcyNworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRDEgICAoaGV4KQkJVEVMU0lTIExJTUlURUQKKzAwRTBEMSAgICAgKGJhc2UgMTYpCQlURUxTSVMgTElNSVRFRAorCQkJCTE2IEJBUk5FUyBXQUxMQUNFIFJPQUQKKwkJCQlGQVJFSEFNLCBIQU1QU0hJUkUgUE8xNSA1VFQgRU5HTEFORCAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1FMC1EMiAgIChoZXgpCQlWRVJTQU5FVCBDT01NVU5JQ0FUSU9OUywgSU5DLgorMDBFMEQyICAgICAoYmFzZSAxNikJCVZFUlNBTkVUIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJNjI4IE4uIERJQU1PTkQgQkFSIEJMVkQuCisJCQkJRElBTU9ORCBCQVIgQ0EgOTE3NjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUQzICAgKGhleCkJCURBVEVOVEVDSE5JSyBHbWJICiswMEUwRDMgICAgIChiYXNlIDE2KQkJREFURU5URUNITklLIEdtYkgKKwkJCQlUSEVSRVNJQU5VTUdBU1NFIDExCisJCQkJQS0xMDQwIFdJRU4gIAorCQkJCUFVU1RSSUEKKworMDAtRTAtRDQgICAoaGV4KQkJRVhDRUxMRU5UIENPTVBVVEVSCiswMEUwRDQgICAgIChiYXNlIDE2KQkJRVhDRUxMRU5UIENPTVBVVEVSCisJCQkJNTUxLCBNLksuTi4gUk9BRAorCQkJCUFMQU5EVVIsIENIRU5OQUkgNjAwMDE2ICAKKwkJCQlJTkRJQQorCiswMC1FMC1ENSAgIChoZXgpCQlFbXVsZXggQ29ycG9yYXRpb24KKzAwRTBENSAgICAgKGJhc2UgMTYpCQlFbXVsZXggQ29ycG9yYXRpb24KKwkJCQkzMzMzIFN1c2FuIFN0cmVldAorCQkJCUNvc3RhIE1lc2EgQ0EgOTI2MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUQ2ICAgKGhleCkJCUNPTVBVVEVSICYgQ09NTVVOSUNBVElPTiBSRVNFQVJDSCBMQUIuCiswMEUwRDYgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgJiBDT01NVU5JQ0FUSU9OIFJFU0VBUkNIIExBQi4KKwkJCQkKKwkJCQkxOTUgU0VDLjQsIENIVU5HIEhTSU5HIFJECisJCQkJQ0hVVFVORywgSFNJTkNIVSAgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswMC1FMC1ENyAgIChoZXgpCQlTVU5TSElORSBFTEVDVFJPTklDUywgSU5DLgorMDBFMEQ3ICAgICAoYmFzZSAxNikJCVNVTlNISU5FIEVMRUNUUk9OSUNTLCBJTkMuCisJCQkJNDY1NjAgRlJFTU9OVCBCTFZELiAtU1RFLiAjMTEzCisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRDggICAoaGV4KQkJTEFOQml0IENvbXB1dGVyLCBJbmMuCiswMEUwRDggICAgIChiYXNlIDE2KQkJTEFOQml0IENvbXB1dGVyLCBJbmMuCisJCQkJMTJGLCA1NTIgQ0hVTkcgSFNJQU8gRS4sIFJELgorCQkJCVNFQy4gNSwgVEFJUEVJIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtRDkgICAoaGV4KQkJVEFaTU8gQ08uLCBMVEQuCiswMEUwRDkgICAgIChiYXNlIDE2KQkJVEFaTU8gQ08uLCBMVEQuCisJCQkJNjE4NiBLSU5PS08sIElCQVJBLVNISQorCQkJCU9LQVlBTUEgNzE1ICAKKwkJCQlKQVBBTgorCiswMC1FMC1EQSAgIChoZXgpCQlBbGNhdGVsIE5vcnRoIEFtZXJpY2EgRVNECiswMEUwREEgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBOb3J0aCBBbWVyaWNhIEVTRAorCQkJCTI2ODAxIFdlc3QgQWdvdXJhIFJvYWQKKwkJCQlDYWxhYmFzYXMgQ0EgOTEzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLURCICAgKGhleCkJCVZpYVZpZGVvIENvbW11bmljYXRpb25zLCBJbmMuCiswMEUwREIgICAgIChiYXNlIDE2KQkJVmlhVmlkZW8gQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk4OTAwIFNIT0FMIENSRUVLIEJMVkQuCisJCQkJQkxERy4gIzMwMAorCQkJCUFVU1RJTiBUWCA3ODc1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtREMgICAoaGV4KQkJTkVYV0FSRSBDT1JQLgorMDBFMERDICAgICAoYmFzZSAxNikJCU5FWFdBUkUgQ09SUC4KKwkJCQk4MjUgU1RFV0FSVCBEUi4sICBTVEUgIzQKKwkJCQlTVU5OWVZBTEUgQ0EgOTQwODYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUREICAgKGhleCkJCVpFTklUSCBFTEVDVFJPTklDUyBDT1JQT1JBVElPTgorMDBFMEREICAgICAoYmFzZSAxNikJCVpFTklUSCBFTEVDVFJPTklDUyBDT1JQT1JBVElPTgorCQkJCTEwMDAgTUlMV0FVS0VFIEFWRU5VRQorCQkJCUdMRU5WSUVXIElMIDYwMDI1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1ERSAgIChoZXgpCQlEQVRBWCBOVgorMDBFMERFICAgICAoYmFzZSAxNikJCURBVEFYIE5WCisJCQkJUklOR0xBQU4gNTEKKwkJCQlCLTI2MDAgQkVSQ0hFTSAgCisJCQkJQkVMR0lVTQorCiswMC1FMC1ERiAgIChoZXgpCQlLRVlNSUxFIEdtYkgKKzAwRTBERiAgICAgKGJhc2UgMTYpCQlLRVlNSUxFIEdtYkgKKwkJCQlXb2hsZW5iZXJnc3RyLiAzCisJCQkJMzAxNzkgSGFubm92ZXIgCisJCQkJR0VSTUFOWQorCiswMC1FMC1FMCAgIChoZXgpCQlTSSBFTEVDVFJPTklDUywgTFRELgorMDBFMEUwICAgICAoYmFzZSAxNikJCVNJIEVMRUNUUk9OSUNTLCBMVEQuCisJCQkJMjgtMTYsIFNISU1PTUFSVUtPIDItQ0hPTUUsCisJCQkJVE9LWU8gMTQ2ICAKKwkJCQlKQVBBTgorCiswMC1FMC1FMSAgIChoZXgpCQlHMiBORVRXT1JLUywgSU5DLgorMDBFMEUxICAgICAoYmFzZSAxNikJCUcyIE5FVFdPUktTLCBJTkMuCisJCQkJMTQyIFNPLiBTQU5UQSBDUlVaIEFWRS4KKwkJCQlMT1MgR0FUT1MgQ0EgOTUwMzAtNjcwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRTIgICAoaGV4KQkJSU5OT1ZBIENPUlAuCiswMEUwRTIgICAgIChiYXNlIDE2KQkJSU5OT1ZBIENPUlAuCisJCQkJMzMyNSBTT1VUSCAxMTZUSCBTVFJFRVQKKwkJCQlTRUFUVExFIFdBIDk4MTY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1FMyAgIChoZXgpCQlTSy1FTEVLVFJPTklLIEdtYkgKKzAwRTBFMyAgICAgKGJhc2UgMTYpCQlTSy1FTEVLVFJPTklLIEdtYkgKKwkJCQlIRU1NRUxSQVRIRVJXRUcgMjAxCisJCQkJNTEzNzcgTEVWRVJLVVNFTiAgCisJCQkJR0VSTUFOWQorCiswMC1FMC1FNCAgIChoZXgpCQlGQU5VQyBST0JPVElDUyBOT1JUSCBBTUVSSUNBLCBJbmMuCiswMEUwRTQgICAgIChiYXNlIDE2KQkJRkFOVUMgUk9CT1RJQ1MgTk9SVEggQU1FUklDQSwgSW5jLgorCQkJCTM5MDAgVy4gSEFNTElOIFJELgorCQkJCVJPQ0hFU1RFUiBISUxMUyBNSSA0ODMwOS0zMjUzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1FNSAgIChoZXgpCQlDSU5DTyBORVRXT1JLUywgSU5DLgorMDBFMEU1ICAgICAoYmFzZSAxNikJCUNJTkNPIE5FVFdPUktTLCBJTkMuCisJCQkJNjYwMSBLT0xMIENFTlRFUiBQQVJLIFdBWQorCQkJCVNVSVRFICMxNDAKKwkJCQlQTEVBU0FOVE9OIENBIDk0NTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1FNiAgIChoZXgpCQlJTkNBQSBEQVRBQ09NIEIuVi4KKzAwRTBFNiAgICAgKGJhc2UgMTYpCQlJTkNBQSBEQVRBQ09NIEIuVi4KKwkJCQlQLk8uIEJPWCAyMTEKKwkJCQk3MzAwIEFFIEFQRUxET09STiAgCisJCQkJTkVUSEVSTEFORFMKKworMDAtRTAtRTcgICAoaGV4KQkJUkFZVEhFT04gRS1TWVNURU1TLCBJTkMuCiswMEUwRTcgICAgIChiYXNlIDE2KQkJUkFZVEhFT04gRS1TWVNURU1TLCBJTkMuCisJCQkJMTMwMSBFLiBDT0xMSU5TCisJCQkJUklDSEFSRFNPTiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRTggICAoaGV4KQkJR1JFVEFDT0RFUiBEYXRhIFN5c3RlbXMgQUcKKzAwRTBFOCAgICAgKGJhc2UgMTYpCQlHUkVUQUNPREVSIERhdGEgU3lzdGVtcyBBRworCQkJCUFMVEhBUkRTVFJBU1NFICAxNTAKKwkJCQlDSC04MTA1IFJFR0VOU0RPUkYgIAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLUUwLUU5ICAgKGhleCkJCURBVEEgTEFCUywgSU5DLgorMDBFMEU5ICAgICAoYmFzZSAxNikJCURBVEEgTEFCUywgSU5DLgorCQkJCTQ0NCBOT1JUSCBGUkVERVJJQ0sgQVZFLgorCQkJCVNVSVRFICMyNDAKKwkJCQlHQUlUSEVSU0JVUkcgTUQgMjA4NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUVBICAgKGhleCkJCUlOTk9WQVQgQ09NTVVOSUNBVElPTlMsIElOQy4KKzAwRTBFQSAgICAgKGJhc2UgMTYpCQlJTk5PVkFUIENPTU1VTklDQVRJT05TLCBJTkMuCisJCQkJMTI1NyBOLiBQTEFOTyBST0FECisJCQkJUklDSEFSRFNPTiBUWCA3NTA4MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRUIgICAoaGV4KQkJRElHSUNPTSBTWVNURU1TLCBJTkNPUlBPUkFURUQKKzAwRTBFQiAgICAgKGJhc2UgMTYpCQlESUdJQ09NIFNZU1RFTVMsIElOQ09SUE9SQVRFRAorCQkJCTE4OCBUT1BBWiBTVFJFRVQKKwkJCQlNSUxQSVRBUyBDQSA5NTAzNQorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRUMgICAoaGV4KQkJQ0VMRVNUSUNBIElOQy4KKzAwRTBFQyAgICAgKGJhc2UgMTYpCQlDRUxFU1RJQ0EgSU5DLgorCQkJCTg0NCBET04gTUlMTFMgUk9BRAorCQkJCU5PUlRIIFlPUksgIE9OVEFSSU8gTTNDIDFWNyAgCisJCQkJQ0FOQURBCisKKzAwLUUwLUVEICAgKGhleCkJCVNJTElDT00sIExURC4KKzAwRTBFRCAgICAgKGJhc2UgMTYpCQlTSUxJQ09NLCBMVEQuCisJCQkJOCBIQU5BR0VSIFNULgorCQkJCVAuTy4gQk9YIDIxNjQKKwkJCQlLRkFSLVNBVkEgNDQwMDAgIAorCQkJCUlTUkFFTAorCiswMC1FMC1FRSAgIChoZXgpCQlNQVJFTCBIRgorMDBFMEVFICAgICAoYmFzZSAxNikJCU1BUkVMIEhGCisJCQkJQXVzdHVyaHJhdW4gOQorCQkJCUdhcmRhYmFlciAgMjEwCisJCQkJSUNFTEFORAorCiswMC1FMC1FRiAgIChoZXgpCQlESU9ORVgKKzAwRTBFRiAgICAgKGJhc2UgMTYpCQlESU9ORVgKKwkJCQlQTyBCT1ggMzYwMworCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OC0zNjAzCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1GMCAgIChoZXgpCQlBQkxFUiBURUNITk9MT0dZLCBJTkMuCiswMEUwRjAgICAgIChiYXNlIDE2KQkJQUJMRVIgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTRGLCBOTy4gNTQgIFNFQy4gNAorCQkJCU1JTi1TSEVORyBFLiBSRC4KKwkJCQlUQUlQRUkgIAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDAtRTAtRjEgICAoaGV4KQkJVEhBVCBDT1JQT1JBVElPTgorMDBFMEYxICAgICAoYmFzZSAxNikJCVRIQVQgQ09SUE9SQVRJT04KKwkJCQk3MzQgRk9SRVNUIFNUUkVFVAorCQkJCU1BUkxCT1JPVUdIIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1GMiAgIChoZXgpCQlBUkxPVFRPIENPTU5FVCwgSU5DLgorMDBFMEYyICAgICAoYmFzZSAxNikJCUFSTE9UVE8gQ09NTkVULCBJTkMuCisJCQkJN0YtNCw1NSxUVU5HLUtVQU5HIFJPQUQKKwkJCQlIU0lOLUNIVSwgMzAwICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUUwLUYzICAgKGhleCkJCVdlYlNwcmludCBDb21tdW5pY2F0aW9ucywgSW5jLgorMDBFMEYzICAgICAoYmFzZSAxNikJCVdlYlNwcmludCBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTMwMjYgU0NPVFQgQkxWRC4KKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTAtRjQgICAoaGV4KQkJSU5TSURFIFRlY2hub2xvZ3kgQS9TCiswMEUwRjQgICAgIChiYXNlIDE2KQkJSU5TSURFIFRlY2hub2xvZ3kgQS9TCisJCQkJVkVOTElHSEVEU1ZFSiA2CisJCQkJREstMjk3MCBIT0VSU0hPTE0gIAorCQkJCURFTk1BUksKKworMDAtRTAtRjUgICAoaGV4KQkJVEVMRVMgQUcKKzAwRTBGNSAgICAgKGJhc2UgMTYpCQlURUxFUyBBRworCQkJCURPVkVTVFIuIDItNAorCQkJCTEwNTg3IEJFUkxJTiAgCisJCQkJR0VSTUFOWQorCiswMC1FMC1GNiAgIChoZXgpCQlERUNJU0lPTiBFVVJPUEUKKzAwRTBGNiAgICAgKGJhc2UgMTYpCQlERUNJU0lPTiBFVVJPUEUKKwkJCQkzLCBydWUgZGUgTGF0dHJlIGRlIFRhc3NpZ255CisJCQkJODUxNzAgU0FJTlQgREVOSVMgTEEgQ0hFVkFTU0UgIAorCQkJCUZSQU5DRQorCiswMC1FMC1GNyAgIChoZXgpCQlDSVNDTyBTWVNURU1TLCBJTkMuCiswMEUwRjcgICAgIChiYXNlIDE2KQkJQ0lTQ08gU1lTVEVNUywgSU5DLgorCQkJCTE3MCBXLiBUQVNNQU4gRFJJVkUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzNC0xNzA2CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1GOCAgIChoZXgpCQlESUNOQSBDT05UUk9MIEFCCiswMEUwRjggICAgIChiYXNlIDE2KQkJRElDTkEgQ09OVFJPTCBBQgorCQkJCVNURU5ZWEVHQVRBTiAyMSBDCisJCQkJMjEzIDc2IE1BTE1PRSAgCisJCQkJU1dFREVOCisKKzAwLUUwLUY5ICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRTBGOSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUZBICAgKGhleCkJCVRSTCBURUNITk9MT0dZLCBMVEQuCiswMEUwRkEgICAgIChiYXNlIDE2KQkJVFJMIFRFQ0hOT0xPR1ksIExURC4KKwkJCQlTSEFOTk9OIFdBWSwgQVNIQ0hVUkNILAorCQkJCVRFV0tFU0JVUlksIEdMT1MuIEdMMjAgOE5EICAKKwkJCQlVTklURUQgS0lOR0RPTQorCiswMC1FMC1GQiAgIChoZXgpCQlMRUlHSFRST05JWCwgSU5DLgorMDBFMEZCICAgICAoYmFzZSAxNikJCUxFSUdIVFJPTklYLCBJTkMuCisJCQkJMjMzMCBKQVJDTyBEUi4KKwkJCQlIT0xUIE1JIDQ4ODQyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1FMC1GQyAgIChoZXgpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorMDBFMEZDICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLCBMVEQuCisJCQkJS0VGQSBST0FELCBTQ0lFTkNFLUJBU0VEIElORFVTVFJJQUwgUEFSSworCQkJCU5BTlNIQU4gRElTVFJJQ1QsCisJCQkJU0hFTlpIRU4gNTE4MDU3ICAKKwkJCQlDSElOQQorCiswMC1FMC1GRCAgIChoZXgpCQlBLVRSRU5EIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCiswMEUwRkQgICAgIChiYXNlIDE2KQkJQS1UUkVORCBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCTEwRiwgTk8uIDc1LCBIU0lOIFRBSSBXVSBSRC4sCisJCQkJU0VDLiAxLCBIU0kgQ0hJSCwKKwkJCQlUQUlQRUkgSFNJRU4gMjIxICAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzAwLUUwLUZFICAgKGhleCkJCUNJU0NPIFNZU1RFTVMsIElOQy4KKzAwRTBGRSAgICAgKGJhc2UgMTYpCQlDSVNDTyBTWVNURU1TLCBJTkMuCisJCQkJMTcwIFcuIFRBU01BTiBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0LTE3MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUwLUZGICAgKGhleCkJCVNFQ1VSSVRZIERZTkFNSUNTIFRFQ0hOT0xPR0lFUywgSW5jLgorMDBFMEZGICAgICAoYmFzZSAxNikJCVNFQ1VSSVRZIERZTkFNSUNTIFRFQ0hOT0xPR0lFUywgSW5jLgorCQkJCTIwIENST1NCWSBEUklWRQorCQkJCUJFREZPUkQgTUEgMDE3MzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzAwLUUxLTc1ICAgKGhleCkJCUFLLVN5c3RlbXMgTHRkCiswMEUxNzUgICAgIChiYXNlIDE2KQkJQUstU3lzdGVtcyBMdGQKKwkJCQlvZmYgNjIsIDI3LzI5IFBhdmxvdnNrYXlhIHN0ci4KKwkJCQlNb3Njb3cgIDExNTA5MworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCiswMC1FNi1EMyAgIChoZXgpCQlOSVhET1JGIENPTVBVVEVSIENPUlAuCiswMEU2RDMgICAgIChiYXNlIDE2KQkJTklYRE9SRiBDT01QVVRFUiBDT1JQLgorCQkJCTI1MjAgTUlTU0lPTiBDT0xMRUdFIFJPQUQKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRTgtQUIgICAoaGV4KQkJTWVnZ2l0dCBUcmFpbmluZyBTeXN0ZW1zLCBJbmMuCiswMEU4QUIgICAgIChiYXNlIDE2KQkJTWVnZ2l0dCBUcmFpbmluZyBTeXN0ZW1zLCBJbmMuCisJCQkJMjk2IEJyb2dkb24gUmQKKwkJCQlTdXdhbmVlIEdBIDMwMDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMC1GMC01MSAgIChoZXgpCQlLV0IgR21iaAorMDBGMDUxICAgICAoYmFzZSAxNikJCUtXQiBHbWJoCisJCQkJSW5kdXN0cmllc3RyYd9lIDIzNQorCQkJCVN0LiBNYXJnYXJldGhlbiBTdHlyaWEgODMyMQorCQkJCUFVU1RSSUEKKworMDAtRjQtQjkgICAoaGV4KQkJQXBwbGUsIEluYy4KKzAwRjRCOSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgaW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDAtRjgtNjAgICAoaGV4KQkJUFQuIFBhbmdndW5nIEVsZWN0cmljIENpdHJhYnVhbmEKKzAwRjg2MCAgICAgKGJhc2UgMTYpCQlQVC4gUGFuZ2d1bmcgRWxlY3RyaWMgQ2l0cmFidWFuYQorCQkJCUpsLiBSYXlhIFdhcnUgbm8uIDEKKwkJCQlTaWRvYXJqbyBKYXdhIFRpbXVyIDYxMjU2CisJCQkJSU5ET05FU0lBCisKKzAwLUZBLTNCICAgKGhleCkJCUNMT09TIEVMRUNUUk9OSUMgR01CSAorMDBGQTNCICAgICAoYmFzZSAxNikJCUNMT09TIEVMRUNUUk9OSUMgR01CSAorCQkJCUphbWJlIGR1Y29tbXVuIDgKKwkJCQlMRSBMT0NMRSAgMjQwMAorCQkJCVNXSVRaRVJMQU5ECisKKzAwLUZDLTU4ICAgKGhleCkJCVdlYlNpbGljb24gTHRkLgorMDBGQzU4ICAgICAoYmFzZSAxNikJCVdlYlNpbGljb24gTHRkLgorCQkJCTI1LCBIYWJhcnplbCBTdC4sCisJCQkJVGVsLUF2aXYgIDY5NzEwCisJCQkJSVNSQUVMCisKKzAwLUZDLTcwICAgKGhleCkJCUludHJlcGlkIENvbnRyb2wgU3lzdGVtcywgSW5jLgorMDBGQzcwICAgICAoYmFzZSAxNikJCUludHJlcGlkIENvbnRyb2wgU3lzdGVtcywgSW5jLgorCQkJCTMxNjAxIFJlc2VhcmNoIFBhcmsgRHIuCisJCQkJTWFkaXNvbiBIZWlnaHRzIE1JIDQ4MDcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswMi0wNy0wMSAgIChoZXgpCQlSQUNBTC1EQVRBQ09NCiswMjA3MDEgICAgIChiYXNlIDE2KQkJUkFDQUwtREFUQUNPTQorCQkJCUxBTiBJTlRFUk5FVFdPUktJTkcgRElWSVNJT04KKwkJCQkxNTUgU1dBTlNPTiBST0FECisJCQkJQk9YQk9ST1VHSCBNQSAwMTcxOQorCQkJCVVOSVRFRCBTVEFURVMKKworMDItMUMtN0MgICAoaGV4KQkJUEVSUSBTWVNURU1TIENPUlBPUkFUSU9OCiswMjFDN0MgICAgIChiYXNlIDE2KQkJUEVSUSBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJMjYwMCBMSUJFUlRZIEFWRU5VRQorCQkJCVAuTy4gQk9YIDI2MDAKKwkJCQlQSVRUU0JVUkdIIFBBIDE1MjMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswMi02MC04NiAgIChoZXgpCQlMT0dJQyBSRVBMQUNFTUVOVCBURUNILiBMVEQuCiswMjYwODYgICAgIChiYXNlIDE2KQkJTE9HSUMgUkVQTEFDRU1FTlQgVEVDSC4gTFRELgorCQkJCTE0IEFSS1dSSUdIVCBST0FECisJCQkJUkVBRElORyBCRVJLUyBSRzJPTFMKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAyLTYwLThDICAgKGhleCkJCTNDT00gQ09SUE9SQVRJT04KKzAyNjA4QyAgICAgKGJhc2UgMTYpCQkzQ09NIENPUlBPUkFUSU9OCisJCQkJMjA4MSBOLiBTSE9STElORSBCTFZELgorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzAyLTcwLTAxICAgKGhleCkJCVJBQ0FMLURBVEFDT00KKzAyNzAwMSAgICAgKGJhc2UgMTYpCQlSQUNBTC1EQVRBQ09NCisJCQkJTEFOIElOVEVSTkVUV09SS0lORyBESVZJU0lPTgorCQkJCTE1NSBTV0FOU09OIFJPQUQKKwkJCQlCT1hCT1JPVUdIIE1BIDAxNzE5CisJCQkJVU5JVEVEIFNUQVRFUworCiswMi03MC1CMCAgIChoZXgpCQlNL0EtQ09NIElOQy4gQ09NUEFOSUVTCiswMjcwQjAgICAgIChiYXNlIDE2KQkJTS9BLUNPTSBJTkMuIENPTVBBTklFUworCQkJCTExNzE3IEVYUExPUkFUSU9OIExBTkUKKwkJCQlHRVJNQU5UT1dOIE1EIDIwNzY3CisJCQkJVU5JVEVEIFNUQVRFUworCiswMi03MC1CMyAgIChoZXgpCQlEQVRBIFJFQ0FMTCBMVEQKKzAyNzBCMyAgICAgKGJhc2UgMTYpCQlEQVRBIFJFQ0FMTCBMVEQKKwkJCQlTT05ERVMgUExBQ0UKKwkJCQlET1JLSU5HIFNVUlJFWSBSSDQgM0VGCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswMi05RC04RSAgIChoZXgpCQlDQVJESUFDIFJFQ09SREVSUyBJTkMuCiswMjlEOEUgICAgIChiYXNlIDE2KQkJQ0FSRElBQyBSRUNPUkRFUlMgSU5DLgorCQkJCTM0IFNDQVJCT1JPIFJECisJCQkJTE9ORE9OIE40IDRMIFUKKwkJCQlVTklURUQgS0lOR0RPTQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzAyLUFBLTNDICAgKGhleCkJCU9MSVZFVFRJIFRFTEVDT01NIFNQQSAoT0xURUNPKQorMDJBQTNDICAgICAoYmFzZSAxNikJCU9MSVZFVFRJIFRFTEVDT01NIFNQQSAoT0xURUNPKQorCQkJCTIwMzAwIFNURVZFTlMgIENSRUVLIEJMVkQuCisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswMi1CQi0wMSAgIChoZXgpCQlPQ1RPVEhPUlBFIENPUlAuCiswMkJCMDEgICAgIChiYXNlIDE2KQkJT0NUT1RIT1JQRSBDT1JQLgorCQkJCTI4NSBXRVNUIEdSRUVOIFNUUkVFVAorCQkJCVBBU0FERU5BIENBIDkxMTA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswMi1DMC04QyAgIChoZXgpCQkzQ09NIENPUlBPUkFUSU9OCiswMkMwOEMgICAgIChiYXNlIDE2KQkJM0NPTSBDT1JQT1JBVElPTgorCQkJCTU0MDAgQkFZRlJPTlQgUExBWkEKKwkJCQlQLk8uIEJPWCA1ODE0NQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCiswMi1DRi0xQyAgIChoZXgpCQlDT01NVU5JQ0FUSU9OIE1BQ0hJTkVSWSBDT1JQLgorMDJDRjFDICAgICAoYmFzZSAxNikJCUNPTU1VTklDQVRJT04gTUFDSElORVJZIENPUlAuCisJCQkJMTIyNiBBTkFDQVBBCisJCQkJU0FOVEEgQkFSQkFSQSBDQSA5MzEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDItRTYtRDMgICAoaGV4KQkJTklYRE9SRiBDT01QVVRFUiBDT1JQT1JBVElPTgorMDJFNkQzICAgICAoYmFzZSAxNikJCU5JWERPUkYgQ09NUFVURVIgQ09SUE9SQVRJT04KKwkJCQlOSVhET1JGIFRFQ0hOT0xPR1kgQ0VOVEVSCisJCQkJMjUyMCBNSVNTSU9OIENPTExFR0UgQkxWRAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswNC0wQS04MyAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudAorMDQwQTgzICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50CisJCQkJVmlhIFRyZW50bywgMzAKKwkJCQlWaW1lbnJjYXRlIE1CIDIwNTkKKwkJCQlJVEFMWQorCiswNC0wQS1FMCAgIChoZXgpCQlYTUlUIEFHIENPTVBVVEVSIE5FVFdPUktTCiswNDBBRTAgICAgIChiYXNlIDE2KQkJWE1JVCBBRyBDT01QVVRFUiBORVRXT1JLUworCQkJCTExIEFWRU5VRSBERSBCQVVNRVRURVMKKwkJCQkxMDIwIFJFTkFOUworCQkJCVNXSVRaRVJMQU5ECisJCQkJU1dJVFpFUkxBTkQKKworMDQtMEMtQ0UgICAoaGV4KQkJQXBwbGUsIEluYy4KKzA0MENDRSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgaW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtMEUtQzIgICAoaGV4KQkJVmlld1NvbmljIE1vYmlsZSBDaGluYSBMaW1pdGVkCiswNDBFQzIgICAgIChiYXNlIDE2KQkJVmlld1NvbmljIE1vYmlsZSBDaGluYSBMaW1pdGVkCisJCQkJUm9vbSA2MDEsIFRoZSBHYXRlIFRvd2VyIEIsIE5vLjE5LCBaaG9uZ2d1YW5jdW4gU3RyZWV0LCBIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgwCisJCQkJQ0hJTkEKKworMDQtMTgtMEYgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCiswNDE4MEYgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzA0LTE4LUI2ICAgKGhleCkJCVBSSVZBVEUKKzA0MThCNiAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMDQtMUQtMTAgICAoaGV4KQkJRHJlYW0gV2FyZSBJbmMuCiswNDFEMTAgICAgIChiYXNlIDE2KQkJRHJlYW0gV2FyZSBJbmMuCisJCQkJNS0yMy03IE1hc3VnYXRhLCBUYW1hLWt1LAorCQkJCUthd2FzYWtpIEthbmFnYXdhIDIxNC0wMDMyCisJCQkJSkFQQU4KKworMDQtMUUtNjQgICAoaGV4KQkJQXBwbGUsIEluYworMDQxRTY0ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA0LTIwLTlBICAgKGhleCkJCVBhbmFzb25pYyBBVkMgTmV0d29ya3MgQ29tcGFueQorMDQyMDlBICAgICAoYmFzZSAxNikJCVBhbmFzb25pYyBBVkMgTmV0d29ya3MgQ29tcGFueQorCQkJCTEtMTUgTWF0c3VvLWNobworCQkJCUthZG9tYSBDaXR5IE9zYWthIDU3MS04NTA0CisJCQkJSkFQQU4KKworMDQtMjItMzQgICAoaGV4KQkJV2lyZWxlc3MgU3RhbmRhcmQgRXh0ZW5zaW9ucworMDQyMjM0ICAgICAoYmFzZSAxNikJCVdpcmVsZXNzIFN0YW5kYXJkIEV4dGVuc2lvbnMKKwkJCQkxMzIyIENyb3NzbWFuIGF2ZW51ZQorCQkJCVN1bm55dmFsZSBDYWxpZm9ybmlhIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswNC0yNi0wNSAgIChoZXgpCQlHRlIgR2VzZWxsc2NoYWZ0IGb8ciBSZWdlbHVuZ3N0ZWNobmlrIHVuZCBFbmVyZ2llZWluc3BhcnVuZyBtYkgKKzA0MjYwNSAgICAgKGJhc2UgMTYpCQlHRlIgR2VzZWxsc2NoYWZ0IGb8ciBSZWdlbHVuZ3N0ZWNobmlrIHVuZCBFbmVyZ2llZWluc3BhcnVuZyBtYkgKKwkJCQlLYXBlbGxlbndlZyA0MgorCQkJCVZlcmwgIDMzNDE1CisJCQkJR0VSTUFOWQorCiswNC0yQi1CQiAgIChoZXgpCQlQaWNvQ0VMQSwgSW5jLgorMDQyQkJCICAgICAoYmFzZSAxNikJCVBpY29DRUxBLCBJbmMuCisJCQkJMy04LTMzLCBNb21vY2hpaGFtYQorCQkJCVNhd2FyYS1rdQorCQkJCUZ1a3Vva2EtY2l0eSBGdWt1b2thIDgxNC0wMDAxCisJCQkJSkFQQU4KKworMDQtMkYtNTYgICAoaGV4KQkJQVRPQ1MgKFNoZW56aGVuKSBMVEQKKzA0MkY1NiAgICAgKGJhc2UgMTYpCQlBVE9DUyAoU2hlbnpoZW4pIExURAorCQkJCTQvRi4sIEJ1aWxkaW5nIDEwLCBUb25nZnV5dSBJbmR1c3RyeSBab25lLCAKKwkJCQlTaGVuemhlbiAgCisJCQkJQ0hJTkEKKworMDQtMzItRjQgICAoaGV4KQkJUGFydHJvbgorMDQzMkY0ICAgICAoYmFzZSAxNikJCVBhcnRyb24KKwkJCQkyMi02LCBTZW9rd29vLWRvbmcKKwkJCQlId2FzZW9uZy1zaSBHeWVvbmdnaS1kbyA0NDUtMTcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzA0LTM2LTA0ICAgKGhleCkJCUd5ZXlvdW5nIEkmVAorMDQzNjA0ICAgICAoYmFzZSAxNikJCUd5ZXlvdW5nIEkmVAorCQkJCTZGLCBXb29zdW5nIEJsZGcuIDEwMDAtMSwgRGFlY2hpLWRvbmcKKwkJCQlHYW5nbmFtLWd1LAorCQkJCVNlb3VsIDEzNS01MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDQtNDYtNjUgICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCiswNDQ2NjUgICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJMS0xMC0xLCBIaWdhc2hpa290YXJpCisJCQkJTmFnYW9rYWt5by1zaGkgS3lvdG8gNjE3LTg1NTUKKwkJCQlKQVBBTgorCiswNC00Ri1BQSAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzA0NEZBQSAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCiswNC01NC01MyAgIChoZXgpCQlBcHBsZSwgSW5jLgorMDQ1NDUzICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBjQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtNTUtQ0EgICAoaGV4KQkJQnJpVmlldyAoWGlhbWVuKSBDb3JwLgorMDQ1NUNBICAgICAoYmFzZSAxNikJCUJyaVZpZXcgKFhpYW1lbikgQ29ycC4KKwkJCQlOTy4xOTk4IFdlc3Qgb2YgRmFuZ3NoYW4gUm9hZCxYaWFuZyBBbiBCcmFuY2gsVG9yY2ggSGktdGVjaCBsbmR1c3RyaWFsIERldmVsb3BtZW50IFpvbmUsCisJCQkJWGlhbWVuIGNpdHkgRnVqaWFuIFByb3ZpbmNlIDM2MTEwMgorCQkJCUNISU5BCisKKzA0LTVBLTk1ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCiswNDVBOTUgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlZcnR0aXBlbGxvbnRpZSA2CisJCQkJT3VsdSAgOTAyMzAKKwkJCQlGSU5MQU5ECisKKzA0LTVDLTA2ICAgKGhleCkJCVptb2RvIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzA0NUMwNiAgICAgKGJhc2UgMTYpCQlabW9kbyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJMTQwMSBJbnRlcnN0YXRlIERyCisJCQkJQ2hhbXBhaWduIElMIDYxODIyCisJCQkJVU5JVEVEIFNUQVRFUworCiswNC01RC01NiAgIChoZXgpCQljYW10cm9uIGluZHVzdHJpYWwgaW5jLgorMDQ1RDU2ICAgICAoYmFzZSAxNikJCWNhbXRyb24gaW5kdXN0cmlhbCBpbmMuCisJCQkJNUYsIEt1ZW0tQWggQi9ELCAzMS0zLCBLYXJhay1kb25nLCBTb25ncGEtZ3UKKwkJCQlTZW91bCAgMTM4LTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswNC02Mi1ENyAgIChoZXgpCQlBTFNUT00gSFlEUk8gRlJBTkNFCiswNDYyRDcgICAgIChiYXNlIDE2KQkJQUxTVE9NIEhZRFJPIEZSQU5DRQorCQkJCTgyIEF2ZW51ZSBMZW9uIEJsdW0KKwkJCQlHUkVOT0JMRSAgMzgwNDEKKwkJCQlGUkFOQ0UKKworMDQtNjMtRTAgICAoaGV4KQkJTm9tZSBPeQorMDQ2M0UwICAgICAoYmFzZSAxNikJCU5vbWUgT3kKKwkJCQlMdW5raW50aWUgOQorCQkJCU91bHVuc2FsbyBPdWx1biBs5ORuaSA5MDQ2MAorCQkJCUZJTkxBTkQKKworMDQtNkQtNDIgICAoaGV4KQkJQnJ5c3RvbiBMdGQuCiswNDZENDIgICAgIChiYXNlIDE2KQkJQnJ5c3RvbiBMdGQuCisJCQkJUC5PLiBCb3ggMjE3MAorCQkJCTY3NyBOZWFsIERyaXZlCisJCQkJUGV0ZXJib3JvdWdoIE9udGFyaW8gSzlKICA3WTQKKwkJCQlDQU5BREEKKworMDQtNzAtQkMgICAoaGV4KQkJR2xvYmFsc3RhciBJbmMuCiswNDcwQkMgICAgIChiYXNlIDE2KQkJR2xvYmFsc3RhciBJbmMuCisJCQkJNDYxIFMgTWlscGl0YXMgQmx2ZAorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCiswNC03NC1BMSAgIChoZXgpCQlBbGlnZXJhIEVxdWlwYW1lbnRvcyBEaWdpdGFpcyBMdGRhCiswNDc0QTEgICAgIChiYXNlIDE2KQkJQWxpZ2VyYSBFcXVpcGFtZW50b3MgRGlnaXRhaXMgTHRkYQorCQkJCUF2LiBQYXJhIDMzMCAvIDMwMgorCQkJCVBvcnRvIEFsZWdyZSBSUyA5MDI0MC01OTAKKwkJCQlCUkFaSUwKKworMDQtNzUtRjUgICAoaGV4KQkJQ1NTVAorMDQ3NUY1ICAgICAoYmFzZSAxNikJCUNTU1QKKwkJCQlCdWlsZGluZyA2LCBDU1NUIGluZHVzdHJpYWwgcGFyaywgVG9uZyBmdXl1IEluZHVzdHJpYWwgem9uZQorCQkJCUd1YW5nbWluIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwNworCQkJCUNISU5BCisKKzA0LTc2LTZFICAgKGhleCkJCUFMUFMgQ28sLiBMdGQuCiswNDc2NkUgICAgIChiYXNlIDE2KQkJQUxQUyBDbywuIEx0ZC4KKwkJCQk2LTMtMzYgRnVydWthd2FuYWthemF0bywKKwkJCQlPc2FraSBNaXlhZ2ktcHJlZiA5ODktNjE4MQorCQkJCUpBUEFOCisKKzA0LTdELTdCICAgKGhleCkJCVF1YW50YSBDb21wdXRlciBJbmMuCiswNDdEN0IgICAgIChiYXNlIDE2KQkJUXVhbnRhIENvbXB1dGVyIEluYy4KKwkJCQkyMTEsIFdlbiBId2EgMm5kIFJkLiwgS3VlaSBTaGFuLCBUYW8gWXVhbiwgCisJCQkJVGFpcGVpICAzMzM3NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDQtODEtQUUgICAoaGV4KQkJQ2xhY2sgQ29ycG9yYXRpb24KKzA0ODFBRSAgICAgKGJhc2UgMTYpCQlDbGFjayBDb3Jwb3JhdGlvbgorCQkJCTQ0NjIgRHVyYWZvcm0gTGFuZQorCQkJCVdpbmRzb3IgV0kgNTM1OTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzA0LTg4LThDICAgKGhleCkJCUVpZmVsd2VyayBCdXRsZXIgU3lzdGVtZSBHbWJICiswNDg4OEMgICAgIChiYXNlIDE2KQkJRWlmZWx3ZXJrIEJ1dGxlciBTeXN0ZW1lIEdtYkgKKwkJCQlFaWZlbHdlcmtzdHJhc3NlIDEKKwkJCQlNYWxiZXJnd2VpY2ggIDU0NjU1CisJCQkJR0VSTUFOWQorCiswNC04QS0xNSAgIChoZXgpCQlBdmF5YSwgSW5jCiswNDhBMTUgICAgIChiYXNlIDE2KQkJQXZheWEsIEluYworCQkJCTIxMSBNb3VudCBBaXJ5IFJvYWQgCisJCQkJQmFza2luZyBSaWRnZSBOSiAwNzkyMC0yMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiswNC04Qi00MiAgIChoZXgpCQlTa3NwcnVjZSBUZWNobm9sb2d5IExpbWl0ZWQKKzA0OEI0MiAgICAgKGJhc2UgMTYpCQlTa3NwcnVjZSBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlIYWlkaWFuLCBBbm5pbmd6aHVhbmcgd2VzdCByb2FkICM5CisJCQkJYnVpbGRpbmcgMjksIEppbmd0YWlmdWRpIHBsYXphCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMDQtOTQtQTEgICAoaGV4KQkJQ0FUQ0ggVEhFIFdJTkQgSU5DCiswNDk0QTEgICAgIChiYXNlIDE2KQkJQ0FUQ0ggVEhFIFdJTkQgSU5DCisJCQkJMTA3ODEgSkFNRVMgUEFZTkUgQ09VUlQKKwkJCQlNQU5BU1NBUyBWQSAyMDExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtOTgtRjMgICAoaGV4KQkJQUxQUyBFbGVjdHJpYyBDbywuIEx0ZC4KKzA0OThGMyAgICAgKGJhc2UgMTYpCQlBTFBTIEVsZWN0cmljIENvLC4gTHRkLgorCQkJCTYtMSBOSVNISURBCisJCQkJS0FLVURBIE1JWUFHSSBQUkVGIDk4NzYtODUwMQorCQkJCUpBUEFOCisKKzA0LTlDLTYyICAgKGhleCkJCUJNVCBNZWRpY2FsIFRlY2hub2xvZ3kgcy5yLm8uCiswNDlDNjIgICAgIChiYXNlIDE2KQkJQk1UIE1lZGljYWwgVGVjaG5vbG9neSBzLnIuby4KKwkJCQlDZWpsIDUwCisJCQkJQnJubyAgNjU2NjAKKwkJCQlDWkVDSCBSRVBVQkxJQworCiswNC05Ri04MSAgIChoZXgpCQlTaW1lbmEsIExMQworMDQ5RjgxICAgICAoYmFzZSAxNikJCVNpbWVuYSwgTExDCisJCQkJNDYwMzAgTWFuZWtpbiBQbGF6YQorCQkJCXN1aXRlIDE1MAorCQkJCVN0ZXJsaW5nIFZpcmdpbmlhIDIwMTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswNC1BMy1GMyAgIChoZXgpCQlFbWljb24KKzA0QTNGMyAgICAgKGJhc2UgMTYpCQlFbWljb24KKwkJCQlzaGVsa292c2tvZSBzaG9zc2UsIDc3CisJCQkJTW9zY293ICAxMDcyNDEKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworMDQtQTgtMkEgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzA0QTgyQSAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1ICA5MDIzMAorCQkJCUZJTkxBTkQKKworMDQtQjMtQjYgICAoaGV4KQkJU2VhbWFwIChVSykgTHRkCiswNEIzQjYgICAgIChiYXNlIDE2KQkJU2VhbWFwIChVSykgTHRkCisJCQkJVW5pdCAzNCwgVGhlIE1hbHRpbmdzCisJCQkJQ2hhcmx0b24gRXN0YXRlCisJCQkJU2hlcHRvbiBNYWxsZXQgU29tZXJzZXQgQkE0IDVRRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzA0LUI0LTY2ICAgKGhleCkJCUJTUCBDby4sIEx0ZC4KKzA0QjQ2NiAgICAgKGJhc2UgMTYpCQlCU1AgQ28uLCBMdGQuCisJCQkJMTYyLTEwCisJCQkJR29uZ2RhbiBEb25nCisJCQkJR3VtaSBHeWV1bmdzYW5nYnVrIERvIDczMC05MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDQtQzAtNUIgICAoaGV4KQkJVGlnbyBFbmVyZ3kKKzA0QzA1QiAgICAgKGJhc2UgMTYpCQlUaWdvIEVuZXJneQorCQkJCTE3MCBLbm93bGVzIERyCisJCQkJTG9zIEdhdG9zIENBIDk1MDMyCisJCQkJVU5JVEVEIFNUQVRFUworCiswNC1DMC02RiAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCiswNEMwNkYgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyOQorCQkJCUNISU5BCisKKzA0LUMxLUI5ICAgKGhleCkJCUZpYmVyaG9tZSBUZWxlY29tbXVuaWNhdGlvbiBUZWNoLkNvLixMdGQuCiswNEMxQjkgICAgIChiYXNlIDE2KQkJRmliZXJob21lIFRlbGVjb21tdW5pY2F0aW9uIFRlY2guQ28uLEx0ZC4KKwkJCQlOby41IERvbmdYaW4gUm9hZAorCQkJCUhvbmdzYW4gRGlzdHJpY3QKKwkJCQlXdWhhbiBDaXR5IEh1YmVpIFByb3ZpbmNlIDQzMDA3NAorCQkJCUNISU5BCisKKzA0LUM1LUE0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzA0QzVBNCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA0LUM4LTgwICAgKGhleCkJCVNhbXRlYyBJbmMKKzA0Qzg4MCAgICAgKGJhc2UgMTYpCQlTYW10ZWMgSW5jCisJCQkJNTIwIFBhcmsgRWFzdCBCbHZkCisJCQkJTmV3IEFsYmFueSBJTiA0NzE1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtQ0UtMTQgICAoaGV4KQkJV2lsb2NpdHkgTFRELgorMDRDRTE0ICAgICAoYmFzZSAxNikJCVdpbG9jaXR5IExURC4KKwkJCQkyMSBCYXJla2V0IFN0LgorCQkJCU5vcnRoIEluZHVzdHJpYWwgUGFyaworCQkJCUNhZXNhcmVhIElzcmFlbCAzODkwMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtRDctODMgICAoaGV4KQkJWSZIIEUmQyBDby4sTFRELgorMDRENzgzICAgICAoYmFzZSAxNikJCVkmSCBFJkMgQ28uLExURC4KKwkJCQkxNTAxIERhZXJ1bmcgVGVjaG5vdG93biAyMjQtNQorCQkJCUd3YW55YW5nLWRvbmcsIERvbmdhbi1rdQorCQkJCUFueWFuZy1jaXR5IEd5ZW9uZ2dpLWRvIDQzMS0wNjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDQtREQtNEMgICAoaGV4KQkJSVBCbGF6ZQorMDRERDRDICAgICAoYmFzZSAxNikJCUlQQmxhemUKKwkJCQlPbGR2ZWplbiA0CisJCQkJRnJlZGVuc2JvcmcgREsgMzQ4MAorCQkJCURFTk1BUksKKworMDQtRTAtQzQgICAoaGV4KQkJVFJJVU1QSC1BRExFUiBBRworMDRFMEM0ICAgICAoYmFzZSAxNikJCVRSSVVNUEgtQURMRVIgQUcKKwkJCQlIVU5ESU5HU1RSQUJFIDExQgorCQkJCTg1MDAgTlVSTkJVUkcgODAKKwkJCQlHRVJNQU5ZCisJCQkJR0VSTUFOWQorCiswNC1FMS1DOCAgIChoZXgpCQlJTVMgU29sdef1ZXMgZW0gRW5lcmdpYSBMdGRhLgorMDRFMUM4ICAgICAoYmFzZSAxNikJCUlNUyBTb2x15/VlcyBlbSBFbmVyZ2lhIEx0ZGEuCisJCQkJQXYuIEJlcm5hcmRpbm8gU2lsdmVpcmEgUGFzdG9yaXphLCA3MjAKKwkJCQlQb3J0byBBbGVncmUgUlMgOTExNjAtMzEwCisJCQkJQlJBWklMCisKKzA0LUUyLUY4ICAgKGhleCkJCUFFUCBzcmwKKzA0RTJGOCAgICAgKGJhc2UgMTYpCQlBRVAgc3JsCisJCQkJVmlhIGRlaSBDb2xsaSwgMjQwCisJCQkJU2lnbmEgRmlyZW56ZSA1MDA1OAorCQkJCUlUQUxZCisKKzA0LUU0LTUxICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCiswNEU0NTEgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzA0LUU1LTQ4ICAgKGhleCkJCUNvaGRhIFdpcmVsZXNzIFB0eSBMdGQKKzA0RTU0OCAgICAgKGJhc2UgMTYpCQlDb2hkYSBXaXJlbGVzcyBQdHkgTHRkCisJCQkJU3VpdGUgNSAvIDgzIEZ1bGxhcnRvbiBSb2FkCisJCQkJS2VudCBUb3duIFNvdXRoIEF1c3RyYWxpYSA1MDY3CisJCQkJQVVTVFJBTElBCisKKzA0LUU2LTYyICAgKGhleCkJCUFjcm9uYW1lIEluYy4KKzA0RTY2MiAgICAgKGJhc2UgMTYpCQlBY3JvbmFtZSBJbmMuCisJCQkJNDgyMiBTdGVybGluZyBEcml2ZQorCQkJCUJvdWxkZXIgQ08gODAzMDEtMjM1MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtRUUtOTEgICAoaGV4KQkJeC1mYWJyaWMgR21iSAorMDRFRTkxICAgICAoYmFzZSAxNikJCXgtZmFicmljIEdtYkgKKwkJCQlOYWNob2RzdHIuIDcKKwkJCQlCZXJsaW4gIDEwNzc5CisJCQkJR0VSTUFOWQorCiswNC1GMC0yMSAgIChoZXgpCQlDb21wZXggU3lzdGVtcyBQdGUgTHRkCiswNEYwMjEgICAgIChiYXNlIDE2KQkJQ29tcGV4IFN5c3RlbXMgUHRlIEx0ZAorCQkJCTEzNSBKb28gU2VuZyBSb2FkLCAKKwkJCQkjMDgtMDEgUE0gSW5kdXN0cmlhbCBCdWlsZGluZworCQkJCTM2ODM2MworCQkJCVNJTkdBUE9SRQorCiswNC1GMS03RCAgIChoZXgpCQlUYXJhbmEgV2lyZWxlc3MKKzA0RjE3RCAgICAgKGJhc2UgMTYpCQlUYXJhbmEgV2lyZWxlc3MKKwkJCQkyMTA1IE1hcnRpbiBMdXRoZXIgS2luZyBKciBXYXkKKwkJCQlTdWl0ZSAyMDAKKwkJCQlCZXJrZWxleSBDQSA5NDcwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMDQtRjQtQkMgICAoaGV4KQkJWGVuYSBOZXR3b3JrcworMDRGNEJDICAgICAoYmFzZSAxNikJCVhlbmEgTmV0d29ya3MKKwkJCQlHcmFhYnJvZWRyZXRvcnYgNiwgMy4gc2FsCisJCQkJS++/vWJlbmhhdm4gRGFubWFyayAxMTU0CisJCQkJREVOTUFSSworCiswNC1GRS03RiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiswNEZFN0YgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswNC1GRi01MSAgIChoZXgpCQlOT1ZBTUVESUEgSU5OT1ZJU0lPTiBTUC4gWiBPLk8uCiswNEZGNTEgICAgIChiYXNlIDE2KQkJTk9WQU1FRElBIElOTk9WSVNJT04gU1AuIFogTy5PLgorCQkJCVdPRE5BIDcgCisJCQkJS0FMSVNaIFdJRUxLT1BPTFNLQSA2Mi04MDAKKwkJCQlQT0xBTkQKKworMDgtMDAtMDEgICAoaGV4KQkJQ09NUFVURVJWSVNJT04gQ09SUE9SQVRJT04KKzA4MDAwMSAgICAgKGJhc2UgMTYpCQlDT01QVVRFUlZJU0lPTiBDT1JQT1JBVElPTgorCQkJCTE0IENST1NCWSBEUklWRSBNUyA1LTEKKwkJCQlCRURGT1JEIE1BIDAxNzMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wMiAgIChoZXgpCQlCUklER0UgQ09NTVVOSUNBVElPTlMgSU5DLgorMDgwMDAyICAgICAoYmFzZSAxNikJCUJSSURHRSBDT01NVU5JQ0FUSU9OUyBJTkMuCisJCQkJMjA4MSBTVElFUkxJTkcgUk9BRAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTAzICAgKGhleCkJCUFEVkFOQ0VEIENPTVBVVEVSIENPTU0uCiswODAwMDMgICAgIChiYXNlIDE2KQkJQURWQU5DRUQgQ09NUFVURVIgQ09NTS4KKwkJCQk3MjAgU0FOVEEgQkFSQkFSQSBTVC4KKwkJCQlTQU5UQSBCQVJCQVJBIENBIDkzMTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wNCAgIChoZXgpCQlDUk9NRU1DTyBJTkNPUlBPUkFURUQKKzA4MDAwNCAgICAgKGJhc2UgMTYpCQlDUk9NRU1DTyBJTkNPUlBPUkFURUQKKwkJCQkyODAgQkVSTkFSRE8gQVZFTlVFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMDUgICAoaGV4KQkJU1lNQk9MSUNTIElOQy4KKzA4MDAwNSAgICAgKGJhc2UgMTYpCQlTWU1CT0xJQ1MgSU5DLgorCQkJCTI1NyBWQVNTQVIgU1RSRUVUCisJCQkJQ0FNQlJJREdFIE1BIDAyMTM5CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wNiAgIChoZXgpCQlTSUVNRU5TIEFHCiswODAwMDYgICAgIChiYXNlIDE2KQkJU0lFTUVOUyBBRworCQkJCVNpZW1lbnMgSVQgU29sdXRpb25zIGFuZCBTZXJ2aWNlcywgU0lTIEdPIFFNIE8KKwkJCQlTaWVtZW5zc3RyYXNzZSAyLTQKKwkJCQlQT0IgMjM1MyBGdWVydGggOTA3MTMKKwkJCQlHRVJNQU5ZCisKKzA4LTAwLTA3ICAgKGhleCkJCUFQUExFIENPTVBVVEVSIElOQy4KKzA4MDAwNyAgICAgKGJhc2UgMTYpCQlBUFBMRSBDT01QVVRFUiBJTkMuCisJCQkJMjA2NTAgVkFMTEVZIEdSRUVOIERSSVZFCisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wOCAgIChoZXgpCQlCT0xUIEJFUkFORUsgQU5EIE5FV01BTiBJTkMuCiswODAwMDggICAgIChiYXNlIDE2KQkJQk9MVCBCRVJBTkVLIEFORCBORVdNQU4gSU5DLgorCQkJCTcwIEZBV0NFVFQgU1RSRUVUCisJCQkJQ0FNQlJJREdFIE1BIDAyMTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wOSAgIChoZXgpCQlIRVdMRVRUIFBBQ0tBUkQKKzA4MDAwOSAgICAgKGJhc2UgMTYpCQlIRVdMRVRUIFBBQ0tBUkQKKwkJCQlFTlRFUlBSSVNFIFNZU1RFTVMgVEVDSC5DRU5URVIKKwkJCQkxMTAwMCBXT0xGRSBST0FECisJCQkJQ1VQRVJUSU5PIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wQSAgIChoZXgpCQlORVNUQVIgU1lTVEVNUyBJTkNPUlBPUkFURUQKKzA4MDAwQSAgICAgKGJhc2UgMTYpCQlORVNUQVIgU1lTVEVNUyBJTkNPUlBPUkFURUQKKwkJCQkyNTg1IEVBU1QgQkFZU0hPUkUgUk9BRAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMEIgICAoaGV4KQkJVU5JU1lTIENPUlBPUkFUSU9OCiswODAwMEIgICAgIChiYXNlIDE2KQkJVU5JU1lTIENPUlBPUkFUSU9OCisJCQkJVE9XTlNISVAgTElORSBST0FECisJCQkJQkxVRSBCRUxMIFBBIDE5NDI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wQyAgIChoZXgpCQlNSUtMWU4gREVWRUxPUE1FTlQgQ08uCiswODAwMEMgICAgIChiYXNlIDE2KQkJTUlLTFlOIERFVkVMT1BNRU5UIENPLgorCQkJCTM2MTMgQU5ET1ZFUiBESVZFCisJCQkJQkVERk9SRCBUWCA3NjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMEQgICAoaGV4KQkJSU5URVJOQVRJT05BTCBDT01QVVRFUlMgTFRELgorMDgwMDBEICAgICAoYmFzZSAxNikJCUlOVEVSTkFUSU9OQUwgQ09NUFVURVJTIExURC4KKwkJCQlXRU5MT0NLIFdBWQorCQkJCVdFU1QgR09SVE9OIE1BTkNIRVNURVIsICBNMTIgIDVEUgorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDgtMDAtMEUgICAoaGV4KQkJTkNSIENPUlBPUkFUSU9OCiswODAwMEUgICAgIChiYXNlIDE2KQkJTkNSIENPUlBPUkFUSU9OCisJCQkJV09STEQgSEVBRFFVQVJURVJTCisJCQkJREFZVE9OIE9IIDQ1NDc5CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0wRiAgIChoZXgpCQlNSVRFTCBDT1JQT1JBVElPTgorMDgwMDBGICAgICAoYmFzZSAxNikJCU1JVEVMIENPUlBPUkFUSU9OCisJCQkJMzUwIExFR0dFVCBEUklWRQorCQkJCVAuTy4gQk9YIDEzMDg5IEtBTkFUQSBPTlRBUklPCisJCQkJQ0FOQURBIEsySyAxWDMKKwkJCQlDQU5BREEKKworMDgtMDAtMTEgICAoaGV4KQkJVEVLVFJPTklYIElOQy4KKzA4MDAxMSAgICAgKGJhc2UgMTYpCQlURUtUUk9OSVggSU5DLgorCQkJCVRFQ0hOSUNBTCBTVEFOREFSRFMKKwkJCQkxMzk3NSBTVyBLQVJMIEJSQVVOIERSSVZFIFBPIEJPWCA1MDAsICBNCisJCQkJQkVBVkVSVE9OIE9SIDk3MDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0xMiAgIChoZXgpCQlCRUxMIEFUTEFOVElDIElOVEVHUkFURUQgU1lTVC4KKzA4MDAxMiAgICAgKGJhc2UgMTYpCQlCRUxMIEFUTEFOVElDIElOVEVHUkFURUQgU1lTVC4KKwkJCQk0MCBUQUxMIFBJTkUgRFJJVkUKKwkJCQlTVURCVVJZIE1BIDAxNzc2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0xMyAgIChoZXgpCQlFWFhPTgorMDgwMDEzICAgICAoYmFzZSAxNikJCUVYWE9OCisJCQkJCisKKzA4LTAwLTE0ICAgKGhleCkJCUVYQ0VMQU4KKzA4MDAxNCAgICAgKGJhc2UgMTYpCQlFWENFTEFOCisJCQkJMTU5OSBGTElDS0lOR0VSIEFWRU5VRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0xNSAgIChoZXgpCQlTVEMgQlVTSU5FU1MgU1lTVEVNUworMDgwMDE1ICAgICAoYmFzZSAxNikJCVNUQyBCVVNJTkVTUyBTWVNURU1TCisJCQkJSE9MQlJPT0sgSE9VU0UKKwkJCQlDT0NLRk9TVEVSUyBST0FEIENPQ0tGT1NURVJTIEhFUlRTIEVONCBPCisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC0xNiAgIChoZXgpCQlCQVJSSVNURVIgSU5GTyBTWVMgQ09SUAorMDgwMDE2ICAgICAoYmFzZSAxNikJCUJBUlJJU1RFUiBJTkZPIFNZUyBDT1JQCisJCQkJT05FIFRFQ0hOT0xPR1kgQ0VOVEVSCisJCQkJNDUgT0FLIFNUUkVFVAorCQkJCUJVRkZBTE8gTlkgMTQyMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTE3ICAgKGhleCkJCU5BVElPTkFMIFNFTUlDT05EVUNUT1IKKzA4MDAxNyAgICAgKGJhc2UgMTYpCQlOQVRJT05BTCBTRU1JQ09ORFVDVE9SCisJCQkJMjkwMCBTRU1JQ09ORFVDVE9SIERSSVZFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTE4ICAgKGhleCkJCVBJUkVMTEkgRk9DT00gTkVUV09SS1MKKzA4MDAxOCAgICAgKGJhc2UgMTYpCQlQSVJFTExJIEZPQ09NIE5FVFdPUktTCisJCQkJREVOVE9OIERSSVZFCisJCQkJTk9SVEhXSUNIIENIRVNISVJFICAgICAgQ1c5IDdMVQorCQkJCUVOR0xBTkQKKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC0xOSAgIChoZXgpCQlHRU5FUkFMIEVMRUNUUklDIENPUlBPUkFUSU9OCiswODAwMTkgICAgIChiYXNlIDE2KQkJR0VORVJBTCBFTEVDVFJJQyBDT1JQT1JBVElPTgorCQkJCTEyODUgQk9TVE9OIEFWRU5VRQorCQkJCUJSSURHRVBPUlQgQ1QgMDY2MDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTFBICAgKGhleCkJCVRJQVJBLyAxME5FVAorMDgwMDFBICAgICAoYmFzZSAxNikJCVRJQVJBLyAxME5FVAorCQkJCTc3NzcgV0FTSElOR1RPTiBWSUxMQUdFIERSSVZFCisJCQkJU1VJVEUgMjAwCisJCQkJREFZVE9OIE9ISU8gNDU0NTktMzk1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMUIgICAoaGV4KQkJRU1DIENvcnBvcmF0aW9uCiswODAwMUIgICAgIChiYXNlIDE2KQkJRU1DIENvcnBvcmF0aW9uCisJCQkJMTc2IFNvdXRoIFN0cmVldAorCQkJCUhvcGtpbnRvbiBNQSAwMTc0OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMUMgICAoaGV4KQkJS0RELUtPS1VTQUkgREVCTlNJTiBERU5XQSBDTy4KKzA4MDAxQyAgICAgKGJhc2UgMTYpCQlLREQtS09LVVNBSSBERUJOU0lOIERFTldBIENPLgorCQkJCUZVSkkgWEVST1ggQ08uLCBMVEQuIFRFTEVHUkFQSAorCQkJCU5PLiAzLTUsIEFLQVNBS0EgMy1DSE9NRSBNSU5BVE8tS1UsIFRPS1kKKwkJCQkxMDcgSkFQQU4KKwkJCQlKQVBBTgorCiswOC0wMC0xRCAgIChoZXgpCQlBQkxFIENPTU1VTklDQVRJT05TIElOQy4KKzA4MDAxRCAgICAgKGJhc2UgMTYpCQlBQkxFIENPTU1VTklDQVRJT05TIElOQy4KKwkJCQkxNzg5MSBDQVJUV1JJR0hUIFJPQUQKKwkJCQlJUlZJTkUgQ0EgOTI3MTQtNjIxNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMUUgICAoaGV4KQkJQVBPTExPIENPTVBVVEVSIElOQy4KKzA4MDAxRSAgICAgKGJhc2UgMTYpCQlBUE9MTE8gQ09NUFVURVIgSU5DLgorCQkJCTE1IEVMSVpBQkVUSCBEUklWRQorCQkJCUNIRUxNU0ZPUkQgTUEgMDE4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTFGICAgKGhleCkJCVNIQVJQIENPUlBPUkFUSU9OCiswODAwMUYgICAgIChiYXNlIDE2KQkJU0hBUlAgQ09SUE9SQVRJT04KKwkJCQlFTkdJTkVFUklORyBERVBBUlRNRU5UIDYKKwkJCQk0OTIgTUlOT1NITy1DSE8gWUFNQVRPS09PUklZTUEtU0hJLAorCQkJCU5BUkEgNjM5LTExIEpBUEFOCisJCQkJSkFQQU4KKworMDgtMDAtMjAgICAoaGV4KQkJT3JhY2xlIENvcnBvcmF0aW9uCiswODAwMjAgICAgIChiYXNlIDE2KQkJT3JhY2xlIENvcnBvcmF0aW9uCisJCQkJMTcgTmV0d29yayBDaXJjbGUKKwkJCQlCdWlsZGluZyAxNywgVU1QSzE3LTEzMQorCQkJCU1lbmxvIFBhcmsgQ0EgOTUwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTIxICAgKGhleCkJCTNNIENPTVBBTlkKKzA4MDAyMSAgICAgKGJhc2UgMTYpCQkzTSBDT01QQU5ZCisJCQkJVGVsZWNvbSBEaXZpc2lvbgorCQkJCTY4MDEgUml2ZXIgUGxhY2UgQm91bGV2YXJkCisJCQkJQXVzdGluIFRYIDc4NzI2LTkwMDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTIyICAgKGhleCkJCU5CSSBJTkMuCiswODAwMjIgICAgIChiYXNlIDE2KQkJTkJJIElOQy4KKwkJCQkzNDUwIE1JVENIRUxMIExBTkUKKwkJCQlQLk8uIEJPWCA5MDAxCisJCQkJQk9VTERFUiBDTyA4MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMjMgICAoaGV4KQkJUGFuYXNvbmljIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorMDgwMDIzICAgICAoYmFzZSAxNikJCVBhbmFzb25pYyBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KKwkJCQk0LTEtNjIgTWlub3NoaW1hIEhha2F0YSBGdWt1b2thCisJCQkJODEyLTg1MzEKKwkJCQlKQVBBTgorCiswOC0wMC0yNCAgIChoZXgpCQkxME5FVCBDT01NVU5JQ0FUSU9OUy9EQ0EKKzA4MDAyNCAgICAgKGJhc2UgMTYpCQkxME5FVCBDT01NVU5JQ0FUSU9OUy9EQ0EKKwkJCQk3Nzc3IFdBU0hJTkdUT04gVklMTEFHRSBEUi4KKwkJCQlTVUlURSAyMDAKKwkJCQlEQVlUT04gT0ggNDU0NTktMzk1NworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMjUgICAoaGV4KQkJQ09OVFJPTCBEQVRBCiswODAwMjUgICAgIChiYXNlIDE2KQkJQ09OVFJPTCBEQVRBCisJCQkJNDIwMSBMRVhJTkdUT04gQVZFIE5PUlRICisJCQkJQVJERU4gSElMTFMgTU4gNTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTI2ICAgKGhleCkJCU5PUlNLIERBVEEgQS5TLgorMDgwMDI2ICAgICAoYmFzZSAxNikJCU5PUlNLIERBVEEgQS5TLgorCQkJCVAuTy4gQk9YIDI1IEJPR0VSVUQKKwkJCQlPU0xPIDYKKwkJCQlOT1JXQVkKKwkJCQlOT1JXQVkKKworMDgtMDAtMjcgICAoaGV4KQkJQ0FETVVTIENPTVBVVEVSIFNZU1RFTVMKKzA4MDAyNyAgICAgKGJhc2UgMTYpCQlDQURNVVMgQ09NUFVURVIgU1lTVEVNUworCQkJCTYwMCBTVUZGT0xLIFNUCisJCQkJTE9XRUxMIE1BIDA4MTU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0yOCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMDgwMDI4ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJTS9TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTI5ICAgKGhleCkJCU1FR0FURUsgQ09SUE9SQVRJT04KKzA4MDAyOSAgICAgKGJhc2UgMTYpCQlNRUdBVEVLIENPUlBPUkFUSU9OCisJCQkJOTY0NSBTQ1JBTlRPTiBST0FECisJCQkJU0FOIERJRUdPIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0yQSAgIChoZXgpCQlNT1NBSUMgVEVDSE5PTE9HSUVTIElOQy4KKzA4MDAyQSAgICAgKGJhc2UgMTYpCQlNT1NBSUMgVEVDSE5PTE9HSUVTIElOQy4KKwkJCQk0NyBNQU5OSU5HIFJPQUQKKwkJCQlCSUxMRVJJQ0EgTUEgMDE4MjEtMzk3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMkIgICAoaGV4KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKzA4MDAyQiAgICAgKGJhc2UgMTYpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorCQkJCUxLRyAxLTIvQTE5CisJCQkJNTUwIEtJTkcgU1RSRUVUCisJCQkJTElUVExFVE9OIE1BIDAxNDYwLTEyODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTJDICAgKGhleCkJCUJSSVRUT04gTEVFIElOQy4KKzA4MDAyQyAgICAgKGJhc2UgMTYpCQlCUklUVE9OIExFRSBJTkMuCisJCQkJMTQ2MDAgV0lOQ0hFU1RFUiBCTFZECisJCQkJTE9TIEdBVE9TIENBIDk1MDMwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0yRCAgIChoZXgpCQlMQU4tVEVDIElOQy4KKzA4MDAyRCAgICAgKGJhc2UgMTYpCQlMQU4tVEVDIElOQy4KKwkJCQkyMTMxIFVOSVZFUlNJVFkgQVZFTlVFCisJCQkJQkVSS0VMRVkgQ0EgOTQ3MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTJFICAgKGhleCkJCU1FVEFQSE9SIENPTVBVVEVSIFNZU1RFTVMKKzA4MDAyRSAgICAgKGJhc2UgMTYpCQlNRVRBUEhPUiBDT01QVVRFUiBTWVNURU1TCisJCQkJMjUwMCBHQVJDSUEgQVZFTlVFCisJCQkJTU9VTlRBSU4gVklFVyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMkYgICAoaGV4KQkJUFJJTUUgQ09NUFVURVIgSU5DLgorMDgwMDJGICAgICAoYmFzZSAxNikJCVBSSU1FIENPTVBVVEVSIElOQy4KKwkJCQkxMDAgQ1JPU0JZIERSSVZFCisJCQkJQkVERk9SRCBNQSAwMTczMC0xNDAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0zMCAgIChoZXgpCQlORVRXT1JLIFJFU0VBUkNIIENPUlBPUkFUSU9OCiswODAwMzAgICAgIChiYXNlIDE2KQkJTkVUV09SSyBSRVNFQVJDSCBDT1JQT1JBVElPTgorCQkJCTIzODAgTi4gUk9TRSBBVkVOVUUKKwkJCQlPWE5BUkQgQ0EgOTMwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTMwICAgKGhleCkJCUNFUk4KKzA4MDAzMCAgICAgKGJhc2UgMTYpCQlDRVJOCisJCQkJQ0gtMTIxMSBHRU5FVkUgMjMKKwkJCQlTVUlTU0UvU1dJVFoKKwkJCQlTV0lUWkVSTEFORAorCiswOC0wMC0zMCAgIChoZXgpCQlST1lBTCBNRUxCT1VSTkUgSU5TVCBPRiBURUNICiswODAwMzAgICAgIChiYXNlIDE2KQkJUk9ZQUwgTUVMQk9VUk5FIElOU1QgT0YgVEVDSAorCQkJCUdQTyBCT1ggMjQ3NlYKKwkJCQlNRUxCT1VSTkUgVklDIDMwMDEKKwkJCQlBVVNUUkFMSUEKKworMDgtMDAtMzEgICAoaGV4KQkJTElUVExFIE1BQ0hJTkVTIElOQy4KKzA4MDAzMSAgICAgKGJhc2UgMTYpCQlMSVRUTEUgTUFDSElORVMgSU5DLgorCQkJCTQxNDEgSlVUTEFORCBEUklWRQorCQkJCVNBTiBESUVHTyBDQSA5MjExNworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMzIgICAoaGV4KQkJVElHQU4gSU5DT1JQT1JBVEVECiswODAwMzIgICAgIChiYXNlIDE2KQkJVElHQU4gSU5DT1JQT1JBVEVECisJCQkJNDAyMCBGQUJJQU4gV0FZCisJCQkJU1VJVEUgRAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMzMgICAoaGV4KQkJQkFVU0NIICYgTE9NQgorMDgwMDMzICAgICAoYmFzZSAxNikJCUJBVVNDSCAmIExPTUIKKwkJCQlJTlRFUkFDVElWRSBHUkFQSElDUyBESVZJU0lPTgorCQkJCVAuTy4gQk9YIDE0NTQ3CisJCQkJQVVTSVROIFRYIDc4NjcxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0zNCAgIChoZXgpCQlGSUxFTkVUIENPUlBPUkFUSU9OCiswODAwMzQgICAgIChiYXNlIDE2KQkJRklMRU5FVCBDT1JQT1JBVElPTgorCQkJCTE1NzUgQ09SUE9SQVRFIERSSVZFCisJCQkJQ09TVEEgTUVTQSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMzUgICAoaGV4KQkJTUlDUk9GSVZFIENPUlBPUkFUSU9OCiswODAwMzUgICAgIChiYXNlIDE2KQkJTUlDUk9GSVZFIENPUlBPUkFUSU9OCisJCQkJMzU2MCBIWUxBTkQgQVZFTlVFCisJCQkJUC5PLiBCT1ggNTAxMQorCQkJCUNPU1RBIE1FU0EgQ0EgOTI2MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTM2ICAgKGhleCkJCUlOVEVSR1JBUEggQ09SUE9SQVRJT04KKzA4MDAzNiAgICAgKGJhc2UgMTYpCQlJTlRFUkdSQVBIIENPUlBPUkFUSU9OCisJCQkJT05FIE1BRElTT04gSU5EVVNUUklBTCBQQVJLCisJCQkJSFVOVFNWSUxMRSBBTCAzNTgwNworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtMzcgICAoaGV4KQkJRlVKSS1YRVJPWCBDTy4gTFRELgorMDgwMDM3ICAgICAoYmFzZSAxNikJCUZVSkktWEVST1ggQ08uIExURC4KKwkJCQlBRFZBTkNFRCBURUNIICYgRU5HJ0cgQ0VOVEVSCisJCQkJOS01MCBDSFVPIDItQ0hPTUUsIEVCSU5BLVNISSBLQU5BR0FXQSAyNAorCQkJCUpBUEFOCisJCQkJSkFQQU4KKworMDgtMDAtMzggICAoaGV4KQkJQlVMTCBTLkEuUy4KKzA4MDAzOCAgICAgKGJhc2UgMTYpCQlCVUxMIFMuQS5TLgorCQkJCXJ1ZSBKZWFuIEphdXJlcyBCLlAuNjgKKwkJCQlMZXMgQ2xheWVzIHNvdXMgQm9pcyAgNzg0MzAKKwkJCQlGUkFOQ0UKKworMDgtMDAtMzkgICAoaGV4KQkJU1BJREVSIFNZU1RFTVMgTElNSVRFRAorMDgwMDM5ICAgICAoYmFzZSAxNikJCVNQSURFUiBTWVNURU1TIExJTUlURUQKKwkJCQlTUElERVIgUEFSSworCQkJCVNUQU5XRUxMIFNUUkVFVCBFRElOQlVSR0ggRUg2IDVORworCQkJCVNDT1RMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDgtMDAtM0EgICAoaGV4KQkJT1JDQVRFQ0ggSU5DLgorMDgwMDNBICAgICAoYmFzZSAxNikJCU9SQ0FURUNIIElOQy4KKwkJCQkyNjgwIFFVRUVOU1ZJRVcgRFJJVkUKKwkJCQlPVFRBV0EgT05UQVJJTworCQkJCUNBTkFEQSBLMkIgOEg2CisJCQkJQ0FOQURBCisKKzA4LTAwLTNCICAgKGhleCkJCVRPUlVTIFNZU1RFTVMgTElNSVRFRAorMDgwMDNCICAgICAoYmFzZSAxNikJCVRPUlVTIFNZU1RFTVMgTElNSVRFRAorCQkJCVNDSUVOQ0UgUEFSSworCQkJCU1JTFRPTiBST0FEIENBTUJSSURHRSBDQjQgNEJICisJCQkJVU5JVEVEIEtJTkdET00KKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC0zQyAgIChoZXgpCQlTQ0hMVU1CRVJHRVIgV0VMTCBTRVJWSUNFUworMDgwMDNDICAgICAoYmFzZSAxNikJCVNDSExVTUJFUkdFUiBXRUxMIFNFUlZJQ0VTCisJCQkJQVVTVElOIEVOR0lORUVSSU5HIFNFUlZJQ0VTCisJCQkJUC5PLiBCT1ggMjAwMDE1CisJCQkJQVVTVElOIFRYIDc4NzIwLTAwMTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTNEICAgKGhleCkJCUNBRE5FVElYIENPUlBPUkFUSU9OUworMDgwMDNEICAgICAoYmFzZSAxNikJCUNBRE5FVElYIENPUlBPUkFUSU9OUworCQkJCTU3OTcgQ0VOVFJBTCBBVkVOVUUKKwkJCQlCT1VMREVSIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC0zRSAgIChoZXgpCQlDT0RFWCBDT1JQT1JBVElPTgorMDgwMDNFICAgICAoYmFzZSAxNikJCUNPREVYIENPUlBPUkFUSU9OCisJCQkJNTAgRUFTVCBDT01NRVJDRSBEUklWRQorCQkJCVNVSVRFICBNMQorCQkJCVNDSEFVTUJVUkcgSUwgNjAxNzMKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTNGICAgKGhleCkJCUZSRUQgS09TQ0hBUkEgRU5URVJQUklTRVMKKzA4MDAzRiAgICAgKGJhc2UgMTYpCQlGUkVEIEtPU0NIQVJBIEVOVEVSUFJJU0VTCisJCQkJCisKKzA4LTAwLTQwICAgKGhleCkJCUZFUlJBTlRJIENPTVBVVEVSIFNZUy4gTElNSVRFRAorMDgwMDQwICAgICAoYmFzZSAxNikJCUZFUlJBTlRJIENPTVBVVEVSIFNZUy4gTElNSVRFRAorCQkJCVdZVEhFTlNIQVdFIERJVklTSU9OCisJCQkJV0VTVEVSTiBST0FEIEJSQUNLTkVMTCBSRzEyIDFSQQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDgtMDAtNDEgICAoaGV4KQkJUkFDQUwtTUlMR08gSU5GT1JNQVRJT04gU1lTLi4KKzA4MDA0MSAgICAgKGJhc2UgMTYpCQlSQUNBTC1NSUxHTyBJTkZPUk1BVElPTiBTWVMuLgorCQkJCTQwMCBFTUJBU1NZIFJPVworCQkJCVNVSVRFIDMwMAorCQkJCUFUTEFOVEEgR0EgMzAzMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTQyICAgKGhleCkJCUpBUEFOIE1BQ05JQ1MgQ09SUC4KKzA4MDA0MiAgICAgKGJhc2UgMTYpCQlKQVBBTiBNQUNOSUNTIENPUlAuCisJCQkJCisJCQkJSkFQQU4KKworMDgtMDAtNDMgICAoaGV4KQkJUElYRUwgQ09NUFVURVIgSU5DLgorMDgwMDQzICAgICAoYmFzZSAxNikJCVBJWEVMIENPTVBVVEVSIElOQy4KKwkJCQkyNjAgRk9SREhBTSBST0FECisJCQkJV0lMTUlOR1RPTiBNQSAwMTg4NworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNDQgICAoaGV4KQkJREFWSUQgU1lTVEVNUyBJTkMuCiswODAwNDQgICAgIChiYXNlIDE2KQkJREFWSUQgU1lTVEVNUyBJTkMuCisJCQkJNjE1IFRBU01BTiBEUklWRQorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNDUgICAoaGV4KQkJQ09OQ1VSUkVOVCBDT01QVVRFUiBDT1JQLgorMDgwMDQ1ICAgICAoYmFzZSAxNikJCUNPTkNVUlJFTlQgQ09NUFVURVIgQ09SUC4KKwkJCQkyIENSRVNDRU5UIFBMQUNFCisJCQkJT0NFQU5QT1JUIE5KIDA3NzU3CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC00NiAgIChoZXgpCQlTb255IENvcnBvcmF0aW9uCiswODAwNDYgICAgIChiYXNlIDE2KQkJU29ueSBDb3Jwb3JhdGlvbgorCQkJCUdvdGVueWFtYSBUZWMsIDUtMS0yIEtpdGFzaGluYWdhd2EKKwkJCQlTaGluYWdhd2Eta3UKKwkJCQlUb2t5byAgMTQxLTAwMDEKKwkJCQlKQVBBTgorCiswOC0wMC00NyAgIChoZXgpCQlTRVFVRU5UIENPTVBVVEVSIFNZU1RFTVMgSU5DLgorMDgwMDQ3ICAgICAoYmFzZSAxNikJCVNFUVVFTlQgQ09NUFVURVIgU1lTVEVNUyBJTkMuCisJCQkJMTU0NTAgUy5XLiBLT0xMIFBBUktXQVkgICAuCisJCQkJTUFJTFNUT1AgQ09MMi04MzEKKwkJCQlCRUFWRVJUT04gT1IgOTcwMDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTQ4ICAgKGhleCkJCUVVUk9USEVSTSBHQVVHSU5HIFNZU1RFTVMKKzA4MDA0OCAgICAgKGJhc2UgMTYpCQlFVVJPVEhFUk0gR0FVR0lORyBTWVNURU1TCisJCQkJOTAwIE1JRERMRVNFWCBUVVJOUElLRSwgQkRHLiA2CisJCQkJQklMTEVSSUNBIE1BIDAxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC00OSAgIChoZXgpCQlVTklWQVRJT04KKzA4MDA0OSAgICAgKGJhc2UgMTYpCQlVTklWQVRJT04KKwkJCQkxMDM3IE5PUlRIIEZBSVIgT0FLUyBBVkUuCisJCQkJU1VOTllWQUxFIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC00QSAgIChoZXgpCQlCQU5ZQU4gU1lTVEVNUyBJTkMuCiswODAwNEEgICAgIChiYXNlIDE2KQkJQkFOWUFOIFNZU1RFTVMgSU5DLgorCQkJCTEzNSBGTEFOREVSUyBST0FECisJCQkJV0VTVEJPUk8gTUEgMDE1ODEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTRCICAgKGhleCkJCVBMQU5OSU5HIFJFU0VBUkNIIENPUlAuCiswODAwNEIgICAgIChiYXNlIDE2KQkJUExBTk5JTkcgUkVTRUFSQ0ggQ09SUC4KKwkJCQkxREhTIFNZU1RFTVMKKwkJCQkxNTA4IEtFTk5FRFkgRFJJVkUtU1RFIzIxNQorCQkJCUJFTExFVlVFIE5FIDY4LS01CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC00QyAgIChoZXgpCQlIWURSQSBDT01QVVRFUiBTWVNURU1TIElOQy4KKzA4MDA0QyAgICAgKGJhc2UgMTYpCQlIWURSQSBDT01QVVRFUiBTWVNURU1TIElOQy4KKwkJCQkxMiBNRVJDRVIgUk9BRAorCQkJCU5BVElDSyBNQSAwMTc2MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNEQgICAoaGV4KQkJQ09SVlVTIFNZU1RFTVMgSU5DLgorMDgwMDREICAgICAoYmFzZSAxNikJCUNPUlZVUyBTWVNURU1TIElOQy4KKwkJCQkyMTAwIENPUlZVUyBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTI0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC00RSAgIChoZXgpCQkzQ09NIEVVUk9QRSBMVEQuCiswODAwNEUgICAgIChiYXNlIDE2KQkJM0NPTSBFVVJPUEUgTFRELgorCQkJCTNDT00gQ0VOVFJFCisJCQkJQk9VTkRBUlkgV0FZLCBIRU1FTCBIRU1QU1RFQUQgSEVSVEZPUlNISQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDgtMDAtNEYgICAoaGV4KQkJQ1lHTkVUIFNZU1RFTVMKKzA4MDA0RiAgICAgKGJhc2UgMTYpCQlDWUdORVQgU1lTVEVNUworCQkJCTI1NjAgSlVOQ1RJT04gQVZFTlVFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTUwICAgKGhleCkJCURBSVNZIFNZU1RFTVMgQ09SUC4KKzA4MDA1MCAgICAgKGJhc2UgMTYpCQlEQUlTWSBTWVNURU1TIENPUlAuCisJCQkJMTM5IEtJRkVSIENPVVJUCisJCQkJU1VOTllWQUxFIENBIDk0MDg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01MSAgIChoZXgpCQlFWFBFUkRBVEEKKzA4MDA1MSAgICAgKGJhc2UgMTYpCQlFWFBFUkRBVEEKKwkJCQk4OCwgUlVFIEJSSUxMQVQgU0FWQVJJTgorCQkJCTc1MDEzIFBBUklTCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzA4LTAwLTUyICAgKGhleCkJCUlOU1lTVEVDCiswODAwNTIgICAgIChiYXNlIDE2KQkJSU5TWVNURUMKKwkJCQk0NTAgTEFLRU1PTlQgQVZFTlVFCisJCQkJV0lOVEVSIFBBUksgRkwgMzI3OTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTUzICAgKGhleCkJCU1JRERMRSBFQVNUIFRFQ0guIFVOSVZFUlNJVFkKKzA4MDA1MyAgICAgKGJhc2UgMTYpCQlNSURETEUgRUFTVCBURUNILiBVTklWRVJTSVRZCisJCQkJREVQQVJUTUVOVCBPRgorCQkJCUNPTVBVVEVSIEVOR0lORUVSSU5HCisJCQkJQU5LQVJBIFRVUktFWQorCQkJCVRVUktFWQorCiswOC0wMC01NSAgIChoZXgpCQlTVEFORk9SRCBURUxFQ09NTS4gSU5DLgorMDgwMDU1ICAgICAoYmFzZSAxNikJCVNUQU5GT1JEIFRFTEVDT01NLiBJTkMuCisJCQkJMTIyMSBDUk9TU01BTgorCQkJCVNVTk5ZVkFMRSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNTYgICAoaGV4KQkJU1RBTkZPUkQgTElORUFSIEFDQ0VMLiBDRU5URVIKKzA4MDA1NiAgICAgKGJhc2UgMTYpCQlTVEFORk9SRCBMSU5FQVIgQUNDRUwuIENFTlRFUgorCQkJCTI1NzUgU0FOREhJTEwgUk9BRAorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTU3ICAgKGhleCkJCUVWQU5TICYgU1VUSEVSTEFORAorMDgwMDU3ICAgICAoYmFzZSAxNikJCUVWQU5TICYgU1VUSEVSTEFORAorCQkJCVAuTy4gQk9YIDg3MDAKKwkJCQk1ODAgQVJBUEVFTiBEUklWRQorCQkJCVNBTFQgTEFLRSBDSVRZIFVUIDg0MTA4CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01OCAgIChoZXgpCQlTWVNURU1TIENPTkNFUFRTCiswODAwNTggICAgIChiYXNlIDE2KQkJU1lTVEVNUyBDT05DRVBUUworCQkJCTUyMCBUSElSRCBTVFJFRVQKKwkJCQlTQU4gRlJBTkNJU0NPIENBIDk0MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01OSAgIChoZXgpCQlBL1MgTVlDUk9OCiswODAwNTkgICAgIChiYXNlIDE2KQkJQS9TIE1ZQ1JPTgorCQkJCVBPIEJPWCA2MTk5CisJCQkJTi0wNjAyIE9TTE8gNgorCQkJCU5PUldBWQorCQkJCU5PUldBWQorCiswOC0wMC01QSAgIChoZXgpCQlJQk0gQ29ycAorMDgwMDVBICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMzAzOSBFIENvcm53YWxsaXMgUm9hZAorCQkJCVAuTy4gQk9YIDEyMTk1CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0yMTk1CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01QiAgIChoZXgpCQlWVEEgVEVDSE5PTE9HSUVTIElOQy4KKzA4MDA1QiAgICAgKGJhc2UgMTYpCQlWVEEgVEVDSE5PTE9HSUVTIElOQy4KKwkJCQkyMDQwIFNIRVJNQU4gU1RSRUVUCisJCQkJSE9MTFlXT09EIEZMIDMzMDIwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01QyAgIChoZXgpCQlGT1VSIFBIQVNFIFNZU1RFTVMKKzA4MDA1QyAgICAgKGJhc2UgMTYpCQlGT1VSIFBIQVNFIFNZU1RFTVMKKwkJCQkyMDAxIExPR0lDIERSSVZFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMjQtMzQ1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNUQgICAoaGV4KQkJR09VTEQgSU5DLgorMDgwMDVEICAgICAoYmFzZSAxNikJCUdPVUxEIElOQy4KKwkJCQk2OTAxIFdFU1QgU1VOUklTRSBCTFZELgorCQkJCVAuTy4gQk9YIDkxNDgKKwkJCQlGVC4gTEFVREVSREFMRSBGTCAzMzMxMC05MTQ4CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC01RSAgIChoZXgpCQlDT1VOVEVSUE9JTlQgQ09NUFVURVIgSU5DLgorMDgwMDVFICAgICAoYmFzZSAxNikJCUNPVU5URVJQT0lOVCBDT01QVVRFUiBJTkMuCisJCQkJMjEyNyBSSU5HV09PRCBBVkVOVUUKKwkJCQlTQU4gSk9TRSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNUYgICAoaGV4KQkJU0FCRVIgVEVDSE5PTE9HWSBDT1JQLgorMDgwMDVGICAgICAoYmFzZSAxNikJCVNBQkVSIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkyMzgxIEJFUklORyBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTMxLTExMjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTYwICAgKGhleCkJCUlORFVTVFJJQUwgTkVUV09SS0lORyBJTkMuCiswODAwNjAgICAgIChiYXNlIDE2KQkJSU5EVVNUUklBTCBORVRXT1JLSU5HIElOQy4KKwkJCQkzOTkwIEZSRUVET00gQ0lSQ0xFCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTYxICAgKGhleCkJCUpBUk9HQVRFIExURC4KKzA4MDA2MSAgICAgKGJhc2UgMTYpCQlKQVJPR0FURSBMVEQuCisJCQkJMTk3LTIxMyBMWUhBTSBST0FECisJCQkJQlJJU1RPTiBMT05ET04gU1cyIDVQWQorCQkJCVVOSVRFRCBLSU5HRE9NCisJCQkJVU5JVEVEIEtJTkdET00KKworMDgtMDAtNjIgICAoaGV4KQkJR0VORVJBTCBEWU5BTUlDUworMDgwMDYyICAgICAoYmFzZSAxNikJCUdFTkVSQUwgRFlOQU1JQ1MKKwkJCQlGT1JUIFdPUlRIIERJVklTSU9OCisJCQkJUC5PLiBCT1ggNzQ4CisJCQkJRlQuIFdPUlRIIFRYIDc2MTAxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC02MyAgIChoZXgpCQlQTEVTU0VZCiswODAwNjMgICAgIChiYXNlIDE2KQkJUExFU1NFWQorCQkJCVBMRVNTRVkgLSBVSyBMSU1JVEVECisJCQkJMTY3LTU1IDE0OFRIIEFWRU5VRQorCQkJCUpBTUFJQ0EgTlkgMTE0MzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTY0ICAgKGhleCkJCUFVVE9QSE9OIEFHCiswODAwNjQgICAgIChiYXNlIDE2KQkJQVVUT1BIT04gQUcKKwkJCQlBQlQuIFRaTSAzMDcKKwkJCQlaSUVHRUxNQVRUU1RSQVNTRSAxLTE1IDQ1MDMgU09MT1RIVVJOCisJCQkJU1dJVFpFUkxBTkQKKwkJCQlTV0lUWkVSTEFORAorCiswOC0wMC02NSAgIChoZXgpCQlHRU5SQUQgSU5DLgorMDgwMDY1ICAgICAoYmFzZSAxNikJCUdFTlJBRCBJTkMuCisJCQkJMzAwIEJBS0VSIEFWRU5VRQorCQkJCU1BSUwgU1RPUCAyNgorCQkJCUNPTkNPUkQgTUEgMDE3NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTY2ICAgKGhleCkJCUFHRkEgQ09SUE9SQVRJT04KKzA4MDA2NiAgICAgKGJhc2UgMTYpCQlBR0ZBIENPUlBPUkFUSU9OCisJCQkJMjAwIEJBTExBUkRWQUxFIFNUUkVFVAorCQkJCVdJTE1JTkdUT04gTUEgMDE4ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTY3ICAgKGhleCkJCUNPTURFU0lHTgorMDgwMDY3ICAgICAoYmFzZSAxNikJCUNPTURFU0lHTgorCQkJCTc1MSBTT1VUSCBLRUxMT0cgQVZFTlVFCisJCQkJR09MRVRBIENBIDkzMTE3LTM4ODAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTY4ICAgKGhleCkJCVJJREdFIENPTVBVVEVSUworMDgwMDY4ICAgICAoYmFzZSAxNikJCVJJREdFIENPTVBVVEVSUworCQkJCTI0NTEgTUlTU0lPTiBDT0xMRUdFIEJMVkQuCisJCQkJU0FOVEEgQ0xBUkEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTY5ICAgKGhleCkJCVNJTElDT04gR1JBUEhJQ1MgSU5DLgorMDgwMDY5ICAgICAoYmFzZSAxNikJCVNJTElDT04gR1JBUEhJQ1MgSU5DLgorCQkJCTIwMTEgTi4gU0hPUkVMSU5FIEJMVkQuCisJCQkJUC5PLiBCT1ggNzMxMSBDQSA5NDA0MworCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwMzktNzMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNkEgICAoaGV4KQkJQVRUIEJFTEwgTEFCT1JBVE9SSUVTCiswODAwNkEgICAgIChiYXNlIDE2KQkJQVRUIEJFTEwgTEFCT1JBVE9SSUVTCisJCQkJMTEwMCBFQVNUIFdBUlJFTlZJTExFIFJPQUQKKwkJCQlOQVBFUlZJTExFIElMIDYwNTY2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC02QiAgIChoZXgpCQlBQ0NFTCBURUNITk9MT0dJRVMgSU5DLgorMDgwMDZCICAgICAoYmFzZSAxNikJCUFDQ0VMIFRFQ0hOT0xPR0lFUyBJTkMuCisJCQkJNzM1OCBUUkFERSBTVFJFRVQKKwkJCQlTQU4gRElFR08gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTZDICAgKGhleCkJCVNVTlRFSyBURUNITk9MT0dZIElOVCdMCiswODAwNkMgICAgIChiYXNlIDE2KQkJU1VOVEVLIFRFQ0hOT0xPR1kgSU5UJ0wKKwkJCQk1ODYgTk8uIEZJUlNUIFNUUkVFVAorCQkJCVNBTiBKT1NFIENBIDk1MTEyCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC02RCAgIChoZXgpCQlXSElURUNIQVBFTCBDT01QVVRFUiBXT1JLUworMDgwMDZEICAgICAoYmFzZSAxNikJCVdISVRFQ0hBUEVMIENPTVBVVEVSIFdPUktTCisJCQkJNzUgV0hJVEVDSEFQRUwgUk9BRAorCQkJCUxPTkRPTiBFMSAxRFUKKwkJCQlVTklURUQgS0lOR0RPTQorCiswOC0wMC02RSAgIChoZXgpCQlNQVNTQ09NUAorMDgwMDZFICAgICAoYmFzZSAxNikJCU1BU1NDT01QCisJCQkJT05FIFRFQ0hOT0xPR1kgUEFSSworCQkJCVdFU1RGT1JEIE1BIDAxODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC02RiAgIChoZXgpCQlQSElMSVBTIEFQRUxET09STiBCLlYuCiswODAwNkYgICAgIChiYXNlIDE2KQkJUEhJTElQUyBBUEVMRE9PUk4gQi5WLgorCQkJCVAuTy4gQk9YIDEwNQorCQkJCTczMDAgQUMgQVBFTERPT1JOCisJCQkJVEhFIE5FVEhFUkxBTkRTCisJCQkJTkVUSEVSTEFORFMKKworMDgtMDAtNzAgICAoaGV4KQkJTUlUU1VCSVNISSBFTEVDVFJJQyBDT1JQLgorMDgwMDcwICAgICAoYmFzZSAxNikJCU1JVFNVQklTSEkgRUxFQ1RSSUMgQ09SUC4KKwkJCQkzMjUgS0FNSU1BQ0hJWUEKKwkJCQlLQU1BS1VSQSBDSVRZIEtBTkFHV0EgUFJFRkVDVFVSRSAyNDcKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzA4LTAwLTcxICAgKGhleCkJCU1BVFJBIChEU0lFKQorMDgwMDcxICAgICAoYmFzZSAxNikJCU1BVFJBIChEU0lFKQorCQkJCVBBUkMgRCdBRkZBSVJFUyAtIEIuUC4gMjYyCisJCQkJMjcxMDAgVkFMIERFIFJFVUlMCisJCQkJRlJBTkNFCisJCQkJRlJBTkNFCisKKzA4LTAwLTcyICAgKGhleCkJCVhFUk9YIENPUlAgVU5JViBHUkFOVCBQUk9HUkFNCiswODAwNzIgICAgIChiYXNlIDE2KQkJWEVST1ggQ09SUCBVTklWIEdSQU5UIFBST0dSQU0KKwkJCQlaRVJPWCBTWVNURU1TIElOU1RJVFVURQorCQkJCU0vUyAxMDUgNTBDIDgwMCBQSElMTElQUyBST0FECisJCQkJV0VCU1RFUiBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNzMgICAoaGV4KQkJVEVDTUFSIElOQy4KKzA4MDA3MyAgICAgKGJhc2UgMTYpCQlURUNNQVIgSU5DLgorCQkJCTYyMjUgQ09DSFJBTiBST0FECisJCQkJU09MT04gT0ggNDQxMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTc0ICAgKGhleCkJCUNBU0lPIENPTVBVVEVSIENPLiBMVEQuCiswODAwNzQgICAgIChiYXNlIDE2KQkJQ0FTSU8gQ09NUFVURVIgQ08uIExURC4KKwkJCQkzLTItMSBTQUtBRS1DSE8KKwkJCQlIQU1VUkFNQUNISSwgTklTSElUTUFHVU4gVE9LWU8KKwkJCQkxOTAtMTEgSkFQQU4KKwkJCQlKQVBBTgorCiswOC0wMC03NSAgIChoZXgpCQlEQU5TSyBEQVRBIEVMRUNUUk9OSUsKKzA4MDA3NSAgICAgKGJhc2UgMTYpCQlEQU5TSyBEQVRBIEVMRUNUUk9OSUsKKwkJCQlIRVJMRVYgSE9WRURHQURFIDE5OQorCQkJCURLIDI3MzAgSEVSTEVWCisJCQkJREVOTUFSSworCQkJCURFTk1BUksKKworMDgtMDAtNzYgICAoaGV4KQkJUEMgTEFOIFRFQ0hOT0xPR0lFUworMDgwMDc2ICAgICAoYmFzZSAxNikJCVBDIExBTiBURUNITk9MT0dJRVMKKwkJCQk1NzgwIExJTkNPTE4gRFJJVkUgU1VJVEUgMTA2CisJCQkJTUlOTkVBUE9MSVMgTU4gNTU0MzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTc3ICAgKGhleCkJCVRTTCBDT01NVU5JQ0FUSU9OUyBMVEQuCiswODAwNzcgICAgIChiYXNlIDE2KQkJVFNMIENPTU1VTklDQVRJT05TIExURC4KKwkJCQlUSEUgTEFORFNCVVJZIEVTVEFURQorCQkJCUxPV0VSIEdVSUxERk9SRCBST0FEIEtOQVBISUwgV09LSU5HIFNVUlIKKwkJCQlFTkdMQU5ECisJCQkJVU5JVEVEIEtJTkdET00KKworMDgtMDAtNzggICAoaGV4KQkJQUNDRUxMIENPUlBPUkFUSU9OCiswODAwNzggICAgIChiYXNlIDE2KQkJQUNDRUxMIENPUlBPUkFUSU9OCisJCQkJNTAgU0FHSU5BVyBEUklWRQorCQkJCVJPQ0hFU1RFUiBOWSAxNDYyMworCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtNzkgICAoaGV4KQkJVEhFIERST0lEIFdPUktTCiswODAwNzkgICAgIChiYXNlIDE2KQkJVEhFIERST0lEIFdPUktTCisJCQkJUC5PLiBCT1ggQ1MgODE4MAorCQkJCVNBTiBSQUZBRUwgQ0EgOTQ5MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTdBICAgKGhleCkJCUlOREFUQQorMDgwMDdBICAgICAoYmFzZSAxNikJCUlOREFUQQorCQkJCUdKRVJEUlVNUyBWRUkgMTIgQworCQkJCU4tMDQ4NiBPU0xPIDQKKwkJCQlOT1JXQVkKKwkJCQlOT1JXQVkKKworMDgtMDAtN0IgICAoaGV4KQkJU0FOWU8gRUxFQ1RSSUMgQ08uIExURC4KKzA4MDA3QiAgICAgKGJhc2UgMTYpCQlTQU5ZTyBFTEVDVFJJQyBDTy4gTFRELgorCQkJCTEtMTgtMTMgSEFTSElSSURBTkkKKwkJCQlISVJBS0FUQS1TSEkKKwkJCQlPU0FLQSA1NzMgSkFQQU4KKwkJCQlKQVBBTgorCiswOC0wMC03QyAgIChoZXgpCQlWSVRBTElOSyBDT01NVU5JQ0FUSU9OUyBDT1JQLgorMDgwMDdDICAgICAoYmFzZSAxNikJCVZJVEFMSU5LIENPTU1VTklDQVRJT05TIENPUlAuCisJCQkJNDg3NjEgS0FUTyBST0FECisJCQkJRlJFTU9OVCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtN0UgICAoaGV4KQkJQU1BTEdBTUFURUQgV0lSRUxFU1MoQVVTKSBMVEQKKzA4MDA3RSAgICAgKGJhc2UgMTYpCQlBTUFMR0FNQVRFRCBXSVJFTEVTUyhBVVMpIExURAorCQkJCU5PUlRIIFJZREUgRElWSVNJT04KKwkJCQlQLk8uIEJPWCA5NiBOT1JUSCBSWURFIE5TVworCQkJCUFVU1RSQUxJQSAyMTEzCisJCQkJQVVTVFJBTElBCisKKzA4LTAwLTdGICAgKGhleCkJCUNBUk5FR0lFLU1FTExPTiBVTklWRVJTSVRZCiswODAwN0YgICAgIChiYXNlIDE2KQkJQ0FSTkVHSUUtTUVMTE9OIFVOSVZFUlNJVFkKKwkJCQlJTkZPUk1BVElPTiBURUNITk9MT0dZCisJCQkJU0NIRU5MRVkgUEFSSworCQkJCVBJVFRTQlVSR0UgUEEgMTUyMTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTgwICAgKGhleCkJCUFFUyBEQVRBIElOQy4KKzA4MDA4MCAgICAgKGJhc2UgMTYpCQlBRVMgREFUQSBJTkMuCisJCQkJMTkwMCBNSU5ORVNPVEEgQ09VUlQKKwkJCQlNSVNTSVNBVUdBIE9OVEFSSU8KKwkJCQlDQU5BREEgTDVOIEw1TiAzQzkKKwkJCQlDQU5BREEKKworMDgtMDAtODEgICAoaGV4KQkJLEFTVEVDSCBJTkMuCiswODAwODEgICAgIChiYXNlIDE2KQkJLEFTVEVDSCBJTkMuCisJCQkJNjcwIE5PUlRIIENPTU1FUkNJQUwgU1RSRUVUCisJCQkJTUFOQ0hFU1RFUiBOSCAwMzEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtODIgICAoaGV4KQkJVkVSSVRBUyBTT0ZUV0FSRQorMDgwMDgyICAgICAoYmFzZSAxNikJCVZFUklUQVMgU09GVFdBUkUKKwkJCQk0ODAwIEdSRUFUIEFNRVJJQ0EgUEFSS1dBWQorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC04MyAgIChoZXgpCQlTZWlrbyBJbnN0cnVtZW50cyBJbmMuCiswODAwODMgICAgIChiYXNlIDE2KQkJU2Vpa28gSW5zdHJ1bWVudHMgSW5jLgorCQkJCTgsIE5ha2FzZSAxLWNob21lIE1paGFtYS1rdQorCQkJCUNoaWJhLXNoaSBDaGliYSAyNjEtODUwNworCQkJCUpBUEFOCisKKzA4LTAwLTg0ICAgKGhleCkJCVRPTUVOIEVMRUNUUk9OSUNTIENPUlAuCiswODAwODQgICAgIChiYXNlIDE2KQkJVE9NRU4gRUxFQ1RST05JQ1MgQ09SUC4KKwkJCQkxLTEgVUNISVNBSVdBSS1DSE8gMkNIT01FCisJCQkJQ0hJWU9EQS1LVSBUT0tZTyAxMDAKKwkJCQlKQVBBTgorCQkJCUpBUEFOCisKKzA4LTAwLTg1ICAgKGhleCkJCUVMWFNJCiswODAwODUgICAgIChiYXNlIDE2KQkJRUxYU0kKKwkJCQkyMzM0IExVTkRZIFBMQUNFCisJCQkJU0FOIEpPU0UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTg2ICAgKGhleCkJCUtPTklDQSBNSU5PTFRBIEhPTERJTkdTLCBJTkMuCiswODAwODYgICAgIChiYXNlIDE2KQkJS09OSUNBIE1JTk9MVEEgSE9MRElOR1MsIElOQy4KKwkJCQkxLTYtMSwgTWFydW5vdWNoaSwKKwkJCQlDaGl5b2RhLWt1CisJCQkJVG9reW8gIDEwMC0wMDA1CisJCQkJSkFQQU4KKworMDgtMDAtODcgICAoaGV4KQkJWFlQTEVYCiswODAwODcgICAgIChiYXNlIDE2KQkJWFlQTEVYCisJCQkJMjk1IEZPU1RFUiBTVFJFRVQKKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLTg4ICAgKGhleCkJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorMDgwMDg4ICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jLgorCQkJCTE3NDUgVGVjaG5vbG9neSBEci4KKwkJCQlTYW4gSm9zZSBDQSA5NTExMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtODkgICAoaGV4KQkJS0lORVRJQ1MKKzA4MDA4OSAgICAgKGJhc2UgMTYpCQlLSU5FVElDUworCQkJCTMxODIgT0xEIFRVTk5FTCBST0FECisJCQkJU1VJVEUgSAorCQkJCUxBRkFZRVRURSBDQSA5NDU0OQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtOEEgICAoaGV4KQkJUGVyZlRlY2gsIEluYy4KKzA4MDA4QSAgICAgKGJhc2UgMTYpCQlQZXJmVGVjaCwgSW5jLgorCQkJCTYxMyBOVyBMb29wIDQxMAorCQkJCVN1aXRlIDUyMAorCQkJCVNBTiBBTlRPTklPIFRYIDc4MjE2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC04QiAgIChoZXgpCQlQWVJBTUlEIFRFQ0hOT0xPR1kgQ09SUC4KKzA4MDA4QiAgICAgKGJhc2UgMTYpCQlQWVJBTUlEIFRFQ0hOT0xPR1kgQ09SUC4KKwkJCQkxMjk1IENIQVJMRVNUT04gUk9BRAorCQkJCU1PVU5UQUlOIFZJRVcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTAwLThDICAgKGhleCkJCU5FVFdPUksgUkVTRUFSQ0ggQ09SUE9SQVRJT04KKzA4MDA4QyAgICAgKGJhc2UgMTYpCQlORVRXT1JLIFJFU0VBUkNIIENPUlBPUkFUSU9OCisJCQkJMjM4MCBOLiBST1NFIEFWRU5VRQorCQkJCU9YTkFSRCBDQSA5MzAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDAtOEQgICAoaGV4KQkJWFlWSVNJT04gSU5DLgorMDgwMDhEICAgICAoYmFzZSAxNikJCVhZVklTSU9OIElOQy4KKwkJCQkxMDEgRURHRVdBVEVSIERSSVZFCisJCQkJV0FLRUZJRUxEIE1BIDAxODgwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC04RSAgIChoZXgpCQlUQU5ERU0gQ09NUFVURVJTCiswODAwOEUgICAgIChiYXNlIDE2KQkJVEFOREVNIENPTVBVVEVSUworCQkJCTE0MzIxIFRBTkRFTSBCTFZELgorCQkJCUFVU1RJTiBUWCA3ODcyOC02NjEwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC04RiAgIChoZXgpCQlDSElQQ09NIENPUlBPUkFUSU9OCiswODAwOEYgICAgIChiYXNlIDE2KQkJQ0hJUENPTSBDT1JQT1JBVElPTgorCQkJCVNPVVRIQk9ST1VHSCBPRkZJQ0UKKwkJCQkxMTggVFVSTlBJS0UgUk9BRAorCQkJCVNPVVRIQk9ST1VHSCBNQSAwMTc3Mi0xODg2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wMC05MCAgIChoZXgpCQlTT05PTUEgU1lTVEVNUworMDgwMDkwICAgICAoYmFzZSAxNikJCVNPTk9NQSBTWVNURU1TCisJCQkJNDY0MCBBRE1JUkFMVFkgV0FZLCAgU1RFLiAjNjAwCisJCQkJTUFSSU5BIERFTCBSRVkgQ0EgOTAyOTItNjY5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMDgtRUEgICAoaGV4KQkJQU1TQworMDgwOEVBICAgICAoYmFzZSAxNikJCUFNU0MKKwkJCQkxNTc3NSBXIFNjaGFlZmVyIENvdXJ0CisJCQkJTmV3IEJlcmxpbiBXSSA1MzE1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtMEMtQzkgICAoaGV4KQkJTWlzc2lvbiBUZWNobm9sb2d5IEdyb3VwLCBkYmEgTWFnbWEKKzA4MENDOSAgICAgKGJhc2UgMTYpCQlNaXNzaW9uIFRlY2hub2xvZ3kgR3JvdXAsIGRiYSBNYWdtYQorCQkJCTk5MTggVmlhIFBhc2FyCisJCQkJU2FuIERpZWdvIENBIDkyMTI2CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0wRC04NCAgIChoZXgpCQlHRUNPLCBJbmMuCiswODBEODQgICAgIChiYXNlIDE2KQkJR0VDTywgSW5jLgorCQkJCTE3NTQgTi4gNDh0aCBTdC4KKwkJCQlNZXNhIEFaIDg1MjA1CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0xMS05NiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzA4MTE5NiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzA4LTE0LTQzICAgKGhleCkJCVVOSUJSQUlOIFMuQS4KKzA4MTQ0MyAgICAgKGJhc2UgMTYpCQlVTklCUkFJTiBTLkEuCisJCQkJODQsIEVUSE5JS0lTIEFOVElTVEFTRU9TCisJCQkJMTUyMzEgQVRIRU5TCisJCQkJR1JFRUNFCisJCQkJR1JFRUNFCisKKzA4LTE2LTUxICAgKGhleCkJCVNoZW56aGVuIFNlYSBTdGFyIFRlY2hub2xvZ3kgQ28uLEx0ZAorMDgxNjUxICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFNlYSBTdGFyIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCVNlYXN0YXIgaW5kdXN0cmlhbCBQYXJrLCBCYW9Mb25nICA2dGggQXZlCisJCQkJQmFvTG9uZyBpbmR1c3RyaWFsIENpdHksIExvbmdHYW5nICBEaXN0cmljdCwgU2hlbnpoZW4gR3VhbmdEb25nIFAuUi5DCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODExNgorCQkJCUNISU5BCisKKzA4LTE3LTM1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzA4MTczNSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTE3LUY0ICAgKGhleCkJCUlCTSBDb3JwCiswODE3RjQgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkyMDUxIE1pc3Npb24gQ29sbGVnZSBCbHZkCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTE4LTFBICAgKGhleCkJCXp0ZSBjb3Jwb3JhdGlvbgorMDgxODFBICAgICAoYmFzZSAxNikJCXp0ZSBjb3Jwb3JhdGlvbgorCQkJCTEyL0YuLFpURSBSJkQgQnVpbGRpbmcsa2VqaSBuYW4gUm9hZCAKKwkJCQlTaGVuemhlbiBndWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMDgtMTgtNEMgICAoaGV4KQkJQS4gUy4gVGhvbWFzLCBJbmMuCiswODE4NEMgICAgIChiYXNlIDE2KQkJQS4gUy4gVGhvbWFzLCBJbmMuCisJCQkJMzU1IFByb3ZpZGVuY2UgSHd5CisJCQkJV2VzdHdvb2QgTUEgMDIwOTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTE5LUE2ICAgKGhleCkJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorMDgxOUE2ICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorCQkJCUIxLTcsSHVhd2VpIEluZHVzdHJpYWwgQmFzZSxCYW50aWFuLExvbmdnYW5nCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODEyOQorCQkJCUNISU5BCisKKzA4LTFGLUYzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzA4MUZGMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LTI1LTIyICAgKGhleCkJCUFEVkFOU0VFCiswODI1MjIgICAgIChiYXNlIDE2KQkJQURWQU5TRUUKKwkJCQk5IFJ1ZSBBbGZyZWQgS2FzdGxlcgorCQkJCUNTMzA3NTAKKwkJCQlOQU5URVMgIDQ0MzA3CisJCQkJRlJBTkNFCisKKzA4LTJBLUQwICAgKGhleCkJCVNSRCBJbm5vdmF0aW9ucyBJbmMuCiswODJBRDAgICAgIChiYXNlIDE2KQkJU1JEIElubm92YXRpb25zIEluYy4KKwkJCQkxMTUyNSBWYWxsZXkgUmlkZ2UgRHIuIE5XCisJCQkJQ2FsZ2FyeSBBQiBUM0IgNVQ0CisJCQkJQ0FOQURBCisKKzA4LTJFLTVGICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMDgyRTVGICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC0zNy05QyAgIChoZXgpCQlUb3BheiBDby4gTFRELgorMDgzNzlDICAgICAoYmFzZSAxNikJCVRvcGF6IENvLiBMVEQuCisJCQkJQjMwNS0yMiwgQWNyb3Rvd2VyLCAxNTkxIEd3YW55YW5nLWRvbmcKKwkJCQlEb25nYW4tZ3UKKwkJCQlBbnlhbmctc2kgR3llb25nZ2ktRG8gNDMxLTA2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswOC0zOC1BNSAgIChoZXgpCQlGdW5rd2VyayBwbGV0dGFjIGVsZWN0cm9uaWMgR21iSAorMDgzOEE1ICAgICAoYmFzZSAxNikJCUZ1bmt3ZXJrIHBsZXR0YWMgZWxlY3Ryb25pYyBHbWJICisJCQkJV3VlcnpidXJnZXIgU3RyLiAxNTAKKwkJCQlGdWVydGggQmF2YXJpYSA5MDc2NgorCQkJCUdFUk1BTlkKKworMDgtM0UtOEUgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLkx0ZAorMDgzRThFICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC5Dby5MdGQKKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFBST1ZJTkNFIE9GIENISU5BCisKKzA4LTRFLTFDICAgKGhleCkJCUgyQSBTeXN0ZW1zLCBMTEMKKzA4NEUxQyAgICAgKGJhc2UgMTYpCQlIMkEgU3lzdGVtcywgTExDCisJCQkJNzU0NSBJcnZpbmUgQ2VudGVyIERyaXZlCisJCQkJU3VpdGUgMjAwCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCiswOC00RS1CRiAgIChoZXgpCQlCcm9hZCBOZXQgTXV4IENvcnBvcmF0aW9uCiswODRFQkYgICAgIChiYXNlIDE2KQkJQnJvYWQgTmV0IE11eCBDb3Jwb3JhdGlvbgorCQkJCTQtMS04IEtvdW5hbiBNaW5hdG8ta3UKKwkJCQlUb2t5byAgMTA4LTAwNzUKKwkJCQlKQVBBTgorCiswOC01MS0yRSAgIChoZXgpCQlPcmlvbiBEaWFnbm9zdGljYSBPeQorMDg1MTJFICAgICAoYmFzZSAxNikJCU9yaW9uIERpYWdub3N0aWNhIE95CisJCQkJS29pdnUtTWFua2thYW4gdGllIDYKKwkJCQlFc3BvbyAgMDIxMDAKKwkJCQlGSU5MQU5ECisKKzA4LTVCLTBFICAgKGhleCkJCUZvcnRpbmV0LCBJbmMuCiswODVCMEUgICAgIChiYXNlIDE2KQkJRm9ydGluZXQsIEluYy4KKwkJCQkxMDkwIEtpZmVyIFJvYWQKKwkJCQlTdW5ueXZhbGUgQ2FsaWZvcm5pYSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtNzUtNzIgICAoaGV4KQkJT2JlbHV4IE95CiswODc1NzIgICAgIChiYXNlIDE2KQkJT2JlbHV4IE95CisJCQkJS3V0b21vdGllIDYgQgorCQkJCUhlbHNpbmtpICAwMDM4MAorCQkJCUZJTkxBTkQKKworMDgtNzYtMTggICAoaGV4KQkJVmlFIFRlY2hub2xvZ2llcyBTZG4uIEJoZC4KKzA4NzYxOCAgICAgKGJhc2UgMTYpCQlWaUUgVGVjaG5vbG9naWVzIFNkbi4gQmhkLgorCQkJCW5vLiA4NS1BLCBMaW50YW5nIEJheWFuIExlcGFzIDExLAorCQkJCVBoYXNlIDQKKwkJCQlCYXlhbiBMZXBhcyBQZW5hbmcgMTE5MDAKKwkJCQlNQUxBWVNJQQorCiswOC03Ni05NSAgIChoZXgpCQlBdXRvIEluZHVzdHJpYWwgQ28uLCBMdGQuCiswODc2OTUgICAgIChiYXNlIDE2KQkJQXV0byBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0Rmxvb3IsICMyMzUgSGFuc2hpbiBJVCBUb3dlciwgCisJCQkJR3Vyby1kb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi03NjgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMDgtNzYtRkYgICAoaGV4KQkJVGhvbXNvbiBUZWxlY29tIEJlbGdpdW0KKzA4NzZGRiAgICAgKGJhc2UgMTYpCQlUaG9tc29uIFRlbGVjb20gQmVsZ2l1bQorCQkJCVByaW5zIEJvdWRld2lqbmxhYW4gNDcKKwkJCQlFZGVnZW0gICAyNjUwCisJCQkJQkVMR0lVTQorCiswOC04Ni0zQiAgIChoZXgpCQlCZWxraW4gSW50ZXJuYXRpb25hbCwgSW5jLgorMDg4NjNCICAgICAoYmFzZSAxNikJCUJlbGtpbiBJbnRlcm5hdGlvbmFsLCBJbmMuCisJCQkJMTIwNDUgRWFzdCBXYXRlcmZyb250IERyaXZlCisJCQkJUGxheWEgVmlzdGEgQ0EgOTAwOTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LThELUM4ICAgKGhleCkJCVJ5b3dhIEVsZWN0cm9uaWNzIENvLixMdGQKKzA4OERDOCAgICAgKGJhc2UgMTYpCQlSeW93YSBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJMTQ4My0xIFRha2FoYXJhLW1hY2hpCisJCQkJWWFtYWdhdGEtc2hpIFlhbWFnYXRhLXByZWYuIDk5MDAwMDIKKwkJCQlKQVBBTgorCiswOC04Ri0yQyAgIChoZXgpCQlIaWxscyBTb3VuZCBWaXNpb24gJiBMaWdodGluZworMDg4RjJDICAgICAoYmFzZSAxNikJCUhpbGxzIFNvdW5kIFZpc2lvbiAmIExpZ2h0aW5nCisJCQkJMSBDbHlkZSBTdHJlZXQKKwkJCQlTaWx2ZXJ3YXRlciBOZXcgU291dGggV2FsZXMgMjEyOAorCQkJCUFVU1RSQUxJQQorCiswOC05RS0wMSAgIChoZXgpCQlRVUFOVEEgQ09NUFVURVIgSU5DLgorMDg5RTAxICAgICAoYmFzZSAxNikJCVFVQU5UQSBDT01QVVRFUiBJTkMuCisJCQkJTm8uMjExLCBXZW4gSHdhIDJuZCBSZC4sIEt1ZWkgU2hhbiBIc2lhbmcsVGFvIFl1YW4gU2hpZW4sIFRhaXdhbiwgUi4gTy4gQy4KKwkJCQlUYW95dWFuIFRhaXdhbiAzMzM3NworCQkJCVRBSVdBTiwgUFJPVklOQ0UgT0YgQ0hJTkEKKworMDgtOUYtOTcgICAoaGV4KQkJTEVST1kgQVVUT01BVElPTgorMDg5Rjk3ICAgICAoYmFzZSAxNikJCUxFUk9ZIEFVVE9NQVRJT04KKwkJCQkzNSwgQm91bGV2YXJkIGR1IExpYnJlIEVjaGFuZ2UKKwkJCQlTYWludCBPcmVucyBkZSBHYW1ldmlsbGUgIDMxNjUwCisJCQkJRlJBTkNFCisKKzA4LUExLTJCICAgKGhleCkJCVNoZW5aaGVuIEVaTCBUZWNobm9sb2d5IENvLiwgTHRkCiswOEExMkIgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gRVpMIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlSTTIxQiwgQnVpbGRpbmcgMiwgQ2hpbmEgUGhvZW5peCBCdWlsZGluZywKKwkJCQlOby4gMjAwOCBPZiBTaGVubmFuIEF2ZW51ZSwgRnV0aWFuIERpc3RyaWN0CisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODAyNgorCQkJCUNISU5BCisKKzA4LUE5LTVBICAgKGhleCkJCUF6dXJld2F2ZQorMDhBOTVBICAgICAoYmFzZSAxNikJCUF6dXJld2F2ZQorCQkJCThGLiwgTm8uIDk0LCBCYW96aG9uZyBSZC4sIFhpbmRpYW4gCisJCQkJTmV3IFRhaXBlaSBDaXR5ICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzA4LUFDLUE1ICAgKGhleCkJCUJlbnUgVmlkZW8sIEluYy4KKzA4QUNBNSAgICAgKGJhc2UgMTYpCQlCZW51IFZpZGVvLCBJbmMuCisJCQkJMzAwIENvbmNvcmQgUmQuLCBTdWl0ZSAjMTEwCisJCQkJQmlsbGVyaWNhIE1BIDAxODIxCisJCQkJVU5JVEVEIFNUQVRFUworCiswOC1CNC1DRiAgIChoZXgpCQlBYmljb20gSW50ZXJuYXRpb25hbAorMDhCNENGICAgICAoYmFzZSAxNikJCUFiaWNvbSBJbnRlcm5hdGlvbmFsCisJCQkJVGhlIE9sZCBHcmFtbWFyIFNjaG9vbAorCQkJCVBob2VuaXggQmFuaworCQkJCU1hcmtldCBEcmF5dG9uIFNocm9wc2hpcmUgVEY5IDFKUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzA4LUI3LUVDICAgKGhleCkJCVdpcmVsZXNzIFNlaXNtaWMKKzA4QjdFQyAgICAgKGJhc2UgMTYpCQlXaXJlbGVzcyBTZWlzbWljCisJCQkJMTMxMDAgU1cgRnJlZXdheQorCQkJCVN1aXRlIDE1MAorCQkJCVN1Z2FyIExhbmQgVFggNzc0NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LUJCLUNDICAgKGhleCkJCUFLLU5PUkQgRURWIFZFUlRSSUVCU0dFUy4gbWJICiswOEJCQ0MgICAgIChiYXNlIDE2KQkJQUstTk9SRCBFRFYgVkVSVFJJRUJTR0VTLiBtYkgKKwkJCQlGUklFRFJJQ0hTVFJBU1NFIDEwCisJCQkJMjU0MzYgVE9STkVTQ0ggIAorCQkJCUdFUk1BTlkKKworMDgtQkUtMDkgICAoaGV4KQkJQXN0cm9sIEVsZWN0cm9uaWMgQUcKKzA4QkUwOSAgICAgKGJhc2UgMTYpCQlBc3Ryb2wgRWxlY3Ryb25pYyBBRworCQkJCVZvcmRlcmkgQu+/vWRlIDMKKwkJCQlHZXdlcmJlaGF1cyBDYXNvcmEKKwkJCQlPYmVycm9ocmRvcmYgQUcgNTQ1MgorCQkJCVNXSVRaRVJMQU5ECisKKzA4LUQwLTlGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzA4RDA5RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LUQyLTlBICAgKGhleCkJCVByb2Zvcm1hdGlxdWUKKzA4RDI5QSAgICAgKGJhc2UgMTYpCQlQcm9mb3JtYXRpcXVlCisJCQkJMTAgYmlzIHJ1ZSBMdWNpZW4gVm9pbGluCisJCQkJUHV0ZWF1eCAgOTI4MDAKKwkJCQlGUkFOQ0UKKworMDgtRDQtMEMgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswOEQ0MEMgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswOC1ENS1DMCAgIChoZXgpCQlTZWVycyBUZWNobm9sb2d5IENvLiwgTHRkCiswOEQ1QzAgICAgIChiYXNlIDE2KQkJU2VlcnMgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCTEyMTAgVGVjaGNlbnRlciwgU0tuVGVjaG5vcGFyaywgMTkwLTEKKwkJCQlTYW5nZGFld29uZC1kb25nLCBKdW5nd29uLWd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8gNDYyLTcyMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswOC1FNi03MiAgIChoZXgpCQlKRUJTRUUgRUxFQ1RST05JQ1MgQ08uLExURC4KKzA4RTY3MiAgICAgKGJhc2UgMTYpCQlKRUJTRUUgRUxFQ1RST05JQ1MgQ08uLExURC4KKwkJCQkyNC0zLCBTSU4gTEUgUk9BRCwgCisJCQkJVEFJTkFOICA3MDI2OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMDgtRUEtNDQgICAoaGV4KQkJQWVyb2hpdmUgTmV0d29ya3MsIEluYy4KKzA4RUE0NCAgICAgKGJhc2UgMTYpCQlBZXJvaGl2ZSBOZXR3b3JrcywgSW5jLgorCQkJCTMzMCBHaWJyYWx0YXIgRHJpdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzA4LUVELUI5ICAgKGhleCkJCSBIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorMDhFREI5ICAgICAoYmFzZSAxNikJCSBIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJIFNoYW5naGFpICAyMDE2MTMKKwkJCQlDSElOQQorCiswOC1GMi1GNCAgIChoZXgpCQlOZXQgT25lIFBhcnRuZXJzIENvLixMdGQuCiswOEYyRjQgICAgIChiYXNlIDE2KQkJTmV0IE9uZSBQYXJ0bmVycyBDby4sTHRkLgorCQkJCTItOCBIaWdhc2hpIFNoaW5hZ2F3YSAyLWNob21lLAorCQkJCVNoaW5hZ2F3YS1rdSwKKwkJCQlUb2t5byAgMTQwMDAwMgorCQkJCUpBUEFOCisKKzA4LUY2LUY4ICAgKGhleCkJCUdFVCBFbmdpbmVlcmluZworMDhGNkY4ICAgICAoYmFzZSAxNikJCUdFVCBFbmdpbmVlcmluZworCQkJCTkzNTAgQm9uZCBBdmUKKwkJCQlFbCBDYWpvbiBDQSA5MjAyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMDgtRkEtRTAgICAoaGV4KQkJRm9oaG4gQXVkaW8gQUcKKzA4RkFFMCAgICAgKGJhc2UgMTYpCQlGb2hobiBBdWRpbyBBRworCQkJCUhvaGVzIEdlc3RhZGUgMy03CisJCQkJTnVlcnRpbmdlbiBCVyA3MjYyMgorCQkJCUdFUk1BTlkKKworMDgtRkMtNTIgICAoaGV4KQkJT3BlblhTIEJWCiswOEZDNTIgICAgIChiYXNlIDE2KQkJT3BlblhTIEJWCisJCQkJS29haWJvc2sgMworCQkJCVRlcndpc3BlbCBGcmllc2xhbmQgODQwN0VECisJCQkJTkVUSEVSTEFORFMKKworMEMtMTMtMEIgICAoaGV4KQkJVW5pcW90ZXEgTHRkLgorMEMxMzBCICAgICAoYmFzZSAxNikJCVVuaXFvdGVxIEx0ZC4KKwkJCQlMZW1taW5rYWlzZW5rYXR1IDE0LTE4IEEKKwkJCQlUdXJrdSAgMjA1MjAgCisJCQkJRklOTEFORAorCiswQy0xNS1DNSAgIChoZXgpCQlTRFRFQyBDby4sIEx0ZC4KKzBDMTVDNSAgICAgKGJhc2UgMTYpCQlTRFRFQyBDby4sIEx0ZC4KKwkJCQkxNjcsIENodXJ5ZS0yRG9uZywgU2FzYW5nLUd1LAorCQkJCUJ1c2FuICAgNjE3LTcxNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswQy0xNy1GMSAgIChoZXgpCQlURUxFQ1NZUworMEMxN0YxICAgICAoYmFzZSAxNikJCVRFTEVDU1lTCisJCQkJMzEgY2hlbWluIGR1IGZpZWYgYXV4IHByZXRyZXMKKwkJCQlMJ09SQlJJRSAgODUyMDAKKwkJCQlGUkFOQ0UKKworMEMtMUQtQzIgICAoaGV4KQkJU2VBSCBOZXR3b3JrcworMEMxREMyICAgICAoYmFzZSAxNikJCVNlQUggTmV0d29ya3MKKwkJCQk5RiwgSVQgVmVudHVyZSBUb3dlciBFYXN0IFdpbmcgNzggR2FyYWstRG9uZywKKwkJCQlTZW91bCBTb25ncGEtZ3UgMTM4LTk1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswQy0yNy01NSAgIChoZXgpCQlWYWx1YWJsZSBUZWNob2xvZ2llcyBMaW1pdGVkCiswQzI3NTUgICAgIChiYXNlIDE2KQkJVmFsdWFibGUgVGVjaG9sb2dpZXMgTGltaXRlZAorCQkJCTYwMiwgQ2VudHJlIFBvaW50LCBKLkIuTmFnYXIsCisJCQkJQW5kaGVyaS1LdXJsYSBSb2FkLCBBbmRoZXJpIChFKQorCQkJCU11bWJhaSBNYWhhcmFzaHRyYSA0MDAwNTkKKwkJCQlJTkRJQQorCiswQy0yQS02OSAgIChoZXgpCQllbGVjdHJpYyBpbXAsIGluY29ycG9yYXRlZAorMEMyQTY5ICAgICAoYmFzZSAxNikJCWVsZWN0cmljIGltcCwgaW5jb3Jwb3JhdGVkCisJCQkJMTA5OCBXIEV2ZWx5biBBdmUsIFN0ZSAxMTgKKwkJCQlTdW5ueXZhbGUgQ2FsaWZvcm5pYSA5NDA4NgorCQkJCVVOSVRFRCBTVEFURVMKKworMEMtMzctREMgICAoaGV4KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorMEMzN0RDICAgICAoYmFzZSAxNikJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzBDLTM5LTU2ICAgKGhleCkJCU9ic2VydmF0b3IgaW5zdHJ1bWVudHMKKzBDMzk1NiAgICAgKGJhc2UgMTYpCQlPYnNlcnZhdG9yIGluc3RydW1lbnRzCisJCQkJUmlldGRla2tlcnN0cmFhdCA2CisJCQkJUmlkZGVya2VyayBadWlkIEhvbGxhbmQgMjk4NCBCTQorCQkJCU5FVEhFUkxBTkRTCisKKzBDLTNDLTY1ICAgKGhleCkJCURvbWUgSW1hZ2luZyBJbmMKKzBDM0M2NSAgICAgKGJhc2UgMTYpCQlEb21lIEltYWdpbmcgSW5jCisJCQkJNDAwIEZpZnRoIEF2IAorCQkJCVN1aXRlIDUwMAorCQkJCVdhbHRoYW0gTUEgMDI0NTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzBDLTQ2LTlEICAgKGhleCkJCU1TIFNlZGNvCiswQzQ2OUQgICAgIChiYXNlIDE2KQkJTVMgU2VkY28KKwkJCQk4NzAxIENhc3RsZSBQYXJrIERyaXZlCisJCQkJSW5kaWFuYXBvbGlzICA0NjI1NgorCQkJCVVOSVRFRCBTVEFURVMKKworMEMtNEMtMzkgICAoaGV4KQkJTWl0cmFzdGFyIFRlY2hub2xvZ3kgCiswQzRDMzkgICAgIChiYXNlIDE2KQkJTWl0cmFzdGFyIFRlY2hub2xvZ3kgCisJCQkJNEYgTm8uNiBJbm5vdmF0aW9uIFJvYWQgSUkKKwkJCQlTY2llbmNlIFBhcmsKKwkJCQlIc2luLUNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiswQy01MS1GNyAgIChoZXgpCQlDSEFVVklOIEFSTk9VWAorMEM1MUY3ICAgICAoYmFzZSAxNikJCUNIQVVWSU4gQVJOT1VYCisJCQkJTEEgUVVFVUUgREVWRUUKKwkJCQlSRVVYICAxNDEzMAorCQkJCUZSQU5DRQorCiswQy01Ni01QyAgIChoZXgpCQlIeUJyb2FkIFZpc2lvbiAoSG9uZyBLb25nKSBUZWNobm9sb2d5IENvIEx0ZAorMEM1NjVDICAgICAoYmFzZSAxNikJCUh5QnJvYWQgVmlzaW9uIChIb25nIEtvbmcpIFRlY2hub2xvZ3kgQ28gTHRkCisJCQkJVW5pdCAxODA4IDE4L0YgVG93ZXIgMyBFbnRlcnByaXNlIFNxdWFyZQorCQkJCTkgU2hldW5nIFl1ZXQgUm9hZAorCQkJCUtvd2xvb24gQmF5ICAKKwkJCQlIT05HIEtPTkcKKworMEMtNTctRUIgICAoaGV4KQkJTXVlbGxlciBTeXN0ZW1zCiswQzU3RUIgICAgIChiYXNlIDE2KQkJTXVlbGxlciBTeXN0ZW1zCisJCQkJNDggTGVvbmEgRHJpdmUsIFN1aXRlIEMKKwkJCQlNaWRkbGVib3JvIE1BIDAyMzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCiswQy01QS0xOSAgIChoZXgpCQlBeHRpb24gU2RuIEJoZAorMEM1QTE5ICAgICAoYmFzZSAxNikJCUF4dGlvbiBTZG4gQmhkCisJCQkJQTEzLTA3LCBTdWJhbmcgQXZlbnVlIFNlcnZpY2VkIFN1aXRlcworCQkJCVBlcnNpYXJhbiBLZW1hanVhbiBTUzE2CisJCQkJU3ViYW5nIEpheWEgU2VsYW5nb3IgNDc1MDAKKwkJCQlNQUxBWVNJQQorCiswQy02MC03NiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCiswQzYwNzYgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUKKwkJCQlTaGFuZ2hhaSAgMjAxNjEzCisJCQkJQ0hJTkEKKworMEMtNkUtNEYgICAoaGV4KQkJUHJpbWVWT0xUIENvLiwgTHRkLgorMEM2RTRGICAgICAoYmFzZSAxNikJCVByaW1lVk9MVCBDby4sIEx0ZC4KKwkJCQkyRi0zLCBOby4gOSwgTGFuZSAzLCBKaWh1IFJkLCBOZWlodQorCQkJCVRhaXBlaSAgMTE0OTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzBDLTcxLTVEICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMEM3MTVEICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswQy03NC1DMiAgIChoZXgpCQlBcHBsZSwgSW5jLgorMEM3NEMyICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiswQy03NS0yMyAgIChoZXgpCQlCRUlKSU5HIEdFSFVBIENBVFYgTkVUV09SSyBDTy4sTFRECiswQzc1MjMgICAgIChiYXNlIDE2KQkJQkVJSklORyBHRUhVQSBDQVRWIE5FVFdPUksgQ08uLExURAorCQkJCU5vLjM1LE4uSHVheXVhbiBSRC4sSGFpZGlhbiBEaXN0cmljdAorCQkJCUJFSUpJTkcgIDEwMDA4MworCQkJCUNISU5BCisKKzBDLTc3LTFBICAgKGhleCkJCUFwcGxlLCBJbmMuCiswQzc3MUEgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIGluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzBDLTdELTdDICAgKGhleCkJCUtleGlhbmcgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDbywgTHRkLgorMEM3RDdDICAgICAoYmFzZSAxNikJCUtleGlhbmcgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDbywgTHRkLgorCQkJCVJvb20gMTUwMiwgTG9uZ3hpIEhvdGVsIE5vLjM3ODggSmlhbmduYW4gQXZlbnVlLiAKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwNTMKKwkJCQlDSElOQQorCiswQy04MS0xMiAgIChoZXgpCQlQUklWQVRFCiswQzgxMTIgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzBDLTgyLTMwICAgKGhleCkJCVNIRU5aSEVOIE1BR05VUyBURUNITk9MT0dJRVMgQ08uLExURAorMEM4MjMwICAgICAoYmFzZSAxNikJCVNIRU5aSEVOIE1BR05VUyBURUNITk9MT0dJRVMgQ08uLExURAorCQkJCWMtNTA0LFNreXdvcnRoIEJ1aWxkaW5nLE5vLjggUm9hZCxIaWdoLXRlY2ggc291dGgsTmFuc2hhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMEMtODItNkEgICAoaGV4KQkJV3VoYW4gSHVhZ29uZyBHZW51aW5lIE9wdGljcyBUZWNobm9sb2d5IENvLiwgTHRkCiswQzgyNkEgICAgIChiYXNlIDE2KQkJV3VoYW4gSHVhZ29uZyBHZW51aW5lIE9wdGljcyBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJU2NpZW5jZSAmIFRlY2hub2xvZ3kgUmVnaW9uIG9mIEhVU1QsIERvbmdodSBIaWdoLVRlY2ggWm9uZSAKKwkJCQlXdWhhbiBIdWJlaSA0MzAyMjMKKwkJCQlDSElOQQorCiswQy04NC0xMSAgIChoZXgpCQlBLk8uIFNtaXRoIFdhdGVyIFByb2R1Y3RzCiswQzg0MTEgICAgIChiYXNlIDE2KQkJQS5PLiBTbWl0aCBXYXRlciBQcm9kdWN0cworCQkJCTI1NTg5IEh3eSAxCisJCQkJTWNCZWUgU0MgMjkxMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzBDLTg1LTI1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzBDODUyNSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiswQy04Qi1GRCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzBDOEJGRCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzBDLThELTk4ICAgKGhleCkJCVRPUCBFSUdIVCBJTkQgQ09SUAorMEM4RDk4ICAgICAoYmFzZSAxNikJCVRPUCBFSUdIVCBJTkQgQ09SUAorCQkJCThGLixObzc5LTEgWmhvdXppIFN0LiwgTmVpaHUgRGlzdHJpY3QsIFRhaXBlaSBDaXR5ICAoTmVpaHUgVGVjaG5vbG9neSBQYXJrKQorCQkJCVRhaXBlaSAgMTE0OTMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzBDLTkyLTRFICAgKGhleCkJCVJpY2UgTGFrZSBXZWlnaGluZyBTeXN0ZW1zCiswQzkyNEUgICAgIChiYXNlIDE2KQkJUmljZSBMYWtlIFdlaWdoaW5nIFN5c3RlbXMKKwkJCQkyMzAgV2VzdCBDb2xlbWFuIFN0CisJCQkJUmljZSBMYWtlIFdJIDU0ODY4CisJCQkJVU5JVEVEIFNUQVRFUworCiswQy05RC01NiAgIChoZXgpCQlDb25zb3J0IENvbnRyb2xzIEx0ZAorMEM5RDU2ICAgICAoYmFzZSAxNikJCUNvbnNvcnQgQ29udHJvbHMgTHRkCisJCQkJMTMgQ2FtcGlvbiBUZXJyYWNlCisJCQkJTGVhbWluZ3RvbiBTcGEgIENWMzIgNFNVCisJCQkJVU5JVEVEIEtJTkdET00KKworMEMtOUUtOTEgICAoaGV4KQkJU2Fua29zaGEgQ29ycG9yYXRpb24KKzBDOUU5MSAgICAgKGJhc2UgMTYpCQlTYW5rb3NoYSBDb3Jwb3JhdGlvbgorCQkJCTEtMTIsIE1peWFzaGltbworCQkJCTEtQ2hvbWUsIENodW8ta3UKKwkJCQlTYWdhbWloYXJhLXNoaSBLYW5hZ2F3YS1rZW4gMjUyLTAyMTIKKwkJCQlKQVBBTgorCiswQy1BMS0zOCAgIChoZXgpCQlCbGlucSBXaXJlbGVzcyBJbmMuCiswQ0ExMzggICAgIChiYXNlIDE2KQkJQmxpbnEgV2lyZWxlc3MgSW5jLgorCQkJCTQwMCBNQVJDSCBSRCBVTklUIDI0MAorCQkJCUtBTkFUQSBPTiBLMkszSDQKKwkJCQlDQU5BREEKKworMEMtQTItRjQgICAoaGV4KQkJQ2hhbWVsZW9uIFRlY2hub2xvZ3kgKFVLKSBMaW1pdGVkCiswQ0EyRjQgICAgIChiYXNlIDE2KQkJQ2hhbWVsZW9uIFRlY2hub2xvZ3kgKFVLKSBMaW1pdGVkCisJCQkJV2ludGVycyBCYXJuLCBIYWdncyBGYXJtIEJ1c2luZXNzIFBhcmsKKwkJCQlIYWdncyBSb2FkLCBGb2xsaWZvb3QKKwkJCQlIYXJyb2dhdGUgTm9ydGggWW9ya3NoaXJlIEhHMyAxRVEKKwkJCQlVTklURUQgS0lOR0RPTQorCiswQy1BNC0wMiAgIChoZXgpCQlBbGNhdGVsIEx1Y2VudCBJUEQKKzBDQTQwMiAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIEx1Y2VudCBJUEQKKwkJCQk2MDAgTWFyY2ggRHJpdmUKKwkJCQlLYW5hdGEgT250YXJpbyBrMmsyZTYKKwkJCQlDQU5BREEKKworMEMtQTQtMkEgICAoaGV4KQkJT0IgVGVsZWNvbSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzBDQTQyQSAgICAgKGJhc2UgMTYpCQlPQiBUZWxlY29tIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCTE3L0YsIEppYW5nb25nIEJ1aWxkaW5nCisJCQkJTm8uMjAgV2Vuc2FuIFJvYWQKKwkJCQlIYW5nemhvdSBaaGVKaWFuZyAzMTAwMTIKKwkJCQlDSElOQQorCiswQy1BRi01QSAgIChoZXgpCQlHRU5VUyBQT1dFUiBJTkZSQVNUUlVDVFVSRVMgTElNSVRFRAorMENBRjVBICAgICAoYmFzZSAxNikJCUdFTlVTIFBPV0VSIElORlJBU1RSVUNUVVJFUyBMSU1JVEVECisJCQkJU1BMLTMgUklJQ08gSU5EVVNUUklBTCBBUkVBCisJCQkJU0lUQVBVUkEKKwkJCQlKQUlQVVIgUkFKQVNUSEFOIDMwMjAyMgorCQkJCUlORElBCisKKzBDLUI0LUVGICAgKGhleCkJCURpZ2llbmNlIENvLixMdGQuCiswQ0I0RUYgICAgIChiYXNlIDE2KQkJRGlnaWVuY2UgQ28uLEx0ZC4KKwkJCQkyMDQgQnVpbGRpbmcgZm9yIEdyb3d0aCwgR3VtaSBFbGVjdHJvbmljcyZJbmZvcm1hdGlvbiBUZWNobm9sb2d5IFJlc2VhcmNoIEluc3RpdHV0ZSwgMTcgQ2hlb21kYW5naWVvcC0xcm8sIAorCQkJCVNhbmRvbmctbXllb24sIEd1bWktc2ksIAorCQkJCUd1bWkgR3llb25nYnVrIAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiswQy1CRi0xNSAgIChoZXgpCQlHZW5ldGVjCiswQ0JGMTUgICAgIChiYXNlIDE2KQkJR2VuZXRlYworCQkJCTIyODAgYm91bCBBbGZyZWQtTm9iZWwKKwkJCQlTdWl0ZSA0MDAKKwkJCQlTdC4gTGF1cmVudCBRdWViZWMgSDRTIDJBNAorCQkJCUNBTkFEQQorCiswQy1DMC1DMCAgIChoZXgpCQlNQUdORVRJIE1BUkVMTEkgU0lTVEVNQVMgRUxFQ1RST05JQ09TIE1FWElDTworMENDMEMwICAgICAoYmFzZSAxNikJCU1BR05FVEkgTUFSRUxMSSBTSVNURU1BUyBFTEVDVFJPTklDT1MgTUVYSUNPCisJCQkJQVYuIElORFVTVFJJQSAyMC8yMQorCQkJCUVMIFRSRUJPTAorCQkJCVRFUE9UWk9UTEFOIE1FWElDTyA1NDYwMAorCQkJCU1FWElDTworCiswQy1DMy1BNyAgIChoZXgpCQlNZXJpdGVjCiswQ0MzQTcgICAgIChiYXNlIDE2KQkJTWVyaXRlYworCQkJCVAuTy4gQm94IDgwMDMKKwkJCQlQYWluZXN2aWxsZSBPaGlvIDQ0MDc3CisJCQkJVU5JVEVEIFNUQVRFUworCiswQy1DNi1BQyAgIChoZXgpCQlEQUdTCiswQ0M2QUMgICAgIChiYXNlIDE2KQkJREFHUworCQkJCUFjZSBIaWdoIGVuZCBUb3dlciA3dGggMTgwMgorCQkJCVNlb3VsIEdldW1jaGVvbi1ndSAxNTMtODAyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzBDLUM5LUM2ICAgKGhleCkJCVNhbXdpbiBIb25nIEtvbmcgTGltaXRlZAorMENDOUM2ICAgICAoYmFzZSAxNikJCVNhbXdpbiBIb25nIEtvbmcgTGltaXRlZAorCQkJCVJtIDkwMS05MDIsIDkvRiwgRnV0dXJhIFBsYXphLAorCQkJCTExMS0xMTMgSG93IE1pbmcgU3RyZWV0LCBLd3VuIFRvbmcKKwkJCQlIb25nIEtvbmcgIAorCQkJCUNISU5BCisKKzBDLUNELUQzICAgKGhleCkJCUVBU1RSSVZFUiBURUNITk9MT0dZIENPLiwgTFRELgorMENDREQzICAgICAoYmFzZSAxNikJCUVBU1RSSVZFUiBURUNITk9MT0dZIENPLiwgTFRELgorCQkJCTMwIEpJTk5JVSBYSU5DVU4KKwkJCQlHVUFOQ0hFTkcgRElTVFJJQ1QKKwkJCQlET05HR1VBTiBHVUFOR0RPTkcgNTIzMDEwCisJCQkJQ0hJTkEKKworMEMtRDItOTIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCiswQ0QyOTIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCiswQy1EMi1CNSAgIChoZXgpCQlCaW5hdG9uZSBUZWxlY29tbXVuaWNhdGlvbiBQdnQuIEx0ZAorMENEMkI1ICAgICAoYmFzZSAxNikJCUJpbmF0b25lIFRlbGVjb21tdW5pY2F0aW9uIFB2dC4gTHRkCisJCQkJQTM2LCBHL0YsIFNlY3RvciA0CisJCQkJTm9pZGEKKwkJCQlVdHRhciBQcmFkZXNoIDIwMTMwMQorCQkJCUlORElBCisKKzBDLUQ1LTAyICAgKGhleCkJCVdlc3RlbGwKKzBDRDUwMiAgICAgKGJhc2UgMTYpCQlXZXN0ZWxsCisJCQkJNzUwIE4uIENvbW1vbnMgZHIuCisJCQkJQXVyb3JhIElMIDYwNTA0CisJCQkJVU5JVEVEIFNUQVRFUworCiswQy1ENi05NiAgIChoZXgpCQlBbWltb24gTHRkCiswQ0Q2OTYgICAgIChiYXNlIDE2KQkJQW1pbW9uIEx0ZAorCQkJCTIgTWFza2l0IHN0CisJCQkJUE8gQm94IDEyNjE4CisJCQkJSGVyemxpYSAgNDY3MzMKKwkJCQlJU1JBRUwKKworMEMtRDctQzIgICAoaGV4KQkJQXhpdW0gVGVjaG5vbG9naWVzLCBJbmMuCiswQ0Q3QzIgICAgIChiYXNlIDE2KQkJQXhpdW0gVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNjYyNSBOLiBDYWxsZSBFdmEgTWlyYW5kYQorCQkJCVN0ZSBCCisJCQkJSXJ3aW5kYWxlIENBIDkxNzAyCisJCQkJVU5JVEVEIFNUQVRFUworCiswQy1ERC1FRiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorMENEREVGICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTkwCisJCQkJRklOTEFORAorCiswQy1ERi1BNCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzBDREZBNCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMEMtRTUtRDMgICAoaGV4KQkJREggZWxlY3Ryb25pY3MgR21iSAorMENFNUQzICAgICAoYmFzZSAxNikJCURIIGVsZWN0cm9uaWNzIEdtYkgKKwkJCQlBbSBBbmdlciA4CisJCQkJQmVyZ2VuICA4MzM0NgorCQkJCUdFUk1BTlkKKworMEMtRTctMDkgICAoaGV4KQkJRm94IENyeXB0byBCLlYuCiswQ0U3MDkgICAgIChiYXNlIDE2KQkJRm94IENyeXB0byBCLlYuCisJCQkJUC5PLiBib3ggNjM4CisJCQkJRGVsZnQgWkggMjYwMCBBUAorCQkJCU5FVEhFUkxBTkRTCisKKzBDLUU4LTJGICAgKGhleCkJCUJvbmZpZ2xpb2xpIFZlY3Ryb24gR21iSAorMENFODJGICAgICAoYmFzZSAxNikJCUJvbmZpZ2xpb2xpIFZlY3Ryb24gR21iSAorCQkJCUV1cm9wYXJrIEZpY2h0ZW5oYWluIEI2CisJCQkJS3JlZmVsZCBOUlcgNDc4MDcKKwkJCQlHRVJNQU5ZCisKKzBDLUU5LTM2ICAgKGhleCkJCUVMSU1PUyBzcmwKKzBDRTkzNiAgICAgKGJhc2UgMTYpCQlFTElNT1Mgc3JsCisJCQkJdmlhIEdhbHZhbmkgNS9DCisJCQkJVFJJRVNURSAgMzQxMzMKKwkJCQlJVEFMWQorCiswQy1FRS1FNiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCiswQ0VFRTYgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUKKwkJCQlTaGFuZ2hhaSAgMjAxNjEzCisJCQkJQ0hJTkEKKworMEMtRUYtN0MgICAoaGV4KQkJQW5hQ29tIEluYworMENFRjdDICAgICAoYmFzZSAxNikJCUFuYUNvbSBJbmMKKwkJCQkxOTk2IEx1bmR5IEF2ZQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiswQy1GMC1CNCAgIChoZXgpCQlHbG9iYWxzYXQgSW50ZXJuYXRpb25hbCBUZWNobm9sb2d5IEx0ZAorMENGMEI0ICAgICAoYmFzZSAxNikJCUdsb2JhbHNhdCBJbnRlcm5hdGlvbmFsIFRlY2hub2xvZ3kgTHRkCisJCQkJMTd0aCBmbG9vcixDaGluYSBZb3VzZSBCdWlsZGluZyxOby42MDEzIFNoZW5uYW4gQXZlbnVlLEZ1dGlhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworMEMtRjMtRUUgICAoaGV4KQkJRU0gTWljcm9lbGVjdHJvbmljCiswQ0YzRUUgICAgIChiYXNlIDE2KQkJRU0gTWljcm9lbGVjdHJvbmljCisJCQkJUnVlIGRlcyBTb3JzIDMKKwkJCQlNYXJpbi1FcGFnaW5lciBOZXVjaHRlbCAyMDc0CisJCQkJU1dJVFpFUkxBTkQKKworMEMtRkMtODMgICAoaGV4KQkJQWlyb2hhIFRlY2hub2xvZ3kgQ29ycC4sCiswQ0ZDODMgICAgIChiYXNlIDE2KQkJQWlyb2hhIFRlY2hub2xvZ3kgQ29ycC4sCisJCQkJNUYsIE5vLjYtNSwgRHVzaGluZyBSb2FkICwgSHNpbmNodSBTY2llbmNlIFBhcmsKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzEwLTAwLTAwICAgKGhleCkJCVBSSVZBVEUKKzEwMDAwMCAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMTAtMDAtNUEgICAoaGV4KQkJSUJNIENvcnAKKzEwMDA1QSAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJvYWQKKwkJCQlQLk8uIEJPWCAxMjE5NQorCQkJCVJlc2VhcmNoIFRyaWFuZ2xlIFBhcmsgTkMgMjc3MDktMjE5NQorCQkJCVVOSVRFRCBTVEFURVMKKworMTAtMDAtRTggICAoaGV4KQkJTkFUSU9OQUwgU0VNSUNPTkRVQ1RPUgorMTAwMEU4ICAgICAoYmFzZSAxNikJCU5BVElPTkFMIFNFTUlDT05EVUNUT1IKKwkJCQkyOTAwIFNFTUlDT05EVUNUT1IgRFJJVkUKKwkJCQlTQU5UQSBDTEFSQSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworMTAtMDAtRkQgICAoaGV4KQkJTGFvblBlb3BsZQorMTAwMEZEICAgICAoYmFzZSAxNikJCUxhb25QZW9wbGUKKwkJCQk0MDItMywgQnVuZGFuZyBUZWNobm8gUGFyayBCLCAxNDgKKwkJCQlZYXRhcC1kb25nLCBCdW5kYW5nLWd1CisJCQkJU3VuZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzEwLTA5LTBDICAgKGhleCkJCUphbm9tZSBTZXdpbmcgTWFjaGluZSBDby4sIEx0ZC4KKzEwMDkwQyAgICAgKGJhc2UgMTYpCQlKYW5vbWUgU2V3aW5nIE1hY2hpbmUgQ28uLCBMdGQuCisJCQkJMTQ2MyBIYXphbWEtTWFjaGkKKwkJCQlIYWNoaW9qaS1TaGkgVG9reW8gMTkzLTA5NDEKKwkJCQlKQVBBTgorCisxMC0wQi1BOSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzEwMEJBOSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzEwLTBDLTI0ICAgKGhleCkJCXBvbWRldmljZXMsIExMQworMTAwQzI0ICAgICAoYmFzZSAxNikJCXBvbWRldmljZXMsIExMQworCQkJCTE3OCBDb2x2YXJkIFBhcmsgRHIKKwkJCQlEdXJoYW0gTkMgMjc3MTMKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLTBELTJGICAgKGhleCkJCU9ubGluZSBTZWN1cml0eSBQdHkuIEx0ZC4KKzEwMEQyRiAgICAgKGJhc2UgMTYpCQlPbmxpbmUgU2VjdXJpdHkgUHR5LiBMdGQuCisJCQkJNS8yMS0yNSBSZWRsYW5kIERyaXZlCisJCQkJTWl0Y2hhbSBWSUMgMzEzMgorCQkJCUFVU1RSQUxJQQorCisxMC0wRC0zMiAgIChoZXgpCQlFbWJlZGlhbiwgSW5jLgorMTAwRDMyICAgICAoYmFzZSAxNikJCUVtYmVkaWFuLCBJbmMuCisJCQkJMTBGLiwgOTUsIE5hbmppbmcgRS4gUmQuIFNlYy4gNCwgCisJCQkJVGFpcGVpICAxMDU4MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMTAtMEUtMkIgICAoaGV4KQkJTkVDIENBU0lPIE1vYmlsZSBDb21tdW5pY2F0aW9ucworMTAwRTJCICAgICAoYmFzZSAxNikJCU5FQyBDQVNJTyBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKwkJCQkxNzUzLFNoaW1vbnVtYWJlCisJCQkJTmFrYWhhcmEta3UKKwkJCQlLYXdhc2FraS1zaGkgS2FuYWdhd2EgMjExLTg2NjYKKwkJCQlKQVBBTgorCisxMC0xMC1CNiAgIChoZXgpCQlNY0NhaW4gSW5jCisxMDEwQjYgICAgIChiYXNlIDE2KQkJTWNDYWluIEluYworCQkJCTIzNjUgT2FrIFJpZGdlIFdheQorCQkJCVZpc3RhIENBIDkyMDgxCisJCQkJVU5JVEVEIFNUQVRFUworCisxMC0xMi0xMiAgIChoZXgpCQlWaXZvIEludGVybmF0aW9uYWwgQ29ycG9yYXRpb24gUHR5IEx0ZAorMTAxMjEyICAgICAoYmFzZSAxNikJCVZpdm8gSW50ZXJuYXRpb25hbCBDb3Jwb3JhdGlvbiBQdHkgTHRkCisJCQkJOS0xMyBCaWJieSBTdHJlZXQsIAorCQkJCU5TVyBDaGlzd2ljayAyMDQ2CisJCQkJQVVTVFJBTElBCisKKzEwLTEzLUVFICAgKGhleCkJCUp1c3RlYyBJbnRlcm5hdGlvbmFsIFRlY2hub2xvZ3kgSU5DLgorMTAxM0VFICAgICAoYmFzZSAxNikJCUp1c3RlYyBJbnRlcm5hdGlvbmFsIFRlY2hub2xvZ3kgSU5DLgorCQkJCTdGLTIgTm8gMTEzIFppaHlvdSBSb2FkCisJCQkJSHNpbmNodSBDaXR5ICAzMDA0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMTAtMTgtOUUgICAoaGV4KQkJRWxtbyBNb3Rpb24gQ29udHJvbAorMTAxODlFICAgICAoYmFzZSAxNikJCUVsbW8gTW90aW9uIENvbnRyb2wKKwkJCQk2NCBHaXNpbiBTdC4KKwkJCQlQZXRhY2ggVGlrdmEgIDQ5MTAzCisJCQkJSVNSQUVMCisKKzEwLTFCLTU0ICAgKGhleCkJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorMTAxQjU0ICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorCQkJCUQxLTRBNTJSLEh1YXdlaSBJbmR1c3RyaWFsIEJhc2UsIEJhbnRpYW4gTG9uZ2dhbmcsIAorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCisxMC0xRC1DMCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzEwMURDMCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMTAtMUYtNzQgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkgCisxMDFGNzQgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkgCisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLTJELTk2ICAgKGhleCkJCUxvb3hjaWUgSW5jLgorMTAyRDk2ICAgICAoYmFzZSAxNikJCUxvb3hjaWUgSW5jLgorCQkJCTExOTYgQm9ycmVnYXMgQXZlLgorCQkJCVN1aXRlIDIwMAorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworMTAtMkUtQUYgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzEwMkVBRiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCBNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCisxMC0zNy0xMSAgIChoZXgpCQlTaW1saW5rIEFTCisxMDM3MTEgICAgIChiYXNlIDE2KQkJU2ltbGluayBBUworCQkJCU90dG8gTmllbHNlbnMgVmVnIDEyCisJCQkJVHJvbmRoZWltICBOLTcwMDQKKwkJCQlOT1JXQVkKKworMTAtNDAtRjMgICAoaGV4KQkJQXBwbGUsIEluYy4KKzEwNDBGMyAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgaW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMTAtNDMtNjkgICAoaGV4KQkJU291bmRtYXggRWxlY3Ryb25pYyBMaW1pdGVkIAorMTA0MzY5ICAgICAoYmFzZSAxNikJCVNvdW5kbWF4IEVsZWN0cm9uaWMgTGltaXRlZCAKKwkJCQlSb29tIzE1MDUsIE9yaWVudGFsIHBsYXphLCAjMTA3MiBKaWFuU2hlIFJvYWQKKwkJCQlTSEVOWkhFTiAgR3Vhbmdkb25nIDUxODAwMQorCQkJCUNISU5BCisKKzEwLTQ0LTVBICAgKGhleCkJCVNoYWFueGkgSGl0ZWNoIEVsZWN0cm9uaWMgQ28uLCBMVEQKKzEwNDQ1QSAgICAgKGJhc2UgMTYpCQlTaGFhbnhpIEhpdGVjaCBFbGVjdHJvbmljIENvLiwgTFRECisJCQkJMzUgVHVhbmppZW5hbiBSb2RlLAorCQkJCVhpYW4gU2hhYW54aSA3MTAwNzUKKwkJCQlDSElOQQorCisxMC00NS1CRSAgIChoZXgpCQlOb3JwaG9uaWMgQVMKKzEwNDVCRSAgICAgKGJhc2UgMTYpCQlOb3JwaG9uaWMgQVMKKwkJCQlGYWJyaWtrZ2F0ZW4gMTAKKwkJCQlCZXJnZW4gIDUwNTkKKwkJCQlOT1JXQVkKKworMTAtNDUtRjggICAoaGV4KQkJTE5ULUF1dG9tYXRpb24gR21iSAorMTA0NUY4ICAgICAoYmFzZSAxNikJCUxOVC1BdXRvbWF0aW9uIEdtYkgKKwkJCQlIYW5zLVBhdWwtS2F5c3Nlci1TdHJhw4PFuGUgMQorCQkJCUxldXRlbmJhY2gtTmVsbG1lcnNiYWNoIEJXIEQtNzEzOTcKKwkJCQlHRVJNQU5ZCisKKzEwLTQ3LTgwICAgKGhleCkJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorMTA0NzgwICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorCQkJCUQxLEh1YXdlaSBJbmR1c3RyaWFsIEJhc2UsQmFudGlhbixMb25nZ2FuZyxTaGVuemhlbgorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCisxMC01Ni1DQSAgIChoZXgpCQlQZXBsaW5rIEludGVybmF0aW9uYWwgTHRkLgorMTA1NkNBICAgICAoYmFzZSAxNikJCVBlcGxpbmsgSW50ZXJuYXRpb25hbCBMdGQuCisJCQkJMTcvRiwgUGFyayBCdWlsZGluZywKKwkJCQk0NzYgQ2FzdGxlIFBlYWsgUm9hZCwKKwkJCQlDaGV1bmcgU2hhIFdhbiAgCisJCQkJSE9ORyBLT05HCisKKzEwLTYyLUM5ICAgKGhleCkJCUFkYXRpcyBHbWJIICYgQ28uIEtHCisxMDYyQzkgICAgIChiYXNlIDE2KQkJQWRhdGlzIEdtYkggJiBDby4gS0cKKwkJCQlGb3JjaGhlaW1lciBTdHIuIDYKKwkJCQlO/HJuYmVyZyBCYXZhcmlhIDkwNDI1CisJCQkJR0VSTUFOWQorCisxMC02NC1FMiAgIChoZXgpCQlBREZ3ZWIuY29tIHMuci5sLgorMTA2NEUyICAgICAoYmFzZSAxNikJCUFERndlYi5jb20gcy5yLmwuCisJCQkJU3RyYWRhIE51b3ZhLCAxNworCQkJCS4KKwkJCQlNYXJlbm8gZGkgUGlhdmUgVHJldmlzbyAzMTAxMAorCQkJCUlUQUxZCisKKzEwLTY1LUEzICAgKGhleCkJCVBhbmFtYXggSW5jLgorMTA2NUEzICAgICAoYmFzZSAxNikJCVBhbmFtYXggSW5jLgorCQkJCTE2OTAgQ29ycG9yYXRlIENpcmNsZQorCQkJCVBldGFsdW1hIENBIDk0OTU0CisJCQkJVU5JVEVEIFNUQVRFUworCisxMC02Ri0zRiAgIChoZXgpCQlCdWZmYWxvIEluYy4KKzEwNkYzRiAgICAgKGJhc2UgMTYpCQlCdWZmYWxvIEluYy4KKwkJCQlBS0FNT05ET1JJIEJsZGcuLDMwLTIwCisJCQkJT2hzdSAzLWNob21lLE5ha2Eta3UKKwkJCQlOYWdveWEgQWljaGkgNDYwLTgzMTUKKwkJCQlKQVBBTgorCisxMC03MS1GOSAgIChoZXgpCQlDbG91ZCBUZWxlY29tcHV0ZXJzLCBMTEMKKzEwNzFGOSAgICAgKGJhc2UgMTYpCQlDbG91ZCBUZWxlY29tcHV0ZXJzLCBMTEMKKwkJCQkxMDMyIEVsd2VsbCBDb3VydAorCQkJCVN1aXRlIDIyMgorCQkJCVBhbG8gQWx0byBDQSA5NDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworMTAtNzYtOEEgICAoaGV4KQkJRW9DZWxsCisxMDc2OEEgICAgIChiYXNlIDE2KQkJRW9DZWxsCisJCQkJMTQ5IEJlYWNvbnNmaWVsZCBTdHJlZXQKKwkJCQlTaWx2ZXJ3YXRlciBOU1cgMjEyOAorCQkJCUFVU1RSQUxJQQorCisxMC03OC1EMiAgIChoZXgpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTSBDTy4sIExURC4KKzEwNzhEMiAgICAgKGJhc2UgMTYpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTSBDTy4sIExURC4KKwkJCQlOTy4gMjM5LCBTZWMuIDIsIFRpIERpbmcgQmx2ZC4KKwkJCQlUYWlwZWkgIDExNDkzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisxMC04My1EMiAgIChoZXgpCQlNaWNyb3NldmVuIFN5c3RlbXMsIExMQworMTA4M0QyICAgICAoYmFzZSAxNikJCU1pY3Jvc2V2ZW4gU3lzdGVtcywgTExDCisJCQkJNDA0IFNvdXRoIExlbW9uIEF2ZS4sICM5CisJCQkJV2FsbnV0IENhbGlmb3JuaWEgOTE3ODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLTg4LTBGICAgKGhleCkJCURBUlVNQSBURUxFQ09NVU5JQ0HDg+KAocOD4oCiRVMgRSBJTkZPUk3Dg8KBVElDQSBTL0EKKzEwODgwRiAgICAgKGJhc2UgMTYpCQlEQVJVTUEgVEVMRUNPTVVOSUNBw4PigKHDg+KAokVTIEUgSU5GT1JNw4PCgVRJQ0EgUy9BCisJCQkJQVZFTklEQSBJTkRFUEVOREVOQ0lBLCAzNTAwLCBMT1RFQU1FTlRPIElORFVTVFJJQUwKKwkJCQlUQVVCQVTDg+KAsCBTw4PGkk8gUEFVTE8gMTIwMzItMDAwCisJCQkJQlJBWklMCisKKzEwLThDLUNGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzEwOENDRiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLTkzLUU5ICAgKGhleCkJCUFwcGxlLCBJbmMuCisxMDkzRTkgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLTlBLUREICAgKGhleCkJCUFwcGxlLCBJbmMuCisxMDlBREQgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTQ1ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLTlGLUE5ICAgKGhleCkJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jCisxMDlGQTkgICAgIChiYXNlIDE2KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMKKwkJCQk3NjAgTm9ydGggTWFyeSBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLUExLTNCICAgKGhleCkJCUZVSklLVVJBIFJVQkJFUiBMVEQuCisxMEExM0IgICAgIChiYXNlIDE2KQkJRlVKSUtVUkEgUlVCQkVSIExURC4KKwkJCQkxLTg0MCxNaWhhc2hpLE9taXlhCisJCQkJU2FpdGFtYSAgIDMzMC0wODU2CisJCQkJSkFQQU4KKworMTAtQTktMzIgICAoaGV4KQkJQmVpamluZyBDeWJlciBDbG91ZCBUZWNobm9sb2d5IENvLiAsTHRkLgorMTBBOTMyICAgICAoYmFzZSAxNikJCUJlaWppbmcgQ3liZXIgQ2xvdWQgVGVjaG5vbG9neSBDby4gLEx0ZC4KKwkJCQkyL0YsIFRvd2VyIEIsIEppbmdtZW5nIEhpZ2gtdGVjaCBCdWlsZGluZy4gTm8uIDUgU2hhbmdkaSBFYXN0IFJvYWQsIEhhaWRpYW4gRGlzdHJpY3QuCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworMTAtQjctRjYgICAoaGV4KQkJUGxhc3RvZm9ybSBJbmR1c3RyaWVzIEx0ZC4KKzEwQjdGNiAgICAgKGJhc2UgMTYpCQlQbGFzdG9mb3JtIEluZHVzdHJpZXMgTHRkLgorCQkJCVVuaXRzIDE1MDZBIC0gMTUxMiwgTWl0YSBDZW50cmUsCisJCQkJNTUyLTU2NiBDYXN0bGUgUGVhayBSb2FkCisJCQkJS3dhaSBDaHVuZyAgCisJCQkJSE9ORyBLT05HCisKKzEwLUJBLUE1ICAgKGhleCkJCUdBTkEgSSZDIENPLiwgTFRECisxMEJBQTUgICAgIChiYXNlIDE2KQkJR0FOQSBJJkMgQ08uLCBMVEQKKwkJCQkxNTQtMTcga3lvdW5nZG9uZyBCL0QgM0Yga2FyYWstZG9uZyBzb25ncGEtZ3UKKwkJCQlTZW91bCBLb3JlYSAxMzgtMTYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzEwLUJELTE4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzEwQkQxOCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCisxMC1CRi00OCAgIChoZXgpCQlBU1VTVEVLIENPTVBVVEVSIElOQy4KKzEwQkY0OCAgICAgKGJhc2UgMTYpCQlBU1VTVEVLIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMSS1URSBSRC4sUEVJVE9VCisJCQkJVEFJUEVJIFRBSVdBTiAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzEwLUMyLUJBICAgKGhleCkJCVVUVCBDby4sIEx0ZC4KKzEwQzJCQSAgICAgKGJhc2UgMTYpCQlVVFQgQ28uLCBMdGQuCisJCQkJNEYsIEh5dW4gQmxkZworCQkJCTY1OC0yMiwgWWVva3NhbSAxLWRvbmcsIEdhbmduYW0tZ3UKKwkJCQlTZW91bCBLb3JlYSAxMzUtOTEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzEwLUM1LTg2ICAgKGhleCkJCUJJTyBTT1VORCBMQUIgQ08uLCBMVEQuCisxMEM1ODYgICAgIChiYXNlIDE2KQkJQklPIFNPVU5EIExBQiBDTy4sIExURC4KKwkJCQlTdWl0ZSAzMTEsIDMxMiBTS24gVGVjaG5vIFBhcmsgCisJCQkJQml6IENlbnRlciAxOTAtMSBTYW5nZGFld29uLWRvbmcsIEp1bmd3b24tZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbywgNDYyLTcyMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisxMC1DNi0xRiAgIChoZXgpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCisxMEM2MUYgICAgIChiYXNlIDE2KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMTAtQzYtRkMgICAoaGV4KQkJR2FybWluIEludGVybmF0aW9uYWwKKzEwQzZGQyAgICAgKGJhc2UgMTYpCQlHYXJtaW4gSW50ZXJuYXRpb25hbAorCQkJCTEyMDAgRWFzdCAxNTFzdCBTdHJlZXQKKwkJCQlPbGF0aGUgIEtTIDY2MDYyCisJCQkJVU5JVEVEIFNUQVRFUworCisxMC1DNy0zRiAgIChoZXgpCQlNaWRhcyBLbGFyayBUZWtuaWsgTHRkCisxMEM3M0YgICAgIChiYXNlIDE2KQkJTWlkYXMgS2xhcmsgVGVrbmlrIEx0ZAorCQkJCUtsYXJrIFRla25payBCdWlsZGluZworCQkJCVdhbHRlciBOYXNoIFJvYWQKKwkJCQlLaWRkZXJtaW5zdGVyIFdvcmNlc3RlcnNoaXJlIERZMTEgN0hKCisJCQkJVU5JVEVEIEtJTkdET00KKworMTAtQ0EtODEgICAoaGV4KQkJUFJFQ0lBCisxMENBODEgICAgIChiYXNlIDE2KQkJUFJFQ0lBCisJCQkJTGUgcnVpc3NvbCBWRVlSQVMKKwkJCQlCUCAxMDYKKwkJCQlQUklWQVMgIDA3MDAxCisJCQkJRlJBTkNFCisKKzEwLUNDLURCICAgKGhleCkJCUFYSU1VTSBQUk9EVUlUUyBFTEVDVFJPTklRVUVTCisxMENDREIgICAgIChiYXNlIDE2KQkJQVhJTVVNIFBST0RVSVRTIEVMRUNUUk9OSVFVRVMKKwkJCQlaSSBERUxUQSBJTkRVU1RSSUUKKwkJCQlCUCA3MSBMQSBWQUxFTlRJTkUKKwkJCQlNQVJTRUlMTEUgQ0VERVggMTEgIDEzMzY4CisJCQkJRlJBTkNFCisKKzEwLUQxLURDICAgKGhleCkJCUlOU1RBUiBEZXV0c2NobGFuZCBHbWJICisxMEQxREMgICAgIChiYXNlIDE2KQkJSU5TVEFSIERldXRzY2hsYW5kIEdtYkgKKwkJCQlBdWYgZGVyIEhvc3RlcnQgMTcKKwkJCQlIdWVuc3RldHRlbiBCZWNodGhlaW0gSGVzc2VuIDY1NTEwCisJCQkJR0VSTUFOWQorCisxMC1FMi1ENSAgIChoZXgpCQlRaSBIYXJkd2FyZSBJbmMuCisxMEUyRDUgICAgIChiYXNlIDE2KQkJUWkgSGFyZHdhcmUgSW5jLgorCQkJCTU1NSA0VEggU1RSRUVUICM0MDMKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCisxMC1FMy1DNyAgIChoZXgpCQlTZW9od2EgVGVsZWNvbQorMTBFM0M3ICAgICAoYmFzZSAxNikJCVNlb2h3YSBUZWxlY29tCisJCQkJNjc4IFNlb2h3YSBCbGRnCisJCQkJR2FzYW4tRG9uZywgR3VtY2hlb24tR3UgU2VvdWwgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisxMC1FNC1BRiAgIChoZXgpCQlBUFIsIExMQworMTBFNEFGICAgICAoYmFzZSAxNikJCUFQUiwgTExDCisJCQkJNDgwMCBVUyBIV1kgMjgwIFdlc3QKKwkJCQlPcGVsaWthIEFMIDM2ODAxCisJCQkJVU5JVEVEIFNUQVRFUworCisxMC1FNi1BRSAgIChoZXgpCQlTb3VyY2UgVGVjaG5vbG9naWVzLCBMTEMKKzEwRTZBRSAgICAgKGJhc2UgMTYpCQlTb3VyY2UgVGVjaG5vbG9naWVzLCBMTEMKKwkJCQkyOTEwIFdoaXRlaGFsbCBQYXJrIERyaXZlCisJCQkJQ2hhcmxvdHRlIE5DIDI4MjczCisJCQkJVU5JVEVEIFNUQVRFUworCisxMC1FOC1FRSAgIChoZXgpCQlQaGFzZVNwYWNlCisxMEU4RUUgICAgIChiYXNlIDE2KQkJUGhhc2VTcGFjZQorCQkJCTE5MzMgRGF2aXMgU3QgU3VpdGUgMzEyCisJCQkJU2FuIExlYW5kcm8gQ0EgOTQ1NzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLUVFLUQ5ICAgKGhleCkJCUNhbm9nYSBQZXJraW5zIENvcnBvcmF0aW9uCisxMEVFRDkgICAgIChiYXNlIDE2KQkJQ2Fub2dhIFBlcmtpbnMgQ29ycG9yYXRpb24KKwkJCQkyMDYwMCBQcmFpcmllIFN0cmVldAorCQkJCUNoYXRzd29ydGggQ0EgOTEzMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzEwLUY5LTZGICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzCisxMEY5NkYgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MKKwkJCQk2MC0zOSAsIEthc2FuLWRvbmcsIEd1bWNoZW9uLWd1CisJCQkJU2VvdWwgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMTAtRjktRUUgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzEwRjlFRSAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1IE91IDkwMjMwCisJCQkJRklOTEFORAorCisxMC1GQy01NCAgIChoZXgpCQlTaGFueSBFbGVjdHJvbmljIENvLiwgTHRkLiAKKzEwRkM1NCAgICAgKGJhc2UgMTYpCQlTaGFueSBFbGVjdHJvbmljIENvLiwgTHRkLiAKKwkJCQk0RiwgTm8uIDkyLCBTZWN0aW9uIDEsIE5laS1IdSBSb2FkCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzExLTAwLUFBICAgKGhleCkJCVBSSVZBVEUKKzExMDBBQSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMTQtMDctMDggICAoaGV4KQkJUFJJVkFURQorMTQwNzA4ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCisxNC0wNy1FMCAgIChoZXgpCQlBYnJhbnRpeCBBRworMTQwN0UwICAgICAoYmFzZSAxNikJCUFicmFudGl4IEFHCisJCQkJRm9lcnJsaWJ1Y2tzdHJhc3NlIDY2CisJCQkJWnVlcmljaCBaSCA4MDA1CisJCQkJU1dJVFpFUkxBTkQKKworMTQtMTQtNEIgICAoaGV4KQkJRlVKSUFOIFNUQVItTkVUIENPTU1VTklDQVRJT04gQ08uLExURAorMTQxNDRCICAgICAoYmFzZSAxNikJCUZVSklBTiBTVEFSLU5FVCBDT01NVU5JQ0FUSU9OIENPLixMVEQKKwkJCQkxOS0yMiMgQnVpbGRpbmcsU3Rhci1uZXQgU2NpZW5jZSBQbGF6YSxKdXl1YW56aG91LCAKKwkJCQk2MTggSmluc2hhbiBSb2FkCisJCQkJRlVaSE9VIEZVSklBTiAzNTAwMDIKKwkJCQlDSElOQQorCisxNC0xQS01MSAgIChoZXgpCQlUcmVldGVjaCBTaXN0ZW1hcyBEaWdpdGFpcworMTQxQTUxICAgICAoYmFzZSAxNikJCVRyZWV0ZWNoIFNpc3RlbWFzIERpZ2l0YWlzCisJCQkJUHJhY2EgQ2xhdWRpbm8gQWx2ZXMsIDE0MQorCQkJCUF0aWJhaWEgU2FvIFBhdWxvIDEyOTQwLTgwMAorCQkJCUJSQVpJTAorCisxNC0xQi1CRCAgIChoZXgpCQlWb2xleCBJbmMuCisxNDFCQkQgICAgIChiYXNlIDE2KQkJVm9sZXggSW5jLgorCQkJCTkxNSBUYXRlIEJsdmQuIFNFCisJCQkJU3VpdGUgMTMwCisJCQkJSGlja29yeSBOQyAyODYwMgorCQkJCVVOSVRFRCBTVEFURVMKKworMTQtMkQtRjUgICAoaGV4KQkJQW1waGl0ZWNoCisxNDJERjUgICAgIChiYXNlIDE2KQkJQW1waGl0ZWNoCisJCQkJMSwgcnVlIFJvYmVydCAmYW1wOyBTb25pYSBERUxBVU5BWQorCQkJCVBhcmlzICA3NTAxMQorCQkJCUZSQU5DRQorCisxNC0zMC03QSAgIChoZXgpCQlBdmVybWV0cmljcworMTQzMDdBICAgICAoYmFzZSAxNikJCUF2ZXJtZXRyaWNzCisJCQkJMjk3MyBHbGVuZGFsZSBCbHZkLgorCQkJCUxvcyBBbmdlbGVzIENBIDkwMDM5CisJCQkJVU5JVEVEIFNUQVRFUworCisxNC0zNS1CMyAgIChoZXgpCQlGdXR1cmUgRGVzaWducywgSW5jLgorMTQzNUIzICAgICAoYmFzZSAxNikJCUZ1dHVyZSBEZXNpZ25zLCBJbmMuCisJCQkJMjcwMiBUcmlhbmEgQmx2ZAorCQkJCUh1bnRzdmlsbGUgQUwgMzU4MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzE0LTM2LTA1ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCisxNDM2MDUgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlZcnR0aXBlbGxvbnRpZSA2CisJCQkJT3VsdSBPdSA5MDIzMAorCQkJCUZJTkxBTkQKKworMTQtMzctM0IgICAoaGV4KQkJUFJPQ09NIFN5c3RlbXMKKzE0MzczQiAgICAgKGJhc2UgMTYpCQlQUk9DT00gU3lzdGVtcworCQkJCSMxMDAxLCBLcmFueiBUZWNobm8sIDU0NDItMQorCQkJCVNhbmdkYWV3b24tZG9uZywgSnVuZ3dvbi1ndQorCQkJCVNlb25nbmFtLXNpIEd5dW5nZ2ktZG8gNDYyLTcyOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisxNC0zQS1FQSAgIChoZXgpCQlEeW5hcG93ZXIgQ29tcGFueSBMTEMKKzE0M0FFQSAgICAgKGJhc2UgMTYpCQlEeW5hcG93ZXIgQ29tcGFueSBMTEMKKwkJCQk4NSBNZWFkb3dsYW5kIERyaXZlCisJCQkJU291dGggQnVybGluZ3RvbiBWVCAwNTQwMworCQkJCVVOSVRFRCBTVEFURVMKKworMTQtM0UtNjAgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQKKzE0M0U2MCAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudAorCQkJCTYwMCBNYXJjaCBSb2FkCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLIDJFNgorCQkJCUNBTkFEQQorCisxNC00OS03OCAgIChoZXgpCQlEaWdpdGFsIENvbnRyb2wgSW5jb3Jwb3JhdGVkCisxNDQ5NzggICAgIChiYXNlIDE2KQkJRGlnaXRhbCBDb250cm9sIEluY29ycG9yYXRlZAorCQkJCTE5NjI1IDYybmQgQXZlIFMKKwkJCQlTdWl0ZSBCMTAzCisJCQkJS2VudCBXQSA5ODAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMTQtNEMtMUEgICAoaGV4KQkJTWF4IENvbW11bmljYXRpb24gR21iSAorMTQ0QzFBICAgICAoYmFzZSAxNikJCU1heCBDb21tdW5pY2F0aW9uIEdtYkgKKwkJCQlTaWVtZW5zc3RyYXNzZSA0NworCQkJCVJlbGxpbmdlbiAgMjU0NjIKKwkJCQlHRVJNQU5ZCisKKzE0LTU0LTEyICAgKGhleCkJCUVudGlzIENvLiwgTHRkLgorMTQ1NDEyICAgICAoYmFzZSAxNikJCUVudGlzIENvLiwgTHRkLgorCQkJCTItMjAtNiwgSGFuYW9rYSBCbGRnLCA2RgorCQkJCU5paG9uYmFzaGkgSGFtYWNobywgQ2h1by1rdQorCQkJCVRva3lvICAxMDMwMDA3CisJCQkJSkFQQU4KKworMTQtNUEtMDUgICAoaGV4KQkJQXBwbGUsIEluYy4KKzE0NUEwNSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMTQtNjMtMDggICAoaGV4KQkJSkFCSUwgQ0lSQ1VJVCAoU0hBTkdIQUkpIExURC4KKzE0NjMwOCAgICAgKGJhc2UgMTYpCQlKQUJJTCBDSVJDVUlUIChTSEFOR0hBSSkgTFRELgorCQkJCUZMNS1VTklUIEEyIE5PLiAxNTI4IEdVTUVJIFJPQUQKKwkJCQlTSEFOR0hBSSAgMjAwMjMzCisJCQkJQ0hJTkEKKworMTQtNkEtMEIgICAoaGV4KQkJQ3lwcmVzcyBFbGVjdHJvbmljcyBMaW1pdGVkCisxNDZBMEIgICAgIChiYXNlIDE2KQkJQ3lwcmVzcyBFbGVjdHJvbmljcyBMaW1pdGVkCisJCQkJMTEvRi4sIEJsb2NrIEcsIEVhc3QgU3VuIEluZHVzdHJpYWwgQ2VudHJlLCAxNiBTaGluZyBZaXAgU3RyZWV0LAorCQkJCUt3dW4gVG9uZywgS293bG9vbgorCQkJCUhvbmcgS29uZyBuaWwgbmlsCisJCQkJSE9ORyBLT05HCisKKzE0LTZFLTBBICAgKGhleCkJCVBSSVZBVEUKKzE0NkUwQSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMTQtNzMtNzMgICAoaGV4KQkJVFVCSVRBSyBVRUtBRQorMTQ3MzczICAgICAoYmFzZSAxNikJCVRVQklUQUsgVUVLQUUKKwkJCQlBTklCQUwgU1QuCisJCQkJR0VCWkUKKwkJCQlLT0NBRUxJICA0MTQ3MAorCQkJCVRVUktFWQorCisxNC03NC0xMSAgIChoZXgpCQlSSU0KKzE0NzQxMSAgICAgKGJhc2UgMTYpCQlSSU0KKwkJCQkyOTUgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCAzVzgKKwkJCQlDQU5BREEKKworMTQtN0QtQjMgICAoaGV4KQkJSk9BIFRFTEVDT00uQ08uLExURAorMTQ3REIzICAgICAoYmFzZSAxNikJCUpPQSBURUxFQ09NLkNPLixMVEQKKwkJCQkxMDA3LFNpY294IHRvd2VyLDUxMy0xNCxTYW5nZGFld29uLWRvbmcsSnVuZ3dvbi1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2Mi04MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMTQtN0QtQzUgICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisxNDdEQzUgICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJMS0xMC0xLEhpZ2FzaGlrb3RhcmkKKwkJCQlOYWdhb2tha3lvLXNoaSBLeW90byA2MTctODU1NQorCQkJCUpBUEFOCisKKzE0LTgyLTVCICAgKGhleCkJCUhlZmVpIFJhZGlvIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZAorMTQ4MjVCICAgICAoYmFzZSAxNikJCUhlZmVpIFJhZGlvIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCU5vLjEwOCwgWWluWGluZyBSb2FkLCBIaWdoLXRlY2ggRGV2ZWxvcG1lbnQgWm9uZSwgSGVmZWksIEFuaHVpIFByb3ZpbmNlLCBDaGluYQorCQkJCUhlZmVpIEFuaHVpIFByb3ZpbmNlIDIzMDA4OAorCQkJCUNISU5BCisKKzE0LThBLTcwICAgKGhleCkJCUFEUyBHbWJICisxNDhBNzAgICAgIChiYXNlIDE2KQkJQURTIEdtYkgKKwkJCQlJbSBSb2hud2VpaGVyIDM5CisJCQkJTG9obWFyIEdlcm1hbnkgRC01Mzc5NworCQkJCUdFUk1BTlkKKworMTQtOEYtQzYgICAoaGV4KQkJQXBwbGUsIEluYy4KKzE0OEZDNiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBjYSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMTQtOTAtOTAgICAoaGV4KQkJS29uZ1RvcCBpbmR1c3RyaWFsKHNoZW4gemhlbilDTy4sTFRECisxNDkwOTAgICAgIChiYXNlIDE2KQkJS29uZ1RvcCBpbmR1c3RyaWFsKHNoZW4gemhlbilDTy4sTFRECisJCQkJeGlud3V5dWFuLGd1c2h1LFhpeGlhbmcsQmFvYW4sCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzE0LTlGLUU4ICAgKGhleCkJCUxlbm92byBNb2JpbGUgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IEx0ZC4KKzE0OUZFOCAgICAgKGJhc2UgMTYpCQlMZW5vdm8gTW9iaWxlIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBMdGQuCisJCQkJTm8uOTk5LFFpc2hhbiBOb3J0aCAybmQgUm9hZCxJbmZvcm1hdGlvbiZPcHRvZWxlY3Ryb25pY3MgUGFyayxUb3JjaCBIaS10ZWNoIEluZHVzdHJ5IERldmVsb3BtZW50IFpvbmUKKwkJCQlYaWFtZW4gRnVqaWFuIDM2MTAwNgorCQkJCUNISU5BCisKKzE0LUE2LTJDICAgKGhleCkJCVMuTS4gRGV6YWMgUy5BLgorMTRBNjJDICAgICAoYmFzZSAxNikJCVMuTS4gRGV6YWMgUy5BLgorCQkJCVZpYWwgU2FudCBqb3JkaSBTL04KKwkJCQlQb2wuIEluZC4gQ2FuIE1pdGphbnMKKwkJCQlWaWxhZGVjYXZhbGxzIEJhcmNlbG9uYSAwODIzMgorCQkJCVNQQUlOCisKKzE0LUE4LTZCICAgKGhleCkJCVNoZW5aaGVuIFRlbGFjb20gU2NpZW5jZSZUZWNobm9sb2d5IENvLiwgTHRkCisxNEE4NkIgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gVGVsYWNvbSBTY2llbmNlJlRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlCMTcwMS8xNzA1IFBhdmlsaW9uLCBIdWEgUWlhbmcgQmVpIFJENDAwMiwgRnV0aWFuIERpc3RyaWN0CisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODAyOAorCQkJCUNISU5BCisKKzE0LUE5LUUzICAgKGhleCkJCU1TVCBDT1JQT1JBVElPTgorMTRBOUUzICAgICAoYmFzZSAxNikJCU1TVCBDT1JQT1JBVElPTgorCQkJCTR0aCBGbG9vciBMYXdmb3JkIEhvdXNlCisJCQkJQWxiZXJ0IFBsYWNlCisJCQkJTG9uZG9uIEVuZ2xhbmQgTjMgMSBSTAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzE0LUIxLUM4ICAgKGhleCkJCUluZmluaVdpbmcsIEluYy4KKzE0QjFDOCAgICAgKGJhc2UgMTYpCQlJbmZpbmlXaW5nLCBJbmMuCisJCQkJMTk5MjUgU3RldmVucyBDcmVlayBCbHZkCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCisxNC1CNy0zRCAgIChoZXgpCQlBUkNIRUFOIFRlY2hub2xvZ2llcworMTRCNzNEICAgICAoYmFzZSAxNikJCUFSQ0hFQU4gVGVjaG5vbG9naWVzCisJCQkJMjAgUGxhY2UgUHJheCBQYXJpcworCQkJCU1PTlRBVUJBTiAgODIwMDAKKwkJCQlGUkFOQ0UKKworMTQtQzItMUQgICAoaGV4KQkJU2FidGVjaCBJbmR1c3RyaWVzCisxNEMyMUQgICAgIChiYXNlIDE2KQkJU2FidGVjaCBJbmR1c3RyaWVzCisJCQkJMjMyMzEgTGEgUGFsbWEgQXZlCisJCQkJWW9yYmEgTGluZGEgQ2EgOTI4ODctNDc4OAorCQkJCVVOSVRFRCBTVEFURVMKKworMTQtQ0YtOEQgICAoaGV4KQkJT0hTVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorMTRDRjhEICAgICAoYmFzZSAxNikJCU9IU1VORyBFTEVDVFJPTklDUyBDTy4sIExURC4KKwkJCQkxODEKKwkJCQlHT05HREFOLURPTkcKKwkJCQlHVU1JIEtZVU5HQlVLIDczMC0wMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMTQtRDQtRkUgICAoaGV4KQkJUGFjZSBwbGMKKzE0RDRGRSAgICAgKGJhc2UgMTYpCQlQYWNlIHBsYworCQkJCVZpY3RvcmlhIFJvYWQKKwkJCQlTYWx0YWlyZSBXZXN0IFlvcmtzaGlyZSBCRDE4IDNMRiwgRW5nbGFuZAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzE0LUQ2LTREICAgKGhleCkJCUQtTGluayBJbnRlcm5hdGlvbmFsCisxNEQ2NEQgICAgIChiYXNlIDE2KQkJRC1MaW5rIEludGVybmF0aW9uYWwKKwkJCQkxIElOVEVSTkFUSU9OQUwgQlVTSU5FU1MgUEFSSworCQkJCSMwMy0xMiwgVEhFIFNZTkVSR1kgCisJCQkJNjA5OTE3CisJCQkJU0lOR0FQT1JFCisKKzE0LUQ3LTZFICAgKGhleCkJCUNPTkNIIEVMRUNUUk9OSUMgQ28uLEx0ZAorMTRENzZFICAgICAoYmFzZSAxNikJCUNPTkNIIEVMRUNUUk9OSUMgQ28uLEx0ZAorCQkJCU5vLjMgS2VqaSAxc3QgTG9hZC4KKwkJCQlUYWluYW4gIDcwOTU1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisxNC1EQS1FOSAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKzE0REFFOSAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91LAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisxNC1FNC1FQyAgIChoZXgpCQltTG9naWMgTExDCisxNEU0RUMgICAgIChiYXNlIDE2KQkJbUxvZ2ljIExMQworCQkJCTg0NDAgV2FybmVyIERyaXZlCisJCQkJU3VpdGUgQjIKKwkJCQlDdWx2ZXIgQ2l0eSBDQSA5MDIzMgorCQkJCVVOSVRFRCBTVEFURVMKKworMTQtRTYtRTQgICAoaGV4KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCisxNEU2RTQgICAgIChiYXNlIDE2KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCisJCQkJQnVpbGRpbmcgMjQgKGZsb29ycyAxLDMsNCw1KSBhbmQgMjggKGZsb29yczEtNCkgIENlbnRyYWwgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSBQYXJrLFNoZW5uYW4gUmQsIE5hbnNoYW4sCisJCQkJU2hlbnpoZW4sIEd1YW5nZG9uZyBQcm92aW5jZSwgNTE4MDU3CisJCQkJQ0hJTkEKKworMTQtRUItMzMgICAoaGV4KQkJQlNNZWRpYXNvZnQgQ28uLCBMdGQuCisxNEVCMzMgICAgIChiYXNlIDE2KQkJQlNNZWRpYXNvZnQgQ28uLCBMdGQuCisJCQkJIzYwMywgR2FyZGVuIEJsZGcuLCAxNC0xMywgWW9pZG8tRG9uZywgWW91bmdkZXVuZ3BvLUd1CisJCQkJU2VvdWwgIDE1MC04NzEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMTQtRUUtOUQgICAoaGV4KQkJQWlyTmF2IFN5c3RlbXMgTExDCisxNEVFOUQgICAgIChiYXNlIDE2KQkJQWlyTmF2IFN5c3RlbXMgTExDCisJCQkJNDY2MCBMYSBKb2xsYSBWaWxsYWdlIERyLiAtIFN1aXRlIDUwMAorCQkJCVNhbiBEaWVnbyBDYWxpZm9ybmlhIENBIDkyMTIyCisJCQkJVU5JVEVEIFNUQVRFUworCisxNC1GMC1DNSAgIChoZXgpCQlYdHJlbWlvIEx0ZC4KKzE0RjBDNSAgICAgKGJhc2UgMTYpCQlYdHJlbWlvIEx0ZC4KKwkJCQlQT0IgNTI0NgorCQkJCUhlcnplbHlpYSAgNDYxNTIKKwkJCQlJU1JBRUwKKworMTQtRkUtQUYgICAoaGV4KQkJU0FHSVRUQVIgTElNSVRFRAorMTRGRUFGICAgICAoYmFzZSAxNikJCVNBR0lUVEFSIExJTUlURUQKKwkJCQkyLTEwMiwgQkxEMzQsIEJBSVdBTkdNT0xJWVVBTgorCQkJCVhJQkVJV0FORywgSEFJRElBTgorCQkJCUJFSUpJTkcgIDEwMDA5NAorCQkJCUNISU5BCisKKzE0LUZFLUI1ICAgKGhleCkJCURlbGwgSW5jCisxNEZFQjUgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksIE1TOlJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzE4LTAxLUUzICAgKGhleCkJCUVsZWt0cm9iaXQgV2lyZWxlc3MgQ29tbXVuaWNhdGlvbnMgTHRkCisxODAxRTMgICAgIChiYXNlIDE2KQkJRWxla3Ryb2JpdCBXaXJlbGVzcyBDb21tdW5pY2F0aW9ucyBMdGQKKwkJCQlUdXRraWphbnRpZSA4CisJCQkJT3VsdSAgOTA1NzAKKwkJCQlGSU5MQU5ECisKKzE4LTAzLTczICAgKGhleCkJCURlbGwgSW5jCisxODAzNzMgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksIE1TOlJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzE4LTAzLUZBICAgKGhleCkJCUlCVCBJbnRlcmZhY2VzCisxODAzRkEgICAgIChiYXNlIDE2KQkJSUJUIEludGVyZmFjZXMKKwkJCQlJbSBUYXViaGF1cyAxOQorCQkJCVJvZWRlcm1hcmsgSGVzc2VuIDYzMzIyCisJCQkJR0VSTUFOWQorCisxOC0wNi03NSAgIChoZXgpCQlESUxBWCBJbnRlbGNvbSBHbWJICisxODA2NzUgICAgIChiYXNlIDE2KQkJRElMQVggSW50ZWxjb20gR21iSAorCQkJCUFsdC1Nb2FiaXQgOTZiCisJCQkJQmVybGluICAxMDU1OQorCQkJCUdFUk1BTlkKKworMTgtMEItNTIgICAoaGV4KQkJTmFub3Ryb24gVGVjaG5vbG9naWVzIEdtYkgKKzE4MEI1MiAgICAgKGJhc2UgMTYpCQlOYW5vdHJvbiBUZWNobm9sb2dpZXMgR21iSAorCQkJCUFsdC1Nb2FiaXQgNjAKKwkJCQlCZXJsaW4gIDEwNTU1CisJCQkJR0VSTUFOWQorCisxOC0wQy03NyAgIChoZXgpCQlXZXN0aW5naG91c2UgRWxlY3RyaWMgQ29tcGFueSwgTExDCisxODBDNzcgICAgIChiYXNlIDE2KQkJV2VzdGluZ2hvdXNlIEVsZWN0cmljIENvbXBhbnksIExMQworCQkJCTEwMDAgV2VzdGluZ2hvdXNlIERyaXZlCisJCQkJU3VpdGUgMTUyCisJCQkJQ3JhbmJlcnJ5IFRvd25zaGlwIFBBIDE2MDY2CisJCQkJVU5JVEVEIFNUQVRFUworCisxOC0xNC0yMCAgIChoZXgpCQlURUIgU0FTCisxODE0MjAgICAgIChiYXNlIDE2KQkJVEVCIFNBUworCQkJCVJEMjk0IC0gQ29ycGVhdQorCQkJCU1ldXJzYXVsdCBCdXJndW5keSAyMTE5MAorCQkJCUZSQU5DRQorCisxOC0xNC01NiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorMTgxNDU2ICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgT3UgOTA1OTAKKwkJCQlGSU5MQU5ECisKKzE4LTE3LTE0ICAgKGhleCkJCURBRVdPT0lTCisxODE3MTQgICAgIChiYXNlIDE2KQkJREFFV09PSVMKKwkJCQk3RiBOYW1rd2FuZyBDZW50bGV4IEJsZGcuIDQ0MC00IENoZW9uZ2NoZW9uMi1kb25nIAorCQkJCUluY2hlb24gUHVweWVvbmctZ3UgODIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMTgtMTktM0YgICAoaGV4KQkJVGFtdHJvbiBPeQorMTgxOTNGICAgICAoYmFzZSAxNikJCVRhbXRyb24gT3kKKwkJCQlQLk8uQm94IDE1IChWZXN0b25rYXR1IDExKQorCQkJCVRhbXBlcmUgIDMzNTYxCisJCQkJRklOTEFORAorCisxOC0yMC0zMiAgIChoZXgpCQlBcHBsZSwgSW5jLgorMTgyMDMyICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtMjgtNjEgICAoaGV4KQkJQWlyVGllcyBXaXJlbGVzcyBOZXR3b3JrcworMTgyODYxICAgICAoYmFzZSAxNikJCUFpclRpZXMgV2lyZWxlc3MgTmV0d29ya3MKKwkJCQlH/GxiYWhhciBNYWguIEF2bmkgRGlsbGlnaWwgU29rLiBDZWxpayBJcyBNZXJrZXppIE5vOjUgTWVjaWRpeWVrb3kKKwkJCQlJU1RBTkJVTCAgMzQzOTQKKwkJCQlUVVJLRVkKKworMTgtMkItMDUgICAoaGV4KQkJOEQgVGVjaG5vbG9naWVzCisxODJCMDUgICAgIChiYXNlIDE2KQkJOEQgVGVjaG5vbG9naWVzCisJCQkJNDE2LCBkZSBNYWlzb25uZXV2ZSBXZXN0CisJCQkJU3VpdGUgNDA2CisJCQkJTW9udHJlYWwsICBRdWViZWMgSDNBIDFMMgorCQkJCUNBTkFEQQorCisxOC0yQy05MSAgIChoZXgpCQlDb25jZXB0IERldmVsb3BtZW50LCBJbmMuCisxODJDOTEgICAgIChiYXNlIDE2KQkJQ29uY2VwdCBEZXZlbG9wbWVudCwgSW5jLgorCQkJCTE4ODEgTGFuZ2xleSBBdmVudWUKKwkJCQlJcnZpbmUgQ0EgOTI2MTQtNTYyMworCQkJCVVOSVRFRCBTVEFURVMKKworMTgtMzMtOUQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMTgzMzlEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzE4LTM0LTUxICAgKGhleCkJCUFwcGxlLCBJbmMuCisxODM0NTEgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIGluZmluaXRlIExvb3AKKwkJCQljdXBlcnRpbm8gY0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzE4LTM4LTI1ICAgKGhleCkJCVd1aGFuIExpbmdqaXUgSGlnaC10ZWNoIENvLixMdGQuCisxODM4MjUgICAgIChiYXNlIDE2KQkJV3VoYW4gTGluZ2ppdSBIaWdoLXRlY2ggQ28uLEx0ZC4KKwkJCQlOby43MTgKKwkJCQlMdXl1IFJvYWQKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzQKKwkJCQlDSElOQQorCisxOC0zOS0xOSAgIChoZXgpCQlVbmljb2kgU3lzdGVtcworMTgzOTE5ICAgICAoYmFzZSAxNikJCVVuaWNvaSBTeXN0ZW1zCisJCQkJNDEwIFBlYWNodHJlZSBQa3d5CisJCQkJQmxkZyA0MDAsIFN0ZSA0MjI2CisJCQkJQ3VtbWluZyBHQSAzMDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtM0ItRDIgICAoaGV4KQkJQllEIFByZWNpc2lvbiBNYW51ZmFjdHVyZSBDb21wYW55IEx0ZC4KKzE4M0JEMiAgICAgKGJhc2UgMTYpCQlCWUQgUHJlY2lzaW9uIE1hbnVmYWN0dXJlIENvbXBhbnkgTHRkLgorCQkJCU5vMzAwMCBMb25nRG9uZyBBdmVudWUsIFB1ZG9uZyBEaXN0cmljdAorCQkJCVNoYW5naGFpICAyMDEyMDMKKwkJCQlDSElOQQorCisxOC0zRC1BMiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzE4M0RBMiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzE4LTNGLTQ3ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMTgzRjQ3ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisxOC00Mi0xRCAgIChoZXgpCQlQUklWQVRFCisxODQyMUQgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzE4LTQyLTJGICAgKGhleCkJCUFsY2F0ZWwgTHVjZW50CisxODQyMkYgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBMdWNlbnQKKwkJCQlWaWEgVHJlbnRvLCAzMAorCQkJCVZpbWVyY2F0ZSBNQiAyMDA1OQorCQkJCUlUQUxZCisKKzE4LTQ2LTE3ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzE4NDYxNyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzE4LTRFLTk0ICAgKGhleCkJCU1FU1NPQSBURUNITk9MT0dJRVMgSU5DLgorMTg0RTk0ICAgICAoYmFzZSAxNikJCU1FU1NPQSBURUNITk9MT0dJRVMgSU5DLgorCQkJCTEzNjExIDEydGggU3QuLCBVbml0IEIKKwkJCQlDaGlubyBDQSA5MTcxMAorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtNTktMzMgICAoaGV4KQkJQ2lzY28gU1BWVEcKKzE4NTkzMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlMYXdyZW5jZXZpbGxlIEdBICAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtNjYtRTMgICAoaGV4KQkJVmVyb3MgU3lzdGVtcywgSW5jLgorMTg2NkUzICAgICAoYmFzZSAxNikJCVZlcm9zIFN5c3RlbXMsIEluYy4KKwkJCQlQTyBCb3ggMTA1MzQKKwkJCQlDb2xsZWdlIFN0YXRpb24gVGV4YXMgNzc4NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzE4LTY3LTUxICAgKGhleCkJCUtPTUVHIEluZHVzdHJpZWxsZSBNZXNzdGVjaG5payBHbWJICisxODY3NTEgICAgIChiYXNlIDE2KQkJS09NRUcgSW5kdXN0cmllbGxlIE1lc3N0ZWNobmlrIEdtYkgKKwkJCQladW0gV2Fzc2Vyd2VyayAzCisJCQkJVvZsa2xpbmdlbiAgNjYzMzMKKwkJCQlHRVJNQU5ZCisKKzE4LTZELTk5ICAgKGhleCkJCUFkYW5pcyBJbmMuCisxODZEOTkgICAgIChiYXNlIDE2KQkJQWRhbmlzIEluYy4KKwkJCQkjMTgwNiwgIFNhbWhvIGNlbnRlciBCIEJsZGcKKwkJCQkyNzUtNiwgWWFuZ2phZS1Eb25nLCBTZW9jaG8tS3UsIAorCQkJCVNFT1VMICAxMzctOTQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzE4LTdDLTgxICAgKGhleCkJCVZhbGVvIFZpc2lvbiBTeXN0ZW1zCisxODdDODEgICAgIChiYXNlIDE2KQkJVmFsZW8gVmlzaW9uIFN5c3RlbXMKKwkJCQlEdW5tb3JlIFJvYWQKKwkJCQlUdWFtCisJCQkJQ291bnR5IEdhbHdheSAgCisJCQkJSVJFTEFORAorCisxOC04MC1DRSAgIChoZXgpCQlCYXJiZXJyeSBTb2x1dGlvbnMgTHRkCisxODgwQ0UgICAgIChiYXNlIDE2KQkJQmFyYmVycnkgU29sdXRpb25zIEx0ZAorCQkJCTIvMTMgTmF2aXRpIFBsYWNlCisJCQkJQnJvd25zIEJheQorCQkJCUF1Y2tsYW5kICAwNjMwCisJCQkJTkVXIFpFQUxBTkQKKworMTgtODAtRjUgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQgU2hhbmdoYWkgQmVsbCBDby4sIEx0ZCAKKzE4ODBGNSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudCBTaGFuZ2hhaSBCZWxsIENvLiwgTHRkIAorCQkJCU5vLiAzODksIE5pbmdxaWFvIFJvYWQsIFB1ZG9uZyBKaW5xaWFvLAorCQkJCVNoYW5naGFpICAyMDEyMDYKKwkJCQlDSElOQQorCisxOC04Ni1BQyAgIChoZXgpCQlOb2tpYSBEYW5tYXJrIEEvUworMTg4NkFDICAgICAoYmFzZSAxNikJCU5va2lhIERhbm1hcmsgQS9TCisJCQkJRnJlZGVyaWtza2FqCisJCQkJQ29wZW5oYWdlbiBWICBESy0xNzkwCisJCQkJREVOTUFSSworCisxOC04Ny05NiAgIChoZXgpCQlIVEMgQ29ycG9yYXRpb24KKzE4ODc5NiAgICAgKGJhc2UgMTYpCQlIVEMgQ29ycG9yYXRpb24KKwkJCQlOby4gMjMsIFhpbmdodWEgUmQuLCAKKwkJCQlUYW95dWFuIENpdHkgIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMTgtOEUtRDUgICAoaGV4KQkJUGhpbGlwcyBJbm5vdmF0aXZlIEFwcGxpY2F0aW9uIE5WIAorMTg4RUQ1ICAgICAoYmFzZSAxNikJCVBoaWxpcHMgSW5ub3ZhdGl2ZSBBcHBsaWNhdGlvbiBOViAKKwkJCQlQYXRob2VrZXdlZyAxMQorCQkJCUJydWdlcyBXZXN0IEZsYW5kZXJzIDgwMDAKKwkJCQlCRUxHSVVNCisKKzE4LTkyLTJDICAgKGhleCkJCVZpcnR1YWwgSW5zdHJ1bWVudHMKKzE4OTIyQyAgICAgKGJhc2UgMTYpCQlWaXJ0dWFsIEluc3RydW1lbnRzCisJCQkJMTAwIEVudGVycHJpc2UgV2F5CisJCQkJU3VpdGUgQy0zCisJCQkJU2NvdHRzIFZhbGxleSBDQSA5NTA2NgorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtOTctRkYgICAoaGV4KQkJVGVjaEZhaXRoIFdpcmVsZXNzIFRlY2hub2xvZ3kgTGltaXRlZAorMTg5N0ZGICAgICAoYmFzZSAxNikJCVRlY2hGYWl0aCBXaXJlbGVzcyBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlCdWlsZGluZyBDLCBKaWEgTm8uNSwgUm9uZ2NoYW5nIEVhc3QgU3RyZWV0LCBCREEgRGlzdHJpY3QsIAorCQkJCUJlaWppbmcgIDEwMDE3NgorCQkJCUNISU5BCisKKzE4LTlFLUZDICAgKGhleCkJCUFwcGxlIEluYworMTg5RUZDICAgICAoYmFzZSAxNikJCUFwcGxlIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyAgQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzE4LUE5LTA1ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisxOEE5MDUgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtQUItRjUgICAoaGV4KQkJVWx0cmEgRWxlY3Ryb25pY3MgLSBFbGVjdHJpY3MKKzE4QUJGNSAgICAgKGJhc2UgMTYpCQlVbHRyYSBFbGVjdHJvbmljcyAtIEVsZWN0cmljcworCQkJCUtpbmdzZGl0Y2ggTGFuZQorCQkJCUNoZWx0ZW5oYW0gR2xvdWNlc3RlcnNoaXJlIEdMNTEgOVBHCisJCQkJVU5JVEVEIEtJTkdET00KKworMTgtQUQtNEQgICAoaGV4KQkJUG9sb3N0YXIgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorMThBRDREICAgICAoYmFzZSAxNikJCVBvbG9zdGFyIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQkyRiwgTm8uMzUxLCBZYW5nZ3VhbmcgU3QuCisJCQkJVGFpcGVpICAxMTQ5MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMTgtQUUtQkIgICAoaGV4KQkJU2llbWVucyBQcm9ncmFtbS0gdW5kIFN5c3RlbWVudHdpY2tsdW5nIEdtYkgmQ28uS0cKKzE4QUVCQiAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIFByb2dyYW1tLSB1bmQgU3lzdGVtZW50d2lja2x1bmcgR21iSCZDby5LRworCQkJCUNvbW11bmljYXRpb25zLCBNZWRpYSBhbmQgVGVjaG5vbG9neQorCQkJCUhhcmJ1cmdlciBTY2hsb3Nzc3RyYXNzZSAxOAorCQkJCUhhbWJ1cmcgIEQtMjEwNzkKKwkJCQlHRVJNQU5ZCisKKzE4LUFGLTlGICAgKGhleCkJCURJR0lUUk9OSUMgQXV0b21hdGlvbnNhbmxhZ2VuIEdtYkgKKzE4QUY5RiAgICAgKGJhc2UgMTYpCQlESUdJVFJPTklDIEF1dG9tYXRpb25zYW5sYWdlbiBHbWJICisJCQkJQXVmIGRlciBMYW5nd2llcyAxCisJCQkJV2FsbGJhY2ggSGVzc2VuIDY1NTEwCisJCQkJR0VSTUFOWQorCisxOC1CMi0wOSAgIChoZXgpCQlUb3JyZXkgUGluZXMgTG9naWMsIEluYworMThCMjA5ICAgICAoYmFzZSAxNikJCVRvcnJleSBQaW5lcyBMb2dpYywgSW5jCisJCQkJMTI2NTEgSGlnaCBCbHVmZiBEcml2ZSwgIzEwMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtQjMtQkEgICAoaGV4KQkJTmV0bG9naWMgQUIKKzE4QjNCQSAgICAgKGJhc2UgMTYpCQlOZXRsb2dpYyBBQgorCQkJCURhdGF25GdlbiAxNEEKKwkJCQlBU0tJTSBW5HN0cmEgR/Z0YWxhbmQgNDM2MzIKKwkJCQlTV0VERU4KKworMTgtQjQtMzAgICAoaGV4KQkJTmVzdCBMYWJzIEluYy4KKzE4QjQzMCAgICAgKGJhc2UgMTYpCQlOZXN0IExhYnMgSW5jLgorCQkJCTIzNSBBbG1hIAorCQkJCVBhbG8gQWx0byBDQSA5NDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMTgtQjUtOTEgICAoaGV4KQkJSS1TdG9ybQorMThCNTkxICAgICAoYmFzZSAxNikJCUktU3Rvcm0KKwkJCQlIb2d5ZS1kb25nLCBEb25nYW4tZ3UKKwkJCQkjMzAxLCBEYWVyaW0gUGxlemEsIDEwMjctMjAsMjEKKwkJCQlBbnlhbmctc2kgR3llb25nZ2ktZG8gNDMxLTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisxOC1CNy05RSAgIChoZXgpCQlJbnZveGlhCisxOEI3OUUgICAgIChiYXNlIDE2KQkJSW52b3hpYQorCQkJCTg3IHJ1ZSBkdSBHb3V2ZXJuZXVyIEfpbmVyYWwgRWJvdekKKwkJCQlJc3N5LUxlcy1Nb3VsaW5lYXV4ICA5MjEzMAorCQkJCUZSQU5DRQorCisxOC1DMC04NiAgIChoZXgpCQlCcm9hZGNvbSBDb3Jwb3JhdGlvbgorMThDMDg2ICAgICAoYmFzZSAxNikJCUJyb2FkY29tIENvcnBvcmF0aW9uCisJCQkJNTMwMCBDYWxpZm9ybmlhIEF2ZW51ZQorCQkJCUlydmluZSBDQSA5MjYxNworCQkJCVVOSVRFRCBTVEFURVMKKworMTgtQzQtNTEgICAoaGV4KQkJVHVjc29uIEVtYmVkZGVkIFN5c3RlbXMKKzE4QzQ1MSAgICAgKGJhc2UgMTYpCQlUdWNzb24gRW1iZWRkZWQgU3lzdGVtcworCQkJCTU2MjAgTm9ydGggS29sYiBSb2FkCisJCQkJU3VpdGUgMTYwCisJCQkJVHVjc29uIEFaIDg1NzUwCisJCQkJVU5JVEVEIFNUQVRFUworCisxOC1EMC03MSAgIChoZXgpCQlEQVNBTiBTTUMsIEluYy4KKzE4RDA3MSAgICAgKGJhc2UgMTYpCQlEQVNBTiBTTUMsIEluYy4KKwkJCQkzMDksICBCdW5kYW5nIFRlY2hubyBQYXJrLCAxNTEsIFlhdGFwLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzE4LUQ2LTZBICAgKGhleCkJCUlubWFyc2F0CisxOEQ2NkEgICAgIChiYXNlIDE2KQkJSW5tYXJzYXQKKwkJCQk5OSBDaXR5IFJvYWQKKwkJCQlMb25kb24gIEVDMVkgMUFYCisJCQkJVU5JVEVEIEtJTkdET00KKworMTgtRTItODggICAoaGV4KQkJU1RUIENvbmRpZ2kKKzE4RTI4OCAgICAgKGJhc2UgMTYpCQlTVFQgQ29uZGlnaQorCQkJCUFnbmVzZnJpZHN2YWdlbiAxMTMgQQorCQkJCU1hbG1vIFNrYW5lIDIxMjM3CisJCQkJU1dFREVOCisKKzE4LUUyLUMyICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzE4RTJDMiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzE4LUU3LUY0ICAgKGhleCkJCUFwcGxlLCBJbmMuCisxOEU3RjQgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzE4LUU4LTBGICAgKGhleCkJCVZpa2luZyBFbGVjdHJvbmljcyBJbmMuCisxOEU4MEYgICAgIChiYXNlIDE2KQkJVmlraW5nIEVsZWN0cm9uaWNzIEluYy4KKwkJCQkxNTMxIEluZHVzdHJpYWwgU3QKKwkJCQlIdWRzb24gV0kgNTQwMTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzE4LUVGLTYzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzE4RUY2MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzE4LUY0LTZBICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzE4RjQ2QSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgMjAxNjEzCisJCQkJQ0hJTkEKKworMTgtRjYtNTAgICAoaGV4KQkJTXVsdGltZWRpYSBQYWNpZmljIExpbWl0ZWQKKzE4RjY1MCAgICAgKGJhc2UgMTYpCQlNdWx0aW1lZGlhIFBhY2lmaWMgTGltaXRlZAorCQkJCTEgTWF0aGVzb24gU3RyZWV0LCBTaGVsbCBUb3dlciAyOUYvMTIKKwkJCQlUaW1lIFNxdWFyZSwgQ2F1c2V3YXkgQmF5CisJCQkJMDAwMDAwCisJCQkJSE9ORyBLT05HCisKKzE4LUY4LTdBICAgKGhleCkJCWkzIEludGVybmF0aW9uYWwgSW5jLgorMThGODdBICAgICAoYmFzZSAxNikJCWkzIEludGVybmF0aW9uYWwgSW5jLgorCQkJCTc4MCBCaXJjaG1vdW50IFJvYWQKKwkJCQlVbml0IDE2CisJCQkJU2NhcmJvcm91Z2ggT250YXJpbyBNMUs1SDQKKwkJCQlDQU5BREEKKworMTgtRkMtOUYgICAoaGV4KQkJQ2hhbmdoZSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzE4RkM5RiAgICAgKGJhc2UgMTYpCQlDaGFuZ2hlIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTZ0aCBGbG9vciwgQnVpbGRpbmcgQiwgRGFqaWFoYW8gU3F1YXJlLCBZdaGvYW4gMXN0IFJvYWQsIEJhb6GvYW4sIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDEKKwkJCQlDSElOQQorCisxQy0wNi01NiAgIChoZXgpCQlJRFkgQ29ycG9yYXRpb24KKzFDMDY1NiAgICAgKGJhc2UgMTYpCQlJRFkgQ29ycG9yYXRpb24KKwkJCQlJREVNSVRTVSBLb3Jha3VlbiBCbGQgOUYKKwkJCQkxLTItMSBLb2lzaGlrYXdhCisJCQkJQnVua3lvLWt1IFRva3lvIDExMi0wMDAyCisJCQkJSkFQQU4KKworMUMtMEItNTIgICAoaGV4KQkJRVBJQ09NIFMuQQorMUMwQjUyICAgICAoYmFzZSAxNikJCUVQSUNPTSBTLkEKKwkJCQlBdXRvdmlhIEFuZGFsdWNpYSBLbSAxMi43MDAKKwkJCQlQLkkgTG9zIEFuZ2VsZXMKKwkJCQlHZXRhZmUgTWFkcmlkIDI4OTA1CisJCQkJU1BBSU4KKworMUMtMEYtQ0YgICAoaGV4KQkJU3lwcm8gT3B0aWNzIEdtYkgKKzFDMEZDRiAgICAgKGJhc2UgMTYpCQlTeXBybyBPcHRpY3MgR21iSAorCQkJCUNhcmwtWmVpc3MtUHJvbWVuYWRlIDEwCisJCQkJSmVuYSBUaHVyaW5naWEgMDc3NDUKKwkJCQlHRVJNQU5ZCisKKzFDLTEyLTlEICAgKGhleCkJCUlFRUUgUEVTIFBTUkMvU1VCICAgICAKKzFDMTI5RCAgICAgKGJhc2UgMTYpCQlJRUVFIFBFUyBQU1JDL1NVQiAgICAgCisJCQkJIFdvcmtpbmcgR3JvdXAgSDcvU3ViIEM3IChJRUVFIFBDMzcuMjM4KQorCQkJCTQ0NSBIb2VzIExhbmUKKwkJCQlQaXNjYXRhd2F5IE5KIDA4ODU0CisJCQkJVU5JVEVEIFNUQVRFUworCisxQy0xNC00OCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorMUMxNDQ4ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworMUMtMTctRDMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMUMxN0QzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMUMtMTgtNEEgICAoaGV4KQkJU2hlblpoZW4gUmljaGVyTGluayBUZWNobm9sb2dpZXMgQ28uLExURAorMUMxODRBICAgICAoYmFzZSAxNikJCVNoZW5aaGVuIFJpY2hlckxpbmsgVGVjaG5vbG9naWVzIENvLixMVEQKKwkJCQk3MDMsQnVpbGRpbmcgVzEtQSxIaWdoLVRlY2ggSW5kdXN0cmlhbCBQYXJrLEtlSmlOYW4gMXN0IFJvYWQsTmFuU2hhbiwKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworMUMtMTktREUgICAoaGV4KQkJZXlldmlzIEdtYkgKKzFDMTlERSAgICAgKGJhc2UgMTYpCQlleWV2aXMgR21iSAorCQkJCUh1bmRzc2NobGVlc3RyYXNzZSAyMworCQkJCVJldXRsaW5nZW4gQlcgNzI3NjYKKwkJCQlHRVJNQU5ZCisKKzFDLTFELTY3ICAgKGhleCkJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKzFDMUQ2NyAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworMUMtMzMtNEQgICAoaGV4KQkJSVRTIFRlbGVjb20KKzFDMzM0RCAgICAgKGJhc2UgMTYpCQlJVFMgVGVsZWNvbQorCQkJCTI5IEhhbWV0enVkYSBzdC4gCisJCQkJQXp1ciBJc3JhZWwgNTgwMDAxCisJCQkJSVNSQUVMCisKKzFDLTM0LTc3ICAgKGhleCkJCUlubm92YXRpb24gV2lyZWxlc3MKKzFDMzQ3NyAgICAgKGJhc2UgMTYpCQlJbm5vdmF0aW9uIFdpcmVsZXNzCisJCQkJMTE4NjkgVGVhbGUgU3RyZWV0CisJCQkJQ3VsdmVyIENpdHkgQ0EgOTAyMzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzFDLTM1LUYxICAgKGhleCkJCU5FVyBMaWZ0IE5ldWUgRWxla3Ryb25pc2NoZSBXZWdlIFN0ZXVlcnVuZ3NiYXUgR21iSAorMUMzNUYxICAgICAoYmFzZSAxNikJCU5FVyBMaWZ0IE5ldWUgRWxla3Ryb25pc2NoZSBXZWdlIFN0ZXVlcnVuZ3NiYXUgR21iSAorCQkJCUxvY2hoYW1lciBTY2hsYWcgOAorCQkJCUdyYWVmZWxmaW5nIEJhdmFyaWEgODIxNjYKKwkJCQlHRVJNQU5ZCisKKzFDLTNBLTRGICAgKGhleCkJCUFjY3VTcGVjIEVsZWN0cm9uaWNzLCBMTEMKKzFDM0E0RiAgICAgKGJhc2UgMTYpCQlBY2N1U3BlYyBFbGVjdHJvbmljcywgTExDCisJCQkJODE0MCBIYXd0aG9ybmUgRHJpdmUKKwkJCQlFcmllIFBlbm5zeWx2YW5pYSAxNjUwOQorCQkJCVVOSVRFRCBTVEFURVMKKworMUMtM0QtRTcgICAoaGV4KQkJU2lnbWEgS29raSBDby4sTHRkLgorMUMzREU3ICAgICAoYmFzZSAxNikJCVNpZ21hIEtva2kgQ28uLEx0ZC4KKwkJCQkxLTE5LTkgTWlkb3JpCisJCQkJU3VtaWRhLWt1IFRva3lvIDEzMC0wMDIxCisJCQkJSkFQQU4KKworMUMtNDMtRUMgICAoaGV4KQkJSkFQQU4gQ0lSQ1VJVCBDTy4sTFRECisxQzQzRUMgICAgIChiYXNlIDE2KQkJSkFQQU4gQ0lSQ1VJVCBDTy4sTFRECisJCQkJTktGLUthd2FzYWtpLUJ1aWxkaW5nIDdGCisJCQkJMS0yIEhpZ2FzaGlkYWNobyxLYXdhc2FraS1rdQorCQkJCUthd2FzYWtpIEthbmFnYXdhIDIxMDAwMDUKKwkJCQlKQVBBTgorCisxQy00NS05MyAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworMUM0NTkzICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCisxQy00Qi1ENiAgIChoZXgpCQlBenVyZVdhdmUKKzFDNEJENiAgICAgKGJhc2UgMTYpCQlBenVyZVdhdmUKKwkJCQk4Ri4sIE5vLiA5NCwgQmFvc2hvbmcgUmQuCisJCQkJWGluZGlhbiBDaXR5LCBUYWlwZWkgQ291bnR5ICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzFDLTUxLUI1ICAgKGhleCkJCVRlY2hheWEgTFRECisxQzUxQjUgICAgIChiYXNlIDE2KQkJVGVjaGF5YSBMVEQKKwkJCQlQLk8uQiAxNTAwCisJCQkJUGFyZGVzIEhhbm5hICAzNzAwCisJCQkJSVNSQUVMCisKKzFDLTVDLTU1ICAgKGhleCkJCVBSSU1BIENpbmVtYSwgSW5jCisxQzVDNTUgICAgIChiYXNlIDE2KQkJUFJJTUEgQ2luZW1hLCBJbmMKKwkJCQkxOTAzIFdyaWdodCBQbGFjZSwgU3VpdGUgMzIwCisJCQkJQ2FybHNiYWQgQ0EgOTIwMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzFDLTVGLUZGICAgKGhleCkJCUJlaWppbmcgRXJlbmViZW4gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkIFNoZW56aGVuIEJyYW5jaAorMUM1RkZGICAgICAoYmFzZSAxNikJCUJlaWppbmcgRXJlbmViZW4gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sTHRkIFNoZW56aGVuIEJyYW5jaAorCQkJCVJvb20gMTRBLCBCdWlsZGluZyBBLCBIb25nbG9uZyBDZW50cmFsIFBsYXphLCBOby4zMDAxLEhlcGluZyBSb2FkLCBMdW9odSBEaXN0cmljdCwgU2hlbnpoZW4gQ2l0eQorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDEKKwkJCQlDSElOQQorCisxQy02Mi1COCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzFDNjJCOCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMUMtNjUtOUQgICAoaGV4KQkJTGl0ZW9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzFDNjU5RCAgICAgKGJhc2UgMTYpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLDkwLENoaWVuIDEgUm9hZCxDaHVuZ0hvLFRhaXBlaSBIc2llbiwKKwkJCQlUYWlwZWkgIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisxQy02Ni02RCAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uTHRkCisxQzY2NkQgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLkx0ZAorCQkJCTY2LENodW5nIFNoYW4gUmQuVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNgorCQkJCVRBSVdBTiwgUFJPVklOQ0UgT0YgQ0hJTkEKKworMUMtNjktQTUgICAoaGV4KQkJUmVzZWFyY2ggSW4gTW90aW9uCisxQzY5QTUgICAgIChiYXNlIDE2KQkJUmVzZWFyY2ggSW4gTW90aW9uCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzFDLTZCLUNBICAgKGhleCkJCU1pdHN1bmFtaSBDby4sIEx0ZC4KKzFDNkJDQSAgICAgKGJhc2UgMTYpCQlNaXRzdW5hbWkgQ28uLCBMdGQuCisJCQkJMi0zMC0xMSwgTmlzaGktZ290YW5kYSwgU2hpbmFnYXdhLWt1CisJCQkJVG9reW8gIDE0MS0wMDMxCisJCQkJSkFQQU4KKworMUMtNkYtNjUgICAoaGV4KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKzFDNkY2NSAgICAgKGJhc2UgMTYpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCVBpbi1KZW4gQ2l0eSwKKwkJCQlQaW4tSmVuIFRhb3l1YW4gMzI0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisxQy03NS0wOCAgIChoZXgpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELiAKKzFDNzUwOCAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELiAKKwkJCQlOTy4gMjUsIFRIRSAzUkQgU3RyZWV0IEtVTlNIQU4gRVhQT1JUIFBST0NFU1NJTkcgWk9ORSAKKwkJCQlLVU5TSEFOIFNVWkhPVSAgMjE1MzAwIAorCQkJCUNISU5BCisKKzFDLTdDLTExICAgKGhleCkJCUVJRCAKKzFDN0MxMSAgICAgKGJhc2UgMTYpCQlFSUQgCisJCQkJUnVhIFF1aW50YSBkb3MgTWVkcm9uaGVpcm9zIAorCQkJCUNoYXJuZWNhIGRhIENhcGFyaWNhICAgMjgyMC00ODYKKwkJCQlQT1JUVUdBTAorCisxQy03Qy00NSAgIChoZXgpCQlWaXRlayBJbmR1c3RyaWFsIFZpZGVvIFByb2R1Y3RzLCBJbmMuCisxQzdDNDUgICAgIChiYXNlIDE2KQkJVml0ZWsgSW5kdXN0cmlhbCBWaWRlbyBQcm9kdWN0cywgSW5jLgorCQkJCTI4NDkyIENvbnN0ZWxsYXRpb24gUmQKKwkJCQlWYWxlbmNpYSBDQSA5MTM1NQorCQkJCVVOSVRFRCBTVEFURVMKKworMUMtN0UtRTUgICAoaGV4KQkJRC1MaW5rIEludGVybmF0aW9uYWwKKzFDN0VFNSAgICAgKGJhc2UgMTYpCQlELUxpbmsgSW50ZXJuYXRpb25hbAorCQkJCTEgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBQYXJrLCAjMDMtMTIsIFRoZSBTeW5lcmd5IAorCQkJCTYwOTkxNworCQkJCVNJTkdBUE9SRQorCisxQy04My1CMCAgIChoZXgpCQlMaW5rZWQgSVAgR21iSAorMUM4M0IwICAgICAoYmFzZSAxNikJCUxpbmtlZCBJUCBHbWJICisJCQkJS2lyY2hlbnN0cmFzc2UgOQorCQkJCUFuaWYgLyBOaWVkZXJhbG0gU0JHIDUwODEKKwkJCQlBVVNUUklBCisKKzFDLTg0LTY0ICAgKGhleCkJCUZPUk1PU0EgV0lSRUxFU1MgQ09NTVVOSUNBVElPTiBDT1JQLgorMUM4NDY0ICAgICAoYmFzZSAxNikJCUZPUk1PU0EgV0lSRUxFU1MgQ09NTVVOSUNBVElPTiBDT1JQLgorCQkJCTExRi4sIE5vLjMtMiwgWXVhbnF1IFN0LiwgTmFuZ2FuZyBEaXN0LiwKKwkJCQlUYWlwZWkgQ2l0eSAxMTUKKwkJCQlUQUlXQU4sIFBST1ZJTkNFIE9GIENISU5BCisKKzFDLThFLThFICAgKGhleCkJCURCIENvbW11bmljYXRpb24gJiBTeXN0ZW1zIENvLiwgbHRkLgorMUM4RThFICAgICAoYmFzZSAxNikJCURCIENvbW11bmljYXRpb24gJiBTeXN0ZW1zIENvLiwgbHRkLgorCQkJCTMtMyBZZW9uZ2Rlb2stZG9uZywgR2loZXVuZy1ndQorCQkJCVlvbmdpbi1zaSBHeWVvbmdnaS1kbyA0NDktOTA4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzFDLThGLThBICAgKGhleCkJCVBoYXNlIE1vdGlvbiBDb250cm9sIFNwQQorMUM4RjhBICAgICAoYmFzZSAxNikJCVBoYXNlIE1vdGlvbiBDb250cm9sIFNwQQorCQkJCXZpYSBBZGFtb2xpLCA0NjEKKwkJCQlHZW5vdmEgIElUMTYxNDEKKwkJCQlJVEFMWQorCisxQy05NS01RCAgIChoZXgpCQlJLUxBWCBFTEVDVFJPTklDUyBJTkMuCisxQzk1NUQgICAgIChiYXNlIDE2KQkJSS1MQVggRUxFQ1RST05JQ1MgSU5DLgorCQkJCTIyODMgQVJHRU5USUEgUkQuLSBVTklUICMgMTAKKwkJCQlNSVNTSVNTQVVHQSBPTi4gTDVOIDVaMgorCQkJCUNBTkFEQQorCisxQy05Ny0zRCAgIChoZXgpCQlQUklDT00gRGVzaWduCisxQzk3M0QgICAgIChiYXNlIDE2KQkJUFJJQ09NIERlc2lnbgorCQkJCTI3NTUgU2xvY3VtIFJkCisJCQkJUGV5dG9uIENPIDgwODMxCisJCQkJVU5JVEVEIFNUQVRFUworCisxQy1BQS0wNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCisxQ0FBMDcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCisxQy1BQi1BNyAgIChoZXgpCQlBcHBsZSwgSW5jLgorMUNBQkE3ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBpbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCisxQy1BRi1GNyAgIChoZXgpCQlELUxJTksgSU5URVJOQVRJT05BTCBQVEUgTElNSVRFRAorMUNBRkY3ICAgICAoYmFzZSAxNikJCUQtTElOSyBJTlRFUk5BVElPTkFMIFBURSBMSU1JVEVECisJCQkJMSBJTlRFUk5BVElPTkFMICBCVVNJTkVTUyAgUEFSSywKKwkJCQkgIzAzLTEyLCBUSEUgU1lORVJHWQorCQkJCTYwOTkxNworCQkJCVNJTkdBUE9SRQorCisxQy1CMC05NCAgIChoZXgpCQlIVEMgQ29ycG9yYXRpb24KKzFDQjA5NCAgICAgKGJhc2UgMTYpCQlIVEMgQ29ycG9yYXRpb24KKwkJCQlOby4gMjMsIFhpbmdodWEgUmQuLCBUYW95dWFuIENpdHkKKwkJCQlUYW95dWFuIENvdW50eSAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisxQy1CMS03RiAgIChoZXgpCQlORUMgQWNjZXNzVGVjaG5pY2EsIEx0ZC4KKzFDQjE3RiAgICAgKGJhc2UgMTYpCQlORUMgQWNjZXNzVGVjaG5pY2EsIEx0ZC4KKwkJCQk4MDAgU2hpbW9tYXRhCisJCQkJS2FrZWdhd2EgU2hpenVva2EgNDM2LTg1MDEKKwkJCQlKQVBBTgorCisxQy1CMi00MyAgIChoZXgpCQlUREMgQS9TCisxQ0IyNDMgICAgIChiYXNlIDE2KQkJVERDIEEvUworCQkJCVRlbGVo77+9amVuIDEKKwkJCQlPZGVuc2UgU++/vSAgNTIyMAorCQkJCURFTk1BUksKKworMUMtQkItQTggICAoaGV4KQkJT0pTQyAiVWZpbXNraXkgWmF2b2QgIlByb21zdnlheiIKKzFDQkJBOCAgICAgKGJhc2UgMTYpCQlPSlNDICJVZmltc2tpeSBaYXZvZCAiUHJvbXN2eWF6IgorCQkJCTM5LCA1MCBsZXQgU1NTUgorCQkJCVVmYSBCYXNoa29ydG9zdGFuIDQ1MDA3MQorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCisxQy1CRC0wRSAgIChoZXgpCQlBbXBsaWZpZWQgRW5naW5lZXJpbmcgUHR5IEx0ZAorMUNCRDBFICAgICAoYmFzZSAxNikJCUFtcGxpZmllZCBFbmdpbmVlcmluZyBQdHkgTHRkCisJCQkJNSBUdXJuZXIgQXZlbnVlCisJCQkJQmVudGxleSBXQSA2MTAyCisJCQkJQVVTVFJBTElBCisKKzFDLUJELUI5ICAgKGhleCkJCUQtTElOSyBJTlRFUk5BVElPTkFMIFBURSBMSU1JVEVECisxQ0JEQjkgICAgIChiYXNlIDE2KQkJRC1MSU5LIElOVEVSTkFUSU9OQUwgUFRFIExJTUlURUQKKwkJCQkxIElOVEVSTkFUSU9OQUwgIEJVU0lORVNTICBQQVJLLCAjMDMtMTIKKwkJCQlUSEUgU1lORVJHWSwgIDYwOTkxNworCQkJCVNJTkdBUE9SRQorCisxQy1DMS1ERSAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorMUNDMURFICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzFDLUM2LTNDICAgKGhleCkJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzFDQzYzQyAgICAgKGJhc2UgMTYpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYuLCBOby45ICwgUGFyayBBdmVudWUgSUkKKwkJCQlIc2luY2h1IFNjaWVuY2UgUGFyayAsCisJCQkJSHNpbmNodSAgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMUMtRDQtMEMgICAoaGV4KQkJS3Jpd2FuIEluZHVzdHJpZS1FbGVrdHJvbmlrIEdtYkgKKzFDRDQwQyAgICAgKGJhc2UgMTYpCQlLcml3YW4gSW5kdXN0cmllLUVsZWt0cm9uaWsgR21iSAorCQkJCUFsbG1hbmQgMTEKKwkJCQlGb3JjaHRlbmJlcmcgQmFkZW4tV++/vXJ0ZW1iZXJnIEQtNzQ2NzAKKwkJCQlHRVJNQU5ZCisKKzFDLURGLTBGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzFDREYwRiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzFDLUUxLTY1ICAgKGhleCkJCU1hcnNoYWwgQ29ycG9yYXRpb24KKzFDRTE2NSAgICAgKGJhc2UgMTYpCQlNYXJzaGFsIENvcnBvcmF0aW9uCisJCQkJRmllbGQgVGhyZWUgU290b2thbmRhIEJsZGcuCisJCQkJNS0zLTYsIFNvdG9rYW5kYSwgQ2hpeW9kYS1rdSBUb2t5byAxMDEtMDAyMQorCQkJCUpBUEFOCisKKzFDLUUxLTkyICAgKGhleCkJCVFpc2RhIENvcnBvcmF0aW9uCisxQ0UxOTIgICAgIChiYXNlIDE2KQkJUWlzZGEgQ29ycG9yYXRpb24KKwkJCQkxNTcgU2hhbi1ZaW5nIFJvYWQKKwkJCQlHdWVpc2hhbiBUYW95dWFuIDMzMworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMUMtRTItQ0MgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzFDRTJDQyAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworMUMtRjAtNjEgICAoaGV4KQkJU0NBUFMgR21iSAorMUNGMDYxICAgICAoYmFzZSAxNikJCVNDQVBTIEdtYkgKKwkJCQlCYWhuaG9mc3RyLiAxNworCQkJCURlaXNlbmhvZmVuIEJhdmFyaWEgODIwNDEKKwkJCQlHRVJNQU5ZCisKKzFDLUY0LUNBICAgKGhleCkJCUF2aXdlc3QKKzFDRjRDQSAgICAgKGJhc2UgMTYpCQlBdml3ZXN0CisJCQkJNiBydWUgZHUgUGF0aXMgVGF0ZWxpbgorCQkJCVJlbm5lcyAtLSAzNTcwMAorCQkJCUZSQU5DRQorCisxQy1GNS1FNyAgIChoZXgpCQlUdXJ0bGUgSW5kdXN0cnkgQ28uLCBMdGQuCisxQ0Y1RTcgICAgIChiYXNlIDE2KQkJVHVydGxlIEluZHVzdHJ5IENvLiwgTHRkLgorCQkJCTEtMTItNCBOaXNoaW5lbWluYW1pCisJCQkJVHN1dGl1cmEgSWJhcmFraSAzMDAtMDg0MgorCQkJCUpBUEFOCisKKzFDLUZFLUE3ICAgKGhleCkJCUlEZW50eXRlY2ggU29sdXRpbnMgTHRkLgorMUNGRUE3ICAgICAoYmFzZSAxNikJCUlEZW50eXRlY2ggU29sdXRpbnMgTHRkLgorCQkJCTE0IEhhZGF5YSBTdHJlZXQgCisJCQkJUmFtYXQtIEhhc2hhcm9uICA0NzIyNgorCQkJCUlTUkFFTAorCisyMC0wMS00RiAgIChoZXgpCQlMaW5lYSBSZXNlYXJjaCBMdGQKKzIwMDE0RiAgICAgKGJhc2UgMTYpCQlMaW5lYSBSZXNlYXJjaCBMdGQKKwkJCQkxIE1hcnF1aXMgQnVzaW5lc3MgQ2VudHJlCisJCQkJUm95c3RvbiBSb2FkCisJCQkJQmFsZG9jayBIZXJ0Zm9yZHNoaXJlIFNHNyA2WEwKKwkJCQlVTklURUQgS0lOR0RPTQorCisyMC0wMi1BRiAgIChoZXgpCQlNdXJhdGEgTWFudWZhY3R1YXJpbmcgQ28uLEx0ZC4KKzIwMDJBRiAgICAgKGJhc2UgMTYpCQlNdXJhdGEgTWFudWZhY3R1YXJpbmcgQ28uLEx0ZC4KKwkJCQkxLTEwLTEgSGlnYXNoaWtvdGFyaQorCQkJCU5hZ2Fva2FreW8tc2hpIEt5b3RvIDYxNy04NTU1CisJCQkJSkFQQU4KKworMjAtMDUtMDUgICAoaGV4KQkJUkFETUFYIENPTU1VTklDQVRJT04gUFJJVkFURSBMSU1JVEVECisyMDA1MDUgICAgIChiYXNlIDE2KQkJUkFETUFYIENPTU1VTklDQVRJT04gUFJJVkFURSBMSU1JVEVECisJCQkJRi0yNC8zNCwgSUlORCBGTE9PUiwgU0VDVE9SLTcKKwkJCQlST0hJTkksIAorCQkJCURFTEhJICAxMTAwODUKKwkJCQlJTkRJQQorCisyMC0wNS1FOCAgIChoZXgpCQlPT08gIkluUHJvTWVkaWEiCisyMDA1RTggICAgIChiYXNlIDE2KQkJT09PICJJblByb01lZGlhIgorCQkJCXByLjQ4MDYsIGQuNgorCQkJCVplbGVub2dyYWQgTW9zY293IDEyNDQ2NgorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCisyMC0wQS01RSAgIChoZXgpCQlYaWFuZ3NoYW4gR2lhbnQgRWFnbGUgVGVjaG5vbG9neSBEZXZlbG9waW5nIGNvLixMVEQKKzIwMEE1RSAgICAgKGJhc2UgMTYpCQlYaWFuZ3NoYW4gR2lhbnQgRWFnbGUgVGVjaG5vbG9neSBEZXZlbG9waW5nIGNvLixMVEQKKwkJCQlKdWV4aSBSb2FkIG5vLjkgSnVleGkgc3RyZWV0IAorCQkJCVhpYW5nc2hhbiBDb3VudHkgWmhlamlhbmcgUHJvdmluY2UKKwkJCQlOaW5nYm8gWmhlamlhbmcgMzE1NzA4CisJCQkJQ0hJTkEKKworMjAtMTAtN0EgICAoaGV4KQkJR2VtdGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisyMDEwN0EgICAgIChiYXNlIDE2KQkJR2VtdGVrIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJTm8uIDEgSmVuIEFpIFJvYWQgSHNpbmNodSBJbmR1c3RyaWFsIFBhcmsgSHVrb3UsCisJCQkJTm8uIDE1LTEgWmhvbmdodWEgUm9hZCwgCisJCQkJSHNpbmNodSAgMzAzNTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzIwLTEyLTU3ICAgKGhleCkJCU1vc3QgTHVja3kgVHJhZGluZyBMdGQKKzIwMTI1NyAgICAgKGJhc2UgMTYpCQlNb3N0IEx1Y2t5IFRyYWRpbmcgTHRkCisJCQkJUm9vbTQwMyBOby41MDYgWmhvbmdzaGFuIFNvdXRoIDJuZCBSb2FkLFh1aHVpIERpc3RyaWN0IAorCQkJCVNoYW5naGFpICAyMDAwMzIKKwkJCQlDSElOQQorCisyMC0xMy1FMCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzIwMTNFMCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMjAtMjEtQTUgICAoaGV4KQkJTEcgRWxlY3Ryb25pY3MgSW5jCisyMDIxQTUgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MgSW5jCisJCQkJNjAtMzksR2FzYW4tZG9uZyxHdW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtMDIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzIwLTI1LTk4ICAgKGhleCkJCVRlbGV2aWV3CisyMDI1OTggICAgIChiYXNlIDE2KQkJVGVsZXZpZXcKKwkJCQkjNDAxIFNlaHdhLCAzNTUtMQorCQkJCVlhdGFwLCBCdW5kYW5nCisJCQkJU3VuZ25hbSBHeWVvbmdnaSA0NjMtODI4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzIwLTJCLUMxICAgKGhleCkJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKzIwMkJDMSAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTEwMTA4CisJCQkJQ0hJTkEKKworMjAtMkMtQjcgICAoaGV4KQkJS29uZyBZdWUgRWxlY3Ryb25pY3MgJiBJbmZvcm1hdGlvbiBJbmR1c3RyeSAoWGluaHVpKSBMdGQuCisyMDJDQjcgICAgIChiYXNlIDE2KQkJS29uZyBZdWUgRWxlY3Ryb25pY3MgJiBJbmZvcm1hdGlvbiBJbmR1c3RyeSAoWGluaHVpKSBMdGQuCisJCQkJS29uZyBZdWUgSW5kdXN0cmlhbCBQYXJrLCAxOCBLb25neXVlIFJvYWQsIEppbmd1emhvdQorCQkJCVhpbmh1aSBEaXN0cmljdCwgCisJCQkJSmlhbmdtZW4gR3Vhbmdkb25nIDUyOTE0MQorCQkJCUNISU5BCisKKzIwLTM3LTA2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzIwMzcwNiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCisyMC0zNy1CQyAgIChoZXgpCQlLdWlwZXJzIEVsZWN0cm9uaWMgRW5naW5lZXJpbmcgQlYKKzIwMzdCQyAgICAgKGJhc2UgMTYpCQlLdWlwZXJzIEVsZWN0cm9uaWMgRW5naW5lZXJpbmcgQlYKKwkJCQlIb3V0a29wZXJzc3RyYWF0IDYKKwkJCQlad2lqbmRyZWNodCBadWlkLUhvbGxhbmQgMzMzNCBLRAorCQkJCU5FVEhFUkxBTkRTCisKKzIwLTQwLTA1ICAgKGhleCkJCWZlbm8gR21iSAorMjA0MDA1ICAgICAoYmFzZSAxNikJCWZlbm8gR21iSAorCQkJCUtvbHBpbmdyaW5nIDIyCisJCQkJT2JlcmhhY2hpbmcgQmF2YXJpYSA4MjA0MQorCQkJCUdFUk1BTlkKKworMjAtNDEtNUEgICAoaGV4KQkJU21hcnRlaCBkLm8uby4KKzIwNDE1QSAgICAgKGJhc2UgMTYpCQlTbWFydGVoIGQuby5vLgorCQkJCVRyZyB0aWdyb3ZjZXYgMQorCQkJCVRvbG1pbiAgNTIyMAorCQkJCVNMT1ZFTklBCisKKzIwLTQ0LTNBICAgKGhleCkJCVNjaG5laWRlciBFbGVjdHJpYyBBc2lhIFBhY2lmaWMgTHRkCisyMDQ0M0EgICAgIChiYXNlIDE2KQkJU2NobmVpZGVyIEVsZWN0cmljIEFzaWEgUGFjaWZpYyBMdGQKKwkJCQkxM0YgRWFzdCBXaW5nLCBXYXJ3aWNrIEhvdXNlLCBUYWlrb28gUGxhY2UKKwkJCQk5NzkgS2luZydzIFJvYWQKKwkJCQlRdWFycnkgQmF5ICAKKwkJCQlIT05HIEtPTkcKKworMjAtNDYtQTEgICAoaGV4KQkJVkVDT1cgQ28uLCBMdGQKKzIwNDZBMSAgICAgKGJhc2UgMTYpCQlWRUNPVyBDby4sIEx0ZAorCQkJCTdGLiwgTm8uMTA1LCBaaG9uZ2NoZW5nIFJkLiwgVHVjaGVuZyBEaXN0LiwKKwkJCQlOZXcgVGFpcGVpIENpdHkgICAyMzY3NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMjAtNDYtRjkgICAoaGV4KQkJQWR2YW5jZWQgTmV0d29yayBEZXZpY2VzIChkYmE6QU5EKQorMjA0NkY5ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIE5ldHdvcmsgRGV2aWNlcyAoZGJhOkFORCkKKwkJCQkzODIwIFZlbnR1cmEgRHJpdmUKKwkJCQlBcmxpbmd0b24gSGVpZ2h0cyBJTCA2MDAwNAorCQkJCVVOSVRFRCBTVEFURVMKKworMjAtNEEtQUEgICAoaGV4KQkJSGFuc2NhbiBTcGFpbiBTLkEuCisyMDRBQUEgICAgIChiYXNlIDE2KQkJSGFuc2NhbiBTcGFpbiBTLkEuCisJCQkJQXZkYS4gZGUgbGEgVmVnYSwgMQorCQkJCUFsY29iZW5kYXMgTWFkcmlkIDI4MTA4CisJCQkJU1BBSU4KKworMjAtNEUtNkIgICAoaGV4KQkJQXh4YW5hKGlzcmFlbCkgbHRkCisyMDRFNkIgICAgIChiYXNlIDE2KQkJQXh4YW5hKGlzcmFlbCkgbHRkCisJCQkJSGFiYXJ6ZWwgMzgKKwkJCQlUZWwgYXZpdiAgNjk3MTAKKwkJCQlJU1JBRUwKKworMjAtNEUtN0YgICAoaGV4KQkJTkVUR0VBUgorMjA0RTdGICAgICAoYmFzZSAxNikJCU5FVEdFQVIKKwkJCQkzNTAgRUFTVCBQTFVNRVJJQSBEUklWRQorCQkJCVNBTiBKT1NFIENBTElGT1JOSUEgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzIwLTU5LUEwICAgKGhleCkJCVBhcmFnb24gVGVjaG5vbG9naWVzIEluYy4KKzIwNTlBMCAgICAgKGJhc2UgMTYpCQlQYXJhZ29uIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJNjggTm9ydGggNHRoIFJpbmcgUmQgV2VzdCwKKwkJCQlTdWl0ZSAxNUItSAorCQkJCUJlaWppbmcgIDEwMDA4MAorCQkJCUNISU5BCisKKzIwLTVCLTJBICAgKGhleCkJCVBSSVZBVEUKKzIwNUIyQSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMjAtNUItNUUgICAoaGV4KQkJU2hlbnpoZW4gV29uaGUgVGVjaG5vbG9neSBDby4sIEx0ZAorMjA1QjVFICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFdvbmhlIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlTb3V0aCBCbG9jayAxMHRoIGZsb29yLCBZdWFueGluZyBCdWlsZGluZywgTm8uIDEKKwkJCQlTb25ncGluZ3NoYW4gUmQsIE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzIwLTY0LTMyICAgKGhleCkJCVNBTVNVTkcgRUxFQ1RSTyBNRUNIQU5JQ1MgQ08uLExURC4KKzIwNjQzMiAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEVMRUNUUk8gTUVDSEFOSUNTIENPLixMVEQuCisJCQkJMzE0LCBNYWV0YW4zLURvbmcsIFllb25ndG9uZy1HdQorCQkJCVN1d29uIEd5dW5nZ2ktRG8gNDQzLTc0MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisyMC02QS04QSAgIChoZXgpCQlXaXN0cm9uIEluZm9Db21tIE1hbnVmYWN0dXJpbmcoS3Vuc2hhbilDby4sTHRkLgorMjA2QThBICAgICAoYmFzZSAxNikJCVdpc3Ryb24gSW5mb0NvbW0gTWFudWZhY3R1cmluZyhLdW5zaGFuKUNvLixMdGQuCisJCQkJMTY4IyBGaXJzdCBBdmVudWUsS3Vuc2hhbiBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJS3Vuc2hhbiBKaWFuZ3N1IDIxNTMwMAorCQkJCUNISU5BCisKKzIwLTZBLUZGICAgKGhleCkJCUF0bGFzIEVsZWt0cm9uaWsgVUsgTGltaXRlZAorMjA2QUZGICAgICAoYmFzZSAxNikJCUF0bGFzIEVsZWt0cm9uaWsgVUsgTGltaXRlZAorCQkJCUEyMiBCdWxpZGluZywgRG9yc2V0IEdyZWVuIFRlY2guIFBhcmsKKwkJCQlXaW5mcml0aCBOZXdidXJnaAorCQkJCURvcmNoZXN0ZXIgRG9yc2V0IERUMiA4WkIKKwkJCQlVTklURUQgS0lOR0RPTQorCisyMC02Ri1FQyAgIChoZXgpCQlCcmFlbWFjIENBIExMQworMjA2RkVDICAgICAoYmFzZSAxNikJCUJyYWVtYWMgQ0EgTExDCisJCQkJNDMxMzQgT3Nnb29kIFJvYWQKKwkJCQlGcmVtb250IENBIDk0NTM5CisJCQkJVU5JVEVEIFNUQVRFUworCisyMC03Ni0wMCAgIChoZXgpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYyAKKzIwNzYwMCAgICAgKGJhc2UgMTYpCQlBY3Rpb250ZWMgRWxlY3Ryb25pY3MsIEluYyAKKwkJCQk3NjAgTm9ydGggTWFyeSBBdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzIwLTdDLThGICAgKGhleCkJCVF1YW50YSBNaWNyb3N5c3RlbXMsSW5jLgorMjA3QzhGICAgICAoYmFzZSAxNikJCVF1YW50YSBNaWNyb3N5c3RlbXMsSW5jLgorCQkJCU5vLjUgTGFuZSA5MSxEb25nbWVpIFJkLgorCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMjAtOUItQTUgICAoaGV4KQkJSklBWElORyBHTEVBRCBFbGVjdHJvbmljcyBDby4sTHRkCisyMDlCQTUgICAgIChiYXNlIDE2KQkJSklBWElORyBHTEVBRCBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJTm8uNjYgWmhlbmd5dWFuIFJvYWQgaW4gVGFuZ2h1IEluZHVzdHJpYWwgR2FyZGVuIAorCQkJCUppYXhpbmcgRWNvbm9taWMgRGV2ZWxvcG1lbnQgWm9uZQorCQkJCUppYXhpbmcgWmhlamlhbmcgMzE0MDAzCisJCQkJQ0hJTkEKKworMjAtQTItRTcgICAoaGV4KQkJTGVlLURpY2tlbnMgTHRkCisyMEEyRTcgICAgIChiYXNlIDE2KQkJTGVlLURpY2tlbnMgTHRkCisJCQkJUnVzaHRvbiBSZAorCQkJCURlc2Jvcm91Z2gKKwkJCQlLZXR0ZXJpbmcgTm9ydGhhbXB0b25zaGlyZSBOTjE0IDJRVworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzIwLUFBLTI1ICAgKGhleCkJCUlQLU5FVCBMTEMKKzIwQUEyNSAgICAgKGJhc2UgMTYpCQlJUC1ORVQgTExDCisJCQkJMTAyNTYgTi5XLiA0N3RoIFN0LgorCQkJCVN1bnJpc2UgRkwgMzMzNTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzIwLUFBLTRCICAgKGhleCkJCUNpc2NvLUxpbmtzeXMsIExMQworMjBBQTRCICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMsIExMQworCQkJCTEyMSBUaGVvcnkgRHJpdmUKKwkJCQlJcnZpbmUgQ2FsaWZvcm5pYSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworMjAtQjAtRjcgICAoaGV4KQkJRW5jbHVzdHJhIEdtYkgKKzIwQjBGNyAgICAgKGJhc2UgMTYpCQlFbmNsdXN0cmEgR21iSAorCQkJCVRlY2hub3BhcmtzdHJhc3NlIDEKKwkJCQladXJpY2ggWkggQ0gtODAwNQorCQkJCVNXSVRaRVJMQU5ECisKKzIwLUIzLTk5ICAgKGhleCkJCUVudGVyYXN5cworMjBCMzk5ICAgICAoYmFzZSAxNikJCUVudGVyYXN5cworCQkJCTUwIE1pbnV0ZW1hbiBSZAorCQkJCUFuZG92ZXIgTUEgMDE4MTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzIwLUI3LUMwICAgKGhleCkJCU9taWNyb24gZWxlY3Ryb25pY3MgR21iSAorMjBCN0MwICAgICAoYmFzZSAxNikJCU9taWNyb24gZWxlY3Ryb25pY3MgR21iSAorCQkJCU9iZXJlcyBSaWVkIDEKKwkJCQlLbGF1cyAgNjgzMworCQkJCUFVU1RSSUEKKworMjAtQkItQzYgICAoaGV4KQkJSmFiaWwgQ2lyY3VpdCBIdW5nYXJ5IEx0ZC4KKzIwQkJDNiAgICAgKGJhc2UgMTYpCQlKYWJpbCBDaXJjdWl0IEh1bmdhcnkgTHRkLgorCQkJCUh1c3rhciBBbmRvciAxLgorCQkJCVRpc3ph+mp24XJvcyAgSC0zNTgwCisJCQkJSFVOR0FSWQorCisyMC1CRi1EQiAgIChoZXgpCQlEVkwKKzIwQkZEQiAgICAgKGJhc2UgMTYpCQlEVkwKKwkJCQkyMSBHcmFkaW5pbG9yIFN0cgorCQkJCUNoaXNpbmF1ICBNRDIwMDEKKwkJCQlNT0xET1ZBLCBSRVBVQkxJQyBPRgorCisyMC1DMS1BRiAgIChoZXgpCQlpIFdpdCBEaWdpdGFsIENvLiwgTGltaXRlZAorMjBDMUFGICAgICAoYmFzZSAxNikJCWkgV2l0IERpZ2l0YWwgQ28uLCBMaW1pdGVkCisJCQkJMzAzLEJ1aWRpbmcxLE5hbmhhaSBFY29vbCBJbm5vdmF0aW9uIFBhcmssCisJCQkJTm8uNiBYaW5naHVhIFJvYWQsU2hla291CisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDUxODAwMAorCQkJCUNISU5BCisKKzIwLUM4LUIzICAgKGhleCkJCVNIRU5aSEVOIEJVTC1URUNIIENPLixMVEQuCisyMEM4QjMgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gQlVMLVRFQ0ggQ08uLExURC4KKwkJCQlBcmVhIEMsNC9GLE5PLjU5LExvbmdqaW5nIDJuZCBSb2FkLAorCQkJCTNyZCBEaXN0cmljdCxCYW9hbiBEaXN0cmljdAorCQkJCVNIRU5aSEVOICBHdWFuZ0RvbmcgNTE4MTAxCisJCQkJQ0hJTkEKKworMjAtQ0YtMzAgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisyMENGMzAgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdSwgCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzIwLUQ1LUFCICAgKGhleCkJCUtvcmVhIEluZm9jb20gQ28uLEx0ZC4KKzIwRDVBQiAgICAgKGJhc2UgMTYpCQlLb3JlYSBJbmZvY29tIENvLixMdGQuCisJCQkJNUYgV2ludGVrIEIvRCA1MTEKKwkJCQlQb2lsLWRvbmcKKwkJCQlVaXdhbmcgS3l1bmdnaS1EbyA0MzctODMwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzIwLUQ2LTA3ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCisyMEQ2MDcgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSBPdSA5MDU5MAorCQkJCUZJTkxBTkQKKworMjAtRDktMDYgICAoaGV4KQkJSW90YSwgSW5jLgorMjBEOTA2ICAgICAoYmFzZSAxNikJCUlvdGEsIEluYy4KKwkJCQkyMjEyIFF1ZWVuIEFubmUgQXZlLiBOLiwgIzM0OAorCQkJCVNlYXR0bGUgV0EgOTgxMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzIwLUU1LTY0ICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisyMEU1NjQgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCisyMC1FRS1DNiAgIChoZXgpCQlFbGVmaXJzdCBTY2llbmNlICYgVGVjaCBDbyAuLCBsdGQKKzIwRUVDNiAgICAgKGJhc2UgMTYpCQlFbGVmaXJzdCBTY2llbmNlICYgVGVjaCBDbyAuLCBsdGQKKwkJCQlGbG9vciA5LCBObyA3NyBaaWppbm1pbmdtZW4gQnVpbGRpbmcKKwkJCQlNdXh1eXVhbiBBdmVudWUKKwkJCQlOYW5qaW5nIEppYW5nc3UgMjEwMDA3CisJCQkJQ0hJTkEKKworMjAtRjAtMDIgICAoaGV4KQkJTVREYXRhIERldmVsb3BtZW50cyBQdHkuIEx0ZC4KKzIwRjAwMiAgICAgKGJhc2UgMTYpCQlNVERhdGEgRGV2ZWxvcG1lbnRzIFB0eS4gTHRkLgorCQkJCTIwIE1pbGVzIFN0cmVldAorCQkJCU11bGdyYXZlIFZpY3RvcmlhIDMxNzAKKwkJCQlBVVNUUkFMSUEKKworMjAtRjMtQTMgICAoaGV4KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorMjBGM0EzICAgICAoYmFzZSAxNikJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCisyMC1GOC01RSAgIChoZXgpCQlEZWx0YSBFbGVjdHJvbmljcworMjBGODVFICAgICAoYmFzZSAxNikJCURlbHRhIEVsZWN0cm9uaWNzCisJCQkJMjUyIFNoYW5neWluZyBSb2FkCisJCQkJR3Vpc2hhbiBJbmR1c3RyaWFsIFpvbmUKKwkJCQlUYW95dWFuIENvdW50eSBUYWl3YW4gMzMzNDEKKwkJCQlUQUlXQU4sIFBST1ZJTkNFIE9GIENISU5BCisKKzIwLUZBLUJCICAgKGhleCkJCUNhbWJyaWRnZSBFeGVjdXRpdmUgTGltaXRlZAorMjBGQUJCICAgICAoYmFzZSAxNikJCUNhbWJyaWRnZSBFeGVjdXRpdmUgTGltaXRlZAorCQkJCVN0IEpvaG4ncyBJbm5vdmF0aW9uIENlbnRyZQorCQkJCUNvd2xleSBSb2FkCisJCQkJQ2FtYnJpZGdlIENhbWJyaWRnZXNoaXJlIENCNDBXUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzIwLUZELUYxICAgKGhleCkJCTNDT00gRVVST1BFIExURAorMjBGREYxICAgICAoYmFzZSAxNikJCTNDT00gRVVST1BFIExURAorCQkJCVBlb3BsZWJ1aWxkaW5nIDIKKwkJCQlNYXlsYW5kcyBBdmVudWUKKwkJCQlIZW1lbCBIZW1wc3RlYWQgSGVydGZvcmRzaGlyZSBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworMjAtRkUtQ0QgICAoaGV4KQkJU3lzdGVtIEluIEZyb250aWVyIEluYy4KKzIwRkVDRCAgICAgKGJhc2UgMTYpCQlTeXN0ZW0gSW4gRnJvbnRpZXIgSW5jLgorCQkJCTRGIFNoaW5zdXp1aGFydSBCbGRnLiAyLTgtMyBBa2Vib25vY3lvCisJCQkJVGFjaGlrYXdhLXNoaSBUb2t5byAxOTAtMDAxMgorCQkJCUpBUEFOCisKKzIwLUZFLURCICAgKGhleCkJCU0yTSBTb2x1dGlvbiBTLkEuUy4KKzIwRkVEQiAgICAgKGJhc2UgMTYpCQlNMk0gU29sdXRpb24gUy5BLlMuCisJCQkJQ2VudHJlIGQnQWZmYWlyZXMgUmVndXMgQmF0LkQKKwkJCQk0NSBBbGxlZSBkZXMgT3JtZXMKKwkJCQlNb3VnaW5zICAgMDYyNTQgCisJCQkJRlJBTkNFCisKKzI0LTA5LTE3ICAgKGhleCkJCURldmxpbiBFbGVjdHJvbmljcyBMaW1pdGVkCisyNDA5MTcgICAgIChiYXNlIDE2KQkJRGV2bGluIEVsZWN0cm9uaWNzIExpbWl0ZWQKKwkJCQlVbml0IEQxCisJCQkJR3JhZnRvbiBXYXkKKwkJCQlCYXNpbmdzdG9rZSBIYW1wc2hpcmUgUkcyMjZIWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzI0LTBCLTJBICAgKGhleCkJCVZpZXR0ZWwgR3JvdXAKKzI0MEIyQSAgICAgKGJhc2UgMTYpCQlWaWV0dGVsIEdyb3VwCisJCQkJQ2VudGVyIGZvciBSZXNlYXJjaCBhbmQgRGV2ZWxvcG1lbnQKKwkJCQkwMSBHaWFuZyBWYW4gTWluaCwgQmEgRGluaAorCQkJCUhhbm9pICAxMTExCisJCQkJVklFVE5BTQorCisyNC0wQi1CMSAgIChoZXgpCQlLT1NUQUwgSW5kdXN0cmllIEVsZWt0cmlrIEdtYkggCisyNDBCQjEgICAgIChiYXNlIDE2KQkJS09TVEFMIEluZHVzdHJpZSBFbGVrdHJpayBHbWJIIAorCQkJCUdld2VyYmVyaW5nIDIwCisJCQkJU2NoYWxrc211ZWhsZSBOb3J0aCBSaGluZS1XZXN0cGhhbGlhIDU4NTc5CisJCQkJR0VSTUFOWQorCisyNC0xMC02NCAgIChoZXgpCQlTaGVuemhlbiBFY3Npbm8gVGVjbmljYWwgQ28uIEx0ZAorMjQxMDY0ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEVjc2lubyBUZWNuaWNhbCBDby4gTHRkCisJCQkJN0YgR3VveGluIGJ1aWxkIENoYW5nWGluIFJvYWQuIE5hbidzaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzI0LTExLTI1ICAgKGhleCkJCUh1dGVrIENvLiwgTHRkLgorMjQxMTI1ICAgICAoYmFzZSAxNikJCUh1dGVrIENvLiwgTHRkLgorCQkJCUUtNDAyIEJ1bmRhbmcgVGVjaG5vcGFyayAKKwkJCQkxNTEgWWF0YXAtZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLWNpdHkgR3llb25nZ2ktZG8gNDYzLTc2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisyNC0xQS04QyAgIChoZXgpCQlTcXVhcmVoZWFkIFRlY2hub2xvZ3kgQVMKKzI0MUE4QyAgICAgKGJhc2UgMTYpCQlTcXVhcmVoZWFkIFRlY2hub2xvZ3kgQVMKKwkJCQlQTyBCb3ggMTMgTnlkYWxlbgorCQkJCU9zbG8gIE5PLTA0MTAKKwkJCQlOT1JXQVkKKworMjQtMUItMTMgICAoaGV4KQkJU2hhbmdoYWkgTnV0c2hlbGwgRWxlY3Ryb25pYyBDby4sIEx0ZC4KKzI0MUIxMyAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBOdXRzaGVsbCBFbGVjdHJvbmljIENvLiwgTHRkLgorCQkJCTM2NSBHdW9zaG91amluZyBSRC4sWmhhbmdqaWFuZyBIaS1UZWNoIFBhcmssIFB1ZG9uZyBEaXN0cmljdAorCQkJCXNoYW5naGFpIHNoYW5naGFpIDIwMTIwMworCQkJCUNISU5BCisKKzI0LTFGLTJDICAgKGhleCkJCUNhbHN5cywgSW5jLgorMjQxRjJDICAgICAoYmFzZSAxNikJCUNhbHN5cywgSW5jLgorCQkJCTI3MDAgQXVndXN0aW5lIGRyaXZlLCBTdGUxNDUKKwkJCQlTYW50YSBDbGFyYSBDYWxpZm9ybmlhIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCisyNC0yMS1BQiAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucworMjQyMUFCICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgIDIyMTg4CisJCQkJU1dFREVOCisKKzI0LTM3LTRDICAgKGhleCkJCUNpc2NvIFNQVlRHCisyNDM3NEMgICAgIChiYXNlIDE2KQkJQ2lzY28gU1BWVEcKKwkJCQk1MDMwIFN1Z2FybG9hZiBQYXJrd2F5CisJCQkJTGF3cmVuY2V2aWxsZSAgR0EgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LTM3LUVGICAgKGhleCkJCUVNQyBFbGVjdHJvbmljIE1lZGlhIENvbW11bmljYXRpb24gU0EKKzI0MzdFRiAgICAgKGJhc2UgMTYpCQlFTUMgRWxlY3Ryb25pYyBNZWRpYSBDb21tdW5pY2F0aW9uIFNBCisJCQkJVmlhIENhbnRvbmFsZSA0CisJCQkJUy4gQW50b25pbm8gVGljaW5vIDY1OTIKKwkJCQlTV0lUWkVSTEFORAorCisyNC0zQy0yMCAgIChoZXgpCQlEeW5hbW9kZSBHcm91cAorMjQzQzIwICAgICAoYmFzZSAxNikJCUR5bmFtb2RlIEdyb3VwCisJCQkJSGVhZCBPZmZpY2UsIDEzMmEgU3QgQWxiYW5zIFJvYWQKKwkJCQlXYXRmb3JkIEhlcnRzIFdEMjQgNEFFCisJCQkJVU5JVEVEIEtJTkdET00KKworMjQtNDUtOTcgICAoaGV4KQkJR0VNVUUgR2Vici4gTXVlbGxlciBBcHBhcmF0ZWJhdQorMjQ0NTk3ICAgICAoYmFzZSAxNikJCUdFTVVFIEdlYnIuIE11ZWxsZXIgQXBwYXJhdGViYXUKKwkJCQlGcml0ei1NdWVsbGVyLVN0cmFzc2UgNi04CisJCQkJSW5nZWxmaW5nZW4gQ3JpZXNiYWNoICA3NDY1MworCQkJCUdFUk1BTlkKKworMjQtNDctMEUgICAoaGV4KQkJUGVudHJvbmljQUIKKzI0NDcwRSAgICAgKGJhc2UgMTYpCQlQZW50cm9uaWNBQgorCQkJCUJlcmdzbGlkZW4gMQorCQkJCUdVTk5FQk8gIDU5MDkzCisJCQkJU1dFREVOCisKKzI0LTQ5LTdCICAgKGhleCkJCUlubm92YXRpdmUgQ29udmVyZ2VkIERldmljZXMgSW5jCisyNDQ5N0IgICAgIChiYXNlIDE2KQkJSW5ub3ZhdGl2ZSBDb252ZXJnZWQgRGV2aWNlcyBJbmMKKwkJCQk0MjQgOHRoIEF2ZW51ZSBOb3J0aAorCQkJCVNlYXR0bGUgV0EgOTgxMDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LTVGLURGICAgKGhleCkJCUtZT0NFUkEgQ29ycG9yYXRpb24KKzI0NUZERiAgICAgKGJhc2UgMTYpCQlLWU9DRVJBIENvcnBvcmF0aW9uCisJCQkJMi0xLTEsS2FnYWhhcmEsCisJCQkJVHN1enVraS1rdQorCQkJCVlva29oYW1hLXNoaSBLYW5hZ2F3YSAyMjQtODUwMgorCQkJCUpBUEFOCisKKzI0LTY1LTExICAgKGhleCkJCUFWTSBHbWJICisyNDY1MTEgICAgIChiYXNlIDE2KQkJQVZNIEdtYkgKKwkJCQlBbHQtTW9hYml0IDk1CisJCQkJQmVybGluICAxMDU1OQorCQkJCUdFUk1BTlkKKworMjQtNzYtN0QgICAoaGV4KQkJQ2lzY28gU1BWVEcKKzI0NzY3RCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCisyNC03Ny0wMyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzI0NzcwMyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzI0LTgyLThBICAgKGhleCkJCVByb3dhdmUgVGVjaG5vbG9naWVzIEx0ZC4KKzI0ODI4QSAgICAgKGJhc2UgMTYpCQlQcm93YXZlIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJMkYsTm8uODc5LTE2LFpob25namlhbmcgUm9hZAorCQkJCVNoYW5naGFpICAyMDAzMzMKKwkJCQlDSElOQQorCisyNC04Ni1GNCAgIChoZXgpCQlDdGVrLCBJbmMuCisyNDg2RjQgICAgIChiYXNlIDE2KQkJQ3RlaywgSW5jLgorCQkJCTM0IE1pcmFsZXN0ZSBQbGF6YQorCQkJCVJhbmNobyBQYWxvcyBWZXJkZXMgQ2FsaWZvcm5pYSA5MDI3NQorCQkJCVVOSVRFRCBTVEFURVMKKworMjQtODctMDcgICAoaGV4KQkJU0VuZXJneSBDb3Jwb3JhdGlvbgorMjQ4NzA3ICAgICAoYmFzZSAxNikJCVNFbmVyZ3kgQ29ycG9yYXRpb24KKwkJCQlLb2l6dW1pIEJsZGcuIDNGLCAxLTM4LTE4CisJCQkJTmFrYWdhd2EtY3l1byBUc3V6dWtpLWt1CisJCQkJWW9rb2hhbWEgY2l0eSBLYW5hZ2F3YSBQcmVmLiAyMjQtMDAwMworCQkJCUpBUEFOCisKKzI0LTk0LTQyICAgKGhleCkJCU9QRU4gUk9BRCBTT0xVVElPTlMgLCBJTkMuCisyNDk0NDIgICAgIChiYXNlIDE2KQkJT1BFTiBST0FEIFNPTFVUSU9OUyAsIElOQy4KKwkJCQk4OC0xMyBTSFVJTEkgIFJPQUQKKwkJCQlIU0lOQ0hVICAzMDA1OQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMjQtQTQtMkMgICAoaGV4KQkJS09VS0FBTSBhLnMuCisyNEE0MkMgICAgIChiYXNlIDE2KQkJS09VS0FBTSBhLnMuCisJCQkJVSB2aW5ueWNoIHNrbGVwdSA3CisJCQkJUHJhZ3VlICAxOTAgMDAKKwkJCQlDWkVDSCBSRVBVQkxJQworCisyNC1BNC0zQyAgIChoZXgpCQlVYmlxdWl0aSBOZXR3b3JrcywgSU5DCisyNEE0M0MgICAgIChiYXNlIDE2KQkJVWJpcXVpdGkgTmV0d29ya3MsIElOQworCQkJCTkxIEUuIFRhc21hbiBEci4KKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCisyNC1BOS0zNyAgIChoZXgpCQlQVVJFIFN0b3JhZ2UKKzI0QTkzNyAgICAgKGJhc2UgMTYpCQlQVVJFIFN0b3JhZ2UKKwkJCQk2NTAgQ2FzdHJvIFN0cmVldAorCQkJCTIyMAorCQkJCU10LiBWaWV3IENBIDk0MDQxCisJCQkJVU5JVEVEIFNUQVRFUworCisyNC1BQi04MSAgIChoZXgpCQlBcHBsZSwgSW5jLgorMjRBQjgxICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCisyNC1BRi00QSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudC1JUEQKKzI0QUY0QSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudC1JUEQKKwkJCQk3NzcgTWlkZGxlZmllbGQgUmQuCisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworMjQtQUYtNTQgICAoaGV4KQkJTkVYR0VOIE1lZGlhdGVjaCBJbmMuCisyNEFGNTQgICAgIChiYXNlIDE2KQkJTkVYR0VOIE1lZGlhdGVjaCBJbmMuCisJCQkJOEYgTm8uIDE1MCwgSmlhbnlpIFJkLiwgCisJCQkJQ2h1bmcgSG8gVGFpcGVpIEhzaWVuIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMjQtQjYtNTcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMjRCNjU3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LUI2LUI4ICAgKGhleCkJCUZSSUVNIFNQQQorMjRCNkI4ICAgICAoYmFzZSAxNikJCUZSSUVNIFNQQQorCQkJCVZpYSBFZGlzb24gMQorCQkJCVNlZ3JhdGUgTWlsYW5vIDIwMDkwCisJCQkJSVRBTFkKKworMjQtQjYtRkQgICAoaGV4KQkJRGVsbCBJbmMKKzI0QjZGRCAgICAgKGJhc2UgMTYpCQlEZWxsIEluYworCQkJCU9uZSBEZWxsIFdheSwgTVM6UlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworMjQtQjgtOEMgICAoaGV4KQkJQ3JlbnVzIENvLixMdGQuCisyNEI4OEMgICAgIChiYXNlIDE2KQkJQ3JlbnVzIENvLixMdGQuCisJCQkJTWFyaW8gVG93ZXIgODE0LCAyMjItMTIKKwkJCQlHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisyNC1COC1EMiAgIChoZXgpCQlPcHpvb24gVGVjaG5vbG9neSBDby4sTHRkLgorMjRCOEQyICAgICAoYmFzZSAxNikJCU9wem9vbiBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJMTF0aCBmbG9vciwgVG93ZXIgQqOsWWludGFpIENlbnRlciAyIEppYW5ndW9tZW53YWkgU3QsLgorCQkJCUJlaWppbmcgQXNpYSAxMDAwMjIKKwkJCQlDSElOQQorCisyNC1CQS0zMCAgIChoZXgpCQlUZWNobmljYWwgQ29uc3VtZXIgUHJvZHVjdHMsIEluYy4KKzI0QkEzMCAgICAgKGJhc2UgMTYpCQlUZWNobmljYWwgQ29uc3VtZXIgUHJvZHVjdHMsIEluYy4KKwkJCQkzMjUgQ2FtcHVzIERyaXZlCisJCQkJQXVyb3JhIE9IIDQ0MjAyCisJCQkJVU5JVEVEIFNUQVRFUworCisyNC1CQi1DMSAgIChoZXgpCQlBYnNvbHV0ZSBBbmFseXNpcworMjRCQkMxICAgICAoYmFzZSAxNikJCUFic29sdXRlIEFuYWx5c2lzCisJCQkJMjM5MyBUZWxsZXIgUm9hZCBTdGUgIzEwOQorCQkJCU5ld2J1cnkgUGFyayBDYWxpZm9ybmlhIDkxMzIwCisJCQkJVU5JVEVEIFNUQVRFUworCisyNC1CQy04MiAgIChoZXgpCQlEYWxpIFdpcmVsZXNzLCBJbmMuCisyNEJDODIgICAgIChiYXNlIDE2KQkJRGFsaSBXaXJlbGVzcywgSW5jLgorCQkJCTEyNSBVbml2ZXJzaXR5IEF2ZW51ZSwgU3VpdGUgODgKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LUJFLTA1ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorMjRCRTA1ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUgVworCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LUJGLTc0ICAgKGhleCkJCVBSSVZBVEUKKzI0QkY3NCAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMjQtQzAtQjMgICAoaGV4KQkJUlNGCisyNEMwQjMgICAgIChiYXNlIDE2KQkJUlNGCisJCQkJNDUgQXYgTWFyY2VsIERhc3NhdWx0CisJCQkJVG91bG91c2UgR2Fyb25uZSwgSGF1dGUgKDMxKSAzMTUwMAorCQkJCUZSQU5DRQorCisyNC1DOC02RSAgIChoZXgpCQlDaGFuZXkgSW5zdHJ1bWVudCBDby4KKzI0Qzg2RSAgICAgKGJhc2UgMTYpCQlDaGFuZXkgSW5zdHJ1bWVudCBDby4KKwkJCQk5NjUgV2VsbHMgU3RyZWV0CisJCQkJTGFrZSBHZW5ldmEgV0kgNTMxNDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LUM5LURFICAgKGhleCkJCUdlbm9yYXkKKzI0QzlERSAgICAgKGJhc2UgMTYpCQlHZW5vcmF5CisJCQkJIzgxMiBCeXVja3NhbiBUZWNobm9waWEgNDM0LTYgU2FuZ2RhZXdvbiAxLURvbmcKKwkJCQlKdW5nd29uLUd1CisJCQkJU2VvbmduYW0tQ2l0eSBHeWVvbmdnaS1EbyA0NjItNzE2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzI0LUNCLUU3ICAgKGhleCkJCU1ZSywgSW5jLgorMjRDQkU3ICAgICAoYmFzZSAxNikJCU1ZSywgSW5jLgorCQkJCTQtNjAtMzAtMTA4LCBLYW1vaSwgCisJCQkJTWlkb3JpLWt1CisJCQkJWW9rb2hhbWEgS2FuYWdhd2EgMjI2LTAwMDMKKwkJCQlKQVBBTgorCisyNC1DRi0yMSAgIChoZXgpCQlTaGVuemhlbiBTdGF0ZSBNaWNybyBUZWNobm9sb2d5IENvLiwgTHRkCisyNENGMjEgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gU3RhdGUgTWljcm8gVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCVNTTUVDIEJ1aWxkaW5nMi9GLCBHYW8gWGluIE5hbiBGaXJzdCBBdmVudWUsIEhpLVRlY2ggUGFyayBTb3V0aCwgTmFuc2hhbgorCQkJCVNoZW56aGVuIENpdHkgR3Vhbmdkb25nIFByb3ZpbmNlIDUxODA1NworCQkJCUNISU5BCisKKzI0LUQyLUNDICAgKGhleCkJCVNtYXJ0RHJpdmUgU3lzdGVtcyBJbmMuCisyNEQyQ0MgICAgIChiYXNlIDE2KQkJU21hcnREcml2ZSBTeXN0ZW1zIEluYy4KKwkJCQk5Mjc2IFNjcmFudG9uIFJvYWQKKwkJCQlTdWl0ZSA1MDAKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LURBLUI2ICAgKGhleCkJCVNpc3RlbWFzIGRlIEdlc3Rp824gRW5lcmfpdGljYSBTLkEuIGRlIEMuVi4KKzI0REFCNiAgICAgKGJhc2UgMTYpCQlTaXN0ZW1hcyBkZSBHZXN0afNuIEVuZXJn6XRpY2EgUy5BLiBkZSBDLlYuCisJCQkJQ2FsemFkYSBkZSBsb3MgRnJlc25vcyA3MC1BCisJCQkJQ2l1ZGFkIEdyYW5qYQorCQkJCVphcG9wYW4gSmFsaXNvYyA0NTAxMAorCQkJCU1FWElDTworCisyNC1EQi1BQyAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisyNERCQUMgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxMDEwOAorCQkJCUNISU5BCisKKzI0LURCLUFEICAgKGhleCkJCVNob3BwZXJUcmFrIFJDVCBDb3Jwb3JhdGlvbgorMjREQkFEICAgICAoYmFzZSAxNikJCVNob3BwZXJUcmFrIFJDVCBDb3Jwb3JhdGlvbgorCQkJCTIwMCBXLiBNb25yb2UgU3RyZWV0CisJCQkJU3VpdGUgMTEwMAorCQkJCUNoaWNhZ28gSUwgNjA2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKKzI0LUU2LUJBICAgKGhleCkJCUpTQyBaYXZvZCBpbS4gS296aXRza3kKKzI0RTZCQSAgICAgKGJhc2UgMTYpCQlKU0MgWmF2b2QgaW0uIEtveml0c2t5CisJCQkJQmxkLiA3MCwgNXRoIGxpbmUsIFYuTywgCisJCQkJU3QuLVBldGVyc2J1cmcgIDE5OTA0OAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCisyNC1FQy05OSAgIChoZXgpCQlBc2tleSBDb21wdXRlciBDb3JwCisyNEVDOTkgICAgIChiYXNlIDE2KQkJQXNrZXkgQ29tcHV0ZXIgQ29ycAorCQkJCTEwRixOTy4xMTksQ0hJRU5LQU5HIFJELENIVU5HLUhPLAorCQkJCVRBSVBFSSAyMzU4NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMjQtRjAtRkYgICAoaGV4KQkJR0hUIENvLiwgTHRkLgorMjRGMEZGICAgICAoYmFzZSAxNikJCUdIVCBDby4sIEx0ZC4KKwkJCQkjMTYgTmFueXVueWkgTHUsIEd1YW5nemhvdSBTY2llbmNlIENpdHkKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDY2MworCQkJCUNISU5BCisKKzI4LTA0LUUwICAgKGhleCkJCUZFUk1BWCBFTEVDVFJPTklDQSBTLkEuVS4KKzI4MDRFMCAgICAgKGJhc2UgMTYpCQlGRVJNQVggRUxFQ1RST05JQ0EgUy5BLlUuCisJCQkJVHJlcyBDcnVjZXMgMTMzCisJCQkJVmFsZW5jaWEgIDQ2MDE3CisJCQkJU1BBSU4KKworMjgtMDYtMUUgICAoaGV4KQkJTklOR0JPIEdMT0JBTCBVU0VGVUwgRUxFQ1RSSUMgQ08uLExURAorMjgwNjFFICAgICAoYmFzZSAxNikJCU5JTkdCTyBHTE9CQUwgVVNFRlVMIEVMRUNUUklDIENPLixMVEQKKwkJCQlOby44OCxLZWNodWFuZyBTb3V0aCBSb2FkLAorCQkJCVdhbmdjaHVuIEluZHVzdHJ5IFpvbmUKKwkJCQlOaW5nYm8gWmhlamlhbmcgMzE1MDAwCisJCQkJQ0hJTkEKKworMjgtMDYtOEQgICAoaGV4KQkJSVRMLCBMTEMKKzI4MDY4RCAgICAgKGJhc2UgMTYpCQlJVEwsIExMQworCQkJCVAuTy4gQm94IDQxODc1CisJCQkJTmFzaHZpbGxlIFROIDM3MjA0CisJCQkJVU5JVEVEIFNUQVRFUworCisyOC0wQy1COCAgIChoZXgpCQlNaWtyb3NheSBZYXppbGltIHZlIEVsZWt0cm9uaWsgQS5TLgorMjgwQ0I4ICAgICAoYmFzZSAxNikJCU1pa3Jvc2F5IFlhemlsaW0gdmUgRWxla3Ryb25payBBLlMuCisJCQkJQ2V2aXpsaSBNYWguIFRhbnNlbCBDYWQuIAorCQkJCW5vOjE4IE1hbHRlcGUKKwkJCQlJc3RhbmJ1bCAgMzQ4NDYKKwkJCQlUVVJLRVkKKworMjgtMEQtRkMgICAoaGV4KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50IEluYy4KKzI4MERGQyAgICAgKGJhc2UgMTYpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgSW5jLgorCQkJCTEtNy0xIEtvbmFuCisJCQkJTWluYXRvLWt1IFRva3lvIDEwOC0wMDc1CisJCQkJSkFQQU4KKworMjgtMTAtN0IgICAoaGV4KQkJRC1MaW5rIEludGVybmF0aW9uYWwKKzI4MTA3QiAgICAgKGJhc2UgMTYpCQlELUxpbmsgSW50ZXJuYXRpb25hbAorCQkJCTEgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBQYXJrLCAjMDMtMTIsIFRoZSBTeW5lcmd5IAorCQkJCTYwOTkxNworCQkJCVNJTkdBUE9SRQorCisyOC0xNC03MSAgIChoZXgpCQlMYW50aXMgY28uLCBMVEQuCisyODE0NzEgICAgIChiYXNlIDE2KQkJTGFudGlzIGNvLiwgTFRELgorCQkJCWJ1c2FuIGlubm9iaXogY2VudGVyIDQwMQorCQkJCWJ1ay1rdSwgbWFuZGVvayAzLWRvbmcKKwkJCQlidXNhbiAgNjE2LTgyOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisyOC0xNi0yRSAgIChoZXgpCQkyV2lyZQorMjgxNjJFICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtMTctQ0UgICAoaGV4KQkJT21uaXNlbnNlIEx0ZAorMjgxN0NFICAgICAoYmFzZSAxNikJCU9tbmlzZW5zZSBMdGQKKwkJCQkzcmQgRmxvb3IgU3QgQW5kcmV3JiMzOTtzIEhvdXNlCisJCQkJNTkgU3QgQW5kcmV3cyBTdHJlZXQKKwkJCQlDYW1icmlkZ2UgQ2FtYnJpZGdlc2hpcmUgQ0IyIDNCWgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzI4LTE4LUZEICAgKGhleCkJCUFkaXR5YSBJbmZvdGVjaCBMdGQuCisyODE4RkQgICAgIChiYXNlIDE2KQkJQWRpdHlhIEluZm90ZWNoIEx0ZC4KKwkJCQlLaGVta2EgU3F1YXJlLCBBLTEyLCBTZWN0b3ItNCygIAorCQkJCU5vaWRhIFV0dGFyIFByYWRlc2ggMjAxMzAxIAorCQkJCUlORElBCisKKzI4LTI2LUE2ICAgKGhleCkJCVBCUiBlbGVjdHJvbmljcyBHbWJICisyODI2QTYgICAgIChiYXNlIDE2KQkJUEJSIGVsZWN0cm9uaWNzIEdtYkgKKwkJCQlCZXJsaW5lciBTdHJhc3NlIDUKKwkJCQlTYW5kaGF1c2VuIEJhZGVuIFd1ZXJ0ZW1tYmVyZyA2OTIwNworCQkJCUdFUk1BTlkKKworMjgtMzQtMTAgICAoaGV4KQkJRW5pZ21hIERpYWdub3N0aWNzIExpbWl0ZWQKKzI4MzQxMCAgICAgKGJhc2UgMTYpCQlFbmlnbWEgRGlhZ25vc3RpY3MgTGltaXRlZAorCQkJCU1pbHRvbiBQYXJrIElubm92YXRpb24gQ2VudHJlCisJCQkJOTkgTWlsdG9uIFBhcmsKKwkJCQlBYmluZ2RvbiAgT1gxNCA0UlkKKwkJCQlVTklURUQgS0lOR0RPTQorCisyOC0zNy0zNyAgIChoZXgpCQlBcHBsZSwgSW5jLgorMjgzNzM3ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCisyOC0zOC1DRiAgIChoZXgpCQlHZW4yd2F2ZQorMjgzOENGICAgICAoYmFzZSAxNikJCUdlbjJ3YXZlCisJCQkJR3VtaS1kb25nLCBCdW5kYW5nLWd1CisJCQkJIzcwNywgUG9pbnQgdG93biBCL0QsIDE4Ny00CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8gNDYzLTc0MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisyOC0zOS1FNyAgIChoZXgpCQlQcmVjZW5vIFRlY2hub2xvZ3kgUHRlLkx0ZC4KKzI4MzlFNyAgICAgKGJhc2UgMTYpCQlQcmVjZW5vIFRlY2hub2xvZ3kgUHRlLkx0ZC4KKwkJCQkxMUYsIE5vLjIwNy0yLCBTZWMuIDMsIEJlaXhpbiBSZC4sIFhpbmRpYW4gRGlzdC4KKwkJCQlOZXcgVGFpcGVpIENpdHkgIDIzMTQzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCisyOC0zQy1FNCAgIChoZXgpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCisyODNDRTQgICAgIChiYXNlIDE2KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QgCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzI4LTQwLTFBICAgKGhleCkJCUM4IE1lZGlTZW5zb3JzLCBJbmMuCisyODQwMUEgICAgIChiYXNlIDE2KQkJQzggTWVkaVNlbnNvcnMsIEluYy4KKwkJCQk3MjcgVW5pdmVyc2l0eSBBdmUKKwkJCQlMb3MgR2F0b3MgQ0EgOTUwMzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LTQxLTIxICAgKGhleCkJCU9wdGlTZW5zZSBOZXR3b3JrLCBMTEMKKzI4NDEyMSAgICAgKGJhc2UgMTYpCQlPcHRpU2Vuc2UgTmV0d29yaywgTExDCisJCQkJMTMwOCAxMHRoIFN0cmVldAorCQkJCUJyaWRnZXBvcnQgVFggNzY0MjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LTQ4LTQ2ICAgKGhleCkJCUdyaWRDZW50cmljIEluYy4KKzI4NDg0NiAgICAgKGJhc2UgMTYpCQlHcmlkQ2VudHJpYyBJbmMuCisJCQkJMzUwIEJsb29yIFN0LiBFCisJCQkJVG9yb250byBPbnRhcmlvIE00VyAwQTEKKwkJCQlDQU5BREEKKworMjgtNEMtNTMgICAoaGV4KQkJSW50dW5lIE5ldHdvcmtzCisyODRDNTMgICAgIChiYXNlIDE2KQkJSW50dW5lIE5ldHdvcmtzCisJCQkJOUIgQmVja2V0dCBXYXkKKwkJCQlQYXJrd2VzdCBCdXNpbmVzcyBQYXJrCisJCQkJRHVibGluICAgMTIKKwkJCQlJUkVMQU5ECisKKzI4LTUxLTMyICAgKGhleCkJCVNoZW56aGVuIFByYXlmbHkgVGVjaG5vbG9neSBDby4sTHRkCisyODUxMzIgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gUHJheWZseSBUZWNobm9sb2d5IENvLixMdGQKKwkJCQkxNkYgQiBJbnRlcm5hdGlvbmFsIENoYW1iZXIgb2YgQ29tbWVyY2UgQnVpbGRpbmcKKwkJCQlOTy4xMzggRnVodWEgMVJEIEZ1dGlhbiBBcmVhIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyBQcm92aW5jZSAgNTE4MDQ4CisJCQkJQ0hJTkEKKworMjgtNUYtREIgICAoaGV4KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorMjg1RkRCICAgICAoYmFzZSAxNikJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCisyOC02MC00NiAgIChoZXgpCQlMYW50ZWNoIENvbW11bmljYXRpb25zIEdsb2JhbCwgSW5jLgorMjg2MDQ2ICAgICAoYmFzZSAxNikJCUxhbnRlY2ggQ29tbXVuaWNhdGlvbnMgR2xvYmFsLCBJbmMuCisJCQkJN0YsIE5vLiA0NSwgTGFuZSAxODgsIFJ1aWd1YW5nIFJkLiwgTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgQ2l0eSAgMTE0OTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzI4LTYwLTk0ICAgKGhleCkJCUNBUEVMRUMKKzI4NjA5NCAgICAgKGJhc2UgMTYpCQlDQVBFTEVDCisJCQkJMTEzMCBydWUgZGVzIE1hcmVscworCQkJCU1vbnRwZWxsaWVyIEjvv71yYXVsdCAzNDAwMAorCQkJCUZSQU5DRQorCisyOC02QS1COCAgIChoZXgpCQlBcHBsZSwgSW5jLgorMjg2QUI4ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIGNhIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCisyOC02QS1CQSAgIChoZXgpCQlBcHBsZSwgSW5jLgorMjg2QUJBICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtNkUtRDQgICAoaGV4KQkJSFVBV0VJIFRFQ0hOT0xPR0lFUyBDTy4sTFRECisyODZFRDQgICAgIChiYXNlIDE2KQkJSFVBV0VJIFRFQ0hOT0xPR0lFUyBDTy4sTFRECisJCQkJQjEtNyxIdWF3ZWkgSW5kdXN0cmlhbCBCYXNlLEJhbnRpYW4sTG9uZ2dhbmcKKwkJCQlTaGVuWmhlbiBndWFuZ2RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworMjgtNzEtODQgICAoaGV4KQkJU3BpcmUgUGF5bWVudHMKKzI4NzE4NCAgICAgKGJhc2UgMTYpCQlTcGlyZSBQYXltZW50cworCQkJCVVuaXRzIDMgJiA2IE1pbGZvcmQgVHJhZGluZyBFc3RhdGUKKwkJCQlCbGFrZXkgUm9hZAorCQkJCVNhbGlzYnVyeSBXaWx0c2hpcmUgU1AxIDJVRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzI4LTcyLUM1ICAgKGhleCkJCVNtYXJ0bWF0aWMgQ29ycAorMjg3MkM1ICAgICAoYmFzZSAxNikJCVNtYXJ0bWF0aWMgQ29ycAorCQkJCTEwMDEgQnJva2VuIFNvdW5kIFBrd3kgTlcgU3VpdGUgRAorCQkJCUJvY2EgUmF0b24gRmxvcmlkYSAzMzQ4NworCQkJCVVOSVRFRCBTVEFURVMKKworMjgtNzItRjAgICAoaGV4KQkJQVRIRU5BCisyODcyRjAgICAgIChiYXNlIDE2KQkJQVRIRU5BCisJCQkJNDIgUlVFIE1PTkdFCisJCQkJUEFSSVMgIDc1MDA1CisJCQkJRlJBTkNFCisKKzI4LTg1LTJEICAgKGhleCkJCVRvdWNoIE5ldHdvcmtzCisyODg1MkQgICAgIChiYXNlIDE2KQkJVG91Y2ggTmV0d29ya3MKKwkJCQkyNTE1IDE1Mm5kIEF2ZSBORQorCQkJCVJlZG1vbmQgV2FzaGluZ3RvbiA5ODA1MgorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtODktMTUgICAoaGV4KQkJQ2FzaEd1YXJkIFN2ZXJpZ2UgQUIKKzI4ODkxNSAgICAgKGJhc2UgMTYpCQlDYXNoR3VhcmQgU3ZlcmlnZSBBQgorCQkJCUZpbmxhbmRzZ2F0YW4gMTYKKwkJCQlLaXN0YSAgMTY0NzQKKwkJCQlTV0VERU4KKworMjgtOTItNEEgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCisyODkyNEEgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZSBXCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtOTMtRkUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMjg5M0ZFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtOTQtMEYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMjg5NDBGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LTk4LTdCICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMjg5ODdCICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisyOC1BNS03NCAgIChoZXgpCQlNaWxsZXIgRWxlY3RyaWMgTWZnLiBDby4KKzI4QTU3NCAgICAgKGJhc2UgMTYpCQlNaWxsZXIgRWxlY3RyaWMgTWZnLiBDby4KKwkJCQkxNjM1IFcuIFNwZW5jZXIgU3RyZWV0CisJCQkJUC5PLiBCb3ggMTA3OQorCQkJCUFwcGxldG9uIFdJIDU0OTEyLTEwNzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LUFGLTBBICAgKGhleCkJCVNpcml1cyBYTSBSYWRpbyBJbmMKKzI4QUYwQSAgICAgKGJhc2UgMTYpCQlTaXJpdXMgWE0gUmFkaW8gSW5jCisJCQkJMTIyMSBBdmVudWUgb2YgdGhlIEFtZXJpY2FzCisJCQkJMzZ0aCBGbG9vcgorCQkJCU5ldyBZb3JrIE5ZIDEwMDIwCisJCQkJVU5JVEVEIFNUQVRFUworCisyOC1CMC1DQyAgIChoZXgpCQlYZW55YSBkLm8uby4KKzI4QjBDQyAgICAgKGJhc2UgMTYpCQlYZW55YSBkLm8uby4KKwkJCQlDZWxvdnNrYSBjZXN0YSAxNzIKKwkJCQlManVibGphbmEgIDEwMDAKKwkJCQlTTE9WRU5JQQorCisyOC1CQS0xOCAgIChoZXgpCQlOZXh0TmF2LCBMTEMKKzI4QkExOCAgICAgKGJhc2UgMTYpCQlOZXh0TmF2LCBMTEMKKwkJCQk0ODQgT2FrbWVhZCBQYXJrd2F5CisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCisyOC1CRS05QiAgIChoZXgpCQlUZWNobmljb2xvciBVU0EgSW5jLgorMjhCRTlCICAgICAoYmFzZSAxNikJCVRlY2huaWNvbG9yIFVTQSBJbmMuCisJCQkJMTAxIFdlc3QgMTAzcmQgU3RyZWV0CisJCQkJSW5kaWFuYXBvbGlzIElOIDQ2MjkwCisJCQkJVU5JVEVEIFNUQVRFUworCisyOC1DMC1EQSAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCisyOEMwREEgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LUM3LTE4ICAgKGhleCkJCUFsdGllcnJlCisyOEM3MTggICAgIChiYXNlIDE2KQkJQWx0aWVycmUKKwkJCQkxOTgwIENvbmNvdXJzZSBEcml2ZQorCQkJCVNhbiBKb3NlIFVuaXRlZCBTdGF0ZXMgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LUM5LTE0ICAgKGhleCkJCVRhaW1hZyBDb3Jwb3JhdGlvbgorMjhDOTE0ICAgICAoYmFzZSAxNikJCVRhaW1hZyBDb3Jwb3JhdGlvbgorCQkJCU5PLiAxLCBXZXN0IDJuZCBTdC4gTi5FLlAuWiAKKwkJCQlLYW9oc2l1bmcgIDgxMQorCQkJCVRBSVdBTiwgUFJPVklOQ0UgT0YgQ0hJTkEKKworMjgtQ0MtRkYgICAoaGV4KQkJQ29ycG9yYWNpb24gRW1wcmVzYXJpYWwgQWx0cmEgU0wKKzI4Q0NGRiAgICAgKGJhc2UgMTYpCQlDb3Jwb3JhY2lvbiBFbXByZXNhcmlhbCBBbHRyYSBTTAorCQkJCU1hcmllIEN1cmllIDIxCisJCQkJTWFsYWdhICAyOTU5MAorCQkJCVNQQUlOCisKKzI4LUNELTFDICAgKGhleCkJCUVzcG90ZWwgT3kKKzI4Q0QxQyAgICAgKGJhc2UgMTYpCQlFc3BvdGVsIE95CisJCQkJS2FwcGVsaXRpZSA2CisJCQkJRXNwb28gRXNwb28gRkktMDIyMDAKKwkJCQlGSU5MQU5ECisKKzI4LUNELTRDICAgKGhleCkJCUluZGl2aWR1YWwgQ29tcHV0ZXJzIEdtYkgKKzI4Q0Q0QyAgICAgKGJhc2UgMTYpCQlJbmRpdmlkdWFsIENvbXB1dGVycyBHbWJICisJCQkJSW0gWmVtbWVyIDYKKwkJCQlXb2ZmZWxzYmFjaCBOUlcgNTIxNTIKKwkJCQlHRVJNQU5ZCisKKzI4LUNGLURBICAgKGhleCkJCUFwcGxlLCBJbmMuCisyOENGREEgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIGluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LUQxLUFGICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCisyOEQxQUYgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlZcnR0aXBlbGxvbnRpZSA2CisJCQkJT3VsdSBPdSA5MDIzMAorCQkJCUZJTkxBTkQKKworMjgtRDUtNzYgICAoaGV4KQkJUHJlbWllciBXaXJlbGVzcywgSW5jLgorMjhENTc2ICAgICAoYmFzZSAxNikJCVByZW1pZXIgV2lyZWxlc3MsIEluYy4KKwkJCQk0MjIyIEUuIExhIFBhbG1hIEF2ZS4KKwkJCQlBbmFoZWltIENBIDkyODA3CisJCQkJVU5JVEVEIFNUQVRFUworCisyOC1EOS05NyAgIChoZXgpCQlZdWR1YW4gTW9iaWxlIENvLiwgTHRkLgorMjhEOTk3ICAgICAoYmFzZSAxNikJCVl1ZHVhbiBNb2JpbGUgQ28uLCBMdGQuCisJCQkJUm9vbSA0MDEgTm8gODQgTGFuZSA4ODcgWnVjaG9uZ3poaSBSZC4KKwkJCQlTaGFuZ2hhaSAgMjAxMjAzCisJCQkJQ0hJTkEKKworMjgtRTAtMkMgICAoaGV4KQkJQXBwbGUsIEluYy4KKzI4RTAyQyAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworMjgtRTItOTcgICAoaGV4KQkJU2hhbmdoYWkgSW5mb1RNIE1pY3JvZWxlY3Ryb25pY3MgQ28uLEx0ZC4KKzI4RTI5NyAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBJbmZvVE0gTWljcm9lbGVjdHJvbmljcyBDby4sTHRkLgorCQkJCWJ1aWxkaW5nIDExLE5PLjExNSxsYW5lIDU3MixCaUJvIFJvYWQsCisJCQkJUHVEb25nIE5ldyBEaXN0cmljdAorCQkJCVNoYW5nSGFpICAyMDEyMDMKKwkJCQlDSElOQQorCisyOC1FNi0wOCAgIChoZXgpCQlUb2toZWltCisyOEU2MDggICAgIChiYXNlIDE2KQkJVG9raGVpbQorCQkJCUluZHVzdHJpZXdlZyA1CisJCQkJQmxhZGVsIE5CciA1NTMxIEFECisJCQkJTkVUSEVSTEFORFMKKworMjgtRTctOTQgICAoaGV4KQkJTWljcm90aW1lIENvbXB1dGVyIEluYy4KKzI4RTc5NCAgICAgKGJhc2UgMTYpCQlNaWNyb3RpbWUgQ29tcHV0ZXIgSW5jLgorCQkJCTRGLCBOby4gMjIyLCBTZWMuIDQsIENoZW5nLVRlaCBSZC4sIAorCQkJCVRhaXBlaSAgMTExNjcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzI4LUU3LUNGICAgKGhleCkJCUFwcGxlLCBJbmMuCisyOEU3Q0YgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LUVELTU4ICAgKGhleCkJCUpBRyBKYWtvYiBBRworMjhFRDU4ICAgICAoYmFzZSAxNikJCUpBRyBKYWtvYiBBRworCQkJCUluZHVzdHJpZXN0cmFzc2UgMjAKKwkJCQlCUlVFR0cgQkUgMjU1NQorCQkJCVNXSVRaRVJMQU5ECisKKzI4LUVFLTJDICAgKGhleCkJCUZyb250bGluZSBUZXN0IEVxdWlwbWVudAorMjhFRTJDICAgICAoYmFzZSAxNikJCUZyb250bGluZSBUZXN0IEVxdWlwbWVudAorCQkJCVBPIEJveCA3NTA3CisJCQkJQ2hhcmxvdHRlc3ZpbGxlIFZpcmdpbmlhIDIyOTA2LTc1MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzI4LUVGLTAxICAgKGhleCkJCVBSSVZBVEUKKzI4RUYwMSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorMjgtRjMtNTggICAoaGV4KQkJMkMgLSBUcmlmb25vdiAmIENvCisyOEYzNTggICAgIChiYXNlIDE2KQkJMkMgLSBUcmlmb25vdiAmIENvCisJCQkJMTMzLCBUc2FyaWdyYWRza28gU2hvc2UgQmx2ZCwgQklaIElaT1QsIAorCQkJCUJ1aWxkLiAzLCBGbG9vciAzCisJCQkJU29maWEgIDE3ODQKKwkJCQlCVUxHQVJJQQorCisyOC1GNi0wNiAgIChoZXgpCQlTeWVzIHNybAorMjhGNjA2ICAgICAoYmFzZSAxNikJCVN5ZXMgc3JsCisJCQkJVmlhIFphbmVsbGEgMjEKKwkJCQlMaXNzb25lIChNQikgTW9uemEgQnJpYW56YSAyMDg1MQorCQkJCUlUQUxZCisKKzI4LUZCLUQzICAgKGhleCkJCVNoYW5naGFpIFJhZ2VuVGVrIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sTHRkLgorMjhGQkQzICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFJhZ2VuVGVrIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTR0aCBGbG9vcixOby4xMTEgRVNoYW4gUm9hZCBQdURvbmcgRGlzdHJpY3QgCisJCQkJU2hhbmdoYWkgIDIwMDEyNworCQkJCUNISU5BCisKKzJDLTAwLTJDICAgKGhleCkJCVVOT1dIWQorMkMwMDJDICAgICAoYmFzZSAxNikJCVVOT1dIWQorCQkJCTExLCBydWUgVHJvbmNoZXQKKwkJCQlQYXJpcyAgNzUwMDgKKwkJCQlGUkFOQ0UKKworMkMtMDAtMzMgICAoaGV4KQkJRUNvbnRyb2xzLCBMTEMKKzJDMDAzMyAgICAgKGJhc2UgMTYpCQlFQ29udHJvbHMsIExMQworCQkJCTM1MjMgQ3Jvc3Nwb2ludAorCQkJCVNhbiBBbnRvbmlvIFRYIDc4MjE3CisJCQkJVU5JVEVEIFNUQVRFUworCisyQy0wMC1GNyAgIChoZXgpCQlYT1MKKzJDMDBGNyAgICAgKGJhc2UgMTYpCQlYT1MKKwkJCQkxNSBUZWNoIFZhbGxleSBEcml2ZQorCQkJCVN1aXRlIDEKKwkJCQlFYXN0IEdyZWVuYnVzaCBOWSAxMjA2MQorCQkJCVVOSVRFRCBTVEFURVMKKworMkMtMDYtMjMgICAoaGV4KQkJV2luIExlYWRlciBJbmMuCisyQzA2MjMgICAgIChiYXNlIDE2KQkJV2luIExlYWRlciBJbmMuCisJCQkJTGV2ZWwgMyAsQWxleGFuZGVyIEhvdXNlLAorCQkJCTM1ICBDeWJlcmNpdHkKKwkJCQlFYmVuZSAgCisJCQkJTUFVUklUSVVTCisKKzJDLTEwLUMxICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorMkMxMEMxICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzJDLTE5LTg0ICAgKGhleCkJCUlETiBUZWxlY29tLCBJbmMuCisyQzE5ODQgICAgIChiYXNlIDE2KQkJSUROIFRlbGVjb20sIEluYy4KKwkJCQkyNjY5IEdyZWF0IEFyYm9yIFdheQorCQkJCVVuaW9uIENpdHkgQ0EgOTQ1ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTFFLUVBICAgKGhleCkJCUFFUk9ERVYKKzJDMUVFQSAgICAgKGJhc2UgMTYpCQlBRVJPREVWCisJCQkJTm8uNTksMTk4NSBMYW5lLENodW5zaGVuIFJvYWQsCisJCQkJU2hhbmdoYWkgIDIwMDIzNworCQkJCUNISU5BCisKKzJDLTIxLTcyICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKKzJDMjE3MiAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OSAKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTI3LUQ3ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisyQzI3RDcgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTWFpbGNvZGUgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTJELTQ4ICAgKGhleCkJCWJjdCBlbGVjdHJvbmljIEdlc21iSAorMkMyRDQ4ICAgICAoYmFzZSAxNikJCWJjdCBlbGVjdHJvbmljIEdlc21iSAorCQkJCVNhYWxhY2hzdHJhc3NlIDg4CisJCQkJU2FsemJ1cmcgIDUwMjAKKwkJCQlBVVNUUklBCisKKzJDLTMwLTY4ICAgKGhleCkJCVBhbnRlY2ggQ28uLEx0ZAorMkMzMDY4ICAgICAoYmFzZSAxNikJCVBhbnRlY2ggQ28uLEx0ZAorCQkJCTExMC0xIE9uZ2plb25nLVJpLCBUb25namluLUV1cAorCQkJCUdpbXBvLVNpIEd5b3VuZ2dpLURvIDQxNS04NjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMkMtMzQtMjcgICAoaGV4KQkJRVJDTyAmYW1wOyBHRU5FUgorMkMzNDI3ICAgICAoYmFzZSAxNikJCUVSQ08gJmFtcDsgR0VORVIKKwkJCQlaSSBkZSBTQUlOVCBMQU1CRVJUIERFUyBMRVZFRVMKKwkJCQlCUCAzMDE2MworCQkJCVNBVU1VUiAgNDk0MTIKKwkJCQlGUkFOQ0UKKworMkMtMzYtQTAgICAoaGV4KQkJQ2FwaXNjbyBMaW1pdGVkCisyQzM2QTAgICAgIChiYXNlIDE2KQkJQ2FwaXNjbyBMaW1pdGVkCisJCQkJUE8gQm94IDkzOAorCQkJCVdoYW5nYXBhcmFvYQorCQkJCUF1Y2tsYW5kICAwOTQzCisJCQkJTkVXIFpFQUxBTkQKKworMkMtMzYtRjggICAoaGV4KQkJQ2lzY28gU3lzdGVtcworMkMzNkY4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTNBLTI4ICAgKGhleCkJCUZhZ29yIEVsZWN0cvNuaWNhCisyQzNBMjggICAgIChiYXNlIDE2KQkJRmFnb3IgRWxlY3Ry825pY2EKKwkJCQlCLiBTYW4gQW5kcmVzLCBzL24gCisJCQkJTW9uZHJhZ/NuIEd1aXB1emNvYSAyMDUwMAorCQkJCVNQQUlOCisKKzJDLTNGLTM4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzJDM0YzOCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCisyQy0zRi0zRSAgIChoZXgpCQlBbGdlLVRpbWluZyBHbWJICisyQzNGM0UgICAgIChiYXNlIDE2KQkJQWxnZS1UaW1pbmcgR21iSAorCQkJCVJvdGtyZXV6c3RyYXNzZSAzOQorCQkJCUx1c3RlbmF1ICA2ODkwCisJCQkJQVVTVFJJQQorCisyQy00MS0zOCAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueSAKKzJDNDEzOCAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueSAKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTWFpbGNvZGUgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTQ0LTAxICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMkM0NDAxICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCisyQy01NC0yRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCisyQzU0MkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMkMtNjctRkIgICAoaGV4KQkJU2hlblpoZW4gWmhlbmdqaWxpIEVsZWN0cm9uaWNzIENvLiwgTFRECisyQzY3RkIgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gWmhlbmdqaWxpIEVsZWN0cm9uaWNzIENvLiwgTFRECisJCQkJVGhlIExvbmdodWEgVG93biBTaGVuemhlbiBDaXR5IFN0cmVldHMgaHVhbmluZyB0aHJlZSBob3VzZSBTY2llbmNlIFBhcmsgUm9hZCBDaGlheWkgU291cmNlIGZpZnRoIGZsb29yCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzJDLTZCLUY1ICAgKGhleCkJCUp1bmlwZXIgbmV0d29ya3MKKzJDNkJGNSAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIG5ldHdvcmtzCisJCQkJMTE5NCBOLiBNYXRoaWxkYSBhdmUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTc1LTBGICAgKGhleCkJCVNoYW5naGFpIERvbmd6aG91LUxhd3RvbiBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uIEx0ZC4KKzJDNzUwRiAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBEb25nemhvdS1MYXd0b24gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLiBMdGQuCisJCQkJTk8uMTg4LEZlbmd5ZVJvYWQsQmFvc2hhbkRpc3RyaWN0CisJCQkJc2hhbmdoYWkgIDIwMDk0OQorCQkJCUNISU5BCisKKzJDLTc2LThBICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisyQzc2OEEgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworMkMtN0EtRkUgICAoaGV4KQkJSUVFJkUgIkJsYWNrIiBvcHMKKzJDN0FGRSAgICAgKGJhc2UgMTYpCQlJRUUmRSAiQmxhY2siIG9wcworCQkJCTEwMCBKZXJpYyBBdmVudWUKKwkJCQlDaGFybG90dGUgTkMgMjgyNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTdFLUNGICAgKGhleCkJCU9uem8gTHRkCisyQzdFQ0YgICAgIChiYXNlIDE2KQkJT256byBMdGQKKwkJCQk2IEdyZWF0IE5ld3BvcnQgU3RyZWV0CisJCQkJTG9uZG9uICBXQzJIIDdKQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzJDLTgwLTY1ICAgKGhleCkJCUhBUlRJTkcgSW5jLiBvZiBOb3J0aCBBbWVyaWNhCisyQzgwNjUgICAgIChiYXNlIDE2KQkJSEFSVElORyBJbmMuIG9mIE5vcnRoIEFtZXJpY2EKKwkJCQkxMzcwIEJvd2VzIFJvYWQKKwkJCQlFbGdpbiBJbGxpbm9pcyA2MDEyMworCQkJCVVOSVRFRCBTVEFURVMKKworMkMtODEtNTggICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkCisyQzgxNTggICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgMjAxNjEzCisJCQkJQ0hJTkEKKworMkMtOEItRjIgICAoaGV4KQkJSGl0YWNoaSBNZXRhbHMgQW1lcmljYSBMdGQKKzJDOEJGMiAgICAgKGJhc2UgMTYpCQlIaXRhY2hpIE1ldGFscyBBbWVyaWNhIEx0ZAorCQkJCTE5MjAgWmFua2VyIFJvYWQKKwkJCQlTYW4gSm9zZSAgQ0EgOTUxMTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLTkxLTI3ICAgKGhleCkJCUVpbnRlY2hubyBDb3Jwb3JhdGlvbgorMkM5MTI3ICAgICAoYmFzZSAxNikJCUVpbnRlY2hubyBDb3Jwb3JhdGlvbgorCQkJCTMzNTktMSwga2FrbywgSW5hbWktY2hvCisJCQkJa2Frby1ndW4gaHlvZ28gNjc1LTExMDUKKwkJCQlKQVBBTgorCisyQy05Ny0xNyAgIChoZXgpCQlJLkMuWS4gQi5WLgorMkM5NzE3ICAgICAoYmFzZSAxNikJCUkuQy5ZLiBCLlYuCisJCQkJSG91dHNhYWNobW9sZSAzNQorCQkJCUxlbW1lciBGcmllc2xhbmQgODUzMSBXQworCQkJCU5FVEhFUkxBTkRTCisKKzJDLTlFLTVGICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisyQzlFNUYgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCisyQy05RS1GQyAgIChoZXgpCQlDQU5PTiBJTkMuCisyQzlFRkMgICAgIChiYXNlIDE2KQkJQ0FOT04gSU5DLgorCQkJCTMwLTIgU2hpbW9tYXJ1a28gMy1jaG9tZSwKKwkJCQlPaHRhLWt1IFRva3lvIDE0OC04NTAxCisJCQkJSkFQQU4KKworMkMtQTEtNTcgICAoaGV4KQkJQUNST01BVEUsIElOQy4KKzJDQTE1NyAgICAgKGJhc2UgMTYpCQlBQ1JPTUFURSwgSU5DLgorCQkJCSM5MTEsIEUmQyAgVmVudHVyZSBEcmVhbSBUb3dlciBJSQorCQkJCTE5Ny0xMCwgR3Vyby1kb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi03MTkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMkMtQTctODAgICAoaGV4KQkJVHJ1ZSBUZWNobm9sb2dpZXMgSW5jLgorMkNBNzgwICAgICAoYmFzZSAxNikJCVRydWUgVGVjaG5vbG9naWVzIEluYy4KKwkJCQlSNDc2LCBBbmdlbENpdHkgMXN0LAorCQkJCTE2MSwgR3VlbWdvaywgQnVuZGFuZworCQkJCVNlb25nbmFtLCBLeXVuZ2tpIDQ2My04NjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMkMtQTgtMzUgICAoaGV4KQkJUklNCisyQ0E4MzUgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzJDLUIwLTVEICAgKGhleCkJCU5FVEdFQVIKKzJDQjA1RCAgICAgKGJhc2UgMTYpCQlORVRHRUFSCisJCQkJMzUwIEVBU1QgUExVTUVSSUEgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQUxJRk9STklBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCisyQy1CMC1ERiAgIChoZXgpCQlTb2xpdG9uIFRlY2hub2xvZ2llcyBQdnQgTHRkCisyQ0IwREYgICAgIChiYXNlIDE2KQkJU29saXRvbiBUZWNobm9sb2dpZXMgUHZ0IEx0ZAorCQkJCSMgNjgzLCAxNXRoIENyb3NzIAorCQkJCUogUCBOYWdhciAybmQgUGhhc2UKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MCAwNzgKKwkJCQlJTkRJQQorCisyQy1CNi05RCAgIChoZXgpCQlSRUQgRGlnaXRhbCBDaW5lbWEKKzJDQjY5RCAgICAgKGJhc2UgMTYpCQlSRUQgRGlnaXRhbCBDaW5lbWEKKwkJCQkyMDI5MSBWYWxlbmNpYSBDaXJjbGUKKwkJCQlMYWtlIEZvcmVzdCBDYWxpZm9ybmlhIDkyNjMwCisJCQkJVU5JVEVEIFNUQVRFUworCisyQy1CRS05NyAgIChoZXgpCQlJbmdlbmlldXJidWVybyBCaWNrZWxlIHVuZCBCdWVobGVyIEdtYkgKKzJDQkU5NyAgICAgKGJhc2UgMTYpCQlJbmdlbmlldXJidWVybyBCaWNrZWxlIHVuZCBCdWVobGVyIEdtYkgKKwkJCQlTdC5Qb2VsdGVuZXIgU3RyLiA3MAorCQkJCVN0dXR0Z2FydCBCVyA3MDQ2OQorCQkJCUdFUk1BTlkKKworMkMtQzItNjAgICAoaGV4KQkJUmF2ZWxsbyBTeXN0ZW1zCisyQ0MyNjAgICAgIChiYXNlIDE2KQkJUmF2ZWxsbyBTeXN0ZW1zCisJCQkJSGF0aWRoYXIgMworCQkJCVJhYW5hbmEgIDQzNjY1CisJCQkJSVNSQUVMCisKKzJDLUNELTI3ICAgKGhleCkJCVByZWNvciBJbmMKKzJDQ0QyNyAgICAgKGJhc2UgMTYpCQlQcmVjb3IgSW5jCisJCQkJMjAwMzEgMTQybmQgQXZlbnVlIE5FCisJCQkJV29vZGludmlsbGUgV0EgOTgwNzIKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLUNELTQzICAgKGhleCkJCVN1bW1pdCBUZWNobm9sb2d5IEdyb3VwCisyQ0NENDMgICAgIChiYXNlIDE2KQkJU3VtbWl0IFRlY2hub2xvZ3kgR3JvdXAKKwkJCQkxNDUgQmVsbW9udCBEcml2ZQorCQkJCVNvbWVyc2V0IE5KIDA4ODczCisJCQkJVU5JVEVEIFNUQVRFUworCisyQy1EMS1EQSAgIChoZXgpCQlTYW5qb2xlLCBJbmMuCisyQ0QxREEgICAgIChiYXNlIDE2KQkJU2Fuam9sZSwgSW5jLgorCQkJCTI4MDAgV29vZGxhd24gRHJpdmUsICMyNzEKKwkJCQlIb25vbHVsdSBIYXdhaWkgOTY4MjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzJDLUQyLUU3ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCisyQ0QyRTcgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSBPdSA5MDU5MAorCQkJCUZJTkxBTkQKKworMkMtRDQtNDQgICAoaGV4KQkJRnVqaXRzdSBMaW1pdGVkCisyQ0Q0NDQgICAgIChiYXNlIDE2KQkJRnVqaXRzdSBMaW1pdGVkCisJCQkJTXVzYXNoaS1rb3N1Z2kgVG93ZXIgUGxhY2UgQmxkZy4sCisJCQkJNDAzLCBLb3N1Z2ktY2hvIDEtY2hvbWUsIE5ha2FoYXJhLWt1CisJCQkJS2F3YXNha2kgS2FuYWdhd2EgMjExLTAwNjMKKwkJCQlKQVBBTgorCisyQy1ERC0wQyAgIChoZXgpCQlEaXNjb3Zlcmd5IEdtYkgKKzJDREQwQyAgICAgKGJhc2UgMTYpCQlEaXNjb3Zlcmd5IEdtYkgKKwkJCQlQYXNjYWxzdHIuIDE1CisJCQkJQWFjaGVuIE5SVyA1MjA3NgorCQkJCUdFUk1BTlkKKworMkMtRTQtMTIgICAoaGV4KQkJU0FHRU1DT00gU0FTCisyQ0U0MTIgICAgIChiYXNlIDE2KQkJU0FHRU1DT00gU0FTCisJCQkJMjUwIFJPVVRFIERFIEwnRU1QRVJFVVIKKwkJCQlSVUVJTCBNQUxNQUlTT04gQ0VERVggSURGIDkyODQ4CisJCQkJRlJBTkNFCisKKzJDLUVFLTI2ICAgKGhleCkJCVBldHJvbGV1bSBHZW8tU2VydmljZXMKKzJDRUUyNiAgICAgKGJhc2UgMTYpCQlQZXRyb2xldW0gR2VvLVNlcnZpY2VzCisJCQkJMTI1NTUgSGFycmlzIEJyYW5jaCBQa3d5CisJCQkJU3VpdGUgMTA4CisJCQkJQXVzdGluIFRYIDc4NjUzCisJCQkJVU5JVEVEIFNUQVRFUworCisyQy1GNC1DNSAgIChoZXgpCQlBdmF5YSBJbmMKKzJDRjRDNSAgICAgKGJhc2UgMTYpCQlBdmF5YSBJbmMKKwkJCQkyMTEgTW91bnQgQWlyeSBSb2FkCisJCQkJQmFza2luZyBSaWRnZSBOSiAwNzkyMC0yMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiszMC0wQi05QyAgIChoZXgpCQlEZWx0YSBNb2JpbGUgU3lzdGVtcywgSW5jLgorMzAwQjlDICAgICAoYmFzZSAxNikJCURlbHRhIE1vYmlsZSBTeXN0ZW1zLCBJbmMuCisJCQkJNzAwIFJlbWluZ3RvbiBSb2FkCisJCQkJMm5kIEZsb29yCisJCQkJU2NoYXVtYnVyZyBJbGxpbm9pcyA2MDE3MworCQkJCVVOSVRFRCBTVEFURVMKKworMzAtMEUtRDUgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLkx0ZAorMzAwRUQ1ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC5Dby5MdGQKKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFBST1ZJTkNFIE9GIENISU5BCisKKzMwLTE0LTJEICAgKGhleCkJCVBpY2lvcmdyb3MgR21iSAorMzAxNDJEICAgICAoYmFzZSAxNikJCVBpY2lvcmdyb3MgR21iSAorCQkJCUNsYXVkaWFzdHJhc3NlIDUKKwkJCQlDb2xvZ25lIE5SVyA1MTE0OQorCQkJCUdFUk1BTlkKKworMzAtMTQtNEEgICAoaGV4KQkJV2lzdHJvbiBOZXdlYiBDb3JwLgorMzAxNDRBICAgICAoYmFzZSAxNikJCVdpc3Ryb24gTmV3ZWIgQ29ycC4KKwkJCQkyMCBQYXJrIEF2ZW51ZSBJSSxIc2luY2h1IFNjaWVuY2UgUGFyaworCQkJCUhzaW5jaHUgIDMwOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMzAtMTYtOEQgICAoaGV4KQkJUHJvTG9uCiszMDE2OEQgICAgIChiYXNlIDE2KQkJUHJvTG9uCisJCQkJMTk4OSBNaWNoZWxpbgorCQkJCUxhdmFsIFF1ZWJlYyBIN0w1QjcKKwkJCQlDQU5BREEKKworMzAtMTctQzggICAoaGV4KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKzMwMTdDOCAgICAgKGJhc2UgMTYpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorCQkJCU55YSBWYXR0ZW50b3JuZXQKKwkJCQlMdW5kIFNFIDIyMSA4OAorCQkJCVNXRURFTgorCiszMC0xOC1DRiAgIChoZXgpCQlERU9TIGNvbnRyb2wgc3lzdGVtcyBHbWJICiszMDE4Q0YgICAgIChiYXNlIDE2KQkJREVPUyBjb250cm9sIHN5c3RlbXMgR21iSAorCQkJCUJpcmtlbmFsbGVlIDExMworCQkJCVJoZWluZSBOUlcgNDg0MzIKKwkJCQlHRVJNQU5ZCisKKzMwLTFBLTI4ICAgKGhleCkJCU1ha28gTmV0d29ya3MgTHRkCiszMDFBMjggICAgIChiYXNlIDE2KQkJTWFrbyBOZXR3b3JrcyBMdGQKKwkJCQkxLzYyIFBhdWwgTWF0dGhld3MgUmQKKwkJCQlBbGJhbnkKKwkJCQlBdWNrbGFuZCAgMDYzMgorCQkJCU5FVyBaRUFMQU5ECisKKzMwLTJELUU4ICAgKGhleCkJCUpEQSwgTExDIChKREEgU3lzdGVtcykKKzMwMkRFOCAgICAgKGJhc2UgMTYpCQlKREEsIExMQyAoSkRBIFN5c3RlbXMpCisJCQkJNDA4MCBQaWtlIExhbmUKKwkJCQlDb25jb3JkIENBIDk0NTIwCisJCQkJVU5JVEVEIFNUQVRFUworCiszMC0zMi1ENCAgIChoZXgpCQlIYW5pbHN0bSBDby4sIEx0ZC4KKzMwMzJENCAgICAgKGJhc2UgMTYpCQlIYW5pbHN0bSBDby4sIEx0ZC4KKwkJCQkxMzgtNiwgU2FuZ2RhZXdvbi1kb25nIEp1bmd3b24tZ3UKKwkJCQk3MDksIEpvb25nYW5nIEluZHVzcGlhIDV0aAorCQkJCVNlb25nbmFtIEt5b25nZ2ktZG8gNDYyLTEyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszMC0zNy1BNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiszMDM3QTYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiszMC0zOC01NSAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorMzAzODU1ICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgT3UgOTA1OTAKKwkJCQlGSU5MQU5ECisKKzMwLTM5LTI2ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCiszMDM5MjYgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlT77+9bHZlZ2F0YW4gNTEKKwkJCQktCisJCQkJTHVuZCAtIDIyMTg4CisJCQkJU1dFREVOCisKKzMwLTM5LTU1ICAgKGhleCkJCVNoZW56aGVuIEppbmhlbmdqaWEgRWxlY3Ryb25pYyBDby4sIEx0ZC4KKzMwMzk1NSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBKaW5oZW5namlhIEVsZWN0cm9uaWMgQ28uLCBMdGQuCisJCQkJNC02IEZsb29ycywgRmFjdG9yeSBCdWlsZGluZywgSmlqaWEgSW5kdXN0cmlhbCBQYXJrLAorCQkJCVhpYWxpbGFuZyBBcmVhLCBOYW53YW4gU3RyZWV0LCBMb25nZ2FuZyBBcmVhLgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMTIKKwkJCQlDSElOQQorCiszMC0zOS1GMiAgIChoZXgpCQlBREIgQnJvYWRiYW5kIEl0YWxpYQorMzAzOUYyICAgICAoYmFzZSAxNikJCUFEQiBCcm9hZGJhbmQgSXRhbGlhCisJCQkJVklBTEUgU0FSQ0EgMjIyIAorCQkJCU1JTEFOTyAgIDIwMTI2IAorCQkJCUlUQUxZCisKKzMwLTQxLTc0ICAgKGhleCkJCUFMVEVDIExBTlNJTkcgTExDCiszMDQxNzQgICAgIChiYXNlIDE2KQkJQUxURUMgTEFOU0lORyBMTEMKKwkJCQk1MzUgUk9VVEVTIDYgJiAyMDkKKwkJCQlNSUxGT1JEIFBBIDE4MzM3CisJCQkJVU5JVEVEIFNUQVRFUworCiszMC00Ni05QSAgIChoZXgpCQlORVRHRUFSCiszMDQ2OUEgICAgIChiYXNlIDE2KQkJTkVUR0VBUgorCQkJCTM1MCBFQVNUIFBMVU1FUklBIERSSVZFCisJCQkJU0FOIEpPU0UgQ0FMSUZPUk5JQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMzAtNDktM0IgICAoaGV4KQkJTmFuamluZyBaLUNvbSBXaXJlbGVzcyBDby4sTHRkCiszMDQ5M0IgICAgIChiYXNlIDE2KQkJTmFuamluZyBaLUNvbSBXaXJlbGVzcyBDby4sTHRkCisJCQkJWi1Db20gQnVpbGRpbmcsTk8uMzAgSmlhbmdzdSBTb2Z0d2FyZSBQYXJrLE5PLjY5OS0yMiBYdWFud3UgQXZlbnVlLAorCQkJCU5hbmppbmcgSmlhbmdzdSAyMTAwNDIKKwkJCQlDSElOQQorCiszMC00Qy03RSAgIChoZXgpCQlQYW5hc29uaWMgRWxlY3RyaWMgV29ya3MgQXV0b21hdGlvbiBDb250cm9scyBUZWNobm8gQ28uLEx0ZC4KKzMwNEM3RSAgICAgKGJhc2UgMTYpCQlQYW5hc29uaWMgRWxlY3RyaWMgV29ya3MgQXV0b21hdGlvbiBDb250cm9scyBUZWNobm8gQ28uLEx0ZC4KKwkJCQkyLTktMTggQ2hpZG9yaQorCQkJCU9vdGEta3UgVG9reW8gMTQ2LTg1NDAKKwkJCQlKQVBBTgorCiszMC00RS1DMyAgIChoZXgpCQlUaWFuamluIFRlY2h1YSBUZWNobm9sb2d5IENvLiwgTHRkLgorMzA0RUMzICAgICAoYmFzZSAxNikJCVRpYW5qaW4gVGVjaHVhIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMTItMS0xNDAxIFRpYW5saW55dWFuIEZ1bGljaGVuZyBHdWxvdXhpIFJvYWQsTmFua2FpIERpc3RyaWN0IAorCQkJCVRpYW5qaW4gIDMwMDEwMQorCQkJCUNISU5BCisKKzMwLTUyLTVBICAgKGhleCkJCU5TVCBDby4sIExURAorMzA1MjVBICAgICAoYmFzZSAxNikJCU5TVCBDby4sIExURAorCQkJCVJNMzAxLERhZXJ5dW5nIFRlY2hubyBUb3duIDIsIDU2OS0yMQorCQkJCUdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtNzcxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzMwLTU1LUVEICAgKGhleCkJCVRyZXggTmV0d29yayBMTEMKKzMwNTVFRCAgICAgKGJhc2UgMTYpCQlUcmV4IE5ldHdvcmsgTExDCisJCQkJUm9vbSA1MDUsIFRvd2VyIEIgTm9uZ2tlIEJ1aWxkaW5nLCAKKwkJCQlOby4xMSBTaHVndWFuZyBIdWF5dWFuIE1pZGRsZSBTdHJlZXQsSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA5NworCQkJCUNISU5BCisKKzMwLTU3LUFDICAgKGhleCkJCUlSTEFCIExURC4KKzMwNTdBQyAgICAgKGJhc2UgMTYpCQlJUkxBQiBMVEQuCisJCQkJM3JkIEZsb29yLCAyQSBCaXVsZGluZywgSHVpaGFvIEluZHVzdHJpYWwgUGFyaworCQkJCUhlc2h1aWtvdSxHb25nbWluZworCQkJCVNoZW56aGVuIEd1YW5nIERvbmcgNTE4MTA2CisJCQkJQ0hJTkEKKworMzAtNjEtMTggICAoaGV4KQkJUGFyYWRvbSBJbmMuCiszMDYxMTggICAgIChiYXNlIDE2KQkJUGFyYWRvbSBJbmMuCisJCQkJOEYsIE4wLiAxNzgsIFNlYy0yLCBHb25nZGFvd3UgUmQuCisJCQkJSHNpbmNodSBDaXR5ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzMwLTY4LThDICAgKGhleCkJCVJlYWNoIFRlY2hub2xvZ3kgSW5jLgorMzA2ODhDICAgICAoYmFzZSAxNikJCVJlYWNoIFRlY2hub2xvZ3kgSW5jLgorCQkJCTQ1NzUgQ3VzaGluZyBQYXJrd2F5CisJCQkJRnJlbW9udCBDYWxpZm9ybmlhIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCiszMC02OS00QiAgIChoZXgpCQlSSU0KKzMwNjk0QiAgICAgKGJhc2UgMTYpCQlSSU0KKwkJCQkyOTUgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCAzVzgKKwkJCQlDQU5BREEKKworMzAtNkMtQkUgICAoaGV4KQkJU2t5bW90aW9uIFRlY2hub2xvZ3kgKEhLKSBMaW1pdGVkCiszMDZDQkUgICAgIChiYXNlIDE2KQkJU2t5bW90aW9uIFRlY2hub2xvZ3kgKEhLKSBMaW1pdGVkCisJCQkJVW5pdCAyNjAzLCAyNi9GLCBNZXRyb3BvbGUgU3F1YXJlLAorCQkJCSMyIE9uIFlpdSBTdHJlZXQsIFNoYXRpbiwgTi5ULiwKKwkJCQk4NTIKKwkJCQlIT05HIEtPTkcKKworMzAtNkUtNUMgICAoaGV4KQkJVmFsaWR1cyBUZWNobm9sb2dpZXMKKzMwNkU1QyAgICAgKGJhc2UgMTYpCQlWYWxpZHVzIFRlY2hub2xvZ2llcworCQkJCTQyMCBOb3J0aCBNYWluIFN0cmVldAorCQkJCUVhc3QgUGVvcmlhIElsbGlub2lzIDYxNjExCisJCQkJVU5JVEVEIFNUQVRFUworCiszMC03MS1CMiAgIChoZXgpCQlIYW5nemhvdSBQcmV2YWlsIE9wdG9lbGVjdHJvbmljIEVxdWlwbWVudCBDby4sTFRELgorMzA3MUIyICAgICAoYmFzZSAxNikJCUhhbmd6aG91IFByZXZhaWwgT3B0b2VsZWN0cm9uaWMgRXF1aXBtZW50IENvLixMVEQuCisJCQkJSW5kdXN0cmlhbCBEZXZlbG9wbWVudCBBcmVhLCBHdWFsaSBUb3duLAorCQkJCSBYaWFvc2hhbiAKKwkJCQlIYW5nemhvdSBDaXR5IFpoZSBKaWFuZyAzMTEyNDEKKwkJCQlDSElOQQorCiszMC03Qy0zMCAgIChoZXgpCQlSSU0KKzMwN0MzMCAgICAgKGJhc2UgMTYpCQlSSU0KKwkJCQkyOTUgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCAzVzgKKwkJCQlDQU5BREEKKworMzAtN0UtQ0IgICAoaGV4KQkJU0ZSCiszMDdFQ0IgICAgIChiYXNlIDE2KQkJU0ZSCisJCQkJNDAvNDIgUXVhaSBkdSBwb2ludCBkdSBqb3VyCisJCQkJQm91bG9uZ25lIEJpbGxhbmNvdXJ0IEhhdXRzIGRlIFNlaW5lIDkyNjU5CisJCQkJRlJBTkNFCisKKzMwLTg1LUE5ICAgKGhleCkJCUFzdXN0ZWsgQ29tcHV0ZXIgSW5jCiszMDg1QTkgICAgIChiYXNlIDE2KQkJQXN1c3RlayBDb21wdXRlciBJbmMKKwkJCQkxNSxMaS1UZSBSZC4sIFBlaXRvdQorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBQUk9WSU5DRSBPRiBDSElOQQorCiszMC04Ny0zMCAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCiszMDg3MzAgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxMDEwOAorCQkJCUNISU5BCisKKzMwLThDLUZCICAgKGhleCkJCURyb3BjYW0KKzMwOENGQiAgICAgKGJhc2UgMTYpCQlEcm9wY2FtCisJCQkJNjI1IE1hcmtldCBTdHJlZXQKKwkJCQlTdWl0ZSAxMDEwCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEwNQorCQkJCVVOSVRFRCBTVEFURVMKKworMzAtQUUtRjYgICAoaGV4KQkJUmFkaW8gTW9iaWxlIEFjY2VzcworMzBBRUY2ICAgICAoYmFzZSAxNikJCVJhZGlvIE1vYmlsZSBBY2Nlc3MKKwkJCQkxIEVsbSBTcQorCQkJCUFuZG92ZXIgTUEgMDE4NzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzMwLUIyLTE2ICAgKGhleCkJCUh5dGVjIEdlcmFldGViYXUgR21iSAorMzBCMjE2ICAgICAoYmFzZSAxNikJCUh5dGVjIEdlcmFldGViYXUgR21iSAorCQkJCUNvY2hlbWVyIFN0ci4gMTItMTQKKwkJCQlNYW5uaGVpbSBCVyA2ODMwOQorCQkJCUdFUk1BTlkKKworMzAtQjMtQTIgICAoaGV4KQkJU2hlbnpoZW4gSGVndWFuZyBNZWFzdXJlbWVudCAmIENvbnRyb2wgVGVjaG5vbG9neSBDby4sTHRkCiszMEIzQTIgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gSGVndWFuZyBNZWFzdXJlbWVudCAmIENvbnRyb2wgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJMy9GLCBUb3dlciBBLCBYaWFuZ25pYW4gUGxhemEsIDYwNjAgUWlhb3hpYW5nIFJvYWQsIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTMKKwkJCQlDSElOQQorCiszMC1ERS04NiAgIChoZXgpCQlDZWRhYyBTb2Z0d2FyZSBTLnIubC4KKzMwREU4NiAgICAgKGJhc2UgMTYpCQlDZWRhYyBTb2Z0d2FyZSBTLnIubC4KKwkJCQlWaWEgVG9zY2FuYSwgMworCQkJCUNhc3RpZ2xpb25lIGRlaSBQZXBvbGkgQm9sb2duYSA0MDAzNQorCQkJCUlUQUxZCisKKzMwLUU0LThFICAgKGhleCkJCVZvZGFmb25lIFVLCiszMEU0OEUgICAgIChiYXNlIDE2KQkJVm9kYWZvbmUgVUsKKwkJCQlWb2RhZm9uZSBIb3VzZSAKKwkJCQlUaGUgQ29ubmVjdGlvbiAKKwkJCQlOZXdidXJ5ICBCZXJrc2hpcmUgIFJHMTQyRk4KKwkJCQlVTklURUQgS0lOR0RPTQorCiszMC1FNC1EQiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCiszMEU0REIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworMzAtRUItMjUgICAoaGV4KQkJSU5URUsgRElHSVRBTAorMzBFQjI1ICAgICAoYmFzZSAxNikJCUlOVEVLIERJR0lUQUwKKwkJCQk4MDEsIDh0aCBGbC4sIEFueWFuZyBLLWNlbnRlciBidWlsZGluZywgMTU5MS05CisJCQkJR3dhbnlhbmctZG9uZywgRG9uZ2FuLWd1CisJCQkJQW55YW5nICA0MzEtMDYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzMwLUVGLUQxICAgKGhleCkJCUFsc3RvbSBTdHJvbmd3aXNoIChTaGVuemhlbikgQ28uLCBMdGQuCiszMEVGRDEgICAgIChiYXNlIDE2KQkJQWxzdG9tIFN0cm9uZ3dpc2ggKFNoZW56aGVuKSBDby4sIEx0ZC4KKwkJCQk1RixCdWlsZGluZyBOby42LCBLZWppIE1pZGRsZSAyIFJvYWQgSGlnaC1UZWNoIEluZHVzdHJpYWwgUGFyaywgCisJCQkJU2hlbiBaaGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiszMC1GOS1FRCAgIChoZXgpCQlTb255IENvcnBvcmF0aW9uCiszMEY5RUQgICAgIChiYXNlIDE2KQkJU29ueSBDb3Jwb3JhdGlvbgorCQkJCUdvdGVueWFtYSBUZWMuCisJCQkJNS0xLTEyIEtpdGFzaGluYWdhd2EgU2hpbmFnYXdhLWt1CisJCQkJVG9reW8gIDE0MS0wMDAxCisJCQkJSkFQQU4KKworMzQtMDctRkIgICAoaGV4KQkJRXJpY3Nzb24gQUIKKzM0MDdGQiAgICAgKGJhc2UgMTYpCQlFcmljc3NvbiBBQgorCQkJCVRvcnNoYW1uc2dhdGFuIDM2CisJCQkJU3RvY2tob2xtIFNFLTE2NCA4MAorCQkJCVNXRURFTgorCiszNC0wOC0wNCAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzM0MDgwNCAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOby4yODksIFNpbmh1IDNyZCBSZC4sIE5laWh1IERpc3RyaWN0LCAKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMzQtMTUtOUUgICAoaGV4KQkJQXBwbGUsIEluYworMzQxNTlFICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzM0LTIxLTA5ICAgKGhleCkJCUplbnNlbiBTY2FuZGluYXZpYSBBUworMzQyMTA5ICAgICAoYmFzZSAxNikJCUplbnNlbiBTY2FuZGluYXZpYSBBUworCQkJCUJhbGRlciBBbGzpIDMKKwkJCQlKZXNzaGVpbSAgMjA1MAorCQkJCU5PUldBWQorCiszNC0yNS01RCAgIChoZXgpCQlTaGVuemhlbiBMb2FkY29tIFRlY2hub2xvZ3kgQ28uLEx0ZAorMzQyNTVEICAgICAoYmFzZSAxNikJCVNoZW56aGVuIExvYWRjb20gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJWXVlaGFpIEJ1aWxkaW5nIEEtMTNDRCxOYW5oYWkgUm9hZCxOYW5zaGFuIEFyZWEKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU0CisJCQkJQ0hJTkEKKworMzQtMjktRUEgICAoaGV4KQkJTUNEIEVMRUNUUk9OSUNTIFNQLiBaIE8uTy4KKzM0MjlFQSAgICAgKGJhc2UgMTYpCQlNQ0QgRUxFQ1RST05JQ1MgU1AuIFogTy5PLgorCQkJCUxlbGV3ZWxhIDI2CisJCQkJWnl3aWVjIFNsYXNraWUgMzQtMzAwCisJCQkJUE9MQU5ECisKKzM0LTJGLTZFICAgKGhleCkJCUFueXdpcmUgY29ycG9yYXRpb24KKzM0MkY2RSAgICAgKGJhc2UgMTYpCQlBbnl3aXJlIGNvcnBvcmF0aW9uCisJCQkJOC0xIFNoaW1vLWluZGVuIElub3VjaGkKKwkJCQlOYWdhb2tha3lvIEt5b3RvIHByZWYuIDYxNy0wODEzCisJCQkJSkFQQU4KKworMzQtNDAtQjUgICAoaGV4KQkJSUJNCiszNDQwQjUgICAgIChiYXNlIDE2KQkJSUJNCisJCQkJMzAzOSBFIENvcm53YWxsaXMgUmQKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5CisJCQkJVU5JVEVEIFNUQVRFUworCiszNC00Qi0zRCAgIChoZXgpCQlGaWJlcmhvbWUgVGVsZWNvbW11bmljYXRpb24gVGVjaC5Dby4sTHRkLgorMzQ0QjNEICAgICAoYmFzZSAxNikJCUZpYmVyaG9tZSBUZWxlY29tbXVuaWNhdGlvbiBUZWNoLkNvLixMdGQuCisJCQkJTm8uNSBEb25nWGluIFJvYWQKKwkJCQlIb25nc2FuIERpc3RyaWN0CisJCQkJV3VoYW4gQ2l0eSBIdWJlaSBQcm92aW5jZSA0MzAwNzQKKwkJCQlDSElOQQorCiszNC00Qi01MCAgIChoZXgpCQlaVEUgQ29ycG9yYXRpb24KKzM0NEI1MCAgICAgKGJhc2UgMTYpCQlaVEUgQ29ycG9yYXRpb24KKwkJCQkxMi9GLFpURSBSJkQgQnVsaWRpbmcsS2VqaW5hbiBSb2FkLFNoZW56aGVuLFAuUi5DaGluYQorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiszNC00Ri02OSAgIChoZXgpCQlFS0lOT1BTIFNBUworMzQ0RjY5ICAgICAoYmFzZSAxNikJCUVLSU5PUFMgU0FTCisJCQkJMywgUnVlIEJsYWlzZSBQYXNjYWwKKwkJCQlMQU5OSU9OIEZSQU5DRSAyMjMwMAorCQkJCUZSQU5DRQorCiszNC01MS1DOSAgIChoZXgpCQlBcHBsZSwgSW5jLgorMzQ1MUM5ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCiszNC01Qi0xMSAgIChoZXgpCQlFVkkgSEVBVCBBQgorMzQ1QjExICAgICAoYmFzZSAxNikJCUVWSSBIRUFUIEFCCisJCQkJQm94IDU1CisJCQkJS3VuZ3NhZW5nZW4gIDE5NiAyMgorCQkJCVNXRURFTgorCiszNC02OC00QSAgIChoZXgpCQlUZXJhd29ya3MgQ28uLCBMdGQuCiszNDY4NEEgICAgIChiYXNlIDE2KQkJVGVyYXdvcmtzIENvLiwgTHRkLgorCQkJCVJvb20gTm8uIDIwMSAsIDUxNS0zMCAsIE1vay1Eb25nCisJCQkJWWFuZ2NoZW9uLUd1CisJCQkJU2VvdWwgIDE1OC04MDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMzQtNkUtOEEgICAoaGV4KQkJRWNvc2Vuc2UKKzM0NkU4QSAgICAgKGJhc2UgMTYpCQlFY29zZW5zZQorCQkJCTE0MTQgS29sb24gc2NpZW5jZSB2YWxsZXQtSUkuLCAjODExCisJCQkJR3VybzMtZG9uZworCQkJCVNlb3VsIEd1cm8tZ3UgMTUyLTg3OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszNC02Ri05MiAgIChoZXgpCQlXaGl0ZSBSb2RnZXJzIERpdmlzaW9uCiszNDZGOTIgICAgIChiYXNlIDE2KQkJV2hpdGUgUm9kZ2VycyBEaXZpc2lvbgorCQkJCTgxMDAgV2VzdCBGbG9yaXNzYW50CisJCQkJUC5PLiBCb3ggMzY5MjEKKwkJCQlTdC4gTG91aXMgTU8gNjMxMzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzM0LTc2LUM1ICAgKGhleCkJCUktTyBEQVRBIERFVklDRSwgSU5DLgorMzQ3NkM1ICAgICAoYmFzZSAxNikJCUktTyBEQVRBIERFVklDRSwgSU5DLgorCQkJCTMtMTAsIFNBS1VSQURBLU1BQ0hJCisJCQkJS0FOQVpBV0EgSVNISUtBV0EgOTIwLTg1MTIKKwkJCQlKQVBBTgorCiszNC03OC03NyAgIChoZXgpCQlPLU5FVCBDb21tdW5pY2F0aW9ucyhTaGVuemhlbikgTGltaXRlZAorMzQ3ODc3ICAgICAoYmFzZSAxNikJCU8tTkVUIENvbW11bmljYXRpb25zKFNoZW56aGVuKSBMaW1pdGVkCisJCQkJIzEwLTEgU291dGgsTWFxdWVsaW5nIEluZHVzdHJpYWwgUGFyayxOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzM0LTdFLTM5ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCiszNDdFMzkgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzM0LTgxLTM3ICAgKGhleCkJCVVOSUNBUkQgU0EKKzM0ODEzNyAgICAgKGJhc2UgMTYpCQlVTklDQVJEIFNBCisJCQkJVUwuV0FET1dJQ0tBIDEyCisJCQkJS1JBS09XIHdvai4gbWFsb3BvbHNraWUgMzAtNDE1CisJCQkJUE9MQU5ECisKKzM0LTgyLURFICAgKGhleCkJCUtheW8gVGVjaG5vbG9neSwgSW5jLgorMzQ4MkRFICAgICAoYmFzZSAxNikJCUtheW8gVGVjaG5vbG9neSwgSW5jLgorCQkJCTMyMDEgU3llbmUgUmQKKwkJCQlNYWRpc29uIFdJIDUzNzEzCisJCQkJVU5JVEVEIFNUQVRFUworCiszNC04My0wMiAgIChoZXgpCQlpRm9yY29tIENvLiwgTHRkCiszNDgzMDIgICAgIChiYXNlIDE2KQkJaUZvcmNvbSBDby4sIEx0ZAorCQkJCTEzMjYKKwkJCQlUc3VrdWljaG8tTmFrYW5vCisJCQkJU2FnYW1paGFyYSBLYW5hZ2F3YSAyMjAtMDIwNworCQkJCUpBUEFOCisKKzM0LTg2LTJBICAgKGhleCkJCUhlaW56IExhY2ttYW5uIEdtYkggJiBDbyBLRworMzQ4NjJBICAgICAoYmFzZSAxNikJCUhlaW56IExhY2ttYW5uIEdtYkggJiBDbyBLRworCQkJCUhhcmtvcnRzdHJhc3NlIDE1CisJCQkJTfxuc3RlciBOUlcgNDgxNjMKKwkJCQlHRVJNQU5ZCisKKzM0LTk3LUZCICAgKGhleCkJCUFEVkFOQ0VEIFJGIFRFQ0hOT0xPR0lFUyBJTkMKKzM0OTdGQiAgICAgKGJhc2UgMTYpCQlBRFZBTkNFRCBSRiBURUNITk9MT0dJRVMgSU5DCisJCQkJMzExNiBXIFZhbm93ZW4gU3QKKwkJCQlCdXJiYW5rIENhbGlmb3JuaWEgOTE1MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzM0LTk5LTZGICAgKGhleCkJCVZQSSBFbmdpbmVlcmluZworMzQ5OTZGICAgICAoYmFzZSAxNikJCVZQSSBFbmdpbmVlcmluZworCQkJCTExODE0IFMuIEVsZWN0aW9uIFJkLiwgU3VpdGUgMjAwCisJCQkJRHJhcGVyIFVUIDg0MDIwCisJCQkJVU5JVEVEIFNUQVRFUworCiszNC05OS1ENyAgIChoZXgpCQlVbml2ZXJzYWwgRmxvdyBNb25pdG9ycywgSW5jLgorMzQ5OUQ3ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBGbG93IE1vbml0b3JzLCBJbmMuCisJCQkJMTc1NSBFLiBOaW5lIE1pbGUgUmQuCisJCQkJSGF6ZWwgUGFyayBNSSA0ODAzMAorCQkJCVVOSVRFRCBTVEFURVMKKworMzQtOUEtMEQgICAoaGV4KQkJWkJEIERpc3BsYXlzIEx0ZAorMzQ5QTBEICAgICAoYmFzZSAxNikJCVpCRCBEaXNwbGF5cyBMdGQKKwkJCQlPcmNoYXJkIExlYQorCQkJCVdpbmtmaWVsZCBMYW5lCisJCQkJV2luZHNvciBCZXJrc2hpcmUgU0w0IDRSVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzM0LUExLTgzICAgKGhleCkJCUFXYXJlLCBJbmMKKzM0QTE4MyAgICAgKGJhc2UgMTYpCQlBV2FyZSwgSW5jCisJCQkJNjE0IE1hc3NhY2h1c2V0dHMgQXZlLiAKKwkJCQlDYW1icmlkZ2UgTUEgMDIxMzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzM0LUE1LTVEICAgKGhleCkJCVRFQ0hOT1NPRlQgSU5URVJOQVRJT05BTCBTUkwKKzM0QTU1RCAgICAgKGJhc2UgMTYpCQlURUNITk9TT0ZUIElOVEVSTkFUSU9OQUwgU1JMCisJCQkJUk82NjQwOTA0CisJCQkJU3RyLiBQYWR1cmV0dSA1MAorCQkJCUJ1Y3VyZXN0aSAtIFNlY3RvciA2IDA2MTk5MgorCQkJCVJPTUFOSUEKKworMzQtQTctMDkgICAoaGV4KQkJVHJldmlsIHNybAorMzRBNzA5ICAgICAoYmFzZSAxNikJCVRyZXZpbCBzcmwKKwkJCQlWaWEgQ29wZXJuaWNvIDEKKwkJCQlQb3p6byBkJiMzOTtBZGRhIE1JIDIwMDYwCisJCQkJSVRBTFkKKworMzQtQTctQkEgICAoaGV4KQkJRmlzY2hlciBJbnRlcm5hdGlvbmFsIFN5c3RlbXMgQ29ycG9yYXRpb24KKzM0QTdCQSAgICAgKGJhc2UgMTYpCQlGaXNjaGVyIEludGVybmF0aW9uYWwgU3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTU4MDEgUGVsaWNhbiBCYXkgQm91bGV2YXJkICMzMDAKKwkJCQlOYXBsZXMgRmxvcmlkYSAzNDEwOAorCQkJCVVOSVRFRCBTVEFURVMKKworMzQtQUEtOTkgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQKKzM0QUE5OSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudAorCQkJCTYwMCBNYXJjaCBSb2FkCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLIDJFNgorCQkJCUNBTkFEQQorCiszNC1BQS1FRSAgIChoZXgpCQlNaWtyb3Zpc2F0b3MgU2VydmlzYXMgVUFCCiszNEFBRUUgICAgIChiYXNlIDE2KQkJTWlrcm92aXNhdG9zIFNlcnZpc2FzIFVBQgorCQkJCVNhdmFub3JpdSBwci4gMTI1CisJCQkJS2F1bmFzICBMVDQ0MTQ2CisJCQkJTElUSFVBTklBCisKKzM0LUI1LTcxICAgKGhleCkJCVBMRFMKKzM0QjU3MSAgICAgKGJhc2UgMTYpCQlQTERTCisJCQkJU2NoYW56ZW5mZWxkc3RyYXNzZSAyCisJCQkJV2V0emxhciBIZXNzZW4gMzU1NzgKKwkJCQlHRVJNQU5ZCisKKzM0LUJBLTUxICAgKGhleCkJCVNlLUt1cmUgQ29udHJvbHMsIEluYy4KKzM0QkE1MSAgICAgKGJhc2UgMTYpCQlTZS1LdXJlIENvbnRyb2xzLCBJbmMuCisJCQkJMzcxNCBSdW5nZSBTdHJlZXQKKwkJCQlGcmFua2xpbiBQYXJrIElMIDYwMTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiszNC1CQS05QSAgIChoZXgpCQlBc2lhdGVsY28gVGVjaG5vbG9naWVzIENvLgorMzRCQTlBICAgICAoYmFzZSAxNikJCUFzaWF0ZWxjbyBUZWNobm9sb2dpZXMgQ28uCisJCQkJMzAxLCM4IEJ1aWxkaW5nLCMyODkgQmlzaGVuZyBSb2FkCisJCQkJWmhhbmdqaWFuZyBIaS1UZWNoIFBhcmssUHVkb25nCisJCQkJU2hhbmdoYWkgIDIwMTIwNAorCQkJCUNISU5BCisKKzM0LUJCLTFGICAgKGhleCkJCVJlc2VhcmNoIEluIE1vdGlvbgorMzRCQjFGICAgICAoYmFzZSAxNikJCVJlc2VhcmNoIEluIE1vdGlvbgorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCiszNC1CQy1BNiAgIChoZXgpCQlCZWlqaW5nIERpbmcgUWluZyBUZWNobm9sb2d5LCBMdGQuCiszNEJDQTYgICAgIChiYXNlIDE2KQkJQmVpamluZyBEaW5nIFFpbmcgVGVjaG5vbG9neSwgTHRkLgorCQkJCTIxOCBIYW4gVGFpIEh1YSBPZmZpY2UgQnVpbGRpbmcsIDEzIEh1YW4gWXVhbiBMdSwKKwkJCQlIYWlkaWFuIERpc3RyaWN0IEJlaWppbmcgMTAwMDgzCisJCQkJVU5JVEVEIFNUQVRFUworCiszNC1CRC1GOSAgIChoZXgpCQlTaGFuZ2hhaSBXREsgSW5kdXN0cmlhbCBDby4sTHRkLgorMzRCREY5ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFdESyBJbmR1c3RyaWFsIENvLixMdGQuCisJCQkJTm8uMjEwMCxTb25nemhlbiBSb2FkLFNvbmdqaWFuZyBEaXN0cmljdAorCQkJCVNoYW5naGFpICAyMDE2MDYKKwkJCQlDSElOQQorCiszNC1DMy1BQyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCiszNEMzQUMgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCTk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzM0LUM2LTlBICAgKGhleCkJCUVuZWNzeXMgTHRkCiszNEM2OUEgICAgIChiYXNlIDE2KQkJRW5lY3N5cyBMdGQKKwkJCQlIYXJzdG9uIE1pbGwKKwkJCQlSb3lzdG9uIFJvYWQKKwkJCQlDYW1icmlkZ2UgQ2FtYnJpZGdlc2hpcmUgQ0IyMiA3R0cKKwkJCQlVTklURUQgS0lOR0RPTQorCiszNC1DNy0zMSAgIChoZXgpCQlBTFBTIEVsZWN0cmljIENvLC4gTHRkLgorMzRDNzMxICAgICAoYmFzZSAxNikJCUFMUFMgRWxlY3RyaWMgQ28sLiBMdGQuCisJCQkJNi0zLTM2IEZ1cnVrYXdhbmFrYXphdG8sCisJCQkJT3Nha2kgTWl5YWdpLXByZWYgOTg5LTYxODEKKwkJCQlKQVBBTgorCiszNC1DRS05NCAgIChoZXgpCQlQYXJzZWMgKFB0eSkgTHRkCiszNENFOTQgICAgIChiYXNlIDE2KQkJUGFyc2VjIChQdHkpIEx0ZAorCQkJCUJ1aWxkaW5nIDgtMTAgTWFuaGF0dGFuIE9mZmljZSBQYXJrCisJCQkJMTYgUGlldGVyIFN0cmVldCwgSGlnaHZlbGQgVGVjaG5vcGFyaworCQkJCUNlbnR1cmlvbiBHYXV0ZW5nIDAxNTcKKwkJCQlTT1VUSCBBRlJJQ0EKKworMzQtRDAtOUIgICAoaGV4KQkJTW9iaWxNQVggVGVjaG5vbG9neSBJbmMuCiszNEQwOUIgICAgIChiYXNlIDE2KQkJTW9iaWxNQVggVGVjaG5vbG9neSBJbmMuCisJCQkJMkYtNSwgTm8uMjgsIFRhaS1ZdWFuIFN0LgorCQkJCUNodXBlaSBDaXR5LCBIc2luY2h1IENvdW50cnkgIDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworMzQtRDItQzQgICAoaGV4KQkJUkVOQSBHbWJIIFByaW50IFN5c3RlbWUKKzM0RDJDNCAgICAgKGJhc2UgMTYpCQlSRU5BIEdtYkggUHJpbnQgU3lzdGVtZQorCQkJCUhpZW5sb2hlc3RyYXNzZSAyNAorCQkJCU90dGVyZmluZyBCYXZhcmlhIDgzNjI0CisJCQkJR0VSTUFOWQorCiszNC1ERi0yQSAgIChoZXgpCQlGdWppa29uIEluZHVzdHJpYWwgQ28uLExpbWl0ZWQKKzM0REYyQSAgICAgKGJhc2UgMTYpCQlGdWppa29uIEluZHVzdHJpYWwgQ28uLExpbWl0ZWQKKwkJCQkxNi9GLiwgVG93ZXIgMSwgR3JhbmQgQ2VudHJhbCBQbGF6YSwxMzggU2hhdGluIFJ1cmFsIAorCQkJCUNvbW1pdHRlZSBSb2FkLFNoYXRpbiwgTi5ULiwgCisJCQkJNTIzOTMwCisJCQkJSE9ORyBLT05HCisKKzM0LUUwLUQ3ICAgKGhleCkJCURPTkdHVUFOIFFJU0hFTkcgRUxFQ1RST05JQ1MgSU5EVVNUUklBTCBDTy4sIExURAorMzRFMEQ3ICAgICAoYmFzZSAxNikJCURPTkdHVUFOIFFJU0hFTkcgRUxFQ1RST05JQ1MgSU5EVVNUUklBTCBDTy4sIExURAorCQkJCVhJTkpJIElORFVTVFJJQUwgWk9ORSwgTUFDSE9ORyBUT1dOCisJCQkJRE9OR0dVQU4gR1VBTkdET05HIDUyMzEyMworCQkJCUNISU5BCisKKzM0LUVGLTQ0ICAgKGhleCkJCTJXaXJlCiszNEVGNDQgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGt3eQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiszNC1FRi04QiAgIChoZXgpCQlOVFQgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzM0RUY4QiAgICAgKGJhc2UgMTYpCQlOVFQgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKwkJCQlOVFQgSGliaXlhIEJsZGcuIDdGCisJCQkJMS02LFVjaGlzYWl3YWktY2hvIDEtY2hvbWUKKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMC04MDE5CisJCQkJSkFQQU4KKworMzQtRjMtOUIgICAoaGV4KQkJV2l6TEFOIEx0ZC4KKzM0RjM5QiAgICAgKGJhc2UgMTYpCQlXaXpMQU4gTHRkLgorCQkJCVAuTy5Cb3ggNzk0OAorCQkJCUhhaWZhICAzMTA3OAorCQkJCUlTUkFFTAorCiszNC1GOS02OCAgIChoZXgpCQlBVEVLIFByb2R1Y3RzLCBMTEMKKzM0Rjk2OCAgICAgKGJhc2UgMTYpCQlBVEVLIFByb2R1Y3RzLCBMTEMKKwkJCQkyMTAgTkUgMTB0aCBBdmVudWUKKwkJCQlCcmFpbmVyZCBNTiA1NjQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworMzQtRkMtNkYgICAoaGV4KQkJQUxDRUEKKzM0RkM2RiAgICAgKGJhc2UgMTYpCQlBTENFQQorCQkJCTMsIHJ1ZSBKb2x5IGRlIEJhbW1ldmlsbGUKKwkJCQlaQUMgZGUgbGEgRm9udGFpbmUgZGUgSm91dmVuY2UKKwkJCQlNYXJjb3Vzc2lzICA5MTQ2MAorCQkJCUZSQU5DRQorCiszOC0wMS05NyAgIChoZXgpCQlUb3NoaWJhIFNhbXN1bmcgU3RvcmFnZSBUZWNobm9sZ295IEtvcmVhIENvcnBvcmF0aW9uCiszODAxOTcgICAgIChiYXNlIDE2KQkJVG9zaGliYSBTYW1zdW5nIFN0b3JhZ2UgVGVjaG5vbGdveSBLb3JlYSBDb3Jwb3JhdGlvbgorCQkJCTE0IEZsb29yLCBCbGRnLiBOby4gMTAyLCBEaWdpdGFsIEVtcGlyZTIsIDQ4NiwgU2luLWRvbmcsIFllb25ndG9uZy1ndSwgU3V3b24tc2ksIAorCQkJCVN1LXdvbiBHeWVvbmdnaSA0NDMtNzM0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzM4LTBBLTBBICAgKGhleCkJCVNreS1DaXR5IENvbW11bmljYXRpb24gYW5kIEVsZWN0cm9uaWNzIExpbWl0ZWQgQ29tcGFueQorMzgwQTBBICAgICAoYmFzZSAxNikJCVNreS1DaXR5IENvbW11bmljYXRpb24gYW5kIEVsZWN0cm9uaWNzIExpbWl0ZWQgQ29tcGFueQorCQkJCTExMDksIEJ1aWxkaW5nIEEsIEtlZmEgSW5kdXN0cmlhbCBwYXJrLCBIdWFuZ3VhbiBzb3V0aCByb2FkLCBHdWFubGFuLCAKKwkJCQlCYW9hbiwgCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODExMAorCQkJCUNISU5BCisKKzM4LTBBLTk0ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZCAKKzM4MEE5NCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQgCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzM4LTBELUQ0ICAgKGhleCkJCVByaW1heCBFbGVjdHJvbmljcyBMVEQuCiszODBERDQgICAgIChiYXNlIDE2KQkJUHJpbWF4IEVsZWN0cm9uaWNzIExURC4KKwkJCQk4RixOby4gNjY5LCBSdWV5IEt1YW5nIFJvYWQsIE5laWh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzM4LTE2LUQxICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorMzgxNkQxICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszOC0yMi05RCAgIChoZXgpCQlBREIgQnJvYWRiYW5kIEl0YWxpYQorMzgyMjlEICAgICAoYmFzZSAxNikJCUFEQiBCcm9hZGJhbmQgSXRhbGlhCisJCQkJVklBTEUgU0FSQ0EgMjIyIAorCQkJCSAgTUlMQU5PICAgMjAxMjYKKwkJCQlJVEFMWQorCiszOC0yMi1ENiAgIChoZXgpCQlIM0MgVGVjaG5vbG9naWVzIENvLiwgTGltaXRlZAorMzgyMkQ2ICAgICAoYmFzZSAxNikJCUgzQyBUZWNobm9sb2dpZXMgQ28uLCBMaW1pdGVkCisJCQkJMzEwIExpdWhlIFJvYWQsIFpoaWppYW5nIFNjaWVuY2UgUGFyaworCQkJCUhhbmd6aG91IFpoZWppYW5nLCAgMzEwMDUzCisJCQkJQ0hJTkEKKworMzgtMjYtQ0QgICAoaGV4KQkJQU5EVEVLICAKKzM4MjZDRCAgICAgKGJhc2UgMTYpCQlBTkRURUsgIAorCQkJCUFtIFNvZWxkbmVybW9vcyAxNworCQkJCUhhbGxiZXJnbW9vcyBCYXZhcmlhIDUzOTkKKwkJCQlHRVJNQU5ZCisKKzM4LTI4LUVBICAgKGhleCkJCUZ1amlhbiBOZXRjb20gVGVjaG5vbG9neSBDby4sIExURAorMzgyOEVBICAgICAoYmFzZSAxNikJCUZ1amlhbiBOZXRjb20gVGVjaG5vbG9neSBDby4sIExURAorCQkJCU5ldGNvbSBUZWNobm9sb2d5IEJ1aWxkaW5nLCBCIFpvbmU6VG9uZ3BhbiBTb2Z0d2FyZSBQYXJrLCAKKwkJCQlGdXpob3UgRnVqaWFuIDM1MDAwMworCQkJCUNISU5BCisKKzM4LTMxLUFDICAgKGhleCkJCVdFRworMzgzMUFDICAgICAoYmFzZSAxNikJCVdFRworCQkJCUF2LiBQcmVmLiBXYWxkZW1hciBHcnViYmEsIDMwMDAKKwkJCQlKYXJhZ3XhIGRvIFN1bCBTYW50YSBDYXRhcmluYSA4OTI1Ni05MDAKKwkJCQlCUkFaSUwKKworMzgtM0YtMTAgICAoaGV4KQkJREJMIFRlY2hub2xvZ3kgTHRkLgorMzgzRjEwICAgICAoYmFzZSAxNikJCURCTCBUZWNobm9sb2d5IEx0ZC4KKwkJCQlVbml0IDQyLCAxOC9GLiwgQmxvY2sgRCwgV2FoIExvayBJbmR1c3RyaWFsIENlbnRlcgorCQkJCTMxIC0gMzUgU2hhbiBNZWkgU3RyZWV0LCBGb3RhbiwgU2hhdGluCisJCQkJSE9ORyBLT05HCisKKzM4LTQ1LThDICAgKGhleCkJCU15Q2xvdWQgVGVjaG5vbG9neSBjb3Jwb3JhdGlvbgorMzg0NThDICAgICAoYmFzZSAxNikJCU15Q2xvdWQgVGVjaG5vbG9neSBjb3Jwb3JhdGlvbgorCQkJCVJvb20gNzA177+977+9QnVpbGRpbmcgRiwgSmlhaHVhIEJ1aWxkaW5n77+977+9CisJCQkJIzksIFNoYW5nZGkgM3JkIFN0cmVldO+/ve+/vUhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiszOC00Ni0wOCAgIChoZXgpCQlaVEUgQ29ycG9yYXRpb24KKzM4NDYwOCAgICAgKGJhc2UgMTYpCQlaVEUgQ29ycG9yYXRpb24KKwkJCQkxMi9GLFpURSBSJkQgQnVsaWRpbmcsS2VqaW5hbiBSb2FkLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiszOC01Mi0xQSAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudCA3NzA1CiszODUyMUEgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQgNzcwNQorCQkJCTYwMCBNYXJjaCBSZC4KKwkJCQlPdHRhd2EgT25hdHJpbyBLMEEgMVQwCisJCQkJQ0FOQURBCisKKzM4LTU4LTBDICAgKGhleCkJCVBhbmFjY2VzcyBTeXN0ZW1zIEdtYkgKKzM4NTgwQyAgICAgKGJhc2UgMTYpCQlQYW5hY2Nlc3MgU3lzdGVtcyBHbWJICisJCQkJR3V0ZW5iZXJnc3RyYd9lIDgKKwkJCQlJc21hbmluZyBCWSA4NTczNworCQkJCUdFUk1BTlkKKworMzgtNTktRjkgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorMzg1OUY5ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAyMDE2MTMKKwkJCQlDSElOQQorCiszOC01Ri1DMyAgIChoZXgpCQlZdSBKZW9uZyBTeXN0ZW0sIENvLkx0ZAorMzg1RkMzICAgICAoYmFzZSAxNikJCVl1IEplb25nIFN5c3RlbSwgQ28uTHRkCisJCQkJIzUwMywgRG9uZyBpbCBCL0QsIDgyNiwgR3Vyby0zZG9uZywgCisJCQkJR3Vyby1HdSwgCisJCQkJU2VvdWwgIDE1Mi04NzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMzgtNjAtNzcgICAoaGV4KQkJUEVHQVRST04gQ09SUE9SQVRJT04gCiszODYwNzcgICAgIChiYXNlIDE2KQkJUEVHQVRST04gQ09SUE9SQVRJT04gCisJCQkJTm8uIDc2LCBMaWdvbmcgU3QuLCBCZWl0b3UsIAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiszOC02My1GNiAgIChoZXgpCQkzTk9EIE1VTFRJTUVESUEoU0hFTlpIRU4pQ08uLExURAorMzg2M0Y2ICAgICAoYmFzZSAxNikJCTNOT0QgTVVMVElNRURJQShTSEVOWkhFTilDTy4sTFRECisJCQkJRjYsQnVpbGRpbmcxMSxTaGVuemhlbiBTb2Z0d2FyZSBQYXJrCisJCQkJTm8uMiBLZWppemhvbmcgUm9hZCxOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzM4LTZCLUJCICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiszODZCQkIgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzM4LTZFLTIxICAgKGhleCkJCVdhc2lvbiBHcm91cCBMdGQuCiszODZFMjEgICAgIChiYXNlIDE2KQkJV2FzaW9uIEdyb3VwIEx0ZC4KKwkJCQlOby40NjggV2VzdCBUb25nemlwbyBSb2FkIEhpZ2gtVGVjaCBJbmR1c3RyaWFsIERldmVsb3BtZW50IFpvbmUKKwkJCQlDaGFuZ3NoYSBDaXR5IEh1bmFuIFByb3ZpbmNlLCA0MTAyMDUgCisJCQkJQ0hJTkEKKworMzgtNzItQzAgICAoaGV4KQkJQ09NVFJFTkQKKzM4NzJDMCAgICAgKGJhc2UgMTYpCQlDT01UUkVORAorCQkJCTNGLTEsMTAgTGFuZSA2MDksIENodW5nIEhzaW4gUm9hZCwgU2VjdGlvbiA1CisJCQkJU2FuIENodW5nIENpdHksIAorCQkJCVRhaXBlaSBIc2llbiAgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCiszOC04My00NSAgIChoZXgpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKzM4ODM0NSAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQlCdWlsZGluZyAyNCAoZmxvb3JzIDEsMyw0LDUpIGFuZCAyOCAoZmxvb3JzMS00KSAgQ2VudHJhbCBTY2llbmNlIGFuZCBUZWNobm9sb2d5IFBhcmssU2hlbm5hbiBSZCwgTmFuc2hhbiwgCisJCQkJU2hlbnpoZW4sIEd1YW5nZG9uZyBQcm92aW5jZSA1MTgwNTcKKwkJCQlDSElOQQorCiszOC04QS1CNyAgIChoZXgpCQlQYW5hc29uaWMgVGVsZWNvbSBDby4sTHRkCiszODhBQjcgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIFRlbGVjb20gQ28uLEx0ZAorCQkJCTNGIERhaXdhIFNoaWJhdXJhIEJsZGcKKwkJCQkxLTEyLTMgU2hpYmF1cmEgTWluYXRvLWt1CisJCQkJVG9reW8gIDEwNS0wMDIzCisJCQkJSkFQQU4KKworMzgtOTEtRkIgICAoaGV4KQkJWGVub3ggSG9sZGluZyBCVgorMzg5MUZCICAgICAoYmFzZSAxNikJCVhlbm94IEhvbGRpbmcgQlYKKwkJCQlMaW5nZWRpamsgODAKKwkJCQlUcmljaHQgR2VsZGVybGFuZCA0MTk2IEhDCisJCQkJTkVUSEVSTEFORFMKKworMzgtOTUtOTIgICAoaGV4KQkJQmVpamluZyBUZW5keXJvbiBDb3Jwb3JhdGlvbgorMzg5NTkyICAgICAoYmFzZSAxNikJCUJlaWppbmcgVGVuZHlyb24gQ29ycG9yYXRpb24KKwkJCQkxODEwLFRvd2VyIEIsSmluLW1hLEJ1aWxkaW5nLDE3IEVhc3QgUWluZyBIdWEgUm9hZCAKKwkJCQlIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDgzCisJCQkJQ0hJTkEKKworMzgtOUYtODMgICAoaGV4KQkJT1ROIFN5c3RlbXMgTi5WLgorMzg5RjgzICAgICAoYmFzZSAxNikJCU9UTiBTeXN0ZW1zIE4uVi4KKwkJCQlJbmR1c3RyaWVsYWFuIDE3YgorCQkJCUhlcmVudGFscyBPbGVuIDIyNTAKKwkJCQlCRUxHSVVNCisKKzM4LUE4LTUxICAgKGhleCkJCVF1aWNrc2V0IEludGVybmF0aW9uYWwgSW5jCiszOEE4NTEgICAgIChiYXNlIDE2KQkJUXVpY2tzZXQgSW50ZXJuYXRpb25hbCBJbmMKKwkJCQkzNjUwIFdvb2RoZWFkIERyaXZlCisJCQkJTm9ydGhicm9vayBJTCAgNjAwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzM4LUE5LTVGICAgKGhleCkJCUFjdGlmaW8gSW5jCiszOEE5NUYgICAgIChiYXNlIDE2KQkJQWN0aWZpbyBJbmMKKwkJCQkyMjUgV3ltYW4gU3RyZWV0CisJCQkJU3VpdGUgMzAKKwkJCQlXYWx0aGFtIE1BIDAyNDUxCisJCQkJSU5ESUEKKworMzgtQjEtMkQgICAoaGV4KQkJU29ub3Ryb25pYyBOYWdlbCBHbWJICiszOEIxMkQgICAgIChiYXNlIDE2KQkJU29ub3Ryb25pYyBOYWdlbCBHbWJICisJCQkJQmVja2VyLUdvZXJpbmctU3RyLiAxNy0yNQorCQkJCUthcmxzYmFkICA3NjMwNworCQkJCUdFUk1BTlkKKworMzgtQkItMjMgICAoaGV4KQkJT3pWaXNpb24gQW1lcmljYSBMTEMKKzM4QkIyMyAgICAgKGJhc2UgMTYpCQlPelZpc2lvbiBBbWVyaWNhIExMQworCQkJCTQwMCBXZXN0IEN1bW1pbmdzIFBhcmsKKwkJCQlXb2J1cm4gTUEgMDE4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzM4LUJGLTMzICAgKGhleCkJCU5FQyBDQVNJTyBNb2JpbGUgQ29tbXVuaWNhdGlvbnMKKzM4QkYzMyAgICAgKGJhc2UgMTYpCQlORUMgQ0FTSU8gTW9iaWxlIENvbW11bmljYXRpb25zCisJCQkJMTc1MyxTaGltb251bWFiZQorCQkJCU5ha2FoYXJhLWt1CisJCQkJS2F3YXNha2ktc2hpIEthbmFnYXdhIDIxMS04NjY2CisJCQkJSkFQQU4KKworMzgtQzctQkEgICAoaGV4KQkJQ1MgU2VydmljZXMgQ28uLEx0ZC4KKzM4QzdCQSAgICAgKGJhc2UgMTYpCQlDUyBTZXJ2aWNlcyBDby4sTHRkLgorCQkJCUltb24gQkxERyA5NSBFZG9tYWNoaQorCQkJCUNodW9oLWt1CisJCQkJS29iZSBIeW9nbyA2NTAwMDMzCisJCQkJSkFQQU4KKworMzgtQzgtNUMgICAoaGV4KQkJQ2lzY28gU1BWVEcKKzM4Qzg1QyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlNUyA0LlQuNjA3CisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDAxNworCQkJCVVOSVRFRCBTVEFURVMKKworMzgtRDEtMzUgICAoaGV4KQkJRWFzeUlPIENvcnBvcmF0aW9uIFNkbi4gQmhkLgorMzhEMTM1ICAgICAoYmFzZSAxNikJCUVhc3lJTyBDb3Jwb3JhdGlvbiBTZG4uIEJoZC4KKwkJCQlOby4gMzItMiAmYW1wOyAzMi0zLCBKYWxhbiBQdXRlcmkgMi80CisJCQkJQmFuZGFyIFB1dGVyaQorCQkJCVB1Y2hvbmcgU2VsYW5nb3IgNDcxMDAKKwkJCQlNQUxBWVNJQQorCiszOC1ERS02MCAgIChoZXgpCQlNb2hsZW5ob2ZmIEdtYkgKKzM4REU2MCAgICAgKGJhc2UgMTYpCQlNb2hsZW5ob2ZmIEdtYkgKKwkJCQlNdXNldW1zdHJh32UgNTRhIAorCQkJCVNhbHpnaXR0ZXIgTmllZGVyc2FjaHNlbiAzODIyOQorCQkJCUdFUk1BTlkKKworMzgtRTAtOEUgICAoaGV4KQkJTWl0c3ViaXNoaSBFbGVjdHJpYyBDby4KKzM4RTA4RSAgICAgKGJhc2UgMTYpCQlNaXRzdWJpc2hpIEVsZWN0cmljIENvLgorCQkJCTItNy0zIE1hcnVub3VjaGkgQ2hpeW9kYS1rdQorCQkJCVRva3lvICAxMDAtODMxMAorCQkJCUpBUEFOCisKKzM4LUU3LUQ4ICAgKGhleCkJCUhUQyBDb3Jwb3JhdGlvbgorMzhFN0Q4ICAgICAoYmFzZSAxNikJCUhUQyBDb3Jwb3JhdGlvbgorCQkJCU5vLjIzIFhpbmdodWEgUm9hZAorCQkJCVRhb3l1YW4gQ2l0eQorCQkJCVRhb3l1YW4gQ291bnR5ICAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzM4LUU4LURGICAgKGhleCkJCWIgZ21iaCBtZWRpZW4gKyBkYXRlbmJhbmtlbgorMzhFOERGICAgICAoYmFzZSAxNikJCWIgZ21iaCBtZWRpZW4gKyBkYXRlbmJhbmtlbgorCQkJCUt1cmZ1ZXJzdGVuc3RyYXNzZSAyMgorCQkJCUx1ZHdpZ3NidXJnIEJXIDcxNjM2CisJCQkJR0VSTUFOWQorCiszOC1FOS04QyAgIChoZXgpCQlSZWNvIFMucC5BLgorMzhFOThDICAgICAoYmFzZSAxNikJCVJlY28gUy5wLkEuCisJCQkJdmlhIGRlbGwmIzM5O0luZHVzdHJpYSwgOAorCQkJCU1vbnRhbm8gTHVjaW5vIENPIDIyMDcwCisJCQkJSVRBTFkKKworMzgtRUMtRTQgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworMzhFQ0U0ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworMzgtRUUtOUQgICAoaGV4KQkJQW5lZG8gTHRkLgorMzhFRTlEICAgICAoYmFzZSAxNikJCUFuZWRvIEx0ZC4KKwkJCQlIdWVsc21leWVyc3RyLiAzNQorCQkJCUV5ZGVsc3RlZHQgIDQ5NDA2CisJCQkJR0VSTUFOWQorCiszOC1GOC1CNyAgIChoZXgpCQlWMkNPTSBQQVJUSUNJUEFDT0VTIFMuQS4KKzM4RjhCNyAgICAgKGJhc2UgMTYpCQlWMkNPTSBQQVJUSUNJUEFDT0VTIFMuQS4KKwkJCQlSdWEgQ3VuaGEgR2FnbywgNzAwCisJCQkJQ29uanVudG8gMTMxCisJCQkJU++/vW8gUGF1bG8gIDA1NDIxMDAxCisJCQkJQlJBWklMCisKKzM4LUZFLUM1ICAgKGhleCkJCUVsbGlwcyBCLlYuCiszOEZFQzUgICAgIChiYXNlIDE2KQkJRWxsaXBzIEIuVi4KKwkJCQlVcmtob3ZlbnNld2VnIDExCisJCQkJRWluZGhvdmVuIE5vb3JkLUJyYWJhbnQgNTY0MSBLQQorCQkJCU5FVEhFUkxBTkRTCisKKzNDLTAyLUIxICAgKGhleCkJCUNyZWF0aW9uIFRlY2hub2xvZ2llcyBMUAorM0MwMkIxICAgICAoYmFzZSAxNikJCUNyZWF0aW9uIFRlY2hub2xvZ2llcyBMUAorCQkJCTM5MzkgTm9ydGggRnJhc2VyIFdheQorCQkJCUJ1cm5hYnkgQkMgVjVKIDVKMgorCQkJCUNBTkFEQQorCiszQy0wNC1CRiAgIChoZXgpCQlQUkFWSVMgU1lTVEVNUyBDby5MdGQuLCAKKzNDMDRCRiAgICAgKGJhc2UgMTYpCQlQUkFWSVMgU1lTVEVNUyBDby5MdGQuLCAKKwkJCQk0RiwgNUYgSmFleW9vbiBCbGQsIDc1LTMgWWFuZ2phZS1Eb25nLCAKKwkJCQlTZW91bCBTZW9jaG8tR3UgMTM3LTg4OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszQy0wNS1BQiAgIChoZXgpCQlQcm9kdWN0IENyZWF0aW9uIFN0dWRpbworM0MwNUFCICAgICAoYmFzZSAxNikJCVByb2R1Y3QgQ3JlYXRpb24gU3R1ZGlvCisJCQkJNDI1IFdlc3RsYWtlIEF2ZSBOCisJCQkJU2VhdHRsZSBXQSA5ODEwOQorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtMDctNTQgICAoaGV4KQkJQXBwbGUsIEluYy4KKzNDMDc1NCAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtMDktNkQgICAoaGV4KQkJUG93ZXJob3VzZSBEeW5hbWljcworM0MwOTZEICAgICAoYmFzZSAxNikJCVBvd2VyaG91c2UgRHluYW1pY3MKKwkJCQkxIEJyaWRnZSBTdHJlZXQKKwkJCQlOZXd0b24gTUEgMDI0NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLTBGLUMxICAgKGhleCkJCUtCQyBOZXR3b3JrcworM0MwRkMxICAgICAoYmFzZSAxNikJCUtCQyBOZXR3b3JrcworCQkJCTI1NjkxIEF0bGFudGljIE9jZWFuIERyCisJCQkJU3VpdGUgQjMKKwkJCQlMYWtlIEZvcmVzdCBDQSA5MjYzMAorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtMTAtNkYgICAoaGV4KQkJQUxCQUhJVEggVEVDSE5PTE9HSUVTIAorM0MxMDZGICAgICAoYmFzZSAxNikJCUFMQkFISVRIIFRFQ0hOT0xPR0lFUyAKKwkJCQkxNjUsIEtpbmcgQWJkdWxsYWggU2Vjb25kIFN0cmVldAorCQkJCUFtbWFuICAxMTk1MworCQkJCUpPUkRBTgorCiszQy0xOS0xNSAgIChoZXgpCQlHRkkgQ2hyb25vIFRpbWUKKzNDMTkxNSAgICAgKGJhc2UgMTYpCQlHRkkgQ2hyb25vIFRpbWUKKwkJCQkxMjEgcnVlIGRlcyBHdWlsbGVlcworCQkJCUNIQVVSQVkgIDc5MTg1CisJCQkJRlJBTkNFCisKKzNDLTE5LTdEICAgKGhleCkJCUVyaWNzc29uIEFCCiszQzE5N0QgICAgIChiYXNlIDE2KQkJRXJpY3Nzb24gQUIKKwkJCQlUb3JzaGFtbnNnYXRhbiAzNgorCQkJCVN0b2NraG9sbSBTdG9ja2hvbG0gU0UtMTY0IDgwCisJCQkJU1dFREVOCisKKzNDLTFBLTc5ICAgKGhleCkJCUh1YXl1YW4gVGVjaG5vbG9neSBDTy4sTFRECiszQzFBNzkgICAgIChiYXNlIDE2KQkJSHVheXVhbiBUZWNobm9sb2d5IENPLixMVEQKKwkJCQlSMzA4IEJsb2NrIEppbmdtZW5nIEhpZ2gtVGVjaCBCdWlsZGluZyxOTy41LTEgU2hhbmdkaSBFYXN0IFJvYWQsCisJCQkJSGFpZGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCiszQy0xQy1CRSAgIChoZXgpCQlKQURBSyBMTEMKKzNDMUNCRSAgICAgKGJhc2UgMTYpCQlKQURBSyBMTEMKKwkJCQk3Mjc5IFdpbGxpYW0gQmFycnkgQmx2ZAorCQkJCU5vcnRoIFN5cmFjdXNlIE5ZIDEzMjEyCisJCQkJVU5JVEVEIFNUQVRFUworCiszQy0yNi1ENSAgIChoZXgpCQlTb3RlcmEgV2lyZWxlc3MKKzNDMjZENSAgICAgKGJhc2UgMTYpCQlTb3RlcmEgV2lyZWxlc3MKKwkJCQk5NDQ0IFdhcGxlcyBTdHJlZXQKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLTI3LTYzICAgKGhleCkJCVNMRSBxdWFsaXR5IGVuZ2luZWVyaW5nIEdtYkggJmFtcDsgQ28uIEtHCiszQzI3NjMgICAgIChiYXNlIDE2KQkJU0xFIHF1YWxpdHkgZW5naW5lZXJpbmcgR21iSCAmYW1wOyBDby4gS0cKKwkJCQlKb3NlZi1CdWNoaW5nZXItU3RyLiA5CisJCQkJR3JhZmVuYXUgQmF2YXJpYSA5NDQ4MQorCQkJCUdFUk1BTlkKKworM0MtMkQtQjcgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzNDMkRCNyAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZCwgTVM4NzIzCisJCQkJRGFsbGFzIFRleGFzIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiszQy0yRi0zQSAgIChoZXgpCQlTRk9SWkFUTyBDb3JwLgorM0MyRjNBICAgICAoYmFzZSAxNikJCVNGT1JaQVRPIENvcnAuCisJCQkJODYzCisJCQkJQVJBSQorCQkJCUhJTk8tU0hJIFRPS1lPIDE5MS0wMDIyCisJCQkJSkFQQU4KKworM0MtMzYtM0QgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzNDMzYzRCAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1ICA5MDIzMAorCQkJCUZJTkxBTkQKKworM0MtMzgtODggICAoaGV4KQkJQ29ubmVjdFF1ZXN0LCBsbGMKKzNDMzg4OCAgICAgKGJhc2UgMTYpCQlDb25uZWN0UXVlc3QsIGxsYworCQkJCVAuTy4gQm94IDQyNQorCQkJCVdlc3QgU2ltc2J1cnkgQ29ubmVjdGljdXQgMDYwOTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLTM5LUMzICAgKGhleCkJCUpXIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorM0MzOUMzICAgICAoYmFzZSAxNikJCUpXIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCTNBMTcsIE5vLiA1IEhzaW4teWkgUmQuLCBTZWMuIDUKKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworM0MtM0EtNzMgICAoaGV4KQkJQXZheWEsIEluYworM0MzQTczICAgICAoYmFzZSAxNikJCUF2YXlhLCBJbmMKKwkJCQkyMTEgTW91bnQgQWlyeSBSb2FkIAorCQkJCUJhc2tpbmcgUmlkZ2UgTkogMDc5MjAKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLTQzLThFICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiszQzQzOEUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2MDAgTm9ydGggVVMgSGlnaHdheSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtNEEtOTIgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzNDNEE5MiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCiszQy00Qy02OSAgIChoZXgpCQlJbmZpbml0eSBTeXN0ZW0gUy5MLgorM0M0QzY5ICAgICAoYmFzZSAxNikJCUluZmluaXR5IFN5c3RlbSBTLkwuCisJCQkJQ3J0cmEuIE4tSUksIEttIDQ4LDUgUG9sLiBJbmQuIENhYmFuaWxsYXMgZGVsIENhbXBvLCBQYXJjLiAxMkIKKwkJCQlHdWFkYWxhamFyYSAgMTkxNzEKKwkJCQlTUEFJTgorCiszQy00RS00NyAgIChoZXgpCQlFdHJvbmljIEEvUworM0M0RTQ3ICAgICAoYmFzZSAxNikJCUV0cm9uaWMgQS9TCisJCQkJUu+/vWRlbGVkc3ZlaiA5NQorCQkJCVN2ZW5kYm9yZyBTb3V0aCBEZW5tYXJrIDU3MDAKKwkJCQlERU5NQVJLCisKKzNDLTVBLTM3ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzNDNUEzNyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzNDLTVGLTAxICAgKGhleCkJCVN5bmVyY2hpcCBDby4sIEx0ZC4KKzNDNUYwMSAgICAgKGJhc2UgMTYpCQlTeW5lcmNoaXAgQ28uLCBMdGQuCisJCQkJYy9vIFN5bmVyY2hpcCBVU0EgQ29ycC4KKwkJCQk4ODAgRS4gQXJxdWVzIEF2ZS4KKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzNDLTYyLTAwICAgKGhleCkJCVNhbXN1bmcgZWxlY3Ryb25pY3MgQ08uLCBMVEQKKzNDNjIwMCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIGVsZWN0cm9uaWNzIENPLiwgTFRECisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIFllb25ndG9uZy1ndSwKKwkJCQlTdXdvbi1DaXR5IEd5ZW9uZ2dpLWRvIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworM0MtNjItNzggICAoaGV4KQkJU0hFTlpIRU4gSkVUTkVUIFRFQ0hOT0xPR1kgQ08uLExURC4KKzNDNjI3OCAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBKRVRORVQgVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCVJvb20gNDAzLDR0aCBmbG9vcixRaW5naHVhIEluZm9ybWF0aW9uIEJ1aWxkaW5nLEtleXVhbiBSb2FkLE5vcnRoIERpc3RyaWN0IG9mIFRlY2gtUGFyayxOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzNDLTY3LTJDICAgKGhleCkJCVNjaW92aWQgSW5jLgorM0M2NzJDICAgICAoYmFzZSAxNikJCVNjaW92aWQgSW5jLgorCQkJCTM4NyBTIFNpbHZlcmJyb29rIERyCisJCQkJQW5haGVpbSBDQSA5MjgwNworCQkJCVVOSVRFRCBTVEFURVMKKworM0MtNkEtN0QgICAoaGV4KQkJTmlpZ2F0YSBQb3dlciBTeXN0ZW1zIENvLiwgTHRkLgorM0M2QTdEICAgICAoYmFzZSAxNikJCU5paWdhdGEgUG93ZXIgU3lzdGVtcyBDby4sIEx0ZC4KKwkJCQk3LTI2LFRhdHN1bWkgMy1DaG9tZQorCQkJCUtvdG8ta3UgVE9LWU8gMTM1LTAwNTMKKwkJCQlKQVBBTgorCiszQy02Ri00NSAgIChoZXgpCQlGaWJlcnBybyBJbmMuCiszQzZGNDUgICAgIChiYXNlIDE2KQkJRmliZXJwcm8gSW5jLgorCQkJCTU5LTQgSmFuZy1kb25nLCBZdXNvbmctZ3UKKwkJCQlEZWFqb24gMzA1LTM0MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCiszQy03MC01OSAgIChoZXgpCQlNYWtlckJvdCBJbmR1c3RyaWVzCiszQzcwNTkgICAgIChiYXNlIDE2KQkJTWFrZXJCb3QgSW5kdXN0cmllcworCQkJCTg3IDNyZCBBdmVudWUKKwkJCQlCcm9va2x5biBOWSAxMTIxNworCQkJCVVOSVRFRCBTVEFURVMKKworM0MtNzQtMzcgICAoaGV4KQkJUklNCiszQzc0MzcgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c4CisJCQkJQ0FOQURBCisKKzNDLTc1LTRBICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCiszQzc1NEEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCiszQy03RC1CMSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworM0M3REIxICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCiszQy04MS1EOCAgIChoZXgpCQlTQUdFTUNPTSBTQVMKKzNDODFEOCAgICAgKGJhc2UgMTYpCQlTQUdFTUNPTSBTQVMKKwkJCQkyNTAgUk9VVEUgREUgTCYjMzk7RU1QRVJFVVIKKwkJCQlSVUVJTCBNQUxNQUlTT04gQ0VERVggSURGIDkyODQ4CisJCQkJRlJBTkNFCisKKzNDLThCLUZFICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzNDOEJGRSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzNDLTkxLTU3ICAgKGhleCkJCUhhbmd6aG91IFl1bG9uZyBDb25tdW5pY2F0aW9uIENvLixMdGQKKzNDOTE1NyAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBZdWxvbmcgQ29ubXVuaWNhdGlvbiBDby4sTHRkCisJCQkJNUYgQnVpbGRpbmcgMixOby41NixMaXVoZSBSb2FkLFhpaHUgRGlzdHJpY3QKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwMjMKKwkJCQlDSElOQQorCiszQy05MS03NCAgIChoZXgpCQlBTE9ORyBDT01NVU5JQ0FUSU9OIFRFQ0hOT0xPR1kKKzNDOTE3NCAgICAgKGJhc2UgMTYpCQlBTE9ORyBDT01NVU5JQ0FUSU9OIFRFQ0hOT0xPR1kKKwkJCQk2QSxCMSBCdWlkaW5nLCBEaWdpdGFsIFRlY2ggWm9uZSwgCisJCQkJSGlnaC1UZWNoIFBhcmsoU291dGgpLCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiszQy05Ny0wRSAgIChoZXgpCQlXaXN0cm9uIEluZm9Db21tKEt1bnNoYW4pQ28uLEx0ZC4KKzNDOTcwRSAgICAgKGJhc2UgMTYpCQlXaXN0cm9uIEluZm9Db21tKEt1bnNoYW4pQ28uLEx0ZC4KKwkJCQkxNjgjIEZpcnN0IEF2ZW5jZSwgCisJCQkJS3Vuc2hhbiBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJS3Vuc2hhbiBKaWFuZ1N1IDIxNTMwMAorCQkJCUNISU5BCisKKzNDLTk4LUJGICAgKGhleCkJCVF1ZXN0IENvbnRyb2xzLCBJbmMuCiszQzk4QkYgICAgIChiYXNlIDE2KQkJUXVlc3QgQ29udHJvbHMsIEluYy4KKwkJCQkyMDggOXRoIFN0cmVldCBEci4gV2VzdAorCQkJCVBhbG1ldHRvIEZMIDM0MjIxCisJCQkJVU5JVEVEIFNUQVRFUworCiszQy05OS1GNyAgIChoZXgpCQlMYW5zZW50ZWNobm9sb2d5IEFCCiszQzk5RjcgICAgIChiYXNlIDE2KQkJTGFuc2VudGVjaG5vbG9neSBBQgorCQkJCVL2cmt1bGxzduRnZW4gNAorCQkJCUhhbG1zdGFkICAzMDI0MQorCQkJCVNXRURFTgorCiszQy05Ri04MSAgIChoZXgpCQlTaGVuemhlbiBDQVRJQyBCaXQgQ29tbXVuaWNhdGlvbnMgVGVjaG5vbG9neSBDby4sTHRkCiszQzlGODEgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQ0FUSUMgQml0IENvbW11bmljYXRpb25zIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCWluICBOYW5zaGFuIERpc3RyaWN0LFNoZW56aGVuIFNvZnR3YXJlIHBhcmsgUm9hZCAxMCBpbiBSb29tIDIwMgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCiszQy1BMy0xNSAgIChoZXgpCQlCbGVzcyBJbmZvcm1hdGlvbiAmIENvbW11bmljYXRpb25zIENvLiwgTHRkCiszQ0EzMTUgICAgIChiYXNlIDE2KQkJQmxlc3MgSW5mb3JtYXRpb24gJiBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZAorCQkJCSM2NC0xLCBXb25oeW9ybyAzLWdhLCBZb25nc2FuLWd1LAorCQkJCVNlb3VsICAxNDAtODQ4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzNDLUE3LTJCICAgKGhleCkJCU1SViBDb21tdW5pY2F0aW9ucyAoTmV0d29ya3MpIExURAorM0NBNzJCICAgICAoYmFzZSAxNikJCU1SViBDb21tdW5pY2F0aW9ucyAoTmV0d29ya3MpIExURAorCQkJCVAuTyBCb3ggNjE0CisJCQkJWW9rbmVhbSAgIDIwNjkyCisJCQkJSVNSQUVMCisKKzNDLUE5LUY0ICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorM0NBOUY0ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworM0MtQjEtNUIgICAoaGV4KQkJQXZheWEsIEluYworM0NCMTVCICAgICAoYmFzZSAxNikJCUF2YXlhLCBJbmMKKwkJCQkyMTEgTW91bnQgQWlyeSBSb2FkCisJCQkJQmFza2luZyBSaWRnZSBOSiAwNzkyMC0yMzExCisJCQkJVU5JVEVEIFNUQVRFUworCiszQy1CMS03RiAgIChoZXgpCQlXYXR0d2F0Y2hlcnMgUHR5IExkCiszQ0IxN0YgICAgIChiYXNlIDE2KQkJV2F0dHdhdGNoZXJzIFB0eSBMZAorCQkJCTIyIFdvb2RidXJ5IFJkIFN0LiBJdmVzCisJCQkJU3lkbmV5IE5TVyAyMDc1CisJCQkJQVVTVFJBTElBCisKKzNDLUI4LTdBICAgKGhleCkJCVBSSVZBVEUKKzNDQjg3QSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorM0MtQjktQTYgICAoaGV4KQkJQmVsZGVuIERldXRzY2hsYW5kIEdtYkgKKzNDQjlBNiAgICAgKGJhc2UgMTYpCQlCZWxkZW4gRGV1dHNjaGxhbmQgR21iSAorCQkJCVN0dXR0Z2FydGVyIFN0cmHfZSA0NS01MQorCQkJCU5lY2thcnRlbnpsaW5nZW4gIDcyNjU0CisJCQkJR0VSTUFOWQorCiszQy1CRC1EOCAgIChoZXgpCQlMRyBFTEVDVFJPTklDUyBJTkMKKzNDQkREOCAgICAgKGJhc2UgMTYpCQlMRyBFTEVDVFJPTklDUyBJTkMKKwkJCQkxOS0xLCBDSEVPTkdITy1SSSwgSklOV0ktTVlFT04KKwkJCQlQWUVPTkdUQUVLIEdZRU9OR0dJLURPIDQ1MS03MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworM0MtQzAtQzYgICAoaGV4KQkJZCZhbXA7YiBhdWRpb3RlY2huaWsgR21iSAorM0NDMEM2ICAgICAoYmFzZSAxNikJCWQmYW1wO2IgYXVkaW90ZWNobmlrIEdtYkgKKwkJCQlFdWdlbiBBZG9sZmYgU3RyIDEzNAorCQkJCUJhY2tuYW5nIEJhZGVuIFd1ZXJ0dGVtYmVyZyA3MTUyMgorCQkJCUdFUk1BTlkKKworM0MtQzEtRjYgICAoaGV4KQkJTWVsYW5nZSBTeXN0ZW1zIFB2dC4gTHRkLgorM0NDMUY2ICAgICAoYmFzZSAxNikJCU1lbGFuZ2UgU3lzdGVtcyBQdnQuIEx0ZC4KKwkJCQk0LzEsIDd0aCBDcm9zcywgS3VtYXJhcGFyayBXZXN0CisJCQkJQmFuZ2Fsb3JlIEthcm5hdGFrYSA1NjAwMjAKKwkJCQlJTkRJQQorCiszQy1DOS05RSAgIChoZXgpCQlIdWl5YW5nIFRlY2hub2xvZ3kgQ28uLCBMdGQKKzNDQzk5RSAgICAgKGJhc2UgMTYpCQlIdWl5YW5nIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQkyMkQgNyBCbG9jayBaaG9uZ2h1aU5ld2NpdHkKKwkJCQlYaWFvYmlhbiBBdmVudWUgQ2hhbmdhbiBUb3duCisJCQkJRG9uZ2d1YW4gR3Vhbmdkb25nIDUyMzg0OQorCQkJCUNISU5BCisKKzNDLUNFLTczICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzNDQ0U3MyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCiszQy1EMC1GOCAgIChoZXgpCQlBcHBsZSwgSW5jLgorM0NEMEY4ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtRDEtNkUgICAoaGV4KQkJVGVsZXBvd2VyIENvbW11bmljYXRpb24gQ28uLCBMdGQKKzNDRDE2RSAgICAgKGJhc2UgMTYpCQlUZWxlcG93ZXIgQ29tbXVuaWNhdGlvbiBDby4sIEx0ZAorCQkJCTUvRixab25naGUgQnVpbGRpbmcsIEhhbnRpYW4gVGVjaG5vbG9neSBUb3duLEd1aXBpbmcgUkQsTmFuaGFpIERpc3RyaWN0LEYKKwkJCQlGb3NoYW4gQ2l0eSBHdWFuZ2RvbmcgNTI4MjUxCisJCQkJQ0hJTkEKKworM0MtRDktMkIgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzNDRDkyQiAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlNYWlsY29kZSA2LjMuMDQ5CisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtREYtMUUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworM0NERjFFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworM0MtRTUtQTYgICAoaGV4KQkJSGFuZ3pob3UgSDNDIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKzNDRTVBNiAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBIM0MgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCU9yaWVudGFsIEVsZWN0cm9uaWMgQmxkLiwgTk8uMixDaHVhbmd5ZSBSb2FkCisJCQkJU2hhbmcgRGkgSW5mb3JtYXRpb24gSW5kdXN0cnkgQmFzZSwgSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzNDLUU1LUI0ICAgKGhleCkJCUtJREFTRU4gSU5EVVNUUklBIEUgQ09NRVJDSU8gREUgQU5URU5BUyBMVERBCiszQ0U1QjQgICAgIChiYXNlIDE2KQkJS0lEQVNFTiBJTkRVU1RSSUEgRSBDT01FUkNJTyBERSBBTlRFTkFTIExUREEKKwkJCQlBViBTSU5DTEVSIFNBTUJBVFRJLCAxOTQ1CisJCQkJSkFSRElNIEJFUlRJT0dBCisJCQkJTUFSSU5HQSBQQVJBTkEgODcwNTUtMDIwCisJCQkJQlJBWklMCisKKzNDLUU2LTI0ICAgKGhleCkJCUxHIERpc3BsYXkgCiszQ0U2MjQgICAgIChiYXNlIDE2KQkJTEcgRGlzcGxheSAKKwkJCQk5dGgsIEZsLiwgTEcgVSsgYnVpbGRpbmcsIDY1LTIyOCwgSGFuZ2FuZ3JvLCAzLWdhLCBZb25nc2FuLWd1CisJCQkJU2VvdWwgIDE0MC03MTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworM0MtRUEtNEYgICAoaGV4KQkJMldpcmUKKzNDRUE0RiAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQYXJrd2F5CisJCQkJU2FuIEpvc2UgIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCiszQy1FQS1GQiAgIChoZXgpCQlOU0UgQUcKKzNDRUFGQiAgICAgKGJhc2UgMTYpCQlOU0UgQUcKKwkJCQlCcmVtZ2FydGVyc3RyYXNzZSA1NAorCQkJCVdvaGxlbiBBRyA1NjEwCisJCQkJU1dJVFpFUkxBTkQKKworM0MtRjMtOTIgICAoaGV4KQkJVmlydHVhbHRlay4gQ28uIEx0ZAorM0NGMzkyICAgICAoYmFzZSAxNikJCVZpcnR1YWx0ZWsuIENvLiBMdGQKKwkJCQkxMkYsIFNoaW5oYW5EbSBCbGRnLiwgCisJCQkJMjUsIE1hcG8tZGFlcm8sIE1hcG8tZ3UKKwkJCQlTZW91bCAxMjEtNzA4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzNDLUY1LTJDICAgKGhleCkJCURTUEVDSUFMSVNUUyBHbWJICiszQ0Y1MkMgICAgIChiYXNlIDE2KQkJRFNQRUNJQUxJU1RTIEdtYkgKKwkJCQlLYWlzZXJpbi1BdWd1c3RhLUFsbGVlIDEwLTExCisJCQkJQmVybGluICAxMDU1MworCQkJCUdFUk1BTlkKKworM0MtRjctMkEgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzNDRjcyQSAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU3MAorCQkJCUZJTkxBTkQKKworNDAtMDEtQzYgICAoaGV4KQkJM0NPTSBFVVJPUEUgTFRECis0MDAxQzYgICAgIChiYXNlIDE2KQkJM0NPTSBFVVJPUEUgTFRECisJCQkJUGVvcGxlYnVpbGRpbmcgMgorCQkJCU1heWxhbmRzIEF2ZW51ZQorCQkJCUhlbWVsIEhlbXBzdGVhZCBIZXJ0cyBIUDIgNE5XCisJCQkJVU5JVEVEIEtJTkdET00KKworNDAtMDQtMEMgICAoaGV4KQkJQSZUCis0MDA0MEMgICAgIChiYXNlIDE2KQkJQSZUCisJCQkJIzQxMSwgV2lsbCBUb3duLCA0MDItMworCQkJCVNhbmctRG9uZywgV29ubWktR3UsIAorCQkJCUJ1Y2hlb24tU2kgR3llb25nZ2ktRG8gNDIwLTgxNAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0MC0wRS02NyAgIChoZXgpCQlUcmVtb2wgTHRkLgorNDAwRTY3ICAgICAoYmFzZSAxNikJCVRyZW1vbCBMdGQuCisJCQkJNiBUb2xlZG8gc3RyLgorCQkJCVZlbGlrbyBUdXJub3ZvICA1MDAwCisJCQkJQlVMR0FSSUEKKworNDAtMTItRTQgICAoaGV4KQkJQ29tcGFzcy1FT1MKKzQwMTJFNCAgICAgKGJhc2UgMTYpCQlDb21wYXNzLUVPUworCQkJCTcgR2lib3JlaSBJc3JhZWwKKwkJCQlOYXRhbnlhICA0MjUwNAorCQkJCUlTUkFFTAorCis0MC0xMy1EOSAgIChoZXgpCQlHbG9iYWwgRVMKKzQwMTNEOSAgICAgKGJhc2UgMTYpCQlHbG9iYWwgRVMKKwkJCQlTaW5pbeRlbnRpZSA4IGIKKwkJCQlFc3BvbyAgMDI2MzEKKwkJCQlGSU5MQU5ECisKKzQwLTE1LTk3ICAgKGhleCkJCVByb3RlY3QgQW1lcmljYSwgSW5jLgorNDAxNTk3ICAgICAoYmFzZSAxNikJCVByb3RlY3QgQW1lcmljYSwgSW5jLgorCQkJCTUxMDAgTiBJSC0zNQorCQkJCVN1aXRlIEIKKwkJCQlSb3VuZCBSb2NrIFRYIDc4NjgxCisJCQkJVU5JVEVEIFNUQVRFUworCis0MC0xNi05RiAgIChoZXgpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKzQwMTY5RiAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQkxLTZGLCBCdWlsZGluZyAyLCBQaW5nc2hhbmRheXVhbiBJbmR1c3RyaWFsLCBTb3V0aCBab25lLAorCQkJCVRhb3l1YW4gU3RyZWV0LCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworNDAtMTYtRkEgICAoaGV4KQkJRUtNIE1ldGVyaW5nCis0MDE2RkEgICAgIChiYXNlIDE2KQkJRUtNIE1ldGVyaW5nCisJCQkJMzYzIEJlcmtlbGV5IFdheQorCQkJCVNhbnRhIENydXogQ0EgOTUwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLTE4LUIxICAgKGhleCkJCUFlcm9oaXZlIE5ldHdvcmtzIEluYy4KKzQwMThCMSAgICAgKGJhc2UgMTYpCQlBZXJvaGl2ZSBOZXR3b3JrcyBJbmMuCisJCQkJMzMwIEdpYnJhbHRhciBEcml2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworNDAtMTgtRDcgICAoaGV4KQkJV3lsZSBUZWxlbWV0cnkgYW5kIERhdGEgU3lzdGVtcworNDAxOEQ3ICAgICAoYmFzZSAxNikJCVd5bGUgVGVsZW1ldHJ5IGFuZCBEYXRhIFN5c3RlbXMKKwkJCQk0NDQxNyBQZWNhbiBDVAorCQkJCUNhbGlmb3JuaWEgTUQgMjA2MTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLTFELTU5ICAgKGhleCkJCUJpb21ldHJpYyBBc3NvY2lhdGVzLCBMUAorNDAxRDU5ICAgICAoYmFzZSAxNikJCUJpb21ldHJpYyBBc3NvY2lhdGVzLCBMUAorCQkJCTk0NzUgRGVlcmVjbyBSZC4KKwkJCQlTdWl0ZSAzMDQKKwkJCQlUaW1vbml1bSBNRCAyMTA5MworCQkJCVVOSVRFRCBTVEFURVMKKworNDAtMjItRUQgICAoaGV4KQkJRGlnaXRhbCBQcm9qZWN0aW9uIEx0ZAorNDAyMkVEICAgICAoYmFzZSAxNikJCURpZ2l0YWwgUHJvamVjdGlvbiBMdGQKKwkJCQlHcmVlbnNpZGUgV2F5CisJCQkJTWlkZGxldG9uCisJCQkJTWFuY2hlc3RlciBMYW5jcyBNMjQgMVhYCisJCQkJVU5JVEVEIEtJTkdET00KKworNDAtMjUtQzIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis0MDI1QzIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis0MC0yQi1BMSAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorNDAyQkExICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKKzQwLTJDLUY0ICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorNDAyQ0Y0ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTGFuZSAzNTEsIFRhaXBpbmcgUmQuIFNlYy4gMSwgVHNhbyBUdWVuLCAKKwkJCQlOYW4tVG91IEhzaWVuLCAgNTQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0MC0zMC0wNCAgIChoZXgpCQlBcHBsZSwgSW5jLgorNDAzMDA0ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis0MC0zMy02QyAgIChoZXgpCQlHb2RyZWogJiBCb3ljZSBNZmcuIGNvLiBsdGQKKzQwMzM2QyAgICAgKGJhc2UgMTYpCQlHb2RyZWogJiBCb3ljZSBNZmcuIGNvLiBsdGQKKwkJCQlQU1MgVEVDSCBDRUxMLCAyTkQgRkxPT1IsIFBMQU5UIDE3LCBTRUNVUklUWSBTT0xVVElPTlMgRElWSVNJT04KKwkJCQlHT0RSRUogJiBCT1lDRSBNRkcuIENPLiBMVEQsIFZJS0hST0xJIChFQVNUKQorCQkJCU1VTUJBSSBNQUhBUkFTSFRSQSA0MDAwNzkKKwkJCQlJTkRJQQorCis0MC0zNy1BRCAgIChoZXgpCQlNYWNybyBJbWFnZSBUZWNobm9sb2d5LCBJbmMuCis0MDM3QUQgICAgIChiYXNlIDE2KQkJTWFjcm8gSW1hZ2UgVGVjaG5vbG9neSwgSW5jLgorCQkJCUVhc3QgQmxkZy4sIDZ0aCBGbG9vciwgSVQgVmVudHVyZSBUb3dlciwKKwkJCQk3OCBHYXJha2Jvbi1Eb25nLCBTb25ncGEtR3UsCisJCQkJU2VvdWwgIDEzOC05NTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNDAtM0MtRkMgICAoaGV4KQkJQXBwbGUsIEluYy4KKzQwM0NGQyAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgaW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNDAtNDAtMjIgICAoaGV4KQkJWklWCis0MDQwMjIgICAgIChiYXNlIDE2KQkJWklWCisJCQkJUGFycXVlIFRlY25vbPNnaWNvLCAyMTAKKwkJCQlaQU1VRElPIFZJWkNBWUEgNDgxNzAKKwkJCQlTUEFJTgorCis0MC00MC02QiAgIChoZXgpCQlJY29tZXJhCis0MDQwNkIgICAgIChiYXNlIDE2KQkJSWNvbWVyYQorCQkJCVZpa2luZ3NnYXRhbiAzCisJCQkJR/Z0ZWJvcmcgIDQxMTA0CisJCQkJU1dFREVOCisKKzQwLTRBLTAzICAgKGhleCkJCVp5WEVMIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCis0MDRBMDMgICAgIChiYXNlIDE2KQkJWnlYRUwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKwkJCQlOby42IElubm92YXRpb24gUm9hZCBJSQorCQkJCVNjaWVuY2UgUGFyaworCQkJCUhzaW4tQ2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQwLTRELThFICAgKGhleCkJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKzQwNEQ4RSAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworNDAtNTAtRTAgICAoaGV4KQkJTWlsdG9uIFNlY3VyaXR5IEdyb3VwIExMQworNDA1MEUwICAgICAoYmFzZSAxNikJCU1pbHRvbiBTZWN1cml0eSBHcm91cCBMTEMKKwkJCQkxMTEgTm9ydGggSGFyYm9yIEJsdmQKKwkJCQlTdWl0ZSBECisJCQkJRnVsbGVydG9uIENBIDkyODMyCisJCQkJVU5JVEVEIFNUQVRFUworCis0MC01Mi0wRCAgIChoZXgpCQlQaWNvIFRlY2hub2xvZ3kKKzQwNTIwRCAgICAgKGJhc2UgMTYpCQlQaWNvIFRlY2hub2xvZ3kKKwkJCQlKYW1lcyBIb3VzZSwgTWFybGJvcm91Z2ggUm9hZAorCQkJCUNvbG13b3J0aCBCdXNpbmVzcyBQYXJrCisJCQkJU3QgTmVvdHMgQ2FtYnJpZGdlc2hpcmUgIFBFMTkgOFlQCisJCQkJVU5JVEVEIEtJTkdET00KKworNDAtNTUtMzkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNDA1NTM5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNDAtNUEtOUIgICAoaGV4KQkJQU5PVk8KKzQwNUE5QiAgICAgKGJhc2UgMTYpCQlBTk9WTworCQkJCVpJIGRlIEJyYWNoZXV4IAorCQkJCTE2LCBSdWUgSm9zZXBoIEN1Z25vdAorCQkJCUJFQVVWQUlTICA2MDAwMAorCQkJCUZSQU5DRQorCis0MC01Ri1CRSAgIChoZXgpCQlSSU0KKzQwNUZCRSAgICAgKGJhc2UgMTYpCQlSSU0KKwkJCQkyOTUgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCAzVzgKKwkJCQlDQU5BREEKKworNDAtNUYtQzIgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzQwNUZDMiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworNDAtNjAtNUEgICAoaGV4KQkJSGF3a2V5ZSBUZWNoIENvLiBMdGQKKzQwNjA1QSAgICAgKGJhc2UgMTYpCQlIYXdrZXllIFRlY2ggQ28uIEx0ZAorCQkJCTJGLCBOby4gNzU4IENodW5nIENoZW5nIFJvYWQsIENodW5nIEhlCisJCQkJTmV3IFRhaXBlaSAgMjM1NTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQwLTYxLTg2ICAgKGhleCkJCU1JQ1JPLVNUQVIgSU5UJ0wgQ08uLExURAorNDA2MTg2ICAgICAoYmFzZSAxNikJCU1JQ1JPLVNUQVIgSU5UJ0wgQ08uLExURAorCQkJCU5vLjY5LExpLURlIFN0CisJCQkJSnVuZy1IbyBDaXR5IFRhaXBlaSBIc2llbiAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQwLTYxLThFICAgKGhleCkJCVN0ZWxsYS1HcmVlbiBDbworNDA2MThFICAgICAoYmFzZSAxNikJCVN0ZWxsYS1HcmVlbiBDbworCQkJCTEtNS0xNiBFZG9ib3JpLCBOaXNoaS1rdQorCQkJCU9zYWthICA1NTAtMDAwMgorCQkJCUpBUEFOCisKKzQwLTY2LTdBICAgKGhleCkJCW1lZGlvbGEgLSBjb25uZWN0ZWQgbGl2aW5nIEFHCis0MDY2N0EgICAgIChiYXNlIDE2KQkJbWVkaW9sYSAtIGNvbm5lY3RlZCBsaXZpbmcgQUcKKwkJCQlOb2JlbHJpbmcgMjYKKwkJCQlGcmFua2Z1cnQgYW0gTWFpbiBIZXNzZW4gNjA1OTgKKwkJCQlHRVJNQU5ZCisKKzQwLTZBLUFCICAgKGhleCkJCVJJTQorNDA2QUFCICAgICAoYmFzZSAxNikJCVJJTQorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDVSOQorCQkJCUNBTkFEQQorCis0MC02Qy04RiAgIChoZXgpCQlBcHBsZSwgSW5jLgorNDA2QzhGICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis0MC03MC00QSAgIChoZXgpCQlQb3dlciBJZGVhIFRlY2hub2xvZ3kgTGltaXRlZAorNDA3MDRBICAgICAoYmFzZSAxNikJCVBvd2VyIElkZWEgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJMTQwMUEsIE1pbnRhaSBCdWlsZGluZywgV2VuWGluIDUgUm9hZCwgU2hlblpoZW4sIFBSQworCQkJCUd1YW5nIERvbmcgU2hlbiBaaGVuIDUxODA1NAorCQkJCUNISU5BCisKKzQwLTcwLTc0ICAgKGhleCkJCUxpZmUgVGVjaG5vbG9neSAoQ2hpbmEpIENvLiwgTHRkCis0MDcwNzQgICAgIChiYXNlIDE2KQkJTGlmZSBUZWNobm9sb2d5IChDaGluYSkgQ28uLCBMdGQKKwkJCQlOby4xLCAyRiwgTmFuc2hhbiBEaWdpdGFsIEN1bHR1cmUgSW5kdXN0cmlhbCBiYXNlIChFYXN0IFRvd2VyICBQb2RpdW0pIDEwMTI4IFNoZW5uYW4gQmx2ZCwgTmFuc2hhbiBEaXN0LgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCis0MC03Qi0xQiAgIChoZXgpCQlNZXR0bGUgTmV0d29ya3MgSW5jLgorNDA3QjFCICAgICAoYmFzZSAxNikJCU1ldHRsZSBOZXR3b3JrcyBJbmMuCisJCQkJMTExIE4uIE1hcmtldCBTdCBTVEUgMzAwCisJCQkJU2FuIEpvc2UgIENBIDk1MTEzCisJCQkJVU5JVEVEIFNUQVRFUworCis0MC04My1ERSAgIChoZXgpCQlNb3Rvcm9sYQorNDA4M0RFICAgICAoYmFzZSAxNikJCU1vdG9yb2xhCisJCQkJT25lIE1vdG9yb2xhIFBsYXphCisJCQkJSG9sdHN2aWxsZSBOWSAxMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworNDAtODQtOTMgICAoaGV4KQkJQ2xhdmlzdGVyIEFCCis0MDg0OTMgICAgIChiYXNlIDE2KQkJQ2xhdmlzdGVyIEFCCisJCQkJU2pvZ2F0YW4gNkoKKwkJCQlPcm5za29sZHN2aWsgIDg5MTYwCisJCQkJU1dFREVOCisKKzQwLTg4LUUwICAgKGhleCkJCUJlaWppbmcgRXJlbmViZW4gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBMaW1pdGVkIFNoZW56aGVuIEJyYW5jaAorNDA4OEUwICAgICAoYmFzZSAxNikJCUJlaWppbmcgRXJlbmViZW4gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBMaW1pdGVkIFNoZW56aGVuIEJyYW5jaAorCQkJCVJvb20gMTRBLCBCdWlsZGluZyBBLCBIb25nbG9uZyBDZW50cmFsIFBsYXphLCBOby4zMDAxLEhlcGluZyBSb2FkLCBMdW9odSBEaXN0cmljdCwgU2hlbnpoZW4gQ2l0eQorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDEKKwkJCQlDSElOQQorCis0MC04QS05QSAgIChoZXgpCQlUSVRFTkcgQ08uLCBMdGQuCis0MDhBOUEgICAgIChiYXNlIDE2KQkJVElURU5HIENPLiwgTHRkLgorCQkJCTdGbC4gU2hpbmRvIEIvRCAxMCBHYXJhay1kb25nCisJCQkJU29uZ3BhLWd1CisJCQkJU2VvdWwgIDEzOC0xNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNDAtOEItMDcgICAoaGV4KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMgCis0MDhCMDcgICAgIChiYXNlIDE2KQkJQWN0aW9udGVjIEVsZWN0cm9uaWNzLCBJbmMgCisJCQkJNzYwIE5vcnRoIE1hcnkgQXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCis0MC04Qi1GNiAgIChoZXgpCQlTaGVuemhlbiBUQ0wgTmV3IFRlY2hub2xvZ3kgQ287IEx0ZC4KKzQwOEJGNiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBUQ0wgTmV3IFRlY2hub2xvZ3kgQ287IEx0ZC4KKwkJCQlUQ0wgQnVpbGRpbmcsICM1IENlbnRyYWwgTmFuaGFpIFJvYWQsIE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4sIEd1YW5nZG9uZywgIDUxODA2NworCQkJCUNISU5BCisKKzQwLTk1LTU4ICAgKGhleCkJCUFpc2lubyBDb3Jwb3JhdGlvbgorNDA5NTU4ICAgICAoYmFzZSAxNikJCUFpc2lubyBDb3Jwb3JhdGlvbgorCQkJCU5vLjE4QSwgWGluZ3NoaWtvdSBSb2FkLAorCQkJCUhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAxOTUKKwkJCQlDSElOQQorCis0MC05Ny1EMSAgIChoZXgpCQlCSyBFbGVjdHJvbmljcyBjYworNDA5N0QxICAgICAoYmFzZSAxNikJCUJLIEVsZWN0cm9uaWNzIGNjCisJCQkJMTUwIFN3YWFyZGxlbGllIEF2ZQorCQkJCVRoZSBXaWxsb3dzCisJCQkJUHJldG9yaWEgR2F1dGVuZyAwMTg0CisJCQkJU09VVEggQUZSSUNBCisKKzQwLTk4LTRDICAgKGhleCkJCUNhc2Fjb20gU29sdXRpb25zIEFHCis0MDk4NEMgICAgIChiYXNlIDE2KQkJQ2FzYWNvbSBTb2x1dGlvbnMgQUcKKwkJCQlCYWRlbmVyc3RhcnNzZSA1NTEKKwkJCQladWVyaWNoICA4MDQ2CisJCQkJU1dJVFpFUkxBTkQKKworNDAtOTgtNEUgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzQwOTg0RSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworNDAtOTgtN0IgICAoaGV4KQkJQWlzaW5vIENvcnBvcmF0aW9uCis0MDk4N0IgICAgIChiYXNlIDE2KQkJQWlzaW5vIENvcnBvcmF0aW9uCisJCQkJTm8uMTggQSxYaW5nc2hpa291IFJvYWQsSGFpZGlhbiBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAxOTUKKwkJCQlDSElOQQorCis0MC05Ri1DNyAgIChoZXgpCQlCQUVLQ0hVTiBFTkMgQ28uLCBMdGQuCis0MDlGQzcgICAgIChiYXNlIDE2KQkJQkFFS0NIVU4gRU5DIENvLiwgTHRkLgorCQkJCTJGLCAzMi02LCBCZW9tYmFrLWRvbmcKKwkJCQlTb3NhLWd1CisJCQkJQnVjaGVvbi1zaSBHeWVvbmdnaS1kbyA0MjItODA0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzQwLUE2LUE0ICAgKGhleCkJCVBhc3NpdlN5c3RlbXMgTHRkCis0MEE2QTQgICAgIChiYXNlIDE2KQkJUGFzc2l2U3lzdGVtcyBMdGQKKwkJCQlNZWR3YXkgSG91c2UKKwkJCQlOZXdidXJ5IEJ1c2luZXNzIFBhcmsKKwkJCQlOZXdidXJ5IEJlcmtzIFJHMTQgMlBaCisJCQkJVU5JVEVEIEtJTkdET00KKworNDAtQTYtRDkgICAoaGV4KQkJQXBwbGUsIEluYy4KKzQwQTZEOSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNDAtQUMtOEQgICAoaGV4KQkJRGF0YSBNYW5hZ2VtZW50LCBJbmMuCis0MEFDOEQgICAgIChiYXNlIDE2KQkJRGF0YSBNYW5hZ2VtZW50LCBJbmMuCisJCQkJMzMyMiBMb29wIDMwNgorCQkJCVNhbiBBbmdlbG8gVGV4YXMgNzY5MDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLUIyLUM4ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworNDBCMkM4ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCUNBUlJFVEVSQSBCQVNFIEFFUkVBICMgNTg1MAorCQkJCVphcG9wYW4gSmFsaXNjbyA0NDEzMAorCQkJCU1FWElDTworCis0MC1CMy1GQyAgIChoZXgpCQlMb2dpdGFsIENvLiBMaW1pdGVkIAorNDBCM0ZDICAgICAoYmFzZSAxNikJCUxvZ2l0YWwgQ28uIExpbWl0ZWQgCisJCQkJUm0gOTAxLTkwMiwgOS9GLCBOYXRoYW4gQ2VudHJlLCAKKwkJCQk1ODBHLUsgTmF0aGFuIFJvYWQsIE1vbmdrb2ssIAorCQkJCUtvd2xvb24gIAorCQkJCUhPTkcgS09ORworCis0MC1CNy1GMyAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorNDBCN0YzICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworNDAtQkEtNjEgICAoaGV4KQkJQXJpbWEgQ29tbXVuaWNhdGlvbnMgQ29ycC4KKzQwQkE2MSAgICAgKGJhc2UgMTYpCQlBcmltYSBDb21tdW5pY2F0aW9ucyBDb3JwLgorCQkJCTZGLiwgTm8uODY2LCBKaG9uZ2poZW5nIFJkLiwgSmhvbmdoZSBEaXN0LgorCQkJCU5ldyBUYWlwZWkgQ2l0eSAgMjM1ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQwLUJDLThCICAgKGhleCkJCWl0ZWxpbyBHbWJICis0MEJDOEIgICAgIChiYXNlIDE2KQkJaXRlbGlvIEdtYkgKKwkJCQlGcmFuei1MYXJjaGVyLVN0cmHfZSA0CisJCQkJS2llZmVyc2ZlbGRlbiBCYXZhcmlhIDgzMDg4CisJCQkJR0VSTUFOWQorCis0MC1CRi0xNyAgIChoZXgpCQlEaWdpc3RhciBUZWxlY29tLiBTQQorNDBCRjE3ICAgICAoYmFzZSAxNikJCURpZ2lzdGFyIFRlbGVjb20uIFNBCisJCQkJQXYuIFRoZW9kb21pcm8gUG9ydG8gZGEgRm9uc2VjYSwgMzEwMQorCQkJCUJ1aWxkaW5nIDIKKwkJCQlTYW8gTGVvcG9sZG8gUlMgOTMwMjA4MAorCQkJCUJSQVpJTAorCis0MC1DMi00NSAgIChoZXgpCQlTaGVuemhlbiBIZXhpY29tIFRlY2hub2xvZ3kgQ28uLCBMdGQuCis0MEMyNDUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gSGV4aWNvbSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTE1MTAgV2VzdCBCdWlsZGluZyxOYW5zaGFuIFNvZnR3YXJlIFBhcmssIE5hbnNoYW4gRGlzdC4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDUzCisJCQkJQ0hJTkEKKworNDAtQzctQzkgICAoaGV4KQkJTmF2aWl0IEluYy4KKzQwQzdDOSAgICAgKGJhc2UgMTYpCQlOYXZpaXQgSW5jLgorCQkJCTMwNThBIFNjb3R0IEJsdmQuCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLUNELTNBICAgKGhleCkJCVozIFRlY2hub2xvZ3kKKzQwQ0QzQSAgICAgKGJhc2UgMTYpCQlaMyBUZWNobm9sb2d5CisJCQkJMjcyMCBIYXJyaXNvbiBTdAorCQkJCUV2YW5zdG9uIElMIDYwMjAxCisJCQkJVU5JVEVEIFNUQVRFUworCis0MC1EMy0yRCAgIChoZXgpCQlBcHBsZSwgSW5jCis0MEQzMkQgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNDAtRDQtMEUgICAoaGV4KQkJQmlvZGF0YSBMdGQKKzQwRDQwRSAgICAgKGJhc2UgMTYpCQlCaW9kYXRhIEx0ZAorCQkJCTEwIFN0b2NrcyBTdHJlZXQKKwkJCQlNYW5jaGVzdGVyICBNOCA4UUcKKwkJCQlVTklURUQgS0lOR0RPTQorCis0MC1ENS01OSAgIChoZXgpCQlNSUNSTyBTLkUuUi5JLgorNDBENTU5ICAgICAoYmFzZSAxNikJCU1JQ1JPIFMuRS5SLkkuCisJCQkJMjQsIHJ1ZSBIZW5yaSBGQVJNQU4KKwkJCQlaQSBUcmVtYmxheSBDaGFybGVzIGRlIEdhdWxsZQorCQkJCVRSRU1CTEFZIEVOIEZSQU5DRSBJbGUgZGUgRnJhbmNlIDkzMjkwCisJCQkJRlJBTkNFCisKKzQwLUU3LTkzICAgKGhleCkJCVNoZW56aGVuIFNpdml0b24gVGVjaG5vbG9neSBDby4sTHRkCis0MEU3OTMgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gU2l2aXRvbiBUZWNobm9sb2d5IENvLixMdGQKKwkJCQk0RixCbG9jazYsQ29vbHBhZCBCdXNpbmVzcyBDZW50cmUsTm9ydGggb2YgS2V5dWFuIFJvYWQsSGktdGVjaG5vbG9neSBab25lLE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworNDAtRUMtRjggICAoaGV4KQkJU2llbWVucyBBRworNDBFQ0Y4ICAgICAoYmFzZSAxNikJCVNpZW1lbnMgQUcKKwkJCQlJIElTIE1TIEVETQorCQkJCU11bmljaCBHZXJtYW55IDg1NjMwCisJCQkJR0VSTUFOWQorCis0MC1FRi00QyAgIChoZXgpCQlGaWhvbmVzdCBjb21tdW5pY2F0aW9uIGNvLixMdGQKKzQwRUY0QyAgICAgKGJhc2UgMTYpCQlGaWhvbmVzdCBjb21tdW5pY2F0aW9uIGNvLixMdGQKKwkJCQlSb29tOTAyLFBhcmsgcm9hZCxaaGl4aW5nIGJ1c2luZXNzLWJ1aWxkaW5nCisJCQkJQ2hhbmdwaW5nIHRvd24KKwkJCQlEb25nZ3VhbiBHdWFuZ2RvbmcgNTIzNTYwCisJCQkJQ0hJTkEKKworNDAtRjEtNEMgICAoaGV4KQkJSVNFIEV1cm9wZSBTUFJMCis0MEYxNEMgICAgIChiYXNlIDE2KQkJSVNFIEV1cm9wZSBTUFJMCisJCQkJNDIgYSBydWUgRmFpZGVyCisJCQkJQnJ1c3NlbHMgIDEwNTAKKwkJCQlCRUxHSVVNCisKKzQwLUY0LTA3ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorNDBGNDA3ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzQwLUY0LUVDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzQwRjRFQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQwLUY1LTJFICAgKGhleCkJCUxlaWNhIE1pY3Jvc3lzdGVtcyAoU2Nod2VpeikgQUcKKzQwRjUyRSAgICAgKGJhc2UgMTYpCQlMZWljYSBNaWNyb3N5c3RlbXMgKFNjaHdlaXopIEFHCisJCQkJTWF4IFNjaG1pZGhlaW55LVN0cmFzc2UgMjAxCisJCQkJSGVlcmJydWdnIFNHIDk0MzUKKwkJCQlTV0lUWkVSTEFORAorCis0MC1GQy04OSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorNDBGQzg5ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE5vcnRoIFVTIEhpZ2h3YXkgNDUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTBDLUZEICAgKGhleCkJCU5ldE1hbiBDby4sIEx0ZC4KKzQ0MENGRCAgICAgKGJhc2UgMTYpCQlOZXRNYW4gQ28uLCBMdGQuCisJCQkJUm0gNDA2LCBESVAsIDIxMzksIERhZW15ZW9uZy1kb25nLAorCQkJCU5hbS1ndSwKKwkJCQlEYWVndSAgNzA1LTcwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0NC0xMy0xOSAgIChoZXgpCQlXS0sgVEVDSE5PTE9HWSBMVEQuCis0NDEzMTkgICAgIChiYXNlIDE2KQkJV0tLIFRFQ0hOT0xPR1kgTFRELgorCQkJCTIzL0YuLCBPbmUgS293bG9vbiwgTm8uMSwgV2FuZyBZdWVuIFN0cmVldCwgCisJCQkJS293bG9vbiBCYXksIAorCQkJCTg1MgorCQkJCUhPTkcgS09ORworCis0NC0xRS1BMSAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorNDQxRUExICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTIzLUFBICAgKGhleCkJCUZhcm1hZ2UgQ28uLCBMdGQuCis0NDIzQUEgICAgIChiYXNlIDE2KQkJRmFybWFnZSBDby4sIEx0ZC4KKwkJCQkxNjYtOCBLYW5hemF3YSBUb3ViZXRzdQorCQkJCUlzaGlrYXJpLWd1biBIb2trYWlkbworCQkJCUhva2thaWRvIDA2MS0wMjEyCisJCQkJSkFQQU4KKworNDQtMjUtQkIgICAoaGV4KQkJQmFtYm9vIEVudGVydGFpbm1lbnQgQ29ycG9yYXRpb24KKzQ0MjVCQiAgICAgKGJhc2UgMTYpCQlCYW1ib28gRW50ZXJ0YWlubWVudCBDb3Jwb3JhdGlvbgorCQkJCTE3OSBTb3V0aCBTdHJlZXQKKwkJCQk2dGggRmxvb3IKKwkJCQlCb3N0b24gTUEgMDIxMTEKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTJBLTYwICAgKGhleCkJCUFwcGxlLCBJbmMuCis0NDJBNjAgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTJCLTAzICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzQ0MkIwMyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis0NC0zMi0yQSAgIChoZXgpCQlBdmF5YSBJbmMKKzQ0MzIyQSAgICAgKGJhc2UgMTYpCQlBdmF5YSBJbmMKKwkJCQkyMTEgTW91bnQgQWlyeSBSb2FkIAorCQkJCUJhc2tpbmcgUmlkZ2UgTkogMDc5MjAtMjMxMQorCQkJCVVOSVRFRCBTVEFURVMKKworNDQtMzQtOEYgICAoaGV4KQkJTVhUIElORFVTVFJJQUwgTFREQQorNDQzNDhGICAgICAoYmFzZSAxNikJCU1YVCBJTkRVU1RSSUFMIExUREEKKwkJCQlST0RPVklBIEJSIDM4MSwgS00gNDkwLCBKQVJESU0gREFTIEFMVEVST1NBUworCQkJCUJFVElNIE1JTkFTIEdFUkFJUyAzMjY3MDc5MAorCQkJCUJSQVpJTAorCis0NC0zNy0xOSAgIChoZXgpCQkyIFNhdmUgRW5lcmd5IEx0ZAorNDQzNzE5ICAgICAoYmFzZSAxNikJCTIgU2F2ZSBFbmVyZ3kgTHRkCisJCQkJVGhlIEFubmV4ZSwgRmllbGQgSG91c2UgQmFybgorCQkJCUNoaW5laGFtIExhbmUKKwkJCQlTaGVyYm9ybmUgU3QgSm9obiBIYW1wc2hpcmUgUkcyNCA5TFIKKwkJCQlVTklURUQgS0lOR0RPTQorCis0NC0zNy02RiAgIChoZXgpCQlZb3VuZyBFbGVjdHJpYyBTaWduIENvCis0NDM3NkYgICAgIChiYXNlIDE2KQkJWW91bmcgRWxlY3RyaWMgU2lnbiBDbworCQkJCTE2NTEgTiAxMDAwIFcKKwkJCQlMb2dhbiBVVCA4NDMyMQorCQkJCVVOSVRFRCBTVEFURVMKKworNDQtMzctRTYgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLkx0ZAorNDQzN0U2ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC5Dby5MdGQKKwkJCQk2NixDaHVuZyBTaGFuIFJkLlR1LUNoZW5nCisJCQkJVGFpcGVpIEhzaWVuICAyMzYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQ0LTM4LTM5ICAgKGhleCkJCUN1bXVsdXMgTmV0d29ya3MsIGluYworNDQzODM5ICAgICAoYmFzZSAxNikJCUN1bXVsdXMgTmV0d29ya3MsIGluYworCQkJCTY1MCBDYXN0cm8gU3RyZWV0LCBzdWl0ZSAxMjAtMjQ1CisJCQkJTW91bnRhaW4gVmlldyBDQSA5NDA0MQorCQkJCVVOSVRFRCBTVEFURVMKKworNDQtM0QtMjEgICAoaGV4KQkJTnV2b2x0Cis0NDNEMjEgICAgIChiYXNlIDE2KQkJTnV2b2x0CisJCQkJODA4NyBCb3VsLiBkZSBsYSBSaXZlIFN1ZAorCQkJCUxldmlzIFF1ZWJlYyBHNlYgOUc5CisJCQkJQ0FOQURBCisKKzQ0LTNFLUIyICAgKGhleCkJCURFT1RST04gQ28uLCBMVEQuCis0NDNFQjIgICAgIChiYXNlIDE2KQkJREVPVFJPTiBDby4sIExURC4KKwkJCQk1MDYsIERhaW4gQmxkZworCQkJCTc0Mi0zIENob2ppLWRvbmcKKwkJCQlBbnNhbiBLeW9uZ2dpLWRvIDQyNS04NTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNDQtNEUtMUEgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCis0NDRFMUEgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzQ0LTRGLTVFICAgKGhleCkJCVBhbiBTdHVkaW9zIENvLixMdGQuCis0NDRGNUUgICAgIChiYXNlIDE2KQkJUGFuIFN0dWRpb3MgQ28uLEx0ZC4KKwkJCQkxRi4sIE5PLjQwMiwgU0VDLiAyLCBKSE9OR1lBTkcgTi4gUkQuLCBCRUlUT1UgRElTVFJJQ1QsCisJCQkJVEFJUEVJIENJVFkgICAxMTI1OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNDQtNTEtREIgICAoaGV4KQkJUmF5dGhlb24gQkJOIFRlY2hub2xvZ2llcworNDQ1MURCICAgICAoYmFzZSAxNikJCVJheXRoZW9uIEJCTiBUZWNobm9sb2dpZXMKKwkJCQkxMCBNb3VsdG9uIFN0cmVldAorCQkJCUNhbWJyaWRnZSBNQSAwMjEzOAorCQkJCVVOSVRFRCBTVEFURVMKKworNDQtNTQtQzAgICAoaGV4KQkJVGhvbXBzb24gQWVyb3NwYWNlCis0NDU0QzAgICAgIChiYXNlIDE2KQkJVGhvbXBzb24gQWVyb3NwYWNlCisJCQkJMTggVGVjaG5vbG9neQorCQkJCVN1aXRlIDEyMQorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworNDQtNTYtOEQgICAoaGV4KQkJUE5DIFRlY2hub2xvZ2llcyAgQ28uLCBMdGQuCis0NDU2OEQgICAgIChiYXNlIDE2KQkJUE5DIFRlY2hub2xvZ2llcyAgQ28uLCBMdGQuCisJCQkJIzQwMSBBbnlhbmcgTWVnYXZhbGx5LCA3OTkgS3dhbnlhbmctRG9uZworCQkJCURvbmdhbi1ndQorCQkJCUFueWFuZyBHeWVvbmdnaS1EbyA0MzEtNzY3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzQ0LTU2LUI3ICAgKGhleCkJCVNwYXduIExhYnMsIEluYworNDQ1NkI3ICAgICAoYmFzZSAxNikJCVNwYXduIExhYnMsIEluYworCQkJCTIyMDkgR3JhbmdlciBMYW5lCisJCQkJQXVzdGluIFRYIDc4NjEzCisJCQkJVU5JVEVEIFNUQVRFUworCis0NC01OC0yOSAgIChoZXgpCQlDaXNjbyBTUFZURworNDQ1ODI5ICAgICAoYmFzZSAxNikJCUNpc2NvIFNQVlRHCisJCQkJNTAzMCBTdWdhcmxvYWYgUGt3eQorCQkJCU1TIDQuVC40MjEKKwkJCQlMYXdyZW5jZXZpbGxlIEdlb3JnaWEgMzAwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTU5LTlGICAgKGhleCkJCUNyaXRpY2FyZSBTeXN0ZW1zLCBJbmMKKzQ0NTk5RiAgICAgKGJhc2UgMTYpCQlDcml0aWNhcmUgU3lzdGVtcywgSW5jCisJCQkJMjA5MjUgQ3Jvc3Nyb2FkcyBDaXJjbGUKKwkJCQlXYXVrYXNoYSBXSSA1MzE4NgorCQkJCVVOSVRFRCBTVEFURVMKKworNDQtNUUtRjMgICAoaGV4KQkJVG9uYWxpdGUgSG9sZGluZyBCLlYuCis0NDVFRjMgICAgIChiYXNlIDE2KQkJVG9uYWxpdGUgSG9sZGluZyBCLlYuCisJCQkJTmlldXcgQW1zdGVyZGFtc2VzdHJhYXQgNDAKKwkJCQlFbW1lbiBEcmVudGhlIDc4MTQgVkEKKwkJCQlORVRIRVJMQU5EUworCis0NC01Ri03QSAgIChoZXgpCQlTaGlobGluIEVsZWN0cmljICYgRW5naW5lZXJpbmcgQ29ycC4KKzQ0NUY3QSAgICAgKGJhc2UgMTYpCQlTaGlobGluIEVsZWN0cmljICYgRW5naW5lZXJpbmcgQ29ycC4KKwkJCQkxNkYgIE5PLjg4LCAgU0VDLCAgNiwgIENIVU5HICBTSEFOICBOLiAgUkQuLCBUQUlQRUkgIAorCQkJCU5vLiAyMzQsIENodW5nTHVuLAorCQkJCUhzaW5DaHUgSHNpbkZ1biBTaGlhbmcgMzA0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0NC02MS0zMiAgIChoZXgpCQllY29iZWUgaW5jCis0NDYxMzIgICAgIChiYXNlIDE2KQkJZWNvYmVlIGluYworCQkJCTMzMyBBZGVsYWlkZSBTdCBXIDZ0aCBGbG9vcgorCQkJCVRvcm9udG8gT250YXJpbyBNNVYxUjUKKwkJCQlDQU5BREEKKworNDQtNjgtQUIgICAoaGV4KQkJSlVJTiBDT01QQU5ZLCBMSU1JVEVECis0NDY4QUIgICAgIChiYXNlIDE2KQkJSlVJTiBDT01QQU5ZLCBMSU1JVEVECisJCQkJMkZMLCAxMDc1LTEsIFdvbnB5ZW9uZy1Eb25nCisJCQkJR3VtaSBDaXR5IEd5ZW9uZ3NhbmdidWstRG8gNzMwLTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0NC02Qy0yNCAgIChoZXgpCQlSZWFsbGluIEVsZWN0cm9uaWMgQ28uLEx0ZAorNDQ2QzI0ICAgICAoYmFzZSAxNikJCVJlYWxsaW4gRWxlY3Ryb25pYyBDby4sTHRkCisJCQkJMi9GLCBCdWlsZGluZyAzLCBOby4yMDIgWmhlbmd6aG9uZyBSZCwgWGlIdSBpbmR1c3RyeSBQYXJrCisJCQkJSGFuZyBaaG91IFpoZSBKaWFuZyAzMTAwMzAKKwkJCQlDSElOQQorCis0NC02RC01NyAgIChoZXgpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorNDQ2RDU3ICAgICAoYmFzZSAxNikJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYsOTAsQ2hpZW4gMSBSb2FkLENodW5nSG8KKwkJCQlUYWlwZWkgVGFpV2FuIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0NC03Qy03RiAgIChoZXgpCQlJbm5vbGlnaHQgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorNDQ3QzdGICAgICAoYmFzZSAxNikJCUlubm9saWdodCBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJMyBSZXN1bHRzIFdheQorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNDQtN0QtQTUgICAoaGV4KQkJVlRJT04gSU5GT1JNQVRJT04gVEVDSE5PTE9HWSAoRlVKSUFOKSBDTy4sTFRECis0NDdEQTUgICAgIChiYXNlIDE2KQkJVlRJT04gSU5GT1JNQVRJT04gVEVDSE5PTE9HWSAoRlVKSUFOKSBDTy4sTFRECisJCQkJUm9vbSA1MDIsIFdpbmcgQSwgV29ybGQgVHJhZGUgQ2VudGVyCisJCQkJTm8uMzYgRWFzdCBOb3J0aCBUaGlyZCBSaW5nIFJvYWQsRG9uZ2NoZW5nIERpc3RyaWN0LAorCQkJCSBCZWlqaW5nLCAgIAorCQkJCUNISU5BCisKKzQ0LTdFLTk1ICAgKGhleCkJCUFscGhhIGFuZCBPbWVnYSwgSW5jCis0NDdFOTUgICAgIChiYXNlIDE2KQkJQWxwaGEgYW5kIE9tZWdhLCBJbmMKKwkJCQk0NzM1IE1vbnR2aWV3IEJsdmQKKwkJCQlEZW52ZXIgQ08gODAyMDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LTgzLTEyICAgKGhleCkJCVN0YXItTmV0Cis0NDgzMTIgICAgIChiYXNlIDE2KQkJU3Rhci1OZXQKKwkJCQlFZ296IDY0IAorCQkJCUtpcnlhdCBCeWFsaWsgSXNyYWVsIDI3MDAwCisJCQkJSVNSQUVMCisKKzQ0LTg1LTAwICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCis0NDg1MDAgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzQ0LTg3LUZDICAgKGhleCkJCUVMSVRFR1JPVVAgQ09NUFVURVIgU1lTVEVNIENPLiwgTFRELgorNDQ4N0ZDICAgICAoYmFzZSAxNikJCUVMSVRFR1JPVVAgQ09NUFVURVIgU1lTVEVNIENPLiwgTFRELgorCQkJCU5PLiAyMzksIFNlYy4gMiwgVGkgRGluZyBCbHZkLgorCQkJCVRhaXBlaSAgMTE0OTMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQ0LThDLTUyICAgKGhleCkJCUtUSVMgQ08uLCBMdGQKKzQ0OEM1MiAgICAgKGJhc2UgMTYpCQlLVElTIENPLiwgTHRkCisJCQkJMTIwOGhvLTEwM2RvbmcKKwkJCQkzNi0xLCBCdWNoZW9uIFRlY2hub3BhcmszLiBTYW1qdW5nLURvbmcKKwkJCQlPanVuZy1HdSwgQnVjaGVvbi1zaSBHeWVvbmdnaS1kbyA0MjEtODA4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzQ0LThFLTEyICAgKGhleCkJCURUIFJlc2VhcmNoLCBJbmMuCis0NDhFMTIgICAgIChiYXNlIDE2KQkJRFQgUmVzZWFyY2gsIEluYy4KKwkJCQkyMDAwIENvbmNvdXJzZSBEcml2ZSAKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworNDQtOEUtODEgICAoaGV4KQkJVklHCis0NDhFODEgICAgIChiYXNlIDE2KQkJVklHCisJCQkJNzA1IEhhbnNoaW4gSVQgVG93ZXIsIDYwLTE4LCBLYXNhbi1kb25nLCBHZXVtY2hlb24tZ3UKKwkJCQlTZW91bCAgS1NYWDAwMjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNDQtOTEtREIgICAoaGV4KQkJU2hhbmdoYWkgSHVhcWluIFRlbGVjb20gVGVjaG5vbG9neSBDby4sTHRkCis0NDkxREIgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgSHVhcWluIFRlbGVjb20gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJTm8uMSBCdWlsZGluZywzOTkgS2V5dWFuIFJvYWQsIFpoYW5namlhbiBIaS1UZWNoIFBhcmssIFB1ZG9uZyBOZXcgQXJlYSwgCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzQ0LTlDLUI1ICAgKGhleCkJCUFsY29tcCwgSW5jCis0NDlDQjUgICAgIChiYXNlIDE2KQkJQWxjb21wLCBJbmMKKwkJCQkxMTUzNyBXYWxudXQgTGFuZQorCQkJCUZvcnQgQXRraW5zb24gV0kgNTM1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LUE0LTJEICAgKGhleCkJCVRDVCBNb2JpbGUgTGltaXRlZAorNDRBNDJEICAgICAoYmFzZSAxNikJCVRDVCBNb2JpbGUgTGltaXRlZAorCQkJCTQvRiwgU291dGggQnVpbGRpbmcsTm8uMjk2NiwgSmlua2UgUm9hZCwgWmhhbmdqaWFuZyBIaWdoLVRlY2ggUGFyaywgUHVkb25nCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzQ0LUE2LTg5ICAgKGhleCkJCVBST01BWCBFTEVDVFJPTklDQSBTQQorNDRBNjg5ICAgICAoYmFzZSAxNikJCVBST01BWCBFTEVDVFJPTklDQSBTQQorCQkJCUZSQU5DRVNDIE1PUkFHQVMgNzEtNzUKKwkJCQlIT1NQSVRBTEVUIERFIExMT0JSRUdBVCBCQVJDRUxPTkEgMDg5MDcKKwkJCQlTUEFJTgorCis0NC1BNy1DRiAgIChoZXgpCQlNdXJhdGEgTWFudWZhY3R1cmluZyBDby4sIEx0ZC4KKzQ0QTdDRiAgICAgKGJhc2UgMTYpCQlNdXJhdGEgTWFudWZhY3R1cmluZyBDby4sIEx0ZC4KKwkJCQkxMC0xLCBIaWdhc2hpa290YXJpIDEKKwkJCQlOYWdhb2tha3lvLXNoaSBLeW90byA2MTctODU1NQorCQkJCUpBUEFOCisKKzQ0LUE4LUMyICAgKGhleCkJCVNFV09PIFRFQ0ggQ08uLCBMVEQKKzQ0QThDMiAgICAgKGJhc2UgMTYpCQlTRVdPTyBURUNIIENPLiwgTFRECisJCQkJNjg5LTIwIEdFVU1KVU5HLURPTkcgCisJCQkJR1VOUE8tU0kgS1lVTkdHSS1ETyA0MzUtODYyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzQ0LUFBLTI3ICAgKGhleCkJCXVkd29ya3MgQ28uLCBMdGQuCis0NEFBMjcgICAgIChiYXNlIDE2KQkJdWR3b3JrcyBDby4sIEx0ZC4KKwkJCQkjODEwLCBCeXVrc2FuM2NoYSBEaWdpdGFsIFZhbGxleSwgMjEyLTEzLCBHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTc3NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0NC1BQS1FOCAgIChoZXgpCQlOYW5vdGVjIEVsZWN0cm9uaWMgR21iSCAmIENvLiBLRworNDRBQUU4ICAgICAoYmFzZSAxNikJCU5hbm90ZWMgRWxlY3Ryb25pYyBHbWJIICYgQ28uIEtHCisJCQkJR2V3ZXJiZXN0cmFzc2UgMTEKKwkJCQlMYW5kc2hhbSBCYXZhcmlhIDg1NjUyCisJCQkJR0VSTUFOWQorCis0NC1CMy04MiAgIChoZXgpCQlLdWFuZy1jaGkgSW5zdGl0dXRlIG9mIEFkdmFuY2VkIFRlY2hub2xvZ3kKKzQ0QjM4MiAgICAgKGJhc2UgMTYpCQlLdWFuZy1jaGkgSW5zdGl0dXRlIG9mIEFkdmFuY2VkIFRlY2hub2xvZ3kKKwkJCQlTb2Z0d2FyZSBidWlsZGluZywgR2FveGluZ3pob25nIDFzdCBSb2FkLAorCQkJCUhpZ2gtVGVjaCBwYXJrLCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzQ0LUMxLTVDICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCis0NEMxNUMgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LUMyLTMzICAgKGhleCkJCUd1YW5nemhvdSBDb21ldCBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLkx0ZAorNDRDMjMzICAgICAoYmFzZSAxNikJCUd1YW5nemhvdSBDb21ldCBUZWNobm9sb2d5IERldmVsb3BtZW50IENvLkx0ZAorCQkJCVJtIDMwNCxGTCAzLEJsb2NrIEcsU2NpZW5jZSBhbmQgIFRlY2hub2xvZ3kgSW5ub3ZhdGlvbiBCYXNlLAorCQkJCU5vLjgwLExhbnl1ZSBSb2FkLFNjaWVuY2UgUGFyaywKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIDUxMDY2MworCQkJCUNISU5BCisKKzQ0LUM5LUEyICAgKGhleCkJCUdyZWVud2FsZCBJbmR1c3RyaWVzCis0NEM5QTIgICAgIChiYXNlIDE2KQkJR3JlZW53YWxkIEluZHVzdHJpZXMKKwkJCQkyMTIgTWlkZGxlc2V4IEF2ZW51ZQorCQkJCUNoZXN0ZXIgQ1QgMDY0MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LUQxLTVFICAgKGhleCkJCVNoYW5naGFpIEtpbmd0byBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IEx0ZAorNDREMTVFICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEtpbmd0byBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IEx0ZAorCQkJCU5vLjczOCBHdWFuZ2ppIFJELjNGIHNoYW5naGFpLmNoaW5hCisJCQkJc2hhbmdoYWkgMjAwNDM0CisJCQkJQ0hJTkEKKworNDQtRDItQ0EgICAoaGV4KQkJQW52aWEgVFYgT3kKKzQ0RDJDQSAgICAgKGJhc2UgMTYpCQlBbnZpYSBUViBPeQorCQkJCVBPIEJveCAyOQorCQkJCVNFSU5BSk9LSSAgRklONjAxMDEKKwkJCQlGSU5MQU5ECisKKzQ0LUQzLUNBICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzQ0RDNDQSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis0NC1ENi0zRCAgIChoZXgpCQlUYWxhcmkgTmV0d29ya3MKKzQ0RDYzRCAgICAgKGJhc2UgMTYpCQlUYWxhcmkgTmV0d29ya3MKKwkJCQkzMjAwIEdsZW4gUm95YWwgUmQuCisJCQkJU3VpdGUgMTAwCisJCQkJUmFsZWlnaCAgTkMgMjc2MTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LUQ4LTMyICAgKGhleCkJCUF6dXJld2F2ZSBUZWNobm9sb2dpZXMsIEluYy4KKzQ0RDgzMiAgICAgKGJhc2UgMTYpCQlBenVyZXdhdmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJOEYuLCBCYW96aG9uZyBSZC4KKwkJCQlYaW5kaWFuIENpdHkgVGFpcGVpIENvdW50eSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQ0LUQ4LTg0ICAgKGhleCkJCUFwcGxlLCBJbmMuCis0NEQ4ODQgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIGluZmluaXRlIExvb3AKKwkJCQljdXBlcnRpbm8gY0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ0LURDLTkxICAgKGhleCkJCVBMQU5FWCBDT01NVU5JQ0FUSU9OUyBJTkMuCis0NERDOTEgICAgIChiYXNlIDE2KQkJUExBTkVYIENPTU1VTklDQVRJT05TIElOQy4KKwkJCQkyRiBGLU5JU1NBWSBFYmlzdSBCbGRnIDMtMTYtMyBIaWdhc2hpLAorCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUwLTAwMTEKKwkJCQlKQVBBTgorCis0NC1EQy1DQiAgIChoZXgpCQlTRU1JTkRJQSBTWVNURU1TIFBWVCBMVEQKKzQ0RENDQiAgICAgKGJhc2UgMTYpCQlTRU1JTkRJQSBTWVNURU1TIFBWVCBMVEQKKwkJCQkxMDA2LzEzLCBTeSBOby40OS8xJjMsIDd0aCBNaWxlLCBBLk0gSW5kbCBFc3RhdGUsCisJCQkJR2FydmViaGF2aXBhbHlhLEhvc3VyIFJvYWQsIAorCQkJCUJhbmdhbG9yZSBLYXJuYXRha2EgNTYwMDY4CisJCQkJSU5ESUEKKworNDQtRTAtOEUgICAoaGV4KQkJQ2lzY28gU1BWVEcKKzQ0RTA4RSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBhcmt3YXkKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCis0NC1FNC05QSAgIChoZXgpCQlPTU5JVFJPTklDUyBQVFkgTFRECis0NEU0OUEgICAgIChiYXNlIDE2KQkJT01OSVRST05JQ1MgUFRZIExURAorCQkJCTI3IFNBUklDSCBDUlQKKwkJCQlPU0JPUk5FIFBBUksgV0EgNjAxNworCQkJCUFVU1RSQUxJQQorCis0NC1FNC1EOSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis0NEU0RDkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis0NC1FOC1BNSAgIChoZXgpCQlNeXJla2EgVGVjaG5vbG9naWVzIFNkbi4gQmhkLgorNDRFOEE1ICAgICAoYmFzZSAxNikJCU15cmVrYSBUZWNobm9sb2dpZXMgU2RuLiBCaGQuCisJCQkJMi0xMywgSkFMQU4gTUFZQU5HIFBBU0lSIDEsCisJCQkJS09NUExFS1MgTUFZQU5HIE1BTEwKKwkJCQlCYXlhbiBCYXJ1IFBlbmFuZyAxMTk1MAorCQkJCU1BTEFZU0lBCisKKzQ0LUVELTU3ICAgKGhleCkJCUxvbmdpY29ybiwgaW5jLgorNDRFRDU3ICAgICAoYmFzZSAxNikJCUxvbmdpY29ybiwgaW5jLgorCQkJCVJtMTAwMS0yLCAxMEYsIEJ5dWtzYW4gRGlnaXRhbCBWYWxsZXkxCisJCQkJMjEyLTE2LCBHdXJvLTNEb25nLCBHdXJvLUd1CisJCQkJU2VvdWwgIDE1Mi03NzUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNDQtRjQtNTkgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworNDRGNDU5ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNDgtMDItMkEgICAoaGV4KQkJQi1MaW5rIEVsZWN0cm9uaWMgTGltaXRlZAorNDgwMjJBICAgICAoYmFzZSAxNikJCUItTGluayBFbGVjdHJvbmljIExpbWl0ZWQKKwkJCQlOTyAyNjgsRnVRaWFuIFJkLCBKdVRhbmcgQ29tbXVuaXR5LEd1YW5MYW4gdG93biBCYW9BbiBkaXN0cmljdCxTaGVuWmhlbiwgNTE4MTEwLENoaW5hCisJCQkJU2hlbiBaaGVuIEd1YW5nIERvbmcgNTE4MTEwCisJCQkJQ0hJTkEKKworNDgtMTItNDkgICAoaGV4KQkJTHV4Y29tIFRlY2hub2xvZ2llcyBJbmMuCis0ODEyNDkgICAgIChiYXNlIDE2KQkJTHV4Y29tIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMTAyIFdhbGdyZWVuIFJvYWQKKwkJCQlPdHRhd2EgT250YXJpbyBLMEEgMUwwCisJCQkJQ0FOQURBCisKKzQ4LTEzLUYzICAgKGhleCkJCUJCSyBFbGVjdHJvbmljcyBDb3JwLiwgTHRkLgorNDgxM0YzICAgICAoYmFzZSAxNikJCUJCSyBFbGVjdHJvbmljcyBDb3JwLiwgTHRkLgorCQkJCUJCSyBSb2FkLFd1c2hhLENoYW5noa9hbiAKKwkJCQlEb25nZ3VhbiBHdWFuZ2RvbmcgNTIzODYwCisJCQkJQ0hJTkEKKworNDgtMTctNEMgICAoaGV4KQkJTWljcm9Qb3dlciB0ZWNobm9sb2dpZXMKKzQ4MTc0QyAgICAgKGJhc2UgMTYpCQlNaWNyb1Bvd2VyIHRlY2hub2xvZ2llcworCQkJCTQyMjUgRXhlY3V0aXZlIFNxLgorCQkJCVN1aXRlIDQzMAorCQkJCUxhIEpvbGxhIENhbGlmb3JuaWEgOTIwMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ4LTFCLUQyICAgKGhleCkJCUludHJvbiBTY2llbnRpZmljIGNvLiwgbHRkLgorNDgxQkQyICAgICAoYmFzZSAxNikJCUludHJvbiBTY2llbnRpZmljIGNvLiwgbHRkLgorCQkJCTZGLiwgTk8uIDEzNixTZWMgMixLZWVsdW5nIFJkLiwgRGEtYW4gZGlzdHJpY3QKKwkJCQlUYWlwZWkgIDEwNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNDgtMjgtMkYgICAoaGV4KQkJWlRFIENvcnBvcmF0aW9uCis0ODI4MkYgICAgIChiYXNlIDE2KQkJWlRFIENvcnBvcmF0aW9uCisJCQkJMTIvRi4sUiZEIGJ1aWxkaW5nLGtlamluYW4gUm9hZAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis0OC0yQy1FQSAgIChoZXgpCQlNb3Rvcm9sYSBJbmMgQnVzaW5lc3MgTGlnaHQgUmFkaW9zCis0ODJDRUEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgSW5jIEJ1c2luZXNzIExpZ2h0IFJhZGlvcworCQkJCTgwMDAgVyBTdW5yaXNlIEJvdWxldmFyZAorCQkJCVBsYW50YXRpb24gRmxvcmlkYSAzMzMyNAorCQkJCVVOSVRFRCBTVEFURVMKKworNDgtMzMtREQgICAoaGV4KQkJWkVOTklPIEFWQU5DRSBZIFRFQ05PTE9HSUEsIFMuTC4KKzQ4MzNERCAgICAgKGJhc2UgMTYpCQlaRU5OSU8gQVZBTkNFIFkgVEVDTk9MT0dJQSwgUy5MLgorCQkJCVJJTyBKQVJBTUEgMTMyIE5BVkUgUDguMTEKKwkJCQlUT0xFRE8gIDQ1MDA3CisJCQkJU1BBSU4KKworNDgtMzQtM0QgICAoaGV4KQkJSUVQIEdtYkgKKzQ4MzQzRCAgICAgKGJhc2UgMTYpCQlJRVAgR21iSAorCQkJCUFtIFBmZXJkZW1hcmt0IDljCisJCQkJTGFuZ2VuaGFnZW4gTmllZGVyc2FjaHNlbiAzMDg1MworCQkJCUdFUk1BTlkKKworNDgtNDQtODcgICAoaGV4KQkJQ2lzY28gU1BWVEcKKzQ4NDQ4NyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlNUyA0LlQuNjA3CisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworNDgtNDQtRjcgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIExURAorNDg0NEY3ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMVEQKKwkJCQk0MTYsIE1hZXRhbiAzLWRvbmcsIFllb25ndG9uZy1ndQorCQkJCVN1d29uIEd5ZW9uZ2dpLWRvIDQ0Mzc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis0OC00Ni1GMSAgIChoZXgpCQlVcm9zIE95Cis0ODQ2RjEgICAgIChiYXNlIDE2KQkJVXJvcyBPeQorCQkJCVR1dGtpamFudGllIDQKKwkJCQlPVUxVICA5MDU5MAorCQkJCUZJTkxBTkQKKworNDgtNUItMzkgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCis0ODVCMzkgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdSwgCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzQ4LTVELTYwICAgKGhleCkJCUF6dXJld2F2ZSBUZWNobm9sb2dpZXMsIEluYy4KKzQ4NUQ2MCAgICAgKGJhc2UgMTYpCQlBenVyZXdhdmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJOEYgLiwgTm8uOTQsIEJhb3pob25nIFJkLiAKKwkJCQlYaW5kaWFuIENpdHkgVGFpcGVpIENvdW50eSAyMzEgCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0OC02MC1CQyAgIChoZXgpCQlBcHBsZSwgSW5jLgorNDg2MEJDICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBpbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis0OC02MS1BMyAgIChoZXgpCQlDb25jZXJuICJBeGlvbiIgSlNDCis0ODYxQTMgICAgIChiYXNlIDE2KQkJQ29uY2VybiAiQXhpb24iIEpTQworCQkJCTkwLCBNLiBHb3Jrb2dvIFN0LgorCQkJCUl6aGV2c2sgVWRtdXJ0IFJlcHVibGljIDQyNjAwMAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCis0OC02Qi05MSAgIChoZXgpCQlGbGVldHdvb2QgR3JvdXAgSW5jLgorNDg2QjkxICAgICAoYmFzZSAxNikJCUZsZWV0d29vZCBHcm91cCBJbmMuCisJCQkJMTE4MzIgSmFtZXMgU3QKKwkJCQlQTyBCb3ggMTI1OQorCQkJCUhvbGxhbmQgTWljaGlnYW4gNDk0MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzQ4LTZGLUQyICAgKGhleCkJCVN0b3JTaW1wbGUgSW5jCis0ODZGRDIgICAgIChiYXNlIDE2KQkJU3RvclNpbXBsZSBJbmMKKwkJCQkyMzUwIE1pc3Npb24gQ29sbGVnZSBCbHZkCisJCQkJU3VpdGUgIzQ3MAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCis0OC03MS0xOSAgIChoZXgpCQlTR0IgR1JPVVAgTFRELgorNDg3MTE5ICAgICAoYmFzZSAxNikJCVNHQiBHUk9VUCBMVEQuCisJCQkJMTNGLE5vLjE5MixTZWMuMixDaHVuZyBIc2luIFJkLixIc2luIFRpZW4gQ2l0eQorCQkJCVRhaXBlaSAgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNDgtOEUtNDIgICAoaGV4KQkJRElHQUxPRyBHbWJICis0ODhFNDIgICAgIChiYXNlIDE2KQkJRElHQUxPRyBHbWJICisJCQkJV2F0dHN0ci4gMTEtMTMKKwkJCQlCZXJsaW4gIEQtMTMzNTUKKwkJCQlHRVJNQU5ZCisKKzQ4LTkxLTUzICAgKGhleCkJCVdlaW5tYW5uIEdlcu+/vXRlIGbvv71yIE1lZGl6aW4gR21iSCArIENvLiBLRworNDg5MTUzICAgICAoYmFzZSAxNikJCVdlaW5tYW5uIEdlcu+/vXRlIGbvv71yIE1lZGl6aW4gR21iSCArIENvLiBLRworCQkJCUtyb25zYWFsc3dlZyA0MAorCQkJCUhhbWJ1cmcgIEQtMjI1MjUKKwkJCQlHRVJNQU5ZCisKKzQ4LTkxLUY2ICAgKGhleCkJCVNoZW56aGVuIFJlYWNoIHNvZnR3YXJlIHRlY2hub2xvZ3kgQ08uLExURAorNDg5MUY2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFJlYWNoIHNvZnR3YXJlIHRlY2hub2xvZ3kgQ08uLExURAorCQkJCTYvRixCbG9jayBCLCBLaW5nZGVlIFNvZnR3YXJlIHBhcmssIzIsS2VqaSAxMnRoIFNvdXRoIFJvYWQsSGktdGVjaCBJbmR1c3RyaWFsIFBhcmssTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis0OC05Qi1FMiAgIChoZXgpCQlTQ0kgSW5ub3ZhdGlvbnMgTHRkCis0ODlCRTIgICAgIChiYXNlIDE2KQkJU0NJIElubm92YXRpb25zIEx0ZAorCQkJCTE2QyBIdXJzdCBFbmQKKwkJCQlGb2xseSBMYW5lCisJCQkJTmV3cG9ydCBQYWduZWxsIEJ1Y2tpbmdoYW1zaGlyZSBNSzE2IDlIUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzQ4LUEyLTJEICAgKGhleCkJCVNoZW56aGVuIEh1YXh1Y2hhbmcgVGVsZWNvbSBUZWNobm9sb2d5IENvLixMdGQKKzQ4QTIyRCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBIdWF4dWNoYW5nIFRlbGVjb20gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJUm9vbSA1MDEgQmxvY2sgQiwgQ3liZXIgVGltZSBQbGF6YQorCQkJCVRpYW4mIzM5O2FuLCBGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworNDgtQTYtRDIgICAoaGV4KQkJR0pzdW4gT3B0aWNhbCBTY2llbmNlIGFuZCBUZWNoIENvLixMdGQuCis0OEE2RDIgICAgIChiYXNlIDE2KQkJR0pzdW4gT3B0aWNhbCBTY2llbmNlIGFuZCBUZWNoIENvLixMdGQuCisJCQkJRmlyc3QgZmxvb3IgTmF0aW9uYWwgSW5mb3JtYXRpb24gSW5kdXN0cnkgUGFyayBELTA4CisJCQkJQ2hhb3lhbmcgUm9hZCxRaXhpbmcgRGlzdHJpY3QKKwkJCQlHdWlsaW4gR3Vhbmd4aSA1NDEwMDQKKwkJCQlDSElOQQorCis0OC1BQS01RCAgIChoZXgpCQlTdG9yZSBFbGVjdHJvbmljIFN5c3RlbXMKKzQ4QUE1RCAgICAgKGJhc2UgMTYpCQlTdG9yZSBFbGVjdHJvbmljIFN5c3RlbXMKKwkJCQkzOSBydWUgZGUgbW9udGlnbnkKKwkJCQlBcmdlbnRldWlsICA5NTEwMAorCQkJCUZSQU5DRQorCis0OC1DMS1BQyAgIChoZXgpCQlQTEFOVFJPTklDUywgSU5DLgorNDhDMUFDICAgICAoYmFzZSAxNikJCVBMQU5UUk9OSUNTLCBJTkMuCisJCQkJMzQ1IEVOQ0lOQUwgU1RSRUVUCisJCQkJU0FOVEEgQ1JVWiBDQSA5NTA2MAorCQkJCVVOSVRFRCBTVEFURVMKKworNDgtQzgtNjIgICAoaGV4KQkJU2ltbyBXaXJlbGVzcyxJbmMuCis0OEM4NjIgICAgIChiYXNlIDE2KQkJU2ltbyBXaXJlbGVzcyxJbmMuCisJCQkJMzI2IyxCdWlsZGluZyA0LFpob25neGluZyBJbmR1c3RyaWFsIFBhcmssQ2h1YW5neWUKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU0CisJCQkJQ0hJTkEKKworNDgtQzgtQjYgICAoaGV4KQkJU3lzVGVjIEdtYkgKKzQ4QzhCNiAgICAgKGJhc2UgMTYpCQlTeXNUZWMgR21iSAorCQkJCUx1ZHdpZy1FcmhhcmQtU3RyYXNzZSA2CisJCQkJQmVyZ2hlaW0tR2xlc3NlbiBOUlcgNTAxMjkKKwkJCQlHRVJNQU5ZCisKKzQ4LUNCLTZFICAgKGhleCkJCUNlbGxvIEVsZWN0cm9uaWNzIChVSykgTHRkCis0OENCNkUgICAgIChiYXNlIDE2KQkJQ2VsbG8gRWxlY3Ryb25pY3MgKFVLKSBMdGQKKwkJCQlDbGlmZiBMb2RnZQorCQkJCUhhcm1ieSBSb2FkCisJCQkJTGV5YnVybiBOb3J0aCBZb3Jrc2hpcmUgREw4IDVOUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzQ4LUQ1LTRDICAgKGhleCkJCUplZGEgTmV0d29ya3MKKzQ4RDU0QyAgICAgKGJhc2UgMTYpCQlKZWRhIE5ldHdvcmtzCisJCQkJMjYxOCBTYW4gTWlndWVsIERyaXZlCisJCQkJU3VpdGUgIyA0MDgKKwkJCQlOZXdwb3J0IEJlYWNoIENhLiA5MjY2MAorCQkJCVVOSVRFRCBTVEFURVMKKworNDgtRDctRkYgICAoaGV4KQkJQkxBTktPTSBBbnRlbm5lbnRlY2huaWsgR21iSAorNDhEN0ZGICAgICAoYmFzZSAxNikJCUJMQU5LT00gQW50ZW5uZW50ZWNobmlrIEdtYkgKKwkJCQlIZXJtYW5uLVBldGVyc2lsZ2UgU3RyLiAxCisJCQkJQmFkIEJsYW5rZW5idXJnIFRIIDA3NDIyCisJCQkJR0VSTUFOWQorCis0OC1EOC1GRSAgIChoZXgpCQlDbGFySUR5IFNvbHV0aW9ucywgSW5jLgorNDhEOEZFICAgICAoYmFzZSAxNikJCUNsYXJJRHkgU29sdXRpb25zLCBJbmMuCisJCQkJN0YsIE5vLjksIFBhcmtBdmVudWUgSUkgUmQuLCBIc2luY2h1IFNjaWVuY2UgUGFyaywgCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis0OC1EQy1GQiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorNDhEQ0ZCICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJWXJ0dGlwZWxsb250aWUgNgorCQkJCU91bHUgIDkwMjMwCisJCQkJRklOTEFORAorCis0OC1ERi0xQyAgIChoZXgpCQlXdWhhbiBORUMgRmlicmUgT3B0aWMgQ29tbXVuaWNhdGlvbnMgaW5kdXN0cnkgQ28uIEx0ZAorNDhERjFDICAgICAoYmFzZSAxNikJCVd1aGFuIE5FQyBGaWJyZSBPcHRpYyBDb21tdW5pY2F0aW9ucyBpbmR1c3RyeSBDby4gTHRkCisJCQkJM3JkIFJvYWQgR3VhbnNoYW4sCisJCQkJV3VoYW4gSHViZWkgNDMwMDc0CisJCQkJQ0hJTkEKKworNDgtRTEtQUYgICAoaGV4KQkJVml0eQorNDhFMUFGICAgICAoYmFzZSAxNikJCVZpdHkKKwkJCQkxODAgcnVlIFBpZXJyZSBMYW5kYWlzCisJCQkJQ2F1ZGFuIDU2IDU2ODUwCisJCQkJRlJBTkNFCisKKzQ4LUVBLTYzICAgKGhleCkJCVpoZWppYW5nIFVuaXZpZXcgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorNDhFQTYzICAgICAoYmFzZSAxNikJCVpoZWppYW5nIFVuaXZpZXcgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCUVhc3Rjb20gQnVpbGRpbmcgQyxFYXN0Y29tIEF2ZW51ZQorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDA1MworCQkJCUNISU5BCisKKzQ4LUVCLTMwICAgKGhleCkJCSBFVEVSTkEgVEVDSE5PTE9HWSwgSU5DLgorNDhFQjMwICAgICAoYmFzZSAxNikJCSBFVEVSTkEgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTM5MzkgdmVzZWxpY2ggYXZlCisJCQkJMzE3CisJCQkJbG9zIGFuZ2VsZXMgY2FsaWZvcm5pYSA5MDAzOQorCQkJCVVOSVRFRCBTVEFURVMKKworNDgtRUQtODAgICAoaGV4KQkJZGFlc3VuZyBlbHRlYworNDhFRDgwICAgICAoYmFzZSAxNikJCWRhZXN1bmcgZWx0ZWMKKwkJCQkjNTA5IFNKIFRlY2hub3ZpbGxlLCA2MC0xOSwgR2FzYW4tZG9uZworCQkJCUdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtNzY5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzQ4LUYzLTE3ICAgKGhleCkJCVBSSVZBVEUKKzQ4RjMxNyAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorNDgtRjQtN0QgICAoaGV4KQkJVGVjaFZpc2lvbiBIb2xkaW5nICBJbnRlcm5hdGlvbiBMaW1pdGVkCis0OEY0N0QgICAgIChiYXNlIDE2KQkJVGVjaFZpc2lvbiBIb2xkaW5nICBJbnRlcm5hdGlvbiBMaW1pdGVkCisJCQkJT2Zmc2hvcmUgSW5jb3Jwb3JhdGlvbnMgQ2VudHJlCisJCQkJUC5PLiBCb3ggOTU3CisJCQkJUm9hZCBUb3duIFRvcnRvbGEgVkcxMTEwCisJCQkJVklSR0lOIElTTEFORFMsIEJSSVRJU0gKKworNDgtRjctRjEgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQKKzQ4RjdGMSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudAorCQkJCTYwMCBNYXJjaCBSb2FkCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLIDJFNgorCQkJCUNBTkFEQQorCis0OC1GOC1FMSAgIChoZXgpCQlBbGNhdGVsIEx1Y2VudCBXVAorNDhGOEUxICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTHVjZW50IFdUCisJCQkJNjAwIE1hcmNoIERyaXZlCisJCQkJT3R0YXdhIE9udGFyaW8gazJrIDJlNgorCQkJCUNBTkFEQQorCis0OC1GQy1COCAgIChoZXgpCQlXb29kc3RyZWFtIENvcnBvcmF0aW9uCis0OEZDQjggICAgIChiYXNlIDE2KQkJV29vZHN0cmVhbSBDb3Jwb3JhdGlvbgorCQkJCTY5IE4uIExvY3VzdCBTdHJlZXQKKwkJCQlMaXRpdHogUEEgMTc1NDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzRDLTAyLTJFICAgKGhleCkJCUNNUiBLT1JFQSBDTy4sIExURAorNEMwMjJFICAgICAoYmFzZSAxNikJCUNNUiBLT1JFQSBDTy4sIExURAorCQkJCTZGLCBKLVRvd2VyLCAyNC01IEJhbmdpLWRvbmcsIFNvbmdwYS1HdQorCQkJCVNlb3VsICAxMzgtMDUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzRDLTAyLTg5ICAgKGhleCkJCUxFWCBDT01QVVRFQ0ggQ08uLCBMVEQKKzRDMDI4OSAgICAgKGJhc2UgMTYpCQlMRVggQ09NUFVURUNIIENPLiwgTFRECisJCQkJM0YsIE5vLjc3LCBMSSBERSBTdC4gQ2h1bmcgSG8gRGlzdC4sIAorCQkJCU5ldyBUYWlwZWkgQ2l0eSAgMjM1NTYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzRDLTA2LThBICAgKGhleCkJCUJhc2xlciBFbGVjdHJpYyBDb21wYW55Cis0QzA2OEEgICAgIChiYXNlIDE2KQkJQmFzbGVyIEVsZWN0cmljIENvbXBhbnkKKwkJCQkxMjU3MCBTdGF0ZSBSb3V0ZSAxNDMKKwkJCQlIaWdobGFuZCBJTCA2MjI0OQorCQkJCVVOSVRFRCBTVEFURVMKKworNEMtMDctQzkgICAoaGV4KQkJQ09NUFVURVIgT0ZGSUNFIENvLixMdGQuCis0QzA3QzkgICAgIChiYXNlIDE2KQkJQ09NUFVURVIgT0ZGSUNFIENvLixMdGQuCisJCQkJMTM2OC0xMCBNdXJhbWF0c3UtY2hvCisJCQkJSXNlLXNoaSBNaWUta2VuIDUxNS0wNTA3CisJCQkJSkFQQU4KKworNEMtMEItM0EgICAoaGV4KQkJVENUIE1vYmlsZSBMaW1pdGVkCis0QzBCM0EgICAgIChiYXNlIDE2KQkJVENUIE1vYmlsZSBMaW1pdGVkCisJCQkJNUYsIEMtVG93ZXIsIE5vLjIzMiwgTGlhbmdqaW5nIFJvYWQsIAorCQkJCVpoYW5namlhbmcgSGlnaC10ZWNoIFBhcmssIFB1ZG9uZywKKwkJCQlTaGFuZ2hhaSAyMDEyMDMKKwkJCQlDSElOQQorCis0Qy0wRi02RSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorNEMwRjZFICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMyAKKwkJCQlDSElOQQorCis0Qy0wRi1DNyAgIChoZXgpCQlFYXJkYSBFbGVjdHJvbmljcyBDby4sTHRkIAorNEMwRkM3ICAgICAoYmFzZSAxNikJCUVhcmRhIEVsZWN0cm9uaWNzIENvLixMdGQgCisJCQkJNS9GLEJsb2NrIDIgRWFzdCBhcmVhLEhhb3NoZW5nIEluZHVzdHJpYWwgUGFyaywKKwkJCQk4IERlbmd5dW4gQXYuLCBOYW5jdW4gVG93biwgUGFueXUgRGlzdHJpY3QsCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTE0MDAKKwkJCQlDSElOQQorCis0Qy0xNC04MCAgIChoZXgpCQlOT1JFR09OIFNZU1RFTVMsIElOQworNEMxNDgwICAgICAoYmFzZSAxNikJCU5PUkVHT04gU1lTVEVNUywgSU5DCisJCQkJMTAwIE4uIE1BSU4gU1QuICBTVUlURSAyMjAwCisJCQkJV0lOU1RPTiAtIFNBTEVNIE5DIDI3MTAxCisJCQkJVU5JVEVEIFNUQVRFUworCis0Qy0xNy1FQiAgIChoZXgpCQlTQUdFTUNPTQorNEMxN0VCICAgICAoYmFzZSAxNikJCVNBR0VNQ09NCisJCQkJMjUwIHJvdXRlIGRlIGwnRW1wZXJldXIKKwkJCQlSVUVJTCBNQUxNQUlTT04gIDkyODQ4CisJCQkJRlJBTkNFCisKKzRDLTFBLTNBICAgKGhleCkJCVBSSU1BIFJlc2VhcmNoIEFuZCBQcm9kdWN0aW9uIEVudGVycHJpc2UgTHRkLgorNEMxQTNBICAgICAoYmFzZSAxNikJCVBSSU1BIFJlc2VhcmNoIEFuZCBQcm9kdWN0aW9uIEVudGVycHJpc2UgTHRkLgorCQkJCTYzLCBTdm9ib2R5IHN0LgorCQkJCU5pemhueSBOb3Znb3JvZCAgNjAzMDAzCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzRDLTFGLUNDICAgKGhleCkJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorNEMxRkNDICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorCQkJCUIxLTcsSHVhd2VpIEluZHVzdHJpYWwgQmFzZSxCYW50aWFuLExvbmdnYW5nCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODEyOQorCQkJCUNISU5BCisKKzRDLTJDLTgwICAgKGhleCkJCUJlaWppbmcgU2t5d2F5IFRlY2hub2xvZ2llcyBDby4sTHRkIAorNEMyQzgwICAgICAoYmFzZSAxNikJCUJlaWppbmcgU2t5d2F5IFRlY2hub2xvZ2llcyBDby4sTHRkIAorCQkJCU5vLjUgSmlhbmd0YWkgUm9hZCwgCisJCQkJQ2hhb3lhbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwMTUKKwkJCQlDSElOQQorCis0Qy0yRi05RCAgIChoZXgpCQlJQ00gQ29udHJvbHMKKzRDMkY5RCAgICAgKGJhc2UgMTYpCQlJQ00gQ29udHJvbHMKKwkJCQk3MzEzIFdpbGxpYW0gQmFycnkgQmx2ZAorCQkJCU5vcnRoIFN5cmFjdXNlIE5ZIDEzMjEyCisJCQkJVU5JVEVEIFNUQVRFUworCis0Qy0zMC04OSAgIChoZXgpCQlUaGFsZXMgVHJhbnNwb3J0YXRpb24gU3lzdGVtcyBHbWJICis0QzMwODkgICAgIChiYXNlIDE2KQkJVGhhbGVzIFRyYW5zcG9ydGF0aW9uIFN5c3RlbXMgR21iSAorCQkJCUJpZXJ3ZWcgMgorCQkJCUFybnN0YWR0IFRodXJpbmdpYSA5OTMxMAorCQkJCUdFUk1BTlkKKworNEMtMzItMkQgICAoaGV4KQkJVEVMRURBVEEgTkVUV09SS1MKKzRDMzIyRCAgICAgKGJhc2UgMTYpCQlURUxFREFUQSBORVRXT1JLUworCQkJCTEwIEhhc2FkbmFvdCBTdHJlZXQKKwkJCQlIRVJaTElZQSAgNDYxMjAKKwkJCQlJU1JBRUwKKworNEMtMzItRDkgICAoaGV4KQkJTSBSdXR0eSBIb2xkaW5ncyBQdHkuIEx0ZC4KKzRDMzJEOSAgICAgKGJhc2UgMTYpCQlNIFJ1dHR5IEhvbGRpbmdzIFB0eS4gTHRkLgorCQkJCVVuaXQgMSwgNCBCZWF1bW9udCBSb2FkCisJCQkJTW91bnQgS3VyaW5nLUdhaSBOZXcgU291dGggV2FsZXMgMjA4MAorCQkJCUFVU1RSQUxJQQorCis0Qy0zOS0xMCAgIChoZXgpCQlOZXd0ZWsgRWxlY3Ryb25pY3MgY28uLCBMdGQuCis0QzM5MTAgICAgIChiYXNlIDE2KQkJTmV3dGVrIEVsZWN0cm9uaWNzIGNvLiwgTHRkLgorCQkJCUJ5dWNrc2FuLVN1bnlvdW5nIFRlY2hub3BpYSAxMDA0LAorCQkJCU9qZW9uLURvbmcsCisJCQkJVWl3YW5nLUNpdHkgS3l1bmdnaS1EbyA0MzctODIxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzRDLTNCLTc0ICAgKGhleCkJCVZPR1RFQyhILksuKSBDby4sIEx0ZAorNEMzQjc0ICAgICAoYmFzZSAxNikJCVZPR1RFQyhILksuKSBDby4sIEx0ZAorCQkJCUZsYXQgMDEsIDIvRiwgT24gTmluZyBCdWlsZGluZywKKwkJCQk0MjUtNDMxIEtpbmcncyBSb2FkLE5vcnRoIFBvaW50CisJCQkJSG9uZyBLb25nICA5OTkwNzcKKwkJCQlDSElOQQorCis0Qy00Qi02OCAgIChoZXgpCQlNb2JpbGUgRGV2aWNlLCBJbmMuIAorNEM0QjY4ICAgICAoYmFzZSAxNikJCU1vYmlsZSBEZXZpY2UsIEluYy4gCisJCQkJIDhGLTEsIE5vLiAxNDUsIFNpYW5qaGVuZyA5dGggUmQuLCAKKwkJCQlKaHViZWkgQ2l0eSwgIEhzaW5jaHUgQ291bnR5ICAzMDI1MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNEMtNTQtMjcgICAoaGV4KQkJTGluZXBybyBTcC4geiBvLm8uCis0QzU0MjcgICAgIChiYXNlIDE2KQkJTGluZXBybyBTcC4geiBvLm8uCisJCQkJdWwuIE1pZWR6aWFuYSAxMQorCQkJCVdhcnN6YXdhIG1hem93aWVja2llIDAwLTgzNQorCQkJCVBPTEFORAorCis0Qy01NC05OSAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCis0QzU0OTkgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxMDEwOAorCQkJCUNISU5BCisKKzRDLTU1LTg1ICAgKGhleCkJCUhhbWlsdG9uIFN5c3RlbXMKKzRDNTU4NSAgICAgKGJhc2UgMTYpCQlIYW1pbHRvbiBTeXN0ZW1zCisJCQkJMzE0MyBQcm9kdWN0aW9uIERyaXZlCisJCQkJRmFpcmZpZWxkIE9IIDQ1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis0Qy01RC1DRCAgIChoZXgpCQlPeSBGaW5uaXNoIEVsZWN0cmljIFZlaGljbGUgVGVjaG5vbG9naWVzIEx0ZAorNEM1RENEICAgICAoYmFzZSAxNikJCU95IEZpbm5pc2ggRWxlY3RyaWMgVmVoaWNsZSBUZWNobm9sb2dpZXMgTHRkCisJCQkJTWFqYXZhbnRpZSAxMAorCQkJCVRVVVNVTEEgIEZJLTA0MzIwCisJCQkJRklOTEFORAorCis0Qy01Ri1EMiAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudAorNEM1RkQyICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50CisJCQkJNzc3IEVhc3QgTWlkZGxlZmllbGQgUm9hZAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzRDLTYwLUQ1ICAgKGhleCkJCWFpclBvaW50ZSBvZiBOZXcgSGFtcHNoaXJlCis0QzYwRDUgICAgIChiYXNlIDE2KQkJYWlyUG9pbnRlIG9mIE5ldyBIYW1wc2hpcmUKKwkJCQkzNUUgSW5kdXN0cmlhbCBXYXkKKwkJCQlSb2NoZXN0ZXIgTkggMDM4NjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzRDLTYwLURFICAgKGhleCkJCU5FVEdFQVIKKzRDNjBERSAgICAgKGJhc2UgMTYpCQlORVRHRUFSCisJCQkJMzUwIEVhc3QgUGx1bWVyaWEgRHJpdmUKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis0Qy02My1FQiAgIChoZXgpCQlBcHBsaWNhdGlvbiBTb2x1dGlvbnMgKEVsZWN0cm9uaWNzIGFuZCBWaXNpb24pIEx0ZAorNEM2M0VCICAgICAoYmFzZSAxNikJCUFwcGxpY2F0aW9uIFNvbHV0aW9ucyAoRWxlY3Ryb25pY3MgYW5kIFZpc2lvbikgTHRkCisJCQkJVGhlIFJpdmVyc2lkZSBDZW50cmUKKwkJCQlSYWlsd2F5IExhbmUKKwkJCQlMZXdlcyBFYXN0IFN1c3NleCBCTjcgMkFRCisJCQkJVU5JVEVEIEtJTkdET00KKworNEMtNjQtRDkgICAoaGV4KQkJR3Vhbmdkb25nIExlYXdpbiBHcm91cCBDby4sIEx0ZAorNEM2NEQ5ICAgICAoYmFzZSAxNikJCUd1YW5nZG9uZyBMZWF3aW4gR3JvdXAgQ28uLCBMdGQKKwkJCQkxMC9GLCBEb21haW4gQmxkZyxOby44IEtlamkgUm9hZChFKSxIaVRlY2ggRGV2ZWxvcG1lbnQgRGlzdHJpY3QsCisJCQkJU2hhbnRvdSBHdWFuZ2RvbmcgNTE1MDQxCisJCQkJQ0hJTkEKKworNEMtNzItQjkgICAoaGV4KQkJUGVnYXRyb24gQ29ycG9yYXRpb24KKzRDNzJCOSAgICAgKGJhc2UgMTYpCQlQZWdhdHJvbiBDb3Jwb3JhdGlvbgorCQkJCU5vLiA3NiwgTGlnb25nIFN0LiwgQmVpdG91CisJCQkJVGFpcGVpIFRhaXdhbiAxMTIKKwkJCQlUQUlXQU4sIFBST1ZJTkNFIE9GIENISU5BCisKKzRDLTczLTY3ICAgKGhleCkJCUdlbml1cyBCeXRlcyBTb2Z0d2FyZSBTb2x1dGlvbnMgR21iSAorNEM3MzY3ICAgICAoYmFzZSAxNikJCUdlbml1cyBCeXRlcyBTb2Z0d2FyZSBTb2x1dGlvbnMgR21iSAorCQkJCU1lcmlhbnN0ci4gMzAKKwkJCQlCb2NodW0gTlJXIDQ0ODAxCisJCQkJR0VSTUFOWQorCis0Qy03My1BNSAgIChoZXgpCQlLT1ZFCis0QzczQTUgICAgIChiYXNlIDE2KQkJS09WRQorCQkJCTE0IE4uIFBlb3JpYSBTdHJlZXQKKwkJCQlTdWl0ZSAySAorCQkJCUNoaWNhZ28gSUwgNjA2MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzRDLTc3LTRGICAgKGhleCkJCUVtYmVkZGVkIFdpcmVsZXNzIExhYnMgCis0Qzc3NEYgICAgIChiYXNlIDE2KQkJRW1iZWRkZWQgV2lyZWxlc3MgTGFicyAKKwkJCQk3MDIgTGV2ZWwgNyBVcHRvd24gMiBOby4yIAorCQkJCUphbGFuIFNTMjEvMzcgRGFtYW5zYXJhIFVwdG93bgorCQkJCVBldGFsaW5nIEpheWEgU2VsYW5nb3IgNDc0MDAKKwkJCQlNQUxBWVNJQQorCis0Qy03OC05NyAgIChoZXgpCQlBcnJvd2hlYWQgQWxhcm0gUHJvZHVjdHMgTHRkCis0Qzc4OTcgICAgIChiYXNlIDE2KQkJQXJyb3doZWFkIEFsYXJtIFByb2R1Y3RzIEx0ZAorCQkJCTM0NEIgUm9zZWRhbGUgUm9hZAorCQkJCUFsYmFueQorCQkJCUF1Y2tsYW5kIEF1Y2tsYW5kIDA3NTEKKwkJCQlORVcgWkVBTEFORAorCis0Qy04MC05MyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzRDODA5MyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzRDLThCLTU1ICAgKGhleCkJCUdydXBvIERpZ2ljb24KKzRDOEI1NSAgICAgKGJhc2UgMTYpCQlHcnVwbyBEaWdpY29uCisJCQkJUnVhIE5pc3NpbiBDYXN0aWVsLCA2NDAKKwkJCQlHcmF2YXRh7SBSaW8gR3JhbmRlIGRvIFN1bCA5NDA0NTQyMAorCQkJCUJSQVpJTAorCis0Qy05OC1FRiAgIChoZXgpCQlaZW8KKzRDOThFRiAgICAgKGJhc2UgMTYpCQlaZW8KKwkJCQkzMjAgTmV2YWRhIFN0CisJCQkJNHRoIEZsb29yCisJCQkJTmV3dG9uICBNQSAwMjQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworNEMtOUUtODAgICAoaGV4KQkJS1lPS0tPIEVMRUNUUklDIENvLiwgTHRkLgorNEM5RTgwICAgICAoYmFzZSAxNikJCUtZT0tLTyBFTEVDVFJJQyBDby4sIEx0ZC4KKwkJCQk1LTctMjAsIE1vdG9tYWNoaS1kb3JpLCBDaHVvLUt1CisJCQkJS29iZSBIeW9nbyA2NTAwMDIyCisJCQkJSkFQQU4KKworNEMtOUUtRTQgICAoaGV4KQkJSGFueWFuZyBOYXZpY29tIENvLixMdGQuCis0QzlFRTQgICAgIChiYXNlIDE2KQkJSGFueWFuZyBOYXZpY29tIENvLixMdGQuCisJCQkJNzEzLCBHd2FucHllb25nLWRvbmcsIFl1c3VuZy1ndQorCQkJCURhZWplb24gIDMwNS01MDkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNEMtQTctNEIgICAoaGV4KQkJQWxjYXRlbCBMdWNlbnQKKzRDQTc0QiAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIEx1Y2VudAorCQkJCVZpYSB0cmVudG8sIDMwCisJCQkJVmltZXJjYXRlIE1CIDIwMDU5CisJCQkJSVRBTFkKKworNEMtQUEtMTYgICAoaGV4KQkJQXp1cmVXYXZlIFRlY2hub2xvZ2llcyAoU2hhbmdoYWkpIEluYy4KKzRDQUExNiAgICAgKGJhc2UgMTYpCQlBenVyZVdhdmUgVGVjaG5vbG9naWVzIChTaGFuZ2hhaSkgSW5jLgorCQkJCU5vLjggTGFuZSA2NiwgQ2hlbmJhbyBSb2FkLCBNYWx1IFRvd24gSmlhZGluZyBEaXN0cmljdAorCQkJCVNoYW5naGFpICAyMDE4MDEKKwkJCQlDSElOQQorCis0Qy1BQy0wQSAgIChoZXgpCQlaVEUgQ29ycG9yYXRpb24KKzRDQUMwQSAgICAgKGJhc2UgMTYpCQlaVEUgQ29ycG9yYXRpb24KKwkJCQkxMi9GLFpURSBSJkQgQnVpbGRpbmcsS2VqaW5hbiBSb2FkLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis0Qy1CMS02QyAgIChoZXgpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQgCis0Q0IxNkMgICAgIChiYXNlIDE2KQkJSFVBV0VJIFRFQ0hOT0xPR0lFUyBDTy4sTFREIAorCQkJCUh1YVdlaSBJbmR1c3RyaWFsIEJhc2WjrEJhblRpYW4sTG9uZ0dhbmcKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworNEMtQjEtOTkgICAoaGV4KQkJQXBwbGUsIEluYy4KKzRDQjE5OSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgaW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyAgQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzRDLUI0LUVBICAgKGhleCkJCUhSRCAoUykgUFRFLiwgTFRELgorNENCNEVBICAgICAoYmFzZSAxNikJCUhSRCAoUykgUFRFLiwgTFRELgorCQkJCUxvdCA3LCBCbG9jayA5LCBQaGFzZSAxLCBDYXZpdGUgRWNvLVpvbmUsCisJCQkJUm9zYXJpbyBDYXZpdGUgNDEwNgorCQkJCVBISUxJUFBJTkVTCisKKzRDLUI5LUM4ICAgKGhleCkJCUNPTkVUIENPLiwgTFRELgorNENCOUM4ICAgICAoYmFzZSAxNikJCUNPTkVUIENPLiwgTFRELgorCQkJCTItOCxISUdBU0hJSklNQS1DSE8KKwkJCQlJQ0hJTk9NSVlBIEFJQ0hJIDQ5MS0wMDc0CisJCQkJSkFQQU4KKworNEMtQkEtQTMgICAoaGV4KQkJQmlzb24gRWxlY3Ryb25pY3MgSW5jLgorNENCQUEzICAgICAoYmFzZSAxNikJCUJpc29uIEVsZWN0cm9uaWNzIEluYy4KKwkJCQkzRi4sIE5vLjI4LCBMYW5lIDU4MywgUnVlaWd1YW5nIFJkLiwgTmVpaHUgRGlzdHJpY3QKKwkJCQlUYWlwZWkgQ2l0eSAgMTE0OTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzRDLUM0LTUyICAgKGhleCkJCVNoYW5nIEhhaSBUeWQuIEVsZWN0b24gVGVjaG5vbG9neSBMdGQuCis0Q0M0NTIgICAgIChiYXNlIDE2KQkJU2hhbmcgSGFpIFR5ZC4gRWxlY3RvbiBUZWNobm9sb2d5IEx0ZC4KKwkJCQlSb29tIE5vLjUsTjAuMzk2LEd1aUxpbiBSb2FkLCAKKwkJCQlYdSBIdWkgRGlzdHJpY3QKKwkJCQlTaGFuZyBIYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzRDLUM2LTAyICAgKGhleCkJCVJhZGlvcywgSW5jLgorNENDNjAyICAgICAoYmFzZSAxNikJCVJhZGlvcywgSW5jLgorCQkJCTE0MDggQ2VudGVyIEF2ZW51ZQorCQkJCU9vc3RidXJnIFdpc2NvbnNpbiA1MzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworNEMtQzktNEYgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQKKzRDQzk0RiAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudAorCQkJCTYwMCBNYXJjaCBSb2FkCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLIDJFNgorCQkJCUNBTkFEQQorCis0Qy1FNi03NiAgIChoZXgpCQlCdWZmYWxvIEluYy4KKzRDRTY3NiAgICAgKGJhc2UgMTYpCQlCdWZmYWxvIEluYy4KKwkJCQkxNSwgU2hpYmF0YSBIb25kb3JpIDQtY2hvbWUKKwkJCQlNaW5hbWkta3UsIE5hZ295YSBBaWNoaSA0NTctODUyMAorCQkJCUpBUEFOCisKKzRDLUVCLTQyICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorNENFQjQyICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworNEMtRUQtREUgICAoaGV4KQkJQXNrZXkgQ29tcHV0ZXIgQ29ycAorNENFRERFICAgICAoYmFzZSAxNikJCUFza2V5IENvbXB1dGVyIENvcnAKKwkJCQkxMGYsbm8uMTE5LGNoaWVua2FuZyByZCxjaHVuZy1obywKKwkJCQlUQUlQRUkgMjM1ODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzRDLUY3LTM3ICAgKGhleCkJCVNhbUppIEVsZWN0cm9uaWNzIENvLiwgTHRkCis0Q0Y3MzcgICAgIChiYXNlIDE2KQkJU2FtSmkgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKwkJCQk0NTktMjEsIEdhc2FuLWRvbmcsIEd1bWNodW4ta3UKKwkJCQlTZW91bCAgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis1MC0wMC04QyAgIChoZXgpCQlIb25nIEtvbmcgVGVsZWNvbW11bmljYXRpb25zIChIS1QpIExpbWl0ZWQKKzUwMDA4QyAgICAgKGJhc2UgMTYpCQlIb25nIEtvbmcgVGVsZWNvbW11bmljYXRpb25zIChIS1QpIExpbWl0ZWQKKwkJCQk0MS9GLCBQQ0NXIFRvd2VyLCBUYWlrb28gUGxhY2UsCisJCQkJUXVhcnJ5IEJheSwgCisJCQkJSE9ORyBLT05HCisKKzUwLTA1LTNEICAgKGhleCkJCUN5V2VlIEdyb3VwIEx0ZAorNTAwNTNEICAgICAoYmFzZSAxNikJCUN5V2VlIEdyb3VwIEx0ZAorCQkJCTNGLCBOby4yOCwgTGFuZTEyOAorCQkJCUppbmcgWWUgMXN0IFJvYWQKKwkJCQlUYWlwZWkgIDEwNDYyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis1MC0wQi0zMiAgIChoZXgpCQlGb3hkYSBUZWNobm9sb2d5IEluZHVzdHJpYWwoU2hlblpoZW4pQ28uLExURAorNTAwQjMyICAgICAoYmFzZSAxNikJCUZveGRhIFRlY2hub2xvZ3kgSW5kdXN0cmlhbChTaGVuWmhlbilDby4sTFRECisJCQkJRyBGLEJsb2NrMSxGb3hkYSBJbmR1c3RyaWFsIFBhcmssIExhbnpodSBSZCwgU2hlbnpoZW4gR3JhbmQgSW5kdXN0cmlhbCBab25lLCBMb25nZ2FuZyBEaXN0cmljdCxTaGVuemhlbiw1MTgxMjIsUFIgQ2hpbmEKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTIyCisJCQkJQ0hJTkEKKworNTAtMEUtNkQgICAoaGV4KQkJVHJhZmZpY0Nhc3QgSW50ZXJuYXRpb25hbAorNTAwRTZEICAgICAoYmFzZSAxNikJCVRyYWZmaWNDYXN0IEludGVybmF0aW9uYWwKKwkJCQkyODAxIENvaG8gU3RyZWV0CisJCQkJU3VpdGUgMTAwCisJCQkJTWFkaXNvbiBXSSA1MzcxMworCQkJCVVOSVRFRCBTVEFURVMKKworNTAtMjItNjcgICAoaGV4KQkJUGl4ZUxJTksKKzUwMjI2NyAgICAgKGJhc2UgMTYpCQlQaXhlTElOSworCQkJCTMwMzAgQ29ucm95IFJvYWQKKwkJCQlPdHRhd2EgT250YXJpbyBLMUcgNkMyCisJCQkJQ0FOQURBCisKKzUwLTI1LTJCICAgKGhleCkJCU5ldGhyYSBJbWFnaW5nIEluY29ycG9yYXRlZAorNTAyNTJCICAgICAoYmFzZSAxNikJCU5ldGhyYSBJbWFnaW5nIEluY29ycG9yYXRlZAorCQkJCTI4NTUgQm93ZXJzIEF2ZQorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUxCisJCQkJVU5JVEVEIFNUQVRFUworCis1MC0yNi05MCAgIChoZXgpCQlGdWppdHN1IExpbWl0ZWQKKzUwMjY5MCAgICAgKGJhc2UgMTYpCQlGdWppdHN1IExpbWl0ZWQKKwkJCQlNdXNhc2hpLWtvc3VnaSBUb3dlciBQbGFjZSBCbGRnLiwKKwkJCQk0MDMsIEtvc3VnaS1jaG8gMS1jaG9tZSwgTmFrYWhhcmEta3UKKwkJCQlLYXdhc2FraSBLYW5hZ2F3YSAyMTEtMDA2MworCQkJCUpBUEFOCisKKzUwLTJBLTdFICAgKGhleCkJCVNtYXJ0IGVsZWN0cm9uaWMgR21iSAorNTAyQTdFICAgICAoYmFzZSAxNikJCVNtYXJ0IGVsZWN0cm9uaWMgR21iSAorCQkJCUluZHVzdHJpZSBTdHIuIDI5CisJCQkJU3QuIEdlb3JnZW4gIDc4MTEyCisJCQkJR0VSTUFOWQorCis1MC0yQS04QiAgIChoZXgpCQlUZWxla29tIFJlc2VhcmNoIGFuZCBEZXZlbG9wbWVudCBTZG4gQmhkCis1MDJBOEIgICAgIChiYXNlIDE2KQkJVGVsZWtvbSBSZXNlYXJjaCBhbmQgRGV2ZWxvcG1lbnQgU2RuIEJoZAorCQkJCVRNUk5EIElubm92YXRpb24gQ2VudHJlCisJCQkJTGluZ2thcmFuIFRla25va3JhdCBUaW11cgorCQkJCUN5YmVyamF5YSBTZWxhbmdvciA2MzAwMAorCQkJCU1BTEFZU0lBCisKKzUwLTJELTFEICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCis1MDJEMUQgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlZcnR0aXBlbGxvbnRpZSA2CisJCQkJT3VsdSBPdSA5MDIzMAorCQkJCUZJTkxBTkQKKworNTAtMkQtQTIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis1MDJEQTIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis1MC0yRC1GNCAgIChoZXgpCQlQaHl0ZWMgTWVzc3RlY2huaWsgR21iSAorNTAyREY0ICAgICAoYmFzZSAxNikJCVBoeXRlYyBNZXNzdGVjaG5payBHbWJICisJCQkJUm9iZXJ0LUtvY2gtU3RyYcODxbhlIDM5IAorCQkJCU1haW56IFJoZWlubGFuZC1QZmFseiA1NTEyOQorCQkJCUdFUk1BTlkKKworNTAtMkUtQ0UgICAoaGV4KQkJQXNhaGkgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNTAyRUNFICAgICAoYmFzZSAxNikJCUFzYWhpIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkyOS0yNSBLYXJpeWFkbworCQkJCUthd2FzYWtpLXNoaSwgTmFrYWhhcmEta3UKKwkJCQlLYW5hZ2F3YS1rZW4gMjExLTAwMjIKKwkJCQlKQVBBTgorCis1MC0zRC1FNSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis1MDNERTUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis1MC00OC1FQiAgIChoZXgpCQlCRUlKSU5HIEhBSUhFSklOU0hFTkcgTkVUV09SSyBURUNITk9MT0dZIENPLiBMVEQuCis1MDQ4RUIgICAgIChiYXNlIDE2KQkJQkVJSklORyBIQUlIRUpJTlNIRU5HIE5FVFdPUksgVEVDSE5PTE9HWSBDTy4gTFRELgorCQkJCVJNIDcwMSBVbml0IDIgSHVpcm9uZyBCbGRnLiBOby4xMDYgTGlhbmh1YWNoaSBFYXN0IFJELiBYdWFud3UgRGlzdC4gQmVpamluZworCQkJCUJFSUpJTkcgQ0hJTkEgMTAwMDU1CisJCQkJQ0hJTkEKKworNTAtNEEtNUUgICAoaGV4KQkJTWFzaW1vIENvcnBvcmF0aW9uCis1MDRBNUUgICAgIChiYXNlIDE2KQkJTWFzaW1vIENvcnBvcmF0aW9uCisJCQkJNDAgUGFya2VyCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzUwLTU2LTYzICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCis1MDU2NjMgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzUwLTU3LUE4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzUwNTdBOCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis1MC02MC0yOCAgIChoZXgpCQlYaXJydXMgSW5jLgorNTA2MDI4ICAgICAoYmFzZSAxNikJCVhpcnJ1cyBJbmMuCisJCQkJMjEwMSBDT1JQT1JBVEUgQ0VOVEVSIERSCisJCQkJVGhvdXNhbmQgT2FrcyBDQUxJRk9STklBIDkxMzIwCisJCQkJVU5JVEVEIFNUQVRFUworCis1MC02My0xMyAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorNTA2MzEzICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMworCQkJCUNISU5BCisKKzUwLTY0LTQxICAgKGhleCkJCUdyZWVubGVlCis1MDY0NDEgICAgIChiYXNlIDE2KQkJR3JlZW5sZWUKKwkJCQkyMTkgUyBNYWluIFN0IAorCQkJCURhbGxhcyBUWCA3NjEwNAorCQkJCVVOSVRFRCBTVEFURVMKKworNTAtNjctRjAgICAoaGV4KQkJWnlYRUwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KKzUwNjdGMCAgICAgKGJhc2UgMTYpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorCQkJCU5vLjYgSW5ub3ZhdGlvbiBSb2FkIElJLAorCQkJCVNjaWVuY2UgUGFyaywKKwkJCQlIc2luLUNodSwgICAyMjA5OTUwNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNTAtNkYtOUEgICAoaGV4KQkJV2ktRmkgQWxsaWFuY2UKKzUwNkY5QSAgICAgKGJhc2UgMTYpCQlXaS1GaSBBbGxpYW5jZQorCQkJCTM5MjUgVy4gQnJha2VyIExhbmUKKwkJCQlBdXN0aW4gVFggNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzUwLTcwLUU1ICAgKGhleCkJCUhlIFNoYW4gV29ybGQgRmFpciBFbGVjdHJvbmljcyBUZWNobm9sb2d5IExpbWl0ZWQKKzUwNzBFNSAgICAgKGJhc2UgMTYpCQlIZSBTaGFuIFdvcmxkIEZhaXIgRWxlY3Ryb25pY3MgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJTmV3IE1hdGVyaWFsIEJhc2UsIEdvbmdoZSBUb3duCisJCQkJSGVzaGFuIENpdHkKKwkJCQlKaWFuZ21lbiBHdWFuZ2RvbmcgNTI5NzI4CisJCQkJQ0hJTkEKKworNTAtNzYtQTYgICAoaGV4KQkJRWNpbCBJbmZvcm1hdGljYSBJbmQuIENvbS4gTHRkYQorNTA3NkE2ICAgICAoYmFzZSAxNikJCUVjaWwgSW5mb3JtYXRpY2EgSW5kLiBDb20uIEx0ZGEKKwkJCQlBdi4gQXJhZ3VhY2VtYSwgMzg4CisJCQkJQmFydWVyaSBTYW8gUGF1bG8gMDY0NjAtMDcwCisJCQkJQlJBWklMCisKKzUwLTc5LTVCICAgKGhleCkJCUludGVyZXhwb3J0IFRlbGVjb211bmljYWNpb25lcyBTLkEuCis1MDc5NUIgICAgIChiYXNlIDE2KQkJSW50ZXJleHBvcnQgVGVsZWNvbXVuaWNhY2lvbmVzIFMuQS4KKwkJCQlDZXJybyBDb2xvcmFkbyA1MjQwIHBpc28gMTQKKwkJCQlTYW50aWFnbyBSZWdpb24gTWV0cm9wb2xpdGFuYSA4MzIwMDAwCisJCQkJQ0hJTEUKKworNTAtN0QtMDIgICAoaGV4KQkJQklPRElUCis1MDdEMDIgICAgIChiYXNlIDE2KQkJQklPRElUCisJCQkJQ2FsbGUgR3VzdGF2ZSBFaWZmZWwgMworCQkJCVBhcnF1ZSBUZWNub2xvZ2ljbworCQkJCVBhdGVybmEgVmFsZW5jaWEgNDY5ODAKKwkJCQlTUEFJTgorCis1MC04Ny1COCAgIChoZXgpCQlOdXZ5eW8gSW5jCis1MDg3QjggICAgIChiYXNlIDE2KQkJTnV2eXlvIEluYworCQkJCTEgU215dGhlIFJkCisJCQkJU3VpdGUgMQorCQkJCUNhcmxldG9uIFBsYWNlIE9udGFyaW8gSzdDNEo0CisJCQkJQ0FOQURBCisKKzUwLThBLTQyICAgKGhleCkJCVVwdG1hdGUgVGVjaG5vbG9neSBDby4sIExURAorNTA4QTQyICAgICAoYmFzZSAxNikJCVVwdG1hdGUgVGVjaG5vbG9neSBDby4sIExURAorCQkJCTZGLiwgTm8uNSwgSmlhbiAxc3QgUmQuLFpob25naGUgRGlzdC4sIAorCQkJCU5ldyBUYWlwZWkgQ2l0eSAgMjM1NTgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzUwLThBLUNCICAgKGhleCkJCVNIRU5aSEVOIE1BWE1BREUgVEVDSE5PTE9HWSBDTy4sIExURC4KKzUwOEFDQiAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBNQVhNQURFIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJQnVpbGRpbmcgMyxOby41IEZ1cWlhbyBJbmR1c3RyaWFsIEVzdGF0ZSwKKwkJCQlRaWFvdG91LEZ1eW9uZyxCYW9hbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDMKKwkJCQlDSElOQQorCis1MC04Qy03NyAgIChoZXgpCQlESVJNRUlFUiBTY2hhbmt0ZWNobmlrIEdtYkggJkNvIEtHCis1MDhDNzcgICAgIChiYXNlIDE2KQkJRElSTUVJRVIgU2NoYW5rdGVjaG5payBHbWJIICZDbyBLRworCQkJCUFsZm9ucy1Hb3BwZWwtU3RyYWJlIDUKKwkJCQk5MjUyNiBPYmVydmllY2h0YWNoICAKKwkJCQlHRVJNQU5ZCisKKzUwLTkzLTRGICAgKGhleCkJCUdyYWR1YWwgVGVjbm9sb2dpYSBMdGRhLgorNTA5MzRGICAgICAoYmFzZSAxNikJCUdyYWR1YWwgVGVjbm9sb2dpYSBMdGRhLgorCQkJCVJvZC4gQWxraW5kYXIgTS4gSnVucXVlaXJhLCBLbSAzNCwyCisJCQkJQ2FpeGEgUG9zdGFsIDEwOAorCQkJCUJyYWdhbudhIFBhdWxpc3RhIFPjbyBQYXVsbyAxMjkxNC05NzAKKwkJCQlCUkFaSUwKKworNTAtOTctNzIgICAoaGV4KQkJV2VzdGluZ2hvdXNlIERpZ2l0YWwKKzUwOTc3MiAgICAgKGJhc2UgMTYpCQlXZXN0aW5naG91c2UgRGlnaXRhbAorCQkJCTUwMCBOLiBTdGF0ZSBDb2xsZWdlIEJsdmQuCisJCQkJU3VpdGUgMTMwMAorCQkJCU9yYW5nZSBDQSA5Mjg2OAorCQkJCVVOSVRFRCBTVEFURVMKKworNTAtQTYtRTMgICAoaGV4KQkJRGF2aWQgQ2xhcmsgQ29tcGFueQorNTBBNkUzICAgICAoYmFzZSAxNikJCURhdmlkIENsYXJrIENvbXBhbnkKKwkJCQkzNjAgRnJhbmtsaW4gU3QuCisJCQkJV29yY2VzdGVyIE1BIDAxNjE1CisJCQkJVU5JVEVEIFNUQVRFUworCis1MC1BNy0zMyAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzUwQTczMyAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUKKwkJCQlTdWl0ZSAxMDEKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzUwLUFGLTczICAgKGhleCkJCVNoZW56aGVuIEJpdGxhbmQgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzUwQUY3MyAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBCaXRsYW5kIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMS00Riw0NCBCdWlsZGluZyxUYW5nbGFuZyBJbmR1c3RyaWFsIFBhcmsgYW5kIDEtNkYsIzcgQnVpbGRpbmcsWGlMaSBUb25nZnV5dSBJbmR1c3RyaWFsIFRvd24sTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTUKKwkJCQlDSElOQQorCis1MC1DNS04RCAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCis1MEM1OEQgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkgCisJCQkJVU5JVEVEIFNUQVRFUworCis1MC1DOS03MSAgIChoZXgpCQlHTiBOZXRjb20gQS9TCis1MEM5NzEgICAgIChiYXNlIDE2KQkJR04gTmV0Y29tIEEvUworCQkJCUxhdXRydXBiamVyZyA3CisJCQkJUC5PLiBCb3ggOTkKKwkJCQlCYWxsZXJ1cCAgREstMjc1MAorCQkJCURFTk1BUksKKworNTAtQ0MtRjggICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvIE1lY2hhbmljcworNTBDQ0Y4ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3RybyBNZWNoYW5pY3MKKwkJCQlNZXRhbiBEb25nIDMxNCwgWW91bmd0b25nIEd1CisJCQkJU3V3b24gS3l1bmctZ2kgRG8uIDQ0My03NDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNTAtQ0UtNzUgICAoaGV4KQkJTWVhc3kgRWxlY3Ryb25pY3MgTHRkCis1MENFNzUgICAgIChiYXNlIDE2KQkJTWVhc3kgRWxlY3Ryb25pY3MgTHRkCisJCQkJIzE1MDYsIEJsb2NrIEIsIEhhaSBTb25nIEJsZGcsIFRhaXJhbiA5dGggUm9hZAorCQkJCUNoZSBHb25nIE1pYW8sIEZ1dGlhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nIERvbmcgIDUxODA0MAorCQkJCUNISU5BCisKKzUwLUQyLTc0ICAgKGhleCkJCVN0ZWZmZXMgQ29ycG9yYXRpb24KKzUwRDI3NCAgICAgKGJhc2UgMTYpCQlTdGVmZmVzIENvcnBvcmF0aW9uCisJCQkJMzA1MCBIaWdod2F5IDIyIE5vcnRoCisJCQkJRGlja2luc29uIE5EIDU4NjAxCisJCQkJVU5JVEVEIFNUQVRFUworCis1MC1ENi1ENyAgIChoZXgpCQlUYWthaGF0YSBQcmVjaXNpb24KKzUwRDZENyAgICAgKGJhc2UgMTYpCQlUYWthaGF0YSBQcmVjaXNpb24KKwkJCQk0LTE3LTEgU3VuaXlvc2hpCisJCQkJS29mdSBTaGkgWWFtYW5hc2hpIDQwMC0wODUxCisJCQkJSkFQQU4KKworNTAtRTUtNDkgICAoaGV4KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKzUwRTU0OSAgICAgKGJhc2UgMTYpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCU5vLjIxNSxOYW4tUGluZyBSb2FkLAorCQkJCVBpbi1KZW4gQ2l0eSwgIFRhb3l1YW4gMzI0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis1MC1FQS1ENiAgIChoZXgpCQlBcHBsZSwgSW5jLgorNTBFQUQ2ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBpbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis1MC1FQi0xQSAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYworNTBFQjFBICAgICAoYmFzZSAxNikJCUJyb2NhZGUgQ29tbXVuaWNhdGlvbnMgU3lzdGVtcywgSW5jCisJCQkJMTc0NSBUZWNobm9sb2d5IERyCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzUwLUVELTk0ICAgKGhleCkJCUVnYXRlbCBTTAorNTBFRDk0ICAgICAoYmFzZSAxNikJCUVnYXRlbCBTTAorCQkJCVBhcnF1ZSBUZWNub2xvZ2ljbyBkZSBHYWxpY2lhCisJCQkJRWRpZmljaW8gRWdhdGVsLCBhZHYuIE91cmVuc2UsIG7vv70gMQorCQkJCU91cmVuc2UgIDMyOTAxCisJCQkJU1BBSU4KKworNTAtRjAtMDMgICAoaGV4KQkJT3BlbiBTdGFjaywgSW5jLgorNTBGMDAzICAgICAoYmFzZSAxNikJCU9wZW4gU3RhY2ssIEluYy4KKwkJCQlBZHZhbmNlZCBSZXNlYXJjaCBDZW50ZXIgIzQxMQorCQkJCVlhLVRhcCA2OAorCQkJCUJ1bi1EYW5nLCBTZW9uZy1OYW0gR3l1bmctR2kgNDYzLTgxNgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis1MC1GNi0xQSAgIChoZXgpCQlLdW5zaGFuIEpBREUgVGVjaG5vbG9naWVzIGNvLiwgTHRkLgorNTBGNjFBICAgICAoYmFzZSAxNikJCUt1bnNoYW4gSkFERSBUZWNobm9sb2dpZXMgY28uLCBMdGQuCisJCQkJMTJ0aCBGbG9vciwgU291dGhlcm4gQnVpbGRpbmcsIFB1ZG9uZyBTb2Z0d2FyZSBQYXJrLDgyOCBYdWV5dWFuIFJvYWQsIEJhY2hlbmcgVG93biAKKwkJCQlLdW5zaGFuIEppYW5nc3UgMjE1MzExCisJCQkJQ0hJTkEKKworNTAtRkEtQUIgICAoaGV4KQkJTC10ZWsgZC5vLm8uCis1MEZBQUIgICAgIChiYXNlIDE2KQkJTC10ZWsgZC5vLm8uCisJCQkJT2JydG5hIGNlc3RhIDE4CisJCQkJU2VudGplcm5laiAgODMxMAorCQkJCVNMT1ZFTklBCisKKzUwLUZDLTMwICAgKGhleCkJCVRyZWVob3VzZSBMYWJzCis1MEZDMzAgICAgIChiYXNlIDE2KQkJVHJlZWhvdXNlIExhYnMKKwkJCQk2MDEgR3JlYXQgT2FrcyBEci4KKwkJCQlTdGUuIEItMTAzCisJCQkJUm91bmQgUm9jayBUWCA3ODY4MQorCQkJCVVOSVRFRCBTVEFURVMKKworNTQtMDMtRjUgICAoaGV4KQkJRUJOIFRlY2hub2xvZ3kgQ29ycC4KKzU0MDNGNSAgICAgKGJhc2UgMTYpCQlFQk4gVGVjaG5vbG9neSBDb3JwLgorCQkJCTEwRiwgTm8uOTAsIFNlYy4gMSwgU2ludGFpIDV0aCBSZC4KKwkJCQlTaWpoaWggQ2l0eSBUYWlwZWkgQ291bnR5IDIyMTAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis1NC0wNC05NiAgIChoZXgpCQlHaWdhd2F2ZSBMVEQKKzU0MDQ5NiAgICAgKGJhc2UgMTYpCQlHaWdhd2F2ZSBMVEQKKwkJCQlHSUdBV0FWRSBURUNITklDQUwgQ0VOVFJFCisJCQkJRWFybHMgQ29sbmUgQnVzaW5lc3MgUGFyaworCQkJCUNvbGNoZXN0ZXIgRVNTRVggQ082Mk5TCisJCQkJVU5JVEVEIEtJTkdET00KKworNTQtMDQtQTYgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCis1NDA0QTYgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLCBQZWl0b3UsIAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis1NC0wNS01RiAgIChoZXgpCQlBbGNhdGVsIEx1Y2VudAorNTQwNTVGICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTHVjZW50CisJCQkJVmlhIFRyZW50bywgMzAKKwkJCQlWaW1lcmNhdGUgTUIgMjAwNTkKKwkJCQlJVEFMWQorCis1NC0xRC1GQiAgIChoZXgpCQlGcmVlc3R5bGUgRW5lcmd5IEx0ZAorNTQxREZCICAgICAoYmFzZSAxNikJCUZyZWVzdHlsZSBFbmVyZ3kgTHRkCisJCQkJMTgtMjQgUmlja2V0dHMgUm9hZAorCQkJCU1vdW50IFdhdmVybGV5IFZpY3RvcmlhIDMxNDkKKwkJCQlBVVNUUkFMSUEKKworNTQtMjAtMTggICAoaGV4KQkJVGVseSBMYWJzCis1NDIwMTggICAgIChiYXNlIDE2KQkJVGVseSBMYWJzCisJCQkJNTQ1IE1pZGRsZWZpZWxkIFJvYWQKKwkJCQlTdWl0ZSAxNjUKKwkJCQlNZW5sbyBQYXJrIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCis1NC0yQS05QyAgIChoZXgpCQlMU1kgRGVmZW5zZSwgTExDLgorNTQyQTlDICAgICAoYmFzZSAxNikJCUxTWSBEZWZlbnNlLCBMTEMuCisJCQkJNDE3NSBXZXN0cG9ydCBSZC4KKwkJCQlTVEUgMjA0CisJCQkJTG91aXN2aWxsZSBLZW50dWNreSA0MDIwNworCQkJCVVOSVRFRCBTVEFURVMKKworNTQtMzEtMzEgICAoaGV4KQkJUmFzdGVyIFZpc2lvbiBMdGQKKzU0MzEzMSAgICAgKGJhc2UgMTYpCQlSYXN0ZXIgVmlzaW9uIEx0ZAorCQkJCVVuaXQgMSwgQ3J1bmRhbGxzCisJCQkJR2VkZ2VzIEhpbGwsIE1hdGZpZWxkCisJCQkJVG9uYnJpZGdlICBLZW50IFROMTIgN0VBCisJCQkJVU5JVEVEIEtJTkdET00KKworNTQtMzUtREYgICAoaGV4KQkJU3ltZW8gR21iSAorNTQzNURGICAgICAoYmFzZSAxNikJCVN5bWVvIEdtYkgKKwkJCQlQcm9mLi1NZXNzZXJzY2htaXR0LVN0ci4gMworCQkJCU5ldWJpYmVyZyBCYXZhcmlhIDg1NTc5CisJCQkJR0VSTUFOWQorCis1NC0zOS02OCAgIChoZXgpCQlFZGdld2F0ZXIgTmV0d29ya3MgSW5jCis1NDM5NjggICAgIChiYXNlIDE2KQkJRWRnZXdhdGVyIE5ldHdvcmtzIEluYworCQkJCTI4OTUgTm9ydGh3ZXN0ZXJuIFBhcmt3YXkKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworNTQtNDItNDkgICAoaGV4KQkJU29ueSBDb3Jwb3JhdGlvbgorNTQ0MjQ5ICAgICAoYmFzZSAxNikJCVNvbnkgQ29ycG9yYXRpb24KKwkJCQlHb3RlbnlhbWEgVGVjLgorCQkJCTUtMS0xMiBLaXRhc2hpbmFnYXdhIFNoaW5hZ2F3YS1rdQorCQkJCVRva3lvICAxNDEtMDAwMQorCQkJCUpBUEFOCisKKzU0LTQ2LTZCICAgKGhleCkJCVNoZW56aGVuIENaVElDIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4sIEx0ZCAgCis1NDQ2NkIgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQ1pUSUMgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLiwgTHRkICAKKwkJCQlYaW5naGUgQnVpbGRpbmcsIFpob25neGluIFJvYWQsIFNoYWppbmcgVG93biwgQmFvYW4KKwkJCQlTSEVOWkhFTiBHVUFOR0RPTkcgNTE4MTA0CisJCQkJQ0hJTkEKKworNTQtNEEtMDUgICAoaGV4KQkJd2VuZ2xvciBzZW5zb3JpYyBnbWJoCis1NDRBMDUgICAgIChiYXNlIDE2KQkJd2VuZ2xvciBzZW5zb3JpYyBnbWJoCisJCQkJd2VuZ2xvciBTdHIuIDMKKwkJCQlUZXR0bmFuZyAgODgwNjkKKwkJCQlHRVJNQU5ZCisKKzU0LTUzLUVEICAgKGhleCkJCVNvbnkgQ29ycG9yYXRpb24KKzU0NTNFRCAgICAgKGJhc2UgMTYpCQlTb255IENvcnBvcmF0aW9uCisJCQkJR290ZW55YW1hIFRlYy4KKwkJCQk1LTEtMTIgS2l0YXNoaW5hZ2F3YSBTaGluYWdhd2Eta3UKKwkJCQlUb2t5byAgMTQxLTAwMDEKKwkJCQlKQVBBTgorCis1NC01RS1CRCAgIChoZXgpCQlOTCBUZWNobm9sb2dpZXMKKzU0NUVCRCAgICAgKGJhc2UgMTYpCQlOTCBUZWNobm9sb2dpZXMKKwkJCQkzMyBMYWlyZCBEcml2ZQorCQkJCVRvcm9udG8gT04gTTRHM1M4CisJCQkJQ0FOQURBCisKKzU0LTVGLUE5ICAgKGhleCkJCVRlcmFjb20gTGltaXRlZAorNTQ1RkE5ICAgICAoYmFzZSAxNikJCVRlcmFjb20gTGltaXRlZAorCQkJCUItODQsIFNlY3RvciAtIDYwLAorCQkJCU5vaWRhIFV0dGFyIFByYWRlc2ggMjAxIDMwMQorCQkJCUlORElBCisKKzU0LTc1LUQwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzU0NzVEMCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzU0LTdGLTU0ICAgKGhleCkJCUlOR0VOSUNPCis1NDdGNTQgICAgIChiYXNlIDE2KQkJSU5HRU5JQ08KKwkJCQkxIHJ1ZSBDbGF1ZGUgQ2hhcHBlLCBCUCAzNDYKKwkJCQlHdWlsaGVyYW5kLUdyYW5nZXMgRFJPTUUgMDc1MDMKKwkJCQlGUkFOQ0UKKworNTQtN0YtRUUgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNTQ3RkVFICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNTQtODQtN0IgICAoaGV4KQkJRGlnaXRhbCBEZXZpY2VzIEdtYkgKKzU0ODQ3QiAgICAgKGJhc2UgMTYpCQlEaWdpdGFsIERldmljZXMgR21iSAorCQkJCU1vZXdlc3RyIDQ1IEEKKwkJCQlNdWVuY2hlbiAgODE4MjcKKwkJCQlHRVJNQU5ZCisKKzU0LTg5LTIyICAgKGhleCkJCVplbGZ5IEluYworNTQ4OTIyICAgICAoYmFzZSAxNikJCVplbGZ5IEluYworCQkJCTQ2NTUgT2xkIElyb25zaWRlcyBEciwgU3VpdGUjMjAwCisJCQkJU2FudGEgQ2xhcmEgQ2EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzU0LTg5LTk4ICAgKGhleCkJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorNTQ4OTk4ICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorCQkJCUIxLTcsSHVhd2VpIEluZHVzdHJpYWwgQmFzZSxCYW50aWFuLExvbmdnYW5nCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODEyOQorCQkJCUNISU5BCisKKzU0LTkyLUJFICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNTQ5MkJFICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis1NC05NC03OCAgIChoZXgpCQlTaWx2ZXJzaG9yZSBUZWNobm9sb2d5IFBhcnRuZXJzCis1NDk0NzggICAgIChiYXNlIDE2KQkJU2lsdmVyc2hvcmUgVGVjaG5vbG9neSBQYXJ0bmVycworCQkJCTgwMCBIaWdoIFN0cmVldAorCQkJCVN1aXRlIDEwMQorCQkJCVBhbG8gQWx0byBDQSA5NDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworNTQtOUEtMTYgICAoaGV4KQkJVXp1c2hpbyBFbGVjdHJpYyBDby4sTHRkLgorNTQ5QTE2ICAgICAoYmFzZSAxNikJCVV6dXNoaW8gRWxlY3RyaWMgQ28uLEx0ZC4KKwkJCQkxNTIwIEt1bworCQkJCU9uaXNoaS1jaG8KKwkJCQlJbWFiYXJpLWNpdHkgRWhpbWUgcHJlZi4gNzk5MjI5NAorCQkJCUpBUEFOCisKKzU0LTlCLTEyICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKzU0OUIxMiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzU0LTlELTg1ICAgKGhleCkJCUVuZXJBY2Nlc3MgaW5jCis1NDlEODUgICAgIChiYXNlIDE2KQkJRW5lckFjY2VzcyBpbmMKKwkJCQkzMTU0IExlIENvcmJ1c2llciBCbHZkCisJCQkJTGF2YWwgUXVlYmVjIEg3TCA0UzgKKwkJCQlDQU5BREEKKworNTQtQTUtMUIgICAoaGV4KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorNTRBNTFCICAgICAoYmFzZSAxNikJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCis1NC1BOS1ENCAgIChoZXgpCQlNaW5pYmFyIFN5c3RlbXMKKzU0QTlENCAgICAgKGJhc2UgMTYpCQlNaW5pYmFyIFN5c3RlbXMKKwkJCQk3MzQwIFdlc3Rtb3JlIFJvYWQKKwkJCQlSb2NrdmlsbGUgTUQgMjA4NTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzU0LUI2LTIwICAgKGhleCkJCVNVSERPTCBFJkMgQ28uTHRkLgorNTRCNjIwICAgICAoYmFzZSAxNikJCVNVSERPTCBFJkMgQ28uTHRkLgorCQkJCTkyMCwgSWxzYW4gVGVjaG5vVG93biAxMTQxLTEsIEJhZWtzZW9rLWRvbmcsIElsc2FuZG9uZy1ndQorCQkJCUdveWFuZy1zaSBHeXVuZ2dpLWRvIDQxMC03MjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNTQtQ0QtQTcgICAoaGV4KQkJRnVqaWFuIFNoZW56aG91IEVsZWN0cm9uaWMgQ28uLEx0ZAorNTRDREE3ICAgICAoYmFzZSAxNikJCUZ1amlhbiBTaGVuemhvdSBFbGVjdHJvbmljIENvLixMdGQKKwkJCQlRdWFuemhvdSBFY29ub21pY2FsJlRlY2hub2xvZ2ljYWwgRGV2ZWxvcG1lbnQgWm9uZSwKKwkJCQlRVUFOWkhPVSBGVUpJQU4gMzYyMDA1CisJCQkJQ0hJTkEKKworNTQtRDAtRUQgICAoaGV4KQkJQVhJTSBDb21tdW5pY2F0aW9ucworNTREMEVEICAgICAoYmFzZSAxNikJCUFYSU0gQ29tbXVuaWNhdGlvbnMKKwkJCQkxRi4sIE5vLiA1LCBBbHkuIDEyLCBMbi4gMTUsIFNlYy4gNiwgU2lueWkgUmQuLCBTaW55aSBEaXN0LiwKKwkJCQlUYWlwZWkgIDExMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNTQtRDEtQjAgICAoaGV4KQkJVW5pdmVyc2FsIExhc2VyIFN5c3RlbXMsIEluYworNTREMUIwICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBMYXNlciBTeXN0ZW1zLCBJbmMKKwkJCQkxNjAwOCBOIDgxc3Qgc3RyZWV0CisJCQkJc2NvdHRzZGFsZSBheiA4NTI2MAorCQkJCVVOSVRFRCBTVEFURVMKKworNTQtRDQtNkYgICAoaGV4KQkJQ2lzY28gU1BWVEcKKzU0RDQ2RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCis1NC1FNi0zRiAgIChoZXgpCQlTaGVuWmhlbiBMaW5nS2VXZWlFciBUZWNobm9sb2d5IENvLiwgTHRkLgorNTRFNjNGICAgICAoYmFzZSAxNikJCVNoZW5aaGVuIExpbmdLZVdlaUVyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJUm9vbSA2MjUsIFlpSmluZyBCdWlsZGluZywgTWVpTGluIFJkLiwgRnVUaWFuIERpc3RyaWN0CisJCQkJU2hlblpoZW4gR3VhbmREb25nIDUxODAwMAorCQkJCUNISU5BCisKKzU0LUU2LUZDICAgKGhleCkJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorNTRFNkZDICAgICAoYmFzZSAxNikJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorCQkJCTEtNkYsIEJ1aWxkaW5nIDIsIFBpbmdzaGFuZGF5dWFuIEluZHVzdHJpYWwsIFNvdXRoIFpvbmUsCisJCQkJVGFveXVhbiBTdHJlZXQsIE5hbnNoYW4gRGlzdHJpY3QsIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCis1NC1GNS1CNiAgIChoZXgpCQlPUklFTlRBTCBQQUNJRklDIElOVEVSTkFUSU9OQUwgTElNSVRFRAorNTRGNUI2ICAgICAoYmFzZSAxNikJCU9SSUVOVEFMIFBBQ0lGSUMgSU5URVJOQVRJT05BTCBMSU1JVEVECisJCQkJNSBBUkdVUyBQTEFDRQorCQkJCUhJTExDUkVTVAorCQkJCU5PUlRIIFNIT1JFIENJVFkgQVVDS0xBTkQgMDYyNworCQkJCU5FVyBaRUFMQU5ECisKKzU0LUZELUJGICAgKGhleCkJCVNjaGVpZHQgJiBCYWNobWFubiBHbWJICis1NEZEQkYgICAgIChiYXNlIDE2KQkJU2NoZWlkdCAmIEJhY2htYW5uIEdtYkgKKwkJCQlCcmVpdGUgU3RyYXNzZSAxMzIKKwkJCQlNb2VuY2hlbmdsYWRiYWNoIE5SVyA0MTIzOAorCQkJCUdFUk1BTlkKKworNTgtMDUtNTYgICAoaGV4KQkJRWxldHRyb25pY2EgR0YgUy5yLkwuCis1ODA1NTYgICAgIChiYXNlIDE2KQkJRWxldHRyb25pY2EgR0YgUy5yLkwuCisJCQkJVmlhIFZpdHRvcmksIDYzCisJCQkJRkFFTlpBIFJBIDQ4MDE4CisJCQkJSVRBTFkKKworNTgtMDgtRkEgICAoaGV4KQkJRmliZXIgT3B0aWMgJmFtcDsgdGVsZWNvbW11bmljYXRpb24gSU5DLgorNTgwOEZBICAgICAoYmFzZSAxNikJCUZpYmVyIE9wdGljICZhbXA7IHRlbGVjb21tdW5pY2F0aW9uIElOQy4KKwkJCQkxNjEtNCBLdW1qZW9uZy1Eb25nLCAKKwkJCQlLdW5wby1jaXR5IEd5ZW9uZ2dpLURvIDQzNS04MjQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNTgtMTItNDMgICAoaGV4KQkJQWNTaVAgVGVjaG5vbG9neSBDb3JwLgorNTgxMjQzICAgICAoYmFzZSAxNikJCUFjU2lQIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkzRi4sIE5vLjIyLCBEYWxpbiBSZC4sCisJCQkJVGFveXVhbiBUYW95dWFuIENvdW50eSAzMzA2NworCQkJCVRBSVdBTiwgUFJPVklOQ0UgT0YgQ0hJTkEKKworNTgtMTYtMjYgICAoaGV4KQkJQXZheWEsIEluYworNTgxNjI2ICAgICAoYmFzZSAxNikJCUF2YXlhLCBJbmMKKwkJCQkyMTEgTW91bnQgQWlyeSBSb2FkCisJCQkJQmFza2luZyBSaWRnZSBOSiAwNzkyMC0yMzExCisJCQkJVU5JVEVEIFNUQVRFUworCis1OC0xNy0wQyAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorNTgxNzBDICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKKzU4LTFELTkxICAgKGhleCkJCUFkdmFuY2VkIE1vYmlsZSBUZWxlY29tIGNvLixsdGQuCis1ODFEOTEgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgTW9iaWxlIFRlbGVjb20gY28uLGx0ZC4KKwkJCQkjNjA4LCBZYXRhcCBMZWFkZXJzIEJsZGcuIDM0Mi0xCisJCQkJWWF0YXAtZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2My04MjgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNTgtMUYtQUEgICAoaGV4KQkJQXBwbGUsIEluYy4KKzU4MUZBQSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNTgtMUYtRUYgICAoaGV4KQkJVHV0dG5hZXIgTFRECis1ODFGRUYgICAgIChiYXNlIDE2KQkJVHV0dG5hZXIgTFRECisJCQkJSGFyLVR1diBCCisJCQkJQmVpdGggU2hlbWVzaCAgOTkwMDAKKwkJCQlJU1JBRUwKKworNTgtMkUtRkUgICAoaGV4KQkJTGlnaHRpbmcgU2NpZW5jZSBHcm91cAorNTgyRUZFICAgICAoYmFzZSAxNikJCUxpZ2h0aW5nIFNjaWVuY2UgR3JvdXAKKwkJCQkxMjI3IFNvdXRoIFBhdHJpY2sgRHJpdmUKKwkJCQlTYXRlbGxpdGUgQmVhY2ggRkwgMzI5MzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LTJGLTQyICAgKGhleCkJCVVuaXZlcnNhbCBFbGVjdHJpYyBDb3Jwb3JhdGlvbgorNTgyRjQyICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBFbGVjdHJpYyBDb3Jwb3JhdGlvbgorCQkJCTE2OCBHZW9yZ2V0b3duIFJvYWQKKwkJCQlDYW5vbnNidXJnIFBBIDE1MzE3CisJCQkJVU5JVEVEIFNUQVRFUworCis1OC0zNC0zQiAgIChoZXgpCQlHbG92YXN0IFRlY2hub2xvZ3kgTHRkLgorNTgzNDNCICAgICAoYmFzZSAxNikJCUdsb3Zhc3QgVGVjaG5vbG9neSBMdGQuCisJCQkJNkYuLCBOby4yMywgSmlhbkthbmcgUmQuLCBTb25nU2hhbiBEaXN0LiwKKwkJCQlUYWlwZWkgIDEwNQorCQkJCVRBSVdBTiwgUFJPVklOQ0UgT0YgQ0hJTkEKKworNTgtMzUtRDkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNTgzNUQ5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LTNDLUM2ICAgKGhleCkJCU9tbmVhbGl0eSBMdGQuCis1ODNDQzYgICAgIChiYXNlIDE2KQkJT21uZWFsaXR5IEx0ZC4KKwkJCQk3IEdyb3ZlIEhvdXNlLCBGaXJzZ3JvdmUgQ3Jlc2NlbnQKKwkJCQlXYXJsZXkKKwkJCQlCcmVudHdvb2QgRXNzZXggQ00xNCA1SlMKKwkJCQlVTklURUQgS0lOR0RPTQorCis1OC00Mi1FNCAgIChoZXgpCQlTaWdtYSBJbnRlcm5hdGlvbmFsIEdlbmVyYWwgTWVkaWNhbCBBcHBhcmF0dXMsIExMQy4KKzU4NDJFNCAgICAgKGJhc2UgMTYpCQlTaWdtYSBJbnRlcm5hdGlvbmFsIEdlbmVyYWwgTWVkaWNhbCBBcHBhcmF0dXMsIExMQy4KKwkJCQk3MTEgUGFyayBBdmVudWUKKwkJCQlNZWRpbmEgTlkgMTQxMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LTQ2LUUxICAgKGhleCkJCUJheHRlciBIZWFsdGhjYXJlCis1ODQ2RTEgICAgIChiYXNlIDE2KQkJQmF4dGVyIEhlYWx0aGNhcmUKKwkJCQkyNTIxMiBXLiBJbGxpbm9pcyBSb3V0ZSAxMjAKKwkJCQlSb3VuZCBMYWtlIElMIDYwMDczCisJCQkJVU5JVEVEIFNUQVRFUworCis1OC00OC1DMCAgIChoZXgpCQlDT0ZMRUMKKzU4NDhDMCAgICAgKGJhc2UgMTYpCQlDT0ZMRUMKKwkJCQlQYXJjIGQnYWN0aXZpdO+/vXMgZHUgbW91bGluIGRlIE1hc3N5CisJCQkJNyBydWUgZHUgU2F1bGUgVHJhcHUKKwkJCQlNQVNTWSAgOTEzMDAKKwkJCQlGUkFOQ0UKKworNTgtNDktQkEgICAoaGV4KQkJQ2hpdGFpIEVsZWN0cm9uaWMgQ29ycC4KKzU4NDlCQSAgICAgKGJhc2UgMTYpCQlDaGl0YWkgRWxlY3Ryb25pYyBDb3JwLgorCQkJCTVGLiwgTm8uIDEgTGFuZSAxMjMsIFBhby1DaHVuZyBSZC4sIEhzaW4tVGllbiBDaXR5IAorCQkJCVRhaWVwaSAgMjMxNDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzU4LTRDLTE5ICAgKGhleCkJCUNob25ncWluZyBHdW9ob25nIFRlY2hub2xvZ3kgRGV2ZWxvcG1lbnQgQ29tcGFueSBMaW1pdGVkCis1ODRDMTkgICAgIChiYXNlIDE2KQkJQ2hvbmdxaW5nIEd1b2hvbmcgVGVjaG5vbG9neSBEZXZlbG9wbWVudCBDb21wYW55IExpbWl0ZWQKKwkJCQlSb25nemhpIEJ1aWxkaW5nLCBTY2llbmNlICYgVGVjaG5vbG9neSBWZW50dXJlIENlbnRlciwKKwkJCQlOby44IFl1bWEgUm9hZCwgTmFuJ2FuIERpc3RyaWN0LCAKKwkJCQlDaG9uZ3FpbmcgIDQwMTMzNgorCQkJCUNISU5BCisKKzU4LTRDLUVFICAgKGhleCkJCURpZ2l0YWwgT25lIFRlY2hub2xvZ2llcywgTGltaXRlZAorNTg0Q0VFICAgICAoYmFzZSAxNikJCURpZ2l0YWwgT25lIFRlY2hub2xvZ2llcywgTGltaXRlZAorCQkJCU5vLjEgU2hhbmdkaSBYaW54aSBSb2FkCisJCQkJSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzU4LTUwLTc2ICAgKGhleCkJCUxpbmVhciBFcXVpcGFtZW50b3MgRWxldHJvbmljb3MgU0EKKzU4NTA3NiAgICAgKGJhc2UgMTYpCQlMaW5lYXIgRXF1aXBhbWVudG9zIEVsZXRyb25pY29zIFNBCisJCQkJUHJhY2EgTGluZWFyIDEwMAorCQkJCVNhbnRhIFJpdGEgZG8gU2FwdWNhaSBNRyAzNzU0MDAwMAorCQkJCUJSQVpJTAorCis1OC01MC1FNiAgIChoZXgpCQlCZXN0IEJ1eSBDb3Jwb3JhdGlvbgorNTg1MEU2ICAgICAoYmFzZSAxNikJCUJlc3QgQnV5IENvcnBvcmF0aW9uCisJCQkJNzYwMSBQZW5uIEF2ZSBTb3V0aAorCQkJCUM3CisJCQkJUmljaGZpZWxkIE1OIDU1NDIzCisJCQkJVU5JVEVEIFNUQVRFUworCis1OC01NS1DQSAgIChoZXgpCQlBcHBsZSwgSW5jLgorNTg1NUNBICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis1OC01Ny0wRCAgIChoZXgpCQlEYW5mb3NzIFNvbGFyIEludmVydGVycworNTg1NzBEICAgICAoYmFzZSAxNikJCURhbmZvc3MgU29sYXIgSW52ZXJ0ZXJzCisJCQkJSnlsbGFuZHNnYWRlIDI4CisJCQkJU/huZGVyYm9yZyAgREstNjQwMAorCQkJCURFTk1BUksKKworNTgtNjYtQkEgICAoaGV4KQkJSGFuZ3pob3UgSDNDIFRlY2hub2xvZ2llcyBDby4sIExpbWl0ZWQKKzU4NjZCQSAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBIM0MgVGVjaG5vbG9naWVzIENvLiwgTGltaXRlZAorCQkJCTMxMCBMaXVoZSBSb2FkLCBaaGlqaWFuZyBTY2llbmNlIFBhcmsKKwkJCQlIYW5nemhvdSBaaGVqaWFuZywgIDMxMDA1MworCQkJCUNISU5BCisKKzU4LTY3LTFBICAgKGhleCkJCUJBUk5FUyZOT0JMRS5DT00KKzU4NjcxQSAgICAgKGJhc2UgMTYpCQlCQVJORVMmTk9CTEUuQ09NCisJCQkJNDAwIEhBTUlMVE9OIEFWRU5VRQorCQkJCVNVSVRFIDEzMAorCQkJCVBBTE8gQUxUTyBDQSA5NDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworNTgtNjctN0YgICAoaGV4KQkJQ2xhcmUgQ29udHJvbHMgSW5jLgorNTg2NzdGICAgICAoYmFzZSAxNikJCUNsYXJlIENvbnRyb2xzIEluYy4KKwkJCQk3NTE5IFBlbm5zeWx2YW5pYSBBdmUKKwkJCQlTdWl0ZSAxMDQKKwkJCQlTYXJhc290YSBGTCAzNDI0MworCQkJCVVOSVRFRCBTVEFURVMKKworNTgtNjktNkMgICAoaGV4KQkJRnVqaWFuIFJ1aWplaWUgTmV0d29ya3MgY28sIGx0ZAorNTg2OTZDICAgICAoYmFzZSAxNikJCUZ1amlhbiBSdWlqZWllIE5ldHdvcmtzIGNvLCBsdGQKKwkJCQkxOSMgQnVpbGRpbmcsU3Rhci1uZXQgU2NpZW5jZSBQbGF6YSxKdXl1YW56aG91LCA2MTggSmluc2hhbiBSb2FkIAorCQkJCUZ1emhvdSBGdWppYW4gMzUwMDAyCisJCQkJQ0hJTkEKKworNTgtNjktRjkgICAoaGV4KQkJRnVzaW9uIFRyYW5zYWN0aXZlIEx0ZC4KKzU4NjlGOSAgICAgKGJhc2UgMTYpCQlGdXNpb24gVHJhbnNhY3RpdmUgTHRkLgorCQkJCVBPIEJveCA2ODI4MQorCQkJCU5ld3RvbgorCQkJCUF1Y2tsYW5kICAxMTQ1CisJCQkJTkVXIFpFQUxBTkQKKworNTgtNkQtOEYgICAoaGV4KQkJQ2lzY28tTGlua3N5cywgTExDCis1ODZEOEYgICAgIChiYXNlIDE2KQkJQ2lzY28tTGlua3N5cywgTExDCisJCQkJMTIxIFRoZW9yeSBEcml2ZQorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCis1OC02RS1ENiAgIChoZXgpCQlQUklWQVRFCis1ODZFRDYgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzU4LTc1LTIxICAgKGhleCkJCUNKU0MgUlRTb2Z0Cis1ODc1MjEgICAgIChiYXNlIDE2KQkJQ0pTQyBSVFNvZnQKKwkJCQlOaWtpdGluc2theWEgc3RyLiwgMworCQkJCU1vc2NvdyAgMTA1MDM3CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzU4LTc2LTc1ICAgKGhleCkJCUJlaWppbmcgRUNITyBUZWNobm9sb2dpZXMgQ28uLEx0ZAorNTg3Njc1ICAgICAoYmFzZSAxNikJCUJlaWppbmcgRUNITyBUZWNobm9sb2dpZXMgQ28uLEx0ZAorCQkJCU5PMSBTdHJlZXQgNCBTaGFuZ2RpICAKKwkJCQlIYWlkaWFuIERpc3RyaWN0LAorCQkJCUJlaUppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzU4LTdGLUM4ICAgKGhleCkJCVMyTQorNTg3RkM4ICAgICAoYmFzZSAxNikJCVMyTQorCQkJCTIgcnVlIGRlcyBjaGFtcHMKKwkJCQlTYWludCBNYXJjZWwgIDI3OTUwCisJCQkJRlJBTkNFCisKKzU4LThELTA5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzU4OEQwOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LTkxLUNGICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorNTg5MUNGICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworNTgtOTItMEQgICAoaGV4KQkJS2luZXRpYyBBdmlvbmljcyBMaW1pdGVkCis1ODkyMEQgICAgIChiYXNlIDE2KQkJS2luZXRpYyBBdmlvbmljcyBMaW1pdGVkCisJCQkJRWxzdHJlZSBBZXJvZHJvbWUKKwkJCQlIZXJ0Zm9yZHNoaXJlICBXRDYgM0FXCisJCQkJVU5JVEVEIEtJTkdET00KKworNTgtOTMtOTYgICAoaGV4KQkJUnVja3VzIFdpcmVsZXNzCis1ODkzOTYgICAgIChiYXNlIDE2KQkJUnVja3VzIFdpcmVsZXNzCisJCQkJODgwIFdlc3QgTWF1ZGUgQXZlCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCis1OC05NC02QiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzU4OTQ2QiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzU4LTk4LTM1ICAgKGhleCkJCVRlY2huaWNvbG9yCis1ODk4MzUgICAgIChiYXNlIDE2KQkJVGVjaG5pY29sb3IKKwkJCQlQcmlucyBCb3VkZXdpam5sYWFuIDQ3CisJCQkJRWRlZ2VtICAgQi0yNjUwCisJCQkJQkVMR0lVTQorCis1OC1BNy02RiAgIChoZXgpCQlpRCBjb3Jwb3JhdGlvbgorNThBNzZGICAgICAoYmFzZSAxNikJCWlEIGNvcnBvcmF0aW9uCisJCQkJZ29yeW9rYWt1IGJsZC4gMkYKKwkJCQk2LTEwIAorCQkJCWhha29kYXRlIGhva2thaWRvIDA0MC0wMDExCisJCQkJSkFQQU4KKworNTgtQjAtMzUgICAoaGV4KQkJQXBwbGUsIEluYworNThCMDM1ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzU4LUIwLUQ0ICAgKGhleCkJCVp1bmlEYXRhIFN5c3RlbXMgSW5jLgorNThCMEQ0ICAgICAoYmFzZSAxNikJCVp1bmlEYXRhIFN5c3RlbXMgSW5jLgorCQkJCTRGLTcsICBOby42NSwgIEdhb3RpYSA3dGggUmQsICBaaHViZWkgQ2l0eQorCQkJCUhzaW5jaHUgIDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNTgtQjktRTEgICAoaGV4KQkJQ3J5c3RhbGZvbnR6IEFtZXJpY2EsIEluYy4KKzU4QjlFMSAgICAgKGJhc2UgMTYpCQlDcnlzdGFsZm9udHogQW1lcmljYSwgSW5jLgorCQkJCTEyNDEyIEUuIFNhbHRlc2UgQXZlLgorCQkJCVNwb2thbmUgVmFsbGV5IFdBIDk5MjE2CisJCQkJVU5JVEVEIFNUQVRFUworCis1OC1CQy0yNyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis1OEJDMjcgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis1OC1CRC1BMyAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKzU4QkRBMyAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCis1OC1CRi1FQSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis1OEJGRUEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNTgtQzMtOEIgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworNThDMzhCICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNTgtQ0YtNEIgICAoaGV4KQkJTHVma2luIEluZHVzdHJpZXMKKzU4Q0Y0QiAgICAgKGJhc2UgMTYpCQlMdWZraW4gSW5kdXN0cmllcworCQkJCTgxMSBXaWxsb3cgT2FrIERyaXZlCisJCQkJTWlzc291cmkgQ2l0eSBUZXhhcyA3NzQ4OQorCQkJCVVOSVRFRCBTVEFURVMKKworNTgtRDAtOEYgICAoaGV4KQkJSUVFRSAxOTA0LjEgV29ya2luZyBHcm91cAorNThEMDhGICAgICAoYmFzZSAxNikJCUlFRUUgMTkwNC4xIFdvcmtpbmcgR3JvdXAKKwkJCQkxMzUxIFJlZHdvb2QgV2F5LCAKKwkJCQlQZXRhbHVtYSBDQSA5NDk1NAorCQkJCVVOSVRFRCBTVEFURVMKKworNTgtREItOEQgICAoaGV4KQkJRmFzdCBDby4sIEx0ZC4KKzU4REI4RCAgICAgKGJhc2UgMTYpCQlGYXN0IENvLiwgTHRkLgorCQkJCTItMTEtMSBJd2Ftb3RvY2hvCisJCQkJN3RoIEZsLiwgSGVyYiBLYW5kYSBCbGRnLiwKKwkJCQlDaGl5b2RhLWt1IFRva3lvIDEwMS0wMDMyCisJCQkJSkFQQU4KKworNTgtRTQtNzYgICAoaGV4KQkJQ0VOVFJPTiBDT01NVU5JQ0FUSU9OUyBURUNITk9MT0dJRVMgRlVKSUFOIENPLixMVEQKKzU4RTQ3NiAgICAgKGJhc2UgMTYpCQlDRU5UUk9OIENPTU1VTklDQVRJT05TIFRFQ0hOT0xPR0lFUyBGVUpJQU4gQ08uLExURAorCQkJCTR0aCBGbG9vcixKaWFvZGFqaWVwdSBCdWlsZGluZyw3MiMgS2VqaWVybHUgUm9hZCwgCisJCQkJWGknYW4gU2hhYW54aSBQcm92aW5jZSA3MTAxMDAKKwkJCQlDSElOQQorCis1OC1FNi0zNiAgIChoZXgpCQlFVlJzYWZlIFRlY2hub2xvZ2llcworNThFNjM2ICAgICAoYmFzZSAxNikJCUVWUnNhZmUgVGVjaG5vbG9naWVzCisJCQkJNTkgTm9ydGggVGVycmFjZSAKKwkJCQlIYWNrbmV5CisJCQkJQWRlbGFpZGUgU291dGggQXVzdHJhbGlhIDUwNjkKKwkJCQlBVVNUUkFMSUEKKworNTgtRTctNDcgICAoaGV4KQkJRGVsdGFuZXQgQUcKKzU4RTc0NyAgICAgKGJhc2UgMTYpCQlEZWx0YW5ldCBBRworCQkJCVJpZWRzdHJhc3NlIDgKKwkJCQlEaWV0aWtvbiBadXJpY2ggODk1MworCQkJCVNXSVRaRVJMQU5ECisKKzU4LUU4LTA4ICAgKGhleCkJCUFVVE9OSUNTIENPUlBPUkFUSU9OCis1OEU4MDggICAgIChiYXNlIDE2KQkJQVVUT05JQ1MgQ09SUE9SQVRJT04KKwkJCQk0MS01IFlPTkdEQU5HLURPTkcKKwkJCQlZQU5HU0FOLVNJIEtZRU9OR05BTSA2MjYtODQ3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzU4LUVFLUNFICAgKGhleCkJCUljb24gVGltZSBTeXN0ZW1zCis1OEVFQ0UgICAgIChiYXNlIDE2KQkJSWNvbiBUaW1lIFN5c3RlbXMKKwkJCQkxNTIwMSBOVyBHcmVlbmJyaWVyIFBhcmt3YXkKKwkJCQlTdWl0ZSBBMQorCQkJCUJlYXZlcnRvbiBPUiA5NzAwNgorCQkJCVVOSVRFRCBTVEFURVMKKworNTgtRjYtN0IgICAoaGV4KQkJWGlhIE1lbiBVbmlvbkNvcmUgVGVjaG5vbG9neSBMVEQuCis1OEY2N0IgICAgIChiYXNlIDE2KQkJWGlhIE1lbiBVbmlvbkNvcmUgVGVjaG5vbG9neSBMVEQuCisJCQkJKDIyNCkyRiBDaHVhbmd5ZSBCdWlsZGluZyxYaWFtZW4gUGlvbmVlcmluZyBQYXJrIGZvciBPdmVyc2VhcyBDaGluZXNlIFNjaG9sYXJzCisJCQkJWGlhIE1lbiBGdSBKaWFuIDM2MTAwOQorCQkJCUNISU5BCisKKzU4LUY2LUJGICAgKGhleCkJCUt5b3RvIFVuaXZlcnNpdHkKKzU4RjZCRiAgICAgKGJhc2UgMTYpCQlLeW90byBVbml2ZXJzaXR5CisJCQkJWW9zaGlkYS1Ib21tYWNoaQorCQkJCVNha3lvLWt1CisJCQkJS3lvdG8gIDYwNjg1MDEKKwkJCQlKQVBBTgorCis1OC1GOS04RSAgIChoZXgpCQlTRUNVRE9TIEdtYkgKKzU4Rjk4RSAgICAgKGJhc2UgMTYpCQlTRUNVRE9TIEdtYkgKKwkJCQlSaGVudXMtUGxhdHogMgorCQkJCUhvbHp3aWNrZWRlIE5SVyA1OTQzOQorCQkJCUdFUk1BTlkKKworNTgtRkQtMjAgICAoaGV4KQkJQnJhdmlkYSBTYWtlcmhldCBBQgorNThGRDIwICAgICAoYmFzZSAxNikJCUJyYXZpZGEgU2FrZXJoZXQgQUIKKwkJCQlNaWtyb2ZvbnZhZ2VuIDI4CisJCQkJU1RPQ0tIT0xNICAxMjYgODEKKwkJCQlTV0VERU4KKworNUMtMDctNkYgICAoaGV4KQkJVGhvdWdodCBDcmVhdG9yCis1QzA3NkYgICAgIChiYXNlIDE2KQkJVGhvdWdodCBDcmVhdG9yCisJCQkJTGFyZ28gZGEgUGly4m1pZGUsIE66IDMsIFNhbGEgRAorCQkJCU9laXJhcyBMaXNib2EgMjc5NS0xNTYgTGluZGEtYS1WZWxoYQorCQkJCVBPUlRVR0FMCisKKzVDLTBBLTVCICAgKGhleCkJCVNBTVNVTkcgRUxFQ1RSTy1NRUNIQU5JQ1MgQ08uLCBMVEQuCis1QzBBNUIgICAgIChiYXNlIDE2KQkJU0FNU1VORyBFTEVDVFJPLU1FQ0hBTklDUyBDTy4sIExURC4KKwkJCQkzMTQsIE1hZXRhbjMtRG9uZywgWWVvbmd0b25nLUd1CisJCQkJU3V3b24gR3l1bmdnaS1EbyA0NDMtNzQzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzVDLTBDLUJCICAgKGhleCkJCUNFTElaSU9OIEluYy4KKzVDMENCQiAgICAgKGJhc2UgMTYpCQlDRUxJWklPTiBJbmMuCisJCQkJIzIwNiBMb3JkbGFuZCBFWiBUb3dlciwgR3VNaS1Eb25nIDE1MyBCdW5EYW5nLUd1CisJCQkJU2VvbmdOYW0tU2kgIEd5ZW9uZ0dpLURvIDQ2My04NzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNUMtMEUtOEIgICAoaGV4KQkJTW90b3JvbGEKKzVDMEU4QiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYQorCQkJCU9uZSBNb3Rvcm9sYSBQbGF6YQorCQkJCUhvbHRzdmlsbGUgTlkgMTE3NDIKKwkJCQlVTklURUQgU1RBVEVTCisKKzVDLTE0LTM3ICAgKGhleCkJCVRoeXNzZW5rcnVwcCBBdWZ6dWdzd2Vya2UgR21iSAorNUMxNDM3ICAgICAoYmFzZSAxNikJCVRoeXNzZW5rcnVwcCBBdWZ6dWdzd2Vya2UgR21iSAorCQkJCUJlcm5oYWV1c2VyIFN0ci40NQorCQkJCU5ldWhhdXNlbiBhLmQuRiAgNzM3NjUKKwkJCQlHRVJNQU5ZCisKKzVDLTE2LUM3ICAgKGhleCkJCUJpZyBTd2l0Y2ggTmV0d29ya3MKKzVDMTZDNyAgICAgKGJhc2UgMTYpCQlCaWcgU3dpdGNoIE5ldHdvcmtzCisJCQkJODU1IEVMIENBTUlOTyBSRUFMCisJCQkJU1RFIDI2MCBCTERHIDQKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzVDLTE3LTM3ICAgKGhleCkJCUktVmlldyBOb3csIExMQy4KKzVDMTczNyAgICAgKGJhc2UgMTYpCQlJLVZpZXcgTm93LCBMTEMuCisJCQkJMTQyMSBFLiBTdW5zZXQKKwkJCQkjMgorCQkJCUxhcyBWZWdhcyBOViA4OTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworNUMtMTctRDMgICAoaGV4KQkJTEdFIAorNUMxN0QzICAgICAoYmFzZSAxNikJCUxHRSAKKwkJCQk2MC0zOSAsIEthc2FuIC1kb25nICwgR3VtY2hlb24tZ3UuCisJCQkJU2VvdWwgICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzVDLTE4LUI1ICAgKGhleCkJCVRhbG9uIENvbW11bmljYXRpb25zCis1QzE4QjUgICAgIChiYXNlIDE2KQkJVGFsb24gQ29tbXVuaWNhdGlvbnMKKwkJCQkxMDYzNiBTY3JpcHBzIFN1bW1pdCBDdC4KKwkJCQlTdWl0ZSAyMDkKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKKzVDLTI2LTBBICAgKGhleCkJCURlbGwgSW5jLgorNUMyNjBBICAgICAoYmFzZSAxNikJCURlbGwgSW5jLgorCQkJCU9uZSBEZWxsIFdheSwgTVMgUlI1LTQ1CisJCQkJUm91bmQgUm9jayBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworNUMtMzMtOEUgICAoaGV4KQkJQWxwaGEgTmV0d29ya2MgSW5jLgorNUMzMzhFICAgICAoYmFzZSAxNikJCUFscGhhIE5ldHdvcmtjIEluYy4KKwkJCQlOby44IExpLXNoaW5nIFNldmVudGggUm9hZCxTY2llbmNlLWJhc2VkCisJCQkJSHNpbmNodSAgMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis1Qy0zNS0zQiAgIChoZXgpCQlDb21wYWwgQnJvYWRiYW5kIE5ldHdvcmtzIEluYy4KKzVDMzUzQiAgICAgKGJhc2UgMTYpCQlDb21wYWwgQnJvYWRiYW5kIE5ldHdvcmtzIEluYy4KKwkJCQkyRi4tMiwgTm8uMzIgVGFpeXVhbiBTdC4KKwkJCQlaaHViZWkgQ2l0eSBIc2luY2h1IENvdW50eSAzMDI2NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNUMtMzUtREEgICAoaGV4KQkJVGhlcmUgQ29ycG9yYXRpb24gT3kKKzVDMzVEQSAgICAgKGJhc2UgMTYpCQlUaGVyZSBDb3Jwb3JhdGlvbiBPeQorCQkJCUVsaW3kZW5rYXR1IDUKKwkJCQlIZWxzaW5raSAgMDA1MTAKKwkJCQlGSU5MQU5ECisKKzVDLTQwLTU4ICAgKGhleCkJCUplZmZlcnNvbiBBdWRpbyBWaWRlbyBTeXN0ZW1zLCBJbmMuCis1QzQwNTggICAgIChiYXNlIDE2KQkJSmVmZmVyc29uIEF1ZGlvIFZpZGVvIFN5c3RlbXMsIEluYy4KKwkJCQkxMzAyMCBNaWRkbGV0b3duIEluZHVzdHJpYWwgQmx2ZC4KKwkJCQlMb3Vpc3ZpbGxlIEtlbnR1Y2t5IDQwMjIzCisJCQkJVU5JVEVEIFNUQVRFUworCis1Qy00Qy1BOSAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCis1QzRDQTkgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxMDEwOAorCQkJCUNISU5BCisKKzVDLTUwLTE1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzVDNTAxNSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis1Qy01Ni1FRCAgIChoZXgpCQkzcGxlcGxheSBFbGVjdHJvbmljcyBQcml2YXRlIExpbWl0ZWQKKzVDNTZFRCAgICAgKGJhc2UgMTYpCQkzcGxlcGxheSBFbGVjdHJvbmljcyBQcml2YXRlIExpbWl0ZWQKKwkJCQkxMTA2LCAxMXRoIEZsb29yCisJCQkJQmFidSBLaGFuIEVzdGF0ZSwgQmFzaGVlcmJhZ2gKKwkJCQlIeWRlcmFiYWQgQW5kaHJhIFByYWRlc2ggNTAwMDAxCisJCQkJSU5ESUEKKworNUMtNTctQzggICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzVDNTdDOCAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU3MAorCQkJCUZJTkxBTkQKKworNUMtNTktNDggICAoaGV4KQkJQXBwbGUsIEluYy4KKzVDNTk0OCAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNUMtNUUtQUIgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworNUM1RUFCICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5IAorCQkJCVVOSVRFRCBTVEFURVMKKworNUMtNjMtQkYgICAoaGV4KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCis1QzYzQkYgICAgIChiYXNlIDE2KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCisJCQkJQnVpbGRpbmcgMjQgKGZsb29ycyAxLDMsNCw1KSBhbmQgMjggKGZsb29yczEtNCkKKwkJCQlDZW50cmFsIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgUGFyayxTaGVubmFuIFJkLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis1Qy02OS04NCAgIChoZXgpCQlOVVZJQ08KKzVDNjk4NCAgICAgKGJhc2UgMTYpCQlOVVZJQ08KKwkJCQk3Mi0zIFNpbmRhZSwgU2lsY2hvbgorCQkJCUd3YW5qdSBHeWVvbmdnaSA0NjQtODczCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzVDLTZBLTdEICAgKGhleCkJCUtFTlRLQVJUIEVHRSBFTEVLVFJPTklLIFNBTi4gVkUgVElDLiBMVEQuIFNUSS4gCis1QzZBN0QgICAgIChiYXNlIDE2KQkJS0VOVEtBUlQgRUdFIEVMRUtUUk9OSUsgU0FOLiBWRSBUSUMuIExURC4gU1RJLiAKKwkJCQkxMzcwIFNLLCBOTzo0Mi8zMDQsIAorCQkJCU1PTlRSTyBJWk1JUiAzNTIzMAorCQkJCVRVUktFWQorCis1Qy02Qi0zMiAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworNUM2QjMyICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis1Qy02RC0yMCAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCis1QzZEMjAgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCSBOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzIAorCQkJCUNISU5BCisKKzVDLTZGLTRGICAgKGhleCkJCVMuQS4gU0lTVEVMCis1QzZGNEYgICAgIChiYXNlIDE2KQkJUy5BLiBTSVNURUwKKwkJCQlDL1NPTFNPTkVTLCA4NworCQkJCVBPTC4gSU5ELiBQTEEgREUgTEEgQlJVR1VFUkEKKwkJCQlDQVNURUxMQVIgREVMIFZBTExFUyBCQVJDRUxPTkEgMDgyMTEKKwkJCQlTUEFJTgorCis1Qy03Ny01NyAgIChoZXgpCQlIYWl2aXNpb24gTmV0d29yayBWaWRlbworNUM3NzU3ICAgICAoYmFzZSAxNikJCUhhaXZpc2lvbiBOZXR3b3JrIFZpZGVvCisJCQkJNDQ0NSBHYXJhbmQKKwkJCQlNb250cmVhbCBRQyBINFIgMkg5CisJCQkJQ0FOQURBCisKKzVDLTg2LTRBICAgKGhleCkJCVNlY3JldCBMYWJzIExMQworNUM4NjRBICAgICAoYmFzZSAxNikJCVNlY3JldCBMYWJzIExMQworCQkJCTMxNSBCbGVlY2tlciBTdCAjMzA4CisJCQkJTmV3IFlvcmsgTlkgMTAwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzVDLTg3LTc4ICAgKGhleCkJCUN5YmVydGVsYnJpZGdlIGNvLixsdGQKKzVDODc3OCAgICAgKGJhc2UgMTYpCQlDeWJlcnRlbGJyaWRnZSBjby4sbHRkCisJCQkJIzkwMSBBY2VoaWdoZW5kIHRvd2VyIDIKKwkJCQkyMjItMTQgR3Vyby1ndSBHdXJvLWRvbmcKKwkJCQlTZW91bCAgMTUyLTA1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis1Qy05NS1BRSAgIChoZXgpCQlBcHBsZSBJbmMKKzVDOTVBRSAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis1Qy05QS1EOCAgIChoZXgpCQlGdWppdHN1IExpbWl0ZWQKKzVDOUFEOCAgICAgKGJhc2UgMTYpCQlGdWppdHN1IExpbWl0ZWQKKwkJCQlNdXNhc2hpLWtvc3VnaSBUb3dlciBQbGFjZSBCbGRnLiwKKwkJCQk0MDMsIEtvc3VnaS1jaG8gMS1jaG9tZSxOYWthaGFyYS1rdQorCQkJCUthd2FzYWtpIEthbmFnYXdhIDIxMS0wMDYzCisJCQkJSkFQQU4KKworNUMtQUMtNEMgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorNUNBQzRDICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzIAorCQkJCUNISU5BCisKKzVDLUI1LTI0ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCis1Q0I1MjQgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlNb2JpbHbkZ2VuIDEwCisJCQkJTHVuZCAgMjIxODEKKwkJCQlTV0VERU4KKworNUMtQkQtOUUgICAoaGV4KQkJSE9OR0tPTkcgTUlSQUNMRSBFQUdMRSBURUNITk9MT0dZKEdST1VQKSBMSU1JVEVECis1Q0JEOUUgICAgIChiYXNlIDE2KQkJSE9OR0tPTkcgTUlSQUNMRSBFQUdMRSBURUNITk9MT0dZKEdST1VQKSBMSU1JVEVECisJCQkJRkxBVCBSTSAyMTAzLCAgRUFTRVkgQ09NTUVSQ0lBTCBCTERHLDI1My0yNjEgSEVOTkVTU1kgUkQsICAKKwkJCQlXQU5DSEFJIDk5OTA3NworCQkJCUhPTkcgS09ORworCis1Qy1DMi0xMyAgIChoZXgpCQlGci4gU2F1dGVyIEFHCis1Q0MyMTMgICAgIChiYXNlIDE2KQkJRnIuIFNhdXRlciBBRworCQkJCUltIFN1cmluYW0gNTUKKwkJCQlCYXNlbCBCUyBDSDQwMTYKKwkJCQlTV0lUWkVSTEFORAorCis1Qy1DNi1EMCAgIChoZXgpCQlTa3l3b3J0aCBEaWdpdGFsIHRlY2hub2xvZ3koc2hlbnpoZW4pY28ubHRkLgorNUNDNkQwICAgICAoYmFzZSAxNikJCVNreXdvcnRoIERpZ2l0YWwgdGVjaG5vbG9neShzaGVuemhlbiljby5sdGQuCisJCQkJMTNGLEJsb2NrIEEsU2t5d29ydGggQnVpbGRpbmcsR2FveGluIEFWRS4xLlMsCisJCQkJTmFuc2hhbiBEaXN0cmljdCwKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworNUMtQzktRDMgICAoaGV4KQkJUEFMTEFESVVNIEVORVJHWSBFTEVUUk9OSUNBIERBIEFNQVpPTklBIExUREEKKzVDQzlEMyAgICAgKGJhc2UgMTYpCQlQQUxMQURJVU0gRU5FUkdZIEVMRVRST05JQ0EgREEgQU1BWk9OSUEgTFREQQorCQkJCUFWRU5JREEgQlVSSVRJLCA0Mjg1CisJCQkJRElTVFJJVE8gSU5EVVNUUklBTAorCQkJCU1BTkFVUyBBTUFaT05BUyA2OTA3NS0wMDAKKwkJCQlCUkFaSUwKKworNUMtQ0EtMzIgICAoaGV4KQkJVGhlYmVuIEFHCis1Q0NBMzIgICAgIChiYXNlIDE2KQkJVGhlYmVuIEFHCisJCQkJSG9oZW5iZXJnc3RyYd9lIDMyCisJCQkJSGFpZ2VybG9jaCBCYWRlbi1X/HJ0dGVtYmVyZyA3MjQwMQorCQkJCUdFUk1BTlkKKworNUMtQ0UtQUQgICAoaGV4KQkJQ0RZTkUgQ29ycG9yYXRpb24KKzVDQ0VBRCAgICAgKGJhc2UgMTYpCQlDRFlORSBDb3Jwb3JhdGlvbgorCQkJCTUwNSBJbmRlcGVuZGVuY2UgUGt3eSBTdGUgMzAwCisJCQkJQ2hlc2FwZWFrZSBWQSAyMzMyMAorCQkJCVVOSVRFRCBTVEFURVMKKworNUMtRDEtMzUgICAoaGV4KQkJWHRyZW1lIFBvd2VyIFN5c3RlbXMKKzVDRDEzNSAgICAgKGJhc2UgMTYpCQlYdHJlbWUgUG93ZXIgU3lzdGVtcworCQkJCTI0NDAgS2lvd2EgQmx2ZC4gTi4gIzEwMgorCQkJCUxha2UgSGF2YXN1IENpdHkgQVogODY0MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzVDLUQ0LUFCICAgKGhleCkJCVpla3RvcgorNUNENEFCICAgICAoYmFzZSAxNikJCVpla3RvcgorCQkJCTEyNjc1IERhbmllbHNvbiBDdC4gU3RlIDQwMQorCQkJCVBvd2F5IENBIDkyMDY0CisJCQkJVU5JVEVEIFNUQVRFUworCis1Qy1EOS05OCAgIChoZXgpCQlELUxpbmsgQ29ycG9yYXRpb24KKzVDRDk5OCAgICAgKGJhc2UgMTYpCQlELUxpbmsgQ29ycG9yYXRpb24KKwkJCQlOby4yODksIFNpbmh1IDNyZCBSZC4sIE5laWh1IERpc3RyaWN0LCAKKwkJCQlUYWlwZWkgQ2l0eSAgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNUMtREEtRDQgICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCis1Q0RBRDQgICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dXJpbmcgQ28uLCBMdGQuCisJCQkJMTAtMSwgSGlnYXNoaWtvdGFyaSAxLWNob21lCisJCQkJTmFnYW9rYWt5by1zaGkgS3lvdG8gNjE3LTg1NTUKKwkJCQlKQVBBTgorCis1Qy1FMi0yMyAgIChoZXgpCQlEZWxwaGluIFRlY2hub2xvZ3kgQUcKKzVDRTIyMyAgICAgKGJhc2UgMTYpCQlEZWxwaGluIFRlY2hub2xvZ3kgQUcKKwkJCQlMdXN0aGVpZGUgODEKKwkJCQlCZXJnaXNjaC1HbGFkYmFjaCAgNTE0MjcKKwkJCQlHRVJNQU5ZCisKKzVDLUUyLTg2ICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworNUNFMjg2ICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCUNBUlJFVEVSQSBCQVNFIEFFUkVBICMgNTg1MAorCQkJCVphcG9wYW4gSmFsaXNjbyA0NDEzMAorCQkJCU1FWElDTworCis1Qy1FMi1GNCAgIChoZXgpCQlBY1NpUCBUZWNobm9sb2d5IENvcnAuCis1Q0UyRjQgICAgIChiYXNlIDE2KQkJQWNTaVAgVGVjaG5vbG9neSBDb3JwLgorCQkJCTNGLiwgTm8uMjIsIERhbGluIFJkLgorCQkJCVRhb3l1YW4gVGFveXVhbiBDb3VudHkgMzMwNjcKKwkJCQlUQUlXQU4sIFBST1ZJTkNFIE9GIENISU5BCisKKzVDLUVCLTRFICAgKGhleCkJCVIuIFNUQUhMIEhNSSBTeXN0ZW1zIEdtYkgKKzVDRUI0RSAgICAgKGJhc2UgMTYpCQlSLiBTVEFITCBITUkgU3lzdGVtcyBHbWJICisJCQkJSW0gR2V3ZXJiZWdlYmlldCBQZXNjaCAxNAorCQkJCUNvbG9nbmUgIDUwNzY3CisJCQkJR0VSTUFOWQorCis1Qy1FRS03OSAgIChoZXgpCQlHbG9iYWwgRGlnaXRlY2ggQ28gTFRECis1Q0VFNzkgICAgIChiYXNlIDE2KQkJR2xvYmFsIERpZ2l0ZWNoIENvIExURAorCQkJCTFGLiwgTm8uMjUsIEFseS41NiwgTG4uIDI0NSwgU2VjLiA0LCBCYWRlIFJkLiwKKwkJCQlUYWlwZWkgVGFpd2FuIDEwNQorCQkJCVRBSVdBTiwgUFJPVklOQ0UgT0YgQ0hJTkEKKworNUMtRjItMDcgICAoaGV4KQkJU3BlY28gVGVjaG5vbG9naWVzCis1Q0YyMDcgICAgIChiYXNlIDE2KQkJU3BlY28gVGVjaG5vbG9naWVzCisJCQkJMjAwIE5ldyBIaWdod2F5CisJCQkJQW1pdHl2aWxsZSBOZXcgWW9yayAxMTcwMQorCQkJCVVOSVRFRCBTVEFURVMKKworNUMtRjMtRkMgICAoaGV4KQkJSUJNIENvcnAKKzVDRjNGQyAgICAgKGJhc2UgMTYpCQlJQk0gQ29ycAorCQkJCTMwMzkgRSBDb3Jud2FsbGlzIFJkCisJCQkJUC5PLiBCT1ggMTIxOTUKKwkJCQlSZXNlYXJjaCBUcmlhbmdsZSBQYXJrIE5DIDI3NzA5LTIxOTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzVDLUY5LUREICAgKGhleCkJCURlbGwgSW5jCis1Q0Y5REQgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgZGVsbCBXYXkKKwkJCQlSb3VuZCBSb2NrIFRYIDc4NzgyCisJCQkJVU5JVEVEIFNUQVRFUworCis1Qy1GRi0zNSAgIChoZXgpCQlXaXN0cm9uIENvcnBvcmF0aW9uCis1Q0ZGMzUgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBDb3Jwb3JhdGlvbgorCQkJCTIxRiwgODgsIFNlYy4xLCBIc2luIFRhaSBXdSBSZC4sIEhzaWNoaWgsCisJCQkJVGFpcGVpIEhzaWVuICAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzYwLTExLTk5ICAgKGhleCkJCURhdGEtVGVzdGVyIEluYy4KKzYwMTE5OSAgICAgKGJhc2UgMTYpCQlEYXRhLVRlc3RlciBJbmMuCisJCQkJNDUwIFN0LVBpZXJyZSwgc3VpdGUgMzAwCisJCQkJTW9udHJlYWwgUXVlYmVjIEgyWSAyTTkKKwkJCQlDQU5BREEKKworNjAtMTItODMgICAoaGV4KQkJU29sdWNpb25lcyBUZWNub2xvZ2ljYXMgcGFyYSBsYSBTYWx1ZCB5IGVsIEJpZW5lc3RhciBTQQorNjAxMjgzICAgICAoYmFzZSAxNikJCVNvbHVjaW9uZXMgVGVjbm9sb2dpY2FzIHBhcmEgbGEgU2FsdWQgeSBlbCBCaWVuZXN0YXIgU0EKKwkJCQlSZC4gQXVndXN0ZSB5IExvdWlzIEx1bWllcmUsIDIzIG5hdmUgMTMKKwkJCQlQYXJxdWUgVGVjbm9sb2dpY28gZGUgVmFsZW5jaWEKKwkJCQlQYXRlcm5hIFZhbGVuY2lhLSBDSUYgRVMgQSA5ODAwNTk3OCA0Njk4MAorCQkJCVNQQUlOCisKKzYwLTE1LUM3ICAgKGhleCkJCUlkYVRlY2gKKzYwMTVDNyAgICAgKGJhc2UgMTYpCQlJZGFUZWNoCisJCQkJNjMwNjUgTkUgMTh0aCBTdC4KKwkJCQlCZW5kIE9SIDk3NzAxCisJCQkJVU5JVEVEIFNUQVRFUworCis2MC0xOS0wQyAgIChoZXgpCQlSUkFNQUMKKzYwMTkwQyAgICAgKGJhc2UgMTYpCQlSUkFNQUMKKwkJCQkxNTQwMCBNZWRpbmEgUmQKKwkJCQlQbHltb3V0aCBNTiA1NTQ0NworCQkJCVVOSVRFRCBTVEFURVMKKworNjAtMUQtMEYgICAoaGV4KQkJTWlkbml0ZSBTb2xhcgorNjAxRDBGICAgICAoYmFzZSAxNikJCU1pZG5pdGUgU29sYXIKKwkJCQkxNzcyMiA2N3RoIEF2ZSBORSAjQworCQkJCUFybGluZ3RvbiBXQSA5ODIyMworCQkJCVVOSVRFRCBTVEFURVMKKworNjAtMkEtNTQgICAoaGV4KQkJQ2FyZGlvVGVrIEIuVi4KKzYwMkE1NCAgICAgKGJhc2UgMTYpCQlDYXJkaW9UZWsgQi5WLgorCQkJCUFtZXJpa2FsYWFuIDcwCisJCQkJTWFhc3RyaWNodCBBaXJwb3J0IExpbWJ1cmcgNjE5OUFFCisJCQkJTkVUSEVSTEFORFMKKworNjAtMkEtRDAgICAoaGV4KQkJQ2lzY28gU1BWVEcKKzYwMkFEMCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTUFZURworCQkJCTUwMzAgU3VnYXJsb2FmIFBrd3kKKwkJCQlMYXdyZW5jZXZpbGxlIEdBIDMwMDE3CisJCQkJVU5JVEVEIFNUQVRFUworCis2MC0zMy00QiAgIChoZXgpCQlBcHBsZSwgSW5jLgorNjAzMzRCICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis2MC0zNS01MyAgIChoZXgpCQlCdXdvbiBUZWNobm9sb2d5Cis2MDM1NTMgICAgIChiYXNlIDE2KQkJQnV3b24gVGVjaG5vbG9neQorCQkJCShDdW51aXRlY2hub3BhcmsgMTAyLTE1MDcpIDIwMC0xLENodW51aS1kb25nCisJCQkJV29ubWktZ3UKKwkJCQlCdWNob24tc2kgR3llaW5nZ2ktZG8gNDIwLTg1NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2MC0zNi1ERCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzYwMzZERCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzYwLTM4LTBFICAgKGhleCkJCUFscHMgRWxlY3RyaWMgQ28uLAorNjAzODBFICAgICAoYmFzZSAxNikJCUFscHMgRWxlY3RyaWMgQ28uLAorCQkJCTEtMi0xLCBPa2lub3VjaGkKKwkJCQlTb21hLWNpdHkgRnVrdXNoaW1hIDk3Ni04NTAxCisJCQkJSkFQQU4KKworNjAtMzktMUYgICAoaGV4KQkJQUJCIEx0ZAorNjAzOTFGICAgICAoYmFzZSAxNikJCUFCQiBMdGQKKwkJCQlEaXN0cmlidXRpb24gQXV0b21hdGlvbgorCQkJCU1hbmVqYQorCQkJCVZhZG9kYXJhIEd1amFyYXQgMzkwMDEzCisJCQkJSU5ESUEKKworNjAtM0YtQzUgICAoaGV4KQkJQ09YIENPLiwgTFRECis2MDNGQzUgICAgIChiYXNlIDE2KQkJQ09YIENPLiwgTFRECisJCQkJOTA0SE8sIEFDRSBUV0lOIFRPV0VSIDEtQ0hBCisJCQkJMjEyLTEgR1VSTy1ET05HLCBHVVJPLUdVCisJCQkJU0VPVUwgIDE1Mi03NzkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNjAtNDQtRjUgICAoaGV4KQkJRWFzeSBEaWdpdGFsIEx0ZC4KKzYwNDRGNSAgICAgKGJhc2UgMTYpCQlFYXN5IERpZ2l0YWwgTHRkLgorCQkJCVZpY3RvcmlhIEJ1aWxkaW5ncywgMSBIYWRkaW5ndG9uIFJvYWQKKwkJCQlEdWJsaW4gIDQKKwkJCQlJUkVMQU5ECisKKzYwLTQ1LTVFICAgKGhleCkJCUxpcHRlbCBzLnIuby4KKzYwNDU1RSAgICAgKGJhc2UgMTYpCQlMaXB0ZWwgcy5yLm8uCisJCQkJSHJhZG5hIDMzOAorCQkJCUxpcHRvdnNreSBIcmFkb2sgIDAzMzAxCisJCQkJU0xPVkFLSUEKKworNjAtNDUtQkQgICAoaGV4KQkJTWljcm9zb2Z0Cis2MDQ1QkQgICAgIChiYXNlIDE2KQkJTWljcm9zb2Z0CisJCQkJMSBNaWNyb3NvZnQgV2F5CisJCQkJU3R1ZGlvIC1CLzM5MzYKKwkJCQlSZWRtb25kICBXYXNoaW5ndG9uIDk4MDIzCisJCQkJVU5JVEVEIFNUQVRFUworCis2MC01Mi1EMCAgIChoZXgpCQlGQUNUUyBFbmdpbmVlcmluZyAKKzYwNTJEMCAgICAgKGJhc2UgMTYpCQlGQUNUUyBFbmdpbmVlcmluZyAKKwkJCQk4MDQ5IFBob3RvbmljcyBEcml2ZQorCQkJCU5ldyBQb3J0IFJpY2hleSBGTCAzNDY1NQorCQkJCVVOSVRFRCBTVEFURVMKKworNjAtNTQtNjQgICAoaGV4KQkJRXllZHJvIEdyZWVuIFNvbHV0aW9ucyBJbmMuCis2MDU0NjQgICAgIChiYXNlIDE2KQkJRXllZHJvIEdyZWVuIFNvbHV0aW9ucyBJbmMuCisJCQkJMSBZb25nZSBTdAorCQkJCVN1aXRlIDE4MDEKKwkJCQlUb3JvbnRvIE9udGFyaW8gTTVFIDFXNworCQkJCUNBTkFEQQorCis2MC02My1GRCAgIChoZXgpCQlUcmFuc2NlbmQgQ29tbXVuaWNhdGlvbiBCZWlqaW5nIENvLixMdGQuCis2MDYzRkQgICAgIChiYXNlIDE2KQkJVHJhbnNjZW5kIENvbW11bmljYXRpb24gQmVpamluZyBDby4sTHRkLgorCQkJCUEtNixLZXNoaSBwbGF6YSwyOCMsSW5mb3JtYXRpb24gUm9hZAorCQkJCUhhaWRpYW4gRGlzdCwKKwkJCQlCZWlqaW5nICAxMDAwODUKKwkJCQlDSElOQQorCis2MC02Ny0yMCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzYwNjcyMCAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzYwLTZCLUJEICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMVEQKKzYwNkJCRCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIFllb25ndG9uZy1ndQorCQkJCVN1d29uLXNpIEd5ZW9uZ2dpLWRvIDQ0Mzc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2MC02Qy02NiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzYwNkM2NiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzYwLTc2LTg4ICAgKGhleCkJCVZlbG9keW5lCis2MDc2ODggICAgIChiYXNlIDE2KQkJVmVsb2R5bmUKKwkJCQkzNDUgRGlnaXRhbCBEcml2ZQorCQkJCU1vcmdhbiBIaWxsIENBIDk1MDM3CisJCQkJVU5JVEVEIFNUQVRFUworCis2MC04My1CMiAgIChoZXgpCQlHa1dhcmUgZS5LLgorNjA4M0IyICAgICAoYmFzZSAxNikJCUdrV2FyZSBlLksuCisJCQkJSHVtYm9sZHRzdHJhc3NlIDE3NworCQkJCUVzc2VuIE5SVyA0NTE0OQorCQkJCUdFUk1BTlkKKworNjAtODQtM0IgICAoaGV4KQkJU29sYWRpZ20sIEluYy4KKzYwODQzQiAgICAgKGJhc2UgMTYpCQlTb2xhZGlnbSwgSW5jLgorCQkJCTE5NS4gUyBNaWxwaXRhcyBCbHZkCisJCQkJTWlscGl0YXMgQ0EgOTUwMzUKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLTg2LTQ1ICAgKGhleCkJCUF2ZXJ5IFdlaWdoLVRyb25peCwgTExDCis2MDg2NDUgICAgIChiYXNlIDE2KQkJQXZlcnkgV2VpZ2gtVHJvbml4LCBMTEMKKwkJCQkxMDAwIEFybXN0cm9uZyBEcml2ZQorCQkJCUZhaXJtb250IE1OIDU2MDMxCisJCQkJVU5JVEVEIFNUQVRFUworCis2MC04OS0zQyAgIChoZXgpCQlUaGVybW8gRmlzaGVyIFNjaWVudGlmaWMgUC5PLkEuCis2MDg5M0MgICAgIChiYXNlIDE2KQkJVGhlcm1vIEZpc2hlciBTY2llbnRpZmljIFAuTy5BLgorCQkJCTQ2IEpvbnNwaW4gUmQuCisJCQkJV2lsbWluZ3RvbiBNQSAwMTg4NworCQkJCVVOSVRFRCBTVEFURVMKKworNjAtODktQjEgICAoaGV4KQkJS2V5IERpZ2l0YWwgU3lzdGVtcworNjA4OUIxICAgICAoYmFzZSAxNikJCUtleSBEaWdpdGFsIFN5c3RlbXMKKwkJCQk1MjEgRSAzcmQgU3RyZWV0CisJCQkJTW91bnQgVmVybm9uIE5ZIDEwNTUzCisJCQkJVU5JVEVEIFNUQVRFUworCis2MC04OS1CNyAgIChoZXgpCQlLQUVMIE3cSEVORElTTElLIEVMRUtUUk9OSUsgVElDQVJFVCBTQU5BWUkgTGltaXRlZCDeaXJrZXRpCis2MDg5QjcgICAgIChiYXNlIDE2KQkJS0FFTCBN3EhFTkRJU0xJSyBFTEVLVFJPTklLIFRJQ0FSRVQgU0FOQVlJIExpbWl0ZWQg3mlya2V0aQorCQkJCUF0YXT8cmsgTWFoLiA3OCBzb2thayAsTm86MTAsIEL8efxrYWxhbiBNZXZraWksCisJCQkJVWx1Y2FrIC8gS2VtYWxwYXNhCisJCQkJSXptaXIgQWVnZWFuIDM1MTc1CisJCQkJVFVSS0VZCisKKzYwLThDLTJCICAgKGhleCkJCUhhbnNvbiBUZWNobm9sb2d5Cis2MDhDMkIgICAgIChiYXNlIDE2KQkJSGFuc29uIFRlY2hub2xvZ3kKKwkJCQlSb29tIDE1MDMsIFpoYW8gSmlhIEJhbmcgUm9hZAorCQkJCVNoYW5naGFpICAyMDAwMzAKKwkJCQlDSElOQQorCis2MC04RC0xNyAgIChoZXgpCQlTZW50cnVzIEdvdmVybm1lbnQgU3lzdGVtcyBEaXZpc2lvbiwgSW5jCis2MDhEMTcgICAgIChiYXNlIDE2KQkJU2VudHJ1cyBHb3Zlcm5tZW50IFN5c3RlbXMgRGl2aXNpb24sIEluYworCQkJCTE0MSBDaGVzdGVyZmllbGQgSW5kdXN0cmlhbCBCbHZkCisJCQkJQ2hlc3RlcmZpZWxkIE1PIDYzMDA1LTEyMTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLTkwLTg0ICAgKGhleCkJCURTU0QgSW5jCis2MDkwODQgICAgIChiYXNlIDE2KQkJRFNTRCBJbmMKKwkJCQk0MDI1IEJvaGFubm9uIERyCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworNjAtOUEtQTQgICAoaGV4KQkJR1ZJIFNFQ1VSSVRZIElOQy4KKzYwOUFBNCAgICAgKGJhc2UgMTYpCQlHVkkgU0VDVVJJVFkgSU5DLgorCQkJCTI4MDEgVFJBREUgQ0VOVEVSIERSIFNURS4xMjAKKwkJCQlDQVJST0xMVE9OIFRYIDc1MDA3CisJCQkJVU5JVEVEIFNUQVRFUworCis2MC05RS02NCAgIChoZXgpCQlWaXZvbmljIEdtYkgKKzYwOUU2NCAgICAgKGJhc2UgMTYpCQlWaXZvbmljIEdtYkgKKwkJCQlLdXJmdWVyc3QtRXBwc3RlaW4tUmluZyA0CisJCQkJU2FpbGF1ZiBCYXllcm4gNjM4NzcKKwkJCQlHRVJNQU5ZCisKKzYwLTlGLTlEICAgKGhleCkJCUNsb3VkU3dpdGNoCis2MDlGOUQgICAgIChiYXNlIDE2KQkJQ2xvdWRTd2l0Y2gKKwkJCQkyMDAgV2hlZWxlciBSZAorCQkJCUJ1cmxpbmd0b24gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLUExLTBBICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNjBBMTBBICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2MC1CMy1DNCAgIChoZXgpCQlFbGJlciBTcmwKKzYwQjNDNCAgICAgKGJhc2UgMTYpCQlFbGJlciBTcmwKKwkJCQl2aWEgUG9udGV2ZWNjaGlvIDQyIFcKKwkJCQlDYXJhc2NvIEdlIDE2MDQyCisJCQkJSVRBTFkKKworNjAtQjYtMDYgICAoaGV4KQkJUGhvcnVzCis2MEI2MDYgICAgIChiYXNlIDE2KQkJUGhvcnVzCisJCQkJMTYyNTUgVmVudHVyYSBCb3VsZXZhcmQsIFN1aXRlIDMxMAorCQkJCUVuY2lubyBDQSA5MTQzNgorCQkJCVVOSVRFRCBTVEFURVMKKworNjAtQjktMzMgICAoaGV4KQkJRGV1dHJvbiBFbGVjdHJvbmljcyBDb3JwLgorNjBCOTMzICAgICAoYmFzZSAxNikJCURldXRyb24gRWxlY3Ryb25pY3MgQ29ycC4KKwkJCQk4RiwgNjgsIFNlYy4gMywgTmFua2luZyBFLiBSZC4KKwkJCQlUYWlwZWkgVGFpd2FuIDEwNAorCQkJCVRBSVdBTiwgUFJPVklOQ0UgT0YgQ0hJTkEKKworNjAtQjktODIgICAoaGV4KQkJUk8uVkUuUi4gTGFib3JhdG9yaWVzIFMucC5BLgorNjBCOTgyICAgICAoYmFzZSAxNikJCVJPLlZFLlIuIExhYm9yYXRvcmllcyBTLnAuQS4KKwkJCQlWaWEgUGFyaW5pLCAyCisJCQkJU2lybWlvbmUgQnJlc2NpYSAyNTAxOQorCQkJCUlUQUxZCisKKzYwLUM1LTQ3ICAgKGhleCkJCUFwcGxlLCBJbmMuCis2MEM1NDcgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLUM5LTgwICAgKGhleCkJCVRyeW11cworNjBDOTgwICAgICAoYmFzZSAxNikJCVRyeW11cworCQkJCUJ1Y2hlb24gVGVjaG5vIFBhcmsgMzAzLTkwMgorCQkJCU9qZW9uZy1ndSBTYW1qdW5nLWRvbmcKKwkJCQlCdWNoZW9uLXNpIDQyMS03NDEgR3l1bmdnaS1kbworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2MC1DQi1GQiAgIChoZXgpCQlBaXJTY2FwZSBJbmMuCis2MENCRkIgICAgIChiYXNlIDE2KQkJQWlyU2NhcGUgSW5jLgorCQkJCTYyNSBDaGFybGVzIFdheQorCQkJCU1lZGZvcmQgT1IgOTc1MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLUQwLUE5ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNjBEMEE5ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2MC1EMS1BQSAgIChoZXgpCQlWaXNoYWwgVGVsZWNvbW11bmljYXRpb25zIFB2dCBMdGQKKzYwRDFBQSAgICAgKGJhc2UgMTYpCQlWaXNoYWwgVGVsZWNvbW11bmljYXRpb25zIFB2dCBMdGQKKwkJCQkyNSBTaXRhcmFtIEJ1aWxkaW5nIERyIEQgTiBSb2FkCisJCQkJRm9ydCBNdW1iYWkKKwkJCQlNdW1iYWkgTWFoYXJhc3RyYSA0MDAwMDEKKwkJCQlJTkRJQQorCis2MC1EMy0wQSAgIChoZXgpCQlRdWF0aXVzIExpbWl0ZWQKKzYwRDMwQSAgICAgKGJhc2UgMTYpCQlRdWF0aXVzIExpbWl0ZWQKKwkJCQlVbml0cyAwNS0wNywgMTYvRiwgR3JlZW5maWVsZCBUb3dlciwgQ29uY29yZGlhIFBsYXphLAorCQkJCTEgU2NpZW5jZSBNdXNldW0gUmQuLCBUU1QgRWFzdAorCQkJCUtvd2xvb24gIAorCQkJCUhPTkcgS09ORworCis2MC1EOC0xOSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCis2MEQ4MTkgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgIDIwMTYxMyAKKwkJCQlDSElOQQorCis2MC1EQS0yMyAgIChoZXgpCQlFc3RlY2ggQ28uLEx0ZAorNjBEQTIzICAgICAoYmFzZSAxNikJCUVzdGVjaCBDby4sTHRkCisJCQkJIzcxNywxMzMtMSxTYW5nZGFld29uLURvbmcKKwkJCQlKdW5nd29uLUd1CisJCQkJU2VvbmduYW0tU2kgR3llb25nZ2ktRG8gNDYyLTEyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2MC1FOS01NiAgIChoZXgpCQlBeWxhIE5ldHdvcmtzLCBJbmMKKzYwRTk1NiAgICAgKGJhc2UgMTYpCQlBeWxhIE5ldHdvcmtzLCBJbmMKKwkJCQkyMTggTW9yZ2FuIExhbmUKKwkJCQlNZW5sbyBQYXJrIENBIDk0MDI1CisJCQkJVU5JVEVEIFNUQVRFUworCis2MC1FQi02OSAgIChoZXgpCQlRdWFudGEgY29tcHV0ZXIgSW5jLgorNjBFQjY5ICAgICAoYmFzZSAxNikJCVF1YW50YSBjb21wdXRlciBJbmMuCisJCQkJMjExLCBXZW4gSHdhIDJuZCBSZC4sS3VlaSBTaGFuLCAKKwkJCQlUYW8gWXVhbiAgMzMzNzcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzYwLUYxLTNEICAgKGhleCkJCUpBQkxPQ09NIHMuci5vLgorNjBGMTNEICAgICAoYmFzZSAxNikJCUpBQkxPQ09NIHMuci5vLgorCQkJCVYgTml2YWNoIDEyCisJCQkJSmFibG9uZWMgbmFkIE5pc291ICA0NjYgMDEKKwkJCQlDWkVDSCBSRVBVQkxJQworCis2MC1GMi04MSAgIChoZXgpCQlUUkFOV08gVEVDSE5PTE9HWSBDTy4sIExURC4KKzYwRjI4MSAgICAgKGJhc2UgMTYpCQlUUkFOV08gVEVDSE5PTE9HWSBDTy4sIExURC4KKwkJCQlOby4yMzYsIFNlYy4zLCBIdWFuYmVpIFJkLgorCQkJCUp1YmVpIENpdHkgSHNpbmNodSBDb3VudHkgMzAyNjUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzYwLUYzLURBICAgKGhleCkJCUxvZ2ljIFdheSBHbWJICis2MEYzREEgICAgIChiYXNlIDE2KQkJTG9naWMgV2F5IEdtYkgKKwkJCQlIYWdlbm93ZXIgU3RyLiA3MworCQkJCVNjaHdlcmluIE1lY2tsZW5idXJnLVdlc3QgUG9tZXJhbmlhIDE5MDYxCisJCQkJR0VSTUFOWQorCis2MC1GNS05QyAgIChoZXgpCQlDUlUtRGF0YXBvcnQKKzYwRjU5QyAgICAgKGJhc2UgMTYpCQlDUlUtRGF0YXBvcnQKKwkJCQkxMDAwIFNFIFRlY2ggQ2VudGVyIERyaXZlCisJCQkJU3VpdGUgMTYwCisJCQkJVmFuY291dmVyIFdBIDk4NjgzCisJCQkJVU5JVEVEIFNUQVRFUworCis2MC1GNi03MyAgIChoZXgpCQlURVJVTU8gQ09SUE9SQVRJT04KKzYwRjY3MyAgICAgKGJhc2UgMTYpCQlURVJVTU8gQ09SUE9SQVRJT04KKwkJCQkxNTAwLElub2t1Y2hpLE5ha2FpLW1hY2hpCisJCQkJQXNoaWdhcmFrYW1pLWd1biBLYW5hZ2F3YSAyNTktMDE1MQorCQkJCUpBUEFOCisKKzYwLUZBLUNEICAgKGhleCkJCUFwcGxlLCBJbmMuCis2MEZBQ0QgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzYwLUZCLTQyICAgKGhleCkJCUFwcGxlLCBJbmMKKzYwRkI0MiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis2NC0wMC1GMSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis2NDAwRjEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis2NC0wOS00QyAgIChoZXgpCQlCZWlqaW5nIFN1cGVyYmVlIFdpcmVsZXNzIFRlY2hub2xvZ3kgQ28uLEx0ZAorNjQwOTRDICAgICAoYmFzZSAxNikJCUJlaWppbmcgU3VwZXJiZWUgV2lyZWxlc3MgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJQjcsU2NpZW5jZS1UZWNoIEZvcnR1bmUgQ2VudGVyLAorCQkJCU5vLjgsWHVlcWluZ1JvYWQsSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDE5MgorCQkJCUNISU5BCisKKzY0LTBFLTM2ICAgKGhleCkJCVRBWlRBRworNjQwRTM2ICAgICAoYmFzZSAxNikJCVRBWlRBRworCQkJCUNpY2VhIDEKKwkJCQlSdWUgZHUgQ291cnRpbAorCQkJCUJydXogIDM1MTcwCisJCQkJRlJBTkNFCisKKzY0LTBFLTk0ICAgKGhleCkJCVBsdXJpYnVzIE5ldHdvcmtzLCBJbmMuCis2NDBFOTQgICAgIChiYXNlIDE2KQkJUGx1cmlidXMgTmV0d29ya3MsIEluYy4KKwkJCQkxODA4IEVtYmFyY2FkZXJvIFJkIFN1aXRlIEIKKwkJCQlQYWxvIEFsdG8gQ0EgOTQzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTBGLTI4ICAgKGhleCkJCTJ3aXJlCis2NDBGMjggICAgIChiYXNlIDE2KQkJMndpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGFya3dheQorCQkJCVNhbiBKb3NlICBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtMTAtODQgICAoaGV4KQkJSEVYSVVNIFRlY2huaWNhbCBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKzY0MTA4NCAgICAgKGJhc2UgMTYpCQlIRVhJVU0gVGVjaG5pY2FsIERldmVsb3BtZW50IENvLiwgTHRkLgorCQkJCVZhY2kgdXQgNTFiCisJCQkJQlVEQVBFU1QgIEgtMTEzNAorCQkJCUhVTkdBUlkKKworNjQtMTYtOEQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNjQxNjhEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtMTYtRjAgICAoaGV4KQkJU2hlaHpoZW4gSHVhd2VpIENvbW11bmljYXRpb24gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorNjQxNkYwICAgICAoYmFzZSAxNikJCVNoZWh6aGVuIEh1YXdlaSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlCdWlsZGluZyAyLCBab25lIEIsSHVhd2VpIEluZHVzdHJpYWwgUGFyayxCYW50aWFuLCBMb25nZ2FuZyBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCis2NC0xQS0yMiAgIChoZXgpCQlIZWxpb3NwZWN0cmEvV29vZGhpbGwgSW52ZXN0bWVudHMKKzY0MUEyMiAgICAgKGJhc2UgMTYpCQlIZWxpb3NwZWN0cmEvV29vZGhpbGwgSW52ZXN0bWVudHMKKwkJCQlBcm1i5WdhduRnZW4gMworCQkJCUJvcuVzIE5vbmUgNTA2MzAKKwkJCQlTV0VERU4KKworNjQtMUUtODEgICAoaGV4KQkJRG93c2xha2UgTWljcm9zeXN0ZW1zCis2NDFFODEgICAgIChiYXNlIDE2KQkJRG93c2xha2UgTWljcm9zeXN0ZW1zCisJCQkJMjEgSGlnaCBTdHJlZXQsIFN1aXRlIDMwNgorCQkJCU5vcnRoIEFuZG92ZXIgTUEgMDE4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTIwLTBDICAgKGhleCkJCUFwcGxlLCBJbmMuCis2NDIwMEMgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIGluZmluaXRlIExvb3AKKwkJCQljdXBlcnRpbm8gY0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTIyLTE2ICAgKGhleCkJCVNoYW5kb25nIFRhaXhpbiBFbGVjdHJvbmljIGNvLixMdGQKKzY0MjIxNiAgICAgKGJhc2UgMTYpCQlTaGFuZG9uZyBUYWl4aW4gRWxlY3Ryb25pYyBjby4sTHRkCisJCQkJRkwuNixIYWljaGVuIEJ1aWxkaW5nCisJCQkJV2VuaHVhKFdlc3QpIFJvYWQsTGl4aWEgRGlzdHJpY3QKKwkJCQlKaW5hbiBTaGFuZG9uZyAyNTAwMTAKKwkJCQlDSElOQQorCis2NC0yNC0wMCAgIChoZXgpCQlYb3Jjb20gTHRkLgorNjQyNDAwICAgICAoYmFzZSAxNikJCVhvcmNvbSBMdGQuCisJCQkJVGVyYWR5b24gSW5kdXN0cmlhbCBQYXJrCisJCQkJRC5OIE1pc2dhdiAgMjAxNzkKKwkJCQlJU1JBRUwKKworNjQtMjctMzcgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKzY0MjczNyAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKKzY0LTJELUI3ICAgKGhleCkJCVNFVU5HSUwgRUxFQ1RST05JQ1MKKzY0MkRCNyAgICAgKGJhc2UgMTYpCQlTRVVOR0lMIEVMRUNUUk9OSUNTCisJCQkJIzE2LTgsIERvZGFuZy1kb25nCisJCQkJV29ubWktZ3UKKwkJCQlCdWNob24gR3l1b25nZ2ktZG8gNDIwLTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2NC0zMS01MCAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorNjQzMTUwICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTMxLTdFICAgKGhleCkJCURleGluIENvcnBvcmF0aW9uCis2NDMxN0UgICAgIChiYXNlIDE2KQkJRGV4aW4gQ29ycG9yYXRpb24KKwkJCQkxNEYtOCwgTm8uIDI1OCwgTGlhbiBDaGVuZyBSZC4KKwkJCQlDaHVuZyBIbyBDaXR5LCBUYWlwZWkgSHNpZW4gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNjQtMzQtMDkgICAoaGV4KQkJQklUd2F2ZSBQdGUgTHRkCis2NDM0MDkgICAgIChiYXNlIDE2KQkJQklUd2F2ZSBQdGUgTHRkCisJCQkJMiBTZXJhbmdvb24gTm9ydGggQXZlIDUKKwkJCQkjMDMtMDEKKwkJCQk1NTQ5MTEKKwkJCQlTSU5HQVBPUkUKKworNjQtNDMtNDYgICAoaGV4KQkJR3VhbmdEb25nIFF1aWNrIE5ldHdvcmsgQ29tcHV0ZXIgQ08uLExURAorNjQ0MzQ2ICAgICAoYmFzZSAxNikJCUd1YW5nRG9uZyBRdWljayBOZXR3b3JrIENvbXB1dGVyIENPLixMVEQKKwkJCQkxMkYsTm8uODAgb2YgTWlkZGxlIFhpYW5MaWUgUm9hZCxZdWVYaXUgRGlzdHJpY3QKKwkJCQlHdWFuZ1pob3UgR3VhbmdEb25nIDUxMDA3MAorCQkJCUNISU5BCisKKzY0LTRCLUMzICAgKGhleCkJCVNoYW5naGFpIFdPQVNpUyBUZWxlY29tbXVuaWNhdGlvbnMgTHRkLiwgQ28uCis2NDRCQzMgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgV09BU2lTIFRlbGVjb21tdW5pY2F0aW9ucyBMdGQuLCBDby4KKwkJCQkxNUYsIFNvZnR3YXJlIEJ1aWxkaW5nLAorCQkJCTQ2MSBIb25nY2FvIFJvYWQsIFh1aHVpIERpc3RyaWN0CisJCQkJU2hhbmdoYWkgIDIwMDIzMworCQkJCUNISU5BCisKKzY0LTRCLUYwICAgKGhleCkJCUNhbERpZ2l0LCBJbmMKKzY0NEJGMCAgICAgKGJhc2UgMTYpCQlDYWxEaWdpdCwgSW5jCisJCQkJMTk0MSBNaXJhbG9tYSBBdmUgI0IKKwkJCQlQbGFjZW50aWEgQ0EgOTI4NzAKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTRELTcwICAgKGhleCkJCWRTUEFDRSBHbWJICis2NDRENzAgICAgIChiYXNlIDE2KQkJZFNQQUNFIEdtYkgKKwkJCQlSYXRoZW5hdXN0cmHfZSAyNgorCQkJCVBhZGVyYm9ybiAgMzMxMDIKKwkJCQlHRVJNQU5ZCisKKzY0LTRGLTc0ICAgKGhleCkJCUxFTlVTIENvLiwgTHRkLgorNjQ0Rjc0ICAgICAoYmFzZSAxNikJCUxFTlVTIENvLiwgTHRkLgorCQkJCTE4LTUgR3dhY2hlb24tRG9uZworCQkJCUd3YWNoZW9uIEd5ZW9uZ2dpLURvIDQyNy0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNjQtNTEtN0UgICAoaGV4KQkJTE9ORyBCRU4gKERPTkdHVUFOKSBFTEVDVFJPTklDIFRFQ0hOT0xPR1kgQ08uLExURC4KKzY0NTE3RSAgICAgKGJhc2UgMTYpCQlMT05HIEJFTiAoRE9OR0dVQU4pIEVMRUNUUk9OSUMgVEVDSE5PTE9HWSBDTy4sTFRELgorCQkJCU5PLjE5LkppYW4gc2hlIFJvYWQsU2hpIG1hIFZpbGxhZ2UsVGFuZyB4aWEgIFRvd24sRG9uZyBndWFuLEd1YW5nIGRvbmcsQ2hpbmEKKwkJCQlEb25nIGd1YW4gR3VhbmcgZG9uZyA1MjM3MzEKKwkJCQlDSElOQQorCis2NC01Mi05OSAgIChoZXgpCQlDaGFtYmVybGFpbgorNjQ1Mjk5ICAgICAoYmFzZSAxNikJCUNoYW1iZXJsYWluCisJCQkJODQ1IE4gTGFyY2ggQXZlCisJCQkJRWxtaHVyc3QgSWxsaW5vaXMgNjAxMjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTU0LTIyICAgKGhleCkJCUVxdWlub3ggUGF5bWVudHMKKzY0NTQyMiAgICAgKGJhc2UgMTYpCQlFcXVpbm94IFBheW1lbnRzCisJCQkJODg4OCBFLiBSYWludHJlZSBEci4sIFN1aXRlIDMwMAorCQkJCVNjb3R0c2RhbGUgQXJpem9uYSA4NTI2MAorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtNTUtNjMgICAoaGV4KQkJSW50ZWxpZ2h0IEluYy4KKzY0NTU2MyAgICAgKGJhc2UgMTYpCQlJbnRlbGlnaHQgSW5jLgorCQkJCTM0NTAgUyBCcm9hZG1vbnQgRHJpdmUsIFN1aXRlIDEyNgorCQkJCVR1Y3NvbiBBWiA4NTcxMworCQkJCVVOSVRFRCBTVEFURVMKKworNjQtNTUtN0YgICAoaGV4KQkJTlNGT0NVUyBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorNjQ1NTdGICAgICAoYmFzZSAxNikJCU5TRk9DVVMgSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkzL0YsRXRoZXIgQnVpbGRpbmcsIE5vLjQgQmVpd2EgUmQuLEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAwODkKKwkJCQlDSElOQQorCis2NC01RC1ENyAgIChoZXgpCQlTaGVuemhlbiBMaWZlc2Vuc2UgTWVkaWNhbCBFbGVjdHJvbmljcyBDby4sIEx0ZC4gICAgCis2NDVERDcgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gTGlmZXNlbnNlIE1lZGljYWwgRWxlY3Ryb25pY3MgQ28uLCBMdGQuICAgIAorCQkJCUNoaW5hIEFjYWRlbXkgb2YgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSBEZXZlbG9wbWVudCwgUm9vbSAxOUEgCisJCQkJSGlnaC10ZWNoLiBTb3V0aCBTdHJlZXQgTm8uIDEsIFNvdXRoIERpc3RyaWN0IG9mIEhpZ2gtdGVjaCBJbmR1c3RyaWFsIEFyZWEgCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzY0LTVFLUJFICAgKGhleCkJCVlhaG9vISBKQVBBTgorNjQ1RUJFICAgICAoYmFzZSAxNikJCVlhaG9vISBKQVBBTgorCQkJCU1pZHRvd24gVG93ZXIKKwkJCQk5LTctMSBBa2FzYWthCisJCQkJTWluYXRvLWt1IFRva3lvIDEwNy02MjExCisJCQkJSkFQQU4KKworNjQtNjUtQzAgICAoaGV4KQkJTnV2b24sIEluYworNjQ2NUMwICAgICAoYmFzZSAxNikJCU51dm9uLCBJbmMKKwkJCQkzMTMwIEFscGluZSBSb2FkCisJCQkJU3VpdGUgMjg4LTQ2NQorCQkJCVBvcnRvbGEgVmFsbGV5IENhbGlmb3JuaWEgOTQwMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTY3LTA3ICAgKGhleCkJCUJlaWppbmcgT21uaWZpYyBUZWNobm9sb2d5LCBMdGQuCis2NDY3MDcgICAgIChiYXNlIDE2KQkJQmVpamluZyBPbW5pZmljIFRlY2hub2xvZ3ksIEx0ZC4KKwkJCQlSbS4gNDAyLCBCdWlsZGluZyAxLCBTaHVpIE11IFFpbmcgSHVhIENvbW11bml0eQorCQkJCVpob25nIEd1YW4gQ3VuIEJlaSBFciBKaWUsIEhhaWRpYW4gRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAxOTAKKwkJCQlDSElOQQorCis2NC02OC0wQyAgIChoZXgpCQlDT01UUkVORAorNjQ2ODBDICAgICAoYmFzZSAxNikJCUNPTVRSRU5ECisJCQkJM0YtMSwxMCBMYW5lIDYwOSwgQ2h1bmcgSHNpbiBSb2FkLCBTZWN0aW9uIDUKKwkJCQlTYW4gQ2h1bmcgQ2l0eQorCQkJCVRhaXBlaSBIc2llbiAgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis2NC02OS1CQyAgIChoZXgpCQlIeXRlcmEgQ29tbXVuaWNhdGlvbnMgQ28gLixsdGQKKzY0NjlCQyAgICAgKGJhc2UgMTYpCQlIeXRlcmEgQ29tbXVuaWNhdGlvbnMgQ28gLixsdGQKKwkJCQlIWVQgVG93ZXIgLEhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrIE5vcnRoLE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzY0LTZFLTZDICAgKGhleCkJCVJhZGlvIERhdGFjb20gTExDCis2NDZFNkMgICAgIChiYXNlIDE2KQkJUmFkaW8gRGF0YWNvbSBMTEMKKwkJCQk5NjAxIE4gMzV0aCBTdAorCQkJCVBob2VuaXggQVogODUwMjgKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTcwLTAyICAgKGhleCkJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorNjQ3MDAyICAgICAoYmFzZSAxNikJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorCQkJCUJ1aWxkaW5nIDI0IChmbG9vcnMgMSwzLDQsNSkgYW5kIDI4IChmbG9vcnMxLTQpICBDZW50cmFsIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgUGFyayxTaGVubmFuIFJkLCBOYW5zaGFuLCAKKwkJCQlTaGVuemhlbiwgR3Vhbmdkb25nIFByb3ZpbmNlLCA1MTgwNTcKKwkJCQlDSElOQQorCis2NC03My1FMiAgIChoZXgpCQlBcmJpdGVyIFN5c3RlbXMsIEluYy4KKzY0NzNFMiAgICAgKGJhc2UgMTYpCQlBcmJpdGVyIFN5c3RlbXMsIEluYy4KKwkJCQkxMzI0IFZlbmRlbHMgQ2lyY2xlCisJCQkJU3VpdGUgMTIxCisJCQkJUGFzbyBSb2JsZXMgQ2FsaWZvcm5pYSA5MzQ0NgorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtNzYtNTcgICAoaGV4KQkJSW5ub3ZhdGl2ZSBTZWN1cml0eSBEZXNpZ25zCis2NDc2NTcgICAgIChiYXNlIDE2KQkJSW5ub3ZhdGl2ZSBTZWN1cml0eSBEZXNpZ25zCisJCQkJMTggVGVjaG5vbG9neSBEcml2ZQorCQkJCVN1aXRlICMxMzQKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTdCLUQ0ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCis2NDdCRDQgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LTdDLTM0ICAgKGhleCkJCVViZWUgSW50ZXJhY3RpdmUgQ29ycC4KKzY0N0MzNCAgICAgKGJhc2UgMTYpCQlVYmVlIEludGVyYWN0aXZlIENvcnAuCisJCQkJMTBGLTEsIE5vLiA1LCBUYWl5dWFuIDFzdCBTdAorCQkJCUpodWJlaSBDaXR5IEhzaW5jaHUgQ291bnR5IDMwMgorCQkJCVRBSVdBTiwgUFJPVklOQ0UgT0YgQ0hJTkEKKworNjQtN0QtODEgICAoaGV4KQkJWU9LT1RBIElORFVTVFJJQUwgQ08sLkxURAorNjQ3RDgxICAgICAoYmFzZSAxNikJCVlPS09UQSBJTkRVU1RSSUFMIENPLC5MVEQKKwkJCQk1LTU1IE5JU0hJSVdBVEEKKwkJCQkzLUNIT01FCisJCQkJSElHQVNISSBPU0FLQS1DSVRZIE9TQUtBIDU3OC0wOTQ3CisJCQkJSkFQQU4KKworNjQtN0YtREEgICAoaGV4KQkJVEVLVEVMSUMgQ29tbXVuaWNhdGlvbnMgSW5jLgorNjQ3RkRBICAgICAoYmFzZSAxNikJCVRFS1RFTElDIENvbW11bmljYXRpb25zIEluYy4KKwkJCQk3NjU3IDEwdGggU3RyZWV0IE5FCisJCQkJQ2FsZ2FyeSBBbGJlcnRhIFQyRSA4WDIKKwkJCQlDQU5BREEKKworNjQtODAtOEIgICAoaGV4KQkJVkcgQ29udHJvbHMsIEluYy4KKzY0ODA4QiAgICAgKGJhc2UgMTYpCQlWRyBDb250cm9scywgSW5jLgorCQkJCTExIEJ1dHRlcm51dCBEcml2ZQorCQkJCVZlcm5vbiBOSiAwNzQ2MgorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtODAtOTkgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzY0ODA5OSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworNjQtODEtMjUgICAoaGV4KQkJQWxwaGF0cm9uIE1hcmluZSBCVgorNjQ4MTI1ICAgICAoYmFzZSAxNikJCUFscGhhdHJvbiBNYXJpbmUgQlYKKwkJCQlTY2hhYXJkaWprIDIzCisJCQkJUm90dGVyZGFtIFp1aWQtSG9sbGFuZCAzMDYzTkgKKwkJCQlORVRIRVJMQU5EUworCis2NC04Ny04OCAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCis2NDg3ODggICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkgCisJCQkJVU5JVEVEIFNUQVRFUworCis2NC04Ny1ENyAgIChoZXgpCQlBREIgQnJvYWRiYW5kIEl0YWxpYQorNjQ4N0Q3ICAgICAoYmFzZSAxNikJCUFEQiBCcm9hZGJhbmQgSXRhbGlhCisJCQkJVklBTEUgU0FSQ0EgMjIyCisJCQkJTUlMQU5PICAyMDEyNiAKKwkJCQlJVEFMWQorCis2NC05OS01RCAgIChoZXgpCQlMR0UgCis2NDk5NUQgICAgIChiYXNlIDE2KQkJTEdFIAorCQkJCTYwLTM5ICwgS2FzYW4gLWRvbmcgLCBHdW1jaGVvbi1ndS4KKwkJCQlTZW91bCAgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNjQtOUItMjQgICAoaGV4KQkJViBUZWNobm9sb2d5IENvLiwgTHRkLgorNjQ5QjI0ICAgICAoYmFzZSAxNikJCVYgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlZQlAgRWFzdCBUb3dlciA1RiwKKwkJCQkxMzQgR29kby1jaG8sIEhvZ29nYXlhLWt1LAorCQkJCVlva29oYW1hIGNpdHkgS2FuYWdhd2EgMjQwLTAwMDUKKwkJCQlKQVBBTgorCis2NC05Qy04RSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworNjQ5QzhFICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis2NC05RS1GMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis2NDlFRjMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtOUYtRjcgICAoaGV4KQkJS29uZSBPWWoKKzY0OUZGNyAgICAgKGJhc2UgMTYpCQlLb25lIE9ZagorCQkJCU15bGx5a2F0dSAzCisJCQkJSHl2aW5rYWEgSHl2aW5rYWEgMDU4MzAKKwkJCQlGSU5MQU5ECisKKzY0LUEwLUU3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzY0QTBFNyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis2NC1BMi0zMiAgIChoZXgpCQlPT08gU2FtbGlnaHQKKzY0QTIzMiAgICAgKGJhc2UgMTYpCQlPT08gU2FtbGlnaHQKKwkJCQk0NEEsIER1Ym5pbnNrYXlhIHN0ci4sIAorCQkJCU1vc2NvdyAgMTI3NTkxCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzY0LUE3LTY5ICAgKGhleCkJCUhUQyBDb3Jwb3JhdGlvbgorNjRBNzY5ICAgICAoYmFzZSAxNikJCUhUQyBDb3Jwb3JhdGlvbgorCQkJCU5vLiAyMywgWGluZ2h1YSBSZCwgCisJCQkJVGFveXVhbiBDb3VudHkgIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNjQtQTgtMzcgICAoaGV4KQkJSnVuaSBLb3JlYSBDby4sIEx0ZAorNjRBODM3ICAgICAoYmFzZSAxNikJCUp1bmkgS29yZWEgQ28uLCBMdGQKKwkJCQlFNjAzIEJ1bmRhbmcgVGVjaG5vLVBhcmsgMTUxCisJCQkJWWF0YXAsIEJ1bmRhbmcKKwkJCQlTZW9uZ25hbSBHeWVvbmdnaSA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzY0LUFFLTBDICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzY0QUUwQyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis2NC1BRS04OCAgIChoZXgpCQlQb2x5dGVjIEdtYkgKKzY0QUU4OCAgICAgKGJhc2UgMTYpCQlQb2x5dGVjIEdtYkgKKwkJCQlQb2x5dGVjIFBsYXR6IDEtNworCQkJCVdhbGRicm9ubiBCVyA3NjMzNworCQkJCUdFUk1BTlkKKworNjQtQjYtNEEgICAoaGV4KQkJVmlWT3RlY2gsIEluYy4KKzY0QjY0QSAgICAgKGJhc2UgMTYpCQlWaVZPdGVjaCwgSW5jLgorCQkJCTQ1MSBFbCBDYW1pbm8gUmVhbAorCQkJCVNhbnRhIENsYXJhIENBIDk1MDUwCisJCQkJVU5JVEVEIFNUQVRFUworCis2NC1COS1FOCAgIChoZXgpCQlBcHBsZSwgSW5jCis2NEI5RTggICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtQkMtMTEgICAoaGV4KQkJQ29tYmlRIEFCCis2NEJDMTEgICAgIChiYXNlIDE2KQkJQ29tYmlRIEFCCisJCQkJU2NpZW5jZSBQYXJrCisJCQkJR2p1dGVyaWdhdGFuIDkKKwkJCQlKb25rb3BpbmcgIDU1MyAxOAorCQkJCVNXRURFTgorCis2NC1DNS1BQSAgIChoZXgpCQlTb3V0aCBBZnJpY2FuIEJyb2FkY2FzdGluZyBDb3Jwb3JhdGlvbgorNjRDNUFBICAgICAoYmFzZSAxNikJCVNvdXRoIEFmcmljYW4gQnJvYWRjYXN0aW5nIENvcnBvcmF0aW9uCisJCQkJNzcgVHdpY2tlbmhhbSBBdmVudWUKKwkJCQlDb3JuZXIgSGVubGV5IFJvYWQKKwkJCQlBdWNrbGFuZCBQYXJrIEdhdXRlbmcgMjAwNgorCQkJCVNPVVRIIEFGUklDQQorCis2NC1DNi1BRiAgIChoZXgpCQlBWEVSUkEgTmV0d29ya3MgTHRkCis2NEM2QUYgICAgIChiYXNlIDE2KQkJQVhFUlJBIE5ldHdvcmtzIEx0ZAorCQkJCTI0ICBSYW91bCBXYWxsZW5iZXJnIFN0LiAsIAorCQkJCVRlbC1Bdml2ICAgSVNSQUVMIDY5NzE5CisJCQkJSVNSQUVMCisKKzY0LUQwLTJEICAgKGhleCkJCU5leHQgR2VuZXJhdGlvbiBJbnRlZ3JhdGlvbiAoTkdJKQorNjREMDJEICAgICAoYmFzZSAxNikJCU5leHQgR2VuZXJhdGlvbiBJbnRlZ3JhdGlvbiAoTkdJKQorCQkJCTEzNyBydWUgZGUgVmVyc2FpbGxlcworCQkJCUxlIENoZXNuYXkgIDc4MTUwCisJCQkJRlJBTkNFCisKKzY0LUQxLUEzICAgKGhleCkJCVNpdGVjb20gRXVyb3BlIEJWCis2NEQxQTMgICAgIChiYXNlIDE2KQkJU2l0ZWNvbSBFdXJvcGUgQlYKKwkJCQlMaW5hdGViYWFuIDEwMQorCQkJCVJvdHRlcmRhbSBadWlkLUhvbGxhbmQgMzA0NSBBSAorCQkJCU5FVEhFUkxBTkRTCisKKzY0LUQyLTQxICAgKGhleCkJCUtlaXRoICYgS29lcCBHbWJICis2NEQyNDEgICAgIChiYXNlIDE2KQkJS2VpdGggJiBLb2VwIEdtYkgKKwkJCQlVZWxsZW5kYWhsZXIgU3RyLiAxOTkKKwkJCQlXdXBwZXJ0YWwgTlJXIDQyMTA5CisJCQkJR0VSTUFOWQorCis2NC1ENC1EQSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzY0RDREQSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzY0LUQ5LTEyICAgKGhleCkJCVNvbGlkaWNhLCBJbmMuCis2NEQ5MTIgICAgIChiYXNlIDE2KQkJU29saWRpY2EsIEluYy4KKwkJCQk1ODQwIEludGVyZmFjZSBEcml2ZQorCQkJCVN1aXRlIDIwMAorCQkJCUFubiBBcmJvciBNaWNoaWdhbiA0ODEwMworCQkJCVVOSVRFRCBTVEFURVMKKworNjQtRDktODkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNjREOTg5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzY0LURCLTE4ICAgKGhleCkJCU9wZW5QYXR0ZXJuCis2NERCMTggICAgIChiYXNlIDE2KQkJT3BlblBhdHRlcm4KKwkJCQkxMDkvMTExIHJ1ZSBkZXMgQ/R0ZXMKKwkJCQlNYWlzb25zIExhZmZpdHRlIFl2ZWxpbmVzIDc4NjAwCisJCQkJRlJBTkNFCisKKzY0LURDLTAxICAgKGhleCkJCVN0YXRpYyBTeXN0ZW1zIEdyb3VwIFBMQworNjREQzAxICAgICAoYmFzZSAxNikJCVN0YXRpYyBTeXN0ZW1zIEdyb3VwIFBMQworCQkJCUhlYXRobWlsbCBSb2FkCisJCQkJV29tYm91cm5lCisJCQkJV29sdmVyaGFtcHRvbiBXZXN0IE1pZGxhbmRzIFdWNSA4QU4KKwkJCQlVTklURUQgS0lOR0RPTQorCis2NC1ERS0xQyAgIChoZXgpCQlLaW5nbmV0aWMgUHRlIEx0ZAorNjRERTFDICAgICAoYmFzZSAxNikJCUtpbmduZXRpYyBQdGUgTHRkCisJCQkJNDcgS2FraSBCdWtpdCBQbGFjZQorCQkJCSMwMi0wMCBFdW5vcyBUZWNocGFyaworCQkJCTQxNjIyNQorCQkJCVNJTkdBUE9SRQorCis2NC1FMS02MSAgIChoZXgpCQlERVAgQ29ycC4KKzY0RTE2MSAgICAgKGJhc2UgMTYpCQlERVAgQ29ycC4KKwkJCQlOaXNoaS1zaGluanVrdSA2LTEyLTcKKwkJCQlTdG9yayBTaGluanVrdSAxRiBBLTExCisJCQkJU2hpbmp1a3UgVG9reW8gMTYwLTAwMjMKKwkJCQlKQVBBTgorCis2NC1FNi04MiAgIChoZXgpCQlBcHBsZSwgSW5jLgorNjRFNjgyICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBpbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtRTgtNEYgICAoaGV4KQkJU2VyaWFsd2F5IENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4gTHRkCis2NEU4NEYgICAgIChiYXNlIDE2KQkJU2VyaWFsd2F5IENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4gTHRkCisJCQkJUm9vbSAzMTUsIDcwNiBQYWludGluZyBSb29tLCAKKwkJCQk4NSMgSmlhbmNhaWNoZW5nIFdlc3QgUm9hZCwgSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA5NgorCQkJCUNISU5BCisKKzY0LUU4LUU2ICAgKGhleCkJCWdsb2JhbCBtb2lzdHVyZSBtYW5hZ2VtZW50IHN5c3RlbQorNjRFOEU2ICAgICAoYmFzZSAxNikJCWdsb2JhbCBtb2lzdHVyZSBtYW5hZ2VtZW50IHN5c3RlbQorCQkJCTExMTMyIGJyb2FkIHJpdmVyIHJvYWQKKwkJCQlzdWl0ZSBhCisJCQkJaXJtbyBzYyAyOTA2MworCQkJCVVOSVRFRCBTVEFURVMKKworNjQtRUQtNTcgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzY0RUQ1NyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOLiBVUyA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworNjQtRUQtNjIgICAoaGV4KQkJV09PUkkgU1lTVEVNUyBDby4sIEx0ZAorNjRFRDYyICAgICAoYmFzZSAxNikJCVdPT1JJIFNZU1RFTVMgQ28uLCBMdGQKKwkJCQkxMDFIbyAjNDItOSwgSmVvbmdqYS1kb25nLCBQdW5kYW5nLWd1CisJCQkJU3VuZ25hbS1zaSBLeXVuZ2dpLWRvIDQ2My04NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNjQtRjItNDIgICAoaGV4KQkJR2VyZGVzIEFrdGllbmdlc2VsbHNjaGFmdAorNjRGMjQyICAgICAoYmFzZSAxNikJCUdlcmRlcyBBa3RpZW5nZXNlbGxzY2hhZnQKKwkJCQlCZXJnZXJ3aWVzZW5zdHIuIDkKKwkJCQlNZWNrZW5oZWltIE5SVyA1MzM0MAorCQkJCUdFUk1BTlkKKworNjQtRjktNzAgICAoaGV4KQkJS2VuYWRlIEVsZWN0cm9uaWNzIFRlY2hub2xvZ3kgQ28uLExURC4KKzY0Rjk3MCAgICAgKGJhc2UgMTYpCQlLZW5hZGUgRWxlY3Ryb25pY3MgVGVjaG5vbG9neSBDby4sTFRELgorCQkJCUYvRyByb29tLDExL0YsSGFuZ2R1IGJ1aWxkaW5nLEh1YWZ1IFJkLCBGdXRpYW4gZGlzdHJpY3QsCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODAyOAorCQkJCUNISU5BCisKKzY0LUY5LTg3ICAgKGhleCkJCUF2dmFzaSBJbmMuCis2NEY5ODcgICAgIChiYXNlIDE2KQkJQXZ2YXNpIEluYy4KKwkJCQkxMDMgUmFuZGFsbCBEci4KKwkJCQlXYXRlcmxvbyBPTiBOMlYgMUM1CisJCQkJQ0FOQURBCisKKzY0LUZDLThDICAgKGhleCkJCVpvbmFyIFN5c3RlbXMKKzY0RkM4QyAgICAgKGJhc2UgMTYpCQlab25hciBTeXN0ZW1zCisJCQkJMTgyMDAgQ2FzY2FkZSBBdmUgU291dGgKKwkJCQlTZWF0dGxlIFdBIDk4MTE4CisJCQkJVU5JVEVEIFNUQVRFUworCis2OC0wNS1DQSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorNjgwNUNBICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis2OC0wOS0yNyAgIChoZXgpCQlBcHBsZSwgSW5jLgorNjgwOTI3ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis2OC0xMi0yRCAgIChoZXgpCQlTcGVjaWFsIEluc3RydW1lbnQgRGV2ZWxvcG1lbnQgQ28uLCBMdGQuCis2ODEyMkQgICAgIChiYXNlIDE2KQkJU3BlY2lhbCBJbnN0cnVtZW50IERldmVsb3BtZW50IENvLiwgTHRkLgorCQkJCTZGLTEsIE5vLiAxMjMsIExhbmUgMjM1CisJCQkJQmFvIENoaWFvIFJvYWQKKwkJCQlIc2luIFRpZW4gVGFpcGVpIEhzaWVuIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNjgtMTYtMDUgICAoaGV4KQkJU3lzdGVtcyBBbmQgRWxlY3Ryb25pYyBEZXZlbG9wbWVudCBGWkNPCis2ODE2MDUgICAgIChiYXNlIDE2KQkJU3lzdGVtcyBBbmQgRWxlY3Ryb25pYyBEZXZlbG9wbWVudCBGWkNPCisJCQkJUm91bmRhYm91dCBuby4gOAorCQkJCUZhY3RvcnkgdW5pdCBuby4gRkItMDYKKwkJCQlKZWJlbCBBbGkgZnJlZSBab25lIER1YmFpIFAuTy5Cb3ggNjExMjkKKwkJCQlVTklURUQgQVJBQiBFTUlSQVRFUworCis2OC0xQS1CMiAgIChoZXgpCQl6dGUgY29ycG9yYXRpb24KKzY4MUFCMiAgICAgKGJhc2UgMTYpCQl6dGUgY29ycG9yYXRpb24KKwkJCQkxMi9GLix6dGUgUiZEIEJ1aWxkaW5nLEtlamluYW4gUm9hZAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis2OC0xRi1EOCAgIChoZXgpCQlBZHZhbmNlZCBUZWxlbWV0cnkKKzY4MUZEOCAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBUZWxlbWV0cnkKKwkJCQkxMDY3MCBUcmVlbmEgU3RyZWV0CisJCQkJU3VpdGUgMTA2CisJCQkJU2FuIERpZWdvIENBIDkyMTMxCisJCQkJVU5JVEVEIFNUQVRFUworCis2OC0yMy00QiAgIChoZXgpCQlOaWhvbiBEZW5neW8gS291c2FrdQorNjgyMzRCICAgICAoYmFzZSAxNikJCU5paG9uIERlbmd5byBLb3VzYWt1CisJCQkJc2hpbm1hY2hpIDIxLTEKKwkJCQltYXRvYmEKKwkJCQlrYXdhZ29lLXNoaSBzYWl0YW1hIDM1MC0xMTA3CisJCQkJSkFQQU4KKworNjgtNDMtNTIgICAoaGV4KQkJQmh1dSBMaW1pdGVkCis2ODQzNTIgICAgIChiYXNlIDE2KQkJQmh1dSBMaW1pdGVkCisJCQkJT2ZmaWNlIDEsIDQ2NSBNdCBFZGVuIFJvYWQKKwkJCQlNdCBFZGVuCisJCQkJQXVja2xhbmQgIDEwMjMKKwkJCQlORVcgWkVBTEFORAorCis2OC00Qi04OCAgIChoZXgpCQlHYWx0cm9uaWNzIFRlbGVtZXRyeSBJbmMuCis2ODRCODggICAgIChiYXNlIDE2KQkJR2FsdHJvbmljcyBUZWxlbWV0cnkgSW5jLgorCQkJCTMxIEx1cGkgQ3QKKwkJCQlTdWl0ZSAxNTAKKwkJCQlQYWxtIENvYXN0IEZsb3JpZGEgMzIxMzcKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LTU0LUY1ICAgKGhleCkJCWVuTGlnaHRlZCBJbmMKKzY4NTRGNSAgICAgKGJhc2UgMTYpCQllbkxpZ2h0ZWQgSW5jCisJCQkJMTQ1MSBHcmFudCBSZAorCQkJCVN1aXRlIDIwMAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDAKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LTU5LTdGICAgKGhleCkJCUFsY2F0ZWwgTHVjZW50Cis2ODU5N0YgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBMdWNlbnQKKwkJCQlWaWEgVHJlbnRvLCAzMAorCQkJCVZpbWVyY2F0ZSBNQiAyMDA1OQorCQkJCUlUQUxZCisKKzY4LTVCLTM2ICAgKGhleCkJCVBPV0VSVEVDSCBJTkRVU1RSSUFMIENPLiwgTFRELgorNjg1QjM2ICAgICAoYmFzZSAxNikJCVBPV0VSVEVDSCBJTkRVU1RSSUFMIENPLiwgTFRELgorCQkJCTEwRiwgTm8uIDQwNywgQ2h1bmcgU2hhbiBSZC4sIFNlYyAyLAorCQkJCUNodW5nIEhvIFRhaXBlaSBDb3VudHkgMjM1NTgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzY4LTVELTQzICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorNjg1RDQzICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworNjgtNUUtNkIgICAoaGV4KQkJUG93ZXJSYXkgQ28uLCBMdGQuCis2ODVFNkIgICAgIChiYXNlIDE2KQkJUG93ZXJSYXkgQ28uLCBMdGQuCisJCQkJN0YtMSwgTm8gMTkwLCBTZWMgMiwgQ2h1bmcgSHNpbmcgUm9hZCwgU2luZGlhbiBEaXN0cmljdAorCQkJCU5ldyBUYWlwZWkgQ2l0eSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis2OC02My01OSAgIChoZXgpCQlBZHZhbmNlZCBEaWdpdGFsIEJyb2FkY2FzdCBTQQorNjg2MzU5ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIERpZ2l0YWwgQnJvYWRjYXN0IFNBCisJCQkJQXZlbnVlIGRlIFRvdXJuYXkgNworCQkJCVByZWdueS1DaGFtYmVzeSAgMTI5MgorCQkJCVNXSVRaRVJMQU5ECisKKzY4LTZFLTIzICAgKGhleCkJCVdpMyBJbmMuCis2ODZFMjMgICAgIChiYXNlIDE2KQkJV2kzIEluYy4KKwkJCQk3NjIwIE9tbml0ZWNoIFBsYWNlCisJCQkJU3VpdGUgIzQKKwkJCQlWaWN0b3IgTlkgMTQ1NjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LTcyLTUxICAgKGhleCkJCVViaXF1aXRpIE5ldHdvcmtzCis2ODcyNTEgICAgIChiYXNlIDE2KQkJVWJpcXVpdGkgTmV0d29ya3MKKwkJCQk5MSBFLiBUYXNtYW4gRHIuCisJCQkJU2FuIEpvc2UgQ2FsaWZvcm5pYSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNjgtNzgtNEMgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCis2ODc4NEMgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJQ0FSUkVURVJBIEJBU0UgQUVSRUEgIyA1ODUwCisJCQkJWmFwb3BhbiBKYWxpc2NvIDQ0MTMwCisJCQkJTUVYSUNPCisKKzY4LTc5LTI0ICAgKGhleCkJCUVMUy1HbWJIICYgQ28uIEtHCis2ODc5MjQgICAgIChiYXNlIDE2KQkJRUxTLUdtYkggJiBDby4gS0cKKwkJCQlEYW1tc3RyYXNzZSAyMQorCQkJCVdlcnRoZXIgTlJXIDMzODI0CisJCQkJR0VSTUFOWQorCis2OC03OS1FRCAgIChoZXgpCQlTSEFSUCBDb3Jwb3JhdGlvbgorNjg3OUVEICAgICAoYmFzZSAxNikJCVNIQVJQIENvcnBvcmF0aW9uCisJCQkJMjItMjIsTmFnYWlrZS1DaG8KKwkJCQlBYmVuby1LdQorCQkJCU9zYWthLUNpdHkgT3Nha2EtUHJlZmVjdHVyZSA1NDUtODUyMgorCQkJCUpBUEFOCisKKzY4LTdGLTc0ICAgKGhleCkJCUNpc2NvLUxpbmtzeXMsIExMQworNjg3Rjc0ICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMsIExMQworCQkJCTEyMSBUaGVvcnkgRHJpdmUKKwkJCQlJcnZpbmUgQ2FsaWZvcm5pYSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworNjgtODQtNzAgICAoaGV4KQkJZVNTeXMgQ28uLEx0ZAorNjg4NDcwICAgICAoYmFzZSAxNikJCWVTU3lzIENvLixMdGQKKwkJCQlEYWVydW5nIFBvc3QgVG93ZXIgNSAxNUYsIDYwLTMKKwkJCQlHYXNhbi1kb25nCisJCQkJU2VvdWwgR2V1bWNoZW9uLWd1IDE1My03MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNjgtODUtNDAgICAoaGV4KQkJSUdJIE1vYmlsZSwgSW5jLgorNjg4NTQwICAgICAoYmFzZSAxNikJCUlHSSBNb2JpbGUsIEluYy4KKwkJCQk0RiBLeW9uZ25hbSBCbGRnLiwKKwkJCQk4MzAtNDggWW9rc2FtLWRvbmcsIEthbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2OC04Ny02QiAgIChoZXgpCQlJTlEgTW9iaWxlIExpbWl0ZWQKKzY4ODc2QiAgICAgKGJhc2UgMTYpCQlJTlEgTW9iaWxlIExpbWl0ZWQKKwkJCQk2IEhlc3RlciBSb2FkCisJCQkJQmF0dGVyc2VhIExvbmRvbiBTVzExIDRBTgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzY4LTkyLTM0ICAgKGhleCkJCVJ1Y2t1cyBXaXJlbGVzcworNjg5MjM0ICAgICAoYmFzZSAxNikJCVJ1Y2t1cyBXaXJlbGVzcworCQkJCTg4MCBXZXN0IE1hdWRlIEF2ZS4KKwkJCQlTdWl0ZSAxMDEKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LTk3LTRCICAgKGhleCkJCVNoZW56aGVuIENvc3RhciBFbGVjdHJvbmljcyBDby4gTHRkLgorNjg5NzRCICAgICAoYmFzZSAxNikJCVNoZW56aGVuIENvc3RhciBFbGVjdHJvbmljcyBDby4gTHRkLgorCQkJCU5vLjk0IEZ1eXVhbiAxc3QgUm9hZCxZdXl1YW4gSW5kdXN0cmlhbCBQYXJrLAorCQkJCUhlcGluZyBWaWxsYWdlLEZ1eW9uZyBUb3duLCBCYW9BbiBEaXN0cmljdAorCQkJCVNoZW56aGVuICBHdWFuZ2RvbmcgNTE4MTAzCisJCQkJQ0hJTkEKKworNjgtOUMtNUUgICAoaGV4KQkJQWNTaVAgVGVjaG5vbG9neSBDb3JwLgorNjg5QzVFICAgICAoYmFzZSAxNikJCUFjU2lQIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkzRi4sIE5vLjIyLCBEYWxpbiBSZC4KKwkJCQlUYW95dWFuIFRhb3l1YW4gQ291bnR5IDMzMDY3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis2OC1BMS1CNyAgIChoZXgpCQlIb25naGFvIE1pbmdjaHVhbiBUZWNobm9sb2d5IChCZWlqaW5nKSBDTy4sTHRkLgorNjhBMUI3ICAgICAoYmFzZSAxNikJCUhvbmdoYW8gTWluZ2NodWFuIFRlY2hub2xvZ3kgKEJlaWppbmcpIENPLixMdGQuCisJCQkJRmxvb3IgOCxUb3dlciBBLCBXYW5saXUgWWljaGVuZyBCdWlsZGluZworCQkJCU5vLjExLCBDaGFuZ2NodW4gUWlhbyBSb2FkLCBIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg5CisJCQkJQ0hJTkEKKworNjgtQTMtQzQgICAoaGV4KQkJTGl0ZW9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzY4QTNDNCAgICAgKGJhc2UgMTYpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLDkwLENoaWVuIDEgUm9hZCxDaHVuZ0hvLAorCQkJCVRhaVBlaSAgMjM1ODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzY4LUE4LTZEICAgKGhleCkJCUFwcGxlLCBJbmMuCis2OEE4NkQgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQljdXBlcnRpbm8gIGNBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis2OC1BQS1EMiAgIChoZXgpCQlEQVRFQ1MgTFRELiwKKzY4QUFEMiAgICAgKGJhc2UgMTYpCQlEQVRFQ1MgTFRELiwKKwkJCQlCVUwuIFRTQVJJR1JBRFNLTyBTSE9TU0UgMTE1QQorCQkJCVNPRklBICAxNzg0CisJCQkJQlVMR0FSSUEKKworNjgtQjQtM0EgICAoaGV4KQkJV2F0ZXJGdXJuYWNlIEludGVybmF0aW9uYWwsIEluYy4KKzY4QjQzQSAgICAgKGJhc2UgMTYpCQlXYXRlckZ1cm5hY2UgSW50ZXJuYXRpb25hbCwgSW5jLgorCQkJCTkwMDAgQ29uc2VydmF0aW9uIFdheQorCQkJCUZvcnQgV2F5bmUgSU4gNDY4MDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzY4LUI1LTk5ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55Cis2OEI1OTkgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworNjgtQjYtRkMgICAoaGV4KQkJSGl0cm9uIFRlY2hub2xvZ2llcy4gSW5jCis2OEI2RkMgICAgIChiYXNlIDE2KQkJSGl0cm9uIFRlY2hub2xvZ2llcy4gSW5jCisJCQkJTm8uIDEtOCwgTGlzaW5nIDFzdCBSZC4gSHNpbmNodSBTY2llbmNlIFBhcmssIEhzaW5jaHUsIDMwMCwgVGFpd2FuLCBSLk8uQyAKKwkJCQlIc2luLWNodSAgMzAwCisJCQkJVEFJV0FOLCBQUk9WSU5DRSBPRiBDSElOQQorCis2OC1CQy0wQyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis2OEJDMEMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNjgtQkQtQUIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworNjhCREFCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNjgtQ0EtMDAgICAoaGV4KQkJT2N0b3B1cyBTeXN0ZW1zIExpbWl0ZWQKKzY4Q0EwMCAgICAgKGJhc2UgMTYpCQlPY3RvcHVzIFN5c3RlbXMgTGltaXRlZAorCQkJCTM2L0YsIDE0OCBFbGVjdHJpYyBSb2FkCisJCQkJTm9ydGggUG9pbnQKKwkJCQlIT05HIEtPTkcKKworNjgtQ0MtOUMgICAoaGV4KQkJTWluZSBTaXRlIFRlY2hub2xvZ2llcworNjhDQzlDICAgICAoYmFzZSAxNikJCU1pbmUgU2l0ZSBUZWNobm9sb2dpZXMKKwkJCQkyNS0yNyBXaGl0aW5nIFN0cmVldAorCQkJCUFydGFybW9uIE5TVyAyMDY0CisJCQkJQVVTVFJBTElBCisKKzY4LUNELTBGICAgKGhleCkJCVUgVGVrIENvbXBhbnkgTGltaXRlZAorNjhDRDBGICAgICAoYmFzZSAxNikJCVUgVGVrIENvbXBhbnkgTGltaXRlZAorCQkJCUZMNSwgQkxERzEyLCAzUkQgRElTVFJJQ1QsIFRBTkdUT1UgSU5EVVNUUklBTCBQQVJLCisJCQkJU0hJWUFOLCBCQU9BTgorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyA1MTgwMTgKKwkJCQlDSElOQQorCis2OC1DRS00RSAgIChoZXgpCQlMLTMgQ29tbXVuaWNhdGlvbnMgSW5mcmFyZWQgUHJvZHVjdHMKKzY4Q0U0RSAgICAgKGJhc2UgMTYpCQlMLTMgQ29tbXVuaWNhdGlvbnMgSW5mcmFyZWQgUHJvZHVjdHMKKwkJCQkzNDE0IEhlcnJtYW5uIERyaXZlCisJCQkJR2FybGFuZCBUWCA3NTA0MworCQkJCVVOSVRFRCBTVEFURVMKKworNjgtRDEtRkQgICAoaGV4KQkJU2hlbnpoZW4gVHJpbWF4IFRlY2hub2xvZ3kgQ28uLEx0ZAorNjhEMUZEICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFRyaW1heCBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlSb29tIDEwMTYsIDEwRiwgTWF4IFNtYXJ0IENvbW1lcmNpYWwgQ2VudGVyLAorCQkJCU5vLjIxIEJhbyBYaW5nIFJvYWQsIEJhbydhbiBEaXN0cmljdCwgU2hlbnpoZW4sIFBSQworCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMzMKKwkJCQlDSElOQQorCis2OC1EOS0yNSAgIChoZXgpCQlQcm9TeXMgRGV2ZWxvcG1lbnQgU2VydmljZXMKKzY4RDkyNSAgICAgKGJhc2UgMTYpCQlQcm9TeXMgRGV2ZWxvcG1lbnQgU2VydmljZXMKKwkJCQlNaWxsIEhvdXNlCisJCQkJNDQtNDYgTWlsbCBHcmVlbiBSb2FkCisJCQkJTWl0Y2hhbSBTdXJyZXkgQ1I0IDRIWQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzY4LURCLTk2ICAgKGhleCkJCU9QV0lMTCBUZWNobm9sb2dpZXMgQ08gLixMVEQKKzY4REI5NiAgICAgKGJhc2UgMTYpCQlPUFdJTEwgVGVjaG5vbG9naWVzIENPIC4sTFRECisJCQkJUm9vbSA0MTUsRGlnaXRhbCBNZWRpYSBCdWlsZGluZyxOTy43IFNoYW5nZGkgSW5mb3JtYXRpb24gUm9hZCxIYWlEaWFuIERpc3RyaWN0LAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKKzY4LURDLUU4ICAgKGhleCkJCVBhY2tldFN0b3JtIENvbW11bmljYXRpb25zCis2OERDRTggICAgIChiYXNlIDE2KQkJUGFja2V0U3Rvcm0gQ29tbXVuaWNhdGlvbnMKKwkJCQkyMCBNZXJpZGlhbiBSZAorCQkJCUVhdG9udG93biBOSiAwNzcyNAorCQkJCVVOSVRFRCBTVEFURVMKKworNjgtRTQtMUYgICAoaGV4KQkJVW5nbGF1YmUgSWRlbnRlY2ggR21iSAorNjhFNDFGICAgICAoYmFzZSAxNikJCVVuZ2xhdWJlIElkZW50ZWNoIEdtYkgKKwkJCQlBbiBkZXIgTW9vc2FjaCAzYQorCQkJCU1hc3NlbmhhdXNlbiBCYXllcm4gODUzNzYKKwkJCQlHRVJNQU5ZCisKKzY4LUVCLUFFICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNjhFQkFFICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2OC1FQi1DNSAgIChoZXgpCQlBbmdzdHJlbSBUZWxlY29tCis2OEVCQzUgICAgIChiYXNlIDE2KQkJQW5nc3RyZW0gVGVsZWNvbQorCQkJCVl1emhuYXlhIHByb216b25hLCBwYXNzYWdlIDQ4MDYsIDQsIGJ1aWxkIDMgCisJCQkJWmVsZW5vZ3JhZCBNb3Njb3cgMTI0NDYwCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKKzY4LUVELTQzICAgKGhleCkJCVJlc2VhcmNoIEluIE1vdGlvbgorNjhFRDQzICAgICAoYmFzZSAxNikJCVJlc2VhcmNoIEluIE1vdGlvbgorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCis2OC1FRi1CRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis2OEVGQkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis2OC1GMS0yNSAgIChoZXgpCQlEYXRhIENvbnRyb2xzIEluYy4KKzY4RjEyNSAgICAgKGJhc2UgMTYpCQlEYXRhIENvbnRyb2xzIEluYy4KKwkJCQkzLTE3LTQgVWVubworCQkJCVRhaXRvLWt1IFRva3lvIDExMDAwMDUKKwkJCQlKQVBBTgorCis2OC1GOC05NSAgIChoZXgpCQlSZWRmbG93IExpbWl0ZWQKKzY4Rjg5NSAgICAgKGJhc2UgMTYpCQlSZWRmbG93IExpbWl0ZWQKKwkJCQkxLzI3IENvdW5paGFuIFJkIAorCQkJCVNldmVudGVlbiBNaWxlIFJvY2tzCisJCQkJQnJpc2JhbmUgUXVlZW5zbGFuZCA0MDczCisJCQkJQVVTVFJBTElBCisKKzZDLTA0LTYwICAgKGhleCkJCVJCSCBBY2Nlc3MgVGVjaG5vbG9naWVzIEluYy4KKzZDMDQ2MCAgICAgKGJhc2UgMTYpCQlSQkggQWNjZXNzIFRlY2hub2xvZ2llcyBJbmMuCisJCQkJMiBBdXRvbWF0aWMgUm9hZAorCQkJCVVuaXQgMTA4CisJCQkJQnJhbXB0b24gT250YXJpbyBMNlMgNks4CisJCQkJQ0FOQURBCisKKzZDLTBFLTBEICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCis2QzBFMEQgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworNkMtMEYtNkEgICAoaGV4KQkJSkRDIFRlY2ggQ28uLCBMdGQuCis2QzBGNkEgICAgIChiYXNlIDE2KQkJSkRDIFRlY2ggQ28uLCBMdGQuCisJCQkJMzcwLTEyIERhZW15dW5nLXJpIERhZWdvdC1teXVuCisJCQkJS2ltcG8tc2kgS3l1bmdnaS1kbyA0MTAtODUzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzZDLTE4LTExICAgKGhleCkJCURlY2F0dXIgRWxlY3Ryb25pY3MKKzZDMTgxMSAgICAgKGJhc2UgMTYpCQlEZWNhdHVyIEVsZWN0cm9uaWNzCisJCQkJNzE1IEJyaWdodCBTdHJlZXQKKwkJCQlEZWNhdHVyIElMIDYyNTIyCisJCQkJVU5JVEVEIFNUQVRFUworCis2Qy0yMi1BQiAgIChoZXgpCQlBaW5zd29ydGggR2FtZSBUZWNobm9sb2d5Cis2QzIyQUIgICAgIChiYXNlIDE2KQkJQWluc3dvcnRoIEdhbWUgVGVjaG5vbG9neQorCQkJCTEwIEhvbGtlciBTdHJlZXQgCisJCQkJTmV3aW5ndG9uIE5ldyBTb3V0aCBXYWxlcyAyMTI3CisJCQkJQVVTVFJBTElBCisKKzZDLTIzLUI5ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCis2QzIzQjkgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjEgODgKKwkJCQlTV0VERU4KKworNkMtMkUtMzMgICAoaGV4KQkJQWNjZWxpbmsgVGVjaG5vbG9naWVzIENvLixMdGQuCis2QzJFMzMgICAgIChiYXNlIDE2KQkJQWNjZWxpbmsgVGVjaG5vbG9naWVzIENvLixMdGQuCisJCQkJODggWW91a2V5dWFuIFJvYWQsCisJCQkJV3VoYW4gSHViZWkgNDMwMDc0CisJCQkJQ0hJTkEKKworNkMtMkUtODUgICAoaGV4KQkJU0FHRU1DT00KKzZDMkU4NSAgICAgKGJhc2UgMTYpCQlTQUdFTUNPTQorCQkJCTI1MCByb3V0ZSBkZSBsJ0VtcGVyZXVyCisJCQkJUlVFSUwgTUFMTUFJU09OICA5Mjg0OAorCQkJCUZSQU5DRQorCis2Qy0zMi1ERSAgIChoZXgpCQlJbmRpZW9uIFRlY2hub2xvZ2llcyBQdnQuIEx0ZC4KKzZDMzJERSAgICAgKGJhc2UgMTYpCQlJbmRpZW9uIFRlY2hub2xvZ2llcyBQdnQuIEx0ZC4KKwkJCQk2MDEsIEFscGhhIDIsIEdpZ2FzcGFjZSBJVCBQYXJrCisJCQkJVmltYW4gTmFnYXIKKwkJCQlQdW5lICBNYWhhcmFzdHJhIDQxMTAxNAorCQkJCUlORElBCisKKzZDLTMzLUE5ICAgKGhleCkJCU1hZ2ljamFjayBMUAorNkMzM0E5ICAgICAoYmFzZSAxNikJCU1hZ2ljamFjayBMUAorCQkJCTU3MDAgR2VvcmdpYSBBdmVudWUKKwkJCQlXZXN0IFBhbG0gQmVhY2ggRkwgMzM0MDUKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLTM5LTFEICAgKGhleCkJCUJlaWppbmcgWmhvbmdIdWFIdW4gTmV0d29yayBJbmZvcm1hdGlvbiBjZW50ZXIKKzZDMzkxRCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFpob25nSHVhSHVuIE5ldHdvcmsgSW5mb3JtYXRpb24gY2VudGVyCisJCQkJNkYgQmVpQW8gTWFuc2lvbixIdWlYaW4gRWFzdCBTdHJlZXQgQTIsCisJCQkJQ2hhb3lhbmcgRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDI5CisJCQkJQ0hJTkEKKworNkMtM0EtODQgICAoaGV4KQkJU2hlbnpoZW4gQWVyby1TdGFydGVjaC4gQ28uTHRkCis2QzNBODQgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQWVyby1TdGFydGVjaC4gQ28uTHRkCisJCQkJRjMtNCwgQnVpbGRpbmczLFpob25neXVudGFpIEluZHVzdHJpYWwgUGFyay5TaGl5YW4gVG93bi4sCisJCQkJQmFvJ2FuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEwOAorCQkJCUNISU5BCisKKzZDLTNFLTlDICAgKGhleCkJCUtFIEtuZXN0ZWwgRWxla3Ryb25payBHbWJICis2QzNFOUMgICAgIChiYXNlIDE2KQkJS0UgS25lc3RlbCBFbGVrdHJvbmlrIEdtYkgKKwkJCQlPc3RlcndhbGRlciBTdHIuIDEyCisJCQkJSG9wZmVyYmFjaCBCYXZhcmlhIDg3NDk2CisJCQkJR0VSTUFOWQorCis2Qy01MC00RCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis2QzUwNEQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis2Qy01Qy1ERSAgIChoZXgpCQlTdW5SZXBvcnRzLCBJbmMuCis2QzVDREUgICAgIChiYXNlIDE2KQkJU3VuUmVwb3J0cywgSW5jLgorCQkJCTE0MDYgQ2VkYXJ3b29kIERyLgorCQkJCVNhbiBNYXRlbyBDQSA5NDQwMworCQkJCVVOSVRFRCBTVEFURVMKKworNkMtNUQtNjMgICAoaGV4KQkJU2hlblpoZW4gUmFwb28gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzZDNUQ2MyAgICAgKGJhc2UgMTYpCQlTaGVuWmhlbiBSYXBvbyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCUJsb2NrIEExLEIxLEIyLDFzdCBzZWNvbmQgc3RhZ2UsIDFzdCBJbmR1c3RyaWFsIFBhcmssIDNyZCBJbmR1c3RyaWFsIFpvbmUgLEZlbmdodWFuZyBGdXlvbmcsIEJhb0FuIAorCQkJCVNoZW5aaGVuICA1MTgxMDMKKwkJCQlDSElOQQorCis2Qy01RS03QSAgIChoZXgpCQlVYmlxdWl0b3VzIEludGVybmV0IFRlbGVjb20gQ28uLCBMdGQKKzZDNUU3QSAgICAgKGJhc2UgMTYpCQlVYmlxdWl0b3VzIEludGVybmV0IFRlbGVjb20gQ28uLCBMdGQKKwkJCQkjNTEyLCA1dGggRmxvb3IsIEtvbG9uIERpZ2l0YWwgVmFsbGV5LEd1cm8gMyhzYW0pLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTc3NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2Qy02Mi02RCAgIChoZXgpCQlNaWNyby1TdGFyIElOVCdMIENPLiwgTFRECis2QzYyNkQgICAgIChiYXNlIDE2KQkJTWljcm8tU3RhciBJTlQnTCBDTy4sIExURAorCQkJCU5vLjY5LCBMaWRlIFN0LiwgSmhvbmdoZSBDaXR5CisJCQkJVGFpcGVpIENvbnV0eSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis2Qy02Ri0xOCAgIChoZXgpCQlTdGVyZW90YXhpcywgSW5jLgorNkM2RjE4ICAgICAoYmFzZSAxNikJCVN0ZXJlb3RheGlzLCBJbmMuCisJCQkJNDMyMCBGb3Jlc3QgUGFyayBBdmUKKwkJCQlTdWl0ZSAxMDAKKwkJCQlTdC4gTG91aXMgTU8gNjMxMDgKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLTcwLTM5ICAgKGhleCkJCU5vdmFyIEdtYkggCis2QzcwMzkgICAgIChiYXNlIDE2KQkJTm92YXIgR21iSCAKKwkJCQlKb2hhbm5lcy1NYXV0aGUtU3RyLiAxNAorCQkJCUFsYnN0YWR0IEJhZGVuLVd1cnR0ZW1iZXJnICA3MjQ1OAorCQkJCUdFUk1BTlkKKworNkMtODEtRkUgICAoaGV4KQkJTWl0c3ViYSBDb3Jwb3JhdGlvbgorNkM4MUZFICAgICAoYmFzZSAxNikJCU1pdHN1YmEgQ29ycG9yYXRpb24KKwkJCQkxLTI2ODEKKwkJCQlIaXJvc2F3YS1jaG8KKwkJCQlLaXJ5dSBHdW5tYSAzNzYtODU1NQorCQkJCUpBUEFOCisKKzZDLTgzLTM2ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorNkM4MzM2ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2Qy04Qy1EQiAgIChoZXgpCQlPdHVzIFRlY2hub2xvZ2llcyBMdGQKKzZDOENEQiAgICAgKGJhc2UgMTYpCQlPdHVzIFRlY2hub2xvZ2llcyBMdGQKKwkJCQkyNiBCcmFpZCBSb2FkCisJCQkJRWRpbmJ1cmdoIE1vcm5pbmdzaWRlIEVIMTAgNkFECisJCQkJVU5JVEVEIEtJTkdET00KKworNkMtOEQtNjUgICAoaGV4KQkJV2lyZWxlc3MgR2x1ZSBOZXR3b3JrcywgSW5jLgorNkM4RDY1ICAgICAoYmFzZSAxNikJCVdpcmVsZXNzIEdsdWUgTmV0d29ya3MsIEluYy4KKwkJCQkxNjAxIE4uIE1haW4gU3RyZWV0LCBTdWl0ZSAyMDIKKwkJCQlXYWxudXQgQ3JlZWsgQ0EgOTQ1OTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLTkyLUJGICAgKGhleCkJCUluc3B1ciBFbGVjdHJvbmljIEluZm9ybWF0aW9uIEluZHVzdHJ5IENvLixMdGQuCis2QzkyQkYgICAgIChiYXNlIDE2KQkJSW5zcHVyIEVsZWN0cm9uaWMgSW5mb3JtYXRpb24gSW5kdXN0cnkgQ28uLEx0ZC4KKwkJCQlObyAyMjQgU2hhbmRhIFJvYWQKKwkJCQlKaW5hbiBTaGFuZG9uZyAyNTAwMTMKKwkJCQlDSElOQQorCis2Qy05Qi0wMiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorNkM5QjAyICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgT3UgOTA1OTAKKwkJCQlGSU5MQU5ECisKKzZDLTlDLUU5ICAgKGhleCkJCU5pbWJsZSBTdG9yYWdlCis2QzlDRTkgICAgIChiYXNlIDE2KQkJTmltYmxlIFN0b3JhZ2UKKwkJCQkyNjQ1IFphbmtlciBSb2FkCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLTlDLUVEICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzZDOUNFRCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis2Qy1BNi04MiAgIChoZXgpCQlFREFNIGluZm9ybWF0aW9uICYgY29tbXVuaWNhdGlvbnMKKzZDQTY4MiAgICAgKGJhc2UgMTYpCQlFREFNIGluZm9ybWF0aW9uICYgY29tbXVuaWNhdGlvbnMKKwkJCQk2MDEsIEhhbmxpbSBWZXR1cmUgdG93biwgNjg5LTYKKwkJCQlHZXVtamVvbmctZG9uZworCQkJCUd1bnBvIEd5ZW5nZ2ktRG8gNDM1LTg2MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2Qy1BNy04MCAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorNkNBNzgwICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJWXJ0dGlwZWxsb250aWUgNgorCQkJCU91bHUgIDkwMjMwCisJCQkJRklOTEFORAorCis2Qy1BOS0wNiAgIChoZXgpCQlUZWxlZmllbGQgTHRkCis2Q0E5MDYgICAgIChiYXNlIDE2KQkJVGVsZWZpZWxkIEx0ZAorCQkJCUZsYXQgRCwyL0YuLCBWYWxpYW50IEluZHVzdHJpYWwgQ2VudHJlLDItMTIgQXUgUHVpIFdhbiBTdHJlZXQsIAorCQkJCUZvIFRhbiwgTi5ULgorCQkJCUhvbmdrb25nICA4NTIKKwkJCQlDSElOQQorCis2Qy1BOS02RiAgIChoZXgpCQlUcmFuc1BhY2tldCBBUworNkNBOTZGICAgICAoYmFzZSAxNikJCVRyYW5zUGFja2V0IEFTCisJCQkJRHJhbW1lbnN2ZWllbiAxMzQKKwkJCQlCdWlsZGluZyA0CisJCQkJT3NsbyAgMDI3NworCQkJCU5PUldBWQorCis2Qy1BQi00RCAgIChoZXgpCQlEaWdpdGFsIFBheW1lbnQgVGVjaG5vbG9naWVzCis2Q0FCNEQgICAgIChiYXNlIDE2KQkJRGlnaXRhbCBQYXltZW50IFRlY2hub2xvZ2llcworCQkJCTQxMDUgR3JhbmR2aWV3IEh3eQorCQkJCUJ1cm5hYnkgQkMgVjVDIDZCNAorCQkJCUNBTkFEQQorCis2Qy1BQy02MCAgIChoZXgpCQlWZW5ldGV4IENvcnAKKzZDQUM2MCAgICAgKGJhc2UgMTYpCQlWZW5ldGV4IENvcnAKKwkJCQk4LTMtOSxTaGluLW1hY2hpCisJCQkJT21lLXNoaSwgVG9reW8gMTk4LTAwMjQKKwkJCQlKQVBBTgorCis2Qy1BRC0zRiAgIChoZXgpCQlIdWJiZWxsIEJ1aWxkaW5nIEF1dG9tYXRpb24sIEluYy4KKzZDQUQzRiAgICAgKGJhc2UgMTYpCQlIdWJiZWxsIEJ1aWxkaW5nIEF1dG9tYXRpb24sIEluYy4KKwkJCQk5NjAxIERlc3NhdSBSZAorCQkJCUJsZGcgMSBTdWl0ZSAxMDAKKwkJCQlBdXN0aW4gVGV4YXMgNzg3NTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLUFFLThCICAgKGhleCkJCUlCTSBDb3Jwb3JhdGlvbgorNkNBRThCICAgICAoYmFzZSAxNikJCUlCTSBDb3Jwb3JhdGlvbgorCQkJCTQ0MDAgTm9ydGggRmlyc3QgU3RyZWV0CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzZDLUJFLUU5ICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50LUlQRAorNkNCRUU5ICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50LUlQRAorCQkJCTc3NyBNaWRkbGVmaWVsZCBSZC4KKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCis2Qy1DMS1EMiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorNkNDMUQyICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworNkMtQzItNkIgICAoaGV4KQkJQXBwbGUsIEluYy4KKzZDQzI2QiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgaW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNkMtRDYtOEEgICAoaGV4KQkJTEcgRWxlY3Ryb25pY3MgSW5jCis2Q0Q2OEEgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MgSW5jCisJCQkJNjAtMzksR2FzYW4tZG9uZyxHdW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtMDIzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzZDLURDLTZBICAgKGhleCkJCVByb21ldGhlYW4gTGltaXRlZAorNkNEQzZBICAgICAoYmFzZSAxNikJCVByb21ldGhlYW4gTGltaXRlZAorCQkJCUFjdGl2bGFiCisJCQkJUGhpbGlwcyBSb2FkCisJCQkJQmxhY2tidXJuIExhbmNhc2hpcmUgQkIxIDVTTgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzZDLUUwLUIwICAgKGhleCkJCVNPVU5ENAorNkNFMEIwICAgICAoYmFzZSAxNikJCVNPVU5ENAorCQkJCTExIHF1YWkgSm9zZXBoIEdpbGxldAorCQkJCUxZT04gIDY5MDA0CisJCQkJRlJBTkNFCisKKzZDLUU5LTA3ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCis2Q0U5MDcgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlZcnR0aXBlbGxvbnRpZSA2CisJCQkJT3VsdSBPdSA5MDIzMAorCQkJCUZJTkxBTkQKKworNkMtRTktODMgICAoaGV4KQkJR2FzdHJvbiBDby4sIExURC4KKzZDRTk4MyAgICAgKGJhc2UgMTYpCQlHYXN0cm9uIENvLiwgTFRELgorCQkJCSM3NS0xMCwgUGFsZ29rMi1kb25nLCBTYW5nbm9rLWd1LCAKKwkJCQlBbnNhbi1jaXR5IEt5dW5nZ2ktZG8gNDI2LTE5MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis2Qy1GMC00OSAgIChoZXgpCQlHSUdBLUJZVEUgVEVDSE5PTE9HWSBDTy4sTFRELgorNkNGMDQ5ICAgICAoYmFzZSAxNikJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCisJCQkJTm8uMjE1LE5hbi1QaW5nIFJvYWQsCisJCQkJUGluLUplbiBUYW95dWFuIDMyNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNkMtRjMtN0YgICAoaGV4KQkJQXJ1YmEgTmV0d29ya3MKKzZDRjM3RiAgICAgKGJhc2UgMTYpCQlBcnViYSBOZXR3b3JrcworCQkJCTEzNDQgQ3Jvc3NtYW4gQXZlLgorCQkJCVN1bm55dmFsZSBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworNkMtRkQtQjkgICAoaGV4KQkJUHJvd2FyZSBUZWNobm9sb2dpZXMgQ28gTHRkLgorNkNGREI5ICAgICAoYmFzZSAxNikJCVByb3dhcmUgVGVjaG5vbG9naWVzIENvIEx0ZC4KKwkJCQkybmQgRjEgRWFzdCBXaW5nLFNvdXRoIFNlY3Rpb24sRmFjdG9yeSBCdWlsZGluZyAyNCxTY2llbmNlJlRlY2hub2xvZ3kgUGFyaworCQkJCVNoZW5uYW4gUmQsTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCis2Qy1GRi1CRSAgIChoZXgpCQlNUEIgQ29tbXVuaWNhdGlvbnMgSW5jLgorNkNGRkJFICAgICAoYmFzZSAxNikJCU1QQiBDb21tdW5pY2F0aW9ucyBJbmMuCisJCQkJMTQ3IEh5bXVzIEJsdmQKKwkJCQlQb2ludGUtQ2xhaXJlIFF1ZWJlYyBIOVIgMUU5CisJCQkJQ0FOQURBCisKKzcwLTAyLTU4ICAgKGhleCkJCTAxREItTUVUUkFWSUIKKzcwMDI1OCAgICAgKGJhc2UgMTYpCQkwMURCLU1FVFJBVklCCisJCQkJMjAwIENIRU1JTiBERVMgT1JNRUFVWAorCQkJCUxJTU9ORVNUIENFREVYIFJIT05FIDY5NTc4CisJCQkJRlJBTkNFCisKKzcwLTA1LTE0ICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzCis3MDA1MTQgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MKKwkJCQk2MC0zOSAsIEthc2FuLWRvbmcsIEd1bWNoZW9uLWd1CisJCQkJU2VvdWwgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNzAtMEItQzAgICAoaGV4KQkJRGV3YXYgVGVjaG5vbG9neSBDb21wYW55Cis3MDBCQzAgICAgIChiYXNlIDE2KQkJRGV3YXYgVGVjaG5vbG9neSBDb21wYW55CisJCQkJUm9vbSAxNDA4LCBSZWFsIEVzdGF0ZSBNYW5zaW9uCisJCQkJMjAxIE5hbnF1YW4gUm9hZCBOb3J0aAorCQkJCVNoYW5naGFpIDIwMDEyMAorCQkJCUNISU5BCisKKzcwLTE0LTA0ICAgKGhleCkJCUxpbWl0ZWQgTGlhYmlsaXR5IENvbXBhbnkgIlJlc2VhcmNoIENlbnRlciAiQnJlc2xlciIKKzcwMTQwNCAgICAgKGJhc2UgMTYpCQlMaW1pdGVkIExpYWJpbGl0eSBDb21wYW55ICJSZXNlYXJjaCBDZW50ZXIgIkJyZXNsZXIiCisJCQkJSS5ZYWtvdmxldmEgU3QuLCAxCisJCQkJQ2hlYm9rc2FyeSBDaHV2YXNoIFJlcHVibGljICA0MjgwMDMKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworNzAtMUEtMDQgICAoaGV4KQkJTGl0ZW9uIFRlY2ggQ29ycC4KKzcwMUEwNCAgICAgKGJhc2UgMTYpCQlMaXRlb24gVGVjaCBDb3JwLgorCQkJCTRGIDkwIENoaWVuIDEgUmQuQ2h1bmdIbworCQkJCVRhaXBlaSAgMjM1ODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzcwLTFBLUVEICAgKGhleCkJCUFEVkFTIENPLiwgTFRELgorNzAxQUVEICAgICAoYmFzZSAxNikJCUFEVkFTIENPLiwgTFRELgorCQkJCTMtOC04IFNoaW4teW9rb2hhbWEsIEtvaG9rdS1rdQorCQkJCU5pc3NvdSAxNkJsZGcuIDZGCisJCQkJWW9rb2hhbWEtc2hpIEthbmFnYXdhLWtlbiAyMjItMDAzMworCQkJCUpBUEFOCisKKzcwLTJCLTFEICAgKGhleCkJCUUtRG9tdXMgSW50ZXJuYXRpb25hbCBMaW1pdGVkCis3MDJCMUQgICAgIChiYXNlIDE2KQkJRS1Eb211cyBJbnRlcm5hdGlvbmFsIExpbWl0ZWQKKwkJCQkxc3QgRmxvb3IKKwkJCQk1IEJvdXJsZXQgQ2xvc2UKKwkJCQlMb25kb24gIFcxVyA3QkwKKwkJCQlVTklURUQgS0lOR0RPTQorCis3MC0yRi00QiAgIChoZXgpCQlQb2x5VmlzaW9uIEluYy4KKzcwMkY0QiAgICAgKGJhc2UgMTYpCQlQb2x5VmlzaW9uIEluYy4KKwkJCQkzOTcwIEpvaG5zIENyZWVrIEN0LgorCQkJCVN1aXRlIDMyNQorCQkJCVN1d2FuZWUgR2VvcmdpYSAzMDAyNAorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtMkYtOTcgICAoaGV4KQkJQWF2YSBNb2JpbGUgT3kKKzcwMkY5NyAgICAgKGJhc2UgMTYpCQlBYXZhIE1vYmlsZSBPeQorCQkJCU5haGthdGVodGFhbmthdHUgMgorCQkJCU91bHUgIDkwMTAwCisJCQkJRklOTEFORAorCis3MC0zMC0xOCAgIChoZXgpCQlBdmF5YSwgSW5jCis3MDMwMTggICAgIChiYXNlIDE2KQkJQXZheWEsIEluYworCQkJCTIxMSBNb3VudCBBaXJ5IFJvYWQKKwkJCQlCYXNraW5nIFJpZGdlIE5KIDA3OTIwCisJCQkJVU5JVEVEIFNUQVRFUworCis3MC0zMS04NyAgIChoZXgpCQlBQ1ggR21iSAorNzAzMTg3ICAgICAoYmFzZSAxNikJCUFDWCBHbWJICisJCQkJxHXfZXJlIFp3aWNrYXVlciBTdHIuIDgKKwkJCQlad2lja2F1ICAwODA2NAorCQkJCUdFUk1BTlkKKworNzAtMzItRDUgICAoaGV4KQkJQXRoZW5hIFdpcmVsZXNzIENvbW11bmljYXRpb25zIEluYworNzAzMkQ1ICAgICAoYmFzZSAxNikJCUF0aGVuYSBXaXJlbGVzcyBDb21tdW5pY2F0aW9ucyBJbmMKKwkJCQkxMjQyNSBXIEJlbGwgUmQKKwkJCQlTdWl0ZSAxMTAKKwkJCQlTdXJwcmlzZSBBWiA4NTM3OAorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtMzgtRUUgICAoaGV4KQkJQXZheWEgSW5jCis3MDM4RUUgICAgIChiYXNlIDE2KQkJQXZheWEgSW5jCisJCQkJMjExIE10LiBBaXJ5IFJvYWQKKwkJCQlCYXNraW5nIFJpZGdlIE5KIDA3OTIwLTIzMTEgCisJCQkJVU5JVEVEIFNUQVRFUworCis3MC0zQS1EOCAgIChoZXgpCQlTaGVuemhlbiBBZm91bmRyeSBFbGVjdHJvbmljIENvLiwgTHRkCis3MDNBRDggICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gQWZvdW5kcnkgRWxlY3Ryb25pYyBDby4sIEx0ZAorCQkJCTIwMSwgQSBCdWlsZGluZywgQm9sZSBJbmR1c3RyaWFsIFpvbmUsIEJhbnRpYW4sIExvbmdnYW5nIERpc3RyaWN0CisJCQkJTm8jIDkwNiwgMiBCdWlsZGluZywgWGluY2hlbmcgUGxhemEsIEZ1aHVhbiBSRC0zLCBGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiAgR3Vhbmdkb25nIDUxODEyOQorCQkJCUNISU5BCisKKzcwLTNDLTM5ICAgKGhleCkJCVNFQVdJTkcgS2Z0Cis3MDNDMzkgICAgIChiYXNlIDE2KQkJU0VBV0lORyBLZnQKKwkJCQlCdWRhaSDDunQgMTM5LgorCQkJCVN6w6lrZXNmZWjDqXJ2w6FyIEZlasOpciA4MDAwCisJCQkJSFVOR0FSWQorCis3MC00MS1CNyAgIChoZXgpCQlFZHdhcmRzIExpZmVzY2llbmNlcyBMTEMKKzcwNDFCNyAgICAgKGJhc2UgMTYpCQlFZHdhcmRzIExpZmVzY2llbmNlcyBMTEMKKwkJCQlPbmUgRWR3YXJkcyBXYXkKKwkJCQlJcnZpbmUgQ0EgOTI2MTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLTQ2LTQyICAgKGhleCkJCUNIWU5HIEhPTkcgRUxFQ1RST05JQyBDTy4sIExURC4KKzcwNDY0MiAgICAgKGJhc2UgMTYpCQlDSFlORyBIT05HIEVMRUNUUk9OSUMgQ08uLCBMVEQuCisJCQkJTm8uODAsIExhbmUgMjU4LCBTZWMuIDMsIEhhbnNpIFcuIFJkLiwKKwkJCQlCZWl0dW4gRGlzdHJpY3QsCisJCQkJVGFpY2h1bmcgIDQwNjQ3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3MC00QS1BRSAgIChoZXgpCQlYc3RyZWFtIEZsb3cgKFB0eSkgTHRkCis3MDRBQUUgICAgIChiYXNlIDE2KQkJWHN0cmVhbSBGbG93IChQdHkpIEx0ZAorCQkJCVJvb20gMTIzLCBCdWlsZGluZyAxNiwgQ1NJUiBjYW1wdXMKKwkJCQlNZWlyaW5nIE5hdWRlIHJvYWQKKwkJCQlQcmV0b3JpYSBHYXV0ZW5nIDAxODQKKwkJCQlTT1VUSCBBRlJJQ0EKKworNzAtNTYtODEgICAoaGV4KQkJQXBwbGUgSW5jCis3MDU2ODEgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtNTgtMTIgICAoaGV4KQkJUGFuYXNvbmljIEFWQyBOZXR3b3JrcyBDb21wYW55Cis3MDU4MTIgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIEFWQyBOZXR3b3JrcyBDb21wYW55CisJCQkJMS0xNSBNYXRzdW8tY2hvCisJCQkJS2Fkb21hIE9zYWthIDU3MS04NTA0CisJCQkJSkFQQU4KKworNzAtNUEtQjYgICAoaGV4KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIExURC4gCis3MDVBQjYgICAgIChiYXNlIDE2KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIExURC4gCisJCQkJTk8uIDI1LCBUSEUgM1JEIFN0cmVldCBLVU5TSEFOIEVYUE9SVCBQUk9DRVNTSU5HIFpPTkUgCisJCQkJS1VOU0hBTiBTVVpIT1UgMjE1MzAwIAorCQkJCUNISU5BCisKKzcwLTVDLUFEICAgKGhleCkJCUtvbmFtaSBHYW1pbmcgSW5jCis3MDVDQUQgICAgIChiYXNlIDE2KQkJS29uYW1pIEdhbWluZyBJbmMKKwkJCQk1ODUgVHJhZGUgQ2VudGVyIERyaXZlCisJCQkJTGFzIFZlZ2FzIE5ldmFkYSA4OTExOQorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtNUUtQUEgICAoaGV4KQkJQWN0aW9uIFRhcmdldCwgSW5jLgorNzA1RUFBICAgICAoYmFzZSAxNikJCUFjdGlvbiBUYXJnZXQsIEluYy4KKwkJCQlQTyBCb3ggNjM2CisJCQkJUHJvdm8gVVQgODQ2MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLTY0LTE3ICAgKGhleCkJCU9SQklTIFRFQ05PTE9HSUEgRUxFQ1RSSUNBIFMuQS4KKzcwNjQxNyAgICAgKGJhc2UgMTYpCQlPUkJJUyBURUNOT0xPR0lBIEVMRUNUUklDQSBTLkEuCisJCQkJTGVyaWRhLCA2MQorCQkJCU1hZHJpZCBNYWRyaWQgRTI4MDIwCisJCQkJU1BBSU4KKworNzAtNjUtODIgICAoaGV4KQkJU3V6aG91IEhhbm1pbmcgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorNzA2NTgyICAgICAoYmFzZSAxNikJCVN1emhvdSBIYW5taW5nIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlTdWl0ZSA0MDcsIE5vLiAxNjYsIFJlbiBBaSBSb2FkCisJCQkJU3V6aG91IEluZHVzdHJpYWwgUGFyaworCQkJCVN1emhvdSBKaWFuZ3N1IDIxNTEyMworCQkJCUNISU5BCisKKzcwLTZGLTgxICAgKGhleCkJCVBSSVZBVEUKKzcwNkY4MSAgICAgKGJhc2UgMTYpCQkgCisJCQkJIAorNzAtNzAtNEMgICAoaGV4KQkJUHVycGxlIENvbW11bmljYXRpb25zLCBJbmMKKzcwNzA0QyAgICAgKGJhc2UgMTYpCQlQdXJwbGUgQ29tbXVuaWNhdGlvbnMsIEluYworCQkJCTU5NSBNZW5sbworCQkJCVJvY2tsaW4gQ0EgOTU3NjUKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLTcxLUJDICAgKGhleCkJCVBFR0FUUk9OIENPUlBPUkFUSU9OCis3MDcxQkMgICAgIChiYXNlIDE2KQkJUEVHQVRST04gQ09SUE9SQVRJT04KKwkJCQlOby4gNzYsIExpZ29uZyBTdC4sIEJlaXRvdSwgCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzcwLTcyLUNGICAgKGhleCkJCUVkZ2VDb3JlIE5ldHdvcmtzCis3MDcyQ0YgICAgIChiYXNlIDE2KQkJRWRnZUNvcmUgTmV0d29ya3MKKwkJCQkyMCBNYXNvbgorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtNzMtQ0IgICAoaGV4KQkJQXBwbGUsIEluYy4KKzcwNzNDQiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtNzYtRjAgICAoaGV4KQkJTGV2ZWxPbmUgQ29tbXVuaWNhdGlvbnMgKEluZGlhKSBQcml2YXRlIExpbWl0ZWQKKzcwNzZGMCAgICAgKGJhc2UgMTYpCQlMZXZlbE9uZSBDb21tdW5pY2F0aW9ucyAoSW5kaWEpIFByaXZhdGUgTGltaXRlZAorCQkJCTJGLCBMYW5lIDEsIDQ1IEJoYXJhdCBOYWdhcgorCQkJCU5ldyBGcmllbmRzIENvbG9ueQorCQkJCU5ldyBEZWxoaSBERUxISSAxMTAwMjUKKwkJCQlJTkRJQQorCis3MC03Qi1FOCAgIChoZXgpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKzcwN0JFOCAgICAgKGJhc2UgMTYpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKwkJCQlIdWFXZWkgSW5kdXN0cmlhbCBCYXNlLEJhblRpYW4sTG9uZ0dhbmcKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworNzAtN0UtNDMgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzcwN0U0MyAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLTdFLURFICAgKGhleCkJCU5BU1RFQyBMVEQuCis3MDdFREUgICAgIChiYXNlIDE2KQkJTkFTVEVDIExURC4KKwkJCQkxMTEtRCwgS3Jhc25vcmVjaGVuc2theWEgc3RyLgorCQkJCUtoYWJhcm92c2sgIDY4MDAwNgorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCis3MC04MS0wNSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis3MDgxMDUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtODItOEUgICAoaGV4KQkJT2xldW1UZWNoIENvcnBvcmF0aW9uCis3MDgyOEUgICAgIChiYXNlIDE2KQkJT2xldW1UZWNoIENvcnBvcmF0aW9uCisJCQkJMjMgSHViYmxlCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCis3MC04Qi03OCAgIChoZXgpCQljaXR5Z3JvdyB0ZWNobm9sb2d5IGNvLiwgbHRkCis3MDhCNzggICAgIChiYXNlIDE2KQkJY2l0eWdyb3cgdGVjaG5vbG9neSBjby4sIGx0ZAorCQkJCXJtMTQwNCwgYmxrIEEsICw1IC0gMjEgUGFrIFRpbiBQYXIgU3RyZWV0CisJCQkJSGktVGVjaCBJbmR1c3RyaWFsIENlbnRyZSwKKwkJCQlUc3VlbiBXYW4gIAorCQkJCUhPTkcgS09ORworCis3MC05Ny01NiAgIChoZXgpCQlIYXBweWVsZWN0cm9uaWNzIENvLixMdGQKKzcwOTc1NiAgICAgKGJhc2UgMTYpCQlIYXBweWVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjQS04MDUsIEJ1bmRhbmcgVGVjaG5vcGFyaywKKwkJCQkxNTAgWWF0YXAtRG9uZywgQnVuZGFuZy1HdQorCQkJCVNlb25nbmFtLVNpICA0NjMtODE2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzcwLTlBLTBCICAgKGhleCkJCUl0YWxpYW4gSW5zdGl0dXRlIG9mIFRlY2hub2xvZ3kKKzcwOUEwQiAgICAgKGJhc2UgMTYpCQlJdGFsaWFuIEluc3RpdHV0ZSBvZiBUZWNobm9sb2d5CisJCQkJVmlhIE1vcmVnbyAzMAorCQkJCUdlbm92YSBHRSAxNjE2MworCQkJCUlUQUxZCisKKzcwLTlCLUE1ICAgKGhleCkJCVNoZW56aGVuIFkmRCBFbGVjdHJvbmljcyBDby4sTFRELgorNzA5QkE1ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFkmRCBFbGVjdHJvbmljcyBDby4sTFRELgorCQkJCUQgem9uZTNGLFNoZW56aGVuIEFjYWRlbXkgb2YgQWVyb3NwYWNlIFRlY2hub2xvZ3ksSGktVGVjaCBQYXJrLHNvdXRoIDEwdGggUm9hZCxOYW5zaGFuCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzcwLTlFLTg2ICAgKGhleCkJCVg2RCBMaW1pdGVkCis3MDlFODYgICAgIChiYXNlIDE2KQkJWDZEIExpbWl0ZWQKKwkJCQkxOTksIEFyY2guIE1ha2FyaW91IElJSQorCQkJCU5lb2NsZW91cyBIb3VzZQorCQkJCUxpbWFzc29sICAzMDMwCisJCQkJQ1lQUlVTCisKKzcwLUExLTkxICAgKGhleCkJCVRyZW5kc2V0dGVyIE1lZGljYWwsIExMQworNzBBMTkxICAgICAoYmFzZSAxNikJCVRyZW5kc2V0dGVyIE1lZGljYWwsIExMQworCQkJCTIwMzAgQXJkbW9yZSBCTFZECisJCQkJU1RFIDM4MAorCQkJCVBpdHRzYnVyZ2ggUEEgMTUyMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLUE0LTFDICAgKGhleCkJCUFkdmFuY2VkIFdpcmVsZXNzIER5bmFtaWNzIFMuTC4KKzcwQTQxQyAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBXaXJlbGVzcyBEeW5hbWljcyBTLkwuCisJCQkJQ2VudHJvIGRlIEVtcHJlc2FzIFVQTSBvZmljaW5hIDMKKwkJCQlDYW1wdXMgVVBNIE1vbnRlZ2FuY2VkbworCQkJCVBvenVlbG8gZGUgQWxhcmNvbiBNYWRyaWQgMjgyMjMKKwkJCQlTUEFJTgorCis3MC1BNi02QSAgIChoZXgpCQlQcm94IER5bmFtaWNzIEFTCis3MEE2NkEgICAgIChiYXNlIDE2KQkJUHJveCBEeW5hbWljcyBBUworCQkJCVNtZWRzdmluZ2VuIDQKKwkJCQlIdmFsc3RhZCBBa2Vyc2h1cyAxMzk1CisJCQkJTk9SV0FZCisKKzcwLUFBLUIyICAgKGhleCkJCVJlc2VhcmNoIEluIE1vdGlvbgorNzBBQUIyICAgICAoYmFzZSAxNikJCVJlc2VhcmNoIEluIE1vdGlvbgorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCis3MC1CMC0zNSAgIChoZXgpCQlTaGVuemhlbiBab3dlZSBUZWNobm9sb2d5IENvLiwgTHRkCis3MEIwMzUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gWm93ZWUgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCUJsb2NrIDUsIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgSW5kdXN0cmlhbCAKKwkJCQlQYXJrIG9mIFByaXZhdGVseSBPd25lZCBFbnRlcnByaXNlcywgUGluZ3NoYW4sIFhpbGksIE5hbnNoYW4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU1CisJCQkJQ0hJTkEKKworNzAtQjAtOEMgICAoaGV4KQkJU2hlbm91IENvbW11bmljYXRpb24gRXF1aXBtZW50IENvLixMdGQKKzcwQjA4QyAgICAgKGJhc2UgMTYpCQlTaGVub3UgQ29tbXVuaWNhdGlvbiBFcXVpcG1lbnQgQ28uLEx0ZAorCQkJCU5vLjExOCBNaWRkbGUgSnVndWFuZyBSb2FkLCBIaWdoICZhbXA7IE5ldyBJbmR1c3RyaWFsIFpvbmUKKwkJCQlXZW56aG91IFpoZWppYW5nIDMyNTAyOQorCQkJCUNISU5BCisKKzcwLUIyLTY1ICAgKGhleCkJCUhpbHRyb24gcy5yLmwuCis3MEIyNjUgICAgIChiYXNlIDE2KQkJSGlsdHJvbiBzLnIubC4KKwkJCQlTdHJhZGEgUHJvdmluY2lhbGUgZGkgQ2FzZXJ0YSwgMjE4CisJCQkJTmFwbGVzICA4MDE0NAorCQkJCUlUQUxZCisKKzcwLUI1LTk5ICAgKGhleCkJCUVtYmVkZGVkIFRlY2hub2xvZ2llcyBzLnIuby4KKzcwQjU5OSAgICAgKGJhc2UgMTYpCQlFbWJlZGRlZCBUZWNobm9sb2dpZXMgcy5yLm8uCisJCQkJRG91YnJhdmljZSAxMzQKKwkJCQlUdXJub3YgIDUxMTAxCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworNzAtQjktMjEgICAoaGV4KQkJRmliZXJIb21lIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDTy4sTFRECis3MEI5MjEgICAgIChiYXNlIDE2KQkJRmliZXJIb21lIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDTy4sTFRECisJCQkJTm8uNSBEb25neGluIFJvYWQsSG9uZ3NoYW4gRGlzdHJpY3QKKwkJCQlXdWhhbiBIdWJlaSA0MzAwNzQKKwkJCQlDSElOQQorCis3MC1DQS05QiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis3MENBOUIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtQ0QtNjAgICAoaGV4KQkJQXBwbGUsIEluYy4KKzcwQ0Q2MCAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyAgQ0EgOTQ1ODgKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLUQ0LUYyICAgKGhleCkJCVJJTQorNzBENEYyICAgICAoYmFzZSAxNikJCVJJTQorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCis3MC1ENS03RSAgIChoZXgpCQlTY2FsYXIgQ29ycG9yYXRpb24KKzcwRDU3RSAgICAgKGJhc2UgMTYpCQlTY2FsYXIgQ29ycG9yYXRpb24KKwkJCQkxRiBTYW4tRWkgQmxkZworCQkJCTEtMjItMgorCQkJCVNoaW5qdWt1LWt1IFRva3lvIDE2MC0wMDIzCisJCQkJSkFQQU4KKworNzAtRDUtRTcgICAoaGV4KQkJV2VsbGNvcmUgQ29ycG9yYXRpb24KKzcwRDVFNyAgICAgKGJhc2UgMTYpCQlXZWxsY29yZSBDb3Jwb3JhdGlvbgorCQkJCTI4NzAgWmFua2VyIFJvYWQKKwkJCQlTdWl0ZSAxMzAKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtRDYtQjYgICAoaGV4KQkJTWV0cnVtIFRlY2hub2xvZ2llcworNzBENkI2ICAgICAoYmFzZSAxNikJCU1ldHJ1bSBUZWNobm9sb2dpZXMKKwkJCQkzMTUgU291dGggVW5pdmVyc2l0eSBQYXJrcyBEcml2ZQorCQkJCVdhY28gVGV4YXMgNzY3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzcwLUQ4LTgwICAgKGhleCkJCVVwb3MgU3lzdGVtIHNwLiB6IG8uby4KKzcwRDg4MCAgICAgKGJhc2UgMTYpCQlVcG9zIFN5c3RlbSBzcC4geiBvLm8uCisJCQkJU2llbmtpZXdpY3phIDEzCisJCQkJS251cm93IFNsYXNraWUgNDQtMTkwCisJCQkJUE9MQU5ECisKKzcwLURELUExICAgKGhleCkJCVRlbGxhYnMKKzcwRERBMSAgICAgKGJhc2UgMTYpCQlUZWxsYWJzCisJCQkJT25lIFRlbGxhYnMgQ2VudGVyCisJCQkJMTQxNSBXZXN0IERpZWhsIFJvYWQKKwkJCQlOYXBlcnZpbGxlIElsbGlub2lzIDYwNTYzCisJCQkJVU5JVEVEIFNUQVRFUworCis3MC1ERS1FMiAgIChoZXgpCQlBcHBsZSwgSW5jLgorNzBERUUyICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBjQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNzAtRTEtMzkgICAoaGV4KQkJM3ZpZXcgTHRkCis3MEUxMzkgICAgIChiYXNlIDE2KQkJM3ZpZXcgTHRkCisJCQkJMTY4LTE3MiBPbGQgU3RyZWV0CisJCQkJTG9uZG9uICBFQzFWIDlCUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzcwLUU4LTQzICAgKGhleCkJCUJlaWppbmcgQyZXIE9wdGljYWwgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLixMdGQuCis3MEU4NDMgICAgIChiYXNlIDE2KQkJQmVpamluZyBDJlcgT3B0aWNhbCBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQkyL0YgWXVmYSBQbGF6YSwgTm8uMTkgWGlhb3lpbmcgQmVpbHUsIENoYW95YW5nIERpc3RyaWN0LCAKKwkJCQlCZWlqaW5nICAxMDAxMDEKKwkJCQlDSElOQQorCis3MC1FRS01MCAgIChoZXgpCQlOZXRhdG1vCis3MEVFNTAgICAgIChiYXNlIDE2KQkJTmV0YXRtbworCQkJCTE3IHJvdXRlIGRlIGxhIHJlaW5lCisJCQkJQm91bG9nbmUtQmlsbGFuY291cnQgIDkyMTAwCisJCQkJRlJBTkNFCisKKzcwLUYxLUExICAgKGhleCkJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCis3MEYxQTEgICAgIChiYXNlIDE2KQkJTGl0ZW9uIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Riw5MCxDaGllbiAxIFJvYWQsQ2h1bmdIbyxUYWlwZWkgSHNpZW4KKwkJCQlUYWlwZWkgIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3MC1GMy05NSAgIChoZXgpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKzcwRjM5NSAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgR2xvYmFsIFNjaWVudGlmaWMgSW5kdXN0cmlhbCBDby4sIEx0ZC4KKwkJCQkxNDEsIExBTkUgMzUxLCBTRUMuMSxUQUlQSU5HIFJELgorCQkJCVRTQU9UVUVOCisJCQkJTkFOVE9VIDU0MjYxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3NC0wQS1CQyAgIChoZXgpCQlKU0pTIERlc2lnbnMgKEV1cm9wZSkgTGltaXRlZAorNzQwQUJDICAgICAoYmFzZSAxNikJCUpTSlMgRGVzaWducyAoRXVyb3BlKSBMaW1pdGVkCisJCQkJRXpla2llbCBIb3VzZQorCQkJCUV6ZWtpZWwgTGFuZQorCQkJCVdpbGxlbmhhbGwgV2VzdCBNaWRsYW5kcyBXVjEyIDVRVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzc0LTE0LTg5ICAgKGhleCkJCVNSVCBXaXJlbGVzcworNzQxNDg5ICAgICAoYmFzZSAxNikJCVNSVCBXaXJlbGVzcworCQkJCTQxMDEgU1cgNDd0aCBBdmVudWUgIzEwMgorCQkJCURhdmllIEZsb3JpZGEgMzMzMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LTE1LUUyICAgKGhleCkJCVRyaS1TZW4gU3lzdGVtcyBDb3Jwb3JhdGlvbgorNzQxNUUyICAgICAoYmFzZSAxNikJCVRyaS1TZW4gU3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTE3NjI1IEVsIENhbWlubyBSZWFsIFN1aXRlIDIwMAorCQkJCUhvdXN0b24gVFggNzcwNTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LTJCLTBGICAgKGhleCkJCUluZmluaWRhdCBMdGQuCis3NDJCMEYgICAgIChiYXNlIDE2KQkJSW5maW5pZGF0IEx0ZC4KKwkJCQkxMSBHYWxnYWxlaSBIYXBsYWRhIFN0LiAKKwkJCQlQLk8uQiAxMjY5NgorCQkJCUhlcnpsaXlhIFBpdHVhY2ggQ2VudGVyIDQ2NzIyCisJCQkJSVNSQUVMCisKKzc0LTJGLTY4ICAgKGhleCkJCUF6dXJld2F2ZSBUZWNobm9sb2dpZXMsIEluYy4KKzc0MkY2OCAgICAgKGJhc2UgMTYpCQlBenVyZXdhdmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJOEYuLCBCYW96aG9uZyBSZC4KKwkJCQlYaW5kaWFuIENpdHkgVGFpcGVpIENvdW50eSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzc0LTMxLTcwICAgKGhleCkJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKzc0MzE3MCAgICAgKGJhc2UgMTYpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYuICwgTm8uIDkgLCBQYXJrIEF2ZW51ZSBJSSwKKwkJCQlIc2luY2h1IFNjaWVuY2UgUGFyaywKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzc0LTMyLTU2ICAgKGhleCkJCU5ULXdhcmUgU3lzdGVtcHJnIEdtYkgKKzc0MzI1NiAgICAgKGJhc2UgMTYpCQlOVC13YXJlIFN5c3RlbXByZyBHbWJICisJCQkJTmllZGVyc2FjaHNlbnN0cmFzc2UgNgorCQkJCUJhZCBJYnVyZyBORFMgNDkxODYKKwkJCQlHRVJNQU5ZCisKKzc0LTM4LTg5ICAgKGhleCkJCUFOTkFYIEFuemVpZ2VzeXN0ZW1lIEdtYkgKKzc0Mzg4OSAgICAgKGJhc2UgMTYpCQlBTk5BWCBBbnplaWdlc3lzdGVtZSBHbWJICisJCQkJV2V0dGVyc3RlaW5zdHJhc3NlIDE4CisJCQkJVGF1ZmtpcmNoZW4gQmF2YXJpYSA4MjAyNAorCQkJCUdFUk1BTlkKKworNzQtNDQtMDEgICAoaGV4KQkJTkVUR0VBUgorNzQ0NDAxICAgICAoYmFzZSAxNikJCU5FVEdFQVIKKwkJCQkzNTAgRUFTVCBQTFVNRVJJQSBEUklWRQorCQkJCVNBTiBKT1NFIENBTElGT1JOSUEgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LTUzLTI3ICAgKGhleCkJCUNPTU1TRU4gQ08uLCBMSU1JVEVECis3NDUzMjcgICAgIChiYXNlIDE2KQkJQ09NTVNFTiBDTy4sIExJTUlURUQKKwkJCQkxMi9GLiwgU2FuIFRvaSBCdWlsZGluZywxMzkgQ29ubmF1Z2h0IFJvYWQgQ2VudHJhbCAKKwkJCQk5OTkwNzcKKwkJCQlIT05HIEtPTkcKKworNzQtNTYtMTIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzc0NTYxMiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LTU3LTk4ICAgKGhleCkJCVRSVU1QRiBMYXNlciBHbWJIICsgQ28uIEtHCis3NDU3OTggICAgIChiYXNlIDE2KQkJVFJVTVBGIExhc2VyIEdtYkggKyBDby4gS0cKKwkJCQlBaWNoaGFsZGVyIFN0ci4gMzkKKwkJCQlTY2hyYW1iZXJnIEJXIDc4NzEzCisJCQkJR0VSTUFOWQorCis3NC01RS0xQyAgIChoZXgpCQlQSU9ORUVSIENPUlBPUkFUSU9OCis3NDVFMUMgICAgIChiYXNlIDE2KQkJUElPTkVFUiBDT1JQT1JBVElPTgorCQkJCTEtMSBTaGluLW9ndXJhCisJCQkJU2Fpd2FpLWt1CisJCQkJS2F3YXNha2ktc2hpIEthbmFnYXdhIFByZWZlY3R1cmUgMjEyMDAzMQorCQkJCUpBUEFOCisKKzc0LTYzLURGICAgKGhleCkJCVZUUyBHbWJICis3NDYzREYgICAgIChiYXNlIDE2KQkJVlRTIEdtYkgKKwkJCQlBbSBL77+9bmlnaG9seiBPc3QgNAorCQkJCUVnbGhhdXNlbiBCYXZhcmlhIDg1NDExCisJCQkJR0VSTUFOWQorCis3NC02NS1EMSAgIChoZXgpCQlBdGxpbmtzCis3NDY1RDEgICAgIChiYXNlIDE2KQkJQXRsaW5rcworCQkJCTMwIEF2ZW51ZSBHZXJvZ2UgVgorCQkJCVBhcmlzICA3NTAwOAorCQkJCUZSQU5DRQorCis3NC02QS04OSAgIChoZXgpCQlSZXpvbHQgQ29ycG9yYXRpb24KKzc0NkE4OSAgICAgKGJhc2UgMTYpCQlSZXpvbHQgQ29ycG9yYXRpb24KKwkJCQkyODU1IEJvd2VycyBBdmVudWUKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1MQorCQkJCVVOSVRFRCBTVEFURVMKKworNzQtNkItODIgICAoaGV4KQkJTU9WRUsgCis3NDZCODIgICAgIChiYXNlIDE2KQkJTU9WRUsgCisJCQkJNjUxNyBOYXZhaG8gVHJhaWwKKwkJCQlFZGluYSBNaW5uZXNvdGEgNTU0MzkKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LTcyLUYyICAgKGhleCkJCUNoaXBzaXAgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzc0NzJGMiAgICAgKGJhc2UgMTYpCQlDaGlwc2lwIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJOEYtMSwgTm8uMTg2LCBKaWFuLVlpIFJvYWQsIENodW5nSG8gQ2l0eSwKKwkJCQlUYWlwZWkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworNzQtNzgtMTggICAoaGV4KQkJU2VydmljZUFzc3VyZQorNzQ3ODE4ICAgICAoYmFzZSAxNikJCVNlcnZpY2VBc3N1cmUKKwkJCQlHcm91bmQgRmxvb3IsIEJsb2NrIFAsIENyeXN0YWwgUGFyayBPbmUKKwkJCQkyNDkgQmFzZGVuIEF2ZW51ZSwgTHl0dGVsdG9uCisJCQkJQ2VudHVyaW9uIFRzaHdhbmUgMDE1NworCQkJCVNPVVRIIEFGUklDQQorCis3NC03Qi03QSAgIChoZXgpCQlFVEggSW5jLgorNzQ3QjdBICAgICAoYmFzZSAxNikJCUVUSCBJbmMuCisJCQkJIzIwMiBNYXppdW0gQkxHLCA1NDUtNiwgRGFuZ2p1bmctZG9uZywKKwkJCQlHdW5wby1zaSBHeWVvbmdnaS1kbyA0MzUtODMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzc0LTdELUI2ICAgKGhleCkJCUFsaXdlaSBDb21tdW5pY2F0aW9ucywgSW5jCis3NDdEQjYgICAgIChiYXNlIDE2KQkJQWxpd2VpIENvbW11bmljYXRpb25zLCBJbmMKKwkJCQlLZWppIDYgUm9hZCAsIEhpLXRlY2ggSW5kdXN0cmlhbCBQYXJrICAKKwkJCQlOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzc0LTdFLTFBICAgKGhleCkJCVJlZCBFbWJlZGRlZCBEZXNpZ24gTGltaXRlZAorNzQ3RTFBICAgICAoYmFzZSAxNikJCVJlZCBFbWJlZGRlZCBEZXNpZ24gTGltaXRlZAorCQkJCVZlbG9jaXR5CisJCQkJQW5nZWwgV2F5CisJCQkJQnJhZGZvcmQgV2VzdCBZb3Jrc2hpcmUgQkQ3IDFCWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzc0LTdFLTJEICAgKGhleCkJCUJlaWppbmcgVGhvbXNvbiBDSVRJQyBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uIExURC4KKzc0N0UyRCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIFRob21zb24gQ0lUSUMgRGlnaXRhbCBUZWNobm9sb2d5IENvLiBMVEQuCisJCQkJODMwMSwgTm8uOCBXb3Jrc2hvcCwgMyBZb25nY2hhbmdiZWkgUm9hZAorCQkJCUJlaWppbmcgRWNvbm9taWMmVGVjbm5vbG9naWNhbCBEZXZlbG9wbWVudCBBcmVhCisJCQkJQmVpamluZyAgMTAwMTc2CisJCQkJQ0hJTkEKKworNzQtOEUtRjggICAoaGV4KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCis3NDhFRjggICAgIChiYXNlIDE2KQkJQnJvY2FkZSBDb21tdW5pY2F0aW9ucyBTeXN0ZW1zLCBJbmMuCisJCQkJMTc0NSBUZWNobm9sb2d5IERyCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LTkwLTUwICAgKGhleCkJCVJlbmVzYXMgRWxlY3Ryb25pY3MgQ29ycG9yYXRpb24KKzc0OTA1MCAgICAgKGJhc2UgMTYpCQlSZW5lc2FzIEVsZWN0cm9uaWNzIENvcnBvcmF0aW9uCisJCQkJMTc1MywgU2hpbW9udW1hYmUsIE5ha2FoYXJhLUt1CisJCQkJS2F3YXNha2kgS2FuYWdhd2EgMjExLTg2NjgKKwkJCQlKQVBBTgorCis3NC05MS0xQSAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKKzc0OTExQSAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUuCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCis3NC05My1BNCAgIChoZXgpCQlaZWJyYSBUZWNobm9sb2dpZXMgQ29ycC4KKzc0OTNBNCAgICAgKGJhc2UgMTYpCQlaZWJyYSBUZWNobm9sb2dpZXMgQ29ycC4KKwkJCQkyMDMxNCBTZW5lY2EgTWVhZG93cyBQYXJrd2F5CisJCQkJR2VybWFudG93biBNYXJ5bGFuZCAyMTc3MQorCQkJCVVOSVRFRCBTVEFURVMKKworNzQtQTQtQTcgICAoaGV4KQkJUVJTIE11c2ljIFRlY2hub2xvZ2llcywgSW5jLgorNzRBNEE3ICAgICAoYmFzZSAxNikJCVFSUyBNdXNpYyBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkyNjkgUXVha2VyIERyaXZlCisJCQkJU2VuZWNhIFBBIDE2MzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCis3NC1BNy0yMiAgIChoZXgpCQlMRyBFbGVjdHJvbmljcworNzRBNzIyICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzCisJCQkJNjAzLTM5ICwgS2FzYW4tZG9uZywgR3VtY2hlb24tZ3UKKwkJCQlTZW91bCAgMTUzLTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3NC1BRS03NiAgIChoZXgpCQlpTm92byBCcm9hZGJhbmQsIEluYy4KKzc0QUU3NiAgICAgKGJhc2UgMTYpCQlpTm92byBCcm9hZGJhbmQsIEluYy4KKwkJCQkzNDc1IENvcnBvcmF0ZSBXYXksIFN1aXRlIEMKKwkJCQlEdWx1dGggR2VvcmdpYSAzMDA5NgorCQkJCVVOSVRFRCBTVEFURVMKKworNzQtQjAtMEMgICAoaGV4KQkJTmV0d29yayBWaWRlbyBUZWNobm9sb2dpZXMsIEluYworNzRCMDBDICAgICAoYmFzZSAxNikJCU5ldHdvcmsgVmlkZW8gVGVjaG5vbG9naWVzLCBJbmMKKwkJCQk0MDA1IEJvaGFubm9uIERyaXZlCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworNzQtQjktRUIgICAoaGV4KQkJRnVqaWFuIEppblFpYW5NYW8gRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLixMdGQKKzc0QjlFQiAgICAgKGJhc2UgMTYpCQlGdWppYW4gSmluUWlhbk1hbyBFbGVjdHJvbmljIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCVJvb20gNTA2IFlvbmdIZW5nIEJ1aWxkaW5nIE5PLjU4IEppYW5nQmluZyBSYW9kCisJCQkJRnVaaG91IEZ1SmlhbiAzNTAwMDUKKwkJCQlDSElOQQorCis3NC1CRS0wOCAgIChoZXgpCQlBVEVLIFByb2R1Y3RzLCBMTEMKKzc0QkUwOCAgICAgKGJhc2UgMTYpCQlBVEVLIFByb2R1Y3RzLCBMTEMKKwkJCQkyMTAgTkUgMTB0aCBBdmVudWUKKwkJCQlCcmFpbmVyZCBNTiA1NjQwMQorCQkJCVVOSVRFRCBTVEFURVMKKworNzQtQ0QtMEMgICAoaGV4KQkJU21pdGggTXllcnMgQ29tbXVuaWNhdGlvbnMgTHRkLgorNzRDRDBDICAgICAoYmFzZSAxNikJCVNtaXRoIE15ZXJzIENvbW11bmljYXRpb25zIEx0ZC4KKwkJCQlUaGUgT21lZ2EgQ2VudHJlCisJCQkJU3RyYXR0b24gQnVzaW5lc3MgUGFyaworCQkJCUJpZ2dsZXN3YWRlIEJFRFMgU0cxOCA4UUIKKwkJCQlVTklURUQgS0lOR0RPTQorCis3NC1DRS01NiAgIChoZXgpCQlQYWNrZXQgRm9yY2UgVGVjaG5vbG9neSBMaW1pdGVkIENvbXBhbnkKKzc0Q0U1NiAgICAgKGJhc2UgMTYpCQlQYWNrZXQgRm9yY2UgVGVjaG5vbG9neSBMaW1pdGVkIENvbXBhbnkKKwkJCQkgMkYuLCBOby4yNSwgU2VjLiAxLCBTaHVhbmdzaGkgUmQuLCBDZW50cmFsIERpc3QuLCAKKwkJCQlUYWljaHVuZyAgNDAwNDYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzc0LUQwLURDICAgKGhleCkJCUVSSUNTU09OIEFCCis3NEQwREMgICAgIChiYXNlIDE2KQkJRVJJQ1NTT04gQUIKKwkJCQlUb3JzaGFtbnNnYXRhbiAzNgorCQkJCVNUT0NLSE9MTSAgMTY0IDgzIAorCQkJCVNXRURFTgorCis3NC1ENi03NSAgIChoZXgpCQlXWU1BIFRlY25vbG9naWEKKzc0RDY3NSAgICAgKGJhc2UgMTYpCQlXWU1BIFRlY25vbG9naWEKKwkJCQlSdWEgQ2ztbWFjbyBCYXJib3NhLCAxNzEtMTc5CisJCQkJQ2FtYnVjaQorCQkJCVPjbyBQYXVsbyAgMDE1MjMtMDAwCisJCQkJQlJBWklMCisKKzc0LUQ4LTUwICAgKGhleCkJCUV2cmlza28gU3lzdGVtcworNzREODUwICAgICAoYmFzZSAxNikJCUV2cmlza28gU3lzdGVtcworCQkJCTIzMjIgQWxwaW5lIFJkLCBTdGUgMTAKKwkJCQlFYXUgQ2xhaXJlIFdJIDU0NzAzCisJCQkJVU5JVEVEIFNUQVRFUworCis3NC1ERS0yQiAgIChoZXgpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorNzRERTJCICAgICAoYmFzZSAxNikJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYsOTAsQ2hpZW4gMSBSb2FkLCBDaHVuZ0hvLiBUYWlwZWkgSHNpZW4gMjM1LFRhaXdhbgorCQkJCVRhaXBlaSAgMjM1ODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzc0LUUwLTZFICAgKGhleCkJCUVyZ29waG9uZSBHbWJICis3NEUwNkUgICAgIChiYXNlIDE2KQkJRXJnb3Bob25lIEdtYkgKKwkJCQlUZW1tbGVyc3RyYXNzZSA1CisJCQkJTWFyYnVyZyBIZXNzZW4gMzUwMzkKKwkJCQlHRVJNQU5ZCisKKzc0LUUxLUI2ICAgKGhleCkJCUFwcGxlLCBJbmMuCis3NEUxQjYgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIGluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LUUyLUY1ICAgKGhleCkJCUFwcGxlIEluYworNzRFMkY1ICAgICAoYmFzZSAxNikJCUFwcGxlIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworNzQtRTUtMEIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis3NEU1MEIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis3NC1FNS0zNyAgIChoZXgpCQlSQURTUElOCis3NEU1MzcgICAgIChiYXNlIDE2KQkJUkFEU1BJTgorCQkJCVNvbmdwYS1ndSBHYXJhay1kb25nIDc4CisJCQkJSVQgVmVudHVyZSBUb3dlciBXZXN0IFdpbmcgMTJ0aCBGbC4KKwkJCQlTZW91bCAgMTM4LTk1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3NC1FNS00MyAgIChoZXgpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorNzRFNTQzICAgICAoYmFzZSAxNikJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYsOTAsQ2hpZW4gMSBSb2FkLENodW5nSG8KKwkJCQlOZXcgVGFpcGVpIENpdHkgVGFpcGVpIDIzNTg1CisJCQkJVEFJV0FOLCBQUk9WSU5DRSBPRiBDSElOQQorCis3NC1FNy1DNiAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorNzRFN0M2ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworNzQtRUEtM0EgICAoaGV4KQkJVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzc0RUEzQSAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCUJ1aWxkaW5nIDcsIFNlY29uZCBQYXJ0LCBIb25naHVhbGluZyBJbmR1c3RyaWFsIFpvbmUKKwkJCQlYaWxpLE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworNzQtRjAtNkQgICAoaGV4KQkJQXp1cmVXYXZlIFRlY2hub2xvZ2llcywgSW5jLgorNzRGMDZEICAgICAoYmFzZSAxNikJCUF6dXJlV2F2ZSBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk4Ri4sIEJhb3pob25nIFJkLiwgCisJCQkJWGluZGlhbiBDaXR5LCBUYWlwZWkgQ291bnR5LiAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3NC1GMC03RCAgIChoZXgpCQlCbkNPTSBDby4sTHRkCis3NEYwN0QgICAgIChiYXNlIDE2KQkJQm5DT00gQ28uLEx0ZAorCQkJCVJvb20xMDA3LCBEYWVoeXVuIFRlY2hubyBXb3JsZCwgMTc0CisJCQkJT2plb24tZG9uZywgCisJCQkJVWl3YW5nLXNpIEd5ZW9uZ2dpLWRvIDQzNy03NTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNzQtRjYtMTIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzc0RjYxMiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzc0LUY3LTI2ICAgKGhleCkJCU5ldXJvbiBSb2JvdGljcworNzRGNzI2ICAgICAoYmFzZSAxNikJCU5ldXJvbiBSb2JvdGljcworCQkJCTkxIFBlYXJzb24gQXZlCisJCQkJVW5pdCAyCisJCQkJU29tZXJ2aWxsZSBNQSAwMjE0NAorCQkJCVVOSVRFRCBTVEFURVMKKworNzQtRkQtQTAgICAoaGV4KQkJQ29tcHVwYWwgKEdyb3VwKSBDb3Jwb3JhdGlvbiAKKzc0RkRBMCAgICAgKGJhc2UgMTYpCQlDb21wdXBhbCAoR3JvdXApIENvcnBvcmF0aW9uIAorCQkJCU5vLjE1NTUgSmlhc2hhbiBBdmVudWUKKwkJCQlKaWFzaGFuIFpoZWppYW5nIDMxNDExMworCQkJCUNISU5BCisKKzc0LUZGLTdEICAgKGhleCkJCVdyZW4gU291bmQgU3lzdGVtcywgTExDCis3NEZGN0QgICAgIChiYXNlIDE2KQkJV3JlbiBTb3VuZCBTeXN0ZW1zLCBMTEMKKwkJCQkxNjkgR2F0ZXNoZWFkIFdheQorCQkJCVBob2VuaXh2aWxsZSBQQSAxOTQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtMDItOEYgICAoaGV4KQkJQWRhcHRpdmUgU3BlY3RydW0gYW5kIFNpZ25hbCBBbGlnbm1lbnQgKEFTU0lBKSwgSW5jLgorNzgwMjhGICAgICAoYmFzZSAxNikJCUFkYXB0aXZlIFNwZWN0cnVtIGFuZCBTaWduYWwgQWxpZ25tZW50IChBU1NJQSksIEluYy4KKwkJCQkzMzMgVHdpbiBEb2xwaGluIERyaXZlCisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDY1CisJCQkJVU5JVEVEIFNUQVRFUworCis3OC0wNy0zOCAgIChoZXgpCQlaLlUuSy4gRWx6YWIgUy5BLgorNzgwNzM4ICAgICAoYmFzZSAxNikJCVouVS5LLiBFbHphYiBTLkEuCisJCQkJdWwuIEtydWN6a293c2tpZWdvIDM5CisJCQkJWmFicnplICA0MS04MTMKKwkJCQlQT0xBTkQKKworNzgtMTEtODUgICAoaGV4KQkJTkJTIFBheW1lbnQgU29sdXRpb25zIEluYy4KKzc4MTE4NSAgICAgKGJhc2UgMTYpCQlOQlMgUGF5bWVudCBTb2x1dGlvbnMgSW5jLgorCQkJCTcwMyBFdmFucyBBdmUKKwkJCQlTdWl0ZSA0MDAKKwkJCQlUb3JvbnRvIE9udGFyaW8gTTlDIDVFOQorCQkJCUNBTkFEQQorCis3OC0xMi1COCAgIChoZXgpCQlPUkFOVEVLIExJTUlURUQKKzc4MTJCOCAgICAgKGJhc2UgMTYpCQlPUkFOVEVLIExJTUlURUQKKwkJCQk1L0YsIEJ1aWxkaW5nIEUsIERha2FuIFRlY2ggUGFyaywgRGFrYW4gdmlsbGFnZSwgWGlsaSBUb3duLCBOYW5zaGFuIERpc3RyaWN0LCBTaGVuemhlbiwgQ2hpbmEKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworNzgtMTktMkUgICAoaGV4KQkJTkFTQ0VOVCBUZWNobm9sb2d5Cis3ODE5MkUgICAgIChiYXNlIDE2KQkJTkFTQ0VOVCBUZWNobm9sb2d5CisJCQkJMjc0NCBZb3JrbW9udCBSRAorCQkJCUNoYXJsb3R0ZSBOQyAyODIwOAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtMTktRjcgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworNzgxOUY3ICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5IAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtMUMtNUEgICAoaGV4KQkJU0hBUlAgQ29ycG9yYXRpb24KKzc4MUM1QSAgICAgKGJhc2UgMTYpCQlTSEFSUCBDb3Jwb3JhdGlvbgorCQkJCTIyLTIyLE5hZ2Fpa2UtQ2hvCisJCQkJQWJlbm8tS3UKKwkJCQlPc2FrYS1DaXR5IE9zYWthLVByZWZlY3R1cmUgNTQ1LTg1MjIKKwkJCQlKQVBBTgorCis3OC0xRC1CQSAgIChoZXgpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKzc4MURCQSAgICAgKGJhc2UgMTYpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKwkJCQlIVUFXRUkgSW5kdXN0cmlhbCBCYXNlIEJhbnRpYW4sTG9uZ2dhbmcKKwkJCQlTaGVuemhlbiBndWFuZ2RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworNzgtMUQtRkQgICAoaGV4KQkJSmFiaWwgSW5jCis3ODFERkQgICAgIChiYXNlIDE2KQkJSmFiaWwgSW5jCisJCQkJMTA1MDAgRHIuIE1hcnRpbiBMdXRoZXIgS2luZyBKci4gU3QuIE4uCisJCQkJRG9jayBDCisJCQkJU3QuIFBldGVyc2J1cmcgRmxvcmlkYSAzMzcxNgorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtMjItM0QgICAoaGV4KQkJQWZmaXJtZWQgTmV0d29ya3MKKzc4MjIzRCAgICAgKGJhc2UgMTYpCQlBZmZpcm1lZCBOZXR3b3JrcworCQkJCTM1IE5hZ29nIFBhcmsKKwkJCQlBY3RvbiBNQSAwMTcyMAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtMjUtNDQgICAoaGV4KQkJT21uaW1hIExpbWl0ZWQKKzc4MjU0NCAgICAgKGJhc2UgMTYpCQlPbW5pbWEgTGltaXRlZAorCQkJCU94Zm9yZCBTY2llbmNlIFBhcmsKKwkJCQlKb2huIEVjY2xlcyBIb3VzZSwgUm9iZXJ0IFJvYmluc29uIEF2ZQorCQkJCU94Zm9yZCBPeGZvcmRzaGlyZSBPWDQgNEdQCisJCQkJVU5JVEVEIEtJTkdET00KKworNzgtMjUtQUQgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPTklDUyBDTy4sIExURC4KKzc4MjVBRCAgICAgKGJhc2UgMTYpCQlTQU1TVU5HIEVMRUNUUk9OSUNTIENPLiwgTFRELgorCQkJCTQxNiwgTUFFVEFOLTNET05HLCBQQUxEQUwtR1UKKwkJCQlTVVdPTiBDSVRZIEtZVU5HS0ktRE8gNDQyLTc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3OC0yQi1DQiAgIChoZXgpCQlEZWxsIEluYworNzgyQkNCICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUzpSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCis3OC0yRS1FRiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorNzgyRUVGICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJWXJ0dGlwZWxsb250aWUgNgorCQkJCU91bHUgIDkwMjMwCisJCQkJRklOTEFORAorCis3OC0zMC1FMSAgIChoZXgpCQlVbHRyYUNsZW56LCBMTEMKKzc4MzBFMSAgICAgKGJhc2UgMTYpCQlVbHRyYUNsZW56LCBMTEMKKwkJCQkxNDQwIFcgSW5kaWFudG93biBSb2FkCisJCQkJU3VpdGUgMzUwCisJCQkJSnVwaXRlciBGTCAzMzQ1OAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtM0YtMTUgICAoaGV4KQkJRWFzeVNZTkMgTHRkLgorNzgzRjE1ICAgICAoYmFzZSAxNikJCUVhc3lTWU5DIEx0ZC4KKwkJCQlVbml0IDEsIDIgU2Vhd2FyZCBQbGFjZQorCQkJCUNlbnR1cmlvbiBCdXNpbmVzcyBQYXJrCisJCQkJR2xhc2dvdyBTY290bGFuZCBHNDEgMUhICisJCQkJVU5JVEVEIEtJTkdET00KKworNzgtNDQtNzYgICAoaGV4KQkJWmlvbmNvbSB0ZWNobm9sb2d5IGNvLixsdGQKKzc4NDQ3NiAgICAgKGJhc2UgMTYpCQlaaW9uY29tIHRlY2hub2xvZ3kgY28uLGx0ZAorCQkJCUExJkEyIGJ1aWxkaW5nLGxhbnRpYW4gdGVjaG5vbG9neSBwYXJrLCB4aW55dSByb2FkLCB4aW5ncWlhbyBoZW5nZ2FuZyBibG9jaywgc2hhamluZyBzdHJlZXQsIEJhb2FuIERpc3RyaWN0CisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzc4LTQ1LUM0ICAgKGhleCkJCURlbGwgSW5jCis3ODQ1QzQgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXkKKwkJCQlNUzpSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRYIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCis3OC00Ny0xRCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKzc4NDcxRCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworNzgtNTEtMEMgICAoaGV4KQkJTGl2ZVUgTHRkLgorNzg1MTBDICAgICAoYmFzZSAxNikJCUxpdmVVIEx0ZC4KKwkJCQk1IEhhZ2F2aXNoIFN0LgorCQkJCUtmYXItU2FiYSAgNDQ2NDEKKwkJCQlJU1JBRUwKKworNzgtNTItNjIgICAoaGV4KQkJU2hlbnpoZW4gSG9qeSBTb2Z0d2FyZSBDby4sIEx0ZC4KKzc4NTI2MiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBIb2p5IFNvZnR3YXJlIENvLiwgTHRkLgorCQkJCTNGLEVhc3Qgb2YgQnVpbGRpbmcyNSxLZXl1YW54aSxOdW1iZXIgNSxLZXpoaXhpIFJvYWQsIFNjaWVuY2UgJiBJbmR1c3RyeSBQYXJrICxOYW4gU2hhbiBEaXN0cmljdCAsU2hlbnpoZW4KKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTA4MDU3CisJCQkJQ0hJTkEKKworNzgtNTctMTIgICAoaGV4KQkJTW9iaWxlIEludGVncmF0aW9uIFdvcmtncm91cAorNzg1NzEyICAgICAoYmFzZSAxNikJCU1vYmlsZSBJbnRlZ3JhdGlvbiBXb3JrZ3JvdXAKKwkJCQk0NTgwIEtsYWhhbmllIERSIFNFIFNURSAxMDYKKwkJCQlJc3NhcXVhaCBXQSA5ODAyOQorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtNTktM0UgICAoaGV4KQkJUkFGSSBHbWJIICYgQ28uS0cKKzc4NTkzRSAgICAgKGJhc2UgMTYpCQlSQUZJIEdtYkggJiBDby5LRworCQkJCVJhdmVuc2J1cmdlciBTdHIuIDEyOC0xMzQKKwkJCQlCZXJnIEJhZGVuIFd1cnR0ZW1iZXJnIDg4Mjc2CisJCQkJR0VSTUFOWQorCis3OC01Qy03MiAgIChoZXgpCQlIaW9zbyBUZWNobm9sb2d5IENvLiwgTHRkLgorNzg1QzcyICAgICAoYmFzZSAxNikJCUhpb3NvIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNnRoIEZsb29yLCAxMnRoIEJ1aWxkaW5nLCBXYW5ndGFuZyBJbmR1c3RyaWFsIFpvbmUsCisJCQkJWGluZ2FvIFJvYWQsIFhpbGksIE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU1CisJCQkJQ0hJTkEKKworNzgtNjEtN0MgICAoaGV4KQkJTUlUU1VNSSBFTEVDVFJJQyBDTy4sTFREIAorNzg2MTdDICAgICAoYmFzZSAxNikJCU1JVFNVTUkgRUxFQ1RSSUMgQ08uLExURCAKKwkJCQlUc3VydW1ha2kKKwkJCQkyLTExLTIKKwkJCQlUYW1hLXNoaSBUb2t5byAyMDYtODU2NworCQkJCUpBUEFOCisKKzc4LTY2LUFFICAgKGhleCkJCVpURUMgSW5zdHJ1bWVudHMsIEluYy4KKzc4NjZBRSAgICAgKGJhc2UgMTYpCQlaVEVDIEluc3RydW1lbnRzLCBJbmMuCisJCQkJNzcxNSBUaWJ1cm9uIFN0LiBORQorCQkJCUFsYnVxdWVycXVlIE5NIDg3MTA5CisJCQkJVU5JVEVEIFNUQVRFUworCis3OC03Ri02MiAgIChoZXgpCQlHaUsgbWJICis3ODdGNjIgICAgIChiYXNlIDE2KQkJR2lLIG1iSAorCQkJCUdvZXRoZXN0ci4gNQorCQkJCUFhY2hlbiAgNTIwNjQKKwkJCQlHRVJNQU5ZCisKKzc4LTgxLThGICAgKGhleCkJCVNlcnZlciBSYWNrcyBBdXN0cmFsaWEgUHR5IEx0ZAorNzg4MThGICAgICAoYmFzZSAxNikJCVNlcnZlciBSYWNrcyBBdXN0cmFsaWEgUHR5IEx0ZAorCQkJCTQgLSA2IEVuZHVyYW5jZSBBdmUKKwkJCQlRdWVhbmJleWFuIE5TVyAyNjIwCisJCQkJQVVTVFJBTElBCisKKzc4LTg0LTNDICAgKGhleCkJCVNvbnkgQ29ycG9yYXRpb24KKzc4ODQzQyAgICAgKGJhc2UgMTYpCQlTb255IENvcnBvcmF0aW9uCisJCQkJNS0xLTEyIEtpdGFzaGluYWdhd2EgU2hpbmFnYXdhLWt1CisJCQkJVG9reW8gIDE0MS0wMDAxCisJCQkJSkFQQU4KKworNzgtODQtRUUgICAoaGV4KQkJSU5EUkEgRVNQQUNJTyBTLkEuCis3ODg0RUUgICAgIChiYXNlIDE2KQkJSU5EUkEgRVNQQUNJTyBTLkEuCisJCQkJQy8gUk9DIEJPUk9OQVQsIDEzMworCQkJCUJBUkNFTE9OQSAgMDgwMTgKKwkJCQlTUEFJTgorCis3OC04OS03MyAgIChoZXgpCQlDTUMKKzc4ODk3MyAgICAgKGJhc2UgMTYpCQlDTUMKKwkJCQlJbmR1c3RyaWVwYXJrIERlIEJydXdhYW4gMzdCCisJCQkJT3VkZW5hYXJkZSBPb3N0LVZsYWFuZGVyZW4gOTcwMAorCQkJCUJFTEdJVU0KKworNzgtOEMtNTQgICAoaGV4KQkJRW5rb20gVGVjaG5vbG9naWVzIEx0ZC4KKzc4OEM1NCAgICAgKGJhc2UgMTYpCQlFbmtvbSBUZWNobm9sb2dpZXMgTHRkLgorCQkJCUJhZGVuZXJzdHJhc3NlIDU1MQorCQkJCVr8cmljaCBaSCA4MDQ4CisJCQkJU1dJVFpFUkxBTkQKKworNzgtOTItOUMgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis3ODkyOUMgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis3OC05OS04RiAgIChoZXgpCQlNRURJTElORSBJVEFMSUEgU1JMCis3ODk5OEYgICAgIChiYXNlIDE2KQkJTUVESUxJTkUgSVRBTElBIFNSTAorCQkJCVZJQSA4IE1BUlpPLCA0CisJCQkJQ09SVEUgVEVHR0UgUkVHR0lPIE5FTEwnRU1JTElBIDQyMDI1CisJCQkJSVRBTFkKKworNzgtQTAtNTEgICAoaGV4KQkJaWlOZXQgTGFicyBQdHkgTHRkIAorNzhBMDUxICAgICAoYmFzZSAxNikJCWlpTmV0IExhYnMgUHR5IEx0ZCAKKwkJCQlMZXZlbCAxCisJCQkJNTAyIEhheSBTdHJlZXQKKwkJCQlTdWJpYWNvIFdBIDYwMDgKKwkJCQlBVVNUUkFMSUEKKworNzgtQTEtODMgICAoaGV4KQkJQWR2aWRpYQorNzhBMTgzICAgICAoYmFzZSAxNikJCUFkdmlkaWEKKwkJCQkzIFJpdmVyd2F5CisJCQkJU3VpdGUgNzAwCisJCQkJSG91c3RvbiBUWCA3NzA1NgorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtQTItQTAgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCis3OEEyQTAgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworNzgtQTMtRTQgICAoaGV4KQkJQXBwbGUsIEluYy4KKzc4QTNFNCAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyAgQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzc4LUE1LUREICAgKGhleCkJCVNoZW56aGVuIFNtYXJ0ZXllIERpZ2l0YWwgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKzc4QTVERCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBTbWFydGV5ZSBEaWdpdGFsIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJIzYgTm9ydGhlbiBBcmVhIAorCQkJCVNoYW5neHVlIFMmYW1wO1QgSW5kdXN0cmlhbCBQYXJrCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyOQorCQkJCUNISU5BCisKKzc4LUE2LTgzICAgKGhleCkJCVByZWNpZGF0YQorNzhBNjgzICAgICAoYmFzZSAxNikJCVByZWNpZGF0YQorCQkJCUNQIDY3MgorCQkJCU1hbGFkaWVyZSA3MQorCQkJCTIwMDIgTkUgMjAwMgorCQkJCVNXSVRaRVJMQU5ECisKKzc4LUE2LUJEICAgKGhleCkJCURBRVlFT04gQ29udHJvbCZJbnN0cnVtZW50IENvLC5MdGQKKzc4QTZCRCAgICAgKGJhc2UgMTYpCQlEQUVZRU9OIENvbnRyb2wmSW5zdHJ1bWVudCBDbywuTHRkCisJCQkJQUNFVEVDSE5PVE9XRVIgMi0xMDgsIDE5Ny03LCBHdXJvMy1Eb25nLCBHdXJvLUd1LCAKKwkJCQlTZW91bCAgMTUyLTc2NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3OC1BNy0xNCAgIChoZXgpCQlBbXBoZW5vbAorNzhBNzE0ICAgICAoYmFzZSAxNikJCUFtcGhlbm9sCisJCQkJMjAgVmFsbGV5IFN0LgorCQkJCUVuZGljb3R0IE5ldyBZb3JrIDEzNzYwCisJCQkJVU5JVEVEIFNUQVRFUworCis3OC1BQy1DMCAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorNzhBQ0MwICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCU1haWxjb2RlIDYuMy4wNDkKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCis3OC1CNi1DMSAgIChoZXgpCQlBT0JPIFRlbGVjb20gQ28uLEx0ZAorNzhCNkMxICAgICAoYmFzZSAxNikJCUFPQk8gVGVsZWNvbSBDby4sTHRkCisJCQkJUm9vbTE1MDgsSmlhbmdvbmcgQnVpbGRpbmcKKwkJCQlOby4yMCBXZW5zYW4gUm9hZAorCQkJCUhhbmd6aG91IFpoZUppYW5nICAzMTAwMTIKKwkJCQlDSElOQQorCis3OC1COC0xQSAgIChoZXgpCQlJTlRFUiBTQUxFUyBBL1MKKzc4QjgxQSAgICAgKGJhc2UgMTYpCQlJTlRFUiBTQUxFUyBBL1MKKwkJCQlTdGF2bmVhZ2VydmVqIDIyCisJCQkJRWdhYSBKdXRsYW5kIDgyNTAKKwkJCQlERU5NQVJLCisKKzc4LUJBLUQwICAgKGhleCkJCVNoaW55Ym93IFRlY2hub2xvZ3kgQ28uIEx0ZC4KKzc4QkFEMCAgICAgKGJhc2UgMTYpCQlTaGlueWJvdyBUZWNobm9sb2d5IENvLiBMdGQuCisJCQkJOUZsLixOby42MyxKdSBHdWFuZyBSZC4sQ2h1bmcgSG8gRGlzdC4KKwkJCQlOZXcgVGFpcGVpICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzc4LUJFLUI2ICAgKGhleCkJCUVuaGFuY2VkIFZpc2lvbgorNzhCRUI2ICAgICAoYmFzZSAxNikJCUVuaGFuY2VkIFZpc2lvbgorCQkJCTU4ODIgTUFDSElORSBEUi4KKwkJCQlIdW50aW5ndG9uIEJlYWNoIENhbGlmb3JuaWEgOTI2NDkKKwkJCQlVTklURUQgU1RBVEVTCisKKzc4LUJFLUJEICAgKGhleCkJCVNUVUxaIEdtYkgKKzc4QkVCRCAgICAgKGJhc2UgMTYpCQlTVFVMWiBHbWJICisJCQkJSG9sc3RlaW5lciBDaGF1c3NlIDI4MworCQkJCUhhbWJ1cmcgMjI0NTcKKwkJCQlHRVJNQU5ZCisKKzc4LUM0LTBFICAgKGhleCkJCUgmRCBXaXJlbGVzcyAKKzc4QzQwRSAgICAgKGJhc2UgMTYpCQlIJkQgV2lyZWxlc3MgCisJCQkJU2rDtnbDpGdlbiAxNworCQkJCVNvbG5hICAxNjkgNTUgCisJCQkJU1dFREVOCisKKzc4LUM0LUFCICAgKGhleCkJCVNoZW56aGVuIFJ1bnNpbCBUZWNobm9sb2d5IENvLixMdGQKKzc4QzRBQiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBSdW5zaWwgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJNC9GLiwgWXVodWEgQnVpbGRpbmcgQSwgWWFuZ21lbiBJbmR1c3RyaWFsIFBhcmssIAorCQkJCURha2FuIDJuZCBWaWxsYWdlLCBYaWxpIFRvd24sIE5hbnNoYW4gRGlzdHJpY3QsIAorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwNTUKKwkJCQlDSElOQQorCis3OC1DNS1FNSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworNzhDNUU1ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis3OC1DNi1CQiAgIChoZXgpCQlJbm5vdmFzaWMsIEluYy4KKzc4QzZCQiAgICAgKGJhc2UgMTYpCQlJbm5vdmFzaWMsIEluYy4KKwkJCQkzNzM3IFByaW5jZXRvbiBEci4gTkUsIFN1aXRlIDEzMAorCQkJCUFsYnVxdWVycXVlIE5NIDg0MTA3CisJCQkJVU5JVEVEIFNUQVRFUworCis3OC1DQS0wNCAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorNzhDQTA0ICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJWXJ0dGlwZWxsb250aWUgNgorCQkJCU91bHUgIDkwMjMwCisJCQkJRklOTEFORAorCis3OC1DQS0zOSAgIChoZXgpCQlBcHBsZSwgSW5jLgorNzhDQTM5ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis3OC1DRC04RSAgIChoZXgpCQlTTUMgTmV0d29ya3MgSW5jCis3OENEOEUgICAgIChiYXNlIDE2KQkJU01DIE5ldHdvcmtzIEluYworCQkJCTIwIE1hc29uCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCis3OC1EMC0wNCAgIChoZXgpCQlOZW91c3lzIFRlY2hub2xvZ3kgSW5jLgorNzhEMDA0ICAgICAoYmFzZSAxNikJCU5lb3VzeXMgVGVjaG5vbG9neSBJbmMuCisJCQkJMTNGLi0xLCBOTy4xLCBCQU9TSEVORyBSRC4sIAorCQkJCVlPTkdIRSBDSVRZIFRBSVBFSSBDT1VOVFkgIDIzNDQ0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3OC1ENi1GMCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm8gTWVjaGFuaWNzCis3OEQ2RjAgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvIE1lY2hhbmljcworCQkJCU1ldGFuIERvbmcgMzE0LCBZb3VuZ3RvbmcgR3UKKwkJCQlTdXdvbiBLeXVuZy1naSBEby4gNDQzLTc0MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis3OC1ERC0wOCAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorNzhERDA4ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgICAyMDE2MTMgCisJCQkJQ0hJTkEKKworNzgtREQtRDYgICAoaGV4KQkJYy1zY2FwZQorNzhEREQ2ICAgICAoYmFzZSAxNikJCWMtc2NhcGUKKwkJCQl3ZXN0ZXJrYWRlIDIyCisJCQkJR291ZGEgIDI4MDIgU0wKKwkJCQlORVRIRVJMQU5EUworCis3OC1ERS1FNCAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworNzhERUU0ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis3OC1FMy1CNSAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorNzhFM0I1ICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCU1haWxjb2RlIDYuMy4wNDkKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCis3OC1FNC0wMCAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorNzhFNDAwICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZQorCQkJCVNoYW5naGFpICAgMjAxNjEzIAorCQkJCUNISU5BCisKKzc4LUU3LUQxICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55Cis3OEU3RDEgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworNzgtRUMtMjIgICAoaGV4KQkJU2hhbmdoYWkgUWlodWkgVGVsZWNvbSBUZWNobm9sb2d5IENvLiwgTFRECis3OEVDMjIgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgUWlodWkgVGVsZWNvbSBUZWNobm9sb2d5IENvLiwgTFRECisJCQkJUm9vbSA1MDEsIE5vIDIgQm9ZdW4gUmQsIFB1RG9uZyBOZXcgQXJlYSwgCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKKzc4LUVGLTRDICAgKGhleCkJCVVuZXRjb252ZXJnZW5jZSBDby4sIEx0ZC4KKzc4RUY0QyAgICAgKGJhc2UgMTYpCQlVbmV0Y29udmVyZ2VuY2UgQ28uLCBMdGQuCisJCQkJMTAxLTUxMSwgRGlnaXRhbCBFbXBpcmUyLCA0ODYsIFNoaW4tZG9uZywgWW91bmd0b25nLWd1CisJCQkJU3V3b24gS3lvbmdnaS1kbyA0NDMtMzkwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzc4LUY3LUQwICAgKGhleCkJCVNpbHZlcmJyb29rIFJlc2VhcmNoCis3OEY3RDAgICAgIChiYXNlIDE2KQkJU2lsdmVyYnJvb2sgUmVzZWFyY2gKKwkJCQkzIE1vbnRhZ3VlIFN0cmVldAorCQkJCUJhbG1haW4gTmV3IFNvdXRoIFdhbGVzIDIwNDEKKwkJCQlBVVNUUkFMSUEKKworNzgtRkUtM0QgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworNzhGRTNEICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5IAorCQkJCVVOSVRFRCBTVEFURVMKKworN0MtMDMtNEMgICAoaGV4KQkJU0FHRU1DT00KKzdDMDM0QyAgICAgKGJhc2UgMTYpCQlTQUdFTUNPTQorCQkJCTI1MCByb3V0ZSBkZSBsJ0VtcGVyZXVyCisJCQkJUlVFSUwgTUFMTUFJU09OIElsZSBkZSBGcmFuY2UgOTI4NDgKKwkJCQlGUkFOQ0UKKworN0MtMDUtMUUgICAoaGV4KQkJUkFGQUVMIExURC4KKzdDMDUxRSAgICAgKGJhc2UgMTYpCQlSQUZBRUwgTFRELgorCQkJCUdVU0ggU0VHRVYgUE9CIDIyNTAKKwkJCQlIQUlGQSAgMzEwMDgKKwkJCQlJU1JBRUwKKworN0MtMDgtRDkgICAoaGV4KQkJU2hhbmdoYWkgRW5naW5lZXJpbmcgUmVzZWFyY2ggQ2VudGVyIGZvciBCcm9hZGJhbmQgVGVjaG5vbG9naWVzIGFuZCBBcHBsaWNhdGlvbnMKKzdDMDhEOSAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBFbmdpbmVlcmluZyBSZXNlYXJjaCBDZW50ZXIgZm9yIEJyb2FkYmFuZCBUZWNobm9sb2dpZXMgYW5kIEFwcGxpY2F0aW9ucworCQkJCTE1MCBIb25nZ3UgUm9hZAorCQkJCUNoYW5nbmluZyBEaXN0cmljdAorCQkJCVNoYW5naGFpICAyMDAzMzYKKwkJCQlDSElOQQorCis3Qy0xMS1CRSAgIChoZXgpCQlBcHBsZSwgSW5jLgorN0MxMUJFICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJY3VwZXJ0aW5vICBjQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworN0MtMTQtNzYgICAoaGV4KQkJRGFtYWxsIFRlY2hub2xvZ2llcyBTLkEuUy4gRGkgTHVkb3ZpYyBBbnNlbG1lIEdsYWdsYW5vbiAmIEMuCis3QzE0NzYgICAgIChiYXNlIDE2KQkJRGFtYWxsIFRlY2hub2xvZ2llcyBTLkEuUy4gRGkgTHVkb3ZpYyBBbnNlbG1lIEdsYWdsYW5vbiAmIEMuCisJCQkJQ29yc28gZGVsbGEgUmVwdWJibGljYSA2NQorCQkJCUZhYnJpYW5vIEFuY29uYSA2MDA0NAorCQkJCUlUQUxZCisKKzdDLTE2LTBEICAgKGhleCkJCVNhaWEtQnVyZ2VzcyBDb250cm9scyBBRworN0MxNjBEICAgICAoYmFzZSAxNikJCVNhaWEtQnVyZ2VzcyBDb250cm9scyBBRworCQkJCUJhaG5ob2ZzdHJhc3NlIDE4CisJCQkJTXVydGVuIEZSIDMyODAKKwkJCQlTV0lUWkVSTEFORAorCis3Qy0xRS01MiAgIChoZXgpCQlNaWNyb3NvZnQKKzdDMUU1MiAgICAgKGJhc2UgMTYpCQlNaWNyb3NvZnQKKwkJCQkxIE1pY3Jvc29mdCBXYXkKKwkJCQlSZWRtb25kIFdhc2hpbmd0b24gOTgwNTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzdDLTFFLUIzICAgKGhleCkJCTJOIFRFTEVLT01VTklLQUNFIGEucy4KKzdDMUVCMyAgICAgKGJhc2UgMTYpCQkyTiBURUxFS09NVU5JS0FDRSBhLnMuCisJCQkJTW9kcmFuc2thIDYyMQorCQkJCVByYWd1ZSBDemVjaCBSZXB1YmxpYyAxNDMwMQorCQkJCUNaRUNIIFJFUFVCTElDCisKKzdDLTIwLTY0ICAgKGhleCkJCUFsY2F0ZWwgTHVjZW50IElQRAorN0MyMDY0ICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTHVjZW50IElQRAorCQkJCTYwMCBNYXJjaCBEcml2ZQorCQkJCUthbmF0YSBPbnRhcmlvIEsySzJFNgorCQkJCUNBTkFEQQorCis3Qy0yQy1GMyAgIChoZXgpCQlTZWN1cmUgRWxlY3RyYW5zIEx0ZAorN0MyQ0YzICAgICAoYmFzZSAxNikJCVNlY3VyZSBFbGVjdHJhbnMgTHRkCisJCQkJVGhlIEVuZXJneSBJbm5vdmF0aW9uIENlbnRyZQorCQkJCUNhcGVuaHVyc3QKKwkJCQlDaGVzdGVyICBDSDEgNkVTCisJCQkJVU5JVEVEIEtJTkdET00KKworN0MtMkUtMEQgICAoaGV4KQkJQmxhY2ttYWdpYyBEZXNpZ24KKzdDMkUwRCAgICAgKGJhc2UgMTYpCQlCbGFja21hZ2ljIERlc2lnbgorCQkJCTExIEdhdGV3YXkgQ291cnQKKwkJCQlQb3J0IE1lbGJvdXJuZQorCQkJCU1lbGJvdXJuZSBWaWN0b3JpYSAzMjA3CisJCQkJQVVTVFJBTElBCisKKzdDLTJGLTgwICAgKGhleCkJCUdpZ2FzZXQgQ29tbXVuaWNhdGlvbnMgR21iSAorN0MyRjgwICAgICAoYmFzZSAxNikJCUdpZ2FzZXQgQ29tbXVuaWNhdGlvbnMgR21iSAorCQkJCVNDTSBQRSAyCisJCQkJRnJhbmtlbnN0cmFzc2UgMgorCQkJCUJvY2hvbHQgIDQ2Mzk1CisJCQkJR0VSTUFOWQorCis3Qy0zMy02RSAgIChoZXgpCQlNRUcgRWxlY3Ryb25pY3MgSW5jLgorN0MzMzZFICAgICAoYmFzZSAxNikJCU1FRyBFbGVjdHJvbmljcyBJbmMuCisJCQkJQm9nYXppY2kgVW5pdmVyc2l0ZXNpIEt1emV5IEthbXB1cworCQkJCUJVTiBUZWtub3BhcmsgS2F0OjIgTm86MzA2IEJlYmVrLUJlc2lrdGFzCisJCQkJSVNUQU5CVUwgIDM0MzQyCisJCQkJVFVSS0VZCisKKzdDLTM5LTIwICAgKGhleCkJCVNTT01BIFNFQ1VSSVRZCis3QzM5MjAgICAgIChiYXNlIDE2KQkJU1NPTUEgU0VDVVJJVFkKKwkJCQlVbml0IDcwMywgRGFlcnl1bmcgVGVjaG5vdG93biAxM3RoLCAKKwkJCQk2NjQsIEdhc2FuZG9uZywgCisJCQkJR2V1bWNoZW9uZ3UgU2VvdWwgMTUzNzU0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzdDLTNCLUQ1ICAgKGhleCkJCUltYWdvIEdyb3VwCis3QzNCRDUgICAgIChiYXNlIDE2KQkJSW1hZ28gR3JvdXAKKwkJCQlSYW1vbiBNYXJ0aSBBbHNpbmEgMi00LTYKKwkJCQlCYWRhbG9uYSBCYXJjZWxvbmEgMDg5MTEKKwkJCQlTUEFJTgorCis3Qy0zRS05RCAgIChoZXgpCQlQQVRFQ0gKKzdDM0U5RCAgICAgKGJhc2UgMTYpCQlQQVRFQ0gKKwkJCQkjMjMtMTcuIFdvbmh5b1JvLTJHYQorCQkJCVlvbmdTYW4tR3UgU2VvdWwgMTQwMTEyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzdDLTRBLTgyICAgKGhleCkJCVBvcnRzbWl0aCBMTEMKKzdDNEE4MiAgICAgKGJhc2UgMTYpCQlQb3J0c21pdGggTExDCisJCQkJODUwIEUuIEZyYW5rbGluIFJvYWQKKwkJCQlTdWl0ZSA0MDEKKwkJCQlNZXJpZGlhbiBJRCA4MzY0MgorCQkJCVVOSVRFRCBTVEFURVMKKworN0MtNEEtQTggICAoaGV4KQkJTWluZFRyZWUgV2lyZWxlc3MgUFZUIEx0ZAorN0M0QUE4ICAgICAoYmFzZSAxNikJCU1pbmRUcmVlIFdpcmVsZXNzIFBWVCBMdGQKKwkJCQlMR0YsIFBoYXNlIElJSSwgTWluZHRyZWUgV2VzdCBDYW1wdXMsIAorCQkJCUdsb2JhbCBWaWxsYWdlIENhbXB1cywgUlZDRSBQb3N0LCBNeWxhc2FuZHJhIFZpbGxhZ2UsIG9mZiBNeXNvcmUgUm9hZAorCQkJCUJhbmdhbG9yZSBLYXJuYXRha2EgNTYwIDA1OQorCQkJCUlORElBCisKKzdDLTRCLTc4ICAgKGhleCkJCVJlZCBTdW4gU3ludGhlc2lzIFB0ZSBMdGQKKzdDNEI3OCAgICAgKGJhc2UgMTYpCQlSZWQgU3VuIFN5bnRoZXNpcyBQdGUgTHRkCisJCQkJNjM5LCAjMTEtNTQ0CisJCQkJUGFzaXIgUmlzIERyaXZlICAxCisJCQkJNTEwNTM5CisJCQkJU0lOR0FQT1JFCisKKzdDLTRDLTU4ICAgKGhleCkJCVNjYWxlIENvbXB1dGluZywgSW5jLgorN0M0QzU4ICAgICAoYmFzZSAxNikJCVNjYWxlIENvbXB1dGluZywgSW5jLgorCQkJCTIxMjEgRWwgQ2FtaW5vIFJlYWwKKwkJCQlTdWl0ZSAxMDAKKwkJCQlTYW4gTWF0ZW8gVU5JVEVEIFNUQVRFUyA5NDQwMworCQkJCVVOSVRFRCBTVEFURVMKKworN0MtNEMtQTUgICAoaGV4KQkJQlNreUIgTHRkCis3QzRDQTUgICAgIChiYXNlIDE2KQkJQlNreUIgTHRkCisJCQkJMTMwIEtpbmdzIFJvYWQKKwkJCQlCcmVudHdvb2QgRXNzZXggQ00xNCA0RVEKKwkJCQlVTklURUQgS0lOR0RPTQorCis3Qy00Ri1CNSAgIChoZXgpCQlBcmNhZHlhbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCis3QzRGQjUgICAgIChiYXNlIDE2KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTRGLiwgTk8uOSwgUGFyayBBdmVudWUgSUksCisJCQkJSHNpbmNodSBTY2llbmNlIFBhcmssCisJCQkJSHNpbmNodSAsICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzdDLTU1LUU3ICAgKGhleCkJCVlTSSwgSW5jLgorN0M1NUU3ICAgICAoYmFzZSAxNikJCVlTSSwgSW5jLgorCQkJCTE3MjUgQnJhbm51bSBMYW5lCisJCQkJWWVsbG93IFNwcmluZ3MgT2hpbyA0NTM4NworCQkJCVVOSVRFRCBTVEFURVMKKworN0MtNjEtOTMgICAoaGV4KQkJSFRDIENvcnBvcmF0aW9uCis3QzYxOTMgICAgIChiYXNlIDE2KQkJSFRDIENvcnBvcmF0aW9uCisJCQkJTm8uIDIzLCBYaW5naHVhIFJkLiwgCisJCQkJVGFveXVhbiBDaXR5CisJCQkJVGFveXVhbiBDb3VudHkgIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworN0MtNkEtREIgICAoaGV4KQkJU2FmZVRvbmUgVGVjaG5vbG9neSBDby4sTHRkCis3QzZBREIgICAgIChiYXNlIDE2KQkJU2FmZVRvbmUgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJUm9vbSAzMjMsWmh1b3VKaSBQbGF6YSxOby4xNiBBbkRlIFJvYWQsRWFzdCBEaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwMTEKKwkJCQlDSElOQQorCis3Qy02Qi0zMyAgIChoZXgpCQlUZW55dSBUZWNoIENvLiBMdGQuCis3QzZCMzMgICAgIChiYXNlIDE2KQkJVGVueXUgVGVjaCBDby4gTHRkLgorCQkJCTFGLiwgTm8uMTAsIExuLiAzNiwgR2FuemhlbiAybmQgU3QuCisJCQkJRGFuc2h1aSBEaXN0CisJCQkJTmV3IFRhaXBlaSBDaXR5ICAgMjUxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis3Qy02Qi01MiAgIChoZXgpCQlUaWdhcm8gV2lyZWxlc3MKKzdDNkI1MiAgICAgKGJhc2UgMTYpCQlUaWdhcm8gV2lyZWxlc3MKKwkJCQlTaGVuIEEnYXJpIDcKKwkJCQlQTyA1MTkzCisJCQkJRXZlbiBZZWh1ZGEgIDQwNTAwCisJCQkJSVNSQUVMCisKKzdDLTZDLTM5ICAgKGhleCkJCVBJWFNZUyBTUkwKKzdDNkMzOSAgICAgKGJhc2UgMTYpCQlQSVhTWVMgU1JMCisJCQkJVklBIERFTExBIENST0NFIFJPU1NBLCAgNDIKKwkJCQlQQURPVkEgUEQgMzUxMjkKKwkJCQlJVEFMWQorCis3Qy02Qy04RiAgIChoZXgpCQlBTVMgTkVWRSBMVEQKKzdDNkM4RiAgICAgKGJhc2UgMTYpCQlBTVMgTkVWRSBMVEQKKwkJCQlCSUxMSU5HVE9OIFJPQUQKKwkJCQlCVVJOTEVZIExBTkNBU0hJUkUgQkIxMSA1VUIKKwkJCQlVTklURUQgS0lOR0RPTQorCis3Qy02RC02MiAgIChoZXgpCQlBcHBsZSwgSW5jCis3QzZENjIgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworN0MtNkYtMDYgICAoaGV4KQkJQ2F0ZXJwaWxsYXIgVHJpbWJsZSBDb250cm9sIFRlY2hub2xvZ2llcworN0M2RjA2ICAgICAoYmFzZSAxNikJCUNhdGVycGlsbGFyIFRyaW1ibGUgQ29udHJvbCBUZWNobm9sb2dpZXMKKwkJCQk1NDc1IEtlbGxlbmJ1cmdlciBSZC4KKwkJCQlEYXl0b24gT0ggNDU0MjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzdDLTc2LTczICAgKGhleCkJCUVOTUFTIEdtYkgKKzdDNzY3MyAgICAgKGJhc2UgMTYpCQlFTk1BUyBHbWJICisJCQkJSG9semtvcHBlbHdlZyAyMworCQkJCUtpZWwgU2NobGVzd2lnLUhvbHN0ZWluIDI0MjUxCisJCQkJR0VSTUFOWQorCis3Qy03Qi1FNCAgIChoZXgpCQlaJiMzOTtTRURBSSBLRU5LWVVTSE8gQ09SUE9SQVRJT04KKzdDN0JFNCAgICAgKGJhc2UgMTYpCQlaJiMzOTtTRURBSSBLRU5LWVVTSE8gQ09SUE9SQVRJT04KKwkJCQlNZWlrYWkgc2Fubm9taXlhIDJuZCBCbGRnLiAxMXRoL2ZsLgorCQkJCTc2LTIgS3lvbWFjaGkgQ2h1by1rdQorCQkJCUtvYmUgSHlvZ28gNjUwLTAwMzQKKwkJCQlKQVBBTgorCis3Qy03RC00MSAgIChoZXgpCQlKaW5tdXl1IEVsZWN0cm9uaWNzIENvLiwgTHRkLgorN0M3RDQxICAgICAoYmFzZSAxNikJCUppbm11eXUgRWxlY3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJUm9vbSAxMzIsIEJ1aWxkaW5nIDE2LCBUaWFucWlhb3dhbgorCQkJCVhpbmh1YSBOb3J0aCBSb2FkLCBUb25nemhvdSBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMTEwMQorCQkJCUNISU5BCisKKzdDLThFLUU0ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCis3QzhFRTQgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzdDLTk0LUIyICAgKGhleCkJCVBoaWxpcHMgSGVhbHRoY2FyZSBQQ0NJCis3Qzk0QjIgICAgIChiYXNlIDE2KQkJUGhpbGlwcyBIZWFsdGhjYXJlIFBDQ0kKKwkJCQkyMjcxIENvc21vcyBDdAorCQkJCUNhcmxzYmFkIENBIDkyMDExCisJCQkJVU5JVEVEIFNUQVRFUworCis3Qy1BMi05QiAgIChoZXgpCQlELlNpZ25UIEdtYkggJmFtcDsgQ28uIEtHCis3Q0EyOUIgICAgIChiYXNlIDE2KQkJRC5TaWduVCBHbWJIICZhbXA7IENvLiBLRworCQkJCU1hcmt0c3RyLiAxMAorCQkJCUtlcmtlbiAgNDc2NDcKKwkJCQlHRVJNQU5ZCisKKzdDLUE2LTFEICAgKGhleCkJCU1ITCwgTExDCis3Q0E2MUQgICAgIChiYXNlIDE2KQkJTUhMLCBMTEMKKwkJCQkxMTQwIEVhc3QgQXJxdWVzIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworN0MtQUMtQjIgICAoaGV4KQkJQm9zY2ggU29mdHdhcmUgSW5ub3ZhdGlvbnMgR21iSAorN0NBQ0IyICAgICAoYmFzZSAxNikJCUJvc2NoIFNvZnR3YXJlIElubm92YXRpb25zIEdtYkgKKwkJCQlaaWVnZWxlaSA3CisJCQkJSW1tZW5zdGFhZCBCYWRlbld1ZXJ0ZW1iZXJnIDg4MDkwCisJCQkJR0VSTUFOWQorCis3Qy1CMC0zRSAgIChoZXgpCQlPU1JBTSBBRworN0NCMDNFICAgICAoYmFzZSAxNikJCU9TUkFNIEFHCisJCQkJQmVybGluZXIgQWxsZWUgNjUKKwkJCQlBdWdzYnVyZyBCYXllcm4gODYxMzYKKwkJCQlHRVJNQU5ZCisKKzdDLUIyLTFCICAgKGhleCkJCUNpc2NvIFNQVlRHCis3Q0IyMUIgICAgIChiYXNlIDE2KQkJQ2lzY28gU1BWVEcKKwkJCQk1MDMwIFN1Z2FybG9hZiBQYXJrd2F5CisJCQkJTGF3cmVuY2V2aWxsZSBHZW9yZ2lhIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCis3Qy1CNS00MiAgIChoZXgpCQlBQ0VTIFRlY2hub2xvZ3kKKzdDQjU0MiAgICAgKGJhc2UgMTYpCQlBQ0VTIFRlY2hub2xvZ3kKKwkJCQkjOTI4LCBIeXVuZGFpIFZlbnR1cmUgVmlsbGUKKwkJCQk3MTMgU3VzZW8tZG9uZywgS2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUtNTM5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzdDLUJCLTZGICAgKGhleCkJCUNvc2NvIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorN0NCQjZGICAgICAoYmFzZSAxNikJCUNvc2NvIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCSMxMTAxLCBFTkMgRHJlYW0gdG93ZXIsIDMyNy0yNworCQkJCUdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtNzkzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzdDLUJGLUIxICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCis3Q0JGQjEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKwkJCQk2NDUwIFNlcXVlbmNlIERyaXZlCisJCQkJU2FuIERpZWdvIENBIDkyMTIxCisJCQkJVU5JVEVEIFNUQVRFUworCis3Qy1DMy1BMSAgIChoZXgpCQlBcHBsZSwgSW5jLgorN0NDM0ExICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworN0MtQzUtMzcgICAoaGV4KQkJQXBwbGUsIEluYy4KKzdDQzUzNyAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworN0MtQzgtRDcgICAoaGV4KQkJRGFtYWxpc2sKKzdDQzhENyAgICAgKGJhc2UgMTYpCQlEYW1hbGlzaworCQkJCUNvcmlvbGlzIDIgCisJCQkJQXZlbnVlIGRlIGwnRXVyb3BlCisJCQkJRUNVSVNTRVMgIDcxMjEwCisJCQkJRlJBTkNFCisKKzdDLUNCLTBEICAgKGhleCkJCUFheGVvbiBUZWNobm9sb2dpZXMgSW5jLgorN0NDQjBEICAgICAoYmFzZSAxNikJCUFheGVvbiBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTQ0NSBDYXByaWNvcm4gU3QuCisJCQkJQnJlYSBDYWxpZm9ybmlhIDkyODIxCisJCQkJVU5JVEVEIFNUQVRFUworCis3Qy1DRi1DRiAgIChoZXgpCQlTaGFuZ2hhaSBTRUFSSSBJbnRlbGxpZ2VudCBTeXN0ZW0gQ28uLCBMdGQKKzdDQ0ZDRiAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBTRUFSSSBJbnRlbGxpZ2VudCBTeXN0ZW0gQ28uLCBMdGQKKwkJCQlOby41MDUgV3VuaW5nIFJvYWQsIFB1dHVvIERpc3RyaWN0CisJCQkJU2hhbmdoYWkgIDIwMDA2MworCQkJCUNISU5BCisKKzdDLUQxLUMzICAgKGhleCkJCUFwcGxlIEluYworN0NEMUMzICAgICAoYmFzZSAxNikJCUFwcGxlIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCWN1cGVydGlubyAgY0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzdDLUQ5LUZFICAgKGhleCkJCU5ldyBDb3Ntb3MgRWxlY3RyaWMgQ28uLCBMdGQuCis3Q0Q5RkUgICAgIChiYXNlIDE2KQkJTmV3IENvc21vcyBFbGVjdHJpYyBDby4sIEx0ZC4KKwkJCQkyLTUtNCBNaXRzdXlhbmFrYQorCQkJCVlvZG9nYXdhLWt1CisJCQkJT3Nha2EgT3Nha2EtZnUgNTMyLTAwMzYKKwkJCQlKQVBBTgorCis3Qy1EQS04NCAgIChoZXgpCQlEb25nbmlhbiBOZXR3b3JrcyBJbmMuCis3Q0RBODQgICAgIChiYXNlIDE2KQkJRG9uZ25pYW4gTmV0d29ya3MgSW5jLgorCQkJCTkwIFdlbnNhbiBSb2FkLCBCdWlsZGluZyA4LUEzMDMKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwMTIKKwkJCQlDSElOQQorCis3Qy1ERC0xMSAgIChoZXgpCQlDaG9uZ3FpbmcgTUFTIFNDSSZURUNILkNvLixMdGQKKzdDREQxMSAgICAgKGJhc2UgMTYpCQlDaG9uZ3FpbmcgTUFTIFNDSSZURUNILkNvLixMdGQKKwkJCQkgNnRoIEZsb29yLCBab25lIEMyLEhpLXRlY2ggVmVudHVyZSBQYXJrLCBOby4xMDUgRXJsYW5nIFZlbnR1cmUgUm9hZAorCQkJCUppdWxvbmdwbyBEaXN0cmljdCwKKwkJCQlDaG9uZ3FpbmcgQ2l0eSAgNDAwMDM5CisJCQkJQ0hJTkEKKworN0MtREQtMjAgICAoaGV4KQkJSU9YT1MgVGVjaG5vbG9naWVzIFMuQS4KKzdDREQyMCAgICAgKGJhc2UgMTYpCQlJT1hPUyBUZWNobm9sb2dpZXMgUy5BLgorCQkJCTQgQ2hlbWluIGRlIEZvbnRlbmFpbGxlcworCQkJCUdMQU5EIFZBVUQgQ0gtMTE5NgorCQkJCVNXSVRaRVJMQU5ECisKKzdDLURELTkwICAgKGhleCkJCVNoZW56aGVuIE9nZW1yYXkgVGVjaG5vbG9neSBDby4sIEx0ZC4KKzdDREQ5MCAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBPZ2VtcmF5IFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJMyBGbG9vciwgOSBCdWlsZGluZywgTWlueGluZyBJbmR1c3RyaWFsIFpvbmUsCisJCQkJTWlua2FuZyBSb2FkLCBNaW56aGkgU3RyZWV0LCBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTMxCisJCQkJQ0hJTkEKKworN0MtRTAtNDQgICAoaGV4KQkJTkVPTiBJbmMKKzdDRTA0NCAgICAgKGJhc2UgMTYpCQlORU9OIEluYworCQkJCTUzNDAgQWlycG9ydCBCb3VsZXZhcmQKKwkJCQlCb3VsZGVyIENPIDgwMzAxCisJCQkJVU5JVEVEIFNUQVRFUworCis3Qy1FOS1EMyAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCis3Q0U5RDMgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCSAgTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAyMDE2MTMKKwkJCQlDSElOQQorCis3Qy1FQi1FQSAgIChoZXgpCQlBU0NUCis3Q0VCRUEgICAgIChiYXNlIDE2KQkJQVNDVAorCQkJCTRGLiwgTm8uNiwgV3UtUXVhbiA4dGggUmQuIFd1LUd1IEluZHVzdHJpYWwgUGFyaywKKwkJCQlOZXcgVGFpcGVpIENpdHkgIDI0OAorCQkJCVRBSVdBTiwgUFJPVklOQ0UgT0YgQ0hJTkEKKworN0MtRUQtOEQgICAoaGV4KQkJTUlDUk9TT0ZUCis3Q0VEOEQgICAgIChiYXNlIDE2KQkJTUlDUk9TT0ZUCisJCQkJT25lIE1pY3Jvc29mdCBXYXkKKwkJCQlSZWRtb25kIFdBIDk4MDUyLTYzOTkKKwkJCQlVTklURUQgU1RBVEVTCisKKzdDLUVGLTE4ICAgKGhleCkJCUNyZWF0aXZlIFByb2R1Y3QgRGVzaWduIFB0eS4gTHRkLgorN0NFRjE4ICAgICAoYmFzZSAxNikJCUNyZWF0aXZlIFByb2R1Y3QgRGVzaWduIFB0eS4gTHRkLgorCQkJCTgyIFZpY3RvcmlhIFN0cmVldAorCQkJCVNhbmRyaW5naGFtIFZpY3RvcmlhIDMxOTEKKwkJCQlBVVNUUkFMSUEKKworN0MtRUYtOEEgICAoaGV4KQkJSW5ob24gSW50ZXJuYXRpb25hbCBMdGQuCis3Q0VGOEEgICAgIChiYXNlIDE2KQkJSW5ob24gSW50ZXJuYXRpb25hbCBMdGQuCisJCQkJMkYsIE5vLjU1MiwgUnVpZ3VhbmcgUmQsIE5laWh1IERpc3QKKwkJCQlUYWlwZWkgVGFpd2FuIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworN0MtRjAtNUYgICAoaGV4KQkJQXBwbGUsIEluYy4KKzdDRjA1RiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworN0MtRjAtOTggICAoaGV4KQkJQmVlIEJlYW5zIFRlY2hub2xvZ2llcywgSW5jLgorN0NGMDk4ICAgICAoYmFzZSAxNikJCUJlZSBCZWFucyBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQlUQ0kgQjUKKwkJCQkyLTYtMSBTZW5nZW4KKwkJCQlUc3VrdWJhIENpdHkgSWJhcmFraSAzMDUtMDA0NworCQkJCUpBUEFOCisKKzdDLUYwLUJBICAgKGhleCkJCUxpbmt3ZWxsIFRlbGVzeXN0ZW1zIFB2dCBMdGQKKzdDRjBCQSAgICAgKGJhc2UgMTYpCQlMaW5rd2VsbCBUZWxlc3lzdGVtcyBQdnQgTHRkCisJCQkJMS0xMS0yNTIvMS9BLCBHb3dyYSBLbGFzc2ljCisJCQkJQmVndW1wZXQKKwkJCQlIeWRlcmFiYWQgQW5kaHJhIFByYWRlc2ggNTAwMDE2CisJCQkJSU5ESUEKKworN0MtRjQtMjkgICAoaGV4KQkJTlVVTyBJbmMuIAorN0NGNDI5ICAgICAoYmFzZSAxNikJCU5VVU8gSW5jLiAKKwkJCQlDIGJsb2NrLCAxOCBTaWh5dWFuIFN0LiBKaG9uZ2poZW5nIERpc3RyaWN0LCAKKwkJCQlUYWlwZWkgIDEwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworN0MtRkUtMjggICAoaGV4KQkJU2FsdXRyb24gSW5jLgorN0NGRTI4ICAgICAoYmFzZSAxNikJCVNhbHV0cm9uIEluYy4KKwkJCQk0MDk3OSBFbmN5Y2xvcGVkaWEgQ2lyY2xlCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworODAtMDAtMEIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis4MDAwMEIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis4MC0wMC0xMCAgIChoZXgpCQlBVFQgQkVMTCBMQUJPUkFUT1JJRVMKKzgwMDAxMCAgICAgKGJhc2UgMTYpCQlBVFQgQkVMTCBMQUJPUkFUT1JJRVMKKwkJCQkxMTAwIEVBU1QgV0FSUkVOVklMTEUgUk9BRAorCQkJCU5BUEVSVklMTEUgSUwgNjA1NjYKKwkJCQlVTklURUQgU1RBVEVTCisKKzgwLTBBLTA2ICAgKGhleCkJCUNPTVRFQyBjby4sbHRkCis4MDBBMDYgICAgIChiYXNlIDE2KQkJQ09NVEVDIGNvLixsdGQKKwkJCQk2MCBzaGltb2lzaGlkYSxhemFidS1jaG8sCisJCQkJTWl5b3NoaS1zaGkgQWljaGkta2VuIDQ3MC0wMjA2CisJCQkJSkFQQU4KKworODAtMTQtNDAgICAoaGV4KQkJU3VubGl0IFN5c3RlbSBUZWNobm9sb2d5IENvcnAKKzgwMTQ0MCAgICAgKGJhc2UgMTYpCQlTdW5saXQgU3lzdGVtIFRlY2hub2xvZ3kgQ29ycAorCQkJCThGLCBOby4xOSxMYW5lIDEyMCwgU2VjMSwgTmVpaHUgUmQuCisJCQkJVGFwaWVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzgwLTE2LUI3ICAgKGhleCkJCUJydW5lbCBVbml2ZXJzaXR5Cis4MDE2QjcgICAgIChiYXNlIDE2KQkJQnJ1bmVsIFVuaXZlcnNpdHkKKwkJCQlTY2hvb2wgb2YgSVMsIENvbXB1dGluZyAmYW1wOyBNYXRocworCQkJCUtpbmdzdG9uIExhbmUKKwkJCQlVeGJyaWRnZSBNaWRkbGVzZXggVUI4IDNQSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzgwLTE3LTdEICAgKGhleCkJCU5vcnRlbCBOZXR3b3JrcworODAxNzdEICAgICAoYmFzZSAxNikJCU5vcnRlbCBOZXR3b3JrcworCQkJCUNBUlJFVEVSQSBCQVNFIEFFUkVBICMgNTg1MAorCQkJCVphcG9wYW4gSmFsaXNjbyA0NDEzMAorCQkJCU1FWElDTworCis4MC0xOC1BNyAgIChoZXgpCQlTYW1zdW5nIEVsZXRyb25pY3MgQ28uLCBMdGQKKzgwMThBNyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZXRyb25pY3MgQ28uLCBMdGQKKwkJCQk0MTYsIE1hZXRhbiAzZG9uZywgWWVvbmd0b25nLUd1CisJCQkJU3V3b24gR3llb25nZ2ktRG8gNDQzNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzgwLTFGLTAyICAgKGhleCkJCUVkaW1heCBUZWNobm9sb2d5IENvLiBMdGQuCis4MDFGMDIgICAgIChiYXNlIDE2KQkJRWRpbWF4IFRlY2hub2xvZ3kgQ28uIEx0ZC4KKwkJCQlOby4gMywgV3UtQ2h1YW4gM3JkIFJvYWQsIFd1LUt1IEluZHVzdHJpYWwgUGFyaywKKwkJCQlUYWlwZWkgSHNpZW4gIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworODAtMjAtQUYgICAoaGV4KQkJVHJhZGUgRklERVMsIGEucy4KKzgwMjBBRiAgICAgKGJhc2UgMTYpCQlUcmFkZSBGSURFUywgYS5zLgorCQkJCURvcm55Y2ggNTcKKwkJCQlCcm5vICA2MTcwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzgwLTIyLTc1ICAgKGhleCkJCUJlaWppbmcgQmVueSBXYXZlIFRlY2hub2xvZ3kgQ28gTHRkCis4MDIyNzUgICAgIChiYXNlIDE2KQkJQmVpamluZyBCZW55IFdhdmUgVGVjaG5vbG9neSBDbyBMdGQKKwkJCQlOby41NSwgSmlhY2h1YW5nIFJvYWQKKwkJCQlUYWlodSBUb3duCisJCQkJVG9uZ3pob3UgRGlzdHJpY3QgQmVpamluZyAxMDExMTEKKwkJCQlDSElOQQorCis4MC0yQS1GQSAgIChoZXgpCQlHZXJtYW5lZXJzIEdtYkgKKzgwMkFGQSAgICAgKGJhc2UgMTYpCQlHZXJtYW5lZXJzIEdtYkgKKwkJCQlEci4tS3VydC1TY2h1bWFjaGVyLVJpbmcgMworCQkJCVdldHRzdGV0dGVuIEJheWVybiA4NTEzOQorCQkJCUdFUk1BTlkKKworODAtMkQtRTEgICAoaGV4KQkJU29sYXJicmlkZ2UgVGVjaG5vbG9naWVzCis4MDJERTEgICAgIChiYXNlIDE2KQkJU29sYXJicmlkZ2UgVGVjaG5vbG9naWVzCisJCQkJOTIyOSBXYXRlcmZvcmQgQ2VudHJlIEJsdmQKKwkJCQlCdWlsZGluZyBDLCBTdWl0ZSAxMTAKKwkJCQlBdXN0aW4gVFggNzg3NTgKKwkJCQlVTklURUQgU1RBVEVTCisKKzgwLTJFLTE0ICAgKGhleCkJCWF6ZXRpIE5ldHdvcmtzIEFHCis4MDJFMTQgICAgIChiYXNlIDE2KQkJYXpldGkgTmV0d29ya3MgQUcKKwkJCQlBbSBCcmFtYnVzY2ggMWEKKwkJCQlMdWVuZW4gTlJXIDQ0NTM2CisJCQkJR0VSTUFOWQorCis4MC0zNC01NyAgIChoZXgpCQlPVCBTeXN0ZW1zIExpbWl0ZWQKKzgwMzQ1NyAgICAgKGJhc2UgMTYpCQlPVCBTeXN0ZW1zIExpbWl0ZWQKKwkJCQlVbml0IDEwMjMsIDEwL0YuLCBMYW5kbWFyayBOb3J0aCwKKwkJCQlTaGV1bmcgU2h1aSwgTi4gVC4gIAorCQkJCUhPTkcgS09ORworCis4MC0zOC1GRCAgIChoZXgpCQlMZWFwRnJvZyBFbnRlcnByaXNlcywgSW5jLgorODAzOEZEICAgICAoYmFzZSAxNikJCUxlYXBGcm9nIEVudGVycHJpc2VzLCBJbmMuCisJCQkJNjQwMSBIb2xpcyBTdHJlZXQKKwkJCQlFbWVyeXZpbGxlIENBIDk0NTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis4MC0zOS1FNSAgIChoZXgpCQlQQVRMSVRFIENPUlBPUkFUSU9OCis4MDM5RTUgICAgIChiYXNlIDE2KQkJUEFUTElURSBDT1JQT1JBVElPTgorCQkJCTE5LTIKKwkJCQlURUNITk9QQVJLCisJCQkJU0FOREEgSFlPVUdPS0VOIDY2OS0xMzM5CisJCQkJSkFQQU4KKworODAtM0ItOUEgICAoaGV4KQkJZ2hlLWNlcyBlbGVjdHJvbmljIGFnCis4MDNCOUEgICAgIChiYXNlIDE2KQkJZ2hlLWNlcyBlbGVjdHJvbmljIGFnCisJCQkJSG9lbWVsc3RyYXNzZSAxNworCQkJCVdhbGQgWkggODYzNgorCQkJCVNXSVRaRVJMQU5ECisKKzgwLTNGLTVEICAgKGhleCkJCVdpbnN0YXJzIFRlY2hub2xvZ3kgTHRkCis4MDNGNUQgICAgIChiYXNlIDE2KQkJV2luc3RhcnMgVGVjaG5vbG9neSBMdGQKKwkJCQlCbG9jazQsVGFpc29uZyBJbmR1c3RyaWFsIFBhcmssIERhTGFuZyBTdHJlZXQsIExvbmdIdWEgVG93biAsIEJhbydhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDkKKwkJCQlDSElOQQorCis4MC00Mi03QyAgIChoZXgpCQlBZG9sZiBUZWRzZW4gR21iSCAmIENvLiBLRworODA0MjdDICAgICAoYmFzZSAxNikJCUFkb2xmIFRlZHNlbiBHbWJIICYgQ28uIEtHCisJCQkJT3R0by1IYWhuLVN0ci4gMTMtMTUKKwkJCQlUcml0dGF1IFNjaGxlc3dpZy1Ib2xzdGVpbiBELTIyOTQ2CisJCQkJR0VSTUFOWQorCis4MC00Ny0zMSAgIChoZXgpCQlQYWNrZXQgRGVzaWduLCBJbmMuCis4MDQ3MzEgICAgIChiYXNlIDE2KQkJUGFja2V0IERlc2lnbiwgSW5jLgorCQkJCTI0NTUgQXVndXN0aW5lIERyaXZlCisJCQkJU3VpdGUgMTAwCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzgwLTQ5LTcxICAgKGhleCkJCUFwcGxlIEluYworODA0OTcxICAgICAoYmFzZSAxNikJCUFwcGxlIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyAgQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzgwLTRGLTU4ICAgKGhleCkJCVRoaW5rRWNvLCBJbmMuCis4MDRGNTggICAgIChiYXNlIDE2KQkJVGhpbmtFY28sIEluYy4KKwkJCQkzMDMgRmlmdGggQXZlbnVlCisJCQkJMTgwMQorCQkJCU5ldyBZb3JrIE5ZIDEwMDE2CisJCQkJVU5JVEVEIFNUQVRFUworCis4MC01MC0xQiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorODA1MDFCICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTkwCisJCQkJRklOTEFORAorCis4MC01OC1DNSAgIChoZXgpCQlOb3ZhVGVjIEtvbW11bmlrYXRpb25zdGVjaG5payBHbWJICis4MDU4QzUgICAgIChiYXNlIDE2KQkJTm92YVRlYyBLb21tdW5pa2F0aW9uc3RlY2huaWsgR21iSAorCQkJCVRlY2hub2xvZ2llcGFyayA5CisJCQkJNHRoIEZsb29yCisJCQkJUGFkZXJib3JuIE5SVyAzMzEwMAorCQkJCUdFUk1BTlkKKworODAtNjAtMDcgICAoaGV4KQkJUklNCis4MDYwMDcgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgNVI5CisJCQkJQ0FOQURBCisKKzgwLTY0LTU5ICAgKGhleCkJCU5pbWJ1cyBJbmMuCis4MDY0NTkgICAgIChiYXNlIDE2KQkJTmltYnVzIEluYy4KKwkJCQkxMzU5IEd3YW5weWVvbmctZG9uZywgWXVzZW9uZy1ndQorCQkJCVN1aXRlIDYxOSBIYW5zaGluIFMgbWVjYQorCQkJCURhZWplb24gIDMwNS01MDkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworODAtNjUtRTkgICAoaGV4KQkJQmVuUSBDb3Jwb3JhdGlvbgorODA2NUU5ICAgICAoYmFzZSAxNikJCUJlblEgQ29ycG9yYXRpb24KKwkJCQkxNiBKaWh1IFJvYWQsIE5laWh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzgwLTY2LTI5ICAgKGhleCkJCVByZXNjb3BlIFRlY2hub2xvZ2llcyBDTy4sTFRELgorODA2NjI5ICAgICAoYmFzZSAxNikJCVByZXNjb3BlIFRlY2hub2xvZ2llcyBDTy4sTFRELgorCQkJCTEyRi0xLE5vLjE5MixTZWMgMixDaHVuZyBIc2luIFJvYWQKKwkJCQlIc2luIFRpZW4gQ2l0eSBUYWlwZWkgQ291bnR5IDIzMTQ2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4MC02Qy1CQyAgIChoZXgpCQlORVQgTmV3IEVsZWN0cm9uaWMgVGVjaG5vbG9neSBHbWJICis4MDZDQkMgICAgIChiYXNlIDE2KQkJTkVUIE5ldyBFbGVjdHJvbmljIFRlY2hub2xvZ3kgR21iSAorCQkJCUxlcmNoZW5iZXJnIDcKKwkJCQlGaW5uaW5nIEJhdmFyaWFuIDg2OTIzCisJCQkJR0VSTUFOWQorCis4MC03MS0xRiAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCis4MDcxMUYgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmUKKwkJCQlTdW5ueXZhbGUgIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCis4MC03Ni05MyAgIChoZXgpCQlOZXdhZyBTQQorODA3NjkzICAgICAoYmFzZSAxNikJCU5ld2FnIFNBCisJCQkJV3lzcGlhbnNraWVnbyAzCisJCQkJTm93eSBTYWN6IHdvai4gTWFsb3BvbHNraWUgMzMtMzAwCisJCQkJUE9MQU5ECisKKzgwLTdBLTdGICAgKGhleCkJCUFCQiBHZW53YXkgWGlhbWVuIEVsZWN0cmljYWwgRXF1aXBtZW50IENPLiwgTFRECis4MDdBN0YgICAgIChiYXNlIDE2KQkJQUJCIEdlbndheSBYaWFtZW4gRWxlY3RyaWNhbCBFcXVpcG1lbnQgQ08uLCBMVEQKKwkJCQk3RixOby4yMyBXYW5naGFpIFJvYWQsU29mdHdhcmUgUGFyayAyLCBMdmxpbmcgUm9hZCwgCisJCQkJWGlhbWVuIEZ1amlhbiBQcm92aW5jZSAzNjEwMDgKKwkJCQlDSElOQQorCis4MC03RC0xQiAgIChoZXgpCQlOZW9zeXN0ZW0gQ28uIEx0ZC4KKzgwN0QxQiAgICAgKGJhc2UgMTYpCQlOZW9zeXN0ZW0gQ28uIEx0ZC4KKwkJCQk0LTE5LTEyIFRha2FvCisJCQkJRGF6YWlmdS1zaGkgRnVrdW9rYSA4MTgtMDEyMgorCQkJCUpBUEFOCisKKzgwLTdELUUzICAgKGhleCkJCUNob25ncWluZyBTaWNodWFuIEluc3RydW1lbnQgTWljcm9jaXJjdWl0IENvLkxURC4KKzgwN0RFMyAgICAgKGJhc2UgMTYpCQlDaG9uZ3FpbmcgU2ljaHVhbiBJbnN0cnVtZW50IE1pY3JvY2lyY3VpdCBDby5MVEQuCisJCQkJSmluaHVhIFJvYWQgTm8uMzA5LCBCZWliZWksCisJCQkJQ2hvbmdxaW5nICA0MDA3MDAKKwkJCQlDSElOQQorCis4MC04MS1BNSAgIChoZXgpCQlUT05HUUlORyBDT01NVU5JQ0FUSU9OIEVRVUlQTUVOVCAoU0hFTlpIRU4pIENvLixMdGQKKzgwODFBNSAgICAgKGJhc2UgMTYpCQlUT05HUUlORyBDT01NVU5JQ0FUSU9OIEVRVUlQTUVOVCAoU0hFTlpIRU4pIENvLixMdGQKKwkJCQlUb25ncWluZyBJbmR1c3RyeSBQYXJrLGppdXdlaSx4aXhpYW5nIFRvd24sQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyNgorCQkJCUNISU5BCisKKzgwLTg2LTk4ICAgKGhleCkJCU5ldHJvbmljcyBUZWNobm9sb2dpZXMgSW5jLgorODA4Njk4ICAgICAoYmFzZSAxNikJCU5ldHJvbmljcyBUZWNobm9sb2dpZXMgSW5jLgorCQkJCTYwMC0xNSBBbGxzdGF0ZSBQYXJrd2F5CisJCQkJTWFya2hhbSBPbnRhcmlvIEwzUiA1QjQKKwkJCQlDQU5BREEKKworODAtOTEtMkEgICAoaGV4KQkJTGloIFJvbmcgZWxlY3Ryb25pYyBFbnRlcnByaXNlIENvLiwgTHRkLgorODA5MTJBICAgICAoYmFzZSAxNikJCUxpaCBSb25nIGVsZWN0cm9uaWMgRW50ZXJwcmlzZSBDby4sIEx0ZC4KKwkJCQkyRiwgTm8uIDIsIExhbmUgMzg3LCBIc2luIFNodSBSb2FkCisJCQkJSHNpbiBDaHVhbmcgVGFpcGVpIDI0MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworODAtOTEtQzAgICAoaGV4KQkJQWdpbGVNZXNoLCBJbmMuCis4MDkxQzAgICAgIChiYXNlIDE2KQkJQWdpbGVNZXNoLCBJbmMuCisJCQkJMTY3MSBJbnRlcm5hdGlvbmFsIFBrd3kKKwkJCQlTdWl0ZSAxMTMKKwkJCQlSaWNoYXJkc29uIFRYIDc1MDgxCisJCQkJVU5JVEVEIFNUQVRFUworCis4MC05My05MyAgIChoZXgpCQlYYXB0IEdtYkgKKzgwOTM5MyAgICAgKGJhc2UgMTYpCQlYYXB0IEdtYkgKKwkJCQlOZWlkZW5idXJnZXIgU3RyLiAxMAorCQkJCUdlbHNlbmtpcmNoZW4gTlJXIDQ1ODk3CisJCQkJR0VSTUFOWQorCis4MC05NC02QyAgIChoZXgpCQlUT0tZTyBSQURBUiBDT1JQT1JBVElPTgorODA5NDZDICAgICAoYmFzZSAxNikJCVRPS1lPIFJBREFSIENPUlBPUkFUSU9OCisJCQkJMTUtNyBOaXNoaWt1Ym8tY2hvCisJCQkJSG9kb2dheWEta3UsIFlva29oYW1hLXNoaSBLYW5hZ2F3YSAyNDAtMDAyMgorCQkJCUpBUEFOCisKKzgwLTk2LUIxICAgKGhleCkJCU1vdG9yb2xhIE1vYmlsaXR5Cis4MDk2QjEgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHkKKwkJCQk2MDAgTm9ydGggVS5TLiBIaWdod2F5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCis4MC05Ny0xQiAgIChoZXgpCQlBbHRlbmVyZ3kgUG93ZXIgU3lzdGVtLEluYy4KKzgwOTcxQiAgICAgKGJhc2UgMTYpCQlBbHRlbmVyZ3kgUG93ZXIgU3lzdGVtLEluYy4KKwkJCQlOby4xIFlhdGFpIFJvYWQsIAorCQkJCUppYXhpbmcgQ2l0eSwgICBaaGVqaWFuZyBQcm92aW5jZSwgMzE0MDUwCisJCQkJQ0hJTkEKKworODAtOUItMjAgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis4MDlCMjAgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis4MC1BMS1ENyAgIChoZXgpCQlTaGFuZ2hhaSBEYXJlR2xvYmFsIFRlY2hub2xvZ2llcyBDby4sTHRkIAorODBBMUQ3ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIERhcmVHbG9iYWwgVGVjaG5vbG9naWVzIENvLixMdGQgCisJCQkJMjJGLEluZm8gVGVjaCBCdWlsZGluZyxOby4xNTU1LEtvbmdqaWFuZyBSZC4KKwkJCQlTaGFuZ2hhaSAgMjAwMDkyCisJCQkJQ0hJTkEKKworODAtQjItODkgICAoaGV4KQkJRm9yd29ybGQgRWxlY3Ryb25pY3MgTHRkLgorODBCMjg5ICAgICAoYmFzZSAxNikJCUZvcndvcmxkIEVsZWN0cm9uaWNzIEx0ZC4KKwkJCQlOby4xNiBLZXl1YW4gMm5kIFJkLiwgU2l0dW4gRGlzdHJpY3QKKwkJCQlUYWljaHVuZyBDaXR5ICA4ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzgwLUIzLTJBICAgKGhleCkJCUFsc3RvbSBHcmlkCis4MEIzMkEgICAgIChiYXNlIDE2KQkJQWxzdG9tIEdyaWQKKwkJCQlTdCBMZW9uYXJkJ3MgQXZlCisJCQkJU3RhZmZvcmQgIFN0YWZmb3Jkc2hpcmUgU1QxNyA0TFgKKwkJCQlVTklURUQgS0lOR0RPTQorCis4MC1CNi04NiAgIChoZXgpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCis4MEI2ODYgICAgIChiYXNlIDE2KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ0RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworODAtQkEtQUMgICAoaGV4KQkJVGVsZUFkYXB0IEx0ZAorODBCQUFDICAgICAoYmFzZSAxNikJCVRlbGVBZGFwdCBMdGQKKwkJCQlBeGlzIDUKKwkJCQlSaG9kZXMgV2F5CisJCQkJV2F0Zm9yZCBIZXJ0Zm9yZHNoaXJlIFdEMjQ0WVcKKwkJCQlVTklURUQgS0lOR0RPTQorCis4MC1DMS02RSAgIChoZXgpCQlIZXdsZXR0IFBhY2thcmQKKzgwQzE2RSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0IFBhY2thcmQKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworODAtQzYtM0YgICAoaGV4KQkJUmVtZWMgQnJvYWRiYW5kIFdpcmVsZXNzICwgTExDCis4MEM2M0YgICAgIChiYXNlIDE2KQkJUmVtZWMgQnJvYWRiYW5kIFdpcmVsZXNzICwgTExDCisJCQkJMTcwMzQgQ2FtaW5vIFNhbiBCZXJuYXJkbworCQkJCVNhbiBEaWVnbyBDQSA5MjEyNworCQkJCVVOSVRFRCBTVEFURVMKKworODAtQzYtQUIgICAoaGV4KQkJVGVjaG5pY29sb3IgVVNBIEluYy4KKzgwQzZBQiAgICAgKGJhc2UgMTYpCQlUZWNobmljb2xvciBVU0EgSW5jLgorCQkJCTEwMSBXZXN0IDEwM3JkIFN0cmVldAorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI5MAorCQkJCVVOSVRFRCBTVEFURVMKKworODAtQzYtQ0EgICAoaGV4KQkJRW5kaWFuIHMuci5sLgorODBDNkNBICAgICAoYmFzZSAxNikJCUVuZGlhbiBzLnIubC4KKwkJCQlQaWxsaG9mIDQ3CisJCQkJRnJhbmdhcnRvIEJvbHphbm8gMzkwMTAKKwkJCQlJVEFMWQorCis4MC1DOC02MiAgIChoZXgpCQlPcGVucGVhaywgSW5jCis4MEM4NjIgICAgIChiYXNlIDE2KQkJT3BlbnBlYWssIEluYworCQkJCTE3NTAgQ2xpbnQgTW9vcmUgUmQKKwkJCQlCb2NhIFJhdG9uIEZsb3JpZGEgMzM0ODcKKwkJCQlVTklURUQgU1RBVEVTCisKKzgwLUNFLUIxICAgKGhleCkJCVRoZWlzc2VuIFRyYWluaW5nIFN5c3RlbXMgR21iSAorODBDRUIxICAgICAoYmFzZSAxNikJCVRoZWlzc2VuIFRyYWluaW5nIFN5c3RlbXMgR21iSAorCQkJCVNjaHVjaGFyZHN0cmFzc2UgMworCQkJCUR1ZXNzZWxkb3JmIE5SVyA0MDU5NQorCQkJCUdFUk1BTlkKKworODAtRDAtMTkgICAoaGV4KQkJRW1iZWQsIEluYworODBEMDE5ICAgICAoYmFzZSAxNikJCUVtYmVkLCBJbmMKKwkJCQk0MTAgR3JlYXQgUm9hZAorCQkJCUxpdHRsZXRvbiBNQSAwMTQ2MAorCQkJCVVOSVRFRCBTVEFURVMKKworODAtRDEtOEIgICAoaGV4KQkJSGFuZ3pob3UgSSdjb252ZXJnZSBUZWNobm9sb2d5IENvLixMdGQKKzgwRDE4QiAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBJJ2NvbnZlcmdlIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCU5vLjYxOCBYaXhpIFJvYWQsCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDEyCisJCQkJQ0hJTkEKKworODAtREItMzEgICAoaGV4KQkJUG93ZXIgUXVvdGllbnQgSW50ZXJuYXRpb25hbCBDby4sIEx0ZC4KKzgwREIzMSAgICAgKGJhc2UgMTYpCQlQb3dlciBRdW90aWVudCBJbnRlcm5hdGlvbmFsIENvLiwgTHRkLgorCQkJCThGLiwgTm8uIDQ5LCBTZWMuIDQsIEpob25neWFuZyBSZC4sIFR1IENoZW5nIERpc3QuLAorCQkJCU5ldyBUYWlwZWkgQ2l0eSAgMjM2NzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzgwLUVFLTczICAgKGhleCkJCVNodXR0bGUgSW5jLgorODBFRTczICAgICAoYmFzZSAxNikJCVNodXR0bGUgSW5jLgorCQkJCU5vLiAzMCBMYW5lIDc2LCBSZWkgS3VhbmcgUmQKKwkJCQlUYWlwZWkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworODAtRjUtOTMgICAoaGV4KQkJSVJDTyBTaXN0ZW1hcyBkZSBUZWxlY29tdW5pY2FjafNuIFMuQS4KKzgwRjU5MyAgICAgKGJhc2UgMTYpCQlJUkNPIFNpc3RlbWFzIGRlIFRlbGVjb211bmljYWNp824gUy5BLgorCQkJCVZpYSBTZXJnaWEgOTgKKwkJCQlNYXRhcvMgQmFyY2Vsb25hIDA4MzAyCisJCQkJU1BBSU4KKworODAtRjYtMkUgICAoaGV4KQkJSGFuZ3pob3UgSDNDIFRlY2hub2xvZ2llcyBDby4sIExpbWl0ZWQKKzgwRjYyRSAgICAgKGJhc2UgMTYpCQlIYW5nemhvdSBIM0MgVGVjaG5vbG9naWVzIENvLiwgTGltaXRlZAorCQkJCTMxMCBMaXVoZSBSb2FkLCBaaGlqaWFuZyBTY2llbmNlIFBhcmsKKwkJCQlIYW5nemhvdSBaaGVqaWFuZywgUC5SLkNoaW5hIDMxMDA1MworCQkJCUNISU5BCisKKzgwLUZCLTA2ICAgKGhleCkJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorODBGQjA2ICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorCQkJCUIxLTcsSHVhd2VpIEluZHVzdHJpYWwgQmFzZSxCYW50aWFuLExvbmdnYW5nCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODEyOQorCQkJCUNISU5BCisKKzgwLUZGLUE4ICAgKGhleCkJCVVOSURJUworODBGRkE4ICAgICAoYmFzZSAxNikJCVVOSURJUworCQkJCTQgZmxvb3JzKDQwMSksIDE0NC00LCBHdW1pLWRvbmcKKwkJCQlCdW5kYW5nLWd1CisJCQkJU3VuZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjMtODEwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzg0LTAwLUQyICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCis4NDAwRDIgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlOeWEgVmF0dGVudG9ybmV0CisJCQkJTHVuZCBTRSAyMjE4OAorCQkJCVNXRURFTgorCis4NC0xOC04OCAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCis4NDE4ODggICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkgCisJCQkJVU5JVEVEIFNUQVRFUworCis4NC0xQi01RSAgIChoZXgpCQlORVRHRUFSCis4NDFCNUUgICAgIChiYXNlIDE2KQkJTkVUR0VBUgorCQkJCTM1MCBFQVNUIFBMVU1FUklBIERSSVZFCisJCQkJU0FOIEpPU0UgQ0FMSUZPUk5JQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworODQtMjEtNDEgICAoaGV4KQkJU2hlbnpoZW4gR2lud2F2ZSBUZWNobm9sb2dpZXMgTHRkLgorODQyMTQxICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEdpbndhdmUgVGVjaG5vbG9naWVzIEx0ZC4KKwkJCQk0L0YsUjItQSxIaWdoLVRlY2ggSW5kdXN0cmlhbCBQYXJrCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzg0LTI0LThEICAgKGhleCkJCU1vdG9yb2xhIFNvbHV0aW9ucyBJbmMKKzg0MjQ4RCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBTb2x1dGlvbnMgSW5jCisJCQkJT25lIE1vdG9yb2xhIFBsYXphCisJCQkJSG9sdHN2aWxsZSBOWSAxMTc0MgorCQkJCVVOSVRFRCBTVEFURVMKKworODQtMjUtREIgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCis4NDI1REIgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzg0LTI3LUNFICAgKGhleCkJCUNvcnBvcmF0aW9uIG9mIHRoZSBQcmVzaWRpbmcgQmlzaG9wIG9mIFRoZSBDaHVyY2ggb2YgSmVzdXMgQ2hyaXN0IG9mIExhdHRlci1kYXkgU2FpbnRzCis4NDI3Q0UgICAgIChiYXNlIDE2KQkJQ29ycG9yYXRpb24gb2YgdGhlIFByZXNpZGluZyBCaXNob3Agb2YgVGhlIENodXJjaCBvZiBKZXN1cyBDaHJpc3Qgb2YgTGF0dGVyLWRheSBTYWludHMKKwkJCQlBdWRpb3Zpc3VhbCBFbmdpbmVlcmluZyAtIDJMTAorCQkJCTUwIEVhc3QgTm9ydGggVGVtcGxlCisJCQkJU2FsdCBMYWtlIENpdHkgVVQgODQxNTAKKwkJCQlVTklURUQgU1RBVEVTCisKKzg0LTI5LTE0ICAgKGhleCkJCUVNUE9SSUEgVEVMRUNPTSBQcm9kdWt0aW9ucy0gdW5kIFZlcnRyaWVic2dlc21iSCAmIENvIEtHCis4NDI5MTQgICAgIChiYXNlIDE2KQkJRU1QT1JJQSBURUxFQ09NIFByb2R1a3Rpb25zLSB1bmQgVmVydHJpZWJzZ2VzbWJIICYgQ28gS0cKKwkJCQlJbmR1c3RyaWV6ZWlsZSAzNiwgCisJCQkJTGlueiAgNDAyMAorCQkJCUFVU1RSSUEKKworODQtMjktOTkgICAoaGV4KQkJQXBwbGUgSW5jCis4NDI5OTkgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworODQtMkItMkIgICAoaGV4KQkJRGVsbCBJbmMuCis4NDJCMkIgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMuCisJCQkJT25lIERlbGwgV2F5LCBNUyBSUjUtNDUKKwkJCQlSb3VuZCBSb2NrICBUZXhhcyA3ODY4MgorCQkJCVVOSVRFRCBTVEFURVMKKworODQtMkItNTAgICAoaGV4KQkJSHVyaWEgQ28uLEx0ZC4KKzg0MkI1MCAgICAgKGJhc2UgMTYpCQlIdXJpYSBDby4sTHRkLgorCQkJCSMxOTAtMjggQ2h1bmdjaHVuLTJEb25nCisJCQkJQnVweW91bmctR3UKKwkJCQlJbmNoZW9uICA0MDMtMDMyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzg0LTMwLUU1ICAgKGhleCkJCVNreUhhd2tlIFRlY2hub2xvZ2llcywgTExDCis4NDMwRTUgICAgIChiYXNlIDE2KQkJU2t5SGF3a2UgVGVjaG5vbG9naWVzLCBMTEMKKwkJCQkyNzQgQ29tbWVyY2UgUGFyayBEciwgU3RlIE0KKwkJCQlSaWRnZWxhbmQgTVMgMzkxNTcKKwkJCQlVTklURUQgU1RBVEVTCisKKzg0LTM2LTExICAgKGhleCkJCWh5dW5nc2V1bCBwdWJsaXNoaW5nIG5ldHdvcmtzCis4NDM2MTEgICAgIChiYXNlIDE2KQkJaHl1bmdzZXVsIHB1Ymxpc2hpbmcgbmV0d29ya3MKKwkJCQk1MjYtNCwgcGFqdSBib29rY2l0eSwgbXVuYmFsLWxpLCBneW9oYS1ldXAKKwkJCQlwYWp1LXNpIEd5ZW9uZ2dpLWRvIDQxMy04MzIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworODQtM0EtNEIgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis4NDNBNEIgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis4NC0zRi00RSAgIChoZXgpCQlUcmktVGVjaCBNYW51ZmFjdHVyaW5nLCBJbmMuCis4NDNGNEUgICAgIChiYXNlIDE2KQkJVHJpLVRlY2ggTWFudWZhY3R1cmluZywgSW5jLgorCQkJCTMzMyBUdXJiaW5lIERyaXZlCisJCQkJUmFwaWQgQ2l0eSBTRCA1NzcwMworCQkJCVVOSVRFRCBTVEFURVMKKworODQtNDgtMjMgICAoaGV4KQkJV09YVEVSIFRFQ0hOT0xPR1kgQ28uIEx0ZAorODQ0ODIzICAgICAoYmFzZSAxNikJCVdPWFRFUiBURUNITk9MT0dZIENvLiBMdGQKKwkJCQkyM0YgRG91c2hpeWFuZ2d1YW5nLCBDaGVnb25nbWlhbworCQkJCUZ1dGlhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuICA1MTgwNDAKKwkJCQlDSElOQQorCis4NC00OS0xNSAgIChoZXgpCQl2QXJtb3VyIE5ldHdvcmtzLCBJbmMuCis4NDQ5MTUgICAgIChiYXNlIDE2KQkJdkFybW91ciBOZXR3b3JrcywgSW5jLgorCQkJCTQ2MzMgT0xEIElST05TSURFUyBEUgorCQkJCVN1aXRlIDMwOAorCQkJCVNBTlRBIENMQVJBIENBIDk1MDU0LTE4MDcKKwkJCQlVTklURUQgU1RBVEVTCisKKzg0LTRCLUY1ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzg0NEJGNSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZQorCQkJCSBTaGFuZ2hhaSAgMjAxNjEzIAorCQkJCUNISU5BCisKKzg0LTU3LTg3ICAgKGhleCkJCURWUiBDJkMgQ28uLCBMdGQuCis4NDU3ODcgICAgIChiYXNlIDE2KQkJRFZSIEMmQyBDby4sIEx0ZC4KKwkJCQk3RiA3MjAgTmFta3dhbmcgQ2VudGxleCBCbGRnLCBDaGVvbmdjaGVvbi1kb25nLCBCdXB5ZW9uZy1ndQorCQkJCUluY2hlb24gIDQwMy0wMzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworODQtNUQtRDcgICAoaGV4KQkJU2hlbnpoZW4gTmV0Y29tIEVsZWN0cm9uaWNzIENvLixMdGQKKzg0NURENyAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBOZXRjb20gRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCTgvRiwxIEJ1aWxkaW5nLEZpbmFuY2UgQmFzZSxOby44LEtlZmEgUm9hZCxIaWdoLVRlY2ggUGFyaworCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis4NC02QS1FRCAgIChoZXgpCQlXaXJlbGVzcyBUc3VrYW1vdG8uLGNvLkxURAorODQ2QUVEICAgICAoYmFzZSAxNikJCVdpcmVsZXNzIFRzdWthbW90by4sY28uTFRECisJCQkJMTYtMjEgMWNob21lLElzb3lhbWEKKwkJCQlTdXp1a2EgTWllLXByZWYgNTEwMDI1NgorCQkJCUpBUEFOCisKKzg0LTZFLUIxICAgKGhleCkJCVBhcmsgQXNzaXN0IExMQworODQ2RUIxICAgICAoYmFzZSAxNikJCVBhcmsgQXNzaXN0IExMQworCQkJCTExMSBXMjh0aCBTdHJlZXQKKwkJCQlTdWl0ZSAyQgorCQkJCU5ldyBZb3JrIE5ZIDEwMDAxCisJCQkJVU5JVEVEIFNUQVRFUworCis4NC03NC0yQSAgIChoZXgpCQl6dGUgY29ycG9yYXRpb24KKzg0NzQyQSAgICAgKGJhc2UgMTYpCQl6dGUgY29ycG9yYXRpb24KKwkJCQkxMi9GLixSJkQgYnVpbGRpbmcsa2VqaW5hbiBSb2FkCisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODA1NworCQkJCVVOSVRFRCBTVEFURVMKKworODQtN0UtNDAgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKKzg0N0U0MCAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworODQtOEQtODQgICAoaGV4KQkJUmFqYW50IENvcnBvcmF0aW9uCis4NDhEODQgICAgIChiYXNlIDE2KQkJUmFqYW50IENvcnBvcmF0aW9uCisJCQkJNDAwIEVhc3QgS2luZyBTdHJlZXQKKwkJCQlNYWx2ZXJuIFBBIDE5MzU1CisJCQkJVU5JVEVEIFNUQVRFUworCis4NC04Ri02OSAgIChoZXgpCQlEZWxsIEluYy4KKzg0OEY2OSAgICAgKGJhc2UgMTYpCQlEZWxsIEluYy4KKwkJCQlPbmUgRGVsbCBXYXksIE1TOlJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKKzg0LTkwLTAwICAgKGhleCkJCUFybm9sZCAmYW1wOyBSaWNodGVyIENpbmUgVGVjaG5paworODQ5MDAwICAgICAoYmFzZSAxNikJCUFybm9sZCAmYW1wOyBSaWNodGVyIENpbmUgVGVjaG5paworCQkJCVR1ZXJrZW5zdHJhc3NlIDg5CisJCQkJTXVuaWNoIEJhdmFyaWEgODA3OTkKKwkJCQlHRVJNQU5ZCisKKzg0LTk3LUI4ICAgKGhleCkJCU1lbWpldCBJbmMuCis4NDk3QjggICAgIChiYXNlIDE2KQkJTWVtamV0IEluYy4KKwkJCQkxNTkyMCBCZXJuYXJkbyBDZW50ZXIgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzg0LUE2LUM4ICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorODRBNkM4ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworODQtQTgtRTQgICAoaGV4KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorODRBOEU0ICAgICAoYmFzZSAxNikJCUh1YXdlaSBEZXZpY2UgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCis4NC1BOS05MSAgIChoZXgpCQlDeWJlciBUcmFucyBKYXBhbiBDby4sTHRkLgorODRBOTkxICAgICAoYmFzZSAxNikJCUN5YmVyIFRyYW5zIEphcGFuIENvLixMdGQuCisJCQkJNkYgQmx1ZWJlbGwgQmxkZworCQkJCTItMTUtOSBOaXNoaS1Hb3RhbmFkYQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDEtMDAzMQorCQkJCUpBUEFOCisKKzg0LUFGLTFGICAgKGhleCkJCUJlYXQgU3lzdGVtIFNlcnZpY2UgQ28sLiBMdGQuCis4NEFGMUYgICAgIChiYXNlIDE2KQkJQmVhdCBTeXN0ZW0gU2VydmljZSBDbywuIEx0ZC4KKwkJCQkxLTExLTEtMkYsIE5vZGF5YS1jaG8KKwkJCQlLaXRhLWt1CisJCQkJT2theWFtYS1jaXR5IE9rYXlhbWEgNzAwLTA4MTUKKwkJCQlKQVBBTgorCis4NC1DNy0yNyAgIChoZXgpCQlHbm9kYWwgTHRkCis4NEM3MjcgICAgIChiYXNlIDE2KQkJR25vZGFsIEx0ZAorCQkJCTE3OCAtIDE4MCBIb3R3ZWxsIFJvYWQKKwkJCQlCcmlzdG9sICBCUzggNFJQCisJCQkJVU5JVEVEIEtJTkdET00KKworODQtQzctQTkgICAoaGV4KQkJQzNQTyBTLkEuCis4NEM3QTkgICAgIChiYXNlIDE2KQkJQzNQTyBTLkEuCisJCQkJQWxlamFuZHJvIEdvaWNvZWNoZWEgNiBMb2NhbCA5CisJCQkJU2FudCBKdXN0IERlc3Zlcm4gQmFyY2Vsb25hIEVTMDg5NjAKKwkJCQlTUEFJTgorCis4NC1DOS1CMiAgIChoZXgpCQlELUxpbmsgSW50ZXJuYXRpb25hbAorODRDOUIyICAgICAoYmFzZSAxNikJCUQtTGluayBJbnRlcm5hdGlvbmFsCisJCQkJMSBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIFBhcmssICMwMy0xMiwgVGhlIFN5bmVyZ3kgCisJCQkJNjA5OTE3CisJCQkJU0lOR0FQT1JFCisKKzg0LUQzLTJBICAgKGhleCkJCUlFRUUgUDE5MDUuMQorODREMzJBICAgICAoYmFzZSAxNikJCUlFRUUgUDE5MDUuMQorCQkJCTQ0NSBIb2VzIExhbmUKKwkJCQlQTyBCb3ggMTMzMQorCQkJCVBpc2NhdGF3YXkgTmV3IEplcnNleSAwODg1NS0xMzMxIAorCQkJCVVOSVRFRCBTVEFURVMKKworODQtRDktQzggICAoaGV4KQkJVW5pcGF0dGVybiBDby4sCis4NEQ5QzggICAgIChiYXNlIDE2KQkJVW5pcGF0dGVybiBDby4sCisJCQkJMTZGLiwgTm8uMzAuLCBCZWlwaW5nIEUuIFJkLiwgWmhvbmd6aGVuZyBEaXN0LiwKKwkJCQlUYWlwZWkgIDEwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworODQtREItMkYgICAoaGV4KQkJU2llcnJhIFdpcmVsZXNzIEluYworODREQjJGICAgICAoYmFzZSAxNikJCVNpZXJyYSBXaXJlbGVzcyBJbmMKKwkJCQkxMzgxIFdpcmVsZXNzIFdheQorCQkJCVJpY2htb25kIEJDIFY2ViAzQTQKKwkJCQlDQU5BREEKKworODQtREUtM0QgICAoaGV4KQkJQ3J5c3RhbCBWaXNpb24gTHRkCis4NERFM0QgICAgIChiYXNlIDE2KQkJQ3J5c3RhbCBWaXNpb24gTHRkCisJCQkJTGlvbiBUZWNobm9sb2d5IHBhcmsKKwkJCQlTdGF0aW9uIFJvYWQgZWFzdAorCQkJCVdoaXR0bGVzZm9yZC8gQ2FtYnJpZGdlIENhbWJzIENCMjIgNFdMCisJCQkJVU5JVEVEIEtJTkdET00KKworODQtRUEtOTkgICAoaGV4KQkJVmlld29ya3MKKzg0RUE5OSAgICAgKGJhc2UgMTYpCQlWaWV3b3JrcworCQkJCTZGIFN1bnRlY2hjaXR5IDIsMzA3LTIgU2FuZ2RhZXdvbi1kb25nLCBKdW5nd29uLWd1CisJCQkJU2VvbmduYW0gIEd5ZW9uZ2dpIDQ2Mi04MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworODQtRjYtNEMgICAoaGV4KQkJQ3Jvc3MgUG9pbnQgQlYKKzg0RjY0QyAgICAgKGJhc2UgMTYpCQlDcm9zcyBQb2ludCBCVgorCQkJCVdhYW5kZXJ3ZWcgMTIKKwkJCQlFbW1lbiBEcmVudGhlIDc4MTIgSFoKKwkJCQlORVRIRVJMQU5EUworCis4OC0xMC0zNiAgIChoZXgpCQlQYW5vZGljKFNoZW5aaGVuKSBFbGVjdHJvbmljcyBMaW10ZWQKKzg4MTAzNiAgICAgKGJhc2UgMTYpCQlQYW5vZGljKFNoZW5aaGVuKSBFbGVjdHJvbmljcyBMaW10ZWQKKwkJCQlGbG9vciAxMiwgR3JlbnRlY2ggQnVpbGRpbmcsIEtlamkuQy4gUm9hZCAKKwkJCQkzcmQgSGktVGVjaCBJbmR1c3RyaWFsIFBhcmssIE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgIDUxODA1MgorCQkJCUNISU5BCisKKzg4LTE4LUFFICAgKGhleCkJCVRhbXJvbiBDby4sIEx0ZAorODgxOEFFICAgICAoYmFzZSAxNikJCVRhbXJvbiBDby4sIEx0ZAorCQkJCTEzODUsSGFzdW51bWEsIE1pbnVtYS1rdQorCQkJCVNhaXRhbWEtc2hpIFNhaXRhbWEgMzM3LTg1NTYKKwkJCQlKQVBBTgorCis4OC0yMC0xMiAgIChoZXgpCQlMTUkgVGVjaG5vbG9naWVzCis4ODIwMTIgICAgIChiYXNlIDE2KQkJTE1JIFRlY2hub2xvZ2llcworCQkJCTE2NzMgQ2xpdmVkZW4gQXZlbnVlCisJCQkJRGVsdGEgQnJpdGlzaCBDb2x1bWJpYSBWM00gNlY1CisJCQkJQ0FOQURBCisKKzg4LTIxLUUzICAgKGhleCkJCU5lYnVzZW5zLCBTLkwuCis4ODIxRTMgICAgIChiYXNlIDE2KQkJTmVidXNlbnMsIFMuTC4KKwkJCQlDLyBBZGFqYSBTL04sIEVkaWZpY2lvIE0yCisJCQkJUGFycXVlIGNpZW50aWZpY28gZGUgbGEgVVNBTAorCQkJCVZpbGxhbWF5b3IgZGUgbGEgQXJtdfFhIFNhbGFtYW5jYSAzNzE4NQorCQkJCVNQQUlOCisKKzg4LTIzLUZFICAgKGhleCkJCVRUVGVjaCBDb21wdXRlcnRlY2huaWsgQUcKKzg4MjNGRSAgICAgKGJhc2UgMTYpCQlUVFRlY2ggQ29tcHV0ZXJ0ZWNobmlrIEFHCisJCQkJU2Nob2VuYnJ1bm5lcnN0cmFzc2UgNworCQkJCVZpZW5uYSAgMTA0MAorCQkJCUFVU1RSSUEKKworODgtMjUtMkMgICAoaGV4KQkJQXJjYWR5YW4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorODgyNTJDICAgICAoYmFzZSAxNikJCUFyY2FkeWFuIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0Ri4sIE5PLjksIFBhcmsgQXZlbnVlIElJICwKKwkJCQlIc2luY2h1IFNjaWVuY2UgUGFyaworCQkJCUhzaW5jaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworODgtMzAtOEEgICAoaGV4KQkJTXVyYXRhIE1hbnVmYWN0dWFyaW5nIENvLixMdGQuCis4ODMwOEEgICAgIChiYXNlIDE2KQkJTXVyYXRhIE1hbnVmYWN0dWFyaW5nIENvLixMdGQuCisJCQkJMS0xMC0xIEhpZ2FzaGlrb3RhcmkKKwkJCQlOYWdhb2tha3lvLXNoaSBLeW90byA2MTctODU1NQorCQkJCUpBUEFOCisKKzg4LTQxLUMxICAgKGhleCkJCU9SQklTQVQgREEgQU1BWk9OSUEgSU5EIEUgQUVST0wgU0EKKzg4NDFDMSAgICAgKGJhc2UgMTYpCQlPUkJJU0FUIERBIEFNQVpPTklBIElORCBFIEFFUk9MIFNBCisJCQkJQVYgU0hJU0hJTUEgSElGVU1JLCAyOTExCisJCQkJVVJCQU5PVkEKKwkJCQlTQU8gSk9TRSBET1MgQ0FNUE9TIFNBTyBQQVVMTyAxMjI0NC0wMDAKKwkJCQlCUkFaSUwKKworODgtNDMtRTEgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworODg0M0UxICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworODgtNEItMzkgICAoaGV4KQkJU2llbWVucyBBRywgSGVhbHRoY2FyZSBTZWN0b3IKKzg4NEIzOSAgICAgKGJhc2UgMTYpCQlTaWVtZW5zIEFHLCBIZWFsdGhjYXJlIFNlY3RvcgorCQkJCUhlbmtlc3RyYXNzZSAxMjcKKwkJCQlFcmxhbmdlbiBCYXZhcmlhIDkxMDUyCisJCQkJR0VSTUFOWQorCis4OC01My0yRSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzg4NTMyRSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzg4LTUzLUQ0ICAgKGhleCkJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKzg4NTNENCAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis4OC01Qy00RiAgIChoZXgpCQlBbGNhdGVsIEx1Y2VudAorODg1QzRGICAgICAoYmFzZSAxNikJCUFsY2F0ZWwgTHVjZW50CisJCQkJVmlhIHRyZW50bywgMzAKKwkJCQlWaW1lcmNhdGUgTUIgMjAwNTkKKwkJCQlJVEFMWQorCis4OC02Qi03NiAgIChoZXgpCQlDSElOQSBIT1BFRlVMIEdST1VQIEhPUEVGVUwgRUxFQ1RSSUMgQ08uLExURAorODg2Qjc2ICAgICAoYmFzZSAxNikJCUNISU5BIEhPUEVGVUwgR1JPVVAgSE9QRUZVTCBFTEVDVFJJQyBDTy4sTFRECisJCQkJU2h1bmRlIERpc3RyaWN0IG9mIEZvc2hhbiBDaXR5LCBHdWFuZ2RvbmcgUHJvdmluY2UsIEd1YW5neGkgUm9uZyBSb25nZ3VpIFRvd24gUm9hZCwgTm8uIDE0OAorCQkJCUNoYW5naG9uZyBhbmQgVGVjaG5vbG9neSBUZWNobm9sb2d5IEJ1aWxkaW5nIDIyIEZsb29yIEZ1aHVhIEJ1aWxkaW5nLEhpLVRlY2ggUGFyayxOYW5zaGFuIERpc3RyaXN0LHNoZW56aGVuIENpdHkgLAorCQkJCUZvc2hhbiBHdWFuZ0RvbmcgNTI4MzA1CisJCQkJQ0hJTkEKKworODgtODYtQTAgICAoaGV4KQkJU2ltdG9uIFRlY2hub2xvZ2llcywgTHRkLgorODg4NkEwICAgICAoYmFzZSAxNikJCVNpbXRvbiBUZWNobm9sb2dpZXMsIEx0ZC4KKwkJCQkyIFRhaXNoYW4gUm9hZCwgQnVpbGRpbmcgQywgM3JkIEZsb29yCisJCQkJV3V4aSwgIFByb3ZpbmNlIG9mIEppYW5nc3UsICAyMTQwMjgKKwkJCQlDSElOQQorCis4OC04Ny0xNyAgIChoZXgpCQlDQU5PTiBJTkMuCis4ODg3MTcgICAgIChiYXNlIDE2KQkJQ0FOT04gSU5DLgorCQkJCTMtMzAtMixTaGltb21hcnVrbyBPaHRhLUt1CisJCQkJVG9reW8gIDE0Ni04NTAxCisJCQkJSkFQQU4KKworODgtOEItNUQgICAoaGV4KQkJU3RvcmFnZSBBcHBsaWFuY2UgQ29ycG9yYXRpb24gCis4ODhCNUQgICAgIChiYXNlIDE2KQkJU3RvcmFnZSBBcHBsaWFuY2UgQ29ycG9yYXRpb24gCisJCQkJMjkgU3UgWmhvdSBKaWUsIEhhaWRpYW4gRGlzdC4KKwkJCQlTdWl0ZSA2MDEtNjAzCisJCQkJQmVpamluZyAgIDEwMDA4MAorCQkJCUNISU5BCisKKzg4LThDLTE5ICAgKGhleCkJCUJyYWR5IENvcnAgQXNpYSBQYWNpZmljIEx0ZAorODg4QzE5ICAgICAoYmFzZSAxNikJCUJyYWR5IENvcnAgQXNpYSBQYWNpZmljIEx0ZAorCQkJCTEsIEtha2kgQnVraXQgQ3Jlc2NlbnQKKwkJCQk0MTYyMzYKKwkJCQlTSU5HQVBPUkUKKworODgtOTEtREQgICAoaGV4KQkJUmFja3Rpdml0eQorODg5MUREICAgICAoYmFzZSAxNikJCVJhY2t0aXZpdHkKKwkJCQlIZXJ0c3Rva3dlZyA1CisJCQkJVGVybmF0IEZsYW5kZXJzIDE3NDEKKwkJCQlCRUxHSVVNCisKKzg4LTk0LUY5ICAgKGhleCkJCUdlbWljb20gVGVjaG5vbG9neSwgSW5jLgorODg5NEY5ICAgICAoYmFzZSAxNikJCUdlbWljb20gVGVjaG5vbG9neSwgSW5jLgorCQkJCTE2RiwgQnVpbGRpbmcgQiwgTm8uIDk4LCBTZWMgMSwgSHNpbi1UYWktV3UgUmQuCisJCQkJSHNpLUNoaWggY2l0eSBUYWlwZWkgMjIxMDIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzg4LTk1LUI5ICAgKGhleCkJCVVuaWZpZWQgUGFja2V0IFN5c3RlbXMgQ3JvcAorODg5NUI5ICAgICAoYmFzZSAxNikJCVVuaWZpZWQgUGFja2V0IFN5c3RlbXMgQ3JvcAorCQkJCTFGLiwgTm8zMixMYW5lIDE1LFNFQyA2LCBNaW5RdWFuIEUgUmQuLCAKKwkJCQlUYWlwZWkgTmVpaHUgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4OC05Ni03NiAgIChoZXgpCQlUVEMgTUFSQ09OSSBzLnIuby4KKzg4OTY3NiAgICAgKGJhc2UgMTYpCQlUVEMgTUFSQ09OSSBzLnIuby4KKwkJCQlU77+9ZWJvaG9zdGlja++/vSA5ODcvNQorCQkJCVByYWhhICAxMDAwMAorCQkJCUNaRUNIIFJFUFVCTElDCisKKzg4LTk3LURGICAgKGhleCkJCUVudHJ5cGFzcyBDb3Jwb3JhdGlvbiBTZG4uIEJoZC4KKzg4OTdERiAgICAgKGJhc2UgMTYpCQlFbnRyeXBhc3MgQ29ycG9yYXRpb24gU2RuLiBCaGQuCisJCQkJTm8uNDAsIEphbGFuIFRQUCAxLzEwLAorCQkJCVRhbWFuIEluZHVzdHJpIFB1Y2hvbmcsIEJhdHUgMTIsIEphbGFuIAorCQkJCVB1Y2hvbmcgU2VsYW5nb3IgRGFydWwgRWhzYW4gNDcxMDAKKwkJCQlNQUxBWVNJQQorCis4OC05OC0yMSAgIChoZXgpCQlURVJBT04KKzg4OTgyMSAgICAgKGJhc2UgMTYpCQlURVJBT04KKwkJCQkyRiBTZW9oYW4gQmxkZy4sIDE1NTItMTAsIFNlb2Noby1Eb25nLCBTZW9jaG8tR3UsCisJCQkJU2VvdWwgIDEzNy0wNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworODgtOUYtRkEgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorODg5RkZBICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQkgTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgMjAxNjEzCisJCQkJQ0hJTkEKKworODgtQTUtQkQgICAoaGV4KQkJUVBDT00gSU5DLgorODhBNUJEICAgICAoYmFzZSAxNikJCVFQQ09NIElOQy4KKwkJCQk2MDMwIE5XIDk5IEFWRQorCQkJCVNVSVRFIDQwNAorCQkJCURPUkFMIEZMT1JJREEgMzMxNzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzg4LUFDLUMxICAgKGhleCkJCUdlbmVyaXRvbiBDby4sIEx0ZC4gCis4OEFDQzEgICAgIChiYXNlIDE2KQkJR2VuZXJpdG9uIENvLiwgTHRkLiAKKwkJCQk4Ri0xLCBOby4gODEsIFNodWlsaSBSZC4sIAorCQkJCUhzaW5jaHUgQ2l0eSwgICAzMDA1OSAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzg4LUFFLTFEICAgKGhleCkJCUNPTVBBTCBJTkZPUk1BVElPTihLVU5TSEFOKUNPLixMVEQKKzg4QUUxRCAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04oS1VOU0hBTilDTy4sTFRECisJCQkJTk8uIDI1LCBUSEUgM1JEIFNUUkVFVCBLVU5TSEFOIEVYUE9SVCBQUk9DRVNTSU5HIFpPTkUKKwkJCQlLVU5TSEFOIFNVWkhPVSAyMTUzMDAKKwkJCQlDSElOQQorCis4OC1CMS02OCAgIChoZXgpCQlEZWx0YSBDb250cm9sIEdtYkgKKzg4QjE2OCAgICAgKGJhc2UgMTYpCQlEZWx0YSBDb250cm9sIEdtYkgKKwkJCQlSb25kb3JmZXIgSGF1cHRzdHIuIDMzCisJCQkJQ29sb2duZSBOUlcgNTA5OTcgCisJCQkJR0VSTUFOWQorCis4OC1CNi0yNyAgIChoZXgpCQlHZW1iaXJkIEV1cm9wZSBCVgorODhCNjI3ICAgICAoYmFzZSAxNikJCUdlbWJpcmQgRXVyb3BlIEJWCisJCQkJV2l0dGV2cm91d2VuIDU2CisJCQkJQWxtZXJlIEZsZXZvbGFuZCAxMzU4Q0QKKwkJCQlORVRIRVJMQU5EUworCis4OC1CQS03RiAgIChoZXgpCQlRZmllZG5ldCBDby4sIEx0ZC4KKzg4QkE3RiAgICAgKGJhc2UgMTYpCQlRZmllZG5ldCBDby4sIEx0ZC4KKwkJCQkjMjA0IEtKIEJsZGcuIERhZUNoaS1Eb25nCisJCQkJR2FuZ05hbS1HdQorCQkJCVNlb3VsICAxMzUtODQ3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzg4LUJGLUQ1ICAgKGhleCkJCVNpbXBsZSBBdWRpbyBMdGQKKzg4QkZENSAgICAgKGJhc2UgMTYpCQlTaW1wbGUgQXVkaW8gTHRkCisJCQkJQ2FydHNpZGUgSG91c2UKKwkJCQkxIENsYXJrc3RvbiBSb2FkCisJCQkJR2xhc2dvdyAgRzQ0IDRFRgorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzg4LUMzLTZFICAgKGhleCkJCUJlaWppbmcgRXJlbmViZW4gbG5mb3JtYXRpb24gVGVjaG5vbG9neSBMaW1pdGVkCis4OEMzNkUgICAgIChiYXNlIDE2KQkJQmVpamluZyBFcmVuZWJlbiBsbmZvcm1hdGlvbiBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlSb29tIDE0RixCdWlsZGluZyBGLEhvbmdsb25nIENlbnRyYWwgUGxhemEsTk8sMzAwMSxIZXBpbmcgUm9hZCxMdW9IdSAKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTEwCisJCQkJQ0hJTkEKKworODgtQzYtNjMgICAoaGV4KQkJQXBwbGUsIEluYy4KKzg4QzY2MyAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworODgtREMtOTYgICAoaGV4KQkJU0VOQU8gTmV0d29ya3MsIEluYy4KKzg4REM5NiAgICAgKGJhc2UgMTYpCQlTRU5BTyBOZXR3b3JrcywgSW5jLgorCQkJCU5vLiA1MDAsIEZ1c2luZyAzcmQgUmQuLCBId2EtWWEgVGVjaG5vbG9neSBQYXJrCisJCQkJS3VlaS1TaGFuIEhzaWFuZyBUYW9ZdWFuIENvdW50eSAzMzMKKwkJCQlUQUlXQU4sIFBST1ZJTkNFIE9GIENISU5BCisKKzg4LURELTc5ICAgKGhleCkJCVZvbHRhaXJlCis4OERENzkgICAgIChiYXNlIDE2KQkJVm9sdGFpcmUKKwkJCQkxMywgWmFyY2hpbiBTdAorCQkJCVJhYW5hbmEgIDQzNjYyCisJCQkJSVNSQUVMCisKKzg4LUUwLUEwICAgKGhleCkJCVNoZW56aGVuIFZpc2lvblNUT1IgVGVjaG5vbG9naWVzIENvLiwgTHRkCis4OEUwQTAgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gVmlzaW9uU1RPUiBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKwkJCQkxMi9GLCBFYXN0IFRvd2VyLE5hbnNoYW4gU29mdHdhcmUgUGFyaworCQkJCTEwMTI4IFNoZW5uYW4gQmx2ZAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCis4OC1FMC1GMyAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCis4OEUwRjMgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkgCisJCQkJVU5JVEVEIFNUQVRFUworCis4OC1FNy0xMiAgIChoZXgpCQlXaGlybHBvb2wgQ29ycG9yYXRpb24KKzg4RTcxMiAgICAgKGJhc2UgMTYpCQlXaGlybHBvb2wgQ29ycG9yYXRpb24KKwkJCQk3NTAgTW9udGUgRHIuCisJCQkJTWFpbCBTdG9wIDUyMTAKKwkJCQlCZW50b24gSGFyYm9yIE1pY2hpZ2FuIDQ5MDIyCisJCQkJVU5JVEVEIFNUQVRFUworCis4OC1FNy1BNiAgIChoZXgpCQlpS25vd2xlZGdlIEludGVncmF0aW9uIENvcnAuCis4OEU3QTYgICAgIChiYXNlIDE2KQkJaUtub3dsZWRnZSBJbnRlZ3JhdGlvbiBDb3JwLgorCQkJCTEwRiBOby4yLCBTZWMuIDMsIFhpbnNoZW5nIFMuIFJkLiwKKwkJCQlEYWFuIERpc3QuCisJCQkJVGFpcGVpICAxMDY2MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworODgtRUQtMUMgICAoaGV4KQkJQ3VkbyBDb21tdW5pY2F0aW9uIENvLiwgTHRkLgorODhFRDFDICAgICAoYmFzZSAxNikJCUN1ZG8gQ29tbXVuaWNhdGlvbiBDby4sIEx0ZC4KKwkJCQkxMEYgQXJpcmFuZ1RWIDE0NjctODAsIFNlb2Noby0zZG9uZywgU2VvY2hvLWd1CisJCQkJU2VvdWwgIDEzNy04NjgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworODgtRjAtNzcgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworODhGMDc3ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzg4LUY0LTg4ICAgKGhleCkJCWNlbGxvbiBjb21tdW5pY2F0aW9ucyB0ZWNobm9sb2d5KHNoZW56aGVuKUNvLixMdGQuCis4OEY0ODggICAgIChiYXNlIDE2KQkJY2VsbG9uIGNvbW11bmljYXRpb25zIHRlY2hub2xvZ3koc2hlbnpoZW4pQ28uLEx0ZC4KKwkJCQkxMy9GIEMgQnVpbGRpbmcsR2FveGluIFMuQXZlLixIaS1UZWNoIEluZHVzdHJpYWwgUGFyayxOYW5zaGFuLHNoZW56aGVuNTE4MDU3LFBSQworCQkJCXNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis4OC1GRC0xNSAgIChoZXgpCQlMSU5FRVlFIENPLiwgTFRECis4OEZEMTUgICAgIChiYXNlIDE2KQkJTElORUVZRSBDTy4sIExURAorCQkJCTVGIE1hcnVmdWt1IEJsZGcuIDM5LTEgS2FyYWhhc2hpCisJCQkJTmlzaGloaXJhZ2FraS1jaG8sIE1pbmFtaS1rdQorCQkJCUt5b3RvICA2MDEtODQ2OAorCQkJCUpBUEFOCisKKzhDLTBDLUEzICAgKGhleCkJCUFtcGVyCis4QzBDQTMgICAgIChiYXNlIDE2KQkJQW1wZXIKKwkJCQlNYXJjb25pIDMsIFBUTQorCQkJCVRyZXMgQ2FudG9zIE1hZHJpZCAyODc2MAorCQkJCVNQQUlOCisKKzhDLTExLUNCICAgKGhleCkJCUFCVVMgU2VjdXJpdHktQ2VudGVyIEdtYkggJiBDby4gS0cKKzhDMTFDQiAgICAgKGJhc2UgMTYpCQlBQlVTIFNlY3VyaXR5LUNlbnRlciBHbWJIICYgQ28uIEtHCisJCQkJTGlua2VyIEtyZXV0aHdlZyA1CisJCQkJQWZmaW5nIC8gTXVlaGxoYXVzZW4gQmF2YXJpYSA4NjQ0NAorCQkJCUdFUk1BTlkKKworOEMtMUYtOTQgICAoaGV4KQkJUkYgU3VyZ2ljYWwgU3lzdGVtIEluYy4gCis4QzFGOTQgICAgIChiYXNlIDE2KQkJUkYgU3VyZ2ljYWwgU3lzdGVtIEluYy4gCisJCQkJOTc0MCBBcHBhbG9vc2EgUm9hZCAKKwkJCQlTdWl0ZSAxNTAgCisJCQkJU2FuIERpZWdvICBDQSA5MjEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworOEMtMjEtMEEgICAoaGV4KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCis4QzIxMEEgICAgIChiYXNlIDE2KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCisJCQkJQnVpbGRpbmcgMjQgKGZsb29ycyAxLDMsNCw1KSBhbmQgMjggKGZsb29yczEtNCkgIENlbnRyYWwgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSBQYXJrLFNoZW5uYW4gUmQsIE5hbnNoYW4KKwkJCQlzaGVuemhlbiBndWFuZ2RvbmcgUHJvdmluY2UgNTE4MDU3CisJCQkJQ0hJTkEKKworOEMtMjctMUQgICAoaGV4KQkJUXVhbnRIb3VzZQorOEMyNzFEICAgICAoYmFzZSAxNikJCVF1YW50SG91c2UKKwkJCQkxMy0xNSBSdWUgVGFpdGJvdXQKKwkJCQlQYXJpcyAgNzUwMDkKKwkJCQlGUkFOQ0UKKworOEMtMjctOEEgICAoaGV4KQkJVm9jb2xsZWN0IEluYworOEMyNzhBICAgICAoYmFzZSAxNikJCVZvY29sbGVjdCBJbmMKKwkJCQk3MDMgUm9kaSBSb2FkCisJCQkJUGl0dHNidXJnaCBQYSAxNTIzNQorCQkJCVVOSVRFRCBTVEFURVMKKworOEMtNDQtMzUgICAoaGV4KQkJU2hhbmdoYWkgQnJvYWRNb2JpIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKzhDNDQzNSAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBCcm9hZE1vYmkgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCVJtLiA5MDEsIEJsZC4gOSwgTm8uMTUxNSBHdW1laSBSZCwgWHVodWkgRGlzdHJpY3QKKwkJCQlTaGFuZ2hhaSAgMjAwMjMzCisJCQkJQ0hJTkEKKworOEMtNEQtRUEgICAoaGV4KQkJQ2VyaW8gQ29ycG9yYXRpb24KKzhDNERFQSAgICAgKGJhc2UgMTYpCQlDZXJpbyBDb3Jwb3JhdGlvbgorCQkJCTJGLiwgTm8uMTA1LCBNaW5jeXVhbiBSZC4sIFNpbmRpYW4gQ2l0eQorCQkJCVRhaXBlaSBDb3VudHkgIDIzMTQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4Qy01MS0wNSAgIChoZXgpCQlTaGVuemhlbiBpcmVhZHlnbyBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENPLixMVEQuCis4QzUxMDUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gaXJlYWR5Z28gSW5mb3JtYXRpb24gVGVjaG5vbG9neSBDTy4sTFRELgorCQkJCVJvb20gMDIsMTFGLERFU0FZIEJ1aWxkaW5nLE5vLjEgSGktVGVjaCBTb3V0aCBSb2FkCisJCQkJU2hlbnpoZW4gIDUxODA1NworCQkJCUNISU5BCisKKzhDLTUzLUY3ICAgKGhleCkJCUEmRCBFTkdJTkVFUklORyBDTy4sIExURC4KKzhDNTNGNyAgICAgKGJhc2UgMTYpCQlBJkQgRU5HSU5FRVJJTkcgQ08uLCBMVEQuCisJCQkJMzM2LTYgRGFuZ3NhbmRvbmcgNi1nYSwgWWVvbmdkZXVuZ3BvLWd1CisJCQkJU2VvdWwgIDE1MC04MTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworOEMtNTQtMUQgICAoaGV4KQkJTEdFIAorOEM1NDFEICAgICAoYmFzZSAxNikJCUxHRSAKKwkJCQk2MC0zOSAsIEthc2FuIC1kb25nICwgR3VtY2hlb24tZ3UuCisJCQkJU2VvdWwgICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzhDLTU2LUM1ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorOEM1NkM1ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKKzhDLTU3LUZEICAgKGhleCkJCUxWWCBXZXN0ZXJuCis4QzU3RkQgICAgIChiYXNlIDE2KQkJTFZYIFdlc3Rlcm4KKwkJCQk3MDAgNTR0aCBhdmUgTm9ydGgKKwkJCQlTdC4gQ2xvdWQgTU4gNTYzMDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzhDLTU4LTc3ICAgKGhleCkJCUFwcGxlLCBJbmMuCis4QzU4NzcgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzhDLTU5LThCICAgKGhleCkJCUMgVGVjaG5vbG9naWVzIEFCCis4QzU5OEIgICAgIChiYXNlIDE2KQkJQyBUZWNobm9sb2dpZXMgQUIKKwkJCQlUcmFrdG9ydsOkZ2VuIDExCisJCQkJTHVuZCBTa8OlbmUgMjI2IDYwCisJCQkJU1dFREVOCisKKzhDLTVDLUExICAgKGhleCkJCWQtYnJvYWQsSU5DCis4QzVDQTEgICAgIChiYXNlIDE2KQkJZC1icm9hZCxJTkMKKwkJCQkyLTEyLTMgU2hpbllva29oYW1hIEtvdWhva3UtS3UKKwkJCQlZb2tvaGFtYSBLYW5hZ2F3YSAyMjItMDAzMworCQkJCUpBUEFOCisKKzhDLTVGLURGICAgKGhleCkJCUJlaWppbmcgUmFpbHdheSBTaWduYWwgRmFjdG9yeQorOEM1RkRGICAgICAoYmFzZSAxNikJCUJlaWppbmcgUmFpbHdheSBTaWduYWwgRmFjdG9yeQorCQkJCU5vLjIgU2ljdW4gWGlsdSBMYW5nZmEsSHVhbmdjdW4sCisJCQkJRGF4aW5nIEFyZWEsCisJCQkJQmVpaWpuZyAgMTAyNjEzCisJCQkJQ0hJTkEKKworOEMtNjAtNEYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworOEM2MDRGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzhDLTY0LTBCICAgKGhleCkJCUJleW9uZCBEZXZpY2VzIGQuby5vLgorOEM2NDBCICAgICAoYmFzZSAxNikJCUJleW9uZCBEZXZpY2VzIGQuby5vLgorCQkJCVRyemFza2EgY2VzdGEgNTE1CisJCQkJQnJlem92aWNhIHByaSBManVibGphbmkgIFNJLTEzNTEKKwkJCQlTTE9WRU5JQQorCis4Qy02NC0yMiAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorOEM2NDIyICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKKzhDLTY4LTc4ICAgKGhleCkJCU5vcnRlay1BUworOEM2ODc4ICAgICAoYmFzZSAxNikJCU5vcnRlay1BUworCQkJCVZhbmdrcm9rZW4gMgorCQkJCUFrcmVzaHVzIDEzNTEgUlVECisJCQkJTk9SV0FZCisKKzhDLTZBLUU0ICAgKGhleCkJCVZpb2dlbSBMaW1pdGVkCis4QzZBRTQgICAgIChiYXNlIDE2KQkJVmlvZ2VtIExpbWl0ZWQKKwkJCQlQYWRkb2NrIEhvdXNlCisJCQkJUmVjdG9yeSBMYW5lCisJCQkJT3JsaW5nYnVyeSBOb3J0aGFtcHRvbnNoaXJlIE5OMTQxSkgKKwkJCQlVTklURUQgS0lOR0RPTQorCis4Qy03MC01QSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzhDNzA1QSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzhDLTcxLUY4ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorOEM3MUY4ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis4Qy03My02RSAgIChoZXgpCQlGdWppdHN1IExpbWl0ZWQKKzhDNzM2RSAgICAgKGJhc2UgMTYpCQlGdWppdHN1IExpbWl0ZWQKKwkJCQlNdXNhc2hpLWtvc3VnaSBUb3dlciBQbGFjZSBCbGRnLiwKKwkJCQk0MDMsIEtvc3VnaS1jaG8gMS1jaG9tZSxOYWthaGFyYS1rdQorCQkJCUthd2FzYWtpIEthbmFnYXdhIDIxMS0wMDYzCisJCQkJSkFQQU4KKworOEMtNzctMTIgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCis4Qzc3MTIgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzhDLTdCLTlEICAgKGhleCkJCUFwcGxlLCBJbmMuCis4QzdCOUQgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzhDLTdDLUI1ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzhDN0NCNSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMyAKKwkJCQlDSElOQQorCis4Qy03Qy1GRiAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKzhDN0NGRiAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKwkJCQkxMzAgSG9sZ2VyIFdheQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis4Qy03RS1CMyAgIChoZXgpCQlMeXRybywgSW5jLgorOEM3RUIzICAgICAoYmFzZSAxNikJCUx5dHJvLCBJbmMuCisJCQkJMTMwMCAgVGVycmEgQmVsbGEgQXZlbnVlCisJCQkJTW91bnRhaW4gVmlldyBDYWxpZm9ybmlhIDk0MDQzCisJCQkJVU5JVEVEIFNUQVRFUworCis4Qy04Mi1BOCAgIChoZXgpCQlJbnNpZ21hIFRlY2hub2xvZ3kgQ28uLEx0ZAorOEM4MkE4ICAgICAoYmFzZSAxNikJCUluc2lnbWEgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJTm8uMjI2IFRpYW5tdXNoYW4gUm9hZCwgCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDAwCisJCQkJQ0hJTkEKKworOEMtODQtMDEgICAoaGV4KQkJUFJJVkFURQorOEM4NDAxICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCis4Qy04OS1BNSAgIChoZXgpCQlNaWNyby1TdGFyIElOVCdMIENPLiwgTFRECis4Qzg5QTUgICAgIChiYXNlIDE2KQkJTWljcm8tU3RhciBJTlQnTCBDTy4sIExURAorCQkJCU5vLjY5LCBMaWRlIHN0LgorCQkJCUpob25naGUgQ2l0eQorCQkJCVRhaXBlaSBDb3VudHkgIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOEMtOEEtNkUgICAoaGV4KQkJRVNUVU4gQVVUT01BVElPTiBURUNITk9MT1kgQ08uLCBMVEQKKzhDOEE2RSAgICAgKGJhc2UgMTYpCQlFU1RVTiBBVVRPTUFUSU9OIFRFQ0hOT0xPWSBDTy4sIExURAorCQkJCTE2LFNodWlnZSBSb2FkCisJCQkJSmlhbmduaW5nIERldmVsb3BtZW50IFpvbmUKKwkJCQlOYW5qaW5nIEppYW5nc3UgMjExMTA2CisJCQkJQ0hJTkEKKworOEMtOEUtNzYgICAoaGV4KQkJdGFza2l0IEdtYkgKKzhDOEU3NiAgICAgKGJhc2UgMTYpCQl0YXNraXQgR21iSAorCQkJCUdyb98tQmVybGluZXIgRGFtbSAzNworCQkJCUJlcmxpbiAgMTI0ODcKKwkJCQlHRVJNQU5ZCisKKzhDLTkwLUQzICAgKGhleCkJCUFsY2F0ZWwgTHVjZW50Cis4QzkwRDMgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBMdWNlbnQKKwkJCQk2MDAgTWFyY2ggRHJpdmUKKwkJCQlPdHRhd2EgT04gSzJLIDJFNgorCQkJCUNBTkFEQQorCis4Qy05Mi0zNiAgIChoZXgpCQlBdXMuTGlueCBUZWNobm9sb2d5IENvLiwgTHRkLgorOEM5MjM2ICAgICAoYmFzZSAxNikJCUF1cy5MaW54IFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJM0YsIE5vLiA3LCBMYW5lIDQ1LCBQYW8tSHNpbiBSZC4sCisJCQkJSHNpbi1UZWluIFRhaXBlaSBjb3VudHJ5LCAgMjMxNDUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzhDLTk0LUNGICAgKGhleCkJCUVuY2VsbCBUZWNobm9sb2d5LCBJbmMuCis4Qzk0Q0YgICAgIChiYXNlIDE2KQkJRW5jZWxsIFRlY2hub2xvZ3ksIEluYy4KKwkJCQkxNDEyIFNhY2hlbSBQbGFjZSwgU3VpdGUgMjA0CisJCQkJQ2hhcmxvdHRlc3ZpbGxlIFZBIDIyOTAxCisJCQkJVU5JVEVEIFNUQVRFUworCis4Qy1BMC00OCAgIChoZXgpCQlCZWlqaW5nIE5lVG9wQ2hpcCBUZWNobm9sb2d5IENvLixMVEQKKzhDQTA0OCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIE5lVG9wQ2hpcCBUZWNobm9sb2d5IENvLixMVEQKKwkJCQkzMDksSW50ZXJncmF0aW9uIEJ1aWxkaW5nIE9seW1waWMgQ2VudGVyLCBOby4xIEFuIERpbmcgUm9hZCxDaGFvIFlhbmcgRGlzdHJpY3QsLCAKKwkJCQlCZWlqaW5nICAxMDAwMjkKKwkJCQlDSElOQQorCis4Qy1BOS04MiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKKzhDQTk4MiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKKzhDLUI2LTRGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKKzhDQjY0RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKKzhDLUI4LTJDICAgKGhleCkJCUlQaXRvbXkgQ29tbXVuaWNhdGlvbnMKKzhDQjgyQyAgICAgKGJhc2UgMTYpCQlJUGl0b215IENvbW11bmljYXRpb25zCisJCQkJMTk0MCBOb3J0aGdhdGUgQm91bGV2YXJkCisJCQkJU3VpdGUgQi0xCisJCQkJU2FyYXNvdGEgRmxvcmlkYSAzNDIzNAorCQkJCVVOSVRFRCBTVEFURVMKKworOEMtQjgtNjQgICAoaGV4KQkJQWNTaVAgVGVjaG5vbG9neSBDb3JwLgorOENCODY0ICAgICAoYmFzZSAxNikJCUFjU2lQIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkzRi4sIE5vLjIyLCBEYWxpbiBSZC4sIAorCQkJCVRhb3l1YW4gQ2l0eSAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4Qy1DMS0yMSAgIChoZXgpCQlQYW5hc29uaWMgQVZDIE5ldHdvcmtzIENvbXBhbnkKKzhDQzEyMSAgICAgKGJhc2UgMTYpCQlQYW5hc29uaWMgQVZDIE5ldHdvcmtzIENvbXBhbnkKKwkJCQkxLTE1IE1hdHN1by1jaG8KKwkJCQlLYWRvbWEgQ2l0eSBPc2FrYSA1NzEtODUwNAorCQkJCUpBUEFOCisKKzhDLUM3LUFBICAgKGhleCkJCVJhZGluZXQgQ29tbXVuaWNhdGlvbnMgSW5jLgorOENDN0FBICAgICAoYmFzZSAxNikJCVJhZGluZXQgQ29tbXVuaWNhdGlvbnMgSW5jLgorCQkJCTdGLTIsIE5vLjIyOSwgRnV4aW5nIDJuZCBSZCwgWmh1YmVpLCAzMDI3MQorCQkJCUhzaW5jaHUgVGFpd2FuIDMwMjcxCisJCQkJVEFJV0FOLCBQUk9WSU5DRSBPRiBDSElOQQorCis4Qy1DOC1DRCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECis4Q0M4Q0QgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sIExURAorCQkJCTQxNiwgTWFldGFuIDMtZG9uZywgWWVvbmd0b25nLWd1CisJCQkJU3V3b24gR3llb25nZ2ktZG8gNDQzNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzhDLUNGLTVDICAgKGhleCkJCUJFRkVHQSBHbWJICis4Q0NGNUMgICAgIChiYXNlIDE2KQkJQkVGRUdBIEdtYkgKKwkJCQlSZWljaGVuYmFjaGVyIFN0ci4gMjIKKwkJCQlTY2h3YWJhY2ggQmF2YXJpYSA5MTEyNgorCQkJCUdFUk1BTlkKKworOEMtRDEtN0IgICAoaGV4KQkJQ0cgTW9iaWxlCis4Q0QxN0IgICAgIChiYXNlIDE2KQkJQ0cgTW9iaWxlCisJCQkJM0YgQ2FvaGVqaW5nIFNvZnR3YXJlIEJ1aWxkaW5nLCBOby40NjEgSG9uZ2NhbyBSZC4sWHVIdWkgRGlzdHJpY3QKKwkJCQlTaGFuZ2hhaSAgMjAwMjMzCisJCQkJQ0hJTkEKKworOEMtRDMtQTIgICAoaGV4KQkJVmlzU2ltIEFTCis4Q0QzQTIgICAgIChiYXNlIDE2KQkJVmlzU2ltIEFTCisJCQkJVm9sbHZlaWVuIDUKKwkJCQlIb3J0ZW4gVmVzdGZvbGQgMzE4MworCQkJCU5PUldBWQorCis4Qy1ENi0yOCAgIChoZXgpCQlJa29yIE1ldGVyaW5nCis4Q0Q2MjggICAgIChiYXNlIDE2KQkJSWtvciBNZXRlcmluZworCQkJCUZyYW5jaXNjbyBHcmFuZG1vbnRhZ25lIDQKKwkJCQlTYW4gU2ViYXN0aWFuIEd1aXB1emNvYSAyMDAwOAorCQkJCVNQQUlOCisKKzhDLURCLTI1ICAgKGhleCkJCUVTRyBTb2x1dGlvbnMKKzhDREIyNSAgICAgKGJhc2UgMTYpCQlFU0cgU29sdXRpb25zCisJCQkJMjAgSHlwZXJpb24gQ291cnQKKwkJCQlLaW5nc3RvbiBPbnRhcmlvIEs3SyA3SzIKKwkJCQlDQU5BREEKKworOEMtREQtOEQgICAoaGV4KQkJV2lmbHktQ2l0eSBTeXN0ZW0gSW5jLgorOENERDhEICAgICAoYmFzZSAxNikJCVdpZmx5LUNpdHkgU3lzdGVtIEluYy4KKwkJCQk0Ri4sLTEsTk8gMTA2LFJVRUlHVUFORyBSZC5OZWlodSBEaXN0cmljdCwKKwkJCQlUYWlwZWkgQ2l0eSAgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOEMtREUtNTIgICAoaGV4KQkJSVNTQyBUZWNobm9sb2dpZXMgQ29ycC4KKzhDREU1MiAgICAgKGJhc2UgMTYpCQlJU1NDIFRlY2hub2xvZ2llcyBDb3JwLgorCQkJCTRGLCBOby44LCBEdXNpbmcgUmQuLAorCQkJCUhzaW5jaHUgU2NpZW5jZSBQYXJrLAorCQkJCUhzaW5jaHUgQ2l0eSAgIDMwMDc4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis4Qy1FNy00OCAgIChoZXgpCQlQUklWQVRFCis4Q0U3NDggICAgIChiYXNlIDE2KQkJIAorCQkJCSAKKzhDLUU3LUIzICAgKGhleCkJCVNvbmFyZHluZSBJbnRlcm5hdGlvbmFsIEx0ZAorOENFN0IzICAgICAoYmFzZSAxNikJCVNvbmFyZHluZSBJbnRlcm5hdGlvbmFsIEx0ZAorCQkJCUJsYWNrYnVzaGUgQnVzaW5lc3MgUGFyaworCQkJCVlhdGVsZXkgSGFtcHNoaXJlIEdVNDYgNkdECisJCQkJVU5JVEVEIEtJTkdET00KKworOEMtRjktQzkgICAoaGV4KQkJTUVTQURBIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzhDRjlDOSAgICAgKGJhc2UgMTYpCQlNRVNBREEgVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCVRvbmdGbmcgSW5mb3JtYXRpb24gSGFyYm9yLE5vLjExIExhbmdTaGFuIFJvYWQsSEktdGVjaCBQYXJrLE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDUxODA1NworCQkJCUNISU5BCisKKzhDLUZBLUJBICAgKGhleCkJCUFwcGxlIEluYworOENGQUJBICAgICAoYmFzZSAxNikJCUFwcGxlIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyAgQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLTAwLTRFICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKzkwMDA0RSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJIE5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKKzkwLTAxLTNCICAgKGhleCkJCVNBR0VNQ09NCis5MDAxM0IgICAgIChiYXNlIDE2KQkJU0FHRU1DT00KKwkJCQkyNTAgcm91dGUgZGUgbCdFbXBlcmV1cgorCQkJCVJVRUlMIE1BTE1BSVNPTiAgOTI4NDgKKwkJCQlGUkFOQ0UKKworOTAtMDItQTkgICAoaGV4KQkJWkhFSklBTkcgREFIVUEgVEVDSE5PTE9HWSBDTy4sTFRECis5MDAyQTkgICAgIChiYXNlIDE2KQkJWkhFSklBTkcgREFIVUEgVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJTk8uMTE5OSBCaW5BbiBSb2FkCisJCQkJQmluamlhbmcgRGlzdHJpY3QKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwNTMKKwkJCQlDSElOQQorCis5MC0wMy1CNyAgIChoZXgpCQlQQVJST1QKKzkwMDNCNyAgICAgKGJhc2UgMTYpCQlQQVJST1QKKwkJCQkxNzQgcXVhaSBkZSBqZW1tYXBlcworCQkJCVBBUklTICA3NTEwCisJCQkJRlJBTkNFCisKKzkwLTA5LTE3ICAgKGhleCkJCUZhci1zaWdodGVkIG1vYmlsZQorOTAwOTE3ICAgICAoYmFzZSAxNikJCUZhci1zaWdodGVkIG1vYmlsZQorCQkJCVRlY2hub2xvZ3kgUGFyayBEZXNheSBCdWlsZGluZyA2dGgtRmxvb3IKKwkJCQlOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIFByb3ZpbmNlICA1MTgwMDAKKwkJCQlDSElOQQorCis5MC0wQS0zQSAgIChoZXgpCQlQU0cgUGxhc3RpYyBTZXJ2aWNlIEdtYkgKKzkwMEEzQSAgICAgKGJhc2UgMTYpCQlQU0cgUGxhc3RpYyBTZXJ2aWNlIEdtYkgKKwkJCQlQaW5hZXIgU3RyLiAxMi0xNgorCQkJCU1hbm5oZWltIEJXIDY4MzA5CisJCQkJR0VSTUFOWQorCis5MC0wRC02NiAgIChoZXgpCQlEaWdpbW9yZSBFbGVjdHJvbmljcyBDby4sIEx0ZAorOTAwRDY2ICAgICAoYmFzZSAxNikJCURpZ2ltb3JlIEVsZWN0cm9uaWNzIENvLiwgTHRkCisJCQkJMTAgRkwuLCBOby4gNjEsIFlhbi1QaW5nIFNvdXRoIFJvYWQKKwkJCQlUYWlwZWkgIDEwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTAtMTgtNUUgICAoaGV4KQkJQXBleCBUb29sIEdyb3VwIEdtYkggJiBDbyBPSEcKKzkwMTg1RSAgICAgKGJhc2UgMTYpCQlBcGV4IFRvb2wgR3JvdXAgR21iSCAmIENvIE9IRworCQkJCUluZHVzdHJpZXN0cmFzc2UgMQorCQkJCVdlc3RoYXVzZW4gIDczNDYzCisJCQkJR0VSTUFOWQorCis5MC0xOC1BRSAgIChoZXgpCQlTaGFuZ2hhaSBNZXJpZGlhbiBUZWNobm9sb2dpZXMsIENvLiBMdGQuCis5MDE4QUUgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgTWVyaWRpYW4gVGVjaG5vbG9naWVzLCBDby4gTHRkLgorCQkJCVN1aXRlIDZBIFRvbmdzaGVuZyBUb3dlcgorCQkJCSM0NTggRnVzaGFuIFJvYWQKKwkJCQlQdWRvbmcgc2hhbmdoYWkgMjAwMTIyCisJCQkJQ0hJTkEKKworOTAtMTktMDAgICAoaGV4KQkJU0NTIFNBCis5MDE5MDAgICAgIChiYXNlIDE2KQkJU0NTIFNBCisJCQkJVmlhIFBpbmksIDMyCisJCQkJQmlhc2NhICA2NzEwCisJCQkJU1dJVFpFUkxBTkQKKworOTAtMUItMEUgICAoaGV4KQkJRnVqaXRzdSBUZWNobm9sb2d5IFNvbHV0aW9ucyBHbWJICis5MDFCMEUgICAgIChiYXNlIDE2KQkJRnVqaXRzdSBUZWNobm9sb2d5IFNvbHV0aW9ucyBHbWJICisJCQkJQnVlcmdlcm1laXN0ZXItVWxyaWNoLVN0cmFzc2UgMTAwCisJCQkJQXVnc2J1cmcgQmF5ZXJuIDg2MTk5CisJCQkJR0VSTUFOWQorCis5MC0yMS01NSAgIChoZXgpCQlIVEMgQ29ycG9yYXRpb24KKzkwMjE1NSAgICAgKGJhc2UgMTYpCQlIVEMgQ29ycG9yYXRpb24KKwkJCQlOby4yMyBYaW5naHVhIFJvYWQKKwkJCQlUYW95dWFuIENpdHkKKwkJCQlUYW95dWFuIENvdW50eSAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis5MC0yNy1FNCAgIChoZXgpCQlBcHBsZSwgSW5jLgorOTAyN0U0ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENhbGlmb3JuaWEgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLTJCLTM0ICAgKGhleCkJCUdJR0EtQllURSBURUNITk9MT0dZIENPLixMVEQuCis5MDJCMzQgICAgIChiYXNlIDE2KQkJR0lHQS1CWVRFIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQlQaW4tSmVuIENpdHksIAorCQkJCVBpbi1KZW4gVGFveXVhbiAzMjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzkwLTJFLTg3ICAgKGhleCkJCUxhYkphY2sKKzkwMkU4NyAgICAgKGJhc2UgMTYpCQlMYWJKYWNrCisJCQkJMzIzMiBTIFZhbmNlIFN0IFNURSAxMDAKKwkJCQlMYWtld29vZCBDTyA4MDIyNworCQkJCVVOSVRFRCBTVEFURVMKKworOTAtMzQtMkIgICAoaGV4KQkJR2F0ZWtlZXBlciBTeXN0ZW1zLCBJbmMuCis5MDM0MkIgICAgIChiYXNlIDE2KQkJR2F0ZWtlZXBlciBTeXN0ZW1zLCBJbmMuCisJCQkJOCBTdHVkZWJha2VyCisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCis5MC0zNC1GQyAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCis5MDM0RkMgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgICAyMDE2MTMgCisJCQkJQ0hJTkEKKworOTAtM0EtQTAgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQKKzkwM0FBMCAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudAorCQkJCTYwMCBNYXJjaCBSb2FkCisJCQkJS2FuYXRhIE9udGFyaW8gSzJLIDJFNgorCQkJCUNBTkFEQQorCis5MC0zQy1BRSAgIChoZXgpCQlZdW5uYW4gS1NFQyBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKzkwM0NBRSAgICAgKGJhc2UgMTYpCQlZdW5uYW4gS1NFQyBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQkzRixOTy4xNzYgS2V5aSBST0FELEhpZ2ggYW5kIE5ldyBUZWNobm9sb2dpY2FsIEluZHVzdHJpYWwgRGV2ZWxvcG1lbnQgWm9uZQorCQkJCUt1bm1pbmcgWXVubmFuIDY1MDEwNgorCQkJCUNISU5BCisKKzkwLTNELTVBICAgKGhleCkJCVNoZW56aGVuIFdpc2lvbiBUZWNobm9sb2d5IEhvbGRpbmcgTGltaXRlZAorOTAzRDVBICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFdpc2lvbiBUZWNobm9sb2d5IEhvbGRpbmcgTGltaXRlZAorCQkJCVJvb20gMjZBLCBKaW5ydW4gQnVpbGRpbmcsIE4wLjYwMTksIFNoZW5uYW4gUmQuLCBGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworOTAtM0QtNkIgICAoaGV4KQkJWmljb24gVGVjaG5vbG9neSBDb3JwLgorOTAzRDZCICAgICAoYmFzZSAxNikJCVppY29uIFRlY2hub2xvZ3kgQ29ycC4KKwkJCQkxNUYuLCBOby42ODgtMiwgWmhvbmd6aGVuZyBSZC4sIFpob25naGUgQ2l0eSwgVGFpcGVpIENvdW50eSAyMzUKKwkJCQlUYWlwZWkgIDIzNTg2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis5MC00Ny0xNiAgIChoZXgpCQlST1JaRSBDT1JQT1JBVElPTgorOTA0NzE2ICAgICAoYmFzZSAxNikJCVJPUlpFIENPUlBPUkFUSU9OCisJCQkJMTU4OC0yIE1pY2hpbm91ZSwgS2FubmFiZS1jaG8KKwkJCQlGdWt1eWFtYSBIaXJvc2hpbWEgNzIwLTIxMDQKKwkJCQlKQVBBTgorCis5MC00Qy1FNSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCis5MDRDRTUgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgICAyMDE2MTMKKwkJCQlDSElOQQorCis5MC01MC03QiAgIChoZXgpCQlBZHZhbmNlZCBQQU5NT0JJTCBTeXN0ZW1zIEdtYkggJiBDby4gS0cKKzkwNTA3QiAgICAgKGJhc2UgMTYpCQlBZHZhbmNlZCBQQU5NT0JJTCBTeXN0ZW1zIEdtYkggJiBDby4gS0cKKwkJCQlIYW5zZXN0cmHfZSA5MQorCQkJCUNvbG9nbmUgTlJXIDUxMTQ5CisJCQkJR0VSTUFOWQorCis5MC01MS0zRiAgIChoZXgpCQlFbGV0dHJvbmljYSBTYW50ZXJubworOTA1MTNGICAgICAoYmFzZSAxNikJCUVsZXR0cm9uaWNhIFNhbnRlcm5vCisJCQkJUy5TLiBTZWxpY2UsIDQ3CisJCQkJSW1vbGEgQm9sb2duYSA0MDAyNgorCQkJCUlUQUxZCisKKzkwLTU0LTQ2ICAgKGhleCkJCVRFUyBFTEVDVFJPTklDIFNPTFVUSU9OUworOTA1NDQ2ICAgICAoYmFzZSAxNikJCVRFUyBFTEVDVFJPTklDIFNPTFVUSU9OUworCQkJCUltbWV1YmxlIE9keXNzZWUKKwkJCQlaQUMgZGUgQmxvc3NhYworCQkJCUJSVVogIDM1MTcwCisJCQkJRlJBTkNFCisKKzkwLTU1LUFFICAgKGhleCkJCUVyaWNzc29uLCBFQUIvUldJL0sKKzkwNTVBRSAgICAgKGJhc2UgMTYpCQlFcmljc3NvbiwgRUFCL1JXSS9LCisJCQkJU2tvbGfDpW5nZW4gMTcKKwkJCQlHw6R2bGUgIFNFLTgwMCAwNgorCQkJCVNXRURFTgorCis5MC01Ni04MiAgIChoZXgpCQlMZW5icm9vayBJbmR1c3RyaWVzIExpbWl0ZWQKKzkwNTY4MiAgICAgKGJhc2UgMTYpCQlMZW5icm9vayBJbmR1c3RyaWVzIExpbWl0ZWQKKwkJCQk2MzMgR3Jhbml0ZSBDb3VydAorCQkJCVBpY2tlcmluZyBPbnRhcmlvIEwxVyAzSzEKKwkJCQlDQU5BREEKKworOTAtNUYtOEQgICAoaGV4KQkJbW9kYXMgR21iSAorOTA1RjhEICAgICAoYmFzZSAxNikJCW1vZGFzIEdtYkgKKwkJCQlCZWx6aWdlciBTdHIuIDY5LTcxCisJCQkJQmVybGluICAxMDgyMworCQkJCUdFUk1BTlkKKworOTAtNjEtMEMgICAoaGV4KQkJRmlkYSBJbnRlcm5hdGlvbmFsIChTKSBQdGUgTHRkCis5MDYxMEMgICAgIChiYXNlIDE2KQkJRmlkYSBJbnRlcm5hdGlvbmFsIChTKSBQdGUgTHRkCisJCQkJQmxrIDE2LCBLYWxsYW5nIFBsYWNlIAorCQkJCSMwNi0wMiwgCisJCQkJMzM5MTU2CisJCQkJU0lOR0FQT1JFCisKKzkwLTY3LUI1ICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50Cis5MDY3QjUgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQKKwkJCQk2MDAtNzAwIE1vdW50YWluIEF2ZS4KKwkJCQkzQS0yMzBDCisJCQkJTXVycmF5IEhpaWxsIE5KIDA3OTc0LTA2MzYKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLTY3LUYzICAgKGhleCkJCUFsY2F0ZWwgTHVjZW50Cis5MDY3RjMgICAgIChiYXNlIDE2KQkJQWxjYXRlbCBMdWNlbnQKKwkJCQlWaWEgdHJlbnRvLCAzMAorCQkJCVZpbWVyY2F0ZSBNQiAyMDA1OQorCQkJCUlUQUxZCisKKzkwLTZELUM4ICAgKGhleCkJCURMRyBBdXRvbWHDp8OjbyBJbmR1c3RyaWFsIEx0ZGEKKzkwNkRDOCAgICAgKGJhc2UgMTYpCQlETEcgQXV0b21hw6fDo28gSW5kdXN0cmlhbCBMdGRhCisJCQkJUnVhIEpvc8OpIEJhdGlzdGEgU29hcmVzLCA1MworCQkJCURpc3RyaXRvIEluZHVzdHJpYWwKKwkJCQlTZXJ0w6NvemluaG8gU8OjbyBQYXVsbyAxNDE3Ni0xMTkKKwkJCQlCUkFaSUwKKworOTAtNkUtQkIgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorOTA2RUJCICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzCisJCQkJQ0hJTkEKKworOTAtNzAtMjUgICAoaGV4KQkJR2FyZWEgTWljcm9zeXMgQ28uLEx0ZC4KKzkwNzAyNSAgICAgKGJhc2UgMTYpCQlHYXJlYSBNaWNyb3N5cyBDby4sTHRkLgorCQkJCTR0aCBGbG9vciwgQnVpbGRpbmcgMiwgU29mdHdhcmUgUGFyaworCQkJCTIgS2VsaW5nIFJvYWQsIE5ldyBkaXN0cmljdCwgCisJCQkJU3V6aG91IEppYW5nc3UgMjE1MTYzCisJCQkJQ0hJTkEKKworOTAtN0YtNjEgICAoaGV4KQkJQ2hpY29ueSBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKzkwN0Y2MSAgICAgKGJhc2UgMTYpCQlDaGljb255IEVsZWN0cm9uaWNzIENvLiwgTHRkLgorCQkJCU5vLjI1LCBXdS1Hb25nIDZ0aCBSZC4sIFd1IEt1IEluZHVzdHJpYWwgUGFyaywgCisJCQkJVGFpcGVpIEhzaWVuLCAgIDI0OAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTAtODQtMEQgICAoaGV4KQkJQXBwbGUsIEluYworOTA4NDBEICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLTg4LUEyICAgKGhleCkJCUlPTklDUyBURUNITk9MT0dZIE1FIExUREEKKzkwODhBMiAgICAgKGJhc2UgMTYpCQlJT05JQ1MgVEVDSE5PTE9HWSBNRSBMVERBCisJCQkJUlVBIERFUC4gQU5UT05JTyBFRFUgVklFSVJBCisJCQkJRkxPUklBTiBQT0xJUyBTQU5UQSBDQVRBUklOQSA4ODA0MDAwMAorCQkJCUJSQVpJTAorCis5MC04RC0xRCAgIChoZXgpCQlHSCBUZWNobm9sb2dpZXMKKzkwOEQxRCAgICAgKGJhc2UgMTYpCQlHSCBUZWNobm9sb2dpZXMKKwkJCQk1MDIyIEJpbmhlIFJvYWQsIEJsb2NrIEIsIFVuaXRlZCBQbGF6YQorCQkJCVNoZW56aGVuICA1MTgwMjYKKwkJCQlDSElOQQorCis5MC04Ri1DRiAgIChoZXgpCQlVTk8gU3lzdGVtIENvLiwgTHRkCis5MDhGQ0YgICAgIChiYXNlIDE2KQkJVU5PIFN5c3RlbSBDby4sIEx0ZAorCQkJCSM0MDIgS29sb24gU2NpZW5jZSBWYWxsZXkgpbAuLCAxODctMTAsIEd1cm8tZG9uZywgR3Vyby1ndQorCQkJCVNlb3VsICAxNTItODQ4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzkwLTkwLTNDICAgKGhleCkJCVRSSVNPTiBURUNITk9MT0dZIENPUlBPUkFUSU9OCis5MDkwM0MgICAgIChiYXNlIDE2KQkJVFJJU09OIFRFQ0hOT0xPR1kgQ09SUE9SQVRJT04KKwkJCQlOby4zLCBLdW5nLVllaCAxMnRoIFJkLiwgUGluZy1KZW4gSW5kdXN0cmlhbCBQYXJrLAorCQkJCVBpbmctSmVuIENpdHksICBUYW9ZdWFuIENvdW50eSAzMjQ1OQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTAtOTAtNjAgICAoaGV4KQkJUlNJIFZJREVPIFRFQ0hOT0xPR0lFUworOTA5MDYwICAgICAoYmFzZSAxNikJCVJTSSBWSURFTyBURUNITk9MT0dJRVMKKwkJCQk1NiwgUnVlIEplYW4tR2lyYXVkb3V4IC0gQkFUIDYwCisJCQkJUGFyYyBkJiMzOTthY3Rpdml06SBkZXMgRm9yZ2VzCisJCQkJU1RSQVNCT1VSRyBCYXMtUmhpbiA2NzIwMAorCQkJCUZSQU5DRQorCis5MC05Mi1CNCAgIChoZXgpCQlEaWVobCBCR1QgRGVmZW5jZSBHbWJIICYgQ28uIEtHCis5MDkyQjQgICAgIChiYXNlIDE2KQkJRGllaGwgQkdUIERlZmVuY2UgR21iSCAmIENvLiBLRworCQkJCUFsdGUgTnVzc2RvcmZlciBTdHJhc3NlIDEzCisJCQkJRS1FRQorCQkJCVVlYmVybGluZ2VuICA4ODY2MgorCQkJCUdFUk1BTlkKKworOTAtOTQtRTQgICAoaGV4KQkJRC1MaW5rIEludGVybmF0aW9uYWwKKzkwOTRFNCAgICAgKGJhc2UgMTYpCQlELUxpbmsgSW50ZXJuYXRpb25hbAorCQkJCTEgSW50ZXJuYXRpb25hbCBCdXNpbmVzcyBQYXJrLCAjMDMtMTIsIFRoZSBTeW5lcmd5IFNpbmdhcG9yZSA2MDk5MTcKKwkJCQlTaW5nYXBvcmUgU2luZ2Fwb3JlIDYwOTkxNworCQkJCVNJTkdBUE9SRQorCis5MC1BMi1EQSAgIChoZXgpCQlHSEVPIFNBCis5MEEyREEgICAgIChiYXNlIDE2KQkJR0hFTyBTQQorCQkJCVZpYSBTb2xkaW5pLCAyMgorCQkJCUNoaWFzc28gIENILTY4MzAKKwkJCQlTV0lUWkVSTEFORAorCis5MC1BNC1ERSAgIChoZXgpCQlXaXN0cm9uIE5ld2ViIENvcnAuCis5MEE0REUgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBOZXdlYiBDb3JwLgorCQkJCTIwIFBhcmsgQXZlbnVlIElJLCBIc2luY2h1IFNjaWVuY2UgUGFyaywgCisJCQkJSHNpbmNodSAgIDMwOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTAtQTctODMgICAoaGV4KQkJSlNXIFBBQ0lGSUMgQ09SUE9SQVRJT04gCis5MEE3ODMgICAgIChiYXNlIDE2KQkJSlNXIFBBQ0lGSUMgQ09SUE9SQVRJT04gCisJCQkJM0YtMywgTm8uNzAwLCBDaHVuZy1aaGVuZyBSZCwgWmhvbmdoZSBEaXN0cmljdAorCQkJCU5ldyBUYWlwZWkgQ2l0eSAgMjM1IAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTAtQTctQzEgICAoaGV4KQkJUGFrZWRnZSBEZXZpY2UgYW5kIFNvZnR3YXJlIEluYy4KKzkwQTdDMSAgICAgKGJhc2UgMTYpCQlQYWtlZGdlIERldmljZSBhbmQgU29mdHdhcmUgSW5jLgorCQkJCTEwMTEgRWR3YXJkcyBSb2FkCisJCQkJQnVybGluZ2FtZSBDQSA5NDAxMAorCQkJCVVOSVRFRCBTVEFURVMKKworOTAtQUMtM0YgICAoaGV4KQkJQnJpZ2h0U2lnbiBMTEMKKzkwQUMzRiAgICAgKGJhc2UgMTYpCQlCcmlnaHRTaWduIExMQworCQkJCTE2Nzk1IExhcmsgQXZlLgorCQkJCVN1aXRlIDIwMAorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworOTAtQjEtMzQgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KKzkwQjEzNCAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLUI4LUQwICAgKGhleCkJCUpveWVudCwgSW5jLgorOTBCOEQwICAgICAoYmFzZSAxNikJCUpveWVudCwgSW5jLgorCQkJCTM0NSBDYWxpZm9ybmlhIFN0cmVldCwKKwkJCQlTdWl0ZSAyMDAwCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEwNAorCQkJCVVOSVRFRCBTVEFURVMKKworOTAtQjktN0QgICAoaGV4KQkJSm9obnNvbiBPdXRkb29ycyBNYXJpbmUgRWxlY3Ryb25pY3MgZC9iL2EgTWlubmtvdGEKKzkwQjk3RCAgICAgKGJhc2UgMTYpCQlKb2huc29uIE91dGRvb3JzIE1hcmluZSBFbGVjdHJvbmljcyBkL2IvYSBNaW5ua290YQorCQkJCTE1MzEgRSBNYWRpc29uIEF2ZQorCQkJCU1hbmthdG8gTU4gNTYwMDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLUMxLTE1ICAgKGhleCkJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCis5MEMxMTUgICAgIChiYXNlIDE2KQkJU29ueSBFcmljc3NvbiBNb2JpbGUgQ29tbXVuaWNhdGlvbnMgQUIKKwkJCQlNb2JpbHbkZ2VuIDEwCisJCQkJTHVuZCAgMjIxODEKKwkJCQlTV0VERU4KKworOTAtQ0YtMTUgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzkwQ0YxNSAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1ICA5MDIzMAorCQkJCUZJTkxBTkQKKworOTAtQ0YtN0QgICAoaGV4KQkJUWluZ2RhbyBIaXNlbnNlIEVsZWN0cmljIENvLixMdGQuCis5MENGN0QgICAgIChiYXNlIDE2KQkJUWluZ2RhbyBIaXNlbnNlIEVsZWN0cmljIENvLixMdGQuCisJCQkJMTEsSmlhbmd4aSBSb2FkLFFpbmdkYW8sQ2hpbmEKKwkJCQlRaW5nZGFvIFNoYW5kb25nIDI2NjA3MQorCQkJCUNISU5BCisKKzkwLUQxLTFCICAgKGhleCkJCVBhbG9tYXIgTWVkaWNhbCBUZWNobm9sb2dpZXMKKzkwRDExQiAgICAgKGJhc2UgMTYpCQlQYWxvbWFyIE1lZGljYWwgVGVjaG5vbG9naWVzCisJCQkJMTUgTmV0d29yayBEcml2ZQorCQkJCUJ1cmxpbmd0b24gTUEgMDE4MDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzkwLUQ3LTRGICAgKGhleCkJCUJvb2tlZW4KKzkwRDc0RiAgICAgKGJhc2UgMTYpCQlCb29rZWVuCisJCQkJMjcsIHJ1ZSBkZSBsYSBWaXN0dWxlCisJCQkJUGFyaXMgIDc1MDEzCisJCQkJRlJBTkNFCisKKzkwLUQ3LUVCICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCis5MEQ3RUIgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlNUyA4NzIzCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis5MC1EOC01MiAgIChoZXgpCQlDb210ZWMgQ28uLCBMdGQuCis5MEQ4NTIgICAgIChiYXNlIDE2KQkJQ29tdGVjIENvLiwgTHRkLgorCQkJCSAzRi4sIE5vLjgxLCBKaWFua2FuZyBSZC4sCisJCQkJWmhvbmdoZSBDaXR5IFRhaXBlaSBDb3VudHkgMjM1ODYKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzkwLUQ5LTJDICAgKGhleCkJCUhVRy1XSVRTQ0hJIEFHCis5MEQ5MkMgICAgIChiYXNlIDE2KQkJSFVHLVdJVFNDSEkgQUcKKwkJCQlBdXJpZWRzdHJhc3NlIDEwCisJCQkJQm9lc2luZ2VuIEZyaWJvdXJnIDMxNzgKKwkJCQlTV0lUWkVSTEFORAorCis5MC1FMC1GMCAgIChoZXgpCQlJRUVFIFAxNzIyIAorOTBFMEYwICAgICAoYmFzZSAxNikJCUlFRUUgUDE3MjIgCisJCQkJODc2MCBTYW5keSBQYXJrd2F5CisJCQkJU2FuZHkgVXRhaCA4NDA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworOTAtRTItQkEgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRpb24KKzkwRTJCQSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGlvbgorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworOTAtRTYtQkEgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCis5MEU2QkEgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdSwgCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzkwLUVBLTYwICAgKGhleCkJCVNQSSBMYXNlcnMgTHRkIAorOTBFQTYwICAgICAoYmFzZSAxNikJCVNQSSBMYXNlcnMgTHRkIAorCQkJCTYgd2VsbGluZ3RvbiBQYXJrCisJCQkJSGVkZ2UgRW5kCisJCQkJU291dGhhbXB0b24gSGFtcHNoaXJlIFMwMzAyUVUKKwkJCQlVTklURUQgS0lOR0RPTQorCis5MC1GMi03OCAgIChoZXgpCQlSYWRpdXMgR2F0ZXdheQorOTBGMjc4ICAgICAoYmFzZSAxNikJCVJhZGl1cyBHYXRld2F5CisJCQkJNTIwIEUuIE1vbnRmb3JkIEF2ZQorCQkJCUFkYSBPSCA0NTgxMAorCQkJCVVOSVRFRCBTVEFURVMKKworOTAtRjQtQzEgICAoaGV4KQkJUmFuZCBNY05hbGx5Cis5MEY0QzEgICAgIChiYXNlIDE2KQkJUmFuZCBNY05hbGx5CisJCQkJOTg1NSBXb29kcyBEcml2ZQorCQkJCVNrb2tpZSBJTCA2MDA3NworCQkJCVVOSVRFRCBTVEFURVMKKworOTAtRjYtNTIgICAoaGV4KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCis5MEY2NTIgICAgIChiYXNlIDE2KQkJVFAtTElOSyBURUNITk9MT0dJRVMgQ08uLCBMVEQuCisJCQkJQnVpbGRpbmcgMjQgKGZsb29ycyAxLDMsNCw1KSBhbmQgMjggKGZsb29yczEtNCkgIENlbnRyYWwgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSBQYXJrLFNoZW5uYW4gUmQsIE5hbnNoYW4sCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIFByb3ZpbmNlLCA1MTgwNTcKKwkJCQlDSElOQQorCis5MC1GNy0yRiAgIChoZXgpCQlQaGlsbGlwcyBNYWNoaW5lICYgV2VsZGluZyBDby4sIEluYy4gCis5MEY3MkYgICAgIChiYXNlIDE2KQkJUGhpbGxpcHMgTWFjaGluZSAmIFdlbGRpbmcgQ28uLCBJbmMuIAorCQkJCTE2MTI1IEUuIEdhbGUgQXZlLgorCQkJCUluZHVzdHJ5IENBIDkxNzQ1CisJCQkJVU5JVEVEIFNUQVRFUworCis5MC1GQi01QiAgIChoZXgpCQlBdmF5YSwgSW5jCis5MEZCNUIgICAgIChiYXNlIDE2KQkJQXZheWEsIEluYworCQkJCTIxMSBNb3VudCBBaXJ5IFJvYWQgCisJCQkJQmFza2luZyBSaWRnZSBOSiAwNzkyMC0yMzExCisJCQkJVU5JVEVEIFNUQVRFUworCis5MC1GQi1BNiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uTHRkCis5MEZCQTYgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLkNvLkx0ZAorCQkJCTY2LENodW5nIFNoYW4gUmQuVHUtQ2hlbmcKKwkJCQlUYWlwZWkgSHNpZW4gIDIzNgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTQtMDAtNzAgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzk0MDA3MCAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1ICA5MDIzMAorCQkJCUZJTkxBTkQKKworOTQtMDEtNDkgICAoaGV4KQkJQXV0b0hvdEJveAorOTQwMTQ5ICAgICAoYmFzZSAxNikJCUF1dG9Ib3RCb3gKKwkJCQkxNDA5MCBTVyBGcnd5LCBTdGUuIDMwMAorCQkJCVN1Z2FyIExhbmQgVFggNzc0NzgKKwkJCQlVTklURUQgU1RBVEVTCisKKzk0LTBCLTJEICAgKGhleCkJCU5ldFZpZXcgVGVjaG5vbG9naWVzKFNoZW56aGVuKSBDby4sIEx0ZAorOTQwQjJEICAgICAoYmFzZSAxNikJCU5ldFZpZXcgVGVjaG5vbG9naWVzKFNoZW56aGVuKSBDby4sIEx0ZAorCQkJCVJNMjkwMixFYXN0IFRvd2VyLCBOYW5zaGFuIFNvZnR3YXJlIFBhcmsKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDUyCisJCQkJQ0hJTkEKKworOTQtMEMtNkQgICAoaGV4KQkJVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKzk0MEM2RCAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCUJ1aWxkaW5nIDcsIFNlY29uZCBQYXJ0LCBIb25naHVhbGluZyBJbmR1c3RyaWFsIFpvbmUKKwkJCQlYaWxpIHRvd24sIE5hbnNoYW4sCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKKzk0LTExLURBICAgKGhleCkJCUlURiBGcm9zY2hsIEdtYkgKKzk0MTFEQSAgICAgKGJhc2UgMTYpCQlJVEYgRnJvc2NobCBHbWJICisJCQkJSGF1c2VyYmFjaHN0ci4gNyAtIDEwCisJCQkJIFdhbGRlcmJhY2ggQmF2YXJpYSA5MzE5NAorCQkJCUdFUk1BTlkKKworOTQtMTYtNzMgICAoaGV4KQkJUG9pbnQgQ29yZSBTQVJMCis5NDE2NzMgICAgIChiYXNlIDE2KQkJUG9pbnQgQ29yZSBTQVJMCisJCQkJMjkvMzEgUnVlIGR1IEJvaXMgR2Fsb24KKwkJCQlGT05URU5BWSBTT1VTIEJPSVMgSWxlIGRlIEZyYW5jZSA5NDEyMAorCQkJCUZSQU5DRQorCis5NC0xRC0xQyAgIChoZXgpCQlUTGFiIFdlc3QgU3lzdGVtcyBBQgorOTQxRDFDICAgICAoYmFzZSAxNikJCVRMYWIgV2VzdCBTeXN0ZW1zIEFCCisJCQkJRWJiZSBMaWViZXJhdGhzZ2F0YW4gMjNCCisJCQkJR290aGVuYnVyZyAgNDEyNjUKKwkJCQlTV0VERU4KKworOTQtMjAtNTMgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzk0MjA1MyAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU5MAorCQkJCUZJTkxBTkQKKworOTQtMjEtOTcgICAoaGV4KQkJU3RhbG1hcnQgVGVjaG5vbG9neSBMaW1pdGVkCis5NDIxOTcgICAgIChiYXNlIDE2KQkJU3RhbG1hcnQgVGVjaG5vbG9neSBMaW1pdGVkCisJCQkJUm0xMTA2LTExMDdFLCBCdWlsZGluZyBGLCBYaWhhaW1pbmd6aHUsIE5vLjEsIFRhb3l1YW4gUm9hZAorCQkJCU5hbnNoYW4KKwkJCQlTaGVuemhlbiBHdW5hZ2RvbmcgNTE4MDUyCisJCQkJQ0hJTkEKKworOTQtMjMtNkUgICAoaGV4KQkJU2hlbnpoZW4gSnVubGFuIEVsZWN0cm9uaWMgTHRkCis5NDIzNkUgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gSnVubGFuIEVsZWN0cm9uaWMgTHRkCisJCQkJQmxvY2sgQyxOby4yIEluZHVzdHJpYWwgRGlzdHJpY3QsIEZ1eXVhbiwgVGFuZ3dlaSxGdXlvbmcsIEJhbydhbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgxMDMKKwkJCQlDSElOQQorCis5NC0yRS0xNyAgIChoZXgpCQlTY2huZWlkZXIgRWxlY3RyaWMgQ2FuYWRhIEluYworOTQyRTE3ICAgICAoYmFzZSAxNikJCVNjaG5laWRlciBFbGVjdHJpYyBDYW5hZGEgSW5jCisJCQkJMTQwMCBpbmR1c3RyaWVsbGUgc3RyZWV0CisJCQkJTGEgUHJhaXJpZSBRdWViZWMgSjVSIDJFNQorCQkJCUNBTkFEQQorCis5NC0yRS02MyAgIChoZXgpCQlGaW5zw6ljdXIKKzk0MkU2MyAgICAgKGJhc2UgMTYpCQlGaW5zw6ljdXIKKwkJCQk1MiBydWUgUGF1bCBMZXNjb3AKKwkJCQlOYW50ZXJyZSAgOTIwMDAKKwkJCQlGUkFOQ0UKKworOTQtMzEtOUIgICAoaGV4KQkJQWxwaGF0cm9uaWNzIEJWCis5NDMxOUIgICAgIChiYXNlIDE2KQkJQWxwaGF0cm9uaWNzIEJWCisJCQkJV2F0ZXJnb29yd2VnIDcxCisJCQkJTklKS0VSSyBHbGQgMzg2MSBNQQorCQkJCU5FVEhFUkxBTkRTCisKKzk0LTMzLUREICAgKGhleCkJCVRhY28gRWxlY3Ryb25pYyBTb2x1dGlvbnMsIEluYy4KKzk0MzNERCAgICAgKGJhc2UgMTYpCQlUYWNvIEVsZWN0cm9uaWMgU29sdXRpb25zLCBJbmMuCisJCQkJMTE2MCBDcmFuc3RvbiBTdHJlZXQKKwkJCQlDcmFuc3RvbiBSSSAwMjkyMAorCQkJCVVOSVRFRCBTVEFURVMKKworOTQtMzktRTUgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKzk0MzlFNSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgICAyMDE2MTMgCisJCQkJQ0hJTkEKKworOTQtM0EtRjAgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KKzk0M0FGMCAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1IE91IDkwMjMwCisJCQkJRklOTEFORAorCis5NC00NC00NCAgIChoZXgpCQlMRyBJbm5vdGVrCis5NDQ0NDQgICAgIChiYXNlIDE2KQkJTEcgSW5ub3RlaworCQkJCUphbmdkdWstZG9uZywgR3dhbmdzYW4tZ3UKKwkJCQlHd2FuZy1qdSAgNTA2LTczMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis5NC00NC01MiAgIChoZXgpCQlCZWxraW4gSW50ZXJuYXRpb25hbCwgSW5jLgorOTQ0NDUyICAgICAoYmFzZSAxNikJCUJlbGtpbiBJbnRlcm5hdGlvbmFsLCBJbmMuCisJCQkJNTAxIFcuIFdhbG51dCBTdC4KKwkJCQlDb21wdG9uIENBIDkwMjIwCisJCQkJVU5JVEVEIFNUQVRFUworCis5NC00Ni05NiAgIChoZXgpCQlCYXVkVGVjIENvcnBvcmF0aW9uCis5NDQ2OTYgICAgIChiYXNlIDE2KQkJQmF1ZFRlYyBDb3Jwb3JhdGlvbgorCQkJCTEyRiwgTm8uMTgxLCBTZWMuMS5UYXR1bmcgUmQuCisJCQkJSHNpLWNoaWggVGFpcGVpIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTQtNEEtMDkgICAoaGV4KQkJQml0V2lzZSBDb250cm9scworOTQ0QTA5ICAgICAoYmFzZSAxNikJCUJpdFdpc2UgQ29udHJvbHMKKwkJCQk5OCBJbnZlcm5lc3MgRHIgRWFzdAorCQkJCUVuZ2xld29vZCBDTyA4MDExMgorCQkJCVVOSVRFRCBTVEFURVMKKworOTQtNTEtMDMgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworOTQ1MTAzICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworOTQtNTktMkQgICAoaGV4KQkJRUtFIEJ1aWxkaW5nIFRlY2hub2xvZ3kgU3lzdGVtcyBMdGQKKzk0NTkyRCAgICAgKGJhc2UgMTYpCQlFS0UgQnVpbGRpbmcgVGVjaG5vbG9neSBTeXN0ZW1zIEx0ZAorCQkJCVBpaXNwYW5wb3J0dGkgNworCQkJCUVzcG9vIC0gMDIyNDAKKwkJCQlGSU5MQU5ECisKKzk0LTVCLTdFICAgKGhleCkJCVRSSUxPQklUIExUREEuCis5NDVCN0UgICAgIChiYXNlIDE2KQkJVFJJTE9CSVQgTFREQS4KKwkJCQlSLiBBTFZBUkVOR0EgMTM3NworCQkJCUJVVEFOVEEKKwkJCQlTQU8gUEFVTE8gIDA1NTA5MDAyCisJCQkJQlJBWklMCisKKzk0LTYxLTI0ICAgKGhleCkJCVBhc29uIFN5c3RlbXMKKzk0NjEyNCAgICAgKGJhc2UgMTYpCQlQYXNvbiBTeXN0ZW1zCisJCQkJNjEzMCAtIDNyZCBTdHJlZXQgUy5FLgorCQkJCUNhbGdhcnkgQWxiZXJ0YSBUMkgxSzQKKwkJCQlDQU5BREEKKworOTQtNjMtRDEgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCis5NDYzRDEgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzk0LTcxLUFDICAgKGhleCkJCVRDVCBNb2JpbGUgTGltaXRlZAorOTQ3MUFDICAgICAoYmFzZSAxNikJCVRDVCBNb2JpbGUgTGltaXRlZAorCQkJCTVGLCBFIGJ1aWxkaW5nLCBOby4gMjMyLCBMaWFuZyBKaW5nIFJvYWQgWmhhbmdKaWFuZyBIaWdoLVRlY2ggUGFyaywgUHVkb25nIEFyZWEKKwkJCQlTaGFuZ2hhaSAgMjAxMjAzCisJCQkJQ0hJTkEKKworOTQtODEtQTQgICAoaGV4KQkJQXp1cmF5IFRlY2hub2xvZ2llcworOTQ4MUE0ICAgICAoYmFzZSAxNikJCUF6dXJheSBUZWNobm9sb2dpZXMKKwkJCQk3NDcwIFNXIEJyaWRnZXBvcnQgUmQKKwkJCQlEdXJoYW0gT1IgOTcyMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzk0LTg1LTdBICAgKGhleCkJCUV2YW50YWdlIEluZHVzdHJpZXMgQ29ycAorOTQ4NTdBICAgICAoYmFzZSAxNikJCUV2YW50YWdlIEluZHVzdHJpZXMgQ29ycAorCQkJCTgxNSBCcmlkZ2UgU3QuIFcuCisJCQkJV2F0ZXJsb28gT250YXJpbyBOMlYgMk03CisJCQkJQ0FOQURBCisKKzk0LTg4LTU0ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCis5NDg4NTQgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKKzk0LThCLTAzICAgKGhleCkJCUVBR0VUIElubm92YXRpb24gYW5kIFRlY2hub2xvZ3kgQ28uLCBMdGQuCis5NDhCMDMgICAgIChiYXNlIDE2KQkJRUFHRVQgSW5ub3ZhdGlvbiBhbmQgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkzL0YsIEJ1aWxkaW5nIDQsIExpYW5jaHVhbmcgVGVjaG5vbG9neSBQYXJrLEJ1amkgVG93biwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTEyCisJCQkJQ0hJTkEKKworOTQtOEQtNTAgICAoaGV4KQkJQmVhbWV4IE95IEFiCis5NDhENTAgICAgIChiYXNlIDE2KQkJQmVhbWV4IE95IEFiCisJCQkJUmlzdGlzdW9ucmFpdHRpIDEwCisJCQkJUGlldGFyc2FhcmkgIEZJLTY4NjAwCisJCQkJRklOTEFORAorCis5NC04Ri1FRSAgIChoZXgpCQlIdWdoZXMgVGVsZW1hdGljcywgSW5jLgorOTQ4RkVFICAgICAoYmFzZSAxNikJCUh1Z2hlcyBUZWxlbWF0aWNzLCBJbmMuCisJCQkJMjAwMiBTdW1taXQgQmx2ZAorCQkJCVN1aXRlIDE4MDAKKwkJCQlBdGxhbnRhIEdBIDMwMzE5CisJCQkJVU5JVEVEIFNUQVRFUworCis5NC05Qy01NSAgIChoZXgpCQlBbHRhIERhdGEgVGVjaG5vbG9naWVzCis5NDlDNTUgICAgIChiYXNlIDE2KQkJQWx0YSBEYXRhIFRlY2hub2xvZ2llcworCQkJCTQ5MDEgUm9ja2F3YXkgQmx2ZCwgQnVpbGRpbmcgQQorCQkJCVJpbyBSYW5jaG8gTk0gODcxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzk0LUE3LUJDICAgKGhleCkJCUJvZHlNZWRpYSwgSW5jLgorOTRBN0JDICAgICAoYmFzZSAxNikJCUJvZHlNZWRpYSwgSW5jLgorCQkJCTQyMCBGb3J0IER1cXVlc25lIEJsdmQKKwkJCQlHYXRld2F5IDEsIFN1aXRlIDE5MDAKKwkJCQlQaXR0c2J1cmdoIFBBIDE1MjIyCisJCQkJVU5JVEVEIFNUQVRFUworCis5NC1BQS1COCAgIChoZXgpCQlKb3ZpZXcoQmVpamluZykgVGVjaG5vbG9neSBDby4gTHRkLgorOTRBQUI4ICAgICAoYmFzZSAxNikJCUpvdmlldyhCZWlqaW5nKSBUZWNobm9sb2d5IENvLiBMdGQuCisJCQkJUm9vbSAzMDIsIFNvdXRoIEJ1aWxkaW5nCisJCQkJTm8uODAgWHVleXVhbm5hbmx1CisJCQkJQmVpamluZyAgMTAwMDgxCisJCQkJQ0hJTkEKKworOTQtQUUtNjEgICAoaGV4KQkJQWxjYXRlbCBMdWNlbnQKKzk0QUU2MSAgICAgKGJhc2UgMTYpCQlBbGNhdGVsIEx1Y2VudAorCQkJCVZpYSB0cmVudG8sIDMwCisJCQkJVmltZXJjYXRlIE1CIDIwMDU5CisJCQkJSVRBTFkKKworOTQtQkEtMzEgICAoaGV4KQkJVmlzaW9udGVjIGRhIEFtYXrDtG5pYSBMdGRhLgorOTRCQTMxICAgICAoYmFzZSAxNikJCVZpc2lvbnRlYyBkYSBBbWF6w7RuaWEgTHRkYS4KKwkJCQlSb2QuIEdlcmFsZG8gU2Nhdm9uZSwgMjMwMCAtIEdhbHBhbyAyNworCQkJCUNhbGlmb3JuaWEgQ2VudGVyIC0gUHEuIENhbGlmb3JuaWEKKwkJCQlKYWNhcmXDrSBTUCAxMjMwNS00OTAKKwkJCQlCUkFaSUwKKworOTQtQzQtRTkgICAoaGV4KQkJUG93ZXJMYXllciBNaWNyb3N5c3RlbXMgSG9uZ0tvbmcgTGltaXRlZAorOTRDNEU5ICAgICAoYmFzZSAxNikJCVBvd2VyTGF5ZXIgTWljcm9zeXN0ZW1zIEhvbmdLb25nIExpbWl0ZWQKKwkJCQkyMyBaaGljaHVuIFJkLExpYW5neml5aW56dW8gUm0xMDA5CisJCQkJSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA4MworCQkJCUNISU5BCisKKzk0LUM2LUVCICAgKGhleCkJCU5PVkEgZWxlY3Ryb25pY3MsIEluYy4KKzk0QzZFQiAgICAgKGJhc2UgMTYpCQlOT1ZBIGVsZWN0cm9uaWNzLCBJbmMuCisJCQkJR3JhbmQgQXhlIEJsZGcuIDNGLgorCQkJCTEtNy0yMCwgVWVoYXJhLAorCQkJCVNoaWJ1eWEta3UgVG9reW8gMTUxLTAwNjQKKwkJCQlKQVBBTgorCis5NC1DNy1BRiAgIChoZXgpCQlSYXlsaW9zIFRlY2hub2xvZ3kKKzk0QzdBRiAgICAgKGJhc2UgMTYpCQlSYXlsaW9zIFRlY2hub2xvZ3kKKwkJCQkxMkYuLCBOby4xNiwgSmlhbiA4dGggUmQKKwkJCQlaaG9uZ2hlIENpdHkgVGFpcGVpIENvdW50eSAgMjM1MTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzk0LUNBLTBGICAgKGhleCkJCUhvbmV5d2VsbCBBbmFseXRpY3MKKzk0Q0EwRiAgICAgKGJhc2UgMTYpCQlIb25leXdlbGwgQW5hbHl0aWNzCisJCQkJMjg0MCAybmQgQXZlIFNFCisJCQkJQ2FsZ2FyeSBBbGJlcnRhIFQyQTdYOQorCQkJCUNBTkFEQQorCis5NC1DQy1COSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorOTRDQ0I5ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworOTQtQ0QtQUMgICAoaGV4KQkJQ3Jlb3dhdmUgT3kKKzk0Q0RBQyAgICAgKGJhc2UgMTYpCQlDcmVvd2F2ZSBPeQorCQkJCUxlbnRva2F0dSAyCisJCQkJT3VsdW5zYWxvICBGSU4tOTA0NjAKKwkJCQlGSU5MQU5ECisKKzk0LUQwLTE5ICAgKGhleCkJCUN5ZGxlIENvcnAuCis5NEQwMTkgICAgIChiYXNlIDE2KQkJQ3lkbGUgQ29ycC4KKwkJCQkxMjAzLCBLb2ZvbW9Ub3dlciwgMTYtMyAsIFN1bmFlLURvbmcsIEJ1bmRhbmctR3UKKwkJCQlTZW9uZ25hbS1DaXR5IEd5ZW9uZ2dpLURvIDQ2MzgyNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis5NC1ENy0yMyAgIChoZXgpCQlTaGFuZ2hhaSBEYXJlR2xvYmFsIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorOTRENzIzICAgICAoYmFzZSAxNikJCVNoYW5naGFpIERhcmVHbG9iYWwgVGVjaG5vbG9naWVzIENvLiwgTHRkCisJCQkJMjJGIEluZm8tVGVjaCBCdWlsZGluZworCQkJCU5vLjE1NTUgS29uZ2ppYW5nIFJvYWQgCisJCQkJU2hhbmdoYWkgIDIwMDA5MgorCQkJCUNISU5BCisKKzk0LUQ5LTNDICAgKGhleCkJCUVORUxQUworOTREOTNDICAgICAoYmFzZSAxNikJCUVORUxQUworCQkJCUJ1bCBBcnNlbmlqYSBDYXJub2pldmljYSAxMTcKKwkJCQlCZWxncmFkZSAgMTEwNzAKKwkJCQlTRVJCSUEKKworOTQtREItNDkgICAoaGV4KQkJU0lUQ09SUAorOTREQjQ5ICAgICAoYmFzZSAxNikJCVNJVENPUlAKKwkJCQk3IFJVRSBDQURFVAorCQkJCVBBUklTICA3NTAxNQorCQkJCUZSQU5DRQorCis5NC1EQi1DOSAgIChoZXgpCQlBenVyZXdhdmUKKzk0REJDOSAgICAgKGJhc2UgMTYpCQlBenVyZXdhdmUKKwkJCQk4RiBObzk0IEJhb3pob25nIFJkCisJCQkJWGluZGlhbkRpc3RyaWN0LCBOZXcgVGFpcGVpIENpdHkgIDIzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOTQtREQtM0YgICAoaGV4KQkJQStWIExpbmsgVGVjaG5vbG9naWVzLCBDb3JwLgorOTRERDNGICAgICAoYmFzZSAxNikJCUErViBMaW5rIFRlY2hub2xvZ2llcywgQ29ycC4KKwkJCQk1Ri4sIE5vLjU1MCwgWGlhbnpoZW5nIDJuZCBSZC4KKwkJCQlaaHViZWkgQ2l0eSBIc2luY2h1IENvdW50cnkgMzAyNjgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzk0LURFLTBFICAgKGhleCkJCVNtYXJ0T3B0aWNzIEFTCis5NERFMEUgICAgIChiYXNlIDE2KQkJU21hcnRPcHRpY3MgQVMKKwkJCQlTdGFsZmphZXJhIDkKKwkJCQlPc2xvICBOLTA5NzUKKwkJCQlOT1JXQVkKKworOTQtREYtNTggICAoaGV4KQkJSUogRWxlY3Ryb24gQ08uLEx0ZC4KKzk0REY1OCAgICAgKGJhc2UgMTYpCQlJSiBFbGVjdHJvbiBDTy4sTHRkLgorCQkJCTQwMSBBQ0UgSElHSEVORDgsIDM0NS00IEdBU0FOLURPTkcKKwkJCQlLRVVNQ0hFT04tR1UgCisJCQkJU0VPVUwgIDE1My04MDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworOTQtRTAtRDAgICAoaGV4KQkJSGVhbHRoU3RyZWFtIFRhaXdhbiBJbmMuCis5NEUwRDAgICAgIChiYXNlIDE2KQkJSGVhbHRoU3RyZWFtIFRhaXdhbiBJbmMuCisJCQkJMTYtMywgWmljaGlhbmcgMXN0IFJvYWQKKwkJCQlKaG9uZ2xpLCBUYW95dWFuIGNvdW50eSAgMzIwNjMKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzk0LUUyLTI2ICAgKGhleCkJCUQuIE9SdGl6IENvbnN1bHRpbmcsIExMQworOTRFMjI2ICAgICAoYmFzZSAxNikJCUQuIE9SdGl6IENvbnN1bHRpbmcsIExMQworCQkJCTIyNjAxIE4uIDE3dGggQXZlbnVlIFN1aXRlIDI3MAorCQkJCVBob2VuaXggQVogODUwMjcKKwkJCQlVTklURUQgU1RBVEVTCisKKzk0LUU3LTExICAgKGhleCkJCVhpcmthIERhbWEgUGVyc2FkYSBQVAorOTRFNzExICAgICAoYmFzZSAxNikJCVhpcmthIERhbWEgUGVyc2FkYSBQVAorCQkJCUdkZyBDTQorCQkJCUpsbiBNYXRyYW1hbiBJIE5vIDkKKwkJCQlKYWthcnRhICAxMzE1MAorCQkJCUlORE9ORVNJQQorCis5NC1FOC00OCAgIChoZXgpCQlGWUxERSBNSUNSTyBMVEQKKzk0RTg0OCAgICAgKGJhc2UgMTYpCQlGWUxERSBNSUNSTyBMVEQKKwkJCQk4IEFWUk9FIENSRVNDRU5UCisJCQkJQkxBQ0tQT09MIExBTkNBU0hJUkUgRlk0IDJEUAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzk0LUY2LTkyICAgKGhleCkJCUdlbWluaWNvIGNvLixMdGQuCis5NEY2OTIgICAgIChiYXNlIDE2KQkJR2VtaW5pY28gY28uLEx0ZC4KKwkJCQkjMTAyLTExMTIsIENodW51aS1UZWNobm9wYXJrLCAyMDAtMSwKKwkJCQlDaHVudWktZG9uZywgV29ubWktZ3UKKwkJCQlCdWNoZW9uLWNpdHkgS3l1bmdnaS1kbyA0MjAtODU3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzk0LUY3LTIwICAgKGhleCkJCVRpYW5qaW4gRGV2aXNlciBFbGVjdHJvbmljcyBJbnN0cnVtZW50IENvLiwgTHRkCis5NEY3MjAgICAgIChiYXNlIDE2KQkJVGlhbmppbiBEZXZpc2VyIEVsZWN0cm9uaWNzIEluc3RydW1lbnQgQ28uLCBMdGQKKwkJCQlOby40MCBZaWJpbiBSb2FkLE5hbmthaSBkaXN0cmljdCwKKwkJCQlUaWFuamluICAzMDAxMTMKKwkJCQlDSElOQQorCis5NC1GQS1FOCAgIChoZXgpCQlTaGVuemhlbiBFeWNvbSBUZWNobm9sb2d5IENvLiwgTHRkIAorOTRGQUU4ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEV5Y29tIFRlY2hub2xvZ3kgQ28uLCBMdGQgCisJCQkJRVlBTkcgQnVpbGRpbmcsIE5vLiAzIG9mIFFpbWluIFJkLCBMYW5nc2hhbiAybmQgU3RyZWV0LCBOb3J0aCBBcmVhIG9mIEhpLVRlY2ggSW5kdXN0cmlhbCBab25lLCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3VhbmcgRG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCis5NC1GRC0xRCAgIChoZXgpCQlXaGVyZVdoZW4gQ29ycAorOTRGRDFEICAgICAoYmFzZSAxNikJCVdoZXJlV2hlbiBDb3JwCisJCQkJOTZBIEZseW5uIEF2ZW51ZQorCQkJCU1vdW50YWluIFZpZXcgQ2FsaWZvcm5pYSA5NDA0MworCQkJCVVOSVRFRCBTVEFURVMKKworOTQtRkUtRjQgICAoaGV4KQkJU0FHRU1DT00KKzk0RkVGNCAgICAgKGJhc2UgMTYpCQlTQUdFTUNPTQorCQkJCTI1MCByb3V0ZSBkZSBsJ0VtcGVyZXVyCisJCQkJUlVFSUwgTUFMTUFJU09OICA5Mjg0OAorCQkJCUZSQU5DRQorCis5OC0wMi04NCAgIChoZXgpCQlUaGVvYnJvbWEgU3lzdGVtcyBHbWJICis5ODAyODQgICAgIChiYXNlIDE2KQkJVGhlb2Jyb21hIFN5c3RlbXMgR21iSAorCQkJCUd1dGhlaWwtU2Nob2RlciBHYXNzZSAxNworCQkJCVdpZW4gIDEyMzAKKwkJCQlBVVNUUklBCisKKzk4LTAzLUEwICAgKGhleCkJCUFCQiBuLnYuIFBvd2VyIFF1YWxpdHkgUHJvZHVjdHMKKzk4MDNBMCAgICAgKGJhc2UgMTYpCQlBQkIgbi52LiBQb3dlciBRdWFsaXR5IFByb2R1Y3RzCisJCQkJMTAgYWxs6WUgY2VudHJhbGUKKwkJCQlKdW1ldCAgNjA0MAorCQkJCUJFTEdJVU0KKworOTgtMDMtRDggICAoaGV4KQkJQXBwbGUsIEluYy4KKzk4MDNEOCAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworOTgtMEMtODIgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvIE1lY2hhbmljcworOTgwQzgyICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3RybyBNZWNoYW5pY3MKKwkJCQlNZXRhbiBEb25nIDMxNCwgWW91bmd0b25nIEd1CisJCQkJU3V3b24gS3l1bmctZ2kgRG8uIDQ0My03NDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworOTgtMEUtRTQgICAoaGV4KQkJUFJJVkFURQorOTgwRUU0ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCis5OC0yNi0yQSAgIChoZXgpCQlBcHBsaWVkIFJlc2VhcmNoIEFzc29jaWF0ZXMsIEluYworOTgyNjJBICAgICAoYmFzZSAxNikJCUFwcGxpZWQgUmVzZWFyY2ggQXNzb2NpYXRlcywgSW5jCisJCQkJNDMwMCBTYW4gTWF0ZW8gQm91bGV2YXJkIE5FCisJCQkJU3VpdGUgYS0yMjAKKwkJCQlBbGJ1cXVlcnF1ZSBOTSA4NzExMAorCQkJCVVOSVRFRCBTVEFURVMKKworOTgtMjktM0YgICAoaGV4KQkJRnVqaWFuIFN0YXJ0IENvbXB1dGVyIEVxdWlwbWVudCBDby4sTHRkCis5ODI5M0YgICAgIChiYXNlIDE2KQkJRnVqaWFuIFN0YXJ0IENvbXB1dGVyIEVxdWlwbWVudCBDby4sTHRkCisJCQkJTm8uNjggSG9uZ3NoYW5neXVhbiBSb2FkLCAgCisJCQkJRnV6aG91IENpdHksICBGdWppYW4gUHJvdmluY2UsIDM1MDAwMgorCQkJCUNISU5BCisKKzk4LTJDLUJFICAgKGhleCkJCTJXaXJlCis5ODJDQkUgICAgIChiYXNlIDE2KQkJMldpcmUKKwkJCQkxNzY0IEF1dG9tYXRpb24gUGt3eQorCQkJCVNhbiBKb3NlIENBIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCis5OC0yRC01NiAgIChoZXgpCQlSZXNvbHV0aW9uIEF1ZGlvCis5ODJENTYgICAgIChiYXNlIDE2KQkJUmVzb2x1dGlvbiBBdWRpbworCQkJCTg4IEhvZmYgU3RyZWV0ICMxMDYKKwkJCQlTYW4gRnJhbmNpc2NvIENBIDk0MTEwCisJCQkJVU5JVEVEIFNUQVRFUworCis5OC0zMC0wMCAgIChoZXgpCQlCZWlqaW5nIEtFTUFDT00gVGVjaG5vbG9naWVzIENvLiwgTHRkLgorOTgzMDAwICAgICAoYmFzZSAxNikJCUJlaWppbmcgS0VNQUNPTSBUZWNobm9sb2dpZXMgQ28uLCBMdGQuCisJCQkJUm9vbSAyMDgsIEJ1aWxkaW5nIDYsIE5vLjUwLCBYaSBTYW4gSHVhbiBCZWkgUm9hZCAKKwkJCQlIYWlkaWFuIERpc3RyaWN0LCAKKwkJCQlCZWlqaW5nICAxMDAwNDQKKwkJCQlDSElOQQorCis5OC0zNS03MSAgIChoZXgpCQlTdWIxMCBTeXN0ZW1zIEx0ZAorOTgzNTcxICAgICAoYmFzZSAxNikJCVN1YjEwIFN5c3RlbXMgTHRkCisJCQkJVGhlIE9sZCBRdWFycnkKKwkJCQlDYXRvbiBDcm9zcworCQkJCUFzaGJ1cnRvbiBEZXZvbiBUUTEzIDdMSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKKzk4LTM1LUI4ICAgKGhleCkJCUFzc2VtYmxlZCBQcm9kdWN0cyBDb3Jwb3JhdGlvbgorOTgzNUI4ICAgICAoYmFzZSAxNikJCUFzc2VtYmxlZCBQcm9kdWN0cyBDb3Jwb3JhdGlvbgorCQkJCTExNSBFLiBMaW5kZW4KKwkJCQlSb2dlcnMgQXJrYW5zYXMgNzI3NTYKKwkJCQlVTklURUQgU1RBVEVTCisKKzk4LTQyLTQ2ICAgKGhleCkJCVNPTCBJTkRVU1RSWSBQVEUuLCBMVEQKKzk4NDI0NiAgICAgKGJhc2UgMTYpCQlTT0wgSU5EVVNUUlkgUFRFLiwgTFRECisJCQkJIDEgTk9SVEggQlJJREdFIFJELiwKKwkJCQkgIzI0LTA1LCBISUdIIFNUUkVFVCBDRU5UUkUsCisJCQkJMTc5MDk0CisJCQkJU0lOR0FQT1JFCisKKzk4LTRBLTQ3ICAgKGhleCkJCUNIRyBIb3NwaXRhbCBCZWRzCis5ODRBNDcgICAgIChiYXNlIDE2KQkJQ0hHIEhvc3BpdGFsIEJlZHMKKwkJCQkxNTMgVG93ZXJsaW5lIFBsYWNlCisJCQkJTG9uZG9uIE9OIE42RSAyVDMKKwkJCQlDQU5BREEKKworOTgtNEItNEEgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHkgSW5jLgorOTg0QjRBICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5IEluYy4KKwkJCQk2MDAgTm9ydGggVVMgSGlnaHdheSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworOTgtNEItRTEgICAoaGV4KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKzk4NEJFMSAgICAgKGJhc2UgMTYpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCis5OC00RS05NyAgIChoZXgpCQlTdGFybGlnaHQgTWFya2V0aW5nIChILiBLLikgTHRkLgorOTg0RTk3ICAgICAoYmFzZSAxNikJCVN0YXJsaWdodCBNYXJrZXRpbmcgKEguIEsuKSBMdGQuCisJCQkJNS9GLiwgU2hpbmcgRGFvIEluZHVzdHJpYWwgQnVpbGRpbmcsIAorCQkJCTIzMiBBYmVyZGVlbiBNYWluIFJvYWQKKwkJCQlIT05HIEtPTkcKKworOTgtNTgtOEEgICAoaGV4KQkJU1lTR1JBVElPTiBMdGQuCis5ODU4OEEgICAgIChiYXNlIDE2KQkJU1lTR1JBVElPTiBMdGQuCisJCQkJMTBGbC5OTy44NjgtMy5DaHVuZyBDaGVuZyBSZC4KKwkJCQlDaHVuZyBIbyBEaXN0cmljdCwKKwkJCQlOZXdUYWlwZWkgQ2l0eSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis5OC01OS00NSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworOTg1OTQ1ICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCis5OC01RS0xQiAgIChoZXgpCQlDb252ZXJzRGlnaXRhbCBDby4sIEx0ZC4KKzk4NUUxQiAgICAgKGJhc2UgMTYpCQlDb252ZXJzRGlnaXRhbCBDby4sIEx0ZC4KKwkJCQk1MzA4IDV0aCBCbGRnLiwgRG9uZyBTZW91bCBVbml2LgorCQkJCUJva2plb25nLWRvbmcsIFN1amVvbmctZ3UKKwkJCQlTZW9uZ25hbSBHeWVvbmdnaSA0NjE3MTQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworOTgtNjAtMjIgICAoaGV4KQkJRU1XIENvLiwgTHRkLgorOTg2MDIyICAgICAoYmFzZSAxNikJCUVNVyBDby4sIEx0ZC4KKwkJCQk4MEItNEwsIDY4MC0zIEdvamFuLURvbmcKKwkJCQlOYW1kb25nLUd1CisJCQkJSW5jaGVvbiAgNDA1LTgxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis5OC02Ni1FQSAgIChoZXgpCQlJbmR1c3RyaWFsIENvbnRyb2wgQ29tbXVuaWNhdGlvbnMsIEluYy4KKzk4NjZFQSAgICAgKGJhc2UgMTYpCQlJbmR1c3RyaWFsIENvbnRyb2wgQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQkxNjAwIEFzcGVuIENvbW1vbnMKKwkJCQlTdWl0ZSAyMTAKKwkJCQlNaWRkbGV0b24gV0kgNTM1NjIKKwkJCQlVTklURUQgU1RBVEVTCisKKzk4LTZELUM4ICAgKGhleCkJCVRPU0hJQkEgTUlUU1VCSVNISS1FTEVDVFJJQyBJTkRVU1RSSUFMIFNZU1RFTVMgQ09SUE9SQVRJT04KKzk4NkRDOCAgICAgKGJhc2UgMTYpCQlUT1NISUJBIE1JVFNVQklTSEktRUxFQ1RSSUMgSU5EVVNUUklBTCBTWVNURU1TIENPUlBPUkFUSU9OCisJCQkJTUlUQSA0M01UIEJMREcuCisJCQkJMTMtMTZNSVRBIDMtQ0hPTUUsTUlOQVRPLUtVCisJCQkJVE9LWU8gSkFQQU4gMTA4LTAwNzMKKwkJCQlKQVBBTgorCis5OC03My1DNCAgIChoZXgpCQlTYWdlIEVsZWN0cm9uaWMgRW5naW5lZXJpbmcgTExDCis5ODczQzQgICAgIChiYXNlIDE2KQkJU2FnZSBFbGVjdHJvbmljIEVuZ2luZWVyaW5nIExMQworCQkJCTIwMSBUZXJyeSBTdC4KKwkJCQlTdWl0ZSAxQQorCQkJCUxvbmdtb250IENPIDgwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCis5OC04Mi0xNyAgIChoZXgpCQlEaXNydXB0aXZlIEx0ZAorOTg4MjE3ICAgICAoYmFzZSAxNikJCURpc3J1cHRpdmUgTHRkCisJCQkJV2luZHNvciBIb3VzZQorCQkJCVR1cm5waWtlIFJvYWQKKwkJCQlIaWdoIFd5Y29tYmUgQnVja2luZ2hhbXNoaXJlIEhQMTIgM05SCisJCQkJVU5JVEVEIEtJTkdET00KKworOTgtODktRUQgICAoaGV4KQkJQW5hZGVtIEluZm9ybWF0aW9uIEluYy4KKzk4ODlFRCAgICAgKGJhc2UgMTYpCQlBbmFkZW0gSW5mb3JtYXRpb24gSW5jLgorCQkJCTJuZCBGLCA3OSBaaG91emkgU3RyZWV0LCBOZWlodSBEaXN0cmljdCwgCisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzk4LThCLTVEICAgKGhleCkJCVNBR0VNIENPTU1VTklDQVRJT04KKzk4OEI1RCAgICAgKGJhc2UgMTYpCQlTQUdFTSBDT01NVU5JQ0FUSU9OCisJCQkJMjUwIHJvdXRlIGRlIGwnRW1wZXJldXIKKwkJCQlSdWVpbCBNYWxtYWlzb24gIDkyODQ4CisJCQkJRlJBTkNFCisKKzk4LThCLUFEICAgKGhleCkJCUNvcmludGVjaCBMdGQuCis5ODhCQUQgICAgIChiYXNlIDE2KQkJQ29yaW50ZWNoIEx0ZC4KKwkJCQlBc2hmb3JkIE1pbGwKKwkJCQlTdGF0aW9uIFJvYWQKKwkJCQlGb3JkaW5nYnJpZGdlIEhhbXBzaGlyZSBTUDYgMURaCisJCQkJVU5JVEVEIEtJTkdET00KKworOTgtOEUtMzQgICAoaGV4KQkJWkhFSklBTkcgQk9YU0FNIEVMRUNUUk9OSUMgQ08uLExURAorOTg4RTM0ICAgICAoYmFzZSAxNikJCVpIRUpJQU5HIEJPWFNBTSBFTEVDVFJPTklDIENPLixMVEQKKwkJCQlOby4yODgsTE9OR1RBTiBST0FELAorCQkJCUpJTkhVQSBDSVRZIFpIRUpJQU5HIFBST1ZJTkNFLCAzMjEwMTcKKwkJCQlDSElOQQorCis5OC04RS1ERCAgIChoZXgpCQlSYXljaGVtIEludGVybmF0aW9uYWwKKzk4OEVERCAgICAgKGJhc2UgMTYpCQlSYXljaGVtIEludGVybmF0aW9uYWwKKwkJCQlCYXkgMTA1LCAKKwkJCQlTaGFubm9uIEluZHVzdHJpYWwgRXN0YXRlLAorCQkJCVNoYW5ub24sIENvLiBDbGFyZSBFaXJlCisJCQkJSVJFTEFORAorCis5OC05MC04MCAgIChoZXgpCQlMaW5rcG93ZXIgTmV0d29yayBTeXN0ZW0gSW5jIEx0ZC4KKzk4OTA4MCAgICAgKGJhc2UgMTYpCQlMaW5rcG93ZXIgTmV0d29yayBTeXN0ZW0gSW5jIEx0ZC4KKwkJCQlSb29tIDIwNSxOb3J0aGVhc3QgQi0xLCBFYXN0IEluZHVzdHJ5IFpvbmUKKwkJCQlPdmVyc2VhcyBDaGluZXNlIFRvd24sTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTMKKwkJCQlDSElOQQorCis5OC05NC00OSAgIChoZXgpCQlTa3l3b3J0aCBXaXJlbGVzcyBUZWNobm9sb2d5IEx0ZC4KKzk4OTQ0OSAgICAgKGJhc2UgMTYpCQlTa3l3b3J0aCBXaXJlbGVzcyBUZWNobm9sb2d5IEx0ZC4KKwkJCQlVbml0IEEgUm0uM0EwMSwgU2t5d29ydGggQmxkZy4sIEdhb3hpbiBBdmUuIDEuUy4sCisJCQkJTmFuc2hhbiBEaXN0cmljdCBTaGVuemhlbiA1MTgwNTcKKwkJCQlDSElOQQorCis5OC1BNy1CMCAgIChoZXgpCQlNQ1NUIFpBTworOThBN0IwICAgICAoYmFzZSAxNikJCU1DU1QgWkFPCisJCQkJMzUvNTAsIE5pemhueWF5YSBLcmFzbm9zZWxza2F5YSBTdC4sCisJCQkJTW9zY293ICAxMDU2NjYKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworOTgtQUEtRDcgICAoaGV4KQkJQkxVRSBXQVZFIE5FVFdPUktJTkcgQ08gTFRECis5OEFBRDcgICAgIChiYXNlIDE2KQkJQkxVRSBXQVZFIE5FVFdPUktJTkcgQ08gTFRECisJCQkJTm8uIDIwLCBMYW5lIDY4LCBEYS1mZW5nIFJELCAKKwkJCQlORVcgVEFJUEVJIFRBSVBFSSAgMjMxMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKKzk4LUJDLTU3ICAgKGhleCkJCVNWQSBURUNITk9MT0dJRVMgQ08uTFRECis5OEJDNTcgICAgIChiYXNlIDE2KQkJU1ZBIFRFQ0hOT0xPR0lFUyBDTy5MVEQKKwkJCQk1RiBOby4xOTIgVGluZ2xpbiBSb2FkLAorCQkJCVNIQU5HSEFJICAyMDAyMzMKKwkJCQlDSElOQQorCis5OC1CQy05OSAgIChoZXgpCQlFZGVsdGVjaCBDby4sTHRkLgorOThCQzk5ICAgICAoYmFzZSAxNikJCUVkZWx0ZWNoIENvLixMdGQuCisJCQkJIzMwMiBKYW1hZSBCbGRnLCAxMDEwLTI4LCBTYWRhbmctZG9uZywgRG9uZ2phaz1ndQorCQkJCVNlb3VsICAxNTYtODI0CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzk4LUM4LTQ1ICAgKGhleCkJCVBhY2tldEFjY2VzcworOThDODQ1ICAgICAoYmFzZSAxNikJCVBhY2tldEFjY2VzcworCQkJCTYxMSBOb3J0aCBNYWluIFN0cmVldAorCQkJCUdvbGRmaWVsZCBJQSA1MDU0MworCQkJCVVOSVRFRCBTVEFURVMKKworOTgtRDYtODYgICAoaGV4KQkJQ2h5aSBMZWUgaW5kdXN0cnkgQ28uLCBsdGQuCis5OEQ2ODYgICAgIChiYXNlIDE2KQkJQ2h5aSBMZWUgaW5kdXN0cnkgQ28uLCBsdGQuCisJCQkJTm8uMjUsIFd1ZnUgUmQuLCBYaW55aW5nIERpc3QuCisJCQkJVGFpbmFuIGNpdHkgIDczMDU0CisJCQkJVEFJV0FOLCBQUk9WSU5DRSBPRiBDSElOQQorCis5OC1ENi1CQiAgIChoZXgpCQlBcHBsZSwgSW5jLgorOThENkJCICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis5OC1EOC04QyAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKKzk4RDg4QyAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlDQVJSRVRFUkEgQkFTRSBBRVJFQSAjIDU4NTAKKwkJCQlaYXBvcGFuIEphbGlzY28gNDQxMzAKKwkJCQlNRVhJQ08KKworOTgtREMtRDkgICAoaGV4KQkJVU5JVEVDIENvLiwgTHRkLgorOThEQ0Q5ICAgICAoYmFzZSAxNikJCVVOSVRFQyBDby4sIEx0ZC4KKwkJCQkxLTItMS1TaGlueW9rb2hhbWEKKwkJCQlLb2hva3Uta3UKKwkJCQlZb2tvaGFtYS1zaGkgS2FuYWdhd2EgMjIyLTAwMzMKKwkJCQlKQVBBTgorCis5OC1FMS02NSAgIChoZXgpCQlBY2N1dG9tZQorOThFMTY1ICAgICAoYmFzZSAxNikJCUFjY3V0b21lCisJCQkJMzIyMiBQaG9lbml4dmlsbGUgUGlrZQorCQkJCU1hbHZlcm4gUEEgMTkzNTUKKwkJCQlVTklURUQgU1RBVEVTCisKKzk4LUU3LTlBICAgKGhleCkJCUZveGNvbm4oTmFuSmluZykgQ29tbXVuaWNhdGlvbiBDby4sTHRkLgorOThFNzlBICAgICAoYmFzZSAxNikJCUZveGNvbm4oTmFuSmluZykgQ29tbXVuaWNhdGlvbiBDby4sTHRkLgorCQkJCUEtMkZNaW5mYW5nIEJ1aWxkaW5nIE5vLjE4OSBHdWFuZ3pob3UgUmQgCisJCQkJTmFuamluZyBKaWFuZyBzdSAyMTAwMjkKKwkJCQlDSElOQQorCis5OC1FQy02NSAgIChoZXgpCQlDb3Nlc3kgQXBTCis5OEVDNjUgICAgIChiYXNlIDE2KQkJQ29zZXN5IEFwUworCQkJCVR5dHRlYmFlcnZlaiAyCisJCQkJQW5zIEp5bGxhbmQgREstODY0MworCQkJCURFTk1BUksKKworOTgtRjUtMzcgICAoaGV4KQkJenRlIGNvcnBvcmF0aW9uCis5OEY1MzcgICAgIChiYXNlIDE2KQkJenRlIGNvcnBvcmF0aW9uCisJCQkJMTIvRi4senRlIFImRCBidWlsZGluZyxrZWppbmFuIFJvYWQsCisJCQkJc2hlbnpoZW4gZ3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzk4LUY4LURCICAgKGhleCkJCU1hcmluaSBJbXBpYW50aSBJbmR1c3RyaWFsaSBzLnIubC4KKzk4RjhEQiAgICAgKGJhc2UgMTYpCQlNYXJpbmkgSW1waWFudGkgSW5kdXN0cmlhbGkgcy5yLmwuCisJCQkJVmlhIGRlbGxlIFByb3ZpbmNlLCA2QQorCQkJCShab25hIEFydGlnaWFuYWxlKQorCQkJCUNpc3Rlcm5hIGRpIExhdGluYSAgMDQwMTIKKwkJCQlJVEFMWQorCis5OC1GQy0xMSAgIChoZXgpCQlDaXNjby1MaW5rc3lzLCBMTEMKKzk4RkMxMSAgICAgKGJhc2UgMTYpCQlDaXNjby1MaW5rc3lzLCBMTEMKKwkJCQkxMzEgVGhlcm95IERyaXZlCisJCQkJSXJ2aW5lIENhbGlmb3JuaWEgOTI2MTIKKwkJCQlVTklURUQgU1RBVEVTCisKKzk4LUZFLTAzICAgKGhleCkJCUVyaWNzc29uIC0gTm9ydGggQW1lcmljYQorOThGRTAzICAgICAoYmFzZSAxNikJCUVyaWNzc29uIC0gTm9ydGggQW1lcmljYQorCQkJCTYzMDAgTGVnYWN5IERyaXZlCisJCQkJUGxhbm8gVFggNzUwMjQKKwkJCQlVTklURUQgU1RBVEVTCisKKzlDLTAxLTExICAgKGhleCkJCVNoZW56aGVuIE5ld2FiZWwgRWxlY3Ryb25pYyBDby4sIEx0ZC4KKzlDMDExMSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBOZXdhYmVsIEVsZWN0cm9uaWMgQ28uLCBMdGQuCisJCQkJNUZsciwgU291dGggVG93ZXIgb2YgU2ljaHVhbiBCbGQuLAorCQkJCU5vLjIwMDEgSG9uZ2xpIFJkLiwgRnV0aWFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAyOAorCQkJCUNISU5BCisKKzlDLTAyLTk4ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZCAKKzlDMDI5OCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQgCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzlDLTA2LTZFICAgKGhleCkJCUh5dGVyYSBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbiBMaW1pdGVkCis5QzA2NkUgICAgIChiYXNlIDE2KQkJSHl0ZXJhIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uIExpbWl0ZWQKKwkJCQlIeXRlcmEgVG93ZXIsIEhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrIE5vcnRoLCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzlDLTBELUFDICAgKGhleCkJCVR5bXBoYW55IEhLIExpbWl0ZWQKKzlDMERBQyAgICAgKGJhc2UgMTYpCQlUeW1waGFueSBISyBMaW1pdGVkCisJCQkJUk0gMTMwNy04CisJCQkJRG9taW5pb24gQ2VudHJlCisJCQkJNDMtNTksIFF1ZWVuJ3MgUm9hZCBFYXN0IFdhbmNoYWkgCisJCQkJSE9ORyBLT05HCisKKzlDLTE4LTc0ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCis5QzE4NzQgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKKzlDLTFGLUREICAgKGhleCkJCUFjY3VwaXggSW5jLgorOUMxRkREICAgICAoYmFzZSAxNikJCUFjY3VwaXggSW5jLgorCQkJCTNGIEdhZXlhbmcgQkxERywgNTQ4LTEsIAorCQkJCUFueWFuZyA4LURvbmcsIE1hbmFuLUd1LCAKKwkJCQlBbnlhbmcgS3llb25nZ2ktRG8gNDMwLTczMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis5Qy0yMC03QiAgIChoZXgpCQlBcHBsZSBJbmMKKzlDMjA3QiAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy0yMi0wRSAgIChoZXgpCQlUQVNDQU4gU2VydmljZSBHbWJICis5QzIyMEUgICAgIChiYXNlIDE2KQkJVEFTQ0FOIFNlcnZpY2UgR21iSAorCQkJCU1heC1QbGFuY2stU3RyLiAzOAorCQkJCUNvbG9nbmUgTlJXIDUwODU4CisJCQkJR0VSTUFOWQorCis5Qy0yOC1CRiAgIChoZXgpCQlDb250aW5lbnRhbCBBdXRvbW90aXZlIEN6ZWNoIFJlcHVibGljIHMuci5vLgorOUMyOEJGICAgICAoYmFzZSAxNikJCUNvbnRpbmVudGFsIEF1dG9tb3RpdmUgQ3plY2ggUmVwdWJsaWMgcy5yLm8uCisJCQkJUHL5bXlzbG924SAxODUxCisJCQkJQnJhbmT9cyBuYWQgTGFiZW0gIDI1MCAwMSAKKwkJCQlDWkVDSCBSRVBVQkxJQworCis5Qy0zMS1CNiAgIChoZXgpCQlLdWxpdGUgU2VtaWNvbmR1Y3RvciBQcm9kdWN0cyBJbmMKKzlDMzFCNiAgICAgKGJhc2UgMTYpCQlLdWxpdGUgU2VtaWNvbmR1Y3RvciBQcm9kdWN0cyBJbmMKKwkJCQkxIFdpbGxvdyBUcmVlIFJkCisJCQkJTGVvbmlhIE5KIDA3NjA1CisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy00MS03QyAgIChoZXgpCQlIYW1lICBUZWNobm9sb2d5IENvLiwgIExpbWl0ZWQgCis5QzQxN0MgICAgIChiYXNlIDE2KQkJSGFtZSAgVGVjaG5vbG9neSBDby4sICBMaW1pdGVkIAorCQkJCTVGLCBOby4gMTggSGlnaCBUZWNoIE1pZGRsZSBBdmVudWUgT25lLCBIaWdoIFRlY2ggSW5kdXN0cmlhbCBQYXJrLCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworOUMtNDUtNjMgICAoaGV4KQkJRElNRVAgU2lzdGVtYXMKKzlDNDU2MyAgICAgKGJhc2UgMTYpCQlESU1FUCBTaXN0ZW1hcworCQkJCUF2LiBNT2ZhcnJlaiwgODQwCisJCQkJU2FvIFBhdWxvIFNQIDA1MzExMDAwCisJCQkJQlJBWklMCisKKzlDLTRBLTdCICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCis5QzRBN0IgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSBPdSA5MDU5MAorCQkJCUZJTkxBTkQKKworOUMtNEMtQUUgICAoaGV4KQkJTWVzYSBMYWJzCis5QzRDQUUgICAgIChiYXNlIDE2KQkJTWVzYSBMYWJzCisJCQkJMTAgRXZlcmdyZWVuIERyCisJCQkJQm96ZW1hbiBNVCA1OTcxNQorCQkJCVVOSVRFRCBTVEFURVMKKworOUMtNEUtMjAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworOUM0RTIwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworOUMtNEUtMzYgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCis5QzRFMzYgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCis5Qy00RS04RSAgIChoZXgpCQlBTFQgU3lzdGVtcyBMdGQKKzlDNEU4RSAgICAgKGJhc2UgMTYpCQlBTFQgU3lzdGVtcyBMdGQKKwkJCQlQb0JveCAxNworCQkJCUhlbHNpbmtpICAwMDc2MQorCQkJCUZJTkxBTkQKKworOUMtNTMtQ0QgICAoaGV4KQkJRU5HSUNBTSBzLnIubC4KKzlDNTNDRCAgICAgKGJhc2UgMTYpCQlFTkdJQ0FNIHMuci5sLgorCQkJCVZpYSBEZWkgUHJhdG9uaSBuLjE2CisJCQkJU2NhbmRpY2NpIEZJUkVOWkUgNTAwMTgKKwkJCQlJVEFMWQorCis5Qy01NC1DQSAgIChoZXgpCQlaaGVuZ3pob3UgVkNPTSBTY2llbmNlIGFuZCBUZWNobm9sb2d5IENvLixMdGQKKzlDNTRDQSAgICAgKGJhc2UgMTYpCQlaaGVuZ3pob3UgVkNPTSBTY2llbmNlIGFuZCBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlOYXRpb25hbCA4NjMgU29mdHdhcmUgUGFya++/ve+/vU5vLjYgQ3Vpemh1IFN0cmVldCwgSGktdGVjaCBJbmR1c3J5IERldmVsb3BpbmcgUGFyaworCQkJCVpoZW5nWmhvdSBDaXR5IEhlbmFuIFByb3ZpbmNlIDQ1MDAwMQorCQkJCUNISU5BCisKKzlDLTU1LUI0ICAgKGhleCkJCUkuUy5FLiBTLnIubC4KKzlDNTVCNCAgICAgKGJhc2UgMTYpCQlJLlMuRS4gUy5yLmwuCisJCQkJVmlhIGRlbGxhIENhbmFwaWdsaWEgNQorCQkJCU1pZ2xpYXJpbm8gUGlzYW5vIFBJU0EgNTYwMTAKKwkJCQlJVEFMWQorCis5Qy01Ny0xMSAgIChoZXgpCQlGZWl0aWFuIFh1bmRhKEJlaWppbmcpIEFlcm9uYXV0aWNhbCBJbmZvcm1hdGlvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorOUM1NzExICAgICAoYmFzZSAxNikJCUZlaXRpYW4gWHVuZGEoQmVpamluZykgQWVyb25hdXRpY2FsIEluZm9ybWF0aW9uIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJQnVpbGRpbmcgQixIb3Jpem9uIEludGVybmF0aW9uYWwgVG93ZXIsTm8uNiBaaGljaHVuIFJkLEhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDg4CisJCQkJQ0hJTkEKKworOUMtNUItOTYgICAoaGV4KQkJTk1SIENvcnBvcmF0aW9uCis5QzVCOTYgICAgIChiYXNlIDE2KQkJTk1SIENvcnBvcmF0aW9uCisJCQkJM0YgRXNwcml0IEJ1aWxkLiwxLTMtNiBOaXNoaS1OaXBwb3JpCisJCQkJQXJha2F3YS1LdSBUb2t5byAxMTYtMDAxMworCQkJCUpBUEFOCisKKzlDLTVDLThEICAgKGhleCkJCUZJUkVNQVggSU5E2lNUUklBIEUgQ09NyVJDSU8gREUgUFJPRFVUT1MgRUxFVFLUTklDT1MgTFREQQorOUM1QzhEICAgICAoYmFzZSAxNikJCUZJUkVNQVggSU5E2lNUUklBIEUgQ09NyVJDSU8gREUgUFJPRFVUT1MgRUxFVFLUTklDT1MgTFREQQorCQkJCVI6IFZpY2VudGUgZGUgRmVsaWNlLCA1ODkgLSAgSmQuT3VybyBWZXJkZSAKKwkJCQlMaW1laXJhIFNhbyBQYXVsbyAxMzQ4Mi0wNzUKKwkJCQlCUkFaSUwKKworOUMtNUQtOTUgICAoaGV4KQkJVlRDIEVsZWN0cm9uaWNzIENvcnAuCis5QzVEOTUgICAgIChiYXNlIDE2KQkJVlRDIEVsZWN0cm9uaWNzIENvcnAuCisJCQkJNUYsTm8uMjEsU2VjLjYsWmhvbmd4aWFvIEUuUmQuLE5hbmdhbmcgRGlzdHJpY3QKKwkJCQlUYWlwZWkgIDExNTc1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCis5Qy01RS03MyAgIChoZXgpCQlDYWxpYnJlIFVLIEx0ZAorOUM1RTczICAgICAoYmFzZSAxNikJCUNhbGlicmUgVUsgTHRkCisJCQkJQ29ybndhbGwgSG91c2UKKwkJCQlDb3Jud2FsbCBUZXJyYWNlCisJCQkJQnJhZGZvcmQgV2VzdCBZb3Jrc2hpcmUgQkQ4IDdKUworCQkJCVVOSVRFRCBLSU5HRE9NCisKKzlDLTYxLTFEICAgKGhleCkJCU9tbmktSUQgVVNBLCBJbmMuCis5QzYxMUQgICAgIChiYXNlIDE2KQkJT21uaS1JRCBVU0EsIEluYy4KKwkJCQkxMjAwIFJpZGdld2F5IEF2ZQorCQkJCVJvY2hlc3RlciBOWSAxNDYxNQorCQkJCVVOSVRFRCBTVEFURVMKKworOUMtNjQtNUUgICAoaGV4KQkJSGFybWFuIENvbnN1bWVyIEdyb3VwCis5QzY0NUUgICAgIChiYXNlIDE2KQkJSGFybWFuIENvbnN1bWVyIEdyb3VwCisJCQkJODUwMCBCYWxib2EgQmx2ZAorCQkJCU5vcnRocmlkZ2UgQ0EgOTEzMjkKKwkJCQlVTklURUQgU1RBVEVTCisKKzlDLTZBLUJFICAgKGhleCkJCVFFRVMgQXBTLgorOUM2QUJFICAgICAoYmFzZSAxNikJCVFFRVMgQXBTLgorCQkJCU5hdmVybGFuZCAzMSwgMi50dgorCQkJCUdsb3N0cnVwIEhvdmVkc3RhZGVuIDI2MDAKKwkJCQlERU5NQVJLCisKKzlDLTc1LTE0ICAgKGhleCkJCVdpbGRpeCBzcmwKKzlDNzUxNCAgICAgKGJhc2UgMTYpCQlXaWxkaXggc3JsCisJCQkJbG9jLiBMZSBCYXNzZSwgMworCQkJCVRyZW50byBUTiAzODEwMAorCQkJCUlUQUxZCisKKzlDLTc3LUFBICAgKGhleCkJCU5BREFTTlYKKzlDNzdBQSAgICAgKGJhc2UgMTYpCQlOQURBU05WCisJCQkJMjIwMywgVC1kb25nLCBQb29uZ2xpbSBJLXdvbiBQbHVzCisJCQkJU2VvaHllb24tZG9uZywgQnVuZGFuZy1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2My04NjIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworOUMtN0ItRDIgICAoaGV4KQkJTkVPTEFCIENvbnZlcmdlbmNlCis5QzdCRDIgICAgIChiYXNlIDE2KQkJTkVPTEFCIENvbnZlcmdlbmNlCisJCQkJNEYgWXVqdW5nIGJsZGcuLAorCQkJCVNlb2Noby1kb25nLCBTZW9jaG8tZ3UKKwkJCQlTZW91bCAgMTM3LTA3MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCis5Qy04MC03RCAgIChoZXgpCQlTWVNDQUJMRSBLb3JlYSBJbmMuCis5QzgwN0QgICAgIChiYXNlIDE2KQkJU1lTQ0FCTEUgS29yZWEgSW5jLgorCQkJCTJGIEtBTUEgQmxkZyAxNDYxLTE1IFNlY2hvLTNkb25nIFNlb2Noby1HdQorCQkJCVNlb3VsICAxMzctNzIwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKKzlDLThCLUYxICAgKGhleCkJCVRoZSBXYXJlaG91c2UgTGltaXRlZAorOUM4QkYxICAgICAoYmFzZSAxNikJCVRoZSBXYXJlaG91c2UgTGltaXRlZAorCQkJCVN1aXRlIDYwMSwgQ2l0eSBQb2ludCwgMTYwMCBaaG9uZ2h1YSBSb2FkLCBIdWFuZ3B1IERpc3RyaWN0CisJCQkJU2hhbmdoYWkgIDIwMDAxMAorCQkJCUNISU5BCisKKzlDLThFLTk5ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55Cis5QzhFOTkgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworOUMtOEUtREMgICAoaGV4KQkJVGVyYWNvbSBMaW1pdGVkCis5QzhFREMgICAgIChiYXNlIDE2KQkJVGVyYWNvbSBMaW1pdGVkCisJCQkJCisJCQkJTm9pZGEgVXR0YXIgUHJhZGVzaCAyMDEzMDEKKwkJCQlJTkRJQQorCis5Qy05My00RSAgIChoZXgpCQlYZXJveCBDb3Jwb3JhdGlvbgorOUM5MzRFICAgICAoYmFzZSAxNikJCVhlcm94IENvcnBvcmF0aW9uCisJCQkJTWFpbCBTdG9wIDAyMTQgLSA3RQorCQkJCTgwMCBQaGlsbGlwcyBSb2FkCisJCQkJV2Vic3RlciBOWSAxNDU4MAorCQkJCVVOSVRFRCBTVEFURVMKKworOUMtOTUtRjggICAoaGV4KQkJU21hcnREb29yIFN5c3RlbXMsIExMQworOUM5NUY4ICAgICAoYmFzZSAxNikJCVNtYXJ0RG9vciBTeXN0ZW1zLCBMTEMKKwkJCQk1NzExLUEgQ2VudGVyIExhbmUKKwkJCQlGYWxscyBDaHVyY2ggVmlyZ2luaWEgMjIwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKKzlDLUExLTM0ICAgKGhleCkJCU5pa2UsIEluYy4KKzlDQTEzNCAgICAgKGJhc2UgMTYpCQlOaWtlLCBJbmMuCisJCQkJMSBCb3dlcm1hbiBEcml2ZQorCQkJCUJlYXZlcnRvbiBPUiA5NzAwNQorCQkJCVVOSVRFRCBTVEFURVMKKworOUMtQTMtQkEgICAoaGV4KQkJU0FLVVJBIEludGVybmV0IEluYy4KKzlDQTNCQSAgICAgKGJhc2UgMTYpCQlTQUtVUkEgSW50ZXJuZXQgSW5jLgorCQkJCTctMjAtMSBOaXNoaS1zaGluanVrdQorCQkJCVNoaW5qdWt1LWt1IFRva3lvIDE2MDAwMjMKKwkJCQlKQVBBTgorCis5Qy1BRC1FRiAgIChoZXgpCQlPYmloYWkgVGVjaG5vbG9neSwgSW5jLgorOUNBREVGICAgICAoYmFzZSAxNikJCU9iaWhhaSBUZWNobm9sb2d5LCBJbmMuCisJCQkJMTk2MzggU3RldmVucyBDcmVlayBCbHZkCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy1BRi1DQSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCis5Q0FGQ0EgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCis5Qy1CMC0wOCAgIChoZXgpCQlVYmlxdWl0b3VzIENvbXB1dGluZyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCis5Q0IwMDggICAgIChiYXNlIDE2KQkJVWJpcXVpdG91cyBDb21wdXRpbmcgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorCQkJCTItMjAtMSBOaXNoaS1Hb3RhbmRhCisJCQkJU2hpbmFnYXdhLWt1IFRva3lvIDE0MTAwMzEKKwkJCQlKQVBBTgorCis5Qy1CMi0wNiAgIChoZXgpCQlQUk9DRU5URUMKKzlDQjIwNiAgICAgKGJhc2UgMTYpCQlQUk9DRU5URUMKKwkJCQlUdXJmc2NoaXBwZXIgNDEKKwkJCQlXYXRlcmluZ2VuIFp1aWQgSG9sbGFuZCAyMjkySkMKKwkJCQlORVRIRVJMQU5EUworCis5Qy1CNy0wRCAgIChoZXgpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorOUNCNzBEICAgICAoYmFzZSAxNikJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYsOTAsQ2hpZW4gMSBSb2FkLCBDaHVuZ0hvLiAKKwkJCQlUYWlwZWkgSHNpZW4gICAyMzU4NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOUMtQzAtNzcgICAoaGV4KQkJUHJpbnRDb3VudHMsIExMQworOUNDMDc3ICAgICAoYmFzZSAxNikJCVByaW50Q291bnRzLCBMTEMKKwkJCQk1MTA5IFcgTGVtb24gU3QKKwkJCQlUYW1wYSBGTCAzMzYwOQorCQkJCVVOSVRFRCBTVEFURVMKKworOUMtQzAtRDIgICAoaGV4KQkJQ29uZHVjdGl4LVdhbXBmbGVyIEFHCis5Q0MwRDIgICAgIChiYXNlIDE2KQkJQ29uZHVjdGl4LVdhbXBmbGVyIEFHCisJCQkJUmhlaW5zdHJhc3NlIDI3KzMzCisJCQkJV2VpbCBhbSBSaGVpbiBCYWRlbi1X/HJ0dGVtYmVyZyBELTc5NTc2CisJCQkJR0VSTUFOWQorCis5Qy1DNy1BNiAgIChoZXgpCQlBVk0gR21iSAorOUNDN0E2ICAgICAoYmFzZSAxNikJCUFWTSBHbWJICisJCQkJQWx0LU1vYWJpdCA5NQorCQkJCUJlcmxpbiAxMDU1OQorCQkJCUdFUk1BTlkKKworOUMtQzctRDEgICAoaGV4KQkJU0hBUlAgQ29ycG9yYXRpb24KKzlDQzdEMSAgICAgKGJhc2UgMTYpCQlTSEFSUCBDb3Jwb3JhdGlvbgorCQkJCTIyLTIyLE5hZ2Fpa2UtQ2hvCisJCQkJQWJlbm8tS3UKKwkJCQlPc2FrYS1DaXR5IE9zYWthLVByZWZlY3R1cmUgNTQ1LTg1MjIKKwkJCQlKQVBBTgorCis5Qy1DQS1EOSAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorOUNDQUQ5ICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJWXJ0dGlwZWxsb250aWUgNgorCQkJCU91bHUgT3UgOTAyMzAKKwkJCQlGSU5MQU5ECisKKzlDLUNELTgyICAgKGhleCkJCUNIRU5HIFVFSSBQUkVDSVNJT04gSU5EVVNUUlkgQ08uLExURAorOUNDRDgyICAgICAoYmFzZSAxNikJCUNIRU5HIFVFSSBQUkVDSVNJT04gSU5EVVNUUlkgQ08uLExURAorCQkJCU5vLjE4LCBDaHVuZyBTaGFuIFJkLiwgVHUtQ2hlbmcgSW5kdXN0cnkgUGFyayAKKwkJCQlUdSBDaGVuZyBDaXR5IFRhaXBlaSBIc2llbiAyMzY4MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworOUMtRDItNEIgICAoaGV4KQkJenRlIGNvcnBvcmF0aW9uCis5Q0QyNEIgICAgIChiYXNlIDE2KQkJenRlIGNvcnBvcmF0aW9uCisJCQkJMTIvRi4sWnRlIFImRCBCdWlsZGluZyxLZWppbmFuIFJvYWQsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKKzlDLURGLTAzICAgKGhleCkJCUhhcm1hbi9CZWNrZXIgQXV0b21vdGl2ZSBTeXN0ZW1zIEdtYkgKKzlDREYwMyAgICAgKGJhc2UgMTYpCQlIYXJtYW4vQmVja2VyIEF1dG9tb3RpdmUgU3lzdGVtcyBHbWJICisJCQkJQmVja2VyLUf2cmluZy1TdHJh32UgMTYKKwkJCQlLYXJsc2JhZCBCYWRlbi1X/HJ0dGVtYmVyZyA3NjMwNworCQkJCUdFUk1BTlkKKworOUMtRTEtMEUgICAoaGV4KQkJTkNUZWNoIEx0ZAorOUNFMTBFICAgICAoYmFzZSAxNikJCU5DVGVjaCBMdGQKKwkJCQkyMC0yMiBCcmFpZCBSb2FkCisJCQkJTW9ybmluZ3NpZGUKKwkJCQlFZGluYnVyZ2ggIEVIMTAgNkFECisJCQkJVU5JVEVEIEtJTkdET00KKworOUMtRUItRTggICAoaGV4KQkJQml6TGluayAoS3Vuc2hhbikgQ28uLEx0ZAorOUNFQkU4ICAgICAoYmFzZSAxNikJCUJpekxpbmsgKEt1bnNoYW4pIENvLixMdGQKKwkJCQlOby4xNjgsTmFuaGUgUm9hZCxFY29ub21pYyAmYW1wOyBUZWNobm9sb2dpY2FsIERldmVsb3BtZW50IFpvbmUsCisJCQkJS3Vuc2hhbiBDaXR5IEppYW5nc3UgUHJvdmluY2UgMjE1MzAwCisJCQkJQ0hJTkEKKworOUMtRjYtMUEgICAoaGV4KQkJVVRDIEZpcmUgYW5kIFNlY3VyaXR5Cis5Q0Y2MUEgICAgIChiYXNlIDE2KQkJVVRDIEZpcmUgYW5kIFNlY3VyaXR5CisJCQkJMjk1NSBSZWQgSGlsbCBBdmUuCisJCQkJQ29zdGEgTWVzYSBDQSA5MjYyNgorCQkJCVVOSVRFRCBTVEFURVMKKworOUMtRjYtN0QgICAoaGV4KQkJUmljYXJkbyBQcmFndWUsIHMuci5vLgorOUNGNjdEICAgICAoYmFzZSAxNikJCVJpY2FyZG8gUHJhZ3VlLCBzLnIuby4KKwkJCQlUaGFtb3ZhIDEzCisJCQkJUHJhaGEgOCAgMTg2IDAwCisJCQkJQ1pFQ0ggUkVQVUJMSUMKKworOUMtRjktMzggICAoaGV4KQkJQVJFVkEgTlAgR21iSAorOUNGOTM4ICAgICAoYmFzZSAxNikJCUFSRVZBIE5QIEdtYkgKKwkJCQlTZWxpZ2Vuc3RhZWR0ZXIgU3RyLiAxMDAKKwkJCQlEZXB0LiBQVENEVi1HCisJCQkJS2FybHN0ZWluIEdlcm1hbnkgNjM3OTEKKwkJCQlHRVJNQU5ZCisKKzlDLUZGLUJFICAgKGhleCkJCU9UU0wgSW5jLgorOUNGRkJFICAgICAoYmFzZSAxNikJCU9UU0wgSW5jLgorCQkJCUhBTlJPS1UgQmxkZy4gMkYsIDItMS0yCisJCQkJS2FidWtpLUNobworCQkJCVNoaW5qdWt1LWt1IFRva3lvIDE2MC0wMDIxCisJCQkJSkFQQU4KKworQTAtMDctOTggICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworQTAwNzk4ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLTA3LUI2ICAgKGhleCkJCUFkdmFuY2VkIFRlY2huaWNhbCBTdXBwb3J0LCBJbmMuCitBMDA3QjYgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgVGVjaG5pY2FsIFN1cHBvcnQsIEluYy4KKwkJCQkxMCBHcmFzc21lcmUgQXZlCisJCQkJV2VzdCBIYXJ0Zm9yZCBDVCAwNjExMAorCQkJCVVOSVRFRCBTVEFURVMKKworQTAtMEItQkEgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPLU1FQ0hBTklDUworQTAwQkJBICAgICAoYmFzZSAxNikJCVNBTVNVTkcgRUxFQ1RSTy1NRUNIQU5JQ1MKKwkJCQlTdXdvbi1TaSwgR3llb25nZ2lfRG8sIAorCQkJCVN1d29uICA0NDMtNzQzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLTBDLUExICAgKGhleCkJCVNLVEIgIlNLaVQiCitBMDBDQTEgICAgIChiYXNlIDE2KQkJU0tUQiAiU0tpVCIKKwkJCQkyMzkgQi4gU2Fkb3ZheWEgU3RyLgorCQkJCVNhcmF0b3YgcmVnaW9uIDQxMDAwNQorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCitBMC0xMy0zQiAgIChoZXgpCQlDb3B5cmlnaHQgqSBIaVRpIERpZ2l0YWwsIEluYy4KK0EwMTMzQiAgICAgKGJhc2UgMTYpCQlDb3B5cmlnaHQgqSBIaVRpIERpZ2l0YWwsIEluYy4KKwkJCQk5Ri4sIE5vLjIyNSwgU2VjLiAzLCBCZWl4aW4gUmQuLCBYaW5kaWFuIERpc3QuLCAKKwkJCQlYaW5kaWFuIERpc3QuIE5ldyBUYWlwZWkgQ2l0eSAgMjMxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitBMC0xNi01QyAgIChoZXgpCQlUYW5nb1RlYyBMdGQuCitBMDE2NUMgICAgIChiYXNlIDE2KQkJVGFuZ29UZWMgTHRkLgorCQkJCU1hbGhhIFRlY2hub2xvZ3kgUGFyaworCQkJCUplcnVzYWxlbSAgOTY5NTEKKwkJCQlJU1JBRUwKKworQTAtMTgtNTkgICAoaGV4KQkJU2hlbnpoZW4gWWlkYXNoaSBFbGVjdHJvbmljcyBDbyBMdGQKK0EwMTg1OSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBZaWRhc2hpIEVsZWN0cm9uaWNzIENvIEx0ZAorCQkJCUJ1aWxkaW5nIEExMCwgRnVrYW5nIEluZHVzdHJpYWwgWm9uZQorCQkJCUZ1bWluZyBWaWxsYWdlLEd1YW5sYW4gVG93biwgQmFvJ0FuCisJCQkJU2hlbnpoZW4gIEd1YW5nZG9uZyAgNTE4MTEwCisJCQkJQ0hJTkEKKworQTAtMjEtQjcgICAoaGV4KQkJTkVUR0VBUgorQTAyMUI3ICAgICAoYmFzZSAxNikJCU5FVEdFQVIKKwkJCQkzNTAgRUFTVCBQTFVNRVJJQSBEUklWRQorCQkJCVNBTiBKT1NFIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitBMC0yMy0xQiAgIChoZXgpCQlUZWxlQ29tcCBSJmFtcDtEIENvcnAuCitBMDIzMUIgICAgIChiYXNlIDE2KQkJVGVsZUNvbXAgUiZhbXA7RCBDb3JwLgorCQkJCTEwMiBTVyBPcmFuZ2UgQmxvc3NvbQorCQkJCUxha2UgQ2l0eSBGbG9yaWRhIDMyMDI1CisJCQkJVU5JVEVEIFNUQVRFUworCitBMC0yRS1GMyAgIChoZXgpCQlVbml0ZWQgSW50ZWdyYXRlZCBTZXJ2aWNlcyBDby4sIExlZC4KK0EwMkVGMyAgICAgKGJhc2UgMTYpCQlVbml0ZWQgSW50ZWdyYXRlZCBTZXJ2aWNlcyBDby4sIExlZC4KKwkJCQk1RiBObyAzIExhbmUgNyBQYWNrYW8gUm9hZCBIc2ludGllbgorCQkJCVRhaXBlaSBIc2llbiAgMjMxNDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0EwLTM2LTlGICAgKGhleCkJCUludGVsIENvcnBvcmF0aW9uCitBMDM2OUYgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRpb24KKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKK0EwLTM2LUZBICAgKGhleCkJCUV0dHVzIFJlc2VhcmNoIExMQworQTAzNkZBICAgICAoYmFzZSAxNikJCUV0dHVzIFJlc2VhcmNoIExMQworCQkJCTEwNDMgTiBTaG9yZWxpbmUgQmx2ZAorCQkJCVN1aXRlIDEwMAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLTNBLTc1ICAgKGhleCkJCVBTUyBCZWxnaXVtIE4uVi4KK0EwM0E3NSAgICAgKGJhc2UgMTYpCQlQU1MgQmVsZ2l1bSBOLlYuCisJCQkJSG9vZ3ZlbGQgNTAKKwkJCQlEZW5kZXJtb25kZSAgOTIwMAorCQkJCUJFTEdJVU0KKworQTAtNDAtMjUgICAoaGV4KQkJQWN0aW9uY2FibGUsIEluYy4KK0EwNDAyNSAgICAgKGJhc2UgMTYpCQlBY3Rpb25jYWJsZSwgSW5jLgorCQkJCTk5OCBXZXN0bHlubiBXYXkKKwkJCQlTdWl0ZSA0CisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitBMC00MC00MSAgIChoZXgpCQlTQU1XT05GQSBDby4sTHRkLgorQTA0MDQxICAgICAoYmFzZSAxNikJCVNBTVdPTkZBIENvLixMdGQuCisJCQkJNDcwLTUsIE1vb25oeXVuMi1Eb25nCisJCQkJTmFtLUd1LCAKKwkJCQlCdXNhbiAgNjA4LTA0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBMC00MS1BNyAgIChoZXgpCQlOTCBNaW5pc3RyeSBvZiBEZWZlbnNlCitBMDQxQTcgICAgIChiYXNlIDE2KQkJTkwgTWluaXN0cnkgb2YgRGVmZW5zZQorCQkJCVBPIEJveCAxMDAwMAorCQkJCU5vb3JkIEhvbGxhbmQgMTc4MCBDQSBEZW4gSGVsZGVyCisJCQkJTkVUSEVSTEFORFMKKworQTAtNDItM0YgICAoaGV4KQkJVHlhbiBDb21wdXRlciBDb3JwCitBMDQyM0YgICAgIChiYXNlIDE2KQkJVHlhbiBDb21wdXRlciBDb3JwCisJCQkJMzI4OCBMYXJ1cmVsdmlldyBDb3VydAorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLTRDLUMxICAgKGhleCkJCUhlbGl4dGVjaCBDb3JwLgorQTA0Q0MxICAgICAoYmFzZSAxNikJCUhlbGl4dGVjaCBDb3JwLgorCQkJCTZGIExpb25zIGJsZGcuLCAxNjAtMiBHYW5nbmFtLWRhZXJvLAorCQkJCVNlb2Noby1ndQorCQkJCVNlb3VsICAxMzctODg4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLTRFLTA0ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitBMDRFMDQgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1OTAKKwkJCQlGSU5MQU5ECisKK0EwLTU1LURFICAgKGhleCkJCVBhY2UgcGxjCitBMDU1REUgICAgIChiYXNlIDE2KQkJUGFjZSBwbGMKKwkJCQlTYWx0cyBNaWxsCisJCQkJVmljdG9yaWEgUm9hZAorCQkJCUJyYWRmb3JkIFdlc3QgWW9ya3NoaXJlIEJEMTggM0xGCisJCQkJVU5JVEVEIEtJTkdET00KKworQTAtNTktM0EgICAoaGV4KQkJVi5ELlMuIFZpZGVvIERpc3BsYXkgU3lzdGVtcyBzcmwKK0EwNTkzQSAgICAgKGJhc2UgMTYpCQlWLkQuUy4gVmlkZW8gRGlzcGxheSBTeXN0ZW1zIHNybAorCQkJCVZpYSBEZWwgUGFudGFubyA3MQorCQkJCVNDQU5ESUNDSSBGSSA1MDAxOAorCQkJCUlUQUxZCisKK0EwLTVBLUE0ICAgKGhleCkJCUdyYW5kIFByb2R1Y3RzIE5ldmFkYSwgSW5jLgorQTA1QUE0ICAgICAoYmFzZSAxNikJCUdyYW5kIFByb2R1Y3RzIE5ldmFkYSwgSW5jLgorCQkJCTc1MSBQaWxvdCBSZC4KKwkJCQlMYXMgVmVnYXMgTmV2YWRhIDg5MTE5CisJCQkJVU5JVEVEIFNUQVRFUworCitBMC01RC1DMSAgIChoZXgpCQlUTUNUIENvLiwgTFRELgorQTA1REMxICAgICAoYmFzZSAxNikJCVRNQ1QgQ28uLCBMVEQuCisJCQkJNUYtNTYxLCAjMTktMTEgU2FuQ2hvbmcgUmQuCisJCQkJTmFuR2FuZyBEaXN0cmljdC4KKwkJCQlUYWlwZWkgIDExNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQTAtNUQtRTcgICAoaGV4KQkJRElSRUNUViwgSW5jLgorQTA1REU3ICAgICAoYmFzZSAxNikJCURJUkVDVFYsIEluYy4KKwkJCQkyMjMwIEUuIEltcGVyaWFsIEh3eQorCQkJCUVsIFNlZ3VuZG8gQ0EgOTAyNDUKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLTVFLTZCICAgKGhleCkJCU1FTFBFUiBDby4sIEx0ZC4KK0EwNUU2QiAgICAgKGJhc2UgMTYpCQlNRUxQRVIgQ28uLCBMdGQuCisJCQkJMjA3LCAybmQgRkwuLFdvbmh5byBCbGRnLiwxMzY1LTIyCisJCQkJU2VvY2hvLWRvbmcsIFNlb2Noby1ndQorCQkJCVNFT1VMICAxMzctODYzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLTY5LTg2ICAgKGhleCkJCVdlbGxhdiBUZWNobm9sb2dpZXMgTHRkCitBMDY5ODYgICAgIChiYXNlIDE2KQkJV2VsbGF2IFRlY2hub2xvZ2llcyBMdGQKKwkJCQkxNUYgRGVzYXkgQnVpbGRpbmcKKwkJCQlOby4xMiBZdW5zaGFuIFdlc3QgQXZlLgorCQkJCUh1aXpob3UgR3Vhbmdkb25nIDUxNjAwMworCQkJCUNISU5BCisKK0EwLTZBLTAwICAgKGhleCkJCVZlcmlsaW5rIENvcnBvcmF0aW9uCitBMDZBMDAgICAgIChiYXNlIDE2KQkJVmVyaWxpbmsgQ29ycG9yYXRpb24KKwkJCQkxMjcgSmV0cGxleCBDaXJjbGUKKwkJCQlNYWRpc29uIEFMIDM1NzU4CisJCQkJVU5JVEVEIFNUQVRFUworCitBMC02Qy1FQyAgIChoZXgpCQlSSU0KK0EwNkNFQyAgICAgKGJhc2UgMTYpCQlSSU0KKwkJCQkyOTUgUGhpbGxpcCBTdHJlZXQKKwkJCQlXYXRlcmxvbyBPbnRhcmlvIE4yTCA1UjkKKwkJCQlDQU5BREEKKworQTAtNkQtMDkgICAoaGV4KQkJSW50ZWxjYW4gVGVjaG5vc3lzdGVtcyBJbmMuCitBMDZEMDkgICAgIChiYXNlIDE2KQkJSW50ZWxjYW4gVGVjaG5vc3lzdGVtcyBJbmMuCisJCQkJNTQ5MCAgQm91bCBUaGltZW5zCisJCQkJU3VpdGUgMjUwCisJCQkJU2FpbnQtTGF1cmVudCBRdWViZWMgSDRSMks5CisJCQkJQ0FOQURBCisKK0EwLTZFLTUwICAgKGhleCkJCU5hbm90ZWsgRWxla3Ryb25payBTaXN0ZW1sZXIgTHRkLiBTdGkuCitBMDZFNTAgICAgIChiYXNlIDE2KQkJTmFub3RlayBFbGVrdHJvbmlrIFNpc3RlbWxlciBMdGQuIFN0aS4KKwkJCQlJdmVkaWsgT3JnYW5pemUgU2FuYXlpCisJCQkJNTU5LiBTb2thaywgTm86NTYsIFllbmltYWhhbGxlCisJCQkJQW5rYXJhICAwNjM3MAorCQkJCVRVUktFWQorCitBMC03MS1BOSAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorQTA3MUE5ICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTkwCisJCQkJRklOTEFORAorCitBMC03My0zMiAgIChoZXgpCQlDYXNobWFzdGVyIEludGVybmF0aW9uYWwgTGltaXRlZAorQTA3MzMyICAgICAoYmFzZSAxNikJCUNhc2htYXN0ZXIgSW50ZXJuYXRpb25hbCBMaW1pdGVkCisJCQkJRmFpcnlraXJrIFJvYWQKKwkJCQlSb3N5dGggRmlmZSBLWTExIDJRUQorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0EwLTc1LTkxICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorQTA3NTkxICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBMC03OC1CQSAgIChoZXgpCQlQYW50ZWNoIENvLiwgTHRkLgorQTA3OEJBICAgICAoYmFzZSAxNikJCVBhbnRlY2ggQ28uLCBMdGQuCisJCQkJMTEwLTEgT25namVvbmctUmksIFRvbmdqaW4tRXVwCisJCQkJR2ltcG8tU2kgR3lvdW5nZ2ktRG8gNDE1LTg2NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBMC04Mi1DNyAgIChoZXgpCQlQLlQuSSBDby4sTFRECitBMDgyQzcgICAgIChiYXNlIDE2KQkJUC5ULkkgQ28uLExURAorCQkJCTEtNS0xLFRzdXJ1bWlkYW4KKwkJCQlLb3JpeWFtYS1zaGkgRnVrdXNoaW1hIDk2My04ODYxCisJCQkJSkFQQU4KKworQTAtODYtRUMgICAoaGV4KQkJU0FFSEFOIEhJVEVDIENvLiwgTHRkCitBMDg2RUMgICAgIChiYXNlIDE2KQkJU0FFSEFOIEhJVEVDIENvLiwgTHRkCisJCQkJMTYtMywgWW9uZ3N1LXJpLCBDaG93b2wtZXVwCisJCQkJR3dhbmdqdS1zaSwgR3llb25nZ2ktZG8gIDQ2NC04NjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQTAtODgtQjQgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCitBMDg4QjQgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCitBMC04Qy05QiAgIChoZXgpCQlYdHJlbWUgVGVjaG5vbG9naWVzIENvcnAKK0EwOEM5QiAgICAgKGJhc2UgMTYpCQlYdHJlbWUgVGVjaG5vbG9naWVzIENvcnAKKwkJCQkyMDAgNDYxNiBWYWxpYW50IERyIE5XCisJCQkJQ2FsZ2FyeSBBQiBUM0EwWDkKKwkJCQlDQU5BREEKKworQTAtOTAtREUgICAoaGV4KQkJVkVFRElNUyxMTEMKK0EwOTBERSAgICAgKGJhc2UgMTYpCQlWRUVESU1TLExMQworCQkJCTQ5IE4uIEZlZGVyYWwgSGlnaHdheSAjMzk3CisJCQkJUG9tcGFubyBCZWFjaCBGbG9yaWRhIDMzMDYyCisJCQkJVU5JVEVEIFNUQVRFUworCitBMC05OC0wNSAgIChoZXgpCQlPcGVuVm94IENvbW11bmljYXRpb24gQ28gTHRkCitBMDk4MDUgICAgIChiYXNlIDE2KQkJT3BlblZveCBDb21tdW5pY2F0aW9uIENvIEx0ZAorCQkJCUYyLEJ1aWxkaW5nIE5vLjE0LFNoYW5nc2hhIFNjaWVuY2UgJgorCQkJCVRlY2hub2xvZ3kgUGFyayxOby45MjgzLEJpbmhlIFJvYWQKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDMxCisJCQkJQ0hJTkEKKworQTAtOTgtRUQgICAoaGV4KQkJU2hhbmRvbmcgSW50ZWxsaWdlbnQgT3B0aWNhbCBDb21tdW5pY2F0aW9uIERldmVsb3BtZW50IENvLiwgTHRkLgorQTA5OEVEICAgICAoYmFzZSAxNikJCVNoYW5kb25nIEludGVsbGlnZW50IE9wdGljYWwgQ29tbXVuaWNhdGlvbiBEZXZlbG9wbWVudCBDby4sIEx0ZC4KKwkJCQlOby4xNDkgWWluZ2N1aSBSb2FkLFRvcmNoIFRvd24sQWR2YW5jZWQgVGVjaG5pcXVlIERldmVsb3BtZW50IEFyZWEKKwkJCQlKaW5pbmcgU2hhbmRvbmcgMjcyMDIzCisJCQkJQ0hJTkEKKworQTAtOUEtNUEgICAoaGV4KQkJVGltZSBEb21haW4KK0EwOUE1QSAgICAgKGJhc2UgMTYpCQlUaW1lIERvbWFpbgorCQkJCTMzMCBXeW5uIERyaXZlCisJCQkJU3VpdGUgMzAwCisJCQkJSHVudHN2aWxsZSBBTCAzNTgwNQorCQkJCVVOSVRFRCBTVEFURVMKKworQTAtQTctNjMgICAoaGV4KQkJUG9seXRyb24gVmVydHJpZWIgR21iSAorQTBBNzYzICAgICAoYmFzZSAxNikJCVBvbHl0cm9uIFZlcnRyaWViIEdtYkgKKwkJCQlMYW5nd2llc2Vud2VnIDY0LTcxCisJCQkJQmFkIFdpbGRiYWQgQmFkZW4tV3VlcnR0ZW1iZXJnIDc1MzIzCisJCQkJR0VSTUFOWQorCitBMC1BQS1GRCAgIChoZXgpCQlFcmFUaGluayBUZWNobm9sb2dpZXMgQ29ycC4KK0EwQUFGRCAgICAgKGJhc2UgMTYpCQlFcmFUaGluayBUZWNobm9sb2dpZXMgQ29ycC4KKwkJCQkyODkgQmlzaGVuZyBSb2FkIEJ1aWxkaW5nIDQsRmxvb3IgNCAKKwkJCQlTaGFuZ2hhaSAgMjAxMjA0CisJCQkJQ0hJTkEKKworQTAtQjMtQ0MgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCitBMEIzQ0MgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YSA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworQTAtQjUtREEgICAoaGV4KQkJSG9uZ0tvbmcgVEhURiBDby4sIEx0ZAorQTBCNURBICAgICAoYmFzZSAxNikJCUhvbmdLb25nIFRIVEYgQ28uLCBMdGQKKwkJCQkyRixTZWN0b3IgQyBvZiBUc2luZ2h1YSBVbml2ZXJzaXR5IEFjYWRlbXksIAorCQkJCUhpLVRlY2ggUGFyayhTb3V0aCksTmFuc2hhbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitBMC1CNi02MiAgIChoZXgpCQlBY3V0dmlzdGEgSW5ub3ZhdGlvbiBDby4sIEx0ZC4KK0EwQjY2MiAgICAgKGJhc2UgMTYpCQlBY3V0dmlzdGEgSW5ub3ZhdGlvbiBDby4sIEx0ZC4KKwkJCQkyRi0xLCBOby4gMjAgQWxsZXkgMSwgTGFuZSA3NjgsIFNlYy4gNAorCQkJCVBhLVRlaCBSZC4sIAorCQkJCVRhaXBlaSBDaXR5ICAxMTU3NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQTAtQjktRUQgICAoaGV4KQkJU2t5dGFwCitBMEI5RUQgICAgIChiYXNlIDE2KQkJU2t5dGFwCisJCQkJNzEwIDJuZCBBdmUgU3VpdGUgMTEzMAorCQkJCVNlYXR0bGUgV0EgOTgxMDQKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLUJGLUE1ICAgKGhleCkJCUNPUkVTWVMKK0EwQkZBNSAgICAgKGJhc2UgMTYpCQlDT1JFU1lTCisJCQkJMjY3LTEgTm9uaHl1bmRvbmcgR2FuZ25hbWd1CisJCQkJSksgQmxkLiwgIzMwMQorCQkJCVNlb3VsICAxMzUtODMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0EwLUMzLURFICAgKGhleCkJCSBUcml0b24gRWxlY3Ryb25pYyBTeXN0ZW1zIEx0ZC4KK0EwQzNERSAgICAgKGJhc2UgMTYpCQkgVHJpdG9uIEVsZWN0cm9uaWMgU3lzdGVtcyBMdGQuCisJCQkJNjIwMDYzLCBFa2F0ZXJpbmJ1cmcsIFAvTyBib3ggNTIyCisJCQkJRWthdGVyaW5idXJnIFN2ZXJkbG92c2theWEgb2JsLiA2MjAwNjMKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworQTAtQ0YtNUIgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQTBDRjVCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0EwLURDLTA0ICAgKGhleCkJCUJlY2tlci1BbnRyaWViZSBHbWJICitBMERDMDQgICAgIChiYXNlIDE2KQkJQmVja2VyLUFudHJpZWJlIEdtYkgKKwkJCQlGcmllZHJpY2gtRWJlcnQtU3QgcmHvv71lIDIgLSA0CisJCQkJMzU3NjQgU2lubiBIZXNzZW4gREU4MTExNzc5NzcKKwkJCQlHRVJNQU5ZCisKK0EwLURELUU1ICAgKGhleCkJCVNIQVJQIENPUlBPUkFUSU9OCitBMERERTUgICAgIChiYXNlIDE2KQkJU0hBUlAgQ09SUE9SQVRJT04KKwkJCQkyMi0yMixOYWdhaWtlLWNobywKKwkJCQlBYmVuby1LVSwKKwkJCQlPc2FrYSwgIDU0NS04NTIyLAorCQkJCUpBUEFOCisKK0EwLURFLTA1ICAgKGhleCkJCUpTQyAiSXJiaXMtVCIKK0EwREUwNSAgICAgKGJhc2UgMTYpCQlKU0MgIklyYmlzLVQiCisJCQkJNSwgTGl0ZXluYXlhIHN0cmVldAorCQkJCVR1bGEgIDMwMDAwMgorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCitBMC1FMi0wMSAgIChoZXgpCQlBVlRyYWNlIEx0ZC4oQ2hpbmEpCitBMEUyMDEgICAgIChiYXNlIDE2KQkJQVZUcmFjZSBMdGQuKENoaW5hKQorCQkJCVJNNzA0LCBEaXN0cmljdCBCMSwgT3JpZ2luYWxpdHkgQnVpbGRpbmcsIE5vLjE2MiBLZVh1ZSBBdmVudWUgU2NpZW5jZSBUb3duLEdVQU5HWkhPVSxDSElOQSAKKwkJCQlHVUFOR1pIT1UgR1VBTkdET05HIDUxMDYxMQorCQkJCUNISU5BCisKK0EwLUUyLTk1ICAgKGhleCkJCURBVCBTeXN0ZW0gQ28uLEx0ZAorQTBFMjk1ICAgICAoYmFzZSAxNikJCURBVCBTeXN0ZW0gQ28uLEx0ZAorCQkJCUd1biBTYW4gRnJlZSBUcmFkZSBBcmVhIDUxMS0xICwKKwkJCQlPc2lrIGRvIGRvbmcgR3Vuc2FuIHNpIEplb24gQnVrIAorCQkJCTU3My01NDAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQTAtRTktREIgICAoaGV4KQkJTmluZ2JvIEZyZWVXaW5ncyBUZWNobm9sb2dpZXMgQ28uLEx0ZAorQTBFOURCICAgICAoYmFzZSAxNikJCU5pbmdibyBGcmVlV2luZ3MgVGVjaG5vbG9naWVzIENvLixMdGQKKwkJCQlSb29tIDExMDctMTEwOCwgTm8gMjk4IFh1ZVNoaSBSb2FkIFlpbnpob3UgRGlzdHJpY3QgTmluZ2JvLCAKKwkJCQlOaW5nYm8gWmhlamlhbmcgMzE1MDAwCisJCQkJQ0hJTkEKKworQTAtRUYtODQgICAoaGV4KQkJWkhVSEFJIFNFSU5FIFRlY2hub2xvZ3kgQ08uLCBMVEQuCitBMEVGODQgICAgIChiYXNlIDE2KQkJWkhVSEFJIFNFSU5FIFRlY2hub2xvZ3kgQ08uLCBMVEQuCisJCQkJNnRoIGZsb29yLDR0aCBidWlsZGluZywgTk8uNjMsTWluZ3podWJlaSBSb2FkLCBYaWFuZ3pob3UgRGlzdHJpY3QsCisJCQkJWmh1SGFpIEd1YW5nRG9uZyA1MTkwNzUKKwkJCQlDSElOQQorCitBMC1GMi0xNyAgIChoZXgpCQlHRSBNZWRpY2FsIFN5c3RlbShDaGluYSkgQ28uLCBMdGQuIAorQTBGMjE3ICAgICAoYmFzZSAxNikJCUdFIE1lZGljYWwgU3lzdGVtKENoaW5hKSBDby4sIEx0ZC4gCisJCQkJTm8uMTksIENoYW5nSmlhbmcgUm9hZCAKKwkJCQlXdXhpIEppYW5nc3UgMjE0MDI4IAorCQkJCUNISU5BCisKK0EwLUYzLUMxICAgKGhleCkJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorQTBGM0MxICAgICAoYmFzZSAxNikJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorCQkJCUJ1aWxkaW5nIDI0IChmbG9vcnMgMSwzLDQsNSkgYW5kIDI4IChmbG9vcnMxLTQpICBTaGVubmFuIFJkLCAKKwkJCQlDZW50cmFsIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgUGFyaworCQkJCXNoZW56aGVuIGd1YW5nZG9uZyBQcm92aW5jZSA1MTgwNTcKKwkJCQlDSElOQQorCitBMC1GMy1FNCAgIChoZXgpCQlBbGNhdGVsIC1MdWNlbnQgSVBECitBMEYzRTQgICAgIChiYXNlIDE2KQkJQWxjYXRlbCAtTHVjZW50IElQRAorCQkJCTYwMCBNYXJjaCBEcgorCQkJCUthbmF0YSBPbiBLMksgMkUxCisJCQkJQ0FOQURBCisKK0EwLUY0LTE5ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitBMEY0MTkgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlZcnR0aXBlbGxvbnRpZSA2CisJCQkJT3VsdSAgOTAyMzAKKwkJCQlGSU5MQU5ECisKK0EwLUY0LTUwICAgKGhleCkJCUhUQyBDb3Jwb3JhdGlvbgorQTBGNDUwICAgICAoYmFzZSAxNikJCUhUQyBDb3Jwb3JhdGlvbgorCQkJCU5vLiAyMywgWGluZ2h1YSBSZC4sIFRhb3l1YW4gQ2l0eQorCQkJCVRhb3l1YW4gQ291bnR5IFRhaXdhbiAzMzAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0E0LTAxLTMwICAgKGhleCkJCUFCSXN5c3RlbXMgQ28uLCBMVEQKK0E0MDEzMCAgICAgKGJhc2UgMTYpCQlBQklzeXN0ZW1zIENvLiwgTFRECisJCQkJMzA4IEFDRSBUZWNobm8gVG93ZXI4IDE5MS03IEd1cm8tZG9uZworCQkJCUd1cm8tZ3UKKwkJCQlTZW91bCAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQTQtMEMtQzMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQTQwQ0MzICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtMTMtNEUgICAoaGV4KQkJTHV4dWwgCitBNDEzNEUgICAgIChiYXNlIDE2KQkJTHV4dWwgCisJCQkJMTQyMDMgTWludXRlbWFuIERyaXZlCisJCQkJU3VpdGUgMjAxCisJCQkJRHJhcGVyIFVUIDg0MDIwCisJCQkJVU5JVEVEIFNUQVRFUworCitBNC0xOC03NSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitBNDE4NzUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtMUItQzAgICAoaGV4KQkJRmFzdGVjIEltYWdpbmcgQ29ycG9yYXRpb24KK0E0MUJDMCAgICAgKGJhc2UgMTYpCQlGYXN0ZWMgSW1hZ2luZyBDb3Jwb3JhdGlvbgorCQkJCTE3MTUwIFZpYSBEZWwgQ2FtcG8KKwkJCQlTdWl0ZSAzMDEKKwkJCQlTYW4gRGllZ28gQ2FsaWZvcm5pYSA5MjEyNworCQkJCVVOSVRFRCBTVEFURVMKKworQTQtMjEtOEEgICAoaGV4KQkJTm9ydGVsIE5ldHdvcmtzCitBNDIxOEEgICAgIChiYXNlIDE2KQkJTm9ydGVsIE5ldHdvcmtzCisJCQkJQ0FSUkVURVJBIEJBU0UgQUVSRUEgIyA1ODUwCisJCQkJWmFwb3BhbiBKYWxpc2NvIDQ0MTMwCisJCQkJTUVYSUNPCisKK0E0LTI0LUIzICAgKGhleCkJCUZsYXRGcm9nIExhYm9yYXRvcmllcyBBQgorQTQyNEIzICAgICAoYmFzZSAxNikJCUZsYXRGcm9nIExhYm9yYXRvcmllcyBBQgorCQkJCU1hZ2lzdHJhdHN25GdlbiAxMAorCQkJCUx1bmQgU2thbmUgMjI2NDMKKwkJCQlTV0VERU4KKworQTQtMjktQjcgICAoaGV4KQkJYmx1ZXNreQorQTQyOUI3ICAgICAoYmFzZSAxNikJCWJsdWVza3kKKwkJCQlSbTE0MTAgVG93ZXIgQSxDaGVuZ2ppYW4gcGxhemEsTk8uMTggYmVpdGFpcGluZ3podWFuZyBSb2FkLEhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDg4CisJCQkJQ0hJTkEKKworQTQtMzMtRDEgICAoaGV4KQkJRmlicmxpbmsgQ29tbXVuaWNhdGlvbnMgQ28uLEx0ZC4KK0E0MzNEMSAgICAgKGJhc2UgMTYpCQlGaWJybGluayBDb21tdW5pY2F0aW9ucyBDby4sTHRkLgorCQkJCTI4RiBBZ2VzIFdlYWx0aCBXb3JsZCwgTm8uMSBIYW5nZmVuZyBSb2FkCisJCQkJRmVuZ3RhaSBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDA3MAorCQkJCUNISU5BCisKK0E0LTM4LUZDICAgKGhleCkJCVBsYXN0aWMgTG9naWMKK0E0MzhGQyAgICAgKGJhc2UgMTYpCQlQbGFzdGljIExvZ2ljCisJCQkJNjUwIENhc3RybyBTdC4sIFN1aXRlIDUwMAorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKK0E0LTQ2LUZBICAgKGhleCkJCUFtVFJBTiBWaWRlbyBDb3Jwb3JhdGlvbgorQTQ0NkZBICAgICAoYmFzZSAxNikJCUFtVFJBTiBWaWRlbyBDb3Jwb3JhdGlvbgorCQkJCTkgR29kZGFyZAorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtNEItMTUgICAoaGV4KQkJU3VuIEN1cGlkIFRlY2hub2xvZ3kgKEhLKSBMVEQKK0E0NEIxNSAgICAgKGJhc2UgMTYpCQlTdW4gQ3VwaWQgVGVjaG5vbG9neSAoSEspIExURAorCQkJCVJvb20gMTIwMS0zLCAxMi9GLiwgVG93ZXIgNgorCQkJCUNoaW5hIEhvbmcgS29uZyBDaXR5CisJCQkJVHNpbSBTaGEgVHN1aSAgCisJCQkJSE9ORyBLT05HCisKK0E0LTRDLTExICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0E0NEMxMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitBNC01MC01NSAgIChoZXgpCQlidXN3YXJlLmRlCitBNDUwNTUgICAgIChiYXNlIDE2KQkJYnVzd2FyZS5kZQorCQkJCUxvZXNzbml0emdydW5kc3RyYXNzZSAxMTVhCisJCQkJTW9yaXR6YnVyZyBTYXhvbnkgMDE0NjgKKwkJCQlHRVJNQU5ZCisKK0E0LTUyLTZGICAgKGhleCkJCUFEQiBCcm9hZGJhbmQgSXRhbGlhCitBNDUyNkYgICAgIChiYXNlIDE2KQkJQURCIEJyb2FkYmFuZCBJdGFsaWEKKwkJCQlWSUFMRSBTQVJDQSAzMzYKKwkJCQlNSUxBTk8gIElUQUxZICAyMDEyNgorCQkJCUlUQUxZCisKK0E0LTU2LTFCICAgKGhleCkJCU1DT1QgQ29ycG9yYXRpb24KK0E0NTYxQiAgICAgKGJhc2UgMTYpCQlNQ09UIENvcnBvcmF0aW9uCisJCQkJWW9nb2hpZ2FzaGkgMS01LTEyCisJCQkJTWF0c3V5YW1hIGNpdHkgRWhpbWUgcHJlZmVjdHVyZSA3OTAtMDA0NAorCQkJCUpBUEFOCisKK0E0LTU2LTMwICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0E0NTYzMCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitBNC01QS0xQyAgIChoZXgpCQlzbWFydC1lbGVjdHJvbmljIEdtYkgKK0E0NUExQyAgICAgKGJhc2UgMTYpCQlzbWFydC1lbGVjdHJvbmljIEdtYkgKKwkJCQlJbmR1c3RyaWVzdHJhc3NlIDI5CisJCQkJU3QuIEdlb3JnZW4gQmFkZW4tV3VlcnR0ZW1iZXJnIDc4MTIyCisJCQkJR0VSTUFOWQorCitBNC01Qy0yNyAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KK0E0NUMyNyAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCitBNC02Ny0wNiAgIChoZXgpCQlBcHBsZSwgSW5jLgorQTQ2NzA2ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitBNC03OS1FNCAgIChoZXgpCQlLTElORk8gQ29ycAorQTQ3OUU0ICAgICAoYmFzZSAxNikJCUtMSU5GTyBDb3JwCisJCQkJMzAxIDkyMyB3b2xweXVuZy1kb25nCisJCQkJc2VvIGd1CisJCQkJRGFlamVvbiAgMzAyLTg1MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBNC03QS1BNCAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorQTQ3QUE0ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtN0MtMTQgICAoaGV4KQkJQ2hhcmdlU3Rvcm0gQUIKK0E0N0MxNCAgICAgKGJhc2UgMTYpCQlDaGFyZ2VTdG9ybSBBQgorCQkJCUxheGhvbG1zdG9yZ2V0IDMKKwkJCQlOb3Jya++/vXBpbmcgIDYwMjIxCisJCQkJU1dFREVOCisKK0E0LTdDLTFGICAgKGhleCkJCUdsb2JhbCBNaWNyb3dhdmUgU3lzdGVtcyBJbmMuCitBNDdDMUYgICAgIChiYXNlIDE2KQkJR2xvYmFsIE1pY3Jvd2F2ZSBTeXN0ZW1zIEluYy4KKwkJCQkxOTE2IFBhbG9tYXIgT2FrcyBXYXksIFN1aXRlIDEwMAorCQkJCUNhcmxzYmFkIENBIDkyMDA4CisJCQkJVU5JVEVEIFNUQVRFUworCitBNC04NS02QiAgIChoZXgpCQlRIEVsZWN0cm9uaWNzIEx0ZAorQTQ4NTZCICAgICAoYmFzZSAxNikJCVEgRWxlY3Ryb25pY3MgTHRkCisJCQkJQmVjayBIb3VzZSwgSGF3a3N3b3J0aCBSb2FkCisJCQkJSG9yc2ZvcnRoCisJCQkJTGVlZHMgV2VzdCBZb3Jrc2hpcmUgTFMxOCA0SlAKKwkJCQlVTklURUQgS0lOR0RPTQorCitBNC05MC0wNSAgIChoZXgpCQlDSElOQSBHUkVBVFdBTEwgQ09NUFVURVIgU0hFTlpIRU4gQ08uLExURAorQTQ5MDA1ICAgICAoYmFzZSAxNikJCUNISU5BIEdSRUFUV0FMTCBDT01QVVRFUiBTSEVOWkhFTiBDTy4sTFRECisJCQkJNDA5LDIjLEdyZWF0d2FsbCBCbGRnLE5vLjMgS2VmYSBSb2FkLFNjaWVuY2UgJiBJbmR1c3RyeSBQYXJrLE5hbnNoYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA3CisJCQkJQ0hJTkEKKworQTQtOTMtNEMgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQTQ5MzRDICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0E0LTk3LUJCICAgKGhleCkJCUhpdGFjaGkgSW5kdXN0cmlhbCBFcXVpcG1lbnQgU3lzdGVtcyBDby4sTHRkCitBNDk3QkIgICAgIChiYXNlIDE2KQkJSGl0YWNoaSBJbmR1c3RyaWFsIEVxdWlwbWVudCBTeXN0ZW1zIENvLixMdGQKKwkJCQkzLCBLYW5kYSBOZXJpYmVpLWNobworCQkJCUFLUyBCdWlsZGluZworCQkJCUNoaXlvZGEta3UgVG9reW8gMTAxLTAwMjIKKwkJCQlKQVBBTgorCitBNC05OS00NyAgIChoZXgpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCitBNDk5NDcgICAgIChiYXNlIDE2KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCAKKwkJCQlUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKK0E0LTk5LTgxICAgKGhleCkJCUZ1SmlhbiBFbGl0ZSBQb3dlciBUZWNoIENPLixMVEQuCitBNDk5ODEgICAgIChiYXNlIDE2KQkJRnVKaWFuIEVsaXRlIFBvd2VyIFRlY2ggQ08uLExURC4KKwkJCQk4dGggRmxvb3KjrDU2IEd1YW5SaSBSb2FkIAorCQkJCVNvZnR3YXJlIFNxdWFyZSAoUGhhc2UgVHdvKSwgU2ltaW5nIERpc3RyaWN0IAorCQkJCVhpYW1lbiBGdWppYW4gMzYxMDA5CisJCQkJQ0hJTkEKKworQTQtOUItMTMgICAoaGV4KQkJQnVycm91Z2hzIFBheW1lbnQgU3lzdGVtcywgSW5jLgorQTQ5QjEzICAgICAoYmFzZSAxNikJCUJ1cnJvdWdocyBQYXltZW50IFN5c3RlbXMsIEluYy4KKwkJCQk0MTEwMCBQbHltb3V0aCBSb2FkCisJCQkJUGx5bW91dGggTWljaGlnYW4gNDgxNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0E0LUEyLTRBICAgKGhleCkJCUNpc2NvIFNQVlRHCitBNEEyNEEgICAgIChiYXNlIDE2KQkJQ2lzY28gU1BWVEcKKwkJCQk1MDMwIFN1Z2FybG9hZiBQYXJrd2F5CisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtQTgtMEYgICAoaGV4KQkJU2hlbnpoZW4gQ29zaGlwIEVsZWN0cm9uaWNzIENvLiwgTHRkLgorQTRBODBGICAgICAoYmFzZSAxNikJCVNoZW56aGVuIENvc2hpcCBFbGVjdHJvbmljcyBDby4sIEx0ZC4KKwkJCQlSYWluYm93IEJsZGcuLCBOb3J0aCwgSGktVGVjaCBJbmR1c3RyaWFsIFBhcmssIE5hbnNoYW4gRGlzdHJpY3QsIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitBNC1BRC0wMCAgIChoZXgpCQlSYWdzZGFsZSBUZWNobm9sb2d5CitBNEFEMDAgICAgIChiYXNlIDE2KQkJUmFnc2RhbGUgVGVjaG5vbG9neQorCQkJCTUwNSBFY2hvIExhbmUKKwkJCQlQTyBCb3ggMTIwNTA3CisJCQkJQmlnIEJlYXIgTGFrZSBDQSA5MjMxNQorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtQUQtQjggICAoaGV4KQkJVml0ZWMgR3JvdXAsIENhbWVyYSBEeW5hbWljcyBMdGQKK0E0QURCOCAgICAgKGJhc2UgMTYpCQlWaXRlYyBHcm91cCwgQ2FtZXJhIER5bmFtaWNzIEx0ZAorCQkJCVdpbGxpYW0gVmludGVuIEJ1aWxkaW5nCisJCQkJV2VzdGVybiBXYXkKKwkJCQlCdXJ5IFN0IEVkbXVuZHMgU3VmZm9sayBJUDMzIDNUQgorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0E0LUFFLTlBICAgKGhleCkJCU1hZXN0cm8gV2lyZWxlc3MgU29sdXRpb25zIGx0ZC4KK0E0QUU5QSAgICAgKGJhc2UgMTYpCQlNYWVzdHJvIFdpcmVsZXNzIFNvbHV0aW9ucyBsdGQuCisJCQkJMzYvRgorCQkJCTExOCBDb25uYXVnaHQgUm9hZCBXZXN0CisJCQkJU2hldW5nIFdhbiAgCisJCQkJSE9ORyBLT05HCisKK0E0LUIxLTIxICAgKGhleCkJCUFyYW50aWEgMjAxMCBTLkwuCitBNEIxMjEgICAgIChiYXNlIDE2KQkJQXJhbnRpYSAyMDEwIFMuTC4KKwkJCQlWb2x0YSBkbyBDYXN0cm8gcy9uCisJCQkJU2FudGlhZ28gZGUgQ29tcG9zdGVsYSBBIENvcnXxYSAxNTcwNgorCQkJCVNQQUlOCisKK0E0LUIxLTk3ICAgKGhleCkJCUFwcGxlLCBJbmMuCitBNEIxOTcgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gY2EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0E0LUIxLUU5ICAgKGhleCkJCVRlY2huaWNvbG9yCitBNEIxRTkgICAgIChiYXNlIDE2KQkJVGVjaG5pY29sb3IKKwkJCQlQcmlucyBCb3VkZXdpam5sYWFuIDQ3CisJCQkJRWRlZ2VtIEJlbGdpdW0gIEItMjY1MAorCQkJCUJFTEdJVU0KKworQTQtQjEtRUUgICAoaGV4KQkJSC4gWkFOREVSIEdtYkggJiBDby4gS0cKK0E0QjFFRSAgICAgKGJhc2UgMTYpCQlILiBaQU5ERVIgR21iSCAmIENvLiBLRworCQkJCUFtIEd1dCBXb2xmIDE1CisJCQkJQWFjaGVuICA1MjA3MAorCQkJCUdFUk1BTlkKKworQTQtQjItQTcgICAoaGV4KQkJQWRheHlzIFNvbHV0aW9ucyBBRworQTRCMkE3ICAgICAoYmFzZSAxNikJCUFkYXh5cyBTb2x1dGlvbnMgQUcKKwkJCQlFaWNodGFsc3RyYXNzZSA1NQorCQkJCUhvbWJyZWNodGlrb24gQ0ggODYzNAorCQkJCVNXSVRaRVJMQU5ECisKK0E0LUIzLTZBICAgKGhleCkJCUpTQyBTRE8gQ2hyb21hdGVjCitBNEIzNkEgICAgIChiYXNlIDE2KQkJSlNDIFNETyBDaHJvbWF0ZWMKKwkJCQk5NCwgU3Ryb2l0ZWxleSBzdHJlZXQKKwkJCQlZb3Noa2FyLU9sYSBNYXJpIEVsIHJlcHVibGljIDQyNDAwMAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCitBNC1COS04MCAgIChoZXgpCQlQYXJraW5nIEJPWFggSW5jLgorQTRCOTgwICAgICAoYmFzZSAxNikJCVBhcmtpbmcgQk9YWCBJbmMuCisJCQkJMzgyIE5FIDE5MXN0IFN0LiAjOTM5ODQKKwkJCQlNaWFtaSBGTCAzMzE3OS0zODk5CisJCQkJVU5JVEVEIFNUQVRFUworCitBNC1CQS1EQiAgIChoZXgpCQlEZWxsIEluYy4KK0E0QkFEQiAgICAgKGJhc2UgMTYpCQlEZWxsIEluYy4KKwkJCQlPbmUgRGVsbCBXYXksIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCitBNC1CRS02MSAgIChoZXgpCQlFdXRyb1Zpc2lvbiBTeXN0ZW0sIEluYy4KK0E0QkU2MSAgICAgKGJhc2UgMTYpCQlFdXRyb1Zpc2lvbiBTeXN0ZW0sIEluYy4KKwkJCQlSbSA0MDMsQnVpbGRpbmczMyxOby42ODAgR3VpcGluZ1JkLFh1aHVpLAorCQkJCVNoYW5naGFpICAyMDAyMzMKKwkJCQlDSElOQQorCitBNC1DMC1FMSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KK0E0QzBFMSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCitBNC1DMi1BQiAgIChoZXgpCQlIYW5nemhvdSBMRUFELUlUIEluZm9ybWF0aW9uICYgVGVjaG5vbG9neSBDby4sTHRkCitBNEMyQUIgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgTEVBRC1JVCBJbmZvcm1hdGlvbiAmIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCUYyIEJ1aWxkZXIgQixYaWRvbWVuIFJvYWQgTk8uMjIKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwMTIKKwkJCQlDSElOQQorCitBNC1EMS04RiAgIChoZXgpCQlTaGVuemhlbiBTa3llZSBPcHRpY2FsIEZpYmVyIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBMdGQuIAorQTREMThGICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFNreWVlIE9wdGljYWwgRmliZXIgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IEx0ZC4gCisJCQkJTm8uNSBCbGRnLiBZaW1pbiBJbmR1c3RyaWFsIFBhcmssIE5vLjMxLCBNYWthbiBTb3V0aCBSb2FkLCBOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKK0E0LUQxLUQxICAgKGhleCkJCUVDT3RhbGl0eSBOb3J0aCBBbWVyaWNhCitBNEQxRDEgICAgIChiYXNlIDE2KQkJRUNPdGFsaXR5IE5vcnRoIEFtZXJpY2EKKwkJCQk0MzAgUyAybmQgQXZlbnVlCisJCQkJUGhvZW5peCBBWiA4NTAwMworCQkJCVVOSVRFRCBTVEFURVMKKworQTQtRDEtRDIgICAoaGV4KQkJQXBwbGUsIEluYy4KK0E0RDFEMiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworQTQtREEtM0YgICAoaGV4KQkJQmlvbmljcyBDb3JwLgorQTREQTNGICAgICAoYmFzZSAxNikJCUJpb25pY3MgQ29ycC4KKwkJCQkxNDA2IE1hc3RlcnMgVG93ZXIKKwkJCQk1NTMgRG93aGEtZG9uZyBNYXBvLWd1CisJCQkJU2VvdWwgIDEyMS03NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQTQtREItMkUgICAoaGV4KQkJS2luZ3NwYW4gRW52aXJvbm1lbnRhbCBMdGQKK0E0REIyRSAgICAgKGJhc2UgMTYpCQlLaW5nc3BhbiBFbnZpcm9ubWVudGFsIEx0ZAorCQkJCTE4MCBHaWxmb3JkIFJvYWQKKwkJCQlQb3J0YWRvd24gQXJtYWdoIEJUNjMgNUxGCisJCQkJVU5JVEVEIEtJTkdET00KKworQTQtREUtNTAgICAoaGV4KQkJVG90YWwgV2FsdGhlciBHbWJICitBNERFNTAgICAgIChiYXNlIDE2KQkJVG90YWwgV2FsdGhlciBHbWJICisJCQkJRnJhbmtmdXJ0ZXIgUmluZyAxNworCQkJCU11bmljaCAgODA4MDcKKwkJCQlHRVJNQU5ZCisKK0E0LUUzLTJFICAgKGhleCkJCVNpbGljb24gJmFtcDsgU29mdHdhcmUgU3lzdGVtcyBMdGQuCitBNEUzMkUgICAgIChiYXNlIDE2KQkJU2lsaWNvbiAmYW1wOyBTb2Z0d2FyZSBTeXN0ZW1zIEx0ZC4KKwkJCQlTb3V0aCBDb3VudHkgQnVzaW5lc3MgUGFyaworCQkJCUxlb3BhcmRzdG93biBEdWJsaW4gMTgKKwkJCQlJUkVMQU5ECisKK0E0LUUzLTkxICAgKGhleCkJCURFTlkgRk9OVEFJTkUKK0E0RTM5MSAgICAgKGJhc2UgMTYpCQlERU5ZIEZPTlRBSU5FCisJCQkJUk9VVEUgREUgU0FJTlQgVkFMRVJZCisJCQkJU0FJTlQgQkxJTU9OVCAgODA5NjAKKwkJCQlGUkFOQ0UKKworQTQtRTctMzEgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0E0RTczMSAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1ICA5MDIzMAorCQkJCUZJTkxBTkQKKworQTQtRTctRTQgICAoaGV4KQkJQ29ubmV4IEdtYkgKK0E0RTdFNCAgICAgKGJhc2UgMTYpCQlDb25uZXggR21iSAorCQkJCUVsYmVzdHJhc3NlIDEyCisJCQkJT2xkZW5idXJnICAyNjEzNQorCQkJCUdFUk1BTlkKKworQTQtRUQtNEUgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCitBNEVENEUgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4gCisJCQkJNjAwIE4uIFVTIDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ4CisJCQkJVU5JVEVEIFNUQVRFUworCitBNC1FRS01NyAgIChoZXgpCQlTRUlLTyBFUFNPTiBDT1JQT1JBVElPTgorQTRFRTU3ICAgICAoYmFzZSAxNikJCVNFSUtPIEVQU09OIENPUlBPUkFUSU9OCisJCQkJMy0zLTUgT1dBCisJCQkJU1VXQS1TSEkgTkFHQU5PLUtFTiAzOTItODUwMgorCQkJCUpBUEFOCisKK0E0LUVGLTUyICAgKGhleCkJCVRlbGV3YXZlIENvLiwgTHRkLgorQTRFRjUyICAgICAoYmFzZSAxNikJCVRlbGV3YXZlIENvLiwgTHRkLgorCQkJCUEtMjAzLCBTSyBUd2ludGVjaCBUb3dlcgorCQkJCUdhc2FuLWRvbmcsIEdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtNzczCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0E0LUY3LUQwICAgKGhleCkJCUxBTiBBY2Nlc3NvcmllcyBDby4sIEx0ZC4KK0E0RjdEMCAgICAgKGJhc2UgMTYpCQlMQU4gQWNjZXNzb3JpZXMgQ28uLCBMdGQuCisJCQkJOEYtMSwgTm8uIDE1OSwgU2VjLiAxIEhzaW4gVGFpIFd1IFJvYWQsCisJCQkJU2hpaCBDaGloIERpc3QuLAorCQkJCU5ldyBUYWlwZWkgQ2l0eSwgIDIyMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQTgtMTYtQjIgICAoaGV4KQkJTEcgRWxlY3Ryb25pY3MKK0E4MTZCMiAgICAgKGJhc2UgMTYpCQlMRyBFbGVjdHJvbmljcworCQkJCTYwLTM5ICwgS2FzYW4tZG9uZywgR3VtY2hlb24tZ3UKKwkJCQlTZW91bCAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0E4LTE3LTU4ICAgKGhleCkJCUVsZWt0cm9uaWsgU3lzdGVtIGkgVW1l77+9IEFCCitBODE3NTggICAgIChiYXNlIDE2KQkJRWxla3Ryb25payBTeXN0ZW0gaSBVbWXvv70gQUIKKwkJCQlCb3ggNzk3OAorCQkJCVR2aXN0ZXbvv71nZW4gNDcKKwkJCQlVbWXvv70gVu+/vXN0ZXJib3R0ZW4gOTA3IDE5CisJCQkJU1dFREVOCisKK0E4LTFCLTE4ICAgKGhleCkJCVhUUyBDT1JQCitBODFCMTggICAgIChiYXNlIDE2KQkJWFRTIENPUlAKKwkJCQkxMDEyNSBOVyAxMTZUSCBXQVksIFNVSVRFIDUKKwkJCQlNRURMRVkgRkxPUklEQSAzMzE3OAorCQkJCVVOSVRFRCBTVEFURVMKKworQTgtMjAtNjYgICAoaGV4KQkJQXBwbGUgSW5jCitBODIwNjYgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworQTgtMjYtRDkgICAoaGV4KQkJSFRDIENvcnBvcmF0aW9uCitBODI2RDkgICAgIChiYXNlIDE2KQkJSFRDIENvcnBvcmF0aW9uCisJCQkJTm8uIDIzLCBYaW5naHVhIFJkLCBUYW95dWFuIENpdHkKKwkJCQlUYW95dWFuIENvdW50eSAgMzMwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitBOC0yQi1ENiAgIChoZXgpCQlTaGluYSBTeXN0ZW0gQ28uLCBMdGQKK0E4MkJENiAgICAgKGJhc2UgMTYpCQlTaGluYSBTeXN0ZW0gQ28uLCBMdGQKKwkJCQk2RkwtNjAxLCBUaGUtTyBWYWxsZXksIEFueWFuZyBJbnRlcm5hdGlvbmFsIERpc3RyaWJ1dGUgQ29tcGxleAorCQkJCUhvZ3llIDEtRG9uZyA1NTUtOSwgRG9uZ2FuLUd1CisJCQkJQW55YW5nLVNpIEd5ZW91bmdnaS1EbyA0MzEtNzYzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0E4LTM5LTQ0ICAgKGhleCkJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jIAorQTgzOTQ0ICAgICAoYmFzZSAxNikJCUFjdGlvbnRlYyBFbGVjdHJvbmljcywgSW5jIAorCQkJCTc2MCBOb3J0aCBNYXJ5IEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworQTgtNDAtNDEgICAoaGV4KQkJRHJhZ2lubyBUZWNobm9sb2d5IENvLiwgTGltaXRlZAorQTg0MDQxICAgICAoYmFzZSAxNikJCURyYWdpbm8gVGVjaG5vbG9neSBDby4sIExpbWl0ZWQKKwkJCQkzMDMsIEJsb2NrIEIsIE5vIDg7IDM0OSwgSmlhbiYjMzk7QW4gMSBSb2FkLEJhbyYjMzk7QW4KKwkJCQlTaGVuemhlbiBHdWFuZ0RvbmcgNTE4MTAxCisJCQkJQ0hJTkEKKworQTgtNDktQTUgICAoaGV4KQkJTGlzYW50ZWNoIENvLiwgTHRkLgorQTg0OUE1ICAgICAoYmFzZSAxNikJCUxpc2FudGVjaCBDby4sIEx0ZC4KKwkJCQkxMTA4LCBTVFggVi1Ub3dlciAgR2FzYW4tZG9uZworCQkJCUdldW1jaGVvbi1ndQorCQkJCVNlb3VsICAxNTMtODAzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0E4LTU1LTZBICAgKGhleCkJCVBvY2tldG5ldCBUZWNobm9sb2d5IEluYy4KK0E4NTU2QSAgICAgKGJhc2UgMTYpCQlQb2NrZXRuZXQgVGVjaG5vbG9neSBJbmMuCisJCQkJU3VpdGUgQiwgN0YuLCBOby4gNTUwLCBSdWllIEt3YW5nIFJkLiwgTmVpaHUgRGlzdHJpY3QsCisJCQkJVGFpcGVpICAxMTQyOQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQTgtNUItQjAgICAoaGV4KQkJU2hlbnpoZW4gRGVob28gVGVjaG5vbG9neSBDby4sTHRkCitBODVCQjAgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gRGVob28gVGVjaG5vbG9neSBDby4sTHRkCisJCQkJNUMsVGlhbnpoYW4gQnVpbGRpbmcgVGlhbmFuIEN5YmVycGFyaywKKwkJCQlGdXRpYW4gZGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZyBEb25nIDUxODA0MAorCQkJCUNISU5BCisKK0E4LTVCLUYzICAgKGhleCkJCUF1ZGl2byBHbWJICitBODVCRjMgICAgIChiYXNlIDE2KQkJQXVkaXZvIEdtYkgKKwkJCQlJcnJlbmxvaGVyIERhbW0gMTcKKwkJCQlTY2h3YXJ6ZW5mZWxkICA5MjUyMQorCQkJCUdFUk1BTlkKKworQTgtNjItQTIgICAoaGV4KQkJSklXVU1FRElBIENPLiwgTFRELgorQTg2MkEyICAgICAoYmFzZSAxNikJCUpJV1VNRURJQSBDTy4sIExURC4KKwkJCQkjOTAyLCBEYWVydWcgVGVjaG5vIFRvd24gMTMndGgsIDY2NAorCQkJCUdhc2FuLWRvbmcKKwkJCQlHZXVtY2hlb24tZ3UgU2VvdWwgMTUzLTgwMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBOC02My1ERiAgIChoZXgpCQlESVNQTOKAmUFJUkUgQ09SUE9SQVRJT04KK0E4NjNERiAgICAgKGJhc2UgMTYpCQlESVNQTOKAmUFJUkUgQ09SUE9SQVRJT04KKwkJCQkxMzAwIFZhbGxleSBIb3VzZSBEciwgU3RlIDEwMAorCQkJCVJvaG5lcnQgUGFyayBDQSA5NDkyOAorCQkJCVVOSVRFRCBTVEFURVMKKworQTgtNjMtRjIgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKK0E4NjNGMiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyMjAzIFMuVy5GcmVld2F5LCBNUzcyOAorCQkJCVN0YWZmb3JkIFRleGFzIDc3NDc3CisJCQkJVU5JVEVEIFNUQVRFUworCitBOC02NS1CMiAgIChoZXgpCQlET05HR1VBTiBZSVNIQU5HIEVMRUNUUk9OSUMgVEVDSE5PTE9HWSBDTy4sIExJTUlURUQKK0E4NjVCMiAgICAgKGJhc2UgMTYpCQlET05HR1VBTiBZSVNIQU5HIEVMRUNUUk9OSUMgVEVDSE5PTE9HWSBDTy4sIExJTUlURUQKKwkJCQkzcmQgZmxvb3IsIEIjIEJ1aWxkaW5nICxIb3VkZWZ1IExvZ2lzdGljcyBQYXJrLFFpbmdzaHVpYW8sCisJCQkJSmlhbnNoYXpob3UsV2FuamlhbmcgRGlzdHJpY3QKKwkJCQlEb25nZ3VhbiBHdWFuZ2RvbmcgNTIzMDYyCisJCQkJQ0hJTkEKKworQTgtNkEtNkYgICAoaGV4KQkJUklNCitBODZBNkYgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgNVI5CisJCQkJQ0FOQURBCisKK0E4LTcwLUE1ICAgKGhleCkJCVVuaUNvbW0gSW5jLgorQTg3MEE1ICAgICAoYmFzZSAxNikJCVVuaUNvbW0gSW5jLgorCQkJCTdGLTcsIE5vLiA3MTYsIENodW5nLUNoZW5nIFJvYWQsCisJCQkJQ2h1bmctSG8gQ2l0eSBUYWlwZWkgSHNpZW4gMjM1MDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0E4LTc3LTZGICAgKGhleCkJCVpvbm9mZgorQTg3NzZGICAgICAoYmFzZSAxNikJCVpvbm9mZgorCQkJCTcwRSBTd2VkZXNmb3JkIFJkCisJCQkJTWFsdmVybiBQQSAxOTM1NQorCQkJCVVOSVRFRCBTVEFURVMKKworQTgtN0ItMzkgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0E4N0IzOSAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU3MAorCQkJCUZJTkxBTkQKKworQTgtN0UtMzMgICAoaGV4KQkJTm9raWEgRGFubWFyayBBL1MKK0E4N0UzMyAgICAgKGJhc2UgMTYpCQlOb2tpYSBEYW5tYXJrIEEvUworCQkJCUZyZWRlcmlrc2thagorCQkJCUNvcGVuaGFnZW4gViAgREstMTc5MAorCQkJCURFTk1BUksKKworQTgtODctOTIgICAoaGV4KQkJQnJvYWRiYW5kIEFudGVubmEgVHJhY2tpbmcgU3lzdGVtcworQTg4NzkyICAgICAoYmFzZSAxNikJCUJyb2FkYmFuZCBBbnRlbm5hIFRyYWNraW5nIFN5c3RlbXMKKwkJCQk4OTAyIFZpbmNlbm5lcyBDaXJjbGUsIFN1aXRlIEQtMgorCQkJCUluZGlhbmFwb2xpcyBJTiA0NjI2OAorCQkJCVVOSVRFRCBTVEFURVMKKworQTgtODctRUQgICAoaGV4KQkJQVJDIFdpcmVsZXNzIExMQworQTg4N0VEICAgICAoYmFzZSAxNikJCUFSQyBXaXJlbGVzcyBMTEMKKwkJCQk2MzMwIE4uIFdhc2hpbmd0b24gU3QuCisJCQkJU1RFIDEzCisJCQkJRGVudmVyIENPIDgwMjE2CisJCQkJVU5JVEVEIFNUQVRFUworCitBOC04Qy1FRSAgIChoZXgpCQlNaWNyb01hZGUgR2Fsa2EgaSBEcm96ZHogc3Auai4KK0E4OENFRSAgICAgKGJhc2UgMTYpCQlNaWNyb01hZGUgR2Fsa2EgaSBEcm96ZHogc3Auai4KKwkJCQl1bC4gV2llbmlhd3NraWVnbyAxNgorCQkJCVBpbGEgV2llbGtvcG9sc2tpZSA2NC05MjAKKwkJCQlQT0xBTkQKKworQTgtOTItMkMgICAoaGV4KQkJTEcgRWxlY3Ryb25pY3MKK0E4OTIyQyAgICAgKGJhc2UgMTYpCQlMRyBFbGVjdHJvbmljcworCQkJCTYwLTM5ICwgS2FzYW4tZG9uZywgR3VtY2hlb24tZ3UKKwkJCQlTZW91bCAgMTUzLTgwMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBOC05My1FNiAgIChoZXgpCQlKSUFOR1hJIEpJTkdHQU5HU0hBTiBDS0lORyBDT01NVU5JQ0FUSU9OIFRFQ0hOT0xPR1kgQ08uLExURAorQTg5M0U2ICAgICAoYmFzZSAxNikJCUpJQU5HWEkgSklOR0dBTkdTSEFOIENLSU5HIENPTU1VTklDQVRJT04gVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJNUYsMzAxYnVpbGRpbmcsVGFpcmFuIEhpZ2gtdGVjaCBwYXJrLCBDaGVnb25nbWlhbyxGdXRpYW4gem9uZSwKKwkJCQlTSEVOWkhFTiBHVUFOR0RPTkcgNTE4MDAwCisJCQkJQ0hJTkEKKworQTgtOTgtQzYgICAoaGV4KQkJU2hpbmJvIENvLiwgTHRkLgorQTg5OEM2ICAgICAoYmFzZSAxNikJCVNoaW5ibyBDby4sIEx0ZC4KKwkJCQkyMDMtMTQsIEFueWFuZyA3LURvbmcsIE1hbmFuLUd1CisJCQkJQW55YW5nLVNpIEt5dW5na2ktRG8gNDMwLTgxNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBOC05OS01QyAgIChoZXgpCQlhaXpvIGFnCitBODk5NUMgICAgIChiYXNlIDE2KQkJYWl6byBhZworCQkJCUJyYW5kc3RyYXNzZSAzMworCQkJCVNjaGxpZXJlbiAgODk1MgorCQkJCVNXSVRaRVJMQU5ECisKK0E4LTlCLTEwICAgKGhleCkJCWluTW90aW9uIEx0ZC4KK0E4OUIxMCAgICAgKGJhc2UgMTYpCQlpbk1vdGlvbiBMdGQuCisJCQkJVW5pdCAyNzA5IEV4Y2hhbmdlIFRvd2VyIAorCQkJCTMzIFdhbmcgQ2h1aSBSb2FkILcgS293bG9vbiBCYXkgtyBLTE4KKwkJCQlLTE4KKwkJCQlIT05HIEtPTkcKKworQTgtQjAtQUUgICAoaGV4KQkJTEVPTkkgCitBOEIwQUUgICAgIChiYXNlIDE2KQkJTEVPTkkgCisJCQkJMzk0NSBGcmVlZG9tIENpcmNsZQorCQkJCVN1aXRlIDU1MAorCQkJCVNhbnRhIENsYXJhIENhbGlmb3JuaWEgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0E4LUIxLUQ0ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0E4QjFENCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0E4LUJELTFBICAgKGhleCkJCUhvbmV5IEJlZSAoSG9uZyBLb25nKSBMaW1pdGVkCitBOEJEMUEgICAgIChiYXNlIDE2KQkJSG9uZXkgQmVlIChIb25nIEtvbmcpIExpbWl0ZWQKKwkJCQlGbGF0IEwsIDEyL0YuLCBQaGFzZSA0LCBLd3VuIFRvbmcgSW5kdXN0cmlhbCBDdHIuLAorCQkJCTQzNi00NDYgS3d1biBUb25nIFJvYWQsIEt3dW4gVG9uZworCQkJCUhPTkcgS09ORworCitBOC1DMi0yMiAgIChoZXgpCQlUTS1SZXNlYXJjaCBJbmMuCitBOEMyMjIgICAgIChiYXNlIDE2KQkJVE0tUmVzZWFyY2ggSW5jLgorCQkJCUhpeW9zaGkgSG9uY2hvIDEtMTUtNAorCQkJCUtvaG9rdS1rdQorCQkJCVlva29oYW1hIEthbmFnYXdhIDIyMy0wMDYyCisJCQkJSkFQQU4KKworQTgtQ0ItOTUgICAoaGV4KQkJRUFTVCBCRVNUIENPLiwgTFRELgorQThDQjk1ICAgICAoYmFzZSAxNikJCUVBU1QgQkVTVCBDTy4sIExURC4KKwkJCQk0RixOTy45OCxTSElORyBURUggUk9BRAorCQkJCVNBTiBDSFVORyBDSVRZICBUQUlQRUkgMjQxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitBOC1DRS05MCAgIChoZXgpCQlDVkMKK0E4Q0U5MCAgICAgKGJhc2UgMTYpCQlDVkMKKwkJCQlOby4zNjEsUmVuaHVhIFJkLiwKKwkJCQlEYWxpIENpdHkgVGFpY2h1bmcgNDEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitBOC1EMC1FNSAgIChoZXgpCQlKdW5pcGVyIE5ldHdvcmtzCitBOEQwRTUgICAgIChiYXNlIDE2KQkJSnVuaXBlciBOZXR3b3JrcworCQkJCTExOTQgTiBNYXRoaWxkYSBBdmVudWUKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODkgCisJCQkJVU5JVEVEIFNUQVRFUworCitBOC1EMy1DOCAgIChoZXgpCQlXYWNoZW5kb3JmZiBFbGVrdHJvbmlrICBHbWJIICZhbXA7IENvLiBLRworQThEM0M4ICAgICAoYmFzZSAxNikJCVdhY2hlbmRvcmZmIEVsZWt0cm9uaWsgIEdtYkggJmFtcDsgQ28uIEtHCisJCQkJSW5kdXN0cmllc3RyLiA3CisJCQkJR2Vpc2VuaGVpbSAgNjUzNjYKKwkJCQlHRVJNQU5ZCisKK0E4LUUwLTE4ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitBOEUwMTggICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlZcnR0aXBlbGxvbnRpZSA2CisJCQkJT3VsdSAgOTAyMzAKKwkJCQlGSU5MQU5ECisKK0E4LUUzLUVFICAgKGhleCkJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBJbmMuCitBOEUzRUUgICAgIChiYXNlIDE2KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50IEluYy4KKwkJCQkyLTYtMjEgTWluYW1pLUFveWFtYQorCQkJCU1pbmF0by1rdSBUb2t5byAxMDctMDA2MgorCQkJCUpBUEFOCisKK0E4LUYyLTc0ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKK0E4RjI3NCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0E4LUY0LTcwICAgKGhleCkJCUZ1amlhbiBOZXdsYW5kIENvbW11bmljYXRpb24gU2NpZW5jZSBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KK0E4RjQ3MCAgICAgKGJhc2UgMTYpCQlGdWppYW4gTmV3bGFuZCBDb21tdW5pY2F0aW9uIFNjaWVuY2UgVGVjaG5vbG9naWVzIENvLixMdGQuCisJCQkJTmV3bGFuZCBTY2llbmNlICYgVGVjaG5vbG9neSBQYXJrIE5vLjEgUnVqaWFuZyBXZXN0IFJkLiwgTWF3ZWksIAorCQkJCUZ1emhvdSBGdWppYW4gMzUwMDE1CisJCQkJQ0hJTkEKKworQTgtRjktNEIgICAoaGV4KQkJRWx0ZXggRW50ZXJwcmlzZSBMdGQuCitBOEY5NEIgICAgIChiYXNlIDE2KQkJRWx0ZXggRW50ZXJwcmlzZSBMdGQuCisJCQkJT2J5ZWRpbmVuaXlhIHN0LiwgOQorCQkJCU5vdm9zaWJpcnNrICA2MzAwMjAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworQTgtRkMtQjcgICAoaGV4KQkJQ29uc29saWRhdGVkIFJlc291cmNlIEltYWdpbmcKK0E4RkNCNyAgICAgKGJhc2UgMTYpCQlDb25zb2xpZGF0ZWQgUmVzb3VyY2UgSW1hZ2luZworCQkJCTI5NDMgUyBXaWxzb24gQ1QgTlcKKwkJCQlHcmFuZCBSYXBpZHMgTUkgNDk1MzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0FBLTAwLTAwICAgKGhleCkJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCitBQTAwMDAgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKwkJCQlMS0cgMS0yL0ExOQorCQkJCTU1MCBLSU5HIFNUUkVFVAorCQkJCUxJVFRMRVRPTiBNQSAwMTQ2MC0xMjg5CisJCQkJVU5JVEVEIFNUQVRFUworCitBQS0wMC0wMSAgIChoZXgpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorQUEwMDAxICAgICAoYmFzZSAxNikJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCisJCQkJTEtHIDEtMi9BMTkKKwkJCQk1NTAgS0lORyBTVFJFRVQKKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAtMTI4OQorCQkJCVVOSVRFRCBTVEFURVMKKworQUEtMDAtMDIgICAoaGV4KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KK0FBMDAwMiAgICAgKGJhc2UgMTYpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorCQkJCUxLRyAxLTIvQTE5CisJCQkJNTUwIEtJTkcgU1RSRUVUCisJCQkJTElUVExFVE9OIE1BIDAxNDYwLTEyODkKKwkJCQlVTklURUQgU1RBVEVTCisKK0FBLTAwLTAzICAgKGhleCkJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCitBQTAwMDMgICAgIChiYXNlIDE2KQkJRElHSVRBTCBFUVVJUE1FTlQgQ09SUE9SQVRJT04KKwkJCQlMS0cgMS0yL0ExOQorCQkJCTU1MCBLSU5HIFNUUkVFVAorCQkJCUxJVFRMRVRPTiBNQSAwMTQ2MC0xMjg5CisJCQkJVU5JVEVEIFNUQVRFUworCitBQS0wMC0wNCAgIChoZXgpCQlESUdJVEFMIEVRVUlQTUVOVCBDT1JQT1JBVElPTgorQUEwMDA0ICAgICAoYmFzZSAxNikJCURJR0lUQUwgRVFVSVBNRU5UIENPUlBPUkFUSU9OCisJCQkJTEtHIDEtMi9BMTkKKwkJCQk1NTAgS0lORyBTVFJFRVQKKwkJCQlMSVRUTEVUT04gTUEgMDE0NjAtMTI4OQorCQkJCVVOSVRFRCBTVEFURVMKKworQUMtMDEtNDIgICAoaGV4KQkJVXJpZWwgVGVjaG5vbG9naWVzIFNJQQorQUMwMTQyICAgICAoYmFzZSAxNikJCVVyaWVsIFRlY2hub2xvZ2llcyBTSUEKKwkJCQlEemVyYmVuZXMgaWVsYSAxNAorCQkJCVJpZ2EgIExWLTEwMDYKKwkJCQlMQVRWSUEKKworQUMtMDItQ0YgICAoaGV4KQkJUlcgVGVjbm9sb2dpYSBJbmR1c3RyaWEgZSBDb21lcmNpbyBMdGRhCitBQzAyQ0YgICAgIChiYXNlIDE2KQkJUlcgVGVjbm9sb2dpYSBJbmR1c3RyaWEgZSBDb21lcmNpbyBMdGRhCisJCQkJQ2VudHJvIEVtcHJlc2FyaWFsIFBhdWxvIEZyZWRlcmljbyBkZSBUb2xlZG8sIDgwIEEKKwkJCQlCYWlycm8gQXJjbyBJcmlycworCQkJCVNhbnRhIFJpdGEgZG8gU2FwdWNhaSBNaW5hcyBHZXJhaXMgIDM3NTQwMDAwCisJCQkJQlJBWklMCisKK0FDLTAyLUVGICAgKGhleCkJCUNvbXNpcworQUMwMkVGICAgICAoYmFzZSAxNikJCUNvbXNpcworCQkJCTMgcnVlIEJyb3Vzc2FpcworCQkJCVBhcmlzICA3NTAxNAorCQkJCUZSQU5DRQorCitBQy0wNi0xMyAgIChoZXgpCQlTZW5zZWxvZ2l4IEx0ZAorQUMwNjEzICAgICAoYmFzZSAxNikJCVNlbnNlbG9naXggTHRkCisJCQkJNTYgQ2FybHRvbiBDb3VydCwgRm9yZCBXaWxsaWFtIE1vcmdhbgorCQkJCVN0LiBBc2FwaCBCdXNpbmVzcyBQYXJrCisJCQkJU3QuIEFzYXBoIERlYmlnaHNoaXJlIExMMTcgMEpHCisJCQkJVU5JVEVEIEtJTkdET00KKworQUMtMEEtNjEgICAoaGV4KQkJTGFib3IgUy5yLkwuCitBQzBBNjEgICAgIChiYXNlIDE2KQkJTGFib3IgUy5yLkwuCisJCQkJVmlhIGRlbGxhIFNjcm9mYSAxMTcKKwkJCQlSb21lIDAwMTg2CisJCQkJSVRBTFkKKworQUMtMEQtRkUgICAoaGV4KQkJRWtvbiBHbWJIIC0gbXlHRUtLTworQUMwREZFICAgICAoYmFzZSAxNikJCUVrb24gR21iSCAtIG15R0VLS08KKwkJCQlSaWVuemZlbGRzdHJh32UgMzAKKwkJCQlCcnVuZWNrIFP8ZHRpcm9sIChCWikgMzkwMzEKKwkJCQlJVEFMWQorCitBQy0xNC02MSAgIChoZXgpCQlBVEFXICBDby4sIEx0ZC4KK0FDMTQ2MSAgICAgKGJhc2UgMTYpCQlBVEFXICBDby4sIEx0ZC4KKwkJCQlEb25nYW4tZ3UgUHllb25nY2hvbi1kb25nIDEyNi0xCisJCQkJRG9vc2FuIFZlbnR1cmUgRGlnbSM1MzEKKwkJCQlBbnlhbmctc2kgR3llb25nZ2ktZG8gNDMxLTc1NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitBQy0xNC1EMiAgIChoZXgpCQl3aS1kYXEsIGluYy4KK0FDMTREMiAgICAgKGJhc2UgMTYpCQl3aS1kYXEsIGluYy4KKwkJCQk4NTAgTlcgRmVkZXJhbCBId3kKKwkJCQlTdWl0ZSAxMjkKKwkJCQlTdHVhcnQgRmxvcmlkYSAzNDk5NAorCQkJCVVOSVRFRCBTVEFURVMKKworQUMtMTYtMkQgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCitBQzE2MkQgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0FDLTE5LTlGICAgKGhleCkJCVNVTkdST1cgUE9XRVIgU1VQUExZIENPLixMVEQuCitBQzE5OUYgICAgIChiYXNlIDE2KQkJU1VOR1JPVyBQT1dFUiBTVVBQTFkgQ08uLExURC4KKwkJCQlOTy4yIFRpYW5odSBSb2FkLCBOZXcgYW5kIEhpZ2ggVGVjaG5vbG9neSBJbmR1c3RyaWFsIERldmVsb3BtZW50IFpvbmUKKwkJCQlIZWZlaSBBbmh1aSAyMzAwODgKKwkJCQlDSElOQQorCitBQy0yMC1BQSAgIChoZXgpCQlETUFURUsgQ28uLCBMdGQuCitBQzIwQUEgICAgIChiYXNlIDE2KQkJRE1BVEVLIENvLiwgTHRkLgorCQkJCTZGLiwgTm8uMTU1LTEsIFNlYy4gMywgV2VueGluIFJkLiwgWGl0dW4gRGlzdC4sCisJCQkJVGFpY2h1bmcgIDQwNzUzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitBQy0yRi1BOCAgIChoZXgpCQlIdW1hbm5peCBDby4sTHRkLgorQUMyRkE4ICAgICAoYmFzZSAxNikJCUh1bWFubml4IENvLixMdGQuCisJCQkJIzQwMiwgOTgtNCwgU29uZ3BhLURvbmcsIFNvbmdwYS1HdQorCQkJCVNlb3VsICAxMzgtMTcwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0FDLTMxLTlEICAgKGhleCkJCVNoZW56aGVuIFRHLU5FVCBCb3RvbmUgVGVjaG5vbG9neSBDby4sTHRkLgorQUMzMTlEICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFRHLU5FVCBCb3RvbmUgVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTJuZCBmbG9vcixCdWlsZGluZyBOby42LFBlbmd0ZW5nZGEgaW5kdXN0cmlhbCB6b25lLEh1YXJvbmcgcm9hZCxEYWxhbmcgU3RyZWV0IE9mZmljZSwKKwkJCQlMb25naHVhIFRvd24KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTA5CisJCQkJQ0hJTkEKKworQUMtMzQtQ0IgICAoaGV4KQkJU2hhbmhhaSBHQkNPTSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uIEx0ZAorQUMzNENCICAgICAoYmFzZSAxNikJCVNoYW5oYWkgR0JDT00gQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLiBMdGQKKwkJCQlSb29tIDYwMiwgQnVpbGRpbmcgNiwgTm8uNTU1IERvbmdjaHVhbiBSb2FkCisJCQkJU2hhbmdoYWkgICAyMDAyNDEKKwkJCQlDSElOQQorCitBQy0zRC0wNSAgIChoZXgpCQlJbnN0b3Jlc2NyZWVuIEFpc2EKK0FDM0QwNSAgICAgKGJhc2UgMTYpCQlJbnN0b3Jlc2NyZWVuIEFpc2EKKwkJCQlSb29tIDIwNywgTm9ydGggQmxkZyxObyAyOAorCQkJCUxhbmUgNDExLCBTaGlsb25nIFJvYWQKKwkJCQlTaGFuZ2hhaSAgMjAwMjM3CisJCQkJQ0hJTkEKKworQUMtM0QtNzUgICAoaGV4KQkJSEFOR1pIT1UgWkhJV0FZIFRFQ0hOT0xPR0lFUyBDTy4sTFRELgorQUMzRDc1ICAgICAoYmFzZSAxNikJCUhBTkdaSE9VIFpISVdBWSBURUNITk9MT0dJRVMgQ08uLExURC4KKwkJCQlGTE9PUjEyQixCVUlMRElORyBFLFBBUkFESVNFIFNPRlRXQVJFIFBBUkssTk8uMyBYSURPVU1FTiBST0FELAorCQkJCVdFU1RMQUtFIERJU1RSSUNULAorCQkJCUhBTkdaSE9VIFpIRUpJQU5HIDMxMDAxMgorCQkJCUNISU5BCisKK0FDLTNGLUE0ICAgKGhleCkJCVRBSVlPIFlVREVOIENPLixMVEQKK0FDM0ZBNCAgICAgKGJhc2UgMTYpCQlUQUlZTyBZVURFTiBDTy4sTFRECisJCQkJOC0xLCBTYWthZS1jaG8KKwkJCQlUYWthc2FraS1zaGkgR3VubWEgMzcwLTg1MjIKKwkJCQlKQVBBTgorCitBQy00MC1FQSAgIChoZXgpCQlDJlQgU29sdXRpb24gSW5jLiAKK0FDNDBFQSAgICAgKGJhc2UgMTYpCQlDJlQgU29sdXRpb24gSW5jLiAKKwkJCQkxMkYtMSwgTm8uNzAwLCBaaG9uZ3poZW5nIFJkLiwgWmhvbmdoZSBEaXN0LgorCQkJCU5ldyBUYWlwZWkgQ2l0eSBUYWl3YW4gIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQUMtNDQtRjIgICAoaGV4KQkJUmV2b2xhYnMgSW5jCitBQzQ0RjIgICAgIChiYXNlIDE2KQkJUmV2b2xhYnMgSW5jCisJCQkJNjMgR3JlYXQgUmQKKwkJCQlNYXluYXJkIE1BIDAxNzU0CisJCQkJVU5JVEVEIFNUQVRFUworCitBQy00Ny0yMyAgIChoZXgpCQlHZW5lbGVjCitBQzQ3MjMgICAgIChiYXNlIDE2KQkJR2VuZWxlYworCQkJCU9sdml0aWUgNQorCQkJCUlpc2FsbWkgIDc0MTAwCisJCQkJRklOTEFORAorCitBQy00QS1GRSAgIChoZXgpCQlIaXNlbnNlIEJyb2FkYmFuZCBNdWx0aW1lZGlhIFRlY2hub2xvZ3kgQ28uLEx0ZC4KK0FDNEFGRSAgICAgKGJhc2UgMTYpCQlIaXNlbnNlIEJyb2FkYmFuZCBNdWx0aW1lZGlhIFRlY2hub2xvZ3kgQ28uLEx0ZC4KKwkJCQlOby4xMSBKaWFuZ3hpIFJvYWQsU2hpbmFuIERpc3RyaWN0CisJCQkJUWluZ2RhbyBDaXR5IFNoYW5kb25nIFByb3ZpbmNlIDI2NjA3MQorCQkJCUNISU5BCisKK0FDLTRCLUM4ICAgKGhleCkJCUp1bmlwZXIgTmV0d29ya3MKK0FDNEJDOCAgICAgKGJhc2UgMTYpCQlKdW5pcGVyIE5ldHdvcmtzCisJCQkJMTE5NCBOIE1hdGhpbGRhIEF2ZW51ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4OSAKKwkJCQlVTklURUQgU1RBVEVTCisKK0FDLTRGLUZDICAgKGhleCkJCVNWUy1WSVNURUsgR21iSAorQUM0RkZDICAgICAoYmFzZSAxNikJCVNWUy1WSVNURUsgR21iSAorCQkJCU11ZWhsYmFjaHN0ci4gMjAKKwkJCQlTZWVmZWxkIEJZIDgyMjI5CisJCQkJR0VSTUFOWQorCitBQy01MS0zNSAgIChoZXgpCQlNUEkgVEVDSAorQUM1MTM1ICAgICAoYmFzZSAxNikJCU1QSSBURUNICisJCQkJVmFkc3RydXB2ZWogMzUKKwkJCQlCYWdzduZyZCAgREstMjg4MAorCQkJCURFTk1BUksKKworQUMtNTEtRUUgICAoaGV4KQkJQ2FtYnJpZGdlIENvbW11bmljYXRpb24gU3lzdGVtcyBMdGQKK0FDNTFFRSAgICAgKGJhc2UgMTYpCQlDYW1icmlkZ2UgQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIEx0ZAorCQkJCVNoZXJhdG9uIEhvdXNlCisJCQkJQ2FzdGxlIFBhcmsKKwkJCQlDYW1icmlkZ2UgQ2FtYnJpZGdlc2hpcmUgQ0IzIDBBWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0FDLTU0LUVDICAgKGhleCkJCUlFRUUgUDE4MjMgU3RhbmRhcmRzIFdvcmtpbmcgR3JvdXAKK0FDNTRFQyAgICAgKGJhc2UgMTYpCQlJRUVFIFAxODIzIFN0YW5kYXJkcyBXb3JraW5nIEdyb3VwCisJCQkJNDQ1IEhvZXMgTGFuZQorCQkJCVBpc2NhdGF3YXkgTkogMDg4NTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0FDLTU4LTNCICAgKGhleCkJCUh1bWFuIEFzc2VtYmxlciwgSW5jLgorQUM1ODNCICAgICAoYmFzZSAxNikJCUh1bWFuIEFzc2VtYmxlciwgSW5jLgorCQkJCTItMS0xMS02RgorCQkJCVNoaWJ1eWEKKwkJCQlTaGlidXlhLWt1IFRva3lvIDE1MC0wMDAyCisJCQkJSkFQQU4KKworQUMtNUUtOEMgICAoaGV4KQkJVXRpbGxpbmsKK0FDNUU4QyAgICAgKGJhc2UgMTYpCQlVdGlsbGluaworCQkJCTgxNyBXb29saW0gTGlvbnMgVmFsbGV5IDEsIDMxMS0zIFNhbmdkYWV3b24tZG9uZyBKdW5nd29uLWd1CisJCQkJU2VvbmduYW0tc2kgR3llb25nZ2ktZG8gNDYyMTYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0FDLTYxLTIzICAgKGhleCkJCURyaXZ2ZW4sIEluYy4KK0FDNjEyMyAgICAgKGJhc2UgMTYpCQlEcml2dmVuLCBJbmMuCisJCQkJMTIwMDEgTmV0d29yayBCb3VsZXZhcmQKKwkJCQlCdWlsZGluZyBFLCBTdWl0ZSAxMTAKKwkJCQlTYW4gQW50b25pbyBUWCA3ODI0OQorCQkJCVVOSVRFRCBTVEFURVMKKworQUMtNjctMDYgICAoaGV4KQkJUnVja3VzIFdpcmVsZXNzCitBQzY3MDYgICAgIChiYXNlIDE2KQkJUnVja3VzIFdpcmVsZXNzCisJCQkJODgwIFdlc3QgTWF1ZGUgQXZlLgorCQkJCVN1aXRlIDEwMQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworQUMtNkYtNEYgICAoaGV4KQkJRW5zcGVydCBJbmMKK0FDNkY0RiAgICAgKGJhc2UgMTYpCQlFbnNwZXJ0IEluYworCQkJCTJGLiwgRGFlaHdhIEIvRCwgCisJCQkJMTY5IFNhbXN1bmctZG9uZywgR2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUwOTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQUMtNkYtQkIgICAoaGV4KQkJVEFUVU5HIFRlY2hub2xvZ3kgSW5jLgorQUM2RkJCICAgICAoYmFzZSAxNikJCVRBVFVORyBUZWNobm9sb2d5IEluYy4KKwkJCQkyMiwgQ2h1bmdzaGFuIE4uIFJkLiwgM3JkIFNlYy4sCisJCQkJVGFpcGVpICAxMDQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0FDLTZGLUQ5ICAgKGhleCkJCVZhbHVlcGx1cyBJbmMuCitBQzZGRDkgICAgIChiYXNlIDE2KQkJVmFsdWVwbHVzIEluYy4KKwkJCQkjODAzLCBTaWNveCBUb3dlciwgNTEzLTE0IAorCQkJCVNhbmdkYWV3b24tZG9uZywgSnVuZ3dvbi1ndQorCQkJCVNlb25nbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2Mi04MDYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQUMtNzItODkgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCitBQzcyODkgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCitBQy03QS00MiAgIChoZXgpCQlpQ29ubmVjdGl2aXR5CitBQzdBNDIgICAgIChiYXNlIDE2KQkJaUNvbm5lY3Rpdml0eQorCQkJCSMyMSwgMTcyNSAzMHRoIEF2ZSBORQorCQkJCUNhbGdhcnkgQWxiZXJ0YSBUMkUgN1A2CisJCQkJQ0FOQURBCisKK0FDLTgwLUQ2ICAgKGhleCkJCUhleGF0cm9uaWMgQUIKK0FDODBENiAgICAgKGJhc2UgMTYpCQlIZXhhdHJvbmljIEFCCisJCQkJRXhwb3J0Z2F0YW4gNDdCCisJCQkJR290aGVuYnVyZyAgNDIyNDYgCisJCQkJU1dFREVOCisKK0FDLTgxLTEyICAgKGhleCkJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorQUM4MTEyICAgICAoYmFzZSAxNikJCUdlbXRlayBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCU5vLiAxIEplbiBBaSBSb2FkIEhzaW5jaHUgSW5kdXN0cmlhbCBQYXJrIEh1a291LCAKKwkJCQlOby4gMTUtMSBaaG9uZ2h1YSBSb2FkLCAKKwkJCQlIc2luY2h1ICAzMDM1MgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQUMtODEtRjMgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0FDODFGMyAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1IE91IDkwMjMwCisJCQkJRklOTEFORAorCitBQy04My0xNyAgIChoZXgpCQlTaGVuemhlbiBGdXJ0dW5ldGVsIENvbW11bmljYXRpb24gQ28uLCBMdGQKK0FDODMxNyAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBGdXJ0dW5ldGVsIENvbW11bmljYXRpb24gQ28uLCBMdGQKKwkJCQlGMTkgYnVpbGRpbmcgQSB6aG9uZ2tlIHBsYXphIE5hbiB5aSBzdHJlZXQgaGlnaC10ZWNoIHpvbmUsIE5hbnNoYW4gRGlzdHJpY3QsIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitBQy04My1GMCAgIChoZXgpCQlNYWdlbnRhIFZpZGVvIE5ldHdvcmtzCitBQzgzRjAgICAgIChiYXNlIDE2KQkJTWFnZW50YSBWaWRlbyBOZXR3b3JrcworCQkJCTIwMDUgRGUgTGEgQ3J1eiBCbHZkCisJCQkJU3VpdGUgMTUwCisJCQkJU2FudGEgQ2xhcmEgQ2FsaWZvcm5pYSA5NTA1MAorCQkJCVVOSVRFRCBTVEFURVMKKworQUMtODYtNzQgICAoaGV4KQkJT3BlbiBNZXNoLCBJbmMuCitBQzg2NzQgICAgIChiYXNlIDE2KQkJT3BlbiBNZXNoLCBJbmMuCisJCQkJNTgzNyBOVyBTa3lsaW5lIEJsdmQKKwkJCQlQb3J0bGFuZCBPUiA5NzIyOQorCQkJCVVOSVRFRCBTVEFURVMKKworQUMtODYtN0UgICAoaGV4KQkJQ3JlYXRlIE5ldyBUZWNobm9sb2d5IChISykgTGltaXRlZCBDb21wYW55CitBQzg2N0UgICAgIChiYXNlIDE2KQkJQ3JlYXRlIE5ldyBUZWNobm9sb2d5IChISykgTGltaXRlZCBDb21wYW55CisJCQkJUm0gQiAxMC9GIEppbkZlbmcgQnVpbGRpbmcsMTAwMSBTaGFuZ0J1IFNvdXRoIFJvYWQsRnVUaWFuIERpc3RyaWN0IAorCQkJCVNoZW4gWmhlbiBHdWFuZyBEb25nIDUxODAzMQorCQkJCUNISU5BCisKK0FDLThBLUNEICAgKGhleCkJCVJPR0VSIEQuV2Vuc2tlciwgRy5XZW5za2VyIHNwLmouCitBQzhBQ0QgICAgIChiYXNlIDE2KQkJUk9HRVIgRC5XZW5za2VyLCBHLldlbnNrZXIgc3Auai4KKwkJCQlHb3NjaXN6ZXdvIDU5CisJCQkJU3p0dW0gUG9tb3Jza2llIDgyLTQwMAorCQkJCVBPTEFORAorCitBQy05My0yRiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorQUM5MzJGICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJWXJ0dGlwZWxsb250aWUgNgorCQkJCU91bHUgIDkwMjMwCisJCQkJRklOTEFORAorCitBQy05NC0wMyAgIChoZXgpCQlFbnZpc2lvbiBQZXJpcGhlcmFscyBJbmMKK0FDOTQwMyAgICAgKGJhc2UgMTYpCQlFbnZpc2lvbiBQZXJpcGhlcmFscyBJbmMKKwkJCQk0NzQ5MCBTZWFicmlkZ2UgRHIKKwkJCQlGcmVtb250IENhbGlmb3JuaWEgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKK0FDLTlBLTk2ICAgKGhleCkJCUxhbnRpcSBEZXV0c2NobGFuZCBHbWJICitBQzlBOTYgICAgIChiYXNlIDE2KQkJTGFudGlxIERldXRzY2hsYW5kIEdtYkgKKwkJCQlBbSBDYW1wZW9uIDMKKwkJCQlOZXViaWJlcmcgQmF2YXJpYSA4NTU3OQorCQkJCUdFUk1BTlkKKworQUMtOUItODQgICAoaGV4KQkJU21hayBUZWNub2xvZ2lhIGUgQXV0b21hY2FvCitBQzlCODQgICAgIChiYXNlIDE2KQkJU21hayBUZWNub2xvZ2lhIGUgQXV0b21hY2FvCisJCQkJQXYuIFN0by4gQW50b25pbywgMjAxIC0gQmVsYSBWaXN0YQorCQkJCU9zYXNjbyBTYW8gUGF1bG8gQ0VQIDA2MDg2LTA3NQorCQkJCUJSQVpJTAorCitBQy05Qy1FNCAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudCBTaGFuZ2hhaSBCZWxsIENvLiwgTHRkCitBQzlDRTQgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQgU2hhbmdoYWkgQmVsbCBDby4sIEx0ZAorCQkJCU5vLiAzODksIE5pbmdxaWFvIFJvYWQsIFB1ZG9uZyBKaW5xaWFvLAorCQkJCVNoYW5naGFpICAyMDEyMDYKKwkJCQlDSElOQQorCitBQy1BMC0xNiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitBQ0EwMTYgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitBQy1BQi04RCAgIChoZXgpCQlMeW5nc28gTWFyaW5lIEEvUworQUNBQjhEICAgICAoYmFzZSAxNikJCUx5bmdzbyBNYXJpbmUgQS9TCisJCQkJTHluZ3NvIEFsbGUgMgorCQkJCUhvcnNob2xtICBESy0yOTcwCisJCQkJREVOTUFSSworCitBQy1CRS03NSAgIChoZXgpCQlVZmluZSBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KK0FDQkU3NSAgICAgKGJhc2UgMTYpCQlVZmluZSBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKwkJCQk0NiwgR2V1bWdvay1kb25nLCBCdW5kYW5nLWd1CisJCQkJU2VvbmctbmFtLXNpIEd5ZW9uZ2dpLWRvIDQ2My04MDQKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQUMtQkUtQjYgICAoaGV4KQkJVmlzdWFsZWRnZSBUZWNobm9sb2d5IENvLiwgTHRkLgorQUNCRUI2ICAgICAoYmFzZSAxNikJCVZpc3VhbGVkZ2UgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkxM0ZMLi0xIE5vLiA3MTYsIFpob25nemhlbmcgUm9hZCwgWmhvbmdoZSBDaXR5LAorCQkJCVRhaXBlaSBDb3VudHksICAgMjM1MTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0FDLUMyLUVDICAgKGhleCkJCUNMVCBJTlQnTCBJTkQuIENPUlAuCitBQ0MyRUMgICAgIChiYXNlIDE2KQkJQ0xUIElOVCdMIElORC4gQ09SUC4KKwkJCQkxMUYtMiwgTk8uMSwgWkhBTlFJQU4KKwkJCQlNSUFPTEkgIDM2MDQzCisJCQkJVEFJV0FOLCBQUk9WSU5DRSBPRiBDSElOQQorCitBQy1DOS0zNSAgIChoZXgpCQlOZXNzIENvcnBvcmF0aW9uCitBQ0M5MzUgICAgIChiYXNlIDE2KQkJTmVzcyBDb3Jwb3JhdGlvbgorCQkJCTQvMTY3IFByb3NwZWN0IEhpZ2h3YXkKKwkJCQlTZXZlbiBIaWxscworCQkJCVN5ZG5leSBOU1cgMjE0NworCQkJCUFVU1RSQUxJQQorCitBQy1DQS01NCAgIChoZXgpCQlUZWxsZHVzIFRlY2hub2xvZ2llcyBBQgorQUNDQTU0ICAgICAoYmFzZSAxNikJCVRlbGxkdXMgVGVjaG5vbG9naWVzIEFCCisJCQkJU2tpZmZlcnbkZ2VuIDEwMgorCQkJCUx1bmQgIDIyNCA3OAorCQkJCVNXRURFTgorCitBQy1DQS1CQSAgIChoZXgpCQlNaWRva3VyYSBDby4sIEx0ZC4gCitBQ0NBQkEgICAgIChiYXNlIDE2KQkJTWlkb2t1cmEgQ28uLCBMdGQuIAorCQkJCTd0aCBGbG9vciBBemFidWRhaSBIaW5va2kgYnVpbGRpbmcKKwkJCQkgMy0xLTUgQXphYnVkYWkgTWluYXRvLWt1IAorCQkJCVRva3lvICAxMDYtMDA0MQorCQkJCUpBUEFOCisKK0FDLUNCLTA5ICAgKGhleCkJCUhlZmNvbSBNZXRlcmluZyAoUHR5KSBMdGQKK0FDQ0IwOSAgICAgKGJhc2UgMTYpCQlIZWZjb20gTWV0ZXJpbmcgKFB0eSkgTHRkCisJCQkJUE8gQm94IDEwNzcwCisJCQkJQ2VudHVyaW9uIEdhdXRlbmcgMDA0NgorCQkJCVNPVVRIIEFGUklDQQorCitBQy1DQy04RSAgIChoZXgpCQlBeGlzIENvbW11bmljYXRpb25zIEFCCitBQ0NDOEUgICAgIChiYXNlIDE2KQkJQXhpcyBDb21tdW5pY2F0aW9ucyBBQgorCQkJCUVtZGFsYXbkZ2VuIDE0CisJCQkJTFVORCAgMjIzNjkKKwkJCQlTV0VERU4KKworQUMtQ0UtOEYgICAoaGV4KQkJSFdBIFlBTyBURUNITk9MT0dJRVMgQ08uLCBMVEQKK0FDQ0U4RiAgICAgKGJhc2UgMTYpCQlIV0EgWUFPIFRFQ0hOT0xPR0lFUyBDTy4sIExURAorCQkJCU5PLiA2LCBMTi4gNDgsICBOQU5TSU5HIFJELiwKKwkJCQlZT05HS0FORyBDSVRZLCBUQUlOQU4gQ09VTlRZICA3MTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0FDLUNGLTIzICAgKGhleCkJCUhpLWZseWluZyBlbGVjdHJvbmljcyB0ZWNobm9sb2d5IENvLixMdGQKK0FDQ0YyMyAgICAgKGJhc2UgMTYpCQlIaS1mbHlpbmcgZWxlY3Ryb25pY3MgdGVjaG5vbG9neSBDby4sTHRkCisJCQkJUm9vbSBCMTAxLDQ1NiBCaUJvIFJhb2QsUHVEb25nCisJCQkJU2hhbmdoYWkgMjAxMjAwCisJCQkJQ0hJTkEKKworQUMtRDEtODAgICAoaGV4KQkJQ3JleGVuZG8gQnVzaW5lc3MgU29sdXRpb25zLCBJbmMuCitBQ0QxODAgICAgIChiYXNlIDE2KQkJQ3JleGVuZG8gQnVzaW5lc3MgU29sdXRpb25zLCBJbmMuCisJCQkJMTAyMDEgUy4gNXN0ICBTdC4KKwkJCQlTdWl0ZSBBLTI2NQorCQkJCVBob2VuaXggQVogODUwNDQKKwkJCQlVTklURUQgU1RBVEVTCisKK0FDLUQzLTY0ICAgKGhleCkJCUFCQiBTUEEsIEFCQiBTQUNFIERJVi4KK0FDRDM2NCAgICAgKGJhc2UgMTYpCQlBQkIgU1BBLCBBQkIgU0FDRSBESVYuCisJCQkJVi5MRSBMLkxBTUEsIDMzCisJCQkJU0VTVE8gUy5HSU9WQU5OSSBNSSAyMDA5OQorCQkJCUlUQUxZCisKK0FDLUQ5LUQ2ICAgKGhleCkJCXRjaSBHbWJICitBQ0Q5RDYgICAgIChiYXNlIDE2KQkJdGNpIEdtYkgKKwkJCQlMdWR3aWctUmlubi1TdHJh77+9ZSAxMC0xNAorCQkJCUhldWNoZWxoZWltIEhlc3NlbiAzNTQ1MgorCQkJCUdFUk1BTlkKKworQUMtREUtNDggICAoaGV4KQkJUFJJVkFURQorQUNERTQ4ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCitBQy1FMy00OCAgIChoZXgpCQlNYWRnZVRlY2gsIEluYworQUNFMzQ4ICAgICAoYmFzZSAxNikJCU1hZGdlVGVjaCwgSW5jCisJCQkJODc5IE1hcGxlIFN0CisJCQkJQ29udG9vY29vayBOSCAwMzIyOQorCQkJCVVOSVRFRCBTVEFURVMKKworQUMtRTgtN0IgICAoaGV4KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorQUNFODdCICAgICAoYmFzZSAxNikJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQKKwkJCQlCdWlsZGluZyAxNyxOYW5nYW5nIEluZHVzdHJpYWwgUGFyaywgVGFuZ3RvdSAzbmQgSW5kdXN0cmlhbCBFc3RhdGUsU2hpeWFuIEJhb2FuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDUxODA1NworCQkJCUNISU5BCisKK0FDLUU5LUFBICAgKGhleCkJCUhheSBTeXN0ZW1zIEx0ZAorQUNFOUFBICAgICAoYmFzZSAxNikJCUhheSBTeXN0ZW1zIEx0ZAorCQkJCVdhdGVybWFyaworCQkJCUFsYmEgQ2FtcHVzCisJCQkJTGl2aW5nc3RvbiBXZXN0IExvdGhpYW4gRUg1NCA3RUcKKwkJCQlVTklURUQgS0lOR0RPTQorCitBQy1FQS02QSAgIChoZXgpCQlHRU5JWCBJTkZPQ09NTSBDTy4sIExURC4KK0FDRUE2QSAgICAgKGJhc2UgMTYpCQlHRU5JWCBJTkZPQ09NTSBDTy4sIExURC4KKwkJCQkyRiwgRGFlYm8gQmxkZy4gIzEwMDktMzQKKwkJCQlEb2tzYW4tRG9uZywgS2V1bWNoZW9uLUd1CisJCQkJU2VvdWwgIDE1My04MjkKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQUMtRUUtM0IgICAoaGV4KQkJNmhhcm1vbmljcyBJbmMKK0FDRUUzQiAgICAgKGJhc2UgMTYpCQk2aGFybW9uaWNzIEluYworCQkJCTIxIENvbmNvdXJzZSBHYXRlIC0gU3VpdGUgMTAKKwkJCQlPdHRhd2EgT250YXJpbyBLMkUgN1M0CisJCQkJQ0FOQURBCisKK0FDLUYwLUIyICAgKGhleCkJCUJlY2tlciBFbGVjdHJvbmljcyBUYWl3YW4gTHRkLgorQUNGMEIyICAgICAoYmFzZSAxNikJCUJlY2tlciBFbGVjdHJvbmljcyBUYWl3YW4gTHRkLgorCQkJCU5vLjMyLCBMYW5lIDMwLCBMb25nIFl1YW4gUmQuCisJCQkJTG9uZy1UYW4gVGFveXVhbiAzMjU0NAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQUMtRjktN0UgICAoaGV4KQkJRUxFU1lTIElOQy4KK0FDRjk3RSAgICAgKGJhc2UgMTYpCQlFTEVTWVMgSU5DLgorCQkJCVN1aXQgNjIzLCA4MTItMSwgSHlvbXVuLWRvbmcKKwkJCQlVbHNhbiBCdWstZ3UgNjgzLTM2MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCMC0xQi03QyAgIChoZXgpCQlPbnRyb2wgQS5TLgorQjAxQjdDICAgICAoYmFzZSAxNikJCU9udHJvbCBBLlMuCisJCQkJVHVyY2FuIENhZCBObzoxOSBZLkR1ZHVsbHUKKwkJCQlVbXJhbml5ZSBJc3RhbmJ1bCAzNDc3NQorCQkJCVRVUktFWQorCitCMC0xQy05MSAgIChoZXgpCQlFbGltIENvCitCMDFDOTEgICAgIChiYXNlIDE2KQkJRWxpbSBDbworCQkJCTRGIEdhZ3UgUGxhemEgQi9EIDgxLTksIGplb25namEtZG9uZywgSmFuZ2FuLWd1LCAKKwkJCQlTdXdvbiBjaXR5IEd5ZW9uZ2dpLURvIDQ0MC0zMDAgCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0IwLTM4LTI5ICAgKGhleCkJCVNpbGljb253YXJlIFByZWNpc2lvbiBJbmR1c3RyaWVzIENvLiwgTHRkLgorQjAzODI5ICAgICAoYmFzZSAxNikJCVNpbGljb253YXJlIFByZWNpc2lvbiBJbmR1c3RyaWVzIENvLiwgTHRkLgorCQkJCU5vLiAxMjMsIFNlYy4zLCBEYSBGb25nIFJkLCBUYW50enUsIAorCQkJCVRhaWNodW5nICA0MjcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0IwLTQzLTVEICAgKGhleCkJCU51TEVEcywgSW5jLgorQjA0MzVEICAgICAoYmFzZSAxNikJCU51TEVEcywgSW5jLgorCQkJCTE0OTcgUG9pbnNldHRpYSBBdmUuCisJCQkJU3VpdGUgMTUzCisJCQkJVmlzdGEgQ0EgOTIwODEKKwkJCQlVTklURUQgU1RBVEVTCisKK0IwLTQ4LTdBICAgKGhleCkJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorQjA0ODdBICAgICAoYmFzZSAxNikJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorCQkJCTEtNkYsIEJ1aWxkaW5nIDIsIFBpbmdzaGFuZGF5dWFuIEluZHVzdHJpYWwsIFNvdXRoIFpvbmUsCisJCQkJVGFveXVhbiBTdHJlZXQsIE5hbnNoYW4gRGlzdHJpY3QsIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCitCMC01MS04RSAgIChoZXgpCQlIb2xsIHRlY2hub2xvZ3kgQ08uTHRkLgorQjA1MThFICAgICAoYmFzZSAxNikJCUhvbGwgdGVjaG5vbG9neSBDTy5MdGQuCisJCQkJRjIsQmxkIDI3LEFubGUgSW5kdXN0cmlhbCBQYXJrLE5hbnRvdSBHdWFua291IE5vLjIgUm9hZAorCQkJCU5hbnNoYW4gRGlzdHJpY3QsIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTIKKwkJCQlDSElOQQorCitCMC01OC1DNCAgIChoZXgpCQlCcm9hZGNhc3QgTWljcm93YXZlIFNlcnZpY2VzLCBJbmMKK0IwNThDNCAgICAgKGJhc2UgMTYpCQlCcm9hZGNhc3QgTWljcm93YXZlIFNlcnZpY2VzLCBJbmMKKwkJCQkxMjM2NyBDcm9zdGh3YWl0ZSBDaXJjbGUKKwkJCQlQb3dheSBDQSA5MjA2NAorCQkJCVVOSVRFRCBTVEFURVMKKworQjAtNUItMUYgICAoaGV4KQkJVEhFUk1PIEZJU0hFUiBTQ0lFTlRJRklDIFMuUC5BLgorQjA1QjFGICAgICAoYmFzZSAxNikJCVRIRVJNTyBGSVNIRVIgU0NJRU5USUZJQyBTLlAuQS4KKwkJCQlTVFJBREEgUklWT0xUQU5BIEtNIDYvNworCQkJCVJPREFOTyBNSUxBTiAyMDA5MAorCQkJCUlUQUxZCisKK0IwLTVDLUU1ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitCMDVDRTUgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlZcnR0aXBlbGxvbnRpZSA2CisJCQkJT3VsdSBPdSA5MDIzMAorCQkJCUZJTkxBTkQKKworQjAtNjUtNjMgICAoaGV4KQkJU2hhbmdoYWkgUmFpbHdheSBDb21tdW5pY2F0aW9uIEZhY3RvcnkKK0IwNjU2MyAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBSYWlsd2F5IENvbW11bmljYXRpb24gRmFjdG9yeQorCQkJCU5vLjE3OSBXZXN0IEppYW5nY2hhbmcgcm9hZAorCQkJCVNoYW5naGFpICAyMDA0MzYKKwkJCQlDSElOQQorCitCMC02NS1CRCAgIChoZXgpCQlBcHBsZSBJbmMKK0IwNjVCRCAgICAgKGJhc2UgMTYpCQlBcHBsZSBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitCMC02Qy1CRiAgIChoZXgpCQkzYWxpdHkgRGlnaXRhbCBTeXN0ZW1zIEdtYkgKK0IwNkNCRiAgICAgKGJhc2UgMTYpCQkzYWxpdHkgRGlnaXRhbCBTeXN0ZW1zIEdtYkgKKwkJCQlHdXQgTWVyZ2VudGhhdSAxCisJCQkJS2lzc2luZyBCYXllcm4gODY0MzgKKwkJCQlHRVJNQU5ZCisKK0IwLTc1LTBDICAgKGhleCkJCVFBIENhZmUKK0IwNzUwQyAgICAgKGJhc2UgMTYpCQlRQSBDYWZlCisJCQkJMzMgSmV3ZWxsIENvdXJ0CisJCQkJVW5pdCAxCisJCQkJUG9ydHNtb3V0aCBOSCAwMzgwMQorCQkJCVVOSVRFRCBTVEFURVMKKworQjAtNzUtRDUgICAoaGV4KQkJWlRFIENvcnBvcmF0aW9uCitCMDc1RDUgICAgIChiYXNlIDE2KQkJWlRFIENvcnBvcmF0aW9uCisJCQkJMTIvRixaVEUgUiZEIEJ1aWxkaW5nLEtlamluYW4gUm9hZCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworQjAtN0QtNjIgICAoaGV4KQkJRGlwbC4tSW5nLiBILiBIb3JzdG1hbm4gR21iSAorQjA3RDYyICAgICAoYmFzZSAxNikJCURpcGwuLUluZy4gSC4gSG9yc3RtYW5uIEdtYkgKKwkJCQlIdW1ib2xkdHN0ci4gMgorCQkJCUhlaWxpZ2VuaGF1cyAgNDI1NzkKKwkJCQlHRVJNQU5ZCisKK0IwLTgxLUQ4ICAgKGhleCkJCUktc3lzIENvcnAKK0IwODFEOCAgICAgKGJhc2UgMTYpCQlJLXN5cyBDb3JwCisJCQkJMjQ1NyBBdmlhdGlvbiBBdmUKKwkJCQlTdWl0ZSA5MDAKKwkJCQlOLiBDaGFybGVzdG9uICBTb3V0aCBDYXJvbGluYSAyOTQwNgorCQkJCVVOSVRFRCBTVEFURVMKKworQjAtODktOTEgICAoaGV4KQkJTEdFIAorQjA4OTkxICAgICAoYmFzZSAxNikJCUxHRSAKKwkJCQk2MC0zOSAsIEthc2FuIC1kb25nICwgR3VtY2hlb24tZ3UuCisJCQkJU2VvdWwgICAxNTMtODAxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0IwLThFLTFBICAgKGhleCkJCVVSYWRpbyBTeXN0ZW1zIENvLiwgTHRkCitCMDhFMUEgICAgIChiYXNlIDE2KQkJVVJhZGlvIFN5c3RlbXMgQ28uLCBMdGQKKwkJCQlQaGFzZSBJSSBEMjAyLTIsIDEzNTUgSmluSmlIdSBCbHZkCisJCQkJU3V6aG91IEluZHVzdHJpYWwgUGFyaworCQkJCVN1emhvdSBKaWFuZ3N1IDIxNTAyMQorCQkJCUNISU5BCisKK0IwLTkwLTc0ICAgKGhleCkJCUZ1bGFuIEVsZWN0cm9uaWNzIExpbWl0ZWQKK0IwOTA3NCAgICAgKGJhc2UgMTYpCQlGdWxhbiBFbGVjdHJvbmljcyBMaW1pdGVkCisJCQkJRmxhdCBCJkMsMy9GLEExIEJsb2NrLCBHYW94aW4gQ3liZXItVGVjaCBab25lLE5hbnNoYW4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworQjAtOTEtMzQgICAoaGV4KQkJVGFsZW8KK0IwOTEzNCAgICAgKGJhc2UgMTYpCQlUYWxlbworCQkJCTQxNDAgRHVibGluIEJsdmQKKwkJCQlTdWl0ZSA0MDAKKwkJCQlEdWJsaW4gQ2FsaWZvcm5pYSA5NDU2OAorCQkJCVVOSVRFRCBTVEFURVMKKworQjAtOTctM0EgICAoaGV4KQkJRS1GdWVsIENvcnBvcmF0aW9uCitCMDk3M0EgICAgIChiYXNlIDE2KQkJRS1GdWVsIENvcnBvcmF0aW9uCisJCQkJMTU0NjYgTG9zIEdhdG9zIEJsdmQuICMzNworCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworQjAtOTktMjggICAoaGV4KQkJRnVqaXRzdSBMaW1pdGVkCitCMDk5MjggICAgIChiYXNlIDE2KQkJRnVqaXRzdSBMaW1pdGVkCisJCQkJTXVzYXNoaS1rb3N1Z2kgVG93ZXIgUGxhY2UgQmxkZy4sCisJCQkJNDAzLCBLb3N1Z2ktY2hvIDEtY2hvbWUsIE5ha2FoYXJhLWt1CisJCQkJS2F3YXNha2kgS2FuYWdhd2EgMjExLTAwNjMKKwkJCQlKQVBBTgorCitCMC05QS1FMiAgIChoZXgpCQlTVEVNTUVSIElNQUdJTkcgR21iSAorQjA5QUUyICAgICAoYmFzZSAxNikJCVNURU1NRVIgSU1BR0lORyBHbWJICisJCQkJR3V0ZW5iZXJnc3RyLiAxMQorCQkJCVB1Y2hoZWltIEJ5IDgyMTc4CisJCQkJR0VSTUFOWQorCitCMC05Qi1ENCAgIChoZXgpCQlHTkggU29mdHdhcmUgSW5kaWEgUHJpdmF0ZSBMaW1pdGVkCitCMDlCRDQgICAgIChiYXNlIDE2KQkJR05IIFNvZnR3YXJlIEluZGlhIFByaXZhdGUgTGltaXRlZAorCQkJCTkvMTQgU2VuZ2FuaSBBbW1hbiBLb2lsIFN0cmVldAorCQkJCU1hZHV2YW5rYXJhaSwgR3VpbmR5CisJCQkJQ2hlbm5haSBUYW1pbG5hZHUgNjAwMDMyCisJCQkJSU5ESUEKKworQjAtQTEtMEEgICAoaGV4KQkJUGl2b3RhbCBTeXN0ZW1zIENvcnBvcmF0aW9uCitCMEExMEEgICAgIChiYXNlIDE2KQkJUGl2b3RhbCBTeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJNDY4MyAgQ2hhYm90IERyaXZlCisJCQkJUGxlYXNhbnRvbiBDQSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworQjAtQTctMkEgICAoaGV4KQkJRW5zZW1ibGUgRGVzaWducywgSW5jLgorQjBBNzJBICAgICAoYmFzZSAxNikJCUVuc2VtYmxlIERlc2lnbnMsIEluYy4KKwkJCQk4NzAgR29sZCBGbGF0IFJvYWQKKwkJCQlOZXZhZGEgQ2l0eSBDQSA5NTk1OQorCQkJCVVOSVRFRCBTVEFURVMKKworQjAtQTgtNkUgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworQjBBODZFICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5IAorCQkJCVVOSVRFRCBTVEFURVMKKworQjAtQUEtMzYgICAoaGV4KQkJR1VBTkdET05HIE9QUE8gTU9CSUxFIFRFTEVDT01NVU5JQ0FUSU9OUyBDT1JQLixMVEQuCitCMEFBMzYgICAgIChiYXNlIDE2KQkJR1VBTkdET05HIE9QUE8gTU9CSUxFIFRFTEVDT01NVU5JQ0FUSU9OUyBDT1JQLixMVEQuCisJCQkJTk8uMTggSEFJQklOIFJPQUQKKwkJCQlXVVNIQSxDSEFORydBTgorCQkJCURPTkdHVUFOIEdVQU5HRE9ORyA1MjM4NjAKKwkJCQlDSElOQQorCitCMC1CMi1EQyAgIChoZXgpCQlaeXhlbCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorQjBCMkRDICAgICAoYmFzZSAxNikJCVp5eGVsIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCisJCQkJTm8uIDYsIElubm92YXRpb24gUm9hZCwgSUksCisJCQkJIEhzaW5jaHUgU2NpZW5jZSBQYXJrLAorCQkJCUhzaW5jaHUgVGFpd2FuIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQjAtQjMtMkIgICAoaGV4KQkJU2xpY2FuIFNwLiB6IG8uby4KK0IwQjMyQiAgICAgKGJhc2UgMTYpCQlTbGljYW4gU3AuIHogby5vLgorCQkJCU0uIEtvbm9wbmlja2llaiAxOAorCQkJCUJ5ZGdvc3pjeiBLdWphd3Nrby1Qb21vcnNraWUgODUtMTI0CisJCQkJUE9MQU5ECisKK0IwLUI4LUQ1ICAgKGhleCkJCU5hbmppbmcgTmVuZ3J1aSBBdXRvIEVxdWlwbWVudCBDTy4sTHRkCitCMEI4RDUgICAgIChiYXNlIDE2KQkJTmFuamluZyBOZW5ncnVpIEF1dG8gRXF1aXBtZW50IENPLixMdGQKKwkJCQlOby4xMDggR2FuamlhYmlhbiBFYXN0IFlhb2h1YSBUb3duCisJCQkJTmFuamluZyBKaWFuZ3N1IDIxMDA0NgorCQkJCUNISU5BCisKK0IwLUJELTZEICAgKGhleCkJCUVjaG9zdHJlYW1zIElubm92YXRpdmUgU29sdXRpb25zCitCMEJENkQgICAgIChiYXNlIDE2KQkJRWNob3N0cmVhbXMgSW5ub3ZhdGl2ZSBTb2x1dGlvbnMKKwkJCQkxMTMwIENvaW5lciBDdC4KKwkJCQlDaXR5IG9mIEluZHVzdHJ5IENBIDkxNzQ4CisJCQkJVU5JVEVEIFNUQVRFUworCitCMC1CRC1BMSAgIChoZXgpCQlaQUtMQUQgRUxFS1RST05JQ1pOWSBTSU1TCitCMEJEQTEgICAgIChiYXNlIDE2KQkJWkFLTEFEIEVMRUtUUk9OSUNaTlkgU0lNUworCQkJCVBPRCBTS0FSUEEgNTFBCisJCQkJQllER09TWkNaIEtVSkFXU0tPLVBPTU9SU0tJRSA4NS03OTYKKwkJCQlQT0xBTkQKKworQjAtQkYtOTkgICAoaGV4KQkJV0laSVRET05HRE8KK0IwQkY5OSAgICAgKGJhc2UgMTYpCQlXSVpJVERPTkdETworCQkJCTJGLCAyOTktMSwgMy1ET05HLCBTVU5HU1UgMi1HQQorCQkJCVNVTkdET05HLUtVCisJCQkJU0VPVUwgIDEzMy04MzMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQjAtQzYtOUEgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworQjBDNjlBICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5IAorCQkJCVVOSVRFRCBTVEFURVMKKworQjAtQzgtM0YgICAoaGV4KQkJSmlhbmdzdSBDeW5yYXkgSU9UIENvLiwgTHRkLgorQjBDODNGICAgICAoYmFzZSAxNikJCUppYW5nc3UgQ3lucmF5IElPVCBDby4sIEx0ZC4KKwkJCQlCdWlsZGluZyBEMSwgMSBaaWRvbmcgcm9hZCwgUWl4aWEgZGlzdHJpY3QKKwkJCQlOYW5qaW5nIEppYW5nc3UgMjEwMDAwCisJCQkJQ0hJTkEKKworQjAtQzgtQUQgICAoaGV4KQkJUGVvcGxlIFBvd2VyIENvbXBhbnkKK0IwQzhBRCAgICAgKGJhc2UgMTYpCQlQZW9wbGUgUG93ZXIgQ29tcGFueQorCQkJCTYyMCBMb3dlbGwgQXZlCisJCQkJUGFsbyBBbHRvIENBIDk0MzAxCisJCQkJVU5JVEVEIFNUQVRFUworCitCMC1DRi00RCAgIChoZXgpCQlNSS1ab25lIFRlY2hub2xvZ3kgSXJlbGFuZAorQjBDRjREICAgICAoYmFzZSAxNikJCU1JLVpvbmUgVGVjaG5vbG9neSBJcmVsYW5kCisJCQkJMm5kIGZsb29yLGJsb2NrIDEwIHVuaXQgMworCQkJCUJsYW5jaGFyZHN0b3duIGNvcnBvcmF0ZSBwYXJrCisJCQkJZHVibGluIEJsYW5jaGFyZHN0b3duIDE1CisJCQkJSVJFTEFORAorCitCMC1EMC05QyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKK0IwRDA5QyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQjAtRDItRjUgICAoaGV4KQkJVmVsbG8gU3lzdGVtcywgSW5jLgorQjBEMkY1ICAgICAoYmFzZSAxNikJCVZlbGxvIFN5c3RlbXMsIEluYy4KKwkJCQkxNTMwIE8nQnJpZW4gRHJpdmUKKwkJCQlNZW5sbyBQYXJrIENhbGlmb3JuaWEgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKK0IwLUUzLTlEICAgKGhleCkJCUNBVCBTWVNURU0gQ08uLExURC4KK0IwRTM5RCAgICAgKGJhc2UgMTYpCQlDQVQgU1lTVEVNIENPLixMVEQuCisJCQkJMy0xNDctMjcgSGlnYXNpLXNpbm1hY2hpIEhpcm9oYXRhLWt1CisJCQkJSGltZWppIEh5b2dvIDY3MS0xMTIxCisJCQkJSkFQQU4KKworQjAtRTUtMEUgICAoaGV4KQkJTlJHIFNZU1RFTVMgSU5DCitCMEU1MEUgICAgIChiYXNlIDE2KQkJTlJHIFNZU1RFTVMgSU5DCisJCQkJUE8gQk9YIDA1MDkKKwkJCQlIaW5lc2J1cmcgVlQgMDU0NjEwNTA5CisJCQkJVU5JVEVEIFNUQVRFUworCitCMC1FNy01NCAgIChoZXgpCQkyV2lyZQorQjBFNzU0ICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDYWxpZm9ybmlhIDk1MTMxCisJCQkJVU5JVEVEIFNUQVRFUworCitCMC1FOC05MiAgIChoZXgpCQlTRUlLTyBFUFNPTiBDT1JQT1JBVElPTgorQjBFODkyICAgICAoYmFzZSAxNikJCVNFSUtPIEVQU09OIENPUlBPUkFUSU9OCisJCQkJMy0zLTUgT1dBCisJCQkJU1VXQS1TSEkgTkFHQU5PLUtFTiAzOTItODUwMgorCQkJCUpBUEFOCisKK0IwLUU5LTdFICAgKGhleCkJCUFkdmFuY2VkIE1pY3JvIFBlcmlwaGVyYWxzCitCMEU5N0UgICAgIChiYXNlIDE2KQkJQWR2YW5jZWQgTWljcm8gUGVyaXBoZXJhbHMKKwkJCQlVbml0IDEgSGFycmllciBIb3VzZQorCQkJCVNlZGdld2F5IEJ1aXNuZXNzIFBhcmsKKwkJCQlXaXRjaGZvcmQgQ2FtYnJpZGdlc2hpcmUgQ0I2IDJIWQorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0IwLUVDLTcxICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorQjBFQzcxICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCMC1GMS1CQyAgIChoZXgpCQlEaGVtYXggSW5nZW5pZXJvcyBMdGRhCitCMEYxQkMgICAgIChiYXNlIDE2KQkJRGhlbWF4IEluZ2VuaWVyb3MgTHRkYQorCQkJCVNpZXRlIE9yaWVudGUgMTIzNAorCQkJCVZpbmEgZGVsIE1hciBSZWdpb24gZGUgVmFscGFyYWlzbyAyNTMwOTU0CisJCQkJQ0hJTEUKKworQjQtMDEtNDIgICAoaGV4KQkJR0NJIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLixMVEQKK0I0MDE0MiAgICAgKGJhc2UgMTYpCQlHQ0kgU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLExURAorCQkJCU5vLjM4MSx4aW5nYW5nemhvbmcgcm9hZCAsCisJCQkJR3VhbmdaaG91IEd1YW5nRG9uZyA1MTAzMTAKKwkJCQlDSElOQQorCitCNC0wNC0xOCAgIChoZXgpCQlTbWFydGNoaXAgSW50ZWdyYXRlZCBJbmMuCitCNDA0MTggICAgIChiYXNlIDE2KQkJU21hcnRjaGlwIEludGVncmF0ZWQgSW5jLgorCQkJCTlCLFNjaWVuY2UgUGxhemEsMTM1NSBKaW5KaUh1IEF2ZW51ZSxTdXpob3UgSW5kdXN0cmlhbCBQYXJrCisJCQkJU3V6aG91IEppYW5nc3UgMjE1MDIxCisJCQkJQ0hJTkEKKworQjQtMDctRjkgICAoaGV4KQkJU0FNU1VORyBFTEVDVFJPLU1FQ0hBTklDUworQjQwN0Y5ICAgICAoYmFzZSAxNikJCVNBTVNVTkcgRUxFQ1RSTy1NRUNIQU5JQ1MKKwkJCQlTdXdvbi1TaSwgR3llb25nZ2lfRG8sIEtvcmVhCisJCQkJU3V3b24gR3llb25nZ2lfRG8gNDQzLTc0MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCNC0wOC0zMiAgIChoZXgpCQlUQyBDb21tdW5pY2F0aW9ucworQjQwODMyICAgICAoYmFzZSAxNikJCVRDIENvbW11bmljYXRpb25zCisJCQkJMTc4ODEgQ2FydHdyaWdodCBSb2FkCisJCQkJSXJ2aW5lIENBIDkyNjE0CisJCQkJVU5JVEVEIFNUQVRFUworCitCNC0wQi03QSAgIChoZXgpCQlCcnVzYSBFbGVrdHJvbmlrIEFHCitCNDBCN0EgICAgIChiYXNlIDE2KQkJQnJ1c2EgRWxla3Ryb25payBBRworCQkJCU5ldWRvcmYgMTQKKwkJCQlTZW5ud2FsZCBTdC4gR2FsbGVuIDk0NjYKKwkJCQlTV0lUWkVSTEFORAorCitCNC0wQy0yNSAgIChoZXgpCQlQYWxvIEFsdG8gTmV0d29ya3MKK0I0MEMyNSAgICAgKGJhc2UgMTYpCQlQYWxvIEFsdG8gTmV0d29ya3MKKwkJCQkzMzAwIE9sY290dCBTdHJlZXQKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtMEUtOTYgICAoaGV4KQkJSEVSQU4gCitCNDBFOTYgICAgIChiYXNlIDE2KQkJSEVSQU4gCisJCQkJTm8uODgsIEtlamkgM3JkIFJkLiwgR3Vpc2hhbiBUb3duc2hpcAorCQkJCVRhb3l1YW4gUi5PLkMgMzMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCNC0wRS1EQyAgIChoZXgpCQlMRy1Fcmljc3NvbiBDby4sTHRkLgorQjQwRURDICAgICAoYmFzZSAxNikJCUxHLUVyaWNzc29uIENvLixMdGQuCisJCQkJNTMzLEhvZ3llLTFkb25nLERvbmdhbi1ndQorCQkJCUxHIFImRCBDb21wbGV4LkxHLUVyaWNzc29uLAorCQkJCUFueWFuZy1zaGkgS3l1bmdraS1kbyA0MzEtNzQ5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0I0LTE0LTg5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0I0MTQ4OSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LTFELUVGICAgKGhleCkJCUludGVybmV0IExhYm9yYXRvcmllcywgSW5jLgorQjQxREVGICAgICAoYmFzZSAxNikJCUludGVybmV0IExhYm9yYXRvcmllcywgSW5jLgorCQkJCVAuTy4gQm94IDc2OTcKKwkJCQlBdGxhbnRhIEdBIDMwMzU3CisJCQkJVU5JVEVEIFNUQVRFUworCitCNC0yMS0xRCAgIChoZXgpCQlCZWlqaW5nIEd1YW5nWGluIFRlY2hub2xvZ3kgQ28uLCBMdGQKK0I0MjExRCAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEd1YW5nWGluIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlSb29tIDMxMyxCIEJsZCxIb3Jpem9uIEludGVybmF0aW9uYWwgVG93ZXIsWmhpY2h1biBSb2FkLDYsSGFpZGlhbiBEaXN0cmljdCxCZWlqaW5nIENpdHksUC5SLkNoaW5hCisJCQkJQmVpamluZyAgMTAwMDg2CisJCQkJQ0hJTkEKKworQjQtMjEtOEEgICAoaGV4KQkJRG9nIEh1bnRlciBMTEMKK0I0MjE4QSAgICAgKGJhc2UgMTYpCQlEb2cgSHVudGVyIExMQworCQkJCTggRmFuZXVpbCBIYWxsIFNRCisJCQkJQm9zdG9uIE1BIDAyMTA5CisJCQkJVU5JVEVEIFNUQVRFUworCitCNC0yOC1GMSAgIChoZXgpCQlFLVByaW1lIENvLiwgTHRkLgorQjQyOEYxICAgICAoYmFzZSAxNikJCUUtUHJpbWUgQ28uLCBMdGQuCisJCQkJUm0xMjA3LCBLb2xvbiBTY2llbmNlIFZhbGxleSwgODExLAorCQkJCUt1cm8tRG9uZywgS3Vyby1LdQorCQkJCVNlb3VsICAxNTIwNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQjQtMkEtMzkgICAoaGV4KQkJT1JCSVQgTUVSUkVULCBzcG9sLiBzIHIuIG8uCitCNDJBMzkgICAgIChiYXNlIDE2KQkJT1JCSVQgTUVSUkVULCBzcG9sLiBzIHIuIG8uCisJCQkJVm9kbmFuc2thIDY3NS8zMAorCQkJCVByYWhhICAxOTggMDAKKwkJCQlDWkVDSCBSRVBVQkxJQworCitCNC0yQy1CRSAgIChoZXgpCQlEaXJlY3QgUGF5bWVudCBTb2x1dGlvbnMgTGltaXRlZAorQjQyQ0JFICAgICAoYmFzZSAxNikJCURpcmVjdCBQYXltZW50IFNvbHV0aW9ucyBMaW1pdGVkCisJCQkJOTggQW56YWMgQXZlbnVlCisJCQkJQXVja2xhbmQgIDEwMzUKKwkJCQlORVcgWkVBTEFORAorCitCNC0zMS1COCAgIChoZXgpCQlBdml3ZXN0CitCNDMxQjggICAgIChiYXNlIDE2KQkJQXZpd2VzdAorCQkJCTYgcnVlIGR1IFBhdGlzIFRhdGVsaW4KKwkJCQlSZW5uZXMgIDM1NzAwCisJCQkJRlJBTkNFCisKK0I0LTM1LTY0ICAgKGhleCkJCUZ1amlhbiBUaWFuIENoZW5nIEVsZWN0cm9uIFNjaWVuY2UgJiBUZWNobmljYWwgRGV2ZWxvcG1lbnQgQ28uLEx0ZC4KK0I0MzU2NCAgICAgKGJhc2UgMTYpCQlGdWppYW4gVGlhbiBDaGVuZyBFbGVjdHJvbiBTY2llbmNlICYgVGVjaG5pY2FsIERldmVsb3BtZW50IENvLixMdGQuCisJCQkJMTgwMSB1bml0LFRpYW4gYW4gQ3liZXIgVGltZXMgVG93ZXIgQSxGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworQjQtMzUtRjcgICAoaGV4KQkJWmhlamlhbmcgUGVhcm1haW4gRWxlY3Ryb25pY3MgQ28ubHRkLgorQjQzNUY3ICAgICAoYmFzZSAxNikJCVpoZWppYW5nIFBlYXJtYWluIEVsZWN0cm9uaWNzIENvLmx0ZC4KKwkJCQk0RiBZaXRhaSBNYW5zaW9uLCA3NiBHdWN1aSBSb2FkLAorCQkJCUhhbmd6aG91IFpoZWppYW5nIDMxMDAxMgorCQkJCUNISU5BCisKK0I0LTM3LTQxICAgKGhleCkJCUNvbnNlcnQsIEluYy4KK0I0Mzc0MSAgICAgKGJhc2UgMTYpCQlDb25zZXJ0LCBJbmMuCisJCQkJNDcwMCBGYWxscyBvZiBOZXVzZSBSZC4KKwkJCQlTdWl0ZSAzNDAKKwkJCQlSYWxlaWdoIE5DIDI3NjA5CisJCQkJVU5JVEVEIFNUQVRFUworCitCNC0zOS1ENiAgIChoZXgpCQlQcm9DdXJ2ZSBOZXR3b3JraW5nIGJ5IEhQCitCNDM5RDYgICAgIChiYXNlIDE2KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorCQkJCTgwMCBGb290aGlsbHMgQmx2ZC4KKwkJCQlSb3NldmlsbGUgQ2FsaWZvcm5pYSA5NTc0NworCQkJCVVOSVRFRCBTVEFURVMKKworQjQtM0QtQjIgICAoaGV4KQkJRGVncmVhbmUgSG9yaXpvbgorQjQzREIyICAgICAoYmFzZSAxNikJCURlZ3JlYW5lIEhvcml6b24KKwkJCQk3MzAgUnVlIGRlIGwmIzM5O0luaXRpYXRpdmUKKwkJCQlDdWVycyBWYXIgODMzOTAKKwkJCQlGUkFOQ0UKKworQjQtNDEtN0EgICAoaGV4KQkJU2hlblpoZW4gR29uZ2ppbiBFbGVjdHJvbmljcyBDby4sTHRkCitCNDQxN0EgICAgIChiYXNlIDE2KQkJU2hlblpoZW4gR29uZ2ppbiBFbGVjdHJvbmljcyBDby4sTHRkCisJCQkJNEYsQmFpeWluZyBCdWlsZGluZywgTm8uMTAxOSxOYW5oYWkgUkQsU2hla291CisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA2NworCQkJCUNISU5BCisKK0I0LTRDLUMyICAgKGhleCkJCU5SIEVMRUNUUklDIENPLiwgTFRECitCNDRDQzIgICAgIChiYXNlIDE2KQkJTlIgRUxFQ1RSSUMgQ08uLCBMVEQKKwkJCQk2OSxTdXl1YW4gQXZlbnVlCisJCQkJSmlhbmduaW5nCisJCQkJTmFuamluZyBKaWFuZ3N1IDIxMTEwMgorCQkJCUNISU5BCisKK0I0LTUxLUY5ICAgKGhleCkJCU5CIFNvZnR3YXJlCitCNDUxRjkgICAgIChiYXNlIDE2KQkJTkIgU29mdHdhcmUKKwkJCQlFaWNoaGFsZGUgMworCQkJCVdlaXNzYWNoIGkuIFQuIEJhZGVuLVf8cnR0ZW1iZXJnIDcxNTU0CisJCQkJR0VSTUFOWQorCitCNC01Mi01MyAgIChoZXgpCQlTZWFnYXRlIFRlY2hub2xvZ3kKK0I0NTI1MyAgICAgKGJhc2UgMTYpCQlTZWFnYXRlIFRlY2hub2xvZ3kKKwkJCQkxMjgwIERpc2MgRHJpdmUKKwkJCQlTaGFrb3BlZSBNTiA1NTM3OQorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtNTUtNzAgICAoaGV4KQkJQm9yZWEKK0I0NTU3MCAgICAgKGJhc2UgMTYpCQlCb3JlYQorCQkJCU1sYWthIDFiCisJCQkJQmVndW5qZSAgU0ktNDI3NQorCQkJCVNMT1ZFTklBCisKK0I0LTU4LTYxICAgKGhleCkJCUNSZW1vdGUsIExMQworQjQ1ODYxICAgICAoYmFzZSAxNikJCUNSZW1vdGUsIExMQworCQkJCTExOTUgTm9lbCBEcml2ZQorCQkJCU1FTkxPIFBBUksgQ0EgOTQwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LTVDLUE0ICAgKGhleCkJCVRoaW5nLXRhbGsgV2lyZWxlc3MgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24gTGltaXRlZAorQjQ1Q0E0ICAgICAoYmFzZSAxNikJCVRoaW5nLXRhbGsgV2lyZWxlc3MgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2dpZXMgQ29ycG9yYXRpb24gTGltaXRlZAorCQkJCTQ5OCBHdW8gU2hvdSBKaW5nIFJvYWQsIFN1aXRlIDEwNDAyCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKK0I0LTYyLTM4ICAgKGhleCkJCUV4YWJsb3gKK0I0NjIzOCAgICAgKGJhc2UgMTYpCQlFeGFibG94CisJCQkJMzY1IFNhbiBBbnRvbmlvIFJvYWQKKwkJCQlNb3VudGFpbiBWaWV3IENBIDk0MDQwCisJCQkJVU5JVEVEIFNUQVRFUworCitCNC02Ny1FOSAgIChoZXgpCQlRaW5nZGFvIEdvZXJUZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KK0I0NjdFOSAgICAgKGJhc2UgMTYpCQlRaW5nZGFvIEdvZXJUZWsgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQk1RiwgTm8uMyBCdWlsZGluZywgRm9ydHVuZSBDZW50ZXIKKwkJCQlOby4xOCwgUWlubGluZyBSb2FkLCBMYW9zaGFuIERpc3RyaWN0CisJCQkJUWluZ2RhbyBTaGFuZG9uZyAyNjYwNjEKKwkJCQlDSElOQQorCitCNC03NC05RiAgIChoZXgpCQlhc2tleSBjb21wdXRlciBjb3JwCitCNDc0OUYgICAgIChiYXNlIDE2KQkJYXNrZXkgY29tcHV0ZXIgY29ycAorCQkJCTExMEYsTk8uMTE5LENISUVOS0FORyBSRCxDSFVORy1ITywKKwkJCQlUQUlQRUkgMjM1ODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0I0LTgyLTU1ICAgKGhleCkJCVJlc2VhcmNoIFByb2R1Y3RzIENvcnBvcmF0aW9uCitCNDgyNTUgICAgIChiYXNlIDE2KQkJUmVzZWFyY2ggUHJvZHVjdHMgQ29ycG9yYXRpb24KKwkJCQkxMDE1IEUuIFdhc2hpbmd0b24gQXZlCisJCQkJTWFkaXNvbiBXSSA1MzcwMworCQkJCVVOSVRFRCBTVEFURVMKKworQjQtODItQzUgICAoaGV4KQkJUmVsYXkyLCBJbmMuCitCNDgyQzUgICAgIChiYXNlIDE2KQkJUmVsYXkyLCBJbmMuCisJCQkJMTUyNSBNY0NhcnRoeSBCbHZkLiwgCisJCQkJU3VpdGUgIzIwOQorCQkJCU1pbHBpdGFzIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCitCNC04Mi1GRSAgIChoZXgpCQlBc2tleSBDb21wdXRlciBDb3JwCitCNDgyRkUgICAgIChiYXNlIDE2KQkJQXNrZXkgQ29tcHV0ZXIgQ29ycAorCQkJCTEwRixOTy4xMTksQ0hJRU5LQU5HIFJELENIVU5HLUhPLAorCQkJCVRBSVBFSSAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0I0LTg5LTEwICAgKGhleCkJCUNvc3RlciBULkUuIFMuUC5BLgorQjQ4OTEwICAgICAoYmFzZSAxNikJCUNvc3RlciBULkUuIFMuUC5BLgorCQkJCVZpYSBTYW4gR2lvdmFubmkgQmF0dGlzdGEgRGUgTGEgU2FsbGUgNC9hCisJCQkJTWlsYW5vIE1JIDIwMTMyCisJCQkJSVRBTFkKKworQjQtOTQtNEUgICAoaGV4KQkJV2VUZWxlY29tIENvLiwgTHRkLgorQjQ5NDRFICAgICAoYmFzZSAxNikJCVdlVGVsZWNvbSBDby4sIEx0ZC4KKwkJCQlUaGUnTyBQbHVzICM5MTUKKwkJCQlTYW5ib24tZG9uZworCQkJCUd1bnBvLXNpIEt5dW5nZ2ktZG8gNDM1LTgwNQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCNC05OS1CQSAgIChoZXgpCQlIZXdsZXR0LVBhY2thcmQgQ29tcGFueQorQjQ5OUJBICAgICAoYmFzZSAxNikJCUhld2xldHQtUGFja2FyZCBDb21wYW55CisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCU1haWxjb2RlIDYuMy4wNDkKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCitCNC05RS1FNiAgIChoZXgpCQlTSEVOWkhFTiBURUNITk9MT0dZIENPIExURAorQjQ5RUU2ICAgICAoYmFzZSAxNikJCVNIRU5aSEVOIFRFQ0hOT0xPR1kgQ08gTFRECisJCQkJTk8zNCBTSElMT05HIFJECisJCQkJU0hJWUFORyBUT1dOCisJCQkJU0hFTlpIRU4gR1VBTkdET05HIDkxNzMyCisJCQkJQ0hJTkEKKworQjQtQTQtQjUgICAoaGV4KQkJWmVuIEV5ZSBDby4sTHRkCitCNEE0QjUgICAgIChiYXNlIDE2KQkJWmVuIEV5ZSBDby4sTHRkCisJCQkJIzQwMSwgMTU3LTUgQ2h1bnVpLWRvbmcKKwkJCQlXb25taS1ndQorCQkJCUJ1Y2hlb24tc2kgR3llb25nZ2ktZG8gNDIwLTg1OQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCNC1BNC1FMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitCNEE0RTMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitCNC1BNS1BOSAgIChoZXgpCQlNT0RJIEdtYkgKK0I0QTVBOSAgICAgKGJhc2UgMTYpCQlNT0RJIEdtYkgKKwkJCQlLYXBlbGxlbndlZyAyMQorCQkJCVJFSUNIU0hPRi1TaW5zcGVydCAgNTE1ODAKKwkJCQlHRVJNQU5ZCisKK0I0LUFBLTREICAgKGhleCkJCUVuc2VxdWVuY2UsIEluYy4KK0I0QUE0RCAgICAgKGJhc2UgMTYpCQlFbnNlcXVlbmNlLCBJbmMuCisJCQkJMTExIFNXIDV0aCBBdmUgU3VpdGUgMTQwMAorCQkJCVBvcnRsYW5kIE9SIDk3MjA0CisJCQkJVU5JVEVEIFNUQVRFUworCitCNC1CMC0xNyAgIChoZXgpCQlBdmF5YSwgSW5jCitCNEIwMTcgICAgIChiYXNlIDE2KQkJQXZheWEsIEluYworCQkJCTIxMSBNb3VudCBBaXJ5IFJvYWQgCisJCQkJQmFza2luZyBSaWRnZSBOSiAwNzkyMC0yMzExIAorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtQjMtNjIgICAoaGV4KQkJWlRFIENvcnBvcmF0aW9uCitCNEIzNjIgICAgIChiYXNlIDE2KQkJWlRFIENvcnBvcmF0aW9uCisJCQkJMTIvRixaVEUgUiZEIEJ1aWxkaW5nLGtlamluYW4gUm9hZCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworQjQtQjUtMkYgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCitCNEI1MkYgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LUI1LUFGICAgKGhleCkJCU1pbnN1bmcgRWxlY3Ryb25pY3MKK0I0QjVBRiAgICAgKGJhc2UgMTYpCQlNaW5zdW5nIEVsZWN0cm9uaWNzCisJCQkJTWVnYS12YWxsZXkgIzYyMAorCQkJCURvbmdhbi1ndSBHd2FueWFuZy1kb25nLCA3OTkKKwkJCQlBbnlhbmctc2kgS3llb25nZ2ktZG8gNDMxLTc2NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCNC1CNi03NiAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKK0I0QjY3NiAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKK0I0LUI4LThEICAgKGhleCkJCVRodWggQ29tcGFueQorQjRCODhEICAgICAoYmFzZSAxNikJCVRodWggQ29tcGFueQorCQkJCTYwNSAgVGVycml0b3JpYWwgRHIKKwkJCQlTdWl0ZSBDCisJCQkJQm9saW5nYnJvb2sgSUwgNjA0NDAKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LUM0LTRFICAgKGhleCkJCVZYTCBlVGVjaCBQdnQgTHRkCitCNEM0NEUgICAgIChiYXNlIDE2KQkJVlhMIGVUZWNoIFB2dCBMdGQKKwkJCQkjOTEsIDExdGggTWFpbiwgQmVndXIgTWFpbiBSb2FkCisJCQkJSG9uZ2FzYW5kcmEKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MDA2OAorCQkJCUlORElBCisKK0I0LUM3LTk5ICAgKGhleCkJCU1vdG9yb2xhIFNvbHV0aW9ucyBJbmMuCitCNEM3OTkgICAgIChiYXNlIDE2KQkJTW90b3JvbGEgU29sdXRpb25zIEluYy4KKwkJCQkxIE1vdG9yb2xhIFBsYXphCisJCQkJSG9sdHN2aWxsZSBOWSAxMTc0MQorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtQzgtMTAgICAoaGV4KQkJVU1QSSBFbGV0dHJvbmljYQorQjRDODEwICAgICAoYmFzZSAxNikJCVVNUEkgRWxldHRyb25pY2EKKwkJCQlWaWEgUmVzcGlnaGksIDE1CisJCQkJQ2F0dG9saWNhICA0Nzg0MQorCQkJCUlUQUxZCisKK0I0LUNGLURCICAgKGhleCkJCVNoZW56aGVuIEppdXpob3UgRWxlY3RyaWMgQ28uLExURAorQjRDRkRCICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEppdXpob3UgRWxlY3RyaWMgQ28uLExURAorCQkJCTZGLEppdXpob3UgRWxlY3RyaWMgQnVpbGRpbmcsU291dGhlcm4gTm8uMTJSRC4sSGktVGVjaCBJbmR1c3RyaWFsIFBhcmssTmFuc2hhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworQjQtRDgtQTkgICAoaGV4KQkJQmV0dGVyQm90cworQjREOEE5ICAgICAoYmFzZSAxNikJCUJldHRlckJvdHMKKwkJCQkxNjAwIFdpbHNvbiBXYXkgU0UsIFN0ZS4gOQorCQkJCVNteXJuYSBHQSAzMDA4MgorCQkJCVVOSVRFRCBTVEFURVMKKworQjQtRDgtREUgICAoaGV4KQkJaW90YSBDb21wdXRpbmcsIEluYy4KK0I0RDhERSAgICAgKGJhc2UgMTYpCQlpb3RhIENvbXB1dGluZywgSW5jLgorCQkJCTIyNzUgRWFzdCBCYXlzaG9yZSBSb2FkCisJCQkJU3VpdGUgMTA4CisJCQkJUGFsbyBBbHRvIENBIDk0MzAzLTMyMjIKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LUUwLUNEICAgKGhleCkJCUlPIFR1cmJpbmUsIEluYy4KK0I0RTBDRCAgICAgKGJhc2UgMTYpCQlJTyBUdXJiaW5lLCBJbmMuCisJCQkJMzAzMSBUaXNjaCBXYXksIFN1aXRlIDQ1MAorCQkJCVNhbiBKb3NlIENBIDk1MTI4CisJCQkJVU5JVEVEIFNUQVRFUworCitCNC1FMS1FQiAgIChoZXgpCQlQUklWQVRFCitCNEUxRUIgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKK0I0LUVELTE5ICAgKGhleCkJCVBpZSBEaWdpdGFsLCBJbmMuCitCNEVEMTkgICAgIChiYXNlIDE2KQkJUGllIERpZ2l0YWwsIEluYy4KKwkJCQk1NzUgTWFya2V0IHN0LiwgOHRoIGZsb29yCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5NDEwNS0yODIzCisJCQkJVU5JVEVEIFNUQVRFUworCitCNC1FRC01NCAgIChoZXgpCQlXb2hsZXIgVGVjaG5vbG9naWVzCitCNEVENTQgICAgIChiYXNlIDE2KQkJV29obGVyIFRlY2hub2xvZ2llcworCQkJCTMxMDU1IEh1bnR3b29kIEF2ZW51ZQorCQkJCUhheXdhcmQgQ0EgOTQ1NDQKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LUVFLUQ0ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCitCNEVFRDQgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0I0LUYzLTIzICAgKGhleCkJCVBFVEFURUwgSU5DLgorQjRGMzIzICAgICAoYmFzZSAxNikJCVBFVEFURUwgSU5DLgorCQkJCSMzMjIgVEhFIE8gVklMTEUgNzIwLTI1LCBZRU9LU0FNLURPTkcKKwkJCQlHQU5HTkFNLUdVIFNFT1VMIDEzNTA4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCNC1GQy03NSAgIChoZXgpCQlTRU1BIEVsZWN0cm9uaWNzKEhLKSBDTy4sTFRECitCNEZDNzUgICAgIChiYXNlIDE2KQkJU0VNQSBFbGVjdHJvbmljcyhISykgQ08uLExURAorCQkJCVhpYWxpbmdiZWkgSW5kdXN0cmlhbCBab25lICBMaWFvYnUsIAorCQkJCURvbmdndWFuIEd1YW5nZG9uZyA1MjM0MTEKKwkJCQlDSElOQQorCitCOC0wMy0wNSAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKK0I4MDMwNSAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKK0I4LTBCLTlEICAgKGhleCkJCVJPUEVYIEluZHVzdHJpZS1FbGVrdHJvbmlrIEdtYkgKK0I4MEI5RCAgICAgKGJhc2UgMTYpCQlST1BFWCBJbmR1c3RyaWUtRWxla3Ryb25payBHbWJICisJCQkJR2Fuc2FlY2tlciAyMQorCQkJCUJpZXRpZ2hlaW0tQmlzc2luZ2VuIEJhZGVuIFd1ZXJ0dGVtYmVyZyA3NDMyMQorCQkJCUdFUk1BTlkKKworQjgtMTQtMTMgICAoaGV4KQkJS2VlbiBIaWdoIEhvbGRpbmcoSEspIEx0ZC4KK0I4MTQxMyAgICAgKGJhc2UgMTYpCQlLZWVuIEhpZ2ggSG9sZGluZyhISykgTHRkLgorCQkJCTI1dGggRmxvb3IsIEluLWxvbmcgRGV2ZWxvcG1lbnQgQ2VudHJlLCBOby42MDI1IFNoZW5uYW4gQXZlCisJCQkJRnV0aWFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgIDUxODA0MAorCQkJCUNISU5BCisKK0I4LTE3LUMyICAgKGhleCkJCUFwcGxlLCBJbmMuCitCODE3QzIgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQljdXBlcnRpbm8gIGNBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitCOC0xOS05OSAgIChoZXgpCQlOZXN5cworQjgxOTk5ICAgICAoYmFzZSAxNikJCU5lc3lzCisJCQkJRW5lcmdldGljaGVza2F5YSwgMQorCQkJCU1vc2NvdyAgMTExMTE2CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKK0I4LTIwLUU3ICAgKGhleCkJCUd1YW5nemhvdSBIb3Jpem9udGFsIEluZm9ybWF0aW9uICYgTmV0d29yayBJbnRlZ3JhdGlvbiBDby4gTHRkCitCODIwRTcgICAgIChiYXNlIDE2KQkJR3Vhbmd6aG91IEhvcml6b250YWwgSW5mb3JtYXRpb24gJiBOZXR3b3JrIEludGVncmF0aW9uIENvLiBMdGQKKwkJCQlGbG9vciAxMKOsR29sZGVuIFN0YXIgQnVpbGRpbmejrFd1c2hhbiBIYW5qaW5nIFJvYWSjrFRpYW5oZSBEaXN0cmljdKOsR3Vhbmd6aG91IENpdHkKKwkJCQlHdWFuZ3pob3UgR3Vhbmdkb25nIFByb3ZpbmNlIDUxMDYzMAorCQkJCUNISU5BCisKK0I4LTI2LUQ0ICAgKGhleCkJCUZ1cnVrYXdhIEluZHVzdHJpYWwgUy5BLiBQcm9kdXRvcyBFbOl0cmljb3MKK0I4MjZENCAgICAgKGJhc2UgMTYpCQlGdXJ1a2F3YSBJbmR1c3RyaWFsIFMuQS4gUHJvZHV0b3MgRWzpdHJpY29zCisJCQkJUnVhIEhhc2RydWJhbCBCZWxsZWdhcmQsIDgyMAorCQkJCUJhaXJybzogQ2lkYWRlIEluZHVzdHJpYWwgZGUgQ3VyaXRpYmEKKwkJCQlQYXJhbmEgODE0NjAtMTIwCisJCQkJQlJBWklMCisKK0I4LTI3LUVCICAgKGhleCkJCVJhc3BiZXJyeSBQaSBGb3VuZGF0aW9uCitCODI3RUIgICAgIChiYXNlIDE2KQkJUmFzcGJlcnJ5IFBpIEZvdW5kYXRpb24KKwkJCQlNaXRjaGVsbCBXb29kIEhvdXNlCisJCQkJQ2FsZGVjb3RlIENhbWJyaWRnZXNoaXJlIENCMjMgN05VCisJCQkJVU5JVEVEIEtJTkdET00KKworQjgtMjgtOEIgICAoaGV4KQkJUGFya2VyIEhhbm5pZmluCitCODI4OEIgICAgIChiYXNlIDE2KQkJUGFya2VyIEhhbm5pZmluCisJCQkJQ29uZGl0aW9uIE1vbml0b3JpbmcgQ2VudHJlCisJCQkJQnJ1bmVsIFdheQorCQkJCVRoZXRmb3JkIE5vcmZvbGsgSVAyNCAxSFAKKwkJCQlVTklURUQgS0lOR0RPTQorCitCOC0yQS1EQyAgIChoZXgpCQlFRlIgRXVyb3DkaXNjaGUgRnVuay1SdW5kc3RldWVydW5nIEdtYkgKK0I4MkFEQyAgICAgKGJhc2UgMTYpCQlFRlIgRXVyb3DkaXNjaGUgRnVuay1SdW5kc3RldWVydW5nIEdtYkgKKwkJCQlOeW1waGVuYnVyZ2VyIFN0ci4gMjBiCisJCQkJTXVuaWNoICA4MDMzNQorCQkJCUdFUk1BTlkKKworQjgtMkMtQTAgICAoaGV4KQkJSG9uZXl3ZWxsIEhvbU1lZAorQjgyQ0EwICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbCBIb21NZWQKKwkJCQkzNDAwIEludGVydGVjaCBEcml2ZQorCQkJCVN1aXRlIDIwMAorCQkJCUJyb29rZmllbGQgV0kgNTMwMjUKKwkJCQlVTklURUQgU1RBVEVTCisKK0I4LTNBLTdCICAgKGhleCkJCVdvcmxkcGxheSAoQ2FuYWRhKSBJbmMuCitCODNBN0IgICAgIChiYXNlIDE2KQkJV29ybGRwbGF5IChDYW5hZGEpIEluYy4KKwkJCQk4MDMtMjR0aCBBdmUgU0UsIFVuaXQgMjAwCisJCQkJQ2FsZ2FyeSBBbGJlcnRhIFQyRyAxUDUKKwkJCQlDQU5BREEKKworQjgtM0QtNEUgICAoaGV4KQkJU2hlbnpoZW4gQ3VsdHJhdmlldyBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLEx0ZCBTaGFuZ2hhaSBCcmFuY2gKK0I4M0Q0RSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBDdWx0cmF2aWV3IERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkIFNoYW5naGFpIEJyYW5jaAorCQkJCTIvRixCdWlsZGluZyM1LDE2OTBDYWlsdW4gUm9hZCxaaGFuZ2ppYW5nIEhpLXRlY2ggUGFyaywKKwkJCQlTaGFuZ2hhaSAgMjAxMjAzCisJCQkJQ0hJTkEKKworQjgtNDEtNUYgICAoaGV4KQkJQVNQIEFHCitCODQxNUYgICAgIChiYXNlIDE2KQkJQVNQIEFHCisJCQkJTWF4LSBQbGFuY2stU3RyLiAxNSBhLWMKKwkJCQlFcmtyYXRoIE5SVyA0MDY5OQorCQkJCUdFUk1BTlkKKworQjgtNTUtMTAgICAoaGV4KQkJWmlvbmNvbSBFbGVjdHJvbmljcyAoU2hlbnpoZW4pIEx0ZC4KK0I4NTUxMCAgICAgKGJhc2UgMTYpCQlaaW9uY29tIEVsZWN0cm9uaWNzIChTaGVuemhlbikgTHRkLgorCQkJCUExJkEyIEJ1aWxkaW5nLExhbnRpYW4gVGVjaG5vbG9neSBQYXJrLCBYaW55dSBSb2FkLCBYaW5ncWlhbyBIZW5nZ2FuZyBCbG9jaywgU2hhamluZyBTdHJlZXQsCisJCQkJQmFvYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworQjgtNjEtNkYgICAoaGV4KQkJQWNjdG9uIFdpcmVsZXNzIEJyb2FkYmFuZChBV0IpLCBDb3JwLgorQjg2MTZGICAgICAoYmFzZSAxNikJCUFjY3RvbiBXaXJlbGVzcyBCcm9hZGJhbmQoQVdCKSwgQ29ycC4KKwkJCQlOby4xIENyZWF0aW9uIFJkIElJSSwgU2NpZW5jZS1iYXNlZCBJbmR1c3RyaWFsIFBhcmsKKwkJCQlIc2luY2h1ICAzMDA3NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQjgtNjItMUYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQjg2MjFGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0I4LTY0LTkxICAgKGhleCkJCUNLIFRlbGVjb20gTHRkCitCODY0OTEgICAgIChiYXNlIDE2KQkJQ0sgVGVsZWNvbSBMdGQKKwkJCQlLZWppIEF2ZW51ZSxIZXl1YW4gSGktdGVjaCBEZXZlbG9wbWVudCBab25lCisJCQkJSGV5dWFuICBHdWFuZ2RvbmcgUHJvdmluY2UgNTE3MDAwCisJCQkJQ0hJTkEKKworQjgtNjUtM0IgICAoaGV4KQkJQm9seW1pbiwgSW5jLgorQjg2NTNCICAgICAoYmFzZSAxNikJCUJvbHltaW4sIEluYy4KKwkJCQkxM0YtMSwgTm8uMjAsIFRhLUxvbmcgUmQuLCAKKwkJCQlUYWljaHVuZyAgNDAzMTAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0I4LTZCLTIzICAgKGhleCkJCVRvc2hpYmEKK0I4NkIyMyAgICAgKGJhc2UgMTYpCQlUb3NoaWJhCisJCQkJMi05LFN1ZWhpcm8tQ2hvCisJCQkJT21lIFRva3lvIDE5ODg3MTAKKwkJCQlKQVBBTgorCitCOC03MC1GNCAgIChoZXgpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELiAKK0I4NzBGNCAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRELiAKKwkJCQlOTy4gMjUsIFRIRSAzUkQgU3RyZWV0IEtVTlNIQU4gRVhQT1JUIFBST0NFU1NJTkcgWk9ORSAKKwkJCQlLVU5TSEFOIFNVWkhPVSAyMTUzMDAKKwkJCQlDSElOQQorCitCOC03NC0yNCAgIChoZXgpCQlWaWVzc21hbm4gRWxla3Ryb25payBHbWJICitCODc0MjQgICAgIChiYXNlIDE2KQkJVmllc3NtYW5uIEVsZWt0cm9uaWsgR21iSAorCQkJCUJlZXR3aWVzZSAyCisJCQkJQWxsZW5kb3JmIChFZGVyKSAgMzUxMDgKKwkJCQlHRVJNQU5ZCisKK0I4LTc0LTQ3ICAgKGhleCkJCUNvbnZlcmdlbmNlIFRlY2hub2xvZ2llcworQjg3NDQ3ICAgICAoYmFzZSAxNikJCUNvbnZlcmdlbmNlIFRlY2hub2xvZ2llcworCQkJCTE2VzIxNSA4M3JkIFN0cmVldCBTdWl0ZSBECisJCQkJQnVyciBSaWRnZSBJTCA2MDUyNworCQkJCVVOSVRFRCBTVEFURVMKKworQjgtNzktN0UgICAoaGV4KQkJU2VjdXJlIE1ldGVycyAoVUspIExpbWl0ZWQKK0I4Nzk3RSAgICAgKGJhc2UgMTYpCQlTZWN1cmUgTWV0ZXJzIChVSykgTGltaXRlZAorCQkJCVNlY3VyZSBIb3VzZQorCQkJCU1vb3JzaWRlIFJvYWQKKwkJCQlXaW5jaGVzdGVyIEhhbXBzaGlyZSBTTzIzIDdSWAorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0I4LTg3LTFFICAgKGhleCkJCUdvb2QgTWluZCBJbmR1c3RyaWVzIENvLiwgTHRkLgorQjg4NzFFICAgICAoYmFzZSAxNikJCUdvb2QgTWluZCBJbmR1c3RyaWVzIENvLiwgTHRkLgorCQkJCTIyLCBUYSBZZW91IDJuZCBTdCwgCisJCQkJVGEgTGlhbyBEaXN0LiAKKwkJCQlLYW9oc2l1bmcgIDgzMQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQjgtODgtRTMgICAoaGV4KQkJQ09NUEFMIElORk9STUFUSU9OIChLVU5TSEFOKSBDTy4sIExURAorQjg4OEUzICAgICAoYmFzZSAxNikJCUNPTVBBTCBJTkZPUk1BVElPTiAoS1VOU0hBTikgQ08uLCBMVEQKKwkJCQlOby4yNSwgVGhpcmQgQXZlbnVlLCBBIFpvbmUsIEt1bnNoYW4gQ29tcHJlaGVuc2l2ZSBGcmVlIFRyYWRlIFpvbmUsIEppYW5nc3UsIAorCQkJCUtVTlNIQU4gIFNVWkhPVSAyMTUzMDAKKwkJCQlDSElOQQorCitCOC04RC0xMiAgIChoZXgpCQlBcHBsZSwgSW5jLgorQjg4RDEyICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBjQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworQjgtOEUtM0EgICAoaGV4KQkJSW5maW5pdGUgVGVjaG5vbG9naWVzIEpMVAorQjg4RTNBICAgICAoYmFzZSAxNikJCUluZmluaXRlIFRlY2hub2xvZ2llcyBKTFQKKwkJCQlPZmZpY2UgMzIwMywgTGV2ZWwgMzIKKwkJCQlMaXdhIEhlaWdodHMgVG93ZXIKKwkJCQlKdW1laXJhaCBMYWtlIFRvd2VycyBEdWJhaSAKKwkJCQlVTklURUQgQVJBQiBFTUlSQVRFUworCitCOC04Ri0xNCAgIChoZXgpCQlBbmFseXRpY2EgR21iSAorQjg4RjE0ICAgICAoYmFzZSAxNikJCUFuYWx5dGljYSBHbWJICisJCQkJVm9yaG9senN0ci4gMzYKKwkJCQlLYXJsc3J1aGUgQmFkZW4tV3VlcnR0ZW1iZXJnIDc2MTM3CisJCQkJR0VSTUFOWQorCitCOC05Mi0xRCAgIChoZXgpCQlCRyBUJmFtcDtBCitCODkyMUQgICAgIChiYXNlIDE2KQkJQkcgVCZhbXA7QQorCQkJCTRGLCBMJmFtcDtDIFRvd2VyCisJCQkJMTAyNi01MiBTYW5ib24tZG9uZworCQkJCUd1bnBvLXNpIEd5ZW9uZ2dpLWRvIDQzNS04NDUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQjgtOTQtRDIgICAoaGV4KQkJUmV0YWlsIElubm92YXRpb24gSFRUIEFCCitCODk0RDIgICAgIChiYXNlIDE2KQkJUmV0YWlsIElubm92YXRpb24gSFRUIEFCCisJCQkJU2rDtsOkbmdzdsOkZ2VuIDIKKwkJCQlTb2xsZW50dW5hICBTLTE5MiA3MgorCQkJCVNXRURFTgorCitCOC05Ni03NCAgIChoZXgpCQlBbGxEU1AgR21iSCAmYW1wOyBDby4gS0cKK0I4OTY3NCAgICAgKGJhc2UgMTYpCQlBbGxEU1AgR21iSCAmYW1wOyBDby4gS0cKKwkJCQlTcGVuZ2xlcnN0cmFzc2UgNgorCQkJCUhhbW0gTlJXIDU5MDY3CisJCQkJR0VSTUFOWQorCitCOC05Ny01QSAgIChoZXgpCQlCSU9TVEFSIE1pY3JvdGVjaCBJbnQnbCBDb3JwLgorQjg5NzVBICAgICAoYmFzZSAxNikJCUJJT1NUQVIgTWljcm90ZWNoIEludCdsIENvcnAuCisJCQkJMkZsLiAgTm8uIDEwOC0yLCBNaW4gQ2h1YW4gUm9hZCwgSHNpbiBUaWVuIERpc3QuLAorCQkJCSBOZXcgVGFpcGVpICAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0I4LTlBLUVEICAgKGhleCkJCU9jZWFuU2VydmVyIFRlY2hub2xvZ3ksIEluYworQjg5QUVEICAgICAoYmFzZSAxNikJCU9jZWFuU2VydmVyIFRlY2hub2xvZ3ksIEluYworCQkJCTE1MSBNYXJ0aW5lIFN0CisJCQkJRmFsbCBSaXZlciBNQSAwMjcyMworCQkJCVVOSVRFRCBTVEFURVMKKworQjgtOUItQzkgICAoaGV4KQkJU01DIE5ldHdvcmtzIEluYworQjg5QkM5ICAgICAoYmFzZSAxNikJCVNNQyBOZXR3b3JrcyBJbmMKKwkJCQkyMCBNYXNvbiAKKwkJCQlJcnZpbmUgQ0EgOTI2MTgKKwkJCQlVTklURUQgU1RBVEVTCisKK0I4LUEzLTg2ICAgKGhleCkJCUQtTGluayBJbnRlcm5hdGlvbmFsCitCOEEzODYgICAgIChiYXNlIDE2KQkJRC1MaW5rIEludGVybmF0aW9uYWwKKwkJCQkxIEludGVybmF0aW9uYWwgQnVzaW5lc3MgUGFyaywgIzAzLTEyLCBUaGUgU3luZXJneSBTaW5nYXBvcmUgNjA5OTE3CisJCQkJNjA5OTE3CisJCQkJU0lOR0FQT1JFCisKK0I4LUEzLUUwICAgKGhleCkJCUJlblJ1aSBUZWNobm9sb2d5IENvLixMdGQKK0I4QTNFMCAgICAgKGJhc2UgMTYpCQlCZW5SdWkgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJTm8uMzAycm9vbSBCdWlsZGluZzUwMyBUYWlSYW4gVGVjaG5vUGFyay5GdVRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworQjgtQTgtQUYgICAoaGV4KQkJTG9naWMgUy5wLkEuCitCOEE4QUYgICAgIChiYXNlIDE2KQkJTG9naWMgUy5wLkEuCisJCQkJVmlhIEdhbGlsZWkgNQorCQkJCUNhc3NpbmEgZGUnIFBlY2NoaSBNSSAyMDA2MAorCQkJCUlUQUxZCisKK0I4LUFDLTZGICAgKGhleCkJCURlbGwgSW5jCitCOEFDNkYgICAgIChiYXNlIDE2KQkJRGVsbCBJbmMKKwkJCQlPbmUgRGVsbCBXYXksIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgVFggNzg3NDgKKwkJCQlVTklURUQgU1RBVEVTCisKK0I4LUFGLTY3ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CitCOEFGNjcgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworQjgtQjEtQzcgICAoaGV4KQkJQlQmQ09NIENPLixMVEQKK0I4QjFDNyAgICAgKGJhc2UgMTYpCQlCVCZDT00gQ08uLExURAorCQkJCSMxMTAzLCBFJkMgVmVudHVyZSBEcmVhbSBUb3dlciBJSQorCQkJCTE5Ny0xMCwgR3Vyby0zZG9uZywgR3Vyby1HdSwKKwkJCQlTZW91bCAgMTUyLTcxOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCOC1CNC0yRSAgIChoZXgpCQlHaW9uZWUgQ29tbXVuaWNhdGlvbiBFcXVpcG1lbnQgQ28sTHRkLlNoZW5aaGVuCitCOEI0MkUgICAgIChiYXNlIDE2KQkJR2lvbmVlIENvbW11bmljYXRpb24gRXF1aXBtZW50IENvLEx0ZC5TaGVuWmhlbgorCQkJCTIxL0YgVGltZXMgVGVjaG5vbG9neSBCdWlsZGluZywgNzAyOCBTaGVubmFuIFJvYWQsIEZ1dGlhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworQjgtQkEtNjggICAoaGV4KQkJWGknYW4gSml6aG9uZyBEaWdpdGFsIENvbW11bmljYXRpb24gQ28uLEx0ZAorQjhCQTY4ICAgICAoYmFzZSAxNikJCVhpJ2FuIEppemhvbmcgRGlnaXRhbCBDb21tdW5pY2F0aW9uIENvLixMdGQKKwkJCQkxMCBCbG9jayBOTy4xIEVudGVycHJpc2UgTmV3bHktdHlwZWQgSW5kdXN0cmlhbCBab25lIEhpZ2gtVGVjaCBab25lIFhpoa9hbixDaGluYQorCQkJCVhpJ2FuIFNoYWFuWGkgNzEwMTE5CisJCQkJQ0hJTkEKKworQjgtQkEtNzIgICAoaGV4KQkJQ3lub3ZlCitCOEJBNzIgICAgIChiYXNlIDE2KQkJQ3lub3ZlCisJCQkJMTAgY2l0ZSByb3VnZW1vbnQKKwkJCQlQYXJpcyAgNzUwMDkKKwkJCQlGUkFOQ0UKKworQjgtQkItNkQgICAoaGV4KQkJRU5FUkVTIENvLixMdGQuCitCOEJCNkQgICAgIChiYXNlIDE2KQkJRU5FUkVTIENvLixMdGQuCisJCQkJMTkwNyBUb2t5byBBcnQgQ2VudGVyCisJCQkJMS00LTEgU2Vuanl1CisJCQkJQWRhaGNpLWt1IFRva3lvIDEyMC0wMDM0CisJCQkJSkFQQU4KKworQjgtQkUtQkYgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQjhCRUJGICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQjgtQzctMTYgICAoaGV4KQkJRmliZXJob21lIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDby4sTFRECitCOEM3MTYgICAgIChiYXNlIDE2KQkJRmliZXJob21lIFRlbGVjb21tdW5pY2F0aW9uIFRlY2hub2xvZ2llcyBDby4sTFRECisJCQkJTm8uNSBEb25neGluIFJvYWQKKwkJCQlIb25nc2hhbiBEaXN0cmljdAorCQkJCVd1aGFuIEh1YmVpIDQzMDA3NAorCQkJCUNISU5BCisKK0I4LUM3LTVEICAgKGhleCkJCUFwcGxlLCBJbmMuCitCOEM3NUQgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0I4LUNELUE3ICAgKGhleCkJCU1heGVsZXIgVGVjaG5vbG9naWVzIEx0ZC4KK0I4Q0RBNyAgICAgKGJhc2UgMTYpCQlNYXhlbGVyIFRlY2hub2xvZ2llcyBMdGQuCisJCQkJMSBEb3duIFBsYWNlCisJCQkJTG9uZG9uIFVLIFc2IDlKSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0I4LUQwLTZGICAgKGhleCkJCUdVQU5HWkhPVSBIS1VTVCBGT0sgWUlORyBUVU5HIFJFU0VBUkNIIElOU1RJVFVURQorQjhEMDZGICAgICAoYmFzZSAxNikJCUdVQU5HWkhPVSBIS1VTVCBGT0sgWUlORyBUVU5HIFJFU0VBUkNIIElOU1RJVFVURQorCQkJCVJtIDQwMywgTm9ydGggb2YgU29mdHdhcmUgQnVpbGRpbmcsTmFuc2hhIElUIFBhcmssCisJCQkJTmFuc2hhIERpc3RyaWN0CisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyBQcml2aW5jZSA1MTE0NTgKKwkJCQlDSElOQQorCitCOC1ENC05RCAgIChoZXgpCQlNIFNldmVuIFN5c3RlbSBMdGQuCitCOEQ0OUQgICAgIChiYXNlIDE2KQkJTSBTZXZlbiBTeXN0ZW0gTHRkLgorCQkJCTI0RiwgVHJ1c3QgVG93ZXIgQmxkZywgMjc1LTcsIFlhbmdqYWUyLURvbmcsIFNlb2Noby1HdQorCQkJCVNlb3VsICAxMzctNzM5CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0I4LUQ5LUNFICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKK0I4RDlDRSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0I4LURBLUY3ICAgKGhleCkJCUFkdmFuY2VkIFBob3RvbmljcywgSW5jLgorQjhEQUY3ICAgICAoYmFzZSAxNikJCUFkdmFuY2VkIFBob3RvbmljcywgSW5jLgorCQkJCXRoZSBVbml2ZXJzaXR5IG9mIFRva3lvLCBDQ1I1MDcKKwkJCQlLb21hYmEgNC02LTEKKwkJCQlNZWd1cm8ta3UgVG9reW8gMTUzLTg5MDQKKwkJCQlKQVBBTgorCitCOC1FNS04OSAgIChoZXgpCQlQYXl0ZXIgQlYKK0I4RTU4OSAgICAgKGJhc2UgMTYpCQlQYXl0ZXIgQlYKKwkJCQlCZXVrZWxzZGlqayAxMDcKKwkJCQlSb3R0ZXJkYW0gWnVpZC1Ib2xsYW5kIDMwMjEgQUUKKwkJCQlORVRIRVJMQU5EUworCitCOC1FNi0yNSAgIChoZXgpCQkyV2lyZQorQjhFNjI1ICAgICAoYmFzZSAxNikJCTJXaXJlCisJCQkJMTc2NCBBdXRvbWF0aW9uIFBhcmt3YXkKKwkJCQlTYW4gSm9zZSBDQSA5NTEzMQorCQkJCVVOSVRFRCBTVEFURVMKKworQjgtRTctNzkgICAoaGV4KQkJOVNvbHV0aW9ucyBPeQorQjhFNzc5ICAgICAoYmFzZSAxNikJCTlTb2x1dGlvbnMgT3kKKwkJCQlUZWtub2xvZ2lhbnRpZSAyCisJCQkJOTA1OTAKKwkJCQlPdWx1ICAKKwkJCQlGSU5MQU5ECisKK0I4LUU5LTM3ICAgKGhleCkJCVNvbm9zLCBJbmMuCitCOEU5MzcgICAgIChiYXNlIDE2KQkJU29ub3MsIEluYy4KKwkJCQkyMjMgRWFzdCBEZSBMYSBHdWVycmEgU3RyZWV0CisJCQkJU2FudGEgQmFyYmFyYSBDQSA5MzEwMQorCQkJCVVOSVRFRCBTVEFURVMKKworQjgtRUUtNzkgICAoaGV4KQkJWVdpcmUgVGVjaG5vbG9naWVzLCBJbmMuCitCOEVFNzkgICAgIChiYXNlIDE2KQkJWVdpcmUgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMTM3MiBPdmVyZGFsZQorCQkJCU1vbnRyZWFsIFFDIEgzRyAxVjMKKwkJCQlDQU5BREEKKworQjgtRjQtRDAgICAoaGV4KQkJSGVycm1hbm4gVWx0cmFzY2hhbGx0ZWNobmlrIEdtYkggJiBDby4gS2cKK0I4RjREMCAgICAgKGJhc2UgMTYpCQlIZXJybWFubiBVbHRyYXNjaGFsbHRlY2huaWsgR21iSCAmIENvLiBLZworCQkJCURlc2Nvc3RyLiAzLTkKKwkJCQlLYXJsc2JhZCBCYWRlbi1XdWVydHRlbWJlcmcgNzYzMDcKKwkJCQlHRVJNQU5ZCisKK0I4LUY1LUU3ICAgKGhleCkJCVdheVRvb2xzLCBMTEMKK0I4RjVFNyAgICAgKGJhc2UgMTYpCQlXYXlUb29scywgTExDCisJCQkJNDAxIFdpbHNoaXJlIEJsdmQuCisJCQkJTmludGggRmxvb3IKKwkJCQlTYW50YSBNb25pY2EgQ0EgOTA0MDEKKwkJCQlVTklURUQgU1RBVEVTCisKK0I4LUY2LUIxICAgKGhleCkJCUFwcGxlLCBJbmMuCitCOEY2QjEgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIGluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitCOC1GNy0zMiAgIChoZXgpCQlBcnlha2EgTmV0d29ya3MgSW5jCitCOEY3MzIgICAgIChiYXNlIDE2KQkJQXJ5YWthIE5ldHdvcmtzIEluYworCQkJCTY5MSBTLiBNaWxwaXRhcyBCbHZkLiwgCisJCQkJU3VpdGUgMjA2CisJCQkJTWlscGl0YXMgIENBIDk1MDM1CisJCQkJVU5JVEVEIFNUQVRFUworCitCOC1GOS0zNCAgIChoZXgpCQlTb255IEVyaWNzc29uIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBBQgorQjhGOTM0ICAgICAoYmFzZSAxNikJCVNvbnkgRXJpY3Nzb24gTW9iaWxlIENvbW11bmljYXRpb25zIEFCCisJCQkJTnlhIFZhdHRlbnRvcm5ldAorCQkJCUx1bmQgU0UgMjIxIDg4CisJCQkJU1dFREVOCisKK0I4LUZELTMyICAgKGhleCkJCVpoZWppYW5nIFJPSUNYIE1pY3JvZWxlY3Ryb25pY3MKK0I4RkQzMiAgICAgKGJhc2UgMTYpCQlaaGVqaWFuZyBST0lDWCBNaWNyb2VsZWN0cm9uaWNzCisJCQkJMjIgRmxvb3IsIDE4ODggSmlhbmdodWkgUm9hZCwgQmluamlhbmcgRGlzdHJpY3QKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwNTEKKwkJCQlDSElOQQorCitCOC1GRi02MSAgIChoZXgpCQlBcHBsZSwgSW5jLgorQjhGRjYxICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitCOC1GRi02RiAgIChoZXgpCQlTaGFuZ2hhaSBUeXByb3RlY2ggVGVjaG5vbG9neSBDby5MdGQKK0I4RkY2RiAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBUeXByb3RlY2ggVGVjaG5vbG9neSBDby5MdGQKKwkJCQlEZXNpZ24gQnVpbGRpbmcgOTAzLCBOTy42MywgCisJCQkJQ2hpRmVuZyBSb2FkLFlhbmdQdSBEaXN0cmljdCwKKwkJCQlTaGFuZ2hhaSAgMjAwMDkyCisJCQkJQ0hJTkEKKworQjgtRkYtRkUgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKK0I4RkZGRSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCU1TIDg3MjMKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0JDLTAyLTAwICAgKGhleCkJCVN0ZXdhcnQgQXVkaW8KK0JDMDIwMCAgICAgKGJhc2UgMTYpCQlTdGV3YXJ0IEF1ZGlvCisJCQkJMTAwIFdlc3QgRWwgQ2FtaW5vIFJlYWwKKwkJCQlTdWl0ZSA3MgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDEKKwkJCQlVTklURUQgU1RBVEVTCisKK0JDLTA1LTQzICAgKGhleCkJCUFWTSBHbWJICitCQzA1NDMgICAgIChiYXNlIDE2KQkJQVZNIEdtYkgKKwkJCQlBbHQtTW9hYml0IDk1CisJCQkJQmVybGluICAxMDU1OQorCQkJCUdFUk1BTlkKKworQkMtMEQtQTUgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKK0JDMERBNSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworQkMtMEYtMkIgICAoaGV4KQkJRk9SVFVORSBURUNIR1JPVVAgQ08uLExURAorQkMwRjJCICAgICAoYmFzZSAxNikJCUZPUlRVTkUgVEVDSEdST1VQIENPLixMVEQKKwkJCQk3LThGLE5vLjExOTggTm9ydGggUWluemhvdSBSb2FkLAorCQkJCVNoYW5naGFpICAyMDAyMzMKKwkJCQlDSElOQQorCitCQy0xMi01RSAgIChoZXgpCQlCZWlqaW5nICBXaXNWaWRlbyAgSU5DLgorQkMxMjVFICAgICAoYmFzZSAxNikJCUJlaWppbmcgIFdpc1ZpZGVvICBJTkMuCisJCQkJUk0gM0EwOCBUZWNobm9sb2d5JkZvcnR1bmUgQ2VudGVyIEEgYmxvY2sgTm8uOCBYdWUgUWluZyBSb2FkLEhhaWRpYW4gRGlzdHJpY3QgLCAKKwkJCQlCZWlqaW5nIDEwMDE5MgorCQkJCUNISU5BCisKK0JDLTE0LTAxICAgKGhleCkJCUhpdHJvbiBUZWNobm9sb2dpZXMuIEluYworQkMxNDAxICAgICAoYmFzZSAxNikJCUhpdHJvbiBUZWNobm9sb2dpZXMuIEluYworCQkJCU5vLiAxLTgsIExpc2luZyAxc3QgUmQuIEhzaW5jaHUgU2NpZW5jZSBQYXJrLCBIc2luY2h1LCAzMDAKKwkJCQlIc2luLWNodSAgMzAwCisJCQkJVEFJV0FOLCBQUk9WSU5DRSBPRiBDSElOQQorCitCQy0xNS1BNiAgIChoZXgpCQlUYWl3YW4gSmFudGVrIEVsZWN0cm9uaWNzLEx0ZC4KK0JDMTVBNiAgICAgKGJhc2UgMTYpCQlUYWl3YW4gSmFudGVrIEVsZWN0cm9uaWNzLEx0ZC4KKwkJCQk2Ri0xLE5vLjEgV3UtQ2h1YW4gMVN0LiBSZCxXdS1LdSBJbmR1c3RyaWFsIFBhcmssCisJCQkJU2luY2h3YW5nIENpdHkgVGFpcGVpIEhzaWVuIDI0ODkyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCQy0yMC1CQSAgIChoZXgpCQlJbnNwdXIgKFNoYW5kb25nKSBFbGVjdHJvbmljIEluZm9ybWF0aW9uIENvLiwgTHRkCitCQzIwQkEgICAgIChiYXNlIDE2KQkJSW5zcHVyIChTaGFuZG9uZykgRWxlY3Ryb25pYyBJbmZvcm1hdGlvbiBDby4sIEx0ZAorCQkJCU5vLjEwMzYgU2h1bnlhIFJkLgorCQkJCUppbmFuIFNoYW5kb25nIDI1MDEwMQorCQkJCUNISU5BCisKK0JDLTI4LTQ2ICAgKGhleCkJCU5leHRCSVQgQ29tcHV0aW5nIFB2dC4gTHRkLgorQkMyODQ2ICAgICAoYmFzZSAxNikJCU5leHRCSVQgQ29tcHV0aW5nIFB2dC4gTHRkLgorCQkJCTMwLzIsIDJuZCBGbG9vciwgUi5LLiBQbGF6YSwKKwkJCQlDTUggUm9hZCwgSW5kaXJhbmFnYXIKKwkJCQlCYW5nYWxvcmUgS2FybmF0YWthIDU2MDAzOAorCQkJCUlORElBCisKK0JDLTI4LUQ2ICAgKGhleCkJCVJvd2xleSBBc3NvY2lhdGVzIExpbWl0ZWQKK0JDMjhENiAgICAgKGJhc2UgMTYpCQlSb3dsZXkgQXNzb2NpYXRlcyBMaW1pdGVkCisJCQkJU3VpdGUgNEIvNEMgRHJha2UgSG91c2UKKwkJCQlEcmFrZSBMYW5lCisJCQkJRHVyc2xleSBHbG91Y2VzdGVyc2hpcmUgR0wxMSA0SEgKKwkJCQlVTklURUQgS0lOR0RPTQorCitCQy0yQy01NSAgIChoZXgpCQlCZWFyIEZsYWcgRGVzaWduLCBJbmMuCitCQzJDNTUgICAgIChiYXNlIDE2KQkJQmVhciBGbGFnIERlc2lnbiwgSW5jLgorCQkJCTEgVGhheWVyIFJvYWQKKwkJCQlTYW50YSBDcnV6IENBIDk1MDYwCisJCQkJVU5JVEVEIFNUQVRFUworCitCQy0zMC01QiAgIChoZXgpCQlEZWxsIEluYy4KK0JDMzA1QiAgICAgKGJhc2UgMTYpCQlEZWxsIEluYy4KKwkJCQlPbmUgRGVsbCBXYXksIE1TIFJSNS00NQorCQkJCVJvdW5kIFJvY2sgVGV4YXMgNzg2ODIKKwkJCQlVTklURUQgU1RBVEVTCisKK0JDLTM1LUU1ICAgKGhleCkJCUh5ZHJvIFN5c3RlbXMgQ29tcGFueQorQkMzNUU1ICAgICAoYmFzZSAxNikJCUh5ZHJvIFN5c3RlbXMgQ29tcGFueQorCQkJCTM3OTggUm91bmQgQm90dG9tIFJvYWQKKwkJCQlDaW5jaW5uYXRpIE9oaW8gNDUyNDQKKwkJCQlVTklURUQgU1RBVEVTCisKK0JDLTM4LUQyICAgKGhleCkJCVBhbmRhY2hpcCBMaW1pdGVkCitCQzM4RDIgICAgIChiYXNlIDE2KQkJUGFuZGFjaGlwIExpbWl0ZWQKKwkJCQlVbml0IDIxMCwgMi9GIChMYWtlc2lkZSAxKSwgQnVpbGRpbmcgMTUsIE5vLiA4IFNjaWVuY2UgUGFyayBXZXN0IEF2ZW51ZQorCQkJCUhvbmcgS29uZyBTY2llbmNlIFBhcmsgUGhhc2UgSUksIAorCQkJCVNoYXRpbiwgTi5ULiAgCisJCQkJSE9ORyBLT05HCisKK0JDLTNFLTEzICAgKGhleCkJCUFjY29yZGFuY2UgU3lzdGVtcyBJbmMuCitCQzNFMTMgICAgIChiYXNlIDE2KQkJQWNjb3JkYW5jZSBTeXN0ZW1zIEluYy4KKwkJCQkyRiwgTm8uIDMxLCBTZWMuIDYsIEhzaW4gWWkgUm9hZAorCQkJCVRhaXBlaSAgMTEwODUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0JDLTQzLTc3ICAgKGhleCkJCUhhbmcgWmhvdSBIdWl0ZSBUZWNobm9sb2d5IENvLixsdGQuCitCQzQzNzcgICAgIChiYXNlIDE2KQkJSGFuZyBaaG91IEh1aXRlIFRlY2hub2xvZ3kgQ28uLGx0ZC4KKwkJCQlSbTEzMzgsQmxvY2sgQaOsRnVMaSBUZWNobm9sb2d5IEJ1aWxkaW5nICxOby4zMjgsV2VuRXIgUmQKKwkJCQlIYW5nIFpob3UgWmhlIEppYW5nIDMxMDAxMgorCQkJCUNISU5BCisKK0JDLTQ3LTYwICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorQkM0NzYwICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCQy00Qi03OSAgIChoZXgpCQlTZW5zaW5nVGVrCitCQzRCNzkgICAgIChiYXNlIDE2KQkJU2Vuc2luZ1RlaworCQkJCTJGLCBOby42LTIsRHVzaW5nIFJkLixIc2luY2h1IFNjaWVuY2UgUGFyaywgCisJCQkJSHNpbmNodSAgMzAwNzgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0JDLTRFLTNDICAgKGhleCkJCUNPUkUgU1RBRkYgQ08uLCBMVEQuCitCQzRFM0MgICAgIChiYXNlIDE2KQkJQ09SRSBTVEFGRiBDTy4sIExURC4KKwkJCQlTaGluLW9zYWthIE9yaWVudGFsIEJsZGcuIDE0RiwgNy0xLTI2IE5pc2hpbmFrYWppbWEKKwkJCQlZb2RvZ2F3YS1rdSBPc2FrYSA1MzItMDAxMQorCQkJCUpBUEFOCisKK0JDLTVGLUY0ICAgKGhleCkJCUFTUm9jayBJbmNvcnBvcmF0aW9uCitCQzVGRjQgICAgIChiYXNlIDE2KQkJQVNSb2NrIEluY29ycG9yYXRpb24KKwkJCQkyRi4sTm8uMzcsIFNlYy4yLCBKaG9uZ3lhbmcgUy5SZC4sIEJlaXRvdSBEaXN0cmljLCAKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQkMtNjctODQgICAoaGV4KQkJRW52aXJvbmljcyBPeQorQkM2Nzg0ICAgICAoYmFzZSAxNikJCUVudmlyb25pY3MgT3kKKwkJCQlHcmFhbmludGllIDUKKwkJCQlNaWtrZWxpICA1MDE5MAorCQkJCUZJTkxBTkQKKworQkMtNkEtMTYgICAoaGV4KQkJdGR2aW5lCitCQzZBMTYgICAgIChiYXNlIDE2KQkJdGR2aW5lCisJCQkJMzAxIE1haXNvbiBNYXJ1IEJ1aWxkaW5nIAorCQkJCTg2LTkgTm9uaGVvbi1kb25nIEdhbmduYW0tZ3UKKwkJCQlTZW91bCAgMTM1LTAxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCQy02RS03NiAgIChoZXgpCQlHcmVlbiBFbmVyZ3kgT3B0aW9ucyBMdGQKK0JDNkU3NiAgICAgKGJhc2UgMTYpCQlHcmVlbiBFbmVyZ3kgT3B0aW9ucyBMdGQKKwkJCQkzIFN0LiBNYXJ5JiMzOTtzIENvdXJ0LCBNYWluIFN0cmVldAorCQkJCUhhcmR3aWNrCisJCQkJQ2FtYnJpZGdlIENhbWJyaWRnZXNoaXJlIENCMjMgN1FTCisJCQkJVU5JVEVEIEtJTkdET00KKworQkMtNzEtQzEgICAoaGV4KQkJWFRyaWxsaW9uLCBJbmMuCitCQzcxQzEgICAgIChiYXNlIDE2KQkJWFRyaWxsaW9uLCBJbmMuCisJCQkJMS0xMi0zLTRGIAorCQkJCUthbmRhIFN1ZGEtY2hvCisJCQkJQ2hpeW9kYS1rdSBUb2t5byAxMDEtMDA0MQorCQkJCUpBUEFOCisKK0JDLTc2LTRFICAgKGhleCkJCVJhY2tzcGFjZSBVUywgSW5jLgorQkM3NjRFICAgICAoYmFzZSAxNikJCVJhY2tzcGFjZSBVUywgSW5jLgorCQkJCTUwMDAgV2FsemVtIFJkLgorCQkJCVNhbiBBbnRvbmlvIFRYIDc4MjE4CisJCQkJVU5JVEVEIFNUQVRFUworCitCQy03Ni03MCAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCitCQzc2NzAgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxMDEwOAorCQkJCUNISU5BCisKK0JDLTc3LTM3ICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorQkM3NzM3ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworQkMtNzctOUYgICAoaGV4KQkJU0JNIENvLiwgTHRkLgorQkM3NzlGICAgICAoYmFzZSAxNikJCVNCTSBDby4sIEx0ZC4KKwkJCQlIeXVud29vIEJsZGcgMjA2LCBBbnlhbmc3LURvbmcKKwkJCQlNYW5hbi1HdQorCQkJCUFueWFuZyBHeWVvbmdnaS1EbyA0MzAtODE3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0JDLTdELUQxICAgKGhleCkJCVJhZGlvIERhdGEgQ29tbXMKK0JDN0REMSAgICAgKGJhc2UgMTYpCQlSYWRpbyBEYXRhIENvbW1zCisJCQkJNS8yMC0zMCBTdHViYnMgU3RyZWV0CisJCQkJU2lsdmVyd2F0ZXIgIE5ldyBTb3V0aCBXYWxlcyAoTlNXKSAyMTI4CisJCQkJQVVTVFJBTElBCisKK0JDLTgxLTFGICAgKGhleCkJCUluZ2F0ZSBTeXN0ZW1zCitCQzgxMUYgICAgIChiYXNlIDE2KQkJSW5nYXRlIFN5c3RlbXMKKwkJCQlSaXNzbmVsZWRlbiA0NQorCQkJCVN1bmRieWJlcmcgIDE3NDQ0CisJCQkJU1dFREVOCisKK0JDLTgxLTk5ICAgKGhleCkJCUJBU0lDIENvLixMdGQuCitCQzgxOTkgICAgIChiYXNlIDE2KQkJQkFTSUMgQ28uLEx0ZC4KKwkJCQlLZWllZnUtQnVpbGRpbmcgOUYKKwkJCQk0LTEzLTggU2hpYmEKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA4LTAwMTQKKwkJCQlKQVBBTgorCitCQy04My1BNyAgIChoZXgpCQlTSEVOWkhFTiBDSFVBTkdXRUktUkdCIEVMRUNUUk9OSUNTIENPLixMVAorQkM4M0E3ICAgICAoYmFzZSAxNikJCVNIRU5aSEVOIENIVUFOR1dFSS1SR0IgRUxFQ1RST05JQ1MgQ08uLExUCisJCQkJVW5pdCBBIDEzLTE2L0YsU2t5d29ydGggQmxkZy4sIEdhb3hpbiBBdmUuMS5TLixOYW5zaGFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3VhbmdEb25nICA1MTgwNTcKKwkJCQlDSElOQQorCitCQy04NS0xRiAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCitCQzg1MUYgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitCQy04Qi01NSAgIChoZXgpCQlOUFAgRUxJS1MgQW1lcmljYSBJbmMuIERCQSBUJk0gQXRsYW50aWMKK0JDOEI1NSAgICAgKGJhc2UgMTYpCQlOUFAgRUxJS1MgQW1lcmljYSBJbmMuIERCQSBUJk0gQXRsYW50aWMKKwkJCQkxNzUgU1cgN3RoIFN0IFN1aXRlIDE4MTIKKwkJCQlNaWFtaSBGTCAzMzEzMAorCQkJCVVOSVRFRCBTVEFURVMKKworQkMtOTktQkMgICAoaGV4KQkJRm9uU2VlIFRlY2hub2xvZ3kgSW5jLgorQkM5OUJDICAgICAoYmFzZSAxNikJCUZvblNlZSBUZWNobm9sb2d5IEluYy4KKwkJCQkxNEYtMiwgTm8uMzIsIEdhb3RpZSAybmQgUmQuLAorCQkJCVpodWJlaSBDaXR5IEhzaW5jaHUgQ291bnR5IDMwMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQkMtOUQtQTUgICAoaGV4KQkJREFTQ09NIEV1cm9wZSBHbWJICitCQzlEQTUgICAgIChiYXNlIDE2KQkJREFTQ09NIEV1cm9wZSBHbWJICisJCQkJSGV1d2VnIDMKKwkJCQlVbG0gQmFkZW4tV3VlcnR0ZW1iZXJnIDg5MDc5CisJCQkJR0VSTUFOWQorCitCQy1BNC1FMSAgIChoZXgpCQlOYWJ0bworQkNBNEUxICAgICAoYmFzZSAxNikJCU5hYnRvCisJCQkJQWFib2dhZGUgMTUKKwkJCQlBYXJodXMgSnV0bGFuZCA4MjAwCisJCQkJREVOTUFSSworCitCQy1BOS1ENiAgIChoZXgpCQlDeWJlci1SYWluLCBJbmMuCitCQ0E5RDYgICAgIChiYXNlIDE2KQkJQ3liZXItUmFpbiwgSW5jLgorCQkJCTUyNzIgRXZhbndvb2QgQXZlbnVlCisJCQkJT2FrIFBhcmsgQ2FsaWZvcm5pYSA5MTM3Ny00ODA5CisJCQkJVU5JVEVEIFNUQVRFUworCitCQy1BRS1DNSAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KK0JDQUVDNSAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91LAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitCQy1CMS04MSAgIChoZXgpCQlTSEFSUCBDT1JQT1JBVElPTgorQkNCMTgxICAgICAoYmFzZSAxNikJCVNIQVJQIENPUlBPUkFUSU9OCisJCQkJMjItMjIsTmFnYWlrZS1jaG8sCisJCQkJQWJlbm8tS1UsCisJCQkJT3Nha2EsICA1NDUtODUyMgorCQkJCUpBUEFOCisKK0JDLUIxLUYzICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKK0JDQjFGMyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0JDLUI4LTUyICAgKGhleCkJCUN5YmVyYSwgSW5jLgorQkNCODUyICAgICAoYmFzZSAxNikJCUN5YmVyYSwgSW5jLgorCQkJCTkwMDkgQ2Fyb3RoZXJzIFBhcmt3YXkKKwkJCQlTdWl0ZSBDLTUKKwkJCQlGcmFua2xpbiBUTiAzNzA2NworCQkJCVVOSVRFRCBTVEFURVMKKworQkMtQkItQzkgICAoaGV4KQkJS2VsbGVuZG9uayBFbGVrdHJvbmlrIEdtYkgKK0JDQkJDOSAgICAgKGJhc2UgMTYpCQlLZWxsZW5kb25rIEVsZWt0cm9uaWsgR21iSAorCQkJCVZvbi1IdWVuZWZlbGQtU3RyYXNzZSAzCisJCQkJQ29sb2duZSBOUlcgNTA4MjkKKwkJCQlHRVJNQU5ZCisKK0JDLUMxLTY4ICAgKGhleCkJCURJbkJveCBTdmVyaWdlIEFCCitCQ0MxNjggICAgIChiYXNlIDE2KQkJREluQm94IFN2ZXJpZ2UgQUIKKwkJCQlTdXJicnVubnNnYXRhbiAxNAorCQkJCVN0b2NraG9sbSAgMTE0MjcKKwkJCQlTV0VERU4KKworQkMtQzItM0EgICAoaGV4KQkJVGhvbXNvbiBWaWRlbyBOZXR3b3JrcworQkNDMjNBICAgICAoYmFzZSAxNikJCVRob21zb24gVmlkZW8gTmV0d29ya3MKKwkJCQk2LCBydWUgZHUgQ2xvcyBDb3VydGVsCisJCQkJQ2Vzc29uIFNldmlnbmUgIDM1NTEwCisJCQkJRlJBTkNFCisKK0JDLUM2LTFBICAgKGhleCkJCVNQRUNUUkEgRU1CRURERUQgU1lTVEVNUworQkNDNjFBICAgICAoYmFzZSAxNikJCVNQRUNUUkEgRU1CRURERUQgU1lTVEVNUworCQkJCUtoYXNyYSBOby4gMjQsIFZpbGxhZ2UgR2h1bW1hbiwxc3QgRmxvb3IsIENoYXdsYSBNYW5zaW9uLAorCQkJCUIvaC4gU2FudCBWaWhhciwgVW5jaGEgUGFyd2Fub28sU2VjdG9yLTEKKwkJCQlQQVJXQU5PTyBISU1BQ0hBTCBQUkFERVNIIDE3MzIyMAorCQkJCUlORElBCisKK0JDLUM4LTEwICAgKGhleCkJCUNpc2NvIFNQVlRHCitCQ0M4MTAgICAgIChiYXNlIDE2KQkJQ2lzY28gU1BWVEcKKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworQkMtQ0QtNDUgICAoaGV4KQkJVk9JU01BUlQKK0JDQ0Q0NSAgICAgKGJhc2UgMTYpCQlWT0lTTUFSVAorCQkJCVZJQSBCRU5JR05PIENSRVNQSSAxMgorCQkJCU1JTEFOTyAgMjAxNTkKKwkJCQlJVEFMWQorCitCQy1ENS1CNiAgIChoZXgpCQlkMmQgdGVjaG5vbG9naWVzCitCQ0Q1QjYgICAgIChiYXNlIDE2KQkJZDJkIHRlY2hub2xvZ2llcworCQkJCTEwNjExIHJvdW5kd29vZCBnbGVuIGN0CisJCQkJSmFja3NvbnZpbGxlIEZsIDMyMjU2CisJCQkJVU5JVEVEIFNUQVRFUworCitCQy1EOS00MCAgIChoZXgpCQlBU1IgQ28sLkx0ZC4KK0JDRDk0MCAgICAgKGJhc2UgMTYpCQlBU1IgQ28sLkx0ZC4KKwkJCQkxLTMtMSBTb3Rva2FuZGEgQ2hpeW9kYS1rdQorCQkJCVRva3lvICAxMDEtMDAyMQorCQkJCUpBUEFOCisKK0JDLUUwLTlEICAgKGhleCkJCUVvc2xpbmsKK0JDRTA5RCAgICAgKGJhc2UgMTYpCQlFb3NsaW5rCisJCQkJIzYwMiwgOTAwLTEKKwkJCQlHd2FueWFuZy1Eb25nLCBEb25nYW4tR3UKKwkJCQlBbnlhbmctQ2l0eSBLeW9uZ2dpLURvIDQzMS0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQkMtRTUtOUYgICAoaGV4KQkJV0FURVJXT1JMRCBUZWNobm9sb2d5IENvLixMVEQKK0JDRTU5RiAgICAgKGJhc2UgMTYpCQlXQVRFUldPUkxEIFRlY2hub2xvZ3kgQ28uLExURAorCQkJCTYgRmxvb3IsQmxvY2sgQixEaWdpdGFsIEJ1aWxkaW5nLEdhcmRlbiBDaXR5LE5vLjEwNzksTmFuaGFpIFJvYWQsTmFuc2hhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDY3CisJCQkJQ0hJTkEKKworQkMtRUEtMkIgICAoaGV4KQkJQ2l0eUNvbSBHbWJICitCQ0VBMkIgICAgIChiYXNlIDE2KQkJQ2l0eUNvbSBHbWJICisJCQkJQW0gS3JvaXQgMjUKKwkJCQlBbWVyYW5nIEJhdmFyaWEgODMxMjMKKwkJCQlHRVJNQU5ZCisKK0JDLUYyLUFGICAgKGhleCkJCWRldm9sbyBBRworQkNGMkFGICAgICAoYmFzZSAxNikJCWRldm9sbyBBRworCQkJCUNoYXJsb3R0ZW5idXJnZXIgQWxsZWUgNjAKKwkJCQlBYWNoZW4gIDUyMDY4CisJCQkJR0VSTUFOWQorCitCQy1GNi04NSAgIChoZXgpCQlELUxpbmsgSW50ZXJuYXRpb25hbAorQkNGNjg1ICAgICAoYmFzZSAxNikJCUQtTGluayBJbnRlcm5hdGlvbmFsCisJCQkJMSBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIFBhcmssICMwMy0xMgorCQkJCSwgVGhlIFN5bmVyZ3kgCisJCQkJU2luZ2Fwb3JlIDYwOTkxNworCQkJCVNJTkdBUE9SRQorCitCQy1GRS04QyAgIChoZXgpCQlBbHRyb25pYywgTExDCitCQ0ZFOEMgICAgIChiYXNlIDE2KQkJQWx0cm9uaWMsIExMQworCQkJCTcxMiBUcnVtYnVsbCBBdmUKKwkJCQlHaXJhcmQgT2hpbyA0NDQyMAorCQkJCVVOSVRFRCBTVEFURVMKKworQkMtRkYtQUMgICAoaGV4KQkJVE9QQ09OIENPUlBPUkFUSU9OCitCQ0ZGQUMgICAgIChiYXNlIDE2KQkJVE9QQ09OIENPUlBPUkFUSU9OCisJCQkJNzUtMSwgSGFzdW51bWEtY2hvCisJCQkJSXRhYmFzaGkta3UgVE9LWU8gMTc0LTg1ODAKKwkJCQlKQVBBTgorCitDMC0wRC03RSAgIChoZXgpCQlBZGRpdGVjaCwgSW5jLgorQzAwRDdFICAgICAoYmFzZSAxNikJCUFkZGl0ZWNoLCBJbmMuCisJCQkJMTA5MjUgS2luZ2h1cnN0CisJCQkJU3VpdGUgNTAwCisJCQkJSG91c3RvbiBUWCA3NzA5OQorCQkJCVVOSVRFRCBTVEFURVMKKworQzAtMTItNDIgICAoaGV4KQkJQWxwaGEgU2VjdXJpdHkgUHJvZHVjdHMKK0MwMTI0MiAgICAgKGJhc2UgMTYpCQlBbHBoYSBTZWN1cml0eSBQcm9kdWN0cworCQkJCTEwNzE1IFNpa2VzIFBsYWNlLCBTdGUuIDIwMAorCQkJCUNoYXJsb3R0ZSBOQyAyODI3NworCQkJCVVOSVRFRCBTVEFURVMKKworQzAtMTQtM0QgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorQzAxNDNEICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJIFNoYW5naGFpICAgMjAxNjEzCisJCQkJQ0hJTkEKKworQzAtMTgtODUgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorQzAxODg1ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKK0MwLTFFLTlCICAgKGhleCkJCVBpeGF2aSBBUworQzAxRTlCICAgICAoYmFzZSAxNikJCVBpeGF2aSBBUworCQkJCUR1c2F2aWt2ZWllbiAzOQorCQkJCVN0YXZhbmdlciAgNDAwMworCQkJCU5PUldBWQorCitDMC0yMi01MCAgIChoZXgpCQlQUklWQVRFCitDMDIyNTAgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKK0MwLTI1LTA2ICAgKGhleCkJCUFWTSBHbWJICitDMDI1MDYgICAgIChiYXNlIDE2KQkJQVZNIEdtYkgKKwkJCQlBbHQtTW9hYml0IDk1CisJCQkJQmVybGluICAxMDU1OQorCQkJCUdFUk1BTlkKKworQzAtMjctQjkgICAoaGV4KQkJQmVpamluZyBOYXRpb25hbCBSYWlsd2F5IFJlc2VhcmNoICYgRGVzaWduIEluc3RpdHV0ZSAgb2YgU2lnbmFsICYgQ29tbXVuaWNhdGlvbgorQzAyN0I5ICAgICAoYmFzZSAxNikJCUJlaWppbmcgTmF0aW9uYWwgUmFpbHdheSBSZXNlYXJjaCAmIERlc2lnbiBJbnN0aXR1dGUgIG9mIFNpZ25hbCAmIENvbW11bmljYXRpb24KKwkJCQlOby4xOCBCdWlsZGluZywgSHVheXVhbiBZaUxpLEZlbmd0YWkgRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDczCisJCQkJQ0hJTkEKKworQzAtMjktNzMgICAoaGV4KQkJQXVkeXNzZXkgTGFib3JhdG9yaWVzIEluYy4gCitDMDI5NzMgICAgIChiYXNlIDE2KQkJQXVkeXNzZXkgTGFib3JhdG9yaWVzIEluYy4gCisJCQkJMzUwIFMuIEZpZ3Vlcm9hIFN0LiwgU3VpdGUgMjMzCisJCQkJTG9zIEFuZ2VsZXMgQ0EgOTAwNzEKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLTI5LUYzICAgKGhleCkJCVh5U3lzdGVtCitDMDI5RjMgICAgIChiYXNlIDE2KQkJWHlTeXN0ZW0KKwkJCQkjMTMwNCBEYWVydW5nIFBvc3QgVG93ZXIgNQorCQkJCUdhc2FuRG9uZyA2MC0zLCBHdW1DaHVtLUd1CisJCQkJU2VvdWwgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQzAtMkItRkMgICAoaGV4KQkJaU5FUy4gYXBwbGllZCBpbmZvcm1hdGljcyBHbWJICitDMDJCRkMgICAgIChiYXNlIDE2KQkJaU5FUy4gYXBwbGllZCBpbmZvcm1hdGljcyBHbWJICisJCQkJT2htc3RyYXNzZSA5CisJCQkJTHVkd2lnc2J1cmcgIDcxNjQyCisJCQkJR0VSTUFOWQorCitDMC0yQy03QSAgIChoZXgpCQlTaGVuIFpoZW4gSG9ybiBhdWRpbyBDby4sIEx0ZC4gCitDMDJDN0EgICAgIChiYXNlIDE2KQkJU2hlbiBaaGVuIEhvcm4gYXVkaW8gQ28uLCBMdGQuIAorCQkJCUJsb2NrMTcsVG9uZ2Z1eXUgbG5kLlpvbmUsRGFsYW5nLEJhb2FuIAorCQkJCVNoZW56aGVuIEd1YW5nIERvbmcgIDUxODEwOSAKKwkJCQlDSElOQQorCitDMC0zNS1CRCAgIChoZXgpCQlWZWxvY3l0ZWNoIEFwcworQzAzNUJEICAgICAoYmFzZSAxNikJCVZlbG9jeXRlY2ggQXBzCisJCQkJQXV0b21hdGlrdmVqIDEsIDNyZCBmbG9vcgorCQkJCVNPRUJPUkcgIDI4NjAKKwkJCQlERU5NQVJLCisKK0MwLTM4LUY5ICAgKGhleCkJCU5va2lhIERhbm1hcmsgQS9TCitDMDM4RjkgICAgIChiYXNlIDE2KQkJTm9raWEgRGFubWFyayBBL1MKKwkJCQlGcmVkZXJpa3NrYWoKKwkJCQlDb3BlbmhhZ2VuIFYgIERLLTE3OTAKKwkJCQlERU5NQVJLCisKK0MwLTNCLThGICAgKGhleCkJCU1pbmljb20gRGlnaXRhbCBTaWduYWdlCitDMDNCOEYgICAgIChiYXNlIDE2KQkJTWluaWNvbSBEaWdpdGFsIFNpZ25hZ2UKKwkJCQkyNCBIZWJyb24gUm9hZAorCQkJCUplcnVzYWxlbSAgOTM1NDIKKwkJCQlJU1JBRUwKKworQzAtM0YtMEUgICAoaGV4KQkJTkVUR0VBUgorQzAzRjBFICAgICAoYmFzZSAxNikJCU5FVEdFQVIKKwkJCQkzNTAgRUFTVCBQTFVNRVJJQSBEUklWRQorCQkJCVNBTiBKT1NFIENBTElGT1JOSUEgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLTQxLUY2ICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzIEluYworQzA0MUY2ICAgICAoYmFzZSAxNikJCUxHIEVsZWN0cm9uaWNzIEluYworCQkJCTE5LTEsQ2hlb25naG8tUmksSmlud2ktTXllb24KKwkJCQlQeWVvbmd0YWVrIEd5ZW9uZ2dpLURvIDQ1MS03MTMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQzAtNDktM0QgICAoaGV4KQkJTUFJVFJJU0UgVEVDSE5PTE9HSVFVRQorQzA0OTNEICAgICAoYmFzZSAxNikJCU1BSVRSSVNFIFRFQ0hOT0xPR0lRVUUKKwkJCQkyMjQgUlVFIERFIExBIFNBSU5URSBCQVVNRQorCQkJCVNBSU5UIE1BWElNSU4gTEEgU0FJTlRFIEJBVU1FIFZBUiA4MzQ3MAorCQkJCUZSQU5DRQorCitDMC01OC1BNyAgIChoZXgpCQlQaWNvIFN5c3RlbXMgQ28uLCBMdGQuCitDMDU4QTcgICAgIChiYXNlIDE2KQkJUGljbyBTeXN0ZW1zIENvLiwgTHRkLgorCQkJCTMzMi03IEtvdXlhCisJCQkJTWF0c3VkbyBDaGliYSBwcmVmLiAyNzAtMDAxNworCQkJCUpBUEFOCisKK0MwLTVFLTc5ICAgKGhleCkJCVNIRU5aSEVOIEhVQVhVTiBBUksgVEVDSE5PTE9HSUVTIENPLixMVEQKK0MwNUU3OSAgICAgKGJhc2UgMTYpCQlTSEVOWkhFTiBIVUFYVU4gQVJLIFRFQ0hOT0xPR0lFUyBDTy4sTFRECisJCQkJM0YsQzQgQnVpbGRpbmcsWWludGlhbiBJbmR1c3RyaWFsIFpvbmUsWGl4aWFuZyxCYW9hbiBEaXN0cmljdAorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyA1MTgxMDIKKwkJCQlDSElOQQorCitDMC02Mi02QiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitDMDYyNkIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitDMC02Qy0wRiAgIChoZXgpCQlEb2JicyBTdGFuZm9yZAorQzA2QzBGICAgICAoYmFzZSAxNikJCURvYmJzIFN0YW5mb3JkCisJCQkJMjcxNSBFbGVjdHJvbmljIExhbmUKKwkJCQlEYWxsYXMgVGV4YXMgNzUyMjAKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLTdFLTQwICAgKGhleCkJCVNIRU5aSEVOIFhESyBDT01NVU5JQ0FUSU9OIEVRVUlQTUVOVCBDTy4sTFRECitDMDdFNDAgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gWERLIENPTU1VTklDQVRJT04gRVFVSVBNRU5UIENPLixMVEQKKwkJCQlYREsgQlVJTERJTkcsTk8uMSBJTkRVU1RSSUFMIEFSRUEsQkFOVElBTixMT05HR0FORyBESVNUUklDVAorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyA1MTgxMjkKKwkJCQlDSElOQQorCitDMC04MS03MCAgIChoZXgpCQlFZmZpZ2lzIEdlb1NvbHV0aW9ucworQzA4MTcwICAgICAoYmFzZSAxNikJCUVmZmlnaXMgR2VvU29sdXRpb25zCisJCQkJNDEwMSwgcnVlIE1vbHNvbgorCQkJCVN1aXRlIDQwMAorCQkJCU1vbnRyZWFsIFF1ZWJlYyBIMVkzTDEKKwkJCQlDQU5BREEKKworQzAtODMtMEEgICAoaGV4KQkJMldpcmUKK0MwODMwQSAgICAgKGJhc2UgMTYpCQkyV2lyZQorCQkJCTE3NjQgQXV0b21hdGlvbiBQa3d5CisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLTg0LTdBICAgKGhleCkJCUFwcGxlLCBJbmMuCitDMDg0N0EgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIGluZmluaXRlIExvb3AKKwkJCQljdXBlcnRpbm8gY0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLThBLURFICAgKGhleCkJCVJ1Y2t1cyBXaXJlbGVzcworQzA4QURFICAgICAoYmFzZSAxNikJCVJ1Y2t1cyBXaXJlbGVzcworCQkJCTg4MCBXZXN0IE1hdWRlIEF2ZQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworQzAtOEItNkYgICAoaGV4KQkJUyBJIFNpc3RlbWFzIEludGVsaWdlbnRlcyBFbGV0cm9uaWNvcyBMdGRhCitDMDhCNkYgICAgIChiYXNlIDE2KQkJUyBJIFNpc3RlbWFzIEludGVsaWdlbnRlcyBFbGV0cm9uaWNvcyBMdGRhCisJCQkJUnVhIEFtYWRldSBQaW90dG8gMTYxCisJCQkJQ3VyaXRpYmEgUGFyYW7hIDgxMjgwMDIwCisJCQkJQlJBWklMCisKK0MwLTkxLTMyICAgKGhleCkJCVBhdHJpb3QgTWVtb3J5CitDMDkxMzIgICAgIChiYXNlIDE2KQkJUGF0cmlvdCBNZW1vcnkKKwkJCQk0NzAyNyBCZW5pY2lhCisJCQkJRnJlbW9udCBDQSA5NDU1NQorCQkJCVVOSVRFRCBTVEFURVMKKworQzAtOTEtMzQgICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorQzA5MTM0ICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkLgorCQkJCVJvc2V2aWxsZSBDYWxpZm9ybmlhIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCitDMC05Qy05MiAgIChoZXgpCQlDT0JZCitDMDlDOTIgICAgIChiYXNlIDE2KQkJQ09CWQorCQkJCUNPQlkgRWxlY3Ryb25pY3MgU2hlblpoZW4gUiZEIENlbnRlciAKKwkJCQlCbG9jayAzLFRhb1hpYSAybmQgSW5kdXN0cmlhbCBab25lLExvbmdIdWEgVG93bixCYW9BbiBEaXN0cmljdCwKKwkJCQlTSEVOWkhFTiBHVUFOR0RPTkcgNTE4MTA5CisJCQkJQ0hJTkEKKworQzAtOUYtNDIgICAoaGV4KQkJQXBwbGUgSW5jCitDMDlGNDIgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworQzAtQTAtREUgICAoaGV4KQkJTXVsdGkgVG91Y2ggT3kKK0MwQTBERSAgICAgKGJhc2UgMTYpCQlNdWx0aSBUb3VjaCBPeQorCQkJCUhlbnJ5IEZvcmRpbiBrYXR1IDYKKwkJCQlIZWxzaW5raSAgMDAxNTAKKwkJCQlGSU5MQU5ECisKK0MwLUEyLTZEICAgKGhleCkJCUFiYm90dCBQb2ludCBvZiBDYXJlCitDMEEyNkQgICAgIChiYXNlIDE2KQkJQWJib3R0IFBvaW50IG9mIENhcmUKKwkJCQk0MDAgQ29sbGVnZSBSb2FkIEVhc3QKKwkJCQlQcmluY2V0b24gTkogMDg1NDAKKwkJCQlVTklURUQgU1RBVEVTCisKK0MwLUEzLTY0ICAgKGhleCkJCTNEIFN5c3RlbXMgQnVybGluZ3RvbgorQzBBMzY0ICAgICAoYmFzZSAxNikJCTNEIFN5c3RlbXMgQnVybGluZ3RvbgorCQkJCTMyIFNlY29uZCBBdmUKKwkJCQlCdXJsaW5ndG9uIE1BIDAxODAzCisJCQkJVU5JVEVEIFNUQVRFUworCitDMC1BQy01NCAgIChoZXgpCQlTQUdFTUNPTQorQzBBQzU0ICAgICAoYmFzZSAxNikJCVNBR0VNQ09NCisJCQkJMjUwIFJURSBERSBMJ0VNUEVSRVVSCisJCQkJUlVFSUwgTUFMTUFJU09OICA5Mjg0OAorCQkJCUZSQU5DRQorCitDMC1CMy01NyAgIChoZXgpCQlZb3NoaWtpIEVsZWN0cm9uaWNzIEluZHVzdHJ5IEx0ZC4KK0MwQjM1NyAgICAgKGJhc2UgMTYpCQlZb3NoaWtpIEVsZWN0cm9uaWNzIEluZHVzdHJ5IEx0ZC4KKwkJCQlPb2ljeW95byBCdWlsZGluZyA3ZgorCQkJCTUtMTItMTAgSGlnYXNoaW9vaQorCQkJCVNoaW5hZ2F3YS1rdSBUb2t5byAxNDAtMDAxMQorCQkJCUpBUEFOCisKK0MwLUJBLUU2ICAgKGhleCkJCUFwcGxpY2F0aW9uIFNvbHV0aW9ucyAoU2FmZXR5IGFuZCBTZWN1cml0eSkgTHRkCitDMEJBRTYgICAgIChiYXNlIDE2KQkJQXBwbGljYXRpb24gU29sdXRpb25zIChTYWZldHkgYW5kIFNlY3VyaXR5KSBMdGQKKwkJCQlVbml0IDE3CisJCQkJQ2xpZmZlIEluZHVzdHJpYWwgRXN0YXRlCisJCQkJTGV3ZXMgRWFzdCBTdXNzZXggQk44IDZKTAorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0MwLUMxLUMwICAgKGhleCkJCUNpc2NvLUxpbmtzeXMsIExMQworQzBDMUMwICAgICAoYmFzZSAxNikJCUNpc2NvLUxpbmtzeXMsIExMQworCQkJCTEyMSBUaGVvcnkgRHJpdmUKKwkJCQlJcnZpbmUgQ2FsaWZvcm5pYSA5MjYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworQzAtQzUtMjAgICAoaGV4KQkJUnVja3VzIFdpcmVsZXNzCitDMEM1MjAgICAgIChiYXNlIDE2KQkJUnVja3VzIFdpcmVsZXNzCisJCQkJODgwIFdlc3QgTWF1ZGUgQXZlLgorCQkJCVN1aXRlIDEwMQorCQkJCVN1bm55dmFsZSBDQSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworQzAtQzktNDYgICAoaGV4KQkJTUlUU1VZQSBMQUJPUkFUT1JJRVMgSU5DLgorQzBDOTQ2ICAgICAoYmFzZSAxNikJCU1JVFNVWUEgTEFCT1JBVE9SSUVTIElOQy4KKwkJCQk2LTMxLTE4LEtBTUlBU0FPCisJCQkJQVNBTy1LVQorCQkJCUtBV0FTQUtJLUNJVFkgS0FOQUdBV0EgMjE1LTAwMjEKKwkJCQlKQVBBTgorCitDMC1DQi0zOCAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorQzBDQjM4ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMyAKKwkJCQlDSElOQQorCitDMC1DRi1BMyAgIChoZXgpCQlDcmVhdGl2ZSBFbGVjdHJvbmljcyAmYW1wOyBTb2Z0d2FyZSwgSW5jLgorQzBDRkEzICAgICAoYmFzZSAxNikJCUNyZWF0aXZlIEVsZWN0cm9uaWNzICZhbXA7IFNvZnR3YXJlLCBJbmMuCisJCQkJNjUwIFN1bmRvd24gUm9hZAorCQkJCVNvdXRoIEVsZ2luIElMIDYwMTc3CisJCQkJVU5JVEVEIFNUQVRFUworCitDMC1EMC00NCAgIChoZXgpCQlTQUdFTUNPTQorQzBEMDQ0ICAgICAoYmFzZSAxNikJCVNBR0VNQ09NCisJCQkJMjUwLCBSb3V0ZSBkZSBsJ0VtcGVyZXVyCisJCQkJUlVFSUwtTUFMTUFJU09OICA5MjUwMAorCQkJCUZSQU5DRQorCitDMC1EOS02MiAgIChoZXgpCQlBc2tleSBDb21wdXRlciBDb3JwLgorQzBEOTYyICAgICAoYmFzZSAxNikJCUFza2V5IENvbXB1dGVyIENvcnAuCisJCQkJMTBGLE5PLjExOSxKSUFOS0FORyBSRC4sWkhPTkdIRSBESVNUIFhJTkJFSSBDSVRZCisJCQkJVEFJUEVJIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDMC1ERi03NyAgIChoZXgpCQlDb25yYWQgRWxlY3Ryb25pYyBTRQorQzBERjc3ICAgICAoYmFzZSAxNikJCUNvbnJhZCBFbGVjdHJvbmljIFNFCisJCQkJS2xhdXMgQ29ucmFkIFN0ci4gMQorCQkJCUhpcnNjaGF1IEJhdmFyaWEgOTIyNDAKKwkJCQlHRVJNQU5ZCisKK0MwLUU0LTIyICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCitDMEU0MjIgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQsIE1TODcyMworCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworQzAtRTUtNEUgICAoaGV4KQkJREVOWCBDb21wdXRlciBTeXN0ZW1zIEdtYkgKK0MwRTU0RSAgICAgKGJhc2UgMTYpCQlERU5YIENvbXB1dGVyIFN5c3RlbXMgR21iSAorCQkJCUlubnNicnVja2VyIFN0ci4gODQKKwkJCQlHcm9lYmVuemVsbCAgODIxOTQKKwkJCQlHRVJNQU5ZCisKK0MwLUVBLUU0ICAgKGhleCkJCVNvbmljd2FsbAorQzBFQUU0ICAgICAoYmFzZSAxNikJCVNvbmljd2FsbAorCQkJCTIwMDEgTG9naWMgRHJpdmUKKwkJCQlTYW4gSm9zZSBDQSA5NTEyNC0zNDUyCisJCQkJVU5JVEVEIFNUQVRFUworCitDMC1GOC1EQSAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCitDMEY4REEgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKK0M0LTAxLTQyICAgKGhleCkJCU1heE1lZGlhIFRlY2hub2xvZ3kgTGltaXRlZAorQzQwMTQyICAgICAoYmFzZSAxNikJCU1heE1lZGlhIFRlY2hub2xvZ3kgTGltaXRlZAorCQkJCTVGLCBOby4gMTEzLCBKaWFuIDJuZCBSZC4gSmhvbmdoZSBEaXN0cmljdC4KKwkJCQlOZXcgVGFpcGVpIENpdHkgIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDNC0wMS03QyAgIChoZXgpCQlSdWNrdXMgV2lyZWxlc3MKK0M0MDE3QyAgICAgKGJhc2UgMTYpCQlSdWNrdXMgV2lyZWxlc3MKKwkJCQk4ODAgV2VzdCBNYXVkZSBBdmUKKwkJCQlTdWl0ZSAxMDEKKwkJCQlTdW5ueXZhbGUgQ0EgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LTAxLUIxICAgKGhleCkJCVNlZWtUZWNoIElOQworQzQwMUIxICAgICAoYmFzZSAxNikJCVNlZWtUZWNoIElOQworCQkJCTM4NTUgUnVmZmluIFJvYWQKKwkJCQlTYW4gRGllZ28gQ2FsaWZvcm5pYSA5MjEyMworCQkJCVVOSVRFRCBTVEFURVMKKworQzQtMEEtQ0IgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworQzQwQUNCICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LTBGLTA5ICAgKGhleCkJCUhlcm1lcyBlbGVjdHJvbmljIEdtYkgKK0M0MEYwOSAgICAgKGJhc2UgMTYpCQlIZXJtZXMgZWxlY3Ryb25pYyBHbWJICisJCQkJQW0gSGFuZHdlcmtlcnBhcmsgMQorCQkJCUVzc2VuIE5SVyA0NTMwOQorCQkJCUdFUk1BTlkKKworQzQtMTAtOEEgICAoaGV4KQkJUnVja3VzIFdpcmVsZXNzCitDNDEwOEEgICAgIChiYXNlIDE2KQkJUnVja3VzIFdpcmVsZXNzCisJCQkJODgwIFdlc3QgTWF1ZGUgQXZlCisJCQkJU3VpdGUgMTAxCisJCQkJU3Vubnl2YWxlIENBIDk0MDg1CisJCQkJVU5JVEVEIFNUQVRFUworCitDNC0xNi1GQSAgIChoZXgpCQlQcnlzbSBJbmMKK0M0MTZGQSAgICAgKGJhc2UgMTYpCQlQcnlzbSBJbmMKKwkJCQkxODAgQmF5dGVjaCBEcml2ZQorCQkJCVN1aXRlIDExMAorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LTE3LUZFICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KK0M0MTdGRSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZSAKKwkJCQlTaGFuZ2hhaSAgIDIwMTYxMyAKKwkJCQlDSElOQQorCitDNC0xOS04QiAgIChoZXgpCQlEb21pbmlvbiBWb3RpbmcgU3lzdGVtcyBDb3Jwb3JhdGlvbgorQzQxOThCICAgICAoYmFzZSAxNikJCURvbWluaW9uIFZvdGluZyBTeXN0ZW1zIENvcnBvcmF0aW9uCisJCQkJMjE1IFNwYWRpbmEgQXZlbnVlCisJCQkJU3VpdGUgMjAwCisJCQkJVG9yb250byBPbnRhcmlvIE01VCAyQzcKKwkJCQlDQU5BREEKKworQzQtMUUtQ0UgICAoaGV4KQkJSE1JIFNvdXJjZXMgTHRkLgorQzQxRUNFICAgICAoYmFzZSAxNikJCUhNSSBTb3VyY2VzIEx0ZC4KKwkJCQk1IEZsb29yLCBTdWl0ZSAyLCAyMzMgSHNpbiBZaSBSb2FkLCBTZWN0aW9uIDQKKwkJCQlUYWlwZWkgIDEwNjgxCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDNC0yMy03QSAgIChoZXgpCQlXaGl6TmV0cyBJbmMuCitDNDIzN0EgICAgIChiYXNlIDE2KQkJV2hpek5ldHMgSW5jLgorCQkJCTgzMCBTdGV3YXJ0IERyaXZlCisJCQkJU3Vubnl2YWxlIENhbGlmb3JuaWEgOTQwODUKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LTI0LTJFICAgKGhleCkJCUdhbHZhbmljIEFwcGxpZWQgU2NpZW5jZXMgSW5jCitDNDI0MkUgICAgIChiYXNlIDE2KQkJR2FsdmFuaWMgQXBwbGllZCBTY2llbmNlcyBJbmMKKwkJCQk3MDAwIEZpc2hlciBSb2FkIFNFCisJCQkJQ2FsZ2FyeSBBbGJlcnRhIFQySCAwVzMKKwkJCQlDQU5BREEKKworQzQtMkMtMDMgICAoaGV4KQkJQXBwbGUsIEluYy4KK0M0MkMwMyAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDYWxpZm9ybmlhIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitDNC0zNi1EQSAgIChoZXgpCQlSdXN0ZWxldGVjaCBMdGQuCitDNDM2REEgICAgIChiYXNlIDE2KQkJUnVzdGVsZXRlY2ggTHRkLgorCQkJCU9yZHpob25pa2lkemUgU3RyLiAxMSwgQmxkZy4gNDAsIE9mZi4gMTUgCisJCQkJTW9zY293ICAxMTU0MTkKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworQzQtMzktM0EgICAoaGV4KQkJU01DIE5ldHdvcmtzIEluYworQzQzOTNBICAgICAoYmFzZSAxNikJCVNNQyBOZXR3b3JrcyBJbmMKKwkJCQkyMCBNYXNvbgorCQkJCUlydmluZSBDQSA5MjYxOAorCQkJCVVOSVRFRCBTVEFURVMKKworQzQtM0EtOUYgICAoaGV4KQkJU2ljb25peCBJbmMuCitDNDNBOUYgICAgIChiYXNlIDE2KQkJU2ljb25peCBJbmMuCisJCQkJIzI4LCAyMzMzIDE4dGggQXZlIE5FCisJCQkJQ2FsZ2FyeSBBbGJlcnRhIFQyRSA4VDYKKwkJCQlDQU5BREEKKworQzQtM0MtM0MgICAoaGV4KQkJQ1lCRUxFQyBTQQorQzQzQzNDICAgICAoYmFzZSAxNikJCUNZQkVMRUMgU0EKKwkJCQlSdWUgZGVzIFV0dGlucyAyNworCQkJCVl2ZXJkb24tbGVzLUJhaW5zICAxNDAxCisJCQkJU1dJVFpFUkxBTkQKKworQzQtM0QtQzcgICAoaGV4KQkJTkVUR0VBUgorQzQzREM3ICAgICAoYmFzZSAxNikJCU5FVEdFQVIKKwkJCQkzNTAgRUFTVCBQTFVNRVJJQSBEUklWRQorCQkJCVNBTiBKT1NFIENBTElGT1JOSUEgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LTQ2LTE5ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCitDNDQ2MTkgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKKwkJCQlOTy4xOTI1LE5hbmxlIFJvYWQgLFNvbmdqaWFuZyBFeHBvcnQgUHJvY2Vzc2luZyBab25lIAorCQkJCVNoYW5naGFpICAgMjAxNjEzIAorCQkJCUNISU5BCisKK0M0LTRBLUQwICAgKGhleCkJCUZJUkVGTElFUyBSVExTCitDNDRBRDAgICAgIChiYXNlIDE2KQkJRklSRUZMSUVTIFJUTFMKKwkJCQkzMSBSVUUgR1VTVEFWRSBFSUZGRUwKKwkJCQljL28gUEVUQUxFCisJCQkJR1JFTk9CTEUgIDM4MDAwCisJCQkJRlJBTkNFCisKK0M0LTRCLTQ0ICAgKGhleCkJCU9tbmlwcmludCBJbmMuCitDNDRCNDQgICAgIChiYXNlIDE2KQkJT21uaXByaW50IEluYy4KKwkJCQkxOTIzIEVhc3QgRGVlcmUgQXZlLgorCQkJCVNhbnRhIEFuYSBDQSA5MjcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworQzQtNTUtQTYgICAoaGV4KQkJQ2FkYWMgSG9sZGluZ3MgTHRkCitDNDU1QTYgICAgIChiYXNlIDE2KQkJQ2FkYWMgSG9sZGluZ3MgTHRkCisJCQkJMSBOZXcgU3RyZWV0CisJCQkJTHV0b24gQmVkZm9yZHNoaXJlIExVMSA1RFgKKwkJCQlVTklURUQgS0lOR0RPTQorCitDNC01NS1DMiAgIChoZXgpCQlCYWNoLVNpbXBzb24KK0M0NTVDMiAgICAgKGJhc2UgMTYpCQlCYWNoLVNpbXBzb24KKwkJCQkxMDkgTWVnIERyaXZlIAorCQkJCUxvbmRvbiBPbnRhcmlvIE42RTNaNworCQkJCUNBTkFEQQorCitDNC01Ni0wMCAgIChoZXgpCQlHYWxsZW9uIEVtYmVkZGVkIENvbXB1dGluZworQzQ1NjAwICAgICAoYmFzZSAxNikJCUdhbGxlb24gRW1iZWRkZWQgQ29tcHV0aW5nCisJCQkJT3N0ZW5zam9ldmVpZW4gNDQKKwkJCQlPc2xvICBOLTA2NjcKKwkJCQlOT1JXQVkKKworQzQtNTktNzYgICAoaGV4KQkJRnVnb28KK0M0NTk3NiAgICAgKGJhc2UgMTYpCQlGdWdvbworCQkJCTEwMjQgMTR0aCBBdmUgU0UKKwkJCQlMZSBNYXJzIElBIDUxMDMxCisJCQkJVU5JVEVEIFNUQVRFUworCitDNC02MC00NCAgIChoZXgpCQlFdmVyZXggRWxlY3Ryb25pY3MgTGltaXRlZAorQzQ2MDQ0ICAgICAoYmFzZSAxNikJCUV2ZXJleCBFbGVjdHJvbmljcyBMaW1pdGVkCisJCQkJVW5pdCAzLCBCbG9jayBBLCAxNi9GCisJCQkJS2FpbGV5IEluZHVzdHJpYWwgQ2VudGVyCisJCQkJSE9ORyBLT05HCisKK0M0LTYzLTU0ICAgKGhleCkJCVUtUmFrdSwgSW5jLgorQzQ2MzU0ICAgICAoYmFzZSAxNikJCVUtUmFrdSwgSW5jLgorCQkJCTQwMS0xIERlYmEKKwkJCQlSaXR0by1zaGkgU2hpZ2EgNTIwLTMwNDEKKwkJCQlKQVBBTgorCitDNC02NC0xMyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitDNDY0MTMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworQzQtNjctQjUgICAoaGV4KQkJTGlicmF0b25lIEEvUworQzQ2N0I1ICAgICAoYmFzZSAxNikJCUxpYnJhdG9uZSBBL1MKKwkJCQlNaWxlcGFya2VuIDIwRQorCQkJCVNrb3ZsdW5kZSAgMjc0MAorCQkJCURFTk1BUksKKworQzQtNkEtQjcgICAoaGV4KQkJWGlhb21pIFRlY2hub2xvZ3ksSW5jLgorQzQ2QUI3ICAgICAoYmFzZSAxNikJCVhpYW9taSBUZWNobm9sb2d5LEluYy4KKwkJCQlRdWFuc2hpdGlhbmRpIFRvd2VyIEEsOHRoIEZsb29yLGppYTUwLTEgV2FuZ2ppbmcgWGlsdSxDaGFveWFuZyBEaXN0cmljdCwgQmVpamluZywgQ2hpbmEgMTAwMTAyCisJCQkJQmVpamluZyBCZWlqaW5nIDEwMDEwMgorCQkJCUNISU5BCisKK0M0LTcxLTMwICAgKGhleCkJCUZvbiBUZWNobm9sb2d5IFMuTC4KK0M0NzEzMCAgICAgKGJhc2UgMTYpCQlGb24gVGVjaG5vbG9neSBTLkwuCisJCQkJUXVpbnRhbmF2aWRlcyAxMworCQkJCUVkaWZpY2lvIDIsIHBsYW50YSAxCisJCQkJTWFkcmlkICAyODA1MAorCQkJCVNQQUlOCisKK0M0LTcxLUZFICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0M0NzFGRSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LTdCLTJGICAgKGhleCkJCUJlaWppbmcgSm9pbkhvcGUgSW1hZ2UgVGVjaG5vbG9neSBMdGQuCitDNDdCMkYgICAgIChiYXNlIDE2KQkJQmVpamluZyBKb2luSG9wZSBJbWFnZSBUZWNobm9sb2d5IEx0ZC4KKwkJCQk2MjQgUm9vbSAuQXV0b21hdGlvbiBCdWlsZGluZy45NSMgWmhvbmcgR3VhbmN1biBFYXN0IFJvYWQuSGFpZGlhbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDE5MAorCQkJCUNISU5BCisKK0M0LTdCLUEzICAgKGhleCkJCU5BVklTIEluYy4KK0M0N0JBMyAgICAgKGJhc2UgMTYpCQlOQVZJUyBJbmMuCisJCQkJRG1pdHJvdnNrb2Ugc2hvc3NlIDE1NworCQkJCU1vc2NvdyAgMTI3NDExCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKK0M0LTdELTRGICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0M0N0Q0RiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LTgyLTNGICAgKGhleCkJCUZ1amlhbiBOZXdsYW5kIEF1dG8tSUQgVGVjaC4gQ28sLkx0ZC4KK0M0ODIzRiAgICAgKGJhc2UgMTYpCQlGdWppYW4gTmV3bGFuZCBBdXRvLUlEIFRlY2guIENvLC5MdGQuCisJCQkJTmV3bGFuZCBTY2llbmNlICYgVGVjaG5vbG9neSBQYXJrLCBOby4xIFJ1amlhbmcgV2VzdCBSZC4sIE1hd2VpCisJCQkJRnV6aG91IEZ1amlhbiAzNTAwMTUKKwkJCQlDSElOQQorCitDNC04NS0wOCAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGlvbgorQzQ4NTA4ICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0aW9uCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAgCisJCQkJTUFMQVlTSUEKKworQzQtOTMtMDAgICAoaGV4KQkJOERldmljZXMKK0M0OTMwMCAgICAgKGJhc2UgMTYpCQk4RGV2aWNlcworCQkJCUdlZGltaW5vIHN0LiA0NworCQkJCUthdW5hcyBMVCA0NDI0MgorCQkJCUxJVEhVQU5JQQorCitDNC05My0xMyAgIChoZXgpCQkxMDBmaW8gbmV0d29ya3MgdGVjaG5vbG9neSBsbGMKK0M0OTMxMyAgICAgKGJhc2UgMTYpCQkxMDBmaW8gbmV0d29ya3MgdGVjaG5vbG9neSBsbGMKKwkJCQkyNTM0IGNyZXNjZW50IHN0LiBhcHQgM0YKKwkJCQlBc3RvcmlhIE5ldyB5b3JrIDExMTAyCisJCQkJVU5JVEVEIFNUQVRFUworCitDNC05NS1BMiAgIChoZXgpCQlTSEVOWkhFTiBXRUlKSVUgSU5EVVNUUlkgQU5EIFRSQURFIERFVkVMT1BNRU5UIENPLiwgTFRECitDNDk1QTIgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gV0VJSklVIElORFVTVFJZIEFORCBUUkFERSBERVZFTE9QTUVOVCBDTy4sIExURAorCQkJCVJPT00gMTcxMyxCQU9IVUEgQlVJTERJTkcsIEhVQVFJQU5HIE5PUlRIIFJPQUQsIEZVVElBTiBESVNUUklDVCwgCisJCQkJU0hFTlpIRU4gR1VBTkdET05HIDUxODAzMQorCQkJCUNISU5BCisKK0M0LTk4LTA1ICAgKGhleCkJCU1pbmlldW0gTmV0d29ya3MsIEluYworQzQ5ODA1ICAgICAoYmFzZSAxNikJCU1pbmlldW0gTmV0d29ya3MsIEluYworCQkJCTY0MDQgSW50ZXJuYXRpb25hbCBQYXJrd2F5CisJCQkJc3RlIDIwMjAKKwkJCQlQbGFubyBUZXhhcyA3NTA5MworCQkJCVVOSVRFRCBTVEFURVMKKworQzQtQUEtQTEgICAoaGV4KQkJU1VNTUlUIERFVkVMT1BNRU5ULCBzcG9sLnMgci5vLgorQzRBQUExICAgICAoYmFzZSAxNikJCVNVTU1JVCBERVZFTE9QTUVOVCwgc3BvbC5zIHIuby4KKwkJCQlLIFZvZG90ZWNpIDE5NworCQkJCU9yZWNoIFByYWhhLXphcGFkIDI1MiAyNQorCQkJCUNaRUNIIFJFUFVCTElDCisKK0M0LUI1LTEyICAgKGhleCkJCUdlbmVyYWwgRWxlY3RyaWMgRGlnaXRhbCBFbmVyZ3kKK0M0QjUxMiAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIEVsZWN0cmljIERpZ2l0YWwgRW5lcmd5CisJCQkJNDIwMCBXaWxkd29vZCBQa3d5CisJCQkJQXRsYW50YSBHQSAzMDMzOQorCQkJCVVOSVRFRCBTVEFURVMKKworQzQtQkEtOTkgICAoaGV4KQkJSStNRSBBY3RpYSBJbmZvcm1hdGlrIHVuZCBNaWtyby1FbGVrdHJvbmlrIEdtYkgKK0M0QkE5OSAgICAgKGJhc2UgMTYpCQlJK01FIEFjdGlhIEluZm9ybWF0aWsgdW5kIE1pa3JvLUVsZWt0cm9uaWsgR21iSAorCQkJCURyZXNkZW5zdHJhc3NlIDE3LzE4CisJCQkJQnJhdW5zY2h3ZWlnIE5pZWRlcnNhY2hzZW4gMzg2OTAKKwkJCQlHRVJNQU5ZCisKK0M0LUMxLTlGICAgKGhleCkJCU5hdGlvbmFsIE9pbHdlbGwgVmFyY28gSW5zdHJ1bWVudGF0aW9uLCBNb25pdG9yaW5nLCBhbmQgT3B0aW1pemF0aW9uIChOT1YgSU1PKQorQzRDMTlGICAgICAoYmFzZSAxNikJCU5hdGlvbmFsIE9pbHdlbGwgVmFyY28gSW5zdHJ1bWVudGF0aW9uLCBNb25pdG9yaW5nLCBhbmQgT3B0aW1pemF0aW9uIChOT1YgSU1PKQorCQkJCTEyMDAgQ3lwcmVzcyBDcmVlayBSZC4KKwkJCQlDZWRhciBQYXJrIFRYIDc4NjEzCisJCQkJVU5JVEVEIFNUQVRFUworCitDNC1DQS1EOSAgIChoZXgpCQlIYW5nemhvdSBIM0MgVGVjaG5vbG9naWVzIENvLiwgTGltaXRlZAorQzRDQUQ5ICAgICAoYmFzZSAxNikJCUhhbmd6aG91IEgzQyBUZWNobm9sb2dpZXMgQ28uLCBMaW1pdGVkCisJCQkJMzEwIExpdWhlIFJvYWQsIFpoaWppYW5nIFNjaWVuY2UgUGFyaworCQkJCUhhbmd6aG91IFpoZWppYW5nLCAgMzEwMDUzCisJCQkJQ0hJTkEKKworQzQtQ0QtNDUgICAoaGV4KQkJQmVpamluZyBCb29tc2Vuc2UgVGVjaG5vbG9neSBDTy4sTFRELgorQzRDRDQ1ICAgICAoYmFzZSAxNikJCUJlaWppbmcgQm9vbXNlbnNlIFRlY2hub2xvZ3kgQ08uLExURC4KKwkJCQk4MDMgQnVpbGRpbmcgNCBJTlRFUldFU1QgQnVzaW5lc3MgQ2VudGVyLE5vLjkgU291dGggU2hvdXRpIFJvYWQgLEhhaWRpYW5EaXN0cmljdCwKKwkJCQlCZWlqaW5nICAxMDAwNDgKKwkJCQlDSElOQQorCitDNC1ENC04OSAgIChoZXgpCQlKaWFuZ1N1IEpveXF1ZSBJbmZvcm1hdGlvbiBJbmR1c3RyeSBDby4sTHRkCitDNEQ0ODkgICAgIChiYXNlIDE2KQkJSmlhbmdTdSBKb3lxdWUgSW5mb3JtYXRpb24gSW5kdXN0cnkgQ28uLEx0ZAorCQkJCTEwICBGbG9vciBZYUh1YSBCdWlsZGluZywgWGknYW5CZWkgUm9hZCwgCisJCQkJWHV6aG91IEppYW5nU3UgMjIxMDA2CisJCQkJQ0hJTkEKKworQzQtRDktODcgICAoaGV4KQkJSW50ZWwgQ29ycG9yYXRlCitDNEQ5ODcgICAgIChiYXNlIDE2KQkJSW50ZWwgQ29ycG9yYXRlCisJCQkJTG90IDgsIEphbGFuIEhpLVRlY2ggMi8zCisJCQkJS3VsaW0gSGktVGVjaCBQYXJrCisJCQkJS3VsaW0gS2VkYWggMDkwMDAKKwkJCQlNQUxBWVNJQQorCitDNC1FMS03QyAgIChoZXgpCQlVMlMgY28uCitDNEUxN0MgICAgIChiYXNlIDE2KQkJVTJTIGNvLgorCQkJCTEwNC03MDYsIFNLIFZlbnRpdW0gQnVpbGRpbmcsIDUyMiwgRGFuZ2plb25nLURvbmcKKwkJCQlHdW5wby1zaSBHZW9uZ2dpLWRvIDQzNS03NzYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQzQtRUUtQUUgICAoaGV4KQkJVlNTIE1vbml0b3JpbmcKK0M0RUVBRSAgICAgKGJhc2UgMTYpCQlWU1MgTW9uaXRvcmluZworCQkJCTE4NTAgR2F0ZXdheSBEciwgU3VpdGUgNTAwCisJCQkJU2FuIE1hdGVvIENBIDk0NDA0CisJCQkJVU5JVEVEIFNUQVRFUworCitDNC1FRS1GNSAgIChoZXgpCQlPY2xhcm8sIEluYy4KK0M0RUVGNSAgICAgKGJhc2UgMTYpCQlPY2xhcm8sIEluYy4KKwkJCQkzNDMgRGFuaWVsIFplbmtlciBEci4sIFN1aXRlIDEwMgorCQkJCUhvcnNlaGVhZHMgTlkgMTQ4NDUKKwkJCQlVTklURUQgU1RBVEVTCisKK0M0LUY0LTY0ICAgKGhleCkJCVNwaWNhIGludGVybmF0aW9uYWwKK0M0RjQ2NCAgICAgKGJhc2UgMTYpCQlTcGljYSBpbnRlcm5hdGlvbmFsCisJCQkJUG90IGsgc2VqbWlzY3UgMzMKKwkJCQlManVibGphbmEgIDEwMDAKKwkJCQlTTE9WRU5JQQorCitDNC1GNS03QyAgIChoZXgpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KK0M0RjU3QyAgICAgKGJhc2UgMTYpCQlCcm9jYWRlIENvbW11bmljYXRpb25zIFN5c3RlbXMsIEluYy4KKwkJCQkxMzAgSG9sZ2VyIFdheQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitDNC1GQy1FNCAgIChoZXgpCQlEaXNoVFYgTlogTHRkCitDNEZDRTQgICAgIChiYXNlIDE2KQkJRGlzaFRWIE5aIEx0ZAorCQkJCTEwIFBlbm5leSBBdmUKKwkJCQlNdCBSb3NraWxsCisJCQkJQXVja2xhbmQgIDEwNDEKKwkJCQlORVcgWkVBTEFORAorCitDOC0wMi1BNiAgIChoZXgpCQlCZWlqaW5nIE5ld21pbmUgVGVjaG5vbG9neQorQzgwMkE2ICAgICAoYmFzZSAxNikJCUJlaWppbmcgTmV3bWluZSBUZWNobm9sb2d5CisJCQkJMTAgZmxvb3IsS2VzaGkgUGxhemEKKwkJCQlIYWlEaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworQzgtMDctMTggICAoaGV4KQkJVERTaQorQzgwNzE4ICAgICAoYmFzZSAxNikJCVREU2kKKwkJCQlVbml0IDEwIENvbmNlcHQgUGFyaworCQkJCUlubm92YXRpb24gQ2xvc2UKKwkJCQlQb29sZSBEb3JzZXQgQkgxMiA0UVQKKwkJCQlVTklURUQgS0lOR0RPTQorCitDOC0wQS1BOSAgIChoZXgpCQlRdWFudGEgQ29tcHV0ZXIgSW5jLgorQzgwQUE5ICAgICAoYmFzZSAxNikJCVF1YW50YSBDb21wdXRlciBJbmMuCisJCQkJMjExLCBXZW4gSHdhIDJuZCBSZC4sCisJCQkJVGFvIFl1YW4gS3VlaSBTaGFuIDMzMzc3CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDOC0wRS03NyAgIChoZXgpCQlMZSBTaGkgWmhpIFhpbiBFbGVjdHJvbmljIFRlY2hub2xvZ3kgKFRpYW5qaW4pICBDby4sTHRkIAorQzgwRTc3ICAgICAoYmFzZSAxNikJCUxlIFNoaSBaaGkgWGluIEVsZWN0cm9uaWMgVGVjaG5vbG9neSAoVGlhbmppbikgIENvLixMdGQgCisJCQkJTm8uMjAxLTQyNywyRixUdGhlIEFuaW1hdGlvbiAgQnVpbGRpbmcgQjEgRGlzdHJpY3Tvv73vv71Oby4gMTI277+977+9VGlhbmppbiBlY28tY2l0eSBhbmltYXRpb24gUm9hZAorCQkJCVRpYW5qaW4gIDMwMDQ2NworCQkJCUNISU5BCisKK0M4LTFBLUZFICAgKGhleCkJCURMT0dJQyBHbWJICitDODFBRkUgICAgIChiYXNlIDE2KQkJRExPR0lDIEdtYkgKKwkJCQlSYXRoYXVzc3RyYXNzZSAxNAorCQkJCVBvc3RmYWNoIDMyMQorCQkJCUJhYXIgIDYzNDEKKwkJCQlTV0lUWkVSTEFORAorCitDOC0xRS04RSAgIChoZXgpCQlBRFYgU2VjdXJpdHkgKFMpIFB0ZSBMdGQKK0M4MUU4RSAgICAgKGJhc2UgMTYpCQlBRFYgU2VjdXJpdHkgKFMpIFB0ZSBMdGQKKwkJCQk1NiBEdW5sb3AgU3RyZWV0CisJCQkJMjA5Mzg2CisJCQkJU0lOR0FQT1JFCisKK0M4LTIwLThFICAgKGhleCkJCVN0b3JhZ2VkYXRhCitDODIwOEUgICAgIChiYXNlIDE2KQkJU3RvcmFnZWRhdGEKKwkJCQlSYW5kc3RhZCAyMjExNworCQkJCUFsbWVyZSBGbGV2b2xhbmQgMTMxNkJXCisJCQkJTkVUSEVSTEFORFMKKworQzgtMjktMkEgICAoaGV4KQkJQmFydW4gRWxlY3Ryb25pY3MKK0M4MjkyQSAgICAgKGJhc2UgMTYpCQlCYXJ1biBFbGVjdHJvbmljcworCQkJCTg2OSwgSmFuZ2ppLXJpLCBEb25ndGFuLW15ZW9uCisJCQkJSHdhc2Vvbmctc2kgR3llb25nZ2ktZG8gNDQ1ODEyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0M4LTJBLTE0ICAgKGhleCkJCUFwcGxlLCBJbmMKK0M4MkExNCAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitDOC0yRS05NCAgIChoZXgpCQlIYWxmYSBFbnRlcnByaXNlIENvLiwgTHRkLgorQzgyRTk0ICAgICAoYmFzZSAxNikJCUhhbGZhIEVudGVycHJpc2UgQ28uLCBMdGQuCisJCQkJNUYsIE5vLjEwMiwgTWluZyBDaHVhbiBSb2FkCisJCQkJSHNpbiBUaWVuIFRhaXBlaSBDb3VudHkgMjMxNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0M4LTMyLTMyICAgKGhleCkJCUh1bnRpbmcgSW5ub3ZhCitDODMyMzIgICAgIChiYXNlIDE2KQkJSHVudGluZyBJbm5vdmEKKwkJCQk4MzgzIE4gU2FtIEhvdXN0b24gUGt3eSBXZXN0CisJCQkJSG91c3RvbiBUZXhhcyA3NzA2NAorCQkJCVVOSVRFRCBTVEFURVMKKworQzgtMzMtNEIgICAoaGV4KQkJQXBwbGUsIEluYy4KK0M4MzM0QiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgaW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyAgQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M4LTM1LUI4ICAgKGhleCkJCUVyaWNzc29uLCBFQUIvUldJL0sKK0M4MzVCOCAgICAgKGJhc2UgMTYpCQlFcmljc3NvbiwgRUFCL1JXSS9LCisJCQkJU2tvbGflbmdlbiAxNworCQkJCUfkdmxlCisJCQkJU0UtODAwIDA2CisJCQkJU1dFREVOCisKK0M4LTNBLTM1ICAgKGhleCkJCVRlbmRhIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitDODNBMzUgICAgIChiYXNlIDE2KQkJVGVuZGEgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlSb29tIDYwMS02MDIsUi9EIEJ1aWxkaW5nIENvbXBsZXgsVHNpbmdodWEgSGlnaC1UZWNoIFBhcmssbmFuc2hhbiBkaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5kb25nIDUxODA1NworCQkJCUNISU5BCisKK0M4LTNCLTQ1ICAgKGhleCkJCUpSSS1NYXhhbnQKK0M4M0I0NSAgICAgKGJhc2UgMTYpCQlKUkktTWF4YW50CisJCQkJMTE2IFF1YWkgZGUgYmV6b25zCisJCQkJQXJnZW50ZXVpbCAgOTUxMDAKKwkJCQlGUkFOQ0UKKworQzgtM0UtOTkgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKK0M4M0U5OSAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworQzgtM0UtQTcgICAoaGV4KQkJS1VOQlVTIEdtYkgKK0M4M0VBNyAgICAgKGJhc2UgMTYpCQlLVU5CVVMgR21iSAorCQkJCUhlZXJ3ZWcgMTVBCisJCQkJRGVua2VuZG9yZiBCVyBELTczNzcwCisJCQkJR0VSTUFOWQorCitDOC00NS0yOSAgIChoZXgpCQlJTUsgTmV0d29ya3MgQ28uLEx0ZAorQzg0NTI5ICAgICAoYmFzZSAxNikJCUlNSyBOZXR3b3JrcyBDby4sTHRkCisJCQkJMjAxLUhvIGp1bmdyaWJqdW5qYSwgMTYtM2J1bmppLCAKKwkJCQlHdXVpLWRvbmcsIEd3YW5namluLWd1CisJCQkJU2VvdWwgIDE0My04MTYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQzgtNDUtNDQgICAoaGV4KQkJU2hhbmdoYWkgRW5sb2dpYyBFbGVjdHJpYyBUZWNobm9sb2d5IENvLiwgTHRkLgorQzg0NTQ0ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEVubG9naWMgRWxlY3RyaWMgVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlSb29tIDExMDQtMTEwNiwgQnVpbGRpbmcgQSwgTm8uIDM5MSBHdWlwaW5nIFJvYWQKKwkJCQlYdWh1aSBEaXN0cmljIFNoYW5naGFpIDIwMDIzMworCQkJCUNISU5BCisKK0M4LTQ4LUY1ICAgKGhleCkJCU1FRElTT04gWHJheSBDby4sIEx0ZAorQzg0OEY1ICAgICAoYmFzZSAxNikJCU1FRElTT04gWHJheSBDby4sIEx0ZAorCQkJCTNGIEJ1cmltIEIvRCA5OTkgRGFlY2hpLWRvbmcgCisJCQkJR2FuZ25hbS1ndSAKKwkJCQlTZW91bCAgMTM1LTI4MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitDOC00Qy03NSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitDODRDNzUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitDOC01Ni00NSAgIChoZXgpCQlJbnRlcm1hcyBGcmFuY2UKK0M4NTY0NSAgICAgKGJhc2UgMTYpCQlJbnRlcm1hcyBGcmFuY2UKKwkJCQlSdWUgZGUgbCYjMzk7aW5kdXN0cmllCisJCQkJQmVhdXZhaXMgT2lzZSA2MDAwMAorCQkJCUZSQU5DRQorCitDOC02MC0wMCAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KK0M4NjAwMCAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sIFBlaXRvdSwgCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0M4LTY0LUM3ICAgKGhleCkJCXp0ZSBjb3Jwb3JhdGlvbgorQzg2NEM3ICAgICAoYmFzZSAxNikJCXp0ZSBjb3Jwb3JhdGlvbgorCQkJCTEyL0YuLHp0ZSBSJkQgYnVpbGRpbmcsa2VqaW5hbiBSb2FkLAorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitDOC02Qy0xRSAgIChoZXgpCQlEaXNwbGF5IFN5c3RlbXMgTHRkCitDODZDMUUgICAgIChiYXNlIDE2KQkJRGlzcGxheSBTeXN0ZW1zIEx0ZAorCQkJCTE2LVBhcmtvdmFqYSBTdHJlZXQgMjYKKwkJCQlNb3Njb3cgIDEwNTQ4NAorCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCitDOC02Qy04NyAgIChoZXgpCQlaeXhlbCBDb21tdW5pY2F0aW9ucyBDb3JwCitDODZDODcgICAgIChiYXNlIDE2KQkJWnl4ZWwgQ29tbXVuaWNhdGlvbnMgQ29ycAorCQkJCU5vLjYgSW5ub3ZhdGlvbiBSb2FkIElJCisJCQkJU2NpZW5jZSBQYXJrCisJCQkJSHNpbi1DaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQzgtNkMtQjYgICAoaGV4KQkJT3B0Y29tIENvLiwgTHRkLgorQzg2Q0I2ICAgICAoYmFzZSAxNikJCU9wdGNvbSBDby4sIEx0ZC4KKwkJCQk3OTItMyBUb21pZ2Fva2EKKwkJCQlJd2F0YSBTaGl6dW9rYSA0MzgtMDgwMworCQkJCUpBUEFOCisKK0M4LTcyLTQ4ICAgKGhleCkJCUFwbGljb20gT3kKK0M4NzI0OCAgICAgKGJhc2UgMTYpCQlBcGxpY29tIE95CisJCQkJUmF1dGF0aWVua2F0dSA1NgorCQkJCcOD4oCew4PCpG5la29za2kgTMODwqRuc2ktU3VvbWkgNDQxMDEKKwkJCQlGSU5MQU5ECisKK0M4LTdCLTVCICAgKGhleCkJCXp0ZSBjb3Jwb3JhdGlvbgorQzg3QjVCICAgICAoYmFzZSAxNikJCXp0ZSBjb3Jwb3JhdGlvbgorCQkJCTEyL0YuLHp0ZSBSJkQgQnVpbGRpbmcsS2VqaW5hbiBSb2FkLAorCQkJCVNoZW56aGVuLCBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworQzgtN0MtQkMgICAoaGV4KQkJVmFsaW5rIENvLiwgTHRkLiAKK0M4N0NCQyAgICAgKGJhc2UgMTYpCQlWYWxpbmsgQ28uLCBMdGQuIAorCQkJCTFGIERvbmd3b24gQmxkZy4gOTAsIERhbmdzYW4tRG9uZyAzLUdhIFlvdW5nZHVuZ3BvLUd1CisJCQkJU2VvdWwgIDE1MC04MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQzgtN0QtNzcgICAoaGV4KQkJU2hlbnpoZW4gS2luZ3RlY2ggQ29tbXVuaWNhdGlvbiBFcXVpcG1lbnQgQ28uLEx0ZAorQzg3RDc3ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEtpbmd0ZWNoIENvbW11bmljYXRpb24gRXF1aXBtZW50IENvLixMdGQKKwkJCQlGbG9vcjMuQnVpbGRpbmcgQSxOTy4zLFJvYWQgMSBvZiBzaGFuZ3h1ZSBEZW5neGlua2VuZyBJbmR1c3RyeSBQYXJrLEJhbnRpYW4gU3RyZWV0LAorCQkJCUxvbmdnYW5nIERpc3RyaWN0LAorCQkJCVNoZW56aGVuIENpdHkgR3Vhbmdkb25nIDUxODExMgorCQkJCUNISU5BCisKK0M4LTdFLTc1ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorQzg3RTc1ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitDOC04NC0zOSAgIChoZXgpCQlTdW5yaXNlIFRlY2hub2xvZ2llcworQzg4NDM5ICAgICAoYmFzZSAxNikJCVN1bnJpc2UgVGVjaG5vbG9naWVzCisJCQkJNTQgQ29tbWVyY2lhbCBTdHJlZXQKKwkJCQlSYXluaGFtIE1BIDAyNzY3CisJCQkJVU5JVEVEIFNUQVRFUworCitDOC04NC00NyAgIChoZXgpCQlCZWF1dGlmdWwgRW50ZXJwcmlzZSBDby4sIEx0ZAorQzg4NDQ3ICAgICAoYmFzZSAxNikJCUJlYXV0aWZ1bCBFbnRlcnByaXNlIENvLiwgTHRkCisJCQkJMjZ0aCBGbG9vciwgQmVhdXRpZnVsIEdyb3VwIFRvd2VyLCA3NyBDb25uYXVnaHQgUm9hZCBDZW50cmFsCisJCQkJSE9ORyBLT05HCisKK0M4LTg3LTNCICAgKGhleCkJCU5ldCBPcHRpY3MKK0M4ODczQiAgICAgKGJhc2UgMTYpCQlOZXQgT3B0aWNzCisJCQkJNTMwMyBCZXRzeSBSb3NzIERyaXZlCisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M4LThCLTQ3ICAgKGhleCkJCU9wdGljb3Mgcy5yLmwuCitDODhCNDcgICAgIChiYXNlIDE2KQkJT3B0aWNvcyBzLnIubC4KKwkJCQl2aWEgVGVyemkgZGkgUy5BZ2F0YSAyCisJCQkJQnJlbWJhdGUgZGkgU29wcmEgQmVyZ2FtbyAyNDAzMAorCQkJCUlUQUxZCisKK0M4LTkwLTNFICAgKGhleCkJCVBha3RvbiBUZWNobm9sb2dpZXMKK0M4OTAzRSAgICAgKGJhc2UgMTYpCQlQYWt0b24gVGVjaG5vbG9naWVzCisJCQkJMSBIZWxpdW0gU3QKKwkJCQlOYXJhbmdiYSBRTEQgNDUwNAorCQkJCUFVU1RSQUxJQQorCitDOC05My04MyAgIChoZXgpCQlFbWJlZGRlZCBBdXRvbWF0aW9uLCBJbmMuCitDODkzODMgICAgIChiYXNlIDE2KQkJRW1iZWRkZWQgQXV0b21hdGlvbiwgSW5jLgorCQkJCTE3MzQ1IEFiYmV5IERyaXZlCisJCQkJU3VycmV5IEJDIFY0TiA0TTMKKwkJCQlDQU5BREEKKworQzgtOTQtRDIgICAoaGV4KQkJSmlhbmdzdSBEYXRhbmcgIEVsZWN0cm9uaWMgUHJvZHVjdHMgQ28uLCBMdGQKK0M4OTREMiAgICAgKGJhc2UgMTYpCQlKaWFuZ3N1IERhdGFuZyAgRWxlY3Ryb25pYyBQcm9kdWN0cyBDby4sIEx0ZAorCQkJCU5PLjIwCisJCQkJUHV6aHUgU291dGggUm9hZAorCQkJCU5hbmppbmcgSmlhbmdzdSAyMTE4MDAKKwkJCQlDSElOQQorCitDOC05Ny05RiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorQzg5NzlGICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTcwCisJCQkJRklOTEFORAorCitDOC05Qy0xRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitDODlDMUQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitDOC05Qy1EQyAgIChoZXgpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTSBDTy4sIExURC4KK0M4OUNEQyAgICAgKGJhc2UgMTYpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTSBDTy4sIExURC4KKwkJCQlOTy4gMjM5LCBTZWMuIDIsIFRpIERpbmcgQmx2ZC4KKwkJCQlUYWlwZWkgIDExNDkzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDOC05Ri00MiAgIChoZXgpCQlWRElJIElubm92YXRpb24gQUIKK0M4OUY0MiAgICAgKGJhc2UgMTYpCQlWRElJIElubm92YXRpb24gQUIKKwkJCQlOZWRyZSBIb2xs77+9bmRhcmVnYXRhbiA1CisJCQkJSGVsc2luZ2JvcmcgIDI1MjI1IAorCQkJCVNXRURFTgorCitDOC1BMS1CNiAgIChoZXgpCQlTaGVuemhlbiBMb25nd2F5IFRlY2hub2xvZ2llcyBDby4sIEx0ZAorQzhBMUI2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIExvbmd3YXkgVGVjaG5vbG9naWVzIENvLiwgTHRkCisJCQkJU3VpdGUgNzA3LEluY3ViYXRpb24gQnVpbGRpbmcsIENoaW5hIEFjYWRlbXkgb2YgU2NpZW5jZSZUZWNoIERldmVsb3BtZW50LCBTb3V0aCBhcmVhIAorCQkJCUhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKK0M4LUExLUJBICAgKGhleCkJCU5ldWwgTHRkCitDOEExQkEgICAgIChiYXNlIDE2KQkJTmV1bCBMdGQKKwkJCQlTdWl0ZSA0MiBJbm5vdmF0aW9uIENlbnRyZQorCQkJCVVuaXQgMjMgU2NpZW5jZSBQYXJrCisJCQkJQ2FtYnJpZGdlIENhbWJzIENCNCAwRVkKKwkJCQlVTklURUQgS0lOR0RPTQorCitDOC1BNi0yMCAgIChoZXgpCQlOZWJ1bGEsIEluYworQzhBNjIwICAgICAoYmFzZSAxNikJCU5lYnVsYSwgSW5jCisJCQkJNTQ4IE1hcmtldCBTdHJlZXQgIzg1NTEwCisJCQkJU2FuIEZyYW5jaXNjbyBDQSA5ODE1OAorCQkJCVVOSVRFRCBTVEFURVMKKworQzgtQTctMEEgICAoaGV4KQkJVmVyaXpvbiBCdXNpbmVzcworQzhBNzBBICAgICAoYmFzZSAxNikJCVZlcml6b24gQnVzaW5lc3MKKwkJCQlPbmUgRGlnZXggUGxhemEKKwkJCQlCZWx0c3ZpbGxlIE1EIDIwNzA1CisJCQkJVU5JVEVEIFNUQVRFUworCitDOC1BNy0yOSAgIChoZXgpCQlTWVN0cm9uaWNzIENvLiwgTHRkLgorQzhBNzI5ICAgICAoYmFzZSAxNikJCVNZU3Ryb25pY3MgQ28uLCBMdGQuCisJCQkJIzMwMS0xNDA0LCBCdWNodW4gVGVjaG5vLVBhcmsgSUkKKwkJCQkzNjUsIFNhbWplb25nLWRvbmcsIE9qZW9uZy1ndQorCQkJCUJ1Y2h1biBDaXR5IEt5dW5nIGdpLWRvIDQyMS03NDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQzgtQUEtMjEgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KK0M4QUEyMSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTYwMCBOb3J0aCBVUyBIaWdod2F5IDQ1CisJCQkJTGliZXJ0eXZpbGxlIElMIDYwMDQ2CisJCQkJVU5JVEVEIFNUQVRFUworCitDOC1BQS1DQyAgIChoZXgpCQlQUklWQVRFCitDOEFBQ0MgICAgIChiYXNlIDE2KQkJIAorCQkJCSAKK0M4LUFFLTlDICAgKGhleCkJCVNoYW5naGFpIFRZRCBFbGVjcm9uaWMgVGVjaG5vbG9neSBDby4gTHRkCitDOEFFOUMgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgVFlEIEVsZWNyb25pYyBUZWNobm9sb2d5IENvLiBMdGQKKwkJCQkyMUYsIEJMS0IsIE5PLjM5MSBHdWlQaW5nIFJkLCAKKwkJCQlTaGFuZ2hhaSAyMDAyMzMKKwkJCQlDSElOQQorCitDOC1BRi00MCAgIChoZXgpCQltYXJjbyBTeXN0ZW1hbmFseXNlIHVuZCBFbnR3aWNrbHVuZyBHbWJICitDOEFGNDAgICAgIChiYXNlIDE2KQkJbWFyY28gU3lzdGVtYW5hbHlzZSB1bmQgRW50d2lja2x1bmcgR21iSAorCQkJCUhhbnMtQvZja2xlci1TdHIuIDIKKwkJCQlEYWNoYXUgQmF2YXJpYSA4NTIyMQorCQkJCUdFUk1BTlkKKworQzgtQkItRDMgICAoaGV4KQkJRW1icmFuZQorQzhCQkQzICAgICAoYmFzZSAxNikJCUVtYnJhbmUKKwkJCQkyMzUwIE1pc3Npb24gQ29sbGVnZSBCbHZkLiwgU3RlIDcwMworCQkJCVNhbnRhIENsYXJhIENBIDk1MDU0CisJCQkJVU5JVEVEIFNUQVRFUworCitDOC1CQy1DOCAgIChoZXgpCQlBcHBsZSwgSW5jLgorQzhCQ0M4ICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitDOC1DMS0yNiAgIChoZXgpCQlaUE0gSW5kdXN0cmlhIGUgQ29tZXJjaW8gTHRkYQorQzhDMTI2ICAgICAoYmFzZSAxNikJCVpQTSBJbmR1c3RyaWEgZSBDb21lcmNpbyBMdGRhCisJCQkJUnVhIEFyYWd1YWlhLCAxNzUKKwkJCQlDYW5vYXMgUlMgOTI0MTAtMDAwCisJCQkJQlJBWklMCisKK0M4LUMxLTNDICAgKGhleCkJCVJ1Z2dlZFRlayBIYW5nemhvdSBDby4sIEx0ZAorQzhDMTNDICAgICAoYmFzZSAxNikJCVJ1Z2dlZFRlayBIYW5nemhvdSBDby4sIEx0ZAorCQkJCVpoZWppYW5nIFVuaXZlcnNpdHkgTmF0aW9uYWwgU2NpZW5jZSBQYXJrCisJCQkJNTI1IFhpeGkgUm9hcmQsIEJ1aWxkaW5nIEMgUm9vbSA0MDEKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwMTMKKwkJCQlDSElOQQorCitDOC1DRC03MiAgIChoZXgpCQlTQUdFTUNPTQorQzhDRDcyICAgICAoYmFzZSAxNikJCVNBR0VNQ09NCisJCQkJMjUwIHJvdXRlIGRlIGwnRW1wZXJldXIKKwkJCQlSVUVJTCBNQUxNQUlTT04gIDkyODQ4CisJCQkJRlJBTkNFCisKK0M4LUQxLTVFICAgKGhleCkJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQKK0M4RDE1RSAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworQzgtRDEtRDEgICAoaGV4KQkJQUdBaVQgVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorQzhEMUQxICAgICAoYmFzZSAxNikJCUFHQWlUIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk1RixOby4yNy04LCBTZWMuIDIsIFpob25nemhlbmcgRS4gUmQuLCBEYW5zaHVpIFRvd25zaGlwIAorCQkJCVRhaXBlaSBDb3VudHkgICAyNTE3MAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQzgtRDItQzEgICAoaGV4KQkJSmV0bHVuIChTaGVuemhlbikgQ29ycG9yYXRpb24KK0M4RDJDMSAgICAgKGJhc2UgMTYpCQlKZXRsdW4gKFNoZW56aGVuKSBDb3Jwb3JhdGlvbgorCQkJCTEwMDhBIFNreXdvcnRoIEJ1aWxkaW5nLCBHYW8teGluIFJkIFNvdXRoCisJCQkJSGlnaC1UZWNoIFBhcmssIE5hblNoYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiAgNTE4MDU3CisJCQkJQ0hJTkEKKworQzgtRDUtRkUgICAoaGV4KQkJU2hlbnpoZW4gWm93ZWUgVGVjaG5vbG9neSBDby4sIEx0ZAorQzhENUZFICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFpvd2VlIFRlY2hub2xvZ3kgQ28uLCBMdGQKKwkJCQlCbG9jayA1LCBTY2llbmNlIGFuZCBUZWNobm9sb2d5IEluZHVzdHJpYWwgUGFyayBvZgorCQkJCVByaXZhdGVseSBPd25lZCBFbnRlcnByaXNlcywgUGluZ3NoYW4sIFhpbGksIE5hbnNoYW4gRGlzdHJpY3QgLAorCQkJCVNoZW56aGVuIEd1YW5nRG9uZyA1MTgwNTUKKwkJCQlDSElOQQorCitDOC1ENy0xOSAgIChoZXgpCQlDaXNjbyBDb25zdW1lciBQcm9kdWN0cywgTExDCitDOEQ3MTkgICAgIChiYXNlIDE2KQkJQ2lzY28gQ29uc3VtZXIgUHJvZHVjdHMsIExMQworCQkJCTEyMSBUaGVvcnkgRHJpdmUKKwkJCQlJcnZpbmUgQ2FsZm9ybmlhIDkyNjEyCisJCQkJVU5JVEVEIFNUQVRFUworCitDOC1ERi03QyAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorQzhERjdDICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTkwCisJCQkJRklOTEFORAorCitDOC1FRS0wOCAgIChoZXgpCQlUQU5HVE9QIFRFQ0hOT0xPR1kgQ08uLExURAorQzhFRTA4ICAgICAoYmFzZSAxNikJCVRBTkdUT1AgVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJMUYsTk8uMTUzLExpZ29uIFN0LixCZWl0b3UgRGlzdHJpY3QKKwkJCQlUYWlwZWkgQ2l0eSAgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQzgtRUYtMkUgICAoaGV4KQkJQmVpamluZyBHZWZlaSBUZWNoLiBDby4sIEx0ZCAKK0M4RUYyRSAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEdlZmVpIFRlY2guIENvLiwgTHRkIAorCQkJCUEtNjAzIFBvd2VyIENyZWF0aXZlIFBsYXphLCBOTy4xIFNoYW5nZGkgRS4gUmQuLEhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworQzgtRjQtMDYgICAoaGV4KQkJQXZheWEsIEluYworQzhGNDA2ICAgICAoYmFzZSAxNikJCUF2YXlhLCBJbmMKKwkJCQkxMzAwIFcuMTIwdGggQXZlCisJCQkJV2VzdG1pbnN0ZXIgQ08gODAyMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0M4LUY3LTA0ICAgKGhleCkJCUJ1aWxkaW5nIEJsb2NrIFZpZGVvCitDOEY3MDQgICAgIChiYXNlIDE2KQkJQnVpbGRpbmcgQmxvY2sgVmlkZW8KKwkJCQkxNyBBUGV4IFBhcmsKKwkJCQlIYWlsc2hhbSBFYXN0IFN1c3NleCBCTjI3IDJKVQorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0M4LUY3LTMzICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorQzhGNzMzICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworQzgtRjktODEgICAoaGV4KQkJU2VuZWNhIHMuci5sLgorQzhGOTgxICAgICAoYmFzZSAxNikJCVNlbmVjYSBzLnIubC4KKwkJCQlWaWEgR2VybWFuaWEsIDM0CisJCQkJUEFET1ZBICAzNTEyNworCQkJCUlUQUxZCisKK0M4LUY5LUY5ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0M4RjlGOSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitDOC1GRS0zMCAgIChoZXgpCQlCZWppbmcgREFZTyBNb2JpbGUgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IEx0ZC4KK0M4RkUzMCAgICAgKGJhc2UgMTYpCQlCZWppbmcgREFZTyBNb2JpbGUgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IEx0ZC4KKwkJCQlSb29tIDcxMiwgVUxPIFBhcmsgQnVpbGRpbmcgTm8uIDYwMUUKKwkJCQlCbG9jayBCLTExLTEgV2FuZ0ppbmcgQXJlYSwgIENoYW9ZYW5nIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMTAyCisJCQkJQ0hJTkEKKworQ0MtMDAtODAgICAoaGV4KQkJVFJVU1QgU1lTVEVNIENvLiwKK0NDMDA4MCAgICAgKGJhc2UgMTYpCQlUUlVTVCBTWVNURU0gQ28uLAorCQkJCTMtMTUtMS0xMDAxIHNoaW5zYWt1CisJCQkJdGFrYXRzdS1rdQorCQkJCUthd2FzYWtpLXNoaSBLYW5hZ2F3YSAyMTMtMDAxNAorCQkJCUpBUEFOCisKK0NDLTA1LTFCICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorQ0MwNTFCICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitDQy0wOC1FMCAgIChoZXgpCQlBcHBsZSwgSW5jLgorQ0MwOEUwICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitDQy0wOS1DOCAgIChoZXgpCQlJTUFRTElRIExURAorQ0MwOUM4ICAgICAoYmFzZSAxNikJCUlNQVFMSVEgTFRECisJCQkJT2J2b2RueSBDYW5hbCA5M0EKKwkJCQlTdC5QZXRlcnNidXJnICAxOTExMTkKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworQ0MtMEMtREEgICAoaGV4KQkJTWlsam92YWt0IEFTCitDQzBDREEgICAgIChiYXNlIDE2KQkJTWlsam92YWt0IEFTCisJCQkJR2FubmVzdGFkdmVpZW4gMgorCQkJCUJvcnJlIFZlc3Rmb2xkIDMxODQKKwkJCQlOT1JXQVkKKworQ0MtMTQtQTYgICAoaGV4KQkJWWljaHVuIE15RW5lcmd5IERvbWFpbiwgSW5jCitDQzE0QTYgICAgIChiYXNlIDE2KQkJWWljaHVuIE15RW5lcmd5IERvbWFpbiwgSW5jCisJCQkJMzQ5Vy4gWXVhbnNoYW4gUmQsIFlpY2h1bgorCQkJCVlpY2h1biBKaWFuZ3hpIDMzNjAwMAorCQkJCUNISU5BCisKK0NDLTE4LTdCICAgKGhleCkJCU1hbnphbml0YSBTeXN0ZW1zLCBJbmMuCitDQzE4N0IgICAgIChiYXNlIDE2KQkJTWFuemFuaXRhIFN5c3RlbXMsIEluYy4KKwkJCQkxNDI2OSBEYW5pZWxzb24gU3RyZWV0CisJCQkJUG93YXkgQ0EgOTIwNjQKKwkJCQlVTklURUQgU1RBVEVTCisKK0NDLTFFLUZGICAgKGhleCkJCU1ldHJvbG9naWNhbCBHcm91cCBCVgorQ0MxRUZGICAgICAoYmFzZSAxNikJCU1ldHJvbG9naWNhbCBHcm91cCBCVgorCQkJCU1hcmluaWVyc3dlZyAxNTEKKwkJCQlSb3R0ZXJkYW0gWnVpZC1Ib2xsYW5kIDMwMTFOSworCQkJCU5FVEhFUkxBTkRTCisKK0NDLTIyLTE4ICAgKGhleCkJCUlubm9EaWdpdGFsIENvLiwgTHRkLgorQ0MyMjE4ICAgICAoYmFzZSAxNikJCUlubm9EaWdpdGFsIENvLiwgTHRkLgorCQkJCU5vLjMxMCAzRiBLb2ZvbW8gVG93ZXIKKwkJCQkxNi0zIFN1bmUtZG9uZywgQnVuZGFuZy1ndQorCQkJCVN1bmduYW0tY2l0eSBLeXVuZ2dpLWRvIDQ2My04MjUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQ0MtMzQtRDcgICAoaGV4KQkJR0VXSVNTIFMuUC5BLgorQ0MzNEQ3ICAgICAoYmFzZSAxNikJCUdFV0lTUyBTLlAuQS4KKwkJCQlWSUEgQUxFU1NBTkRSTyBWT0xUQSAxCisJCQkJQ0VOQVRFIFNPVFRPICAyNDA2OQorCQkJCUlUQUxZCisKK0NDLTQzLUUzICAgKGhleCkJCVRydW1wIHMuYS4KK0NDNDNFMyAgICAgKGJhc2UgMTYpCQlUcnVtcCBzLmEuCisJCQkJcnVlIGRlIGxhIE1haXRyaXNlIDkKKwkJCQlOaXZlbGxlcyAgMTQwMAorCQkJCUJFTEdJVU0KKworQ0MtNTAtMUMgICAoaGV4KQkJS1ZIIEluZHVzdHJpZXMsIEluYy4KK0NDNTAxQyAgICAgKGJhc2UgMTYpCQlLVkggSW5kdXN0cmllcywgSW5jLgorCQkJCTUwIEVudGVycHJpc2UgQ2VudGVyCisJCQkJTWlkZGxldG93biBSSSAwMjg0Mi01Mjc5CisJCQkJVU5JVEVEIFNUQVRFUworCitDQy01MC03NiAgIChoZXgpCQlPY29tIENvbW11bmljYXRpb25zLCBJbmMuCitDQzUwNzYgICAgIChiYXNlIDE2KQkJT2NvbSBDb21tdW5pY2F0aW9ucywgSW5jLgorCQkJCTEzRi02LCBOby4gMSwgQmFvIFNoZW5nIFJkLiwgCisJCQkJWW9uZyBIbyBDaXR5ICAyMzQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0NDLTUyLUFGICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorQ0M1MkFGICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTEFORSAzNTEsIFRBSVBJTkcgUkQuCisJCQkJU0VDLjEsIFRTQU8gVFVFTgorCQkJCU5BTi1UT1UgNTQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDQy01NC01OSAgIChoZXgpCQlPblRpbWUgTmV0d29ya3MgQVMKK0NDNTQ1OSAgICAgKGJhc2UgMTYpCQlPblRpbWUgTmV0d29ya3MgQVMKKwkJCQlHbGFkc3ZlaSAyMAorCQkJCU9zbG8gIDA0ODkKKwkJCQlOT1JXQVkKKworQ0MtNTUtQUQgICAoaGV4KQkJUklNCitDQzU1QUQgICAgIChiYXNlIDE2KQkJUklNCisJCQkJMjk1IFBoaWxsaXAgU3RyZWV0CisJCQkJV2F0ZXJsb28gT250YXJpbyBOMkwgM1c5CisJCQkJQ0FOQURBCisKK0NDLTVDLTc1ICAgKGhleCkJCVdlaWdodGVjaCBDb20uIEltcC4gRXhwLiBFcXVpcC4gUGVzYWdlbSBMdGRhCitDQzVDNzUgICAgIChiYXNlIDE2KQkJV2VpZ2h0ZWNoIENvbS4gSW1wLiBFeHAuIEVxdWlwLiBQZXNhZ2VtIEx0ZGEKKwkJCQlSb2RvdmlhIFZpcmftbGlvIFbhcnplYSwgMzExMCAtIFNhbGEgMDEKKwkJCQlDb3N0YSBOb3J0ZSBDZW50ZXIgLSBCYWlycm8gU2FjbyBHcmFuZGUKKwkJCQlGbG9yaWFu83BvbGlzIFNDIDg4MDMyLTAwMQorCQkJCUJSQVpJTAorCitDQy01RC00RSAgIChoZXgpCQlaeVhFTCBDb21tdW5pY2F0aW9ucyBDb3Jwb3JhdGlvbgorQ0M1RDRFICAgICAoYmFzZSAxNikJCVp5WEVMIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCisJCQkJTm8uNiBJbm5vdmF0aW9uIFJvYWQgSUksIFNjaWVuY2UgUGFyaywgCisJCQkJSHNpbiBDaHUgIDMwMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworQ0MtNjAtQkIgICAoaGV4KQkJRW1wb3dlciBSRiBTeXN0ZW1zCitDQzYwQkIgICAgIChiYXNlIDE2KQkJRW1wb3dlciBSRiBTeXN0ZW1zCisJCQkJMzE2IFcuIEZsb3JlbmNlIEF2ZQorCQkJCUluZ2xld29vZCBDQSA5MDMwMQorCQkJCVVOSVRFRCBTVEFURVMKKworQ0MtNjktQjAgICAoaGV4KQkJR2xvYmFsIFRyYWZmaWMgVGVjaG5vbG9naWVzLCBMTEMKK0NDNjlCMCAgICAgKGJhc2UgMTYpCQlHbG9iYWwgVHJhZmZpYyBUZWNobm9sb2dpZXMsIExMQworCQkJCTc4MDAgVGhpcmQgU3RyZWV0IE5vcnRoCisJCQkJU3VpdGUgMTAwCisJCQkJU3QuIFBhdWwgTWlubmVzb3RhIDU1MTI4CisJCQkJVU5JVEVEIFNUQVRFUworCitDQy02Qi05OCAgIChoZXgpCQlNaW5ldGVjIFdpcmVsZXNzIFRlY2hub2xvZ2llcworQ0M2Qjk4ICAgICAoYmFzZSAxNikJCU1pbmV0ZWMgV2lyZWxlc3MgVGVjaG5vbG9naWVzCisJCQkJMTAgS2VtYmxhIFdheQorCQkJCVdpbGxldHRvbiBXQSA2MTU1CisJCQkJQVVTVFJBTElBCisKK0NDLTZCLUYxICAgKGhleCkJCVNvdW5kIE1hc2tpbmcgSW5jLgorQ0M2QkYxICAgICAoYmFzZSAxNikJCVNvdW5kIE1hc2tpbmcgSW5jLgorCQkJCTQ3IC0gMjMgLSBHbGFtaXMgRHJpdmUgU3cKKwkJCQlDYWxnYXJ5IEFsYmVydGEgVDNFIDZTMworCQkJCUNBTkFEQQorCitDQy02RC1BMCAgIChoZXgpCQlSb2t1LCBJbmMuCitDQzZEQTAgICAgIChiYXNlIDE2KQkJUm9rdSwgSW5jLgorCQkJCTEyOTgwIFNhcmF0b2dhIEF2ZS4KKwkJCQlTdWl0ZSBECisJCQkJU2FyYXRvZ2EgQ0EgOTUwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0NDLTZELUVGICAgKGhleCkJCVRKSyBUaWV0b2xhaXRlIE95CitDQzZERUYgICAgIChiYXNlIDE2KQkJVEpLIFRpZXRvbGFpdGUgT3kKKwkJCQlQTCA0NDMKKwkJCQlWYWFzYSAgNjUxMDEKKwkJCQlGSU5MQU5ECisKK0NDLTc2LTY5ICAgKGhleCkJCVNFRVRFQ0gKK0NDNzY2OSAgICAgKGJhc2UgMTYpCQlTRUVURUNICisJCQkJMTktMTUsIFNlb2t1LWRvbmcKKwkJCQlId2FzdW5nLXNpIEd5ZW9uZ2dpLWRvIDQ0NS0xNzAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworQ0MtN0EtMzAgICAoaGV4KQkJQ01BWCBXaXJlbGVzcyBDby4sIEx0ZC4KK0NDN0EzMCAgICAgKGJhc2UgMTYpCQlDTUFYIFdpcmVsZXNzIENvLiwgTHRkLgorCQkJCUtUIEJvbmdkdWsgQi9EIDlGLCA2MjctMTUsIEJvbmdkdWstZG9uZworCQkJCU5hbWd1IERhZWd1IDcwNTcxMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitDQy03RC0zNyAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorQ0M3RDM3ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworQ0MtN0UtRTcgICAoaGV4KQkJUGFuYXNvbmljIEFWQyBOZXR3b3JrcyBDb21wYW55CitDQzdFRTcgICAgIChiYXNlIDE2KQkJUGFuYXNvbmljIEFWQyBOZXR3b3JrcyBDb21wYW55CisJCQkJMS0xNSBNYXRzdW8tY2hvCisJCQkJS2Fkb21hIENpdHkgT3Nha2EgNTcxLTg1MDQKKwkJCQlKQVBBTgorCitDQy04Qy1FMyAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworQ0M4Q0UzICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCitDQy05MC05MyAgIChoZXgpCQlIYW5zb25nIFRlaG5vbG9naWVzCitDQzkwOTMgICAgIChiYXNlIDE2KQkJSGFuc29uZyBUZWhub2xvZ2llcworCQkJCTggS2FuZ3Bpbmcgcm9hZCwgTmV3IGRldmVsb3BtZW50IHpvbmUKKwkJCQlKaWFuZ25pbmcKKwkJCQlOYW5qaW5nIEppYW5nc3UgMjEwMDA2CisJCQkJQ0hJTkEKKworQ0MtOTEtMkIgICAoaGV4KQkJVEUgQ29ubmVjdGl2aXR5IFRvdWNoIFNvbHV0aW9ucworQ0M5MTJCICAgICAoYmFzZSAxNikJCVRFIENvbm5lY3Rpdml0eSBUb3VjaCBTb2x1dGlvbnMKKwkJCQkyMjQ1IEJyaWdodG9uIEhlbnJpZXR0YSBUb3duIExpbmUgUm9hZAorCQkJCVJvY2hlc3RlciBOZXcgWW9yayAxNDYyMworCQkJCVVOSVRFRCBTVEFURVMKKworQ0MtOTQtNEEgICAoaGV4KQkJUGZlaWZmZXIgVmFjdXVtIEdtYkgKK0NDOTQ0QSAgICAgKGJhc2UgMTYpCQlQZmVpZmZlciBWYWN1dW0gR21iSAorCQkJCUJlcmxpbmVyIFN0ci4gNDMKKwkJCQlBc3NsYXIgSGVzc2VuIDM1NjE0CisJCQkJR0VSTUFOWQorCitDQy05Ni1BMCAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCitDQzk2QTAgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODEyOQorCQkJCUNISU5BCisKK0NDLTlFLTAwICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorQ0M5RTAwICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKK0NDLUEzLTc0ICAgKGhleCkJCUd1YW5nZG9uZyBHdWFuZ2xpYW4gRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLkx0ZAorQ0NBMzc0ICAgICAoYmFzZSAxNikJCUd1YW5nZG9uZyBHdWFuZ2xpYW4gRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLkx0ZAorCQkJCUIzMzgsQmxvY2sxMyxOby4yMzIgV2FpaHVhbmRvbmdsdSBSb2FkLEhpZ2ggRWR1Y2F0aW9uIE1lZ2EgQ2VudGVyCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTAwMDYKKwkJCQlDSElOQQorCitDQy1BRi03OCAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCitDQ0FGNzggICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgIDIwMTYxMworCQkJCUNISU5BCisKK0NDLUIyLTU1ICAgKGhleCkJCUQtTGluayBJbnRlcm5hdGlvbmFsCitDQ0IyNTUgICAgIChiYXNlIDE2KQkJRC1MaW5rIEludGVybmF0aW9uYWwKKwkJCQkxIEludGVybmF0aW9uYWwgQnVzaW5lc3MgUGFyaywgIzAzLTEyLCBUaGUgU3luZXJneSAKKwkJCQk2MDk5MTcKKwkJCQlTSU5HQVBPUkUKKworQ0MtQjUtNUEgICAoaGV4KQkJRnJhdW5ob2ZlciBJVFdNCitDQ0I1NUEgICAgIChiYXNlIDE2KQkJRnJhdW5ob2ZlciBJVFdNCisJCQkJRnJhdW5ob2ZlcnBsYXR6IDEKKwkJCQlLYWlzZXJzbGF1dGVybiBSaGluZWxhbmQtUGFsYXRpbmFlIDY3NjYzCisJCQkJR0VSTUFOWQorCitDQy1COC04OCAgIChoZXgpCQlBbkIgU2VjdXJpdGUgcy5hLgorQ0NCODg4ICAgICAoYmFzZSAxNikJCUFuQiBTZWN1cml0ZSBzLmEuCisJCQkJUnVlIGRlIEpvaWUsMzgtNDAKKwkJCQlMaWVnZSAgNDAwMAorCQkJCUJFTEdJVU0KKworQ0MtQjgtRjEgICAoaGV4KQkJRUFHTEUgS0lOR0RPTSBURUNITk9MT0dJRVMgTElNSVRFRAorQ0NCOEYxICAgICAoYmFzZSAxNikJCUVBR0xFIEtJTkdET00gVEVDSE5PTE9HSUVTIExJTUlURUQKKwkJCQlGTEFULyBSTSBCIDI2L0YgVFdPIENISU5BQ0hFTSBQTEFaQSA2OCBDT05OQVVHSFQgUk9BRCBDRU5UUkFMIEhLCisJCQkJSE9ORyBLT05HCisKK0NDLUJFLTcxICAgKGhleCkJCU9wdGlMb2dpeCBCVgorQ0NCRTcxICAgICAoYmFzZSAxNikJCU9wdGlMb2dpeCBCVgorCQkJCUpvb3AgR2Vlc2lua3dlZyA5OTkKKwkJCQlBbXN0ZXJkYW0gTkggMTA5NkFaCisJCQkJTkVUSEVSTEFORFMKKworQ0MtQzEtMDQgICAoaGV4KQkJQXBwbGllZCBUZWNobmljYWwgU3lzdGVtcworQ0NDMTA0ICAgICAoYmFzZSAxNikJCUFwcGxpZWQgVGVjaG5pY2FsIFN5c3RlbXMKKwkJCQlQLk8uIEJveCA1NzA1CisJCQkJU2hyZXZlcG9ydCBMQSA3MTEzNQorCQkJCVVOSVRFRCBTVEFURVMKKworQ0MtQzUtMEEgICAoaGV4KQkJU0hFTlpIRU4gREFKSUFIQU8gVEVDSE5PTE9HWSBDTy4sTFRECitDQ0M1MEEgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gREFKSUFIQU8gVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJM0YgQnVsaWRpbmcgMSwgMnRoIFBhcmsgVGFvSHVhWXVhbiBUZWNoLSBJbm5vdmF0aW9uLAorCQkJCVhpeGlhbmcgQmFvYW4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTAyCisJCQkJQ0hJTkEKKworQ0MtQzYtMkIgICAoaGV4KQkJVHJpLVN5c3RlbXMgQ29ycG9yYXRpb24KK0NDQzYyQiAgICAgKGJhc2UgMTYpCQlUcmktU3lzdGVtcyBDb3Jwb3JhdGlvbgorCQkJCTMtMjctOCBUUlMgQnVpbGRpbmcgM0YKKwkJCQlLb3lhc3VtYWNoaQorCQkJCUhhY2hpb2ppIFRva3lvIDE5Mi0wOTA0CisJCQkJSkFQQU4KKworQ0MtQzgtRDcgICAoaGV4KQkJQ0lBUyBFbGV0dHJvbmljYSBzcmwKK0NDQzhENyAgICAgKGJhc2UgMTYpCQlDSUFTIEVsZXR0cm9uaWNhIHNybAorCQkJCVZpYSBHaW92YW5uaSBEdXJhbmRvIDM4CisJCQkJTWlsYW4gIDIwMTU4CisJCQkJSVRBTFkKKworQ0MtQ0MtNEUgICAoaGV4KQkJU3VuIEZvdW50YWluaGVhZCBVU0EuIENvcnAgCitDQ0NDNEUgICAgIChiYXNlIDE2KQkJU3VuIEZvdW50YWluaGVhZCBVU0EuIENvcnAgCisJCQkJODAxIFMuIEdhcmZpbGVkIEFWRSAjIDIzNiAKKwkJCQlMb3MgQW5nZWxlcyAgQ2FsaWZvcm5pYSAgOTE4MDEKKwkJCQlVTklURUQgU1RBVEVTCisKK0NDLUNDLTgxICAgKGhleCkJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorQ0NDQzgxICAgICAoYmFzZSAxNikJCUhVQVdFSSBURUNITk9MT0dJRVMgQ08uLExURAorCQkJCUQxLEh1YXdlaSBJbmR1c3RyaWFsIEJhc2UsQmFudGlhbixMb25nZ2FuZyxTaGVuemhlbgorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgxMjkKKwkJCQlDSElOQQorCitDQy1DRC02NCAgIChoZXgpCQlTTS1FbGVjdHJvbmljIEdtYkgKK0NDQ0Q2NCAgICAgKGJhc2UgMTYpCQlTTS1FbGVjdHJvbmljIEdtYkgKKwkJCQlXYWxkd2VnIDIKKwkJCQlTdGFwZWxmZWxkIC8gQnJhYWsgIDIyMTQ1CisJCQkJR0VSTUFOWQorCitDQy1DRS00MCAgIChoZXgpCQlKYW50ZXEgQ29ycAorQ0NDRTQwICAgICAoYmFzZSAxNikJCUphbnRlcSBDb3JwCisJCQkJOTI3MiBKZXJvbmltbyBSb2FkCisJCQkJU3VpdGUgMTI0CisJCQkJSXJ2aW5lIENBIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCitDQy1EOC0xMSAgIChoZXgpCQlBaWNvbm4gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorQ0NEODExICAgICAoYmFzZSAxNikJCUFpY29ubiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNUYsIE5PLiA5LCBBbGxleSAyLCBMYW5lIDM1LCBKaS1IdSBSZC4sIE5laS1IdSwgCisJCQkJVGFpcGVpIENpdHkgIDExNDk0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDQy1EOS1FOSAgIChoZXgpCQlTQ1IgRW5naW5lZXJzIEx0ZC4KK0NDRDlFOSAgICAgKGJhc2UgMTYpCQlTQ1IgRW5naW5lZXJzIEx0ZC4KKwkJCQk2IEhhb21hbnV0IFN0LgorCQkJCU5ldGFueWEgIDQyNTA0CisJCQkJSVNSQUVMCisKK0NDLUU3LURGICAgKGhleCkJCUFtZXJpY2FuIE1hZ25ldGljcywgSW5jLgorQ0NFN0RGICAgICAoYmFzZSAxNikJCUFtZXJpY2FuIE1hZ25ldGljcywgSW5jLgorCQkJCVBPIEJveCAyNTA5CisJCQkJT2FrIFJpZGdlIFROIDM3ODMxLTI1MDkKKwkJCQlVTklURUQgU1RBVEVTCisKK0NDLUVBLTFDICAgKGhleCkJCURDT05XT1JLUyAgQ28uLCBMdGQKK0NDRUExQyAgICAgKGJhc2UgMTYpCQlEQ09OV09SS1MgIENvLiwgTHRkCisJCQkJMTgyLTEzIERhZXJ1bmcgUG9zdCBUb3dlciAybmQgNUYKKwkJCQlHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTg0NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitDQy1FRS1EOSAgIChoZXgpCQlEZXRvIE1lY2hhdHJvbmljIEdtYkgKK0NDRUVEOSAgICAgKGJhc2UgMTYpCQlEZXRvIE1lY2hhdHJvbmljIEdtYkgKKwkJCQlHZXdlcmJlcGFyayBT77+9ZCAxMQorCQkJCUt1ZnN0ZWluIFRpcm9sIDYzMzAKKwkJCQlBVVNUUklBCisKK0NDLUVGLTQ4ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0NDRUY0OCAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitDQy1GMy1BNSAgIChoZXgpCQlDaGkgTWVpIENvbW11bmljYXRpb24gU3lzdGVtcywgSW5jCitDQ0YzQTUgICAgIChiYXNlIDE2KQkJQ2hpIE1laSBDb21tdW5pY2F0aW9uIFN5c3RlbXMsIEluYworCQkJCU5vLjQKKwkJCQlNaW5nc2hlbmcgU3RyZWV0CisJCQkJVHVjaGVuZyBDaXR5IFRhaXBlaSBDb3VudHkgIDIzNjc4CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitDQy1GNi03QSAgIChoZXgpCQlBeWVja2EgQ29tbXVuaWNhdGlvbiBTeXN0ZW1zIExURAorQ0NGNjdBICAgICAoYmFzZSAxNikJCUF5ZWNrYSBDb21tdW5pY2F0aW9uIFN5c3RlbXMgTFRECisJCQkJUE9CIDMwNTkKKwkJCQlIb2QgSGFzaGFyb24gIDQ1MTMwCisJCQkJSVNSQUVMCisKK0NDLUY4LTQxICAgKGhleCkJCUx1bWV3YXZlCitDQ0Y4NDEgICAgIChiYXNlIDE2KQkJTHVtZXdhdmUKKwkJCQk0ODAzIEIgU3RyZWV0CisJCQkJU2FjcmFtZW50byBDQSA5NTgxOQorCQkJCVVOSVRFRCBTVEFURVMKKworQ0MtRjgtRjAgICAoaGV4KQkJWGknYW4gSElTVSBNdWx0aW1lZGlhIFRlY2hub2xvZ3kgQ28uLEx0ZC4KK0NDRjhGMCAgICAgKGJhc2UgMTYpCQlYaSdhbiBISVNVIE11bHRpbWVkaWEgVGVjaG5vbG9neSBDby4sTHRkLgorCQkJCTMgRmxvb3IgLCBOTy4xIEJ1aWxkaW5nICwgTW9kZXJuIEJ1c2luZXNzIEVudGVycHJpc2UgQ2VudHJlIChFYXN0KSAsIE5PLjY5LCBKaW55ZSByb2FkICwgWGmhr2FuIAorCQkJCUhpZ2gtdGVjaCBpbmR1c3RyeSBEZXZlbG9wbWVudCBab25lCisJCQkJWGknYW4gQ2l0eSBTaGFueGkgUHJvdmluY2UgNzEwMDc1CisJCQkJQ0hJTkEKKworQ0MtRjktNTQgICAoaGV4KQkJQXZheWEsIEluYworQ0NGOTU0ICAgICAoYmFzZSAxNikJCUF2YXlhLCBJbmMKKwkJCQkyMTEgTW91bnQgQWlyeSBSb2FkIAorCQkJCUJhc2tpbmcgUmlkZ2UgTkogMDc5MjAtMjMxMSAKKwkJCQlVTklURUQgU1RBVEVTCisKK0NDLUY5LUU4ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorQ0NGOUU4ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitDQy1GQy02RCAgIChoZXgpCQlSSVogVFJBTlNNSVRURVJTCitDQ0ZDNkQgICAgIChiYXNlIDE2KQkJUklaIFRSQU5TTUlUVEVSUworCQkJCUJPWklEQVJFVklDRVZBIDEzCisJCQkJUC5PLkJPWCA2NTQKKwkJCQlaQUdSRUIgIDEwMDAwCisJCQkJQ1JPQVRJQQorCitDQy1GQy1CMSAgIChoZXgpCQlXaXJlbGVzcyBUZWNobm9sb2d5LCBJbmMuCitDQ0ZDQjEgICAgIChiYXNlIDE2KQkJV2lyZWxlc3MgVGVjaG5vbG9neSwgSW5jLgorCQkJCTIwNjQgRWFzdG1hbiBBdmUuICMxMTMKKwkJCQlWZW50dXJhIENBIDkzMDAzLTc3ODcKKwkJCQlVTklURUQgU1RBVEVTCisKK0NDLUZFLTNDICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKK0NDRkUzQyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0QwLTA3LTkwICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCitEMDA3OTAgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0QwLTEzLTFFICAgKGhleCkJCVN1bnJleCBUZWNobm9sb2d5IENvcnAKK0QwMTMxRSAgICAgKGJhc2UgMTYpCQlTdW5yZXggVGVjaG5vbG9neSBDb3JwCisJCQkJTm8uIDE4OC0xLENodW5nIENoZW5nIFJvYWQuLFRhIFlhIFNoaWFuZworCQkJCVRhaWNodW5nICA0MjgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0QwLTE1LTRBICAgKGhleCkJCXp0ZSBjb3Jwb3JhdGlvbgorRDAxNTRBICAgICAoYmFzZSAxNikJCXp0ZSBjb3Jwb3JhdGlvbgorCQkJCTEyL0YuLHp0ZSBSJkQgYnVpbGRpbmcsa2VqaW5hbiBSb2FkLAorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitEMC0xNy02QSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQgIAorRDAxNzZBICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZCAgCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0QwLTFBLUE3ICAgKGhleCkJCVVuaVByaW50CitEMDFBQTcgICAgIChiYXNlIDE2KQkJVW5pUHJpbnQKKwkJCQlVbml0IDMwOSwgMSBFdmEgUm9hZAorCQkJCVRvcm9udG8gT250YXJpbyBNOUMgNFo1CisJCQkJQ0FOQURBCisKK0QwLTFDLUJCICAgKGhleCkJCUJlaWppbmcgQ3RpbWVzIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sIEx0ZC4KK0QwMUNCQiAgICAgKGJhc2UgMTYpCQlCZWlqaW5nIEN0aW1lcyBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJN3RoIEZsb29yLCBKaW56aG91IEJ1aWxkaW5nLCBTdXpob3UgU3RyZWV0LCBOby43OSwgSGFpZGlhbiBEaXN0cmljdCwgCisJCQkJQmVpamluZyAgMTAwMDg5CisJCQkJQ0hJTkEKKworRDAtMjMtREIgICAoaGV4KQkJQXBwbGUsIEluYy4KK0QwMjNEQiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyAgQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0QwLTI3LTg4ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC5Dby5MdGQKK0QwMjc4OCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuQ28uTHRkCisJCQkJNjYsQ2h1bmcgU2hhbiBSZC5UdS1DaGVuZworCQkJCVRhaXBlaSBIc2llbiAgMjM2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitEMC0zMS0xMCAgIChoZXgpCQlJbmdlbmljIFNlbWljb25kdWN0b3IgQ28uLEx0ZAorRDAzMTEwICAgICAoYmFzZSAxNikJCUluZ2VuaWMgU2VtaWNvbmR1Y3RvciBDby4sTHRkCisJCQkJUm9vbSAxMDgsQnVpbGRpbmcgQSxJbmZvcm1hdGlvbiBDZW50ZXIgWmhvbmdndWFuY3VuIFNvZnR3YXJlIFBhcmsgOCBEb25nYmVpd2FuZyBXZXN0IFJvYWQsSGFpZGFpbiBEaXN0cmljdAorCQkJCUJlaWppbmcgIDEwMDE5MworCQkJCUNISU5BCisKK0QwLTM3LTYxICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCitEMDM3NjEgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0QwLTU0LTJEICAgKGhleCkJCUNhbWJyaWRnZSBJbmR1c3RyaWVzKEdyb3VwKSBDby4sTHRkLgorRDA1NDJEICAgICAoYmFzZSAxNikJCUNhbWJyaWRnZSBJbmR1c3RyaWVzKEdyb3VwKSBDby4sTHRkLgorCQkJCTIyIEZsb29yLFFpbGFpIFRvd2VyOzg4OSBZaXNoYW4gUm9hZAorCQkJCVNoYW5naGFpICAyMDAyMzMKKwkJCQlDSElOQQorCitEMC01Ny00QyAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitEMDU3NEMgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitEMC01Ny04NSAgIChoZXgpCQlQYW50ZWNoIENvLiwgTHRkLgorRDA1Nzg1ICAgICAoYmFzZSAxNikJCVBhbnRlY2ggQ28uLCBMdGQuCisJCQkJMTEwLTEgT25namVvbmctUmksIFRvbmdqaW4tRXVwCisJCQkJR2ltcG8tU2kgR3lvdW5nZ2ktRG8gNDE1LTg2NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEMC01OC03NSAgIChoZXgpCQlBY3RpdmUgQ29udHJvbCBUZWNobm9sb2d5IEluYy4KK0QwNTg3NSAgICAgKGJhc2UgMTYpCQlBY3RpdmUgQ29udHJvbCBUZWNobm9sb2d5IEluYy4KKwkJCQkxODAwIEFwcGxlYnkgTGluZQorCQkJCVVuaXQgNAorCQkJCUJ1cmxpbmd0b24gT250YXJpbyBMN0wgNkExCisJCQkJQ0FOQURBCisKK0QwLTU5LUMzICAgKGhleCkJCUNlcmFNaWNybyBUZWNobm9sb2d5IENvcnBvcmF0aW9uCitEMDU5QzMgICAgIChiYXNlIDE2KQkJQ2VyYU1pY3JvIFRlY2hub2xvZ3kgQ29ycG9yYXRpb24KKwkJCQk0RiwgTm8uIDE2LTEsIFNlYy4gNiwgTWluZ2N5dWFuIEVhc3QgUm9hZAorCQkJCU5laWh1IERpc3RyaWN0CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0QwLTVBLTBGICAgKGhleCkJCUktQlQgRElHSVRBTCBDTy4sTFRECitEMDVBMEYgICAgIChiYXNlIDE2KQkJSS1CVCBESUdJVEFMIENPLixMVEQKKwkJCQkxN0YuLTgsIE5vLjg2NiwgWmhvbmd6aGVuZyBSZC4sIFpob25naGUgRGlzdAorCQkJCU5ldyBUYWlwZWkgICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0QwLTVGLUNFICAgKGhleCkJCUhpdGFjaGkgRGF0YSBTeXN0ZW1zCitEMDVGQ0UgICAgIChiYXNlIDE2KQkJSGl0YWNoaSBEYXRhIFN5c3RlbXMKKwkJCQk3NTAgQ2VudHJhbCBFeHByZXNzd2F5CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTAKKwkJCQlVTklURUQgU1RBVEVTCisKK0QwLTY2LTdCICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMVEQKK0QwNjY3QiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIFllb25ndG9uZy1ndQorCQkJCVN1d29uLXNpIEd5ZW9uZ2dpLWRvIDQ0Mzc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEMC02Ny1FNSAgIChoZXgpCQlEZWxsIEluYworRDA2N0U1ICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUzpSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCitEMC02OS05RSAgIChoZXgpCQlMVU1JTkVYIExpZ2h0aW5nIENvbnRyb2wgRXF1aXBtZW50CitEMDY5OUUgICAgIChiYXNlIDE2KQkJTFVNSU5FWCBMaWdodGluZyBDb250cm9sIEVxdWlwbWVudAorCQkJCUJlcmtlbmxhYW4gOEEKKwkJCQlIZWNodGVsLUVrc2VsIExpbWJ1cmcgMzk0MAorCQkJCUJFTEdJVU0KKworRDAtNzUtQkUgICAoaGV4KQkJUmVubyBBJmFtcDtFCitEMDc1QkUgICAgIChiYXNlIDE2KQkJUmVubyBBJmFtcDtFCisJCQkJNDY1NSBBaXJjZW50ZXIgQ2lyY2xlCisJCQkJUmVubyBOZXZhZGEgODk1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKK0QwLTdELUU1ICAgKGhleCkJCUZvcndhcmQgUGF5IFN5c3RlbXMsIEluYy4KK0QwN0RFNSAgICAgKGJhc2UgMTYpCQlGb3J3YXJkIFBheSBTeXN0ZW1zLCBJbmMuCisJCQkJOTUzMSBXZXN0IDc4dGggU3QuLCAjMjQ1CisJCQkJRWRlbiBQcmFpcmllIE1OIDU1MzQ0CisJCQkJVU5JVEVEIFNUQVRFUworCitEMC04OS05OSAgIChoZXgpCQlBUENPTiwgSW5jLgorRDA4OTk5ICAgICAoYmFzZSAxNikJCUFQQ09OLCBJbmMuCisJCQkJOTI1NSBTVyBQaW9uZWVyIENvdXJ0CisJCQkJV2lsc29udmlsbGUgT1IgOTcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0QwLThDLUI1ICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCitEMDhDQjUgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlEYWxsYXMgVFggNzUyNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0QwLThDLUZGICAgKGhleCkJCVVQV0lTIEFCCitEMDhDRkYgICAgIChiYXNlIDE2KQkJVVBXSVMgQUIKKwkJCQlCb3ggMzAwMAorCQkJCVVwcHNhbGEgVXBwc2FsYSA3NTAwMworCQkJCVNXRURFTgorCitEMC05My1GOCAgIChoZXgpCQlTdG9uZXN0cmVldCBPbmUgTExDCitEMDkzRjggICAgIChiYXNlIDE2KQkJU3RvbmVzdHJlZXQgT25lIExMQworCQkJCTk5NjAgQ29ycG9yYXRlIENhbXB1cyBEcml2ZQorCQkJCVN1aXRlIDMzMDAKKwkJCQlMb3Vpc3ZpbGxlIEtZIDQwMjIzCisJCQkJVU5JVEVEIFNUQVRFUworCitEMC05Qi0wNSAgIChoZXgpCQlFbXRyb25peAorRDA5QjA1ICAgICAoYmFzZSAxNikJCUVtdHJvbml4CisJCQkJNSMgR2FvcGVuZyBEYWRhbworCQkJCVJvb20gNDA0IywgQnVpbGRpbmcgQgorCQkJCUNoZW5nZHUgIDYxMDA0MQorCQkJCUNISU5BCisKK0QwLUEzLTExICAgKGhleCkJCU5ldWJlcmdlciBHZWLvv711ZGVhdXRvbWF0aW9uIEdtYkgKK0QwQTMxMSAgICAgKGJhc2UgMTYpCQlOZXViZXJnZXIgR2Vi77+9dWRlYXV0b21hdGlvbiBHbWJICisJCQkJT2JlcmVyIEthaXNlcndlZyA2CisJCQkJUm90aGVuYnVyZyBvLmQuVC4gQmF5ZXJuIDkxNTQxCisJCQkJR0VSTUFOWQorCitEMC1BRS1FQyAgIChoZXgpCQlBbHBoYSBOZXR3b3JrcyBJbmMuCitEMEFFRUMgICAgIChiYXNlIDE2KQkJQWxwaGEgTmV0d29ya3MgSW5jLgorCQkJCU5vLjggTGktc2hpbmcgU2V2ZW50aCBSb2FkLFNjaWVuY2UtYmFzZWQgSW5kdXN0cmlhbCBQYXJrCisJCQkJSHNpbmNodSBUYWl3YW4gMzAwCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitEMC1BRi1CNiAgIChoZXgpCQlMaW5rdG9wIFRlY2hub2xvZ3kgQ28uLCBMVEQKK0QwQUZCNiAgICAgKGJhc2UgMTYpCQlMaW5rdG9wIFRlY2hub2xvZ3kgQ28uLCBMVEQKKwkJCQkyRiBHdWFuZ3llIEJ1bGlkaW5nLCBUb3JjaCBIaS1UZWNoLCAKKwkJCQlYaWFtZW4gRnVqaWFuIDM2MTAwNgorCQkJCUNISU5BCisKK0QwLUIzLTNGICAgKGhleCkJCVNIRU5aSEVOIFRJTk5PIE1PQklMRSBURUNITk9MT0dZIENPLixMVEQuCitEMEIzM0YgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gVElOTk8gTU9CSUxFIFRFQ0hOT0xPR1kgQ08uLExURC4KKwkJCQk0L0YuLEgtMyBCdWlsZGluZyxPQ1QgRWFzdGVybiBsbmR1c3RyaWFsIFBhcmsuIE5PLjEgWGlhbmdTaGFuIEVhc3QgUm9hZC4sCisJCQkJTmFuIFNoYW4gRGlzdHJpY3QsCisJCQkJR1VBTkdET05HIFNIRU5aSEVOIDUxODA1MworCQkJCUNISU5BCisKK0QwLUI1LTNEICAgKGhleCkJCVNFUFJPIFJPQk9USVFVRQorRDBCNTNEICAgICAoYmFzZSAxNikJCVNFUFJPIFJPQk9USVFVRQorCQkJCVpJIEFjdGktRXN0IExlcyBBam9uY3MKKwkJCQlCUDg0CisJCQkJTEEgUk9DSEUgU1VSIFlPTiAgRjg1MDAwCisJCQkJRlJBTkNFCisKK0QwLUJCLTgwICAgKGhleCkJCVNITCBUZWxlbWVkaWNpbmUgSW50ZXJuYXRpb25hbCBMdGQuCitEMEJCODAgICAgIChiYXNlIDE2KQkJU0hMIFRlbGVtZWRpY2luZSBJbnRlcm5hdGlvbmFsIEx0ZC4KKwkJCQk5MCBZaWdhbCBBbG9uCisJCQkJVGVsIEF2aXYgIDY3ODkxCisJCQkJSVNSQUVMCisKK0QwLUMxLUIxICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorRDBDMUIxICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEMC1DMi04MiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitEMEMyODIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRDAtQ0YtNUUgICAoaGV4KQkJRW5lcmd5IE1pY3JvIEFTCitEMENGNUUgICAgIChiYXNlIDE2KQkJRW5lcmd5IE1pY3JvIEFTCisJCQkJU2FuZGFrZXJ2ZWllbiAxMTgKKwkJCQlPc2xvICBOLTA0ODQKKwkJCQlOT1JXQVkKKworRDAtRDAtRkQgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworRDBEMEZEICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRDAtRDItMTIgICAoaGV4KQkJSzJORVQgQ28uLEx0ZC4KK0QwRDIxMiAgICAgKGJhc2UgMTYpCQlLMk5FVCBDby4sTHRkLgorCQkJCUsyTmV0IEJ1aWxkaW5nCisJCQkJNTAzLTI1IFNoaW53b2wtZG9uZyBZYW5nY2hlb24tZ3UgCisJCQkJU2VvdWwgMTU4LTA5MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEMC1EMi04NiAgIChoZXgpCQlCZWNrbWFuIENvdWx0ZXIgQmlvbWVkaWNhbCBLLksuCitEMEQyODYgICAgIChiYXNlIDE2KQkJQmVja21hbiBDb3VsdGVyIEJpb21lZGljYWwgSy5LLgorCQkJCTQ1NC0zMiBIaWdhc2hpbm8sCisJCQkJTmFnYWl6dW1pLWNobywgU3VudG8tZ3VuLCBTaGl6dW9rYS1rZW4gNDExLTA5NDMKKwkJCQlKQVBBTgorCitEMC1EMy1GQyAgIChoZXgpCQlNaW9zLCBMdGQuCitEMEQzRkMgICAgIChiYXNlIDE2KQkJTWlvcywgTHRkLgorCQkJCTEzMDEgQmFuayBvZiBBbWVyaWNhIFRvd2VyCisJCQkJMTIgSGFyY291dCBSb2FkCisJCQkJQ2VudHJhbCAgLgorCQkJCUhPTkcgS09ORworCitEMC1EQi0zMiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorRDBEQjMyICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJWXJ0dGlwZWxsb250aWUgNgorCQkJCU91bHUgIDkwMjMwCisJCQkJRklOTEFORAorCitEMC1ERi05QSAgIChoZXgpCQlMaXRlb24gVGVjaG5vbG9neSBDb3Jwb3JhdGlvbgorRDBERjlBICAgICAoYmFzZSAxNikJCUxpdGVvbiBUZWNobm9sb2d5IENvcnBvcmF0aW9uCisJCQkJNEYsOTAsQ2hpZW4gMSBSb2FkLCBDaHVuZ0hvLiAKKwkJCQlUYWlwZWkgIDIzNTg1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitEMC1ERi1DNyAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKK0QwREZDNyAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRDAtRTMtNDcgICAoaGV4KQkJWW9nYQorRDBFMzQ3ICAgICAoYmFzZSAxNikJCVlvZ2EKKwkJCQlUYW1tc2FhcmUgdGVlIDQ3CisJCQkJVGFsbGlubiBIYXJqdW1hYSAxMTMxNgorCQkJCUVTVE9OSUEKKworRDAtRTQtMEIgICAoaGV4KQkJV2VhcmFibGUgSW5jLgorRDBFNDBCICAgICAoYmFzZSAxNikJCVdlYXJhYmxlIEluYy4KKwkJCQkzODI1IENoYXJsZXMgRHIuCisJCQkJTm9ydGhicm9vayBJTCA2MDA2MgorCQkJCVVOSVRFRCBTVEFURVMKKworRDAtRTUtNEQgICAoaGV4KQkJUGFjZSBwbGMKK0QwRTU0RCAgICAgKGJhc2UgMTYpCQlQYWNlIHBsYworCQkJCVZpY3RvcmlhIFJvYWQKKwkJCQlTYWx0YWlyZSwKKwkJCQlXZXN0IFlvcmtzaGlyZSBFbmdsYW5kIEJEMTggM0xGCisJCQkJVU5JVEVEIEtJTkdET00KKworRDAtRUItOUUgICAoaGV4KQkJU2Vvd29vIEluYy4KK0QwRUI5RSAgICAgKGJhc2UgMTYpCQlTZW93b28gSW5jLgorCQkJCUppblN1bmcgQi9EIDEtMiBHdW5qYS1kb25nLCBHd2FuZ2ppbi1ndSwgCisJCQkJU2VvdWwgIDE0My04MzcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRDAtRjAtREIgICAoaGV4KQkJRXJpY3Nzb24KK0QwRjBEQiAgICAgKGJhc2UgMTYpCQlFcmljc3NvbgorCQkJCTEwMCBIZWFkcXVhcnRlcnMgRHIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRDAtRjctM0IgICAoaGV4KQkJSGVsbXV0IE1hdWVsbCBHbWJICitEMEY3M0IgICAgIChiYXNlIDE2KQkJSGVsbXV0IE1hdWVsbCBHbWJICisJCQkJQW0gUm9zZW5o77+9Z2VsIDEtNworCQkJCVZlbGJlcnQgIDQyNTUzCisJCQkJR0VSTUFOWQorCitENC0wMC0wRCAgIChoZXgpCQlQaG9lbml4IEJyb2FkYmFuZCBUZWNobm9sb2dpZXMsIExMQy4KK0Q0MDAwRCAgICAgKGJhc2UgMTYpCQlQaG9lbml4IEJyb2FkYmFuZCBUZWNobm9sb2dpZXMsIExMQy4KKwkJCQk1ODkgQmV0aGxlaGVtIFBpa2UKKwkJCQlTdWl0ZSAxMDAwCisJCQkJTW9udGdvbWVyeXZpbGxlIFBBIDE4OTM2CisJCQkJVU5JVEVEIFNUQVRFUworCitENC0wMi00QSAgIChoZXgpCQlEZWxwaGlhbiBTeXN0ZW1zIExMQworRDQwMjRBICAgICAoYmFzZSAxNikJCURlbHBoaWFuIFN5c3RlbXMgTExDCisJCQkJNzIwIERhcnRtb3V0aCBMYW5lCisJCQkJQnVmZmFsbyBHcm92ZSBJTCA2MDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworRDQtMTEtRDYgICAoaGV4KQkJU2hvdFNwb3R0ZXIsIEluYy4KK0Q0MTFENiAgICAgKGJhc2UgMTYpCQlTaG90U3BvdHRlciwgSW5jLgorCQkJCTEwNjAgVGVycmEgQmVsbGEgQXZlLgorCQkJCU1vdW50YWluIFZpZXcgQ0EgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTEyLTk2ICAgKGhleCkJCUFub2JpdCBUZWNobm9sb2dpZXMgTHRkLgorRDQxMjk2ICAgICAoYmFzZSAxNikJCUFub2JpdCBUZWNobm9sb2dpZXMgTHRkLgorCQkJCTggSGFzYWRuYW90IFN0LgorCQkJCVBPQiAxMjE0NworCQkJCUhlcnplbGl5YSBQaXR1YWNoICAgNDY3MjgKKwkJCQlJU1JBRUwKKworRDQtMTItQkIgICAoaGV4KQkJUXVhZHJhbnQgQ29tcG9uZW50cyBJbmMuIEx0ZAorRDQxMkJCICAgICAoYmFzZSAxNikJCVF1YWRyYW50IENvbXBvbmVudHMgSW5jLiBMdGQKKwkJCQlVbml0IDUsIDE3L0YsIE1ldHJvIExvZnQsCisJCQkJMzggS3dhaSBIZWkgU3RyZWV0LAorCQkJCUt3YWkgQ2h1bmcsIE5ldyBUZXJyaXRvcnkgCisJCQkJSE9ORyBLT05HCisKK0Q0LTFDLTFDICAgKGhleCkJCVJDRiBTLlAuQS4KK0Q0MUMxQyAgICAgKGJhc2UgMTYpCQlSQ0YgUy5QLkEuCisJCQkJVmlhIFJhZmZhZWxsbyBTYW56aW8gMTMKKwkJCQlSZWdnaW8gRW1pbGlhIEl0YWx5IDQyMTI0CisJCQkJSVRBTFkKKworRDQtMUUtMzUgICAoaGV4KQkJVE9ITyBFbGVjdHJvbmljcyBJTkMuCitENDFFMzUgICAgIChiYXNlIDE2KQkJVE9ITyBFbGVjdHJvbmljcyBJTkMuCisJCQkJMS0xMy0yMSBUYW5hc2hpb2RhLCBDaHVvLUt1CisJCQkJU2FnYW1paGFyYS1DaXR5IEthbmFnYXdhIDI1Mi0wMjQ1CisJCQkJSkFQQU4KKworRDQtMUYtMEMgICAoaGV4KQkJVFZJIFZpc2lvbiBPeQorRDQxRjBDICAgICAoYmFzZSAxNikJCVRWSSBWaXNpb24gT3kKKwkJCQlBc2VudGFqYW5rYXR1IDMKKwkJCQlIZWxzaW5raSAgMDA4ODAKKwkJCQlGSU5MQU5ECisKK0Q0LTIwLTZEICAgKGhleCkJCUhUQyBDb3Jwb3JhdGlvbgorRDQyMDZEICAgICAoYmFzZSAxNikJCUhUQyBDb3Jwb3JhdGlvbgorCQkJCU5vLiAyMywgWGluZ2h1YSBSZCwgCisJCQkJVGFveXVhbiBDb3VudHkgVGFpd2FuIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRDQtMjgtQjIgICAoaGV4KQkJaW9CcmlkZ2UsIEluYy4KK0Q0MjhCMiAgICAgKGJhc2UgMTYpCQlpb0JyaWRnZSwgSW5jLgorCQkJCTIyNSBDZWRhciBIaWxsIFN0cmVldAorCQkJCVN1aXRlIDIwMAorCQkJCU1hcmxib3JvdWdoIE1BIDAxNzUyCisJCQkJVU5JVEVEIFNUQVRFUworCitENC0yQy0zRCAgIChoZXgpCQlTa3kgTGlnaHQgRGlnaXRhbCBMaW1pdGVkCitENDJDM0QgICAgIChiYXNlIDE2KQkJU2t5IExpZ2h0IERpZ2l0YWwgTGltaXRlZAorCQkJCVJtLiAxMDA5IEt3b25nIFNhbmcgSG9uZyBDZW50cmUsIDE1MS0xNTMgSG9pIEJ1biBSb2FkLCBLd3VuIFRvbmcsIEtvd2xvb24sIAorCQkJCUhvbmcgS29uZyAgOTk5MDc3CisJCQkJQ0hJTkEKKworRDQtM0EtRTkgICAoaGV4KQkJRE9OR0dVQU4gaXB0IElORFVTVFJJQUwgQ08uLCBMVEQKK0Q0M0FFOSAgICAgKGJhc2UgMTYpCQlET05HR1VBTiBpcHQgSU5EVVNUUklBTCBDTy4sIExURAorCQkJCU5vLjY2LTEuSXN0IE5ldyBBcmVhLCBOYW5zaGUgRGlzdC4sIENoaWdhbmcsSHVtZW4sCisJCQkJRG9uZ2d1YW4gR3Vhbmdkb25nIDUyMzkwCisJCQkJQ0hJTkEKKworRDQtM0QtNjcgICAoaGV4KQkJQ2FybWEgSW5kdXN0cmllcyBJbmMuCitENDNENjcgICAgIChiYXNlIDE2KQkJQ2FybWEgSW5kdXN0cmllcyBJbmMuCisJCQkJMTMyIFdhbHNoIFJvYWQKKwkJCQlMaW5kc2F5IE9udGFyaW8gSzlWIDRSMworCQkJCUNBTkFEQQorCitENC0zRC03RSAgIChoZXgpCQlNaWNyby1TdGFyIEludCdsIENvLCBMdGQKK0Q0M0Q3RSAgICAgKGJhc2UgMTYpCQlNaWNyby1TdGFyIEludCdsIENvLCBMdGQKKwkJCQlOby42OSwgTGlkZSBTdC4sIEpob25naGUgQ2l0eQorCQkJCVRhaXBlaSBDb3VudHkgIDIzNQorCQkJCVRBSVdBTiwgUFJPVklOQ0UgT0YgQ0hJTkEKKworRDQtNDMtQTggICAoaGV4KQkJQ2hhbmd6aG91IEhhb2ppZSBFbGVjdHJpYyBDby4sIEx0ZC4KK0Q0NDNBOCAgICAgKGJhc2UgMTYpCQlDaGFuZ3pob3UgSGFvamllIEVsZWN0cmljIENvLiwgTHRkLgorCQkJCU5vLiAxNTgsCisJCQkJV2VzdCBIZWhhaSBSb2FkLCBOZXcgRGlzdHJpY3QsCisJCQkJQ2hhbmd6aG91IEppYW5nc3UgMjEzMDIyCisJCQkJQ0hJTkEKKworRDQtNEItNUUgICAoaGV4KQkJVEFJWU8gWVVERU4gQ08uLCBMVEQuCitENDRCNUUgICAgIChiYXNlIDE2KQkJVEFJWU8gWVVERU4gQ08uLCBMVEQuCisJCQkJOC0xLCBTYWthZS1jaG8KKwkJCQlUYWthc2FraS1zaGkgR3VubWEgMzcwLTg1MjIKKwkJCQlKQVBBTgorCitENC00Qy0yNCAgIChoZXgpCQlWdXBwYWxhbXJpdGhhIE1hZ25ldGljIENvbXBvbmVudHMgTFRECitENDRDMjQgICAgIChiYXNlIDE2KQkJVnVwcGFsYW1yaXRoYSBNYWduZXRpYyBDb21wb25lbnRzIExURAorCQkJCTNyZCBGbG9vciwgMzA3ICxNeSBIb21lIEFzaG9rYSBDaGFtYmVycyxTLlAgUm9hZCwgCisJCQkJU2VjdW5kZXJhYmFkIEFuZGhyYVByYWRlc2ggNTAwMDAzCisJCQkJSU5ESUEKKworRDQtNEMtQTcgICAoaGV4KQkJSW5mb3JtdGVraG5pa2EgJiBDb21tdW5pY2F0aW9uLCBMTEMKK0Q0NENBNyAgICAgKGJhc2UgMTYpCQlJbmZvcm10ZWtobmlrYSAmIENvbW11bmljYXRpb24sIExMQworCQkJCTEsIGJ1aWxkLiAyLzEsIFZlcmhuYXlhCisJCQkJS3Jhc25vc2Vsc2theWEgU3QuCisJCQkJTW9zY293ICAxMDcxNDAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworRDQtNEYtODAgICAoaGV4KQkJS2VtcGVyIERpZ2l0YWwgR21iSAorRDQ0RjgwICAgICAoYmFzZSAxNikJCUtlbXBlciBEaWdpdGFsIEdtYkgKKwkJCQlLb2VuaWdzd2FsbCAxNi0xOAorCQkJCVJlY2tsaW5naGF1c2VuIE5vcnRoLVJoaW5lLVdlc3RwaGFsaWEgNDU2NTcKKwkJCQlHRVJNQU5ZCisKK0Q0LTUwLTdBICAgKGhleCkJCUNFSVZBIExvZ2ljLCBJbmMKK0Q0NTA3QSAgICAgKGJhc2UgMTYpCQlDRUlWQSBMb2dpYywgSW5jCisJCQkJMjE0IEUgTWFnbm9saWEgQmx2ZAorCQkJCUJ1cmJhbmsgQ0EgOTE1MDIKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTUyLTUxICAgKGhleCkJCUlCVCBJbmdlbmlldXJidXJlYXUgQnJvZW5uaW1hbm4gVGh1bgorRDQ1MjUxICAgICAoYmFzZSAxNikJCUlCVCBJbmdlbmlldXJidXJlYXUgQnJvZW5uaW1hbm4gVGh1bgorCQkJCUthc2VybmVuc3RyYXNzZSA1CisJCQkJVGh1biBCZXJuIDM2MDAKKwkJCQlTV0lUWkVSTEFORAorCitENC01Mi05NyAgIChoZXgpCQluU1RSRUFNUyBUZWNobm9sb2dpZXMsIEluYy4KK0Q0NTI5NyAgICAgKGJhc2UgMTYpCQluU1RSRUFNUyBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQkxMEYtMiwgTm8uIDMwMiwgUnVpZ3VhbmcgUmQuLCBOZWlodSBEaXN0cmljdCwKKwkJCQlUYWlwZWkgQ2l0eSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitENC01My1BRiAgIChoZXgpCQlWSUdPIFN5c3RlbSBTLkEuCitENDUzQUYgICAgIChiYXNlIDE2KQkJVklHTyBTeXN0ZW0gUy5BLgorCQkJCTEyOS8xMzMgUG96bmFuc2thIHN0cgorCQkJCU96YXJvdyBNYXpvd2llY2tpIE1hem93aWVja2llIDA1LTg1MAorCQkJCVBPTEFORAorCitENC01QS1CMiAgIChoZXgpCQlHYWxsZW9uIFN5c3RlbXMKK0Q0NUFCMiAgICAgKGJhc2UgMTYpCQlHYWxsZW9uIFN5c3RlbXMKKwkJCQlVbml0IDksIEZvcnRudW0gQ2xvc2UKKwkJCQlLaXR0cyBHcmVlbgorCQkJCUJpcm1pbmdoYW0gV2VzdCBNaWRsYW5kcyBCMzMgMExHCisJCQkJVU5JVEVEIEtJTkdET00KKworRDQtNUQtNDIgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0Q0NUQ0MiAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1ICA5MDIzMAorCQkJCUZJTkxBTkQKKworRDQtNjYtQTggICAoaGV4KQkJUmllZG8gTmV0d29ya3MgR21iSAorRDQ2NkE4ICAgICAoYmFzZSAxNikJCVJpZWRvIE5ldHdvcmtzIEdtYkgKKwkJCQlXYXJwZWxzdHJhc3NlIDEwCisJCQkJRHVlZGluZ2VuIEZSIDMxODYKKwkJCQlTV0lUWkVSTEFORAorCitENC02Qy1CRiAgIChoZXgpCQlHb29kcmljaCBJU1IKK0Q0NkNCRiAgICAgKGJhc2UgMTYpCQlHb29kcmljaCBJU1IKKwkJCQk2NjAwIEd1bHRvbiBDcnQKKwkJCQlBbGJ1cXVlcnF1ZSBOTSA4NzEwOQorCQkJCVVOSVRFRCBTVEFURVMKKworRDQtNkMtREEgICAoaGV4KQkJQ1NNIEdtYkgKK0Q0NkNEQSAgICAgKGJhc2UgMTYpCQlDU00gR21iSAorCQkJCVJhaWZmZWlzZW5zdHIuIDM0CisJCQkJRmlsZGVyc3RhZHQgQmFkZW4tV/xydHRlbWJlcmcgNzA3OTQKKwkJCQlHRVJNQU5ZCisKK0Q0LTZGLTQyICAgKGhleCkJCVdBWEVTUyBVU0EgSW5jCitENDZGNDIgICAgIChiYXNlIDE2KQkJV0FYRVNTIFVTQSBJbmMKKwkJCQkxNDAxIERvdmUgU3RyZWV0CisJCQkJU3VpdGUgMjIwCisJCQkJTmV3cG9ydCBCZWFjaCBDQSA5MjY2MAorCQkJCVVOSVRFRCBTVEFURVMKKworRDQtNzktQzMgICAoaGV4KQkJQ2FtZXJvbmV0IEdtYkggJmFtcDsgQ28uIEtHCitENDc5QzMgICAgIChiYXNlIDE2KQkJQ2FtZXJvbmV0IEdtYkggJmFtcDsgQ28uIEtHCisJCQkJRWxiZXJmZWxkZXIgU3RyYXNzZSA5NgorCQkJCVJlbXNjaGVpZCBOUlcgNDI4NTMKKwkJCQlHRVJNQU5ZCisKK0Q0LTdCLTc1ICAgKGhleCkJCUhBUlRJTkcgRWxlY3Ryb25pY3MgR21iSCAmIENvLiBLRworRDQ3Qjc1ICAgICAoYmFzZSAxNikJCUhBUlRJTkcgRWxlY3Ryb25pY3MgR21iSCAmIENvLiBLRworCQkJCU1hcmllbndlcmRlcnN0ci4gMworCQkJCUVzcGVsa2FtcCBOb3J0aCBSaGluZSBXZXN0cGhhbGlhIDMyMzM5CisJCQkJR0VSTUFOWQorCitENC04Mi0zRSAgIChoZXgpCQlBcmdvc3kgVGVjaG5vbG9naWVzLCBMdGQuCitENDgyM0UgICAgIChiYXNlIDE2KQkJQXJnb3N5IFRlY2hub2xvZ2llcywgTHRkLgorCQkJCTczLTIyMSBIYXlzdGFjayBSb2FkCisJCQkJUGFsbSBEZXNlcnQgQ0EgOTIyNjAKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTg1LTY0ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CitENDg1NjQgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTWFpbGNvZGUgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LTg3LUQ4ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKK0Q0ODdEOCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Q0LTg4LTkwICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorRDQ4ODkwICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitENC04Qy1CNSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitENDhDQjUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRDQtOEYtQUEgICAoaGV4KQkJU29nZWNhbSBJbmR1c3RyaWFsLCBTLkEuCitENDhGQUEgICAgIChiYXNlIDE2KQkJU29nZWNhbSBJbmR1c3RyaWFsLCBTLkEuCisJCQkJUm9zYWxpbmQgRnJhbmtsaW4sIDIyLTI0CisJCQkJUFRBIENhbXBhbmlsbGFzCisJCQkJTWFsYWdhICAyOTU5MAorCQkJCVNQQUlOCisKK0Q0LTkxLUFGICAgKGhleCkJCUVsZWN0cm9hY3VzdGljYSBHZW5lcmFsIEliZXJpY2EsIFMuQS4KK0Q0OTFBRiAgICAgKGJhc2UgMTYpCQlFbGVjdHJvYWN1c3RpY2EgR2VuZXJhbCBJYmVyaWNhLCBTLkEuCisJCQkJQXZkYSBBbG1vemFyYSwgNzkKKwkJCQlaYXJhZ296YSAgNTAwMDMKKwkJCQlTUEFJTgorCitENC05NC01QSAgIChoZXgpCQlDT1NNTyBDTy4sIExURAorRDQ5NDVBICAgICAoYmFzZSAxNikJCUNPU01PIENPLiwgTFRECisJCQkJMS0xMiwgSGlnYXNoaS1Hb3RhbmRhIDItY2hvbWUKKwkJCQlTaGluYWdhd2Eta3UgVG9reW8gMTQxLTAwMjIKKwkJCQlKQVBBTgorCitENC05NC1BMSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworRDQ5NEExICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCitENC05Ni1ERiAgIChoZXgpCQlTVU5HSklOIEMmVCBDTy4sTFRECitENDk2REYgICAgIChiYXNlIDE2KQkJU1VOR0pJTiBDJlQgQ08uLExURAorCQkJCURhZXlhCisJCQkJMzYyLTUKKwkJCQlTaGV1bmcgR3llb25nZ2kgNDI5LTgwOQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitENC05QS0yMCAgIChoZXgpCQlBcHBsZSwgSW5jCitENDlBMjAgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYworCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworRDQtOUMtMjggICAoaGV4KQkJSmF5QmlyZCBHZWFyIExMQworRDQ5QzI4ICAgICAoYmFzZSAxNikJCUpheUJpcmQgR2VhciBMTEMKKwkJCQkyODI1IEVhc3QgQ290dG9ud29vZCBQYXJrd2F5ICM1MDAKKwkJCQlTYWx0IExha2UgQ2l0eSBVVCA4NDEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworRDQtOUMtOEUgICAoaGV4KQkJVW5pdmVyc2l0eSBvZiBGVUtVSQorRDQ5QzhFICAgICAoYmFzZSAxNikJCVVuaXZlcnNpdHkgb2YgRlVLVUkKKwkJCQkzLTktMSBCdW5reW8KKwkJCQlGdWt1aSBDaXR5ICA5MTAtODUwNworCQkJCUpBUEFOCisKK0Q0LTlFLTZEICAgKGhleCkJCVd1aGFuIFpob25neXVhbiBIdWFkaWFuIFNjaWVuY2UgJiBUZWNobm9sb2d5IENvLiwKK0Q0OUU2RCAgICAgKGJhc2UgMTYpCQlXdWhhbiBaaG9uZ3l1YW4gSHVhZGlhbiBTY2llbmNlICYgVGVjaG5vbG9neSBDby4sCisJCQkJTk8uNiwgNiBSb2FkLCBTY2kuICYgVGVjaC4gcmVnaW9uIG9mIEhVU1QsIEVhc3QgTGFrZSBEZXZlbG9wbWVudCBab25lLAorCQkJCVd1aGFuICBIdWJlaSA0MzAyMjMKKwkJCQlDSElOQQorCitENC1BMC0yQSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitENEEwMkEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRDQtQTQtMjUgICAoaGV4KQkJU01BWCBUZWNobm9sb2d5IENvLiwgTHRkLgorRDRBNDI1ICAgICAoYmFzZSAxNikJCVNNQVggVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQkyRi4sIE5vLiAzLCBXdXF1YW4gM3JkLCBXdWd1IERpc3QuCisJCQkJTmV3IFRhaXBlaSBDaXR5ICAyNDgKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0Q0LUE5LTI4ICAgKGhleCkJCUdyZWVuV2F2ZSBSZWFsaXR5IEluYworRDRBOTI4ICAgICAoYmFzZSAxNikJCUdyZWVuV2F2ZSBSZWFsaXR5IEluYworCQkJCTM5IFBhcmtlcgorCQkJCUlydmluZSBDYWxpZm9ybmlhIDkyNjE4CisJCQkJVU5JVEVEIFNUQVRFUworCitENC1BQS1GRiAgIChoZXgpCQlNSUNSTyBXT1JMRCAKK0Q0QUFGRiAgICAgKGJhc2UgMTYpCQlNSUNSTyBXT1JMRCAKKwkJCQkxOTM3MCBWQU4gTkVTUyBBVkUgCisJCQkJVE9SUkFOQ0UgIENBIDkwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCitENC1BRS01MiAgIChoZXgpCQlEZWxsIEluYworRDRBRTUyICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUzpSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCitENC1CRS1EOSAgIChoZXgpCQlEZWxsIEluYworRDRCRUQ5ICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgV2F5LCBNUzpSUjUtNDUKKwkJCQlSb3VuZCBSb2NrIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCitENC1DMS1GQyAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorRDRDMUZDICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJWXJ0dGlwZWxsb250aWUgNgorCQkJCU91bHUgIDkwMjMwCisJCQkJRklOTEFORAorCitENC1DNy02NiAgIChoZXgpCQlBY2VudGljIEdtYkgKK0Q0Qzc2NiAgICAgKGJhc2UgMTYpCQlBY2VudGljIEdtYkgKKwkJCQlWZW5sb2VyIFN0cmFzc2UgMTUxLTE1MworCQkJCUNvbG9nbmUgIDUwNjcyCisJCQkJR0VSTUFOWQorCitENC1DQS02RCAgIChoZXgpCQlSb3V0ZXJib2FyZC5jb20KK0Q0Q0E2RCAgICAgKGJhc2UgMTYpCQlSb3V0ZXJib2FyZC5jb20KKwkJCQlNaWtyb3Rpa2xzIFNJQQorCQkJCVBlcm5hdmFzIDQ2CisJCQkJUmlnYSAgTFYtMTAwOQorCQkJCUxBVFZJQQorCitENC1DQi1BRiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorRDRDQkFGICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTkwCisJCQkJRklOTEFORAorCitENC1DRS1COCAgIChoZXgpCQlFbmF0ZWwgTFRECitENENFQjggICAgIChiYXNlIDE2KQkJRW5hdGVsIExURAorCQkJCTY2IFRyZWZmZXJzIFJvYWQKKwkJCQlDaHJpc3RjaHVyY2ggQ2FudGVyYnVyeSA4MDQyCisJCQkJTkVXIFpFQUxBTkQKKworRDQtRDEtODQgICAoaGV4KQkJQURCIEJyb2FkYmFuZCBJdGFsaWEKK0Q0RDE4NCAgICAgKGJhc2UgMTYpCQlBREIgQnJvYWRiYW5kIEl0YWxpYQorCQkJCXZpYSBTYXJjYSAzMzYKKwkJCQlNaWxhbm8gIDIwMTI2CisJCQkJSVRBTFkKKworRDQtRDItNDkgICAoaGV4KQkJUG93ZXIgRXRoZXJuZXQKK0Q0RDI0OSAgICAgKGJhc2UgMTYpCQlQb3dlciBFdGhlcm5ldAorCQkJCTR0aCBGbG9vciwgSG9sYm9ybiBHYXRlCisJCQkJMjYgU291dGhhbXB0b24gQnVpbGRpbmdzCisJCQkJTG9uZG9uICBXQzJBIDFBSCAKKwkJCQlVTklURUQgS0lOR0RPTQorCitENC1ENy00OCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitENEQ3NDggICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitENC1EOC05OCAgIChoZXgpCQlLb3JlYSBDTk8gVGVjaCBDby4sIEx0ZAorRDREODk4ICAgICAoYmFzZSAxNikJCUtvcmVhIENOTyBUZWNoIENvLiwgTHRkCisJCQkJIzI0MC0xLFVpZ29rLVJpCisJCQkJWWVvbmdzdW4tTXllb24KKwkJCQlNdW5neWVvbmctU2kgR3llb25nc2FuZ2J1ay1kbyA3NDUtODUzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Q0LURGLTU3ICAgKGhleCkJCUFscGluaW9uIE1lZGljYWwgU3lzdGVtcworRDRERjU3ICAgICAoYmFzZSAxNikJCUFscGluaW9uIE1lZGljYWwgU3lzdGVtcworCQkJCTFGIFZlcmRpIFRvd2VyIDIyMi0yMiAKKwkJCQlHdXJvMy1Eb25nIEd1cm8tR3UgCisJCQkJU2VvdWwgIDE4MS04NDgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRDQtRTMtMkMgICAoaGV4KQkJUy4gU2llZGxlICYgU29obmUKK0Q0RTMyQyAgICAgKGJhc2UgMTYpCQlTLiBTaWVkbGUgJiBTb2huZQorCQkJCUJyZWdzdHJhc3NlIDEKKwkJCQlGdXJ0d2FuZ2VuICBELTc4MTIwCisJCQkJR0VSTUFOWQorCitENC1FMy0zRiAgIChoZXgpCQlBbGNhdGVsLUx1Y2VudAorRDRFMzNGICAgICAoYmFzZSAxNikJCUFsY2F0ZWwtTHVjZW50CisJCQkJNjAwIE1hcmNoIFJvYWQKKwkJCQlLYW5hdGEgT250YXJpbyBLMksgMkU2CisJCQkJQ0FOQURBCisKK0Q0LUU4LUIyICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKK0Q0RThCMiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Q0LUVDLTBDICAgKGhleCkJCUhhcmxleS1EYXZpZHNvbiBNb3RvciBDb21wYW55CitENEVDMEMgICAgIChiYXNlIDE2KQkJSGFybGV5LURhdmlkc29uIE1vdG9yIENvbXBhbnkKKwkJCQkzNzAwIFcuIEp1bmVhdSBBdmVudWUKKwkJCQlNaWx3YXVrZWUgV2lzY29uc2luIDUzMjA4CisJCQkJVU5JVEVEIFNUQVRFUworCitENC1GMC0yNyAgIChoZXgpCQlOYXZldGFzIEVuZXJneSBNYW5hZ2VtZW50CitENEYwMjcgICAgIChiYXNlIDE2KQkJTmF2ZXRhcyBFbmVyZ3kgTWFuYWdlbWVudAorCQkJCTE3QSBEZWJlbiBNaWxsIEJ1c2luZXNzIENlbnRyZQorCQkJCU9sZCBNYWx0aW5ncyBBcHByb2FjaAorCQkJCVdvb2RicmlkZ2UgU3VmZm9sayBJUDEyIDFCTAorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0Q0LUYwLUI0ICAgKGhleCkJCU5hcGNvIFNlY3VyaXR5IFRlY2hub2xvZ2llcworRDRGMEI0ICAgICAoYmFzZSAxNikJCU5hcGNvIFNlY3VyaXR5IFRlY2hub2xvZ2llcworCQkJCTMzMyBCYXl2aWV3IEF2ZQorCQkJCUFtaXR5dmlsbGUgTlkgMTE3MDEKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q0LUYxLTQzICAgKGhleCkJCUlQUk9BRC4sSW5jCitENEYxNDMgICAgIChiYXNlIDE2KQkJSVBST0FELixJbmMKKwkJCQkjNTA1IEJ5dWtzYW4gZGlnaXRhbCB2YWxsZXkgNywgMTcwLTEzLAorCQkJCUd1cm8tMy1Eb25nLCBHdXJvLWd1CisJCQkJU2VvdWwgIDE1Mi04NDcKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRDQtRjYtM0YgICAoaGV4KQkJSUVBIFMuUi5MLgorRDRGNjNGICAgICAoYmFzZSAxNikJCUlFQSBTLlIuTC4KKwkJCQlFdmEgUGVyb24gNDQ2OAorCQkJCVJvc2FyaW8gU2FudGEgRmUgUzIwMDJMQlEgCisJCQkJQVJHRU5USU5BCisKK0Q4LTA1LTJFICAgKGhleCkJCVNreXZpaWEgQ29ycG9yYXRpb24KK0Q4MDUyRSAgICAgKGJhc2UgMTYpCQlTa3l2aWlhIENvcnBvcmF0aW9uCisJCQkJTm8uIDEwLTEsIExpeGluZyAxc3QgUmQuLCBTY2llbmNlIFBhcmssCisJCQkJSHNpbmNodSBDaXR5ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0Q4LTA2LUQxICAgKGhleCkJCUhvbmV5d2VsbCBGaXJlIFN5c3RlbSAoU2hhbmdoYWkpIENvLC4gTHRkLgorRDgwNkQxICAgICAoYmFzZSAxNikJCUhvbmV5d2VsbCBGaXJlIFN5c3RlbSAoU2hhbmdoYWkpIENvLC4gTHRkLgorCQkJCU5vLiA0MzAsIExpIEJpbmcgUm9hZCwgUHVkb25nCisJCQkJU2hhbmdoYWkgU2hhbmdoYWkgMjAxMjAzCisJCQkJQ0hJTkEKKworRDgtMEQtRTMgICAoaGV4KQkJRlhJIFRFQ0hOT0xPR0lFUyBBUworRDgwREUzICAgICAoYmFzZSAxNikJCUZYSSBURUNITk9MT0dJRVMgQVMKKwkJCQlQb3N0Ym9rcyA2MDkKKwkJCQlUUk9OREhFSU0gTm9yZ2UgNzQwNgorCQkJCU5PUldBWQorCitEOC0xNi0wQSAgIChoZXgpCQlOaXBwb24gRWxlY3Ryby1TZW5zb3J5IERldmljZXMKK0Q4MTYwQSAgICAgKGJhc2UgMTYpCQlOaXBwb24gRWxlY3Ryby1TZW5zb3J5IERldmljZXMKKwkJCQlJdGFjaGlib3JpIDItNS0xMgorCQkJCU5pc2hpLWt1IE9zYWthIDU1MC0wMDEyCisJCQkJSkFQQU4KKworRDgtMUItRkUgICAoaGV4KQkJVFdJTkxJTlggQ09SUE9SQVRJT04KK0Q4MUJGRSAgICAgKGJhc2UgMTYpCQlUV0lOTElOWCBDT1JQT1JBVElPTgorCQkJCUVTUEFDRSBERVNDQVJURVMgQkFUIEIKKwkJCQk0MjUgUlVFIFJFTkUgREVTQ0FSVEVTCisJCQkJQUlYIEVOIFBST1ZFTkNFIFBST1ZFTkNFIDEzODU3CisJCQkJRlJBTkNFCisKK0Q4LTFDLTE0ICAgKGhleCkJCUNvbXBhY3RhIEludGVybmF0aW9uYWwsIEx0ZC4KK0Q4MUMxNCAgICAgKGJhc2UgMTYpCQlDb21wYWN0YSBJbnRlcm5hdGlvbmFsLCBMdGQuCisJCQkJMzEzNDIgVmlhIExhcyBQYWxtYXMKKwkJCQlTYW4gSnVhbiBDYXBpc3RyYW5vIENBIDkyNjc1CisJCQkJVU5JVEVEIFNUQVRFUworCitEOC0yNC1CRCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitEODI0QkQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtMjYtQjkgICAoaGV4KQkJR3Vhbmdkb25nIENvYWdlbnQgRWxlY3Ryb25pY3MgUyAmVCBDby4sIEx0ZC4KK0Q4MjZCOSAgICAgKGJhc2UgMTYpCQlHdWFuZ2RvbmcgQ29hZ2VudCBFbGVjdHJvbmljcyBTICZUIENvLiwgTHRkLgorCQkJCVNlY3Rpb24gQyxYaSBOYW4gSW5kdXN0cmlhbCBab25lIFNhbnNodWkKKwkJCQlGb3NoYW4gR3Vhbmdkb25nIDUyODEzMworCQkJCUNISU5BCisKK0Q4LTI4LUM5ICAgKGhleCkJCUdlbmVyYWwgRWxlY3RyaWMgQ29uc3VtZXIgYW5kIEluZHVzdHJpYWwKK0Q4MjhDOSAgICAgKGJhc2UgMTYpCQlHZW5lcmFsIEVsZWN0cmljIENvbnN1bWVyIGFuZCBJbmR1c3RyaWFsCisJCQkJQVAzNS0xNDA1CisJCQkJQXBwbGlhbmNlIFBhcmsKKwkJCQlMb3Vpc3ZpbGxlIEtZIDQwMjI1CisJCQkJVU5JVEVEIFNUQVRFUworCitEOC0yOS04NiAgIChoZXgpCQlCZXN0IFdpc2ggVGVjaG5vbG9neSBMVEQKK0Q4Mjk4NiAgICAgKGJhc2UgMTYpCQlCZXN0IFdpc2ggVGVjaG5vbG9neSBMVEQKKwkJCQk3RSxIYWkgWWkgQnVzaW5lc3MgQnVpbGRpbmcsTm8uMzEwLFRpYW5zaGFuIFJELiwKKwkJCQlTaGFuZ2hhaSAgMjAwMzM2CisJCQkJQ0hJTkEKKworRDgtMkEtN0UgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0Q4MkE3RSAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCUVsZWt0cm9uaWlra2F0aWUgMTAKKwkJCQlPdWx1ICA5MDU5MAorCQkJCUZJTkxBTkQKKworRDgtMzAtNjIgICAoaGV4KQkJQXBwbGUsIEluYworRDgzMDYyICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LTMzLTdGICAgKGhleCkJCU9mZmljZSBGQS5jb20gQ28uLEx0ZC4KK0Q4MzM3RiAgICAgKGJhc2UgMTYpCQlPZmZpY2UgRkEuY29tIENvLixMdGQuCisJCQkJMjkzLTIxCisJCQkJTmFyYW5va2kKKwkJCQlPeWFtYS1zaGkgVG9jaGlnaSAzMjktMDIxNgorCQkJCUpBUEFOCisKK0Q4LTQyLUFDICAgKGhleCkJCUZyZWVDb21tIERhdGEgQ29tbXVuaWNhdGlvbiBDby4sTHRkLgorRDg0MkFDICAgICAoYmFzZSAxNikJCUZyZWVDb21tIERhdGEgQ29tbXVuaWNhdGlvbiBDby4sTHRkLgorCQkJCUJ1aWxkaW5nIDkwLCBOby4gNDg1NSwgR3VhbmdmdWxpbiBSb2FkLCBTb25namlhbmcgRGlzdHJpY3QKKwkJCQlTaGFuZ2hhaSAgMjAxNjE2CisJCQkJQ0hJTkEKKworRDgtNDYtMDYgICAoaGV4KQkJU2lsaWNvbiBWYWxsZXkgR2xvYmFsIE1hcmtldGluZworRDg0NjA2ICAgICAoYmFzZSAxNikJCVNpbGljb24gVmFsbGV5IEdsb2JhbCBNYXJrZXRpbmcKKwkJCQk4MzAgU3Rld2FydCBEci4gIzIwMQorCQkJCVN1bm55dmFsZSBDYSA5NDA4NQorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtNEItMkEgICAoaGV4KQkJQ29nbml0YXMgVGVjaG5vbG9naWVzLCBJbmMuCitEODRCMkEgICAgIChiYXNlIDE2KQkJQ29nbml0YXMgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJNjQwNiBMYXVyZWwgQnVzaCBMbi4KKwkJCQlTdWdhciBMYW5kIFRleGFzIDc3NDc5CisJCQkJVU5JVEVEIFNUQVRFUworCitEOC01NC0zQSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworRDg1NDNBICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJRGFsbGFzIFRYIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCitEOC01RC00QyAgIChoZXgpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sTHRkLgorRDg1RDRDICAgICAoYmFzZSAxNikJCVRQLUxJTksgVGVjaG5vbG9naWVzIENvLixMdGQuCisJCQkJQnVpbGRpbmcgNywgU2Vjb25kIFBhcnQsIEhvbmdodWFsaW5nIEluZHVzdHJpYWwgWm9uZQorCQkJCVhpbGkgdG93biwgTmFuc2hhbiwgCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAwMAorCQkJCUNISU5BCisKK0Q4LTVELTg0ICAgKGhleCkJCUNBeCBzb2Z0IEdtYkgKK0Q4NUQ4NCAgICAgKGJhc2UgMTYpCQlDQXggc29mdCBHbWJICisJCQkJTm9ldHRpbmdlciBTdHJhc3NlIDMKKwkJCQlLYXJsc2JhZCBCVyA3NjMwNworCQkJCUdFUk1BTlkKKworRDgtNjctRDkgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworRDg2N0Q5ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0Q4LTZCLUY3ICAgKGhleCkJCU5pbnRlbmRvIENvLiwgTHRkLgorRDg2QkY3ICAgICAoYmFzZSAxNikJCU5pbnRlbmRvIENvLiwgTHRkLgorCQkJCTExLTEgSE9LT1RBVEUtQ0hPCisJCQkJS0FNSVRPQkEsIE1JTkFNSS1LVQorCQkJCUtZT1RPICA2MDEtODUwMQorCQkJCUpBUEFOCisKK0Q4LTcxLTU3ICAgKGhleCkJCUxlbm92byBNb2JpbGUgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IEx0ZC4KK0Q4NzE1NyAgICAgKGJhc2UgMTYpCQlMZW5vdm8gTW9iaWxlIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBMdGQuCisJCQkJTm8uOTk5LFFpc2hhbiBOb3J0aCAybmQgUm9hZCxJbmZvcm1hdGlvbiZPcHRvZWxlY3Ryb25pY3MgUGFyayxUb3JjaCBIaS10ZWNoIEluZHVzdHJ5IERldmVsb3BtZW50IFpvbmUsCisJCQkJWGlhbWVuIEZ1amlhbiAzNjEwMDYKKwkJCQlDSElOQQorCitEOC03NS0zMyAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorRDg3NTMzICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgIDkwNTkwCisJCQkJRklOTEFORAorCitEOC03Ni0wQSAgIChoZXgpCQlFc2NvcnQsIEluYy4KK0Q4NzYwQSAgICAgKGJhc2UgMTYpCQlFc2NvcnQsIEluYy4KKwkJCQk1NDQwIFdlc3QgQ2hlc3RlciBSZC4KKwkJCQlXZXN0IENoZXN0ZXIgT2hpbyA0NTA2OQorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtNzgtRTUgICAoaGV4KQkJS1VITiBTQQorRDg3OEU1ICAgICAoYmFzZSAxNikJCUtVSE4gU0EKKwkJCQk0LCBpbXBhc3NlIGRlcyBmYWJyaXF1ZXMKKwkJCQlTQVZFUk5FICA2NzcwMAorCQkJCUZSQU5DRQorCitEOC03OS04OCAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLiwgTHRkLgorRDg3OTg4ICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLCBMdGQuCisJCQkJTk8uMTY4IEZPWENPTk4gUk9BRAorCQkJCUhVQUlBTiBFQ09OT01JQyBERVZFTE9QTUVOVCBaT05FCisJCQkJSFVBSUFOIEpJQU5HU1UgMjIzMDA1CisJCQkJQ0hJTkEKKworRDgtOEEtM0IgICAoaGV4KQkJVU5JVC1FTQorRDg4QTNCICAgICAoYmFzZSAxNikJCVVOSVQtRU0KKwkJCQkxNjcgTWVyY2hhbnRzIFN0cmVldAorCQkJCVZhbGxldHRhICBWTFQgMTE3NAorCQkJCU1BTFRBCisKK0Q4LTk1LTJGICAgKGhleCkJCVRleGFzIEluc3RydW1lbnRzCitEODk1MkYgICAgIChiYXNlIDE2KQkJVGV4YXMgSW5zdHJ1bWVudHMKKwkJCQkxMjUwMCBUSSBCb3VsZXZhcmQKKwkJCQlNUyA4NzIzCisJCQkJRGFsbGFzIFRleGFzIDc1MjQzCisJCQkJVU5JVEVEIFNUQVRFUworCitEOC05Ni04NSAgIChoZXgpCQlHb1BybworRDg5Njg1ICAgICAoYmFzZSAxNikJCUdvUHJvCisJCQkJMjQ1MCBDYWJyaWxsbyBId3kgU291dGgKKwkJCQlIYWxmIE1vb24gQmF5IENBIDk0MDE5CisJCQkJVU5JVEVEIFNUQVRFUworCitEOC05Ny0zQiAgIChoZXgpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIgRW1iZWRkZWQgUG93ZXIKK0Q4OTczQiAgICAgKGJhc2UgMTYpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIgRW1iZWRkZWQgUG93ZXIKKwkJCQkxNi9GIEx1IFBsYXphIEJ1aWxkaW5nCisJCQkJMiBXaW5nIFlpcCBTdHJlZXQKKwkJCQlLd3VuIFRvbmcgS293bG9vbiAwMDAwMAorCQkJCUhPTkcgS09ORworCitEOC05Ny02MCAgIChoZXgpCQlDMiBEZXZlbG9wbWVudCwgSW5jLgorRDg5NzYwICAgICAoYmFzZSAxNikJCUMyIERldmVsb3BtZW50LCBJbmMuCisJCQkJMTYwNiBHb2xkZW4gQXNwZW4gRHIKKwkJCQlTdWl0ZSAxMDYKKwkJCQlBbWVzIElBIDUwMDEwCisJCQkJVU5JVEVEIFNUQVRFUworCitEOC05RC1COSAgIChoZXgpCQllTWVnYXRlY2ggSW50ZXJuYXRpb25hbCBDb3JwLgorRDg5REI5ICAgICAoYmFzZSAxNikJCWVNZWdhdGVjaCBJbnRlcm5hdGlvbmFsIENvcnAuCisJCQkJUm9vbSA0MDMsIE5vLjI0IFd1Y3l1YW4gMm5kIFJkLiwKKwkJCQlTaW5qaHVhbmcgQ2l0eSwgVGFpcGVpIENvdW50eSwgIDIzOAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRDgtOUUtM0YgICAoaGV4KQkJQXBwbGUsIEluYy4KK0Q4OUUzRiAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtQTItNUUgICAoaGV4KQkJQXBwbGUsIEluYy4KK0Q4QTI1RSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDYWxpZm9ybmlhIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitEOC1BRS05MCAgIChoZXgpCQlJdGliaWEgVGVjaG5vbG9naWVzCitEOEFFOTAgICAgIChiYXNlIDE2KQkJSXRpYmlhIFRlY2hub2xvZ2llcworCQkJCTUgQ2xhdXNlbiBDdAorCQkJCVdlc3QgV2luZHNvciBOSiAwODU1MAorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtQjEtMkEgICAoaGV4KQkJUGFuYXNvbmljIE1vYmlsZSBDb21tdW5pY2F0aW9ucyBDby4sIEx0ZC4KK0Q4QjEyQSAgICAgKGJhc2UgMTYpCQlQYW5hc29uaWMgTW9iaWxlIENvbW11bmljYXRpb25zIENvLiwgTHRkLgorCQkJCTYwMCBTYWVkby1jaG8gVHN1enVraS1rdQorCQkJCVlva29oYW1hIENpdHkgS2FuYWdhd2EgMjI0LTg1MzkKKwkJCQlKQVBBTgorCitEOC1CMy03NyAgIChoZXgpCQlIVEMgQ29ycG9yYXRpb24KK0Q4QjM3NyAgICAgKGJhc2UgMTYpCQlIVEMgQ29ycG9yYXRpb24KKwkJCQlOby4gMjMsIFhpbmdodWEgUmQuLCAKKwkJCQlUYW95dWFuIENpdHkgIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRDgtQjYtQzEgICAoaGV4KQkJTmV0d29ya0FjY291bnRhbnQsIEluYy4KK0Q4QjZDMSAgICAgKGJhc2UgMTYpCQlOZXR3b3JrQWNjb3VudGFudCwgSW5jLgorCQkJCTEyMTAxIFR1a3dpbGEgSW50ZXJuYXRpb25hbCBCbHZkLgorCQkJCVNlYXR0bGUgV2FzaGluZ3RvbiA5ODE2OAorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtQjgtRjYgICAoaGV4KQkJTmFudHdvcmtzCitEOEI4RjYgICAgIChiYXNlIDE2KQkJTmFudHdvcmtzCisJCQkJMTIyMzAgRWwgQ2FtaW5vIFJlYWwsIFN1aXRlIDQwMAorCQkJCVNhbiBEaWVnbyBDQSA5MjEzMAorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtQjktMEUgICAoaGV4KQkJVHJpcGxlIERvbWFpbiBWaXNpb24gQ28uLEx0ZC4KK0Q4QjkwRSAgICAgKGJhc2UgMTYpCQlUcmlwbGUgRG9tYWluIFZpc2lvbiBDby4sTHRkLgorCQkJCU5vLjksIEFseS4gMSwgTG4uIDU4NSwgU2VjLjMsIEZ1bGluIFJkLiwKKwkJCQlDeW9uZ2xpbiBUb3duc2hpcAorCQkJCUhzaW5jaHUgQ29udXR5ICAzMDcKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0Q4LUJGLTRDICAgKGhleCkJCVZpY3RvcnkgQ29uY2VwdCBFbGVjdHJvbmljcyBMaW1pdGVkCitEOEJGNEMgICAgIChiYXNlIDE2KQkJVmljdG9yeSBDb25jZXB0IEVsZWN0cm9uaWNzIExpbWl0ZWQKKwkJCQk0L0YuLCBDQUMgVG93ZXIsCisJCQkJMTY1IEhvaSBCdW4gUm9hZCwKKwkJCQlLd3VuIFRvbmcgS293bG9vbiBLTE4KKwkJCQlIT05HIEtPTkcKKworRDgtQzAtNjggICAoaGV4KQkJTmV0Z2VuZXRlY2guY28uLGx0ZC4KK0Q4QzA2OCAgICAgKGJhc2UgMTYpCQlOZXRnZW5ldGVjaC5jby4sbHRkLgorCQkJCTcwNCwgSGFubGltIFZlbnR1cmUgVG93bi4sICM2ODktNiwgCisJCQkJR2V1bWplb25nLSBkb25nLAorCQkJCUd1bnBvLXNpICA0MzUtODYyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Q4LUMzLUZCICAgKGhleCkJCURFVFJBQ09NCitEOEMzRkIgICAgIChiYXNlIDE2KQkJREVUUkFDT00KKwkJCQk0MSBBVkVOVUUgREUgTCdFVVJPUEUKKwkJCQlaT05FIEVVUk9DRU5UUkUgT1VFU1QgCisJCQkJQ0FTVEVMTkFVIEQnRVNUUkVURUZPTkRTICAzMTYyMAorCQkJCUZSQU5DRQorCitEOC1DNy1DOCAgIChoZXgpCQlBcnViYSBOZXR3b3JrcworRDhDN0M4ICAgICAoYmFzZSAxNikJCUFydWJhIE5ldHdvcmtzCisJCQkJMTM0NCBDcm9zc21hbiBBdmUuCisJCQkJU3Vubnl2YWxlICBDQSA5NDA4OQorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtQzktOUQgICAoaGV4KQkJRUEgRElTUExBWSBMSU1JVEVECitEOEM5OUQgICAgIChiYXNlIDE2KQkJRUEgRElTUExBWSBMSU1JVEVECisJCQkJMjIvRiBERUxUQSBIT1VTRSAzIE9OIFlJVSBTVAorCQkJCVNIQVRJTiBOVCAgCisJCQkJSE9ORyBLT05HCisKK0Q4LUQzLTg1ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CitEOEQzODUgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJSG91c3RvbiBUZXhhcyA3NzA3MAorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtRDYtN0UgICAoaGV4KQkJR1NLIENOQyBFUVVJUE1FTlQgQ08uLExURAorRDhENjdFICAgICAoYmFzZSAxNikJCUdTSyBDTkMgRVFVSVBNRU5UIENPLixMVEQKKwkJCQlOTy43LDFzdCBTdHJlZXQsTHVvY2hvbmcgTm9ydGggUm9hZCxMdW9jaG9uZ3dlaQorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgIDUxMDE2NQorCQkJCUNISU5BCisKK0Q4LURGLTBEICAgKGhleCkJCWJlcm9OZXQgR21iSAorRDhERjBEICAgICAoYmFzZSAxNikJCWJlcm9OZXQgR21iSAorCQkJCUZyaWVkcmljaHN0ci4gMjMxCisJCQkJQmVybGluICAxMDk2OQorCQkJCUdFUk1BTlkKKworRDgtRTMtQUUgICAoaGV4KQkJQ0lSVEVDIE1FRElDQUwgU1lTVEVNUworRDhFM0FFICAgICAoYmFzZSAxNikJCUNJUlRFQyBNRURJQ0FMIFNZU1RFTVMKKwkJCQkxMDFCIENvb3BlciBDb3VydAorCQkJCUxvcyBHYXRvcyBDQSA5NTAzMgorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtRTctMkIgICAoaGV4KQkJT25QQVRIIFRlY2hub2xvZ2llcworRDhFNzJCICAgICAoYmFzZSAxNikJCU9uUEFUSCBUZWNobm9sb2dpZXMKKwkJCQkyMDAwIExpbmNvbG4gRHJpdmUgRWFzdAorCQkJCU1hcmx0b24gTmV3IEplcnNleSAwODA1MworCQkJCVVOSVRFRCBTVEFURVMKKworRDgtRTctNDMgICAoaGV4KQkJV3VzaCwgSW5jCitEOEU3NDMgICAgIChiYXNlIDE2KQkJV3VzaCwgSW5jCisJCQkJMTdGLk5vIDI2OCwgTGlhbmNoZW5nIFJkLiwgWmhvbmdoZSBEaXN0cmljdAorCQkJCU5ldyAgVGFpcGVpIENpdHkgICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0Q4LUU5LTUyICAgKGhleCkJCUtFT1BTWVMKK0Q4RTk1MiAgICAgKGJhc2UgMTYpCQlLRU9QU1lTCisJCQkJMjEgUlVFIExPVUlTIERFIEJST0dMSUUKKwkJCQlMQU5OSU9OIEJSSVRBTlkgMjIzMDAKKwkJCQlGUkFOQ0UKKworRDgtRUItOTcgICAoaGV4KQkJVFJFTkRuZXQsIEluYy4KK0Q4RUI5NyAgICAgKGJhc2UgMTYpCQlUUkVORG5ldCwgSW5jLgorCQkJCTIwNjc1IE1hbmhhdHRhbiBQbGFjZQorCQkJCVRvcnJhbmNlIENBIDkwNTAxCisJCQkJVU5JVEVEIFNUQVRFUworCitEOC1GMC1GMiAgIChoZXgpCQlaZWVibyBJbmMKK0Q4RjBGMiAgICAgKGJhc2UgMTYpCQlaZWVibyBJbmMKKwkJCQk1NDA1IE1vcmVob3VzZSBEcml2ZQorCQkJCVN1aXRlICMzMDAKKwkJCQlTYW4gRGllZ28gQ2FsaWZvcm5pYSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworRDgtRkUtOEYgICAoaGV4KQkJSURGb25lIENvLiwgTHRkLgorRDhGRThGICAgICAoYmFzZSAxNikJCUlERm9uZSBDby4sIEx0ZC4KKwkJCQk3RiBBY2UgdGVjaG5vIHRvd2VyIDV0aCBCL0QsIDE5Ny0yMgorCQkJCUd1cm8tZG9uZywgR3Vyby1ndSBTZW91bCAxNTItNzY2CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0RDLTAyLTY1ICAgKGhleCkJCU1lZGl0ZWNoIEtmdAorREMwMjY1ICAgICAoYmFzZSAxNikJCU1lZGl0ZWNoIEtmdAorCQkJCcODxZNsbMODwrVpIMODwrp0IDIwMC4KKwkJCQlCdWRhcGVzdCAgMTE5MQorCQkJCUhVTkdBUlkKKworREMtMDUtRUQgICAoaGV4KQkJTmFidGVzY28gIENvcnBvcmF0aW9uCitEQzA1RUQgICAgIChiYXNlIDE2KQkJTmFidGVzY28gIENvcnBvcmF0aW9uCisJCQkJOS0xOCwgS2FpZ2FuIDEtY2hvbWUKKwkJCQlNaW5hdG8ta3UgVG9reW8gMTA1LTAwMjIKKwkJCQlKQVBBTgorCitEQy0wNy1DMSAgIChoZXgpCQlIYW5nWmhvdSBRaVlhbmcgVGVjaG5vbG9neSBDby4sTHRkLgorREMwN0MxICAgICAoYmFzZSAxNikJCUhhbmdaaG91IFFpWWFuZyBUZWNobm9sb2d5IENvLixMdGQuCisJCQkJRmxvb3IgNSwgQnVpbGRpbmcgMiwgUm9hZCBYaVl1YW5ZaSwgV2VzdExha2UgVGVjaG5vbG9neSBQYXJrLAorCQkJCVNhbkR1biwgWGlIdSBEaXN0cmlidXRlCisJCQkJSGFuZ1pob3UgWmhlSmlhbmcgMzEwMDI4CisJCQkJQ0hJTkEKKworREMtMEItMUEgICAoaGV4KQkJQURCIEJyb2FkYmFuZCBTcEEKK0RDMEIxQSAgICAgKGJhc2UgMTYpCQlBREIgQnJvYWRiYW5kIFNwQQorCQkJCXZpYWxlIFNhcmNhIDMzNgorCQkJCU1pbGFubyBJdGFseSAyMDEyNgorCQkJCUlUQUxZCisKK0RDLTBFLUExICAgKGhleCkJCUNPTVBBTCBJTkZPUk1BVElPTiAoS1VOU0hBTikgQ08uLCBMVEQKK0RDMEVBMSAgICAgKGJhc2UgMTYpCQlDT01QQUwgSU5GT1JNQVRJT04gKEtVTlNIQU4pIENPLiwgTFRECisJCQkJTm8uMjUsIFRoaXJkIEF2ZW51ZSwgQSBab25lLCBLdW5zaGFuIENvbXByZWhlbnNpdmUgRnJlZSBUcmFkZSBab25lLCwgSmlhbmdzdSwgCisJCQkJS1VOU0hBTiAgU1VaSE9VIDIxNTMwMAorCQkJCUNISU5BCisKK0RDLTE2LUEyICAgKGhleCkJCU1lZHRyb25pYyBEaWFiZXRlcworREMxNkEyICAgICAoYmFzZSAxNikJCU1lZHRyb25pYyBEaWFiZXRlcworCQkJCTE4MDAwIERldm9uc2hpcmUgU3QKKwkJCQlOb3J0aHJpZGdlIENBIDkxMzI1CisJCQkJVU5JVEVEIFNUQVRFUworCitEQy0xNy01QSAgIChoZXgpCQlIaXRhY2hpIEhpZ2gtVGVjaG5vbG9naWVzIENvcnBvcmF0aW9uCitEQzE3NUEgICAgIChiYXNlIDE2KQkJSGl0YWNoaSBIaWdoLVRlY2hub2xvZ2llcyBDb3Jwb3JhdGlvbgorCQkJCTc5NCwgSGlnYXNoaXRveW9pLAorCQkJCUt1ZGFtYXRzdSBDaXR5LCBZYW1hZ3VjaGkgUHJlZi4sIDc0NC0wMDAyLAorCQkJCUpBUEFOCisKK0RDLTFELTlGICAgKGhleCkJCVUgJiBCIHRlY2gKK0RDMUQ5RiAgICAgKGJhc2UgMTYpCQlVICYgQiB0ZWNoCisJCQkJMkYsIERhZXlvdW5nIGJ1bGlkaW5nLCAxNDIzLTYsIEt3YW55YW5nLTFEb25nLAorCQkJCURvbmdBbi1HdSwKKwkJCQlBbnlhbmctU2kgR3llb25nZ2ktRG8gNDMxLTA2MQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEQy0xRS1BMyAgIChoZXgpCQlBY2NlbnN1cyBMTEMKK0RDMUVBMyAgICAgKGJhc2UgMTYpCQlBY2NlbnN1cyBMTEMKKwkJCQkyMDAgU291dGggV2Fja2VyIERyaXZlCisJCQkJU3VpdGUgMzEwMAorCQkJCUNoaWNhZ28gSUwgNjA2MDYKKwkJCQlVTklURUQgU1RBVEVTCisKK0RDLTIwLTA4ICAgKGhleCkJCUFTRCBFbGVjdHJvbmljcyBMdGQgCitEQzIwMDggICAgIChiYXNlIDE2KQkJQVNEIEVsZWN0cm9uaWNzIEx0ZCAKKwkJCQlERURFIElORFVTVFJJQUwgUEFSSyxKSUFOJ0FOIFJPQUQsSElHSC1URUNICisJCQkJSU5EVVNUUklBTCBQQVJLLEZVWU9ORyBUT1dOLEJBTydBTiBESVNUUklDVCwKKwkJCQlTaGVuemhlbiAgR3VhbmcgRG9uZyA1MTgxMDMKKwkJCQlDSElOQQorCitEQy0yQi02MSAgIChoZXgpCQlBcHBsZSwgSW5jLgorREMyQjYxICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitEQy0yQi02NiAgIChoZXgpCQlJbmZvYmxvY2sKK0RDMkI2NiAgICAgKGJhc2UgMTYpCQlJbmZvYmxvY2sKKwkJCQlIZWdlbCAyMjkgLSAxMAorCQkJCUNoYXB1bHRlcGVjIE1vcmFsZXMKKwkJCQlNZXhpY28gQ2l0eSBEaXN0cml0byBGZWRlcmFsIDExNTcwCisJCQkJTUVYSUNPCisKK0RDLTJDLTI2ICAgKGhleCkJCUl0b24gVGVjaG5vbG9neSBMaW1pdGVkCitEQzJDMjYgICAgIChiYXNlIDE2KQkJSXRvbiBUZWNobm9sb2d5IExpbWl0ZWQKKwkJCQlSb29tIDEwRSwgSmluZ0ZlbmcgQnVpbGRpbmcsIAorCQkJCUJpbmhlIFJvYWQsIEZ1dGlhbiBEaXN0cmljdAorCQkJCVNoZW5aaGVuIEd1YW5nRG9uZyA1MTgwMzQKKwkJCQlDSElOQQorCitEQy0yRS02QSAgIChoZXgpCQlIQ1QuIENvLiwgTHRkLgorREMyRTZBICAgICAoYmFzZSAxNikJCUhDVC4gQ28uLCBMdGQuCisJCQkJMTA1LTEsIEphbmdhbS1yaSwgTWFqYW5nLW15ZW4KKwkJCQlJY2hlb24tc2kgR3llb25nZ2ktZG8gNDY3LTgxMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEQy0zMC05QyAgIChoZXgpCQlTQVkgU3lzdGVtcyBMaW1pdGVkCitEQzMwOUMgICAgIChiYXNlIDE2KQkJU0FZIFN5c3RlbXMgTGltaXRlZAorCQkJCUxldmVsIDEsIDIzNi0yNTYgS2Fyb3JpIFJvYWQKKwkJCQlLYXJvcmkKKwkJCQlXZWxsaW5ndG9uICA2MTQ3CisJCQkJTkVXIFpFQUxBTkQKKworREMtMzMtNTAgICAoaGV4KQkJVGVjaFNBVCBHbWJICitEQzMzNTAgICAgIChiYXNlIDE2KQkJVGVjaFNBVCBHbWJICisJCQkJR3J1YmVyIFN0ci4gNDZjCisJCQkJUG9pbmcgQlkgODU1ODYKKwkJCQlHRVJNQU5ZCisKK0RDLTM3LUQyICAgKGhleCkJCUh1bmFuIEhLVCBFbGVjdHJvbmljIFRlY2hub2xvZ3kgQ28uLCBMdGQKK0RDMzdEMiAgICAgKGJhc2UgMTYpCQlIdW5hbiBIS1QgRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJUm9vbSA0MjgsNEYsSHVuYW4gRW52aXJvbm1lbnRhbCBTY2llbmNlIGFuZCBUZWNobm9sb2d5IENvbW1pdHRlZSBCdWlsZGluZyxObyAxOCBTb3V0aCBvZiBXYW5qaWFsaSBSb2FkLFl1aHVhIERpc3RyaWN0LENoYW5nc2hhCisJCQkJQ2hhbmdzaGEgSHVuYW4gNDEwMDA3CisJCQkJQ0hJTkEKKworREMtM0MtMkUgICAoaGV4KQkJTWFudWZhY3R1cmluZyBTeXN0ZW0gSW5zaWdodHMsIEluYy4KK0RDM0MyRSAgICAgKGJhc2UgMTYpCQlNYW51ZmFjdHVyaW5nIFN5c3RlbSBJbnNpZ2h0cywgSW5jLgorCQkJCTI1NTAgTmludGggU3QuCisJCQkJU3VpdGUgMjA0QgorCQkJCUJlcmtlbHkgQ0EgOTQ3MTAKKwkJCQlVTklURUQgU1RBVEVTCisKK0RDLTNDLTg0ICAgKGhleCkJCVRpY29tIEdlb21hdGljcywgSW5jLgorREMzQzg0ICAgICAoYmFzZSAxNikJCVRpY29tIEdlb21hdGljcywgSW5jLgorCQkJCTkxMzAgSm9sbHl2aWxsZSBSZC4gU3RlLiAzMDAKKwkJCQlBdXN0aW4gVGV4YXMgNzg3NTkKKwkJCQlVTklURUQgU1RBVEVTCisKK0RDLTNFLTUxICAgKGhleCkJCVNvbGJlcmcgJiBBbmRlcnNlbiBBUworREMzRTUxICAgICAoYmFzZSAxNikJCVNvbGJlcmcgJiBBbmRlcnNlbiBBUworCQkJCUxpdGxl5XN2ZWllbiA2MQorCQkJCU4tNTEzMiBOeWJvcmcKKwkJCQlCZXJnZW4gIDUxMzIKKwkJCQlOT1JXQVkKKworREMtNDktQzkgICAoaGV4KQkJQ0FTQ08gU0lHTkFMIExURAorREM0OUM5ICAgICAoYmFzZSAxNikJCUNBU0NPIFNJR05BTCBMVEQKKwkJCQlOby40ODkgWGl6YW5nIEJlaSBSb2FkCisJCQkJU2hhbmdoYWkgIDIwMDA3MQorCQkJCUNISU5BCisKK0RDLTRFLURFICAgKGhleCkJCVNISU5ZRUkgVEVDSE5PTE9HWSBDTy4sIExURC4KK0RDNEVERSAgICAgKGJhc2UgMTYpCQlTSElOWUVJIFRFQ0hOT0xPR1kgQ08uLCBMVEQuCisJCQkJNi01LTIsIE1JTkFUT0pJTUEtTUlOQU1JTUFDSEksIENIVU8tS1UKKwkJCQlLT0JFIEhZT0dPIDY1MC0wMDQ3CisJCQkJSkFQQU4KKworREMtNzEtNDQgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvIE1lY2hhbmljcworREM3MTQ0ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3RybyBNZWNoYW5pY3MKKwkJCQkzMTQsIE1hZXRhbjMtRG9uZywgWWVvbmd0b25nLUd1CisJCQkJU3V3b24gR3lldW5nZ2ktRG8gNDQzLTc0MworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitEQy03Qi05NCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitEQzdCOTQgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitEQy04NS1ERSAgIChoZXgpCQlBenVyZXdhdmUgVGVjaG5vbG9naWVzLiwgaW5jLgorREM4NURFICAgICAoYmFzZSAxNikJCUF6dXJld2F2ZSBUZWNobm9sb2dpZXMuLCBpbmMuCisJCQkJOEYgLiwgTm8uOTQsIEJhb3pob25nIFJELCBTaW5kaWFuLCAKKwkJCQlOZXcgVGFpcGVpIENpdHkgIDIzMQorCQkJCVRBSVdBTiwgUFJPVklOQ0UgT0YgQ0hJTkEKKworREMtOUItMUUgICAoaGV4KQkJSW50ZXJjb20sIEluYy4KK0RDOUIxRSAgICAgKGJhc2UgMTYpCQlJbnRlcmNvbSwgSW5jLgorCQkJCVNvcmltYWNoaSBCbGRnLiwgMy01LCBUYWl0byAxLWNob21lLCAKKwkJCQlUYWl0by1rdSBUb2t5byAxMTAtODY1NAorCQkJCUpBUEFOCisKK0RDLTlDLTUyICAgKGhleCkJCVNhcHBoaXJlIFRlY2hub2xvZ3kgTGltaXRlZC4KK0RDOUM1MiAgICAgKGJhc2UgMTYpCQlTYXBwaGlyZSBUZWNobm9sb2d5IExpbWl0ZWQuCisJCQkJVW5pdCAxOTA5LTE5MTksIDE5L0YuLCBUb3dlciAyLCBHcmFuZCBDZW50cmFsIFBsYXphLAorCQkJCTEzOCBTaGF0aW4gUnVyYWwgQ29tbWl0dGVlIFJvYWQsIFNoYXRpbiwgTi5ULiwKKwkJCQlIT05HIEtPTkcKKworREMtOUYtREIgICAoaGV4KQkJVWJpcXVpdGkgTmV0d29ya3MsIEluYy4KK0RDOUZEQiAgICAgKGJhc2UgMTYpCQlVYmlxdWl0aSBOZXR3b3JrcywgSW5jLgorCQkJCTkxIEUgVGFzbWFuIERyaXZlCisJCQkJU2FuIEpvc2UgQ2FsaWZvcm5pYSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworREMtQTYtQkQgICAoaGV4KQkJQmVpamluZyBMYW5ibyBUZWNobm9sb2d5IENvLiwgTHRkLgorRENBNkJEICAgICAoYmFzZSAxNikJCUJlaWppbmcgTGFuYm8gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlSb29tLjMwMS5CaWRnLjROTy44IFNoYW5nZGkgV2VzdCBSb2FkLCBIYWlkaWFuICBEaXN0cmljdCwKKwkJCQlCZWlqaW5nIENpdHkgIDEwMDA4NQorCQkJCUNISU5BCisKK0RDLUE3LUQ5ICAgKGhleCkJCUNvbXByZXNzb3IgQ29udHJvbHMgQ29ycAorRENBN0Q5ICAgICAoYmFzZSAxNikJCUNvbXByZXNzb3IgQ29udHJvbHMgQ29ycAorCQkJCTQ3MjUgMTIxc3QgU3RyZWV0CisJCQkJRGVzIE1vaW5lcyBJb3dhIDUwMzIzCisJCQkJVU5JVEVEIFNUQVRFUworCitEQy1BOC1DRiAgIChoZXgpCQlOZXcgU3BpbiBHb2xmLCBMTEMuCitEQ0E4Q0YgICAgIChiYXNlIDE2KQkJTmV3IFNwaW4gR29sZiwgTExDLgorCQkJCTE2MzcgQnVyciBPYWsgRHJpdmUKKwkJCQlMaWJlcnR5dmlsbGUgSUwgNjAwNDgKKwkJCQlVTklURUQgU1RBVEVTCisKK0RDLUE5LTcxICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorRENBOTcxICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIDIvMworCQkJCUt1bGltIEhpLVRlY2ggUGFyaworCQkJCUt1bGltIEtlZGFoIDA5MDAwCisJCQkJTUFMQVlTSUEKKworREMtQjQtQzQgICAoaGV4KQkJTWljcm9zb2Z0IFhDRworRENCNEM0ICAgICAoYmFzZSAxNikJCU1pY3Jvc29mdCBYQ0cKKwkJCQkxIE1pY3Jvc29mdCBXYXkKKwkJCQlSZWRtb25kIFdBIDk4MDUyCisJCQkJVU5JVEVEIFNUQVRFUworCitEQy1DMS0wMSAgIChoZXgpCQlTT0xpRCBUZWNobm9sb2dpZXMsIEluYy4KK0RDQzEwMSAgICAgKGJhc2UgMTYpCQlTT0xpRCBUZWNobm9sb2dpZXMsIEluYy4KKwkJCQk5dGggRmxvb3IsIFNPTGlEIFNwYWNlLCBQYW5neW95ZW9rLXJvIDIyMAorCQkJCUJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjMtNDAwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0RDLUNCLUE4ICAgKGhleCkJCUV4cGxvcmEgVGVjaG5vbG9naWVzIEluYworRENDQkE4ICAgICAoYmFzZSAxNikJCUV4cGxvcmEgVGVjaG5vbG9naWVzIEluYworCQkJCTM2MCwgRnJhbnF1ZXQgU3RyZWV0CisJCQkJU3VpdGUgMjAKKwkJCQlRdWViZWMgIEcxUCA0TjMKKwkJCQlDQU5BREEKKworREMtQ0UtNDEgICAoaGV4KQkJRkUgR0xPQkFMIEhPTkcgS09ORyBMSU1JVEVECitEQ0NFNDEgICAgIChiYXNlIDE2KQkJRkUgR0xPQkFMIEhPTkcgS09ORyBMSU1JVEVECisJCQkJRkxBVCAyMDQtMjA1IDIvRiBMQUZPUkQgQ0VOVFJFODM4IExBSSBDSEkgS09LIFJEIENIRVVORyBTSEEgV0FOIEtMCisJCQkJU0hFTlpIRU4gIDUxODA1NworCQkJCUNISU5BCisKK0RDLUNGLTk0ICAgKGhleCkJCUJlaWppbmcgUm9uZ2NoZW5nIEh1dG9uZyBUZWNobm9sb2d5IENvLiwgTHRkLgorRENDRjk0ICAgICAoYmFzZSAxNikJCUJlaWppbmcgUm9uZ2NoZW5nIEh1dG9uZyBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCVJvb20gNDAxQSxCdWlsZGluZyBOby40LFlhcmQgTm8uNSwKKwkJCQlZb25nZmVuZyBSb2FkLCBIYWlkaWFuIERpc3RyaWN0CisJCQkJQmVpamluZyAgMTAwMDI0CisJCQkJQ0hJTkEKKworREMtRDAtRjcgICAoaGV4KQkJQmVudGVrIFN5c3RlbXMgTHRkLgorRENEMEY3ICAgICAoYmFzZSAxNikJCUJlbnRlayBTeXN0ZW1zIEx0ZC4KKwkJCQkzMTUgLSAzNzUwIDQ2dGggQXZlLiBTRQorCQkJCUNhbGdhcnkgQUIgVDJCIDBMMQorCQkJCUNBTkFEQQorCitEQy1EMy0yMSAgIChoZXgpCQlIVU1BWCBjby4sdGxkCitEQ0QzMjEgICAgIChiYXNlIDE2KQkJSFVNQVggY28uLHRsZAorCQkJCUhVTUFYIFZpbGxhZ2UsIDExLTQsIFN1bmFlLWRvbmcsIEJ1bmRhbmctZ3UKKwkJCQlTZW9uZ25hbS1zaSBHeWVvbmdnaS1kbyA0NjMtODI1CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0RDLUQ4LTdGICAgKGhleCkJCVNoZW56aGVuIEpvaW5DeWJlciBUZWxlY29tIEVxdWlwbWVudCBMdGQKK0RDRDg3RiAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBKb2luQ3liZXIgVGVsZWNvbSBFcXVpcG1lbnQgTHRkCisJCQkJMTlDREUsIEJsb2NrIEEsSmluRmVuZ0J1aWxkaW5nLHNoYW5nYnUgU291dGggUm9hZCxGdXRpYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODAzMQorCQkJCUNISU5BCisKK0RDLURFLUNBICAgKGhleCkJCUFreWxsb3IKK0RDREVDQSAgICAgKGJhc2UgMTYpCQlBa3lsbG9yCisJCQkJQnJpdGFubmlhIEhvdXNlLCAyMiwgMkYsIENhdG9yIFJvYWQKKwkJCQlCYW5kYXIgU2VyaSBCZWdhd2FuIEJTICA4ODExCisJCQkJQlJVTkVJIERBUlVTU0FMQU0KKworREMtRTItQUMgICAoaGV4KQkJTHVtZW5zIERpZ2l0YWwgT3B0aWNzIEluYy4KK0RDRTJBQyAgICAgKGJhc2UgMTYpCQlMdW1lbnMgRGlnaXRhbCBPcHRpY3MgSW5jLgorCQkJCTVGLCBOby4zNSwgU2ludGFpIFJkLiwgSmh1YmVpIENpdHkKKwkJCQlKaHViZWkgIEhzaW5DaHUgMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitEQy1FNy0xQyAgIChoZXgpCQlBVUcgRWxla3Ryb25payBHbWJICitEQ0U3MUMgICAgIChiYXNlIDE2KQkJQVVHIEVsZWt0cm9uaWsgR21iSAorCQkJCUtsZWlud29lbGxtaXNzIDUzCisJCQkJU3QuIE1hcnRpbiBhLiBXLiBTdHlyaWEgQS04NTgwCisJCQkJQVVTVFJJQQorCitEQy1GMC01RCAgIChoZXgpCQlMZXR0YSBUZWtub2xvamkKK0RDRjA1RCAgICAgKGJhc2UgMTYpCQlMZXR0YSBUZWtub2xvamkKKwkJCQlUVUJJVEFLIFRla25vbG9qaSBHZWxpc3Rpcm1lIEJvbGdlc2kKKwkJCQlDIEJsb2sgTm86MjYgR0VCWkUKKwkJCQlLT0NBRUxJICA0MTQ1NQorCQkJCVRVUktFWQorCitEQy1GOC01OCAgIChoZXgpCQlMb3JlbnQgTmV0d29ya3OjrCBJbmMuCitEQ0Y4NTggICAgIChiYXNlIDE2KQkJTG9yZW50IE5ldHdvcmtzo6wgSW5jLgorCQkJCVRoaXJkIEZsb29yLCBUZWNobm9sb2d5IENvbXBsZXgsIEhBTyBTY2llbmNlIFBhcmsKKwkJCQkxNyBTaGVuaGFpIFJkLiwgTmFuaGFpIERpc3RyaWN0IAorCQkJCUZvc2hhbiBHdWFuZ2RvbmcgUHJvdmluY2UgNTI4MjAwCisJCQkJQ0hJTkEKKworREMtRkEtRDUgICAoaGV4KQkJU1RST05HIEdlcy5tLmIuSC4KK0RDRkFENSAgICAgKGJhc2UgMTYpCQlTVFJPTkcgR2VzLm0uYi5ILgorCQkJCUZyYW56LUpvc2Vmcy1LYWkgMQorCQkJCVZpZW5uYSAgMTAxMAorCQkJCUFVU1RSSUEKKworRTAtMDUtQzUgICAoaGV4KQkJVFAtTElOSyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KK0UwMDVDNSAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRlY2hub2xvZ2llcyBDby4sTHRkLgorCQkJCUJ1aWxkaW5nIDcsIFNlY29uZCBQYXJ0LCBIb25naHVhbGluZyBJbmR1c3RyaWFsIFpvbmUKKwkJCQlYaWxpIHRvd24sIE5hbnNoYW4sIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMDAKKwkJCQlDSElOQQorCitFMC0wNi1FNiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCitFMDA2RTYgICAgIChiYXNlIDE2KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLgorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsCisJCQkJU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgMjAxNjEzCisJCQkJQ0hJTkEKKworRTAtMEItMjggICAoaGV4KQkJSW5vdm9uaWNzCitFMDBCMjggICAgIChiYXNlIDE2KQkJSW5vdm9uaWNzCisJCQkJMzE1IENUQyBCbHZkCisJCQkJTG91aXN2aWxsZSBDTyA4MDAyNworCQkJCVVOSVRFRCBTVEFURVMKKworRTAtMEMtN0YgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCitFMDBDN0YgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworRTAtMTQtM0UgICAoaGV4KQkJTW9kb29zaXMgSW5jLgorRTAxNDNFICAgICAoYmFzZSAxNikJCU1vZG9vc2lzIEluYy4KKwkJCQkjMzAyLCBTYW1pbCBCbGRnLiwgNjU2LTI4MgorCQkJCVNlb25nc29vLWRvbmcgMSBnYSwgU2Vvbmdkb25nLWd1CisJCQkJU2VvdWwgIDEzMy0xMTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRTAtMUMtNDEgICAoaGV4KQkJQWVyb2hpdmUgTmV0d29ya3MgSW5jLgorRTAxQzQxICAgICAoYmFzZSAxNikJCUFlcm9oaXZlIE5ldHdvcmtzIEluYy4KKwkJCQkzMzAgR2licmFsdGFyIERyaXZlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5CisJCQkJVU5JVEVEIFNUQVRFUworCitFMC0xQy1FRSAgIChoZXgpCQlCcmF2byBUZWNoLCBJbmMuCitFMDFDRUUgICAgIChiYXNlIDE2KQkJQnJhdm8gVGVjaCwgSW5jLgorCQkJCTYxODUgUGh5bGxpcyBEci4gVW5pdCBELgorCQkJCUN5cHJlc3MgQ0EgOTA2MzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLTFFLTA3ICAgKGhleCkJCUFuaXRlIFRlbGVjb21zICBVUy4gSW5jCitFMDFFMDcgICAgIChiYXNlIDE2KQkJQW5pdGUgVGVsZWNvbXMgIFVTLiBJbmMKKwkJCQkxMDYgVmlzdGEgQ2VudHJlIERyCisJCQkJRm9yZXN0IFZBIDI0NTUxCisJCQkJVU5JVEVEIFNUQVRFUworCitFMC0xRi0wQSAgIChoZXgpCQlYc2xlbnQgRW5lcmd5IFRlY2hub2xvZ2llcy4gTExDCitFMDFGMEEgICAgIChiYXNlIDE2KQkJWHNsZW50IEVuZXJneSBUZWNobm9sb2dpZXMuIExMQworCQkJCTc0MjggUmVkd29vZCBCbHZkCisJCQkJU3VpdGUgMTAyCisJCQkJTm92YXRvIENBIDk0OTQ1CisJCQkJVU5JVEVEIFNUQVRFUworCitFMC0yNC03RiAgIChoZXgpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKK0UwMjQ3RiAgICAgKGJhc2UgMTYpCQlIVUFXRUkgVEVDSE5PTE9HSUVTIENPLixMVEQKKwkJCQlIdWF3ZWkgaW5kdXN0cmlhbCBiYXNlLEJhbnRpYW4sTG9uZ2dhbmcKKwkJCQlTaGVuWmhlbiBHdWFuZ0RvbmcgNTE4MTI5CisJCQkJQ0hJTkEKKworRTAtMjUtMzggICAoaGV4KQkJVGl0YW4gUGV0IFByb2R1Y3RzCitFMDI1MzggICAgIChiYXNlIDE2KQkJVGl0YW4gUGV0IFByb2R1Y3RzCisJCQkJNjUyMSBDcmVlZG1vb3IgUmQuIFN1aXRlIDEwMQorCQkJCVJhbGVpZ2ggTkMgMjc2MTMKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLTI2LTMwICAgKGhleCkJCUludHJpZ3VlIFRlY2hub2xvZ2llcywgSW5jLgorRTAyNjMwICAgICAoYmFzZSAxNikJCUludHJpZ3VlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTgwMCBPbGQgUG9uZCBSb2FkCisJCQkJIzcwNQorCQkJCUJyaWRnZXZpbGxlIFBBIDE1MDE3CisJCQkJVU5JVEVEIFNUQVRFUworCitFMC0yNi0zNiAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKK0UwMjYzNiAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlDQVJSRVRFUkEgQkFTRSBBRVJFQSAjIDU4NTAKKwkJCQlaYXBvcGFuIEphbGlzY28gNDQxMzAKKwkJCQlNRVhJQ08KKworRTAtMjctMUEgICAoaGV4KQkJVFRDIE5leHQtZ2VuZXJhdGlvbiBIb21lIE5ldHdvcmsgU3lzdGVtIFdHCitFMDI3MUEgICAgIChiYXNlIDE2KQkJVFRDIE5leHQtZ2VuZXJhdGlvbiBIb21lIE5ldHdvcmsgU3lzdGVtIFdHCisJCQkJMS0xLTEyIFNoaWJhIEtvdWVuCisJCQkJTWluYXRvLWt1IFRva3lvIDEwNS0wMDExCisJCQkJSkFQQU4KKworRTAtMkEtODIgICAoaGV4KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCitFMDJBODIgICAgIChiYXNlIDE2KQkJVW5pdmVyc2FsIEdsb2JhbCBTY2llbnRpZmljIEluZHVzdHJpYWwgQ28uLCBMdGQuCisJCQkJMTQxLCBMQU5FIDM1MSwgU0VDLjEsIFRBSVBJTkcgUkQuCisJCQkJVFNBT1RVRU4KKwkJCQlOQU5UT1UgNTQyNjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0UwLTMwLTA1ICAgKGhleCkJCUFsY2F0ZWwtTHVjZW50IFNoYW5naGFpIEJlbGwgQ28uLCBMdGQgCitFMDMwMDUgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQgU2hhbmdoYWkgQmVsbCBDby4sIEx0ZCAKKwkJCQlQdWRvbmcgSmlucWlhbworCQkJCVNoYW5naGFpICAyMDEyMDYKKwkJCQlDSElOQQorCitFMC0zOS1ENyAgIChoZXgpCQlQbGV4eGksIEluYy4KK0UwMzlENyAgICAgKGJhc2UgMTYpCQlQbGV4eGksIEluYy4KKwkJCQkxMDAgSW5ub3ZhdGl2ZSBXYXkgU3VpdGUgMzMyMgorCQkJCVN1aXRlIDMzMjIKKwkJCQlOYXNodWEgTkggMDMwNjIKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLTNDLTVCICAgKGhleCkJCVNIRU5aSEVOIEpJQVhJTkpJRSBFTEVDVFJPTiBDTy4sTFRECitFMDNDNUIgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gSklBWElOSklFIEVMRUNUUk9OIENPLixMVEQKKwkJCQlTaGVuemhlbiBKaWF4aW5qaWUgU2VjdXJpdHkgSW5kdXN0cmlhbCBwYXJrLE5vIDYgWGluIEhlIFhpbiB4aW5nIEluZHVzdHJpYWwgUGFyaywgRnV5b25nIFRvd24sQmFvJ2FuIERpc3RyaWN0IAorCQkJCVNIRU5aSEVOIEdVQU5HRE9ORyA1MTgxMDMKKwkJCQlDSElOQQorCitFMC0zRS03RCAgIChoZXgpCQlkYXRhLWNvbXBsZXggR21iSAorRTAzRTdEICAgICAoYmFzZSAxNikJCWRhdGEtY29tcGxleCBHbWJICisJCQkJRPxzdGVybmdyYWJlbiA3CisJCQkJSGFsYmVyc3RhZHQgU2FjaHNlbi1BbmhhbHQgMzg4MjAKKwkJCQlHRVJNQU5ZCisKK0UwLTQ2LTlBICAgKGhleCkJCU5FVEdFQVIKK0UwNDY5QSAgICAgKGJhc2UgMTYpCQlORVRHRUFSCisJCQkJMzUwIEVBU1QgUExVTUVSSUEgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQUxJRk9STklBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFMC01OC05RSAgIChoZXgpCQlMYWVyZGFsIE1lZGljYWwKK0UwNTg5RSAgICAgKGJhc2UgMTYpCQlMYWVyZGFsIE1lZGljYWwKKwkJCQlUYW5rZSBTdmlsYW5kc2dhdGUgMzAKKwkJCQlTdGF2YW5nZXIgIDQwMDIKKwkJCQlOT1JXQVkKKworRTAtNUItNzAgICAoaGV4KQkJSW5ub3ZpZCwgQ28uLCBMdGQuCitFMDVCNzAgICAgIChiYXNlIDE2KQkJSW5ub3ZpZCwgQ28uLCBMdGQuCisJCQkJNXRoIEZsb29yLCBCb2dhIEJ1aWxkaW5nLCA4MjEtMywgQmFuZ2JhZWRvbmcsIFNlb2Nob2d1CisJCQkJU2VvdWwgIDEzNy0wNjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRTAtNUQtQTYgICAoaGV4KQkJRGV0bGVmIEZpbmsgRWxla3Ryb25payAmYW1wOyBTb2Z0d2FyZWVudHdpY2tsdW5nCitFMDVEQTYgICAgIChiYXNlIDE2KQkJRGV0bGVmIEZpbmsgRWxla3Ryb25payAmYW1wOyBTb2Z0d2FyZWVudHdpY2tsdW5nCisJCQkJQnLvv71obHN0cmHvv71lIDEzCisJCQkJTe+/vXNzaW5nZW4gIDcyMTE2CisJCQkJR0VSTUFOWQorCitFMC01Ri1COSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitFMDVGQjkgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFMC02MS1CMiAgIChoZXgpCQlIQU5HWkhPVSBaRU5PSU5URUwgVEVDSE5PTE9HWSBDTy4sIExURAorRTA2MUIyICAgICAoYmFzZSAxNikJCUhBTkdaSE9VIFpFTk9JTlRFTCBURUNITk9MT0dZIENPLiwgTFRECisJCQkJUm9vbSA4MDYsIEYjLCBDYW1icmlkZ2UgQ29tYnJpZGdlLCBTaGVuaHVhIFJvYWQsRGlzdHJpY3QgWGlodSwgCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDMwCisJCQkJQ0hJTkEKKworRTAtNjItOTAgICAoaGV4KQkJSmluYW4gSm92aXNpb24gU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitFMDYyOTAgICAgIChiYXNlIDE2KQkJSmluYW4gSm92aXNpb24gU2NpZW5jZSAmIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJUm9vbSA0MDcsIFRvd2VyIEMsIEN5YmVyIFBvcnQgQnVpbGRpbmcsCisJCQkJNDcgU2hhbmRhIFJkCisJCQkJSmluYW4gU2hhbmRvbmcgMjUwMDEzCisJCQkJQ0hJTkEKKworRTAtNjQtQkIgICAoaGV4KQkJRGlnaVZpZXcgUy5yLmwuCitFMDY0QkIgICAgIChiYXNlIDE2KQkJRGlnaVZpZXcgUy5yLmwuCisJCQkJVmlhIFNlbmlnYWxsaWEgMTgvMgorCQkJCU1pbGFubyAgMjAxNjEKKwkJCQlJVEFMWQorCitFMC02OS05NSAgIChoZXgpCQlQRUdBVFJPTiBDT1JQT1JBVElPTgorRTA2OTk1ICAgICAoYmFzZSAxNikJCVBFR0FUUk9OIENPUlBPUkFUSU9OCisJCQkJTm8uIDc2LCBMaWdvbmcgU3QuLCBCZWl0b3UsIAorCQkJCVRhaXBlaSAgMTEyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFMC04Ny1CMSAgIChoZXgpCQlOYXRhLUluZm8gTHRkLgorRTA4N0IxICAgICAoYmFzZSAxNikJCU5hdGEtSW5mbyBMdGQuCisJCQkJMjgsIFByb2tob3JvdmEgc3RyLgorCQkJCVlvc2hrYXItT2xhIFJlcHVibGljIE1hcmktRWwgNDI0MDA3CisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKK0UwLThBLTdFICAgKGhleCkJCUV4cG9uZW50CitFMDhBN0UgICAgIChiYXNlIDE2KQkJRXhwb25lbnQKKwkJCQkxNDkgQ29tbW9ud2VhbHRoIERyaXZlCisJCQkJTWVubG8gUGFyayBDQSA5NDAyNQorCQkJCVVOSVRFRCBTVEFURVMKKworRTAtOEYtRUMgICAoaGV4KQkJUkVQT1RFQyBDTy4sIExURC4KK0UwOEZFQyAgICAgKGJhc2UgMTYpCQlSRVBPVEVDIENPLiwgTFRELgorCQkJCTNGLCAyNTguIAorCQkJCUxJQU4gQ0hFTiBSRC4gCisJCQkJQ0hVTkcgSE8gQ0lUWSwgVEFJUEVJIENPVU5UWSAgMjM1CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFMC05MS01MyAgIChoZXgpCQlYQVZpIFRlY2hub2xvZ2llcyBDb3JwLgorRTA5MTUzICAgICAoYmFzZSAxNikJCVhBVmkgVGVjaG5vbG9naWVzIENvcnAuCisJCQkJOUYsIE5vLiAxMjksIEhzaW5nIFRlIFJkLCBTYW5jaHVuZyBDaXR5CisJCQkJVGFpcGVpICAyNDEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0UwLTkxLUY1ICAgKGhleCkJCU5FVEdFQVIKK0UwOTFGNSAgICAgKGJhc2UgMTYpCQlORVRHRUFSCisJCQkJMzUwIEVBU1QgUExVTUVSSUEgRFJJVkUKKwkJCQlTQU4gSk9TRSBDQUxJRk9STklBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFMC05NC02NyAgIChoZXgpCQlJbnRlbCBDb3Jwb3JhdGUKK0UwOTQ2NyAgICAgKGJhc2UgMTYpCQlJbnRlbCBDb3Jwb3JhdGUKKwkJCQlMb3QgOCwgSmFsYW4gSGktVGVjaCAyLzMKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKK0UwLTk1LTc5ICAgKGhleCkJCU9SVEhPc29mdCBpbmMsIGQvYi9hIFppbW1lciBDQVMKK0UwOTU3OSAgICAgKGJhc2UgMTYpCQlPUlRIT3NvZnQgaW5jLCBkL2IvYSBaaW1tZXIgQ0FTCisJCQkJNzUgUXVlZW4gU3RyZWV0LCBTdWl0ZSAzMzAwCisJCQkJTW9udHJlYWwgUXVlYmVjIEgzQyAyTjYKKwkJCQlDQU5BREEKKworRTAtOUQtQjggICAoaGV4KQkJUExBTkVYIENPTU1VTklDQVRJT05TIElOQy4KK0UwOURCOCAgICAgKGJhc2UgMTYpCQlQTEFORVggQ09NTVVOSUNBVElPTlMgSU5DLgorCQkJCVBsYW5leCBWb2x0YSBCbGRnLiwgMi0xMS05IEViaXN1LU5pc2hpLFNoaWJ1eWEta3UsCisJCQkJVG9reW8gMTUwMDAyMQorCQkJCUpBUEFOCisKK0UwLUExLUQ3ICAgKGhleCkJCVNGUgorRTBBMUQ3ICAgICAoYmFzZSAxNikJCVNGUgorCQkJCTQwLzQyIFF1YWkgZHUgcG9pbnQgZHUgam91cgorCQkJCUJvdWxvZ25lIEJpbGxhbmNvdXJ0IEhhdXRzIGRlIFNlaW5lIDkyNjU5CisJCQkJRlJBTkNFCisKK0UwLUEzLTBGICAgKGhleCkJCVBldmNvCitFMEEzMEYgICAgIChiYXNlIDE2KQkJUGV2Y28KKwkJCQkxNDAxIFRhbmdpZXIgRHJpdmUKKwkJCQlCYWx0aW1vcmUgTUQgMjEyMjAKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLUE2LTcwICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitFMEE2NzAgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSAgOTA1OTAKKwkJCQlGSU5MQU5ECisKK0UwLUFBLUIwICAgKGhleCkJCUdFTkVSQUwgVklTSU9OIEVMRUNUUk9OSUNTIENPLiBMVEQuCitFMEFBQjAgICAgIChiYXNlIDE2KQkJR0VORVJBTCBWSVNJT04gRUxFQ1RST05JQ1MgQ08uIExURC4KKwkJCQlSb29tIDYwNSwgV2VzdCBCbG9jayAyMDMsIFRhaXJhbiBJbmR1c3RyaWFsIFpvbmUKKwkJCQlGdXRpYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDQwCisJCQkJQ0hJTkEKKworRTAtQUItRkUgICAoaGV4KQkJT3JiIE5ldHdvcmtzLCBJbmMuCitFMEFCRkUgICAgIChiYXNlIDE2KQkJT3JiIE5ldHdvcmtzLCBJbmMuCisJCQkJNDI4IDEzdGggU3RyZWV0CisJCQkJM3JkIEZsb29yCisJCQkJT2FrbGFuZCBDQSA5NDYxMgorCQkJCVVOSVRFRCBTVEFURVMKKworRTAtQUUtNUUgICAoaGV4KQkJQUxQUyBFbGVjdHJpYyBDbywuIEx0ZC4KK0UwQUU1RSAgICAgKGJhc2UgMTYpCQlBTFBTIEVsZWN0cmljIENvLC4gTHRkLgorCQkJCTYtMy0zNiBGdXJ1a2F3YW5ha2F6YXRvLAorCQkJCU9zYWtpIE1peWFnaS1wcmVmIDk4OS02MTgxCisJCQkJSkFQQU4KKworRTAtQjktQTUgICAoaGV4KQkJQXp1cmV3YXZlCitFMEI5QTUgICAgIChiYXNlIDE2KQkJQXp1cmV3YXZlCisJCQkJOEYuLCBCYW96aG9uZyBSZC4KKwkJCQlYaW5kaWFuIENpdHkgVGFpcGVpIENvdW50eSAyMzEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0UwLUI5LUJBICAgKGhleCkJCUFwcGxlLCBJbmMuCitFMEI5QkEgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLUJDLTQzICAgKGhleCkJCUMyIE1pY3Jvc3lzdGVtcywgSW5jLgorRTBCQzQzICAgICAoYmFzZSAxNikJCUMyIE1pY3Jvc3lzdGVtcywgSW5jLgorCQkJCTI4MzMgSnVuY3Rpb24gQXZlbnVlCisJCQkJU3VpdGUgMTAxCisJCQkJU2FuIEpvc2UgQ2FsaWZvcm5pYSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRTAtQzItODYgICAoaGV4KQkJQWlzYWkgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLiwgTHRkLgorRTBDMjg2ICAgICAoYmFzZSAxNikJCUFpc2FpIENvbW11bmljYXRpb24gVGVjaG5vbG9neSBDby4sIEx0ZC4KKwkJCQlSb29tIDI2MTAgQXNpYSBUcmFkZSBDZW50cmUsCisJCQkJNzkgTGkgTXVrIFJvYWQsCisJCQkJS3dhaSBDaHVuZyBOLlQuIDg1MgorCQkJCUhPTkcgS09ORworCitFMC1DOS0yMiAgIChoZXgpCQlKaXJlaCBFbmVyZ3kgVGVjaC4sIEx0ZC4KK0UwQzkyMiAgICAgKGJhc2UgMTYpCQlKaXJlaCBFbmVyZ3kgVGVjaC4sIEx0ZC4KKwkJCQkjNjA2IFNlb3VsIEZvcmVzdCBIYWxsYXNpZ21hdmFsbGV5LCAzMjUtMgorCQkJCVNlb25nc3UtZG9uZyAyKGkpLWdhLCAKKwkJCQlTZW91bCBTZW9uZ2RvbmctR3UgMTMzLTEyMAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFMC1DQS00RCAgIChoZXgpCQlTaGVuemhlbiBVbmlzdGFyIENvbW11bmljYXRpb24gQ28uLExURAorRTBDQTREICAgICAoYmFzZSAxNikJCVNoZW56aGVuIFVuaXN0YXIgQ29tbXVuaWNhdGlvbiBDby4sTFRECisJCQkJOS9GLFFpbmdoYWkgQnVpbGRpbmcsNzA0MywgQmVyaHVhbiBSb2FkLCBGdXRpYW4gRGlzdHJpY3QsIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwMzQKKwkJCQlDSElOQQorCitFMC1DQS05NCAgIChoZXgpCQlBc2tleSBDb21wdXRlcgorRTBDQTk0ICAgICAoYmFzZSAxNikJCUFza2V5IENvbXB1dGVyCisJCQkJMTBGLE5PLjExOSxDSElFTktBTkcgUkQsQ0hVTkctSE8gQ0lUWSwgCisJCQkJVEFJUEVJIENPVU5UWSAyMzU4NQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRTAtQ0ItMUQgICAoaGV4KQkJUFJJVkFURQorRTBDQjFEICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCitFMC1DQi00RSAgIChoZXgpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KK0UwQ0I0RSAgICAgKGJhc2UgMTYpCQlBU1VTVGVrIENPTVBVVEVSIElOQy4KKwkJCQkxNSxMaS1UZSBSZC4sUGVpdG91LCAKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRTAtQ0YtMkQgICAoaGV4KQkJR2VtaW50ZWsgQ29ycG9yYXRpb24KK0UwQ0YyRCAgICAgKGJhc2UgMTYpCQlHZW1pbnRlayBDb3Jwb3JhdGlvbgorCQkJCTVGLTEsIE5vLjgsIEFsbGV5IDMwLCBMYW5lIDM1OCwgUnVlaWd1YW5nIFJkLgorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFMC1EMS0wQSAgIChoZXgpCQlLYXRvdWRlbmtpa291Z3lvdXN5byBjbyBsdGQKK0UwRDEwQSAgICAgKGJhc2UgMTYpCQlLYXRvdWRlbmtpa291Z3lvdXN5byBjbyBsdGQKKwkJCQlvdWppaG9udHlvdTEtNC0xMworCQkJCWtpdGEta3UgdG9reW8tdG8gMTE0LTAwMjIKKwkJCQlKQVBBTgorCitFMC1ENy1CQSAgIChoZXgpCQlUZXhhcyBJbnN0cnVtZW50cworRTBEN0JBICAgICAoYmFzZSAxNikJCVRleGFzIEluc3RydW1lbnRzCisJCQkJMTI1MDAgVEkgQm91bGV2YXJkCisJCQkJTVMgODcyMworCQkJCURhbGxhcyBUZXhhcyA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworRTAtREEtREMgICAoaGV4KQkJSlZDIEtFTldPT0QgQ29ycG9yYXRpb24KK0UwREFEQyAgICAgKGJhc2UgMTYpCQlKVkMgS0VOV09PRCBDb3Jwb3JhdGlvbgorCQkJCTMtMTIsIE1vcml5YWNobywgS2FuYWdhd2Eta3UKKwkJCQlZb2tvaGFtYS1zaGkgS2FuYWdhd2EgMjIxLTAwMjIKKwkJCQlKQVBBTgorCitFMC1EQi01NSAgIChoZXgpCQlEZWxsIEluYworRTBEQjU1ICAgICAoYmFzZSAxNikJCURlbGwgSW5jCisJCQkJT25lIERlbGwgd2F5CisJCQkJTVM6IFJSNS00NQorCQkJCVJvdW5kIFJvY2sgIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCitFMC1FNy01MSAgIChoZXgpCQlOaW50ZW5kbyBDby4sIEx0ZC4KK0UwRTc1MSAgICAgKGJhc2UgMTYpCQlOaW50ZW5kbyBDby4sIEx0ZC4KKwkJCQkxMS0xIEhPS09UQVRFLUNITworCQkJCUtBTUlUT0JBLCBNSU5BTUktS1UKKwkJCQlLWU9UTyAgNjAxLTg1MDEKKwkJCQlKQVBBTgorCitFMC1FOC1FOCAgIChoZXgpCQlPbGl2ZSBUZWxlY29tbXVuaWNhdGlvbiBQdnQuIEx0ZAorRTBFOEU4ICAgICAoYmFzZSAxNikJCU9saXZlIFRlbGVjb21tdW5pY2F0aW9uIFB2dC4gTHRkCisJCQkJODYyLCBVZHlvZyBWaWhhcgorCQkJCVBoYXNlIC0gVgorCQkJCUd1cmdhb24gSGFyeWFuYSAxMjIwMTYKKwkJCQlJTkRJQQorCitFMC1FRC0xQSAgIChoZXgpCQl2YXN0cml2ZXIgVGVjaG5vbG9neSBDby4sIEx0ZAorRTBFRDFBICAgICAoYmFzZSAxNikJCXZhc3RyaXZlciBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJQS02QSBLZXNoaSBCdWlsZGluZyxOby4yOCxYaW54aSBSb2FkLEhhaWRpYW4sCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworRTAtRUUtMUIgICAoaGV4KQkJUGFuYXNvbmljIEF1dG9tb3RpdmUgU3lzdGVtcyBDb21wYW55IG9mIEFtZXJpY2EKK0UwRUUxQiAgICAgKGJhc2UgMTYpCQlQYW5hc29uaWMgQXV0b21vdGl2ZSBTeXN0ZW1zIENvbXBhbnkgb2YgQW1lcmljYQorCQkJCTc3NiBIaWdod2F5IDc0IFNvdXRoCisJCQkJUGVhY2h0cmVlIENpdHkgR2VvcmdpYSAzMDI2OQorCQkJCVVOSVRFRCBTVEFURVMKKworRTAtRUYtMjUgICAoaGV4KQkJTGludGVzIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitFMEVGMjUgICAgIChiYXNlIDE2KQkJTGludGVzIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJOUYtMS4sIE5vLjE1MCwgSmlhbiAxc3QgUmQuLCBaaG9uZ2hlIERpc3QuLCAKKwkJCQkgTmV3IFRhaXBlaSBDaXR5ICAgMjM1MTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0UwLUYyLTExICAgKGhleCkJCURpZ2l0YWx3YXR0CitFMEYyMTEgICAgIChiYXNlIDE2KQkJRGlnaXRhbHdhdHQKKwkJCQlWaWEgRGFudGUsIDE4CisJCQkJUmVuYXRlIEJyaWFuemEgTUIgMjAwNTUKKwkJCQlJVEFMWQorCitFMC1GMy03OSAgIChoZXgpCQlWYWRkaW8KK0UwRjM3OSAgICAgKGJhc2UgMTYpCQlWYWRkaW8KKwkJCQk5NDMzIFNjaWVuY2UgQ2VudGVyIERyaXZlCisJCQkJTmV3IEhvcGUgTU4gNTU0MjgKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLUY4LTQ3ICAgKGhleCkJCUFwcGxlLCBJbmMuCitFMEY4NDcgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0UwLUY5LUJFICAgKGhleCkJCUNsb3VkZW5hIENvcnAuCitFMEY5QkUgICAgIChiYXNlIDE2KQkJQ2xvdWRlbmEgQ29ycC4KKwkJCQk2Ri4sIE5vLiA1LCBBbGxleSAyMiwgTGFuZSA1MTMKKwkJCQlSdWlndWFuZyBSb2FkCisJCQkJVGFpcGVpIENpdHkgIDExNAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRTQtMTEtNUIgICAoaGV4KQkJSGV3bGV0dCBQYWNrYXJkCitFNDExNUIgICAgIChiYXNlIDE2KQkJSGV3bGV0dCBQYWNrYXJkCisJCQkJMTE0NDUgQ29tcGFxIENlbnRlciBEcml2ZQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0U0LTEyLTg5ICAgKGhleCkJCXRvcHN5c3RlbSBTeXN0ZW1oYXVzIEdtYkgKK0U0MTI4OSAgICAgKGJhc2UgMTYpCQl0b3BzeXN0ZW0gU3lzdGVtaGF1cyBHbWJICisJCQkJTW9ubmV0c3RyYd9lIDI0CisJCQkJV/xyc2VsZW4gTlJXIDUyMTQ2CisJCQkJR0VSTUFOWQorCitFNC0xQy00QiAgIChoZXgpCQlWMiBURUNITk9MT0dZLCBJTkMuCitFNDFDNEIgICAgIChiYXNlIDE2KQkJVjIgVEVDSE5PTE9HWSwgSU5DLgorCQkJCTQ0NTAgRW50ZXJwcmlzZSBTdHJlZXQKKwkJCQlTdWl0ZSAxMDEKKwkJCQlGcmVtb250IENhbGlmb3JuaWEgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKK0U0LTFGLTEzICAgKGhleCkJCUlCTSBDb3JwCitFNDFGMTMgICAgIChiYXNlIDE2KQkJSUJNIENvcnAKKwkJCQkzMDM5IEUgQ29ybndhbGxpcyBSZAorCQkJCVAuTy4gQk9YIDEyMTk1CisJCQkJUmVzZWFyY2ggVHJpYW5nbGUgUGFyayBOQyAyNzcwOS0yMTk1CisJCQkJVU5JVEVEIFNUQVRFUworCitFNC0yNS1FOSAgIChoZXgpCQlDb2xvci1DaGlwCitFNDI1RTkgICAgIChiYXNlIDE2KQkJQ29sb3ItQ2hpcAorCQkJCVRhdm9yIEJ1aWxkaW5nIDEKKwkJCQlQIE8gQm94IDE1OAorCQkJCU5ldyBJbmR1c3RyaWFsIFBhcmsgWW9rbmVhbSAyMDY5MgorCQkJCUlTUkFFTAorCitFNC0yNy03MSAgIChoZXgpCQlTbWFydGxhYnMKK0U0Mjc3MSAgICAgKGJhc2UgMTYpCQlTbWFydGxhYnMKKwkJCQk3MiwgT2t0eWFicnNrYXlhIFN0cmVldAorCQkJCU1vc2NvdyAgMTI3NTIxCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKK0U0LTJBLUQzICAgKGhleCkJCU1hZ25ldGkgTWFyZWxsaSBTLnAuQS4gUG93ZXJ0cmFpbgorRTQyQUQzICAgICAoYmFzZSAxNikJCU1hZ25ldGkgTWFyZWxsaSBTLnAuQS4gUG93ZXJ0cmFpbgorCQkJCVZpYSBkZWwgVGltYXZvIDMzCisJCQkJQm9sb2duYSAgNDAxMjgKKwkJCQlJVEFMWQorCitFNC0yQy01NiAgIChoZXgpCQlMaWxlZSBTeXN0ZW1zLCBMdGQuCitFNDJDNTYgICAgIChiYXNlIDE2KQkJTGlsZWUgU3lzdGVtcywgTHRkLgorCQkJCTI5MDUgU3RlbmRlciBXYXksIFN1aXRlIDc4CisJCQkJU2FudGEgQ2xhcmEgQ0EgOTUwNTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0U0LTJGLUY2ICAgKGhleCkJCVVuaWNvcmUgY29tbXVuaWNhdGlvbiBJbmMuCitFNDJGRjYgICAgIChiYXNlIDE2KQkJVW5pY29yZSBjb21tdW5pY2F0aW9uIEluYy4KKwkJCQlSbS4zMTIgQnVpbGRpbmcgMiBJUklDTywgTm8uMTFTdC40LFNoYW5nZGksIEhhaWRpYW4gRGlzdHJpY3QsCisJCQkJQmVpamluZyAgMTAwMDg1CisJCQkJQ0hJTkEKKworRTQtMzUtOTMgICAoaGV4KQkJSGFuZ3pob3UgR29UbyB0ZWNobm9sb2d5IENvLkx0ZAorRTQzNTkzICAgICAoYmFzZSAxNikJCUhhbmd6aG91IEdvVG8gdGVjaG5vbG9neSBDby5MdGQKKwkJCQlSb29tMTMwMyxCb2VlIGJ1aWxkaW5nLDM3NjAgTmFuaHVhbiBSb2FkLCBCaW5qaWFuZywgCisJCQkJSGFuZ3pob3UgWmhlamlhbmcgMzEwMDUzCisJCQkJQ0hJTkEKKworRTQtMzUtRkIgICAoaGV4KQkJU2FicmUgVGVjaG5vbG9neSAoSHVsbCkgTHRkCitFNDM1RkIgICAgIChiYXNlIDE2KQkJU2FicmUgVGVjaG5vbG9neSAoSHVsbCkgTHRkCisJCQkJM2EgTmV3bGFuZHMgU2NpZW5jZSBQYXJrCisJCQkJSW5nbGVtaXJlIExhbmUKKwkJCQlIdWxsIEVhc3QgWW9ya3NoaXJlIEhVNiA3VFEKKwkJCQlVTklURUQgS0lOR0RPTQorCitFNC0zNy1ENyAgIChoZXgpCQlIRU5SSSBERVBBRVBFIFMuQS5TLgorRTQzN0Q3ICAgICAoYmFzZSAxNikJCUhFTlJJIERFUEFFUEUgUy5BLlMuCisJCQkJNzUvNzcgUlVFIERVIFBSRSBCUk9DSEVUCisJCQkJU0FOTk9JUyAgOTUxMTIKKwkJCQlGUkFOQ0UKKworRTQtNDEtRTYgICAoaGV4KQkJT3R0ZWMgVGVjaG5vbG9neSBHbWJICitFNDQxRTYgICAgIChiYXNlIDE2KQkJT3R0ZWMgVGVjaG5vbG9neSBHbWJICisJCQkJUGxhbmV0ZW5yaW5nIDEyCisJCQkJUm9ubmVuYmVyZyBMb3dlciBTYXhvbnkgMzA5NTIKKwkJCQlHRVJNQU5ZCisKK0U0LTQ2LUJEICAgKGhleCkJCUMmQyBURUNITklDIFRBSVdBTiBDTy4sIExURC4KK0U0NDZCRCAgICAgKGJhc2UgMTYpCQlDJkMgVEVDSE5JQyBUQUlXQU4gQ08uLCBMVEQuCisJCQkJUk9PTTYgMTNGLCBOTy4yLEppYW4gOHRoIFJPQUQKKwkJCQlUYWlwZWkgQ2h1bmdobyBDaXR5LCAgMjM1MTEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0U0LTQ4LUM3ICAgKGhleCkJCUNpc2NvIFNQVlRHCitFNDQ4QzcgICAgIChiYXNlIDE2KQkJQ2lzY28gU1BWVEcKKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJTGF3cmVuY2V2aWxsZSBHZW9yZ2lhIDMwMDQ0CisJCQkJVU5JVEVEIFNUQVRFUworCitFNC00RS0xOCAgIChoZXgpCQlHYXJkYXNvZnQgVmlzaW9uTGltaXRlZAorRTQ0RTE4ICAgICAoYmFzZSAxNikJCUdhcmRhc29mdCBWaXNpb25MaW1pdGVkCisJCQkJVW5pdHMgMSBhbmQgMiwgQ2FzdGxlIEFjcmVzCisJCQkJRWxzd29ydGgKKwkJCQlDYW1icmlkZ2UgIENCMjMgNEpRCisJCQkJVU5JVEVEIEtJTkdET00KKworRTQtNEYtMjkgICAoaGV4KQkJTUEgTGlnaHRpbmcgVGVjaG5vbG9neSBHbWJICitFNDRGMjkgICAgIChiYXNlIDE2KQkJTUEgTGlnaHRpbmcgVGVjaG5vbG9neSBHbWJICisJCQkJRGFjaGRlY2tlcnN0ci4xNgorCQkJCVdhbGRi/HR0ZWxicnVubiBCYXZhcmlhIDk3Mjk3CisJCQkJR0VSTUFOWQorCitFNC01NS1FQSAgIChoZXgpCQlEZWRpY2F0ZWQgQ29tcHV0aW5nCitFNDU1RUEgICAgIChiYXNlIDE2KQkJRGVkaWNhdGVkIENvbXB1dGluZworCQkJCU4yNiBXMjM4ODAgQ29tbWVyY2UgQ2lyY2xlCisJCQkJV2F1a2VzaGEgV2lzY29uc2luIDUzMTg4CisJCQkJVU5JVEVEIFNUQVRFUworCitFNC02NC00OSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorRTQ2NDQ5ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworRTQtNjctQkEgICAoaGV4KQkJRGFuaXNoIEludGVycHJldGF0aW9uIFN5c3RlbXMgQS9TCitFNDY3QkEgICAgIChiYXNlIDE2KQkJRGFuaXNoIEludGVycHJldGF0aW9uIFN5c3RlbXMgQS9TCisJCQkJVmVzdHJlIFRlZ2xnYWRlIDEyCisJCQkJQ29wZW5oYWdlbiBTViAyNDUwCisJCQkJREVOTUFSSworCitFNC02Qy0yMSAgIChoZXgpCQltZXNzTWEgR21iSAorRTQ2QzIxICAgICAoYmFzZSAxNikJCW1lc3NNYSBHbWJICisJCQkJQW0gU3RhZHRmZWxkIDgKKwkJCQlJeGxlYmVuIFNhY2hzZW4tQW5oYWx0IDM5MTY3CisJCQkJR0VSTUFOWQorCitFNC03MS04NSAgIChoZXgpCQlTZWN1cmlmaSBMdGQKK0U0NzE4NSAgICAgKGJhc2UgMTYpCQlTZWN1cmlmaSBMdGQKKwkJCQkxNkYtMywgIzQ4MiBaaG9uZ3hpYW8gRSBSZCwgU2VjIDUKKwkJCQlUYWlwZWkgIDExMDgzCisJCQkJVEFJV0FOLCBQUk9WSU5DRSBPRiBDSElOQQorCitFNC03NS0xRSAgIChoZXgpCQlHZXRpbmdlIFN0ZXJpbGl6YXRpb24gQUIKK0U0NzUxRSAgICAgKGJhc2UgMTYpCQlHZXRpbmdlIFN0ZXJpbGl6YXRpb24gQUIKKwkJCQlCb3ggNjkKKwkJCQlHZXRpbmdlICAzMTA0NAorCQkJCVNXRURFTgorCitFNC03Ny1ENCAgIChoZXgpCQlNaW5ycmF5IEluZHVzdHJ5IENvLixMdGQgCitFNDc3RDQgICAgIChiYXNlIDE2KQkJTWlucnJheSBJbmR1c3RyeSBDby4sTHRkIAorCQkJCUM1LCBCdWlsZGluZyAyLCBaaG9uZ0hhaVhpbiAgLFNjaWVuY2UmVGVjaG5vbG9neSBQYXJrLCBHYW5saSBSZCwgTGlMYW5nIEJsdmQuLCBCdWppCisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDUxODExMgorCQkJCUNISU5BCisKK0U0LTdDLUY5ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMVEQKK0U0N0NGOSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIFllb25ndG9uZy1ndQorCQkJCVN1d29uLUNpdHksIAorCQkJCVN1d29uIEd5ZW9uZ2dpLWRvIDQ0Mzc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFNC04My05OSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorRTQ4Mzk5ICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjQ1MCBTZXF1ZW5jZSBEcml2ZQorCQkJCVNhbiBEaWVnbyBDQSA5MjEyMQorCQkJCVVOSVRFRCBTVEFURVMKKworRTQtOEEtRDUgICAoaGV4KQkJUkYgV0lORE9XIENPLiwgTFRELgorRTQ4QUQ1ICAgICAoYmFzZSAxNikJCVJGIFdJTkRPVyBDTy4sIExURC4KKwkJCQkxNEYsIERhZXJ1bmcgUG9zdHRvd2VyMworCQkJCTE4Mi00LCBHdXJvLWRvbmcsIEd1cm8tZ3UKKwkJCQlTZW91bCAgMTUyLTc0NgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFNC05MC02OSAgIChoZXgpCQlSb2Nrd2VsbCBBdXRvbWF0aW9uCitFNDkwNjkgICAgIChiYXNlIDE2KQkJUm9ja3dlbGwgQXV0b21hdGlvbgorCQkJCTEgQWxsZW4tQnJhZGxleSBEcml2ZQorCQkJCUNTLUMyMzkKKwkJCQlNYXlmaWVsZCBIZWlnaHRzIE9oaW8gNDQxMjQKKwkJCQlVTklURUQgU1RBVEVTCisKK0U0LTk3LUYwICAgKGhleCkJCVNoYW5naGFpIFZMQyBUZWNobm9sb2dpZXMgTHRkLiBDby4KK0U0OTdGMCAgICAgKGJhc2UgMTYpCQlTaGFuZ2hhaSBWTEMgVGVjaG5vbG9naWVzIEx0ZC4gQ28uCisJCQkJUm9vbSA5MDEsIEItWm9uZSwgRWFzdCBCZWlqaW5nIFJvYWQKKwkJCQlIdWFuZ3B1IERpc3QuCisJCQkJU2hhbmdoYWkgIDIwMDAwMQorCQkJCUNISU5BCisKK0U0LUE1LUVGICAgKGhleCkJCVRST04gTElOSyBFTEVDVFJPTklDUyBDTy4sIExURC4KK0U0QTVFRiAgICAgKGJhc2UgMTYpCQlUUk9OIExJTksgRUxFQ1RST05JQ1MgQ08uLCBMVEQuCisJCQkJRkxBVCBBLCAyMC9GLiwgQkxPQ0sgNCxPTiBOSU5HIEdBUkRFTiwKKwkJCQkxMCBTSEVVTkcgTklORyBST0FELFRTRVVORyBLV0FOIE8sCisJCQkJS09XTE9PTiAgOTk5MDc3CisJCQkJSE9ORyBLT05HCisKK0U0LUFCLTQ2ICAgKGhleCkJCVVBQiBTZWx0ZWthCitFNEFCNDYgICAgIChiYXNlIDE2KQkJVUFCIFNlbHRla2EKKwkJCQlEcmF1Z3lzdOtzIGcuIDE5CisJCQkJS2F1bmFzICBMVC01MTIzMCAKKwkJCQlMSVRIVUFOSUEKKworRTQtQUQtN0QgICAoaGV4KQkJU0NMIEVsZW1lbnRzCitFNEFEN0QgICAgIChiYXNlIDE2KQkJU0NMIEVsZW1lbnRzCisJCQkJNTgwMCBTdC1EZW5pcywgIzIyMgorCQkJCU1vbnRyZWFsIFF1ZWJlYyBIMlMzbDUKKwkJCQlDQU5BREEKKworRTQtQUYtQTEgICAoaGV4KQkJSEVTLVNPCitFNEFGQTEgICAgIChiYXNlIDE2KQkJSEVTLVNPCisJCQkJQ2FzZSBwb3N0YWxlIDIxMzQKKwkJCQlSb3V0ZSBkdSBSYXd5bCA0NworCQkJCVNpb24gIDE5NTAKKwkJCQlTV0lUWkVSTEFORAorCitFNC1CMC0yMSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKK0U0QjAyMSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRTQtQzYtRTYgICAoaGV4KQkJTW9waGllLCBMTEMKK0U0QzZFNiAgICAgKGJhc2UgMTYpCQlNb3BoaWUsIExMQworCQkJCTI4NTAgUmVkIEhpbGwgQXZlLgorCQkJCVN1aXRlIDEyOAorCQkJCVNhbnRhIEFuYSBDQSA5MjcwNQorCQkJCVVOSVRFRCBTVEFURVMKKworRTQtQzgtMDYgICAoaGV4KQkJQ2VpZWMgRWxlY3RyaWMgVGVjaG5vbG9neSBJbmMuCitFNEM4MDYgICAgIChiYXNlIDE2KQkJQ2VpZWMgRWxlY3RyaWMgVGVjaG5vbG9neSBJbmMuCisJCQkJOC9GIFdlc3QgU2lkZSwgQnVpbGRpbmcgMjAxLCBUZXJyYSBJbmR1c3RyaWFsICYgVHJhZGVwYXJrLCBDaGUgR29uZyBNaWFvLAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNDAKKwkJCQlDSElOQQorCitFNC1DRS04RiAgIChoZXgpCQlBcHBsZSwgSW5jLgorRTRDRThGICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworRTQtRDUtM0QgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKK0U0RDUzRCAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgICAyMDE2MTMKKwkJCQlDSElOQQorCitFNC1ENy0xRCAgIChoZXgpCQlPcmF5YSBUaGVyYXBldXRpY3MKK0U0RDcxRCAgICAgKGJhc2UgMTYpCQlPcmF5YSBUaGVyYXBldXRpY3MKKwkJCQk4MDAwIEphcnZpcyBBdmVudWUgIFN0ZS4gMjAwCisJCQkJTmV3YXJrIENBIDk0NTYwCisJCQkJVU5JVEVEIFNUQVRFUworCitFNC1ERC03OSAgIChoZXgpCQlFbi1WaXNpb24gQW1lcmljYSwgSW5jLgorRTRERDc5ICAgICAoYmFzZSAxNikJCUVuLVZpc2lvbiBBbWVyaWNhLCBJbmMuCisJCQkJMTg0NSBIb3ZleSBBdmUKKwkJCQlOb3JtYWwgSUwgNjE3NjEKKwkJCQlVTklURUQgU1RBVEVTCisKK0U0LUUwLUM1ICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLCBMVEQKK0U0RTBDNSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLiwgTFRECisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIFllb25ndG9uZy1ndQorCQkJCVN1d29uIEd5ZW9uZ2dpLWRvIDQ0Mzc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFNC1FQy0xMCAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorRTRFQzEwICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCU91bHUgT3UgOTA1OTAKKwkJCQlGSU5MQU5ECisKK0U0LUZBLTFEICAgKGhleCkJCVBBRCBQZXJpcGhlcmFsIEFkdmFuY2VkIERlc2lnbiBJbmMuCitFNEZBMUQgICAgIChiYXNlIDE2KQkJUEFEIFBlcmlwaGVyYWwgQWR2YW5jZWQgRGVzaWduIEluYy4KKwkJCQkxNDAwIEhvY3F1YXJ0CisJCQkJU2FpbnQtQnJ1bm8gUUMgSjNWIDZFMQorCQkJCUNBTkFEQQorCitFNC1GRi1ERCAgIChoZXgpCQlFTEVDVFJPTiBJTkRJQQorRTRGRkREICAgICAoYmFzZSAxNikJCUVMRUNUUk9OIElORElBCisJCQkJVFlQRSBJSSwgTk8uOSwgRFIuIFYuUy5JLiBFU1RBVEUKKwkJCQlUSElSVVZBTk1JWVVSCisJCQkJQ0hFTk5BSSBUQU1JTCBOQURVIDYwMCAwNDEKKwkJCQlJTkRJQQorCitFOC0wMy05QSAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMVEQKK0U4MDM5QSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMVEQKKwkJCQk0MTYsIE1hZXRhbi0zRG9uZywgWWVvbmd0b25nLUd1CisJCQkJU3V3b24gR3llb25nZ2ktRG8gNDQzLTc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFOC0wNC0wQiAgIChoZXgpCQlBcHBsZSwgSW5jLgorRTgwNDBCICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitFOC0wNC02MiAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitFODA0NjIgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFOC0wNS02RCAgIChoZXgpCQlOb3J0ZWwgTmV0d29ya3MKK0U4MDU2RCAgICAgKGJhc2UgMTYpCQlOb3J0ZWwgTmV0d29ya3MKKwkJCQlDQVJSRVRFUkEgQkFTRSBBRVJFQSAjIDU4NTAKKwkJCQlaYXBvcGFuIEphbGlzY28gNDQxMzAKKwkJCQlNRVhJQ08KKworRTgtMDYtODggICAoaGV4KQkJQXBwbGUsIEluYy4KK0U4MDY4OCAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCU9uZSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitFOC0wQi0xMyAgIChoZXgpCQlBa2liIFN5c3RlbXMgVGFpd2FuLCBJTkMKK0U4MEIxMyAgICAgKGJhc2UgMTYpCQlBa2liIFN5c3RlbXMgVGFpd2FuLCBJTkMKKwkJCQlOby41ODItMSwgUnVpR3VhbmcgUmQKKwkJCQlOZWlIdQorCQkJCVRhaXBlaSAgMTE0CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFOC0wQy0zOCAgIChoZXgpCQlEQUVZT1VORyBJTkZPUk1BVElPTiBTWVNURU0gQ08uLCBMVEQKK0U4MEMzOCAgICAgKGJhc2UgMTYpCQlEQUVZT1VORyBJTkZPUk1BVElPTiBTWVNURU0gQ08uLCBMVEQKKwkJCQkjODI2IFRBTU5JUC1ET05HLCBZVVNFT05HLUdPLCAKKwkJCQlEQUVKT04gIDMwNS01MTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRTgtMEMtNzUgICAoaGV4KQkJU3luY2JhaywgSW5jLgorRTgwQzc1ICAgICAoYmFzZSAxNikJCVN5bmNiYWssIEluYy4KKwkJCQk1IFJlc2VhcmNoIENlbnRlcgorCQkJCU1hcmlvbiBJQSA1MjMwMgorCQkJCVVOSVRFRCBTVEFURVMKKworRTgtMTAtMkUgICAoaGV4KQkJUmVhbGx5IFNpbXBsZSBTb2Z0d2FyZSwgSW5jCitFODEwMkUgICAgIChiYXNlIDE2KQkJUmVhbGx5IFNpbXBsZSBTb2Z0d2FyZSwgSW5jCisJCQkJUC5PLiBCb3ggMTA4NgorCQkJCVRpYnVyb24gQ2FsaWZvcm5pYSA5NDkyMAorCQkJCVVOSVRFRCBTVEFURVMKKworRTgtMTEtMzIgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTFRECitFODExMzIgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTFRECisJCQkJNDE2LCBNYWV0YW5nLTNEb25nLCBZZW9uZ29uLUd1CisJCQkJU3V3b24gR3llb25nZ2ktRG8gNDQzLTc0MgorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFOC0xMy0yNCAgIChoZXgpCQlHdWFuZ1pob3UgQm9uc29uaW5mbyBTeXN0ZW0gQ08uLExURAorRTgxMzI0ICAgICAoYmFzZSAxNikJCUd1YW5nWmhvdSBCb25zb25pbmZvIFN5c3RlbSBDTy4sTFRECisJCQkJNC9GLE5PLjEwMjkvMzEsR2FvUHUgUm9hZCxHYW9UYW5nIE5ldyBCdWlsZGluZyBEaXN0cmljdAorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgNTEwNjYzCisJCQkJQ0hJTkEKKworRTgtMjgtNzcgICAoaGV4KQkJVE1ZIENvLiwgTHRkLgorRTgyODc3ICAgICAoYmFzZSAxNikJCVRNWSBDby4sIEx0ZC4KKwkJCQlBdHRpYyBCbGRnLiAzRiwgMS0yLTEwIElzZS1jaG8sCisJCQkJQXNoaWthZ2Etc2hpIFRvY2hpZ2kgMzI2LTAwNTMKKwkJCQlKQVBBTgorCitFOC0yOC1ENSAgIChoZXgpCQlDb3RzIFRlY2hub2xvZ3kKK0U4MjhENSAgICAgKGJhc2UgMTYpCQlDb3RzIFRlY2hub2xvZ3kKKwkJCQlDLTcwMiwgQnVuZGFuZyBUZWNobm8gUGFyaywgMTQ1LAorCQkJCVlhdGFvcC1kb25nLCBCdW5kYW5nLWd1LAorCQkJCVN1bmduYW0tQ2l0eSBLeW91bmdnaS1kbyA0NjMtNzYwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0U4LTM5LTM1ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorRTgzOTM1ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCitFOC0zOS1ERiAgIChoZXgpCQlBc2tleSBDb21wdXRlcgorRTgzOURGICAgICAoYmFzZSAxNikJCUFza2V5IENvbXB1dGVyCisJCQkJMTBGLE5PLjExOSxDSElFTktBTkcgUkQsQ0hVTkctSE8sCisJCQkJVEFJUEVJIDIzNQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRTgtM0EtOTcgICAoaGV4KQkJT0NaIFRlY2hub2xvZ3kgR3JvdXAKK0U4M0E5NyAgICAgKGJhc2UgMTYpCQlPQ1ogVGVjaG5vbG9neSBHcm91cAorCQkJCTYzNzMgU2FuIElnbmFjaW8gQXZlCisJCQkJU2FuIEpvc2UgQ0EgOTUxMTkKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LTNFLUI2ICAgKGhleCkJCVJJTQorRTgzRUI2ICAgICAoYmFzZSAxNikJCVJJTQorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDNXOAorCQkJCUNBTkFEQQorCitFOC0zRS1GQiAgIChoZXgpCQlHRU9ERVNJQyBMVEQuCitFODNFRkIgICAgIChiYXNlIDE2KQkJR0VPREVTSUMgTFRELgorCQkJCTE4LDEwVEggQ1JPU1MsIE1BWVVSQSBTVFJFRVQKKwkJCQlQQVBBTk5BIExBWU9VVCwgT1VURVIgUklORyBST0FECisJCQkJQkFOR0FMT1JFIEtBUk5BVEFLQSA1NjAwOTQKKwkJCQlJTkRJQQorCitFOC00MC00MCAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitFODQwNDAgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00vMgorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitFOC00MC1GMiAgIChoZXgpCQlQRUdBVFJPTiBDT1JQT1JBVElPTiAKK0U4NDBGMiAgICAgKGJhc2UgMTYpCQlQRUdBVFJPTiBDT1JQT1JBVElPTiAKKwkJCQlOby4gNzYsIExpZ29uZyBTdC4sIEJlaXRvdSwgCisJCQkJVGFpcGVpICAxMTIKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0U4LTQzLUI2ICAgKGhleCkJCVFOQVAgU3lzdGVtcywgSW5jLgorRTg0M0I2ICAgICAoYmFzZSAxNikJCVFOQVAgU3lzdGVtcywgSW5jLgorCQkJCTJGLiwgTm8uMjIsIFpob25neGluZyBSZC4sIFhpemhpIERpc3QuCisJCQkJTmV3IFRhaXBlaSBDaXR5ICAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0U4LTRFLTA2ICAgKGhleCkJCUVEVVAgSU5URVJOQVRJT05BTCAoSEspIENPLiwgTFRECitFODRFMDYgICAgIChiYXNlIDE2KQkJRURVUCBJTlRFUk5BVElPTkFMIChISykgQ08uLCBMVEQKKwkJCQkyMEQgUm9vbSwgQmxvY2sgQiwgTW9kZXJuIFdpbmRvd3MgQnVpZGxpbmcsIEZ1VGlhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDI4CisJCQkJQ0hJTkEKKworRTgtNEUtQ0UgICAoaGV4KQkJTmludGVuZG8gQ28uLCBMdGQuCitFODRFQ0UgICAgIChiYXNlIDE2KQkJTmludGVuZG8gQ28uLCBMdGQuCisJCQkJMTEtMSBIT0tPVEFURS1DSE8KKwkJCQlLQU1JVE9CQSwgTUlOQU1JLUtVCisJCQkJS1lPVE8gIDYwMS04NTAxCisJCQkJSkFQQU4KKworRTgtNTQtODQgICAoaGV4KQkJTkVPIElORk9STUFUSU9OIFNZU1RFTVMgQ08uLCBMVEQuCitFODU0ODQgICAgIChiYXNlIDE2KQkJTkVPIElORk9STUFUSU9OIFNZU1RFTVMgQ08uLCBMVEQuCisJCQkJNjA5LCBKVU5HQU5HSU5EVVNQSUEsICM1MTctMTMsIFNBTkdEQUVXRU9OLURPTkcsIEpVTkdXRU9OLUdVCisJCQkJU0VPTkdOQU0tQ0lUWSBHWUVPTkdHSS1ETyA0NjItNzEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0U4LTU2LUQ2ICAgKGhleCkJCU5DVGVjaCBMdGQKK0U4NTZENiAgICAgKGJhc2UgMTYpCQlOQ1RlY2ggTHRkCisJCQkJMjAtMjIgQnJhaWQgUm9hZAorCQkJCU1vcm5pbmdzaWRlCisJCQkJRWRpbmJ1cmdoICBFSDEwIDZBRAorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0U4LTVCLTVCICAgKGhleCkJCUxHIEVMRUNUUk9OSUNTIElOQworRTg1QjVCICAgICAoYmFzZSAxNikJCUxHIEVMRUNUUk9OSUNTIElOQworCQkJCTE5LTEsIENIRU9OR0hPLVJJLCBKSU5XSS1NWUVPTgorCQkJCVBZRU9OR1RBRUsgR1lFT05HR0ktRE8gNDUxLTcxMworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFOC01RS01MyAgIChoZXgpCQlJbmZyYXRlYyBEYXRlbnRlY2huaWsgR21iSAorRTg1RTUzICAgICAoYmFzZSAxNikJCUluZnJhdGVjIERhdGVudGVjaG5payBHbWJICisJCQkJR2V2ZW5lciBXZWcgMzgKKwkJCQlOZXVlbnJhZGUgTlJXIDU4NTc5CisJCQkJR0VSTUFOWQorCitFOC02Qy1EQSAgIChoZXgpCQlTdXBlcmNvbXB1dGVycyBhbmQgTmV1cm9jb21wdXRlcnMgUmVzZWFyY2ggQ2VudGVyCitFODZDREEgICAgIChiYXNlIDE2KQkJU3VwZXJjb21wdXRlcnMgYW5kIE5ldXJvY29tcHV0ZXJzIFJlc2VhcmNoIENlbnRlcgorCQkJCTIsIENoZWtob3Ygc3QKKwkJCQlUYWdhbnJvZyAgUm9zdG92LW9uLURvbiByZWdpb24gIDM0NzkyMiAKKwkJCQlSVVNTSUFOIEZFREVSQVRJT04KKworRTgtNkQtNTIgICAoaGV4KQkJTW90b3JvbGEgTW9iaWxpdHksIEluYy4KK0U4NkQ1MiAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorCQkJCTY0NTAgU2VxdWVuY2UgRHJpdmUKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LTZELTZFICAgKGhleCkJCUNvbnRyb2wgJiBEaXNwbGF5IFN5c3RlbXMgTHRkIHQvYSBDRFNSYWlsCitFODZENkUgICAgIChiYXNlIDE2KQkJQ29udHJvbCAmIERpc3BsYXkgU3lzdGVtcyBMdGQgdC9hIENEU1JhaWwKKwkJCQlVbml0IDEsIEZ1bGNydW0gNCwKKwkJCQlTb2xlbnQgV2F5CisJCQkJV2hpdGVsZXkgSGFtcHNoaXJlIFBPMTUgN0ZUCisJCQkJVU5JVEVEIEtJTkdET00KKworRTgtNzUtN0YgICAoaGV4KQkJRklSUyBUZWNobm9sb2dpZXMoU2hlbnpoZW4pIENvLiwgTHRkCitFODc1N0YgICAgIChiYXNlIDE2KQkJRklSUyBUZWNobm9sb2dpZXMoU2hlbnpoZW4pIENvLiwgTHRkCisJCQkJUm0gMTJBLCBBcmVhIEEsIEhvbmdzb25nIEJ1c2luZXNzIEJ1aWxkaW5nLCBUYWlyYW4gOXRoIFJkLCBDaGVnb25nbWlhbywgCisJCQkJRnV0aWFuIERpc3RyaWN0CisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA0MAorCQkJCUNISU5BCisKK0U4LTc4LUExICAgKGhleCkJCUJFT1ZJRVcgSU5URVJDT00gRE9PCitFODc4QTEgICAgIChiYXNlIDE2KQkJQkVPVklFVyBJTlRFUkNPTSBET08KKwkJCQlCVUxFVkFSIE1JSEFKTEEgUFVQSU5BIDYKKwkJCQlCRUxHUkFERSAgMTEwNzAKKwkJCQlTRVJCSUEKKworRTgtN0EtRjMgICAoaGV4KQkJUzUgVGVjaCBTLnIubC4KK0U4N0FGMyAgICAgKGJhc2UgMTYpCQlTNSBUZWNoIFMuci5sLgorCQkJCVZpYSBUb3J0b25hIDcyCisJCQkJTWlsYW5vICAyMDE0NAorCQkJCUlUQUxZCisKK0U4LThELUY1ICAgKGhleCkJCVpOWVggTmV0d29ya3MsIEluYy4KK0U4OERGNSAgICAgKGJhc2UgMTYpCQlaTllYIE5ldHdvcmtzLCBJbmMuCisJCQkJNDg0MjEgTWlsbW9udCBEcml2ZQorCQkJCUZyZW1vbnQgQ0EgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LTk0LTRDICAgKGhleCkJCUNvZ2VudCBIZWFsdGhjYXJlIFN5c3RlbXMgTHRkCitFODk0NEMgICAgIChiYXNlIDE2KQkJQ29nZW50IEhlYWx0aGNhcmUgU3lzdGVtcyBMdGQKKwkJCQkxNDNlIEFydGh1ciBSb2FkCisJCQkJV2luZHNvcgorCQkJCUJlcmtzaGlyZSAgU0w0IDFTRQorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0U4LTk5LTVBICAgKGhleCkJCVBpaUdBQiwgUHJvY2Vzc2luZm9ybWF0aW9uIGkgR290ZWJvcmcgQUIKK0U4OTk1QSAgICAgKGJhc2UgMTYpCQlQaWlHQUIsIFByb2Nlc3NpbmZvcm1hdGlvbiBpIEdvdGVib3JnIEFCCisJCQkJQW5kZXJzIENhcmxzc29ucyBnYXRhIDEKKwkJCQlHb3RoZW5idXJnICA0MTcgNTUKKwkJCQlTV0VERU4KKworRTgtOTktQzQgICAoaGV4KQkJSFRDIENvcnBvcmF0aW9uCitFODk5QzQgICAgIChiYXNlIDE2KQkJSFRDIENvcnBvcmF0aW9uCisJCQkJTm8uIDIzLCBYaW5naHVhIFJkLiwgVGFveXVhbiBDaXR5CisJCQkJVGFveXVhbiBDb3VudHkgVGFpd2FuIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRTgtOUEtOEYgICAoaGV4KQkJUXVhbnRhIENvbXB1dGVyIEluYy4KK0U4OUE4RiAgICAgKGJhc2UgMTYpCQlRdWFudGEgQ29tcHV0ZXIgSW5jLgorCQkJCTIxMSwgV2VuIEh3YSAybmQgUmQuLEt1ZWkgU2hhbiwgVGFvIFl1YW4gCisJCQkJVEFJUEVJICAzMzM3NworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRTgtOUQtODcgICAoaGV4KQkJVG9zaGliYQorRTg5RDg3ICAgICAoYmFzZSAxNikJCVRvc2hpYmEKKwkJCQkyLTksU3VlaGlyby1DaG8KKwkJCQlPbWUgVG9reW8gMTk4ODcxMAorCQkJCUpBUEFOCisKK0U4LUE0LUMxICAgKGhleCkJCURlZXAgU2VhIEVsZWN0cm9uaWNzIFBMQworRThBNEMxICAgICAoYmFzZSAxNikJCURlZXAgU2VhIEVsZWN0cm9uaWNzIFBMQworCQkJCUhpZ2hmaWVsZCBIb3VzZQorCQkJCUh1bm1hbmJ5IEluZHVzdHJpYWwgRXN0YXRlCisJCQkJSHVubWFuYnkgTm9ydGggWW9ya3NoaXJlIFlPMTQgMFBICisJCQkJVU5JVEVEIEtJTkdET00KKworRTgtQjQtQUUgICAoaGV4KQkJU2hlbnpoZW4gQyZEIEVsZWN0cm9uaWNzIENvLixMdGQKK0U4QjRBRSAgICAgKGJhc2UgMTYpCQlTaGVuemhlbiBDJkQgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCUJ1aWxkaW5nIDIsIFhpYSBZb3UgU29uZyBNb3VudGFpbiBUb3AgSW5kdXN0cmlhbCBEaXN0cmljdCwgWW91IFNvbmcgVmlsbGFnZQorCQkJCUxvbmdodWEsIEJhbyBBbgorCQkJCVNoZW56aGVuIEd1YW5nIERvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworRTgtQjctNDggICAoaGV4KQkJQ2lzY28gU3lzdGVtcworRThCNzQ4ICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNLzIKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRTgtQkEtNzAgICAoaGV4KQkJQ2lzY28gU3lzdGVtcworRThCQTcwICAgICAoYmFzZSAxNikJCUNpc2NvIFN5c3RlbXMKKwkJCQk4MCBXZXN0IFRhc21hbiBEci4KKwkJCQlTSkNNMS0xCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LUJFLTgxICAgKGhleCkJCVNBR0VNQ09NCitFOEJFODEgICAgIChiYXNlIDE2KQkJU0FHRU1DT00KKwkJCQkyNTAgcm91dGUgZGUgbCdFbXBlcmV1cgorCQkJCVJVRUlMIE1BTE1BSVNPTiBJbGUgZGUgRnJhbmNlIDkyODQ4CisJCQkJRlJBTkNFCisKK0U4LUMyLTI5ICAgKGhleCkJCUgtRGlzcGxheXMgKE1TQykgQmhkCitFOEMyMjkgICAgIChiYXNlIDE2KQkJSC1EaXNwbGF5cyAoTVNDKSBCaGQKKwkJCQlOby4gMzEgJiAzMiwgSmFsYW4gR2FuZ3NhIER1YQorCQkJCVBhc2lyIEd1ZGFuZworCQkJCUpvaG9yIEJhaHJ1ICA4MTcwMAorCQkJCU1BTEFZU0lBCisKK0U4LUMzLTIwICAgKGhleCkJCUF1c3RjbyBDb21tdW5pY2F0aW9uIFN5c3RlbXMgUHR5IEx0ZAorRThDMzIwICAgICAoYmFzZSAxNikJCUF1c3RjbyBDb21tdW5pY2F0aW9uIFN5c3RlbXMgUHR5IEx0ZAorCQkJCTQwIE8nTWFsbGV5IFN0cmVldAorCQkJCU9zYm9ybmUgUGFyayBXZXN0ZXJuIEF1c3RyYWxpYSA2MDE3CisJCQkJQVVTVFJBTElBCisKK0U4LUNDLTMyICAgKGhleCkJCU1pY3JvbmV0ICBMVEQKK0U4Q0MzMiAgICAgKGJhc2UgMTYpCQlNaWNyb25ldCAgTFRECisJCQkJSGFtZXR6dWRhIDI3CisJCQkJQXpvciAgNTgwMDEKKwkJCQlJU1JBRUwKKworRTgtRDAtRkEgICAoaGV4KQkJTUtTIEluc3RydW1lbnRzIERldXRzY2hsYW5kIEdtYkgKK0U4RDBGQSAgICAgKGJhc2UgMTYpCQlNS1MgSW5zdHJ1bWVudHMgRGV1dHNjaGxhbmQgR21iSAorCQkJCVNjaGF0emJvZ2VuIDQzCisJCQkJTXVuaWNoICA4MTgyOSAKKwkJCQlHRVJNQU5ZCisKK0U4LUQ0LTgzICAgKGhleCkJCVVMVElNQVRFIEV1cm9wZSBUcmFuc3BvcnRhdGlvbiBFcXVpcG1lbnQgR21iSAorRThENDgzICAgICAoYmFzZSAxNikJCVVMVElNQVRFIEV1cm9wZSBUcmFuc3BvcnRhdGlvbiBFcXVpcG1lbnQgR21iSAorCQkJCUluZHVzdHJpZXN0ci4gMworCQkJCTMzMDAgTmllZGVy77+9c3RlcnJlaWNoIDMzMDAKKwkJCQlBVVNUUklBCisKK0U4LURBLTk2ICAgKGhleCkJCVpodWhhaSBUaWFucnVpIEVsZWN0cmljYWwgUG93ZXIgVGVjaC4gQ28uLCBMdGQuCitFOERBOTYgICAgIChiYXNlIDE2KQkJWmh1aGFpIFRpYW5ydWkgRWxlY3RyaWNhbCBQb3dlciBUZWNoLiBDby4sIEx0ZC4KKwkJCQlNaW55aW5nIFRlY2hub2xvZ3kgWm9uZSwgMTAjIEtlamkgMSBSb2FkLCBHYW5nd2FuIE1haW4gUm9hZCwgVGFuZ2ppYQorCQkJCVpodWhhaSBHdWFuZ2RvbmcgNTE5MDg1CisJCQkJQ0hJTkEKKworRTgtREEtQUEgICAoaGV4KQkJVmlkZW9Ib21lIFRlY2hub2xvZ3kgQ29ycC4KK0U4REFBQSAgICAgKGJhc2UgMTYpCQlWaWRlb0hvbWUgVGVjaG5vbG9neSBDb3JwLgorCQkJCTRGLTEsIE5vLiAxOTIsIERhIFR1bmcgUmQuLCBTZWMuIDMsIEhzaWNoaWgsCisJCQkJVGFpcGVpIEhzaWVuICAyMjEKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0U4LURGLUYyICAgKGhleCkJCVBSRiBDby4sIEx0ZC4KK0U4REZGMiAgICAgKGJhc2UgMTYpCQlQUkYgQ28uLCBMdGQuCisJCQkJIzUxMCwgTGVhZGVycyBCL0QsIFlhdG9wLWRvbmcKKwkJCQlCdW5kYW5nLWd1CisJCQkJU2VvbmduYW0tY2l0eSBHeWVvbmdnaS1kbyA0NjMtODI4CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0U4LUUwLThGICAgKGhleCkJCUdSQVZPVEVDSCBNQVJLSU5HIFNBUworRThFMDhGICAgICAoYmFzZSAxNikJCUdSQVZPVEVDSCBNQVJLSU5HIFNBUworCQkJCTU2IEFWRU5VRSBKRUFOIEpBVVJFUworCQkJCUxBIENIQVBFTExFIFNBSU5UIExVQyBBVUJFIDEwNjAwCisJCQkJRlJBTkNFCisKK0U4LUUwLUI3ICAgKGhleCkJCVRvc2hpYmEKK0U4RTBCNyAgICAgKGJhc2UgMTYpCQlUb3NoaWJhCisJCQkJMi05LFN1ZWhpcm8tQ2hvCisJCQkJT21lIFRva3lvIDE5ODg3MTAKKwkJCQlKQVBBTgorCitFOC1FMS1FMiAgIChoZXgpCQlFbmVyZ290ZXN0CitFOEUxRTIgICAgIChiYXNlIDE2KQkJRW5lcmdvdGVzdAorCQkJCUNob3J6b3dza2EgNDRCCisJCQkJR2xpd2ljZSBTbGFzayA0NC0xMDAKKwkJCQlQT0xBTkQKKworRTgtRTUtRDYgICAoaGV4KQkJU2Ftc3VuZyBFbGVjdHJvbmljcyBDby4sTHRkIAorRThFNUQ2ICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZCAKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRTgtRTctMzIgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQKK0U4RTczMiAgICAgKGJhc2UgMTYpCQlBbGNhdGVsLUx1Y2VudAorCQkJCTI2ODAxIFdlc3QgQWdvdXJhIFJvYWQKKwkJCQlDYWxhYmFzYXMgQ0EgOTEzMDEKKwkJCQlVTklURUQgU1RBVEVTCisKK0U4LUU3LTc2ICAgKGhleCkJCVNoZW56aGVuIEtvb3Rpb24gVGVjaG5vbG9neSBDby4sIEx0ZAorRThFNzc2ICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEtvb3Rpb24gVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCTMvRiwgQnVpbGRpbmcgIzQsIFhpbkppYW5YaW5nIEluZHVzdHJpYWwgUGFyaworCQkJCVNvbmdiYWkgUm9hZCwgTmFuc2hhbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgUHJvdmluY2UgNTE4MTA4CisJCQkJQ0hJTkEKKworRTgtRjEtQjAgICAoaGV4KQkJU0FHRU1DT00gU0FTCitFOEYxQjAgICAgIChiYXNlIDE2KQkJU0FHRU1DT00gU0FTCisJCQkJMjUwIFJPVVRFIERFIEwnRU1QRVJFVVIKKwkJCQlSVUVJTCBNQUxNQUlTT04gQ0VERVggSUxFIERFIEZSQU5DRSA5Mjg0OAorCQkJCUZSQU5DRQorCitFOC1GOS0yOCAgIChoZXgpCQlSRlRFQ0ggU1JMCitFOEY5MjggICAgIChiYXNlIDE2KQkJUkZURUNIIFNSTAorCQkJCVZJQSBWRU5FVE8sIDIyCisJCQkJU0NISU8gVklDRU5aQSAzNjAxNQorCQkJCUlUQUxZCisKK0VDLTBFLUQ2ICAgKGhleCkJCUlURUNIIElOU1RSVU1FTlRTIFNBUworRUMwRUQ2ICAgICAoYmFzZSAxNikJCUlURUNIIElOU1RSVU1FTlRTIFNBUworCQkJCTMgQXZlbnVlIGRlIGxhIE1hcmFubmUKKwkJCQlaSSBMYSBWYWxhbXBlCisJCQkJQ2jvv710ZWF1bmV1Zi1MZXMtTWFydGlndWVzICAxMzIyMAorCQkJCUZSQU5DRQorCitFQy0xMS0yMCAgIChoZXgpCQlGbG9EZXNpZ24gV2luZCBUdXJiaW5lIENvcnBvcmF0aW9uCitFQzExMjAgICAgIChiYXNlIDE2KQkJRmxvRGVzaWduIFdpbmQgVHVyYmluZSBDb3Jwb3JhdGlvbgorCQkJCVBhcGlyZmFicmlra2VuIDI4CisJCQkJU2lsa2Vib3JnICA4NjAwCisJCQkJREVOTUFSSworCitFQy0xNC1GNiAgIChoZXgpCQlCaW9Db250cm9sIEFTCitFQzE0RjYgICAgIChiYXNlIDE2KQkJQmlvQ29udHJvbCBBUworCQkJCUdyaW1zdGFkIEdhcmQgCisJCQkJUmFra2VzdGFkICAgTi0xODkwCisJCQkJTk9SV0FZCisKK0VDLTE3LTJGICAgKGhleCkJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorRUMxNzJGICAgICAoYmFzZSAxNikJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorCQkJCUJ1aWxkaW5nIDI0IChmbG9vcnMgMSwzLDQsNSkgYW5kIDI4IChmbG9vcnMxLTQpICBDZW50cmFsIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgUGFyayxTaGVubmFuIFJkLCBOYW5zaGFuLCBTaGVuemhlbixDaGluYQorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyBQcm92aW5jZSA1MTgwNTcKKwkJCQlDSElOQQorCitFQy0xQS01OSAgIChoZXgpCQlCZWxraW4gSW50ZXJuYXRpb25hbCBJbmMuCitFQzFBNTkgICAgIChiYXNlIDE2KQkJQmVsa2luIEludGVybmF0aW9uYWwgSW5jLgorCQkJCTEyMDQ1IEVhc3QgV2F0ZXJmcm9udCBEcml2ZQorCQkJCVBsYXlhIFZpc3RhIENhLiAgOTAwOTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0VDLTIzLTNEICAgKGhleCkJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQKK0VDMjMzRCAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdCwKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworRUMtMjMtNjggICAoaGV4KQkJSW50ZWxsaVZvaWNlIENvLixMdGQuCitFQzIzNjggICAgIChiYXNlIDE2KQkJSW50ZWxsaVZvaWNlIENvLixMdGQuCisJCQkJMy02IEtpb2ljaG8KKwkJCQlLaW9pY2hvIFBhcmsgQmxkLiAxRgorCQkJCUNoaXlvZGEgVG9reW8gMTAyLTAwOTQKKwkJCQlKQVBBTgorCitFQy0zMC05MSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitFQzMwOTEgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQy1NLzEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRUMtM0ItRjAgICAoaGV4KQkJTm92ZWxTYXQKK0VDM0JGMCAgICAgKGJhc2UgMTYpCQlOb3ZlbFNhdAorCQkJCUhhdGFhc2lhIDIxCisJCQkJUmFhbmFuYSAgMjM5NgorCQkJCUlTUkFFTAorCitFQy0zRi0wNSAgIChoZXgpCQlJbnN0aXR1dGUgNzA2LCBUaGUgU2Vjb25kIEFjYWRlbXkgQ2hpbmEgQWVyb3NwYWNlIFNjaWVuY2UgJiBJbmR1c3RyeSBDb3JwCitFQzNGMDUgICAgIChiYXNlIDE2KQkJSW5zdGl0dXRlIDcwNiwgVGhlIFNlY29uZCBBY2FkZW15IENoaW5hIEFlcm9zcGFjZSBTY2llbmNlICYgSW5kdXN0cnkgQ29ycAorCQkJCVlvbmdEaW5nIFJvYWQgLEhhaURpYW4gRGlzdHJpY3QuQmVpSmluZyAsTm8uNTEKKwkJCQlCZWlKaW5nICAxMDA4NTQKKwkJCQlDSElOQQorCitFQy00Mi1GMCAgIChoZXgpCQlBREwgRW1iZWRkZWQgU29sdXRpb25zLCBJbmMuCitFQzQyRjAgICAgIChiYXNlIDE2KQkJQURMIEVtYmVkZGVkIFNvbHV0aW9ucywgSW5jLgorCQkJCTQ0MTEgTW9yZW5hIEJsdmQuCisJCQkJU3VpdGUgMTAxCisJCQkJU2FuIERpZWdvIENBIDkyMTE3CisJCQkJVU5JVEVEIFNUQVRFUworCitFQy00My1FNiAgIChoZXgpCQlBV0NFUiBMdGQuCitFQzQzRTYgICAgIChiYXNlIDE2KQkJQVdDRVIgTHRkLgorCQkJCTEwMC00MTMgQnVjaGVvbiBUZWNobm9wYXJrCisJCQkJMzY0IFNhbkplb25nLWRvbmcsIE9qZW9uZy1ndQorCQkJCUJ1Y2hlb24tY2l0eSBHeWVvbmdnaS1kbyA0MjEtNzQxCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0VDLTQ0LTc2ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0VDNDQ3NiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0VDLTQ2LTQ0ICAgKGhleCkJCVRUSyBTQVMKK0VDNDY0NCAgICAgKGJhc2UgMTYpCQlUVEsgU0FTCisJCQkJNCwgUnVlIGR1IENoZW1pbiBWZXJ0CisJCQkJQ2xpY2h5ICA5MjExMAorCQkJCUZSQU5DRQorCitFQy00Ni03MCAgIChoZXgpCQlNZWluYmVyZyBGdW5rdWhyZW4gR21iSCAmYW1wOyBDby4gS0cKK0VDNDY3MCAgICAgKGJhc2UgMTYpCQlNZWluYmVyZyBGdW5rdWhyZW4gR21iSCAmYW1wOyBDby4gS0cKKwkJCQlMYW5nZSBXYW5kIDkKKwkJCQlCYWQgUHlybW9udCBORFMgMzE4MTIKKwkJCQlHRVJNQU5ZCisKK0VDLTRDLTREICAgKGhleCkJCVpBTyBOUEsgUm9UZUsKK0VDNEM0RCAgICAgKGJhc2UgMTYpCQlaQU8gTlBLIFJvVGVLCisJCQkJQmlsZC4gMTE5LTEsIFByb3NwZWt0IE1pcmEKKwkJCQlNb3Njb3cgTW9zY293IDEyOTIyMworCQkJCVJVU1NJQU4gRkVERVJBVElPTgorCitFQy01NC0yRSAgIChoZXgpCQlTaGFuZ2hhaSBYaU1laSBFbGVjdHJvbmljIFRlY2hub2xvZ3kgQ28uIEx0ZAorRUM1NDJFICAgICAoYmFzZSAxNikJCVNoYW5naGFpIFhpTWVpIEVsZWN0cm9uaWMgVGVjaG5vbG9neSBDby4gTHRkCisJCQkJUm9vbSA1MDMsIE5vLjI2MjMsIEdvbmdIZVhpbiBSb2FkCisJCQkJU2hhbmdoYWkgIDIwMDA3MgorCQkJCUNISU5BCisKK0VDLTU1LUY5ICAgKGhleCkJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4KK0VDNTVGOSAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuCisJCQkJTk8uMTkyNSxOYW5sZSBSb2FkICxTb25namlhbmcgRXhwb3J0IFByb2Nlc3NpbmcgWm9uZQorCQkJCVNoYW5naGFpICAyMDE2MTMKKwkJCQlDSElOQQorCitFQy01Qy02OSAgIChoZXgpCQlNSVRTVUJJU0hJIEhFQVZZIElORFVTVFJJRVMgTUVDSEFUUk9OSUNTIFNZU1RFTVMsTFRELgorRUM1QzY5ICAgICAoYmFzZSAxNikJCU1JVFNVQklTSEkgSEVBVlkgSU5EVVNUUklFUyBNRUNIQVRST05JQ1MgU1lTVEVNUyxMVEQuCisJCQkJMS0xNiw1LUNIT01FLEtPTUFUU1UtRE9SSSwKKwkJCQlLT0JFIEhZT0dPIDY1Mi0wODY1CisJCQkJSkFQQU4KKworRUMtNjItNjQgICAoaGV4KQkJR2xvYmFsNDExIEludGVybmV0IFNlcnZpY2VzLCBMTEMKK0VDNjI2NCAgICAgKGJhc2UgMTYpCQlHbG9iYWw0MTEgSW50ZXJuZXQgU2VydmljZXMsIExMQworCQkJCTEwNDAwIFcgT3ZlcmxhbmQgUmQgIzM3MQorCQkJCUJvaXNlIElkYWhvIDgzNzA5CisJCQkJVU5JVEVEIFNUQVRFUworCitFQy02My1FNSAgIChoZXgpCQllUEJvYXJkIERlc2lnbiBMTEMKK0VDNjNFNSAgICAgKGJhc2UgMTYpCQllUEJvYXJkIERlc2lnbiBMTEMKKwkJCQk0MDY1IEUuIExhIFBhbG1hIEF2ZS4KKwkJCQlTdWl0ZSMgQworCQkJCUFuYWhlaW0gQ2FsaWZvcm5pYSA5MjgwNworCQkJCVVOSVRFRCBTVEFURVMKKworRUMtNjYtRDEgICAoaGV4KQkJQiZhbXA7VyBHcm91cCBMVEQKK0VDNjZEMSAgICAgKGJhc2UgMTYpCQlCJmFtcDtXIEdyb3VwIExURAorCQkJCURhbGUgUm9hZAorCQkJCVdvcnRoaW5nIFN1c3NleCBCTjExIDJCSAorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0VDLTZDLTlGICAgKGhleCkJCUNoZW5nZHUgVm9sYW5zIFRlY2hub2xvZ3kgQ08uLExURAorRUM2QzlGICAgICAoYmFzZSAxNikJCUNoZW5nZHUgVm9sYW5zIFRlY2hub2xvZ3kgQ08uLExURAorCQkJCTJuZCBGbG9vciBCdWlsZGluZyA0QiBIaS1UZWNoIEluY3ViYXRpb24gUGFyayxOYW55YW4gWGlhbixUaWFuZnUgQXZlCisJCQkJQ2hlbmdkdSBTaWNodWFuIDYxMDA0MQorCQkJCUNISU5BCisKK0VDLTdDLTc0ICAgKGhleCkJCUp1c3RvbmUgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorRUM3Qzc0ICAgICAoYmFzZSAxNikJCUp1c3RvbmUgVGVjaG5vbG9naWVzIENvLiwgTHRkLgorCQkJCVRvbmdndWFuZyBCdWlsZGluZyBGMTksIDEyIyBTb3V0aCBBZ3JpY3VsdHVyZSBFeGhpYml0aW9uIENlbnRlciBSb2FkLCAKKwkJCQlDaGFveWFuZyBEaXN0cmljdCAKKwkJCQlCZWlqaW5nICAxMDAxMjUKKwkJCQlDSElOQQorCitFQy03RC05RCAgIChoZXgpCQlNRUkKK0VDN0Q5RCAgICAgKGJhc2UgMTYpCQlNRUkKKwkJCQkxMzAxIFdpbHNvbiBEcml2ZQorCQkJCVdlc3QgQ2hlc3RlciBQQSAxOTM4MAorCQkJCVVOSVRFRCBTVEFURVMKKworRUMtODMtNkMgICAoaGV4KQkJUk0gVGVjaCBDby4sIEx0ZC4KK0VDODM2QyAgICAgKGJhc2UgMTYpCQlSTSBUZWNoIENvLiwgTHRkLgorCQkJCUMtODAxLCBCdXB5ZW9uZyBXb29saW0gTGlvbnMgVmFsbGV5CisJCQkJQ2hlb25nY2hlb24gMi1kb25nLCBCdXB5ZW9uZy1ndQorCQkJCUluY2hlb24gQ2l0eSAgNDAzLTkxMQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitFQy04NS0yRiAgIChoZXgpCQlBcHBsZSwgSW5jLgorRUM4NTJGICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMuCisJCQkJMSBpbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vIENBIDk1MDE0CisJCQkJVU5JVEVEIFNUQVRFUworCitFQy04RS1BRCAgIChoZXgpCQlETFgKK0VDOEVBRCAgICAgKGJhc2UgMTYpCQlETFgKKwkJCQkjNDAxLCBTZW9pbCBCL0QsMTM1OS00NSBTZW9jaG8yLWRvbmcKKwkJCQlTZW9jaG8ta3UsIAorCQkJCVNlb3VsICAxMzctODYzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0VDLTkyLTMzICAgKGhleCkJCUVkZHlmaSBORFQgSW5jCitFQzkyMzMgICAgIChiYXNlIDE2KQkJRWRkeWZpIE5EVCBJbmMKKwkJCQkzNjAsIEZyYW5xdWV0IHN0cmVldAorCQkJCVN1aXRlIDQwCisJCQkJUXVlYmVjICBHMVAgNE4zCisJCQkJQ0FOQURBCisKK0VDLTkzLTI3ICAgKGhleCkJCU1FTU1FUlQgR21iSCArIENvLiBLRworRUM5MzI3ICAgICAoYmFzZSAxNikJCU1FTU1FUlQgR21iSCArIENvLiBLRworCQkJCUFldXNzZXJlIFJpdHRlcnNiYWNoZXIgU3RyYXNzZSAzOAorCQkJCVNjaHdhYmFjaCBCYXZhcmlhIDkxMTI2CisJCQkJR0VSTUFOWQorCitFQy05Ni04MSAgIChoZXgpCQkyMjc2NDI3IE9udGFyaW8gSW5jCitFQzk2ODEgICAgIChiYXNlIDE2KQkJMjI3NjQyNyBPbnRhcmlvIEluYworCQkJCTMxLTEyNzUgTW9ybmluZ3NpZGUgQXZlCisJCQkJVG9yb250byBPTiBNMUIzVzEKKwkJCQlDQU5BREEKKworRUMtOTgtNkMgICAoaGV4KQkJTHVmZnQgTWVzcy0gdW5kIFJlZ2VsdGVjaG5payBHbWJICitFQzk4NkMgICAgIChiYXNlIDE2KQkJTHVmZnQgTWVzcy0gdW5kIFJlZ2VsdGVjaG5payBHbWJICisJCQkJR3V0ZW5iZXJnc3RyLiAyMAorCQkJCUZlbGxiYWNoIEJhZGVuLVd1ZXJ0dGVtYmVyZyA3MDczNgorCQkJCUdFUk1BTlkKKworRUMtOTgtQzEgICAoaGV4KQkJQmVpamluZyBSaXNibyBOZXR3b3JrIFRlY2hub2xvZ3kgQ28uLEx0ZAorRUM5OEMxICAgICAoYmFzZSAxNikJCUJlaWppbmcgUmlzYm8gTmV0d29yayBUZWNobm9sb2d5IENvLixMdGQKKwkJCQkxL0YgWWlueWFuIEJ1aWxkaW5nIDJBLE5vLjIzIEFubmluZ3podWFuZ2RvbmdsdSBIYWlkaWFuIERpc3RyaWN0IAorCQkJCUJlaWppbmcgIDEwMDA4NQorCQkJCUNISU5BCisKK0VDLTlBLTc0ICAgKGhleCkJCUhld2xldHQgUGFja2FyZAorRUM5QTc0ICAgICAoYmFzZSAxNikJCUhld2xldHQgUGFja2FyZAorCQkJCTExNDQ1IENvbXBhcSBDZW50ZXIgRHJpdmUKKwkJCQlIb3VzdG9uIFRleGFzIDc3MDcwCisJCQkJVU5JVEVEIFNUQVRFUworCitFQy05Qi01QiAgIChoZXgpCQlOb2tpYSBDb3Jwb3JhdGlvbgorRUM5QjVCICAgICAoYmFzZSAxNikJCU5va2lhIENvcnBvcmF0aW9uCisJCQkJRWxla3Ryb25paWtrYXRpZSAxMAorCQkJCUtlbXBlbGUgIDkwNTcwCisJCQkJRklOTEFORAorCitFQy05RS1DRCAgIChoZXgpCQlFbWVyc29uIE5ldHdvcmsgUG93ZXIgYW5kIEVtYmVkZGVkIENvbXB1dGluZworRUM5RUNEICAgICAoYmFzZSAxNikJCUVtZXJzb24gTmV0d29yayBQb3dlciBhbmQgRW1iZWRkZWQgQ29tcHV0aW5nCisJCQkJMjkwMCBTLCBEaWFibG8gV2F5IFN1aXRlIDE5MAorCQkJCVRlbXBlIEFyaXpvbmEgODUyODIKKwkJCQlVTklURUQgU1RBVEVTCisKK0VDLUEyLTlCICAgKGhleCkJCUtlbXBwaSBPeQorRUNBMjlCICAgICAoYmFzZSAxNikJCUtlbXBwaSBPeQorCQkJCUtlbXBpbmthdHUgMQorCQkJCVAuTy4gQm94IDEzCisJCQkJTGFodGkgTGFodGkgMTU1MDAKKwkJCQlGSU5MQU5ECisKK0VDLUE4LTZCICAgKGhleCkJCUVMSVRFR1JPVVAgQ09NUFVURVIgU1lTVEVNUyBDTy4sIExURC4KK0VDQTg2QiAgICAgKGJhc2UgMTYpCQlFTElURUdST1VQIENPTVBVVEVSIFNZU1RFTVMgQ08uLCBMVEQuCisJCQkJTk8uIDIzOSwgU2VjLiAyLCBUaSBEaW5nIEJsdmQuCisJCQkJVGFpcGVpICAxMTQ5MworCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRUMtQjEtMDYgICAoaGV4KQkJQWN1cm8gTmV0d29ya3MsIEluYworRUNCMTA2ICAgICAoYmFzZSAxNikJCUFjdXJvIE5ldHdvcmtzLCBJbmMKKwkJCQk0MjgwOCBDaHJpc3R5IFN0LiwgU3VpdGUgMTAwCisJCQkJRnJlbW9udCBDQSA5NDUzOAorCQkJCVVOSVRFRCBTVEFURVMKKworRUMtQkItQUUgICAoaGV4KQkJRGlnaXZvaWNlIFRlY25vbG9naWEgZW0gRWxldHJvbmljYSBMdGRhCitFQ0JCQUUgICAgIChiYXNlIDE2KQkJRGlnaXZvaWNlIFRlY25vbG9naWEgZW0gRWxldHJvbmljYSBMdGRhCisJCQkJQWxhbWVkYSBKdXJ1LCAxNTkgLSBUb3JyZW8KKwkJCQlCYXJ1ZXJpIFNhbyBQYXVsbyAwNjQ1NS0wMTAKKwkJCQlCUkFaSUwKKworRUMtQkQtMDkgICAoaGV4KQkJRlVTSU9OIEVsZWN0cm9uaWNzIEx0ZAorRUNCRDA5ICAgICAoYmFzZSAxNikJCUZVU0lPTiBFbGVjdHJvbmljcyBMdGQKKwkJCQlQTyBCb3ggMTM3IC0gMTQyCisJCQkJUGFybmVsbAorCQkJCUF1Y2tsYW5kICAxMTUxCisJCQkJTkVXIFpFQUxBTkQKKworRUMtQzMtOEEgICAoaGV4KQkJQWNjdWVuZXJneSAoQ0FOQURBKSBJbmMKK0VDQzM4QSAgICAgKGJhc2UgMTYpCQlBY2N1ZW5lcmd5IChDQU5BREEpIEluYworCQkJCTIgTGFuc2luZyBTcXVhcmUsIFN1aXRlIDUwMworCQkJCVRvcm9udG8gT250YXJpbyBNMkogNFA4CisJCQkJQ0FOQURBCisKK0VDLUM4LTgyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0VDQzg4MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0VDLUNELTZEICAgKGhleCkJCUFsbGllZCBUZWxlc2lzLCBJbmMuCitFQ0NENkQgICAgIChiYXNlIDE2KQkJQWxsaWVkIFRlbGVzaXMsIEluYy4KKwkJCQkzMjAwIE5vcnRoIEZpcnN0IFN0cmVldAorCQkJCVNhbiBKb3NlIENhbGlmb3JuaWEgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0VDLUQwLTBFICAgKGhleCkJCU1pcmFlUmVjb2duaXRpb24gQ28uLCBMdGQuCitFQ0QwMEUgICAgIChiYXNlIDE2KQkJTWlyYWVSZWNvZ25pdGlvbiBDby4sIEx0ZC4KKwkJCQlQcmltZUJhbmsgQmxkZy4gQW5uZXgtM0YsICMyNzgtMworCQkJCU5vbmh5dW4tZG9uZywgR2FuZ25hbS1ndQorCQkJCVNlb3VsICAxMzUtODMzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0VDLUQxLTlBICAgKGhleCkJCVpodWhhaSBMaW1pbmcgSW5kdXN0cmllcyBDby4sIEx0ZAorRUNEMTlBICAgICAoYmFzZSAxNikJCVpodWhhaSBMaW1pbmcgSW5kdXN0cmllcyBDby4sIEx0ZAorCQkJCU5vLjYgWGlucWluZyBSZCxYaW5xaW5nIEhpLVRlY2ggSW5kdXN0cmlhbCBQYXJrCisJCQkJRG91bWVuIERpc3RyaWN0CisJCQkJWmh1aGFpIEd1YW5nZG9uZyA1MTkxMDAKKwkJCQlDSElOQQorCitFQy1ERS0zRCAgIChoZXgpCQlMYW1wcmV5IE5ldHdvcmtzLCBJbmMuCitFQ0RFM0QgICAgIChiYXNlIDE2KQkJTGFtcHJleSBOZXR3b3JrcywgSW5jLgorCQkJCTU4IERvdmVyIFJvYWQKKwkJCQlEdXJoYW0gTkggMDM4MjQKKwkJCQlVTklURUQgU1RBVEVTCisKK0VDLUUwLTlCICAgKGhleCkJCVNhbXN1bmcgZWxlY3Ryb25pY3MgQ08uLCBMVEQKK0VDRTA5QiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIGVsZWN0cm9uaWNzIENPLiwgTFRECisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIFllb25ndG9uZy1ndSwKKwkJCQlTdXdvbi1DaXR5IEd5ZW9uZ2dpLWRvIDQ0My03NDIKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRUMtRTUtNTUgICAoaGV4KQkJSGlyc2NobWFubiBBdXRvbWF0aW9uCitFQ0U1NTUgICAgIChiYXNlIDE2KQkJSGlyc2NobWFubiBBdXRvbWF0aW9uCisJCQkJU3R1dHRnYXJ0ZXIgU3RyYXNzZSA0NS01MQorCQkJCU5lY2thcnRlbnpsaW5nZW4gQmFkZW4tV/xydHRlbWJlcmcgNzI2NTQKKwkJCQlHRVJNQU5ZCisKK0VDLUU3LTQ0ICAgKGhleCkJCU9tbnRlYyBtZmcuIGluYworRUNFNzQ0ICAgICAoYmFzZSAxNikJCU9tbnRlYyBtZmcuIGluYworCQkJCTE5OTMgUG9uZCBSb2FkLgorCQkJCVJvbmtvbmtvbWEgTlkgMTE3NzkKKwkJCQlVTklURUQgU1RBVEVTCisKK0VDLUU5LTBCICAgKGhleCkJCVNJU1RFTUEgU09MVUNPRVMgRUxFVFJPTklDQVMgTFREQSAtIEVBU1lURUNICitFQ0U5MEIgICAgIChiYXNlIDE2KQkJU0lTVEVNQSBTT0xVQ09FUyBFTEVUUk9OSUNBUyBMVERBIC0gRUFTWVRFQ0gKKwkJCQlSVUEgR1VFUlJBIERFIEFHVUlBUiwgMjIwCisJCQkJU0FPIFBBVUxPIFNQIDA4Mjc1LTI2MAorCQkJCUJSQVpJTAorCitFQy1FOS1GOCAgIChoZXgpCQlHdWFuZyBaaG91IFRSSS1TVU4gRWxlY3Ryb25pY3MgVGVjaG5vbG9neSAgQ28uLCBMdGQKK0VDRTlGOCAgICAgKGJhc2UgMTYpCQlHdWFuZyBaaG91IFRSSS1TVU4gRWxlY3Ryb25pY3MgVGVjaG5vbG9neSAgQ28uLCBMdGQKKwkJCQk5dGggZmxvb3IgR3Vhbmd6aG91IGluZm8gcG9ydCBidWlsZGluZyBCLCBLZXl1biBSb2FkLCBUaWFuaGUgRGlzdHJpY3QsIEd1YW5nemhvdSAsUFJDCisJCQkJR3Vhbmd6aG91IEd1YW5nZG9uZyA1MTA2NjUKKwkJCQlDSElOQQorCitFQy1FQS0wMyAgIChoZXgpCQlEQVJGT04gTElHSFRJTkcgQ09SUAorRUNFQTAzICAgICAoYmFzZSAxNikJCURBUkZPTiBMSUdIVElORyBDT1JQCisJCQkJMTY3LCBTaGFueWluZyBSb2FkCisJCQkJR3VlaXNoYW4gVGFveXVhbiAzMzM0MQorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRUMtRjAtMEUgICAoaGV4KQkJQWJvY29tCitFQ0YwMEUgICAgIChiYXNlIDE2KQkJQWJvY29tCisJCQkJMUYgLCBOby4gMjEsIFlhbmZhIDJuZCBSZC4sIFNCSVAKKwkJCQlIc2luY2h1IENpdHkgIDMwMCAgODg2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitFQy1GMi0zNiAgIChoZXgpCQlORU9NT05UQU5BIEVMRUNUUk9OSUNTCitFQ0YyMzYgICAgIChiYXNlIDE2KQkJTkVPTU9OVEFOQSBFTEVDVFJPTklDUworCQkJCU1sYWRvc3QtNCwgYmwuIDQ4MywgbWFnLiAxMworCQkJCVNvZmlhICAxNzE1CisJCQkJQlVMR0FSSUEKKworRUMtRkEtQUEgICAoaGV4KQkJVGhlIElNUyBDb21wYW55CitFQ0ZBQUEgICAgIChiYXNlIDE2KQkJVGhlIElNUyBDb21wYW55CisJCQkJMjkyOSBFLiBJbXBlcmlhbCBIaWdod2F5CisJCQkJU3VpdGUgMTcwCisJCQkJQnJlYSBDQSA5MjgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworRUMtRkUtN0UgICAoaGV4KQkJQmx1ZVJhZGlvcywgSW5jLgorRUNGRTdFICAgICAoYmFzZSAxNikJCUJsdWVSYWRpb3MsIEluYy4KKwkJCQk3MTczIFMuIEhhdmFuYSBTdHJlZXQsIFN1aXRlIDYwMAorCQkJCUVuZ2xld29vZCBDb2xvcmFkbyA4MDExMgorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtMDAtN0YgICAoaGV4KQkJSmFueiAtIENvbnRhZG9yZXMgZGUgRW5lcmdpYSwgU0EKK0YwMDA3RiAgICAgKGJhc2UgMTYpCQlKYW56IC0gQ29udGFkb3JlcyBkZSBFbmVyZ2lhLCBTQQorCQkJCUF2ZW5pZGEgSW5mYW50ZSBELiBIZW5yaXF1ZQorCQkJCTMyOAorCQkJCUxpc2JvbiAgMTgwMC0yMjMKKwkJCQlQT1JUVUdBTAorCitGMC0wMi0yQiAgIChoZXgpCQlDaHJvbnRlbAorRjAwMjJCICAgICAoYmFzZSAxNikJCUNocm9udGVsCisJCQkJMjIxMCBPVG9vbGUgQXZlLiwgU3VpdGUgMTAwCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzEKKwkJCQlVTklURUQgU1RBVEVTCisKK0YwLTAyLTQ4ICAgKGhleCkJCVNtYXJ0ZUJ1aWxkaW5nCitGMDAyNDggICAgIChiYXNlIDE2KQkJU21hcnRlQnVpbGRpbmcKKwkJCQkzMjY3IEJlZSBDYXZlIFJvYWQKKwkJCQkxMDctMTczCisJCQkJQXVzdGluIFRYIDc4NzQ2CisJCQkJVU5JVEVEIFNUQVRFUworCitGMC0wNy04NiAgIChoZXgpCQlTaGFuZG9uZyBCaXR0ZWwgRWxlY3Ryb25pY3MgQ28uLCBMdGQKK0YwMDc4NiAgICAgKGJhc2UgMTYpCQlTaGFuZG9uZyBCaXR0ZWwgRWxlY3Ryb25pY3MgQ28uLCBMdGQKKwkJCQlOby4xIFJpemhhbyBOb3J0aCBSb2FkCisJCQkJUml6aGFvIFNoYW5kb25nIDI3NjgwMAorCQkJCUNISU5BCisKK0YwLTA4LUYxICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorRjAwOEYxICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGMC0xMy1DMyAgIChoZXgpCQlTSEVOWkhFTiBGRU5EQSBURUNITk9MT0dZIENPLiwgTFRECitGMDEzQzMgICAgIChiYXNlIDE2KQkJU0hFTlpIRU4gRkVOREEgVEVDSE5PTE9HWSBDTy4sIExURAorCQkJCUZlbmRhIEhpLVRlY2ggUGFyaywgWmhvdXNoaSBSb2FkLCBTaGl5YW4sIEJhb2FuCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODEwOAorCQkJCUNISU5BCisKK0YwLTFDLTEzICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzCitGMDFDMTMgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MKKwkJCQk2MC0zOSAsIEthc2FuLWRvbmcsIEd1bWNoZW9uLWd1CisJCQkJU2VvdWwgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjAtMjQtMDggICAoaGV4KQkJVGFsYXJpcyAoU3dlZGVuKSBBQgorRjAyNDA4ICAgICAoYmFzZSAxNikJCVRhbGFyaXMgKFN3ZWRlbikgQUIKKwkJCQlUYWxqcyBTb2RyYSBJbmR1c3RyaW9tcmFkZQorCQkJCUZsZW4gIDY0Mjg0CisJCQkJU1dFREVOCisKK0YwLTI1LTcyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0YwMjU3MiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0YwLTI2LTRDICAgKGhleCkJCURyLiBTaWdyaXN0IEFHCitGMDI2NEMgICAgIChiYXNlIDE2KQkJRHIuIFNpZ3Jpc3QgQUcKKwkJCQlIb2Z1cmxpc3RyYXNzZSAxCisJCQkJRW5uZXRi/HJnZW4gIDYzNzMKKwkJCQlTV0lUWkVSTEFORAorCitGMC0yQS02MSAgIChoZXgpCQlXYWxkbyBOZXR3b3JrcywgSW5jLgorRjAyQTYxICAgICAoYmFzZSAxNikJCVdhbGRvIE5ldHdvcmtzLCBJbmMuCisJCQkJNDUwNSBTcGljZXdvb2QgU3ByaW5ncyBSZAorCQkJCVN1aXRlIDMzMworCQkJCUF1c3RpbiBUZXhhcyA3ODc1OQorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtMkYtRDggICAoaGV4KQkJQmkyLVZpc2lvbgorRjAyRkQ4ICAgICAoYmFzZSAxNikJCUJpMi1WaXNpb24KKwkJCQkxNi01MDQsIDIxLWJhbiwgU2hpbW9tYXJ1a28gNC1jaG9tZSwgT290YS1rdQorCQkJCVRva3lvICAxNDYtMDA5MgorCQkJCUpBUEFOCisKK0YwLTNBLTU1ICAgKGhleCkJCU9tZWdhIEVsZWt0cm9uaWsgQVMKK0YwM0E1NSAgICAgKGJhc2UgMTYpCQlPbWVnYSBFbGVrdHJvbmlrIEFTCisJCQkJRWdlIFNlcmJlc3QgQm9sZ2VzaQorCQkJCUl6bWlyICAzNTQxMAorCQkJCVRVUktFWQorCitGMC00My0zNSAgIChoZXgpCQlEVk4oU2hhbmdoYWkpTHRkLgorRjA0MzM1ICAgICAoYmFzZSAxNikJCURWTihTaGFuZ2hhaSlMdGQuCisJCQkJMTFGLEhlY2h1YW4gQnVpbGRpbmcsMjAxNiBZaXNoYW4gUmQsCisJCQkJU2hhbmdoYWkgIDIwMTEwMworCQkJCUNISU5BCisKK0YwLTRBLTJCICAgKGhleCkJCVBZUkFNSUQgQ29tcHV0ZXIgR21iSAorRjA0QTJCICAgICAoYmFzZSAxNikJCVBZUkFNSUQgQ29tcHV0ZXIgR21iSAorCQkJCUJvZXR6aW5nZXIgU3RyYXNzZSA2MAorCQkJCUZyZWlidXJnIEJXIDc5MTExCisJCQkJR0VSTUFOWQorCitGMC00Qi02QSAgIChoZXgpCQlTY2llbnRpZmljIFByb2R1Y3Rpb24gQXNzb2NpYXRpb24gU2liZXJpYW4gQXJzZW5hbCwgTHRkLgorRjA0QjZBICAgICAoYmFzZSAxNikJCVNjaWVudGlmaWMgUHJvZHVjdGlvbiBBc3NvY2lhdGlvbiBTaWJlcmlhbiBBcnNlbmFsLCBMdGQuCisJCQkJQmxkLjhBLCBHb3Jza2l5IE1pY3JvZGlzdHJpY3QKKwkJCQlOb3Zvc2liaXJzayAgNjMwMDczCisJCQkJUlVTU0lBTiBGRURFUkFUSU9OCisKK0YwLTRCLUYyICAgKGhleCkJCUpURUNIIENvbW11bmljYXRpb25zLCBJbmMuCitGMDRCRjIgICAgIChiYXNlIDE2KQkJSlRFQ0ggQ29tbXVuaWNhdGlvbnMsIEluYy4KKwkJCQk2NDEzIENvbmdyZXNzIEF2ZS4KKwkJCQlCb2NhIFJhdG9uIEZMIDMzNDg3CisJCQkJVU5JVEVEIFNUQVRFUworCitGMC00RC1BMiAgIChoZXgpCQlEZWxsIEluYy4KK0YwNERBMiAgICAgKGJhc2UgMTYpCQlEZWxsIEluYy4KKwkJCQlPbmUgRGVsbCB3YXksIE1TIFJSNS00NQorCQkJCVJvdW5kIHJvY2sgIFRleGFzIDc4NjgyCisJCQkJVU5JVEVEIFNUQVRFUworCitGMC01OC00OSAgIChoZXgpCQlDYXJlVmlldyBDb21tdW5pY2F0aW9ucworRjA1ODQ5ICAgICAoYmFzZSAxNikJCUNhcmVWaWV3IENvbW11bmljYXRpb25zCisJCQkJNDA1IFN0YXRlIEhXWSAxMjEgQllQCisJCQkJU3VpdGUgQjI0MAorCQkJCUxld2lzdmlsbGUgIFRleGFzIDc1MDY3CisJCQkJVU5JVEVEIFNUQVRFUworCitGMC01RC04OSAgIChoZXgpCQlEeWNvbiBMaW1pdGVkCitGMDVEODkgICAgIChiYXNlIDE2KQkJRHljb24gTGltaXRlZAorCQkJCVVuaXQgRAorCQkJCUN3bSBDeW5vbiBCdXNpbmVzcyBQYXJrCisJCQkJTW91bnRhaW4gQXNoIFJob25kZGEgQ3lub24gVGFmZiBDRjQ1IDRFUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0YwLTYyLTBEICAgKGhleCkJCVNoZW56aGVuIEVncmVhdCBUZWNoIENvcnAuLEx0ZAorRjA2MjBEICAgICAoYmFzZSAxNikJCVNoZW56aGVuIEVncmVhdCBUZWNoIENvcnAuLEx0ZAorCQkJCTRGLDFCdWlsZGluZyxDaHVhbmd5ZSBJbmR1c3RyaWFsIHBhcmsKKwkJCQlTaGFzYW4sU2hhamluZywKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTA0CisJCQkJQ0hJTkEKKworRjAtNjItODEgICAoaGV4KQkJUHJvQ3VydmUgTmV0d29ya2luZyBieSBIUAorRjA2MjgxICAgICAoYmFzZSAxNikJCVByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKwkJCQk4MDAwIEZvb3RoaWxscyBCbHZkLgorCQkJCVJvc2V2aWxsZSBDYWxpZm9ybmlhIDk1NzQ3CisJCQkJVU5JVEVEIFNUQVRFUworCitGMC02NS1ERCAgIChoZXgpCQlQcmltYXggRWxlY3Ryb25pY3MgTHRkLgorRjA2NUREICAgICAoYmFzZSAxNikJCVByaW1heCBFbGVjdHJvbmljcyBMdGQuCisJCQkJNjY5LCBSdWV5IEt1YW5nIFJvYWQsIE5laWh1CisJCQkJVGFpcGVpICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0YwLTY4LTUzICAgKGhleCkJCUludGVncmF0ZWQgQ29ycG9yYXRpb24KK0YwNjg1MyAgICAgKGJhc2UgMTYpCQlJbnRlZ3JhdGVkIENvcnBvcmF0aW9uCisJCQkJMy9GLCBTaHVuIE9uIENvbW1lcmNpYWwgQmxkZy4sIAorCQkJCTExMi0xMTQgRGVzIFZvZXV4IFJvYWQsIEMuLAorCQkJCUNldG5yYWwsICAKKwkJCQlIT05HIEtPTkcKKworRjAtNzctRDAgICAoaGV4KQkJWGNlbGxlbgorRjA3N0QwICAgICAoYmFzZSAxNikJCVhjZWxsZW4KKwkJCQkxNUYgS0lOUyBUb3dlciAyNS0xLEplb25namEtZG9uZyxCdW5nZGFuZy1ndSwKKwkJCQlTZW9uZ25hbSBHeWVvbmdnaSA0NjM4MTEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjAtN0ItQ0IgICAoaGV4KQkJSG9uIEhhaSBQcmVjaXNpb24gSW5kLiBDby4sTHRkLiAKK0YwN0JDQiAgICAgKGJhc2UgMTYpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorCQkJCU5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgICAgMjAxNjEzIAorCQkJCUNISU5BCisKK0YwLTdELTY4ICAgKGhleCkJCUQtTGluayBDb3Jwb3JhdGlvbgorRjA3RDY4ICAgICAoYmFzZSAxNikJCUQtTGluayBDb3Jwb3JhdGlvbgorCQkJCU5vLjI4OSwgU2luaHUgM3JkIFJkLiwgTmVpaHUgRGlzdHJpY3QsIAorCQkJCVRhaXBlaSBDaXR5ICAxMTQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0YwLTgxLUFGICAgKGhleCkJCUlSWiBBVVRPTUFUSU9OIFRFQ0hOT0xPR0lFUyBMVEQKK0YwODFBRiAgICAgKGJhc2UgMTYpCQlJUlogQVVUT01BVElPTiBURUNITk9MT0dJRVMgTFRECisJCQkJVW5pdCA5LTEwIDI3L0YgU2VhcG93ZXIgVG93ZXIKKwkJCQlDb25jb3JkaWEgUGxhemEgMSBTY2llbmNlIE11c2V1bSBSZCxUc2ltU2hhVHN1aQorCQkJCUtvd2xvb24gCisJCQkJSE9ORyBLT05HCisKK0YwLThCLUZFICAgKGhleCkJCUNPU1RFTC4sQ08uTFRECitGMDhCRkUgICAgIChiYXNlIDE2KQkJQ09TVEVMLixDTy5MVEQKKwkJCQkyMjMtMzksIFNhbmdkYWV3b24tRG9uZywgSnVuZ3dvbi1HdQorCQkJCVNlb25nbmFtLXNpIEt5dW5nZ2ktRG8gNDYyLTgwNworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGMC05My0zQSAgIChoZXgpCQlOeHRDb25lY3QKK0YwOTMzQSAgICAgKGJhc2UgMTYpCQlOeHRDb25lY3QKKwkJCQlTY2hpbGxlcnN0cmFzc2UgNAorCQkJCUJhZCBLaXNzaW5nZW4gIDk3Njg4CisJCQkJR0VSTUFOWQorCitGMC05Qy1CQiAgIChoZXgpCQlSYW9uVGhpbmsgSW5jLgorRjA5Q0JCICAgICAoYmFzZSAxNikJCVJhb25UaGluayBJbmMuCisJCQkJOTE2LCBCeXVja3NhbiBEaWdpdGFsIFZhbGxleSAyLUNoYSwgNDgxLTEwLCBLYXNhbi1Eb25nLCBLdW1jaGVvbi1HdSwgCisJCQkJU2VvdWwgIDE1My03ODMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjAtQTItMjUgICAoaGV4KQkJUFJJVkFURQorRjBBMjI1ICAgICAoYmFzZSAxNikJCSAKKwkJCQkgCitGMC1BNy02NCAgIChoZXgpCQlHU1QgQ28uLCBMdGQuCitGMEE3NjQgICAgIChiYXNlIDE2KQkJR1NUIENvLiwgTHRkLgorCQkJCSM5MTksIEdvc2Flay1kb25nLCBHd29uc2Vvbi1ndSwKKwkJCQlTdXdvbi1zaSBHeWVvbmdnaS1kbyA0NDEtODEzCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0YwLUFELTRFICAgKGhleCkJCUdsb2JhbHNjYWxlIFRlY2hub2xvZ2llcywgSW5jLgorRjBBRDRFICAgICAoYmFzZSAxNikJCUdsb2JhbHNjYWxlIFRlY2hub2xvZ2llcywgSW5jLgorCQkJCTVGLCBOby4gMiBCdWlsZGluZywgTWlueGluZyBJbmR1c3RyaWFsIFBhcmsKKwkJCQlNaW5rYW5nIFJkLiwgTWluemhpIFN0LiwgQmFvYW4gRGlzdC4KKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MTA5CisJCQkJQ0hJTkEKKworRjAtQUUtNTEgICAoaGV4KQkJWGkzIENvcnAKK0YwQUU1MSAgICAgKGJhc2UgMTYpCQlYaTMgQ29ycAorCQkJCTI5OSBTLiBNYWluIFN0LgorCQkJCVN1aXRlIDEzMDAKKwkJCQlTYWx0IExha2UgQ2l0eSBVVCA4NDExMQorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtQjQtNzkgICAoaGV4KQkJQXBwbGUsIEluYy4KK0YwQjQ3OSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCUN1cGVydGlubyBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtQjYtRUIgICAoaGV4KQkJUG9zbGFiIFRlY2hub2xvZ3kgQ28uLCBMdGQuCitGMEI2RUIgICAgIChiYXNlIDE2KQkJUG9zbGFiIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJNUYtMSwgTm8uNDkwIEJhbm5hbiBSZC4KKwkJCQlUYWlwZWkgQ291bnR5CisJCQkJSmhvbmdoZSBDaXR5ICAyMzUKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0YwLUJDLUM4ICAgKGhleCkJCU1heElEIChQdHkpIEx0ZAorRjBCQ0M4ICAgICAoYmFzZSAxNikJCU1heElEIChQdHkpIEx0ZAorCQkJCTQzIEhvbWVzdGVhZCBSb2FkCisJCQkJUml2b25pYQorCQkJCUpvaGFubmVzYnVyZyBHYXV0ZW5nIDIxMjgKKwkJCQlTT1VUSCBBRlJJQ0EKKworRjAtQkQtRjEgICAoaGV4KQkJU2lwb2QgSW5jLgorRjBCREYxICAgICAoYmFzZSAxNikJCVNpcG9kIEluYy4KKwkJCQk0NjMzIE9sZCBJcm9uc2lkZXMgRHJpdmUsICM0MDAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtQkYtOTcgICAoaGV4KQkJU29ueSBDb3Jwb3JhdGlvbgorRjBCRjk3ICAgICAoYmFzZSAxNikJCVNvbnkgQ29ycG9yYXRpb24KKwkJCQlHb3RlbnlhbWEgVGVjLgorCQkJCTUtMS0xMiBLaXRhc2hpbmFnYXdhIFNoaW5hZ2F3YS1rdQorCQkJCVRva3lvICAxNDEtMDAwMQorCQkJCUpBUEFOCisKK0YwLUMyLTRDICAgKGhleCkJCVpoZWppYW5nIEZlaVl1ZSBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLCBMdGQKK0YwQzI0QyAgICAgKGJhc2UgMTYpCQlaaGVqaWFuZyBGZWlZdWUgRGlnaXRhbCBUZWNobm9sb2d5IENvLiwgTHRkCisJCQkJQmFvdGluZyBJbmR1c3RyaWFsIFBhcmssIDUzMSBKaWFvZ29uZyBSb2FkCisJCQkJIEhhbmd6aG91IENpdHkgWmhlamlhbmcgUHJvdmluY2UgMzEwMDEyCisJCQkJQ0hJTkEKKworRjAtQzItN0MgICAoaGV4KQkJTWlhbnlhbmcgTmV0b3AgVGVsZWNvbSBFcXVpcG1lbnQgQ28uLEx0ZC4KK0YwQzI3QyAgICAgKGJhc2UgMTYpCQlNaWFueWFuZyBOZXRvcCBUZWxlY29tIEVxdWlwbWVudCBDby4sTHRkLgorCQkJCU5vLjExMSxFYXN0IHNlY3Rpb24gb2YgUHVtaW5nIFNvdXRoIFJvYWQsCisJCQkJSGktdGVjaCB6b25lLAorCQkJCU1pYW55YW5nIENpdHkgU2ljaHVhbiBQcm92aW5jZSwgIDYyMTAwMAorCQkJCUNISU5BCisKK0YwLUM4LThDICAgKGhleCkJCUxlZGRhclRlY2ggSW5jLgorRjBDODhDICAgICAoYmFzZSAxNikJCUxlZGRhclRlY2ggSW5jLgorCQkJCTI3NDAgRWluc3RlaW4gU3RyZWV0CisJCQkJUXVlYmVjIENpdHkgIEcxUCA0UzQKKwkJCQlDQU5BREEKKworRjAtQ0ItQTEgICAoaGV4KQkJQXBwbGUsIEluYy4KK0YwQ0JBMSAgICAgKGJhc2UgMTYpCQlBcHBsZSwgSW5jLgorCQkJCTEgSW5maW5pdGUgTG9vcAorCQkJCWN1cGVydGlubyAgY0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0YwLUQxLTRGICAgKGhleCkJCUxJTkVBUiBMTEMKK0YwRDE0RiAgICAgKGJhc2UgMTYpCQlMSU5FQVIgTExDCisJCQkJMTk1MCBDQU1JTk8gVklEQSBST0JMRSAjMTUwCisJCQkJQ0FSTFNCQUQgQ0EgOTIwMDgtNjUxNworCQkJCVVOSVRFRCBTVEFURVMKKworRjAtRDctNjcgICAoaGV4KQkJQXhlbWEgUGFzc2FnZWtvbnRyb2xsIEFCCitGMEQ3NjcgICAgIChiYXNlIDE2KQkJQXhlbWEgUGFzc2FnZWtvbnRyb2xsIEFCCisJCQkJQm94IDkwIDIxNQorCQkJCVN0b2NraG9sbSAgMTIwIDIzIAorCQkJCVNXRURFTgorCitGMC1EQS03QyAgIChoZXgpCQlSTEggSU5EVVNUUklFUyxJTkMuCitGMERBN0MgICAgIChiYXNlIDE2KQkJUkxIIElORFVTVFJJRVMsSU5DLgorCQkJCTkzNiBOLiBNQUlOIFNULgorCQkJCU9SQU5HRSBDQSA5Mjg2NworCQkJCVVOSVRFRCBTVEFURVMKKworRjAtREItMzAgICAoaGV4KQkJWW90dGFieXRlCitGMERCMzAgICAgIChiYXNlIDE2KQkJWW90dGFieXRlCisJCQkJMTc1MCBTLiBUZWxlZ3JhcGggUm9hZAorCQkJCVN1aXRlIDIwMAorCQkJCUJsb29tZmllbGQgVHdwLiBNSSA0ODMwMgorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtREMtRTIgICAoaGV4KQkJQXBwbGUgSW5jCitGMERDRTIgICAgIChiYXNlIDE2KQkJQXBwbGUgSW5jCisJCQkJMSBJbmZpbml0ZSBMb29wCisJCQkJQ3VwZXJ0aW5vICBDQSA5NTAxNAorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtREUtNzEgICAoaGV4KQkJU2hhbmdoYWkgRURPIFRlY2hub2xvZ2llcyBDby4sTHRkLgorRjBERTcxICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEVETyBUZWNobm9sb2dpZXMgQ28uLEx0ZC4KKwkJCQlVbml0IDEyMzAyLCBCdWlsZGluZyAxMiw0OTggR3Vvc2hvdWppbmcgUm9hZCwgUHVkb25nIE5ldyBBcmVhCisJCQkJU2hhbmdoYWkgIDIwMTIwMworCQkJCUNISU5BCisKK0YwLURFLUI5ICAgKGhleCkJCVNoYW5nSGFpIFkmWSBFbGVjdHJvbmljcyBDby4sIEx0ZAorRjBERUI5ICAgICAoYmFzZSAxNikJCVNoYW5nSGFpIFkmWSBFbGVjdHJvbmljcyBDby4sIEx0ZAorCQkJCU5vLjMsIDU4OCBUaWFueGlvbmcgUm9hZCwgU2hhbmdoYWkgSW50ZXJuYXRpb25hbCBNZWRpY2FsIFpvbmUoU0lNWiksCisJCQkJUHVEb25nIE5ldyBEaXN0cmljdCAKKwkJCQlTaGFuZ2hhaSAgMjAxMzE4CisJCQkJQ0hJTkEKKworRjAtREUtRjEgICAoaGV4KQkJV2lzdHJvbiBJbmZvQ29tbSAoS3Vuc2hhbilDbworRjBERUYxICAgICAoYmFzZSAxNikJCVdpc3Ryb24gSW5mb0NvbW0gKEt1bnNoYW4pQ28KKwkJCQkxNjhLdW5TaGFuLCAKKwkJCQlKaWFuZ1N1ICAyMTUzMDAKKwkJCQlDSElOQQorCitGMC1FNS1DMyAgIChoZXgpCQlEcmFlZ2Vyd2VyayBBRyAmYW1wO2FtcDsgQ28uIEtHIGFBCitGMEU1QzMgICAgIChiYXNlIDE2KQkJRHJhZWdlcndlcmsgQUcgJmFtcDthbXA7IENvLiBLRyBhQQorCQkJCU1vaXNsaW5nZXIgQWxsZWUgNTMtNTUKKwkJCQlMdWViZWNrIEdlcm1hbnkgMjM0NTIKKwkJCQlHRVJNQU5ZCisKK0YwLUU3LTdFICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorRjBFNzdFICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGMC1FQy0zOSAgIChoZXgpCQlFc3NlYworRjBFQzM5ICAgICAoYmFzZSAxNikJCUVzc2VjCisJCQkJU2Nob2Vicm9la3N0cmFhdCA0OAorCQkJCVBhYWwgTGltYnVyZyAzNTgzCisJCQkJQkVMR0lVTQorCitGMC1FRC0xRSAgIChoZXgpCQlCaWxrb24gQmlsZ2lzYXlhciBLb250cm9sbHUgQ2loLiBJbS5MdGQuCitGMEVEMUUgICAgIChiYXNlIDE2KQkJQmlsa29uIEJpbGdpc2F5YXIgS29udHJvbGx1IENpaC4gSW0uTHRkLgorCQkJCUdlcnNhbiBTYW5heWkgU2l0ZXNpIDY1OC5Tb2thayBObzoxNgorCQkJCVlFTklNQUhBTExFLSBCQVRJS0VOVAorCQkJCUFOS0FSQSAgMDYzNzAKKwkJCQlUVVJLRVkKKworRjAtRUUtQkIgICAoaGV4KQkJVklQQVIgR21iSAorRjBFRUJCICAgICAoYmFzZSAxNikJCVZJUEFSIEdtYkgKKwkJCQlMaWNodGVuYmVyZ3N0cmFzc2UgOAorCQkJCUdhcmNoaW5nIGJlaSBNdWVuY2hlbiBCYXZhcmlhIDg1NzQ4CisJCQkJR0VSTUFOWQorCitGMC1GMC0wMiAgIChoZXgpCQlIb24gSGFpIFByZWNpc2lvbiBJbmQuIENvLixMdGQuIAorRjBGMDAyICAgICAoYmFzZSAxNikJCUhvbiBIYWkgUHJlY2lzaW9uIEluZC4gQ28uLEx0ZC4gCisJCQkJIE5PLjE5MjUsTmFubGUgUm9hZCAsU29uZ2ppYW5nIEV4cG9ydCBQcm9jZXNzaW5nIFpvbmUgCisJCQkJU2hhbmdoYWkgICAyMDE2MTMKKwkJCQlDSElOQQorCitGMC1GNy01NSAgIChoZXgpCQlDaXNjbyBTeXN0ZW1zCitGMEY3NTUgICAgIChiYXNlIDE2KQkJQ2lzY28gU3lzdGVtcworCQkJCTgwIFdlc3QgVGFzbWFuIERyLgorCQkJCVNKQ00xLTEKKwkJCQlTYW4gSm9zZSBDQSA5NTEzNAorCQkJCVVOSVRFRCBTVEFURVMKKworRjAtRjctQjMgICAoaGV4KQkJUGhvcm0KK0YwRjdCMyAgICAgKGJhc2UgMTYpCQlQaG9ybQorCQkJCTIyMiBSZWdlbnQgU3RyZWV0CisJCQkJTG9uZG9uICBXMUIgNVRSCisJCQkJVU5JVEVEIEtJTkdET00KKworRjAtRjgtNDIgICAoaGV4KQkJS0VFQk9YLCBJbmMuCitGMEY4NDIgICAgIChiYXNlIDE2KQkJS0VFQk9YLCBJbmMuCisJCQkJMTAgUG9wcHkgVHJhaWwKKwkJCQlSb2xsaW5nIEhpbGxzIENhbGlmb3JuaWEgOTAyNzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0YwLUY5LUY3ICAgKGhleCkJCUlFUyBHbWJIICZhbXA7IENvLiBLRworRjBGOUY3ICAgICAoYmFzZSAxNikJCUlFUyBHbWJIICZhbXA7IENvLiBLRworCQkJCURhcm1jaGVyIEdydW5kIDIyCisJCQkJTWVpbmVyemhhZ2VuICA1ODU0MAorCQkJCUdFUk1BTlkKKworRjAtRkQtQTAgICAoaGV4KQkJQWN1cml4IE5ldHdvcmtzIExQCitGMEZEQTAgICAgIChiYXNlIDE2KQkJQWN1cml4IE5ldHdvcmtzIExQCisJCQkJUE8gQm94IDM4MzgKKwkJCQlTaG9ydGxhbmQgU3QKKwkJCQlBdWNrbGFuZCBBS0wgMTAyMQorCQkJCU5FVyBaRUFMQU5ECisKK0Y0LTAzLTIxICAgKGhleCkJCUJlTmVYdCBCLlYuCitGNDAzMjEgICAgIChiYXNlIDE2KQkJQmVOZVh0IEIuVi4KKwkJCQlUZXIgR291d3N0cmFhdCAzCisJCQkJQW1zdGVyZGFtIE5IIDEwOTNKWAorCQkJCU5FVEhFUkxBTkRTCisKK0Y0LTA0LTRDICAgKGhleCkJCVZhbGVuY2VUZWNoIExpbWl0ZWQKK0Y0MDQ0QyAgICAgKGJhc2UgMTYpCQlWYWxlbmNlVGVjaCBMaW1pdGVkCisJCQkJVW5pdCAxLCAyMC9GLiwgQVBFQyBQbGF6YQorCQkJCTQ5IEhvaSBZdWVuIFJvYWQsICBLd3VuIFRvbmcsIEtvd2xvb24KKwkJCQlIT05HIEtPTkcgIE5JTAorCQkJCUNISU5BCisKK0Y0LTBCLTkzICAgKGhleCkJCVJlc2VhcmNoIEluIE1vdGlvbgorRjQwQjkzICAgICAoYmFzZSAxNikJCVJlc2VhcmNoIEluIE1vdGlvbgorCQkJCTI5NSBQaGlsbGlwIFN0cmVldAorCQkJCVdhdGVybG9vIE9udGFyaW8gTjJMIDVSOQorCQkJCUNBTkFEQQorCitGNC0xRi0wQiAgIChoZXgpCQlZQU1BQklTSEkgQ29ycG9yYXRpb24KK0Y0MUYwQiAgICAgKGJhc2UgMTYpCQlZQU1BQklTSEkgQ29ycG9yYXRpb24KKwkJCQkzLTE0LTEyIEthbWlnb3UKKwkJCQlFYmluYS1jaXR5IEtBTkFHQVdBIDI0My0wNDM0CisJCQkJSkFQQU4KKworRjQtMzYtRTEgICAoaGV4KQkJQWJpbGlzIFN5c3RlbXMgU0FSTAorRjQzNkUxICAgICAoYmFzZSAxNikJCUFiaWxpcyBTeXN0ZW1zIFNBUkwKKwkJCQkzLCBjaGVtaW4gUHLvv70gRmxldXJpCisJCQkJUGxhbi1MZXMtT3VhdGVzIEdlbmV2YSAxMjI4CisJCQkJU1dJVFpFUkxBTkQKKworRjQtMzgtMTQgICAoaGV4KQkJU2hhbmdoYWkgSG93ZWxsIEVsZWN0cm9uaWMgQ28uLEx0ZAorRjQzODE0ICAgICAoYmFzZSAxNikJCVNoYW5naGFpIEhvd2VsbCBFbGVjdHJvbmljIENvLixMdGQKKwkJCQk1LTUvRiwgQmxkZy4xLCBOby43ODggRmVuZ3poZW4gUmQuLCAKKwkJCQlTaGFuZ2hhaSAgIDIwMDQzNAorCQkJCUNISU5BCisKK0Y0LTNELTgwICAgKGhleCkJCUZBRyBJbmR1c3RyaWFsIFNlcnZpY2VzIEdtYkgKK0Y0M0Q4MCAgICAgKGJhc2UgMTYpCQlGQUcgSW5kdXN0cmlhbCBTZXJ2aWNlcyBHbWJICisJCQkJS2Fpc2Vyc3RyYXNzZSAxMDAKKwkJCQlIZXJ6b2dlbnJhdGggTlJXIDUyMTM0CisJCQkJR0VSTUFOWQorCitGNC0zRS02MSAgIChoZXgpCQlTaGVuemhlbiBHb25namluIEVsZWN0cm9uaWNzIENvLiwgTHRkCitGNDNFNjEgICAgIChiYXNlIDE2KQkJU2hlbnpoZW4gR29uZ2ppbiBFbGVjdHJvbmljcyBDby4sIEx0ZAorCQkJCTJGIEJhaXlpbmcgQnVpbGRpbmcKKwkJCQkxMDE5IyBOYWloYWkgUkQsIE5hbnNoYW4gU2VjdGlvbgorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNjcKKwkJCQlDSElOQQorCitGNC0zRS05RCAgIChoZXgpCQlCZW51IE5ldHdvcmtzLCBJbmMuCitGNDNFOUQgICAgIChiYXNlIDE2KQkJQmVudSBOZXR3b3JrcywgSW5jLgorCQkJCTMwMCBDb25jb3JkIFJkLiwgU3VpdGUgIzExMAorCQkJCUJpbGxlcmljYSBNQSAwMTgyMQorCQkJCVVOSVRFRCBTVEFURVMKKworRjQtNDItMjcgICAoaGV4KQkJUyAmIFMgUmVzZWFyY2ggSW5jLgorRjQ0MjI3ICAgICAoYmFzZSAxNikJCVMgJiBTIFJlc2VhcmNoIEluYy4KKwkJCQk4OSBBY2Nlc3MgUmQgIzEwCisJCQkJTm9yd29vZCBNQSAwMjA2MgorCQkJCVVOSVRFRCBTVEFURVMKKworRjQtNDQtNTAgICAoaGV4KQkJQk5EIENvLiwgTHRkLgorRjQ0NDUwICAgICAoYmFzZSAxNikJCUJORCBDby4sIEx0ZC4KKwkJCQk1NzMtMTMgQm9raHllb24tZG9uZywgQnVrLWd1CisJCQkJSVQtY29udmVyZ2VuY2UgQkxERy4gMTBGCisJCQkJRGFlZ3UgIDcwMi0wMjAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjQtNDUtRUQgICAoaGV4KQkJUG9ydGFibGUgSW5ub3ZhdGlvbiBUZWNobm9sb2d5IEx0ZC4KK0Y0NDVFRCAgICAgKGJhc2UgMTYpCQlQb3J0YWJsZSBJbm5vdmF0aW9uIFRlY2hub2xvZ3kgTHRkLgorCQkJCTYwMS02MDIsIDYvRiBQYXJrIEJ1aWxkaW5nLAorCQkJCTQ3NiBDYXN0bGUgUGVhayBSb2FkLAorCQkJCUtvd2xvb24gIAorCQkJCUhPTkcgS09ORworCitGNC00OC00OCAgIChoZXgpCQlBbXNjcmVlbiBHcm91cCBMdGQKK0Y0NDg0OCAgICAgKGJhc2UgMTYpCQlBbXNjcmVlbiBHcm91cCBMdGQKKwkJCQlQYXJhZ29uIEJ1c2luZXNzIFBhcmsKKwkJCQlDaG9ybGV5IE5ldyBSb2FkLCBIb3J3aWNoCisJCQkJQm9sdG9uIExhbmNzIEJMNiA2SEcKKwkJCQlVTklURUQgS0lOR0RPTQorCitGNC00RS1GRCAgIChoZXgpCQlBY3Rpb25zIFNlbWljb25kdWN0b3IgQ28uLEx0ZC4oQ2F5bWFuIElzbGFuZHMpCitGNDRFRkQgICAgIChiYXNlIDE2KQkJQWN0aW9ucyBTZW1pY29uZHVjdG9yIENvLixMdGQuKENheW1hbiBJc2xhbmRzKQorCQkJCVBvIEJveCAzMDlHVCxVZ2xhbmQgSG91c2UsU291dGggQ2h1cmNoIFN0cmVldCwKKwkJCQlHZW9yZ2UgVG93biBHcmFuZCBDYXltYW4gCisJCQkJQ0FZTUFOIElTTEFORFMKKworRjQtNTAtRUIgICAoaGV4KQkJVGVsZWNoaXBzIEluYworRjQ1MEVCICAgICAoYmFzZSAxNikJCVRlbGVjaGlwcyBJbmMKKwkJCQlLT1JBRCBCbGRnLDEwMDAtMTIsIERhZWNoaS1Eb25nLCBHYW5nbmFtLUd1LAorCQkJCVNlb3VsICAxMzUtMjgwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Y0LTU0LTMzICAgKGhleCkJCVJvY2t3ZWxsIEF1dG9tYXRpb24KK0Y0NTQzMyAgICAgKGJhc2UgMTYpCQlSb2Nrd2VsbCBBdXRvbWF0aW9uCisJCQkJMSBBbGxlbi1CcmFkbGV5IERyaXZlCisJCQkJQ1MtQzIzOQorCQkJCU1heWZpZWxkIEhlaWdodHMgIE9oaW8KKwkJCQlVTklURUQgU1RBVEVTCisKK0Y0LTU1LTk1ICAgKGhleCkJCUhFTkdCQU8gQ29ycG9yYXRpb24gTFRELgorRjQ1NTk1ICAgICAoYmFzZSAxNikJCUhFTkdCQU8gQ29ycG9yYXRpb24gTFRELgorCQkJCTh0aCBGbG9vcixUb3dlciBCLFhpbnNoZW5nIE1hbnNpb24gTm8uNSBGaW5hbmNpYWwgU3RyZWV0LAorCQkJCVhpY2hlbmcgRGlzdHJpY3QKKwkJCQlCZWlqaW5nICAxMDAxNDAKKwkJCQlDSElOQQorCitGNC01NS05QyAgIChoZXgpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCitGNDU1OUMgICAgIChiYXNlIDE2KQkJSHVhd2VpIFRlY2hub2xvZ2llcyBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QKKwkJCQlTaGVuemhlbiBHdWFuZ0RvbmcgNTE4MDU3CisJCQkJQ0hJTkEKKworRjQtNTUtRTAgICAoaGV4KQkJTmljZXdheSBDTkMgVGVjaG5vbG9neSBDby4sTHRkLkh1bmFuIFByb3ZpbmNlCitGNDU1RTAgICAgIChiYXNlIDE2KQkJTmljZXdheSBDTkMgVGVjaG5vbG9neSBDby4sTHRkLkh1bmFuIFByb3ZpbmNlCisJCQkJNS9GLElubm92YXRpb24tVW5kZXJ0YWtpbmcgQ2VudGVyLEh1YW5CYW8gSW5kdXN0cmlhbCBQYXJrLDE5OSMsWmhlbkh1YSBSb2FkLAorCQkJCUNoYW5nc2hhIEh1bmFuIDQxMDExNgorCQkJCUNISU5BCisKK0Y0LTVGLUQ0ICAgKGhleCkJCUNpc2NvIFNQVlRHCitGNDVGRDQgICAgIChiYXNlIDE2KQkJQ2lzY28gU1BWVEcKKwkJCQk1MDMwIFN1Z2FybG9hZiBQa3d5CisJCQkJTGF3cmVuY2V2aWxsZSBHQSAzMDA0NAorCQkJCVVOSVRFRCBTVEFURVMKKworRjQtNUYtRjcgICAoaGV4KQkJRFEgVGVjaG5vbG9neSBJbmMuCitGNDVGRjcgICAgIChiYXNlIDE2KQkJRFEgVGVjaG5vbG9neSBJbmMuCisJCQkJNTExMSBKb2huc29uIERyaXZlCisJCQkJUGxlYXNhbnRvbiBDQSA5NDU4OAorCQkJCVVOSVRFRCBTVEFURVMKKworRjQtNjAtMEQgICAoaGV4KQkJUGFub3B0aWMgVGVjaG5vbG9neSwgSW5jCitGNDYwMEQgICAgIChiYXNlIDE2KQkJUGFub3B0aWMgVGVjaG5vbG9neSwgSW5jCisJCQkJNTg3IFcgRWF1IEdhbGxpZSBCbHZkCisJCQkJU3VpdGUgMTA0CisJCQkJTWVsYm91cm5lIEZMIDMyOTM1CisJCQkJVU5JVEVEIFNUQVRFUworCitGNC02My00OSAgIChoZXgpCQlEaWZmb24gQ29ycG9yYXRpb24KK0Y0NjM0OSAgICAgKGJhc2UgMTYpCQlEaWZmb24gQ29ycG9yYXRpb24KKwkJCQlEaWdpdGFsIFRvd2VyIEFzdG9uIDE1MDUKKwkJCQk1MDUtMTUgR2FzYW4sIEd1ZW1jaGVvbgorCQkJCVNlb3VsICAxNTM4MDMKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjQtNkQtMDQgICAoaGV4KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCitGNDZEMDQgICAgIChiYXNlIDE2KQkJQVNVU1RlayBDT01QVVRFUiBJTkMuCisJCQkJMTUsTGktVGUgUmQuLFBlaXRvdSwKKwkJCQlUYWlwZWkgIDExMgorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRjQtNzMtQ0EgICAoaGV4KQkJQ29udmVyc2lvbiBTb3VuZCBJbmMuCitGNDczQ0EgICAgIChiYXNlIDE2KQkJQ29udmVyc2lvbiBTb3VuZCBJbmMuCisJCQkJOTYwIE4uIE5vcnRod2VzdCBId3kKKwkJCQlQYXJrIFJpZGdlIElMIDYwMDY4CisJCQkJVU5JVEVEIFNUQVRFUworCitGNC03Ni0yNiAgIChoZXgpCQlWaWx0ZWNobWVkYSBVQUIgCitGNDc2MjYgICAgIChiYXNlIDE2KQkJVmlsdGVjaG1lZGEgVUFCIAorCQkJCUthbHZhcmlqdSAxMjUKKwkJCQlWaWxuaXVzICBMVC0wODIyMQorCQkJCUxJVEhVQU5JQQorCitGNC03QS1DQyAgIChoZXgpCQlTb2xpZEZpcmUsIEluYy4KK0Y0N0FDQyAgICAgKGJhc2UgMTYpCQlTb2xpZEZpcmUsIEluYy4KKwkJCQkxNjIwIFBlYXJsIFN0cmVldAorCQkJCVN1aXRlIDIwMAorCQkJCUJvdWxkZXIgQ29sb3JhZG8gODAzMDIKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y0LTdGLTM1ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0Y0N0YzNSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitGNC04Ny03MSAgIChoZXgpCQlJbmZvYmxveAorRjQ4NzcxICAgICAoYmFzZSAxNikJCUluZm9ibG94CisJCQkJNDc1MCBQYXRyaWNrIEhlbnJ5IERyaXZlCisJCQkJU2FudGEgQ2xhcmEgQ2FsaWZvcm5pYSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworRjQtOEUtMDkgICAoaGV4KQkJTm9raWEgQ29ycG9yYXRpb24KK0Y0OEUwOSAgICAgKGJhc2UgMTYpCQlOb2tpYSBDb3Jwb3JhdGlvbgorCQkJCVlydHRpcGVsbG9udGllIDYKKwkJCQlPdWx1IE91IDkwMjMwCisJCQkJRklOTEFORAorCitGNC05MC1FQSAgIChoZXgpCQlEZWNpc28gQi5WLgorRjQ5MEVBICAgICAoYmFzZSAxNikJCURlY2lzbyBCLlYuCisJCQkJQnVyZ2VtZWVzdGVyIE1panNsYWFuIDIKKwkJCQlNaWRkZWxoYXJuaXMgWnVpZCBIb2xsYW5kIDMyNDEgWEEKKwkJCQlORVRIRVJMQU5EUworCitGNC05NC02MSAgIChoZXgpCQlOZXhHZW4gU3RvcmFnZQorRjQ5NDYxICAgICAoYmFzZSAxNikJCU5leEdlbiBTdG9yYWdlCisJCQkJNDAwIENlbnRlbm5pYWwgQmx2ZC4KKwkJCQlMb3Vpc3ZpbGxlIENPIDgwMDI3CisJCQkJVU5JVEVEIFNUQVRFUworCitGNC05Ri01NCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCitGNDlGNTQgICAgIChiYXNlIDE2KQkJU2Ftc3VuZyBFbGVjdHJvbmljcworCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGNC1BNS0yQSAgIChoZXgpCQlIYXdhIFRlY2hub2xvZ2llcyBJbmMKK0Y0QTUyQSAgICAgKGJhc2UgMTYpCQlIYXdhIFRlY2hub2xvZ2llcyBJbmMKKwkJCQkzMzYgSGF5ZXMgU3QKKwkJCQlTYW4gRnJhbmNpc2NvIENhbGlmb3JuaWEgOTQxMDIKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y0LUFDLUMxICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0Y0QUNDMSAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDLU0vMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitGNC1CMS02NCAgIChoZXgpCQlMaWdodG5pbmcgVGVsZWNvbW11bmljYXRpb25zIFRlY2hub2xvZ3kgQ28uIEx0ZAorRjRCMTY0ICAgICAoYmFzZSAxNikJCUxpZ2h0bmluZyBUZWxlY29tbXVuaWNhdGlvbnMgVGVjaG5vbG9neSBDby4gTHRkCisJCQkJUm9vbSAxMzAyLCBUaWFuoa9hbiBIaS1UZWNoIFBsYXphIFRvd2VyIEEsIEZ1dGlhbiBEaXN0cmljdCwgCisJCQkJU2hlblpoZW4gR3VhbmdEb25nIDUxODA0MAorCQkJCUNISU5BCisKK0Y0LUI1LTQ5ICAgKGhleCkJCVllYXN0YXIgVGVjaG5vbG9neSBDby4sIEx0ZC4KK0Y0QjU0OSAgICAgKGJhc2UgMTYpCQlZZWFzdGFyIFRlY2hub2xvZ3kgQ28uLCBMdGQuCisJCQkJUm9vbTIwMiwgTm8uMjMgV2FuZ2hhaSBSb2FkLCAybmQgU29mdHdhcmUgUGFyaywgCisJCQkJWGlhbWVuIEZ1amlhbiAzNjEwMDYKKwkJCQlDSElOQQorCitGNC1DNy0xNCAgIChoZXgpCQlIdWF3ZWkgRGV2aWNlIENvLiwgTHRkCitGNEM3MTQgICAgIChiYXNlIDE2KQkJSHVhd2VpIERldmljZSBDby4sIEx0ZAorCQkJCUJ1aWxkaW5nIDE3LE5hbmdhbmcgSW5kdXN0cmlhbCBQYXJrLCBUYW5ndG91IDNuZCBJbmR1c3RyaWFsIEVzdGF0ZSxTaGl5YW4gQmFvYW4gRGlzdHJpY3QsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxMDEwOAorCQkJCUNISU5BCisKK0Y0LUM3LTk1ICAgKGhleCkJCVdFWSBFbGVrdHJvbmlrIEFHCitGNEM3OTUgICAgIChiYXNlIDE2KQkJV0VZIEVsZWt0cm9uaWsgQUcKKwkJCQlEb3Jmc3RyYXNzZSA1NworCQkJCVVudGVyZW5nc3RyaW5nZW4gWnVyaWNoIDgxMDMKKwkJCQlTV0lUWkVSTEFORAorCitGNC1DQS1FNSAgIChoZXgpCQlGUkVFQk9YIFNBCitGNENBRTUgICAgIChiYXNlIDE2KQkJRlJFRUJPWCBTQQorCQkJCTggcnVlIGRlIGxhIFZpbGxlIGwnRXZlcXVlCisJCQkJUEFSSVMgSWRGIDc1MDA4CisJCQkJRlJBTkNFCisKK0Y0LUNFLTQ2ICAgKGhleCkJCUhld2xldHQtUGFja2FyZCBDb21wYW55CitGNENFNDYgICAgIChiYXNlIDE2KQkJSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkKKwkJCQkxMTQ0NSBDb21wYXEgQ2VudGVyIERyaXZlCisJCQkJTWFpbGNvZGUgNi4zLjA0OQorCQkJCUhvdXN0b24gVGV4YXMgNzcwNzAKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y0LUQ5LUZCICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ08uLCBMVEQKK0Y0RDlGQiAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENPLiwgTFRECisJCQkJNDE2LCBNYWV0YW4tM2RvbmcsIFllb25ndG9uZy1ndSwKKwkJCQlTdXdvbi1DaXR5IEd5ZW9uZ2dpLWRvIDQ0My03NDIKKwkJCQlTdXdvbiBHeWVvbmdnaS1kbyA0NDMtNzQyCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0Y0LURDLTREICAgKGhleCkJCUJlaWppbmcgQ0NEIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sIEx0ZAorRjREQzREICAgICAoYmFzZSAxNikJCUJlaWppbmcgQ0NEIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sIEx0ZAorCQkJCTEwNyBEb25nc2kgTm9ydGggU3RyZWV0LCBEb25nY2hlbmcgRGlzdHJpY3QsIAorCQkJCUJlaWppbmcgVGlhbiBIYWkgQ29tbWVyY2lhbCBCdWlsZGluZywgUm9vbSA4MDIsIEJsb2NrIEEKKwkJCQlCZWlqaW5nICAxMDAwMDcKKwkJCQlDSElOQQorCitGNC1EQy1EQSAgIChoZXgpCQlaaHVoYWkgSmlhaGUgQ29tbXVuaWNhdGlvbiBUZWNobm9sb2d5IENvLiwgbGltaXRlZAorRjREQ0RBICAgICAoYmFzZSAxNikJCVpodWhhaSBKaWFoZSBDb21tdW5pY2F0aW9uIFRlY2hub2xvZ3kgQ28uLCBsaW1pdGVkCisJCQkJNC9GLEVhc3QgT2YgQjUsU291cnRoIFNvZnR3YXJlIFBhcmssVGFuZ2ppYSwKKwkJCQlaaHVoYWkgR3Vhbmdkb25nIDUxOTA4NQorCQkJCUNISU5BCisKK0Y0LUUxLTQyICAgKGhleCkJCURlbHRhIEVsZWt0cm9uaWthIEJWCitGNEUxNDIgICAgIChiYXNlIDE2KQkJRGVsdGEgRWxla3Ryb25pa2EgQlYKKwkJCQlWaXNzZXJzZGlqayA0CisJCQkJWmllcmlremVlICA0MzAxIE5ECisJCQkJTkVUSEVSTEFORFMKKworRjQtRTYtRDcgICAoaGV4KQkJU29sYXIgUG93ZXIgVGVjaG5vbG9naWVzLCBJbmMuCitGNEU2RDcgICAgIChiYXNlIDE2KQkJU29sYXIgUG93ZXIgVGVjaG5vbG9naWVzLCBJbmMuCisJCQkJMzAwNiBCZWUgQ2F2ZXMgUmQuCisJCQkJU3VpdGUgQS0zMzAKKwkJCQlBdXN0aW4gVGV4YXMgNzg3NDYKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y0LUVBLTY3ICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0Y0RUE2NyAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTTEtMQorCQkJCVNhbiBKb3NlIENBIDk1MTM0CisJCQkJVU5JVEVEIFNUQVRFUworCitGNC1FQy0zOCAgIChoZXgpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KK0Y0RUMzOCAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQkxLTZGLCBCdWlsZGluZyAyLCBQaW5nc2hhbmRheXVhbiBJbmR1c3RyaWFsLCBTb3V0aCBab25lLAorCQkJCVRhb3l1YW4gU3RyZWV0LCBOYW5zaGFuIERpc3RyaWN0LCAKKwkJCQlTaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDAwCisJCQkJQ0hJTkEKKworRjQtRkMtMzIgICAoaGV4KQkJVGV4YXMgSW5zdHJ1bWVudHMKK0Y0RkMzMiAgICAgKGJhc2UgMTYpCQlUZXhhcyBJbnN0cnVtZW50cworCQkJCTEyNTAwIFRJIEJvdWxldmFyZAorCQkJCURhbGxhcyBUWCA3NTI0MworCQkJCVVOSVRFRCBTVEFURVMKKworRjgtMDMtMzIgICAoaGV4KQkJS2hvbXAKK0Y4MDMzMiAgICAgKGJhc2UgMTYpCQlLaG9tcAorCQkJCVJ1YSBKb2UgQ29sbGHnbywgMTYzCisJCQkJU3RhIE1vbmljYQorCQkJCUZsb3JpYW7zcG9saXMgU2FudGEgQ2F0YXJpbmEgODgwMzctMDEwCisJCQkJQlJBWklMCisKK0Y4LTBDLUYzICAgKGhleCkJCUxHIEVsZWN0cm9uaWNzCitGODBDRjMgICAgIChiYXNlIDE2KQkJTEcgRWxlY3Ryb25pY3MKKwkJCQk2MC0zOSAsIEthc2FuLWRvbmcsIEd1bWNoZW9uLWd1CisJCQkJU2VvdWwgIDE1My04MDEKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjgtMEYtNDEgICAoaGV4KQkJV2lzdHJvbiBJbmZvQ29tbShaaG9uZ1NoYW4pIENvcnBvcmF0aW9uCitGODBGNDEgICAgIChiYXNlIDE2KQkJV2lzdHJvbiBJbmZvQ29tbShaaG9uZ1NoYW4pIENvcnBvcmF0aW9uCisJCQkJVG9yY2ggSGlnaC10ZWNoIEluZHVzdHJpYWwgRGV2ZWxvcG1lbnQgWm9uZSwgCisJCQkJWmhvbmdTaGFuIEd1YW5nZG9uZyA1Mjg0MzcKKwkJCQlDSElOQQorCitGOC0wRi04NCAgIChoZXgpCQlOYXR1cmFsIFNlY3VyaXR5IFNBUworRjgwRjg0ICAgICAoYmFzZSAxNikJCU5hdHVyYWwgU2VjdXJpdHkgU0FTCisJCQkJMTY1IEF2ZW51ZSBkZSBCcmV0YWduZQorCQkJCUxpbGxlICA1OTAwMAorCQkJCUZSQU5DRQorCitGOC0xMC0zNyAgIChoZXgpCQlBdG9waWEgU3lzdGVtcywgTFAKK0Y4MTAzNyAgICAgKGJhc2UgMTYpCQlBdG9waWEgU3lzdGVtcywgTFAKKwkJCQk2ODEgTi4gUGxhbm8gUm9hZAorCQkJCVN1aXRlIDExOQorCQkJCVJpY2hhcmRzb24gVFggNzUwODIKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LTFBLTY3ICAgKGhleCkJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorRjgxQTY3ICAgICAoYmFzZSAxNikJCVRQLUxJTksgVEVDSE5PTE9HSUVTIENPLiwgTFRELgorCQkJCUJ1aWxkaW5nIDI0IChmbG9vcnMgMSwzLDQsNSkgYW5kIDI4IChmbG9vcnMxLTQpICBDZW50cmFsIFNjaWVuY2UgYW5kIFRlY2hub2xvZ3kgUGFyayxTaGVubmFuIFJkLCBOYW5zaGFuLCBTaGVuemhlbixDaGluYQorCQkJCXNoZW56aGVuIGd1YW5nZG9uZyBQcm92aW5jZSA1MTgwNTcKKwkJCQlDSElOQQorCitGOC0xRC05MyAgIChoZXgpCQlMb25nZGh1YShCZWlqaW5nKSBDb250cm9scyBUZWNobm9sb2d5IENvLixMdGQKK0Y4MUQ5MyAgICAgKGJhc2UgMTYpCQlMb25nZGh1YShCZWlqaW5nKSBDb250cm9scyBUZWNobm9sb2d5IENvLixMdGQKKwkJCQlSb29tIDEyMDMsTGl4aWFuZyBCdWlsZGluZywgTm8uMTExIFpoaWNodW4gUm9hZCxIYWlkaWFuIERpc3RyaWN0LAorCQkJCUJlaWppbmcgIDEwMDg2CisJCQkJQ0hJTkEKKworRjgtMUUtREYgICAoaGV4KQkJQXBwbGUsIEluYworRjgxRURGICAgICAoYmFzZSAxNikJCUFwcGxlLCBJbmMKKwkJCQkxIEluZmluaXRlIExvb3AKKwkJCQlDdXBlcnRpbm8gQ0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LTJGLTVCICAgKGhleCkJCWVHYXVnZSBTeXN0ZW1zIExMQworRjgyRjVCICAgICAoYmFzZSAxNikJCWVHYXVnZSBTeXN0ZW1zIExMQworCQkJCTE1MTAgMjh0aCBTdCwgU3VpdGUgMjA1CisJCQkJQm91bGRlciBDTyA4MDMwMworCQkJCVVOSVRFRCBTVEFURVMKKworRjgtMzAtOTQgICAoaGV4KQkJQWxjYXRlbC1MdWNlbnQgVGVsZWNvbSBMaW1pdGVkCitGODMwOTQgICAgIChiYXNlIDE2KQkJQWxjYXRlbC1MdWNlbnQgVGVsZWNvbSBMaW1pdGVkCisJCQkJVGhlIFF1YWRyYW50LCBTdG9uZWhpbGwgR3JlZW4gCisJCQkJV2VzdGxlYQorCQkJCVNXSU5ET04gIFNONSA3REoKKwkJCQlVTklURUQgS0lOR0RPTQorCitGOC0zMS0zRSAgIChoZXgpCQllbmRlYXZvdXIgR21iSAorRjgzMTNFICAgICAoYmFzZSAxNikJCWVuZGVhdm91ciBHbWJICisJCQkJTWF4LVBsYW5jay1TdHIuIDA0CisJCQkJVnJlZGVuIE5SVyA0ODY5MQorCQkJCUdFUk1BTlkKKworRjgtMzMtNzYgICAoaGV4KQkJR29vZCBNaW5kIElubm92YXRpb24gQ28uLCBMdGQuCitGODMzNzYgICAgIChiYXNlIDE2KQkJR29vZCBNaW5kIElubm92YXRpb24gQ28uLCBMdGQuCisJCQkJMjAsIExhbmUgMjAwLCBDaGVuZyBIdSBSZC4gCisJCQkJTmlhbyBTb25nIERpc3RyaWN0LgorCQkJCUthb2hzaXVuZyAgODMzCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitGOC0zNS01MyAgIChoZXgpCQlNYWdlbnRhIFJlc2VhcmNoIEx0ZC4KK0Y4MzU1MyAgICAgKGJhc2UgMTYpCQlNYWdlbnRhIFJlc2VhcmNoIEx0ZC4KKwkJCQkxMjggTGl0Y2hmaWVsZCBSb2FkCisJCQkJTmV3IE1pbGZvcmQgQ1QgMDY3NzYKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LTNELUZGICAgKGhleCkJCUh1YXdlaSBUZWNobm9sb2dpZXMgQ28uLCBMdGQKK0Y4M0RGRiAgICAgKGJhc2UgMTYpCQlIdWF3ZWkgVGVjaG5vbG9naWVzIENvLiwgTHRkCisJCQkJQnVpbGRpbmcgMTcsTmFuZ2FuZyBJbmR1c3RyaWFsIFBhcmssIFRhbmd0b3UgM25kIEluZHVzdHJpYWwgRXN0YXRlLFNoaXlhbiBCYW9hbiBEaXN0cmljdAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitGOC00Ni0yRCAgIChoZXgpCQlTWU5URUMgSW5jb3Jwb3JhdGlvbgorRjg0NjJEICAgICAoYmFzZSAxNikJCVNZTlRFQyBJbmNvcnBvcmF0aW9uCisJCQkJM0YsIE5PLjEwNSwgU2hpbmctc2h5dWUgU3QuLCAKKwkJCQlIc2luY2h1ICAzMDAKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0Y4LTQ3LTJEICAgKGhleCkJCVgyZ2VuIERpZ2l0YWwgQ29ycC4gTHRkCitGODQ3MkQgICAgIChiYXNlIDE2KQkJWDJnZW4gRGlnaXRhbCBDb3JwLiBMdGQKKwkJCQkjIDg5LCBTaW5nbG9uZyBSZCAKKwkJCQlUYW95dWFuIEhzaWVuCisJCQkJUGluLUpoZW4gQ2l0eSwgICAzMjQKKwkJCQlUQUlXQU4sIFJFUFVCTElDIE9GIENISU5BCisKK0Y4LTUwLTYzICAgKGhleCkJCVZlcmF0aG9uCitGODUwNjMgICAgIChiYXNlIDE2KQkJVmVyYXRob24KKwkJCQkyMDAwMSBOIENyZWVrIFBrd3kKKwkJCQlCb3RoZWxsIFdBIDk4MDExCisJCQkJVU5JVEVEIFNUQVRFUworCitGOC01Mi1ERiAgIChoZXgpCQlWTkwgRXVyb3BlIEFCCitGODUyREYgICAgIChiYXNlIDE2KQkJVk5MIEV1cm9wZSBBQgorCQkJCUZpbmxhbmRzZ2F0YW4gMTAKKwkJCQlTRSAKKwkJCQlLaXN0YSAgMTY0IDc0CisJCQkJU1dFREVOCisKK0Y4LTY2LUYyICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0Y4NjZGMiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LTY5LTcxICAgKGhleCkJCVNlaWJ1IEVsZWN0cmljIENvLiwKK0Y4Njk3MSAgICAgKGJhc2UgMTYpCQlTZWlidSBFbGVjdHJpYyBDby4sCisJCQkJMTQ1OC03CisJCQkJSGF6YW1hCisJCQkJSGFjaGlvamkgVG9reW8gMTkzLTA5NDEKKwkJCQlKQVBBTgorCitGOC02RS1DRiAgIChoZXgpCQlBcmN4IEluYworRjg2RUNGICAgICAoYmFzZSAxNikJCUFyY3ggSW5jCisJCQkJMTUxIEFtYmVyIFN0LCBVbml0IDEKKwkJCQlNYXJraGFtIE9OIEwzUiAzQjMKKwkJCQlDQU5BREEKKworRjgtNzEtRkUgICAoaGV4KQkJVGhlIEdvbGRtYW4gU2FjaHMgR3JvdXAsIEluYy4KK0Y4NzFGRSAgICAgKGJhc2UgMTYpCQlUaGUgR29sZG1hbiBTYWNocyBHcm91cCwgSW5jLgorCQkJCTg1IEJyb2FkIFN0cmVldAorCQkJCU5ldyBZb3JrIE5ldyBZb3JrIDEwMDA0CisJCQkJVU5JVEVEIFNUQVRFUworCitGOC03Ni05QiAgIChoZXgpCQlOZW9waXMgQ28uLCBMdGQuCitGODc2OUIgICAgIChiYXNlIDE2KQkJTmVvcGlzIENvLiwgTHRkLgorCQkJCSM0MDEgTmVvIGJkLiwgMTk2LTQ0IEFueWFuZzctRG9uZworCQkJCU1hbmFuLUd1CisJCQkJQW55YW5nIEt5b25nZ2ktRG8gNDMwLTg1NworCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGOC03Qi03QSAgIChoZXgpCQlNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLgorRjg3QjdBICAgICAoYmFzZSAxNikJCU1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuCisJCQkJNjAwIE4uIFVTIEhXWSA0NQorCQkJCUxpYmVydHl2aWxsZSBJTCA2MDA0OAorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtN0ItOEMgICAoaGV4KQkJQW1wZWQgV2lyZWxlc3MKK0Y4N0I4QyAgICAgKGJhc2UgMTYpCQlBbXBlZCBXaXJlbGVzcworCQkJCTEzMDg5IFBleXRvbiBEci4gI0MzMDcKKwkJCQlDaGlubyBIaWxscyBDQSA5MTcwOQorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtODEtMUEgICAoaGV4KQkJT1ZFUktJWgorRjg4MTFBICAgICAoYmFzZSAxNikJCU9WRVJLSVoKKwkJCQlIRVJBIDIKKwkJCQlTaXRlIGQnQXJjaGFtcHMKKwkJCQlBcmNoYW1wcyAgNzQxNjAKKwkJCQlGUkFOQ0UKKworRjgtOEMtMUMgICAoaGV4KQkJS0FJU0hVTiBFTEVDVFJPTklDIFRFQ0hOT0xPR1kgQ08uLCBMVEQuIEJFSUpJTkcKK0Y4OEMxQyAgICAgKGJhc2UgMTYpCQlLQUlTSFVOIEVMRUNUUk9OSUMgVEVDSE5PTE9HWSBDTy4sIExURC4gQkVJSklORworCQkJCU5PLjEgRkFSTSwgSEVOR1FJQU8gVklMTEFHRSBXRVNULCBNQUNISUtPVSBUT1dOLCAKKwkJCQlDSEFOR1BJTkcgRElTVFJJQ1QKKwkJCQlCRUlKSU5HICAxMDIyMDAKKwkJCQlDSElOQQorCitGOC04RC1FRiAgIChoZXgpCQlUZW5lYnJhZXgKK0Y4OERFRiAgICAgKGJhc2UgMTYpCQlUZW5lYnJhZXgKKwkJCQkyNyBEcnlkb2NrIEF2ZW51ZQorCQkJCUJvc3RvbiBNQSAwMjIxMAorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtOEYtQ0EgICAoaGV4KQkJR29vZ2xlIEZpYmVyLCBJbmMKK0Y4OEZDQSAgICAgKGJhc2UgMTYpCQlHb29nbGUgRmliZXIsIEluYworCQkJCTE2MDAgQW1waGl0aGVhdHJlIFBhcmt3YXkKKwkJCQlNb3VudGFpbiBWaWV3IENhbGlmb3JuaWEgOTQwNDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LTkxLTJBICAgKGhleCkJCUdMUCBHZXJtYW4gTGlnaHQgUHJvZHVjdHMgR21iSAorRjg5MTJBICAgICAoYmFzZSAxNikJCUdMUCBHZXJtYW4gTGlnaHQgUHJvZHVjdHMgR21iSAorCQkJCUltIFN09mNrbeRkbGUgMTMKKwkJCQlLYXJsc2JhZCBCVyA3NjMwNworCQkJCUdFUk1BTlkKKworRjgtOTMtRjMgICAoaGV4KQkJVk9MQU5TCitGODkzRjMgICAgIChiYXNlIDE2KQkJVk9MQU5TCisJCQkJM0YgSUpVIEJEIDc3MC0xMyBZRU9LU0FNLURPTkcKKwkJCQlHQU5HTkFNLUdVCisJCQkJU0VPVUwgIDEzNS05MjgKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjgtOTctQ0YgICAoaGV4KQkJIERBRVNISU4tSU5GT1JNQVRJT04gVEVDSE5PTE9HWSBDTy4sIExURC4gIAorRjg5N0NGICAgICAoYmFzZSAxNikJCSBEQUVTSElOLUlORk9STUFUSU9OIFRFQ0hOT0xPR1kgQ08uLCBMVEQuICAKKwkJCQk2RiwgQ2h1bmd3b24gQmxkZy4sIDgyOC01IFl1a3NhbS1Eb25nLEthbmduYW0tR3UsIAorCQkJCVNlb3VsICAxMzU5MzUKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRjgtOTktNTUgICAoaGV4KQkJRm9ydHJlc3MgVGVjaG5vbG9neSBJbmMKK0Y4OTk1NSAgICAgKGJhc2UgMTYpCQlGb3J0cmVzcyBUZWNobm9sb2d5IEluYworCQkJCTUxIEdyYW5kIE1hcnNoYWxsIERyaXZlCisJCQkJU2NhcmJvcm91Z2ggT250YXJpbyBNMUIgNU42CisJCQkJQ0FOQURBCisKK0Y4LTlELTBEICAgKGhleCkJCUNvbnRyb2wgVGVjaG5vbG9neSBJbmMuCitGODlEMEQgICAgIChiYXNlIDE2KQkJQ29udHJvbCBUZWNobm9sb2d5IEluYy4KKwkJCQk3NjA4IE5vcnRoIEh1ZHNvbiBBdmUKKwkJCQlPa2xhaG9tYSBDaXR5IE9LIDczMTE2CisJCQkJVU5JVEVEIFNUQVRFUworCitGOC1BMC0zRCAgIChoZXgpCQlEaW5zdGFyIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KK0Y4QTAzRCAgICAgKGJhc2UgMTYpCQlEaW5zdGFyIFRlY2hub2xvZ2llcyBDby4sIEx0ZC4KKwkJCQlGbG9vciA2LCBHdW94aW5nIEJ1aWxkaW5nCisJCQkJQ2hhbmd4aW5nIFJvYWQsIE5hbnNoYW4gRGlzdHJpY3QKKwkJCQlzaGVuemhlbiBHdWFuZ2RvbmcgNTE4MDUyCisJCQkJQ0hJTkEKKworRjgtQTktREUgICAoaGV4KQkJUFVJU1NBTkNFIFBMVVMKK0Y4QTlERSAgICAgKGJhc2UgMTYpCQlQVUlTU0FOQ0UgUExVUworCQkJCTIyMiBJbXBhc3NlIExvdWlzIEzpcGluZQorCQkJCVouSS4gQWxiYXN1ZCAtIFNlY3RldXIgMworCQkJCU1vbnRhdWJhbiAgODIwMDAKKwkJCQlGUkFOQ0UKKworRjgtQUMtNkQgICAoaGV4KQkJRGVsdGVubmEgTHRkCitGOEFDNkQgICAgIChiYXNlIDE2KQkJRGVsdGVubmEgTHRkCisJCQkJRmlyc3QgRmxvb3IgVW5pdCAyCisJCQkJQmVsbGluZ2VyIENsb3NlCisJCQkJQ2hpcHBlbmhhbSBXaWx0c2hpcmUgU04xNSAxQk4KKwkJCQlVTklURUQgS0lOR0RPTQorCitGOC1CNS05OSAgIChoZXgpCQlHdWFuZ3pob3UgQ0hOQVZTIERpZ2l0YWwgVGVjaG5vbG9neSBDby4sTHRkCitGOEI1OTkgICAgIChiYXNlIDE2KQkJR3Vhbmd6aG91IENITkFWUyBEaWdpdGFsIFRlY2hub2xvZ3kgQ28uLEx0ZAorCQkJCUJ1bGlkaW5nIEMsIGluZHVzdHkgYmFzZSBvZiBkaWdpdGFsIGhvbWUgYXBwbGljYXRpb24gYW5kIGRlbW9uc3RyYXRpb24gLHpob25neWkgcm9hZCBHdWFuZ3pob3UgaGlnaGVyIGVkdWNhdGlvbiBtZWdhIGNlbnRlcgorCQkJCUd1YW5nemhvdSBHdWFuZ2RvbmcgNTEwMDA2CisJCQkJQ0hJTkEKKworRjgtQzAtMDEgICAoaGV4KQkJSnVuaXBlciBOZXR3b3JrcworRjhDMDAxICAgICAoYmFzZSAxNikJCUp1bmlwZXIgTmV0d29ya3MKKwkJCQkxMTk0IE4gTWF0aGlsZGEgQXZlbnVlCisJCQkJU3Vubnl2YWxlIENBIDk0MDg5IAorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtQzAtOTEgICAoaGV4KQkJSGlnaGdhdGVzIFRlY2hub2xvZ3kKK0Y4QzA5MSAgICAgKGJhc2UgMTYpCQlIaWdoZ2F0ZXMgVGVjaG5vbG9neQorCQkJCTE0MTUgSGlnaGdhdGUgQXZlCisJCQkJTG9zIEFuZ2VsZXMgQ0EgOTAwNDIKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LUM2LTc4ICAgKGhleCkJCUNhcmVmdXNpb24KK0Y4QzY3OCAgICAgKGJhc2UgMTYpCQlDYXJlZnVzaW9uCisJCQkJMTAwMjAgUGFjaWZpYyBNZXNhIEJsdmQKKwkJCQlTYW4gRGllZ28gQ0EgOTIxMjEKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LUQwLUFDICAgKGhleCkJCVNvbnkgQ29tcHV0ZXIgRW50ZXJ0YWlubWVudCBJbmMuCitGOEQwQUMgICAgIChiYXNlIDE2KQkJU29ueSBDb21wdXRlciBFbnRlcnRhaW5tZW50IEluYy4KKwkJCQkxLTctMSBLb25hbgorCQkJCU1pbmF0by1rdSBUb2t5byAxMDgtMDA3NQorCQkJCUpBUEFOCisKK0Y4LUQwLUJEICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorRjhEMEJEICAgICAoYmFzZSAxNikJCVNhbXN1bmcgRWxlY3Ryb25pY3MgQ28uLEx0ZAorCQkJCSM5NC0xLCBJbXNvby1Eb25nCisJCQkJR3VtaSBHeWVvbmdidWsgNzMwLTM1MAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGOC1EMS0xMSAgIChoZXgpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KK0Y4RDExMSAgICAgKGJhc2UgMTYpCQlUUC1MSU5LIFRFQ0hOT0xPR0lFUyBDTy4sIExURC4KKwkJCQlCdWlsZGluZyAyNCAoZmxvb3JzIDEsMyw0LDUpIGFuZCAyOCAoZmxvb3JzMS00KQorCQkJCUNlbnRyYWwgU2NpZW5jZSBhbmQgVGVjaG5vbG9neSBQYXJrLFNoZW5uYW4gUmQsCisJCQkJU2hlbnpoZW4gR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKK0Y4LUQzLUE5ICAgKGhleCkJCUFYQU4gTmV0d29ya3MKK0Y4RDNBOSAgICAgKGJhc2UgMTYpCQlBWEFOIE5ldHdvcmtzCisJCQkJMkYgTXl1bmdqaW4tQmxkZyBEYWVjaGktRG9uZyBHYW5nbmFtLUd1IAorCQkJCVNlb3VsICAgMTM1LTg0NQorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGOC1ENC02MiAgIChoZXgpCQlQdW1hdHJvbml4IEVxdWlwYW1lbnRvcyBFbGV0cm9uaWNvcyBMdGRhLgorRjhENDYyICAgICAoYmFzZSAxNikJCVB1bWF0cm9uaXggRXF1aXBhbWVudG9zIEVsZXRyb25pY29zIEx0ZGEuCisJCQkJUnVhIEJhcnRvbG9tZXUgTG91cmVuY28gZGUgR3VzbWFvIDIwMjEKKwkJCQlDdXJpdGliYSBQUiA4MTY1MDA1MAorCQkJCUJSQVpJTAorCitGOC1ENy01NiAgIChoZXgpCQlTaW1tIFRyb25pYyBMaW1pdGVkIAorRjhENzU2ICAgICAoYmFzZSAxNikJCVNpbW0gVHJvbmljIExpbWl0ZWQgCisJCQkJVW5pdCAzLCBXYXRlcnNpZGUKKwkJCQlDaGFybHRvbiBNZWFkIExhbmUKKwkJCQlIb2RkZXNkb24gSGVydGZvcmRzaGlyZSBFTjExIDBRUgorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0Y4LURBLUUyICAgKGhleCkJCUJldGEgTGFzZXJNaWtlCitGOERBRTIgICAgIChiYXNlIDE2KQkJQmV0YSBMYXNlck1pa2UKKwkJCQk4MDAxIFRlY2hub2xvZ3kgQmx2ZAorCQkJCURheXRvbiBPSCA0NTQyNAorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtREEtRjQgICAoaGV4KQkJVGFpc2hhbiBPbmxpbmUgVGVjaG5vbG9neSBDby4sIEx0ZC4KK0Y4REFGNCAgICAgKGJhc2UgMTYpCQlUYWlzaGFuIE9ubGluZSBUZWNobm9sb2d5IENvLiwgTHRkLgorCQkJCTQvRiBGYW5nZGEgQnVpbGRpbmcsIFNvdXRoIEFyZWEsIEhpLXRlY2ggSW5kdXN0aWFsIFBhcmssIAorCQkJCVNoZW56aGVuIEd1YW5nZG9uZyA1MTgwNTcKKwkJCQlDSElOQQorCitGOC1EQi00QyAgIChoZXgpCQlQTlkgVGVjaG5vbG9naWVzLCBJTkMuCitGOERCNEMgICAgIChiYXNlIDE2KQkJUE5ZIFRlY2hub2xvZ2llcywgSU5DLgorCQkJCTEwMCBKZWZmZXJzb24gUm9hZAorCQkJCVBhcnNpcHBhbnkgTmV3IEplcnNleSAwNzA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworRjgtREItN0YgICAoaGV4KQkJSFRDIENvcnBvcmF0aW9uCitGOERCN0YgICAgIChiYXNlIDE2KQkJSFRDIENvcnBvcmF0aW9uCisJCQkJTm8uMjMgWGluZ2h1YSBSb2FkCisJCQkJVGFveXVhbiBDaXR5CisJCQkJVGFveXVhbiBDb3VudHkgIDMzMAorCQkJCVRBSVdBTiwgUkVQVUJMSUMgT0YgQ0hJTkEKKworRjgtREMtN0EgICAoaGV4KQkJVmFyaXNjaXRlIExURAorRjhEQzdBICAgICAoYmFzZSAxNikJCVZhcmlzY2l0ZSBMVEQKKwkJCQk2MCBNZWRpbmF0IEhheWVodWRpbSBzdC4KKwkJCQlIZXJ0emVsaWEgIDQ2NzIyCisJCQkJSVNSQUVMCisKK0Y4LUU3LUI1ICAgKGhleCkJCXVUZWNoIEVuZ2VuaGFyaWEgZSBBdXRvbWHnYW8gTFREQQorRjhFN0I1ICAgICAoYmFzZSAxNikJCXVUZWNoIEVuZ2VuaGFyaWEgZSBBdXRvbWHnYW8gTFREQQorCQkJCVJ1YSBEci4gUGVyY3kgSm9hbyBkZSBCb3JiYSwgMjY4CisJCQkJRmxvcmlhbm9wb2xpcyBTYW50YSBDYXRhcmluYSA4ODAzNi0yMDAKKwkJCQlCUkFaSUwKKworRjgtRTktNjggICAoaGV4KQkJRWdrZXIgS2Z0LgorRjhFOTY4ICAgICAoYmFzZSAxNikJCUVna2VyIEtmdC4KKwkJCQlTenVnbG8gdS4gNDkuCisJCQkJQnVkYXBlc3QgIDExNDUKKwkJCQlIVU5HQVJZCisKK0Y4LUVBLTBBICAgKGhleCkJCURpcGwuLU1hdGguIE1pY2hhZWwgUmF1Y2gKK0Y4RUEwQSAgICAgKGJhc2UgMTYpCQlEaXBsLi1NYXRoLiBNaWNoYWVsIFJhdWNoCisJCQkJS2FwZWxsZW5zdHIuIDMxCisJCQkJQnJldHRlbiBCYVf8IDc1MDE1CisJCQkJR0VSTUFOWQorCitGOC1GMC0xNCAgIChoZXgpCQlSYWNrV2FyZSBJbmMuCitGOEYwMTQgICAgIChiYXNlIDE2KQkJUmFja1dhcmUgSW5jLgorCQkJCTQ0MDUzIEZyZW1vbnQgQmx2ZC4KKwkJCQlGcmVtb250IENBIDk0NTM4CisJCQkJVU5JVEVEIFNUQVRFUworCitGOC1GMi01QSAgIChoZXgpCQlHLUxhYiBHbWJICitGOEYyNUEgICAgIChiYXNlIDE2KQkJRy1MYWIgR21iSAorCQkJCVNjaGlmZmJhdXN0cmFzc2UgMTAKKwkJCQladXJpY2ggQ0ggODAwNQorCQkJCVNXSVRaRVJMQU5ECisKK0Y4LUY3LUQzICAgKGhleCkJCUludGVybmF0aW9uYWwgQ29tbXVuaWNhdGlvbnMgQ29ycG9yYXRpb24KK0Y4RjdEMyAgICAgKGJhc2UgMTYpCQlJbnRlcm5hdGlvbmFsIENvbW11bmljYXRpb25zIENvcnBvcmF0aW9uCisJCQkJMTE4MDEgUGllcmNlIFN0LiAybmQgRkwKKwkJCQlSaXZlcnNpZGUgQ0EgOTI1MDUKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LUY3LUZGICAgKGhleCkJCVNZTi1URUNIIFNZU1RFTVMgSU5DCitGOEY3RkYgICAgIChiYXNlIDE2KQkJU1lOLVRFQ0ggU1lTVEVNUyBJTkMKKwkJCQkxMDAgRk9VUiBQT0lOVFMgV0FZCisJCQkJVEFMTEFIQVNTRUUgRkwgMzIzMDUKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LUZCLTJGICAgKGhleCkJCVNhbnR1ciBDb3Jwb3JhdGlvbgorRjhGQjJGICAgICAoYmFzZSAxNikJCVNhbnR1ciBDb3Jwb3JhdGlvbgorCQkJCTQwOTMxIEVuY3ljbG9wZWRpYSBDaXJjbGUKKwkJCQlGcmVtb250IENhbGlmb3JuaWEgOTQ1MzgKKwkJCQlVTklURUQgU1RBVEVTCisKK0Y4LUZFLTVDICAgKGhleCkJCVJlY2lwcm9jYWwgTGFicyBDb3JwCitGOEZFNUMgICAgIChiYXNlIDE2KQkJUmVjaXByb2NhbCBMYWJzIENvcnAKKwkJCQkzIFMuIFBpbmNrbmV5IFN0LgorCQkJCVN1aXRlIDgxNQorCQkJCU1hZGlzb24gV0kgNTM3MDMKKwkJCQlVTklURUQgU1RBVEVTCisKK0ZDLTAwLTEyICAgKGhleCkJCVRvc2hpYmEgU2Ftc3VuZyBTdG9yYWdlIFRlY2hub2xnb3kgS29yZWEgQ29ycG9yYXRpb24gCitGQzAwMTIgICAgIChiYXNlIDE2KQkJVG9zaGliYSBTYW1zdW5nIFN0b3JhZ2UgVGVjaG5vbGdveSBLb3JlYSBDb3Jwb3JhdGlvbiAKKwkJCQkxNCBGbG9vciwgQmxkZy4gTm8uIDEwMiwgRGlnaXRhbCBFbXBpcmUyLCA0ODYsIFNpbi1kb25nLCBZZW9uZ3RvbmctZ3UsIFN1d29uLXNpLCAKKwkJCQlTdS13b24gIEd5ZW9uZ2dpICA0NDMtNzM0IAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGQy0wMS1DRCAgIChoZXgpCQlGVU5EQUNJT04gVEVLTklLRVIKK0ZDMDFDRCAgICAgKGJhc2UgMTYpCQlGVU5EQUNJT04gVEVLTklLRVIKKwkJCQlBdmVuaWRhIE90YW9sYSwgMjAKKwkJCQlFaWJhciBHaXB1emtvYSAyMDYwMAorCQkJCVNQQUlOCisKK0ZDLTA4LTc3ICAgKGhleCkJCVByZW50a2UgUm9taWNoIENvbXBhbnkKK0ZDMDg3NyAgICAgKGJhc2UgMTYpCQlQcmVudGtlIFJvbWljaCBDb21wYW55CisJCQkJMTAyMiBIZXlsIFJkCisJCQkJV29vc3RlciBPSCA0NDY5MQorCQkJCVVOSVRFRCBTVEFURVMKKworRkMtMEEtODEgICAoaGV4KQkJTW90b3JvbGEgU29sdXRpb25zIEluYy4KK0ZDMEE4MSAgICAgKGJhc2UgMTYpCQlNb3Rvcm9sYSBTb2x1dGlvbnMgSW5jLgorCQkJCTEgTW90b3JvbGEgUGxhemEKKwkJCQlIb2x0c3ZpbGxlIE5ZIDExNzQxCisJCQkJVU5JVEVEIFNUQVRFUworCitGQy0wRi1FNiAgIChoZXgpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgSW5jLiAKK0ZDMEZFNiAgICAgKGJhc2UgMTYpCQlTb255IENvbXB1dGVyIEVudGVydGFpbm1lbnQgSW5jLiAKKwkJCQkxLTctMSBLb25hbgorCQkJCU1pbmF0by1rdSAgVG9reW8gMTA4LTAwNzUgCisJCQkJSkFQQU4KKworRkMtMTAtQkQgICAoaGV4KQkJQ29udHJvbCBTaXN0ZW1hdGl6YWRvIFMuQS4KK0ZDMTBCRCAgICAgKGJhc2UgMTYpCQlDb250cm9sIFNpc3RlbWF0aXphZG8gUy5BLgorCQkJCUNyYSA0MyBOIDMxIDUyCisJCQkJTWVkZWxsaW4gQW50aW9xdWlhIDEwMTAxCisJCQkJQ09MT01CSUEKKworRkMtMTctOTQgICAoaGV4KQkJSW50ZXJDcmVhdGl2ZSBDby4sIEx0ZAorRkMxNzk0ICAgICAoYmFzZSAxNikJCUludGVyQ3JlYXRpdmUgQ28uLCBMdGQKKwkJCQk4OTctNiwgSG9HeWUtRG9uZywgRG9uZ0FuLUd1LAorCQkJCUFuWWFuZy1TaSwgR3llb25nR2ktRG8sIDQzMS04MzYKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRkMtMUQtNTkgICAoaGV4KQkJSSBTbWFydCBDaXRpZXMgSEsgTHRkCitGQzFENTkgICAgIChiYXNlIDE2KQkJSSBTbWFydCBDaXRpZXMgSEsgTHRkCisJCQkJVW5pdCBHLDEwL0YsUGhhc2UgMixZaXAgRmF0IElORAorCQkJCUJMREcsNzMtNzVIT0kgWVVFTiBSb2FkCisJCQkJNzMtNzUKKwkJCQlIT05HIEtPTkcKKworRkMtMUYtQzAgICAoaGV4KQkJRVVSRUNBTQorRkMxRkMwICAgICAoYmFzZSAxNikJCUVVUkVDQU0KKwkJCQlCQVQgOSAtIE1pbmlwYXJjCisJCQkJNiBBdmVudWUgZGVzIEFuZGVzCisJCQkJTEVTIFVMSVMgIDkxOTQwCisJCQkJRlJBTkNFCisKK0ZDLTI1LTNGICAgKGhleCkJCUFwcGxlLCBJbmMuCitGQzI1M0YgICAgIChiYXNlIDE2KQkJQXBwbGUsIEluYy4KKwkJCQkxIGluZmluaXRlIExvb3AKKwkJCQljdXBlcnRpbm8gY0EgOTUwMTQKKwkJCQlVTklURUQgU1RBVEVTCisKK0ZDLTJBLTU0ICAgKGhleCkJCWNvbm5lY3RlZCBkYXRhCitGQzJBNTQgICAgIChiYXNlIDE2KQkJY29ubmVjdGVkIGRhdGEKKwkJCQkyOTA1IHN0ZW5kZXIgd2F5CisJCQkJc3VpdGUgMzYKKwkJCQlzYW50YSBjbGFyYSBjYSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworRkMtMkUtMkQgICAoaGV4KQkJTG9yb20gSW5kdXN0cmlhbCBDby5MVEQuCitGQzJFMkQgICAgIChiYXNlIDE2KQkJTG9yb20gSW5kdXN0cmlhbCBDby5MVEQuCisJCQkJRjEuMTMsUm0uMixOby43OCxTZWMuMixBbi1Ib1JkLgorCQkJCVRhaXBlaSAgMTA2CisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitGQy0yRi00MCAgIChoZXgpCQlDYWx4ZWRhLCBJbmMuCitGQzJGNDAgICAgIChiYXNlIDE2KQkJQ2FseGVkYSwgSW5jLgorCQkJCTcwMDAgTm9ydGggTW9wYWMgRXhwcmVzc3dheQorCQkJCVN1aXRlIDI1MAorCQkJCUF1c3RpbiBUWCA3ODczMQorCQkJCVVOSVRFRCBTVEFURVMKKworRkMtMzUtOTggICAoaGV4KQkJRmF2aXRlIEluYy4KK0ZDMzU5OCAgICAgKGJhc2UgMTYpCQlGYXZpdGUgSW5jLgorCQkJCU5vLjE5LCBMYW5lIDc4LCBZYW5oZSBTdC4sCisJCQkJSmh1YmVpIENpdHkgSHNpbmNodSBDb3VudHkgMzAyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitGQy00NC02MyAgIChoZXgpCQlVbml2ZXJzYWwgQXVkaW8KK0ZDNDQ2MyAgICAgKGJhc2UgMTYpCQlVbml2ZXJzYWwgQXVkaW8KKwkJCQkxNzAwIEdyZWVuIEhpbGxzIFJvYWQKKwkJCQlTY290dHMgVmFsbGV5IENBIDk1MDY2CisJCQkJVU5JVEVEIFNUQVRFUworCitGQy00NS01RiAgIChoZXgpCQlKSUFOR1hJIFNIQU5TSFVJIE9QVE9FTEVDVFJPTklDIFRFQ0hOT0xPR1kgQ08uLExURAorRkM0NTVGICAgICAoYmFzZSAxNikJCUpJQU5HWEkgU0hBTlNIVUkgT1BUT0VMRUNUUk9OSUMgVEVDSE5PTE9HWSBDTy4sTFRECisJCQkJTm8uMTAxMCxBbnBpbmcgUm9hZCxFY28tSW5kdXN0cmlhbCBQYXJrLEx1c2hhbiBEaXN0cmljdAorCQkJCUppdWppYW5nIEppYW5neGkgMzMyMDAwCisJCQkJQ0hJTkEKKworRkMtNDgtRUYgICAoaGV4KQkJSFVBV0VJIFRFQ0hOT0xPR0lFUyBDTy4sTFRECitGQzQ4RUYgICAgIChiYXNlIDE2KQkJSFVBV0VJIFRFQ0hOT0xPR0lFUyBDTy4sTFRECisJCQkJRDEtNEE1MlIsSHVhd2VpIEluZHVzdHJpYWwgQmFzZSwgQmFudGlhbiBMb25nZ2FuZywgCisJCQkJU2hlbnpoZW4gR3VhbmdEb25nIDUxODEyOQorCQkJCUNISU5BCisKK0ZDLTRELUQ0ICAgKGhleCkJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorRkM0REQ0ICAgICAoYmFzZSAxNikJCVVuaXZlcnNhbCBHbG9iYWwgU2NpZW50aWZpYyBJbmR1c3RyaWFsIENvLiwgTHRkLgorCQkJCTE0MSwgTGFuZSAzNTEsIFRhaXBpbmcgUmQuIFNlYy4gMSwgVHNhbyBUdWVuLAorCQkJCU5hbi1Ub3UgSHNpZW4sICAgNTQyCisJCQkJVEFJV0FOLCBSRVBVQkxJQyBPRiBDSElOQQorCitGQy01MC05MCAgIChoZXgpCQlTSU1FWCBTcC4geiBvLm8uCitGQzUwOTAgICAgIChiYXNlIDE2KQkJU0lNRVggU3AuIHogby5vLgorCQkJCXVsLiBXaWVsb3BvbGUgNworCQkJCUdkYe+/vXNrIHBvbW9yc2tpZSA4MC01NTYKKwkJCQlQT0xBTkQKKworRkMtNUItMjQgICAoaGV4KQkJV2VpYmVsIFNjaWVudGlmaWMgQS9TCitGQzVCMjQgICAgIChiYXNlIDE2KQkJV2VpYmVsIFNjaWVudGlmaWMgQS9TCisJCQkJU29sdmFuZyAzMAorCQkJCUFsbGVyb2VkICAzNDUwCisJCQkJREVOTUFSSworCitGQy01Qi0yNiAgIChoZXgpCQlNaWtyb0JpdHMKK0ZDNUIyNiAgICAgKGJhc2UgMTYpCQlNaWtyb0JpdHMKKwkJCQlKYWxhbiBQZXR1bmcgMzEgUGFwcmluZ2FuCisJCQkJWW9neWFrYXJ0YSBESVkgNTUyODEKKwkJCQlJTkRPTkVTSUEKKworRkMtNjEtOTggICAoaGV4KQkJTkVDIFBlcnNvbmFsIFByb2R1Y3RzLCBMdGQKK0ZDNjE5OCAgICAgKGJhc2UgMTYpCQlORUMgUGVyc29uYWwgUHJvZHVjdHMsIEx0ZAorCQkJCTYtODAsIFNoaW1vaGFuYXphd2EgMi1jaG9tZSwKKwkJCQlZb25lemF3YS1zaGkgWWFtYWdhdGEgOTkyLTg1MjAKKwkJCQlKQVBBTgorCitGQy02OC0zRSAgIChoZXgpCQlEaXJlY3RlZCBQZXJjZXB0aW9uLCBJbmMKK0ZDNjgzRSAgICAgKGJhc2UgMTYpCQlEaXJlY3RlZCBQZXJjZXB0aW9uLCBJbmMKKwkJCQk4OTBDIENvd2FuIFJvYWQKKwkJCQlCdXJsaW5nYW1lIENhbGlmb3JuaWEgOTQwMTAKKwkJCQlVTklURUQgU1RBVEVTCisKK0ZDLTZDLTMxICAgKGhleCkJCUxYaW5zdHJ1bWVudHMgR21iSAorRkM2QzMxICAgICAoYmFzZSAxNikJCUxYaW5zdHJ1bWVudHMgR21iSAorCQkJCUhlcnJlbmJlcmdlciBTdHIuIDEzMAorCQkJCUJvZWJsaW5nZW4gIDcxMDM0CisJCQkJR0VSTUFOWQorCitGQy03NS0xNiAgIChoZXgpCQlELUxpbmsgSW50ZXJuYXRpb25hbAorRkM3NTE2ICAgICAoYmFzZSAxNikJCUQtTGluayBJbnRlcm5hdGlvbmFsCisJCQkJMSBJbnRlcm5hdGlvbmFsIEJ1c2luZXNzIFBhcmssICMwMy0xMiwgVGhlIFN5bmVyZ3kgCisJCQkJNjA5OTE3CisJCQkJU0lOR0FQT1JFCisKK0ZDLTc1LUU2ICAgKGhleCkJCUhhbmRyZWFtbmV0CitGQzc1RTYgICAgIChiYXNlIDE2KQkJSGFuZHJlYW1uZXQKKwkJCQkjMTIwOSBNYXJpb1Rvd2VyLCAyMjItMTIsIEd1cm8tRG9uZywgR3Vyby1HdQorCQkJCVNlb3VsIEd1cm8tR3UgMTUyLTg0OAorCQkJCUtPUkVBLCBSRVBVQkxJQyBPRgorCitGQy03Qy1FNyAgIChoZXgpCQlGQ0kgVVNBIExMQworRkM3Q0U3ICAgICAoYmFzZSAxNikJCUZDSSBVU0EgTExDCisJCQkJODI1IE9sZCBUcmFpbCBSb2FkCisJCQkJRXR0ZXJzIFBBIDE3MzE5CisJCQkJVU5JVEVEIFNUQVRFUworCitGQy04My0yOSAgIChoZXgpCQlUcmVpIHRlY2huaWNzCitGQzgzMjkgICAgIChiYXNlIDE2KQkJVHJlaSB0ZWNobmljcworCQkJCTgwMSBOb3J0aHBvaW50IFBrd3kKKwkJCQlTdGUgNTQKKwkJCQlXZXN0IFBhbG0gQmVhY2ggRmxvcmlkYSAzMzQwNworCQkJCVVOSVRFRCBTVEFURVMKKworRkMtODMtOTkgICAoaGV4KQkJQXZheWEsIEluYworRkM4Mzk5ICAgICAoYmFzZSAxNikJCUF2YXlhLCBJbmMKKwkJCQkyMTEgTW91bnQgQWlyeSBSb2FkCisJCQkJQmFza2luZyBSaWRnZSBOSiAwNzkyMAorCQkJCVVOSVRFRCBTVEFURVMKKworRkMtOEUtN0UgICAoaGV4KQkJUGFjZSBwbGMKK0ZDOEU3RSAgICAgKGJhc2UgMTYpCQlQYWNlIHBsYworCQkJCVZpY3RvcmlhIFJvYWQsCisJCQkJU2FsdGFpcmUKKwkJCQlXZXN0IFlvcmtzaGlyZSwgRW5nbGFuZCBCRDE4IDNMRgorCQkJCVVOSVRFRCBLSU5HRE9NCisKK0ZDLThGLUM0ICAgKGhleCkJCUludGVsbGlnZW50IFRlY2hub2xvZ3kgSW5jLgorRkM4RkM0ICAgICAoYmFzZSAxNikJCUludGVsbGlnZW50IFRlY2hub2xvZ3kgSW5jLgorCQkJCVl1YW5oZSAzIFN0cmVldCxUb25nc2hhIEluZHVzdHJpYWwgWm9uZSwKKwkJCQlEb25nY2hlbmcgQXJlYQorCQkJCURvbmdndWFuIEd1YW5nZG9uZyA1MjMxMjcKKwkJCQlDSElOQQorCitGQy05NC02QyAgIChoZXgpCQlVQklWRUxPWAorRkM5NDZDICAgICAoYmFzZSAxNikJCVVCSVZFTE9YCisJCQkJIzEzMDEgS09MT05HIERpZ2l0YWwgVmlsbGVudCAyMjItNyBHdXJvLWRvbmcgR3Vyby1ndQorCQkJCVNFT1VMICAxNTItNzc3CisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0ZDLTk0LUUzICAgKGhleCkJCVRlY2huaWNvbG9yIFVTQSBJbmMuCitGQzk0RTMgICAgIChiYXNlIDE2KQkJVGVjaG5pY29sb3IgVVNBIEluYy4KKwkJCQkxMDEgV2VzdCAxMDNyZCBTdHJlZXQKKwkJCQlJbmRpYW5hcG9saXMgSU4gNDYyOTAKKwkJCQlVTklURUQgU1RBVEVTCisKK0ZDLUExLTNFICAgKGhleCkJCVNhbXN1bmcgRWxlY3Ryb25pY3MKK0ZDQTEzRSAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzCisJCQkJIzk0LTEsIEltc29vLURvbmcKKwkJCQlHdW1pIEd5ZW9uZ2J1ayA3MzAtMzUwCisJCQkJS09SRUEsIFJFUFVCTElDIE9GCisKK0ZDLUE4LTQxICAgKGhleCkJCUF2YXlhLCBJbmMKK0ZDQTg0MSAgICAgKGJhc2UgMTYpCQlBdmF5YSwgSW5jCisJCQkJMjExIE1vdW50IEFpcnkgUm9hZAorCQkJCUJhc2tpbmcgUmlkZ2UgTkogMDc5MjAKKwkJCQlVTklURUQgU1RBVEVTCisKK0ZDLUFGLTZBICAgKGhleCkJCUNvbmVtdGVjaCBBQgorRkNBRjZBICAgICAoYmFzZSAxNikJCUNvbmVtdGVjaCBBQgorCQkJCVRvcnNoYW1uc2dhdGFuIDM1CisJCQkJS2lzdGEgIFNFLTE2NDQwCisJCQkJU1dFREVOCisKK0ZDLUMyLTNEICAgKGhleCkJCUF0bWVsIENvcnBvcmF0aW9uCitGQ0MyM0QgICAgIChiYXNlIDE2KQkJQXRtZWwgQ29ycG9yYXRpb24KKwkJCQkxMTUwIEUgQ2hleWVubmUgTXRuIEJsdmQKKwkJCQlDb2xvcmFkbyBTcHJpbmdzIENPIDgwOTA2CisJCQkJVU5JVEVEIFNUQVRFUworCitGQy1DNy0zNCAgIChoZXgpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKK0ZDQzczNCAgICAgKGJhc2UgMTYpCQlTYW1zdW5nIEVsZWN0cm9uaWNzIENvLixMdGQKKwkJCQkjOTQtMSwgSW1zb28tRG9uZworCQkJCUd1bWkgR3llb25nYnVrIDczMC0zNTAKKwkJCQlLT1JFQSwgUkVQVUJMSUMgT0YKKworRkMtQzgtOTcgICAoaGV4KQkJWlRFIENvcnBvcmF0aW9uCitGQ0M4OTcgICAgIChiYXNlIDE2KQkJWlRFIENvcnBvcmF0aW9uCisJCQkJMTIvRi4sUiZEIEJ1aWxkaW5nLEtlamluYW4gUm9hZCwKKwkJCQlTaGVuemhlbiwgR3Vhbmdkb25nIDUxODA1NworCQkJCUNISU5BCisKK0ZDLUNDLUU0ICAgKGhleCkJCUFzY29uIEx0ZC4KK0ZDQ0NFNCAgICAgKGJhc2UgMTYpCQlBc2NvbiBMdGQuCisJCQkJMS0xNS0yNyBNaW5hdG8tbWFjaGkgCisJCQkJRnVrdXlhbWEg4oCTc2hpIEhpcm9zaGltYS1rZW4gNzIxLTA5NjQKKwkJCQlKQVBBTgorCitGQy1DRi02MiAgIChoZXgpCQlJQk0gQ29ycAorRkNDRjYyICAgICAoYmFzZSAxNikJCUlCTSBDb3JwCisJCQkJMjA1MSBNaXNzaW9uIENvbGxlZ2UgQmx2ZCAKKwkJCQlTYW50YSBDbGFyYSBDQSA5NTA1NAorCQkJCVVOSVRFRCBTVEFURVMKKworRkMtRDQtRjIgICAoaGV4KQkJVGhlIENvY2EgQ29sYSBDb21wYW55CitGQ0Q0RjIgICAgIChiYXNlIDE2KQkJVGhlIENvY2EgQ29sYSBDb21wYW55CisJCQkJT25lIENvY2EgQ29sYSBQbGF6YQorCQkJCUF0bGFudGEgR0EgMzAzMTMKKwkJCQlVTklURUQgU1RBVEVTCisKK0ZDLUQ0LUY2ICAgKGhleCkJCU1lc3NhbmEgQWlyLlJheSBDb25kaXRpb25pbmcgcy5yLmwuCitGQ0Q0RjYgICAgIChiYXNlIDE2KQkJTWVzc2FuYSBBaXIuUmF5IENvbmRpdGlvbmluZyBzLnIubC4KKwkJCQlWaWEgVmVuZXppYSAxOAorCQkJCU9kZXJ6byBUViAzMTA0NgorCQkJCUlUQUxZCisKK0ZDLUUxLTkyICAgKGhleCkJCVNpY2h1YW4gSmlud2FuZ3RvbmcgRWxlY3Ryb25pYyBTY2llbmNlJlRlY2hub2xvZ3kgQ28sLkx0ZAorRkNFMTkyICAgICAoYmFzZSAxNikJCVNpY2h1YW4gSmlud2FuZ3RvbmcgRWxlY3Ryb25pYyBTY2llbmNlJlRlY2hub2xvZ3kgQ28sLkx0ZAorCQkJCU5vLjI4LFhpbmNodWFuZyBSZC4sV2VzdCBHYW94aW4gRGlzdHJpY3QKKwkJCQlDaGVuZ2R1IFNpY2h1YW4gNjExNzMxCisJCQkJQ0hJTkEKKworRkMtRTItM0YgICAoaGV4KQkJQ0xBWSBQQUtZIFNQQQorRkNFMjNGICAgICAoYmFzZSAxNikJCUNMQVkgUEFLWSBTUEEKKwkJCQlWaWEgUGFzdHJlbmdvIDMvYgorCQkJCVNlcmlhdGUgQmVyZ2FtbyAyNDA2OAorCQkJCUlUQUxZCisKK0ZDLUU1LTU3ICAgKGhleCkJCU5va2lhIENvcnBvcmF0aW9uCitGQ0U1NTcgICAgIChiYXNlIDE2KQkJTm9raWEgQ29ycG9yYXRpb24KKwkJCQlFbGVrdHJvbmlpa2thdGllIDEwCisJCQkJT3VsdSBPdSA5MDU5MAorCQkJCUZJTkxBTkQKKworRkMtRTgtOTIgICAoaGV4KQkJSGFuZ3pob3UgTGFuY2FibGUgVGVjaG5vbG9neSBDby4sTHRkCitGQ0U4OTIgICAgIChiYXNlIDE2KQkJSGFuZ3pob3UgTGFuY2FibGUgVGVjaG5vbG9neSBDby4sTHRkCisJCQkJWm9uZSBBLEZsb29yIDE2LFpob25nY2FpIEJ1aWxkaW5nLDY4IyxUb25naGUgUm9hZCxCaW5qaWFuZyBEaXN0cmljdCwKKwkJCQlIYW5nemhvdSBaaGVqaWFuZyAzMTAwNTEKKwkJCQlDSElOQQorCitGQy1FRC1COSAgIChoZXgpCQlBcnJheWVudAorRkNFREI5ICAgICAoYmFzZSAxNikJCUFycmF5ZW50CisJCQkJNTcwIEVsIENhbWlubyBSZWFsICMxNTAtNDE5CisJCQkJUmVkd29vZCBDaXR5IENBIDk0MDYzCisJCQkJVU5JVEVEIFNUQVRFUworCitGQy1GMS1DRCAgIChoZXgpCQlPUFRFWC1GQSBDTy4sTFRELgorRkNGMUNEICAgICAoYmFzZSAxNikJCU9QVEVYLUZBIENPLixMVEQuCisJCQkJOTEgQXdhdGEtY2hvCisJCQkJQ2h1ZG9qaSBTaGltb2d5by1rdQorCQkJCUt5b3RvICA2MDAtODgxNQorCQkJCUpBUEFOCisKK0ZDLUY4LUFFICAgKGhleCkJCUludGVsIENvcnBvcmF0ZQorRkNGOEFFICAgICAoYmFzZSAxNikJCUludGVsIENvcnBvcmF0ZQorCQkJCUxvdCA4LCBKYWxhbiBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBIaS1UZWNoIFBhcmsKKwkJCQlLdWxpbSBLZWRhaCAwOTAwMAorCQkJCU1BTEFZU0lBCisKK0ZDLUZBLUY3ICAgKGhleCkJCVNoYW5naGFpIEJhdWQgRGF0YSBDb21tdW5pY2F0aW9uIENvLixMdGQuCitGQ0ZBRjcgICAgIChiYXNlIDE2KQkJU2hhbmdoYWkgQmF1ZCBEYXRhIENvbW11bmljYXRpb24gQ28uLEx0ZC4KKwkJCQlOTy4xMjMgSlVMSSBSRAorCQkJCVBVRE9ORyBaSEFOR0pJQU5HIEhJR0gtVEVDSCBQQVJLCisJCQkJU0hBTkdIQUkgIDIwMTIwMworCQkJCUNISU5BCisKK0ZDLUZCLUZCICAgKGhleCkJCUNpc2NvIFN5c3RlbXMKK0ZDRkJGQiAgICAgKGJhc2UgMTYpCQlDaXNjbyBTeXN0ZW1zCisJCQkJODAgV2VzdCBUYXNtYW4gRHIuCisJCQkJU0pDTS8yCisJCQkJU2FuIEpvc2UgQ0EgOTUxMzQKKwkJCQlVTklURUQgU1RBVEVTCisKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL19faW5pdF9fLnB5IGIvY2xpL2Rlc2MvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWFiMjc4MwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL19faW5pdF9fLnB5CkBAIC0wLDAgKzEsMTYgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL19faW5pdF9fLnB5IGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9fX2luaXRfXy5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YWIyNzgzCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9fX2luaXRfXy5weQpAQCAtMCwwICsxLDE2IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKwpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC9hZGRyZXNzX3NwYWNlLnB5IGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9hZGRyZXNzX3NwYWNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlkZmUxN2YKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL2FkZHJlc3Nfc3BhY2UucHkKQEAgLTAsMCArMSw2MzcgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDExLDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2ltcG9ydCBjb21tYW5kCitpbXBvcnQgZm10Y252CisnJycKK2RlZiBhZGRyZXNzX3NwYWNlX29yaWdpbl9leHRlcm5hbCAoZGF0YSk6CisgICAgIiIiCisgICAgUmV0dXJuIG9yaWdpbi1uYW1lIHdoZW4gdGhlIGFkZHJlc3Mgc3BhY2Ugd2Fzbid0IGNyZWF0ZWQgYnkgdGhlIGNsaSwKKyAgICByZXR1cm4gTm9uZSBvdGhlcndpc2UuCisgICAgIiIiCisgICAgcGsgPSBjb21tYW5kLm1pLnBrKCdhZGRyZXNzLXNwYWNlJykKKyAgICBpZiBub3QgcGsgaW4gZGF0YToKKyAgICAgICAgcmV0dXJuOworCisgICAgYWRkcmVzc19zcGFjZSA9IGNvbW1hbmQuc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoJ2FkZHJlc3Mtc3BhY2UnLCBwaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW3BrXSkKKyAgICBpZiBsZW4oYWRkcmVzc19zcGFjZSkgPT0gMDoKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGxvY2FsID0gWydjbGknLCAncmVzdCddCisgICAgaWYgJ29yaWdpbicgaW4gYWRkcmVzc19zcGFjZVswXSBhbmQgbm90IGFkZHJlc3Nfc3BhY2VbMF1bJ29yaWdpbiddIGluIGxvY2FsOgorICAgICAgICByZXR1cm4gYWRkcmVzc19zcGFjZVswXVsnb3JpZ2luJ10KKyAgICByZXR1cm4gTm9uZQorICAgIAorCitkZWYgYWRkcmVzc19zcGFjZV93YXJuX2V4dGVybmFsX2NvbmZpZyAoZGF0YSk6CisgICAgIiIiCisgICAgRnJvbSB0aGUgbmFtZWQgYWRkcmVzcy1zcGFjZSwgbG9vayB1cCB0aGUgZW50cnksIGlmIGl0IGV4aXN0cyBpbiB0aGUKKyAgICBkYXRhYmFzZSwgdmFsaWRhdGUgdGhlICdvcmlnaW4nIGlzIGVpdGhlciBudWxsLCBvciAnY2xpJywKKyAgICBvdGhlcndpc2UgcHJvdmlkZSBhIHdhcm5pbmcgYWJvdXQgdGhpcyBwYXJ0aWN1bGFyIGFkZHJlc3Mtc3BhY2UKKyAgICAoYWxvbmcgd2l0aCB0aGUgb3JpZ2luYXRvciBuYW1lKQorICAgICIiIgorICAgIGV4dGVybmFsX29yaWdpbiA9IGFkZHJlc3Nfc3BhY2Vfb3JpZ2luX2V4dGVybmFsKGRhdGEpCisgICAgaWYgZXh0ZXJuYWxfb3JpZ2luOgorICAgICAgICBjb21tYW5kLnNkbnNoLndhcm5pbmcoCisgICAgICAgICAgICAnYWRkcmVzcy1zcGFjZSAlcyBtYXkgbm90IGJlIGludGVuZGVkIGZvciBjbGkgdXBkYXRlLCAnCisgICAgICAgICAgICAnb3JpZ2luL2NyZWF0b3IgIiVzIiAnICUgKGRhdGFbJ25hbWUnXSwgZXh0ZXJuYWxfb3JpZ2luKSkKKworCitjb21tYW5kLmFkZF9hY3Rpb24oJ2FkZHJlc3Mtc3BhY2Utd2Fybi1leHRlcm5hbC1jb25maWcnLAorICAgICAgICAgICAgICAgICAgIGFkZHJlc3Nfc3BhY2Vfd2Fybl9leHRlcm5hbF9jb25maWcsCisgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J2RhdGEnIDogJyRkYXRhJyx9fSkKKworCitkZWYgYWRkcmVzc19zcGFjZV9jb25maXJtX2V4dGVybmFsX2RlbGV0ZSAoZGF0YSk6CisgICAgIiIiCisgICAgRnJvbSB0aGUgbmFtZWQgYWRkcmVzcy1zcGFjZSwgbG9vayB1cCB0aGUgZW50cnksIGlmIGl0IGV4aXN0cyBpbiB0aGUKKyAgICBkYXRhYmFzZSwgdmFsaWRhdGUgdGhlICdvcmlnaW4nIGlzIGVpdGhlciBudWxsLCBvciAnY2xpJywKKyAgICBvdGhlcndpc2UgcHJvdmlkZSBhIHdhcm5pbmcgYWJvdXQgdGhpcyBwYXJ0aWN1bGFyIGFkZHJlc3Mtc3BhY2UKKyAgICAoYWxvbmcgd2l0aCB0aGUgb3JpZ2luYXRvciBuYW1lKQorICAgICIiIgorICAgIGV4dGVybmFsX29yaWdpbiA9IGFkZHJlc3Nfc3BhY2Vfb3JpZ2luX2V4dGVybmFsKGRhdGEpCisgICAgaWYgZXh0ZXJuYWxfb3JpZ2luOgorICAgICAgICBjb25maXJtID0gY29tbWFuZC5hY3Rpb25fcmVnaXN0cnlbJ2NvbmZpcm0nXVswXSAjIFhYWCBhY2Nlc3Nvcj8KKyAgICAgICAgY29uZmlybSgnYWRkcmVzcy1zcGFjZSAlcyBtYXkgbm90IGJlIGludGVuZGVkIGZvciBjbGkgZGVsZXRlLCAnCisgICAgICAgICAgICAgICAgJ29yaWdpbi9jcmVhdG9yICIlcyJcbkVudGVyIHkgb3IgeWVzIHRvIGNvbnRpbnVlIGRlbGV0ZTogJworICAgICAgICAgICAgICAgICUgKGRhdGFbJ25hbWUnXSwgZXh0ZXJuYWxfb3JpZ2luKSkKKworY29tbWFuZC5hZGRfYWN0aW9uKCdhZGRyZXNzLXNwYWNlLWNvbmZpcm0tZXh0ZXJuYWwtZGVsZXRlJywKKyAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3NwYWNlX2NvbmZpcm1fZXh0ZXJuYWxfZGVsZXRlLAorICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydkYXRhJyAgICAgIDogJyRkYXRhJyx9fSkKKycnJworIiIiCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgYWRkcmVzcy1zcGFjZSBzdWJtb2RlIGNvbmZpZ3VyYXRpb24gY29tbWFuZHMKKyMKKworIworIyBjb25mOiBbbm9dIGFkZHJlc3Mtc3BhY2UgPGFkZHJlc3Mtc3BhY2UtbmFtZT4KKyMKK0FERFJFU1NfU1BBQ0VfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdhZGRyZXNzLXNwYWNlJywKKyAgICAnaGVscCcgICAgICAgICA6ICdFbnRlciBBZGRyZXNzLXNwYWNlIHN1Ym1vZGUnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZyonLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZy1zdWJtb2RlJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdhZGRyZXNzLXNwYWNlJywKKyAgICAnc3VibW9kZS1uYW1lJyA6ICdjb25maWctYWRkcmVzcy1zcGFjZScsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnRW50ZXIgYWRkcmVzcyBzcGFjZSBzdWJtb2RlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdhZGRyZXNzLXNwYWNlfGFkZHJlc3Mtc3BhY2UnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ2FkZHJlc3Mtc3BhY2V8YWRkcmVzcy1zcGFjZS1leGFtcGxlJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ25hbWUnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaWRlbnRpZmllcicsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyAgOiAnRW50ZXIgYW4gYWRkcmVzcy1zcGFjZSBuYW1lJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ2FkZHJlc3Mtc3BhY2V8aWRlbnRpZmllcicsCisgICAgICAgICAgICAnZG9jLWluY2x1ZGUnICA6IFsgJ3R5cGUtZG9jJyBdLAorICAgICAgICAgICAgJ2FjdGlvbicgICAgICAgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAnYWRkcmVzcy1zcGFjZS13YXJuLWV4dGVybmFsLWNvbmZpZycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICdwdXNoLW1vZGUtc3RhY2snLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApLAorICAgICAgICAgICAgJ25vLWFjdGlvbicgICAgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAnYWRkcmVzcy1zcGFjZS1jb25maXJtLWV4dGVybmFsLWRlbGV0ZScsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICdkZWxldGUtb2JqZWN0cycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICkKKyAgICAgICAgfQorICAgICksCit9CisKKyMKKyMgY29uZi9hZGRyZXNzLXNwYWNlIDxhcz4vYWN0aXZlIHtUcnVlIHwgRmFsc2V9CisjCitBRERSRVNTX1NQQUNFX0FDVElWRV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgOiAnYWN0aXZlJywKKyAgICAnc2hvcnQtaGVscCcgIDogJ1NldCBhZGRyZXNzLXNwYWNlIGFjdGl2ZScsCisgICAgJ21vZGUnICAgICAgICA6ICdjb25maWctYWRkcmVzcy1zcGFjZScsCisgICAgJ2RvYycgICAgICAgICA6ICdhZGRyZXNzLXNwYWNlfGFjdGl2ZScsCisgICAgJ2RvYy1leGFtcGxlJyA6ICdhZGRyZXNzLXNwYWNlfGFjdGl2ZS1leGFtcGxlJywKKyAgICAnZG9jLWluY2x1ZGUnIDogWyAnZGVmYXVsdCcgXSwKKyAgICAnYXJncycgOiAoKSwKKyAgICAnYWN0aW9uJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnIDogJ3dyaXRlLWZpZWxkcycsCisgICAgICAgICAgICAnZGF0YScgOiB7ICdhY3RpdmUnIDogVHJ1ZSB9LAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyA6ICdtYXJrIHRoZSBhZGRyZXNzLXNwYWNlIGFzIGFjdGl2ZScsCisgICAgICAgIH0KKyAgICApLAorICAgICduby1hY3Rpb24nIDogKAorICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgOiAnd3JpdGUtZmllbGRzJywKKyAgICAgICAgICAgICdkYXRhJyA6IHsgJ2FjdGl2ZScgOiBGYWxzZSB9LAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyA6ICdtYXJrIHRoZSBhZGRyZXNzLXNwYWNlIGFzIGluYWN0aXZlJywKKyAgICAgICAgfQorICAgICkKK30KKworIworIyBjb25mL2FkZHJlc3Mtc3BhY2UgPGFzPi9vcmlnaW4ge2NsaSB8IHJlc3QgfCAuLi4gfQorIworQUREUkVTU19TUEFDRV9PUklHSU5fQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdvcmlnaW4nLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0Rlc2NyaWJlIGFkZHJlc3Mtc3BhY2Ugb3JpZ2luJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctYWRkcmVzcy1zcGFjZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdhZGRyZXNzLXNwYWNlfG9yaWdpbicsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnYWRkcmVzcy1zcGFjZXxvcmlnaW4tZXhhbXBsZScsCisgICAgJ2FyZ3MnIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICA6ICdvcmlnaW4nLAorICAgICAgICAgICAgJ3R5cGUnICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgICdhY3Rpb24nIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ2FkZHJlc3Mtc3BhY2Utd2Fybi1leHRlcm5hbC1jb25maWcnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAnd3JpdGUtZmllbGRzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKSwKKyAgICAgICAgfSwKKyAgICApLAorfQorCisjCisjIGNvbmYvYWRkcmVzcy1zcGFjZSA8YXM+L3ByaW9yaXR5IDxwcmk+CisjCitBRERSRVNTX1NQQUNFX1BSSU9SSVRZX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAncHJpb3JpdHknLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1NldCBhZGRyZXNzLXNwYWNlIHByaW9yaXR5JywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctYWRkcmVzcy1zcGFjZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdhZGRyZXNzLXNwYWNlfHByaW9yaXR5JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdhZGRyZXNzLXNwYWNlfHByaW9yaXR5LWV4YW1wbGUnLAorICAgICdkb2MtaW5jbHVkZScgIDogWyAncmFuZ2UnLCAnZGVmYXVsdCcgXSwKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ3ByaW9yaXR5JywKKyAgICAgICAgICAgICdiYXNlLXR5cGUnIDogJ2ludGVnZXInLAorICAgICAgICAgICAgJ3JhbmdlJyAgICAgOiAoMCwgNjU1MzUpLAorICAgICAgICB9CisgICAgKQorfQorIiIiCisKK2RlZiBhZGRyZXNzX3NwYWNlX2NoZWNrX3VuaXF1ZV92bGFuKGRhdGEpOgorICAgICIiIgorICAgIFBlZWsgdG8gc2VlIGlmIHRoZSB2bGFuIGlzIGluIHVzZSBieSBhbnkgb3RoZXIgYWRkcmVzcy1zcGFjZQorICAgICIiIgorICAgIHZsYW5fZmllbGQgPSAndmxhbi10YWctb24tZWdyZXNzJworICAgIGluX3VzZSA9IGNvbW1hbmQuc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoJ2FkZHJlc3Mtc3BhY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmxhbl9maWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cihkYXRhW3ZsYW5fZmllbGRdKSkKKyAgICB2bGFuX2ZpZWxkID0gJ3ZsYW4tdGFnLW9uLWVncmVzcycKKyAgICBpZiBsZW4oaW5fdXNlKSA+IDA6CisgICAgICAgIGN1cnJlbnRfYXMgPSBjb21tYW5kLnNkbnNoLmdldF9jdXJyZW50X21vZGVfb2JqKCkKKyAgICAgICAgb3RoZXJfYXMgPSBbeFsnbmFtZSddIGZvciB4IGluIGluX3VzZSBpZiB4WyduYW1lJ10gIT0gY3VycmVudF9hc10KKyAgICAgICAgaWYgbGVuKG90aGVyX2FzKToKKyAgICAgICAgICAgIGNvbW1hbmQuc2Ruc2gud2FybmluZygKKyAgICAgICAgICAgICAgICAgICAgJ3ZsYW4gJXMgY3VycmVudGx5IGluIHVzZSBieSBvdGhlciBhZGRyZXNzLXNwYWNlczogJXMnICUKKyAgICAgICAgICAgICAgICAgICAgKGRhdGFbdmxhbl9maWVsZF0sICcsICcuam9pbihvdGhlcl9hcykpKQorCisKK2NvbW1hbmQuYWRkX2FjdGlvbignYWRkcmVzcy1zcGFjZS1jaGVjay11bmlxdWUtdmxhbicsCisgICAgICAgICAgICAgICAgICAgYWRkcmVzc19zcGFjZV9jaGVja191bmlxdWVfdmxhbiwKKyAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnZGF0YScgOiAnJGRhdGEnLH19KQorCisiIiIKKyMKKyMgY29uZi9hZGRyZXNzLXNwYWNlIDxhcz4vdmxhbi10YWctb24tZWdyZXNzIDx0YWc+CisjCitBRERSRVNTX1NQQUNFX1ZMQU5fVEFHX09OX0VHUkVTU19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3ZsYW4tdGFnLW9uLWVncmVzcycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnRWdyZXNzIFZMQU4gdGFnJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctYWRkcmVzcy1zcGFjZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdhZGRyZXNzLXNwYWNlfHZsYW4tdGFnLW9uLWVncmVzcycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnYWRkcmVzcy1zcGFjZXx2bGFuLXRhZy1vbi1lZ3Jlc3MtZXhhbXBsZScsCisgICAgJ2FyZ3MnIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICA6ICd2bGFuLXRhZy1vbi1lZ3Jlc3MnLAorICAgICAgICAgICAgJ2Jhc2UtdHlwZScgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAncmFuZ2UnICAgICA6ICgxLCA0MDk2KSwKKyAgICAgICAgICAgICdhY3Rpb24nICAgIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ2FkZHJlc3Mtc3BhY2UtY2hlY2stdW5pcXVlLXZsYW4nLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAnd3JpdGUtZmllbGRzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKSwKKyAgICAgICAgfQorICAgICkKK30KKworIworIyBjb25mL2FkZHJlc3Mtc3BhY2UgPGFzPi9kZXNjcmlwdGlvbiA8ZGVzY3I+CisjCitBRERSRVNTX1NQQUNFX0RFU0NSSVBUSU9OX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnZGVzY3JpcHRpb24nLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Byb3ZpZGUgZGVzY3JpcHRpb24gZm9yIHRoaXMgYWRkcmVzcy1zcGFjZScsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLWFkZHJlc3Mtc3BhY2UnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZycsCisgICAgJ2RvYycgICAgICAgICAgOiAnYWRkcmVzcy1zcGFjZXxkZXNjcmlwdGlvbicsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnYWRkcmVzcy1zcGFjZXxkZXNjcmlwdGlvbi1leGFtcGxlJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyA6ICdkZXNjcmlwdGlvbicsCisgICAgICAgICAgICAndHlwZScgIDogJ3N0cmluZycsCisgICAgICAgIH0KKyAgICApLAorfQorCisjCisjIGNvbmYvYWRkcmVzcy1zcGFjZSA8YXM+L2lkZW50aWZpZXItcnVsZSA8aXI+CisjCitBRERSRVNTX1NQQUNFX0lERU5USUZJRVJfUlVMRV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ2lkZW50aWZpZXItcnVsZScsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2V0IGFuIGFkZHJlc3Mtc3BhY2UgaWRlbnRpZmllciBydWxlJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctYWRkcmVzcy1zcGFjZSonLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZy1zdWJtb2RlJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdhZGRyZXNzLXNwYWNlLWlkZW50aWZpZXItcnVsZScsCisgICAgJ3BhcmVudC1maWVsZCcgOiAnYWRkcmVzcy1zcGFjZScsCisgICAgJ3N1Ym1vZGUtbmFtZScgOiAnY29uZmlnLWFkZHJlc3Mtc3BhY2UtaWQtcnVsZScsCisgICAgJ2RvYycgICAgICAgICAgOiAnYWRkcmVzcy1zcGFjZXxpZGVudGlmaWVyLXJ1bGUnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ2FkZHJlc3Mtc3BhY2V8aWRlbnRpZmllci1ydWxlLWV4YW1wbGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAncnVsZScsCisgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgIDogJ0VudGVyIGFuIGFkZHJlc3Mtc3BhY2UgaWRlbnRpZmllciBydWxlIG5hbWUnLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICdkb2MtaW5jbHVkZScgIDogWyAndHlwZS1kb2MnIF0sCisgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICdhZGRyZXNzLXNwYWNlfGlkLXJ1bGUtaWRlbnRpZmllcicsCisgICAgICAgICAgICAnc2NvcGVkJyAgICAgICA6IFRydWUsCisgICAgICAgIH0KKyAgICApCit9CisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBhZGRyZXNzLXNwYWNlIGlkZW50aWZpZXIgcnVsZXMgc3VibW9kZQorIworCisjCisjIGNvbmYvYWRkcmVzcy1zcGFjZSA8YXM+L2lkZW50aWZpZXItcnVsZSA8aXI+L2FjdGl2ZSB7VHJ1ZSB8IEZhbHNlfQorIworQUREUkVTU19TUEFDRV9JRF9BQ1RJVkVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdhY3RpdmUnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy1hZGRyZXNzLXNwYWNlLWlkLXJ1bGUnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1NldCBydWxlIHRvIEFjdGl2ZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdhZGRyZXNzLXNwYWNlfGlkLWFjdGl2ZScsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnYWRkcmVzcy1zcGFjZXxpZC1hY3RpdmUtZXhhbXBsZScsCisgICAgJ2RvYy1pbmNsdWRlJyAgOiBbICdkZWZhdWx0JyBdLAorICAgICdhcmdzJyAgICAgICAgIDogKCksCisgICAgJ2FjdGlvbicgICAgICAgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdwcm9jJyA6ICd3cml0ZS1maWVsZHMnLAorICAgICAgICAgICAgJ2RhdGEnIDogeyAnYWN0aXZlJyA6IFRydWUgfQorICAgICAgICB9CisgICAgKSwKKyAgICAnbm8tYWN0aW9uJyAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnIDogJ3dyaXRlLWZpZWxkcycsCisgICAgICAgICAgICAnZGF0YScgOiB7ICdhY3RpdmUnIDogRmFsc2UgfQorICAgICAgICB9CisgICAgKQorfQorCisjCisjIGNvbmYvYWRkcmVzcy1zcGFjZSA8YXM+L2lkZW50aWZpZXItcnVsZSA8aXI+L2Rlc2NyaXB0aW9uIDxkZXNjcj4KKyMKK0FERFJFU1NfU1BBQ0VfSURfREVTQ1JJUFRJT05fQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdkZXNjcmlwdGlvbicsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnUHJvdmlkZSBkZXNjcmlwdGlvbiBmb3IgaWRlbnRpZmllciBydWxlJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctYWRkcmVzcy1zcGFjZS1pZC1ydWxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorICAgICdkb2MnICAgICAgICAgIDogJ2FkZHJlc3Mtc3BhY2V8aWQtZGVzY3JpcHRpb24nLAorICAgICdkb2MtZXhhbXBsZScgIDogJ2FkZHJlc3Mtc3BhY2V8aWQtZGVzY3JpcHRpb24tZXhhbXBsZScsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgOiAnZGVzY3JpcHRpb24nLAorICAgICAgICAgICAgJ3R5cGUnICA6ICdzdHJpbmcnLAorICAgICAgICB9CisgICAgKSwKK30KKworIworIyBjb25mL2FkZHJlc3Mtc3BhY2UgPGFzPi9pZGVudGlmaWVyLXJ1bGUgPGlyPi9wcmlvcml0eSA8cHJpPgorIworQUREUkVTU19TUEFDRV9JRF9QUklPUklUWV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3ByaW9yaXR5JywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdEZXNjcmliZSBwcmlvcml0eSBmb3IgaWRlbnRpZmllciBydWxlJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctYWRkcmVzcy1zcGFjZS1pZC1ydWxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorICAgICdkb2MnICAgICAgICAgIDogJ2FkZHJlc3Mtc3BhY2V8aWQtcHJpb3JpdHknLAorICAgICdkb2MtaW5jbHVkZScgIDogWyAncmFuZ2UnLCAnZGVmYXVsdCcgXSwKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdhZGRyZXNzLXNwYWNlfGlkLXByaW9yaXR5LWV4YW1wbGUnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnIDogJ3ByaW9yaXR5JywKKyAgICAgICAgICAgICd2YWx1ZScgOiAnaW50ZWdlcicsCisgICAgICAgIH0KKyAgICApLAorfQorCisjCisjIGNvbmYvYWRkcmVzcy1zcGFjZSA8YXM+L2lkZW50aWZpZXItcnVsZSA8aXI+L3N3aXRjaCA8c3d0LWRwaWQ+CisjCitBRERSRVNTX1NQQUNFX0lEX01BVENIX1NXSVRDSF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ21hdGNoJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdBc3NvY2lhdGUgc3dpdGNoIHdpdGggaWRlbnRpZmllciBydWxlJywKKyAgICAnYWxsLWhlbHAnICAgICA6ICdDb25maWd1cmUgYSBtYXRjaCBmb3IgdGhpcyBpZGVudGlmaWVyIHJ1bGUnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy1hZGRyZXNzLXNwYWNlLWlkLXJ1bGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZycsCisgICAgJ29iai10eXBlJyAgICAgOiAnYWRkcmVzcy1zcGFjZS1pZGVudGlmaWVyLXJ1bGUnLAorICAgICdkb2MtYWxsJyAgICAgIDogJ2FkZHJlc3Mtc3BhY2V8bWF0Y2gnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ2FkZHJlc3Mtc3BhY2V8bWF0Y2gtc3dpdGNoLWV4YW1wbGUnLAorICAgICdkYXRhJyAgICAgICAgIDogeyAjIGZvciBubyBjb21tYW5kIHJlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICdzd2l0Y2gnIDogTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ3BvcnRzJyAgOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Rva2VuJyAgICAgICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ2FkZHJlc3Mtc3BhY2V8bWF0Y2gtc3dpdGNoJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIyBjb25zdHJ1Y3RlZCBhcyBhcmdzIHRvIGVuc3VyZSB0aGF0IHRoZSBwb3J0cyBpc24ndAorICAgICAgICAgICAgIyBjb21wbGV0ZWQgYWxvbmcgd2l0aCBzd3RpY2ggdmFsdWVzIGZvciAnbm8gbWF0Y2ggc3dpdGNoJworICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgJ2FyZ3MnIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgICAgICAgICAgJ3BhcmVudC1maWVsZCcgICAgOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICAgICA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRlLWFsaWFzLWNob2ljZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgICAgOiAnc3dpdGNoIGRwaWQgb3Igc3dpdGNoIGFsaWFzJywKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgICAgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAnb3RoZXInICAgICAgICAgICA6ICdzd2l0Y2hlc3xkcGlkJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAncG9ydHMnLAorICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnICAgICAgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgICAgIDogJ3N3aXRjaCBpbnRlcmZhY2UsIG9yIHJhbmdlLCBvciBsaXN0JywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgICAgOiAnY29tcGxldGUtaW50ZXJmYWNlLWxpc3QnLAorICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgIDogJ2FkZHJlc3Mtc3BhY2V8bWF0Y2gtc3dpdGNoLXBvcnRzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKSwKKyAgICAgICAgfSwKKyAgICApLAorfQorCisKKyMKKyMgY29uZi9hZGRyZXNzLXNwYWNlIDxhcz4vaWRlbnRpZmllci1ydWxlIDxpcj4vdGFnIDxuYW1lLXZhbC1wYWlyPgorIworQUREUkVTU19TUEFDRV9JRF9NQVRDSF9UQUdfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdtYXRjaCcsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnQXNzb2NpYXRlIHRhZyB3aXRoIGlkZW50aWZpZXIgcnVsZScsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLWFkZHJlc3Mtc3BhY2UtaWQtcnVsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnZGF0YScgICAgICAgICA6IHsgIyBmb3Igbm8gY29tbWFuZCByZXNldAorICAgICAgICAgICAgICAgICAgICAgICAndGFnJyA6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICB9LAorICAgICdkb2MtZXhhbXBsZScgIDogJ2FkZHJlc3Mtc3BhY2V8bWF0Y2gtdGFnLWV4YW1wbGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Rva2VuJyAgICAgICAgOiAndGFncycsCisgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICdhZGRyZXNzLXNwYWNlfG1hdGNoLXRhZycsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ3RhZycsCisgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICB9CisgICAgKQorfQorCisjCisjIGNvbmYvYWRkcmVzcy1zcGFjZSA8YXM+L2lkZW50aWZpZXItcnVsZSA8aXI+L3ZsYW5zIDx2bD4KKyMKK0FERFJFU1NfU1BBQ0VfSURfTUFUQ0hfVkxBTlNfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdtYXRjaCcsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnQXNzb2NpYXRlIHZsYW5zIHdpdGggaWRlbnRpZmllciBydWxlJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctYWRkcmVzcy1zcGFjZS1pZC1ydWxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorICAgICdkYXRhJyAgICAgICAgIDogeyAjIGZvciBubyBjb21tYW5kIHJlc2V0CisgICAgICAgICAgICAgICAgICAgICAgICd2bGFucycgOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdhZGRyZXNzLXNwYWNlfG1hdGNoLXZsYW4tZXhhbXBsZScsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgICAgICAgIDogJ3ZsYW5zJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ2FkZHJlc3Mtc3BhY2V8bWF0Y2gtdmxhbicsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ3ZsYW5zJywKKyAgICAgICAgICAgICd2YWx1ZScgICAgICAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAnaGVscC1uYW1lJyAgICAgICA6ICdWbGFuIG51bWJlciAoMS00MDk1KSBvciByYW5nZSwgb3IgbGlzdCcsCisgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgIH0KKyAgICApLAorfQorCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgc2hvdyBhZGRyZXNzLXNwYWNlIGNvbW1hbmRzCisjCisKKyMKKyMgc2hvdyBhZGRyZXNzLXNwYWNlIDxjcj4KKyMKK0FERFJFU1NfU1BBQ0VfU0hPV19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdvYmotdHlwZScgICAgIDogJ2FkZHJlc3Mtc3BhY2UnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnYWxsLWhlbHAnICAgICA6ICdTaG93IGFkZHJlc3Mgc3BhY2UgaW5mb3JtYXRpb24nLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgYWxsIGFkZHJlc3Mgc3BhY2VzJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdhZGRyZXNzLXNwYWNlfHNob3cnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ2FkZHJlc3Mtc3BhY2V8c2hvdy1leGFtcGxlJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ2FkZHJlc3Mtc3BhY2UnLAorICAgICksCit9CisKKyMKKyMgc2hvdyBhZGRyZXNzLXNwYWNlIDxhcz4gW2JyaWVmIHwgZGV0YWlsc10gPGNyPgorIworQUREUkVTU19TUEFDRV9TSE9XX0lEX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ29iai10eXBlJyAgICAgOiAnYWRkcmVzcy1zcGFjZScsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgYSBzcGVjaWZpYyBhZGRyZXNzIHNwYWNlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdhZGRyZXNzLXNwYWNlfHNob3ctaWQnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ2FkZHJlc3Mtc3BhY2V8c2hvdy1pZC1leGFtcGxlJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ2FkZHJlc3Mtc3BhY2UnLAorICAgICAgICB7CisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnbmFtZScsCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICA6ICJhZGRyZXNzLXNwYWNlLW5hbWUiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICA6ICduYW1lJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICA6ICdhbGwnLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgOiAnZGV0YWlsJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgOiAoJ2RldGFpbHMnLCAnYnJpZWYnKSwKKyAgICAgICAgICAgICdkb2MnICAgICAgOiAnZm9ybWF0fCsnLAorICAgICAgICB9CisgICAgKQorfQorCisjCisjIHNob3cgYWRkcmVzcy1zcGFjZSA8YXM+IFsgaWRlbnRpZmllci1ydWxlcyBdIC4uLgorIworQUREUkVTU19TUEFDRV9TSE9XX0lEX0RFVEFJTFNfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdhZGRyZXNzLXNwYWNlJywKKyAgICAnbW9kZScgICAgICAgICA6ICdsb2dpbicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyB0aGUgY29uZmlndXJlZCBpZGVudGlmaWVyLXJ1bGVzIGZvciBhIHNwZWNpZmljIGFkZHJlc3Mgc3BhY2UnLAorICAgICdkb2MnICAgICAgICAgIDogJ2FkZHJlc3Mtc3BhY2V8c2hvdy1pZC1ydWxlcycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnYWRkcmVzcy1zcGFjZXxzaG93LWlkLXJ1bGVzLWV4YW1wbGUnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAnYWRkcmVzcy1zcGFjZScsCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICduYW1lJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgIDogImFkZHJlc3Mtc3BhY2UtbmFtZSIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ25hbWUnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgOiAnYWxsJywKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAjIHNob3cgYWRkcmVzcy1zcGFjZSA8YXM+IHsgaWRlbnRpZmllci1ydWxlcyB9CisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgIDogJ2lkZW50aWZpZXItcnVsZXMnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgIDogJ2lkZW50aWZpZXItcnVsZXMnLAorICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnIDogJ2FkZHJlc3Mtc3BhY2UtaWRlbnRpZmllci1ydWxlJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKQorICAgICAgICB9CisgICAgKSwKK30KKworIworIyBGT1JNQVRTCisjICBwZXJoYXBzIHRoZXNlIG91Z2h0IGJlIG1vdmVkIG5leHQgdG8gdGhlaXIgcmVzcGVjdGl2ZSBzaG93IGNvbW1hbmRzCisjCisKK0FERFJFU1NfU1BBQ0VfRk9STUFUID0geworICAgICdhZGRyZXNzLXNwYWNlJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgICAgICAgICAgICAgICA6IFsnSWR4JywgJ25hbWUnLCAnYWN0aXZlJywgJ3ByaW9yaXR5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2bGFuLXRhZy1vbi1lZ3Jlc3MnXSwKKyAgICAgICAgICAgICdhZGRyZXNzLXNwYWNlLWNvbmZpZycgIDogWydJZHgnLCAnbmFtZScsICdhY3RpdmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZsYW4tdGFnLW9uLWVncmVzcyddLAorICAgICAgICAgICAgJ2JyaWVmJyAgICAgICAgICAgICAgICAgOiBbJ0lkeCcsICduYW1lJywgJ3ZsYW4tdGFnLW9uLWVncmVzcyddLAorICAgICAgICAgICAgJ2RldGFpbHMnICAgICAgICAgICAgICAgOiBbJ0lkeCcsICduYW1lJywgJ2FjdGl2ZScsICdwcmlvcml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJywgJ3ZsYW4tdGFnLW9uLWVncmVzcyddLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICduYW1lJyAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0FkZHJlc3MgU3BhY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgJ2FjdGl2ZScgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICdwcmlvcml0eScgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAndmxhbi10YWctb24tZWdyZXNzJzogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdWbGFuIFRhZyBvbiBFZ3Jlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgIH0KKyAgICAgICAgfSwKK30KKworCitBRERSRVNTX1NQQUNFX0lERU5USUZJRVJfUlVMRV9GT1JNQVQgPSB7CisgICAgJ2FkZHJlc3Mtc3BhY2UtaWRlbnRpZmllci1ydWxlJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncyc6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyAgICAgICAgICAgICAgOiBbICdJZHgnLCAgICAnYWRkcmVzcy1zcGFjZScsICAncnVsZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aXZlJywgJ3ByaW9yaXR5JywgJ3N3aXRjaCcsICdwb3J0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGFnJywgICAgJ3ZsYW5zJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnYWRkcmVzcy1zcGFjZS1jb25maWcnIDogWyAnSWR4JywgICAgJ3J1bGUnLCAgICAgJ2Rlc2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUnLCAncHJpb3JpdHknLCAnc3dpdGNoJywgJ3BvcnRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0YWcnLCAndmxhbnMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnOiB7CisgICAgICAgICAgICAncnVsZScgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdBZGRyZXNzIFNwYWNlIFJ1bGUgSUQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYWRkcmVzcy1zcGFjZScgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnQWRkcmVzcyBTcGFjZScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2FjdGl2ZScgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2Rlc2NyaXB0aW9uJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3BvcnRzJyAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3ByaW9yaXR5JyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3J1bGUnICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3N3aXRjaCcgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3RhZycgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3ZsYW5zJyAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorIiIiCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL2FkZHJlc3Nfc3BhY2VfbW9kZWwucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL2FkZHJlc3Nfc3BhY2VfbW9kZWwucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTEwNDZhYQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvYWRkcmVzc19zcGFjZV9tb2RlbC5weQpAQCAtMCwwICsxLDM4IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworaW1wb3J0IGNvbW1hbmQKKworY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9lbmFibGVfY2FzY2FkZV9kZWxldGUoJ2FkZHJlc3Mtc3BhY2UnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9lbmFibGVfY2FzY2FkZV9kZWxldGUoJ2FkZHJlc3Mtc3BhY2UtaWRlbnRpZmllci1ydWxlJykKKworY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX3N1Ym1vZGUoJ2FkZHJlc3Mtc3BhY2UnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX3N1Ym1vZGUoJ2FkZHJlc3Mtc3BhY2UtaWRlbnRpZmllci1ydWxlJykKKworY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2FkZHJlc3Mtc3BhY2UnLCAnYWN0aXZlJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdhZGRyZXNzLXNwYWNlJywgJ2Rlc2NyaXB0aW9uJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdhZGRyZXNzLXNwYWNlJywgJ3ByaW9yaXR5JykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdhZGRyZXNzLXNwYWNlJywgJ3ZsYW4tdGFnLW9uLWVncmVzcycpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnYWRkcmVzcy1zcGFjZScsICdvcmlnaW4nKQorCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnYWRkcmVzcy1zcGFjZS1pZGVudGlmaWVyLXJ1bGUnLCAncnVsZScpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnYWRkcmVzcy1zcGFjZS1pZGVudGlmaWVyLXJ1bGUnLCAnYWN0aXZlJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdhZGRyZXNzLXNwYWNlLWlkZW50aWZpZXItcnVsZScsICdwb3J0cycpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnYWRkcmVzcy1zcGFjZS1pZGVudGlmaWVyLXJ1bGUnLCAnbWFjJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdhZGRyZXNzLXNwYWNlLWlkZW50aWZpZXItcnVsZScsICdwcmlvcml0eScpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnYWRkcmVzcy1zcGFjZS1pZGVudGlmaWVyLXJ1bGUnLCAnc3dpdGNoJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdhZGRyZXNzLXNwYWNlLWlkZW50aWZpZXItcnVsZScsICd0YWcnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2FkZHJlc3Mtc3BhY2UtaWRlbnRpZmllci1ydWxlJywgJ3ZsYW5zJykKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvYWRkcmVzc19zcGFjZV9ydW5fY29uZmlnLnB5IGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9hZGRyZXNzX3NwYWNlX3J1bl9jb25maWcucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzY4YmMxYgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvYWRkcmVzc19zcGFjZV9ydW5fY29uZmlnLnB5CkBAIC0wLDAgKzEsMjkzIEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMiwyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCisjICBhZGRyZXNzX3NwYWNlX3J1bl9jb25maWcucHkKKyMKKyMgc2hvdyBydW5uaW5nIGFkZHJlc3Mtc3BhY2UgW2FzXQorIworCitpbXBvcnQgcnVuX2NvbmZpZworaW1wb3J0IGNvbW1hbmQKK2ltcG9ydCBmbXRjbnYKK2ltcG9ydCB1dGlmCitpbXBvcnQgc3lzCitmcm9tIG1pZHcgaW1wb3J0ICoKKworZGVmIGFkZHJlc3Nfc3BhY2VfcnVubmluZ19jb25maWdfaW5jbHVkZV9maWVsZChjb250ZXh0LCBjb25maWcsCisgICAgICAgIGFkZHJlc3Nfc3BhY2UsIG9ial90eXBlLCBmaWVsZCwgdmFsdWUsIGluZGVudCwgcHJlZml4ID0gIiIpOgorICAgICIiIgorICAgIElkZW50aWZ5IGZpZWxkcyBvZiBvYmpfdHlwZXMgd2hvJ3MgdmFsdWVzIGRpZmZlciBmcm9tIHRoZSBkZWZhdWx0CisgICAgdmFsdWVzLCBzaW5jZSB0aGVzZSBuZWVkIHRvIGJlIGluY2x1ZGVkIGludG8gdGhlIHJ1bm5pbmctY29uZmlnCisgICAgIiIiCisgICAgaWYgY29udGV4dC5taS5ub3RfZGVmYXVsdF92YWx1ZShvYmpfdHlwZSwgZmllbGQsIHZhbHVlKToKKyAgICAgICAgaWYgY29udGV4dC5taS5pc19maWVsZF9zdHJpbmcob2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgICAgIGNvbmZpZy5hcHBlbmQoJyAnICogKGluZGVudCArIGluZGVudCkgKyBwcmVmaXggKyBmaWVsZCArCisgICAgICAgICAgICAgICAgICAgICAgICAgICIgJXNcbiIgJSB1dGlmLnF1b3RlX3N0cmluZyh2YWx1ZSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb25maWcuYXBwZW5kKCcgJyAqIChpbmRlbnQgKyBpbmRlbnQpICsgcHJlZml4ICsgZmllbGQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAnICVzXG4nICUgdmFsdWUpCisKKyMKKyMgYWRkcmVzc19zcGFjZV9ydW5uaW5nX2NvbmZpZ19kZXRhaWxzCisjCisjIFNob3cgYW4gYWRkcmVzcy1zcGFjZSBjb25maWd1cmF0aW9uIGluIGRldGFpbAorIworZGVmIGFkZHJlc3Nfc3BhY2VfcnVubmluZ19jb25maWdfZGV0YWlscyAoY29udGV4dCwgY29uZmlnLCBhZGRyZXNzX3NwYWNlKToKKyAgICAiIiIKKyAgICBEaXNwbGF5IHRoZSBkZXRhaWxzIGZvciB0aGUgZmllbGRzIG9mIGEgYWRkcmVzc19zcGFjZSB3aGljaCBtYXkgaGF2ZQorICAgIG5vbi1kZWZhdWx0IHZhbHVlcy4KKyAgICAiIiIKKworICAgICMKKyAgICAjICdhY3RpdmUnIGlzIFRydWUgYnkgZGVmYXVsdC4gUHJlcGVuZCAnbm8nIGludG8gdGhlIGdlbmVyYXRlZCBjb25maWcKKyAgICAjIGlmIHRoaXMgaXRlbSBpcyBub3QgYWN0aXZlLgorICAgICMKKyAgICBpZiBhZGRyZXNzX3NwYWNlWydhY3RpdmUnXSAhPSBcCisgICAgICAgIGNvbnRleHQubWkuZmllbGRfZGVmYXVsdF92YWx1ZSgnYWRkcmVzcy1zcGFjZScsICdhY3RpdmUnKToKKyAgICAgICAgY29uZmlnLmFwcGVuZCgnICBubyBhY3RpdmVcbicpCisKKyAgICAjCisgICAgIyBTaG93IHRoZSByZXN0IG9mIHRoZSBmaWVsZHMKKyAgICAjCisgICAgYWRkcmVzc19zcGFjZV9maWVsZHMgPSBbJ2Rlc2NyaXB0aW9uJywgJ29yaWdpbicsICdwcmlvcml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZsYW4tdGFnLW9uLWVncmVzcyddCisKKyAgICBmb3IgZmllbGQgaW4gc29ydGVkKGFkZHJlc3Nfc3BhY2VfZmllbGRzKToKKyAgICAgICAgYWRkcmVzc19zcGFjZV9ydW5uaW5nX2NvbmZpZ19pbmNsdWRlX2ZpZWxkKGNvbnRleHQsIGNvbmZpZywKKyAgICAgICAgICAgIGFkZHJlc3Nfc3BhY2UsICdhZGRyZXNzLXNwYWNlJywgZmllbGQsCisgICAgICAgICAgICBhZGRyZXNzX3NwYWNlLmdldChmaWVsZCwnJyksIDEpCisKKyMKKyMgYWRkcmVzc19zcGFjZV9ydW5uaW5nX2NvbmZpZ19pZF9ydWxlCisjCisjIEdlbmVyYXRlIGluZGVudGlmaWVyLXJ1bGUgdW5kZXIgYWRkcmVzcy1zcGFjZSBjb25maWd1cmF0aW9uCisjIAorZGVmIGFkZHJlc3Nfc3BhY2VfcnVubmluZ19jb25maWdfaWRfcnVsZSAoY29udGV4dCwgY29uZmlnLCBhZGRyZXNzX3NwYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19zcGFjZV9pZF9ydWxlX2VudHJpZXMpOgorCisgICAgIworICAgICMgSXRlcmF0ZSB0aHJvdWdoIGVhY2ggaWRlbnRpZmllci1ydWxlIGFuZCBzaG93IGl0cyBjb250ZW50cworICAgICMKKyAgICBmb3IgcnVsZSBpbiBhZGRyZXNzX3NwYWNlX2lkX3J1bGVfZW50cmllczoKKworICAgICAgICAjCisgICAgICAgICMgU2hvdyB0aGUgcnVsZSBoZWFkZXIgbGluZQorICAgICAgICAjCisgICAgICAgIGNvbmZpZy5hcHBlbmQoJyAgaWRlbnRpZmllci1ydWxlICVzXG4nICUgcnVsZVsncnVsZSddKQorCisgICAgICAgICMKKyAgICAgICAgIyBJdGVyYXRlIHRocm91Z2ggZWFjaCBmaWVsZCBjb25maWd1cmFibGUgYW5kIGdlbmVyYXRlIHRoZSBjb25maWcKKyAgICAgICAgIyBpZiBwcmVzZW50LgorICAgICAgICAjCisgICAgICAgIGZvciBmaWVsZCBpbiBbJ2Rlc2NyaXB0aW9uJywgJ2FjdGl2ZScsICdwcmlvcml0eSddOgorICAgICAgICAgICAgYWRkcmVzc19zcGFjZV9ydW5uaW5nX2NvbmZpZ19pbmNsdWRlX2ZpZWxkKGNvbnRleHQsIGNvbmZpZywKKyAgICAgICAgICAgICAgICBhZGRyZXNzX3NwYWNlLCAnYWRkcmVzcy1zcGFjZS1pZGVudGlmaWVyLXJ1bGUnLCBmaWVsZCwKKyAgICAgICAgICAgICAgICBydWxlLmdldChmaWVsZCwgJycpLCAyKQorCisgICAgICAgIGZvciBmaWVsZCBpbiBbJ3ZsYW5zJywgJ3RhZyddOgorICAgICAgICAgICAgYWRkcmVzc19zcGFjZV9ydW5uaW5nX2NvbmZpZ19pbmNsdWRlX2ZpZWxkKGNvbnRleHQsIGNvbmZpZywKKyAgICAgICAgICAgICAgICBhZGRyZXNzX3NwYWNlLCAnYWRkcmVzcy1zcGFjZS1pZGVudGlmaWVyLXJ1bGUnLCBmaWVsZCwKKyAgICAgICAgICAgICAgICBydWxlLmdldChmaWVsZCwgJycpLCAyLCAibWF0Y2ggIikKKworICAgICAgICAjCisgICAgICAgICMgTWFuYWdlIHN3aXRjaCBhbmQgcG9ydHMgZGlmZmVyZW50bHksIHBsYWNpbmcgYm90aCBvbiB0aGUKKyAgICAgICAgIyBzYW1lIGxpbmUgd2hlbiBwb3J0cyBleGlzdCwgYW5kIHJlcGxhY2luZyB0aGUgc3dpdGNoIGFsaWFzCisgICAgICAgICMgd2hlbiBpdHMgYXZhaWxhYmxlLgorICAgICAgICBpZiAnc3dpdGNoJyBpbiBydWxlOgorICAgICAgICAgICAgZHBpZF9vcl9hbGlhcyA9IGFsaWFzX2xvb2t1cF93aXRoX2ZvcmVpZ25fa2V5KCdzd2l0Y2gtYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVbJ3N3aXRjaCddKQorICAgICAgICAgICAgaWYgZHBpZF9vcl9hbGlhcyA9PSBOb25lOgorICAgICAgICAgICAgICAgIGRwaWRfb3JfYWxpYXMgPSBydWxlWydzd2l0Y2gnXSAjIGRwaWQKKyAgICAgICAgICAgIGlmICdwb3J0cycgaW4gcnVsZToKKyAgICAgICAgICAgICAgICBjb25maWcuYXBwZW5kKCcgICAgbWF0Y2ggc3dpdGNoICVzICVzXG4nICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRwaWRfb3JfYWxpYXMsIHJ1bGVbJ3BvcnRzJ10pKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBjb25maWcuYXBwZW5kKCcgICAgbWF0Y2ggc3dpdGNoICVzXG4nICUgZHBpZF9vcl9hbGlhcykKKworICAgICAgICAjCisgICAgICAgICMgVGhpcyBjb25maWd1cmF0aW9uIHNlY3Rpb24gY29tcGxldGUsIHByaW50IHRoZSB0cmFpbGVyLgorICAgICAgICAjCisKKworIworIyBydW5uaW5nX2NvbmZpZ19zcGVjaWZpY19hZGRyZXNzX3NwYWNlCisjCisjIFNob3cgcnVubmluZyBjb25maWd1cmF0aW9uIG9mIG9uZSBwYXJ0aWN1bGFyIGFkZHJlc3Mtc3BhY2UKKyMKK2RlZiBydW5uaW5nX2NvbmZpZ19zcGVjaWZpY19hZGRyZXNzX3NwYWNlIChjb250ZXh0LCBjb25maWcsIGFkZHJlc3Nfc3BhY2VfbmFtZSk6CisgICAgCisgICAgIworICAgICMgSGF2ZSBhIHRlbXBvcmFyeSBob2xkZXIgdG8gc3RvcmUgZ2VuZXJhdGVkIGNvbmZpZ3VyYXRpb24uCisgICAgIworICAgIHRtcF9jb25maWcgPSBbIF0KKworICAgICMKKyAgICAjIFJldHJpZXZlIHRoZSBjb25maWd1cmF0aW9uIGZyb20gdGhlIGRhdGEgc3RvcmUuIENhdGNoIGFsbCBwb3NzaWJsZQorICAgICMgZXhjZXB0aW9ucyBhbmQgcmVwb3J0IGJhY2sgYXMgYXBwcm9wcmlhdGUuCisgICAgIworICAgIHRyeToKKyAgICAgICAgYWRkcmVzc19zcGFjZSA9IGNvbnRleHQuZ2V0X29iamVjdF9mcm9tX3N0b3JlKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRyZXNzLXNwYWNlJywgYWRkcmVzc19zcGFjZV9uYW1lKQorICAgIGV4Y2VwdDoKKworICAgICAgICAjCisgICAgICAgICMgVGhpcyBwYXJ0aWN1bGFyIGFkZHJlc3Mtc3BhY2UgaXMgbm90IGF2YWlsYWJsZSBpbiB0aGUKKyAgICAgICAgIyBkYXRhIGJhc2UuIFJlcG9ydCBlcnJvciBiYWNrLgorICAgICAgICAjCisgICAgICAgIHJldHVybiAoJ0Vycm9yOiBubyBhZGRyZXNzLXNwYWNlIG5hbWUgJXMsIEVycm9yICVzJyAlICBcCisgICAgICAgICAgICAgICAoYWRkcmVzc19zcGFjZV9uYW1lLCBzeXMuZXhjX2luZm8oKVswXSkpCisKKyAgICAjCisgICAgIyBTaG93IHRoZSBjb25maWd1cmVkIHN1YiBpdGVtcyB1bmRlciB0aGlzIGFkZHJlc3Mtc3BhY2UuCisgICAgIworICAgIGFkZHJlc3Nfc3BhY2VfcnVubmluZ19jb25maWdfZGV0YWlscyhjb250ZXh0LCB0bXBfY29uZmlnLCBhZGRyZXNzX3NwYWNlKQorCisgICAgIworICAgICMgUmV0cmlldmUgYWxsIHRoZSBpZGVudGlmaWVyIHJ1bGVzIGNvbmZpZ3VyZWQuIFRoZXJlIG1heSBub3QgYmUgYW55CisgICAgIyBydWxlIHByZXNlbnQuIEhhbmRsZSBpdCBncmFjZWZ1bGx5LgorICAgICMKKyAgICBhZGRyZXNzX3NwYWNlX3J1bGVzID0gTm9uZQorICAgIHRyeToKKyAgICAgICAgYWRkcmVzc19zcGFjZV9ydWxlcyA9IGNvbnRleHQuZ2V0X3RhYmxlX2Zyb21fc3RvcmUoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZHJlc3Mtc3BhY2UtaWRlbnRpZmllci1ydWxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkcmVzcy1zcGFjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19zcGFjZV9uYW1lLCAiZXhhY3QiKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHBhc3MKKworICAgICMKKyAgICAjIFNob3cgZWFjaCBydWxlIGNvbmZpZ3VyZWQgaW4gZGV0YWlsCisgICAgIworICAgIGlmIGFkZHJlc3Nfc3BhY2VfcnVsZXM6CisgICAgICAgIGFkZHJlc3Nfc3BhY2VfcnVubmluZ19jb25maWdfaWRfcnVsZShjb250ZXh0LCB0bXBfY29uZmlnLCBhZGRyZXNzX3NwYWNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19zcGFjZV9ydWxlcykKKworICAgICMKKyAgICAjIERvbid0IHNob3duIGVtcHR5IGNvbmZpZ3VyYXRpb24gZm9yIGRlZmF1bHQgYWRkcmVzcy1zcGFjZS4KKyAgICAjCisgICAgaWYgbGVuKHRtcF9jb25maWcpID4gMCBvciBhZGRyZXNzX3NwYWNlWyduYW1lJ10gIT0gJ2RlZmF1bHQnOgorICAgICAgICBjb25maWcuYXBwZW5kKCJhZGRyZXNzLXNwYWNlICVzXG4iICUgYWRkcmVzc19zcGFjZV9uYW1lKQorICAgICAgICBjb25maWcgKz0gdG1wX2NvbmZpZworCisjCisjIHJ1bm5pbmdfY29uZmlnX2FkZHJlc3Nfc3BhY2UKKyMKKyMgU2hvdyBydW5uaW5nIGNvbmZpZ3VyYXRpb24gZm9yICdhbGwnIGFkZHJlc3Mtc3BhY2UgY29uZmlndXJlZAorIworZGVmIHJ1bm5pbmdfY29uZmlnX2FkZHJlc3Nfc3BhY2UgKGNvbnRleHQsIGNvbmZpZywgd29yZHMpOgorICAgICIiIgorICAgIEFkZCB0aGUgQWRkcmVzcyBTcGFjZSBjb25maWd1cmF0aW9uIGRldGlscworICAgICIiIgorCisgICAgIworICAgICMgQ2hlY2sgaWYgdGhpcyBpcyByZXF1ZXN0IGZvciBhIHNwZWNpZmljIGFkZHJlc3Mtc3BhY2UKKyAgICAjCisgICAgaWYgbGVuKHdvcmRzKSA+IDA6CisgICAgICAgIHJldHVybiBydW5uaW5nX2NvbmZpZ19zcGVjaWZpY19hZGRyZXNzX3NwYWNlKGNvbnRleHQsIGNvbmZpZywgd29yZHNbMF0pCisKKyAgICAjCisgICAgIyBSZXRyaWV2ZSBhbGwgYWRkcmVzcy1zcGFjZSBjb25maWd1cmF0aW9ucworICAgICMKKyAgICBhZGRyZXNzX3NwYWNlX2xpc3QgPSBOb25lCisgICAgdHJ5OgorICAgICAgICBhZGRyZXNzX3NwYWNlX2xpc3QgPSBcCisgICAgICAgICAgICBjb250ZXh0LmdldF90YWJsZV9mcm9tX3N0b3JlKCdhZGRyZXNzLXNwYWNlJykKKyAgICBleGNlcHQgRXhjZXB0aW9uOgorICAgICAgICBwYXNzCisKKyAgICAjCisgICAgIyBSZXRyaWV2ZSBhbGwgYWRkcmVzcy1zcGFjZXMnIGlkZW50aWZpZXIgcnVsZXMKKyAgICAjCisgICAgYWRkcmVzc19zcGFjZV9ydWxlcyA9IE5vbmUKKyAgICB0cnk6CisgICAgICAgIGFkZHJlc3Nfc3BhY2VfcnVsZXMgPSBcCisgICAgICAgICAgICBjb250ZXh0LmdldF90YWJsZV9mcm9tX3N0b3JlKCdhZGRyZXNzLXNwYWNlLWlkZW50aWZpZXItcnVsZScpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgcGFzcworCisgICAgIworICAgICMgV2FsayBlYWNoIGFkZHJlc3Mtc3BhY2UgZm91bmQgYW5kIHByaW50IGl0cyBjb250ZW50cworICAgICMKKyAgICBpZiBhZGRyZXNzX3NwYWNlX2xpc3Q6CisgICAgICAgIGZvciBhZGRyZXNzX3NwYWNlIGluIGFkZHJlc3Nfc3BhY2VfbGlzdDoKKyAgICAgICAgICAgIHRtcF9jb25maWcgPSBbIF0KKworICAgICAgICAgICAgIworICAgICAgICAgICAgIyBOb3cgcHJpbnQgaXRzIGNvbnRlbnRzIGluIGRldGFpbHMKKyAgICAgICAgICAgICMgCisgICAgICAgICAgICBhZGRyZXNzX3NwYWNlX3J1bm5pbmdfY29uZmlnX2RldGFpbHMoY29udGV4dCwgdG1wX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3NwYWNlKQorCisgICAgICAgICAgICAjCisgICAgICAgICAgICAjIElmIHRoZXJlIGlzIGFueSBpZGVudGlmaWVyLXJ1bGUgY29uZmlndXJlZCwgc2hvdyBlYWNoIG9mIHRoZW0uCisgICAgICAgICAgICAjCisgICAgICAgICAgICBpZiBhZGRyZXNzX3NwYWNlX3J1bGVzOgorICAgICAgICAgICAgICAgIGFkZHJlc3Nfc3BhY2VfcnVubmluZ19jb25maWdfaWRfcnVsZShjb250ZXh0LCB0bXBfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICBhZGRyZXNzX3NwYWNlLAorICAgICAgICAgICAgICAgICAgICBbcnVsZSBmb3IgcnVsZSBpbiBhZGRyZXNzX3NwYWNlX3J1bGVzIFwKKyAgICAgICAgICAgICAgICAgICAgaWYgcnVsZVsnYWRkcmVzcy1zcGFjZSddID09IGFkZHJlc3Nfc3BhY2VbJ25hbWUnXV0pCisKKworICAgICAgICAgICAgIworICAgICAgICAgICAgIyBEb24ndCBzaG93biBlbXB0eSBjb25maWd1cmF0aW9uIGZvciBkZWZhdWx0IGFkZHJlc3Mtc3BhY2UuCisgICAgICAgICAgICAjCisgICAgICAgICAgICBpZiBsZW4odG1wX2NvbmZpZykgPiAwIG9yIGFkZHJlc3Nfc3BhY2VbJ25hbWUnXSAhPSAnZGVmYXVsdCc6CisgICAgICAgICAgICAgICAgY29uZmlnLmFwcGVuZCgiIVxuYWRkcmVzcy1zcGFjZSAlc1xuIiAlIGFkZHJlc3Nfc3BhY2VbJ25hbWUnXSkKKyAgICAgICAgICAgICAgICBjb25maWcgKz0gdG1wX2NvbmZpZworCisjCisjIGFkZHJlc3Nfc3BhY2VfcnVubmluZ19jb25maWdfdHVwbGUKKyMKKyMgYWRkcmVzcy1zcGFjZSBjb25maWd1cmF0aW9uIHR1cGxlIHRoYXQgd2UgaW50ZW5kIHRvIHByb2Nlc3Mgd3J0CisjIGdlbmVyYXRpbmcgdGhlaXIgcnVubmluZyBjb25maWd1cmF0aW9uCisjCithZGRyZXNzX3NwYWNlX3J1bm5pbmdfY29uZmlnX3R1cGxlID0gKAorICAgICgKKyAgICAgICAgIworICAgICAgICAjIHNob3cgcnVubmluZy1jb25maWd1cmF0aW9uIGFkZHJlc3Mtc3BhY2UKKyAgICAgICAgIworICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwnICAgOiBGYWxzZSwKKyAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdydW5uaW5nLWNvbmZpZycsCisgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAnYWRkcmVzcy1zcGFjZScsCisgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnQ29uZmlndXJhdGlvbiBmb3IgYWRkcmVzcyBzcGFjZXMnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ3J1bm5pbmctY29uZmlnfHNob3ctYWRkcmVzcy1zcGFjZScsCisgICAgICAgIH0sCisKKyAgICAgICAgIworICAgICAgICAjIHNob3cgcnVubmluZy1jb25maWd1cmF0aW9uIGFkZHJlc3Mtc3BhY2UgPGFkZHJlc3Mtc3BhY2U+CisgICAgICAgICMKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnd29yZCcsCisgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLWZyb20tYW5vdGhlcicsCisgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICdhZGRyZXNzLXNwYWNlfG5hbWUnLAorICAgICAgICAgICAgJ3BhcmVudC1maWVsZCcgOiBOb25lLAorICAgICAgICAgICAgJ2FjdGlvbicgICAgICAgOiAnbGVnYWN5LWNsaScsCisgICAgICAgICAgICAnb3B0aW9uYWwnICAgICA6IFRydWUsCisgICAgICAgIH0KKyAgICApLAorKQorCisjCisjIFJlZ2lzdGVyIHdpdGggcnVuX2NvbmZpZyBtb2R1bGUsIG91ciBjYWxsYmFjayB0byBwcm9jZXNzIHJ1bm5pbmcgY29uZmlncyBmb3IKKyMgYWRkcmVzcy1zcGFjZSBjb25maWd1cmF0aW9uIGl0ZW1zCisjCitydW5fY29uZmlnLnJlZ2lzdGVyX3J1bm5pbmdfY29uZmlnKCdhZGRyZXNzLXNwYWNlJywgNDAwMCwgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVubmluZ19jb25maWdfYWRkcmVzc19zcGFjZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkcmVzc19zcGFjZV9ydW5uaW5nX2NvbmZpZ190dXBsZSkKKwpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC9jb250cm9sbGVyX25vZGUucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL2NvbnRyb2xsZXJfbm9kZS5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YzcxYzViCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9jb250cm9sbGVyX25vZGUucHkKQEAgLTAsMCArMSwxMDc4IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworaW1wb3J0IGNvbW1hbmQKK2ltcG9ydCBmbXRjbnYKKyIiIgorQ09OVFJPTExFUl9OT0RFX0ZPUk1BVCA9IHsKKyAgICAnY29udHJvbGxlci1ub2RlJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgICAgICAgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJZHgnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGEtcm9sZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGFuZ2UtZGF0ZS10aW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NoYW5nZS1kZXNjcmlwdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0dXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXB0aW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Vycm9ycycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIydkb21haW4tbG9va3Vwcy1lbmFibGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIydsb2dnaW5nLWVuYWJsZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnYnJpZWYnICAgOiAgICAgIFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lkeCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhbGlhcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoYS1yb2xlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NoYW5nZS1kYXRlLXRpbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hhbmdlLWRlc2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXR1cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cHRpbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZXJyb3JzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ2RldGFpbHMnIDogICAgWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSWR4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FsaWFzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhLXJvbGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hhbmdlLWRhdGUtdGltZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGFuZ2UtZGVzY3JpcHRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VwdGltZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlcnJvcnMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9tYWluLWxvb2t1cHMtZW5hYmxlZCcsICdkb21haW4tbmFtZS1zZXJ2ZXJzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvbWFpbi1uYW1lJywgJ2RlZmF1bHQtZ2F0ZXdheScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdudHAtc2VydmVyJywgJ3RpbWUtem9uZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2dnaW5nLWVuYWJsZWQnLCAnbG9nZ2luZy1zZXJ2ZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnd2l0aG91dC12bnMnIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSWR4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FsaWFzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhLXJvbGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hhbmdlLWRhdGUtdGltZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjaGFuZ2UtZGVzY3JpcHRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXB0aW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvbWFpbi1sb29rdXBzLWVuYWJsZWQnLCAnZG9tYWluLW5hbWUtc2VydmVycycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb21haW4tbmFtZScsICdkZWZhdWx0LWdhdGV3YXknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbnRwLXNlcnZlcicsICd0aW1lLXpvbmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9nZ2luZy1lbmFibGVkJywgJ2xvZ2dpbmctc2VydmVyJywgJ2xvZ2dpbmctbGV2ZWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnOiB7CisgICAgICAgICAgICAnaWQnICAgICAgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdDb250cm9sbGVyIElEJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbWUnICAgICAgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdAJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmNvbnRyb2xsZXJfbm9kZV9tZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbnRyeS1mb3JtYXR0ZXInIDogZm10Y252LmNvbnRyb2xsZXJfbm9kZV9tZV9lbnRyeQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkb21haW4tbG9va3Vwcy1lbmFibGVkJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0ROUycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX2Jvb2xlYW5fd2l0aF9lbmFibGVfZGlzYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZG9tYWluLW5hbWUtc2VydmVycycgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdETlMgU2VydmVycycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X2RvbWFpbl9uYW1lX3NlcnZlcnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbnRyeS1mb3JtYXR0ZXInIDogZm10Y252LnByaW50X2FsbF9kb21haW5fbmFtZV9zZXJ2ZXJzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkb21haW4tbmFtZScgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGVmYXVsdC1nYXRld2F5JyAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ250cC1zZXJ2ZXInICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0aW1lLXpvbmUnICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbG9nZ2luZy1lbmFibGVkJyAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0xvZ2dpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX2Jvb2xlYW5fd2l0aF9lbmFibGVfZGlzYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbG9nZ2luZy1zZXJ2ZXInICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2xvZ2dpbmctbGV2ZWwnICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdoYS1yb2xlJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnSEEgUm9sZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2NoYW5nZS1kYXRlLXRpbWUnICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdIQSBMYXN0IENoYW5nZSBUaW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfdGltZV9zaW5jZV91dGNfdGltZXN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnY2hhbmdlLWRlc2NyaXB0aW9uJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0hBIENoYW5nZSBSZWFzb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd1cHRpbWUnICAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnVXB0aW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgICAgOiBmbXRjbnYucHJpbnRfdGltZXNpbmNlX21zZWNfc2luY2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9LAorICAgICAgICB9LAorfQorCitjb250cm9sbGVyX25vZGVfc2hvd19hY3Rpb25zID0gKAorICAgIHsKKyAgICAgICAgJ3Byb2MnICAgICA6ICdxdWVyeS10YWJsZScsCisgICAgfSwKKyAgICB7CisgICAgICAgICdwcm9jJyAgICAgICAgIDogJ2pvaW4tdGFibGUnLAorICAgICAgICAnb2JqLXR5cGUnICAgICA6ICdjb250cm9sbGVyLWFsaWFzJywKKyAgICAgICAgJ2tleScgICAgICAgICAgOiAnY29udHJvbGxlcicsCisgICAgICAgICdqb2luLWZpZWxkJyAgIDogJ2lkJywgIyBmaWVsZCBpbiBxdWVyaWVkIGl0ZW1zCisgICAgfSwKKyAgICB7CisgICAgICAgICdwcm9jJyAgICAgICA6ICdqb2luLXJlc3QnLAorICAgICAgICAndXJsJyAgICAgICAgOiAnc3lzdGVtL2NvbnRyb2xsZXInLAorICAgICAgICAncmVzdC10eXBlJyAgOiAnZGljdC13aXRoLWlkJywKKyAgICAgICAgJ2tleScgICAgICAgIDogJ2lkJywKKyAgICAgICAgJ2pvaW4tZmllbGQnIDogJ2lkJywKKyAgICAgICAgJ2FkZC1maWVsZCcgIDogJ21lJywKKyAgICB9LAorICAgICMgbmVlZCBhIGRlc2NyaXB0aW9uIG1lY2hhbmlzbSB0byBqb2luIGhhLXJvbGUsIHdoaWNoCisgICAgIyBuZWVkcyB0byBzZW5kIHVybHMgdG8gY29udHJvbGxlci1ub2RlIGludGVyZmFjZXMgCisgICAgIyBpZTogdGhlIHJlc3QgYWN0aW9ucyBhbHdhdXMgdXNlIHRoZSBsb2NhbCBjb250cm9sbGVyCisgICAgIyAodXB0aW1lIGhhcyB0aGUgc2FtZSBpc3N1ZSkKKyAgICB7CisgICAgICAgICdwcm9jJyAgICAgICA6ICdkaXNwbGF5JywKKyAgICAgICAgJ2Zvcm1hdCcgICAgIDogJ2NvbnRyb2xsZXItbm9kZScsCisgICAgfSwKKyksCisKKworQ09OVFJPTExFUl9OT0RFX1NIT1dfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdjb250cm9sbGVyLW5vZGUnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnYWxsLWhlbHAnICAgICA6ICdTaG93IGNvbnRyb2xsZXIgbm9kZSBpbmZvcm1hdGlvbicsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyBjb250cm9sbGVyIG5vZGVzIHN1bW1hcmllcycsCisgICAgJ2RvYycgICAgICAgICAgOiAnY29udHJvbGxlcnxzaG93JywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgIDogJ2NvbnRyb2xsZXItbm9kZScsCisgICAgICAgICAgICAnYWN0aW9uJyA6IGNvbnRyb2xsZXJfbm9kZV9zaG93X2FjdGlvbnMsCisgICAgICAgICB9CisgICAgKSwKK30KK0NPTlRST0xMRVJfTk9ERV9JTlRFUkZBQ0VfRk9STUFUID0geworICAgICdjb250cm9sbGVyLWludGVyZmFjZScgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbJ0lkeCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRyb2xsZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbnVtYmVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbW9kZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2lwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzY292ZXJlZC1pcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ25ldG1hc2snLAorICAgICAgICAgICAgICAgICAgICAgICAgICdtYWMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdmaXJld2FsbCddCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICdjb250cm9sbGVyJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucmVwbGFjZV9jb250cm9sbGVyX25vZGVfd2l0aF9hbGlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbnVtYmVyJyAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lmbmFtZScgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGxhbWJkYSBpLCBkYXRhOiAnJXMlcycgJSAoZGF0YVsndHlwZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsnbnVtYmVyJ10pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lwJyAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkaXNjb3ZlcmVkLWlwJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRm91bmQgSVAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdtb2RlJyAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0bWFzaycgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdmaXJld2FsbCcgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnRmlyZXdhbGwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKK30KKworCitDT05UUk9MTEVSX05PREVfU1VNTUFSWV9GT1JNQVQgPSB7CisgICAgICAgICdjb250cm9sbGVyLXN1bW1hcnknIDogeworICAgICAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAgICAgJ2RlZmF1bHQnIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyMgaW50ZXItc3dpdGNoIGxpbmtzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIGhvc3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIGF0dGFjaG1lbnQgcG9pbnRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIElQIEFkZHJlc3NlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBWTlNlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBBY2Nlc3MgQ29udHJvbCBMaXN0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIyBWTlMgSW50ZXJmYWNlcyB3aXRoIEFDTCBhcHBsaWVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcjIFZOUyBJbnRlcmZhY2VzJywKKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAnIyBBY2Nlc3MgQ29udHJvbCBMaXN0cycgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQWNjZXNzIENvbnRyb2wgTGlzdHMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICcjIFZOUyBJbnRlcmZhY2VzJyAgICAgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdWTlMgSW50ZXJmYWNlcycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJyMgaG9zdHMnICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0hvc3RzJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnIyBWTlNlcycgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVk5TZXN4JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnIyBhdHRhY2htZW50IHBvaW50cycgICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQXR0YWNobWVudCBQb2ludHMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICcjIGludGVyLXN3aXRjaCBsaW5rcycgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdMaW5rcycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJyMgSVAgQWRkcmVzc2VzJyAgICAgICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0lwIEFkZHJlc3NlcycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJyMgVk5TIEludGVyZmFjZXMgd2l0aCBBQ0wgYXBwbGllZCcgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1ZOUyBJZiB3aXRoIEFjbCBBcHBsaWVkJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0sCit9CisKKworQ09UUk9MTEVSX05PREVfU1dJVENIRVNfRk9STUFUID0geworICAgICdjb250cm9sbGVyLXN3aXRjaGVzJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgICAgIDogWworICAgICAgICAgICAgICAgICdJZHgnLCAnZHBpZCcsCisgICAgICAgICAgICBdLAorICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICdkcGlkJyA6IHsgJ3ByaW1hcnlfa2V5JyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnOiAnQ29ubmVjdGVkIFN3aXRjaGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfc3dpdGNoX2FuZF9hbGlhcyB9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCisKK30KKworCitDT05UUk9MTEVSX05PREVfRklSRVdBTExfUlVMRV9GT1JNQVQgPSB7CisgICAgJ2ZpcmV3YWxsLXJ1bGUnIDogeworCisgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncyc6IHsKKyAgICAgICAgICdkZWZhdWx0JyA6IFsnSWR4JywKKyAgICAgICAgICAgICAgICAgICAgICAnY29udHJvbGxlcicsCisgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICdudW1iZXInLAorICAgICAgICAgICAgICAgICAgICAgICdzcmMtaXAnLAorICAgICAgICAgICAgICAgICAgICAgICd2cnJwLWlwJywKKyAgICAgICAgICAgICAgICAgICAgICAncG9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgJ3Byb3RvJywKKyAgICAgICAgICAgICAgICAgICAgICAncnVsZSddCisgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworCisgICAgICAgICAgICAnY29udHJvbGxlcicgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucmVwbGFjZV9jb250cm9sbGVyX25vZGVfd2l0aF9hbGlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaW50ZXJmYWNlJyAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3BvcnQnICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdwcm90bycgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncnVsZScgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0ZpcmV3YWxsIFJ1bGUnCisgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgIH0sCit9CisKKworZGVmIGNvbnRyb2xsZXJfY29tcGxldGlvbl9hZGRfbG9jYWxob3N0KGNvbXBsZXRpb25zLCBwcmVmaXgpOgorICAgIGlmIGNvbXBsZXRpb25zID09IE5vbmU6CisgICAgICAgIGNvbXBsZXRpb25zID0ge30KKyAgICBpZiBub3QgJ2xvY2FsaG9zdCAnIGluIGNvbXBsZXRpb25zIGFuZCAnbG9jYWxob3N0Jy5zdGFydHN3aXRoKHByZWZpeCkgOgorICAgICAgICBjb21wbGV0aW9uc1snbG9jYWxob3N0ICddID0gJ1NlbGVjdCBjdXJyZW50bHkgbG9nZ2VkIGluIGNvbnRyb2xsZXInCisKKworY29tbWFuZC5hZGRfY29tcGxldGlvbignY29udHJvbGxlci1hZGQtbG9jYWxob3N0JywgY29udHJvbGxlcl9jb21wbGV0aW9uX2FkZF9sb2NhbGhvc3QsCisgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7ICdjb21wbGV0aW9ucycgOiAnJGNvbXBsZXRpb25zJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByZWZpeCcgICAgICA6ICckdGV4dCcsCisgICAgICAgICAgICAgICAgICAgICAgfX0pCisKK0NPTlRST0xMRVJfTk9ERV9TSE9XX0lEX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ29iai10eXBlJyAgICAgOiAnY29udHJvbGxlci1ub2RlJywKKyAgICAnbW9kZScgICAgICAgICA6ICdsb2dpbicsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyBjb250cm9sbGVyLW5vZGUgYXNzb2NpYXRlZCBkZXRhaWxzIGJ5IG5hbWUnLAorICAgICduby1zdXBwb3J0ZWQnIDogRmFsc2UsCisgICAgJ2FjdGlvbicgICAgICAgOiBjb250cm9sbGVyX25vZGVfc2hvd19hY3Rpb25zLAorICAgICdkb2MnICAgICAgICAgIDogJ2NvbnRyb2xsZXJ8c2hvdy1kZXRhaWxzJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ2NvbnRyb2xsZXItbm9kZScsCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2lkJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaWRlbnRpZmllcicsCisgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRyb2xsZXItYWRkLWxvY2FsaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgICA6IGNvbnRyb2xsZXJfbm9kZV9zaG93X2FjdGlvbnMsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ2NvbnRyb2xsZXJ8c2hvdy1pZCcsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICAgIDogJ2FsbCcsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3Jlc2VydmVkfGFsbCcsCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKSwKKworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ2ludGVyZmFjZXMnLAorICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICA6ICdjb250cm9sbGVyLWludGVyZmFjZScsCisgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTaG93IG5ldHdvcmsgaW50ZXJmYWNlIGluZm9ybWF0aW9uIGZvciBjb250cm9sbGVyIG5vZGUnLAorICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdjb250cm9sbGVyfHNob3ctaW50ZXJmYWNlcycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ2ZpcmV3YWxsJywKKyAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgOiAnZmlyZXdhbGwtcnVsZScsCisgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTaG93IGZpcmV3YWxsIHJ1bGVzIGZvciBjb250cm9sbGVyIG5vZGUnLAorICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdjb250cm9sbGVyfHNob3ctZmlyZXdhbGwnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdzdW1tYXJ5JywKKyAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnZGlzcGxheS1yZXN0JywKKyAgICAgICAgICAgICAgICAgICAndXJsJyAgICAgICAgOiAnY29udHJvbGxlci9zdW1tYXJ5JywKKyAgICAgICAgICAgICAgICAgICAncmVzdC10eXBlJyAgOiAnZGljdCcsCisgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCcgICAgIDogJ2NvbnRyb2xsZXItc3VtbWFyeScsCisgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1Nob3cgYSBzdW1tYXJ5IG9mIGNvbmZpZ3VyYXRpb24gZm9yIGNvbnRyb2xsZXIgbm9kZScsCisgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2NvbnRyb2xsZXJ8c2hvdy1zdW1tYXJ5JywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgOiAnc3dpdGNoZXMnLAorICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdkaXNwbGF5LXJlc3QnLAorICAgICAgICAgICAgICAgICAgICd1cmwnICAgICAgICA6ICdjb250cm9sbGVyL3N0YXRzL3N3aXRjaGVzJywKKyAgICAgICAgICAgICAgICAgICAnZm9ybWF0JyAgICAgOiAnY29udHJvbGxlci1zd2l0Y2hlcycsCisgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1Nob3cgc3dpdGNoZXMgY29ubmVjdGVkIHRvIGNvbnRyb2xsZXIgbm9kZScsCisgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2NvbnRyb2xsZXJ8c2hvdy1zd2l0Y2hlcycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ2FsaWFzJywKKyAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnZGlzcGxheS10YWJsZScsCisgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ2NvbnRyb2xsZXItYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTaG93IHRoZSBhbGlhcyBmb3IgY29udHJvbGxlciBub2RlJywKKyAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnY29udHJvbGxlcnxzaG93LWFsaWFzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICdmaWVsZCcgICAgOiAnZGV0YWlsJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgIDogKCdkZXRhaWxzJywnYnJpZWYnKSwKKyAgICAgICAgICAgICdkb2MnICAgICAgOiAnY29udHJvbGxlcnxzaG93LWRldGFpbCcsCisgICAgICAgIH0KKyAgICApLAorfQorCitDT05UUk9MTEVSX05PREVfU0hPV19TVEFUU19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdvYmotdHlwZScgICAgIDogJ2NvbnRyb2xsZXItbm9kZScsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgc3RhdGlzdGljcyBmb3IgYSBnaXZlbiBjb250cm9sbGVyIG5vZGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Nob3ctc3RhdHMnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAnY29udHJvbGxlci1ub2RlJywKKyAgICAgICAgeworICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnaWQnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb250cm9sbGVyLWFkZC1sb2NhbGhvc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICAgIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ2NvbnRyb2xsZXJ8aWQnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdpZCcsCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgICA6ICdhbGwnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICdyZXNlcnZlZHxhbGwnLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgfSwKKyAgICAgICB7CisgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnc3RhdHMnLAorICAgICAgICAgICd0eXBlJyAgICAgIDogJ2VudW0nLAorICAgICAgICAgICd2YWx1ZXMnICAgIDogJ3N0YXRzJywKKyAgICAgICAgICAnb2JqLXR5cGUnICA6ICdjb250cm9sbGVyLXN0YXRzJywKKyAgICAgICAgICAnYWN0aW9uJyAgICA6ICdsZWdhY3ktY2xpJywKKyAgICAgICB9LAorICAgICksCit9CisKK0NPTlRST0xMRVJfTk9ERV9TSE9XX09CSkVDVF9TVEFUU19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdvYmotdHlwZScgICAgIDogJ2NvbnRyb2xsZXItbm9kZScsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgZGV0YWlsZWQgY29udHJvbGxlci1ub2RlIHJlbGF0ZWQgc3RhdGlzdGljcycsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICdjb250cm9sbGVyLW5vZGUnLAorICAgICAgICB7CisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdpZCcsCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbnRyb2xsZXItYWRkLWxvY2FsaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgICAgOiAnZGlzcGxheS10YWJsZScsCisgICAgICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnaWQnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgICAgOiAnYWxsJywKKyAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAncmVzZXJ2ZWR8YWxsJywKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgIH0sCisgICAgICAgeworICAgICAgICAgICdmaWVsZCcgICAgIDogJ3N0YXRzJywKKyAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAndmFsdWVzJyAgICA6ICdzdGF0cycsCisgICAgICAgICAgJ29iai10eXBlJyAgOiAnY29udHJvbGxlci1zdGF0cycsCisgICAgICAgICAgJ2FjdGlvbicgICAgOiAnbGVnYWN5LWNsaScsCisgICAgICAgfSwKKyAgICAgICB7CisgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnc3RhdHMtdHlwZScsCisgICAgICAgICAgJ3R5cGUnICAgICAgOiAnZW51bScsCisgICAgICAgICAgJ3ZhbHVlcycgICAgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NwdS11c2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzay1yb290JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWVtLXVzZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtZW0tZnJlZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NsaS1jcHUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhYmFzZS1jcHUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzd2FwLXVzZWQnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzay1ib290JywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXRkLWNwdScsIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjcHUtc3lzdGVtJywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NwdS1pZGxlJywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FwYWNoZS1jcHUnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3B1LW5pY2UnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzay1sb2cnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2RucGxhdGZvcm0tY3B1JworICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAnZG9jJyAgICAgICA6ICdjb250cm9sbGVyfHNob3ctc3RhdHMtdHlwZScsCisgICAgICAgfSwKKyAgICAgICB7CisgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnc3RhcnQtdGltZScsCisgICAgICAgICAgJ3RhZycgICAgICAgOiAnc3RhcnQtdGltZScsCisgICAgICAgICAgJ3R5cGUnICAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAnc2hvcnQtaGVscCcgICA6ICdTdGFydCB0aW1lIGZvciBkaXNwbGF5aW5nIHRoZSBzdGF0cycsCisgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICdkb2MnICAgICAgIDogJ2NvbnRyb2xsZXJ8c2hvdy1zdGF0cy1zdGFydC10aW1lJywKKyAgICAgICB9LAorICAgICAgIHsKKyAgICAgICAgICAnZmllbGQnICAgICA6ICdlbmQtdGltZScsCisgICAgICAgICAgJ3RhZycgICAgICAgOiAnZW5kLXRpbWUnLAorICAgICAgICAgICd0eXBlJyAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnRW5kIHRpbWUgZm9yIGRpc3BsYXlpbmcgdGhlIHN0YXRzJywKKyAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgJ2RvYycgICAgICAgOiAnY29udHJvbGxlcnxzaG93LXN0YXRzLWVuZC10aW1lJywKKyAgICAgICB9LAorICAgICAgIHsKKyAgICAgICAgICAnZmllbGQnICAgICA6ICdkdXJhdGlvbicsCisgICAgICAgICAgJ3RhZycgICAgICAgOiAnZHVyYXRpb24nLAorICAgICAgICAgICd0eXBlJyAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnRHVyYXRpb24gZnJvbSB0aGUgc3RhcnQgb3IgZW5kIGZvciBkaXNwbGF5aW5nIHRoZSBzdGF0cycsCisgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICdkb2MnICAgICAgIDogJ2NvbnRyb2xsZXJ8c2hvdy1zdGF0cy1kdXJhdGlvbicsCisgICAgICAgfSwKKyAgICAgICB7CisgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnc2FtcGxlLWludGVydmFsJywKKyAgICAgICAgICAndGFnJyAgICAgICA6ICdzYW1wbGUtaW50ZXJ2YWwnLAorICAgICAgICAgICd0eXBlJyAgICAgIDogJ2ludGVnZXInLAorICAgICAgICAgICdzaG9ydC1oZWxwJyAgIDogJ1NwYWNpbmcgYmV0d2VlbiBzYW1wbGluZyB3aW5kb3dzJywKKyAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgJ2RvYycgICAgICAgOiAnY29udHJvbGxlcnxzaG93LXN0YXRzLXNhbXBsZS1pbnRlcnZhbCcsCisgICAgICAgfSwKKyAgICAgICB7CisgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnc2FtcGxlLWNvdW50JywKKyAgICAgICAgICAndGFnJyAgICAgICA6ICdzYW1wbGUtY291bnQnLAorICAgICAgICAgICd0eXBlJyAgICAgIDogJ2ludGVnZXInLAorICAgICAgICAgICdzaG9ydC1oZWxwJyAgIDogJ051bWJlciBvZiBzYW1wbGVzIHRvIHNob3cnLAorICAgICAgICAgICdvcHRpb25hbCcgIDogVHJ1ZSwKKyAgICAgICAgICAnZG9jJyAgICAgICA6ICdjb250cm9sbGVyfHNob3ctc3RhdHMtc2FtcGxlLWNvdW50JywKKyAgICAgICB9LAorICAgICAgIHsKKyAgICAgICAgICAnZmllbGQnICAgICA6ICdzYW1wbGUtd2luZG93JywKKyAgICAgICAgICAndGFnJyAgICAgICA6ICdzYW1wbGUtd2luZG93JywKKyAgICAgICAgICAndHlwZScgICAgICA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnTnVtYmVyIG9mIHJhdyBzYW1wbGUgdmFsdWVzIHRvIGF2ZXJhZ2UgYXJvdW5kIGVhY2ggZG93bi1zYW1wbGVkIGRhdGEgcG9pbnQnLAorICAgICAgICAgICdkb2MnICAgICAgIDogJ2NvbnRyb2xsZXJ8c2hvdy1zdGF0cy1zYW1wbGUtd2luZG93JywKKyAgICAgICB9LAorICAgICAgIHsKKyAgICAgICAgICAnZmllbGQnICAgICA6ICdkYXRhLWZvcm1hdCcsCisgICAgICAgICAgJ3RhZycgICAgICAgOiAnZGF0YS1mb3JtYXQnLAorICAgICAgICAgICd0eXBlJyAgICAgIDogJ2VudW0nLAorICAgICAgICAgICd2YWx1ZXMnICAgIDogKCd2YWx1ZScsICdyYXRlJyksCisgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnV2hldGhlciB0byBkaXNwbGF5IGFzIGEgcmF3IHZhbHVlIG9yIHJhdGUnLAorICAgICAgICAgICdvcHRpb25hbCcgIDogVHJ1ZSwKKyAgICAgICAgICAnZG9jJyAgICAgICA6ICdjb250cm9sbGVyfHNob3ctc3RhdHMtZGF0YS1mb3JtYXQnLAorICAgICAgIH0sCisgICAgICAgeworICAgICAgICAgICdmaWVsZCcgICAgIDogJ2Rpc3BsYXknLAorICAgICAgICAgICd0YWcnICAgICAgIDogJ2Rpc3BsYXknLAorICAgICAgICAgICd0eXBlJyAgICAgIDogJ2VudW0nLAorICAgICAgICAgICd2YWx1ZXMnICAgIDogKCdsYXRlc3QtdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdncmFwaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnRGlzcGxheSB0aGUgbGF0ZXN0IHZhbHVlLCBhIGdyYXBoLCBvciBhIHRhYmxlJywKKyAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgJ2RvYycgICAgICAgOiAnY29udHJvbGxlcnxzaG93LXN0YXRzLWRpc3BsYXknLAorICAgICAgIH0sCisgICApLAorfQorCitDT05UUk9MTEVSX0lOVEVSRkFDRVNfU0hPV19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdvYmotdHlwZScgICAgIDogJ2NvbnRyb2xsZXItaW50ZXJmYWNlJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IGNvbnRyb2xsZXItbm9kZSBhc3NvY2lhdGVkIGludGVyZmFjZXMnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy1jb250cm9sbGVyJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnc2NvcGVkJyAgICAgICA6IFRydWUsICMgZW50cmllcyBkaXNwbGF5ZWQgZmlsdGVyZWQgYnkgcHVzaGVkIG9iaiBpZAorICAgICdkb2MnICAgICAgICAgIDogJ2NvbnRyb2xsZXJ8c2hvdy1pbnRlcmZhY2VzJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ2ludGVyZmFjZXMnLAorICAgICAgICB7CisgICAgICAgICAgICdmaWVsZCcgICAgIDogJ3R5cGUnLAorICAgICAgICAgICAndGFnJyAgICAgICA6ICd0eXBlJywKKyAgICAgICAgICAgJ3R5cGUnICAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAnZG9jJyAgICAgICA6ICdjb250cm9sbGVyfHNob3ctaW50ZXJmYWNlcy10eXBlJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAnZmllbGQnICAgIDogJ251bWJlcicsCisgICAgICAgICAgICd0YWcnICAgICAgOiAnbnVtYmVyJywKKyAgICAgICAgICAgJ3R5cGUnICAgICA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgJ29wdGlvbmFsJyA6IFRydWUsCisgICAgICAgICAgICdkb2MnICAgICAgIDogJ2NvbnRyb2xsZXJ8c2hvdy1pbnRlcmZhY2VzLW51bWJlcicsCisgICAgICAgIH0sCisgICAgKQorfQorCisKK0NPTlRST0xMRVJfTk9ERV9TVUJNT0RFX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ2NvbnRyb2xsZXItbm9kZScsCisgICAgJ29iai10eXBlJyAgICAgICAgICAgIDogJ2NvbnRyb2xsZXItbm9kZScsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2NvbmZpZyonLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdFbnRlciBjb25maWd1cmF0aW9uIHN1Ym1vZGUgZm9yIGNvbnRyb2xsZXItbm9kZXMnLAorICAgICduby1zdXBwb3J0ZWQnICAgICAgICA6IEZhbHNlLCAgICAgICAgICAjIGRvbid0IGFsbG93IHJlbW92YWwgb2YgY29udHJvbGxlci1ub2RlcworICAgICMgJ2NyZWF0ZScgICAgICAgICAgICA6IEZhbHNlLCAgICAgICAgICMgZG9uJ3QgYWxsb3cgY3JlYXRpb24gb2YgbmV3IGNvbnRyb2xsZXItbm9kZXMKKyAgICAnY29tbWFuZC10eXBlJyAgICAgICAgOiAnY29uZmlnLXN1Ym1vZGUnLAorICAgICdwYXJlbnQtZmllbGQnICAgICAgICA6IE5vbmUsCisgICAgJ2N1cnJlbnQtbW9kZS1vYmotaWQnIDogTm9uZSwKKyAgICAnc3VibW9kZS1uYW1lJyAgICAgICAgOiAnY29uZmlnLWNvbnRyb2xsZXInLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdjb250cm9sbGVyfGNvbnRyb2xsZXItbm9kZScsCisgICAgJ2RvYy1leGFtcGxlJyAgICAgICAgIDogJ2NvbnRyb2xsZXJ8Y29udHJvbGxlci1ub2RlLWV4YW1wbGUnLAorICAgICdhcmdzJyAgICAgICAgICAgICAgICA6ICgKKyAgICAgICAgIHsKKyAgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdpZCcsCisgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnaWRlbnRpZmllcicsCisgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgICAgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtYWxpYXMtY2hvaWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb250cm9sbGVyLWFkZC1sb2NhbGhvc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyAgICA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBGYWxzZSwKKyAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICdjb250cm9sbGVyfGNvbnRyb2xsZXItbm9kZS1uYW1lJywKKyAgICAgICAgIH0KKyAgICApCit9CisKKworQ09OVFJPTExFUl9OT0RFX0FMSUFTX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnY29udHJvbGxlci1hbGlhcycsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLWNvbnRyb2xsZXInLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0F0dGFjaCBhbGlhcyB0byBjb250cm9sbGVyJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdtYW5hZ2UtYWxpYXMnLAorICAgICdvYmotdHlwZScgICAgIDogJ2NvbnRyb2xsZXItYWxpYXMnLAorICAgICdzY29wZWQnICAgICAgIDogVHJ1ZSwKKyAgICAncmVzZXJ2ZWQnICAgICA6ICdsb2NhbGhvc3QnLAorICAgICdkb2MnICAgICAgICAgIDogJ2NvbnRyb2xsZXJ8YWxpYXMnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdhbGlhcycsCisgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICAgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgICAgICAgOiAnY29udHJvbGxlcnxhbGlhcy1uYW1lJywKKyAgICAgICAgICAgICdhY3Rpb24nICAgICAgICAgIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnICAgIDogJ2NyZWF0ZS1hbGlhcycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgICA6ICdwcm9tcHQtdXBkYXRlJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICduby1hY3Rpb24nICAgICAgIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnICAgIDogJ2RlbGV0ZS1hbGlhcycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgICA6ICdwcm9tcHQtdXBkYXRlJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKQorICAgICAgICB9CisgICAgKQorfQorCisKK0NPTlRST0xMRVJfTk9ERV9JTlRFUkZBQ0VfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgIDogJ2ludGVyZmFjZScsCisgICAgJ25ldy1zdHlsZScgICA6IFRydWUsCisgICAgJ21vZGUnICAgICAgICA6ICdjb25maWctY29udHJvbGxlcionLAorICAgICdzaG9ydC1oZWxwJyAgOiAnRW50ZXIgaW50ZXJmYWNlIHN1Ym1vZGUsIGNvbmZpZ3VyZSBjb250cm9sbGVyIGludGVyZmFjZScsCisgICAgJ2NvbW1hbmQtdHlwZSc6ICdjb25maWctc3VibW9kZScsCisgICAgJ3N1Ym1vZGUtbmFtZSc6ICdjb25maWctY29udHJvbGxlci1pZicsCisgICAgJ29iai10eXBlJzogJ2NvbnRyb2xsZXItaW50ZXJmYWNlJywKKyAgICAncGFyZW50LWZpZWxkJzogJ2NvbnRyb2xsZXInLAorICAgICdkb2MnICAgICAgICAgOiAnY29udHJvbGxlcnxpbnRlcmZhY2UnLAorICAgICdhcmdzJzogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgIDogJ3R5cGUnLAorICAgICAgICAgICAgJ2hlbHAtbmFtZScgICA6ICdpbnRlcmZhY2UtdHlwZScsCisgICAgICAgICAgICAndHlwZScgICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgICA6ICgnRXRoZXJuZXQnLCksCisgICAgICAgICAgICAnc3ludGF4LWhlbHAnIDogJ0VudGVyIHRoZSBpbnRlcmZhY2UgdHlwZSAoZS5nLiBFdGhlcm5ldCknLAorICAgICAgICAgICAgJ2RvYycgICAgICAgICA6ICdjb250cm9sbGVyfGludGVyZmFjZS10eXBlJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICA6ICdudW1iZXInLAorICAgICAgICAgICAgJ2hlbHAtbmFtZScgICA6ICdpbnRlcmZhY2UtbnVtYmVyJywKKyAgICAgICAgICAgICdiYXNlLXR5cGUnICAgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAncmFuZ2UnICAgICAgIDogKDAsMTAwMDAwMCksCisgICAgICAgICAgICAjJ2NvbXBsZXRpb24nIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAnc3ludGF4LWhlbHAnIDogJ0VudGVyIHRoZSBpbnRlcmZhY2UgbnVtYmVyLCBhIHNtYWxsIG5vbi1uZWdhdGl2ZSBudW1iZXIgKGUuZy4gMCBvciAxKScsCisgICAgICAgICAgICAnZG9jJyAgICAgICAgIDogJ2NvbnRyb2xsZXJ8aW50ZXJmYWNlLW51bWJlcicsCisgICAgICAgIH0KKyAgICApLAorICAgICduby1hY3Rpb24nOiAoJ2JlZ2luLWRlZmF1bHQtZ2F0ZXdheS1jaGVjaycsICdkZWxldGUtb2JqZWN0cycsICdlbmQtZGVmYXVsdC1nYXRld2F5LWNoZWNrJyksCit9CisKK0NPTlRST0xMRVJfTk9ERV9ET01BSU5fTkFNRV9TRVJWRVJfRk9STUFUID0geworICAgICdjb250cm9sbGVyLWRvbWFpbi1uYW1lLXNlcnZlcicgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbJ0lkeCcsICdpZCcsICdjb250cm9sbGVyJywgJ3ByaW9yaXR5JywgJ2lwJ10KKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ2lwJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2NvbnRyb2xsZXInICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucmVwbGFjZV9jb250cm9sbGVyX25vZGVfd2l0aF9hbGlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCitDT05UUk9MTEVSX0lQX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgIDogJ2lwJywKKyAgICAnbW9kZScgICAgICAgOiAnY29uZmlnLWNvbnRyb2xsZXInLAorICAgICdzaG9ydC1oZWxwJyA6ICdBc3NvY2lhdGUgZG5zLCBkZWZhdWx0IGdhdGV3YXkgd2l0aCB0aGUgY29udHJvbGxlciBub2RlJywKKyAgICAnZG9jJyAgICAgICAgOiAnY29udHJvbGxlcnxpcCcsCisgICAgJ2FyZ3MnICAgICAgIDogeworICAgICAgICAnY2hvaWNlcyc6ICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnY29tbWFuZC10eXBlJzogJ2NvbmZpZycsCisgICAgICAgICAgICAgICAgJ29iai10eXBlJzogJ2NvbnRyb2xsZXItbm9kZScsCisgICAgICAgICAgICAgICAgJ2RvYyc6ICdjb250cm9sbGVyfGlwLWRvbWFpbicsCisgICAgICAgICAgICAgICAgJ2FyZ3MnOiAoCisgICAgICAgICAgICAgICAgICAgICdkb21haW4nLAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnY2hvaWNlcyc6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ2RvbWFpbi1sb29rdXBzLWVuYWJsZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICA6ICdsb29rdXAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICA6ICdib29sZWFuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgOiAnY29udHJvbGxlcnxpcC1kb21haW4tbG9va3VwcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduby1hY3Rpb24nIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnICA6ICd3cml0ZS1maWVsZHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICA6IHsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvbWFpbi1sb29rdXBzLWVuYWJsZWQnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJzogJ2RvbWFpbi1uYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhZyc6ICduYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAnZG9tYWluLW5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3ludGF4LWhlbHAnOiAiRW50ZXIgdGhlIG5ldHdvcmsncyBkb21haW4gbmFtZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWZhdWx0LWZvci1ubyc6ICd4eXouY29tJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYyc6ICdjb250cm9sbGVyfGlwLWRvbWFpbi1uYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdjb21tYW5kLXR5cGUnOiAnY29uZmlnLW9iamVjdCcsCisgICAgICAgICAgICAgICAgJ29iai10eXBlJzogJ2NvbnRyb2xsZXItZG9tYWluLW5hbWUtc2VydmVyJywKKyAgICAgICAgICAgICAgICAncGFyZW50LWZpZWxkJzogJ2NvbnRyb2xsZXInLAorICAgICAgICAgICAgICAgICdkb2MnOiAnY29udHJvbGxlcnxpcC1uYW1lLXNlcnZlcicsCisgICAgICAgICAgICAgICAgJ2FyZ3MnOiAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICd0YWcnICAgICAgICAgICAgIDogJ25hbWUtc2VydmVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ2lwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgIDogJ2lwLWFkZHJlc3Mtbm90LW1hc2snLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyAgICAgOiAnRW50ZXIgdGhlIElQIGFkZHJlc3Mgb2YgdGhlIGRvbWFpbiBuYW1lIHNlcnZlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICdjb250cm9sbGVyfGlwLW5hbWUtc2VydmVyLXZhbHVlJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2ZpZWxkJzogJ2RlZmF1bHQtZ2F0ZXdheScsCisgICAgICAgICAgICAgICAgJ2NvbW1hbmQtdHlwZSc6ICdjb25maWctd2l0aC1kZWZhdWx0LWdhdGV3YXktY2hlY2snLAorICAgICAgICAgICAgICAgICdvYmotdHlwZSc6ICdjb250cm9sbGVyLW5vZGUnLAorICAgICAgICAgICAgICAgICdkb2MnOiAnY29udHJvbGxlcnxpcC1kZWZhdWx0LWdhdGV3YXknLAorICAgICAgICAgICAgICAgICdhcmdzJzogeworICAgICAgICAgICAgICAgICAgICAndGFnJzogJ2RlZmF1bHQtZ2F0ZXdheScsCisgICAgICAgICAgICAgICAgICAgICdmaWVsZCc6ICdkZWZhdWx0LWdhdGV3YXknLAorICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdpcC1hZGRyZXNzLW5vdC1tYXNrJywKKyAgICAgICAgICAgICAgICAgICAgJ3N5bnRheC1oZWxwJzogJ0VudGVyIHRoZSBJUCBhZGRyZXNzIG9mIHRoZSBkZWZhdWx0IGdhdGV3YXknLAorICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdC1mb3Itbm8nOiAnMTAuMTAuMTAuMTAnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJzogJ2NvbnRyb2xsZXJ8aXAtZGVmYXVsdC1nYXRld2F5LXZhbHVlJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSwKKyAgICAgICAgKSwKKyAgICB9LAorfQorCitJTlRFUkZBQ0VfSVBfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdpcCcsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLWNvbnRyb2xsZXItaWYnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZy13aXRoLWRlZmF1bHQtZ2F0ZXdheS1jaGVjaycsCisgICAgJ29iai10eXBlJyAgICAgOiAnY29udHJvbGxlci1pbnRlcmZhY2UnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0Fzc29jaWF0ZSBpcCBhZGRyZXNzIHdpdGggaW50ZXJmYWNlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdjb250cm9sbGVyfGlwJywKKyAgICAnYXJncycgICAgICAgICA6IHsKKyAgICAgICAgJ2Nob2ljZXMnICA6ICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGRzJzogKCdpcCcsICduZXRtYXNrJyksCisgICAgICAgICAgICAgICAgJ2RvYyc6ICdjb250cm9sbGVyfGlwLWFkZHJlc3MnLAorICAgICAgICAgICAgICAgICdhcmdzJzogKAorICAgICAgICAgICAgICAgICAgICAnYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdjaG9pY2VzJzogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJzogJ2lwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnOiAnaXAtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdpcC1hZGRyZXNzLW5vdC1tYXNrJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzeW50YXgtaGVscCc6ICdFbnRlciBhbiBJUCBvciBDSURSIGFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlZmF1bHQtZm9yLW5vJyA6ICcxMC4xMC4xMC4xMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJzogJ2NvbnRyb2xsZXJ8aXAtYWRkcmVzcy12YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCc6ICduZXRtYXNrJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ25ldG1hc2snLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N5bnRheC1oZWxwJzogJ0VudGVyIGEgbmV0bWFzaycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdC1mb3Itbm8nIDogJzAuMC4wLjAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYyc6ICdjb250cm9sbGVyfGlwLWFkZHJlc3MtbmV0bWFzaycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJzogJ2NpZHInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJzogJ2NpZHItYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJzogJ2NpZHItcmFuZ2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJzogJ3NwbGl0LWNpZHItZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uLXRleHQnOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVzdC1pcCc6ICdpcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXN0LW1hc2snOiAnbWFzaycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnOiAnY29udHJvbGxlcnxpcC1hZGRyZXNzLWNpZHInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnYXJncyc6IHsKKyAgICAgICAgICAgICAgICAgICAgJ3RhZyc6ICdtb2RlJywKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJzogJ21vZGUnLAorICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcyc6ICgnZGhjcCcsICdzdGF0aWMnKSwKKyAgICAgICAgICAgICAgICAgICAgJ3N5bnRheC1oZWxwJzogJ0VudGVyIHRoZSBJUCBhZGRyZXNzIGNvbmZpZ3VyYXRpb24gbW9kZSwgZWl0aGVyICJkaGNwIiBvciAic3RhdGljIicsCisgICAgICAgICAgICAgICAgICAgICdkZWZhdWx0LWZvci1ubyc6ICdzdGF0aWMnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJzogJ2NvbnRyb2xsZXJ8aXAtbW9kZScsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICksCisgICAgIH0KK30KKworTlRQX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICA6ICdudHAnLAorICAgICdtb2RlJyAgICAgICAgOiAnY29uZmlnLWNvbnRyb2xsZXInLAorICAgICdzaG9ydC1oZWxwJyAgOiAnQ29uZmlndXJlIG50cCBmb3IgY29udHJvbGxlci1ub2RlJywKKyAgICAnY29tbWFuZC10eXBlJzogJ2NvbmZpZycsCisgICAgJ29iai10eXBlJyAgICA6ICdjb250cm9sbGVyLW5vZGUnLAorICAgICdkb2MnICAgICAgICAgOiAnY29udHJvbGxlcnxudHAnLAorICAgICdkb2MtZXhhbXBsZScgOiAnY29udHJvbGxlcnxudHAtZXhhbXBsZScsCisgICAgJ2FyZ3MnOiB7CisgICAgICAgICd0YWcnICAgICAgICAgOiAnc2VydmVyJywKKyAgICAgICAgJ2ZpZWxkJyAgICAgICA6ICdudHAtc2VydmVyJywKKyAgICAgICAgJ3R5cGUnICAgICAgICA6ICdpcC1hZGRyZXNzLW9yLWRvbWFpbi1uYW1lJywKKyAgICAgICAgJ3N5bnRheC1oZWxwJyA6ICdFbnRlciB0aGUgSVAgYWRkcmVzcyBvciBkb21haW4gbmFtZSBvZiB0aGUgTlRQIHNlcnZlcicsCisgICAgICAgICdzaG9ydC1oZWxwJyAgOiAnQ29uZmlndXJlIHRoZSBOVFAgc2VydmVyIG5hbWUnLAorICAgICAgICAnZGVmYXVsdC1mb3Itbm8nOiAneHl6LmNvbScsCisgICAgICAgICdjb21wbGV0aW9uJyA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAnZG9jJyAgICAgICAgOiAnY29udHJvbGxlcnxudHAtc2VydmVyJywKKyAgICB9Cit9CisKK0xPR0dJTkdfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgIDogJ2xvZ2dpbmcnLAorICAgICdzaG9ydC1oZWxwJyAgOiAnQ29uZmlndXJlIGxvZ2dpbmcgKHN5c2xvZykgZm9yIGNvbnRyb2xsZXItbm9kZScsCisgICAgJ21vZGUnICAgICAgICA6ICdjb25maWctY29udHJvbGxlcicsCisgICAgJ2NvbW1hbmQtdHlwZSc6ICdjb25maWcnLAorICAgICdvYmotdHlwZScgICAgOiAnY29udHJvbGxlci1ub2RlJywKKyAgICAnZG9jJyAgICAgICAgIDogJ2NvbnRyb2xsZXJ8bG9nZ2luZycsCisgICAgJ2RvYy1leGFtcGxlJyA6ICdjb250cm9sbGVyfGxvZ2dpbmctZXhhbXBsZScsCisgICAgJ2FyZ3MnOiB7CisgICAgICAgICdjaG9pY2VzJzogKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdsb2dnaW5nLWVuYWJsZWQnLAorICAgICAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdvbicsCisgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2Jvb2xlYW4nLAorICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdFbmFibGUgcmVtb3RlIGxvZ2dpbmcnLAorICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdjb250cm9sbGVyfGxvZ2dpbmctZW5hYmxlJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgICAgICA6ICdzZXJ2ZXInLAorICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgICAgICA6ICdTZXQgdGhlIHJlbW90ZSBzeXNsb2cgc2VydmVyIG5hbWUnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICdjb250cm9sbGVyfGxvZ2dpbmctc2VydmVyJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAnbG9nZ2luZy1zZXJ2ZXInLAorICAgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgICAgICA6ICdzZXJ2ZXItaXAtb3ItZG9tYWluJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnaXAtYWRkcmVzcy1vci1kb21haW4tbmFtZScsCisgICAgICAgICAgICAgICAgICAgICdzeW50YXgtaGVscCcgICAgIDogJ0VudGVyIHRoZSBJUCBhZGRyZXNzIG9yIGRvbWFpbiBuYW1lIG9mIHRoZSBzeXNsb2cgc2VydmVyJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgICAgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgJ21hdGNoLWZvci1ubycgICAgOiAnbG9nZ2luZy1zZXJ2ZXInLAorICAgICAgICAgICAgICAgICAgICAnbm8tYWN0aW9uJyAgICAgICA6ICdyZXNldC1maWVsZHMnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnbG9nZ2luZy1sZXZlbCcsCisgICAgICAgICAgICAgICAgICAgICd0YWcnICAgICAgICA6ICdsZXZlbCcsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTZXQgdGhlIGxvZ2dpbmcgbGV2ZWwgZm9yIHJlbW90ZSBzeXNsb2cnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICgnZW1lcmcnLCAnYWxlcnQnLCAnY3JpdCcsICdlcnInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dhcm5pbmcnLCAnbm90aWNlJywgJ2luZm8nLCAnZGVidWcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzAnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2NvbnRyb2xsZXJ8bG9nZ2luZy1sZXZlbCcsCisgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICksCisgICAgICAgICkKKyAgICB9Cit9CisKK0ZJUkVXQUxMX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnZmlyZXdhbGwnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0NvbmZpZ3VyZSBmaXJld2FsbCBydWxlIGZvciBjb250cm9sbGVyLW5vZGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZy1vYmplY3QnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy1jb250cm9sbGVyLWlmJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdmaXJld2FsbC1ydWxlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdjb250cm9sbGVyfGZpcmV3YWxsJywKKyAgICAncGFyZW50LWZpZWxkJyA6ICdpbnRlcmZhY2UnLAorICAgICdhcmdzJzogKAorICAgICAgICAjIFRoaXMgYXJnL3Rva2VuIGlzIHJlYWxseSBqdXN0IHN5bnRhY3RpYyBzdWdhciBmb3IgdGhlIGNvbW1hbmQuCisgICAgICAgICMgVGhlcmUncyBubyAnZGVueScgdmFsdWUsIGJlY2F1c2UgdGhpbmdzIGFyZSBkZW5pZWQgYnkgZGVmYXVsdC4KKyAgICAgICAgIyBJbnN0ZWFkIHlvdSBqdXN0IHVzZSBhICdubycgY29tbWFuZCB0byBkZWxldGUgdGhlIGZpcmV3YWxsIHJ1bGUuCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdhbGxvdycsCisgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnQWxsb3cgYSBnaXZlbiBzZXQgb2YgdHJhZmZpYycsCisgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnY29udHJvbGxlcnxmaXJld2FsbC1hbGxvdycsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ3NyYy1pcCcsCisgICAgICAgICAgICAndGFnJyAgICAgICAgICAgICA6ICdmcm9tJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgIDogJ2lwLWFkZHJlc3MnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgICAgICAgOiBUcnVlLAorICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgJ21hdGNoLWZvci1ubycgICAgOiBUcnVlLAorICAgICAgICAgICAgJ2RvYycgICAgICAgICAgICAgOiAnY29udHJvbGxlcnxmaXJld2FsbC1zcmMtaXAnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICd2cnJwLWlwJywKKyAgICAgICAgICAgICd0YWcnICAgICAgICAgICAgIDogJ2xvY2FsLWlwJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgIDogJ2lwLWFkZHJlc3MnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgICAgICAgOiBUcnVlLAorICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgJ21hdGNoLWZvci1ubycgICAgOiBUcnVlLAorICAgICAgICAgICAgJ2RvYycgICAgICAgICAgICAgOiAnY29udHJvbGxlcnxmaXJld2FsbC1sb2NhbC1pcCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyAgICAgICAgIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ3BvcnQnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdDb25maWd1cmUgcnVsZSBmb3IgYSBzcGVjaWZpYyBzZXJ2aWNlIHBvcnQnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnY29udHJvbGxlcnxmaXJld2FsbC1wb3J0JywKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICAgIDogeyAncHJvdG8nIDogJ3RjcCcgfSwKKyAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcGVuZmxvdycgOiA2NjMzLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3dlYicgICAgICA6IDgwLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NzbCcgICAgICA6IDQ0MywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzc2gnICAgICAgOiAyMgorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAnbWF0Y2gtZm9yLW5vJyAgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgIDogJ2NvbnRyb2xsZXJ8ZmlyZXdhbGwtKycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3Byb3RvJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnQ29uZmlndXJlIHJ1bGUgZm9yIHByb3RvY29sIChUQ1AsIFVEUCknLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgICAgOiAoJ3VkcCcsICd0Y3AnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ2NvbnRyb2xsZXJ8ZmlyZXdhbGwtKycsCisgICAgICAgICAgICAgICAgICAgICAgICAnbWF0Y2gtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAnY2hvaWNlcyc6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdwb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnQ29uZmlndXJlIHJ1bGUgZm9yIGEgc3BlY2lmaWMgc2VydmljZSBwb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYyc6ICdjb250cm9sbGVyfGZpcmV3YWxsLXBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWVzJzogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29wZW5mbG93JyA6IDY2MzMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnd2ViJyAgICAgIDogODAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3NsJyAgICAgIDogNDQzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NzaCcgICAgICA6IDIyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXRjaC1mb3Itbm8nICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgICAgOiAnY29udHJvbGxlcnxmaXJld2FsbC0rJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAncG9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYXNlLXR5cGUnICAgICAgIDogJ2ludGVnZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmFuZ2UnICAgICAgICAgICA6ICgwLCA2NTUzNSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uLXRleHQnIDogJzAtNjU1MzUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICdjb250cm9sbGVyfGZpcmV3YWxsLXBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF0Y2gtZm9yLW5vJyAgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAncHJvdG8nLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnQ29uZmlndXJlIHJ1bGUgZm9yIHByb3RvY29sIChUQ1AsIFVEUCknLAorICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgICA6ICd2cnJwJywKKyAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAnY29udHJvbGxlcnxmaXJld2FsbC0rJywKKyAgICAgICAgICAgICAgICAgICAgJ21hdGNoLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApLAorICAgICAgICB9LAorICAgICkKK30KKworTU9OVEhfTkFNRVMgPSAgKCdKYW51YXJ5JywgJ0ZlYnJ1YXJ5JywgJ01hcmNoJywgJ0FwcmlsJywgJ01heScsICdKdW5lJywKKyAgICAgICAgICAgICAgICAnSnVseScsICdBdWd1c3QnLCAnU2VwdGVtYmVyJywgJ09jdG9iZXInLCAnTm92ZW1iZXInLCAnRGVjZW1iZXInKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgCisKKworQ0xPQ0tfVElNRVpPTkVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdjbG9jaycsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLWNvbnRyb2xsZXInLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0NvbmZpZ3VyZSB0aW1lIHpvbmUnLAorICAgICdkb2MnICAgICAgICAgIDogJ2NvbnRyb2xsZXJ8Y2xvY2stdGltZXpvbmUnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ2NvbnRyb2xsZXJ8Y2xvY2stdGltZXpvbmUtZXhhbXBsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdjb250cm9sbGVyLW5vZGUnLAorICAgICdhcmdzJyAgICAgICAgIDogeworICAgICAgICAndGFnJyAgICAgICAgICAgIDogJ3RpbWV6b25lJywKKyAgICAgICAgJ2ZpZWxkJyAgICAgICAgICA6ICd0aW1lLXpvbmUnLAorICAgICAgICAndHlwZScgICAgICAgICAgIDogJ3N0cmluZycsCisgICAgICAgICdkZWZhdWx0LWZvci1ubycgOiAnVVRDJywKKyAgICAgICAgJ2NvbXBsZXRpb24nICAgICA6ICd0aW1lLXpvbmUtY29tcGxldGlvbicsCisgICAgICAgICd2YWxpZGF0aW9uJyAgICAgOiAndGltZS16b25lLXZhbGlkYXRpb24nLAorICAgICAgICAnc3ludGF4LWhlbHAnICAgIDogJ0VudGVyIHRoZSB0aW1lIHpvbmUnLAorICAgICAgICAnc2hvcnQtaGVscCcgICAgIDogICdDb25maWd1cmUgdGhlIHRpbWUgem9uZScsCisgICAgfQorfQorCitDTE9DS19TRVRfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdjbG9jaycsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLWNvbnRyb2xsZXInLAorICAgICduby1zdXBwb3J0ZWQnIDogRmFsc2UsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2V0IGNsb2NrJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdjb250cm9sbGVyfGNsb2NrLXNldCcsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnY29udHJvbGxlcnxjbG9jay1zZXQtZXhhbXBsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAncmVhbHRpbWUnLAorICAgICdhY3Rpb24nICAgICAgIDogJ3NldC1jbG9jaycsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgICAgICAgOiAnc2V0JywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgOiAnU2V0IHRoZSBjdXJyZW50IHRpbWUgYW5kIGRhdGUnCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgOiAndGltZScsCisgICAgICAgICAgICAnYmFzZS10eXBlJyAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAncGF0dGVybicgICAgIDogJ15bMC05XXsxLDJ9OlswLTldezEsMn06WzAtOV17Mn0kJywKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgOiAnRW50ZXIgdGhlIHRpbWUgKEhIOk1NOlNTKScKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICA6ICdkYXktb2YtbW9udGgnLAorICAgICAgICAgICAgJ2Jhc2UtdHlwZScgICA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgICdyYW5nZScgICAgICAgOiAoMSwzMSksCisgICAgICAgICAgICAnc3ludGF4LWhlbHAnIDogJ0VudGVyIHRoZSBkYXkgb2YgdGhlIG1vbnRoICgxLTMxKScKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICA6ICdtb250aCcsCisgICAgICAgICAgICAndHlwZScgICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgICA6IE1PTlRIX05BTUVTLAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyA6ICdFbnRlciB0aGUgbW9udGggKGUuZy4gSmFudWFyeSwgTWFyY2gpJworICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgIDogJ3llYXInLAorICAgICAgICAgICAgJ2Jhc2UtdHlwZScgICA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgICdyYW5nZScgICAgICAgOiAoMCwxMDAwMCksCisgICAgICAgICAgICAnc3ludGF4LWhlbHAnIDogJ0VudGVyIHRoZSB5ZWFyJworICAgICAgICB9LAorICAgICkKK30KKyIiIgpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC9jb250cm9sbGVyX25vZGVfbW9kZWwucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL2NvbnRyb2xsZXJfbm9kZV9tb2RlbC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMTk3Nzk0Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9jb250cm9sbGVyX25vZGVfbW9kZWwucHkKQEAgLTAsMCArMSw1NiBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2ltcG9ydCBjb21tYW5kCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZW5hYmxlX2Nhc2NhZGVfZGVsZXRlKCdjb250cm9sbGVyLW5vZGUnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9lbmFibGVfY2FzY2FkZV9kZWxldGUoJ2NvbnRyb2xsZXItaW50ZXJmYWNlJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZW5hYmxlX2Nhc2NhZGVfZGVsZXRlKCdjb250cm9sbGVyLWRvbWFpbi1uYW1lLXNlcnZlcicpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2VuYWJsZV9jYXNjYWRlX2RlbGV0ZSgnY29udHJvbGxlci1hbGlhcycpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2VuYWJsZV9jYXNjYWRlX2RlbGV0ZSgnZmlyZXdhbGwtcnVsZScpCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9zdWJtb2RlKCdjb250cm9sbGVyLW5vZGUnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX3N1Ym1vZGUoJ2NvbnRyb2xsZXItaW50ZXJmYWNlJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9zdWJtb2RlKCdjb250cm9sbGVyLWRvbWFpbi1uYW1lLXNlcnZlcicpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfc3VibW9kZSgnY29udHJvbGxlci1hbGlhcycpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfc3VibW9kZSgnZmlyZXdhbGwtcnVsZScpCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdjb250cm9sbGVyLW5vZGUnLCAnZG9tYWluLWxvb2t1cHMtZW5hYmxlZCcpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnY29udHJvbGxlci1ub2RlJywgJ2RvbWFpbi1uYW1lJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdjb250cm9sbGVyLW5vZGUnLCAnZGVmYXVsdC1nYXRld2F5JykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdjb250cm9sbGVyLW5vZGUnLCAnbnRwLXNlcnZlcicpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnY29udHJvbGxlci1ub2RlJywgJ3RpbWUtem9uZScpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnY29udHJvbGxlci1ub2RlJywgJ2xvZ2dpbmctZW5hYmxlZCcpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnY29udHJvbGxlci1ub2RlJywgJ2xvZ2dpbmctc2VydmVyJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdjb250cm9sbGVyLW5vZGUnLCAnbG9nZ2luZy1sZXZlbCcpCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdjb250cm9sbGVyLWludGVyZmFjZScsICd0eXBlJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdjb250cm9sbGVyLWludGVyZmFjZScsICdudW1iZXInKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2NvbnRyb2xsZXItaW50ZXJmYWNlJywgJ2lwJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdjb250cm9sbGVyLWludGVyZmFjZScsICduZXRtYXNrJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdjb250cm9sbGVyLWludGVyZmFjZScsICdtYWMnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2NvbnRyb2xsZXItaW50ZXJmYWNlJywgJ2Rpc2NvdmVyZWQtaXAnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2NvbnRyb2xsZXItaW50ZXJmYWNlJywgJ21vZGUnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2NvbnRyb2xsZXItaW50ZXJmYWNlJywgJ3N0YXR1cycpCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdjb250cm9sbGVyLWRvbWFpbi1uYW1lLXNlcnZlcicsICdpcCcpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnY29udHJvbGxlci1kb21haW4tbmFtZS1zZXJ2ZXInLCAnc2VxdWVuY2UtbnVtYmVyJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdjb250cm9sbGVyLWRvbWFpbi1uYW1lLXNlcnZlcicsICdjb250cm9sbGVyJykKKworY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2ZpcmV3YWxsLXJ1bGUnLCAnaW50ZXJmYWNlJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdmaXJld2FsbC1ydWxlJywgJ3BvcnQnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2ZpcmV3YWxsLXJ1bGUnLCAncHJvdG8nKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2ZpcmV3YWxsLXJ1bGUnLCAncnVsZScpCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL2NvcmUucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL2NvcmUucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGUwZjNjMQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvY29yZS5weQpAQCAtMCwwICsxLDI2NzQgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitpbXBvcnQgY29tbWFuZAoraW1wb3J0IHJ1bl9jb25maWcKKworIiIiCitTSE9XX1JVTk5JTkdfQ09ORklHX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgdGhlIGN1cnJlbnQgYWN0aXZlIGNvbmZpZ3VyYXRpb24nLAorICAgICdhY3Rpb24nICAgICAgIDogJ2xlZ2FjeS1jbGknLAorICAgICduby1zdXBwb3J0ZWQnIDogRmFsc2UsCisgICAgJ29iai10eXBlJyAgICAgOiAncnVubmluZy1jb25maWcnLAorICAgICdkb2MnICAgICAgICAgIDogJ3J1bm5pbmctY29uZmlnfHNob3cnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3J1bm5pbmctY29uZmlnfHNob3ctZXhhbXBsZScsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICdydW5uaW5nLWNvbmZpZycsCisgICAgICAgIHJ1bl9jb25maWcucnVubmluZ19jb25maWdfY29tbWFuZF9jaG9pY2VzLAorICAgICkKK30KKworU0hPV19DTE9DS19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IHRoZSBjdXJyZW50IGRhdGUgYW5kIHRpbWUnLAorICAgICdhY3Rpb24nICAgICAgIDogJ2Rpc3BsYXktcmVzdCcsCisgICAgJ25vLXN1cHBvcnRlZCcgOiBGYWxzZSwKKyAgICAndXJsJyAgICAgICAgICA6ICdzeXN0ZW0vY2xvY2svbG9jYWwnLAorICAgICdyZXN0LXR5cGUnICAgIDogJ2RpY3Qtd2l0aC10aW1lfHR6fHllYXJ8bW9udGh8ZGF5fGhvdXJ8bWludXRlfHNlY29uZCcsCisgICAgJ2Zvcm1hdCcgICAgICAgOiAnc3lzdGVtLWNsb2NrJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdjbG9ja3xzaG93JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdjbG9ja3xzaG93LWV4YW1wbGUnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAnY2xvY2snLAorICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwnICAgOiBUcnVlLAorICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2RldGFpbCcsCisgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAoJ2RldGFpbHMnKSwKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTaG93IG1vcmUgZGF0ZS90aW1lIGluZm9ybWF0aW9uJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdjbG9ja3xzaG93LWZvcm1hdC1kZXRhaWxzJywKKyAgICAgICAgfSwKKyAgICApCit9CisKK1NIT1dfQ09ORklHX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgc2F2ZWQgY29uZmlncyAoZXg6IHN0YXJ0dXAtY29uZmlnLCBldGMpJywKKyAgICAnYWN0aW9uJyAgICAgICA6ICdsZWdhY3ktY2xpJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdjb25maWcnLAorICAgICduby1zdXBwb3J0ZWQnIDogRmFsc2UsCisgICAgJ2RvYycgICAgICAgICAgOiAnY29uZmlnfHNob3cnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ2NvbmZpZ3xzaG93LWV4YW1wbGUnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAnY29uZmlnJywKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgJ2Nob2ljZXMnICAgOiAoCisgICAgICAgICAgICAjIDxmaXJzdD4gWyA8dmVyc2lvbj4gXQorICAgICAgICAgICAgIyA8Zmlyc3Q+IGRpZmYgPHNlY29uZD4gWyB2ZXJzaW9uIF0KKyAgICAgICAgICAgICAgICggIyAxbmQgY2hvaWNlICdkaWZmJyA8Y29uZmlnPiA8Y29uZmlnPiBbIHZlcnNpb24gXQorICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdmaXJzdCcsCisgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdjb25maWcnLAorICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgOiAnY29tcGxldGUtY29uZmlnJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2NvbmZpZ3xzaG93LWZpcnN0JywKKyAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsJyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgIDogJ2RpZmYnLAorICAgICAgICAgICAgICAgICAgICAgICAjIFhYWCBpbXBsaWVzIGNvbmZpZydzIGFyZW4ndCBjYWxsZWQgJ2RpZmYnCisgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnc2Vjb25kJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2NvbmZpZycsCisgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyA6ICdjb21wbGV0ZS1jb25maWcnLAorICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnY29uZmlnfHNob3ctc2Vjb25kJywKKyAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgOiAndmVyc2lvbicsCisgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICA6ICdjb25maWd8c2hvdy12ZXJzaW9uJywKKyAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgKCAjIDJzdCBjaG9pY2UgIDxuYW1lPiBbIHZlcnNpb24gXQorICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsJyAgICA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgIDogJ2NvbmZpZycsCisgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgOiAnY29uZmlnJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICA6ICdjb21wbGV0ZS1jb25maWcnLAorICAgICAgICAgICAgICAgICAgICAgICAnc3ludGF4LWhlbHAnIDogJ0NvbmZpZyBmaWxlIG5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgIDogJ2NvbmZpZ3xzaG93LXNpbmdsZScsCisgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgIDogJ3ZlcnNpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgOiAnY29uZmlnfHNob3ctdmVyc2lvbicsCisgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICksCisgICAgICAgICAgICkKKyAgICAgICAgfQorICAgICkKK30KKworU0hPV19DT05GSUdfRklMRV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IGEgc3BlY2lmaWMgc2F2ZWQgY29uZmlnIGZpbGUnLAorICAgICdkb2MnICAgICAgICAgIDogJ2NvbmZpZy1maWxlfHNob3cnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ2NvbmZpZy1maWxlfHNob3ctZXhhbXBsZScsCisgICAgJ29iai10eXBlJyAgICAgOiAnY29uZmlnLWZpbGUnLAorICAgICdhY3Rpb24nICAgICAgIDogJ2xlZ2FjeS1jbGknLAorICAgICduby1zdXBwb3J0ZWQnIDogRmFsc2UsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICdjb25maWctZmlsZScsCisgICAgICAgIHsKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgOiBUcnVlLAorICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICA6ICdjb25maWcnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICA6ICdjb25maWcnLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICA6ICdjb21wbGV0ZS1jb25maWcnLAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyA6ICdDb25maWcgZmlsZSBuYW1lJywKKyAgICAgICAgfQorICAgICksCit9CisKK1NIT1dfVEVDSF9TVVBQT1JUX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgdGVjaC1zdXBwb3J0LCBjb2xsZWN0IG91dHB1dCBvZiB2YXJpb3VzIGNvbW1hbmRzJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd0ZWNoLXN1cHBvcnR8c2hvdycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndGVjaC1zdXBwb3J0fHNob3ctZXhhbXBsZScsCisgICAgJ29iai10eXBlJyAgICAgOiAndGVjaC1zdXBwb3J0JywKKyAgICAnYWN0aW9uJyAgICAgICA6ICdsZWdhY3ktY2xpJywKKyAgICAnbm8tc3VwcG9ydGVkJyA6IEZhbHNlLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAgJ3RlY2gtc3VwcG9ydCcsCisgICAgKSwKK30KKworU0hPV19GTE9XX0VOVFJZX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ29iai10eXBlJyAgICAgOiAnZmxvdy1lbnRyeScsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyBjb25maWd1cmVkIHN0YXRpYyBmbG93LWVudHJpZXMnLAorICAgICdkb2MnICAgICAgICAgIDogJ2Zsb3ctZW50cnl8c2hvdycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnZmxvdy1lbnRyeXxzaG93LWV4YW1wbGUnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ2Zsb3ctZW50cnknLAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICduYW1lJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICdiYXNlLXR5cGUnICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgJ3Jlc2VydmVkJyAgICAgOiBbICdzd2l0Y2gnIF0sCisgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdzd2l0Y2gnLAorICAgICAgICAgICAgJ3RhZycgICAgICAgICAgICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgIDogJ2RwaWQnLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgICAgOiAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICdvdGhlcicgICAgICAgICAgIDogJ3N3aXRjaGVzJywKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgICAgIDogJ3N3aXRjaCBkcGlkIG9yIGFsaWFzJywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgICAgIDogJ1Nob3cgZmxvdyBlbnRyaWVzIGZvciBhIHNwZWNpZmljIHN3aXRjaCcKKyAgICAgICAgfQorCisgICAgKQorfQorCitTSE9XX0ZJUkVXQUxMX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ29iai10eXBlJyAgICAgOiAnZmlyZXdhbGwtcnVsZScsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyBmaXJld2FsbCBydWxlcyBmb3IgY29udHJvbGxlciBpbnRlcmZhY2VzJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdmaXJld2FsbC1ydWxlfHNob3cnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ2ZpcmV3YWxsLXJ1bGV8c2hvdy1leGFtcGxlJywKKyAgICAnbW9kZScgICAgICAgICA6ICdsb2dpbicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICdmaXJld2FsbC1ydWxlJywKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgJ3RhZycgICAgICAgOiAnY29udHJvbGxlcicsCisgICAgICAgICAgICAnZmllbGQnICAgICA6ICdjb250cm9sbGVyJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAnc2hvcnQtaGVscCc6ICdTaG93IHJ1bGVzIGZyb20gYSBzcGVjaWZpYyBjb250cm9sbGVyJywKKyAgICAgICAgICAgICdkb2MnICAgICAgIDogJ2ZpcmV3YWxsLXJ1bGV8c2hvdy1jb250cm9sbGVyJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgJ3RhZycgICAgICAgOiAndHlwZScsCisgICAgICAgICAgICAnZmllbGQnICAgICA6ICd0eXBlJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAnc2hvcnQtaGVscCc6ICdTaG93IHJ1bGVzIHdpdGggYSBzcGVjaWZpYyBydWxlIHR5cGUnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgOiAnZmlyZXdhbGwtcnVsZXxzaG93LXR5cGUnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgICAndGFnJyAgICAgICA6ICdudW1iZXInLAorICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnbnVtYmVyJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgIDogJ2ludGVnZXInLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnOiAnU2hvdyBydWxlcyB3aXRoIGEgc3BlY2lmaWMgcnVsZSBudW1iZXInLAorICAgICAgICAgICAgJ2RvYycgICAgICAgOiAnZmlyZXdhbGwtcnVsZXxzaG93LW51bWJlcicsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdvcHRpb25hbCcgIDogVHJ1ZSwKKyAgICAgICAgICAgICd0YWcnICAgICAgIDogJ3BvcnQnLAorICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAncG9ydCcsCisgICAgICAgICAgICAndHlwZScgICAgICA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJzogJ1Nob3cgcnVsZXMgd2l0aCBhIHNwZWNpZmljIHBvcnQgbnVtYmVyJywKKyAgICAgICAgICAgICdkb2MnICAgICAgIDogJ2ZpcmV3YWxsLXJ1bGV8c2hvdy1wb3J0JywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgJ3RhZycgICAgICAgOiAncHJvdG8nLAorICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAncHJvdG8nLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgICA6ICgndGNwJywgJ3VkcCcsICd2cnJwJyksCisgICAgICAgICAgICAnc2hvcnQtaGVscCc6ICdTaG93IHJ1bGVzIHdpdGggYSBzcGVjaWZpYyBJUCBwcm90b2NvbCcsCisgICAgICAgICAgICAnZG9jJyAgICAgICA6ICdmaXJld2FsbC1ydWxlfHNob3ctcHJvdG8nLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwnICAgOiBUcnVlLAorICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ3NyYy1pcCcsCisgICAgICAgICAgICAndGFnJyAgICAgICAgOiAnc3JjLWlwJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdpcC1hZGRyZXNzJywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTaG93IHJ1bGVzIHdpdGggdGhpcyBzcmMtaXAgY29uZmlndXJlZCcsCisgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnZmlyZXdhbGwtcnVsZXxzaG93LXNyYy1pcCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAnZmllbGQnICAgICAgOiAndnJycC1pcCcsCisgICAgICAgICAgICAndGFnJyAgICAgICAgOiAnbG9jYWwtaXAnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2lwLWFkZHJlc3MnLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1Nob3cgcnVsZXMgd2l0aCB0aGlzIHNyYy1pcCBjb25maWd1cmVkJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdmaXJld2FsbC1ydWxlfHNob3ctc3JjLWlwJywKKyAgICAgICAgfSwKKyAgICApCit9CisKK1NIT1dfVEhJU19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdvYmotdHlwZScgICAgIDogJ3RoaXMnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy0qJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IHRoZSBvYmplY3QgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IHN1Ym1vZGUnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Nob3ctdGhpcycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnc2hvdy10aGlzLWV4YW1wbGUnLAorICAgICdhY3Rpb24nICAgICAgIDogJ2xlZ2FjeS1jbGknLAorICAgICduby1zdXBwb3J0ZWQnIDogRmFsc2UsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICd0aGlzJywKKyAgICApCit9CisKK1NIT1dfU1dJVENIX0NMVVNURVJfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICA6ICdsb2dpbicsCisgICAgJ29iai10eXBlJyAgICAgOiAnc3dpdGNoLWNsdXN0ZXInLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgZ3JvdXBzIG9mIGludGVyY29ubmVjdGVkIG9wZW5mbG93IHN3aXRjaGVzJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdzd2l0Y2gtY2x1c3RlcnxzaG93JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdzd2l0Y2gtY2x1c3RlcnxzaG93LWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktcmVzdCcsCisgICAgJ3VybCcgICAgICAgICAgOiAncmVhbHRpbWVzdGF0dXMvbmV0d29yay9jbHVzdGVyLycsCisgICAgJ3Jlc3QtdHlwZScgICAgOiAnZGljdC1vZi1saXN0LW9mLWNsdXN0ZXItaWR8W3N3aXRjaGVzXScsCisgICAgJ2Zvcm1hdCcgICAgICAgOiAnc3dpdGNoLWNsdXN0ZXInLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAndG9rZW4nIDogJ3N3aXRjaC1jbHVzdGVyJywKKyAgICAgICAgfQorICAgICkKK30KKworU0hPV19FWFRFUk5BTF9QT1JUU19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdleHRlcm5hbC1wb3J0cycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyBzd2l0Y2ggcG9ydHMgY29ubmVjdGVkIHRvIGV4dGVybmFsIEwyIG5ldHdvcmtzJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdleHRlcm5hbC1wb3J0c3xzaG93JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdleHRlcm5hbC1wb3J0c3xzaG93LWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktcmVzdCcsCisgICAgJ3VybCcgICAgICAgICAgOiAncmVhbHRpbWVzdGF0dXMvbmV0d29yay9leHRlcm5hbHBvcnRzLycsCisgICAgJ3Jlc3QtdHlwZScgICAgOiAnZGljdC1vZi1saXN0LW9mLWlkfFtwb3J0c10nLAorICAgICdmb3JtYXQnICAgICAgIDogJ2V4dGVybmFsLXBvcnRzJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Rva2VuJyA6ICdleHRlcm5hbC1wb3J0cycsCisgICAgICAgIH0KKyAgICApCit9CisKKworU0hPV19WRVJTSU9OX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgY3VycmVudCBidWlsZCB2ZXJzaW9uIG51bWJlcicsCisgICAgJ2RvYycgICAgICAgICAgOiAnY29yZXx2ZXJzaW9uJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdjb3JlfHZlcnNpb24tZXhhbXBsZScsCisgICAgJ2FjdGlvbicgICAgICAgOiAnZGlzcGxheS1yZXN0JywKKyAgICAnbm8tc3VwcG9ydGVkJyA6IEZhbHNlLAorICAgICd1cmwnICAgICAgICAgIDogJ3N5c3RlbS92ZXJzaW9uJywKKyAgICAnZm9ybWF0JyAgICAgICA6ICd2ZXJzaW9uJywKKyAgICAnZGV0YWlsJyAgICAgICA6ICdkZXRhaWxzJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ3ZlcnNpb24nLAorICAgICkKK30KKworCitTSE9XX0xPR0dJTkdfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICA6ICdsb2dpbicsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyB2YXJpb3VzIGNvbnRyb2xsZXIgbG9ncycsCisgICAgJ2RvYycgICAgICAgICAgOiAnc2hvdy1sb2dnaW5nJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdzaG93LWxvZ2dpbmctZXhhbXBsZScsCisgICAgJ25vLXN1cHBvcnRlZCcgOiBGYWxzZSwKKyAgICAnb2JqLXR5cGUnICAgICA6ICdsb2dnaW5nJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ2xvZ2dpbmcnLAorICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwnICAgOiAndHJ1ZScsCisgICAgICAgICAgICAnYXJncycgICAgICAgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAndG9rZW4nIDogJ2NvbnRyb2xsZXInLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2NvbnRyb2xsZXItbm9kZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICdhbGwnLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdjb250cm9sbGVyLW5vZGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLWZyb20tYW5vdGhlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAnY29udHJvbGxlci1ub2RlfGlkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICA6ICdsb2ctbmFtZScsCisgICAgICAgICAgICAndHlwZScgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAnY29tcGxldGlvbicgOiAnY29tcGxldGUtbG9nLW5hbWVzJywKKyAgICAgICAgICAgICdkb2MnICAgICAgOiAnc2hvdy1sb2dnaW5nLSsnLAorICAgICAgICAgICAgJ2FjdGlvbicgICA6ICdkdW1wLWxvZycsCisgICAgICAgIH0sCisgICAgKSwKK30KKworU0hPV19FVkVOVF9ISVNUT1JZX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgcmVjZW50IG5ldHdvcmsgb3Igc3lzdGVtIGV2ZW50cycsCisgICAgJ2RvYycgICAgICAgICAgOiAnZXZlbnQtaGlzdG9yeXxzaG93JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdldmVudC1oaXN0b3J5fHNob3ctZXhhbXBsZScsCisgICAgJ2FjdGlvbicgICAgICAgOiAnbGVnYWN5LWNsaScsCisgICAgJ25vLXN1cHBvcnRlZCcgOiBGYWxzZSwKKyAgICAnb2JqLXR5cGUnICAgICA6ICdldmVudC1oaXN0b3J5JywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ2V2ZW50LWhpc3RvcnknLAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgIDogJ2V2ZW50JywKKyAgICAgICAgICAgICd0eXBlJyAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAjICdhdHRhY2htZW50LXBvaW50Jywgbm90IGN1cnJlbnRseSBhdmFpbGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIyAncGFja2V0LWluJywgbm90IGN1cnJlbnRseSBhdmFpbGFibGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RvcG9sb2d5LWxpbmsnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAndG9wb2xvZ3ktc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RvcG9sb2d5LWNsdXN0ZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAnZG9jJyAgICAgIDogJ3Nob3ctZXZlbnQtaGlzdG9yeS0rJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnY291bnQnLAorICAgICAgICAgICAgJ3RhZycgICAgICAgOiAnbGFzdCcsCisgICAgICAgICAgICAnYmFzZS10eXBlJyA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgICdyYW5nZScgICAgIDogKDEsMTAwMDApLAorICAgICAgICAgICAgJ2RvYycgICAgICAgOiAnc2hvdy1ldmVudC1oaXN0b3J5LWNvdW50JywKKyAgICAgICAgfQorICAgICksCit9CisKK1NIT1dfRkxPV19DQUNIRV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IHRoZSBjb250ZW50cyBvZiB0aGUgY29udHJvbGxlciBmbG93IGNhY2hlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdmbG93LWNhY2hlfHNob3cnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ2Zsb3ctY2FjaGV8c2hvdy1leGFtcGxlJywKKyAgICAnYWN0aW9uJyAgICAgICA6ICdkaXNwbGF5LXJlc3QnLAorICAgICd1cmwnICAgICAgICAgIDogJ2Zsb3ctY2FjaGUvdm5zL2FsbC9hbGwnLAorICAgICdyZXN0LXR5cGUnICAgIDogJ2RpY3Qtd2l0aC1mbG93cycsCisgICAgJ2Zvcm1hdCcgICAgICAgOiAnZmxvdy1jYWNoZScsCisgICAgJ25vLXN1cHBvcnRlZCcgOiBGYWxzZSwKKyAgICAjJ29iai10eXBlJyAgICAgOiAnZmxvdy1jYWNoZScsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICdmbG93LWNhY2hlJywKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyA6IFRydWUsCisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgIDogJ2FwcGxpY2F0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0YWcnICAgICAgOiAnYXBwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJzogJ1Nob3cgdGhlIGVudHJpZXMgYXNzb2NpYXRlZCB3aXRoIGEgc3BlY2lmaWMgYXBwbGljYXRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgOiAnZmxvdy1jYWNoZXxzaG93LWFwcGxpY2F0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsJyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICA6ICdpbnN0YW5jZScsCisgICAgICAgICAgICAgICAgICAgICAgICAndGFnJyAgICAgIDogJ2FwcC1pbnN0YW5jZScsCisgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgIDogJ2Zsb3ctY2FjaGV8c2hvdy1pbnN0YW5jZScsCisgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgIDogJ2Rpc3BsYXktcmVzdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAndXJsJyAgICAgIDogJ2Zsb3ctY2FjaGUvJShhcHBsaWNhdGlvbilzLyUoaW5zdGFuY2Upcy9hbGwnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc3QtdHlwZSc6ICdkaWN0LXdpdGgtZmxvd3MnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICA6ICdjb3VudGVycycsCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICA6ICdjb3VudGVycycsCisgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgIDogJ2Rpc3BsYXktcmVzdCcsCisgICAgICAgICAgICAgICAgICAgICd1cmwnICAgICAgIDogJ2Zsb3ctY2FjaGUvdm5zL2FsbC9jb3VudGVycycsCisgICAgICAgICAgICAgICAgICAgICdmb3JtYXQnICAgIDogJ2Zsb3ctY2FjaGUtY291bnRlcnMnLAorICAgICAgICAgICAgICAgICAgICAncmVzdC10eXBlJyA6ICdkaWN0LXdpdGgtY291bnRlcnN8c3RhdHVzJywKKyAgICAgICAgICAgICAgICAgICAgJ2RldGFpbCcgICAgOiAnZGV0YWlscycsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJzogJ1Nob3cgdGhlIGNvdW50ZXJzIGZvciB0aGUgZmxvdyBjYWNoZScsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgIDogJ2Zsb3ctY2FjaGV8c2hvdy1jb3VudGVycycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICkKKyAgICAgICAgfQorICAgICksCit9CisKK0ZFQVRVUkVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdmZWF0dXJlJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWcnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0VuYWJsZSBmZWF0dXJlcyBmb3IgY29udHJvbGxlcicsCisgICAgJ2RvYycgICAgICAgICAgOiAnZmVhdHVyZScsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnZmVhdHVyZS1leGFtcGxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorICAgICdvYmotdHlwZScgICAgIDogJ2ZlYXR1cmUnLAorICAgICdhcmdzJzogeworICAgICAgICAnY2hvaWNlcyc6ICgKKyAgICAgICAgICAgIHsgICAKKyAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgICAgICAgOiAndm5zJywKKyAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgICAgICAgOiAnRW5hYmxlIHRoZSBWTlMgZmVhdHVyZScsCisgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgICAgIDogJ2ZlYXR1cmUtdm5zJywKKyAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgICAgICAgOiAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgICAgOiAnd3JpdGUtb2JqZWN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRoZSBwcmltYXJ5IGtleSAoJ2lkJykgbXVzdCBiZSBwcmVzZW50IHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlYWQgdGhlIG9sZCByb3cgdmFsdWUsIGFuZCB1cGRhdGUgaXRlbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG90aGVyd2lzZSBhICduZXcnIHJvdyBpcyB3cml0dGVuIHdpdGggZGVmYXVsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB2YWx1ZXMKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgICAgICA6ICdmZWF0dXJlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduZXR2aXJ0LWZlYXR1cmUnICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgICAgIDogJ3dhaXQtZm9yLWNvbnRyb2xsZXInLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgJ25vLWFjdGlvbicgICAgICAgIDogKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgICAgIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgICA6ICdmZWF0dXJlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduZXR2aXJ0LWZlYXR1cmUnIDogRmFsc2UgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgICAgOiAnd2FpdC1mb3ItY29udHJvbGxlcicsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgfSwgICAgICAgICAgICAgIAorICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgICAgICAgOiAnZmxvdy1wdXNoZXInLAorICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgICAgICA6ICdFbmFibGUgdGhlIHN0YXRpYyBmbG93IHB1c2hlciBmZWF0dXJlJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICAgOiAnZmVhdHVyZS1mbG93LXB1c2hlcicsCisgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgICAgICAgIDogKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgICAgIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgICAgICAgICAgICAgICAgICA6ICdmZWF0dXJlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0aWMtZmxvdy1wdXNoZXItZmVhdHVyZScgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgICAgOiAnd2FpdC1mb3ItY29udHJvbGxlcicsCisgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICduby1hY3Rpb24nICAgICAgICA6ICgKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnICAgICA6ICd3cml0ZS1vYmplY3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZCcgICAgICAgICAgICAgICAgICAgICAgICAgOiAnZmVhdHVyZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdGljLWZsb3ctcHVzaGVyLWZlYXR1cmUnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnICAgICA6ICd3YWl0LWZvci1jb250cm9sbGVyJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICB9LCAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgICAgICAgOiAncGVyZm9ybWFuY2UtbW9uaXRvcicsCisgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgICAgIDogJ0VuYWJsZSB0aGUgcGVyZm9ybWFuY2UgbW9uaXRvciBmZWF0dXJlJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICAgOiAnZmVhdHVyZS1wZXJmb3JtYW5jZS1tb25pdG9yJywKKyAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgICAgICAgOiAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgICAgOiAnd3JpdGUtb2JqZWN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnICAgICAgICAgICAgICAgICAgICAgICAgICA6ICdmZWF0dXJlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwZXJmb3JtYW5jZS1tb25pdG9yLWZlYXR1cmUnIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgICAgIDogJ3dhaXQtZm9yLWNvbnRyb2xsZXInLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgJ25vLWFjdGlvbicgICAgICAgIDogKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgICAgIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnZmVhdHVyZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGVyZm9ybWFuY2UtbW9uaXRvci1mZWF0dXJlJyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgICAgOiAnd2FpdC1mb3ItY29udHJvbGxlcicsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgfSwgICAgICAgCisgICAgICAgICksICAgICAgIAorICAgIH0sICAgICAgCit9CisKKworU0hPV19GRUFUVVJFX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgZW5hYmxlZCBhbmQgZGlzYWJsZWQgZmVhdHVyZXMnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Nob3ctZmVhdHVyZScsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnc2hvdy1mZWF0dXJlLWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ2ZlYXR1cmUnLAorICAgICdkYXRhJyAgICAgICAgIDogeyAnaWQnIDogJ2ZlYXR1cmUnIH0sCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICdmZWF0dXJlJywKKyAgICApCit9CisKKworVkVSU0lPTl9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICd2ZXJzaW9uJywKKyAgICAnbm8tc3VwcG9ydGVkJyAgICAgICAgOiBGYWxzZSwKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnTW92ZSB0byBhIHNwZWNpZmljIHZlcnNpb24gb2YgY29tbWFuZCBzeW50YXgnLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdjb3JlfHZlcnNpb24nLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdjb3JlfHZlcnNpb24tZXhhbXBsZScsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2NvbmZpZyonLAorICAgICdhY3Rpb24nICAgICAgICAgICAgICA6ICd2ZXJzaW9uJywKKyAgICAnYXJncyc6IHsKKyAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ3ZlcnNpb24nLAorICAgICAgICAndHlwZScgICAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgJ2NvbXBsZXRpb24nIDogJ2Rlc2NyaXB0aW9uLXZlcnNpb25zJworICAgIH0KK30KKworIiIiCitDTEVBUl9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdjbGVhcnRlcm0nLAorICAgICduby1zdXBwb3J0ZWQnICAgICAgICA6IEZhbHNlLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdDbGVhcnMgYW5kIHJlc2V0cyB0aGUgdGVybWluYWwgc2NyZWVuJywKKyAgICAnZG9jJyAgICAgICAgICAgICAgICAgOiAnY2xlYXJ0ZXJtJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnY2xlYXJ0ZXJtLWV4YW1wbGUnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdsb2dpbicsCisgICAgJ2FjdGlvbicgICAgICAgICAgICAgIDogJ2NsZWFydGVybScsCisgICAgJ2FyZ3MnICAgICAgICAgICAgICAgIDoge30KK30KKyIiIgorCitDT1BZX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ2NvcHknLAorICAgICduby1zdXBwb3J0ZWQnICAgICAgICA6IEZhbHNlLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdDb3B5IGNvbmZpZ3MgdG8gb3RoZXIgY29uZmlncycsCisgICAgJ2RvYycgICAgICAgICAgICAgICAgIDogJ2NvcHl8Y29weScsCisgICAgJ2RvYy1leGFtcGxlJyAgICAgICAgIDogJ2NvcHl8Y29weS1leGFtcGxlJywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnZW5hYmxlJywKKyAgICAnYWN0aW9uJyAgICAgICAgICAgICAgOiAnbGVnYWN5LWNsaScsCisgICAgJ29iai10eXBlJyAgICAgICAgICAgIDogJ2NvcHknLAorICAgICdhcmdzJzogKAorICAgICAgICB7CisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgIDogJ3NvdXJjZScsCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgOiAnY29uZmlnJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICA6ICdjb21wbGV0ZS1jb25maWctY29weScsCisgICAgICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgOiAnc291cmNlIHNwZWNpZmllcicsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgOiAnY29weXxjb3B5LXNvdXJjZScsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdvcHRpb25hbCc6IFRydWUsCisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgIDogJ2Rlc3QnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgIDogJ2NvbmZpZycsCisgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgOiAnY29tcGxldGUtY29uZmlnLWNvcHknLAorICAgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgIDogJ2Rlc3RpbmF0aW9uIHNwZWNpZmllcicsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgOiAnY29weXxjb3B5LWRlc3QnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApCisgICAgICAgIH0sCisgICAgKQorfQorCisKK1dSSVRFX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ3dyaXRlJywKKyAgICAnbm8tc3VwcG9ydGVkJyAgICAgICAgOiBGYWxzZSwKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnV3JpdGUgY29uZmlnIHRvIG1lbW9yeSBvciB0ZXJtaW5hbCwgb3IgY2xlYXInLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdjb3JlfHdyaXRlJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnY29yZXx3cml0ZS1leGFtcGxlJywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnZW5hYmxlJywKKyAgICAnYWN0aW9uJyAgICAgICAgICAgICAgOiAnbGVnYWN5LWNsaScsCisgICAgJ29iai10eXBlJyAgICAgICAgICAgIDogJ3dyaXRlJywKKyAgICAnYXJncyc6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICA6ICdzb3VyY2UnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgICAgOiB7J3Rlcm1pbmFsJyA6ICdydW5uaW5nLWNvbmZpZyd9LAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICA6ICdTaG93IHRoZSBjdXJyZW50IGFjdGl2ZSBjb25maWd1cmF0aW9uJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgOiAnY29yZXx3cml0ZS10ZXJtaW5hbCcsCisgICAgICAgICAgICAnYWN0aW9uJyAgICAgIDogJ2xlZ2FjeS1jbGknLAorICAgICAgICAgICAgJ29iai10eXBlJyAgICA6ICdjb3B5JywKKyAgICAgICAgICAgICdkb2MtZXhhbXBsZScgOiAnd3JpdGUtc291cmNlLSsnLAorICAgICAgICB9LAorICAgICksCit9CisKK1dSSVRFX0VSQVNFX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICA6ICd3cml0ZScsCisgICAgJ25vLXN1cHBvcnRlZCcgICA6IEZhbHNlLAorICAgICdtb2RlJyAgICAgICAgICAgOiAnZW5hYmxlJywKKyAgICAnYXJncycgICAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnZXJhc2UnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogKCdlcmFzZScpLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0VyYXNlIHNldHRpbmdzIGFuZCByZXN0b3JlIHRvIGZhY3RvcnkgZGVmYXVsdHMnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2NvcmV8ZmFjdG9yeS1kZWZhdWx0JywKKyAgICAgICAgfQorICAgICksCisgICAgJ2FjdGlvbicgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnIDogJ2ZhY3RvcnktZGVmYXVsdCcsCisgICAgICAgIH0sCisgICAgKQorfQorIiIiCitFTkFCTEVfU1VCTU9ERV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdlbmFibGUnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdsb2dpbicsCisgICAgJ25vLXN1cHBvcnRlZCcgICAgICAgIDogRmFsc2UsCisgICAgJ2hlbHAnICAgICAgICAgICAgICAgIDogJ0VudGVyIGVuYWJsZSBtb2RlJywKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnRW50ZXIgZW5hYmxlIG1vZGUnLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdlbmFibGUnLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdlbmFibGUtZXhhbXBsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgICAgICAgIDogJ2NvbmZpZy1zdWJtb2RlJywKKyAgICAnb2JqLXR5cGUnICAgICAgICAgICAgOiBOb25lLAorICAgICdwYXJlbnQtZmllbGQnICAgICAgICA6IE5vbmUsCisgICAgJ3N1Ym1vZGUtbmFtZScgICAgICAgIDogJ2VuYWJsZScsCisgICAgJ2FyZ3MnICAgICAgICAgICAgICAgIDogKCksCit9CisKK0NPTkZJR1VSRV9TVUJNT0RFX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ2NvbmZpZ3VyZScsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2VuYWJsZScsCisgICAgJ25vLXN1cHBvcnRlZCcgICAgICAgIDogRmFsc2UsCisgICAgJ2hlbHAnICAgICAgICAgICAgICAgIDogJ0VudGVyIGNvbmZpZ3VyZSBtb2RlJywKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnRW50ZXIgY29uZmlndXJlIG1vZGUnLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdjb25maWcnLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdjb25maWctZXhhbXBsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgICAgICAgIDogJ2NvbmZpZy1zdWJtb2RlJywKKyAgICAnb2JqLXR5cGUnICAgICAgICAgICAgOiBOb25lLAorICAgICdwYXJlbnQtZmllbGQnICAgICAgICA6IE5vbmUsCisgICAgJ3N1Ym1vZGUtbmFtZScgICAgICAgIDogJ2NvbmZpZycsCisgICAgJ2FyZ3MnICAgICAgICAgICAgICAgIDogeworICAgICAgICAndG9rZW4nICAgICAgICAgICA6ICd0ZXJtaW5hbCcsCisgICAgICAgICdvcHRpb25hbCcgICAgICAgIDogJ3RydWUnLAorICAgIH0sCit9CisiIiIKK0RFQlVHX0NMSV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdkZWJ1ZycsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogWydsb2dpbicsICdlbmFibGUnLCAnY29uZmlnKiddLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdNYW5hZ2UgdmFyaW91cyBjbGkgZGVidWdnaW5nIGZlYXR1cmVzJywKKyAgICAnZG9jJyAgICAgICAgICAgICAgICAgOiAnZGVidWd8ZGVidWctY2xpJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnZGVidWd8ZGVidWctY2xpLWV4YW1wbGUnLAorICAgICdhcmdzJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdjbGknLAorICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdjbGktc2V0JywKKyAgICAgICAgICAgICAgICAnbm8tYWN0aW9uJyAgOiAnY2xpLXVuc2V0JywKKyAgICAgICAgICAgICAgICAndmFyaWFibGUnICAgOiAnZGVidWcnLAorICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdEaXNwbGF5IG1vcmUgZGV0YWlsZWQgaW5mb3JtYXRpb24gb24gZXJyb3JzJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnZGVidWd8Y2xpJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ2NsaS1iYWNrdHJhY2UnLAorICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdjbGktc2V0JywKKyAgICAgICAgICAgICAgICAnbm8tYWN0aW9uJyAgOiAnY2xpLXVuc2V0JywKKyAgICAgICAgICAgICAgICAndmFyaWFibGUnICAgOiAnY2xpLWJhY2t0cmFjZScsCisgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0Rpc3BsYXkgYmFja3RyYWNlIGluZm9ybWF0aW9uIG9uIGVycm9ycycsCisgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2RlYnVnfGNsaS1iYWNrdHJhY2UnLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgOiAnY2xpLWJhdGNoJywKKyAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnY2xpLXNldCcsCisgICAgICAgICAgICAgICAgJ25vLWFjdGlvbicgIDogJ2NsaS11bnNldCcsCisgICAgICAgICAgICAgICAgJ3ZhcmlhYmxlJyAgIDogJ2NsaS1iYXRjaCcsCisgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0Rpc2FibGUgYW55IHByb21wdHMgdG8gYWxsb3cgc2ltcGxlciBiYXRjaCBwcm9jZXNzaW5nJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnZGVidWd8Y2xpLWJhdGNoJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ2Rlc2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnY2xpLXNldCcsCisgICAgICAgICAgICAgICAgJ25vLWFjdGlvbicgIDogJ2NsaS11bnNldCcsCisgICAgICAgICAgICAgICAgJ3ZhcmlhYmxlJyAgIDogJ2Rlc2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnRGlzcGxheSB2ZXJib3NlIGRlYnVnIGluZm9ybWF0aW9uIHdoaWxlIHByb2Nlc3NpbmcgY29tbWFuZHMnLAorICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdkZWJ1Z3xkZXNjcmlwdGlvbicsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ3Jlc3QnLAorICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnY2xpLXNldCcsCisgICAgICAgICAgICAgICAgICAgICduby1hY3Rpb24nICA6ICdjbGktdW5zZXQnLAorICAgICAgICAgICAgICAgICAgICAndmFyaWFibGUnICAgOiAncmVzdCcsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdEaXNwbGF5IFVSTHMgb2YgYW55IGluZm9ybWF0aW9uIHJldHJpZXZlZCB2aWEgUkVTVCcsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdkZWJ1Z3xyZXN0JywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsJyAgICAgICAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdkZXRhaWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICAgICAgIDogKCdkZXRhaWxzJywgJ2JyaWVmJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgICAgOiAnRGlzcGxheSBib3RoIFVSTHMgYW5kIHJldHVybmVkIGNvbnRlbnQgZm9yIFJFU1QgcmVxdWVzdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgIDogJ2RlYnVnfGRlYnVnLWNsaS1yZXN0LWZvcm1hdCcsCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ3JlY29yZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhZycgICAgICAgICAgICAgOiAncmVjb3JkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgICAgIDogJ3JlY29yZCByZXN0IGFwaSBhY3Rpdml0aXknLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgOiAncHl0aG9uJywKKyAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnc2hlbGwtY29tbWFuZCcsCisgICAgICAgICAgICAgICAgJ2NvbW1hbmQnICAgIDogJ3B5dGhvbicsCisgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0VudGVyIGEgcHl0aG9uIHNoZWxsJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnZGVidWd8cHl0aG9uJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ2Jhc2gnLAorICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdzaGVsbC1jb21tYW5kJywKKyAgICAgICAgICAgICAgICAnY29tbWFuZCcgICAgOiAnYmFzaCcsCisgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0VudGVyIGEgYmFzaCBzaGVsbCcsCisgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2RlYnVnfGJhc2gnLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgOiAnY2Fzc2FuZHJhLWNsaScsCisgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogJ3NoZWxsLWNvbW1hbmQnLAorICAgICAgICAgICAgICAgICdjb21tYW5kJyAgICA6ICdjYXNzYW5kcmEtY2xpJywKKyAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnRW50ZXIgYSBjYXNzYW5kcmEgc2hlbGwnLAorICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdkZWJ1Z3xhc3NhbmRyYS1jbGknLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgOiAnbmV0Y29uZmlnJywKKyAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnc2hlbGwtY29tbWFuZCcsCisgICAgICAgICAgICAgICAgJ2NvbW1hbmQnICAgIDogJ25ldGNvbmZpZycsCisgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0VudGVyIGEgbmV0Y29uZmlnIHNoZWxsJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnZGVidWd8bmV0Y29uZmlnJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICAjICB0Y3BkdW1wIHJlcXVpcmVzIHRoYXQgdGhlICd0YWlsJyBvZiB0aGUgZGVidWcgY29tbWFuZCBiZSB0Y3BkdW1wIHN5bnRheCwKKyAgICAgICAgICAgICMgIGJ1dCB0aGF0IHdvdWxkIG1lYW4gZGVzY3JpYmluZyB0aGUgY29tcGxldGUgdGNwZHVtcCBzeW50YXggaGVyZSwgYW5kIHBhcnNpbmcgaXQKKyAgICAgICAgICAgICMgeworICAgICAgICAgICAgICAgICMgJ3Rva2VuJyAgIDogJ3RjcGR1bXAnLAorICAgICAgICAgICAgICAgICMgJ2FjdGlvbicgIDogJ3NoZWxsLWNvbW1hbmQnLAorICAgICAgICAgICAgICAgICMgJ2NvbW1hbmQnIDogJy9vcHQvc2RucGxhdGZvcm0vc3lzL2Jpbi9ic2NuZXRjb25maWcnLAorICAgICAgICAgICAgIyB9LAorICAgICAgICApCisgICAgfQorfQorCisKK0hBX0NPTkZJR19DTElfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAnaGEnLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdDb25maWd1cmUgaGlnaCBhdmFpbGFiaWxpdHknLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdoYXxoYS12cnJwJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnaGF8aGEtdnJycC1leGFtcGxlJywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnY29uZmlnKicsCisgICAgJ2ZlYXR1cmUnICAgICAgICAgICAgIDogJ2hhJywKKyAgICAnYXJncycgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdjbHVzdGVyLW51bWJlcicsCisgICAgICAgICAgICAgICAgJ3RhZycgICAgICAgICAgICAgOiAnY2x1c3Rlci1udW1iZXInLAorICAgICAgICAgICAgICAgICdiYXNlLXR5cGUnICAgICAgIDogJ2ludGVnZXInLAorICAgICAgICAgICAgICAgICdyYW5nZScgICAgICAgICAgIDogKDEsIDI1NSksCisgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24tdGV4dCcgOiAnMS0yNTUnLAorICAgICAgICAgICAgICAgICdzeW50YXgtaGVscCcgICAgIDogIkVudGVyIGEgc21hbGwgaW50ZWdlciAoMS0yNTUpIHRvIGRpc3Rpbmd1aXNoIGRpZmZlcmVudCBjb250cm9sbGVyIGNsdXN0ZXJzIiwKKyAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgICAgICA6ICdTZXQgdGhlIFZSUlAgY2x1c3RlciBudW1iZXInLAorICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgIDogJ2hhfGhhLWNsdXN0ZXItbnVtYmVyJywKKyAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgICAgICA6ICdnbG9iYWwtY29uZmlnJywKKyAgICAgICAgICAgICAgICAnb2JqLWlkJyAgICAgICAgICA6ICdnbG9iYWwnLAorICAgICAgICAgICAgICAgICdkZWZhdWx0LWZvci1ubycgIDogMSwKKyAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgICAgICA6ICd3cml0ZS1maWVsZHMtZXhwbGljaXQnLAorICAgICAgICAgICAgICAgICduby1hY3Rpb24nICAgICAgIDogJ3Jlc2V0LWZpZWxkcy1leHBsaWNpdCcsCisgICAgICAgICAgICB9LAorICAgICAgICApCisgICAgfQorfQorCitIQV9DTElfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAnaGEnLAorICAgICduby1zdXBwb3J0ZWQnICAgICAgICA6IEZhbHNlLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdQZXJmb3JtIGFjdGlvbnMgcmVsYXRlZCB0byBoaWdoIGF2YWlsYWJpbGl0eScsCisgICAgJ2RvYycgICAgICAgICAgICAgICAgIDogJ2hhfGhhLWZhaWxvdmVyJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnaGF8aGEtZmFpbG92ZXItZXhhbXBsZScsCisgICAgJ2ZlYXR1cmUnICAgICAgICAgICAgIDogJ2hhJywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnZW5hYmxlJywKKyAgICAnYXJncycgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAndG9rZW4nICAgOiAnZmFpbG92ZXInLAorICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJzogJ1RyaWdnZXIgYSBmYWlsdXJlIG9mIHRoZSBjdXJyZW50IG5vZGUnLAorICAgICAgICAgICAgICAgICdwYXRoJyAgICA6ICdzeXN0ZW0vaGEvZmFpbGJhY2snLAorICAgICAgICAgICAgICAgICdhY3Rpb24nICA6ICgKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnICAgOiAnY29uZmlybScsCisgICAgICAgICAgICAgICAgICAgICAgICAncHJvbXB0JyA6ICdGYWxsYmFjayB3aWxsIGNoYW5nZSB0aGUgSEEgb3BlcmF0aW5nIG1vZGUsJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZW50ZXIgInllcyIgKG9yICJ5IikgdG8gY29udGludWU6JywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3Jlc3QtcG9zdC1kYXRhJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICd0b2tlbicgOiAncHJvdmlzaW9uJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgOiAnaXAnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICA6ICdpcC1hZGRyZXNzLW5vdC1tYXNrJywKKyAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnICAgOiAnY29uZmlybScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb21wdCcgOiAiQ29uZmlybSB0byBjb250aW51ZSBhZGRpdGlvbiBvZiBuZXcgaXAsICIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbnRlciAieWVzIiAob3IgInkiKSB0byBjb250aW51ZTonLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAncmVzdC1wb3N0LWRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwYXRoJyA6ICdzeXN0ZW0vaGEvcHJvdmlzaW9uJworICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAndG9rZW4nIDogJ2RlY29tbWlzc2lvbicsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICAgICA6ICdjb250cm9sbGVyLWRlY29tbWlzc2lvbicsCisgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICAgICA6ICdjb250cm9sbGVyLW5vZGUnLAorICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnICAgICAgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgIDogJ2lkJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICAgOiAnY29tcGxldGUtYWxpYXMtY2hvaWNlJywKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgIDogJ2NvbnRyb2xsZXJ8Y29udHJvbGxlci1ub2RlLW5hbWUnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApLAorICAgICAgICApCisgICAgfQorfQorCisKK1NIT1dfSEFfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAnc2hvdycsCisgICAgJ25vLXN1cHBvcnRlZCcgICAgICAgIDogRmFsc2UsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ1Nob3cgaGlnaCBhdmFpbGFiaWxpdHkgY29uZmlndXJhdGlvbicsCisgICAgJ2RvYycgICAgICAgICAgICAgICAgIDogJ2hhfHNob3cnLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdoYXxzaG93LWV4YW1wbGUnLAorICAgICdmZWF0dXJlJyAgICAgICAgICAgICA6ICdoYScsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnb2JqLXR5cGUnICAgICAgICAgICAgOiAnZ2xvYmFsLWNvbmZpZycsCisgICAgJ2NvbW1hbmQtdHlwZScgICAgICAgIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdhY3Rpb24nICAgICAgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICAgICB9LAorICAgICAgICAjIGJvcnJvd2VkIGZyb20gY29udHJvbGxlci1ub2RlLCB3b3VsZCBiZSBiZXR0ZXIgdG8KKyAgICAgICAgIyBoYXZlIHRoaXMgaW4gY29tbW9uIGNvZGUKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnICAgICA6ICdxdWVyeS10YWJsZScsCisgICAgICAgICAgICAnb2JqLXR5cGUnIDogJ2NvbnRyb2xsZXItbm9kZScsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdwcm9jJyAgICAgICAgIDogJ2pvaW4tdGFibGUnLAorICAgICAgICAgICAgJ29iai10eXBlJyAgICAgOiAnY29udHJvbGxlci1hbGlhcycsCisgICAgICAgICAgICAna2V5JyAgICAgICAgICA6ICdjb250cm9sbGVyJywKKyAgICAgICAgICAgICdqb2luLWZpZWxkJyAgIDogJ2lkJywgIyBmaWVsZCBpbiBxdWVyaWVkIGl0ZW1zCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdwcm9jJyAgICAgICA6ICdqb2luLXJlc3QnLAorICAgICAgICAgICAgJ3VybCcgICAgICAgIDogJ3N5c3RlbS9jb250cm9sbGVyJywKKyAgICAgICAgICAgICdyZXN0LXR5cGUnICA6ICdkaWN0LXdpdGgtaWQnLAorICAgICAgICAgICAgJ2tleScgICAgICAgIDogJ2lkJywKKyAgICAgICAgICAgICdqb2luLWZpZWxkJyA6ICdpZCcsCisgICAgICAgICAgICAnYWRkLWZpZWxkJyAgOiAnbWUnLAorICAgICAgICB9LAorICAgICAgICAjIG5lZWQgYSBkZXNjcmlwdGlvbiBtZWNoYW5pc20gdG8gam9pbiBoYS1yb2xlLCB3aGljaAorICAgICAgICAjIG5lZWRzIHRvIHNlbmQgdXJscyB0byBjb250cm9sbGVyLW5vZGUgaW50ZXJmYWNlcworICAgICAgICAjIGllOiB0aGUgcmVzdCBhY3Rpb25zIGFsd2F1cyB1c2UgdGhlIGxvY2FsIGNvbnRyb2xsZXIKKyAgICAgICAgIyAodXB0aW1lIGhhcyB0aGUgc2FtZSBpc3N1ZSkKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnICAgICAgIDogJ2Rpc3BsYXknLAorICAgICAgICAgICAgJ3RpdGxlJyAgICAgIDogJ1xuQ29udHJvbGxlciBOb2Rlc1xuJywKKyAgICAgICAgICAgICdmb3JtYXQnICAgICA6ICdjb250cm9sbGVyLW5vZGUnLAorICAgICAgICB9CisgICAgKSwKKyAgICAnYXJncycgICAgICAgICAgICAgICAgOiAoCisgICAgICAgICdoYScsCisgICAgICAgIHsKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgOiBUcnVlLAorICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICA6ICdkZXRhaWwnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgICAgOiAnZGV0YWlscycsCisgICAgICAgICAgICAnZG9jJyAgICAgICAgIDogJ2Zvcm1hdHxkZXRhaWxzJywKKyAgICAgICAgfSwKKworICAgICkKK30KKworQk9PVF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgOiAnYm9vdCcsCisgICAgJ25vLXN1cHBvcnRlZCcgICA6IEZhbHNlLAorICAgICdzaG9ydC1oZWxwJyAgICAgOiAnQ29uZmlndXJlIHN5c3RlbSBib290IG9wdGlvbnMnLAorICAgICdkb2MnICAgICAgICAgICAgOiAnY29yZXxib290JywKKyAgICAnZG9jLWV4YW1wbGUnICAgIDogJ2NvcmV8Ym9vdC1leGFtcGxlJywKKyAgICAnbW9kZScgICAgICAgICAgIDogJ2VuYWJsZScsCisgICAgJ2FyZ3MnICAgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2ZhY3RvcnktZGVmYXVsdCcsCisgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAoJ2ZhY3RvcnktZGVmYXVsdCcpLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0VyYXNlIHNldHRpbmdzIGFuZCByZXN0b3JlIHRvIGZhY3RvcnkgZGVmYXVsdHMnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2NvcmV8ZmFjdG9yeS1kZWZhdWx0JywKKyAgICAgICAgfQorICAgICksCisgICAgJ2FjdGlvbicgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnIDogJ2ZhY3RvcnktZGVmYXVsdCcsCisgICAgICAgIH0sCisgICAgKQorfQorCitSRUxPQURfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgIDogJ3JlbG9hZCcsCisgICAgJ25vLXN1cHBvcnRlZCcgICA6IEZhbHNlLAorICAgICdzaG9ydC1oZWxwJyAgICAgOiAnUmVsb2FkIGFuZCByZWJvb3QnLAorICAgICdkb2MnICAgICAgICAgICAgOiAnY29yZXxyZWxvYWQnLAorICAgICdkb2MtZXhhbXBsZScgICAgOiAnY29yZXxyZWxvYWQtZXhhbXBsZScsCisgICAgJ21vZGUnICAgICAgICAgICA6ICdlbmFibGUnLAorICAgICdhcmdzJyAgICAgICAgICAgOiAoKSwKKyAgICAnb2JqLXR5cGUnICAgICAgIDogJ3JlbG9hZCcsCisgICAgJ2FjdGlvbicgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnICAgOiAnY29uZmlybScsCisgICAgICAgICAgICAncHJvbXB0JyA6ICdDb25maXJtIFJlbG9hZCAoeWVzIHRvIGNvbnRpbnVlKSAnCisgICAgICAgIH0sCisgICAgICAgICMgWFhYIHdoYXQgYWJvdXQgY2hlY2tpbmcgdG8gc2VlIGlmIHRoZSBydW5uaW5nLWNvbmZpZworICAgICAgICAjIGhhcyBiZWVuIGNvcGllZCB0byB0aGUgc3RhcnR1cCBjb25maWc/CisgICAgICAgIHsKKyAgICAgICAgICAgICdwcm9jJyA6ICdxdWVyeS1yZXN0JywKKyAgICAgICAgICAgICd1cmwnICA6ICdzeXN0ZW0vcmVsb2FkJworICAgICAgICB9LAorICAgICkKK30KKworVVBHUkFERV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgOiAndXBncmFkZScsCisgICAgJ25vLXN1cHBvcnRlZCcgICA6IEZhbHNlLAorICAgICdzaG9ydC1oZWxwJyAgICAgOiAnTWFuYWdlIHRoZSBjb250cm9sbGVyIHVwZ3JhZGUgcHJvY2VzcycsCisgICAgJ2RvYycgICAgICAgICAgICA6ICdjb3JlfHVwZ3JhZGUnLAorICAgICdkb2MtZXhhbXBsZScgICAgOiAnY29yZXx1cGdyYWRlLWV4YW1wbGUnLAorICAgICdtb2RlJyAgICAgICAgICAgOiAnZW5hYmxlJywKKyAgICAnYXJncycgICAgICAgICAgIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdmb3JjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogKCdmb3JjZScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdJZ25vcmUgdmFsaWRhdGlvbiBlcnJvcnMgYW5kIHVwZ3JhZGUgYW55d2F5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnY29yZXx1cGdyYWRlLWZvcmNlJworICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnICAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnZGV0YWlscycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogKCdkZXRhaWxzJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0Rpc3BsYXkgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGUgdXBncmFkZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2NvcmV8dXBncmFkZS1kZXRhaWxzJworICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICksCisgICAgJ29iai10eXBlJyAgICAgICA6ICd1cGdyYWRlJywKKyAgICAnYWN0aW9uJyAgICAgICAgIDogJ2NvbnRyb2xsZXItdXBncmFkZScsCit9CisKK1VQR1JBREVfQUJPUlRfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgIDogJ3VwZ3JhZGUnLAorICAgICduby1zdXBwb3J0ZWQnICAgOiBGYWxzZSwKKyAgICAnc2hvcnQtaGVscCcgICAgIDogJ01hbmFnZSB0aGUgY29udHJvbGxlciB1cGdyYWRlIHByb2Nlc3MnLAorICAgICdtb2RlJyAgICAgICAgICAgOiAnZW5hYmxlJywKKyAgICAnZG9jLWV4YW1wbGUnICAgIDogJ2NvcmV8dXBncmFkZS1hYm9ydC1leGFtcGxlJywKKyAgICAnb2JqLXR5cGUnICAgICAgIDogJ3VwZ3JhZGUnLAorICAgICdhcmdzJyAgICAgICAgICAgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdhYm9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ2Fib3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnQWJvcnQgYW4gdXBncmFkZSBhbHJlYWR5IGluc3RhbGxlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2NvcmV8dXBncmFkZS1hYm9ydCcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgJ2FjdGlvbicgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnICAgOiAnY29uZmlybScsCisgICAgICAgICAgICAncHJvbXB0JyA6ICdDb25maXJtIHRvIGFib3J0IGFuIHVwZ3JhZGUgYWxyZWFkeSBpbnN0YWxsZWQnXAorICAgICAgICAgICAgICAgICcgb250byBzZWNvbmQgcGFydGl0aW9uXG4nXAorICAgICAgICAgICAgICAgICdlbnRlciAieWVzIiAob3IgInkiKSB0byBjb250aW51ZTonLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgOiAncmVzdC1wb3N0LWRhdGEnLAorICAgICAgICAgICAgJ3BhdGgnIDogJ3N5c3RlbS91cGdyYWRlL2Fib3J0JworICAgICAgICB9LAorICAgICkKK30KKworUk9MTEJBQ0tfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgIDogJ3JvbGxiYWNrJywKKyAgICAnbm8tc3VwcG9ydGVkJyAgIDogRmFsc2UsCisgICAgJ3Nob3J0LWhlbHAnICAgICA6ICdyb2xsYmFjayBjbHVzdGVyIHRvIHNwZWNpZmllZCBjb25maWcnLAorICAgICdtb2RlJyAgICAgICAgICAgOiAnZW5hYmxlJywKKyAgICAnZG9jLWV4YW1wbGUnICAgIDogJ2NvcmV8cm9sbGJhY2stY29uZmlnLWV4YW1wbGUnLAorICAgICdvYmotdHlwZScgICAgICAgOiAncm9sbGJhY2snLAorICAgICdhcmdzJyAgICAgICAgICAgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdkaXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnc291cmNlIGRpcmVjdG9yeScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICgnaW1hZ2VzOi8vJywgJ3NhdmVkLWNvbmZpZ3M6Ly8nKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICA6ICdmaWxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnY29uZmlnIGZpbGUgbmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAnYWN0aW9uJyAgICAgICAgIDogJ2NvbnRyb2xsZXItY29uZmlnLXJvbGxiYWNrJworfQorCisKK2NvbW1hbmQuYWRkX2FjdGlvbignaW1wbGVtZW50LWNvbm5lY3QnLCBjb21tYW5kLnNkbnNoLmltcGxlbWVudF9jb25uZWN0LAorICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnZGF0YScgICAgICA6ICckZGF0YScsfX0pCisKKworQ09OTkVDVF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ2Nvbm5lY3QnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnbm8tc3VwcG9ydGVkJyA6IEZhbHNlLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0Nvbm5lY3QgdG8gYSBjb250cm9sbGVyXCdzIFJFU1QgQVBJJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdjb25uZWN0fGNvbm5lY3QnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ2Nvbm5lY3R8Y29ubmVjdC1leGFtcGxlJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdjb250cm9sbGVyLW5vZGUnLAorICAgICdhY3Rpb24nICAgICAgIDogJ2ltcGxlbWVudC1jb25uZWN0JywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2Nob2ljZXMnOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdjb250cm9sbGVyLWlkJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnb2JqLXR5cGUnLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICAgICA6ICdjb21wbGV0ZS1hbGlhcy1jaG9pY2UnLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbi10ZXh0JyA6ICdjb250cm9sbGVyIGlkIG9yIGFsaWFzJywKKyAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgICAgOiAnY29udHJvbGxlci1pZCcsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgIDogJ2Nvbm5lY3R8Y29ubmVjdC1pZCcsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ2lwLWFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdpcC1hZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgICAgOiAnY29tcGxldGUtYWxpYXMtY2hvaWNlJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24tdGV4dCcgOiAnaXAgYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgICAgIDogJ2NvbnRyb2xsZXItaWQnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICdjb25uZWN0fGNvbm5lY3QtaXAnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgIDogJ3BvcnQnLAorICAgICAgICAgICAgJ3RhZycgICAgICA6ICdwb3J0JywKKyAgICAgICAgICAgICd0eXBlJyAgICAgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAncmFuZ2UnICAgIDogKDEsNjU1MzUpLAorICAgICAgICAgICAgJ29wdGlvbmFsJyA6IFRydWUsCisgICAgICAgICAgICAnZG9jJyAgICAgIDogJ2Nvbm5lY3R8Y29ubmVjdC1wb3J0JworICAgICAgICB9LAorICAgICkKK30KKworY29tbWFuZC5hZGRfYWN0aW9uKCdpbXBsZW1lbnQtcGluZycsIGNvbW1hbmQuc2Ruc2guaW1wbGVtZW50X3BpbmcsCisgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydkYXRhJyAgICAgIDogJyRkYXRhJyx9fSkKKworUElOR19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3BpbmcnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnbm8tc3VwcG9ydGVkJyA6IEZhbHNlLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ3BpbmcgYSBzd2l0Y2ggb3IgaXAgYWRkcmVzcycsCisgICAgJ2RvYycgICAgICAgICAgOiAncGluZ3xwaW5nJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdwaW5nfHBpbmctZXhhbXBsZScsCisgICAgJ29iai10eXBlJyAgICAgOiAnc3dpdGNoZXMnLAorICAgICdhY3Rpb24nICAgICAgIDogJ2ltcGxlbWVudC1waW5nJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAnY291bnQnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAndGFnJyAgICAgICAgICAgICA6ICdjb3VudCcsCisgICAgICAgICAgICAnb3B0aW9uYWwnICAgICAgICA6IFRydWUsCisgICAgICAgICAgICAnY29tcGxldGlvbi10ZXh0JyA6ICdwaW5nIGNvdW50JywKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgIDogJ3Bpbmd8cGluZy1jb3VudCcKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAnaXAtYWRkcmVzcycsCisgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdyZXNvbHZhYmxlLWlwLWFkZHJlc3MnLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24tdGV4dCcgOiAnaXAtYWRkcmVzcyBwaW5nIHRhcmdldCcsCisgICAgICAgICAgICAnb3RoZXInICAgICAgICAgICA6ICdzd2l0Y2hlc3xkcGlkJywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgICAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRlLWFsaWFzLWNob2ljZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdkYXRhLWhhbmRsZXInICAgIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgIDogJ3R5cGVzfHJlc29sdmFibGUtaXAtYWRkcmVzcycKKyAgICAgICAgfSwKKyAgICApLAorfQorCisKK2NvbW1hbmQuYWRkX2FjdGlvbignaW1wbGVtZW50LXRyYWNlcm91dGUnLCBjb21tYW5kLnNkbnNoLmltcGxlbWVudF90cmFjZXJvdXRlLAorICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnZGF0YScgICAgICA6ICckZGF0YScsfX0pCisKK1RSQUNFUk9VVEVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICd0cmFjZXJvdXRlJywKKyAgICAnbW9kZScgICAgICAgICA6ICdsb2dpbicsCisgICAgJ25vLXN1cHBvcnRlZCcgOiBGYWxzZSwKKyAgICAnc2hvcnQtaGVscCcgICA6ICdEZXRlcm1pbmUgdGhlIEwzIHBhdGggdG8gc29tZSBkZXN0aW5hdGlvbicsCisgICAgJ2RvYycgICAgICAgICAgOiAndHJhY2Vyb3V0ZXx0cmFjZXJvdXRlJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd0cmFjZXJvdXRlfHRyYWNlcm91dGUtZXhhbXBsZScsCisgICAgJ29iai10eXBlJyAgICAgOiAnc3dpdGNoZXMnLAorICAgICdhY3Rpb24nICAgICAgIDogJ2ltcGxlbWVudC10cmFjZXJvdXRlJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAnaXAtYWRkcmVzcycsCisgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdyZXNvbHZhYmxlLWlwLWFkZHJlc3MnLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24tdGV4dCcgOiAnaXAtYWRkcmVzcyBwaW5nIHRhcmdldCcsCisgICAgICAgICAgICAnb3RoZXInICAgICAgICAgICA6ICdzd2l0Y2hlc3xkcGlkJywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgICAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRlLWFsaWFzLWNob2ljZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdkYXRhLWhhbmRsZXInICAgIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgIDogJ3R5cGVzfHJlc29sdmFibGUtaXAtYWRkcmVzcycKKyAgICAgICAgfSwKKyAgICApLAorfQorCitTRVRfQ0xJX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2V0JywKKyAgICAnbW9kZScgICAgICAgICA6ICdsb2dpbicsCisgICAgJ25vLXN1cHBvcnRlZCcgOiBGYWxzZSwKKyAgICAnc2hvcnQtaGVscCcgICA6ICdNYW5hZ2UgQ0xJIHNlc3Npb25zIHNldHRpbmdzJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdzZXR8c2V0JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdzZXR8c2V0LWV4YW1wbGUnLAorICAgICdhY3Rpb24nICAgICAgIDogJ2NsaS1zZXQnLAorICAgICd2YXJpYWJsZScgICAgIDogJ3NldCcsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICdsZW5ndGgnLAorICAgICAgICB7CisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICA6ICdsZW5ndGgnLAorICAgICAgICAgICAgICAgICAgICAnYmFzZS10eXBlJyA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAgICAgJ3JhbmdlJyAgICAgOiAoMCw1MTIpLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICA6ICdsZW5ndGgnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgOiAndGVybScsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICkKKyAgICAgICAgfSwKKyAgICApLAorfQorIyIiIgorIworIyBGT1JNQVRTIAorIworCitpbXBvcnQgZm10Y252CisKKyIiIgorR0xPQkFMX0NPTkZJR19GT1JNQVQgPSB7CisgICAgJ2dsb2JhbC1jb25maWcnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZXRhaWxzJyAgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICdjbHVzdGVyLW5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnY2x1c3Rlci1udW1iZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnaGEtZW5hYmxlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdkZWZhdWx0JyAgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICdjbHVzdGVyLW5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnY2x1c3Rlci1udW1iZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnaGEtZW5hYmxlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgfSwKKworICAgICAgICAnZmllbGRzJyAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAnY2x1c3Rlci1uYW1lJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0NsdXN0ZXIgTmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnY2x1c3Rlci1udW1iZXInICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0NsdXN0ZXIgTnVtYmVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdoYS1lbmFibGVkJyAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnSEEgRW5hYmxlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIH0sCisgICAgfSwKK30KKworCitGRUFUVVJFX0ZPUk1BVCA9IHsKKyAgICAnZmVhdHVyZScgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ25ldHZpcnQtZmVhdHVyZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdzdGF0aWMtZmxvdy1wdXNoZXItZmVhdHVyZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdwZXJmb3JtYW5jZS1tb25pdG9yLWZlYXR1cmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgIH0sCisKKyAgICAgICAgJ2ZpZWxkcycgICAgICAgICAgOiB7CisgICAgICAgICAgICAnbmV0dmlydC1mZWF0dXJlJyAgICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1ZOUyBGZWF0dXJlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX2Jvb2xlYW5fd2l0aF9lbmFibGVfZGlzYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdzdGF0aWMtZmxvdy1wdXNoZXItZmVhdHVyZScgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTdGF0aWMgRmxvdyBQdXNoZXIgRmVhdHVyZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucmVwbGFjZV9ib29sZWFuX3dpdGhfZW5hYmxlX2Rpc2FibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncGVyZm9ybWFuY2UtbW9uaXRvci1mZWF0dXJlJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUGVyZm9ybWFuY2UgTW9uaXRvcmluZyBGZWF0dXJlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX2Jvb2xlYW5fd2l0aF9lbmFibGVfZGlzYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgfQorICAgIH0sCit9CisKK0xJTktfRk9STUFUID0geworICAgICdsaW5rJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbICdJZHgnLCAnc3JjLXN3aXRjaCcsICdzcmMtcG9ydCcsICdzcmMtcG9ydC1zdGF0ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdJZHgnLCAnZHN0LXN3aXRjaCcsICdkc3QtcG9ydCcsICdkc3QtcG9ydC1zdGF0ZScsICdsaW5rLXR5cGUnIF0KKyAgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICdzcmMtcG9ydCcgICAgICAgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0X3NyY19zd2l0Y2ggfSwKKyAgICAgICAgICAgICdkc3QtcG9ydCcgICAgICAgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0X2RzdF9zd2l0Y2ggfSwKKyAgICAgICAgICAgICdzcmMtc3dpdGNoJyAgICAgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LnJlcGxhY2Vfc3dpdGNoX3dpdGhfYWxpYXMgfSwKKyAgICAgICAgICAgICdkc3Qtc3dpdGNoJyAgICAgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LnJlcGxhY2Vfc3dpdGNoX3dpdGhfYWxpYXMgfSwKKyAgICAgICAgICAgICdzcmMtcG9ydC1zdGF0ZScgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X3N0YXRlIH0sCisgICAgICAgICAgICAnZHN0LXBvcnQtc3RhdGUnIDogeyAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9zdGF0ZSB9LAorICAgICAgICAgICAgJ2xpbmstdHlwZScgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnTGluayBUeXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCitDT05GSUdfRk9STUFUID0geworICAgICdjb25maWcnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsnSWR4JywgJ25hbWUnLCAnbGVuZ3RoJywgJ3ZlcnNpb24nLCAndGltZXN0YW1wJyBdLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnbmFtZScgICAgIDogeyAncHJpbWFyeV9rZXknOiBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2ZXJzaW9uJyAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdsZW5ndGgnICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0aW1lc3RhbXAnOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0sCit9CisKKworVEVTVF9QS1RJTl9ST1VURV9GT1JNQVQgPSB7CisgICAgJ3Rlc3QtcGt0aW4tcm91dGUnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsnSWR4JywgJ2NsdXN0ZXInLCAnaG9wJywgJ2RwaWQnLCAnaW5Qb3J0JywgJ291dFBvcnQnXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ2NsdXN0ZXInIDogeyd2ZXJib3NlLW5hbWUnIDogJ0NsdXN0ZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X2NsdXN0ZXJfaWQKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaG9wJyAgICAgOiB7J3ZlcmJvc2UtbmFtZScgOiAnSG9wJworICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkcGlkJyAgICA6IHsndmVyYm9zZS1uYW1lJyA6ICdTd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgICAgOiBmbXRjbnYucHJpbnRfc3dpdGNoX2FuZF9hbGlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaW5Qb3J0JyA6ICB7J3ZlcmJvc2UtbmFtZScgOiAnSW5wdXQtSW50ZicsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgICA6IGZtdGNudi5kZWNvZGVfb3BlbmZsb3dfcG9ydF9kcGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdvdXRQb3J0JzogIHsndmVyYm9zZS1uYW1lJzogJ091dHB1dC1JbnRmJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyAgIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0X2RwaWQsCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKK30KKworCitQRVJGT1JNQU5DRV9EQVRBX0ZPUk1BVCA9IHsKKyAgICAncGVyZm9ybWFuY2UtZGF0YScgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWydCa3RObycsICdTdGFydFRpbWUnLCAnQ29tcE5hbWUnLCAnUGt0cycsICdBdmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdNaW4nLCAnTWF4JywgJ1N0ZERldiddLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnUGt0cycgICAgIDogeyd2ZXJib3NlLW5hbWUnOiAnUGt0cyonCisgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdDb21wTmFtZScgOiB7J3ZlcmJvc2UtbmFtZScgOiAnQ29tcG9uZW50JworICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnU3RhcnRUaW1lJzogeyd2ZXJib3NlLW5hbWUnIDogJ1N0YXJ0IFRpbWUnCisgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCisKK0ZMT1dfQ0FDSEVfQ09VTlRFUlNfRk9STUFUID0geworICAgICdmbG93LWNhY2hlLWNvdW50ZXJzJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGV0YWlscycgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FwcGxOYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4Rmxvd3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmVDbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbmFjdGl2ZUNudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZENudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlbENudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGl2YXRlZENudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlYWN0aXZhdGVkQ25kJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2FjaGVIaXRDbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtaXNzQ250JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmxvd01vZFJlbW92YWxNc2dMb3NzQ250JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbm90U3RvcmVkRnVsbENudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZjT2JqRnJlZWRDbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1bmtub3duT3BlckNudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zsb3dDYWNoZUFsbW9zdEZ1bGwnLAorICAgICAgICAgICAgICAgICAgICAgICAgXSwKKworICAgICAgICB9LAorCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ2FwcGxOYW1lJyAgICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0FwcGxpY2F0aW9uIG5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ21heEZsb3dzJyAgICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ01heCBmbG93IGNhY2hlIHNpemUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2FjdGl2ZUNudCcgICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0FjdGl2ZSBlbnRyaWVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdpbmFjdGl2ZUNudCcgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdJbmFjdGl2ZSBlbnRyaWVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhZGRDbnQnICAgICAgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdBZGQgb3BlcmF0aW9ucycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGVsQ250JyAgICAgICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOidEZWwgb3BlcmF0aW9ucycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYWN0aXZhdGVkQ250JyAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQWN0aXZhdGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkZWFjdGl2YXRlZENuZCcgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdEZWFjdGl2YXRlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnY2FjaGVIaXRDbnQnICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQ2FjaGUgaGl0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbWlzc0NudCcgICAgICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQ2FjaGUgbWlzc2VzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdmbG93TW9kUmVtb3ZhbE1zZ0xvc3NDbnQnIDogeyAndmVyYm9zZS1uYW1lJyA6ICdMb3N0IHJlbW92YWwgbWVzc2FnZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25vdFN0b3JlZEZ1bGxDbnQnICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ05vdCBzdG9yZWQ7IGNhY2hlIGZ1bGwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2ZjT2JqRnJlZWRDbnQnICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0ZyZWUgY291bnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3Vua25vd25PcGVyQ250JyAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1Vua25vd24gb3BlcmF0aW9ucycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZmxvd0NhY2hlQWxtb3N0RnVsbCcgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQ2FjaGUgbmVhciBmdWxsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICB9LAorfQorCisKK0ZMT1dfQ0FDSEVfRk9STUFUID0geworICAgICdmbG93LWNhY2hlJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCc6IFsnSWR4JywgJ0FwcGwnLCAnQXBwSW5zdCcsICdWTEFOJywgJ1BDUCcsICdTcmNNQUMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ0Rlc3RNQUMnLCAnRXRoZXJUeXBlJywgJ1NyY0lQQWRkcicsICdEc3RJUEFkZHInLAorICAgICAgICAgICAgICAgICAgICAgICAgJ1Byb3RvY29sJywgJ1RPUycsICdTcmNQb3J0JywgJ0RzdFBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ1NvdXJjZS1Td2l0Y2gnLCAnSW5wdXRQb3J0JywgJ1dpbGRjYXJkcycsICdBY3Rpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ0Nvb2tpZScsICdTdGF0ZScsICdUaW1lJywgJ1NDJ10sCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICdWTEFOJyAgICAgICAgICAgOiB7J2Zvcm1hdHRlcicgOiBmbXRjbnYuY29udmVydF9zaWduZWRfc2hvcnRfZm9yX3ZsYW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ1NvdXJjZS1Td2l0Y2gnICA6IHsnZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9zd2l0Y2hfYW5kX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdJbnB1dFBvcnQnICAgICAgOiB7J2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX29wZW5mbG93X3BvcnRfc291cmNlX3N3aXRjaAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnU3JjTUFDJyAgICAgICAgIDogeydmb3JtYXR0ZXInIDogZm10Y252LnByaW50X2hvc3RfYW5kX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdEZXN0TUFDJyAgICAgICAgOiB7J2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfaG9zdF9hbmRfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ0V0aGVyVHlwZScgICAgICA6IHsnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfZXRoZXJfdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnUHJvdG9jb2wnICAgICAgIDogeydmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9uZXR3b3JrX3Byb3RvY29sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdTcmNQb3J0JyAgICAgICAgOiB7J2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3NyY19wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdEc3RQb3J0JyAgICAgICAgOiB7J2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX2RzdF9wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdDb29raWUnICAgICAgICAgOiB7J2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX2Zsb3dfY29va2llCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdUaW1lJyAgICAgICAgICAgOiB7J2Zvcm1hdHRlcicgOiBmbXRjbnYudGltZXN0YW1wX3RvX2xvY2FsX3RpbWVzdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKKworRVZfSElTVF9UT1BPTE9HWV9GT1JNQVQgPSB7CisgICAgJ2V2LWhpc3QtdG9wb2xvZ3ktc3dpdGNoJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbJ0lkeCcsICdUaW1lJywgJ1N3aXRjaCcgLCAnSXBBZGRyJywgJ1BvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdTdGF0ZScsICdBY3Rpb24nLCAnUmVhc29uJyBdLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnVGltZScgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnVGltZScKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnU3dpdGNoJyAgOiB7J3ZlcmJvc2UtbmFtZScgOiAnU3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyAgICA6IGZtdGNudi5wcmludF9zd2l0Y2hfYW5kX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ1BvcnQnICAgIDogeyd2ZXJib3NlLW5hbWUnIDogJ1BvcnQnCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ0lwQWRkcicgIDogeyd2ZXJib3NlLW5hbWUnIDogJ0lwQWRkci4nCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ0FjdGlvbicgIDogeyd2ZXJib3NlLW5hbWUnIDogJ0FjdGlvbicKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnUmVhc29uJyAgOiB7J3ZlcmJvc2UtbmFtZScgOiAnUmVhc29uJworICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdTdGF0ZScgICA6IHsndmVyYm9zZS1uYW1lJyA6ICdTdGF0ZScKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKKworCitFVl9ISVNUX1RPUE9MT0dZX0NMVVNURVJfRk9STUFUID0geworICAgICdldi1oaXN0LXRvcG9sb2d5LWNsdXN0ZXInIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsnSWR4JywgJ1RpbWUnLCAnU3dpdGNoJyAsICdPbGRDbHVzdGVySWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdOZXdDbHVzdGVySWQnLCAnU3RhdGUnLCAnQWN0aW9uJywgJ1JlYXNvbicgXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ1RpbWUnICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1RpbWUnCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ1N3aXRjaCcgIDogeyd2ZXJib3NlLW5hbWUnIDogJ1N3aXRjaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgICAgOiBmbXRjbnYucHJpbnRfc3dpdGNoX2FuZF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdBY3Rpb24nICA6IHsndmVyYm9zZS1uYW1lJyA6ICdBY3Rpb24nCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ1JlYXNvbicgIDogeyd2ZXJib3NlLW5hbWUnIDogJ1JlYXNvbicKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnU3RhdGUnICAgOiB7J3ZlcmJvc2UtbmFtZScgOiAnU3RhdGUnCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCisKK0VWX0hJU1RfVE9QT0xPR1lfTElOS19GT1JNQVQgPSB7CisgICAgJ2V2LWhpc3QtdG9wb2xvZ3ktbGluaycgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWydJZHgnLCAnVGltZScsICdTb3VyY2UtU3dpdGNoJyAsICdEZXN0LVN3aXRjaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ1NyY1BvcnQnLCAnRHN0UG9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ1NyY1BvcnRTdGF0ZScsICdEc3RQb3J0U3RhdGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdTdGF0ZScsICdBY3Rpb24nLCAnUmVhc29uJyBdLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnVGltZScgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1RpbWUnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ1NvdXJjZS1Td2l0Y2gnIDogeyd2ZXJib3NlLW5hbWUnIDogJ1NvdXJjZS1Td2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInICAgIDogZm10Y252LnByaW50X3N3aXRjaF9hbmRfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnRGVzdC1Td2l0Y2gnICAgOiB7J3ZlcmJvc2UtbmFtZScgOiAnRGVzdC1Td2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyAgICA6IGZtdGNudi5wcmludF9zd2l0Y2hfYW5kX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdTcmNQb3J0JyAgICAgICA6IHsndmVyYm9zZS1uYW1lJyA6ICdTcmNQb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfb3BlbmZsb3dfcG9ydF9zb3VyY2Vfc3dpdGNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ0RzdFBvcnQnICAgICAgIDogeyd2ZXJib3NlLW5hbWUnIDogJ0RzdFBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0X2Rlc3Rfc3dpdGNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ1NyY1BvcnRTdGF0ZScgIDogeyd2ZXJib3NlLW5hbWUnIDogJ1NyY1BydFN0JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdEc3RQb3J0U3RhdGUnICA6IHsndmVyYm9zZS1uYW1lJyA6ICdEc3RQcnRTdCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnQWN0aW9uJyAgICAgICAgOiB7J3ZlcmJvc2UtbmFtZScgOiAnQWN0aW9uJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdSZWFzb24nICAgICAgICA6IHsndmVyYm9zZS1uYW1lJyA6ICdSZWFzb24nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ1N0YXRlJyAgICAgICAgIDogeyd2ZXJib3NlLW5hbWUnIDogJ1N0YXRlJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKK30KKworCitFVl9ISVNUX0FUVEFDSE1FTlRfUE9JTlRfRk9STUFUID0geworICAgICdldi1oaXN0LWF0dGFjaG1lbnQtcG9pbnQnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsnSWR4JywgJ1RpbWUnLCAnSG9zdCcsICdTd2l0Y2gnICwgJ1BvcnQnLCAnVkxBTicsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ0FjdGlvbicsICdSZWFzb24nIF0sCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICdUaW1lX25zJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnVGltZScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIydmb3JtYXR0ZXInICAgIDogZm10Y252LnRpbWVzdGFtcF9uc190b19sb2NhbF90aW1lc3RyCisgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ0hvc3QnICAgICAgIDogeyd2ZXJib3NlLW5hbWUnIDogJ0hvc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgICAgOiBmbXRjbnYucHJpbnRfaG9zdF9hbmRfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnU3dpdGNoJyAgICAgOiB7J3ZlcmJvc2UtbmFtZScgOiAnU3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInICAgIDogZm10Y252LnByaW50X3N3aXRjaF9hbmRfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnUG9ydCcgICAgICAgOiB7J3ZlcmJvc2UtbmFtZScgOiAnSUYnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdWTEFOJyAgICAgICA6IHsndmVyYm9zZS1uYW1lJyA6ICdWTEFOJworICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdBY3Rpb24nICAgICA6IHsndmVyYm9zZS1uYW1lJyA6ICdBY3Rpb24nCisgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ1JlYXNvbicgICAgIDogeyd2ZXJib3NlLW5hbWUnIDogJ1JlYXNvbicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKKworRVZfSElTVF9QQUNLRVRfSU5fRk9STUFUID0geworICAgICdldi1oaXN0LXBhY2tldC1pbicgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWydJZHgnLCAnVGltZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGFMYXllclNvdXJjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGFMYXllckRlc3RpbmF0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YUxheWVyVHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGFMYXllclZpcnR1YWxMYW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICMnZGF0YUxheWVyVmlydHVhbExhblByaW9yaXR5Q29kZVBvaW50JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnaW5wdXRTd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICdpbnB1dFBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZXR3b3JrU291cmNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAnbmV0d29ya0Rlc3RpbmF0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAjJ25ldHdvcmtTb3VyY2VNYXNrTGVuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAjJ25ldHdvcmtEZXN0aW5hdGlvbk1hc2tMZW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZXR3b3JrUHJvdG9jb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICduZXR3b3JrVHlwZU9mU2VydmljZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zcG9ydFNvdXJjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zcG9ydERlc3RpbmF0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAjJ0FjdGlvbicsICdyZWFzb24nCisgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ1RpbWUnICAgICAgICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdUaW1lJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ2Zvcm1hdHRlcicgICA6IGZtdGNudi50aW1lc3RhbXBfbnNfdG9fbG9jYWxfdGltZXN0cgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd3aWxkY2FyZHMnICAgICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnV2lsZGNhcmRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmNvbnZlcnRfaW50ZWdlcl90b19iaXRtYXNrCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2RhdGFMYXllclNvdXJjZScgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTcmMgTUFDJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfaG9zdF9hbmRfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGF0YUxheWVyRGVzdGluYXRpb24nICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0RzdCBNQUMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9ob3N0X2FuZF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkYXRhTGF5ZXJUeXBlJyAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRXRoIFR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfZXRoZXJfdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkYXRhTGF5ZXJWaXJ0dWFsTGFuJyAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVkxBTicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmNvbnZlcnRfc2lnbmVkX3Nob3J0X2Zvcl92bGFuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2RhdGFMYXllclZpcnR1YWxMYW5Qcmlvcml0eUNvZGVQb2ludCcgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1ZMQU4gUENQJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdpbnB1dFN3aXRjaCcgICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInICA6IGZtdGNudi5wcmludF9zd2l0Y2hfYW5kX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lucHV0UG9ydCcgICAgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdQb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0X2lucHV0U3dpdGNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25ldHdvcmtTb3VyY2UnICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTcmMgSVAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25ldHdvcmtEZXN0aW5hdGlvbicgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdEc3QgSVAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25ldHdvcmtTb3VyY2VNYXNrTGVuJyAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTcmMgSVAgQml0cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0d29ya0Rlc3RpbmF0aW9uTWFza0xlbicgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0RzdCBJUCBCaXRzJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICduZXR3b3JrUHJvdG9jb2wnICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUHJvdG8uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX25ldHdvcmtfcHJvdG9jb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0d29ya1R5cGVPZlNlcnZpY2UnICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1RPUycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHJhbnNwb3J0U291cmNlJyAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ053U1BvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfc3JjX3BvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHJhbnNwb3J0RGVzdGluYXRpb24nICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ053RFBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfZHN0X3BvcnQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnQWN0aW9uJyAgICAgICAgICAgICAgICAgICAgOiB7J3ZlcmJvc2UtbmFtZScgOiAnQWN0aW9uJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdSZWFzb24nICAgICAgICAgICAgICAgICAgICA6IHsndmVyYm9zZS1uYW1lJyA6ICdSZWFzb24nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorIiIiCisKK2RlZiByZWFsdGltZV9mbG93X3RpbWVvdXQoaSwgZGF0YT1Ob25lKToKKyAgICByZXR1cm4gKCclcy8lcycgJSAKKyAgICAgICAgICAgIChmbXRjbnYuY29udmVydF9zaWduZWRfc2hvcnRfdG9fdW5zaWduZWQoZGF0YVsnaGFyZFRpbWVvdXQnXSksCisgICAgICAgICAgICBmbXRjbnYuY29udmVydF9zaWduZWRfc2hvcnRfdG9fdW5zaWduZWQoZGF0YVsnaWRsZVRpbWVvdXQnXSkpKQorCitSRUFMVElNRV9GTE9XX0ZPUk1BVCA9IHsKKyAgICAncmVhbHRpbWVfZmxvdycgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAnSWR4JywgJ3N3aXRjaCcsICdjb29raWUnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2J5dGVDb3VudCcsICdwYWNrZXRDb3VudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb25zJywgJ2RhdGFMYXllclNvdXJjZScsICdkYXRhTGF5ZXJEZXN0aW5hdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdmbG93LWJyaWVmJywKKyAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICdzY29wZWQnICA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lkeCcsICdjb29raWUnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2J5dGVDb3VudCcsICdwYWNrZXRDb3VudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb25zJywgJ2RhdGFMYXllclNvdXJjZScsICdkYXRhTGF5ZXJEZXN0aW5hdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdmbG93LWJyaWVmJywKKworICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdicmllZicgICA6IFsgJ0lkeCcsICdzd2l0Y2gnLCAnY29va2llJywgJ2RhdGFMYXllclNvdXJjZScsICdkYXRhTGF5ZXJEZXN0aW5hdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICduZXR3b3JrU291cmNlJywgJ25ldHdvcmtEZXN0aW5hdGlvbicsICduZXR3b3JrUHJvdG9jb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNwb3J0U291cmNlJywgJ3RyYW5zcG9ydERlc3RpbmF0aW9uJ10sCisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbICdJZHgnLCAnc3dpdGNoJywgJ2J5dGVDb3VudCcsICdwYWNrZXRDb3VudCcsICdkdXJhdGlvblNlY29uZHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnY29va2llJywgJ2lucHV0UG9ydCcsICdkYXRhTGF5ZXJTb3VyY2UnLCAnZGF0YUxheWVyRGVzdGluYXRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YUxheWVyVHlwZScsICduZXR3b3JrU291cmNlJywgJ25ldHdvcmtEZXN0aW5hdGlvbicsICduZXR3b3JrUHJvdG9jb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNwb3J0U291cmNlJywgJ3RyYW5zcG9ydERlc3RpbmF0aW9uJ10sCisgICAgICAgICAgICAnc2NvcGVkJyAgOiBbICdJZHgnLCAnc3dpdGNoJywgJ2J5dGVDb3VudCcsICdwYWNrZXRDb3VudCcsICdkdXJhdGlvblNlY29uZHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnY29va2llJywgJ2lucHV0UG9ydCcsICdkYXRhTGF5ZXJTb3VyY2UnLCAnZGF0YUxheWVyRGVzdGluYXRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YUxheWVyVHlwZScsICduZXR3b3JrU291cmNlJywgJ25ldHdvcmtEZXN0aW5hdGlvbicsICduZXR3b3JrUHJvdG9jb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNwb3J0U291cmNlJywgJ3RyYW5zcG9ydERlc3RpbmF0aW9uJ10sCisgICAgICAgICAgICAnZGV0YWlscycgOiBbICdJZHgnLCAnc3dpdGNoJywgJ2J5dGVDb3VudCcsICdwYWNrZXRDb3VudCcsICdkdXJhdGlvblNlY29uZHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnY29va2llJywgJ2hhcmRUaW1lb3V0JywgJ2lkbGVUaW1lb3V0JywgJ3ByaW9yaXR5JywgJ3RhYmxlSWQnLCAnaW5wdXRQb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGFMYXllclNvdXJjZScsICdkYXRhTGF5ZXJEZXN0aW5hdGlvbicsICdkYXRhTGF5ZXJUeXBlJywgJ2RhdGFMYXllclZpcnR1YWxMYW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YUxheWVyVmlydHVhbExhblByaW9yaXR5Q29kZVBvaW50JywgJ25ldHdvcmtTb3VyY2UnLCAnbmV0d29ya0Rlc3RpbmF0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ25ldHdvcmtQcm90b2NvbCcsICd0cmFuc3BvcnRTb3VyY2UnLCAndHJhbnNwb3J0RGVzdGluYXRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV0d29ya1R5cGVPZlNlcnZpY2UnLCAnYWN0aW9ucyddLAorICAgICAgICAgICAgJ3Zuc19mbG93JzogWyAnSWR4JywgJ2RhdGFMYXllclNvdXJjZScsICdkYXRhTGF5ZXJEZXN0aW5hdGlvbicsICdkYXRhTGF5ZXJWaXJ0dWFsTGFuJywgJ2RhdGFMYXllclR5cGUnXSwKKyAgICAgICAgICAgICdzdW1tYXJ5JyA6IFsgJ0lkeCcsICd2bnNOYW1lJywgJ3Zuc0Zsb3dDbnQnLCAnZmxvd0VudHJ5Q250J10sCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJzogeworICAgICAgICAgICAgJ3N3aXRjaCcgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX3N3aXRjaF93aXRoX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2Zsb3ctYnJpZWYnICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnTWF0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucmVhbHRpbWVfZmxvd19icmllZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZmxvdy10aW1lb3V0JyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdIL0knLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiByZWFsdGltZV9mbG93X3RpbWVvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2J5dGVDb3VudCcgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJzogJ0J5dGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW1hcnlfa2V5JzpUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3BhY2tldENvdW50JyAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdQYWNrZXRzJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdjb29raWUnICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQXV0aG9yJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX2Zsb3dfY29va2llLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkdXJhdGlvblNlY29uZHMnICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRHVyKHMpJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkdXJhdGlvbk5hbm9zZWNvbmRzJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRHVyKG5zKScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaGFyZFRpbWVvdXQnICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0hhcmQgVGltZW91dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmNvbnZlcnRfc2lnbmVkX3Nob3J0X3RvX3Vuc2lnbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lkbGVUaW1lb3V0JyAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdJZGxlIFRpbWVvdXQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5jb252ZXJ0X3NpZ25lZF9zaG9ydF90b191bnNpZ25lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdsZW5ndGgnICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnTGVuZ3RoJworICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncHJpb3JpdHknICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1ByaW9yaXR5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuY29udmVydF9zaWduZWRfc2hvcnRfdG9fdW5zaWduZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndGFibGVJZCcgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1RhYmxlJyB9LAorICAgICAgICAgICAgJ3dpbGRjYXJkcycgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdXaWxkY2FyZHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuY29udmVydF9pbnRlZ2VyX3RvX2JpdG1hc2sKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGF0YUxheWVyU291cmNlJyAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1NyYyBNQUMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX2hvc3Rfd2l0aF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkYXRhTGF5ZXJEZXN0aW5hdGlvbicgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0RzdCBNQUMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucmVwbGFjZV9ob3N0X3dpdGhfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGF0YUxheWVyVHlwZScgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0V0aGVyIFR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfZXRoZXJfdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkYXRhTGF5ZXJWaXJ0dWFsTGFuJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVkxBTiBJRCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmNvbnZlcnRfc2lnbmVkX3Nob3J0X3RvX3Vuc2lnbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2RhdGFMYXllclZpcnR1YWxMYW5Qcmlvcml0eUNvZGVQb2ludCcgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1ZMQU4gUENQJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdpbnB1dFBvcnQnICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnSW4gUG9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfb3BlbmZsb3dfcG9ydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICduZXR3b3JrU291cmNlJyAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3JjIElQJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICduZXR3b3JrRGVzdGluYXRpb24nIDogeyAndmVyYm9zZS1uYW1lJyA6ICdEc3QgSVAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25ldHdvcmtTb3VyY2VNYXNrTGVuJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3JjIElQIEJpdHMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25ldHdvcmtEZXN0aW5hdGlvbk1hc2tMZW4nIDogeyAndmVyYm9zZS1uYW1lJyA6ICdEc3QgSVAgQml0cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0d29ya1Byb3RvY29sJyAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1Byb3RvY29sJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9uZXR3b3JrX3Byb3RvY29sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25ldHdvcmtUeXBlT2ZTZXJ2aWNlJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVE9TIEJpdHMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3RyYW5zcG9ydFNvdXJjZScgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTcmMgUG9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9zcmNfcG9ydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0cmFuc3BvcnREZXN0aW5hdGlvbicgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0RzdCBQb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9kc3RfcG9ydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhY3Rpb25zJyAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQWN0aW9ucycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfYWN0aW9ucworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bnNOYW1lJyAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVk5TJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bnNGbG93Q250JyAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRmxvd3MnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2Zsb3dFbnRyeUNudCcgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdGbG93LUVudHJpZXMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCitSRUFMVElNRV9UQUJMRV9JUF9GTE9XX0ZPUk1BVCA9IHsKKyAgICAncmVhbHRpbWVfdGFibGVfaXBfZmxvdycgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAnSWR4JywgICdjb29raWUnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2J5dGVDb3VudCcsICdwYWNrZXRDb3VudCcsJ3ByaW9yaXR5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ25ldHdvcmtEZXN0aW5hdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdmbG93LWJyaWVmJywnYWN0aW9ucycKKyAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnc2NvcGVkJyAgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICdJZHgnLCAgJ2J5dGVDb3VudCcsICdwYWNrZXRDb3VudCcsICdkdXJhdGlvblNlY29uZHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnY29va2llJywncHJpb3JpdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV0d29ya0Rlc3RpbmF0aW9uJywgJ2FjdGlvbnMnCisgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ2JyaWVmJyAgIDogWyAnSWR4JywgICdieXRlQ291bnQnLCAncGFja2V0Q291bnQnLCAnZHVyYXRpb25TZWNvbmRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nvb2tpZScsJ3ByaW9yaXR5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ25ldHdvcmtEZXN0aW5hdGlvbicsICdhY3Rpb25zJworICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgJ2J5dGVDb3VudCcsICdwYWNrZXRDb3VudCcsICdkdXJhdGlvblNlY29uZHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnY29va2llJywncHJpb3JpdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV0d29ya0Rlc3RpbmF0aW9uJywgJ2FjdGlvbnMnCisgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnc2NvcGVkJyAgOiBbICdJZHgnLCAnYnl0ZUNvdW50JywgJ3BhY2tldENvdW50JywgJ2R1cmF0aW9uU2Vjb25kcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdjb29raWUnLCdwcmlvcml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICduZXR3b3JrRGVzdGluYXRpb24nLCAnYWN0aW9ucycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdkZXRhaWxzJyA6IFsgJ0lkeCcsICdieXRlQ291bnQnLCAncGFja2V0Q291bnQnLCAnZHVyYXRpb25TZWNvbmRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nvb2tpZScsJ3ByaW9yaXR5JworICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV0d29ya0Rlc3RpbmF0aW9uJywgJ2FjdGlvbnMnCisgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAjJ3Zuc19mbG93JzogWyAnSWR4JywgJ2RhdGFMYXllclNvdXJjZScsICdkYXRhTGF5ZXJEZXN0aW5hdGlvbicsICdkYXRhTGF5ZXJWaXJ0dWFsTGFuJywgJ2RhdGFMYXllclR5cGUnXSwKKyAgICAgICAgICAgICMnc3VtbWFyeScgOiBbICdJZHgnLCAndm5zTmFtZScsICd2bnNGbG93Q250JywgJ2Zsb3dFbnRyeUNudCddLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcyc6IHsKKyAgICAgICAgICAgICdzd2l0Y2gnICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucmVwbGFjZV9zd2l0Y2hfd2l0aF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdmbG93LWJyaWVmJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ01hdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnJlYWx0aW1lX2Zsb3dfYnJpZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2Zsb3ctdGltZW91dCcgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnSC9JJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogcmVhbHRpbWVfZmxvd190aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdieXRlQ291bnQnICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZSc6ICdCeXRlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleSc6VHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdwYWNrZXRDb3VudCcgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUGFja2V0cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnY29va2llJyAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0Nvb2tpZScjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX2Zsb3dfY29va2llLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkdXJhdGlvblNlY29uZHMnICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRHVyKHMpJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkdXJhdGlvbk5hbm9zZWNvbmRzJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRHVyKG5zKScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaGFyZFRpbWVvdXQnICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0hhcmQgVGltZW91dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmNvbnZlcnRfc2lnbmVkX3Nob3J0X3RvX3Vuc2lnbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lkbGVUaW1lb3V0JyAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdJZGxlIFRpbWVvdXQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5jb252ZXJ0X3NpZ25lZF9zaG9ydF90b191bnNpZ25lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdsZW5ndGgnICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnTGVuZ3RoJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdwcmlvcml0eScgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUHJpb3JpdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5jb252ZXJ0X3NpZ25lZF9zaG9ydF90b191bnNpZ25lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0YWJsZUlkJyAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVGFibGUnIH0sCisgICAgICAgICAgICAnd2lsZGNhcmRzJyAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1dpbGRjYXJkcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5jb252ZXJ0X2ludGVnZXJfdG9fYml0bWFzaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkYXRhTGF5ZXJTb3VyY2UnICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3JjIE1BQycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnJlcGxhY2VfaG9zdF93aXRoX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2RhdGFMYXllckRlc3RpbmF0aW9uJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRHN0IE1BQycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX2hvc3Rfd2l0aF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkYXRhTGF5ZXJUeXBlJyAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRXRoZXIgVHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9ldGhlcl90eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2RhdGFMYXllclZpcnR1YWxMYW4nIDogeyAndmVyYm9zZS1uYW1lJyA6ICdWTEFOIElEJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuY29udmVydF9zaWduZWRfc2hvcnRfdG9fdW5zaWduZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGF0YUxheWVyVmlydHVhbExhblByaW9yaXR5Q29kZVBvaW50JyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVkxBTiBQQ1AnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lucHV0UG9ydCcgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdJbiBQb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25ldHdvcmtTb3VyY2UnICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTcmMgSVAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25ldHdvcmtEZXN0aW5hdGlvbicgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0RzdCBJUCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0d29ya1NvdXJjZU1hc2tMZW4nIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTcmMgSVAgQml0cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0d29ya0Rlc3RpbmF0aW9uTWFza0xlbicgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0RzdCBJUCBCaXRzJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICduZXR3b3JrUHJvdG9jb2wnICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUHJvdG9jb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX25ldHdvcmtfcHJvdG9jb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0d29ya1R5cGVPZlNlcnZpY2UnIDogeyAndmVyYm9zZS1uYW1lJyA6ICdUT1MgQml0cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHJhbnNwb3J0U291cmNlJyAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1NyYyBQb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3NyY19wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3RyYW5zcG9ydERlc3RpbmF0aW9uJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRHN0IFBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX2RzdF9wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2FjdGlvbnMnICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdJbnN0cnVjdGlvbnMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bnNOYW1lJyAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVk5TJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bnNGbG93Q250JyAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRmxvd3MnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2Zsb3dFbnRyeUNudCcgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdGbG93LUVudHJpZXMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCisKKworUkVBTFRJTUVfVEFCTEVfTVBMU19GTE9XX0ZPUk1BVCA9IHsKKyAgICAncmVhbHRpbWVfdGFibGVfbXBsc19mbG93JyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICdJZHgnLCAgICdwcmlvcml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdieXRlQ291bnQnLCAncGFja2V0Q291bnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnbXBsc0xhYmVsJywnbXBsc0JvcycsJ21wbHNUYycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdmbG93LWJyaWVmJywgJ2FjdGlvbnMnCisgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ3Njb3BlZCcgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAnSWR4JywgJ2J5dGVDb3VudCcsICdwYWNrZXRDb3VudCcsICdkdXJhdGlvblNlY29uZHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmlvcml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnbXBsc0xhYmVsJywnbXBsc0JvcycsJ21wbHNUYycsJ2FjdGlvbnMnCisgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ2JyaWVmJyAgIDogWyAnSWR4JywgJ2J5dGVDb3VudCcsICdwYWNrZXRDb3VudCcsICdkdXJhdGlvblNlY29uZHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW9yaXR5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ21wbHNMYWJlbCcsJ21wbHNCb3MnLCdtcGxzVGMnLCdhY3Rpb25zJworICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgICdieXRlQ291bnQnLCAncGFja2V0Q291bnQnLCAnZHVyYXRpb25TZWNvbmRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmlvcml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnbXBsc0xhYmVsJywnbXBsc0JvcycsJ21wbHNUYycsJ2FjdGlvbnMnCisgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnc2NvcGVkJyAgOiBbICdJZHgnLCAgJ2J5dGVDb3VudCcsICdwYWNrZXRDb3VudCcsICdkdXJhdGlvblNlY29uZHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW9yaXR5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdtcGxzTGFiZWwnLCdtcGxzQm9zJywnbXBsc1RjJywnYWN0aW9ucycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdkZXRhaWxzJyA6IFsgJ0lkeCcsICdieXRlQ291bnQnLCAncGFja2V0Q291bnQnLCAnZHVyYXRpb25TZWNvbmRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmlvcml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ21wbHNMYWJlbCcsJ21wbHNCb3MnLCdtcGxzVGMnLCdhY3Rpb25zJworICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgIyd2bnNfZmxvdyc6IFsgJ0lkeCcsICdkYXRhTGF5ZXJTb3VyY2UnLCAnZGF0YUxheWVyRGVzdGluYXRpb24nLCAnZGF0YUxheWVyVmlydHVhbExhbicsICdkYXRhTGF5ZXJUeXBlJ10sCisgICAgICAgICAgICAjJ3N1bW1hcnknIDogWyAnSWR4JywgJ3Zuc05hbWUnLCAndm5zRmxvd0NudCcsICdmbG93RW50cnlDbnQnXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnOiB7CisgICAgICAgICAgICAnc3dpdGNoJyAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1N3aXRjaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnJlcGxhY2Vfc3dpdGNoX3dpdGhfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZmxvdy1icmllZicgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdNYXRjaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZWFsdGltZV9mbG93X2JyaWVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdmbG93LXRpbWVvdXQnICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0gvSScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IHJlYWx0aW1lX2Zsb3dfdGltZW91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYnl0ZUNvdW50JyAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnOiAnQnl0ZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpbWFyeV9rZXknOlRydWUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncGFja2V0Q291bnQnICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1BhY2tldHMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2Nvb2tpZScgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdDb29raWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX2Zsb3dfY29va2llLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkdXJhdGlvblNlY29uZHMnICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRHVyKHMpJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkdXJhdGlvbk5hbm9zZWNvbmRzJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRHVyKG5zKScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaGFyZFRpbWVvdXQnICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0hhcmQgVGltZW91dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmNvbnZlcnRfc2lnbmVkX3Nob3J0X3RvX3Vuc2lnbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lkbGVUaW1lb3V0JyAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdJZGxlIFRpbWVvdXQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5jb252ZXJ0X3NpZ25lZF9zaG9ydF90b191bnNpZ25lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdsZW5ndGgnICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnTGVuZ3RoJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdwcmlvcml0eScgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUHJpb3JpdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5jb252ZXJ0X3NpZ25lZF9zaG9ydF90b191bnNpZ25lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0YWJsZUlkJyAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVGFibGUnIH0sCisgICAgICAgICAgICAnd2lsZGNhcmRzJyAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1dpbGRjYXJkcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5jb252ZXJ0X2ludGVnZXJfdG9fYml0bWFzaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkYXRhTGF5ZXJTb3VyY2UnICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3JjIE1BQycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnJlcGxhY2VfaG9zdF93aXRoX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2RhdGFMYXllckRlc3RpbmF0aW9uJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRHN0IE1BQycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX2hvc3Rfd2l0aF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkYXRhTGF5ZXJUeXBlJyAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRXRoZXIgVHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9ldGhlcl90eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2RhdGFMYXllclZpcnR1YWxMYW4nIDogeyAndmVyYm9zZS1uYW1lJyA6ICdWTEFOIElEJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuY29udmVydF9zaWduZWRfc2hvcnRfdG9fdW5zaWduZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGF0YUxheWVyVmlydHVhbExhblByaW9yaXR5Q29kZVBvaW50JyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVkxBTiBQQ1AnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lucHV0UG9ydCcgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdJbiBQb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25ldHdvcmtTb3VyY2UnICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTcmMgSVAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25ldHdvcmtEZXN0aW5hdGlvbicgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0RzdCBJUCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0d29ya1NvdXJjZU1hc2tMZW4nIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTcmMgSVAgQml0cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0d29ya0Rlc3RpbmF0aW9uTWFza0xlbicgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0RzdCBJUCBCaXRzJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICduZXR3b3JrUHJvdG9jb2wnICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUHJvdG9jb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX25ldHdvcmtfcHJvdG9jb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0d29ya1R5cGVPZlNlcnZpY2UnIDogeyAndmVyYm9zZS1uYW1lJyA6ICdUT1MgQml0cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHJhbnNwb3J0U291cmNlJyAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1NyYyBQb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3NyY19wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3RyYW5zcG9ydERlc3RpbmF0aW9uJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRHN0IFBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX2RzdF9wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2FjdGlvbnMnICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdJbnN0cnVjdGlvbnMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3Zuc05hbWUnICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdWTlMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3Zuc0Zsb3dDbnQnICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdGbG93cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZmxvd0VudHJ5Q250JyAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0Zsb3ctRW50cmllcycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbXBsc1RjJyAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ01QTFMgVEMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ21wbHNMYWJlbCcgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdNUExTIExhYmVsJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdtcGxzQm9zJyAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnTVBMUyBCT1MnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCisKKworCitSRUFMVElNRV9UQUJMRV9BQ0xfRkxPV19GT1JNQVQgPSB7CisgICAgJ3JlYWx0aW1lX3RhYmxlX2FjbF9mbG93JyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbICdJZHgnLCdieXRlQ291bnQnLCAncGFja2V0Q291bnQnLCAnZHVyYXRpb25TZWNvbmRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nvb2tpZScsJ3ByaW9yaXR5JywgJ2lucHV0UG9ydCcsICdkYXRhTGF5ZXJTb3VyY2UnLCAnZGF0YUxheWVyRGVzdGluYXRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YUxheWVyVHlwZScsICduZXR3b3JrU291cmNlJywgJ25ldHdvcmtEZXN0aW5hdGlvbicsICduZXR3b3JrUHJvdG9jb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNwb3J0U291cmNlJywgJ3RyYW5zcG9ydERlc3RpbmF0aW9uJydtcGxzTGFiZWwnLCdhY3Rpb25zJ10sCisgICAgICAgICAgICAnc2NvcGVkJyAgOiBbICdJZHgnLCdieXRlQ291bnQnLCAncGFja2V0Q291bnQnLCAnZHVyYXRpb25TZWNvbmRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nvb2tpZScsJ3ByaW9yaXR5JywgJ2lucHV0UG9ydCcsICdkYXRhTGF5ZXJTb3VyY2UnLCAnZGF0YUxheWVyRGVzdGluYXRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YUxheWVyVHlwZScsICduZXR3b3JrU291cmNlJywgJ25ldHdvcmtEZXN0aW5hdGlvbicsICduZXR3b3JrUHJvdG9jb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNwb3J0U291cmNlJywgJ3RyYW5zcG9ydERlc3RpbmF0aW9uJywnYWN0aW9ucyddLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcyc6IHsKKyAgICAgICAgICAgICdzd2l0Y2gnICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucmVwbGFjZV9zd2l0Y2hfd2l0aF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdmbG93LWJyaWVmJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ01hdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnJlYWx0aW1lX2Zsb3dfYnJpZWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2Zsb3ctdGltZW91dCcgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnSC9JJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogcmVhbHRpbWVfZmxvd190aW1lb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdieXRlQ291bnQnICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZSc6ICdCeXRlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleSc6VHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdwYWNrZXRDb3VudCcgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUGFja2V0cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnY29va2llJyAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0Nvb2tpZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfZmxvd19jb29raWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2R1cmF0aW9uU2Vjb25kcycgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdEdXIocyknCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2R1cmF0aW9uTmFub3NlY29uZHMnIDogeyAndmVyYm9zZS1uYW1lJyA6ICdEdXIobnMpJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdoYXJkVGltZW91dCcgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnSGFyZCBUaW1lb3V0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuY29udmVydF9zaWduZWRfc2hvcnRfdG9fdW5zaWduZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaWRsZVRpbWVvdXQnICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0lkbGUgVGltZW91dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmNvbnZlcnRfc2lnbmVkX3Nob3J0X3RvX3Vuc2lnbmVkCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2xlbmd0aCcgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdMZW5ndGgnCisgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdwcmlvcml0eScgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUHJpb3JpdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5jb252ZXJ0X3NpZ25lZF9zaG9ydF90b191bnNpZ25lZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0YWJsZUlkJyAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVGFibGUnIH0sCisgICAgICAgICAgICAnd2lsZGNhcmRzJyAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1dpbGRjYXJkcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5jb252ZXJ0X2ludGVnZXJfdG9fYml0bWFzaworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkYXRhTGF5ZXJTb3VyY2UnICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3JjIE1BQycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnJlcGxhY2VfaG9zdF93aXRoX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2RhdGFMYXllckRlc3RpbmF0aW9uJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRHN0IE1BQycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX2hvc3Rfd2l0aF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkYXRhTGF5ZXJUeXBlJyAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRXRoVHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9ldGhlcl90eXBlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2RhdGFMYXllclZpcnR1YWxMYW4nIDogeyAndmVyYm9zZS1uYW1lJyA6ICdWTEFOIElEJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuY29udmVydF9zaWduZWRfc2hvcnRfdG9fdW5zaWduZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGF0YUxheWVyVmlydHVhbExhblByaW9yaXR5Q29kZVBvaW50JyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVkxBTiBQQ1AnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lucHV0UG9ydCcgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdJbiBQb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25ldHdvcmtTb3VyY2UnICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTcmMgSVAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25ldHdvcmtEZXN0aW5hdGlvbicgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0RzdCBJUCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0d29ya1NvdXJjZU1hc2tMZW4nIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTcmMgSVAgQml0cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0d29ya0Rlc3RpbmF0aW9uTWFza0xlbicgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0RzdCBJUCBCaXRzJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICduZXR3b3JrUHJvdG9jb2wnICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUHJvdG9jb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX25ldHdvcmtfcHJvdG9jb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0d29ya1R5cGVPZlNlcnZpY2UnIDogeyAndmVyYm9zZS1uYW1lJyA6ICdUT1MgQml0cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHJhbnNwb3J0U291cmNlJyAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1NyYyBQb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3NyY19wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3RyYW5zcG9ydERlc3RpbmF0aW9uJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRHN0IFBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX2RzdF9wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2FjdGlvbnMnICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdJbnN0cnVjdGlvbnMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3Zuc05hbWUnICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdWTlMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3Zuc0Zsb3dDbnQnICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdGbG93cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZmxvd0VudHJ5Q250JyAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0Zsb3ctRW50cmllcycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbXBsc1RjJyAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ01QTFMgVEMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ21wbHNMYWJlbCcgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdNUExTIExBQkVMJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdtcGxzQm9zJyAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnTVBMUyBCT1MnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCisKK1JFQUxUSU1FX0FHR1JFR0FURV9GT1JNQVQgPSB7CisgICAgJ3JlYWx0aW1lX2FnZ3JlZ2F0ZScgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgJ3N3aXRjaCcsICdmbG93Q291bnQnLCAnYnl0ZUNvdW50JywgJ3BhY2tldENvdW50JyBdLAorICAgICAgICAgICAgJ3Njb3BlZCcgIDogWyAnSWR4JywgJ2Zsb3dDb3VudCcsICdieXRlQ291bnQnLCAncGFja2V0Q291bnQnIF0sCisgICAgICAgICAgICAnYnJpZWYnICAgOiBbICdJZHgnLCAnc3dpdGNoJywgJ2Zsb3dDb3VudCcsICdieXRlQ291bnQnLCAncGFja2V0Q291bnQnIF0sCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJzogeworICAgICAgICAgICAgJ3N3aXRjaCcgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX3N3aXRjaF93aXRoX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdsZW5ndGgnICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnOiAnTGVuZ3RoJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZmxvd0NvdW50JyAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdGbG93cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2J5dGVDb3VudCcgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQnl0ZXMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdwYWNrZXRDb3VudCcgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1BhY2tldHMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKK30KKworCitSRUFMVElNRV9ERVNDX0ZPUk1BVCA9IHsKKyAgICAncmVhbHRpbWVfZGVzYycgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgJ3N3aXRjaCcsICdzZXJpYWxOdW1iZXInLCAnbWFudWZhY3R1cmVyRGVzY3JpcHRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFyZHdhcmVEZXNjcmlwdGlvbicsICdkYXRhcGF0aERlc2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvZnR3YXJlRGVzY3JpcHRpb24nIF0sCisgICAgICAgICAgICAnc2NvcGVkJyAgOiBbICdJZHgnLCAnc2VyaWFsTnVtYmVyJywgJ21hbnVmYWN0dXJlckRlc2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhcmR3YXJlRGVzY3JpcHRpb24nLCAnZGF0YXBhdGhEZXNjcmlwdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdzb2Z0d2FyZURlc2NyaXB0aW9uJyBdLAorICAgICAgICAgICAgJ2JyaWVmJyAgIDogWyAnSWR4JywgJ3N3aXRjaCcsICdzZXJpYWxOdW1iZXInLCAnbWFudWZhY3R1cmVyRGVzY3JpcHRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnaGFyZHdhcmVEZXNjcmlwdGlvbicsICdkYXRhcGF0aERlc2NyaXB0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvZnR3YXJlRGVzY3JpcHRpb24nIF0sCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJzogeworICAgICAgICAgICAgJ3N3aXRjaCcgICAgICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnJlcGxhY2Vfc3dpdGNoX3dpdGhfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3NvZnR3YXJlRGVzY3JpcHRpb24nICAgICA6IHsgJ3ZlcmJvc2UtbmFtZSc6ICdTVyBWZXJzaW9uJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGF0YXBhdGhEZXNjcmlwdGlvbicgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdNb2RlbCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2hhcmR3YXJlRGVzY3JpcHRpb24nICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnTWFrZScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ21hbnVmYWN0dXJlckRlc2NyaXB0aW9uJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVmVuZG9yJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc2VyaWFsTnVtYmVyJyAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTZXJpYWwgIycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCisKK1JFQUxUSU1FX1BPUlRfRk9STUFUID0geworICAgICdyZWFsdGltZV9wb3J0JyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbICdJZHgnLCAnc3dpdGNoJywgJ3BvcnROdW1iZXInLCdwb3J0U3RhdHVzJywgJ3JlY2VpdmVCeXRlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWNlaXZlUGFja2V0cycsICdyZWNlaXZlRXJyb3JzJywgJ3JlY2VpdmVEcm9wcGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlY2VpdmVDUkNFcnJvcnMnLCAncmVjZWl2ZU92ZXJydW5FcnJvcnMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAncmVjZWl2ZUZyYW1lRXJyb3JzJywgJ3RyYW5zbWl0Qnl0ZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNtaXRQYWNrZXRzJywgJ3RyYW5zbWl0RXJyb3JzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zbWl0RHJvcHBlZCcsICdjb2xsaXNpb25zJyBdLAorICAgICAgICAgICAgJ2RldGFpbHMnIDogWyAnSWR4JywgJ3N3aXRjaCcsICdwb3J0TnVtYmVyJywncG9ydFN0YXR1cycsICdyZWNlaXZlQnl0ZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAncmVjZWl2ZVBhY2tldHMnLCAncmVjZWl2ZUVycm9ycycsICdyZWNlaXZlRHJvcHBlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWNlaXZlQ1JDRXJyb3JzJywgJ3JlY2VpdmVPdmVycnVuRXJyb3JzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlY2VpdmVGcmFtZUVycm9ycycsICd0cmFuc21pdEJ5dGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zbWl0UGFja2V0cycsICd0cmFuc21pdEVycm9ycycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd0cmFuc21pdERyb3BwZWQnLCAnY29sbGlzaW9ucycgXSwKKyAgICAgICAgICAgICdzY29wZWQnICA6IFsgJ0lkeCcsICdwb3J0TnVtYmVyJywncG9ydFN0YXR1cycsICdyZWNlaXZlQnl0ZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAncmVjZWl2ZVBhY2tldHMnLCAncmVjZWl2ZUVycm9ycycsICdyZWNlaXZlRHJvcHBlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWNlaXZlQ1JDRXJyb3JzJywgJ3JlY2VpdmVPdmVycnVuRXJyb3JzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlY2VpdmVGcmFtZUVycm9ycycsICd0cmFuc21pdEJ5dGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zbWl0UGFja2V0cycsICd0cmFuc21pdEVycm9ycycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd0cmFuc21pdERyb3BwZWQnLCAnY29sbGlzaW9ucycgXSwKKyAgICAgICAgICAgICdicmllZicgOiAgWyAnSWR4JywgJ3N3aXRjaCcsICdwb3J0TnVtYmVyJywncG9ydFN0YXR1cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlY2VpdmVCeXRlcycsICdyZWNlaXZlUGFja2V0cycsICdyZWNlaXZlRXJyb3JzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNtaXRCeXRlcycsICd0cmFuc21pdFBhY2tldHMnLCAndHJhbnNtaXRFcnJvcnMnLAorICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJzogeworICAgICAgICAgICAgJ3N3aXRjaCcgICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX3N3aXRjaF93aXRoX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdyZWNlaXZlQnl0ZXMnICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1JjdiBCeXRlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9jb3VudGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdyZWNlaXZlUGFja2V0cycgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1JjdiBQa3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9jb3VudGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncmVjZWl2ZUVycm9ycycgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdSY3YgRXJycycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9jb3VudGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdyZWNlaXZlRHJvcHBlZCcgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1JjdiBEcm9wcGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2NvdW50ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3JlY2VpdmVDUkNFcnJvcnMnICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUmN2IENSQycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfY291bnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3JlY2VpdmVPdmVycnVuRXJyb3JzJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUmN2IE92ZXJydW5zJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9jb3VudGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncmVjZWl2ZUZyYW1lRXJyb3JzJyAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdSY3YgRnJhbWUgRXJycycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9jb3VudGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0cmFuc21pdEJ5dGVzJyAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1htaXQgQnl0ZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfY291bnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHJhbnNtaXRQYWNrZXRzJyAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdYbWl0IFBrdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfY291bnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHJhbnNtaXRFcnJvcnMnICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdYbWl0IEVycnMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfY291bnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHJhbnNtaXREcm9wcGVkJyAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdYbWl0IERyb3BwZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfY291bnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnY29sbGlzaW9ucycgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdDb2xsaXNpb25zJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2NvdW50ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3BvcnROdW1iZXInICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnT0YgUG9ydCAjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfb3BlbmZsb3dfcG9ydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbGVuZ3RoJyAgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdMZW5ndGgnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdwb3J0U3RhdHVzJyAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1N0YXR1cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgfSwKK30KKworCitSRUFMVElNRV9HUk9VUF9GT1JNQVQgPSB7CisgICAgJ3JlYWx0aW1lX2dyb3VwJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbICdJZHgnLCAnZ3JvdXB0eXBlJywnZ3JvdXBpZCcgLCAndG90YWxwa3RjbnQnLCAndG90YWxieXRlY250JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2J1Y2tldHBrdGNudCcsICdidWNrZXRieXRlY250JywgCisgICAgICAgICAgICAgICAgICAgICAgICAgICdzZXRzcmNtYWMnLCAnc2V0ZHN0bWFjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3B1c2hNcGxzbGFiZWwnLCAnc2V0Qm9zJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ0NPUFlfVFRMX09VVCcsJ0RFQ19NUExTX1RUTCcsJ291dHBvcnQnLCdnb1RvR3JvdXAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdzY29wZWQnIDogWyAnSWR4JywgJ2dyb3VwdHlwZScsJ2dyb3VwaWQnLCd0b3RhbHBrdGNudCcsICd0b3RhbGJ5dGVjbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnYnVja2V0cGt0Y250JywgJ2J1Y2tldGJ5dGVjbnQnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NldHNyY21hYycsICdzZXRkc3RtYWMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAncHVzaE1wbHNMYWJlbCcsJ3NldEJvcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdDT1BZX1RUTF9PVVQnLCdERUNfTVBMU19UVEwnLCdvdXRwb3J0JywnZ29Ub0dyb3VwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnOiB7CisgICAgICAgICAgICAnZ3JvdXBpZCcgICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnR3JvdXAgSWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZ3JvdXB0eXBlJyAgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdHcm91cCBUeXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3RvdGFscGt0Y250JyAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdQa3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2NvdW50ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3RvdGFsYnl0ZWNudCcgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0J5dGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9jb3VudGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYnVja2V0cGt0Y250JyAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0J1Y2tldCBQa3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2NvdW50ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2J1Y2tldGJ5dGVjbnQnICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdCdWNrZXQgQnl0ZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfY291bnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc2V0c3JjbWFjJyAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1NldCBTcmMgTWFjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdzZXRkc3RtYWMnICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU2V0IERzdCBNYWMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3B1c2hNcGxzTGFiZWwnICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1B1c2ggTXBscycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdzZXRCb3MnICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU2V0IEJvcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdvdXRwb3J0JyAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnT3V0cG9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdnb1RvR3JvdXAnICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnR3JvdXAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdDT1BZX1RUTF9PVVQnICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQ09QWSBUVEwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdERUNfTVBMU19UVEwnICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnRGVjIE1wbHMgVFRMJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKKworUkVBTFRJTUVfVEFCTEVfRk9STUFUID0geworICAgICdyZWFsdGltZV90YWJsZScgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgJ3N3aXRjaCcsICduYW1lJywgJ3RhYmxlSWQnLCAnd2lsZGNhcmRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heGltdW1FbnRyaWVzJywgJ2xvb2t1cENvdW50JywgJ21hdGNoZWRDb3VudCcsICdhY3RpdmVDb3VudCcgXSwKKyAgICAgICAgICAgICdzY29wZWQnICA6IFsgJ0lkeCcsJ25hbWUnLCAndGFibGVJZCcsICd3aWxkY2FyZHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF4aW11bUVudHJpZXMnLCAnbG9va3VwQ291bnQnLCAnbWF0Y2hlZENvdW50JywgJ2FjdGl2ZUNvdW50JyBdLAorICAgICAgICAgICAgJ2JyaWVmJyAgIDogWyAnSWR4JywgJ3N3aXRjaCcsICduYW1lJywgJ3RhYmxlSWQnLCAnd2lsZGNhcmRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ21heGltdW1FbnRyaWVzJywgJ2xvb2t1cENvdW50JywgJ21hdGNoZWRDb3VudCcsICdhY3RpdmVDb3VudCcgXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnOiB7CisgICAgICAgICAgICAnc3dpdGNoJyAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucmVwbGFjZV9zd2l0Y2hfd2l0aF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnd2lsZGNhcmRzJyAgICAgIDogeyAndmVyYm9zZS1uYW1lJzogJ1dpbGRjYXJkcycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ21hdGNoZWRDb3VudCcgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnIyBNYXRjaGVkJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbWF4aW11bUVudHJpZXMnIDogeyAndmVyYm9zZS1uYW1lJyA6ICdNYXhpbXVtIEVudHJpZXMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICduYW1lJyAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ05hbWUnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhY3RpdmVDb3VudCcgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJyMgQWN0aXZlJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbGVuZ3RoJyAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdMZW5ndGgnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0YWJsZUlkJyAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1RhYmxlIElEJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbG9va3VwQ291bnQnICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICcjIExvb2t1cHMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKK30KKworU0hPV19UVU5ORUxfRk9STUFUID0geworICAgICdzaG93X3R1bm5lbCcgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgJ3R1bm5lbElkJywgJ3BvbGljaWVzJywndHVubmVsUGF0aCcsJ2xhYmVsU3RhY2snLF0sCisgICAgICAgICAgICAnZGV0YWlscycgOiBbICdJZHgnLCAndHVubmVsSWQnLCAncG9saWNpZXMnLCd0dW5uZWxQYXRoJywnbGFiZWxTdGFjaycsICdkcGlkR3JvdXAnLF0sCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJzogeworICAgICAgICAgICAgJ3R1bm5lbElkJyAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdJZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkcGlkR3JvdXAnICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0RwaWQoTm9kZSBJZCkvR3JvdXAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbGFiZWxTdGFjaycgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnTGFiZWwgU3RhY2sgW091dGVyLS0+SW5uZXJdJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3R1bm5lbFBhdGgnICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1R1bm5lbCBQYXRoIFtIZWFkLS0+VGFpbF0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCitTSE9XX1BPTElDWV9GT1JNQVQgPSB7CisgICAgJ3Nob3dfcG9saWN5JyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbICdJZHgnLCAncG9saWN5SWQnLCAncG9saWN5VHlwZScsJ3ByaW9yaXR5JywnZHN0TWFjQWRkcmVzcycsJ3NyY01hY0FkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2V0aGVyVHlwZScsJ2RzdElwQWRkcmVzcycgLCdpcFByb3RvY29sTnVtYmVyJywnc3JjSXBBZGRyZXNzJywgJ2RzdFRjcFBvcnROdW1iZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NyY1RjcFBvcnROdW1iZXInLCd0dW5uZWxJZCcKKyAgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2ZpZWxkcyc6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgJ3BvbGljeUlkJyAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUG9saWN5IElkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ3BvbGljeVR5cGUnICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnOiAnUG9saWN5IFR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAnZHN0TWFjQWRkcmVzcycgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZSc6ICdEc3QgTWFjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ3NyY01hY0FkZHJlc3MnICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnOiAnU3JjIE1hYycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICdkc3RJcEFkZHJlc3MnICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnOiAnRHN0IElQJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ3NyY0lwQWRkcmVzcycgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZSc6ICdTcmMgSVAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAnZHN0VGNwUG9ydE51bWJlcicgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZSc6ICdEc3QgVGNwUG9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICdzcmNUY3BQb3J0TnVtYmVyJyAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJzogJ1NyYyBUY3BQb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgJ2V0aGVyVHlwZScgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZSc6ICdFdGhlciBUeXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICAgICAgICAgICAgICAgICAnaXBQcm90b2NvbE51bWJlcicgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZSc6ICdJUCBQcm90b2NvbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICd0dW5uZWxJZCcgICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnOiAnVHVubmVsIFVzZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCisKKworUkVBTFRJTUVfRkVBVFVSRVNfRk9STUFUID0geworICAgICdyZWFsdGltZV9mZWF0dXJlcycgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgJ3N3aXRjaCcsICdwb3J0TnVtYmVyJywgJ25hbWUnLCAnaGFyZHdhcmVBZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmZpZycsICdzdGF0ZScsICdjdXJyZW50RmVhdHVyZXMnLCAnYWR2ZXJ0aXNlZEZlYXR1cmVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1cHBvcnRlZEZlYXR1cmVzJywgJ3BlZXJGZWF0dXJlcyddLAorICAgICAgICAgICAgJ3Njb3BlZCcgIDogWyAnSWR4JywgJ3BvcnROdW1iZXInLCAnbmFtZScsICdoYXJkd2FyZUFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uZmlnJywgJ3N0YXRlJywgJ2N1cnJlbnRGZWF0dXJlcycsICdhZHZlcnRpc2VkRmVhdHVyZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnc3VwcG9ydGVkRmVhdHVyZXMnLCAncGVlckZlYXR1cmVzJ10sCisgICAgICAgICAgICAnYnJpZWYnIDogWyAnSWR4JywgJ3N3aXRjaCcsICdwb3J0TnVtYmVyJywgJ25hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnY3VycmVudEZlYXR1cmVzJywgJ2FkdmVydGlzZWRGZWF0dXJlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdzdXBwb3J0ZWRGZWF0dXJlcycsICdwZWVyRmVhdHVyZXMnXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnOiB7CisgICAgICAgICAgICAnc3dpdGNoJyAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX3N3aXRjaF93aXRoX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncG9ydE51bWJlcicgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZSc6ICdPRiBQb3J0ICMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaGFyZHdhcmVBZGRyZXNzJyAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnSFcgTWFjIEFkZHJlc3MnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmFtZScgICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnTmFtZScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdjb25maWcnICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdDb25maWcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2NvbmZpZworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3N0YXRlJyAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1N0YXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF91cF9kb3duCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3RwLXN0YXRlJyAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU1RQIFN0YXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9zdHBfc3RhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdjdXJyZW50RmVhdHVyZXMnICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdDdXJyZW50JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9mZWF0dXJlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2FkdmVydGlzZWRGZWF0dXJlcycgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0FkdmVydGlzZWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2ZlYXR1cmVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3VwcG9ydGVkRmVhdHVyZXMnICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3VwcG9ydGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9mZWF0dXJlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3BlZXJGZWF0dXJlcycgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1BlZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2ZlYXR1cmVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKKworUkVBTFRJTUVfUVVFVUVfRk9STUFUID0geworICAgICdyZWFsdGltZV9xdWV1ZScgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgJ3N3aXRjaCcsICdwb3J0TnVtYmVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3F1ZXVlSWQnLCAndHJhbnNtaXRCeXRlcycsICd0cmFuc21pdFBhY2tldHMnLCAndHJhbnNtaXRFcnJvcnMnLAorICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdzY29wZWQnICA6IFsgJ0lkeCcsICdwb3J0TnVtYmVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3F1ZXVlSWQnLCAndHJhbnNtaXRCeXRlcycsICd0cmFuc21pdFBhY2tldHMnLCAndHJhbnNtaXRFcnJvcnMnLAorICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdicmllZicgICA6IFsgJ0lkeCcsICdzd2l0Y2gnLCAncG9ydE51bWJlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdxdWV1ZUlkJywgJ3RyYW5zbWl0Qnl0ZXMnLCAndHJhbnNtaXRQYWNrZXRzJywgJ3RyYW5zbWl0RXJyb3JzJywKKyAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgIH0sCisKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnc3dpdGNoJyAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX3N3aXRjaF93aXRoX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncG9ydE51bWJlcicgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZSc6ICdPRiBQb3J0ICMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncXVldWVJZCcgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUXVldWUgSUQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3RyYW5zbWl0Qnl0ZXMnICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1htaXQgQnl0ZXMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHJhbnNtaXRQYWNrZXRzJyAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnWG1pdCBQa3RzJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3RyYW5zbWl0RXJyb3JzJyAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1htaXQgRXJyb3JzJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB9CisgICAgfSwKK30KKworCisKKworUk9VVEVSX0ZPUk1BVCA9IHsKKyAgICAncm91dGVyJyAgICAgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWydJZHgnLCdkcGlkJywnbmFtZScsICdyb3V0ZXJJUCcsJ3JvdXRlck1hYycsJ2lzRWRnZVJvdXRlcicsJ25vZGVTSWQnCisgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnOiB7CisgICAgICAgICAgICAnZHBpZCcgICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUm91dGVyIERQSUQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIydmb3JtYXR0ZXInIDogZm10Y252LmVwcmludF9zd2l0Y2hfYW5kX2FsaWFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmFtZScgICAgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdSb3V0ZXIgTmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfY291bnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdyb3V0ZXJJUCcgICAgICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1JvdXRlciBJUCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncm91dGVyTWFjJyAgICAgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdSb3V0ZXIgTWFjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9jb3VudGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdpc0VkZ2VSb3V0ZXInICAgICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0VkZ2UgUm91dGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9jb3VudGVyCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdub2RlU0lkJyAgICAgICAgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdOb2RlIFNJZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfY291bnRlcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKKyNhZGphY2VuY3kKK1JPVVRFUl9BREpBQ0VOQ1lfRk9STUFUPSB7CisgICAgJ3JvdXRlcl9hZGphY2VuY3knIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsgJ0lkeCcsICdhZGphY2VuY3lTaWQnLCAncG9ydHMnXSwKKyAgICAgICAgICAgICdzY29wZWQnICA6IFsgJ0lkeCcsICdhZGphY2VuY3lTaWQnLCAncG9ydHMnXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnOiB7CisgICAgICAgICAgICAnYWRqYWNlbmN5U2lkJyAgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdBZGphY2VuY3kgU2lkKHMpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorCisgICAgICAgIH0sCisKKyAgICAgICAgfSwKK30KKworUk9VVEVSX1BPUlRfRk9STUFUID0geworICAgICdyb3V0ZXJfcG9ydCcgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgJ25hbWUnLCAncG9ydE5vJywgJ3N1Ym5ldElwJywnYWRqYWNlbmN5J10sCisgICAgICAgICAgICAnc2NvcGVkJyA6IFsgJ0lkeCcsICduYW1lJywgJ3BvcnRObycsICdzdWJuZXRJcCcsJ2FkamFjZW5jeSddLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcyc6IHsKKyAgICAgICAgICAgICdhZGphY2VuY3knICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0FkamFjZW5jeSBTaWQocyknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncG9ydE5vJyAgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdQb3J0ICMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3VibmV0SXAnICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1N1Ym5ldCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgfQorfQorCisiIiIKK1NXSVRDSF9DTFVTVEVSX0ZPUk1BVCA9IHsKKyAgICAnc3dpdGNoLWNsdXN0ZXInIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsgJ0lkeCcsICdjbHVzdGVyLWlkJywgJ3N3aXRjaGVzJywgXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ2NsdXN0ZXItaWQnIDogeyAnZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9jbHVzdGVyX2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdzd2l0Y2hlcycgICA6IHsgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfc3dpdGNoZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKK0JST0FEQ0FTVF9ET01BSU5fRk9STUFUID0geworICAgICdleHRlcm5hbC1wb3J0cycgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgJ3BvcnRzJywgXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ3BvcnRzJyAgIDogeyAndmVyYm9zZS1uYW1lJzogJ1N3aXRjaCBQb3J0cycsCisJCQkgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X3N3aXRjaF9wb3J0X2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCitURUNIX1NVUFBPUlRfQ09ORklHX0ZPUk1BVCA9IHsKKyAgICAndGVjaC1zdXBwb3J0LWNvbmZpZycgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgICAgICdkZWZhdWx0JyA6IFsgJ2NtZC10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjbWQnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgIH0sCit9CisKKworVkVSU0lPTl9GT1JNQVQgPSB7CisgICAgJ3ZlcnNpb24nIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZXRhaWxzJyA6IFsgJ2NvbnRyb2xsZXInIF0KKyAgICAgICAgfSwKKworICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICdjb250cm9sbGVyJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnQ29udHJvbGxlciB2ZXJzaW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCit9CisKKworU1lTVEVNX0NMT0NLX0ZPUk1BVCA9IHsKKyAgICAnc3lzdGVtLWNsb2NrJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbICd0aW1lJyBdLAorICAgICAgICAgICAgJ2RldGFpbHMnIDogWyAndGltZScsICd0eicgXQorICAgICAgICB9LAorCisgICAgICAgICdmaWVsZHMnICAgICAgICAgIDogeworICAgICAgICAgICAgJ3RpbWUnIDogeworICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0eicgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVGltZXpvbmUnCisgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB9LAorICAgIH0sCit9CisiIiIKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvY29yZV9tb2RlbC5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvY29yZV9tb2RlbC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNWQyMjg4Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9jb3JlX21vZGVsLnB5CkBAIC0wLDAgKzEsMjcgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitpbXBvcnQgY29tbWFuZAorCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfc3VibW9kZSgndGVjaC1zdXBwb3J0LWNvbmZpZycpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfc3VibW9kZSgnaW1hZ2UtZHJvcC11c2VyJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9zdWJtb2RlKCd2bGFuLWNvbmZpZycpCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCd0YWcnLCAnbmFtZScpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgndGFnJywgJ25hbWVzcGFjZScpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgndGFnJywgJ3ZhbHVlJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCd0YWcnLCAncGVyc2lzdCcpCisKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvZmxvd19lbnRyeS5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvZmxvd19lbnRyeS5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMzIxM2FiCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9mbG93X2VudHJ5LnB5CkBAIC0wLDAgKzEsNDkzIEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworaW1wb3J0IGZtdGNudgorCisiIiIKK0ZMT1dfRU5UUllfU1VCTU9ERV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgIDogJ2Zsb3ctZW50cnknLAorICAgICdtb2RlJyAgICAgICAgICAgIDogJ2NvbmZpZy1zd2l0Y2gqJywKKyAgICAnY29tbWFuZC10eXBlJyAgICA6ICdjb25maWctc3VibW9kZScsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgOiAnRW50ZXIgZmxvdy1lbnRyeSBzdWJtb2RlLCBjb25maWd1cmUgc2luZ2xlIHN0YXRpYyBmbG93IGVudHJ5JywKKyAgICAnZG9jJyAgICAgICAgICAgICA6ICdmbG93LWVudHJ5fGZsb3ctZW50cnknLAorICAgICdkb2MtZXhhbXBsZScgICAgIDogJ2Zsb3ctZW50cnl8Zmxvdy1lbnRyeS1leGFtcGxlJywKKyAgICAnb2JqLXR5cGUnICAgICAgICA6ICdmbG93LWVudHJ5JywKKyAgICAncGFyZW50LWZpZWxkJyAgICA6ICdzd2l0Y2gnLAorICAgICdzdWJtb2RlLW5hbWUnICAgIDogJ2NvbmZpZy1zd2l0Y2gtZmxvdy1lbnRyeScsCisgICAgJ2FyZ3MnIDogeworICAgICAgICAnZmllbGQnICAgICAgIDogJ25hbWUnLAorICAgICAgICAndHlwZScgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAnY29tcGxldGlvbicgIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICdzY29wZWQnICAgICAgOiBUcnVlLAorICAgICAgICAnc3ludGF4LWhlbHAnIDogJ0VudGVyIG5hbWUgZm9yIGEgZmxvdy1lbnRyeScsCisgICAgfSwKK30KKworIyBvYmpfdHlwZSBmbG93LWVudHJ5IGZpZWxkIGhhcmQtdGltZW91dAorRkxPV19FTlRSWV9FRElUX0hBUkRfVElNRU9VVF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdoYXJkLXRpbWVvdXQnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdjb25maWctc3dpdGNoLWZsb3ctZW50cnknLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdTZXQgaGFyZC10aW1lb3V0IGZvciB0aGlzIGZsb3cnLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdmbG93LWVudHJ5fGhhcmQtdGltZW91dCcsCisgICAgJ2RvYy1leGFtcGxlJyAgICAgICAgIDogJ2Zsb3ctZW50cnl8aGFyZC10aW1lb3V0LWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnICAgICAgICA6ICdjb25maWcnLAorICAgICdhcmdzJyAgICAgICAgICAgICAgICA6ICgKKyAgICAgICAgIHsKKyAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnaGFyZC10aW1lb3V0JywKKyAgICAgICAgICAgICAnYmFzZS10eXBlJyAgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAgJ3JhbmdlJyAgICAgIDogKDAsIDY1NTM1KSwKKyAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnZmxvdy1lbnRyeXxoYXJkLXRpbWVvdXQtZmllbGQnLAorICAgICAgICAgfQorICAgICkKK30KKworCisjIG9ial90eXBlIGZsb3ctZW50cnkgZmllbGQgaWRsZS10aW1lb3V0CitGTE9XX0VOVFJZX0VESVRfSURMRV9USU1FT1VUX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ2lkbGUtdGltZW91dCcsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2NvbmZpZy1zd2l0Y2gtZmxvdy1lbnRyeScsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ1NldCBpZGxlLXRpbW91dCBmb3IgdGhpcyBmbG93JywKKyAgICAnZG9jJyAgICAgICAgICAgICAgICAgOiAnZmxvdy1lbnRyeXxpZGxlLXRpbWVvdXQnLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdmbG93LWVudHJ5fGlkbGUtdGltZW91dC1leGFtcGxlJywKKyAgICAnY29tbWFuZC10eXBlJyAgICAgICAgOiAnY29uZmlnJywKKyAgICAnYXJncycgICAgICAgICAgICAgICAgOiAoCisgICAgICAgICB7CisgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2lkbGUtdGltZW91dCcsCisgICAgICAgICAgICAgJ2Jhc2UtdHlwZScgIDogJ2ludGVnZXInLAorICAgICAgICAgICAgICdyYW5nZScgICAgICA6ICgwLCA2NTUzNSksCisgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2Zsb3ctZW50cnl8aWRsZS10aW1lb3V0LWZpZWxkJywKKyAgICAgICAgIH0KKyAgICApCit9CisKKworIyBvYmpfdHlwZSBmbG93LWVudHJ5IGZpZWxkIGFjdGlvbnMKK0ZMT1dfRU5UUllfRURJVF9BQ1RJT05TX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ2FjdGlvbnMnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdjb25maWctc3dpdGNoLWZsb3ctZW50cnknLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdTZXQgYWN0aW9ucyBmb3IgdGhpcyBmbG93JywKKyAgICAnZG9jJyAgICAgICAgICAgICAgICAgOiAnZmxvdy1lbnRyeXxhY3Rpb25zJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnZmxvdy1lbnRyeXxhY3Rpb25zLWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnICAgICAgICA6ICdjb25maWcnLAorICAgICdhcmdzJyAgICAgICAgICAgICAgICA6ICgKKyAgICAgICAgIHsKKyAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnYWN0aW9ucycsCisgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAgJ2NvbXBsZXRpb24nIDogJ2NvbXBsZXRlLXN0YXRpY2Zsb3ctYWN0aW9ucycsCisgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2Zsb3ctZW50cnl8YWN0aW9uLWZpZWxkJywKKyAgICAgICAgIH0KKyAgICApCit9CisKKworIyBvYmpfdHlwZSBmbG93LWVudHJ5IGZpZWxkIGFjdGl2ZQorRkxPV19FTlRSWV9FRElUX0FDVElWRV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdhY3RpdmUnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdjb25maWctc3dpdGNoLWZsb3ctZW50cnknLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdTZXQgZmxvdyBhY3RpdmUnLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdmbG93LWVudHJ5fGFjdGl2ZScsCisgICAgJ2RvYy1leGFtcGxlJyAgICAgICAgIDogJ2Zsb3ctZW50cnl8YWN0aXZlLWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnICAgICAgICA6ICdjb25maWcnLAorICAgICdhcmdzJyAgICAgICAgICAgICAgICA6ICgKKyAgICAgICAgIHsKKyAgICAgICAgICAgICAjIHRoaXMgc2hvdWxkIGJlIGltcHJvdmVkLCBidXQgdGhpcyBpcyB0aGUgb2xkIHN5bnRheAorICAgICAgICAgICAgICdmaWVsZCcgIDogJ2FjdGl2ZScsCisgICAgICAgICAgICAgJ3R5cGUnICAgOiAnZW51bScsCisgICAgICAgICAgICAgJ3ZhbHVlcycgOiAoJ1RydWUnLCAnRmFsc2UnKSwKKyAgICAgICAgICAgICAnZG9jJyAgICA6ICdmbG93LWVudHJ5fGFjdGl2ZS1maWVsZC0rJywKKyAgICAgICAgICAgICAjIFhYWCByb3RoIC0tIGRvZXMgbm90IHNob3cgdXAgaW4gd2lraQorICAgICAgICAgfQorICAgICkKK30KKworCisjIG9ial90eXBlIGZsb3ctZW50cnkgZmllbGQgcHJpb3JpdHkKK0ZMT1dfRU5UUllfRURJVF9QUklPUklUWV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdwcmlvcml0eScsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2NvbmZpZy1zd2l0Y2gtZmxvdy1lbnRyeScsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ1NldCBwcmlvcml0eSBvZiB0aGUgZmxvdycsCisgICAgJ2RvYycgICAgICAgICAgICAgICAgIDogJ2Zsb3ctZW50cnl8cHJpb3JpdHknLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdmbG93LWVudHJ5fHByaW9yaXR5LWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnICAgICAgICA6ICdjb25maWcnLAorICAgICdhcmdzJyAgICAgICAgICAgICAgICA6ICgKKyAgICAgICAgIHsKKyAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAncHJpb3JpdHknLAorICAgICAgICAgICAgICdiYXNlLXR5cGUnICA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgICAncmFuZ2UnICAgICAgOiAoMCwgNjU1MzUpLAorICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdmbG93LWVudHJ5fHByaW9yaXR5LWZpZWxkJywKKyAgICAgICAgIH0KKyAgICApCit9CisKKworIyBvYmpfdHlwZSBmbG93LWVudHJ5IGZpZWxkIGNvb2tpZQorRkxPV19FTlRSWV9FRElUX0NPT0tJRV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdjb29raWUnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdjb25maWctc3dpdGNoLWZsb3ctZW50cnknLAorICAgICdjb21tYW5kLXR5cGUnICAgICAgICA6ICdjb25maWcnLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdBc3NvY2lhdGUgY29va2llIGZvciBmbG93JywKKyAgICAnZG9jJyAgICAgICAgICAgICAgICAgOiAnZmxvdy1lbnRyeXxjb29raWUnLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdmbG93LWVudHJ5fGNvb2tpZS1leGFtcGxlJywKKyAgICAnYXJncycgICAgICAgICAgICAgICAgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyA6ICdjb29raWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorfQorCisKKyMgb2JqX3R5cGUgZmxvdy1lbnRyeSBmaWVsZCB3aWxkY2FyZHMKK0ZMT1dfRU5UUllfRURJVF9XSUxEQ0FSRFNfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAnd2lsZGNhcmRzJywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnY29uZmlnLXN3aXRjaC1mbG93LWVudHJ5JywKKyAgICAnY29tbWFuZC10eXBlJyAgICAgICAgOiAnY29uZmlnJywKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnQ29uZmlndXJlIHdpbGRjYXJkcyBmb3IgZmxvdycsCisgICAgJ2RvYycgICAgICAgICAgICAgICAgIDogJ2Zsb3ctZW50cnl8d2lsZGNhcmRzJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnZmxvdy1lbnRyeXx3aWxkY2FyZHMtZXhhbXBsZScsCisgICAgJ2FyZ3MnICAgICAgICAgICAgICAgIDogKAorICAgICAgICAgeworICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICd3aWxkY2FyZHMnLAorICAgICAgICAgICAgICdiYXNlLXR5cGUnICA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgICAncmFuZ2UnICAgICAgOiAoMCwgMioqMzItMSksCisgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2Zsb3ctZW50cnl8d2lsZGNhcmRzLWZpZWxkJywKKyAgICAgICAgIH0KKyAgICApCit9CisKKworIyBvYmpfdHlwZSBmbG93LWVudHJ5IGZpZWxkIGluZ3Jlc3MtcG9ydAorRkxPV19FTlRSWV9FRElUX0lOR1JFU1NfUE9SVF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdpbmdyZXNzLXBvcnQnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdjb25maWctc3dpdGNoLWZsb3ctZW50cnknLAorICAgICdjb21tYW5kLXR5cGUnICAgICAgICA6ICdjb25maWcnLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdDb25maWd1cmUgd2lsZGNhcmRzIGZvciBmbG93JywKKyAgICAnZG9jJyAgICAgICAgICAgICAgICAgOiAnZmxvdy1lbnRyeXxpbmdyZXNzLXBvcnQnLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdmbG93LWVudHJ5fGluZ3Jlc3MtcG9ydC1leGFtcGxlJywKKyAgICAnYXJncycgICAgICAgICAgICAgICAgOiAoCisgICAgICAgICB7CisgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2luZ3Jlc3MtcG9ydCcsCisgICAgICAgICAgICAgJ2Jhc2UtdHlwZScgIDogJ2ludGVnZXInLAorICAgICAgICAgICAgICdyYW5nZScgICAgICA6ICgwLCAyKioxNi0xKSwgIyBPRiBWMiB1c2VzIDJeMzIgZm9yIHBvcnRzCisgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2Zsb3ctZW50cnl8aW5ncmVzcy1wb3J0LWZpZWxkJywKKyAgICAgICAgIH0KKyAgICApCit9CisKKworIyBvYmpfdHlwZSBmbG93LWVudHJ5IGZpZWxkIHNyYy1tYWMKK0ZMT1dfRU5UUllfRURJVF9TUkNfTUFDX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ3NyYy1tYWMnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdjb25maWctc3dpdGNoLWZsb3ctZW50cnknLAorICAgICdjb21tYW5kLXR5cGUnICAgICAgICA6ICdjb25maWcnLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdDb25maWd1cmUgc3JjLW1hYyBtYXRjaCBmb3IgZmxvdycsCisgICAgJ2RvYycgICAgICAgICAgICAgICAgIDogJ2Zsb3ctZW50cnl8c3JjLW1hYycsCisgICAgJ2RvYy1leGFtcGxlJyAgICAgICAgIDogJ2Zsb3ctZW50cnl8c3JjLW1hYy1leGFtcGxlJywKKyAgICAnb2JqLXR5cGUnICAgICAgICAgICAgOiAnZmxvdy1lbnRyeScsCisgICAgJ2FyZ3MnICAgICAgICAgICAgICAgIDogKAorICAgICAgICAgeworICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3NyYy1tYWMnLAorICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2hvc3QnLAorICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLWFsaWFzLWNob2ljZScsCisgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAnaG9zdHxtYWMnLAorICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICdmbG93LWVudHJ5fHNyYy1tYWMtZmllbGQnLAorICAgICAgICAgfQorICAgICkKK30KKworCisjIG9ial90eXBlIGZsb3ctZW50cnkgZmllbGQgZHN0LW1hYworRkxPV19FTlRSWV9FRElUX0RTVF9NQUNfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAnZHN0LW1hYycsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2NvbmZpZy1zd2l0Y2gtZmxvdy1lbnRyeScsCisgICAgJ2NvbW1hbmQtdHlwZScgICAgICAgIDogJ2NvbmZpZycsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ0NvbmZpZ3VyZSBkc3QtbWFjIG1hdGNoIGZvciBmbG93JywKKyAgICAnZG9jJyAgICAgICAgICAgICAgICAgOiAnZmxvdy1lbnRyeXxkc3QtbWFjJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnZmxvdy1lbnRyeXxkc3QtbWFjLWV4YW1wbGUnLAorICAgICdvYmotdHlwZScgICAgICAgICAgICA6ICdmbG93LWVudHJ5JywKKyAgICAnYXJncycgICAgICAgICAgICAgICAgOiAoCisgICAgICAgICB7CisgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnZHN0LW1hYycsCisgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaG9zdCcsCisgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtYWxpYXMtY2hvaWNlJywKKyAgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICdob3N0fG1hYycsCisgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ2Zsb3ctZW50cnl8ZHN0LW1hYy1maWVsZCcsCisgICAgICAgICB9CisgICAgKQorfQorCisKKyMgb2JqX3R5cGUgZmxvdy1lbnRyeSBmaWVsZCB2bGFuLWlkCitGTE9XX0VOVFJZX0VESVRfVkxBTl9JRF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICd2bGFuLWlkJywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnY29uZmlnLXN3aXRjaC1mbG93LWVudHJ5JywKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnQ29uZmlndXJlIHZsYW4taWQgbWF0Y2ggZm9yIGZsb3cnLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdmbG93LWVudHJ5fHZsYW4taWQnLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdmbG93LWVudHJ5fHZsYW4taWQtZXhhbXBsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgICAgICAgIDogJ2NvbmZpZycsCisgICAgJ2FyZ3MnICAgICAgICAgICAgICAgIDogKAorICAgICAgICAgeworICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICd2bGFuLWlkJywKKyAgICAgICAgICAgICAnYmFzZS10eXBlJyAgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAgJ3JhbmdlJyAgICAgIDogKDAsIDIqKjEyLTEpLAorICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdmbG93LWVudHJ5fHZsYW4taWQtZmllbGQnLAorICAgICAgICAgfQorICAgICkKK30KKworCisjIG9ial90eXBlIGZsb3ctZW50cnkgZmllbGQgdmxhbi1wcmlvcml0eQorRkxPV19FTlRSWV9FRElUX1ZMQU5fUFJJT1JJVFlfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAndmxhbi1wcmlvcml0eScsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2NvbmZpZy1zd2l0Y2gtZmxvdy1lbnRyeScsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ0NvbmZpZ3VyZSB2bGFuLXByaW9yaXR5IG1hdGNoIGZvciBmbG93JywKKyAgICAnZG9jJyAgICAgICAgICAgICAgICAgOiAnZmxvdy1lbnRyeXx2bGFuLXByaW9yaXR5JywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnZmxvdy1lbnRyeXx2bGFuLXByaW9yaXR5LWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnICAgICAgICA6ICdjb25maWcnLAorICAgICdhcmdzJyAgICAgICAgICAgICAgICA6ICgKKyAgICAgICAgIHsKKyAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAndmxhbi1wcmlvcml0eScsCisgICAgICAgICAgICAgJ2Jhc2UtdHlwZScgIDogJ2ludGVnZXInLAorICAgICAgICAgICAgICdyYW5nZScgICAgICA6ICgwLDcpLAorICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdmbG93LWVudHJ5fHZsYW4tcHJpb3JpdHktZmllbGQnLAorICAgICAgICAgfQorICAgICkKK30KKworCisjIG9ial90eXBlIGZsb3ctZW50cnkgZmllbGQgZXRoZXItdHlwZQorRkxPV19FTlRSWV9FRElUX0VUSEVSX1RZUEVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAnZXRoZXItdHlwZScsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2NvbmZpZy1zd2l0Y2gtZmxvdy1lbnRyeScsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ0NvbmZpZ3VyZSBldGhlci10eXBlIG1hdGNoIGZvciBmbG93JywKKyAgICAnZG9jJyAgICAgICAgICAgICAgICAgOiAnZmxvdy1lbnRyeXxldGhlci10eXBlJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnZmxvdy1lbnRyeXxldGhlci10eXBlLWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnICAgICAgICA6ICdjb25maWcnLAorICAgICdhcmdzJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ2V0aGVyLXR5cGUnLAorICAgICAgICAgICAgICAgICdiYXNlLXR5cGUnICAgICAgIDogJ2hleC1vci1kZWNpbWFsLWludGVnZXInLAorICAgICAgICAgICAgICAgICdyYW5nZScgICAgICAgICAgIDogKDE1MzYsNjU1MzYpLAorICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInICAgIDogJ2hleC10by1pbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICdmbG93LWVudHJ5fGV0aGVyLXR5cGUtZmllbGQnLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ2V0aGVyLXR5cGUnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgICAgICAgICA6IGZtdGNudi5ldGhlcl90eXBlX3RvX251bWJlcl9kaWN0LAorICAgICAgICAgICAgfSwKKyAgICAgICAgKSwKKyAgICB9LAorfQorCisKKyMgb2JqX3R5cGUgZmxvdy1lbnRyeSBmaWVsZCB0b3MtYml0cworRkxPV19FTlRSWV9FRElUX1RPU19CSVRTX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ3Rvcy1iaXRzJywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnY29uZmlnLXN3aXRjaC1mbG93LWVudHJ5JywKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnQ29uZmlndXJlIGV0aGVyLXR5cGUgbWF0Y2ggZm9yIGZsb3cnLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdmbG93LWVudHJ5fHRvcy1iaXRzJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnZmxvdy1lbnRyeXx0b3MtYml0cy1leGFtcGxlJywKKyAgICAnY29tbWFuZC10eXBlJyAgICAgICAgOiAnY29uZmlnJywKKyAgICAnYXJncycgICAgICAgICAgICAgICAgOiAoCisgICAgICAgICB7CisgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ3Rvcy1iaXRzJywKKyAgICAgICAgICAgICAnYmFzZS10eXBlJyAgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAgJ3JhbmdlJyAgICAgIDogKDAsNjMpLAorICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdmbG93LWVudHJ5fHRvcy1iaXRzLWZpZWxkJywKKyAgICAgICAgIH0KKyAgICApCit9CisKKworIyBvYmpfdHlwZSBmbG93LWVudHJ5IGZpZWxkIHByb3RvY29sCitGTE9XX0VOVFJZX0VESVRfUFJPVE9DT0xfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAncHJvdG9jb2wnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdjb25maWctc3dpdGNoLWZsb3ctZW50cnknLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdDb25maWd1cmUgZXRoZXItdHlwZSBtYXRjaCBmb3IgZmxvdycsCisgICAgJ2RvYycgICAgICAgICAgICAgICAgIDogJ2Zsb3ctZW50cnl8cHJvdG9jb2wnLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdmbG93LWVudHJ5fHByb3RvY29sLWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnICAgICAgICA6ICdjb25maWcnLAorICAgICdhcmdzJyAgICAgICAgICAgICAgICA6ICgKKyAgICAgICAgIHsKKyAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAncHJvdG9jb2wnLAorICAgICAgICAgICAgICdiYXNlLXR5cGUnICA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgICAncmFuZ2UnICAgICAgOiAoMCwyNTUpLAorICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdmbG93LWVudHJ5fHByb3RvY29sLWZpZWxkJywKKyAgICAgICAgIH0KKyAgICApCit9CisKKworIyBvYmpfdHlwZSBmbG93LWVudHJ5IGZpZWxkIHNyYy1pcAorRkxPV19FTlRSWV9FRElUX1NSQ19JUF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdzcmMtaXAnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdjb25maWctc3dpdGNoLWZsb3ctZW50cnknLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdDb25maWd1cmUgc3JjLWlwIG1hdGNoIGZvciBmbG93JywKKyAgICAnZG9jJyAgICAgICAgICAgICAgICAgOiAnZmxvdy1lbnRyeXxzcmMtaXAnLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdmbG93LWVudHJ5fHNyYy1pcC1leGFtcGxlJywKKyAgICAnY29tbWFuZC10eXBlJyAgICAgICAgOiAnY29uZmlnJywKKyAgICAnYXJncycgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdzcmMtaXAnLAorICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgICAgIDogJ2lwLWFkZHJlc3MnLAorICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgIDogJ2lwLWFkZHJlc3MnLAorICAgICAgICAgICAgICAgICdjb21wbGV0aW9uLXRleHQnIDogJ3NyYy1pcC1hZGRyZXNzJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICdmbG93LWVudHJ5fHNyYy1pcC1maWVsZCcsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ3NyYy1pcCcsCisgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgICAgOiAnY2lkci1yYW5nZScsCisgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnY2lkci1yYW5nZScsCisgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24tdGV4dCcgOiAnc3JjLWlwLWNpZHItcmFuZ2UnLAorICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgIDogJ2Zsb3ctZW50cnl8c3JjLWlwLWZpZWxkJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICkKKyAgICB9LAorfQorCisKKyMgb2JqX3R5cGUgZmxvdy1lbnRyeSBmaWVsZCBkc3QtaXAKK0ZMT1dfRU5UUllfRURJVF9EU1RfSVBfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAnZHN0LWlwJywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnY29uZmlnLXN3aXRjaC1mbG93LWVudHJ5JywKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnQ29uZmlndXJlIGRzdC1pcCBtYXRjaCBmb3IgZmxvdycsCisgICAgJ2RvYycgICAgICAgICAgICAgICAgIDogJ2Zsb3ctZW50cnl8ZHN0LWlwJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnZmxvdy1lbnRyeXxkc3QtaXAtZXhhbXBsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgICAgICAgIDogJ2NvbmZpZycsCisgICAgJ2FyZ3MnICAgICAgICAgICAgICAgIDogeworICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAnZHN0LWlwJywKKyAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgICAgICA6ICdpcC1hZGRyZXNzJywKKyAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdpcC1hZGRyZXNzJywKKyAgICAgICAgICAgICAgICAnY29tcGxldGlvbi10ZXh0JyA6ICdkc3QtaXAtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgICAgOiAnZmxvdy1lbnRyeXxkc3QtaXAtZmllbGQnLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdkc3QtaXAnLAorICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgICAgIDogJ2NpZHItcmFuZ2UnLAorICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgIDogJ2NpZHItcmFuZ2UnLAorICAgICAgICAgICAgICAgICdjb21wbGV0aW9uLXRleHQnIDogJ2RzdC1pcC1jaWRyLXJhbmdlJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICdmbG93LWVudHJ5fGRzdC1pcC1maWVsZCcsCisgICAgICAgICAgICB9LAorICAgICAgICApCisgICAgfSwKK30KKworCisjIG9ial90eXBlIGZsb3ctZW50cnkgZmllbGQgc3JjLXBvcnQKK0ZMT1dfRU5UUllfRURJVF9TUkNfUE9SVF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdzcmMtcG9ydCcsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2NvbmZpZy1zd2l0Y2gtZmxvdy1lbnRyeScsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ0NvbmZpZ3VyZSBzcmMtcG9ydCBtYXRjaCBmb3IgZmxvdycsCisgICAgJ2RvYycgICAgICAgICAgICAgICAgIDogJ2Zsb3ctZW50cnl8c3JjLXBvcnQnLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdmbG93LWVudHJ5fHNyYy1wb3J0LWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnICAgICAgICA6ICdjb25maWcnLAorICAgICdhcmdzJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3NyYy1wb3J0JywKKyAgICAgICAgICAgICAgICAnYmFzZS10eXBlJyAgICA6ICdoZXgtb3ItZGVjaW1hbC1pbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAncmFuZ2UnICAgICAgICA6ICgwLDY1NTM1KSwKKyAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdoZXgtdG8taW50ZWdlcicsCisgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAnZmxvdy1lbnRyeXxzcmMtcG9ydC1maWVsZCcsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICAgOiAnc3JjLXBvcnQnLAorICAgICAgICAgICAgICAgICd0eXBlJyAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICA6IGZtdGNudi50Y3BfbmFtZV90b19udW1iZXJfZGljdCwKKyAgICAgICAgICAgIH0sCisgICAgICAgICkKKyAgICB9Cit9CisKKworIyBvYmpfdHlwZSBmbG93LWVudHJ5IGZpZWxkIGRzdC1wb3J0CitGTE9XX0VOVFJZX0VESVRfRFNUX1BPUlRfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAnZHN0LXBvcnQnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdjb25maWctc3dpdGNoLWZsb3ctZW50cnknLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdDb25maWd1cmUgZHN0LXBvcnQgbWF0Y2ggZm9yIGZsb3cnLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdmbG93LWVudHJ5fGRzdC1wb3J0JywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnZmxvdy1lbnRyeXxkc3QtcG9ydC1leGFtcGxlJywKKyAgICAnY29tbWFuZC10eXBlJyAgICAgICAgOiAnY29uZmlnJywKKyAgICAnYXJncycgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdkc3QtcG9ydCcsCisgICAgICAgICAgICAgICAgJ2Jhc2UtdHlwZScgICAgOiAnaGV4LW9yLWRlY2ltYWwtaW50ZWdlcicsCisgICAgICAgICAgICAgICAgJ3JhbmdlJyAgICAgICAgOiAoMCw2NTUzNSksCisgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnaGV4LXRvLWludGVnZXInLAorICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ2Zsb3ctZW50cnl8ZHN0LXBvcnQtZmllbGQnLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGQnICAgIDogJ2RzdC1wb3J0JywKKyAgICAgICAgICAgICAgICAndHlwZScgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgOiBmbXRjbnYudGNwX25hbWVfdG9fbnVtYmVyX2RpY3QsCisgICAgICAgICAgICB9LAorICAgICAgICApCisgICAgfSwKK30KKyMKKyMgRk9STUFUUworIworCitpbXBvcnQgZm10Y252CisKKworRkxPV19FTlRSWV9GT1JNQVQgPSB7CisgICAgJ2Zsb3ctZW50cnknIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsgJ0lkeCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdzd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnaWRsZS10aW1lb3V0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhcmQtdGltZW91dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdjb29raWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpb3JpdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnd2lsZGNhcmRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luZ3Jlc3MtcG9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdzcmMtbWFjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RzdC1tYWMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnZXRoZXItdHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd2bGFuLWlkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZsYW4tcHJpb3JpdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnc3JjLWlwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RzdC1pcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm90b2NvbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd0b3MtYml0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdzcmMtcG9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdkc3QtcG9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb25zJywKKyAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogIHsKKyAgICAgICAgICAgICdzd2l0Y2gnICAgICAgIDogeyAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX3N3aXRjaF93aXRoX2FsaWFzIH0sCisgICAgICAgICAgICAnZXRoZXItdHlwZScgICA6IHsgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX2V0aGVyX3R5cGUgfSwKKyAgICAgICAgICAgICdwcm90b2NvbCcgICAgIDogeyAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfbmV0d29ya19wcm90b2NvbCB9LAorICAgICAgICAgICAgJ3NyYy1wb3J0JyAgICAgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9zcmNfcG9ydCB9LAorICAgICAgICAgICAgJ2RzdC1wb3J0JyAgICAgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9kc3RfcG9ydCB9LAorICAgICAgICAgICAgJ2luZ3Jlc3MtcG9ydCcgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0IH0sCisgICAgICAgICAgICB9LAorICAgICAgICB9LAorfQorIiIiCisKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvZmxvd19lbnRyeV9tb2RlbC5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvZmxvd19lbnRyeV9tb2RlbC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44OTdmMGEzCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9mbG93X2VudHJ5X21vZGVsLnB5CkBAIC0wLDAgKzEsNDMgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitpbXBvcnQgY29tbWFuZCAKKworY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX3N1Ym1vZGUoJ2Zsb3ctZW50cnknKQorCitjb21tYW5kLm1vZGVsX29ial90eXBlX2VuYWJsZV9jYXNjYWRlX2RlbGV0ZSgnZmxvdy1lbnRyeScpCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdmbG93LWVudHJ5JywgJ2hhcmQtdGltZW91dCcpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnZmxvdy1lbnRyeScsICdpZGxlLXRpbWVvdXQnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2Zsb3ctZW50cnknLCAnYWN0aW9ucycpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnZmxvdy1lbnRyeScsICdhY3RpdmUnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2Zsb3ctZW50cnknLCAncHJpb3JpdHknKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2Zsb3ctZW50cnknLCAnY29va2llJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdmbG93LWVudHJ5JywgJ3dpbGRjYXJkcycpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnZmxvdy1lbnRyeScsICdpbmdyZXNzLXBvcnQnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2Zsb3ctZW50cnknLCAnc3JjLW1hYycpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnZmxvdy1lbnRyeScsICdkc3QtbWFjJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdmbG93LWVudHJ5JywgJ3ZsYW4taWQnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2Zsb3ctZW50cnknLCAndmxhbi1wcmlvcml0eScpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnZmxvdy1lbnRyeScsICdldGhlci10eXBlJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdmbG93LWVudHJ5JywgJ3Rvcy1iaXRzJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdmbG93LWVudHJ5JywgJ3Byb3RvY29sJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdmbG93LWVudHJ5JywgJ3NyYy1pcCcpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnZmxvdy1lbnRyeScsICdkc3QtaXAnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2Zsb3ctZW50cnknLCAnc3JjLXBvcnQnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ2Zsb3ctZW50cnknLCAnZHN0LXBvcnQnKQorCisKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvZm9yd2FyZGluZy5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvZm9yd2FyZGluZy5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MmM1NjczCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9mb3J3YXJkaW5nLnB5CkBAIC0wLDAgKzEsOTEgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisiIiIKKyMgQ0xJIGZvciBmb3J3YXJkaW5nIGNvbmZpZ3VyYXRpb24KKyMKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBDcmVhdGUgbmV3IENMSSBjb21tYW5kIGZvciBmb3J3YXJkaW5nCisjCisKK0ZPUldBUkRJTkdfQ09ORklHX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnZm9yd2FyZGluZycsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdDb25maWd1cmUgZm9yd2FyZGluZyBzZXJ2aWNlIHByb3BlcnRpZXMnLAorICAgICdkb2MnICAgICAgICAgIDogJ2ZvcndhcmRpbmd8Zm9yd2FyZGluZycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnZm9yd2FyZGluZ3xmb3J3YXJkaW5nLWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZy1vYmplY3QnLAorICAgICdvYmotdHlwZScgICAgIDogJ2ZvcndhcmRpbmctY29uZmlnJywKKyAgICAnYXJncyc6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2FyZ3MnIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICAgICAgICA6ICdhY2Nlc3MtcHJpb3JpdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uLXRleHQnICA6ICdhY2Nlc3MtcHJpb3JpdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgICAgICA6ICdTZXQgcHJvcHJpdHkgZm9yIGZsb3dzIGNyZWF0ZWQgYnkgdGhlIGZvcndhcmRpbmcgc2VydmljZSBvbiBhbiBhY2Nlc3Mgc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICAgOiAnZm9yd2FyZGluZ3xmb3J3YXJkaW5nLWFjY2Vzcy1wcmlvcml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hdGNoLWZvci1ubycgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgIDogJ2FjY2Vzcy1wcmlvcml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgICAgIDogJ1NldCBwcm9wcml0eSBmb3IgZmxvd3MgY3JlYXRlZCBieSB0aGUgZm9yd2FyZGluZyBzZXJ2aWNlIG9uIGFuIGFjY2VzcyBzd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgICA6ICdmb3J3YXJkaW5nfGZvcndhcmRpbmctYWNjZXNzLXByaW9yaXR5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICAgICAgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JhbmdlJyAgICAgICAgICAgIDogKDAsIDIqKjE1LTEpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uLXRleHQnICA6ICcwLTMyNzY3JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWF0Y2gtZm9yLW5vJyAgICAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnICAgICAgICAgICAgIDogJ2ZvcndhcmRpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWNjZXNzLXByaW9yaXR5JzogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2FyZ3MnIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICAgICAgICA6ICdjb3JlLXByaW9yaXR5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbi10ZXh0JyAgOiAnY29yZS1wcmlvcml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgICAgIDogJ1NldCBwcm9wcml0eSBmb3IgZmxvd3MgY3JlYXRlZCBieSB0aGUgZm9yd2FyZGluZyBzZXJ2aWNlIG9uIGEgY29yZSBzd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgICA6ICdmb3J3YXJkaW5nfGZvcndhcmRpbmctY29yZS1wcmlvcml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hdGNoLWZvci1ubycgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgIDogJ2NvcmUtcHJpb3JpdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgICAgICA6ICdTZXQgcHJvcHJpdHkgZm9yIGZsb3dzIGNyZWF0ZWQgYnkgdGhlIGZvcndhcmRpbmcgc2VydmljZSBvbiBhIGNvcmUgc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICAgOiAnZm9yd2FyZGluZ3xmb3J3YXJkaW5nLWNvcmUtcHJpb3JpdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgICA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmFuZ2UnICAgICAgICAgICAgOiAoMCwgMioqMTUtMSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24tdGV4dCcgIDogJzAtMzI3NjcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYXRjaC1mb3Itbm8nICAgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZCcgICAgICAgICAgICAgOiAnZm9yd2FyZGluZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3JlLXByaW9yaXR5JyAgOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApLAorICAgICAgICB9LAorICAgICksCit9CisiIiIKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvZm9yd2FyZGluZ19tb2RlbC5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvZm9yd2FyZGluZ19tb2RlbC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNjk0NmY0Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9mb3J3YXJkaW5nX21vZGVsLnB5CkBAIC0wLDAgKzEsMjggQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKKyMgQ0xJIGZvciBmb3J3YXJkaW5nIGNvbmZpZ3VyYXRpb24KKyMKKworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBEaXNhYmxlIGRpcmVjdCBhY2Nlc3MgdG8gZm9yd2FyZGluZy1jb25maWcsIHVzZSB0aGUgbmV3IENMSSBpbnN0ZWFkCisjCisKK2ltcG9ydCBjb21tYW5kCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfc3VibW9kZSgnZm9yd2FyZGluZy1jb25maWcnKQorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL2ZvcndhcmRpbmdfcnVuX2NvbmZpZy5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvZm9yd2FyZGluZ19ydW5fY29uZmlnLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQ3OTBiZWYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL2ZvcndhcmRpbmdfcnVuX2NvbmZpZy5weQpAQCAtMCwwICsxLDcyIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCisjIENMSSBmb3IgZm9yd2FyZGluZyBjb25maWd1cmF0aW9uCisjCisKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVXBkYXRlIHJ1bm5pbmcgY29uZmlnCisjCisKK2ltcG9ydCBydW5fY29uZmlnCitkZWYgcnVubmluZ19jb25maWdfZm9yd2FyZGluZyhjb250ZXh0LCBjb25maWcsIHdvcmRzKToKKyAgICB0X29ial90eXBlID0gJ2ZvcndhcmRpbmctY29uZmlnJworCisgICAgZm9yd2FyZGluZ190YWJsZSA9IGNvbnRleHQuZ2V0X3RhYmxlX2Zyb21fc3RvcmUodF9vYmpfdHlwZSkKKyAgICBpZiBsZW4oZm9yd2FyZGluZ190YWJsZSkgPiAxOgorICAgICAgICBwcmludCAncnVubmluZ19jb25maWdfZm9yd2FyZGluZzogbW9yZSB0aGFuIG9uZSBmb3J3YXJkaW5nIHJlY29yZCcKKyAgICBpZiBsZW4oZm9yd2FyZGluZ190YWJsZSkgPT0gMDoKKyAgICAgICAgcmV0dXJuCisKKyAgICBmb3J3YXJkaW5nX2NvbmZpZyA9IGZvcndhcmRpbmdfdGFibGVbMF0KKyAgICBuZXdsaW5lX3ByaW50ZWQgPSBGYWxzZQorICAgIGlmIHJ1bl9jb25maWcubm90X2RlZmF1bHRfdmFsdWUoCisgICAgICAgICAgICB0X29ial90eXBlLCAnYWNjZXNzLXByaW9yaXR5JywKKyAgICAgICAgICAgIGZvcndhcmRpbmdfY29uZmlnLmdldCgnYWNjZXNzLXByaW9yaXR5JykpOgorICAgICAgICBpZiBuZXdsaW5lX3ByaW50ZWQgaXMgRmFsc2U6CisgICAgICAgICAgICBuZXdsaW5lX3ByaW50ZWQgPSBUcnVlCisgICAgICAgICAgICBjb25maWcuYXBwZW5kKCIhXG4iKQorICAgICAgICBjb25maWcuYXBwZW5kKAorICAgICAgICAgICAgICAgICdmb3J3YXJkaW5nIGFjY2Vzcy1wcmlvcml0eSAlc1xuJyAlCisgICAgICAgICAgICAgICAgZm9yd2FyZGluZ19jb25maWcuZ2V0KCdhY2Nlc3MtcHJpb3JpdHknKSkKKyAgICBpZiBydW5fY29uZmlnLm5vdF9kZWZhdWx0X3ZhbHVlKAorICAgICAgICAgICAgdF9vYmpfdHlwZSwgJ2NvcmUtcHJpb3JpdHknLAorICAgICAgICAgICAgZm9yd2FyZGluZ19jb25maWcuZ2V0KCdjb3JlLXByaW9yaXR5JykpOgorICAgICAgICBpZiBuZXdsaW5lX3ByaW50ZWQgaXMgRmFsc2U6CisgICAgICAgICAgICBuZXdsaW5lX3ByaW50ZWQgPSBUcnVlCisgICAgICAgICAgICBjb25maWcuYXBwZW5kKCIhXG4iKQorICAgICAgICBjb25maWcuYXBwZW5kKAorICAgICAgICAgICAgICAgICdmb3J3YXJkaW5nIGNvcmUtcHJpb3JpdHkgJXNcbicgJQorICAgICAgICAgICAgICAgIGZvcndhcmRpbmdfY29uZmlnLmdldCgnY29yZS1wcmlvcml0eScpKQorCitmb3J3YXJkaW5nX3J1bm5pbmdfY29uZmlnX3R1cGxlID0gKAorICAgICgKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogRmFsc2UsCisgICAgICAgICAgICAnZmllbGQnICAgICAgOiAncnVubmluZy1jb25maWcnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ2ZvcndhcmRpbmcnLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0ZvcndhcmRpbmcgQ29uZmlndXJhdGlvbicsCisgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAncnVubmluZy1jb25maWd8Zm9yd2FyZGluZy1zaG93JywKKyAgICAgICAgfSwKKyAgICApLAorKQorcnVuX2NvbmZpZy5yZWdpc3Rlcl9ydW5uaW5nX2NvbmZpZygnZm9yd2FyZGluZycsIDIyMDAsICBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5uaW5nX2NvbmZpZ19mb3J3YXJkaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3J3YXJkaW5nX3J1bm5pbmdfY29uZmlnX3R1cGxlKQorCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL2hvc3QucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL2hvc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjY1YmI0ZQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvaG9zdC5weQpAQCAtMCwwICsxLDY1MCBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisiIiIKK0hPU1RfU1VCTU9ERV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdob3N0JywKKyAgICAnb2JqLXR5cGUnICAgICAgICAgICAgOiAnaG9zdC1jb25maWcnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdjb25maWcqJywKKyAgICAnY29tbWFuZC10eXBlJyAgICAgICAgOiAnY29uZmlnLXN1Ym1vZGUnLAorICAgICdwYXJlbnQtZmllbGQnICAgICAgICA6IE5vbmUsCisgICAgJ2N1cnJlbnQtbW9kZS1vYmotaWQnIDogTm9uZSwKKyAgICAnc3VibW9kZS1uYW1lJyAgICAgICAgOiAnY29uZmlnLWhvc3QnLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdIb3N0IHN1Ym1vZGUsIGNvbmZpZ3VyZSBob3N0IGRldGFpbHMnLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdob3N0fGhvc3QnLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdob3N0fGhvc3QtZXhhbXBsZScsCisgICAgJ2RhdGEnICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkcmVzcy1zcGFjZScgOiAnZGVmYXVsdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2bGFuJyAgICAgICAgICA6ICcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgJ2FyZ3MnICAgICAgICAgICAgICAgIDogKAorICAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAnYWRkcmVzcy1zcGFjZScsCisgICAgICAgICAgICAndGFnJyAgICAgICAgICAgICA6ICdhZGRyZXNzLXNwYWNlJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAnb3B0aW9uYWwnICAgICAgICA6IFRydWUsCisgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICAgICA6ICdjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAgJ290aGVyJyAgICAgICAgICAgOiAnYWRkcmVzcy1zcGFjZScsCisgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICdob3N0fGhvc3QtYWRkcmVzcy1zcGFjZScsCisgICAgICAgICB9LAorICAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAndmxhbicsCisgICAgICAgICAgICAndGFnJyAgICAgICAgICAgICA6ICd2bGFuJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgIDogJ2ludGVnZXInLAorICAgICAgICAgICAgJ3JhbmdlJyAgICAgICAgICAgOiAoMCw0MDk1KSwKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgIDogJ2hvc3R8aG9zdC12bGFuJywKKyAgICAgICAgIH0sCisgICAgICAgICB7CisgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICA6ICdtYWMnLAorICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgOiAnaG9zdCcsCisgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgICA6IFsgJ2NvbXBsZXRlLWFsaWFzLWNob2ljZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgICA6ICdob3N0JywKKyAgICAgICAgICAgICAnc2NvcGVkJyAgICAgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyAgIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgIH0KKyAgICApCit9CisiIiIKKworaG9zdF9zaG93X21hY19hY3Rpb24gPSAoCisgICAgeworICAgICAgICAncHJvYycgICAgICAgOiAncXVlcnktdGFibGUnLAorICAgICAgICAnb2JqLXR5cGUnICAgOiAnaG9zdCcsCisgICAgfSwKKyAgICB7ICAgIyBhZGQgYW55IGFzc29jaWF0ZWQgdGFncworICAgICAgICAncHJvYycgICAgICAgOiAnam9pbi10YWJsZScsCisgICAgICAgICdvYmotdHlwZScgICA6ICd0YWctbWFwcGluZycsCisgICAgICAgICdrZXknICAgICAgICA6ICdtYWMnLAorICAgICAgICAna2V5LXZhbHVlJyAgOiAndGFnJywgIyBjYXVzZXMgbGlzdCBjcmVhdGlvbiBmb3IgbXVsdGlwbGUgbWF0Y2hlcworICAgICAgICAnam9pbi1maWVsZCcgOiAnbWFjJywKKyAgICAgICAgJ2FkZC1maWVsZCcgIDogJ3RhZycsCisgICAgfSwKKyAgICB7CisgICAgICAgICdwcm9jJyAgICAgICA6ICdkaXNwbGF5JywKKyAgICAgICAgJ2Zvcm1hdCcgICAgIDogJ2hvc3QnLAorICAgIH0sCispCisKKworSE9TVF9TSE9XX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgaG9zdCBzdW1tYXJpZXMnLAorICAgICdkb2MnICAgICAgICAgIDogJ2hvc3R8c2hvdycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnaG9zdHxzaG93LWV4YW1wbGUnLAorICAgICduby1zdXBwb3J0ZWQnIDogRmFsc2UsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisgICAgJ2FyZ3MnIDogKAorICAgICAgICAgeworICAgICAgICAgICAgJ3Rva2VuJyAgOiAnaG9zdCcsCisgICAgICAgICAgICAnYWN0aW9uJyA6IGhvc3Rfc2hvd19tYWNfYWN0aW9uLAorICAgICAgICAgfQorICAgICkKK30KKworSE9TVF9TSE9XX01BQ19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IGhvc3QgZGV0YWlscyBiYXNlZCBvbiBxdWVyeScsCisgICAgJ2RvYycgICAgICAgICAgOiAnaG9zdHxzaG93LWhvc3QnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ2hvc3R8c2hvdy1ob3N0LWV4YW1wbGUnLAorICAgICduby1zdXBwb3J0ZWQnIDogRmFsc2UsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisgICAgJ29iai10eXBlJyAgICAgOiAnaG9zdCcsCisgICAgJ2FjdGlvbicgICAgICAgOiBob3N0X3Nob3dfbWFjX2FjdGlvbiwKKyAgICAnYXJncycgOiAoCisgICAgICAgICdob3N0JywKKyAgICAgICAgeworICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnbWFjJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgdGhlIGhvc3RzIHdpdGggdGhlIGdpdmVuIE1BQyBvciBhbGlhcycsCisgICAgICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgIDogJ2hvc3QgbWFjIG9yIGFsaWFzJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtYWxpYXMtY2hvaWNlJywKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICdob3N0fHNob3ctaG9zdC1tYWMnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdhZGRyZXNzLXNwYWNlJywKKyAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyB0aGUgaG9zdHMgd2l0aCB0aGUgZ2l2ZW4gSVB2NCBhZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgJ3RhZycgICAgICAgICAgOiAnYWRkcmVzcy1zcGFjZScsCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgICA6ICdhZGRyZXNzIHNwYWNlJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAnaG9zdHxzaG93LWhvc3QtYWRkcmVzcy1zcGFjZScsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2lwdjQnLAorICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IHRoZSBob3N0cyB3aXRoIHRoZSBnaXZlbiBJUHY0IGFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAndGFnJyAgICAgICAgICA6ICdpcC1hZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaXAtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgIDogJ2lwIGFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICdob3N0fHNob3ctaG9zdC1pcHY0JywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnZHBpZCcsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgdGhlIGhvc3RzIGF0dGFjaGVkIHRvIHRoZSBnaXZlbiBzd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAndGFnJyAgICAgICAgICA6ICdzd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgOiAnc3dpdGNoIGRwaWQgb3IgYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAjJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtYWxpYXMtY2hvaWNlJywKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICdob3N0fHNob3ctaG9zdC1zd2l0Y2gnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ2hvc3QnLAorICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJzogJ1Nob3cgYWxsIGhvc3RzJywKKyAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICA6ICdhbGwnLAorICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgIDogJ2hvc3R8c2hvdy1ob3N0LWFsbCcsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICkKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyA6IFRydWUsCisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgOiAnYnknLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1NvcnQgZGlzcGxheWVkIGhvc3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdyZXNlcnZlZHxieScsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgOiAnbGFzdC1zZWVuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJzogJ1NvcnQgYnkgdGhlIGxhc3Qgc2VlbiB0aW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzb3J0JyAgICAgOiAnLWxhc3Qtc2VlbicsCisgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICA6ICdob3N0fHNob3ctaG9zdC1ieS1sYXN0LXNlZW4nLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICApCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnZGV0YWlsJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdEaXNwbGF5IGVpdGhlciBkZXRhaWxlZCBvciBicmllZiBpbmZvcm1hdGlvbicsCisgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAoJ2RldGFpbHMnLCdicmllZicpLAorICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2Zvcm1hdHwrJywKKyAgICAgICAgfSwKKyAgICApCit9CisKKworSE9TVF9TSE9XX01BQ19JVEVNU19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IHZhcmlvdXMgaG9zdCByZWxhdGVkIGRldGFpbHMgYnkgcXVlcnknLAorICAgICdkb2MnICAgICAgICAgIDogJ2hvc3R8c2hvdy1ob3N0LWl0ZW1zJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdob3N0fHNob3ctaG9zdC1pdGVtcy1leGFtcGxlJywKKyAgICAnbm8tc3VwcG9ydGVkJyA6IEZhbHNlLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ2hvc3QnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgJ2hvc3QnLAorICAgICAgICB7CisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdtYWMnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdob3N0JywKKyAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyB0aGUgaG9zdHMgd2l0aCB0aGUgZ2l2ZW4gTUFDIG9yIGFsaWFzJywKKyAgICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgOiAnaG9zdCBtYWMgb3IgYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1hbGlhcy1jaG9pY2UnLAorICAgICAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ2hvc3R8c2hvdy1ob3N0LW1hYycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2lwdjQnLAorICAgICAgICAgICAgICAgICAgICAndGFnJyAgICAgICAgICA6ICdpcC1hZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyB0aGUgaG9zdHMgd2l0aCB0aGUgZ2l2ZW4gSVB2NCBhZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaXAtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgIDogJ2lwIGFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICdob3N0fHNob3ctaG9zdC1pcHY0JywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnZHBpZCcsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgdGhlIGhvc3RzIGF0dGFjaGVkIHRvIHRoZSBnaXZlbiBzd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAndGFnJyAgICAgICAgICA6ICdzd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgOiAnc3dpdGNoIGRwaWQgb3IgYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAjJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtYWxpYXMtY2hvaWNlJywKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICdob3N0fHNob3ctaG9zdC1zd2l0Y2gnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ2hvc3QnLAorICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJzogJ1Nob3cgYWxsIGhvc3RzJywKKyAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICA6ICdhbGwnLAorICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgIDogJ2hvc3R8c2hvdy1ob3N0LWFsbCcsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICkKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnYXR0YWNobWVudC1wb2ludCcsCisgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAnYXR0YWNobWVudC1wb2ludCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgOiAnaG9zdC1hdHRhY2htZW50LXBvaW50JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTaG93IGhvc3QgYXR0YWNobWVudCBwb2ludHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2hvc3R8c2hvdy1ob3N0LWl0ZW0tYXR0YWNobWVudC1wb2ludCcsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ2J5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTb3J0IGRpc3BsYXllZCBob3N0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAncmVzZXJ2ZWR8YnknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgOiAnaG9zdC1sYXN0LXNlZW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc29ydCcgICAgICAgOiAnaG9zdCwtbGFzdC1zZWVuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ2hvc3QtYXR0YWNobWVudC1wb2ludCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1NvcnQgYnkgdGhlIGxhc3Qgc2VlbiB0aW1lIGZvciB0aGUgaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdob3N0fHNob3ctaG9zdC1ieS1ob3N0LWxhc3Qtc2VlbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdsYXN0LXNlZW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc29ydCcgICAgICAgOiAnLWxhc3Qtc2VlbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICA6ICdob3N0LWF0dGFjaG1lbnQtcG9pbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnZGlzcGxheS10YWJsZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTb3J0IGJ5IHRoZSBsYXN0IHNlZW4gdGltZSBmb3IgdGhlIGF0dGFjaG1lbnQgcG9pbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnaG9zdHxzaG93LWhvc3QtYnktbGFzdC1zZWVuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2RldGFpbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAoJ2RldGFpbHMnLCAnYnJpZWYnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnRGlzcGxheSBlaXRoZXIgZGV0YWlsZWQgb3IgYnJpZWYgaW5mb3JtYXRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2Zvcm1hdHwrJywKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICA6ICduZXR3b3JrLWFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgIDogJ2lwLWFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnIDogJ2hvc3QtbmV0d29yay1hZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICA6ICdob3N0fHNob3ctaG9zdC1pdGVtLW5ldHdvcmstYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyd0b2tlbic6ICdieScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCc6ICdTb3J0IGRpc3BsYXllZCBob3N0cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdob3N0LWxhc3Qtc2VlbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvcnQnICAgICAgIDogJ2hvc3QsLWxhc3Qtc2VlbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1NvcnQgYnkgdGhlIGxhc3Qgc2VlbiB0aW1lIGZvciB0aGUgaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgIDogJ2hvc3QtbmV0d29yay1hZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgOiAnZGlzcGxheS10YWJsZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgIDogJ2hvc3R8c2hvdy1ob3N0LWJ5LWhvc3QtbGFzdC1zZWVuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ2xhc3Qtc2VlbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NvcnQnICAgICAgIDogJy1sYXN0LXNlZW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTb3J0IGJ5IHRoZSBsYXN0IHNlZW4gdGltZSBmb3IgdGhlIG5ldHdvcmsgYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ2hvc3QtbmV0d29yay1hZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnZGlzcGxheS10YWJsZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2hvc3R8c2hvdy1ob3N0LWJ5LWxhc3Qtc2VlbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdkZXRhaWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogKCdkZXRhaWxzJywgJ2JyaWVmJyksCisgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnICAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0Rpc3BsYXkgZWl0aGVyIGRldGFpbGVkIG9yIGJyaWVmIGluZm9ybWF0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdmb3JtYXR8KycKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdhbGlhcycsCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ2FsaWFzJywKKyAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ2hvc3QtYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnZGlzcGxheS10YWJsZScsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdEaXNwbGF5IGhvc3QgYWxpYXMgbWFwcGluZ3MnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnaG9zdHxzaG93LWhvc3QtaXRlbS1hbGlhcycsCisgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApLAorICAgICAgICB9LAorICAgICkKK30KKworIiIiCitIT1NUX0hPU1RfQUxJQVNfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdob3N0LWFsaWFzJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctaG9zdCcsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnQXR0YWNoIGFsaWFzIHRvIGhvc3QnLAorICAgICdkb2MnICAgICAgICAgIDogJ2hvc3R8aG9zdC1hbGlhcycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnaG9zdHxob3N0LWFsaWFzLWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ21hbmFnZS1hbGlhcycsCisgICAgJ29iai10eXBlJyAgICAgOiAnaG9zdC1hbGlhcycsCisgICAgJ3Njb3BlZCcgICAgICAgOiBUcnVlLAorICAgICdyZXNlcnZlZCcgICAgIDogWyAnc3dpdGNoJywgJ2lwLWFkZHJlc3MnIF0sIAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdpZCcsCisgICAgICAgICAgICAnYmFzZS10eXBlJyAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogRmFsc2UsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICAgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICB9CisgICAgKQorfQorCisKK0hPU1RfU0VDVVJJVFlfUE9MSUNZX0JJTkRfSVBfQUREUkVTU19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3NlY3VyaXR5JywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctaG9zdCcsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnQ29uZmlndXJlIHNlY3VyaXR5IHBvbGljaWVzIGZvciBob3N0JywKKyAgICAnZG9jJyAgICAgICAgICA6ICdob3N0fHNlY3VyaXR5JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdob3N0fHNlY3VyaXR5LWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZy1vYmplY3QnLAorICAgICdwYXJlbnQtZmllbGQnIDogJ2hvc3QnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAndG9rZW4nIDogJ3BvbGljeScsCisgICAgICAgICAgICAnZG9jJyAgIDogJ2hvc3R8c2VjdXJpdHktcG9saWN5JywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ3Rva2VuJyA6ICdiaW5kJywKKyAgICAgICAgICAgICdkb2MnICAgOiAnaG9zdHxzZWN1cml0eS1iaW5kJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAnaXAtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICd0YWcnICAgICAgICAgICAgIDogJ2lwLWFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAnYmFzZS10eXBlJyAgICAgICA6ICdpcC1hZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgIyBjb3VsZCBwb3NzaWJseSBjb21wbGV0ZSBhbGwgaXAtYWRkcmVzc2VzCisgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgICAgIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICAgICAgIDogJ2hvc3Qtc2VjdXJpdHktaXAtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICAgICAgIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgICAgICAgICAgICAgICduby1hY3Rpb24nICAgICAgIDogJ2RlbGV0ZS1vYmplY3RzJywKKyAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgICAgOiAncmVzdHJpY3QgaG9zdCBhY2Nlc3MgdG8gaXAtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgIDogJ2hvc3R8c2VjdXJpdHktaXAtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICAgICAgIDogJ2F0dGFjaG1lbnQtcG9pbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgICAgOiAncmVzdHJpY3QgaG9zdCBhY2Nlc3MgdG8gYXR0YWNobWVudCBwb2ludCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICdob3N0fHNlY3VyaXR5LWF0dGFjaG1lbnQtcG9pbnQnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnY2hvaWNlcycgOiAgICAgICAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgICAgICA6ICdhbGwnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ2RwaWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgICAgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1hbGlhcy1jaG9pY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICAgICAgIDogJ3N3aXRjaGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgICAgOiAnc3dpdGNoZXN8ZHBpZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgICAgIDogJ3N3aXRjaCBkcGlkIG9yIGFsaWFzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgICAgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgICAgICA6ICdpZGVudGlmeSBzd2l0Y2ggZm9yIGF0dGFjaG1lbnQgcG9pbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICdob3N0fHNlY3VyaXR5LWF0dGFjaG1lbnQtcG9pbnQtc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdpZi1uYW1lLXJlZ2V4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAnc3ludGF4LWhlbHAnICAgICA6ICdSZWd1bGFyIGV4cHJlc3Npb24gbWF0Y2ggZm9yIGludGVyZmFjZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgICAgICAgOiAnd3JpdGUtb2JqZWN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICduby1hY3Rpb24nICAgICAgIDogJ2RlbGV0ZS1vYmplY3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICAgICAgIDogJ2hvc3Qtc2VjdXJpdHktYXR0YWNobWVudC1wb2ludCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICAgICA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdvdGhlcicgICAgICAgICAgIDogJ2ludGVyZmFjZXN8cG9ydE5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Njb3BlZCcgICAgICAgICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgICAgIDogJ2lkZW50aWZ5IGludGVyZmFjZSBmb3IgYXR0YWNobWVudCBwb2ludCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICdob3N0fHNlY3VyaXR5LWF0dGFjaG1lbnQtcG9pbnQtaW50ZXJmYWNlJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgKSwKKyAgICAgICAgfSwKKyAgICApLAorfQorIiIiCisKKyMKKyMgRk9STUFUUworIworCitpbXBvcnQgZm10Y252CisKKworSE9TVF9GT1JNQVQgPSB7CisgICAgJ2hvc3QnOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgJ2lkJywgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAnaXBzJywgJ2F0dGFjaG1lbnQtcG9pbnRzJyBdLAorICAgICAgICAgICAgJ2RldGFpbHMnIDogWyAnSWR4JywgJ2lkJywgIAorICAgICAgICAgICAgICAgICAgICAgICAgICAndmVuZG9yJywgJ2lwcycsICdhdHRhY2htZW50LXBvaW50cycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdicmllZicgICA6IFsgJ0lkeCcsICdpZCcsICdpcHMnXSwKKyAgICAgICAgICAgIH0sCisKKworICAgICAgICAnZmllbGRzJzogeworICAgICAgICAgICAgJ2lkJyAgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnOiAnTUFDIEFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9ob3N0X2FuZF9hbGlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbWFjJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZSc6ICdNQUMgQWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X2hvc3RfYW5kX2FsaWFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhZGRyZXNzLXNwYWNlJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnQWRkcmVzcyBTcGFjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3ZlbmRvcicgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5zYW5pdGl6ZV91bmljb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bGFuJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZSc6ICdWTEFOJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuY29udmVydF90b19zdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lwcycgICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdJUCBBZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfaXBfYWRkcmVzc2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZW50cnktZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9hbGxfaXBfYWRkcmVzc2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhdHRhY2htZW50LXBvaW50cycgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnU3dpdGNoL09GIFBvcnQgKFBoeXNpY2FsIFBvcnQpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfaG9zdF9hdHRhY2htZW50X3BvaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZW50cnktZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9hbGxfaG9zdF9hdHRhY2htZW50X3BvaW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndGFnJyAgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X2hvc3RfdGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VudHJ5LWZvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfYWxsX2hvc3RfdGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGhjcC1jbGllbnQtbmFtZScgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0RIQ1AgQ2xpZW50IE5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdsYXN0LXNlZW4nICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZSc6ICdMYXN0IFNlZW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF90aW1lX3NpbmNlX3V0YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKK30KKworCitIT1NUX0FUVEFDSE1FTlRfUE9JTlRfRk9STUFUID0geworICAgICdob3N0LWF0dGFjaG1lbnQtcG9pbnQnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsgJ0lkeCcsICdtYWMnLCAndmxhbicsICdhZGRyZXNzLXNwYWNlJywgJ3N3aXRjaCcsICdpbmdyZXNzLXBvcnQnLCAnc3RhdHVzJywgXSwKKyAgICAgICAgICAgICdkZXRhaWxzJyA6IFsgJ0lkeCcsICdtYWMnLCAndmxhbicsICdhZGRyZXNzLXNwYWNlJywgJ3N3aXRjaCcsICdpbmdyZXNzLXBvcnQnLCAnc3RhdHVzJywgJ2xhc3Qtc2VlbiddLAorICAgICAgICAgICAgfSwKKworICAgICAgICAgJ2ZpZWxkcyc6IHsKKyAgICAgICAgICAgICdtYWMnICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnTUFDIEFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfaG9zdF9hbmRfYWxpYXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndmxhbicgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZSc6ICdWTEFOJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuY29udmVydF90b19zdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisKKyAgICAgICAgICAgICdhZGRyZXNzLXNwYWNlJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnQWRkcmVzcyBTcGFjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3N3aXRjaCcgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdTd2l0Y2ggSUQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfc3dpdGNoX2FuZF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2luZ3Jlc3MtcG9ydCcgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJzogJ1BvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX29wZW5mbG93X3BvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3RhdHVzJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJzogJ0Vycm9yIFN0YXR1cyAoaWYgYW55KScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdsYXN0LXNlZW4nICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnOiAnTGFzdCBTZWVuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi50aW1lc3RhbXBfdG9fbG9jYWxfdGltZXN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICB9LAorICAgICAgICAgfSwKK30KKworCitIT1NUX05FVFdPUktfQUREUkVTU19GT1JNQVQgPSB7CisgICAgJ2hvc3QtbmV0d29yay1hZGRyZXNzJzogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsgJ0lkeCcsICdtYWMnLCAnYWRkcmVzcy1zcGFjZScsICd2bGFuJywgJ2lwLWFkZHJlc3MnLCAgXSwKKyAgICAgICAgICAgICdkZXRhaWxzJyA6IFsgJ0lkeCcsICdtYWMnLCAnYWRkcmVzcy1zcGFjZScsICd2bGFuJywgJ2lwLWFkZHJlc3MnLCAnbGFzdC1zZWVuJyAgXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnOiB7CisgICAgICAgICAgICAnbWFjJyAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnOiAnTUFDIEFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bGFuJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZSc6ICdWTEFOJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYWRkcmVzcy1zcGFjZScgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0FkZHJlc3MgU3BhY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdpZCcgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaXAtYWRkcmVzcyc6ICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnOiAnSVAgQWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbGFzdC1zZWVuJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJzogJ0xhc3QgU2VlbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYudGltZXN0YW1wX3RvX2xvY2FsX3RpbWVzdHIsCisgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9LAorICAgICAgICB9LAorfQorCisKK0hPU1RfQUxJQVNfRk9STUFUID0geworICAgICdob3N0LWFsaWFzJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgICAgIDogWyAnSWR4JywgJ2lkJywgJ2FkZHJlc3Mtc3BhY2UnLCAndmxhbicsICdtYWMnIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgIH0sCit9CisKKyIiIgorSE9TVF9DT05GSUdfRk9STUFUID0geworICAgICdob3N0LWNvbmZpZycgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgJ21hYycsICd2bGFuJywgJ3ZlbmRvcicsICdpcHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnYXR0YWNobWVudC1wb2ludHMnLCAndGFnJywgJ2xhc3Qtc2VlbicgXSwKKyAgICAgICAgICAgICdicmllZicgICA6IFsgJ0lkeCcsICdtYWMnLCAndmxhbicsICdpcHMnLCAnbGFzdC1zZWVuJ10sCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICdtYWMnICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJzogJ01BQyBBZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfaG9zdF9hbmRfYWxpYXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3ZlbmRvcicgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5zYW5pdGl6ZV91bmljb2RlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bGFuJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZSc6ICdWTEFOJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuY29udmVydF90b19zdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lwcycgICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdJUCBBZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfaXBfYWRkcmVzc2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZW50cnktZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9hbGxfaXBfYWRkcmVzc2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhdHRhY2htZW50LXBvaW50cycgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnU3dpdGNoL09GIFBvcnQgKFBoeXNpY2FsIFBvcnQpJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfaG9zdF9hdHRhY2htZW50X3BvaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZW50cnktZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9hbGxfaG9zdF9hdHRhY2htZW50X3BvaW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndGFnJyAgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X2hvc3RfdGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VudHJ5LWZvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfYWxsX2hvc3RfdGFncywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaG9zdC1hbGlhcycgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2xhc3Qtc2VlbicgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJzogJ0xhc3QgU2VlbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X3RpbWVfc2luY2VfdXRjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICB9LAorfQorIiIiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC9ob3N0X21vZGVsLnB5IGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9ob3N0X21vZGVsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM0ZjIwMTQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL2hvc3RfbW9kZWwucHkKQEAgLTAsMCArMSwzMyBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2ltcG9ydCBjb21tYW5kCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9zdWJtb2RlKCdob3N0LXNlY3VyaXR5LWlwLWFkZHJlc3MnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX3N1Ym1vZGUoJ2hvc3Qtc2VjdXJpdHktYXR0YWNobWVudC1wb2ludCcpCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdob3N0JywgJ2xhc3Qtc2VlbicpCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfc2V0X2Nhc2UoJ2hvc3QnLCAnbWFjJywgJ2xvd2VyJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfc2V0X2Nhc2UoJ2hvc3QtY29uZmlnJywgJ21hYycsICdsb3dlcicpCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZW5hYmxlX2Nhc2NhZGVfZGVsZXRlKCdob3N0LWNvbmZpZycpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2VuYWJsZV9jYXNjYWRlX2RlbGV0ZSgnaG9zdC1hbGlhcycpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2VuYWJsZV9jYXNjYWRlX2RlbGV0ZSgnaG9zdC1zZWN1cml0eS1pcC1hZGRyZXNzJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZW5hYmxlX2Nhc2NhZGVfZGVsZXRlKCdob3N0LXNlY3VyaXR5LWF0dGFjaG1lbnQtcG9pbnQnKQorCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnaG9zdC1jb25maWcnLCAndmxhbicpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnaG9zdC1jb25maWcnLCAnbGFzdC1zZWVuJykKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvaW50ZXJuYWwucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL2ludGVybmFsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVmZTdhZDIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL2ludGVybmFsLnB5CkBAIC0wLDAgKzEsNjY5IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMCwyMDExLDIwMTIsMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKyIiIgoraW1wb3J0IGNvbW1hbmQKKworSU5URVJOQUxfU1VCTU9ERV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdpbnRlcm5hbCcsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2NvbmZpZycsCisgICAgJ25vLXN1cHBvcnRlZCcgICAgICAgIDogRmFsc2UsCisgICAgJ2hlbHAnICAgICAgICAgICAgICAgIDogJ0VudGVyIEludGVybmFsIENMSSBkZWJ1Z2dpbmcgbW9kZScsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ0VudGVyIENMSSBpbnRlcm5hbCBkZWJ1Z2dpbmcgbW9kZScsCisgICAgJ2RvYycgICAgICAgICAgICAgICAgIDogJ2ludGVybmFsfGludGVybmFsJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnaW50ZXJuYWx8aW50ZXJuYWwtZXhhbXBsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgICAgICAgIDogJ2NvbmZpZy1zdWJtb2RlJywKKyAgICAnb2JqLXR5cGUnICAgICAgICAgICAgOiBOb25lLAorICAgICdjdXJyZW50LW1vZGUtb2JqLWlkJyA6IE5vbmUsCisgICAgJ3BhcmVudC1maWVsZCcgICAgICAgIDogTm9uZSwKKyAgICAnc3VibW9kZS1uYW1lJyAgICAgICAgOiAnY29uZmlnLWludGVybmFsJywKKyAgICAnYXJncycgICAgICAgICAgICAgICAgOiAoKSwKK30KKworSU5URVJOQUxfU0hPV19JTlRFUkZBQ0VTX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICAgICAgIDogJ2NvbmZpZy1pbnRlcm5hbCcsCisgICAgJ25vLXN1cHBvcnRlZCcgICAgICA6IEZhbHNlLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgOiAnU2hvdyBzeXN0ZW0gaW50ZXJmYWNlcycsCisgICAgJ2RvYycgICAgICAgICAgICAgICA6ICdpbnRlcm5hbHxzaG93LWludGVyZmFjZXMnLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgOiAnaW50ZXJuYWx8c2hvdy1pbnRlcmZhY2VzLWV4YW1wbGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgJ3N5c3RlbScsCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgIDogJ2ludGVyZmFjZXMnLAorICAgICAgICAgICAgJ2FjdGlvbicgOiAnZGlzcGxheS1yZXN0JyAsCisgICAgICAgICAgICAndXJsJyAgICA6ICdzeXN0ZW0vaW50ZXJmYWNlcy8nLAorICAgICAgICAgICAgJ2Zvcm1hdCcgOiAnc3lzdGVtLWludGVyZmFjZXMnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgIDogJ2RldGFpbCcsCisgICAgICAgICAgICAndHlwZScgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICA6ICgnZGV0YWlscycsJ2JyaWVmJyksCisgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICdkb2MnICAgICAgOiAnZm9ybWF0fCsnCisgICAgICAgIH0KKyAgICApCit9CitERUJVR19JTlRFUk5BTF9UT1BPTE9HWV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ2ludGVybmFsJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctaW50ZXJuYWwnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktcmVzdCcsCisgICAgJ3VybCcgICAgICAgICAgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAnaW50ZXJuYWwtZGVidWdzL3RvcG9sb2d5LW1hbmFnZXIvJShkcGlkKXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ludGVybmFsLWRlYnVncy90b3BvbG9neS1tYW5hZ2VyLycsCisgICAgICAgICAgICAgICAgICAgICBdLAorICAgICdmb3JtYXQnICAgICAgIDogJ3N3aXRjaCcsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnaW50ZXJuYWwgdG9wb2xvZ3kgZGlzcGxheScsCisgICAgJ2RvYycgICAgICAgICAgOiAnaW50ZXJuYWx8aW50ZXJuYWwtdG9wb2xvZ3knLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAndG9wb2xvZ3knLAorICAgICAgICB7CisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgIDogJ2RwaWQnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgIDogJ2RwaWQnLAorICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnIDogJ3RydWUnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApCisgICAgICAgIH0KKyAgICApCit9CisKK0RFQlVHX0lOVEVSTkFMX0NMVVNURVJfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdpbnRlcm5hbCcsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLWludGVybmFsJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXJlc3QnLAorICAgICd1cmwnICAgICAgICAgIDogJ3JlYWx0aW1lc3RhdHVzL25ldHdvcmsvY2x1c3RlcicsCisgICAgJ2Zvcm1hdCcgICAgICAgOiAnc3dpdGNoJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdpbnRlcm5hbCBzd2l0Y2ggY2x1c3RlciBkaXNwbGF5JywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ2NsdXN0ZXInLAorICAgICkKK30KKworCitTSE9XX1ZOU19BQ0NFU1NfTElTVF9FTlRSWV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdvYmotdHlwZScgICAgIDogJ3Zucy1hY2Nlc3MtbGlzdC1lbnRyeScsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyB2bnMtYWNjZXNzLWxpc3QtZW50cnkgZGIgdGFibGUnLAorICAgICdkb2MnICAgICAgICAgIDogJ2ludGVybmFsfHNob3ctdm5zLWFjY2Vzcy1saXN0LWVudHJ5JywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctaW50ZXJuYWwnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAndm5zLWFjY2Vzcy1saXN0LWVudHJ5JywKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogVHJ1ZSwKKyAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICd2bnMnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nIDogJ2NvbXBsZXRlLWZyb20tYW5vdGhlcicsCisgICAgICAgICAgICAnb3RoZXInICAgICAgOiAndm5zLWRlZmluaXRpb24nLAorICAgICAgICAgICAgJ2hlbHAtbmFtZScgIDogIjx2bnMtaWQ+IiwKKyAgICAgICAgICAgICdkZXRhaWwnICAgICA6ICdkZWZhdWx0JywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogVHJ1ZSwKKyAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdhY2wnLAorICAgICAgICAgICAgJ3RhZycgICAgICAgIDogJ2FjbCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAnZmllbGQnICAgICAgOiAncnVsZScsCisgICAgICAgICAgICAndGFnJyAgICAgICAgOiAncnVsZScsCisgICAgICAgIH0sCisgICAgKQorfQorCisgICAgCitTSE9XX1BPUlRfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdwb3J0JywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IHBvcnQgZGIgdGFibGUnLAorICAgICdkb2MnICAgICAgICAgIDogJ2ludGVybmFsfHNob3ctcG9ydCcsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLWludGVybmFsJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ3BvcnQnLAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnaWQnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogVHJ1ZSwKKyAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdvYmotdHlwZScsCisgICAgICAgICAgICAnY29tcGxldGlvbicgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICdwYXJlbnQtaWQnICA6IE5vbmUsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2RwaWQnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgICAgOiBUcnVlLAorICAgICAgICAgICAgJ3RhZycgICAgICAgICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLWZyb20tYW5vdGhlcicsCisgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICdzd2l0Y2hlcycsCisgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ251bWJlcicsCisgICAgICAgICAgICAndGFnJyAgICAgICAgICA6ICdwb3J0JywKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdkZXRhaWwnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogVHJ1ZSwKKyAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICgnZGV0YWlscycsICdicmllZicpLAorICAgICAgICB9CisgICAgKQorfQorCisKK1NIT1dfVk5TX0lOVEVSRkFDRV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdvYmotdHlwZScgICAgIDogJ3Zucy1pbnRlcmZhY2UnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgdm5zLWludGVyZmFjZSBkYiB0YWJsZScsCisgICAgJ2RvYycgICAgICAgICAgOiAnaW50ZXJuYWx8c2hvdy12bnMtaW50ZXJmYWNlJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctaW50ZXJuYWwnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAndm5zLWludGVyZmFjZScsCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdpZCcsCisgICAgICAgICAgICAndGFnJyAgICAgICAgOiAndm5zJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogVHJ1ZSwKKyAgICAgICAgICAgICdwYXJlbnQtaWQnICA6ICd2bnMnLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICd0YWcnICAgICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgOiAnZHBpZCcsCisgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnbnVtYmVyJywKKyAgICAgICAgICAgICd0YWcnICAgICAgIDogJ251bWJlcicsCisgICAgICAgICAgICAndHlwZScgICAgICA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgICdoZWxwLW5hbWUnIDogJ09GIFBvcnQgTnVtYmVyJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgIDogVHJ1ZSwKKyAgICAgICAgfSwKKyAgICApCit9CisKKworU0hPV19WTlNfSU5URVJGQUNFX1JVTEVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd2bnMtaW50ZXJmYWNlLXJ1bGUnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgdm5zLWludGVyZmFjZS1ydWxlIGRiIHRhYmxlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdpbnRlcm5hbHxzaG93LXZucy1pbnRlcmZhY2UtcnVsZScsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLWludGVybmFsJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ3Zucy1pbnRlcmZhY2UtcnVsZScsCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICd2bnMnLAorICAgICAgICAgICAgJ3RhZycgICAgICAgIDogJ3ZucycsCisgICAgICAgICAgICAnb3B0aW9uYWwnICAgOiBUcnVlLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAncGFyZW50LWlkJyAgOiAndm5zJywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgIDogJ3J1bGUnLAorICAgICAgICAgICAgJ3RhZycgICAgICA6ICdydWxlJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgIH0sCisgICAgKQorfQorCisKK0lOVEVSTkFMX1NIT1dfREVWSUNFX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICAgICAgIDogJ2NvbmZpZy1pbnRlcm5hbCcsCisgICAgJ25vLXN1cHBvcnRlZCcgICAgICA6IEZhbHNlLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgOiAnU2hvdyBjb250cm9sbGVyIGRldmljZXMnLAorICAgICdkb2MnICAgICAgICAgICAgICAgOiAnaW50ZXJuYWx8c2hvdy1jb250cm9sbGVyLWRldmljZXMnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgJ2NvbnRyb2xsZXInLAorICAgICAgICB7CisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICA6ICdkZXZpY2VzJywKKyAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgOiAnZGlzcGxheS1yZXN0JyAsCisgICAgICAgICAgICAgICAgICAgICd1cmwnICAgICAgIDogJ2RldmljZScsCisgICAgICAgICAgICAgICAgICAgICdmb3JtYXQnICAgIDogJ2NvbnRyb2xsZXItZGV2aWNlcycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgOiAndm5zJywKKyAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgOiAnZGlzcGxheS1yZXN0JyAsCisgICAgICAgICAgICAgICAgICAgICd1cmwnICAgICAgIDogJ3ZucycsCisgICAgICAgICAgICAgICAgICAgICdmb3JtYXQnICAgIDogJ2NvbnRyb2xsZXItdm5zJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgOiAnaW50ZXJmYWNlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgOiAnZGlzcGxheS1yZXN0JyAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd1cmwnICAgICAgIDogJ3Zucy9pbnRlcmZhY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0JyAgICA6ICdjb250cm9sbGVyLXZucy1pbnRlcmZhY2VzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgOiAnZGV2aWNlLWludGVyZmFjZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgIDogJ2Rpc3BsYXktcmVzdCcgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndXJsJyAgICAgICA6ICd2bnMvZGV2aWNlLWludGVyZmFjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXQnICAgIDogJ2NvbnRyb2xsZXItdm5zLWRldmljZS1pbnRlcmZhY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICkKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICA6ICdkZXRhaWwnLAorICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgOiAoJ2RldGFpbHMnLCdicmllZicpLAorICAgICAgICAgICAgJ29wdGlvbmFsJyA6IFRydWUsCisgICAgICAgIH0KKyAgICApCit9CisKKworZGVmIGRpc3BsYXlfc2NoZW1hKGRhdGEpOgorICAgIHJldHVybiBjb21tYW5kLnNkbnNoLnNkbmRiLnNjaGVtYV9kZXRhaWwoZGF0YVsncGF0aCddKQorCitjb21tYW5kLmFkZF9hY3Rpb24oJ2Rpc3BsYXktc2NoZW1hJywgIGRpc3BsYXlfc2NoZW1hLAorICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJyA6IHsgJ2RhdGEnIDogJyRkYXRhJyB9IH0gKQorCitJTlRFUk5BTF9TSE9XX1NDSEVNQV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgICAgICA6ICdjb25maWctaW50ZXJuYWwnLAorICAgICdmZWF0dXJlJyAgICAgICAgICAgOiAnZXhwZXJpbWVudGFsJywKKyAgICAnbm8tc3VwcG9ydGVkJyAgICAgIDogRmFsc2UsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICA6ICdTaG93IGNvbnRyb2xsZXIgZGV2aWNlcycsCisgICAgJ2FjdGlvbicgICAgICAgICAgICA6ICdkaXNwbGF5LXNjaGVtYScsCisgICAgJ2FyZ3MnIDogKAorICAgICAgICAnc2NoZW1hJywKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAncGF0aCcsCisgICAgICAgICAgICAndHlwZScgICAgICA6ICdzdHJpbmcnLAorICAgICAgICB9LAorICAgICksCit9CisKKworZGVmIGxpbnRfYWN0aW9uKGRhdGEpOgorICAgIHdvcmRzID0gW10KKyAgICBpZiAnY29tbWFuZCcgaW4gZGF0YToKKyAgICAgICAgd29yZHMuYXBwZW5kKGRhdGFbJ2NvbW1hbmQnXSkKKyAgICBjb21tYW5kLmxpbnRfY29tbWFuZCh3b3JkcykKKworY29tbWFuZC5hZGRfYWN0aW9uKCdsaW50LWFjdGlvbicsICBsaW50X2FjdGlvbiwKKyAgICAgICAgICAgICAgICAgICB7J2t3YXJncycgOiB7ICdkYXRhJyA6ICckZGF0YScgfSB9ICkKKworSU5URVJOQUxfTElOVF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ2xpbnQnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy1pbnRlcm5hbCcsCisgICAgJ25vLXN1cHBvcnRlZCcgOiBGYWxzZSwKKyAgICAnYWN0aW9uJyAgICAgICA6ICdsaW50LWFjdGlvbicsCisgICAgJ2FyZ3MnICAgICAgICAgOiB7CisgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAnZmllbGQnICAgIDogJ2NvbW1hbmQnLAorICAgICAgICAndHlwZScgICAgIDogJ3N0cmluZycsCisgICAgfQorfQorCisKK2RlZiBwZXJtdXRlX2FjdGlvbihkYXRhKToKKyAgICB3b3JkcyA9IFtdCisgICAgaWYgJ2NvbW1hbmQnIGluIGRhdGE6CisgICAgICAgIHdvcmRzLmFwcGVuZChkYXRhWydjb21tYW5kJ10pCisgICAgcmV0dXJuIGNvbW1hbmQucGVybXV0ZV9jb21tYW5kKHdvcmRzLCBkYXRhLmdldCgncXVhbGlmeScpKQorCitjb21tYW5kLmFkZF9hY3Rpb24oJ3Blcm11dGUtYWN0aW9uJywgIHBlcm11dGVfYWN0aW9uLAorICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJyA6IHsgJ2RhdGEnIDogJyRkYXRhJyB9IH0gKQorCisKK0lOVEVSTkFMX1BFUk1VVEVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdwZXJtdXRlJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctaW50ZXJuYWwnLAorICAgICduby1zdXBwb3J0ZWQnIDogRmFsc2UsCisgICAgJ2FjdGlvbicgICAgICAgOiAncGVybXV0ZS1hY3Rpb24nLAorICAgICdkYXRhJyAgICAgICAgIDogeyAncXVhbGlmeScgOiBGYWxzZSB9LAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICdmaWVsZCcgICAgOiAnY29tbWFuZCcsCisgICAgICAgICAgICAndHlwZScgICAgIDogJ3N0cmluZycsCisgICAgICAgIH0sCisgICAgKQorfQorCisKK0lOVEVSTkFMX1FVQUxJRllfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdxdWFsaWZ5JywgICMgYmVyYXRlCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLWludGVybmFsJywKKyAgICAnbm8tc3VwcG9ydGVkJyA6IEZhbHNlLAorICAgICdhY3Rpb24nICAgICAgIDogJ3Blcm11dGUtYWN0aW9uJywKKyAgICAnZGF0YScgICAgICAgICA6IHsgJ3F1YWxpZnknIDogVHJ1ZSB9LAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICdmaWVsZCcgICAgOiAnY29tbWFuZCcsCisgICAgICAgICAgICAndHlwZScgICAgIDogJ3N0cmluZycsCisgICAgICAgIH0sCisgICAgKQorfQorCisKK2RlZiBjbGlkb2NfYWN0aW9uKGRhdGEpOgorICAgIHdvcmRzID0gW10KKyAgICBpZiAnY29tbWFuZCcgaW4gZGF0YToKKyAgICAgICAgd29yZHMuYXBwZW5kKGRhdGFbJ2NvbW1hbmQnXSkKKyAgICByZXR1cm4gY29tbWFuZC5nZXRfY2xpZG9jKHdvcmRzKQorCitjb21tYW5kLmFkZF9hY3Rpb24oJ2NsaWRvYy1hY3Rpb24nLCAgY2xpZG9jX2FjdGlvbiwKKyAgICAgICAgICAgICAgICAgICB7J2t3YXJncycgOiB7ICdkYXRhJyA6ICckZGF0YScgfSwgfSApCisKKworSU5URVJOQUxfQ0xJRE9DX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnY2xpZG9jJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctaW50ZXJuYWwnLAorICAgICduby1zdXBwb3J0ZWQnIDogRmFsc2UsCisgICAgJ2FjdGlvbicgICAgICAgOiAnY2xpZG9jLWFjdGlvbicsCisgICAgJ2FyZ3MnICAgICAgICAgOiB7CisgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAnZmllbGQnICAgIDogJ2NvbW1hbmQnLAorICAgICAgICAndHlwZScgICAgIDogJ3N0cmluZycsCisgICAgfQorfQorCitkZWYgY2xpd2lraV9hY3Rpb24oZGF0YSk6CisgICAgd29yZHMgPSBbXQorICAgIGlmICdjb21tYW5kJyBpbiBkYXRhOgorICAgICAgICB3b3Jkcy5hcHBlbmQoZGF0YVsnY29tbWFuZCddKQorICAgIHJldHVybiBjb21tYW5kLmdldF9jbGl3aWtpKHdvcmRzKQorCitjb21tYW5kLmFkZF9hY3Rpb24oJ2NsaXdpa2ktYWN0aW9uJywgIGNsaXdpa2lfYWN0aW9uLAorICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJyA6IHsgJ2RhdGEnIDogJyRkYXRhJyB9LCB9ICkKK0lOVEVSTkFMX0NMSVdJS0lfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdjbGl3aWtpJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctaW50ZXJuYWwnLAorICAgICduby1zdXBwb3J0ZWQnIDogRmFsc2UsCisgICAgJ2FjdGlvbicgICAgICAgOiAnY2xpd2lraS1hY3Rpb24nLAorICAgICdhcmdzJyAgICAgICAgIDogeworICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgJ2ZpZWxkJyAgICA6ICdjb21tYW5kJywKKyAgICAgICAgJ3R5cGUnICAgICA6ICdzdHJpbmcnLAorICAgIH0KK30KKworU0hPV19DTElfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctaW50ZXJuYWwnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgQ0xJIGRldGFpbHMnLAorICAgICdkb2MnICAgICAgICAgIDogJ2ludGVybmFsfHNob3ctY2xpJywKKyAgICAnYWN0aW9uJyAgICAgICA6ICdkaXNwbGF5LWNsaScsCisgICAgJ25vLXN1cHBvcnRlZCcgOiBGYWxzZSwKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ2NsaScsCisgICAgICAgIHsKKyAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgJ2ZpZWxkJyAgICA6ICdkZXRhaWwnLAorICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgOiAoJ2RldGFpbHMnKSwKKyAgICAgICAgfSwKKyAgICApCit9CisKKworIworIyBGT1JNQVRTCisjCisKK2ltcG9ydCBmbXRjbnYKKworCitTWVNURU1fSU5URVJGQUNFU19GT1JNQVQgPSB7CisgICAgJ3N5c3RlbS1pbnRlcmZhY2VzJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncyc6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSWR4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICduYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ25ldG1hc2snLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdicm9hZGNhc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgJ3BlZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdkZXRhaWxzJyA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSWR4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZHInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICduZXRtYXNrJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYnJvYWRjYXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGVlcicsCisgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ2JyaWVmJyAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJZHgnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRyJywKKyAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnbmFtZScgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnSUYgTmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2FkZHInICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0lQIEFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdwZWVyJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbmV0bWFzaycgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2Jyb2FkY2FzdCcgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgfQorICAgIH0sCit9CisKKworUE9SVF9GT1JNQVQgPSB7CisgICAgJ3BvcnQnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsgJ0lkeCcsICdzd2l0Y2gnLCAnbnVtYmVyJywgJ25hbWUnLCAnaGFyZHdhcmUtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25maWcnLCAnc3RhdGUnLCAnY3VycmVudC1mZWF0dXJlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdhZHZlcnRpc2VkLWZlYXR1cmVzJywgJ3N1cHBvcnRlZC1mZWF0dXJlcycsICdwZWVyLWZlYXR1cmVzJyBdLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnc3dpdGNoJyAgICAgICAgICAgICAgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LnJlcGxhY2Vfc3dpdGNoX3dpdGhfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbnVtYmVyJyAgICAgICAgICAgICAgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2NvbmZpZycgICAgICAgICAgICAgIDogeyAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9jb25maWcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3RhdGUnICAgICAgICAgICAgICAgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X3N0YXRlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2N1cnJlbnQtZmVhdHVyZXMnICAgIDogeyAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9mZWF0dXJlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhZHZlcnRpc2VkLWZlYXR1cmVzJyA6IHsgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfZmVhdHVyZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3VwcG9ydGVkLWZlYXR1cmVzJyAgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2ZlYXR1cmVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3BlZXItZmVhdHVyZXMnICAgICAgIDogeyAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9mZWF0dXJlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKK30KKworCitDT05UUk9MTEVSX1ZOU19GT1JNQVQgPSB7CisgICAgJ2NvbnRyb2xsZXItdm5zJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbICdJZHgnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3RpdmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAncHJpb3JpdHknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnYXJwTWFuYWdlck1vZGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnYnJvYWRjYXN0TW9kZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdkaGNwTWFuYWdlck1vZGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnZGhjcElwJywKKyAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ25hbWUnICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ05hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYWN0aXZlJyAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnQWN0aXZlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3ByaW9yaXR5JyAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1ByaW9yaXR5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2FycE1hbmFnZXJNb2RlJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0FycCBNb2RlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2Jyb2FkY2FzdE1vZGUnICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0Jyb2FkY2FzdCBNb2RlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2RoY3BNYW5hZ2VyTW9kZScgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0RoY3AgTW9kZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkaGNwSXAnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdkaGNwSXAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgIH0sCisgICAgfSwKK30KKworCitDT05UUk9MTEVSX1ZOU19JTlRFUkZBQ0VTID0geworICAgICdjb250cm9sbGVyLXZucy1pbnRlcmZhY2VzJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbICdJZHgnLAorICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgfSwKKyAgICB9LAorfQorCisKK0NPTlRST0xMRVJfVk5TX0RFRklDRV9JTlRFUkZBQ0VTID0geworICAgICAgICAnY29udHJvbGxlci12bnMtZGV2aWNlLWludGVyZmFjZXMnIDogeworICAgICAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZXZpY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lmYWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKK30KKworCitDT05UUk9MTEVSX0RFVklDRVNfRk9STUFUID0geworICAgICdjb250cm9sbGVyLWRldmljZXMnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsgJ0lkeCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnYXR0YWNobWVudC1wb2ludCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdpcHY0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZsYW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICB9LAorCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ21hYycgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ01BQyBBZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmNvbnZlcnRfdG9fc3RyaW5nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaXB2NCcgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnSVAgQWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5jb252ZXJ0X3RvX3N0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2F0dGFjaG1lbnQtcG9pbnQnICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0F0dGFjaG1lbnQgUG9pbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuY29udmVydF90b19zdHJpbmcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bGFuJyAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdWbGFucycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5jb252ZXJ0X3RvX3N0cmluZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB9LAorICAgIH0sCit9CisKK0RFVklDRU1BTkFHRVJfREVWSUNFX0ZPUk1BVCA9IHsKKyAgICAnZGV2aWNlbWFuYWdlci1kZXZpY2UnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnSWR4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F0dGFjaG1lbnQtcG9pbnRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbmV0d29yay1hZGRyZXNzZXMnCisgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnaG9zdCcgICAgICAgICAgICAgIDogeyAnZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9ob3N0X2FuZF9hbGlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2F0dGFjaG1lbnQtcG9pbnRzJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0F0dGFjaG1lbnQgUG9pbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfZGV2aWNlbWFuYWdlcl9hdHRhY2htZW50X3BvaW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25ldHdvcmstYWRkcmVzc2VzJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0lQIEFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfZGV2aWNlbWFuYWdlcl9pcF9hZGRyZXNzZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICB9LAorICAgIH0sCit9CisKKworQ0xJX0ZPUk1BVCA9IHsKKyAgICAnY2xpJyAgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWworICAgICAgICAgICAgICAgICd2ZXJzaW9uJywKKyAgICAgICAgICAgICAgICAnZGVidWcnLAorICAgICAgICAgICAgICAgICdkZXNjJworICAgICAgICAgICAgICAgICdmb3JtYXQnLAorICAgICAgICAgICAgICAgICdtb2RlcycsCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAndmVyc2lvbicgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1N5bnRheCBWZXJzaW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGVidWcnICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0RlYnVnIExldmVsJywKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGVzYycgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0Rlc2MgTW9kdWxlcycsCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2Zvcm1hdCcgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdGb3JtYXQgTW9kdWxlcycsCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ21vZGVzJyAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTdWJtb2RlcycsCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB9LAorICAgIH0sCit9CisKK0NMSV9NT0RFU19GT1JNQVQgPSB7CisgICAgJ2NsaS1tb2RlcycgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgJ21vZGUnLCAnY29tbWFuZCcsICdzdWJtb2RlJywKKyAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgfQorICAgIH0sCit9CisiIiIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL2xpbmsucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL2xpbmsucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmRkYjA5MAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvbGluay5weQpAQCAtMCwwICsxLDEwNSBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK0xJTktfU0hPV19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdvYmotdHlwZScgICAgIDogJ2xpbmsnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgbGlua3MsIGNvbnRyb2xsZXIgbWFuYWdlZCBzd2l0Y2ggdG8gc3dpdGNoIGludGVyZmFjZXMnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Nob3ctbGluaycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnc2hvdy1saW5rLWV4YW1wbGUnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXJlc3QnLAorICAgICd1cmwnICAgICAgICAgIDogJ2xpbmtzJywKKyAgICAnYWN0aW9uJyAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnIDogJ3F1ZXJ5LXJlc3QnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgICA6ICdkaXNwbGF5JywKKyAgICAgICAgICAgICdzb3J0JyAgIDogWyAnc3JjLXN3aXRjaCcsICdzcmMtcG9ydCcgXSwKKyAgICAgICAgICAgICdmb3JtYXQnIDogJ2xpbmtzJywKKyAgICAgICAgfSwKKyAgICApLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAnbGluaycsCisgICAgICAgICN7CisgICAgICAgICAgICAjJ2ZpZWxkJyAgICAgIDogJ2lkJywKKyAgICAgICAgICAgICMnb3B0aW9uYWwnICAgOiBUcnVlLAorICAgICAgICAgICAgIyd0eXBlJyAgICAgICA6ICdvYmotdHlwZScsCisgICAgICAgICAgICAjJ2NvbXBsZXRpb24nIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICN9LAorICAgICAgICAjIFRoZXNlIHBhcmFtZXRlcnMgbWF5IGJlIHJlLWludHJvZHVjZWQgaWYgdGhlCisgICAgICAgICMgdW5kZXJseWluZyByZXN0IGFwaSBwcm92aWRlcyBzb21lIHNlYXJjaCBwYXJhbWV0ZXJzCisgICAgICAgICN7CisgICAgICAgICAgICAjJ2ZpZWxkJyAgICAgIDogJ3NyYy1zd2l0Y2gnLAorICAgICAgICAgICAgIyd0YWcnICAgICAgICA6ICdzcmMtc3dpdGNoJywKKyAgICAgICAgICAgICMnb3B0aW9uYWwnICAgOiBUcnVlLAorICAgICAgICAgICAgIyd0eXBlJyAgICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgIydjb21wbGV0aW9uJyA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAjfSwKKyAgICAgICAgI3sKKyAgICAgICAgICAgICMnZmllbGQnICAgICAgOiAnZHN0LXN3aXRjaCcsCisgICAgICAgICAgICAjJ3RhZycgICAgICAgIDogJ2RzdC1zd2l0Y2gnLAorICAgICAgICAgICAgIydvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAjJ3R5cGUnICAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAjJ2NvbXBsZXRpb24nIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICN9CisgICAgKQorfQorCitpbXBvcnQgZm10Y252CisKKworTElOS1NfRk9STUFUID0geworICAgICdsaW5rcycgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy1zd2l0Y2gnLCAnc3JjLXBvcnQnLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RzdC1zd2l0Y2gnLCAnZHN0LXBvcnQnLCAndHlwZScgXQorICAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ3NyYy1zd2l0Y2gnICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnU3JjIFN3aXRjaCBEUElEJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucmVwbGFjZV9zd2l0Y2hfd2l0aF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X3N3aXRjaF9hbmRfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3NyYy1wb3J0JyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnU3JjIFBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfb3BlbmZsb3dfcG9ydF9zcmNfc3dpdGNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdzcmMtcG9ydC1zdGF0ZScgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1NyYyBQb3J0IFN0YXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfc3RhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2RzdC1zd2l0Y2gnICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnRHN0IFN3aXRjaCBEUElEJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucmVwbGFjZV9zd2l0Y2hfd2l0aF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X3N3aXRjaF9hbmRfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2RzdC1wb3J0JyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnRHN0IFBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfb3BlbmZsb3dfcG9ydF9kc3Rfc3dpdGNoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkc3QtcG9ydC1zdGF0ZScgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0RzdCBQb3J0IFN0YXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfc3RhdGUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2xpbmstdHlwZScgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnTGluayBUeXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC9wb2xpY3kucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3BvbGljeS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYWMwMjA5Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9wb2xpY3kucHkKQEAgLTAsMCArMSwzMzggQEAKK2ltcG9ydCBjb21tYW5kCitpbXBvcnQganNvbgoraW1wb3J0IGZtdGNudgorUE9MSUNZX0NPTkZJR19GT1JNQVQgPSB7CisgICAgJ3BvbGljeS1jb25maWcnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvbGljeS1pZCcsCisgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICB9LAorICAgIH0sCit9CisKK1BPTElDWV9TVUJNT0RFX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgIDogJ3BvbGljeScsCisgICAgJ3Nob3J0LWhlbHAnICAgIDogJ0VudGVyIHBvbGljeSBzdWJtb2RlLCBjb25maWd1cmUgU1IgcG9saWN5IGRldGFpbHMnLAorICAgICdtb2RlJyAgICAgICAgICA6ICdjb25maWcnLAorICAgICdjb21tYW5kLXR5cGUnICA6ICdjb25maWctc3VibW9kZScsCisgICAgJ29iai10eXBlJyAgICAgIDogJ3BvbGljeS1jb25maWcnLAorICAgICdzdWJtb2RlLW5hbWUnICA6ICdjb25maWctcG9saWN5JywKKyAgICAncGFyZW50LWZpZWxkJyAgOiBOb25lLAorICAgICdkb2MnICAgICAgICAgICA6ICdwb2xpY3l8cG9saWN5JywKKyAgICAnZG9jLWV4YW1wbGUnICAgOiAncG9saWN5fHBvbGljeS1leGFtcGxlJywKKyAgICAjJ2NvbXBsZXRpb24nICAgIDogJ3BvbGljeS1pZC1jb21wbGV0aW9uJywKKyAgICAnYXJncycgOiB7CisgICAgICAgICdhY3Rpb24nICAgICAgIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ2NyZWF0ZS1wb2xpY3knLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAncHVzaC1tb2RlLXN0YWNrJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICduby1hY3Rpb24nICAgIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3JlbW92ZS1wb2xpY3knLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgJ2Nob2ljZXMnICAgICAgOiAoCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdwb2xpY3ktaWQnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyAgOiAnRW50ZXIgYSBwb2xpY3kgbmFtZScsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3BvbGljeXxwb2xpY3knLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgICA6ICdwb2xpY3ktdHlwZScsCisgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2V0IHR5cGUgb2YgcG9saWN5JywKKyAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAncG9saWN5fHBvbGljeScsCisgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3BvbGljeS10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgICAgOiAoJ3R1bm5lbC1mbG93JywnbG9hZGJhbGFuY2VkJywnYXZvaWQnLCdkZW55JyksIAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAnc3ludGF4LWhlbHAnICA6ICdFbnRlciBhIHBvbGljeSB0eXBlJywKKyAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAncG9saWN5fHBvbGljeScsCisgICAgICAgICAgICAgICAgICAgICMnZG9jLWluY2x1ZGUnICA6IFsgJ3R5cGUtZG9jJyBdLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApLAorICAgICAgICApLAorICAgIH0KK30KKworU1JDX0lQX01BVENIID0geworICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3NyY19pcCcsCisgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnY2lkci1yYW5nZScsCisgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgOiAnc3JjLWNpZHInLAorICAgICAgICAgICAgICAgICMnZGF0YS1oYW5kbGVyJyA6ICdzcGxpdC1jaWRyLWRhdGEtaW52ZXJzZScsCisgICAgICAgICAgICAgICAgIydkZXN0LWlwJyAgICAgIDogJ3NyYy1pcCcsCisgICAgICAgICAgICAgICAgIydkZXN0LW5ldG1hc2snIDogJ3NyYy1pcC1tYXNrJywKKyAgICAgICAgICAgICAgICAnZGF0YScgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHN0X2lwJyAgICAgIDogJzAuMC4wLjAvMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x2bnMtYWNjZXNzLWxpc3QtY2lkci1yYW5nZScsCisgICAgICAgICAgICB9CisgICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAndG9rZW4nICA6ICdhbnknLAorICAgICAgICAgICAgICAgICdkYXRhJyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NyY19pcCcgICAgICA6ICcwLjAuMC4wLzAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RzdF9pcCcgICAgICA6ICcwLjAuMC4wLzAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZG9jJyAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWlwLWFueScsCisgICAgICAgICAgICB9CisgICAgICAgICksCisgICAgKQorfQorCitTUkNfUE9SVF9NQVRDSCA9ICgKKyAgICB7CisgICAgICAgICdmaWVsZCcgIDogJ3NyY190cF9wb3J0X29wJywKKyAgICAgICAgJ3R5cGUnICAgOiAnZW51bScsCisgICAgICAgICd2YWx1ZXMnIDogKCdlcScsICduZXEnKSwKKyAgICAgICAgJ2RvYycgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1wb3J0LW9wLSsnLAorICAgIH0sCisgICAgeworICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnc3JjX3RwX3BvcnQnLAorICAgICAgICAgICAgICAgICdiYXNlLXR5cGUnICAgIDogJ2hleC1vci1kZWNpbWFsLWludGVnZXInLAorICAgICAgICAgICAgICAgICdyYW5nZScgICAgICAgIDogKDAsNjU1MzUpLAorICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2hleC10by1pbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LXBvcnQtaGV4JywKKyAgICAgICAgICAgICAgICAnZG9jLWluY2x1ZGUnICA6IFsgJ3JhbmdlJyBdLAorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGQnICAgOiAnc3JjX3RwX3BvcnQnLAorICAgICAgICAgICAgICAgICd0eXBlJyAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAndmFsdWVzJyAgOiBmbXRjbnYudGNwX25hbWVfdG9fbnVtYmVyX2RpY3QsCisgICAgICAgICAgICAgICAgJ3Blcm11dGUnIDogJ3NraXAnLAorICAgICAgICAgICAgICAgICdkb2MnICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LXBvcnQtdHlwZScsCisgICAgICAgICAgICB9LAorICAgICAgICApLAorICAgIH0sCispCisKKworRFNUX0lQX01BVENIID0geworICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2RzdF9pcCcsCisgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnY2lkci1yYW5nZScsCisgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgOiAnZHN0LWNpZHInLAorICAgICAgICAgICAgICAgICMnZGF0YS1oYW5kbGVyJyA6ICdzcGxpdC1jaWRyLWRhdGEtaW52ZXJzZScsCisgICAgICAgICAgICAgICAgIydkZXN0LWlwJyAgICAgIDogJ2RzdC1pcCcsCisgICAgICAgICAgICAgICAgIydkZXN0LW5ldG1hc2snIDogJ2RzdC1pcC1tYXNrJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWNpZHItcmFuZ2UnLAorICAgICAgICAgICAgfSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICd0b2tlbicgIDogJ2FueScsCisgICAgICAgICAgICAgICAgJ2RhdGEnICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHN0X2lwJyAgICAgIDogJzAuMC4wLjAvMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdkb2MnICAgIDogJ3Zuc3x2bnMtYWNjZXNzLWxpc3QtaXAtYW55JywKKyAgICAgICAgICAgIH0KKyAgICAgICAgKSwKKyAgICApCit9CisKKworRFNUX1BPUlRfTUFUQ0ggPSAoCisgICAgeworICAgICAgICAnZmllbGQnIDogJ2RzdF90cF9wb3J0X29wJywKKyAgICAgICAgJ3R5cGUnICA6ICdlbnVtJywKKyAgICAgICAgJ3ZhbHVlcycgOiAoJ2VxJywgJ25lcScpLAorICAgICAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LXBvcnQtb3ArJywKKyAgICB9LAorICAgIHsKKyAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2RzdF90cF9wb3J0JywKKyAgICAgICAgICAgICAgICAnYmFzZS10eXBlJyAgICA6ICdoZXgtb3ItZGVjaW1hbC1pbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAncmFuZ2UnICAgICAgICA6ICgwLDY1NTM1KSwKKyAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdoZXgtdG8taW50ZWdlcicsCisgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1wb3J0LWhleCcsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICA6ICdkc3RfdHBfcG9ydCcsCisgICAgICAgICAgICAgICAgJ3R5cGUnICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICd2YWx1ZXMnICA6IGZtdGNudi50Y3BfbmFtZV90b19udW1iZXJfZGljdCwKKyAgICAgICAgICAgICAgICAncGVybXV0ZScgOiAnc2tpcCcKKyAgICAgICAgICAgIH0sCisgICAgICAgICksCisgICAgfQorKQorCitQT0xJQ1lfRkxPV19FTlRSWV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgIDogJ2Zsb3ctZW50cnknLAorICAgICdtb2RlJyAgICAgICAgICAgIDogJ2NvbmZpZy1wb2xpY3knLAorICAgICdjb21tYW5kLXR5cGUnICAgIDogJ2NvbmZpZycsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgOiAnQ29uZmlndXJlIGZsb3cgZW50cnknLAorICAgICdkb2MnICAgICAgICAgICAgIDogJ2Zsb3ctZW50cnl8Zmxvdy1lbnRyeScsCisgICAgJ2RvYy1leGFtcGxlJyAgICAgOiAnZmxvdy1lbnRyeXxmbG93LWVudHJ5LWV4YW1wbGUnLAorICAgICdwYXJlbnQtZmllbGQnICAgIDogJ3BvbGljeScsCisgICAgJ2FyZ3MnIDogeworICAgICAgICAnYWN0aW9uJyAgICAgICA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICdjcmVhdGUtcG9saWN5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICA6ICdwcm90b190eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyA6ICgnaXAnLCd0Y3AnLCd1ZHAnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWVudHJ5LXR5cGUtKycsCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3Byb3RvX3R5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdiYXNlLXR5cGUnICAgIDogJ2hleC1vci1kZWNpbWFsLWludGVnZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyYW5nZScgICAgICAgIDogKDAsMjU1KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgICA6ICdpcCBwcm90b2NvbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnaGV4LXRvLWludGVnZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x2bnMtYWNjZXNzLWVudHJ5LXR5cGUtaXAtcHJvdG9jb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb2MtaW5jbHVkZScgIDogWyAncmFuZ2UnIF0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAjIENvbXBsZXhpdHkgYXJpc2VzIGZyb20gdGhlIFNSQ19JUCBtYXRjaCBwYXJ0IAorICAgICAgICAgICAgICAgICMgYmVpbmcsIHJlcXVpcmVkLCB3aGlsZSB0aGUgcG9ydCBtYXRjaAorICAgICAgICAgICAgICAgICMgaXMgb3B0aW9uYWwsIGFzIGlzIHRoZSBEU1RfSVAgbWF0Y2gsIGJ1dCB0aGUKKyAgICAgICAgICAgICAgICAjIERTVF9QT1JUX01BVENIIGlzIG9ubHkgcG9zc2libGUgdG8gZGVzY3JpYmUgd2hlbgorICAgICAgICAgICAgICAgICMgdGhlIERTVF9JUCBwYXJ0IGlzIGluY2x1ZGVkCisgICAgICAgICAgICAgICAgU1JDX0lQX01BVENILAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgJ2FyZ3MnIDogU1JDX1BPUlRfTUFUQ0gsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICdhcmdzJyA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgIERTVF9JUF9NQVRDSCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FyZ3MnIDogRFNUX1BPUlRfTUFUQ0gsCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApLAorICAgICAgICApLAorICAgIH0sCit9CitQT0xJQ1lfVFVOTkVMX0lEX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgOiAndHVubmVsJywKKyAgICAnbW9kZScgICAgICAgICAgICA6ICdjb25maWctcG9saWN5JywKKyAgICAjJ29iai10eXBlJyAgICAgICAgOiAncG9saWN5LWNvbmZpZycsCisgICAgJ2NvbW1hbmQtdHlwZScgICAgOiAnY29uZmlnJywKKyAgICAnc2hvcnQtaGVscCcgICAgICA6ICdDb25maWd1cmUgdHVubmVsIGlkJywKKyAgICAjJ2RvYycgICAgICAgICAgICAgOiAncG9saWN5fHR1bm5lbCcsCisgICAgIydkb2MtZXhhbXBsZScgICAgIDogJ3BvbGljeXxwb2xpY3ktdHVubmVsLWV4YW1wbGUnLAorICAgICdwYXJlbnQtZmllbGQnICAgIDogJ3BvbGljeScsCisgICAgJ2FyZ3MnIDogeworICAgICAgICAnYWN0aW9uJyAgICAgICA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICdjcmVhdGUtcG9saWN5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ3R1bm5lbGlkLWNvbXBsZXRpb24nLAorICAgICAgICAnZmllbGQnICAgICAgICA6ICd0dW5uZWwtaWQnLAorICAgICAgICAndHlwZScgICAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgJ3N5bnRheC1oZWxwJyAgOiAnRW50ZXIgdHVubmVsIGlkJywKKyAgICAgICAgJ2RvYycgICAgICAgICAgOiAncG9saWN5fHR1bm5lbC1pZCcsCisgICAgICAgICdkb2MtaW5jbHVkZScgIDogWyAndHlwZS1kb2MnIF0sCisgICAgfQorfQorCitQT0xJQ1lfUFJJT1JJVFlfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICA6ICdwcmlvcml0eScsCisgICAgJ21vZGUnICAgICAgICAgICAgOiAnY29uZmlnLXBvbGljeScsCisgICAgJ2NvbW1hbmQtdHlwZScgICAgOiAnY29uZmlnJywKKyAgICAnc2hvcnQtaGVscCcgICAgICA6ICdDb25maWd1cmUgcG9saWN5IHByaW9yaXR5JywKKyAgICAnZG9jJyAgICAgICAgICAgICA6ICdwb2xpY3l8cHJpb3JpdHknLAorICAgICdkb2MtZXhhbXBsZScgICAgIDogJ3BvbGljeXxwb2xpY3ktcHJpb3JpdHktZXhhbXBsZScsCisgICAgJ3BhcmVudC1maWVsZCcgICAgOiAncG9saWN5JywKKyAgICAnYXJncycgOiB7CisgICAgICAgICdhY3Rpb24nICAgICAgIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ2NyZWF0ZS1wb2xpY3knLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgJ2ZpZWxkJyAgICAgOiAncHJpb3JpdHknLAorICAgICAgICAnYmFzZS10eXBlJyA6ICdpbnRlZ2VyJywKKyAgICAgICAgJ3JhbmdlJyAgICAgOiAoMCwgNjU1MzUpLAorICAgIH0KK30KKworU0hPV19QT0xJQ1lfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnY29tbWFuZC10eXBlJyAgICAgICAgOiAnZGlzcGxheS10YWJsZScsCisgICAgJ2FsbC1oZWxwJyAgICAgICAgICAgIDogJ1Nob3cgc3dpdGNoIGluZm9ybWF0aW9uJywKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnU2hvdyBzd2l0Y2ggc3VtbWFyeScsCisgICAgIydvYmotdHlwZScgICAgICAgICAgICA6ICdzd2l0Y2hlcycsCisgICAgJ2RvYycgICAgICAgICAgICAgICAgIDogJ3N3aXRjaHxzaG93JywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnc3dpdGNofHNob3ctZXhhbXBsZScsCisgICAgJ2FyZ3MnIDogKAorICAgICAgICB7CisgICAgICAgICAgICAndG9rZW4nICA6ICdwb2xpY3knLAorICAgICAgICAgICAgJ2ZpZWxkJyAgOiAnc2hvd3BvbGljeScsCisgICAgICAgICAgICAnYWN0aW9uJyA6ICdkaXNwbGF5LXJlc3QnLAorICAgICAgICAgICAgJ3NvcnQnICAgOiAgWydwb2xpY3lJZCcsXSwKKyAgICAgICAgICAgICdkb2MnICAgIDogJ3N3aXRjaHxzaG93JywKKyAgICAgICAgICAgICd1cmwnICAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3dwb2xpY3knLAorICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ2Zvcm1hdCcgOiAnc2hvd19wb2xpY3knLAorICAgICAgICB9LAorICAgICkKK30KKworCitkZWYgdHVubmVsX2lkX2NvbXBsZXRpb24ocHJlZml4LCBjb21wbGV0aW9ucyk6CisgICAgcXVlcnlfdXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXN0L3YxL3Nob3d0dW5uZWwiCisgICAgcmVzdWx0ID0gY29tbWFuZC5zZG5zaC5zdG9yZS5yZXN0X3NpbXBsZV9yZXF1ZXN0KHF1ZXJ5X3VybCkKKyAgICBlbnRyaWVzID0ganNvbi5sb2FkcyhyZXN1bHQpCisgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgIGlmIGVudHJ5Wyd0dW5uZWxJZCddLnN0YXJ0c3dpdGgocHJlZml4KToKKyAgICAgICAgICAgIGNvbXBsZXRpb25zW2VudHJ5Wyd0dW5uZWxJZCddKycgJ10gPSBlbnRyeVsndHVubmVsSWQnXQorICAgIHJldHVybgorCitjb21tYW5kLmFkZF9jb21wbGV0aW9uKCd0dW5uZWwtaWQtY29tcGxldGlvbicsIHR1bm5lbF9pZF9jb21wbGV0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsgJ3ByZWZpeCcgICAgICAgOiAnJHRleHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb25zJyAgOiAnJGNvbXBsZXRpb25zJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KQorCisKK2RlZiBwb2xpY3lfaWRfY29tcGxldGlvbihwcmVmaXgsIGNvbXBsZXRpb25zKToKKyAgICBxdWVyeV91cmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc3QvdjEvc2hvd3BvbGljeSIKKyAgICByZXN1bHQgPSBjb21tYW5kLnNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QocXVlcnlfdXJsKQorICAgIGVudHJpZXMgPSBqc29uLmxvYWRzKHJlc3VsdCkKKyAgICBmb3IgZW50cnkgaW4gZW50cmllczoKKyAgICAgICAgaWYgZW50cnlbJ3BvbGljeUlkJ10uc3RhcnRzd2l0aChwcmVmaXgpOgorICAgICAgICAgICAgY29tcGxldGlvbnNbZW50cnlbJ3BvbGljeUlkJ10rJyAnXSA9IGVudHJ5Wydwb2xpY3lJZCddCisgICAgcmV0dXJuCisKK2NvbW1hbmQuYWRkX2NvbXBsZXRpb24oJ3BvbGljeS1pZC1jb21wbGV0aW9uJywgcG9saWN5X2lkX2NvbXBsZXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeyAncHJlZml4JyAgICAgICA6ICckdGV4dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbnMnICA6ICckY29tcGxldGlvbnMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC9yb3V0ZXIucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3JvdXRlci5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMDM4M2NhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9yb3V0ZXIucHkKQEAgLTAsMCArMSwxMDMgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworaW1wb3J0IGZtdGNudgorU1dJVENIX1JPVVRFUl9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnbG9naW4nLAorICAgICdjb21tYW5kLXR5cGUnICAgICAgICA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnYWxsLWhlbHAnICAgICAgICAgICAgOiAnU2hvdyBzd2l0Y2ggaW5mb3JtYXRpb24nLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdTaG93IHN3aXRjaCBzdW1tYXJ5JywKKyAgICAjJ29iai10eXBlJyAgICAgICAgICAgIDogJ3N3aXRjaGVzJywKKyAgICAnZG9jJyAgICAgICAgICAgICAgICAgOiAnc3dpdGNofHNob3cnLAorICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICdzd2l0Y2h8c2hvdy1leGFtcGxlJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgIDogJ3JvdXRlcicsCisgICAgICAgICAgICAnZmllbGQnICA6ICdyb3V0ZXInLAorICAgICAgICAgICAgJ2FjdGlvbicgOiAnZGlzcGxheS1yZXN0JywKKyAgICAgICAgICAgICdzb3J0JyAgIDogWydkcGlkJyxdLAorICAgICAgICAgICAgJ2RvYycgICAgOiAnc3dpdGNofHNob3cnLAorICAgICAgICAgICAgJ3VybCcgICAgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAncm91dGVycycsCisgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnZm9ybWF0JyA6ICdyb3V0ZXInLAorICAgICAgICB9LAorICAgICkKK30KKworCisKK1JPVVRFUl9TSE9XX1JFQUxUSU1FX1NUQVRTX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdsb2dpbicsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ1Nob3cgcm91dGVyIHN0YXRzIHZpYSBkaXJlY3QgcXVlcnkgdG8gc3dpdGNoJywKKyAgICAnbm8tc3VwcG9ydGVkJyAgICAgICAgOiBGYWxzZSwKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnU2hvdyByZWFsdGltZSBzdGF0cyBmb3Igcm91dGVyJywKKyAgICAncGFyZW50LWZpZWxkJyAgICAgICAgOiBOb25lLAorICAgICdvYmotdHlwZScgICAgICAgICAgICA6ICdzd2l0Y2hlcycsCisgICAgJ2FyZ3MnICAgICAgICAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAndG9rZW4nICAgICAgICA6ICdyb3V0ZXInLAorICAgICAgICAgICAgJ29iai10eXBlJyAgICAgOiAnc3dpdGNoZXMnLAorICAgICAgICAgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisgICAgICAgICAgICAjICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktcmVzdCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2RwaWQnLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1hbGlhcy1jaG9pY2UnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgOiAnc3dpdGNoIGRwaWQgb3IgYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgICAgIDogeyAnZGV0YWlsJyA6ICdzY29wZWQnIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICAgIDogJ2FsbCcsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3Jlc2VydmVkfGFsbCcsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdyb3V0ZXJyZWFsdGltZXN0YXRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9ydCcsICdhZGphY2VuY3knCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdkaXNwbGF5LXJlc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NvcnQnICAgICAgIDogWydwb3J0Tm8nXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICd1cmwnICAgICAgICA6ICdyb3V0ZXIvJShkcGlkKXMvJShyb3V0ZXJyZWFsdGltZXN0YXRzKXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc3QtdHlwZScgIDogJ2RpY3Qtb2YtbGlzdC1vZi1zd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCcgICAgIDogJ3JvdXRlcl8lKHJvdXRlcnJlYWx0aW1lc3RhdHMpcycsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnU2hvdyByZXF1ZXN0ZWQgaXRlbSBieSBxdWVyeWluZyByb3V0ZXIvc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdzd2l0Y2h8cmVhbHRpbWUtKycsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgOiAnZGV0YWlsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgOiAoJ2RldGFpbHMnLCdicmllZicpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICA6ICdmb3JtYXR8KycsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICkKKyAgICAgICAgfQorICAgICkKK30KZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvc25tcC5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvc25tcC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hZDliMzFlCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9zbm1wLnB5CkBAIC0wLDAgKzEsMjE0IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworIyAoYykgaW4gMjAxMiBieSBCaWcgU3dpdGNoIE5ldHdvcmtzIC0gQWxsIHJpZ2h0cyByZXNlcnZlZAorIworIyBzbm1wLXNlcnZlciBjb21tYW5kcworIworCitpbXBvcnQgY29tbWFuZAorZnJvbSBtaWR3IGltcG9ydCBsb2NhbF9pbnRlcmZhY2VzX2ZpcmV3YWxsX29wZW4KKworZGVmIHNubXBfdmFsaWRhdGVfZmlyZXdhbGwoZGF0YSk6CisgICAgaW50ZnMgPSBsb2NhbF9pbnRlcmZhY2VzX2ZpcmV3YWxsX29wZW4oIFsgJ3VkcCcsICd0Y3AnIF0sIDE2MSkKKyAgICBpZiBsZW4oaW50ZnMpID09IDA6CisgICAgICAgICMgYnkgaXNzdWVpbmcgYSB3YXJuaW5nLCBydW5uaW5nLWNvbmZpZyBkb2Vzbid0IGRpc3BsYXkgdGhlCisgICAgICAgICMgZXJyb3IgZHVyaW5nIHJlcGxheS4KKyAgICAgICAgY29tbWFuZC5zZG5zaC53YXJuaW5nKCdTTk1QIHNlcnZlciBwb3J0IG5vdCBvcGVuIG9uIGFueSBjb250cm9sbGVyLW5vZGUgJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludGVyZmFjZS4gVXNlIGZpcmV3YWxsIHJ1bGUgY29uZmlndXJhdGlvbiB0byBvcGVuICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTTk1QIFVEUCBwb3J0IDE2MScpCisKKyAgICAKKworY29tbWFuZC5hZGRfYWN0aW9uKCdzbm1wLXZhbGlkYXRlLWZpcmV3YWxsJywgc25tcF92YWxpZGF0ZV9maXJld2FsbCwKKyAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7ICdkYXRhJyAgIDogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSkKKworIiIiCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIFNOTVAgY29tbWFuZCBkZXNjcmlwdGlvbnMgCisjCisjICBbbm9dIHNubXAtc2VydmVyIGVuYWJsZQorIyAgW25vXSBzbm1wLXNlcnZlciBjb21tdW5pdHkgPHN0cmluZz4KKyMgIFtub10gc25tcC1zZXJ2ZXIgbG9jYXRpb24gPHN0cmluZz4KKyMgIFtub10gc25tcC1zZXJ2ZXIgY29udGFjdCA8c3RyaW5nPgorIworU05NUF9TRVJWRVJfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzbm1wLXNlcnZlcicsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnKicsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU01OUCBjb25maWd1cmF0aW9uLCBlbmFibGUgc2VydmVyLCBjb25maWd1cmUgcGFyYW1ldGVycycsCisgICAgJ2RvYycgICAgICAgICAgOiAnc25tcHxzbm1wLXNlcnZlcicsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnc25tcHxzbm1wLXNlcnZlci1leGFtcGxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICd1cGRhdGUtY29uZmlnJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdzbm1wLXNlcnZlci1jb25maWcnLAorICAgICdkYXRhJyAgICAgICAgIDogeyAnaWQnIDogJ3NubXAnIH0sCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdlbmFibGUnLAorICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnRW5hYmxlIFNOTVAnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnc25tcHxzbm1wLXNlcnZlci1lbmFibGUnLAorICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAndXBkYXRlLWNvbmZpZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnICAgICAgICAgICAgOiAnc25tcCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2VydmVyLWVuYWJsZScgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAnc25tcC12YWxpZGF0ZS1maXJld2FsbCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICduby1hY3Rpb24nICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3VwZGF0ZS1jb25maWcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZCcgICAgICAgICAgICA6ICdzbm1wJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NlcnZlci1lbmFibGUnIDogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICAgICAgIDogJ2NvbW11bml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgICAgICA6ICdTZXQgY29tbXVuaXR5IHN0cmluZyBhbmQgYWNjZXNzIHByaXZzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgICAgICAgIDogeyAnY29tbXVuaXR5JyA6IE5vbmUgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgIDogJ3NubXB8c25tcC1zZXJ2ZXItY29tbXVuaXR5JywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgICAgICAgOiAncm8nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgICAgOiAnUmVhZC1vbmx5IGFjY2VzcyB3aXRoIHRoaXMgY29tbXVuaXR5IHN0cmluZycsCisgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ2NvbW11bml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyAgICAgOiAnVmFsdWUgZm9yIHRoZSBTTk1QIGNvbW11aXR5IHN0cmluZycsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICAgICAgIDogJ2xvY2F0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgICAgIDogJ1RleHQgZm9yIG1pYiBvYmplY3Qgc3lzTG9jYXRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICAgICAgICAgOiB7ICdsb2NhdGlvbicgOiBOb25lIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICdzbm1wfHNubXAtc2VydmVyLWxvY2F0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAnbG9jYXRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdzeW50YXgtaGVscCcgICAgIDogJ1ZhbHVlIGZvciB0aGUgU05NUCBsb2NhdGlvbiBzdHJpbmcnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgICAgICA6ICdjb250YWN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgICAgIDogJ1RleHQgZm9yIG1pYiBvYmplY3Qgc3lzQ29udGFjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgICAgICAgICA6IHsgJ2NvbnRhY3QnIDogTm9uZSB9LAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgICAgOiAnc25tcHxzbm1wLXNlcnZlci1jb250YWN0JywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAnY29udGFjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyAgICAgOiAnVmFsdWUgZm9yIHRoZSBTTk1QIGNvbnRhY3Qgc3RyaW5nJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgKSwKKyAgICAgICAgfSwKKyAgICApCit9CisiIiIKKworZGVmIHNubXBfZmlyZXdhbGxfaW50ZXJmYWNlcyhkYXRhKToKKyAgICAiIiIKKyAgICBUaGVyZSBpcyBjdXJyZW50bHkgb25seSBvbmUgcm93IG9mIGRhdGEgaW4gdGhlIHF1ZXJ5LAorICAgIGFkZCB0byB0aGF0IGEgJ2ludGVyZmFjZXMnIGVudGl0eSwgd2hpY2ggbGlzdHMgdGhlIGludGVyZmFjZXMKKyAgICB3aGljaCBoYXZlIHRoZSBzbm1wIHBvcnQgb3BlbgorICAgICIiIgorICAgIGlmIG5vdCBoYXNhdHRyKGNvbW1hbmQsICdxdWVyeV9yZXN1bHQnKToKKyAgICAgICAgcmV0dXJuCisgICAgaWYgY29tbWFuZC5xdWVyeV9yZXN1bHQgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuCisKKyAgICBpbnRmcyA9IGxvY2FsX2ludGVyZmFjZXNfZmlyZXdhbGxfb3BlbiggWyAndWRwJywgJ3RjcCcgXSwgMTYxKQorCisgICAgaW50ZnNfdGV4dCA9ICcsICcuam9pbihbeFsnZGlzY292ZXJlZC1pcCddIGlmIHhbJ2Rpc2NvdmVyZWQtaXAnXSAhPSAnJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgeFsnaXAnXSBmb3IgeCBpbiBpbnRmc10pCisKKyAgICBmb3IgcSBpbiBjb21tYW5kLnF1ZXJ5X3Jlc3VsdDoKKyAgICAgICAgcVsnaW50ZXJmYWNlcyddID0gaW50ZnNfdGV4dAorCisKK2NvbW1hbmQuYWRkX2FjdGlvbignc25tcC1maXJld2FsbC1pbnRlcmZhY2VzJywgc25tcF9maXJld2FsbF9pbnRlcmZhY2VzLAorICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsgJ2RhdGEnICAgOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KQorCisiIiIKK1NOTVBfU0VSVkVSX1NIT1dfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICA6ICdsb2dpbicsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyBjb25maWd1cmVkIHNubXAgZGV0YWlscycsCisgICAgJ2RvYycgICAgICAgICAgOiAnc25tcHxzaG93JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdzbm1wfHNob3ctZXhhbXBsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisgICAgJ29iai10eXBlJyAgICAgOiAnc25tcC1zZXJ2ZXItY29uZmlnJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IFNOTVAgY29uZmlndXJhdGlvbicsCisgICAgJ2Zvcm1hdCcgICAgICAgOiAnc25tcC1jb25maWctc3VtbWFyeScsCisgICAgJ2FyZ3MnIDogKAorICAgICAgICAnc25tcCcsCisgICAgKSwKKyAgICAnYWN0aW9uJyAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnIDogJ3F1ZXJ5LXRhYmxlJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnICA6ICdzbm1wLWZpcmV3YWxsLWludGVyZmFjZXMnCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdwcm9jJyAgIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICAgICB9LAorICAgICksCit9CisKK2ltcG9ydCBmbXRjbnYKKworU05NUF9DT05GSUdfU1VNTUFSWV9GT1JNQVQgPSB7CisgICAgJ3NubXAtY29uZmlnLXN1bW1hcnknIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyAgICAgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZXJ2ZXItZW5hYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbW11bml0eScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2NhdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb250YWN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludGVyZmFjZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ3NlcnZlci1lbmFibGUnICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1NOTVAgc2VydmVyIHN0YXR1cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyAgICA6IGZtdGNudi5yZXBsYWNlX2Jvb2xlYW5fd2l0aF9lbmFibGVfZGlzYWJsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2NvbW11bml0eScgICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQ29tbXVuaXR5IHN0cmluZycgfSwKKyAgICAgICAgICAgICdsb2NhdGlvbicgICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1N5c3RlbSBsb2NhdGlvbicgfSwKKyAgICAgICAgICAgICdjb250YWN0JyAgICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1N5c3RlbSBjb250YWN0JyB9LAorICAgICAgICB9LAorICAgIH0KK30KKyIiIgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvc25tcF9tb2RlbC5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvc25tcF9tb2RlbC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MGE1YWE4Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9zbm1wX21vZGVsLnB5CkBAIC0wLDAgKzEsMTkgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitpbXBvcnQgY29tbWFuZAorCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfc3VibW9kZSgnc25tcC1zZXJ2ZXItY29uZmlnJykKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvc25tcF9ydW5fY29uZmlnLnB5IGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9zbm1wX3J1bl9jb25maWcucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjM2ZjI0NAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvc25tcF9ydW5fY29uZmlnLnB5CkBAIC0wLDAgKzEsOTQgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCisjIHNubXAuCisjCisKK2ltcG9ydCBydW5fY29uZmlnCitpbXBvcnQgdXRpZgorCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIGNyZWF0ZV9vYmpfdHlwZV9kaWN0KGNvbnRleHQsIG9ial90eXBlLCBmaWVsZCk6CisgICAgIiIiCisgICAgU2hvdWxkIHRoZXJlIGJlIHNvbWUgY29sbGVjdGlvbnMgb2YgbWlkZGVsZXdhcmUgZnVuY3Rpb25zIGZvciB1c2UgYnkgcGFja2FnZXM/CisgICAgIiIiCisgICAgZW50cmllcyA9IGNvbnRleHQuZ2V0X3RhYmxlX2Zyb21fc3RvcmUob2JqX3R5cGUpCisgICAgcmVzdWx0X2RpY3QgPSB7fQorICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICBpZiBlbnRyeVtmaWVsZF0gaW4gcmVzdWx0X2RpY3Q6CisgICAgICAgICAgICByZXN1bHRfZGljdFtlbnRyeVtmaWVsZF1dLmFwcGVuZChlbnRyeSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3VsdF9kaWN0W2VudHJ5W2ZpZWxkXV0gPSBbZW50cnldCisKKyAgICByZXR1cm4gcmVzdWx0X2RpY3QKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgcnVubmluZ19jb25maWdfc25tcChjb250ZXh0LCBjb25maWcsIHdvcmRzKToKKyAgICBzX29ial90eXBlICA9ICdzbm1wLXNlcnZlci1jb25maWcnCisKKyAgICBzbm1wX2NvbmZpZyA9IGNvbnRleHQuZ2V0X3RhYmxlX2Zyb21fc3RvcmUoc19vYmpfdHlwZSkKKyAgICBpZiBsZW4oc25tcF9jb25maWcpID4gMToKKyAgICAgICAgcHJpbnQgJ3J1bm5pbmdfY29uZmlnX3NubXA6IG1vcmUgdGhhbiBvbmUgc25tcCByZWNvcmQnCisgICAgaWYgbGVuKHNubXBfY29uZmlnKSA9PSAwOgorICAgICAgICByZXR1cm4KKworICAgIHNubXBfY29uZmlnID0gc25tcF9jb25maWdbMF0KKworCisgICAgc19jb25maWcgPSBbXQorICAgIGlmIHJ1bl9jb25maWcubm90X2RlZmF1bHRfdmFsdWUoc19vYmpfdHlwZSwgJ2NvbW11bml0eScsIHNubXBfY29uZmlnLmdldCgnY29tbXVuaXR5JykpOgorICAgICAgICBzX2NvbmZpZy5hcHBlbmQoJ3NubXAtc2VydmVyIGNvbW11bml0eSBybyAlc1xuJyAlCisgICAgICAgICAgICAgICAgICAgICAgICB1dGlmLnF1b3RlX3N0cmluZyhzbm1wX2NvbmZpZ1snY29tbXVuaXR5J10pKQorCisgICAgaWYgcnVuX2NvbmZpZy5ub3RfZGVmYXVsdF92YWx1ZShzX29ial90eXBlLCAnbG9jYXRpb24nLCBzbm1wX2NvbmZpZy5nZXQoJ2xvY2F0aW9uJykpOgorICAgICAgICBzX2NvbmZpZy5hcHBlbmQoJ3NubXAtc2VydmVyIGxvY2F0aW9uICVzXG4nICUKKyAgICAgICAgICAgICAgICAgICAgICAgIHV0aWYucXVvdGVfc3RyaW5nKHNubXBfY29uZmlnWydsb2NhdGlvbiddKSkKKworICAgIGlmIHJ1bl9jb25maWcubm90X2RlZmF1bHRfdmFsdWUoc19vYmpfdHlwZSwgJ2NvbnRhY3QnLCBzbm1wX2NvbmZpZy5nZXQoJ2NvbnRhY3QnKSk6CisgICAgICAgIHNfY29uZmlnLmFwcGVuZCgnc25tcC1zZXJ2ZXIgY29udGFjdCAlc1xuJyAlCisgICAgICAgICAgICAgICAgICAgICAgICB1dGlmLnF1b3RlX3N0cmluZyhzbm1wX2NvbmZpZ1snY29udGFjdCddKSkKKyAgICBpZiBydW5fY29uZmlnLm5vdF9kZWZhdWx0X3ZhbHVlKHNfb2JqX3R5cGUsICdzZXJ2ZXItZW5hYmxlJywgc25tcF9jb25maWdbJ3NlcnZlci1lbmFibGUnXSk6CisgICAgICAgIHNfY29uZmlnLmFwcGVuZCgnc25tcC1zZXJ2ZXIgZW5hYmxlXG4nKQorCisgICAgaWYgbGVuKHNfY29uZmlnKTogICAKKyAgICAgICAgY29uZmlnLmFwcGVuZCgnIVxuJykKKyAgICAgICAgY29uZmlnICs9IHNfY29uZmlnCisKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitzbm1wX3J1bm5pbmdfY29uZmlnX3R1cGxlID0gKAorICAgICgKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogRmFsc2UsCisgICAgICAgICAgICAnZmllbGQnICAgICAgOiAncnVubmluZy1jb25maWcnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ3NubXAnLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0NvbmZpZ3VyYXRpb24gZm9yIFNOTVAnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ3J1bm5pbmctY29uZmlnfHNob3ctc25tcCcsCisgICAgICAgIH0sCisgICAgKSwKKykKKworcnVuX2NvbmZpZy5yZWdpc3Rlcl9ydW5uaW5nX2NvbmZpZygnc25tcCcsIDIzMDAsICBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5uaW5nX2NvbmZpZ19zbm1wLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzbm1wX3J1bm5pbmdfY29uZmlnX3R1cGxlKQpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC9zbm1wX3RlY2hzdXBwb3J0LnB5IGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9zbm1wX3RlY2hzdXBwb3J0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNiZWM4MTgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3NubXBfdGVjaHN1cHBvcnQucHkKQEAgLTAsMCArMSwyOSBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTIsMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworZnJvbSB0ZWNoX3N1cHBvcnQgaW1wb3J0IGFkZF90b19zaG93X3RlY2hfc3VwcG9ydAorCisjIFNOTVAgY29tbWFuZHMgdG8gYmUgaW5jbHVkZWQgaW4gJ3Nob3cgdGVjaC1zdXBwb3J0JyBvdXRwdXQKK3NubXBfc2hvd190ZWNoX3N1cHBvcnRfY29tbWFuZHMgPSBbCisgICAgIFsnY2xpJywgJ3Nob3cgc25tcCddLAorICAgICBbJ3NoZWxsJywgJ3BncmVwIHNubXBkJ10sCisgICAgIFsnc2hlbGwnLCAnY2F0IC9ldGMvc25tcC9zbm1wZC5jb25mJ10sCisgICAgIFsnc2hlbGwnLCAnY2F0IC9ldGMvZGVmYXVsdC9zbm1wZCddLAorXQorCisjIGFkZCBjb21tYW5kcyB0byBjZW50cmFsIGNvbW1hbmQgdGFibGUgdXNlZCBmb3IgJ3Nob3cgdGVjaC1zdXBwb3J0JworZm9yIGVudHJ5IGluIHNubXBfc2hvd190ZWNoX3N1cHBvcnRfY29tbWFuZHM6CisgICAgYWRkX3RvX3Nob3dfdGVjaF9zdXBwb3J0KHN0cihlbnRyeVswXSksIHN0cihlbnRyeVsxXSkpCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL3N3aXRjaC5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvc3dpdGNoLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE3OGIxODQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3N3aXRjaC5weQpAQCAtMCwwICsxLDEyMTMgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworaW1wb3J0IGNvbW1hbmQKK2ltcG9ydCBqc29uCitpbXBvcnQgZm10Y252CisKKyIiIgorU1dJVENIX1NVQk1PREVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgOiAnc3dpdGNoJywKKyAgICAnc2hvcnQtaGVscCcgICAgOiAnRW50ZXIgc3dpdGNoIHN1Ym1vZGUsIGNvbmZpZ3VyZSBzd2l0Y2ggZGV0YWlscycsCisgICAgJ21vZGUnICAgICAgICAgIDogJ2NvbmZpZyonLAorICAgICdvYmotdHlwZScgICAgICA6ICdzd2l0Y2gtY29uZmlnJywKKyAgICAnY29tbWFuZC10eXBlJyAgOiAnY29uZmlnLXN1Ym1vZGUnLAorICAgICdwYXJlbnQtZmllbGQnICA6IE5vbmUsCisgICAgJ3N1Ym1vZGUtbmFtZScgIDogJ2NvbmZpZy1zd2l0Y2gnLAorICAgICdkb2MnICAgICAgICAgICA6ICdzd2l0Y2h8c3dpdGNoJywKKyAgICAnZG9jLWV4YW1wbGUnICAgOiAnc3dpdGNofHN3aXRjaC1leGFtcGxlJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2RwaWQnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnZHBpZCcsCisgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICdzd2l0Y2hlc3xkcGlkJywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRlLWFsaWFzLWNob2ljZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgIDogJ0NvbmZpZ3VyZSBhIG5ldyBzd2l0Y2ggd2l0aCBkcGlkJywKKyAgICAgICAgfQorICAgICkKK30KKyIiIgorIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgc2hvdyBzd2l0Y2gKKyMKKworc2hvd19zd2l0Y2hfcGlwZWxpbmUgPSAoCisgICAgeworICAgICAgICAncHJvYycgICAgIDogJ3F1ZXJ5LXRhYmxlJywKKyAgICAgICAgJ29iai10eXBlJyA6ICdzd2l0Y2hlcycsICMgc3ludGhldGljLCBzdXBwb3J0ZWQgYnkgcmVzdF90b19tb2RlbAorICAgICAgICAna2V5JyAgICAgIDogJ2RwaWQnLAorICAgIH0sCisgICAgeworICAgICAgICAncHJvYycgICAgICAgOiAnam9pbi10YWJsZScsCisgICAgICAgICdvYmotdHlwZScgICA6ICdzd2l0Y2gtYWxpYXMnLAorICAgICAgICAna2V5JyAgICAgICAgOiAnc3dpdGNoJywKKyAgICAgICAgJ2pvaW4tZmllbGQnIDogJ0AnLAorICAgICAgICAnYWRkLWZpZWxkJyAgOiAnc3dpdGNoLWFsaWFzfGlkJywKKyAgICB9LAorICAgIHsKKyAgICAgICAgJ3Byb2MnICAgICAgIDogJ2pvaW4tcmVzdCcsCisgICAgICAgICd1cmwnICAgICAgICA6ICd0dW5uZWwtbWFuYWdlci9hbGwnLAorICAgICAgICAncmVzdC10eXBlJyAgOiAnZGljdC1vZi1kaWN0LW9mLXN3aXRjaCcsCisgICAgICAgICdrZXknICAgICAgICA6ICdzd2l0Y2gnLAorICAgICAgICAnam9pbi1maWVsZCcgOiAnQCcsCisgICAgfSwKKyAgICB7CisgICAgICAgICdwcm9jJyAgICAgOiAnZGlzcGxheScsCisgICAgICAgICdmb3JtYXQnICAgOiAnc3dpdGNoJywKKyAgICB9LAorKQorCitTV0lUQ0hfU0hPV19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnbG9naW4nLAorICAgICdjb21tYW5kLXR5cGUnICAgICAgICA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnYWxsLWhlbHAnICAgICAgICAgICAgOiAnU2hvdyBzd2l0Y2ggaW5mb3JtYXRpb24nLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdTaG93IHN3aXRjaCBzdW1tYXJ5JywKKyAgICAnb2JqLXR5cGUnICAgICAgICAgICAgOiAnc3dpdGNoZXMnLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdzd2l0Y2h8c2hvdycsCisgICAgJ2RvYy1leGFtcGxlJyAgICAgICAgIDogJ3N3aXRjaHxzaG93LWV4YW1wbGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Rva2VuJyAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICdhY3Rpb24nIDogc2hvd19zd2l0Y2hfcGlwZWxpbmUsCisgICAgICAgICAgICAnZG9jJyAgICA6ICdzd2l0Y2h8c2hvdycsCisgICAgICAgIH0sCisgICAgKQorfQorCitTV0lUQ0hfU0hPV19XSVRIX0RQSURfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnU2hvdyBzd2l0Y2ggZGV0YWlscyB2aWEgcXVlcnknLAorICAgICduby1zdXBwb3J0ZWQnICAgICAgICA6IEZhbHNlLAorICAgICdwYXJlbnQtZmllbGQnICAgICAgICA6IE5vbmUsCisgICAgJ29iai10eXBlJyAgICAgICAgICAgIDogJ3N3aXRjaGVzJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgICAgICAgIDogJ3N3aXRjaCcsCisgICAgICAgICAgICAnb2JqLXR5cGUnICAgICA6ICdzd2l0Y2hlcycsCisgICAgICAgICAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAgICAgICAgICMgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS1yZXN0JywKKyAgICAgICAgICAgICdhY3Rpb24nICAgICAgIDogc2hvd19zd2l0Y2hfcGlwZWxpbmUsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2RwaWQnLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1hbGlhcy1jaG9pY2UnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgOiAnc3dpdGNoIGRwaWQgb3IgYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICAgIDogJ2FsbCcsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAndG9rZW4nIDogJ2J5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgOiAnc3dpdGNofHNob3ctc3dpdGNoLW9yZGVyJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ2lwLWFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc29ydCcgICAgICAgOiAnaXAtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1NvcnQgYnkgaXAtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdjb25uZWN0LXRpbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc29ydCcgICAgICAgOiAnLWNvbm5lY3RlZC1zaW5jZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1NvcnQgYnkgY29ubmVjdCB0aW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICkKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2RldGFpbCcsCisgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAoJ2RldGFpbHMnLCdicmllZicpLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogVHJ1ZSwKKyAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdzd2l0Y2h8c2hvdy1zd2l0Y2gtZm9ybWF0LSsnLAorICAgICAgICB9LAorICAgICkKK30KK1NXSVRDSF9TSE9XX1JFQUxUSU1FX1NUQVRTX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdsb2dpbicsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ1Nob3cgc3dpdGNoIHN0YXRzIHZpYSBkaXJlY3QgcXVlcnkgdG8gc3dpdGNoJywKKyAgICAnbm8tc3VwcG9ydGVkJyAgICAgICAgOiBGYWxzZSwKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnU2hvdyByZWFsdGltZSBzdGF0cyBmb3Igc3dpdGNoJywKKyAgICAncGFyZW50LWZpZWxkJyAgICAgICAgOiBOb25lLAorICAgICdvYmotdHlwZScgICAgICAgICAgICA6ICdzd2l0Y2hlcycsCisgICAgJ2FyZ3MnICAgICAgICAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAndG9rZW4nICAgICAgICA6ICdzd2l0Y2gnLAorICAgICAgICAgICAgJ29iai10eXBlJyAgICAgOiAnc3dpdGNoZXMnLAorICAgICAgICAgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisgICAgICAgICAgICAjICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktcmVzdCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2RwaWQnLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1hbGlhcy1jaG9pY2UnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgOiAnc3dpdGNoIGRwaWQgb3IgYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgICAgIDogeyAnZGV0YWlsJyA6ICdzY29wZWQnIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICAgIDogJ2FsbCcsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3Jlc2VydmVkfGFsbCcsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdyZWFsdGltZXN0YXRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICgnYWdncmVnYXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rlc2MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdxdWV1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyb3VwJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnZGlzcGxheS1yZXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzb3J0JyAgICAgICA6IFsnZ3JvdXBpZCcsXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICd1cmwnICAgICAgICA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVhbHRpbWVzdGF0cy8lKHJlYWx0aW1lc3RhdHMpcy8lKGRwaWQpcy8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWFsdGltZXN0YXRzLyUocmVhbHRpbWVzdGF0cylzL2FsbC8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdyZXN0LXR5cGUnICA6ICdkaWN0LW9mLWxpc3Qtb2Ytc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXQnICAgICA6ICdyZWFsdGltZV8lKHJlYWx0aW1lc3RhdHMpcycsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnU2hvdyByZXF1ZXN0ZWQgaXRlbSBieSBxdWVyeWluZyBzd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ3N3aXRjaHxyZWFsdGltZS0rJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ3JlYWx0aW1lc3RhdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ2ZlYXR1cmVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdkaXNwbGF5LXJlc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3VybCcgICAgICAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVhbHRpbWVzdGF0cy8lKHJlYWx0aW1lc3RhdHMpcy8lKGRwaWQpcy8nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmVhbHRpbWVzdGF0cy8lKHJlYWx0aW1lc3RhdHMpcy9hbGwvJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAncmVzdC10eXBlJyAgOiAnZGljdC1vZi1kaWN0LW9mLXN3aXRjaHxwb3J0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0JyAgICAgOiAncmVhbHRpbWVfJShyZWFsdGltZXN0YXRzKXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ3N3aXRjaHxyZWFsdGltZV9mZWF0dXJlcycsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgOiAnZGV0YWlsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgOiAoJ2RldGFpbHMnLCdicmllZicpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICA6ICdmb3JtYXR8KycsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdyZWFsdGltZXN0YXRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICd0YWJsZScsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgOiAndGFibGV0eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAoJ2lwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWNsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbXBscycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NvcnQnICAgICAgIDogWydtcGxzTGFiZWwnLCdwcmlvcml0eScsXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdkaXNwbGF5LXJlc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3VybCcgICAgICAgIDogJ3JlYWx0aW1lc3RhdHMvJShyZWFsdGltZXN0YXRzKXMvJSh0YWJsZXR5cGUpcy9mbG93LyUoZHBpZClzLycsCisgICAgICAgICAgICAgICAgICAgICAgICAncmVzdC10eXBlJyAgOiAnZGljdC1vZi1saXN0LW9mLXN3aXRjaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0JyAgICAgOiAncmVhbHRpbWVfJShyZWFsdGltZXN0YXRzKXNfJSh0YWJsZXR5cGUpc19mbG93JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgOiAnZm9ybWF0fCsnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAncmVhbHRpbWVzdGF0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAnZ3JvdXAnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgIDogJ2dyb3VwSWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgIydkYXRhJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgICAgICAgICAnZHBpZCcgICAgIDogJyRkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAjJ3R5cGUnICAgICA6ICdncm91cElkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyA6ICdncm91cC1pZC1jb21wbGV0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgICAgICMnc29ydCcgICAgICAgOiBbJ21wbHNMYWJlbCcsJ3ByaW9yaXR5JyxdLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogJ2Rpc3BsYXktcmVzdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAndXJsJyAgICAgICAgOiAncmVhbHRpbWVzdGF0cy8lKHJlYWx0aW1lc3RhdHMpcy8lKGdyb3VwSWQpcy8lKGRwaWQpcy8nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Jlc3QtdHlwZScgIDogJ2RpY3Qtb2YtbGlzdC1vZi1zd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCcgICAgIDogJ3JlYWx0aW1lX2dyb3VwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgOiAnZm9ybWF0fCsnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICApCisgICAgICAgIH0KKyAgICApCit9CisKK1NXSVRDSF9TSE9XX1NUQVRTX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdsb2dpbicsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ1Nob3cgc3dpdGNoIHN0YXRzJywKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnc2hvdyBzdGF0cyBmb3Igc2VsZWN0ZWQgc3dpdGNoJywKKyAgICAnbm8tc3VwcG9ydGVkJyAgICAgICAgOiBGYWxzZSwKKyAgICAncGFyZW50LWZpZWxkJyAgICAgICAgOiBOb25lLAorICAgICdvYmotdHlwZScgICAgICAgICAgICA6ICdzd2l0Y2hlcycsCisgICAgJ2FyZ3MnICAgICAgICAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAndG9rZW4nICAgICAgICA6ICdzd2l0Y2gnLAorICAgICAgICAgICAgIyAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXJlc3QnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLWFsaWFzLWNob2ljZScsCisgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICdoZWxwLW5hbWUnICAgIDogJ3N3aXRjaCBkcGlkIG9yIGFsaWFzJywKKyAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ3Rva2VuJyAgICAgICAgOiAnc3RhdHMnLAorICAgICAgICAgICAgJ2FjdGlvbicgICAgICAgOiAnbGVnYWN5LWNsaScsCisgICAgICAgICAgICAnb2JqLXR5cGUnICAgICA6ICdzd2l0Y2gtc3RhdHMnLAorICAgICAgICB9LAorICAgICkKK30KKworU1dJVENIX1NIT1dfU1RBVFNfT0JKRUNUX0RFVEFJTFNfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnU2hvdyBzdGF0aXN0aWNzIGZvciBhIGdpdmVuIHN3aXRjaCcsCisgICAgJ25vLXN1cHBvcnRlZCcgICAgICAgIDogRmFsc2UsCisgICAgJ3BhcmVudC1maWVsZCcgICAgICAgIDogTm9uZSwKKyAgICAnb2JqLXR5cGUnICAgICAgICAgICAgOiAnc3dpdGNoZXMnLAorICAgICdhcmdzJyAgICAgICAgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Rva2VuJyAgICAgICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICMgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS1yZXN0JywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnZHBpZCcsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1hbGlhcy1jaG9pY2UnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnZHBpZCcsCisgICAgICAgICAgICAnaGVscC1uYW1lJyAgICA6ICdzd2l0Y2ggZHBpZCBvciBhbGlhcycsCisgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgICAgICAgIDogJ3N0YXRzJywKKyAgICAgICAgICAgICdhY3Rpb24nICAgICAgIDogJ2xlZ2FjeS1jbGknLAorICAgICAgICAgICAgJ29iai10eXBlJyAgICAgOiAnc3dpdGNoLXN0YXRzJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnc3RhdHMtdHlwZScsCisgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgICAgIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnT0ZBY3RpdmVGbG93JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ09GRmxvd01vZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdPRlBhY2tldEluJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnc3RhcnQtdGltZScsCisgICAgICAgICAgICAndGFnJyAgICAgICAgICA6ICdzdGFydC10aW1lJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2RhdGUnLAorICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnZGF0ZS10by1pbnRlZ2VyJywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgIDogJ1N0YXJ0IHRpbWUgZm9yIGRpc3BsYXlpbmcgdGhlIHN0YXRzJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnZW5kLXRpbWUnLAorICAgICAgICAgICAgJ3RhZycgICAgICAgICAgOiAnZW5kLXRpbWUnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnZGF0ZScsCisgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdkYXRlLXRvLWludGVnZXInLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnRW5kIHRpbWUgZm9yIGRpc3BsYXlpbmcgdGhlIHN0YXRzJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnZHVyYXRpb24nLAorICAgICAgICAgICAgJ3RhZycgICAgICAgICAgOiAnZHVyYXRpb24nLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnZHVyYXRpb24nLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnRHVyYXRpb24gZnJvbSB0aGUgc3RhcnQgb3IgZW5kIGZvciBkaXNwbGF5aW5nIHRoZSBzdGF0cycsCisgICAgICAgICAgICAnb3B0aW9uYWwnICAgICA6IFRydWUsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3NhbXBsZS1pbnRlcnZhbCcsCisgICAgICAgICAgICAndGFnJyAgICAgICAgICA6ICdzYW1wbGUtaW50ZXJ2YWwnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAnc2hvcnQtaGVscCcgICA6ICdTcGFjaW5nIGJldHdlZW4gc2FtcGxpbmcgd2luZG93cycsCisgICAgICAgICAgICAnb3B0aW9uYWwnICAgICA6IFRydWUsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3NhbXBsZS1jb3VudCcsCisgICAgICAgICAgICAndGFnJyAgICAgICAgICA6ICdzYW1wbGUtY291bnQnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAnc2hvcnQtaGVscCcgICA6ICdOdW1iZXIgb2Ygc2FtcGxlcyBpbiBlYWNoIHdpbmRvdycsCisgICAgICAgICAgICAnb3B0aW9uYWwnICAgICA6IFRydWUsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3NhbXBsZS13aW5kb3cnLAorICAgICAgICAgICAgJ3RhZycgICAgICAgICAgOiAnc2FtcGxlLXdpbmRvdycsCisgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgIDogJ1dpbmRvdyBsZW5ndGggZm9yIHNhbXBsaW5nJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnZGF0YS1mb3JtYXQnLAorICAgICAgICAgICAgJ3RhZycgICAgICAgICAgOiAnZGF0YS1mb3JtYXQnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgICAgICA6ICgndmFsdWUnLCAncmF0ZScsKSwKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgIDogJ1doZXRoZXIgdG8gZGlzcGxheSBhcyBhIHJhdyB2YWx1ZSBvciByYXRlJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnZGlzcGxheScsCisgICAgICAgICAgICAndGFnJyAgICAgICAgICA6ICdkaXNwbGF5JywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgICAgOiAoJ2xhdGVzdC12YWx1ZScsICdncmFwaCcsICd0YWJsZScpLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgOiAnRGlzcGxheSB0aGUgbGF0ZXN0IHZhbHVlLCBhIGdyYXBoLCBvciBhIHRhYmxlJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwKKyAgICAgICAgfSwKKyAgICApLAorfQorCisKK3Nob3dfc3dpdGNoX2ludGVyZmFjZXNfcGlwZWxpbmUgPSAoCisgICAgeworICAgICAgICAncHJvYycgICAgIDogJ3F1ZXJ5LXRhYmxlJywKKyAgICAgICAgJ29iai10eXBlJyA6ICdpbnRlcmZhY2VzJywKKyAgICAgICAgJ2tleScgICAgICA6ICdpZCcsCisgICAgfSwKKyAgICB7CisgICAgICAgICdwcm9jJyAgICAgOiAncXVlcnktdGFibGUtYXBwZW5kJywKKyAgICAgICAgJ29iai10eXBlJyA6ICdzd2l0Y2gtaW50ZXJmYWNlLWNvbmZpZycsCisgICAgICAgICdrZXknICAgICAgOiAnaWQnLAorICAgIH0sCisgICAgeworICAgICAgICAncHJvYycgICAgICAgOiAnam9pbi1yZXN0JywKKyAgICAgICAgJ3VybCcgICAgICAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRoaXMgaXMgdXNpbmcgJ3N3aXRjaCcgZnJvbSBwcmV2aW91cyByZXN1bHRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAjIG5vdCBmcm9tIHRoZSBkYXRhIGl0ZW1zCisgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWFsdGltZXN0YXRzL3BvcnQvJShzd2l0Y2gpcy8nLAorICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAncmVzdC10eXBlJyAgOiAnZGljdC1vZi1saXN0LW9mLXN3aXRjaHxwb3J0TnVtYmVyJywKKyAgICAgICAgJ2tleScgICAgICAgIDogJ3N3aXRjaHxwb3J0TnVtYmVyJywKKyAgICAgICAgJ2pvaW4tZmllbGQnIDogJ3N3aXRjaHxwb3J0TnVtYmVyJworICAgIH0sCisgICAgeworICAgICAgICAncHJvYycgICAgIDogJ2Rpc3BsYXknLAorICAgICAgICAnc29ydCcgICAgIDogWydzd2l0Y2gnLCAncG9ydE5hbWUnXSwKKyAgICAgICAgJ2Zvcm1hdCcgICA6ICdzd2l0Y2gtaW50ZXJmYWNlcycsCisgICAgfSwKKykKKworU1dJVENIX1NIT1dfU1dJVENIX0RQSURfSU5URVJGQUNFU19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnbG9naW4nLAorICAgICduby1zdXBwb3J0ZWQnICAgICAgICA6IEZhbHNlLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdTaG93IGludGVyZmFjZXMgZm9yIHNlbGVjdGVkIHN3aXRjaCcsCisgICAgJ3BhcmVudC1maWVsZCcgICAgICAgIDogTm9uZSwKKyAgICAnb2JqLXR5cGUnICAgICAgICAgICAgOiAnc3dpdGNoZXMnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Rva2VuJyAgICAgICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtYWxpYXMtY2hvaWNlJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnZHBpZCcsCisgICAgICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgIDogJ3N3aXRjaCBkcGlkIG9yIGFsaWFzJywKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICAgIDogJ2FsbCcsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgaW50ZXJmYWNlcyBmb3IgYWxsIHN3aXRjaGVzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ2ludGVyZmFjZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogJ2xlZ2FjeS1jbGknLAorICAgICAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ3N3aXRjaC1pbnRlcmZhY2VzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6IHNob3dfc3dpdGNoX2ludGVyZmFjZXNfcGlwZWxpbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnU2hvdyBpbnRlcmZhY2VzIGZvciBzd2l0Y2hlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnc3dpdGNofHNob3ctaW50ZXJmYWNlcycsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdzdGF0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnZGlzcGxheS1yZXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICd1cmwnICAgICAgICA6ICdyZWFsdGltZXN0YXRzL3BvcnQvJShkcGlkKXMvJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdyZXN0LXR5cGUnICA6ICdkaWN0LW9mLWxpc3Qtb2Ytc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXQnICAgICA6ICdyZWFsdGltZV9wb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdyZXN0LXR5cGUnICA6ICdkaWN0LW9mLWxpc3Qtb2Ytc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnU2hvdyBpbnRlcmZhY2VzIHN0YXRzIGZvciBzd2l0Y2hlcycsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdhbGlhcycsCisgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnZGlzcGxheS10YWJsZScsCisgICAgICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgOiAnc3dpdGNoLWludGVyZmFjZS1hbGlhcycsCisgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnICAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1Nob3cgaW50ZXJmYWNlIGFsaWFzZXMgZm9yIHN3aXRjaGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzY29wZWQnICAgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnc3dpdGNofHNob3ctaW50ZXJmYWNlcy1hbGlhcycsCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICN7CisgICAgICAgICAgICAgICAgIyAgICAnZmllbGQnICAgICAgOiAndm5zJywKKyAgICAgICAgICAgICAgICAjICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAjICAgICd2YWx1ZXMnICAgICA6ICd2bnMnLAorICAgICAgICAgICAgICAgICMgICAgJ2FjdGlvbicgICAgIDogJ2xlZ2FjeS1jbGknLAorICAgICAgICAgICAgICAgICMgICAgJ29iai10eXBlJyAgIDogJ3N3aXRjaC1wb3J0cy12bnMnCisgICAgICAgICAgICAgICAgI30sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICA6ICdhbGlhcycsCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICA6ICdhbGlhcycsCisgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgIDogJ3N3aXRjaC1hbGlhcycsCisgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICA6ICdzd2l0Y2h8c2hvdy1zd2l0Y2gtYWxpYXMnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgJ2ZpZWxkJyAgICA6ICdkZXRhaWwnLAorICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgOiAoJ2RldGFpbHMnLCAnYnJpZWYnLCksCisgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnU2hvdyBzd2l0Y2ggb3V0cHV0IGZvcm1hdCBsZXZlbCcsCisgICAgICAgIH0KKyAgICApCit9CisiIiIKK1NXSVRDSF9TVUJNT0RFX1NIT1dfSU5URVJGQUNFX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXN3aXRjaConLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ3N3aXRjaC1pbnRlcmZhY2VzJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IGludGVyZmFjZXMgZm9yIHN3aXRjaCBhc3NvY2lhdGVkIHdpdGggY3VycmVudCBzdWJtb2RlJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgICAgOiAnaW50ZXJmYWNlcycsCisgICAgICAgICAgICAnYWN0aW9uJyAgIDogJ2xlZ2FjeS1jbGknLAorICAgICAgICAgICAgJ3Njb3BlZCcgICA6IFRydWUsCisgICAgICAgICAgICAnYWN0aW9uJyAgIDogc2hvd19zd2l0Y2hfaW50ZXJmYWNlc19waXBlbGluZSwKKyAgICAgICAgfSwKKyAgICApCit9CisKKworU1dJVENIX1NIT1dfVENQRFVNUF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnbG9naW4nLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdTaG93IHN3aXRjaCB0Y3BkdW1wIHZpYSBjb250cm9sbGVyJywKKyAgICAnbm8tc3VwcG9ydGVkJyAgICAgICAgOiBGYWxzZSwKKyAgICAncGFyZW50LWZpZWxkJyAgICAgICAgOiBOb25lLAorICAgICdjdXJyZW50LW1vZGUtb2JqLWlkJyA6IE5vbmUsCisgICAgJ29iai10eXBlJyAgICAgICAgICAgIDogJ3N3aXRjaGVzJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgICAgICAgIDogJ3N3aXRjaCcsCisgICAgICAgICAgICAnb2JqLXR5cGUnICAgICA6ICdzd2l0Y2hlcycsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2RwaWQnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgICAgOiBGYWxzZSwKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLWFsaWFzLWNob2ljZScsCisgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICdoZWxwLW5hbWUnICAgIDogJ3N3aXRjaCBkcGlkIG9yIGFsaWFzJywKKyAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ3RjcGR1bXAnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogRmFsc2UsCisgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAndHJhY2UnLAorICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ3N3aXRjaC10Y3BkdW1wJywKKyAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdsZWdhY3ktY2xpJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnb25lbGluZScsCisgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgIDogJ29uZWxpbmUnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICA6ICdzaW5nbGVfc2Vzc2lvbicsCisgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgIDogJ3NpbmdsZS1zZXNzaW9uJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgIDogVHJ1ZSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnZWNob19yZXBseScsCisgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgIDogJ2VjaG8tcmVwbHknLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgJ3Blcm11dGUnICAgOiAnc2tpcCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ2VjaG9fcmVxdWVzdCcsCisgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgIDogJ2VjaG8tcmVxdWVzdCcsCisgICAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgICAncGVybXV0ZScgICA6ICdza2lwJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnZmVhdHVyZXNfcmVwJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgOiAnZmVhdHVyZXMtcmVwJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgIDogVHJ1ZSwKKyAgICAgICAgICAgICdwZXJtdXRlJyAgIDogJ3NraXAnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICA6ICdmbG93X21vZCcsCisgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgIDogJ2Zsb3ctbW9kJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgIDogVHJ1ZSwKKyAgICAgICAgICAgICdwZXJtdXRlJyAgIDogJ3NraXAnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICA6ICdmbG93X3JlbW92ZWQnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgICA6ICdmbG93LXJlbW92ZWQnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgJ3Blcm11dGUnICAgOiAnc2tpcCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ2dldF9jb25maWdfcmVwJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgOiAnZ2V0LWNvbmZpZy1yZXAnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgJ3Blcm11dGUnICAgOiAnc2tpcCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ2hlbGxvJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgOiAnaGVsbG8nLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgJ3Blcm11dGUnICAgOiAnc2tpcCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ3BhY2tldF9pbicsCisgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgIDogJ3BhY2tldC1pbicsCisgICAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgICAncGVybXV0ZScgICA6ICdza2lwJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAncGFja2V0X291dCcsCisgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgIDogJ3BhY2tldC1vdXQnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgJ3Blcm11dGUnICAgOiAnc2tpcCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ3BvcnRfc3RhdHVzJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgOiAncG9ydC1zdGF0dXMnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgJ3Blcm11dGUnICAgOiAnc2tpcCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ3NldF9jb25maWcnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgICA6ICdzZXQtY29uZmlnJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgIDogVHJ1ZSwKKyAgICAgICAgICAgICdwZXJtdXRlJyAgIDogJ3NraXAnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICA6ICdzdGF0c19yZXBseScsCisgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgIDogJ3N0YXRzLXJlcGx5JywKKyAgICAgICAgICAgICdvcHRpb25hbCcgIDogVHJ1ZSwKKyAgICAgICAgICAgICdwZXJtdXRlJyAgIDogJ3NraXAnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICA6ICdzdGF0c19yZXF1ZXN0JywKKyAgICAgICAgICAgICd0eXBlJyAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgOiAnc3RhdHMtcmVxdWVzdCcsCisgICAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgICAncGVybXV0ZScgICA6ICdza2lwJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnZGV0YWlsJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgOiAnZGV0YWlsJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgIDogVHJ1ZSwKKyAgICAgICAgfSwKKyAgICkKK30KKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU1dJVENIX1RVTk5FTF9TSE9XX0NPTU1BTkRfREVTQ1JJUFRJT04KKyMKKworc2hvd190dW5uZWxfcGlwZWxpbmUgPSAoCisgICAgeworICAgICAgICAncHJvYycgICAgICA6ICdxdWVyeS1yZXN0JywKKyAgICAgICAgJ3VybCcgICAgICAgOiBbIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0dW5uZWwtbWFuYWdlci8lKGRwaWQpcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R1bm5lbC1tYW5hZ2VyL2FsbCcsCisgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgJ3Jlc3QtdHlwZScgOiAnZGljdC1vZi1kaWN0LW9mLWRwaWQnLAorICAgIH0sCisgICAgeworICAgICAgICAncHJvYycgICAgICAgOiAnam9pbi10YWJsZScsCisgICAgICAgICdvYmotdHlwZScgICA6ICdpbnRlcmZhY2VzJywKKyAgICAgICAgJ2tleScgICAgICAgIDogJ3N3aXRjaHxwb3J0TmFtZScsCisgICAgICAgICdqb2luLWZpZWxkJyA6ICdoZXhEcGlkfHR1bm5lbEVuZFBvaW50SW50Zk5hbWUnLAorICAgICAgICAnYWRkLWZpZWxkJyAgOiAncG9ydE51bWJlcnxwb3J0TnVtYmVyJywKKyAgICB9LAorICAgIHsKKyAgICAgICAgJ3Byb2MnICAgICAgIDogJ2pvaW4tcmVzdCcsCisgICAgICAgICd1cmwnICAgICAgICA6ICdyZWFsdGltZXN0YXRzL3BvcnQvJShkcGlkKXMvJywKKyAgICAgICAgJ3Jlc3QtdHlwZScgIDogJ2RpY3Qtb2YtbGlzdC1vZi1zd2l0Y2h8cG9ydE51bWJlcicsCisgICAgICAgICdrZXknICAgICAgICA6ICdzd2l0Y2h8cG9ydE51bWJlcicsCisgICAgICAgICdqb2luLWZpZWxkJyA6ICdoZXhEcGlkfHBvcnROdW1iZXInLAorICAgIH0sCisgICAgeworICAgICAgICAncHJvYycgICAgIDogJ2Rpc3BsYXknLAorICAgICAgICAnZm9ybWF0JyAgIDogJ3R1bm5lbC1waXBlbGluZScsCisgICAgfQorKQorIiIiCitpbXBvcnQgZm10Y252CisiIiIKK1RVTk5FTF9QSVBFTElORV9GT1JNQVQgPSB7CisgICAgJ3R1bm5lbC1waXBlbGluZScgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RwaWQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAndHVubmVsQ2FwYWJsZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd0dW5uZWxFbmFibGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R1bm5lbEVuZFBvaW50SW50Zk5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAndHVubmVsSVBBZGRyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R1bm5lbFN0YXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlY2VpdmVQYWNrZXRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlY2VpdmVCeXRlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd0cmFuc21pdFBhY2tldHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNtaXRCeXRlcycsCisgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgIH0sCisKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnZHBpZCcgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdTd2l0Y2ggRFBJRCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW1hcnlfa2V5JzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX3N3aXRjaF93aXRoX2FsaWFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHVubmVsQ2FwYWJsZScgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnQ2FwYWJsZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0dW5uZWxFbmFibGVkJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnRW5hYmxlZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0dW5uZWxFbmRQb2ludEludGZOYW1lJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdJRiBOYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3R1bm5lbElQQWRkcicgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdJUCBBZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3R1bm5lbFN0YXRlJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdTdGF0ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdyZWNlaXZlUGFja2V0cycgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnUnggUGt0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdyZWNlaXZlQnl0ZXMnICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnUnggQnl0ZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHJhbnNtaXRQYWNrZXRzJyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1R4IFBrdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHJhbnNtaXRCeXRlcycgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1R4IEJ5dGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB9LAorICAgIH0sCit9CisKKworCitTV0lUQ0hfVFVOTkVMX1NIT1dfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICA6ICdsb2dpbicsCisgICAgJ2ZlYXR1cmUnICAgICAgOiAndm5zJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IHR1bm5lbHMgZm9yIGFsbCBzd2l0Y2hlcycsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS1yZXN0JywKKyAgICAndXJsJyAgICAgICAgICA6ICd0dW5uZWwtbWFuYWdlci9hbGwnLAorICAgICdvYmotdHlwZScgICAgIDogJ3N3aXRjaCcsCisgICAgJ2FjdGlvbicgICAgICAgOiBzaG93X3R1bm5lbF9waXBlbGluZSwKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ3R1bm5lbCcsCisgICAgKSwKK30KKworCitTV0lUQ0hfVFVOTkVMX1NIT1dfV0lUSF9EUElEX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdmZWF0dXJlJyAgICAgIDogJ3ZucycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyB0dW5uZWxzIGZvciBzZWxlY3RlZCBzd2l0Y2hlcycsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS1yZXN0JywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdzd2l0Y2gnLAorICAgICd1cmwnICAgICAgICAgIDogJ3R1bm5lbC1tYW5hZ2VyLyUoZHBpZClzJywKKyAgICAnZm9ybWF0JyAgICAgICA6ICd0dW5uZWwtZGV0YWlscycsCisgICAgJ2FjdGlvbicgICAgICAgOiBzaG93X3R1bm5lbF9waXBlbGluZSwKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ3R1bm5lbCcsCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAnYWxsJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2RwaWQnLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2RwaWQnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApLAorICAgICAgICB9LAorICAgICksCit9CisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTV0lUQ0hfQ09SRV9TV0lUQ0hfVEVSTUlOQVRJT05fQ09NTUFORF9ERVNDUklQVElPTgorIworCitTV0lUQ0hfQ09SRV9TV0lUQ0hfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdjb3JlLXN3aXRjaCcsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnRW5hYmxlIGNvcmUtc3dpdGNoIHByb3BlcnR5IGZvciB0aGlzIHN3aXRjaCcsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXN3aXRjaCcsCisgICAgJ3BhcmVudC1maWVsZCcgOiAnZHBpZCcsCisgICAgJ29iai10eXBlJyAgICAgOiAnc3dpdGNoLWNvbmZpZycsCisgICAgJ2RvYycgICAgICAgICAgOiAnc3dpdGNofGNvcmUtc3dpdGNoJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICdzd2l0Y2h8Y29yZS1zd2l0Y2gtZXhhbXBsZScsCisgICAgJ2FyZ3MnIDogKCksCisgICAgJ2FjdGlvbic6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnIDogJ3VwZGF0ZS1jb25maWcnLAorICAgICAgICAgICAgJ2RhdGEnIDogeydjb3JlLXN3aXRjaCcgOiBUcnVlfQorICAgICAgICB9LAorICAgICksCisgICAgJ25vLWFjdGlvbic6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnIDogJ3VwZGF0ZS1jb25maWcnLAorICAgICAgICAgICAgJ2RhdGEnIDogeydjb3JlLXN3aXRjaCcgOiBGYWxzZX0sCisgICAgICAgIH0KKyAgICApCit9CisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTV0lUQ0hfVFVOTkVMX1RFUk1JTkFUSU9OX0NPTU1BTkRfREVTQ1JJUFRJT04KKyMKKworU1dJVENIX1RVTk5FTF9URVJNSU5BVElPTl9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3R1bm5lbCcsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnRW5hYmxlL0Rpc2FibGUgdHVubmVsIGNyZWF0aW9uIGZvciB0aGlzIHN3aXRjaCcsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXN3aXRjaCcsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAndXBkYXRlLWNvbmZpZycsCisgICAgJ3BhcmVudC1maWVsZCcgOiAnZHBpZCcsCisgICAgJ29iai10eXBlJyAgICAgOiAnc3dpdGNoLWNvbmZpZycsCisgICAgJ2RvYycgICAgICAgICAgOiAnc3dpdGNofHR1bm5lbCcsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnc3dpdGNofHR1bm5lbC1leGFtcGxlJywKKyAgICAnZGF0YScgICAgICAgICA6IHsgJ3R1bm5lbC10ZXJtaW5hdGlvbicgOiAnZGVmYXVsdCcgfSwgIyBmb3Igbm8gY29tbWFuZAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAndGVybWluYXRpb24nLAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICd0dW5uZWwtdGVybWluYXRpb24nLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgICAgICAgICA6ICggImVuYWJsZWQiLCAiZGlzYWJsZWQiICksCisgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgIH0KKyAgICApCit9CisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTV0lUQ0hfQUxJQVNfQ09NTUFORF9ERVNDUklQVElPTgorIworCitTV0lUQ0hfU1dJVENIX0FMSUFTX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc3dpdGNoLWFsaWFzJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctc3dpdGNoJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdBdHRhY2ggYWxpYXMgdG8gc3dpdGNoJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdzd2l0Y2h8YWxpYXMnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3N3aXRjaHxhbGlhcy1leGFtcGxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdtYW5hZ2UtYWxpYXMnLAorICAgICdvYmotdHlwZScgICAgIDogJ3N3aXRjaC1hbGlhcycsCisgICAgJ3Njb3BlZCcgICAgICAgOiBUcnVlLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdpZCcsCisgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IEZhbHNlLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgICAgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgfQorICAgICkKK30KKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgU1dJVENIX0lOVEVSRkFDRV9DT01NQU5EX0RFU0NSSVBUSU9OCisjICBlbnRlciBjb25maWctc3dpdGNoLWlmIHN1Ym1vZGUKKyMKKworU1dJVENIX0lOVEVSRkFDRV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICAgICAgICA6ICdpbnRlcmZhY2UnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdjb25maWctc3dpdGNoKicsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ0VudGVyIHN3aXRjaC1pZiBzdWJtb2RlLCBjb25maWd1cmUgc3dpdGNoIGludGVyZmFjZScsCisgICAgJ2NvbW1hbmQtdHlwZScgICAgICAgIDogJ2NvbmZpZy1zdWJtb2RlJywKKyAgICAnb2JqLXR5cGUnICAgICAgICAgICAgOiAnc3dpdGNoLWludGVyZmFjZS1jb25maWcnLAorICAgICdwYXJlbnQtZmllbGQnICAgICAgICA6ICdzd2l0Y2gnLAorICAgICdjdXJyZW50LW1vZGUtb2JqLWlkJyA6ICdzd2l0Y2gnLAorICAgICdzdWJtb2RlLW5hbWUnICAgICAgICA6ICdjb25maWctc3dpdGNoLWlmJywKKyAgICAnc3ludGF4LWhlbHAnICAgICAgICAgOiAnRW50ZXIgYW4gaW50ZXJmYWNlIG5hbWUnLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdzd2l0Y2h8aW50ZXJmYWNlJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAnc3dpdGNofGludGVyZmFjZS1leGFtcGxlJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ25hbWUnLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiBbICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAnaW50ZXJmYWNlc3xwb3J0TmFtZScsCisgICAgICAgICAgICAnc2NvcGVkJyAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ3dhcm4tbWlzc2luZy1pbnRlcmZhY2UnLAorICAgICAgICB9CisgICAgKQorfQorCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBTV0lUQ0hQT1JUX0NPTU1BTkRfREVTQ1JJUFRJT04KKyMgICdzd2l0Y2hwb3J0IG1vZGUgZXh0ZXJuYWwnCisjICAnbm8gc3dpdGNocG9ydCBtb2RlIGV4dGVybmFsJworIworCitTV0lUQ0hQT1JUX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc3dpdGNocG9ydCcsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnQ29uZmlndXJlIGludGVyZmFjZSBhcyBjb25uZWN0ZWQgdG8gYW4gZXh0ZXJuYWwgbmV0d29yaycsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXN3aXRjaC1pZicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdzd2l0Y2gtaW50ZXJmYWNlLWNvbmZpZycsCisgICAgJ2ZpZWxkcycgICAgICAgOiAoJ2Jyb2FkY2FzdCcsICdtb2RlJywpLAorICAgICdhY3Rpb24nICAgICAgIDogJ3dyaXRlLWZpZWxkcycsCisgICAgJ25vLWFjdGlvbicgICAgOiAncmVzZXQtZmllbGRzJywKKyAgICAnZG9jJyAgICAgICAgICA6ICdzd2l0Y2h8c3dpdGNocG9ydCcsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnc3dpdGNofHN3aXRjaHBvcnQtZXhhbXBsZScsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICdtb2RlJywKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICA6ICdtb2RlJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgICAgIDogJ2V4dGVybmFsJywKKyAgICAgICAgICAgICdoZWxwLW5hbWUnICAgOiAnaW50ZXJmYWNlIGNvbm5lY3RzIHRvIGV4dGVybmFsIG5ldHdvcmsnLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICA6ICdpbnRlcmZhY2UgY29ubmVjdHMgdG8gZXh0ZXJuYWwgbmV0d29yaycsCisgICAgICAgICAgICAnc3ludGF4LWhlbHAnIDogJ2V4dGVybmFsJworICAgICAgICB9LAorICAgICkKK30KKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMKKworCitTV0lUQ0hfSU5URVJGQUNFX0lOVEVSRkFDRV9BTElBU19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ2ludGVyZmFjZS1hbGlhcycsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXN3aXRjaC1pZicsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnQXR0YWNoIGFsaWFzIHRvIHN3aXRjaCBpbnRlcmZhY2UnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ21hbmFnZS1hbGlhcycsCisgICAgJ29iai10eXBlJyAgICAgOiAnc3dpdGNoLWludGVyZmFjZS1hbGlhcycsCisgICAgJ3Njb3BlZCcgICAgICAgOiBUcnVlLAorICAgICdkb2MnICAgICAgICAgIDogJ3N3aXRjaHxpbnRlcmZhY2UtYWxpYXMnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3N3aXRjaHxpbnRlcmZhY2UtYWxpYXMtZXhhbXBsZScsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ2lkJywKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogRmFsc2UsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICAgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgICAgOiAnQWxpYXMgc3RyaW5nJywKKyAgICAgICAgfQorICAgICkKK30KKyIiIgorIworIyBGT1JNQVRTCisjCisKKworU1dJVENIX0ZPUk1BVCA9IHsKKyAgICAnc3dpdGNoJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbICdJZHgnLCAnQCcsICdzd2l0Y2gtYWxpYXMnLCAnY29ubmVjdGVkLXNpbmNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lwLWFkZHJlc3MnLCAndHlwZScsICdjb250cm9sbGVyJ10sCisgICAgICAgICAgICAnZGV0YWlscycgOiBbICdJZHgnLCdAJywgJ3N3aXRjaC1hbGlhcycsICdjb25uZWN0ZWQtc2luY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnaXAtYWRkcmVzcycsICd0eXBlJywgJ2NvbnRyb2xsZXInXSwKKyAgICAgICAgICAgICdicmllZicgICA6IFsgJ0lkeCcsICdAJywgJ3N3aXRjaC1hbGlhcycsICdjb250cm9sbGVyJ10sCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICdAJyAgICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1N3aXRjaCBEUElEJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhY3RpdmUnICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2NvcmUtc3dpdGNoJyAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnQ29yZSBTd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWxpZGF0ZScgIDogJ3ZhbGlkYXRlX3N3aXRjaF9jb3JlX3N3aXRjaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnY29ubmVjdGVkLXNpbmNlJyAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdDb25uZWN0ZWQgU2luY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMnZm9ybWF0dGVyJyA6IGZtdGNudi50aW1lc3RhbXBfdG9fbG9jYWxfdGltZXN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdjYXBhYmlsaXRpZXMnICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9zd2l0Y2hfY2FwYWJpbGl0aWVzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2FjdGlvbnMnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3N3aXRjaF9hY3Rpb25zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lwLWFkZHJlc3MnICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnQ29ubmVjdGVkIEF0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdzb2NrZXQtYWRkcmVzcycgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2J1ZmZlcnMnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnY29udHJvbGxlcicgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdDb250cm9sbGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0YWJsZXMnICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3N3aXRjaC1hbGlhcycgICAgICAgOiB7CisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdBbGlhcycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0dW5uZWxDYXBhYmxlJyAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1R1biBDYXBhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0dW5uZWxFbmFibGVkJyAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJy1FbmFibGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0dW5uZWxTdGF0ZScgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICctU3RhdGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2RwLWRlc2MnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaHctZGVzYycgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdzdy1kZXNjJyAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3NlcmlhbC1udW0nICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHlwZScgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKK30KKyIiIgorU1dJVENIX0NPTkZJR19GT1JNQVQgPSB7CisgICAgJ3N3aXRjaC1jb25maWcnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lkeCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R1bm5lbC10ZXJtaW5hdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdjb3JlLXN3aXRjaCcsCisgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICB9LAorICAgIH0sCit9CisKKworU1dJVENIX0FMSUFTX0ZPUk1BVCA9IHsKKyAgICAnc3dpdGNoLWFsaWFzJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgICAgIDogWyAnSWR4JywgJ2lkJywgJ3N3aXRjaCcgXSwKKyAgICAgICAgICAgICdicmllZicgICAgICAgOiBbICdJZHgnLCAnaWQnLCAnc3dpdGNoJyBdLAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKK30KKworCitTV0lUQ0hfSU5URVJGQUNFX0NPTkZJR19GT1JNQVQgPSB7CisgICAgJ3N3aXRjaC1pbnRlcmZhY2UtY29uZmlnJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiAgICAgWyAnSWR4JywgJ2lmLW5hbWUnLCAnbW9kZScgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnICAgICAgICAgIDogeworICAgICAgICAgICAgJ2Jyb2FkY2FzdCcgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICduYW1lJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbW9kZScgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1N3aXRjaHBvcnQgTW9kZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKK30KKworCitTV0lUQ0hfSU5URVJGQUNFX0FMSUFTX0ZPUk1BVCA9IHsKKyAgICAnc3dpdGNoLWludGVyZmFjZS1hbGlhcycgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgICA6IFsgJ0lkeCcsICdpZCcsICdzd2l0Y2gnLCAnbmFtZScgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnaWQnICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdBbGlhcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCitTV0lUQ0hfSU5URVJGQUNFU19GT1JNQVQgPSB7CisgICAgJ3N3aXRjaC1pbnRlcmZhY2VzJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbICdJZHgnLCAnc3dpdGNoJywgJ3BvcnROYW1lJywgJ3N0YXRlJywgJ2NvbmZpZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWNlaXZlQnl0ZXMnLCAncmVjZWl2ZVBhY2tldHMnLCAncmVjZWl2ZUVycm9ycycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICd0cmFuc21pdEJ5dGVzJywgJ3RyYW5zbWl0UGFja2V0cycsICd0cmFuc21pdEVycm9ycycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdtb2RlJywgJ2Jyb2FkY2FzdCcsCisgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ2RldGFpbHMnIDogWyAnSWR4JywgJ3N3aXRjaCcsICdwb3J0TmFtZScsICdoYXJkd2FyZUFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnY29uZmlnJywgJ3N0cC1zdGF0ZScsICdzdGF0ZScsICdjdXJyZW50RmVhdHVyZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnYWR2ZXJ0aXNlZEZlYXR1cmVzJywgJ3N1cHBvcnRlZEZlYXR1cmVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BlZXItZmVhdHVyZXMnLCAnbW9kZScsICdicm9hZGNhc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdicmllZicgICA6IFsgJ0lkeCcsICdzd2l0Y2gnLCAncG9ydE5hbWUnLCAnc3RhdGUnLCAnY29uZmlnJyBdLAorICAgICAgICAgICAgfSwKKworICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICdpZCcgICAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3dpdGNoJyAgICAgICAgICAgICAgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LnJlcGxhY2Vfc3dpdGNoX3dpdGhfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncG9ydE5hbWUnICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0lGJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaGFyZHdhcmVBZGRyZXNzJyAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ01BQyBBZGRyZXNzJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdjb25maWcnICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfY29uZmlnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3N0YXRlJyAgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdMaW5rJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfdXBfZG93biwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3RwLXN0YXRlJyAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogbGFtYmRhIGksIGRhdGEgOiAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbXRjbnYuZGVjb2RlX3BvcnRfc3RwX3N0YXRlKGRhdGFbJ3N0YXRlJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnY3VycmVudEZlYXR1cmVzJyAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0N1cnIgRmVhdHVyZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9mZWF0dXJlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhZHZlcnRpc2VkRmVhdHVyZXMnICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQWR2IEZlYXR1cmVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfZmVhdHVyZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3VwcG9ydGVkRmVhdHVyZXMnICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1N1cHAgRmVhdHVyZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfcG9ydF9mZWF0dXJlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdwZWVyLWZlYXR1cmVzJyAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUGVlciBGZWF0dXJlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2ZlYXR1cmVzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3JlY2VpdmVCeXRlcycgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUmN2IEJ5dGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2NvdW50ZXJ9LAorICAgICAgICAgICAgJ3JlY2VpdmVQYWNrZXRzJyAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUmN2IFBrdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2NvdW50ZXJ9LAorICAgICAgICAgICAgJ3JlY2VpdmVFcnJvcnMnICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUmN2IEVycnMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYuZGVjb2RlX3BvcnRfY291bnRlcn0sCisgICAgICAgICAgICAndHJhbnNtaXRCeXRlcycgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdYbWl0IEJ5dGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2NvdW50ZXJ9LAorICAgICAgICAgICAgJ3RyYW5zbWl0UGFja2V0cycgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnWG1pdCBQa3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2NvdW50ZXJ9LAorICAgICAgICAgICAgJ3RyYW5zbWl0RXJyb3JzJyAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnWG1pdCBFcnJzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9wb3J0X2NvdW50ZXJ9LAorICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKK30KKworVFVOTkVMX0RFVEFJTFNfRk9STUFUID0geworICAgICd0dW5uZWwtZGV0YWlscycgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAnSWR4JywgJ2RwaWQnLCAnbG9jYWxUdW5uZWxJUEFkZHInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R1bm5lbFBvcnRzJywKKyAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKworICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICdkcGlkJyAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnU3dpdGNoIERQSUQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcmltYXJ5X2tleSc6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucmVwbGFjZV9zd2l0Y2hfd2l0aF9hbGlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2xvY2FsVHVubmVsSVBBZGRyJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0xvY2FsIHR1bm5lbCBJUCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0dW5uZWxQb3J0cycgOiAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnUmVtb3RlIHR1bm5lbCBJUCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICB9LAorfQorIiIiCisKK2RlZiBncm91cF9pZF9jb21wbGV0aW9uKHByZWZpeCwgZGF0YSwgY29tcGxldGlvbnMpOgorICAgIGRwaWQgPSBkYXRhLmdldCgnZHBpZCcpCisgICAgI3ByaW50IGRwaWQKKyAgICBxdWVyeV91cmwgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc3QvdjEvcmVhbHRpbWVzdGF0cy9ncm91cC8lcy8iICUoZHBpZCkKKyAgICByZXN1bHQgPSBjb21tYW5kLnNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QocXVlcnlfdXJsKQorICAgIGVudHJpZXMgPSBqc29uLmxvYWRzKHJlc3VsdCkKKyAgICBlbnRyaWVzID0gZW50cmllc1tkcGlkXQorICAgICNwcmludCAicmVzdWx0IiwgZW50cmllcworICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAjcHJpbnQgZW50cnlbJ2dyb3VwSWQnXQorICAgICAgICBpZiBzdHIoZW50cnlbJ2dyb3VwSWQnXSkuc3RhcnRzd2l0aChwcmVmaXgpOgorICAgICAgICAgICAgY29tcGxldGlvbnNbc3RyKGVudHJ5Wydncm91cElkJ10pKycgJ10gPSBlbnRyeVsnZ3JvdXBJZCddCisgICAgcmV0dXJuCisKK2NvbW1hbmQuYWRkX2NvbXBsZXRpb24oJ2dyb3VwLWlkLWNvbXBsZXRpb24nLCBncm91cF9pZF9jb21wbGV0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsgJ3ByZWZpeCcgICAgICAgOiAnJHRleHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICAgICAgOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb25zJyAgOiAnJGNvbXBsZXRpb25zJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KQpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC9zd2l0Y2hfbW9kZWwucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3N3aXRjaF9tb2RlbC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNDc4NzQ4Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC9zd2l0Y2hfbW9kZWwucHkKQEAgLTAsMCArMSwzNyBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2ltcG9ydCBjb21tYW5kCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCdzd2l0Y2gtY29uZmlnJywgJ3R1bm5lbC10ZXJtaW5hdGlvbicpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnc3dpdGNoLWNvbmZpZycsICdjb3JlLXN3aXRjaCcpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgnc3dpdGNoLWNvbmZpZycsICdkcGlkJykKKworY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX3N1Ym1vZGUoJ3N3aXRjaCcpCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfc2V0X2Nhc2UoJ3N3aXRjaCcsICAgICAgICAnZHBpZCcsICdsb3dlcicpCitjb21tYW5kLm1vZGVsX29ial90eXBlX3NldF9jYXNlKCdzd2l0Y2gtY29uZmlnJywgJ2RwaWQnLCAnbG93ZXInKQorCitjb21tYW5kLm1vZGVsX29ial90eXBlX3NldF9jYXNlKCdzd2l0Y2gtaW50ZXJmYWNlLWNvbmZpZycsICduYW1lJywgJ2xvd2VyJykKKworCisKKyMgcmVzdC10by1tb2RlbCBtb2RlbC1saWtlIHJlc3VsdHMgZnJvbSB0aGUgc3dpdGNoZXMvZGV2aWNlcyByZXN0IGFwaQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9zZXRfY2FzZSgnc3dpdGNoZXMnLCAgICdpZCcsICdsb3dlcicpCitjb21tYW5kLm1vZGVsX29ial90eXBlX3NldF9jYXNlKCdzd2l0Y2hlcycsICAgJ2RwaWQnLCAnbG93ZXInKQorCitjb21tYW5kLm1vZGVsX29ial90eXBlX3NldF9jYXNlKCdpbnRlcmZhY2VzJywgJ2lkJywgJ2xvd2VyJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfc2V0X2Nhc2UoJ2ludGVyZmFjZXMnLCAnbmFtZScsICdsb3dlcicpCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL3RhY2Fjcy5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGFjYWNzLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMxZWZjZjIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3RhY2Fjcy5weQpAQCAtMCwwICsxLDM5MSBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisiIiIKK1RBQ0FDU19TRVJWRVJfSE9TVF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3RhY2FjcycsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnKicsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnVEFDQUNTIHRpbWVvdXQsIGlwIHNlcnZlciBhZGRyZXNzJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd0YWNhY3N8dGFjYWNzJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd0YWNhY3N8dGFjYWNzLWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZy1vYmplY3QnLAorICAgICdvYmotdHlwZScgICAgIDogJ3RhY2Fjcy1wbHVzLWhvc3QnLAorICAgICdwYXJlbnQtZmllbGQnIDogTm9uZSwKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ3NlcnZlcicsCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICAgICAgIDogJ3RpbWVvdXQnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZCcgOiAndGFjYWNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RpbWVvdXQnIDogMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgICAgICAgOiAndGFjYWNzLXBsdXMtY29uZmlnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICduby1hY3Rpb24nICAgICAgIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgICAgICA6ICdjb25maWd1cmUgdGltZW91dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICd0YWNhY3N8dGFjYWNzLXRpbWVvdXQnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICd0aW1lb3V0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgIDogJ2ludGVnZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyA6ICd0YWNhY3MnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgICAgICA6ICd0YWNhY3MtcGx1cy1jb25maWcnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgICAgICAgOiAnd3JpdGUtb2JqZWN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgfSwgCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICAgICAgIDogJ2tleScsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnIDogJ3RhY2FjcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tleScgOiAnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICduby1hY3Rpb24nICAgICAgIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgICAgICA6ICd0YWNhY3MtcGx1cy1jb25maWcnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgICAgOiAnc2V0IHNoYXJlZCBUQUNBQ1Mgc2VydmVyIGtleScsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICd0YWNhY3N8dGFjYWNzLWtleScsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ2tleScsCisgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICAgICAgICAgOiB7ICdpZCcgOiAndGFjYWNzJyB9LAorICAgICAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgICAgICAgOiAndGFjYWNzLXBsdXMtY29uZmlnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICAgICAgIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ2lwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0YWcnICAgICAgICAgICAgIDogJ2hvc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnaXAtYWRkcmVzcy1ub3QtbWFzaycsCisgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICAgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgICAgOiAnc2V0IHNwZWNpZmljIFRBQ0FDUyBob3N0IHByb3BlcnRpZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgICAgOiAndGFjYWNzfHRhY2Fjcy1ob3N0JywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsJyAgICAgICAgICAgICAgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyAgICAgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhcmdzJyA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICAgICAgIDogJ2tleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduby1hY3Rpb24nICAgICAgIDogJ3Jlc2V0LWZpZWxkcy1leHBsaWNpdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgICAgICAgIDogeyAna2V5JyA6ICcnIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICAgICAgIDogJ3RhY2Fjcy1wbHVzLWhvc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgICAgICA6ICdzZXQgc2hhcmVkIFRBQ0FDUyBzZXJ2ZXIga2V5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgICAgOiAndGFjYWNzfHRhY2Fjcy1ob3N0LWtleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nICAgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcmdzJyAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ2tleScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgICAgICAgOiAndGFjYWNzLXBsdXMtaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgKSwKKyAgICAgICAgfSwKKyAgICApCit9CisKK1RBQ0FDU19BQUFfQVVUSE9SSVpBVElPTl9FWEVDX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnYWFhJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWcqJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdDb25maWd1cmUgYXV0aG9yaXphdGlvbiBwYXJhbWV0ZXJzJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorICAgICdkb2MnICAgICAgICAgIDogJ2FhYXxhYWEtYXV0aG9yaXphdGlvbicsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnYWFhfGFhYS1hdXRob3JpemF0aW9uLWV4YW1wbGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ3RhY2Fjcy1wbHVzLWNvbmZpZycsCisgICAgJ25vLWFjdGlvbicgICAgOiAncmVzZXQtZmllbGRzLWV4cGxpY2l0JywKKyAgICAnZmllbGRzJyAgICAgICA6IFsgJ3RhY2Fjcy1wbHVzLWF1dGh6JywgJ2xvY2FsLWF1dGh6JyBdLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAnYXV0aG9yaXphdGlvbicsCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdleGVjJywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdDb25maWd1cmUgYXV0aG9yaXphdGlvbiBmb3Igc3RhcnRpbmcgYSBzaGVsbCcsCisgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnYWFhfGFhYS1hdXRob3JpemF0aW9uLWV4ZWMnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAndG9rZW4nICAgICAgOiAnZGVmYXVsdCcsCisgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnQ29uZmlndXJlIGF1dGhvcml6YXRpb24gZm9yIHRoZSBkZWZhdWx0IGNoYW5uZWwnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2FhYXxhYWEtYXV0aG9yaXphdGlvbi1leGVjLXVzZS1kZWZhdWx0JywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgJ2Nob2ljZXMnICAgICAgICAgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgOiAnbG9jYWwnLAorICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnVXNlIGxvY2FsIGRhdGFiYXNlIGZvciBhdXRob3JpemF0aW9uJywKKyAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2FhYXxhYWEtYXV0aG9yaXphdGlvbi1leGVjLXVzZS1sb2NhbCcsCisgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnICAgICAgICAgICAgICAgIDogJ3RhY2FjcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvY2FsLWF1dGh6JyAgICAgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhY2Fjcy1wbHVzLWF1dGh6JyA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdncm91cCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnVXNlIGEgc2VydmVyLWdyb3VwJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ3RhY2FjcysnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1VzZSBsaXN0IG9mIGFsbCBkZWZpbmVkIFRBQ0FDUysgaG9zdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2FhYXxhYWEtYXV0aG9yaXphdGlvbi1leGVjLXVzZS10YWNhY3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgICAgICAgICA6ICd0YWNhY3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2NhbC1hdXRoeicgICAgICAgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGFjYWNzLXBsdXMtYXV0aHonIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgOiAnbG9jYWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1VzZSBsb2NhbCBkYXRhYmFzZSBmb3IgYXV0aG9yaXphdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnYWFhfGFhYS1hdXRob3JpemF0aW9uLWV4ZWMtdXNlLWxvY2FsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnICAgOiAnd3JpdGUtb2JqZWN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnICAgICAgICAgICAgICAgIDogJ3RhY2FjcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvY2FsLWF1dGh6JyAgICAgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhY2Fjcy1wbHVzLWF1dGh6JyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgKSwKKyAgICAgICAgfSwKKyAgICApLAorfQorCitUQUNBQ1NfQUFBX0FVVEhFTlRJQ0FUSU9OX0xPR0lOX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnYWFhJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWcqJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdDb25maWd1cmUgYXV0aGVudGljYXRpb24gcGFyYW1ldGVycycsCisgICAgJ2RvYycgICAgICAgICAgOiAnYWFhfGFhYS1hdXRoZW50aWNhdGlvbicsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnYWFhfGFhYS1hdXRoZW50aWNhdGlvbi1leGFtcGxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorICAgICduby1hY3Rpb24nICAgIDogJ3Jlc2V0LWZpZWxkcy1leHBsaWNpdCcsCisgICAgJ29iai10eXBlJyAgICAgOiAndGFjYWNzLXBsdXMtY29uZmlnJywKKyAgICAnZmllbGRzJyAgICAgICA6IFsgJ3RhY2Fjcy1wbHVzLWF1dGhuJywgJ2xvY2FsLWF1dGhuJyBdLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAnYXV0aGVudGljYXRpb24nLAorICAgICAgICB7CisgICAgICAgICAgICAndG9rZW4nICAgICAgOiAnbG9naW4nLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0NvbmZpZ3VyZSBhdXRoZW50aWNhdGlvbiBmb3Igc3RhcnRpbmcgYSBzaGVsbCcsCisgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnYWFhfGFhYS1hdXRoZW50aWNhdGlvbi1sb2dpbicsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdkZWZhdWx0JywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdDb25maWd1cmUgYXV0aGVudGljYXRpb24gdmlhIHRoZSBkZWZhdWx0IGNoYW5uZWwnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2FhYXxhYWEtYXV0aGVudGljYXRpb24tbG9naW4tdXNlLWRlZmF1bHQnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAnY2hvaWNlcycgICAgICAgICA6ICgKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdsb2NhbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnVXNlIGxvY2FsIGRhdGFiYXNlIGZvciBhdXRoZW50aWNhdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnYWFhfGFhYS1hdXRoZW50aWNhdGlvbi1sb2dpbi11c2UtbG9jYWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZCcgICAgICAgICAgICAgICAgOiAndGFjYWNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvY2FsLWF1dGhuJyAgICAgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0YWNhY3MtcGx1cy1hdXRobicgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICAnZ3JvdXAnLAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgOiAndGFjYWNzKycsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnVXNlIGxpc3Qgb2YgYWxsIGRlZmluZWQgVEFDQUNTKyBob3N0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnYWFhfGFhYS1hdXRoZW50aWNhdGlvbi1sb2dpbi11c2UtdGFjYWNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgICA6ICd3cml0ZS1vYmplY3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWQnICAgICAgICAgICAgICAgIDogJ3RhY2FjcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsb2NhbC1hdXRobicgICAgICAgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhY2Fjcy1wbHVzLWF1dGhuJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ2xvY2FsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnVXNlIGxvY2FsIGRhdGFiYXNlIGZvciBhdXRoZW50aWNhdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnYWFhfGFhYS1hdXRoZW50aWNhdGlvbi1sb2dpbi11c2UtbG9jYWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEnICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZCcgICAgICAgICAgICAgICAgOiAndGFjYWNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xvY2FsLWF1dGhuJyAgICAgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0YWNhY3MtcGx1cy1hdXRobicgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICksCisgICAgICAgIH0sCisgICAgKSwKK30KKworVEFDQUNTX0FBQV9BQ0NPVU5USU5HX0VYRUNfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdhYWEnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZyonLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0NvbmZpZ3VyZSBhY2NvdW50aW5nIHBhcmFtZXRlcnMnLAorICAgICdkb2MnICAgICAgICAgIDogJ2FhYXxhYWEtYWNjb3VudGluZycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnYWFhfGFhYS1hY2NvdW50aW5nLWV4YW1wbGUnLAorICAgICdhbGwtaGVscCcgICAgIDogJ0F1dGhlbnRpY2F0aW9uLCBBdXRob3JpemF0aW9uLCBhbmQgQWNjb3VudGluZycsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd0YWNhY3MtcGx1cy1jb25maWcnLAorICAgICduby1hY3Rpb24nICAgIDogJ3Jlc2V0LWZpZWxkcy1leHBsaWNpdCcsCisgICAgJ2ZpZWxkcycgICAgICAgOiBbICd0YWNhY3MtcGx1cy1hY2N0JyBdLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAnYWNjb3VudGluZycsCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdleGVjJywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdDb25maWd1cmUgYWNjb3VudGluZyBmb3Igc3RhcnRpbmcgYSBzaGVsbCcsCisgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnYWFhfGFhYS1hY2NvdW50aW5nLWV4ZWMnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAndG9rZW4nICAgICAgOiAnZGVmYXVsdCcsCisgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnQ29uZmlndXJlIGFjY291bnRpbmcgZm9yIHRoZSBkZWZhdWx0IGNoYW5uZWwnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2FhYXxhYWEtYXV0aG9yaXphdGlvbi1leGVjLXVzZS1kZWZhdWx0JywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ25vbmUnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ05vIGFjY291bnRpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2FhYXxhYWEtYWNjb3VudGluZy1leGVjLXVzZS1ub25lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgICA6ICd3cml0ZS1vYmplY3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgICAgICAgICA6ICd0YWNhY3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhY2Fjcy1wbHVzLWFjY3QnICA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgICA6ICdzdGFydC1zdG9wJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdSZWNvcmQgc3RhcnQgYW5kIHN0b3AnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2FhYXxhYWEtYWNjb3VudGluZy1leGVjLXVzZS1zdGFydC1zdG9wJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ2dyb3VwJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdVc2UgYSBzZXJ2ZXItZ3JvdXAnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2FhYXxhYWEtYWNjb3VudGluZy1leGVjLXVzZS1zZXJ2ZXItZ3JvdXAnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgOiAndGFjYWNzKycsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnVXNlIGxpc3Qgb2YgYWxsIGRlZmluZWQgVEFDQUNTKyBob3N0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnYWFhfGFhYS1hY2NvdW50aW5nLWV4ZWMtdXNlLXRhY2FjcycsCisgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnICAgOiAnd3JpdGUtb2JqZWN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgICAgICAgICA6ICd0YWNhY3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGFjYWNzLXBsdXMtYWNjdCcgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICksCisgICAgfQorCitTSE9XX1RBQ0FDU19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IFRBQ0FDUyBvcGVyYXRpb25hbCBzdGF0ZScsCisgICAgJ2RvYycgICAgICAgICAgOiAndGFjYWNzfHNob3cnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3RhY2Fjc3xzaG93LWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ3RhY2Fjcy1wbHVzLWNvbmZpZycsCisgICAgJ3BhcmVudC1maWVsZCcgOiBOb25lLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAndGFjYWNzJywKKyAgICApLAorICAgICdhY3Rpb24nICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgICAgIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgICAgIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICAgICAgICAgJ3RpdGxlJyAgICA6ICdcblRBQ0FDUyBTZXJ2ZXIgSG9zdHNcbicsCisgICAgICAgICAgICAnc29ydCcgICAgIDogJ3RpbWVzdGFtcCcsCisgICAgICAgICAgICAnb2JqLXR5cGUnIDogJ3RhY2Fjcy1wbHVzLWhvc3QnLAorICAgICAgICB9LAorICAgICksCit9CisKK1NIT1dfVEFDQUNTX1BMVVNfQ09ORklHX0ZPUk1BVCA9IHsKKyAgICAndGFjYWNzLXBsdXMtY29uZmlnJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiAgWyAnSWR4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhY2Fjcy1wbHVzLWF1dGhuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhY2Fjcy1wbHVzLWF1dGh6JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RhY2Fjcy1wbHVzLWFjY3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9jYWwtYXV0aG4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnbG9jYWwtYXV0aHonLAorICAgICAgICAgICAgICAgICAgICAgICAgICAndGltZW91dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdrZXknLAorICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgIH0sCisgICAgfSwKK30KKworU0hPV19UQUNBQ1NfUExVU19IT1NUX0ZPUk1BVCA9IHsKKyAgICAndGFjYWNzLXBsdXMtaG9zdCcgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogIFsgJ0lkeCcsICdpcCcsICdrZXknLAorICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ0lkeCcgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICcjJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdpcCcgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnSXAgQWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAna2V5JyA6IHsKKyAgICAgICAgICAgICAgICAgICAgfSwKKworICAgICAgICB9CisgICAgfQorfQorIiIiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC90YWNhY3NfbW9kZWwucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3RhY2Fjc19tb2RlbC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jYzdjZGI2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC90YWNhY3NfbW9kZWwucHkKQEAgLTAsMCArMSwzMSBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2ltcG9ydCBjb21tYW5kCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9zdWJtb2RlKCd0YWNhY3MtcGx1cy1jb25maWcnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX3N1Ym1vZGUoJ3RhY2Fjcy1wbHVzLWhvc3QnKQorCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgndGFjYWNzLXBsdXMtY29uZmlnJywgJ3RhY2Fjcy1wbHVzLWF1dGhuJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCd0YWNhY3MtcGx1cy1jb25maWcnLCAndGFjYWNzLXBsdXMtYXV0aHonKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3RhY2Fjcy1wbHVzLWNvbmZpZycsICd0YWNhY3MtcGx1cy1hY2N0JykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCd0YWNhY3MtcGx1cy1jb25maWcnLCAnbG9jYWwtYXV0aG4nKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3RhY2Fjcy1wbHVzLWNvbmZpZycsICdsb2NhbC1hdXRoeicpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgndGFjYWNzLXBsdXMtY29uZmlnJywgJ3RpbWVvdXQnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3RhY2Fjcy1wbHVzLWNvbmZpZycsICdrZXknKQorCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgndGFjYWNzLXBsdXMtaG9zdCcsICdpcCcpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgndGFjYWNzLXBsdXMtaG9zdCcsICdrZXknKQpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC90YWNhY3NfcnVuX2NvbmZpZy5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGFjYWNzX3J1bl9jb25maWcucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODhkZDZhNQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGFjYWNzX3J1bl9jb25maWcucHkKQEAgLTAsMCArMSwxMTMgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCisjIHRhY2Fjcy4KKyMKKworaW1wb3J0IHJ1bl9jb25maWcKK2ltcG9ydCB1dGlmCisKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgY3JlYXRlX29ial90eXBlX2RpY3QoY29udGV4dCwgb2JqX3R5cGUsIGZpZWxkKToKKyAgICAiIiIKKyAgICBTaG91bGQgdGhlcmUgYmUgc29tZSBjb2xsZWN0aW9ucyBvZiBtaWRkZWxld2FyZSBmdW5jdGlvbnMgZm9yIHVzZSBieSBwYWNrYWdlcz8KKyAgICAiIiIKKyAgICBlbnRyaWVzID0gY29udGV4dC5nZXRfdGFibGVfZnJvbV9zdG9yZShvYmpfdHlwZSkKKyAgICByZXN1bHRfZGljdCA9IHt9CisgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgIGlmIGVudHJ5W2ZpZWxkXSBpbiByZXN1bHRfZGljdDoKKyAgICAgICAgICAgIHJlc3VsdF9kaWN0W2VudHJ5W2ZpZWxkXV0uYXBwZW5kKGVudHJ5KQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0X2RpY3RbZW50cnlbZmllbGRdXSA9IFtlbnRyeV0KKworICAgIHJldHVybiByZXN1bHRfZGljdAorCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBydW5uaW5nX2NvbmZpZ190YWNhY3MoY29udGV4dCwgY29uZmlnLCB3b3Jkcyk6CisgICAgdF9vYmpfdHlwZSAgPSAndGFjYWNzLXBsdXMtY29uZmlnJworICAgIHRoX29ial90eXBlID0gJ3RhY2Fjcy1wbHVzLWhvc3QnCisKKyAgICB0YWNhY3MgPSBjb250ZXh0LmdldF90YWJsZV9mcm9tX3N0b3JlKHRfb2JqX3R5cGUpCisgICAgaWYgbGVuKHRhY2FjcykgPiAxOgorICAgICAgICBwcmludCAncnVubmluZ19jb25maWdfdGFjYWNzOiBtb3JlIHRoYW4gb25lIHRhY2FjcyByZWNvcmQnCisKKyAgICB0YWNhY3NfaG9zdCA9IGNvbnRleHQucmVzdF9xdWVyeV9vYmplY3RzKHRoX29ial90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydvcmRlcmJ5JyA6ICd0aW1lc3RhbXAnfSkKKworCisgICAgdF9jb25maWcgPSBbXQorCisgICAgaWYgdGFjYWNzOgorICAgICAgICB0YWNhY3MgPSB0YWNhY3NbMF0KKworICAgICAgICBpZiBydW5fY29uZmlnLm5vdF9kZWZhdWx0X3ZhbHVlKHRfb2JqX3R5cGUsICd0YWNhY3MtcGx1cy1hdXRobicsIHRhY2Fjc1sndGFjYWNzLXBsdXMtYXV0aG4nXSkgYW5kIFwKKyAgICAgICAgICAgcnVuX2NvbmZpZy5ub3RfZGVmYXVsdF92YWx1ZSh0X29ial90eXBlLCAnbG9jYWwtYXV0aG4nLCB0YWNhY3NbJ2xvY2FsLWF1dGhuJ10pOgorICAgICAgICAgICAgdF9jb25maWcuYXBwZW5kKCdhYWEgYXV0aGVudGljYXRpb24gbG9naW4gZGVmYXVsdCBncm91cCB0YWNhY3MrXG4nKQorICAgICAgICBlbGlmIHJ1bl9jb25maWcubm90X2RlZmF1bHRfdmFsdWUodF9vYmpfdHlwZSwgJ3RhY2Fjcy1wbHVzLWF1dGhuJywgdGFjYWNzWyd0YWNhY3MtcGx1cy1hdXRobiddKToKKyAgICAgICAgICAgIHRfY29uZmlnLmFwcGVuZCgnYWFhIGF1dGhlbnRpY2F0aW9uIGxvZ2luIGRlZmF1bHQgZ3JvdXAgdGFjYWNzKyBsb2NhbFxuJykKKworICAgICAgICBpZiBydW5fY29uZmlnLm5vdF9kZWZhdWx0X3ZhbHVlKHRfb2JqX3R5cGUsICd0YWNhY3MtcGx1cy1hdXRoeicsIHRhY2Fjc1sndGFjYWNzLXBsdXMtYXV0aHonXSkgYW5kIFwKKyAgICAgICAgICAgcnVuX2NvbmZpZy5ub3RfZGVmYXVsdF92YWx1ZSh0X29ial90eXBlLCAnbG9jYWwtYXV0aHonLCB0YWNhY3NbJ2xvY2FsLWF1dGh6J10pOgorICAgICAgICAgICAgdF9jb25maWcuYXBwZW5kKCdhYWEgYXV0aG9yaXphdGlvbiBleGVjIGRlZmF1bHQgZ3JvdXAgdGFjYWNzK1xuJykKKyAgICAgICAgZWxpZiBydW5fY29uZmlnLm5vdF9kZWZhdWx0X3ZhbHVlKHRfb2JqX3R5cGUsICd0YWNhY3MtcGx1cy1hdXRoeicsIHRhY2Fjc1sndGFjYWNzLXBsdXMtYXV0aHonXSk6CisgICAgICAgICAgICB0X2NvbmZpZy5hcHBlbmQoJ2FhYSBhdXRob3JpemF0aW9uIGV4ZWMgZGVmYXVsdCBncm91cCB0YWNhY3MrIGxvY2FsXG4nKQorCisgICAgICAgIGlmIHJ1bl9jb25maWcubm90X2RlZmF1bHRfdmFsdWUodF9vYmpfdHlwZSwgJ3RhY2Fjcy1wbHVzLWFjY3QnLCB0YWNhY3NbJ3RhY2Fjcy1wbHVzLWFjY3QnXSk6CisgICAgICAgICAgICB0X2NvbmZpZy5hcHBlbmQoJ2FhYSBhY2NvdW50aW5nIGV4ZWMgZGVmYXVsdCBzdGFydC1zdG9wIGdyb3VwIHRhY2FjcytcbicpCisKKyAgICAgICAgaWYgcnVuX2NvbmZpZy5ub3RfZGVmYXVsdF92YWx1ZSh0X29ial90eXBlLCAna2V5JywgdGFjYWNzWydrZXknXSk6CisgICAgICAgICAgICB0X2NvbmZpZy5hcHBlbmQoJ3RhY2FjcyBzZXJ2ZXIga2V5ICVzXG4nICUgdGFjYWNzWydrZXknXSkKKworICAgICAgICBpZiBydW5fY29uZmlnLm5vdF9kZWZhdWx0X3ZhbHVlKHRfb2JqX3R5cGUsICd0aW1lb3V0JywgdGFjYWNzWyd0aW1lb3V0J10pOgorICAgICAgICAgICAgdF9jb25maWcuYXBwZW5kKCd0YWNhY3Mgc2VydmVyIHRpbWVvdXQgJXNcbicgJSB0YWNhY3NbJ3RpbWVvdXQnXSkKKworICAgIGZvciBoIGluIHRhY2Fjc19ob3N0OgorICAgICAgICBpZiBydW5fY29uZmlnLm5vdF9kZWZhdWx0X3ZhbHVlKHRoX29ial90eXBlLCAna2V5JywgaFsna2V5J10pOgorICAgICAgICAgICAga2V5ID0gJyBrZXkgJXMnICUgIHV0aWYucXVvdGVfc3RyaW5nKGhbJ2tleSddKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAga2V5ID0gJycKKworICAgICAgICB0X2NvbmZpZy5hcHBlbmQoJ3RhY2FjcyBzZXJ2ZXIgaG9zdCAlcyVzXG4nICUgKGhbJ2lwJ10sIGtleSkpCisKKyAgICBpZiBsZW4odF9jb25maWcpOiAgIAorICAgICAgICBjb25maWcuYXBwZW5kKCchXG4nKQorICAgICAgICBjb25maWcgKz0gdF9jb25maWcKKworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3RhY2Fjc19ydW5uaW5nX2NvbmZpZ190dXBsZSA9ICgKKyAgICAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdvcHRpb25hbCcgOiBGYWxzZSwKKyAgICAgICAgICAgICdmaWVsZCcgICAgOiAncnVubmluZy1jb25maWcnLAorICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgOiAndGFjYWNzJywKKyAgICAgICAgICAgICdkb2MnICAgICAgOiAncnVubmluZy1jb25maWd8c2hvdy10YWNhY3MnLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnOiAnQ29uZmlndXJhdGlvbiBmb3IgVEFDQUNTIGF1dGhlbnRpY2F0aW9uJworICAgICAgICB9LAorICAgICksCispCisKK3J1bl9jb25maWcucmVnaXN0ZXJfcnVubmluZ19jb25maWcoJ3RhY2FjcycsIDIwMDAsICBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5uaW5nX2NvbmZpZ190YWNhY3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhY2Fjc19ydW5uaW5nX2NvbmZpZ190dXBsZSkKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGFjYWNzX3RlY2hzdXBwb3J0LnB5IGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC90YWNhY3NfdGVjaHN1cHBvcnQucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjdlNTQ5OAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGFjYWNzX3RlY2hzdXBwb3J0LnB5CkBAIC0wLDAgKzEsMjggQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEyLDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2Zyb20gdGVjaF9zdXBwb3J0IGltcG9ydCBhZGRfdG9fc2hvd190ZWNoX3N1cHBvcnQKKworIyBTTk1QIGNvbW1hbmRzIHRvIGJlIGluY2x1ZGVkIGluICdzaG93IHRlY2gtc3VwcG9ydCcgb3V0cHV0Cit0YWNhY3Nfc2hvd190ZWNoX3N1cHBvcnRfY29tbWFuZHMgPSBbCisgICAgWydjbGknLCAnc2hvdyB0YWNhY3MnXSwKKyAgICBbJ3NoZWxsJywgJ2NhdCAvZXRjL25zc3dpdGNoLmNvbmYnXSwKKyAgICBbJ3NoZWxsJywgJ2NhdCAvZXRjL3BhbS5kL3NzaGQnXSwKK10KKworIyBhZGQgY29tbWFuZHMgdG8gY2VudHJhbCBjb21tYW5kIHRhYmxlIHVzZWQgZm9yICdzaG93IHRlY2gtc3VwcG9ydCcKK2ZvciBlbnRyeSBpbiB0YWNhY3Nfc2hvd190ZWNoX3N1cHBvcnRfY29tbWFuZHM6CisgICAgYWRkX3RvX3Nob3dfdGVjaF9zdXBwb3J0KHN0cihlbnRyeVswXSksIHN0cihlbnRyeVsxXSkpCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL3RhZy1tb2RlbC5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGFnLW1vZGVsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIzZWI0MzUKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3RhZy1tb2RlbC5weQpAQCAtMCwwICsxLDE5IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworaW1wb3J0IGNvbW1hbmQKKworY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9lbmFibGVfY2FzY2FkZV9kZWxldGUoJ3RhZy1tYXBwaW5nJykKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGFnLnB5IGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC90YWcucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzA5ZWI5NwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGFnLnB5CkBAIC0wLDAgKzEsMTczIEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKyIiIgorIworIworCitUQUdfU1VCTU9ERV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgICA6ICd0YWcnLAorICAgICdzaG9ydC1oZWxwJyAgICA6ICdFbnRlciB0YWcsIGNvbmZpZ3VyZSBzd2l0Y2ggZGV0YWlscycsCisgICAgJ2RvYycgICAgICAgICAgIDogJ3RhZ3x0YWcnLAorICAgICdkb2MtZXhhbXBsZScgICA6ICd0YWd8dGFnLWV4YW1wbGUnLAorICAgICdtb2RlJyAgICAgICAgICA6ICdjb25maWcqJywKKyAgICAnb2JqLXR5cGUnICAgICAgOiAndGFnJywKKyAgICAnY29tbWFuZC10eXBlJyAgOiAnY29uZmlnLXN1Ym1vZGUnLAorICAgICdzdWJtb2RlLW5hbWUnICA6ICdjb25maWctdGFnJywKKyAgICAnZG9jJyAgICAgICAgICAgOiAndGFnfHRhZycsCisgICAgJ2FyZ3MnIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICAgOiAnaWQnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAjJ2NvbXBsZXRpb24nICAgIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICAgOiAnY29tcGxldGUtdGFnLW1hcHBpbmcnLAorICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgIDogJ2NvbnZlcnQtdGFnLXRvLXBhcnRzJywKKyAgICAgICAgICAgICduYW1lc3BhY2Uta2V5JyA6ICduYW1lc3BhY2UnLAorICAgICAgICAgICAgJ25hbWUta2V5JyAgICAgIDogJ25hbWUnLAorICAgICAgICAgICAgJ3ZhbHVlLWtleScgICAgIDogJ3ZhbHVlJywKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgICA6ICdFbnRlciB0YWc6IFtuYW1lc3BhY2VdLm5hbWU9dmFsdWUnLAorICAgICAgICB9CisgICAgKQorfQorCitUQUdfTUFUQ0hfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdtYXRjaCcsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXRhZycsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnLW9iamVjdCcsCisgICAgJ3BhcmVudC1maWVsZCcgOiAndGFnJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd0YWctbWFwcGluZycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2V0IHRoZSBtYXRjaCBydWxlIGZvciB0aGlzIHRhZycsCisgICAgJ2RvYycgICAgICAgICAgOiAndGFnfG1hdGNoJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd0YWd8bWF0Y2gtZXhhbXBsZScsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ21hYycsCisgICAgICAgICAgICAndGFnJyAgICAgICAgICAgICA6ICdtYWMnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnaG9zdCcsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICAgICA6IFsgJ2NvbXBsZXRlLWFsaWFzLWNob2ljZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnb3RoZXInICAgICAgICAgICA6ICdob3N0JywKKyAgICAgICAgICAgICdkYXRhLWhhbmRsZXInICAgIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgICAgIDogJ01hdGNoIG9uIE1BQyBhZGRyZXNzJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAndmxhbicsCisgICAgICAgICAgICAndGFnJyAgICAgICAgICAgICA6ICd2bGFuJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgIDogJ2ludGVnZXInLAorICAgICAgICAgICAgJ3JhbmdlJyAgICAgICAgICAgOiAoMCw0MDk1KSwKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgICAgIDogJ01hdGNoIG9uIFZMQU4gdGFnJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyAgICAgICAgOiBUcnVlLAorICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgJ2FyZ3MnICAgICAgICAgICAgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgJ3RhZycgICAgICAgICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnZHBpZCcsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgIDogJ01hdGNoIG9uIHN3aXRjaCBEUElEJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1hbGlhcy1jaG9pY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICdvdGhlcicgICAgICAgIDogJ3N3aXRjaGVzJywKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAnc3ludGF4LWhlbHAnICA6ICdFbnRlciBhIHN3aXRjaCBkcGlkIG9yIGFsaWFzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAnaWZuYW1lJywKKyAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgICAgOiAnTWF0Y2ggb24gc3dpdGNoIGludGVyZmFjZSBuYW1lJywKKyAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsJyAgICAgICAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICAgICA6IFsgJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAnb3RoZXInICAgICAgICAgICA6ICdwb3J0fG5hbWUnLAorICAgICAgICAgICAgICAgICAgICAnc2NvcGVkJyAgICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgICAgOiAnd2Fybi1taXNzaW5nLWludGVyZmFjZScsCisgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICAgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApCisgICAgICAgIH0sCisgICAgKSwKK30KKworCitTSE9XX1RBR19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IGNvbmZpZ3VyZWQgdGFncycsCisgICAgJ25vLXN1cHBvcnRlZCcgOiBGYWxzZSwKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd0YWcnLAorICAgICdkb2MnICAgICAgICAgIDogJ3RhZ3xzaG93LXRhZycsCisgICAgJ2FyZ3MnIDogKAorICAgICAgICAndGFnJywKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnbmFtZXNwYWNlJywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgdGFncyBpbiBhIGdpdmVuIG5hbWVzcGFjZScsCisgICAgICAgICAgICAndGFnJyAgICAgICAgICA6ICduYW1lc3BhY2UnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgICAgOiBUcnVlLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICdwYXJlbnQtZmllbGQnIDogJ3RhZycsCisgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICd0YWcnLAorICAgICAgICAgICAgJ2FjdGlvbicgICAgICAgOiAnZGlzcGxheS10YWJsZScsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ25hbWUnLAorICAgICAgICAgICAgJ3RhZycgICAgICAgICAgOiAnbmFtZScsCisgICAgICAgICAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IHRhZ3Mgd2l0aCBhIGdpdmVuIG5hbWUnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgICAgOiBUcnVlLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICdwYXJlbnQtZmllbGQnIDogJ3RhZycsCisgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICd0YWcnLAorICAgICAgICAgICAgJ2FjdGlvbicgICAgICAgOiAnZGlzcGxheS10YWJsZScsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3ZhbHVlJywKKyAgICAgICAgICAgICd0YWcnICAgICAgICAgIDogJ3ZhbHVlJywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgdGFncyB3aXRoIGEgZ2l2ZW4gdmFsdWUnLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgICAgOiBUcnVlLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICdwYXJlbnQtZmllbGQnIDogJ3RhZycsCisgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICd0YWcnLAorICAgICAgICAgICAgJ2FjdGlvbicgICAgICAgOiAnZGlzcGxheS10YWJsZScsCisgICAgICAgIH0sCisgICAgKSwKK30KKworVEFHX0ZPUk1BVCA9IHsKKyAgICAndGFnJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgICA6IFsgJ0lkeCcsICduYW1lc3BhY2UnLCAnbmFtZScsICd2YWx1ZScsICdwZXJzaXN0JyBdCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICAgICAnbmFtZXNwYWNlJyA6ICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJzogJ05hbWVzcGFjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnbmFtZScgICAgICA6ICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJzogJ05hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ3ZhbHVlJyAgICAgOiAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZSc6ICdWYWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgfSwKKyAgICB9LAorfQorIiIiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC90YWdfbW9kZWwucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3RhZ19tb2RlbC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yM2ViNDM1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC90YWdfbW9kZWwucHkKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2ltcG9ydCBjb21tYW5kCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZW5hYmxlX2Nhc2NhZGVfZGVsZXRlKCd0YWctbWFwcGluZycpCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL3RhZ19ydW5fY29uZmlnLnB5IGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC90YWdfcnVuX2NvbmZpZy5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41ZWU3M2U0Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC90YWdfcnVuX2NvbmZpZy5weQpAQCAtMCwwICsxLDEwOCBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTIsMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworIyBzaG93IHJ1bm5pbmcgdGFnIFthc10KKyMKKworaW1wb3J0IHJ1bl9jb25maWcKK2ltcG9ydCB1dGlmCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIGNyZWF0ZV9vYmpfdHlwZV9kaWN0KGNvbnRleHQsIG9ial90eXBlLCBmaWVsZCk6CisgICAgIiIiCisgICAgU2hvdWxkIHRoZXJlIGJlIHNvbWUgY29sbGVjdGlvbnMgb2YgbWlkZGVsZXdhcmUgZnVuY3Rpb25zIGZvciB1c2UgYnkgcGFja2FnZXM/CisgICAgIiIiCisgICAgZW50cmllcyA9IGNvbnRleHQuZ2V0X3RhYmxlX2Zyb21fc3RvcmUob2JqX3R5cGUpCisgICAgcmVzdWx0X2RpY3QgPSB7fQorICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICBpZiBlbnRyeVtmaWVsZF0gaW4gcmVzdWx0X2RpY3Q6CisgICAgICAgICAgICByZXN1bHRfZGljdFtlbnRyeVtmaWVsZF1dLmFwcGVuZChlbnRyeSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3VsdF9kaWN0W2VudHJ5W2ZpZWxkXV0gPSBbZW50cnldCisKKyAgICByZXR1cm4gcmVzdWx0X2RpY3QKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisKK2RlZiBydW5uaW5nX2NvbmZpZ190YWcoY29udGV4dCwgY29uZmlnLCB3b3Jkcyk6CisgICAgIyB3YWl0aW5nIGZvciBuZXcgdGFnLW1hcHBpbmcgdG8gYXJyaXZlIHRvIHJld3JpdGUKKyAgICB0cnk6CisgICAgICAgIHRhZ19tYXBwaW5nID0gY3JlYXRlX29ial90eXBlX2RpY3QoY29udGV4dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndGFnLW1hcHBpbmcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0YWcnKQorICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgIHRhZ19tYXBwaW5nID0ge30KKworCisgICAgdF9jb25maWcgPSBbXQorCisgICAgZm9yIHRhZyBpbiBjb250ZXh0LmdldF90YWJsZV9mcm9tX3N0b3JlKCd0YWcnKToKKyAgICAgICAgdGFnX25hbWUgPSAnJXMuJXM9JXMnICUgKHRhZ1snbmFtZXNwYWNlJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWYucXVvdGVfc3RyaW5nKHRhZ1sndmFsdWUnXSkpCisgICAgICAgIGlmIGxlbih3b3JkcykgPT0gMSBhbmQgdGFnX25hbWUgIT0gd29yZHNbMF06CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiB0YWcuZ2V0KCdwZXJzaXN0JywgRmFsc2UpOiAKKyAgICAgICAgICAgIHRfY29uZmlnLmFwcGVuZCgndGFnICcgKyB0YWdfbmFtZSArICdcbicpCisgICAgICAgICAgICB0bXMgPSB0YWdfbWFwcGluZy5nZXQodGFnWydpZCddLCBbXSkKKyAgICAgICAgICAgIGZvciB0bSBpbiB0bXM6CisgICAgICAgICAgICAgICAgbSA9ICcgIG1hdGNoJworICAgICAgICAgICAgICAgIGlmIHRtLmdldCgnbWFjJywgJycpICE9ICcnOgorICAgICAgICAgICAgICAgICAgICBtICArPSAnIG1hYyAlcycgJSB0bVsnbWFjJ10KKyAgICAgICAgICAgICAgICBpZiB0bS5nZXQoJ3ZsYW4nLCAnJykgIT0gJyc6CisgICAgICAgICAgICAgICAgICAgIG0gKz0gJyB2bGFuICVzJyAlIHRtWyd2bGFuJ10KKyAgICAgICAgICAgICAgICBpZiB0bS5nZXQoJ2RwaWQnLCAnJykgIT0gJyc6CisgICAgICAgICAgICAgICAgICAgIG0gKz0gJyBzd2l0Y2ggJXMgJXMnICUgKHRtWydkcGlkJ10sIHRtLmdldCgnaWZuYW1lJywgJycpKQorICAgICAgICAgICAgICAgIHRfY29uZmlnLmFwcGVuZChtICsgJ1xuJykKKworICAgIGlmIGxlbih0X2NvbmZpZyk6CisgICAgICAgIGNvbmZpZy5hcHBlbmQoJyFcbicpCisgICAgICAgIGNvbmZpZyArPSB0X2NvbmZpZworCisKK3RhZ19ydW5uaW5nX2NvbmZpZ190dXBsZSA9ICgKKyAgICAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdvcHRpb25hbCcgICA6IEZhbHNlLAorICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ3J1bm5pbmctY29uZmlnJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICd0YWcnLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0NvbmZpZ3VyYXRpb24gZm9yIGNvbnRyb2xsZXIgb2JqZWN0IG1ldGFkYXRhJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdydW5uaW5nLWNvbmZpZ3xzaG93LXRhZycsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICd3b3JkJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nIDogJ2NvbXBsZXRlLWZyb20tYW5vdGhlcicsCisgICAgICAgICAgICAnb3RoZXInICAgICAgOiAndGFnfGlkJywKKyAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdsZWdhY3ktY2xpJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgIH0sCisgICAgKSwKKykKKworIworIyBSZWdpc3RlciB3aXRoIHJ1bl9jb25maWcgbW9kdWxlLCBvdXIgY2FsbGJhY2sgdG8gcHJvY2VzcyBydW5uaW5nIGNvbmZpZ3MgZm9yCisjIGFkZHJlc3Mtc3BhY2UgY29uZmlndXJhdGlvbiBpdGVtcworIworcnVuX2NvbmZpZy5yZWdpc3Rlcl9ydW5uaW5nX2NvbmZpZygndGFnJywgNDAwMCwgTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVubmluZ19jb25maWdfdGFnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWdfcnVubmluZ19jb25maWdfdHVwbGUpCisKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGVjaF9zdXBwb3J0X3J1bl9jb25maWcucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3RlY2hfc3VwcG9ydF9ydW5fY29uZmlnLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVlMDdlMGMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3RlY2hfc3VwcG9ydF9ydW5fY29uZmlnLnB5CkBAIC0wLDAgKzEsNTcgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEyLDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKKyMgc2hvdyBydW5uaW5nIHRlY2hfc3VwcG9ydF9jb25maWcgW2FzXQorIworCitpbXBvcnQgcnVuX2NvbmZpZworaW1wb3J0IHV0aWYKKworZGVmIHJ1bm5pbmdfY29uZmlnX3RlY2hfc3VwcG9ydChjb250ZXh0LCBjb25maWcsIHdvcmRzKToKKyAgICAjIHdhaXRpbmcgZm9yIG5ldyB0YWctbWFwcGluZyB0byBhcnJpdmUgdG8gcmV3cml0ZQorICAgIHRyeToKKyAgICAgICAgdGVjaF9zdXBwb3J0X2VudHJpZXMgPSBjb250ZXh0LmdldF90YWJsZV9mcm9tX3N0b3JlKCd0ZWNoLXN1cHBvcnQtY29uZmlnJykKKyAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICB0ZWNoX3N1cHBvcnRfZW50cmllcyA9IFtdCisgICAgdF9jb25maWcgPSBbXQorICAgIGZvciB0c19lbnRyeSBpbiB0ZWNoX3N1cHBvcnRfZW50cmllczoKKyAgICAgICAgdF9jb25maWcuYXBwZW5kKCJ0ZWNoLXN1cHBvcnQtY29uZmlnICVzICclcydcbiIgJSAodHNfZW50cnlbJ2NtZC10eXBlJ10sIHV0aWYucXVvdGVfc3RyaW5nKHRzX2VudHJ5WydjbWQnXSkpKQorICAgIGlmIGxlbih0X2NvbmZpZykgPiAwOgorICAgICAgICBjb25maWcuYXBwZW5kKCchXG4nKQorICAgICAgICBjb25maWcgKz0gdF9jb25maWcKKworCit0YWdfcnVubmluZ19jb25maWdfdHVwbGUgPSAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICA6IEZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAncnVubmluZy1jb25maWcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICd0ZWNoLXN1cHBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnQ29uZmlndXJhdGlvbiBmb3IgdGVjaCBzdXBwb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ3J1bm5pbmctY29uZmlnfHNob3ctdGVjaC1zdXBwb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisKKyMKKyMgUmVnaXN0ZXIgd2l0aCBydW5fY29uZmlnIG1vZHVsZSwgb3VyIGNhbGxiYWNrIHRvIHByb2Nlc3MgcnVubmluZyBjb25maWdzIGZvcgorIyBhZGRyZXNzLXNwYWNlIGNvbmZpZ3VyYXRpb24gaXRlbXMKKyMKK3J1bl9jb25maWcucmVnaXN0ZXJfcnVubmluZ19jb25maWcoJ3RlY2gtc3VwcG9ydCcsIDIwMDAwLCBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5uaW5nX2NvbmZpZ190ZWNoX3N1cHBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhZ19ydW5uaW5nX2NvbmZpZ190dXBsZSkKKwpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC90ZWNoc3VwcG9ydC5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGVjaHN1cHBvcnQucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzExMGYzNgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGVjaHN1cHBvcnQucHkKQEAgLTAsMCArMSw4MiBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKKyMgKGMpIGluIDIwMTIgYnkgQmlnIFN3aXRjaCBOZXR3b3JrcyAtIEFsbCByaWdodHMgcmVzZXJ2ZWQKKyMKKyMgdGVjaC1zdXBwb3J0IGNvbW1hbmRzCisjCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgVEVDSF9TVVBQT1JUX0NPTU1BTkRfREVTQ1JJUFRJT04KKyMKKyMgIHRlY2gtc3VwcG9ydC1jb25maWcgdHlwZSBjb21tYW5kCisjICBubyB0ZWNoLXN1cHBvcnQtY29uZmlnIHR5cGUgY29tbWFuZAorIworIiIiCitURUNIX1NVUFBPUlRfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICd0ZWNoLXN1cHBvcnQtY29uZmlnJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWcnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ01hbmFnZSBjb21tYW5kIG91dHB1dCBmb3Igc2hvdyB0ZWNoLXN1cHBvcnQnLAorICAgICdkb2MnICAgICAgICAgIDogJ3RlY2gtc3VwcG9ydHx0ZWNoLXN1cHBvcnQtY29uZmlnJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd0ZWNoLXN1cHBvcnR8dGVjaC1zdXBwb3J0LWNvbmZpZy1leGFtcGxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWctb2JqZWN0JywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd0ZWNoLXN1cHBvcnQtY29uZmlnJywKKyAgICAnbmV3LXN0eWxlJyAgICA6IFRydWUsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgOiAnY21kLXR5cGUnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgICAgOiAoJ2NsaScsICdzaGVsbCcpLAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyA6ICdFbnRlciBjb21tYW5kIHR5cGUgKGNsaSBvciBzaGVsbCknLAorICAgICAgICAgICAgJ2RvYycgICAgICAgICA6ICd0ZWNoLXN1cHBvcnR8dGVjaC1zdXBwb3J0LWNvbmZpZy0rJywKKyAgICAgICAgfSwgICAgICAgICAgICAgIAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgIDogJ2NtZCcsCisgICAgICAgICAgICAndHlwZScgICAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAnc3ludGF4LWhlbHAnIDogJ0VudGVyIGNvbW1hbmQgc3RyaW5nJworICAgICAgICB9LAorICAgICkKK30KKworVEVDSF9TVVBQT1JUX0NPTkZfU0hPV19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IHRlY2gtc3VwcG9ydCBjb25maWd1cmF0aW9uJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd0ZWNoLXN1cHBvcnR8c2hvdy10ZWNoLXN1cHBvcnQtY29uZmlnJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd0ZWNoLXN1cHBvcnR8c2hvdy10ZWNoLXN1cHBvcnQtY29uZmlnLWV4YW1wbGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ3RlY2gtc3VwcG9ydC1jb25maWcnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAndGVjaC1zdXBwb3J0LWNvbmZpZycsCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2NtZC10eXBlJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgICAgIDogKCdjbGknLCAnc2hlbGwnKSwKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgIDogJ0VudGVyIGNvbW1hbmQgdHlwZSAoY2xpIG9yIHNoZWxsKScsCisgICAgICAgICAgICAnYWN0aW9uJyAgICAgICA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgICdmaWVsZCcgICAgOiAnY21kJywKKyAgICAgICAgICAgICAndGFnJyAgICAgIDogJ2NtZCcsCisgICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICB9LAorICAgICkKK30KKyIiIgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGVjaHN1cHBvcnRfbW9kZWwucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3RlY2hzdXBwb3J0X21vZGVsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ0NDcxNzMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3RlY2hzdXBwb3J0X21vZGVsLnB5CkBAIC0wLDAgKzEsMjAgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitpbXBvcnQgY29tbWFuZAorCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfc3VibW9kZSgndGVjaC1zdXBwb3J0LWNvbmZpZycpCisKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGVuYW50LnB5IGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC90ZW5hbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODU3YzkxNwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGVuYW50LnB5CkBAIC0wLDAgKzEsNTQxIEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworIworIworCitpbXBvcnQgY29tbWFuZAorZGVmIHRlbmFudF9vcmlnaW5fZXh0ZXJuYWwoZGF0YSk6CisgICAgI1JldHVybiBvcmlnaW4tbmFtZSB3aGVuIHRoZSB0ZW5hbnQgd2Fzbid0IGNyZWF0ZWQgYnkgdGhlIGNsaSwKKyAgICAjcmV0dXJuIE5vbmUgb3RoZXJ3aXNlLgorICAgIHBrID0gY29tbWFuZC5taS5waygndGVuYW50JykKKyAgICBpZiBub3QgcGsgaW4gZGF0YToKKyAgICAgICAgcmV0dXJuIE5vbmU7CisKKyAgICB0ZW5hbnQgPSBjb21tYW5kLnNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKCd0ZW5hbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW3BrXSkKKyAgICBpZiBsZW4odGVuYW50KSA9PSAwOgorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgbG9jYWwgPSBbJ2NsaScsICdyZXN0J10KKyAgICBpZiAnb3JpZ2luJyBpbiB0ZW5hbnRbMF0gYW5kIG5vdCB0ZW5hbnRbMF1bJ29yaWdpbiddIGluIGxvY2FsOgorICAgICAgICByZXR1cm4gdGVuYW50WzBdWydvcmlnaW4nXQorICAgIHJldHVybiBOb25lCisKK2RlZiB0ZW5hbnRfd2Fybl9leHRlcm5hbF9jb25maWcoZGF0YSk6CisgICAgIiIiCisgICAgRnJvbSB0aGUgbmFtZWQgdGVuYW50LCBsb29rIHVwIHRoZSBlbnRyeSwgaWYgaXQgZXhpc3RzIGluIHRoZQorICAgIGRhdGFiYXNlLCB2YWxpZGF0ZSB0aGUgJ29yaWdpbicgaXMgZWl0aGVyIG51bGwsIG9yICdjbGknLAorICAgIG90aGVyd2lzZSBwcm92aWRlIGEgd2FybmluZyBhYm91dCB0aGlzIHBhcnRpY3VsYXIgdGVuYW50CisgICAgKGFsb25nIHdpdGggdGhlIG9yaWdpbmF0b3IgbmFtZSkKKyAgICAiIiIKKyAgICBleHRlcm5hbF9vcmlnaW4gPSB0ZW5hbnRfb3JpZ2luX2V4dGVybmFsKGRhdGEpCisgICAgaWYgZXh0ZXJuYWxfb3JpZ2luOgorICAgICAgICBjb21tYW5kLnNkbnNoLndhcm5pbmcoJ3RlbmFudCAlcyBtYXkgbm90IGJlIGludGVuZGVkIGZvciBjbGkgdXBkYXRlLCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3JpZ2luL2NyZWF0b3IgIiVzIiAnICUgKGRhdGFbJ25hbWUnXSwgZXh0ZXJuYWxfb3JpZ2luKSkKKworZGVmIHRlbmFudF9zaG93X3ByZXByb2Nlc3Mob2JqX3R5cGUsIGRhdGEsc2NvcGVkPU5vbmUpOgorICAgIGRhdGFbJ3RlbmFudCddPSdkZWZhdWx0JworICAgIHNldHRpbmdzY29wZT1UcnVlCisgICAgaWYgJ25hbWUnIGluIGRhdGE6CisgICAgICAgIGRhdGFbJ3RlbmFudCddPSBkYXRhWyduYW1lJ10KKyAgICAgICAgZGVsIGRhdGFbJ25hbWUnXQorICAgIGVsc2U6CisgICAgICAgIGN1cnJlbnRfbW9kZT1jb21tYW5kLnNkbnNoLmN1cnJlbnRfbW9kZSgpCisgICAgICAgIGlmIG5vdCBjdXJyZW50X21vZGUuc3RhcnRzd2l0aCgnY29uZmlnLXRlbmFudCcpOgorICAgICAgICAgICAgZGF0YVsndGVuYW50J109J2RlZmF1bHQnCisgICAgICAgIGlmIGN1cnJlbnRfbW9kZS5zdGFydHN3aXRoKCdjb25maWctdGVuYW50Jyk6CisgICAgICAgICAgICBzZXR0aW5nc2NvcGU9RmFsc2UKKyAgICAgICAgICAgIGZvciB4IGluIGNvbW1hbmQuc2Ruc2gubW9kZV9zdGFjazoKKyAgICAgICAgICAgICAgICBpZiB4Wydtb2RlX25hbWUnXSA9PSAnY29uZmlnLXRlbmFudCc6CisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ3RlbmFudCddID0geFsnb2JqJ10KKyAgICBpZiBvYmpfdHlwZT09J3Zucy1kZWZpbml0aW9uJyBhbmQgZGF0YVsndGVuYW50J109PSdkZWZhdWx0JyBhbmQgc2NvcGVkPT0nVHJ1ZScgYW5kIHNldHRpbmdzY29wZToKKyAgICAgICAgZGF0YVsnc2NvcGVkJ109RmFsc2UKKyAgICBpZiAndm5zbmFtZScgaW4gZGF0YSBhbmQgZGF0YVsndm5zbmFtZSddIT0nYWxsJzoKKyAgICAgICAgaWYgKG9ial90eXBlIT0ndm5zLWRlZmluaXRpb24nKToKKyAgICAgICAgICAgIGRhdGFbJ3ZucyddPWRhdGFbJ3RlbmFudCddICsnfCcrZGF0YVsndm5zbmFtZSddCisgICAgaWYgJ3Zuc25hbWUnIGluIGRhdGEgYW5kIGRhdGFbJ3Zuc25hbWUnXT09J2FsbCc6CisgICAgICAgIGRhdGFbJ3ZucyddPSdhbGwnCisgICAgICAgIGRlbCBkYXRhWyd2bnNuYW1lJ10KKyAgICBpZiAndm5zJyBpbiBkYXRhIGFuZCBkYXRhWyd2bnMnXT09J2FsbCc6CisgICAgICAgIGlmIHNjb3BlZD09J1RydWUnOgorICAgICAgICAgICAgZGF0YVsnc2NvcGVkJ109RmFsc2UKKyAgICAgICAgZGVsIGRhdGFbJ3RlbmFudCddCisgICAgaWYgJ3ZybmFtZScgaW4gZGF0YToKKyAgICAgICAgaWYgKG9ial90eXBlIT0ndmlydHVhbHJvdXRlcicpOgorICAgICAgICAgICAgZGF0YVsndmlydHVhbC1yb3V0ZXInXT1kYXRhWyd0ZW5hbnQnXSArJ3wnK2RhdGFbJ3ZybmFtZSddCisgICAgaWYgJ3ZyaW5hbWUnIGluIGRhdGE6CisgICAgICAgIGlmIChvYmpfdHlwZSE9J3ZpcnR1YWxyb3V0ZXItaW50ZXJmYWNlJyk6CisgICAgICAgICAgICBkYXRhWyd2aXJ0dWFsLXJvdXRlci1pbnRlcmZhY2UnXT1kYXRhWyd0ZW5hbnQnXSArJ3wnK2RhdGFbJ3ZybmFtZSddICsnfCcgKyBkYXRhWyd2cmluYW1lJ10KKyAgICBpZiAndnJnd25hbWUnIGluIGRhdGE6CisgICAgICAgIGlmIChvYmpfdHlwZSE9J3ZpcnR1YWxyb3V0ZXItZ3dwb29sJyk6CisgICAgICAgICAgICBkYXRhWyd2aXJ0dWFsLXJvdXRlci1nd3Bvb2wnXT1kYXRhWyd0ZW5hbnQnXSArJ3wnK2RhdGFbJ3ZybmFtZSddICsnfCcgKyBkYXRhWyd2cmd3bmFtZSddCisKKyIiIgorY29tbWFuZC5hZGRfYWN0aW9uKCd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJywgdGVuYW50X3Nob3dfcHJlcHJvY2VzcywKKyAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J29ial90eXBlJzogJyRvYmotdHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzY29wZWQnICA6ICckc2NvcGVkJyx9fSkKK2NvbW1hbmQuYWRkX2FjdGlvbigndGVuYW50LXdhcm4tZXh0ZXJuYWwtY29uZmlnJywgdGVuYW50X3dhcm5fZXh0ZXJuYWxfY29uZmlnLAorICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnZGF0YScgICAgICA6ICckZGF0YScsfX0pCisKK2RlZiBjb21wbGV0ZV90ZW5hbnRfcHJlcHJvY2VzcyhkYXRhKToKKyAgICBpZiAnbmFtZScgaW4gZGF0YToKKyAgICAgICAgZGF0YVsndGVuYW50J10gPWRhdGFbJ25hbWUnXQorCitjb21tYW5kLmFkZF9jb21wbGV0aW9uKCdjb21wbGV0ZS10ZW5hbnQtcHJlcHJvY2VzcycsIGNvbXBsZXRlX3RlbmFudF9wcmVwcm9jZXNzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J2RhdGEnOiAnJGRhdGEnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgdGVuYW50IHN1Ym1vZGUgY29tbWFuZHMKKyMKK1RFTkFOVF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3RlbmFudCcsCisgICAgJ2hlbHAnICAgICAgICAgOiAnRW50ZXIgdGVuYW50IGRlZmluaXRpb24gc3VibW9kZScsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnKicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnLXN1Ym1vZGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ3RlbmFudCcsCisgICAgJ3BhcmVudC1maWVsZCcgOiBOb25lLAorICAgICdjdXJyZW50LW1vZGUtb2JqLWlkJyA6IE5vbmUsCisgICAgJ3N1Ym1vZGUtbmFtZScgOiAnY29uZmlnLXRlbmFudCcsCisgICAgJ2ZlYXR1cmUnICAgICAgOiAndm5zJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdFbnRlciB0ZW5hbnQgZGVmaW5pdGlvbiBzdWJtb2RlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dGVuYW50JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8dGVuYW50LWV4YW1wbGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnbmFtZScsCisgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAnc3ludGF4LWhlbHAnICA6ICdFbnRlciBhIHRlbmFudCBuYW1lJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3RlbmFudHx0ZW5hbnQtaWQnLAorICAgICAgICAgICAgJ2RvYy1leGFtcGxlJyAgOiAndGVuYW50fHRlbmFudC1pZC1leGFtcGxlJywKKyAgICAgICAgICAgICdkb2MtaW5jbHVkZScgIDogWyAndHlwZS1kb2MnIF0sCisgICAgICAgICAgICAnYWN0aW9uJyAgICAgICA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICd0ZW5hbnQtd2Fybi1leHRlcm5hbC1jb25maWcnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAncHVzaC1tb2RlLXN0YWNrJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICduby1hY3Rpb24nICAgIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3RlbmFudC13YXJuLWV4dGVybmFsLWNvbmZpZycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ2RlbGV0ZS1vYmplY3RzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKQorICAgICAgICB9CisgICAgKSwKK30KKworCit0ZW5hbnRfc2hvd19hY3Rpb24gPSAoCisgICAgeworICAgICAgICAncHJvYycgIDogJ3F1ZXJ5LXRhYmxlJywKKyAgICB9LAorICAgIHsKKyAgICAgICAgJ3Byb2MnICAgICAgIDogJ2pvaW4tdGFibGUnLAorICAgICAgICAnb2JqLXR5cGUnICAgOiAndmlydHVhbHJvdXRlcicsCisgICAgICAgICdrZXknICAgICAgICA6ICd0ZW5hbnQnLAorICAgICAgICAnam9pbi1maWVsZCcgOiAnbmFtZScsCisgICAgICAgICdhZGQtZmllbGQnICA6ICd2aXJ0dWFscm91dGVyfHZybmFtZScsCisgICAgfSwKKyAgICB7CisgICAgICAgICdwcm9jJyAgIDogJ2Rpc3BsYXknLAorICAgICAgICAnZm9ybWF0JyA6ICd0ZW5hbnQnLAorICAgIH0sCispCisKK1RFTkFOVF9TSE9XX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdhbGwtaGVscCcgICAgIDogJ1Nob3cgdGVuYW50IGRldGFpbHMnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgZGVmaW5lZCB0ZW5hbnRzJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd0ZW5hbnQnLAorICAgICdhY3Rpb24nICAgICAgIDogdGVuYW50X3Nob3dfYWN0aW9uLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAndGVuYW50JywKKyAgICApCit9CisKK1RFTkFOVF9TSE9XX0lEX0lORk9fQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd0ZW5hbnQnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnYWN0aW9uJyAgICAgICA6IHRlbmFudF9zaG93X2FjdGlvbiwKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IHNwZWNpZmljIHRlbmFudCwgaWRlbnRpZmllZCBieSBuYW1lJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8c2hvdy10ZW5hbnQnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Zuc3xzaG93LXRlbmFudC1leGFtcGxlJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ3RlbmFudCcsCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICduYW1lJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgIDogInRlbmFudC1pZCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ25hbWUnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgOiAnYWxsJywKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICB9LAorICAgICkKK30KKworVEVOQU5UX1NIT1dfSURfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd0ZW5hbnQnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnYWN0aW9uJyAgICAgICA6IHRlbmFudF9zaG93X2FjdGlvbiwKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IHNwZWNpZmljIHRlbmFudCwgaWRlbnRpZmllZCBieSBuYW1lJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8c2hvdy10ZW5hbnQnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAndGVuYW50JywKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ25hbWUnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAnaGVscC1uYW1lJyAgOiAidGVuYW50LWlkIiwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgJ2Nob2ljZXMnICAgICA6ICgKKyAgICAgICAgKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAndm5zLWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAndm5zJywKKyAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogKHsgICAncHJvYycgICAgIDogJ3RlbmFudC1zaG93LXByZXByb2Nlc3MnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAncHJvYycgICAgIDogJ2Rpc3BsYXktdGFibGUnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICA6ICd2bnMtZGVmaW5pdGlvbicsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTaG93IFZOUyBiZWxvbmdlZCB0byB0aGlzIHRlbmFudCcsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICd2bnN8c2hvdy10ZW5hbnQtaWQtdm5zJywKKyAgICAgICAgICAgIH0sIAorICAgICAgICAgICAgeyAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgJ2FyZ3MnICAgICA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAndm5zbmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnaWRlbnRpZmllcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NvcGVkJyAgICAgOiAndGVuYW50JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdleHBsaWNpdCcgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgOiBbJ2NvbXBsZXRlLXRlbmFudC1wcmVwcm9jZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtZnJvbS1hbm90aGVyJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3RoZXInICAgICAgOiAndm5zLWRlZmluaXRpb258dm5zbmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgOiAidm5zLWlkIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAndm5zLWludGVyZmFjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAnaW50ZXJmYWNlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgOiAndm5zLWludGVyZmFjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydwcm9jJyAgIDogJ3RlbmFudC1zaG93LXByZXByb2Nlc3MnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGVnYWN5LWNsaScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1Nob3cgVk5TIGFzc29jaWF0ZWQgaW50ZXJmYWNlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ21hYy1hZGRyZXNzLXRhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ21hYy1hZGRyZXNzLXRhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgOiAnaG9zdC12bnMtaW50ZXJmYWNlLXZucycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogKHsncHJvYycgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsZWdhY3ktY2xpJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1Nob3cgVk5TIGFzc29jaWF0ZWQgbWFjIGFkZHJlc3NlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2ludGVyZmFjZS1ydWxlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICdpbnRlcmZhY2UtcnVsZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAndGVuYW50LXNob3ctcHJlcHJvY2VzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXktdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICA6ICd2bnMtaW50ZXJmYWNlLXJ1bGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTaG93IFZOUyBjb25maWd1cmVkIGludGVyZmFjZXMtcnVsZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICd2bnN8c2hvdy1pZC1pbnRlcmZhY2UtcnVsZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdhY2Nlc3MtbGlzdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAnYWNjZXNzLWxpc3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3RlbmFudC1zaG93LXByZXByb2Nlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXNwbGF5LXRhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgOiAndm5zLWFjY2Vzcy1saXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGV0YWlsJyAgICAgOiAnYWNsLWJyaWVmJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnU2hvdyBWTlMgY29uZmlndXJlZCBhY2Nlc3MtbGlzdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICd2bnN8c2hvdy1pZC1hY2Nlc3MtbGlzdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdydW5uaW5nLWNvbmZpZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICdydW5uaW5nLWNvbmZpZycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogKHsncHJvYycgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsZWdhY3ktY2xpJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1Nob3cgVk5TIHJ1bm5pbmctY29uZmlnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2xlZ2FjeS1jbGknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAoeydwcm9jJyAgIDogJ3RlbmFudC1zaG93LXByZXByb2Nlc3MnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xlZ2FjeS1jbGknKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgOiAndm5zLXN3aXRjaC1wb3J0cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1Nob3cgVk5TIGFzc29jaWF0ZWQgc3dpdGNoZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2xlZ2FjeS1jbGknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICdmbG93JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ3Zucy1mbG93JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogKHsncHJvYycgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGVnYWN5LWNsaScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnU2hvdyBWTlMgYXNzb2NpYXRlZCBmbG93cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICd2bnN8c2hvdy1pZC1mbG93JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2RldGFpbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogKCdicmllZicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZnVsbC1kZXRhaWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldGFpbHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N1bW1hcnknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnICAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnRGV0YWlsIGxldmVsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ2Zvcm1hdHwrJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgKSwgIAorICAgICAgICAoCisgICAgICAgIHsKKyAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3JvdXRlcicsCisgICAgICAgICAndHlwZScgICAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICd2YWx1ZXMnICAgICAgIDogJ3JvdXRlcicsCisgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8c2hvdy10ZW5hbnQtaWQtcm91dGVyJywKKyAgICAgICAgIH0sIAorICAgICAgICB7ICAgJ29wdGlvbmFsJyAgIDogIFRydWUsCisgICAgICAgICAgICAnYXJncycgICAgICAgOiAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICd2cm5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgICAgICAgICAgJ3Njb3BlZCcgICAgIDogJ3RlbmFudCcsCisgICAgICAgICAgICAgICAgICAgICAnZXhwbGljaXQnICAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nIDogWydjb21wbGV0ZS10ZW5hbnQtcHJlcHJvY2VzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRlLWZyb20tYW5vdGhlciddLCAgICAgCisgICAgICAgICAgICAgICAgICAgICAnb3RoZXInICAgICAgOiAndmlydHVhbHJvdXRlcnx2cm5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgIDogInZpcnR1YWxyb3V0ZXItaWQiLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7J29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgJ2Nob2ljZXMnICAgOiAoCisgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgOiAnaXAtYWRkcmVzcy1wb29sJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ2ludGVyZmFjZS1hZGRyZXNzLXBvb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAndm5zfHNob3ctdGVuYW50LWlkLXJvdXRlci1pcHBvb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAncHJvYycgICAgIDogJ3RlbmFudC1zaG93LXByZXByb2Nlc3MnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdwcm9jJyAgICAgOiAncXVlcnktdGFibGUnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdwcm9jJyAgICAgOiAnZGlzcGxheScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0JyAgIDogJ2ludGVyZmFjZS1hZGRyZXNzLXBvb2wnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgOiAncm91dGUnLAorICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgOiAncm91dGUnLAorICAgICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgOiAndmlydHVhbHJvdXRlci1yb3V0aW5ncnVsZScsCisgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICd2bnN8c2hvdy10ZW5hbnQtaWQtcm91dGVyLXJvdXRlJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAncHJvYycgICAgIDogJ3RlbmFudC1zaG93LXByZXByb2Nlc3MnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdwcm9jJyAgICAgOiAncXVlcnktdGFibGUnLH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgICAgOiAnZGlzcGxheScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0JyAgIDogJ3ZpcnR1YWxyb3V0ZXItcm91dGluZ3J1bGUnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ2ludGVyZmFjZXMnLAorICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgOiAnaW50ZXJmYWNlcycsCisgICAgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgIDogJ3ZpcnR1YWxyb3V0ZXItaW50ZXJmYWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgOiAndm5zfHNob3ctdGVuYW50LWlkLXJvdXRlci1pbnRlcmZhY2VzJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAncHJvYycgICAgIDogJ3RlbmFudC1zaG93LXByZXByb2Nlc3MnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdwcm9jJyAgICAgOiAncXVlcnktdGFibGUnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdwcm9jJyAgICAgOiAnZGlzcGxheScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0JyAgIDogJ3ZpcnR1YWxyb3V0ZXItaW50ZXJmYWNlJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICA6ICdnYXRld2F5LXBvb2xzJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgIDogJ2dhdGV3YXktcG9vbHMnLAorICAgICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICA6ICd2aXJ0dWFscm91dGVyLWd3cG9vbCcsCisgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgIDogJ3Zuc3xzaG93LXRlbmFudC1pZC1yb3V0ZXItZ3dwb29scycsCisgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnICAgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAncHJvYycgICAgIDogJ3F1ZXJ5LXRhYmxlJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAncHJvYycgICAgIDogJ2Rpc3BsYXknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCcgICA6ICd2aXJ0dWFscm91dGVyLWd3cG9vbCd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgIDogJ2d3LWFkZHJlc3MtcG9vbCcsCisgICAgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICA6ICdnYXRld2F5LWFkZHJlc3MtcG9vbCcsCisgICAgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICd2bnN8c2hvdy10ZW5hbnQtaWQtcm91dGVyLWd3aXBwb29sJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnICAgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAncHJvYycgICAgIDogJ3F1ZXJ5LXRhYmxlJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAncHJvYycgICAgIDogJ2Rpc3BsYXknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCcgICA6ICdnYXRld2F5LWFkZHJlc3MtcG9vbCd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICksCisgICAgICAgICB9LCAgICAgCisgICAgICAgICApLAorICAgICAgICAoCisgICAgICAgICAgeyAnZmllbGQnICAgICA6J3J1bm5pbmctY29uZmlnJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgOiAncnVubmluZy1jb25maWcnLAorICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogKHsncHJvYycgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsZWdhY3ktY2xpJyksCisgICAgICAgICB9CisgICAgICAgICApLAorICAgICAgICAoCisgICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgIDogJ2RldGFpbCcsCisgICAgICAgICAgICAndHlwZScgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICA6ICgnZGV0YWlscycsICdicmllZicpLAorICAgICAgICAgICAgJ2RvYycgICAgICA6ICdmb3JtYXR8KycsCisgICAgICAgIH0KKyAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICB9CisgICAgKQorfQorCitURU5BTlRfREVGX0RFU0NSSVBUSU9OX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnZGVzY3JpcHRpb24nLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy10ZW5hbnQnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnUHJvdmlkZSBkZXNjcmlwdGlvbiBmb3IgYSB0ZW5hbnQgaW5zdGFuY2UnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x0ZW5hbnQtZGVzY3JpcHRpb24nLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Zuc3x0ZW5hbnQtZGVzY3JpcHRpb24tZXhhbXBsZScsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgOiAnZGVzY3JpcHRpb24nLAorICAgICAgICAgICAgJ3R5cGUnICA6ICdzdHJpbmcnLAorICAgICAgICB9CisgICAgKSwKK30KKworCitURU5BTlRfREVGX0FDVElWRV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgOiAnYWN0aXZlJywKKyAgICAnbW9kZScgICAgICAgIDogJ2NvbmZpZy10ZW5hbnQnLAorICAgICdzaG9ydC1oZWxwJyAgOiAnU2V0IHRlbmFudCBhY3RpdmUnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x0ZW5hbnQtYWN0aXZlJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8dGVuYW50LWFjdGl2ZS1leGFtcGxlJywKKyAgICAnZG9jLWluY2x1ZGUnICA6IFsgJ2RlZmF1bHQnIF0sCisgICAgJ2FyZ3MnIDogKCksCisgICAgJ2FjdGlvbicgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdwcm9jJyA6ICd3cml0ZS1maWVsZHMnLAorICAgICAgICAgICAgJ2RhdGEnIDogeyAnYWN0aXZlJyA6IFRydWUgfSwKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgOiAnbWFyayB0aGUgdGVuYW50IGFzIGFjdGl2ZScsCisgICAgICAgIH0KKyAgICApLAorICAgICduby1hY3Rpb24nIDogKAorICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgOiAnd3JpdGUtZmllbGRzJywKKyAgICAgICAgICAgICdkYXRhJyA6IHsgJ2FjdGl2ZScgOiBGYWxzZSB9LAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyA6ICdtYXJrIHRoZSB0ZW5hbnQgYXMgaW5hY3RpdmUnLAorICAgICAgICB9CisgICAgKQorfQorCitURU5BTlRfREVGX09SSUdJTl9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ29yaWdpbicsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXRlbmFudCcsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdEZXNjcmliZSB0ZW5hbnQgb3JpZ2luJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd0ZW5hbnR8b3JpZ2luJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd0ZW5hbnR8b3JpZ2luLWV4YW1wbGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgOiAnb3JpZ2luJywKKyAgICAgICAgICAgICd0eXBlJyAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAnYWN0aW9uJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICd0ZW5hbnQtd2Fybi1leHRlcm5hbC1jb25maWcnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAnd3JpdGUtZmllbGRzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKSwKKyAgICAgICAgfSwKKyAgICApLAorfQorCisjCisjIEZPUk1BVFMKK1RFTkFOVF9GT1JNQVQgPSB7CisgICAgJ3RlbmFudCcgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgICA6IFsgJ0lkeCcsICduYW1lJywgJ2FjdGl2ZScsICdkZXNjcmlwdGlvbicsICd2aXJ0dWFscm91dGVyJ10sCisgICAgICAgICAgICAnZGV0YWlscycgICAgIDogWyAnSWR4JywgJ25hbWUnLCAnYWN0aXZlJywgJ2Rlc2NyaXB0aW9uJywgJ3ZpcnR1YWxyb3V0ZXInXSwKKyAgICAgICAgICAgICdicmllZicgICAgICAgOiBbICdJZHgnLCAnbmFtZScsICdhY3RpdmUnXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAnbmFtZScgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdUZW5hbnQgSUQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICdhY3RpdmUnICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICdkZXNjcmlwdGlvbicgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICd2aXJ0dWFscm91dGVyJyAgIDogeyd2ZXJib3NlLW5hbWUnIDogJ1JvdXRlciBJRCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgfQorICAgICAgICB9LAorfQorIiIiCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL3RlbmFudF9tb2RlbC5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGVuYW50X21vZGVsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM1ZjZhMzAKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3RlbmFudF9tb2RlbC5weQpAQCAtMCwwICsxLDM4IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworaW1wb3J0IGNvbW1hbmQKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZW5hYmxlX2Nhc2NhZGVfZGVsZXRlKCd0ZW5hbnQnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9lbmFibGVfY2FzY2FkZV9kZWxldGUoJ3ZpcnR1YWxyb3V0ZXInKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV93ZWFrX3dpdGhfY2FzY2FkZV9kZWxldGUoJ3ZpcnR1YWxyb3V0ZXItaW50ZXJmYWNlJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfd2Vha193aXRoX2Nhc2NhZGVfZGVsZXRlKCd2aXJ0dWFscm91dGVyLXJvdXRpbmdydWxlJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZW5hYmxlX2Nhc2NhZGVfZGVsZXRlKCdpbnRlcmZhY2UtYWRkcmVzcy1wb29sJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfd2Vha193aXRoX2Nhc2NhZGVfZGVsZXRlKCd2aXJ0dWFscm91dGVyLWd3cG9vbCcpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2VuYWJsZV9jYXNjYWRlX2RlbGV0ZSgnZ2F0ZXdheS1hZGRyZXNzLXBvb2wnKQorCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfc3VibW9kZSgndmlydHVhbHJvdXRlcicpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfc3VibW9kZSgndmlydHVhbHJvdXRlci1pbnRlcmZhY2UnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX3N1Ym1vZGUoJ3ZpcnR1YWxyb3V0ZXItZ3dwb29sJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9zdWJtb2RlKCd2aXJ0dWFscm91dGVyLXJvdXRpbmdydWxlJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9zdWJtb2RlKCdpbnRlcmZhY2UtYWRkcmVzcy1wb29sJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9zdWJtb2RlKCdnYXRld2F5LWFkZHJlc3MtcG9vbCcpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfc3VibW9kZSgnc3RhdGljLWFycCcpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfc3VibW9kZSgndGVuYW50JykKKworY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3RlbmFudCcsICdhY3RpdmUnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3RlbmFudCcsICdkZXNjcmlwdGlvbicpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgndGVuYW50JywgJ29yaWdpbicpCisKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGVzdC5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdGVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNGExY2JmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC90ZXN0LnB5CkBAIC0wLDAgKzEsMzMyIEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworaW1wb3J0IGZtdGNudgorCitURVNUX1BBQ0tFVF9JTl9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Rlc3QnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnbm8tc3VwcG9ydGVkJyA6IEZhbHNlLAorICAgICdvYmotdHlwZScgICAgIDogJ3Rlc3QtY29tbWFuZCcsICAgIyBmYWtlIG9iai10eXBlLCBsZWdhY3ktY2xpIGRlc2NyaW1pbmF0b3IKKyAgICAnc2hvcnQtaGVscCcgICA6ICdQZXJmb3JtIHZhcmlvdXMgdGVzdHMgb24gdGhlIG5ldHdvcmsnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Rlc3R8dGVzdCcsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndGVzdHx0ZXN0LXBhY2tldC1pbi1leGFtcGxlJywKKyAgICAnYWN0aW9uJyAgICAgICA6ICdsZWdhY3ktY2xpJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICA6ICd0ZXN0LXR5cGUnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgICAgICAgOiAncGFja2V0LWluJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgOiAndGVzdHx0ZXN0LXBhY2tldC1pbicsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICMgc3JjLWhvc3QKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3NyYy1ob3N0JywKKyAgICAgICAgICAgICd0YWcnICAgICAgICAgIDogJ3NyYy1ob3N0JywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2hvc3QnLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICdvdGhlcicgICAgICAgIDogJ2hvc3R8bWFjJywKKyAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3Rlc3R8dGVzdC1wYWNrZXQtaW4tbWFjJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIyBkc3QtaG9zdAorICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnZHN0LWhvc3QnLAorICAgICAgICAgICAgJ3RhZycgICAgICAgICAgOiAnZHN0LWhvc3QnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaG9zdCcsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAnaG9zdHxtYWMnLAorICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndGVzdHx0ZXN0LXBhY2tldC1pbi1tYWMnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAjIHNyYy1zd2l0Y2gKKyAgICAgICAgICAgICdvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAnYXJncycgICAgICAgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdzcmMtc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgJ3RhZycgICAgICAgICAgOiAnc3JjLXN3aXRjaCcsCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2RwaWQnLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICdzd2l0Y2hlc3xkcGlkJywgIyBmaWVsZCBpc24ndCBkcGlkCisgICAgICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndGVzdHx0ZXN0LXBhY2tldC1pbi1kcGlkJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnc3JjLXN3aXRjaC1wb3J0JywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAnaW50ZXJmYWNlc3xwb3J0TmFtZScsCisgICAgICAgICAgICAgICAgICAgICdzY29wZWQnICAgICAgIDogJ3NyYy1zd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdjb252ZXJ0LWludGVyZmFjZS10by1wb3J0JywKKyAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndGVzdHx0ZXN0LXBhY2tldC1pbi1pZicsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ3ZsYW4nLAorICAgICAgICAgICAgJ3RhZycgICAgICAgOiAndmxhbicsCisgICAgICAgICAgICAnYmFzZS10eXBlJyA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgICdyYW5nZScgICAgIDogKDAsNDA5NSksCisgICAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgICAnZG9jJyAgICAgICA6ICd0ZXN0fHRlc3QtcGFja2V0LWluLXZsYW4nLAorICAgICAgICB9LAorICAgICAgICAjIGN1cnJlbnRseSBldGhlci10eXBlIGlzbid0IGltcGxlbWVudGVkCisgICAgICAgICN7CisgICAgICAgICAgICAjJ29wdGlvbmFsJyA6IFRydWUsCisgICAgICAgICAgICAjJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgICN7CisgICAgICAgICAgICAgICAgICAgICMnZmllbGQnICAgICAgICAgOiAnZXRoZXItdHlwZScsCisgICAgICAgICAgICAgICAgICAgICMndGFnJyAgICAgICAgICAgOiAnZXRoZXItdHlwZScsCisgICAgICAgICAgICAgICAgICAgICMnYmFzZS10eXBlJyAgICAgOiAnaGV4LW9yLWRlY2ltYWwtaW50ZWdlcicsCisgICAgICAgICAgICAgICAgICAgICMncmFuZ2UnICAgICAgICAgOiAoMTUzNiw2NTUzNiksCisgICAgICAgICAgICAgICAgICAgICMnZGF0YS1oYW5kbGVyJyAgOiAnaGV4LXRvLWludGVnZXInLAorICAgICAgICAgICAgICAgICN9LAorICAgICAgICAgICAgICAgICN7CisgICAgICAgICAgICAgICAgICAgICMnZmllbGQnICAgICAgICAgOiAnZXRoZXItdHlwZScsCisgICAgICAgICAgICAgICAgICAgICMndGFnJyAgICAgICAgICAgOiAnZXRoZXItdHlwZScsCisgICAgICAgICAgICAgICAgICAgICMndHlwZScgICAgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICMndmFsdWVzJyAgICAgICAgOiBmbXRjbnYuZXRoZXJfdHlwZV90b19udW1iZXJfZGljdCwKKyAgICAgICAgICAgICAgICAjfSwKKyAgICAgICAgICAgICMpLAorICAgICAgICAjfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAncHJpb3JpdHknLAorICAgICAgICAgICAgJ3RhZycgICAgICAgOiAncHJpb3JpdHknLAorICAgICAgICAgICAgJ2Jhc2UtdHlwZScgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAncmFuZ2UnICAgICA6ICgwLDcpLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgJ2RvYycgICAgICAgOiAndGVzdHx0ZXN0LXBhY2tldC1pbi1wcmlvcml0eScsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgOiAnc3JjLWlwLWFkZHJlc3MnLAorICAgICAgICAgICAgJ3RhZycgICAgICA6ICdzcmMtaXAtYWRkcmVzcycsCisgICAgICAgICAgICAndHlwZScgICAgIDogJ2lwLWFkZHJlc3Mtbm90LW1hc2snLAorICAgICAgICAgICAgJ29wdGlvbmFsJyA6IFRydWUsCisgICAgICAgICAgICAnZG9jJyAgICAgIDogJ3Rlc3R8dGVzdC1wYWNrZXQtaW4taXAnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgIDogJ2RzdC1pcC1hZGRyZXNzJywKKyAgICAgICAgICAgICd0YWcnICAgICAgOiAnZHN0LWlwLWFkZHJlc3MnLAorICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdpcC1hZGRyZXNzLW5vdC1tYXNrJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgJ2RvYycgICAgICA6ICd0ZXN0fHRlc3QtcGFja2V0LWluLWlwJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAncHJvdG9jb2wnLAorICAgICAgICAgICAgJ3RhZycgICAgICAgOiAncHJvdG9jb2wnLAorICAgICAgICAgICAgJ2Jhc2UtdHlwZScgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAncmFuZ2UnICAgICA6ICgxLDI1NSksCisgICAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgICAnZG9jJyAgICAgIDogJ3Rlc3R8dGVzdC1wYWNrZXQtaW4tcHJvdG8nLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICA6ICd0b3MnLAorICAgICAgICAgICAgJ3RhZycgICAgICAgOiAndG9zJywKKyAgICAgICAgICAgICdiYXNlLXR5cGUnIDogJ2ludGVnZXInLAorICAgICAgICAgICAgJ3JhbmdlJyAgICAgOiAoMSwyNTUpLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgOiBUcnVlLAorICAgICAgICAgICAgJ2RvYycgICAgICA6ICd0ZXN0fHRlc3QtcGFja2V0LWluLXRvcycsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ3NyYy1wb3J0JywKKyAgICAgICAgICAgICd0YWcnICAgICAgIDogJ3NyYy1wb3J0JywKKyAgICAgICAgICAgICdiYXNlLXR5cGUnIDogJ2ludGVnZXInLAorICAgICAgICAgICAgJ3JhbmdlJyAgICAgOiAoMCw2NTUzNSksCisgICAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgICAnZG9jJyAgICAgIDogJ3Rlc3R8dGVzdC1wYWNrZXQtaW4tcG9ydCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ2RzdC1wb3J0JywKKyAgICAgICAgICAgICd0YWcnICAgICAgIDogJ2RzdC1wb3J0JywKKyAgICAgICAgICAgICdiYXNlLXR5cGUnIDogJ2ludGVnZXInLAorICAgICAgICAgICAgJ3JhbmdlJyAgICAgOiAoMCw2NTUzNSksCisgICAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgICAnZG9jJyAgICAgIDogJ3Rlc3R8dGVzdC1wYWNrZXQtaW4tcG9ydCcsCisgICAgICAgIH0sCisgICAgKSwKK30KKworVEVTVF9QQVRIX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAndGVzdCcsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICduby1zdXBwb3J0ZWQnIDogRmFsc2UsCisgICAgJ29iai10eXBlJyAgICAgOiAndGVzdC1jb21tYW5kJywgICAjIGZha2Ugb2JqLXR5cGUsIGxlZ2FjeS1jbGkgZGVzY3JpbWluYXRvcgorICAgICdzaG9ydC1oZWxwJyAgIDogJ1BlcmZvcm0gdmFyaW91cyB0ZXN0cyBvbiB0aGUgbmV0d29yaycsCisgICAgJ2RvYycgICAgICAgICAgOiAndGVzdHx0ZXN0JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd0ZXN0fHRlc3QtcGF0aC1leGFtcGxlJywKKyAgICAnYWN0aW9uJyAgICAgICA6ICgKKyAgICAgICAgIyBjb2xsZWN0IHRoZSBlbnRyaWVzCisgICAgICAgIHsKKyAgICAgICAgICAgICdwcm9jJyA6ICdsZWdhY3ktY2xpJywKKyAgICAgICAgfSwKKyAgICAgICAgIyBqb2luIHRoZSBpbnRlcmZhY2UgbmFtZXMsIHBvc3NpYmx5IGFkZCBzdGF0cz8KKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnICAgICAgIDogJ2pvaW4tdGFibGUnLAorICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ2ludGVyZmFjZXMnLAorICAgICAgICAgICAgJ2tleScgICAgICAgIDogJ3N3aXRjaHxwb3J0TnVtYmVyJywKKyAgICAgICAgICAgICdqb2luLWZpZWxkJyA6ICdzd2l0Y2h8cG9ydCcsCisgICAgICAgICAgICAnYWRkLWZpZWxkJyAgOiAncG9ydE5hbWV8cG9ydE5hbWUnLAorICAgICAgICB9LAorICAgICAgICAjIGFkZCBiYXNpYyBpbnRlcmZhY2UncyBzdGF0cworICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgICAgICAgOiAnam9pbi1yZXN0JywKKyAgICAgICAgICAgICd1cmwnICAgICAgICA6ICdyZWFsdGltZXN0YXRzL3BvcnQvJShzd2l0Y2gpcy8nLAorICAgICAgICAgICAgJ3Jlc3QtdHlwZScgIDogJ2RpY3Qtb2YtbGlzdC1vZi1zd2l0Y2h8cG9ydE51bWJlcicsCisgICAgICAgICAgICAna2V5JyAgICAgICAgOiAnc3dpdGNofHBvcnROdW1iZXInLAorICAgICAgICAgICAgJ2pvaW4tZmllbGQnIDogJ3N3aXRjaHxwb3J0JworICAgICAgICB9LAorICAgICAgICAjIGRpc3BsYXkgdGhlIHJlc3VsdAorICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgICAgICAgOiAnZGlzcGxheScsCisgICAgICAgICAgICAnZm9ybWF0JyAgICAgOiAndGVzdC1wYXRoJywKKyAgICAgICAgfQorICAgICksCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3Rlc3QtdHlwZScsCisgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgICAgIDogJ3BhdGgnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndGVzdHx0ZXN0LXBhdGgnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgIyBzb3VyY2UgZGV2aWNlIChuZWVkIGFkZHJlc3Mgc3BhY2UsIHZsYW4pCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdzcmMtaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICd0YWcnICAgICAgICAgIDogJ3NyYy1ob3N0JywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaG9zdCcsCisgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLWZyb20tYW5vdGhlcicsCisgICAgICAgICAgICAgICAgICAgICdvdGhlcicgICAgICAgIDogJ2hvc3R8bWFjJywKKyAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd0ZXN0fHRlc3QtcGF0aC1ob3N0JywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICMgc291cmNlIGlwCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdzcmMtaXAnLAorICAgICAgICAgICAgICAgICAgICAndGFnJyAgICAgICAgICA6ICdzcmMtaXAnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpcC1hZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAnaG9zdC1uZXR3b3JrLWFkZHJlc3N8aXAtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3Rlc3R8dGVzdC1wYXRoLWlwJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICMgc291cmNlIGF0dGFjaG1lbnQgcG9pbnQKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3NyYy1zd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3RhZycgICAgICAgICAgOiAnc3JjLXN3aXRjaCcsCisgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLWZyb20tYW5vdGhlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICdzd2l0Y2hlc3xkcGlkJywgIyBmaWVsZCBpc24ndCBkcGlkCisgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd0ZXN0fHRlc3QtcGF0aC1zd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdzcmMtc3dpdGNoLXBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLWZyb20tYW5vdGhlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICdpbnRlcmZhY2VzfHBvcnROYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdzY29wZWQnICAgICAgIDogJ3NyYy1zd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnY29udmVydC1pbnRlcmZhY2UtdG8tcG9ydCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd0ZXN0fHRlc3QtcGF0aC1pZicsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICkKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgICMgZGVzdCBtYWMgKG5lZWQgYWRkcmVzcyBzcGFjZSwgdmxhbikKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2RzdC1ob3N0JywKKyAgICAgICAgICAgICAgICAgICAgJ3RhZycgICAgICAgICAgOiAnZHN0LWhvc3QnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdob3N0JywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAnaG9zdHxtYWMnLAorICAgICAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3Rlc3R8dGVzdC1wYXRoLWhvc3QnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIyBkZXN0IGlwIChuZWVkIGFkZHJlc3Mgc3BhY2UsIHZsYW4pCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdkc3QtaXAnLAorICAgICAgICAgICAgICAgICAgICAndGFnJyAgICAgICAgICA6ICdkc3QtaXAnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpcC1hZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAnaG9zdC1uZXR3b3JrLWFkZHJlc3N8aXAtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3Rlc3R8dGVzdC1wYXRoLWlwJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICMgZGVzdCBhdHRhY2htZW50IHBvaW50CisgICAgICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdkc3Qtc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0YWcnICAgICAgICAgIDogJ2RzdC1zd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnZHBpZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAnc3dpdGNoZXN8ZHBpZCcsICMgZmllbGQgaXNuJ3QgZHBpZAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndGVzdHx0ZXN0LXBhdGgtc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnZHN0LXN3aXRjaC1wb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAnaW50ZXJmYWNlc3xwb3J0TmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAnc2NvcGVkJyAgICAgICA6ICdkc3Qtc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2NvbnZlcnQtaW50ZXJmYWNlLXRvLXBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndGVzdHx0ZXN0LXBhdGgtaWYnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICApCisgICAgICAgIH0sCisgICAgKSwKK30KKworVEVTVF9QQVRIX0ZPUk1BVCA9IHsKKyAgICAndGVzdC1wYXRoJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgOiBbICdJZHgnLCAnc3dpdGNoJywgJ3BvcnROYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlY2VpdmVCeXRlcycsICdyZWNlaXZlUGFja2V0cycsICdyZWNlaXZlRXJyb3JzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zbWl0Qnl0ZXMnLCAndHJhbnNtaXRQYWNrZXRzJywgJ3RyYW5zbWl0RXJyb3JzJywKKyAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnc3dpdGNoJyAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdTd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnJlcGxhY2Vfc3dpdGNoX3dpdGhfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdwb3J0TmFtZScgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0lGJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdyZWNlaXZlQnl0ZXMnICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1J4IEJ5dGVzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdyZWNlaXZlUGFja2V0cycgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1J4IFBrdHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3JlY2VpdmVFcnJvcnMnICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnUnggRXJycycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHJhbnNtaXRCeXRlcycgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdUeCBCeXRlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndHJhbnNtaXRQYWNrZXRzJyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdUeCBQa3RzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0cmFuc21pdEVycm9ycycgOiAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1R4IEVycnMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICB9LAorICAgIH0sCit9CmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL3RvcG9sb2d5LnB5IGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC90b3BvbG9neS5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YmI1MWE0Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC90b3BvbG9neS5weQpAQCAtMCwwICsxLDU5IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKyIiIgorCitUT1BPTE9HWV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3RvcG9sb2d5JywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWcnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0VuYWJsZSBmZWF0dXJlcyBmb3IgY29udHJvbGxlcicsCisgICAgJ2RvYycgICAgICAgICAgOiAndG9wb2xvZ3l8dG9wb2xvZ3knLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3RvcG9sb2d5fHRvcG9sb2d5LWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZycsCisgICAgJ29iai10eXBlJyAgICAgOiAndG9wb2xvZ3ktY29uZmlnJywKKyAgICAnYXJncyc6IHsKKyAgICAgICAgJ2Nob2ljZXMnOiAoCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgICAgICAgIDogJ2F1dG9wb3J0ZmFzdCcsCisgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnICAgICAgIDogJ0VuYWJsZSB0aGUgYXV0byBQb3J0RmFzdCBmZWF0dXJlJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICAgOiAndG9wb2xvZ3l8dG9wb2xvZ3ktYXV0b3BvcnRmYXN0JywKKyAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgICAgICAgOiAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgICAgOiAnd3JpdGUtb2JqZWN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFRoZSBwcmltYXJ5IGtleSAoJ2lkJykgbXVzdCBiZSBwcmVzZW50IHRvCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHJlYWQgdGhlIG9sZCByb3cgdmFsdWUsIGFuZCB1cGRhdGUgaXRlbXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIG90aGVyd2lzZSBhICduZXcnIHJvdyBpcyB3cml0dGVuIHdpdGggZGVmYXVsdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyB2YWx1ZXMKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgICAgIDogJ3RvcG9sb2d5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhdXRvcG9ydGZhc3QnICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgJ25vLWFjdGlvbicgICAgICAgIDogKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgICAgIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgICAgOiAndG9wb2xvZ3knLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F1dG9wb3J0ZmFzdCcgOiBGYWxzZSAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICB9LAorICAgICAgICApCisgICAgfQorfQorIiIiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC90b3BvbG9neV9tb2RlbC5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdG9wb2xvZ3lfbW9kZWwucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjA2ZjBjOAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdG9wb2xvZ3lfbW9kZWwucHkKQEAgLTAsMCArMSwxOSBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2ltcG9ydCBjb21tYW5kCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9zdWJtb2RlKCd0b3BvbG9neS1jb25maWcnKQpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC90b3BvbG9neV9ydW5fY29uZmlnLnB5IGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC90b3BvbG9neV9ydW5fY29uZmlnLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQzOGFkNmUKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3RvcG9sb2d5X3J1bl9jb25maWcucHkKQEAgLTAsMCArMSw1OCBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKKyMgdG9wb2xvZ3kgY29uZmlnLgorIworCitpbXBvcnQgcnVuX2NvbmZpZworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBydW5uaW5nX2NvbmZpZ190b3BvbG9neShjb250ZXh0LCBjb25maWcsIHdvcmRzKToKKyAgICB0X29ial90eXBlID0gJ3RvcG9sb2d5LWNvbmZpZycKKyAgICAKKyAgICB0b3BvbG9neV9jb25maWcgPSBjb250ZXh0LmdldF90YWJsZV9mcm9tX3N0b3JlKHRfb2JqX3R5cGUpCisgICAgaWYgbGVuKHRvcG9sb2d5X2NvbmZpZykgPiAxOgorICAgICAgICBwcmludCAncnVubmluZ19jb25maWdfdG9wb2xvZ3k6IG1vcmUgdGhhbiBvbmUgdG9wb2xvZ3kgcmVjb3JkJworICAgIGlmIGxlbih0b3BvbG9neV9jb25maWcpID09IDA6CisgICAgICAgIHJldHVybgorCisgICAgdG9wb2xvZ3lfY29uZmlnID0gdG9wb2xvZ3lfY29uZmlnWzBdCisKKyAgICBpZiBydW5fY29uZmlnLm5vdF9kZWZhdWx0X3ZhbHVlKHRfb2JqX3R5cGUsICdhdXRvcG9ydGZhc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3BvbG9neV9jb25maWcuZ2V0KCdhdXRvcG9ydGZhc3QnKSk6CisgICAgICAgIGNvbmZpZy5hcHBlbmQoJ1xubm8gdG9wb2xvZ3kgYXV0b3BvcnRmYXN0XG4nKQorCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK3RvcG9sb2d5X3J1bm5pbmdfY29uZmlnX3R1cGxlID0gKAorICAgICgKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogRmFsc2UsCisgICAgICAgICAgICAnZmllbGQnICAgICAgOiAncnVubmluZy1jb25maWcnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ3RvcG9sb2d5JywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdUb3BvbG9neSBDb25maWd1cmF0aW9uJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdydW5uaW5nLWNvbmZpZ3xzaG93LXRvcG9sb2d5JywKKyAgICAgICAgfSwKKyAgICApLAorKQorCitydW5fY29uZmlnLnJlZ2lzdGVyX3J1bm5pbmdfY29uZmlnKCd0b3BvbG9neScsIDIxMDAsICBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydW5uaW5nX2NvbmZpZ190b3BvbG9neSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9wb2xvZ3lfcnVubmluZ19jb25maWdfdHVwbGUpCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL3R1bm5lbC5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdHVubmVsLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmQ3OWIwMTIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3R1bm5lbC5weQpAQCAtMCwwICsxLDE5NiBAQAoraW1wb3J0IGNvbW1hbmQKK2ltcG9ydCBqc29uCitpbXBvcnQgZm10Y252CisKKworVFVOTkVMX1NVQk1PREVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgOiAndHVubmVsJywKKyAgICAnc2hvcnQtaGVscCcgICAgOiAnRW50ZXIgdHVubmVsIHN1Ym1vZGUsIGNvbmZpZ3VyZSB0dW5uZWwgZGV0YWlscycsCisgICAgJ21vZGUnICAgICAgICAgIDogJ2NvbmZpZycsCisgICAgJ3BhcmVudC1maWVsZCcgIDogTm9uZSwKKyAgICAnY29tbWFuZC10eXBlJyAgOiAnY29uZmlnLXN1Ym1vZGUnLAorICAgICdvYmotdHlwZScgICAgICA6ICd0dW5uZWwtY29uZmlnJywKKyAgICAnc3VibW9kZS1uYW1lJyAgOiAnY29uZmlnLXR1bm5lbCcsCisgICAgJ2RvYycgICAgICAgICAgIDogJ3R1bm5lbHx0dW5uZWwnLAorICAgICdkb2MtZXhhbXBsZScgICA6ICd0dW5uZWx8dHVubmVsLWV4YW1wbGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAndHVubmVsLWlkJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgIydjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAnc3ludGF4LWhlbHAnICA6ICdFbnRlciBhIHR1bm5lbCBuYW1lJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3R1bm5lbHx0dW5uZWwnLAorICAgICAgICAgICAgJ2RvYy1pbmNsdWRlJyAgOiBbICd0eXBlLWRvYycgXSwKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ3R1bm5lbC1pZC1jb21wbGV0aW9uJywKKyAgICAgICAgICAgICdhY3Rpb24nICAgICAgIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAnY3JlYXRlLXR1bm5lbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICdwdXNoLW1vZGUtc3RhY2snLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICduby1hY3Rpb24nOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAncmVtb3ZlLXR1bm5lbCcsCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgfQorICAgICkKK30KKworVFVOTkVMX0NPTkZJR19GT1JNQVQgPSB7CisgICAgJ3R1bm5lbC1jb25maWcnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R1bm5lbC1pZCcsCisgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICB9LAorICAgIH0sCit9CisKKworZGVmIHR1bm5lbF9ub2RlX2xhYmVsX2NvbXBsZXRpb24ocHJlZml4LCBjb21wbGV0aW9ucyk6CisgICAgI3ByaW50ICJ0dW5uZWxfbm9kZV9sYWJlbF9jb21wbGV0aW9uOiIscHJlZml4LGNvbXBsZXRpb25zCisgICAgcXVlcnlfdXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXN0L3YxL3N3aXRjaGVzIgorICAgIHJlc3VsdCA9IGNvbW1hbmQuc2Ruc2guc3RvcmUucmVzdF9zaW1wbGVfcmVxdWVzdChxdWVyeV91cmwpCisgICAgZW50cmllcyA9IGpzb24ubG9hZHMocmVzdWx0KQorICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICBpZiBlbnRyeVsnc3RyaW5nQXR0cmlidXRlcyddWydub2RlU2lkJ10uc3RhcnRzd2l0aChwcmVmaXgpOgorICAgICAgICAgICAgY29tcGxldGlvbnNbZW50cnlbJ3N0cmluZ0F0dHJpYnV0ZXMnXVsnbm9kZVNpZCddKycgJ10gPSBlbnRyeVsnc3RyaW5nQXR0cmlidXRlcyddWydub2RlU2lkJ10KKyAgICByZXR1cm4KKworY29tbWFuZC5hZGRfY29tcGxldGlvbigndHVubmVsLW5vZGUtbGFiZWwtY29tcGxldGlvbicsIHR1bm5lbF9ub2RlX2xhYmVsX2NvbXBsZXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeyAncHJlZml4JyAgICAgICA6ICckdGV4dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbnMnICA6ICckY29tcGxldGlvbnMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pCisKK2RlZiB0dW5uZWxfYWRqYWNlbmN5X2xhYmVsX2NvbXBsZXRpb24ocHJlZml4LCBkYXRhLCBjb21wbGV0aW9ucyk6CisgICAgI3ByaW50ICJ0dW5uZWxfYWRqYWNlbmN5X2xhYmVsX2NvbXBsZXRpb246IixwcmVmaXgsZGF0YSxjb21wbGV0aW9ucworICAgIHF1ZXJ5X3VybDEgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc3QvdjEvc3dpdGNoZXMiCisgICAgcmVzdWx0MSA9IGNvbW1hbmQuc2Ruc2guc3RvcmUucmVzdF9zaW1wbGVfcmVxdWVzdChxdWVyeV91cmwxKQorICAgIGVudHJpZXMxID0ganNvbi5sb2FkcyhyZXN1bHQxKQorICAgIG5vZGVfZHBpZCA9IE5vbmUKKyAgICBmb3IgZW50cnkgaW4gZW50cmllczE6CisgICAgICAgIGlmIChpbnQgKGVudHJ5WydzdHJpbmdBdHRyaWJ1dGVzJ11bJ25vZGVTaWQnXSkgPT0gaW50KGRhdGFbJ25vZGUtbGFiZWwnXSkpOgorICAgICAgICAgICAgbm9kZV9kcGlkID0gZW50cnlbJ2RwaWQnXQorICAgIGlmIChub2RlX2RwaWQgIT0gTm9uZSk6CisgICAgICAgIHF1ZXJ5X3VybDIgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc3QvdjEvcm91dGVyLyIrbm9kZV9kcGlkKyIvYWRqYWNlbmN5IgorICAgICAgICByZXN1bHQyID0gY29tbWFuZC5zZG5zaC5zdG9yZS5yZXN0X3NpbXBsZV9yZXF1ZXN0KHF1ZXJ5X3VybDIpCisgICAgICAgIGVudHJpZXMyID0ganNvbi5sb2FkcyhyZXN1bHQyKQorICAgICAgICBmb3IgZW50cnkgaW4gZW50cmllczI6CisgICAgICAgICAgICBpZiBzdHIoZW50cnkuZ2V0KCJhZGphY2VuY3lTaWQiKSkuc3RhcnRzd2l0aChwcmVmaXgpOgorICAgICAgICAgICAgICAgIGNvbXBsZXRpb25zW3N0cihlbnRyeS5nZXQoImFkamFjZW5jeVNpZCIpKSsnICddID0gZW50cnkuZ2V0KCJhZGphY2VuY3lTaWQiKQorICAgIHJldHVybgorCitjb21tYW5kLmFkZF9jb21wbGV0aW9uKCd0dW5uZWwtYWRqYWNlbmN5LWxhYmVsLWNvbXBsZXRpb24nLCB0dW5uZWxfYWRqYWNlbmN5X2xhYmVsX2NvbXBsZXRpb24sCisgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeyAncHJlZml4JyAgICAgICA6ICckdGV4dCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YScgICAgICAgICA6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbnMnICA6ICckY29tcGxldGlvbnMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pCisKK1RVTk5FTF9BREpBQ0VOQ1lfSU5GTyA9ICgKKyAgICB7CisgICAgICAgICd0b2tlbicgICAgICAgICAgICAgICA6ICdhZGphY2VuY3knLAorICAgICAgICAnc2hvcnQtaGVscCcgICAgICAgICAgOiAnU2V0IGFkamFjZW5jeSBsYWJlbCBvbiB0aGlzIG5vZGUnLAorICAgICAgICAnZG9jJyAgICAgICAgICAgICAgICAgOiAndHVubmVsfGFkamFjZW5jeScsCisgICAgICAgICdkb2MtZXhhbXBsZScgICAgICAgICA6ICd0dW5uZWx8YWRqYWNlbmN5JywKKyAgICB9LAorICAgIHsKKyAgICAgICAgICdmaWVsZCcgICAgICA6ICdhZGphY2VuY3ktbGFiZWwnLAorICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2xhYmVsJywKKyAgICAgICAgICdjb21wbGV0aW9uJyA6ICd0dW5uZWwtYWRqYWNlbmN5LWxhYmVsLWNvbXBsZXRpb24nLAorICAgICAgICAgJ2hlbHAtbmFtZScgIDogJ0FkamFjZW5jeSBsYWJlbCcsCisgICAgICAgICAnZGF0YScgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICdub2RlX2xhYmVsJyAgICAgIDogJyRub2RlLWxhYmVsJywKKyAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAnYWN0aW9uJyAgICAgICA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICdjcmVhdGUtdHVubmVsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgIH0KKykKKworIyBvYmpfdHlwZSBmbG93LWVudHJ5IGZpZWxkIGhhcmQtdGltZW91dAorVFVOTkVMX05PREVfRU5UUllfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgICAgICAgOiAnbm9kZScsCisgICAgJ21vZGUnICAgICAgICAgICAgICAgIDogJ2NvbmZpZy10dW5uZWwnLAorICAgICdzaG9ydC1oZWxwJyAgICAgICAgICA6ICdTZXQgbm9kZSBmb3IgdGhpcyB0dW5uZWwnLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICd0dW5uZWx8bm9kZScsCisgICAgJ2RvYy1leGFtcGxlJyAgICAgICAgIDogJ3R1bm5lbHxub2RlJywKKyAgICAncGFyZW50LWZpZWxkJyAgICAgICAgOiAndHVubmVsJywKKyAgICAnY29tbWFuZC10eXBlJyAgICAgICAgOiAnY29uZmlnJywKKyAgICAnYXJncycgICAgICAgICAgICAgICAgOiAoCisgICAgICAgICB7CisgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ25vZGUtbGFiZWwnLAorICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ3R1bm5lbC1ub2RlLWxhYmVsLWNvbXBsZXRpb24nLAorICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2xhYmVsJywKKyAgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICdzd2l0Y2hlc3xsYWJlbCcsCisjICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgICAgICAnaGVscC1uYW1lJyAgICA6ICdTZWdtZW50IGxhYmVsJywKKyAgICAgICAgICAgICAnYWN0aW9uJyAgICAgICA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ2NyZWF0ZS10dW5uZWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgIH0sCisgICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICdhcmdzJyA6IFRVTk5FTF9BREpBQ0VOQ1lfSU5GTywKKyAgICAgICAgIH0sCisgICAgKQorfQorCitTV0lUQ0hfVFVOTkVMX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgICAgICAgICA6ICdsb2dpbicsCisgICAgJ2NvbW1hbmQtdHlwZScgICAgICAgIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdhbGwtaGVscCcgICAgICAgICAgICA6ICdTaG93IHN3aXRjaCBpbmZvcm1hdGlvbicsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ1Nob3cgc3dpdGNoIHN1bW1hcnknLAorICAgICMnb2JqLXR5cGUnICAgICAgICAgICAgOiAnc3dpdGNoZXMnLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICdzd2l0Y2h8c2hvdycsCisgICAgJ2RvYy1leGFtcGxlJyAgICAgICAgIDogJ3N3aXRjaHxzaG93LWV4YW1wbGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Rva2VuJyAgOiAndHVubmVsJywKKyAgICAgICAgICAgICdmaWVsZCcgIDogJ3Nob3d0dW5uZWwnLAorICAgICAgICAgICAgJ3NvcnQnICAgOiBbJ3R1bm5lbElkJyxdLAorICAgICAgICAgICAgJ2FjdGlvbicgOiAnZGlzcGxheS1yZXN0JywKKyAgICAgICAgICAgICdkb2MnICAgIDogJ3N3aXRjaHxzaG93JywKKyAgICAgICAgICAgICd1cmwnICAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3d0dW5uZWwnLAorICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ2Zvcm1hdCcgOiAnc2hvd190dW5uZWwnLAorICAgICAgICB9LAorICAgICAgICAgICAgICB7IAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogVHJ1ZSwKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdzaG93dHVubmVsJywKKyAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAoJ2RldGFpbHMnLCksCisgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICdmb3JtYXQnIDogJ3Nob3dfdHVubmVsJywKKyAgICAgICAgICAgICAgICAgJ2RhdGEnICAgICAgICAgOiB7ICdkZXRhaWwnIDogJ2RldGFpbHMnIH0sCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgfQorICAgICkKK30KKworCitkZWYgdHVubmVsX2lkX2NvbXBsZXRpb24ocHJlZml4LCBjb21wbGV0aW9ucyk6CisgICAgcXVlcnlfdXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXN0L3YxL3Nob3d0dW5uZWwiCisgICAgcmVzdWx0ID0gY29tbWFuZC5zZG5zaC5zdG9yZS5yZXN0X3NpbXBsZV9yZXF1ZXN0KHF1ZXJ5X3VybCkKKyAgICBlbnRyaWVzID0ganNvbi5sb2FkcyhyZXN1bHQpCisgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgIGlmIGVudHJ5Wyd0dW5uZWxJZCddLnN0YXJ0c3dpdGgocHJlZml4KToKKyAgICAgICAgICAgIGNvbXBsZXRpb25zW2VudHJ5Wyd0dW5uZWxJZCddKycgJ10gPSBlbnRyeVsndHVubmVsSWQnXQorICAgIHJldHVybgorCitjb21tYW5kLmFkZF9jb21wbGV0aW9uKCd0dW5uZWwtaWQtY29tcGxldGlvbicsIHR1bm5lbF9pZF9jb21wbGV0aW9uLAorICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsgJ3ByZWZpeCcgICAgICAgOiAnJHRleHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb25zJyAgOiAnJGNvbXBsZXRpb25zJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19KQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvdHVubmVsT2xkLnB5IGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC90dW5uZWxPbGQucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGEzZjViYQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdHVubmVsT2xkLnB5CkBAIC0wLDAgKzEsMTA4IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworaW1wb3J0IGZtdGNudgorIiIiCitUVU5ORUxfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICAgOiAndHVubmVsLWxpbmsnLAorICAgICdmZWF0dXJlJyAgICAgIDogJ3ZucycsCisgICAgJ21vZGUnICAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnY29tbWFuZC10eXBlJyAgOiAnZGlzcGxheS10YWJsZScsCisgICAgJ2RvYycgICAgICAgICAgIDogJ3R1bm5lbC1saW5rfHZlcmlmeS1leGFtcGxlJywKKyAgICAnb2JqLXR5cGUnICAgICAgOiBOb25lLAorICAgICdhcmdzJyAgOiB7CisgICAgICAgICdjaG9pY2VzJzogKAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgICAgOiAndmVyaWZ5JywKKyAgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyAgICA6ICdWZXJpZnkgc3RhdHVzIG9mIHR1bm5lbCBiZXR3ZWVuIHR3byBzd2l0Y2hlcycsCisgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgICAgOiAnZGlzcGxheS1yZXN0JywKKyAgICAgICAgICAgICAgICAgICAgICdmb3JtYXQnICAgICAgICA6ICd0dW5uZWwtZXZlbnQnLAorICAgICAgICAgICAgICAgICAgICAgJ3VybCcgICAgICAgICAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyZWFsdGltZXN0YXR1cy9uZXR3b3JrL3R1bm5lbHZlcmlmeS8lKHNyYy1kcGlkKXMvJShkc3QtZHBpZClzLycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgIDogJ3NyYy1kcGlkJywKKyAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgICA6ICdjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgIDogJ3N3aXRjaGVzfGRwaWQnLAorICAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgIDogJ2FsaWFzLXRvLXZhbHVlJywKKyAgICAgICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgICA6ICdzd2l0Y2ggZHBpZCBvciBhbGlhcycsCisgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICA6ICdkc3QtZHBpZCcsCisgICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICAgOiAnZHBpZCcsCisgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICAgOiAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICAgICAgICAgICdvdGhlcicgICAgICAgICA6ICdzd2l0Y2hlc3xkcGlkJywKKyAgICAgICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInICA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgICAgOiAnc3dpdGNoIGRwaWQgb3IgYWxpYXMnLAorICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICApCisgICAgfQorfQorCitUVU5ORUxfTElOS19GQUlMVVJFU19TSE9XX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdmZWF0dXJlJyAgICAgIDogJ3ZucycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyB0dW5uZWwgbGluayBmYWlsdXJlcycsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisgICAgJ3VybCcgICAgICAgICAgOiAncmVhbHRpbWVzdGF0dXMvbmV0d29yay90dW5uZWxzdGF0dXMvYWxsL2FsbCcsCisgICAgJ29iai10eXBlJyAgICAgOiBOb25lLAorICAgICdmb3JtYXQnICAgICAgIDogJ3R1bm5lbC1ldmVudCcsCisgICAgJ2FjdGlvbicgICAgICAgOiAnZGlzcGxheS1yZXN0JywKKyAgICAnYXJncycgIDogKAorICAgICAgICAndHVubmVsLWxpbmstZmFpbHVyZXMnLAorICAgICksCit9CisKK1RVTk5FTF9FVkVOVF9GT1JNQVQgPSB7CisgICAgJ3R1bm5lbC1ldmVudCcgOiB7CisgICAgICAgICdzb3VyY2UnICAgICAgICA6ICdjb250cm9sbGVyJywKKyAgICAgICAgJ3VybCcgICAgICAgICAgIDogJ3R1bm5lbC1ldmVudCcsCisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnOiB7CisgICAgICAgICAgICAgICAgICdkZWZhdWx0JyA6IFsgJ0lkeCcsICdzcmMtZHBpZCcsICdkc3QtZHBpZCcsICdzdGF0dXMnLCAnbGFzdC12ZXJpZmllZCcgXSwKKyAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnSWR4JyA6IHsKKyAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnOiAnIycsCisgICAgICAgICAgICAgICAgICAgICAnZWRpdCcgOiBGYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICd0eXBlJyA6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgJ3ByaW1hcnkta2V5JzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3JjLWRwaWQnOnsKKyAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJzogJ1NyYyBEUElEJywKKyAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAndHlwZSc6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZHN0LWRwaWQnOiB7J2pzb25fc2VyaWFsaXplX3N0cmluZyc6IFRydWUsCisgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZSc6ICdEc3QgRFBJRCcsCisgICAgICAgICAgICAgICAgJ3R5cGUnOiAnQ2hhckZpZWxkJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3N0YXR1cyc6IHsKKyAgICAgICAgICAgICAgICAnanNvbl9zZXJpYWxpemVfc3RyaW5nJzogVHJ1ZSwKKyAgICAgICAgICAgICAgICAndHlwZSc6ICdDaGFyRmllbGQnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbGFzdC12ZXJpZmllZCc6IHsKKyAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJzogJ0xhc3QgVmVyaWZpZWQnLAorICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X3RpbWVfc2luY2VfdXRjLAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKK30KKyIiIgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kZXNjL3ZlcnNpb24yMDAvdmNlbnRlci5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdmNlbnRlci5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNzFlYWZkCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC92Y2VudGVyLnB5CkBAIC0wLDAgKzEsNTQ5IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworIyAoYykgaW4gMjAxMiBieSBCaWcgU3dpdGNoIE5ldHdvcmtzIC0gQWxsIHJpZ2h0cyByZXNlcnZlZAorIworIyB2Q2VudGVyIGNvbW1hbmRzCisjCisiIiIKK2ltcG9ydCBvcworVkNFTlRFUl9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3ZjZW50ZXInLAorICAgICMnbm8taGVscCcgICAgICA6ICdSZW1vdmUgdmNlbnRlciBjb25maWd1cmF0aW9uJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWcqJywKKyAgICAnZmVhdHVyZScgICAgICA6ICdleHBlcmltZW50YWwnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZy1zdWJtb2RlJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdFbnRlciB2Y2VudGVyIHN1Ym1vZGUsIGNvbmZpZ3VyZSB2Y2VudGVyIGRldGFpbHMnLAorICAgICdkb2MnICAgICAgICAgIDogJ3ZjZW50ZXJ8dmNlbnRlcicsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndmNlbnRlcnx2Y2VudGVyLWV4YW1wbGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ3ZjZW50ZXInLAorICAgICdwYXJlbnQtZmllbGQnIDogTm9uZSwKKyAgICAnY3VycmVudC1tb2RlLW9iai1pZCcgOiBOb25lLAorICAgICdzdWJtb2RlLW5hbWUnIDogJ2NvbmZpZy12Y2VudGVyJywKKyAgICAjICdwYXJlbnQtaWQnICAgICAgICAgICA6ICd2Y2VudGVyLW5hbWUnLAorICAgICdhcmdzJyAgICAgOiAoCisgICAgICAgIHsgJ2ZpZWxkJyAgICAgICAgOiAndmNlbnRlci1uYW1lJywKKyAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICdzeW50YXgtaGVscCcgIDogJ0VudGVyIGEgdmNlbnRlciBuYW1lJywKKyAgICAgICAgfQorICAgICksCisgICAgJ2FjdGlvbic6ICdwdXNoLW1vZGUtc3RhY2snLAorICAgICduby1hY3Rpb24nOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgJ3Byb2MnICAgOiAnY29uZmlybScsCisgICAgICAgICAgICdwcm9tcHQnIDogIkRlbGV0aW5nIGEgdmNlbnRlciB3aWxsIGNhdXNlIHZjZW50ZXIiIFwKKyAgICAgICAgICAgICAgICAgICAgICAiIERWUydzIHRvIGFsc28gYmUgZGVsZXRlZCwgY29udGludWUgKHkgb3IgeWVzKT8gIgorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgOiAnZGVsZXRlLW9iamVjdHMnLAorICAgICAgICB9CisgICAgKQorfQorCisKK1NIT1dfVkNFTlRFUl9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnZmVhdHVyZScgICAgICA6ICdleHBlcmltZW50YWwnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgdmNlbnRlciBjb25maWd1cmF0aW9ucycsCisgICAgJ2RvYycgICAgICAgICAgOiAndmNlbnRlcnxzaG93JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2Y2VudGVyfHNob3ctZXhhbXBsZScsCisgICAgJ29iai10eXBlJyAgICAgOiAndmNlbnRlcicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisKKyAgICAnYXJncycgOiAoCisgICAgICAgICd2Y2VudGVyJywKKyAgICApCit9CisKKworU0hPV19WQ0VOVEVSX05BTUVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICA6ICdsb2dpbicsCisgICAgJ2ZlYXR1cmUnICAgICAgOiAnZXhwZXJpbWVudGFsJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IHZjZW50ZXIgZGVzY3JpcHRpb24gYnkgbmFtZScsCisgICAgJ2RvYycgICAgICAgICAgOiAndmNlbnRlcnxzaG93LW5hbWUnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3ZjZW50ZXJ8c2hvdy1uYW1lLWV4YW1wbGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ3ZjZW50ZXInLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgJ3ZjZW50ZXInLAorICAgICAgICB7CisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgOiAndmNlbnRlci1uYW1lJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICd2Y2VudGVyLW5hbWUnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgICAgOiAnYWxsJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdkdnMnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICdkdnMnLAorICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgOiAnZHZzJywKKyAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnU2VsZWN0IGR2cyBmb3IgZGlzcGxheScsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICd2Y2VudGVyfHNob3ctbmFtZS1kdnMnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnZHZzLXBvcnQtZ3JvdXAnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICdkdnMtcG9ydC1ncm91cCcsCisgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICA6ICdkdnMtcG9ydC1ncm91cCcsCisgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1NlbGVjdCBkdnMtcG9ydC1ncm91cCBmb3IgZGlzcGxheScsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICd2Y2VudGVyfHNob3ctbmFtZS1kdnMtcG9ydC1ncm91cCcsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdzdGF0dXMnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICdzdGF0dXMnLAorICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAnZGlzcGxheS1yZXN0JywKKyAgICAgICAgICAgICAgICAgICAgJ3VybCcgICAgICAgIDogJ3ZjZW50ZXIvc3RhdHVzLyUodmNlbnRlci1uYW1lKXMvJywKKyAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCcgICAgIDogJ3ZjZW50ZXItc3RhdHVzJywKKyAgICAgICAgICAgICAgICAgICAgJ2RldGFpbCcgICAgIDogJ2RldGFpbHMnLAorICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnRGlzcGxheSB2Y2VudGVyIGFjdGl2ZSBzdGF0ZScsCisgICAgICAgICAgICAgICAgICAgICdkb2MnICAgICAgICA6ICd2Y2VudGVyfHNob3ctdmNlbnRlci1zdGF0dXMnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgIDogJ2RldGFpbCcsCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgOiAnZGV0YWlscycsCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKQorICAgICAgICB9CisgICAgKQorfQorCisKK1NIT1dfVkNFTlRFUl9OQU1FX1NUQVRVU19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnZmVhdHVyZScgICAgICA6ICdleHBlcmltZW50YWwnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgdmNlbnRlciBvcGVyYXRpb25hbCBzdGF0dXMgYnkgbmFtZScsCisgICAgJ2RvYycgICAgICAgICAgOiAndmNlbnRlcnxzaG93LXZjZW50ZXItZHZzLXN0YXR1cycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndmNlbnRlcnxzaG93LXZjZW50ZXItZHZzLXN0YXR1cy1leGFtcGxlJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd2Y2VudGVyJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXJlc3QnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgJ3ZjZW50ZXInLAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICd2Y2VudGVyLW5hbWUnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaWRlbnRpZmllcicsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnZHZzLW5hbWUnLAorICAgICAgICAgICAgJ3RhZycgICAgICAgIDogJ2R2cycsCisgICAgICAgICAgICAnb2JqLXR5cGUnICAgOiAnZHZzJywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgIDogJ3N0YXR1cycsCisgICAgICAgICAgICAndHlwZScgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICA6ICdzdGF0dXMnLAorICAgICAgICAgICAgJ3VybCcgICAgICA6ICd2Y2VudGVyL3N0YXR1cy8lKHZjZW50ZXItbmFtZSlzLyUoZHZzLW5hbWUpcycsCisgICAgICAgICAgICAnZm9ybWF0JyAgIDogJ3ZjZW50ZXItZHZzLXN0YXR1cycsCisgICAgICAgICAgICAnZGV0YWlsJyAgIDogJ2RldGFpbHMnLAorICAgICAgICAgICAgJ2FjdGlvbicgICA6ICdkaXNwbGF5LXJlc3QnLAorCisgICAgICAgIH0sCisgICAgKQorfQorCitWQ0VOVEVSX0lQX0FERFJFU1NfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdpcCcsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXZjZW50ZXInLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0Fzc29jaWF0ZSBpcCBhZGRyZXNzIGZvciB2Y2VudGVyIGNvbm5lY3Rpb24nLAorICAgICdkb2MnICAgICAgICAgIDogJ3ZjZW50ZXJ8aXAnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3ZjZW50ZXJ8aXAtZXhhbXBsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnbm8tc3VwcG9ydGVkJyA6IFRydWUsCisgICAgJ2ZpZWxkcycgICAgICAgOiBbICdpcCcgXSwgIyBmb3IgZmllbGQgcmVzZXQKKyAgICAnYXJncycgICAgICAgICA6IHsKKyAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICdhZGRyZXNzJywKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ2lwJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnaXAtYWRkcmVzcy1ub3QtbWFzaycsCisgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyAgICAgOiAnRW50ZXIgYW4gSVAgQWRkcmVzcycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgICkKKyAgICB9Cit9CisKK1ZDRU5URVJfUE9SVF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3BvcnQnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0Fzc29jaWF0ZSBodHRwIHBvcnQgZm9yIHZjZW50ZXIgY29ubmVjdGlvbicsCisgICAgJ2RvYycgICAgICAgICAgOiAndmNlbnRlcnxwb3J0JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2Y2VudGVyfHBvcnQtZXhhbXBsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdmNlbnRlcicsCisgICAgJ25vLXN1cHBvcnRlZCcgOiBGYWxzZSwKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ3BvcnQnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAnc3ludGF4LWhlbHAnICAgICA6ICdFbnRlciBhbiBodHRwIHBvcnQgbnVtYmVyJywKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgfQorICAgICkKK30KKworVkNFTlRFUl9EVlNfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdkdnMnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy12Y2VudGVyKicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnLXN1Ym1vZGUnLAorICAgICdwYXJlbnQtZmllbGQnIDogJ3ZjZW50ZXItbmFtZScsCisgICAgJ29iai10eXBlJyAgICAgOiAnZHZzJywKKyAgICAnbm8tc3VwcG9ydGVkJyA6IFRydWUsCisgICAgJ3N1Ym1vZGUtbmFtZScgOiAnY29uZmlnLXZjZW50ZXItZHZzJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdFbnRlciB2Y2VudGVyLWR2cyBzdWJtb2RlLCBkZXNjcmliZSBwb3J0IGdyb3VwcycsCisgICAgJ2RvYycgICAgICAgICAgOiAndmNlbnRlcnxkdnMnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3ZjZW50ZXJ8ZHZzLWV4YW1wbGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICA6ICdkYXRhY2VudGVyJywKKyAgICAgICAgICAgICd0YWcnICAgICAgICAgOiAnZGF0YWNlbnRlci1uYW1lJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgOiAnRW50ZXIgdGhlIHZjZW50ZXIgZGF0YWNlbnRlciBuYW1lJywKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICA6ICdkdnMtbmFtZScsCisgICAgICAgICAgICAndGFnJyAgICAgICAgIDogJ2R2cy1uYW1lJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgOiAnRW50ZXIgdGhlIHZjZW50ZXIgZHZzIG5hbWUnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgIDogJ3N3aXRjaC1jbGFzcycsCisgICAgICAgICAgICAndGFnJyAgICAgICAgIDogJ3N3aXRjaC1jbGFzcycsCisgICAgICAgICAgICAndHlwZScgICAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAnb3B0aW9uYWwnICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nOiBUcnVlLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyA6ICdFbnRlciB2bXdhcmUnLAorICAgICAgICB9LAorICAgICksCit9CisKK1NIT1dfRFZTX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ2ZlYXR1cmUnICAgICAgOiAnZXhwZXJpbWVudGFsJywKKyAgICAnbW9kZScgICAgICAgICA6ICdsb2dpbicsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyB2Y2VudGVyIGR2cyBkZXRhaWxzJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2Y2VudGVyfHNob3ctZHZzJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2Y2VudGVyfHNob3ctZHZzLWV4YW1wbGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ2R2cycsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICdkdnMnLAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgIDogJ3ZjZW50ZXInLAorICAgICAgICAgICAgJ3RhZycgICAgICA6ICd2Y2VudGVyJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdzdHJpbmcnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgIDogJ2RhdGFjZW50ZXInLAorICAgICAgICAgICAgJ3RhZycgICAgICA6ICdkYXRhY2VudGVyJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdzdHJpbmcnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgIDogJ2R2cycsCisgICAgICAgICAgICAndGFnJyAgICAgIDogJ2R2cycsCisgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICd0eXBlJyAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgfSwKKyAgICApCit9CisKK1ZDRU5URVJfUE9SVEdST1VQX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAncG9ydGdyb3VwJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdmNlbnRlci1kdnMnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0Rlc2NyaWJlIGR2cyBwb3J0Z3JvdXAnLAorICAgICdkb2MnICAgICAgICAgIDogJ3ZjZW50ZXJ8ZHZzLXBvcnRncm91cCcsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndmNlbnRlcnxkdnMtcG9ydGdyb3VwLWV4YW1wbGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZy1vYmplY3QnLAorICAgICdwYXJlbnQtZmllbGQnIDogJ2R2cy1uYW1lJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdkdnMtcG9ydC1ncm91cCcsCisgICAgJ25vLXN1cHBvcnRlZCcgOiBUcnVlLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAncG9ydGdyb3VwLW5hbWUnLAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyAgICAgOiAnRW50ZXIgdGhlIHZjZW50ZXIgcG9ydGdyb3VwIG5hbWUgZm9yIHRoZSBhc3NvY2lhdGVkIGR2cycsCisgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUKKyAgICAgICAgfQorICAgICkKK30KKworCitTSE9XX0RWU19QT1JUX0dST1VQX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ2ZlYXR1cmUnICAgICAgOiAnZXhwZXJpbWVudGFsJywKKyAgICAnbW9kZScgICAgICAgICA6ICdsb2dpbicsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyB2Y2VudGVyIGR2cyBwb3J0LWdyb3VwIGRldGFpbHMnLAorICAgICdkb2MnICAgICAgICAgIDogJ3ZjZW50ZXJ8c2hvdy1kdnMtcG9ydC1ncm91cCcsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndmNlbnRlcnxzaG93LWR2cy1wb3J0LWdyb3VwLWV4YW1wbGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ2R2cy1wb3J0LWdyb3VwJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnbm8tc3VwcG9ydGVkJyA6IFRydWUsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICdkdnMtcG9ydC1ncm91cCcsCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgOiAndmNlbnRlcicsCisgICAgICAgICAgICAndGFnJyAgICAgIDogJ3ZjZW50ZXInLAorICAgICAgICAgICAgJ29wdGlvbmFsJyA6IFRydWUsCisgICAgICAgICAgICAndHlwZScgICAgIDogJ3N0cmluZycsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgOiAnZGF0YWNlbnRlcicsCisgICAgICAgICAgICAndGFnJyAgICAgIDogJ2RhdGFjZW50ZXInLAorICAgICAgICAgICAgJ29wdGlvbmFsJyA6IFRydWUsCisgICAgICAgICAgICAndHlwZScgICAgIDogJ3N0cmluZycsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgOiAnZHZzJywKKyAgICAgICAgICAgICd0YWcnICAgICAgOiAnZHZzJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdzdHJpbmcnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgIDogJ3BvcnRncm91cCcsCisgICAgICAgICAgICAndGFnJyAgICAgIDogJ3BvcnRncm91cCcsCisgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICd0eXBlJyAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgfSwKKyAgICApCit9CisKK1ZDRU5URVJfVVNFUk5BTUVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICd1c2VybmFtZScsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXZjZW50ZXInLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0NvbmZpZ3VyZSB2Y2VudGVyIHVzZXJuYW1lIGZvciBsb2dpbicsCisgICAgJ2RvYycgICAgICAgICAgOiAndmNlbnRlcnx1c2VybmFtZScsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndmNlbnRlcnx1c2VybmFtZS1leGFtcGxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorICAgICdmaWVsZHMnICAgICAgIDogWyAndXNlcm5hbWUnIF0sICMgZm9yIGZpZWxkIHJlc2V0CisgICAgJ25vLXN1cHBvcnRlZCcgOiBUcnVlLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAndXNlcm5hbWUnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgICAgIDogJ0VudGVyIHRoZSB2Y2VudGVyIGxvZ2luIHVzZXJuYW1lJywKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgfQorICAgICkKK30KKworVkNFTlRFUl9QQVNTV09SRF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Bhc3N3b3JkJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdmNlbnRlcicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdDb25maWd1cmUgdmNlbnRlciBwYXNzd29yZCBmb3IgbG9naW4nLAorICAgICdkb2MnICAgICAgICAgIDogJ3ZjZW50ZXJ8cGFzc3dvcmQnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3ZjZW50ZXJ8cGFzc3dvcmQtZXhhbXBsZScsCisgICAgJ2ZpZWxkcycgICAgICAgOiBbICdwYXNzd29yZCcgXSwgIyBmb3IgZmllbGQgcmVzZXQKKyAgICAnbm8tc3VwcG9ydGVkJyA6IFRydWUsCisgICAgJ2FyZ3MnIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdwYXNzd29yZCcsCisgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyAgICAgOiAnRW50ZXIgdGhlIHZjZW50ZXIgbG9naW4gcGFzc3dvcmQnLAorICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICB9CisgICAgKQorfQorCitWQ0VOVEVSX0NPTk5FQ1RfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdjb25uZWN0JywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdmNlbnRlcicsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnRW5hYmxlIHZjZW50ZXIgY29ubmVjdCcsCisgICAgJ2RvYycgICAgICAgICAgOiAndmNlbnRlcnxjb25uZWN0JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2Y2VudGVyfGNvbm5lY3QtZXhhbXBsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnc3ludGF4LWhlbHAnICA6ICdFbnRlciB0byBhdHRlbXB0IGEgdmNlbnRlciBjb25uZWN0JywKKyAgICAjICdkYXRhJyA6IHsnY29ubmVjdCcgOiBUcnVlIH0sCisgICAgJ2FyZ3MnIDogKCksCisgICAgJ2FjdGlvbic6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnIDogJ3dyaXRlLWZpZWxkcycsCisgICAgICAgICAgICAnZGF0YScgOiB7J2Nvbm5lY3QnIDogVHJ1ZX0KKyAgICAgICAgfSwKKyAgICApLAorICAgICduby1hY3Rpb24nOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdwcm9jJyA6ICdyZXNldC1maWVsZHMnLAorICAgICAgICAgICAgJ2ZpZWxkcycgOiBbICdjb25uZWN0JyBdCisgICAgICAgIH0KKyAgICApCit9CisKKworIworIyBGT1JNQVRTCisjCisKK2ltcG9ydCBmbXRjbnYKKworCitWQ0VOVEVSX0ZPUk1BVCA9IHsKKyAgICAndmNlbnRlcicgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAnSWR4JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZjZW50ZXItbmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICdpcCcsICdwb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXJuYW1lJywgJ3Bhc3N3b3JkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Nvbm5lY3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnaXAnICAgICAgICAgICAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdwb3J0JyAgICAgICAgICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3VzZXJuYW1lJyAgICAgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncGFzc3dvcmQnICAgICAgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdjb25uZWN0JyAgICAgICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCisKK1ZDRU5URVJfU1RBVFVTX0ZPUk1BVCA9IHsKKyAgICAndmNlbnRlci1zdGF0dXMnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICAgICAnZGVmYXVsdCcgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lkeCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZjZW50ZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTdGF0dXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdEdnNMaXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICdkZXRhaWxzJyA6IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmNlbnRlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1N0YXR1cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1ZDZW50ZXJFcnJvcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0R2c0xpc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAndmNlbnRlcicgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVkNlbnRlcicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdTdGF0dXMnICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdTdGF0dXMnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnVkNlbnRlckVycm9yJyA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVkNlbnRlciBlcnJvcicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdEdnNMaXN0JyAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdEdnNlcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0sCisgICAgfSwKK30KKworCitWQ0VOVEVSX0RWU19TVEFUVVNfRk9STUFUID0geworICAgICd2Y2VudGVyLWR2cy1zdGF0dXMnICA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgIDogICAgWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdJZHgnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2Y2VudGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YUNlbnRlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2R2cycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcnRncm91cHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgfSwKKworICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICd2Y2VudGVyJyAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdWQ2VudGVyJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2R2cycgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0R2cyBOYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkYXRhQ2VudGVyJyAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdEYXRhIENlbnRlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncG9ydGdyb3VwcycgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnUG9ydCBHcm91cHMgQWN0aXZlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgfQorICAgIH0sCit9CisKK1ZDRU5URVJfRFZTX0ZPUk1BVCA9IHsKKyAgICAnZHZzJyA6IHsKKyAgICAgICAgJ3Nob3ctdGhpcycgICAgICAgOiBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsgJ2R2cycsICdkZWZhdWx0JyBdLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbICdkdnMtcG9ydC1ncm91cCcsICdzY29wZWQnIF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorCisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAndmNlbnRlci1uYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGFjZW50ZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnZHZzLW5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAnc3dpdGNoLWNsYXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ3ZjZW50ZXItbmFtZScgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGF0YWNlbnRlcicgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdkdnMtbmFtZScgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3N3aXRjaC1jbGFzcycgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKKworVkNFTlRFUl9EVlNfUE9SVF9HUk9VUF9GT1JNQVQgPSB7CisgICAgJ2R2cy1wb3J0LWdyb3VwJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAgICAgJ2RlZmF1bHQnIDogWyAndmNlbnRlci1uYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhY2VudGVyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkdnMtbmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9ydGdyb3VwLW5hbWUnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAnc2NvcGVkJyAgOiBbICdwb3J0Z3JvdXAtbmFtZScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAnZHZzLW5hbWUnICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncG9ydGdyb3VwLW5hbWUnIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9LAorCisgICAgICAgIH0sCit9CisiIiIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL3ZpcnR1YWxyb3V0ZXIucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3ZpcnR1YWxyb3V0ZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTk3MjJkYgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdmlydHVhbHJvdXRlci5weQpAQCAtMCwwICsxLDExMTcgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCisjCisjCisKK2ltcG9ydCBjb21tYW5kCitpbXBvcnQgZm10Y252CitpbXBvcnQgZXJyb3IKKworZGVmIHZpcnR1YWxyb3V0ZXJfb3JpZ2luX2V4dGVybmFsKGRhdGEpOgorICAgICIiIgorICAgIFJldHVybiBvcmlnaW4tbmFtZSB3aGVuIHRoZSB2aXJ0dWFscm91dGVyIHdhc24ndCBjcmVhdGVkIGJ5IHRoZSBjbGksCisgICAgcmV0dXJuIE5vbmUgb3RoZXJ3aXNlLgorICAgICIiIgorICAgIHBrID0gY29tbWFuZC5taS5waygndmlydHVhbHJvdXRlcicpCisgICAgaWYgbm90IHBrIGluIGRhdGE6CisgICAgICAgIHJldHVybiBOb25lOworCisgICAgdmlydHVhbHJvdXRlciA9IGNvbW1hbmQuc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoJ3ZpcnR1YWxyb3V0ZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGssCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhW3BrXSkKKyAgICBpZiBsZW4odmlydHVhbHJvdXRlcikgPT0gMDoKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgIGxvY2FsID0gWydjbGknLCAncmVzdCddCisgICAgaWYgJ29yaWdpbicgaW4gdmlydHVhbHJvdXRlclswXSBhbmQgbm90IHZpcnR1YWxyb3V0ZXJbMF1bJ29yaWdpbiddIGluIGxvY2FsOgorICAgICAgICByZXR1cm4gdmlydHVhbHJvdXRlclswXVsnb3JpZ2luJ10KKyAgICByZXR1cm4gTm9uZQorCitkZWYgdmlydHVhbHJvdXRlcl93YXJuX2V4dGVybmFsX2NvbmZpZyhkYXRhKToKKyAgICAiIiIKKyAgICBGcm9tIHRoZSBuYW1lZCB2aXJ0dWFscm91dGVyLCBsb29rIHVwIHRoZSBlbnRyeSwgaWYgaXQgZXhpc3RzIGluIHRoZQorICAgIGRhdGFiYXNlLCB2YWxpZGF0ZSB0aGUgJ29yaWdpbicgaXMgZWl0aGVyIG51bGwsIG9yICdjbGknLAorICAgIG90aGVyd2lzZSBwcm92aWRlIGEgd2FybmluZyBhYm91dCB0aGlzIHBhcnRpY3VsYXIgdmlydHVhbHJvdXRlcgorICAgIChhbG9uZyB3aXRoIHRoZSBvcmlnaW5hdG9yIG5hbWUpCisgICAgIiIiCisgICAgZXh0ZXJuYWxfb3JpZ2luID0gdmlydHVhbHJvdXRlcl9vcmlnaW5fZXh0ZXJuYWwoZGF0YSkKKyAgICBpZiBleHRlcm5hbF9vcmlnaW46CisgICAgICAgIGNvbW1hbmQuc2Ruc2gud2FybmluZygncm91dGVyICVzIG1heSBub3QgYmUgaW50ZW5kZWQgZm9yIGNsaSB1cGRhdGUsICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmlnaW4vY3JlYXRvciAiJXMiICcgJSAoZGF0YVsnaWQnXSwgZXh0ZXJuYWxfb3JpZ2luKSkKK2RlZiB2ZXJpZnlfcm91dGVyX2ludGZfaXAoZGF0YSk6CisgICAgaWYgZGF0YVsnaXAtYWRkcmVzcyddPT0nMC4wLjAuMCc6CisgICAgICAgIHJhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCIwLjAuMC4wIGlzIG5vdCBhIHZhbGlkIHJvdXRlciBpbnRlcmZhY2UgaXAgYWRkcmVzcyIpCisgICAgaWYgZGF0YVsnc3VibmV0LW1hc2snXT09JzI1NS4yNTUuMjU1LjI1NSc6CisgICAgICAgIHJhaXNlIGVycm9yLkFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKCIwLjAuMC4wIGlzIG5vdCBhIHZhbGlkIHJvdXRlciBpbnRlcmZhY2UgaXAgc3VibmV0IG1hc2siKQorCitkZWYgdmVyaWZ5X3JvdXRlcl9nd19pcChkYXRhKToKKyAgICBpZiBkYXRhWydpcC1hZGRyZXNzJ109PScwLjAuMC4wJzoKKyAgICAgICAgcmFpc2UgZXJyb3IuQXJndW1lbnRWYWxpZGF0aW9uRXJyb3IoIjAuMC4wLjAgaXMgbm90IGEgdmFsaWQgcm91dGVyIGludGVyZmFjZSBpcCBhZGRyZXNzIikKKworZGVmIHZpcnR1YWxyb3V0ZXJfcHJlcHJvY2VzcyhkYXRhKToKKyAgICBjdXJyZW50X21vZGU9Y29tbWFuZC5zZG5zaC5jdXJyZW50X21vZGUoKQorICAgIGlmIGN1cnJlbnRfbW9kZS5zdGFydHN3aXRoKCdjb25maWctdGVuYW50Jyk6CisgICAgICAgIGZvciB4IGluIGNvbW1hbmQuc2Ruc2gubW9kZV9zdGFjazoKKyAgICAgICAgICAgIGlmIHhbJ21vZGVfbmFtZSddID09ICdjb25maWctdGVuYW50JzoKKyAgICAgICAgICAgICAgICB0ZW5hbnQgPSB4WydvYmonXQorICAgIGlmIGN1cnJlbnRfbW9kZS5zdGFydHN3aXRoKCdjb25maWctdGVuYW50LXJvdXRlcicpOgorICAgICAgICBmb3IgeCBpbiBjb21tYW5kLnNkbnNoLm1vZGVfc3RhY2s6CisgICAgICAgICAgICBpZiB4Wydtb2RlX25hbWUnXSA9PSAnY29uZmlnLXRlbmFudC1yb3V0ZXInOgorICAgICAgICAgICAgICAgIGRhdGFbJ3ZpcnR1YWwtcm91dGVyJ10gPSB4WydvYmonXQorICAgIGlmICdvdXRnb2luZy1pbnRmJyBpbiBkYXRhOgorICAgICAgICBjdXJyZW50X29iaj1jb21tYW5kLnNkbnNoLmdldF9jdXJyZW50X21vZGVfb2JqKCkKKyAgICAgICAgaWYgY3VycmVudF9tb2RlLnN0YXJ0c3dpdGgoJ2NvbmZpZy10ZW5hbnQtcm91dGVyLWludGYnKSBvciBjdXJyZW50X21vZGUuc3RhcnRzd2l0aCgnY29uZmlnLXRlbmFudC1yb3V0ZXItZ3cnKToKKyAgICAgICAgICAgIGZvciB4IGluIGNvbW1hbmQuc2Ruc2gubW9kZV9zdGFjazoKKyAgICAgICAgICAgICAgICBpZiB4Wydtb2RlX25hbWUnXSA9PSAnY29uZmlnLXRlbmFudC1yb3V0ZXInOgorICAgICAgICAgICAgICAgICAgICBjdXJyZW50X29iaiA9IHhbJ29iaiddCisgICAgICAgIGRhdGFbJ291dGdvaW5nLWludGYnXT1jdXJyZW50X29iaisnfCcrZGF0YVsnb3V0Z29pbmctaW50ZiddCisgICAgaWYgJ2dhdGV3YXktcG9vbCcgaW4gZGF0YToKKyAgICAgICAgY3VycmVudF9vYmo9Y29tbWFuZC5zZG5zaC5nZXRfY3VycmVudF9tb2RlX29iaigpCisgICAgICAgIGlmIGN1cnJlbnRfbW9kZS5zdGFydHN3aXRoKCdjb25maWctdGVuYW50LXJvdXRlci1pbnRmJykgb3IgY3VycmVudF9tb2RlLnN0YXJ0c3dpdGgoJ2NvbmZpZy10ZW5hbnQtcm91dGVyLWd3Jyk6CisgICAgICAgICAgICBmb3IgeCBpbiBjb21tYW5kLnNkbnNoLm1vZGVfc3RhY2s6CisgICAgICAgICAgICAgICAgaWYgeFsnbW9kZV9uYW1lJ10gPT0gJ2NvbmZpZy10ZW5hbnQtcm91dGVyJzoKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudF9vYmogPSB4WydvYmonXQorICAgICAgICBkYXRhWydnYXRld2F5LXBvb2wnXT1jdXJyZW50X29iaisnfCcrZGF0YVsnZ2F0ZXdheS1wb29sJ10KKyAgICBpZiAnc3JjLXZucycgaW4gZGF0YToKKyAgICAgICAgaWYgbm90J3NyYy10ZW5hbnQnIGluIGRhdGE6CisgICAgICAgICAgICBkYXRhWydzcmMtdGVuYW50J109dGVuYW50CisgICAgICAgIGRhdGFbJ3NyYy12bnMnXT0gZGF0YVsnc3JjLXRlbmFudCddICsgJ3wnICsgZGF0YSBbJ3NyYy12bnMnXQorICAgIGlmICdkc3Qtdm5zJyBpbiBkYXRhOgorICAgICAgICBpZiBub3QgJ2RzdC10ZW5hbnQnIGluIGRhdGE6CisgICAgICAgICAgICBkYXRhWydkc3QtdGVuYW50J109dGVuYW50CisgICAgICAgIGRhdGFbJ2RzdC12bnMnXT0gZGF0YVsnZHN0LXRlbmFudCddICsgJ3wnICsgZGF0YSBbJ2RzdC12bnMnXQorICAgIGlmICd2bnMtY29ubmVjdGVkJyBpbiBkYXRhOgorICAgICAgICBkYXRhWyd2bnMtY29ubmVjdGVkJ109dGVuYW50Kyd8JytkYXRhWyd2bnMtY29ubmVjdGVkJ10KKyAgICBpZiAncm91dGVyLWNvbm5lY3RlZC10ZW5hbnQnIGluIGRhdGE6CisgICAgICAgIGlmIHRlbmFudCAhPSdzeXN0ZW0nIGFuZCBkYXRhWydyb3V0ZXItY29ubmVjdGVkLXRlbmFudCddIT0nc3lzdGVtJzoKKyAgICAgICAgICAgIGNvbW1hbmQuc2Ruc2gud2FybmluZygnVGVuYW50IHJvdXRlciBpbnRlcmZhY2UgY2FuIG9ubHkgY29ubmVjdGVkIHRvIHN5c3RlbSB0ZW5hbnQgcm91dGVyXG4nKQorICAgICAgICBkYXRhWydyb3V0ZXItY29ubmVjdGVkJ109IGRhdGFbJ3JvdXRlci1jb25uZWN0ZWQtdGVuYW50J10gKyd8JysgZGF0YVsncm91dGVyLWNvbm5lY3RlZCddCisgICAgICAgIGRlbCBkYXRhWydyb3V0ZXItY29ubmVjdGVkLXRlbmFudCddCisKK2NvbW1hbmQuYWRkX2FjdGlvbigndmlydHVhbHJvdXRlci13YXJuLWV4dGVybmFsLWNvbmZpZycsIHZpcnR1YWxyb3V0ZXJfd2Fybl9leHRlcm5hbF9jb25maWcsCisgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydkYXRhJyAgICAgIDogJyRkYXRhJyx9fSkKK2NvbW1hbmQuYWRkX2FjdGlvbigndmlydHVhbHJvdXRlci1wcmVwcm9jZXNzJywgdmlydHVhbHJvdXRlcl9wcmVwcm9jZXNzLAorICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnZGF0YScgICAgICA6ICckZGF0YScsfX0pCitjb21tYW5kLmFkZF9hY3Rpb24oJ3ZlcmlmeS1yb3V0ZXItaW50Zi1pcCcsIHZlcmlmeV9yb3V0ZXJfaW50Zl9pcCwKKyAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J2RhdGEnICAgICAgOiAnJGRhdGEnLH19KQorY29tbWFuZC5hZGRfYWN0aW9uKCd2ZXJpZnktcm91dGVyLWd3LWlwJywgdmVyaWZ5X3JvdXRlcl9nd19pcCwKKyAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J2RhdGEnICAgICAgOiAnJGRhdGEnLH19KQorCisKK2RlZiBjb21wbGV0ZV92aXJ0dWFscm91dGVyX3ByZXByb2Nlc3MoZGF0YSk6CisgICAgb2JqX2lkID0gY29tbWFuZC5zZG5zaC5nZXRfY3VycmVudF9tb2RlX29iaigpCisgICAgaWYgJ3wnIGluIG9ial9pZDoKKyAgICAgICAgcGFydHM9b2JqX2lkLnNwbGl0KCd8JykKKyAgICAgICAgZGF0YVsndGVuYW50J109cGFydHNbMF0KKyAgICAgICAgZGF0YVsndmlydHVhbC1yb3V0ZXInXT1wYXJ0c1swXSsnfCcgKyBwYXJ0c1sxXQorICAgIGVsc2U6CisgICAgICAgIGRhdGFbJ3RlbmFudCddPW9ial9pZAorICAgICAgICBpZiAndnJuYW1lJyBpbiBkYXRhOgorICAgICAgICAgICAgZGF0YVsndmlydHVhbC1yb3V0ZXInXT1vYmpfaWQrJ3wnK2RhdGFbJ3ZybmFtZSddCisgICAgaWYgJ3JvdXRlci1jb25uZWN0ZWQtdGVuYW50JyBpbiBkYXRhOgorICAgICAgICBkYXRhWyd0ZW5hbnQnXSA9IGRhdGFbJ3JvdXRlci1jb25uZWN0ZWQtdGVuYW50J10KKyAgICBpZiAnc3JjLXRlbmFudCcgaW4gZGF0YToKKyAgICAgICAgZGF0YVsndGVuYW50J109ZGF0YVsnc3JjLXRlbmFudCddCisgICAgaWYgJ2RzdC10ZW5hbnQnIGluIGRhdGE6CisgICAgICAgIGRhdGFbJ3RlbmFudCddPWRhdGFbJ2RzdC10ZW5hbnQnXQorCitkZWYgY29tcGxldGVfdmlydHVhbHJvdXRlcl9wb3N0cHJvY2VzcyhkYXRhLGNvbXBsZXRpb25zKToKKyAgICBvYmpfaWQgPSBjb21tYW5kLnNkbnNoLmdldF9jdXJyZW50X21vZGVfb2JqKCkKKyAgICBwYXJ0cz1vYmpfaWQuc3BsaXQoJ3wnKQorICAgIHRlbmFudD1wYXJ0c1swXQorICAgIGlmIHRlbmFudCAhPSdzeXN0ZW0nOiAjbm9uLXN5c3RlbSB2aXJ0dWFsIHJvdXRlciBjYW4gb25seSBjb25uZWN0ZWQgdG8gc3lzdGVtIHZpcnR1YWwgcm91dGVyCisgICAgICAgIGNvbXBsZXRpb25zLmNsZWFyKCkKKyAgICAgICAgY29tcGxldGlvbnNbJ3N5c3RlbSAnXT0nVGVuYW50IFNlbGVjdGlvbicKKyAgICBlbHNlOiAjIHN5c3RlbSB2aXJ0dWFsIHJvdXRlciBjYW4ndCBjb25uZWN0IHRvIGl0c2VsZgorICAgICAgICBpZiAnc3lzdGVtICcgaW4gY29tcGxldGlvbnM6CisgICAgICAgICAgICBkZWwgY29tcGxldGlvbnNbJ3N5c3RlbSAnXQorCitjb21tYW5kLmFkZF9jb21wbGV0aW9uKCdjb21wbGV0ZS12aXJ0dWFscm91dGVyLXBvc3Rwcm9jZXNzJywgY29tcGxldGVfdmlydHVhbHJvdXRlcl9wb3N0cHJvY2VzcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydkYXRhJzogJyRkYXRhJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9ucycgIDogJyRjb21wbGV0aW9ucycsfX0pCitjb21tYW5kLmFkZF9jb21wbGV0aW9uKCdjb21wbGV0ZS12aXJ0dWFscm91dGVyLXByZXByb2Nlc3MnLCBjb21wbGV0ZV92aXJ0dWFscm91dGVyX3ByZXByb2Nlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnZGF0YSc6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSkKKworZGVmIHZpcnR1YWxyb3V0ZXJfY29uZmlybV9leHRlcm5hbF9kZWxldGUoZGF0YSk6CisgICAgIiIiCisgICAgRnJvbSB0aGUgbmFtZWQgdmlydHVhbHJvdXRlciwgbG9vayB1cCB0aGUgZW50cnksIGlmIGl0IGV4aXN0cyBpbiB0aGUKKyAgICBkYXRhYmFzZSwgdmFsaWRhdGUgdGhlICdvcmlnaW4nIGlzIGVpdGhlciBudWxsLCBvciAnY2xpJywKKyAgICBvdGhlcndpc2UgcHJvdmlkZSBhIHdhcm5pbmcgYWJvdXQgdGhpcyBwYXJ0aWN1bGFyIHZpcnR1YWxyb3V0ZXIKKyAgICAoYWxvbmcgd2l0aCB0aGUgb3JpZ2luYXRvciBuYW1lKQorICAgICIiIgorICAgIGV4dGVybmFsX29yaWdpbiA9IHZpcnR1YWxyb3V0ZXJfb3JpZ2luX2V4dGVybmFsKGRhdGEpCisgICAgaWYgZXh0ZXJuYWxfb3JpZ2luOgorICAgICAgICBjb25maXJtID0gY29tbWFuZC5hY3Rpb25fcmVnaXN0cnlbJ2NvbmZpcm0nXVswXSAjIFhYWCBhY2Nlc3Nvcj8KKyAgICAgICAgY29uZmlybSgndmlydHVhbCByb3V0ZXIgJXMgbWF5IG5vdCBiZSBpbnRlbmRlZCBmb3IgY2xpIGRlbGV0ZSwgJworICAgICAgICAgICAgICAgICdvcmlnaW4vY3JlYXRvciAiJXMiXG5FbnRlciB5IG9yIHllcyB0byBjb250aW51ZSBkZWxldGU6ICcKKyAgICAgICAgICAgICAgICAlIChkYXRhWydpZCddLCBleHRlcm5hbF9vcmlnaW4pKQorCitjb21tYW5kLmFkZF9hY3Rpb24oJ3ZpcnR1YWxyb3V0ZXItY29uZmlybS1leHRlcm5hbC1kZWxldGUnLCB2aXJ0dWFscm91dGVyX2NvbmZpcm1fZXh0ZXJuYWxfZGVsZXRlLAorICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnZGF0YScgICAgICA6ICckZGF0YScsfX0pCisKKyIiIgorIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIHJvdXRlciBzdWJtb2RlIGNvbW1hbmRzCisjCitWUk9VVEVSX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAncm91dGVyJywKKyAgICAnaGVscCcgICAgICAgICA6ICdFbnRlciB2aXJ0dWFsIHJvdXRlciBkZWZpbml0aW9uIHN1Ym1vZGUnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy10ZW5hbnQqJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWctc3VibW9kZScsCisgICAgJ29iai10eXBlJyAgICAgOiAndmlydHVhbHJvdXRlcicsCisgICAgJ3N1Ym1vZGUtbmFtZScgOiAnY29uZmlnLXRlbmFudC1yb3V0ZXInLAorICAgICdmZWF0dXJlJyAgICAgIDogJ3ZucycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnRW50ZXIgdmlydHVhbCByb3V0ZXIgZGVmaW5pdGlvbiBzdWJtb2RlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dGVuYW50LXZyb3V0ZXInLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Zuc3x0ZW5hbnQtdnJvdXRlci1leGFtcGxlJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3ZybmFtZScsCisgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAnc2NvcGVkJyAgICAgICA6ICBUcnVlLAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyAgOiAnRW50ZXIgYSByb3V0ZXIgbmFtZScsCisgICAgICAgICAgICAnYWN0aW9uJyAgICAgICA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICd2aXJ0dWFscm91dGVyLXdhcm4tZXh0ZXJuYWwtY29uZmlnJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsgICAncHJvYycgOiAndGVuYW50LXNob3ctcHJlcHJvY2VzcycKKyAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICdwdXNoLW1vZGUtc3RhY2snLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApLAorICAgICAgICAgICAgJ25vLWFjdGlvbicgICAgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAndmlydHVhbHJvdXRlci1jb25maXJtLWV4dGVybmFsLWRlbGV0ZScsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnIDogJ3RlbmFudC1zaG93LXByZXByb2Nlc3MnCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICdkZWxldGUtb2JqZWN0cycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICkKKyAgICAgICAgfQorICAgICksCit9CisKK3ZpcnR1YWxyb3V0ZXJfc2hvd19hY3Rpb24gPSAoCisgICAgeyAgICdwcm9jJyAgICAgOiAndGVuYW50LXNob3ctcHJlcHJvY2Vzcyd9LAorICAgIHsKKyAgICAgICAgJ3Byb2MnICAgICA6ICdxdWVyeS10YWJsZScsCisgICAgfSwKKyAgICB7CisgICAgICAgICdwcm9jJyAgICAgOiAnZGlzcGxheScsCisgICAgICAgICdmb3JtYXQnICAgOiAndmlydHVhbHJvdXRlcicsCisgICAgfSwKKykKKworVklSVFVBTFJPVVRFUl9TSE9XX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ29iai10eXBlJyAgICAgOiAndmlydHVhbHJvdXRlcicsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXRlbmFudConLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdhY3Rpb24nICAgICAgIDogIHZpcnR1YWxyb3V0ZXJfc2hvd19hY3Rpb24sCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyBzcGVjaWZpYyB2aXJ0dWFsIHJvdXRlciwgaWRlbnRpZmllZCBieSBuYW1lJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8c2hvdy10ZW5hbnQtaWQtcm91dGVyJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8c2hvdy10ZW5hbnQtaWQtcm91dGVyLWV4YW1wbGUnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAncm91dGVyJywKKyAgICAgICAgICAgICAgICAgICAgKQorfQorCitWSVJUVUFMUk9VVEVSX1NIT1dfSURfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd2aXJ0dWFscm91dGVyJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50KicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisgICAgJ2FjdGlvbicgICAgICAgOiAgdmlydHVhbHJvdXRlcl9zaG93X2FjdGlvbiwKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTaG93IHNwZWNpZmljIHZpcnR1YWwgcm91dGVyLCBpZGVudGlmaWVkIGJ5IG5hbWUnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3xzaG93LXRlbmFudC12cm91dGVyLWlkJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8c2hvdy10ZW5hbnQtdnJvdXRlci1pZC1leGFtcGxlJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ3JvdXRlcicsCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICd2cm5hbWUnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAnaGVscC1uYW1lJyAgOiAidmlydHVhbHJvdXRlci1pZCIsCisgICAgICAgICAgICAnc2NvcGVkJyAgICAgOiBUcnVlLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwnICA6IFRydWUsCisgICAgICAgICAgICAnY2hvaWNlcycgICA6ICgKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAndG9rZW4nICAgICA6ICdpcC1hZGRyZXNzLXBvb2wnLAorICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ2ludGVyZmFjZS1hZGRyZXNzLXBvb2wnLAorICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ3Zuc3xzaG93LXRlbmFudC1pZC1yb3V0ZXItaXBwb29sJywKKyAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAncHJvYycgICAgIDogJ3RlbmFudC1zaG93LXByZXByb2Nlc3MnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAncHJvYycgICAgIDogJ3F1ZXJ5LXRhYmxlJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnICAgICA6ICdkaXNwbGF5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0JyAgIDogJ2ludGVyZmFjZS1hZGRyZXNzLXBvb2wnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICdmaWVsZCcgIDogJ3JvdXRlJywKKyAgICAgICAgICAgICAgICd0eXBlJyAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgJ3ZhbHVlcycgOiAncm91dGUnLAorICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ3ZpcnR1YWxyb3V0ZXItcm91dGluZ3J1bGUnLAorICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ3Zuc3xzaG93LXRlbmFudC1pZC1yb3V0ZXItcm91dGUnLAorICAgICAgICAgICAgICAgJ2FjdGlvbicgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnICAgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnICAgICA6ICdxdWVyeS10YWJsZScsfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgICAgIDogJ2Rpc3BsYXknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXQnICAgOiAndmlydHVhbHJvdXRlci1yb3V0aW5ncnVsZSd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2ludGVyZmFjZXMnLAorICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAnaW50ZXJmYWNlcycsCisgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ3ZpcnR1YWxyb3V0ZXItaW50ZXJmYWNlJywKKyAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAndm5zfHNob3ctdGVuYW50LWlkLXJvdXRlci1pbnRlcmZhY2VzJywKKyAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnICAgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdwcm9jJyAgICAgOiAncXVlcnktdGFibGUnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnICAgICA6ICdkaXNwbGF5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCcgICA6ICd2aXJ0dWFscm91dGVyLWludGVyZmFjZSd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICdhcmdzJyA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ3ZyaW5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ3ZpcnR1YWxyb3V0ZXItaW50ZXJmYWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogWydjb21wbGV0ZS12aXJ0dWFscm91dGVyLXByZXByb2Nlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRlLWZyb20tYW5vdGhlciddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAndmlydHVhbHJvdXRlci1pbnRlcmZhY2V8dnJpbmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NvcGVkJyAgICAgOiAndmlydHVhbC1yb3V0ZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4cGxpY2l0JyAgIDogVHJ1ZSwgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdwcm9jJyAgICAgOiAndGVuYW50LXNob3ctcHJlcHJvY2Vzcyd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAncHJvYycgICAgIDogJ3F1ZXJ5LXRhYmxlJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdwcm9jJyAgICAgOiAnZGlzcGxheScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXQnICAgOiAndmlydHVhbHJvdXRlci1pbnRlcmZhY2UnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsnb3B0aW9uYWwnICAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgICAgIDogJ2lwLWFkZHJlc3MtcG9vbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ2ludGVyZmFjZS1hZGRyZXNzLXBvb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnICAgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdwcm9jJyAgICAgOiAncXVlcnktdGFibGUnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnICAgICA6ICdkaXNwbGF5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCcgICA6ICdpbnRlcmZhY2UtYWRkcmVzcy1wb29sJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAgCisgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICksICAgICAgIAorICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdnYXRld2F5LXBvb2xzJywKKyAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ2dhdGV3YXktcG9vbHMnLAorICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICA6ICd2aXJ0dWFscm91dGVyLWd3cG9vbCcsCisgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ3Zuc3xzaG93LXRlbmFudC1pZC1yb3V0ZXItZ3dwb29scycsCisgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdwcm9jJyAgICAgOiAndGVuYW50LXNob3ctcHJlcHJvY2Vzcyd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgICAncHJvYycgICAgIDogJ3F1ZXJ5LXRhYmxlJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdwcm9jJyAgICAgOiAnZGlzcGxheScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXQnICAgOiAndmlydHVhbHJvdXRlci1nd3Bvb2wnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAnYXJncycgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICd2cmd3bmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgOiAndmlydHVhbHJvdXRlci1nd3Bvb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiBbJ2NvbXBsZXRlLXZpcnR1YWxyb3V0ZXItcHJlcHJvY2VzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtZnJvbS1hbm90aGVyJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICd2aXJ0dWFscm91dGVyLWd3cG9vbHx2cmd3bmFtZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2NvcGVkJyAgICAgOiAndmlydHVhbC1yb3V0ZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2V4cGxpY2l0JyAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnICAgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdwcm9jJyAgICAgOiAncXVlcnktdGFibGUnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnICAgICA6ICdkaXNwbGF5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCcgICA6ICd2aXJ0dWFscm91dGVyLWd3cG9vbCd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeydvcHRpb25hbCcgICA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyAgICAgOiAnZ3ctYWRkcmVzcy1wb29sJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgOiAnZ2F0ZXdheS1hZGRyZXNzLXBvb2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnICAgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeyAgICdwcm9jJyAgICAgOiAncXVlcnktdGFibGUnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7ICAgJ3Byb2MnICAgICA6ICdkaXNwbGF5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCcgICA6ICdnYXRld2F5LWFkZHJlc3MtcG9vbCd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICksCisgICAgICAgICB9LAorICAgKQorfQorCitWSVJUVUFMUk9VVEVSX0RFRl9ERVNDUklQVElPTl9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ2Rlc2NyaXB0aW9uJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50LXJvdXRlcicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdQcm92aWRlIGRlc2NyaXB0aW9uIGZvciBhIHZpcnR1YWwgcm91dGVyIGluc3RhbmNlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dGVuYW50LXJvdXRlci1kZXNjcmlwdGlvbicsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndm5zfHRlbmFudC1yb3V0ZXItZGVzY3JpcHRpb24tZXhhbXBsZScsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgOiAnZGVzY3JpcHRpb24nLAorICAgICAgICAgICAgJ3R5cGUnICA6ICdzdHJpbmcnLAorICAgICAgICB9CisgICAgKSwKK30KKworCitWSVJUVUFMUk9VVEVSX0RFRl9PUklHSU5fQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdvcmlnaW4nLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy10ZW5hbnQtcm91dGVyJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0Rlc2NyaWJlIHZpcnR1YWwgcm91dGVyIG9yaWdpbicsCisgICAgJ2RvYycgICAgICAgICAgOiAndmlydHVhbHJvdXRlcnxvcmlnaW4nLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3ZpcnR1YWxyb3V0ZXJ8b3JpZ2luLWV4YW1wbGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgOiAnb3JpZ2luJywKKyAgICAgICAgICAgICd0eXBlJyAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAnYWN0aW9uJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICd2aXJ0dWFscm91dGVyLXdhcm4tZXh0ZXJuYWwtY29uZmlnJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3dyaXRlLWZpZWxkcycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgIH0sCisgICAgKSwKK30KKworVklSVFVBTFJPVVRFUl9JTlRGX0RFRl9PUklHSU5fQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdvcmlnaW4nLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy10ZW5hbnQtcm91dGVyLWludGYnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnRGVzY3JpYmUgdmlydHVhbCByb3V0ZXIgaW50ZXJmYWNlIG9yaWdpbicsCisgICAgJ2RvYycgICAgICAgICAgOiAndmlydHVhbHJvdXRlcnxvcmlnaW4nLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3ZpcnR1YWxyb3V0ZXJ8b3JpZ2luLWV4YW1wbGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgOiAnb3JpZ2luJywKKyAgICAgICAgICAgICd0eXBlJyAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAnYWN0aW9uJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICd2aXJ0dWFscm91dGVyLXdhcm4tZXh0ZXJuYWwtY29uZmlnJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3dyaXRlLWZpZWxkcycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgIH0sCisgICAgKSwKK30KKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIHJvdXRlciBpbnRlcmZhY2Ugc3VibW9kZSBjb21tYW5kcworIworVlJPVVRFUl9JTlRFUkZBQ0VfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdpbnRlcmZhY2UnLAorICAgICdoZWxwJyAgICAgICAgIDogJ0VudGVyIHZpcnR1YWwgcm91dGVyIGludGVyZmFjZSBkZWZpbml0aW9uIHN1Ym1vZGUnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy10ZW5hbnQtcm91dGVyKicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnLXN1Ym1vZGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ3ZpcnR1YWxyb3V0ZXItaW50ZXJmYWNlJywKKyAgICAnc3VibW9kZS1uYW1lJyA6ICdjb25maWctdGVuYW50LXJvdXRlci1pbnRmJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdFbnRlciB2aXJ0dWFsIHJvdXRlciBpbnRlcmZhY2UgZGVmaW5pdGlvbiBzdWJtb2RlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dGVuYW50LXJvdXRlci1pbnRlcmZhY2UnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Zuc3x0ZW5hbnQtcm91dGVyLWludGVyZmFjZS1leGFtcGxlJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3ZyaW5hbWUnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaWRlbnRpZmllcicsCisgICAgICAgICAgICAnc2NvcGVkJyAgICAgICA6ICd2aXJ0dWFsLXJvdXRlcicsCisgICAgICAgICAgICAnZXhwbGljaXQnICAgICA6IFRydWUsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICA6IFsgJ2NvbXBsZXRlLXZpcnR1YWxyb3V0ZXItcHJlcHJvY2VzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICd2aXJ0dWFscm91dGVyLWludGVyZmFjZXx2cmluYW1lJywKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgIDogJ0VudGVyIGEgcm91dGVyIGludGVyZmFjZSBuYW1lJywKKyAgICAgICAgICAgICdhY3Rpb24nICAgICAgIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3ZpcnR1YWxyb3V0ZXItcHJlcHJvY2VzcycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICdwdXNoLW1vZGUtc3RhY2snLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApLAorICAgICAgICAgICAgJ25vLWFjdGlvbicgICAgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAndmlydHVhbHJvdXRlci1wcmVwcm9jZXNzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ2RlbGV0ZS1vYmplY3RzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgICA6ICd2bnMnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8aW50ZXJmYWNlLXZucy1jb25uZWN0ZWQnLCAKKyAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6J3Zucy1jb25uZWN0ZWQnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiBbJ2NvbXBsZXRlLXZpcnR1YWxyb3V0ZXItcHJlcHJvY2VzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1mcm9tLWFub3RoZXInXSwKKyAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAndm5zLWRlZmluaXRpb258dm5zbmFtZScsCisgICAgICAgICAgICAgICAgICAgICdzeW50YXgtaGVscCcgIDogJ0VudGVyIGEgVk5TIHRvIGNvbm5lY3QnLAorICAgICAgICAgICAgICAgICAgICAnc2NvcGVkJyAgICAgICA6ICd0ZW5hbnQnLCAgCisgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgICAnZXhwbGljaXQnICAgICA6IFRydWUsICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICksCisgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAndG9rZW4nICAgICAgICA6ICd0ZW5hbnQnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8aW50ZXJmYWNlLXJvdXRlci1jb25uZWN0ZWQnLCAKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsgICAnZmllbGQnICAgICAgICA6J3JvdXRlci1jb25uZWN0ZWQtdGVuYW50JywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaWRlbnRpZmllcicsCisgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogWydjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtdmlydHVhbHJvdXRlci1wb3N0cHJvY2VzcyddLAorICAgICAgICAgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICd0ZW5hbnR8bmFtZScsCisgICAgICAgICAgICAgICAgICAgICdzeW50YXgtaGVscCcgIDogJ0VudGVyIGEgVGVuYW50IFJvdXRlciB0byBjb25uZWN0JywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOidyb3V0ZXItY29ubmVjdGVkJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaWRlbnRpZmllcicsCisgICAgICAgICAgICAgICAgICAgICdzY29wZWQnICAgICAgIDogJ3RlbmFudCcsCisgICAgICAgICAgICAgICAgICAgICdleHBsaWNpdCcgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiBbJ2NvbXBsZXRlLXZpcnR1YWxyb3V0ZXItcHJlcHJvY2VzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1mcm9tLWFub3RoZXInXSwKKyAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAndmlydHVhbHJvdXRlcnx2cm5hbWUnLAorICAgICAgICAgICAgICAgICAgICAnc3ludGF4LWhlbHAnICA6ICdFbnRlciBhIFRlbmFudCBSb3V0ZXIgdG8gY29ubmVjdCcsCisgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgKQorICAgICAgICApLAorICAgICAgICAgfSwKKyAgICAgICAgCisgICAgKSwKK30KKworVlJJX0RFRl9BQ1RJVkVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgIDogJ2FjdGl2ZScsCisgICAgJ21vZGUnICAgICAgICA6ICdjb25maWctdGVuYW50LXJvdXRlci1pbnRmJywKKyAgICAnc2hvcnQtaGVscCcgIDogJ1NldCBWaXJ0dWFsIFJvdXRlciBJbnRlcmZhY2UgYWN0aXZlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dGVuYW50LXJvdXRlci1hY3RpdmUnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Zuc3x0ZW5hbnQtcm91dGVyLWFjdGl2ZS1leGFtcGxlJywKKyAgICAnZG9jLWluY2x1ZGUnICA6IFsgJ2RlZmF1bHQnIF0sCisgICAgJ29iai10eXBlJyAgICAgOiAndmlydHVhbHJvdXRlci1pbnRlcmZhY2UnLAorICAgICdhcmdzJyA6ICgpLAorICAgICdhY3Rpb24nIDogKAorICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgOiAnd3JpdGUtZmllbGRzJywKKyAgICAgICAgICAgICdkYXRhJyA6IHsgJ2FjdGl2ZScgOiBUcnVlIH0sCisgICAgICAgICAgICAnc3ludGF4LWhlbHAnIDogJ21hcmsgdGhlIGludGVyZmFjZSBhcyBhY3RpdmUnLAorICAgICAgICB9CisgICAgKSwKKyAgICAnbm8tYWN0aW9uJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnIDogJ3dyaXRlLWZpZWxkcycsCisgICAgICAgICAgICAnZGF0YScgOiB7ICdhY3RpdmUnIDogRmFsc2UgfSwKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgOiAnbWFyayB0aGUgaW50ZXJmYWNlIGFzIGluYWN0aXZlJywKKyAgICAgICAgfQorICAgICkKK30KKworVlJJX0RFRl9JUF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgOiAnaXAnLAorICAgICdtb2RlJyAgICAgICAgOiAnY29uZmlnLXRlbmFudC1yb3V0ZXItaW50ZicsCisgICAgJ3Nob3J0LWhlbHAnICA6ICdTZXQgVmlydHVhbCBSb3V0ZXIgSW50ZXJmYWNlIElQIGFkZHJlc3MnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x0ZW5hbnQtcm91dGVyLWludGVyZmFjZWlwJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8dGVuYW50LXJvdXRlci1pbnRlcmZhY2VpcC1leGFtcGxlJywKKyAgICAnZG9jLWluY2x1ZGUnICA6IFsgJ2RlZmF1bHQnIF0sCisgICAgJ3BhcmVudC1maWVsZCcgOiAndmlydHVhbC1yb3V0ZXItaW50ZXJmYWNlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWctb2JqZWN0JywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdpbnRlcmZhY2UtYWRkcmVzcy1wb29sJywKKyAgICAnZGF0YScgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpcC1hZGRyZXNzJyAgICAgICA6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAnc3VibmV0LW1hc2snICAgICAgOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsgJ2Nob2ljZXMnOiAoCisgICAgICAgICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGQnIDogJ2lwLWFkZHJlc3MnLAorICAgICAgICAgICAgICAgICd0eXBlJyAgOiAnaXAtYWRkcmVzcy1ub3QtbWFzaycsCisgICAgICAgICAgICAgICAgJ2RvYycgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWlwLWFuZC1tYXNrLWlwJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnc3VibmV0LW1hc2snLAorICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ25ldG1hc2snLAorICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2NvbnZlcnQtaW52ZXJzZS1uZXRtYXNrJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWlwLWFuZC1tYXNrLW1hc2snLAorICAgICAgICAgICAgfSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2lwLWFkZHJlc3MnLAorICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2NpZHItcmFuZ2UnLAorICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgIDogJ3NyYy1jaWRyJywKKyAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdzcGxpdC1jaWRyLWRhdGEtaW52ZXJzZScsCisgICAgICAgICAgICAgICAgJ2Rlc3QtaXAnICAgICAgOiAnaXAtYWRkcmVzcycsCisgICAgICAgICAgICAgICAgJ2Rlc3QtbmV0bWFzaycgOiAnc3VibmV0LW1hc2snLAorICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x2bnMtYWNjZXNzLWxpc3QtY2lkci1yYW5nZScsCisgICAgICAgICAgICB9CisgICAgICAgICksCisgICAgICAgICAgICAgICkKKyAgICAgICAgIH0KKyAgICAgICAgKSwKKyAgICAnYWN0aW9uJyA6ICggICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnICAgIDogJ3ZlcmlmeS1yb3V0ZXItaW50Zi1pcCcKKyAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICd3cml0ZS1vYmplY3QnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICApLAorICAgICduby1hY3Rpb24nIDogKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAnZGVsZXRlLW9iamVjdHMnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICApLAorfQorCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgZ2F0ZXdheSBwb29sIHN1Ym1vZGUgY29tbWFuZHMKKyMKK1ZST1VURVJfR1dQT09MX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnZ2F0ZXdheS1wb29sJywKKyAgICAnaGVscCcgICAgICAgICA6ICdFbnRlciB2aXJ0dWFsIHJvdXRlciBnYXRld2F5IHBvb2wgc3VibW9kZScsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXRlbmFudC1yb3V0ZXIqJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWctc3VibW9kZScsCisgICAgJ29iai10eXBlJyAgICAgOiAndmlydHVhbHJvdXRlci1nd3Bvb2wnLAorICAgICdzdWJtb2RlLW5hbWUnIDogJ2NvbmZpZy10ZW5hbnQtcm91dGVyLWd3JywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdFbnRlciB2aXJ0dWFsIHJvdXRlciBnYXRld2F5IHBvb2wgZGVmaW5pdGlvbiBzdWJtb2RlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dGVuYW50LXJvdXRlci1nd3Bvb2wnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Zuc3x0ZW5hbnQtcm91dGVyLWd3cG9vbC1leGFtcGxlJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3ZyZ3duYW1lJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgJ3Njb3BlZCcgICAgICAgOiAndmlydHVhbC1yb3V0ZXInLAorICAgICAgICAgICAgJ2V4cGxpY2l0JyAgICAgOiBUcnVlLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiBbICdjb21wbGV0ZS12aXJ0dWFscm91dGVyLXByZXByb2Nlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAndmlydHVhbHJvdXRlci1nd3Bvb2x8dnJnd25hbWUnLAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyAgOiAnRW50ZXIgYSByb3V0ZXIgZ2F0ZXdheSBwb29sIG5hbWUnLAorICAgICAgICAgICAgJ2FjdGlvbicgICAgICAgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAndmlydHVhbHJvdXRlci1wcmVwcm9jZXNzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3B1c2gtbW9kZS1zdGFjaycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnbm8tYWN0aW9uJyAgICA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICd2aXJ0dWFscm91dGVyLXByZXByb2Nlc3MnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAnZGVsZXRlLW9iamVjdHMnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICApCisgICAgICAgIH0sCisgICAgKSwKK30KKworVlJHV19ERUZfSVBfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgIDogJ2lwJywKKyAgICAnbW9kZScgICAgICAgIDogJ2NvbmZpZy10ZW5hbnQtcm91dGVyLWd3JywKKyAgICAnc2hvcnQtaGVscCcgIDogJ0FkZCBJUCBhZGRyZXNzIHRvIHRoZSBnYXRld2F5IHBvb2wnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x0ZW5hbnQtcm91dGVyLWd3aXAnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Zuc3x0ZW5hbnQtcm91dGVyLWd3aXAtZXhhbXBsZScsCisgICAgJ2RvYy1pbmNsdWRlJyAgOiBbICdkZWZhdWx0JyBdLAorICAgICdwYXJlbnQtZmllbGQnIDogJ3ZpcnR1YWwtcm91dGVyLWd3cG9vbCcsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnLW9iamVjdCcsCisgICAgJ29iai10eXBlJyAgICAgOiAnZ2F0ZXdheS1hZGRyZXNzLXBvb2wnLAorICAgICdkYXRhJyAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgJ2lwLWFkZHJlc3MnICAgICAgIDogTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgJ2FyZ3MnIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnIDogJ2lwLWFkZHJlc3MnLAorICAgICAgICAgICAgJ3R5cGUnICA6ICdpcC1hZGRyZXNzLW5vdC1tYXNrJywKKyAgICAgICAgICAgICdkb2MnICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1pcC1hbmQtbWFzay1pcCcsCisgICAgICAgICAgICAnYWN0aW9uJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyAgICA6ICd2ZXJpZnktcm91dGVyLWd3LWlwJworICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAnd3JpdGUtb2JqZWN0JywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICduby1hY3Rpb24nIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ2RlbGV0ZS1vYmplY3RzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgKSwKKyAgICAgICAgIH0sCisgICAgKSwKK30KKworCitTVEFUSUNfQVJQX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICA6ICdhcnAnLAorICAgICdtb2RlJyAgICAgICAgOiAnY29uZmlnKicsCisgICAgJ3Nob3J0LWhlbHAnICA6ICdTZXQgU3RhdGljIEFSUCcsCisgICAgJ2RvYycgICAgICAgICAgOiAnc3RhdGljLWFycCcsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAnc3RhdGljLWFycC1leGFtcGxlJywKKyAgICAnZG9jLWluY2x1ZGUnICA6IFsgJ2RlZmF1bHQnIF0sCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICdzdGF0aWMtYXJwJywKKyAgICAnZGF0YScgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpcCcgICAgICAgOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgJ21hYycgICAgICA6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICB9LAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2ZpZWxkJyA6ICdpcCcsCisgICAgICAgICAgICAgICAgJ3R5cGUnICA6ICdpcC1hZGRyZXNzLW5vdC1tYXNrJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnbWFjJywKKyAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdtYWMtYWRkcmVzcycsCisgICAgICAgICAgICB9LAorCisgICAgICAgICksCisgICAgJ2FjdGlvbicgOiAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICd3cml0ZS1vYmplY3QnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICApLAorICAgICduby1hY3Rpb24nIDogKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAnZGVsZXRlLW9iamVjdHMnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICApLAorfQordGVuYW50X3Nob3dfYWN0aW9uID0gKAorICAgIHsKKyAgICAgICAgJ3Byb2MnICA6ICdxdWVyeS10YWJsZScsCisgICAgfSwKKyAgICB7CisgICAgICAgICdwcm9jJyAgIDogJ2Rpc3BsYXknLAorICAgICAgICAnZm9ybWF0JyA6ICdzdGF0aWNhcnAnLAorICAgIH0sCispCisKK1NUQVRJQ19BUlBfU0hPV19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2xvZ2luJywKKyAgICAnYWxsLWhlbHAnICAgICA6ICdTaG93IHN0YXRpYyBBUlAgZGV0YWlscycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyBhbGwgY29uZmlndXJlZCBzdGF0aWMgQVJQcycsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisgICAgJ29iai10eXBlJyAgICAgOiAnc3RhdGljLWFycCcsCisgICAgJ2RvYycgICAgICAgICAgOiAnc2hvdy1hcnAnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Nob3ctYXJwLWV4YW1wbGUnLAorICAgICdhY3Rpb24nICAgICAgIDogIHRlbmFudF9zaG93X2FjdGlvbiwKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ2FycCcsCisgICAgKQorfQorIworIyBGT1JNQVRTCitBUlBfRk9STUFUID0geworICAgICdzdGF0aWNhcnAnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyAgICAgOiBbICdJZHgnLCAnaXAnLCAnbWFjJ10sCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgJ2lwJyAgICAgICAgICAgICAgOiB7IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICdtYWMnICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgfQorICAgICAgICB9LAorfQorU1JDX0lQX01BVENIID0geworICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgOiAnc3JjLWlwJywKKyAgICAgICAgICAgICAgICAndHlwZScgIDogJ2lwLWFkZHJlc3Mtbm90LW1hc2snLAorICAgICAgICAgICAgICAgICdkb2MnICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1pcC1hbmQtbWFzay1pcCcsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3NyYy1pcC1tYXNrJywKKyAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICduZXRtYXNrJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWlwLWFuZC1tYXNrLW1hc2snLAorICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2NvbnZlcnQtaW52ZXJzZS1uZXRtYXNrJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGQnICAgIDogJ3NyYy1pcCcsCisgICAgICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdpcC1hZGRyZXNzLW5vdC1tYXNrJywKKyAgICAgICAgICAgICAgICAnZGF0YScgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzcmMtaXAtbWFzaycgOiAnMC4wLjAuMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2RvYycgICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWlwLW9ubHknLAorICAgICAgICAgICAgfSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3NyYy1pcCcsCisgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnY2lkci1yYW5nZScsCisgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgOiAnc3JjLWNpZHInLAorICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ3NwbGl0LWNpZHItZGF0YS1pbnZlcnNlJywKKyAgICAgICAgICAgICAgICAnZGVzdC1pcCcgICAgICA6ICdzcmMtaXAnLAorICAgICAgICAgICAgICAgICdkZXN0LW5ldG1hc2snIDogJ3NyYy1pcC1tYXNrJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWNpZHItcmFuZ2UnLAorICAgICAgICAgICAgfQorICAgICAgICApLAorICAgICAgICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAndG9rZW4nICA6ICdhbnknLAorICAgICAgICAgICAgICAgICdkYXRhJyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy1pcCcgICAgICA6ICcwLjAuMC4wJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzcmMtaXAtbWFzaycgOiAnMjU1LjI1NS4yNTUuMjU1JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2RvYycgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1pcC1hbnknLAorICAgICAgICAgICAgfQorICAgICAgICApLAorICAgICkKK30KKworRFNUX0lQX01BVENIID0geworICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgOiAnZHN0LWlwJywKKyAgICAgICAgICAgICAgICAndHlwZScgIDogJ2lwLWFkZHJlc3Mtbm90LW1hc2snLAorICAgICAgICAgICAgICAgICdkb2MnICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1pcC1hbmQtbWFzay1pcCcsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgOiAnZHN0LWlwLW1hc2snLAorICAgICAgICAgICAgICAgICd0eXBlJyAgOiAnbmV0bWFzaycsCisgICAgICAgICAgICAgICAgJ2RvYycgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWlwLWFuZC1tYXNrLW1hc2snLAorICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2NvbnZlcnQtaW52ZXJzZS1uZXRtYXNrJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGQnICAgIDogJ2RzdC1pcCcsCisgICAgICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdpcC1hZGRyZXNzLW5vdC1tYXNrJywKKyAgICAgICAgICAgICAgICAnZGF0YScgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHN0LWlwLW1hc2snIDogJzAuMC4wLjAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdkb2MnICAgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1pcC1vbmx5JywKKyAgICAgICAgICAgIH0sCisgICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdkc3QtaXAnLAorICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2NpZHItcmFuZ2UnLAorICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgIDogJ2RzdC1jaWRyJywKKyAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdzcGxpdC1jaWRyLWRhdGEtaW52ZXJzZScsCisgICAgICAgICAgICAgICAgJ2Rlc3QtaXAnICAgICAgOiAnZHN0LWlwJywKKyAgICAgICAgICAgICAgICAnZGVzdC1uZXRtYXNrJyA6ICdkc3QtaXAtbWFzaycsCisgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1jaWRyLXJhbmdlJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAndG9rZW4nICA6ICdhbnknLAorICAgICAgICAgICAgICAgICdkYXRhJyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RzdC1pcCcgICAgICA6ICcwLjAuMC4wJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkc3QtaXAtbWFzaycgOiAnMjU1LjI1NS4yNTUuMjU1JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2RvYycgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1pcC1hbnknLAorICAgICAgICAgICAgfQorICAgICAgICApLAorICAgICkKK30KKworUk9VVElOR19SVUxFX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAncm91dGUnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy10ZW5hbnQtcm91dGVyKicsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2V0IFJvdXRpbmcgUnVsZScsCisgICAgJ2RvYycgICAgICAgICAgOiAndm5zfHRlbmFudC1yb3V0ZXItcm91dGUnLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Zuc3x0ZW5hbnQtcm91dGVyLXJvdXRlLWV4YW1wbGUnLAorICAgICdkb2MtaW5jbHVkZScgIDogWyAnZGVmYXVsdCcgXSwKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWctb2JqZWN0JywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd2aXJ0dWFscm91dGVyLXJvdXRpbmdydWxlJywKKyAgICAnYXJncycgOiAoCisgICAgICAgICAgICB7J3Rva2VuJyAgICAgOiAnZnJvbScKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgJ2Nob2ljZXMnOiAoCisgICAgICAgICAgICAgICAgKHsndG9rZW4nICAgICAgICA6ICd0ZW5hbnQnfSwKKyAgICAgICAgICAgICAgICAgeydmaWVsZCcgICAgICAgIDogJ3NyYy10ZW5hbnQnLAorICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaWRlbnRpZmllcicsCisgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAndGVuYW50fG5hbWUnLAorICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgOiAnc291cmNlIHRlbmFudCcKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAgICAgICAgICAgICAgeyd0b2tlbicgICAgICAgIDogJ3ZucycsCisgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgeydmaWVsZCcgICAgICAgIDogJ3NyYy12bnMnLAorICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogWydjb21wbGV0ZS12aXJ0dWFscm91dGVyLXByZXByb2Nlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1mcm9tLWFub3RoZXInXSwKKyAgICAgICAgICAgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICd2bnMtZGVmaW5pdGlvbnx2bnNuYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgICA6ICdzb3VyY2UgVk5TJywKKyAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICh7J3Rva2VuJyAgICAgICAgOiAndm5zJywKKyAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgeydmaWVsZCcgICAgICAgIDogJ3NyYy12bnMnLAorICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaWRlbnRpZmllcicsCisgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAndm5zLWRlZmluaXRpb258dm5zbmFtZScsCisgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgICA6ICdzb3VyY2UgVk5TJywKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAoICBTUkNfSVBfTUFUQ0gsCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgIH0sICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgIHsndG9rZW4nICAgICAgICA6ICd0bycsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICdjaG9pY2VzJzogKAorICAgICAgICAgICAgICAgICh7J3Rva2VuJyAgICAgICAgOiAndGVuYW50J30sCisgICAgICAgICAgICAgICAgIHsnZmllbGQnICAgICAgICA6ICdkc3QtdGVuYW50JywKKyAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICAgICAgICdvdGhlcicgICAgICAgIDogJ3RlbmFudHxuYW1lJywKKyAgICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgIDogJ2Rlc3RpbmF0aW9uIHRlbmFudCcKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICAgICAgICAgICAgICAgeyd0b2tlbicgICAgICAgIDogJ3ZucycsCisgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgeydmaWVsZCcgICAgICAgIDogJ2RzdC12bnMnLAorICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogWydjb21wbGV0ZS12aXJ0dWFscm91dGVyLXByZXByb2Nlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1mcm9tLWFub3RoZXInXSwKKyAgICAgICAgICAgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICd2bnMtZGVmaW5pdGlvbnx2bnNuYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgICA6ICdkZXN0aW5hdGlvbiBWTlMnLAorICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICh7J3Rva2VuJyAgICAgICAgOiAndm5zJywKKyAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgeydmaWVsZCcgICAgICAgIDogJ2RzdC12bnMnLAorICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaWRlbnRpZmllcicsCisgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAndm5zLWRlZmluaXRpb258dm5zbmFtZScsCisgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgICA6ICdkZXN0aW5hdGlvbiBWTlMnLAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICggIERTVF9JUF9NQVRDSCwKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAnbmgtaXAnLAorICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgOiAnaXAtYWRkcmVzcy1ub3QtbWFzaycsCisgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJzogJ25leHQgaG9wIGlwIGFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWlwLW9ubHknLAorICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgIHsndG9rZW4nICAgICAgICA6ICdndy1wb29sJywKKyAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ2dhdGV3YXktcG9vbCcsCisgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgICAgICAgICAgICdzY29wZWQnICAgICAgIDogJ3ZpcnR1YWwtcm91dGVyJywKKyAgICAgICAgICAgICAgICAgICdleHBsaWNpdCcgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogWydjb21wbGV0ZS12aXJ0dWFscm91dGVyLXByZXByb2Nlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRlLWZyb20tYW5vdGhlciddLAorICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAndmlydHVhbHJvdXRlci1nd3Bvb2x8dnJnd25hbWUnLAorICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgOiAnZ2F0ZXdheSBwb29sIG5hbWUnLAorICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndm5zfGdhdGV3YXktcG9vbCcsCisgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ291dGdvaW5nLWludGYnLAorICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgICAgICAgJ3Njb3BlZCcgICAgICAgOiAndmlydHVhbC1yb3V0ZXInLAorICAgICAgICAgICAgICAnZXhwbGljaXQnICAgICA6IFRydWUsCisgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogWydjb21wbGV0ZS12aXJ0dWFscm91dGVyLXByZXByb2Nlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtZnJvbS1hbm90aGVyJ10sCisgICAgICAgICAgICAgICdvdGhlcicgICAgICAgIDogJ3ZpcnR1YWxyb3V0ZXItaW50ZXJmYWNlfHZyaW5hbWUnLAorICAgICAgICAgICAgICAnb3B0aW9uYWwnICAgICA6IFRydWUsCisgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgOiAnb3V0Z29pbmcgaW50ZXJmYWNlJywKKyAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndm5zfG91dGdvaW5nLWludGVyZmFjZScsCisgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7J2ZpZWxkJyAgICAgICAgIDogJ2FjdGlvbicsCisgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICd2YWx1ZXMnICAgICAgICA6ICgnZGVueScsICdwZXJtaXQnKSwKKyAgICAgICAgICAgICB9ICAgICAgICAgCisgICAgICAgICAgICApLCAKKyAgICAnYWN0aW9uJyA6ICgKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3ZpcnR1YWxyb3V0ZXItcHJlcHJvY2VzcycKKyAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICd3cml0ZS1vYmplY3QnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICApLAorICAgICduby1hY3Rpb24nIDogKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAndmlydHVhbHJvdXRlci1wcmVwcm9jZXNzJworICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ2RlbGV0ZS1vYmplY3RzJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgKSwKK30KKworIyBGT1JNQVRTCitWSVJUVUFMUk9VVEVSX0ZPUk1BVCA9IHsKKyAgICAndmlydHVhbHJvdXRlcicgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgICA6IFsgJ0lkeCcsICd0ZW5hbnQnLCAndnJuYW1lJywgJ2Rlc2NyaXB0aW9uJ10sCisgICAgICAgICAgICAnZGV0YWlscycgICAgIDogWyAnSWR4JywgJ3RlbmFudCcsICd2cm5hbWUnLCAnZGVzY3JpcHRpb24nXSwKKyAgICAgICAgICAgICdicmllZicgICAgICAgOiBbICdJZHgnLCAndGVuYW50JywgJ3ZybmFtZSddLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICd0ZW5hbnQnICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVGVuYW50IElEJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAndnJuYW1lJyAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAnZGVzY3JpcHRpb24nICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCAgICAgICAgICAKKyAgICAgICAgICAgfQorICAgICAgICB9LAorfQorVklSVFVBTFJPVVRFUl9JTlRFUkZBQ0VfRk9STUFUID0geworICAgICd2aXJ0dWFscm91dGVyLWludGVyZmFjZScgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgICA6IFsgJ0lkeCcsICd2aXJ0dWFsLXJvdXRlcicsICd2cmluYW1lJywgJ2FjdGl2ZScsICd2bnMtY29ubmVjdGVkJywncm91dGVyLWNvbm5lY3RlZCddLAorICAgICAgICAgICAgJ2RldGFpbHMnICAgICA6IFsgJ0lkeCcsICd2aXJ0dWFsLXJvdXRlcicsICd2cmluYW1lJywgJ2FjdGl2ZScsICd2bnMtY29ubmVjdGVkJywncm91dGVyLWNvbm5lY3RlZCddLAorICAgICAgICAgICAgJ2JyaWVmJyAgICAgICA6IFsgJ0lkeCcsICd2aXJ0dWFsLXJvdXRlcicsICd2cmluYW1lJywgJ2FjdGl2ZSddLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICd2aXJ0dWFsLXJvdXRlcicgICAgIDoge30sCisgICAgICAgICAgICd2cmluYW1lJyAgICAgICAgICAgIDoge30sCisgICAgICAgICAgICdhY3RpdmUnICAgICAgICAgICAgIDoge30sICAgCisgICAgICAgICAgICAndm5zLWNvbm5lY3RlZCcgICAgIDoge30sCisgICAgICAgICAgICAncm91dGVyLWNvbm5lY3RlZCcgIDoge30sICAgICAgIAorICAgICAgICAgICB9CisgICAgICAgIH0sCit9CitWSVJUVUFMUk9VVEVSX0dXUE9PTF9GT1JNQVQgPSB7CisgICAgJ3ZpcnR1YWxyb3V0ZXItZ3dwb29sJyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgICAgIDogWyAnSWR4JywgJ3ZpcnR1YWwtcm91dGVyJywgJ3ZyZ3duYW1lJ10sCisgICAgICAgICAgICAnZGV0YWlscycgICAgIDogWyAnSWR4JywgJ3ZpcnR1YWwtcm91dGVyJywgJ3ZyZ3duYW1lJ10sCisgICAgICAgICAgICAnYnJpZWYnICAgICAgIDogWyAnSWR4JywgJ3ZpcnR1YWwtcm91dGVyJywgJ3ZyZ3duYW1lJ10sCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgJ3ZpcnR1YWwtcm91dGVyJyAgICAgOiB7fSwKKyAgICAgICAgICAgJ3ZyZ3duYW1lJyAgICAgICAgICAgOiB7fSwKKyAgICAgICAgICAgfQorICAgICAgICB9LAorfQorR0FURVdBWV9BRERSRVNTX1BPT0xfRk9STUFUID0geworICAgICdnYXRld2F5LWFkZHJlc3MtcG9vbCcgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgICA6IFsgJ0lkeCcsICd2aXJ0dWFsLXJvdXRlci1nd3Bvb2wnLCAnaXAtYWRkcmVzcyddLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICd2aXJ0dWFsLXJvdXRlci1nd3Bvb2wnICAgICAgICA6IHsndmVyYm9zZS1uYW1lJyA6ICdWaXJ0dWFsIFJvdXRlciBHYXRld2F5IFBvb2wnLH0sCisgICAgICAgICAgICdpcC1hZGRyZXNzJyAgICAgICAgICAgICAgICAgICA6IHsndmVyYm9zZS1uYW1lJyA6ICdJUCBBZGRyZXNzJyx9LAorICAgICAgICAgICB9CisgICAgICAgIH0sCit9CitWSVJUVUFMUk9VVEVSX1JPVVRJTkdSVUxFX0ZPUk1BVCA9IHsKKyAgICAndmlydHVhbHJvdXRlci1yb3V0aW5ncnVsZScgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgICA6IFsgJ0lkeCcsICd2aXJ0dWFsLXJvdXRlcicsJ2FjdGlvbicsJ3NyYy10ZW5hbnQnLCdzcmMtdm5zJywnc3JjLWlwJywnc3JjLWlwLW1hc2snLCdkc3QtdGVuYW50JywnZHN0LXZucycsJ2RzdC1pcCcsJ2RzdC1pcC1tYXNrJywnbmgtaXAnLCdnYXRld2F5LXBvb2wnLCdvdXRnb2luZy1pbnRmJ10sCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgJ3ZpcnR1YWwtcm91dGVyJyAgICAgICA6IHt9LAorICAgICAgICAgICAnc3JjLXRlbmFudCcgICAgICAgICAgIDoge30sCisgICAgICAgICAgICdzcmMtdm5zJyAgICAgICAgICAgICAgOiB7fSwgICAKKyAgICAgICAgICAgJ3NyYy1pcCcgICAgICAgICAgICAgICA6IHt9LAorICAgICAgICAgICAnc3JjLWlwLW1hc2snICAgICAgICAgIDogeydmb3JtYXR0ZXInICAgIDogZm10Y252LmNvbnZlcnRfaW52ZXJzZV9uZXRtYXNrX2hhbmRsZXIsfSwKKyAgICAgICAgICAgJ2RzdC10ZW5hbnQnICAgICAgICAgICA6IHt9LCAgCisgICAgICAgICAgICdkc3Qtdm5zJyAgICAgICAgICAgICAgOiB7fSwgICAKKyAgICAgICAgICAgJ2RzdC1pcCcgICAgICAgICAgICAgICA6IHt9LAorICAgICAgICAgICAnZHN0LWlwLW1hc2snICAgICAgICAgIDogeydmb3JtYXR0ZXInICAgIDogZm10Y252LmNvbnZlcnRfaW52ZXJzZV9uZXRtYXNrX2hhbmRsZXIsfSwKKyAgICAgICAgICAgJ25oLWlwJyAgICAgICAgICAgICAgICA6IHt9LCAgCisgICAgICAgICAgICdnYXRld2F5LXBvb2wnICAgICAgICAgOiB7fSwKKyAgICAgICAgICAgJ291dGdvaW5nLWludGYnICAgICAgICA6IHt9LCAgCisgICAgICAgICAgICdhY3Rpb24nICAgICAgICAgICAgICAgOiB7fSwgICAgIAorICAgICAgICAgICB9CisgICAgICAgIH0sCit9CitJTlRFUkZBQ0VfQUREUkVTU19QT09MX0ZPUk1BVCA9IHsKKyAgICAnaW50ZXJmYWNlLWFkZHJlc3MtcG9vbCcgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgICA6IFsgJ0lkeCcsICd2aXJ0dWFsLXJvdXRlci1pbnRlcmZhY2UnLCAnaXAtYWRkcmVzcycsICdzdWJuZXQtbWFzayddLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICd2aXJ0dWFsLXJvdXRlci1pbnRlcmZhY2UnICAgICA6IHsndmVyYm9zZS1uYW1lJyA6ICdWaXJ0dWFsIFJvdXRlciBJbnRlcmZhY2UnLH0sCisgICAgICAgICAgICdpcC1hZGRyZXNzJyAgICAgICAgICAgICAgICAgICA6IHsndmVyYm9zZS1uYW1lJyA6ICdJUCBBZGRyZXNzJyx9LAorICAgICAgICAgICAnc3VibmV0LW1hc2snICAgICAgICAgICAgICAgICAgOiB7J2Zvcm1hdHRlcicgICAgOiBmbXRjbnYuY29udmVydF9pbnZlcnNlX25ldG1hc2tfaGFuZGxlcix9LAorICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisiIiIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL3ZpcnR1YWxyb3V0ZXJfbW9kZWwucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3ZpcnR1YWxyb3V0ZXJfbW9kZWwucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTk2Mjg3NAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdmlydHVhbHJvdXRlcl9tb2RlbC5weQpAQCAtMCwwICsxLDMwIEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworaW1wb3J0IGNvbW1hbmQKKworY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3ZpcnR1YWxyb3V0ZXInLCAnb3JpZ2luJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCd2aXJ0dWFscm91dGVyJywgJ3ZybmFtZScpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgndmlydHVhbHJvdXRlcicsICd0ZW5hbnQnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3ZpcnR1YWxyb3V0ZXInLCAnZGVzY3JpcHRpb24nKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3ZpcnR1YWxyb3V0ZXInLCAnYWN0aXZlJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCd2aXJ0dWFscm91dGVyLWludGVyZmFjZScsICdhY3RpdmUnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3ZpcnR1YWxyb3V0ZXItaW50ZXJmYWNlJywgJ3ZyaW5hbWUnKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3ZpcnR1YWxyb3V0ZXItaW50ZXJmYWNlJywgJ29yaWdpbicpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgndmlydHVhbHJvdXRlci1pbnRlcmZhY2UnLCAndm5zLWNvbm5lY3RlZCcpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgndmlydHVhbHJvdXRlci1pbnRlcmZhY2UnLCAncm91dGVyLWNvbm5lY3RlZCcpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfZWRpdCgndmlydHVhbHJvdXRlci1pbnRlcmZhY2UnLCAndmlydHVhbC1yb3V0ZXInKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3ZpcnR1YWxyb3V0ZXItZ3dwb29sJywgJ3ZyZ3duYW1lJykKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL3Zucy5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdm5zLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhlYTFmMTkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3Zucy5weQpAQCAtMCwwICsxLDE4OTIgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitpbXBvcnQgY29tbWFuZAoraW1wb3J0IGZtdGNudgorJycnCitkZWYgdm5zX29yaWdpbl9leHRlcm5hbChkYXRhKToKKyAgICAiIiIKKyAgICBSZXR1cm4gb3JpZ2luLW5hbWUgd2hlbiB0aGUgdm5zIHdhc24ndCBjcmVhdGVkIGJ5IHRoZSBjbGksCisgICAgcmV0dXJuIE5vbmUgb3RoZXJ3aXNlLgorICAgICIiIgorICAgIHBrID0gY29tbWFuZC5taS5waygndm5zLWRlZmluaXRpb24nKQorICAgIGlmIG5vdCBwayBpbiBkYXRhOgorICAgICAgICByZXR1cm47CisKKyAgICB2bnMgPSBjb21tYW5kLnNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKCd2bnMtZGVmaW5pdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbcGtdKQorICAgIGlmIGxlbih2bnMpID09IDA6CisgICAgICAgIHJldHVybiBOb25lCisKKyAgICBsb2NhbCA9IFsnY2xpJywgJ3Jlc3QnXQorICAgIGlmICdvcmlnaW4nIGluIHZuc1swXSBhbmQgbm90IHZuc1swXVsnb3JpZ2luJ10gaW4gbG9jYWw6CisgICAgICAgIHJldHVybiB2bnNbMF1bJ29yaWdpbiddCisgICAgcmV0dXJuIE5vbmUKKyAgICAKKworZGVmIHZuc193YXJuX2V4dGVybmFsX2NvbmZpZyhkYXRhKToKKyAgICAiIiIKKyAgICBGcm9tIHRoZSBuYW1lZCB2bnMsIGxvb2sgdXAgdGhlIGVudHJ5LCBpZiBpdCBleGlzdHMgaW4gdGhlCisgICAgZGF0YWJhc2UsIHZhbGlkYXRlIHRoZSAnb3JpZ2luJyBpcyBlaXRoZXIgbnVsbCwgb3IgJ2NsaScsCisgICAgb3RoZXJ3aXNlIHByb3ZpZGUgYSB3YXJuaW5nIGFib3V0IHRoaXMgcGFydGljdWxhciB2bnMKKyAgICAoYWxvbmcgd2l0aCB0aGUgb3JpZ2luYXRvciBuYW1lKQorICAgICIiIgorICAgIGV4dGVybmFsX29yaWdpbiA9IHZuc19vcmlnaW5fZXh0ZXJuYWwoZGF0YSkKKyAgICBpZiBleHRlcm5hbF9vcmlnaW46CisgICAgICAgIGNvbW1hbmQuc2Ruc2gud2FybmluZygndm5zICVzIG1heSBub3QgYmUgaW50ZW5kZWQgZm9yIGNsaSB1cGRhdGUsICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcmlnaW4vY3JlYXRvciAiJXMiICcgJSAoZGF0YVsnaWQnXSwgZXh0ZXJuYWxfb3JpZ2luKSkKKworY29tbWFuZC5hZGRfYWN0aW9uKCd2bnMtd2Fybi1leHRlcm5hbC1jb25maWcnLCB2bnNfd2Fybl9leHRlcm5hbF9jb25maWcsCisgICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJzogeydkYXRhJyAgICAgIDogJyRkYXRhJyx9fSkKKworZGVmIGNvbXBsZXRlX3RlbmFudG5hbWVfcHJlcHJvY2VzcyhkYXRhKToKKyAgICBkYXRhWyd0ZW5hbnQnXT0nZGVmYXVsdCcKKyAgICBpZiAnbmFtZScgaW4gZGF0YToKKyAgICAgICAgZGF0YVsndGVuYW50J109IGRhdGFbJ25hbWUnXQorICAgICAgICBkZWwgZGF0YVsnbmFtZSddCisgICAgZWxzZToKKyAgICAgICAgY3VycmVudF9tb2RlPWNvbW1hbmQuc2Ruc2guY3VycmVudF9tb2RlKCkKKyAgICAgICAgaWYgbm90IGN1cnJlbnRfbW9kZS5zdGFydHN3aXRoKCdjb25maWctdGVuYW50Jyk6CisgICAgICAgICAgICBkYXRhWyd0ZW5hbnQnXT0nZGVmYXVsdCcKKyAgICAgICAgaWYgY3VycmVudF9tb2RlLnN0YXJ0c3dpdGgoJ2NvbmZpZy10ZW5hbnQnKToKKyAgICAgICAgICAgIGZvciB4IGluIGNvbW1hbmQuc2Ruc2gubW9kZV9zdGFjazoKKyAgICAgICAgICAgICAgICBpZiB4Wydtb2RlX25hbWUnXSA9PSAnY29uZmlnLXRlbmFudCc6CisgICAgICAgICAgICAgICAgICAgIGRhdGFbJ3RlbmFudCddID0geFsnb2JqJ10KKworCitjb21tYW5kLmFkZF9jb21wbGV0aW9uKCdjb21wbGV0ZS10ZW5hbnRuYW1lLXByZXByb2Nlc3MnLCBjb21wbGV0ZV90ZW5hbnRuYW1lX3ByZXByb2Nlc3MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB7J2t3YXJncyc6IHsnZGF0YSc6ICckZGF0YScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fSkKKworZGVmIHZuc19jb25maXJtX2V4dGVybmFsX2RlbGV0ZShkYXRhKToKKyAgICAiIiIKKyAgICBGcm9tIHRoZSBuYW1lZCB2bnMsIGxvb2sgdXAgdGhlIGVudHJ5LCBpZiBpdCBleGlzdHMgaW4gdGhlCisgICAgZGF0YWJhc2UsIHZhbGlkYXRlIHRoZSAnb3JpZ2luJyBpcyBlaXRoZXIgbnVsbCwgb3IgJ2NsaScsCisgICAgb3RoZXJ3aXNlIHByb3ZpZGUgYSB3YXJuaW5nIGFib3V0IHRoaXMgcGFydGljdWxhciB2bnMKKyAgICAoYWxvbmcgd2l0aCB0aGUgb3JpZ2luYXRvciBuYW1lKQorICAgICIiIgorICAgIGV4dGVybmFsX29yaWdpbiA9IHZuc19vcmlnaW5fZXh0ZXJuYWwoZGF0YSkKKyAgICBpZiBleHRlcm5hbF9vcmlnaW46CisgICAgICAgIGNvbmZpcm0gPSBjb21tYW5kLmFjdGlvbl9yZWdpc3RyeVsnY29uZmlybSddWzBdICMgWFhYIGFjY2Vzc29yPworICAgICAgICBjb25maXJtKCd2bnMgJXMgbWF5IG5vdCBiZSBpbnRlbmRlZCBmb3IgY2xpIGRlbGV0ZSwgJworICAgICAgICAgICAgICAgICdvcmlnaW4vY3JlYXRvciAiJXMiXG5FbnRlciB5IG9yIHllcyB0byBjb250aW51ZSBkZWxldGU6ICcKKyAgICAgICAgICAgICAgICAlIChkYXRhWydpZCddLCBleHRlcm5hbF9vcmlnaW4pKQorCitjb21tYW5kLmFkZF9hY3Rpb24oJ3Zucy1jb25maXJtLWV4dGVybmFsLWRlbGV0ZScsIHZuc19jb25maXJtX2V4dGVybmFsX2RlbGV0ZSwKKyAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J2RhdGEnICAgICAgOiAnJGRhdGEnLH19KQorCitjb21tYW5kLmFkZF9hY3Rpb24oJ3Zucy1jb25maXJtLWV4dGVybmFsLWRlbGV0ZScsIHZuc19jb25maXJtX2V4dGVybmFsX2RlbGV0ZSwKKyAgICAgICAgICAgICAgICAgICAgeydrd2FyZ3MnOiB7J2RhdGEnICAgICAgOiAnJGRhdGEnLH19KQorJycnCisiIiIKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyB2bnMtZGVmaW5pdGlvbiBzdWJtb2RlIGNvbW1hbmRzCisjCisKKyMgbm90aWNlIHRoZSBzdWJtb2RlIGlzIGNhbGxlZCAnY29uZmlnLWRlZi12bnMnLCB0aGlzIHdhcworIyBjaGFuZ2VkIGZyb20gJ2NvbmZpZy12bnMtZGVmJyBzbyB0aGF0IHRoZSB2bnMgc3VibW9kZSwKKyMgd2hpY2ggaXMgY2FsbGVkICdjb25maWctdm5zJywgd291bGRuJ3QgYmUgYSBzdHJpbmctcHJlZml4CisjIHN1Ym1vZGUgb2YgY29uZmlnLXZucy4gIFZhcmlvdXMgY29tbWFuZCwgc3VjaCBhcyB0aGUgCisjIHZucy1zdWJtb2RlIGFjY2Vzcy1saXN0IGNvbW1hbmQgd2VyZSBzaG93aW5nIHVwIGluIHRoZQorIyB2bnMtZGVmaW5pdGlvbiBzdWJtb2RlIGR1ZSB0byB0aGlzIHByZWZpeGluZy4KKworVk5TX0RFRklOSVRJT05fQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICd2bnMtZGVmaW5pdGlvbicsCisgICAgJ2hlbHAnICAgICAgICAgOiAnRW50ZXIgVk5TIGRlZmluaXRpb24gc3VibW9kZScsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnKicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnLXN1Ym1vZGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ3Zucy1kZWZpbml0aW9uJywKKyAgICAnc3VibW9kZS1uYW1lJyA6ICdjb25maWctdGVuYW50LWRlZi12bnMnLAorICAgICdmZWF0dXJlJyAgICAgIDogJ3ZucycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnRW50ZXIgVk5TIGRlZmluaXRpb24gc3VibW9kZScsCisgICAgJ2RvYycgICAgICAgICAgOiAndm5zfHZucy1kZWZpbml0aW9uJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8dm5zLWRlZmluaXRpb24tZXhhbXBsZScsCisgICAgJ2FyZ3MnIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICd2bnNuYW1lJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nIDogWydjb21wbGV0ZS10ZW5hbnRuYW1lLXByZXByb2Nlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1vYmplY3QtZmllbGQnXSwKKyAgICAgICAgICAgICdvdGhlcicgICAgICA6ICd2bnMtZGVmaW5pdGlvbnx2bnNuYW1lJywKKyMgICAgICAgICAgICAnc2NvcGVkJyAgICAgOiAndGVuYW50JywKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgIDogJ0VudGVyIGEgdm5zIG5hbWUnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndm5zfHZucy1pZCcsCisgICAgICAgICAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8dm5zLWlkLWV4YW1wbGUnLAorICAgICAgICAgICAgJ2RvYy1pbmNsdWRlJyAgOiBbICd0eXBlLWRvYycgXSwKKyAgICAgICAgICAgICdhY3Rpb24nICAgICAgIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3Zucy13YXJuLWV4dGVybmFsLWNvbmZpZycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgJ3Byb2MnICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3B1c2gtbW9kZS1zdGFjaycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgICAgICAnbm8tYWN0aW9uJyAgICA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICd2bnMtY29uZmlybS1leHRlcm5hbC1kZWxldGUnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICdwcm9jJyAgOiAndGVuYW50LXNob3ctcHJlcHJvY2VzcycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICdkZWxldGUtb2JqZWN0cycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICkKKyAgICAgICAgfQorICAgICksCit9CisKK3Zuc19zaG93X2FjdGlvbiA9ICgKKyAgICB7CisgICAgICAgICdwcm9jJyAgOiAndGVuYW50LXNob3ctcHJlcHJvY2VzcycsCisgICAgIH0sCisgICAgeworICAgICAgICAncHJvYycgIDogJ3F1ZXJ5LXRhYmxlJywKKyAgICB9LAorICAgeworICAgICAgICAncHJvYycgICA6ICdkaXNwbGF5JywKKyAgICAgICAgJ2Zvcm1hdCcgOiAndm5zLWRlZmluaXRpb24nLAorICAgIH0sCispCisKK1ZOU19TSE9XX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdhbGwtaGVscCcgICAgIDogJ1Nob3cgVk5TIGRldGFpbHMnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgYWxsIGRlZmluZWQgVk5TcyBiZWxvbmcgdG8gY3VycmVudCB0ZW5hbnQnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ3Zucy1kZWZpbml0aW9uJywKKyAgICAnYWN0aW9uJyAgICAgICA6IHZuc19zaG93X2FjdGlvbiwKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8c2hvdycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndm5zfHNob3ctZXhhbXBsZScsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICd2bnMnLAorICAgICksCit9CitWTlNfU0hPV19JRF9DT01NQU5EX0RFU0NSSVBUSU9OID0geyAgICAgICAKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd2bnMtZGVmaW5pdGlvbicsCisgICAgJ21vZGUnICAgICAgICAgOiAnbG9naW4nLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdhY3Rpb24nICAgICAgIDogdm5zX3Nob3dfYWN0aW9uLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Nob3cgc3BlY2lmaWMgVk5TLCBpZGVudGlmaWVkIGJ5IG5hbWUnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3xzaG93LWlkJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8c2hvdy1pZC1leGFtcGxlJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ3ZucycsCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICd2bnNuYW1lJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2lkZW50aWZpZXInLAorIyAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyA6IFsnY29tcGxldGUtdGVuYW50bmFtZS1wcmVwcm9jZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1mcm9tLWFub3RoZXInXSwKKyAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgIDogJ3Zucy1kZWZpbml0aW9ufHZuc25hbWUnLAorICAgICAgICAgICAgICAgICAgICAnc2NvcGVkJyAgICAgOiAndGVuYW50JywKKyAgICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgIDogInZucy1pZCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ3Zuc25hbWUnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgOiAnYWxsJywKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICApLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgIDogJ2RldGFpbCcsCisgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICd0eXBlJyAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgIDogKCdkZXRhaWxzJywgJ2JyaWVmJyksCisgICAgICAgICAgICAnZG9jJyAgICAgIDogJ2Zvcm1hdHwrJywKKyAgICAgICAgfQorICAgICkKK30KKworVk5TX1NIT1dfSURfREVUQUlMU19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdvYmotdHlwZScgICAgIDogJ3Zucy1kZWZpbml0aW9uJywKKyAgICAnbW9kZScgICAgICAgICA6ICdsb2dpbicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnZGlzcGxheS10YWJsZScsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyBWTlMgYXNzb2NpYXRlZCBkZXRhaWxzIGJhc2VkIG9uIG5hbWUnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3xzaG93LWlkJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8c2hvdy1pZC1leGFtcGxlJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgJ3ZucycsCisgICAgICAgIHsKKyAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICd2bnNuYW1lJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgOiBbJ2NvbXBsZXRlLXRlbmFudG5hbWUtcHJlcHJvY2VzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtZnJvbS1hbm90aGVyJ10sCisgICAgICAgICAgICAgICAgICAgICdvdGhlcicgICAgICA6ICd2bnMtZGVmaW5pdGlvbnx2bnNuYW1lJywKKyAgICAgICAgICAgICAgICAgICAgJ3Njb3BlZCcgICAgIDogJ3RlbmFudCcsCisgICAgICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICA6ICJ2bnMtaWQiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICA6ICd2bnNuYW1lJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgIDogJ2FsbCcsCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgKSwKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ3Zucy1pbnRlcmZhY2UnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICdpbnRlcmZhY2VzJywKKyAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ3Zucy1pbnRlcmZhY2UnLAorICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAoeydwcm9jJyAgIDogJ3RlbmFudC1zaG93LXByZXByb2Nlc3MnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsZWdhY3ktY2xpJyksCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTaG93IFZOUyBhc3NvY2lhdGVkIGludGVyZmFjZXMnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnbWFjLWFkZHJlc3MtdGFibGUnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICdtYWMtYWRkcmVzcy10YWJsZScsCisgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICA6ICdob3N0LXZucy1pbnRlcmZhY2Utdm5zJywKKyAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogKHsncHJvYycgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGVnYWN5LWNsaScpLAorICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnU2hvdyBWTlMgYXNzb2NpYXRlZCBtYWMgYWRkcmVzc2VzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2ludGVyZmFjZS1ydWxlcycsCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ2ludGVyZmFjZS1ydWxlcycsCisgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICh7J3Byb2MnICAgOiAndGVuYW50LXNob3ctcHJlcHJvY2Vzcyd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXktdGFibGUnKSwKKyAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ3Zucy1pbnRlcmZhY2UtcnVsZScsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTaG93IFZOUyBjb25maWd1cmVkIGludGVyZmFjZXMtcnVsZXMnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAndm5zfHNob3ctaWQtaW50ZXJmYWNlLXJ1bGVzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2FjY2Vzcy1saXN0cycsCisgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ2FjY2Vzcy1saXN0cycsCisgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICh7J3Byb2MnICAgOiAndGVuYW50LXNob3ctcHJlcHJvY2Vzcyd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc3BsYXktdGFibGUnKSwKKyAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ3Zucy1hY2Nlc3MtbGlzdC1lbnRyeScsCisgICAgICAgICAgICAgICAgICAgICdkZXRhaWwnICAgICA6ICdhY2wtYnJpZWYnLAorICAgICAgICAgICAgICAgICAgICAnc2hvcnQtaGVscCcgOiAnU2hvdyBWTlMgY29uZmlndXJlZCBhY2Nlc3MtbGlzdHMnLAorICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAndm5zfHNob3ctaWQtYWNjZXNzLWxpc3RzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ3J1bm5pbmctY29uZmlnJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAncnVubmluZy1jb25maWcnLAorICAgICAgICAgICAgICAgICAgICAnYWN0aW9uJyAgICAgOiAoeydwcm9jJyAgIDogJ3RlbmFudC1zaG93LXByZXByb2Nlc3MnfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsZWdhY3ktY2xpJyksCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTaG93IFZOUyBydW5uaW5nLWNvbmZpZycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdsZWdhY3ktY2xpJywKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAnc3dpdGNoJywKKyAgICAgICAgICAgICAgICAgICAgJ2FjdGlvbicgICAgIDogKHsncHJvYycgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGVnYWN5LWNsaScpLAorICAgICAgICAgICAgICAgICAgICAnb2JqLXR5cGUnICAgOiAndm5zLXN3aXRjaC1wb3J0cycsCisgICAgICAgICAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdTaG93IFZOUyBhc3NvY2lhdGVkIHN3aXRjaGVzJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ2xlZ2FjeS1jbGknLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ2Zsb3cnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ29iai10eXBlJyAgIDogJ3Zucy1mbG93JywKKyAgICAgICAgICAgICAgICAgICAgICAgICdhY3Rpb24nICAgICA6ICh7J3Byb2MnICAgOiAndGVuYW50LXNob3ctcHJlcHJvY2Vzcyd9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGVnYWN5LWNsaScpLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ1Nob3cgVk5TIGFzc29jaWF0ZWQgZmxvd3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ3Zuc3xzaG93LWlkLWZsb3cnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgOiAnZGV0YWlsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICgnYnJpZWYnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmdWxsLWRldGFpbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RldGFpbHMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzdW1tYXJ5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnICAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0RldGFpbCBsZXZlbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAnZm9ybWF0fCsnCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgIH0KKyAgICApLAorfQorCitIT1NUX1ZOU19JTlRFUkZBQ0VfVk5TX0ZPUk1BVCA9IHsKKyAgICAnaG9zdC12bnMtaW50ZXJmYWNlLXZucycgOiB7ICMgd2l0aCB2bnMga25vdywgbm8gdm5zIGNvbHVtbgorICAgICAgICAnc291cmNlJyAgICAgICAgICA6ICdvbmx5IGRpc3BsYXknLAorCisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgIDogWyAnSWR4JywgJ3RlbmFudCcsICd2bnMnLCAnYWRkcmVzcy1zcGFjZScsICdob3N0JywgJ3ZsYW4nLCAnaXBzJywgJ2F0dGFjaG1lbnQtcG9pbnRzJywgJ2xhc3Qtc2VlbicgXSwKKyAgICAgICAgICAgICd2bnMnICAgICAgICA6IFsgJ0lkeCcsICAgICAgICAnYWRkcmVzcy1zcGFjZScsICdob3N0JywgJ3ZsYW4nLCAnaXBzJywgJ2F0dGFjaG1lbnQtcG9pbnRzJywgJ2xhc3Qtc2VlbicgXSwKKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAgJ0lkeCcgICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnIycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdob3N0JyAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ01BQyBBZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X2hvc3RfYW5kX2FsaWFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYWRkcmVzcy1zcGFjZScgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0FkZHJlc3MgU3BhY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndmxhbicgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1ZMQU4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaXBzJyAgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdJUCBBZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X2lwX2FkZHJlc3NlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbnRyeV9mb3JtYXR0ZXInIDogZm10Y252LnByaW50X2FsbF9pcF9hZGRyZXNzZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhdHRhY2htZW50LXBvaW50cycgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0F0dGFjaG1lbnQgUG9pbnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfaG9zdF9hdHRhY2htZW50X3BvaW50LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2VudHJ5X2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfYWxsX2hvc3RfYXR0YWNobWVudF9wb2ludHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdsYXN0LXNlZW4nICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0xhc3QgU2VlbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF90aW1lX3NpbmNlX3V0YworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndGVuYW50JyAgICAgICAgICAgIDogeyd2ZXJib3NlLW5hbWUnIDogJ1RlbmFudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKK30KKworCisKK1ZOU19ERUZfREVTQ1JJUFRJT05fQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdkZXNjcmlwdGlvbicsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXRlbmFudC1kZWYtdm5zJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Byb3ZpZGUgZGVzY3JpcHRpb24gZm9yIGEgVk5TIGluc3RhbmNlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8ZGVzY3JpcHRpb24nLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Zuc3xkZXNjcmlwdGlvbi1leGFtcGxlJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyA6ICdkZXNjcmlwdGlvbicsCisgICAgICAgICAgICAndHlwZScgIDogJ3N0cmluZycsCisgICAgICAgIH0KKyAgICApLAorfQorCisKK1ZOU19ERUZfQUNUSVZFX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICA6ICdhY3RpdmUnLAorICAgICdtb2RlJyAgICAgICAgOiAnY29uZmlnLXRlbmFudC1kZWYtdm5zJywKKyAgICAnc2hvcnQtaGVscCcgIDogJ1NldCB2bnMgYWN0aXZlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8YWN0aXZlJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8YWN0aXZlLWV4YW1wbGUnLAorICAgICdkb2MtaW5jbHVkZScgIDogWyAnZGVmYXVsdCcgXSwKKyAgICAnYXJncycgOiAoKSwKKyAgICAnYWN0aW9uJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnIDogJ3dyaXRlLWZpZWxkcycsCisgICAgICAgICAgICAnZGF0YScgOiB7ICdhY3RpdmUnIDogVHJ1ZSB9LAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyA6ICdtYXJrIHRoZSB2bnMgYXMgYWN0aXZlJywKKyAgICAgICAgfQorICAgICksCisgICAgJ25vLWFjdGlvbicgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdwcm9jJyA6ICd3cml0ZS1maWVsZHMnLAorICAgICAgICAgICAgJ2RhdGEnIDogeyAnYWN0aXZlJyA6IEZhbHNlIH0sCisgICAgICAgICAgICAnc3ludGF4LWhlbHAnIDogJ21hcmsgdGhlIHZucyBhcyBpbmFjdGl2ZScsCisgICAgICAgIH0KKyAgICApCit9CisKK1ZOU19ERUZfT1JJR0lOX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnb3JpZ2luJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50LWRlZi12bnMnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnRGVzY3JpYmUgdm5zIG9yaWdpbicsCisgICAgJ2RvYycgICAgICAgICAgOiAndm5zfG9yaWdpbicsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndm5zfG9yaWdpbi1leGFtcGxlJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgIDogJ29yaWdpbicsCisgICAgICAgICAgICAndHlwZScgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgJ2FjdGlvbicgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAncHJvYycgOiAndm5zLXdhcm4tZXh0ZXJuYWwtY29uZmlnJywKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3dyaXRlLWZpZWxkcycsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgIH0sCisgICAgKSwKK30KKworVk5TX0RFRl9VU0VfQUREUkVTU19TUEFDRV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3VzZScsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnQXNzb2NpYXRlIGFkZHJlc3Mgc3BhY2UnLAorICAgICdhbGwtaGVscCcgICAgIDogJ0Fzc29jaWF0ZSBWTlMgd2l0aCBvdGhlciBvYmplY3RzJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50LWRlZi12bnMnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZycsCisgICAgJ29iai10eXBlJyAgICAgOiAndm5zLWRlZmluaXRpb24nLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x1c2UtYWRkcmVzcy1zcGFjZScsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndm5zfHVzZS1hZGRyZXNzLXNwYWNlLWV4YW1wbGUnLAorICAgICdkb2MtaW5jbHVkZScgIDogJ2RlZmF1bHQnLCAKKyAgICAnYXJncycgOiAoCisgICAgICAgICdhZGRyZXNzLXNwYWNlJywKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAnYWRkcmVzcy1zcGFjZScsCisgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdpZGVudGlmaWVyJywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgICAgIDogWyAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRlLWZyb20tYW5vdGhlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAnb3RoZXInICAgICAgICAgICA6ICdhZGRyZXNzLXNwYWNlJywKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgICAgIDogJ0VudGVyIGFzc29jaWF0ZWQgYWRkcmVzcy1zcGFjZSBuYW1lJywKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogRmFsc2UsCisgICAgICAgICAgICAnbWF0Y2gtZm9yLW5vJyAgICA6ICdhZGRyZXNzLXNwYWNlJywKKyAgICAgICAgfQorICAgICkKK30KKworVk5TX0RFRl9BUlBfTU9ERV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ2FycC1tb2RlJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdDb25maWd1cmUgYXJwIG1vZGUnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3xhcnAtbW9kZScsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndm5zfGFycC1tb2RlLWV4YW1wbGUnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy10ZW5hbnQtZGVmLXZucycsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnZG9jLWluY2x1ZGUnICA6IFsgJ2RlZmF1bHQnIF0sCisgICAgJ2FyZ3MnIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICA6ICdhcnAtbW9kZScsCisgICAgICAgICAgICAndHlwZScgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnIDogKCdhbHdheXMtZmxvb2QnLCAnZmxvb2QtaWYtdW5rbm93bicsICdkcm9wLWlmLXVua25vd24nKSwKKyAgICAgICAgICAgICdkb2MnICAgIDogJ3Zuc3xhcnAtbW9kZS12YWx1ZS0rJywKKyAgICAgICAgfQorICAgICksCit9CisKK1ZOU19ERUZfQlJPQURDQVNUX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnYnJvYWRjYXN0JywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50LWRlZi12bnMnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnQ29uZmlndXJlIGJyb2FkY2FzdCBtb2RlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8YnJvYWRjYXN0JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8YnJvYWRjYXN0LWV4YW1wbGUnLAorICAgICdkb2MtaW5jbHVkZScgIDogWyAnZGVmYXVsdCcgXSwKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgIDogJ2Jyb2FkY2FzdCcsCisgICAgICAgICAgICAndHlwZScgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnIDogKCdhbHdheXMtZmxvb2QnLCAnZm9yd2FyZC10by1rbm93bicsICdkcm9wJyksCisgICAgICAgICAgICAnZG9jJyAgICA6ICd2bnN8YnJvYWRjYXN0LXZhbHVlLSsnLAorICAgICAgICB9CisgICAgKSwKK30KKworVk5TX0RFRl9ESENQX0lQX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnZGhjcC1pcCcsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXRlbmFudC1kZWYtdm5zJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0NvbmZpZ3VyZSBkaGNwIGlwIGFkZHJlc3MnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3xkaGNwLWlwJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8ZGhjcC1pcC1leGFtcGxlJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgIDogJ2RoY3AtaXAnLAorICAgICAgICAgICAgJ3R5cGUnICAgOiAnaXAtYWRkcmVzcycsCisgICAgICAgICAgICAnc3ludGF4LWhlbHAnIDogJ0VudGVyIGFuIElQIEFkZHJlc3MnLAorICAgICAgICB9CisgICAgKSwKK30KKworVk5TX0RFRl9ESENQX01PREVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdkaGNwLW1vZGUnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy10ZW5hbnQtZGVmLXZucycsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdTZXQgZGhjcCBtb2RlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8ZGhjcC1tb2RlJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8ZGhjcC1tb2RlLWV4YW1wbGUnLAorICAgICdkb2MtaW5jbHVkZScgIDogWyAnZGVmYXVsdCcgXSwKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgIDogJ2RoY3AtbW9kZScsCisgICAgICAgICAgICAndHlwZScgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnIDogKCdhbHdheXMtZmxvb2QnLCAnZmxvb2QtaWYtdW5rbm93bicsICdzdGF0aWMnKSwKKyAgICAgICAgICAgICdkb2MnICAgIDogJ3Zuc3xkaGNwLXZhbHVlLSsnLAorICAgICAgICB9CisgICAgKSwKK30KKworVk5TX0lOVEVSRkFDRV9SVUxFX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnaW50ZXJmYWNlLXJ1bGUnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy10ZW5hbnQtZGVmLXZucyonLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZy1zdWJtb2RlJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd2bnMtaW50ZXJmYWNlLXJ1bGUnLAorICAgICdwYXJlbnQtZmllbGQnIDogJ3ZucycsCisgICAgJ3N1Ym1vZGUtbmFtZScgOiAnY29uZmlnLXRlbmFudC1kZWYtdm5zLWlmLXJ1bGUnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0VudGVyIGludGVyZmFjZS1ydWxlIHN1Ym1vZGUsIGNvbmZpZ3VyZSB2bnMgZGV0YWlscycsCisgICAgJ2RvYycgICAgICAgICAgOiAndm5zfGludGVyZmFjZS1ydWxlJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8aW50ZXJmYWNlLXJ1bGUtZXhhbXBsZScsCisgICAgJ2FyZ3MnIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdydWxlJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgJ3N5bnRheC1oZWxwJyAgOiAnRW50ZXIgYSB2bnMgaW50ZXJmYWNlIHJ1bGUgbmFtZScsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgJ3Njb3BlZCcgICAgICAgOiBUcnVlLAorICAgICAgICB9CisgICAgKQorfQorCitWTlNfUFJJT1JJVFlfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdwcmlvcml0eScsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXRlbmFudC1kZWYtdm5zJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1NldCB2bnMgcHJpb3JpdHknLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3xwcmlvcml0eScsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndm5zfHByaW9yaXR5LWV4YW1wbGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgOiAncHJpb3JpdHknLAorICAgICAgICAgICAgJ2Jhc2UtdHlwZScgOiAnaW50ZWdlcicsCisgICAgICAgICAgICAncmFuZ2UnICAgICA6ICgwLCA2NTUzNSksCisgICAgICAgIH0KKyAgICApCit9CisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyB2bnMtZGVmLWlmIHN1Ym1vZGUgY29tbWFuZHMKKyMgICh2bnMgZGVmaW5pdGlvbiBpbnRlcmZhY2UgcnVsZXMgc3VibW9kZSkKKyMKKworVk5TX0RFRl9JRl9BQ1RJVkVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdhY3RpdmUnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy10ZW5hbnQtZGVmLXZucy1pZi1ydWxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1NldCBydWxlIHRvIEFjdGl2ZScsCisgICAgJ2RvYycgICAgICAgICAgOiAndm5zfGludGVyZmFjZS1ydWxlLWFjdGl2ZScsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndm5zfGludGVyZmFjZS1ydWxlLWFjdGl2ZS1leGFtcGxlJywKKyAgICAnZG9jLWlubGN1ZGUnICA6IFsgJ2RlZmF1bHQnIF0sCisgICAgJ2FyZ3MnICAgICAgICAgOiAoKSwKKyAgICAnYWN0aW9uJyAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnIDogJ3dyaXRlLWZpZWxkcycsCisgICAgICAgICAgICAnZGF0YScgOiB7ICdhY3RpdmUnIDogVHJ1ZSB9CisgICAgICAgIH0KKyAgICApLAorICAgICduby1hY3Rpb24nICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgOiAnd3JpdGUtZmllbGRzJywKKyAgICAgICAgICAgICdkYXRhJyA6IHsgJ2FjdGl2ZScgOiBGYWxzZSB9CisgICAgICAgIH0KKyAgICApCit9CisKK1ZOU19ERUZfSUZfQUxMT1dfTVVMVElQTEVfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdhbGxvdy1tdWx0aXBsZScsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXRlbmFudC1kZWYtdm5zLWlmLXJ1bGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnRW5hYmxlIG11bHRpcGxlIGludGVyZmFjZSBydWxlIG1hdGNoZXMnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3xpbnRlcmZhY2UtcnVsZS1hbGxvdy1tdWx0aXBsZScsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndm5zfGludGVyZmFjZS1ydWxlLWFsbG93LW11bHRpcGxlLWV4YW1wbGUnLAorICAgICdkb2MtaW5jbHVkZScgIDogWyAnZGVmYXVsdCcgXSwKKyAgICAnYXJncycgICAgICAgICA6ICgpLAorICAgICdhY3Rpb24nICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgOiAnd3JpdGUtZmllbGRzJywKKyAgICAgICAgICAgICdkYXRhJyA6IHsgJ2FsbG93LW11bHRpcGxlJyA6IFRydWUgfQorICAgICAgICB9CisgICAgKSwKKyAgICAnbm8tYWN0aW9uJyAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnICAgOiAncmVzZXQtZmllbGRzJywKKyAgICAgICAgICAgICdmaWVsZHMnIDogWyAnYWxsb3ctbXVsdGlwbGUnIF0KKyAgICAgICAgfQorICAgICkKK30KKworIworIyBYWFggdmxhbi10YWctb24tZWdyZXNzIHJlcXVpcmVkIGluIGZ1dHVyZSByZWxlYXNlcyB3aGVuIG11bHRpcGxlIHZsYW5zCisjIHRhZ2dpbmcgYXJlIHN1cHBvcnRlZCBpbiB2bnMgZWdyZXNzLgorIworI1ZOU19ERUZfSUZfVkxBTl9UQUdfT05fRUdSRVNTX1RNUF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworIyAgICAnbmFtZScgICAgICAgICA6ICd2bGFuLXRhZy1vbi1lZ3Jlc3MnLAorIyAgICAnc2hvcnQtaGVscCcgICA6ICdFbmFibGUgdmxhbiB0YWdnaW5nIG9uIGVncmVzcycsCisjICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy1kZWYtdm5zLWlmLXJ1bGUnLAorIyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorIyAgICAnYXJncycgICAgICAgICA6ICgpLAorIyAgICAnYWN0aW9uJyAgICAgICA6ICgKKyMgICAgICAgIHsKKyMgICAgICAgICAgICAncHJvYycgOiAnd3JpdGUtZmllbGRzJywKKyMgICAgICAgICAgICAnZGF0YScgOiB7ICd2bGFuLXRhZy1vbi1lZ3Jlc3MnIDogVHJ1ZSB9CisjICAgICAgICB9CisjICAgICksCisjICAgICduby1hY3Rpb24nICAgIDogKAorIyAgICAgICAgeworIyAgICAgICAgICAgICdwcm9jJyAgIDogJ3Jlc2V0LWZpZWxkcycsCisjICAgICAgICAgICAgJ2ZpZWxkcycgOiBbICd2bGFuLXRhZy1vbi1lZ3Jlc3MnIF0KKyMgICAgICAgIH0KKyMgICAgKQorIyB9CisKK1ZOU19ERUZfSUZfREVTQ1JJUFRJT05fQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdkZXNjcmlwdGlvbicsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXRlbmFudC1kZWYtdm5zLWlmLXJ1bGUnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Byb3ZpZGUgZGVzY3JpcHRpb24gZm9yIGludGVyZmFjZSBydWxlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8aW50ZXJmYWNlLXJ1bGUtZGVzY3JpcHRpb24nLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Zuc3xpbnRlcmZhY2UtcnVsZS1kZXNjcmlwdGlvbi1leGFtcGxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWcnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnIDogJ2Rlc2NyaXB0aW9uJywKKyAgICAgICAgICAgICd0eXBlJyAgOiAnc3RyaW5nJywKKyAgICAgICAgfQorICAgICksCit9CisKK1ZOU19ERUZfSUZfUFJJT1JJVFlfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdwcmlvcml0eScsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXRlbmFudC1kZWYtdm5zLWlmLXJ1bGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnRGVzY3JpYmUgcHJpb3JpdHkgZm9yIGludGVyZmFjZSBydWxlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8aW50ZXJmYWNlLXJ1bGUtcHJpb3JpdHknLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Zuc3xpbnRlcmZhY2UtcnVsZS1wcmlvcml0eS1leGFtcGxlJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyA6ICdwcmlvcml0eScsCisgICAgICAgICAgICAndmFsdWUnIDogJ2ludGVnZXInLAorICAgICAgICB9CisgICAgKSwKK30KKworCitWTlNfREVGX0lGX01BVENIX01BQ19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ21hdGNoJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50LWRlZi12bnMtaWYtcnVsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdBc3NvY2lhdGUgbWFjIChob3N0KSB3aXRoIGludGVyZmFjZSBydWxlJywKKyAgICAnYWxsLWhlbHAnICAgICA6ICdDb25maWd1cmUgYSBtYXRjaCBmb3IgdGhpcyBpbnRlcmZhY2UgcnVsZScsCisgICAgJ2RvYycgICAgICAgICAgOiAndm5zfGludGVyZmFjZS1ydWxlLW1hdGNoLW1hYycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndm5zfGludGVyZmFjZS1ydWxlLW1hdGNoLW1hYy1leGFtcGxlJywKKyAgICAnZG9jLWFsbCcgICAgICA6ICdhZGRyZXNzLXNwYWNlfG1hdGNoJywKKyAgICAnZGF0YScgICAgICAgICA6IHsgJ21hYycgOiBOb25lIH0sICMgZm9yIG5vIGNvbW1hbmQgcmVzZXQKKyAgICAnb2JqLXR5cGUnICAgICA6ICd2bnMtaW50ZXJmYWNlLXJ1bGUnLAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAndG9rZW4nICAgICAgICA6ICdtYWMnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdtYWMnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnaG9zdCcsCisgICAgICAgICAgICAnaGVscC1uYW1lJyAgICAgICA6ICdob3N0IG1hYyBvciBhbGlhcycsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICAgICA6IFsnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ3Njb3BlZCcgICAgICAgICAgOiBUcnVlLAorICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgICAgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgJ290aGVyJyAgICAgICAgICAgOiAnaG9zdCcsCisgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICd2bnN8aW50ZXJmYWNlLXJ1bGUtbWF0Y2gtbWFjLWZpZWxkJywKKyAgICAgICAgfQorICAgICksCit9CisKKworVk5TX0RFRl9JRl9NQVRDSF9JUF9TVUJORVRfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdtYXRjaCcsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXRlbmFudC1kZWYtdm5zLWlmLXJ1bGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnQXNzb2NpYXRlIGlwLXN1Ym5ldCAoaXAgb3IgY2lkciByYW5nZSkgZm9yIGludGVyZmFjZSBydWxlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8aW50ZXJmYWNlLXJ1bGUtbWF0Y2gtaXAtc3VibmV0JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8aW50ZXJmYWNlLXJ1bGUtbWF0Y2gtaXAtc3VibmV0LWV4YW1wbGUnLAorICAgICdkYXRhJyAgICAgICAgIDogeyAnaXAtc3VibmV0JyA6IE5vbmUgfSwgIyBmb3Igbm8gY29tbWFuZCByZXNldAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAndG9rZW4nICAgICAgICA6ICdpcC1zdWJuZXQnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdpcC1zdWJuZXQnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnY2lkci1yYW5nZScsCisgICAgICAgICAgICAnaGVscC1uYW1lJyAgICAgICA6ICdpcCBhZGRyZXNzICgxMC4xMC4xMC4xMCksIG9yIGNpZHIgKDEwLjIwLjMwLjAvMjQpJywKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgICAgIDogJ3Zuc3xpbnRlcmZhY2UtcnVsZS1tYXRjaC1pcC1zdWJuZXQtZmllbGQnLAorICAgICAgICB9CisgICAgKSwKK30KKworCitWTlNfREVGX0lGX01BVENIX1NXSVRDSF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ21hdGNoJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50LWRlZi12bnMtaWYtcnVsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd2bnMtaW50ZXJmYWNlLXJ1bGUnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0Fzc29jaWF0ZSBzd2l0Y2ggd2l0aCBpbnRlcmZhY2UgcnVsZScsCisgICAgJ2RvYycgICAgICAgICAgOiAndm5zfGludGVyZmFjZS1ydWxlLW1hdGNoLXN3aXRjaCcsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndm5zfGludGVyZmFjZS1ydWxlLW1hdGNoLXN3aXRjaC1leGFtcGxlJywKKyAgICAnZGF0YScgICAgICAgICA6IHsgIyBmb3Igbm8gY29tbWFuZCByZXNldAorICAgICAgICAgICAgICAgICAgICAgICAnc3dpdGNoJyA6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICdwb3J0cycgIDogTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgICAgICAgIDogJ3N3aXRjaCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICMgY29uc3RydWN0ZWQgYXMgYXJncyB0byBlbnN1cmUgdGhhdCB0aGUgcG9ydHMgaXNuJ3QKKyAgICAgICAgICAgICMgY29tcGxldGVkIGFsb25nIHdpdGggc3d0aWNoIHZhbHVlcyBmb3IgJ25vIG1hdGNoIHN3aXRjaCcgCisgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAnYXJncycgOiAoCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdzd2l0Y2gnLAorICAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgICAgICAgICAncGFyZW50LWZpZWxkJyAgICA6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICdjb21wbGV0aW9uJyAgICAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGUtYWxpYXMtY2hvaWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgICAgICA6ICdzd2l0Y2ggZHBpZCBvciBzd2l0Y2ggYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyAgICA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICdvdGhlcicgICAgICAgICAgIDogJ3N3aXRjaGVzfGRwaWQnLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdwb3J0cycsCisgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICAgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgICAgICAgICAgJ2hlbHAtbmFtZScgICAgICAgOiAnc3dpdGNoIGludGVyZmFjZSwgb3IgcmFuZ2UsIG9yIGxpc3QnLAorICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICAgICA6ICdjb21wbGV0ZS1pbnRlcmZhY2UtbGlzdCcsCisgICAgICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInICAgIDogJ3dhcm4tbWlzc2luZy1pbnRlcmZhY2UnLAorICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICksCisgICAgICAgIH0sCisgICAgKSwKK30KKworCitWTlNfREVGX0lGX01BVENIX1RBR1NfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdtYXRjaCcsCisgICAgJ21vZGUnICAgICAgICAgOiAnY29uZmlnLXRlbmFudC1kZWYtdm5zLWlmLXJ1bGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZycsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnQXNzb2NpYXRlIHRhZ3Mgd2l0aCBpbnRlcmZhY2UgcnVsZScsCisgICAgJ2RvYycgICAgICAgICAgOiAndm5zfGludGVyZmFjZS1ydWxlLW1hdGNoLXRhZycsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndm5zfGludGVyZmFjZS1ydWxlLW1hdGNoLXRhZy1leGFtcGxlJywKKyAgICAnZGF0YScgICAgICAgICA6IHsgIyBmb3Igbm8gY29tbWFuZCByZXNldAorICAgICAgICAgICAgICAgICAgICAgICAndGFncycgOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgICAgICAgIDogJ3RhZ3MnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICd0YWdzJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgOiAnc3RyaW5nJywKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgfQorICAgICksCit9CisKKyMgUmVtb3ZlIG1hdGNoIHZsYW4gY29tbWFuZCB0ZW1wb3JhcmlseSBvbiBncmVnb3IncyByZXF1cmVzCisjIHRoZSBydW5uaW5nIGNvbmZpZyBjYW4gc3RpbGwgZ2VuZXJhdGUgdGhlc2UgY29tbWFuZHMsIGJ1dAorIyB0aGV5IHdvbid0IGdldCByZWFkIGNvcnJlY3RseQorVk5TX0RFRl9JRl9NQVRDSF9WTEFOU19DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ21hdGNoJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50LWRlZi12bnMtaWYtcnVsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnc2hvcnQtaGVscCcgICA6ICdBc3NvY2lhdGUgdmxhbnMgd2l0aCBpbnRlcmZhY2UgcnVsZScsCisgICAgJ2RvYycgICAgICAgICAgOiAndm5zfGludGVyZmFjZS1ydWxlLW1hdGNoLXZsYW5zJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8aW50ZXJmYWNlLXJ1bGUtbWF0Y2gtdmxhbnMtZXhhbXBsZScsCisgICAgJ2RhdGEnICAgICAgICAgOiB7ICMgZm9yIG5vIGNvbW1hbmQgcmVzZXQKKyAgICAgICAgICAgICAgICAgICAgICAgJ3ZsYW5zJyA6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICB9LAorICAgICdhcmdzJyAgICAgICAgIDogKAorICAgICAgICB7CisgICAgICAgICAgICAndG9rZW4nICAgICAgICA6ICd2bGFucycsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ3ZsYW5zJywKKyAgICAgICAgICAgICd2YWx1ZScgICAgICAgICAgIDogJ3N0cmluZycsCisgICAgICAgICAgICAnaGVscC1uYW1lJyAgICAgICA6ICdWbGFuIG51bWJlciAoMC00MDk2KSBvciByYW5nZSwgb3IgbGlzdCcsCisgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgIH0KKyAgICApLCAgICAKK30KKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIHZucyBzdWJtb2RlIGNvbW1hbmRzCisjCisKKworVk5TX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ3ZucycsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ0VudGVyIFZOUyBzdWJtb2RlLCBtYW5hZ2UgYWNjZXNzIGxpc3RzJywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnY29uZmlnKicsCisgICAgJ2ZlYXR1cmUnICAgICAgICAgICAgIDogJ3ZucycsCisgICAgJ25vLXN1cHBvcnRlZCcgICAgICAgIDogRmFsc2UsCisgICAgJ2NvbW1hbmQtdHlwZScgICAgICAgIDogJ2NvbmZpZy1zdWJtb2RlJywKKyAgICAnb2JqLXR5cGUnICAgICAgICAgICAgOiAndm5zLWRlZmluaXRpb24nLAorICAgICdzdWJtb2RlLW5hbWUnICAgICAgICA6ICdjb25maWctdGVuYW50LXZucycsCisgICAgJ3N5bnRheC1oZWxwJyAgICAgICAgIDogJ0VudGVyIGEgdm5zIG5hbWUnLAorICAgICdjcmVhdGUnICAgICAgICAgICAgICA6IEZhbHNlLAorICAgICdkb2MnICAgICAgICAgICAgICAgICA6ICd2bnN8dm5zJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAndm5zfHZucy1leGFtcGxlJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3Zuc25hbWUnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaWRlbnRpZmllcicsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICA6IFsnY29tcGxldGUtdGVuYW50bmFtZS1wcmVwcm9jZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wbGV0ZS1mcm9tLWFub3RoZXInXSwKKyAgICAgICAgICAgICdvdGhlcicgICAgICAgIDogJ3Zucy1kZWZpbml0aW9ufHZuc25hbWUnLAorICAgICAgICAgICAgJ3Njb3BlZCcgICAgICAgOiAndGVuYW50JywKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgIDogJ0VudGVyIGEgdm5zIG5hbWUnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndm5zfHZucy1pZCcsCisgICAgICAgICAgICAnZG9jLWluY2x1ZGUnICA6IFsgJ3R5cGUtZG9jJyBdLAorICAgICAgICAgICAgJ2FjdGlvbicgICAgICAgOiAoICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jJyA6ICdwdXNoLW1vZGUtc3RhY2snLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSwKKworICAgICAgICB9CisgICAgKQorfQorCitWTlNfSU5URVJGQUNFX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgICAgICAgIDogJ2ludGVyZmFjZScsCisgICAgJ3Nob3J0LWhlbHAnICAgICAgICAgIDogJ0VudGVyIFZOUy1pZiBzdWJtb2RlJywKKyAgICAnbW9kZScgICAgICAgICAgICAgICAgOiAnY29uZmlnLXRlbmFudC12bnMqJywKKyAgICAnY29tbWFuZC10eXBlJyAgICAgICAgOiAnY29uZmlnLXN1Ym1vZGUnLAorICAgICdvYmotdHlwZScgICAgICAgICAgICA6ICd2bnMtaW50ZXJmYWNlLWNvbmZpZycsCisgICAgJ3BhcmVudC1maWVsZCcgICAgICAgIDogJ3ZucycsCisgICAgJ2N1cnJlbnQtbW9kZS1vYmotaWQnIDogJ3Zucy1kZWZpbml0aW9uJywKKyAgICAnc3VibW9kZS1uYW1lJyAgICAgICAgOiAnY29uZmlnLXRlbmFudC12bnMtaWYnLAorICAgICdzeW50YXgtaGVscCcgICAgICAgICA6ICdFbnRlciBhbiBpbnRlcmZhY2UgbmFtZScsCisgICAgJ2RvYycgICAgICAgICAgICAgICAgIDogJ3Zuc3x2bnMtaW50ZXJmYWNlJywKKyAgICAnZG9jLWV4YW1wbGUnICAgICAgICAgOiAndm5zfHZucy1pbnRlcmZhY2UtZXhhbXBsZScsCisgICAgJ2FyZ3MnIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdpbnRlcmZhY2UnLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtb2JqZWN0LWZpZWxkJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x2bnMtaW50ZXJmYWNlLWZpZWxkJywKKyAgICAgICAgfQorICAgICkKK30KKworVk5TX0FDQ0VTU19HUk9VUF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ2FjY2Vzcy1ncm91cCcsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnQXNzb2NpYXRlIGludGVyZmFjZSB3aXRoIGFjY2Vzcy1saXN0JywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50LXZucy1pZicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd2bnMtaW50ZXJmYWNlLWFjY2Vzcy1saXN0JywKKyAgICAncGFyZW50LWZpZWxkJyA6ICd2bnMtaW50ZXJmYWNlJywKKyAgICAjICdjdXJyZW50LW1vZGUtb2JqLWlkJyA6ICd2bnMtZGVmaW5pdGlvbicsCisgICAgJ3N1Ym1vZGUtbmFtZScgOiAnY29uZmlnLXRlbmFudC12bnMtaWYnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x2bnMtYWNjZXNzLWdyb3VwJywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8dm5zLWFjY2Vzcy1ncm91cC1leGFtcGxlJywKKyAgICAnYXJncycgOiAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ3Zucy1hY2Nlc3MtbGlzdCcsCisgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdzdHJpbmcnLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgICAgOiAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICdvdGhlcicgICAgICAgICAgIDogJ3Zucy1hY2Nlc3MtbGlzdHxuYW1lJywKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogRmFsc2UsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ2luLW91dCcsCisgICAgICAgICAgICAndHlwZScgICAgICAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgICAgICAgIDogKCdpbicsICdvdXQnKSwKKyAgICAgICAgICAgICdzeW50YXgtaGVscCcgICAgIDogJ2FwcGx5IGFjY2Vzcy1saXN0IGluIHRoaXMgZGlyZWN0aW9uJywKKyAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogRmFsc2UsCisgICAgICAgICAgICAnZG9jJyAgICAgICAgICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1ncm91cC1kaXJlY3Rpb24tKycsCisgICAgICAgIH0KKyAgICApLAorICAgICdhY3Rpb24nIDogKAorICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgICAgICA6ICdjb252ZXJ0LXZucy1hY2Nlc3MtbGlzdCcsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdwcm9jJyAgICAgIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgIH0sCisgICAgKSwKKyAgICAnbm8tYWN0aW9uJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ3Byb2MnICAgICAgOiAnY29udmVydC12bnMtYWNjZXNzLWxpc3QnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAncHJvYycgICAgICA6ICdkZWxldGUtb2JqZWN0cycsCisgICAgICAgIH0sCisgICAgKQorfQorCitTSE9XX1ZOU19BQ0NFU1NfR1JPVVBfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50LXZucy1pZionLAorICAgICdhY3Rpb24nICAgICAgIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2Rpc3BsYXktdGFibGUnLAorICAgICdzY29wZWQnICAgICAgIDogVHJ1ZSwgIyBkaXNwbGF5ZWQgZW50cmllcyBmaWx0ZXJlZCBieSBwdXNoZWQgb2JqIGlkCisgICAgJ29iai10eXBlJyAgICAgOiAndm5zLWludGVyZmFjZS1hY2Nlc3MtbGlzdCcsCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnc2hvdyBhY2Nlc3MtZ3JvdXAgZGV0YWlscycsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICdhY2Nlc3MtZ3JvdXAnLAorICAgICkKK30KKworCitTSE9XX1ZOU19BQ0NFU1NfTElTVF9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3Nob3cnLAorICAgICdtb2RlJyAgICAgICAgIDogWydjb25maWctdGVuYW50LXZucy0qJ10sCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyBWTlMgYWNjZXNzIGxpc3RzJywKKyAgICAnYWN0aW9uJyAgICAgICA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd2bnMtYWNjZXNzLWxpc3QnLAorICAgICdzY29wZWQnICAgICAgIDogVHJ1ZSwgIyBkaXNwbGF5ZWQgZW50cmllcyBmaWx0ZXJlZCBieSBwdXNoZWQgb2JqIGlkCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICdhY2Nlc3MtbGlzdCcsCisgICAgKQorfQorCitTSE9XX1ZOU19JTlRFUkZBQ0VTX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnc2hvdycsCisgICAgJ21vZGUnICAgICAgICAgOiBbJ2NvbmZpZy10ZW5hbnQtdm5zJywgJ2NvbmZpZy10ZW5hbnQtdm5zLWlmJ10sCisgICAgJ3Nob3J0LWhlbHAnICAgOiAnU2hvdyBWTlMgYXNzb2NpYXRlZCBpbnRlcmZhY2VzJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dm5zLXNob3ctaW50ZXJmYWNlJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd2bnMtaW50ZXJmYWNlJywKKyAgICAnYXJncycgICAgICAgICA6ICggCisgICAgICAgIHsKKyAgICAgICAgICAgICd0b2tlbicgIDogJ2ludGVyZmFjZXMnLAorICAgICAgICAgICAgJ3Njb3BlZCcgOiBUcnVlLAorICAgICAgICAgICAgJ2FjdGlvbicgOiAgKHsncHJvYycgICA6ICd0ZW5hbnQtc2hvdy1wcmVwcm9jZXNzJ30sCisgICAgICAgICAgICAgICAgICAgICAgICAgJ2xlZ2FjeS1jbGknKSwKKyAgICAgICAgfQorICAgICkKK30KKworU0hPV19WTlNfQUNDRVNTX0xJU1RfRU5UUllfQ09NTUFORF9ERVNDUklQVElPTiA9IHsKKyAgICAnbmFtZScgICAgICAgICA6ICdzaG93JywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50LXZucyonLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ3Nob3cgVk5TIGFjY2VzcyBsaXN0IHJ1bGVzJywKKyAgICAnYWN0aW9uJyAgICAgICA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdkaXNwbGF5LXRhYmxlJywKKyAgICAnb2JqLXR5cGUnICAgICA6ICd2bnMtYWNjZXNzLWxpc3QtZW50cnknLAorICAgICdkZXRhaWwnICAgICAgIDogJ2FjbC1icmllZicsCisgICAgJ2FyZ3MnICAgICAgICAgOiAoCisgICAgICAgICdhY2Nlc3MtbGlzdC1lbnRyeScsCisgICAgKSwKK30KKworVk5TX0FDQ0VTU19MSVNUX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiAnYWNjZXNzLWxpc3QnLAorICAgICdtb2RlJyAgICAgICAgIDogJ2NvbmZpZy10ZW5hbnQtdm5zKicsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnLXN1Ym1vZGUnLAorICAgICdvYmotdHlwZScgICAgIDogJ3Zucy1hY2Nlc3MtbGlzdCcsCisgICAgJ3BhcmVudC1maWVsZCcgOiAndm5zJywKKyAgICAnc3VibW9kZS1uYW1lJyA6ICdjb25maWctdGVuYW50LXZucy1hY2wnLAorICAgICdzeW50YXgtaGVscCcgIDogJ0VudGVyIGFuIGFjY2VzcyBsaXN0IG5hbWUnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0VudGVyIHZucyBhY2Nlc3MtbGlzdCBzdWJtb2RlJywKKyAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0JywKKyAgICAnZG9jLWV4YW1wbGUnICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWV4YW1wbGUnLAorICAgICdhcmdzJyA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnbmFtZScsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1vYmplY3QtZmllbGQnLAorICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1uYW1lJworICAgICAgICB9CisgICAgKQorfQorCisKK1ZOU19BQ0NFU1NfTElTVF9ERVNDUklQVElPTl9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ2Rlc2NyaXB0aW9uJywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50LXZucy1hY2wnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1Byb3ZpZGUgYSBkZXNjcmlwdGlvbiBmb3IgYSBWTlMgYWNjZXNzIGxpc3QnLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x2bnMtYWNjZXNzLWxpc3QtZGVzY3JpcHRpb24nLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Zuc3x2bnMtYWNjZXNzLWxpc3QtZGVzY3JpcHRpb24tZXhhbXBsZScsCisgICAgJ2NvbW1hbmQtdHlwZScgOiAnY29uZmlnJywKKyAgICAnYXJncycgICAgICAgICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyA6ICdkZXNjcmlwdGlvbicsCisgICAgICAgICAgICAndHlwZScgIDogJ3N0cmluZycsCisgICAgICAgIH0KKyAgICApLAorfQorCisKK1ZOU19BQ0NFU1NfTElTVF9QUklPUklUWV9DT01NQU5EX0RFU0NSSVBUSU9OID0geworICAgICduYW1lJyAgICAgICAgIDogJ3ByaW9yaXR5JywKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50LXZucy1hY2wnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ1NldCBWTlMgcHJpb3JpdHknLAorICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x2bnMtYWNjZXNzLWxpc3QtcHJpb3JpdHknLAorICAgICdkb2MtZXhhbXBsZScgIDogJ3Zuc3x2bnMtYWNjZXNzLWxpc3QtcHJpb3JpdHktZXhhbXBsZScsCisgICAgJ2RvYy1pbmNsdWRlJyAgOiBbICdkZWZhdWx0JywgJ3JhbmdlJyBdLAorICAgICdjb21tYW5kLXR5cGUnIDogJ2NvbmZpZycsCisgICAgJ2FyZ3MnIDogKAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICA6ICdwcmlvcml0eScsCisgICAgICAgICAgICAnYmFzZS10eXBlJyA6ICdpbnRlZ2VyJywKKyAgICAgICAgICAgICdyYW5nZScgICAgIDogKDAsIDY1NTM1KSwKKyAgICAgICAgfQorICAgICkKK30KKworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMgdm5zIGFjY2VzcyBsaXN0IGNvbW1hbmQKKyMKKworU1JDX0lQX01BVENIID0geworICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgOiAnc3JjLWlwJywKKyAgICAgICAgICAgICAgICAndHlwZScgIDogJ2lwLWFkZHJlc3Mtbm90LW1hc2snLAorICAgICAgICAgICAgICAgICdkb2MnICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1pcC1hbmQtbWFzay1pcCcsCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3NyYy1pcC1tYXNrJywKKyAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdpbnZlcnNlLW5ldG1hc2snLAorICAgICAgICAgICAgICAgICdkYXRhJyAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkc3QtaXAnICAgICAgOiAnMC4wLjAuMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RzdC1pcC1tYXNrJyA6ICcyNTUuMjU1LjI1NS4yNTUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWlwLWFuZC1tYXNrLW1hc2snLAorICAgICAgICAgICAgfSwKKyAgICAgICAgKSwKKyAgICAgICAgKAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICAgOiAnc3JjLWlwJywKKyAgICAgICAgICAgICAgICAndHlwZScgICAgIDogJ2lwLWFkZHJlc3Mtbm90LW1hc2snLAorICAgICAgICAgICAgICAgICdkYXRhJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy1pcC1tYXNrJyA6ICcwLjAuMC4wJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHN0LWlwJyAgICAgIDogJzAuMC4wLjAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkc3QtaXAtbWFzaycgOiAnMjU1LjI1NS4yNTUuMjU1JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgIDogJ3Zuc3x2bnMtYWNjZXNzLWxpc3QtaXAtb25seScsCisgICAgICAgICAgICB9LAorICAgICAgICApLAorICAgICAgICAoCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnc3JjLWlwJywKKyAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdjaWRyLXJhbmdlJywKKyAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgICA6ICdzcmMtY2lkcicsCisgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnc3BsaXQtY2lkci1kYXRhLWludmVyc2UnLAorICAgICAgICAgICAgICAgICdkZXN0LWlwJyAgICAgIDogJ3NyYy1pcCcsCisgICAgICAgICAgICAgICAgJ2Rlc3QtbmV0bWFzaycgOiAnc3JjLWlwLW1hc2snLAorICAgICAgICAgICAgICAgICdkYXRhJyAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkc3QtaXAnICAgICAgOiAnMC4wLjAuMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RzdC1pcC1tYXNrJyA6ICcyNTUuMjU1LjI1NS4yNTUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWNpZHItcmFuZ2UnLAorICAgICAgICAgICAgfQorICAgICAgICApLAorICAgICAgICAoCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ3Rva2VuJyAgOiAnYW55JywKKyAgICAgICAgICAgICAgICAnZGF0YScgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzcmMtaXAnICAgICAgOiAnMC4wLjAuMCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3JjLWlwLW1hc2snIDogJzI1NS4yNTUuMjU1LjI1NScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHN0LWlwJyAgICAgIDogJzAuMC4wLjAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RzdC1pcC1tYXNrJyA6ICcyNTUuMjU1LjI1NS4yNTUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAnZG9jJyAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWlwLWFueScsCisgICAgICAgICAgICB9CisgICAgICAgICksCisgICAgKQorfQorCisKK1NSQ19QT1JUX01BVENIID0gKAorICAgIHsKKyAgICAgICAgJ2ZpZWxkJyAgOiAnc3JjLXRwLXBvcnQtb3AnLAorICAgICAgICAndHlwZScgICA6ICdlbnVtJywKKyAgICAgICAgJ3ZhbHVlcycgOiAoJ2VxJywgJ25lcScpLAorICAgICAgICAnZG9jJyAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LXBvcnQtb3AtKycsCisgICAgfSwKKyAgICB7CisgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdzcmMtdHAtcG9ydCcsCisgICAgICAgICAgICAgICAgJ2Jhc2UtdHlwZScgICAgOiAnaGV4LW9yLWRlY2ltYWwtaW50ZWdlcicsCisgICAgICAgICAgICAgICAgJ3JhbmdlJyAgICAgICAgOiAoMCw2NTUzNSksCisgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnaGV4LXRvLWludGVnZXInLAorICAgICAgICAgICAgICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x2bnMtYWNjZXNzLWxpc3QtcG9ydC1oZXgnLAorICAgICAgICAgICAgICAgICdkb2MtaW5jbHVkZScgIDogWyAncmFuZ2UnIF0sCisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICdmaWVsZCcgICA6ICdzcmMtdHAtcG9ydCcsCisgICAgICAgICAgICAgICAgJ3R5cGUnICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICd2YWx1ZXMnICA6IGZtdGNudi50Y3BfbmFtZV90b19udW1iZXJfZGljdCwKKyAgICAgICAgICAgICAgICAncGVybXV0ZScgOiAnc2tpcCcsCisgICAgICAgICAgICAgICAgJ2RvYycgICAgIDogJ3Zuc3x2bnMtYWNjZXNzLWxpc3QtcG9ydC10eXBlJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICksCisgICAgfSwKKykKKworCitEU1RfSVBfTUFUQ0ggPSB7CisgICAgJ2Nob2ljZXMnIDogKAorICAgICAgICAoCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2ZpZWxkJyA6ICdkc3QtaXAnLAorICAgICAgICAgICAgICAgICd0eXBlJyAgOiAnaXAtYWRkcmVzcy1ub3QtbWFzaycsCisgICAgICAgICAgICAgICAgJ2RvYycgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWlwLWFuZC1tYXNrLWlwJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2ZpZWxkJyA6ICdkc3QtaXAtbWFzaycsCisgICAgICAgICAgICAgICAgJ3R5cGUnICA6ICdpbnZlcnNlLW5ldG1hc2snLAorICAgICAgICAgICAgICAgICdkb2MnICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1pcC1hbmQtbWFzay1tYXNrJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGQnICAgIDogJ2RzdC1pcCcsCisgICAgICAgICAgICAgICAgJ3R5cGUnICAgICA6ICdpcC1hZGRyZXNzLW5vdC1tYXNrJywKKyAgICAgICAgICAgICAgICAnZGF0YScgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHN0LWlwLW1hc2snIDogJzAuMC4wLjAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICdkb2MnICAgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1pcC1vbmx5JywKKyAgICAgICAgICAgIH0sCisgICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICdkc3QtaXAnLAorICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2NpZHItcmFuZ2UnLAorICAgICAgICAgICAgICAgICdoZWxwLW5hbWUnICAgIDogJ2RzdC1jaWRyJywKKyAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdzcGxpdC1jaWRyLWRhdGEtaW52ZXJzZScsCisgICAgICAgICAgICAgICAgJ2Rlc3QtaXAnICAgICAgOiAnZHN0LWlwJywKKyAgICAgICAgICAgICAgICAnZGVzdC1uZXRtYXNrJyA6ICdkc3QtaXAtbWFzaycsCisgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1jaWRyLXJhbmdlJywKKyAgICAgICAgICAgIH0sCisgICAgICAgICksCisgICAgICAgICgKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAndG9rZW4nICA6ICdhbnknLAorICAgICAgICAgICAgICAgICdkYXRhJyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RzdC1pcCcgICAgICA6ICcwLjAuMC4wJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkc3QtaXAtbWFzaycgOiAnMjU1LjI1NS4yNTUuMjU1JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgJ2RvYycgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1pcC1hbnknLAorICAgICAgICAgICAgfQorICAgICAgICApLAorICAgICkKK30KKworCitEU1RfUE9SVF9NQVRDSCA9ICgKKyAgICB7CisgICAgICAgICdmaWVsZCcgOiAnZHN0LXRwLXBvcnQtb3AnLAorICAgICAgICAndHlwZScgIDogJ2VudW0nLAorICAgICAgICAndmFsdWVzJyA6ICgnZXEnLCAnbmVxJyksCisgICAgICAgICdkb2MnICAgICAgICAgIDogJ3Zuc3x2bnMtYWNjZXNzLWxpc3QtcG9ydC1vcCsnLAorICAgIH0sCisgICAgeworICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnZHN0LXRwLXBvcnQnLAorICAgICAgICAgICAgICAgICdiYXNlLXR5cGUnICAgIDogJ2hleC1vci1kZWNpbWFsLWludGVnZXInLAorICAgICAgICAgICAgICAgICdyYW5nZScgICAgICAgIDogKDAsNjU1MzUpLAorICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2hleC10by1pbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAnZG9jJyAgICAgICAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LXBvcnQtaGV4JywKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgIDogJ2RzdC10cC1wb3J0JywKKyAgICAgICAgICAgICAgICAndHlwZScgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgJ3ZhbHVlcycgIDogZm10Y252LnRjcF9uYW1lX3RvX251bWJlcl9kaWN0LAorICAgICAgICAgICAgICAgICdwZXJtdXRlJyA6ICdza2lwJworICAgICAgICAgICAgfSwKKyAgICAgICAgKSwKKyAgICB9CispCisKKworIyBVbmZvcnR1bmF0bHksIHRoZSBtb2RlbCBkZWZpbmVzIHRoZSBjb21wb3VuZCBrZXkgdXNpbmcgdGhlCisjIHJ1bGUgZmllbGQgYXMgYSBjaGFyYWN0ZXIgZmllbGQsIG5vdCBhbiBpbnRlZ2VyLiAKKyMgU2luY2UgJzAwJyBpcyB0aGVuIHRoZSBzYW1lIHJ1bGUgYXMgJzAnLCB0d28gcm93cyBjb3VsZCBiZQorIyBjcmVhdGVkIGRlc2NyaWJpbmcgdGhlIHNhbWUgaW50ZWdlciBydWxlLiAKKyMgSGVyZSB0aGUgY2hhcmFjdGVyIHN0cmluZyBpcyBub3JtYWxpemVkLiAgCisjIChUaGlzIG1heSBiZSB0aGUgcmVzdWx0IG9mIGhhdmluZyBhIHJlcXVpcmVtZW50IHRoYXQgYWxsIGZpZWxkcyB1c2VkIHRvCisjIGNvbnN0cnVjdCBjb21wb3VuZCBrZXlzIG11c3QgYmUgY2hhcmFjdGVyIGZpZWxkcykKKyMKKyMgQWRkaXRpb25hbGx5LCBmb3IgdGNwIGFuZCB1ZHAgbWF0Y2hlcywgdGhlICp0cF9wb3J0X29wIG5lZWRzCisjIHRvIGJlIHNldC4KKyMKK2RlZiB2bnNfbm9ybWFsaXplX3J1bGUoZGF0YSk6CisgICAgZGF0YVsncnVsZSddID0gc3RyKGludChkYXRhWydydWxlJ10pKQorCisgICAgaWYgZGF0YS5nZXQoJ3R5cGUnLCAnJykgaW4gWyd0Y3AnLCAndWRwJ106CisgICAgICAgIGlmIG5vdCAnc3JjLXRwLXBvcnQtb3AnIGluIGRhdGEgb3IgZGF0YVsnc3JjLXRwLXBvcnQtb3AnXSA9PSBOb25lOgorICAgICAgICAgICBkYXRhWydzcmMtdHAtcG9ydC1vcCddID0gJ2FueScKKyAgICAgICAgaWYgbm90ICdkc3QtdHAtcG9ydC1vcCcgaW4gZGF0YSBvciBkYXRhWydkc3QtdHAtcG9ydC1vcCddID09IE5vbmU6CisgICAgICAgICAgIGRhdGFbJ2RzdC10cC1wb3J0LW9wJ10gPSAnYW55JworCisKK2NvbW1hbmQuYWRkX2FjdGlvbigndm5zLW5vcm1hbGl6ZS1ydWxlJywgdm5zX25vcm1hbGl6ZV9ydWxlLAorICAgICAgICAgICAgICAgICAgIHsna3dhcmdzJyA6IHsgJ2RhdGEnIDogJyRkYXRhJyB9fSkKKyMKKworVk5TX0FDQ0VTU19MSVNUX0VOVFJZX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7CisgICAgJ25hbWUnICAgICAgICAgOiB7ICd0eXBlJyAgICAgICA6ICdwYXR0ZXJuJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ3BhdHRlcm4nICAgIDogcidcZCcsCisgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdydWxlJywKKyAgICAgICAgICAgICAgICAgICAgICAgJ3RpdGxlJyAgICAgIDogJzxhY2wgcnVsZSBudW1iZXI+JywKKyAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nIDogJ2NvbXBsZXRlLW9iamVjdC1maWVsZCcsCisgICAgICAgICAgICAgICAgICAgICAgICdvYmotdHlwZScgICA6ICd2bnMtYWNjZXNzLWxpc3QtZW50cnknLAorICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAnbW9kZScgICAgICAgICA6ICdjb25maWctdGVuYW50LXZucy1hY2wnLAorICAgICdzaG9ydC1oZWxwJyAgIDogJ0RlZmluZSBBQ0wgZGV0YWlscyBmb3IgdGhpcyBhY2Nlc3MtbGlzdCcsCisgICAgJ2RvYycgICAgICAgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1lbnRyeScsCisgICAgJ2RvYy1leGFtcGxlJyAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1lbnRyeS1leGFtcGxlJywKKyAgICAnY29tbWFuZC10eXBlJyA6ICdjb25maWctb2JqZWN0JywKKyAgICAncGFyZW50LWZpZWxkJyA6ICd2bnMtYWNjZXNzLWxpc3QnLAorICAgICdvYmotdHlwZScgICAgIDogJ3Zucy1hY2Nlc3MtbGlzdC1lbnRyeScsCisgICAgJ2RhdGEnICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAnZXRoZXItdHlwZScgICAgIDogTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdzcmMtaXAnICAgICAgICAgOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy1pcC1tYXNrJyAgICA6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAnZHN0LWlwJyAgICAgICAgIDogTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkc3QtaXAtbWFzaycgICAgOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy10cC1wb3J0JyAgICA6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAnc3JjLXRwLXBvcnQtb3AnIDogTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkc3QtdHAtcG9ydCcgICAgOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RzdC10cC1wb3J0LW9wJyA6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAnc3JjLW1hYycgICAgICAgIDogTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkc3QtbWFjJyAgICAgICAgOiBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3ZsYW4nICAgICAgICAgICA6IE5vbmUsCisgICAgICAgICAgICAgICAgICAgICAgICAnaWNtcC10eXBlJyAgICAgIDogTm9uZSwKKyAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgJ2FyZ3MnICA6ICgKKyAgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgOiAnYWN0aW9uJywKKyAgICAgICAgICAgICd0eXBlJyAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgOiAoICdwZXJtaXQnLCAnZGVueScgKSwKKyAgICAgICAgICAgICdkb2MnICAgIDogJ3Zuc3x2bnMtYWNjZXNzLWxpc3QtZW50cnktYWN0aW9uLSsnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgKAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnY2hvaWNlcycgOiAoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICA6ICd0eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnIDogKCdpcCcsJ3RjcCcsJ3VkcCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZG9jJyAgICA6ICd2bnN8dm5zLWFjY2Vzcy1saXN0LWVudHJ5LXR5cGUtKycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3R5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFzZS10eXBlJyAgICA6ICdoZXgtb3ItZGVjaW1hbC1pbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JhbmdlJyAgICAgICAgOiAoMCwyNTUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaGVscC1uYW1lJyAgICA6ICdpcCBwcm90b2NvbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInIDogJ2hleC10by1pbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgOiAndm5zfHZucy1hY2Nlc3MtZW50cnktdHlwZS1pcC1wcm90b2NvbCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkb2MtaW5jbHVkZScgIDogWyAncmFuZ2UnIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgIyBDb21wbGV4aXR5IGFyaXNlcyBmcm9tIHRoZSBTUkNfSVAgbWF0Y2ggcGFydCAKKyAgICAgICAgICAgICAgICAgICAgIyBiZWluZywgcmVxdWlyZWQsIHdoaWxlIHRoZSBwb3J0IG1hdGNoCisgICAgICAgICAgICAgICAgICAgICMgaXMgb3B0aW9uYWwsIGFzIGlzIHRoZSBEU1RfSVAgbWF0Y2gsIGJ1dCB0aGUKKyAgICAgICAgICAgICAgICAgICAgIyBEU1RfUE9SVF9NQVRDSCBpcyBvbmx5IHBvc3NpYmxlIHRvIGRlc2NyaWJlIHdoZW4KKyAgICAgICAgICAgICAgICAgICAgIyB0aGUgRFNUX0lQIHBhcnQgaXMgaW5jbHVkZWQKKyAgICAgICAgICAgICAgICAgICAgU1JDX0lQX01BVENILAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhcmdzJyA6IFNSQ19QT1JUX01BVENILAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhcmdzJyA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBEU1RfSVBfTUFUQ0gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXJncycgOiBEU1RfUE9SVF9NQVRDSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICgKKyAgICAgICAgICAgICAgICAgICAgIyBPbmx5IGFsbG93IHRoZSBpY21wIHR5cGUgZm9yIGljbXAgc3ludGF4CisgICAgICAgICAgICAgICAgICAgICMgdGhpcyBmdXJ0aGVyIGluY3JlYXNlcyB0aGUgc3ludGF4IGNvbXBsZXhpdHkKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgOiAndHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgICA6ICdlbnVtJywKKyAgICAgICAgICAgICAgICAgICAgICAgICd2YWx1ZXMnIDogJ2ljbXAnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1pcC0rJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgU1JDX0lQX01BVENILAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdhcmdzJyA6IFNSQ19QT1JUX01BVENICisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2FyZ3MnIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIERTVF9JUF9NQVRDSCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnb3B0aW9uYWwtZm9yLW5vJyA6IFRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhcmdzJyA6IERTVF9QT1JUX01BVENILAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnICAgICAgICAgICA6ICdpY21wLXR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsJyAgICAgICAgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ29wdGlvbmFsLWZvci1ubycgOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2Jhc2UtdHlwZScgICAgICAgOiAnaGV4LW9yLWRlY2ltYWwtaW50ZWdlcicsCisgICAgICAgICAgICAgICAgICAgICAgICAncmFuZ2UnICAgICAgICAgICA6ICgwLDI1NSksCisgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyAgICA6ICdoZXgtdG8taW50ZWdlcicsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICAoCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgIDogJ3R5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICA6ICdtYWMnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1tYWMnLAorICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAnY2hvaWNlcycgICA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0b2tlbicgOiAnYW55JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyA6ICdzcmMtbWFjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnICA6ICdob3N0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiBbICdjb21wbGV0ZS1hbGlhcy1jaG9pY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdvdGhlcicgICAgICAgIDogJ2hvc3R8bWFjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RhdGEtaGFuZGxlcicgOiAnYWxpYXMtdG8tdmFsdWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdjaG9pY2VzJyAgIDogKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Rva2VuJyA6ICdhbnknLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZmllbGQnIDogJ2RzdC1tYWMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZScgIDogJ2hvc3QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29tcGxldGlvbicgICA6IFsgJ2NvbXBsZXRlLWFsaWFzLWNob2ljZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAnaG9zdHxtYWMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdjaG9pY2VzJyA6ICgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ2V0aGVyLXR5cGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYmFzZS10eXBlJyAgICAgICA6ICdoZXgtb3ItZGVjaW1hbC1pbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JhbmdlJyAgICAgICAgICAgOiAoMTUzNiw2NTUzNiksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInICAgIDogJ2hleC10by1pbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvYycgICAgICAgICAgICAgOiAndm5zfHZucy1hY2Nlc3MtbGlzdC1ldGhlci10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgICAgOiAnZXRoZXItdHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0eXBlJyAgICAgICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmFsdWVzJyAgICAgICAgICA6IGZtdGNudi5ldGhlcl90eXBlX3RvX251bWJlcl9kaWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncGVybXV0ZScgICAgICAgICA6ICdza2lwJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICdmaWVsZCcgICAgICAgICAgIDogJ3ZsYW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3RhZycgICAgICAgICAgICAgOiAndmxhbicsCisgICAgICAgICAgICAgICAgICAgICAgICAnYmFzZS10eXBlJyAgICAgICA6ICdoZXgtb3ItZGVjaW1hbC1pbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdyYW5nZScgICAgICAgICAgIDogKDEsNDA5NiksICMgbm8gemVybz8gIHJlYWxseT8KKyAgICAgICAgICAgICAgICAgICAgICAgICdkYXRhLWhhbmRsZXInICAgIDogJ2hleC10by1pbnRlZ2VyJywKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbCcgICAgICAgIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICdvcHRpb25hbC1mb3Itbm8nIDogVHJ1ZSwKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgKQorICAgICAgICB9CisgICAgKSwKKyAgICAnYWN0aW9uJyA6ICgKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnICA6ICd2bnMtbm9ybWFsaXplLXJ1bGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2ZpZWxkJyA6ICdydWxlJywKKyAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnIDogJ3dyaXRlLW9iamVjdCcsCisgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICksCit9CisKK1ZOU19ERUZJTklUSU9OX0ZPUk1BVCA9IHsKKyAgICAndm5zLWRlZmluaXRpb24nIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyAgICAgOiBbICdJZHgnLCAndGVuYW50Jywndm5zbmFtZScsICdhY3RpdmUnLCAncHJpb3JpdHknLCAnYXJwLW1vZGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RoY3AtbW9kZScsICdkaGNwLWlwJywgJ2Jyb2FkY2FzdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkcmVzcy1zcGFjZScgXSwKKyAgICAgICAgICAgICd2bnMtY29uZmlnJyAgOiBbICdJZHgnLCAndGVuYW50Jywndm5zbmFtZScsJ2FjdGl2ZScsICdwcmlvcml0eScsICdhcnAtbW9kZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGhjcC1tb2RlJywgJ2RoY3AtaXAnLCAnYnJvYWRjYXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRyZXNzLXNwYWNlJywgXSwKKyAgICAgICAgICAgICdicmllZicgICAgICAgOiBbICdJZHgnLCAndGVuYW50JywgJ3Zuc25hbWUnLCAnYWRkcmVzcy1zcGFjZScsIF0KKyAgICAgICAgICAgIH0sCisgICAgICAgICdmaWVsZHMnIDogeworICAgICAgICAgICAndm5zbmFtZScgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdWTlMgSUQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICdhY3RpdmUnICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICdhZGRyZXNzLXNwYWNlJyAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdBZGRyZXNzIFNwYWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAncHJpb3JpdHknICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAnYXJwLW1vZGUnICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQVJQIENvbmZpZyBNb2RlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAnZGhjcC1tb2RlJyAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnREhDUCBDb25maWcgTW9kZScgLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICdkaGNwLWlwJyAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdESENQIElwJyAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgJ2Jyb2FkY2FzdCcgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0Jyb2FkY2FzdCBNb2RlJyAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgJ2FkZHJlc3Mtc3BhY2UnICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdBZGRyZXNzIFNwYWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAndGVuYW50JyAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnVGVuYW50JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgfQorICAgICAgICB9LAorfQorCitWTlNfSU5URVJGQUNFX1JVTEVfRk9STUFUID0geworICAgICd2bnMtaW50ZXJmYWNlLXJ1bGUnIDogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJzogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgIDogWyAnSWR4JywgJ3RlbmFudCcsICd2bnNuYW1lJywgJ3J1bGUnLCAnZGVzY3JpcHRpb24nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWxsb3ctbXVsdGlwbGUnLCAnYWN0aXZlJywgJ3ByaW9yaXR5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hYycsICd2bGFucycsICdpcC1zdWJuZXQnLCAnc3dpdGNoJywgJ3BvcnRzJywgJ3RhZ3MnCisgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ3Zucy1jb25maWcnIDogWyAnSWR4JywgJ3J1bGUnLCAnZGVzY3JpcHRpb24nLCAnYWxsb3ctbXVsdGlwbGUnLCAnYWN0aXZlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ByaW9yaXR5JywgJ21hYycsICd2bGFucycsICdpcC1zdWJuZXQnLCAnc3dpdGNoJywgJ3BvcnRzJywgJ3RhZ3MnCisgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcyc6IHsKKyAgICAgICAgICAgICdydWxlJyAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1ZOUyBSdWxlIElEJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3RlbmFudCcgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnVGVuYW50JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bnNuYW1lJyAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdWTlMgSUQnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdtYWMnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9ob3N0X2FuZF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndGFncycgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYWN0aXZlJyAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYWxsb3ctbXVsdGlwbGUnIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZGVzY3JpcHRpb24nICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaXAtc3VibmV0JyAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncG9ydHMnICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncHJpb3JpdHknICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncnVsZScgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3dpdGNoJyAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndGFncycgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndmxhbnMnICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKKworVk5TX0RJU1BMQVlfVk5TX0lOVEVSRkFDRV9GT1JNQVQgPSB7CisgICAgJ2Rpc3BsYXktdm5zLWludGVyZmFjZScgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgIDogWydJZHgnLCAndGVuYW50JywgJ3Zuc25hbWUnLCAnYWRkcmVzcy1zcGFjZScsICdpZCcsICdydWxlJywgJ21hYycsICd2bGFuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXBzJywgJ2F0dGFjaG1lbnQtcG9pbnRzJywgJ2xhc3Qtc2VlbiddLAorICAgICAgICAgICAgJ3Zucy1jb25maWcnIDogWydJZHgnLCAgICAgICAgJ2lkJywgJ3J1bGUnLCAnbWFjJywgJ3ZsYW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXBzJywgJ2F0dGFjaG1lbnQtcG9pbnRzJywgJ2xhc3Qtc2VlbiddCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJzogeworICAgICAgICAgICAgJ3RlbmFudCcgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnVGVuYW50JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bnNuYW1lJyAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1ZOUyBJRCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnaWQnICAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncnVsZScgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYWRkcmVzcy1zcGFjZScgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0FkZHJlc3MgU3BhY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbWFjJyAgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdNQUMgQWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9ob3N0X2FuZF9hbGlhcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3ZsYW4nICAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnVkxBTicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdpcHMnICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9pcF9hZGRyZXNzZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZW50cnktZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9hbGxfaXBfYWRkcmVzc2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYXR0YWNobWVudC1wb2ludHMnIDogeyAnZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9ob3N0X2F0dGFjaG1lbnRfcG9pbnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZW50cnktZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9hbGxfaG9zdF9hdHRhY2htZW50X3BvaW50cywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2xhc3Qtc2VlbicgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X3RpbWVfc2luY2VfdXRjX3RpbWVzdHIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKKworVk5TX0lOVEVSRkFDRV9ESVNQTEFZX0ZPUk1BVCA9IHsKKyAgICAndm5zLWludGVyZmFjZS1kaXNwbGF5JyA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgICAgOiBbJ0lkeCcsICd0ZW5hbnQnLCAndm5zbmFtZScsICdhZGRyZXNzLXNwYWNlJywgJ2lkJywgJ3J1bGUnLCAnbWFjJywgJ3ZsYW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcHMnLCAnYXR0YWNobWVudC1wb2ludHMnLCAnbGFzdC1zZWVuJ10sCisgICAgICAgICAgICAndm5zLWNvbmZpZycgOiBbJ0lkeCcsICAgICAgICAnaWQnLCAnYWRkcmVzcy1zcGFjZScsICdydWxlJywgJ21hYycsICd2bGFuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lwcycsICdhdHRhY2htZW50LXBvaW50cycsICdsYXN0LXNlZW4nXQorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcyc6IHsKKyAgICAgICAgICAgICdpZCcgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0ZW5hbnQnICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1RlbmFudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bnNuYW1lJyAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1ZOUyBJRCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdydWxlJyAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdtYWMnICAgICAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ01BQyBBZGRyZXNzJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X2hvc3RfYW5kX2FsaWFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndmxhbicgICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdWTEFOJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ2lwcycgICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X2lwX2FkZHJlc3NlcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbnRyeS1mb3JtYXR0ZXInIDogZm10Y252LnByaW50X2FsbF9pcF9hZGRyZXNzZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhdHRhY2htZW50LXBvaW50cycgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X2hvc3RfYXR0YWNobWVudF9wb2ludCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbnRyeS1mb3JtYXR0ZXInIDogZm10Y252LnByaW50X2FsbF9ob3N0X2F0dGFjaG1lbnRfcG9pbnRzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYWRkcmVzcy1zcGFjZScgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0FkZHJlc3MgU3BhY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbGFzdC1zZWVuJyAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfdGltZV9zaW5jZV91dGMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKKworVk5TX0lOVEVSRkFDRV9NQUNTX0ZPUk1BVCA9IHsKKyAgICAndm5zLWludGVyZmFjZS1tYWNzJyAgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgIDogWyAnSWR4JywgJ3RlbmFudCcsICd2bnMnLCAnYWRkcmVzcy1zcGFjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXRoJywgJ21hYycsICd2bGFuJywgJ2lwcycsICd0YWdzJywgJ2xhc3Qtc2VlbiddLAorICAgICAgICAgICAgJ3Njb3BlZCcgICAgIDogWyAnSWR4JywgICAgICAgICdhZGRyZXNzLXNwYWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZldGgnLCAnbWFjJywgJ3ZsYW4nLCAnaXBzJywgJ3RhZ3MnLCAnbGFzdC1zZWVuJ10sCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJzogeworICAgICAgICAgICAgJ3ZldGgnICAgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1ZpcnR1YWwgSS9GJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3RlbmFudCcgICAgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1RlbmFudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bnNuYW1lJyAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnOiAnVk5TIElEJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnbWFjJyAgICAgICAgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnTUFDIEFkZHJlc3MnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfaG9zdF9hbmRfYWxpYXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bGFuJyAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnVkxBTicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdpcHMnICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnSVAgQWRkcmVzcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfaXBfYWRkcmVzc2VzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdlbnRyeS1mb3JtYXR0ZXInIDogZm10Y252LnByaW50X2FsbF9pcF9hZGRyZXNzZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd0YWdzJyAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhZGRyZXNzLXNwYWNlJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnQWRkcmVzcyBTcGFjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdsYXN0LXNlZW4nICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdMYXN0IFNlZW4nLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfdGltZV9zaW5jZV91dGMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKKworVk5TX0lOVEVSRkFDRV9QSFlTX0ZPUk1BVCA9IHsKKyAgICAndm5zLWludGVyZmFjZS1waHlzJyAgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgICA6IFsnSWR4JywgJ2lkJywgJ2FkZHJlc3Mtc3BhY2UnLCAnc3dpdGNoJywgJ2xhc3Qtc2VlbicgXSwKKyAgICAgICAgICAgIH0sCisKKyAgICAgICAgJ2ZpZWxkcycgICAgICAgICAgOiB7CisgICAgICAgICAgICAnaWQnICAgICAgICAgICAgOiB7ICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X3Zuc19waHlzaWNhbF9pbnRlcmZhY2VfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1BoeXNpY2FsIEkvRicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3N3aXRjaCcgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyAgOiBmbXRjbnYucHJpbnRfc3dpdGNoX2FuZF9hbGlhcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhZGRyZXNzLXNwYWNlJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnQWRkcmVzcyBTcGFjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdsYXN0LXNlZW4nICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnTGFzdCBTZWVuJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdHRlcicgOiBmbXRjbnYucHJpbnRfdGltZV9zaW5jZV91dGMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCit9CisKKworVk5TX1ZOU19TV0lUQ0hfUE9SVFNfRk9STUFUID0geworICAgICd2bnMtc3dpdGNoLXBvcnRzJyAgICA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgICAgIDogWyAnSWR4JywgJ3RlbmFudCcsJ3ZucycsICdzd2l0Y2gnLCAncG9ydCcsICdyZWFzb24nIF0sCisgICAgICAgICAgICB9LAorCisgICAgICAgICdmaWVsZHMnICAgICAgICAgIDogeworICAgICAgICAgICAgJ3RlbmFudCcgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnVGVuYW50JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3Zuc25hbWUnICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnVk5TIElEJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3N3aXRjaCcgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnJlcGxhY2Vfc3dpdGNoX3dpdGhfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3BvcnQnICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ09GIFBvcnQgIycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5kZWNvZGVfb3BlbmZsb3dfcG9ydAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3dpdGNoLXBvcnQnIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnUGh5IEkvRicKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3JlYXNvbicgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LnByaW50X2hvc3RfbGlzdF9hbmRfYWxpYXMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgIH0sCit9CisKKworVk5TX1NXSVRDSF9QT1JUU19WTlNfUE9SVFNfRk9STUFUID0geworICAgICdzd2l0Y2gtcG9ydHMtdm5zJyAgICA6IHsKKyAgICAgICAgJ2ZpZWxkLW9yZGVyaW5ncycgOiB7CisgICAgICAgICAgICAnZGVmYXVsdCcgICAgIDogWyAnSWR4JywgJ3N3aXRjaCcsICdwb3J0JywgJ3RlbmFudCcsJ3Zuc25hbWUnLCAncmVhc29uJyBdLAorICAgICAgICAgICAgfSwKKworICAgICAgICAnZmllbGRzJyAgICAgICAgICA6IHsKKyAgICAgICAgICAgICd0ZW5hbnQnICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1RlbmFudCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bnNuYW1lJyAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ1ZOUycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF92bnNfY291bnRfZGljdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdzd2l0Y2gnICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5yZXBsYWNlX3N3aXRjaF93aXRoX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdwb3J0JyAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnT0YgUG9ydCAjJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmb3JtYXR0ZXInIDogZm10Y252LmRlY29kZV9vcGVuZmxvd19wb3J0CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdyZWFzb24nICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi5wcmludF9ob3N0X2xpc3RfYW5kX2FsaWFzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0KKyAgICB9LAorfQorCisKK1ZOU19WTlNfQUNDRVNTX0xJU1RfRk9STUFUID0geworICAgICd2bnMtYWNjZXNzLWxpc3QnOiB7CisgICAgICAgICdzaG93LXRoaXMnICAgICAgIDogWworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Zucy1hY2Nlc3MtbGlzdCcsICdkZWZhdWx0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsndm5zLWFjY2Vzcy1saXN0LWVudHJ5JywgJ2FjbC1icmllZiddCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyAgICA6IFsgJ3RlbmFudCcsICd2bnMnLCAnbmFtZScsICdwcmlvcml0eScsICdkZXNjcmlwdGlvbicgXSwKKyAgICAgICAgICAgICd2bnMtY29uZmlnJyA6IFsgICAgICAgICduYW1lJywgJ3ByaW9yaXR5JywgJ2Rlc2NyaXB0aW9uJyBdCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICduYW1lJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKKworVk5TX0FDQ0VTU19MSVNUX0VOVFJZX0ZPUk1BVCA9IHsKKyAgICAndm5zLWFjY2Vzcy1saXN0LWVudHJ5JzogeworICAgICAgICAnZmllbGQtb3JkZXJpbmdzJyA6IHsKKyAgICAgICAgICAgICdkZWZhdWx0JyAgICAgICAgIDogWyAnSWR4JywgJ3ZucycsICd2bnMtYWNjZXNzLWxpc3QnLCAncnVsZScsICdhY3Rpb24nLCAndHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzcmMtaXAnLCAnc3JjLWlwLW1hc2snLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHN0LWlwJywgJ2RzdC1pcC1tYXNrJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3JjLXRwLXBvcnQtb3AnLCAnc3JjLXRwLXBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHN0LXRwLXBvcnQtb3AnLCAnZHN0LXRwLXBvcnQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaWNtcC10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy1tYWMnLCAnZHN0LW1hYycsICdldGhlci10eXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZsYW4nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ3Zucy1jb25maWcnICAgICAgIDogWydJZHgnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2bnMtYWNjZXNzLWxpc3QnLCAncnVsZScsICdhY3Rpb24nLCAndHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy1pcCcsICdzcmMtaXAtbWFzaycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkc3QtaXAnLCAnZHN0LWlwLW1hc2snICwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3NyYy10cC1wb3J0LW9wJywgJ3NyYy10cC1wb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RzdC10cC1wb3J0LW9wJywgJ2RzdC10cC1wb3J0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ljbXAtdHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzcmMtbWFjJywgJ2RzdC1tYWMnLCAnZXRoZXItdHlwZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2bGFuJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICdhY2wtYnJpZWYnICAgICAgICA6IFsndm5zLWFjY2Vzcy1saXN0JywgJ3J1bGUnLCAnYWN0aW9uJywgJ3R5cGUnLCAnYWNsLXRleHQnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgJ3Njb3BlZC1hY2wtYnJpZWYnIDogWyAncnVsZScsICdhY3Rpb24nLCAndHlwZScsICdhY2wtdGV4dCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF0sCisgICAgICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICMKKyAgICAgICAgICAgICMgdm5zLWFjbC1lbnRyeSBmaWVsZHMgYXJlIGEgYml0IHVuY29tbW9uLiAgdGhlIGFjdGlvbiBhbmQgdHlwZQorICAgICAgICAgICAgIyBjYW4gb25seSBiZSBjb25maWd1cmVkIHZpYSB0aGUgY3JlYXRlIHBvcnRpb24gb2YgdGhlIGNvbW1hbmQsCisgICAgICAgICAgICAjIHdoaWxlIG1hbnkgb3RoZXIgZmllbGRzIHJlcXVyZSBzcGVjaWZpYyB2YWxpZGF0aW9uIHNvIHRoYXQKKyAgICAgICAgICAgICMgYWx0ZXJuYXRlIHZhbHVlcyBjYW4gYmUgcmVwbGFjZWQgZm9yIHNvbWUga2V5d29yZHMKKyAgICAgICAgICAgICMKKyAgICAgICAgICAgICMgdGhlIHZhbHVlcyBvZiB0aGUgJ3ZhbGlkYXRlJyBmaWVsZCBpcyB0aGUgbmFtZSBvZiB0aGUKKyAgICAgICAgICAgICMgZGVmIHRvIGNhbGwgKGluIHRoZSBTRE5TaCBjbGFzcykKKyAgICAgICAgICAgICMKKyAgICAgICAgICAgICd2bnMtYWNjZXNzLWxpc3QnICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnQWNsJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdydWxlJyAgICAgICAgICAgICA6IHsgJ3ZlcmJvc2UtbmFtZScgOiAnU2VxJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnYWN0aW9uJyAgICAgICAgICAgOiB7ICd2ZXJib3NlLW5hbWUnIDogJ0FjdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgICAgIDogeyAndmVyYm9zZS1uYW1lJyA6ICdUeXBlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3JjLWlwJyAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1NyYy1JcCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnc3JjLWlwLW1hc2snICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdTcmMtSXAtTWFzaycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAnZHN0LWlwJyAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0RzdC1JcCcgfSwKKyAgICAgICAgICAgICdkc3QtaXAtbWFzaycgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnRHN0LUlwLU1hc2snIH0sCisgICAgICAgICAgICAnc3JjLXRwLXBvcnQtb3AnICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1NyYy1Qb3J0LU9wJyB9LAorICAgICAgICAgICAgJ3NyYy10cC1wb3J0JyAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJyA6ICdTcmMtUG9ydCcgfSwKKyAgICAgICAgICAgICdkc3QtdHAtcG9ydC1vcCcgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnRHN0LVBvcnQtT3AnIH0sCisgICAgICAgICAgICAnZHN0LXRwLXBvcnQnICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ0RzdC1Qb3J0JyB9LAorICAgICAgICAgICAgJ2ljbXAtdHlwZScgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdldGhlci10eXBlJyAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAndm5zJyAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1ZOUyBJRCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgIH0sCit9CisKKworVk5TX0lOVEVSRkFDRV9BQ0NFU1NfTElTVF9GT1JNQVQgPSB7CisgICAgJ3Zucy1pbnRlcmZhY2UtYWNjZXNzLWxpc3QnOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgOiBbICdJZHgnLCAndm5zbmFtZScsICd2bnMtaW50ZXJmYWNlJywgJ25hbWUnLCAgJ2luLW91dCcgXSwKKyAgICAgICAgICAgICd2bnMtY29uZmlnJzogWyAnSWR4JywgICAgICAgICd2bnMtaW50ZXJmYWNlJywgJ25hbWUnLCAgJ2luLW91dCcgXQorICAgICAgICAgICAgfSwKKyAgICAgICAgJ2ZpZWxkcycgOiB7CisgICAgICAgICAgICAndm5zbmFtZScgICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnVk5TIElEJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICd2bnMtaW50ZXJmYWNlLW5hbWUnIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnIDogJ1ZOUyBJbnRlcmZhY2UgSUQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ25hbWUnICAgICAgICAgICAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnVk5TIEFjbCBuYW1lJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwKK30KKworCitWTlNfSU5URVJGQUNFX0ZPUk1BVCA9IHsKKyAgICAndm5zLWludGVyZmFjZScgOiB7CisgICAgICAgICdmaWVsZC1vcmRlcmluZ3MnIDogeworICAgICAgICAgICAgJ2RlZmF1bHQnICAgIDogWydJZHgnLCAndm5zJywgJ2FkZHJlc3Mtc3BhY2UnLCAnaW50ZXJmYWNlJywgJ3J1bGUnLCAnbGFzdC1zZWVuJywgXSwKKyAgICAgICAgICAgICd2bnMtY29uZmlnJyA6IFsnSWR4JywgJ2FkZHJlc3Mtc3BhY2UnLCAnaW50ZXJmYWNlJywgJ3J1bGUnLCAnbGFzdC1zZWVuJywgXQorICAgICAgICB9LAorICAgICAgICAnZmllbGRzJyA6IHsKKyAgICAgICAgICAgICdpZCcgICAgICAgICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZSc6ICdJRCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgJ3ZucycgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2ZXJib3NlLW5hbWUnOiAnVk5TIElEJworICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdpbnRlcmZhY2UnICA6IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZSc6ICdWTlMgSW50ZXJmYWNlIE5hbWUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAncnVsZScgICAgICAgIDogeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZSc6ICdWTlMgUnVsZSBJRCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdhZGRyZXNzLXNwYWNlJyAgICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnQWRkcmVzcyBTcGFjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICdsYXN0LXNlZW4nICAgOiB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmVyYm9zZS1uYW1lJzogJ0xhc3QgU2VlbicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZm9ybWF0dGVyJyA6IGZtdGNudi50aW1lc3RhbXBfdG9fbG9jYWxfdGltZXN0ciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgfQorICAgICAgICB9LAorfQorIiIiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2Rlc2MvdmVyc2lvbjIwMC92bnNfbW9kZWwucHkgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3Zuc19tb2RlbC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZjhmMmYzCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2Rlc2MvdmVyc2lvbjIwMC92bnNfbW9kZWwucHkKQEAgLTAsMCArMSwzOSBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2ltcG9ydCBjb21tYW5kCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9zdWJtb2RlKCd2bnMtaW50ZXJmYWNlLWNvbmZpZycpCitjb21tYW5kLm1vZGVsX29ial90eXBlX2Rpc2FibGVfc3VibW9kZSgndm5zLWFjY2Vzcy1saXN0LWVudHJ5JykKKworY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX3N1Ym1vZGUoJ3Zucy1pbnRlcmZhY2UtcnVsZS1uZXR3b3JrLXNlcnZpY2Utbm9kZS1tYXBwaW5nJykKKworY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3Zucy1kZWZpbml0aW9uJywgJ2Rlc2NyaXB0aW9uJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCd2bnMtZGVmaW5pdGlvbicsICdvcmlnaW4nKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3Zucy1kZWZpbml0aW9uJywgJ3ByaW9yaXR5JykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCd2bnMtZGVmaW5pdGlvbicsICd2bnNuYW1lJykKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCd2bnMtZGVmaW5pdGlvbicsICd0ZW5hbnQnKQorCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfZGlzYWJsZV9lZGl0KCd2bnMtYWNjZXNzLWxpc3QnLCAncHJpb3JpdHknKQorY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9kaXNhYmxlX2VkaXQoJ3Zucy1hY2Nlc3MtbGlzdCcsICdkZXNjcmlwdGlvbicpCisKK2NvbW1hbmQubW9kZWxfb2JqX3R5cGVfc2V0X3Nob3dfdGhpcygndm5zLWFjY2Vzcy1saXN0JywgWworICAgICAgICAgICAgICAgIFsndm5zLWFjY2Vzcy1saXN0JywgJ3Zucy1hY2Nlc3MtbGlzdCcsICdkZWZhdWx0JyBdLAorICAgICAgICAgICAgICAgIFsndm5zLWFjY2Vzcy1saXN0LWVudHJ5JywgJ3Zucy1hY2Nlc3MtbGlzdC1lbnRyeScsICdzY29wZWQtYWNsLWJyaWVmJyBdLAorICAgICAgICAgICAgICAgICAgICAgICAgXSkKKworY29tbWFuZC5tb2RlbF9vYmpfdHlwZV9zZXRfdGl0bGUoJ3Zucy1hY2Nlc3MtbGlzdC1lbnRyeScsICdBY2Nlc3MgTGlzdCBSdWxlcycpCmRpZmYgLS1naXQgYS9jbGkvZGVzYy92ZXJzaW9uMjAwL3Zuc190ZWNoc3VwcG9ydC5weSBiL2NsaS9kZXNjL3ZlcnNpb24yMDAvdm5zX3RlY2hzdXBwb3J0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM1MDg2YjQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZGVzYy92ZXJzaW9uMjAwL3Zuc190ZWNoc3VwcG9ydC5weQpAQCAtMCwwICsxLDMwIEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMiwyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitmcm9tIHRlY2hfc3VwcG9ydCBpbXBvcnQgYWRkX3RvX3Nob3dfdGVjaF9zdXBwb3J0CisKKyMgVk5TIGNvbW1hbmRzIHRvIGJlIGluY2x1ZGVkIGluICdzaG93IHRlY2gtc3VwcG9ydCcgb3V0cHV0Cit2bnNfc2hvd190ZWNoX3N1cHBvcnRfY29tbWFuZHMgPSBbCisgICAgIFsnY2xpJywgJ3Nob3cgdm5zIGFsbCddLAorICAgICBbJ2NsaScsICdzaG93IHZucyBhbGwgaW50ZXJmYWNlcyddLAorICAgICBbJ2NsaScsICdzaG93IHZucyBhbGwgc3dpdGNoJ10sCisgICAgIFsnY2xpJywgJ3Nob3cgdm5zIGFsbCBtYWMtYWRkcmVzcy10YWJsZSddLAorICAgICBbJ2NsaScsICdzaG93IHZucyBhbGwgZmxvdyddLAorXQorCisjIGFkZCBjb21tYW5kcyB0byBjZW50cmFsIGNvbW1hbmQgdGFibGUgdXNlZCBmb3IgJ3Nob3cgdGVjaC1zdXBwb3J0JworZm9yIGVudHJ5IGluIHZuc19zaG93X3RlY2hfc3VwcG9ydF9jb21tYW5kczoKKyAgICBhZGRfdG9fc2hvd190ZWNoX3N1cHBvcnQoc3RyKGVudHJ5WzBdKSwgc3RyKGVudHJ5WzFdKSwgJ3ZucycpCmRpZmYgLS1naXQgYS9jbGkvZG9jLnB5IGIvY2xpL2RvYy5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYWUzN2IzCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvYy5weQpAQCAtMCwwICsxLDY2IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMiwyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitpbXBvcnQgb3MKKworIworIyBkb2MsIGludGVyZmFjZSB0byBtYW5hZ2UgJ21hcmtkb3duJyB0ZXh0IHNlZ21lbnRzIGJhc2VkIG9uIAorIyBkb2N1bWVudGF0aW9uIHRhZydzLgorIworCitkb2MgPSB7fQorCitkZWYgcmVnaXN0ZXJfZG9jKHRhZywgcGF0aCk6CisgICAgIiIiCisgICAgSXRzIG5vdCBjbGVhciB3aGV0aGVyIHRoZSByZWdpc3RyYXRpbyBhcGkgb3VnaHQgdG8gb25seSBuYW1lCisgICAgdGhlIGF2YWlsYWJsZSB0YWdzLCBvciB3aGV0aGVyIHRoZSBhcGkgb3VnaHQgdG8gYWxzbyBhc3NvY2lhdGUKKyAgICB0ZXh0LCBidXQgaXQgc2VlbXMgdGhhdCBpdCB3b3VsZCBiZSB3aXNlciB0byBub3Qga2VlcCBhbGwgdGhlCisgICAgZG9jdW1lbnRhdGlvbiBpbiBtZW1vcnkKKyAgICAiIiIKKworICAgIGRvY1t0YWddID0gcGF0aAorCitkZWYgYWRkX2RvY190YWdzKGJhc2UsIHRhZ19wcmVmaXggPSBOb25lKToKKyAgICBwYXRoID0gYmFzZQorICAgIGlmIHRhZ19wcmVmaXggPT0gTm9uZToKKyAgICAgICAgdGFnX3ByZWZpeCA9IFtdCisgICAgZWxpZiB0eXBlKHRhZ19wcmVmaXgpID09IHN0cjoKKyAgICAgICAgdGFnX3ByZWZpeCA9IFt0YWdfcHJlZml4XQorCisgICAgaWYgb3MucGF0aC5leGlzdHMocGF0aCk6CisgICAgICAgIGZvciBlbGVtIGluIG9zLmxpc3RkaXIocGF0aCk6CisgICAgICAgICAgICB0aGlzX3RhZ19wcmVmaXggPSBsaXN0KHRhZ19wcmVmaXgpCisgICAgICAgICAgICB0aGlzX3RhZ19wcmVmaXguYXBwZW5kKGVsZW0pCisgICAgICAgICAgICBmdWxsX3BhdGggPSBvcy5wYXRoLmpvaW4ocGF0aCwgZWxlbSkKKyAgICAgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoZnVsbF9wYXRoKToKKyAgICAgICAgICAgICAgICBhZGRfZG9jX3RhZ3MoZnVsbF9wYXRoLCB0aGlzX3RhZ19wcmVmaXgpCisgICAgICAgICAgICBlbGlmIG9zLnBhdGguaXNmaWxlKGZ1bGxfcGF0aCk6CisgICAgICAgICAgICAgICAgcmVnaXN0ZXJfZG9jKCd8Jy5qb2luKHRoaXNfdGFnX3ByZWZpeCksIGZ1bGxfcGF0aCkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcHJpbnQgJ2FkZF9kb2NfdGFnczogdW5rbm93biBmaWxlIHR5cGUgZm9yICcsIGZ1bGxfcGF0aAorCisKK2RlZiBnZXRfdGV4dChjb250ZXh0LCB0YWcpOgorICAgIHBhdGggPSBkb2MuZ2V0KHRhZykKKyAgICBpZiBwYXRoOgorICAgICAgICBpZiBvcy5wYXRoLmV4aXN0cyhwYXRoKToKKyAgICAgICAgICAgIHdpdGggb3BlbihwYXRoLCAncicpIGFzIGY6CisgICAgICAgICAgICAgICAgcmV0dXJuIGYucmVhZCgpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBpZiBjb250ZXh0LnNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgICAgIHByaW50ICdkb2M6IHRhZyAlczogbWlzc2luZyAnICUgdGFnCisgICAgICAgICAgICAKKyAgICByZXR1cm4gJycKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYWNjb3VudGluZyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYWNjb3VudGluZwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MTcwNmZhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hY2NvdW50aW5nCkBAIC0wLDAgKzEsMyBAQAorQ29uZmlndXJlIGFjY291bnRpbmcgKGxvZ2dpbmcgZm9yIHVzZXIgQ0xJIGV2ZW50cykuCitBY2NvdW50aW5nIGlzIGNvbmZpZ3VyZWQgZm9yIGEgc3BlY2lmaWMgcm9sZSwgdmlhIGEgc3BlY2lmaWMgY2hhbm5lbCwKK2ZvciBzcGVjaWZpYyBldmVudHMsIHVzaW5nIG9uZSBvciBtb3JlIGFjY291bnRpbmcgc2VydmljZXMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWFjY291bnRpbmctZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYWNjb3VudGluZy1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg1YjA3MjAKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWFjY291bnRpbmctZXhhbXBsZQpAQCAtMCwwICsxLDEzIEBACithYWEgYWNjb3VudGluZyBleGVjIGRlZmF1bHQgbm9uZQorICBUdXJuIG9mZiBhY2NvdW50aW5nIHNlcnZpY2VzIGZvciBTU0ggQ0xJIGFjY2Vzc2VzLgorICBUaGUgbmF0aXZlICgvdmFyL2xvZykgYWNjb3VudGluZyBjYW5ub3QgYmUgZGlzYWJsZWQuCisKK25vIGFhYSBhY2NvdW50aW5nIGV4ZWMgZGVmYXVsdAorICBSZXNldCB0aGUgYWNjb3VudGluZyBzZXJ2aWNlcyBmb3IgU1NIIENMSSBhY2Nlc3NlcyB0byBkZWZhdWx0cy4KKyAgVGhpcyBkaXNhYmxlcyBhbGwgYWNjb3VudGluZyBzZXJ2aWNlcywgd2l0aCB0aGUgZXhjZXB0aW9uCisgIG9mIG5hdGl2ZSAoL3Zhci9sb2cpIGFjY291bnRpbmcsIHdoaWNoIGlzIGFsd2F5cyBlbmFibGVkLgorCithYWEgYWNjb3VudGluZyBleGVjIGRlZmF1bHQgc3RhcnQtc3RvcCBncm91cCB0YWNhY3MrCisgIENvbmZpZ3VyZSB0aGUgY3VycmVudGx5LWRlZmluZWQgc2V0IG9mIFRBQ0FDUysgc2VydmVycworICBhcyBhbiBhY2NvdW50aW5nIHNlcnZpY2UgZm9yIFNTSCBDTEkgbG9naW4gYW5kIGxvZ291dC4KKwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hY2NvdW50aW5nLWV4ZWMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWFjY291bnRpbmctZXhlYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OTA5NTM3Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hY2NvdW50aW5nLWV4ZWMKQEAgLTAsMCArMSBAQAorQ29uZmlndXJlIGFjY291bnRpbmcgc2VydmljZXMgZm9yIGV4ZWMgbW9kZSAoQ0xJIGFjY2VzcykuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWFjY291bnRpbmctZXhlYy11c2UtZGVmYXVsdCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYWNjb3VudGluZy1leGVjLXVzZS1kZWZhdWx0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY1MzZlZDcKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWFjY291bnRpbmctZXhlYy11c2UtZGVmYXVsdApAQCAtMCwwICsxLDUgQEAKK0NvbmZpZ3VyZSBhY2NvdW50aW5nIHNlcnZpY2VzIHdoaWxlIGNvbm5lY3RpbmcgdmlhIHRoZSBkZWZhdWx0IGNoYW5uZWwKKyhjdXJyZW50bHkgU1NIKS4KKworUmVzZXQgdGhlIGFjY291bnRpbmcgc2VydmljZXMgKGN1cnJlbnRseSB0byBuYXRpdmUgL3Zhci9sb2cgbG9nZ2luZykKK3dpdGggdGhlICdubycgdmVyc2lvbiBvZiB0aGlzIGNvbW1hbmQuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWFjY291bnRpbmctZXhlYy11c2Utbm9uZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYWNjb3VudGluZy1leGVjLXVzZS1ub25lCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc2MjBjMTkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWFjY291bnRpbmctZXhlYy11c2Utbm9uZQpAQCAtMCwwICsxLDMgQEAKK0Rpc2FibGUgYWNjb3VudGluZyBzZXJ2aWNlcyBmb3IgdGhpcyByb2xlIGFuZCBjaGFubmVsLgorCitOb3RlIHRoYXQgbG9jYWwgKC92YXIvbG9nKSBhY2NvdW50aW5nIGlzIGFsd2F5cyBlbmFibGVkLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hY2NvdW50aW5nLWV4ZWMtdXNlLXNlcnZlci1ncm91cCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYWNjb3VudGluZy1leGVjLXVzZS1zZXJ2ZXItZ3JvdXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmIwY2U3OQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYWNjb3VudGluZy1leGVjLXVzZS1zZXJ2ZXItZ3JvdXAKQEAgLTAsMCArMSwyIEBACitDb25maWd1cmUgYWNjb3VudGluZyBzZXJ2aWNlcyB0byB1c2UgYSBzcGVjaWZpYyBncm91cCBvZiBhY2NvdW50aW5nCitzZXJ2ZXJzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hY2NvdW50aW5nLWV4ZWMtdXNlLXN0YXJ0LXN0b3AgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWFjY291bnRpbmctZXhlYy11c2Utc3RhcnQtc3RvcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMzg0MmVkCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hY2NvdW50aW5nLWV4ZWMtdXNlLXN0YXJ0LXN0b3AKQEAgLTAsMCArMSwyIEBACitDb25maWd1cmUgYWNjb3VudGluZyBzZXJ2aWNlcyB0byByZWNvcmQgJ3N0YXJ0JyAobG9naW4pCithbmQgJ3N0b3AnIChsb2dvdXQpIGV2ZW50cy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYWNjb3VudGluZy1leGVjLXVzZS10YWNhY3MgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWFjY291bnRpbmctZXhlYy11c2UtdGFjYWNzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM0MmU1NjcKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWFjY291bnRpbmctZXhlYy11c2UtdGFjYWNzCkBAIC0wLDAgKzEsMiBAQAorQ29uZmlndXJlIHRoZSBjdXJyZW50bHktZGVmaW5lZCBUQUNBQ1MrIHNlcnZlcnMgKHRoZSAndGFjYWNzKycgZ3JvdXApCithcyBhbiBhY2NvdW50aW5nIHNlcnZpY2UuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWF1dGhlbnRpY2F0aW9uIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRoZW50aWNhdGlvbgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZGYxYjYyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRoZW50aWNhdGlvbgpAQCAtMCwwICsxLDMgQEAKK0NvbmZpZ3VyZSBhdXRoZW50aWNhdGlvbiAodXNlciBwYXNzd29yZCB2YWxpZGF0aW9uKS4gIFVzZXJzIGFyZQorYXV0aGVudGljYXRlZCBmb3IgYSBzcGVjaWZpYyB0YXNrIGFuZCB2aWEgYSBzcGVjaWZpYyBjaGFubmVsLCB1c2luZyBvbmUKK29yIG1vcmUgYXV0aGVudGljYXRpb24gc291cmNlcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aGVudGljYXRpb24tZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aGVudGljYXRpb24tZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZGNhMjVkCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRoZW50aWNhdGlvbi1leGFtcGxlCkBAIC0wLDAgKzEsMTQgQEAKK2FhYSBhdXRoZW50aWNhdGlvbiBsb2dpbiBkZWZhdWx0IGdyb3VwIHRhY2FjcysKKyAgVXNlIFRBQ0FDUysgZm9yIGF1dGhlbnRpY2F0aW5nIFNTSCBDTEkgbG9naW5zCisKK2FhYSBhdXRoZW50aWNhdGlvbiBsb2dpbiBkZWZhdWx0IGxvY2FsCisgIFVzZSBsb2NhbCBVTklYIC9ldGMvcGFzc3dkIGZvciBhdXRoZW50aWNhdGluZyBTU0ggQ0xJIGxvZ2lucy4KKworYWFhIGF1dGhlbnRpY2F0aW9uIGxvZ2luIGRlZmF1bHQgZ3JvdXAgdGFjYWNzKyBsb2NhbAorICBVc2UgYm90aCBUQUNBQ1MrIGFuZCAvZXRjL3Bhc3N3ZCBmb3IgbG9naW4uCisKK25vIGFhYSBhdXRoZW50aWNhdGlvbiBsb2dpbiBkZWZhdWx0CisgIFJlc2V0IGF1dGhlbnRpY2F0aW9uIHNvdXJjZXMgZm9yIFNTSCBDTEkgbG9naW4uCisKKworCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWF1dGhlbnRpY2F0aW9uLWxvZ2luIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRoZW50aWNhdGlvbi1sb2dpbgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40N2Q2YmNmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRoZW50aWNhdGlvbi1sb2dpbgpAQCAtMCwwICsxIEBACitDb25maWd1cmUgYXV0aGVudGljYXRpb24gc291cmNlcyBmb3IgQ0xJIGxvZ2luLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRoZW50aWNhdGlvbi1sb2dpbi11c2UtZGVmYXVsdCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aGVudGljYXRpb24tbG9naW4tdXNlLWRlZmF1bHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODI0NTQ2YQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aGVudGljYXRpb24tbG9naW4tdXNlLWRlZmF1bHQKQEAgLTAsMCArMSw1IEBACitDb25maWd1cmUgYXV0aGVudGljYXRpb24gc291cmNlcyB3aGlsZSBsb2dnaW5nIGludG8gdGhlIENMSQordmlhIHRoZSBkZWZhdWx0IGNoYW5uZWwgKGN1cnJlbnRseSBTU0gpLgorCitSZXNldCB0aGUgYXV0aGVudGljYXRpb24gc291cmNlcyAoY3VycmVudGx5IHRvICdsb2NhbCcgb25seSkgd2l0aAordGhlICdubycgdmVyc2lvbiBvZiB0aGlzIGNvbW1hbmQuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWF1dGhlbnRpY2F0aW9uLWxvZ2luLXVzZS1sb2NhbCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aGVudGljYXRpb24tbG9naW4tdXNlLWxvY2FsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQzMTExY2EKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWF1dGhlbnRpY2F0aW9uLWxvZ2luLXVzZS1sb2NhbApAQCAtMCwwICsxLDIgQEAKK0NvbmZpZ3VyZSB0aGUgbG9jYWwgcGFzc3dvcmQgZGF0YWJhc2UgKFVOSVggL2V0Yy9wYXNzd2QpCithcyBhbiBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc20uCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWF1dGhlbnRpY2F0aW9uLWxvZ2luLXVzZS10YWNhY3MgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWF1dGhlbnRpY2F0aW9uLWxvZ2luLXVzZS10YWNhY3MKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmU3ZTJiYwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aGVudGljYXRpb24tbG9naW4tdXNlLXRhY2FjcwpAQCAtMCwwICsxLDIgQEAKK1VzZSB0aGUgc2V0IG9mIGFsbCBkZWZpbmVkIFRBQ0FDUysgc2VydmVycyAodGhlICd0YWNhY3MrJyBncm91cCkKK2FzIGFuIGF1dGhlbnRpY2F0aW9uIHNvdXJjZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aG9yaXphdGlvbiBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aG9yaXphdGlvbgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYTRkZWNjCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRob3JpemF0aW9uCkBAIC0wLDAgKzEsMiBAQAorQ29uZmlndXJlIGF1dGhvcml6YXRpb24gKHVzZXIgcHJpdmlsZWdlcykuICBVc2VycyBhcmUgYXV0aG9yaXplZCBmb3IgYSBzcGVjaWZpYyByb2xlCithbmQgdmlhIGEgc3BlY2lmaWMgY2hhbm5lbCwgdXNpbmcgb25lIG9yIG1vcmUgYXV0aG9yaXphdGlvbiBzb3VyY2VzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRob3JpemF0aW9uLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWF1dGhvcml6YXRpb24tZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NGRmZWRkCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRob3JpemF0aW9uLWV4YW1wbGUKQEAgLTAsMCArMSwxNCBAQAorYWFhIGF1dGhvcml6YXRpb24gZXhlYyBkZWZhdWx0IGdyb3VwIHRhY2FjcysKKyAgVXNlIFRBQ0FDUysgZm9yIGF1dGhvcml6aW5nIENMSSBhY2Nlc3MKKworYWFhIGF1dGhvcml6YXRpb24gZXhlYyBkZWZhdWx0IGxvY2FsCisgIFVzZSBsb2NhbCBVTklYIC9ldGMvcGFzc3dkIGZvciBhdXRob3JpemluZyBDTEkgYWNjZXNzCisKK2FhYSBhdXRob3JpemF0aW9uIGV4ZWMgZGVmYXVsdCBncm91cCB0YWNhY3MrIGxvY2FsCisgIFVzZSBib3RoIFRBQ0FDUysgYW5kIC9ldGMvcGFzc3dkIGZvciBDTEkgYXV0aG9yaXphdGlvbgorCitubyBhYWEgYXV0aG9yaXphdGlvbiBleGVjIGRlZmF1bHQKKyAgUmVzZXQgYXV0aG9yaXphdGlvbiBzb3VyY2VzIGZvciBTU0ggQ0xJIGFjY2Vzcy4KKworCisKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aG9yaXphdGlvbi1leGVjIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRob3JpemF0aW9uLWV4ZWMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGQ1ODM1YgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aG9yaXphdGlvbi1leGVjCkBAIC0wLDAgKzEgQEAKK0NvbmZpZ3VyZSBhdXRob3JpemF0aW9uIHNvdXJjZXMgZm9yIGV4ZWMgbW9kZSAoQ0xJIGFjY2VzcykuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWF1dGhvcml6YXRpb24tZXhlYy11c2UtZGVmYXVsdCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aG9yaXphdGlvbi1leGVjLXVzZS1kZWZhdWx0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlhMzkwNTEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hYWEvYWFhLWF1dGhvcml6YXRpb24tZXhlYy11c2UtZGVmYXVsdApAQCAtMCwwICsxLDUgQEAKK0NvbmZpZ3VyZSBhdXRob3JpemF0aW9uIHNvdXJjZXMgd2hpbGUgY29ubmVjdGluZyB2aWEgdGhlIGRlZmF1bHQgY2hhbm5lbAorKGN1cnJlbnRseSBTU0gpLgorCitSZXNldCB0aGUgYXV0aG9yaXphdGlvbiBzb3VyY2VzIChjdXJyZW50bHkgdG8gJ2xvY2FsJyBvbmx5KSB3aXRoCit0aGUgJ25vJyB2ZXJzaW9uIG9mIHRoaXMgY29tbWFuZC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aG9yaXphdGlvbi1leGVjLXVzZS1sb2NhbCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aG9yaXphdGlvbi1leGVjLXVzZS1sb2NhbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NTQwYTE0Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRob3JpemF0aW9uLWV4ZWMtdXNlLWxvY2FsCkBAIC0wLDAgKzEsMiBAQAorQ29uZmlndXJlIHRoZSBsb2NhbCBwYXNzd29yZCBkYXRhYmFzZSAoVU5JWCAvZXRjL3Bhc3N3ZCkKK2FzIGFuIGF1dGhvcml6YXRpb24gbWVjaGFuaXNtLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWFhL2FhYS1hdXRob3JpemF0aW9uLWV4ZWMtdXNlLXRhY2FjcyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aG9yaXphdGlvbi1leGVjLXVzZS10YWNhY3MKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmJkZGM2YwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FhYS9hYWEtYXV0aG9yaXphdGlvbi1leGVjLXVzZS10YWNhY3MKQEAgLTAsMCArMSwyIEBACitVc2UgdGhlIHNldCBvZiBhbGwgZGVmaW5lZCBUQUNBQ1MrIHNlcnZlcnMgKHRoZSAndGFjYWNzKycgZ3JvdXApCithcyBhbiBhdXRob3JpemF0aW9uIHNvdXJjZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvYWN0aXZlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9hY3RpdmUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWJhNWFlYQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvYWN0aXZlCkBAIC0wLDAgKzEsMiBAQAorU2V0IHRoZSBhZGRyZXNzLXNwYWNlIGFjdGl2ZS4gSWYgYW4gYWRkcmVzcy1zcGFjZSBpcyBpbmFjdGl2ZSB0aGUKK2NvbnRyb2xsZXIgd2lsbCBub3QgdXNlIGl0IG9yIGl0cyBydWxlcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvYWN0aXZlLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL2FjdGl2ZS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg4YjFhNDMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL2FjdGl2ZS1leGFtcGxlCkBAIC0wLDAgKzEsNiBAQAorYWN0aXZlCisgIFdpdGhpbiBhbiBhZGRyZXNzLXNwYWNlIGNvbmZpZyBzdWItbW9kZSwKKyAgc2V0IHRoaXMgYWRkcmVzcy1zcGFjZSBhcyBhY3RpdmUKKworbm8gYWN0aXZlCisgIERlYWN0aXZhdGUgdGhlIGN1cnJlbnRseS1jb25maWd1cmVkIGFkZHJlc3Mgc3BhY2UKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvYWRkcmVzcy1zcGFjZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvYWRkcmVzcy1zcGFjZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNGUzZmNiCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9hZGRyZXNzLXNwYWNlCkBAIC0wLDAgKzEsNCBAQAorU2V0IHVwIG9yIHRlYXIgZG93biBhZGRyZXNzIHNwYWNlIGRlZmluaXRpb25zLgorCitTcGVjaWZ5aW5nIGFuIGFkZHJlc3Mgc3BhY2UgYnkgbmFtZSBlbnRlcnMgdGhlIGFkZHJlc3Mtc3BhY2UKK2NvbmZpZ3VyYXRpb24gc3ViLW1vZGUuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL2FkZHJlc3Mtc3BhY2UtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvYWRkcmVzcy1zcGFjZS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFlZTgxMWMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL2FkZHJlc3Mtc3BhY2UtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK2FkZHJlcy1zcGFjZSBNWS1BRERSRVNTCisgIERlZmluZSBhIG5ldyBhZGRyZXNzIHNwYWNlLCBhbmQgZW50ZXIgaXRzIGNvbmZpZ3VyYXRpb24gc3VibW9kZQorCitubyBhZGRyZXNzLXNwYWNlIE1ZLUFERFJFU1MKKyAgRGVsZXRlIGFuIGFkZHJlc3Mgc3BhY2UgYnkgbmFtZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9kZXNjcmlwdGlvbiBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvZGVzY3JpcHRpb24KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjNkODdhNwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvZGVzY3JpcHRpb24KQEAgLTAsMCArMSBAQAorQSB1c2VyIHByb3ZpZGVkIHRleHR1YWwgZGVzY3JpcHRpb24gZm9yIHRoaXMgYWRkcmVzcy1zcGFjZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvZGVzY3JpcHRpb24tZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvZGVzY3JpcHRpb24tZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lYTJiNWU4Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9kZXNjcmlwdGlvbi1leGFtcGxlCkBAIC0wLDAgKzEsMiBAQAorZGVzY3JpcHRpb24gIlRISVMgSVMgTVkgQUREUkVTUy1TUEFDRSIKKyAgQXNzb2NpYXRlIGEgdGV4dHVhbCBkZXNjcmlwdGlvbiB3aXRoIHRoaXMgYWRkcmVzcy1zcGFjZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZC1hY3RpdmUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL2lkLWFjdGl2ZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMDFkY2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZC1hY3RpdmUKQEAgLTAsMCArMSBAQAorQ29uZmlndXJlIHRoaXMgYWRkcmVzcyBzcGFjZSBpZGVudGlmaWVyIHJ1bGUgYXMgJ2FjdGl2ZScKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL2lkLWFjdGl2ZS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZC1hY3RpdmUtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNjg4ZmRhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZC1hY3RpdmUtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK2FjdGl2ZQorICBDb25maWd1cmUgdGhpcyBhZGRyZXNzIHNwYWNlIGlkZW50aWZpZXIgcnVsZSBhcyBhY3RpdmUKKworbm8gYWN0aXZlCisgIERlYWN0aXZhdGUgdGhpcyBhZGRyZXNzIHNwYWNlIGlkZW50aWZpZXIgcnVsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZC1kZXNjcmlwdGlvbiBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvaWQtZGVzY3JpcHRpb24KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2YxMGJmYQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvaWQtZGVzY3JpcHRpb24KQEAgLTAsMCArMSBAQAorQSB1c2VyIHByb3ZpZGVkIHRleHR1YWwgZGVzY3JpcHRpb24gZm9yIHRoaXMgaWRlbnRpZmllci1ydWxlLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZC1kZXNjcmlwdGlvbi1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZC1kZXNjcmlwdGlvbi1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZkOTIzZGUKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL2lkLWRlc2NyaXB0aW9uLWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACitkZXNjcmlwdGlvbiAiVGhpcyBpcyBydWxlNDIiCisgIFByb3ZpZGUgYSBkZXNjcmlwdGlvbiBmb3IgdGhlIGN1cnJlbnRseS1kZWZpbmVkIGFkZHJlc3Mtc3BhY2UgaWRlbnRpZmllciBydWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL2lkLXByaW9yaXR5IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZC1wcmlvcml0eQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yMzRlMDdlCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZC1wcmlvcml0eQpAQCAtMCwwICsxLDMgQEAKK1RoZSBwcmlyb3JpdHkgb2YgdGhpcyBpZGVudGlmaWVyLXJ1bGUuIEhpZ2hlciBudW1lcmljIHZhbHVlcyByZXByZXNlbnQKK2hpZ2hlciBwcmlvcml0eS4gVGhlIGhpZ2hlc3QgcHJpb3JpdHkgaWRlbnRpZmllci1ydWxlIHRoYXQgbWF0Y2hlcyBhCitnaXZlbiBwYWNrZXQgd2lsbCBiZSBjaG9vc2VuLiAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvaWQtcHJpb3JpdHktZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvaWQtcHJpb3JpdHktZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MWRhMWY2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZC1wcmlvcml0eS1leGFtcGxlCkBAIC0wLDAgKzEsMiBAQAorcHJpb3JpdHkgMTAwCisgIFNldCB0aGUgcHJpb3JpdHkgZm9yIHRoZSBjdXJyZW50bHktZGVmaW5lZCBhZGRyZXNzLXNwYWNlIGlkZW50aWZpZXIgcnVsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZGVudGlmaWVyIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZGVudGlmaWVyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE2Mzc4OTYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL2lkZW50aWZpZXIKQEAgLTAsMCArMSwzIEBACitUaGlzIGlzIHRoZSBuYW1lIG9mIHRoZSBhZGRyZXNzLXNwYWNlLiAgVGhlIGFkZHJlc3Mtc3BhY2UgbmFtZSAiZGVmYXVsdCIKK3JlcHJlc2VudHMgdGhlIGRlZmF1bHQgYWRkcmVzcyBzcGFjZSB0aGF0IHdpbGwgYmUgdXNlZCBpZiBubyBvdGhlcgorYWRkcmVzcy1zcGFjZSBtYXRjaGVzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZGVudGlmaWVyLXJ1bGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL2lkZW50aWZpZXItcnVsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zNmQ1MTgwCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZGVudGlmaWVyLXJ1bGUKQEAgLTAsMCArMSwyIEBACitTZXQgYW4gYWRkcmVzcy1zcGFjZSBpZGVudGlmaWVyIHJ1bGUgYW5kIGVudGVyIHN1Ym1vZGUuIERldmljZXMgYXJlCithc3NpZ25lZCBpbnRvIGFkZHJlc3Mtc3BhY2VzIGJhc2VkIG9uIGlkZW50aWZpZXItcnVsZXMuIApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9pZGVudGlmaWVyLXJ1bGUtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvaWRlbnRpZmllci1ydWxlLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjgxMzAzMwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvaWRlbnRpZmllci1ydWxlLWV4YW1wbGUKQEAgLTAsMCArMSw3IEBACitpZGVudGlmaWVyLXJ1bGUgcnVsZTQyCisgIERlZmluZSBhIG5ldyBpZGVudGlmaWVyIHJ1bGUgZm9yIHRoaXMgYWRkcmVzcy1zcGFjZSBkZWZpbml0aW9uLAorICBhbmQgZW50ZXIgdGhlIGlkZW50aWZpZXItcnVsZSBzdWJtb2RlCisKK25vIGlkZW50aWZpZXItcnVsZSBydWxlNDIKKyAgRGVsZXRlIGFuIGlkZW50aWZpZXIgcnVsZSBhc3NvY2lhdGVkIHdpdGggdGhlCisgIGN1cnJlbnRseS1kZWZpbmUgYWRkcmVzcy1zcGFjZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9tYXRjaCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvbWF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWU3MzcyMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvbWF0Y2gKQEAgLTAsMCArMSwyIEBACitDb25maWd1cmUgYSBtYXRjaCBmb3IgdGhpcyBpZGVudGlmaWVyIHJ1bGUuIElmIG11bHRpcGxlIG1hdGNoZXMgYXJlCitjb25maWd1cmVkIHRoZXkgd2lsbCBiZSBsb2dpY2FsbHkgQU5EJ2VkLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9tYXRjaC1zd2l0Y2ggYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL21hdGNoLXN3aXRjaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lODA1Y2MwCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9tYXRjaC1zd2l0Y2gKQEAgLTAsMCArMSwzIEBACitBc3NvY2lhdGUgYSBzd2l0Y2ggb3Igc2V0IG9mIHN3aXRjaCBpbnRlcmZhY2VzIHdpdGggdGhpcyBpZGVudGlmaWVyCitydWxlLiBEZXZpY2VzIHByZXNlbnQgb24gdGhlIHNwZWNpZmllZCBzd2l0Y2gvaW50ZXJmYWNlcyB3aWxsIGJlCittYXRjaGVkLiAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvbWF0Y2gtc3dpdGNoLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL21hdGNoLXN3aXRjaC1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlhM2Q0YjEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL21hdGNoLXN3aXRjaC1leGFtcGxlCkBAIC0wLDAgKzEsMTIgQEAKK21hdGNoIHN3aXRjaCAwMDowMDoxMToyMjozMzo0NDo1NTo2NgorICAgIE1hdGNoZXMgYWxsIGludGVyZmFjZXMgb24gdGhlIHN3aXRjaCB3aXRoIHRoaXMgRFBJRC4KKworbWF0Y2ggc3dpdGNoIDAwOjAwOjExOjIyOjMzOjQ0OjU1OjY2IEV0aGVybmV0MQorICAgIE1hdGNoZXMgaW50ZXJmYWNlIEV0aGVybmV0MSBvbiB0aGUgc3BlY2lmaWVkIHN3aXRjaC4KKworbWF0Y2ggc3dpdGNoIDAwOjAwOjExOjIyOjMzOjQ0OjU1OjY2IEV0aGVybmV0MSxFdGhlcm5ldDUtMTAscG9ydDIKKyAgICBNYXRjaGVzIGludGVyZmFjZXMgRXRoZXJuZXQxLCBFdGhlcm5ldDUsIEV0aGVybmV0NiwgLi4uIEV0aGVybmV0MTAsCisJYW5kIHBvcnQyIG9uIHRoZSBzcGVjaWZpZWQgc3dpdGNoLgorCittYXRjaCBzd2l0Y2ggVG9SLTEtMSAKKyAgICBNYXRjaGVzIHRoZSBzd2l0Y2ggd2l0aCB0aGUgYWxpYXMgJ1RvUi0xLTEnCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL21hdGNoLXN3aXRjaC1wb3J0cyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvbWF0Y2gtc3dpdGNoLXBvcnRzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJiMjhhNDMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL21hdGNoLXN3aXRjaC1wb3J0cwpAQCAtMCwwICsxIEBACitSZXN0cmljdCB0aGUgbWF0Y2ggdG8gYSBzd2l0Y2ggaW50ZXJmYWNlIG9yIGxpc3QvcmFuZ2Ugb2Ygc3dpdGNoIGludGVyZmFjZXMKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvbWF0Y2gtdGFnIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9tYXRjaC10YWcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTQxN2Y3ZQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvbWF0Y2gtdGFnCkBAIC0wLDAgKzEsMiBAQAorQXNzb2NpYXRlIGEgdGFnIG9yIGxpc3Qgb2YgdGFncyB3aXRoIHRoaXMgaWRlbnRpZmllci1ydWxlLiBJZiBhIGxpc3Qgb2YKK3RhZ3MgaXMgZ2l2ZW4gKmFsbCogdGFncyBuZWVkIHRvIG1hdGNoLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9tYXRjaC10YWctZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvbWF0Y2gtdGFnLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDNiNGY3NwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2UvbWF0Y2gtdGFnLWV4YW1wbGUKQEAgLTAsMCArMSw1IEBACittYXRjaCB0YWdzIG9yZy5zZG5wbGF0Zm9ybS50ZW5hbnQ9Q3VzdG9tZXJBCisgICAgTWF0Y2hlcyBkZXZpY2VzIHRoYXQgbWF0Y2ggdGhlIGdpdmVuIHRhZy4KKworbWF0Y2ggdGFncyBvcmcuc2RucGxhdGZvcm0udGVuYW50PUN1c3RvbWVyQSxjb20uZXhhbXBsZS50eXBlPXJvdXRlcgorICAgIE1hdGNoZXMgZGV2aWNlcyB0aGF0IG1hdGNoICphbGwqIG9mIHRoZSBnaXZlbiB0YWdzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9tYXRjaC12bGFuIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9tYXRjaC12bGFuCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE4MWQ0ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL21hdGNoLXZsYW4KQEAgLTAsMCArMSwyIEBACitBc3NvY2lhdGUgVkxBTnMgd2l0aCBpZGVudGlmaWVyLXJ1bGUuIEluIHRoaXMgc29mdHdhcmUgdmVyc2lvbiB0aGUKK3NwZWNpZmllZCBWTEFOIG11c3QgYmUgZXF1YWwgdG8gdmFsdWUgc3BlY2lmaWVkIGZvciAndmxhbi10YWctb24tZWdyZXNzJwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9tYXRjaC12bGFuLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL21hdGNoLXZsYW4tZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hOGQ0MjUyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9tYXRjaC12bGFuLWV4YW1wbGUKQEAgLTAsMCArMSw4IEBACittYXRjaCB2bGFucyAxMDAxCisgIEFzc29jaWF0ZSBvbmUgb3IgbW9yZSBWTEFOIElEcyB3aXRoIHRoaXMgaWRlbnRpZmVyIHJ1bGUKKworbm8gbWF0Y2ggdmxhbnMgMTAwMQorICBSZW1vdmUgYSBWTEFOIElEIGFzc29jaWF0aW9uIGZyb20gdGhpcyBpZGVudGlmaWVyIHJ1bGUKKworbm8gbWF0Y2ggdmxhbnMKKyAgUmVtb3ZlIGFsbCBWTEFOIElEIGFzc29jaWF0aW9ucyBmcm9tIHRoaXMgaWRlbnRpZmllciBydWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL29yaWdpbiBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2Uvb3JpZ2luCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg4YThmM2EKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL29yaWdpbgpAQCAtMCwwICsxIEBACitEZXNjcmliZSB0aGUgb3JpZ2luIG9mIGFuIGFkZHJlc3Mgc3BhY2UKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2Uvb3JpZ2luLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL29yaWdpbi1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYzNzA3Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL29yaWdpbi1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAorb3JpZ2luIHJlc3QKKyAgTm90ZSB0aGF0IHRoaXMgYWRkcmVzcy1zcGFjZSB3YXMgY29uZmlndXJlZCB2aWEgUkVTVAorCitubyBvcmlnaW4gcmVzdAorICBSZW1vdmUgdGhlIG9yaWdpbiBub3RhdGlvbiBmb3IgdGhpcyBhZGRyZXNzLXNwYWNlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL3ByaW9yaXR5IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9wcmlvcml0eQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iN2ZlOWJjCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9wcmlvcml0eQpAQCAtMCwwICsxLDQgQEAKK1RoZSBwcmlyb3JpdHkgb2YgdGhpcyBhZGRyZXNzLXNwYWNlLiBIaWdoZXIgbnVtZXJpYyB2YWx1ZXMgcmVwcmVzZW50CitoaWdoZXIgcHJpb3JpdHkuIEFsbCBpZGVudGlmaWVyLXJ1bGVzIG9mIHRoZSBoaWdoZXN0IHByaW9yaXR5CithZGRyZXNzLXNwYWNlIHdpbGwgYmUgZXZhbHVhdGVkIGJlZm9yZSBhbnkgcnVsZXMgb2Ygb3RoZXIKK2FkZHJlc3Mtc3BhY2VzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9wcmlvcml0eS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9wcmlvcml0eS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNhZDdkYTUKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL3ByaW9yaXR5LWV4YW1wbGUKQEAgLTAsMCArMSw2IEBACitwcmlvcml0eSAxMDAKKyAgU2V0IHRoZSBwcmlvcml0eSBvZiB0aGlzIGN1cnJlbnRseS1kZWZpbmVkIGFkZHJlc3Mtc3BhY2UKKworbm8gcHJpb3JpdHkgMTAwCisgIFJlbW92ZSB0aGUgcHJldmlvdXMgcHJpb3JpdHkgZGVjbGFyYXRpb24sCisgIGFuZCByZXNldCB0aGlzIGFkZHJlc3Mtc3BhY2UncyBwcmlvcml0eSB0byB0aGUgZGVmYXVsdCB2YWx1ZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9zaG93LWlkIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9zaG93LWlkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk1ODE0ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9hZGRyZXNzLXNwYWNlL3Nob3ctaWQKQEAgLTAsMCArMSw0IEBACitUaGlzICdzaG93IGFkZHJlc3Mtc3BhY2UnIGNvbW1hbmQgdmFyaWF0aW9uIGlzIHVzZWQgdG8gaWRlbnRpZnkgYQorc3BlY2lmaWMgYWRkcmVzcy1zcGFjZSAodGhlICdhbGwnIHRva2VuIHByb3ZpZGVzIGRpc3BsYXkgZm9yIGV2ZXJ5CithZGRyZXNzLXNwYWNlSiksIHRvIGRlc2NyaWJlIHBhcnRpY3VsYXIgb3BlcmF0aW9uYWwgb3IgY29uZmlndXJlZAorZGV0YWlscy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2Uvc2hvdy1pZC1ydWxlcyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2Uvc2hvdy1pZC1ydWxlcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MWUwNGY2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS9zaG93LWlkLXJ1bGVzCkBAIC0wLDAgKzEsNCBAQAorVGhlICdpZGVudGlmaWVyLXJ1bGVzJyBrZXl3b3JkIHJlcXVlc3RzIHRoZSBkaXNwbGF5IG9mIHRoZSBjb25maWd1cmVkCitpZGVudGlmaWVyLXJ1bGVzIGZvciB0aGUgbmFtZWQgYWRkZXJzcy1zcGFjZS4gIFRoZSBhZGRyZXNzLXNwYWNlCitpZGVudGlmaWVyLXJ1bGVzIGRlc2NyaWJlIHRoZSBtZW1iZXJzaGlwIHJ1bGVzIGFzc29jaWF0ZWQgd2l0aCBhbgorYWRkcmVzcy1zcGFjZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2Uvdmxhbi10YWctb24tZWdyZXNzIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS92bGFuLXRhZy1vbi1lZ3Jlc3MKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzcxYjkwMQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2Uvdmxhbi10YWctb24tZWdyZXNzCkBAIC0wLDAgKzEsMyBAQAorQXNzb2NpYXRlcyBhIFZMQU4gd2l0aCB0aGlzIGFkZHJlc3Mtc3BhY2UuIFRoaXMgVkxBTiBpcyB1c2VkIGZvcgoraW50ZXJuYWwgZGlzYW1iaWd1YXRpb24gYW5kIGZvciB0YWdnaW5nIHBhY2tldHMgdGhhdCBlZ3Jlc3MgdG8gb3RoZXIKK25ldHdvcmtzIChhY2NvcmRpbmcgdG8gaWRlbnRpZmllci1ydWxlIGNvbmZpZ3VyYXRpb24pLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvYWRkcmVzcy1zcGFjZS92bGFuLXRhZy1vbi1lZ3Jlc3MtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2Uvdmxhbi10YWctb24tZWdyZXNzLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzIyZWMwMwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2FkZHJlc3Mtc3BhY2Uvdmxhbi10YWctb24tZWdyZXNzLWV4YW1wbGUKQEAgLTAsMCArMSw0IEBACit2bGFuLXRhZy1vbi1lZ3Jlc3MgNDIKKyAgQXNzb2NpYXRlIGEgVkxBTiB0YWcgd2l0aCB0aGlzIGFkZHJlc3Mtc3BhY2UuCisgIEVhY2ggYWRkcmVzcy1zcGFjZSBtdXN0IGhhdmUgYW4gYXNzb2NpYXRlZCBWTEFOLCBlbHNlIHRoaXMgYWRkcmVzcy1zcGFjZQorICB3aWxsIGJlIGlnbm9yZWQgYnkgdGhlIGNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Nsb2NrL3Nob3cgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jbG9jay9zaG93Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhiNWZlNDkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jbG9jay9zaG93CkBAIC0wLDAgKzEsMiBAQAorVGhlIHNob3cgY2xvY2sgY29tbWFuZCBkaXNwbGF5cyB0aGUgZGF0ZSBhbmQgdGltZQorb2YgdGhlIGNvbm5lY3RlZCBjb250cm9sbGVyLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY2xvY2svc2hvdy1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY2xvY2svc2hvdy1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjYzYTRmZTEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jbG9jay9zaG93LWV4YW1wbGUKQEAgLTAsMCArMSw2IEBACitzaG93IGNsb2NrCisgICAgICBUaW1lICAgICA6IDIxOjE2OjQ2IFVUQyBUaHUgU2VwIDIwIDIwMTIKKworc2hvdyBjbG9jayBkZXRhaWxzCisgICAgVGltZSAgICAgOiAyMToyMToxNCBVVEMgVGh1IFNlcCAyMCAyMDEyCisgICAgVGltZXpvbmUgOiBVVEMKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Nsb2NrL3Nob3ctZm9ybWF0LWRldGFpbHMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jbG9jay9zaG93LWZvcm1hdC1kZXRhaWxzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJmMzhiNDcKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jbG9jay9zaG93LWZvcm1hdC1kZXRhaWxzCkBAIC0wLDAgKzEsMiBAQAorVGhzIG9wdGlvbiByZXF1ZXN0cyB0aGUgdGltZXpvbmUKK3RvIGJlIGRpc3BsYXllZCBhbG9uZyB3aXRoIHRoZSB0aW1lIGFuZCBkYXRlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb25maWcvc2hvdy1jb25maWcgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb25maWcvc2hvdy1jb25maWcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbmZpZy9zaG93LWNvbmZpZwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29uZmlnL3Nob3ctZmlyc3QgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb25maWcvc2hvdy1maXJzdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZjE1MjY4Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29uZmlnL3Nob3ctZmlyc3QKQEAgLTAsMCArMSw0IEBACitXaGVuIGEgcGFpciBvZiBjb25maWd1cmF0aW9uIGZpbGVzIGFyZSBzZWxlY3RlZCwgd2l0aAordGhlICdkaWZmJyBrZXl3b3JkIHNlcGFyYXRpbmcgdGhlIHR3byBmaWxlcywgdGhpcworcG9zaXRpb25hbCBwYXJhbW1ldGVyIGlkZW50aWZpZXMgdGhlIGZpcnN0IG9mIHRoZQordHdvIGNvbmZpZyBmaWxlcyB0byBkaWZmLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29uZmlnL3Nob3ctc2Vjb25kIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29uZmlnL3Nob3ctc2Vjb25kCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU0MjgwNmMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb25maWcvc2hvdy1zZWNvbmQKQEAgLTAsMCArMSBAQAorU2Vjb25kIGNvbmZpZ3VyYXRpb24gZmlsZSBzZWxlY3Rpb24uCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb25maWcvc2hvdy1zaW5nbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb25maWcvc2hvdy1zaW5nbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDhjNWZiOQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbmZpZy9zaG93LXNpbmdsZQpAQCAtMCwwICsxLDIgQEAKK1doZW4gYSBzaW5nbGUgY29uZmlnIGZpbGUgaXMgc2VsZWN0ZWQsIHRoZSBjb21wbGV0ZQorY29udGVudHMgb2YgdGhlIGZpbGUgaXMgZGlzcGxheWVkCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb25uZWN0L2Nvbm5lY3QgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb25uZWN0L2Nvbm5lY3QKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGNhYzAwZAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Nvbm5lY3QvY29ubmVjdApAQCAtMCwwICsxLDIxIEBACitUaGUgY29ubmVjdCBjb21tYW5kIGRpcmVjdHMgdGhlIENMSSB0byBpc3N1ZSBSRVNUIEFQSSByZXF1ZXN0cyB0byB0aGUKK3NlbGVjdGVkIGNvbnRyb2xsZXIuICBUaGUgQ0xJIHVzZXMgdGhlIGNvbnRyb2xsZXIncyBSRVNUIEFQSSB0bworcGVyZm9ybSBhbGwgY29uZmlndXJhdGlvbiwgcmV0cmlldmUgYWxsIHRoZSBkYXRhIGZvciBzaG93IGNvbW1hbmRzLAorYW5kIGFsc28gdG8gZ2VuZXJhdGUgdGhlIHJ1bm5pbmcgY29uZmlnLiAgVGhlIENMSSBpcyBhbiBhcHBsaWNhdGlvbgord2hpY2ggcHJlc2VudHMgdGhlIGNvbnRyb2xsZXIncyBSRVNUIEFQSSB0byB0aGUgdXNlciwgYW5kIGNhbiBhbHNvCitwcm92aWRlIHNvbWUgbGltaXRlZCBhaWQgdG8gYW4gYXBwbGljYXRpb24gd3JpdGUgdHJ5aW5nIHRvIHVzZSB0aGUKK1JFU1QgQVBJLCBzaW5jZSB0aGUgcmVxdWVzdHMgaXNzdWVkIGJ5IHRoZSBDTEkgY2FuIGJlIHZpZXdlZCB3aXRoIHRoZQorJ2RlYnVnIHJlc3QnIGNvbW1hbmQgKHVzZSAnaGVscCBkZWJ1ZyByZXN0JyBmb3IgbW9yZSBkZXRhaWxzKQorCitXaGVuIHRoZSBjb250cm9sbGVyIGlzIHJ1bm5pbmcgYXMgYSBIQSBzbGF2ZSwgbWFueSBjb21tYW5kcyB3aWxsIG5vdAorYmUgYXZhaWxhYmxlLiAgSWYgdGhlIG1hc3RlciBoYXMgY29uZmlndXJlZCBwb3J0IDgwIHRvIGJlIGF2YWlsYWJsZQorKGNvbnRyb2xsZXItbm9kZSBpbnRlcmZhY2Ugc3VibW9kZSdzIGZpcmV3YWxsIGNvbW1hbmQpLCB0aGVuIGJ5IHVzaW5nCit0aGUgY29ubmVjdCBjb21tYW5kIHRvIHVzZSB0aGUgbWFzdGVyJ3MgUkVTVCBBUEksIHNzaCBjYW4gYmUgYXZvaWRlZC4KK1RoaXMgd291bGQgcHJlc2VydmUgdGhlIGNvbW1hbmQgaGlzdG9yeSwgYWxsb3dpbmcgYW4gZWFzeSB3YXkgdG8KK3JlLWlzc3VlIGZhaWxlZCBjb21tYW5kcy4KKworVGhlIFJFU1QgQVBJIGZvciB0aGUgY29udHJvbGxlciBpcyB0eXBpY2FsbHkgY29uZmlndXJlZCBhdCBwb3J0IDgwLgorCitDb21wbGV0aW9uIGZvciB0aGUgY29tbWFuZCB3aWxsIGRpc3BsYXkgYWxsIHRoZSBjdXJyZW50bHkga25vd24KK2NvbnRyb2xsZXJzLiAgSWYgdGhlIGNvbm5lY3Qgc3VjY2VlZHMsIHRoZSBsaXN0IG9mIGtub3duIGNvbnRyb2xsZXJzCit3aWxsIHZlcnkgbGlrZWx5IGJlIGRpZmZlcmVudC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Nvbm5lY3QvY29ubmVjdC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29ubmVjdC9jb25uZWN0LWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjE1MWI5ZAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Nvbm5lY3QvY29ubmVjdC1leGFtcGxlCkBAIC0wLDAgKzEsOCBAQAorY29ubmVjdCBsb2NhbGhvc3QKKyAgICBDb25uZWN0IHRvIHRoZSBjdXJyZW50IGNvbnRyb2xsZXIgKHJlYWxseSBhIG5vLW9wKQorCitjb25uZWN0IGNvbnRyb2xsZXItbm9kZS1iCisgICAgQ29ubmVjdCB0byB0aGUgY29udHJvbGxlciBpZGVudGlmaWVkIGJ5IGFuIGFsaWFzCisKK2Nvbm5lY3QgMTkyLjE2OC4yLjEyOSBwb3J0IDgwMDAKKyAgICBDb25uZWN0IHRvIHRoZSBpZGVudGlmaWVkIGlwIGFkZHJlc3MKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Nvbm5lY3QvY29ubmVjdC1pZCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Nvbm5lY3QvY29ubmVjdC1pZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZjM1ODA2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29ubmVjdC9jb25uZWN0LWlkCkBAIC0wLDAgKzEgQEAKK1RoZSBhbGlhcyBvciBVVUlEIHRvIGlkZW50ZnkgdGhlIGNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Nvbm5lY3QvY29ubmVjdC1pcCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Nvbm5lY3QvY29ubmVjdC1pcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZjJkZjU5Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29ubmVjdC9jb25uZWN0LWlwCkBAIC0wLDAgKzEgQEAKK0FuIGlwIGFkZHJlc3MgdG8gaWRlbnRpZnkgdGhlIGNvbnRyb2xsZXIncyBSRVNUIEFQSQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29ubmVjdC9jb25uZWN0LXBvcnQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb25uZWN0L2Nvbm5lY3QtcG9ydApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZDVlM2I0Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29ubmVjdC9jb25uZWN0LXBvcnQKQEAgLTAsMCArMSBAQAorSWRlbnRpZnkgdGhlIHRjcCBwb3J0IG51bWJlciBvZiB0aGUgUkVTVCBBUEkKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvYWxpYXMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2FsaWFzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ5ODhkMDMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2FsaWFzCkBAIC0wLDAgKzEgQEAKK0NvbmZpZ3VyZSBhbiBhbGlhcyBmb3IgdGhlIGNvbnRyb2xsZXIgbm9kZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvYWxpYXMtbmFtZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvYWxpYXMtbmFtZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MGFjODYxCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9hbGlhcy1uYW1lCkBAIC0wLDAgKzEgQEAKK1NwZWNpZnkgdGhlIG5hbWUgb2YgdGhlIGFsaWFzIGZvciB0aGUgY29udHJvbGxlciBub2RlLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jbG9jay1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jbG9jay1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU5ZjhmZTcKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2Nsb2NrLWV4YW1wbGUKQEAgLTAsMCArMSw4IEBACitjbG9jayB0aW1lem9uZSBBbWVyaWNhL0xvc19BbmdlbGVzCisgIENvbmZpZ3VyZSBhIHNwZWNpZmljIHRpbWV6b25lIGZvciB0aGlzIGNvbnRyb2xsZXIKKworbm8gY2xvY2sgdGltZXpvbmUKKyAgUmVtb3ZlIGFueSB0aW1lem9uZSBzZXR0aW5nOyB0aGUgZGVmYXVsdCBpcyB0byB1c2UgVVRDLgorCitjbG9jayBzZXQgMTc6MzA6MDAgMSBKYW51YXJ5IDE5NzAKKyAgU2V0IHRoZSBjbG9jayBtYW51YWxseQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jbG9jay1zZXQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2Nsb2NrLXNldApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYmQxODMyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jbG9jay1zZXQKQEAgLTAsMCArMSwxMiBAQAorQ29uZmlndXJlIHRoZSBjbG9jayBmb3IgYSBjb250cm9sbGVyIGluc3RhbmNlLgorV2l0aGluIHRoZSBjb250cm9sbGVyLW5vZGUgY29uZmlndXJhdGlvbiBzdWItbW9kZSwgdGhlIHVzZXIgY2FuCitjb25maWd1cmUgc2V0IHRoZSBjbG9jay4KKworV2hlbiBvcGVyYXRpbmcgaW4gSEEgbW9kZSB3aXRoIG11bHRpcGxlIGNvbnRyb2xsZXJzLCBzZXR0aW5nIHRoZSBjbG9jaworb2YgdGhlIGNvbnRyb2xsZXJzIHRvIGRpZmZlcmVudCB2YWx1ZXMgd2lsbCBoYXZlIGFuIGVmZmVjdCBvbiBkYXRhYmFzZQorcmVjb25jaWxpYXRpb24uICAgU2luY2UgdGltZSBzdGFtcHMgYXJlIHVzZWQgdG8gZGV0ZXJtaW5lIHdoaWNoIG9mIHRoZQorc2hhcmVkIGl0ZW1zIGFyZSBtb3JlIHVwLXRvLWRhdGUsIGlmIHRoZSB0aW1lIGJldHdlZW4gY29udHJvbGxlcnMgaXMKK3Zlcnkgc2tld2VkLCB0aGUgYW55IGRhdGFiYXNlIHVwZGF0ZXMgYXBwbGllZCBtYXkgb3IgbWF5IG5vIGJlIGFwbGllZAorY29ycmVjdGx5LiAgIEl0IGlzIGJldHRlciB0byB0cnkgdG8gZGVhbCB3aXRoIHRpbWUgc2tldyBpbiB0aGUgbXVsdGlwbGUKK2NvbnRyb2xsZXIgZW52aXJvbWVubWVudCBieSB1c2luZyBudHBkYXRlLgorCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2Nsb2NrLXNldC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jbG9jay1zZXQtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zOGFiMTQyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jbG9jay1zZXQtZXhhbXBsZQpAQCAtMCwwICsxLDIgQEAKK2Nsb2NrIHNldCAxNzozMDowMCAxIEphbnVhcnkgMTk3MAorICBTZXQgdGhlIGNsb2NrIG1hbnVhbGx5CmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2Nsb2NrLXRpbWV6b25lIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jbG9jay10aW1lem9uZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYTc4ODIyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jbG9jay10aW1lem9uZQpAQCAtMCwwICsxLDMgQEAKK0NvbmZpZ3VyZSB0aGUgdGltZXpvbmUgZm9yIGEgY29udHJvbGxlciBpbnN0YW5jZSdzIGNsb2NrLgorV2l0aGluIHRoZSBjb250cm9sbGVyLW5vZGUgY29uZmlndXJhdGlvbiBzdWItbW9kZSwgdGhlIHVzZXIgY2FuCitjb25maWd1cmUgdGhlIGxvY2FsIHRpbWV6b25lIGZvciB0aGUgbm9kZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvY2xvY2stdGltZXpvbmUtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvY2xvY2stdGltZXpvbmUtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNDI4MTE5Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jbG9jay10aW1lem9uZS1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAorY2xvY2sgdGltZXpvbmUgQW1lcmljYS9Mb3NfQW5nZWxlcworICBDb25maWd1cmUgYSBzcGVjaWZpYyB0aW1lem9uZSBmb3IgdGhpcyBjb250cm9sbGVyCisKK25vIGNsb2NrIHRpbWV6b25lCisgIFJlbW92ZSBhbnkgdGltZXpvbmUgc2V0dGluZzsgdGhlIGRlZmF1bHQgaXMgdG8gdXNlIFVUQy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvY29udHJvbGxlci1ub2RlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jb250cm9sbGVyLW5vZGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTg2NmE3NgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvY29udHJvbGxlci1ub2RlCkBAIC0wLDAgKzEgQEAKK0VudGVyIGEgc3VibW9kZSB0byBjb25maWd1cmUgdGhlIHNldHRpbmdzIGZvciB0aGUgY29udHJvbGxlciBub2RlLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9jb250cm9sbGVyLW5vZGUtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvY29udHJvbGxlci1ub2RlLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjExOTc4YQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvY29udHJvbGxlci1ub2RlLWV4YW1wbGUKQEAgLTAsMCArMSw1IEBACitjb250cm9sbGVyLW5vZGUgbG9jYWxob3N0CisgIEVudGVyIGNvbmZpZ3VyYXRpb24gc3ViLW1vZGUgZm9yIHRoZSBjdXJyZW50IGNvbnRyb2xsZXIKKworY29udHJvbGxlci1ub2RlIDM5ZGY5YTMwLTBjZTctNDIzYi05OGJhLTg2ZDU0M2FlY2YwNQorICBFbnRlciBjb25maWd1cmF0aW9uIHN1Yi1tb2RlIGZvciBhIHNwZWNpZmljIChwb3NzaWJseSByZW1vdGUpIGNvbnRyb2xsZXIKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvY29udHJvbGxlci1ub2RlLW5hbWUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2NvbnRyb2xsZXItbm9kZS1uYW1lCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUzZmZmZDEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2NvbnRyb2xsZXItbm9kZS1uYW1lCkBAIC0wLDAgKzEgQEAKK1NwZWNpZnkgdGhlIG5hbWUgb2Ygb25lIG9mIHRoZSBub2RlcyBpbiB0aGUgY29udHJvbGxlciBjbHVzdGVyLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTJmNjVlZQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwKQEAgLTAsMCArMSwyIEBACitDb25maWd1cmUgYSBmaXJld2FsbCBydWxlIHRvIGFsbG93IHRyYWZmaWMgdG8gdGhlIHNwZWNpZmllZCBwb3J0IG51bWJlcgorYW5kIHByb3RvY29sICh0Y3AsIHVkcCwgb3IgdnJycCkgb2YgdGhlIGNvbnRyb2xsZXIgbm9kZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtYWxsb3cgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLWFsbG93Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJlOWU5NmEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLWFsbG93CkBAIC0wLDAgKzEsMyBAQAorVGhlICdhbGxvdycga2V5d29yZCBjb25maWd1cmVzIGEgZmlyZXdhbGwgcnVsZSB3aGljaAorZGVzY3JpYmVzIGEgbWF0Y2ggY29uZGl0aW9uIGZvciB0cmFmZmljLiAgV2hlbiB0aGUgY29uZGl0aW9uCitpcyBzYXRpc2ZpZWQsIHRoZSB0cmFmZmljIGlzIGFsbG93ZWQuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLWxvY2FsLWlwIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC1sb2NhbC1pcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44MDliMDlmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC1sb2NhbC1pcApAQCAtMCwwICsxLDIgQEAKK0Fzc29jaWF0ZSB0aGUgZmlyZXdhbGwgcnVsZSB3aXRoIGEgc3BlY2lmaWMgZGVzdGluYXRpb24gaXAgYWRkcmVzcy4KK1RoZSBydWxlIHdpbGwgYXBwbHkgb25seSB0byBpcCBmcmFtZXMgZm9yIHRoaXMgZGVzdGluYXRpb24gaXAgYWRkcmVzcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtb3BlbmZsb3cgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLW9wZW5mbG93Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE4MmEyMDAKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLW9wZW5mbG93CkBAIC0wLDAgKzEgQEAKK1RoZSAnb3BlbmZsb3cnIGtleXdvcmQgaWRlbnRpZmllcyBwb3J0IDY2MzMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLXBvcnQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLXBvcnQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGNjMzg5MgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtcG9ydApAQCAtMCwwICsxLDQgQEAKK1NwZWNpZnkgdGhlIHBvcnQgdG8gd2hpY2ggdHJhZmZpYyBpcyBhbGxvd2VkIGluIHRoZSBmaXJld2FsbCBydWxlLgorVGhlIHBvcnQgY2FuIGJlIGFuIGV4cGxpY2l0IHBvcnQgbnVtYmVyIG9yIG9uZSBvZiB0aGUgZm9sbG93aW5nCituYW1lZCBwb3J0czogJ29wZW5mbG93JyAocG9ydCA2NjMzKSwgJ3dlYicgKHBvcnQgODApLAorJ3NzbCcgKHBvcnQgNDQzKSBvciAnc3NoJyAocG9ydCAyMikuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLXByb3RvY29sIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC1wcm90b2NvbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZThkZjRhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC1wcm90b2NvbApAQCAtMCwwICsxLDIgQEAKK1NwZWNpZnkgdGhlIGlwIHByb3RvY29sIGZvciB0aGUgZmlyZXdhbGwgcnVsZS4gVGhlIHZhbHVlIGNhbiBiZQorZWl0aGVyICd1ZHAnLCAndGNwJywgb3IgJ3ZycnAnLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC1zcmMtaXAgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLXNyYy1pcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wNzNjZDExCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC1zcmMtaXAKQEAgLTAsMCArMSwyIEBACitBc3NvY2lhdGUgdGhlIGZpcmV3YWxsIHJ1bGUgd2l0aCBhIHNwZWNpZmljIHNvdXJjZSBpcCBhZGRyZXNzLgorVGhlIHJ1bGUgd2lsbCBhcHBseSBvbmx5IHRvIGlwIGZyYW1lcyB3aXRoIHRoaXMgb3JpZ2luYXRpbmcgaXAgYWRkcmVzcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtc3NoIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC1zc2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjFiY2FjMgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtc3NoCkBAIC0wLDAgKzEgQEAKK1RoZSAnc3NoJyBrZXl3b3JkIGlkZW50aWZpZWQgcG9ydCAyMi4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtc3NsIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9maXJld2FsbC1zc2wKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjc4OTZkNAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtc3NsCkBAIC0wLDAgKzEgQEAKK1RoZSAnc3NsJyBrZXl3b3JkIGlkZW50aWZpZXMgcG9ydCA0NDMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLXRjcCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtdGNwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBjMDlhOGQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLXRjcApAQCAtMCwwICsxLDIgQEAKK0J5IHNlbGVjdGluZyB0aGUgJ3RjcCcga2V5d29yZCwgdGhlIG1hdGNoZWQgaXAgcHJvdG9jb2wgaXMgdGNwLiAgQSBwb3J0IG51bWJlcgorbXVzdCBiZSBpbmNsdWRlZCBmb3IgdGhpcyBzZWxlY3Rpb24uCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLXVkcCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtdWRwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUyNDkxNWQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLXVkcApAQCAtMCwwICsxLDIgQEAKK0J5IHNlbGVjdGluZyB0aGUgJ3VkcCcga2V5d29yZCwgdGhlIG1hdGNoZWQgaXAgcHJvdG9jb2wgaXMgdWRwLiAgQSBwb3J0IG51bWJlcgorbXVzdCBiZSBpbmNsdWRlZCBmb3IgdGhpcyBzZWxlY3Rpb24uCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLXZycnAgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLXZycnAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTg1MmY5OAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtdnJycApAQCAtMCwwICsxIEBACitUaGUgJ3ZycnAnIGtleXdvcmQgaWRlbnRpZmllcyB0aGUgcnVsZSBtYXRjaCBmb3IgdGhlIHZycnAgaXAgcHJvdG9jb2wuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLXdlYiBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvZmlyZXdhbGwtd2ViCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJlNThhZWUKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ZpcmV3YWxsLXdlYgpAQCAtMCwwICsxLDIgQEAKK1RoZSAnd2ViJyBrZXl3b3JkIGlkZW50aWZpZXMgcG9ydCA4MC4gIFRoaXMgaXMgbm90IG9ubHkgdGhlIHR5cGljYWwgd2ViIGludGVyZmFjZSwKK2J1dCBhbHNvIHRoZSBwb3J0IGZvciBSRVNUIEFQSSByZXF1ZXN0cy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaWQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI0ODAzYzkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lkCkBAIC0wLDAgKzEgQEAKK1NwZWNpZnkgdGhlIGlkIG9yIGFsaWFzIG9mIHRoZSBjb250cm9sbGVyIG5vZGUuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ludGVyZmFjZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaW50ZXJmYWNlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgxNjhkOGQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ludGVyZmFjZQpAQCAtMCwwICsxIEBACitFbnRlciBhIHN1Ym1vZGUgdG8gY29uZmlndXJlIGEgbmV0d29yayBpbnRlcmZhY2Ugb2YgdGhlIGNvbnRyb2xsZXIgbm9kZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaW50ZXJmYWNlLW51bWJlciBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaW50ZXJmYWNlLW51bWJlcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MGU1OTZjCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pbnRlcmZhY2UtbnVtYmVyCkBAIC0wLDAgKzEgQEAKK1NwZWNpZnkgdGhlIG51bWJlciBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2UuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2ludGVyZmFjZS10eXBlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pbnRlcmZhY2UtdHlwZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZTNhYTg3Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pbnRlcmZhY2UtdHlwZQpAQCAtMCwwICsxIEBACitTcGVjaWZ5IHRoZSB0eXBlIG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZSwgZS5nLiBFdGhlcm5ldC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU2NmIwYjIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwCkBAIC0wLDAgKzEgQEAKK0NvbmZpZ3VyZSB0aGUgSVAtcmVsYXRlZCBzZXR0aW5ncyBvZiB0aGUgY29udHJvbGxlciBub2RlLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1hZGRyZXNzIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1hZGRyZXNzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIzMzI3ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWFkZHJlc3MKQEAgLTAsMCArMSwzIEBACitTcGVjaWZ5IHRoZSBJUCBhZGRyZXNzIGFzIGVpdGhlciBhbiBhZGRyZXNzIGFuZCBuZXRtYXNrIHBhaXIKKyhlLmcuIDE5Mi4xNjguMS4xIDI1NS4yNTUuMjU1LjApIG9yIGEgQ0lEUiBhZGRyZXNzCisoZS5nLiAxOTIuMTY4LjEuMS8yNCkuIFRoaXMgdmFsdWUgaXMgb25seSB1c2VkIGlmIHRoZSBpcCBtb2RlIGlzIHNldCB0byAnc3RhdGljJy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtYWRkcmVzcy1jaWRyIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1hZGRyZXNzLWNpZHIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjVjZGUxMwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtYWRkcmVzcy1jaWRyCkBAIC0wLDAgKzEsMiBAQAorU3BlY2lmeSB0aGUgc3RhdGljYWxseS1jb25maWd1cmVkIENJRFIgYWRkcmVzcyBvZiB0aGUgY29udHJvbGxlciBub2RlCisoZS5nLiAxOTIuMTY4LjEuMS8yNCkuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWFkZHJlc3MtbmV0bWFzayBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtYWRkcmVzcy1uZXRtYXNrCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNjYzY1OTYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWFkZHJlc3MtbmV0bWFzawpAQCAtMCwwICsxLDIgQEAKK1NwZWNpZnkgdGhlIHN0YXRpY2FsbHktY29uZmlndXJlZCBJUCBuZXRtYXNrIG9mIHRoZSBjb250cm9sbGVyIG5vZGUKKyhlLmcuIDI1NS4yNTUuMjU1LjApLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1hZGRyZXNzLXZhbHVlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1hZGRyZXNzLXZhbHVlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI5Y2E5OTYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWFkZHJlc3MtdmFsdWUKQEAgLTAsMCArMSwyIEBACitTcGVjaWZ5IHRoZSBzdGF0aWNhbGx5LWNvbmZpZ3VyZWQgSVAgYWRkcmVzcyBvZiB0aGUgY29udHJvbGxlciBub2RlCisoZS5nLiAxOTIuMTY4LjEuMSkuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWRlZmF1bHQtZ2F0ZXdheSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtZGVmYXVsdC1nYXRld2F5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNlOGU5MGMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWRlZmF1bHQtZ2F0ZXdheQpAQCAtMCwwICsxIEBACitDb25maWd1cmUgdGhlIGRlZmF1bHQgZ2F0ZXdheSBmb3IgdGhlIGNvbnRyb2xsZXIuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWRlZmF1bHQtZ2F0ZXdheS12YWx1ZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtZGVmYXVsdC1nYXRld2F5LXZhbHVlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRjZDJhNzkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWRlZmF1bHQtZ2F0ZXdheS12YWx1ZQpAQCAtMCwwICsxIEBACitTcGVjaWZ5IHRoZSBJUCBhZGRyZXNzIG9mIHRoZSBkZWZhdWx0IGdhdGV3YXkuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWRvbWFpbiBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtZG9tYWluCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjliNGM5MzIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWRvbWFpbgpAQCAtMCwwICsxIEBACitDb25maWd1cmUgRE5TLXJlbGF0ZWQgc2V0dGluZ3MgZm9yIHRoZSBjb250cm9sbGVyIG5vZGUuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWRvbWFpbi1sb29rdXBzIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1kb21haW4tbG9va3VwcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jZTg3MDRhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1kb21haW4tbG9va3VwcwpAQCAtMCwwICsxIEBACitDb25maWd1cmUgd2hldGhlciBvciBub3QgRE5TIGxvb2t1cHMgYXJlIGVuYWJsZWQgb24gdGhlIGNvbnRyb2xsZXIgbm9kZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtZG9tYWluLW5hbWUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWRvbWFpbi1uYW1lCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM5MzMyNzAKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLWRvbWFpbi1uYW1lCkBAIC0wLDAgKzEgQEAKK1NwZWNpZnkgdGhlIGRlZmF1bHQgZG9tYWluIG5hbWUgZm9yIHRoZSBjb250cm9sbGVyLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1tb2RlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1tb2RlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAyOWZiZTQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLW1vZGUKQEAgLTAsMCArMSwzIEBACitTcGVjaWZ5IHRoZSBtb2RlIGZvciBjb25maWd1cmluZyB0aGUgSVAgYWRkcmVzcywgZWl0aGVyICdzdGF0aWMnIHRvCitzcGVjaWZ5IGFuIGV4cGxpY2l0IElQIGFkZHJlc3Mgb3IgJ2RoY3AnIHRvIG9idGFpbiB0aGUgSVAgYWRkcmVzcworZnJvbSBhIERIQ1Agc2VydmVyLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9pcC1uYW1lLXNlcnZlciBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtbmFtZS1zZXJ2ZXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2RlMzljNQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtbmFtZS1zZXJ2ZXIKQEAgLTAsMCArMSwzIEBACitDb25maWd1cmUgYSBETlMgc2VydmVyIGZvciB0aGUgY29udHJvbGxlci4gVGhlIHByaW9yaXR5IG9mIHRoZSBETlMKK3NlcnZlcnMgaXMgaW4gdGhlIG9yZGVyIHRoZXkgd2VyZSBlbnRlcmVkLCBpLmUuIHRoZSBmaXJzdCBvbmUKK2VudGVyZWQgaXMgdGhlIHByaW1hcnkgRE5TIHNlcnZlci4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvaXAtbmFtZS1zZXJ2ZXItdmFsdWUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLW5hbWUtc2VydmVyLXZhbHVlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmY2OGJjOWQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2lwLW5hbWUtc2VydmVyLXZhbHVlCkBAIC0wLDAgKzEgQEAKK1NwZWNpZnkgdGhlIElQIGFkZHJlc3Mgb2YgdGhlIEROUyBzZXJ2ZXIuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2xvZ2dpbmcgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2xvZ2dpbmcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmRmODU2ZQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvbG9nZ2luZwpAQCAtMCwwICsxLDMgQEAKK1RoZSBjb250cm9sbGVyLW5vZGUgbG9nZ2luZyBjb21tYW5kIGFsbG93cyBjb25maWd1cmF0aW9uCitvZiBvdXRnb2luZyBzeXNsb2cgbWVzc2FnZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50Citjb250cm9sbGVyCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2xvZ2dpbmctZW5hYmxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9sb2dnaW5nLWVuYWJsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNzc3OTNlCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9sb2dnaW5nLWVuYWJsZQpAQCAtMCwwICsxIEBACitVc2luZyB0aGUgJ29uJyBrZXl3b3JkIGluIHRoaXMgY29tbWFuZCBlbmFibGVzIHN5c2xvZyBsb2dnaW5nLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9sb2dnaW5nLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2xvZ2dpbmctZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZGQxZWM2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9sb2dnaW5nLWV4YW1wbGUKQEAgLTAsMCArMSwxMyBAQAorbG9nZ2luZyBvbgorICBFbmFibGUgbG9nZ2luZworCitubyBsb2dnaW5nIG9uCisgIERpc2FibGUgbG9nZ2luZworCitsb2dnaW5nIHNlcnZlciAxLjIuMy40CisgIFNlbmQgc3lzbG9nIHJlY29yZHMgdG8gYSBzcGVjaWZpYyBzZXJ2ZXIgb3IgZG9tYWluIG5hbWUKKworbG9nZ2luZyBzZXJ2ZXIgMS4yLjIuNCBsZXZlbCB3YXJuaW5nCisgIFNlbmQgc3lzbG9nIG1lc3NhZ2VzIGF0IGEgc3BlY2lmaWMgbGV2ZWwgKG51bWVyaWMgb3Igc3ltYm9saWMpCisKK25vIGxvZ2dpbmcgc2VydmVyIDEuMi4zLjQKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvbG9nZ2luZy1sZXZlbCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvbG9nZ2luZy1sZXZlbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNTllMTFjCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9sb2dnaW5nLWxldmVsCkBAIC0wLDAgKzEsNCBAQAorVGhlIGxvZ2dpbmcgbGV2ZWwgYWxsb3dzIGNvbmZpZ3VyYXRpb24gb2YgdGhlIHN5c2xvZyBsb2dnaW5nIGxldmVsLgorVGhlIGtleXdvcmRzIHByb3ZpZGVkIGRpcmVjdGx5IG1hcCB0byB0aGUgc3lzbG9nIGxldmVscywgYWx0aG91Z2gKK3RoZSBjb21tYW5kIGtleXdvcmRzIGFyZSBhYmJyZXZpYXRlZCB2ZXJzaW9ucyBvZiB0aGUgdHlwaWNhbCBzeXNsb2cKK2xldmVscy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvbG9nZ2luZy1zZXJ2ZXIgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2xvZ2dpbmctc2VydmVyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU4NTc4OGIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL2xvZ2dpbmctc2VydmVyCkBAIC0wLDAgKzEgQEAKK1RoZSAnc2VydmVyJyBrZXl3b3JkIHByZWZpeGVzIHRoZSBpcCBhZGRyZXNzIG9mIHRoZSBzeXNsb2cgc2VydmVyLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9udHAgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL250cApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zN2UyZjM2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9udHAKQEAgLTAsMCArMSBAQAorQ29uZmlndXJlIHRoZSBOVFAgc2VydmVyIGZvciB0aGUgY29udHJvbGxlciBub2RlLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9udHAtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvbnRwLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmNiZjFjOAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvbnRwLWV4YW1wbGUKQEAgLTAsMCArMSw1IEBACitudHAgc2VydmVyIDEuMi4zLjQKKyAgU2V0IHRoZSBOVFAgc2VydmVyIGFkZHJlc3MKKworbm8gbnRwIHNlcnZlcgorICBEaXNhYmxlIHRoZSBOVFAgc2VydmVyCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL250cC1zZXJ2ZXIgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL250cC1zZXJ2ZXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2Y5MjA5NgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvbnRwLXNlcnZlcgpAQCAtMCwwICsxIEBACitTcGVjaWZ5IHRoZSBob3N0IG5hbWUgb3IgaXAgYWRkcmVzcyBvZiB0aGUgTlRQIHNlcnZlci4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZDExNGYxCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93CkBAIC0wLDAgKzEsNSBAQAorU2hvdyBjb250cm9sbGVyLW5vZGUgZGlzcGxheXMgb3BlcmF0aW9uYWwgZGV0YWlscyBmb3IgCit0aGUgaWRlbnRpZmllZCBjb250cm9sbGVyIG5vZGVzLiAgQW1vbmcgdGhlIGl0ZW1zCitkaXNwbGF5ZWQgYXJlIHRoZSBjb250cm9sbGVyLWFsaWFzLCB0aGUgSEEgcm9sZSwKK2FuZCBhbHNvIGEgY29sdW1uIGxhYmVsZWQgJ0AnIHRvIGlkZW50aWZ5IHRoZSBjb250cm9sbGVyCitjdXJyZW50bHkgY29ubmVjdGVkIHRvIHRoZSBDTEkKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1hbGlhcyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1hbGlhcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNWYyM2Q2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LWFsaWFzCkBAIC0wLDAgKzEgQEAKK1Nob3cgdGhlIGFsaWFzIGZvciB0aGUgc3BlY2lmaWVkIGNvbnRyb2xsZXIgbm9kZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1kZXRhaWwgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctZGV0YWlsCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY5MDI4YzAKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctZGV0YWlsCkBAIC0wLDAgKzEgQEAKK1NwZWNpZnkgdGhlIGRldGFpbCBsZXZlbCBmb3IgdGhlIHNob3cgY29tbWFuZC4gVmFsdWUgaXMgZWl0aGVyICdkZXRhaWwnIG9yICdicmllZicuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctZGV0YWlscyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1kZXRhaWxzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk1ZDc4YjUKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctZGV0YWlscwpAQCAtMCwwICsxLDIgQEAKK1Nob3cgY29udHJvbGxlciBub2RlIGFzc29jaWF0ZWQgaW5mb3JtYXRpb24sIGZvciBleGFtcGxlIAordGhlIGludGVyZmFjZXMgb3Igc3dpdGNoZXMgcmVsYXRlZCB0byBhIGNvbnRyb2xsZXIuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctZmlyZXdhbGwgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctZmlyZXdhbGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTM2YjljNwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1maXJld2FsbApAQCAtMCwwICsxIEBACitTaG93IHRoZSBmaXJld2FsbCBydWxlcyBmb3IgdGhlIHNwZWNpZmllZCBjb250cm9sbGVyIG5vZGUuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctaWQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctaWQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjQ4MDNjOQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1pZApAQCAtMCwwICsxIEBACitTcGVjaWZ5IHRoZSBpZCBvciBhbGlhcyBvZiB0aGUgY29udHJvbGxlciBub2RlLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LWludGVyZmFjZXMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctaW50ZXJmYWNlcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xNDUzODUzCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LWludGVyZmFjZXMKQEAgLTAsMCArMSBAQAorRGlzcGxheSBhbGwgdGhlIGludGVyZmFjZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQgY29udHJvbGxlci1ub2RlLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LWludGVyZmFjZXMtbnVtYmVyIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LWludGVyZmFjZXMtbnVtYmVyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRmMzA3NTAKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctaW50ZXJmYWNlcy1udW1iZXIKQEAgLTAsMCArMSBAQAorU3BlY2lmeSB0aGUgbnVtYmVyIG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZSB0byBzaG93LgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LWludGVyZmFjZXMtdHlwZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1pbnRlcmZhY2VzLXR5cGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDNiYTY5OAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1pbnRlcmZhY2VzLXR5cGUKQEAgLTAsMCArMSBAQAorU3BlY2lmeSB0aGUgdHlwZSBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2UgdG8gc2hvdywgZS5nLiBFdGhlcm5ldC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NzIyMDhkCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN0YXRzCkBAIC0wLDAgKzEgQEAKK1Nob3cgc3RhdGlzdGljcyBmb3IgdGhlIHNwZWNpZmllZCBjb250cm9sbGVyIG5vZGUuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtZGF0YS1mb3JtYXQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtZGF0YS1mb3JtYXQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDE3MWQ2NgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cy1kYXRhLWZvcm1hdApAQCAtMCwwICsxIEBACitTaG93IGVpdGhlciB0aGUgYWN0dWFsIHZhbHVlIG9yIHRoZSByYXRlIG9mIGNoYW5nZSBvZiB0aGUgdmFsdWUgZm9yIHRoZSBzcGVjaWZpZWQgc3RhdHMgdHlwZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cy1kaXNwbGF5IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN0YXRzLWRpc3BsYXkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmYzNTNmMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cy1kaXNwbGF5CkBAIC0wLDAgKzEgQEAKK1Nob3cgdGhlIHNwZWNpZmllZCBzdGF0cyBhcyBlaXRoZXIgdGhlIGxhdGVzdCB2YWx1ZSwgZ3JhcGggb3IgdGFibGUuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtZHVyYXRpb24gYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtZHVyYXRpb24KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWZjZWMwMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cy1kdXJhdGlvbgpAQCAtMCwwICsxLDIgQEAKK1NwZWNpZnkgdGhlIGR1cmF0aW9uIGZvciB3aGljaCB0byBkaXNwbGF5IHN0YXRzLiBJZiB0aGlzIHZhbHVlIGlzIHNwZWNpZmllZAoreW91IHNob3VsZCBzcGVjaWZ5IGVpdGhlciB0aGUgc3RhcnQtdGltZSBvciBlbmQtdGltZSBidXQgbm90IGJvdGguCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtZW5kLXRpbWUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtZW5kLXRpbWUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDE3MTc1NwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cy1lbmQtdGltZQpAQCAtMCwwICsxIEBACitTcGVjaWZ5IHRoZSBlbmQgdGltZSBmb3IgZGlzcGxheWluZyB0aGUgY29udHJvbGxlciBzdGF0cy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cy1zYW1wbGUtY291bnQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtc2FtcGxlLWNvdW50Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNiYjE1MTkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtc2FtcGxlLWNvdW50CkBAIC0wLDAgKzEgQEAKK1NwZWNpZnkgdGhlIG51bWJlciBvZiBkYXRhIHBvaW50cyB0byBzaG93IGFjcm9zcyB0aGUgc3BlY2lmaWVkIHRpbWUgcmFuZ2UuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtc2FtcGxlLWludGVydmFsIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN0YXRzLXNhbXBsZS1pbnRlcnZhbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yOTFhNjJiCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN0YXRzLXNhbXBsZS1pbnRlcnZhbApAQCAtMCwwICsxIEBACitTcGVjaWZ5IHRoZSBpbnRlcnZhbCBiZXR3ZWVuIHNhbXBsZSBwb2ludHMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtc2FtcGxlLXdpbmRvdyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cy1zYW1wbGUtd2luZG93Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc2MmM5NTgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtc2FtcGxlLXdpbmRvdwpAQCAtMCwwICsxLDIgQEAKK1NwZWNpZnkgdGhlIHNhbXBsZSB3aW5kb3cgZm9yIHNob3dpbmcgdGhlIHN0YXRzLiBUaGUgc2FtcGxlIHdpbmRvdyBpcyB0aGUKK251bWJlciBvZiByYXcgc3RhdCB2YWx1ZXMgdG8gYXZlcmFnZSBhcm91bmQgYSBkb3duLXNhbXBsZWQgZGF0YSBwb2ludC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cy1zdGFydC10aW1lIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN0YXRzLXN0YXJ0LXRpbWUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODhiNDljYwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdGF0cy1zdGFydC10aW1lCkBAIC0wLDAgKzEgQEAKK1NwZWNpZnkgdGhlIHN0YXJ0IHRpbWUgZm9yIGRpc3BsYXlpbmcgdGhlIHN0YXRzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN0YXRzLXR5cGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3RhdHMtdHlwZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hZDJkMjYzCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29udHJvbGxlci9zaG93LXN0YXRzLXR5cGUKQEAgLTAsMCArMSBAQAorU3BlY2lmeSB0aGUgdHlwZSBvZiBjb250cm9sbGVyIHN0YXRzIHRvIHNob3cuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3VtbWFyeSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zdW1tYXJ5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIyMjRhNjYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3VtbWFyeQpAQCAtMCwwICsxIEBACitTaG93IGEgc3VtbWFyeSBvZiB0aGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNwZWNpZmllZCBjb250cm9sbGVyIG5vZGUuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3dpdGNoZXMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb250cm9sbGVyL3Nob3ctc3dpdGNoZXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDQyNjdkYQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvbnRyb2xsZXIvc2hvdy1zd2l0Y2hlcwpAQCAtMCwwICsxIEBACitTaG93IHRoZSBzd2l0Y2hlcyBjb25uZWN0ZWQgdG8gdGhlIHNwZWNpZmllZCBjb250cm9sbGVyIG5vZGUuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3B5L2NvcHkgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3B5L2NvcHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjAzMWI4MAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcHkvY29weQpAQCAtMCwwICsxLDUgQEAKK1RoZSBjb3B5IGNvbW1hbmQgd2l0aCBvbmUgcGFyYW1ldGVycyBjb3BpZXMgdGhlIGNvbnRlbnRzCitvZiB0aGUgY29uZmlndXJhaW9uIGZpbGUgb3V0IGZvciBkaXNwbGF5LgorCitUaGUgY29weSBjb21tYW5kIHdpdGggdHdvIHBhcmFtZXRlcnMgY29waWVzIHRoZSBjb250ZW50cworb2YgdGhlIHJlcXVlc3RlZCBzb3VyY2UgaW50byB0aGUgZGVzc2luYXRpb24uCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3B5L2NvcHktZGVzdCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcHkvY29weS1kZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlkYzJjYmMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3B5L2NvcHktZGVzdApAQCAtMCwwICsxLDE0IEBACitEZXN0aW5hdGlvbiBzcGVjaWZpZXIgZm9yIHRoZSBjb3B5CisKK1RoZSBrZXl3b3JkICdydW5uaW5nLWNvbmZpZycgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgY29udHJvbGxlcidzCitjdXJyZW50IHN0YXRlICh0aGF0IGlzLCBvdmVyd3JpdGUgdGhlIHJ1bm5pbmcgc3RhdGUpLgorCitUaGUgJ2NvbmZpZzovLycgVVJJIHNjaGVtZSBjYW4gYmUgdXNlZCB0byBzYXZlIGNvbmZpZyBmaWxlcwordG8gdGhlIGxvY2FsIGNvbnRyb2xsZXIncyBkaXNrLgorCitUaGUgJ2h0dHA6Ly8nIGFuZCAnZnRwOi8vJyBVUkkgc2NoZW1lcyBjYW4gYmUgdXNlZCB0byByZWZlcmVuY2UgcmVtb3RlCityZXNvdXJjZXMuCisKK0lmIHRoZSBkZXN0aW5hdGlvbiBzcGVjaWZpZXIgaXMgb21pdHRlZCwgdGhlIHJlc291cmNlIHJlZmVyZW5jZWQKK2J5IHRoZSBzb3VyY2Ugc3BlY2lmaWVyIGlzIHNlbnQgdG8gdGhlIENsaSBjb25zb2xlLgorCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3B5L2NvcHktZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcHkvY29weS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJkZTVjOTAKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3B5L2NvcHktZXhhbXBsZQpAQCAtMCwwICsxLDYgQEAKKyBjb3B5IHJ1bm5pbmctY29uZmlnCisgICBWYXJpYXRpb24gb2YgdGhlICdzaG93IHJ1bm5pbmctY29uZmlnJyBjb21tYW5kCisKKyBjb3B5IHJ1bm5pbmctY29uZmlnIGNvbmZpZzovL3h5egorICBDb3B5IHRoZSBjdXJyZW50IHJ1bm5pbmcgY29uZmlnIGludG8gdGhlIGNvbmZpZ3VyYXRpb24gCisgIHRhcmdldCBuYW1lZCBjb25maWc6Ly94eXoKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcHkvY29weS1zb3VyY2UgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3B5L2NvcHktc291cmNlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRjOWJiZDUKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3B5L2NvcHktc291cmNlCkBAIC0wLDAgKzEsMTEgQEAKK1NvdXJjZSBzcGVjaWZpZXIgZm9yIHRoZSBjb3B5CisKK1RoZSBrZXl3b3JkICdydW5uaW5nLWNvbmZpZycgY2FuIGJlIHVzZWQgdG8gc3BlY2lmeSB0aGUgY29udHJvbGxlcidzCitjdXJyZW50IHN0YXRlLgorCitUaGUgJ2NvbmZpZzovLycgVVJJIHNjaGVtZSBjYW4gYmUgdXNlZCB0byByZWZlcmVuY2Ugc2F2ZWQgY29uZmlnIGZpbGVzCitmcm9tIGEgcHJldmlvdXMgJ2NvcHknIGNvbW1hbmQuCisKK1RoZSAnaHR0cDovLycgYW5kICdmdHA6Ly8nIFVSSSBzY2hlbWVzIGNhbiBiZSB1c2VkIHRvIHJlZmVyZW5jZSByZW1vdGUKK3Jlc291cmNlcy4KKwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS9ib290IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS9ib290Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA1OTIyZGEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL2Jvb3QKQEAgLTAsMCArMSwzIEBACitUaGlzIGNvbW1hbmQgYWxsb3dzIHlvdSB0byBjb25maWd1cmUgc3lzdGVtIGJvb3QgcGFyYW1ldGVycy4gIEF0IHRoZQorbW9tZW50LCB5b3UgY2FuIHJlc3RvcmUgdGhlIGNvbnRyb2xsZXIgdG8gaXRzIGZhY3RvcnkgZGVmYXVsdAorY29uZmlndXJhdGlvbiB1c2luZyB0aGUgJ2ZhY3RvcnktZGVmYXVsdCcgcGFyYW1ldGVyLiAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL2Jvb3QtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvYm9vdC1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmVjZjkzZTUKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL2Jvb3QtZXhhbXBsZQpAQCAtMCwwICsxLDE3IEBACitSZXNldCBjb250cm9sbGVyIHRvIGl0cyBmYWN0b3J5IGRlZmF1bHQgc2V0dGluZ3MuCisgICAgbm9kZTEoY29uZmlnKSMgYm9vdCBmYWN0b3J5LWRlZmF1bHQKKyAgICBSZS1zZXR0aW5nIGNvbnRyb2xsZXIgdG8gZmFjdG9yeSBkZWZhdWx0cyAuLi4KKyAgICBXYXJuaW5nOiBUaGlzIHdpbGwgcmVzZXQgeW91ciBjb250cm9sbGVyIHRvIGZhY3RvcnktZGVmYXVsdCBzdGF0ZQorICAgICAgICAgICAgIGFuZCByZWJvb3QgaXQuICBZb3Ugd2lsbCBsb3NlIGFsbCBub2RlL2NvbnRyb2xsZXIKKyAgICAgICAgICAgICBjb25maWd1cmF0aW9uIGFuZCB0aGUgbG9ncworICAgIERvIHlvdSB3YW50IHRvIGNvbnRpbnVlIFtub10/IHllcworICAgIFJlc2V0dGluZyBjYXNzYW5kcmEgc3RhdGUgLi4uCisgICAgUmVtb3ZpbmcgZXhpc3RpbmcgbG9nIGZpbGVzIC4uLgorICAgIHJzeXNsb2cgc3RvcC93YWl0aW5nCisgICAgUmVzZXR0aW5nIHN5c3RlbSBzdGF0ZSAuLi4KKyAgICAKKyAgICBDdXJyZW50IGRlZmF1bHQgdGltZSB6b25lOiAnRXRjL1VUQycKKyAgICBMb2NhbCB0aW1lIGlzIG5vdzogICAgICBXZWQgT2N0IDI0IDAwOjA1OjQxIFVUQyAyMDEyLgorICAgIFVuaXZlcnNhbCBUaW1lIGlzIG5vdzogIFdlZCBPY3QgMjQgMDA6MDU6NDEgVVRDIDIwMTIuCisgICAgCisgICAgcGFzc3dkOiBwYXNzd29yZCBleHBpcnkgaW5mb3JtYXRpb24gY2hhbmdlZC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvZmFjdG9yeS1kZWZhdWx0IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS9mYWN0b3J5LWRlZmF1bHQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2E2N2NjZQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvZmFjdG9yeS1kZWZhdWx0CkBAIC0wLDAgKzEsMTMgQEAKK1Jlc2V0IHRoZSBjb250cm9sbGVyIHRvIHRoZSBmYWN0b3J5IGRlZmF1bHQgY29uZmlndXJhdGlvbi4gIFRoaXMgd2lsbAord2lwZSBvdXQgYWxsIGNvbmZpZ3VyYXRpb24gYW5kIGxvZ3MgZmlsZXMgYW5kIHJlc3RvcmUgdGhlIGNvbnRyb2xsZXIKK3RvIGl0cyBpbml0aWFsIGRlZmF1bHQgY29uZmlndXJhdGlvbi4KKworVGhpcyB3aWxsIHJlcXVpcmUgcmVib290aW5nIHRoZSBjb250cm9sbGVyIG5vZGUuICBXaGVuIHRoZSBjb250cm9sbGVyCitmaW5pc2hlcyByZWJvb3RpbmcsIHlvdSB3aWxsIG5lZWQgdG8gZ28gdGhyb3VnaCB0aGUgbm9ybWFsICJmaXJzdCB0aW1lCitzZXR1cCIgcHJvY2VzcywgaW5jbHVkaW5nIHJlY29uZmlndXJpbmcgdGhlIG5ldHdvcmsgaW50ZXJmYWNlCitjb25maWd1cmF0aW9uLgorCitOb3RlIHRoYXQgaWYgeW91IGhhdmUgY3VzdG9taXplZCB0aGUgY29udHJvbGxlciBiYXNlIGltYWdlIHRocm91Z2gKK2RlYnVnIGZhY2lsaXRpZXMsIHRoZW4gc29tZSBjb25maWd1cmF0aW9uIG1heSBub3QgYmUgcmVzdG9yZWQgdGhyb3VnaAordGhpcyBjb21tYW5kLiAgSWYgdGhpcyBpcyB0aGUgY2FzZSwgaXQgaXMgcmVjb21tZW5kZWQgdGhhdCB5b3Ugc3RhcnQKK3dpdGggYSBmcmVzaCBjb250cm9sbGVyIGltYWdlLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvcmVsb2FkIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS9yZWxvYWQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTdiZGIyNQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvcmVsb2FkCkBAIC0wLDAgKzEsMTAgQEAKK1RoaXMgY29tbWFuZCB3aWxsIHJlc3RhcnQgdGhpcyBjb250cm9sbGVyIG5vZGUuICBJZiB5b3UgYXJlIHJ1bm5pbmcgYXMKK3BhcnQgb2YgYSBoaWdoIGF2YWlsYWJpbGl0eSBjbHVzdGVyLCB0aGlzIHdpbGwgdHJpZ2dlciBhIGZhaWxvdmVyIHRvCit0aGUgcmVtYWluaW5nIG5vZGVzLCBidXQgeW91IG1heSB3aXNoIHRvIG1hbnVhbGx5IHRyaWdnZXIgdGhpcyBmaXJzdAordXNpbmcgdGhlICJoYSBmYWlsb3ZlciIgY29tbWFuZC4KKworUmVib290aW5nIHRoZSBjb250cm9sbGVyIHdpbGwgYWxsb3cgeW91IHRvIGFjY2VzcyB0aGUgYm9vdCBtZW51IGlmIHlvdQord2lzaCB0byByZXZlcnQgdG8gYW4gb2xkZXIgdmVyc2lvbiBvZiB0aGUgY29udHJvbGxlciBzb2Z0d2FyZQorZm9sbG93aW5nIGFuIHVwZ3JhZGUuICBJZiB5b3Ugd2lzaCB0byBkbyB0aGlzLCBzZWxlY3QgdGhlIGFwcHJvcHJpYXRlCitpbWFnZSBmcm9tIHRoZSBib290IGxvYWRlciBwcm9tcHQgZnJvbSB0aGUgY29udHJvbGxlciBjb25zb2xlIHRvCitjaG9vc2UgYSBkaWZmZXJlbnQgaW1hZ2UgdmVyc2lvbi4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvcmVsb2FkLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3JlbG9hZC1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhkNTY2ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3JlbG9hZC1leGFtcGxlCkBAIC0wLDAgKzEsMyBAQAorUmVib290IHRoZSBjb250cm9sbGVyCisgICAgbm9kZTEoY29uZmlnKSMgcmVsb2FkIAorICAgIENvbmZpcm0gUmVsb2FkICh5ZXMgdG8gY29udGludWUpIHllcwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS91cGdyYWRlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS91cGdyYWRlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVmZDY1MjQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3VwZ3JhZGUKQEAgLTAsMCArMSw0MSBAQAorVXBncmFkZSB0aGUgY29udHJvbGxlciBmcm9tIGFuIHVwbG9hZGVkIGNvbnRyb2xsZXIgaW1hZ2UuIFRvIHBlcmZvcm0gCit1cGdyYWRlLCB5b3Ugd2lsbCBmaXJzdCBuZWVkIHRvIHVwbG9hZCBhbiB1cGdyYWRlIGltYWdlIHBhY2thZ2UgYnkgCitzY3BpbmcgdGhlIGZpbGUgdXNpbmcgdGhlICJpbWFnZXMiIHVzZXIuIAorCisJCitVcGdyYWRlIGltYWdlIHBhY2thZ2UgaXMgYSBmaWxlIHdpdGggbmFtZSBvZiBmb3JtYXQgCisidXBncmFkZS1ZWVlZLk1NLkRELlhYWFgucGtnIi4KK0ZvbGxvd2luZyBpcyBhbiBleGFtcGxlIHRvIHByZXBhcmUgdXBncmFkZSBmb3IgY29udHJvbGxlciB3aXRoIElQIAorYWRkcmVzcyAxOTIuMTY4LjY3LjE0MToiCisKKwkKK3NjcCAkcGF0aC91cGdyYWRlLTIwMTMuMDIuMTMuMDkyMS5wa2cgaW1hZ2VzQDE5Mi4xNjguNjcuMTQxOiIKKworCQorQWZ0ZXIgeW91IHJ1biB0aGUgdXBncmFkZSwgdGhlIG5ldyBjb250cm9sbGVyIGltYWdlIHdpbGwgYmUgaW5zdGFsbGVkCitvbiB0aGUgc2Vjb25kIGltYWdlIHBhcnRpdGlvbiwgYW5kIHdpbGwgYmUgY29uZmlndXJlZCBhcyB0aGUgZGVmYXVsdAorYm9vdCBpbWFnZS4gIFJ1bm5pbmcgdGhlICJyZWxvYWQiIGNvbW1hbmQgd2lsbCBib290IHRoZSBjdXJyZW50IG5vZGUJCitJZiB5b3UgYXJlIHVwZ3JhZGluZyBhIGNsdXN0ZXIgd2l0aCBtdWx0aXBsZSBub2RlcywgYmVnaW4gYnkgdXBncmFkaW5nCit0aGUgc2xhdmUgbm9kZXMgZm9sbG93ZWQgYnkgdGhlIG1hc3RlciBub2RlLiAgWW91IGNhbiBmaW5kIG91dCB3aGljaAorc2xhdmUgaXMgdGhlIG1hc3RlciBieSBydW5uaW5nICJzaG93IGNvbnRyb2xsZXItbm9kZSBhbGwiLiAgWW91IHNob3VsZAordXBncmFkZSBlYWNoIG5vZGUgYnkgcnVubmluZyB0aGUgdXBncmFkZSwgdGhlbiByZWxvYWRpbmcgdGhlCitjb250cm9sbGVyIG5vZGUuCisKKwkKK0ZvciBleGFtcGxlLCBpZiB5b3UgaGF2ZSB0d28gbm9kZXMgaW4geW91ciBjbHVzdGVyLCBub2RlMSAodGhlIGN1cnJlbnQKK21hc3RlcikgYW5kIG5vZGUyICh0aGUgY3VycmVudCBzbGF2ZSksIHlvdSBzaG91bGQ6CQorCisKKyAgIyBVcGdyYWRlIG5vZGUyIHVzaW5nIHRoZSAidXBncmFkZSIgY29tbWFuZFxcCisgICMgUmVib290IG5vZGUyIHVzaW5nIHRoZSAicmVsb2FkIiBjb21tYW5kXFwKKyAgIyBVcGdyYWRlIG5vZGUxIHVzaW5nIHRoZSAidXBncmFkZSIgY29tbWFuZFxcCisgICMgUmVib290IG5vZGUxIHVzaW5nIHRoZSAicmVsb2FkIiBjb21tYW5kXFwKKworCitOb3RlIHRoYXQgd2hlbiB5b3UgcmVib290IHRoZSBtYXN0ZXIgY29udHJvbGxlciBub2RlMSB0aGVyZSBtYXkgYmUgYQorYnJpZWYgZGlzcnVwdGlvbiBpbiB5b3VyIG5ldHdvcmsuCQorCisKK1BsZWFzZSByZWZlciB0byB0aGUgc2VjdGlvbiBvbiB1cGdyYWRpbmcgaW4gdGhlIHVzZXIgZ3VpZGUgZm9yIG1vcmUKK2RldGFpbGVkIGluZm9ybWF0aW9uLCBpbmNsdWRpbmcgaW5mb3JtYXRpb24gb24gaG93IHRvIHJldmVydCBpZiB0aGUKK3VwZ3JhZGUgZmFpbHMuCQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS91cGdyYWRlLWFib3J0IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS91cGdyYWRlLWFib3J0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjcxNDFlZGEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3VwZ3JhZGUtYWJvcnQKQEAgLTAsMCArMSw4IEBACitJZiB5b3UndmUgYWxyZWFkeSBydW4gYW4gdXBncmFkZSBvcGVyYXRpb24gb24gdGhpcyBjb250cm9sbGVyIG5vZGUsCitidXQgd2FudCB0byBhYm9ydCB0aGUgdXBncmFkZSBiZWZvcmUgeW91IHJlYm9vdCBpbnRvIHRoZSBuZXcKK3BhcnRpdGlvbiwgcnVuIHRoZSAidXBncmFkZSBhYm9ydCIgY29tbWFuZCB0byBjb25maWd1cmUgdGhlIGNvbnRyb2xsZXIKK3RvIGJvb3QgYnkgZGVmYXVsdCBmcm9tIHRoZSBjdXJyZW50LWFjdGl2ZSBwYXJ0aXRpb24gYW5kIHNldCB0aGUKK2NvbnRyb2xsZXIgc3RhdHVzIGJhY2sgdG8gIlJlYWR5LiIKKworVGhpcyBjYW4gYWxsb3cgeW91IHRvIHJlc3RhcnQgYSBmYWlsZWQgdXBncmFkZSBwcm9jZXNzLCBmb3IgZXhhbXBsZQoraWYgYSBub2RlIGZhaWx1cmUgb2NjdXJzIHdoaWxlIGF0dGVtcHRpbmcgdG8gdXBncmFkZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvdXBncmFkZS1hYm9ydC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS91cGdyYWRlLWFib3J0LWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjY4Y2NmMQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvdXBncmFkZS1hYm9ydC1leGFtcGxlCkBAIC0wLDAgKzEsMiBAQAordXBncmFkZSBhYm9ydAorICBBYm9ydCBhbiBpbi1wcm9ncmVzcyBvciByZXF1ZXN0ZWQgdXBncmFkZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS91cGdyYWRlLWRldGFpbHMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3VwZ3JhZGUtZGV0YWlscwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZjkyMjQxCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS91cGdyYWRlLWRldGFpbHMKQEAgLTAsMCArMSwzIEBACitUaGUgImRldGFpbHMiIG9wdGlvbiB3aWxsIGNhdXNlIHZlcmJvc2UgaW5mb3JtYXRpb24gdG8gYmUgcHJpbnRlZCBvdXQKK2R1cmluZyBlYWNoIHVwZ3JhZGUgc3RlcC4gIFRoaXMgbWF5IGJlIGhlbHBmdWwgaW4gZGlhZ25vc2luZyBmYWlsdXJlcworZHVyaW5nIHRoZSB1cGdyYWRlIHByb2Nlc3MuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3VwZ3JhZGUtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvdXBncmFkZS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllMzU3MjAKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3VwZ3JhZGUtZXhhbXBsZQpAQCAtMCwwICsxLDIwIEBACitVcGdyYWRlIHRoZSBjb250cm9sbGVyIG5vZGUgdXNpbmcgYW4gdXBsb2FkZWQgdXBncmFkZSBwYWNrYWdlCisgICAgbm9kZTE+IGVuYWJsZQkKKyAgICBub2RlMSMgdXBncmFkZQkKKyAgICBVcGdyYWRlIGNvbnRyb2xsZXIgZnJvbSBpbWFnZSAnL2hvbWUvaW1hZ2VzL3VwZ3JhZGUucGtnJz8JCisgICAgKHllcyB0byBjb250aW51ZSkgeWVzCQorICAgIEV4ZWN1dGluZyB1cGdyYWRlLi4uCQorICAgIDEgLSBWZXJpZnlpbmcgcGFja2FnZSBjaGVja3N1bQorICAgICAgU3VjY2VlZGVkCisgICAgMiAtIFZlcmlmeWluZyBjb25uZWN0aXZpdHkgdG8gb3RoZXIgbm9kZXMgdmlhIHBpbmcKKyAgICAgIFN1Y2NlZWRlZAorICAgIDMgLSBDaGVja2luZyBtaW5pbXVtIHN5c3RlbSByZXF1aXJlbWVudHMKKyAgICAgIFN1Y2NlZWRlZAorICAgIDQgLSBDb3B5aW5nIGNvbmZpZ3VyYXRpb24KKyAgICAgIFN1Y2NlZWRlZAorICAgIDUgLSBDcmVhdGluZyBuZXcgZmlsZXN5c3RlbQorICAgICAgU3VjY2VlZGVkCisgICAgQ29udHJvbGxlciBub2RlIHVwZ3JhZGUgY29tcGxldGUuCisgICAgVXBncmFkZSB3aWxsIG5vdCB0YWtlIGVmZmVjdCB1bnRpbCBzeXN0ZW0gaXMgcmVib290ZWQuIFVzZSAncmVsb2FkJyB0bworICAgIHJlYm9vdCB0aGlzIGNvbnRyb2xsZXIgbm9kZS4gVG8gcmV2ZXJ0LCBzZWxlY3QgdGhlIGFwcHJvcHJpYXRlIGltYWdlIAorICAgIGZyb20gdGhlIGJvb3QgbWVudQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS91cGdyYWRlLWZvcmNlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS91cGdyYWRlLWZvcmNlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU0NjgxZWEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3VwZ3JhZGUtZm9yY2UKQEAgLTAsMCArMSw2IEBACitUaGUgImZvcmNlIiBvcHRpb24gd2lsbCBydW4gdGhlIHVwZ3JhZGUgYnV0IHdpbGwgaWdub3JlIGFueSB2YWxpZGF0aW9uCitlcnJvcnMuICBUaGVzZSBlcnJvcnMgaW5jbHVkZSB2YWxpZGF0aW5nIHRoZSBwYWNrYWdlIGNoZWNrc3VtLCBtaW5pbXVtCitzeXN0ZW0gcmVxdWlyZW1lbnRzLCBhbmQgY29ubmVjdGl2aXR5LiAgTm90ZSB0aGF0IGlmIHlvdSBjaG9vc2UgdGhpcworb3B0aW9uLCB0aGVyZSBpcyBhbiBpbmNyZWFzZWQgY2hhbmNlIHRoYXQgeW91ciBjb250cm9sbGVyIHVwZ3JhZGUgd2lsbAorYmUgdW5zdWNjZXNzZnVsLgorCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3ZlcnNpb24gYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9jb3JlL3ZlcnNpb24KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2RhNzNjMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvdmVyc2lvbgpAQCAtMCwwICsxLDQgQEAKK1N3aXRjaCB0byBhIHNwZWNpZmljIHZlcnNpb24gb2YgY29tbWFuZCBzeW50YXguCisKK1RoaXMgY29tbWFuZCBpcyByZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQorKHRoZXJlIGFyZSBjdXJyZW50bHkgbm8gYWx0ZXJuYXRlIHZlcnNpb25zKS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvdmVyc2lvbi1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS92ZXJzaW9uLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTU3NjA5MgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvdmVyc2lvbi1leGFtcGxlCkBAIC0wLDAgKzEsMiBAQAordmVyc2lvbiBYWVoKKyAgU3dpdGNoIHRvIHZlcnNpb24gWFlaLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS93cml0ZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvd3JpdGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGU2NTA2MwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvd3JpdGUKQEAgLTAsMCArMSwyIEBACitXcml0ZSBjb21tYW5kIGFsbG93cyB5b3UgdG8gdmlldyB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uIG9yIHJlc3RvcmUKK3RoZSBzeXN0ZW0gdG8gaXRzIGRlZmF1bHQgY29uZmlndXJhdGlvbi4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvd3JpdGUtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvd3JpdGUtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iY2ViM2YzCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS93cml0ZS1leGFtcGxlCkBAIC0wLDAgKzEsMTIgQEAKK0Rpc3BsYXkgdGhlIGN1cnJlbnQgcnVubmluZy1jb25maWc6CisgICAgbm9kZTEjIHdyaXRlIHRlcm1pbmFsIAorICAgICEKKyAgICAhIFNETk9TIDEuMCAtIGN1c3RvbSB2ZXJzaW9uCisgICAgISBDdXJyZW50IFRpbWU6IDIwMTItMTAtMjMuMjA6Mzc6NTEKKyAgICAhCisgICAgLi4uCisKK1Jlc2V0IHRvIGZhY3RvcnkgZGVmYXVsdHM6CisgICAgbm9kZTEjIHdyaXRlIGVyYXNlIAorICAgIFJlLXNldHRpbmcgY29udHJvbGxlciB0byBmYWN0b3J5IGRlZmF1bHRzIC4uLgorICAgIC4uLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvY29yZS93cml0ZS10ZXJtaW5hbCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvd3JpdGUtdGVybWluYWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmNkZTFlMgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2NvcmUvd3JpdGUtdGVybWluYWwKQEAgLTAsMCArMSwyIEBACitEaXNwbGF5IHRoZSBjdXJyZW50IGFjdGl2ZSBjb25maWd1cmF0aW9uIG9uIHRoZSB0ZXJtaW5hbC4gIEVxdWl2YWxlbnQKK3RvICJzaG93IHJ1bm5pbmctY29uZmlnIi4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9kZWJ1Zy9iYXNoIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZGVidWcvYmFzaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMWFkMzg1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZGVidWcvYmFzaApAQCAtMCwwICsxIEBACitUaGUgYmFzaCBjaG9pY2VzIG9wZW5zIGEgbmVzdGVkIGJhc2ggc2hlbGwuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9kZWJ1Zy9jbGkgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9kZWJ1Zy9jbGkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2JjN2RmMQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2RlYnVnL2NsaQpAQCAtMCwwICsxLDEyIEBACitjbGkgY2hvaWNlcyBmb3IgdGhlIGRlYnVnIGNvbW1hbmQgZW5hYmxlcyB2YXJpb3VzCitkaWZmZXJlbnQgY2xpIGZlYXR1cmVzLiAgRmlyc3QgdGhlIGNsaSB3aWxsCitwcm92aWRlIGRldGFpbHMgYWJvdXQgaW50ZXJuYWwgZmFpbHVyZXMsIHdoaWNoIGlzCitpbnRlbmRlZCB0byBwcm92aWRlIGEgZGV0YWlsZWQgZGVzY3JpcHRpb24gZm9yCitzb21lIGZhaWx1cmUuICBGYWlsdXJlcyBtYXkgb2NjdXIgbm90IG9ubHkgaW4gdGhlCitleGVjdXRpb24gb2YgY29tbWFuZHMsIGJ1dCB3aGlsZSBidWlsZGluZyB0aGUKK2NvbW1hbmQsIGZvciBleGFtcGxlIGR1cmluZyB0aGUgZ2VuZXJhdGlvbiBvZgorY29tcGxldGlvbiBjaG9pY2VzLiAgU2Vjb25kLCB0aGUgY2xpIG9wdGlvbiBhbHNvCitlbmFibGVzIGRpcmVjdCBlZGl0aW5nIG9mIG1hbnkgb2YgdGhlIHVuZGVybHlpbmcKK21vZGVscyAoZGF0YWJhc2UgdGFibGVzKSBleHBvcnRlZCBieSB0aGUgUkVTVCBBUEkuCitUaGlzIGZlYXR1cmUgaXMgaW50ZW5kZWQgdG8gcHJvdmlkZSBhIHdheSB0byB2aWV3CitvciBtb2RpZnkgdGhlIGludGVybmFsIGNvbnRlbnRzIG9mIHRoZSBkYXRhYmFzZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2RlYnVnL2NsaS1iYWNrdHJhY2UgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9kZWJ1Zy9jbGktYmFja3RyYWNlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZhZDI5YzMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9kZWJ1Zy9jbGktYmFja3RyYWNlCkBAIC0wLDAgKzEsNSBAQAorVGhlIGNsaS1iYWNrdHJhY2UgZW5hYmxlcyBhZGRpdGlvbmFsIG91dHB1dCBkdXJpbmcKK2NsaSBmYWlsdXJlcywgZGlzcGxheWluZyBhIGJhY2t0cmFjZS4gIFRoZQorZGlmZmVyZW5jZSBiZXR3ZWVuIGNsaS1iYWNrdHJhY2UgYW5kIHRoZSBjbGkKK2Nob2ljZSBpcyB0aGF0IHRoZSBtb2RlbCAoZGF0YWJhc2UgdGFibGVzKSBlZGl0aW5nCitmZWF0dXJlcyBhcmUgbm90IGVuYWJsZWQKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2RlYnVnL2NsaS1iYXRjaCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2RlYnVnL2NsaS1iYXRjaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iY2M3NjFjCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZGVidWcvY2xpLWJhdGNoCkBAIC0wLDAgKzEsMiBAQAorVGhlIGJhdGNoIGNob2ljZSBlbmFibGVzIGJhdGNoIG1vZGUgd2l0aGluIHRoZQorY2xpLiAgIE5vIHByb21wdHMgd2lsbCBiZSByZXF1ZXN0ZWQgZnJvbSB0aGUgdXNlcgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZGVidWcvZGVidWctY2xpIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZGVidWcvZGVidWctY2xpCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjliYzRmN2EKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9kZWJ1Zy9kZWJ1Zy1jbGkKQEAgLTAsMCArMSw3IEBACitUaGUgZGVidWcgY29tbWFuZCBlbmFibGVzIGFuZCBkaXNhYmxlcyB2YXJpb3VzIHNldHRpbmdzIGludGVuZGVkIHRvIAorZGVzY3JpYmUgdGhlIGNsaSdzIG93biBiZWhhdmlvci4gICBJbiBhZGRpdGlvbiwgc29tZSBvZiB0aGUgY2hvaWNlcworYWxsb3cgbmVzdGVkIGludm9jYXRpb24gb2YgdmFyaW91cyBvdGhlciB0b29scywgaW50ZW5kZWQgdG8gZGVidWcKK3ZhcmlvdXMgcmVsYXRlZCBjb250cm9sbGVyIGNvbXBvbmVudHMsIGZvciBleGFtcGxlLCAnZGVidWcgY2Fzc2FuZHJhLWNsaScKK2lzIGludGVuZGVkIHRvIGVudGVyIHRoZSBjYXNzYW5kcmEgY2xpIHRvIHZpZXcgaW50ZXJuYWwgZGF0YWJhc2Ugc3RhdGUsCithbmQgJ2RlYnVnIGJhc2gnIGlzIGludGVuZGVkIHRvIGVudGVyIGEgYmFzaCBzdWJzaGVsbCB0byBnYWluIGFjY2VzcyB0bwordGhlIGludGVybmFsIGVudmlyb25tZW50IG9mIHRoZSBjb250cm9sbGVyLiAgCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9kZWJ1Zy9kZWJ1Zy1jbGktZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2RlYnVnL2RlYnVnLWNsaS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU1YTJjNmEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9kZWJ1Zy9kZWJ1Zy1jbGktZXhhbXBsZQpAQCAtMCwwICsxLDExIEBACitkZWJ1ZyByZXN0CisgIEVuYWJsZSByZXN0IGFwaSBvdXRwdXQKKworZGVidWcgcmVzdCBkZXRhaWwKKyAgRW5hYmxlIHJlc3QgYXBpIG91dHB1dCwgYW5kIGFsc28gZGlzcGxheSByZXBsaWVzIGZyb20gdGhlIHJlc3QgYXBpIGNhbGxzCisKK2RlYnVnIGNsaQorICBFbmFibGUgZGVidWdnaW5nIG1vZGUgZm9yIHRoZSBjbGkKKworZGVidWcgYmFzaAorICBPcGVuIGEgYmFzaCBzdWJzaGVsbApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZGVidWcvZGVzY3JpcHRpb24gYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9kZWJ1Zy9kZXNjcmlwdGlvbgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MjYyMjAxCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZGVidWcvZGVzY3JpcHRpb24KQEAgLTAsMCArMSw3IEBACitUaGUgZGVzY3JpcHRpb24gY2hvaWNlIGVuYWJsZXMgYWRkaXRpb25hbCBvdXRwdXQKK3RvIGRpc3BsYXkgdGhlIGludGVybmFsIGV4ZWN1dGlvbiBvZiBjb21tYW5kCitkZXNjcmlwdGlvbnMuICBUaGUgb3B0aW9uIGlzIGludGVuZGVkIHRvIGhlbHAKK2RlYnVnIHRoZSBjbGkncyBjb21tYW5kIGRlc2NyaXB0aW9ucy4gIEl0IHdpbGwgbm90Citvbmx5IGVuYWJsZSBvdXRwdXQgZm9yIGNvbW1hbmQgZXhlY3V0aW9uLCBidXQgYWxzbworZW5hYmxlIG91dHB1dCB3aGlsZSBwZXJmb3JtaW5nIGNvbW1hbmQgY29tcGxldGlvbgorY2hvaWNlcyBmb3IgY29tbWFuZHMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9kZWJ1Zy9yZXN0IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZGVidWcvcmVzdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMDMxODk2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZGVidWcvcmVzdApAQCAtMCwwICsxLDUgQEAKK1RoZSByZXN0IGNob2ljZSBlbmFibGVzIHByaW50aW5nIG9mIGFkZGl0aW9uYWwKK291dHB1dCB3aGVuIHRoZSBjbGkgaXNzdWVzIGFueSBSRVNUIEFQSSBjYWxscy4KK1RoZSBjb21tYW5kIGlzIHZhbHVhYmxlIHNpbmNlIGl0IGNhbiBwcm92aWRlIGFuCitpbmRpY2F0aW9uIG9mIHdoYXQgb3BlcmF0aW9ucyBhcmUgYmVpbmcgcGVyZm9ybWVkCitieSB0aGUgY2xpIHRvIHBlcmZvcm0gdGhlIHJlcXVlc3RlZCBjb21tYW5kLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZXh0ZXJuYWwtcG9ydHMvc2hvdyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2V4dGVybmFsLXBvcnRzL3Nob3cKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzEzYjdkMQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2V4dGVybmFsLXBvcnRzL3Nob3cKQEAgLTAsMCArMSwyIEBACitUaGUgZXh0ZXJuYWwtcG9ydHMgY29tbWFuZCBkaXNwbGF5cyB0aGUgc2V0IG9mIHN3aXRjaCBwb3J0cworY29ubmVjdGVkIHRvIGV4dGVybmFsIEwyIG5ldHdvcmtzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmVhdHVyZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZlYXR1cmUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTEyMGIwNQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZlYXR1cmUKQEAgLTAsMCArMSBAQAorRW5hYmxlIGEgbmFtZWQgZmVhdHVyZSBmb3IgdGhlIGNvbnRyb2xsZXIgaW1hZ2UKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mZWF0dXJlLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mZWF0dXJlLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2QzYzkyMQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZlYXR1cmUtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK2ZlYXR1cmUgbmV0dmlydAorICBFbmFibGUgdGhlIG5ldHdvcmsgdmlydHVhbGl6YXRpb24gZmVhdHVyZQorCitubyBmZWF0dXJlIG5ldHZpcnQKKyAgRGlzYWJsZSB0aGUgbmV0d29yayB2aXJ0dWFsaXphdGlvbiBmZWF0dXJlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mZWF0dXJlLWZsb3ctcHVzaGVyIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmVhdHVyZS1mbG93LXB1c2hlcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MGViYzlmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmVhdHVyZS1mbG93LXB1c2hlcgpAQCAtMCwwICsxIEBACitFbmFibGUgdGhlIHN0YXRpYyBmbG93IHB1c2hlciBmZWF0dXJlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmVhdHVyZS1uZXR2aXJ0IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmVhdHVyZS1uZXR2aXJ0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA3YmNjYjcKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mZWF0dXJlLW5ldHZpcnQKQEAgLTAsMCArMSBAQAorQ29uZmlndXJlIHRoaXMgY29udHJvbGxlciB3aXRoIG5ldHdvcmsgdmlydHVhbGl6YXRpb24gc3VwcG9ydApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZlYXR1cmUtcGVyZm9ybWFuY2UtbW9uaXRvciBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZlYXR1cmUtcGVyZm9ybWFuY2UtbW9uaXRvcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MzIyZjlmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmVhdHVyZS1wZXJmb3JtYW5jZS1tb25pdG9yCkBAIC0wLDAgKzEgQEAKK0NvbmZpZ3VyZSB0aGUgcGVyZm9ybWFuY2UgbW9uaXRvcmluZyBmZWF0dXJlIGZvciB0aGlzIGNvbnRyb2xsZXIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9maXJld2FsbC1ydWxlL3Nob3ctY29udHJvbGxlciBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZpcmV3YWxsLXJ1bGUvc2hvdy1jb250cm9sbGVyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhiYWE4MjgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9maXJld2FsbC1ydWxlL3Nob3ctY29udHJvbGxlcgpAQCAtMCwwICsxIEBACitGaWx0ZXIgdGhlIHNob3cgY29tbWFuZCBvdXRwdXQgdG8gdGhlIGluZGljYXRlZWQgY29udHJvbGxlci4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZpcmV3YWxsLXJ1bGUvc2hvdy1sb2NhbC1pcCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZpcmV3YWxsLXJ1bGUvc2hvdy1sb2NhbC1pcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jOTZhMzk3Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmlyZXdhbGwtcnVsZS9zaG93LWxvY2FsLWlwCkBAIC0wLDAgKzEgQEAKK1NlbGVjdCB0aGUgcnVsZXMgd2hpY2ggbWF0Y2ggdGhpcyBsb2NhbCBpcCBhZGRyZXNzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmlyZXdhbGwtcnVsZS9zaG93LW51bWJlciBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZpcmV3YWxsLXJ1bGUvc2hvdy1udW1iZXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTY2ZDQyZgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZpcmV3YWxsLXJ1bGUvc2hvdy1udW1iZXIKQEAgLTAsMCArMSBAQAorRmlsdGVyIHRoZSBzaG93IGNvbW1hbmQgb3V0cHV0IGJ5IHRoZSBpbmRpY2F0ZWQgaW50ZXJmYWNlIG51bWJlci4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZpcmV3YWxsLXJ1bGUvc2hvdy1wb3J0IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmlyZXdhbGwtcnVsZS9zaG93LXBvcnQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmMwMWUxMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZpcmV3YWxsLXJ1bGUvc2hvdy1wb3J0CkBAIC0wLDAgKzEgQEAKK0ZpbHRlciB0aGUgc2hvdyBjb21tYW5kIG91dHB1dCBieSB0aGUgaW5kaWNhdGVkIGZpbHRlcmVkIHBvcnQuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9maXJld2FsbC1ydWxlL3Nob3ctcHJvdG8gYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9maXJld2FsbC1ydWxlL3Nob3ctcHJvdG8KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzZjNzE4OQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZpcmV3YWxsLXJ1bGUvc2hvdy1wcm90bwpAQCAtMCwwICsxIEBACitGaWx0ZXIgdGhlIHNob3cgY29tbWFuZCBvdXRwdXQgYnkgdGhlIGluZGljYXRlZCBwcm90b2NvbC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZpcmV3YWxsLXJ1bGUvc2hvdy1zcmMtaXAgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9maXJld2FsbC1ydWxlL3Nob3ctc3JjLWlwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYzOWY5M2UKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9maXJld2FsbC1ydWxlL3Nob3ctc3JjLWlwCkBAIC0wLDAgKzEgQEAKK1NlbGVjdCB0aGUgcnVsZXMgd2hpY2ggbWF0Y2ggdGhpcyBzb3VyY2UgaXAgYWRkcmVzcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZpcmV3YWxsLXJ1bGUvc2hvdy10eXBlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmlyZXdhbGwtcnVsZS9zaG93LXR5cGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmNmZmY5NwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZpcmV3YWxsLXJ1bGUvc2hvdy10eXBlCkBAIC0wLDAgKzEgQEAKK0ZpbHRlciB0aGUgc2hvdyBjb21tYW5kIG91dHB1dCBieSB0aGUgaW5kaWNhdGVkIGludGVyZmFjZSB0eXBlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2FjdGl2ZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvYWN0aXZlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc5MTUzNjkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2FjdGl2ZQpAQCAtMCwwICsxIEBACitFbmFibGUgb3IgZGlzYWJsZSB0aGlzIGZsb3cgZW50cnkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2FjdGl2ZS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9hY3RpdmUtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mZDAzYTBhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9hY3RpdmUtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK2FjdGl2ZSBUcnVlCisgIE1ha2UgYWN0aXZlCisKK2FjdGl2ZSBGYWxzZQorICBNYWtlIGluYWN0aXZlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2FjdGl2ZS1maWVsZC1GYWxzZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvYWN0aXZlLWZpZWxkLUZhbHNlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZkNTVhY2UKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2FjdGl2ZS1maWVsZC1GYWxzZQpAQCAtMCwwICsxIEBACitNYWtlIHRoaXMgZmxvdyBlbnRyeSBpbmFjdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvYWN0aXZlLWZpZWxkLVRydWUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2FjdGl2ZS1maWVsZC1UcnVlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFhZDUyN2EKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2FjdGl2ZS1maWVsZC1UcnVlCkBAIC0wLDAgKzEgQEAKK01ha2UgdGhpcyBmbG93IGVudHJ5IGFjdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvY29va2llIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9jb29raWUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODU2YzJkYgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvY29va2llCkBAIC0wLDAgKzEgQEAKK0Fzc2lnbiBhIGNvb2tpZSB2YWx1ZSAoMzItYml0IGludGVnZXIpIHRvIHRoZSBmbG93IGVudHJ5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9jb29raWUtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvY29va2llLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGU3MWIxNwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvY29va2llLWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACitjb29raWUgNDIKKyAgQXNzaWduIGEgY29va2llIHZhbHVlIHRvIHRoaXMgZW50cnkKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZHN0LWlwIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9kc3QtaXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGEwMTNlMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZHN0LWlwCkBAIC0wLDAgKzEgQEAKK0Fzc29jaWF0ZSBhIGRlc3RpbmF0aW9uIElQIGFkZHJlc3Mgd2l0aCB0aGlzIGZsb3cgZW50cnkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2RzdC1pcC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9kc3QtaXAtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44YmE0ODYyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9kc3QtaXAtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK2RzdC1pcCAxLjIuMy40CisgIEFzc29jaWF0ZSBhIHNwZWNpZmljIGhvc3QgYWRkcmVzcyB3aXRoIHRoaXMgZmxvdyBlbnRyeQorCitkc3QtaXAgMS4yLjMuNC8yNAorICBBc3NvY2lhdGUgYSBkZXN0aW5hdGlvbiBhZGRyZXNzIHJhbmdlIHdpdGggdGhpcyBmbG93IGVudHJ5CmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2RzdC1pcC1maWVsZCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZHN0LWlwLWZpZWxkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjZmNzIwMzMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2RzdC1pcC1maWVsZApAQCAtMCwwICsxIEBACitFbnRlciBhbiBJUCBhZGRyZXNzIG9yIENJRFIgYWRkcmVzcyByYW5nZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9kc3QtbWFjIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9kc3QtbWFjCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBmMDJiNmYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2RzdC1tYWMKQEAgLTAsMCArMSBAQAorQXNzb2NpYXRlIGEgZGVzdGluYXRpb24gTUFDIGFkZHJlc3Mgd2l0aCB0aGlzIGZsb3cgZW50cnkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2RzdC1tYWMtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZHN0LW1hYy1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc2YmQ1N2EKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2RzdC1tYWMtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK2RzdC1tYWMgMDA6MDA6MDA6MDA6MDA6MDEKKyAgQXNzb2NpYXRlIGEgaG9zdCBieSBNQUMgYWRkcmVzcworCitkc3QtbWFjIG15LWNvbXB1dGVyCisgIEFzc29jaWF0ZSBhIGhvc3QgYWxpYXMgd2l0aCB0aGlzIGZsb3cgZW50cnkKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZHN0LW1hYy1maWVsZCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZHN0LW1hYy1maWVsZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMzcyN2I1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9kc3QtbWFjLWZpZWxkCkBAIC0wLDAgKzEgQEAKK0VudGVyIGEgTUFDIGFkZHJlc3Mgb3IgaG9zdCBhbGlhcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZHN0LXBvcnQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2RzdC1wb3J0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYzNmEyYzEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2RzdC1wb3J0CkBAIC0wLDAgKzEgQEAKK0Fzc29jaWF0ZSBhIFRDUCBvciBVRFAgcG9ydCB3aXRoIHRoaXMgZmxvdyBlbnRyeQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZHN0LXBvcnQtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZHN0LXBvcnQtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xMzMxZGFkCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9kc3QtcG9ydC1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAorZHN0LXBvcnQgODAKKyAgQXNzb2NpYXRlIGEgcG9ydCBieSBudW1iZXIKKworZHN0LXBvcnQgaHR0cHMKKyAgQXNzb2NpYXRlIGEgcG9ydCBieSBzZXJ2aWNlIG5hbWUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZHN0LXBvcnQtZmllbGQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2RzdC1wb3J0LWZpZWxkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBhOWExMTQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2RzdC1wb3J0LWZpZWxkCkBAIC0wLDAgKzEgQEAKK0VudGVyIGEgVENQIG9yIFVEUCBwb3J0IG51bWJlciwgb3Igd2VsbC1rbm93biBzZXJ2aWNlIG5hbWUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2V0aGVyLXR5cGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2V0aGVyLXR5cGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzA2YjEzZQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZXRoZXItdHlwZQpAQCAtMCwwICsxIEBACitNYXRjaCBmbG93IGVudHJpZXMgYnkgZXRoZXIgdHlwZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZXRoZXItdHlwZS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9ldGhlci10eXBlLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDgyZDc2OAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZXRoZXItdHlwZS1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAorZXRoZXItdHlwZSAweDg4YTIKKyAgTWF0Y2ggQU9FIGZyYW1lcworCitldGhlci10eXBlIGFycAorICBNYXRjaCBBUlAgZnJhbWVzCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2V0aGVyLXR5cGUtZmllbGQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2V0aGVyLXR5cGUtZmllbGQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjc1MWJhYQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZXRoZXItdHlwZS1maWVsZApAQCAtMCwwICsxIEBACitTcGVjaWZ5IGFuIGV0aGVyIGJ5IGJ5IG51bWJlciBvciBieSBhbGlhcwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9mbG93LWVudHJ5IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9mbG93LWVudHJ5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQwYTMzZTIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2Zsb3ctZW50cnkKQEAgLTAsMCArMSBAQAorRGVmaW5lIGEgZmxvdy1lbnRyeSBhbmQgZW50ZXIgaXRzIGNvbmZpZ3VyYXRpb24gc3ViLW1vZGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZmxvdy1lbnRyeS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9mbG93LWVudHJ5LWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjQ0NGJlNgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvZmxvdy1lbnRyeS1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAorZmxvdy1lbnRyeSBleGFtcGxlLTEKKyAgRGVmaW5lIGEgbmV3IGZsb3cgZW50cnkKKworbm8gZmxvdy1lbnRyeSBleGFtcGxlLTEKKyAgRGVsZXRlIGEgZmxvdyBlbnRyeSBieSBuYW1lCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2hhcmQtdGltZW91dCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvaGFyZC10aW1lb3V0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY1OTNhZWMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2hhcmQtdGltZW91dApAQCAtMCwwICsxIEBACitBc3NvY2lhdGUgYSBoYXJkIHRpbWVvdXQgd2l0aCB0aGlzIGZsb3cgZW50cnkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2hhcmQtdGltZW91dC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9oYXJkLXRpbWVvdXQtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40N2E0ZDNmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9oYXJkLXRpbWVvdXQtZXhhbXBsZQpAQCAtMCwwICsxLDIgQEAKK2hhcmQtdGltZW91dCAzMAorICBUaW1lIG91dCB0aGlzIGZsb3cgYWZ0ZXIgMzBzCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2hhcmQtdGltZW91dC1maWVsZCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvaGFyZC10aW1lb3V0LWZpZWxkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmMxMWY3YzkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2hhcmQtdGltZW91dC1maWVsZApAQCAtMCwwICsxIEBACitTcGVjaWZ5IGEgdGltZW91dCBpbiBzZWNvbmRzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9pZGxlLXRpbWVvdXQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2lkbGUtdGltZW91dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iNjdkYWQzCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9pZGxlLXRpbWVvdXQKQEAgLTAsMCArMSBAQAorU2V0IGFuIGlkbGUgdGltZW91dCBmb3IgdGhpcyBmbG93IGVudHJ5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9pZGxlLXRpbWVvdXQtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvaWRsZS10aW1lb3V0LWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODNkMDk4ZAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvaWRsZS10aW1lb3V0LWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACitpZGxlLXRpbWVvdXQgMzAKKyAgU2V0IHRoZSBpZGxlIHRpbWVvdXQgZm9yIDMwIHNlY29uZHMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2lkbGUtdGltZW91dC1maWVsZCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvaWRsZS10aW1lb3V0LWZpZWxkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZmMGRlNjkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2lkbGUtdGltZW91dC1maWVsZApAQCAtMCwwICsxIEBACitTcGVjaWZ5IGEgdGltZW91dCB2YWx1ZSBpbiBzZWNvbmRzClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9pbmdyZXNzLXBvcnQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2luZ3Jlc3MtcG9ydApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42MDBiMzViCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9pbmdyZXNzLXBvcnQKQEAgLTAsMCArMSBAQAorQXNzb2NpYXRlIGFuIE9GIGluZ3Jlc3MgcG9ydCB3aXRoIHRoaXMgZmxvdyBlbnRyeQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvaW5ncmVzcy1wb3J0LWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2luZ3Jlc3MtcG9ydC1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkyYzJjN2EKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2luZ3Jlc3MtcG9ydC1leGFtcGxlCkBAIC0wLDAgKzEsMiBAQAoraW5ncmVzcy1wb3J0IDMyCisgIEFzc2ljaWF0ZSBhbiBpbmdyZXNzIHBvcnQgYnkgbnVtYmVyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9pbmdyZXNzLXBvcnQtZmllbGQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L2luZ3Jlc3MtcG9ydC1maWVsZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40ZTVjYjBhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9pbmdyZXNzLXBvcnQtZmllbGQKQEAgLTAsMCArMSBAQAorU3BlY2lmeSBhbiBPRiBpbmdyZXNzIHBvcnQgKDE2LWJpdCBudW1iZXIpClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9wcmlvcml0eSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvcHJpb3JpdHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWVmMDMxYgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvcHJpb3JpdHkKQEAgLTAsMCArMSBAQAorQXNzaWduIGEgcHJpb3JpdHkgdG8gdGhpcyBmbG93IGVudHJ5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9wcmlvcml0eS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9wcmlvcml0eS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZhZjI5ODIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3ByaW9yaXR5LWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACitwcmlvcml0eSAxMDAwCisgIEdpdmUgdGhpcyBmbG93IGVudHJ5IGEgZml4ZWQgcHJpb3JpdHkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3ByaW9yaXR5LWZpZWxkIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9wcmlvcml0eS1maWVsZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZjAzZTIxCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9wcmlvcml0eS1maWVsZApAQCAtMCwwICsxIEBACitTcGVjaWZ5IHRoZSBwcmlvcml0eSBhcyBhIDE2LWJpdCBpbnRlZ2VyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9wcm90b2NvbCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvcHJvdG9jb2wKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGFjNDU1NAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvcHJvdG9jb2wKQEAgLTAsMCArMSBAQAorQXNzb2NpYXRlIGEgc3BlY2lmaWMgcHJvdG90eXBlIHR5cGUgdG8gdGhpcyBmbG93IGVudHJ5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9wcm90b2NvbC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9wcm90b2NvbC1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBhOTdiNGIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3Byb3RvY29sLWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACitwcm90b3RvbCAxNworICBBc3NvY2lhdGUgVENQIHBhY2tldHMgd2l0aCB0aGlzIGZsb3cgZW50cnkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3Byb3RvY29sLWZpZWxkIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9wcm90b2NvbC1maWVsZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMmNiY2VhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9wcm90b2NvbC1maWVsZApAQCAtMCwwICsxIEBACitTcGVjaWZ5IGEgcHJvdG9jb2wgYnkgbnVtYmVyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9zcmMtaXAgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3NyYy1pcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lOWU2MjdjCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9zcmMtaXAKQEAgLTAsMCArMSBAQAorQXNzb2NpYXRlIGEgc291cmNlIElQIGFkZHJlc3Mgb3IgcmFuZ2Ugd2l0aCB0aGlzIGZsb3cgZW50cnkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3NyYy1pcC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9zcmMtaXAtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZjdkNzFmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9zcmMtaXAtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK3NyYy1pcCAxLjIuMy40CisgIE1hdGNoIGEgc3BlY2lmaWMgYWRkcmVzcworCitzcmMtaXAgMS4yLjMuNC8yMworICBNYXRjaCBhbiBJUCBhZGRyZXNzIHJhbmdlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3NyYy1pcC1maWVsZCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLWlwLWZpZWxkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYyMmRkMDIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3NyYy1pcC1maWVsZApAQCAtMCwwICsxIEBACitTcGVjaWZ5IGFuIElQIGFkZHJlc3Mgb3IgYWRkcmVzcyByYW5nZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLW1hYyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLW1hYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYTQxMTliCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9zcmMtbWFjCkBAIC0wLDAgKzEgQEAKK0Fzc29jaWF0ZSBhIHNvdXJjZSBNQUMgYWRkcmVzcyB3aXRoIHRoaXMgZmxvdyBlbnRyeQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLW1hYy1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9zcmMtbWFjLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTEyZWVmYgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLW1hYy1leGFtcGxlCkBAIC0wLDAgKzEsNiBAQAorc3JjLW1hYyAwMDowMDowMDowMDowMDowMgorICBTcGVjaWZ5IGEgaG9zdCBieSBNQUMgYWRkcmVzcworCitzcmMtbWFjIG15LXNlcnZlcgorICBTcGVjaWZ5IGEgaG9zdCBieSBhbGlhcworCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3NyYy1tYWMtZmllbGQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3NyYy1tYWMtZmllbGQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjRiM2U2MgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLW1hYy1maWVsZApAQCAtMCwwICsxIEBACitTcGVjaWZ5IGEgTUFDIGFkZHJlc3Mgb3IgaG9zdCBhbGlhcwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLXBvcnQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3NyYy1wb3J0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjVkMjA2MzcKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3NyYy1wb3J0CkBAIC0wLDAgKzEgQEAKK0Fzc29jaWF0ZSBhIHNvdXJjZSBUQ1Agb3IgVURQIHBvcnQgd2l0aCB0aGlzIGZsb3cgZW50cnkKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3NyYy1wb3J0LWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3NyYy1wb3J0LWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmMxMWYzNAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLXBvcnQtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK3NyYy1wb3J0IDExOQorICBBc3NvY2lhdGUgYSBwb3J0IGJ5IG51bWJlcgorCitzcmMtcG9ydCBmdHAtZGF0YQorICBBc3NvY2lhdGUgYSBwb3J0IGJ5IHNlcnZpY2UgbmFtZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS9zcmMtcG9ydC1maWVsZCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLXBvcnQtZmllbGQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTc3NDQ5MQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvc3JjLXBvcnQtZmllbGQKQEAgLTAsMCArMSBAQAorU3BlY2lmeSBhIFRDUCBvciBVRFAgcG9ydCBieSBudW1iZXIgb3Igc2VydmljZSBuYW1lCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3Rvcy1iaXRzIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS90b3MtYml0cwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NjdhOWQ1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS90b3MtYml0cwpAQCAtMCwwICsxIEBACitBc3NvY2lhdGUgcGFja2V0cyB3aXRoIHRoaXMgZmxvdyBlbnRyeSBieSBUT1MgYml0cwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvdG9zLWJpdHMtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvdG9zLWJpdHMtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44NGE1NjNhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS90b3MtYml0cy1leGFtcGxlCkBAIC0wLDAgKzEsMiBAQAordG9zLWJpdHMgNgorICBNYXRjaCBzcGVjaWZpYyBUT1MgYml0cwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvdG9zLWJpdHMtZmllbGQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3Rvcy1iaXRzLWZpZWxkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU0NGNmOTcKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3Rvcy1iaXRzLWZpZWxkCkBAIC0wLDAgKzEgQEAKK1NwZWNpZnkgVE9TIGJpdHMgYXMgYSBudW1lcmljIG1hc2sKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvdmxhbi1pZCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvdmxhbi1pZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kMGZjNTRhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS92bGFuLWlkCkBAIC0wLDAgKzEgQEAKK01hdGNoIHBhY2tldHMgdG8gdGhpcyBmbG93IGVudHJ5IHdpdGggYSBzcGVjaWZpYyBWTEFOIGlkCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3ZsYW4taWQtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvdmxhbi1pZC1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhkYmQ1MjMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3ZsYW4taWQtZXhhbXBsZQpAQCAtMCwwICsxLDIgQEAKK3ZsYW4taWQgMTAKKyAgTWF0Y2ggYSBzcGVjaWZpYyBWTEFOIGlkCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3ZsYW4taWQtZmllbGQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3ZsYW4taWQtZmllbGQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTRhMTEwNgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvdmxhbi1pZC1maWVsZApAQCAtMCwwICsxIEBACitTcGVjaWZ5IGEgVkxBTiBpZCAoMTItYml0IGludGVnZXIpCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3ZsYW4tcHJpb3JpdHkgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3ZsYW4tcHJpb3JpdHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjc4Y2QzYgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvdmxhbi1wcmlvcml0eQpAQCAtMCwwICsxIEBACitNYXRjaCBwYWNrZXRzIHdpdGggYSBzcGVjaWZpYyBWTEFOIHByaW9yaXR5IGZpZWxkClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS92bGFuLXByaW9yaXR5LWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3ZsYW4tcHJpb3JpdHktZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZWFjYmU0Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS92bGFuLXByaW9yaXR5LWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACit2bGFuLXByaW9yaXR5IDQKKyAgTWF0Y2ggcGFja2V0cyB3aXRoIGJ5IHByaW9yaXR5IGZpZWxkIChpbiB0aGUgVkxBTiBoZWFkZXIpCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3ZsYW4tcHJpb3JpdHktZmllbGQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3ZsYW4tcHJpb3JpdHktZmllbGQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmFkMGMwMgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvdmxhbi1wcmlvcml0eS1maWVsZApAQCAtMCwwICsxIEBACitTcGVjaWZ5IGEgcHJpb3JpdHkgZmllbGQgYXMgYSAzLWJpdCBpbnRlZ2VyCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3dpbGRjYXJkcyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvd2lsZGNhcmRzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAzZTAxZGUKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3dpbGRjYXJkcwpAQCAtMCwwICsxIEBACitBc3NvY2lhdGUgYSB3aWxkY2FyZCB2YWx1ZSB3aXRoIHRoaXMgZmxvdyBlbnRyeQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvd2lsZGNhcmRzLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3dpbGRjYXJkcy1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjc1ZWQwZjIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mbG93LWVudHJ5L3dpbGRjYXJkcy1leGFtcGxlCkBAIC0wLDAgKzEsMiBAQAord2lsZGNhcmRzIDEwMDAKKyAgQXNzb2NpYXRlIGEgd2lsZGNhcmQgdmFsdWUgd2l0aCB0aGUgY3VycmVudGx5LWRlZmluZWQgZmxvdyBlbnRyeQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvd2lsZGNhcmRzLWZpZWxkIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZmxvdy1lbnRyeS93aWxkY2FyZHMtZmllbGQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWIxYWMxMgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zsb3ctZW50cnkvd2lsZGNhcmRzLWZpZWxkCkBAIC0wLDAgKzEgQEAKK1NwZWNpZnkgYSB3aWxkY2FyZCB2YWx1ZSAoMzItYml0IGludGVnZXIpCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3JtYXQvYnJpZWYgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3JtYXQvYnJpZWYKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzgxOTAxZgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zvcm1hdC9icmllZgpAQCAtMCwwICsxLDIgQEAKK1RoZSBicmllZiBrZXl3b3JrIHJlcXVlc3RzIGEgbGVzcyB2ZXJib3NlIHZlcnNpb24KK29mIG91dHB1dCBmb3IgdmFyaW91cyBzaG93IGNvbW1hbmRzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZm9ybWF0L2RldGFpbHMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3JtYXQvZGV0YWlscwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xZDBiZmM5Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZm9ybWF0L2RldGFpbHMKQEAgLTAsMCArMSwyIEBACitUaGUgZGV0YWlscyBrZXl3b3JkIHJlcXVlc3RzIGEgbW9yZSB2ZXJib3NlIHZlcnNpb24KK29mIHZhcmlvdXMgc2hvdyBjb21tYW5kcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zvcm1hdC9mdWxsLWRldGFpbCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2Zvcm1hdC9mdWxsLWRldGFpbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNGQwNDllCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZm9ybWF0L2Z1bGwtZGV0YWlsCkBAIC0wLDAgKzEsMiBAQAorRm9yIGEgZmV3IHNob3cgY29tbWFuZHMsIHRoZSAnZnVsbC1kZXRhaWwnIGlzIGEgcmVxdWVzdAordG8gZGlzcGxheSBtb3JlIGluZm9ybWF0aW9uIHRoYW4gdGhlICdkZWZhaWxzJyBrZXl3b3JkLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZm9ybWF0L3N1bW1hcnkgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3JtYXQvc3VtbWFyeQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hYjE4Mzc3Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZm9ybWF0L3N1bW1hcnkKQEAgLTAsMCArMSBAQAorQSBtb3JlIHRlcnNlIG91dHB1dCBmb3JtYXQuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3J3YXJkaW5nL2ZvcndhcmRpbmcgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3J3YXJkaW5nL2ZvcndhcmRpbmcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGE2MTg5ZAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZvcndhcmRpbmcvZm9yd2FyZGluZwpAQCAtMCwwICsxLDIgQEAKK1RoZSBmb3J3YXJkaW5nIGNvbW1hbmQgY29uZmlndXJlcyBhdHRyaWJ1dGVzIGFzc29jaWF0ZWQgd2l0aAordGhlIGZvcndhcmRpbmcgc2VydmljZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZvcndhcmRpbmcvZm9yd2FyZGluZy1hY2Nlc3MtcHJpb3JpdHkgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3J3YXJkaW5nL2ZvcndhcmRpbmctYWNjZXNzLXByaW9yaXR5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM0YzkyYzIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3J3YXJkaW5nL2ZvcndhcmRpbmctYWNjZXNzLXByaW9yaXR5CkBAIC0wLDAgKzEsMiBAQAorVGhpcyBhdHRyaWJ1dGUgc2V0cyB0aGUgcHJvcHJpdHkgZm9yIGZsb3dzIGNyZWF0ZWQgYnkKK3RoZSBmb3J3YXJkaW5nIHNlcnZpY2Ugb24gYW4gYWNjZXNzIHN3aXRjaApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZm9yd2FyZGluZy9mb3J3YXJkaW5nLWNvcmUtcHJpb3JpdHkgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3J3YXJkaW5nL2ZvcndhcmRpbmctY29yZS1wcmlvcml0eQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xODNlMzM0Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZm9yd2FyZGluZy9mb3J3YXJkaW5nLWNvcmUtcHJpb3JpdHkKQEAgLTAsMCArMSwyIEBACitUaGlzIGF0dHJpYnV0ZSBzZXQgdGhlIHByb3ByaXR5IGZvciBmbG93cyBjcmVhdGVkIGJ5Cit0aGUgZm9yd2FyZGluZyBzZXJ2aWNlIG9uIGEgY29yZSBzd2l0Y2gKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZvcndhcmRpbmcvZm9yd2FyZGluZy1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvZm9yd2FyZGluZy9mb3J3YXJkaW5nLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDQ0NTYyNgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZvcndhcmRpbmcvZm9yd2FyZGluZy1leGFtcGxlCkBAIC0wLDAgKzEsNiBAQAorICAgIGZvcndhcmRpbmcgY29yZS1wcmlvcml0eSAxMDAKKyAgICAgICAgVG8gc2V0IHByaW9yaXR5IGZvciBmb3J3YXJkaW5nIGZsb3ctbW9kcyBvbiBjb3JlIHN3aXRjaGVzIHRvIDEwMCwgdXNlOgorCisgICAgZm9yd2FyZGluZyBhY2Nlc3MtcHJpb3JpdHkgMTAwCisgICAgICAgIFRvIHNldCBwcmlvcml0eSBmb3IgZm9yd2FyZGluZyBmbG93LW1vZHMgb24gYWNjZXNzIHN3aXRjaGVzIHRvIDEwMCwgdXNlOgorCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3J3YXJkaW5nL2ZvcndhcmRpbmctc2hvdyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ZvcndhcmRpbmcvZm9yd2FyZGluZy1zaG93Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNhYTRiYWEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9mb3J3YXJkaW5nL2ZvcndhcmRpbmctc2hvdwpAQCAtMCwwICsxLDIgQEAKK1RoaXMgY29tbWFuZCBzaG93cyB0aGUgcnVubmluZyBjb25maWd1cmF0aW9uIGZvcgordGhlIGZvcndhcmRpbmcgc2VydmljZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaGEvaGEtZmFpbG92ZXIgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9oYS9oYS1mYWlsb3ZlcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xOGVlMzk0Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaGEvaGEtZmFpbG92ZXIKQEAgLTAsMCArMSw3IEBACitDb25maWd1cmVzIGZhaWxvdmVyIHBhcmFtZXRlcnMsIG9yIHRyaWdnZXJzIGEgZmFpbG92ZXIgZXZlbnQuCisKK1RoZSAnZmFpbG92ZXInIHRva2VuIGRpcmVjdHMgdGhlIGN1cnJlbnQgbm9kZSB0byBmYWlsIG92ZXIgdG8KK2EgY29uZmlndXJlZCBzbGF2ZSBjb250cm9sbGVyLgorCitUaGUgJ3Byb3Zpc2lvbicgdG9rZW4gY29uZmlndXJlcyBhIHNsYXZlIGNvbnRyb2xsZXIgYnkgSVAgYWRkcmVzcyB0aGF0Cit3aWxsIGZ1bmN0aW9uIGFzIGEgbWFzdGVyIGNvbnRyb2xsZXIgYWZ0ZXIgYSBmYWlsb3ZlciBldmVudC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hhL2hhLWZhaWxvdmVyLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9oYS9oYS1mYWlsb3Zlci1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNkNmI3M2IKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9oYS9oYS1mYWlsb3Zlci1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAoraGEgZmFpbG92ZXIKKyAgRmFpbCB0aGlzIGNvbnRyb2xsZXIgbm9kZSwgZGVmZXIgdG8gYSBzbGF2ZSBjb250cm9sbGVyCisKK2hhIHByb3Zpc2lvbiAxLjIuMy40CisgIENvbmZpZ3VyZSBhIG5ldyBjb250cm9sbGVyIG5vZGUgdG8gZnVuY3Rpb24gYXMgYSBzbGF2ZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaGEvaGEtdnJycCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hhL2hhLXZycnAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDkzZmUxMgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hhL2hhLXZycnAKQEAgLTAsMCArMSBAQAorQ29uZmlndXJlIHBhcmFtZXRlcnMgZm9yIHRoZSBWUlJQIHByb3RvY29sCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9oYS9oYS12cnJwLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9oYS9oYS12cnJwLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGY2OWIzYgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hhL2hhLXZycnAtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK2hhIGNsdXN0ZXItbnVtYmVyIDQyCisgIFNldCB0aGUgY2x1c3RlciBudW1iZXIgKFZSUlAgcm91dGVyIElEKQorCitubyBoYSBjbHVzdGVyLW51bWJlcgorICBSZXNldCB0aGUgVlJSUCByb3V0ZXIgSUQgdG8gdGhlIGRlZmF1bHQgKCcxJykKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3QvaG9zdCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3QvaG9zdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZWU4MzJhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9ob3N0CkBAIC0wLDAgKzEsMjMgQEAKK1RoZSBob3N0IGNvbW1hbmQgZW50ZXJzIGEgc3VibW9kZSB3aGljaAorYWxsb3dzIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBpZGVudGlmaWVkIGRldmljZS4gIFRoZSBjb21tYW5kJ3MKK3BhcmFtZXRlcnMgaWRlbnRpZnkgYSB1bmlxdWUgZGV2aWNlLCB3aGljaCBtYXkgcmVxdWlyZQordGhlIHVzZSBvZiB0aGUgb3B0aW9uYWwgYWRkcmVzcy1zcGFjZSBhbmQgdmxhbiBwYXJhbWV0ZXJzLgorCitUaGUgaWRlbnRpZmllZCBkZXZpY2UgZG9lcyBub3QKK2N1cnJlbnRseSBuZWVkIHRvIGJlIGtub3duIHRvIHRoZSBjb250cm9sbGVyLCBwcm92aWRpbmcKK2ZvciBwcmUtY29uZmlndXJhaW9uIG9mIGhvc3RzLgorCitWYXJpb3VzIGhvc3QgY29uZmlndXJhdGlvbiB3aXRoaW4gdGhlIHN1Ym1vZGUgaW5jbHVkZXMKK2hvc3QtYWxpYXMsIGFuZCBob3N0IHNlY3VyaXR5IGFzc29jaWF0aW9ucy4KKworSWYgY29tcGxldGlvbiBpcyByZXF1ZXN0ZWQgZm9yIHRoZSBob3N0cywgdGhlIHJlc3VsdGluZyAKK2VudHJpZXMgc2hvd24gYXJlIHRoZSBjb2xsZWN0aW9uIG9mIGN1cnJlbnRseSBrbm93biBob3N0cywKK2FuZCB0aGUgY29sbGVjdGlvbiBvZiBjb25maWd1cmVkIGhvc3RzLgorCitUaGUgbWFjIGFkZHJlc3MgaWRlbnRpZnlpbmcgdGhlIHNwZWNpZmljIGhvc3QgaXMKK2Nhc2UgaW5zZW5zaXRpdmUuCisKK1RoZSAnbm8nIHZhcmlhdGlvbiBvZiB0aGUgaG9zdCBjb21tYW5kIHdpbGwgcmVtb3ZlIGFsbCBjb25maWd1cmVkCitkZXRhaWxzIGZvciB0aGUgaWRlbnRpZmllZCBkZXZpY2UuICBJZiBhICdzaG93IGhvc3QnIGlzIGlzc3VlZAorYWZ0ZXJ3YXJkcywgdGhlIGhvc3Qgd2lsbCBzdGlsbCBhcHBlYXIgaWYgdGhlIGNvbnRyb2xsZXIgaGFzIGFueQorb3BlcmF0aW9uYWwgc3RhdGUgYXNzb2NhaXRlZCB3aXRoIHRoZSBob3N0LgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9ob3N0LWFkZHJlc3Mtc3BhY2UgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L2hvc3QtYWRkcmVzcy1zcGFjZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jNjI4NjA2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9ob3N0LWFkZHJlc3Mtc3BhY2UKQEAgLTAsMCArMSw2IEBACitUaGUgb3B0aW9uYWwgYWRkcmVzcy1zcGFjZSBhc3NvY2lhdGlvbiBmb3IgaG9zdCBhbGxvd3MgdGhlCitpZGVudGlmaWVkIG1hYyB0byBiZSBib3VuZCB0byBhIHNwZWNpZmljIGlzb2xhdGVkIGFkZHJlc3MKK3NwYWNlLiAKKworV2hlbiB0aGlzIG9wdGlvbmFsIHBhcmFtZXRlciBpcyBub3QgaW5jbHVkZWQsIHRoZSBtYWMKK2lzIGFzc29jaWF0ZWQgd2l0aCB0aGUgYWRkcmVzcy1zcGFjZSBuYW1lZCAnZGVmYXVsdCcuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L2hvc3QtYWxpYXMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L2hvc3QtYWxpYXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGU5ZGRhOQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3QvaG9zdC1hbGlhcwpAQCAtMCwwICsxLDkgQEAKK1RoZSBob3N0LWFsaWFzIGNvbW1hbmQgYWxsb3dzIGFzc29jaWF0aW5nIGEgbW9yZSBpZGVudGlmaWFibGUKK25hbWUgd2l0aCB0aGUgaG9zdCBpZGVudGlmaWVkIGJ5IGVudGVyaW5nIHRoZSBob3N0IHN1Ym1vZGUuCitIb3N0IGFsaWFzZXMgbXVzdCBzdGFydCB3aXRoIGFuIGFscGhhYmV0aWMgY2hhcmFjdGVyLCBhbmQKK2NhbiBjb250aW51ZSB3aXRoIGFscGhhbnVtZXJpY3MsICdfJywgb3IgJy0nLiAgVGhlIG1heGltdW0gbGVuZ3RoIG9mIGEKK2hvc3QgYWxpYXMgaXMgMjU1IGNoYXJhY3RlcnMuCisKK09uY2UgYW4gYWxpYXMgaXMgYXNzb2NpYXRlZCB3aXRoIGEgaG9zdCwgdmFyaW91cyBzaG93IGNvbW1hbmRzCit3aWxsIHByb3ZpZGUgdGhlIGFsaWFzIGFsb25nIHdpdGgsIG9yIGluc3RlYWQgb2YgdGhlIG1hYworYWRkcmVzcyB0byBpZGVudGlmeSB0aGUgaG9zdC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3QvaG9zdC1hbGlhcy1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9ob3N0LWFsaWFzLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGJhZThkZAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3QvaG9zdC1hbGlhcy1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAoraG9zdC1hbGlhcyBteS1tYWMtYm9vaworICBBc3NvY2lhdGUgYSBmcmllbmRseSBuYW1lIHdpdGggdGhlIGN1cnJlbnQgaG9zdCBkZWZpbml0aW9uCisKK25vIGhvc3QtYWxpYXMgbXktbWFjLWJvb2sKKyAgUmVtb3ZlIGEgaG9zdG5hbWUgYXNzb2NpYXRpb24gZnJvbSB0aGlzIGhvc3QKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3QvaG9zdC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9ob3N0LWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOGNmZDg5ZgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3QvaG9zdC1leGFtcGxlCkBAIC0wLDAgKzEsMTMgQEAKK2hvc3QgMDA6MDA6MDA6MDA6MDA6MDEKKyAgRGVmaW5lIGEgaG9zdCB3aXRoIGEgc3BlY2lmaWMgTUFDLCBhbmQgZW50ZXIgaXRzIGNvbmZpZ3VyYXRpb24gc3ViLW1vZGUKKworbm8gaG9zdCAwMDowMDowMDowMDowMDowMQorICBEZWxldGUgYSBkZWZpbml0aW9uIGZvciBhIHNwZWNpZmljIGhvc3QKKworaG9zdCBhZGRyZXNzLXNwYWNlIGRlZmF1bHQgMDA6MDA6MDA6MDA6MDA6MDIKKyAgRGVmaW5lIGEgaG9zdCBhbmQgYmluZCBpdCB0byBhIHNwZWNpZmljIGFkZHJlc3Mgc3BhY2UKKworaG9zdCB2bGFuIDQyIDAwOjAwOjAwOjAwOjAwOjAzCisgIERlZmluZSBhIGhvc3QgYW5kIGJpbmQgaXQgdG8gYSBzcGVjaWZpYyBWTEFOLgorICBOb3RlIGhlcmUgdGhhdCBWTEFOIGFzc29jaWF0aW9ucyBhcmUgb25seSB2YWxpZCB3aXRoIHRoZSAnZGVmYXVsdCcgYWRkcmVzcyBzcGFjZS4KKwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9ob3N0LXZsYW4gYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L2hvc3QtdmxhbgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZjE3ZDNiCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9ob3N0LXZsYW4KQEAgLTAsMCArMSw4IEBACitUaGUgb3B0aW9uYWwgdmxhbiBwYXJhbWV0ZXIgYWxsb3dzIHRoZSBpZGVudGlmaWVkIG1hYworYWRkcmVzcyB0byBiZSBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyB2bGFuLgorCitXaGVuIHRoaXMgb3B0aW9uYWwgcGFyYW1ldGVyIGlzbid0IGluY2x1ZGVkLCBubyB2bGFuCitpcyBhc3NvY2lhdGVkIHdpdGggdGhlIG1hYy4gICAKKworQ3VycmVudGx5LCB0aGUgdmxhbiBtYXkgb25seSBiZSBhc3NvY2lhdGVkIHdpdGggYSBtYWMKK2ZvciB0aGUgYXNzb2NpYXRlZCBhZGRyZXNzLXNwYWNlICdkZWZhdWx0Jy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2VjdXJpdHkgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3NlY3VyaXR5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBmODgzNTgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3NlY3VyaXR5CkBAIC0wLDAgKzEsMTYgQEAKK1RoZSBzZWN1cml0eSBjb21tYW5kIHdpdGhpbiB0aGUgaG9zdCBzdWJtb2RlIGlzIHVzZWQgdG8KK2JpbmQgaXAgYWRkcmVzcyBhbmQgYXR0YWNobWVudCBwb2ludHMgZm9yIHRoZSBob3N0cworaWRlbnRpZmllZCBieSB0aGUgc3VibW9kZS4KKworV2hhdCBhIGhvc3QgaXMgcHJlc2VudGVkIHRvIHRoZSBjb250cm9sbGVyLCB0aGUgYXR0YWNobWVudAorcG9pbnQgb2YgdGhlIGhvc3QgaXMgYWxzbyBpZGVudGlmaWVkLiAgIFdoZW4gdGhlIHNlY3VyaXR5Citjb21tYW5kIGlzIHVzZWQgdG8gY29uc3RyYWluIHRoZSBhdHRhY2htZW50IHBvaW50LCB0aGUKK2NvbnRyb2xsZXIgY2FuIHVzZSB0aGUgY29uZmlndXJlZCBkZXRhaWxzIHRvIGNob29zZSB3aGV0aGVyCitpdCB3aWxsIGFsbG93IHRoZSBob3N0IHRvIGpvaW4gdGhlIG5ldHdvcmsuCisKK1doZW4gYW4gaXAgYWRkcmVzcyBpcyBib3VuZCB0byB0aGUgaG9zdCwgbm8gb3RoZXIgaG9zdAorbWF5IHVzZSB0aGUgaW5kaWNhdGVkIGlwIGFkZHJlc3MuICAgVGhpcyBpcyBpbXBsZW1lbnRlZAorYnkgc25vb3BpbmcgYXJwJ3MgYW5kIHRoZSBkaGNwIHByb3RvY29sLiAgSXQgaXMgc3RpbGwKK3Bvc3NpYmxlIGZvciB0aGUgaG9zdCB0byBzZW5kIGZyYW1lcyB3aXRoIHNwb29mZWQKK3NyYyBpcCBhZGRyZXNzLCBidXQgdGhlIGRlc3RpbmF0aW9uIHdpbGwgbm90IGJlIGFibGUKK3RvIHJlcGx5IHRvIHRoZXNlIGZyYW1lcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2VjdXJpdHktYXR0YWNobWVudC1wb2ludCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2VjdXJpdHktYXR0YWNobWVudC1wb2ludApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kM2U2N2NiCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eS1hdHRhY2htZW50LXBvaW50CkBAIC0wLDAgKzEsMyBAQAorVGhlIGF0dGFjaG1lbnQgcG9pbnQgcG9ydGlvbiBpcyBpbnRlbmRlZCB0bworaWRlbnRpZnkgdGhlIHN3aXRjaCBvciBpbnRlcmZhY2UgbmFtZSwgb3RoZXJ3aXNlCit0aGUgaG9zdCBjYW5ub3QgdHJhbnNtaXQgb3IgcmVjZWl2ZSBuZXR3b3JrIHRyYWZmaWMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3NlY3VyaXR5LWF0dGFjaG1lbnQtcG9pbnQtaW50ZXJmYWNlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eS1hdHRhY2htZW50LXBvaW50LWludGVyZmFjZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zYWExMzc5Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eS1hdHRhY2htZW50LXBvaW50LWludGVyZmFjZQpAQCAtMCwwICsxLDMgQEAKK1RoaXMgZmllbGQgaXMgYSByZWd1bGFyIGV4cHJlc3Npb24sIHdoaWNoIGlzIHVzZWQgdG8KK21hdGNoIGFnYWluc3QgYW4gaW50ZXJmYWNlIG5hbWUgYXNzb2NpYXRlZCB3aXRoIHRoZQorc3dpdGNoLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eS1hdHRhY2htZW50LXBvaW50LXN3aXRjaCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2VjdXJpdHktYXR0YWNobWVudC1wb2ludC1zd2l0Y2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjNiODk1YQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2VjdXJpdHktYXR0YWNobWVudC1wb2ludC1zd2l0Y2gKQEAgLTAsMCArMSwzIEBACitUaGUgc3dpdGNoIGlzIHBhcnQgb2YgdGhlIGF0dGFjaG1lbnQgcG9pbnQgZGVzY3JpcHRpb24uCitUaGlzIGNhbiBiZSBhIHN3aXRjaCBkcGlkLCBvciBhbiBhbGlhcyBpZGVudGlmeWluZyBhCitzaW5nbGUgc3dpdGNoLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eS1iaW5kIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eS1iaW5kCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY3N2RmMzIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3NlY3VyaXR5LWJpbmQKQEAgLTAsMCArMSwzIEBACitUaGUgYmluZCBrZXl3b3JrIG9mIHRoZSBzZWN1cml0eSBwb2xpY3kgY29tbWFuZCAKK2lzIHVzZWQgdG8gY29uZmlndXJlIHZhcmlvdXMgYXNzb2NpYXRpb25zIAorcmVzdHJpY3RpbmcgdGhlIGJlaGF2aW9yIG9mIHRoZSBob3N0LgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU3ZGYyNTQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3NlY3VyaXR5LWV4YW1wbGUKQEAgLTAsMCArMSwyMSBAQAorc2VjdXJpdHkgcG9saWN5IGJpbmQgaXAtYWRkcmVzcyAxMC4xMC4xMC4xCisgIFdoZW4gdGhlIGhvc3Qgc2VuZHMgYW55IGlwIGZyYW1lcywgdGhlIHNyYyBhZGRyZXNzCisgIG9mIHRoZXNlIGZyYW1lcyBtdXN0IGJlIDEwLjEwLjEwLjEuICAKKworbm8gc2VjdXJpdHkgcG9saWN5IGJpbmQgaXAtYWRkcmVzcyAxMC4xMC4xMC4xCisgIFJlbW92ZSBhIHNvdXJjZS1hZGRyZXNzIGJpbmRpbmcgcmVxdWlyZW1lbnQgZm9yIHRoaXMgaG9zdAorCitzZWN1cml0eSBwb2xpY3kgYmluZCBhdHRhY2htZW50LXBvaW50IG50Z3ItNzMyOC0zCisgIFRoZSBob3N0IGlkZW50aWZpZWQgYnkgdGhpcyBzdWJtb2RlIGNhbiBvbmx5IHNlbmQKKyAgYW5kIHJlY2VpdmUgdHJhZmZpYyB3aGVuIGl0IGF0dGFjaGVkIHRvIHRoaXMgc3dpdGNoLgorCitubyBzZWN1cml0eSBwb2xpY3kgYmluZCBhdHRhY2htZW50LXBvaW50IG50Z3ItNzMyOC0zCisgIFJlbW92ZSBhbiBhdHRhY2htZW50IHBvaW50IHJlcXVpcmVtZW50IGZvciB0aGlzIGhvc3QKKworc2VjdXJpdHkgcG9saWN5IGJpbmQgYXR0YWNobWVudC1wb2ludCBudGdyLTczMjgtMyAxMgorICBUaGUgaG9zdCBpZGVudGlmaWVkIGJ5IHRoaXMgc3VibW9kZSBjYW4gb25seSBzZW5kCisgIGFuZCByZWNlaXZlIHRyYWZmaWMgd2hlbiBpdCBhdHRhY2hlZCB0byB0aGlzIHN3aXRjaCBhbmQKKyAgaW50ZXJmYWNlIG5hbWVkICcxMicKKworbm8gc2VjdXJpdHkgcG9saWN5IGJpbmQgYXR0YWNobWVudC1wb2ludCBudGdyLTczMjgtMyAxMgorICBSZW1vdmUgYW4gYXR0YWNobWVudCBwb2ludC9pbnRlcmZhY2UgcmVxdWlyZW1lbnQgZm9yIHRoaXMgaG9zdApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eS1pcC1hZGRyZXNzIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eS1pcC1hZGRyZXNzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJkN2ViY2QKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3NlY3VyaXR5LWlwLWFkZHJlc3MKQEAgLTAsMCArMSwyIEBACitUaGlzIGlkZW50aWZpZXMgYW4gaXAgYWRkcmVzcywgaXQgd2lsbCBwcmV2ZW50IG90aGVyIGhvc3QncworZnJvbSB1c2luZyBhbnkgb3RoZXIgaXAgYWRkcmVzcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2VjdXJpdHktcG9saWN5IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zZWN1cml0eS1wb2xpY3kKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2Y1OWJhZQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2VjdXJpdHktcG9saWN5CkBAIC0wLDAgKzEsMiBAQAorVGhlIHBvbGljeSBrZXl3b3JkIGlzIHVzZWQgdG8gY29uZmlndXJlIHNlY3VyaXR5Citwb2xpY2llcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBob3N0LgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjljODBiMGMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3Nob3cKQEAgLTAsMCArMSw4IEBACitUaGUgJ3Nob3cgaG9zdCcgY29tbWFuZCBkaXNwbGF5cyBkZXRhaWxzIGZvciBob3N0cywKK2luY2x1ZGluZyB0aGUgbWFjIGFkZHJlc3MsIHRoZSBhc3NvY2lhdGVkIGhvc3QgYWxpYXMsCit0aGUgYWRkcmVzcyBzcGFjZSwgaXAgYWRkcmVzcywgYXR0YWNobWVudCBwb2ludCwKK2NvbmZpZ3VyZWQgdGFncyBhbmQgdGhlIGxhc3QgdGltZSB0aGUgaG9zdCB3YXMKK3NlcnZpY2VkIGJ5IHRoZSBjb250cm9sbGVyLgorCitUaGUgdGFnIGNvbHVtbiBoZXJlIG9ubHkgZGlzcGxheXMgYSBzeW5vcHNpcworb2YgdGhlIGFzc29jaWF0ZWQgdGFncy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93LWhvc3QKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmVjOGMyYQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0CkBAIC0wLDAgKzEsNCBAQAorVGhpcyBjb21tYW5kIHZhcmlhdGlvbiBhbGxvd3MgZmlsdGVyaW5nIGJhc2VkIG9uCit0aGUgcHJvdmlkZWQgbWFjIGFkZHJlc3MuICBJbiBhZGRpdGlvbiwgdGhlIGhvc3RzCitjYW4gYmUgc2VsZWN0ZWQgZWl0aGVyIGJ5IHRoZSBzd2l0Y2ggb2YgdGhlaXIKK2F0dGFjaG1lbnQgcG9pbnQsIG9yIHRoZSBob3N0J3MgYXNzb2NpYXRlZCBpcCBhZGRyZXNzCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3Nob3ctaG9zdC1hZGRyZXNzLXNwYWNlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93LWhvc3QtYWRkcmVzcy1zcGFjZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNDRjMDI2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93LWhvc3QtYWRkcmVzcy1zcGFjZQpAQCAtMCwwICsxLDIgQEAKK1RoaXMgcG9zaXRpb25hbCBwYXJhbWV0ZXIgYWxsb3dzIGZpbHRlcmluZyBvbiB0aGUKK2FkZHJlc3Mgc3BhY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBob3N0cy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LWFsbCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LWFsbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kZjFmNDYyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93LWhvc3QtYWxsCkBAIC0wLDAgKzEsMyBAQAorVGhlICdhbGwnIGtleXdvcmQgaXMgYSBwb3NpdGlvbmFsIHBhcmFtZXRlciByZXBsYWNlbWVudAord2hpY2ggYWxsb3dzIGFkZGl0aW9uYWwgcGFyYW1ldGVycyB0byBiZSBpbmNsdWRlZC4gIAorJ2FsbCcgbWF5IG5vdCBiZSB1c2VkIGFzIGEgaG9zdCBhbGlhcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LWJ5LWhvc3QtbGFzdC1zZWVuIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93LWhvc3QtYnktaG9zdC1sYXN0LXNlZW4KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWE2MWU1YQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LWJ5LWhvc3QtbGFzdC1zZWVuCkBAIC0wLDAgKzEgQEAKK09yZGVyIHRoZSBvdXRwdXQgYnkgdGhlIHRpbWUgdGhlIGhvc3Qgd2FzIGxhc3Qgc2VlbiBieSB0aGUgY29udHJvbGxlcgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93LWhvc3QtYnktbGFzdC1zZWVuIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93LWhvc3QtYnktbGFzdC1zZWVuCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ2YWNkYzcKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3Nob3ctaG9zdC1ieS1sYXN0LXNlZW4KQEAgLTAsMCArMSBAQAorT3JkZXIgdGhlIG91dHB1dCBieSB0aGUgbGFzdCBzZWVuIHRpbWUgb2YgdGhlIGF0dGFjaG1lbnQgcG9pbnQKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LWJ5LW5ldHdvcmstYWRkcmVzcyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LWJ5LW5ldHdvcmstYWRkcmVzcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYWViMTU3Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93LWhvc3QtYnktbmV0d29yay1hZGRyZXNzCkBAIC0wLDAgKzEgQEAKK09yZGVyIHRoZSBvdXRwdXQgYnkgdGhlIGhvc3QncyBhc3NvY2lhdGVkIGlwIGFkZHJlc3NlcwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93LWhvc3QtaXB2NCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LWlwdjQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzI5Y2IyOAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LWlwdjQKQEAgLTAsMCArMSw3IEBACitUaGUgJ2lwLWFkZHJlc3MgPGlwLWFkZHJlc3M+JyBrZXl3b3JkIHBhaXIgY2FuIGJlIHVzZWQgdG8gCityZXN0cmljdCB0aGUgaG9zdCdzIGRpc3BsYXllZCBieSB0aGUgaXAtYWRkcmVzcyBhc3NvY2lhaXRlZAord2l0aCB0aGUgY3VycmVudGx5IGtub3duIGhvc3RzLgorCitJZiBjb21wbGV0aW9uIGlzIHJlcXVlc3RlZCBhZnRlciB0aGUgaXAtYWRkcmVzcyBrZXl3b3JkLCB0aGUKK2xpc3Qgb2YgaXAtYWRkcmVzc2VzIGRpc3BsYXllZCBhcmUgdGhlIGlwLWFkZHJlc3NlcyBjdXJyZW50bHkKK2Fzc29jaWF0ZWQgd2l0aCB0aGUga25vd24gaG9zdHMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3Nob3ctaG9zdC1pdGVtcyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LWl0ZW1zCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmZlMjk2MGYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3Nob3ctaG9zdC1pdGVtcwpAQCAtMCwwICsxLDEwIEBACitUaGlzICdzaG93IGhvc3QnIHZhcmlhbnQgYWxsb3dzIHRoZSBzZWxlY3Rpb24gb2YgCitwYXJ0aWN1bGFyIHJlbGF0ZWQgaG9zdCBkZXRhaWxzLCBmb3IgZXhhbXBsZSB0aGUKK2F0dGFjaG1lbnQgcG9pbnQgb3IgdGhlIGlwIGFkZHJlc3MuICAKKworVGhlIHZhcmlhbnQgZXhpc3RzIHRvIG1vcmUgY29tcGxldGVseSBsaXN0IHRoZQoraG9zdCdzIGFzc29jaWF0ZWQgYXR0cmlidXRlcy4gIEluIHRoZSBtb3JlIGJhc2ljCit2ZXJzaW9uIG9mIHRoZSBjb21tYW5kLCB0aGVzZSBjb2x1bW5zIG1heSBoYXZlCithYmJyZXZpYXRlZCBpbmZvcm1hdGlvbiAoZGlzcGxheWluZyBvbmx5IG9uZQoraXAgYWRkcmVzcywgZm9yIGV4YW1wbGUpLCB0byBwcm92aWRlIGEgbW9yZSAKK2NvbmNpc2UgZGlzcGxheS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LW1hYyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LW1hYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mOGZmNDhhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaG9zdC9zaG93LWhvc3QtbWFjCkBAIC0wLDAgKzEgQEAKK1RoaXMgcG9zaXRpb25hbCBwYXJhbWV0ZXIgYWxsb3dzIGZpbHRlcmluZyBvbiB0aGUgbWFjIGFkZHJlc3MuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3Nob3ctaG9zdC1zd2l0Y2ggYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ob3N0L3Nob3ctaG9zdC1zd2l0Y2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmZhYzUzNQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2hvc3Qvc2hvdy1ob3N0LXN3aXRjaApAQCAtMCwwICsxLDggQEAKK1RoZSAnc3dpdGNoIDxkcGlkPicga2V5d29yZCBwYWlyIGNhbiBiZSB1c2VkIHRvIHJlc3RyaWN0IHRoZQoraG9zdHMgZGlzcGxheWVkIGJ5IHRoZSBpZGVudGlmaWVkIDxkcGlkPi4gIFRoZSBob3N0cyBkaXNwbGF5ZWQKK3dpbGwgYWxsIGhhdmUgYXR0YWNoZW1lbnQgcG9pbnRzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVxdWVzdGVkCis8ZHBpZD4uCisKK0lmIGNvbXBsZXRpb24gaXMgcmVxdWVzdGVkIGFmdGVyIHRoZSAnc3dpdGNoJyBrZXl3b3JkLCB0aGUKK2xpc3Qgb2Ygc3dpdGNoZXMgZGlzcGxheWVkIGFyZSB0aGUgc3dpdGNoZXMgYXNzb2NpYXRlZCB3aXRoCit0aGUgYWN0aXZlIGF0dGFjaG1lbnQgcG9pbnRzIG9mIHRoZSBrbm93biBob3N0cy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ludGVybmFsIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvaW50ZXJuYWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTY5ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ludGVybmFsCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9pbnRyb2R1Y3Rpb24gYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9pbnRyb2R1Y3Rpb24KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzNhNGMyYQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL2ludHJvZHVjdGlvbgpAQCAtMCwwICsxLDk0IEBACitoMS4gQ0xJIGNvbmNlcHRzCitoMi4gQWNjZXNzIGFuZCBtb2RlcworVGhlIENMSSBjYW4gYmUgYWNjZXNzZWQgdGhyb3VnaCB0aGUgY29uc29sZSB3aW5kb3cgb2YgdGhlIHZpcnR1YWwgbWFjaGluZSBvciBieSB1c2luZyBzc2ggdG8gY29ubmVjdCB0byB0aGUgdmlydHVhbCBtYWNoaW5lLiBMb2dnaW5nIGluIGFzIHRoZSBhZG1pbiB1c2VyIGdpdmVzIGFjY2VzcyB0byB0aGUgQ0xJLgorCitUaGUgYWRtaW4gdXNlciB3aWxsIGJlIGxvZ2dlZCBpbnRvIHRoZSBDTEkgaW4gbG9naW4gbW9kZS4gVGhlIHByb21wdCB3aWxsIGhhdmUgYSA+IHRvIGluZGljYXRlIHRoaXMgbW9kZS4KKworRW50ZXIgZW5hYmxlIG1vZGUgYnkgdHlwaW5nIHRoZSBlbmFibGUgY29tbWFuZC4gVGhlIHByb21wdCB3aWxsIGhhdmUgYSAjIHRvIGluZGljYXRlIHRoaXMgbW9kZS4KKworRW50ZXIgY29uZmlnIG1vZGUgYnkgdHlwaW5nIHRoZSBjb25maWd1cmUgY29tbWFuZC4gVGhlIHByb21wdCB3aWxsIGhhdmUgYSAoY29uZmlnKSMgdG8gaW5kaWNhdGUgdGhpcyBtb2RlLgorCitUaGVyZSBhcmUgYSBudW1iZXIgb2YgY29uZmlnIHN1Ym1vZGVzIHdoaWNoIHdpbGwgYmUgaW5kaWNhdGVkIGluIHRoZSBwcm9tcHQgYXMgKGNvbmZpZy08c3VibW9kZT4pIywgYW5kIGVhY2ggc3VibW9kZSBhbGxvd3MgY29uZmlndXJhdGlvbiBvZiBhIHNwZWNpZmljIHR5cGUgb2Ygb2JqZWN0IGluIHRoZSBkYXRhYmFzZS4KKworVHlwZSBleGl0IHRvIHJldHVybiB0byB0aGUgcHJldmlvdXMgbW9kZSwgb3IgdHlwZSBlbmQgdG8gZXhpdCBhbGwgY29uZmlnIG1vZGVzIGFuZCByZXR1cm4gdG8gZW5hYmxlIG1vZGUuCisKK2gyLiBOYXZpZ2F0aW9uIGFuZCBoZWxwCitUaGVyZSBhcmUgYSBudW1iZXIgb2Ygd2F5cyB1c2VycyBjYW4gbmF2aWdhdGUgdGhlIENMSSBhbmQgcmVjZWl2ZSBoZWxwIGF0IGFueSB0aW1lLgorCitGb3IgbmF2aWdhdGlvbiwgdGhlIENMSSBpbXBsZW1lbnRzIGEgTGludXgvc2hlbGwtc3R5bGUgbmF2aWdhdGlvbiAtIGZvciBleGFtcGxlOgorCisqIEN0cmwtQiAtIGJhY2sgb25lIGNoYXJhY3RlcgorKiBDdHJsLUYgLSBmb3J3YXJkIG9uZSBjaGFyYWN0ZXIKKyogQ3RybC1BIC0gbW92ZSB0byB0aGUgc3RhcnQgb2YgdGhlIGxpbmUKKyogQ3RybC1FIC0gbW92ZSB0byB0aGUgZW5kIG9mIHRoZSBsaW5lCisqIEN0cmwtUCAtIGRpc3BsYXkgdGhlIHByZXZpb3VzIGNvbW1hbmQgLSBjYW4gYmUgcmVwZWF0ZWQgdG8gZ28gdGhyb3VnaCBoaXN0b3J5CisqIEN0cmwtUiAtIHNlYXJjaCBmb3IgdGV4dCBhbW9uZyBwcmV2aW91cyBjb21tYW5kcworUmVmZXIgdG8gaHR0cDovL3Rpc3d3dy5jYXNlLmVkdS9waHAvY2hldC9yZWFkbGluZS9yZWFkbGluZS5odG1sIGZvciBtb3JlIGluZm9ybWF0aW9uIG9uIGFsbCBrZXlib2FyZCBzaG9ydGN1dHMgYW5kIGZhY2lsaXRpZXMuCisKK0hlbHAgaXMgYWxzbyBhY2Nlc3NpYmxlIGJ5IHR5cGluZyB0aGUgY29tbWFuZCBoZWxwLiBUaGUgb3V0cHV0IHdpbGwgdmFyeSBiYXNlZCBvbiB0aGUgc3BlY2lmaWMgbW9kZSB0aGUgdXNlciBpcyBpbi4KKworQ29tbWFuZCBjb21wbGV0aW9uIGF0IGFueSBwb2ludCBjYW4gYmUgcHJlc3NpbmcgdGFiIG9uY2Ugb3IgdHdpY2UuIFByZXNzaW5nIHRhYiBvbmNlIHdpbGwgY29tcGxldGUgdGhlIHZhbHVlIGlmIHBvc3NpYmxlLCBhbmQgcHJlc3NpbmcgdGFiIHR3aWNlIHdpbGwgc2hvdyBhbGwgcG9zc2libGUgY29tcGxldGlvbnMuIFR5cGUgdGhlID8gY2hhcmFjdGVyIHRvIHNob3cgY29tcGxldGlvbnMgYXQgYW55IHRpbWUuCisKK1RoZSBDTEkgd2lsbCBhY2NlcHQgc2hvcnRlbmVkIHZlcnNpb25zIG9mIGNvbW1hbmRzIGFuZCBvcHRpb25zIHNvIGxvbmcgYXMgdGhlcmUgaXMgbm8gYW1iaWd1aXR5IGluIHRoZSBjb21tYW5kcy4gRm9yIGV4YW1wbGUsIHNoIHJ1biB3aWxsIGJlIGludGVycHJldGVkIGFzIHNob3cgcnVubmluZy1jb25maWcuCisKK0NMSSBjb252ZW5pZW5jZXM6IHBpcGVzLCB3YXRjaGluZyBjb21tYW5kcywgYW5kIG90aGVyIHRyaWNrcworVGhlIG91dHB1dCBvZiBhbnkgQ0xJIGNvbW1hbmQgY2FuIGJlIHBpcGVkIHRvIGNvbW1vbiBVbml4IHNoZWxsIHV0aWxpdGllcyBzdWNoIGFzIGdyZXAsIGF3aywgd2MsIHRhaWwsIG1vcmUsIG9yIGxlc3MuIFRoaXMgY2FuIG1ha2Ugc2VhcmNoaW5nIGZvciBkYXRhIG9yIGJyb3dzaW5nIHRocm91Z2ggb3V0cHV0IHNpZ25pZmljYW50bHkgZWFzaWVyLiBGb3IgZXhhbXBsZSwgdG8gZmluZCBhbGwgdGhlIHBvcnRzIG9mIGEgZ2l2ZW4gc3dpdGNoLCB0eXBlOgore25vZm9ybWF0fQorMTAuMC4yLjE1PiBzaG93IHBvcnQgfCBncmVwIDoyNAorMDA6MGE6MDA6MjQ6YTg6YzQ6Njk6MDAgNTIgICAgMjggICAgMDA6MjQ6YTg6YzQ6Njk6Y2MKKzAwOjBhOjAwOjI0OmE4OmM0OjY5OjAwIDU0ICAgIDMwICAgIDAwOjI0OmE4OmM0OjY5OmNhCiswMDowYTowMDoyNDphODpjNDo2OTowMCA1NiAgICAzMiAgICAwMDoyNDphODpjNDo2OTpjOAorMDA6MGE6MDA6MjQ6YTg6YzQ6Njk6MDAgNTcgICAgMzMgICAgMDA6MjQ6YTg6YzQ6Njk6YzcKKzAwOjBhOjAwOjI0OmE4OmM0OjY5OjAwIDU4ICAgIDM0ICAgIDAwOjI0OmE4OmM0OjY5OmM2CisxMC4wLjIuMTU+Cit7bm9mb3JtYXR9CitUaGUgQ0xJIHByb3ZpZGVzIGJlZ2luLCBpbmNsdWRlLCBhbmQgZXhjbHVkZSBhcyBwaXBlIG9wdGlvbnMgdGhhdCBtYXkgYmUgZmFtaWxpYXIgdG8gYWRtaW5pc3RyYXRvcnMgb2YgZXhpc3RpbmcgbmV0d29yayBkZXZpY2VzLiBiZWdpbiBpcyB1c2VmdWwgZm9yIHN0YXJ0aW5nIHRvIHZpZXcgbGFyZ2Ugb3V0cHV0IGF0IGEgcGFydGljdWxhciBwb2ludC4gRm9yIGV4YW1wbGUsIHRvIHNlZSBqdXN0IHRoZSBsc29mIG91dHB1dCBvZiBzaG93IHRlY2gtc3VwcG9ydCwgdHlwZToKK3tub2Zvcm1hdH0KKzEwLjAuMi4xNT4gc2hvdyB0ZWNoLXN1cHBvcnQgfCBiZWdpbiBsc29mIHxtb3JlCitFeGVjdXRpbmcgb3MgY29tbWFuZDogc3VkbyBsc29mCitDT01NQU5EICAgIFBJRCAgICAgICBVU0VSICAgRkQgICAgICBUWVBFICAgICAgICAgICAgIERFVklDRSBTSVpFL09GRiAgICAgICBOT0RFIE5BTUUKK2luaXQgICAgICAgICAxICAgICAgIHJvb3QgIGN3ZCAgICAgICBESVIgICAgICAgICAgICAgICA4LDE2ICAgICA0MDk2ICAgICAgICAgIDIgLworaW5pdCAgICAgICAgIDEgICAgICAgcm9vdCAgcnRkICAgICAgIERJUiAgICAgICAgICAgICAgIDgsMTYgICAgIDQwOTYgICAgICAgICAgMiAvCitpbml0ICAgICAgICAgMSAgICAgICByb290ICB0eHQgICAgICAgUkVHICAgICAgICAgICAgICAgOCwxNiAgIDEyNTY0MCAgICAgICA0MDgxIC9zYmluL2luaXQKK2luaXQgICAgICAgICAxICAgICAgIHJvb3QgIG1lbSAgICAgICBSRUcgICAgICAgICAgICAgICA4LDE2ICAgIDUxNzEyICAgICAgMTk3MzggL2xpYi9saWJuc3NfZmlsZXMtMi4xMi4xLnNvCitpbml0ICAgICAgICAgMSAgICAgICByb290ICBtZW0gICAgICAgUkVHICAgICAgICAgICAgICAgOCwxNiAgICA0MzU1MiAgICAgIDI2Njc5IC9saWIvbGlibnNzX25pcy0yLjEyLjEuc28KK2luaXQgICAgICAgICAxICAgICAgIHJvb3QgIG1lbSAgICAgICBSRUcgICAgICAgICAgICAgICA4LDE2ICAgIDk3MjU2ICAgICAgMTk1NzkgL2xpYi9saWJuc2wtMi4xMi4xLnNvCisuLi4KK3tub2Zvcm1hdH0KK1RoZSBDTEkgYWxzbyBhbGxvd3MgdXNlcnMgdG8gcmVwZWF0ZWRseSBpbnZva2UgYSBjb21tYW5kIGJ5IHByZXBlbmRpbmcgdGhlIGNvbW1hbmQgd2F0Y2guIEZvciBleGFtcGxlLCB3YXRjaCBzaG93IHN3aXRjaCA8ZHBpZD4gZmxvdyB3aWxsIGFsbG93IHRoZSB1c2VyIHRvIG1vbml0b3IgdGhlIGZsb3dzIG9uIGEgc3BlY2lmaWMgc3dpdGNoLiBUaGlzIG1heSBiZSBmYW1pbGlhciB0byBVbml4IHVzZXJzIHdobyB1c2UgdG9wIG9yIHRoZSBjb3JyZXNwb25kaW5nIHdhdGNoIGNvbW1hbmQgaW4gVW5peC4KKworTXVsdGlwbGUgQ0xJIGNvbW1hbmRzIGNhbiBiZSBlbnRlcmVkIGludG8gdGhlIENMSSBvbiBhIHNpbmdsZSBsaW5lLCBzZXBhcmF0ZWQgYnkgYSBzZW1pLWNvbG9uLiBGb3IgZXhhbXBsZSwgdG8gZ2V0IGFsbCB0aGUgd2F5IGludG8gYSBjb25maWd1cmluZyBhIGZsb3cgZW50cnkgb24gYSBzcGVjaWZpYyBzd2l0Y2gsIHR5cGU6Cit7bm9mb3JtYXR9CisxMC4wLjIuMTU+IGVuYWJsZTsgY29uZjsgc3dpdGNoIDAwOjBhOjAwOjI0OmE4OmM0OjY5OjAwOyBmbG93LWVudHJ5IGZvbworMTAuMC4yLjE1KGNvbmZpZy1mbG93LWVudHJ5KSMKK3tub2Zvcm1hdH0KK0ZpbmFsbHksIHRoZSBDTEkgYWxsb3dzIHJlZGlyZWN0aW5nIHRoZSBvdXRwdXQgb2YgYSBjb21tYW5kIHRvIGEgbG9jYWwgZmlsZSBvciB0byB0aGUgVVJMIG9mIGFuIEhUVFAgc2VydmVyIG9yIGFuIEZUUCBzZXJ2ZXIuIFRoZSBsb2NhbCBmaWxlIGlzIHN0b3JlZCBpbiB0aGUgY29udHJvbGxlciBkYXRhYmFzZSAoYXMgZ2VuZXJhbCBhY2Nlc3MgdG8gdGhlIGxvY2FsIGZpbGVzeXN0ZW0gaXMgbm90IGdpdmVuKS4gVGhpcyBpcyBjb252ZW5pZW50IGZvciBzdG9yaW5nIGF3YXkgc2hvdyBvdXRwdXQgb3IgdmVyc2lvbnMgb2YgY29uZmlndXJhdGlvbnMuIEZvciBleGFtcGxlLCB0byBzdG9yZSB0aGUgb3V0cHV0IG9mIHNob3cgaG9zdCwgdHlwZToKK3tub2Zvcm1hdH0KKzEwLjAuMi4xNSMgc2hvdyBob3N0ID4gY29uZmlnOi8vaG9zdG91dHB1dAordXNlciBkYXRhIGNyZWF0ZWQKKzEwLjAuMi4xNSMgc2hvdyBjb25maWcKK05hbWUgICAgICAgTGVuZ3RoIFZlcnNpb24gVGltZXN0YW1wCistLS0tLS0tLS0tfC0tLS0tLXwtLS0tLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0KK2hvc3RvdXRwdXQgMTc3NSAgIDEgICAgICAgMjAxMC0xMi0xNS4wODoyOTozMQorCisxMC4wLjIuMTUjIHNob3cgY29uZmlnIGhvc3RvdXRwdXQgfCBoZWFkIC0xMAorTUFDIEFkZHJlc3MgICAgICAgTmFtZSBTd2l0Y2ggSUQgICAgICAgICAgICAgICBJbmdyZXNzIFBvcnQgSVAgQWRkcmVzcyAgICAgVmVuZG9yCistLS0tLS0tLS0tLS0tLS0tLXwtLS0tfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tfC0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLXwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiswMDowYzoyOTo2YTo4Mzo4YyAgICAgIDAwOjBhOjAwOjI0OmE4OmM0OjY5OjAwIDM4ICAgICAgICAgICAxOTIuMTY4LjEwLjIwNyBWTXdhcmUsIEluYy4KKzAwOjIxOmY3OmRlOmU5OjAwICAgICAgMDA6MGM6MDA6MjE6Zjc6ZGU6ZTk6MDAgbG9jYWwoNjU1MzQpIDE5Mi4xNjguMTIuMTAyIFByb0N1cnZlIE5ldHdvcmtpbmcgYnkgSFAKKzAwOjI1OjkwOjA4Ojk0OmQ1ICAgICAgMDA6MGE6MDA6MjE6Zjc6ZGU6ZTk6MDAgMiAgICAgICAgICAgIDEyOC44LjEwOS4xNDUgIFN1cGVyIE1pY3JvIENvbXB1dGVyLCBJbmMuCiswMDozMDo0ODpmOTpjYzpmNyAgICAgIDAwOjAwOjAwOjMwOjQ4OmY5OmNjOmY3IGxvY2FsKDY1NTM0KSAxOTIuMTY4LjIuOTkgICBTdXBlcm1pY3JvIENvbXB1dGVyLCBJbmMuCiswMDozMDo0ODpmOTpjZDowYiAgICAgIDAwOjAwOjAwOjMwOjQ4OmY5OmNkOjBiIGxvY2FsKDY1NTM0KSAwLjAuMC4wICAgICAgICBTdXBlcm1pY3JvIENvbXB1dGVyLCBJbmMuCiswMDozMDo0ODpmOTpjZDowZCAgICAgIDAwOjAwOjAwOjAwOjAwOjAwOjAwOjAxIDE3ICAgICAgICAgICAxOTIuMTY4LjExLjIgICBTdXBlcm1pY3JvIENvbXB1dGVyLCBJbmMuCiswMDo1MDo4ZDo2NTpiZTo0YiAgICAgIDAwOjAwOjAwOjAwOjAwOjAwOjAwOjAxIDIyICAgICAgICAgICAxOTIuMTY4LjExLjEgICBBQklUIENPTVBVVEVSIENPUlBPUkFUSU9OCisxMDowMDowMDo2NzphZDowNyAgICAgIDAwOjAwOjAwOjMwOjQ4OmY5OmNjOmY3IDQgICAgICAgICAgICAxOTIuMTY4LjEyLjEzMiB1bmtub3duCit7bm9mb3JtYXR9CitoMi4gQ29udmVudGlvbnMKK1RleHQgaW4gY291cmllciBmb250IGluZGljYXRlcyBlaXRoZXIgdGV4dCB0aGF0IHNob3VsZCBiZSB0eXBlZCBpbiBieSB0aGUgdXNlciBvciBvdXRwdXQgZnJvbSBhIGNvbW1hbmQuCisKK1RleHQgZW5jbG9zZWQgaW4gcGFyZW50aGVzZXMgKCApIGluZGljYXRlcyBhIHNldCBvZiByZXF1aXJlZCBhcmd1bWVudHMuIFRoZSBvcHRpb25zIGFyZSBzZXBhcmF0ZWQgYnkgYSB2ZXJ0aWNhbCBiYXIgfC4KKworVGV4dCBlbmNsb3NlZCBpbiBzcXVhcmUgYnJhY2tldHMgWyBdIGluZGljYXRlcyBvcHRpb25hbCBhcmd1bWVudHMuIFRoZSBvcHRpb25zIGFyZSBzZXBhcmF0ZWQgYnkgYSB2ZXJ0aWNhbCBiYXIgfC4KKworVGV4dCBlbmNsb3NlZCBpbiBhbmdsZSBicmFja2V0cyA8ID4gaW5kaWNhdGVzIGEgdmFsdWUgdGhhdCBzaG91bGQgYmUgZW50ZXJlZC9zdWJzdGl0dXRlZCBieSB0aGUgdXNlci4KKwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcGluZy9waW5nIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcGluZy9waW5nCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM2ODA4NWMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9waW5nL3BpbmcKQEAgLTAsMCArMSwzIEBACitUaGUgcGluZyBjb21tYW5kIHNlbmRzIElDTVAgZWNobyByZXF1ZXN0cyAKK3ZhbGlkYXRlcyBiYXNpYyBuZXR3b3JrIGNvbm5lY3Rpdml0eSBiZXR3ZWVuIHRoZQorQ0xJIGFuZCB0aGUgcmVxdWVzdGVkIHRhcmdldC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3BpbmcvcGluZy1jb3VudCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3BpbmcvcGluZy1jb3VudApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yOGM1NWYwCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcGluZy9waW5nLWNvdW50CkBAIC0wLDAgKzEsMiBAQAorVGhpcyBpbnRlZ2VyIGZpZWxkIGlkZW50aWZpZXMgdGhlIG51bWJlciBvZiBwaW5nIHJlcXVlc3RzCitzZW50IHRvIHRoZSB0YXJnZXQgYmVmb3JlIGV4aXRpbmcuICBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAnNScuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9waW5nL3BpbmctZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3BpbmcvcGluZy1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhkNTJiNmUKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9waW5nL3BpbmctZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK3BpbmcgMS4yLjMuNAorICBQaW5nIGEgc3BlY2lmaWMgaG9zdCB3aXRoIGEgZGVmYXVsdCBwYWNrYWdlIGNvdW50ICg1KQorCitwaW5nIDEwIDEuMi4zLjQKKyAgUGluZyBhIHNwZWNpZmljIGhvc3Qgd2l0aCBhIGZpeGVkIG51bWJlciBvZiBwYWNrZXRzCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9yZXNlcnZlZC9hbGwgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9yZXNlcnZlZC9hbGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzMxNzIzYQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Jlc2VydmVkL2FsbApAQCAtMCwwICsxLDUgQEAKK1RoZSAnYWxsJyB0b2tlbiBpcyB1c2VkIGluIHBsYWNlIG9mIGFuIGlkZW50aWZpZXIncwordmFsdWUgdG8gcmVxdWVzdCBldmVyeSBpdGVtIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29tbWFuZC4KK1RoZSAnYWxsJyB0b2tlbiBpcyByZXNlcnZlZCwgaWRlbnRpZmllcnMgbWF5IG5vdAordXNlIHRoZSAnYWxsJyB0b2tlbiBhcyB0aGVpciBuYW1lLCBubyBzd2l0Y2gtYWxpYXMgb3IKK2hvc3QtYWxpYXMgbWF5IGJlIGNhbGxlZCAnYWxsJwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3J1bm5pbmctY29uZmlnL3Nob3cKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZmMwZmEzNQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3J1bm5pbmctY29uZmlnL3Nob3cKQEAgLTAsMCArMSwxNSBAQAorVGhlICdzaG93IHJ1bm5pbmctY29uZmlnJyBjb21tYW5kIGRpc3BsYXlzIHRoZSBjb21wbGV0ZQorY29uZmlndXJhdGlvbiBmb3IgdGhlIGNvbnRyb2xsZXIuICAgV2hlbiB0aGUgY29udHJvbGxlcgoraXMgb3BlcmF0aW5nIHdpdGggSEEgZW5hYmxlZCwgJ3Nob3cgcnVubmluZy1jb25maWcnIGRpc3BsYXlzCit0aGUgY29uZmlndXJhaW9uIG9mIHRoZSBIQSBjbHVzdGVyLgorCitUaGUgcnVubmluZy1jb25maWcgaXMgaW50ZW5kZWQgdG8gc2hvdyB0aGUgY29uZmlndXJhdGlvbgorbmVjZXNzYXJ5IHRvIHVwZGF0ZSBhIGRlZmF1bHQgY29uZmlndXJhdGlvbiB0byB0aGUgY3VycmVudAorY29uZmlndXJhdGlvbi4gIFRoZSBydW5uaW5nLWNvbmZpZyB0aGVuIGRpc3BsYXlzIGRldmlhdGlvbnMKK2Zyb20gdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbjsgY29uZmlndXJhdGlvbiB3aGljZSBhcmlzZXMKK2Zyb20gdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiB3aWxsIG5vdCBiZSBzaG93biBpbiB0aGUKK3J1bm5pbmctY29uZmlnCisKK1doaWxlIG9wZXJhdGluZyB3aXRoIEhBIGVuYWJsZWQsIGEgcmVwbGF5IG9mIHRoZSBydW5uaW5nCitjb25maWcgd2lsbCBub3QgY2F1c2UgYSBzbGF2ZSB0byBiZSAocmUpY29uZmlndXJlZCBpbnRvCitIQS1lbmFibGVkIGlmIGl0IGlzIG5vdCBhbHJlYWR5IG9wZXJhdGluZyBhcyBIQS1lbmFibGVkLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy1hZGRyZXNzLXNwYWNlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy1hZGRyZXNzLXNwYWNlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIxN2MyMGYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LWFkZHJlc3Mtc3BhY2UKQEAgLTAsMCArMSwyIEBACitUaGUgJ2FkZHJlc3Mtc3BhY2UnIGtleXdvcmQgZmlsdGVycyB0aGUgcnVubmluZy1jb25maWcgb3V0cHV0Cit0byBvbmx5IGRpc3BsYXkgdGhlIGFkZHJlc3Mtc3BhY2UgcmVsYXRlZCBjb25maWd1cmF0aW9uLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy1jb250cm9sbGVyLW5vZGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LWNvbnRyb2xsZXItbm9kZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMzEyZmZhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy1jb250cm9sbGVyLW5vZGUKQEAgLTAsMCArMSwzIEBACitUaGUgJ2NvbnRyb2xsZXItbm9kZScga2V5d29yZCBmaWx0ZXIgdGhlIHJ1bm5pbmcgY29uZmlnCit0byBvbmx5IGRpc3BsYXkgY29udHJvbGxlci1ub2RlIGNvbmZpZ3VyYXRpb24uICBUaGlzIGluY2x1ZGVzCitkZXNjcmlwdGlvbnMgZm9yIHRoZSBjb250cm9sbGVyIG5vZGUgaW50ZXJmYWNlcywgYW5kIGZpcmV3YWxsIHJ1bGVzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyYjVlMTMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LWV4YW1wbGUKQEAgLTAsMCArMSwxMCBAQAorc2hvdyBydW5uaW5nLWNvbmZpZworICAgIFNob3cgdGhlIGNvbXBsZXRlIHJ1bm5pbmctY29uZmlnCisKK3Nob3cgcnVubmluZy1jb25maWcgc3d0aWNoIDAwOjAwOjAwOjAwOjAwOjczOjI4OjAzIAorICAgIFNob3cgdGhlIHJ1bm5pbmcgY29maWcgZGV0YWlscyBmb3IgYSBwYXJ0aWN1bGFyIHN3aXRjaAorCisgICAgIQorICAgIHN3aXRjaCAwMDowMDowMDowMDowMDo3MzoyODowMworICAgICAgc3dpdGNoLWFsaWFzIG50Z3ItNzMyOC0zCisKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3J1bm5pbmctY29uZmlnL3Nob3ctZmVhdHVyZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3J1bm5pbmctY29uZmlnL3Nob3ctZmVhdHVyZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMjRmYTM1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy1mZWF0dXJlCkBAIC0wLDAgKzEsMyBAQAorVGhlICdmZWF0dXJlJyBrZXl3b3JkIGZpbHRlcnMgdGhlIHJ1bm5pbmctY29uZmlnIG91dHB1dAordG8gZGlzcGxheSB0aGUgZmVhdHVyZXMgZW5hYmxlZCBvciBkaXNhYmxlZCB3aGljaCBkaWZmZXIKK2Zyb20gdGhlIGRlZmF1bHQgZmVhdHVyZXMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LWhvc3QgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LWhvc3QKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTYyNTA0OAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3J1bm5pbmctY29uZmlnL3Nob3ctaG9zdApAQCAtMCwwICsxLDMgQEAKK1RoZSAnaG9zdCcga2V5d29yZCBmaWx0ZXJzIHRoZSBydW5uaW5nLWNvbmZpZyBvdXRwdXQgdG8gb25seSBkaXNwbGF5Cit0aGUgaG9zdCByZWxhdGVkIGNvbmZpZ3VyYXRpb24uICBUaGlzIGluY2x1ZGVzIGhvc3QgYWxpYXNlcywgYW5kCithbnkgaG9zdCBzZWN1cml0eSBhc3NvY2lhdGlvbnMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LW5ldHdvcmstc2VydmljZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3J1bm5pbmctY29uZmlnL3Nob3ctbmV0d29yay1zZXJ2aWNlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY4M2FlYjYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LW5ldHdvcmstc2VydmljZQpAQCAtMCwwICsxLDIgQEAKK1RoZSAnbmV0d29yay1zZXJ2aWNlJyBrZXl3b3JkIGZpbHRlciB0aGUgcnVubmluZy1jb25maWcgb3V0cHV0Cit0byBvbmx5IGRpc3BsYXkgdGhlIG5ldHdvcmstc2VydmljZSByZWxhdGVkIGNvbmZpZ3VyYXRpb24uCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LXNubXAgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LXNubXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWE5MGZhZQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3J1bm5pbmctY29uZmlnL3Nob3ctc25tcApAQCAtMCwwICsxLDIgQEAKK1RoZSAnc25tcCcga2V5d29yZCBmaWx0ZXJzIHRoZSBydW5uaW5nLWNvbmZpZyBvdXRwdXQgdG8gb25seQorZGlzcGxheSB0aGUgc25tcCBjb25maWd1cmF0aW9uLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy1zd2l0Y2ggYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LXN3aXRjaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYjY2YzEyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy1zd2l0Y2gKQEAgLTAsMCArMSwyIEBACitUaGUgJ3N3aXRjaCcga2V5d29yZCBmaWx0ZXJzIHRoZSBydW5uaW5nLWNvbmZpZyBvdXRwdXQgdG8KK29ubHkgZGlzcGxheSBzd2l0Y2ggcmVsYXRlZCBjb25maWd1cmF0aW9uLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy10YWcgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LXRhZwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hY2NmNmFmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvcnVubmluZy1jb25maWcvc2hvdy10YWcKQEAgLTAsMCArMSw0IEBACitUaGUgJ3RhZycga2V5d29yZCBmaWx0ZXJzIHRoZSBydW5uaW5nLWNvbmZpZyB0byBvbmx5CitkaXNwbGF5IHRoZSB0YWcgc3VibW9kZSByZWxhdGVkIGNvbmZpZ3VyYXRpb24uICBVc2VzCitvZiB0aGUgdGFnIHdpdGhpbiB2bnMsIGFkZHJlc3Mtc3BhY2UsIG9yIG90aGVyIHN1Ym1vZGVzCitpcyBub3QgaW5jbHVkZWQuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LXZjZW50ZXIgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LXZjZW50ZXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDQ5NGY2YwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3J1bm5pbmctY29uZmlnL3Nob3ctdmNlbnRlcgpAQCAtMCwwICsxLDMgQEAKK1RoZSAndmNlbnRlcicga2V5d29yZCBmaWx0ZXJzIHRoZSBydW5uaWctY29uZmlnIG91dHB1dCB0bworb25seSB2Y2VudGVyIHJlbGF0ZWQgY29uZmlndXJhdGlvbiwgaW5jbHVkaW5nIHRoZSBkdnMKK2FuZCBkdnMtcG9ydC1ncm91cHMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LXZucyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3J1bm5pbmctY29uZmlnL3Nob3ctdm5zCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI3N2JhZWEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9ydW5uaW5nLWNvbmZpZy9zaG93LXZucwpAQCAtMCwwICsxLDIgQEAKK1RoZSAndm5zJyBrZXl3b3JkIGZpbHRlcnMgdGhlIHJ1bm5pbmctY29uZmlnIG91dHB1dCB0bworb25seSBkaXNwbGF5IHRoZSB2bnMgY29uZmlndXJhdGlvbi4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3NldC9zZXQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zZXQvc2V0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmE5ZTlhMDIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zZXQvc2V0CkBAIC0wLDAgKzEgQEAKK1NldCB0aGUgdGVybWluYWwgaGVpZ2h0IGZvciBwYWdpbmcgQ2xpIGNvbW1hbmQgb3V0cHV0LgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3NldC9zZXQtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3NldC9zZXQtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MjkwOTRkCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc2V0L3NldC1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAorc2V0IGxlbmd0aCA1MAorICBTZXQgdGhlIHRlcm1pbmFsIGxlbmd0aCB0byA1MCBsaW5lcy4KKworc2V0IGxlbmd0aCB0ZXJtCisgIFNldCB0aGUgdGVybWluYWwgbGVuZ3RoIHRvIHRoZSBuYXR1cmFsIHNjcmVlbiBoZWlnaHQuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zaG93LWFycCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Nob3ctYXJwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFmZjFlMjQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zaG93LWFycApAQCAtMCwwICsxIEBACitUaGUgJ3Nob3cgYXJwJyBjb21tYW5kIHNob3dzIHRoZSBjb25maWd1cmVkIHN0YXRpYyBhcnAgdGFibGUuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc2hvdy1hcnAtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Nob3ctYXJwLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2Q0YmZkYwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Nob3ctYXJwLWV4YW1wbGUKQEAgLTAsMCArMSw3IEBACitsb2NhbGhvc3QjIHNob3cgYXJwCisKKyMgSXAgICAgICAgTWFjCisKKy18LS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0KKworMSAxMC4wLjAuMSAxMToyMjozMzo0NDo1NTo2NgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc2hvdy1jbG9jayBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Nob3ctY2xvY2sKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjE3NTcyMgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Nob3ctY2xvY2sKQEAgLTAsMCArMSBAQAorVGhlICdzaG93IGNsb2NrJyBjb21tYW5kIHNob3dzIHRoZSBjbG9jay4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Nob3ctZXZlbnQtaGlzdG9yeS1jb3VudCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Nob3ctZXZlbnQtaGlzdG9yeS1jb3VudApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNDIyYjZlCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc2hvdy1ldmVudC1oaXN0b3J5LWNvdW50CkBAIC0wLDAgKzEgQEAKK0xpbWl0IHRoZSBvdXRwdXQgdG8gaW5kaWNhdGVkIG51bWJlciBvZiBsaW5lcwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc25tcC9zaG93IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc25tcC9zaG93Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM3YzYyNGEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zbm1wL3Nob3cKQEAgLTAsMCArMSw1IEBACitEaXNwbGF5IG9wZXJhdGlvbmFsIHBhcmFtZXRlcnMgb2YgdGhpcyBkZXZpY2UncyBTTk1QIHN1cHBvcnQuCisKK1Nob3cgdGhlIGNvbmZpZ3VyYWJsZSBwYXJhbWV0ZXJzIGZvciB0aGUgU05NUCBNSUJzLAorYW5kIHNob3cgdGhlIHN0YXR1cyBvZiB0aGUgbmV0d29yayBmaXJld2FsbAorKHdoaWNoIG1pZ2h0IGJlIGJsb2NraW5nIHNvbWUgU05NUCByZXF1ZXN0cykKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3NubXAvc2hvdy1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc25tcC9zaG93LWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTJkNTQ4MwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3NubXAvc2hvdy1leGFtcGxlCkBAIC0wLDAgKzEsMiBAQAorc2hvdyBzbm1wCisgIERpc3BsYXkgU05NUCBvcGVyYXRpb25hbCBzdGF0ZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3NubXAvc25tcC1zZXJ2ZXIgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zbm1wL3NubXAtc2VydmVyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjA3MDY2ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zbm1wL3NubXAtc2VydmVyCkBAIC0wLDAgKzEsNCBAQAorQ29uZmlndXJlIHRoaXMgZGV2aWNlIHRvIHJlc3BvbmQgdG8gU05NUCBxdWVyaWVzLgorCitDb25maWd1cmUgU05NUCBwcm90b2NvbCBwYXJhbWV0ZXJzLCBhbmQgY29uZmlndXJlIGhvdworcmVzcG9uc2VzIHRvIFNOTVAgcXVlcmllcyBhcmUgY29tcG9zZWQuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zbm1wL3NubXAtc2VydmVyLWNvbW11bml0eSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3NubXAvc25tcC1zZXJ2ZXItY29tbXVuaXR5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI4NzFkMmMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zbm1wL3NubXAtc2VydmVyLWNvbW11bml0eQpAQCAtMCwwICsxLDQgQEAKK0NvbmZpZ3VyZSB0aGUgY29tbXVuaXR5IHN0cmluZyBmb3Igc2ltcGxlIHJlYWQtb25seSBTTk1QIGNsaWVudCBhdXRoZW50aWNhdGlvbi4KKworUmVzZXQgdGhlIGNvbW11bml0eSBzdHJpbmcgKGRlZmF1bHQgZW1wdHkpIHdpdGggdGhlICdubycgdmVyc2lvbiBvZiB0aGlzIGNvbW1hbmQuCisKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3NubXAvc25tcC1zZXJ2ZXItY29udGFjdCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3NubXAvc25tcC1zZXJ2ZXItY29udGFjdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mYTQ1ZDllCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc25tcC9zbm1wLXNlcnZlci1jb250YWN0CkBAIC0wLDAgKzEsMyBAQAorQ29uZmlndXJlIHRoZSBhZG1pbnN0cmF0aXZlIGNvbnRhY3QgcmVjb3JkICh0aGUgU05NUCBzeXNDb250YWN0IE1JQikgZm9yIHRoaXMgZGV2aWNlLgorCitSZXNldCB0aGUgY29udGFjdCBpbmZvcm1hdGlvbiB0byBzeXN0ZW0gZGVmYXVsdHMgd2l0aCB0aGUgJ25vJyB2ZXJzaW9uIG9mIHRoaXMgY29tbWFuZC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3NubXAvc25tcC1zZXJ2ZXItZW5hYmxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc25tcC9zbm1wLXNlcnZlci1lbmFibGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWZmOTRkMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3NubXAvc25tcC1zZXJ2ZXItZW5hYmxlCkBAIC0wLDAgKzEsMyBAQAorRW5hYmxlIHRoaXMgZGV2aWNlIGZvciByZXNwb25kaW5nIHRvIFNOTVAuCisKK1VzZSB0aGUgJ25vJyB2ZXJzaW9uIG9mIHRoaXMgY29tbWFuZCB0byBkaXNhYmxlIFNOTVAgZmVhdHVyZXMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zbm1wL3NubXAtc2VydmVyLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zbm1wL3NubXAtc2VydmVyLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTI3N2ZlNQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3NubXAvc25tcC1zZXJ2ZXItZXhhbXBsZQpAQCAtMCwwICsxLDI0IEBACitzbm1wLXNlcnZlciBlbmFibGUKKyAgRW5hYmxlIFNOTVAgc3VwcG9ydC4KKworbm8gc25tcC1zZXJ2ZXIgZW5hYmxlCisgIERpc2FibGUgU05NUCBzdXBwb3J0LgorCitzbm1wLXNlcnZlciBjb21tdW5pdHkgcm8gTVktU05NUAorICBTZXQgdGhlIGNvbW11bml0eSBzdHJpbmcgKGZvciBhdXRoZW50aWNhdGluZyB0byB0aGlzIFNOTVAgc2VydmljZSkKKyAgdG8gIk1ZLVNOTVAiCisKK25vIHNubXAtc2VydmVyIGNvbW11bml0eQorICBSZXNldCB0aGUgY29tbXVuaXR5IHN0cmluZyB0byBkZWZhdWx0ICh0aGUgZW1wdHkgc3RyaW5nKQorCitzbm1wLXNlcnZlciBsb2NhdGlvbiBzbm1wLmV4YW1wbGUuY29tCisgIFNldCB0aGUgc2VydmVyIGxvY2F0aW9uIHJlcG9ydGVkIGR1cmluZyBTTk1QIHF1ZXJpZXMuCisKK25vIHNubXAtc2VydmVyIGxvY2F0aW9uCisgIFJlc2V0IHRvIHRoZSBzeXN0ZW0gZGVmYXVsdCBzZXJ2ZXIgbG9jYXRpb24uCisKK3NubXAtc2VydmVyIGNvbnRhY3QgYWRtaW5AZXhhbXBsZS5jb20KKyAgU2V0IHRoZSBhZG1pbmlzdHJhdGl2ZSBjb250YWN0IHJlcG9ydGVkIGR1cmluZyBTTk1QIHF1ZXJpZXMuCisKK25vIHNubXAtc2VydmVyIGNvbnRhY3QKKyAgUmVzZXQgdG8gdGhlIHN5c3RlbSBkZWZhdWx0IGFkbWluaXN0cmF0aXZlIGNvbnRhY3Qgc2V0dGluZy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3NubXAvc25tcC1zZXJ2ZXItbG9jYXRpb24gYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zbm1wL3NubXAtc2VydmVyLWxvY2F0aW9uCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNhOTQyMjAKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zbm1wL3NubXAtc2VydmVyLWxvY2F0aW9uCkBAIC0wLDAgKzEsMyBAQAorQ29uZmlndXJlIHRoaXMgZGV2aWNlJ3MgbG9jYXRpb24gdmlhIHRoZSBzeXNMb2NhdGlvbiBTTk1QIE1JQi4KKworUmVzZXQgdGhlIGxvY2F0aW9uIHRvIHRoZSBzeXN0ZW0gZGVmYXVsdCB3aXRoIHRoZSAnbm8nIHZlcnNpb24gb2YgdGhpcyBjb21tYW5kLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3RhdGljLWFycCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N0YXRpYy1hcnAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWM0MWMzNQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N0YXRpYy1hcnAKQEAgLTAsMCArMSBAQAorVGhlICdhcnAnIGNvbW1hbmQgaXMgdXNlZCB0byBjcmVhdGUgc3RhdGljIGFycCA8LT4gaXAgYWRkcmVzcyBiaW5kaW5ncy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zdGF0aWMtYXJwLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zdGF0aWMtYXJwLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGQ4NWJhOQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N0YXRpYy1hcnAtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK2FycCAxMC4wLjAuMSAxMToyMjozMzo0NDo1NTo2NgorICBjcmVhdGUgYSBzdGF0aWMgYXJwIGVudHJ5CisKK25vIGFycCAxMC4wLjAuMSAxMToyMjozMzo0NDo1NTo2NgorICByZW1vdmUgYSBzdGF0aWMgYXJwIGVudHJ5ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoLWNsdXN0ZXIvc3dpdGNoLWNsdXN0ZXIgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gtY2x1c3Rlci9zd2l0Y2gtY2x1c3RlcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hY2I5ZTkyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoLWNsdXN0ZXIvc3dpdGNoLWNsdXN0ZXIKQEAgLTAsMCArMSwzIEBACitUaGUgc3dpdGNoLWNsdXN0ZXIgY29tbWFuZCBkaXNwbGF5cyB0aGUgY2x1c3RlcnMgd2hpY2gKK2hhdmUgYmVlbiBjb25zdHJ1Y3RlZCBieSB0aGUgY29udHJvbGxlciwgYmFzZWQgb24gdGhlCitkaXNjb3ZlcmVkIHRvcG9sb2d5LgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL2FsaWFzIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL2FsaWFzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYzZGM5YTMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvYWxpYXMKQEAgLTAsMCArMSBAQAorQXNzaWduIGFuIGFsaWFzIHRvIHRoaXMgc3dpdGNoCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvYWxpYXMtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9hbGlhcy1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhlZTkwMDYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvYWxpYXMtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK2FsaWFzIHN3aXRjaC0xCisgIEF0dGFjaCBhIG5hbWUgdG8gdGhpcyBzd2l0Y2gKKworbm8gYWxpYXMgc3dpdGNoLTEKKyAgUmVtb3ZlIGEgc3dpdGNoIGFsaWFzCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvY29yZS1zd2l0Y2ggYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvY29yZS1zd2l0Y2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzA0OWNmMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9jb3JlLXN3aXRjaApAQCAtMCwwICsxIEBACitUaGlzIHN3aXRjaCBpcyBhIGNvcmUgc3dpdGNoLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9jb3JlLXN3aXRjaC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL2NvcmUtc3dpdGNoLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODE0YzFiZQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9jb3JlLXN3aXRjaC1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAorY29yZS1zd2l0Y2gKKyAgQ29uZmlndXJlIHRoZSBjdXJyZW50bHktY29uZmlndXJlZCBzd2l0Y2ggYXMgYSBjb3JlIHN3aXRjaAorCitubyBjb3JlLXN3aXRjaAorICBSZW1vdmUgdGhlIGNvcmUtc3dpdGNoIHByb3BlcnR5CmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvaW50ZXJmYWNlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL2ludGVyZmFjZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MDhhZDk3Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL2ludGVyZmFjZQpAQCAtMCwwICsxIEBACitTcGVjaWZ5IGEgc3dpdGNoIGludGVyZmFjZSBieSBuYW1lLCBhbmQgZW50ZXIgaXRzIGNvbmZpZ3VyYXRpb24gc3ViLW1vZGUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvaW50ZXJmYWNlLWFsaWFzIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL2ludGVyZmFjZS1hbGlhcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mNzc0NzgxCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL2ludGVyZmFjZS1hbGlhcwpAQCAtMCwwICsxIEBACitDb25maWd1cmUgYW4gYWxpYXMgZm9yIHRoaXMgc3dpdGNoIGludGVyZmFjZS4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvaW50ZXJmYWNlLWFsaWFzLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvaW50ZXJmYWNlLWFsaWFzLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWJiY2M0MgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9pbnRlcmZhY2UtYWxpYXMtZXhhbXBsZQpAQCAtMCwwICsxLDYgQEAKK2ludGVyZmFjZS1hbGlhcyBkZWZpbnRmCisgIEFzc2lnbiBhbiBhbGlhcyB0byB0aGlzIHN3aXRjaCBpbnRlcmZhY2UKKworbm8gaW50ZXJmYWNlLWFsaWFzIGRlZmludGYKKyAgUmVtb3ZlIGFuIGFsaWFzIGZvciB0aGlzIHN3aXRjaCBpbnRlcmZhY2UKKwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL2ludGVyZmFjZS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL2ludGVyZmFjZS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQwNWFhMDYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvaW50ZXJmYWNlLWV4YW1wbGUKQEAgLTAsMCArMSw1IEBACitpbnRlcmZhY2UgRXRoZXJuZXQxCisgIENvbmZpZ3VyZSBhIHNwZWNpZmljIHBvcnQgb24gdGhpcyBzd2l0Y2gKKworbm8gaW50ZXJmYWNlIEV0aGVybmV0MQorICBEZWxldGUgYSBzd2l0Y2ggaW50ZXJmYWNlIGNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9yZWFsdGltZS1hZ2dyZWdhdGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvcmVhbHRpbWUtYWdncmVnYXRlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmIxOGFmMzMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvcmVhbHRpbWUtYWdncmVnYXRlCkBAIC0wLDAgKzEsNCBAQAorVGhlIGFnZ3JlZ2F0ZSBvcHRpb24gZGlzcGxheXMgYWdncmVnYXRlZCBmbG93IHN0YXRpc3RpY3MuCitJdCBpcyBhIHJlcXVlc3QgZm9yIHRoZSBjb250cm9sbGVyIHRvIGFjdGl2bHkKK3F1ZXJ5IHRoZSBpbmRpY2F0ZWQgc3dpdGNoIHRvIGFjcXVpcmUgYW5kIGRpc3BsYXkKK3RoZSByZXN1bHRzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3JlYWx0aW1lLWRlc2MgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvcmVhbHRpbWUtZGVzYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wZjU3ODRhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3JlYWx0aW1lLWRlc2MKQEAgLTAsMCArMSw1IEBACitUaGUgZGVzYyBvcHRpb24gaXMgYSByZXF1ZXN0IGZvciB0aGUgY29udHJvbGxlciB0bworcXVlcnkgdGhlIGluZGljYXRlZCBzd2l0Y2guICB0byBhY3F1aXJlIHRoZSBzd2l0Y2ggZGVzY3JpcHRpb24uCitUaGUgcmV0dXJuZWQgdmFsdWVzIGluY2x1ZGUgdGhlIHN3aXRjaCBtb2RlbCBhbmQgdmVyc2lvbiwKK3RoZSBzd2l0Y2ggdmVuZG9yLCBzZXJpYWwgbnVtYmVyLCBhbmQgc29mdHdhcmUgdmVyc2lvbgorY3VycmVudGx5IHJ1bm5pbmcuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvcmVhbHRpbWUtZmVhdHVyZXMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvcmVhbHRpbWUtZmVhdHVyZXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDExNWE0ZgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9yZWFsdGltZS1mZWF0dXJlcwpAQCAtMCwwICsxLDMgQEAKK1RoZSBmZWF0dXJlcyBvcHRpb24gaXMgYSByZXF1ZXN0IGZvciB0aGUgY29udHJvbGxlciB0bworcXVlcnkgdGhlIGluZGljYXRlZCBzd2l0Y2ggdG8gYWNxdWlyZSBkZXRhaWxzIGFib3V0IAordGhlIGludGVyZmFjZXMgb2YgdGhlIHN3aXRjaC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9yZWFsdGltZS1mbG93IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3JlYWx0aW1lLWZsb3cKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNmRkOTFkMwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9yZWFsdGltZS1mbG93CkBAIC0wLDAgKzEsMiBAQAorVGhlIGZsb3cgc2VsZWN0aW9uIHJlcXVlc3QgdGhlIGNvbnRyb2xsZXIgdG8gcXVlcnkKK3RoZSBzZWxlY3RlZCBzd2l0Y2ggZm9yIGFsbCB0aGUgZmxvd3MgY3VycmVudGx5IGFjdGl2ZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9yZWFsdGltZS1wb3J0IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3JlYWx0aW1lLXBvcnQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjQ0NWM1YwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9yZWFsdGltZS1wb3J0CkBAIC0wLDAgKzEsNCBAQAorVGhlIHBvcnQgb3B0aW9uIGlzIGEgcmVxdWVzdCBmb3IgdGhlIGNvbnRyb2xsZXIgdG8KK3NlbmQgdG8gdGhlIGluZGljYXRlZCBzd2l0Y2gsIHRoZSByZXBseSBpcyB0aGUgb3BlbmZsb3cKK3Byb3RvY29sIHBvcnQgcmVwbHksIHdoaWNoIGxpc3RzIGFsbCB0aGUgaW50ZXJmYWNlcworYW5kIHByb3ZpZGVzIHR4IGFuZCByeCBzdGF0aXN0aWNzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3JlYWx0aW1lLXF1ZXVlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3JlYWx0aW1lLXF1ZXVlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk1MWEzYjgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvcmVhbHRpbWUtcXVldWUKQEAgLTAsMCArMSw0IEBACitUaGUgcXVldWUgb3B0aW9uIGlzIGEgcmVxdWVzdCBmb3IgdGhlIGNvbnRyb2xsZXIgdG8KK3F1ZXJ5IHRoZSBpbmRpY2F0ZWQgc3dpdGNoICB0byBhY3F1aXJlIHRoZSBzd2l0Y2ggcXVldWUgZGV0YWlscworVGhlIHJldHVybmVkIHZhbHVlIGlzIGFuIGFzc29jaWF0aW9uIGJldHdlZW4gdGhlIGludGVyZmFjZSBuYW1lcywKK3RoZSBxdWV1ZSBudW1iZXJzLCBhbmQgc29tZSBzdGF0aXRpY3MgZm9yIGVhY2ggb2YgdGhlIHF1ZXVlcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9yZWFsdGltZS10YWJsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9yZWFsdGltZS10YWJsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iYzFmNzk3Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3JlYWx0aW1lLXRhYmxlCkBAIC0wLDAgKzEsNCBAQAorVGhlIHRhYmxlIG9wdGlvbiBpcyBhIHJlcXVlc3QgZm9yIHRoZSBjb250cm9sbGVyIHRvCitxdWVyeSB0aGUgaW5kaWNhdGVkIHN3aXRjaCwgIGZvciB0aGUgc3dpdGNoJ3MgdGFibGUKK2RldGFpbHMuICBUaGUgcmV0dXJuZWQgdmFsdWVzIHRoZSBuYW1lcyBvZiB0aGUgdGFibGVzLAordGhlIHNpemUgb2YgdGhlIHRhYmxlcywgYW5kIHNvbWUgdXNhZ2Ugc3RhdGlzdGljcwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3Nob3cgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc2hvdwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43NTBlYjI2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3Nob3cKQEAgLTAsMCArMSwyIEBACitUaGUgc2hvdyBzd2l0Y2ggY29tbWFuZHMgZGlzcGxheXMgb3BlcmF0aW9uYWwgc3RhdGUgZm9yCitzd2l0Y2hlcyBjdXJyZW50bHkgY29ubmVjdGVkIHRvIHRoZSBjb250cm9sbGVyLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3Nob3ctaW50ZXJmYWNlcyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9zaG93LWludGVyZmFjZXMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTUzNzY3MQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9zaG93LWludGVyZmFjZXMKQEAgLTAsMCArMSw0IEBACitUaGUgJ2ludGVyZmFjZXMnIGtleXdvcmQgbGlzdHMgdGhlIGludGVyZmFjZXMgb24gdGhlIHN3aXRjaC4KK1RoaXMgaW5mb3JtYXRpb24gaXMgcG9zZWQgYnkgdGhlIHN3aXRjaCB0byB0aGUgY29udHJvbGxlciB3aGVuCit0aGUgc3dpdGNoIGZpcnN0IGNvbm5lY3RzLCBhbmQgdGhlbiB1cGRhdGVkIGJ5IHRoZSBzd2l0Y2ggaWYKK25ldyBpbnRlcmZhY2VzIGFyZSBjcmVhdGVkIG9yIGRlbGV0ZWQuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc2hvdy1pbnRlcmZhY2VzLWFsaWFzIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3Nob3ctaW50ZXJmYWNlcy1hbGlhcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43YTEwYWExCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3Nob3ctaW50ZXJmYWNlcy1hbGlhcwpAQCAtMCwwICsxLDIgQEAKK0ludGVyZmFjZXMgbWF5IGhhdmUgYWxpYXNlcyBhc3NpZ25lZCB0byB0aGVtLCB0aGlzIGtleXdvcmQKK2RpZXNwbGF5cyBhbnkgYWxpYXNlcyBhc3NvY2lhdGVkIHdpdGggdGhlIHN3aXRjaApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3Nob3ctc3dpdGNoLWFsaWFzIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3Nob3ctc3dpdGNoLWFsaWFzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNlYjdkY2EKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc2hvdy1zd2l0Y2gtYWxpYXMKQEAgLTAsMCArMSwyIEBACitUaGlzIHNlbGVjdGlvbiBkaXNwbGF5cyB0aGUgYWxpYXMgYXNzb2NpYXRlZCB3aXRoIHRoZQorcmVxdWVzdGVkIHN3aXRjaCAob3IgYWxsIHRoZSBzd3RpY2hlcyB3aGVuIGFsbCBpcyBzZWxlY3RlZCkKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9zaG93LXN3aXRjaC1mb3JtYXQtYnJpZWYgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc2hvdy1zd2l0Y2gtZm9ybWF0LWJyaWVmCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFjNTQ4ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc2hvdy1zd2l0Y2gtZm9ybWF0LWJyaWVmCkBAIC0wLDAgKzEsMiBAQAorVGhlIGJyaWVmIGtleXdvcmQgcmVxdWVzdHMgYSBsZXNzIHZlcmJvc2UgdmVyc2lvbgorZm9yIHRoZSBvdXRwdXQgb2YgdmFyaW91cyBzaG93IGNvbW1hbmRzCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc2hvdy1zd2l0Y2gtZm9ybWF0LWRldGFpbHMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc2hvdy1zd2l0Y2gtZm9ybWF0LWRldGFpbHMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYWUzMWMzYQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9zaG93LXN3aXRjaC1mb3JtYXQtZGV0YWlscwpAQCAtMCwwICsxLDIgQEAKK1RoZSBkZXRhaWxzIGtleXdvcmQgcmVxdWVzdHMgYSBtb3JlIHZlcmJvc2UgdmVyc2lvbgorb2YgdGhlIG91dHB1dCBmb3JtYXQuICAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9zaG93LXN3aXRjaC1vcmRlciBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9zaG93LXN3aXRjaC1vcmRlcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lODlmM2U4Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3Nob3ctc3dpdGNoLW9yZGVyCkBAIC0wLDAgKzEsMiBAQAorVGhlICdieScga2V5d29yZCBkZXNjcmliZXMgYSBzb3J0LWJ5IHRva2VuLCAgVGhlIHNvcnQKK3NlbGVjdGlvbiBpcyB0aGUgbmV4dCBrZXl3b3JkCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc3dpdGNoIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3N3aXRjaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mN2MxNGQ5Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3N3aXRjaApAQCAtMCwwICsxLDggQEAKK1RoZSBzd2l0Y2ggY29tbWFuZCBlbnRlcnMgdGhlIHN3aXRjaCBzdWJtb2RlIGZvciBhIHNpbmdsZQoraWRlbnRpZmllZCBzd2l0Y2guICAgV2l0aGluIHRoZSBzdWJtb2RlLCB2YXJpb3VzIGNvbmZpZ3VyYWlvbgorY2FuIGJlIHBlcmZvcm1lZCBvbiB0aGUgc3dpdGNoLCBpbmNsdWRpbmcgc2V0dGluZyB0aGUgc3dpdGNoLWFsaWFzLAorZW5hYmxlIG9yIGRpc2FibGluZyB0aGUgdHVubmVsIGZlYXR1cmVzLgorCitUaGUgJ25vJyB2YXJpYXRpb24gb2YgdGhlIHN3aXRjaCBjb21tYW5kIHdpbGwgbm90IHJlbW92ZSBzd3RpY2gncworY3VycmVudGx5IGNvbm5lY3RlZCB0byB0aGUgY29udHJvbGxlciwgaW5zdGVhZCBpdCB3aWxsIHJlbW92ZQorYW55IHVzZXIgY29uZmlndXJlZCBkZXRhaWxzIG9mIHRoZSBpZGVudGlmaWVkIHN3aXRjaC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9zd2l0Y2gtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9zd2l0Y2gtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hOGJmNzQzCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3N3aXRjaC1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAorc3dpdGNoIDAwOjAwOjAwOjAwOjAwOjAwOjAwOjAxCisgIERlZmluZSBhIG5ldyBzd2l0Y2gsIGFuZCBlbnRlciB0aGUgc3dpdGNoIGNvbmZpZ3VyYXRpb24gc3ViLW1vZGUKKworbm8gc3dpdGNoIDAwOjAwOjAwOjAwOjAwOjAwOjAwOjAxCisgIERlbGV0ZSBhIHN3aXRjaCBkZWZpbml0aW9uCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc3dpdGNocG9ydCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC9zd2l0Y2hwb3J0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYwNmRlN2MKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc3dpdGNocG9ydApAQCAtMCwwICsxIEBACitDb25maWd1cmUgdGhpcyBpbnRlcmZhY2UgdG8gY29ubmVjdCB0byBhbiBleHRlcm5hbCBuZXR3b3JrCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy9zd2l0Y2gvc3dpdGNocG9ydC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3N3aXRjaHBvcnQtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MGQwZDllCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3N3aXRjaHBvcnQtZXhhbXBsZQpAQCAtMCwwICsxLDYgQEAKK3N3aXRjaHBvcnQgbW9kZSBleHRlcm5hbAorICBXaXRoaW4gYSBzd2l0Y2ggaW50ZXJmYWNlIGRlZmluaXRvbiwgY29uZmlndXJlIHRoaXMgaW50ZXJmYWNlIHRvIGJlCisgIGNvbm5lY3RlZCB0byBhbiBleHRlcm5hbCBuZXR3b3JrCisKK25vIHN3aXRjaHBvcnQgbW9kZSBleHRlcm5hbAorICBSZW1vdmUgdGhlIGV4dGVybmFsIGNvbm5lY3Rpb24gYXR0cmlidXRlIGZvciB0aGlzIGludGVyZmFjZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3R1bm5lbCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC90dW5uZWwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjk4MTk1MQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC90dW5uZWwKQEAgLTAsMCArMSBAQAorQ29uZmlndXJlIHR1bm5lbCBhdHRyaWJ1dGVzIGZvciB0aGlzIHN3aXRjaApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC90dW5uZWwtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3N3aXRjaC90dW5uZWwtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYjA2NGNkCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvc3dpdGNoL3R1bm5lbC1leGFtcGxlCkBAIC0wLDAgKzEsOCBAQAordHVubmVsIHRlcm1pbmF0aW9uIGVuYWJsZWQKKyAgRW5hYmxlIHR1bm5lbCB0ZXJtaW5hdGlvbiBmb3IgdGhpcyBzd2l0Y2gKKwordHVubmVsIHRlcm1pbmF0aW9uIGRpc2FibGVkCisgIERpc2FibGUgdHVubmVsIHRlcm1pbmF0aW9uIGZvciB0aGlzIHN3aXRjaAorCitubyB0dW5uZWwgdGVybWluYXRpb24KKyAgRGlzYWJsZSB0dW5uZWwgdGVybWluYXRpb24gZm9yIHRoaXMgc3dpdGNoCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90YWNhY3Mvc2hvdyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy9zaG93Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM4NGU1MjIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90YWNhY3Mvc2hvdwpAQCAtMCwwICsxLDQgQEAKK1Nob3cgVEFDQUNTKyBhYWEgb3BlcmF0aW9uYWwgc3RhdGUuCisKK1ByaW50IG91dCB0aGUgZ2xvYmFsIGFhYSBzb3VyY2VzIGFuZCBzZXJ2aWNlcywKK2FzIHdlbGwgYXMgYW55IGNvbmZpZ3VyZWQgVEFDQUNTKyBzZXJ2ZXJzIGFuZCBwYXJhbWV0ZXJzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGFjYWNzL3Nob3ctZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy9zaG93LWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjRlYWUxZQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy9zaG93LWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACitzaG93IHRhY2FjcworICBEaXNwbGF5IHRoZSBUQUNBQ1MrIGFhYSBvcGVyYXRpb25hbCBzdGF0ZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy90YWNhY3MgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90YWNhY3MvdGFjYWNzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjljODkyNjgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90YWNhY3MvdGFjYWNzCkBAIC0wLDAgKzEsNyBAQAorQ29uZmlndXJlIHNlcnZlciBhbmQgcHJvdG9jb2wgcGFyYW1ldGVycyBmb3IgVEFDQUNTKy4KK1NwZWNpZnkgcmVtb3RlIFRBQ0FDUysgc2VydmVycywgYWxvbmcgd2l0aCBwcm90b2NvbCB0aW1lb3V0cyAKK2FuZCBzZWN1cml0eSBzZXR0aW5ncy4KKworVEFDQUNTKyBzcGVjaWZpYyBjb25maWd1cmF0aW9uIGhlcmUgaXMgZW5hYmxlZCBieSBhIGNvcnJlc3BvbmRpbmcKKydhYWEnIGNvbW1hbmQgdG8gZW5hYmxlIGF1dGhlbnRpY2F0aW9uLCBhdXRob3JpemF0aW9uLCBvciBhY2NvdW50aW5nCit2aWEgdGhlIFRBQ0FDUysgcHJvdG9jb2wuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90YWNhY3MvdGFjYWNzLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90YWNhY3MvdGFjYWNzLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTMxODY1YwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy90YWNhY3MtZXhhbXBsZQpAQCAtMCwwICsxLDI4IEBACit0YWNhY3Mgc2VydmVyIHRpbWVvdXQgNTAKKyAgQ29uZmlndXJlIHRoZSBnbG9iYWwgVEFDQUNTKyBwcm90b2NvbCB0aW1lb3V0IHRvIDUwcy4KKworbm8gdGFjYWNzIHNlcnZlciB0aW1lb3V0CisgIENvbmZpZ3VyZSB0aGUgZGVmYXVsdCBUQUNBQ1MrIHByb3RvdG9sIHRpbWVvdXQuCisKK3RhY2FjcyBzZXJ2ZXIga2V5IFNFQ1JFVC1LRVkKKyAgQ29uZmlndXJlIHRoZSAocGxhaW50ZXh0KSBrZXkgdXNlZCB0byBjb21tdW5pY2F0ZSB3aXRoCisgIHRoZSBUQUNBQ1MrIHNlcnZlciwgaWYgbm8ga2V5IGlzIHNwZWNpZmllZCBmb3IgYSBnaXZlbiBzZXJ2ZXIuCisKK25vIHRhY2FjcyBzZXJ2ZXIga2V5CisgIFJlc2V0IHRoZSBnbG9iYWwgVEFDQUNTKyBzZXJ2ZXIga2V5LgorICBJZiBubyBrZXkgaXMgc3BlY2lmaWVkLCBhbiBlbXB0eSBrZXkgaXMgYXNzdW1lZC4KKwordGFjYWNzIHNlcnZlciBob3N0IEFBLkJCLkNDLkRECisgIEFkZCBhIFRBQ0FDUysgc2VydmVyIHdpdGggdGhlIHNwZWNpZmllZCBJUCBhZGRyZXNzLgorCitubyB0YWNhY3Mgc2VydmVyIGhvc3QgQUEuQkIuQ0MuREQKKyAgRGVsZXRlIHRoZSBzcGVjaWZpZWQgVEFDQUNTKyBzZXJ2ZXIKKwordGFjYWNzIHNlcnZlciBob3N0IEFBLkJCLkNDLkREIGtleSBTRUNSRVQtS0VZCisgIFNwZWNpZnkgYW4gZW5jcnlwdGlvbiBrZXkgZm9yIHRoaXMgVEFDQUNTKyBzZXJ2ZXIuCisKK25vIHRhY2FjcyBzZXJ2ZXIgaG9zdCBBQS5CQi5DQy5ERCBrZXkKKyAgUmVtb3ZlIGFueSBrZXkgYXNzb2NpYXRlZCB3aXRoIHRoaXMgc2VydmVyLAorICBhbmQgdXNlIHRoZSBnbG9iYWwgVEFDQUNTKyBrZXkgaW5zdGVhZC4KKworCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90YWNhY3MvdGFjYWNzLWhvc3QgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90YWNhY3MvdGFjYWNzLWhvc3QKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTkyMjM4NQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy90YWNhY3MtaG9zdApAQCAtMCwwICsxIEBACitDb25maWd1cmUgVEFDQUNTKyBzZXJ2ZXJzIGJ5IElQIGFkZHJlc3MgZm9yIGFhYSByb2xlcy5Ib3N0cyBhcmUgbm90IGFjdGl2ZSBmb3IgYWFhIHJ1bGVzIHVubGVzcyB0aGUgYXNzb2NpYXRlZCAnYWFhJyBjb21tYW5kIGlzIHVzZWQuIERlbGV0ZSB0aGUgaG9zdCB3aXRoIHRoZSAnbm8nIGZvcm0gb2YgdGhpcyBjb21tYW5kLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGFjYWNzL3RhY2Fjcy1ob3N0LWtleSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy90YWNhY3MtaG9zdC1rZXkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjQ3NTkyZQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy90YWNhY3MtaG9zdC1rZXkKQEAgLTAsMCArMSw2IEBACitTcGVjaWZ5IHRoZSBUQUNBQ1MrIGVuY3J5cHRpb24ga2V5IHVzZWQgdG8gY29tbXVuaWNhdGUgd2l0aAordGhpcyBUQUNBQ1MrIHNlcnZlci4gIElmIG5vIGtleSBpcyBzcGVjaWZpZWQsIHRoZSBnbG9iYWwKK2tleSBpcyB1c2VkLgorCitSZXNldCB0aGUgcGVyLWhvc3Qga2V5IChhbmQgZmFsbCBiYWNrIHRvIHRoZSBnbG9iYWwga2V5KQord2l0aCB0aGUgJ25vJyB2ZXJzaW9uIG9mIHRoaXMgY29tbWFuZC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy90YWNhY3Mta2V5IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGFjYWNzL3RhY2Fjcy1rZXkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmQyZTE3MgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy90YWNhY3Mta2V5CkBAIC0wLDAgKzEsOCBAQAorQ29uZmlndXJlIHRoZSBkZWZhdWx0IFRBQ0FDUysgcHJvdG9jb2wga2V5IHVzZWQgdG8gc2VjdXJlCit0aGUgY29tbXVuaWNhdGlvbnMgY2hhbm5lbCB3aXRoIHRoZSBUQUNBQ1MrIHNlcnZlcihzKS4KKworVGhlIGRlZmF1bHQga2V5IGlzIHVzZWQgaWYgdGhlcmUgaXMgbm8ga2V5IGRlZmluZWQKK2ZvciBhbiBpbmRpdmlkdWFsIHNlcnZlci4KKworVGhlIGRlZmF1bHQga2V5IGNhbiBiZSByZXNldCAodG8gYW4gZW1wdHkga2V5KQord2l0aCB0aGUgJ25vJyBmb3JtIG9mIHRoaXMgY29tbWFuZC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy90YWNhY3MtdGltZW91dCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhY2Fjcy90YWNhY3MtdGltZW91dApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zODYyZTlkCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGFjYWNzL3RhY2Fjcy10aW1lb3V0CkBAIC0wLDAgKzEsOSBAQAorQ29uZmlndXJlIHRoZSBnbG9iYWwgdGltZW91dCBmb3IgY29tbXVuaWNhdGluZyB3aXRoIFRBQ0FDUysgc2VydmVycy4KK1RoZSB0aW1lb3V0IGlzIHNwZWNpZmllZCBpbiBzZWNvbmRzLgorCitJZiB0aGUgdGltZW91dCBleHBpcmVzIGJlZm9yZSB0aGUgVEFDQUNTKyBzZXJ2ZXIgcmVzcG9uZHMsCit0aGVuIHRoZSBUQUNBQ1MrIGFhYSBhY3Rpb24gaXMgY29uc2lkZXJlZCAnZmFpbGVkJywKK2FuZCBvdGhlciBtZXRob2RzIGNhbiBiZSBhdHRlbXB0ZWQuCisKK1RoZSBzZXJ2ZXIgdGltZW91dCBpcyByZXNldCB0byB0aGUgc3lzdGVtIGRlZmF1bHQgdXNpbmcgdGhlICdubycgCitjb21tYW5kIHByZWZpeC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhZy9tYXRjaCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhZy9tYXRjaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43OTVjYTAyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGFnL21hdGNoCkBAIC0wLDAgKzEsMyBAQAorVGhlIG1hdGNoIGNvbW1hbmQgaXMgdXNlZCB0byB0YWcgaG9zdHMuIE1BQy1hZGRyZXNzLCBWTEFOLCBzd2l0Y2gsIHN3aXRjaC1wb3J0IGFyZSB0aGUgZmllbGRzIHRoYXQgY2FuIGJlIG1hdGNoZWQgdG8gdGFnIGhvc3RzLiBUaGVzZSBmaWVsZHMgY2FuIGJlIG1hdGNoZWQgaW5kaXZpZHVhbGx5IG9yIGluIGNvbmp1bmN0aW9uLiBGb3IgaW5zdGFuY2UsIGlmIG1hdGNoIGlzIHNwZWNpZmllZCB0byBtYXRjaCBhIE1BQy1BZGRyZXNzLCBWTEFOIGFuZCBzd2l0Y2gtcG9ydCwgdGhlbiB0aGUgbG9naWNhbCBob3N0IHRoYXQgaGFzIHRoYXQgTUFDLUFkZHJlc3MsIHNlbmRpbmcgcGFja2V0cyB0YWdnZWQgd2l0aCB0aGF0IFZMQU4gYW5kIGNvbm5lY3RlZCB0byB0aGF0IHN3aXRjaC1wb3J0IGlzIHRhZ2dlZC4gV2hlcmVhcywgaWYgdGhlIG1hdGNoIGlzIGp1c3Qgb24gYSBzd2l0Y2gsIHRoZW4gYWxsIHRoZSBob3N0cyBjb25uZWN0ZWQgdG8gdGhhdCBzd2l0Y2ggYXJlIHRhZ2dlZC4gVGFnLXZhbHVlIGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggbXVsdGlwbGUgc3VjaCBtYXRjaCBzdGF0ZW1lbnRzLCB0aHVzIHRhZ2dpbmcgaG9zdHMgdGhhdCBtYXRjaCBhdGxlYXN0IG9uZSBvZiB0aGUgbWF0Y2ggc3RhdGVtZW50cy4KKworVGhlICdubycgdmFyaWF0aW9uIG9mIHRoZSBtYXRjaCBjb21tYW5kIHdpbGwgcmVtb3ZlIHRoZSBtYXRjaCBzdGF0ZW1lbnQgYW5kIHVudGFnIGFsbCB0aGUgaG9zdHMgdGhhdCB3ZXJlIHRhZ2dlZCBhcyBhIHJlc3VsdCBvZiBtYXRjaCBvbiB0aGF0IG1hdGNoIHN0YXRlbWVudC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhZy9tYXRjaC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGFnL21hdGNoLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWZjMDY0NwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhZy9tYXRjaC1leGFtcGxlCkBAIC0wLDAgKzEsMTEgQEAKK2xvY2FsaG9zdChjb25maWcpIyB0YWcgdGVuYW50Lm5hbWU9Y29rZQorbG9jYWxob3N0KGNvbmZpZy10YWcpIworbG9jYWxob3N0KGNvbmZpZy10YWcpIyBtYXRjaCBtYWMgMDA6MDA6MDA6MDA6MDA6MDEKK2xvY2FsaG9zdChjb25maWctdGFnKSMKK2xvY2FsaG9zdChjb25maWctdGFnKSMgbWF0Y2ggdmxhbiAyCitsb2NhbGhvc3QoY29uZmlnLXRhZykjIG1hdGNoIHN3aXRjaCAwMDowMDowMDowMDowMDowMDowMDowMQorbG9jYWxob3N0KGNvbmZpZy10YWcpIyBtYXRjaCBzd2l0Y2ggMDA6MDA6MDA6MDA6MDA6MDA6MDA6MDEgZXRoMQorbG9jYWxob3N0KGNvbmZpZy10YWcpIyBtYXRjaCBtYWMgMDA6MDA6MDA6MDA6MDA6MDIgdmxhbiAzCitsb2NhbGhvc3QoY29uZmlnLXRhZykjIG1hdGNoIG1hYyAwMDowMDowMDowMDowMDowMyBzd2l0Y2ggMDA6MDA6MDA6MDA6MDA6MDA6MDA6MDIKK2xvY2FsaG9zdChjb25maWctdGFnKSMgbWF0Y2ggbWFjIDAwOjAwOjAwOjAwOjAwOjAzIHN3aXRjaCAwMDowMDowMDowMDowMDowMDowMDowMiBldGgyCitsb2NhbGhvc3QoY29uZmlnLXRhZykjIG1hdGNoIG1hYyAwMDowMDowMDowMDowMDowMyB2bGFuIDMgc3dpdGNoIDAwOjAwOjAwOjAwOjAwOjAwOjAwOjAyIGV0aDMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90YWcvc2hvdy10YWcgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90YWcvc2hvdy10YWcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDY1NjhjYwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhZy9zaG93LXRhZwpAQCAtMCwwICsxIEBACitUaGUgc2hvdyB0YWcgY29tbWFuZCBsaXN0cyBhbGwgdGhlIHRhZ3MgY29uZmlndXJlZC4gRWFjaCB0YWcncyBuYW1lc3BhY2UsIG5hbWUgYW5kIHZhbHVlIGFyZSBzaG93bi4gQWxzbyBzaG93biBpcyB3aGV0aGVyIHRoaXMgdGFnIGlzIHBlcnNpc3RlZCBvciBub3QsIG1lYW5pbmcsIHdoZXRoZXIgdGhpcyB0YWcgd2FzIGNyZWF0ZWQgaW50ZXJuYWxseSBieSB0aGUgY29udHJvbGxlciBpdHNlbGYgb3IgdGhlIHVzZXIgY3JlYXRlZCB0aGlzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGFnL3RhZyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhZy90YWcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTQ1ZjllMwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhZy90YWcKQEAgLTAsMCArMSwzIEBACitUaGUgdGFnIGNvbW1hbmQgZW50ZXJzIHRoZSB0YWcgc3VibW9kZSBmb3IgYSBzaW5nbGUgdGFnLXZhbHVlLiBUaGUgdGFnLXZhbHVlIGlzIGNvbXBvc2VkIG9mIGEgdGFnIGFuZCB0aGUgdmFsdWUgYXNzaWduZWQgdG8gaXQsIHRhZyBpdHNlbGYgaXMgY29tcG9zZWQgb2YgbmFtZXNwYWNlIHRoYXQgdGhlIHRhZyBiZWxvbmdzIHRvIGFuZCB0aGUgdGFnJ3MgbmFtZSBpdHNlbGYuIFRoZSBzeW50YXggb2YgdGFnLXZhbHVlIC0gPG5hbWVzcGFjZT4uPG5hbWU+PTx2YWx1ZT4uIEV4YW1wbGUgb2YgdGFnLXZhbHVlIGlzIC0gInRlbmFudC5uYW1lPWNva2UiLiAgV2l0aGluIHRoZSB0YWcgc3VibW9kZSwgdGhpcyB0YWctdmFsdWUgY2FuIGJlIGFzc29jaWF0ZWQgd2l0aCBob3N0cyB0aHJvdWdoIG1hdGNoIGNvbW1hbmQuCisKK1RoZSAnbm8nIHZhcmlhdGlvbiBvZiB0aGUgdGFnIGNvbW1hbmQgd2lsbCByZW1vdmUgdGhlIHRhZy12YWx1ZSBhbmQgdW50YWcgdGhlIGhvc3RzLiAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhZy90YWctZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RhZy90YWctZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMGVhNjlkCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGFnL3RhZy1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAordGFnIGV4YW1wbGUtY29tLnJvbGU9cHJpbWFyeQorICBEZWZpbmUgYSB0YWcgYXNzb2NpYXRpb24sIGFuZCBlbnRlciB0aGUgdGFnIGNvbmZpZ3VyYXRpb24gc3ViLW1vZGUKKworbm8gdGFnIGV4YW1wbGUtY29tLnJvbGU9cHJpbWFyeQorICBSZW1vdmUgYSB0YWcgZGVmaW5pdGlvbgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVjaC1zdXBwb3J0L3Nob3ctdGVjaC1zdXBwb3J0LWNvbmZpZyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RlY2gtc3VwcG9ydC9zaG93LXRlY2gtc3VwcG9ydC1jb25maWcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzJiYjk1NQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RlY2gtc3VwcG9ydC9zaG93LXRlY2gtc3VwcG9ydC1jb25maWcKQEAgLTAsMCArMSBAQAorVGhpcyBjb21tYW5kcyBzaG93cyBjdXN0b21pemVkIGNvbW1hbmRzIHNob3duIGluICdzaG93IHRlY2gtc3VwcG9ydCcgb3V0cHV0LgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RlY2gtc3VwcG9ydC9zaG93LXRlY2gtc3VwcG9ydC1jb25maWctZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RlY2gtc3VwcG9ydC9zaG93LXRlY2gtc3VwcG9ydC1jb25maWctZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lMmJkZTU4Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVjaC1zdXBwb3J0L3Nob3ctdGVjaC1zdXBwb3J0LWNvbmZpZy1leGFtcGxlCkBAIC0wLDAgKzEsNiBAQAorTWVpcy1NYWNCb29rLVByby5sb2NhbChjb25maWcpIyB0ZWNoLXN1cHBvcnQtY29uZmlnIHNoZWxsIGRhdGUKK01laXMtTWFjQm9vay1Qcm8ubG9jYWwoY29uZmlnKSMgc2hvdyB0ZWNoLXN1cHBvcnQtY29uZmlnCitUeXBlIG9mIGNvbW1hbmQgQ29tbWFuZCBuYW1lCistLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tCitzaGVsbCAgICAgICAgICAgZGF0ZQorTWVpcy1NYWNCb29rLVByby5sb2NhbChjb25maWcpIyAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZWNoLXN1cHBvcnQvdGVjaC1zdXBwb3J0LWNvbmZpZyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RlY2gtc3VwcG9ydC90ZWNoLXN1cHBvcnQtY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU2OWEyYzAKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZWNoLXN1cHBvcnQvdGVjaC1zdXBwb3J0LWNvbmZpZwpAQCAtMCwwICsxIEBACitUaGlzIGNvbW1hbmQgc2V0cyBhIHNwZWNpZmljIHNoZWxsIG9yIGNsaSBjb21tYW5kIHRvIGJlIGluY2x1ZGVkIGluIHRoZSBzaG93IHRlY2gtc3VwcG9ydCBvdXRwdXQuIEEgJ25vJyBwcmVwZW5kZWQgdG8gdGhpcyBjb21tYW5kIHdpbGwgZGVsZXRlIHRoZSBjbGkgY29tbWFuZCBmcm9tIHRoZSBzaG93IHRlY2gtc3VwcG9ydCBvdXRwdXQuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZWNoLXN1cHBvcnQvdGVjaC1zdXBwb3J0LWNvbmZpZy1jbGkgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZWNoLXN1cHBvcnQvdGVjaC1zdXBwb3J0LWNvbmZpZy1jbGkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjZmNzcxMwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RlY2gtc3VwcG9ydC90ZWNoLXN1cHBvcnQtY29uZmlnLWNsaQpAQCAtMCwwICsxLDIgQEAKK0luY2x1ZGUgdGhlIGZvbGxvd2luZyBhcyBhIENsaSBjb21tYW5kIGluIHRoZSB0ZWNoLXN1cHBvcnQgb3V0cHV0CisKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RlY2gtc3VwcG9ydC90ZWNoLXN1cHBvcnQtY29uZmlnLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZWNoLXN1cHBvcnQvdGVjaC1zdXBwb3J0LWNvbmZpZy1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRhMWU2MWEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZWNoLXN1cHBvcnQvdGVjaC1zdXBwb3J0LWNvbmZpZy1leGFtcGxlCkBAIC0wLDAgKzEsMiBAQAorbG9jYWxob3N0KGNvbmZpZykjIHRlY2gtc3VwcG9ydC1jb25maWcgc2hlbGwgZGF0ZQorbG9jYWxob3N0KGNvbmZpZykjIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RlY2gtc3VwcG9ydC90ZWNoLXN1cHBvcnQtY29uZmlnLXNoZWxsIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVjaC1zdXBwb3J0L3RlY2gtc3VwcG9ydC1jb25maWctc2hlbGwKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWFhZWE2ZgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RlY2gtc3VwcG9ydC90ZWNoLXN1cHBvcnQtY29uZmlnLXNoZWxsCkBAIC0wLDAgKzEgQEAKK0luY2x1ZGluZyB0aGUgZm9sbG93aW5nIGFzIGEgc2hlbGwgY29tbWFuZCBpbiB0aGUgdGVjaC1zdXBwb3J0IG91dHB1dApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY4YTdlM2UKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QKQEAgLTAsMCArMSwyIEBACitUaGUgdGVzdCBjb21tYW5kIHByb3ZpZGVzIHZhcmlvdXMgdG9vbHMgdG8KK2hlbHAgcGVyZm9ybSByb290LWNhdXNlIGFuYWx5c2lzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbiBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNWE3MDIwNQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4KQEAgLTAsMCArMSw2IEBACitUaGUgJ3BhY2tldC1pbicgdGVzdCB0eXBlIHByb3ZpZGVzIGEgdG9vbHMgdG8KK2RldGVybWluZSB3aGV0aGVyIGEgc291cmNlIGFuZCBkZXN0IGNhbiB0cmFuc21pdAorYSBmcmFtZS4gICBBIGZyYW1lIGlzIGluamVjdGVkIGFzIGlmIGl0IG9yaWdpbmF0ZWQKK2Zyb20gdGhlIGluZGljYXRlZCBwb3J0IG9uIGEgc291cmNlIHN3aXRjaCwgYW5kIAoraXMgZGlyZWN0ZWQgdG8gYSBkZXN0aW5hdGlvbiBzd2l0Y2ggYW5kIHBvcnQuICBXaGVuCitpdCBhcnJpdmVzLCB0aGUgY29tbWFuZCBhbm5vdW5jZXMgdGhlIHBhdGggdHJhdmVyc2VkLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbi1kcGlkIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbi1kcGlkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIwMWE0NjAKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLWRwaWQKQEAgLTAsMCArMSwyIEBACitUaGlzIHBhcmFtZXRlciBpZGVudGlmaWVzIGEgc3dpdGNoIGJ5IERQSUQsIGFzIHBhcnQgb2YgdGhlIGRlc2NyaXB0aW9uIG9mIAordGhlIGF0dGFjaG1lbnQgcG9pbnQKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4tZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4tZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41NDBhZWVlCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbi1leGFtcGxlCkBAIC0wLDAgKzEsMjkgQEAKK3Rlc3QgcGFja2V0LWluIHNyYy1ob3N0IDAwOjAwOjAwOjAwOjAwOjAxIGRzdC1ob3N0IDAwOjAwOjAwOjAwOjAwOjAyCisgIFRlc3QgcGFja2V0IGluamVjdGlvbiBiZXR3ZWVuIHR3byBob3N0cworCit0ZXN0IHBhY2tldC1pbiBzcmMtaG9zdCAwMDowMDowMDowMDowMDowMSBkc3QtaG9zdCAwMDowMDowMDowMDowMDowMiBzcmMtc3dpdGNoIDAwOjAwOjAwOjAwOjAwOjAwOjAwOjAwIDMyCisgIFJ1biB0aGUgcGFja2V0LWluIHRlc3QsIHNwZWNpZnlpbmcgYSBzcGVjaWZpYyBzd2l0Y2ggcGh5c2ljYWwgcG9ydAorCit0ZXN0IHBhY2tldC1pbiBzcmMtaG9zdCAwMDowMDowMDowMDowMDowMSBkc3QtaG9zdCAwMDowMDowMDowMDowMDowMiAuLi4gdmxhbiAxMDAxCisgIFJ1biB0aGUgcGFja2V0LWluIHRlc3QsIHRhZ2dpbmcgcGFja2V0cyB3aXRoIGEgc3BlY2lmaWMgVkxBTgorCit0ZXN0IHBhY2tldC1pbiBzcmMtaG9zdCAwMDowMDowMDowMDowMDowMSBkc3QtaG9zdCAwMDowMDowMDowMDowMDowMiAuLi4gcHJpb3JpdHkgMgorICBSdW4gdGhlIHBhY2tldC1pbiB0ZXN0LCB0YWdnaW5nIHBhY2tldHMgd2l0aCBhIHNwZWNpZmljIGV0aGVyIHByaW9yaXR5CisKK3Rlc3QgcGFja2V0LWluIHNyYy1ob3N0IDAwOjAwOjAwOjAwOjAwOjAxIGRzdC1ob3N0IDAwOjAwOjAwOjAwOjAwOjAyIC4uLiBzcmMtaXAtYWRkcmVzcyAxLjIuMy40CisgIFJ1biB0aGUgcGFja2V0LWluIHRlc3QsIHRhZ2dpbmcgcGFja2V0cyB3aXRoIGEgc3BlY2lmaWMgc291cmNlIElQIGFkZHJlc3MKKwordGVzdCBwYWNrZXQtaW4gc3JjLWhvc3QgMDA6MDA6MDA6MDA6MDA6MDEgZHN0LWhvc3QgMDA6MDA6MDA6MDA6MDA6MDIgLi4uIGRzdC1pcC1hZGRyZXNzIDEuMi4zLjQKKyAgUnVuIHRoZSBwYWNrZXQtaW4gdGVzdCwgdGFnZ2luZyBwYWNrZXRzIHdpdGggYSBzcGVjaWZpYyBkZXN0aW5hdGlvbiBJUCBhZGRyZXNzCisKK3Rlc3QgcGFja2V0LWluIHNyYy1ob3N0IDAwOjAwOjAwOjAwOjAwOjAxIGRzdC1ob3N0IDAwOjAwOjAwOjAwOjAwOjAyIC4uLiBwcm90b2NvbCA2CisgIFJ1biB0aGUgcGFja2V0LWluIHRlc3QsIHRhZ2dpbmcgcGFja2V0cyB3aXRoIGEgc3BlY2lmaWMgSVAgcHJvdG9jb2wgbnVtYmVyIChUQ1ApCisKK3Rlc3QgcGFja2V0LWluIHNyYy1ob3N0IDAwOjAwOjAwOjAwOjAwOjAxIGRzdC1ob3N0IDAwOjAwOjAwOjAwOjAwOjAyIC4uLiB0b3MgNworICBSdW4gdGhlIHBhY2tldC1pbiB0ZXN0LCB0YWdnaW5nIHBhY2tldHMgd2l0aCBhIHNwZWNpZmljIHNldCBvZiBUT1MgYml0cworCit0ZXN0IHBhY2tldC1pbiBzcmMtaG9zdCAwMDowMDowMDowMDowMDowMSBkc3QtaG9zdCAwMDowMDowMDowMDowMDowMiAuLi4gc3JjLXBvcnQgODAKKyAgUnVuIHRoZSBwYWNrZXQtaW4gdGVzdCwgdGFnZ2luZyBwYWNrZXRzIHdpdGggYSBzcGVjaWZpYyBzb3VyY2UgcG9ydCBudW1iZXIKKwordGVzdCBwYWNrZXQtaW4gc3JjLWhvc3QgMDA6MDA6MDA6MDA6MDA6MDEgZHN0LWhvc3QgMDA6MDA6MDA6MDA6MDA6MDIgLi4uIGRzdC1wb3J0IDQ0MworICBSdW4gdGhlIHBhY2tldC1pbiB0ZXN0LCB0YWdnaW5nIHBhY2tldHMgd2l0aCBhIHNwZWNpZmljIGRlc3RpbmF0aW9uIHBvcnQgbnVtYmVyCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLWlmIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbi1pZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNDcwNmNiCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbi1pZgpAQCAtMCwwICsxLDIgQEAKK1RoaXMgcGFyYW1ldGVyIGlkZW50aWZpZXMgYSBwaHlzaWNhbCBzd2l0Y2ggcG9ydCBudW1iZXIsIGFzIHBhcnQgb2YKK3RoZSBkZXNjcmlwdGlvbiBvZiB0aGUgYXR0YWNobWVudCBwb2ludApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbi1pcCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4taXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzA4MTc1YQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4taXAKQEAgLTAsMCArMSBAQAorSVAgYWRkcmVzcyBmb3IgaW5qZWN0ZWQgcGFja2V0cwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbi1tYWMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLW1hYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lNmU2Yjk1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbi1tYWMKQEAgLTAsMCArMSwyIEBACitUaGlzIHBhcmFtZXRlciBpZGVudGlmaWVzIGEgaG9zdCwgdXNlZCB0byBpZGVudGlmeSBhbiBhdHRhY2htZW50IHBvaW50LgorVGhlIHBhcmFtZXRlcidzIHZhbHVlIGlzIGEgbWFjIGFkZHJlc3MuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLXBvcnQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLXBvcnQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2NkMTA3OAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4tcG9ydApAQCAtMCwwICsxIEBACitQb3J0IG51bWJlciBmb3IgaW5qZWN0ZWQgcGFja2V0cwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4tcHJpb3JpdHkgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLXByaW9yaXR5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjIzM2MwYjQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLXByaW9yaXR5CkBAIC0wLDAgKzEgQEAKK0V0aGVyIHByaW9yaXR5IGZvciBpbmplY3RlZCBwYWNrZXRzCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLXByb3RvIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbi1wcm90bwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41N2M2OGZjCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhY2tldC1pbi1wcm90bwpAQCAtMCwwICsxIEBACitQcm90b2NvbCBudW1iZXIgZm9yIGluamVjdGVkIHBhY2tldHMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLXRvcyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4tdG9zCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyMjcyZGUKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLXRvcwpAQCAtMCwwICsxIEBACitUT1MgZmxhZ3MgZm9yIGluamVjdGVkIHBhY2tldHMKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLXZsYW4gYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGFja2V0LWluLXZsYW4KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjM3OGYzNgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYWNrZXQtaW4tdmxhbgpAQCAtMCwwICsxIEBACitWTEFOIElEIGZvciB0YWdnaW5nIHBhY2tldHMKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYXRoIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhdGgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDIxMDIzOQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYXRoCkBAIC0wLDAgKzEsOSBAQAorVGhlICd0ZXN0IHBhdGgnIGNvbW1hbmQgcmVxdWVzdHMgdGhlIGNvbnRyb2xsZXIgdG8gY29tcHV0ZQordGhlIHBhdGggYmV0d2VlbiBpbnRlcmZhY2VzIG9uIHN3aXRjaGVzLCByZXR1cm4sIGFuZCBkaXNwbGF5Cit0aGUgcmVzdWx0LiAgTm8gYXR0ZW1wdCBpdCBtYWRlIHRvIHZhbGlkYXRlIHRoZSBjb25uZWN0aXZpdHkKK2JldHdlZW4gdGhlIHR3byBlbmRwb2ludHMuCisKK1RvIGNvbXB1dGUgdGhlIHBhdGgsIGFuZCBzb3VyY2UgYW5kIGEgZGVzdGluYXRpb24gbmVlZHMgdG8KK2JlIHByb3ZpZGVkLiAgIFRoZXNlIGNhbiBiZSBkZXNjcmliZWQgaW4gYSB2YXJpZXR5IG9mIGRpZmZlcmVudAorZm9ybXM6ICBob3N0cyBtYWMgYWRkcmVzc2VzLCAgaXAgYWRkcmVzc2VzLCBvciBzd2l0Y2ggYW5kIGludGVyZmFjZQorbmFtZXMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGF0aC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhdGgtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45NWJiZTVhCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhdGgtZXhhbXBsZQpAQCAtMCwwICsxLDkgQEAKKyBub2RlMT4gdGVzdCBwYXRoIHNyYy1pcCAxMC4wLjAuMSBkc3QtaXAgMTAuMC4wLjMKKyAjIFN3aXRjaCAgICAgICAgICAgICAgICAgIElGICAgICAgUnggQnl0ZXMgUnggUGt0cyBSeCBFcnJzIFR4IEJ5dGVzIFR4IFBrdHMgVHggRXJycworIC18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLXwtLS0tLS0tLXwtLS0tLS0tfC0tLS0tLS18LS0tLS0tLS18LS0tLS0tLXwtLS0tLS0tCisgMSAwMDowMDowMDowMDowMDowMDowMDowNiBzNi1ldGgxIDg2MCAgICAgIDExICAgICAgMCAgICAgICA0NzYyICAgICA3NCAgICAgIDAgICAgICAKKyAyIDAwOjAwOjAwOjAwOjAwOjAwOjAwOjA2IHM2LWV0aDMgMjIwOCAgICAgMzUgICAgICAwICAgICAgIDIyMDggICAgIDM1ICAgICAgMCAgICAgIAorIDMgMDA6MDA6MDA6MDA6MDA6MDA6MDA6MDUgczUtZXRoMSAyMjA4ICAgICAzNSAgICAgIDAgICAgICAgMjIwOCAgICAgMzUgICAgICAwICAgICAgCisgNCAwMDowMDowMDowMDowMDowMDowMDowNSBzNS1ldGgyIDIyMDggICAgIDM1ICAgICAgMCAgICAgICAyMzkxICAgICAzOCAgICAgIDAgICAgICAKKyA1IDAwOjAwOjAwOjAwOjAwOjAwOjAwOjA3IHM3LWV0aDMgMjQxOSAgICAgMzggICAgICAwICAgICAgIDIyMDggICAgIDM1ICAgICAgMCAgICAgIAorIDYgMDA6MDA6MDA6MDA6MDA6MDA6MDA6MDcgczctZXRoMSA4NjAgICAgICAxMSAgICAgIDAgICAgICAgNDY4NCAgICAgNzMgICAgICAwCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGF0aC1ob3N0IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhdGgtaG9zdApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MmU0NWRjCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhdGgtaG9zdApAQCAtMCwwICsxLDIgQEAKK1RoaXMgcGFyYW1ldGVyIGlkZW50aWZpZXMgdGhlIGhvc3QsIHVzZWQgdG8gaWRlbnRpZnkgYW4gYXR0YWNobWVudCBwb2ludC4KK1RoZSBwYXJhbWV0ZXIncyB2YWx1ZSBpcyBhIG1hYyBhZGRyZXNzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhdGgtaWYgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGF0aC1pZgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kNWIyZmU3Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhdGgtaWYKQEAgLTAsMCArMSwyIEBACitUaGlzIHBhcmFtZXRlciBpZGVudGlmaWVzIGEgc3BlY2lmaWMgc3dpdGNoJ3MgaW50ZXJmYWNlIChwaHlzaWNhbCBwb3J0KSwgdG8KK2NvbXBsZXRlIHRoZSBhdHRhY2htZW50IHBvaW50IGRlc2NyaXB0aW9uLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhdGgtaXAgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGF0aC1pcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kM2IyYjE1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdGVzdC90ZXN0LXBhdGgtaXAKQEAgLTAsMCArMSBAQAorVGhpcyBwYXJhbWV0ZXIgaWRlbnRpZXMgYW4gaXAgYWRkcmVzcyB1c2VkIHRvIGRldGVybWluZSBhbiBhdHRhY2htZW50IHBvaW50CmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGF0aC1zd2l0Y2ggYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90ZXN0L3Rlc3QtcGF0aC1zd2l0Y2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDRkMDg4NwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Rlc3QvdGVzdC1wYXRoLXN3aXRjaApAQCAtMCwwICsxLDIgQEAKK1RoaXMgcGFyYW1ldGVyIGlkZW50aWZpZXMgYSBzd2l0Y2ggdmlhIERQSUQsIGFzIHBhcnQgb2YgdGhlIGRlc2NyaXB0aW9uIG9mIAordGhlIGF0dGFjaG1lbnQgcG9pbnQKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RvcG9sb2d5L3RvcG9sb2d5IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdG9wb2xvZ3kvdG9wb2xvZ3kKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2FhMzFjNAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RvcG9sb2d5L3RvcG9sb2d5CkBAIC0wLDAgKzEsMiBAQAorVGhlIHRvcG9sb2d5IGNvbW1hbmQgY29uZmlndXJlcyBhdHRyaWJ1dGVzIGFzc29jaWF0ZWQgd2l0aAordGhlIHRvcGxvZ3kgbWFuYWdlbWVudCBvZiB0aGUgY29udHJvbGxlci4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3RvcG9sb2d5L3RvcG9sb2d5LWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90b3BvbG9neS90b3BvbG9neS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRiM2VjOGIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90b3BvbG9neS90b3BvbG9neS1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAorICAgIHRvcG9sb2d5IGF1dG9wb3J0ZmFzdAorICAgICAgICBFbmFibGUgYXV0b3BvcnRmYXN0IGFuZCBzdXBwcmVzcyBsaW5rIGRpc2NvdmVyeSBvbiBmYXN0IHBvcnRzLgorCisgICAgbm8gdG9wb2xvZ3kgYXV0b3BvcnRmYXN0CisgICAgICAgIERvIG5vdCBzdXBwcmVzcyBsaW5rIGRpc2NvdmVyeSBvbiBmYXN0IHBvcnRzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHJhY2Vyb3V0ZS90cmFjZXJvdXRlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHJhY2Vyb3V0ZS90cmFjZXJvdXRlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFkOTgxMDgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90cmFjZXJvdXRlL3RyYWNlcm91dGUKQEAgLTAsMCArMSwzIEBACitDb21wdXRlIHRoZSBMMyBwYXRoIGJldHdlZW4gdGhlIGxvY2FsIGhvc3QgYW5kIHRoZQorZGVzdGluYXRpb24gYnkgdXNpbmcgaW5jcmVhc2luZyBUVEwncywgYW5kIHJlcG9ydGluZworYmFjayBJQ01QIHRpbWVkLW91dCBtZXNzYWdlcwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHJhY2Vyb3V0ZS90cmFjZXJvdXRlLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90cmFjZXJvdXRlL3RyYWNlcm91dGUtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43N2ZlODdmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHJhY2Vyb3V0ZS90cmFjZXJvdXRlLWV4YW1wbGUKQEAgLTAsMCArMSw2IEBACit0cmFjZXJvdXRlIDEuMi4zLjQKKyAgQ29tcHV0ZSB0aGUgTDMgcGF0aCB0aGUgaG9zdCB3aXRoIElQIGFkZHJlc3MgMS4yLjMuNAorCit0cmFjZXJvdXRlIGV4YW1wbGUuY29tCisgIENvbXB1dGUgdGhlIEwzIHBhdGggdGhlIGhvc3Qgd2l0aCBhIHNwZWNpZmljIGhvc3RuYW1lCisKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL2NpZHItcmFuZ2UgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9jaWRyLXJhbmdlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJiYTJlYzgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9jaWRyLXJhbmdlCkBAIC0wLDAgKzEsNyBAQAorQSBjaWRyLXJhbmdlIGlzIGFuIGlwLWFkZHJlc3MgZm9sbG93ZWQgYnkgYSBzbGFzaCAnLycsCit0aGUgZm9sbG93ZWQgYnkgYSBkZWNpbWFsIG51bWJlciBpbiB0aGUgcmFuZ2UgWzAuLjMxXQorVGhlIGNpZHItcmFuZ2UgaWRlbnRpZmVzIGJvdGggYSBzaW5nbGUgaXAgYWRkcmVzcywgYW5kCithIHJhbmdlIG9mIGlwLWFkZHJlc3MsIHRoZSB0cmFpbGluZyBudW1iZXIgZGVzY3JpYmVzCithIG5ldG1hc2ssIHRoZSBudW1iZXIgaW5kaWNhdGVzIHRoZSBsZW5ndGggb2YgMS1iaXRzCit3aXRoaW4gdGhlIG1hc2suICBFeGFtcGxlczogIDE5Mi4xNjguMS4xLzI1LCBhbmQKKzEwLjAuMC42NS8yNApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHlwZXMvZG9tYWluLW5hbWUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9kb21haW4tbmFtZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45YjViYzcyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHlwZXMvZG9tYWluLW5hbWUKQEAgLTAsMCArMSwyIEBACitBIGRvbWFpbi1uYW1lIGlzIGEgY29sbGVjdGlvbiBvZiBkb3QgKC4pIHNlcGFyYXRlZCBzdHJpbmdzCit1c2VkIGFzIGEgbW9yZSBodW1hbiByZWFkYWJsZSByZXBsYWNlbWVudCBmb3IgIGFuIGlwLWFkZHJlc3MuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9kcGlkIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHlwZXMvZHBpZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5jMWNlYjgwCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHlwZXMvZHBpZApAQCAtMCwwICsxLDUgQEAKK0RwaWQncyB1bmlxdWVseSBpZGVudGlmeSBhIHN3aXRjaCwgYSBkcGlkIGlzIGFuIGVpZ2h0CitoZXggYnl0ZSBzdHJpbmcgd2hpY2ggdGhlIHN3aXRjaCBhbm5vdW5jZXMgdG8gdGhlIGNvbnRyb2xsZXIsCitJbiBtb3N0IHNpdHVhdGlvbnMgYSBzd2l0Y2gtYWxpYXMgY2FuIGJlIHVzZWQgYXMgYSByZXBsYWNlbWVudAordG9rZW4gZm9yIHRoZSBkcGlkLiAgIFN3aXRjaC1hbGlhcyBhcmUgbWFuYWdlZCBpbiB0aGUgc3dpdGNoCitzdWJtb2RlIHdpdGhpbiBjb25maWcgc3VibW9kZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL2hleC1vci1kZWNpbWFsLWludGVnZXIgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9oZXgtb3ItZGVjaW1hbC1pbnRlZ2VyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkwMmNhYzgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9oZXgtb3ItZGVjaW1hbC1pbnRlZ2VyCkBAIC0wLDAgKzEsMyBAQAorVGhpcyBpcyBhbiBpbnRlZ2VyIHZhbHVlIHdoaWNoIGNhbiBiZSBleHByZXNzZWQgZWl0aGVyCitpbiBkZWNpbWFsIG9yIGhleC4gIEhleCB2YWx1ZXMgbXVzdCBiZSBwcmVmaXhlZCBieSAweC4KK0V4YW1wbGVzOiAxMCwgMHhhYmMsIDAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL2hvc3QgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9ob3N0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJjNDAxZDMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9ob3N0CkBAIC0wLDAgKzEsNCBAQAorSG9zdHMgYXJlIGlkZW50aWZpZWQgYnkgdGhlIHVzZSBvZiBlaXRoZXIgYSBtYWMtYWRkcmVzcworKHNpeCBoZXggYnl0ZXMgc2VwYXJhdGVkIGJ5IGNvbG9ucyksIG9yIGEgaG9zdCBhbGlhcy4KK0hvc3QgYWxpYXMgY2FuIGJlIGNyZWF0ZWQgaW4gdGhlIGhvc3Qgc3VibW9kZSB1bmRlciBjb25maWcsCitidSB1c2luZyB0aGUgaG9zdC1hbGlhcyBjb21tYW5kLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHlwZXMvaWRlbnRpZmllciBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL2lkZW50aWZpZXIKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzRjZGIxNQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL2lkZW50aWZpZXIKQEAgLTAsMCArMSwzIEBACitBbiBJZGVudGlmaWVyIGlzIGEgc3RyaW5ncyBzdGFydGluZyB3aXRoIGFuIGFscGhhYmV0aWMKK2NoYXJhY3RlciwgZm9sbG93ZWQgYnkgYSBudW1iZXIgb2YgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsCithbG9uZyB3aXRoICdfJyBhbmQgJy0nLiAgSXRzIHVzZWQgdG8gbmFtZSBzb21lIGVudGl0eS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL2lwLWFkZHJlc3MgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9pcC1hZGRyZXNzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJlMWMxYzEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9pcC1hZGRyZXNzCkBAIC0wLDAgKzEsNCBAQAorQW4gaXAtYWRkcmVzcyBpcyBmb3VyIGRlY2ltYW4gbnVtYmVycyBzZXBhcmF0ZWQgYnkgZG90cyAoLikuCitFYWNoIG9mIHRoZSBkZWNpbWFuIG51bWJlcnMgY2FuIHJhbmdlIGJldHdlZW4gMC0yNTUuICAKK0lwLWFkZHJlc3MgYXJlIHVzZWQgdG8gaWRuZXRpZnkgYW4gaXAgcHJvdG9jb2wgc291cmNlCitvciBkZXN0aW5hdGlvbi4gIEV4YW1wbGVzIGFyZSAxOTIuMTY4LjIuMTI5IGFuZCAxMC4xMS4xMi4xMwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHlwZXMvaXAtYWRkcmVzcy1vci1kb21haW4tbmFtZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL2lwLWFkZHJlc3Mtb3ItZG9tYWluLW5hbWUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODk3Zjk1MQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL2lwLWFkZHJlc3Mtb3ItZG9tYWluLW5hbWUKQEAgLTAsMCArMSwzIEBACitBbiBpcC1hZGRyZXNzIG9yIGEgZnVsbHkgcXVhbGlmaWVkIGRvbWFpbiBuYW1lIG1heSBiZSB1c2VkIGhlcmUuCitUaGUgaXAtYWRkcmVzcyBpcyBhIGRvdHRlZCBxdWFkLCB3aGlsZSB0aGUgZnVsbHkgcXVhbGlhaWZpZWQgZG9tYWluCituYW1lIGlzIGEgZG9tYWluIG5hbWUgd2hpY2ggd2lsbCByZXNvbHZlIHRvIGFuIGlwLWFkZHJlc3MKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL21hYy1hZGRyZXNzIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHlwZXMvbWFjLWFkZHJlc3MKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDczZWYzYgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL21hYy1hZGRyZXNzCkBAIC0wLDAgKzEsMyBAQAorQSBtYWMtYWRkcmVzcywgc2l4IGhleCBkaWdpdHMgc2VwYXJhdGVkIGJ5IGNvbG9ucyAnOicsIHVzZWQgdG8KK2lkZW50aWZ5IGEgdW5pcXVlIGVudGl0eSBvbiBhbiBldGhlcm5ldCBuZXR3b3JrLiAgIAorRXhhbXBsZXM6IDAwOjUwOjU2OmFkOmZlOmJiLCAwMDoxYjphOTozZjoyZTo2ZSAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL25ldG1hc2sgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9uZXRtYXNrCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBkMTAyYWMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9uZXRtYXNrCkBAIC0wLDAgKzEsNiBAQAorQSBuZXRtYXNrLCBhc3NvY2lhdGVkIHdpdGggYW4gaXAtYWRkcmVzcywgdXNlZCB0byBpZGVudGlmeQorYW4gaXAgYWRkcmVzcyByYW5nZXMuICAgQW4gaXAtYWRkcmVzcyBpcyB3aXRoaW4gdGhlIHJhbmdlCitpZiB0aGUgaXAtYWRkcmVzcywgYmluYXJ5LWFuZC1lZCB3aXRoIHRoZSBtYXNrLCBtYXRjaGVzIHRoZQorYXNzb2NpYXRlZCBpcC1hZGRyZXNzICh3aGljaCBpcyBhbHNvIGJpbmFyeS1hbmQtZWQgd2l0aCB0aGUKK21hc2spLiAgTmV0bWFza3MgbXVzdCBiZSBhIHNpbmdsZSBncm91cCBvZiAxLWJpdHMsIHN0YXJ0aW5nCit3aXRoIGEgMS1iaXQuICAgRXhhbXBsZXMgYXJlIDI1NS4yNTUuMjU1LjAgYW5kIDI1NS4yNTUuMjU1LjEyOApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHlwZXMvb2JqLXR5cGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9vYmotdHlwZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40YjU4MGMwCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHlwZXMvb2JqLXR5cGUKQEAgLTAsMCArMSBAQAorQW4gZXhpc3Rpbmcgb2JqZWN0IGZvciB0aGUgYXNzb2NpYXRlZCBjb21tYW5kCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9yZXNvbHZhYmxlLWlwLWFkZHJlc3MgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy90eXBlcy9yZXNvbHZhYmxlLWlwLWFkZHJlc3MKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjI5NjU5NAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL3Jlc29sdmFibGUtaXAtYWRkcmVzcwpAQCAtMCwwICsxLDQgQEAKK0EgZG90dGVkLXF1YXQgaXAgYWRkcmVzcyAoMTkyLjE2OC4yLjEyOSksIG9yIGEgZG9tYWluIG5hbWUgCisobG9jYWxob3N0LCBleGFtcGxlLmNvbSksIHdoaWNoIGNhbiBiZSByZXNvbHZlZCBtYXkgYmUKK2luY2x1ZGVkIGhlcmUuICBBZGRpdGlvbmFsbHksIHN3aXRjaCBhbGlhcyBvciBkcGlkcyBtYXkgYWxzbyBiZSBpbmNsdWRlZCAKK2lmIHRoZXkncmUgY3VycmVudGx5IGFjdGl2ZSAoYW4gaXAgYWRkcmVzcyBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIHN3aXRjaCkKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL3N0cmluZyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3R5cGVzL3N0cmluZwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42Y2FiYTJmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdHlwZXMvc3RyaW5nCkBAIC0wLDAgKzEsNSBAQAorQSBjb2xsZWN0aW9uIG9mIGNoYXJhY3RlcnMgY2FuIGJlIHVzZWQgaGVyZSwgaWYgYW55CitzcGVjaWFsIGNoYXJhY3RlcnMsIHNwYWNlIG9yIHF1b3RlcyBhcmUgaW5jbHVkZWQsCit0aGUgc3RyaW5nIG11c3QgdGhlIGVuY2xvc2VkIGluIGVpdGhlciBzaW5nbGUgKCcpIG9yCitkb3VibGUgcXVvdGVzICgiKS4gICBTdHJpbmdzIGxlbmd0aCdzIGFyZSBib3VuZAorZGVwZW5kaW5nIG9uIHRoZSBzcGVjaWZpYyBpdGVtLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2FjdGl2ZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9hY3RpdmUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMThmMjcwYQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9hY3RpdmUKQEAgLTAsMCArMSwyIEBACitTZXQgdGhlIFZOUyBhY3RpdmUuIElmIGEgVk5TIGlzIGluYWN0aXZlIHRoZSBjb250cm9sbGVyIHdpbGwgbm90IHVzZSBpdAorb3IgaXRzIHJ1bGVzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2FjdGl2ZS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2FjdGl2ZS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFlNWVkNGIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYWN0aXZlLWV4YW1wbGUKQEAgLTAsMCArMSw1IEBACithY3RpdmUKKyAgQWN0aXZhdGUgdGhpcyBWTlMgaW5zdGFuY2UKKworbm8gYWN0aXZlCisgIERlYWN0aXZhdGUgdGhpcyBWTlMgaW5zdGFuY2UKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9hcHItbW9kZS12YWx1ZS1kcm9wLWlmLXVua25vd24gYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYXByLW1vZGUtdmFsdWUtZHJvcC1pZi11bmtub3duCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM3NWUzMDEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYXByLW1vZGUtdmFsdWUtZHJvcC1pZi11bmtub3duCkBAIC0wLDAgKzEgQEAKK0Ryb3AgQVJQIHBhY2tldHMgaWYgdGhlIGRlc3RpbmF0aW9uIGlzIHVua25vd24uCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYXJwLW1vZGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYXJwLW1vZGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTVlZmI2OAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9hcnAtbW9kZQpAQCAtMCwwICsxIEBACitDb25maWd1cmUgdGhlIEFSUCBiZWhhdmlvciBmb3IgdGhpcyBWTlMgaW5zdGFuY2UuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2FycC1tb2RlLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYXJwLW1vZGUtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wYThhYmZiCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2FycC1tb2RlLWV4YW1wbGUKQEAgLTAsMCArMSw4IEBACithcnAtbW9kZSBhbHdheXMtZmxvb2QKKyAgRG8gbm90IG1hbmFnZSBBUlAgcGFja2V0cywganVzdCBmbG9vZCB0aGVtIG9uIGFsbCBpbnRlcmZhY2VzCisKK2FycC1tb2RlIGZsb29kLWlmLXVua25vd24KKyAgT25seSBmbG9vZCBBUlAgcGFja2V0cyBmb3IgdW5rbm93biBkZXN0aW5hdGlvbnMKKworYXJwLW1vZGUgZHJvcC1pZi11bmtub3duCisgIERyb3AgQVJQIHBhY2tldHMgZnJvbSB1bmtub3duIGRlc3RpbmF0aW9ucwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2FycC1tb2RlLXZhbHVlLWFsd2F5cy1mbG9vZCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9hcnAtbW9kZS12YWx1ZS1hbHdheXMtZmxvb2QKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmVmYTM3NAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9hcnAtbW9kZS12YWx1ZS1hbHdheXMtZmxvb2QKQEAgLTAsMCArMSwyIEBACitBbHdheXMgZmxvb2QgQVJQIHBhY2tldHMgb24gYWxsIHN3aXRjaCBpbnRlcmZhY2VzLiBObyBhY3RpdmUgbWFuYWdtZW50CitvZiBBUlAsIHdpbGwgbGVhayBwYWNrZXRzIGFjcm9zcyBWTlMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYXJwLW1vZGUtdmFsdWUtZHJvcC1pZi11bmtub3duIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2FycC1tb2RlLXZhbHVlLWRyb3AtaWYtdW5rbm93bgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMzJlZWIwCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2FycC1tb2RlLXZhbHVlLWRyb3AtaWYtdW5rbm93bgpAQCAtMCwwICsxIEBACitEcm9wIEFSUCBwYWNrZXRzIGlmIHRoZSBob3N0IGlzIHVua25vd24KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9hcnAtbW9kZS12YWx1ZS1mbG9vZC1pZi11bmtub3duIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2FycC1tb2RlLXZhbHVlLWZsb29kLWlmLXVua25vd24KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODI1NTU0MAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9hcnAtbW9kZS12YWx1ZS1mbG9vZC1pZi11bmtub3duCkBAIC0wLDAgKzEsMiBAQAorRmxvb2QgQVJQIHBhY2tldHMgaWYgdGhlIGRlc3RpbmF0aW9uIGlzIHVua25vd24uIE1pZ2h0IGxlYWsgcGFja2V0cworYWNyb3NzIFZOUy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9icm9hZGNhc3QgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYnJvYWRjYXN0Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjgyZGMzOTkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYnJvYWRjYXN0CkBAIC0wLDAgKzEgQEAKK0NvbmZpZ3VyZSBicm9hZGNhc3QgY2hhcmFjdGVyaXN0aWNzIG9mIHRoZSBWTlMgaW5zdGFuY2UuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYnJvYWRjYXN0LWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYnJvYWRjYXN0LWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNTFlNDAzNgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9icm9hZGNhc3QtZXhhbXBsZQpAQCAtMCwwICsxLDkgQEAKK2Jyb2FkY2FzdCBhbHdheXMtZmxvb2QKKyAgTWlzY2VsbGFuZWlvdXMgYnJvYWRjYXN0IHBhY2tldHMgYXJlIHNlbnQgb24gYWxsIGludGVyZmFjZXMKKworYnJvYWRjYXN0IGZvcndhcmQtdG8ta25vd24KKyAgTWlzY2VsbGFuZW91cyBicm9hZGNhc3QgcGFja2V0cyBhcmUgZm9yd2FyZGVkIG9ubHkgdG8ga25vd24gaG9zdHMKKworYnJvYWRjYXN0IGRyb3AKKyAgTWlzY2VsbGFuZW91cyBicm9hZGNhc3QgcGFja2V0cyBhcmUgZHJvcHBlZAorCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYnJvYWRjYXN0LXZhbHVlLWFsd2F5cy1mbG9vZCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9icm9hZGNhc3QtdmFsdWUtYWx3YXlzLWZsb29kCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFmMjNjM2UKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvYnJvYWRjYXN0LXZhbHVlLWFsd2F5cy1mbG9vZApAQCAtMCwwICsxLDIgQEAKK0Fsd2F5cyBmbG9vZCBhbGwgbm9uLUFSUCwgbm9uLURIQ1AgYnJvYWRjYXN0IHBhY2tldHMgb24gYWxsIHN3aXRjaAoraW50ZXJmYWNlcy4gV2lsbCBsZWFrIHBhY2tldHMgYWNyb3NzIFZOUy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9icm9hZGNhc3QtdmFsdWUtZHJvcCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9icm9hZGNhc3QtdmFsdWUtZHJvcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5mMzRiMzhlCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2Jyb2FkY2FzdC12YWx1ZS1kcm9wCkBAIC0wLDAgKzEgQEAKK0Ryb3AgYWxsIG5vbi1BUlAsIG5vbi1ESENQIGJyb2FkY2FzdCBwYWNrZXRzLiAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9icm9hZGNhc3QtdmFsdWUtZm9yd2FyZC10by1rbm93biBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9icm9hZGNhc3QtdmFsdWUtZm9yd2FyZC10by1rbm93bgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zODIwM2I1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2Jyb2FkY2FzdC12YWx1ZS1mb3J3YXJkLXRvLWtub3duCkBAIC0wLDAgKzEsMiBAQAorRm9yd2FyZCBhbGwgbm9uLUFSUCwgbm9uLURIQ1AgYnJvYWRjYXN0IHBhY2tldHMgdG8gYWxsIGtub3duIGhvc3RzIGluCit0aGlzIFZOUy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kZXNjcmlwdGlvbiBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kZXNjcmlwdGlvbgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kYzExZTMxCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2Rlc2NyaXB0aW9uCkBAIC0wLDAgKzEgQEAKK1dpdGhpbiBhIFZOUyBkZWZpbml0aW9uIHN1Yi1tb2RlLCBkZWNsYXJlIGEgZnJpZW5kbHkgZGVzY3JpcHRvciBmb3IgdGhlIFZOUyBpbnN0YW5jZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kZXNjcmlwdGlvbi1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2Rlc2NyaXB0aW9uLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmRlMTRhYQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kZXNjcmlwdGlvbi1leGFtcGxlCkBAIC0wLDAgKzEsMiBAQAorZGVzY3JpcHRpb24gInRoaXMgaXMgbXkgZmlyc3QgVk5TIGluc3RhbmNlIgorICBBZGQgYSB0ZXh0dWFsIGRlc2NyaXB0aW9uIHRvIGEgVk5TCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvZGhjcC1pcCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kaGNwLWlwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI2M2Y3MjMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvZGhjcC1pcApAQCAtMCwwICsxIEBACitTcGVjaWZ5IHRoZSBJUCBhZGRyZXNzIG9mIHRoZSBsb2NhbCBESENQIHNlcnZlciBvciBsb2NhbCBESENQIHJlbGF5LiBVc2VkIGJ5IGRoY3AtbW9kZSAnc3RhdGljJy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kaGNwLWlwLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvZGhjcC1pcC1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU0Mjk3YTEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvZGhjcC1pcC1leGFtcGxlCkBAIC0wLDAgKzEsMiBAQAorZGhjcC1pcCAxLjIuMy40CisgIEluIHN0YXRpYyBESENQIG1vZGUsIGNvbmZpZ3VyZSB0aGUgbG9jYWwgREhDUCBzZXJ2ZXIgb3IgcmVsYXkgYWRkcmVzcyAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kaGNwLW1vZGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvZGhjcC1tb2RlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM3ZDg1YzUKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvZGhjcC1tb2RlCkBAIC0wLDAgKzEgQEAKK0NvbmZpZ3VyZSBWTlMgaGFuZGxpbmcgb2YgREhDUCBicm9hZGNhc3QgcGFja2V0cy4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvZGhjcC1tb2RlLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvZGhjcC1tb2RlLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTBkYzNkNQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kaGNwLW1vZGUtZXhhbXBsZQpAQCAtMCwwICsxLDggQEAKK2RoY3AtbW9kZSBzdGF0aWMKKyAgVk5TIHdpbGwgZm9yd2FyZCBESENQIHRyYWZmaWMgdG8gYSBzaW5nbGUga25vd24gaG9zdAorCitkaGNwLW1vZGUgZmxvb2QtaWYtdW5rbm93bgorICBGbG9vZCBESENQIHBhY2tldHMgaWYgdGhlIHNlcnZlciBpcyBub3Qga25vd24KKworZGhjcC1tb2RlIGFsd2F5cy1mbG9vZAorICBEbyBub3QgbWFuYWdlIERIQ1AgdHJhZmZpY2UKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kaGNwLXZhbHVlLWFsd2F5cy1mbG9vZCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kaGNwLXZhbHVlLWFsd2F5cy1mbG9vZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNWMzYmU2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2RoY3AtdmFsdWUtYWx3YXlzLWZsb29kCkBAIC0wLDAgKzEgQEAKK0Fsd2F5cyBmbG9vZCBhbGwgREhDUCBwYWNrZXRzLiBXaWxsIGxlYWsgcGFja2V0cyBhY3Jvc3MgVk5TLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2RoY3AtdmFsdWUtZmxvb2QtaWYtdW5rbm93biBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kaGNwLXZhbHVlLWZsb29kLWlmLXVua25vd24KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDg4N2ViYwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kaGNwLXZhbHVlLWZsb29kLWlmLXVua25vd24KQEAgLTAsMCArMSwyIEBACitGbG9vZCBESENQIHBhY2tldHMgaWYgdGhlIERIQ1Agc2VydmVyIGxvY2F0aW9uIGlzIHVua25vd24uIERIQ1Agc2VydmVyCitsb2NhdGlvbiB3aWxsIGJlIGRpc2NvdmVyZWQuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvZGhjcC12YWx1ZS1zdGF0aWMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvZGhjcC12YWx1ZS1zdGF0aWMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjdlZTExMQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9kaGNwLXZhbHVlLXN0YXRpYwpAQCAtMCwwICsxIEBACitGb3J3YXJkIERIQ1AgcGFja2V0cyB0byB0aGUgY29uZmlndXJlZCBsb2NhbCBESENQIHNlcnZlciBvciBsb2NhbCBESENQIHJlbGF5LgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2dhdGV3YXktcG9vbCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9nYXRld2F5LXBvb2wKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDJjNWFhOQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9nYXRld2F5LXBvb2wKQEAgLTAsMCArMSBAQAorZ2F0ZXdheSBwb29sIG5hbWUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2Utcm91dGVyLWNvbm5lY3RlZCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2Utcm91dGVyLWNvbm5lY3RlZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45ZDU4YTE0Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1yb3V0ZXItY29ubmVjdGVkCkBAIC0wLDAgKzEgQEAKK3RoZSAndGVuYW50JyBrZXl3b3JkIHNwZWNpZmllcyB0aGUgbmFtZWQgdmlydHVhbCByb3V0ZXIgaW50ZXJmYWNlIGNvbm5lY3RzIHRvIGFub3RoZXIgdGVuYW50IHZpcnR1YWwgcm91dGVyLgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi44ZTNlYmNiCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlCkBAIC0wLDAgKzEsMiBAQAorU2V0IGEgVk5TIGludGVyZmFjZSBydWxlIGFuZCBlbnRlciBzdWJtb2RlLiBEZXZpY2VzIGFyZQorYXNzaWduZWQgaW50byBWTlMgYmFzZWQgb24gaW50ZXJmYWNlLXJ1bGVzLiAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1hY3RpdmUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtYWN0aXZlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjdjN2Y1OTQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtYWN0aXZlCkBAIC0wLDAgKzEgQEAKK01hcmsgdGhlIHJ1bGUgYXMgYWN0aXZlLiBPbmx5IGFjdGl2ZSBydWxlcyB3aWxsIGJlIG1hdGNoZWQuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtYWN0aXZlLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtYWN0aXZlLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDNmODljMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1hY3RpdmUtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK2FjdGl2ZQorICBNYXJrIHRoaXMgaW50ZXJmYWNlIHJ1bGUgYXMgYWN0aXZlCisKK25vIGFjdGl2ZQorICBNYXJrIHRoaXMgaW50ZXJmYWNlIHJ1bGUgYXMgaW5hY3RpdmUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1hbGxvdy1tdWx0aXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1hbGxvdy1tdWx0aXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMTU1N2E5Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLWFsbG93LW11bHRpcGxlCkBAIC0wLDAgKzEsMiBAQAorSWYgYWxsb3ctbXVsdGlwbGUgaXMgc2V0IGRldmljZXMgbWF0Y2hpbmcgdGhpcyBydWxlIGFyZSBhbGxvd2VkIHRvIGJlIGluCittdWx0aXBsZSBWTlMgYXQgdGhlIHNhbWUgdGltZS4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1hbGxvdy1tdWx0aXBsZS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLWFsbG93LW11bHRpcGxlLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmRjNGFiMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1hbGxvdy1tdWx0aXBsZS1leGFtcGxlCkBAIC0wLDAgKzEsNiBAQAorYWxsb3ctbXVsdGlwbGUKKyAgRGV2aWNlcyBtYXRjaGluZyB0aGlzIHJ1bGUgY2FuIGJlIGluIG1vcmUgdGhhbiBvbmUgVk5TCisKK25vIGFsbG93LW11bHRpcGxlCisgIERldmljZXMgbWF0Y2hpbmcgdGhpcyBydWxlIGNhbiBiZSBpbiBhIHNpbmdsZSBWTlMKKwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLWRlc2NyaXB0aW9uIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLWRlc2NyaXB0aW9uCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllNWM5ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtZGVzY3JpcHRpb24KQEAgLTAsMCArMSBAQAorQSB1c2VyIHByb3ZpZGVkIHRleHR1YWwgZGVzY3JpcHRpb24gZm9yIHRoaXMgaW50ZXJmYWNlLXJ1bGUuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtZGVzY3JpcHRpb24tZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1kZXNjcmlwdGlvbi1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjM4YmMzMDgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtZGVzY3JpcHRpb24tZXhhbXBsZQpAQCAtMCwwICsxLDIgQEAKK2Rlc2NyaXB0aW9uICJUaGlzIGlzIG15IGZpcnN0IFZOUyBpbnRlcmZhY2UgcnVsZSIKKyAgRGVzY3JpYmUgYSBWTlMgaW50ZXJmYWNlIHJ1bGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDFmZjI2YgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAoraW50ZXJmYWNlLXJ1bGUgbXktcnVsZS0xCisgIERlZmluZSBhIG5ldyBpbnRlcmZhY2UgcnVsZSwgYW5kIGVudGVyIGl0cyBjb25maWd1cmF0aW9uIHN1Yi1tb2RlCisKK25vIGludGVyZmFjZS1ydWxlIG15LXJ1bGUtMQorICBEZWxldGUgYW4gaW50ZXJmYWNlIHJ1bGUgYnkgbmFtZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLWlwLXN1Ym5ldCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC1pcC1zdWJuZXQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYzc2ZDhjNwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC1pcC1zdWJuZXQKQEAgLTAsMCArMSBAQAorQXNzb2NpYXRlIGFuIElQIGFkZHJlc3Mgb3IgSVAgc3VibmV0IHdpdGggaW50ZXJmYWNlLXJ1bGUuIApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLWlwLXN1Ym5ldC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLWlwLXN1Ym5ldC1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjMyNjYxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtbWF0Y2gtaXAtc3VibmV0LWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACittYXRjaCBpcC1zdWJuZXQgMTAuMTAuMTAuMTAKK21hdGNoIGlwLXN1Ym5ldCAxMC40Mi4xMC4wLzI0CmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtbWF0Y2gtbWFjIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLW1hYwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MTljNzFlCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLW1hYwpAQCAtMCwwICsxIEBACitBc3NvY2lhdGUgTUFDIGFkZHJlc3MgKGhvc3QpIHdpdGggaW50ZXJmYWNlLXJ1bGUuIApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLW1hYy1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLW1hYy1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI1ZDZmNTkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtbWF0Y2gtbWFjLWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACittYXRjaCBtYWMgMDA6MDA6MDA6MDA6MDA6MDEKKyAgTWF0Y2ggYSBzcGVjaWZpYyBNQUMgYWRkcmVzcwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLXN3aXRjaCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC1zd2l0Y2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMWEwZjAwOQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC1zd2l0Y2gKQEAgLTAsMCArMSwyIEBACitBc3NvY2lhdGUgYSBzd2l0Y2ggb3Igc2V0IG9mIHN3aXRjaCBpbnRlcmZhY2VzIHdpdGggdGhpcyBpbnRlcmZhY2UtcnVsZS4KK0hvc3RzIHByZXNlbnQgb24gdGhlIHNwZWNpZmllZCBzd2l0Y2gvaW50ZXJmYWNlcyB3aWxsIGJlIG1hdGNoZWQuIApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLXN3aXRjaC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLXN3aXRjaC1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE1NzZmMTMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtbWF0Y2gtc3dpdGNoLWV4YW1wbGUKQEAgLTAsMCArMSw5IEBACittYXRjaCBzd2l0Y2ggMDA6MDA6MTE6MjI6MzM6NDQ6NTU6NjYKKyAgICBNYXRjaGVzIGFsbCBpbnRlcmZhY2VzIG9uIHRoZSBzd2l0Y2ggd2l0aCB0aGlzIERQSUQuCittYXRjaCBzd2l0Y2ggMDA6MDA6MTE6MjI6MzM6NDQ6NTU6NjYgRXRoZXJuZXQxCisgICAgTWF0Y2hlcyBpbnRlcmZhY2UgRXRoZXJuZXQxIG9uIHRoZSBzcGVjaWZpZWQgc3dpdGNoLgorbWF0Y2ggc3dpdGNoIDAwOjAwOjExOjIyOjMzOjQ0OjU1OjY2IEV0aGVybmV0MSxFdGhlcm5ldDUtMTAscG9ydDIKKyAgICBNYXRjaGVzIGludGVyZmFjZXMgRXRoZXJuZXQxLCBFdGhlcm5ldDUsIEV0aGVybmV0NiwgLi4uIEV0aGVybmV0MTAsCisJYW5kIHBvcnQyIG9uIHRoZSBzcGVjaWZpZWQgc3dpdGNoLgorbWF0Y2ggc3dpdGNoIFRvUi0xLTEgCisgICAgTWF0Y2hlcyB0aGUgc3dpdGNoIHdpdGggdGhlIGFsaWFzICdUb1ItMS0xJwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLXRhZyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC10YWcKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMDhlNjQ5NgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC10YWcKQEAgLTAsMCArMSwyIEBACitBc3NvY2lhdGUgYSB0YWcgb3IgbGlzdCBvZiB0YWdzIHdpdGggdGhpcyBpbnRlcmZhY2UtcnVsZS4gSWYgYSBsaXN0IG9mCit0YWdzIGlzIGdpdmVuICphbGwqIHRhZ3MgbmVlZCB0byBtYXRjaC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC10YWctZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC10YWctZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZTM5N2Y4Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLXRhZy1leGFtcGxlCkBAIC0wLDAgKzEsNCBAQAorbWF0Y2ggdGFncyBvcmcuc2RucGxhdGZvcm0udGVuYW50PUN1c3RvbWVyQQorICAgIE1hdGNoZXMgZGV2aWNlcyB0aGF0IG1hdGNoIHRoZSBnaXZlbiB0YWcuCittYXRjaCB0YWdzIG9yZy5zZG5wbGF0Zm9ybS50ZW5hbnQ9Q3VzdG9tZXJBLGNvbS5leGFtcGxlLnR5cGU9cm91dGVyCisgICAgTWF0Y2hlcyBkZXZpY2VzIHRoYXQgbWF0Y2ggKmFsbCogb2YgdGhlIGdpdmVuIHRhZ3MuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtbWF0Y2gtdmxhbnMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtbWF0Y2gtdmxhbnMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uY2VhMjU0NAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1tYXRjaC12bGFucwpAQCAtMCwwICsxIEBACitBc3NvY2lhdGUgYSB2bGFuIChvciBsaXN0IG9yIHJhbmdlKSB3aXRoIHRoaXMgaW50ZXJmYWNlIHJ1bGUuClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLXZsYW5zLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtbWF0Y2gtdmxhbnMtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iY2JhY2NlCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLW1hdGNoLXZsYW5zLWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACittYXRjaCB2bGFucyA0MgorICBNYXRjaCBwYWNrZXRzIGluIFZMQU4gNDIKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1wcmlvcml0eSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9pbnRlcmZhY2UtcnVsZS1wcmlvcml0eQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MDVkZmZkCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLXByaW9yaXR5CkBAIC0wLDAgKzEsMyBAQAorVGhlIHByaW9yaXR5IG9mIHRoaXMgaW50ZXJmYWNlLXJ1bGUuIEhpZ2hlciBudW1lcmljIHZhbHVlcyByZXByZXNlbnQKK2hpZ2hlciBwcmlvcml0eS4gVGhlIGhpZ2hlc3QgcHJpb3JpdHkgaW50ZXJmYWNlLXJ1bGUgdGhhdCBtYXRjaGVzIGEKK2dpdmVuIHBhY2tldCB3aWxsIGJlIGNob29zZW4uIApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLXByaW9yaXR5LWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXJ1bGUtcHJpb3JpdHktZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hOGJlNWYwCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS1ydWxlLXByaW9yaXR5LWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACitwcmlvcml0eSAxMDAKKyAgQXNzaWduIGEgcHJpb3JpdHkgdG8gdGhpcyBpbnRlcmZhY2UgcnVsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS12bnMtY29ubmVjdGVkIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL2ludGVyZmFjZS12bnMtY29ubmVjdGVkCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjU4MmE5YjQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvaW50ZXJmYWNlLXZucy1jb25uZWN0ZWQKQEAgLTAsMCArMSBAQAordGhlICd2bnMnIGtleXdvcmQgc3BlY2lmaWVzIHRoZSBuYW1lZCB2aXJ0dWFsIHJvdXRlciBpbnRlcmZhY2UgY29ubmVjdHMgdG8gYSBWTlMgd2l0aGluIHRoZSBzYW1lIHRlbmFudCBzY29wZS4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvbWF0Y2ggYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvbWF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmNhYmM4YwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9tYXRjaApAQCAtMCwwICsxLDIgQEAKK0NvbmZpZ3VyZSBhIG1hdGNoIGZvciB0aGlzIGludGVyZmFjZSBydWxlLiBJZiBtdWx0aXBsZSBtYXRjaGVzIGFyZQorY29uZmlndXJlZCB0aGV5IHdpbGwgYmUgbG9naWNhbGx5IEFORCdlZC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9vcmlnaW4gYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvb3JpZ2luCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQyODA3NDIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvb3JpZ2luCkBAIC0wLDAgKzEgQEAKK0Rlc2NyaWJlIHRoZSBvcmlnaW4gb2YgdGhpcyBWTlMgaW5zdGFuY2UKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9vcmlnaW4tZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9vcmlnaW4tZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YTM2OGY2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL29yaWdpbi1leGFtcGxlCkBAIC0wLDAgKzEsMiBAQAorb3JpZ2luIHJlc3QKKyAgTm90ZSB0aGF0IHRoaXMgVk5TIGluc3RhbmNlIHdhcyBjb25maWd1cmVkIHZpYSBSRVNUCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvb3V0Z29pbmctaW50ZXJmYWNlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL291dGdvaW5nLWludGVyZmFjZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43MWJjNTQzCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL291dGdvaW5nLWludGVyZmFjZQpAQCAtMCwwICsxIEBACitvdXRnb2luZyBpbnRlcmZhY2UgbmFtZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9wcmlvcml0eSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9wcmlvcml0eQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZmUyNzliCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3ByaW9yaXR5CkBAIC0wLDAgKzEgQEAKK0Fzc2lnbiBhIHByaW9yaXR5IHRvIHRoaXMgVk5TIGluc3RhbmNlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3ByaW9yaXR5LWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvcHJpb3JpdHktZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5iMmE1MDViCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3ByaW9yaXR5LWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACitwcmlvcml0eSAxMDAKKyAgV2l0aGluIGEgdm5zIGRlZmluaXRpb24sIGFzc2lnbiBhIHNwZWNpZmljIHByaW9yaXR5IHRvIHRoaXMgaW5zdGFuY2UKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LWlkIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctaWQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTZlYmMzOQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LWlkCkBAIC0wLDAgKzEsMyBAQAorVGhpcyAnc2hvdyB2bnMgPGlkPicgY29tbWFuZCB2YXJpYXRpb24gaXMgdXNlZCB0byBpZGVudGlmeSBhIHNwZWNpZmljIHZucyBvciBWTlNzIGRlZmluZWQgdW5kZXIgY3VycmVudCB0ZW5hbnQgbW9kZS4KK1RoaXMgJ3Nob3cgdm5zIGFsbCcgIGNvbW1hbmQgdmFyaWF0aW9uIGlzIHVzZWQgdG8gZGlzcGxheSBhbGwgVk5TcyBkZWZpbmVkIGFjcm9zcyBhbGwgdGVuYW50cy4KK0JlaW5nIGJhY2t3YXJkIGNvbXBhdGlibGUsICdzaG93IHZucycgY29tbWFuZCB1bmRlciBub24gY29uZmlnLXRlbmFudCBtb2RlIGlzIGFsc28gYWNjZXB0ZWQgYW5kIGRpc3BsYXlzIHRoZSBWTlNzIGZvciBkZWZhdWx0IHRlbmFudCBvbmx5LgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctaWQtYWNjZXNzLWxpc3RzIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctaWQtYWNjZXNzLWxpc3RzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYxZDUxM2MKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy1pZC1hY2Nlc3MtbGlzdHMKQEAgLTAsMCArMSw1IEBACitUaGUgJ2FjY2Vzcy1saXN0JyBrZXl3b3JkIHJlcXVlc3RzIGRpc3BsYXkgb2YgdGhlIAorY29uZmlndXJlZCBhY2Nlc3MtbGlzdHMgYXNzb2NpYXRlZCB3aXRoIHRoZSB2bnMuCitUaGUgb3V0cHV0IGluY2x1ZGVzIG5vdCBvbmx5IHRoZSBhY2Nlc3MtbGlzdCwgYnV0CithIGJyaWVmIGRlc2NyaXBpb24gb2YgdGhlIGFjbCBydWxlcyBhc3NvY2lhdGVkIHdpdGgKK3RoZSBhY2Nlc3MtbGlzdC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LWlkLWZsb3cgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy1pZC1mbG93Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmU1YmFhNzYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy1pZC1mbG93CkBAIC0wLDAgKzEsMyBAQAorVGhlICdmbG93JyBrZXl3b3JkIHJlcXVlc3RzIHRoZSBkaXNwbGF5IG9mIGFsbCBvcGVuZmxvdworZmxvdy1tYXRjaCBlbnRyaWVzIGluc2VydGVkIGludG8gdmFyaW91cyBzd2l0Y2hlcyB0bworaW1wbGVtZW50IHRoZSB2bnMgaXNvbGF0aW9uLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctaWQtaW50ZXJmYWNlLXJ1bGVzIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctaWQtaW50ZXJmYWNlLXJ1bGVzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjJjOGM2YjgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy1pZC1pbnRlcmZhY2UtcnVsZXMKQEAgLTAsMCArMSw0IEBACitUaGUgJ2ludGVyZmFjZS1ydWxlcycga2V5d29yZCByZXF1ZXN0cyB0aGUgZGlzcGxheSBvZgordGhlIGNvbmZpZ3VyZWQgaW50ZXJmYWNlLXJ1bGVzIGZvciB0aGUgbmFtZWQgdm5zLiAgVGhlCit2bnMgaW50ZXJmYWNlLXJ1bGVzIGRlc2NyaWJlIHRoZSBtZW1iZXJzaGlwIHJ1bGVzIAorYXNzb2NpYXRlZCB3aXRoIGEgdm5zLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmRjZjYyOGYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy10ZW5hbnQKQEAgLTAsMCArMSwyIEBACitUaGlzICdzaG93IHRlbmFudCA8dGVuYW50LW5hbWU+JyBjb21tYW5kIGlzIHVzZWQgdG8gaWRlbnRpZnkgYSBzcGVjaWZpYyB0ZW5hbnQsIHRvIGRlc2NyaWJlIHBhcnRpY3VsYXIgY29uZmlndXJlZCBkZXRhaWxzLgorJ3Nob3cgdGVuYW50JyBjb21tYW5kIHByb3ZpZGVzIGRpc3BsYXkgZm9yIGV2ZXJ5IGRlZmluZWQgdGVuYW50LiAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy10ZW5hbnQtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LXRlbmFudC1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmYyZmExZjMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy10ZW5hbnQtZXhhbXBsZQpAQCAtMCwwICsxLDIxIEBACitsb2NhbGhvc3QjIHNob3cgdGVuYW50IGFsbAorCisJIyBUZW5hbnQgSUQgQWN0aXZlIERlc2NyaXB0aW9uIFJvdXRlciBJRAorCisJLXwtLS0tLS0tLS18LS0tLS0tfC0tLS0tLS0tLS0tfC0tLS0tLS0tLQorCisJMSBBICAgICAgICAgVHJ1ZSAgICAgICAgICAgICAgIHZyQQorCisJMiBkZWZhdWx0ICAgVHJ1ZQorCisJMyByZWQgICAgICAgVHJ1ZQorCisJNCBzeXN0ZW0gICAgVHJ1ZSAgICAgICAgICAgICAgIHZyc3lzdGVtCisKK2xvY2FsaG9zdCMgc2hvdyB0ZW5hbnQgQQorCisJIyBUZW5hbnQgSUQgQWN0aXZlIERlc2NyaXB0aW9uIFJvdXRlciBJRAorCisJLXwtLS0tLS0tLS18LS0tLS0tfC0tLS0tLS0tLS0tfC0tLS0tLS0tLQorCisxIEEgICAgICAgICBUcnVlICAgICAgICAgICAgICAgdnJBCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy10ZW5hbnQtaWQtcm91dGVyIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50LWlkLXJvdXRlcgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yYzc2NDAzCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50LWlkLXJvdXRlcgpAQCAtMCwwICsxLDIgQEAKK1RoZSAncm91dGVyJyBrZXl3b3JkIHJlcXVlc3RzIHRoZSBkaXNwbGF5IG9mCit0aGUgY29uZmlndXJlZCB2aXJ0dWFsIHJvdXRlciBmb3IgdGhlIG5hbWVkIG9yIGN1cnJlbnQgdGVuYW50LiAgClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50LWlkLXJvdXRlci1nd2lwcG9vbCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LXRlbmFudC1pZC1yb3V0ZXItZ3dpcHBvb2wKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjRlODRhZgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LXRlbmFudC1pZC1yb3V0ZXItZ3dpcHBvb2wKQEAgLTAsMCArMSwzIEBACitUaGUgJ2d3LWFkZHJlc3MtcG9vbCcga2V5d29yZCByZXF1ZXN0cyB0aGUgZGlzcGxheSBvZgordGhlIGNvbmZpZ3VyZWQgZ2F0ZXdheSBpcCBhZGRyZXNzZXMgZm9yIGFsbCB0aGUgZ2F0ZXdheSBwb29scyBvZiB0aGUgbmFtZWQgdmlydHVhbCByb3V0ZXIuICAKKwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50LWlkLXJvdXRlci1nd3Bvb2xzIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50LWlkLXJvdXRlci1nd3Bvb2xzCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjEwNWU4N2IKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy10ZW5hbnQtaWQtcm91dGVyLWd3cG9vbHMKQEAgLTAsMCArMSwyIEBACitUaGUgJ2dhdGV3YXktcG9vbHMnIGtleXdvcmQgcmVxdWVzdHMgdGhlIGRpc3BsYXkgb2YKK3RoZSBjb25maWd1cmVkIG5leHQgaG9wIGdhdGV3YXkgcG9vbHMgZm9yIHRoZSBuYW1lZCB2aXJ0dWFsIHJvdXRlci4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LXRlbmFudC1pZC1yb3V0ZXItaW50ZXJmYWNlcyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LXRlbmFudC1pZC1yb3V0ZXItaW50ZXJmYWNlcwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNGE1YmFmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50LWlkLXJvdXRlci1pbnRlcmZhY2VzCkBAIC0wLDAgKzEsMiBAQAorVGhlICdpbnRlcmZhY2VzJyBrZXl3b3JkIHJlcXVlc3RzIHRoZSBkaXNwbGF5IG9mCit0aGUgY29uZmlndXJlZCBpbnRlcmZhY2VzIGZvciB0aGUgbmFtZWQgdmlydHVhbCByb3V0ZXIuIApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50LWlkLXJvdXRlci1pcHBvb2wgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy10ZW5hbnQtaWQtcm91dGVyLWlwcG9vbApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMGE0NGFiCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Nob3ctdGVuYW50LWlkLXJvdXRlci1pcHBvb2wKQEAgLTAsMCArMSwyIEBACitUaGUgJ2lwLWFkZHJlc3MtcG9vbCcga2V5d29yZCByZXF1ZXN0cyB0aGUgZGlzcGxheSBvZgordGhlIGNvbmZpZ3VyZWQgaXAgYWRkcmVzcy9zdWJuZXQgZm9yIGFsbCB0aGUgaW50ZXJmYWNlcyBvZiB0aGUgbmFtZWQgdmlydHVhbCByb3V0ZXIuICAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LXRlbmFudC1pZC1yb3V0ZXItcm91dGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy10ZW5hbnQtaWQtcm91dGVyLXJvdXRlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI3ZjNlZjEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy10ZW5hbnQtaWQtcm91dGVyLXJvdXRlCkBAIC0wLDAgKzEsMiBAQAorVGhlICdyb3V0ZScga2V5d29yZCByZXF1ZXN0cyB0aGUgZGlzcGxheSBvZgordGhlIGNvbmZpZ3VyZWQgcm91dGluZyBydWxlIGZvciB0aGUgbmFtZWQgdmlydHVhbCByb3V0ZXIuIApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy9zaG93LXRlbmFudC1pZC12bnMgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy10ZW5hbnQtaWQtdm5zCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE2MmM4ZjIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc2hvdy10ZW5hbnQtaWQtdm5zCkBAIC0wLDAgKzEsMiBAQAorVGhlICd2bnMnIGtleXdvcmQgcmVxdWVzdHMgdGhlIGRpc3BsYXkgb2YKK3RoZSBjb25maWd1cmVkIHZuc3MgZm9yIHRoZSBuYW1lZCB0ZW5hbnQuICAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvc3JjLWlwIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3NyYy1pcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43YjkwYjRiCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3NyYy1pcApAQCAtMCwwICsxIEBACitBbiBJUCBhZGRyZXNzIGluIGRvdHRlZCBkZWNpbWFsIG5vdGF0aW9uLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDc2NzJlNgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQKQEAgLTAsMCArMSwxMSBAQAorVGhpcyBzdWJtb2RlIGlzIHVzZWQgdG8gY3JlYXRlIGEgbmFtZWQgdGVuYW50LiBXaXRoaW4gdGhpcyBzdWJtb2RlLCBwcm9wZXJ0aWVzIG9mCit0aGUgdGVuYW50IGNhbiBiZSBjb25maWd1cmVkLiBWTlMgYXJlIGNvbmZpZ3VyZWQgYW5kIG1hbmFnZWQsIHdoaWNoIGNvbmZpZ3VyZSB0aGUgbWVtYmVyc2hpcCBvZiBkZXZpY2VzLgorVmlydHVhbCByb3V0ZXIgaXMgY29uZmlndXJlZCBhbmQgbWFuYWdlZCwgd2hpY2ggZGVmaW5lcyB0aGUgY29ubmVjdGl2aXR5IHdpdGhpbiBhbmQgYW1vbmcgdGVuYW50cy4KKworVGhlIGNvbnRyb2xsZXIgcHJvdmlkZXMgYSB0ZW5hbnQgbmFtZWQgJ2RlZmF1bHQnIHRvIGNvbGxlY3QgZGV2aWNlcword2hpY2ggYXJlIG5vdCBhc3NvY2lhdGVkIHdpdGggYW55IHRlbmFudC4KKworVGhlIGNvbnRyb2xsZXIgcHJvdmlkZXMgYSB0ZW5hbnQgbmFtZWQgJ3N5c3RlbScgdG8gaG9sZCBzeXN0ZW0gdmlydHVhbCByb3V0ZXIKK3doaWNoIGlzIHVzZWQgdG8gZGVmaW5lIHRoZSBjb25uZWN0aXZpdHkgYW1vbmcgYWxsIHRlbmFudHMuCisKK1RoZSBjb250cm9sbGVyIHByb3ZpZGVzIGEgdGVuYW50IG5hbWVkICdleHRlcm5hbCcgdG8gaG9sZCBjb25maWd1cmF0aW9uIGZvciBleHRlcm5hbCBuZXR3b3JrIGFjY2Vzcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtYWN0aXZlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1hY3RpdmUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzc4ZGJjYwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtYWN0aXZlCkBAIC0wLDAgKzEsMiBAQAorU2V0IHRoZSB0ZW5hbnQgYWN0aXZlLiBJZiBhIHRlbmFudCBpcyBpbmFjdGl2ZSB0aGUgY29udHJvbGxlciB3aWxsIG5vdCB1c2UgaXQKK29yIGl0cyBydWxlcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtYWN0aXZlLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LWFjdGl2ZS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ5ZWZmMmIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LWFjdGl2ZS1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAorYWN0aXZlCisgIEFjdGl2YXRlIHRoaXMgdGVuYW50IGluc3RhbmNlCisKK25vIGFjdGl2ZQorICBEZWFjdGl2YXRlIHRoaXMgdGVuYW50IGluc3RhbmNlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LWRlc2NyaXB0aW9uIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1kZXNjcmlwdGlvbgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41MmE5YTE1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1kZXNjcmlwdGlvbgpAQCAtMCwwICsxIEBACitXaXRoaW4gYSB0ZW5hbnQgZGVmaW5pdGlvbiBzdWItbW9kZSwgZGVjbGFyZSBhIGZyaWVuZGx5IGRlc2NyaXB0b3IgZm9yIHRoZSB0ZW5hbnQgaW5zdGFuY2UuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LWRlc2NyaXB0aW9uLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LWRlc2NyaXB0aW9uLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMmQ5NDUxNAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtZGVzY3JpcHRpb24tZXhhbXBsZQpAQCAtMCwwICsxLDIgQEAKK2Rlc2NyaXB0aW9uICJ0aGlzIGlzIG15IGZpcnN0IHRlbmFudCBpbnN0YW5jZSIKKyAgQWRkIGEgdGV4dHVhbCBkZXNjcmlwdGlvbiB0byBhIHRlbmFudApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjhjOWRjZWMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LWV4YW1wbGUKQEAgLTAsMCArMSw2IEBACit0ZW5hbnQgbXktZmlyc3QtdGVuYW50CisgIERlZmluZSBhIG5ldyB0ZW5hbnQgaW5zdGFuY2UgYnkgbmFtZSwKKyAgYW5kIGVudGVyIHRoZSB0ZW5hbnQgc3ViLW1vZGUKKworbm8gdGVuYW50IG15LWZpcnN0LXRlbmFudAorICBSZW1vdmUgYSBuYW1lZCB0ZW5hbnQKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1hY3RpdmUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1hY3RpdmUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNGY1OGFmMwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWFjdGl2ZQpAQCAtMCwwICsxLDIgQEAKK1NldCB0aGUgdGVuYW50IHZpcnR1YWwgcm91dGVyIGFjdGl2ZS4gSWYgYSB0ZW5hbnQgdmlydHVhbCByb3V0ZXIgaXMgaW5hY3RpdmUgdGhlIGNvbnRyb2xsZXIgd2lsbCBub3QgdXNlIGl0CitvciBpdHMgcnVsZXMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1hY3RpdmUtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWFjdGl2ZS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM2MjZlYjYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1hY3RpdmUtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK2xvY2FsaG9zdChjb25maWctdGVuYW50LXJvdXRlci1pbnRmKSMgYWN0aXZlCisgIEFjdGl2YXRlIHRoaXMgaW50ZXJmYWNlIGluc3RhbmNlCisKK2xvY2FsaG9zdChjb25maWctdGVuYW50LXJvdXRlci1pbnRmKSMgbm8gYWN0aXZlCisgIERlYWN0aXZhdGUgdGhpcyBpbnRlcmZhY2UgaW5zdGFuY2UKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWRlc2NyaXB0aW9uIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItZGVzY3JpcHRpb24KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODllYTIzNAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWRlc2NyaXB0aW9uCkBAIC0wLDAgKzEgQEAKK1dpdGhpbiBhIHRlbmFudCB2aXJ0dWFsIHJvdXRlciBkZWZpbml0aW9uIHN1Yi1tb2RlLCBkZWNsYXJlIGEgZnJpZW5kbHkgZGVzY3JpcHRvciBmb3IgdGhlIHZpcnR1YWwgcm91dGVyIGluc3RhbmNlLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItZGVzY3JpcHRpb24tZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWRlc2NyaXB0aW9uLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYmQ5Zjc3OQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWRlc2NyaXB0aW9uLWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACitsb2NhbGhvc3QoY29uZmlnLXRlbmFudC1yb3V0ZXIpIyBkZXNjcmlwdGlvbiAidGhpcyBpcyB0aGUgdmlydHVhbCByb3V0ZXIgZm9yIHRlc3RpbmciCisgIEFkZCBhIHRleHR1YWwgZGVzY3JpcHRpb24gdG8gYSB0ZW5hbnQgdmlydHVhbCByb3V0ZXIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1nd2lwIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItZ3dpcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi43ZGI1NWQ3Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItZ3dpcApAQCAtMCwwICsxIEBACitBZGQgYW4gSVAgYWRkcmVzcyB0byBhIGdhdGV3YXkgcG9vbApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItZ3dpcC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItZ3dpcC1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjllNGY1ZGMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1nd2lwLWV4YW1wbGUKQEAgLTAsMCArMSwzIEBACitsb2NhbGhvc3QoY29uZmlnLXRlbmFudC1yb3V0ZXItZ3cpIyBpcCAgMTAuMC4xLjEvMjQKKworbG9jYWxob3N0KGNvbmZpZy10ZW5hbnQtcm91dGVyLWd3KSMgbm8gaXAgIDEwLjAuMS4xLzI0CmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1nd3Bvb2wgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1nd3Bvb2wKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWYwN2Q2YgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWd3cG9vbApAQCAtMCwwICsxLDIgQEAKK1RoaXMgY29tbWFuZCBpcyB1c2VkIHRvIGNyZWF0ZSBhIG5ldyBuZXh0IGhvcCBnYXRld2F5IHBvb2wuIEFueSBJUCBhZGRyZXNzIHdpdGhpbiB0aGlzIGdhdGV3YXkgcG9vbCBjYW4gYmUgdXNlZCBhcyBhIG5leHQgaG9wIGZvciBhIHJvdXRpbmcgcnVsZSBjb25maWd1cmVkIHdpdGggdGhlIG5leHQgaG9wIGFzIHRoaXMgZ2F0ZXdheSBwb29sLgorCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1nd3Bvb2wtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWd3cG9vbC1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQzMzM3ZjgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1nd3Bvb2wtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK2xvY2FsaG9zdChjb25maWctdGVuYW50LXJvdXRlcikjIGdhdGV3YXktcG9vbCBwb29sMQorICBjcmVhdGUgYSBnYXRld2F5IHBvb2wgcG9vbDEKKworbG9jYWxob3N0KGNvbmZpZy10ZW5hbnQtcm91dGVyKSMgbm8gZ2F0ZXdheS1wb29sIHBvb2wxCisgIHJlbW92ZSB0aGUgZ2F0ZXdheSBwb29sIG5hbWVkIHBvb2wxCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1pbnRlcmZhY2UgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXJvdXRlci1pbnRlcmZhY2UKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMTM4YTJmOAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWludGVyZmFjZQpAQCAtMCwwICsxLDIgQEAKK1RoaXMgY29tbWFuZCBpcyB1c2VkIHRvIGNyZWF0ZSBhIG5ldyB2aXJ0dWFsIHJvdXRlciBpbnRlcmZhY2UgYW5kIGNvbm5lY3QgdGhlIG5hbWVkIGludGVyZmFjZSB0byBhIGRlZmluZWQgVk5TIG9yIGFub3RoZXIgdmlydHVhbCByb3V0ZXIuCisKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWludGVyZmFjZS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItaW50ZXJmYWNlLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjVmNTdkZQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWludGVyZmFjZS1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAorbG9jYWxob3N0KGNvbmZpZy10ZW5hbnQtcm91dGVyKSMgaW50ZXJmYWNlIGlmMSB2bnMgQTEKKyAgY3JlYXRlIGEgdmlydHVhbCByb3V0ZXIgaW50ZXJmYWNlIGlmMSBhbmQgY29ubmVjdCBpdCB0byBWTlMgQTEKKyAgCitsb2NhbGhvc3QoY29uZmlnLXRlbmFudC1yb3V0ZXIpIyBubyBpbnRlcmZhY2UgaWYxCisgIHJlbW92ZSB0aGUgbmFtZWQgdmlydHVhbCByb3V0ZXIgaW50ZXJmYWNlIGlmMQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWludGVyZmFjZWlwIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItaW50ZXJmYWNlaXAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZDY0YjkwMwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWludGVyZmFjZWlwCkBAIC0wLDAgKzEgQEAKK0Fzc29jaWF0ZSBhbiBJUCBhZGRyZXNzIGFuZCBJUCBzdWJuZXQgd2l0aCBhbiB2aXJ0dWFsIHJvdXRlciBpbnRlcmZhY2UuIApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItaW50ZXJmYWNlaXAtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWludGVyZmFjZWlwLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYTk1ZGVhNQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLWludGVyZmFjZWlwLWV4YW1wbGUKQEAgLTAsMCArMSwzIEBACitsb2NhbGhvc3QoY29uZmlnLXRlbmFudC1yb3V0ZXItaW50ZikjIGlwICAxMC4wLjEuMS8yNAorCitsb2NhbGhvc3QoY29uZmlnLXRlbmFudC1yb3V0ZXItaW50ZikjIG5vIGlwICAxMC4wLjEuMS8yNApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLXJvdXRlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItcm91dGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWZmOWY2YQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLXJvdXRlCkBAIC0wLDAgKzEsMiBAQAorVGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gY3JlYXRlIGEgbmV3IHJvdXRpbmcgcnVsZSBmb3IgYSBnaXZlbiB0ZW5hbnQgdmlydHVhbCByb3V0ZXIuICAgCisgIApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC1yb3V0ZXItcm91dGUtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLXJvdXRlLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjU5ZmY4NQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy90ZW5hbnQtcm91dGVyLXJvdXRlLWV4YW1wbGUKQEAgLTAsMCArMSw1IEBACityb3V0ZSBmcm9tIHRlbmFudCBBIHRvIHRlbmFudCBCIHBlcm1pdAorICBjcmVhdGUgYSByb3V0aW5nIHJ1bGUgdG8gcGVybWl0IHBhY2tldHMgZnJvbSB0ZW5hbnQgQSB0byB0ZW5hbnQgQgorCitubyByb3V0ZSBmcm9tIHRlbmFudCBBIHRvIHRlbmFudCBCIHBlcm1pdAorICByZW1vdmUgdGhlIGNyZWF0ZWQgcm91dGluZyBydWxlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC12cm91dGVyIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC12cm91dGVyCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmI5M2ZkODIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXZyb3V0ZXIKQEAgLTAsMCArMSwyIEBACitUaGlzIHN1Ym1vZGUgaXMgdXNlZCB0byBjcmVhdGUsIHRoZW4gZGVzY3JpYmUgdGhlIGNvbm5lY3Rpdml0eSBhbmQgcm91dGluZyBydWxlcyBmb3IgdGhlIG5hbWVkIHZpcnR1YWwgcm91dGVyIGZvciBhIGdpdmVuIHRlbmFudC4gICAKK1dpdGhpbiB0aGlzIHN1Ym1vZGUsIHByb3BlcnRpZXMgb2YgdGhlIHZpcnR1YWwgcm91dGVyIGNhbiBiZSBjb25maWd1cmVkLiAgIApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC12cm91dGVyLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdGVuYW50LXZyb3V0ZXItZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5kOTMwZGM1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3RlbmFudC12cm91dGVyLWV4YW1wbGUKQEAgLTAsMCArMSw2IEBACityb3V0ZXIgbXktZmlyc3Qtcm91dGVyCisgIERlZmluZSBhIG5ldyByb3V0ZXIgaW5zdGFuY2UgYnkgbmFtZSwKKyAgYW5kIGVudGVyIHRoZSB0ZW5hbnQtcm91dGVyIHN1Yi1tb2RlCisKK25vIHJvdXRlciBteS1maXJzdC1yb3V0ZXIKKyAgUmVtb3ZlIGEgbmFtZWQgcm91dGVyClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3VzZS1hZGRyZXNzLXNwYWNlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3VzZS1hZGRyZXNzLXNwYWNlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFhOWI1YTkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdXNlLWFkZHJlc3Mtc3BhY2UKQEAgLTAsMCArMSBAQAorQXNzb2NpYXRlIHRoaXMgVk5TIHdpdGggdGhlIHNwZWNpZmllZCBhZGRyZXNzLXNwYWNlLiAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy91c2UtYWRkcmVzcy1zcGFjZS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3VzZS1hZGRyZXNzLXNwYWNlLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzg0MTY5YQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy91c2UtYWRkcmVzcy1zcGFjZS1leGFtcGxlCkBAIC0wLDAgKzEsNSBAQAordXNlIGFkZHJlc3Mtc3BhY2UgYWRkcmVzcy1zcGFjZS0xCisgIENoYW5nZSB0aGUgYXNzb2NpYXRpb24gb2YgdGhpcyBWTlMgZnJvbSAnZGVmYXVsdCcgdG8gJ2FkZHJlc3Mtc3BhY2UtMScuCisKK25vIGFkZHJlc3Mtc3BhY2UgYWRkcmVzcy1zcGFjZS0xCisgIFJlbW92ZSB0aGUgYWRkcmVzcyBzcGFjZSBhc3NvY2lhdGlvbiBmb3IgdGhpcyBWTlMuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3ZucwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xOTBkOGNmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3ZucwpAQCAtMCwwICsxLDExIEBACitUaGlzIGNvbW1hbmQgaXMgdXNlZCB0byBlbnRlciBhIHN1Ym1vZGUgdG8gbWFuYWdlIHByb3BlcnRpZXMKK2Fzc29jaWF0ZWQgd2l0aCB0aGUgdmlydHVhbCBzd2l0Y2guICBUaGlzIGN1cnJlbnRseSBpbmNsdWRlcworYWNsIG1hbmFnbWVudCwgYW5kIGFzc29jaWF0aW9uIG9mIHRoZSBhY2xzIHJ1bGVzIHRvIGludGVyZmFjZXMuCisKK1RoZSBuYW1lZCB2bnMtaWQgbXVzdCBhbHJlYWR5IGV4aXN0LiAgU2VlIHRoZSB2bnMtZGVmaW5pdGlvbgorY29tbWFuZCB0byBjcmVhdGUgbmV3IFZOU3MuCisKK1dpdGhpbmcgdGhpcyBzdWJtb2RlLCB0d28gb3RoZXIgc3VibW9kZXMgY2FuIGJlIGVudGVyZWQuICBUaGUKK2FjY2Vzcy1saXN0IHN1Ym1vZGUgYXNzb2NpYXRlcyBzcGVjaWZpYyBhY2wgcnVsZXMgd2l0aCBhbiBhY2Nlc3MgbGlzdCwKK3doaWxlIHRoZSBpbnRlcmZhY2Ugc3VibW9kZSBhbGxvd3MgYXNzb2NpYXRpb24gb2YgbmFtZWQgYWNjZXNzIHJ1bGVzCit0byBzcGVjaWZpYyBpbnRlcmZhY2VzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtZ3JvdXAgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1ncm91cApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4wMjliYzA5Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtZ3JvdXAKQEAgLTAsMCArMSBAQAorQXNzb2NpYXRlIGFuIGFjY2Vzcy1saXN0IGNvbmZpZ3VyYXRpb24gd2l0aCB0aGlzIGludGVyZmFjZSBydWxlLiAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWdyb3VwLWRpcmVjdGlvbi1pbiBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWdyb3VwLWRpcmVjdGlvbi1pbgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zMjk1NDcxCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtZ3JvdXAtZGlyZWN0aW9uLWluCkBAIC0wLDAgKzEgQEAKK0FwcGx5IGFuIGFjY2Vzcy1saXN0IHRvIGluY29taW5nIHRyYWZmaWMgb24gdGhpcyBWTlMgaW50ZXJmYWNlLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtZ3JvdXAtZGlyZWN0aW9uLW91dCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWdyb3VwLWRpcmVjdGlvbi1vdXQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOTM1Njc5YwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWdyb3VwLWRpcmVjdGlvbi1vdXQKQEAgLTAsMCArMSBAQAorQXBwbHkgYW4gYWNjZXNzLWxpc3QgdG8gb3V0Z29pbmcgdHJhZmZpYyBvbiB0aGlzIFZOUyBpbnRlcmZhY2UuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1ncm91cC1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtZ3JvdXAtZXhhbXBsZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42NzdmNWE4Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtZ3JvdXAtZXhhbXBsZQpAQCAtMCwwICsxLDUgQEAKK2FjY2Vzcy1ncm91cCBwYWlyLWJsb2NrZXIgaW4KKyAgQXNzb2NpYXRlIHRoZSAncGFpci1ibG9ja2VyJyBBQ0wgd2l0aCBpbnB1dCBwYWNrZXRzIHRvIHRoaXMgVk5TCisKK25vIGFjY2Vzcy1ncm91cCBwYWlyLWJsb2NrZXIgaW4KKyAgUmVtb3ZlIHRoZSBpbnB1dCBwYWNrZXQgQUNMIGZvciB0aGlzIFZOUyBpbnN0YW5jZQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODUzZDMzYgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QKQEAgLTAsMCArMSBAQAorRW50ZXIgc3VibW9kZSB0byBjb25maWd1cmUgVk5TIGFjY2Vzcy1saXN0LiAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtY2lkci1yYW5nZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtY2lkci1yYW5nZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40MWQ3MWQyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1jaWRyLXJhbmdlCkBAIC0wLDAgKzEgQEAKK0lQIGFkZHJlc3Mgd2l0aCBwcmVmaXggbGVuZ3RoIGluIENJRFIgZm9ybWF0LgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1kZXNjcmlwdGlvbiBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZGVzY3JpcHRpb24KbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNzYzZTEyNwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZGVzY3JpcHRpb24KQEAgLTAsMCArMSBAQAorQSB1c2VyIHByb3ZpZGVkIHRleHR1YWwgZGVzY3JpcHRpb24gZm9yIHRoaXMgYWNjZXNzLWxpc3QuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWRlc2NyaXB0aW9uLWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWRlc2NyaXB0aW9uLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDg0ZWVhMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZGVzY3JpcHRpb24tZXhhbXBsZQpAQCAtMCwwICsxLDIgQEAKK2Rlc2NyaXB0aW9uICJBY2Nlc3MgbGlzdCAjMSIKKyAgQXNzb2NpYXRlIGEgdGV4dCBkZXNjcmlwdGlvbiB3aXRoIHRoaXMgYWNjZXNzIGxpc3QKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZW50cnkgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWVudHJ5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUwMzBiZGYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWVudHJ5CkBAIC0wLDAgKzEgQEAKK0FkZCBhbiBlbnRyeSB0byB0aGlzIFZOUyBhY2Nlc3MgbGlzdApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1lbnRyeS1hY3Rpb24tZGVueSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZW50cnktYWN0aW9uLWRlbnkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uM2QzNjZjYQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZW50cnktYWN0aW9uLWRlbnkKQEAgLTAsMCArMSBAQAorRGVueSB0cmFmZmljIG1hdGNoaW5nIHRoaXMgZW50cnkuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWVudHJ5LWFjdGlvbi1wZXJtaXQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWVudHJ5LWFjdGlvbi1wZXJtaXQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMjQ2NjE1MQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZW50cnktYWN0aW9uLXBlcm1pdApAQCAtMCwwICsxIEBACitQZXJtaXQgdHJhZmZpYyBtYXRjaGluZyB0aGlzIGVudHJ5LgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1lbnRyeS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1lbnRyeS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjE4ODVkYTIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWVudHJ5LWV4YW1wbGUKQEAgLTAsMCArMSwyNiBAQAorMTAgZGVueSBpcCAxMC4wLjAuMSAxMC4wLjAuMgorICBBZGQgYW4gQUNMIHJ1bGUgdG8gZGVueSBJUCB0cmFmZmljIGJldHdlZW4gdHdvIGhvc3RzCisKKzExIGFsbG93IHRjcCAxMC4wLjAuMworICBBZGQgYW4gQUNMIHJ1bGUgdG8gYWxsb3cgVENQIHRyYWZmaWMgZnJvbSBhIHNwZWNpZmljIGhvc3QKKworMTIgZGVueSA1MQorICBBZGQgYW4gQUNMIHJ1bGUgdG8gZGVueSBBSCBwYWNrZXRzCisKKzEzIGRlbnkgdGNwIGFueSBlcSBodHRwCisgIEFkZCBhbiBBQ0wgcnVsZSB0byBkZW55IEhUVFAgdHJhZmZpYworCisxNCBkZW55IHRjcCBhbnkgZXEgaHR0cAorICBBZGQgYW4gQUNMIHJ1bGUgdG8gZGVueSBIVFRQIHRyYWZmaWMKKworMTUgZGVueSBtYWMgMDA6MDA6MDA6MDA6MDA6MDEgYW55CisgIEFkZCBhbiBBQ0wgcnVsZSB0byBkZW55IHRyYWZmaWMgYmFzZWQgb24gc291cmNlIE1BQyBhZGRyZXNzCisKKzE2IGRlbnkgbWFjIDAwOjAwOjAwOjAwOjAwOjAxIDAwOjAwOjAwOjAwOjAwOjAyCisgIEFkZCBhbiBBQ0wgcnVsZSB0byBkZW55IHRyYWZmaWMgYmV0d2VlbiBNQUMgYWRkcmVzc2VzCisKKzE2IGRlbnkgbWFjIGFueSBhbnkgMHgwODQyCisgIEFkZCBhbiBBQ0wgcnVsZSB0byBkZW55IHdha2Utb24tTEFOIHBhY2tldHMKKworMTcgZGVueSBtYWMgYW55IGFueSB2bGFuIDQyCisgIEFkZCBhbiBBQ0wgcnVsZSB0byBkZW55IHBhY2tldHMgZnJvbSBhIHNwZWNpZmljIFZMQU4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZW50cnktdHlwZS1pcCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZW50cnktdHlwZS1pcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zZTU0YjMxCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1lbnRyeS10eXBlLWlwCkBAIC0wLDAgKzEgQEAKK0FjY2VzcyBsaXN0IGVudHJ5IGZvciBJUCBwYWNrZXRzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1lbnRyeS10eXBlLWlwLXByb3RvY29sIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1lbnRyeS10eXBlLWlwLXByb3RvY29sCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjg3NjU3ODYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWVudHJ5LXR5cGUtaXAtcHJvdG9jb2wKQEAgLTAsMCArMSBAQAorQW4gSVAgcHJvdG9jb2wgbnVtYmVyLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1lbnRyeS10eXBlLXRjcCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZW50cnktdHlwZS10Y3AKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODBjZThmYgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZW50cnktdHlwZS10Y3AKQEAgLTAsMCArMSBAQAorQWNjZXNzIGxpc3QgZW50cnkgZm9yIFRDUCBwYWNrZXRzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1lbnRyeS10eXBlLXVkcCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZW50cnktdHlwZS11ZHAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uYjcxYmFjMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZW50cnktdHlwZS11ZHAKQEAgLTAsMCArMSBAQAorQWNjZXNzIGxpc3QgZW50cnkgZm9yIFVEUCBwYWNrZXRzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1ldGhlci10eXBlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1ldGhlci10eXBlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmM3MDlkY2IKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWV0aGVyLXR5cGUKQEAgLTAsMCArMSBAQAorU3BlY2lmeSBhbiBldGhlciB0eXBlIGJ5IG51bWJlciAoaGV4IG9yIGRlY2ltYWwpCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWV4YW1wbGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZGJmZWY0MQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtZXhhbXBsZQpAQCAtMCwwICsxLDYgQEAKK2FjY2Vzcy1saXN0IGFjY2Vzcy1saXN0LTEKKyAgRGVmaW5lIGEgbmV3IGFjY2VzcyBsaXN0IGZvciB0aGlzIFZOUywKKyAgYW5kIGVudGVyIGl0cyBjb25maWd1cmF0aW9uIHN1Yi1tb2RlCisKK25vIGFjY2Vzcy1saXN0IGFjY2Vzcy1saXN0LTEKKyAgUmVtb3ZlIHRoZSBkZWZpbml0aW9uIGZvciB0aGlzIGFjY2VzcyBsaXN0CmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWlwLWFuZC1tYXNrLWlwIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1pcC1hbmQtbWFzay1pcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZjI2MTJmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1pcC1hbmQtbWFzay1pcApAQCAtMCwwICsxIEBACitJUCBhZGRyZXNzIGluIGRvdHRlZCBkZWNpbWFsIG5vdGF0aW9uLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1pcC1hbmQtbWFzay1tYXNrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1pcC1hbmQtbWFzay1tYXNrCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjNjYTkyM2QKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWlwLWFuZC1tYXNrLW1hc2sKQEAgLTAsMCArMSBAQAorQW4gaW52ZXJzZSBuZXRtYXNrIGluIGRvdHRlZCBkZWNpbWFsIG5vdGF0aW9uLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1pcC1hbnkgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LWlwLWFueQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNTk4ZjZmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1pcC1hbnkKQEAgLTAsMCArMSBAQAorUmVwcmVzZW50cyBhbnkgSVAgYWRkcmVzcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtaXAtaWNtcCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtaXAtaWNtcApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ZDQ5Zjg1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1pcC1pY21wCkBAIC0wLDAgKzEsMiBAQAorRmlsdGVyIGJhc2VkIG9uIElDTVAgcGFja2V0IHR5cGVzCisKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtaXAtb25seSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtaXAtb25seQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lZjI2MTJmCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1pcC1vbmx5CkBAIC0wLDAgKzEgQEAKK0lQIGFkZHJlc3MgaW4gZG90dGVkIGRlY2ltYWwgbm90YXRpb24uCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LW1hYyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtbWFjCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjBjOTIyYzAKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LW1hYwpAQCAtMCwwICsxIEBACitGaWx0ZXIgYmFzZWQgb24gc291cmNlL2Rlc3Rpb25hdGlvbiBNQUMgYWRkcmVzc2VzLCBldGhlciB0eXBlcyBhbmQgVkxBTiBJRHMKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtbmFtZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtbmFtZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45MDA1YWIzCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1uYW1lCkBAIC0wLDAgKzEgQEAKK1RoZSBuYW1lIG9mIHRoZSBhY2Nlc3MgbGlzdApkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1wb3J0LWhleCBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtcG9ydC1oZXgKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZjEyOTMxNgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtcG9ydC1oZXgKQEAgLTAsMCArMSBAQAorUG9ydCBudW1iZXIgaW4gZGVjaW1hbCBvciBoZXggaWYgcHJlZml4ZWQgd2l0aCAweC4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtcG9ydC1vcC1lcSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtcG9ydC1vcC1lcQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4xOTE5NDU1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1wb3J0LW9wLWVxCkBAIC0wLDAgKzEgQEAKK1BvcnQgbnVtYmVyIGVxdWFscy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtYWNjZXNzLWxpc3QtcG9ydC1vcC1uZXEgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LXBvcnQtb3AtbmVxCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmJmYTgyOTYKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LXBvcnQtb3AtbmVxCkBAIC0wLDAgKzEgQEAKK1BvcnQgbnVtYmVyIGRvZXMgbm90IGVxdWFsLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1wb3J0LXR5cGUgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LXBvcnQtdHlwZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi45OWVmMTM5Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1wb3J0LXR5cGUKQEAgLTAsMCArMSBAQAorU3BlY2lmeSBhIHBvcnQgYnkgc2VydmljZSBuYW1lCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LXByaW9yaXR5IGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1wcmlvcml0eQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5lODE2NzcwCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1wcmlvcml0eQpAQCAtMCwwICsxIEBACitXaXRoaW4gYSBWTlMgYWNjZXNzIGxpc3QgZGVmaW5pdGlvbiwgc2V0IHRoZSBwcmlvcml0eQpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1wcmlvcml0eS1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1hY2Nlc3MtbGlzdC1wcmlvcml0eS1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjQyZjY1YTgKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWFjY2Vzcy1saXN0LXByaW9yaXR5LWV4YW1wbGUKQEAgLTAsMCArMSwyIEBACitwcmlvcml0eSAxMDAKKyAgU2V0IHRoZSBwcmlvcml0eSBvZiB0aGlzIEFDTCB0byAxMDAKZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtZGVmaW5pdGlvbiBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtZGVmaW5pdGlvbgpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi41YmZiOTk1Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1kZWZpbml0aW9uCkBAIC0wLDAgKzEsMTYgQEAKK1RoaXMgc3VibW9kZSBpcyB1c2VkIHRvIGNyZWF0ZSwgdGhlbiBkZXNjcmliZSB0aGUgbWVtYmVyc2hpcCBvZgorZGV2aWNlcyBmb3IgdGhlIG5hbWVkIFZOUy4gICBXaXRoaW4gdGhpcyBzdWJtb2RlLCBwcm9wZXJ0aWVzIG9mCit0aGUgVk5TIGNhbiBiZSBjb25maWd1cmVkLiAgIEludGVyZmFjZS1ydWxlcyBhcmUgY29uZmlndXJlZCBhbmQKK21hbmFnZWQsIHdoaWNoIGNvbmZpZ3VyZSB0aGUgbWVtYmVyc2hpcCBvZiBkZXZpY2VzLgorCitUaGUgY29udHJvbGxlciBwcm92aWRlcyBhIFZOUyBuYW1lZCAnZGVmYXVsdCcgdG8gY29sbGVjdCBkZXZpY2VzCit3aGljaCBhcmUgbm90IGFzc29jaWF0ZWQgd2l0aCBhbnkgVk5TLiAgIAorCitQYXJ0IG9mIHRoZSBjb25maWd1cmF0aW9uIGFzc29jaWF0ZWQgd2l0aCBhIFZOUyBpbmNsdWRlcyB0aGUKK2Fzc29jaWF0aW9uIG9mIGEgcGFydGljdWxhciBhZGRyZXNzLXNwYWNlLiAgIFdoZW4gbm90IHNwZWZpY2lhbGx5Citjb25maWd1cmVkLCB0aGUgJ2RlZmF1bHQnIGFkZHJlc3Mtc3BhY2UgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZQorVk5TLgorCitFYWNoIGFkZHJlc3Mtc3BhY2UgYWxzbyBoYXMgYW4gYXNzb2NpYXRlZCBkZWZhdWx0IFZOUy4gIElGIHRoZQorYWRkcmVzcyBzcGFjZSBpcyBjYWxsZWQgJ3llbGxvdycsIHRoZW4gdGhlIGRlZmF1bHQgVk5TIGZvciB0aGlzCithZGRyZXNzIHNwYWNlIGlzIGNhbGxlZCAneWVsbG93LWRlZmF1bHQnCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWRlZmluaXRpb24tZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtZGVmaW5pdGlvbi1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlmN2QxN2QKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWRlZmluaXRpb24tZXhhbXBsZQpAQCAtMCwwICsxLDYgQEAKK3Zucy1kZWZpbml0aW9uIG15LWZpcnN0LXZucworICBEZWZpbmUgYSBuZXcgVk5TIGluc3RhbmNlIGJ5IG5hbWUsCisgIGFuZCBlbnRlciB0aGUgVk5TIGRlZmluaXRpb24gc3ViLW1vZGUKKworbm8gdm5zLWRlZmluaXRpb24gbXktZmlyc3Qtdm5zCisgIFJlbW92ZSBhIG5hbWVkIFZOUwpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1leGFtcGxlIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1leGFtcGxlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjY4MjRlMGQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWV4YW1wbGUKQEAgLTAsMCArMSwzIEBACit2bnMgbXktdm5zLWRlZmluaXRpb24KKyAgRW50ZXIgVk5TIGRlZmluaXRpb24gc3ViLW1vZGUuCisgIFRoZSBWTlMgbmFtZSBjb3JyZXNwb25kcyB0byBhIHByaW9yIHZucy1kZWZpbml0aW9uIGlkZW50aWZpZXIuCmRpZmYgLS1naXQgYS9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWlkIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1pZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4zN2UxZWQ2Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1pZApAQCAtMCwwICsxLDQgQEAKK1RoaXMgaXMgdGhlIG5hbWUgb2YgdGhlIFZOUy4gVGhlIFZOUyBuYW1lICJkZWZhdWx0IiByZXByZXNlbnRzIHRoZQorZGVmYXVsdCBWTlMgaW4gdGhlIGRlZmF1bHQgYWRkcmVzcyBzcGFjZS4gQSBWTlMgbmFtZSBjb25mb3JtaW5nIHRvCisiPGFkZHJlc3Mtc3BhY2UtbmFtZT4tZGVmYXVsdCIgcmVwcmVzZW50cyB0aGUgZGVmYXVsdCBWTlMgZm9yIHRoZQorYWRkcmVzcy1zcGFjZSAiYWRkcmVzcy1zcGFjZS1uYW1lIgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1pbnRlcmZhY2UgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWludGVyZmFjZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi40NjhiMGU5Ci0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1pbnRlcmZhY2UKQEAgLTAsMCArMSBAQAorRW50ZXIgVk5TIGludGVyZmFjZSBzdWJtb2RlLCBtYW5hZ2UgYXNzb2NpYXRpb24gdG8gYWNjZXNzIGxpc3RzLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1pbnRlcmZhY2UtZXhhbXBsZSBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtaW50ZXJmYWNlLWV4YW1wbGUKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODQwMmI5YQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtaW50ZXJmYWNlLWV4YW1wbGUKQEAgLTAsMCArMSwzIEBACitpbnRlcmZhY2UgbWFpbi1pbnRlcmZhY2UKKyAgRW50ZXIgdGhlIFZOUyBpbnRlcmZhY2UgY29uZmlndXJhdGlvbiBzdWItbW9kZS4KKyAgVGhlIGludGVyZmFjZSBpcyBuYW1lZCBiYXNlZCBvbiBhIGNvcnJlc3BvbmRpbmcgaW50ZXJmYWNlLXJ1bGUgc3BlY2lmaWVyLgpkaWZmIC0tZ2l0IGEvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1pbnRlcmZhY2UtZmllbGQgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLWludGVyZmFjZS1maWVsZApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hMjAyMjZkCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2RvY3VtZW50YXRpb24vZW5fVVMvdm5zL3Zucy1pbnRlcmZhY2UtZmllbGQKQEAgLTAsMCArMSwyIEBACitUaGUgbmFtZSBvZiB0aGUgVk5TIGludGVyZmFjZS4gSW50ZXJmYWNlIG5hbWVzIGFyZSBkZXJpdmVkIGZyb20KK2ludGVyZmFjZS1ydWxlcy4KZGlmZiAtLWdpdCBhL2NsaS9kb2N1bWVudGF0aW9uL2VuX1VTL3Zucy92bnMtc2hvdy1pbnRlcmZhY2UgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLXNob3ctaW50ZXJmYWNlCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFiZThlNmIKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZG9jdW1lbnRhdGlvbi9lbl9VUy92bnMvdm5zLXNob3ctaW50ZXJmYWNlCkBAIC0wLDAgKzEsMiBAQAorU2hvdyBWTlMgaW50ZXJmYWNlcyBhc3NvY2lhdGVkIHdpdGggdGhpcyBWTlMgYW5kIGl0cyBzdGF0ZSBhbmQKK2NvbmZpZ3VyYXRpb24uCmRpZmYgLS1naXQgYS9jbGkvZXJyb3IucHkgYi9jbGkvZXJyb3IucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzI1ODA1NwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9lcnJvci5weQpAQCAtMCwwICsxLDEwNSBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2NsYXNzIENvbW1hbmRFcnJvcihFeGNlcHRpb24pOgorICAgICIiIgorICAgIEJhc2UgY2xhc3MgZm9yIGV4Y2VwdGlvbnMgdGhyb3duIGJ5IHRoZSBDTEkgY29tbWFuZCBtb2R1bGUKKyAgICAiIiIKKyAgICBkZWYgX19pbml0X18oc2VsZiwga2luZCwgbWVzc2FnZSA9IE5vbmUpOgorICAgICAgICBpZiBraW5kOgorICAgICAgICAgICAgbWVzc2FnZSA9IGtpbmQgKyAnOiAnICsgbWVzc2FnZQorICAgICAgICBzdXBlcihDb21tYW5kRXJyb3IsIHNlbGYpLl9faW5pdF9fKG1lc3NhZ2UpCisKK2NsYXNzIEFyZ3VtZW50VmFsaWRhdGlvbkVycm9yKENvbW1hbmRFcnJvcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2U9Tm9uZSwgZXhwZWN0ZWRfdG9rZW5zPU5vbmUpOgorICAgICAgICBraW5kID0gIkludmFsaWQgYXJndW1lbnQiCisgICAgICAgIHN1cGVyKEFyZ3VtZW50VmFsaWRhdGlvbkVycm9yLCBzZWxmKS5fX2luaXRfXyhraW5kLCBtZXNzYWdlKQorICAgICAgICBzZWxmLmV4cGVjdGVkX3Rva2VucyA9IGV4cGVjdGVkX3Rva2VucworCisKK2NsYXNzIENvbW1hbmRTeW50YXhFcnJvcihDb21tYW5kRXJyb3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlKToKKyAgICAgICAgI2tpbmQgPSAnRXJyb3InCisgICAgICAgIGtpbmQgPSBOb25lCisgICAgICAgIHN1cGVyKENvbW1hbmRTeW50YXhFcnJvcixzZWxmKS5fX2luaXRfXyhraW5kLCBtZXNzYWdlKQorCisKK2NsYXNzIFJhbmdlU3ludGF4RXJyb3IoQ29tbWFuZEVycm9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6CisgICAgICAgIGtpbmQgPSAiVmFsdWUgb3V0c2lkZSBsZW5ndGgvcmFuZ2UiCisgICAgICAgIHN1cGVyKFJhbmdlU3ludGF4RXJyb3Isc2VsZikuX19pbml0X18oa2luZCwgbWVzc2FnZSkKKworCitjbGFzcyBDb21tYW5kRGVzY3JpcHRpb25FcnJvcihDb21tYW5kRXJyb3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlLCBjb21tYW5kID0gTm9uZSk6CisgICAgICAgIHNlbGYuY29tbWFuZCA9IE5vbmUKKyAgICAgICAga2luZCA9ICJCYWQgY29tbWFuZCBkZXNjcmlwdGlvbiIKKyAgICAgICAgaWYgY29tbWFuZDoKKyAgICAgICAgICAgIHNlbGYuY29tbWFuZCA9IGNvbW1hbmQKKyAgICAgICAgICAgIG1lc3NhZ2UgKz0gJzogJyArIGNvbW1hbmRbJ3NlbGYnXQorICAgICAgICBzdXBlcihDb21tYW5kRGVzY3JpcHRpb25FcnJvcixzZWxmKS5fX2luaXRfXyhraW5kLCBtZXNzYWdlKQorICAgIAorCitjbGFzcyBDb21tYW5kQ29tcGxldGlvbkVycm9yKENvbW1hbmRFcnJvcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOgorICAgICAgICBraW5kID0gIkNvbW1hbmQgY29tcGxldGlvbiIKKyAgICAgICAgc3VwZXIoQ29tbWFuZENvbXBsZXRpb25FcnJvcixzZWxmKS5fX2luaXRfXyhraW5kLCBtZXNzYWdlKQorCisKK2NsYXNzIENvbW1hbmRBbWJpZ3VvdXNFcnJvcihDb21tYW5kRXJyb3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlKToKKyAgICAgICAga2luZCA9ICJBbWJpZ3VvdXMgY29tbWFuZCIKKyAgICAgICAgc3VwZXIoQ29tbWFuZEFtYmlndW91c0Vycm9yLHNlbGYpLl9faW5pdF9fKGtpbmQsIG1lc3NhZ2UpCisKKworY2xhc3MgQ29tbWFuZE1pc3NpbmdFcnJvcihDb21tYW5kRXJyb3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBtZXNzYWdlKToKKyAgICAgICAga2luZCA9ICJObyBzdWNoIGNvbW1hbmQiCisgICAgICAgIHN1cGVyKENvbW1hbmRNaXNzaW5nRXJyb3Isc2VsZikuX19pbml0X18oa2luZCwgbWVzc2FnZSkKKworCitjbGFzcyBDb21tYW5kSW52b2NhdGlvbkVycm9yKENvbW1hbmRFcnJvcik6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG1lc3NhZ2UpOgorICAgICAgICBraW5kID0gIkludmFsaWQgY29tbWFuZCBpbnZvY2F0aW9uIgorICAgICAgICBzdXBlcihDb21tYW5kSW52b2NhdGlvbkVycm9yLHNlbGYpLl9faW5pdF9fKGtpbmQsIG1lc3NhZ2UpCisKKworY2xhc3MgQ29tbWFuZFNlbWFudGljRXJyb3IoQ29tbWFuZEVycm9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6CisgICAgICAgIGtpbmQgPSAiSW52YWxpZCBVc2UiCisgICAgICAgIHN1cGVyKENvbW1hbmRTZW1hbnRpY0Vycm9yLHNlbGYpLl9faW5pdF9fKGtpbmQsIG1lc3NhZ2UpCisKKworY2xhc3MgQ29tbWFuZEludGVybmFsRXJyb3IoQ29tbWFuZEVycm9yKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbWVzc2FnZSk6CisgICAgICAgIGtpbmQgPSAiSW50ZXJuYWwgKGJ1ZykiCisgICAgICAgIHN1cGVyKENvbW1hbmRJbnRlcm5hbEVycm9yLHNlbGYpLl9faW5pdF9fKGtpbmQsIG1lc3NhZ2UpCisKKworY2xhc3MgQ29tbWFuZFJlc3RFcnJvcihDb21tYW5kRXJyb3IpOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZXN0X2luZm89Tm9uZSwgbWVzc2FnZT1Ob25lKToKKyAgICAgICAgcyA9ICdFcnJvcjogUkVTVCBBUEknCisgICAgICAgIGlmIHJlc3RfaW5mbzoKKyAgICAgICAgICAgIGVycm9yX3R5cGUgPSByZXN0X2luZm8uZ2V0KCdlcnJvcl90eXBlJykKKyAgICAgICAgICAgIGlmIGVycm9yX3R5cGU6CisgICAgICAgICAgICAgICAgcyArPSAnOyB0eXBlID0gJyArIGVycm9yX3R5cGUKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uID0gcmVzdF9pbmZvLmdldCgnZGVzY3JpcHRpb24nKQorICAgICAgICAgICAgaWYgZGVzY3JpcHRpb246CisgICAgICAgICAgICAgICAgcyArPSAnOyAnICsgZGVzY3JpcHRpb24KKyAgICAgICAgaWYgbWVzc2FnZToKKyAgICAgICAgICAgIHMgKz0gJzogJyArIG1lc3NhZ2UKKyAgICAgICAgc3VwZXIoQ29tbWFuZFJlc3RFcnJvcixzZWxmKS5fX2luaXRfXygiUkVTVCIsIHMpCisgICAgICAgIApkaWZmIC0tZ2l0IGEvY2xpL2V4dHJhY3RfbW9kZWwucHkgYi9jbGkvZXh0cmFjdF9tb2RlbC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi42ODM4MzUyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL2V4dHJhY3RfbW9kZWwucHkKQEAgLTAsMCArMSwxMDUgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCisjaW1wb3J0IHRpbWUKKworaW1wb3J0IGRhdGV0aW1lCitpbXBvcnQgZGphbmdvLmNvcmUubWFuYWdlbWVudAorCit0cnk6CisgICAgaW1wb3J0IHNldHRpbmdzICMgQXNzdW1lZCB0byBiZSBpbiB0aGUgc2FtZSBkaXJlY3RvcnkuCitleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgaW1wb3J0IHN5cworICAgIHN5cy5zdGRlcnIud3JpdGUoIkVycm9yOiBDYW4ndCBmaW5kIHRoZSBmaWxlICdzZXR0aW5ncy5weScgaW4gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nICVyLiBJdCBhcHBlYXJzIHlvdSd2ZSBjdXN0b21pemVkIHRoaW5ncy5cbllvdSdsbCBoYXZlIHRvIHJ1biBkamFuZ28tYWRtaW4ucHksIHBhc3NpbmcgaXQgeW91ciBzZXR0aW5ncyBtb2R1bGUuXG4oSWYgdGhlIGZpbGUgc2V0dGluZ3MucHkgZG9lcyBpbmRlZWQgZXhpc3QsIGl0J3MgY2F1c2luZyBhbiBJbXBvcnRFcnJvciBzb21laG93LilcbiIgJSBfX2ZpbGVfXykKKyAgICBzeXMuZXhpdCgxKQorCitkamFuZ28uY29yZS5tYW5hZ2VtZW50LnNldHVwX2Vudmlyb24oc2V0dGluZ3MpCisKK2Zyb20gZGphbmdvLmRiIGltcG9ydCBtb2RlbHMKK2Zyb20gZGphbmdvLmRiLm1vZGVscy5maWVsZHMgaW1wb3J0IEF1dG9GaWVsZCwgQm9vbGVhbkZpZWxkLCBJbnRlZ2VyRmllbGQKK2Zyb20gZGphbmdvLmRiLm1vZGVscy5maWVsZHMucmVsYXRlZCBpbXBvcnQgRm9yZWlnbktleQorCitpbXBvcnQgc2RuY29uLnJlc3Qudmlld3MKKworcHJpbnQgIiMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgZnJvbSBjb250cm9sbGVyIHNvdXJjZSIKK3ByaW50ICIjIHZpYSB0b29scy9leHRyYWN0X21vZGVsLnB5IGRhdGU6ICAlcyIgJSBkYXRldGltZS5kYXRldGltZS5ub3coKS5jdGltZSgpCisKKyMgd2UgaXRlcmF0ZSBvdmVyIHJlc3RfbmFtZV9kaWN0LCBsaW1pdGluZyBDTEkgYWNjZXNzIHRvIHRob3NlIG1vZGVscworIyBhbmQgbW9kZWwgZmllbGRzIGFjY2Vzc2libGUgdmlhIHJlc3QKKworcmVzdF9tYXAgPSB7fQorZm9yIChtb2RlbCwgbW9kZWxfaW5mbykgaW4gc2RuY29uLnJlc3Qudmlld3MucmVzdF9tb2RlbF9pbmZvX2RpY3QuaXRlbXMoKToKKyAgICByZXN0X21hcFttb2RlbF0gPSB7fQorICAgIGZvciAocmVzdF9maWVsZF9uYW1lLCByZXN0X2ZpZWxkX2luZm8pIGluIG1vZGVsX2luZm8ucmVzdF9uYW1lX2RpY3QuaXRlbXMoKToKKyAgICAgICAgZGphbmdvX2ZpZWxkX25hbWUgPSByZXN0X2ZpZWxkX2luZm8ubmFtZQorICAgICAgICByZXN0X21hcFttb2RlbF1bZGphbmdvX2ZpZWxkX25hbWVdID0gcmVzdF9maWVsZF9uYW1lCisKK21vZGVsX2luZm9fZGljdCA9IHt9Citmb3IgKG1vZGVsLCBtb2RlbF9pbmZvKSBpbiBzZG5jb24ucmVzdC52aWV3cy5yZXN0X21vZGVsX2luZm9fZGljdC5pdGVtcygpOgorICAgIGRqYW5nb19tb2RlbF9jbGFzcyA9IG1vZGVsX2luZm8ubW9kZWxfY2xhc3MgCisgICAgZmllbGRfaW5mb19kaWN0ID0ge30KKyAgICBmb3IgKHJlc3RfZmllbGRfbmFtZSwgcmVzdF9maWVsZF9pbmZvKSBpbiBtb2RlbF9pbmZvLnJlc3RfbmFtZV9kaWN0Lml0ZW1zKCk6CisgICAgICAgIGRqYW5nb19maWVsZF9uYW1lID0gcmVzdF9maWVsZF9pbmZvLm5hbWUKKyAgICAgICAgZGphbmdvX2ZpZWxkX2luZm8gPSByZXN0X2ZpZWxkX2luZm8uZGphbmdvX2ZpZWxkX2luZm8KKyAgICAgICAgIyBub3cgdGhhdCB3ZSBoYXZlIHRoZSBkamFuZ28gaW5mbyBhbmQgb3VyIG93biByZXN0IGluZm8sIGNyZWF0ZSBhIGZpZWxkIGluZm8gdG8gZHVtcAorICAgICAgICBqc29uX3NlcmlhbGl6ZV9zdHJpbmcgPSB0eXBlKGRqYW5nb19maWVsZF9pbmZvKSBub3QgaW4gKEF1dG9GaWVsZCwgQm9vbGVhbkZpZWxkLCBJbnRlZ2VyRmllbGQpCisgICAgICAgIGZpZWxkX2luZm8gPSB7fQorICAgICAgICBmaWVsZF9pbmZvWydqc29uX3NlcmlhbGl6ZV9zdHJpbmcnXSA9IGpzb25fc2VyaWFsaXplX3N0cmluZworICAgICAgICBpZiBkamFuZ29fZmllbGRfaW5mby52ZXJib3NlX25hbWUgIT0gZGphbmdvX2ZpZWxkX25hbWU6CisgICAgICAgICAgICAjIENoZWNrIGlmIHRoaXMgaXMgYSBwcm94eSBjbGFzcworICAgICAgICAgICAgaWYgdHlwZShkamFuZ29fZmllbGRfaW5mby52ZXJib3NlX25hbWUpIGlzIHN0cjoKKyAgICAgICAgICAgICAgICBmaWVsZF9pbmZvWyd2ZXJib3NlLW5hbWUnXSA9IGRqYW5nb19maWVsZF9pbmZvLnZlcmJvc2VfbmFtZQorICAgICAgICBpZiBkamFuZ29fZmllbGRfaW5mby5wcmltYXJ5X2tleSA9PSBUcnVlOgorICAgICAgICAgICAgZmllbGRfaW5mb1sncHJpbWFyeV9rZXknXSA9IFRydWUKKyAgICAgICAgaWYgZGphbmdvX2ZpZWxkX2luZm8uaGVscF90ZXh0ICE9ICIiOgorICAgICAgICAgICAgZmllbGRfaW5mb1snaGVscF90ZXh0J10gPSBkamFuZ29fZmllbGRfaW5mby5oZWxwX3RleHQKKyAgICAgICAgZmllbGRfaW5mb1snbnVsbCddID0gZGphbmdvX2ZpZWxkX2luZm8ubnVsbAorICAgICAgICBpZiB0eXBlKGRqYW5nb19maWVsZF9pbmZvLmRlZmF1bHQpIGluIFtpbnQsIGJvb2wsIHN0cl06CisgICAgICAgICAgICBmaWVsZF9pbmZvWydkZWZhdWx0J10gPSBkamFuZ29fZmllbGRfaW5mby5kZWZhdWx0CisgICAgICAgIGZpZWxkX2luZm9bJ3R5cGUnXSA9IHN0cih0eXBlKGRqYW5nb19maWVsZF9pbmZvKSkuc3BsaXQoJy4nKVstMV0ucmVwbGFjZSgiJz4iLCAiIikKKyAgICAgICAgaWYgZmllbGRfaW5mb1sndHlwZSddID09ICdBdXRvRmllbGQnOgorICAgICAgICAgICAgIyBSZS1sYWJlbCB0aGUgY2Fzc2FuZHJhIGNvbXBvdW5kIGtleSBmb3IgZWFzaWVyIGNvbnN1bXB0aW9uCisgICAgICAgICAgICBpZiBoYXNhdHRyKGRqYW5nb19tb2RlbF9jbGFzcywgJ0Nhc3NhbmRyYVNldHRpbmdzJyk6CisgICAgICAgICAgICAgICAgY2Fzc2FuZHJhX3NldHRpbmdzID0gZGphbmdvX21vZGVsX2NsYXNzLkNhc3NhbmRyYVNldHRpbmdzCisgICAgICAgICAgICAgICAgaWYgaGFzYXR0cihjYXNzYW5kcmFfc2V0dGluZ3MsICdDT01QT1VORF9LRVlfRklFTERTJyk6CisgICAgICAgICAgICAgICAgICAgIGNvbXBvdW5kX2tleV9maWVsZHMgPSBjYXNzYW5kcmFfc2V0dGluZ3MuQ09NUE9VTkRfS0VZX0ZJRUxEUworICAgICAgICAgICAgICAgICAgICByZXN0X2tleV9maWVsZHMgPSBbcmVzdF9tYXBbbW9kZWxdLmdldCh4LCB4KSBmb3IgeCBpbiBjb21wb3VuZF9rZXlfZmllbGRzXQorICAgICAgICAgICAgICAgICAgICBmaWVsZF9pbmZvWydjb21wb3VuZF9rZXlfZmllbGRzJ10gPSByZXN0X2tleV9maWVsZHMKKyAgICAgICAgICAgICAgICAgICAgZmllbGRfaW5mb1sndHlwZSddID0gJ2NvbXBvdW5kLWtleScKKyAgICAgICAgICAgICAgICAgICAgZmllbGRfaW5mb1snaGVscF90ZXh0J10gPSAnI3wlcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3wnLmpvaW4ocmVzdF9rZXlfZmllbGRzKQorICAgICAgICBpZiBmaWVsZF9pbmZvWyd0eXBlJ10gPT0gJ0ZvcmVpZ25LZXknOgorICAgICAgICAgICAgb3RoZXJfb2JqZWN0ID0gZGphbmdvX2ZpZWxkX2luZm8ucmVsLnRvLlJlc3QuTkFNRQorICAgICAgICAgICAgaWYgZGphbmdvX2ZpZWxkX2luZm8ucmVsLmZpZWxkX25hbWUgaW4gcmVzdF9tYXBbb3RoZXJfb2JqZWN0XToKKyAgICAgICAgICAgICAgICBmaWVsZF9pbmZvWydyZWxfZmllbGRfbmFtZSddID0gXAorICAgICAgICAgICAgICAgICAgICByZXN0X21hcFtvdGhlcl9vYmplY3RdW2RqYW5nb19maWVsZF9pbmZvLnJlbC5maWVsZF9uYW1lXQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmaWVsZF9pbmZvWydyZWxfZmllbGRfbmFtZSddID0gZGphbmdvX2ZpZWxkX2luZm8ucmVsLmZpZWxkX25hbWUKKyAgICAgICAgICAgIGZpZWxkX2luZm9bJ3JlbF9vYmpfdHlwZSddID0gZGphbmdvX2ZpZWxkX2luZm8ucmVsLnRvLlJlc3QuTkFNRQorICAgICAgICBpZiBmaWVsZF9pbmZvWyd0eXBlJ10gPT0gJ0NoYXJGaWVsZCc6CisgICAgICAgICAgICBmaWVsZF9pbmZvWydtYXhfbGVuZ3RoJ10gPSBkamFuZ29fZmllbGRfaW5mby5tYXhfbGVuZ3RoCisgICAgICAgICNpZiBkamFuZ29fZmllbGRfaW5mby52YWxpZGF0b3JzOgorICAgICAgICAgICAgI2ZpZWxkX2luZm9bJ3ZhbGlkYXRvcnMnXSA9IGRqYW5nb19maWVsZF9pbmZvLnZhbGlkYXRvcnMKKyAgICAgICAgI2lmIGlzaW5zdGFuY2UodHlwZSwgZGphbmdvLlBvc2l0aXZlSW50ZWdlckZpZWxkKToKKyAgICAgICAgICAgICN0eXBlX25hbWUgPSAnUG9zaXRpdmVJbnRlZ2VyRmllbGQnCisgICAgICAgICAgICAjcHJpbnQgdHlwZV9uYW1lCisKKyAgICAgICAgZmllbGRfaW5mb19kaWN0W3Jlc3RfZmllbGRfbmFtZV0gPSBmaWVsZF9pbmZvCisgICAgbW9kZWxfaW5mb19kaWN0W21vZGVsXT17J2ZpZWxkcyc6ZmllbGRfaW5mb19kaWN0LCAnaGFzX3Jlc3RfbW9kZWwnOiBUcnVlfQorCitpbXBvcnQgcHByaW50CitwcCA9IHBwcmludC5QcmV0dHlQcmludGVyKGluZGVudD0yKQorcHJpbnQgIm1vZGVsX2luZm9fZGljdCA9ICIscHAucHByaW50KG1vZGVsX2luZm9fZGljdCkKZGlmZiAtLWdpdCBhL2NsaS9mbXRjbnYucHkgYi9jbGkvZm10Y252LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ4NWRiZjQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvZm10Y252LnB5CkBAIC0wLDAgKzEsMTMyNiBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTIsMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworIyAgc2Ruc2ggLSBUaGUgQ29udHJvbGxlciBTaGVsbAorCitpbXBvcnQgdXJsbGliCitpbXBvcnQgdXJsbGliMgorCitpbXBvcnQgYmFzZTY0CitpbXBvcnQgc3RydWN0CitpbXBvcnQgdGltZQoraW1wb3J0IHJlCitmcm9tIGRhdGV0aW1lIGltcG9ydCBkYXRldGltZSwgdGltZWRlbHRhLCB0emluZm8KK2Zyb20gY2FsZW5kYXIgaW1wb3J0IHRpbWVnbQorZnJvbSB0aW1lc2luY2UgaW1wb3J0IHRpbWVzaW5jZSwgdGltZXNpbmNlX3NlYworaW1wb3J0IGRvY3Rlc3QKK2ltcG9ydCB0cmFjZWJhY2sKK2ltcG9ydCB1dGlmCitpbXBvcnQgY29tbWFuZAoraW1wb3J0IGpzb24KKworCisjIFRpbWV6b25lIGNvbnN0YW50cworY2xhc3MgVXRjKHR6aW5mbyk6CisgICAgZGVmIHV0Y29mZnNldChzZWxmLCBkdCk6CisgICAgICAgIHJldHVybiB0aW1lZGVsdGEoMCkKKyAgICBkZWYgdHpuYW1lKHNlbGYsIGR0KToKKyAgICAgICAgcmV0dXJuICJVVEMiCisgICAgZGVmIGRzdChzZWxmLCBkdCk6CisgICAgICAgIHJldHVybiB0aW1lZGVsdGEoMCkKK1VUQyA9IFV0YygpCisKKworY2xhc3MgUHN0KHR6aW5mbyk6CisgICAgZGVmIHV0Y29mZnNldChzZWxmLCBkdCk6CisgICAgICAgIHJldHVybiB0aW1lZGVsdGEoMCwwLDAsMCwwLC04KQorICAgIGRlZiB0em5hbWUoc2VsZiwgZHQpOgorICAgICAgICByZXR1cm4gIlBTVCIKKyAgICBkZWYgZHN0KHNlbGYsIGR0KToKKyAgICAgICAgcmV0dXJuIHRpbWVkZWx0YSgwLDAsMCwwLDAsLTcpCitQU1QgPSBQc3QoKQorCisKK2FsaWFzX2RpY3RzID0ge30KKworCitkZWYgZ2V0X3N3aXRjaGVzX25hbWVzKG9iamVjdCwgZGF0YSA9Tm9uZSk6CisgICAgIiIiCisgICAgcmV0dXJuIHRoZSBzd2l0Y2hlcyBuYW1lIChmb3IgT05PUykKKyAgICAiIiIKKyAgICBzd2l0Y2hlc19kcGlkX25hbWUgPXt9CisgICAgdXJsID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXN0L3YxL3N3aXRjaGVzIgorICAgIHJlc3VsdCA9IHVybGxpYjIudXJsb3Blbih1cmwpLnJlYWQoKQorICAgICNyZXN1bHQgPSBjb21tYW5kLnNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QocXVlcnlfdXJsKQorICAgIGVudHJpZXMgPSByZXN1bHQKKyAgICBlbnRyaWVzID0ganNvbi5sb2FkcyhyZXN1bHQpCisgICAgI2VwcmludCBlbnRyaWVzCisgICAgZm9yIHN3aXRjaCBpbiBlbnRyaWVzOgorICAgICAgICAjcHJpbnQgc3dpdGNoCisgICAgICAgIHN3aXRjaGVzX2RwaWRfbmFtZVtzd2l0Y2guZ2V0KCJkcGlkIildID0gc3dpdGNoLmdldCgic3RyaW5nQXR0cmlidXRlcyIpLmdldCgnbmFtZScpCisgICAgICAgICNwcmludCBzd2l0Y2guZ2V0KCJkcGlkIikKKyAgICAgICAgI3ByaW50IHN3aXRjaC5nZXQoInN0cmluZ0F0dHJpYnV0ZXMiKS5nZXQoJ25hbWUnKQorICAgIHJldHVybiBzd2l0Y2hlc19kcGlkX25hbWUKKworCitkZWYgdXBkYXRlX2FsaWFzX2RpY3Qob2JqX3R5cGUsIGRpY3QpOgorICAgICIiIgorICAgIFVwZGF0ZSBhbGlhcyBkaWN0aW9uYXJpZXM6IGZvciBzd2l0Y2gsIGhvc3QsIGV0Yy4KKyAgICAiIiIKKyAgICBnbG9iYWwgYWxpYXNfZGljdHMKKyAgICBhbGlhc19kaWN0c1tvYmpfdHlwZV0gPSBkaWN0CisKKworZGVmIGNvbnZlcnRfbWFjX2luX2Jhc2U2NF9ieXRlX2FycmF5X3RvX2hleF9zdHJpbmcoaSwgZGF0YT1Ob25lKToKKyAgICAjIGhtbW0gLSB0YXN0eSBweXRob24KKyAgICBpZiBpID09ICIqIiBvciBpID09ICIiOiAKKyAgICAgICAgcmV0dXJuICIqIgorICAgIHJldHVybiAiOiIuam9pbihbIiUwLjJ4IiAlIHggZm9yIHggaW4gc3RydWN0LnVucGFjaygnQkJCQkJCJywgYmFzZTY0LmI2NGRlY29kZShpKSldKQorCisKK2RlZiBjb252ZXJ0X21hY19pbl9kZWNpbWFsX3RvX2hleF9zdHJpbmcoaSwgZGF0YT1Ob25lKToKKyAgICBpZiBpID09ICIqIiBvciBpID09ICIiOgorICAgICAgICByZXR1cm4gIioiCisgICAgbWFjID0gaGV4KGkpCisgICAgIyBzb21lIHB5dGhvbiBpbXBsZW1lbnRhdGlvbnMgYXBwZW5kICdMJyB0byBoZXgoKSBzbyB3ZSBuZWVkIHRvIHJlbW92ZSBpdAorICAgIGlmIG1hY1tsZW4obWFjKS0xXSA9PSAnTCc6CisgICAgICAgIG1hYyA9IG1hY1s6bGVuKG1hYyktMV0KKyAgICBtYWMgPSAoJzAnICogKDE0IC0gbGVuKG1hYykpICsgbWFjWzI6XSkKKyAgICByZXR1cm4gJzonLmpvaW4oW21hY1t4OngrMl0gZm9yIHggaW4geHJhbmdlKDAsIGxlbihtYWMpLCAyKV0pCisKKworZGVmIGNvbnZlcnRfaXBfaW5faW50ZWdlcl90b19kb3R0ZWRfZGVjaW1hbChpLCBkYXRhPU5vbmUpOgorICAgIGlmIGkgPT0gIioiIG9yIGkgPT0gIiI6IAorICAgICAgICByZXR1cm4gIioiCisgICAgcmV0dXJuICcuJy5qb2luKHJldmVyc2VkKFsgKHN0cigoaSA+PiAoOCp4KSkgJiAweGZmKSkgZm9yIHggaW4gcmFuZ2UoMCw0KV0pKQorCisKK2RlZiBjb252ZXJ0X2ludGVnZXJfdG9fYml0bWFzayhpLCBkYXRhPU5vbmUpOgorICAgIGlmIGkgPT0gIioiIG9yIGkgPT0gIiI6IAorICAgICAgICByZXR1cm4gIioiCisgICAgcmV0dXJuIGJpbihpKQorCisKK2RlZiBjb252ZXJ0X2xvbmdfdG9fZHBpZChpLCBkYXRhPU5vbmUpOgorICAgIGlmIGkgPT0gIioiIG9yIGkgPT0gIiI6IAorICAgICAgICByZXR1cm4gIioiCisgICAgaSA9IGludChpKQorICAgIHJldHVybiAnOicuam9pbihyZXZlcnNlZChbICIlLS4yeCIgJSAoKGkgPj4gKDgqeCkpICYgMHhmZikgZm9yIHggaW4gcmFuZ2UoMCw4KV0pKQorCisKK2RlZiBjb252ZXJ0X3NpZ25lZF9zaG9ydF90b191bnNpZ25lZChpLCBkYXRhPU5vbmUpOgorICAgIHRyeToKKyAgICAgICAgaSA9IGludChpKQorICAgIGV4Y2VwdDoKKyAgICAgICAgcmV0dXJuIGkKKworICAgIGlmIGkgPCAwOiAKKyAgICAgICAgcmV0dXJuIGkgKyAyKioxNgorICAgIGVsc2U6IAorICAgICAgICByZXR1cm4gaQorCisKK2RlZiBjb252ZXJ0X3NpZ25lZF9zaG9ydF9mb3JfdmxhbihpLCBkYXRhPU5vbmUpOgorICAgIGlmIGkgPT0gLTE6CisgICAgICAgIHJldHVybiAiLSIKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gY29udmVydF9zaWduZWRfc2hvcnRfdG9fdW5zaWduZWQoaSwgZGF0YSkKKworCitkZWYgY29udmVydF90b19zdHJpbmcoaSwgZGF0YT1Ob25lKToKKyAgICBpZiB0eXBlKGkpID09IGxpc3Q6CisgICAgICAgIHJldHVybiAnLCAnLmpvaW4oaSkKKyAgICBlbGlmIHR5cGUoaSkgPT0gZGljdDoKKyAgICAgICAgcmV0dXJuICcsICcuam9pbihbIiVzOiVzIiAlIHggZm9yIHggaW4gaS5kaWN0KCldKQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBzdHIoaSkKKworCitkZWYgcHJpbnRfaGV4KGksIGRhdGE9Tm9uZSk6CisgICAgaWYgaSA9PSAiIiBvciBub3QgaW50KGkpOiAKKyAgICAgICAgcmV0dXJuICIiCisgICAgZWxzZTogCisgICAgICAgIHJldHVybiBoZXgoaSkKKworCitkZWYgdGltZXN0YW1wX3RvX2xvY2FsX3RpbWVzdHIoaSwgZGF0YT1Ob25lKToKKyAgICBpZiBpID09ICcnOgorICAgICAgICByZXR1cm4gJycKKyAgICByZXR1cm4gdGltZS5zdHJmdGltZSgiJVktJW0tJWQgJUg6JU06JVMgJVoiLCB0aW1lLmxvY2FsdGltZShpLzEwMDApKQorCisKK2RlZiB1dGNfdGltZXN0cl90b190aW1lc3RhbXAocyk6CisgICAgcmV0dXJuIHRpbWVnbSh0aW1lLnN0cnB0aW1lKHMsICIlWS0lbS0lZCAlSDolTTolUy4lZiIpKSAqIDEwMDAKKworCitkZWYgcHJpbnRfZnJvbV91dGNfdGltZXN0cihzLCBkYXRhPU5vbmUpOgorICAgICIiIkNvbnZlcnRzIGZyb20gYSBVVEMgdGltZSBzdHJpbmcgbGlrZSAyMDEwLTEyLTEyIDE1OjI3OjQxLjY1MDAwMAorICAgIHRvIHRpbWUgc3RyaW5nIGluIGxvY2FsIHRpbWV6b25lIGxpa2UgMjAxMS0wNi0yMyAwMjo1MTo0MSBQRFQKKworICAgICMgRG9jdGVzdCBvbmx5IHZhbGlkIGluIFBhY2lmaWMgVGltZSA7LXwKKyAgICA+Pj4gcHJpbnRfZnJvbV91dGNfdGltZXN0cignMjAxMC0xMi0xMiAxNToyNzo0MS42NTAwMDAnKQorICAgICcyMDEwLTEyLTEyIDA3OjI3OjQxIFBTVCcKKyAgICA+Pj4gcHJpbnRfZnJvbV91dGNfdGltZXN0cignMjAxMC0wNi0xMiAxNToyNzo0MS42NTAwMDAnKQorICAgICcyMDEwLTA2LTEyIDA4OjI3OjQxIFBEVCcKKyAgICA+Pj4gcHJpbnRfZnJvbV91dGNfdGltZXN0cignJykKKyAgICAnJworICAgID4+PiBwcmludF9mcm9tX3V0Y190aW1lc3RyKE5vbmUpCisgICAgJycKKyAgICA+Pj4gcHJpbnRfZnJvbV91dGNfdGltZXN0cignTm90IGEgdmFsaWQgdGltZXN0YW1wJykKKyAgICAnJworICAgICIiIgorICAgIHJldCA9ICcnCisgICAgdHJ5OgorICAgICAgICByZXQgPSB0aW1lc3RhbXBfdG9fbG9jYWxfdGltZXN0cih1dGNfdGltZXN0cl90b190aW1lc3RhbXAocykpCisgICAgZXhjZXB0OgorICAgICAgICBwYXNzCisgICAgcmV0dXJuIHJldAorCisKK2RlZiBwcmludF90aW1lX3NpbmNlX3V0YyhpLCBkYXRhPU5vbmUpOgorICAgIGlmIGkgPT0gTm9uZSBvciBpID09ICcnOgorICAgICAgICByZXR1cm4gJycKKyAgICByZXR1cm4gdGltZXNpbmNlKGRhdGV0aW1lLmZyb210aW1lc3RhbXAoKGkvMTAwMCkpKQorCisKK2RlZiBwcmludF90aW1lX3NpbmNlX3V0Y190aW1lc3RyKHMsIGRhdGE9Tm9uZSwgbm93PU5vbmUpOgorICAgICIiIkNvbnZlcnRzIGZyb20gYSBVVEMgdGltZSBzdHJpbmcgbGlrZSAyMDEwLTEyLTEyIDE1OjI3OjQxLjY1MDAwCisgICAgdG8gaHVtYW4gcmVhZGFiZWwgc3RyaW5nIGxpa2UgJ0xhc3Qgc2VlbiA0IG1pbnV0ZXMgYWdvJworCisgICAgPj4+IG5vdyA9IGRhdGV0aW1lKCoodGltZS5zdHJwdGltZSgnMjAxMC0xMi0xMiAxNToyNzo0MS42NTAwMDAnLCAiJVktJW0tJWQgJUg6JU06JVMuJWYiKVswOjZdKygwLCBQU1QpKSkKKyAgICA+Pj4gcHJpbnRfdGltZV9zaW5jZV91dGNfdGltZXN0cignMjAxMC0xMi0xMiAxNToyNzo0MS42NTAwMDAnLCBub3c9bm93KQorICAgICc4IGhvdXJzJworICAgID4+PiBwcmludF90aW1lX3NpbmNlX3V0Y190aW1lc3RyKCcnKQorICAgICcnCisgICAgPj4+IHByaW50X3RpbWVfc2luY2VfdXRjX3RpbWVzdHIoTm9uZSkKKyAgICAnJworICAgID4+PiBwcmludF90aW1lX3NpbmNlX3V0Y190aW1lc3RyKCdOb3QgYSB2YWxpZCB0aW1lc3RhbXAnKQorICAgICcnCisgICAgIiIiCisgICAgcmV0ID0gJycKKyAgICBpZiBzID09ICcnOgorICAgICAgICByZXR1cm4gJycKKyAgICB0cnk6CisgICAgICAgIGRhdGVfb2JqID0gZGF0ZXRpbWUoKih0aW1lLnN0cnB0aW1lKHMsICIlWS0lbS0lZCAlSDolTTolUy4lZiIpWzA6Nl0gKyAoMCwgVVRDKSkpCisgICAgICAgIHJldCA9IHRpbWVzaW5jZShkYXRlX29iaiwgbm93KQorICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIGRhdGVfb2JqID0gZGF0ZXRpbWUoKih0aW1lLnN0cnB0aW1lKHMsICIlWS0lbS0lZCAlSDolTTolUyIpWzA6Nl0gKyAoMCwgVVRDKSkpCisgICAgICAgICAgICByZXQgPSB0aW1lc2luY2UoZGF0ZV9vYmosIG5vdykKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBkYXRlX29iaiA9IGRhdGV0aW1lKCoodGltZS5zdHJwdGltZShzLCAiJVktJW0tJWRUJUg6JU06JVMuJWZaIilbMDo2XSArICgwLCBVVEMpKSkKKyAgICAgICAgICAgICAgICByZXQgPSB0aW1lc2luY2UoZGF0ZV9vYmosIG5vdykKKyAgICAgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICAgICAgcmV0ID0gIjxmYWlsPiIKKyAgICAgICAgICAgICAgICBwYXNzCisgICAgcmV0dXJuIHJldAorCisKK2RlZiBwcmludF90aW1lc2luY2VfbXNlY19zaW5jZShpLCBkYXRhPU5vbmUpOgorICAgIGlmIGkgPT0gJyc6CisgICAgICAgIHJldHVybiBpCisgICAgcmV0dXJuIHRpbWVzaW5jZV9zZWMoaW50KGkpLzEwMDApCisKK2RlZiBwcmludF9lbnVtX3N0cmluZ19hbmRfaW50KHZhbHVlcywgaSwgbm90X2ZvdW5kX3ZhbCA9IE5vbmUpOgorICAgIGlmIHZhbHVlcyBhbmQgaSBpbiB2YWx1ZXM6CisgICAgICAgIHJldHVybiAiJXMoJXMpIiAlICh2YWx1ZXNbaV0sIGkpCisgICAgZWxzZToKKyAgICAgICAgaWYgbm90X2ZvdW5kX3ZhbDoKKyAgICAgICAgICAgIHJldHVybiBub3RfZm91bmRfdmFsCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gaQorCisKK2RlZiBwcmludF9lbnVtX3N0cmluZ19hbmRfaGV4X2ludCh2YWx1ZXMsIGksIG5vdF9mb3VuZF92YWwgPSBOb25lKToKKyAgICBpZiB2YWx1ZXMgYW5kIGkgaW4gdmFsdWVzOgorICAgICAgICByZXR1cm4gIiVzKCUjeCkiICUgKHZhbHVlc1tpXSwgaW50KGkpKQorICAgIGVsc2U6CisgICAgICAgIGlmIG5vdF9mb3VuZF92YWw6CisgICAgICAgICAgICByZXR1cm4gbm90X2ZvdW5kX3ZhbAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGkKKworCitkZWYgcHJpbnRfbWFza19lbnVtX3N0cmluZ19hbmRfaW50KHZhbHVlcywgYml0cyk6CisgICAgaWYgYml0cyA9PSAiIjogCisgICAgICAgIHJldHVybiBiaXRzCisgICAgYml0c19jb3B5ID0gYml0cworICAgIGVudW1zID0gW10KKyAgICBiaXRfdGVzdCA9IDEKKyAgICB3aGlsZSBiaXRzX2NvcHk6CisgICAgICAgIGlmIGJpdF90ZXN0ICYgYml0c19jb3B5OgorICAgICAgICAgICAgaWYgYml0X3Rlc3QgaW4gdmFsdWVzOgorICAgICAgICAgICAgICAgIGVudW1zLmFwcGVuZCh2YWx1ZXNbYml0X3Rlc3RdKQorICAgICAgICAgICAgYml0c19jb3B5ICY9IGJpdHNfY29weS0xCisgICAgICAgIGJpdF90ZXN0IDw8PSAxCisgICAgaWYgZW51bXM6CisgICAgICAgIHJldHVybiAiLCIuam9pbihlbnVtcykgKyAiKCVzKSIgJSAoaGV4KGJpdHMpIGlmIGJpdHMgPiA5IGVsc2UgYml0cykKKyAgICBlbHNlOgorICAgICAgICBpZiBiaXRzID4gOToKKyAgICAgICAgICAgIHJldHVybiBoZXgoaW50KGJpdHMpKQorICAgICAgICByZXR1cm4gIjAiCisKKworZGVmIHByaW50X3BoeXNpY2FsX3BvcnQoaSwgZGF0YT1Ob25lLCBzd2l0Y2hfa2V5PU5vbmUpOgorICAgIGdsb2JhbCBhbGlhc19kaWN0cworCisgICAgaWYgbm90IGRhdGE6CisgICAgICAgIHJldHVybiBzdHIoaSkKKyAgICBuYW1lX2RpY3QgPSBhbGlhc19kaWN0cy5nZXQoInBvcnROYW1lcyIpCisgICAgaWYgbm90IG5hbWVfZGljdDoKKyAgICAgICAgcmV0dXJuIHN0cihpKQorICAgIGlmIHN3aXRjaF9rZXk6CisgICAgICAgIGtleV9zdHJpbmcgPSBkYXRhW3N3aXRjaF9rZXldICsgJy4nICsgIiVkIiAlIGkKKyAgICBlbGlmICdzd2l0Y2gnIGluIGRhdGE6CisgICAgICAgIGtleV9zdHJpbmcgPSBkYXRhWydzd2l0Y2gnXSArICcuJyArICIlZCIgJSBpCisgICAgZWxpZiAnU3dpdGNoJyBpbiBkYXRhOgorICAgICAgICBrZXlfc3RyaW5nID0gZGF0YVsnU3dpdGNoJ10gKyAnLicgKyAiJWQiICUgaQorICAgICMgcmV0dXJuIHRoZSBwaHlzaWNhbCBuYW1lIGlmIGl0IGV4aXN0cywgb3RoZXJ3aXNlIGkKKyAgICByZXR1cm4gc3RyKG5hbWVfZGljdC5nZXQoa2V5X3N0cmluZywgaSkpCisKKworZGVmIHByaW50X2J5dGVfdW5pdChpLCBkYXRhPU5vbmUsIHN1ZmZpeD1Ob25lKToKKyAgICAiIiIKKyAgICBDb252ZXJ0IHRoZSB2YWx1ZSBvZiAnaScgaW50byBhIGJ5dGUgcmF0ZSB2YWx1ZSwKKyAgICBmb3IgZXhhbXBsZSAnMTAgR0InCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICB2YWx1ZSA9IGludChpKQorICAgIGV4Y2VwdDoKKyAgICAgICAgaWYgaSA9PSAnJzoKKyAgICAgICAgICAgIHJldHVybiAnVW5rbm93bicKKyAgICAgICAgcmV0dXJuIGkKKworICAgIGNvbnZlcnRlciA9ICgKKyAgICAgICAgICAgICAgICAgICAgKDEwMjQgKiAxMDI4ICogMTAyNCAqIDEwMjQgKiAxMDI0ICwgJyBQQicpLAorICAgICAgICAgICAgICAgICAgICAoMTAyNCAqIDEwMjggKiAxMDI0ICogMTAyNCAsICAgICAgICAnIFRCJyksCisgICAgICAgICAgICAgICAgICAgICgxMDI0ICogMTAyOCAqIDEwMjQgLCAgICAgICAgICAgICAgICcgR0InKSwKKyAgICAgICAgICAgICAgICAgICAgKDEwMjggKiAxMDI0ICwgICAgICAgICAgICAgICAgICAgICAgJyBNQicpLAorICAgICAgICAgICAgICAgICAgICAoMTAyNCAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIEtCJyksCisgICAgICAgICAgICAgICAgKQorICAgIGlmIHN1ZmZpeCA9PSBOb25lOgorICAgICAgICBzdWZmaXggPSAnJworCisgICAgZm9yIGlkeCwgKGJvdW5kYXJ5LCBuYW1lKSBpbiBlbnVtZXJhdGUoY29udmVydGVyKToKKyAgICAgICAgdmFsdWUgPSBpIC8gYm91bmRhcnkKKyAgICAgICAgaWYgdmFsdWU6CisgICAgICAgICAgICByZXR1cm4gJyVzJXMlcycgJSAodmFsdWUsIG5hbWUsIHN1ZmZpeCkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gJyVzIEIlcycgJSAoaSwgc3VmZml4KQorCitkZWYgcHJpbnRfYnl0ZV9yYXRlKGksIGRhdGE9Tm9uZSk6CisgICAgcmV0dXJuIHByaW50X2J5dGVfdW5pdChpLCBkYXRhLCAncHMnKQorCitkZWYgcHJpbnRfYml0X3VuaXQoaSwgZGF0YT1Ob25lLCBzdWZmaXg9Tm9uZSk6CisgICAgIiIiCisgICAgQ29udmVydCB0aGUgdmFsdWUgb2YgJ2knIGludG8gYSBiaXQgcmF0ZSB2YWx1ZSwKKyAgICBmb3IgZXhhbXBsZSAnMTAgR2InCisgICAgIiIiCisgICAgdHJ5OgorICAgICAgICB2YWx1ZSA9IGludChpKQorICAgIGV4Y2VwdDoKKyAgICAgICAgaWYgaSA9PSAnJzoKKyAgICAgICAgICAgIHJldHVybiAnVW5rbm93bicKKyAgICAgICAgcmV0dXJuIGkKKworICAgIGNvbnZlcnRlciA9ICgKKyAgICAgICAgICAgICAgICAgICAgKDEwMDAgKiAxMDAwICogMTAwMCAqIDEwMDAgKiAxMDAwICwgJyBQYicpLAorICAgICAgICAgICAgICAgICAgICAoMTAwMCAqIDEwMDAgKiAxMDAwICogMTAwMCAsICAgICAgICAnIFRiJyksCisgICAgICAgICAgICAgICAgICAgICgxMDAwICogMTAwMCAqIDEwMDAgLCAgICAgICAgICAgICAgICcgR2InKSwKKyAgICAgICAgICAgICAgICAgICAgKDEwMDAgKiAxMDAwICwgICAgICAgICAgICAgICAgICAgICAgJyBNYicpLAorICAgICAgICAgICAgICAgICAgICAoMTAwMCAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIEtiJyksCisgICAgICAgICAgICAgICAgKQorICAgIGlmIHN1ZmZpeCA9PSBOb25lOgorICAgICAgICBzdWZmaXggPSAnJworCisgICAgZm9yIGlkeCwgKGJvdW5kYXJ5LCBuYW1lKSBpbiBlbnVtZXJhdGUoY29udmVydGVyKToKKyAgICAgICAgdmFsdWUgPSBpIC8gYm91bmRhcnkKKyAgICAgICAgaWYgdmFsdWU6CisgICAgICAgICAgICByZXR1cm4gJyVzJXMlcycgJSAodmFsdWUsIG5hbWUsIHN1ZmZpeCkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gJyVzIGIlcycgJSAoaSwgc3VmZml4KQorCitkZWYgcHJpbnRfYml0X3JhdGUoaSwgZGF0YT1Ob25lKToKKyAgICByZXR1cm4gcHJpbnRfYml0X3VuaXQoaSwgZGF0YSwgJ3BzJykKKworCitkZWYgZGVjb2RlX29wZW5mbG93X3BvcnQoaSwgZGF0YT1Ob25lLCBzd2l0Y2hfa2V5PU5vbmUpOgorICAgIGlmIGkgPT0gIioiIG9yIGkgPT0gIiI6IAorICAgICAgICByZXR1cm4gIioiCisgICAgIyBJZiB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBwb3J0IG5hbWUgaXMgYSBwbHVzIHNpZ24gKCcrJykKKyAgICAjIHRoaXMgaXMgaW50ZW5kZWQgdG8gYnlwYXNzIGFueSBsb29rdXAgLS0gaXRzIGEgd2F5IHRvIGluZGljYXRlCisgICAgIyB0aGUgZmllbGQgaXMgYWxyZWFkeSBhbiBvcGVuZmxvdyBpbnRlcmZhY2UuCisgICAgaWYgaXNpbnN0YW5jZShpLCB1bmljb2RlKSBhbmQgIGlbMF0gPT0gJysnOgorICAgICAgICByZXR1cm4gaVsxOl0KKyAgICBpID0gY29udmVydF9zaWduZWRfc2hvcnRfdG9fdW5zaWduZWQoaSkKKyAgICBpICY9IDB4ZmZmZgorICAgIHZhbHVlcyA9IHsgCisgICAgICAgIDB4ZmZmOCA6ICJpbnB1dCIsCisgICAgICAgIDB4ZmZmOSA6ICJ0YWJsZSIsCisgICAgICAgIDB4ZmZmYSA6ICJub3JtYWwiLAorICAgICAgICAweGZmZmIgOiAiZmxvb2QiLAorICAgICAgICAweGZmZmMgOiAiYWxsIiwKKyAgICAgICAgMHhmZmZkIDogImNvbnRyb2xsZXIiLAorICAgICAgICAweGZmZmUgOiAibG9jYWwiLAorICAgICAgICAweGZmZmYgOiAibm9uZSIsCisgICAgICAgIH0KKyAgICBpZiBpID49IDB4ZmYwMDoKKyAgICAgICAgaWYgaSBpbiB2YWx1ZXM6CisgICAgICAgICAgICByZXR1cm4gIiVzICglcykiICUgKGksIHZhbHVlc1tpXSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVybiAiJXMiICUgdmFsdWVzW2ldCisgICAgcGh5c19wb3J0ID0gcHJpbnRfcGh5c2ljYWxfcG9ydChpLCBkYXRhLCBzd2l0Y2hfa2V5KQorICAgIGlmIHN0cihpKSAhPSBwaHlzX3BvcnQ6CisgICAgICAgIHJldHVybiBzdHIoaSkgKyAnICgnICsgcGh5c19wb3J0ICsgJyknCisgICAgcmV0dXJuIHN0cihpKQorCisKK2RlZiBkZWNvZGVfb3BlbmZsb3dfcG9ydF9zcmNfc3dpdGNoKGksIGRhdGE9Tm9uZSk6CisgICAgcmV0dXJuIGRlY29kZV9vcGVuZmxvd19wb3J0KGksIGRhdGEsICdzcmMtc3dpdGNoJykKKworCitkZWYgZGVjb2RlX29wZW5mbG93X3BvcnRfc291cmNlX3N3aXRjaChpLCBkYXRhPU5vbmUpOgorICAgIHJldHVybiBkZWNvZGVfb3BlbmZsb3dfcG9ydChpLCBkYXRhLCAnU291cmNlLVN3aXRjaCcpCisKKworZGVmIGRlY29kZV9vcGVuZmxvd19wb3J0X2RzdF9zd2l0Y2goaSwgZGF0YT1Ob25lKToKKyAgICByZXR1cm4gZGVjb2RlX29wZW5mbG93X3BvcnQoaSwgZGF0YSwgJ2RzdC1zd2l0Y2gnKQorCisKK2RlZiBkZWNvZGVfb3BlbmZsb3dfcG9ydF9kZXN0X3N3aXRjaChpLCBkYXRhPU5vbmUpOgorICAgIHJldHVybiBkZWNvZGVfb3BlbmZsb3dfcG9ydChpLCBkYXRhLCAnRGVzdC1Td2l0Y2gnKQorCisKK2RlZiBkZWNvZGVfb3BlbmZsb3dfcG9ydF9pbnB1dFN3aXRjaChpLCBkYXRhPU5vbmUpOgorICAgIHJldHVybiBkZWNvZGVfb3BlbmZsb3dfcG9ydChpLCBkYXRhLCAnaW5wdXRTd2l0Y2gnKQorCisKK2RlZiBkZWNvZGVfb3BlbmZsb3dfcG9ydF9kcGlkKGksIGRhdGE9Tm9uZSk6CisgICAgcmV0dXJuIGRlY29kZV9vcGVuZmxvd19wb3J0KGksIGRhdGEsICdkcGlkJykKKworCisjIHdlbGwga25vd24gY29va2llIGlkJ3MgbWFuYWdlZCBkaXJlY3RseSwgb3RoZXIncyBjYW4gYmUgcmVnaXN0ZXJlZAorY29va2llX2FwcF9pZHMgPSB7CisgICAgMTogImxzd2l0Y2giLAorICAgIDI6ICJGTDpmb3J3IiwKKyAgICAzOiAiVFVOOmZvcnciLAorICAgIDQ6ICJWVEE6Zm9ydyIsCisgICAxMDogInN0YXRpYyIsCit9CisKK2Zsb3dfY29va2llX3JlZ2lzdHJ5ID0geyB9CisKK2RlZiByZWdpc3Rlcl9mbG93X2Nvb2tpZV9kZWNvZGVyKG5hbWUsIGFwcF9pZCwgZW5jb2Rlcl9wcm9jLCBkZWNvZGVyX3Byb2MsIGNvbnZlcnNpb25fZGljdF9uYW1lKToKKyAgICAiIiIKKyAgICBSZWdpc3RlciBhIGZsb3cgZW5jb2RpbmcvZGVjb2Rpbmcgc3RyYXRlZ3kKKyAgICAiIiIKKyAgICAjIHNob3VsZCBiZSBwcm92aWRlIGEgcmV0dXJuIGNvZGU/CisKKyAgICBjb29raWVfYXBwX2lkc1thcHBfaWRdID0gbmFtZQorICAgIGZsb3dfY29va2llX3JlZ2lzdHJ5W2ludChhcHBfaWQpXSA9IHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICduYW1lJyAgICA6IG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZW5jb2RlcicgOiBlbmNvZGVyX3Byb2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVjb2RlcicgOiBkZWNvZGVyX3Byb2MsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY3Z0JyAgICAgOiBjb252ZXJzaW9uX2RpY3RfbmFtZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KKworZGVmIGNhbGxvdXRfZmxvd19lbmNvZGVycyhjb250ZXh0KToKKyAgICBmb3IgKHJlZ2lzdHJhbnQsIHJlZ2lzdHJ5KSBpbiBmbG93X2Nvb2tpZV9yZWdpc3RyeS5pdGVtcygpOgorICAgICAgICBkaWN0X25hbWUgPSByZWdpc3RyeVsnY3Z0J10KKyAgICAgICAgYWxpYXNfZGljdHNbZGljdF9uYW1lXSA9IHJlZ2lzdHJ5WydlbmNvZGVyJ10oY29udGV4dCkKKworCitkZWYgZGVjb2RlX2Zsb3dfY29va2llKGksIGRhdGE9Tm9uZSk6CisgICAgY29va2llID0gaQorICAgIG5ld19jb29raWUgPSBOb25lCisKKyAgICAjIDEyIGJpdHMgYXBwIGlkIC0gMjAgYml0cyBmbG93IGhhc2ggLSAzMiBiaXRzIHVzZXIgY29va2llCisgICAgYXBwX2lkID0gKGNvb2tpZSA+PiA1MikgJiAoKDEgPDwgMTIpIC0gMSkKKworICAgIGZsb3dfaGFzaCA9IChjb29raWUgPj4gMzIpICYgKCgxIDw8IDIwKSAtIDEpCisgICAgaWYgYXBwX2lkIGluIGNvb2tpZV9hcHBfaWRzOgorICAgICAgICBuZXdfY29va2llID0gY29va2llX2FwcF9pZHNbYXBwX2lkXQorICAgICAgICBpZiBjb29raWVfYXBwX2lkc1thcHBfaWRdID09ICJzdGF0aWMiOgorICAgICAgICAgICAgZ2xvYmFsIGFsaWFzX2RpY3RzCisgICAgICAgICAgICBmbG93X21hcCA9IGFsaWFzX2RpY3RzLmdldCgic3RhdGljZmxvdyIsIFtdKQorICAgICAgICAgICAgaWYgZmxvd19oYXNoIGluIGZsb3dfbWFwOgorICAgICAgICAgICAgICAgIG5ld19jb29raWUgKz0gIi0lcyIgJSBmbG93X21hcFtmbG93X2hhc2hdCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG5ld19jb29raWUgKz0gIi1mbG93X2hhc2g6ICVzIiAlIGZsb3dfaGFzaAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgaWYgZmxvd19oYXNoICE9IDA6CisgICAgICAgICAgICAgICAgbmV3X2Nvb2tpZSArPSAiLWZsb3dfaGFzaDogJXMiICUgZmxvd19oYXNoCisgICAgICAgIHVzZXJfY29va2llID0gKGNvb2tpZSAmICgoMSA8PCAzMikgLSAxKSkKKworICAgICAgICBpZiB1c2VyX2Nvb2tpZToKKyAgICAgICAgICAgIGlmIGFwcF9pZCBpbiBmbG93X2Nvb2tpZV9yZWdpc3RyeToKKyAgICAgICAgICAgICAgICAjIENhbGwgcmVnaXN0ZXJlZCBmdW5jdGlvbiB3aXRoIHRoZSBjb252ZXJzaW9uIGRpY3Rpb25hcnkKKyAgICAgICAgICAgICAgICAjIGFuZCB0aGUgY29va2llCisgICAgICAgICAgICAgICAgY29udmVyc2lvbl9kaWN0X25hbWUgPSBmbG93X2Nvb2tpZV9yZWdpc3RyeVthcHBfaWRdWydjdnQnXQorICAgICAgICAgICAgICAgIG5ld19jb29raWUgPSAoZmxvd19jb29raWVfcmVnaXN0cnlbYXBwX2lkXVsnZGVjb2RlciddKSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNfZGljdHMuZ2V0KGNvbnZlcnNpb25fZGljdF9uYW1lKSwgY29va2llKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBuZXdfY29va2llICs9ICIsIGNvb2tpZTogJSN4IiAlIHVzZXJfY29va2llCisgICAgZWxzZToKKyAgICAgICAgIyBpZiB0aGUgYXBwX2lkIGlzbid0IGtub3duLCBkaXNwbGF5IGFsbCA2NCBiaXRzIG9mIHRoZSBjb29raWUKKyAgICAgICAgbmV3X2Nvb2tpZSA9ICJ1bmtub3duICVzLCBjb29raWUgJXMiICUgKGFwcF9pZCwgY29va2llKQorCisgICAgaWYgbmV3X2Nvb2tpZToKKyAgICAgICAgcmV0dXJuIG5ld19jb29raWUKKworICAgIHJldHVybiAnJSN4JyAlIGNvb2tpZQorCisKK2V0aGVyX3R5cGVfdG9fbmFtZV9kaWN0ID0geworICAgIDB4MDgwMCA6ICJpcCIsCisgICAgMHgwODA2IDogImFycCIsCisgICAgMHg4MDM1IDogInJhcnAiLAorICAgIDB4ODA5QiA6ICJhcHBsZXRhbGsiLAorICAgIDB4ODA5QiA6ICJhcHBsZXRhbGstYWFycCIsCisgICAgMHg4MTAwIDogIjgwMi4xUSIsCisgICAgMHg4MTM3IDogImlweCIsCisgICAgMHg4MTM4IDogIm5vdmVsbCIsCisgICAgMHg4NmRkIDogImlwdjYiLAorICAgIDB4ODg0NyA6ICJtcGxzIiwKKyAgICAweDg4NDggOiAibXBscy1tYyIsCisgICAgMHg4OGNjIDogImxsZHAiLAorfQorCisKK2V0aGVyX3R5cGVfdG9fbnVtYmVyX2RpY3QgPSBkaWN0KFtbdiwgbl0gZm9yIChuLHYpIGluIGV0aGVyX3R5cGVfdG9fbmFtZV9kaWN0Lml0ZW1zKCldKQorCisKK2RlZiBkZWNvZGVfZXRoZXJfdHlwZShpLCBkYXRhPU5vbmUpOgorICAgIGlmIGkgPT0gIioiIG9yIGkgPT0gIiI6IAorICAgICAgICByZXR1cm4gIioiCisgICAgaWYgdHlwZShpKSAhPSBpbnQgYW5kIGkuc3RhcnRzd2l0aCgiMHgiKToKKyAgICAgICAgaSA9IGludChpLCAxNikgIyBpIGlzIGluIGhleAorICAgIGkgPSBjb252ZXJ0X3NpZ25lZF9zaG9ydF90b191bnNpZ25lZChpKQorCisgICAgdHJ5OgorICAgICAgICBpICY9IDB4ZmZmZgorICAgIGV4Y2VwdDoKKyAgICAgICAgcmV0dXJuICcqY3Z0ICVzICVzKicgJSAoaSwgdHlwZShpKSkKKworICAgIHJldHVybiBwcmludF9lbnVtX3N0cmluZ19hbmRfaGV4X2ludChldGhlcl90eXBlX3RvX25hbWVfZGljdCwgaSkKKworCitkZWYgZGVjb2RlX25ldHdvcmtfcHJvdG9jb2woaSwgZGF0YT1Ob25lKToKKyAgICBpZiBpID09ICIqIiBvciBpID09ICIiOiAKKyAgICAgICAgcmV0dXJuICIqIgorICAgIGV0aGVyX3R5cGUgPSAiaXAiICMgZGVmYXVsdAorICAgIGlmIGRhdGE6CisgICAgICAgIGlmICdldGhlci10eXBlJyBpbiBkYXRhOgorICAgICAgICAgICAgZXRoZXJfdHlwZSA9IGRlY29kZV9ldGhlcl90eXBlKGRhdGFbJ2V0aGVyLXR5cGUnXSkKKyAgICAgICAgZWxpZiAnZGF0YUxheWVyVHlwZScgaW4gZGF0YToKKyAgICAgICAgICAgIGV0aGVyX3R5cGUgPSBkZWNvZGVfZXRoZXJfdHlwZShkYXRhWydkYXRhTGF5ZXJUeXBlJ10pCisgICAgICAgIGV0aGVyX3R5cGUgPSBzdHIoZXRoZXJfdHlwZSkuc3BsaXQoJygnKVswXQorICAgIG5ldF9wcm90b19oYXNoID0geworICAgICAgICAiaXAiIDogeworICAgICAgICAgICAgMSAgOiAiaWNtcCIsCisgICAgICAgICAgICAyICA6ICJpZ21wIiwKKyAgICAgICAgICAgIDMgIDogImdncCIsCisgICAgICAgICAgICA0ICA6ICJpcC1pbi1pcCIsCisgICAgICAgICAgICA2ICA6ICJ0Y3AiLAorICAgICAgICAgICAgMTcgOiAidWRwIiwKKyAgICAgICAgICAgIDUwIDogImVzcCIsCisgICAgICAgICAgICA1MSA6ICJhaCIKKyAgICAgICAgICAgIH0sCisgICAgICAgICJhcnAiOiB7CisgICAgICAgICAgICAxICA6ICJhcnAtcmVxIiwKKyAgICAgICAgICAgIDIgIDogImFycC1yZXAiLAorICAgICAgICAgICAgMyAgOiAicmFycC1yZXEiLAorICAgICAgICAgICAgNCAgOiAicmFycC1yZXAiLAorICAgICAgICAgICAgNSAgOiAiZHJhcnAtcmVxIiwKKyAgICAgICAgICAgIDYgIDogImRyYXJwLXJlcCIsCisgICAgICAgICAgICA3ICA6ICJkcmFycC1lcnIiLAorICAgICAgICAgICAgOCAgOiAiaW5hcnAtcmVxIiwKKyAgICAgICAgICAgIDkgIDogImluYXJwLXJlcCIsCisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICByZXR1cm4gcHJpbnRfZW51bV9zdHJpbmdfYW5kX2ludChuZXRfcHJvdG9faGFzaC5nZXQoZXRoZXJfdHlwZSwgTm9uZSksIGkpCisKK3RjcF9kZWNvZGVfcG9ydF9kaWN0ID0geworICAgIDIyICAgOiAic3NoIiwKKyAgICA1MyAgIDogImRucyIsCisgICAgODAgICA6ICdodHRwJywKKyAgICA0NDMgIDogJ2h0dHBzJworfQorCit0Y3BfbmFtZV90b19udW1iZXJfZGljdCA9IGRpY3QoW1t2LCBuXSBmb3IgKG4sdikgaW4gdGNwX2RlY29kZV9wb3J0X2RpY3QuaXRlbXMoKV0pCisKKyMgZmlsbCBpbiB2YWx1ZXMgaWYgd2Ugd2FudCEKK2RlZiBkZWNvZGVfdGNwX3BvcnQoaSk6IAorICAgIHJldHVybiBwcmludF9lbnVtX3N0cmluZ19hbmRfaW50KHRjcF9kZWNvZGVfcG9ydF9kaWN0LCBpKQorCisKK3VkcF9kZWNvZGVfcG9ydF9kaWN0ID0geworICAgIDUzIDogImRucyIsCit9CisKK3VkcF9uYW1lX3RvX251bWJlcl9kaWN0ID0gZGljdChbW3YsIG5dIGZvciAobix2KSBpbiB1ZHBfZGVjb2RlX3BvcnRfZGljdC5pdGVtcygpXSkKKworZGVmIGRlY29kZV91ZHBfcG9ydChpKTogCisgICAgdmFsdWVzID0geyAKKyAgICAgICAgfQorICAgIHJldHVybiBwcmludF9lbnVtX3N0cmluZ19hbmRfaW50KHZhbHVlcywgaSkKKworCitpY21wX3R5cGVfY29kZV9oYXNoID0geworICAgIDAgOiB7ICJuYW1lIiAgOiAiZWNoby1yZXAiIH0sCisgICAgMyA6IHsgIm5hbWUiICA6ICJkZXN0LXVucmVhY2giLAorICAgICAgICAgICJjb2RlcyIgOiB7IDAgOiAibmV0LXVucmVhY2giLAorICAgICAgICAgICAgICAgICAgICAgIDEgOiAiaG9zdC11bnJlYWNoIiwKKyAgICAgICAgICAgICAgICAgICAgICAyIDogInByb3RvLXVucmVhY2giLAorICAgICAgICAgICAgICAgICAgICAgIDMgOiAicG9ydC11bnJlYWNoIiwKKyAgICAgICAgICAgICAgICAgICAgICA0IDogImZyYWctbmVlZGVkIiwKKyAgICAgICAgICAgICAgICAgICAgICA1IDogInNyYy1ydC1mYWlsIiwKKyAgICAgICAgICAgICAgICAgICAgICA2IDogImRlc3QtbmV0LXVuayIsCisgICAgICAgICAgICAgICAgICAgICAgNyA6ICJkZXN0LWhvc3QtdW5rIiwKKyAgICAgICAgICAgICAgICAgICAgICA4IDogInNyYy1ob3N0LWlzb2wiLAorICAgICAgICAgICAgICAgICAgICAgIDkgOiAicHJvaGliaXQtZGVzdC1uZXQiLAorICAgICAgICAgICAgICAgICAgICAgIDEwIDogInByb2hpYml0LWRlc3QtaG9zdCIsCisgICAgICAgICAgICAgICAgICAgICAgMTEgOiAiZGVzdC1uZXQtdW5yZWFjaC1mb3ItdG9zIiwKKyAgICAgICAgICAgICAgICAgICAgICAxMiA6ICJkZXN0LWhvc3QtdW5yZWFjaC1mb3ItdG9zIiwKKyAgICAgICAgICAgICAgICAgICAgICAxMyA6ICJwcm9oaWJpdC1jb21tIiB9IH0sCisgICAgNCA6IHsgIm5hbWUiICA6ICJzcmMtcXVlbmNoIiB9LAorICAgIDUgOiB7ICJuYW1lIiAgOiAicmVkaXJlY3QiLAorICAgICAgICAgICJjb2RlcyIgOiB7IDAgOiAicmVkaXItZm9yLW5ldCIsCisgICAgICAgICAgICAgICAgICAgICAgMSA6ICJyZWRpci1mb3ItaG9zdCIsCisgICAgICAgICAgICAgICAgICAgICAgMiA6ICJyZWRpci1mb3ItbmV0LWZvci10b3MiLAorICAgICAgICAgICAgICAgICAgICAgIDMgOiAicmVkaXItZm9yLWhvc3QtZm9yLXRvcyIgfSB9LAorICAgIDYgOiB7ICJuYW1lIiAgOiAiYWx0LWFkZHItZm9yLWhvc3QiIH0sCisgICAgOCA6IHsgIm5hbWUiICA6ICJlY2hvLXJlcSIgfSwKKyAgICA5IDogeyAibmFtZSIgIDogInJvdXRlci1hZHZlcnQiIH0sCisgICAgMTA6IHsgIm5hbWUiICA6ICJyb3V0ZXItc2VsIiB9LAorICAgIDExOiB7ICJuYW1lIiAgOiAidGltZS1leGNlZWRlZCIsCisgICAgICAgICAgImNvZGVzIiA6IHsgMCA6ICJ0dGwtZXhjZWVkZWQiLAorICAgICAgICAgICAgICAgICAgICAgIDEgOiAiZnJhZy1yZWFzc2VtYmxlLWV4Y2VlZGVkIiB9IH0sCisgICAgMTI6IHsgIm5hbWUiICA6ICJwYXJhbS1wcm9ibGVtIiwKKyAgICAgICAgICAiY29kZXMiIDogeyAwIDogInBvaW50ZXItZXJyb3IiLAorICAgICAgICAgICAgICAgICAgICAgIDEgOiAibWlzc2luZy1vcHQiLAorICAgICAgICAgICAgICAgICAgICAgIDIgOiAiYmFkLWxlbmd0aCIgfSB9LAorICAgIDEzOiB7ICJuYW1lIiA6ICJ0aW1lc3RhbXAtcmVxdWVzdCIgfSwKKyAgICAxNDogeyAibmFtZSIgOiAidGltZXN0YW1wLXJlcGx5IiB9LAorICAgIDE1OiB7ICJuYW1lIiA6ICJpbmZvLXJlcXVlc3QiIH0sCisgICAgMTY6IHsgIm5hbWUiIDogImluZm8tcmVwbHkiIH0sCisgICAgMTc6IHsgIm5hbWUiIDogImFkZHItbWFzay1yZXF1ZXN0IiB9LAorICAgIDE4OiB7ICJuYW1lIiA6ICJhZGRyLW1hc2stcmVwbHkiIH0sCisgICAgMzA6IHsgIm5hbWUiIDogInRyYWNlcm91dGUiIH0KK30KKyAgICAgICAgICAgICAgICAgICAgICAKKworZGVmIGRlY29kZV9pY21wX3R5cGUoaSwgZGF0YT1Ob25lKToKKyAgICBpZiBpIGluIGljbXBfdHlwZV9jb2RlX2hhc2g6CisgICAgICAgIHJldHVybiAiJXMoJXMpIiAlIChpY21wX3R5cGVfY29kZV9oYXNoW2ldWyduYW1lJ10sIGkpCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuIGkKKworCitkZWYgZGVjb2RlX2ljbXBfY29kZShpLCBkYXRhPU5vbmUpOgorICAgIGlmIGRhdGEgYW5kICd0cmFuc3BvcnRTb3VyY2UnIGluIGRhdGE6CisgICAgICAgIGljbXBfdHlwZSA9IGRlY29kZV9pY21wX3R5cGUoZGF0YVsndHJhbnNwb3J0U291cmNlJ10sIGRhdGEpCisgICAgZWxpZiBkYXRhIGFuZCAnc3JjLXBvcnQnIGluIGRhdGE6CisgICAgICAgIGljbXBfdHlwZSA9IGRlY29kZV9pY21wX3R5cGUoZGF0YVsnc3JjLXBvcnQnXSwgZGF0YSkKKyAgICB0cnk6CisgICAgICAgIHJldHVybiBwcmludF9lbnVtX3N0cmluZ19hbmRfaW50KGljbXBfdHlwZV9jb2RlX2hhc2hbaWNtcF90eXBlXVsiY29kZXMiXSwgaSwgIi0iKQorICAgIGV4Y2VwdDoKKyAgICAgICAgcmV0dXJuICItIgorCisKK2RlZiBkZWNvZGVfc3JjX3BvcnQoaSwgZGF0YT1Ob25lKToKKyAgICBpID0gY29udmVydF9zaWduZWRfc2hvcnRfdG9fdW5zaWduZWQoaSkKKyAgICBpZiBkYXRhOgorICAgICAgICBpZiAnbmV0d29ya1Byb3RvY29sJyBpbiBkYXRhOgorICAgICAgICAgICAgbmV0X3Byb3RvID0gZGVjb2RlX25ldHdvcmtfcHJvdG9jb2woZGF0YVsnbmV0d29ya1Byb3RvY29sJ10sIGRhdGEpCisgICAgICAgIGVsaWYgJ3Byb3RvY29sJyBpbiBkYXRhOgorICAgICAgICAgICAgbmV0X3Byb3RvID0gZGVjb2RlX25ldHdvcmtfcHJvdG9jb2woZGF0YVsncHJvdG9jb2wnXSwgZGF0YSkKKyAgICAgICAgZWxpZiAnUHJvdG9jb2wnIGluIGRhdGE6CisgICAgICAgICAgICBuZXRfcHJvdG8gPSBkZWNvZGVfbmV0d29ya19wcm90b2NvbChkYXRhWydQcm90b2NvbCddLCBkYXRhKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIGkKKyAgICAgICAgbmV0X3Byb3RvID0gc3RyKG5ldF9wcm90bykuc3BsaXQoJygnKVswXQorICAgICAgICBpZiBuZXRfcHJvdG8gPT0gImljbXAiOgorICAgICAgICAgICAgcmV0dXJuIGRlY29kZV9pY21wX3R5cGUoaSkKKyAgICAgICAgZWxpZiBuZXRfcHJvdG8gPT0gInRjcCI6CisgICAgICAgICAgICByZXR1cm4gZGVjb2RlX3RjcF9wb3J0KGkpCisgICAgICAgIGVsaWYgbmV0X3Byb3RvID09ICJ1ZHAiOgorICAgICAgICAgICAgcmV0dXJuIGRlY29kZV91ZHBfcG9ydChpKQorICAgIHJldHVybiBpCisKKworZGVmIGRlY29kZV9kc3RfcG9ydChpLCBkYXRhPU5vbmUpOgorICAgIGkgPSBjb252ZXJ0X3NpZ25lZF9zaG9ydF90b191bnNpZ25lZChpKQorICAgIGlmIGRhdGE6CisgICAgICAgIGlmICduZXR3b3JrUHJvdG9jb2wnIGluIGRhdGE6CisgICAgICAgICAgICBuZXRfcHJvdG8gPSBkZWNvZGVfbmV0d29ya19wcm90b2NvbChkYXRhWyduZXR3b3JrUHJvdG9jb2wnXSwgZGF0YSkKKyAgICAgICAgZWxpZiAncHJvdG9jb2wnIGluIGRhdGE6CisgICAgICAgICAgICBuZXRfcHJvdG8gPSBkZWNvZGVfbmV0d29ya19wcm90b2NvbChkYXRhWydwcm90b2NvbCddLCBkYXRhKQorICAgICAgICBlbGlmICdQcm90b2NvbCcgaW4gZGF0YToKKyAgICAgICAgICAgIG5ldF9wcm90byA9IGRlY29kZV9uZXR3b3JrX3Byb3RvY29sKGRhdGFbJ1Byb3RvY29sJ10sIGRhdGEpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gaQorICAgICAgICBuZXRfcHJvdG8gPSBzdHIobmV0X3Byb3RvKS5zcGxpdCgnKCcpWzBdCisgICAgICAgIGlmIG5ldF9wcm90byA9PSAiaWNtcCI6CisgICAgICAgICAgICByZXR1cm4gZGVjb2RlX2ljbXBfY29kZShpLCBkYXRhKQorICAgICAgICBlbGlmIG5ldF9wcm90byA9PSAidGNwIjoKKyAgICAgICAgICAgIHJldHVybiBkZWNvZGVfdGNwX3BvcnQoaSkKKyAgICAgICAgZWxpZiBuZXRfcHJvdG8gPT0gInVkcCI6CisgICAgICAgICAgICByZXR1cm4gZGVjb2RlX3VkcF9wb3J0KGkpCisgICAgcmV0dXJuIGkKKworCitkZWYgZGVjb2RlX2FjdGlvbnMoYWN0aW9uX2xpc3QsIGRhdGE9Tm9uZSk6CisgICAgVFRMX0RFQ1JFTUVOVF9TVUJUWVBFID0gMTgKKyAgICBTRVRfVFVOTkVMX0RTVF9TVUJUWVBFID0gMgorICAgIE5JQ0lSQV9WRU5ET1JfSUQ9ODk5MiAgIzB4MDAwMDIzMjAKKyAgICBCU05fVkVORE9SX0lEPTYwMzUxNDMgICMweDVjMTZjNworICAgIGRlY29kZWRfYWN0aW9ucyA9IFtdCisgICAgZm9yIGEgaW4gYWN0aW9uX2xpc3Q6CisgICAgICAgIGRlY29kZWRfYWN0aW9uID0gYVsndHlwZSddCisgICAgICAgIGlmIGRlY29kZWRfYWN0aW9uID09ICJPVVRQVVQiOgorICAgICAgICAgICAgcG9ydCA9IGRlY29kZV9vcGVuZmxvd19wb3J0KGFbJ3BvcnQnXSwgZGF0YSkKKyAgICAgICAgICAgIGRlY29kZWRfYWN0aW9uID0gIm91dHB1dD0lcyIgJSAocG9ydCwpCisgICAgICAgIGVsaWYgZGVjb2RlZF9hY3Rpb24gPT0gIk9QQVFVRV9FTlFVRVVFIjoKKyAgICAgICAgICAgICMgTE9PSyEgTm90IGRlY29kZWQgdG8gcGh5c2ljYWwgcG9ydCBzaW5jZSB0aGUgY29uZmlndXJhdGlvbiBwYXJ0IG9mIENMSSBkb2VzIG5vdCBkbyB0aGUgdHJhbnNsYXRpb24gZWl0aGVyCisgICAgICAgICAgICBkZWNvZGVkX2FjdGlvbiA9ICJlbnF1ZXVlPSVkOjB4JTAyeCIgJSAoYVsncG9ydCddLCBhWydxdWV1ZUlkJ10pCisgICAgICAgIGVsaWYgZGVjb2RlZF9hY3Rpb24gPT0gIlNFVF9WTEFOX0lEIjoKKyAgICAgICAgICAgIGRlY29kZWRfYWN0aW9uID0gInNldC12bGFuLWlkPSVkIiAlIGFbJ3ZpcnR1YWxMYW5JZGVudGlmaWVyJ10KKyAgICAgICAgZWxpZiBkZWNvZGVkX2FjdGlvbiA9PSAiU0VUX1ZMQU5fUENQIjoKKyAgICAgICAgICAgIGRlY29kZWRfYWN0aW9uID0gInNldC12bGFuLXByaW9yaXR5PTB4JTAyeCIgJSBhWyd2aXJ0dWFsTGFuUHJpb3JpdHlDb2RlUG9pbnQnXQorICAgICAgICBlbGlmIGRlY29kZWRfYWN0aW9uID09ICJTVFJJUF9WTEFOIjoKKyAgICAgICAgICAgIGRlY29kZWRfYWN0aW9uID0gInN0cmlwLXZsYW4iCisgICAgICAgIGVsaWYgZGVjb2RlZF9hY3Rpb24gPT0gIlNFVF9ETF9TUkMiOgorICAgICAgICAgICAgZGVjb2RlZF9hY3Rpb24gPSAic2V0LXNyYy1tYWM9JXMiICUgYVsnZGF0YUxheWVyQWRkcmVzcyddCisgICAgICAgIGVsaWYgZGVjb2RlZF9hY3Rpb24gPT0gIlNFVF9ETF9EU1QiOgorICAgICAgICAgICAgZGVjb2RlZF9hY3Rpb24gPSAic2V0LWRzdC1tYWM9JXMiICUgYVsnZGF0YUxheWVyQWRkcmVzcyddCisgICAgICAgIGVsaWYgZGVjb2RlZF9hY3Rpb24gPT0gIlNFVF9OV19TUkMiOgorICAgICAgICAgICAgZGVjb2RlZF9hY3Rpb24gPSAic2V0LXNyYy1pcD0lcyIgJSBkZWNvZGVfaXBhZGRyKGFbJ25ldHdvcmtBZGRyZXNzJ10pCisgICAgICAgIGVsaWYgZGVjb2RlZF9hY3Rpb24gPT0gIlNFVF9OV19EU1QiOgorICAgICAgICAgICAgZGVjb2RlZF9hY3Rpb24gPSAic2V0LWRzdC1pcD0lcyIgJSBkZWNvZGVfaXBhZGRyKGFbJ25ldHdvcmtBZGRyZXNzJ10pCisgICAgICAgIGVsaWYgZGVjb2RlZF9hY3Rpb24gPT0gIlNFVF9OV19UT1MiOgorICAgICAgICAgICAgZGVjb2RlZF9hY3Rpb24gPSAic2V0LXRvcy1iaXRzPTB4JTAyeCIgJSBhWyduZXR3b3JrVHlwZU9mU2VydmljZSddCisgICAgICAgIGVsaWYgZGVjb2RlZF9hY3Rpb24gPT0gIlNFVF9UUF9TUkMiOgorICAgICAgICAgICAgZGVjb2RlZF9hY3Rpb24gPSAic2V0LXNyYy1wb3J0PSVkIiAlIGFbJ3RyYW5zcG9ydFBvcnQnXQorICAgICAgICBlbGlmIGRlY29kZWRfYWN0aW9uID09ICJTRVRfVFBfRFNUIjoKKyAgICAgICAgICAgIGRlY29kZWRfYWN0aW9uID0gInNldC1kc3QtcG9ydD0lZCIgJSBhWyd0cmFuc3BvcnRQb3J0J10KKyAgICAgICAgZWxpZiBkZWNvZGVkX2FjdGlvbiA9PSJWRU5ET1IiOgorICAgICAgICAgICAgaWYgJ3ZlbmRvcicgaW4gYToKKyAgICAgICAgICAgICAgICBpZiBhWyd2ZW5kb3InXT09TklDSVJBX1ZFTkRPUl9JRDoKKyAgICAgICAgICAgICAgICAgICAgaWYgJ3ZlbmRvckRhdGEnIGluIGE6CisgICAgICAgICAgICAgICAgICAgICAgICB2ZW5kb3JkYXRhPWFbJ3ZlbmRvckRhdGEnXS5kZWNvZGUoJ2Jhc2U2NCcsJ3N0cmljdCcpCisgICAgICAgICAgICAgICAgICAgICAgICB2ZW5kb3JkYXRhPXZlbmRvcmRhdGEuZW5jb2RlKCdoZXgnKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgdmVuZG9yZGF0YS5zdGFydHN3aXRoKCcwMDEyJyk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2RlZF9hY3Rpb249Im5pY2lyYV92ZW5kb3I6ZGVjIFRUTCIKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2RlZF9hY3Rpb249Im5pY2lyYV92ZW5kb3I6dW5rbm93biIKKyAgICAgICAgICAgICAgICBpZiBhWyd2ZW5kb3InXT09QlNOX1ZFTkRPUl9JRDoKKyAgICAgICAgICAgICAgICAgICAgaWYgJ3ZlbmRvckRhdGEnIGluIGE6CisgICAgICAgICAgICAgICAgICAgICAgICB2ZW5kb3JkYXRhPWFbJ3ZlbmRvckRhdGEnXS5kZWNvZGUoJ2Jhc2U2NCcsJ3N0cmljdCcpCisgICAgICAgICAgICAgICAgICAgICAgICB2ZW5kb3JkYXRhPXZlbmRvcmRhdGEuZW5jb2RlKCdoZXgnKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgdmVuZG9yZGF0YS5zdGFydHN3aXRoKCcwMDAwMDAwMScpOiAgI0JTTl9BQ1RJT05fTUlSUk9SCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2RlZF9hY3Rpb249ImJzbl92ZW5kb3I6TUlSUk9SIgorICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiB2ZW5kb3JkYXRhLnN0YXJ0c3dpdGgoJzAwMDAwMDAyJyk6ICNTRVRfVFVOTkVMX0RTVF9TVUJUWVBFCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXA9dmVuZG9yZGF0YVs4Ol0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHI9W10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgaSBpbiBbNiw0LDIsMF06CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwaW50PSBpcFtpOmkrMl0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXBpbnQ9IHN0cihpbnQoaXBpbnQsMTYpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcGFkZHIuYXBwZW5kKGlwaW50KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwc3RyPScuJy5qb2luKGlwYWRkcikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGVkX2FjdGlvbj0iYnNuX3ZlbmRvcjpUVU5OTDoiICsgaXBzdHIKKyAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb2RlZF9hY3Rpb249ImJzbl92ZW5kb3I6dW5rbm93biIKKyAgICAgICAgZGVjb2RlZF9hY3Rpb25zLmFwcGVuZChkZWNvZGVkX2FjdGlvbikKKyAgICBpZiBsZW4oZGVjb2RlZF9hY3Rpb25zKSA9PSAwOgorICAgICAgICByZXR1cm4gImRyb3AiCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuICIsIi5qb2luKGRlY29kZWRfYWN0aW9ucykKKworCitkZWYgZGVjb2RlX3BvcnRfY291bnRlcihpLCBkYXRhPU5vbmUpOgorICAgIGlmIGkgPT0gLTE6IAorICAgICAgICByZXR1cm4gIm4vYSIKKyAgICBlbHNlOiAKKyAgICAgICAgcmV0dXJuIGkKKworCitkZWYgZGVjb2RlX21hY2FkZHIoYWRkcik6CisgICAgcmV0ID0gJ2ludmFsaWQtbWFjLWFkZHInCisgICAgdHJ5OgorICAgICAgICBtYWNieXRlcyA9IGJhc2U2NC5iNjRkZWNvZGUoYWRkcikKKyAgICAgICAgcmV0ID0gJzonLmpvaW4oWyIlMDJ4IiAlIG9yZChiKSBmb3IgYiBpbiBtYWNieXRlc10pCisgICAgZXhjZXB0OgorICAgICAgICAjIGlnbm9yZSBleGNlcHRpb24sIHRoZSBhZGRyZXNzIGlzIGFscmVhZHkgc2V0IHRvIGludmFsaWQKKyAgICAgICAgcGFzcworICAgIHJldHVybiByZXQKKworCitkZWYgZGVjb2RlX2lwYWRkcihhZGRyKToKKyAgICByZXQgPSAnaW52YWxpZC1pcC1hZGRyJworICAgIHRyeToKKyAgICAgICAgaXBieXRlcyA9IFswLCAwLCAwLCAwXQorICAgICAgICBmb3IgaSBpbiByYW5nZSg0KToKKyAgICAgICAgICAgIGlwYnl0ZXNbMy1pXSA9IGFkZHIgJiAweDAwMDAwMGZmCisgICAgICAgICAgICBhZGRyID0gYWRkcj4+OAorICAgICAgICByZXQgPSAnLicuam9pbihbIiVkIiAlIGIgZm9yIGIgaW4gaXBieXRlc10pCisgICAgZXhjZXB0OgorICAgICAgICAjIGlnbm9yZSBleGNlcHRpb24sIHRoZSBhZGRyZXNzIGlzIGFscmVhZHkgc2V0IHRvIGludmFsaWQKKyAgICAgICAgcGFzcworICAgIHJldHVybiByZXQKKworCitkZWYgZGVjb2RlX3BvcnRfY29uZmlnKGksIGRhdGE9Tm9uZSk6CisgICAgaSA9IGFicyhpKQorICAgIHZhbHVlcyA9IHsKKyAgICAgICAgMSA8PCAwIDogInBvcnQtZG93biIsCisgICAgICAgIDEgPDwgMSA6ICJuby1zdHAiLAorICAgICAgICAxIDw8IDIgOiAibm8tcmVjdiIsCisgICAgICAgIDEgPDwgMyA6ICJuby1yZWN2LXN0cCIsCisgICAgICAgIDEgPDwgNCA6ICJuby1mbG9vZCIsCisgICAgICAgIDEgPDwgNSA6ICJuby1md2QiLAorICAgICAgICAxIDw8IDYgOiAibm8tcGt0LWluIiwKKyAgICAgICAgMSA8PCAzMSA6ICJtaXJyb3IiLAorICAgICAgICB9CisgICAgaWYgaSA9PSAwIG9yIGkgPT0gJyc6CisgICAgICAgIHJldHVybiAnJworICAgIHJldHVybiBwcmludF9tYXNrX2VudW1fc3RyaW5nX2FuZF9pbnQodmFsdWVzLCBpKQorCitkZWYgZGVjb2RlX3BvcnRfc3RhdGUoaSwgZGF0YT1Ob25lKToKKyAgICBpZiBpID09ICcnOgorICAgICAgICByZXR1cm4gJ1Vua25vd24nCisKKyAgICAjIFRoZSB0d28gYml0cyBhdCAoMyA8PCA4KSBhcmUgYSBtYXNrIGZvciB0aGUgU1RQIHZhbHVlCisgICAgIyB3aGljaCBhcmUgbGlzdGVkIGluIHRoZSBmb2xsb3dpbmcgZGljdGlvbmFyeS4gTm90ZSB0aGF0IHRoZXNlCisgICAgIyBhcmVuJ3Qgc2ltcGx5IGJpdCBtYXNrcywgc28gd2UgY2FuJ3QgdXNlIHByaW50X21hc2tfZW51bV9zdHJpbmdfYW5kX2ludAorICAgICMgaGVyZS4gU28gaW5zdGVhZCB3ZSBzcGVjaWFsIGNhc2UgdGhlIGZvcm1hdHRpbmcgb2YgdGhpcyBmaWVsZC4gV2UgY291bGQKKyAgICAjIHByb2JhYmx5IGZhY3RvciBzb21lIG9mIHRoaXMgbG9naWMgaW50byBhIHV0aWxpdHkgZnVuY3Rpb24sIGJ1dAorICAgICMgdGhpcyB3b3JrcyBmb3Igbm93LgorICAgIHN0cF92YWx1ZXMgPSB7CisgICAgICAgIDAgPDwgOCA6ICI6IHN0cC1saXN0ZW4iLAorICAgICAgICAxIDw8IDggOiAiOiBzdHAtbGVhcm4tbm8tcmVsYXkiLAorICAgICAgICAyIDw8IDggOiAiOiBzdHAtZm9yd2FyZCIsCisgICAgICAgIDMgPDwgOCA6ICI6IHN0cC1ibG9jay1icm9hZGNhc3QiLAorICAgICAgICB9CisgICAgdmFsdWUgPSAibGluay1kb3duIiBpZiBpID09IDEgZWxzZSAibGluay11cCIgKyBzdHBfdmFsdWVzLmdldChpLCAnJykKKyAgICByZXR1cm4gIiVzKCVzKSIgJSAodmFsdWUsIGhleChpKSBpZiBpID4gOSBlbHNlIGkpCisgCisKK2RlZiBkZWNvZGVfcG9ydF91cF9kb3duKGksIGRhdGE9Tm9uZSk6CisgICAgaWYgaSA9PSAnJzoKKyAgICAgICAgcmV0dXJuICdVbmtub3duJworICAgIHJldHVybiAiZG93biIgaWYgaSA9PSAxIGVsc2UgJ3VwJworCisKK2RlZiBkZWNvZGVfcG9ydF9zdHBfc3RhdGUoaSwgZGF0YT1Ob25lKToKKyAgICBpZiBpID09ICcnOgorICAgICAgICByZXR1cm4gJycKKyAgICBzdHBfdmFsdWVzID0geworICAgICAgICAwIDw8IDggOiAibGlzdGVuIiwKKyAgICAgICAgMSA8PCA4IDogImxlYXJuLW5vLXJlbGF5IiwKKyAgICAgICAgMiA8PCA4IDogImZvcndhcmQiLAorICAgICAgICAzIDw8IDggOiAiYmxvY2stYnJvYWRjYXN0IiwKKyAgICAgICAgfQorICAgIHZhbHVlID0gJycgaWYgaSA9PSAxIGVsc2Ugc3RwX3ZhbHVlcy5nZXQoaSkKKyAgICByZXR1cm4gIiVzKCVzKSIgJSAodmFsdWUsIGhleChpKSBpZiBpID4gOSBlbHNlIGkpCisKKworZGVmIGRlY29kZV9wb3J0X2xpbmtyYXRlKGksIGRhdGE9Tm9uZSk6CisgICAgdmFsdWVzID0geworICAgICAgICAxIDw8IDAgOiAiMTBtYi1oZCIsCisgICAgICAgIDEgPDwgMSA6ICIxMG1iLWZkIiwKKyAgICAgICAgMSA8PCAyIDogIjEwMG1iLWhkIiwKKyAgICAgICAgMSA8PCAzIDogIjEwMG1iLWZkIiwKKyAgICAgICAgMSA8PCA0IDogIjFnYi1oZCIsCisgICAgICAgIDEgPDwgNSA6ICIxZ2ItZmQiLAorICAgICAgICAxIDw8IDYgOiAiMTBnYi1mZCIsCisgICAgICAgIH0KKyAgICBpZiB0eXBlKGkpICE9IGludDoKKyAgICAgICAgcmV0dXJuICJVbmtub3duIgorICAgIGlmIChpbnQoaSkgJiAweDdmKSA9PSAwOgorICAgICAgICByZXR1cm4gIlVua25vd24iCisgICAgcmV0dXJuIHByaW50X21hc2tfZW51bV9zdHJpbmdfYW5kX2ludCh2YWx1ZXMsIGludChpKSAmIDB4N2YpCisKKworZGVmIGRlY29kZV9wb3J0X2ZlYXR1cmVzKGksIGRhdGE9Tm9uZSk6CisgICAgdmFsdWVzID0geworICAgICAgICAxIDw8IDAgOiAiMTBtYi1oZCIsCisgICAgICAgIDEgPDwgMSA6ICIxMG1iLWZkIiwKKyAgICAgICAgMSA8PCAyIDogIjEwMG1iLWhkIiwKKyAgICAgICAgMSA8PCAzIDogIjEwMG1iLWZkIiwKKyAgICAgICAgMSA8PCA0IDogIjFnYi1oZCIsCisgICAgICAgIDEgPDwgNSA6ICIxZ2ItZmQiLAorICAgICAgICAxIDw8IDYgOiAiMTBnYi1mZCIsCisgICAgICAgIDEgPDwgNyA6ICJjb3BwZXIiLAorICAgICAgICAxIDw8IDggOiAiZmliZXIiLAorICAgICAgICAxIDw8IDkgOiAiYXV0b25lZyIsCisgICAgICAgIDEgPDwgMTAgOiAicGF1c2UiLAorICAgICAgICAxIDw8IDExIDogInBhdXNlLWFzeW0iLAorICAgICAgICB9CisgICAgcmV0dXJuIHByaW50X21hc2tfZW51bV9zdHJpbmdfYW5kX2ludCh2YWx1ZXMsIGkpCisKKworZGVmIGRlY29kZV9zd2l0Y2hfY2FwYWJpbGl0aWVzKGksIGRhdGE9Tm9uZSk6CisgICAgdmFsdWVzID0geworICAgICAgICAxIDw8IDAgOiAiZmxvdyIsCisgICAgICAgIDEgPDwgMSA6ICJ0YmwiLAorICAgICAgICAxIDw8IDIgOiAicG9ydCIsCisgICAgICAgIDEgPDwgMyA6ICJzdHAiLAorICAgICAgICAxIDw8IDUgOiAiaXAtcmVhc20iLAorICAgICAgICAxIDw8IDYgOiAicXVldWUtc3RhdHMiLAorICAgICAgICAxIDw8IDcgOiAibWF0Y2gtaXAtaW4tYXJwIiwKKyAgICAgICAgfQorICAgIHJldHVybiBwcmludF9tYXNrX2VudW1fc3RyaW5nX2FuZF9pbnQodmFsdWVzLCBpKQorCisKK2RlZiBkZWNvZGVfc3dpdGNoX2FjdGlvbnMoaSwgZGF0YT1Ob25lKToKKyAgICB2YWx1ZXMgPSB7CisgICAgICAgIDEgPDwgMCA6ICJvdXRwdXQiLAorICAgICAgICAxIDw8IDEgOiAidmxhbi12aWQiLAorICAgICAgICAxIDw8IDIgOiAidmxhbi1wY3AiLAorICAgICAgICAxIDw8IDMgOiAic3RyaXAtdmxhbiIsCisgICAgICAgIDEgPDwgNCA6ICJkbC1zcmMiLAorICAgICAgICAxIDw8IDUgOiAiZGwtZHN0IiwKKyAgICAgICAgMSA8PCA2IDogIm53LXNyYyIsCisgICAgICAgIDEgPDwgNyA6ICJudy1kc3QiLAorICAgICAgICAxIDw8IDggOiAibnctdG9zIiwKKyAgICAgICAgMSA8PCA5IDogInRwLXNyYyIsCisgICAgICAgIDEgPDwgMTAgOiAidHAtZHN0IiwKKyAgICAgICAgMSA8PCAxMSA6ICJlbnF1ZXVlIiwKKyAgICAgICAgfQorICAgIGlmIChpID09IDApOgorICAgICAgICByZXR1cm4gIm1pcnJvciIKKyAgICByZXR1cm4gcHJpbnRfbWFza19lbnVtX3N0cmluZ19hbmRfaW50KHZhbHVlcywgaSkKKworCit3aWxkY2FyZHMgPSB7CisgICAgMSA8PCAwIDogJ2luIHBvcnQnLAorICAgIDEgPDwgMSA6ICd2bGFuJywKKyAgICAxIDw8IDIgOiAncHJpJywKKyAgICAxIDw8IDMgOiAnZXRoJywKKyAgICAxIDw8IDQgOiAndG9zJywKKyAgICAxIDw8IDUgOiAncHJvdG8nLAorICAgIDEgPDwgNiA6ICdzcmMnLAorICAgIDEgPDwgNyA6ICdkc3QnLAorICAgIDEgPDwgOCA6ICdtcGxzJywKKyAgICAxIDw8IDkgOiAndGMnLAorfQorCitkZWYgcmVhbHRpbWVfZmxvd19icmllZihpLCBkYXRhPU5vbmUpOgorICAgIGJyaWVmID0gW10KKyAgICB3aWxkY2FyZCA9IGRhdGFbJ3dpbGRjYXJkcyddCisgICAgIyB3aWxkID0gcHJpbnRfbWFza19lbnVtX3N0cmluZ19hbmRfaW50KHdpbGRjYXJkcywgd2lsZGNhcmQpCisgICAgdHJ5OgorICAgICAgICBpID0gaW50KHdpbGRjYXJkKQorICAgIGV4Y2VwdDoKKyAgICAgICAgcmV0dXJuICcnCisKKyAgICBpZiBub3Qgd2lsZGNhcmQgJiAweDE6CisgICAgICAgIGJyaWVmLmFwcGVuZCgncng9JXMnICUgZGVjb2RlX29wZW5mbG93X3BvcnQoZGF0YVsnaW5wdXRQb3J0J10sIGRhdGEpKQorICAgIGlmIChub3Qgd2lsZGNhcmQgJiAweDIpIGFuZCAoZGF0YVsnZGF0YUxheWVyVmlydHVhbExhbiddICE9IC0xKToKKyAgICAgICAgYnJpZWYuYXBwZW5kKCd2bGFuOiVzJyAlIGRhdGFbJ2RhdGFMYXllclZpcnR1YWxMYW4nXSkKKyAgICBpZiAobm90IHdpbGRjYXJkICYgMHg0KSBhbmQgKGRhdGFbJ2RhdGFMYXllclZpcnR1YWxMYW5Qcmlvcml0eUNvZGVQb2ludCddICE9ICcqJyk6CisgICAgICAgIGJyaWVmLmFwcGVuZCgncHJpOiVzJyAlIGRhdGFbJ2RhdGFMYXllclZpcnR1YWxMYW5Qcmlvcml0eUNvZGVQb2ludCddKQorICAgIGlmIChub3Qgd2lsZGNhcmQgJiAweDgpIGFuZCAoZGF0YVsnZGF0YUxheWVyVHlwZSddICE9ICcqJykgOgorICAgICAgICBicmllZi5hcHBlbmQoJ2V0aDolcycgJSBkYXRhWydkYXRhTGF5ZXJUeXBlJ10pCisgICAgaWYgbm90IHdpbGRjYXJkICYgMHgxMDoKKyAgICAgICAgYnJpZWYuYXBwZW5kKCd0b3M6JXMnICUgZGF0YVsnbmV0d29ya1R5cGVPZlNlcnZpY2UnXSkKKyAgICBpZiBub3Qgd2lsZGNhcmQgJiAweDIwOgorICAgICAgICBicmllZi5hcHBlbmQoJ2lwOiVzJyAlIGRhdGFbJ25ldHdvcmtQcm90b2NvbCddKQorICAgIGlmIGRhdGFbJ25ldHdvcmtTb3VyY2VNYXNrTGVuJ106CisgICAgICAgIGJyaWVmLmFwcGVuZCgnc3JjOiVzJyAlIHV0aWYuaXBfYW5kX25lZ19tYXNrKGRhdGFbJ25ldHdvcmtTb3VyY2UnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsnbmV0d29ya1NvdXJjZU1hc2tMZW4nXSkpCisgICAgaWYgbm90IHdpbGRjYXJkICYgMHg0MDoKKyAgICAgICAgYnJpZWYuYXBwZW5kKCdzcG9ydDolcycgJSBkYXRhWyd0cmFuc3BvcnRTb3VyY2UnXSkKKyAgICBpZiBkYXRhWyduZXR3b3JrU291cmNlTWFza0xlbiddOgorICAgICAgICBicmllZi5hcHBlbmQoJ3NyYzolcycgJSB1dGlmLmlwX2FuZF9uZWdfbWFzayhkYXRhWyduZXR3b3JrU291cmNlJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbJ25ldHdvcmtTb3VyY2VNYXNrTGVuJ10pKQorICAgIGlmIG5vdCB3aWxkY2FyZCAmIDB4ODA6CisgICAgICAgIGJyaWVmLmFwcGVuZCgnZHBvcnQ6JXMnICUgZGF0YVsndHJhbnNwb3J0RGVzdGluYXRpb24nXSkKKyAgICAjIG1wbHMgbm90IGluIE9GMS4wCisgICAgI2lmIG5vdCB3aWxkY2FyZCAmIDB4MTAwOgorICAgICAgICAjYnJpZWYuYXBwZW5kKCdtcGxzOiA/JykKKyAgICAjaWYgbm90IHdpbGRjYXJkICYgMHgyMDA6CisgICAgICAgICNicmllZi5hcHBlbmQoJ21wbHMtdGM6ID8nKQorCisgICAgcmV0dXJuICcsICcuam9pbihicmllZikKKworCitkZWYgZm9ybWF0dGVyX3RvX2FsaWFzX3VwZGF0ZShmb3JtYXR0ZXIsIHVwZGF0ZSk6CisgICAgIiIiCisgICAgQXNzb2NpYXRlIHRoZSBpdGVtcyB3aGljaCBuZWVkIHVwZGF0aW5nIHdpdGggdGhlIGZvcm1hdHRlci4KKyAgICB0aGUgdXBkYXRlIHBhcmFtZXRlciBpcyBhIGRpY3QsIGFsbG93aW5nIG11bHRpcGxlIHVwZGF0ZXMKKyAgICBvdmVyIHNldmVyYWwgZGlzdGluY3QgZmllbGRzCisKKyAgICBVcGRhdGUgdGhpcyBwcm9jZWR1cmUgYXMgbmV3IGRlY29kaW5nIHByb2NlZHVyZXMgYXJlCisgICAgYWRkZWQgd2hpY2ggcmVxdWlyZSBzb21lIGFsaWFzIHRyYW5zbGF0aW9uIHRvIGJlIHVwZGF0ZWQKKworICAgIEBwYXJhbSBmb3JtYXR0ZXIgZnVuY3Rpb24gd2hpY2ggaXMgY2FsbGVkIHRvIGZvcm1hdCBhIGZpZWxkCisgICAgQHBhcmFtIHVwZGF0ZSBkaWN0aW9ucnkgcGFzc2VkIGluLCB1cGRhdGVkIHdpdGggYWxpYXMgdHlwZXMgdG8gdXBkYXRlCisgICAgIiIiCisgICAgbmFtZSA9IGZvcm1hdHRlci5fX25hbWVfXworICAgIGlmIG5hbWUgaW4gWydwcmludF9ob3N0X2FuZF9hbGlhcycsCisgICAgICAgICAgICAgICAgJ3ByaW50X2FsbF9ob3N0X2F0dGFjaG1lbnRfcG9pbnRzJywKKyAgICAgICAgICAgICAgICAncHJpbnRfZGV2aWNlbWFuYWdlcl9hdHRhY2htZW50X3BvaW50cycsCisgICAgICAgICAgICAgICAgJ3JlcGxhY2VfaG9zdF93aXRoX2FsaWFzJywKKyAgICAgICAgICAgICAgICBdOgorICAgICAgICB1cGRhdGVbJ2hvc3QnXSA9IFRydWUKKyAgICBpZiBuYW1lIGluIFsncHJpbnRfaG9zdF9hdHRhY2htZW50X3BvaW50JywKKyAgICAgICAgICAgICAgICAncHJpbnRfdm5zX3BoeXNpY2FsX2ludGVyZmFjZV9pZCcsCisgICAgICAgICAgICAgICAgJ2RlY29kZV9vcGVuZmxvd19wb3J0JywKKyAgICAgICAgICAgICAgICAnZGVjb2RlX29wZW5mbG93X3BvcnRfc3JjX3N3aXRjaCcsCisgICAgICAgICAgICAgICAgJ2RlY29kZV9vcGVuZmxvd19wb3J0X2RzdF9zd2l0Y2gnLAorICAgICAgICAgICAgICAgICdkZWNvZGVfb3BlbmZsb3dfcG9ydF9zb3VyY2Vfc3dpdGNoJywKKyAgICAgICAgICAgICAgICAnZGVjb2RlX29wZW5mbG93X3BvcnRfaW5wdXRTd2l0Y2gnLAorICAgICAgICAgICAgICAgICdkZWNvZGVfb3BlbmZsb3dfcG9ydF9kcGlkJywKKyAgICAgICAgICAgICAgICAncmVhbHRpbWVfZmxvd19icmllZicsCisgICAgICAgICAgICAgICAgXToKKyAgICAgICAgdXBkYXRlWydzd2l0Y2gnXSA9IFRydWUgIyBwb3J0IGltcGxpZXMgc3dpdGNoCisgICAgICAgIHVwZGF0ZVsncG9ydCddID0gVHJ1ZQorICAgIGlmIG5hbWUgaW4gWydwcmludF9zd2l0Y2hfYW5kX2FsaWFzJywKKyAgICAgICAgICAgICAgICAncHJpbnRfc3dpdGNoX2FuZF9hbGlhc19kcGlkX2FzX2xvbmcnLAorICAgICAgICAgICAgICAgICdwcmludF9zd2l0Y2hlcycsCisgICAgICAgICAgICAgICAgJ3JlcGxhY2Vfc3dpdGNoX3dpdGhfYWxpYXMnLAorICAgICAgICAgICAgICAgIF06CisgICAgICAgIHVwZGF0ZVsnc3dpdGNoJ10gPSBUcnVlCisgICAgaWYgbmFtZSBpbiBbJ2RlY29kZV9mbG93X2Nvb2tpZScKKyAgICAgICAgICAgICAgICBdOgorICAgICAgICB1cGRhdGVbJ2Zsb3cnXSA9IFRydWUKKyAgICBpZiBuYW1lIGluIFsncmVwbGFjZV9jb250cm9sbGVyX25vZGVfd2l0aF9hbGlhcycsCisgICAgICAgICAgICAgICBdOgorICAgICAgICB1cGRhdGVbJ2NvbnRyb2xsZXItbm9kZSddID0gVHJ1ZQorICAgIHJldHVybiB1cGRhdGUKKworZGVmIHByaW50X3N3aXRjaF9wb3J0X2xpc3QoaSwgZGF0YT1Ob25lKToKKyAgICBpZiBpID09IE5vbmU6CisgICAgICAgIHJldHVybiAnJworICAgIHJldHVybiAnICcuam9pbihbcmVwbGFjZV9zd2l0Y2hfd2l0aF9hbGlhcyh4Wydzd2l0Y2gnXSkgKyBcCisgICAgICAgICAgICAgICAgICAgICcvJyArIGRlY29kZV9vcGVuZmxvd19wb3J0KHhbJ3BvcnQnXSkgZm9yIHggaW4gaV0pCisKK2RlZiBwcmludF9zd2l0Y2hfcG9ydChpKToKKyAgICBpZiBpID09IE5vbmU6CisgICAgICAgIHJldHVybiAnJworICAgIHJldHVybiByZXBsYWNlX3N3aXRjaF93aXRoX2FsaWFzKHhbJ3N3aXRjaCddKSArIFwKKyAgICAgICAgICAgICAgICAgICAgJy8nICsgZGVjb2RlX29wZW5mbG93X3BvcnQoeFsncG9ydCddKQorCitkZWYgcHJpbnRfaG9zdF9hdHRhY2htZW50X3BvaW50KGksIGRhdGE9Tm9uZSk6CisgICAgaWYgaSA9PSBOb25lOgorICAgICAgICByZXR1cm4gIkluYWN0aXZlIgorICAgIGlmIGxlbihpKSA9PSAxOgorICAgICAgICBpZl9uYW1lID0gZGVjb2RlX29wZW5mbG93X3BvcnQoaVswXVsnaW5ncmVzcy1wb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWydhdHRhY2htZW50LXBvaW50cyddWzBdKQorICAgICAgICBkcGlkID0gIHN0cihpWzBdWydzd2l0Y2gnXSkKKyAgICAgICAgI3ByaW50IHByaW50X3N3aXRjaF9hbmRfYWxpYXMoZHBpZCwgZGF0YSkKKyAgICAgICAgcmV0dXJuIHByaW50X3N3aXRjaF9hbmRfYWxpYXMoaVswXVsnc3dpdGNoJ10pICsgJy8nICsgaWZfbmFtZQorICAgIGlmIGxlbihpKSA9PSAwOgorICAgICAgICByZXR1cm4gIiIKKyAgICBmaXJzdCA9IGlbMF0KKyAgICBpZiAncHJpbWUnIGluIGZpcnN0OgorICAgICAgICBpZl9uYW1lID0gZGVjb2RlX29wZW5mbG93X3BvcnQoaVswXVsnaW5ncmVzcy1wb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbJ2F0dGFjaG1lbnQtcG9pbnRzJ11bMF0pCisgICAgICAgIHJldHVybiAiJXMvJXMrWyVzXSIgJSAocmVwbGFjZV9zd2l0Y2hfd2l0aF9hbGlhcyhpWzBdWydzd2l0Y2gnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWZfbmFtZSwgc3RyKGxlbihpKS0xKSkKKyAgICByZXR1cm4gIm11bHRpcGxlICgiICsgc3RyKGxlbihpKSkgKyAiKSIKKworCitkZWYgcHJpbnRfYWxsX2hvc3RfYXR0YWNobWVudF9wb2ludHMoaSwgZGF0YT1Ob25lKToKKyAgICBpZiBpID09IE5vbmU6CisgICAgICAgIHJldHVybiAnJworICAgIHJldHVybiAnICcuam9pbihbcmVwbGFjZV9zd2l0Y2hfd2l0aF9hbGlhcyh4Wydzd2l0Y2gnXSkgKyBcCisgICAgICAgICAgICAgICAgICAgICAnLycgKyBkZWNvZGVfb3BlbmZsb3dfcG9ydCh4WydpbmdyZXNzLXBvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbJ2F0dGFjaG1lbnQtcG9pbnRzJ11bMF0pCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBpXSkKKworCitkZWYgcHJpbnRfZGV2aWNlbWFuYWdlcl9hdHRhY2htZW50X3BvaW50cyhpLCBkYXRhPU5vbmUpOgorICAgIGlmIGkgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuICcnCisgICAgcmV0dXJuICcgJy5qb2luKFtyZXBsYWNlX3N3aXRjaF93aXRoX2FsaWFzKHhbJ3N3aXRjaCddKSArIFwKKyAgICAgICAgICAgICAgICAgICAgICcvJyArIGRlY29kZV9vcGVuZmxvd19wb3J0KHhbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbJ2F0dGFjaG1lbnQtcG9pbnRzJ11bMF0pCisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBpXSkKKworCitkZWYgcHJpbnRfY2x1c3Rlcl9pZChpLCBkYXRhPU5vbmUpOgorICAgIHJldHVybiBzdHIoaSkKKworCitkZWYgcHJpbnRfc3dpdGNoZXMoaSwgZGF0YT1Ob25lKToKKyAgICByZXR1cm4gJyAnLmpvaW4oW3JlcGxhY2Vfc3dpdGNoX3dpdGhfYWxpYXMoZHBpZCkgZm9yIGRwaWQgaW4gaV0pCisKKworZGVmIHByaW50X3NpbmdsZV90YWcodGFnKToKKyAgICBmaWVsZHMgPSB0YWcuc3BsaXQoJ3wnKQorICAgIHJldHVybiAiJXMuJXM9JXMiICUgKGZpZWxkc1swXSxmaWVsZHNbMV0sZmllbGRzWzJdKQorCitkZWYgcHJpbnRfaG9zdF90YWdzKGksIGRhdGE9Tm9uZSk6CisgICAgaWYgaSA9PSBOb25lIG9yIGxlbihpKSA9PSAwOgorICAgICAgICByZXR1cm4gIiIKKyAgICB0YWcgPSBpCisgICAgaWYgdHlwZSh0YWcpID09IGRpY3Q6CisgICAgICAgIHRhZyA9IFtpXQorICAgICAgICAKKyAgICBpZiBsZW4odGFnKSA9PSAxOgorICAgICAgICAjICd0YWcnIGlzIGEgY29tcGxldGUgcm93IGZyb20gdGhlIHN0b3JlLCBzcGVjaWZpY2FsbHkgJ3RhZy1tYXBwaW5nJworICAgICAgICAjIHRoZSAndGFnJyBrZXkgaG9sZHMgYSBuYW1lIHdoaWNoIGxvb2tzIGxpa2U6IDxuYW1lc3BhY2U+fDxuYW1lPnw8dmFsdWU+CisgICAgICAgICMgd2hpY2ggaXMgdGhlbiBzcGxpdCwgYW5kIHJlY29tYmluZWQgZm9yIGRpc3BsYXkKKyAgICAgICAgcmV0dXJuIHByaW50X3NpbmdsZV90YWcodGFnWzBdWyd0YWcnXSkKKyAgICBpZiBsZW4odGFnKSA9PSAwOgorICAgICAgICByZXR1cm4gIiIKKyAgICByZXR1cm4gIm11bHRpcGxlICgiICsgc3RyKGxlbih0YWcpKSArICIpIgorCisKK2RlZiBwcmludF9hbGxfaG9zdF90YWdzKGksIGRhdGE9Tm9uZSk6CisgICAgaWYgaSA9PSBOb25lOgorICAgICAgICByZXR1cm4gJycKKyAgICBpZiBpID09IGRpY3Q6CisgICAgICAgIHJldHVybiBwcmludF9zaW5nbGVfdGFnKGlbJ3RhZyddKQorICAgIHJldHVybiAnICcuam9pbihbcHJpbnRfc2luZ2xlX3RhZyh4Wyd0YWcnXSkgZm9yIHggaW4gaV0pCisKKworZGVmIHByaW50X2lwX2FkZHJlc3NlcyhpLCBkYXRhPU5vbmUpOgorICAgIGlmIGkgIT0gTm9uZToKKyAgICAgICAgaWYgbGVuKGkpID09IDE6CisgICAgICAgICAgICByZXR1cm4gc3RyKGlbMF1bJ2lwLWFkZHJlc3MnXSkKKyAgICAgICAgaWYgbGVuKGkpID09IDA6CisgICAgICAgICAgICByZXR1cm4gIiIKKyAgICAgICAgIyBpZiB0aGVyZSBhcmUgbXVsdGlwbGUgYWRkcmVzc2VkLCBzZWUgaWYgc29tZSBvZiB0aGUgYWRkcmVzc2VzCisgICAgICAgICMgYXJlICJsZXNzIiBpbXBvcnRhbnQgdGhhbiBvdGhlcnMuCisgICAgICAgIGxlc3NfaW50ZXJlc3RpbmcgPSAwCisgICAgICAgIG1vcmVfaW50ZXJlc3RpbmcgPSBOb25lCisgICAgICAgIGZvciBpcHMgaW4gaToKKyAgICAgICAgICAgIGlmIGlwc1snaXAtYWRkcmVzcyddID09ICcwLjAuMC4wJzoKKyAgICAgICAgICAgICAgICBsZXNzX2ludGVyZXN0aW5nICs9IDEKKyAgICAgICAgICAgIGVsaWYgcmUubWF0Y2gocicxNjkuMjU0LionLCBpcHNbJ2lwLWFkZHJlc3MnXSk6CisgICAgICAgICAgICAgICAgbGVzc19pbnRlcmVzdGluZyArPSAxCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIG1vcmVfaW50ZXJlc3RpbmcgPSBpcHNbJ2lwLWFkZHJlc3MnXQorCisgICAgICAgIGlmIGxlbihpKSA9PSBsZXNzX2ludGVyZXN0aW5nICsgMToKKyAgICAgICAgICAgIHJldHVybiAiJXMrKCVkKSIgJSAobW9yZV9pbnRlcmVzdGluZywgbGVzc19pbnRlcmVzdGluZykKKyAgICAgICAgcyA9IHNvcnRlZChpLCBrZXk9bGFtYmRhIGs6IGtbJ2xhc3Qtc2VlbiddKQorICAgICAgICByZXR1cm4gIiVzKyglZCkiICUgKHNbLTFdWydpcC1hZGRyZXNzJ10sIGxlbihzKSAtIDEpCisgICAgICAgICMgcmV0dXJuICJtdWx0aXBsZSAoIiArIHN0cihsZW4oaSkpICsgIikiICAgIAorICAgIHJldHVybiAiVW5rbm93biIKKworCitkZWYgcHJpbnRfYWxsX2lwX2FkZHJlc3NlcyhpLCBkYXRhPU5vbmUpOgorICAgIGlmIGkgPT0gTm9uZToKKyAgICAgICAgcmV0dXJuICcnCisgICAgcmV0dXJuICcgJy5qb2luKFt4WydpcC1hZGRyZXNzJ10gZm9yIHggaW4gaV0pCisKKworZGVmIHByaW50X2RldmljZW1hbmFnZXJfaXBfYWRkcmVzc2VzKGksIGRhdGE9Tm9uZSk6CisgICAgaWYgaSA9PSBOb25lOgorICAgICAgICByZXR1cm4gJycKKyAgICByZXR1cm4gJyAnLmpvaW4oW3hbJ2lwJ10gZm9yIHggaW4gaV0pCisKKworZGVmIHByaW50X2pvaW5fbGlzdChpLCBkYXRhPU5vbmUpOgorICAgIHJldHVybiAnLCAnLmpvaW4oaSkKKworCitkZWYgcmVwbGFjZV93aXRoX2FsaWFzKG9iamVjdF90eXBlLCBpLCBkYXRhPU5vbmUpOgorICAgICIiIgorICAgIHVzZSB3aGVuIHdlIGhhdmUgYWxpYXNlcyBmb3Igb3RoZXIgb2JqZWN0cworICAgICIiIgorICAgIGdsb2JhbCBhbGlhc19kaWN0cworICAgIGFsaWFzX2RpY3QgPSBhbGlhc19kaWN0cy5nZXQob2JqZWN0X3R5cGUsIHtpIDogaX0pCisgICAgaWYgbm90IGFsaWFzX2RpY3Q6CisgICAgICAgIHJldHVybiBpCisgICAgcmV0dXJuIGFsaWFzX2RpY3QuZ2V0KGksIGkpCisKKworZGVmIHByaW50X3N3aXRjaF9hbmRfYWxpYXMoaSwgZGF0YT1Ob25lKToKKyAgICAiIiIKKyAgICAiIiIKKyAgICBkcGlkID0gc3RyKGkpCisgICAgYWxpYXMgPSByZXBsYWNlX3N3aXRjaF93aXRoX2FsaWFzKGksIGRhdGEpCisgICAgaWYgZHBpZCA9PSBhbGlhczoKKyAgICAgICAgZHBpZF9uYW1lID0gZ2V0X3N3aXRjaGVzX25hbWVzKG9iamVjdCwgZGF0YSkKKyAgICAgICAgaWYgaSBpbiBkcGlkX25hbWU6CisgICAgICAgICAgICBhbGlhcyA9ICBkcGlkX25hbWVbaV0KKyAgICAgICAgICAgIHJldHVybiBkcGlkICsgJyAoJyArIGFsaWFzICsgJyknCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gZHBpZAorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBkcGlkICsgJyAoJyArIGFsaWFzICsgJyknCisKKyAKK2RlZiBwcmludF9zd2l0Y2hfYW5kX2FsaWFzX2RwaWRfYXNfbG9uZyhpLCBkYXRhPU5vbmUpOgorICAgIGRwaWQgPSBjb252ZXJ0X2xvbmdfdG9fZHBpZChpKQorICAgIHJldHVybiBwcmludF9zd2l0Y2hfYW5kX2FsaWFzKGRwaWQpCisKKworZGVmIHByaW50X3N3aXRjaF9pbnRlcmZhY2VfYW5kX2FsaWFzKGksIGRhdGE9Tm9uZSk6CisgICAgIiIiCisgICAgIiIiCisgICAgc3dpdGNoX2ludGVyZmFjZSA9IHN0cihpKQorICAgIHJldHVybiBzd2l0Y2hfaW50ZXJmYWNlCisKKworZGVmIHByaW50X2hvc3RfYW5kX2FsaWFzKGksIGRhdGE9Tm9uZSk6CisgICAgIyBUaGUgdmFsdWUgb2YgJ2knIGhlcmUgb3VnaHQgdG8gYmUgdGhlIHByaW1hcnkga2V5CisgICAgIyBmb3IgdGhlIGhvc3QsIHdoaWNoIGlzIGEgY29tcG91bmQga2V5LiAgVHJ5IGhhcmQgdG8KKyAgICAjIG5vdCBkZWFsIHdpdGggdGhlIGNvbnN0cnVjdGlvbiBvZiB0aGUga2V5LgorICAgIG1hYyA9IHN0cihpKQorICAgICMgaWYgdGhlIGhvc3QgYWRkcmVzcyBpcyBlaWdodCBoZXggdmFsdWVzLCBjaG9wIG9mZiB0aGUgcHJlZml4CisgICAgIyBuYXN0eSBoYWNrIHRvIGRlYWwgd2l0aCB0aGUgdXNlIG9mIGEgaW50NjQgdG8gaG9sZCBhIGhvc3QKKyAgICBpZiBsZW4obWFjKSA9PSAyMzoKKyAgICAgICAgbWFjID0gbWFjWzY6XQorICAgICAgICBpID0gbWFjCisgICAgbmFtZSA9IHJlcGxhY2VfaG9zdF93aXRoX2FsaWFzKG1hYywgZGF0YSkKKyAgICBpZiBkYXRhID09IE5vbmU6CisgICAgICAgIGRhdGEgPSB7fQorCisgICAgbWFjX2luX2RhdGEgID0gZGF0YS5nZXQoJ21hYycpCisgICAgc3VmZml4ID0gJycKKyAgICBpZiBuYW1lICE9IG1hYzoKKyAgICAgICAgc3VmZml4ID0gJyAoJXMpJyAlIG5hbWUKKworICAgIGlmIG1hY19pbl9kYXRhOgorICAgICAgICByZXR1cm4gbWFjX2luX2RhdGEgKyBzdWZmaXgKKyAgICByZXR1cm4gbWFjICsgc3VmZml4CisKKworZGVmIHByaW50X3ZsYW5fYW5kX2FsaWFzKGksIGRhdGE9Tm9uZSk6CisgICAgdmxhbiA9IGludChpKQorICAgICMgaWYgdGhlIGhvc3QgYWRkcmVzcyBpcyBlaWdodCBoZXggdmFsdWVzLCBjaG9wIG9mZiB0aGUgcHJlZml4CisgICAgIyBuYXN0eSBoYWNrIHRvIGRlYWwgd2l0aCB0aGUgdXNlIG9mIGEgaW50NjQgdG8gaG9sZCBhIGhvc3QKKyAgICByZXR1cm4gdmxhbgorCisKK2RlZiBwcmludF9ob3N0X2FuZF9hbGlhc19tYWNfYXNfbG9uZyhpLCBkYXRhPU5vbmUpOgorICAgIG1hYyA9IGNvbnZlcnRfbWFjX2luX2RlY2ltYWxfdG9faGV4X3N0cmluZyhpKQorICAgIHJldHVybiBwcmludF9ob3N0X2FuZF9hbGlhcyhtYWMsIGRhdGEpCisKK2RlZiBwcmludF9ob3N0X2FuZF9hbGlhc19tYWNfYXNfbG9uZ19zdHIoaSwgZGF0YT1Ob25lKToKKyAgICAjIGkgaXMgbG9uZyBkZWNpbWFsIGFzIHN0cmluZywgZS5nLiAiMTM0MiIKKyAgICBtYWNfZGVjaW1hbCA9IGludChpKQorICAgIG1hYyA9IGNvbnZlcnRfbWFjX2luX2RlY2ltYWxfdG9faGV4X3N0cmluZyhtYWNfZGVjaW1hbCkKKyAgICByZXR1cm4gcHJpbnRfaG9zdF9hbmRfYWxpYXMobWFjLCBkYXRhKQorCisKKyMgaG9zdCBsaXN0IG1heSBhbHNvIGNvbnRhaW4gb3RoZXIgaXRlbXMgKGllOiBub3QgbWFjcykKK2RlZiBwcmludF9ob3N0X2xpc3RfYW5kX2FsaWFzKGksIGRhdGE9Tm9uZSk6CisgICAgIyB1c2UgYXQgbW9zdCA2MCBjb2x1bW5zCisKKyAgICBtb3JlID0gMAorICAgIG91dHB1dCA9ICIiCisgICAgZm9yIGhvc3QgaW4gaToKKyAgICAgICAgbWFjID0gc3RyKGhvc3QpCisgICAgICAgIG5hbWUgPSByZXBsYWNlX2hvc3Rfd2l0aF9hbGlhcyhob3N0LCBkYXRhKQorICAgICAgICBpZiBuYW1lICE9IG1hYzoKKyAgICAgICAgICAgIG1hYyArPSAgJyAoJyArIG5hbWUgKyAnKScKKyAgICAgICAgaWYgbGVuKG91dHB1dCkgKyBsZW4obWFjKSA+IDYwOgorICAgICAgICAgICAgbW9yZSArPSAxCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBvdXRwdXQgKz0gbWFjCisgICAgICAgICAgICBvdXRwdXQgKz0gJyAnCisgICAgaWYgbW9yZToKKyAgICAgICAgcmV0dXJuICIlcysoJXMpIiAlIChvdXRwdXQsIG1vcmUpCisgICAgcmV0dXJuIG91dHB1dAorCisKK2RlZiByZXBsYWNlX3N3aXRjaF93aXRoX2FsaWFzKGksIGRhdGE9Tm9uZSk6CisgICAgcmV0dXJuIHJlcGxhY2Vfd2l0aF9hbGlhcygic3dpdGNoLWNvbmZpZyIsIGksIGRhdGEpCisKK2RlZiBjb252ZXJ0X2ludmVyc2VfbmV0bWFza19oYW5kbGVyKGksIGRhdGE9Tm9uZSk6CisgICAgaWYgbm90ICcuJyBpbiBpOgorICAgICAgICByZXR1cm4gaQorICAgIHNwbGl0X2J5dGVzID0gaS5zcGxpdCgnLicpCisgICAgcmV0dXJuICIlcy4lcy4lcy4lcyIgJSAoMjU1LWludChzcGxpdF9ieXRlc1swXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU1LWludChzcGxpdF9ieXRlc1sxXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU1LWludChzcGxpdF9ieXRlc1syXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgMjU1LWludChzcGxpdF9ieXRlc1szXSkpCisKK2RlZiByZXBsYWNlX2hvc3Rfd2l0aF9hbGlhcyhpLCBkYXRhPU5vbmUpOgorICAgIHJldHVybiByZXBsYWNlX3dpdGhfYWxpYXMoImhvc3QtY29uZmlnIiwgaSwgZGF0YSkKKworCitkZWYgcmVwbGFjZV9jb250cm9sbGVyX25vZGVfd2l0aF9hbGlhcyhpLCBkYXRhPU5vbmUpOgorICAgIHJldHVybiByZXBsYWNlX3dpdGhfYWxpYXMoImNvbnRyb2xsZXItbm9kZSIsIGksIGRhdGEpCisKKworZGVmIHByaW50X3Zuc19jb3VudF9kaWN0KGksIGRhdGE9Tm9uZSk6CisgICAgb3V0cHV0ID0gIiIKKyAgICBtb3JlID0gMAorICAgIGZvciB2bnMgaW4gaToKKyAgICAgICAgIyBwb3NzaWJseSB2bnM6cmVmcyBpbnN0ZWFkPworICAgICAgICAjaXRlbSA9ICclczolcyAnICUgKHZucywgaVt2bnNdKQorICAgICAgICBpdGVtID0gJyVzICcgJSB2bnMKKyAgICAgICAgaWYgbGVuKG91dHB1dCkgPiA0MDoKKyAgICAgICAgICAgIG1vcmUgKz0gMQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgb3V0cHV0ICs9IGl0ZW0KKyAgICBpZiBtb3JlOgorICAgICAgICByZXR1cm4gIiVzICsoJXMpIiAlIChvdXRwdXQsIG1vcmUpCisgICAgcmV0dXJuIG91dHB1dAorCisKK2RlZiBwcmludF92bnNfcGh5c2ljYWxfaW50ZXJmYWNlX2lkKGksIGRhdGE9Tm9uZSk6CisgICAgcmV0dXJuIGkuc3BsaXQoJ3wnKVsyXQorCisKK2RlZiBwcmludF9kb21haW5fbmFtZV9zZXJ2ZXJzKGksIGRhdGE9Tm9uZSk6CisgICAgaWYgbGVuKGkpID09IDA6CisgICAgICAgIHJldHVybiAnTm9uZScKKyAgICByZXN1bHQgPSBpWzBdCisgICAgaWYgbGVuKGkpID4gMToKKyAgICAgICAgcmVzdWx0ICs9ICcgKyglZCknICUgKGxlbihpKS0xKQorICAgIHJldHVybiByZXN1bHQKKworCitkZWYgcHJpbnRfYWxsX2RvbWFpbl9uYW1lX3NlcnZlcnMoaSwgZGF0YT1Ob25lKToKKyAgICBpZiBpID09IE5vbmU6CisgICAgICAgIHJldHVybiAnJworICAgIHJldHVybiAnLCAnLmpvaW4oaSkKKworCitkZWYgcHJpbnRfY2xvY2tfc3RyaW5nKGksIGRhdGEgPSBOb25lKToKKyAgICBwcmludCBpLCBkYXRhCisKKworZGVmIHJlcGxhY2VfYm9vbGVhbl93aXRoX2VuYWJsZV9kaXNhYmxlKGksIGRhdGE9Tm9uZSk6CisgICAgcmV0dXJuIHsgVHJ1ZSA6ICdlbmFibGVkJywgRmFsc2UgOiAnZGlzYWJsZWQnIH0gW2ldCisKKworZGVmIHNhbml0aXplX3VuaWNvZGUoaSwgZGF0YT1Ob25lKToKKyAgICByZXR1cm4gdW5pY29kZShpLCBlcnJvcnM9J2lnbm9yZScpCisKKworZGVmIGNvbnRyb2xsZXJfbm9kZV9tZV9lbnRyeShpLCBkYXRhPU5vbmUpOgorICAgIGlmIGRhdGEuZ2V0KCdtZScsICcnKSA9PSAnJzoKKyAgICAgICAgcmV0dXJuICdOb3QgY3VycmVudCBjb250cm9sbGVyJworICAgIHJldHVybiAnY3VycmVudCBjb250cm9sbGVyJworCitkZWYgY29udHJvbGxlcl9ub2RlX21lKGksIGRhdGE9Tm9uZSk6CisgICAgaWYgJ21lJyBpbiBkYXRhOgorICAgICAgICByZXR1cm4gJyonCisgICAgcmV0dXJuICcnCisKKworZGVmIHByaW50X2lwdjRhZGRyKGksIGRhdGE9Tm9uZSk6CisgICAgaXBhZGRyID0gZGF0YVsnaXAnXQorICAgIG1hc2sgPSBkYXRhWydtYXNrbGVuJ10KKyAgICBpZiAoaXBhZGRyICE9ICIqIik6CisgICAgICAgIGlwYWRkcl9pbnQgPSByZWR1Y2UobGFtYmRhIGEsYjogYTw8OCB8IGIsIG1hcChpbnQsIGlwYWRkci5zcGxpdCgiLiIpKSkKKyAgICAgICAgbWFzayA9ICgxIDw8IG1hc2spIC0gMQorICAgICAgICBpcGFkZHJfaW50ID0gaXBhZGRyX2ludCAmIH5tYXNrCisgICAgICAgIGlwYWRkciA9ICIuIi5qb2luKG1hcChsYW1iZGEgbjogc3RyKGlwYWRkcl9pbnQgPj5uICYgMHhGRiksIFsyNCwxNiw4LDBdKSkKKyAgICByZXR1cm4gaXBhZGRyCisKZGlmZiAtLWdpdCBhL2NsaS9odHRwc193cmFwcGVyLnB5IGIvY2xpL2h0dHBzX3dyYXBwZXIucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZWUyOTFkZQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9odHRwc193cmFwcGVyLnB5CkBAIC0wLDAgKzEsMTQzIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IDIwMDcgR29vZ2xlIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisjIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKyMgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyMgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorIyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworIiIiRXh0ZW5zaW9ucyB0byBhbGxvdyBIVFRQUyByZXF1ZXN0cyB3aXRoIFNTTCBjZXJ0aWZpY2F0ZSB2YWxpZGF0aW9uLiIiIgorCisKK2ltcG9ydCBodHRwbGliCitpbXBvcnQgcmUKK2ltcG9ydCBzb2NrZXQKK2ltcG9ydCB1cmxsaWIyCitpbXBvcnQgc3NsCisKKworY2xhc3MgSW52YWxpZENlcnRpZmljYXRlRXhjZXB0aW9uKGh0dHBsaWIuSFRUUEV4Y2VwdGlvbik6CisgICIiIlJhaXNlZCB3aGVuIGEgY2VydGlmaWNhdGUgaXMgcHJvdmlkZWQgd2l0aCBhbiBpbnZhbGlkIGhvc3RuYW1lLiIiIgorCisgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBjZXJ0LCByZWFzb24pOgorICAgICIiIkNvbnN0cnVjdG9yLgorCisgICAgQXJnczoKKyAgICAgIGhvc3Q6IFRoZSBob3N0bmFtZSB0aGUgY29ubmVjdGlvbiB3YXMgbWFkZSB0by4KKyAgICAgIGNlcnQ6IFRoZSBTU0wgY2VydGlmaWNhdGUgKGFzIGEgZGljdGlvbmFyeSkgdGhlIGhvc3QgcmV0dXJuZWQuCisgICAgIiIiCisgICAgaHR0cGxpYi5IVFRQRXhjZXB0aW9uLl9faW5pdF9fKHNlbGYpCisgICAgc2VsZi5ob3N0ID0gaG9zdAorICAgIHNlbGYuY2VydCA9IGNlcnQKKyAgICBzZWxmLnJlYXNvbiA9IHJlYXNvbgorCisgIGRlZiBfX3N0cl9fKHNlbGYpOgorICAgIHJldHVybiAoJ0hvc3QgJXMgcmV0dXJuZWQgYW4gaW52YWxpZCBjZXJ0aWZpY2F0ZSAoJXMpOiAlc1xuJworICAgICAgICAgICAgJ1RvIGxlYXJuIG1vcmUsIHNlZSAnCisgICAgICAgICAgICAnaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9hcHBlbmdpbmUva2IvZ2VuZXJhbC5odG1sI3JwY3NzbCcgJQorICAgICAgICAgICAgKHNlbGYuaG9zdCwgc2VsZi5yZWFzb24sIHNlbGYuY2VydCkpCisKK2NsYXNzIENlcnRWYWxpZGF0aW5nSFRUUFNDb25uZWN0aW9uKGh0dHBsaWIuSFRUUENvbm5lY3Rpb24pOgorICAiIiJBbiBIVFRQQ29ubmVjdGlvbiB0aGF0IGNvbm5lY3RzIG92ZXIgU1NMIGFuZCB2YWxpZGF0ZXMgY2VydGlmaWNhdGVzLiIiIgorCisgIGRlZmF1bHRfcG9ydCA9IGh0dHBsaWIuSFRUUFNfUE9SVAorCisgIGRlZiBfX2luaXRfXyhzZWxmLCBob3N0LCBwb3J0PU5vbmUsIGtleV9maWxlPU5vbmUsIGNlcnRfZmlsZT1Ob25lLAorICAgICAgICAgICAgICAgY2FfY2VydHM9Tm9uZSwgc3RyaWN0PU5vbmUsICoqa3dhcmdzKToKKyAgICAiIiJDb25zdHJ1Y3Rvci4KKworICAgIEFyZ3M6CisgICAgICBob3N0OiBUaGUgaG9zdG5hbWUuIENhbiBiZSBpbiAnaG9zdDpwb3J0JyBmb3JtLgorICAgICAgcG9ydDogVGhlIHBvcnQuIERlZmF1bHRzIHRvIDQ0My4KKyAgICAgIGtleV9maWxlOiBBIGZpbGUgY29udGFpbmluZyB0aGUgY2xpZW50J3MgcHJpdmF0ZSBrZXkKKyAgICAgIGNlcnRfZmlsZTogQSBmaWxlIGNvbnRhaW5pbmcgdGhlIGNsaWVudCdzIGNlcnRpZmljYXRlcworICAgICAgY2FfY2VydHM6IEEgZmlsZSBjb250aWFuaW5nIGEgc2V0IG9mIGNvbmNhdGVuYXRlZCBjZXJ0aWZpY2F0ZSBhdXRob3JpdHkKKyAgICAgICAgICBjZXJ0cyBmb3IgdmFsaWRhdGluZyB0aGUgc2VydmVyIGFnYWluc3QuCisgICAgICBzdHJpY3Q6IFdoZW4gdHJ1ZSwgY2F1c2VzIEJhZFN0YXR1c0xpbmUgdG8gYmUgcmFpc2VkIGlmIHRoZSBzdGF0dXMgbGluZQorICAgICAgICAgIGNhbid0IGJlIHBhcnNlZCBhcyBhIHZhbGlkIEhUVFAvMS4wIG9yIDEuMSBzdGF0dXMgbGluZS4KKyAgICAiIiIKKyAgICBodHRwbGliLkhUVFBDb25uZWN0aW9uLl9faW5pdF9fKHNlbGYsIGhvc3QsIHBvcnQsIHN0cmljdCwgKiprd2FyZ3MpCisgICAgc2VsZi5rZXlfZmlsZSA9IGtleV9maWxlCisgICAgc2VsZi5jZXJ0X2ZpbGUgPSBjZXJ0X2ZpbGUKKyAgICBzZWxmLmNhX2NlcnRzID0gY2FfY2VydHMKKyAgICBpZiBzZWxmLmNhX2NlcnRzOgorICAgICAgc2VsZi5jZXJ0X3JlcXMgPSBzc2wuQ0VSVF9SRVFVSVJFRAorICAgIGVsc2U6CisgICAgICBzZWxmLmNlcnRfcmVxcyA9IHNzbC5DRVJUX05PTkUKKworICBkZWYgX0dldFZhbGlkSG9zdHNGb3JDZXJ0KHNlbGYsIGNlcnQpOgorICAgICIiIlJldHVybnMgYSBsaXN0IG9mIHZhbGlkIGhvc3QgZ2xvYnMgZm9yIGFuIFNTTCBjZXJ0aWZpY2F0ZS4KKworICAgIEFyZ3M6CisgICAgICBjZXJ0OiBBIGRpY3Rpb25hcnkgcmVwcmVzZW50aW5nIGFuIFNTTCBjZXJ0aWZpY2F0ZS4KKyAgICBSZXR1cm5zOgorICAgICAgbGlzdDogQSBsaXN0IG9mIHZhbGlkIGhvc3QgZ2xvYnMuCisgICAgIiIiCisgICAgaWYgJ3N1YmplY3RBbHROYW1lJyBpbiBjZXJ0OgorICAgICAgcmV0dXJuIFt4WzFdIGZvciB4IGluIGNlcnRbJ3N1YmplY3RBbHROYW1lJ10gaWYgeFswXS5sb3dlcigpID09ICdkbnMnXQorICAgIGVsc2U6CisgICAgICByZXR1cm4gW3hbMF1bMV0gZm9yIHggaW4gY2VydFsnc3ViamVjdCddCisgICAgICAgICAgICAgIGlmIHhbMF1bMF0ubG93ZXIoKSA9PSAnY29tbW9ubmFtZSddCisKKyAgZGVmIF9WYWxpZGF0ZUNlcnRpZmljYXRlSG9zdG5hbWUoc2VsZiwgY2VydCwgaG9zdG5hbWUpOgorICAgICIiIlZhbGlkYXRlcyB0aGF0IGEgZ2l2ZW4gaG9zdG5hbWUgaXMgdmFsaWQgZm9yIGFuIFNTTCBjZXJ0aWZpY2F0ZS4KKworICAgIEFyZ3M6CisgICAgICBjZXJ0OiBBIGRpY3Rpb25hcnkgcmVwcmVzZW50aW5nIGFuIFNTTCBjZXJ0aWZpY2F0ZS4KKyAgICAgIGhvc3RuYW1lOiBUaGUgaG9zdG5hbWUgdG8gdGVzdC4KKyAgICBSZXR1cm5zOgorICAgICAgYm9vbDogV2hldGhlciBvciBub3QgdGhlIGhvc3RuYW1lIGlzIHZhbGlkIGZvciB0aGlzIGNlcnRpZmljYXRlLgorICAgICIiIgorICAgIGhvc3RzID0gc2VsZi5fR2V0VmFsaWRIb3N0c0ZvckNlcnQoY2VydCkKKyAgICBmb3IgaG9zdCBpbiBob3N0czoKKyAgICAgIGhvc3RfcmUgPSBob3N0LnJlcGxhY2UoJy4nLCAnXC4nKS5yZXBsYWNlKCcqJywgJ1teLl0qJykKKyAgICAgIGlmIHJlLnNlYXJjaCgnXiVzJCcgJSAoaG9zdF9yZSwpLCBob3N0bmFtZSwgcmUuSSk6CisgICAgICAgIHJldHVybiBUcnVlCisgICAgcmV0dXJuIEZhbHNlCisKKyAgZGVmIGNvbm5lY3Qoc2VsZik6CisgICAgIkNvbm5lY3QgdG8gYSBob3N0IG9uIGEgZ2l2ZW4gKFNTTCkgcG9ydC4iCisgICAgc29jayA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX1NUUkVBTSkKKyAgICBzb2NrLmNvbm5lY3QoKHNlbGYuaG9zdCwgc2VsZi5wb3J0KSkKKyAgICBzZWxmLnNvY2sgPSBzc2wud3JhcF9zb2NrZXQoc29jaywga2V5ZmlsZT1zZWxmLmtleV9maWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjZXJ0ZmlsZT1zZWxmLmNlcnRfZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2VydF9yZXFzPXNlbGYuY2VydF9yZXFzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYV9jZXJ0cz1zZWxmLmNhX2NlcnRzKQorICAgIGlmIHNlbGYuY2VydF9yZXFzICYgc3NsLkNFUlRfUkVRVUlSRUQ6CisgICAgICBjZXJ0ID0gc2VsZi5zb2NrLmdldHBlZXJjZXJ0KCkKKyAgICAgIGhvc3RuYW1lID0gc2VsZi5ob3N0LnNwbGl0KCc6JywgMClbMF0KKyAgICAgIGlmIG5vdCBzZWxmLl9WYWxpZGF0ZUNlcnRpZmljYXRlSG9zdG5hbWUoY2VydCwgaG9zdG5hbWUpOgorICAgICAgICByYWlzZSBJbnZhbGlkQ2VydGlmaWNhdGVFeGNlcHRpb24oaG9zdG5hbWUsIGNlcnQsICdob3N0bmFtZSBtaXNtYXRjaCcpCisKKworY2xhc3MgQ2VydFZhbGlkYXRpbmdIVFRQU0hhbmRsZXIodXJsbGliMi5IVFRQU0hhbmRsZXIpOgorICAiIiJBbiBIVFRQSGFuZGxlciB0aGF0IHZhbGlkYXRlcyBTU0wgY2VydGlmaWNhdGVzLiIiIgorCisgIGRlZiBfX2luaXRfXyhzZWxmLCAqKmt3YXJncyk6CisgICAgIiIiQ29uc3RydWN0b3IuIEFueSBrZXl3b3JkIGFyZ3MgYXJlIHBhc3NlZCB0byB0aGUgaHR0cGxpYiBoYW5kbGVyLiIiIgorICAgIHVybGxpYjIuQWJzdHJhY3RIVFRQSGFuZGxlci5fX2luaXRfXyhzZWxmKQorICAgIHNlbGYuX2Nvbm5lY3Rpb25fYXJncyA9IGt3YXJncworCisgIGRlZiBodHRwc19vcGVuKHNlbGYsIHJlcSk6CisgICAgZGVmIGh0dHBfY2xhc3Nfd3JhcHBlcihob3N0LCAqKmt3YXJncyk6CisgICAgICBmdWxsX2t3YXJncyA9IGRpY3Qoc2VsZi5fY29ubmVjdGlvbl9hcmdzKQorICAgICAgZnVsbF9rd2FyZ3MudXBkYXRlKGt3YXJncykKKyAgICAgIHJldHVybiBDZXJ0VmFsaWRhdGluZ0hUVFBTQ29ubmVjdGlvbihob3N0LCAqKmZ1bGxfa3dhcmdzKQorICAgIHRyeToKKyAgICAgIHJldHVybiBzZWxmLmRvX29wZW4oaHR0cF9jbGFzc193cmFwcGVyLCByZXEpCisgICAgZXhjZXB0IHVybGxpYjIuVVJMRXJyb3IsIGU6CisgICAgICBpZiB0eXBlKGUucmVhc29uKSA9PSBzc2wuU1NMRXJyb3IgYW5kIGUucmVhc29uLmFyZ3NbMF0gPT0gMToKKyAgICAgICAgcmFpc2UgSW52YWxpZENlcnRpZmljYXRlRXhjZXB0aW9uKHJlcS5ob3N0LCAnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucmVhc29uLmFyZ3NbMV0pCisgICAgICByYWlzZQorCisgIGh0dHBzX3JlcXVlc3QgPSB1cmxsaWIyLkFic3RyYWN0SFRUUEhhbmRsZXIuZG9fcmVxdWVzdF8KZGlmZiAtLWdpdCBhL2NsaS9taWR3LnB5IGIvY2xpL21pZHcucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMGY5NzNiYwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9taWR3LnB5CkBAIC0wLDAgKzEsNTI5IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMiwyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCisjIFRoZSBkYXRhYmFzZS9tb2RlbCBkZXNjcmlwdGlvbnMgZXhpc3QgdG8gbWVldCBwYXJ0aWN1bGFyCisjIG5lZWRzLCBmb3IgZXhhbXBsZSwgc3dpdGNoLWFsaWFzIGV4aXN0IHRvIHByb3ZpZGUgYW4gCisjIGFsdGVybmF0ZSBuYW1lIHNwYWNlIGZyb20gZHBpZCdzLCB0byBhbGxvdyBmb3IgYSBtb3JlCisjIHJlYWRhYmxlIGFuZCBodW1hbiB1c2FibGUgZm9ybSBvZiB0aGUgc2FtZSBkcGlkLiAgQWxpYXNlcworIyB3b3VsZCB0aGVuIG5hdHVyYWxseSBuZWVkIGEgYWxpYXMtPmRwaWQgY29udmVyc2lvbiwgYW5kCisjIGF0IHRoZSBzYW1lIHRpbWUsIGEgZHBpZC0+YWxpYXMgKGF0IGxlYXN0IGZvciB0aGUgZGlzcGxheQorIyBvZiBkcGlkJ3MpLgorIworIyBUaGUgZnVuY3Rpb25zIGluIHRoaXMgZmlsZSBwcm92aWRlIHRoZXNlIHR5cGUgb2YgYWJzdHJhY3Rpb25zLAorIyB0YWtpbmcgdGhlIG91dHB1dCBmcm9tIG1vZGVsIGxvb2t1cCdzIGluIHRoZSByZXN0IGFwaSwgYW5kCisjIHN1cHBseWluZyBzb21lIHNlcnZpY2UgdXNlZCBieSB0aGUgY2xpLgorIworCitpbXBvcnQgcmVzdF90b19tb2RlbAoraW1wb3J0IGZtdGNudgoraW1wb3J0IGpzb24KK2ltcG9ydCB1dGlmCisKK2RlZiBpbml0X21pZHdhcmUoYnMsIG1vZGkpOgorICAgIGdsb2JhbCBzZG5zaCwgbWkKKyAgICBzZG5zaCA9IGJzCisgICAgbWkgPSBtb2RpCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIGNyZWF0ZV9vYmpfdHlwZV9kaWN0KG9ial90eXBlLCBmaWVsZCwga2V5ID0gTm9uZSwgdmFsdWUgPSBOb25lKToKKyAgICAiIiIKKyAgICBSZXR1cm4gYSBkaWN0aW9uYXJ5IGZyb20gYSB0YWJsZSBzZWFyY2gsIHdoZXJlIHRoZSBrZXkgaXMgb25lIG9mIHRoZQorICAgIGZpZWxkcy4gIFRoaXMgZG9lc24ndCBtYW5hZ2UgbXVsdGlwbGUgZmllbGQgbWF0Y2hlcy4KKworICAgIFR5cGljYWxseSwgdGhlIGZpZWxkIHNlbGVjdGVkIGlzIGEgZm9yZWlnbiBrZXkgZm9yIHRoZSBvYmpfdHlwZS4KKworICAgIEZvciAoJ2hvc3QtbmV0d29yay1hZGRyZXNzJywgJ2hvc3QnKSwgdGhpcyBjcmVhdGVzIGEgZGljdAorICAgIGluZGV4ZWQgYnkgdGhlIG1hYyBhZGRyZXNzLCByZXR1cm5pbmcgdGhlIHJvdyBpbiB0aGUgdGFibGUgYXNzb2NpYXRlZAorICAgIHdpdGggdGhlIG1hYyAoc2luY2UgdGhlIHByaW1hcnkga2V5IGZvciAnaG9zdCcgaXMgYSBtYWMgYWRkcmVzcykuCisKKyAgICBGb3IgKCd0YWctbWFwcGluZycsICdob3N0JyksIHRoaXMgY3JlYXRlcyBhIGRpY3QgaW5kZXhlZCBieQorICAgIHRoZSBtYWMsIHJldHVybmluZyB0aGUgbWF0Y2hpbmcgcm93IGluIHRoZSB0YWJsZS4KKworICAgIG5vdGU6IFRoaXMgZ2V0cyB0aGUgd2hvbGUgdGFibGUKKyAgICAiIiIKKyAgICBpZiBub3QgbWkub2JqX3R5cGVfaGFzX2ZpZWxkKG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgIHJldHVybiB7fQorCisgICAgaWYgbm90IG1pLm9ial90eXBlX2hhc19tb2RlbChvYmpfdHlwZSk6CisgICAgICAgIGRhdGEgPSB7fQorICAgICAgICBpZiBrZXkgYW5kIHZhbHVlOgorICAgICAgICAgICAgZGF0YVtrZXldID0gdmFsdWUKKyAgICAgICAgcm93cyA9IHJlc3RfdG9fbW9kZWwuZ2V0X21vZGVsX2Zyb21fdXJsKG9ial90eXBlLCBkYXRhKQorICAgIGVsaWYgbm90IHR5cGUoa2V5KSBpcyBkaWN0OgorICAgICAgICB0cnk6CisgICAgICAgICAgICByb3dzID0gc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUob2JqX3R5cGUsIGtleSwgdmFsdWUpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBlcnJvcnMgPSBzZG5zaC5yZXN0X2Vycm9yX3RvX2RpY3QoZSkKKyAgICAgICAgICAgIHByaW50IHNkbnNoLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAgICAgICAgICAgIHJvd3MgPSBbXQorICAgIGVsc2U6CisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJvd3MgPSBzZG5zaC5yZXN0X3F1ZXJ5X29iamVjdHMob2JqX3R5cGUsIGtleSkKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGVycm9ycyA9IHNkbnNoLnJlc3RfZXJyb3JfdG9fZGljdChlKQorICAgICAgICAgICAgcHJpbnQgc2Ruc2gucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3JzKQorICAgICAgICAgICAgcm93cyA9IFtdCisKKyAgICBzX2RpY3QgPSB7fQorICAgIGZvciByb3cgaW4gcm93czoKKyAgICAgICAgaWYgcm93W2ZpZWxkXSBpbiBzX2RpY3Q6CisgICAgICAgICAgICBzX2RpY3Rbcm93W2ZpZWxkXV0uYXBwZW5kKHJvdykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHNfZGljdFtyb3dbZmllbGRdXSA9IFtyb3ddCisKKyAgICByZXR1cm4gc19kaWN0CisKKworIworIyBBTElBUworIworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBhbGlhc19sb29rdXAoYWxpYXNfb2JqX3R5cGUsIGFsaWFzX2lkKToKKyAgICAiIiIKKyAgICBSZXR1cm4gdGhlIHZhbHVlIGZvciB0aGUgYWxpYXMgcmVwbGFjZW1lbnQgYnkgbG9va2luZyBpdCB1cCBpbiB0aGUgc3RvcmUuCisgICAgV2hlbiB0aGVyZSBpcyBubyBhbGlhcyByZXBsYWNlbWVudCwgcmV0dXJuIE5vbmUuCisgICAgIiIiCisgICAgZmllbGQgPSBtaS5hbGlhc19vYmpfdHlwZV9maWVsZChhbGlhc19vYmpfdHlwZSkKKyAgICBpZiBub3QgZmllbGQ6CisgICAgICAgIHByaW50IHNkbnNoLmVycm9yX21zZygiRXJyb3I6IG5vIGZpZWxkIGZvciBhbGlhcyIpCisgICAgICAgIHJldHVybiBOb25lCisgICAgdHJ5OgorICAgICAgICBhbGlhc19rZXkgPSBtaS5wayhhbGlhc19vYmpfdHlwZSkKKyAgICAgICAgIyB1c2UgYW4gZXhhY3Qgc2VhcmNoIGluc3RlYWQgb2YgYSAnZ2V0X29iamVjdC4uLigpJyBzaW5jZQorICAgICAgICAjIGEgbWlzcyBmb3IgYW4gZXhhY3Qgc2VhcmNoIGNhbiBsZWFkIHRvIGEgNDA0IGVycm9yLCB3aGljaAorICAgICAgICAjIGdldHMgcmVjb3JkZWQgaW4gdGhlIGVycm9yIGxvZ3MKKyAgICAgICAgYWxpYXNfcm93ID0gc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoYWxpYXNfb2JqX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsaWFzX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxpYXNfaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGFjdCIpCisgICAgICAgIGlmIGxlbihhbGlhc19yb3cpID09IDE6CisgICAgICAgICAgICByZXR1cm4gYWxpYXNfcm93WzBdW2ZpZWxkXQorICAgICAgICAjIG9ubHkgbGVuKGFsaWFzX3JvdykgPT0gMCBhdCB0aGlzIHBvaW50CisgICAgZXhjZXB0OgorICAgICAgICBwYXNzCisgICAgcmV0dXJuIE5vbmUKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgY29udmVydF9hbGlhc190b19vYmplY3Rfa2V5KG9ial90eXBlLCBuYW1lX29yX2FsaWFzKToKKyAgICAiIiIKKyAgICBGb3IgYSBzcGVjaWZpYyBvYmpfdHlwZSAodGFibGUvbW9kZWwpIHdoaWNoIG1heSBoYXZlIGFuIGFsaWFzICdyb3cnLAorICAgIHJldHVybiB0aGUgYWxpYXMgd2hlbiBpdCBleGlzdHMgZm9yIHRoaXMgbmFtZV9vcl9hbGlhcy4KKyAgICAiIiIKKyAgICBpZiBvYmpfdHlwZSBpbiBtaS5hbGlhc19vYmpfdHlwZV94cmVmOgorICAgICAgICBpZiBuYW1lX29yX2FsaWFzIGluIHNkbnNoLnJlc2VydmVkX3dvcmRzOgorICAgICAgICAgICAgcmV0dXJuIG5hbWVfb3JfYWxpYXMKKyAgICAgICAgZm9yIGFsaWFzIGluIG1pLmFsaWFzX29ial90eXBlX3hyZWZbb2JqX3R5cGVdOgorICAgICAgICAgICAgYWxpYXNfdmFsdWUgPSBhbGlhc19sb29rdXAoYWxpYXMsIG5hbWVfb3JfYWxpYXMpCisgICAgICAgICAgICBpZiBhbGlhc192YWx1ZToKKyAgICAgICAgICAgICAgICByZXR1cm4gYWxpYXNfdmFsdWUKKyAgICByZXR1cm4gbmFtZV9vcl9hbGlhcworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBhbGlhc19jaG9pY2VzX2Zvcl9hbGlhc19vYmpfdHlwZShlbnRyaWVzLCBvYmpfdHlwZSwgdGV4dCk6CisgICAgIiIiCisgICAgVXNlZCB0byByZXR1cm4gYWxsIGNob2ljZXMgb2YgZW50cmllcyBmb3IgYW4gYWxpYXMuICBSZW1vdmUgYW55IG9yaWdpbmFsCisgICAgaXRlbXMgd2hpY2ggYXBwZWFyIGluIHRoZSBlbnRyaWVzIGxpc3QgcGFzc2VkIGluICBwcmV2ZW50aW5nIGR1cGxpY2F0aW9uCisgICAgb2YgZW50cmllcworCisgICAgQWxzbyBzZWUgY3BfYWxpYXNfY2hvaWNlcygpLCB3aGljaCBpcyBzaW1pbGFyLCBidXQgaW5jbHVkZXMKKyAgICB0aGUgY3VycmVudCBtb2RlLgorICAgICIiIgorICAgIGlmIG9ial90eXBlIGluIG1pLmFsaWFzX29ial90eXBlX3hyZWY6CisgICAgICAgIGZvciBhbGlhcyBpbiBtaS5hbGlhc19vYmpfdHlwZV94cmVmW29ial90eXBlXToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBrZXkgPSBtaS5wayhhbGlhcykKKyAgICAgICAgICAgICAgICBhbGlhc19kaWN0ID0gY3JlYXRlX29ial90eXBlX2RpY3QoYWxpYXMsIGtleSwga2V5LCB0ZXh0KQorICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAjIHJlbW92ZSB0aGUgYWxpYXMgbmFtZSBpZiB0aGUgZHBpZCBpcyBpbiB0aGUKKyAgICAgICAgICAgICAgICAjIGxpc3Qgb2YgZW50cmllcy4uLiBJbiBhbGwgY2FzZXMgdGhlIGFsaWFzIGlzIGFkZGVkLAorICAgICAgICAgICAgICAgICMgZXNwZWNpYWxseSBzaW5jZSB0aGUgYWxpYXNfZGljdCBtYXkgb25seSBjb250YWluIHNlbGVjdGVkCisgICAgICAgICAgICAgICAgIyBlbnRyaWVzIGZyb20gdGhlICd0ZXh0JyBxdWVyeSwgYW5kIGVudHJpZXMgbWF5IGFscmVhZHkKKyAgICAgICAgICAgICAgICAjIGV4Y2x1ZGUgdGhvc2UgaXRlbXMuCisgICAgICAgICAgICAgICAgYWxpYXNfZmllbGQgPSBtaS5hbGlhc19vYmpfdHlwZV9maWVsZChhbGlhcykKKyAgICAgICAgICAgICAgICBpZiBub3QgYWxpYXNfZmllbGQ6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gYWxpYXNfZGljdDoKKyAgICAgICAgICAgICAgICAgICAgaWYgYWxpYXNfZGljdFtpdGVtXVswXVthbGlhc19maWVsZF0gaW4gZW50cmllczoKKyAgICAgICAgICAgICAgICAgICAgICAgIGVudHJpZXMucmVtb3ZlKGFsaWFzX2RpY3RbaXRlbV1bMF1bYWxpYXNfZmllbGRdKQorICAgICAgICAgICAgICAgICAgICBlbnRyaWVzLmFwcGVuZChpdGVtKQorCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICByZXR1cm4gZW50cmllcworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBhbGlhc19sb29rdXBfd2l0aF9mb3JlaWduX2tleShhbGlhc19vYmpfdHlwZSwgZm9yZWlnbl9rZXkpOgorICAgICIiIgorICAgIEZpbmQgdGhlIGFsaWFzIG5hbWUgZm9yIHNvbWUgYWxpYXMgYmFzZWQgb24gdGhlIGZvcmVpZ24ga2V5J3MKKyAgICB2YWx1ZSBpdCdzIGFzc29jaWFlZCB3aXRoLgorICAgICIiIgorICAgIGZvcmVpZ25fZmllbGQgPSBtaS5hbGlhc19vYmpfdHlwZV9maWVsZChhbGlhc19vYmpfdHlwZSkKKyAgICB0cnk6CisgICAgICAgIHJvd3MgPSBzZG5zaC5nZXRfdGFibGVfZnJvbV9zdG9yZShhbGlhc19vYmpfdHlwZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcmVpZ25fZmllbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JlaWduX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJleGFjdCIpCisgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgZXJyb3JzID0gc2Ruc2gucmVzdF9lcnJvcl90b19kaWN0KGUpCisgICAgICAgIHByaW50IHNkbnNoLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAgICAgICAgcm93cyA9IFtdCisgICAgaWYgbGVuKHJvd3MpID09IDE6CisgICAgICAgIHJldHVybiByb3dzWzBdW21pLnBrKGFsaWFzX29ial90eXBlKV0KKyAgICByZXR1cm4gTm9uZQorCisKKyMKKyMgSW50ZXJmYWNlIGJldHdlZW4gdGhlIGNsaSBhbmQgdGFibGUgb3V0cHV0IHJlcXVpcmVzIGRpY3Rpb25hcmllcworIyB3aGljaCBtYXAgYmV0d2VlbiBsb3cgaXRlbSB0eXBlIHZhbHVlcyAoZm9yIGV4YW1wbGUsIGRwaWQncykgYW5kCisjIGFsaWFzIG5hbWVzIGZvciB0aGUgaXRlbXMgKGZvciBleGFtcGxlLCBzd2l0Y2ggYWxpYXNlcyksIHRvIGJlCisjIHVwZGF0ZWQgYmVmb3JlIGRpc3BsYXkuICAgSWYgY2Fzc2FuZHJhIGNvdWxkIHByb3ZpZGUgc29tZSB2ZXJzaW9uCisjIG51bWJlciAob3IgaGFzaCBvZiB0aGUgY29tcGxldGUgdGFibGUpLCB0aGUgbG9va3VwIGNvdWxkIGJlIGF2b2lkZWQKKyMgYnkgdmFsaWF0aW5nIHRoYXQgdGhlIGN1cnJlbnQgcmVzdWx0IGlzIHVwLXRvLWRhdGUuCisjCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIHVwZGF0ZV9zaG93X2FsaWFzKG9ial90eXBlKToKKyAgICAiIiIKKyAgICBVcGRhdGUgYWxpYXMgYXNzb2NpYXRpb25zIGZvciB0aGUgcHJldHR5IHByaW50ZXIsIHVzZWQgZm9yIHRoZQorICAgICdzaG93JyBvZiB0YWJsZXMKKyAgICAiIiIKKyAgICBpZiBvYmpfdHlwZSBpbiBtaS5hbGlhc19vYmpfdHlwZV94cmVmOgorICAgICAgICBmb3IgYWxpYXMgaW4gbWkuYWxpYXNfb2JqX3R5cGVfeHJlZltvYmpfdHlwZV06CisgICAgICAgICAgICBmaWVsZCA9IG1pLmFsaWFzX29ial90eXBlX2ZpZWxkKGFsaWFzKQorICAgICAgICAgICAgaWYgbm90IGZpZWxkOgorICAgICAgICAgICAgICAgIHByaW50IHNkbnNoLmVycm9yX21zZygidXBkYXRlIHNob3cgYWxpYXMgYWxpYXNfb2JqX3R5cGVfZmllbGQiKQorICAgICAgICAgICAgICAgIHJldHVybgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHRhYmxlID0gc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoYWxpYXMpCisgICAgICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgICAgIHRhYmxlID0gW10KKworICAgICAgICAgICAgbmV3X2RpY3QgPSB7fQorICAgICAgICAgICAga2V5ID0gbWkucGsoYWxpYXMpCisgICAgICAgICAgICAjIChmb3JlaWduX29iaiwgZm9yZWlnbl9maWVsZCkgPSBcCisgICAgICAgICAgICAgICAgIyBtaS5mb3JlaWduX2tleV9yZWZlcmVuY2VzKGFsaWFzLCBmaWVsZCkKKyAgICAgICAgICAgIGZvciByb3cgaW4gdGFibGU6CisgICAgICAgICAgICAgICAgbmV3X2RpY3Rbcm93W2ZpZWxkXV0gPSByb3dba2V5XQorICAgICAgICAgICAgZm10Y252LnVwZGF0ZV9hbGlhc19kaWN0KG9ial90eXBlLCBuZXdfZGljdCkKKyAgICByZXR1cm4KKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgdXBkYXRlX3N3aXRjaF9hbGlhc19jYWNoZSgpOgorICAgICIiIgorICAgIFVwZGF0ZSB0aGUgY2xpTW9kZUluZm8gcHJldHR5cHJpbnRpbmcgc3dpdGNoIHRhYmxlCisgICAgIiIiCisgICAgcmV0dXJuIHVwZGF0ZV9zaG93X2FsaWFzKCdzd2l0Y2gtY29uZmlnJykKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgdXBkYXRlX3N3aXRjaF9wb3J0X25hbWVfY2FjaGUoKToKKyAgICAiIiIKKyAgICBVcGRhdGUgdGhlIGNsaU1vZGVJbmZvIHByZXR0eXByaW50aW5nIHBvcnROYW1lcyB0YWJsZQorICAgICIiIgorICAgICMgcmV0dXJuIHVwZGF0ZV9zaG93X2FsaWFzKCdwb3J0JykKKworICAgIGVycm9ycyA9IE5vbmUKKyAgICBzd2l0Y2hfcG9ydF90b19uYW1lX2RpY3QgPSB7fQorCisgICAgdHJ5OgorICAgICAgICBwb3J0cyA9IHJlc3RfdG9fbW9kZWwuZ2V0X21vZGVsX2Zyb21fdXJsKCdpbnRlcmZhY2VzJywge30pCisgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgZXJyb3JzID0gc2Ruc2gucmVzdF9lcnJvcl90b19kaWN0KGUpCisKKyAgICBpZiBlcnJvcnM6CisgICAgICAgIHByaW50IHNkbnNoLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAgICAgICAgcmV0dXJuCisKKyAgICBmb3IgcG9ydCBpbiBwb3J0czoKKyAgICAgICAga2V5X3N0cmluZyA9IHBvcnRbJ3N3aXRjaCddICsgIi4iICsgIiVkIiAlIHBvcnRbJ3BvcnROdW1iZXInXQorICAgICAgICBzd2l0Y2hfcG9ydF90b19uYW1lX2RpY3Rba2V5X3N0cmluZ10gPSBwb3J0Wydwb3J0TmFtZSddCisgICAgZm10Y252LnVwZGF0ZV9hbGlhc19kaWN0KCJwb3J0TmFtZXMiLCBzd2l0Y2hfcG9ydF90b19uYW1lX2RpY3QpCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIHVwZGF0ZV9ob3N0X2FsaWFzX2NhY2hlKCk6CisgICAgIiIiCisgICAgVXBkYXRlIHRoZSBjbGlNb2RlSW5mbyBwcmV0dHlwcmludGluZyBob3N0IHRhYmxlCisgICAgIiIiCisgICAgcmV0dXJuIHVwZGF0ZV9zaG93X2FsaWFzKCdob3N0LWNvbmZpZycpCisKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyB1cGRhdGVfZmxvd19jb29raWVfaGFzaAorCitkZWYgdXBkYXRlX2Zsb3dfY29va2llX2hhc2goKToKKyAgICAiIiIKKyAgICBUaGUgZm9ybWF0dGVyIGtlZXBzIGEgbWFwIGZvciBzdGF0aWMgZmxvdyBlbnRyaWVzLgorICAgICIiIgorICAgICMgaXRlcmF0ZSB0aHJvdWdoIGFsbCB0aGUgc3RhdGljIGZsb3dzIGFuZCBnZXQgdGhlaXIgaGFzaGVzIG9uY2UKKyAgICBmbG93X21hcCA9IHt9CisgICAgcHJpbWUgPSAyMTEKKyAgICBmb3Igc2YgaW4gc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoImZsb3ctZW50cnkiKToKKyAgICAgICAgZmxvd19oYXNoID0gMjMxMQorICAgICAgICBmb3IgaSBpbiByYW5nZSgwLCBsZW4oc2ZbJ25hbWUnXSkpOgorICAgICAgICAgICAgZmxvd19oYXNoID0gZmxvd19oYXNoICogcHJpbWUgKyBvcmQoc2ZbJ25hbWUnXVtpXSkKKyAgICAgICAgZmxvd19oYXNoID0gZmxvd19oYXNoICYgKCAoMSA8PCAyMCkgLSAxKQorICAgICAgICBmbG93X21hcFtmbG93X2hhc2hdID0gc2ZbJ25hbWUnXQorCisgICAgZm10Y252LnVwZGF0ZV9hbGlhc19kaWN0KCJzdGF0aWNmbG93IiwgZmxvd19tYXApCisKKyAgICBmbXRjbnYuY2FsbG91dF9mbG93X2VuY29kZXJzKHNkbnNoKQorCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMKKworZGVmIHVwZGF0ZV9jb250cm9sbGVyX25vZGVfYWxpYXNfY2FjaGUoKToKKyAgICByZXR1cm4gdXBkYXRlX3Nob3dfYWxpYXMoJ2NvbnRyb2xsZXItbm9kZScpCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMKK2RlZiBvYmpfdHlwZV9zaG93X2FsaWFzX3VwZGF0ZShvYmpfdHlwZSk6CisgICAgIiIiCisgICAgV2hlbiBzb21lIGl0ZW0gaXMgYWJvdXQgdG8gYmUgZGlzcGxheWVkLCBwYXJ0aWN1bGFyICdhbGlhcycKKyAgICBpdGVtcyBmb3IgdGhlIGRpc3BsYXkgbWF5IHJlcXVpcmUgdXBkYXRpbmcuICBpbnN0ZWFkIG9mIGp1c3QKKyAgICB1cGRhdGluZyBldmVyeXRoaW5nIGFsbCB0aGUgdGltZSwgcGVlayBhdCB0aGUgZGlmZmVyZW50IGZvcm1hdHRpbmcKKyAgICBmdW5jdGlvbnMgYW5kIHVzZSB0aG9zZSBmdW5jdGlvbiBuYW1lcyB0byBkZXRlcm1pbmUgd2hhdCBuZWVkcyB0bworICAgIGJlIHVwZGF0ZWQuCisKKyAgICBBbHNvIHNlZSBmb3JtYXR0ZXJfdG9fdXBkYXRlIGluIGNsaW1vZGVsaW5mbywgc2luY2UgaXQgbWF5CisgICAgbmVlZCB0byBpbmNsdWRlIG5ldyBmb3JtYXR0aW5nIGZ1bmN0aW9ucy4KKyAgICAiIiIKKyAgICB1cGRhdGUgPSB7fQorICAgIHNkbnNoLnBwLmZvcm1hdF90b19hbGlhc191cGRhdGUob2JqX3R5cGUsIHVwZGF0ZSkKKworICAgICMgc2VsZWN0IG9iamVjdHMgZnJvbSAndXBkYXRlJyBkaWN0CisgICAgaWYgJ2hvc3QnIGluIHVwZGF0ZToKKyAgICAgICAgdXBkYXRlX2hvc3RfYWxpYXNfY2FjaGUoKQorICAgIGlmICdzd2l0Y2gnIGluIHVwZGF0ZToKKyAgICAgICAgdXBkYXRlX3N3aXRjaF9hbGlhc19jYWNoZSgpCisgICAgaWYgJ3BvcnQnIGluIHVwZGF0ZToKKyAgICAgICAgdXBkYXRlX3N3aXRjaF9wb3J0X25hbWVfY2FjaGUoKQorICAgIGlmICdmbG93JyBpbiB1cGRhdGU6CisgICAgICAgIHVwZGF0ZV9mbG93X2Nvb2tpZV9oYXNoKCkKKyAgICBpZiAnY29udHJvbGxlci1ub2RlJyBpbiB1cGRhdGU6CisgICAgICAgIHVwZGF0ZV9jb250cm9sbGVyX25vZGVfYWxpYXNfY2FjaGUoKQorCisKKyMKKyMgT0JKRUNUcyBtaWRkbGV3YXJlLgorIworCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIG9iamVjdHNfc3RhcnRpbmdfd2l0aChvYmpfdHlwZSwgdGV4dCA9ICIiLCBrZXkgPSBOb25lKToKKyAgICAiIiIKKyAgICBUaGUgZnVuY3Rpb24gcmV0dXJucyBhIGxpc3Qgb2YgbWF0Y2hpbmcga2V5cyBmcm9tIHRhYmxlL21vZGVsCisgICAgaWRlbnRpZmllZCBieSB0aGUgJ29ial90eXBlJyBwYXJhbWV0ZXIKKworICAgIElmIHRoZSB0YWJsZS9tb2RlbCBoYXMgYSAnYWxpYXMnIGZpZWxkLCB0aGVuIHRoaXMgZmllbGQncworICAgIHZhbHVlcyBhcmUgYWxzbyBleGFtaW5lZCBmb3IgbWF0Y2hlcworCisgICAgVGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBuYW1lIG9mIGEgdGFibGUvbW9kZWwgaW4gdGhlIHN0b3JlLAorICAgIHdoaWxlIHRoZSBzZWNvbmQgYXJndW1lbnQgaXMgYSBwcmVmaXggdG8gZmlsdGVyIHRoZSByZXN1bHRzLgorICAgIFRoZSBmaWx0ZXIgaXMgYXBwbGllZCB0byB0aGUga2V5IG9mIHRoZSB0YWJsZS9tb2RlbCwgd2hpY2gKKyAgICB3YXMgcHJldmlvdXNseSBwb3B1bGF0ZWQuCisgICAgIiIiCisKKyAgICBpZiBrZXk6CisgICAgICAgIGlmIG5vdCBtaS5vYmpfdHlwZV9oYXNfZmllbGQob2JqX3R5cGUsIGtleSk6CisgICAgICAgICAgICBzZG5zaC53YXJuaW5nKCJvYmplY3RzX3N0YXJ0aW5nX3dpdGg6ICVzIGRvZXNuJ3QgaGF2ZSBmaWVsZCAlcyIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAob2JqX3R5cGUsIGtleSkpCisgICAgZWxzZToKKyAgICAgICAga2V5ID0gbWkucGsob2JqX3R5cGUpCisgICAgICAgIGlmIGtleSA9PSBOb25lOgorICAgICAgICAgICAgc2Ruc2gud2FybmluZygib2JqZWN0c19zdGFydGluZ193aXRoOiAlcyBkb2Vzbid0IGhhdmUgcGsiICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKG9ial90eXBlKSkKKyAgICBrZXlfZW50cmllcyA9IFtdCisKKyAgICAjIE5leHQsIGZpbmQgdGhlIG9iamVjdAorICAgICMgIERlYWwgd2l0aCBhbnkgY2hhbmdlcyB0byB0aGUgbG9va3VwIG5hbWUgYmFzZWQgb24gdGhlICdjb250ZW5hdGlvbicKKyAgICAjICBvZiB0aGUgY29uZmlnIG1vZGUgbmFtZSB0byB0aGUgbmFtZWQgaWRlbnRpZmVyLgorICAgICMKKworCisgICAgY2FzZSA9IG1pLmdldF9vYmpfdHlwZV9maWVsZF9jYXNlX3NlbnNpdGl2ZShvYmpfdHlwZSwga2V5KQorICAgIGlkX3ZhbHVlID0gdXRpZi5jb252ZXJ0X2Nhc2UoY2FzZSwgdGV4dCkKKworICAgIGlmIG1pLm9ial90eXBlX2hhc19tb2RlbChvYmpfdHlwZSk6CisgICAgICAgICMgZnJvbSB0aGUgZGF0YWJhc2UKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgZW50cmllcyA9IHNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKG9ial90eXBlLCBrZXksIGlkX3ZhbHVlKQorICAgICAgICAgICAgZXJyb3JzID0gTm9uZQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXJyb3JzID0gc2Ruc2gucmVzdF9lcnJvcl90b19kaWN0KGUpCisgICAgICAgIGlmIGVycm9yczoKKyAgICAgICAgICAgIHByaW50IHNkbnNoLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKyAgICAgICAgICAgIHJldHVybiBrZXlfZW50cmllcworICAgIGVsc2U6CisgICAgICAgIGlmIGlkX3ZhbHVlID09ICcnOgorICAgICAgICAgICAgZW50cmllcyA9IHJlc3RfdG9fbW9kZWwuZ2V0X21vZGVsX2Zyb21fdXJsKG9ial90eXBlLCB7fSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGVudHJpZXMgPSByZXN0X3RvX21vZGVsLmdldF9tb2RlbF9mcm9tX3VybChvYmpfdHlwZSwgeyBrZXkgKyAiX19zdGFydHN3aXRoIiA6IGlkX3ZhbHVlIH0pCisKKyAgICBpZiBrZXkgYW5kIGVudHJpZXM6CisgICAgICAgICMgRXhwYW5kIGFueSBrZXkgdmFsdWVzIHdoaWNoIGFyZSBsaXN0cyAoaG9zdHMsIGZvciBleGFtcGxlKQorICAgICAgICBpdGVtcyA9IFt4W2tleV0gZm9yIHggaW4gZW50cmllcyBpZiB4LmdldChrZXkpXQorICAgICAgICBlbnRyaWVzID0gW10KKyAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6CisgICAgICAgICAgICBpZiB0eXBlKGl0ZW0pID09IGxpc3Q6CisgICAgICAgICAgICAgICAgZW50cmllcyArPSBpdGVtCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGVudHJpZXMuYXBwZW5kKGl0ZW0pCisgICAgICAgIGtleV9lbnRyaWVzID0gW3NkbnNoLnF1b3RlX2l0ZW0ob2JqX3R5cGUsIHgpCisgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIGVudHJpZXMgaWYgeC5zdGFydHN3aXRoKGlkX3ZhbHVlKV0KKyAgICAjCisgICAgIyBmb3Igc29tZSBzcGVjaWZpYyB0YWJsZXMgd2hpY2ggaGF2ZSBpZCdzIGNvbmNhdGVuYXRlZCBmcm9tIG11bHRpcGxlIG90aGVyCisgICAgIyBjb21wb25lbnRzLCBvbmx5IHBhcnQgb2YgdGhlIGlkIGlzIGF2YWlsYWJsZSBmb3IgY29tcGxldGlvbi4KKyAgICAjCisgICAgaWYgbWkuaXNfY29tcG91bmRfa2V5KG9ial90eXBlLCBrZXkpOgorICAgICAgICBzZXBhcmF0b3JfY2hhcmFjdGVyID0gbWkuY29tcG91bmRfa2V5X3NlcGFyYXRvcihvYmpfdHlwZSwga2V5KQorICAgICAgICBrZXlEaWN0ID0ge30KKyAgICAgICAgZm9yIGtleSBpbiBrZXlfZW50cmllczoKKyMgICAgICAgICAgICBrZXlEaWN0W2tleS5zcGxpdChzZXBhcmF0b3JfY2hhcmFjdGVyKVswXV0gPSAnJworICAgICAgICAgICAga2V5RGljdFtrZXldID0gJycKKyAgICAgICAga2V5X2VudHJpZXMgPSBrZXlEaWN0LmtleXMoKQorCisgICAgYWxpYXNfb2JqX3R5cGUgPSBvYmpfdHlwZQorICAgIGlmIGtleSAhPSBtaS5wayhhbGlhc19vYmpfdHlwZSk6CisgICAgICAgICMgaWYgdGhpcyBpcyBhIGZvcmdlaWduIGtleSwgdXNlIHRoZSBvYmpfdHlwZSBvZiB0aGUgZmsuCisgICAgICAgIGlmIG1pLmlzX2ZvcmVpZ25fa2V5KGFsaWFzX29ial90eXBlLCBrZXkpOgorICAgICAgICAgICAgKGFsaWFzX29ial90eXBlLCBma19uYW1lKSA9IG1pLmZvcmVpZ25fa2V5X3JlZmVyZW5jZXMoYWxpYXNfb2JqX3R5cGUsIGtleSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgICMgWFhYIHBvc3NpYmx5IG90aGVyIGNob2ljZXMgdG8gZGV0ZXJtaW5lIGFsaWFzX29ial90eXBlPworICAgICAgICAgICAgYWxpYXNfb2JqX3R5cGUgPSBOb25lCisKKyAgICBpZiBhbGlhc19vYmpfdHlwZToKKyAgICAgICAgb2JqX3R5cGVfY29uZmlnID0gbWkub2JqX3R5cGVfcmVsYXRlZF9jb25maWdfb2JqX3R5cGUoYWxpYXNfb2JqX3R5cGUpCisKKyAgICAgICAgIyBhbGlhc19jaG9pY2VzX2Zvcl9hbGlhc19vYmpfdHlwZSgpIHJlbW92ZXMgc3dpdGNoIGRwaWQncyB3aGljaAorICAgICAgICAjIGhhdmUgYXNzb2NpYXRlZCBhbGlhcyBuYW1lcywKKyAgICAgICAga2V5X2VudHJpZXMgPSBhbGlhc19jaG9pY2VzX2Zvcl9hbGlhc19vYmpfdHlwZShrZXlfZW50cmllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmpfdHlwZV9jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dCkKKworICAgIHJldHVybiBrZXlfZW50cmllcworCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIGxvY2FsX2ludGVyZmFjZXNfZmlyZXdhbGxfb3Blbihwcm90b3MsIHBvcnRzLCBjb250cm9sbGVyX2lkID0gTm9uZSk6CisgICAgIiIiCisgICAgUmV0dXJuIGEgbGlzdCBvZiBpbnRlcmZhY2VzLCB3aGljaCBoYXZlIHRoZSBwcm90byBhbmQgcG9ydCBjdXJyZW50bHkgZW5hYmxlZAorCisgICAgQHBhcmFtIHByb3RvIGEgc3RyaW5nLCBvciBsaXN0IG9mIHN0cmluZ3MsIGlkZW50aWZ5aW5nIHRoZSBwcm90b2NvbAorICAgIEBwYXJhbSBwb3J0IGEgc3RyaW5ncywgb3IgbGlzdCBvZiBzdHJpbmdzIG9yIGludHMKKyAgICAiIiIKKworICAgICMgZmlyc3QgY29sbGVjdCBhbGwgYXNzb2NpYXRlZCBydWxlcworICAgIGlmIHR5cGUocHJvdG9zKSAhPSBsaXN0OgorICAgICAgICBwcm90b3MgPSBbcHJvdG9zXQorICAgIGlmIHR5cGUocG9ydHMpICE9IGxpc3Q6CisgICAgICAgIHBvcnRzID0gW3BvcnRzXQorCisgICAgcnVsZXMgPSBbXQorICAgIGZvciBwcm90byBpbiBwcm90b3M6CisgICAgICAgIGZvciBwb3J0IGluIHBvcnRzOgorICAgICAgICAgICAgcXVlcnlfZGljdCA9IHsgJ3Byb3RvJyA6IHByb3RvLCAncG9ydCcgOiBwb3J0IH0KKyAgICAgICAgICAgIHJ1bGVzICs9IHNkbnNoLnJlc3RfcXVlcnlfb2JqZWN0cygnZmlyZXdhbGwtcnVsZScsIHF1ZXJ5X2RpY3QpCisKKyAgICAjIGNyZWF0ZSBhIGRpY3Rpb25hcnkgaW5kZXhlZCBieSB0aGUgaW50ZXJmYWNlLCB3aGljaCBpcyBwYXJ0IG9mIHRoZSBwayAnaWQnCisgICAgcnVsZXNfb2ZfaW50ZXJmYWNlID0gZGljdChbW3hbJ2ludGVyZmFjZSddLCB4XSBmb3IgeCBpbiBydWxlc10pCisKKyAgICBpZiBjb250cm9sbGVyX2lkID09IE5vbmU6CisgICAgICAgICMgcmVxdWVzdCAndGhpcycgY29udHJvbGxlcgorICAgICAgICBjb250cm9sbGVyX3VybCA9ICJodHRwOi8vJXMvcmVzdC92MS9zeXN0ZW0vY29udHJvbGxlciIgJSBzZG5zaC5jb250cm9sbGVyCisgICAgICAgIHJlc3VsdCA9IHNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QoY29udHJvbGxlcl91cmwpCisgICAgICAgIHNkbnNoLmNoZWNrX3Jlc3RfcmVzdWx0KHJlc3VsdCkKKyAgICAgICAgY29udHJvbGxlcl9pZCA9IGpzb24ubG9hZHMocmVzdWx0KQorCisgICAgaWYgY29udHJvbGxlcl9pZCAhPSAnYWxsJzoKKyAgICAgICAgcXVlcnlfZGljdCA9IHsgJ2NvbnRyb2xsZXInIDogY29udHJvbGxlcl9pZFsnaWQnXSB9CisKKyAgICBpZnMgPSBzZG5zaC5yZXN0X3F1ZXJ5X29iamVjdHMoJ2NvbnRyb2xsZXItaW50ZXJmYWNlJywgcXVlcnlfZGljdCkKKworICAgIHJldHVybiBbaWZuIGZvciBpZm4gaW4gaWZzIGlmIGlmblsnaWQnXSBpbiBydWxlc19vZl9pbnRlcmZhY2VdCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCitkZWYgbG9nX3VybChpcF9hbmRfcG9ydCA9IE5vbmUsIGxvZyA9IE5vbmUpOgorICAgICIiIgorICAgIFJldHVybnMgdGhlIHVybCBvZiB0aGUgbG9nJ3Mgb24gdGhlIG5hbWVkIGlwX2FuZF9wb3J0LgorICAgICIiIgorICAgIGxvZ19wYXRoID0gJ2h0dHA6Ly8lcy9yZXN0L3YxL3N5c3RlbS9sb2cnICUgaXBfYW5kX3BvcnQKKyAgICBpZiBsb2c6CisgICAgICAgIGxvZ19wYXRoICs9ICcvJyArIGxvZworICAgIHJldHVybiBsb2dfcGF0aAorCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCitkZWYgY29udHJvbGxlcl9pcF9hbmRfcG9ydChjb250cm9sbGVyKToKKyAgICAiIiIKKyAgICBSZXR1cm4gYSBsaXN0IG9mIGlwOnBvcnQgdmFsdWVzIGZvciBuYW1lZCBjb250cm9sbGVycywKKyAgICB0byB1c2UgdG8gYnVpbGQgdXJscyBmb3IgUkVTVCBBUEkncy4gICBJZiBhIGNvbnRyb2xsZXIgb2YgJ2FsbCcKKyAgICBpcyBwYXNzZWQgaW4sIHRoZW4gYWxsIHRoZSBjb250cm9sbGVycyBhciBlbnVtZXJhdGVkLgorCisgICAgSWYgYm90aCBwb3J0IDgwLCBhbmQgODAwMCBhcmUgb3BlbiwgdGhlbiB0d28gaXA6cG9ydCAKKyAgICBwYWlycyB3aWxsIGJlIHJldHVybmVkIGZvciBhIGNvbnRyb2xsZXIuICBUaGlzIHJldHVybnMKKyAgICBBTEwgdmFsdWVzIHdoaWNoIG1hdGNoLCAgbm90IGEgc2luZ2xlIGlwOnBvcnQgZm9yIGVhY2gKKyAgICBjb250cm9sbGVyLgorICAgICIiIgorICAgIHVybCA9ICdodHRwOi8vJXMvcmVzdC92MS9zeXN0ZW0vY29udHJvbGxlcicgJSBzZG5zaC5jb250cm9sbGVyCisgICAgcmVzdF9kaWN0ID0gc2Ruc2gucmVzdF9zaW1wbGVfcmVxdWVzdF90b19kaWN0KHVybCkKKyAgICB0aGlzX2NvbnRyb2xsZXIgPSByZXN0X2RpY3RbJ2lkJ10KKworICAgIGlwc184MCA9IFt4IGZvciB4IGluIGxvY2FsX2ludGVyZmFjZXNfZmlyZXdhbGxfb3BlbigndGNwJywgODAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIpCisgICAgICAgICAgIGlmICh4WydpcCddICE9ICcnIG9yIHhbJ2Rpc2NvdmVyZWQtaXAnXSAhPSAnJyldCisKKyAgICBpcHNfODAwMCA9IFt4IGZvciB4IGluIGxvY2FsX2ludGVyZmFjZXNfZmlyZXdhbGxfb3BlbigndGNwJywgODAwMCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyKQorICAgICAgICAgICBpZiAoeFsnaXAnXSAhPSAnJyBvciB4WydkaXNjb3ZlcmVkLWlwJ10gIT0gJycpXQorCisgICAgcmV0dXJuIFsnJXM6ODAnICUgJzEyNy4wLjAuMScgaWYgeFsnY29udHJvbGxlciddID09IHRoaXNfY29udHJvbGxlciBlbHNlCisgICAgICAgICAgICAgICAgeFsnZGlzY292ZXJlZC1pcCddIGlmIHhbJ2Rpc2NvdmVyZWQtaXAnXSAhPSAnJyBlbHNlIHhbJ2lwJ10KKyAgICAgICAgICAgIGZvciB4IGluIGlwc184MF0gKyBbJyVzOjgwMDAnICUKKyAgICAgICAgICAgICAgICAnMTI3LjAuMC4xJyBpZiB4Wydjb250cm9sbGVyJ10gPT0gdGhpc19jb250cm9sbGVyIGVsc2UKKyAgICAgICAgICAgICAgICB4WydkaXNjb3ZlcmVkLWlwJ10gaWYgeFsnZGlzY292ZXJlZC1pcCddICE9ICcnIGVsc2UgeFsnaXAnXQorICAgICAgICAgICAgZm9yIHggaW4gaXBzXzgwMDBdCmRpZmYgLS1naXQgYS9jbGkvbW9kaS5weSBiL2NsaS9tb2RpLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjRiYjE1NmQKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvbW9kaS5weQpAQCAtMCwwICsxLDEyMTIgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDExLDIwMTIsMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworaW1wb3J0IHN5cworIyBmcm9tIG1pZHcgaW1wb3J0ICoKKworIworIyBNT0RlbCBJbmZvcm1hdGlvbiAobW9kaSkKKyMKKworY2xhc3MgTW9kaSgpOgorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHNkbnNoLCBjbGlfbW9kZWxfaW5mbyk6CisgICAgICAgIHNlbGYuc2Ruc2ggPSBzZG5zaAorCisgICAgICAgIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0ID0ge30KKyAgICAgICAgc2VsZi5vYmpfdHlwZXMgPSBbXQorICAgICAgICBzZWxmLm9ial9rZXlzID0ge30KKworICAgICAgICAjIHNlbGYuY2xpX21vZGVsX2luZm8gPSBDbGlNb2RlbEluZm8oKQorICAgICAgICBzZWxmLmNsaV9tb2RlbF9pbmZvID0gY2xpX21vZGVsX2luZm8KKworICAgICAgICBzZWxmLmluaXRfb2JqX3R5cGVfaW5mb19kaWN0KGNsaV9tb2RlbF9pbmZvKQorICAgICAgICBzZWxmLmluaXRfZm9yZWlnbl9rZXlfeHJlZigpCisgICAgICAgIHNlbGYuaW5pdF9hbGlhc19vYmpfdHlwZV94cmVmKCkKKworICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYgX2xpbmUoKToKKyAgICAgICAgIyBweWxpbnQ6IGRpc2FibGU9VzAyMTIKKyAgICAgICAgZiA9IHN5cy5fZ2V0ZnJhbWUoKS5mX2JhY2sKKyAgICAgICAgcmV0dXJuICdbJXM6JWRdJyAlIChmLmZfY29kZS5jb19maWxlbmFtZSwgZi5mX2xpbmVubykKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgZGVmIGluaXRfb2JqX3R5cGVfaW5mb19kaWN0KHNlbGYsIGNsaV9tb2RlbF9pbmZvKToKKyAgICAgICAgIiIiCisgICAgICAgIFdoZW4gb2JqX3R5cGVfaW5mb19kaWN0IGlzIGluZGV4ZWQgYnkgdGhlIHRhYmxlL21vZGVsIG5hbWUsCisgICAgICAgIHRoZSB2YWx1ZSBpcyBhIGRpY3Rpb25hcnkuICBUaGF0IGRpY3Rpb25hcnkgaGFzIHNldmVyYWwga2V5czoKKyAgICAgICAgCisgICAgICAgIC0gJ2Nhc2NhZGVfZGVsZXRlJyBUcnVlL0ZhbHNlLCBzZXQgdG8gdHJ1ZSB3aGVuIGZvcmVpZ24ga2V5J3MgaW4gdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqX3R5cGUgd2lsbCBiZSB1c2VkIG8gaWRlbnRpZnkgcm93cyB0byBkZWxldGUgYmFzZWQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uIHJvd3MgcmVtb3ZlZCBmcm9tIHRoZSBwYXJlbnQgdGFibGUuCisgICAgICAgIC0gJ2ZvcmNlX2RlbGV0ZScgVHJ1ZS9GYWxzZSwgc2V0IHRvIHRydWUgd2hlbiBmb3JlaWduIGtleXMgaW4gdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgIG9ial90eXBlIGFyZSBhbGxvd2VkIHRvIGJlIG51bGwsIGJ1dCB3aGVuIHRoZXkgYXJlIG5vdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgcm93cyBpZGVudGlmaWVkIGJ5IGNhc2NhZGVfZGVsZXRlIG11c3QgYmUgZGVsZXRlZAorICAgICAgICAgICAgICAgICAgICAgICAgIHdoZW4gcm93cyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBwYXJlbnQgdGFibGUKKyAgICAgICAgLSAnc291cmNlJyBzZXQgdG8gJ3VzZXItY29uZmlnJyBmb3Igb2JqX3R5cGVzIHdoaWNoIHVzZXIncyBjb25maWd1cmUKKyAgICAgICAgICAgICAgICAgICBzZXQgdG8gJ2RlYnVnLW9ubHknIHRvIGVuYWJsZSB2aWV3aW5nIG9iamVjdCBvbmx5IGluIGRlYnVnIG1vZGUKKyAgICAgIAorICAgICAgICBUaGUgJ2ZpZWxkcycgaW5kZXhlZCByZXN1bHQgcmV0dXJucyBhIGRpY3Rpb25hcnksIGVhY2ggb2Ygd2hpY2gKKyAgICAgICAgaXMgaW5kZXhlZCBieSB0aGUgbmFtZXMgb2YgdGhlIGZpZWxkcyB3aXRoaW4gdGhlIHRhYmxlL21vZGVsLiBmdXJ0aGVyCisgICAgICAgIGluZGljaWVzIGRlc2NyaWJlIGRldGFpbHMgYWJvdXQgdGhhdCBmaWVsZCB3aXRoaW4gdGhlIHRhYmxlOgorICAgICAgICAKKyAgICAgICAgU29tZSBvZiB0aGUga2V5J3MgYXJlIGludGVuZGVkIHRvIGJlIGFkZGVkIHRvIHRoZSBkaWN0aW9uYXJ5CisgICAgICAgIHRvIGZ1cnRoZXIgZGVjb3JhdGUgZGV0YWlscyBhYm91dCB0aGUgZmllbGQuICBUaGUgb2JqZWN0aXZlIGlzCisgICAgICAgIHRvIG1vZGlmeSBjbGkgYmVoYXZpb3IsIG9yIG92ZXJyaWRlIHRoZSBtb2RlbCBkZXRhaWxzLiAgVGhlc2UKKyAgICAgICAgdmFsdWVzLCB0aG8sIG91Z2h0IHRvIHJlYWxseSBjb21lIGZyb20gdGhlIG1vZGVsIGRlc2NyaXB0aW9uLgorCisgICAgICAgIC0gJ3ZlcmJvc2UtbmFtZScgaWRlbnRmaWVzIGFuIGFkZGl0b25hbCBuYW1lIGZvciB0aGUgZmllbGQsIGludGVuZWRlZAorICAgICAgICAgICAgICAgICAgICAgICAgIHRvIGJlIG1vcmUgZGVzY3JpcHRpdmUKKworICAgICAgICAtICdoZXgnIFRydWUvRmFsc2UsIFRydWUgZm9yIGZpZWxkcyB3aGVuIGEgaGV4IHZhbHVlIGNhbgorICAgICAgICAgICAgICAgICAgICAgICAgIGJlIHJlcGxhY2VkIHdpdGggYSBkZWNpbWFsIHZhbHVlCisgICAgICAgIC0gJ2VkaXQnIFRydWUvRmFsdWUsICBGYWxzZSB3aGVuIGEgZmllbGQgY2Fubm90IGJlIGVkaXRlZCB3aXRoaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICB0aGUgbmVzdGVkIGNvbmZpZyBtb2RlLgorCisgICAgICAgIC0gJ3ZhbGlkYXRlJyBmdW5jdGlvbiB0byBjYWxsIHRvIHZhbGlkYXRlIHRoZSBmaWVsZCB2YWx1ZQorCisgICAgICAgIFZhcmlvdXMga2V5J3MgdXNlICdfJyB2cyB0aGUgdHlwaWNhbCAnLScgc2luY2UgdGhleSdyZSAKKyAgICAgICAgY3VycmVudGx5IGNvbnN0cnVjdGVkIHZpYSB0aGUgZGphbmdvIG1vZGVsIGRlc2NyaXB0aW9uCisKKyAgICAgICAgLSAncHJpbWFyeV9rZXknIGlkZW50aWZlcyB0aGlzIGZpZWxkIGFzIHRoZSBrZXkgZm9yIHRoZSB0YWJsZS9tb2RlbC4KKyAgICAgICAgLSAnaGFzX3Jlc3RfbW9kZWwnICBUcnVlL0ZhbHNlCisgICAgICAgIC0gJ2pzb25fc2VyaWFsaXplX3N0cmluZycgIFRydWUvRmFsc2UKKyAgICAgICAgLSAnaGVscF90ZXh0JyAgU3RyaW5nIHByb3ZpZGluZyBtb3JlIGNsdWVzIGFib3V0IHRoZSBpbnRlbnQgb2YgdGhpcyBmaWVsZAorICAgICAgICAtICd0eXBlJyB2YXJpb3VzIHZhbHVlcywgaW50ZW5kZWQgdG8gYmUgcG9wdWxhdGVkIGJ5IHRvb2xzL2V4dHJhY3RfbW9kZWwucHkKKyAgICAgICAgICAgICAgICAgICAgICAgICBhbGxvd2luZyBhY2Nlc3Mgb2YgdGhlIHR5cGUgdG8gdGhlIGNsaS4gIHRoZSBhbGxvd3MgdGhlCisgICAgICAgICAgICAgICAgICAgICAgICAgY2xpIHRvIGZpbmQgZm9yZWlnbl9rZXlzLCBhbmQgcG9zc2libHkgZGV0ZXJtaW5lCisgICAgICAgIC0gJ21heF9sZW5ndGgnIAorICAgICAgICAKKyAgICAgICAgT3RoZXIga2V5IGRlY29yYXRpb25zOiAgc29ydGluZworCisgICAgICAgIFRoZSAnZmllbGRfb3JkZXJpbmcnIGRpY3Rpb25hcnkgYXNzb2NpYXRlZCB3aXRoIHRoZSBuYW1lIG9mIHRoZSB0YWJsZS9tb2RlbAorICAgICAgICBpcyB1c2VkIHRvIG9yZGVyIHRoZSBvdXRwdXQuCisgICAgICAgIAorICAgICAgICBBbHNvIHBvcHVsYXRlcyB0aGUgc2VsZi5vYmpfa2V5c1tdLCB3aGljaCBpcyBhIGRpY3Rpb25hcnkgbWFwcGluZyB0aGUgdGFibGUvbW9kZWwKKyAgICAgICAgbmFtZSB0byB0aGUgbmFtZSBvZiB0aGUgc3RvcmFnZSBrZXkgKHRhYmxlL21vZGVsJ3MgY29sdW1uKSBmb3IgdGhhdCB0YWJsZS4KKworICAgICAgICBAcGFyYW0gY2xpX21vZGVsX2luZm8gaW5zdGFudGlhdGVkIGNsYXNzIENsaU1vZGVsSW5mbygpCisgICAgICAgICIiIgorICAgICAgICBzZWxmLm9ial90eXBlX2luZm9fZGljdCA9IHNlbGYuY2xpX21vZGVsX2luZm8uZ2V0X2NvbXBsZXRlX29ial90eXBlX2luZm9fZGljdCgpCisgICAgICAgIHNlbGYub2JqX3R5cGVzID0gW2sgZm9yIChrLCB2KSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdC5pdGVtcygpCisgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICdoYXNfcmVzdF9tb2RlbCcgaW4gdl0KKyAgICAgICAgZm9yIChrLCBkKSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdC5pdGVtcygpOgorICAgICAgICAgICAgaWYgbm90ICdmaWVsZHMnIGluIGQ6CisgICAgICAgICAgICAgICAgcHJpbnQgJyVzOiBNaXNzaW5nICJmaWVsZHMiJyAlIGsKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgY2FuZGlkYXRlX2tleXMgPSBbZiBmb3IgZiBpbiBkWydmaWVsZHMnXS5rZXlzKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGRbJ2ZpZWxkcyddW2ZdLmdldCgncHJpbWFyeV9rZXknLCBGYWxzZSldCisgICAgICAgICAgICBpZiBsZW4oY2FuZGlkYXRlX2tleXMpID4gMDoKKyAgICAgICAgICAgICAgICBzZWxmLm9ial9rZXlzW2tdID0gY2FuZGlkYXRlX2tleXNbMF0KKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgZGVmIGluaXRfZm9yZWlnbl9rZXlfeHJlZihzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIFdhbGsgdGhyb3VnaCB0aGUgb2JqX3R5cGVfaW5mb19kaWN0LCBsb29raW5nIGZvciBmb3JlaWduIGtleXMuCisgICAgICAgIEJ1aWxkIGEgY3Jvc3MgcmVmZXJlbmNlcywgc28gdGhhdCBhIDxvYmpfdHlwZSwgZmllbGQ+IGNhbiBiZQorICAgICAgICB1c2VkIHRvIGlkZW50aWZ5IGFsbCB0aGUgb2JqX3R5cGVzIHdoaWNoIHJlZmVyZW5jZSB0aGF0IGZpZWxkLgorICAgICAgCisgICAgICAgIFRvIGFsbG93IGZvciBib3RoIDxvYmpfdHlwZSwgZmllbGQ+IHRvIGJlIHVzZWQgdG8gaW5kZXgKKyAgICAgICAgc2VsZi5mb3JlaWduX2tleV94cmVmLCB0d28gbGV2ZWxzIG9mIGRpY3Rpb25hcmllcyBhcmUgYnVpbHQuCisgICAgICAgIFRoZSBmaXJzdCBtYXBzIGZyb20gb2JqX3R5cGUgdG8gYSBkaWN0aW9uYXJ5IG9mIGZpZWxkcywgYW5kCisgICAgICAgIHRoZSBmaWVsZHMgZGljdGlvbmFyeSBoYXMgdmFsdWVzIHdoaWNoIGFyZSBsaXN0cy4gIEVhY2ggb2YgdGhlCisgICAgICAgIGxpc3RzIGhhcyB0d28gbWVtYmVyczogdGhlIDxvYmpfdHlwZSwgZmllbGQ+LCB3aGljaCB3aWxsIGJlCisgICAgICAgIGEgZm9yZWlnbiBrZXkgdG8gdGhlIG9yaWdpbmFsIHBhaXIuCisgICAgICAKKyAgICAgICAgVGhpcyBhbGxvd3MgaWRlbnRpZmljYWlvbiBvZiBmaWVsZHMgd2hpY2ggaGF2ZSBzaW5nbGUgZm9yZWlnbgorICAgICAgICBrZXkgeHJlZidzLCB3aGljaCBjYW4gdGhlbiBiZSB1c2VkIHRvIGlkZW50aWZ5ICJzdWItbW9kZXMiCisgICAgICAgIGZvciBwYXJ0aWN1bGFyIG9ial90eXBlcy4KKyAgICAgICAgIiIiCisKKyAgICAgICAgc2VsZi5mb3JlaWduX2tleV94cmVmID0ge30KKyAgICAgICAgZm9yIChvYmpfdHlwZSwgb2JqX3R5cGVfZGljdCkgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3QuaXRlbXMoKToKKyAgICAgICAgICAgIGlmIG5vdCAnZmllbGRzJyBpbiBvYmpfdHlwZV9kaWN0OgorICAgICAgICAgICAgICAgIHByaW50ICclczogTWlzc2luZyAiZmllbGRzIicgJSBvYmpfdHlwZQorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBmb3IgKGZuLCBmZCkgaW4gb2JqX3R5cGVfZGljdFsnZmllbGRzJ10uaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpZiAndHlwZScgaW4gZmQ6CisgICAgICAgICAgICAgICAgICAgIGlmIGZkWyd0eXBlJ10gPT0gJ0ZvcmVpZ25LZXknOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVmX2ZvcmVpZ25fb2JqX3R5cGUgPSBmZFsncmVsX29ial90eXBlJ10KKyAgICAgICAgICAgICAgICAgICAgICAgIHJlZl9mb3JlaWduX2ZpZWxkID0gZmRbJ3JlbF9maWVsZF9uYW1lJ10KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCByZWZfZm9yZWlnbl9vYmpfdHlwZSBpbiBzZWxmLmZvcmVpZ25fa2V5X3hyZWY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5mb3JlaWduX2tleV94cmVmW3JlZl9mb3JlaWduX29ial90eXBlXSA9IHt9CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmVmX2ZvcmVpZ25fZmllbGQgaW4gc2VsZi5mb3JlaWduX2tleV94cmVmW3JlZl9mb3JlaWduX29ial90eXBlXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZvcmVpZ25fa2V5X3hyZWZbcmVmX2ZvcmVpZ25fb2JqX3R5cGVdW3JlZl9mb3JlaWduX2ZpZWxkXSA9IFtdCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmZvcmVpZ25fa2V5X3hyZWZbcmVmX2ZvcmVpZ25fb2JqX3R5cGVdW3JlZl9mb3JlaWduX2ZpZWxkXS5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgW29ial90eXBlLCBmbl0pCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGRlZiBpbml0X2FsaWFzX29ial90eXBlX3hyZWYoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBBbGlhcyBvYmogdHlwZXMgaGF2ZSBhIG5vbi1jb21wb3VuZCBwcmltYXJ5IGtleSwgYSBmb3JlaWduIGtleSwgYW5kCisgICAgICAgIHBvc3NpYmx5ICdEYXRlVGltZUZpZWxkJyBmaWVsZHMsIGJ1dCBubyBvdGhlciBmaWVsZHMuICBUaGVzZSBjYW4KKyAgICAgICAgYmUgaWRlbnRpZmllZCBieSBzY2FubmluZyB0aGUgZGljdGlvbmFyeS4KKworICAgICAgICBUaGUgYWxpYXNfb2JqX3R5cGVfeHJlZiBkaWN0aW9uYXJ5IGlzIGluZGV4ZWQgYnkgdGhlIG9ial90eXBlIHJlZmVyZW5jZWQKKyAgICAgICAgYnkgdGhlIGZvcmVpZ24ga2V5IG9mIHRoZSBvcmlnaW5hbCBvYmpfdHlwZSAoaXRzIGEgY3Jvc3MgcmVmKQorICAgICAgICAiIiIKKworICAgICAgICBzZWxmLmFsaWFzX29ial90eXBlX3hyZWYgPSB7fQorICAgICAgICBzZWxmLmFsaWFzX29ial90eXBlcyA9IFtdCisgICAgICAgIGZvciAob2JqX3R5cGUsIG9ial90eXBlX2RpY3QpIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0Lml0ZW1zKCk6CisgICAgICAgICAgICBpZiBub3QgJ2ZpZWxkcycgaW4gb2JqX3R5cGVfZGljdDoKKyAgICAgICAgICAgICAgICBwcmludCAnJXM6IE1pc3NpbmcgImZpZWxkcyInICUgb2JqX3R5cGUKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgZm9yZWlnbl9rZXlfb2JqX3R5cGUgPSBOb25lCisgICAgICAgICAgICBmb3JlaWduX2tleV9jb3VudCA9IDAKKyAgICAgICAgICAgIG90aGVyX3R5cGVzID0gRmFsc2UKKyAgICAgICAgICAgIGZvciAoZm4sIGZkKSBpbiBvYmpfdHlwZV9kaWN0WydmaWVsZHMnXS5pdGVtcygpOgorICAgICAgICAgICAgICAgICMgJ0lkeCcgZmllbGQgaXMgb25seSBmb3IgZGlzcGxheSBjb3VudGluZyBvZiByb3dzCisgICAgICAgICAgICAgICAgaWYgZm4gIT0gJ0lkeCcgYW5kICd0eXBlJyBpbiBmZDoKKyAgICAgICAgICAgICAgICAgICAgaWYgZmRbJ3R5cGUnXSA9PSAnRm9yZWlnbktleSc6CisgICAgICAgICAgICAgICAgICAgICAgICBmb3JlaWduX2tleV9jb3VudCArPSAxCisgICAgICAgICAgICAgICAgICAgICAgICBmb3JlaWduX2tleV9vYmpfdHlwZSA9IGZkWydyZWxfb2JqX3R5cGUnXQorICAgICAgICAgICAgICAgICAgICBlbGlmICdwcmltYXJ5X2tleScgaW4gZmQ6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLmlzX2NvbXBvdW5kX2tleShvYmpfdHlwZSwgZm4pOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG90aGVyX3R5cGVzID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBlbGlmIGZkWyd0eXBlJ10gIT0gJ0RhdGVUaW1lRmllbGQnOgorICAgICAgICAgICAgICAgICAgICAgICAgb3RoZXJfdHlwZXMgPSBUcnVlCisgICAgICAgICAgICBpZiBmb3JlaWduX2tleV9jb3VudCA9PSAxIGFuZCBvdGhlcl90eXBlcyA9PSBGYWxzZToKKyAgICAgICAgICAgICAgICBzZWxmLmFsaWFzX29ial90eXBlcy5hcHBlbmQob2JqX3R5cGUpCisgICAgICAgICAgICAgICAgaWYgbm90IGZvcmVpZ25fa2V5X29ial90eXBlIGluIHNlbGYuYWxpYXNfb2JqX3R5cGVfeHJlZjoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5hbGlhc19vYmpfdHlwZV94cmVmW2ZvcmVpZ25fa2V5X29ial90eXBlXSA9IFtdCisgICAgICAgICAgICAgICAgc2VsZi5hbGlhc19vYmpfdHlwZV94cmVmW2ZvcmVpZ25fa2V5X29ial90eXBlXS5hcHBlbmQoCisgICAgICAgICAgICAgICAgICAgIG9ial90eXBlCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgIworICAgICAgICAgICAgIyBpZiB0aGUgcHJpbWFyaXkga2V5IGlzIGEgY29tcG91bmQga2V5LCBhbmQgdGhlIGZpcnN0IGl0ZW0KKyAgICAgICAgICAgICMgaXMgYWxzbyBhIGZvcmVpZ24ga2V5IGhlcmUsIHRoZW4gYWxsb3cgdGhlIGZpcnN0IGl0ZW0gdG8KKyAgICAgICAgICAgICMgbWF0Y2ggdXAgd2l0aCB0aGUgYWxpYXMuICBjdXJyZW5seSwgb25seSB1c2UgdGhlIGZpcnN0IGl0ZW0KKyAgICAgICAgICAgICMgc2luY2UgdGhlICdzdGFydHN3aXRoJyBjYW4gdXNlIHVzZWQgdG8gZmluZCB0aGUgYXNzb2NhaXRlZAorICAgICAgICAgICAgIyBtZW1iZXJzCisgICAgICAgICAgICAjCisgICAgICAgICAgICBlbGlmIGZvcmVpZ25fa2V5X2NvdW50ID49IDE6CisgICAgICAgICAgICAgICAga2V5ID0gc2VsZi5vYmpfa2V5c1tvYmpfdHlwZV0KKyAgICAgICAgICAgICAgICBjb21wb3VuZF9maWVsZHMgPSBzZWxmLmNvbXBvdW5kX2tleV9maWVsZHMob2JqX3R5cGUsIGtleSkKKyAgICAgICAgICAgICAgICBpZiBjb21wb3VuZF9maWVsZHM6CisgICAgICAgICAgICAgICAgICAgIGZpcnN0X2ZpZWxkID0gY29tcG91bmRfZmllbGRzWzBdCisgICAgICAgICAgICAgICAgICAgIGlmIGZpcnN0X2ZpZWxkIGluIHNlbGYub2JqX3R5cGVfZm9yZWlnbl9rZXlzKG9ial90eXBlKToKKyAgICAgICAgICAgICAgICAgICAgICAgICMKKyAgICAgICAgICAgICAgICAgICAgICAgICMgVGhpcyBpcyBuYXN0eSAtLSBhc3N1bWluZyB0aGF0IHRoZSBmb3JlaWduX2tleSdzIHRhYmxlCisgICAgICAgICAgICAgICAgICAgICAgICAjIG5hbWUgd2lsbCB0aGVuIGhhdmUgYW4gYWxpYXMgdGFibGUgYXNzb2NpYXRlZCB3aXRoIGl0LgorICAgICAgICAgICAgICAgICAgICAgICAgIyBQZXJoYXBzIHNvbWUgbW9kZWwgZmllbGQgY2FuIGhlbHAgZGVzY3JpYmUgdGhlc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICMgYXNzb2NpYXRpb25zLCBzb21ldGhpbmcgbGlrZSAnYWxsb3ctYWxpYXM6IDxvYmpfdHlwZT4nCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBmaXJzdF9maWVsZCA9PSAndm5zJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgIiVzLWFsaWFzIiAlIGZpcnN0X2ZpZWxkIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb25seSBidWlsZCByZWZlcmVuY2VzIHRvIHRhYmxlcyB3aGljaCBleGlzdC4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIG9ial90eXBlIGluIHNlbGYuYWxpYXNfb2JqX3R5cGVfeHJlZjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmFsaWFzX29ial90eXBlX3hyZWZbb2JqX3R5cGVdICs9IFsiJXMtYWxpYXMiICUgZmlyc3RfZmllbGRdCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuYWxpYXNfb2JqX3R5cGVfeHJlZltvYmpfdHlwZV0gPSBbIiVzLWFsaWFzIiAlIGZpcnN0X2ZpZWxkXQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIGRlZiBwayhzZWxmLCBvYmpfdHlwZSk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gdGhlIHByaW1hcnkga2V5IG5hbWUgZm9yIHRoZSBvYmplY3QKKworICAgICAgICBAcGFyYW0gb2JqX3R5cGUgc3RyaW5nLCBuYW1lIG9mIHRoZSBvYmplY3QtdHlwZSAoaWU6ICdob3N0JywgJ3N3aXRjaCcpCisgICAgICAgICIiIgorCisgICAgICAgICMgUmFpc2UgYW4gZXhjZXB0aW9uIHdoZW4gdGhlIG5hbWUgZG9lc24ndCBleGlzdD8KKyAgICAgICAgcmV0dXJuIHNlbGYub2JqX2tleXMuZ2V0KG9ial90eXBlLCBOb25lKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIGRlZiBvYmpfdHlwZV9leGlzdHMoc2VsZiwgb2JqX3R5cGUpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIFRydWUgaWYgdGhlcmUncyBkZXRhaWxzIGFib3V0IG9ial90eXBlIGluIG9ial90eXBlc19pbmZvX2RpY3QKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdC5rZXlzKCkKKyAgICAKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgZGVmIG9ial90eXBlX2hhc19tb2RlbChzZWxmLCBvYmpfdHlwZSk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gVHJ1ZSBpZiB0aGUgb2JqX3R5cGUgaXMgc2VydmljZWQgdmlhIHRoZSBtb2RlbCByZXN0IGFwaQorICAgICAgICAoaW4gb3RoZXIgd29yZHMsIHRoZXJlJ3MgYSBkYiB0YWJsZSB3aGljaCBzdXBwb3J0cyB0aGlzIG1vZGVsKQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIG9ial90eXBlIGluIHNlbGYub2JqX3R5cGVzCisgICAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIGRlZiBvYmpfdHlwZV9oYXNfdXJsKHNlbGYsIG9ial90eXBlKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYSB1cmwgc3VmZml4IGRlc2NyaWJpbmcgYSBwYXRoIHdoaWNoIHJldHVybnMgdGhlCisgICAgICAgIGRhdGEgYXNzb2NpYXRlZCB3aXRoIHRoaWUgb2JqX3R5cGUKKyAgICAgICAgIiIiCisgICAgICAgIGlmIG9ial90eXBlIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0OgorICAgICAgICAgICAgcmV0dXJuIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXS5nZXQoJ3VybCcsIE5vbmUpCisgICAgICAgIHJldHVybiBOb25lCisgICAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBkZWYgaXNfZm9yZWlnbl9rZXkoc2VsZiwgb2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBUcnVlIHdoZW4gdGhlIGZpZWxkIHdpdGhpbiB0aGUgb2JqX3R5cGUgaXMgYSBmb3JlaWduIGtleS4KKworICAgICAgICBAcGFyYW0gb2JqX3R5cGUgc3RyaW5nLCBuYW1lIG9mIHRoZSBvYmplY3QtdHlwZQorICAgICAgICBAcGFyYW0gZmllbGQgc3RyaW5nLCBmaWVsZCB3aXRoaW4gdGhlIG9iamVjdC10eXBlCisgICAgICAgICIiIgorICAgICAgICBpZiBub3Qgb2JqX3R5cGUgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Q6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgbm90ICdmaWVsZHMnIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGZpZWxkX2luZm8gPSBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2ZpZWxkcyddLmdldChmaWVsZCwgW10pCisgICAgICAgIGlmICd0eXBlJyBpbiBmaWVsZF9pbmZvOgorICAgICAgICAgICAgaWYgZmllbGRfaW5mb1sndHlwZSddID09ICdGb3JlaWduS2V5JzoKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgZGVmIGlzX2ludGVnZXJfZmllbGQoc2VsZiwgb2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBUcnVlIHdoZW4gdGhlIHR5cGUgYXNzb2NpYXRlZCB3aXRoIHRoZSBvYmpfdHlwZSdzIGZpZWxkIGlzIGFuIGludGVnZXIKKworICAgICAgICBAcGFyYW0gb2JqX3R5cGUgc3RyaW5nLCBuYW1lIG9mIHRoZSBvYmplY3QtdHlwZQorICAgICAgICBAcGFyYW0gZmllbGQgc3RyaW5nLCBmaWVsZCB3aXRoaW4gdGhlIG9iamVjdC10eXBlCisgICAgICAgICIiIgorCisgICAgICAgIGlmIG5vdCBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBub3QgJ2ZpZWxkcycgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgZmllbGRfaW5mbyA9IHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXS5nZXQoJ2ZpZWxkcycsIFtdKVtmaWVsZF0KKyAgICAgICAgaWYgJ3R5cGUnIGluIGZpZWxkX2luZm86CisgICAgICAgICAgICBpZiBmaWVsZF9pbmZvWyd0eXBlJ10gPT0gJ0ludGVnZXJGaWVsZCc6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBkZWYgaXNfcHJpbWFyeV9rZXkoc2VsZiwgb2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0cnVlIHdoZW4gdGhlIG9ial90eXBlJ3MgZmllbGQgaXMgYSBwcmltYXJ5IGtleQorCisgICAgICAgIEBwYXJhbSBvYmpfdHlwZSBzdHJpbmcsIG5hbWUgb2YgdGhlIG9iamVjdC10eXBlCisgICAgICAgIEBwYXJhbSBmaWVsZCBzdHJpbmcsIGZpZWxkIHdpdGhpbiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgbm90IG9ial90eXBlIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0OgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIG5vdCAnZmllbGRzJyBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV06CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBmaWVsZF9pbmZvID0gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdLmdldCgnZmllbGRzJyxbXSlbZmllbGRdCisgICAgICAgIGlmICdwcmltYXJ5X2tleScgaW4gZmllbGRfaW5mbzoKKyAgICAgICAgICAgIHJldHVybiBmaWVsZF9pbmZvWydwcmltYXJ5X2tleSddICMgc2hvdWxkIGJlIHRydWUgaWYgZXhpc3RzCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBkZWYgaXNfZmllbGRfZWRpdGFibGUoc2VsZiwgb2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBUcnVlIGlmIHRoZSBmaWVsZCBpcyBlZGl0YWJsZS4gIERlZmF1bHQgaXMgVHJ1ZS4KKworICAgICAgICBAcGFyYW0gb2JqX3R5cGUgc3RyaW5nLCBuYW1lIG9mIHRoZSBvYmplY3QtdHlwZQorICAgICAgICBAcGFyYW0gZmllbGQgc3RyaW5nLCBmaWVsZCB3aXRoaW4gdGhlIG9iamVjdC10eXBlCisgICAgICAgICIiIgorCisgICAgICAgIGlmIG5vdCBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBub3QgJ2ZpZWxkcycgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgZmllbGRfaW5mbyA9IHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXS5nZXQoJ2ZpZWxkcycsW10pW2ZpZWxkXQorICAgICAgICBpZiAnZWRpdCcgaW4gZmllbGRfaW5mbzoKKyAgICAgICAgICAgIHJldHVybiBmaWVsZF9pbmZvWydlZGl0J10gIyBzaG91bGQgYmUgRmFsc2UgaWYgZXhpc3RzCisgICAgICAgIHJldHVybiBUcnVlCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGRlZiBpc19lZGl0YWJsZShzZWxmLCBvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIHRydWUgaWYgdGhlIG9ial90eXBlL2ZpZWxkIGlzIGF2YWlsYWJsZSBmb3IgZWRpdGluZworICAgICAgICBFeGNsdWRlcyBmb3JlaWduIGtleXMsIGFuZCBwcmltYXJ5IGtleXMgKHVubGVzcyBlZGl0OiBUcnVlCisgICAgICAgIGlzIHNwZWNpZmljYWxseSBlbmFibGVkIGZvciB0aGUgZmllbGQpCisKKyAgICAgICAgQHBhcmFtIG9ial90eXBlIHN0cmluZywgbmFtZSBvZiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgQHBhcmFtIGZpZWxkIHN0cmluZywgZmllbGQgd2l0aGluIHRoZSBvYmplY3QtdHlwZQorICAgICAgICAiIiIKKworICAgICAgICBpZiBub3Qgb2JqX3R5cGUgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Q6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgbm90ICdmaWVsZHMnIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAgIGlmIG5vdCBmaWVsZCBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2ZpZWxkcyddOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGZpZWxkX2luZm8gPSBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2ZpZWxkcyddW2ZpZWxkXQorICAgICAgICBpZiAnZWRpdCcgaW4gZmllbGRfaW5mbyBhbmQgZmllbGRfaW5mb1snZWRpdCddID09IFRydWU6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICBpZiBzZWxmLmlzX2ZvcmVpZ25fa2V5KG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgc2VsZi5pc19wcmltYXJ5X2tleShvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIG5vdCBzZWxmLmlzX2ZpZWxkX2VkaXRhYmxlKG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBkZWYgb2JqX3R5cGVfZGlzYWJsZV9lZGl0KHNlbGYsIG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICIiIgorICAgICAgICBNYXJrIGFuIG9ial90eXBlJ3MgZmllbGQgYXMgbm90IGJlaW5nIGRpcmVjdGx5IGVkaXRhYmxlLgorICAgICAgICBXaGVuIHRoZSBjb21tYW5kIGRlc2NyaXB0aW9ucyBhcmUgdXNlZCBmb3IgYWxsIG9ial90eXBlJ3MgZWRpdCwgdGhlIG5lZWQKKyAgICAgICAgZm9yICdkaXNhYmxpbmcgZWRpdCcgb3VnaHQgdG8gZGlzYXBwZWFyCisgICAgICAgICIiIgorICAgICAgICBpZiBub3Qgb2JqX3R5cGUgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Q6CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKyAgICAgICAgaWYgbm90ICdmaWVsZHMnIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXToKKyAgICAgICAgICAgIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ10gPSB7fQorICAgICAgICBpZiBub3QgZmllbGQgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydmaWVsZHMnXToKKyAgICAgICAgICAgIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ11bZmllbGRdID0ge30KKyAgICAgICAgc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydmaWVsZHMnXVtmaWVsZF1bJ2VkaXQnXSA9IEZhbHNlCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgZGVmIGlzX21hcmtlZF9zZWFyY2hhYmxlKHNlbGYsIG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gdHJ1ZSBpZiBhIGZpZWxkIGlzIHNlYXJjaGFibGUuCisKKyAgICAgICAgVGhpcyBvdWdodCB0byBiZSB0cnVlIGZvciBhbnkgZmllbGRzIHdoaWNoIGlzIHBhcnQgb2YgdGhlCisgICAgICAgIHByaW1hcnkga2V5IGNvbnN0cnVjdGlvbi4KKworICAgICAgICBUaGlzIHByZWRpY2F0ZSwgaG93ZXZlciwgaW4gaW50ZW5kZWQgdG8gbG9vayBmb3IgZmllbGRzCisgICAgICAgIHdoaWNoIGFyZSBpZGVudGlmaWVkIGJ5IHRoZSBtb2RlbCBhcyBiZWluZyBzZWFyY2hhYmxlLAorICAgICAgICBldmVuIHdoZW4gdGhlIGZpZWxkIGRvZXNuJ3QgYXBwZWFyIGluIHRoZSBwcmltYXJ5IGtleS4KKworICAgICAgICBAcGFyYW0gb2JqX3R5cGUKKyAgICAgICAgQHBhcmFtIGZpZWxkCisgICAgICAgICIiIgorCisgICAgICAgIGlmIG5vdCBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBub3QgJ2ZpZWxkcycgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIG5vdCBmaWVsZCBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2ZpZWxkcyddOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAga2V5ID0gc2VsZi5wayhvYmpfdHlwZSkKKyAgICAgICAgaWYgc2VsZi5pc19jb21wb3VuZF9rZXkob2JqX3R5cGUsIGtleSk6CisgICAgICAgICAgICBpZiBmaWVsZCBpbiBzZWxmLmNvbXBvdW5kX2tleV9maWVsZHMob2JqX3R5cGUsIGtleSk6CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgICAgIAorICAgICAgICBmaWVsZF9pbmZvID0gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydmaWVsZHMnXVtmaWVsZF0KKyAgICAgICAgaWYgJ3NlYXJjaGFibGUnIGluIGZpZWxkX2luZm86CisgICAgICAgICAgICByZXR1cm4gZmllbGRfaW5mb1snc2VhcmNoYWJsZSddID09IFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGRlZiBnZXRfb2JqX3R5cGVfZmllbGRfY2FzZV9zZW5zaXRpdmUoc2VsZiwgb2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0cnVlIGlmIGEgZmllbGQgaXMgY2FzZSBzZW5zaXRpdmUuCisKKyAgICAgICAgQHBhcmFtIG9ial90eXBlCisgICAgICAgIEBwYXJhbSBmaWVsZAorICAgICAgICAiIiIKKworICAgICAgICBpZiBub3Qgb2JqX3R5cGUgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Q6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBpZiBub3QgJ2ZpZWxkcycgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgaWYgbm90IGZpZWxkIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ106CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGZpZWxkX2luZm8gPSBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2ZpZWxkcyddW2ZpZWxkXQorICAgICAgICBpZiAnY2FzZScgaW4gZmllbGRfaW5mbzoKKyAgICAgICAgICAgIHJldHVybiBmaWVsZF9pbmZvWydjYXNlJ10KKyAgICAgICAgcmV0dXJuIE5vbmUKKworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBkZWYgc2V0X29ial90eXBlX2ZpZWxkX2Nhc2Vfc2Vuc2l0aXZlKHNlbGYsIG9ial90eXBlLCBmaWVsZCwgY2FzZSk6CisgICAgICAgICIiIgorICAgICAgICBTZXQgY2FzZSBzZW5zaXRpdml0eSBmb3IgYSBmaWVsZCBpbiBhbiBvYmpfdHlwZQorCisgICAgICAgIEBwYXJhbSBvYmpfdHlwZQorICAgICAgICBAcGFyYW0gZmllbGQKKyAgICAgICAgQHBhcmFtIGNhc2UgZWl0aGVyICd1cHBlcicsIG9yICdsb3dlcicKKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgY2FzZSBub3QgaW4gWyd1cHBlcicsICdsb3dlciddOgorICAgICAgICAgICAgcHJpbnQgJ3NldF9jYXNlX3NlbnNpdGl2ZTogb2JqX3R5cGUgJXMgZmllbGQgJXMgY2FzZSAlcyAnIFwKKyAgICAgICAgICAgICAgICAnY2FzZSBub3QgdXBwZXIvbG93ZXInICUgKG9ial90eXBlLCBmaWVsZCwgY2FzZSkKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGlmIG5vdCBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXSA9IHt9CisgICAgICAgIGlmIG5vdCAnZmllbGRzJyBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV06CisgICAgICAgICAgICBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2ZpZWxkcyddID0ge30KKyAgICAgICAgaWYgbm90IGZpZWxkIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ106CisgICAgICAgICAgICBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2ZpZWxkcyddW2ZpZWxkXSA9IHt9CisgICAgICAgIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ11bZmllbGRdWydjYXNlJ10gPSBjYXNlCisKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgZGVmIGlzX2hleF9hbGxvd2VkKHNlbGYsIG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqX3R5cGUvZmllbGQgYWxsb3dzIGhleCBpbnN0ZWFkIG9mIGRlY2ltYWwKKworICAgICAgICBAcGFyYW0gb2JqX3R5cGUgc3RyaW5nLCBuYW1lIG9mIHRoZSBvYmplY3QtdHlwZQorICAgICAgICBAcGFyYW0gZmllbGQgc3RyaW5nLCBmaWVsZCB3aXRoaW4gdGhlIG9iamVjdC10eXBlCisgICAgICAgICIiIgorCisgICAgICAgIGlmIG5vdCBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBub3QgJ2ZpZWxkcycgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgZmllbGRfaW5mbyA9IHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ11bZmllbGRdCisgICAgICAgIGlmICdoZXgnIGluIGZpZWxkX2luZm86CisgICAgICAgICAgICByZXR1cm4gZmllbGRfaW5mb1snaGV4J10gIyBsaWtlbHkgRmFsc2UgaWYgZXhpc3RzCisgICAgICAgIGlmIHNlbGYuaXNfaW50ZWdlcl9maWVsZChvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgZGVmIGlzX2ZpZWxkX2Jvb2xlYW4oc2VsZiwgb2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0cnVlIGlmIHRoZSBvYmpfdHlwZS9maWVsZCBpcyBhIGJvb2xlYW4gdHlwZQorCisgICAgICAgIEBwYXJhbSBvYmpfdHlwZSBzdHJpbmcsIG5hbWUgb2YgdGhlIG9iamVjdC10eXBlCisgICAgICAgIEBwYXJhbSBmaWVsZCBzdHJpbmcsIGZpZWxkIHdpdGhpbiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgbm90IG9ial90eXBlIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0OgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIG5vdCAnZmllbGRzJyBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV06CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBmaWVsZF9pbmZvID0gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydmaWVsZHMnXVtmaWVsZF0KKyAgICAgICAgaWYgJ3R5cGUnIGluIGZpZWxkX2luZm86CisgICAgICAgICAgICByZXR1cm4gZmllbGRfaW5mb1sndHlwZSddID09ICdCb29sZWFuRmllbGQnCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGlzX2ZpZWxkX3N0cmluZworICAgICMgIFJldHVybiB0cnVlIGlmIHRoZSBvYmpfdHlwZS9maWVsZCBpcyBhIGNoYXJhY3RlciAoQ2hhclR5cGUpIHR5cGUKKyAgICAjCisgICAgZGVmIGlzX2ZpZWxkX3N0cmluZyhzZWxmLCBvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAiIiIKKworICAgICAgICBAcGFyYW0gb2JqX3R5cGUgc3RyaW5nLCBuYW1lIG9mIHRoZSBvYmplY3QtdHlwZQorICAgICAgICBAcGFyYW0gZmllbGQgc3RyaW5nLCBmaWVsZCB3aXRoaW4gdGhlIG9iamVjdC10eXBlCisgICAgICAgICIiIgorCisgICAgICAgIGlmIG5vdCBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBub3QgJ2ZpZWxkcycgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgZmllbGRfaW5mbyA9IHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ11bZmllbGRdCisgICAgICAgIGlmICd0eXBlJyBpbiBmaWVsZF9pbmZvOgorICAgICAgICAgICAgcmV0dXJuIGZpZWxkX2luZm9bJ3R5cGUnXSA9PSAnQ2hhckZpZWxkJworICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBpc19udWxsX2FsbG93ZWQKKyAgICAjICBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqX3R5cGUvZmllbGQgaXMgYWxsb3dlZCB0byBiZSBudWxsLgorICAgICMKKyAgICBkZWYgaXNfbnVsbF9hbGxvd2VkKHNlbGYsIG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICIiIgorCisgICAgICAgIEBwYXJhbSBvYmpfdHlwZSBzdHJpbmcsIG5hbWUgb2YgdGhlIG9iamVjdC10eXBlCisgICAgICAgIEBwYXJhbSBmaWVsZCBzdHJpbmcsIGZpZWxkIHdpdGhpbiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgbm90IG9ial90eXBlIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0OgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIG5vdCAnZmllbGRzJyBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV06CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBmaWVsZF9pbmZvID0gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydmaWVsZHMnXVtmaWVsZF0KKyAgICAgICAgaWYgJ251bGwnIGluIGZpZWxkX2luZm86CisgICAgICAgICAgICByZXR1cm4gZmllbGRfaW5mb1snbnVsbCddCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBkZWYgb2JqX3R5cGVfZmllbGRzKHNlbGYsIG9ial90eXBlKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBhIGxpc3Qgb2YgZmllbGQgbmFtZXMgKHN0cmluZ3MpIGZvciB0aGUgb2JqX3R5cGUsCisgICAgICAgIGluY2x1ZGVzIGFsbCBmaWVsZHMsIGluY2x1ZGluZyBwcmltYXJ5IGtleXMgYW5kIGZvcmVpZ24ga2V5cworICAgICAgICAiIiIKKworICAgICAgICBpZiBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIGlmIG5vdCAnZmllbGRzJyBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV06CisgICAgICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgICAgICByZXR1cm4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydmaWVsZHMnXS5rZXlzKCkKKyAgICAgICAgcmV0dXJuIFtdCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBkZWYgb2JqX3R5cGVfaGFzX2ZpZWxkKHNlbGYsIG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgb2JqX3R5cGUgaGFzIGEgZmllbGQgbmFtZWQgJ2ZpZWxkJworCisgICAgICAgIEBwYXJhbSBvYmpfdHlwZSBzdHJpbmcsIG5hbWUgb2YgdGhlIG9iamVjdC10eXBlCisgICAgICAgIEBwYXJhbSBmaWVsZCBzdHJpbmcsIGZpZWxkIHdpdGhpbiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgbm90IG9ial90eXBlIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0OgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgIGlmIG5vdCAnZmllbGRzJyBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV06CisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICAgICBpZiBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIGZpZWxkc19pbmZvID0gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydmaWVsZHMnXQorICAgICAgICAgICAgaWYgZmllbGQgaW4gZmllbGRzX2luZm86CisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgZGVmIG9ial90eXBlX2NvbmZpZ19maWVsZHMoc2VsZiwgb2JqX3R5cGUpOgorICAgICAgICAiIiIKKyAgICAgICAgRm9yIGFuIG9ial90eXBlLCByZXR1cm4gYSBsaXN0IG9mIGZpZWxkcyB3aGljaCBhcmUgcG9zc2libHkgdXNlciBjb25maWd1cmFibGUuCisKKyAgICAgICAgQHBhcmFtIG9ial90eXBlIHN0cmluZywgbmFtZSBvZiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgb2JqX3R5cGUgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Q6CisgICAgICAgICAgICBpZiBub3QgJ2ZpZWxkcycgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdOgorICAgICAgICAgICAgICAgIHJldHVybiBbXQorICAgICAgICAgICAgZmllbGRzX2luZm8gPSBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2ZpZWxkcyddCisgICAgICAgICAgICByZXR1cm4gW3ggZm9yIHggaW4gZmllbGRzX2luZm8gaWYgc2VsZi5pc19lZGl0YWJsZShvYmpfdHlwZSwgeCldCisgICAgICAgIHJldHVybiBbXQorCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCisgICAgZGVmIG9ial90eXBlX3Nob3dfdGhpcyhzZWxmLCBvYmpfdHlwZSk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gYSBsaXN0IG9mIGFkZGl0aW9uIHR5cGVzIHRvIGRpc3BsYXkgZm9yICdzaG93IHRoaXMnCisKKyAgICAgICAgQHBhcmFtIG9ial90eXBlIHN0cmluZywgbmFtZSBvZiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgb2JqX3R5cGUgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Q6CisgICAgICAgICAgICBpZiAnc2hvdy10aGlzJyBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV06CisgICAgICAgICAgICAgICAgcmVzdWx0ID0gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydzaG93LXRoaXMnXQorICAgICAgICAgICAgICAgIGlmIHR5cGUocmVzdWx0KSA9PSBzdHIgb3IgdHlwZShyZXN1bHQpID09ICd1bmljb2RlJzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtyZXN1bHRdCisgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgICAgICByZXR1cm4gW10KKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgZGVmIGlzX2Nhc2NhZGVfZGVsZXRlX2VuYWJsZWQoc2VsZiwgb2JqX3R5cGUpOgorICAgICAgICAiIiIKKyAgICAgICAgQ2FzY2FkZSBpcyBlbmFibGVkIGZvciBhbiBvYmpfdHlwZSBieSBzZXR0aW5nICdjYXNjYWRlX2VuYWJsZWQnOiBUcnVlIGZvcgorICAgICAgICB0aGUgcHJpbWFyeSBrZXkgb2YgYW4gb2JqX3R5cGUuCisKKyAgICAgICAgQHBhcmFtIG9ial90eXBlIHN0cmluZywgbmFtZSBvZiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgbm90IG9ial90eXBlIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0OgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgaWYgJ2Nhc2NhZGVfZGVsZXRlJyBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV06CisgICAgICAgICAgICByZXR1cm4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydjYXNjYWRlX2RlbGV0ZSddCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgZGVmIGlzX2ZvcmNlX2RlbGV0ZV9lbmFibGVkKHNlbGYsIG9ial90eXBlKToKKyAgICAgICAgIiIiCisgICAgICAgIEZvcmNlIGRlbGV0ZSBpcyBlbmFibGVkIGZvciBhbiBvYmpfdHlwZSBieSBzZXR0aW5nICdmb3JjZV9kZWxldGUnOiBUcnVlCisgICAgICAgIGZvciB0aGUgcHJpbWFyeSBrZXkgb2YgYW4gb2JqX3R5cGUuCisKKyAgICAgICAgQHBhcmFtIG9ial90eXBlIHN0cmluZywgbmFtZSBvZiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgbm90IG9ial90eXBlIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0OgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgaWYgJ2ZvcmNlX2RlbGV0ZScgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZm9yY2VfZGVsZXRlJ10KKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGRlZiBjYXNjYWRlX2RlbGV0ZV9zZXRfZW5hYmxlKHNlbGYsIG9ial90eXBlKToKKyAgICAgICAgIiIiCisgICAgICAgIEVuYWJsZSBjYXNjYWRlX2RlbGV0ZSBmb3IgYW4gb2JqX3R5cGUKKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXSA9IHt9CisgICAgICAgIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnY2FzY2FkZV9kZWxldGUnXSA9IFRydWUKKworICAgIGRlZiBjYXNjYWRlX2RlbGV0ZV9lbmFibGVfZm9yY2Uoc2VsZiwgb2JqX3R5cGUpOgorICAgICAgICAiIiIKKyAgICAgICAgRm9yY2UgY2FzY2FkZV9kZWxldGUgZm9yIGFuIG9ial90eXBlCisgICAgICAgICIiIgorICAgICAgICBpZiBub3Qgb2JqX3R5cGUgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Q6CisgICAgICAgICAgICBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV0gPSB7fQorICAgICAgICBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2Nhc2NhZGVfZGVsZXRlJ10gPSBUcnVlCisgICAgICAgIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZm9yY2VfZGVsZXRlJ10gPSBUcnVlCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGRlZiBoYXNfZGlzcGxheV9maWVsZChzZWxmLCBvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAiIiIKKyAgICAgICAgRGV0ZXJtaW5lIGlmIGEgcGFydGljdWxhciBvYmpfdHlwZSBoYXMgYSBwYXJ0aWN1bGFyIGZpZWxkIG9uIHRoZQorICAgICAgICBkaXNwbGF5IChpZTogZHVyaW5nIGEgc2hvdyBjb21tYW5kKS4gIFVzZXMgdGhlICdmaWVsZF9vcmRlcmluZ3MnCisgICAgICAgIG9mIHRoZSBvYmpfdHlwZV9pbmZvX2RpY3QuCisgICAgICAKKyAgICAgICAgQ3VycmVudGx5IHVzZWQgdG8gZGV0ZXJpbmUgd2hldGhlciBhbiBhbGlhcyB0YWJsZSBuZWVkcyB0byBiZQorICAgICAgICByZS1jYWNoZWQgaW4gcHJlcGFyYXRpb24gZm9yIHRoZSBkaXNwbGF5IG9mIHNvbWUgb2JqX3R5cGUKKworICAgICAgICBAcGFyYW0gb2JqX3R5cGUgc3RyaW5nLCBuYW1lIG9mIHRoZSBvYmplY3QtdHlwZQorICAgICAgICAiIiIKKworICAgICAgICBpZiBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdCBhbmQgXAorICAgICAgICAgICdmaWVsZF9vcmRlcmluZ3MnIGluIG9ial90eXBlIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXToKKyAgICAgICAgICAgIG9yZGVyID0gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydmaWVsZF9vcmRlcmluZ3MnXVsnZGVmYXVsdCddCisgICAgICAgICAgICByZXR1cm4gZmllbGQgaW4gb3JkZXIKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGRlZiBpc19vYmpfdHlwZV9zb3VyY2Vfbm90X3VzZXJfY29uZmlnKHNlbGYsIG9ial90eXBlKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBUcnVlIGlmIHRoZSBvYmpfdHlwZSBpcyBpbnRlbmRlZCB0byBiZSBjb25maWd1cmVkLAorICAgICAgICBzb21lIHRhYmxlcyBhcmUgaW50ZW5kZWQgdG8gYmUgd3JpdHRlbiBieSBzZG5wbGF0Zm9ybSBhcyBhIHdheQorICAgICAgICBvZiBwcmVzZW50aW5nIGluZm9ybWF0aW9uOyBpdCBtYWtlcyBubyBzZW5zZSBmb3IgdGhlIGNsaQorICAgICAgICB0byBwcmVzZW50IHRoZXNlIHRhYmxlcyB0byB0aGUgdXNlciBhcyBjb25maWd1cmFibGUuCisgICAgICAKKyAgICAgICAga2VlcCBpbiBtaW5kIHRoYXQgdGhpcyByZXR1cm5zIFRydWUgb25seSBpZiAnc291cmNlJyBleGlzdHMsCisgICAgICAgIGFuZCB0aGUgc291cmNlIGlzbid0IGdldCB0byB1c2VyLWNvbmZpZy4gIFRoaXMgbWVhbnMgdGhhdAorICAgICAgICBmb3IgYSB0YWJsZSB0byBiZSBleGNsdWRlZCwgJ3NvdXJjZScgbXVzdCBiZSBhZGRlZCwgYW5kCisgICAgICAgIGl0IG11c3QgYmUgc2V0IHRvIHNvbWV0aGluZyBvdGhlciB0aGFuICd1c2VyLWNvbmZpZycKKworICAgICAgICBAcGFyYW0gb2JqX3R5cGUgc3RyaW5nLCBuYW1lIG9mIHRoZSBvYmplY3QtdHlwZQorICAgICAgICAiIiIKKworICAgICAgICBpZiBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdCBhbmQgXAorICAgICAgICAgICdzb3VyY2UnIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXToKKyAgICAgICAgICAgIGlmIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnc291cmNlJ10gIT0gJ3VzZXItY29uZmlnJzoKKyAgICAgICAgICAgICAgICBpZiBzZWxmLnNkbnNoLmRlYnVnIGFuZCBcCisgICAgICAgICAgICAgICAgICBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ3NvdXJjZSddID09ICdkZWJ1Zy1vbmx5JzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGRlZiBpc19vYmpfdHlwZV9zb3VyY2VfZGVidWdfb25seShzZWxmLCBvYmpfdHlwZSk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gVHJ1ZSBpZiB0aGUgb2JqX3R5cGUgaXMgbWFya2VkIHRvIGJlIHZpZXdlZCBvbmx5IGluIGRlYnVnIG1vZGUKKworICAgICAgICBAcGFyYW0gb2JqX3R5cGUgc3RyaW5nLCBuYW1lIG9mIHRoZSBvYmplY3QtdHlwZQorICAgICAgICAiIiIKKworICAgICAgICBpZiBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdCBhbmQgXAorICAgICAgICAgICdzb3VyY2UnIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXToKKyAgICAgICAgICAgIGlmIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnc291cmNlJ10gPT0gJ2RlYnVnLW9ubHknOgorICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIGRlZiBvYmpfdHlwZV9zb3VyY2Vfc2V0X2RlYnVnX29ubHkoc2VsZiwgb2JqX3R5cGUpOgorICAgICAgICAiIiIKKyAgICAgICAgU2V0IHRoZSBzb3VyY2UgZm9yIHRoZSBvYmotdHlwZQorICAgICAgICAiIiIKKworICAgICAgICBpZiBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnc291cmNlJ10gPSAnZGVidWctb25seScKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgZGVmIGNvbXBvdW5kX2tleV90ZXh0KHNlbGYsIG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gYSB0ZXh0IHN0cmluZyB3aGljaCBkZXNjcmliZXMgdGhlIGNvbnN0cnVjdGlvbiBvZiBhIGNvbXBvdW5kIGtleS4KKyAgICAgICAgVGhlIGZpcnN0IGNoYXJhY3RlciBpcyBhICcjJyB3aGVuIHRoaXMgcmV0dXJuZWQgZmllbGQgZGVzY3JpYmVzIGEKKyAgICAgICAgY29tcG91bmQga2V5LiAgVGhlIHNlY29uZCBjaGFyYWN0ZXIgaXMgdGhlIHNlcGFyYXRvciBmb3IgdGhlIGZpZWxkCisgICAgICAgIGl0c2VsZiAobm90IHRoZSBzZXBhcmF0b3IgZm9yIHRoZSBmaWVsZHMgZGVzY3JpYmVkIGJ5IHRoaXMgdGV4dAorICAgICAgICBmaWVsZCkuICBUaGUgcmVtYWluZGVyIGlzIGEgY29uY2F0ZW5hdGlvbiBvZiB0aGUgZmllbGRzIG5hbWVzIHdoaWNoCisgICAgICAgIGFyZSB1c2VkIHRvIGNvbnN0cnVjdCB0aGlzIGZpZWxkLgorICAgICAgCisgICAgICAgIEN1cnJlbnRseSBjb21wb3VuZCBrZXlzIGFyZSBpZGVudGlmaWVkIHRocm91Z2ggdGhlIGhlbHBfdGV4dC4KKyAgICAgICAgVGhlIGhlbHAgdGV4dCBpc24ndCBkaXNwbGF5ZWQgdG8gdGhlIHVzZXIgZm9yIHByaW1hcnkgc2luY2UgdGhlIHZhbHVlCisgICAgICAgIG9mIHRoZSBrZXkgZm9yIGNvbXBvdW5kIGtleSdzIG11c3QgYmUgY29uc3RydWN0ZWQgYnkgdGhlIGNsaSwgYW5kIHRoZW4KKyAgICAgICAgdGhlIHVzZXIgZG9lc24ndCBkaXJlY3RseSBtb2RpZnkgb3Igc2VhcmNoIHRoZSBjb21wb3VuZCB2YWx1ZS4KKyAgICAgIAorICAgICAgICBXaGVuIHRoZSBmaWVsZCBpcyBpdHNlbGYgYSBmb3JlaWduIGtleSwgYW5kIG5vIHRleHQgc3RyaW5nIGV4aXN0cyB0bworICAgICAgICBkZXNjcmliZSB0aGUgY29uc3RydWN0aW9uIG9mIHRoZSBjb21wb3VuZCBrZXksIGl0cyBwb3NzaWJsZSB0aGF0IHRoZSBmb3JlaWduCisgICAgICAgIGtleSdzIHZhbHVlIGlzIGl0c2VsZiBhIGNvbXBvdW5kIGtleS4gIFBlZWsgYXQgdGhlIG9yaWdpbmFsIGZvcmVpZ24KKyAgICAgICAga2V5IHRvIHNlZSBpZiBpdCBoYXMgYSBmaWVsZCBpZGVudGlmeWluZyB0aGUgbGF5b3V0IG9mIHRoZSBjb21wb3VuZCBrZXkuCisKKyAgICAgICAgQHBhcmFtIG9ial90eXBlIHN0cmluZywgbmFtZSBvZiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgQHBhcmFtIGZpZWxkIHN0cmluZywgZmllbGQgd2l0aGluIHRoZSBvYmplY3QtdHlwZQorICAgICAgICAiIiIKKworICAgICAgICBpZiBub3Qgb2JqX3R5cGUgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Q6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBpZiBub3QgJ2ZpZWxkcycgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgaWYgbm90IGZpZWxkIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ106CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGZpZWxkX2luZm8gPSBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2ZpZWxkcyddW2ZpZWxkXQorICAgICAgICBpZiAnaGVscF90ZXh0JyBpbiBmaWVsZF9pbmZvOgorICAgICAgICAgICAgaWYgZmllbGRfaW5mb1snaGVscF90ZXh0J11bMF0gPT0gJyMnOgorICAgICAgICAgICAgICAgIHJldHVybiBmaWVsZF9pbmZvWydoZWxwX3RleHQnXQorICAgICAgICBpZiBzZWxmLmlzX2ZvcmVpZ25fa2V5KG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICAgICAoZmtfb2JqX3R5cGUsIGZrX25hbWUpID0gc2VsZi5mb3JlaWduX2tleV9yZWZlcmVuY2VzKG9ial90eXBlLCBmaWVsZCkKKyAgICAgICAgICAgIGZpZWxkX2luZm8gPSBzZWxmLm9ial90eXBlX2luZm9fZGljdFtma19vYmpfdHlwZV1bJ2ZpZWxkcyddW2ZrX25hbWVdCisgICAgICAgICAgICBpZiBmaWVsZF9pbmZvLmdldCgnaGVscF90ZXh0JywgJyAnKVswXSA9PSAnIyc6CisgICAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkX2luZm9bJ2hlbHBfdGV4dCddCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGRlZiBpc19jb21wb3VuZF9rZXkoc2VsZiwgb2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0cnVlIGlmIHRoZSBvYmpfdHlwZS9maWVsZCBpcyBhIGNvbXBvdW5kIGtleSwKKyAgICAgIAorICAgICAgICBUaGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBjb21wb3VuZCBrZXkncyB0ZXh0ICcjJywgdGhlCisgICAgICAgIHNlY29uZCBjaGFyYWN0ZXIgaWRlbnRpZmllcyB0aGUgc2VwYXJhdG9yIGNoYXJhY2VyIGZvciB0aGUKKyAgICAgICAgZmllbGRzIHZhbHVlLiAgVGhlIGZpZWxkcyBhcmUgc2VwYXJhdGVkIGJ5ICd8JyB3aXRoaW4gdGhlIHRleHQuCisKKyAgICAgICAgQHBhcmFtIG9ial90eXBlIHN0cmluZywgbmFtZSBvZiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgQHBhcmFtIGZpZWxkIHN0cmluZywgZmllbGQgd2l0aGluIHRoZSBvYmplY3QtdHlwZQorICAgICAgICAiIiIKKworICAgICAgICB0ZXh0ID0gc2VsZi5jb21wb3VuZF9rZXlfdGV4dChvYmpfdHlwZSwgZmllbGQpCisgICAgICAgIGlmIHRleHQ6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBpc19wcmltaXRpdmVfY29tcG91bmRfa2V5CisgICAgIworICAgIGRlZiBpc19wcmltaXRpdmVfY29tcG91bmRfa2V5KHNlbGYsIG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIFRydWUgZm9yIGEgcHJpbWl0aXZlIGNvbXBvdW5kIGtleS4KKworICAgICAgICBQcmltaXRpdmUgbWVhbnMgY29tcG91bmQta2V5cyB3aGljaCBkb24ndCB1c2UgQ2Fzc2FuZHJhU2V0dGluZydzCisgICAgICAgIENPTVBPVU5EX0tFWV9GSUVMRFMsIHJhdGhlciB0aGUgaGVscCB0ZXh0IGRlc2NyaWJlcyB0aGUgZmllbGRzIHdoaWNoCisgICAgICAgIGFyZSBjb2JibGVkIHRvZ2V0aGVyIHRvIGNyZWF0ZSBhIHByaW1hcnkga2V5LgorCisgICAgICAgIEZvciB0aGUgY2Fzc2FuZHJhU2V0dGluZydzIENPTVBPVU5EX0tFWV9GSUVMRFMsIHNlYXJjaGVzIGZvciAKKyAgICAgICAgcm93cyBjYW4gYmUgZG9uZSBieSBzZXR0aW5nIHZhbHVlcyBvZiB0aGUgZmllbGRzIG9mIHRoZQorICAgICAgICBDT01QT1VORF9LRVlfRklFTERTLCBmb3IgcHJpbWl0aXZlX2NvbXBvdW5kX2tleXMsIAorCisKKyAgICAgICAgQHBhcmFtIG9ial90eXBlIHN0cmluZywgbmFtZSBvZiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgQHBhcmFtIGZpZWxkIHN0cmluZywgZmllbGQgd2l0aGluIHRoZSBvYmplY3QtdHlwZQorICAgICAgICAiIiIKKworICAgICAgICBpZiBzZWxmLmlzX2NvbXBvdW5kX2tleShvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAgICAgZmllbGRfaW5mbyA9IHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ11bZmllbGRdCisgICAgICAgICAgICBpZiAndHlwZScgaW4gZmllbGRfaW5mbzoKKyAgICAgICAgICAgICAgICBpZiBmaWVsZF9pbmZvWyd0eXBlJ10gIT0gJ2NvbXBvdW5kLWtleSc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGNvbXBvdW5kX2tleV9zZXBhcmF0b3IKKyAgICAjCisgICAgZGVmIGNvbXBvdW5kX2tleV9zZXBhcmF0b3Ioc2VsZiwgb2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0aGUgc2luZ2xlIGNoYXJhY3RlciB3aGljaCBpcyB1c2VkIHRvIHNlcGFyYXRlIHRoZSB2YWx1ZXMKKyAgICAgICAgb2YgdGhlIGRpZmZlcmVudCBmaWVsZCBwYXJ0cyBmb3IgYSBmaWVsZCB3aGljaCBpcyBhIGNvbXBvdW5kIGtleS4KKworICAgICAgICBSZXR1cm4gTm9uZSB3aGVuIHRoZQorCisgICAgICAgIEBwYXJhbSBvYmpfdHlwZSBzdHJpbmcsIG5hbWUgb2YgdGhlIG9iamVjdC10eXBlCisgICAgICAgIEBwYXJhbSBmaWVsZCBzdHJpbmcsIGZpZWxkIHdpdGhpbiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgdGV4dCA9IHNlbGYuY29tcG91bmRfa2V5X3RleHQob2JqX3R5cGUsIGZpZWxkKQorICAgICAgICBpZiB0ZXh0OgorICAgICAgICAgICAgcmV0dXJuIHRleHRbMV0KKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyBjb21wb3VuZF9rZXlfZmllbGRzCisgICAgIworICAgIGRlZiBjb21wb3VuZF9rZXlfZmllbGRzKHNlbGYsIG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4ncyBhIGxpc3Qgb2Ygc3RyaW5ncywgd2hlcmUgZWFjaCBpcyBpbnRlbmRlZCB0byBiZSB0aGUKKyAgICAgICAgbmFtZSBvZiBhIGZpZWxkIHdpdGhpbiB0aGUgb2JqX3R5cCAodGhpcyBpcyBub3QgdmFsaWRhdGVkKQorCisgICAgICAgIEBwYXJhbSBvYmpfdHlwZSBzdHJpbmcsIG5hbWUgb2YgdGhlIG9iamVjdC10eXBlCisgICAgICAgIEBwYXJhbSBmaWVsZCBzdHJpbmcsIGZpZWxkIHdpdGhpbiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgdGV4dCA9IHNlbGYuY29tcG91bmRfa2V5X3RleHQob2JqX3R5cGUsIGZpZWxkKQorICAgICAgICBpZiB0ZXh0OgorICAgICAgICAgICAgcmV0dXJuIHRleHRbMjpdLnNwbGl0KCd8JykKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgZGVmIGRlZXBfY29tcG91bmRfa2V5X2ZpZWxkcyhzZWxmLCBvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAiIiIKKyAgICAgICAgU2ltaWxhciB0byBjb21wb3VuZF9rZXlfZmllbGRzKCksIGJ1dCB3aGVuIGFueSBmaWVsZCBpcyBhbHNvIGEgZm9yZWlnbgorICAgICAgICBrZXksIHRoZSByZWZlcmVuY2VzIG9ial90eXBlJ3MgZmllbGQgaXMgY2hlY2tlZCwgYW5kIGlmIHRoYXQgZmllbGQgaXMKKyAgICAgICAgYWxzbyBhIGNvbXBvdW5kIGtleSwgaXQgaXMgYWxzbyBleHBhbmRlZC4KKworICAgICAgICBAcGFyYW0gb2JqX3R5cGUgc3RyaW5nLCBuYW1lIG9mIHRoZSBvYmplY3QtdHlwZQorICAgICAgICBAcGFyYW0gZmllbGQgc3RyaW5nLCBmaWVsZCB3aXRoaW4gdGhlIG9iamVjdC10eXBlCisgICAgICAgICIiIgorCisgICAgICAgIGRlZiByZWN1cnNlX2NvbXBvdW5kX2tleV9maWVsZHMob2JqX3R5cGUsIGZpZWxkLCBwYXJ0cyk6CisgICAgICAgICAgICBpZiBzZWxmLmlzX2ZvcmVpZ25fa2V5KG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICAgICAgICAgKGZrX290LCBma19mbikgPSBzZWxmLmZvcmVpZ25fa2V5X3JlZmVyZW5jZXMob2JqX3R5cGUsIGZpZWxkKQorICAgICAgICAgICAgICAgIGlmIHNlbGYuaXNfY29tcG91bmRfa2V5KGZrX290LCBma19mbik6CisgICAgICAgICAgICAgICAgICAgIHJlY3Vyc2VfY29tcG91bmRfa2V5X2ZpZWxkcyhma19vdCwgZmtfZm4sIHBhcnRzKQorICAgICAgICAgICAgZWxpZiBzZWxmLmlzX2NvbXBvdW5kX2tleShvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAgICAgICAgIGZvciBjZiBpbiBzZWxmLmNvbXBvdW5kX2tleV9maWVsZHMob2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGYub2JqX3R5cGVfaGFzX2ZpZWxkKG9ial90eXBlLCBjZikgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlzX2ZvcmVpZ25fa2V5KG9ial90eXBlLCBjZikpOgorCisgICAgICAgICAgICAgICAgICAgICAgICAoZmtfb3QsIGZrX2ZuKSA9IHNlbGYuZm9yZWlnbl9rZXlfcmVmZXJlbmNlcyhvYmpfdHlwZSwgY2YpCisgICAgICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLmlzX2NvbXBvdW5kX2tleShma19vdCwgZmtfZm4pOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY3Vyc2VfY29tcG91bmRfa2V5X2ZpZWxkcyhma19vdCwgZmtfZm4sIHBhcnRzKQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoY2YpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBwYXJ0cy5hcHBlbmQoY2YpCisgICAgICAgICAgICByZXR1cm4gcGFydHMKKyAgICAgICAgcmV0dXJuIHJlY3Vyc2VfY29tcG91bmRfa2V5X2ZpZWxkcyhvYmpfdHlwZSwgZmllbGQsIFtdKQorCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGRlZiBzcGxpdF9jb21wb3VuZF9pbnRvX2RpY3Qoc2VsZiwgb2JqX3R5cGUsIGtleSwgdGFyZ2V0X2RpY3QsIGlzX3ByZWZpeCA9IEZhbHNlKToKKyAgICAgICAgIiIiCisgICAgICAgIFRvIGJlIHVzZWQgdG8gY29udmVydCBhIGNvbXBvdW5kIGtleSBpbiBhIHJvdyBpbnRlbmRlZCBmb3IgZGlzcGxheSwKKyAgICAgICAgaW50byBzZXBhcmF0ZSBjb21wb25lbnQgbmFtZTp2YWx1ZSBwYWlycy4KKworICAgICAgICBUaGUgb3JpZ2luYWwgZGljdCBpcyBmcm9tIGEgcm93IG9mIGEgdGFibGUuIHRoZSAna2V5JyBwYXJhbWV0ZXIKKyAgICAgICAgaWRlbnRpZmllcyBhIGNvbXBvdW5kIGtleSBpbiB0aGUgcm93LCB0aGUgcHJvY2VkdXJlIHNwbGl0cyB0aGUKKyAgICAgICAgdmFsdWUgb2YgdGhhdCBrZXkvZmllbGQsIGFuZCB1c2VzIHRoZSBjb21wb3VuZF9rZXlfZmllbGRzKCkgdG8KKyAgICAgICAgZGV0ZXJtaW5lIHdoYXQgbmFtZXMgb3VnaHQgdG8gYmUgYXNzb2NpYXRlZCB3aXRoIHRoZSBmaWVsZCdzCisgICAgICAgIHZhbHVlcywgYW5kIGFkZCdzIHRoZXNlIGZpZWxkcyBpbnRvIHRoZSBvcmlnaW5hbCBkaWN0LgorICAgICAgICAiIiIKKyAgICAgICAgZGVmIGFkZF90b19kaWN0KGEsIGIpOgorICAgICAgICAgICAgaWYgYSBpbiB0YXJnZXRfZGljdCBhbmQgYSAhPSBrZXk6CisgICAgICAgICAgICAgICAgaWYgc3RyKHRhcmdldF9kaWN0W2FdKSAhPSBiOgorICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLmlzX2ZvcmVpZ25fa2V5KG9ial90eXBlLCBhKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9kaWN0W2FdID0gYgorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgc2VsZi5zZG5zaC5lcnJvcl9tc2coImNvbXBvdW5kIHNwbGl0IGRpY3QgaGFzIGRpZmZlcmVudCB2YWx1ZTogIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiVzIGZvdW5kICVzIGV4cGVjdGVkICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYSwgdGFyZ2V0X2RpY3RbYV0sIGIpKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB0YXJnZXRfZGljdFthXSA9IGIKKworICAgICAgICBuYW1lcyA9IHNlbGYuZGVlcF9jb21wb3VuZF9rZXlfZmllbGRzKG9ial90eXBlLCBrZXkpCisgICAgICAgIHNlcGFyYXRvciA9IHNlbGYuY29tcG91bmRfa2V5X3NlcGFyYXRvcihvYmpfdHlwZSwga2V5KQorICAgICAgICB2YWx1ZXMgPSB0YXJnZXRfZGljdFtrZXldLnNwbGl0KHNlcGFyYXRvcikKKworICAgICAgICBpZiBsZW4obmFtZXMpICE9IGxlbih2YWx1ZXMpOgorICAgICAgICAgICAgaWYgbm90IGlzX3ByZWZpeDoKKyAgICAgICAgICAgICAgICBwcmludCBzZWxmLnNkbnNoLmVycm9yX21zZygiJXM6ICVzOiBjb21wb3VuZCBsZW5ndGggbWlzbWF0Y2g6ICVzICVzIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG9ial90eXBlLCBrZXksIG5hbWVzLCB2YWx1ZXMpKQorICAgICAgICAgICAgbWluX2xlbiA9IGxlbihuYW1lcykKKyAgICAgICAgICAgIGlmIGxlbih2YWx1ZXMpIDwgbWluX2xlbjoKKyAgICAgICAgICAgICAgICBtaW5fbGVuID0gbGVuKHZhbHVlcykKKyAgICAgICAgICAgIG1hcChhZGRfdG9fZGljdCwgbmFtZXNbOm1pbl9sZW5dLCB2YWx1ZXNbOm1pbl9sZW5dKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgbWFwKGFkZF90b19kaWN0LCBuYW1lcywgdmFsdWVzKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBkZWYgZm9yZWlnbl9rZXlfcmVmZXJlbmNlcyhzZWxmLCBvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAiIiIKKyAgICAgICAgRm9yIGEgZmllbGQgd2hpY2ggaXMgYSBmb3JlaWduIGtleSwgcmV0dXJuIHRoZSBwYWlyIG9mCisgICAgICAgIFtvYmpfdHlwZSwgZmllbGRdIGRlc2NyaWJpbmcgd2hlcmUgdGhlIGZvcmVpZ24ga2V5IHJlZmVyZW5jZXMKKworICAgICAgICBAcGFyYW0gb2JqX3R5cGUgc3RyaW5nLCBuYW1lIG9mIHRoZSBvYmplY3QtdHlwZQorICAgICAgICBAcGFyYW0gZmllbGQgc3RyaW5nLCBmaWVsZCB3aXRoaW4gdGhlIG9iamVjdC10eXBlCisgICAgICAgICIiIgorICAgICAgICBpZiBub3Qgb2JqX3R5cGUgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Q6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBpZiBub3QgJ2ZpZWxkcycgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdOgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgaWYgbm90IGZpZWxkIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ106CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGZpZWxkX2luZm8gPSBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2ZpZWxkcyddW2ZpZWxkXQorICAgICAgICBpZiAndHlwZScgaW4gZmllbGRfaW5mbzoKKyAgICAgICAgICAgIGlmIGZpZWxkX2luZm9bJ3R5cGUnXSA9PSAnRm9yZWlnbktleSc6CisgICAgICAgICAgICAgICAgcmV0dXJuIFtmaWVsZF9pbmZvWydyZWxfb2JqX3R5cGUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkX2luZm9bJ3JlbF9maWVsZF9uYW1lJ11dCisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBkZWYgb2JqX3R5cGVfZm9yZWlnbl9rZXlzKHNlbGYsIG9ial90eXBlKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBhIGxpc3Qgb2YgZm9yZWlnbiBrZXlzIGZvciB0aGlzIG9ial90eXBlCisKKyAgICAgICAgQHBhcmFtIGZpZWxkIHN0cmluZywgZmllbGQgd2l0aGluIHRoZSBvYmplY3QtdHlwZQorICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IG9ial90eXBlIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0OgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIHJldHVybiBbeCBmb3IgeCBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2ZpZWxkcyddCisgICAgICAgICAgICAgICAgaWYgc2VsZi5pc19mb3JlaWduX2tleShvYmpfdHlwZSwgeCldCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGRlZiBvYmpfdHlwZV9zaG93X3RpdGxlKHNlbGYsIG9ial90eXBlKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBhIHN0cmluZywgdGhlIGRpc3BsYXkgdGl0bGUgZm9yIHRoaXMgdGFibGUsCisgICAgICAgIG5ldmVyIHJldHVybiBOb25lLCBvbmx5IGRpc3BsYXlhYmxlIHZhbHVlcworICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IG9ial90eXBlIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0OgorICAgICAgICAgICAgcmV0dXJuICcnCisgICAgICAgIGlmICd0aXRsZScgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdOgorICAgICAgICAgICAgcmV0dXJuIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsndGl0bGUnXQorICAgICAgICByZXR1cm4gb2JqX3R5cGUKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBkZWYgb2JqX3R5cGVfc2V0X3RpdGxlKHNlbGYsIG9ial90eXBlLCB0aXRsZSk6CisgICAgICAgIGlmIG5vdCBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXSA9IHt9CisgICAgICAgIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsndGl0bGUnXSA9IHRpdGxlCisgICAgICAgIAorICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgZGVmIG9ial90eXBlX3NldF9zaG93X3RoaXMoc2VsZiwgb2JqX3R5cGUsIHRoaXNfbGlzdCk6CisgICAgICAgIGlmIG5vdCBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXSA9IHt9CisgICAgICAgIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnc2hvdy10aGlzJ10gPSB0aGlzX2xpc3QKKyAgICAgICAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBkZWYgZmllbGRfZGVmYXVsdF92YWx1ZShzZWxmLCBvYmpfdHlwZSwgZmllbGQpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIG5vbiBudWxsIHZhbHVlIG9mIHRoZSBkZWZhdWx0IHZhbHVlIG9mIGEgZmllbGQgaWYgaXRzIGNvbmZpZ3VyZWQKKworICAgICAgICBAcGFyYW0gb2JqX3R5cGUgc3RyaW5nLCBuYW1lIG9mIHRoZSBvYmplY3QtdHlwZQorICAgICAgICBAcGFyYW0gZmllbGQgc3RyaW5nLCBmaWVsZCB3aXRoaW4gdGhlIG9iamVjdC10eXBlCisgICAgICAgICIiIgorICAgICAgICBpZiBub3Qgb2JqX3R5cGUgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Q6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICBpZiBub3QgZmllbGQgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydmaWVsZHMnXToKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgZmllbGRfaW5mbyA9IHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ11bZmllbGRdCisgICAgICAgIGlmICdkZWZhdWx0JyBpbiBmaWVsZF9pbmZvOgorICAgICAgICAgICAgcmV0dXJuIGZpZWxkX2luZm9bJ2RlZmF1bHQnXQorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBkZWYgZmllbGRfY3VycmVudF9vYmpfdHlwZV9kZWZhdWx0X3ZhbHVlKHNlbGYsIGZpZWxkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiBub24gbnVsbCB2YWx1ZSBvZiB0aGUgZGVmYXVsdCB2YWx1ZSBvZiBhIGZpZWxkIGlmIGl0cyBjb25maWd1cmVkCisKKyAgICAgICAgQHBhcmFtIGZpZWxkIHN0cmluZywgZmllbGQgd2l0aGluIHRoZSBvYmplY3QtdHlwZQorICAgICAgICAiIiIKKyAgICAgICAgY3VycmVudF9vYmpfdHlwZSA9IHNlbGYuc2Ruc2guZ2V0X2N1cnJlbnRfbW9kZV9vYmpfdHlwZSgpCisKKyAgICAgICAgaWYgY3VycmVudF9vYmpfdHlwZToKKyAgICAgICAgICAgIGlmIHNlbGYub2JqX3R5cGVfaGFzX2ZpZWxkKGN1cnJlbnRfb2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgICAgICAgICBkZWZhdWx0ID0gc2VsZi5maWVsZF9kZWZhdWx0X3ZhbHVlKGN1cnJlbnRfb2JqX3R5cGUsIGZpZWxkKQorICAgICAgICAgICAgICAgIGlmIGRlZmF1bHQgPT0gJyc6CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHQKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgZGVmIGZpZWxkX3ZhbGlkYXRpb24oc2VsZiwgb2JqX3R5cGUsIGZpZWxkKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybiB0aGUgZmllbGQgdmFsaWRhdGlvbiBmdW5jdGlvbgorCisgICAgICAgIEBwYXJhbSBvYmpfdHlwZSBzdHJpbmcsIG5hbWUgb2YgdGhlIG9iamVjdC10eXBlCisgICAgICAgIEBwYXJhbSBmaWVsZCBzdHJpbmcsIGZpZWxkIHdpdGhpbiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgIiIiCisgICAgICAgIGlmICd2YWxpZGF0ZScgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWydmaWVsZHMnXVtmaWVsZF06CisgICAgICAgICAgICB2YWxpZGF0ZSA9IHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXVsnZmllbGRzJ11bZmllbGRdWyd2YWxpZGF0ZSddCisgICAgICAgICAgICByZXR1cm4gZ2V0YXR0cihzZWxmLCB2YWxpZGF0ZSwgTm9uZSkKKyAgICAgICAgcmV0dXJuIE5vbmUKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgCisgICAgZGVmIG9ial90eXBlX3ByZXBhcmVfcm93X3VwZGF0ZShzZWxmLCBvYmpfdHlwZSk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gdGhlIHJvdyB1cGRhdGUgZnVuY3Rpb24gaXMgb25lIGlzIGRlc2NyaWJlZCBpbiBjbGltb2RlbGluZm8KKyAgICAgICAgVGhlc2UgY2FsbG91dHMgYXJlIGludGVuZGVkIHRvIGRvIGZpeHVwIGZvciB0aGUgcHJpbWFyeSBrZXkncworICAgICAgICBpbiBhIHRhYmxlIHdoZXJlIHRoZSBmaWVsZCBtZW1iZXJzIGFyZSB1c2VkIHRvIGJ1aWxkIHRoZSBwcmltYXJ5IGtleQorCisgICAgICAgIEBwYXJhbSBmaWVsZCBzdHJpbmcsIGZpZWxkIHdpdGhpbiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgIiIiCisgICAgICAgIGlmIG5vdCBvYmpfdHlwZSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICAgICAgaWYgJ3VwZGF0ZScgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdOgorICAgICAgICAgICAgdXBkYXRlID0gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Rbb2JqX3R5cGVdWyd1cGRhdGUnXQorICAgICAgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZiwgdXBkYXRlLCBOb25lKQorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworICAgIGRlZiBvYmpfdHlwZV9zaG93X3NvcnQoc2VsZiwgb2JqX3R5cGUpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIGEgc29ydC10eXBlIGZvciB0aGUgb2JqLXR5cGUgZHVyaW5nIHNob3cuICBUaGUgdmFsdWUgaXMgZXh0cmFjdGVkCisgICAgICAgIGZyb20gdGhlIG9ial90eXBlX2luZm9fZGljdCwgYW5kIGNvbmZpZ3VyZWQgZm9yIHRoZSBwcmltYXJ5IGtleSBmb3IgYW4KKyAgICAgICAgb2JqLXR5cGUsIGZvciBleGFtcGxlIHZucy1hY2Nlc3MtbGlzdC1lbnRyeSdzICdpZCcgZmllbGQgc2hvd3MKKyAgICAgICAgJ3NvcnQnIDogJ2ludGVnZXInIHRvIGRlc2NyaWJlIHRoYXQgdGhlIHRhYmxlJ3MgaXRlbXMKKyAgICAgICAgYXJlIHNvcnRlZCBieSBpbnRlZ2VyLgorICAgICAKKyAgICAgICAgQ3VycmVudGx5IHRoZSBzb3J0LWJ5IGZpZWxkIGlzIG5vdCBkZXNjcmliZWQgaW4gdGhlCisgICAgICAgIGNhc3NhbmRyYSBtb2RlbCBkZXNjcmlwdGlvbgorCisgICAgICAgIEBwYXJhbSBmaWVsZCBzdHJpbmcsIGZpZWxkIHdpdGhpbiB0aGUgb2JqZWN0LXR5cGUKKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgbm90IG9ial90eXBlIGluIHNlbGYub2JqX2tleXM6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGtleSA9IHNlbGYub2JqX2tleXNbb2JqX3R5cGVdCisgICAgICAgIGlmICdzb3J0JyBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV0uZ2V0KCdmaWVsZHMnLCBbXSlba2V5XToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2ZpZWxkcyddW2tleV1bJ3NvcnQnXQorICAgICAgICByZXR1cm4gTm9uZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAKKyAgICBkZWYgYWxpYXNfb2JqX3R5cGVfZmllbGQoc2VsZiwgYWxpYXNfb2JqX3R5cGUpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIGEgc2luZ2xlIGZpZWxkIG5hbWUgZm9yIGFuIG9ial90eXBlLCB1c3VhbGx5IGEgZm9yZWlnbiBrZXkKKyAgICAgICAgaW4gdGhlIG1vZGVsLCB3aGljaCBpcyB0aGUgZmllbGQgYXNzb2NpYXRlZCB3aXRoIGFuIGFsaWFzLgorICAgICAgICAiIiIKKyAgICAgICAgZm9yZWlnbl9rZXlzID0gc2VsZi5vYmpfdHlwZV9mb3JlaWduX2tleXMoYWxpYXNfb2JqX3R5cGUpCisgICAgICAgIGlmIGxlbihmb3JlaWduX2tleXMpID09IDE6CisgICAgICAgICAgICByZXR1cm4gZm9yZWlnbl9rZXlzWzBdCisgICAgICAgIHJldHVybiBOb25lCisKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBkZWYgbm90X2RlZmF1bHRfdmFsdWUoc2VsZiwgb2JqX3R5cGUsIGZpZWxkLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm4gVHJ1ZSB3aGVuIHRoZSB2YWx1ZSBwYXNzZWQgaW4gaXMgbm90IHRoZSBkZWZhdWx0IHZhbHVlLgorICAgICAgICAiIiIKKyAgICAgICAgZGVmYXVsdF92YWx1ZSA9IHNlbGYuZmllbGRfZGVmYXVsdF92YWx1ZShvYmpfdHlwZSwgZmllbGQpCisgICAgCisgICAgICAgIGlmIChzZWxmLmlzX251bGxfYWxsb3dlZChvYmpfdHlwZSwgZmllbGQpIGFuZCB2YWx1ZSAhPSAnJykgb3IgXAorICAgICAgICAgIChub3Qgc2VsZi5pc19udWxsX2FsbG93ZWQob2JqX3R5cGUsIGZpZWxkKSBhbmQgZGVmYXVsdF92YWx1ZSAhPSBOb25lCisgICAgICAgICAgYW5kIChkZWZhdWx0X3ZhbHVlICE9IHZhbHVlKSk6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKKyAgICBkZWYgb2JqX3R5cGVfcmVsYXRlZF9jb25maWdfb2JqX3R5cGUoc2VsZiwgb2JqX3R5cGUpOgorICAgICAgICAiIiIKKyAgICAgICAgSWYgYW4gb2JqLXR5cGUgZG9lc24ndCBoYXZlIGEgcmVzdCBtb2RlbCwgZm9yIGV4YW1wbGUgLSBob3N0LCB0aGUgb2JqX3R5cGUKKyAgICAgICAgbWF5IGhhdmUgYSByZWxhdGVkIGNvbmZpZy10YWJsZSBpbiB0aGUgZGF0YWJhc2UsIHdoZXJlIGFkZGl0aW9uYWwgY29uZmlndXJlZAorICAgICAgICBkYXRhIGZvciB0aGUgZGlzY292ZXJlZCBkYXRhIGNhbiBiZSBmb3VuZC4gIFJldHVybiB0aGUgbmFtZSBvZiB0aGF0IHRhYmxlLAorICAgICAgICBmb3IgaG9zdCwgaXRzIGhvc3QtY29uZGlnCisgICAgICAgICIiIgorICAgICAgICBpZiBub3Qgb2JqX3R5cGUgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Q6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGlmIHNlbGYub2JqX3R5cGVfaGFzX21vZGVsKG9ial90eXBlKToKKyAgICAgICAgICAgIHJldHVybiBvYmpfdHlwZQorCisgICAgICAgIGlmICdjb25maWctb2JqLXR5cGUnIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0W29ial90eXBlXToKKyAgICAgICAgICAgIHJldHVybiBzZWxmLm9ial90eXBlX2luZm9fZGljdFtvYmpfdHlwZV1bJ2NvbmZpZy1vYmotdHlwZSddCisgICAgICAgIHJldHVybiBOb25lCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgIAorICAgIGRlZiBvYmpfdHlwZV9pbl91c2VfYXNfcmVsYXRlZF9jb25maWdfdHlwZShzZWxmLCBjb25maWdfb2JqX3R5cGUpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIHRoZSBvYmpfdHlwZSBpcyBpbiB1c2UgYnkgdGhlIHBhc2VkIGluIGNvbmZpZ19vYmpfdHlwZQorICAgICAgICBvciBOb25lIG90aGVyd2lzZS4gICAgSW52ZXJzZSBvZiBvYmpfdHlwZV9yZWxhdGVkX2NvbmZpZ19vYmpfdHlwZQorICAgICAgICAiIiIKKyAgICAgICAgaWYgY29uZmlnX29ial90eXBlID09IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGlmIG5vdCBjb25maWdfb2JqX3R5cGUgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Q6CisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIGZvciAob3QsIG92KSBpbiBzZWxmLm9ial90eXBlX2luZm9fZGljdC5pdGVtcygpOgorICAgICAgICAgICAgaWYgb3YuZ2V0KCdjb25maWctb2JqLXR5cGUnKSA9PSBjb25maWdfb2JqX3R5cGU6CisgICAgICAgICAgICAgICAgcmV0dXJuIG90CisgICAgICAgIHJldHVybiBOb25lCmRpZmYgLS1naXQgYS9jbGkvcHJldHR5cHJpbnQucHkgYi9jbGkvcHJldHR5cHJpbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNDdmMTE5YgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9wcmV0dHlwcmludC5weQpAQCAtMCwwICsxLDUyOSBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTAsMjAxMSwyMDEyLDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKKyMKKyMgUFJFVFRZUFJJTlQKKyMKKyMgVGhpcyBtb2R1bGUgY29udGFpbnMgY2xhc3NlcyB0aGF0IGhlbHAgZm9ybWF0dGluZyB0ZXh0IGZvciB0aGUgQ0xJLAorIyBpbmNsdWRpbmcgdGFibGVzLCBpbmRpdmlkdWFsIHJlY29yZHMgZXRjLgorIyAKKyMgRm9ybWF0dGluZyBpbmZvcm1hdGlvbiBpcyBzdG9yZWQgaW4gdGFibGVfaW5mbywgYSBkaWN0IG9mIGRpY3RzLgorCitpbXBvcnQgbW9kZWxfaW5mb19saXN0CitpbXBvcnQgb3MKK2ltcG9ydCBhcnJheQoraW1wb3J0IGRhdGV0aW1lCitpbXBvcnQgdXRpZgoraW1wb3J0IHJlCitpbXBvcnQgZm10Y252CisKK2NsYXNzIFByZXR0eVByaW50ZXIoKToKKyAgICB0YWJsZV9pbmZvID0gTm9uZSAgICMgQW5ub3RhdGVkIHRhYmxlIGZvcm1hdC4gVGhpcyBpcyBhIGRpY3Qgb2YgZGljdHMuIFNldCBieSBjbGkuCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgYnMpOgorICAgICAgICBzZWxmLnNkbnNoID0gYnMKKyAgICAgICAgc2VsZi50YWJsZV9pbmZvID0ge30KKyAgICAgICAgc2VsZi5mb3JtYXRfdmVyc2lvbiA9IHt9CisgICAgICAgIHNlbGYuZm9ybWF0X2FkZGVkX21vZHVsZXMgPSB7fQorCisgICAgICAgIHNlbGYuYWRkX2Zvcm1hdCgnTU9ERUwnLAorICAgICAgICAgICAgICAgICAgICAgICAgJ21vZGVsX2luZm8nLAorICAgICAgICAgICAgICAgICAgICAgICAgbW9kZWxfaW5mb19saXN0Lm1vZGVsX2luZm9fZGljdCkKKworCisgICAgZGVmIGFkZF9mb3JtYXQoc2VsZiwgbmFtZSwgb3JpZ2luLCBmb3JtYXRfZGljdCk6CisgICAgICAgICIiIgorICAgICAgICBBZGQgYSBmb3JtYXQgdG8gdGhlIHNhdmVkIGZvcm1hdHMsIGZyb20gdGhlIGRpY3Rpb25hcnkKKyAgICAgICAgd2l0aCAnbmFtZScuICAgVGhlICduYW1lJyBjYW4gaGVscCBpZGVudGlmeSB0aGUgc291cmNlCisgICAgICAgIGZvciB0aGlzIGZvcm1hdCB3aGVuIGVycm9ycyBhcmlzZQorICAgICAgICAiIiIKKworICAgICAgICAjIHZlcnkgaW50ZXJlc3RpbmcgaXRlbXMgaW4gYSBmb3JtYXQgYXJlIHRoZSBmaWVsZF9vcmRlcmluZ3MsCisgICAgICAgICMgYW5kIHRoZSBmaWVsZHMgZGVzY3JpcHRpb24uICAgSXQgY291bGQgbWFrZSBzZW5zZSB0byBvbmx5CisgICAgICAgICMgYWxsb3cgc3BlY2lmaWMgaXRlbXMgZnJvbSB0aGUgZmllbGRzLCB0byBwcmV2ZW50IGZpZWxkLW91dHB1dAorICAgICAgICAjIGZvcm1hdHRpbmcgZnJvbSB1c2luZyB1bmlubnRlZGVkIGRhdGFiYXNlIGZpZWxkcy4KKyAgICAgICAgZm9yIChmb3JtYXRfbmFtZSwgZm9ybWF0KSBpbiBmb3JtYXRfZGljdC5pdGVtcygpOgorICAgICAgICAgICAgaWYgbm90IGZvcm1hdF9uYW1lIGluIHNlbGYudGFibGVfaW5mbzoKKyAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX2luZm9bZm9ybWF0X25hbWVdID0geyB9CisgICAgICAgICAgICAjIGNvbWJpbmUgZGV0YWlsczogdG9wIGxldmVsIGl0ZW1zCisgICAgICAgICAgICBmb3IgKGl0ZW1fbmFtZSwgaXRlbV92YWx1ZSkgaW4gZm9ybWF0Lml0ZW1zKCk6CisgICAgICAgICAgICAgICAgaWYgaXRlbV9uYW1lID09ICdmaWVsZHMnOgorICAgICAgICAgICAgICAgICAgICBpZiBub3QgaXRlbV9uYW1lIGluIHNlbGYudGFibGVfaW5mb1tmb3JtYXRfbmFtZV06CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX2luZm9bZm9ybWF0X25hbWVdW2l0ZW1fbmFtZV0gPSB7fQorICAgICAgICAgICAgICAgICAgICBmb3IgKHRlcm1fbmFtZSwgdGVybV92YWx1ZSkgaW4gaXRlbV92YWx1ZS5pdGVtcygpOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHRlcm1fbmFtZSBpbiBzZWxmLnRhYmxlX2luZm9bZm9ybWF0X25hbWVdW2l0ZW1fbmFtZV06CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9pbmZvW2Zvcm1hdF9uYW1lXVtpdGVtX25hbWVdW3Rlcm1fbmFtZV0gPSB7fQorICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi50YWJsZV9pbmZvW2Zvcm1hdF9uYW1lXVtpdGVtX25hbWVdW3Rlcm1fbmFtZV0udXBkYXRlKHRlcm1fdmFsdWUpCisgICAgICAgICAgICAgICAgaWYgaXRlbV9uYW1lID09ICdmaWVsZC1vcmRlcmluZ3MnOgorICAgICAgICAgICAgICAgICAgICBpZiBub3QgaXRlbV9uYW1lIGluIHNlbGYudGFibGVfaW5mb1tmb3JtYXRfbmFtZV06CisgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX2luZm9bZm9ybWF0X25hbWVdW2l0ZW1fbmFtZV0gPSB7fQorICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX2luZm9bZm9ybWF0X25hbWVdW2l0ZW1fbmFtZV0udXBkYXRlKGl0ZW1fdmFsdWUpCisgICAgICAgICAgICAjCisgICAgICAgICAgICAjIHNhdmUgdGhlIG5hbWUgb2YgdGhlIHNvdXJjZSBmb3IgdGhpcyBmb3JtYXQKKyAgICAgICAgICAgIGlmIG5vdCAnc2VsZicgaW4gc2VsZi50YWJsZV9pbmZvW2Zvcm1hdF9uYW1lXToKKyAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX2luZm9bZm9ybWF0X25hbWVdWydzZWxmJ10gPSBuYW1lCisgICAgICAgICAgICBpZiBub3QgJ29yaWdpbicgaW4gc2VsZi50YWJsZV9pbmZvW2Zvcm1hdF9uYW1lXToKKyAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX2luZm9bZm9ybWF0X25hbWVdWydvcmlnaW4nXSA9IG9yaWdpbgorICAgICAgICAgICAgIworICAgICAgICAgICAgIyBBZGQgdGhlICdJZHgnIGZpZWxkIGlmIGl0J3Mgbm90IHRoZXJlLgorICAgICAgICAgICAgaWYgZm9ybWF0X25hbWUgaW4gc2VsZi50YWJsZV9pbmZvOgorICAgICAgICAgICAgICAgIGlmIG5vdCAnZmllbGRzJyBpbiBzZWxmLnRhYmxlX2luZm9bZm9ybWF0X25hbWVdOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX2luZm9bZm9ybWF0X25hbWVdWydmaWVsZHMnXSA9IHt9CisgICAgICAgICAgICAgICAgaWYgbm90ICdJZHgnIGluIHNlbGYudGFibGVfaW5mb1tmb3JtYXRfbmFtZV1bJ2ZpZWxkcyddOgorICAgICAgICAgICAgICAgICAgICBzZWxmLnRhYmxlX2luZm9bZm9ybWF0X25hbWVdWydmaWVsZHMnXVsnSWR4J10gPSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcmJvc2UtbmFtZScgOiAnIycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3R5cGUnIDogJ0NoYXJGaWVsZCcKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKworCisgICAgZGVmIGFkZF9tb2R1bGVfbmFtZShzZWxmLCB2ZXJzaW9uLCBtb2R1bGUpOgorICAgICAgICAiIiIKKyAgICAgICAgU2F2ZSBzb21lIHN0YXRlIGFib3V0IHRoZSB2ZXJzaW9uL21vZHVsZQorICAgICAgICAiIiIKKyAgICAgICAgaWYgdmVyc2lvbiBub3QgaW4gc2VsZi5mb3JtYXRfdmVyc2lvbjoKKyAgICAgICAgICAgIHNlbGYuZm9ybWF0X3ZlcnNpb25bdmVyc2lvbl0gPSBbbW9kdWxlXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5mb3JtYXRfdmVyc2lvblt2ZXJzaW9uXS5hcHBlbmQobW9kdWxlKQorCisKKyAgICBkZWYgYWRkX2Zvcm1hdHNfZnJvbV9tb2R1bGUoc2VsZiwgdmVyc2lvbiwgbW9kdWxlKToKKyAgICAgICAgc2VsZi5hZGRfbW9kdWxlX25hbWUodmVyc2lvbiwgbW9kdWxlKQorICAgICAgICBmb3IgbmFtZSBpbiBkaXIobW9kdWxlKToKKyAgICAgICAgICAgIGlmIHJlLm1hdGNoKHInLipfRk9STUFUJCcsIG5hbWUpOgorICAgICAgICAgICAgICAgIGlmIG1vZHVsZS5fX25hbWVfXyBub3QgaW4gc2VsZi5mb3JtYXRfYWRkZWRfbW9kdWxlczoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5mb3JtYXRfYWRkZWRfbW9kdWxlc1ttb2R1bGUuX19uYW1lX19dID0gW25hbWVdCisgICAgICAgICAgICAgICAgaWYgbmFtZSBub3QgaW4gc2VsZi5mb3JtYXRfYWRkZWRfbW9kdWxlc1ttb2R1bGUuX19uYW1lX19dOgorICAgICAgICAgICAgICAgICAgICBzZWxmLmZvcm1hdF9hZGRlZF9tb2R1bGVzW21vZHVsZS5fX25hbWVfX10uYXBwZW5kKG5hbWUpCisgICAgICAgICAgICAgICAgc2VsZi5hZGRfZm9ybWF0KG5hbWUsIG1vZHVsZS5fX25hbWVfXywgZ2V0YXR0cihtb2R1bGUsIG5hbWUpKQorCisKKyAgICAjIFV0aWxpdHkgRnVuY3Rpb25zCisgICAgZGVmIGdldF9maWVsZF9pbmZvKHNlbGYsIG9ial90eXBlX2luZm8sIGZpZWxkX25hbWUpOgorICAgICAgICByZXR1cm4gb2JqX3R5cGVfaW5mb1snZmllbGRzJ10uZ2V0KGZpZWxkX25hbWUsIE5vbmUpCisKKworICAgIGRlZiBmb3JtYXRfdG9fYWxpYXNfdXBkYXRlKHNlbGYsIGRpc3BsYXlfZm9ybWF0LCB1cGRhdGUpOgorICAgICAgICAiIiIKKyAgICAgICAgR2l2ZW4gYSBmb3JtYXQsIGZpbmQgYWxsIHRoZSBmb3JtYXR0ZXJzLCBhbmQgZm9yIGVhY2gKKyAgICAgICAgZm9ybWF0dGVyLCBkZXRlcm1pbmUgd2hpY2ggYWxpYXNlcyBuZWVkIHRvIGJlIHVwZGF0ZWQuCisgICAgICAgICIiIgorICAgICAgICBpZiBkaXNwbGF5X2Zvcm1hdCBub3QgaW4gc2VsZi50YWJsZV9pbmZvOgorICAgICAgICAgICAgIyB0aGlzIHdpbGwgZmFpbCBzb29uIGVub3VnaCB3aGVuIGZpbmFsIG91dHB1dCBpcyBhdHRlbXB0ZWQKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICBmb3JtYXRfZGljdCA9IHNlbGYudGFibGVfaW5mb1tkaXNwbGF5X2Zvcm1hdF0KKyAgICAgICAgaWYgbm90ICdmaWVsZHMnIGluIGZvcm1hdF9kaWN0OgorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgZm9yIChmaWVsZF9uYW1lLCBmaWVsZF9kaWN0KSBpbiBmb3JtYXRfZGljdFsnZmllbGRzJ10uaXRlbXMoKToKKyAgICAgICAgICAgIGlmICdmb3JtYXR0ZXInIGluIGZpZWxkX2RpY3Q6CisgICAgICAgICAgICAgICAgZm10Y252LmZvcm1hdHRlcl90b19hbGlhc191cGRhdGUoZmllbGRfZGljdFsnZm9ybWF0dGVyJ10sIHVwZGF0ZSkKKyAgICAgICAgICAgIGVsaWYgJ2VudHJ5X2Zvcm1hdHRlcicgaW4gZmllbGRfZGljdDoKKyAgICAgICAgICAgICAgICBmbXRjbnYuZm9ybWF0dGVyX3RvX2FsaWFzX3VwZGF0ZShmaWVsZF9kaWN0WydlbnRyeS1mb3JtYXR0ZXInXSwgdXBkYXRlKQorICAgICAgICByZXR1cm4gdXBkYXRlCisKKworICAgIGRlZiBmb3JtYXRzKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi50YWJsZV9pbmZvLmtleXMoKQorCisgICAgZGVmIGZvcm1hdF9kZXRhaWxzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIGEgdGFibGUgb2YgZm9ybWF0cyBzdWl0YWJsZSBhcyBhIGZvcm1hdF90YWJsZSBwYXJhbWV0ZXIKKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBbIHsgJ2Zvcm1hdCcgICAgICA6IHgsCisgICAgICAgICAgICAgICAgICAgJ2Zvcm1hdCBkaWN0JyA6IHNlbGYudGFibGVfaW5mb1t4XVsnc2VsZiddLAorICAgICAgICAgICAgICAgICAgICdvcmlnaW4nICAgICAgOiBzZWxmLnRhYmxlX2luZm9beF1bJ29yaWdpbiddIH0KKworICAgICAgICAgICAgICAgICAgZm9yIHggaW4gc2VsZi5mb3JtYXRzKCldCisKKworICAgIGRlZiBmb3JtYXRfYXNfaGVhZGVyKHNlbGYsIGZpZWxkKToKKyAgICAgICAgIyBMT09LISBjb3VsZCBwcm9iIGRvIHNvbWV0aGluZyBmYW5jeSB0byBoYW5kbGUgY2FtZWxDYXBTdHJpbmdzIG9yIHVuZGVyc2NvcmVfc3RyaW5ncworICAgICAgICByZXR1cm4gZmllbGRbMF0uY2FwaXRhbGl6ZSgpICsgZmllbGRbMTpdCisKKworICAgIGRlZiBnZXRfaGVhZGVyX2Zvcl9maWVsZChzZWxmLCBvYmpfdHlwZV9pbmZvLCBmaWVsZF9uYW1lKToKKyAgICAgICAgZmllbGRfaW5mbyA9IHNlbGYuZ2V0X2ZpZWxkX2luZm8ob2JqX3R5cGVfaW5mbywgZmllbGRfbmFtZSkKKyAgICAgICAgaWYgbm90IGZpZWxkX2luZm86CisgICAgICAgICAgICByZXR1cm4gc2VsZi5mb3JtYXRfYXNfaGVhZGVyKGZpZWxkX25hbWUpCisgICAgICAgIGRlZmF1bHRfaGVhZGVyID0gc2VsZi5mb3JtYXRfYXNfaGVhZGVyKGZpZWxkX25hbWUpCisgICAgICAgIHJldHVybiBmaWVsZF9pbmZvLmdldCgndmVyYm9zZS1uYW1lJywgZGVmYXVsdF9oZWFkZXIpCisKKworICAgIGRlZiBmb3JtYXRfdGFibGUoc2VsZiwgZGF0YV9saXN0LCBkaXNwbGF5X2Zvcm1hdCA9IE5vbmUsIGZpZWxkX29yZGVyaW5nPSJkZWZhdWx0Iik6CisgICAgICAgICIiIgorICAgICAgICBUYWtlcyBpbiBsaXN0IG9mIGRpY3RzIGFuZCBnZW5lcmF0ZXMgbmljZSB0YWJsZSwgZS5nLgorCisgICAgICAgIGlkIHNsaWNlX2lkIE1BQyBBZGRyZXNzICAgICAgIGlwICAgIFN3aXRjaCBJRCAgICAKKyAgICAgICAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgIDEgIDEgICAgICAgIDAwOjAwOjAwOjAwOjAxOjAzIDEwMDEzIDE1MDg2MTQwNzQwNAorICAgICAgICAyICAyICAgICAgICAwMDowMDowMDowMDowMTowMSAxMDAxMSAxNTA4NjE0MDc0MDQKKyAgICAgICAgMyAgMSAgICAgICAgMDA6MDA6MDA6MDA6MDI6MDMgMTAwMjMgMTUwODY2OTU1NTE0CisKKyAgICAgICAgQHBhcmFtIGRhdGFfbGlzdCAtIGEgbGlzdCBvZiBkaWN0cworICAgICAgICBAcGFyYW0gZm9ybWF0IGRlc2NyaWJlcyB0aGUgZm9ybWF0IG9mIHRoZSBvdXRwdXQgdGFibGUgdG8gZGlzcGxheQorICAgICAgICBAcGFyYW0gZmllbGRfb3JkZXJpbmcgaXMgdGhlIGZpZWxkX29yZGVyaW5nIGlkZW50aWZpZXIgaW4gdGhlIG1vZGVsLAorICAgICAgICAgIHRoZXJlIGNhbiBiZSBtdWx0aXBsZSAoImRlZmF1bHQiLCAiYnJpZWYiLCAiZGV0YWlsZWQiKQorICAgICAgIAorICAgICAgICAiIiIKKworICAgICAgICAjCisgICAgICAgICMgZmlyc3QsIGRldGVybWluZSBhIGxpc3Qgb2YgZmllbGRzIHRvIGJlIHByaW50ZWQsIHRoZW4gdXNpbmcgdGhhdCBsaXN0LAorICAgICAgICAjIGRldGVybWluZSB0aGUgZmllbGRzIHdpZHRoIG9mIGVhY2ggZmllbGQsIGluY2x1ZGluZyBjYWxsaW5nIGFueSBmb3JtYXR0aW5nCisgICAgICAgICMgZnVuY3Rpb24sIHRoZW4gZm9ybWF0IHRoZSByZXN1bHQKKyAgICAgICAgIworICAgICAgICAjIGR1cmluZyB0aGUgZm9ybWF0IGNvbXB1dGF0aW9uLCByZXBsYWNlIHRoZSB2YWx1ZSB3aXRoIHRoZSAnZm9ybWF0dGVkIHZhbHVlJworICAgICAgICAjIHRvIHByZXZlbnQgbXVsdGlwbGUgY2FsbHMgdG8gdGhlIHNhbWUgZm9ybWF0dGluZyBmdW5jaXRpb24KKyAgICAgICAgIworICAgICAgICBpZiBub3QgZGF0YV9saXN0IG9yIG5vdCB0eXBlKGRhdGFfbGlzdCkgPT0gbGlzdDoKKyAgICAgICAgICAgIGlmIHR5cGUoZGF0YV9saXN0KSA9PSBkaWN0IGFuZCAiZXJyb3JfdHlwZSIgaW4gZGF0YV9saXN0OgorICAgICAgICAgICAgICAgIHJldHVybiBkYXRhX2xpc3QuZ2V0KCJkZXNjcmlwdGlvbiIsICJJbnRlcm5hbCBlcnJvciIpCisgICAgICAgICAgICByZXR1cm4gIk5vbmUuIgorCisgICAgICAgIGZvcm1hdF9pbmZvID0gc2VsZi50YWJsZV9pbmZvLmdldChkaXNwbGF5X2Zvcm1hdCwgTm9uZSkKKworICAgICAgICBpZiBzZWxmLnNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgaWYgZm9ybWF0X2luZm8gPT0gTm9uZToKKyAgICAgICAgICAgICAgICBwcmludCAnZm9ybWF0X3RhYmxlOiBtaXNzaW5nIGZvcm1hdCAlcycgJSBkaXNwbGF5X2Zvcm1hdAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmb3JtYXRfZnJvbSA9IGZvcm1hdF9pbmZvLmdldCgnc2VsZicsICcnKQorICAgICAgICAgICAgICAgIHByaW50ICdmb3JtYXRfdGFibGU6ICVzICVzICVkIGVudHJpZXMnICUgKAorICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheV9mb3JtYXQsIGZvcm1hdF9mcm9tLCBsZW4oZGF0YV9saXN0KSkKKworICAgICAgICBmaWVsZF93aWR0aHMgPSB7fQorICAgICAgICBmaWVsZF9oZWFkZXJzID0ge30KKyAgICAgICAgZmllbGRzX3RvX3ByaW50ID0gW10KKworICAgICAgICAjCisgICAgICAgICMgZG8gdGhlICdmaWd1ciduIGZvciB3aGljaCBmaWVsZHMgd2lsbCBnZXQgcHJpbnRlZC4KKyAgICAgICAgIworICAgICAgICAjIHRvIGRldGVybWluZSB0aGUgbGVuZ3RoLCBjYWxsIHRoZSBmb3JtYXR0aW5nIGZ1bmN0aW9uLCBhbmQgcmVwbGFjZSB0aGUKKyAgICAgICAgIyB2YWx1ZSBmb3IgdGhhdCBmaWVsZCB3aXRoIHRoZSB1cGRhdGVkIHZhbHVlOyB0aGVuICdjeXBoZXIgdGhlIGxlbmd0aC4KKyAgICAgICAgIworICAgICAgICAjIG5vdGUgdGhhdCBmaWVsZF93aWR0aHMua2V5cygpIGFyZSBhbGwgdGhlIHBvc3NpYmxlIGZpZWxkcworICAgICAgICAjIGNoZWNrIGlmIHRoZSBoZWFkZXJzIG1ha2VzIGFueSBmaWVsZCB3aWRlciBhbmQgc2V0IGZpZWxkc190b19wcmludAorICAgICAgICAjCisgICAgICAgIGlmIGZvcm1hdF9pbmZvOgorICAgICAgICAgICAgaWYgJ2ZpZWxkLW9yZGVyaW5ncycgaW4gZm9ybWF0X2luZm86CisgICAgICAgICAgICAgICAgZmllbGRzX3RvX3ByaW50ID0gZm9ybWF0X2luZm9bJ2ZpZWxkLW9yZGVyaW5ncyddLmdldChmaWVsZF9vcmRlcmluZywgW10pCisgICAgICAgICAgICBpZiBsZW4oZmllbGRzX3RvX3ByaW50KSA9PSAwOiAjIGVpdGhlciBubyBmaWVsZF9vcmRlcmluZ3Mgb3IgY291bGRuJ3QgZmluZCBzcGVjaWZpYworICAgICAgICAgICAgICAgIGZpZWxkc190b19wcmludCA9IGZvcm1hdF9pbmZvWydmaWVsZHMnXS5rZXlzKCkKKyAgICAgICAgICAgIGZvciBmIGluIGZpZWxkc190b19wcmludDoKKyAgICAgICAgICAgICAgICBoZWFkZXIgPSBzZWxmLmdldF9oZWFkZXJfZm9yX2ZpZWxkKGZvcm1hdF9pbmZvLCBmKQorICAgICAgICAgICAgICAgIGZpZWxkX2hlYWRlcnNbZl0gPSBoZWFkZXIKKyAgICAgICAgICAgICAgICBmaWVsZF93aWR0aHNbZl0gPSBtYXgobGVuKGhlYWRlciksIGZpZWxkX3dpZHRocy5nZXQoZiwgMCkpCisgICAgICAgICAgICAjIExPT0shIG5vdCBkb25lIG5vdy4uLiBhZGQgaW4gZXh0cmEgZmllbGRzIGRpc2NvdmVyZWQgaW4gZGF0YV9saXN0IGlmIGRlc2lyZWQKKyAgICAgICAgICAgICMgcmlnaHQgbm93LCBmaWVsZHNfdG9fcHJpbnQgaXMgYSBwcm9qZWN0aW9uIG9uIHRoZSBkYXRhCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIGdldCBmaWVsZHNfdG9fcHJpbnQgZnJvbSB0aGUgZmllbGQgbmFtZXMgaW4gZGF0YV9saXN0LAorICAgICAgICAgICAgIyB3aGljaCBpcyAoaW50ZW5kZWQgdG8gYmUpIGEgbGlzdCBvZiBkaWN0aW9uYXJpZXMKKyAgICAgICAgICAgIGFsbF9maWVsZHMgPSB1dGlmLnVuaXF1ZV9saXN0X2Zyb21fbGlzdChzdW0oW3gua2V5cygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIGRhdGFfbGlzdF0sIFtdKSkKKyAgICAgICAgICAgIGZpZWxkc190b19wcmludCA9IHNvcnRlZChhbGxfZmllbGRzKQorCisgICAgICAgIGlmIHNlbGYuc2Ruc2guZGVzY3JpcHRpb246CisgICAgICAgICAgICBwcmludCAnZm9ybWF0X3RhYmxlOiBmaWVsZCBvcmRlciAiJXMiIGZpZWxkcyAlcycgJSBcCisgICAgICAgICAgICAgICAgICAgKGZpZWxkX29yZGVyaW5nLCBmaWVsZHNfdG9fcHJpbnQpCisKKyAgICAgICAgIworICAgICAgICAjIGdlbmVyYXRlIGEgZmllbGRzX3RvX3ByaW50IG9yZGVyZWQgbGlzdCB3aXRoIGZpZWxkX3dpZHRocyBmb3IgZWFjaAorICAgICAgICAjIGJ5IGdvaW5nIHRocm91Z2ggYWxsIGRhdGEgYW5kIHRoZW4gdXNpbmcgZmllbGRfb3JkZXJpbmcgaWYgYXZhaWwuCisgICAgICAgICMKKyAgICAgICAgcm93X2luZGV4ID0gMAorICAgICAgICBmb3Igcm93IGluIGRhdGFfbGlzdDoKKyAgICAgICAgICAgIHJvd19pbmRleCArPSAxCisgICAgICAgICAgICBpZiBub3QgJ0lkeCcgaW4gcm93OgorICAgICAgICAgICAgICAgIHJvd1snSWR4J10gPSByb3dfaW5kZXgKKyAgICAgICAgICAgIGZvciBrZXkgaW4gZmllbGRzX3RvX3ByaW50OgorICAgICAgICAgICAgI2ZvciAoayx2KSBpbiByb3cuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpZiBmb3JtYXRfaW5mbzoKKyAgICAgICAgICAgICAgICAgICAgIyBkb24ndCB3b3JyeSBhYm91dCBoZWFkZXIgaGVyZSAtIGRvIHRoYXQgc29vbiBiZWxvdworICAgICAgICAgICAgICAgICAgICBpbmZvID0gc2VsZi5nZXRfZmllbGRfaW5mbyhmb3JtYXRfaW5mbywga2V5KQorICAgICAgICAgICAgICAgICAgICBpZiBpbmZvIGFuZCBpbmZvLmdldCgnZm9ybWF0dGVyJyk6CisgICAgICAgICAgICAgICAgICAgICAgICByb3dba2V5XSA9IHN0cihpbmZvWydmb3JtYXR0ZXInXShyb3cuZ2V0KGtleSwgJycpLCByb3cpKQorICAgICAgICAgICAgICAgICAgICAgICAgdyA9IGxlbihyb3dba2V5XSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHcgPSBsZW4oc3RyKHJvdy5nZXQoa2V5LCAnJykpKQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGZpZWxkX2hlYWRlcnNba2V5XSA9IHNlbGYuZm9ybWF0X2FzX2hlYWRlcihrZXkpCisgICAgICAgICAgICAgICAgICAgIHcgPSBtYXgobGVuKHN0cihyb3dba2V5XSkpLCBsZW4oZmllbGRfaGVhZGVyc1trZXldKSkKKyAgICAgICAgICAgICAgICBmaWVsZF93aWR0aHNba2V5XSA9IG1heCh3LCBmaWVsZF93aWR0aHMuZ2V0KGtleSwgMCkpCisKKyAgICAgICAgIworICAgICAgICAjIGdlbmVyYXRlIHRoZSBmb3JtYXRfc3RyIGFuZCBoZWFkZXIgbGluZXMgYmFzZWQgb24gZmllbGRzX3RvX3ByaW50CisgICAgICAgICMKKyAgICAgICAgZm9ybWF0X3N0cl9wZXJfZmllbGQgPSBbXQorICAgICAgICBmb3IgZiBpbiBmaWVsZHNfdG9fcHJpbnQ6CisgICAgICAgICAgICBmb3JtYXRfc3RyX3Blcl9maWVsZC5hcHBlbmQoIiUlKCVzKS0lZHMiICUgKGYsIGZpZWxkX3dpZHRoc1tmXSkpCisKKyAgICAgICAgcm93X2Zvcm1hdF9zdHIgPSAiICIuam9pbihmb3JtYXRfc3RyX3Blcl9maWVsZCkgKyAiXG4iCisKKyAgICAgICAgIworICAgICAgICAjIGZpbmFsbHkgcHJpbnQhIG9ubHkgY2F2ZWF0IGlzIHRvIGhhbmRsZSBzcGFyc2UgZGF0YSB3aXRoIGEgYmxhbmtfZGljdAorICAgICAgICAjIGxldCByZXN1bHQgYmUgYSBsaXN0LCBhbmQgYXBwZW5kIG5ldyBzdHJpbmdzIHRvIGdlbmVyYXRlIHRoZSBmaW5hbCByZXN1bHQsCisgICAgICAgICMgKGZvciBiZXR0ZXIgcHl0aG9uIHBlcmZvcm1hbmNlKQorICAgICAgICAjCisgICAgICAgIHJlc3VsdD0gW10KKyAgICAgICAgcmVzdWx0LmFwcGVuZCgiICIuam9pbihmb3JtYXRfc3RyX3Blcl9maWVsZCkgJSBmaWVsZF9oZWFkZXJzICsgIlxuIikKKyAgICAgICAgcmVzdWx0LmFwcGVuZCgifCIuam9pbihbIi0iKmZpZWxkX3dpZHRoc1tmXSBmb3IgZiBpbiBmaWVsZHNfdG9fcHJpbnRdKSArICJcbiIpICMgSSA8MyBweXRob24gdG9vCisKKyAgICAgICAgYmxhbmtfZGljdCA9IGRpY3QoWyhmLCIiKSBmb3IgZiBpbiBmaWVsZHNfdG9fcHJpbnRdKQorICAgICAgICBmb3Igcm93IGluIGRhdGFfbGlzdDoKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQocm93X2Zvcm1hdF9zdHIgJSBkaWN0KGJsYW5rX2RpY3QsICoqcm93KSkKKyAgICAgICAgCisgICAgICAgIHJldHVybiAnJy5qb2luKHJlc3VsdCkKKworCisgICAgZGVmIGZvcm1hdF9lbnRyeShzZWxmLCBkYXRhLCBkaXNwbGF5X2Zvcm1hdD1Ob25lLCBmaWVsZF9vcmRlcmluZz0iZGVmYXVsdCIsIGRlYnVnPUZhbHNlKToKKyAgICAgICAgIiIiCisgICAgICAgIFRha2VzIGluIHBhcnNlZCBKU09OIG9iamVjdCwgZ2VuZXJhdGVzIG5pY2Ugc2luZ2xlIGVudHJ5IHByaW50b3V0LAorICAgICAgICBpbnRlbmRlZCBmb3IgJ2RldGFpbHMnIGRpc3BsYXkKKworICAgICAgICBAcGFyYW0gZGF0YSBsaXN0IG9mIGRpY3Rpb25hcmllcywgdmFsdWVzIGZvciBvdXRwdXQKKyAgICAgICAgQHBhcmFtIGZvcm1hdCBuYW1lIG9mIGZvcm1hdCBkZXNjcmlwdGlvbiB0byB1c2UgZm9yIHByaW50aW5nCisgICAgICAgIEBwYXJhbSBmaWVsZF9vcmRlcmluZyBsaXN0IG9mIGZpZWxkIHRvIHByaW50CisgICAgICAgIEBwYXJhbSBkZWJ1ZyBwcmludCB2YWx1ZXMgb2YgY29tcG91bmQga2V5cworICAgICAgICAiIiIKKyAgICAgICAgaWYgbm90IGRhdGE6CisgICAgICAgICAgICByZXR1cm4gIk5vbmUuIgorICAgICAgICBlbGlmIHR5cGUoZGF0YSkgPT0gZGljdCBhbmQgImVycm9yX3R5cGUiIGluIGRhdGE6CisgICAgICAgICAgICByZXR1cm4gZGF0YS5nZXQoImRlc2NyaXB0aW9uIiwgIkludGVybmFsIGVycm9yIikKKyAgICAKKyAgICAgICAgZm9ybWF0X2luZm8gPSBzZWxmLnRhYmxlX2luZm8uZ2V0KGRpc3BsYXlfZm9ybWF0LCBOb25lKQorCisgICAgICAgICMgUHJpbnQuIFByZXR0eSBwbGVhc2UuCisgICAgICAgIGlmIGZvcm1hdF9pbmZvOgorICAgICAgICAgICAgZmllbGRzID0gZm9ybWF0X2luZm9bJ2ZpZWxkcyddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmaWVsZHMgPSBkaWN0KFtbeCwge31dIGZvciB4IGluIGRhdGEua2V5cygpXSkKKyAgICAgICAgICAgIGZvcm1hdF9pbmZvID0geyAnZmllbGRzJyA6IGZpZWxkcyB9CisgICAgICAgICAgICBpZiBzZWxmLnNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgICAgIHByaW50ICJmb3JtYXRfZW50cnk6IE1pc3NpbmcgZm9ybWF0ICIsIGRpc3BsYXlfZm9ybWF0LCBmaWVsZHMKKworICAgICAgICAjIEZpbmQgd2lkZXN0IGRhdGEgZmllbGQgbmFtZQorICAgICAgICBsYWJlbF93ID0gbGVuKCBtYXgoZGF0YSwga2V5PWxhbWJkYSB4Omxlbih4KSkgKQorICAgICAgICBpZiBmb3JtYXRfaW5mbzoKKyAgICAgICAgICAgIHZlcmJvc2VfbGVuID0gbWF4KFtsZW4oc2VsZi5nZXRfaGVhZGVyX2Zvcl9maWVsZChmb3JtYXRfaW5mbywgeCkpIGZvciB4IGluIGZpZWxkcy5rZXlzKCldKQorICAgICAgICAgICAgIyBUaGlzIGlzbid0IGV4YWN0bHkgcmlnaHQsIHRoZSB2ZXJib3NlIG5hbWVzIGZvciB0aGUgZmllbGRzIG91Z2h0IHRvIGJlIHJlcGxhY2VkIGZpcnN0CisgICAgICAgICAgICBsYWJlbF93ID0gbWF4KHZlcmJvc2VfbGVuLCBsYWJlbF93KQorICAgICAgICBsYWJlbF9zdHIgPSAiJSUtJWRzIDoiICUgbGFiZWxfdworCisgICAgICAgICMgVXNlIGZvcm1hdF9pbmZvIGZvciB0aGlzIHRhYmxlIHRvIG9yZGVyIGZpZWxkcyBpZiBwb3NzaWJsZQorICAgICAgICBmaWVsZHNfdG9fcHJpbnQgPSBOb25lCisgICAgICAgIGlmIGZvcm1hdF9pbmZvOgorICAgICAgICAgICAgaWYgJ2ZpZWxkLW9yZGVyaW5ncycgaW4gZm9ybWF0X2luZm86CisgICAgICAgICAgICAgICAgZmllbGRzX3RvX3ByaW50ID0gZm9ybWF0X2luZm9bJ2ZpZWxkLW9yZGVyaW5ncyddLmdldChmaWVsZF9vcmRlcmluZywgW10pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIHNlbGYuc2Ruc2guZGVzY3JpcHRpb246CisgICAgICAgICAgICAgICAgICAgIHByaW50ICdFcnJvcjogaW50ZXJuYWw6ICVzIGZpZWxkIG9yZGVyaW5nICVzIG5vdCBwcmVzZW50IGZvciAlcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgIChkaXNwbGF5X2Zvcm1hdCwgZmllbGRfb3JkZXJpbmcsIGZvcm1hdF9pbmZvKQorICAgICAgICAgICAgaWYgZmllbGRzX3RvX3ByaW50ID09IE5vbmUgb3IgbGVuKGZpZWxkc190b19wcmludCkgPT0gMDoKKyAgICAgICAgICAgICAgICAjIGVpdGhlciBubyBmaWVsZF9vcmRlcmluZ3Mgb3IgY291bGRuJ3QgZmluZCBzcGVjaWZpYworICAgICAgICAgICAgICAgIGZpZWxkc190b19wcmludCA9IGZvcm1hdF9pbmZvWydmaWVsZHMnXS5rZXlzKCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGZpZWxkc190b19wcmludCA9IHNvcnRlZChmaWVsZHMua2V5cygpKQorCisgICAgICAgIHJlc3VsdCA9ICIiCisgICAgICAgIHRtcF9tZXJnZWRfZGljdCA9IGRpY3QoWyhmLCIiKSBmb3IgZiBpbiBmaWVsZHNfdG9fcHJpbnRdLCAqKmRhdGEpCisgICAgICAgIGJsYW5rX2RpY3QgPSBkaWN0KFsoZiwiIikgZm9yIGYgaW4gZmllbGRzX3RvX3ByaW50XSkKKworICAgICAgICAjIGZpcnN0IHByaW50IHRoZSByZXF1ZXN0ZWQgZmllbGRzCisgICAgICAgIGFsbF9maWVsZHNfaW5fY29ycmVjdF9vcmRlciA9IGxpc3QoZmllbGRzX3RvX3ByaW50KQorICAgICAgICAjIHRoZW4gdGhlIHJlbWFpbmluZyBmaWVsZHMKKyAgICAgICAgYWxsX2ZpZWxkc19pbl9jb3JyZWN0X29yZGVyLmV4dGVuZChbeCBmb3IgeCBpbiBmaWVsZHMua2V5cygpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHggbm90IGluIGZpZWxkc190b19wcmludF0pCisgICAgICAgICMgZ2l2ZSBhbGwgdGhlIGZvcm1hdHRlcidzIGEgc2hvdCwgc2F2ZSB0aGUgdXBkYXRlcworICAgICAgICB1cGRhdGVkID0ge30KKyAgICAgICAgZm9yIGUgaW4gYWxsX2ZpZWxkc19pbl9jb3JyZWN0X29yZGVyOgorICAgICAgICAgICAgaWYgZm9ybWF0X2luZm86CisgICAgICAgICAgICAgICAgaW5mbyA9IHNlbGYuZ2V0X2ZpZWxkX2luZm8oZm9ybWF0X2luZm8sIGUpCisgICAgICAgICAgICAgICAgaWYgbm90IGluZm86CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgJ2VudHJ5LWZvcm1hdHRlcicgaW4gaW5mbzoKKyAgICAgICAgICAgICAgICAgICAgdXBkYXRlZFtlXSA9IGluZm9bJ2VudHJ5LWZvcm1hdHRlciddKAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG1wX21lcmdlZF9kaWN0LmdldChlLCAnJyksIHRtcF9tZXJnZWRfZGljdCkKKyAgICAgICAgICAgICAgICBlbGlmICdmb3JtYXR0ZXInIGluIGluZm86CisgICAgICAgICAgICAgICAgICAgIHVwZGF0ZWRbZV0gPSBpbmZvWydmb3JtYXR0ZXInXSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRtcF9tZXJnZWRfZGljdC5nZXQoZSwgJycpLCB0bXBfbWVyZ2VkX2RpY3QpCisKKyAgICAgICAgdG1wX21lcmdlZF9kaWN0LnVwZGF0ZSh1cGRhdGVkKQorCisgICAgICAgIGRhdGEudXBkYXRlKHVwZGF0ZWQpCisgICAgICAgIGFsbF9maWVsZHNfaW5fY29ycmVjdF9vcmRlciA9IGZpbHRlcihsYW1iZGEgeDogeCBpbiBkYXRhLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsX2ZpZWxkc19pbl9jb3JyZWN0X29yZGVyKQorICAgICAgICBmb3IgZSBpbiBhbGxfZmllbGRzX2luX2NvcnJlY3Rfb3JkZXI6CisgICAgICAgICAgICBpZiBmb3JtYXRfaW5mbzoKKyAgICAgICAgICAgICAgICBpbmZvID0gc2VsZi5nZXRfZmllbGRfaW5mbyhmb3JtYXRfaW5mbywgZSkKKyAgICAgICAgICAgICAgICBpZiBub3QgZGVidWcgYW5kIGluZm8gYW5kICdoZWxwX3RleHQnIGluIGluZm8gYW5kIGluZm9bJ2hlbHBfdGV4dCddWzBdID09ICcjJzoKKyAgICAgICAgICAgICAgICAgICAgIyBzZG5zaC5faXNfY29tcG91bmRfa2V5KCksIHBsZWFzZSBza2lwIGRpc3BsYXkgb2YgY29tcG91bmQga2V5CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICByZXN1bHQgKz0gKGxhYmVsX3N0ciAlIHNlbGYuZ2V0X2hlYWRlcl9mb3JfZmllbGQoZm9ybWF0X2luZm8sIGUpKyIgIisKKyAgICAgICAgICAgICAgICAgICAgICAgc3RyKHRtcF9tZXJnZWRfZGljdFtlXSkgKyAiXG4iKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiByZXN1bHRbOi0xXQorCisgICAgZGVmIGdldF90ZXJtaW5hbF9zaXplKHNlbGYpOgorICAgICAgICBkZWYgaW9jdGxfR1dJTlNaKGZkKToKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpbXBvcnQgZmNudGwsIHRlcm1pb3MsIHN0cnVjdCwgb3MKKyAgICAgICAgICAgICAgICBjciA9IHN0cnVjdC51bnBhY2soJ2hoJywgZmNudGwuaW9jdGwoZmQsIHRlcm1pb3MuVElPQ0dXSU5TWiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJzEyMzQnKSkKKyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAgcmV0dXJuIGNyCisgICAgICAgIGNyID0gaW9jdGxfR1dJTlNaKDApIG9yIGlvY3RsX0dXSU5TWigxKSBvciBpb2N0bF9HV0lOU1ooMikKKyAgICAgICAgaWYgbm90IGNyOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGZkID0gb3Mub3Blbihvcy5jdGVybWlkKCksIG9zLk9fUkRPTkxZKQorICAgICAgICAgICAgICAgIGNyID0gaW9jdGxfR1dJTlNaKGZkKQorICAgICAgICAgICAgICAgIG9zLmNsb3NlKGZkKQorICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgaWYgbm90IGNyOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGNyID0gKG9zLmVudmlyb25bJ0xJTkVTJ10sIG9zLmVudmlyb25bJ0NPTFVNTlMnXSkKKyAgICAgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgICAgICBjciA9ICgyNCwgODApCisKKyAgICAgICAgaWYgKGNyWzFdID09IDAgb3IgY3JbMF0gPT0gMCk6CisgICAgICAgICAgICByZXR1cm4gKDgwLCAyNCkKKworICAgICAgICByZXR1cm4gaW50KGNyWzFdKSwgaW50KGNyWzBdKQorCisgICAgZGVmIGZvcm1hdF90aW1lX3Nlcmllc19ncmFwaChzZWxmLCBkYXRhLCBvYmpfdHlwZT1Ob25lLCBmaWVsZF9vcmRlcmluZz0iZGVmYXVsdCIpOgorICAgICAgICBpZiBub3QgZGF0YToKKyAgICAgICAgICAgIHJldHVybiAiTm9uZS4iCisgICAgICAgIGVsaWYgdHlwZShkYXRhKSA9PSBkaWN0IGFuZCAiZXJyb3JfdHlwZSIgaW4gZGF0YToKKyAgICAgICAgICAgIHJldHVybiBkYXRhLmdldCgiZGVzY3JpcHRpb24iLCAiSW50ZXJuYWwgZXJyb3IiKQorCisgICAgICAgIG9ial90eXBlX2luZm8gPSBzZWxmLnRhYmxlX2luZm8uZ2V0KG9ial90eXBlLCBOb25lKQorCisgICAgICAgIGlmIHNlbGYuc2Ruc2guZGVzY3JpcHRpb246CisgICAgICAgICAgICBwcmludCAiZm9ybWF0X3RpbWVfc2VyaWVzX2dyYXBoIiwgb2JqX3R5cGUsIG9ial90eXBlX2luZm8KKyAgICAgICAgeXVuaXRzID0gTm9uZQorICAgICAgICB5bGFiZWwgPSAiVmFsdWUiCisgICAgICAgIGlmIChvYmpfdHlwZV9pbmZvKToKKyAgICAgICAgICAgIHlsYWJlbCA9IG9ial90eXBlX2luZm9bJ2ZpZWxkcyddWyd2YWx1ZSddWyd2ZXJib3NlLW5hbWUnXQorICAgICAgICAgICAgaWYgJ3VuaXRzJyBpbiBvYmpfdHlwZV9pbmZvWydmaWVsZHMnXVsndmFsdWUnXToKKyAgICAgICAgICAgICAgICB5dW5pdHMgPSBvYmpfdHlwZV9pbmZvWydmaWVsZHMnXVsndmFsdWUnXVsndW5pdHMnXQorCisKKyAgICAgICAgbWlueSA9IE5vbmUKKyAgICAgICAgbWF4eSA9IE5vbmUKKyAgICAgICAgbWlueCA9IE5vbmUKKyAgICAgICAgbWF4eCA9IE5vbmUKKworICAgICAgICBmb3IgKHgseSkgaW4gZGF0YToKKyAgICAgICAgICAgIGlmIG1pbnkgPT0gTm9uZSBvciB5IDwgbWlueToKKyAgICAgICAgICAgICAgICBtaW55ID0geQorICAgICAgICAgICAgaWYgbWF4eSA9PSBOb25lIG9yIHkgPiBtYXh5OgorICAgICAgICAgICAgICAgIG1heHkgPSB5CisgICAgICAgICAgICBpZiBtaW54ID09IE5vbmUgb3IgeCA8IG1pbng6CisgICAgICAgICAgICAgICAgbWlueCA9IHgKKyAgICAgICAgICAgIGlmIG1heHggPT0gTm9uZSBvciB4ID4gbWF4eDoKKyAgICAgICAgICAgICAgICBtYXh4ID0geAorCisgICAgICAgIGlmICh5dW5pdHMgPT0gJyUnKToKKyAgICAgICAgICAgIG1heHkgPSAxMDAKKworICAgICAgICBpZiBpc2luc3RhbmNlKG1heHksIGZsb2F0KSBhbmQgbWF4eSA8IDEwLjA6CisgICAgICAgICAgICBheGlzeXcgPSBsZW4oJyUuNWYnICUgbWF4eSkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIGF4aXN5dyA9IGxlbignJXMnICUgbWF4eSkKKyAgICAgICAgCisgICAgICAgICh0d2lkdGgsIHRoZWlnaHQpID0gc2VsZi5nZXRfdGVybWluYWxfc2l6ZSgpCisKKyAgICAgICAgd2lkdGggPSB0d2lkdGgtYXhpc3l3CisgICAgICAgIGhlaWdodCA9IHRoZWlnaHQtNQorCisgICAgICAgIHlidWNrZXQgPSBmbG9hdChtYXh5KS9oZWlnaHQ7CisKKyAgICAgICAgeGJ1Y2tldCA9IChtYXh4LW1pbngpL3dpZHRoOworICAgICAgICBpZiAoeGJ1Y2tldCA9PSAwKToKKyAgICAgICAgICAgIG1pbnggPSBtYXh4IC0gMTgwMDAwMAorICAgICAgICAgICAgbWF4eCArPSAxODAwMDAwCisgICAgICAgICAgICB4YnVja2V0ID0gbWF4eC93aWR0aDsKKworICAgICAgICBncmFwaCA9IGFycmF5LmFycmF5KCdjJykKKyAgICAgICAgZ3JhcGguZnJvbXN0cmluZygnICcgKiAod2lkdGggKiBoZWlnaHQpKQorICAgICAgICBmb3IgKHgseSkgaW4gZGF0YToKKyAgICAgICAgICAgIGlmICh5YnVja2V0ID09IDApOgorICAgICAgICAgICAgICAgIHljID0gaGVpZ2h0CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHljID0gaW50KHJvdW5kKChtYXh5LXkpL3lidWNrZXQpKQorICAgICAgICAgICAgaWYgKHhidWNrZXQgPT0gMCk6CisgICAgICAgICAgICAgICAgeHkgPSB3aWR0aAorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICB4YyA9IGludChyb3VuZCgoeC1taW54KS94YnVja2V0KSkKKworICAgICAgICAgICAgaWYgKHljIDwgMCk6CisgICAgICAgICAgICAgICAgeWMgPSAwCisgICAgICAgICAgICBpZiAoeWMgPj0gaGVpZ2h0KToKKyAgICAgICAgICAgICAgICB5YyA9IGhlaWdodC0xCisgICAgICAgICAgICBpZiAoeGMgPCAwKToKKyAgICAgICAgICAgICAgICB4YyA9IDAKKyAgICAgICAgICAgIGlmICh4YyA+PSB3aWR0aCk6CisgICAgICAgICAgICAgICAgeGMgPSB3aWR0aC0xCisKKyAgICAgICAgICAgICNwcmludCAoeGMseWMsIHgsIHksIHljKndpZHRoICsgeGMpCisgICAgICAgICAgICBmb3IgaSBpbiByYW5nZSh5YyxoZWlnaHQpOgorICAgICAgICAgICAgICAgIGdyYXBoW2kqd2lkdGggKyB4Y10gPSAnIycKKworICAgICAgICBiID0gJyVzXG4nICUgKHlsYWJlbCkKKworICAgICAgICBpZiBpc2luc3RhbmNlKG1heHksIGZsb2F0KSBhbmQgbWF4eSA8IDEwLjA6CisgICAgICAgICAgICBmb3JtID0gJyUlJWQuNWZ8JSVzXG4nCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBmb3JtID0gJyUlJWRzfCUlc1xuJworCisgICAgICAgIGZvciBpIGluIHJhbmdlKDAsaGVpZ2h0LTEpOgorICAgICAgICAgICAgeWxhYmVsID0gbWF4eSAtIGkqeWJ1Y2tldAorICAgICAgICAgICAgaWYgbm90IGlzaW5zdGFuY2UobWF4eSwgZmxvYXQpIG9yIG1heHkgPj0gMTAuMDoKKyAgICAgICAgICAgICAgICB5bGFiZWwgPSBpbnQocm91bmQoeWxhYmVsKSkKKyAgICAgICAgICAgIGIgKz0gKGZvcm0gJSBheGlzeXcpICUgXAorICAgICAgICAgICAgICAgICh5bGFiZWwsIAorICAgICAgICAgICAgICAgICAnJy5qb2luKGdyYXBoW2kqd2lkdGg6KGkrMSkqd2lkdGgtMV0pKQorICAgICAgICBiICs9IChmb3JtICUgYXhpc3l3KSAlIFwKKyAgICAgICAgICAgICgwLCAnJy5qb2luKGdyYXBoWyhoZWlnaHQtMSkqd2lkdGg6aGVpZ2h0KndpZHRoLTFdKS5yZXBsYWNlKCcgJywgJ18nKSkKKworICAgICAgICBiICs9ICclcycgJSAoJyAnICogYXhpc3l3KQorICAgICAgICBkID0gJyAnICogYXhpc3l3CisKKyAgICAgICAgb2xkZGF0ZSA9IE5vbmUKKyAgICAgICAgaW50ZXJ2YWwgPSAobWF4eCAtIG1pbngpLyh3aWR0aC83LjApCisgICAgICAgIGZvciBpIGluIHJhbmdlKDAsIHdpZHRoLzcpOgorICAgICAgICAgICAgY3VydGltZXN0YW1wID0gbWlueCArIGludGVydmFsKmkKKyAgICAgICAgICAgCisgICAgICAgICAgICBpZiBpID09IHdpZHRoLzctMToKKyAgICAgICAgICAgICAgICBkZiA9ICgnICcgKiAod2lkdGggJSA3KSkgKyAiICVtLyVkXiIKKyAgICAgICAgICAgICAgICB0ZiA9ICgnICcgKiAod2lkdGggJSA3KSkgKyAiICVIOiVNXiIKKyAgICAgICAgICAgICAgICBjdXJ0aW1lc3RhbXAgPSBtYXh4CisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGRmID0gIl4lbS8lZCAiCisgICAgICAgICAgICAgICAgdGYgPSAiXiVIOiVNICIKKworICAgICAgICAgICAgY3VydGltZSA9IGRhdGV0aW1lLmRhdGV0aW1lLmZyb210aW1lc3RhbXAoY3VydGltZXN0YW1wLzEwMDAuMCkKKyAgICAgICAgICAgIGRhdGUgPSBjdXJ0aW1lLnN0cmZ0aW1lKGRmKQorICAgICAgICAgICAgYiArPSBjdXJ0aW1lLnN0cmZ0aW1lKHRmKQorICAgICAgICAgICAgaWYgKGRhdGUgIT0gb2xkZGF0ZSk6CisgICAgICAgICAgICAgICAgb2xkZGF0ZSA9IGRhdGUKKyAgICAgICAgICAgICAgICBkICs9IGRhdGUKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZCArPSAnICcgKiA3CisKKyAgICAgICAgYiArPSAnXG4lc1xuJyAlIGQKKyAgICAgICAgYiArPSAnJXMlc1RpbWUnICUgKCcgJyAqIGF4aXN5dywgJyAnICogKHdpZHRoLzItMikpCisKKyAgICAgICAgcmV0dXJuIGIKZGlmZiAtLWdpdCBhL2NsaS9yZXN0X3RvX21vZGVsLnB5IGIvY2xpL3Jlc3RfdG9fbW9kZWwucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uN2VmMjVhOQotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9yZXN0X3RvX21vZGVsLnB5CkBAIC0wLDAgKzEsNjQ5IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMiwyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitpbXBvcnQgY29sbGVjdGlvbnMKK2ltcG9ydCB1cmxsaWIKK2ltcG9ydCBlcnJvcgoraW1wb3J0IGpzb24KK2ltcG9ydCBtb2RpCitpbXBvcnQgdXRpZgoraW1wb3J0IHVybF9jYWNoZQorCisjCisjIGpzb24gYmFzZWQgb24gbm9uIG1vZGVsIGJhc2VkIHF1ZXJ5CisjCisKK2RlZiByZXN0X3RvX21vZGVsX2luaXQoYnMsIG1vZGkpOgorICAgIGdsb2JhbCBzZG5zaCwgbWkKKworICAgIHNkbnNoID0gYnMKKyAgICBtaSA9IG1vZGkKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0LCBtZXNzYWdlID0gTm9uZSk6CisgICAgaWYgaXNpbnN0YW5jZShyZXN1bHQsIGNvbGxlY3Rpb25zLk1hcHBpbmcpOgorICAgICAgICBlcnJvcl90eXBlID0gcmVzdWx0LmdldCgnZXJyb3JfdHlwZScpCisgICAgICAgIGlmIGVycm9yX3R5cGU6CisgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kUmVzdEVycm9yKHJlc3VsdCwgbWVzc2FnZSkKKworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBnZXRfbW9kZWxfZnJvbV91cmwob2JqX3R5cGUsIGRhdGEpOgorICAgICIiIgorICAgIEludGVuZGVkIHRvIGJlIHVzZWQgYXMgYSBjb252ZXJzaW9uIHRvb2wsIHRvIHByb3ZpZGUgYSB3YXkKKyAgICB0byBtb3ZlIG1vZGVsIHJlcXVlc3RzIHRvIHNwZWNpZmljIHVybCByZXF1ZXN0cworICAgICIiIgorCisgICAgb25vcyA9IDEKKyAgICBzdGFydHN3aXRoID0gJ19fc3RhcnRzd2l0aCcKKyAgICBkYXRhID0gZGljdChkYXRhKQorCisgICAgaWYgbWkub2JqX3R5cGVfaGFzX21vZGVsKG9ial90eXBlKToKKyAgICAgICAgcHJpbnQgIk1PREVMX1VSTDogJXMgbm90IHN1cHBvcnRlZCIgJSBvYmpfdHlwZQorICAgICAgICByZXR1cm4gW10KKyAgICAjCisgICAgIyBzYXZlIHNvcnQgZmllbGQKKyAgICBzb3J0ID0gZGF0YS5nZXQoJ29yZGVyYnknLCBOb25lKQorICAgIGlmIHNvcnQ6CisgICAgICAgIGRlbCBkYXRhWydvcmRlcmJ5J10KKworICAgIG9ial90eXBlX3VybCA9IG1pLm9ial90eXBlX2hhc191cmwob2JqX3R5cGUpCisgICAgdXJsID0gImh0dHA6Ly8lcy9yZXN0L3YxLyIgJSBzZG5zaC5jb250cm9sbGVyICsgb2JqX3R5cGVfdXJsCisKKyAgICAjIGZvciB0aGUgZGV2aWNlcyBxdWVyeSwgYmUgc2Vuc2l0aXZlIHRvIHRoZSB0eXBlcyBvZiBxdWVyaWVzCisgICAgIyBzaW5jZSB0aGUgZGV2aWNlcyBxdWVyeSBkb2Vzbid0IHVuZGVyc3RhbmQgdGhlIHJlbGF0aW9uc2hpcAorICAgICMgYmV0d2VlbiB0aGUgdmxhbj09JycgZm9yIGFkZHJlc3Nfc3BhY2UgPT0gJ2RlZmF1bHQnLgorICAgIGlmIG9ial90eXBlX3VybCA9PSAnZGV2aWNlJzoKKyAgICAgICAgaWYgJ3ZsYW4nIGluIGRhdGEgYW5kIGRhdGFbJ3ZsYW4nXSA9PSAnJzoKKyAgICAgICAgICAgIGRlbCBkYXRhWyd2bGFuJ10KKworICAgICMgZGF0YSBpdGVtcyBuZWVkIHRvIGJlIGluY2x1ZGVkIGludG8gdGhlIHF1ZXJ5LgorICAgIGlmIGRhdGE6CisgICAgICAgIHVybCArPSAnPycKKyAgICAgICAgdXJsICs9IHVybGxpYi51cmxlbmNvZGUoZGF0YSkKKyAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICBwcmludCAiZ2V0X21vZGVsX2Zyb21fdXJsOiByZXF1ZXN0ICIsIG9ial90eXBlLCBkYXRhLCB1cmwKKyAgICAjCisgICAgIyBjYWNoZSBzbWFsbCwgc2hvcnQgdGltZSByZXN1bHRzCisgICAgZW50cmllcyA9IHVybF9jYWNoZS5nZXRfY2FjaGVkX3VybCh1cmwpCisgICAgaWYgZW50cmllcyAhPSBOb25lOgorICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgcHJpbnQgJ2dldF9tb2RlbF9mcm9tX3VybDogdXNpbmcgY2FjaGVkIHJlc3VsdCBmb3IgJywgdXJsCisgICAgZWxzZToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0ID0gc2Ruc2guc3RvcmUucmVzdF9zaW1wbGVfcmVxdWVzdCh1cmwpCisgICAgICAgICAgICBjaGVja19yZXN0X3Jlc3VsdChyZXN1bHQpCisgICAgICAgICAgICBlbnRyaWVzID0ganNvbi5sb2FkcyhyZXN1bHQpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgICAgIHByaW50ICJnZXRfbW9kZWxfZnJvbV91cmw6IGZhaWxlZCByZXF1ZXN0ICVzOiAnJXMnIiAlICh1cmwsIGUpCisgICAgICAgICAgICBlbnRyaWVzID0gW10KKyAgICAgICAgCisgICAgICAgIHVybF9jYWNoZS5zYXZlX3VybCh1cmwsIGVudHJpZXMpCisKKyAgICBrZXkgPSBtaS5wayhvYmpfdHlwZSkKKworICAgICMgY29udmVydCBzcGVjaWZpYyB0eXBlcyBYWFggbmVlZCBiZXR0ZXIgZ2VuZXJpYyBtZWNoYW5pc20KKyAgICByZXN1bHQgPSBbXQorICAgIGlmIG9ial90eXBlID09ICdob3N0LWF0dGFjaG1lbnQtcG9pbnQnOgorICAgICAgICBmb3IgZW50cnkgaW4gZW50cmllczoKKyAgICAgICAgICAgICMgaXQgaXMgcG9zc2libGUgZm9yIG11bHRpcGxlIG1hYydzIHRvIGFwcGVhciBoZXJlIAorICAgICAgICAgICAgIyBhcyBsb25nIGFzIGEgc2luZ2xlIGlwIGlzIGFzc29jaWF0ZWQgd2l0aCB0aGUgZGV2aWNlLgorICAgICAgICAgICAgaWYgbGVuKGVudHJ5WydtYWMnXSkgPiAxOgorICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRJbnRlcm5hbEVycm9yKCJob3N0IChhdHRhY2htZW50IHBvaW50KTogPjEgbWFjIikKKyAgICAgICAgICAgIG1hYyA9IGVudHJ5WydtYWMnXVswXQorICAgICAgICAgICAgYXBzID0gZW50cnlbJ2F0dGFjaG1lbnRQb2ludCddCisgICAgICAgICAgICBsYXN0c2VlbiA9IGVudHJ5WydsYXN0U2VlbiddCisgICAgICAgICAgICBmb3IgYXAgaW4gYXBzOgorICAgICAgICAgICAgICAgIHN0YXR1cyA9IGFwLmdldCgnZXJyb3JTdGF0dXMnLCAnJykKKyAgICAgICAgICAgICAgICBpZiBzdGF0dXMgPT0gTm9uZToKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gJycKKyAgICAgICAgICAgICAgICBpZiBsZW4oZW50cnlbJ3ZsYW4nXSkgPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh7J2lkJyAgICAgICAgICAgOiBtYWMgKyAnfCcgKyBhcFsnc3dpdGNoRFBJRCddICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnfCcgKyBzdHIoYXBbJ3BvcnQnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWMnICAgICAgICAgIDogbWFjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3dpdGNoJyAgICAgICA6IGFwWydzd2l0Y2hEUElEJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbmdyZXNzLXBvcnQnIDogYXBbJ3BvcnQnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXR1cycgICAgICAgOiBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsYXN0LXNlZW4nICAgIDogbGFzdHNlZW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRyZXNzLXNwYWNlJzogZW50cnlbJ2VudGl0eUNsYXNzJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZm9yIHZsYW4gaW4gZW50cnlbJ3ZsYW4nXToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoeydpZCcgICAgICAgICAgIDogbWFjICsgJ3wnICsgYXBbJ3N3aXRjaERQSUQnXSArCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd8JyArIHN0cihhcFsncG9ydCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWMnICAgICAgICAgIDogbWFjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZsYW4nICAgICAgICAgOiB2bGFuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N3aXRjaCcgICAgICAgOiBhcFsnc3dpdGNoRFBJRCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2luZ3Jlc3MtcG9ydCcgOiBhcFsncG9ydCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXR1cycgICAgICAgOiBzdGF0dXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGFzdC1zZWVuJyAgICA6IGxhc3RzZWVuLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZHJlc3Mtc3BhY2UnOiBlbnRyeVsnZW50aXR5Q2xhc3MnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgZWxpZiBvYmpfdHlwZSA9PSAnaG9zdC1uZXR3b3JrLWFkZHJlc3MnOgorCisgICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgaWYgbGVuKGVudHJ5WydtYWMnXSkgPiAxOgorICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRJbnRlcm5hbEVycm9yKCJob3N0IChuZXR3b3JrLWFkZHJlc3MpOiA+MSBtYWMiKQorICAgICAgICAgICAgbWFjID0gZW50cnlbJ21hYyddWzBdCisgICAgICAgICAgICBpcHMgPSBlbnRyeVsnaXB2NCddCisgICAgICAgICAgICBsYXN0c2VlbiA9IGVudHJ5WydsYXN0U2VlbiddCisgICAgICAgICAgICBmb3IgaXAgaW4gaXBzOgorICAgICAgICAgICAgICAgIGlmIGxlbihlbnRyeVsndmxhbiddKSA9PSAwOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHsnaWQnICAgICAgICAgICAgOiBtYWMgKyAnfCcgKyBpcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hYycgICAgICAgICAgIDogbWFjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXAtYWRkcmVzcycgICAgOiBpcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZHJlc3Mtc3BhY2UnIDogZW50cnlbJ2VudGl0eUNsYXNzJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsYXN0LXNlZW4nICAgICA6IGxhc3RzZWVuIH0pCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgZm9yIHZsYW4gaW4gZW50cnlbJ3ZsYW4nXToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoeydpZCcgICAgICAgICAgICA6IG1hYyArICd8JyArIGlwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hYycgICAgICAgICAgIDogbWFjLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZsYW4nICAgICAgICAgIDogdmxhbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcC1hZGRyZXNzJyAgICA6IGlwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZHJlc3Mtc3BhY2UnIDogZW50cnlbJ2VudGl0eUNsYXNzJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGFzdC1zZWVuJyAgICAgOiBsYXN0c2VlbiB9KQorICAgIGVsaWYgb2JqX3R5cGUgPT0gJ2hvc3QnOgorICAgICAgICAjIEZvciBob3N0IHF1ZXJpZXMsIHRoZSBkZXZpY2UgbWFuYWdlciByZXR1cm5zICdkZXZpY2VzJyB3aGljaAorICAgICAgICAjIG1hdGNoIHNwZWNpZmljIGNyaXRlcmlhLCBmb3IgZXhhbXBsZSwgaWYgeW91IHNheSBpcHY0ID09ICd4eHgnLAorICAgICAgICAjIHRoZSBkZXZpY2Ugd2hpY2ggbWF0Y2hlcyB0aGF0IGNyaXRlcmlzIGlzIHJldHVybmVkLiAgSG93ZXZlciwKKyAgICAgICAgIyB0aGVyZSBtYXkgYmUgbXVsdGlwbGUgaXAgYWRkcmVzc2VzIGFzc29jaWF0ZWQuCisgICAgICAgICMKKyAgICAgICAgIyB0aGlzIG1lYW5zIHRoYXQgdHdvIGRpZmZlcmVudCBncm91cHMgb2YgdmFsdWVzIGZvciB0aGVzZQorICAgICAgICAjIGVudGl0aWVzIGFyZSByZXR1cm5lZC4gIGZpZWxkcyBsaWtlICdpcHY0JyBpcyB0aGUgY29sbGVjdGlvbgorICAgICAgICAjIG9mIG1hdGNoaW5nIHZhbHVlcywgd2hpbGUgJ2lwcycgaXMgdGhlIGNvbXBsZWUgbGlzdC4KKyAgICAgICAgIyAnc3dpdGNoJywgJ3BvcnQnIGFyZSB0aGUgbWF0Y2ggdmFsdWVzLCB3aGlsZSAnYXR0YWNobWVudC1wb2ludHMnCisgICAgICAgICMgaXMgdGhlIGNvbXBsZXRlIGxpc3QuCisgICAgICAgICMKKworICAgICAgICBpcF9tYXRjaCA9IGRhdGEuZ2V0KCdpcHY0JykKKyAgICAgICAgaXBfcHJlZml4ID0gZGF0YS5nZXQoJ2lwdjRfX3N0YXJ0c3dpdGgnKQorCisgICAgICAgIGRwaWRfbWF0Y2ggPSBkYXRhLmdldCgnZHBpZCcpCisgICAgICAgIGRwaWRfcHJlZml4ID0gZGF0YS5nZXQoJ2RwaWRfX3N0YXJ0c3dpdGgnKQorCisgICAgICAgIHBvcnRfbWF0Y2ggPSBkYXRhLmdldCgncG9ydCcpCisgICAgICAgIHBvcnRfcHJlZml4ID0gZGF0YS5nZXQoJ3BvcnRfX3N0YXJ0c3dpdGgnKQorCisgICAgICAgIGFkZHJlc3Nfc3BhY2VfbWF0Y2ggPSBkYXRhLmdldCgnYWRkcmVzcy1zcGFjZScpCisgICAgICAgIGFkZHJlc3Nfc3BhY2VfcHJlZml4ID0gZGF0YS5nZXQoJ2FkZHJlc3Mtc3BhY2VfX3N0YXJ0c3dpdGgnKQorCisgICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgaWYgb25vcz09MDoKKyAgICAgICAgICAgICAgICBpZiBsZW4oZW50cnlbJ21hYyddKSA+IDE6CisgICAgICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRJbnRlcm5hbEVycm9yKCJob3N0OiA+MSBtYWMiKQorICAgICAgICAgICAgICAgIG1hYyA9IGVudHJ5WydtYWMnXVswXQorICAgICAgICAgICAgICAgIGxhc3RzZWVuID0gZW50cnlbJ2xhc3RTZWVuJ10KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWFjID0gZW50cnlbJ21hYyddCisgICAgICAgICAgICAgICAgbGFzdHNlZW4gPSAwCisKKyAgICAgICAgICAgIGlwcyA9IE5vbmUKKyAgICAgICAgICAgIGlmIG5vdCBpcF9tYXRjaCBhbmQgbm90IGlwX3ByZWZpeDoKKyAgICAgICAgICAgICAgICBpcHY0ID0gZW50cnlbJ2lwdjQnXQorICAgICAgICAgICAgZWxpZiBpcF9tYXRjaDoKKyAgICAgICAgICAgICAgICBpcHY0ID0gW3ggZm9yIHggaW4gZW50cnlbJ2lwdjQnXSBpZiB4ID09IGlwX21hdGNoXQorICAgICAgICAgICAgZWxpZiBpcF9wcmVmaXg6CisgICAgICAgICAgICAgICAgaXB2NCA9IFt4IGZvciB4IGluIGVudHJ5WydpcHY0J10gaWYgeC5zdGFydHN3aXRoKGlwX3ByZWZpeCldCisKKyAgICAgICAgICAgIGlmIGxlbihlbnRyeVsnaXB2NCddKToKKyAgICAgICAgICAgICAgICBpcHMgPSBbeydpcC1hZGRyZXNzJyA6IGVudHJ5WydpcHY0J10sICdsYXN0LXNlZW4nIDogbGFzdHNlZW59XQorICAgICAgICAgICAgICAgICAgICAJICAgICNmb3IgeCBpbiBlbnRyeVsnaXB2NCddIF0KKyAgICAgICAgICAgIGFwcyA9IE5vbmUKKyAgICAgICAgICAgIHN3aXRjaCA9IFtdCisgICAgICAgICAgICBwb3J0ID0gW10KKworICAgICAgICAgICAgI2RwaWRfbWF0Y2ggPSBlbnRyeS5nZXQoJ2RwaWQnKQorICAgICAgICAgICAgaWYgb25vcyA9PSAwOgorICAgICAgICAgICAgICAgIGF0dGFjaFBvaW50ID0gJ2F0dGFjaG1lbnRQb2ludCcKKyAgICAgICAgICAgICAgICBhdHRhY2hEcGlkID0gJ3N3aXRjaERQSUQnCisgICAgICAgICAgICAgICAgYXR0YWNoUG9ydCA9ICdwb3J0JworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBhdHRhY2hQb2ludCA9ICdhdHRhY2htZW50UG9pbnRzJworICAgICAgICAgICAgICAgIGF0dGFjaERwaWQgPSAnZHBpZCcKKyAgICAgICAgICAgICAgICBhdHRhY2hQb3J0ID0gJ3BvcnROdW1iZXInCisKKyAgICAgICAgICAgIGlmIGxlbihlbnRyeVthdHRhY2hQb2ludF0pOgorICAgICAgICAgICAgICAgIGFwcyA9IFt7J3N3aXRjaCcgOiB4W2F0dGFjaERwaWRdLCAnaW5ncmVzcy1wb3J0JyA6IHhbYXR0YWNoUG9ydF0gfQorICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBlbnRyeVthdHRhY2hQb2ludF1dCisKKyAgICAgICAgICAgICAgICBpZiBub3QgZHBpZF9tYXRjaCBhbmQgbm90IGRwaWRfcHJlZml4OgorICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggPSBbeFthdHRhY2hEcGlkXSBmb3IgeCBpbiBlbnRyeVthdHRhY2hQb2ludF1dCisgICAgICAgICAgICAgICAgZWxpZiBkcGlkX21hdGNoOgorICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggPSBbeFthdHRhY2hEcGlkXSBmb3IgeCBpbiBlbnRyeVthdHRhY2hQb2ludF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHhbYXR0YWNoRHBpZF0gPT0gZHBpZF9tYXRjaF0KKyAgICAgICAgICAgICAgICBlbGlmIGRwaWRfcHJlZml4OgorICAgICAgICAgICAgICAgICAgICBzd2l0Y2ggPSBbeFthdHRhY2hEcGlkXSBmb3IgeCBpbiBlbnRyeVthdHRhY2hQb2ludF0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHhbYXR0YWNoRHBpZF0uc3RhcnRzd2l0aChkcGlkX3ByZWZpeCldCisKKyAgICAgICAgICAgICAgICBpZiBub3QgcG9ydF9tYXRjaCBhbmQgbm90IHBvcnRfcHJlZml4OgorICAgICAgICAgICAgICAgICAgICBwb3J0ID0gW3hbYXR0YWNoUG9ydF0gZm9yIHggaW4gZW50cnlbYXR0YWNoUG9pbnRdXQorICAgICAgICAgICAgICAgIGVsaWYgcG9ydF9tYXRjaDoKKyAgICAgICAgICAgICAgICAgICAgcG9ydCA9IFt4W2F0dGFjaFBvcnRdIGZvciB4IGluIGVudHJ5W2F0dGFjaFBvaW50XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHhbYXR0YWNoUG9ydF0gPT0gcG9ydF9tYXRjaF0KKyAgICAgICAgICAgICAgICBlbGlmIHBvcnRfcHJlZml4OgorICAgICAgICAgICAgICAgICAgICBwb3J0ID0gW3hbYXR0YWNoUG9ydF0gZm9yIHggaW4gZW50cnlbYXR0YWNoUG9pbnRdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeFthdHRhY2hQb3J0XS5zdGFydHN3aXRoKHBvcnRfcHJlZml4KV0KKworICAgICAgICAgICAgaWYgb25vcyA9PSAwOgorICAgICAgICAgICAgICAgIGFkZHJlc3Nfc3BhY2UgPSBlbnRyeVsnZW50aXR5Q2xhc3MnXQorICAgICAgICAgICAgICAgIGRoY3BfY2xpZW50X25hbWUgPSBlbnRyeS5nZXQoJ2RoY3BDbGllbnROYW1lJywgJycpCisgICAgICAgICAgICAgICAgaWYgYWRkcmVzc19zcGFjZV9tYXRjaCBhbmQgYWRkcmVzc19zcGFjZSAhPSBhZGRyZXNzX3NwYWNlX21hdGNoOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGlmIGFkZHJlc3Nfc3BhY2VfcHJlZml4IGFuZCBub3QgYWRkcmVzc19zcGFjZS5zdGFydHN3aXRoKGFkZHJlc3Nfc3BhY2VfcHJlZml4KToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKworICAgICAgICAgICAgaWYgb25vcyA9PSAxOgorICAgICAgICAgICAgICAgIGlkID0gJyVzJyAlIChtYWMpCisgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh7J2lkJyAgICAgICAgICAgICAgICA6IGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hYycgICAgICAgICAgICAgICA6IG1hYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcHMnICAgICAgICAgICAgICAgOiBpcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXB2NCcgICAgICAgICAgICAgIDogaXB2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdhdHRhY2htZW50LXBvaW50cycgOiBhcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHBpZCcgICAgICAgICAgICAgIDogc3dpdGNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcnQnICAgICAgICAgICAgICA6IHBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGFzdC1zZWVuJyAgICAgICAgIDogMH0pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGlmIGxlbihlbnRyeVsndmxhbiddKSA9PSAwOgorICAgICAgICAgICAgICAgICAgICBpZCA9ICclc3x8JXMnICUgKGFkZHJlc3Nfc3BhY2UsIG1hYykKKyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZCh7J2lkJyAgICAgICAgICAgICAgICA6IGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtYWMnICAgICAgICAgICAgICAgOiBtYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lwcycgICAgICAgICAgICAgICA6IGlwcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaXB2NCcgICAgICAgICAgICAgIDogaXB2NCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXR0YWNobWVudC1wb2ludHMnIDogYXBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkcGlkJyAgICAgICAgICAgICAgOiBzd2l0Y2gsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcnQnICAgICAgICAgICAgICA6IHBvcnQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZHJlc3Mtc3BhY2UnICAgICA6IGFkZHJlc3Nfc3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RoY3AtY2xpZW50LW5hbWUnICA6IGRoY3BfY2xpZW50X25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2xhc3Qtc2VlbicgICAgICAgICA6IGxhc3RzZWVufSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBmb3IgdmxhbiBpbiBlbnRyeVsndmxhbiddOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgYWRkcmVzc19zcGFjZSAhPSAnZGVmYXVsdCc6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQgPSAnJXN8fCVzJyAlIChhZGRyZXNzX3NwYWNlLCBtYWMpCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkID0gJyVzfCVzfCVzJyAlIChhZGRyZXNzX3NwYWNlLCB2bGFuLCBtYWMpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoeydpZCcgICAgICAgICAgICAgICAgOiBpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hYycgICAgICAgICAgICAgICA6IG1hYywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZsYW4nICAgICAgICAgICAgICA6IHZsYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcHMnICAgICAgICAgICAgICAgOiBpcHMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcHY0JyAgICAgICAgICAgICAgOiBpcHY0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYXR0YWNobWVudC1wb2ludHMnIDogYXBzLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZHBpZCcgICAgICAgICAgICAgIDogc3dpdGNoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9ydCcgICAgICAgICAgICAgIDogcG9ydCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkZHJlc3Mtc3BhY2UnICAgICA6IGFkZHJlc3Nfc3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaGNwLWNsaWVudC1uYW1lJyAgOiBkaGNwX2NsaWVudF9uYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGFzdC1zZWVuJyAgICAgICAgIDogbGFzdHNlZW59KQorCisgICAgICAgICMgQWxzbyBuZWVkIHRvIGFkZCBob3N0Q29uZmlnIGVudHJpZXMuCisgICAgICAgIGlmIG5vdCBtaS5vYmpfdHlwZV9oYXNfbW9kZWwoJ2hvc3QtY29uZmlnJyk6CisgICAgICAgICAgICByYWlzZSBlcnJvci5Db21tYW5kSW50ZXJuYWxFcnJvcigiaG9zdC1jb25maWc6IG5vdCBzZXJ2ZWQgdmlhIG1vZGVsIikKKyAgICAgICAgaG9zdF9jb25maWcgPSBzZG5zaC5yZXN0X3F1ZXJ5X29iamVjdHMoJ2hvc3QtY29uZmlnJywgZGF0YSkKKyAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgIHByaW50ICJnZXRfbW9kZWxfZnJvbV91cmw6IGFkZGluZyBob3N0LWNvbmZpZyAiLCBkYXRhLCBob3N0X2NvbmZpZworICAgICAgICBrbm93bl9pZHMgPSBbeFsnaWQnXSBmb3IgeCBpbiByZXN1bHRdCisKKyAgICAgICAgZm9yIGhjIGluIGhvc3RfY29uZmlnOgorICAgICAgICAgICAgaWQgPSBoY1snaWQnXQorICAgICAgICAgICAgaWYgaWQgbm90IGluIGtub3duX2lkczoKKyAgICAgICAgICAgICAgICAjIGJlIHNlbnNpdGl2ZSB0byBzZWFyY2ggZmllbGRzOgorICAgICAgICAgICAgICAgIHF1ZXJ5X21hdGNoID0gVHJ1ZQorICAgICAgICAgICAgICAgIGlmIGxlbihkYXRhKToKKyAgICAgICAgICAgICAgICAgICAgZm9yIChkLCBkdikgaW4gZGF0YS5pdGVtcygpOgorICAgICAgICAgICAgICAgICAgICAgICAgIyBvdGhlciBvcHMgYXNpZGUgZnJvbSAnPSc/CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBkLmVuZHN3aXRoKHN0YXJ0c3dpdGgpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZuID0gZFs6LWxlbihzdGFydHN3aXRoKV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBub3QgZm4gaW4gaGMgb3Igbm90IGhjW2ZuXS5zdGFydHN3aXRoKGR2KToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnlfbWF0Y2ggPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiAobm90IGQgaW4gaGMpIG9yIGR2ICE9IGhjW2RdOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHF1ZXJ5X21hdGNoID0gRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGlmIHF1ZXJ5X21hdGNoOgorICAgICAgICAgICAgICAgICAgICBoY1snYXR0YWNobWVudC1wb2ludHMnXSA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgaGNbJ2RwaWQnXSA9IE5vbmUKKyAgICAgICAgICAgICAgICAgICAgaGNbJ2lwcyddID0gTm9uZQorICAgICAgICAgICAgICAgICAgICBoY1snbGFzdC1zZWVuJ10gPSBOb25lCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoaGMpCisKKyAgICBlbGlmIG9ial90eXBlID09ICd2bnMtaW50ZXJmYWNlJzoKKyAgICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICB2bnMgPSBlbnRyeVsncGFyZW50Vk5TJ11bJ25hbWUnXQorICAgICAgICAgICAgcnVsZSA9IGVudHJ5WydwYXJlbnRSdWxlJ10KKyAgICAgICAgICAgIHJ1bGVfbmFtZSA9ICdkZWZhdWx0JworICAgICAgICAgICAgaWYgcnVsZSBhbmQgJ25hbWUnIGluIHJ1bGU6CisgICAgICAgICAgICAgICAgcnVsZV9uYW1lID0gcnVsZVsnbmFtZSddCisKKyAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoeyBrZXkgICAgICAgICAgICA6IHZucyArICd8JyArIGVudHJ5WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAndm5zJyAgICAgICAgICAgOiB2bnMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWRkcmVzcy1zcGFjZScgOiBlbnRyeVsncGFyZW50Vk5TJ11bJ2FkZHJlc3NTcGFjZU5hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnRlcmZhY2UnICAgICA6IGVudHJ5WyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAncnVsZScgICAgICAgICAgOiBydWxlX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAnbGFzdC1zZWVuJyAgICAgOiBlbnRyeVsnbGFzdFNlZW4nXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKworICAgICAgICAjIGFsc28gbmVlZCB0byBhZGQgdm5zLWludGVyZmFjZS1jb25maWcKKyAgICAgICAgaWYgbm90IG1pLm9ial90eXBlX2hhc19tb2RlbCgndm5zLWludGVyZmFjZS1jb25maWcnKToKKyAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRJbnRlcm5hbEVycm9yKCJ2bnMtaW50ZXJmYWNlLWNvbmZpZzogbm90IHNlcnZpY2UgdmlhIG1vZGVsIikKKyAgICAgICAgdm5zX2ludGZfY29uZmlnID0gc2Ruc2gucmVzdF9xdWVyeV9vYmplY3RzKCd2bnMtaW50ZXJmYWNlLWNvbmZpZycsIGRhdGEpCisgICAgICAgIGtub3duX3Zuc19pbnRmcyA9IFt4W2tleV0gZm9yIHggaW4gcmVzdWx0XQorICAgICAgICBmb3Igdm5zX2ludGYgaW4gdm5zX2ludGZfY29uZmlnOgorICAgICAgICAgICAgaWYgbm90IHZuc19pbnRmW2tleV0gaW4ga25vd25fdm5zX2ludGZzOgorICAgICAgICAgICAgICAgIHZuc19pbnRmWydydWxlJ10gPSAnZGVmYXVsdCcKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHZuc19pbnRmKQorCisgICAgZWxpZiBvYmpfdHlwZSA9PSAnaG9zdC12bnMtaW50ZXJmYWNlJzoKKworICAgICAgICAjIG1hYyBtYXRjaGluZyB3b3JrcyBmb3IgdGhlIHJlcXVlc3QKKworICAgICAgICB2bnNfbWF0Y2ggPSBkYXRhLmdldCgndm5zJykKKyAgICAgICAgdm5zX3ByZWZpeCA9IGRhdGEuZ2V0KCd2bnNfX3N0YXJ0c3dpdGgnKQorCisgICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgZGV2aWNlID0gZW50cnlbJ2RldmljZSddCisgICAgICAgICAgICBpZiBsZW4oZGV2aWNlWydtYWMnXSkgPiAxOgorICAgICAgICAgICAgICAgIHJhaXNlIGVycm9yLkNvbW1hbmRJbnRlcm5hbEVycm9yKCJob3N0ICh2bnMtaW50ZXJmYWNlKTogPjEgbWFjIikKKworICAgICAgICAgICAgZGV2aWNlX2xhc3Rfc2VlbiA9IGRldmljZVsnbGFzdFNlZW4nXQorICAgICAgICAgICAgYWRkcmVzc19zcGFjZSA9IGRldmljZVsnZW50aXR5Q2xhc3MnXQorICAgICAgICAgICAgbWFjID0gZGV2aWNlWydtYWMnXVswXSAgICAgICAgICAjIGN1cnJlbnRseSwgc2hvdWxkIG9ubHkgYmUgb25lCisKKyAgICAgICAgICAgIGlwcyA9IE5vbmUKKyAgICAgICAgICAgIGlmIGxlbihkZXZpY2VbJ2lwdjQnXSk6CisgICAgICAgICAgICAgICAgaXBzID0gW3snaXAtYWRkcmVzcycgOiB4LCAnbGFzdC1zZWVuJyA6IGRldmljZV9sYXN0X3NlZW59CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgeCBpbiBkZXZpY2VbJ2lwdjQnXSBdCisKKyAgICAgICAgICAgIHZsYW5zID0gZGV2aWNlLmdldCgndmxhbicsIFtdKSAgICMgY3VycmVudGx5LCBzaG91bGQgb25seSBiZSBvbmUKKyAgICAgICAgICAgIGlmIGxlbih2bGFucykgPT0gMDogICAgICAgICAgICAgICMgaXRlcmF0ZSBvbmNlIHdoZW4gbGlzdCBpcyBlbXB0eQorICAgICAgICAgICAgICAgIHZsYW5zID0gWyAnJyBdCisKKyAgICAgICAgICAgIGFwcyA9IE5vbmUKKyAgICAgICAgICAgIGlmIGxlbihkZXZpY2VbJ2F0dGFjaG1lbnRQb2ludCddKToKKyAgICAgICAgICAgICAgICBhcHMgPSBbeydzd2l0Y2gnIDogeFsnc3dpdGNoRFBJRCddLCAnaW5ncmVzcy1wb3J0JyA6IHhbJ3BvcnQnXSB9CisgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIGRldmljZVsnYXR0YWNobWVudFBvaW50J11dCisKKyAgICAgICAgICAgIGZvciBpZmFjZSBpbiBlbnRyeS5nZXQoJ2lmYWNlJywgW10pOgorICAgICAgICAgICAgICAgIHZucyA9IGlmYWNlWydwYXJlbnRWTlMnXVsnbmFtZSddCisgICAgICAgICAgICAgICAgbGFzdF9zZWVuID0gaWZhY2VbJ2xhc3RTZWVuJ10KKyAgICAgICAgICAgICAgICBpZiB2bnNfbWF0Y2ggYW5kIHZuc19tYXRjaCAhPSB2bnM6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgdm5zX3ByZWZpeCBhbmQgbm90IHZucy5zdGFydHN3aXRoKHZuc19wcmVmaXgpOgorICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICAgICAgZm9yIHZsYW4gaW4gdmxhbnM6ICMgdGhlcmUncyBzdXBwb3NlZCB0byBvbmx5IGJlIGF0IG1vc3Qgb25lIHZsYW4uCisgICAgICAgICAgICAgICAgICAgIGlmIGFkZHJlc3Nfc3BhY2UgIT0gJ2RlZmF1bHQnIG9yIHR5cGUodmxhbikgIT0gaW50OgorICAgICAgICAgICAgICAgICAgICAgICAgaG9zdCA9ICclc3x8JXMnICUgKGFkZHJlc3Nfc3BhY2UsIG1hYykKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGhvc3QgPSAnJXN8JXN8JXMnICUgKGFkZHJlc3Nfc3BhY2UsIHZsYW4sIG1hYykKKworICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHtrZXkgICAgICAgICAgICAgOiBtYWMgKyAnfCcgKyB2bnMgKyAnfCcgKyBpZmFjZVsnbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaG9zdCcgICAgICAgICAgOiBob3N0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnbWFjJyAgICAgICAgICAgOiBtYWMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2bGFuJyAgICAgICAgICA6IHZsYW4sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdhZGRyZXNzLXNwYWNlJyA6IGFkZHJlc3Nfc3BhY2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpcHMnICAgICAgICAgICA6IGlwcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2F0dGFjaG1lbnQtcG9pbnRzJyA6IGFwcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZucycgICAgICAgICAgICAgICA6IHZucywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludGVyZmFjZScgICAgICAgICA6IHZucyArICd8JyArIGlmYWNlWyduYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdsYXN0LXNlZW4nICAgICAgICAgOiBkZXZpY2VfbGFzdF9zZWVufSkKKyAgICBlbGlmIG9ial90eXBlID09ICdzd2l0Y2hlcyc6CisgICAgICAgIHN3aXRjaF9tYXRjaCA9IGRhdGEuZ2V0KCdkcGlkJykKKyAgICAgICAgc3dpdGNoX3ByZWZpeCA9IGRhdGEuZ2V0KCdkcGlkX19zdGFydHN3aXRoJykKKworICAgICAgICAjIHRoaXMgc3ludGhldGljIG9ial90eXBlJ3MgbmFtZSBpcyAnc3dpdGNoZXMnIGluIGFuIGF0dGVtcHQKKyAgICAgICAgIyB0byBkaXNhYmlndXRhdGUgaXQgZnJvbSAnY2xhc3MgU3dpdGNoJworICAgICAgICAjVE9ETzogTmVlZCBmaWd1cmUgb3V0IGEgYmV0dGVyIHdheSB0byBnZXQgdXJsIChUaHJvdWdoIHNkbmNvbiBmcmFtZXdvcmspCisgICAgICAgIHVybCA9ICJodHRwOi8vJXMvcmVzdC92MS9tYXN0ZXJzaGlwIiAlIHNkbnNoLmNvbnRyb2xsZXIKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdWx0MiA9IHNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QodXJsKQorICAgICAgICAgICAgY2hlY2tfcmVzdF9yZXN1bHQocmVzdWx0MikKKyAgICAgICAgICAgIG1hc3RlcnNoaXBfZGF0YSA9IGpzb24ubG9hZHMocmVzdWx0MikKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICAgICAgcHJpbnQgImdldF9tb2RlbF9mcm9tX3VybDogZmFpbGVkIHJlcXVlc3QgJXM6ICclcyciICUgKHVybCwgZSkKKyAgICAgICAgICAgIGVudHJpZXMgPSBbXQorICAgICAgICBmb3IgZW50cnkgaW4gZW50cmllczoKKyAgICAgICAgICAgIGRwaWQgPSBlbnRyeS5nZXQoJ2RwaWQnKQorICAgICAgICAgICAgaWYoZHBpZCBpbiBtYXN0ZXJzaGlwX2RhdGEua2V5cygpKToKKyAgICAgICAgICAgICAgICAjQXMgdGhlcmUgaXMgb25seSBvbmUgbWFzdGVyIGZvciBzd2l0Y2gKKyAgICAgICAgICAgICAgICBjb250cm9sbGVyID0gbWFzdGVyc2hpcF9kYXRhW2RwaWRdWzBdLmdldCgnY29udHJvbGxlcklkJykKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgY29udHJvbGxlciA9IE5vbmUKKyAgICAgICAgICAgIGlmIHN3aXRjaF9tYXRjaCBhbmQgc3dpdGNoX21hdGNoICE9IGVudHJ5WydkcGlkJ106CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIHN3aXRjaF9wcmVmaXggYW5kIG5vdCBlbnRyeVsnZHBpZCddLnN0YXJ0c3dpdGgoc3dpdGNoX3ByZWZpeCk6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgIGlmIG9ub3MgPT0gMToKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHsKKyAgICAgICAgICAgICAgICAgICAnZHBpZCcgICAgICAgICAgICAgICAgOiBlbnRyeVsnZHBpZCddLAorICAgICAgICAgICAgICAgICAgICdzd2l0Y2gtYWxpYXMnICAgICAgICA6IGVudHJ5WydzdHJpbmdBdHRyaWJ1dGVzJ11bJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAnY29ubmVjdGVkLXNpbmNlJyAgICAgOiBlbnRyeVsnc3RyaW5nQXR0cmlidXRlcyddWydDb25uZWN0ZWRTaW5jZSddLAorICAgICAgICAgICAgICAgICAgICdpcC1hZGRyZXNzJyAgICAgICAgICA6IGVudHJ5WydzdHJpbmdBdHRyaWJ1dGVzJ11bJ3JlbW90ZUFkZHJlc3MnXSwKKyAgICAgICAgICAgICAgICAgICAndHlwZScgICAgICAgICAgICAgICAgOiBlbnRyeVsnc3RyaW5nQXR0cmlidXRlcyddWyd0eXBlJ10sCisgICAgICAgICAgICAgICAgICAgJ2NvbnRyb2xsZXInICAgICAgICAgIDogY29udHJvbGxlcgorICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGF0dHJzID0gZW50cnlbJ2F0dHJpYnV0ZXMnXQorICAgICAgICAgICAgICAgIGFjdGlvbnMgPSBlbnRyeVsnYWN0aW9ucyddCisgICAgICAgICAgICAgICAgY2FwYWJpbGl0aWVzID0gZW50cnlbJ2NhcGFiaWxpdGllcyddCisgICAgICAgICAgICAgICAgaW5ldF9hZGRyZXNzID0gZW50cnkuZ2V0KCdpbmV0QWRkcmVzcycpCisgICAgICAgICAgICAgICAgaXBfYWRkcmVzcyA9ICcnCisgICAgICAgICAgICAgICAgdGNwX3BvcnQgPSAnJworICAgICAgICAgICAgICAgIGlmIGluZXRfYWRkcmVzczoKKyAgICAgICAgICAgICAgICAgICAgIyBDdXJyZW50IEphdmEgdmFsdWUgbG9va3MgbGlrZTogLzE5Mi4xNjguMi4xMDQ6Mzg0MjAKKyAgICAgICAgICAgICAgICAgICAgaW5ldF9wYXJ0cyA9IGluZXRfYWRkcmVzcy5zcGxpdCgnOicpCisgICAgICAgICAgICAgICAgICAgIGlwX2FkZHJlc3MgPSBpbmV0X3BhcnRzWzBdWzE6XQorICAgICAgICAgICAgICAgICAgICB0Y3BfcG9ydCA9IGluZXRfcGFydHNbMV0KKyAgICAKKyAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHsKKyAgICAgICAgICAgICAgICAgICAnZHBpZCcgICAgICAgICAgICAgICAgOiBlbnRyeVsnZHBpZCddLAorICAgICAgICAgICAgICAgICAgICdjb25uZWN0ZWQtc2luY2UnICAgICA6IGVudHJ5Wydjb25uZWN0ZWRTaW5jZSddLAorICAgICAgICAgICAgICAgICAgICdpcC1hZGRyZXNzJyAgICAgICAgICA6IGlwX2FkZHJlc3MsCisgICAgICAgICAgICAgICAgICAgJ3RjcC1wb3J0JyAgICAgICAgICAgIDogdGNwX3BvcnQsCisgICAgICAgICAgICAgICAgICAgJ2FjdGlvbnMnICAgICAgICAgICAgIDogYWN0aW9ucywKKyAgICAgICAgICAgICAgICAgICAnY2FwYWJpbGl0aWVzJyAgICAgICAgOiBjYXBhYmlsaXRpZXMsCisgICAgICAgICAgICAgICAgICAgJ2RwLWRlc2MnICAgICAgICAgICAgIDogYXR0cnMuZ2V0KCdEZXNjcmlwdGlvbkRhdGEnLCAnJyksCisgICAgICAgICAgICAgICAgICAgJ2Zhc3Qtd2lsZGNhcmRzJyAgICAgIDogYXR0cnMuZ2V0KCdGYXN0V2lsZGNhcmRzJywgJycpLAorICAgICAgICAgICAgICAgICAgICdzdXBwb3J0cy1ueC1yb2xlJyAgICA6IGF0dHJzLmdldCgnc3VwcG9ydHNOeFJvbGUnLCAnJyksCisgICAgICAgICAgICAgICAgICAgJ3N1cHBvcnRzLW9mcHAtZmxvb2QnIDogYXR0cnMuZ2V0KCdzdXBwb3J0c09mcHBGbG9vZCcsICcnKSwKKyAgICAgICAgICAgICAgICAgICAnc3VwcG9ydHMtb2ZwcC10YWJsZScgOiBhdHRycy5nZXQoJ3N1cHBvcnRzT2ZwcFRhYmxlJywgJycpLAorICAgICAgICAgICAgICAgICAgICdjb3JlLXN3aXRjaCcgICAgICAgICA6IEZhbHNlLAorICAgICAgICAgICAgICAgIH0pCisgICAgICAgICMgbm93IGFkZCBzd2l0Y2gtY29uZmlnCisKKyAgICAgICAgc3dpdGNoX2NvbmZpZyA9IHNkbnNoLnJlc3RfcXVlcnlfb2JqZWN0cygnc3dpdGNoLWNvbmZpZycsIGRhdGEpCisgICAgICAgIGtub3duX2RwaWRzID0gZGljdChbW3hbJ2RwaWQnXSwgeF0gZm9yIHggaW4gcmVzdWx0XSkKKworICAgICAgICBpZiBvbm9zID09IDA6CisgICAgICAgICAgICBmb3Igc3cgaW4gc3dpdGNoX2NvbmZpZzoKKyAgICAgICAgICAgICAgICBkcGlkID0gc3dbJ2RwaWQnXQorICAgICAgICAgICAgICAgIGlmIG5vdCBkcGlkIGluIGtub3duX2RwaWRzOgorICAgICAgICAgICAgICAgICAgICAjIGJlIHNlbnNpdGl2ZSB0byBzZWFyY2ggZmllbGRzOgorICAgICAgICAgICAgICAgICAgICBxdWVyeV9tYXRjaCA9IFRydWUKKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKGRhdGEpOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChkLCBkdikgaW4gZGF0YS5pdGVtcygpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgb3RoZXIgb3BzIGFzaWRlIGZyb20gJz0nPworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGQuZW5kc3dpdGgoc3RhcnRzd2l0aCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZuID0gZFs6LWxlbihzdGFydHN3aXRoKV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm90IGZuIGluIHN3IG9yIG5vdCBzd1tmbl0uc3RhcnRzd2l0aChkdik6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeV9tYXRjaCA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiAobm90IGQgaW4gc3cpIG9yIGR2ICE9IHN3W2RdOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxdWVyeV9tYXRjaCA9IEZhbHNlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisgICAgCisgICAgICAgICAgICAgICAgICAgIGlmIHF1ZXJ5X21hdGNoOgorICAgICAgICAgICAgICAgICAgICAgICAgc3dbJ2lwLWFkZHJlc3MnXSA9ICcnCisgICAgICAgICAgICAgICAgICAgICAgICBzd1sndGNwLXBvcnQnXSA9ICcnCisgICAgICAgICAgICAgICAgICAgICAgICBzd1snY29ubmVjdGVkLXNpbmNlJ10gPSAnJworICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChzdykKKyAgICAgICAgICAgICAgICBbZHBpZF0udXBkYXRlKHN3KQorICAgIGVsaWYgb2JqX3R5cGUgPT0gJ2ludGVyZmFjZXMnOgorCisgICAgICAgICMgVGhlc2UgYXJlIGNhbGxlZCBpbnRlcmZhY2VzIGJlY2F1c2UgdGhlIHByaW1hcnkKKyAgICAgICAgIyBrZXkgaXMgY29uc3RydWN0ZWQgd2l0aCB0aGUgaW50ZXJmYWNlIG5hbWUsIG5vdAorICAgICAgICAjIHRoZSBwb3J0IG51bWJlci4KKworICAgICAgICAjIHRoZSAnc3dpdGNoZXMnIHF1ZXJ5IHRvIHNkbnBsYXRmb3JtIGN1cnJlbnRseQorICAgICAgICAjIGRvZXNuJ3Qgc3VwcG9ydCBzZWFyY2hpbmcgZm9yIHRoZSBpbnRlcmZhY2UKKyAgICAgICAgIyBuYW1lcy4gIGl0cyBkb25lIGhlcmUgaW5zdGVhZAorCisgICAgICAgIHN3aXRjaF9tYXRjaCA9IGRhdGEuZ2V0KCdkcGlkJykKKyAgICAgICAgc3dpdGNoX3ByZWZpeCA9IGRhdGEuZ2V0KCdkcGlkX19zdGFydHN3aXRoJykKKworICAgICAgICBuYW1lX21hdGNoID0gZGF0YS5nZXQoJ3BvcnROYW1lJykKKyAgICAgICAgaWYgbmFtZV9tYXRjaDoKKyAgICAgICAgICAgIG5hbWVfbWF0Y2ggPSBuYW1lX21hdGNoLmxvd2VyKCkKKyAgICAgICAgbmFtZV9wcmVmaXggPSBkYXRhLmdldCgncG9ydE5hbWVfX3N0YXJ0c3dpdGgnKQorICAgICAgICBpZiBuYW1lX3ByZWZpeDoKKyAgICAgICAgICAgIG5hbWVfcHJlZml4ID0gbmFtZV9wcmVmaXgubG93ZXIoKQorCisgICAgICAgICMgdGhpcyBzeW50aGV0aWMgb2JqX3R5cGUncyBuYW1lIGlzICdzd2l0Y2hlcycgaW4gYW4gYXR0ZW1wdAorICAgICAgICAjIHRvIGRpc2FiaWd1dGF0ZSBpdCBmcm9tICdjbGFzcyBTd2l0Y2gnCisgICAgICAgIGZvciBlbnRyeSBpbiBlbnRyaWVzOgorICAgICAgICAgICAgZHBpZCA9IGVudHJ5WydkcGlkJ10KKworICAgICAgICAgICAgaWYgc3dpdGNoX21hdGNoIGFuZCBzd2l0Y2hfbWF0Y2ggIT0gZHBpZDoKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgc3dpdGNoX3ByZWZpeCBhbmQgbm90IGRwaWQuc3RhcnRzd2l0aChzd2l0Y2hfcHJlZml4KToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICAgICBmb3IgcCBpbiBlbnRyeVsncG9ydHMnXToKKyAgICAgICAgICAgICAgICBwb3J0TnVtYmVyID0gcFsncG9ydE51bWJlciddCisgICAgICAgICAgICAgICAgaWYgb25vcyA9PSAwOgorICAgICAgICAgICAgICAgICAgICBuYW1lID0gcFsnbmFtZSddCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IHBbJ3N0cmluZ0F0dHJpYnV0ZXMnXVsnbmFtZSddCisKKyAgICAgICAgICAgICAgICBpZiBuYW1lX21hdGNoIGFuZCBuYW1lLmxvd2VyKCkgIT0gbmFtZV9tYXRjaDoKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiBuYW1lX3ByZWZpeCBhbmQgbm90IG5hbWUubG93ZXIoKS5zdGFydHN3aXRoKG5hbWVfcHJlZml4KToKKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBpZiBvbm9zID09IDA6CisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoeworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJyAgICAgICAgICAgICAgICAgOiAnJXN8JXMnICUgKGRwaWQsbmFtZSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9ydE51bWJlcicgICAgICAgICA6IHBvcnROdW1iZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3dpdGNoJyAgICAgICAgICAgICA6IGRwaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncG9ydE5hbWUnICAgICAgICAgICA6IHBbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb25maWcnICAgICAgICAgICAgIDogcFsnY29uZmlnJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdGUnICAgICAgICAgICAgICA6IHBbJ3N0YXRlJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnYWR2ZXJ0aXNlZEZlYXR1cmVzJyA6IHBbJ2FkdmVydGlzZWRGZWF0dXJlcyddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnRGZWF0dXJlcycgICAgOiBwWydjdXJyZW50RmVhdHVyZXMnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdoYXJkd2FyZUFkZHJlc3MnICAgIDogcFsnaGFyZHdhcmVBZGRyZXNzJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpZCcgICAgICAgICAgICAgICAgIDogJyVzfCVzJyAlIChkcGlkLG5hbWUpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcnROdW1iZXInICAgICAgICAgOiBwb3J0TnVtYmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N3aXRjaCcgICAgICAgICAgICAgOiBkcGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3BvcnROYW1lJyAgICAgICAgICAgOiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmZpZycgICAgICAgICAgICAgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N0YXRlJyAgICAgICAgICAgICAgOiBwWydzdGF0ZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2FkdmVydGlzZWRGZWF0dXJlcycgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2N1cnJlbnRGZWF0dXJlcycgICAgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hhcmR3YXJlQWRkcmVzcycgICAgOiAwLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgCisKKyAgICAjCisgICAgIyBvcmRlciB0aGUgcmVzdWx0CisgICAgaWYgc29ydDoKKyAgICAgICAgaWYgc29ydFswXSA9PSAnLSc6CisgICAgICAgICAgICBzb3J0ID0gc29ydFsxOl0KKyAgICAgICAgICAgICMgZGVjcmVhc2luZworICAgICAgICAgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgICAgICAgICBwcmludCAiZ2V0X21vZGVsX2Zyb21fdXJsOiBvcmRlciBkZWNyZWFzaW5nICIsIHNvcnQKKyAgICAgICAgICAgIHJlc3VsdCA9IHNvcnRlZChyZXN1bHQsIGtleT1sYW1iZGEgazprLmdldChzb3J0LCAnJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbXA9bGFtYmRhIHgseSA6IGNtcCh5LHgpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgIyBpbmNyZWFzaW5nCisgICAgICAgICAgICBpZiBzZG5zaC5kZXNjcmlwdGlvbjogICAjIGRlc2NyaXB0aW9uIGRlYnVnZ2luZworICAgICAgICAgICAgICAgIHByaW50ICJnZXRfbW9kZWxfZnJvbV91cmw6IG9yZGVyIGluY3JlYXNpbmcgIiwgc29ydAorICAgICAgICAgICAgcmVzdWx0ID0gc29ydGVkKHJlc3VsdCwga2V5PWxhbWJkYSBrOmsuZ2V0KHNvcnQsICcnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtcD1sYW1iZGEgeCx5IDogY21wKHgseSkpCisgICAgZWxzZToKKyAgICAgICAgIyB1c2UgdGFpbC1pbnRlZ2VyIG9uIHRoZSBlbnRyaWVzCisgICAgICAgIGlmIHNkbnNoLmRlc2NyaXB0aW9uOiAgICMgZGVzY3JpcHRpb24gZGVidWdnaW5nCisgICAgICAgICAgICBwcmludCAiZ2V0X21vZGVsX2Zyb21fdXJsOiBwayBvcmRlcmluZyAiLCBrZXkKKyAgICAgICAgZGVmIHNvcnRfY21wKHgseSk6CisgICAgICAgICAgICBmb3IgKGlkeCwgeF92KSBpbiBlbnVtZXJhdGUoeCk6CisgICAgICAgICAgICAgICAgYyA9IGNtcCh1dGlmLnRyeV9pbnQoeF92KSwgdXRpZi50cnlfaW50KHlbaWR4XSkpCisgICAgICAgICAgICAgICAgaWYgYyAhPSAwOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gYworICAgICAgICAgICAgcmV0dXJuIDAKKyAgICAgICAgcmVzdWx0ID0gc29ydGVkKHJlc3VsdCwga2V5PWxhbWJkYSBrOmsuZ2V0KGtleSwgJycpLnNwbGl0KCd8JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNtcD1sYW1iZGEgeCx5IDogY21wKHV0aWYudHJ5X2ludCh4KSx1dGlmLnRyeV9pbnQoeSkpKQorCisgICAgaWYgc2Ruc2guZGVzY3JpcHRpb246ICAgIyBkZXNjcmlwdGlvbiBkZWJ1Z2dpbmcKKyAgICAgICAgcHJpbnQgImdldF9tb2RlbF9mcm9tX3VybDogcmVzdWx0ICIsIG9ial90eXBlLCB1cmwsIGxlbihyZXN1bHQpCisKKyAgICByZXR1cm4gcmVzdWx0CisKKworZGVmIHZhbGlkYXRlX3N3aXRjaCgpOgorICAgICIiIgorICAgIElmIC9yZXN0L3YxL3N3aXRjaGVzIGlzIGNhY2hlZCwgcGVyZm9ybSBzb21lIHZhbGlkYXRpb25zIG9uIGl0LgorCisgICAgLS0gdmVyaWZ5IHRoYXQgdGhlIGFubm91bmNlZCBpbnRlcmZhY2VzIG5hbWVzIGFyZSBjYXNlIGluc2Vuc2l0aXZlCisgICAgLS0gdmVyaWZ5IHRoZSBuYW1lcyBvbmx5IGFwcGVhciBvbmNlCisgICAgIiIiCisKKyAgICBkZWYgZHVwbGljYXRlX3BvcnQoZW50cnksIG5hbWUpOgorICAgICAgICBkcGlkID0gZW50cnlbJ2RwaWQnXQorCisgICAgICAgIHByaW50ICdXYXJuaW5nOiBzd2l0Y2ggJXMgZHVwbGljYXRlIGludGVyZmFjZSBuYW1lczogJXMnICUgKGRwaWQsIG5hbWUpCisgICAgICAgIGlmIHNkbnNoLmRlYnVnX2JhY2t0cmFjZToKKyAgICAgICAgICAgIGZvciBwb3J0IGluIGVudHJ5Wydwb3J0cyddOgorICAgICAgICAgICAgICAgIGlmIHBvcnRbJ25hbWUnXSA9PSBuYW1lOgorICAgICAgICAgICAgICAgICAgICBwcmludCAnU1dUSUNIICVzOiVzIFBPUlQgJXMnICUgIChlbnRyeSwgbmFtZSwgcG9ydCkKKworICAgIGRlZiBub3RfY2FzZV9zZW5zaXRpdmUoZW50cnksIG5hbWUpOgorICAgICAgICBkcGlkID0gZW50cnlbJ2RwaWQnXQorCisgICAgICAgIHBvcnRzID0ge30KKyAgICAgICAgZm9yIHBvcnQgaW4gZW50cnlbJ3BvcnRzJ106CisgICAgICAgICAgICBpZiBwb3J0WyduYW1lJ10ubG93ZXIoKSA9PSBuYW1lOgorICAgICAgICAgICAgICAgIHBvcnRzW3BvcnRbJ25hbWUnXV0gPSBwb3J0CisgICAgICAgICAgICAKKyAgICAgICAgcHJpbnQgJ1dhcm5pbmc6IHN3aXRjaCAlcyBjYXNlIGluc2VudGl2ZSBpbnRlcmZhY2UgbmFtZXM6ICVzJyAlIFwKKyAgICAgICAgICAgICAgIChkcGlkLCAnIC0gJy5qb2luKHBvcnRzLmtleXMoKSkpCisgICAgICAgIGlmIHNkbnNoLmRlYnVnX2JhY2t0cmFjZToKKyAgICAgICAgICAgIGZvciBwb3J0IGluIHBvcnRzOgorICAgICAgICAgICAgICAgIHByaW50ICdTV1RJQ0ggJXMgUE9SVCAlcycgJSAoZHBpZCwgcG9ydCkKKworICAgIHVybCA9ICJodHRwOi8vJXMvcmVzdC92MS9zd2l0Y2hlcyIgJSBzZG5zaC5jb250cm9sbGVyCisgICAgZW50cmllcyA9IHVybF9jYWNoZS5nZXRfY2FjaGVkX3VybCh1cmwpCisgICAgaWYgZW50cmllczoKKyAgICAgICAgZm9yIGVudHJ5IGluIGVudHJpZXM6CisgICAgICAgICAgICBkcGlkID0gZW50cnlbJ2RwaWQnXQorCisgICAgICAgICAgICAjIHZlcmlmeSB0aGF0IHRoZSBwb3J0IG5hbWVzIGFyZSB1bmlxdWUgZXZlbiB3aGVuIGNhc2UKKyAgICAgICAgICAgICMgc2Vuc2l0aXZlCisgICAgICAgICAgICBhbGxfbmFtZXMgPSBbcFsnbmFtZSddIGZvciBwIGluIGVudHJ5Wydwb3J0cyddXQorICAgICAgICAgICAgb25lX2Nhc2VfbmFtZXMgPSB1dGlmLnVuaXF1ZV9saXN0X2Zyb21fbGlzdChbeC5sb3dlcigpIGZvciB4IGluIGFsbF9uYW1lc10pCisgICAgICAgICAgICBpZiBsZW4oYWxsX25hbWVzKSAhPSBsZW4ob25lX2Nhc2VfbmFtZXMpOgorICAgICAgICAgICAgICAgICMgU29tZXRoaW5nIGlzIHJvdHRlbiwgZmluZCBvdXQgd2hhdC4KKyAgICAgICAgICAgICAgICBmb3IgKGksIHBvcnRfbmFtZSkgaW4gZW51bWVyYXRlKGFsbF9uYW1lcyk6CisgICAgICAgICAgICAgICAgICAgICMgdXNlIGVudW1lcmF0ZSB0byBkcml2ZSB1cHBlci10cmlhbmdsZSBjb21wYXJpc29uCisgICAgICAgICAgICAgICAgICAgIGZvciBvdGhlcl9uYW1lIGluIGFsbF9uYW1lc1tpKzE6XToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHBvcnRfbmFtZSA9PSBvdGhlcl9uYW1lOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cGxpY2F0ZV9wb3J0KGVudHJ5LCBwb3J0X25hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIHBvcnRfbmFtZS5sb3dlcigpID09IG90aGVyX25hbWUubG93ZXIoKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3RfY2FzZV9zZW5zaXRpdmUoZW50cnksIHBvcnRfbmFtZSkKKyAgICAgICAgICAgICAgICAgICAgCisKZGlmZiAtLWdpdCBhL2NsaS9ydW5fY29uZmlnLnB5IGIvY2xpL3J1bl9jb25maWcucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTNmYzgwYwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9ydW5fY29uZmlnLnB5CkBAIC0wLDAgKzEsMTA5NiBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTIsMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworIyAgc2Ruc2ggLSBUaGUgQ29udHJvbGxlciBTaGVsbAorCisjCisjIHNob3cgcnVubmluZy1jb25maWcKKyMgIGFuZCBhc3NvY2lhdGVkCisjCisKK2ltcG9ydCBkYXRldGltZQoraW1wb3J0IHJlCitpbXBvcnQgdXRpZgoraW1wb3J0IG1vZGkKKworZnJvbSBtaWR3IGltcG9ydCAqCitmcm9tIHZuc3cgaW1wb3J0ICoKKworCitkZWYgaW5pdF9ydW5uaW5nX2NvbmZpZyhicywgbW9kaSk6CisgICAgZ2xvYmFsIHNkbnNoLCBtaQorICAgIHNkbnNoID0gYnMKKyAgICBtaSA9IG1vZGkKKworCitydW5uaW5nX2NvbmZpZ19yZWdpc3RyeSA9IHt9CisKK3J1bm5pbmdfY29uZmlnX2NvbW1hbmRfY2hvaWNlcyA9IHsKKyAgICAnb3B0aW9uYWwnIDogVHJ1ZSwKKyAgICAnY2hvaWNlcycgIDogKAorICAgICkKK30KKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgcmVnaXN0ZXJfcnVubmluZ19jb25maWcobmFtZSwgb3JkZXIsIGZlYXR1cmUsIHJ1bm5pbmdfY29uZmlnX3Byb2MsIGNvbW1hbmRfdHVwbGUgPSBOb25lKToKKyAgICAiIiIKKyAgICBSZWdpc3RlciBhIGNhbGxiYWNrIHRvIG1hbmFnZSB0aGUgZGlzcGxheSBvZiBjb21wb25lbnQgcnVubmluZyBjb25maWdzCisKKyAgICBAZmVhdHVyZSBhIHByZWRpY2F0ZSB0byBjYWxsLCByZXR1cm5zIFRydWUvRmFsc2UgdG8gZW5hYmxlL2Rpc2FibGUgdGhpcyBlbnRyeQorICAgICIiIgorICAgIHJ1bm5pbmdfY29uZmlnX3JlZ2lzdHJ5W25hbWVdID0geyAnb3JkZXInICAgOiBvcmRlciwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ZlYXR1cmUnIDogZmVhdHVyZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Byb2MnICAgIDogcnVubmluZ19jb25maWdfcHJvYyB9CisgICAgaWYgY29tbWFuZF90dXBsZToKKyAgICAgICAgZ2xvYmFsIHJ1bm5pbmdfY29uZmlnX2NvbW1hbmRfY2hvaWNlcworICAgICAgICBydW5uaW5nX2NvbmZpZ19jb21tYW5kX2Nob2ljZXNbJ2Nob2ljZXMnXSArPSBjb21tYW5kX3R1cGxlCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIHJlZ2lzdHJ5X2l0ZW1zX2VuYWJsZWQoKToKKyAgICAiIiIKKyAgICBSZXR1cm4gYSBsaXN0IG9mIGFjdGl2ZSBydW5uaW5nIGNvbmZpZyBlbnRyaWVzLCB0aGlzIGlzIGEgc3Vic2V0IG9mCisgICAgdGhlIHJlZ2lzdGVyZWQgaXRlbXMsIG9ubHkgaXRlbXMgd2hpY2ggYXJlIGN1cnJlbnRseSBlbmFibGVkIHZpYSBmZWF0dXJlcworICAgICIiIgorICAgIHJldHVybiBbbmFtZSBmb3IgbmFtZSBpbiBydW5uaW5nX2NvbmZpZ19yZWdpc3RyeS5rZXlzKCkKKyAgICAgICAgICAgIGlmIHJ1bm5pbmdfY29uZmlnX3JlZ2lzdHJ5W25hbWVdWydmZWF0dXJlJ10gPT0gTm9uZSBvcgorICAgICAgICAgICAgICAgcnVubmluZ19jb25maWdfcmVnaXN0cnlbbmFtZV1bJ2ZlYXR1cmUnXShzZG5zaCkgPT0gVHJ1ZV0KKworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBwZXJmb3JtX3J1bm5pbmdfY29uZmlnKG5hbWUsIGNvbnRleHQsIGNvbmZpZywgd29yZHMpOgorICAgICIiIgorICAgIENhbGxvdXQgdG8gYXBwZW5kIHRvIGNvbmZpZworICAgICIiIgorICAgIGlmIG5hbWUgaW4gcnVubmluZ19jb25maWdfcmVnaXN0cnk6CisgICAgICAgIHJ1bm5pbmdfY29uZmlnX3JlZ2lzdHJ5W25hbWVdWydwcm9jJ10oY29udGV4dCwgY29uZmlnLCB3b3JkcykKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgcnVubmluZ19jb25maWdfaW5jbHVkZV9hbGlhcyhjb25maWcsIGluZGVudCwgb2JqX3R5cGUsIGtleSk6CisgICAgIiIiCisgICAgR2l2ZW4gYW4gb2JqX3R5cGUgYW5kIGFuIGlkLCBhZGQgdGhlIGFsaWFzIGZvciB0aGlzIG9ial90eXBlCisgICAgdG8gdGhlIGNvbmZpZy4KKworICAgIFRoZSB0YWJsZSBsb29rdXAgaXMgYSBiaXQgZGlmZmljdWx0IHRvIHVuZGVyc3RhbmQ7IGtlZXAgaW4KKyAgICBtaW5kLCBmb3IgZXhhbXBsZSwgdGhlICdob3N0LWFsaWFzJyB0YWJsZSBoYXMgYSBwcmltYXJ5CisgICAga2V5IGNhbGxlZCBpZCwgYW5kIGEgZm9yZWlnbiBrZXkgY2FsbGVkICdob3N0Jy4KKworICAgIFJldHVybiBGYWxzZSBpZiBubyBhbGlhcyBleGlzdHMsIGFuZCBUcnVlIHdoZW4gb25lIHdhcyBhZGRlZCB0byAnY29uZmlnJworICAgICIiIgorICAgIGlmIG9ial90eXBlIGluIG1pLmFsaWFzX29ial90eXBlX3hyZWY6CisgICAgICAgIGZvciBhbGlhcyBpbiBtaS5hbGlhc19vYmpfdHlwZV94cmVmW29ial90eXBlXToKKyAgICAgICAgICAgIGZpZWxkID0gbWkuYWxpYXNfb2JqX3R5cGVfZmllbGQoYWxpYXMpCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgcm93ID0gc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoYWxpYXMsIGZpZWxkLCBrZXkpCisgICAgICAgICAgICBleGNlcHQ6CisgICAgICAgICAgICAgICAgcm93ID0gW10KKworICAgICAgICAgICAgaWYgbGVuKHJvdykgPiAxOgorICAgICAgICAgICAgICAgIHNkbnNoLndhcm5pbmcoJyVzICVzOiBhbGlhcyBjb3VudCA+IDEnICUgKGFsaWFzLCBrZXkpKQorICAgICAgICAgICAgZWxpZiBsZW4ocm93KSA9PSAxOgorICAgICAgICAgICAgICAgIGNvbmZpZy5hcHBlbmQoIiVzJXMgJXNcbiIgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCcgICcgKiBpbmRlbnQsIGFsaWFzLCByb3dbMF1bJ2lkJ10pKQorCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIG5vdF9kZWZhdWx0X3ZhbHVlKG9ial90eXBlLCBmaWVsZCwgdmFsdWUpOgorICAgICIiIgorICAgIFJldHVybiBUcnVlIHdoZW4gdGhlIHZhbHVlIHBhc3NlZCBpbiBpcyBub3QgdGhlIGRlZmF1bHQgdmFsdWUuCisgICAgIiIiCisgICAgZGVmYXVsdF92YWx1ZSA9IG1pLmZpZWxkX2RlZmF1bHRfdmFsdWUob2JqX3R5cGUsIGZpZWxkKQorICAgIGlmIChtaS5pc19udWxsX2FsbG93ZWQob2JqX3R5cGUsIGZpZWxkKSBhbmQgdmFsdWUgIT0gTm9uZSkgb3IgXAorICAgICAgKG5vdCBtaS5pc19udWxsX2FsbG93ZWQob2JqX3R5cGUsIGZpZWxkKSBhbmQgZGVmYXVsdF92YWx1ZSAhPSBOb25lCisgICAgICBhbmQgKGRlZmF1bHRfdmFsdWUgIT0gdmFsdWUpKToKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICByZXR1cm4gRmFsc2UKKworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBydW5uaW5nX2NvbmZpZ19pbmNsdWRlX2ZpZWxkKGNvbmZpZywgb2JqX3R5cGUsIGZpZWxkLCB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZGVudCwgcHJlZml4ID0gIiIpOgorICAgICIiIgorICAgIElkZW50aWZ5IGZpZWxkcyBvZiBvYmpfdHlwZXMgd2hvJ3MgdmFsdWVzIGRpZmZlciBmcm9tIHRoZSBkZWZhdWx0CisgICAgdmFsdWVzLCBzaW5jZSB0aGVzZSBuZWVkIHRvIGJlIGluY2x1ZGVkIGludG8gdGhlIHJ1bm5pbmctY29uZmlnCisgICAgIiIiCisgICAgaWYgbWkubm90X2RlZmF1bHRfdmFsdWUob2JqX3R5cGUsIGZpZWxkLCB2YWx1ZSk6CisgICAgICAgICMKKyAgICAgICAgaWYgbWkuaXNfZmllbGRfc3RyaW5nKG9ial90eXBlLCBmaWVsZCk6CisgICAgICAgICAgICBjb25maWcuYXBwZW5kKCcgJyAqIChpbmRlbnQgKyBpbmRlbnQpICsgcHJlZml4ICsgZmllbGQgKworICAgICAgICAgICAgICAgICAgICAgICAgICAiICVzXG4iICUgdXRpZi5xdW90ZV9zdHJpbmcodmFsdWUpKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgY29uZmlnLmFwcGVuZCgnICcgKiAoaW5kZW50ICsgaW5kZW50KSArIHByZWZpeCArIGZpZWxkICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJyAlc1xuJyAlIHZhbHVlKQorCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIHJ1bm5pbmdfY29uZmlnX3Zuc19hY2woY29uZmlnLCB2bnNfbmFtZSwgYWNsLCB2bnNfYWNsX2VudHJpZXMsaW5kZW50PTApOgorICAgICIiIgorICAgIGZhY3RvcmVkIG91dCBkdWUgdG8gZXhjZXNzaXZlIGluZGVudCBsZXZlbCBpbiBkb19zaG93X3J1bm5pbmdfY29uZmlnCisgICAgYW5kIHRvIGFsbG93IHJlLXVzZSBpbiAnc2hvdyB2bnMgPG4+IHJ1bm5pbmctY29uZmlnJworICAgICIiIgorICAgIGtleSA9IG1pLnBrKCd2bnMtYWNjZXNzLWxpc3QnKQorCisgICAgY29uZmlnLmFwcGVuZCgnICcgKjIqaW5kZW50ICsgJ2FjY2Vzcy1saXN0ICVzXG4nICUgYWNsWyduYW1lJ10pCisKKyAgICAjCisgICAgdm5zX2FjbF9maWVsZHMgPSBbJ3ByaW9yaXR5JywgJ2Rlc2NyaXB0aW9uJ10KKyAgICBmb3IgZmllbGQgaW4gdm5zX2FjbF9maWVsZHM6CisgICAgICAgIHJ1bm5pbmdfY29uZmlnX2luY2x1ZGVfZmllbGQoY29uZmlnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2bnMtYWNjZXNzLWxpc3QnLCBmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2wuZ2V0KGZpZWxkLCAnJyksIGluZGVudCsxKQorCisgICAgdm5zX2FjbF9lbnRyaWVzID0gc29ydGVkKHZuc19hY2xfZW50cmllcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY21wPWxhbWJkYSB4LHk6IGludCh4WydydWxlJ10pIC0gaW50KHlbJ3J1bGUnXSkpCisKKyAgICBmb3IgYWNsX2VudHJ5IGluIHZuc19hY2xfZW50cmllczoKKyAgICAgICAgY29uZmlnLmFwcGVuZCgnICcgKjIqKGluZGVudCsxKSArICclcyAlcyAlcyAlc1xuJyAlICgKKyAgICAgICAgICAgICAgICAgICAgICBhY2xfZW50cnlbJ3J1bGUnXSwKKyAgICAgICAgICAgICAgICAgICAgICBhY2xfZW50cnlbJ2FjdGlvbiddLAorICAgICAgICAgICAgICAgICAgICAgIGFjbF9lbnRyeVsndHlwZSddLAorICAgICAgICAgICAgICAgICAgICAgIHZuc19hY2xfZW50cnlfdG9fdGV4dChhY2xfZW50cnkpKSkKKworCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIHJ1bm5pbmdfY29uZmlnX3Zuc19pZl9ydWxlKGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bnNfaWZfcnVsZV9lbnRyaWVzLGluZGVudD0wKToKKyAgICAiIiIKKyAgICBmYWN0b3JlZCBvdXQgZHVlIHRvIGV4Y2Vzc2l2ZSBpbmRlbnQgbGV2ZWwgaW4gZG9fc2hvd19ydW5uaW5nX2NvbmZpZworICAgIGFuZCB0byBhbGxvdyByZS11c2UgaW4gJ3Nob3cgdm5zIDxuPiBydW5uaW5nLWNvbmZpZycKKworICAgICd2bnNfaWZfcnVsZV9lbnRyaWVzJyBhcmUgYWxsIHRoZSBlbnRyaWVzIHRvIGNvbmNhdGVuYXRlIHRvIHRoZSBjb25maQorICAgICIiIgorICAgIGZvciBydWxlIGluIHZuc19pZl9ydWxlX2VudHJpZXM6CisgICAgICAgIGNvbmZpZy5hcHBlbmQoJyAnICoyKmluZGVudCArJ2ludGVyZmFjZS1ydWxlICVzXG4nICUgcnVsZVsncnVsZSddKQorCisgICAgICAgICMKKyAgICAgICAgIyBtaS5vYmpfdHlwZV9jb25maWdfZmllbGRzKCd2bnMtaW50ZXJmYWNlLXJ1bGUnKSBpc24ndCB1c2VkCisgICAgICAgICMgaGVyZSBzaW5jZSBzd2l0Y2gvcG9ydCBpcyBjb2xsZWN0ZWQgdG9nZXRoZXIgKG1hbmFnZWQgdG9nZXRoZXIpCisgICAgICAgIGZvciBmaWVsZCBpbiBbJ2Rlc2NyaXB0aW9uJywgJ2FjdGl2ZScsICdwcmlvcml0eScsIF06CisgICAgICAgICAgICBydW5uaW5nX2NvbmZpZ19pbmNsdWRlX2ZpZWxkKGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Zucy1pbnRlcmZhY2UtcnVsZScsIGZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlLmdldChmaWVsZCwgJycpLCBpbmRlbnQrMSwpCisKKyAgICAgICAgZm9yIGZpZWxkIGluIFsgJ21hYycsICdpcC1zdWJuZXQnLCAndmxhbnMnLCAndGFncyddOgorICAgICAgICAgICAgcnVubmluZ19jb25maWdfaW5jbHVkZV9maWVsZChjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd2bnMtaW50ZXJmYWNlLXJ1bGUnLCBmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZS5nZXQoZmllbGQsICcnKSwgaW5kZW50KzEsICdtYXRjaCAnKQorICAgICAgICBpZiBydWxlLmdldCgnYWxsb3ctbXVsdGlwbGUnLCBGYWxzZSk6CisgICAgICAgICAgICBjb25maWcuYXBwZW5kKCcgJyAqIDIqKGluZGVudCsxKSArICdhbGxvdy1tdWx0aXBsZVxuJyk7CisgICAgICAgIGlmIHJ1bGUuZ2V0KCd2bGFuLXRhZy1vbi1lZ3Jlc3MnLCBGYWxzZSk6CisgICAgICAgICAgICBjb25maWcuYXBwZW5kKCcgJyAqIDIqKGluZGVudCsxKSArICd2bGFuLXRhZy1vbi1lZ3Jlc3NcbicpOworCisgICAgICAgICMKKyAgICAgICAgIyBNYW5hZ2Ugc3dpdGNoIGFuZCBwb3J0cyBkaWZmZXJlbnRseSwgcGxhY2luZyBib3RoIG9uIHRoZQorICAgICAgICAjIHNhbWUgbGluZSB3aGVuIHBvcnRzIGV4aXN0LCBhbmQgcmVwbGFjaW5nIHRoZSBzd2l0Y2ggYWxpYXMKKyAgICAgICAgIyB3aGVuIGl0cyBhdmFpbGFibGUuCisgICAgICAgIGlmICdzd2l0Y2gnIGluIHJ1bGU6CisgICAgICAgICAgICBkcGlkX29yX2FsaWFzID0gYWxpYXNfbG9va3VwX3dpdGhfZm9yZWlnbl9rZXkoJ3N3aXRjaC1hbGlhcycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcnVsZVsnc3dpdGNoJ10pCisgICAgICAgICAgICBpZiBkcGlkX29yX2FsaWFzID09IE5vbmU6CisgICAgICAgICAgICAgICAgZHBpZF9vcl9hbGlhcyA9IHJ1bGVbJ3N3aXRjaCddICMgZHBpZAorICAgICAgICAgICAgaWYgJ3BvcnRzJyBpbiBydWxlOgorICAgICAgICAgICAgICAgIGNvbmZpZy5hcHBlbmQoJyAnICoyKihpbmRlbnQrMSkgKyAnbWF0Y2ggc3dpdGNoICVzICVzXG4nICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGRwaWRfb3JfYWxpYXMsIHJ1bGVbJ3BvcnRzJ10pKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBjb25maWcuYXBwZW5kKCcgJyAqMiooaW5kZW50KzEpICsgJ21hdGNoIHN3aXRjaCAlc1xuJyAlIGRwaWRfb3JfYWxpYXMpCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIHJ1bm5pbmdfY29uZmlnX2FjdGl2ZV92bnNfaW50ZXJmYWNlcyh2bnNfbmFtZSwgdm5zX2ludGVyZmFjZV9hY2wpOgorICAgICIiIgorICAgIFJldHVybiBhIGxpc3Qgb2YgaW50ZXJmYWNlcyB3aGljaCBoYXZlIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gbmVlZGluZworICAgIHRvIGJlIHNhdmVkCisgICAgIiIiCisgICAgYWN0aXZlID0ge30KKyAgICBrZXkgPSBtaS5waygndm5zLWludGVyZmFjZS1hY2Nlc3MtbGlzdCcpCisKKyAgICBmb3IgaWZfYWNsIGluIHZuc19pbnRlcmZhY2VfYWNsOgorICAgICAgICBpZF9maWVsZHMgPSBpZl9hY2xba2V5XS5zcGxpdCgnfCcpCisgICAgICAgIHZuc19pZD0gaWRfZmllbGRzWzBdICsnfCcgKyBpZF9maWVsZHNbMV0KKyAgICAgICAgaWYgdm5zX2lkID09IHZuc19uYW1lOgorICAgICAgICAgICAgYWN0aXZlW2lkX2ZpZWxkc1syXV0gPSBOb25lCisKKyAgICByZXR1cm4gYWN0aXZlLmtleXMoKQorIworIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjCitkZWYgcnVubmluZ19jb25maWdfdGVuYW50X2RldGFpbHMoY29uZmlnLCB0ZW5hbnQpOgorICAgICIiIgorICAgIERpc3BsYXkgdGhlIGRldGFpbHMgZm9yIHRoZSBmaWVsZHMgb2YgYSB0ZW5hbnQgd2hpY2ggbWF5IGhhdmUKKyAgICBub24tZGVmYXVsdCB2YWx1ZXMuCisgICAgIiIiCisgICAgaWYgdGVuYW50WydhY3RpdmUnXSAhPSBtaS5maWVsZF9kZWZhdWx0X3ZhbHVlKCd0ZW5hbnQnLCAnYWN0aXZlJyk6CisgICAgICAgIGNvbmZpZy5hcHBlbmQoJ25vIGFjdGl2ZVxuJykKKyAgICAjIG1pLm9ial90eXBlX2NvbmZpZ19maWVsZHMoJ3Zucy1kZWZpbml0aW9uJykgb25seSBzaG93cyBmaWVsZHMgd2hpY2ggYXJlCisgICAgIyB1c2VyIGVkaXRhYmxlLCB3aGljaCBpcyBub25lLCBzaW5jZSBvbmx5IHRoZSBjb21tYW5kIGRlc2NyaXB0aW9ucyAKKyAgICAjIG1vZGlmeSB0aGUgZmllbGRzLiAgWFhYIGZ1bmMgd2hpY2ggcmV0dXJucyBmaWVsZHMgd2hpY2ggY2FuIGJlIHVwZGF0ZWQKKyAgICAjIHZpYSBjb21tYW5kIGRlc2NyaXB0aW9ucz8KKyAgICB0ZW5hbnRfZmllbGRzID0gWydkZXNjcmlwdGlvbicsICdvcmlnaW4nXQorCisgICAgZm9yIGZpZWxkIGluIHNvcnRlZCh0ZW5hbnRfZmllbGRzKToKKyAgICAgICAgcnVubmluZ19jb25maWdfaW5jbHVkZV9maWVsZChjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3RlbmFudCcsIGZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbmFudC5nZXQoZmllbGQsJycpLCAxKQorCisjCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMKK2RlZiBydW5uaW5nX2NvbmZpZ190ZW5hbnRfcm91dGVyX2RldGFpbHMoY29uZmlnLCB2cm91dGVyLGluZGVudD0wKToKKyAgICAiIiIKKyAgICBEaXNwbGF5IHRoZSBkZXRhaWxzIGZvciB0aGUgZmllbGRzIG9mIGEgdnJvdXRlciB3aGljaCBtYXkgaGF2ZQorICAgIG5vbi1kZWZhdWx0IHZhbHVlcy4KKyAgICAiIiIKKyAgICB2cm91dGVyX2ZpZWxkcyA9IFsnZGVzY3JpcHRpb24nLCAnb3JpZ2luJ10KKworICAgIGZvciBmaWVsZCBpbiBzb3J0ZWQodnJvdXRlcl9maWVsZHMpOgorICAgICAgICBydW5uaW5nX2NvbmZpZ19pbmNsdWRlX2ZpZWxkKGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndmlydHVhbHJvdXRlcicsIGZpZWxkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZyb3V0ZXIuZ2V0KGZpZWxkLCcnKSwgaW5kZW50KzEpCisKKyMKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIworZGVmIHJ1bm5pbmdfY29uZmlnX3JvdXRlcl9pbnRlcmZhY2VfZGV0YWlscyhjb25maWcsIHZyX2ludGVyZmFjZSwgaW5kZW50PTApOgorICAgICIiIgorICAgIERpc3BsYXkgdGhlIGRldGFpbHMgZm9yIHRoZSBmaWVsZHMgb2YgYSByb3V0ZXIgaW50ZXJmYWNlIHdoaWNoIG1heSBoYXZlCisgICAgbm9uLWRlZmF1bHQgdmFsdWVzLgorICAgICIiIgorICAgIGlmICd2bnMtY29ubmVjdGVkJyBpbiB2cl9pbnRlcmZhY2UgYW5kIHZyX2ludGVyZmFjZVsndm5zLWNvbm5lY3RlZCddIGlzIG5vdCBOb25lOgorICAgICAgICB2bnM9dnJfaW50ZXJmYWNlWyd2bnMtY29ubmVjdGVkJ10uc3BsaXQoJ3wnKQorICAgICAgICB2bnNfbmFtZT12bnNbMV0KKyAgICAgICAgY29uZmlnLmFwcGVuZCgnICcgKjIqaW5kZW50ICsgJ2ludGVyZmFjZSAlcyB2bnMgJXMgXG4nICUgKHZyX2ludGVyZmFjZVsndnJpbmFtZSddLHZuc19uYW1lKSkKKyAgICBlbGlmICdyb3V0ZXItY29ubmVjdGVkJyBpbiB2cl9pbnRlcmZhY2UgYW5kIHZyX2ludGVyZmFjZVsncm91dGVyLWNvbm5lY3RlZCddIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgcm91dGVyPXZyX2ludGVyZmFjZVsncm91dGVyLWNvbm5lY3RlZCddLnNwbGl0KCd8JykKKyAgICAgICAgICAgIHRlbmFudF9uYW1lPXJvdXRlclswXQorICAgICAgICAgICAgcm91dGVyX25hbWU9cm91dGVyWzFdCisgICAgICAgICAgICBjb25maWcuYXBwZW5kKCcgJyAqMippbmRlbnQgKydpbnRlcmZhY2UgJXMgdGVuYW50ICVzICVzIFxuJyAlICh2cl9pbnRlcmZhY2VbJ3ZyaW5hbWUnXSx0ZW5hbnRfbmFtZSwgcm91dGVyX25hbWUpKQorCisgICAgaWYgdnJfaW50ZXJmYWNlWydhY3RpdmUnXSAhPSBtaS5maWVsZF9kZWZhdWx0X3ZhbHVlKCd2aXJ0dWFscm91dGVyLWludGVyZmFjZScsICdhY3RpdmUnKToKKyAgICAgICAgY29uZmlnLmFwcGVuZCgnICcgKjIqKGluZGVudCsxKSArICdubyBhY3RpdmVcbicpCisKKyAgICB2cmlfZmllbGRzID0gWydvcmlnaW4nXQorCisgICAgZm9yIGZpZWxkIGluIHNvcnRlZCh2cmlfZmllbGRzKToKKyAgICAgICAgcnVubmluZ19jb25maWdfaW5jbHVkZV9maWVsZChjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZpcnR1YWxyb3V0ZXItaW50ZXJmYWNlJywgZmllbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdnJfaW50ZXJmYWNlLmdldChmaWVsZCwnJyksIGluZGVudCsxKQorICAgIHRyeToKKyAgICAgICAgaXBfYWRkcmVzc19wb29sID0gc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoJ2ludGVyZmFjZS1hZGRyZXNzLXBvb2wnLCd2aXJ0dWFsLXJvdXRlci1pbnRlcmZhY2UnLCB2cl9pbnRlcmZhY2VbJ2lkJ10sICJleGFjdCIpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgaXBfYWRkcmVzc19wb29sID0ge30KKyAgICAgICAgcGFzcworICAgIGZvciBpcF9hZGRyZXNzIGluIGlwX2FkZHJlc3NfcG9vbDoKKyAgICAgICAgY29uZmlnLmFwcGVuZCgnICcgKjIqKGluZGVudCsxKSArICdpcCAlc1xuJyAlICh1dGlmLmlwX2FuZF9uZWdfbWFzayhpcF9hZGRyZXNzWydpcC1hZGRyZXNzJ10saXBfYWRkcmVzc1snc3VibmV0LW1hc2snXSkpKQorCisjCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyMKK2RlZiBydW5uaW5nX2NvbmZpZ19yb3V0ZXJfcnVsZV9kZXRhaWxzKGNvbmZpZywgdnJfcm91dGUsaW5kZW50PTApOgorICAgICIiIgorICAgIERpc3BsYXkgdGhlIGRldGFpbHMgZm9yIHRoZSBmaWVsZHMgb2YgYSByb3V0ZXIgaW50ZXJmYWNlIHdoaWNoIG1heSBoYXZlCisgICAgbm9uLWRlZmF1bHQgdmFsdWVzLgorICAgICIiIgorICAgIGNvbmZpZ19zdHI9JyAnICogMippbmRlbnQKKyAgICBpZiAnc3JjLXRlbmFudCcgaW4gdnJfcm91dGUgYW5kIHZyX3JvdXRlWydzcmMtdGVuYW50J10gaXMgbm90IE5vbmU6CisgICAgICAgIGNvbmZpZ19zdHIrPSgncm91dGUgZnJvbSB0ZW5hbnQgJXMnICUgdnJfcm91dGVbJ3NyYy10ZW5hbnQnXSkKKyAgICAgICAgaWYgJ3NyYy12bnMnIGluIHZyX3JvdXRlIGFuZCB2cl9yb3V0ZVsnc3JjLXZucyddIGlzIG5vdCBOb25lOgorICAgICAgICAgICAgdm5zPXZyX3JvdXRlWydzcmMtdm5zJ10uc3BsaXQoJ3wnKQorICAgICAgICAgICAgdm5zX25hbWU9dm5zWzFdCisgICAgICAgICAgICBjb25maWdfc3RyKz0oJyB2bnMgJXMnICUgdm5zX25hbWUpCisgICAgZWxzZToKKyAgICAgICAgaWYgJ3NyYy1pcCcgaW4gdnJfcm91dGUgYW5kIHZyX3JvdXRlWydzcmMtaXAnXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIGNvbmZpZ19zdHIrPSgncm91dGUgZnJvbSAlcycgJSAodXRpZi5pcF9hbmRfbmVnX21hc2sodnJfcm91dGVbJ3NyYy1pcCddLHZyX3JvdXRlWydzcmMtaXAtbWFzayddKSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb25maWdfc3RyKz0oJ3JvdXRlIGZyb20gYW55JykKKworICAgIGNvbmZpZ19zdHIrPSgnIHRvJykKKworICAgIGlmICdkc3QtdGVuYW50JyBpbiB2cl9yb3V0ZSBhbmQgdnJfcm91dGVbJ2RzdC10ZW5hbnQnXSBpcyBub3QgTm9uZToKKyAgICAgICAgY29uZmlnX3N0cis9KCcgdGVuYW50ICVzJyAlIHZyX3JvdXRlWydkc3QtdGVuYW50J10pCisgICAgICAgIGlmICdkc3Qtdm5zJyBpbiB2cl9yb3V0ZSBhbmQgdnJfcm91dGVbJ2RzdC12bnMnXSBpcyBub3QgTm9uZToKKyAgICAgICAgICAgIHZucz12cl9yb3V0ZVsnZHN0LXZucyddLnNwbGl0KCd8JykKKyAgICAgICAgICAgIHZuc19uYW1lPXZuc1sxXQorICAgICAgICAgICAgY29uZmlnX3N0cis9KCcgdm5zICVzJyAlIHZuc19uYW1lKQorICAgIGVsc2U6CisgICAgICAgIGlmICdkc3QtaXAnIGluIHZyX3JvdXRlIGFuZCB2cl9yb3V0ZVsnZHN0LWlwJ10gaXMgbm90IE5vbmU6CisgICAgICAgICAgICBjb25maWdfc3RyKz0oJyAlcycgJSAodXRpZi5pcF9hbmRfbmVnX21hc2sodnJfcm91dGVbJ2RzdC1pcCddLHZyX3JvdXRlWydkc3QtaXAtbWFzayddKSkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb25maWdfc3RyKz0oJyBhbnknKQorCisgICAgaWYgJ25oLWlwJyBpbiB2cl9yb3V0ZSBhbmQgdnJfcm91dGVbJ25oLWlwJ10gaXMgbm90IE5vbmU6CisgICAgICAgIGNvbmZpZ19zdHIrPSgnICVzJyAlIHZyX3JvdXRlWyduaC1pcCddKQorICAgIGlmICdnYXRld2F5LXBvb2wnIGluIHZyX3JvdXRlIGFuZCB2cl9yb3V0ZVsnZ2F0ZXdheS1wb29sJ10gaXMgbm90IE5vbmU6CisgICAgICAgIGd3cG9vbD0gdnJfcm91dGVbJ2dhdGV3YXktcG9vbCddLnNwbGl0KCd8JykKKyAgICAgICAgZ3dwb29sX25hbWU9Z3dwb29sWy0xXQorICAgICAgICBjb25maWdfc3RyKz0oJyBndy1wb29sICVzJyAlIGd3cG9vbF9uYW1lKQorICAgIGlmICdvdXRnb2luZy1pbnRmJyBpbiB2cl9yb3V0ZSBhbmQgdnJfcm91dGVbJ291dGdvaW5nLWludGYnXSBpcyBub3QgTm9uZToKKyAgICAgICAgaW50Zj0gdnJfcm91dGVbJ291dGdvaW5nLWludGYnXS5zcGxpdCgnfCcpCisgICAgICAgIGludGZfbmFtZT1pbnRmWy0xXQorICAgICAgICBjb25maWdfc3RyKz0oJyAlcycgJSBpbnRmX25hbWUpCisKKyAgICBjb25maWdfc3RyKz0oJyAlc1xuJyAlIHZyX3JvdXRlWydhY3Rpb24nXSkKKyAgICBjb25maWcuYXBwZW5kKGNvbmZpZ19zdHIpCisKKyMKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIworZGVmIHJ1bm5pbmdfY29uZmlnX3JvdXRlcl9nd3Bvb2xfZGV0YWlscyhjb25maWcsIHZyX2d3cG9vbCwgaW5kZW50PTApOgorICAgICIiIgorICAgIERpc3BsYXkgdGhlIGRldGFpbHMgZm9yIHRoZSBmaWVsZHMgb2YgYSByb3V0ZXIgZ2F0ZXdheSBwb29sIHdoaWNoIG1heSBoYXZlCisgICAgbm9uLWRlZmF1bHQgdmFsdWVzLgorICAgICIiIgorICAgIGNvbmZpZy5hcHBlbmQoJyAnICoyKmluZGVudCArICdnYXRld2F5LXBvb2wgJXNcbicgJSAodnJfZ3dwb29sWyd2cmd3bmFtZSddKSkKKworICAgIHRyeToKKyAgICAgICAgZ3dfYWRkcmVzc19wb29sID0gc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoJ2dhdGV3YXktYWRkcmVzcy1wb29sJywndmlydHVhbC1yb3V0ZXItZ3dwb29sJywgdnJfZ3dwb29sWydpZCddLCAiZXhhY3QiKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIGd3X2FkZHJlc3NfcG9vbCA9IHt9CisgICAgICAgIHBhc3MKKyAgICBmb3IgZ3dfYWRkcmVzcyBpbiBnd19hZGRyZXNzX3Bvb2w6CisgICAgICAgIGNvbmZpZy5hcHBlbmQoJyAnICoyKihpbmRlbnQrMSkgKyAnaXAgJXNcbicgJSBnd19hZGRyZXNzWydpcC1hZGRyZXNzJ10pCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworCitkZWYgcnVubmluZ19jb25maWdfdm5zX2RldGFpbHMoY29uZmlnLCB2bnMsaW5kZW50PTApOgorICAgICIiIgorICAgIERpc3BsYXkgdGhlIGRldGFpbHMgZm9yIHRoZSBmaWVsZHMgb2YgYSB2bnMgd2hpY2ggbWF5IGhhdmUKKyAgICBub24tZGVmYXVsdCB2YWx1ZXMuCisgICAgIiIiCisgICAgaWYgdm5zWydhY3RpdmUnXSAhPSBtaS5maWVsZF9kZWZhdWx0X3ZhbHVlKCd2bnMtZGVmaW5pdGlvbicsICdhY3RpdmUnKToKKyAgICAgICAgY29uZmlnLmFwcGVuZCgnICcgKjIqaW5kZW50ICsgJ25vIGFjdGl2ZVxuJykKKyAgICAjIG1pLm9ial90eXBlX2NvbmZpZ19maWVsZHMoJ3Zucy1kZWZpbml0aW9uJykgb25seSBzaG93cyBmaWVsZHMgd2hpY2ggYXJlCisgICAgIyB1c2VyIGVkaXRhYmxlLCB3aGljaCBpcyBub25lLCBzaW5jZSBvbmx5IHRoZSBjb21tYW5kIGRlc2NyaXB0aW9ucyAKKyAgICAjIG1vZGlmeSB0aGUgZmllbGRzLiAgWFhYIGZ1bmMgd2hpY2ggcmV0dXJucyBmaWVsZHMgd2hpY2ggY2FuIGJlIHVwZGF0ZWQKKyAgICAjIHZpYSBjb21tYW5kIGRlc2NyaXB0aW9ucz8KKyAgICB2bnNfZmllbGRzID0gWydkZXNjcmlwdGlvbicsICdwcmlvcml0eScsICdvcmlnaW4nLAorICAgICAgICAgICAgICAgICAgJ2FycC1tb2RlJywgJ2RoY3AtbW9kZScsICdkaGNwLWlwJywgJ2Jyb2FkY2FzdCddCisKKyAgICBmb3IgZmllbGQgaW4gc29ydGVkKHZuc19maWVsZHMpOgorICAgICAgICBydW5uaW5nX2NvbmZpZ19pbmNsdWRlX2ZpZWxkKGNvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndm5zLWRlZmluaXRpb24nLCBmaWVsZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bnMuZ2V0KGZpZWxkLCcnKSwgaW5kZW50KQorICAgIHZuc191c2VfZmllbGRzID0gWydhZGRyZXNzLXNwYWNlJ10KKyAgICBmb3IgZmllbGQgaW4gc29ydGVkKHZuc191c2VfZmllbGRzKToKKyAgICAgICAgcnVubmluZ19jb25maWdfaW5jbHVkZV9maWVsZChjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Zucy1kZWZpbml0aW9uJywgZmllbGQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm5zLmdldChmaWVsZCwnJyksIGluZGVudCwgInVzZSAiKQorCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIHJ1bm5pbmdfY29uZmlnX3Zuc19pZl9hbmRfYWNjZXNzX2dyb3VwKGNvbmZpZywgdm5zX25hbWUsIGlmX25hbWUsIHZuc19pbnRlcmZhY2VfYWNsLGluZGVudD0wKToKKyAgICAiIiIKKyAgICBEZWNvcmF0ZSB0aGUgY29uZmlnIHdpdGggYWNjZXNzX2dyb3VwIGRldGFpbHMKKyAgICAiIiIKKyAgICBvYmpfdHlwZSA9ICd2bnMtaW50ZXJmYWNlLWFjY2Vzcy1saXN0JworICAgIGtleSA9IG1pLnBrKG9ial90eXBlKQorCisgICAgZm9yIGlmX2FjbCBpbiB2bnNfaW50ZXJmYWNlX2FjbDoKKyAgICAgICAgIyBhZGQgY29tcG91bmQga2V5IGZpZWxkIG5hbWVzICgndm5zJywgJ25hbWUnLCBldGMpIGludG8gaWZfYWNsCisgICAgICAgIG1pLnNwbGl0X2NvbXBvdW5kX2ludG9fZGljdChvYmpfdHlwZSwga2V5LCBpZl9hY2wpCisgICAgICAgIHZuc19pZD1pZl9hY2xbJ3RlbmFudCddICsnfCcgKyBpZl9hY2xbJ3Zuc25hbWUnXQorICAgICAgICBpZiB2bnNfaWQgPT0gdm5zX25hbWUgYW5kIGlmX2FjbFsnaW50ZXJmYWNlJ10gPT0gaWZfbmFtZToKKyAgICAgICAgICAgIGNvbmZpZy5hcHBlbmQoJyAnKjIqaW5kZW50ICsgImFjY2Vzcy1ncm91cCAlcyAlc1xuIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZl9hY2xbJ25hbWUnXSwgaWZfYWNsWydpbi1vdXQnXSkpCisKKworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBmaXJld2FsbF9ydWxlKHJ1bGUpOgorICAgICIiIgorICAgIFJldHVybiBhIHN0cmluZywgdGhlIGNvbW1hbmQgd2hpY2ggZW5hYmxlZCB0aGlzIHBhcnRpY3VsYXIgZmlyZXdhbGwgcnVsZQorICAgICIiIgorICAgIHRjcF9wb3J0cyA9IHs2NjMzOiAgIm9wZW5mbG93IiwKKyAgICAgICAgICAgICAgICAgODA6ICAgICAid2ViIiwKKyAgICAgICAgICAgICAgICAgNDQzOiAgICAic3NsIiwKKyAgICAgICAgICAgICAgICAgMjI6ICAgICAic3NoIn0KKworICAgIHNyYyA9ICcnCisgICAgaWYgJ3NyYy1pcCcgaW4gcnVsZSBhbmQgcnVsZVsnc3JjLWlwJ10gIT0gJyc6CisgICAgICAgIHNyYyA9ICdmcm9tICVzICcgJSBydWxlWydzcmMtaXAnXQorICAgIGRzdCA9ICcnCisgICAgaWYgJ3ZycnAtaXAnIGluIHJ1bGUgYW5kIHJ1bGVbJ3ZycnAtaXAnXSAhPSAnJzoKKyAgICAgICAgZHN0ID0gICdsb2NhbC1pcCAlcyAnICUgcnVsZVsndnJycC1pcCddCisKKyAgICBpZiBydWxlWydwcm90byddID09ICd0Y3AnIGFuZCBydWxlWydwb3J0J10gaW4gdGNwX3BvcnRzOgorICAgICAgICBhbGxvdyA9IHRjcF9wb3J0c1tydWxlWydwb3J0J11dCisgICAgICAgIHJldHVybiAiZmlyZXdhbGwgYWxsb3cgJXMlcyVzIiAlIChzcmMsIGRzdCwgYWxsb3cpCisgICAgZWxpZiBydWxlWydwcm90byddID09ICd2cnJwJzoKKyAgICAgICAgcmV0dXJuICJmaXJld2FsbCBhbGxvdyAlcyVzdnJycCIgJSAoc3JjLCBkc3QpCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuICgiZmlyZXdhbGwgYWxsb3cgJXMlcyVzICVzIiAlIAorICAgICAgICAgICAgICAgICAgICAgKHNyYywgZHN0LCBydWxlWydwcm90byddLCBydWxlWydwb3J0J10pKQorCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBydW5uaW5nX2NvbmZpZ19maXJld2FsbF9ydWxlKGNvbmZpZywgcnVsZSk6CisgICAgIiIiCisgICAgUmV0dXJuIGEgc3RyaW5nLCB0aGUgY29tbWFuZCB3aGljaCBlbmFibGVkIHRoaXMgcGFydGljdWxhciBmaXJld2FsbCBydWxlCisgICAgIiIiCisgICAgY29uZmlnLmFwcGVuZCgiICAgICVzXG4iICUgZmlyZXdhbGxfcnVsZShydWxlKSkKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgcnVubmluZ19jb25maWdfZmVhdHVyZShjb250ZXh0LCBjb25maWcsIHdvcmRzKToKKyAgICAiIiIKKyAgICBEZWNvcmF0ZSBjb25maWcgd2l0aCB0aGUgZmVhdHVyZSBjb21tYW5kcworICAgICIiIgorICAgIGZlYXR1cmUgPSBzZG5zaC5nZXRfdGFibGVfZnJvbV9zdG9yZSgnZmVhdHVyZScpCisKKyAgICBpZiBsZW4oZmVhdHVyZSkgPT0gMDoKKyAgICAgICAgcmV0dXJuCisKKyAgICBmX2NvbmZpZyA9IFtdCisKKyAgICBmb3IgZmllbGQgaW4gbWkub2JqX3R5cGVfZmllbGRzKCdmZWF0dXJlJyk6CisgICAgICAgIGlmIGZpZWxkID09IG1pLnBrKCdmZWF0dXJlJyk6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBpZiBtaS5pc19mb3JlaWduX2tleSgnZmVhdHVyZScsIGZpZWxkKToKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGRlZmF1bHRfdmFsdWUgPSBtaS5maWVsZF9kZWZhdWx0X3ZhbHVlKCdmZWF0dXJlJywgZmllbGQpCisgICAgICAgIG5hbWUgPSBmaWVsZC5yZXBsYWNlKCctZmVhdHVyZScsJycpCisgICAgICAgIGlmIG1pLm5vdF9kZWZhdWx0X3ZhbHVlKCdmZWF0dXJlJywgZmllbGQsIGZlYXR1cmVbMF1bZmllbGRdKToKKyAgICAgICAgICAgIGlmIGRlZmF1bHRfdmFsdWUgPT0gVHJ1ZToKKyAgICAgICAgICAgICAgICBmX2NvbmZpZy5hcHBlbmQoJ25vIGZlYXR1cmUgJXNcbicgJSBuYW1lKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBmX2NvbmZpZy5hcHBlbmQoJ2ZlYXR1cmUgJXNcbicgJSBuYW1lKQorCisgICAgaWYgbGVuKGZfY29uZmlnKSA+IDA6CisgICAgICAgIGNvbmZpZy5hcHBlbmQoJyEgZmVhdHVyZXMgZW5hYmxlZC9kaXNhYmxlZFxuJykKKyAgICAgICAgY29uZmlnICs9IGZfY29uZmlnCisKK2ZlYXR1cmVfcnVubmluZ19jb25maWdfdHVwbGUgPSAoCisoCisgICAgICAgeworICAgICAgICAgICAnb3B0aW9uYWwnICAgOiBGYWxzZSwKKyAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ3J1bm5pbmctY29uZmlnJywKKyAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAndmFsdWVzJyAgICAgOiAnZmVhdHVyZScsCisgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdDb25maWd1cmF0aW9uIGZvciBlbmFibGVkL2Rpc2FibGVkIGZlYXR1cmVzJywKKyAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ3J1bm5pbmctY29uZmlnfHNob3ctZmVhdHVyZScsCisgICAgICAgfSwKKyAgICApLAorKQorCityZWdpc3Rlcl9ydW5uaW5nX2NvbmZpZygnZmVhdHVyZScsIDEwMDAsIE5vbmUsIHJ1bm5pbmdfY29uZmlnX2ZlYXR1cmUsIGZlYXR1cmVfcnVubmluZ19jb25maWdfdHVwbGUpCisKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgcnVubmluZ19jb25maWdfY29udHJvbGxlcl9ub2RlKGNvbnRleHQsIGNvbmZpZywgd29yZHMpOgorICAgICIiIgorICAgIERlY29yYXRlIGNvbmZpZyB3aXRoIGNvbnRyb2xsZXItbm9kZSBkZXRhaWxzLgorICAgICIiIgorICAgICMKKyAgICBjb250cm9sbGVyX25vZGVzID0gc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoImNvbnRyb2xsZXItbm9kZSIpCisgICAgY29udHJvbGxlcl9pZnMgPSAgIHNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKCJjb250cm9sbGVyLWludGVyZmFjZSIpCisgICAgY29udHJvbGxlcl9kbnNlcyA9IHNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKCJjb250cm9sbGVyLWRvbWFpbi1uYW1lLXNlcnZlciIpCisgICAgZmlyZXdhbGxfcnVsZXMgPSAgIHNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKCJmaXJld2FsbC1ydWxlIikKKworICAgIGNvbnRyb2xsZXJfYWxpYXNfZGljdCA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KCdjb250cm9sbGVyLWFsaWFzJywgJ2NvbnRyb2xsZXInKQorCisgICAga2V5ID0gbWkucGsoJ2NvbnRyb2xsZXItbm9kZScpCisgICAgaWYgbGVuKHdvcmRzKSA+IDA6CisgICAgICAgIGlmIG5vdCB3b3Jkc1swXSBpbiBbY1trZXldIGZvciBjIGluIGNvbnRyb2xsZXJfbm9kZXNdOgorICAgICAgICAgICAgcmV0dXJuIHNkbnNoLmVycm9yX21zZygnTm8gc3VjaCBjb250cm9sbGVyICIlcyInICUgd29yZHNbMF0pCisKKyAgICBmb3IgYyBpbiBjb250cm9sbGVyX25vZGVzOgorICAgICAgICBpZiBsZW4od29yZHMpID4gMCBhbmQgY1trZXldICE9IHdvcmRzWzBdOgorICAgICAgICAgICAgY29udGludWUKKworICAgICAgICBjX2NvbmZpZyA9IFtdCisKKyAgICAgICAgaWYgY1trZXldIGluIGNvbnRyb2xsZXJfYWxpYXNfZGljdDoKKyAgICAgICAgICAgIGNfY29uZmlnLmFwcGVuZCgnICBjb250cm9sbGVyLWFsaWFzICVzXG4nICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlcl9hbGlhc19kaWN0W2Nba2V5XV1bMF1bJ2FsaWFzJ10pCisKKyAgICAgICAgIyBtaS5vYmpfdHlwZV9jb25maWdfZmllbGRzKCkgZG9lc24ndCB3b3JrLCBzaW5jZQorICAgICAgICAjIHRoZXNlIGZpZWxkcyBhcmVuJ3QgZGlyZWN0bHkgZWRpdGFibGUuCisgICAgICAgIGZvciBmaWVsZCBpbiBbJ250cC1zZXJ2ZXInLAorICAgICAgICAgICAgICAgICAgICAgICd0aW1lLXpvbmUnLAorICAgICAgICAgICAgICAgICAgICAgICdkb21haW4tbG9va3Vwcy1lbmFibGVkJywKKyAgICAgICAgICAgICAgICAgICAgICAnZG9tYWluLW5hbWUnXToKKyAgICAgICAgICAgIGRlZmF1bHRfdmFsdWUgPSBtaS5maWVsZF9kZWZhdWx0X3ZhbHVlKCdjb250cm9sbGVyLW5vZGUnLCBmaWVsZCkKKyAgICAgICAgICAgIGlmIGZpZWxkID09ICdudHAtc2VydmVyJyBhbmQgYy5nZXQoZmllbGQsICcnKSAhPSBkZWZhdWx0X3ZhbHVlOgorICAgICAgICAgICAgICAgIGNfY29uZmlnLmFwcGVuZCgnICBudHAgc2VydmVyICVzXG4nICUgYy5nZXQoZmllbGQsJycpKQorICAgICAgICAgICAgZWxpZiBmaWVsZCA9PSAndGltZS16b25lJyBhbmQgYy5nZXQoZmllbGQsICcnKSAhPSBkZWZhdWx0X3ZhbHVlOgorICAgICAgICAgICAgICAgIGNfY29uZmlnLmFwcGVuZCgnICBjbG9jayB0aW1lem9uZSAlc1xuJyAlIGMuZ2V0KGZpZWxkLCAnJykpCisgICAgICAgICAgICBlbGlmIGZpZWxkID09ICdkb21haW4tbG9va3Vwcy1lbmFibGVkJyBhbmQgYy5nZXQoZmllbGQsICcnKSAhPSBkZWZhdWx0X3ZhbHVlOgorICAgICAgICAgICAgICAgIGNfY29uZmlnLmFwcGVuZCgnICBpcCBkb21haW4gbG9va3VwXG4nKQorICAgICAgICAgICAgZWxpZiBmaWVsZCA9PSAnZG9tYWluLW5hbWUnIGFuZCBjLmdldChmaWVsZCwgJycpICE9IGRlZmF1bHRfdmFsdWU6CisgICAgICAgICAgICAgICAgY19jb25maWcuYXBwZW5kKCcgIGlwIGRvbWFpbiBuYW1lICVzXG4nICUgYy5nZXQoZmllbGQsICcnKSkKKworICAgICAgICBkbnNfa2V5ID0gbWkucGsoJ2NvbnRyb2xsZXItZG9tYWluLW5hbWUtc2VydmVyJykKKyAgICAgICAgcmVsYXRlZF9kbnMgPSBbeCBmb3IgeCBpbiBjb250cm9sbGVyX2Ruc2VzIGlmIHhbZG5zX2tleV0uc3RhcnRzd2l0aChjW2tleV0pXQorICAgICAgICBpZiByZWxhdGVkX2RuczoKKyAgICAgICAgICAgIHNvcnRlZF9kbnMgPSBzb3J0ZWQocmVsYXRlZF9kbnMsIGtleT1sYW1iZGEgeDogeFsndGltZXN0YW1wJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbXA9bGFtYmRhIHgseTogY21wKGludCh4KSwgaW50KHkpKSkKKyAgICAgICAgICAgIGZvciBkbnMgaW4gc29ydGVkX2RuczoKKyAgICAgICAgICAgICAgICBjX2NvbmZpZy5hcHBlbmQoJyAgaXAgbmFtZS1zZXJ2ZXIgJXNcbicgJSBkbnNbJ2lwJ10pCisKKyAgICAgICAgZm9yIGZpZWxkIGluIFsnZGVmYXVsdC1nYXRld2F5JywKKyAgICAgICAgICAgICAgICAgICAgICAnbG9nZ2luZy1lbmFibGVkJ106CisgICAgICAgICAgICBkZWZhdWx0X3ZhbHVlID0gbWkuZmllbGRfZGVmYXVsdF92YWx1ZSgnY29udHJvbGxlci1ub2RlJywgZmllbGQpCisgICAgICAgICAgICBpZiBmaWVsZCA9PSAnbG9nZ2luZy1lbmFibGVkJyBhbmQgYy5nZXQoZmllbGQsICcnKSAhPSBkZWZhdWx0X3ZhbHVlOgorICAgICAgICAgICAgICAgIGNfY29uZmlnLmFwcGVuZCgnICBsb2dnaW5nIG9uXG4nKQorICAgICAgICAgICAgZWxpZiBmaWVsZCA9PSAnZGVmYXVsdC1nYXRld2F5JyBhbmQgYy5nZXQoZmllbGQsICcnKSAhPSBkZWZhdWx0X3ZhbHVlOgorICAgICAgICAgICAgICAgIGNfY29uZmlnLmFwcGVuZCgnICBpcCBkZWZhdWx0LWdhdGV3YXkgJXNcbicgJSBjLmdldChmaWVsZCwgJycpKQorCisgICAgICAgIGRlZmF1bHRfbG9nZ2luZ19zZXJ2ZXIgPSBtaS5maWVsZF9kZWZhdWx0X3ZhbHVlKCdjb250cm9sbGVyLW5vZGUnLCAnbG9nZ2luZy1zZXJ2ZXInKQorICAgICAgICBkZWZhdWx0X2xvZ2dpbmdfbGV2ZWwgPSBtaS5maWVsZF9kZWZhdWx0X3ZhbHVlKCdjb250cm9sbGVyLW5vZGUnLCAnbG9nZ2luZy1sZXZlbCcpCisgICAgICAgIGxvZ2dpbmdfc2VydmVyID0gYy5nZXQoJ2xvZ2dpbmctc2VydmVyJywgJycpCisgICAgICAgIGxvZ2dpbmdfbGV2ZWwgPSBjLmdldCgnbG9nZ2luZy1sZXZlbCcsICcnKQorICAgICAgICBpZiAoKGxvZ2dpbmdfc2VydmVyICE9IGRlZmF1bHRfbG9nZ2luZ19zZXJ2ZXIpIG9yCisgICAgICAgICAgICAobG9nZ2luZ19sZXZlbCAhPSBkZWZhdWx0X2xvZ2dpbmdfbGV2ZWwpKToKKyAgICAgICAgICAgIGNfY29uZmlnLmFwcGVuZCgnICBsb2dnaW5nIHNlcnZlciAlcycgJSBsb2dnaW5nX3NlcnZlcikKKyAgICAgICAgICAgIGlmIGxvZ2dpbmdfbGV2ZWwgIT0gZGVmYXVsdF9sb2dnaW5nX2xldmVsOgorICAgICAgICAgICAgICAgIGNfY29uZmlnLmFwcGVuZCgnIGxldmVsICVzJyAlIGxvZ2dpbmdfbGV2ZWwpCisgICAgICAgICAgICBjX2NvbmZpZy5hcHBlbmQoJ1xuJykKKworICAgICAgICBvcGVuX3BvcnRzID0gWzIyLCA2NjMzXQorICAgICAgICBjaWZfa2V5ID0gbWkucGsoJ2NvbnRyb2xsZXItaW50ZXJmYWNlJykKKyAgICAgICAgZnJfa2V5ID0gbWkucGsoJ2ZpcmV3YWxsLXJ1bGUnKQorICAgICAgICBmb3IgY2lmIGluIGNvbnRyb2xsZXJfaWZzOgorICAgICAgICAgICAgaWYgY2lmW2NpZl9rZXldLnN0YXJ0c3dpdGgoY1trZXldKToKKyAgICAgICAgICAgICAgICBmaWVsZHMgPSBjaWZbY2lmX2tleV0uc3BsaXQoJ3wnKQorICAgICAgICAgICAgICAgIGNjb25maWcgPSBbXQorICAgICAgICAgICAgICAgIGlmIGxlbihmaWVsZHMpID4gMjoKKyAgICAgICAgICAgICAgICAgICAgaWZfbiA9IGludChmaWVsZHNbMl0pICMgaW50ZXJmYWNlIG51bWJlciBpcyB0aGUgM3JkIGZpZWxkCisgICAgICAgICAgICAgICAgICAgIGlwX21vZGUgPSAnc3RhdGljJworICAgICAgICAgICAgICAgICAgICBpZiAnbW9kZScgaW4gY2lmIGFuZCBjaWZbJ21vZGUnXSAhPSAnJzoKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGNpZlsnbW9kZSddICE9IG1pLmZpZWxkX2RlZmF1bHRfdmFsdWUoJ2NvbnRyb2xsZXItaW50ZXJmYWNlJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vZGUnKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBjdXJyZW50bHkgbm8gY2hlY2tzIGFyZSBtYWRlIHRvIHdhcm4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHRoZSB1c2VyIHdoZW4gJ2RoY3AnIG1vZGUgaGFzIGJlZW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIHNlbGVjdGVkLCBhbmQgaXAvbmV0bWFzayBhcmUgc2V0LgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjb25maWcuYXBwZW5kKCcgICAgaXAgbW9kZSAlc1xuJyAlIGNpZlsnbW9kZSddKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwX21vZGUgPSBjaWZbJ21vZGUnXQorCisgICAgICAgICAgICAgICAgICAgIGlmIChpcF9tb2RlID09ICdzdGF0aWMnIGFuZAorICAgICAgICAgICAgICAgICAgICAgICdpcCcgaW4gY2lmIGFuZCBjaWZbJ2lwJ10gIT0gJycgYW5kCisgICAgICAgICAgICAgICAgICAgICAgJ25ldG1hc2snIGluIGNpZiBhbmQgY2lmWyduZXRtYXNrJ10gIT0gJycpOgorICAgICAgICAgICAgICAgICAgICAgICAgY2NvbmZpZy5hcHBlbmQoJyAgICBpcCBhZGRyZXNzICVzICVzXG4nICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNpZlsnaXAnXSwgY2lmWyduZXRtYXNrJ10pKQorCisgICAgICAgICAgICAgICAgICAgIHJ1bGVzX2Zvcl9jaWYgPSBbciBmb3IgciBpbiBmaXJld2FsbF9ydWxlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJbJ2ludGVyZmFjZSddID09IGNpZltjaWZfa2V5XV0KKyAgICAgICAgICAgICAgICAgICAgIyBsb29rIGZvciBkZWxldGVkIGRlZmF1bHQgZmlyZXdhbGwgcnVsZXMgZm9yIGZpcnN0IGludGVyZmFjZQorICAgICAgICAgICAgICAgICAgICBpZiBpZl9uID09IDA6CisgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X3J1bGVfbWlzc2luZyA9IGxpc3Qob3Blbl9wb3J0cykKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBydWxlIGluIHJ1bGVzX2Zvcl9jaWY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgcnVsZVsncHJvdG8nXSA9PSAndGNwJyBhbmQgcnVsZVsncG9ydCddIGluIGRlZmF1bHRfcnVsZV9taXNzaW5nOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0X3J1bGVfbWlzc2luZyA9IGZpbHRlcihsYW1iZGEgcDogcCAhPSBydWxlWydwb3J0J10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRfcnVsZV9taXNzaW5nKQorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGRyIGluIGRlZmF1bHRfcnVsZV9taXNzaW5nOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjb25maWcuYXBwZW5kKCcgICAgbm8gZmlyZXdhbGwgJXMgdGNwXG4nICUgZHIpCisKKyAgICAgICAgICAgICAgICAgICAgZm9yIHJ1bGUgaW4gcnVsZXNfZm9yX2NpZjoKKyAgICAgICAgICAgICAgICAgICAgICAgICMgaWdub3JlIGRlZmF1bHQgcnVsZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGlmX24gPT0gMCBhbmQgcnVsZVsncHJvdG8nXSA9PSAndGNwJyBhbmQgcnVsZVsncG9ydCddIGluIG9wZW5fcG9ydHM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICAgICAgICAgIHJ1bm5pbmdfY29uZmlnX2ZpcmV3YWxsX3J1bGUoY2NvbmZpZywgcnVsZSkKKyAgICAgICAgICAgICAgICBpZiBsZW4oY2NvbmZpZykgPiAwIG9yIGNpZltjaWZfa2V5XSAhPSAnbG9jYWxob3N0fEV0aGVybmV0fDAnOgorICAgICAgICAgICAgICAgICAgICAjIG1pLm9ial90eXBlX2NvbmZpZ19maWVsZHMoKSBkb2Vzbid0IHdvcmssIHNpbmNlCisgICAgICAgICAgICAgICAgICAgICMgdGhlc2UgZmllbGRzIGFyZW4ndCBkaXJlY3RseSBlZGl0YWJsZS4KKyAgICAgICAgICAgICAgICAgICAgY19jb25maWcuYXBwZW5kKCcgIGludGVyZmFjZSAlcyAlc1xuJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpZWxkc1sxXSwgZmllbGRzWzJdKSkKKworICAgICAgICAgICAgICAgICAgICBjX2NvbmZpZyArPSBjY29uZmlnCisgICAgICAgIGlmIGxlbihjX2NvbmZpZykgIT0gMCBvciBjW2tleV0gIT0gJ2xvY2FsaG9zdCc6CisgICAgICAgICAgICBjb25maWcuYXBwZW5kKCchXG5jb250cm9sbGVyLW5vZGUgJXNcbicgJSBjW2tleV0pCisgICAgICAgICAgICBjb25maWcuYXBwZW5kKCcnLmpvaW4oY19jb25maWcpKQorCitjb250cm9sbGVyX25vZGVfcnVubmluZ19jb25maWdfdHVwbGUgPSAoCisgICAoCisgICAgICAgeworICAgICAgICAgICAnb3B0aW9uYWwnIDogRmFsc2UsCisgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdydW5uaW5nLWNvbmZpZycsCisgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ2NvbnRyb2xsZXItbm9kZScsCisgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdDb25maWd1cmF0aW9uIGZvciBjb250cm9sbGVyIG5vZGVzJywKKyAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ3J1bm5pbmctY29uZmlnfHNob3ctY29udHJvbGxlci1ub2RlJywKKyAgICAgICB9LAorICAgICAgIHsKKyAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnd29yZCcsCisgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICdjb250cm9sbGVyLW5vZGV8aWQnLAorICAgICAgICAgICAncGFyZW50LWZpZWxkJyA6IE5vbmUsCisgICAgICAgICAgICdhY3Rpb24nICAgICAgIDogJ2xlZ2FjeS1jbGknLAorICAgICAgICAgICAnb3B0aW9uYWwnICAgICA6IFRydWUsCisgICAgICAgfQorICAgICksCispCisKK3JlZ2lzdGVyX3J1bm5pbmdfY29uZmlnKCdjb250cm9sbGVyLW5vZGUnLCAyMDAwLCBOb25lLAorICAgICAgICAgICAgICAgICAgICAgICAgcnVubmluZ19jb25maWdfY29udHJvbGxlcl9ub2RlLCBjb250cm9sbGVyX25vZGVfcnVubmluZ19jb25maWdfdHVwbGUpCisKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgcnVubmluZ19jb25maWdfc3dpdGNoKGNvbnRleHQsIGNvbmZpZywgd29yZHMpOgorICAgICIiIgorICAgIFN3aXRjaCBydW5uaW5nLWNvbmZpZworICAgICIiIgorCisgICAgc3dpdGNoZXMgPSAgICAgICAgICAgICAgICAgc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoInN3aXRjaC1jb25maWciKQorICAgIGZsb3dfdGFibGVfZW50cmllcyA9ICAgICAgIHNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKCdmbG93LWVudHJ5JykKKworICAgIHN3aXRjaF9pbnRlcmZhY2VfY29uZmlnc19kaWN0ID0gY3JlYXRlX29ial90eXBlX2RpY3QoJ3N3aXRjaC1pbnRlcmZhY2UtY29uZmlnJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzd2l0Y2gnKQorCisgICAgc3dpdGNoX2ludGVyZmFjZV9hbGlhc19kaWN0ID0gY3JlYXRlX29ial90eXBlX2RpY3QoJ3N3aXRjaC1pbnRlcmZhY2UtYWxpYXMnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzd2l0Y2gtaW50ZXJmYWNlJykKKyAgICBrZXkgPSBtaS5waygnc3dpdGNoLWNvbmZpZycpCisgICAgaWYgbGVuKHdvcmRzKSA+IDA6CisgICAgICAgIGlmIG5vdCB3b3Jkc1swXSBpbiBbc1trZXldIGZvciBzIGluIHN3aXRjaGVzXToKKyAgICAgICAgICAgIHJldHVybiBzZG5zaC5lcnJvcl9tc2coJ05vIHN1Y2ggc3dpdGNoICIlcyInICUgd29yZHNbMF0pCisKKyAgICBmb3IgcyBpbiBzd2l0Y2hlczoKKyAgICAgICAgIworICAgICAgICAjCisgICAgICAgIGlmIGxlbih3b3JkcykgPiAwIGFuZCBzW2tleV0gIT0gd29yZHNbMF06CisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgIHN3X2NvbmZpZyA9IFtdCisgICAgICAgIHN3X2NvbmZpZy5hcHBlbmQoJyFcbnN3aXRjaCAlc1xuJyAlIHNba2V5XSkKKyAgICAgICAgIworICAgICAgICAjIGFkZCBhbnkgYWxpYXMgZm9yIHRoaXMgaWQgaWYgaXQgZXhpc3RzCisgICAgICAgIHJ1bm5pbmdfY29uZmlnX2luY2x1ZGVfYWxpYXMoc3dfY29uZmlnLCAxLCAnc3dpdGNoLWNvbmZpZycsIHNba2V5XSkKKworICAgICAgICBpZiBtaS5ub3RfZGVmYXVsdF92YWx1ZSgnc3dpdGNoLWNvbmZpZycsICdjb3JlLXN3aXRjaCcsIHMuZ2V0KCdjb3JlLXN3aXRjaCcsJycpKToKKyAgICAgICAgICAgIHN3X2NvbmZpZy5hcHBlbmQoIiAgY29yZS1zd2l0Y2hcbiIpICMgZGVmYXVsdCBpcyBub3QgZW5hYmxlZAorCisgICAgICAgIGlmIG1pLm5vdF9kZWZhdWx0X3ZhbHVlKCdzd2l0Y2gtY29uZmlnJywgJ3R1bm5lbC10ZXJtaW5hdGlvbicsIHMuZ2V0KCd0dW5uZWwtdGVybWluYXRpb24nLCcnKSk6CisgICAgICAgICAgICBzd19jb25maWcuYXBwZW5kKCIgIHR1bm5lbCB0ZXJtaW5hdGlvbiAlc1xuIiAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNbJ3R1bm5lbC10ZXJtaW5hdGlvbiddKQorCisgICAgICAgICMKKyAgICAgICAgIyBMb29rIGZvciBtYXRjaGluZyBzd2l0Y2ggaW50ZXJmYWNlIGNvbmZpZydzCisgICAgICAgIHNpY19rZXkgPSBtaS5waygnc3dpdGNoLWludGVyZmFjZS1jb25maWcnKQorICAgICAgICBmb3Igc2ljIGluIHN3aXRjaF9pbnRlcmZhY2VfY29uZmlnc19kaWN0LmdldChzW2tleV0sIFtdKToKKyAgICAgICAgICAgIGZpZWxkcyA9IHNpY1tzaWNfa2V5XS5zcGxpdCgnfCcpCisgICAgICAgICAgICBpZiBsZW4oZmllbGRzKSA+IDE6CisgICAgICAgICAgICAgICAgc2ljX2NvbmZpZyA9IFtdCisgICAgICAgICAgICAgICAgIyBYWFggcGVyaGFwcyBtaS5vYmpfdHlwZV9jb25maWdfZmllbGRzKCkgaGVyZT8KKyAgICAgICAgICAgICAgICBydW5uaW5nX2NvbmZpZ19pbmNsdWRlX2ZpZWxkKHNpY19jb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3dpdGNoLWludGVyZmFjZS1jb25maWcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21vZGUnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2ljWydtb2RlJ10sIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzd2l0Y2hwb3J0ICcpCisKKyAgICAgICAgICAgICAgICBpZiBzaWNbc2ljX2tleV0gaW4gc3dpdGNoX2ludGVyZmFjZV9hbGlhc19kaWN0OgorICAgICAgICAgICAgICAgICAgICBzaWNfY29uZmlnLmFwcGVuZCgnICAgIGludGVyZmFjZS1hbGlhcyAlc1xuJyAlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3dpdGNoX2ludGVyZmFjZV9hbGlhc19kaWN0W3NpY1tzaWNfa2V5XV1bMF1bJ2lkJ10pCisKKyAgICAgICAgICAgICAgICBpZiBsZW4oc2ljX2NvbmZpZykgPiAwOgorICAgICAgICAgICAgICAgICAgICBzd19jb25maWcuYXBwZW5kKCcgIGludGVyZmFjZSAlc1xuJyAlIGZpZWxkc1sxXSkKKyAgICAgICAgICAgICAgICAgICAgc3dfY29uZmlnICs9IHNpY19jb25maWcKKworICAgICAgICBmb3IgZnRlIGluIGZsb3dfdGFibGVfZW50cmllczogIworICAgICAgICAgICAgIyBob3cgdG8gaGFuZGxlIGRlZmF1bHRzPworICAgICAgICAgICAgaWYgZnRlWydzd2l0Y2gnXSA9PSBzW2tleV06CisgICAgICAgICAgICAgICAgc3dfY29uZmlnLmFwcGVuZCgnICBmbG93LWVudHJ5ICVzXG4nICUgZnRlWyduYW1lJ10pCisgICAgICAgICAgICAgICAgZmllbGRzX3RvX3ByaW50ID0gbWkuY2xpX21vZGVsX2luZm8uZ2V0X2ZpZWxkc190b19wcmludCgnZmxvdy1lbnRyeScpCisgICAgICAgICAgICAgICAgZm9yIGYgaW4gZmllbGRzX3RvX3ByaW50OgorICAgICAgICAgICAgICAgICAgICB2ID0gZnRlLmdldChmLCAiIikKKyAgICAgICAgICAgICAgICAgICAgaWYgdiAhPSAiIiBhbmQgZiAhPSAnbmFtZScgYW5kIGYgIT0gJ3N3aXRjaCc6CisgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZF9pbmZvID0gbWkuY2xpX21vZGVsX2luZm8uZ2V0X2ZpZWxkX2luZm8oJ2Zsb3ctZW50cnknLCBmKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgdiA9PSBmaWVsZF9pbmZvLmdldCgnZGVmYXVsdCcsIE5vbmUpIGFuZCBmICE9ICdhY3RpdmUnOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhc3MgIyBsaXRlcmFsbHksIGRvbid0IHByaW50IHRoaXMgb25lCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN3X2NvbmZpZy5hcHBlbmQoJyAgICAlcyAlc1xuJyAlIChmLCB2KSkKKyAgICAgICAgY29uZmlnICs9IHN3X2NvbmZpZworCitzd2l0Y2hfcnVubmluZ19jb25maWdfdHVwbGUgPSAoCisgICAgKAorICAgICAgIHsKKyAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogRmFsc2UsCisgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdydW5uaW5nLWNvbmZpZycsCisgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ3N3aXRjaCcsCisgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdDb25maWd1cmF0aW9uIGZvciBzd2l0Y2hlcycsCisgICAgICAgICAgICdkb2MnICAgICAgICA6ICdydW5uaW5nLWNvbmZpZ3xzaG93LXN3aXRjaCcsCisgICAgICAgfSwKKyAgICAgICB7CisgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3dvcmQnLAorICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdkcGlkJywKKyAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAnc3dpdGNofGRwaWQnLAorICAgICAgICAgICAncGFyZW50LWZpZWxkJyA6IE5vbmUsCisgICAgICAgICAgICdhY3Rpb24nICAgICAgIDogJ2xlZ2FjeS1jbGknLAorICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwKKyAgICAgICB9CisgICAgKSwKKykKKworcmVnaXN0ZXJfcnVubmluZ19jb25maWcoJ3N3aXRjaCcsIDMwMDAsIE5vbmUsIHJ1bm5pbmdfY29uZmlnX3N3aXRjaCwgc3dpdGNoX3J1bm5pbmdfY29uZmlnX3R1cGxlKQorCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIHJ1bm5pbmdfY29uZmlnX2hvc3QoY29udGV4dCwgY29uZmlnLCB3b3Jkcyk6CisgICAgIiIiCisgICAgQWRkIGhvc3QgZGV0YWlscywgaW5jbHVkaW5nIHRhZ3MuCisgICAgIiIiCisKKyAgICAjIFdoZW4gdGhlcmUgYXJlIG5vIHRhZ3MsIGFuZCBubyBob3N0LWFsaWFzZXMsIHRoZSBob3N0cyBkb24ndCBuZWVkCisgICAgIyB0byBiZSByZWFkLiAgSWYgaXQgd2VyZSBwb3NzaWJsZSB0byBkZXRlcm1pbmUgdGhlIG51bWJlciBvZiBlbnRyaWVzCisgICAgIyB3aXRob3V0IHF1ZXJ5aW5nLCB0aGVuIGl0IHdvdWxkIG1ha2Ugc2Vuc2UgdG8gY29uc2lkZXIgZW51bWVyYXRpbmcKKyAgICAjIHRoZSBob3N0LWFsaWFzZXMgYW5kIHRhZ3MgaWYgdGhleSB3ZXJlIHN1YnN0YW50aWFsbHkgc21hbGxlciB0aGFuCisgICAgIyB0aGUgbnVtYmVyIG9mIGhvc3RzLgorICAgICMKKworICAgIGhvc3RfYWxpYXNfZGljdCA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KCJob3N0LWFsaWFzIiwgJ2hvc3QnKQorICAgIGhvc3Rfc2VjdXJpdHlfaXAgPSBjcmVhdGVfb2JqX3R5cGVfZGljdCgiaG9zdC1zZWN1cml0eS1pcC1hZGRyZXNzIiwgJ2hvc3QnKQorICAgIGhvc3Rfc2VjdXJpdHlfYXAgPSBjcmVhdGVfb2JqX3R5cGVfZGljdCgiaG9zdC1zZWN1cml0eS1hdHRhY2htZW50LXBvaW50IiwgJ2hvc3QnKQorICAgIHN3aXRjaF9jb25maWcgPSBjcmVhdGVfb2JqX3R5cGVfZGljdCgnc3dpdGNoLWludGVyZmFjZS1jb25maWcnLCAnaWQnKQorCisgICAgIyBOb3RpY2UgdGhhdCBvbmx5IGhvc3RzIGNvbmZpZ3VyZWQgYXJlIGVudW1lcmF0ZWQgaGVyZSwgc2luY2UKKyAgICAjIGRpc2NvdmVyZWQgaG9zdHMgY2FuJ3QgaGF2ZSBjb25maWd1cmF0aW9uLiAgIEFsbCBjb25maWd1cmF0aW9uCisgICAgIyBpcyBhdHRhY2hlZCB0byBjb25maWd1cmVkIGhvc3RzLCB3aGljaCBhcmUgam9pbmVkIGFmdGVyIGRpc2NvdmVyZWQKKyAgICAjIGhvc3RzIGZvciBzaG93IGNvbW1hbmRzLgorICAgIGhvc3RzID0gc2Ruc2guZ2V0X3RhYmxlX2Zyb21fc3RvcmUoImhvc3QtY29uZmlnIikKKyAgICBrZXkgPSBtaS5waygnaG9zdC1jb25maWcnKQorCisgICAgaWYgbGVuKHdvcmRzKSA+IDA6CisgICAgICAgIGlmIG5vdCB3b3Jkc1swXSBpbiBbaFtrZXldIGZvciBoIGluIGhvc3RzXToKKyAgICAgICAgICAgIHJldHVybiBzZG5zaC5lcnJvcl9tc2coJ05vIHN1Y2ggaG9zdCAiJXMiJyAlIHdvcmRzWzBdKQorCisgICAgZm9yIGggaW4gaG9zdHM6CisgICAgICAgIGlmIGxlbih3b3JkcykgPiAwIGFuZCB3b3Jkc1swXSAhPSBoW2tleV06CisgICAgICAgICAgICBjb250aW51ZQorCisgICAgICAgICMgaG9zdF9jb25maWcgaG9sZHMgJ2NvbmZpZycgb25seSBmb3IgaG9zdC4KKyAgICAgICAgaG9zdF9jb25maWcgPSBbXQorICAgICAgICBhX3MgPSAnJworICAgICAgICBpZiBoLmdldCgnYWRkcmVzcy1zcGFjZScsJycpICE9ICdkZWZhdWx0JzoKKyAgICAgICAgICAgIGFfcyA9ICdhZGRyZXNzLXNwYWNlICVzICcgJSBoWydhZGRyZXNzLXNwYWNlJ10KKyAgICAgICAgdmxhbiA9ICcnCisgICAgICAgIGlmIGguZ2V0KCd2bGFuJywgJycpICE9ICcnOgorICAgICAgICAgICAgdmxhbiA9ICd2bGFuICVzICcgJSBoWyd2bGFuJ10KKyAgICAgICAgaG9zdF9jb25maWcuYXBwZW5kKCchXG5ob3N0ICVzJXMlc1xuJyAlIChhX3MsIHZsYW4sIGhbJ21hYyddKSkKKyAgICAgICAgIworICAgICAgICAjIGFkZCB0aGUgaG9zdCBhbGlhcyBmb3IgdGhpcyBpZCBpZiBpdCBleGlzdHMKKyAgICAgICAgaWYgaFtrZXldIGluIGhvc3RfYWxpYXNfZGljdDoKKyAgICAgICAgICAgIGhvc3RfY29uZmlnLmFwcGVuZCgiICBob3N0LWFsaWFzICVzXG4iICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0X2FsaWFzX2RpY3RbaFtrZXldXVswXVsnaWQnXSkKKworICAgICAgICAjCisgICAgICAgICMgY2hlY2sgZm9yIHNlY3VyaXR5IHBvbGljaWVzCisgICAgICAgIGlmIGhba2V5XSBpbiBob3N0X3NlY3VyaXR5X2lwOgorICAgICAgICAgICAgZm9yIGlwIGluIGhvc3Rfc2VjdXJpdHlfaXBbaFtrZXldXToKKyAgICAgICAgICAgICAgICBob3N0X2NvbmZpZy5hcHBlbmQoIiAgc2VjdXJpdHkgcG9saWN5IGJpbmQgaXAtYWRkcmVzcyAlc1xuIiAlIGlwWydpcC1hZGRyZXNzJ10pCisKKyAgICAgICAgaWYgaFtrZXldIGluIGhvc3Rfc2VjdXJpdHlfYXA6CisgICAgICAgICAgICBmb3IgYXAgaW4gaG9zdF9zZWN1cml0eV9hcFtoW2tleV1dOgorICAgICAgICAgICAgICAgIGhvc3RfY29uZmlnLmFwcGVuZCgiICBzZWN1cml0eSBwb2xpY3kgYmluZCBhdHRhY2htZW50LXBvaW50ICVzICVzXG4iICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcC5nZXQoJ2RwaWQnLCAnYWxsJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlmLnF1b3RlX3N0cmluZyhhcFsnaWYtbmFtZS1yZWdleCddKSkpCisKKyAgICAgICAgY29uZmlnICs9IGhvc3RfY29uZmlnCisKKworaG9zdF9ydW5uaW5nX2NvbmZpZ190dXBsZSA9ICgKKyAgICAoCisgICAgICAgeworICAgICAgICAgICAnb3B0aW9uYWwnICAgOiBGYWxzZSwKKyAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ3J1bm5pbmctY29uZmlnJywKKyAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAndmFsdWVzJyAgICAgOiAnaG9zdCcsCisgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdDb25maWd1cmF0aW9uIGZvciBob3N0cycsCisgICAgICAgICAgICdkb2MnICAgICAgICA6ICdydW5uaW5nLWNvbmZpZ3xzaG93LWhvc3QnLAorICAgICAgIH0sCisgICAgICAgeworICAgICAgICAgICAgJ2ZpZWxkJyAgICAgICAgOiAnd29yZCcsCisgICAgICAgICAgICAndHlwZScgICAgICAgICA6ICdob3N0JywKKyAgICAgICAgICAgICdjb21wbGV0aW9uJyAgIDogJ2NvbXBsZXRlLWZyb20tYW5vdGhlcicsCisgICAgICAgICAgICAnb3RoZXInICAgICAgICA6ICdob3N0fG1hYycsCisgICAgICAgICAgICAncGFyZW50LWZpZWxkJyA6IE5vbmUsCisgICAgICAgICAgICAnZGF0YS1oYW5kbGVyJyA6ICdhbGlhcy10by12YWx1ZScsCisgICAgICAgICAgICAnYWN0aW9uJyAgICAgICA6ICdsZWdhY3ktY2xpJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwKKyAgICAgICB9CisgICAgKSwKKykKKworcmVnaXN0ZXJfcnVubmluZ19jb25maWcoJ2hvc3QnLCA1MDAwLCBOb25lLCBydW5uaW5nX2NvbmZpZ19ob3N0LCBob3N0X3J1bm5pbmdfY29uZmlnX3R1cGxlKQorCitkZWYgcnVubmluZ19jb25maWdfdm5zKGNvbnRleHQsIGNvbmZpZywgd29yZHMpOgorICAgICIiIgorICAgIEFkZCB0aGUgVk5TIGNvbmZpZ3VyYXRpb24gZGV0aWxzCisgICAgdGhpcyBjb21tYW5kIHdpbGwgb25seSBnZW5lcmF0ZSB2bnMgdW5kZXIgZGVmYXVsdCB0ZW5hbnQgCisgICAgb3RoZXIgdm5zcyB3aWxsIGJlIGdlbmVyYXRlZCB1bmRlciBydW5uaW5nX2NvbmZpZ190ZW5hbnQKKyAgICAiIiIKKyAgICAjZ2VuZXJhdGUgc3BlY2lmaWMgdm5zIGNvbmZpZ3VyYXRpb24sIHVzZWQgaW4gdGVuYW50IGNvbmZpZyBnZW5lcmF0aW9uIHRvbworICAgIGlmIGxlbih3b3JkcykgPiAwOgorICAgICAgICAjIFhYWCBzaG91bGQgdGhlIHZucy1kZWZpbmlpdG9uIGFsc28gYmUgaW5jbHVkZWQ/CisgICAgICAgIHNkbnNoLnNob3dfdm5zX2RlZmluaXRpb25fcnVubmluZ19jb25maWcoY29uZmlnLCB3b3Jkc1swXSkKKyAgICAgICAgY29uZmlnICs9IHNkbnNoLnNob3dfdm5zX3J1bm5pbmdfY29uZmlnKHdvcmRzWzBdKQorICAgICAgICByZXR1cm4KKworICAgICNnZW5lcmF0ZSBhbGwgVk5TcyBmb3IgZGVmYXVsdCB0ZW5hbnQsIHRoaXMgaXMgdXNlZCBiYWNrd2FyZCBjb21wYXRpYmxlIGFzICJzaG93IHJ1bm5pbmctY29uZmlnIHZucyIKKyAgICB0cnk6CisgICAgICAgIHZuc19kZWYgPSBzZG5zaC5nZXRfdGFibGVfZnJvbV9zdG9yZSgndm5zLWRlZmluaXRpb24nKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHZuc19kZWYgPSBbXQorCisgICAgdHJ5OgorICAgICAgICB2bnNfcnVsZXMgPSBjcmVhdGVfb2JqX3R5cGVfZGljdCgndm5zLWludGVyZmFjZS1ydWxlJywgJ3ZucycpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdm5zX3J1bGVzID0ge30KKworICAgIHRyeToKKyAgICAgICAgdm5zX2FjbHMgPSBjcmVhdGVfb2JqX3R5cGVfZGljdCgndm5zLWFjY2Vzcy1saXN0JywgJ3ZucycpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdm5zX2FjbHMgPSB7fQorCisgICAgdHJ5OgorICAgICAgICB2bnNfYWNsX2VudHJpZXMgPSBjcmVhdGVfb2JqX3R5cGVfZGljdCgndm5zLWFjY2Vzcy1saXN0LWVudHJ5JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Zucy1hY2Nlc3MtbGlzdCcpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdm5zX2FjbF9lbnRyaWVzID0ge30KKworICAgIHRyeToKKyAgICAgICAgdm5zX2ludGVyZmFjZSA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KCd2bnMtaW50ZXJmYWNlLWNvbmZpZycsICd2bnMnKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHZuc19pbnRlcmZhY2UgPSB7fQorCisgICAgdHJ5OgorICAgICAgICB2bnNfaW50ZXJmYWNlX2FjbCA9IGNyZWF0ZV9vYmpfdHlwZV9kaWN0KCd2bnMtaW50ZXJmYWNlLWFjY2Vzcy1saXN0JywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndm5zLWludGVyZmFjZScpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgdm5zX2ludGVyZmFjZV9hY2wgPSB7fQorICAgICAgICAKKyAgICAjCisgICAgIyB2bnMtZGVmaW5pdGlvbgorICAgIGZvciB2bnMgaW4gdm5zX2RlZjoKKyAgICAgICAgaWYgdm5zWyd0ZW5hbnQnXT09J2RlZmF1bHQnOgorICAgICAgICAgICAgdm5zX25hbWUgPSB2bnNbJ2lkJ10KKyAgICAgICAgICAgIGNvbmZpZy5hcHBlbmQoJyFcbnZucy1kZWZpbml0aW9uICVzXG4nICUgdm5zWyd2bnNuYW1lJ10pCisgICAgICAgICAgICBydW5uaW5nX2NvbmZpZ192bnNfZGV0YWlscyhjb25maWcsIHZucykKKyAgICAgICAgICAgIGlmIHZuc19uYW1lIGluIHZuc19ydWxlczoKKyAgICAgICAgICAgICAgICBydW5uaW5nX2NvbmZpZ192bnNfaWZfcnVsZShjb25maWcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2bnNfcnVsZXNbdm5zX25hbWVdLGluZGVudD0xKQorICAgICMKKyAgICAjIHZucworICAgIGFjbF9rZXkgPSBtaS5waygndm5zLWFjY2Vzcy1saXN0JykKKyAgICBpZl9rZXkgPSBtaS5waygndm5zLWludGVyZmFjZS1jb25maWcnKQorCisgICAgZm9yIHZucyBpbiB2bnNfZGVmOgorICAgICAgICBpZiB2bnNbJ3RlbmFudCddID09J2RlZmF1bHQnOgorICAgICAgICAgICAgdm5zX25hbWUgPSB2bnNbJ2lkJ10KKyAgICAgICAgICAgIHZuc19jb25maWcgPSBbXQorICAgIAorICAgICAgICAgICAgZm9yIGFjbCBpbiB2bnNfYWNscy5nZXQodm5zX25hbWUsIFtdKToKKyAgICAgICAgICAgICAgICBhY2xfaWQgPSBhY2xbYWNsX2tleV0gICAgICAgIyBjb21wb3VuZCBwcmltYXJ5IGtleSB2YWx1ZQorICAgICAgICAgICAgICAgIHJ1bm5pbmdfY29uZmlnX3Zuc19hY2wodm5zX2NvbmZpZywgdm5zX25hbWUsIGFjbCwgdm5zX2FjbF9lbnRyaWVzW2FjbF9pZF0saW5kZW50PTEpCisgICAgCisgICAgICAgICAgICBmb3Igdm5zX2lmIGluIHZuc19pbnRlcmZhY2UuZ2V0KHZuc19uYW1lLCBbXSk6CisgICAgICAgICAgICAgICAgdm5zX2lmX2FjbF9jb25maWcgPSBbXQorICAgICAgICAgICAgICAgIHZuc19pZl9pZCA9IHZuc19pZltpZl9rZXldICAjIGNvbXBvdW5kIHByaW1hcnkga2V5IHZhbHVlCisgICAgICAgICAgICAgICAgaWYgdm5zX2lmX2lkIGluIHZuc19pbnRlcmZhY2VfYWNsOgorICAgICAgICAgICAgICAgICAgICBydW5uaW5nX2NvbmZpZ192bnNfaWZfYW5kX2FjY2Vzc19ncm91cCh2bnNfaWZfYWNsX2NvbmZpZywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm5zX25hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZuc19pZlsnaW50ZXJmYWNlJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZuc19pbnRlcmZhY2VfYWNsW3Zuc19pZl9pZF0saW5kZW50PTEpCisgICAgICAgICAgICAgICAgaWYgdm5zX2lmX2FjbF9jb25maWc6CisgICAgICAgICAgICAgICAgICAgIHZuc19jb25maWcuYXBwZW5kKCIgIGludGVyZmFjZSAlc1xuIiAlIHZuc19pZlsnaW50ZXJmYWNlJ10pCisgICAgICAgICAgICAgICAgICAgIHZuc19jb25maWcgKz0gdm5zX2lmX2FjbF9jb25maWcKKyAgICAKKyAgICAgICAgICAgIGlmIGxlbih2bnNfY29uZmlnKSA+IDA6CisgICAgICAgICAgICAgICAgY29uZmlnLmFwcGVuZCgnIVxudm5zICVzXG4nICUgdm5zWyd2bnNuYW1lJ10pCisgICAgICAgICAgICAgICAgY29uZmlnICs9IHZuc19jb25maWcKKyAgICAgICAgICAgICAgICB2bnNfY29uZmlnID0gW10KKworCitkZWYgaXNfdm5zX2VuYWJsZWQoY29udGV4dCk6CisgICAgcmV0dXJuIGNvbnRleHQubmV0dmlydF9mZWF0dXJlX2VuYWJsZWQoKQorCit2bnNfcnVubmluZ19jb25maWdfdHVwbGUgPSAoCisgICAgKAorICAgICAgICB7CisgICAgICAgICAgICAnb3B0aW9uYWwnICAgOiBGYWxzZSwKKyAgICAgICAgICAgICdmaWVsZCcgICAgICA6ICdydW5uaW5nLWNvbmZpZycsCisgICAgICAgICAgICAndHlwZScgICAgICAgOiAnZW51bScsCisgICAgICAgICAgICAndmFsdWVzJyAgICAgOiAndm5zJywKKyAgICAgICAgICAgICdzaG9ydC1oZWxwJyA6ICdDb25maWd1cmF0aW9uIGZvciBuZXR3b3JrIHZpcnR1YWxpemF0aW9uJywKKyAgICAgICAgICAgICdkb2MnICAgICAgICA6ICdydW5uaW5nLWNvbmZpZ3xzaG93LXZucycsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICdmaWVsZCcgICAgICAgIDogJ3dvcmQnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgICAgOiAnaWRlbnRpZmllcicsCisgICAgICAgICAgICAnY29tcGxldGlvbicgICA6ICdjb21wbGV0ZS1mcm9tLWFub3RoZXInLAorICAgICAgICAgICAgJ290aGVyJyAgICAgICAgOiAndm5zLWRlZmluaXRpb258dm5zbmFtZScsCisgICAgICAgICAgICAncGFyZW50LWZpZWxkJyA6IE5vbmUsCisgICAgICAgICAgICAnYWN0aW9uJyAgICAgICA6ICdsZWdhY3ktY2xpJywKKyAgICAgICAgICAgICdvcHRpb25hbCcgICAgIDogVHJ1ZSwKKyAgICAgICAgfQorICAgICksCispCisKK3JlZ2lzdGVyX3J1bm5pbmdfY29uZmlnKCd2bnMnLCA3MDAwLCBpc192bnNfZW5hYmxlZCwgcnVubmluZ19jb25maWdfdm5zLCB2bnNfcnVubmluZ19jb25maWdfdHVwbGUpCisKKyN0ZW5hbnQgcnVubmluZyBjb25maWcKK2RlZiBydW5uaW5nX2NvbmZpZ190ZW5hbnQoY29udGV4dCwgY29uZmlnLCB3b3Jkcyk6CisKKyAgICBpZiBsZW4od29yZHMpID4gMDoKKyAgICAgICAgIyBYWFggc2hvdWxkIHRoZSB2bnMtZGVmaW5paXRvbiBhbHNvIGJlIGluY2x1ZGVkPworICAgICAgICBzZG5zaC5zaG93X3RlbmFudF9ydW5uaW5nX2NvbmZpZyhjb25maWcsIHdvcmRzWzBdKQorICAgICAgICByZXR1cm4KKworICAgIHRyeToKKyAgICAgICAgdGVuYW50cyA9IHNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKCd0ZW5hbnQnKQorICAgIGV4Y2VwdCBFeGNlcHRpb246CisgICAgICAgIHRlbmFudHMgPSBbXQorCisgICAgZm9yIHRlbmFudCBpbiB0ZW5hbnRzOgorICAgICAgICBzZG5zaC5zaG93X3RlbmFudF9ydW5uaW5nX2NvbmZpZyhjb25maWcsIHRlbmFudFsnbmFtZSddKQorCisKK3RlbmFudF9ydW5uaW5nX2NvbmZpZ190dXBsZSA9ICgKKyAgICAoCisgICAgICAgIHsKKyAgICAgICAgICAgICdvcHRpb25hbCcgICA6IEZhbHNlLAorICAgICAgICAgICAgJ2ZpZWxkJyAgICAgIDogJ3J1bm5pbmctY29uZmlnJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICA6ICdlbnVtJywKKyAgICAgICAgICAgICd2YWx1ZXMnICAgICA6ICd0ZW5hbnQnLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0NvbmZpZ3VyYXRpb24gZm9yIFRlbmFudCcsCisgICAgICAgICAgICAnZG9jJyAgICAgICAgOiAncnVubmluZy1jb25maWd8c2hvdy10ZW5hbnQnLAorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAnZmllbGQnICAgICAgICA6ICd3b3JkJywKKyAgICAgICAgICAgICd0eXBlJyAgICAgICAgIDogJ2lkZW50aWZpZXInLAorICAgICAgICAgICAgJ2NvbXBsZXRpb24nICAgOiAnY29tcGxldGUtZnJvbS1hbm90aGVyJywKKyAgICAgICAgICAgICdvdGhlcicgICAgICAgIDogJ3RlbmFudHxuYW1lJywKKyAgICAgICAgICAgICdwYXJlbnQtZmllbGQnIDogTm9uZSwKKyAgICAgICAgICAgICdhY3Rpb24nICAgICAgIDogJ2xlZ2FjeS1jbGknLAorICAgICAgICAgICAgJ29wdGlvbmFsJyAgICAgOiBUcnVlLAorICAgICAgICB9CisgICAgKSwKKykKKworcmVnaXN0ZXJfcnVubmluZ19jb25maWcoJ3RlbmFudCcsIDcwMDAsIGlzX3Zuc19lbmFibGVkLCBydW5uaW5nX2NvbmZpZ190ZW5hbnQsIHRlbmFudF9ydW5uaW5nX2NvbmZpZ190dXBsZSkKKworZGVmIHJ1bm5pbmdfY29uZmlnX3N0YXRpY19hcnAoY29udGV4dCwgY29uZmlnLCB3b3Jkcyk6CisKKyAgICB0cnk6CisgICAgICAgIHN0YXRpY0FSUHMgPSBzZG5zaC5nZXRfdGFibGVfZnJvbV9zdG9yZSgnc3RhdGljLWFycCcpCisgICAgZXhjZXB0IEV4Y2VwdGlvbjoKKyAgICAgICAgc3RhdGljQVJQcyA9IFtdCisgICAgZmlyc3Q9VHJ1ZQorICAgIGZvciBhcnAgaW4gc3RhdGljQVJQczoKKyAgICAgICAgaWYgZmlyc3Q6CisgICAgICAgICAgICBjb25maWcuYXBwZW5kKCchXG5hcnAgJXMgJXNcbicgJSAoYXJwWydpcCddLCBhcnBbJ21hYyddKSkKKyAgICAgICAgICAgIGZpcnN0PUZhbHNlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBjb25maWcuYXBwZW5kKCdhcnAgJXMgJXNcbicgJSAoYXJwWydpcCddLCBhcnBbJ21hYyddKSkKKworc3RhdGljQVJQX3J1bm5pbmdfY29uZmlnX3R1cGxlID0gKAorICAgICgKKyAgICAgICAgeworICAgICAgICAgICAgJ29wdGlvbmFsJyAgIDogRmFsc2UsCisgICAgICAgICAgICAnZmllbGQnICAgICAgOiAncnVubmluZy1jb25maWcnLAorICAgICAgICAgICAgJ3R5cGUnICAgICAgIDogJ2VudW0nLAorICAgICAgICAgICAgJ3ZhbHVlcycgICAgIDogJ3N0YXRpYy1hcnAnLAorICAgICAgICAgICAgJ3Nob3J0LWhlbHAnIDogJ0NvbmZpZ3VyYXRpb24gZm9yIHN0YXRpYyBBUlAgZW50cnknLAorICAgICAgICAgICAgJ2RvYycgICAgICAgIDogJ3J1bm5pbmctY29uZmlnfHNob3ctc3RhdGljLWFycCcsCisgICAgICAgIH0sCisgICAgKSwKKykKKworcmVnaXN0ZXJfcnVubmluZ19jb25maWcoJ3N0YXRpYy1hcnAnLCA2MDAwLCBOb25lLCBydW5uaW5nX2NvbmZpZ19zdGF0aWNfYXJwLCBzdGF0aWNBUlBfcnVubmluZ19jb25maWdfdHVwbGUpCisKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgaW1wbGVtZW50X3Nob3dfcnVubmluZ19jb25maWcod29yZHMpOgorICAgICIiIgorICAgIE1hbmFnZXIgZm9yIHRoZSAnc2hvdyBydW5uaW5nLWNvbmZpZycgY29tbWFuZCwgd2hpY2ggY2FsbHMgdGhlCisgICAgc3BlY2lmaWMgZGV0YWlsIGZ1bmN0aW9ucyBmb3IgYW55IG9mIHRoZSBwYXJhbWV0ZXJzLgorICAgICIiIgorCisgICAgIyBMT09LISBoYXJkd2lyZWQgLSBuZWVkIHRvIHVzZSB0aGUgb2JqX3R5cGVfaW5mbyBhbmQgdGhlIGZpZWxkX2xpc3QKKyAgICAjIExPT0shIGhvdyBhcmUgdGhlc2Ugc29ydGVkPworICAgIGNvbmZpZyA9IFtdCisgICAgaWYgbGVuKHdvcmRzKSA+IDA6CisgICAgICAgICMgcGljayB0aGUgd29yZAorICAgICAgICBjaG9pY2UgPSB1dGlmLmZ1bGxfd29yZF9mcm9tX2Nob2ljZXMod29yZHNbMF0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RyeV9pdGVtc19lbmFibGVkKCkpCisgICAgICAgIGlmIHNkbnNoLm5ldHZpcnRfZmVhdHVyZV9lbmFibGVkKCkgYW5kICd2bnMnLnN0YXJ0c3dpdGgod29yZHNbMF0pOgorICAgICAgICAgICAgaWYgY2hvaWNlOgorICAgICAgICAgICAgICAgIHJldHVybiBzZG5zaC5lcnJvcl9tc2coIiVzIGFuZCAlcyBhbWJpZ3VvdXMiICUgKGNob2ljZSwgJ3ZucycpKQorICAgICAgICAgICAgY2hvaWNlID0gJ3ZucycKKworICAgICAgICBpZiBjaG9pY2U6IAorICAgICAgICAgICAgcGVyZm9ybV9ydW5uaW5nX2NvbmZpZyhjaG9pY2UsIHNkbnNoLCBjb25maWcsIHdvcmRzKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuIHNkbnNoLmVycm9yX21zZygidW5rbm93biBydW5uaW5nLWNvbmZpZyBpdGVtOiAlcyIgJSB3b3Jkc1swXSkKKyAgICAgICAgIyBjb25maWdbOi0xXSByZW1vdmVzIHRoZSBsYXN0IHRyYWlsaW5nIG5ld2xpbmUKKyAgICAgICAgcmV0dXJuICcnLmpvaW4oY29uZmlnKVs6LTFdCisgICAgZWxzZToKKyAgICAgICAgIyBDcmVhdGUgdGhlIG9yZGVyIGJhc2VkIG9uIHRoZSByZWdpc3RyYXRpb24gdmFsdWUKKyAgICAgICAgcnVubmluZ19jb25maWdfb3JkZXIgPSBzb3J0ZWQocmVnaXN0cnlfaXRlbXNfZW5hYmxlZCgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9bGFtYmRhIGl0ZW06IHJ1bm5pbmdfY29uZmlnX3JlZ2lzdHJ5W2l0ZW1dWydvcmRlciddKQorICAgICAgICBleGNsdWRlX2xpc3Q9Wyd2bnMnXQorICAgICAgICBmb3IgcmMgaW4gcnVubmluZ19jb25maWdfb3JkZXI6CisgICAgICAgICAgICBpZiByYyBub3QgaW4gZXhjbHVkZV9saXN0OgorICAgICAgICAgICAgICAgIHBlcmZvcm1fcnVubmluZ19jb25maWcocmMsIHNkbnNoLCBjb25maWcsIHdvcmRzKQorCisgICAgICAgIHByZWZpeCA9IFtdCisgICAgICAgIGlmIGxlbihjb25maWcpID4gMDoKKyAgICAgICAgICAgIGRhdGVfc3RyaW5nID0gZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkuc3RyZnRpbWUoIiVZLSVtLSVkLiVIOiVNOiVTICVaIikKKyAgICAgICAgICAgIHByZWZpeC5hcHBlbmQoIiFcbiEgIikKKyAgICAgICAgICAgIHByZWZpeC5hcHBlbmQoc2Ruc2guZG9fc2hvd192ZXJzaW9uKHdvcmRzKSkKKyAgICAgICAgICAgIHByZWZpeC5hcHBlbmQoIlxuISBDdXJyZW50IFRpbWU6ICIpCisgICAgICAgICAgICBwcmVmaXguYXBwZW5kKGRhdGVfc3RyaW5nKQorICAgICAgICAgICAgcHJlZml4LmFwcGVuZCgiXG4hXG4iKQorICAgICAgICAgICAgcHJlZml4LmFwcGVuZCgidmVyc2lvbiAxLjBcbiIpICMgbmVlZCBhIGJldHRlciBkZXRlcm1pbmF0aW9uIG9mIGNvbW1hbmQgc3ludGF4IHZlcnNpb24KKworICAgICAgICAjIGNvbmZpZ1s6LTFdIHJlbW92ZXMgdGhlIGxhc3QgdHJhaWxpbmcgbmV3bGluZQorICAgICAgICByZXR1cm4gJycuam9pbihwcmVmaXgpICArICcnLmpvaW4oY29uZmlnKVs6LTFdCisKKwpkaWZmIC0tZ2l0IGEvY2xpL3NkbmRiLnB5IGIvY2xpL3NkbmRiLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjlhZjlkYzkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvc2RuZGIucHkKQEAgLTAsMCArMSw5NzggQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCisjCisjCisKK2ltcG9ydCBzdG9yZWNsaWVudAoraW1wb3J0IGpzb24KK2ltcG9ydCB1dGlmCisKKyMgVE9ETzoKKyMgZG9uJ3QgdXNlIHRoZSBweXRob24gdHlwZSBvZiB0aGUgc3RyaW5nLCB1c2UgdGhlIAorIyAgc2NoZW1hJ3MgdHlwZSBkZXNjcmlwdGlvbgorIworIyBhc3NvY2lhdGUgdGhlIGNvbXBsZXggdHlwZSB3aXRoIHRoZSBzY2hlbWEgc28gdGhhdAorIyAgZHVyaW5nIGxlYWYgZ2VuZXJhdGlvbiwgdGhlIGNvbXBsZXggc2NoZW1hIHR5cGUKKyMgIGNhbiBiZSB1c2VkIHRvIGRpc3BsYXkgdGhlIHZhbHVlCisjCisKKworZGVmIHN0cmluZ190eXBlKHZhbHVlKToKKyAgICBpZiB0eXBlKHZhbHVlKSA9PSBzdHIgb3IgdHlwZSh2YWx1ZSkgPT0gdW5pY29kZToKKyAgICAgICAgcmV0dXJuIFRydWUKKworCitkZWYgaW50ZWdlcl90eXBlKHZhbHVlKToKKyAgICBpZiB0eXBlKHZhbHVlKSA9PSBpbnQgb3IgdHlwZSh2YWx1ZSkgPT0gbG9uZzoKKyAgICAgICAgcmV0dXJuIFRydWUKKworCitkZWYgbnVtZXJpY190eXBlKHZhbHVlKToKKyAgICBpZiAoaW50ZWdlcl90eXBlKHZhbHVlKSBvciAKKyAgICAgIHR5cGUodmFsdWUpID09IGZsb2F0IG9yIHR5cGUodmFsdWUpID09IGNvbXBsZXgpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCisKK2RlZiBhdG9taWNfdHlwZSh2YWx1ZSk6CisgICAgaWYgKHN0cmluZ190eXBlKHZhbHVlKSBvcgorICAgICBudW1lcmljX3R5cGUodmFsdWUpIG9yCisgICAgIHR5cGUodmFsdWUpID09IGJvb2wpOgorICAgICAgICByZXR1cm4gVHJ1ZQorCisKK2RlZiBwYXRoX2FkZGVyKHByZWZpeCwgbmV4dGZpeCk6CisgICAgaWYgcHJlZml4ID09ICcnOgorICAgICAgICByZXR1cm4gbmV4dGZpeAorICAgIHJldHVybiAnJXMvJXMnICUgKHByZWZpeCwgbmV4dGZpeCkKKworCitjbGFzcyBTRE5EQigpOgorICAgIAorICAgICMgTm90ZXM6CisgICAgIworICAgICMgVGhlIGl0ZW0gb3JkZXIgb2YgdGhlIGRpY3Rpb25hcnktbGlrZSBzdHJ1Y3R1cmVzIGluIHRoZSBzY2hlbWEKKyAgICAjIGlzIGFjdHVhbGx5IG5vdCBvcmRlci1lZC4gIFRoZSBjb2x1bW5zIG9mIHRoZXNlIGl0ZW1zLCB0aGVuCisgICAgIyBjYW4ndCBiZSBkZXJpdmVkIGZyb20gdGhlIHNjaGVtYS4KKyAgICAjCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbW9kaSwgc2Ruc2gsIHBwKToKKyAgICAgICAgc2VsZi5tb2RpID0gbW9kaQorICAgICAgICBzZWxmLnNkbnNoID0gc2Ruc2ggICAgICAgICAgICAgICMgYWNjZXNzIHRvIHJlc3QgYXB1LCBuZWVkcyBoZWxwCisgICAgICAgIHNlbGYucHAgPSBwcCAgICAgICAgICAgICAgICAgICAgIyBhY2Nlc3MgdG8gZm9ybWF0cywgbmVlZHMgaGVscAorCisgICAgICAgIHNlbGYua25vd25fdHlwZXMgPSBbCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0lOVEVHRVInLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdTVFJJTkcnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCT09MRUFOJywgICAgICMgVHJ1ZS9GYWxzZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdCSU5BUlknLCAgICAgICMgYml0IGFycmF5CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0xFQUYnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMRUFGX0xJU1QnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICdMSVNUJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnQ09OVEFJTkVSJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAnUkVGRVJFTkNFJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIF0KKworICAgICAgICBzZWxmLmtub3duX2RhdGFfc291cmNlcyA9IFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZG5wbGF0Zm9ybS1tb2R1bGUtZGF0YS1zb3VyY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3N3aXRjaC1kYXRhLXNvdXJjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29udHJvbGxlci1kYXRhLXNvdXJjZScsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAndG9wb2xvZ3ktZGF0YS1zb3VyY2UnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2NvbmZpZycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdCisgICAgICAgIHNlbGYuY29udHJvbGxlciA9ICdsb2NhbGhvc3QnCisgICAgICAgIHNlbGYuc2RuZGJfcG9ydCA9IDgwODIKKyAgICAgICAgc2VsZi5zY2hlbWFfcmVxdWVzdCgpCisgICAgICAgIHNlbGYuaW50NjRtYXggPSAyKio2MyAtIDEKKyAgICAgICAgc2VsZi5pbnQ2NG1pbiA9IC0yKio2MworCisKKyAgICBkZWYgbW0oc2VsZiwgdik6CisgICAgICAgICIiIgorICAgICAgICBRdWljayBjb252ZXJ0ZXIgZm9yIHRob3NlIHZhbHVlcyB3aGljaCBhcmUgc29tZQorICAgICAgICB2YXJpYXRpb24gb2YgaW50X21heCBmb3IgYSA2NCBiaXQgamF2YSBzaWduZWQgaW50ZWdlciwKKyAgICAgICAgYW5kIGludF9taW4gZm9yIGEgNjQgYml0IGphdmEgc2lnbmVkIGludGVnZXIKKyAgICAgICAgIiIiCisgICAgICAgIGlmIHYgPT0gc2VsZi5pbnQ2NG1heDoKKyAgICAgICAgICAgIHJldHVybiAnJyAjICcyXjYzJworICAgICAgICBpZiB2ID09IHNlbGYuaW50NjRtaW46CisgICAgICAgICAgICByZXR1cm4gJycgIyAnLTJeNjMnCisgICAgICAgIHJldHVybiB2CisKKworICAgICMgaXNvbGF0ZSByZWZlcmVuY2VzIHRvIG91dHNpZGUgZW50aXRpZXMsIGllOgorICAgICMgc2Ruc2ggYW5kIHBwIHJlZmVyZW5jZXMgbmVlZCB0byBiZSBjb2xsZWN0ZWQgaGVyZQorICAgICMgaW4gcHJlcGFyYXRpb24gZm9yIGJldHRlciB0aW1lcy4KKyAgICBkZWYgY29udHJvbGxlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNlbGYuc2Ruc2guY29udHJvbGxlcgorCisKKyAgICBkZWYgc2NoZW1hX3JlcXVlc3Qoc2VsZik6CisgICAgICAgIHNlbGYuc2RuZGJfcG9ydCA9IDgwODIKKyAgICAgICAgdXJsID0gKCdodHRwOi8vJXM6JXMvYXBpL3YxL3NjaGVtYS9jb250cm9sbGVyJyAlCisgICAgICAgICAgICAgICAgKHNlbGYuY29udHJvbGxlciwgc2VsZi5zZG5kYl9wb3J0KSkKKyAgICAgICAgc2VsZi5zY2hlbWEgPSB7fQorICAgICAgICB0cnk6CisgICAgICAgICAgICBwcmludCB1cmwKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hID0gc2VsZi5zZG5zaC5zdG9yZS5yZXN0X2pzb25fcmVxdWVzdCh1cmwpCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBwcmludCAnQklHIFRST1VCTEUgSU4gU0ROREInLCBlCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgcHJpbnQgc2VsZi5zY2hlbWEua2V5cygpCisKKyAgICAgICAgIyBmb3IgdHlwZXM6IC9hcGkvdjEvbW9kdWxlL2NvbnRyb2xsZXIKKworICAgICAgICBzZWxmLmNyYWNrX3R5cGUoc2VsZi5zY2hlbWEpCisKKworICAgIGRlZiBkYXRhX3Jlc3RfcmVxdWVzdChzZWxmLCBpdGVtKToKKyAgICAgICAgdXJsID0gKCdodHRwOi8vJXM6JXMvYXBpL3YxL2RhdGEvY29udHJvbGxlci8lcycgJQorICAgICAgICAgICAgICAgKHNlbGYuY29udHJvbGxlciwgc2VsZi5zZG5kYl9wb3J0LCBpdGVtKSkKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmVzdF9yZXN1bHQgPSBzZWxmLnNkbnNoLnN0b3JlLnJlc3Rfc2ltcGxlX3JlcXVlc3QodXJsKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgcHJpbnQgJ1VSTCcsIHVybAorICAgICAgICAgICAgcHJpbnQgJ0V4Y2VwdGlvbjogJywgaXRlbSwgZQorICAgICAgICAgICAgcmV0dXJuCisKKyAgICAgICAgcmVzdWx0ID0ganNvbi5sb2FkcyhyZXN0X3Jlc3VsdCkKKyAgICAgICAgIyBwcmludCByZXN1bHQKKyAgICAgICAgIyBwcmludCBzZWxmLmZvcm1hdF90YWJsZShyZXN1bHQsIHJlc3RfaXRlbSkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCisKKyAgICBkZWYgY3JhY2tfZmllbGQoc2VsZiwgbW9kZWwsIGZpZWxkLCBmaWVsZF9kZXNjKToKKyAgICAgICAgcHJpbnQgbW9kZWwsIGZpZWxkCisgICAgICAgIChuYW1lLCB0eXBlLCBiYXNlX3R5cGVfbmFtZSwgYmFzZV90eXBlZGVmLCBtb2R1bGUpID0gXAorICAgICAgICAgICAgKE5vbmUsIE5vbmUsIE5vbmUsIE5vbmUsIE5vbmUpCisgICAgICAgIChhdHRyaWJ1dGVzLCBjaGlsZF9ub2RlcywgZGF0YV9zb3VyY2VzLCBkZXNjcmlwdGlvbikgPSBcCisgICAgICAgICAgICAoTm9uZSwgTm9uZSwgTm9uZSwgTm9uZSkKKyAgICAgICAgKGtleV9ub2RlX25hbm1lcywgdmFsaWRhdG9yLCBkZWZhdWx0VmFsdWVTdHJpbmcpID0gKE5vbmUsIE5vbmUsIE5vbmUpCisgICAgICAgIChsZWFmX3R5cGUsIGxlYWZfc2NoZW1hX25vZGUsIHR5cGVfc2NoZW1hX25vZGUpID0gKE5vbmUsIE5vbmUsIE5vbmUpCisgICAgICAgIChsaXN0X3NjaGVtYV9ub2RlLCBtYW5kYXRvcnkpID0gKE5vbmUsIE5vbmUpCisgICAgICAgICMgdGhyZWUgZmllbGRzIHNlZW0gdG8gaWRlbnRpZnkgdHlwZToKKyAgICAgICAgIyAnbm9kZVR5cGUnLCAnYmFzZVR5cGVOYW1lJywgJ2Jhc2VUeXBlZGVmJworCisgICAgICAgIGZvciAoYXR0ciwgYXR0cl92YWx1ZSkgaW4gZmllbGRfZGVzYy5pdGVtcygpOiAgIAorICAgICAgICAgICAgaWYgYXR0ciA9PSAnbmFtZSc6CisgICAgICAgICAgICAgICAgaWYgYXR0cl92YWx1ZSAhPSBmaWVsZDoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ1dhcm5pbmc6IHNjaGVtYSAlcyAibmFtZSIgJXMgJyBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RvZXNuXCd0IG1hdGNoIGZpZWxkIG5hbWUgJXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChtb2RlbCwgYXR0cl92YWx1ZSwgZmllbGQpCisgICAgICAgICAgICBlbGlmIGF0dHIgPT0gJ25vZGVUeXBlJzoKKyAgICAgICAgICAgICAgICB0eXBlID0gYXR0cl92YWx1ZQorICAgICAgICAgICAgICAgIGlmIHR5cGUgbm90IGluIHNlbGYua25vd25fdHlwZXM6CisgICAgICAgICAgICAgICAgICAgIHByaW50ICdXYXJuaW5nOiBzY2hlbWE6ICVzOiVzIHVua25vd24gdHlwZSAlcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG1vZGVsLCBmaWVsZCwgdHlwZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBwcmludCBtb2RlbCwgZmllbGQsIHR5cGUKKyAgICAgICAgICAgIGVsaWYgYXR0ciA9PSAnZGF0YVNvdXJjZXMnOgorICAgICAgICAgICAgICAgIGRhdGFfc291cmNlcyA9IGF0dHJfdmFsdWUKKyAgICAgICAgICAgICAgICBmb3Igc291cmNlIGluIGRhdGFfc291cmNlczoKKyAgICAgICAgICAgICAgICAgICAgaWYgc291cmNlIG5vdCBpbiBzZWxmLmtub3duX2RhdGFfc291cmNlczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICdXYXJuaW5nOiBzY2hlbWE6ICVzOiVzIHVua25vd24gZGF0YSBzb3VyY2UgJXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWwsIGZpZWxkLCBzb3VyY2UpCisKKyAgICAgICAgICAgIGVsaWYgYXR0ciA9PSAnbWFuZGF0b3J5JzoKKyAgICAgICAgICAgICAgICBtYW5kYXRvcnkgPSBhdHRyX3ZhbHVlCisgICAgICAgICAgICBlbGlmIGF0dHIgPT0gJ2NoaWxkTm9kZXMnOgorICAgICAgICAgICAgICAgIGNoaWxkX25vZGVzID0gYXR0cl92YWx1ZQorICAgICAgICAgICAgZWxpZiBhdHRyID09ICdsZWFmVHlwZSc6CisgICAgICAgICAgICAgICAgbGVhZl90eXBlID0gYXR0cl92YWx1ZQorICAgICAgICAgICAgZWxpZiBhdHRyID09ICd0eXBlU2NoZW1hTm9kZSc6CisgICAgICAgICAgICAgICAgdHlwZV9zY2hlbWFfbm9kZSA9IGF0dHJfdmFsdWUKKyAgICAgICAgICAgIGVsaWYgYXR0ciA9PSAna2V5Tm9kZU5hbWVzJzoKKyAgICAgICAgICAgICAgICBrZXlfbm9kZV9uYW1lcyA9IGF0dHJfdmFsdWUKKyAgICAgICAgICAgIGVsaWYgYXR0ciA9PSAnbGlzdEVsZW1lbnRTY2hlbWFOb2RlJzoKKyAgICAgICAgICAgICAgICBsaXN0X3NjaGVtYV9ub2RlID0gYXR0cl92YWx1ZQorICAgICAgICAgICAgZWxpZiBhdHRyID09ICdsZWFmU2NoZW1hTm9kZSc6CisgICAgICAgICAgICAgICAgbGVhZl9zY2hlbWFfbm9kZSA9IGF0dHJfdmFsdWUKKyAgICAgICAgICAgIGVsaWYgYXR0ciA9PSAndmFsaWRhdG9yJzoKKyAgICAgICAgICAgICAgICB2YWxpZGF0b3IgPSBhdHRyX3ZhbHVlCisgICAgICAgICAgICAgICAgcHJpbnQgbW9kZWwsIGZpZWxkLCAnVkFMSURBVE9SJywgdmFsaWRhdG9yCisgICAgICAgICAgICBlbGlmIGF0dHIgPT0gJ2RlZmF1bHRWYWx1ZVN0cmluZyc6CisgICAgICAgICAgICAgICAgZGVmYXVsdFZhbHVlU3RyaW5nID0gYXR0cl92YWx1ZQorICAgICAgICAgICAgZWxpZiBhdHRyID09ICdiYXNlVHlwZU5hbWUnOgorICAgICAgICAgICAgICAgIGJhc2VfdHlwZV9uYW1lID0gYXR0cl92YWx1ZQorICAgICAgICAgICAgZWxpZiBhdHRyID09ICdiYXNlVHlwZWRlZic6CisgICAgICAgICAgICAgICAgYmFzZV90eXBlZGVmID0gYXR0cl92YWx1ZQorICAgICAgICAgICAgZWxpZiBhdHRyID09ICdhdHRyaWJ1dGVzJzoKKyAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gYXR0cl92YWx1ZQorICAgICAgICAgICAgZWxpZiBhdHRyID09ICdkZXNjcmlwdGlvbic6CisgICAgICAgICAgICAgICAgZGVzY3JpcHRpb24gPSBhdHRyX3ZhbHVlCisgICAgICAgICAgICBlbGlmIGF0dHIgPT0gJ21vZHVsZSc6CisgICAgICAgICAgICAgICAgbW9kdWxlID0gYXR0cl92YWx1ZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCAnV2FybmluZzogc2NoZW1hOiAlczolcyB1bmtub3duIGF0dHJpYnV0ZSAlcycgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAobW9kZWwsIGZpZWxkLCBhdHRyKQorICAgICAgICAgICAgICAgIHByaW50ICIgICAtLSIsIGF0dHIsIGF0dHJfdmFsdWUKKyAgICAgICAgCisKKyAgICBkZWYgY3JhY2tfY29udGFpbmVyKHNlbGYsIGNvbnRhaW5lcik6CisgICAgICAgIGZvciAobW9kZWwsIG1vZGVsX2RldGFpbHMpIGluIGNvbnRhaW5lci5pdGVtcygpOgorICAgICAgICAgICAgcHJpbnQgJ01vZGVsJywgbW9kZWwsIG1vZGVsX2RldGFpbHMua2V5cygpCisgICAgICAgICAgICB0eXBlICAgICAgICA9IG1vZGVsX2RldGFpbHNbJ25vZGVUeXBlJ10KKyAgICAgICAgICAgIG5hbWUgICAgICAgID0gbW9kZWxfZGV0YWlsc1snbmFtZSddCisgICAgICAgICAgICBtb2R1bGUgICAgICA9IG1vZGVsX2RldGFpbHNbJ21vZHVsZSddCisKKworICAgICAgICAgICAgaWYgdHlwZSA9PSAnTElTVCc6CisgICAgICAgICAgICAgICAgY2hpbGRfbm9kZXMgPSBtb2RlbF9kZXRhaWxzWydsaXN0RWxlbWVudFNjaGVtYU5vZGUnXQorICAgICAgICAgICAgICAgIGNoaWxkX25vZGVzID0gY2hpbGRfbm9kZXNbJ2NoaWxkTm9kZXMnXQorICAgICAgICAgICAgICAgIHByaW50ICctLSAnLCBuYW1lLCB0eXBlLCBtb2R1bGUsIGNoaWxkX25vZGVzLmtleXMoKQorCisgICAgICAgICAgICAgICAgZm9yIChmaWVsZCwgZmllbGRfdmFsdWUpIGluIGNoaWxkX25vZGVzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuY3JhY2tfZmllbGQobmFtZSwgZmllbGQsIGZpZWxkX3ZhbHVlKQorICAgICAgICAgICAgICAgICAgICAjcHJpbnQgZmllbGQsIGZpZWxkX3ZhbHVlLml0ZW1zKCkKKyAgICAgICAgICAgIGVsaWYgdHlwZSA9PSAnQ09OVEFJTkVSJzoKKyAgICAgICAgICAgICAgICBjaGlsZF9ub2RlcyA9IG1vZGVsX2RldGFpbHNbJ2NoaWxkTm9kZXMnXQorCisgICAgICAgICAgICAgICAgZm9yIChmaWVsZCwgZmllbGRfdmFsdWUpIGluIGNoaWxkX25vZGVzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgICAgIHNlbGYuY3JhY2tfZmllbGQobmFtZSwgZmllbGQsIGZpZWxkX3ZhbHVlKQorICAgICAgICAgICAgICAgICAgICAjcHJpbnQgZmllbGQsIGZpZWxkX3ZhbHVlLml0ZW1zKCkKKworCisgICAgZGVmIGNyYWNrX3R5cGUoc2VsZiwgaXRlbSk6CisgICAgICAgIHR5cGUgPSBpdGVtLmdldCgnbm9kZVR5cGUnKQorICAgICAgICBpZiB0eXBlID09IE5vbmU6CisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICBpZiB0eXBlID09ICdDT05UQUlORVInOgorICAgICAgICAgICAgIyBSRVNUIEFQSSBlbnZlbG9wZS4KKyAgICAgICAgICAgIGNvbnRhaW5lciA9IGl0ZW0uZ2V0KCdjaGlsZE5vZGVzJykKKyAgICAgICAgICAgIGZvciAoZW52ZWxvcGVfbmFtZSwgZW52ZWxvcGVfdmFsdWUpIGluIGNvbnRhaW5lci5pdGVtcygpOgorICAgICAgICAgICAgICAgIGVudmVsb3BlX3R5cGUgPSBlbnZlbG9wZV92YWx1ZS5nZXQoJ25vZGVUeXBlJykKKyAgICAgICAgICAgICAgICBwcmludCAnRU5WRUxPUEUnLCBjb250YWluZXIua2V5cygpLCBlbnZlbG9wZV90eXBlCisgICAgICAgICAgICAgICAgaWYgZW52ZWxvcGVfdHlwZSA9PSAnQ09OVEFJTkVSJzoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5jcmFja19jb250YWluZXIoZW52ZWxvcGVfdmFsdWVbJ2NoaWxkTm9kZXMnXSkKKworCisgICAgZGVmIHBvc3RfbGVhZl9ub2RlX3RvX3JvdyhzZWxmLCBwYXRoLCBzY2hlbWEsIHJlc3VsdHMsIHJvd19kaWN0LCBuYW1lID0gTm9uZSk6CisgICAgICAgIGxlYWZfdHlwZSA9IHNjaGVtYS5nZXQoJ2xlYWZUeXBlJykKKyAgICAgICAgaWYgbmFtZSA9PSBOb25lOgorICAgICAgICAgICAgbmFtZSA9IHNjaGVtYS5nZXQoJ25hbWUnKQorICAgICAgICBpZiBsZWFmX3R5cGUgPT0gJ0VOVU1FUkFUSU9OJzoKKyAgICAgICAgICAgIHR5cGVfbm9kZSA9IHNjaGVtYS5nZXQoJ3R5cGVTY2hlbWFOb2RlJykKKyAgICAgICAgICAgIHByaW50ICdMRUFGIEVOVU0nLCB0eXBlX25vZGUsIHR5cGVfbm9kZSAhPSBOb25lCisgICAgICAgICAgICBlbnVtX3Jlc3VsdCA9IHJlc3VsdHMKKyAgICAgICAgICAgIGlmIHR5cGVfbm9kZToKKyAgICAgICAgICAgICAgICBpZiB0eXBlX25vZGUuZ2V0KCdsZWFmVHlwZScpOgorICAgICAgICAgICAgICAgICAgICBlbnVtX3ZhbHVlcyA9IHR5cGVfbm9kZS5nZXQoJ2VudW1lcmF0aW9uU3BlY2lmaWNhdGlvbnMnKQorICAgICAgICAgICAgICAgICAgICBpZiBlbnVtX3ZhbHVlczoKKyAgICAgICAgICAgICAgICAgICAgICAgIGZvciBuYW1lIGluIGVudW1fdmFsdWVzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5hbWVbJ3ZhbHVlJ10gPT0gZW51bV9yZXN1bHQ6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1fcmVzdWx0ID0gbmFtZQorICAgICAgICAgICAgcHJpbnQgcGF0aCwgJ0xFQUYgRU5VTSAlcyA8LSAlcyBmcm9tICVzJyAlIChuYW1lLCBlbnVtX3Jlc3VsdCwgcmVzdWx0cykKKyAgICAgICAgICAgIHJvd19kaWN0W25hbWVdID0gc3RyKGVudW1fcmVzdWx0KQorICAgICAgICBlbGlmIGxlYWZfdHlwZSA9PSAnVU5JT04nOgorICAgICAgICAgICAgcm93X2RpY3RbbmFtZV0gPSBzdHIocmVzdWx0cykKKyAgICAgICAgZWxpZiBhdG9taWNfdHlwZShyZXN1bHRzKToKKyAgICAgICAgICAgIHByaW50IHBhdGgsICdMRUFGICVzIDwtICVzJyAlIChuYW1lLCByZXN1bHRzKQorICAgICAgICAgICAgcm93X2RpY3RbbmFtZV0gPSBzdHIocmVzdWx0cykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50IHBhdGgsICdMRUFGIE1PUkUgREVUQUlMUycsIHNjaGVtYSwgdHlwZShyZXN1bHRzKSwgcmVzdWx0cworCisKKyAgICBkZWYgc2NoZW1hX3RvX3Jlc3VsdHMoc2VsZiwgcGF0aCwgc2NoZW1hLCByZXN1bHRzLCByb3dfZGljdCA9IE5vbmUsIGluZGljZXMgPSBOb25lKToKKyAgICAgICAgIiIiCisgICAgICAgIEdlbmVyYXRvciAoaXRlcmF0b3IpIGZvciBpdGVtcyBpbiB0aGUgcmVzdWx0cywgYXNzb2NpYXRlZCB3aXRoIHRoZQorICAgICAgICBzY2hlbWEgcGFzc2VkIGluLgorCisgICAgICAgICdpbmRleCcgaXMgYSBsaXN0IG9mIGRpY3Rpb25hcnkgb2YgaXRlbXMgd2hpY2ggYXJlIGludGVuZGVkIHRvIGJlIGNvbHVtbnMgaW4gdGhlCisgICAgICAgIHRhYmxlIHdoaWNoIG11c3QgYXBwZWFyIGZvciBldmVyeSBpbnRlcmlvciB0YWJsZS4KKyAgICAgICAgIiIiCisgICAgICAgIG5vZGVfdHlwZSA9IHNjaGVtYS5nZXQoJ25vZGVUeXBlJykKKyAgICAgICAgbmFtZSA9IHNjaGVtYS5nZXQoJ25hbWUnKQorICAgICAgICBwcmludCBwYXRoLCBuYW1lLCAnVFlQRScsIG5vZGVfdHlwZQorCisgICAgICAgIGlmIHJvd19kaWN0ID09IE5vbmU6CisgICAgICAgICAgICByb3dfZGljdCA9IGRpY3QoKQorICAgICAgICBpZiBpbmRpY2VzID09IE5vbmU6CisgICAgICAgICAgICBpbmRpY2VzID0gbGlzdCgpCisKKyAgICAgICAgaWYgbm9kZV90eXBlIGluIFsnTEVBRiddOgorICAgICAgICAgICAgc2VsZi5wb3N0X2xlYWZfbm9kZV90b19yb3cocGF0aCwgc2NoZW1hLCByZXN1bHRzLCByb3dfZGljdCkKKyAgICAgICAgZWxpZiBub2RlX3R5cGUgPT0gJ0xJU1QnOgorICAgICAgICAgICAgcm93ID0ge30gaWYgcm93X2RpY3QgPT0gTm9uZSBlbHNlIGRpY3Qocm93X2RpY3QpCisKKyAgICAgICAgICAgIGRhdWdodGVyID0gc2NoZW1hLmdldCgnbGlzdEVsZW1lbnRTY2hlbWFOb2RlJykKKyAgICAgICAgICAgIGluZGV4ID0gZGF1Z2h0ZXIuZ2V0KCdrZXlOb2RlTmFtZXMnKQorICAgICAgICAgICAgIyB2ZXJpZnkgaW5kZXggaW4gbGlzdF9maWVsZHMKKyAgICAgICAgICAgIGxpc3RfaXRlbXMgPSBkYXVnaHRlci5nZXQoJ2NoaWxkTm9kZXMnKQorICAgICAgICAgICAgcHJpbnQgcGF0aCwgJ0xJU1QnLCBuYW1lLCBpbmRleCwgbGlzdF9pdGVtcy5rZXlzKCkKKyAgICAgICAgICAgIHlpZWxkICgnTElTVC1CRUdJTicsIG5hbWUsIHBhdGgsIGluZGljZXMsIHJvdykKKyAgICAgICAgICAgICMgc3BhdGggPSAnJXMvJXMvJXMnICUgKHBhdGgsIG5hbWUsIGluZGV4X3ZhbHVlKQorICAgICAgICAgICAgIyBhZGRfZmllbGRzKGRlcHRoKzEsIGxpc3RfZmllbGRzKQorICAgICAgICAgICAgZm9yIChpbmRleF92YWx1ZSwgcmVzdWx0KSBpbiByZXN1bHRzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgcHJpbnQgJ1tdJywgJyVzOiVzJyAlIChpbmRleCwgaW5kZXhfdmFsdWUpCisgICAgICAgICAgICAgICAgbmV3X3JvdyA9IGRpY3Qocm93KQorICAgICAgICAgICAgICAgIG5ld19yb3dbJ3wnLmpvaW4oaW5kZXgpXSA9IGluZGV4X3ZhbHVlCisgICAgICAgICAgICAgICAgbmV3X2luZGljZXMgPSBsaXN0KGluZGljZXMpICsgW3tuYW1lIDogaW5kZXhfdmFsdWV9XQorICAgICAgICAgICAgICAgIHNwYXRoID0gJyVzLyVzJyAlIChwYXRoX2FkZGVyKHBhdGgsIG5hbWUpLCBpbmRleF92YWx1ZSkKKyAgICAgICAgICAgICAgICBmb3IgKGl0ZW1fbmFtZSwgaXRlbV92YWx1ZSkgaW4gbGlzdF9pdGVtcy5pdGVtcygpOgorICAgICAgICAgICAgICAgICAgICBpZiBpdGVtX25hbWUgaW4gcmVzdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5zY2hlbWFfdG9fcmVzdWx0cyhzcGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbV92YWx1ZSwgcmVzdWx0W2l0ZW1fbmFtZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5ld19yb3csIG5ld19pbmRpY2VzKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB5aWVsZCBpdGVtCisgICAgICAgICAgICAgICAgcHJpbnQgJ0hFUkUnLCBuZXdfcm93CisgICAgICAgICAgICAgICAgeWllbGQgKCdMSVNULUlURU0nLCBuYW1lLCBwYXRoLCBpbmRpY2VzLCByb3csIG5ld19yb3cpCisgICAgICAgICAgICB5aWVsZCAoJ0xJU1QtRU5EJywgbmFtZSwgcGF0aCwgaW5kaWNlcyArIFt7J3wnLmpvaW4oaW5kZXgpIDogTm9uZX1dLCByb3cpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgZWxpZiBub2RlX3R5cGUgPT0gJ0xFQUZfTElTVCc6CisgICAgICAgICAgICAjcm93ID0ge30gaWYgcm93X2RpY3QgPT0gTm9uZSBlbHNlIGRpY3Qocm93X2RpY3QpCisgICAgICAgICAgICByb3cgPSB7fQorICAgICAgICAgICAgIyB2ZXJpZnkgaW5kZXggaW4gbGlzdF9maWVsZHMKKyAgICAgICAgICAgIGRhdWdodGVyID0gc2NoZW1hLmdldCgnbGVhZlNjaGVtYU5vZGUnKQorICAgICAgICAgICAgbGFzdF9pbmRleCA9IGluZGljZXNbLTFdCisgICAgICAgICAgICBpZiBsZW4obGFzdF9pbmRleC5rZXlzKCkpID09IDE6CisgICAgICAgICAgICAgICAgcGFyZW50X25hbWUgPSBsYXN0X2luZGV4W2xhc3RfaW5kZXgua2V5cygpWzBdXQorICAgICAgICAgICAgcHJpbnQgcGF0aCwgJ0xFQUYtTElTVCcsIHBhcmVudF9uYW1lLCBpbmRpY2VzLCBkYXVnaHRlci5rZXlzKCksIGxhc3RfaW5kZXgKKyAgICAgICAgICAgIHlpZWxkICgnTElTVC1CRUdJTicsIHBhcmVudF9uYW1lLCBwYXRoLCBpbmRpY2VzLCByb3cpCisgICAgICAgICAgICAjIHNwYXRoID0gJyVzLyVzLyVzJyAlIChwYXRoLCBuYW1lLCBpbmRleF92YWx1ZSkKKyAgICAgICAgICAgICMgYWRkX2ZpZWxkcyhkZXB0aCsxLCBsaXN0X2ZpZWxkcykKKyAgICAgICAgICAgIG5ld19yb3cgPSBkaWN0KHJvdykKKyAgICAgICAgICAgIGl0ZW1fc2NoZW1hID0gZGF1Z2h0ZXIuZ2V0KCd0eXBlU2NoZW1hTm9kZScpCisgICAgICAgICAgICBsZWFmX25vZGVfdHlwZSA9IGl0ZW1fc2NoZW1hLmdldCgnbm9kZVR5cGUnKQorICAgICAgICAgICAgaWYgbGVhZl9ub2RlX3R5cGUgIT0gJ1RZUEUnOgorICAgICAgICAgICAgICAgIHByaW50ICdMRUFGLUxJU1Qgd2l0aG91dCBpbnRlcmlvciBUWVBFIG5vZGU6ICVzJyAlIGxlYWZfbm9kZV90eXBlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGxlYWZfdHlwZSA9IGl0ZW1fc2NoZW1hLmdldCgnbGVhZlR5cGUnKQorICAgICAgICAgICAgICAgIHByaW50ICdYWFgnLCByZXN1bHRzLCBuYW1lCisgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gcmVzdWx0czoKKyAgICAgICAgICAgICAgICAgICAgbmV3X2luZGljZXMgPSBsaXN0KGluZGljZXMpICsgW3tuYW1lIDogaXRlbX1dCisgICAgICAgICAgICAgICAgICAgIHNlbGYucG9zdF9sZWFmX25vZGVfdG9fcm93KHBhdGgsIGl0ZW1fc2NoZW1hLCBpdGVtLCByb3csIG5hbWUpCisgICAgICAgICAgICAgICAgICAgIHlpZWxkICgnTElTVC1JVEVNJywgcGFyZW50X25hbWUsIHBhdGgsIG5ld19pbmRpY2VzLCByb3csIG5ld19yb3cpCisKKyAgICAgICAgICAgIG5ld19pbmRpY2VzID0gbGlzdChpbmRpY2VzKSArIFt7bmFtZSA6IE5vbmV9XQorICAgICAgICAgICAgcHJpbnQgJ1hZWicsIG5hbWUsIG5ld19pbmRpY2VzCisgICAgICAgICAgICB5aWVsZCAoJ0xJU1QtRU5EJywgcGFyZW50X25hbWUsIHBhdGgsIG5ld19pbmRpY2VzLCByb3cpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgICAgIAorICAgICAgICBlbGlmIG5vZGVfdHlwZSA9PSAnQ09OVEFJTkVSJzoKKyAgICAgICAgICAgICMgc2hvdWxkIGFic3RyYWN0IG5hbWUgdHlwZXMgYmUgYWRkZWQ/CisgICAgICAgICAgICBjaGlsZF9ub2RlcyA9IHNjaGVtYS5nZXQoJ2NoaWxkTm9kZXMnKQorICAgICAgICAgICAgcHJpbnQgcGF0aCwgJ0NPTlRBSU5FUicsIG5hbWUsIGNoaWxkX25vZGVzLmtleXMoKQorICAgICAgICAgICAgeWllbGQgKCdDT05UQUlORVItQkVHSU4nLCBuYW1lLCBwYXRoLCBpbmRpY2VzLCByb3dfZGljdCkKKyAgICAgICAgICAgIHNwYXRoID0gcGF0aF9hZGRlcihwYXRoLCBuYW1lKQorICAgICAgICAgICAgIyBhZGRfZmllbGRzKHNwYXRoLCBjaGlsZF9ub2RlcykKKyAgICAgICAgICAgIGJhc2VfZGljdCA9IGRpY3Qocm93X2RpY3QpCisgICAgICAgICAgICBmb3IgKGNoaWxkX25hbWUsIGNoaWxkX3ZhbHVlKSBpbiBjaGlsZF9ub2Rlcy5pdGVtcygpOgorICAgICAgICAgICAgICAgIHByaW50IHBhdGgsICdDT05UQUlORVIgUEFSVCcsIGNoaWxkX25hbWUsIGNoaWxkX25hbWUgaW4gcmVzdWx0cworICAgICAgICAgICAgICAgIGlmIGNoaWxkX25hbWUgaW4gcmVzdWx0czoKKyAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5zY2hlbWFfdG9fcmVzdWx0cyhzcGF0aCwgY2hpbGRfdmFsdWUsIHJlc3VsdHNbY2hpbGRfbmFtZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93X2RpY3QsIGluZGljZXMpOgorICAgICAgICAgICAgICAgICAgICAgICAgeWllbGQgaXRlbQorICAgICAgICAgICAgcHJpbnQgcGF0aCwgJ0NPTlRBSU5FUiBET05FJywgbmFtZSwgcm93X2RpY3QKKyAgICAgICAgICAgIHlpZWxkICgnQ09OVEFJTkVSLUVORCcsIG5hbWUsIHBhdGgsIGluZGljZXMsIGJhc2VfZGljdCwgcm93X2RpY3QpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCAnVFlQRSAlcyBORUVEUyBIRUxQJyAlIG5vZGVfdHlwZQorICAgICAgICAgICAgcHJpbnQgc2NoZW1hCisgICAgICAgICAgICBwcmludCByZXN1bHRzCisKKworICAgIGRlZiBmb3JtYXRfdGFibGUoc2VsZiwgcmVzdWx0LCBuYW1lKToKKyAgICAgICAgIworICAgICAgICAjIGZvcm1hdCBhIHRhYmxlOiBwYWludCBhIHRhYmxlIGFzIGlmIGdlbmVyYXRpbmcgc29tZQorICAgICAgICAjIHRhYmxlIG91dHB1dCBmb3JtYXQgZnJvbSBhIGhpZXJhcmNoaWFsIG9iamVjdC4KKyAgICAgICAgIyAKKyAgICAgICAgIyBjb2x1bW5zIGFyZSB0aGUgbmFtZXMgb2YgYW55IHBhdGggbWVtYmVycyBkb3duIHRvIHRoZQorICAgICAgICAjIG1vc3QgaW50ZXJpb3IgZW50cnkuCisgICAgICAgICMgCisgICAgICAgICMKKworICAgICAgICBkZWYgYWRkX2ZpZWxkcyhkZXB0aCwgZmllbGRzKToKKyAgICAgICAgICAgIGZvciAoZmllbGRfbmFtZSwgZmllbGRfZGV0YWlscykgaW4gZmllbGRzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgIyBpZiB0aGUgY29sdW1uIGlzIGEgbGlzdCwgYWxsIHRoZSBlbnRyaWVzIHVuZGVybmVhdGggbmVlZCB0byBiZSBhZGRlZC4KKyAgICAgICAgICAgICAgICBub2RlX3R5cGUgPSBmaWVsZF9kZXRhaWxzLmdldCgnbm9kZVR5cGUnKQorICAgICAgICAgICAgICAgIHR5cGVfc2NoZW1hID0gZmllbGRfZGV0YWlscy5nZXQoJ3R5cGVTY2hlbWFOb2RlJykKKyAgICAgICAgICAgICAgICBwcmludCBkZXB0aCwgJ0ZJRUxEJywgZmllbGRfbmFtZSwgbm9kZV90eXBlLCB0eXBlX3NjaGVtYQorICAgICAgICAgICAgICAgIGlmIG5vZGVfdHlwZSBpbiBbJ0xFQUYnXToKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IGZpZWxkX25hbWUgaW4gY29sdW1uczoKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnMuYXBwZW5kKGZpZWxkX25hbWUpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnWFhYWCBJTiBUSEVSRScsIGZpZWxkX25hbWUKKyAgICAgICAgICAgICAgICAgICAgaWYgdHlwZV9zY2hlbWEgYW5kIGZpZWxkX25hbWUgbm90IGluIGNvbHVtbl90eXBlOgorICAgICAgICAgICAgICAgICAgICAgICAgY29sdW1uX3R5cGVbZmllbGRfbmFtZV0gPSB0eXBlX3NjaGVtYQorICAgICAgICAgICAgICAgIGVsaWYgbm9kZV90eXBlID09ICdMSVNUJzoKKyAgICAgICAgICAgICAgICAgICAgZGF1Z2h0ZXIgPSBmaWVsZF9kZXRhaWxzLmdldCgnbGlzdEVsZW1lbnRTY2hlbWFOb2RlJykKKyAgICAgICAgICAgICAgICAgICAgaW5kZXggPSBkYXVnaHRlci5nZXQoJ2tleU5vZGVOYW1lcycpCisgICAgICAgICAgICAgICAgICAgICMgdmVyaWZ5IGluZGV4IGluIGxpc3RfZmllbGRzCisgICAgICAgICAgICAgICAgICAgIGxpc3RfZmllbGRzID0gZGF1Z2h0ZXIuZ2V0KCdjaGlsZE5vZGVzJykKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgZGVwdGgsICdMSVNUJywgZmllbGRfbmFtZSwgaW5kZXgsIGxpc3RfZmllbGRzLmtleXMoKQorICAgICAgICAgICAgICAgICAgICBhZGRfZmllbGRzKGRlcHRoKzEsIGxpc3RfZmllbGRzKQorICAgICAgICAgICAgICAgIGVsaWYgbm9kZV90eXBlID09ICdDT05UQUlORVInOgorICAgICAgICAgICAgICAgICAgICAjIHNob3VsZCBhYnN0cmFjdCBuYW1lIHR5cGVzIGJlIGFkZGVkPworICAgICAgICAgICAgICAgICAgICBuYW1lID0gZmllbGRfZGV0YWlscy5nZXQoJ25hbWUnKQorICAgICAgICAgICAgICAgICAgICBjaGlsZF9ub2RlcyA9IGZpZWxkX2RldGFpbHMuZ2V0KCdjaGlsZE5vZGVzJykKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgZGVwdGgsICdDT05UQUlORVInLCBmaWVsZF9uYW1lLCBjaGlsZF9ub2Rlcy5rZXlzKCkKKyAgICAgICAgICAgICAgICAgICAgYWRkX2ZpZWxkcyhkZXB0aCsxLCBjaGlsZF9ub2RlcykKKworICAgICAgICBzY2hlbWEgPSBzZWxmLnNjaGVtYXMuZ2V0KG5hbWUpCisgICAgICAgIGlmIHNjaGVtYSA9PSBOb25lOgorICAgICAgICAgICAgcHJpbnQgJ01pc3NpbmcgU2NoZW1hJywgbmFtZQorICAgICAgICAgICAgcHJpbnQgJ0tub3duOicsICcsJy5qb2luKHNlbGYuc2NoZW1hcy5rZXlzKCkpCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgcHJpbnQgc2NoZW1hLmtleXMoKQorICAgICAgICBkZXNjcmlwdGlvbiA9IHNjaGVtYS5nZXQoJ2Rlc2NyaXB0aW9uJykKKyAgICAgICAgZGF1Z2h0ZXIgPSBzY2hlbWEuZ2V0CisgICAgICAgIGlmIHNjaGVtYS5nZXQoJ25vZGVUeXBlJykgPT0gJ0xJU1QnOgorICAgICAgICAgICAgZGF1Z2h0ZXIgPSBzY2hlbWEuZ2V0KCdsaXN0RWxlbWVudFNjaGVtYU5vZGUnKQorICAgICAgICAgICAgaW5kZXggPSBkYXVnaHRlci5nZXQoJ2tleU5vZGVOYW1lcycpCisgICAgICAgICAgICBmaWVsZHMgPSBkYXVnaHRlci5nZXQoJ2NoaWxkTm9kZXMnKQorICAgICAgICAgICAgY29sdW1ucyA9IFsnfCcuam9pbihpbmRleCldCisgICAgICAgIGVsaWYgc2NoZW1hLmdldCgnbm9kZVR5cGUnKSA9PSAnQ09OVEFJTkVSJzoKKyAgICAgICAgICAgIGluZGV4ID0gc2NoZW1hLmdldCgna2V5Tm9kZU5hbWVzJykKKyAgICAgICAgICAgIGZpZWxkcyA9IHNjaGVtYS5nZXQoJ2NoaWxkTm9kZXMnKQorICAgICAgICAgICAgY29sdW1ucyA9IFtdICMgbm8gaW5kZXggZm9yIENPTlRBSU5FUgorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcHJpbnQgJ1NjaGVtYSAlcywgTm9kZVR5cGUgJXMgbmVlZHMgcm9vdCcgJSAobmFtZSwgc2NoZW1hLmdldCgnbm9kZVR5cGUnKSkKKyAgICAgICAgcHJpbnQgbmFtZSwgc2NoZW1hLmdldCgnbm9kZVR5cGUnKQorICAgICAgICBpZiBkZXNjcmlwdGlvbjoKKyAgICAgICAgICAgIHByaW50ICdNb2RlbCAlcyAiJXMiLCBrZXk6ICVzLCBmaWVsZHM6ICVzJyAlIChuYW1lLCBkZXNjcmlwdGlvbiwgaW5kZXgsIGZpZWxkcy5rZXlzKCkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCAnTW9kZWwgJXMsIGtleSAlcywgZmllbGRzICVzJyAlIChuYW1lLCBpbmRleCwgZmllbGRzLmtleXMoKSkKKyAgICAgICAgaWYgaW5kZXg6CisgICAgICAgICAgICAjIHZlcmlmeSB0aGUgdGhlIGluZGV4IGl0ZW1zIGFyZSAKKyAgICAgICAgICAgIGZvdW5kX2luZGV4ID0gW3ggZm9yIHggaW4gaW5kZXggaWYgeCBpbiBmaWVsZHNdCisgICAgICAgICAgICBwcmludCAnVmVyaWZpZWQgaW5kZXgnLCBmb3VuZF9pbmRleAorICAgICAgICBjb2x1bW5fdHlwZSA9IHt9CisgICAgICAgIGFkZF9maWVsZHMoMSwgZmllbGRzKQorICAgICAgICBwcmludCBjb2x1bW5zCisgICAgICAgIHByaW50ICdDT0xVTU4gVFlQRScsIGxlbihjb2x1bW5fdHlwZSkKKyAgICAgICAgZm9yIChjb2x1bW4sIHNjaGVtYV90eXBlKSBpbiBjb2x1bW5fdHlwZS5pdGVtcygpOgorICAgICAgICAgICAgcHJpbnQgJ0NPTFVNTiBUWVBFJywgY29sdW1uLCBzY2hlbWFfdHlwZQorCisgICAgICAgICMgc2Vjb25kIHZlcnNlLCBzYW1lIGFzIHRoZSBmaXJzdC4KKyAgICAgICAgZGVmIHRhYmxlX21ha2VyKGRlcHRoLCBzY2hlbWEsIHJlc3VsdHMsIGFfcm93KToKKworICAgICAgICAgICAgbm9kZV90eXBlID0gc2NoZW1hLmdldCgnbm9kZVR5cGUnKQorICAgICAgICAgICAgbmFtZSA9IHNjaGVtYS5nZXQoJ25hbWUnKQorICAgICAgICAgICAgcHJpbnQgZGVwdGgsIG5hbWUsICdUWVBFJywgbm9kZV90eXBlCisKKyAgICAgICAgICAgIGlmIG5vZGVfdHlwZSBpbiBbJ0xFQUYnXToKKyAgICAgICAgICAgICAgICBsZWFmX3R5cGUgPSBzY2hlbWEuZ2V0KCdsZWFmVHlwZScpCisgICAgICAgICAgICAgICAgaWYgbGVhZl90eXBlID09ICdFTlVNRVJBVElPTic6CisgICAgICAgICAgICAgICAgICAgIHR5cGVfbW9kZSA9IHNjaGVtYS5nZXQoJ3R5cGVTY2hlbWFOb2RlJykKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ0xFQUYgRU5VTScsIHR5cGVfbW9kZSAhPSBOb25lCisgICAgICAgICAgICAgICAgICAgIGVudW1fcmVzdWx0ID0gcmVzdWx0cworICAgICAgICAgICAgICAgICAgICBpZiB0eXBlX25vZGU6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiB0eXBlX25vZGUuZ2V0KCdsZWFmVHlwZScpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1fdmFsdWVzID0gdHlwZV9ub2RlLmdldCgnZW51bWVyYXRpb25TcGVjaWZpY2F0aW9ucycpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZW51bV92YWx1ZXM6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBuYW1lIGluIGVudW1fdmFsdWVzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgbmFtZVsndmFsdWUnXSA9PSBlbnVtX3Jlc3VsdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtX3Jlc3VsdCA9IG5hbWUKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgZGVwdGgsICdMRUFGIEVOVU0gJXMgPC0gJXMgZnJvbSAlcycgJSAobmFtZSwgZW51bV9yZXN1bHQsIHJlc3VsdHMpCisgICAgICAgICAgICAgICAgICAgIGFfcm93W25hbWVdID0gc3RyKGVudW1fcmVzdWx0KQorICAgICAgICAgICAgICAgIGVsaWYgYXRvbWljX3R5cGUocmVzdWx0cyk6CisgICAgICAgICAgICAgICAgICAgIHByaW50IGRlcHRoLCAnTEVBRiAlcyA8LSAlcycgJSAobmFtZSwgcmVzdWx0cykKKyAgICAgICAgICAgICAgICAgICAgYV9yb3dbbmFtZV0gPSBzdHIocmVzdWx0cykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBwcmludCBkZXB0aCwgJ0xFQUYgTU9SRSBERVRBSUxTJywgc2NoZW1hLCB0eXBlKHJlc3VsdHMpLCByZXN1bHRzCisgICAgICAgICAgICBlbGlmIG5vZGVfdHlwZSA9PSAnTElTVCc6CisgICAgICAgICAgICAgICAgcm93ID0ge30gaWYgYV9yb3cgPT0gTm9uZSBlbHNlIGRpY3QoYV9yb3cpCisKKyAgICAgICAgICAgICAgICBkYXVnaHRlciA9IHNjaGVtYS5nZXQoJ2xpc3RFbGVtZW50U2NoZW1hTm9kZScpCisgICAgICAgICAgICAgICAgaW5kZXggPSBkYXVnaHRlci5nZXQoJ2tleU5vZGVOYW1lcycpCisgICAgICAgICAgICAgICAgIyB2ZXJpZnkgaW5kZXggaW4gbGlzdF9maWVsZHMKKyAgICAgICAgICAgICAgICBsaXN0X2l0ZW1zID0gZGF1Z2h0ZXIuZ2V0KCdjaGlsZE5vZGVzJykKKyAgICAgICAgICAgICAgICBwcmludCBkZXB0aCwgJ0xJU1QnLCBuYW1lLCBpbmRleCwgbGlzdF9pdGVtcy5rZXlzKCkKKyAgICAgICAgICAgICAgICAjIGFkZF9maWVsZHMoZGVwdGgrMSwgbGlzdF9maWVsZHMpCisgICAgICAgICAgICAgICAgZm9yIChpbmRleF92YWx1ZSwgcmVzdWx0KSBpbiByZXN1bHRzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgICAgIHByaW50ICdbXScsICclczolcycgJSAoaW5kZXgsIGluZGV4X3ZhbHVlKQorICAgICAgICAgICAgICAgICAgICByb3dbJ3wnLmpvaW4oaW5kZXgpXSA9IGluZGV4X3ZhbHVlCisgICAgICAgICAgICAgICAgICAgIGZvciAoaXRlbV9uYW1lLCBpdGVtX3ZhbHVlKSBpbiBsaXN0X2l0ZW1zLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgICAgICAgICBpZiBpdGVtX25hbWUgaW4gcmVzdWx0OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmxlX21ha2VyKGRlcHRoKzEsIGl0ZW1fdmFsdWUsIHJlc3VsdFtpdGVtX25hbWVdLCByb3cpCisgICAgICAgICAgICAgICAgICAgIHByaW50ICdBUk9XJywgcm93CisgICAgICAgICAgICAgICAgICAgIHRhYmxlLmFwcGVuZChkaWN0KHJvdykpCisgICAgICAgICAgICBlbGlmIG5vZGVfdHlwZSA9PSAnQ09OVEFJTkVSJzoKKyAgICAgICAgICAgICAgICAjIHNob3VsZCBhYnN0cmFjdCBuYW1lIHR5cGVzIGJlIGFkZGVkPworICAgICAgICAgICAgICAgIGNoaWxkX25vZGVzID0gc2NoZW1hLmdldCgnY2hpbGROb2RlcycpCisgICAgICAgICAgICAgICAgcHJpbnQgZGVwdGgsICdDT05UQUlORVInLCBuYW1lLCBjaGlsZF9ub2Rlcy5rZXlzKCkKKyAgICAgICAgICAgICAgICAjIGFkZF9maWVsZHMoZGVwdGgrMSwgY2hpbGRfbm9kZXMpCisgICAgICAgICAgICAgICAgZm9yIChjaGlsZF9uYW1lLCBjaGlsZF92YWx1ZSkgaW4gY2hpbGRfbm9kZXMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgZGVwdGgsICdDT05UQUlORVIgUEFSVCcsIGNoaWxkX25hbWUKKyAgICAgICAgICAgICAgICAgICAgaWYgY2hpbGRfbmFtZSBpbiByZXN1bHRzOgorICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfbWFrZXIoZGVwdGgrMSwgY2hpbGRfdmFsdWUsIHJlc3VsdHNbY2hpbGRfbmFtZV0sIGFfcm93KQorCisgICAgICAgIHRhYmxlID0gW10KKyAgICAgICAgY29sc193aWR0aCA9IHt9CisKKyAgICAgICAgaWYgdHlwZShyZXN1bHQpID09IGxpc3QgYW5kIGxlbihyZXN1bHQpID09IDE6CisgICAgICAgICAgICBwcmludCAnUFJVTkUgTElTVCcKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlc3VsdFswXQorICAgICAgICB0YWJsZV9tYWtlcigxLCBzY2hlbWEsIHJlc3VsdCwge30pCisKKyAgICAgICAgcHJpbnQgJysrKysrKysrKysrKysnCisgICAgICAgIHByaW50IHRhYmxlCisgICAgICAgIHByaW50ICcrKysrKysrKysrKysrJworCisgICAgICAgIGZvciBjb2x1bW4gaW4gY29sdW1uczoKKyAgICAgICAgICAgIGNvbHNfd2lkdGhbY29sdW1uXSA9IGxlbihjb2x1bW4pCisgICAgICAgIGZvciByb3cgaW4gdGFibGU6CisgICAgICAgICAgICBmb3IgKGl0ZW0sIHZhbHVlKSBpbiByb3cuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpZiBpdGVtIG5vdCBpbiBjb2xzX3dpZHRoOgorICAgICAgICAgICAgICAgICAgICBjb2xzX3dpZHRoW2l0ZW1dID0gbGVuKHZhbHVlKQorICAgICAgICAgICAgICAgIGVsaWYgbGVuKHZhbHVlKSA+IGNvbHNfd2lkdGhbaXRlbV06CisgICAgICAgICAgICAgICAgICAgIGNvbHNfd2lkdGhbaXRlbV0gPSBsZW4odmFsdWUpCisgICAgICAgIAorICAgICAgICBwcmludCAnQ09MVU1OUy0+JywgY29sdW1ucworICAgICAgICBwcmludCAnQ09MU19XSURUSC0+JywgY29sc193aWR0aAorCisgICAgICAgICMgY29sdW1uIGhlYWRlcgorICAgICAgICBsaW5lID0gJycKKyAgICAgICAgZm9yIGNvbHVtbiBpbiBjb2x1bW5zOgorICAgICAgICAgICAgaWYgY29sdW1uIGluIGNvbHNfd2lkdGg6CisgICAgICAgICAgICAgICAgbGluZSArPSAnJS0qcyAnICUgKGNvbHNfd2lkdGhbY29sdW1uXSwgY29sdW1uKQorICAgICAgICBwcmludCBsaW5lCisgICAgICAgIHByaW50ICc9JyAqIGxlbihsaW5lKQorCisgICAgICAgIGxpbmUgPSAnJworICAgICAgICBmb3IgY29sdW1uIGluIGNvbHVtbnM6CisgICAgICAgICAgICB0eXBlX2luZm8gPSAnICcgKiBjb2xzX3dpZHRoW2NvbHVtbl0KKyAgICAgICAgICAgIGlmIGNvbHVtbiBpbiBjb2x1bW5fdHlwZToKKyAgICAgICAgICAgICAgICBjdCA9IGNvbHVtbl90eXBlW2NvbHVtbl0KKyAgICAgICAgICAgICAgICBwcmludCBjb2x1bW4sIGN0CisgICAgICAgICAgICAgICAgaWYgdHlwZShjdCkgPT0gc3RyIG9yIHR5cGUoY3QpID09IHVuaWNvZGU6CisgICAgICAgICAgICAgICAgICAgIHR5cGVfaW5mbyA9ICclKnMnICUgKGNvbHNfd2lkdGhbY29sdW1uXSwgY3QpCisgICAgICAgICAgICAgICAgZWxpZiBjdC5nZXQoJ2xlYWZUeXBlJyk6CisgICAgICAgICAgICAgICAgICAgIGxlYWZfdHlwZSA9IGN0LmdldCgnbGVhZlR5cGUnKQorICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKGxlYWZfdHlwZSkgPT0gdW5pY29kZSBvciB0eXBlKGxlYWZfdHlwZSkgPT0gc3RyOgorICAgICAgICAgICAgICAgICAgICAgICAgdHlwZV9pbmZvID0gJyUqcycgJSAoY29sc193aWR0aFtjb2x1bW5dLCBsZWFmX3R5cGUpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnQ1QgTEVBRl9UWVBFJywgY3QKKyAgICAgICAgICAgICAgICBpZiBjdC5nZXQoJ25vZGVUeXBlJyk6CisgICAgICAgICAgICAgICAgICAgIG5vZGVfdHlwZSA9IGN0LmdldCgnbm9kZVR5cGUnKQorICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKG5vZGVfdHlwZSkgPT0gc3RyIG9yIHR5cGUobm9kZV90eXBlKSA9PSB1bmljb2RlOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbm9kZV90eXBlICE9ICdMRUFGJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlX2luZm8gPSAnJSpzJyAlIChjb2xzX3dpZHRoW2NvbHVtbl0sIG5vZGVfdHlwZSkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHR5cGVfaW5mbyA9ICclKnMnICUgKGNvbHNfd2lkdGhbY29sdW1uXSwgbm9kZV90eXBlWyduYW1lJ10pCisgICAgICAgICAgICAgICAgaWYgY3QuZ2V0KCduYW1lJyk6CisgICAgICAgICAgICAgICAgICAgIHR5cGVfaW5mbyA9ICclKnMnICUgKGNvbHNfd2lkdGhbY29sdW1uXSwgY3RbJ25hbWUnXSkKKworICAgICAgICAgICAgbGluZSArPSB0eXBlX2luZm8KKyAgICAgICAgcHJpbnQgbGluZQorCisgICAgICAgIGxpbmUgPSAnJworICAgICAgICBmb3IgY29sdW1uIGluIGNvbHVtbnM6CisgICAgICAgICAgICBpZiBjb2x1bW4gaW4gY29sc193aWR0aDoKKyAgICAgICAgICAgICAgICBsaW5lICs9ICclc3wnICUgKCctJyAqIGNvbHNfd2lkdGhbY29sdW1uXSwpCisgICAgICAgIHByaW50IGxpbmUKKyAgICAgICAgZm9yIHJvdyBpbiB0YWJsZToKKyAgICAgICAgICAgIGxpbmUgPSAnJworICAgICAgICAgICAgZm9yIGNvbHVtbiBpbiBjb2x1bW5zOgorICAgICAgICAgICAgICAgIGxpbmUgKz0gJyUqcyAnICUgKGNvbHNfd2lkdGhbY29sdW1uXSwgcm93LmdldChjb2x1bW4sICcnKSkKKyAgICAgICAgICAgIHByaW50IGxpbmUKKworICAgICAgICByZXR1cm4gdGFibGUKKworCisgICAgZGVmIG5hbWVfaXNfY29tcG91bmRfa2V5KHNlbGYsIG5hbWUpOgorICAgICAgICBpZiBuYW1lLmZpbmQoJ3wnKSAhPSAtMToKKyAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIHJldHVybiBGYWxzZQorCisKKyAgICBkZWYgdGFibGVfYm9keV9zb3J0ZXIoc2VsZiwgdGFibGUsIHNvcnRfY29sdW1ucyk6CisgICAgICAgIGRlZiBzb3J0X2NtcCh4LHkpOgorICAgICAgICAgICAgZm9yIGYgaW4gc29ydF9jb2x1bW5zOgorICAgICAgICAgICAgICAgIGlmIGYgaW4geDoKKyAgICAgICAgICAgICAgICAgICAgYyA9IHV0aWYudHJhaWxpbmdfaW50ZWdlcl9jbXAoeC5nZXQoZiksIHkuZ2V0KGYpKQorICAgICAgICAgICAgICAgICAgICBpZiBjOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGMKKyAgICAgICAgICAgIHJldHVybiAwCisgICAgICAgIHJldHVybiBzb3J0ZWQodGFibGUsIGNtcD1zb3J0X2NtcCkKKworCisgICAgZGVmIHRhYmxlX2NvbHVtbnNfd2lkdGgoc2VsZiwgdGFibGUsIGNvbHVtbnMpOgorICAgICAgICAiIiIKKyAgICAgICAgVGFibGUgaXMgYSBsaXN0IG9mIGRpY3Rpb25hcmllcy4KKworICAgICAgICBDb2x1bW5zIGlzIGEgbGlzdCBvZiBjb2x1bW4gaGVhZGVyIG5hbWVzLgorICAgICAgICAiIiIKKyAgICAgICAgY29sc193aWR0aCA9IHt9CisgICAgICAgIGZvciBjb2x1bW4gaW4gY29sdW1uczoKKyAgICAgICAgICAgIGNvbHNfd2lkdGhbY29sdW1uXSA9IGxlbihjb2x1bW4pCisgICAgICAgIGZvciByb3cgaW4gdGFibGU6CisgICAgICAgICAgICBmb3IgKGl0ZW0sIHZhbHVlKSBpbiByb3cuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBpZiBpdGVtIG5vdCBpbiBjb2xzX3dpZHRoOgorICAgICAgICAgICAgICAgICAgICBjb2xzX3dpZHRoW2l0ZW1dID0gbGVuKHZhbHVlKQorICAgICAgICAgICAgICAgIGVsaWYgbGVuKHZhbHVlKSA+IGNvbHNfd2lkdGhbaXRlbV06CisgICAgICAgICAgICAgICAgICAgIGNvbHNfd2lkdGhbaXRlbV0gPSBsZW4odmFsdWUpCisgICAgICAgIHJldHVybiBjb2xzX3dpZHRoCisKKworICAgIGRlZiB0YWJsZV9oZWFkZXIoc2VsZiwgY29sc193aWR0aCwgdGl0bGUgPSBOb25lLCBjb2x1bW5zID0gTm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBQcmludCB0aGUgdGFibGUgaGVhZGVycy4KKyAgICAgICAgIiIiCisgICAgICAgICMgY29sdW1uIGhlYWRlcgorICAgICAgICBsaW5lID0gJycKKyAgICAgICAgZm9yIGNvbHVtbiBpbiBjb2x1bW5zOgorICAgICAgICAgICAgaWYgc2VsZi5uYW1lX2lzX2NvbXBvdW5kX2tleShjb2x1bW4pOgorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBpZiBjb2x1bW4gaW4gY29sc193aWR0aDoKKyAgICAgICAgICAgICAgICBsaW5lICs9ICclLSpzICcgJSAoY29sc193aWR0aFtjb2x1bW5dLCBjb2x1bW4pCisKKyAgICAgICAgIyB0YWJsZSB0aXRsZQorICAgICAgICBpZiB0aXRsZToKKyAgICAgICAgICAgIGxlbl9kYXNoX2xlZnQgPSAobGVuKGxpbmUpIC0gbGVuKHRpdGxlKSAtIDIpCisgICAgICAgICAgICBoYWxmX2xlZnQgPSBsZW5fZGFzaF9sZWZ0IC8gMgorICAgICAgICAgICAgc2xvcCA9ICcnCisgICAgICAgICAgICBpZiBsZW5fZGFzaF9sZWZ0ICYgMToKKyAgICAgICAgICAgICAgICBzbG9wID0gJyAnCisgICAgICAgICAgICB5aWVsZCAgJz0nICogaGFsZl9sZWZ0ICsgJyAlcyVzICcgJSAodGl0bGUsIHNsb3ApICsgJz0nICogaGFsZl9sZWZ0CisKKyAgICAgICAgIyBmaW5hbGx5IHByaW50IHRoZSBjb2x1bW4gaGVhZGVyCisgICAgICAgIGlmIGxpbmUgPT0gJyc6CisgICAgICAgICAgICB5aWVsZCAnLS1jb2xzIGVtcHR5LS0nCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICB5aWVsZCBsaW5lCisKKyAgICAgICAgbGluZSA9ICcnCisgICAgICAgIGZvciBjb2x1bW4gaW4gY29sdW1uczoKKyAgICAgICAgICAgIGlmIHNlbGYubmFtZV9pc19jb21wb3VuZF9rZXkoY29sdW1uKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgaWYgY29sdW1uIGluIGNvbHNfd2lkdGg6CisgICAgICAgICAgICAgICAgbGluZSArPSAnJXN8JyAlICgnLScgKiBjb2xzX3dpZHRoW2NvbHVtbl0sKQorICAgICAgICB5aWVsZCBsaW5lCisKKworICAgIGRlZiBhbGxfY29sdW1uc19leGNlcHQoc2VsZiwgdGFibGUsIGV4Y2VwdF9jb2x1bW5zID0gTm9uZSk6CisgICAgICAgIGFsbF9jb2x1bW5zID0gW10KKyAgICAgICAgaWYgZXhjZXB0X2NvbHVtbnMgPT0gTm9uZToKKyAgICAgICAgICAgIGV4Y2VwdF9jb2x1bW5zID0gW10KKyAgICAgICAgIyBub3cgZW5zdXJlIGFsbCBjb2x1bW5zIGFyZSByZXByZXNlbnRlZAorICAgICAgICBmb3Igcm93IGluIHRhYmxlOgorICAgICAgICAgICAgZm9yIGZpZWxkIGluIHJvdy5rZXlzKCk6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5uYW1lX2lzX2NvbXBvdW5kX2tleShmaWVsZCk6CisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgaWYgZmllbGQgbm90IGluIGV4Y2VwdF9jb2x1bW5zIGFuZCBmaWVsZCBub3QgaW4gYWxsX2NvbHVtbnM6CisgICAgICAgICAgICAgICAgICAgIGFsbF9jb2x1bW5zLmFwcGVuZChmaWVsZCkKKyAgICAgICAgcmV0dXJuIHNvcnRlZChhbGxfY29sdW1ucykKKworICAgICAgICAKKyAgICBkZWYgdGFibGVfYm9keShzZWxmLCB0YWJsZSwgdGl0bGUgPSBOb25lLCBjb2x1bW5zID0gTm9uZSk6CisgICAgICAgICIiIgorICAgICAgICBUaGUgaW5wdXQgdGFibGUgaXMgYSBsaXN0IG9mIGRpY3Rpb25hcmllcy4gIEZyb20gdGhlCisgICAgICAgIG5hbWU6dmFsdWUgcGFpcnMsIGJ1aWxkIGEgc2ltcGxlIG91dHB1dCBmb3JtYXR0ZXIuCisKKyAgICAgICAgIiIiCisKKyAgICAgICAgaWYgY29sdW1ucyA9PSBOb25lOgorICAgICAgICAgICAgY29sdW1ucyA9IFtdCisgICAgICAgIGVsc2U6ICMgdXNlIHRoZSBjb2x1bW5zIHBhc3NlZCBpbiBhcyBhIGJhc2lzIGZvciBzb3J0aW5nCisgICAgICAgICAgICB0YWJsZSA9IHNlbGYudGFibGVfYm9keV9zb3J0ZXIodGFibGUsIGNvbHVtbnMpCisKKyAgICAgICAgIyBub3cgZW5zdXJlIGFsbCBjb2x1bW5zIGFyZSByZXByZXNlbnRlZAorICAgICAgICBjb2x1bW5zICs9IHNlbGYuYWxsX2NvbHVtbnNfZXhjZXB0KHRhYmxlLCBjb2x1bW5zKQorCisgICAgICAgIGNvbHNfd2lkdGggPSBzZWxmLnRhYmxlX2NvbHVtbnNfd2lkdGgodGFibGUsIGNvbHVtbnMpCisKKyAgICAgICAgIyB3YWl0aW5nIGZvciAneWllbGQgZnJvbScKKyAgICAgICAgIyB5aWVsZCBmcm9tIHRhYmxlX2hlYWRlcihjb2xzX3dpZHRoLCB0aXRsZSwgY29sdW1uCisgICAgICAgIGZvciBpdGVtIGluIHNlbGYudGFibGVfaGVhZGVyKGNvbHNfd2lkdGgsIHRpdGxlLCBjb2x1bW5zKToKKyAgICAgICAgICAgIHlpZWxkIGl0ZW0KKworICAgICAgICBmb3Igcm93IGluIHRhYmxlOgorICAgICAgICAgICAgbGluZSA9ICcnCisgICAgICAgICAgICBmb3IgY29sdW1uIGluIGNvbHVtbnM6CisgICAgICAgICAgICAgICAgaWYgbm90IHNlbGYubmFtZV9pc19jb21wb3VuZF9rZXkoY29sdW1uKToKKyAgICAgICAgICAgICAgICAgICAgbGluZSArPSAnJS0qcyAnICUgKGNvbHNfd2lkdGhbY29sdW1uXSwgcm93LmdldChjb2x1bW4sICcnKSkKKyAgICAgICAgICAgIHlpZWxkIGxpbmUKKworICAgICAgICByZXR1cm4KKworCisgICAgZGVmIHRhYmxlX3RpdGxlX2J1aWxkZXIoc2VsZiwgbmFtZSwgaW5kaWNlc19saXN0KToKKyAgICAgICAgIiIiCisgICAgICAgIEJ1aWxkIGEgdGl0bGUsIGJhc2VkIG9uIHRoZSB0YWJsZSBuYW1lLCB0aGVuCisgICAgICAgIGFkZGVkIHRvIHRoYXQgYXJlIGFueSBuYW1lOnZhbHVlIHBhcmlzIGluIHRoZQorICAgICAgICBpbmRpY2VzX2xpc3QsIGluIG9yZGVyLCB3aG9zZSB2YWx1ZSBpc24ndCBOb25lCisgICAgICAgIChOb25lIGN1cnJlbnRseSBtZWFucyB0aGUgaW5kZXggaXMgZnJvbSB0aGUgbmFtZSBvZgorICAgICAgICBhICdDT05UQUlORVInLCB3aGljaCBkb2Vzbid0IHJlcXVpcmUgYW4gaW5kZXgpCisgICAgICAgICIiIgorICAgICAgICB0aXRsZSA9IFtuYW1lXQorICAgICAgICBpZiBpbmRpY2VzX2xpc3Q6CisgICAgICAgICAgICBmb3IgaW5kZXhfZGljdCBpbiBpbmRpY2VzX2xpc3Q6CisgICAgICAgICAgICAgICAgIyBub3QgdXNpbmcgYSBjb21wcmVoZW5zaW9uIGhlcmUgdG8gCisgICAgICAgICAgICAgICAgIyBrZWVwIHRoZSB0ZXh0IHdpZHRoIHNtYWxsLgorICAgICAgICAgICAgICAgIGZvciAobix2KSBpbiBpbmRleF9kaWN0Lml0ZW1zKCk6CisgICAgICAgICAgICAgICAgICAgIGlmIHYgIT0gTm9uZToKKyAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlLmFwcGVuZCgnJXM6JXMnICUgKG4sdikpCisgICAgICAgIHJldHVybiAnICcuam9pbih0aXRsZSkKKworCisgICAgZGVmIHRhYmxlX2luZGV4X2NvbHVtbnMoc2VsZiwgbmFtZSwgaW5kaWNlc19saXN0KToKKyAgICAgICAgIiIiCisgICAgICAgIFRoZSAnaW5kZXggY29sdW1ucycgYXJlIHRoZSBjb2x1bW5zIHdoaWNoIGhhdmUgYmVlbgorICAgICAgICB1c2VkIGFzICdrZXlOb2RlTmFtZXMnIGZvciBlYWNoIG9mIHRoZSAnTElTVCdzLiAgVGhlc2UKKyAgICAgICAgYXJlIGhhbmR5IHRvIG1vdmUgdG93YXJkcyB0aGUgJ2xlZnQnIHNpZGUgb2YgdGhlIHRhYmxlCisgICAgICAgICIiIgorICAgICAgICBjb2x1bW5zID0gW10KKyAgICAgICAgaWYgaW5kaWNlc19saXN0OgorICAgICAgICAgICAgZm9yIGluZGV4X2RpY3QgaW4gaW5kaWNlc19saXN0OgorICAgICAgICAgICAgICAgIGNvbHVtbnMgKz0gaW5kZXhfZGljdC5rZXlzKCkKKyAgICAgICAgcmV0dXJuIGNvbHVtbnMKKworCisgICAgZGVmIHNjaGVtYV9vZl9wYXRoKHNlbGYsIHBhdGgpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJuIHRoZSBjaGlsZCB0cmVlIGJhc2VkIG9uIGEgcmVxdWVzdGVkIHBhdGguCisgICAgICAgICIiIgorICAgICAgICBpZiB0eXBlKHBhdGgpID09IHN0cjoKKyAgICAgICAgICAgIHBhdGggPSBwYXRoLnNwbGl0KCcvJykKKyAgICAgICAgCisgICAgICAgIGN1cnIgPSBzZWxmLnNjaGVtYQorICAgICAgICBmb3IgZWxlbWVudCBpbiBwYXRoOgorICAgICAgICAgICAgbm9kZV90eXBlID0gY3Vyci5nZXQoJ25vZGVUeXBlJykKKyAgICAgICAgICAgIGlmIG5vZGVfdHlwZSA9PSAnQ09OVEFJTkVSJzoKKyAgICAgICAgICAgICAgICBjaGlsZF9ub2RlcyA9IGN1cnIuZ2V0KCdjaGlsZE5vZGVzJykKKyAgICAgICAgICAgICAgICBuZXh0ID0gY2hpbGRfbm9kZXMuZ2V0KGVsZW1lbnQpCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHByaW50ICdzY2hlbWFfb2ZfcGF0aDogbmVlZCBoZWxwIGZvciAnLCBub2RlX3R5cGUKKyAgICAgICAgICAgICAgICBwcmludCAnRklORCcsIG5vZGVfdHlwZSwgcGF0aCwgY3Vyci5rZXlzKCkKKyAgICAgICAgICAgICAgICBuZXh0ID0gTm9uZQorICAgICAgICAgICAgaWYgbmV4dCA9PSBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgICAgICBjdXJyID0gbmV4dAorICAgICAgICByZXR1cm4gY3VycgorCisKKyAgICBkZWYgZGlzcGxheShzZWxmLCBwYXRoLCBzdHlsZSA9ICd0YWJsZScpOgorICAgICAgICBzY2hlbWEgPSBzZWxmLnNjaGVtYV9vZl9wYXRoKHBhdGgpCisgICAgICAgIGlmIHNjaGVtYSA9PSBOb25lOgorICAgICAgICAgICAgcHJpbnQgJ1Vua25vd24gSXRlbScsIHBhdGgKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIHJlc3VsdCA9IHNlbGYuZGF0YV9yZXN0X3JlcXVlc3QocGF0aCkKKyAgICAgICAgaWYgcmVzdWx0ID09IE5vbmU6CisgICAgICAgICAgICBwcmludCAnTm8gcmVzdWx0IGZvciAlcycgJSBwYXRoCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIHByaW50IHJlc3VsdAorICAgICAgICAjIHByaW50IHNlbGYuZm9ybWF0X3RhYmxlKHJlc3VsdCwgcmVzdF9pdGVtKQorCisgICAgICAgIHByaW50ICdTQ0hFTUEtMi1SRVNVTFQnLCBwYXRoCisgICAgICAgICNwcmludCAnU0NIRU1BLTItUkVTVUxUIFJFU1VMVCcsIHJlc3VsdAorCisgICAgICAgIHRhYmxlc19uYW1lcyA9IFtdICAgIyB0YWJsZSBuYW1lcyBpbiBvcmRlci4KKyAgICAgICAgdGFibGVzID0ge30gICAgICAgICAjIGRpY3Rpb25hcnkgb2YgdGFibGVzLCBpbmRleGVkIGJ5IG5hbWUKKyAgICAgICAgdGl0bGVzID0ge30gICAgICAgICAjIGRpY3Rpb25hcnkgb2YgdGl0bGVzLCBpbmRleGVkIGJ5IG5hbWUKKyAgICAgICAgY29sdW1ucyA9IHt9ICAgICAgICAjIGRpY3Rpb25hcnkgb2YgY29sdW1ucywgaW5kZXhlZCBieSBuYW1lCisKKyAgICAgICAgIyBBcHBseSB0aGUgcmVzdWx0IHRvIHRoZSBzY2hlbWEuCisgICAgICAgICMgJ3NjaGVtYV90b19yZXN1bHRzJyBpcyBhbiBpdGVyYXRvciAoZ2VuZXJhdG9yKSwgd2hpY2gKKyAgICAgICAgIyByZXR1cm5zIHR1cGxlcy4KKyAgICAgICAgZm9yIHJvdyBpbiBzZWxmLnNjaGVtYV90b19yZXN1bHRzKCcnLCBzY2hlbWEsIHJlc3VsdCk6CisgICAgICAgICAgICBwcmludCAnXicsIHJvdworICAgICAgICAgICAgIyByZXR1cm4gdHVwbGU6CisgICAgICAgICAgICAjIChhY3Rpb24sIG5hbWUsIHBhdGgsIGluZGljZXMsIHJvdywgbmV3X3JvdykKKyAgICAgICAgICAgICMgICAgMCAgICAgIDEgICAgIDIgICAgICAzICAgICAgIDQgICAgIDUKKyAgICAgICAgICAgIGFjdGlvbiA9IHJvd1swXQorICAgICAgICAgICAgbmFtZSA9IHJvd1sxXQorICAgICAgICAgICAgaWYgYWN0aW9uID09ICdMSVNULUJFR0lOJzoKKyAgICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiB0YWJsZXNfbmFtZXM6CisgICAgICAgICAgICAgICAgICAgIHRhYmxlc19uYW1lcy5hcHBlbmQobmFtZSkKKyAgICAgICAgICAgICAgICAgICAgdGFibGVzW25hbWVdID0gW10KKyAgICAgICAgICAgICAgICAjIGVuc3VyZSB0YWJsZSBpcyBlbXB0eQorICAgICAgICAgICAgICAgICMgaWYgbmFtZSBpbiB0YWJsZXM6CisgICAgICAgICAgICAgICAgICAgICMgdGFibGVzW25hbWVdID0gW10KKyAgICAgICAgICAgIGVsaWYgYWN0aW9uID09ICdMSVNULUlURU0nOgorICAgICAgICAgICAgICAgICMgYWRkIHRoZSBpdGVtcyB0byB0aGUgdGFibGUuCisgICAgICAgICAgICAgICAgdGFibGVfcm93ID0gZGljdChyb3dbNV0pCisgICAgICAgICAgICAgICAgZm9yIGluZGV4IGluIHJvd1szXToKKyAgICAgICAgICAgICAgICAgICAgdGFibGVfcm93LnVwZGF0ZShpbmRleCkgIyBpbmRpY2VzCisgICAgICAgICAgICAgICAgaWYgbmFtZSBpbiB0YWJsZXM6CisgICAgICAgICAgICAgICAgICAgIHRhYmxlc1tuYW1lXS5hcHBlbmQodGFibGVfcm93KQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIHRhYmxlc1tuYW1lXSA9IFt0YWJsZV9yb3ddCisgICAgICAgICAgICBlbGlmIGFjdGlvbiA9PSAnTElTVC1FTkQnOgorICAgICAgICAgICAgICAgICMgZGlzcGxheSB0aGUgcmVzdWx0CisgICAgICAgICAgICAgICAgaWYgbmFtZSBpbiB0YWJsZXM6CisgICAgICAgICAgICAgICAgICAgIHRpdGxlc1tuYW1lXSA9IHNlbGYudGFibGVfdGl0bGVfYnVpbGRlcihuYW1lLCByb3dbM10pCisgICAgICAgICAgICAgICAgICAgIGNvbHVtbnNbbmFtZV0gPSBzZWxmLnRhYmxlX2luZGV4X2NvbHVtbnMobmFtZSwgcm93WzNdKQorICAgICAgICAgICAgICAgICAgICBwcmludCAnSU5ERVgnLCBuYW1lLCByb3dbM10sIGNvbHVtbnNbbmFtZV0KKworICAgICAgICAjIHZhbGlkYXRpb24gLS0KKyAgICAgICAgZm9yIHRhYmxlIGluIHRhYmxlc19uYW1lczoKKyAgICAgICAgICAgIGlmIG5vdCB0YWJsZSBpbiB0YWJsZXMua2V5cygpOgorICAgICAgICAgICAgICAgIHByaW50ICdMaXN0IG9mIHRhYmxlcyBkb2VzbicndCBtYXRjaCB0YWJsZXMga2V5cycKKyAgICAgICAgICAgICAgICBwcmludCB0YWJsZXNfbmFtZXMsIGxlbih0YWJsZXNfbmFtZXMpCisgICAgICAgICAgICAgICAgcHJpbnQgdGFibGVzLmtleXMoKSwgbGVuKHRhYmxlcy5rZXlzKCkpCisKKyAgICAgICAgc2VwYXJhdG9yID0gTm9uZQorICAgICAgICAjIHNlbGVjdCBzdHlsZS4KKyAgICAgICAgaWYgc3R5bGUgPT0gJ2xpc3QnOgorICAgICAgICAgICAgcHJlZml4ID0gJyAgICAnCisgICAgICAgICAgICBmb3IgKHRhYmxlX25hbWUsIHRhYmxlX2RldGFpbHMpIGluIHRhYmxlcy5pdGVtcygpOgorICAgICAgICAgICAgICAgIGNvbHMgPSA3OQorICAgICAgICAgICAgICAgIGZpcnN0X2NvbHVtbnMgPSBjb2x1bW5zW3RhYmxlX25hbWVdCisgICAgICAgICAgICAgICAgbGFzdF9jb2x1bW5zID0gc2VsZi5hbGxfY29sdW1uc19leGNlcHQodGFibGVfZGV0YWlscywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9jb2x1bW5zKQorICAgICAgICAgICAgICAgIGlmIHNlcGFyYXRvciAhPSBOb25lOgorICAgICAgICAgICAgICAgICAgICBwcmludCBzZXBhcmF0b3IKKyAgICAgICAgICAgICAgICBmb3Igcm93IGluIHRhYmxlX2RldGFpbHM6CisgICAgICAgICAgICAgICAgICAgIHJvd19saW5lcyA9IDAKKyAgICAgICAgICAgICAgICAgICAgbGluZSA9IHRhYmxlX25hbWUgKyAnICcKKyAgICAgICAgICAgICAgICAgICAgZm9yIGl0ZW1fbmFtZSBpbiBmaXJzdF9jb2x1bW5zICsgbGFzdF9jb2x1bW5zOgorICAgICAgICAgICAgICAgICAgICAgICAgaXRlbV92YWx1ZSA9IHJvdy5nZXQoaXRlbV9uYW1lKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgaXRlbV92YWx1ZSA9PSBOb25lOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgICAgICBuZXh0X2l0ZW0gPSAnJXM6ICVzICcgJSAoaXRlbV9uYW1lLCBpdGVtX3ZhbHVlKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgbGVuKGxpbmUpICsgbGVuKG5leHRfaXRlbSkgPiBjb2xzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50IGxpbmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaW5lID0gcHJlZml4CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm93X2xpbmVzICs9IDEKKyAgICAgICAgICAgICAgICAgICAgICAgIGxpbmUgKz0gbmV4dF9pdGVtCisgICAgICAgICAgICAgICAgICAgIGlmIGxpbmUgIT0gcHJlZml4OgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgbGluZQorICAgICAgICAgICAgICAgICAgICBpZiByb3dfbGluZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnJworICAgICAgICAgICAgICAgIHNlcGFyYXRvciA9ICcnCisKKyAgICAgICAgZWxpZiBzdHlsZSA9PSAndGFibGUnOgorICAgICAgICAgICAgIyBub3cgcHJpbnQgdGhlIHRhYmxlcy4KKyAgICAgICAgICAgIGZvciB0YWJsZV9uYW1lIGluIHRhYmxlc19uYW1lczoKKyAgICAgICAgICAgICAgICBpZiBzZXBhcmF0b3IgIT0gTm9uZToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgc2VwYXJhdG9yCisgICAgICAgICAgICAgICAgaWYgbGVuKHRhYmxlX25hbWUpID4gMToKKyAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSB0aXRsZXNbdGFibGVfbmFtZV0KKworICAgICAgICAgICAgICAgIGlmIGxlbih0YWJsZXNbdGFibGVfbmFtZV0pID09IDA6CisgICAgICAgICAgICAgICAgICAgIGlmIGxlbih0YWJsZV9uYW1lKSA+IDE6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCB0YWJsZV9uYW1lLCAnTm9uZS4nCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAnTm9uZS4nCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgdGl0bGUgPSB0YWJsZV9uYW1lCisgICAgICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIHNlbGYudGFibGVfYm9keSh0YWJsZXNbdGFibGVfbmFtZV0sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aXRsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnNbdGFibGVfbmFtZV0pOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaXRlbQorICAgICAgICAgICAgICAgIHNlcGFyYXRvciA9ICcnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBwcmludCAnc2RuZGI6ZGlzcGxheSB1bmtub3duIHN0eWxlICVzJyAlIHN0eWxlCisKKyAgICBkZWYgc2NoZW1hX2RldGFpbGVyX3ZhbGlkYXRvcnMoc2VsZiwgdHlwZV9zY2hlbWFfbm9kZSk6CisgICAgICAgICIiIgorICAgICAgICBSZXN1bHQgaXMgYSBkaWN0aW9uYXJ5IG9mIHZhbGlkYXRvcl9uYW1lOi4uLgorCisgICAgICAgIFRvIGRpc3BsYXkgdGhlc2UsIHVzZSBzb21ldGhuZyBsaWtlOgorICAgICAgICAnICcuam9pbihbJyVzOiVzJyAlIChuLHYpIGZvciAobix2KSBpbiB2X2RpY3RdCisgICAgICAgICIiIgorICAgICAgICB2X2RpY3QgPSB7fQorCisgICAgICAgIGZvciB2YWxpZGF0b3IgaW4gdHlwZV9zY2hlbWFfbm9kZS5nZXQoJ3R5cGVWYWxpZGF0b3InLCBbXSk6CisgICAgICAgICAgICBraW5kID0gdmFsaWRhdG9yLmdldCgndHlwZScpCisgICAgICAgICAgICBpZiBraW5kID09ICdSQU5HRV9WQUxJREFUT1InOgorICAgICAgICAgICAgICAgIGtpbmQgPSAncmFuZ2UnCisgICAgICAgICAgICBlbGlmIGtpbmQgPT0gJ0xFTkdUSF9WQUxJREFUT1InOgorICAgICAgICAgICAgICAgIGtpbmQgPSAnbGVuZ3RoJworICAgICAgICAgICAgZWxpZiBraW5kID09ICdFTlVNRVJBVElPTl9WQUxJREFUT1InOgorICAgICAgICAgICAgICAgIGtpbmQgPSAnZW51bScKKyAgICAgICAgICAgIGVsaWYga2luZCA9PSAnUEFUVEVSTl9WQUxJREFUT1InOgorICAgICAgICAgICAgICAgIGtpbmQgPSAncGF0dGVybicKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcHJpbnQgJ1ZhbGlkYXRvciBLaW5kIHVua25vd246Jywga2luZAorICAgICAgICAgICAgICAgIGNvbnRpbnVlCisKKyAgICAgICAgICAgIGlmIG5vdCBraW5kIGluIHZfZGljdDoKKyAgICAgICAgICAgICAgICB2X2RpY3Rba2luZF0gPSBbXQorCisgICAgICAgICAgICBpZiBraW5kID09ICdyYW5nZScgb3Iga2luZCA9PSAnbGVuZ3RoJzoKKyAgICAgICAgICAgICAgICBmb3IgcmFuZ2UgaW4gdmFsaWRhdG9yLmdldCgncmFuZ2VzJywgW10pOgorICAgICAgICAgICAgICAgICAgICB2X2RpY3Rba2luZF0uYXBwZW5kKCcoJXM6JXMpJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHNlbGYubW0ocmFuZ2VbJ3N0YXJ0J10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLm1tKHJhbmdlWydlbmQnXSkpKQorICAgICAgICAgICAgZWxpZiBraW5kID09ICdwYXR0ZXJuJzoKKyAgICAgICAgICAgICAgICB2X2RpY3Rba2luZF0uYXBwZW5kKHZhbGlkYXRvci5nZXQoJ3BhdHRlcm4nKSkKKyAgICAgICAgICAgIGVsaWYga2luZCA9PSAnZW51bSc6CisgICAgICAgICAgICAgICAgbmFtZV9kaWN0ID0gdmFsaWRhdG9yLmdldCgnbmFtZXMnKQorICAgICAgICAgICAgICAgIHZfZGljdFtraW5kXS5hcHBlbmQoJywnLmpvaW4oWydbJXM6JXNdJyAlIChuLHYpIGZvciAobix2KSBpbiBuYW1lX2RpY3QuaXRlbXMoKV0pKQorICAgICAgICByZXR1cm4gdl9kaWN0CisgIAorCisgICAgZGVmIHNjaGVtYV9kZXRhaWxlcihzZWxmLCBzY2hlbWEsIGRlcHRoID0gTm9uZSk6CisgICAgICAgIGlmIGRlcHRoID09IE5vbmU6CisgICAgICAgICAgICBkZXB0aCA9IDAKKyAgICAgICAgaW5kZW50ID0gJyAgJyAqIGRlcHRoCisKKyAgICAgICAgbmFtZSA9IHNjaGVtYS5nZXQoJ25hbWUnKQorICAgICAgICBub2RlX3R5cGUgPSBzY2hlbWEuZ2V0KCdub2RlVHlwZScpCisgICAgICAgIGlmIG5vZGVfdHlwZSA9PSAnTEVBRic6CisgICAgICAgICAgICBpZiBzZWxmLnNkbnNoLmRlc2NyaXB0aW9uOgorICAgICAgICAgICAgICAgIHByaW50IGluZGVudCwgJ0xFQUYnLCBzY2hlbWEKKyAgICAgICAgICAgIGxlYWZfdHlwZSA9IHNjaGVtYS5nZXQoJ2xlYWZUeXBlJykKKyAgICAgICAgICAgIG1hbmRhdG9yeSA9IHNjaGVtYS5nZXQoJ21hbmRhdG9yeScpCisgICAgICAgICAgICB0eXBlX3NjaGVtYV9ub2RlID0gc2NoZW1hLmdldCgndHlwZVNjaGVtYU5vZGUnLCB7fSkKKyAgICAgICAgICAgIHZfZGljdCA9IHNlbGYuc2NoZW1hX2RldGFpbGVyX3ZhbGlkYXRvcnModHlwZV9zY2hlbWFfbm9kZSkKKyAgICAgICAgICAgIHlpZWxkICgnJXMlcyBMRUFGIHR5cGU6ICVzIG1hbmRhdG9yeTogJXMgJXMnICUKKyAgICAgICAgICAgICAgICAgICAoaW5kZW50LCBuYW1lLCBsZWFmX3R5cGUsIG1hbmRhdG9yeSwKKyAgICAgICAgICAgICAgICAgICAgJyAnLmpvaW4oWyIlczolcyIgJSAobiwnLCcuam9pbih2KSkgZm9yIChuLHYpIGluIHZfZGljdC5pdGVtcygpXSkpKQorCisgICAgICAgICAgICBpZiBsZWFmX3R5cGUgPT0gJ1VOSU9OJzoKKyAgICAgICAgICAgICAgICBub2RlcyA9IHR5cGVfc2NoZW1hX25vZGUuZ2V0KCd0eXBlU2NoZW1hTm9kZXMnKQorICAgICAgICAgICAgICAgIGZvciBub2RlIGluIG5vZGVzOgorICAgICAgICAgICAgICAgICAgICB2X2RpY3QgPSBzZWxmLnNjaGVtYV9kZXRhaWxlcl92YWxpZGF0b3JzKG5vZGUpCisgICAgICAgICAgICAgICAgICAgIHlpZWxkICgnICAlcyVzIFRZUEUgJXMnICUgKGluZGVudCwgbm9kZS5nZXQoJ25hbWUnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICcgJy5qb2luKFsiJXM6JXMiICUgKG4sJywnLmpvaW4odikpIGZvciAobix2KSBpbiB2X2RpY3QuaXRlbXMoKV0pKSkKKworICAgICAgICBlbGlmIG5vZGVfdHlwZSA9PSAnTEVBRl9MSVNUJzoKKyAgICAgICAgICAgIGxlYWZfbm9kZSA9IHNjaGVtYS5nZXQoJ2xlYWZTY2hlbWFOb2RlJykKKyAgICAgICAgICAgIG1hbmRhdG9yeSA9IHNjaGVtYS5nZXQoJ21hbmRhdG9yeScpCisgICAgICAgICAgICBiYXNlX3R5cGUgPSBsZWFmX25vZGUuZ2V0KCdsZWFmVHlwZScpCisgICAgICAgICAgICB0eXBlX3NjaGVtYV9ub2RlID0gbGVhZl9ub2RlLmdldCgndHlwZVNjaGVtYU5vZGUnLCB7fSkKKyAgICAgICAgICAgIHZfZGljdCA9IHNlbGYuc2NoZW1hX2RldGFpbGVyX3ZhbGlkYXRvcnModHlwZV9zY2hlbWFfbm9kZSkKKworICAgICAgICAgICAgeWllbGQgKCclcyVzOiBMRUFGLUxJU1QgbWFuZGF0b3J5ICVzIExJU1Qgb2YgJXMgJXMnICUKKyAgICAgICAgICAgICAgICAgICAgKGluZGVudCwgbmFtZSwgbWFuZGF0b3J5LCBiYXNlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgICAnICcuam9pbihbIiVzOiVzIiAlIChuLCcsJy5qb2luKHYpKSBmb3IgKG4sdikgaW4gdl9kaWN0Lml0ZW1zKCldKSkpCisgICAgICAgIGVsaWYgbm9kZV90eXBlID09ICdMSVNUJzoKKyAgICAgICAgICAgIG5vZGUgPSBzY2hlbWEuZ2V0KCdsaXN0RWxlbWVudFNjaGVtYU5vZGUnKQorICAgICAgICAgICAgZWxlbWVudHNfa2V5ID0gJycKKyAgICAgICAgICAgIGlmIG5vZGU6CisgICAgICAgICAgICAgICAga2V5ID0gbm9kZS5nZXQoJ2tleU5vZGVOYW1lcycpCisgICAgICAgICAgICAgICAgaWYga2V5OgorICAgICAgICAgICAgICAgICAgICBlbGVtZW50c19rZXkgPSAnIG9mICVzJyAlICcsICcuam9pbihrZXkpCisKKyAgICAgICAgICAgIGNoaWxkX25vZGVzID0gbm9kZS5nZXQoJ2NoaWxkTm9kZXMnLCBbXSkKKyAgICAgICAgICAgIHlpZWxkICclcyVzOiBMSVNUICVzIElURU1TIDwlcz4nICUgKGluZGVudCwgbmFtZSwgZWxlbWVudHNfa2V5LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcsICcuam9pbihjaGlsZF9ub2RlcykpCisgICAgICAgICAgICBmb3IgKGNoaWxkLCB2YWx1ZSkgaW4gY2hpbGRfbm9kZXMuaXRlbXMoKToKKyAgICAgICAgICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLnNjaGVtYV9kZXRhaWxlcih2YWx1ZSwgZGVwdGggKyAxKToKKyAgICAgICAgICAgICAgICAgICAgeWllbGQgaXRlbQorICAgICAgICBlbGlmIG5vZGVfdHlwZSA9PSAnQ09OVEFJTkVSJzoKKyAgICAgICAgICAgIGNoaWxkX25vZGVzID0gc2NoZW1hLmdldCgnY2hpbGROb2RlcycsIFtdKQorICAgICAgICAgICAgeWllbGQgJyVzJXM6IENPTlRBSU5FUiBJVEVNUyA8JXM+JyAlIChpbmRlbnQsIG5hbWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcsICcuam9pbihjaGlsZF9ub2Rlcy5rZXlzKCkpKQorICAgICAgICAgICAgZm9yIChjaGlsZCwgdmFsdWUpIGluIGNoaWxkX25vZGVzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgZm9yIGl0ZW0gaW4gc2VsZi5zY2hlbWFfZGV0YWlsZXIodmFsdWUsIGRlcHRoICsgMSk6CisgICAgICAgICAgICAgICAgICAgIHlpZWxkIGl0ZW0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50ICd1bmtub3duIHR5cGUnLCBub2RlX3R5cGUKKworCisgICAgZGVmIHNjaGVtYV9kZXRhaWwoc2VsZiwgcGF0aCk6CisgICAgICAgIHByaW50ICdzY2hlbWFfZGV0YWlsOicsIHBhdGgKKyAgICAgICAgc2NoZW1hID0gc2VsZi5zY2hlbWFfb2ZfcGF0aChwYXRoKQorICAgICAgICBmb3IgaXRlbSBpbiBzZWxmLnNjaGVtYV9kZXRhaWxlcihzY2hlbWEpOgorICAgICAgICAgICAgeWllbGQgaXRlbQorICAgICAgICAKKyAgICAgICAgcmV0dXJuIApkaWZmIC0tZ2l0IGEvY2xpL3NldHVwLnB5IGIvY2xpL3NldHVwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjkyYjFkNjUKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvc2V0dXAucHkKQEAgLTAsMCArMSw2MyBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTEsMjAxMiwyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitpbXBvcnQgc2V0dXB0b29scworaW1wb3J0IG9zCisKKworZGVmIGFsbF9maWxlc19pbl9zdWJkaXIoZGlyLCBtb2QsIGZ1bGxfbGlzdCk6CisgICAgZm9yIGYgaW4gb3MubGlzdGRpcihkaXIpOgorICAgICAgICBwYXRoID0gb3MucGF0aC5qb2luKGRpciwgZikKKyAgICAgICAgaWYgb3MucGF0aC5pc2RpcihwYXRoKToKKyAgICAgICAgICAgIGFsbF9maWxlc19pbl9zdWJkaXIocGF0aCwgIiVzLiVzIiAlIChkaXIsIGYpLCBmdWxsX2xpc3QpCisgICAgICAgIGVsaWYgZi5lbmRzd2l0aCgnLnB5JykgYW5kIGYgIT0gJ19faW5pdF9fLnB5JzoKKyAgICAgICAgICAgIGZ1bGxfbGlzdC5hcHBlbmQoIiVzLiVzIiAlIChtb2QsIGZbOi0zXSkpCisgICAgcmV0dXJuIGZ1bGxfbGlzdAorCisKK2RlZiBhbGxfbW9kdWxlc19pbl9zdWJkaXIoZGlyKToKKyAgICBtb2QgPSBhbGxfZmlsZXNfaW5fc3ViZGlyKGRpciwgJycsIFtdKQorICAgIHJldHVybiBtb2QKKworCitkZWYgYWxsX2RvY19pbl9zdWJkaXJzKGRpciwgZG9jX2NvbGxlY3QpOgorICAgIGZvciBmIGluIG9zLmxpc3RkaXIoZGlyKToKKyAgICAgICAgcGF0aCA9IG9zLnBhdGguam9pbihkaXIsIGYpCisgICAgICAgIGlmIG9zLnBhdGguaXNkaXIocGF0aCk6CisgICAgICAgICAgICBhbGxfZG9jX2luX3N1YmRpcnMocGF0aCwgZG9jX2NvbGxlY3QpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBkb2NfY29sbGVjdC5hcHBlbmQoKGRpciwgW3BhdGhdKSkKKyAgICByZXR1cm4gZG9jX2NvbGxlY3QKKworCitkZWYgYWxsX2RvY3VtZW50YXRpb24oZGlyKToKKyAgICByZXR1cm4gYWxsX2RvY19pbl9zdWJkaXJzKGRpciwgW10pCisKKworc2V0dXB0b29scy5zZXR1cCgKKyAgICBuYW1lPSJjbGkiLAorICAgIHZlcnNpb249IjAuMS4wIiwKKyAgICB6aXBfc2FmZT1UcnVlLAorICAgIHB5X21vZHVsZXM9WyJjbGkiLCAibW9kZWxfaW5mb19saXN0IiwgInByZXR0eXByaW50IiwgInN0b3JlY2xpZW50IiwKKyAgICAgICAgICAgICAgICAiY2xpbW9kZWxpbmZvIiwgInZlbmRvciIsICJ0cmFjZSIsICJ0aW1lc2luY2UiLCAiY29tbWFuZCIsCisgICAgICAgICAgICAgICAgImNfYWN0aW9ucyIsICJjX2RhdGFfaGFuZGxlcnMiLCAgImNfY29tcGxldGlvbnMiLCAiY192YWxpZGF0aW9ucyIsCisgICAgICAgICAgICAgICAgImVycm9yIiwgIm1vZGkiLCAidXRpZiIsICJtaWR3IiwgInZuc3ciLCAiZm10Y252IiwKKyAgICAgICAgICAgICAgICAicmVzdF90b19tb2RlbCIsICJydW5fY29uZmlnIiwgInRlY2hfc3VwcG9ydCIsCisgICAgICAgICAgICAgICAgInVybF9jYWNoZSIsICJkb2MiLCAic2RuZGIiLAorICAgICAgICAgICAgICAgIF0gKyBhbGxfbW9kdWxlc19pbl9zdWJkaXIoJ2Rlc2MnKSwKKyAgICBkYXRhX2ZpbGVzPVsoImRhdGEiLCBbImRhdGEvb3VpLnR4dCJdKV0gKyBhbGxfZG9jdW1lbnRhdGlvbigiZG9jdW1lbnRhdGlvbiIpLAorICAgIGVudHJ5X3BvaW50cz1kaWN0KGNvbnNvbGVfc2NyaXB0cz1bImNsaSA9IGNsaTptYWluIiwgInRyYWNlID0gdHJhY2U6bWFpbiJdKSwKKyAgICApCmRpZmYgLS1naXQgYS9jbGkvc3RvcmVjbGllbnQucHkgYi9jbGkvc3RvcmVjbGllbnQucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTdmYjUwYwotLS0gL2Rldi9udWxsCisrKyBiL2NsaS9zdG9yZWNsaWVudC5weQpAQCAtMCwwICsxLDM5MSBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTAsMjAxMSwyMDEyLDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKKyMKKyMgIG1vZHVsZTogc3RvcmVjbGllbnQucHkKKyMKKyMgVGhpcyBtb2R1bGUgbWFuYWdlcyBjb21tdW5pY2F0aW9uIHdpdGggdGhlIGNvbnNvbGUsIGkuZS4gdGhlIFJFU1QgaW50ZXJmYWNlCisjIG9mIGEgQmlnIFN3aXRjaCBDb250cm9sbGVyIG5vZGUuCisKK2ltcG9ydCB1cmxsaWIKK2ltcG9ydCB1cmxsaWIyCitpbXBvcnQgZnRwbGliCitpbXBvcnQganNvbgoraW1wb3J0IGRhdGV0aW1lCitpbXBvcnQgdGltZQoraW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IHVybF9jYWNoZQorCisKK2NsYXNzIFN0cmluZ1JlYWRlcigpOgorICAgICMgdXNlZCBmb3IgZnRwLCBhcyBhIHJlcGxhY2VtZW50IGZvciByZWFkIGZyb20gYW4gZXhpc3RpbmcgZmlsZQorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB2YWx1ZSk6CisgICAgICAgICIiIgorICAgICAgICBWYWx1ZSBjYW4gYmUgYSBzdHJpbmcsIG9yIGEgZ2VuZXJhdG9yLgorICAgICAgICAiIiIKKyAgICAgICAgc2VsZi52YWx1ZSA9IHZhbHVlCisgICAgICAgIHNlbGYub2Zmc2V0ID0gMAorICAgICAgICBpZiB0eXBlKHZhbHVlKSA9PSBzdHIgb3IgdHlwZSh2YWx1ZSkgPT0gdW5pY29kZToKKyAgICAgICAgICAgIHNlbGYubGVuID0gbGVuKHZhbHVlKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi5sYXN0ID0gTm9uZQorCisgICAgZGVmIHJlYWQoc2VsZiwgc2l6ZSA9IE5vbmUpOgorICAgICAgICBpZiBzaXplOgorICAgICAgICAgICAgaWYgc2l6ZSA+IHNlbGYubGVuIC0gc2VsZi5vZmZzZXQ6CisgICAgICAgICAgICAgICAgc2l6ZSA9IHNlbGYubGVuIC0gc2VsZi5vZmZzZXQKKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYudmFsdWVbc2VsZi5vZmZzZXQ6c2l6ZV0KKyAgICAgICAgICAgIHNlbGYub2Zmc2V0ICs9IHNpemUKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKyAgICAgICAgIyBzdXBwb3JpbmcgZ2VuZXJhdG9ycy4KKyAgICAgICAgaWYgc2VsZi5sYXN0OiAgICMgdXNlIHJlbWFpbmRlcgorICAgICAgICAgICAgaWYgc2l6ZSA+IHNlbGYubGVuIC0gc2VsZi5vZmZzZXQ6CisgICAgICAgICAgICAgICAgc2l6ZSA9IHNlbGYubGVuIC0gc2VsZi5vZmZzZXQKKyAgICAgICAgICAgIHJlc3VsdCA9IHNlbGYubGFzdFtzZWxmLm9mZnNldDpzaXplXQorICAgICAgICAgICAgc2VsZi5vZmZzZXQgKz0gc2l6ZQorICAgICAgICAgICAgaWYgc2VsZi5vZmZzZXQgPT0gc2VsZi5sZW46CisgICAgICAgICAgICAgICAgc2VsZi5sYXN0ID0gTm9uZQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgICAgICBpdGVtID0gdmFsdWUubmV4dCgpCisgICAgICAgIGxlbl9pdGVtID0gbGVuKGl0ZW0pCisgICAgICAgIGlmIGxlbl9pdGVtIDw9IHNpemU6CisgICAgICAgICAgICByZXR1cm4gaXRlbQorICAgICAgICAjIHNldCB1cCByZW1haW5kZXIKKyAgICAgICAgcmVzdWx0ID0gaXRlbVs6c2l6ZV0KKyAgICAgICAgc2VsZi5sYXN0ID0gaXRlbVtzaXplOl0KKyAgICAgICAgc2VsZi5vZmZzZXQgPSAwCisgICAgICAgIHNlbGYubGVuID0gbGVuKHNlbGYubGFzdCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCisKK2NsYXNzIFN0b3JlQ2xpZW50KCk6CisKKyAgICBjb250cm9sbGVyID0gTm9uZQorICAgIGRpc3BsYXlfcmVzdCA9IEZhbHNlCisgICAgZGlzcGxheV9yZXN0X3JlcGx5ID0gRmFsc2UKKyAgICAKKyAgICB0YWJsZV9yZWFkX3VybCA9ICJodHRwOi8vJXMvcmVzdC92MS9tb2RlbC8lcy8iCisgICAgZW50cnlfcG9zdF91cmwgPSAiaHR0cDovLyVzL3Jlc3QvdjEvbW9kZWwvJXMvIgorICAgIHVzZXJfZGF0YV91cmwgPSAiaHR0cDovLyVzL3Jlc3QvdjEvZGF0YS8iCisKKyAgICBkZWYgc2V0X2NvbnRyb2xsZXIoc2VsZixjb250cm9sbGVyKToKKyAgICAgICAgc2VsZi5jb250cm9sbGVyID0gY29udHJvbGxlcgorCisgICAgZGVmIGRpc3BsYXlfbW9kZShzZWxmLCBtb2RlKToKKyAgICAgICAgc2VsZi5kaXNwbGF5X3Jlc3QgPSBtb2RlCisKKyAgICBkZWYgZGlzcGxheV9yZXBseV9tb2RlKHNlbGYsIG1vZGUpOgorICAgICAgICBzZWxmLmRpc3BsYXlfcmVzdF9yZXBseSA9IG1vZGUKKworICAgIGRlZiByZXN0X3NpbXBsZV9yZXF1ZXN0KHNlbGYsdXJsLCB1c2VfY2FjaGUgPSBOb25lLCB0aW1lb3V0ID0gTm9uZSk6CisgICAgICAgICMgaW5jbHVkZSBhIHRyaXZpYWwgcmV0cnkgbWVjaGFuaXNtIC4uLiBvdGhlciBzcGVjaWZpYworICAgICAgICAjICB1cmxsaWIyIGV4Y2VwdGlvbiB0eXBlcyBtYXkgbmVlZCB0byBiZSBpbmNsdWRlZAorICAgICAgICByZXRyeV9jb3VudCA9IDAKKyAgICAgICAgaWYgdXNlX2NhY2hlID09IE5vbmUgb3IgdXNlX2NhY2hlOgorICAgICAgICAgICAgcmVzdWx0ID0gdXJsX2NhY2hlLmdldF9jYWNoZWRfdXJsKHVybCkKKyAgICAgICAgICAgIGlmIHJlc3VsdCAhPSBOb25lOgorICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQKKyAgICAgICAgd2hpbGUgcmV0cnlfY291bnQgPiAwOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIHJldHVybiB1cmxsaWIyLnVybG9wZW4odXJsLCB0aW1lb3V0ID0gdGltZW91dCkucmVhZCgpCisgICAgICAgICAgICBleGNlcHQgdXJsbGliMi5VUkxFcnJvcjoKKyAgICAgICAgICAgICAgICByZXRyeV9jb3VudCAtPSAxCisgICAgICAgICAgICAgICAgdGltZS5zbGVlcCgxKQorICAgICAgICAjIHRyeSBhZ2FpbiB3aXRob3V0IHRoZSB0cnkuLi4KKyAgICAgICAgaWYgc2VsZi5kaXNwbGF5X3Jlc3Q6CisgICAgICAgICAgICBwcmludCAiUkVTVC1TSU1QTEU6IiwgJ0dFVCcsIHVybAorICAgICAgICByZXN1bHQgPSB1cmxsaWIyLnVybG9wZW4odXJsLCB0aW1lb3V0ID0gdGltZW91dCkucmVhZCgpCisgICAgICAgIGlmIHNlbGYuZGlzcGxheV9yZXN0X3JlcGx5OgorICAgICAgICAgICAgcHJpbnQgJ1JFU1QtU0lNUExFOiAlcyByZXBseSAiJXMiJyAlICh1cmwsIHJlc3VsdCkKKyAgICAgICAgdXJsX2NhY2hlLnNhdmVfdXJsKHVybCwgcmVzdWx0KQorICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgICAgIAorICAgIAorICAgIGRlZiByZXN0X2pzb25fcmVxdWVzdChzZWxmLCB1cmwpOgorICAgICAgICBlbnRyaWVzID0gIHVybF9jYWNoZS5nZXRfY2FjaGVkX3VybCh1cmwpCisgICAgICAgIGlmIGVudHJpZXMgIT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiBlbnRyaWVzCisKKyAgICAgICAgcmVzdWx0ID0gc2VsZi5yZXN0X3NpbXBsZV9yZXF1ZXN0KHVybCkKKyAgICAgICAgIyBYWFggY2hlY2sgcmVzdWx0CisgICAgICAgIGVudHJpZXMgPSBqc29uLmxvYWRzKHJlc3VsdCkKKyAgICAgICAgdXJsX2NhY2hlLnNhdmVfdXJsKHVybCwgZW50cmllcykKKworICAgICAgICByZXR1cm4gZW50cmllcworCisgICAgZGVmIHJlc3RfcG9zdF9yZXF1ZXN0KHNlbGYsIHVybCwgb2JqLCB2ZXJiPSdQVVQnKToKKyAgICAgICAgcG9zdF9kYXRhID0ganNvbi5kdW1wcyhvYmopCisgICAgICAgIGlmIHNlbGYuZGlzcGxheV9yZXN0OgorICAgICAgICAgICAgcHJpbnQgIlJFU1QtUE9TVDoiLCB2ZXJiLCB1cmwsIHBvc3RfZGF0YQorICAgICAgICByZXF1ZXN0ID0gdXJsbGliMi5SZXF1ZXN0KHVybCwgcG9zdF9kYXRhLCB7J0NvbnRlbnQtVHlwZSc6J2FwcGxpY2F0aW9uL2pzb24nfSkKKyAgICAgICAgcmVxdWVzdC5nZXRfbWV0aG9kID0gbGFtYmRhOiB2ZXJiCisgICAgICAgIHJlc3BvbnNlID0gdXJsbGliMi51cmxvcGVuKHJlcXVlc3QpCisgICAgICAgIHJlc3VsdCA9IHJlc3BvbnNlLnJlYWQoKQorICAgICAgICBpZiBzZWxmLmRpc3BsYXlfcmVzdF9yZXBseToKKyAgICAgICAgICAgIHByaW50ICdSRVNULVBPU1Q6ICVzIHJlcGx5OiAiJXMiJyAlICh1cmwsIHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgIAorICAgIAorICAgIGRlZiBnZXRfdGFibGVfZnJvbV9zdG9yZShzZWxmLCB0YWJsZV9uYW1lLCBrZXk9Tm9uZSwgdmFsPU5vbmUsIG1hdGNoPU5vbmUpOgorICAgICAgICBpZiBub3Qgc2VsZi5jb250cm9sbGVyOgorICAgICAgICAgICAgcHJpbnQgIk5vIGNvbnRyb2xsZXIgc3BlY2lmaWVkLiBTZXQgdXNpbmcgJ2NvbnRyb2xsZXIgPHNlcnZlcjpwb3J0PicuIgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHVybCA9IHNlbGYudGFibGVfcmVhZF91cmwgJSAoc2VsZi5jb250cm9sbGVyLCB0YWJsZV9uYW1lKQorICAgICAgICBpZiBub3QgbWF0Y2g6CisgICAgICAgICAgICBtYXRjaCA9ICJzdGFydHN3aXRoIgorICAgICAgICBpZiBrZXkgYW5kIHZhbDoKKyAgICAgICAgICAgIHVybCA9ICIlcz8lc19fJXM9JXMiICUgKHVybCwga2V5LCBtYXRjaCwgdXJsbGliLnF1b3RlX3BsdXModmFsKSkKKyAgICAgICAgcmVzdWx0ID0gdXJsX2NhY2hlLmdldF9jYWNoZWRfdXJsKHVybCkKKyAgICAgICAgaWYgcmVzdWx0ICE9IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgICAgIGRhdGEgPSBzZWxmLnJlc3Rfc2ltcGxlX3JlcXVlc3QodXJsKQorICAgICAgICBlbnRyaWVzID0ganNvbi5sb2FkcyhkYXRhKQorICAgICAgICB1cmxfY2FjaGUuc2F2ZV91cmwodXJsLCBlbnRyaWVzKQorICAgICAgICByZXR1cm4gZW50cmllcworCisKKyAgICBkZWYgZ2V0X29iamVjdF9mcm9tX3N0b3JlKHNlbGYsIHRhYmxlX25hbWUsIHBrX3ZhbHVlKToKKyAgICAgICAgaWYgbm90IHNlbGYuY29udHJvbGxlcjoKKyAgICAgICAgICAgIHByaW50ICJObyBjb250cm9sbGVyIHNwZWNpZmllZC4gU2V0IHVzaW5nICdjb250cm9sbGVyIDxzZXJ2ZXI6cG9ydD4nLiIKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICB1cmwgPSBzZWxmLnRhYmxlX3JlYWRfdXJsICUgKHNlbGYuY29udHJvbGxlciwgdGFibGVfbmFtZSkKKyAgICAgICAgdXJsICs9IChwa192YWx1ZSArICcvJykKKyAgICAgICAgcmVzdWx0ID0gdXJsX2NhY2hlLmdldF9jYWNoZWRfdXJsKHVybCkKKyAgICAgICAgaWYgcmVzdWx0ICE9IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgICAgIGlmIHNlbGYuZGlzcGxheV9yZXN0OgorICAgICAgICAgICAgcHJpbnQgIlJFU1QtTU9ERUw6IiwgdXJsCisgICAgICAgIHJlc3BvbnNlID0gdXJsbGliMi51cmxvcGVuKHVybCkKKyAgICAgICAgaWYgcmVzcG9uc2UuY29kZSAhPSAyMDA6CisgICAgICAgICAgICAjIExPT0shIFNob3VsZCBwcm9iYWJseSByYWlzZSBleGNlcHRpb24gaGVyZSBpbnN0ZWFkLgorICAgICAgICAgICAgIyBJbiBnZW5lcmFsIHdlIG5lZWQgdG8gcmV0aGluayB0aGUgc3RvcmUgaW50ZXJmYWNlIGFuZCBob3cKKyAgICAgICAgICAgICMgd2Ugc2hvdWxkIHVzZSBleGNlcHRpb25zLgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgZGF0YSA9IHJlc3BvbnNlLnJlYWQoKQorICAgICAgICByZXN1bHQgPSBqc29uLmxvYWRzKGRhdGEpCisgICAgICAgIGlmIHNlbGYuZGlzcGxheV9yZXN0X3JlcGx5OgorICAgICAgICAgICAgcHJpbnQgJ1JFU1QtTU9ERUw6ICVzIHJlcGx5OiAiJXMiJyAlICh1cmwsIHJlc3VsdCkKKyAgICAgICAgdXJsX2NhY2hlLnNhdmVfdXJsKHVybCwgcmVzdWx0KQorICAgICAgICByZXR1cm4gcmVzdWx0CisKKworICAgICMgb2JqX2RhdGEgbXVzdCBjb250YWluIGEga2V5L3ZhbCBhbmQgYW55IG90aGVyIHJlcXVpcmVkIGRhdGEKKyAgICBkZWYgcmVzdF9jcmVhdGVfb2JqZWN0KHNlbGYsIG9ial90eXBlLCBvYmpfZGF0YSk6CisgICAgICAgIGlmIG5vdCBzZWxmLmNvbnRyb2xsZXI6CisgICAgICAgICAgICBwcmludCAiTm8gY29udHJvbGxlciBzcGVjaWZpZWQuIFNldCB1c2luZyAnY29udHJvbGxlciA8c2VydmVyOnBvcnQ+Jy4iCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgdXJsX2NhY2hlLmNsZWFyX2NhY2hlZF91cmxzKCkKKyAgICAgICAgdXJsID0gc2VsZi5lbnRyeV9wb3N0X3VybCAlIChzZWxmLmNvbnRyb2xsZXIsIG9ial90eXBlKQorICAgICAgICBkYXRhID0gc2VsZi5yZXN0X3Bvc3RfcmVxdWVzdCh1cmwsIG9ial9kYXRhKQorICAgICAgICAjIExPT0shIHN1Y2Nlc3NmdWwgc3R1ZmYgc2hvdWxkIGJlIHJldHVybmVkIGluIGpzb24gdG9vLgorICAgICAgICBpZiBkYXRhICE9ICJzYXZlZCI6CisgICAgICAgICAgICByZXN1bHQgPSBqc29uLmxvYWRzKGRhdGEpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgICAgIHVybF9jYWNoZS5jbGVhcl9jYWNoZWRfdXJscygpCisKKyAgICBkZWYgZmluZF9vYmplY3RfZnJvbV9zdG9yZShzZWxmLCBvYmpfdHlwZSwga2V5LCB2YWwpOgorICAgICAgICBpZiBub3Qgc2VsZi5jb250cm9sbGVyOgorICAgICAgICAgICAgcHJpbnQgIk5vIGNvbnRyb2xsZXIgc3BlY2lmaWVkLiBTZXQgdXNpbmcgJ2NvbnRyb2xsZXIgPHNlcnZlcjpwb3J0PicuIgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHVybCA9IHNlbGYudGFibGVfcmVhZF91cmwgJSAoc2VsZi5jb250cm9sbGVyLCBvYmpfdHlwZSkKKyAgICAgICAgcmVzdWx0ID0gdXJsX2NhY2hlLmdldF9jYWNoZWRfdXJsKHVybCkKKyAgICAgICAgaWYgcmVzdWx0ICE9IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgICAgIGRhdGEgPSBzZWxmLnJlc3Rfc2ltcGxlX3JlcXVlc3QoIiVzPyVzX19leGFjdD0lcyIgJSAodXJsLCBrZXksIHVybGxpYi5xdW90ZV9wbHVzKHZhbCkpKQorICAgICAgICBlbnRyaWVzID0ganNvbi5sb2FkcyhkYXRhKQorICAgICAgICB1cmxfY2FjaGUuc2F2ZV91cmwodXJsLCBlbnRyaWVzKQorICAgICAgICByZXR1cm4gZW50cmllcworCisgICAgZGVmIHJlc3RfcXVlcnlfb2JqZWN0cyhzZWxmLCBvYmpfdHlwZSwgcXVlcnlfcGFyYW1zPU5vbmUpOgorICAgICAgICBpZiBub3Qgc2VsZi5jb250cm9sbGVyOgorICAgICAgICAgICAgcHJpbnQgIk5vIGNvbnRyb2xsZXIgc3BlY2lmaWVkLiBTZXQgdXNpbmcgJ2NvbnRyb2xsZXIgPHNlcnZlcjpwb3J0PicuIgorICAgICAgICAgICAgcmV0dXJuCisgICAgICAgIHVybCA9IHNlbGYudGFibGVfcmVhZF91cmwgJSAoc2VsZi5jb250cm9sbGVyLCBvYmpfdHlwZSkKKyAgICAgICAgaWYgcXVlcnlfcGFyYW1zOgorICAgICAgICAgICAgdXJsICs9ICc/JworICAgICAgICAgICAgIyBDb252ZXJ0IGFueSBkYXRhOk5vbmUgZmllbGRzIHRvIDxpZD5fX2lzbnVsbD1UcnVlCisgICAgICAgICAgICBub25fbnVsbF9xdWVyeV9wYXJhbXMgPSBkaWN0KFtbbix2XSBpZiB2ICE9IE5vbmUgZWxzZSBbbiArICdfX2lzbnVsbCcsIFRydWVdCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKG4sdikgaW4gcXVlcnlfcGFyYW1zLml0ZW1zKCldKQorICAgICAgICAgICAgdXJsICs9IHVybGxpYi51cmxlbmNvZGUobm9uX251bGxfcXVlcnlfcGFyYW1zKQorICAgICAgICByZXN1bHQgPSB1cmxfY2FjaGUuZ2V0X2NhY2hlZF91cmwodXJsKQorICAgICAgICBpZiByZXN1bHQgIT0gTm9uZToKKyAgICAgICAgICAgIHJldHVybiByZXN1bHQKKyAgICAgICAgZGF0YSA9IHNlbGYucmVzdF9zaW1wbGVfcmVxdWVzdCh1cmwpCisgICAgICAgIGVudHJpZXMgPSBqc29uLmxvYWRzKGRhdGEpCisgICAgICAgIHVybF9jYWNoZS5zYXZlX3VybCh1cmwsIGVudHJpZXMpCisgICAgICAgIHJldHVybiBlbnRyaWVzCisgICAgICAgIAorICAgICMKKyAgICAjIGVpdGhlciBtdXN0IGNvbnRhaW4gYSBrZXkvdmFsIGFuZCBhbnkgb3RoZXIgcmVxdWlyZWQgZGF0YQorICAgICMgb2YgdGhlIGtleSBtdXN0IGJlIGEgZGljdGlvbmFyeSBpZGVudGlmeWluZyB0aGUgaXRlbSB0byBkZWxldGUuCisgICAgZGVmIHJlc3RfZGVsZXRlX29iamVjdChzZWxmLCBvYmpfdHlwZSwga2V5LCB2YWwgPSBOb25lKToKKyAgICAgICAgZGljdF8gPSB7fQorICAgICAgICB1cmwgPSBzZWxmLmVudHJ5X3Bvc3RfdXJsICUgKHNlbGYuY29udHJvbGxlciwgb2JqX3R5cGUpCisgICAgICAgIGlmIHZhbCA9PSBOb25lOgorICAgICAgICAgICAgaWYgbm90IHR5cGUoa2V5KSA9PSB0eXBlKGRpY3RfKToKKyAgICAgICAgICAgICAgICByZXR1cm4gTm9uZQorICAgICAgICAgICAgZGljdF8gPSBrZXkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHVybCArPSAiPyVzX19leGFjdD0lcyIgJSAoa2V5LCB1cmxsaWIucXVvdGVfcGx1cyh2YWwpKQorCisgICAgICAgICMgTE9PSyEgSSdtIG5vdCBzdXJlIHRoaXMgd29ya3MgdGhlIHdheSBpdCBzZWVtcyB0byBtZSBpdCdzCisgICAgICAgICMgZGVzaWduZWQgdG8gd29yay4gSSB0aGluayB0aGUgaW50ZW50IGlzIHRoYXQgeW91IGNhbiBzcGVjaWZ5CisgICAgICAgICMgcXVlcnkgcGFyYW1ldGVycyBpbiB0aGUga2V5IGFyZ3VtZW50IHdoaWNoIGNvbnRyb2xzIHdoaWNoCisgICAgICAgICMgaW5zdGFuY2Uocykgc2hvdWxkIGJlIGRlbGV0ZWQuIEJ1dCB3aGVuIEkgdHJ5IGl0IGl0IHNlZW1zIHRvCisgICAgICAgICMgYWx3YXlzIGRlbGV0ZSBhbGwgaW5zdGFuY2VzLCBzbyBpdCBzZWVtcyBsaWtlIHRoZSBwYXJhbWV0ZXJzCisgICAgICAgICMgZG9uJ3QgZmlsdGVyIHByb3Blcmx5IHdoZW4gcGFzc2VkIHZpYSB0aGUgUE9TVCBkYXRhIGFzIG9wcG9zZWQKKyAgICAgICAgIyB0byBiZWluZyBzcGVjaWZpZWQgYXMgcXVlcnkgcGFyYW1ldGVycyBpbiB0aGUgVVJMLiBUaGUgbGF0dGVyCisgICAgICAgICMgd2F5IGRvZXMgd29yayAtLSBzZWUgcmVzdF9kZWxldGVfb2JqZWN0cyB0aGF0IGZvbGxvd3MgdGhpcy4KKyAgICAgICAgZGF0YSA9IHNlbGYucmVzdF9wb3N0X3JlcXVlc3QodXJsLCBkaWN0XywgJ0RFTEVURScpCisgICAgICAgICMgTE9PSyEgc3VjY2Vzc2Z1bCBzdHVmZiBzaG91bGQgYmUgcmV0dXJuZWQgaW4ganNvbiB0b28uCisgICAgICAgIGlmIGRhdGEgIT0gImRlbGV0ZWQiOgorICAgICAgICAgICAgZGljdF8gPSBqc29uLmxvYWRzKGRhdGEpCisgICAgICAgICAgICByZXR1cm4gZGljdF8KKyAgICAgICAgdXJsX2NhY2hlLmNsZWFyX2NhY2hlZF91cmxzKCkKKworICAgIGRlZiByZXN0X2RlbGV0ZV9vYmplY3RzKHNlbGYsIG9ial90eXBlLCBxdWVyeV9wYXJhbXMpOgorICAgICAgICB1cmwgPSBzZWxmLmVudHJ5X3Bvc3RfdXJsICUgKHNlbGYuY29udHJvbGxlciwgb2JqX3R5cGUpCisgICAgICAgIGlmIHF1ZXJ5X3BhcmFtczoKKyAgICAgICAgICAgIHVybCArPSAnPycKKyAgICAgICAgICAgICMgQ29udmVydCBhbnkgZGF0YTpOb25lIGZpZWxkcyB0byA8aWQ+X19pc251bGw9VHJ1ZQorICAgICAgICAgICAgbm9uX251bGxfcXVlcnlfcGFyYW1zID0gZGljdChbW24sdl0gaWYgdiAhPSBOb25lIGVsc2UgW24gKyAnX19pc251bGwnLCBUcnVlXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChuLHYpIGluIHF1ZXJ5X3BhcmFtcy5pdGVtcygpXSkKKyAgICAgICAgICAgIHVybCArPSB1cmxsaWIudXJsZW5jb2RlKG5vbl9udWxsX3F1ZXJ5X3BhcmFtcykKKworICAgICAgICBkYXRhID0gc2VsZi5yZXN0X3Bvc3RfcmVxdWVzdCh1cmwsIHt9LCAnREVMRVRFJykKKyAgICAgICAgIyBMT09LISBzdWNjZXNzZnVsIHN0dWZmIHNob3VsZCBiZSByZXR1cm5lZCBpbiBqc29uIHRvby4KKyAgICAgICAgaWYgZGF0YSAhPSAiZGVsZXRlZCI6CisgICAgICAgICAgICByZXN1bHQgPSBqc29uLmxvYWRzKGRhdGEpCisgICAgICAgICAgICByZXR1cm4gcmVzdWx0CisgICAgICAgIHVybF9jYWNoZS5jbGVhcl9jYWNoZWRfdXJscygpCisgICAgICAgIAorICAgIGRlZiByZXN0X3VwZGF0ZV9vYmplY3Qoc2VsZiwgb2JqX3R5cGUsIG9ial9rZXlfbmFtZSwgb2JqX2tleV92YWwsIG9ial9kYXRhKToKKyAgICAgICAgaWYgbm90IHNlbGYuY29udHJvbGxlcjoKKyAgICAgICAgICAgIHByaW50ICJObyBjb250cm9sbGVyIHNwZWNpZmllZC4gU2V0IHVzaW5nICdjb250cm9sbGVyIDxzZXJ2ZXI6cG9ydD4nLiIKKyAgICAgICAgICAgIHJldHVybgorICAgICAgICB1cmwgPSBzZWxmLmVudHJ5X3Bvc3RfdXJsICUgKHNlbGYuY29udHJvbGxlciwgb2JqX3R5cGUpCisgICAgICAgIHVybCArPSAiPyVzPSVzIiAlIChvYmpfa2V5X25hbWUsIHVybGxpYi5xdW90ZV9wbHVzKG9ial9rZXlfdmFsKSkgIyBhZGQgYSBxdWVyeSBzdHJpbmcKKyAgICAgICAgZGF0YSA9IHNlbGYucmVzdF9wb3N0X3JlcXVlc3QodXJsLCBvYmpfZGF0YSkKKyAgICAgICAgIyBMT09LISBzdWNjZXNzZnVsIHN0dWZmIHNob3VsZCBiZSByZXR1cm5lZCBpbiBqc29uIHRvby4KKyAgICAgICAgcmVzdWx0ID0ganNvbi5sb2FkcyhkYXRhKQorICAgICAgICBpZiByZXN1bHQuZ2V0KCdkZXNjcmlwdGlvbicsICcnKSAhPSAic2F2ZWQiOgorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorICAgICAgICB1cmxfY2FjaGUuY2xlYXJfY2FjaGVkX3VybHMoKQorCisgICAgZGVmIHNldF91c2VyX2RhdGFfZmlsZShzZWxmLCBuYW1lLCB0ZXh0KToKKyAgICAgICAgdXJsID0gc2VsZi51c2VyX2RhdGFfdXJsICUgKHNlbGYuY29udHJvbGxlcikKKyAgICAgICAgdmVyc2lvbiA9IDEgIyBkZWZhdWx0CisgICAgICAgICMgZmluZCB0aGUgbGF0ZXN0IHZlcnNpb24gZm9yIGEgbmFtZQorICAgICAgICBleGlzdGluZ19kYXRhID0gc2VsZi5nZXRfdXNlcl9kYXRhX3RhYmxlKG5hbWUsICJsYXRlc3QiKSAKKyAgICAgICAgaWYgbGVuKGV4aXN0aW5nX2RhdGEpID4gMDogIyBzaG91bGQgYmUgYXQgbW9zdCAxLCBidXQganVzdCBpbiBjYXNlLi4uCisgICAgICAgICAgICB2ZXJzaW9uID0gbWF4KFtpbnQoZlsndmVyc2lvbiddKSBmb3IgZiBpbiBleGlzdGluZ19kYXRhXSkgKyAxICMgTE9PSyEgcmFjZT8KKyAgICAgICAgbGVuZ3RoID0gbGVuKHRleHQpCisgICAgICAgICMgTE9PSyEgd2hhdCB0byBkbyBhYm91dCB0aW1lIGluIGEgZGlzdHJpYnV0ZWQgc3lzdGVtIQorICAgICAgICB0aW1lc3RhbXAgPSBkYXRldGltZS5kYXRldGltZS51dGNub3coKS5zdHJmdGltZSgiJVktJW0tJWQuJUg6JU06JVMiKQorICAgICAgICB1cmwgKz0gIiVzL3RpbWVzdGFtcD0lcy92ZXJzaW9uPSVzL2xlbmd0aD0lcy8iICUgKG5hbWUsIHRpbWVzdGFtcCwgdmVyc2lvbiwgbGVuZ3RoKQorICAgICAgICByZXR1cm4gc2VsZi5jb3B5X3RleHRfdG9fdXJsKHVybCwgdGV4dCkKKworICAgIGRlZiBnZXRfdXNlcl9kYXRhX2ZpbGUoc2VsZiwgbmFtZSk6CisgICAgICAgIHVybCA9IHNlbGYudXNlcl9kYXRhX3VybCAlIChzZWxmLmNvbnRyb2xsZXIpCisgICAgICAgIHVybCArPSBuYW1lICsgIi8iCisgICAgICAgIHJldHVybiBzZWxmLnJlc3Rfc2ltcGxlX3JlcXVlc3QodXJsKQorCisgICAgZGVmIGRlbGV0ZV91c2VyX2RhdGFfZmlsZShzZWxmLCBuYW1lKToKKyAgICAgICAgdXJsID0gc2VsZi51c2VyX2RhdGFfdXJsICUgKHNlbGYuY29udHJvbGxlcikKKyAgICAgICAgdXJsICs9IG5hbWUgKyAiLyIKKyAgICAgICAgZGF0YSA9IHNlbGYucmVzdF9wb3N0X3JlcXVlc3QodXJsLCB7fSwgJ0RFTEVURScpCisgICAgICAgIGlmIGRhdGEgIT0gImRlbGV0ZWQiOgorICAgICAgICAgICAgcmVzdWx0ID0ganNvbi5sb2FkcyhkYXRhKQorICAgICAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgZGVmIGdldF91c2VyX2RhdGFfdGFibGUoc2VsZiwgbmFtZT1Ob25lLCBzaG93X3ZlcnNpb249ImxhdGVzdCIpOgorICAgICAgICBpZiBub3Qgc2VsZi5jb250cm9sbGVyOgorICAgICAgICAgICAgcHJpbnQgIk5vIGNvbnRyb2xsZXIgc3BlY2lmaWVkLiBTZXQgdXNpbmcgJ2NvbnRyb2xsZXIgPHNlcnZlcjpwb3J0PicuIgorICAgICAgICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgdXJsID0gc2VsZi51c2VyX2RhdGFfdXJsICUgc2VsZi5jb250cm9sbGVyCisgICAgICAgIGlmIG5hbWU6CisgICAgICAgICAgICB1cmwgKz0gIj9uYW1lX19zdGFydHN3aXRoPSVzIiAlIG5hbWUKKyAgICAgICAgZGF0YSA9IHNlbGYucmVzdF9zaW1wbGVfcmVxdWVzdCh1cmwpCisgICAgICAgIG5ld19kYXRhID0gW10KKyAgICAgICAgZGF0YSA9IGpzb24ubG9hZHMoZGF0YSkKKyAgICAgICAgbGF0ZXN0X3ZlcnNpb25zID0ge30gICMgZGljdCBvZiBsYXRlc3QgdmVyc2lvbiBwZXIgbmFtZQorICAgICAgICBmb3IgZCBpbiBkYXRhOiAgIyBsaXN0IG9mIGRpY3RzCisgICAgICAgICAgICBsID0gZFsnbmFtZSddLnNwbGl0KCcvJykgIyBleDogc3RhcnR1cC90aW1lc3RhbXA9MjAxMC0xMS0wMy4wNTo1MToyNy92ZXJzaW9uPTEvbGVuZ3RoPTIwMzgKKyAgICAgICAgICAgIG5kID0gZGljdChbaXRlbS5zcGxpdCgnPScpIGZvciBpdGVtIGluIGxbMTpdXSkKKyAgICAgICAgICAgIG5kWyduYW1lJ10gPSBsWzBdCisgICAgICAgICAgICBuZFsnZnVsbF9uYW1lJ10gPSBkWyduYW1lJ10KKyAgICAgICAgICAgIG5ld19kYXRhLmFwcGVuZChuZCkKKyAgICAgICAgICAgIGlmIG5vdCBuZFsnbmFtZSddIGluIGxhdGVzdF92ZXJzaW9ucyBvciBpbnQobmRbJ3ZlcnNpb24nXSkgPiBpbnQobGF0ZXN0X3ZlcnNpb25zW25kWyduYW1lJ11dKToKKyAgICAgICAgICAgICAgICBsYXRlc3RfdmVyc2lvbnNbbmRbJ25hbWUnXV0gPSBuZFsndmVyc2lvbiddICMgaW5pdGlhbGl6ZSBmaXJzdCB0aW1lCisKKyAgICAgICAgIyBwcnVuZSBpZiBuZWVkZWQgdG8gYSBuYW1lIG9yIGEgcGFydGljdWxhciB2ZXJzaW9uCisgICAgICAgIGlmIG5hbWU6CisgICAgICAgICAgICBuZXdfZGF0YSA9IFsgbmQgZm9yIG5kIGluIG5ld19kYXRhIGlmIG5kWyduYW1lJ10uc3RhcnRzd2l0aChuYW1lKSBdCisgICAgICAgIGlmIHNob3dfdmVyc2lvbiA9PSAibGF0ZXN0IjoKKyAgICAgICAgICAgIG5ld19kYXRhID0gWyBuZCBmb3IgbmQgaW4gbmV3X2RhdGEgaWYgbm90IGludChuZFsndmVyc2lvbiddKSA8IGludChsYXRlc3RfdmVyc2lvbnNbbmRbJ25hbWUnXV0pIF0KKyAgICAgICAgZWxpZiBzaG93X3ZlcnNpb24gIT0gImFsbCI6CisgICAgICAgICAgICBuZXdfZGF0YSA9IFsgbmQgZm9yIG5kIGluIG5ld19kYXRhIGlmIG5kWyd2ZXJzaW9uJ10gPT0gc2hvd192ZXJzaW9uIF0KKyAgICAgICAgcmV0dXJuIG5ld19kYXRhCisKKworICAgICMgTE9PSyEgbG9va3MgYSBsb3QgbGlrZSBhIHJlc3RfcG9zdF9yZXF1ZXN0IGV4Y2VwdCB3ZSBkb24ndCBqc29uaWZ5IGFuZCB3ZSBoYW5kbGUKKyAgICAjIGVycm9ycyBkaWZmZXJlbnRseS4uLiByZWZhY3Rvcj8gIFNhbWUgd2l0aCBnZXRfdGV4dCBhbmQgcmVzdF9zaW1wbGVfcmVxdWVzdAorICAgIGRlZiBjb3B5X3RleHRfdG9fdXJsKHNlbGYsIHVybCwgc3JjX3RleHQsIG1lc3NhZ2UgPSBOb25lKToKKyAgICAgICAgcG9zdF9kYXRhID0gc3JjX3RleHQKKyAgICAgICAgaWYgdXJsLnN0YXJ0c3dpdGgoJ2Z0cDovLycpOgorICAgICAgICAgICAgdXJsX3N1ZmZpeCA9IHVybFs2Ol0KKyAgICAgICAgICAgIHVzZXIgPSAnYW5vbnltb3VzJworICAgICAgICAgICAgcGFzc3dvcmQgPSAnJworICAgICAgICAgICAgaWYgdXJsX3N1ZmZpeC5maW5kKCdAJykgIT0gLTE6CisgICAgICAgICAgICAgICAgdXJsX3BhcnRzID0gdXJsX3N1ZmZpeC5zcGxpdCgnQCcpCisgICAgICAgICAgICAgICAgdXJsX3VzZXJfYW5kX3Bhc3N3b3JkID0gdXJsX3BhcnRzWzBdCisgICAgICAgICAgICAgICAgdXJsX3N1ZmZpeCA9IHVybF9wYXJ0c1sxXQorICAgICAgICAgICAgICAgIGlmIHVybF91c2VyX2FuZF9wYXNzd29yZC5maW5kKCc6JykgIT0gLTE6CisgICAgICAgICAgICAgICAgICAgIHVzZXJfYW5kX3Bhc3N3b3JkID0gdXJsX3VzZXJfYW5kX3Bhc3N3b3JkLnNwbGl0KCc6JykKKyAgICAgICAgICAgICAgICAgICAgdXNlciA9IHVzZXJfYW5kX3Bhc3N3b3JkWzBdCisgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkID0gdXNlcl9hbmRfcGFzc3dvcmRbMV0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICB1c2VyID0gdXJsX3VzZXJfYW5kX3Bhc3N3b3JkCisKKyAgICAgICAgICAgIGhvc3QgPSB1cmxfc3VmZml4CisgICAgICAgICAgICBwYXRoID0gTm9uZQorICAgICAgICAgICAgaWYgdXJsX3N1ZmZpeC5maW5kKCcvJyk6CisgICAgICAgICAgICAgICAgdXJsX3N1ZmZpeF9wYXJ0cyA9IHVybF9zdWZmaXguc3BsaXQoJy8nKQorICAgICAgICAgICAgICAgIGhvc3QgPSB1cmxfc3VmZml4X3BhcnRzWzBdCisgICAgICAgICAgICAgICAgcGF0aCA9IHVybF9zdWZmaXhfcGFydHNbMV0KKyAgICAgICAgICAgIGZ0cF90YXJnZXQgPSBmdHBsaWIuRlRQKGhvc3QsIHVzZXIsIHBhc3N3b3JkKQorCisgICAgICAgICAgICBmdHBfdGFyZ2V0LnN0b3JiaW5hcnkoJ1NUT1IgJXMnICUgcGF0aCwgU3RyaW5nUmVhZGVyKHBvc3RfZGF0YSkpCisgICAgICAgICAgICAjIGFwcGFyZW50bHksIHN0b3JiaW5hcnkgZG9lc24ndCBwcm92aWRlIGEgcmV0dXJuIHZhbHVlCisgICAgICAgICAgICByZXN1bHQgPSB7ICJyZXN1bHQiIDogInN1Y2Nlc3MiIH0gIyBkb24ndCBkaXNwbGF5IGFueSBvdGhlciBlcnJvciBtZXNzYWdlcworICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVxdWVzdCA9IHVybGxpYjIuUmVxdWVzdCh1cmwsIHBvc3RfZGF0YSwgeydDb250ZW50LVR5cGUnOid0ZXh0L3BsYWluJ30pCisgICAgICAgICAgICByZXF1ZXN0LmdldF9tZXRob2QgPSBsYW1iZGE6ICdQVVQnCisgICAgICAgICAgICBpZiBzZWxmLmRpc3BsYXlfcmVzdDoKKyAgICAgICAgICAgICAgICBwcmludCAiUkVTVC1URVhULVRPOiIsIHJlcXVlc3QKKyAgICAgICAgICAgIHJlc3BvbnNlID0gdXJsbGliMi51cmxvcGVuKHJlcXVlc3QpCisgICAgICAgICAgICByZXN1bHQgPSByZXNwb25zZS5yZWFkKCkKKyAgICAgICAgICAgIGlmIHNlbGYuZGlzcGxheV9yZXN0X3JlcGx5OgorICAgICAgICAgICAgICAgIHByaW50ICdSRVNULVRFWFQtVE86ICVzIHJlcGx5ICIlcyInICUgKHJlcXVlc3QsIHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCisgICAgZGVmIGdldF90ZXh0X2Zyb21fdXJsKHNlbGYsIHVybCk6CisgICAgICAgIGlmIHNlbGYuZGlzcGxheV9yZXN0OgorICAgICAgICAgICAgcHJpbnQgIlJFU1QtVEVYVC1GUk9NOiIsIHVybAorICAgICAgICByZXN1bHQgPSB1cmxsaWIyLnVybG9wZW4odXJsKS5yZWFkKCkKKyAgICAgICAgaWYgc2VsZi5kaXNwbGF5X3Jlc3RfcmVwbHk6CisgICAgICAgICAgICBwcmludCAnUkVTVC1URVhULUZST006ICVzIHJlc3VsdDoiJXMiJyAlICh1cmwsIHJlc3VsdCkKKyAgICAgICAgcmV0dXJuIHJlc3VsdApkaWZmIC0tZ2l0IGEvY2xpL3RlY2hfc3VwcG9ydC5weSBiL2NsaS90ZWNoX3N1cHBvcnQucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uOWJiMzlmOAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS90ZWNoX3N1cHBvcnQucHkKQEAgLTAsMCArMSw3MiBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKKyMKKyMgIChjKSBpbiAyMDEyIGJ5IEJpZyBTd2l0Y2ggTmV0d29ya3MKKyMgIEFsbCByaWdodHMgcmVzZXJ2ZWQKKyMKKworIworIyBzaG93IHRlY2gtc3VwcG9ydAorIworIyMgQ29tbWFuZCB0YWJsZSBmb3Igc2hvdyB0ZWNoLXN1cHBvcnQgY29tbWFuZAordGVjaF9zdXBwb3J0X2NvbW1hbmRzID0gWworICAgIFsnY2xpJywgJ3Nob3cgdmVyc2lvbicsIE5vbmVdLAorICAgIFsnY2xpJywgJ3Nob3cgY29udHJvbGxlci1ub2RlIGxvY2FsaG9zdCBzdW1tYXJ5JywgTm9uZV0sCisgICAgWydjbGknLCAnc2hvdyBjbG9jaycsIE5vbmVdLAorICAgIFsnY2xpJywgJ3Nob3cgY29uZmlnJywgTm9uZV0sCisgICAgWydjbGknLCAnc2hvdyBjb25maWctZmlsZScsIE5vbmVdLAorICAgIFsnY2xpJywgJ3Nob3cgY29udHJvbGxlci1ub2RlJywgTm9uZV0sCisgICAgWydjbGknLCAnc2hvdyBjb250cm9sbGVyLW5vZGUgYWxsIGludGVyZmFjZXMnLCBOb25lXSwKKyAgICBbJ2NsaScsICdzaG93IGNvbnRyb2xsZXItbm9kZSBsb2NhbGhvc3Qgc3RhdHMnLCBOb25lXSwKKyAgICBbJ2NsaScsICdzaG93IHJ1bm5pbmctY29uZmlnJywgTm9uZV0sCisgICAgWydjbGknLCAnc2hvdyBzd2l0Y2gnLCBOb25lXSwKKyAgICBbJ2NsaScsICdzaG93IHN3aXRjaC1jbHVzdGVyJywgTm9uZV0sCisgICAgWydjbGknLCAnc2hvdyBsaW5rJywgTm9uZV0sCisgICAgWydjbGknLCAnc2hvdyB0dW5uZWwgYWxsJywgTm9uZV0sCisgICAgWydjbGknLCAnc2hvdyBob3N0JywgTm9uZV0sCisgICAgWydjbGknLCAnc2hvdyBob3N0IGFsbCBhdHRhY2htZW50LXBvaW50JywgTm9uZV0sCisgICAgWydjbGknLCAnc2hvdyBob3N0IGFsbCBpcC1hZGRyZXNzJywgTm9uZV0sCisgICAgIyBbJ2NsaScsICdzaG93IGZsb3ctY2FjaGUnLCBOb25lXSwKKyAgICBbJ2NsaScsICdzaG93IGZsb3ctZW50cnknLCBOb25lXSwKKyAgICBbJ2NsaScsICdzaG93IG5ldHdvcmstc2VydmljZScsIE5vbmVdLAorICAgIFsnY2xpJywgJ3Nob3cgZXZlbnQtaGlzdG9yeSB0b3BvbG9neS1jbHVzdGVyJywgTm9uZV0sCisgICAgWydjbGknLCAnc2hvdyBldmVudC1oaXN0b3J5IHRvcG9sb2d5LWxpbmsnLCBOb25lXSwKKyAgICBbJ2NsaScsICdzaG93IGV2ZW50LWhpc3RvcnkgdG9wb2xvZ3ktc3dpdGNoJywgTm9uZV0sCisgICAgWydjbGknLCAnc2hvdyBsb2dnaW5nIGFsbCcsIE5vbmVdLAorICAgICMgWydjbGknLCAnc2hvdyBzeXN0ZW0gaW50ZXJuYWwgcGVyZm9ybWFuY2UtZGF0YSddLCB3YXNuJ3Qgd29ya2luZworICAgIFsnY2xpJywgJ2hpc3RvcnkgMTAwJywgTm9uZV0sCisgICAgWydzaGVsbCcsICAndXB0aW1lJywgTm9uZV0sCisgICAgWydzaGVsbCcsICAncHMgLWVsZicsIE5vbmVdLAorICAgIFsnc2hlbGwnLCAgJ3BzdHJlZScsIE5vbmVdLAorICAgIFsnc2hlbGwnLCAgJ2NhdCAvcHJvYy9tZW1pbmZvJywgTm9uZV0sCisgICAgWydzaGVsbCcsICAnZGYgLW0nLCBOb25lXSwKKyAgICBbJ3NoZWxsJywgICd0b3AgLW4gMSAtYicsIE5vbmVdLAorICAgIFsnc2hlbGwnLCAgJ2RtZXNnJywgTm9uZV0sCisgICAgXQorCisjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBhZGRfdG9fc2hvd190ZWNoX3N1cHBvcnQKKyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCitkZWYgYWRkX3RvX3Nob3dfdGVjaF9zdXBwb3J0KHNoZWxsLCBjbWQsIGZlYXR1cmU9Tm9uZSk6CisgICAgdGVjaF9zdXBwb3J0X2NvbW1hbmRzLmFwcGVuZChbc2hlbGwsIGNtZCwgZmVhdHVyZV0pCisKK2RlZiBwcmludF9zaG93X3RlY2goKToKKyAgICBmb3IgZW50cnkgaW4gdGVjaF9zdXBwb3J0X2NvbW1hbmRzOgorICAgICAgIHByaW50ICJTaGVsbCAlcyIlZW50cnlbMF0gKyAiLENtZCAlcyIlZW50cnlbMV0gKyAiLEZlYXR1cmUgJXMiJWVudHJ5WzJdCisKK2RlZiBnZXRfc2hvd190ZWNoX2NtZF90YWJsZSgpOgorICAgIHJldHVybiB0ZWNoX3N1cHBvcnRfY29tbWFuZHMKZGlmZiAtLWdpdCBhL2NsaS90aW1lc2luY2UucHkgYi9jbGkvdGltZXNpbmNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjAwYTQxN2UKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvdGltZXNpbmNlLnB5CkBAIC0wLDAgKzEsODMgQEAKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDExLDIwMTIsMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworaW1wb3J0IGRhdGV0aW1lCisKK2RlZiB1bmdldHRleHQoYSxiLGNvdW50KToKKyAgICBpZiBjb3VudCA+IDE6ICMgcGx1cmFsCisgICAgICAgIHJldHVybiBiCisgICAgcmV0dXJuIGEKKworZGVmIHVnZXR0ZXh0KGEpOgorICAgIHJldHVybiBhCisKK2RlZiB0aW1lc2luY2Vfc2VjKHNpbmNlKToKKyAgICBjaHVua3MgPSAoCisgICAgICAoNjAgKiA2MCAqIDI0ICogMzY1LCBsYW1iZGEgbjogdW5nZXR0ZXh0KCd5ZWFyJywgJ3llYXJzJywgbikpLAorICAgICAgKDYwICogNjAgKiAyNCAqIDMwLCBsYW1iZGEgbjogdW5nZXR0ZXh0KCdtb250aCcsICdtb250aHMnLCBuKSksCisgICAgICAoNjAgKiA2MCAqIDI0ICogNywgbGFtYmRhIG4gOiB1bmdldHRleHQoJ3dlZWsnLCAnd2Vla3MnLCBuKSksCisgICAgICAoNjAgKiA2MCAqIDI0LCBsYW1iZGEgbiA6IHVuZ2V0dGV4dCgnZGF5JywgJ2RheXMnLCBuKSksCisgICAgICAoNjAgKiA2MCwgbGFtYmRhIG46IHVuZ2V0dGV4dCgnaG91cicsICdob3VycycsIG4pKSwKKyAgICAgICg2MCwgbGFtYmRhIG46IHVuZ2V0dGV4dCgnbWludXRlJywgJ21pbnV0ZXMnLCBuKSkKKyAgICApCisgICAgZm9yIGksIChzZWNvbmRzLCBuYW1lKSBpbiBlbnVtZXJhdGUoY2h1bmtzKToKKyAgICAgICAgY291bnQgPSBzaW5jZSAvLyBzZWNvbmRzCisgICAgICAgIGlmIGNvdW50ICE9IDA6CisgICAgICAgICAgICBicmVhaworICAgIHMgPSB1Z2V0dGV4dCgnJShudW1iZXIpZCAlKHR5cGUpcycpICUgeydudW1iZXInOiBjb3VudCwgJ3R5cGUnOiBuYW1lKGNvdW50KX0KKyAgICBpZiBpICsgMSA8IGxlbihjaHVua3MpOgorICAgICAgICAjIE5vdyBnZXQgdGhlIHNlY29uZCBpdGVtCisgICAgICAgIHNlY29uZHMyLCBuYW1lMiA9IGNodW5rc1tpICsgMV0KKyAgICAgICAgY291bnQyID0gKHNpbmNlIC0gKHNlY29uZHMgKiBjb3VudCkpIC8vIHNlY29uZHMyCisgICAgICAgIGlmIGNvdW50MiAhPSAwOgorICAgICAgICAgICAgcyArPSB1Z2V0dGV4dCgnLCAlKG51bWJlcilkICUodHlwZSlzJykgJSB7J251bWJlcic6IGNvdW50MiwgJ3R5cGUnOiBuYW1lMihjb3VudDIpfQorICAgIHJldHVybiBzCisgICAgCitkZWYgdGltZXNpbmNlKGQsIG5vdz1Ob25lKToKKyAgICAKKyAgICAiIiIKKyAgICBUYWtlcyB0d28gZGF0ZXRpbWUgb2JqZWN0cyBhbmQgcmV0dXJucyB0aGUgdGltZSBiZXR3ZWVuIGQgYW5kIG5vdworICAgIGFzIGEgbmljZWx5IGZvcm1hdHRlZCBzdHJpbmcsIGUuZy4gIjEwIG1pbnV0ZXMiLiAgSWYgZCBvY2N1cnMgYWZ0ZXIgbm93LAorICAgIHRoZW4gIjAgbWludXRlcyIgaXMgcmV0dXJuZWQuCisKKyAgICBVbml0cyB1c2VkIGFyZSB5ZWFycywgbW9udGhzLCB3ZWVrcywgZGF5cywgaG91cnMsIGFuZCBtaW51dGVzLgorICAgIFNlY29uZHMgYW5kIG1pY3Jvc2Vjb25kcyBhcmUgaWdub3JlZC4gIFVwIHRvIHR3byBhZGphY2VudCB1bml0cyB3aWxsIGJlCisgICAgZGlzcGxheWVkLiAgRm9yIGV4YW1wbGUsICIyIHdlZWtzLCAzIGRheXMiIGFuZCAiMSB5ZWFyLCAzIG1vbnRocyIgYXJlCisgICAgcG9zc2libGUgb3V0cHV0cywgYnV0ICIyIHdlZWtzLCAzIGhvdXJzIiBhbmQgIjEgeWVhciwgNSBkYXlzIiBhcmUgbm90LgorCisgICAgQWRhcHRlZCBmcm9tIGh0dHA6Ly9ibG9nLm5hdGJhdC5jby51ay9hcmNoaXZlLzIwMDMvSnVuLzE0L3RpbWVfc2luY2UKKyAgICAiIiIKKyAgICAjIENvbnZlcnQgZGF0ZXRpbWUuZGF0ZSB0byBkYXRldGltZS5kYXRldGltZSBmb3IgY29tcGFyaXNvbi4KKyAgICBpZiBub3QgaXNpbnN0YW5jZShkLCBkYXRldGltZS5kYXRldGltZSk6CisgICAgICAgIGQgPSBkYXRldGltZS5kYXRldGltZShkLnllYXIsIGQubW9udGgsIGQuZGF5KQorICAgIGlmIG5vdyBhbmQgbm90IGlzaW5zdGFuY2Uobm93LCBkYXRldGltZS5kYXRldGltZSk6CisgICAgICAgIG5vdyA9IGRhdGV0aW1lLmRhdGV0aW1lKG5vdy55ZWFyLCBub3cubW9udGgsIG5vdy5kYXkpCisKKyAgICBpZiBub3Qgbm93OgorICAgICAgICBpZiBkLnR6aW5mbzoKKyAgICAgICAgICAgIG5vdyA9IGRhdGV0aW1lLmRhdGV0aW1lLm5vdyhkLnR6aW5mbykKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIG5vdyA9IGRhdGV0aW1lLmRhdGV0aW1lLm5vdygpCisKKyAgICAjIGlnbm9yZSBtaWNyb3NlY29uZCBwYXJ0IG9mICdkJyBzaW5jZSB3ZSByZW1vdmVkIGl0IGZyb20gJ25vdycKKyAgICBkZWx0YSA9IG5vdyAtIChkIC0gZGF0ZXRpbWUudGltZWRlbHRhKDAsIDAsIGQubWljcm9zZWNvbmQpKQorICAgIHNpbmNlID0gZGVsdGEuZGF5cyAqIDI0ICogNjAgKiA2MCArIGRlbHRhLnNlY29uZHMKKyAgICBpZiBzaW5jZSA8IDA6CisgICAgICAgICMgZCBpcyBpbiB0aGUgZnV0dXJlIGNvbXBhcmVkIHRvIG5vdywgc3RvcCBwcm9jZXNzaW5nLgorICAgICAgICByZXR1cm4gJ2Z1dHVyZScKKyAgICBpZiBzaW5jZSA9PSAwOgorICAgICAgICByZXR1cm4gJzAgbWludXRlJyAjIHBvc3NiaWJseSBhIGJldHRlciBzdHJpbmcgaGVyZT8KKyAgICByZXR1cm4gdGltZXNpbmNlX3NlYyhzaW5jZSkKZGlmZiAtLWdpdCBhL2NsaS90b29scy9leHByX3RvX2Rlc2MucHkgYi9jbGkvdG9vbHMvZXhwcl90b19kZXNjLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjk4NjdkNDkKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvdG9vbHMvZXhwcl90b19kZXNjLnB5CkBAIC0wLDAgKzEsODAzIEBACisjIS91c3IvYmluL3B5dGhvbgorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKKyMgU2ltcGxlIGNvbW1hbmQgZGVzY3JpcHRpb24gYnVpbGRlci4KKyMKKworaW1wb3J0IG9zCitpbXBvcnQgY29weQoraW1wb3J0IGZpbGVpbnB1dAoraW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IGFyZ3BhcnNlCisKK2RlZiBwYXJzZSgqbGluZSk6CisgICAgaWYgYXJncy5wOgorICAgICAgICBwcmludCBsaW5lCisKK2RlZiBkZWJ1ZygqbGluZSk6CisgICAgaWYgYXJncy5kOgorICAgICAgICBwcmludCBsaW5lCisKK2RlZiB2ZXJib3NlKCpsaW5lKToKKyAgICBpZiBhcmdzLnY6CisgICAgICAgIHByaW50IGxpbmUKKworZGVmIGVycm9yKCpsaW5lKToKKyAgICBwcmludCBsaW5lCisKKworYWRkX3Rva2VuID0gKCdvJywgJysnKQorZnJvbnRfdG9rZW4gPSAoJ28nLCAnXicpCitlbmRfdG9rZW4gPSAoJ28nLCAnJCcpCisKK2RlZiB0b2tlbnMobGluZSk6CisgICAgIiIiCisgICAgUmV0dXJucyB0aGUgdG9rZW56aWVkIGxpbmUsIHdpdGggYSBlb2wgdG9rZW4gYXQgdGhlIGVuZAorICAgIFRoZSBzdGFydC10b2tlbiBtdXN0IGJlIHByZWZpeGVkIGJlZm9yZSBwYXJzaW5nCisgICAgIiIiCisgICAgdG9rZW5zID0gW10KKyAgICBpID0gMAorICAgIGVuZCA9IGxlbihsaW5lKQorICAgIHdoaWxlIGkgPCBlbmQ6CisgICAgICAgICMgYnJlYWsKKyAgICAgICAgd2hpbGUgbGluZVtpXSBpbiAnIFx0XHJcbic6CisgICAgICAgICAgICBpICs9IDEKKyAgICAgICAgICAgIGlmIGkgPT0gZW5kOgorICAgICAgICAgICAgICAgIGJyZWFrCisgICAgICAgIGlmIGkgPT0gZW5kOgorICAgICAgICAgICAgYnJlYWsKKyAgICAgICAgaWYgbGluZVtpXSBpbiAnW117fTw+KCl8JzoKKyAgICAgICAgICAgIHRva2Vucy5hcHBlbmQoKCdvJywgbGluZVtpXSkpICMgJ28nIDw9IGNoYXIsIG9wCisgICAgICAgICAgICBpICs9IDEKKyAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICMgc3Bhbi4KKyAgICAgICAgdG9rZW4gPSAnJworICAgICAgICBydW5faSA9IGkgCisgICAgICAgIHdoaWxlIG5vdCBsaW5lW3J1bl9pXSBpbiAnIFx0W117fTw+fFxuJzoKKyAgICAgICAgICAgIHJ1bl9pICs9IDEKKyAgICAgICAgICAgIGlmIHJ1bl9pID09IGVuZDoKKyAgICAgICAgICAgICAgICBicmVhaworICAgICAgICB0b2tlbnMuYXBwZW5kKCgndCcsIGxpbmVbaTpydW5faV0pKSAjICd0JyA8PSB0b2tlbgorICAgICAgICBpID0gcnVuX2kKKyAgICAjCisgICAgdG9rZW5zLmFwcGVuZChlbmRfdG9rZW4pICMgJ3QnIDw9ICckJyBmb3IgZW9sCisKKyAgICByZXR1cm4gdG9rZW5zCisKK3ByaW9yaXR5X2RpY3QgPSB7CisgICAgICAgICAgICdeJyAgOiAwLCAgICAgICAjIGhhdCwgZnJvbnQgb2YgbGluZQorICAgICAgICAgICAnJCcgIDogMSwgICAgICAgIyBuZXdsaW5lLCBlbmQgb2YgbGluZQorICAgICAgICAgICAnKScgIDogMiwKKyAgICAgICAgICAgJygnICA6IDMsCisgICAgICAgICAgICd9JyAgOiA0LAorICAgICAgICAgICAneycgIDogNSwKKyAgICAgICAgICAgJ10nICA6IDYsCisgICAgICAgICAgICdbJyAgOiA3LAorICAgICAgICAgICAnPicgIDogOCwKKyAgICAgICAgICAgJzwnICA6IDksCisgICAgICAgICAgICd8JyAgOiAxMCwKKyAgICAgICAgICAgJysnICA6IDExLAorICAgICAgICAgICB9CisKK2RlZiBwcmlvcml0eSh0b2spOgorICAgIGlmIG5vdCBpc19vcCh0b2spOgorICAgICAgICByZXR1cm4gLTEgIyBsb3dlciB0aGFuIGFueSB3aXRoIGEgdmFsaWQgcHJpb3JpdHksIGVuYWJsZXMgcHVzaAorICAgIGlmIG5vdCB0b2tbMV0gaW4gcHJpb3JpdHlfZGljdDoKKyAgICAgICAgcmV0dXJuIDEwMCAjIGhpZ2hlciB0aGFuIGFueSB3aXRoIGEgdmFsaWQgcHJpb3JpdHksIGVuYWJsZXMgcHVzaAorICAgIHJldHVybiBwcmlvcml0eV9kaWN0W3Rva1sxXV0KKworZGVmIGlzX29wKHRvayk6CisgICAgcmV0dXJuIHRva1swXSA9PSAnbycKKworZGVmIGlzX3Rva2VuKHRvayk6CisgICAgcmV0dXJuIHRva1swXSA9PSAndCcKKworZGVmIGlzX2ZpZWxkKHRvayk6CisgICAgcmV0dXJuIHRva1swXSA9PSAnZmllbGQnCisKK2RlZiBpc190cmVlKHRvayk6CisgICAgcmV0dXJuIHRva1swXSA9PSAndHJlZScKKworZGVmIGlzX2xpc3QodG9rKToKKyAgICByZXR1cm4gdHlwZSh0b2spID09IGxpc3QKKworZGVmIG9wX29mKHRvayk6CisgICAgcmV0dXJuIHRva1sxXQorCitkZWYgdG9rZW5fb2YodG9rKToKKyAgICByZXR1cm4gdG9rWzFdCisKK2RlZiBmaWVsZF9saXN0X29mKHRvayk6CisgICAgcmV0dXJuIHRva1sxXQorCitiYWxhbmNlID0geworICAgICAgICAnXScgIDogJ1snLAorICAgICAgICAnfScgIDogJ3snLAorICAgICAgICAnPicgIDogJzwnLAorICAgICAgICAnKScgIDogJygnLAorICAgICAgICAnJCcgIDogJ14nLAorfQorCitkZWYgcGFydG5lcih0b2spOgorICAgIGlmIGlzX29wKHRvayk6CisgICAgICAgIGlmIHRva2VuX29mKHRvaykgaW4gYmFsYW5jZToKKyAgICAgICAgICAgIHJldHVybiBiYWxhbmNlW3Rva2VuX29mKHRvayldCisgICAgcmV0dXJuIE5vbmUKKworCitzdGFjayA9IFtdCisKK2RlZiBwcmludF9zdGFjaygpOgorICAgIGZvciBzIGluIHN0YWNrOgorICAgICAgICBwcmludCBzCisKK2RlZiBwdXNoKGl0ZW0pOgorICAgIHBhcnNlKCJQVVNIICIsIHN0YWNrLCAiQUREICIsIGl0ZW0pCisgICAgc3RhY2suYXBwZW5kKGl0ZW0pCisKK2RlZiBwb3AoKToKKyAgICBwYXJzZSggIlBPUCIsIHN0YWNrICkKKyAgICBwID0gc3RhY2tbLTFdCisgICAgZGVsIHN0YWNrWy0xXQorICAgIHJldHVybiBwCisKK2RlZiByZXNldF9zdGFjaygpOgorICAgIGdsb2JhbCBzdGFjaworICAgIHN0YWNrID0gW10KKworZGVmIHBlZWsoaSA9IDEpOgorICAgIHRvcCA9IGxlbihzdGFjaykKKyAgICBpZiB0b3AgPCBpOgorICAgICAgICByZXR1cm4gKCdvJywnXicpICMgPD0gZnJvbnQgb2YgbGluZQorICAgIHJldHVybiBzdGFja1staV0KKworZGVmIGlzX2luX29yZGVyKGNvbGxlY3QpOgorICAgIGlmIGlzX29wKGNvbGxlY3RbMV0pIGFuZCBjb2xsZWN0WzFdWzFdID09ICcrJzoKKyAgICAgICAgcmV0dXJuIFRydWUKKyAgICByZXR1cm4gRmFsc2UKKworZGVmIGlzX2VpdGhlcihjb2xsZWN0KToKKyAgICBpZiBpc19vcChjb2xsZWN0WzFdKSBhbmQgY29sbGVjdFsxXVsxXSA9PSAnfCc6CisgICAgICAgIHJldHVybiBUcnVlCisgICAgcmV0dXJuIEZhbHNlCisKK2RlZiBnYXRoZXJfZmllbGRfbGlzdChjb2xsZWN0LCBmaWVsZF9saXN0KToKKyAgICBpZiB0eXBlKGNvbGxlY3QpID09IGxpc3Q6CisgICAgICAgIGZvciBmIGluIGNvbGxlY3Q6CisgICAgICAgICAgICBnYXRoZXJfZmllbGRfbGlzdChmLCBmaWVsZF9saXN0KQorICAgIGVsaWYgaXNfdG9rZW4oY29sbGVjdCk6CisgICAgICAgIGZpZWxkX2xpc3QuYXBwZW5kKGNvbGxlY3QpCisgICAgZWxpZiBpc190cmVlKGNvbGxlY3QpOgorICAgICAgICBnYXRoZXJfZmllbGRfbGlzdCh0b2tlbl9vZih0b2tlbl9vZihjb2xsZWN0KSksIGZpZWxkX2xpc3QpCisgICAgZWxzZToKKyAgICAgICAgZmllbGRfbGlzdC5hcHBlbmQoZmllbGRfbGlzdCkKKworZGVmIGdhdGhlcl9maWVsZChjb2xsZWN0KToKKyAgICBwYXJzZSggIkdBVEhFUiBGSUVMRCAiLCBjb2xsZWN0KQorICAgIGZpZWxkX2xpc3QgPSBbXQorICAgIGlmIGlzX3Rva2VuKGNvbGxlY3QpOgorICAgICAgICBmaWVsZF9saXN0LmFwcGVuZChjb2xsZWN0KQorICAgIGVsaWYgaXNfdHJlZShjb2xsZWN0KToKKyAgICAgICAgZ2F0aGVyX2ZpZWxkX2xpc3QodG9rZW5fb2YodG9rZW5fb2YoY29sbGVjdCkpLCBmaWVsZF9saXN0KQorICAgIGVsaWYgdHlwZShjb2xsZWN0KSA9PSBsaXN0OgorICAgICAgICBnYXRoZXJfZmllbGRfbGlzdChjb2xsZWN0LCBmaWVsZF9saXN0KQorICAgIGVsc2U6CisgICAgICAgIGZpZWxkX2xpc3QuYXBwZW5kKGNvbGxlY3QpCisgICAgcmV0dXJuICgnZmllbGQnLCBmaWVsZF9saXN0KQorCitkZWYgdHJlZV9idWlsZGVyKGNvbGxlY3QsIHRvayk6CisgICAgcmVzdWx0ID0gTm9uZQorICAgIG9wID0gb3Bfb2YodG9rKQorICAgIHBhcnNlKCAiV0hBVCAiLCBjb2xsZWN0LCB0b2spCisgICAgaWYgb3AgPT0gJ30nOiAjIHsgc3R1ZmYgfSAuLi4gc2VsZWN0IG9uZSBmcm9tIHRoZSBhcmdzCisgICAgICAgICMgWFhYIGVhcmx5IHJldHVybgorICAgICAgICBpZiBsZW4oY29sbGVjdCkgPT0gMToKKyAgICAgICAgICAgIHJlc3VsdCA9ICgnQ0hPSUNFIEFMT05FJywgY29sbGVjdCkKKyAgICAgICAgZWxpZiBpc19laXRoZXIoY29sbGVjdCk6CisgICAgICAgICAgICByZXN1bHQgPSAoIkNIT0lDRSBPRiIsIFtjIGZvciBjIGluIGNvbGxlY3QgaWYgbm90IGlzX29wKGMpXSkKKyAgICAgICAgZWxpZiBpc19pbl9vcmRlcihjb2xsZWN0KToKKyAgICAgICAgICAgIHJlc3VsdCA9ICgiQ0hPSUNFIE9SREVSIiwgW2MgZm9yIGMgaW4gY29sbGVjdCBpZiBub3QgaXNfb3AoYyldKQorICAgICAgICBlbGlmIGlzX3RyZWUoY29sbGVjdCk6CisgICAgICAgICAgICByZXN1bHQgPSAoJ0NIT0lDRSBUUkVFJywgY29sbGVjdCkKKyAgICAgICAgZWxpZiBpc19maWVsZChjb2xsZWN0KToKKyAgICAgICAgICAgIHJldHVybiBnYXRoZXJfZmllbGQoY29sbGVjdCkKKyAgICAgICAgZWxpZiBpc190b2tlbihjb2xsZWN0KToKKyAgICAgICAgICAgIHJldHVybiBjb2xsZWN0CisgICAgICAgIGVsaWYgaXNfdG9rZW4oY29sbGVjdCk6CisgICAgICAgICAgICByZXR1cm4gY29sbGVjdAorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmVzdWx0ID0gKCJDSE9JQ0UgVFJPVUJMRSIsIG9wLCBjb2xsZWN0KQorICAgIGVsaWYgb3AgPT0gJ10nOiAjIFsgc3R1ZmYgXSAuLi4gc3R1ZmYgd2hpY2ggaXMgb3B0aW9uYWwKKyAgICAgICAgaWYgbGVuKGNvbGxlY3QpID09IDE6CisgICAgICAgICAgICByZXN1bHQgPSAoJ09QVElPTiBBTE9ORScsIGNvbGxlY3QpCisgICAgICAgIGVsaWYgaXNfZWl0aGVyKGNvbGxlY3QpOgorICAgICAgICAgICAgcmVzdWx0ID0gKCJPUFRJT04gT0YiLCBbYyBmb3IgYyBpbiBjb2xsZWN0IGlmIG5vdCBpc19vcChjKV0pCisgICAgICAgIGVsaWYgaXNfaW5fb3JkZXIoY29sbGVjdCk6CisgICAgICAgICAgICByZXN1bHQgPSAoIk9QVElPTiBPUkRFUiIsIFtjIGZvciBjIGluIGNvbGxlY3QgaWYgbm90IGlzX29wKGMpXSkKKyAgICAgICAgZWxpZiBpc190cmVlKGNvbGxlY3QpOgorICAgICAgICAgICAgcmVzdWx0ID0gKCdPUFRJT04gVFJFRScsIGNvbGxlY3QpCisgICAgICAgIGVsaWYgaXNfZmllbGQoY29sbGVjdCk6CisgICAgICAgICAgICByZXR1cm4gKCd0cmVlJywgKCdPUFRJT04gRklFTEQnLCBjb2xsZWN0KSkKKyAgICAgICAgZWxpZiBpc190b2tlbihjb2xsZWN0KToKKyAgICAgICAgICAgIHJlc3VsdCA9ICgnT1BUSU9OIFRPS0VOJywgY29sbGVjdCkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJlc3VsdCA9ICgiT1BUSU9OIFRST1VCTEUiLCBvcCwgY29sbGVjdCkKKyAgICBlbGlmIG9wID09ICcpJzogIyAoIHN0dWZmICkgLi4uIG5vIHNlbWFudGljIG1lYW5pbmcsCisgICAgICAgICMgWFhYIGVhcmx5IHJldHVybgorICAgICAgICByZXR1cm4gY29sbGVjdAorICAgIGVsaWYgb3AgPT0gJz4nOiAjIGRlc2NyaXB0aW9uIG9mIGEgZmllbGQKKyAgICAgICAgZ2F0aGVyID0gZ2F0aGVyX2ZpZWxkKGNvbGxlY3QpCisgICAgICAgIHBhcnNlKCJHQVRIRVJFRDogIixnYXRoZXIpCisgICAgICAgIHJldHVybiBnYXRoZXIKKyAgICBlbGlmIG9wID09ICd8JzogIyBlaXRoZXIgb2YKKyAgICAgICAgcmVzdWx0ID0gKCdFSVRIRVInLCBbYyBmb3IgYyBpbiBjb2xsZWN0IGlmIG5vdCBpc19vcChjKV0pCisgICAgZWxpZiBvcCA9PSAnKyc6ICMgc3VtIG9mCisgICAgICAgIHJlc3VsdCA9ICgnT1JERVInLCBbYyBmb3IgYyBpbiBjb2xsZWN0IGlmIG5vdCBpc19vcChjKV0pCisgICAgZWxpZiBvcCA9PSAnJCc6ICMgZW9sLCBjb2xsZWN0IHVwIGFueSB0cmVlJ3MgbGVmdAorICAgICAgICAjIFhYWCBzeW50YXggZXJyb3I/CisgICAgICAgIHByaW50ICJTVEFDSyAiCisgICAgICAgIHByaW50X3N0YWNrKCkKKyAgICAgICAgcHJpbnQgIlRPSyAiLCB0b2sKKyAgICAgICAgcHJpbnQgIkNPTExFQ1QiLCBjb2xsZWN0CisgICAgICAgIGV4aXQoKQorICAgIGVsc2U6CisgICAgICAgIHBhcnNlKCdyZXR1cm4gY29sbGVjdCwgbGF0ZXIgdG9rJywgdG9rKQorICAgICAgICByZXR1cm4gY29sbGVjdAorICAgIHBhcnNlKCAiQlVJTEQgIiwgb3AsIHR5cGUocmVzdWx0KSkKKyAgICByZXR1cm4gKCd0cmVlJywgcmVzdWx0KQorCisKK2RlZiBzaW5nbGVfdG9rZW4odG9rKToKKyAgICAod2hpY2gsIHQpID0gdG9rCisgICAgcGFyc2UoICJORVhUIiwgd2hpY2gsIHQsIHBlZWsoKSkKKworICAgIGlmIGlzX3Rva2VuKHRvaykgYW5kIGlzX3Rva2VuKHBlZWsoKSk6CisgICAgICAgICMgdHdvIHRva2VucyBpbiBhIHJvdywgcHJldGVuZCB0aGUgb3AgaXMgJysnCisgICAgICAgIHB1c2goYWRkX3Rva2VuKQorCisgICAgIyBpcyB0aGlzIGEgPHRyZWU+PHRyZWU+ID8KKyAgICBpZiBpc190cmVlKHBlZWsoKSkgYW5kIChpc190cmVlKHBlZWsoMikpIG9yIGlzX2ZpZWxkKHBlZWsoMikpKToKKyAgICAgICAgIyBjb2xsZWN0IHRvZ2V0aGVyIGFzIG1hbnkgYXMgcG9zc2libGUKKyAgICAgICAgY29sbGVjdCA9IFtwb3AoKV0KKyAgICAgICAgd2hpbGUgaXNfdHJlZShwZWVrKCkpIG9yIGlzX2ZpZWxkKHBlZWsoKSk6CisgICAgICAgICAgICBjb2xsZWN0Lmluc2VydCgwLCBwb3AoKSkKKyAgICAgICAgcHVzaCh0cmVlX2J1aWxkZXIoY29sbGVjdCwgYWRkX3Rva2VuKSkKKyAgICAjIGlzIHRoaXMgYSA8dHJlZT48dHJlZT4gPworICAgIGVsaWYgKG5vdCBpc19vcChwZWVrKCkpKSBhbmQgKG5vdCBpc19vcChwZWVrKDIpKSk6CisgICAgICAgICMgY29sbGVjdCB0b2dldGhlciBhcyBtYW55IGFzIHBvc3NpYmxlCisgICAgICAgIGNvbGxlY3QgPSBbcG9wKCldCisgICAgICAgIHdoaWxlIG5vdCBpc19vcChwZWVrKCkpOgorICAgICAgICAgICAgY29sbGVjdC5pbnNlcnQoMCwgcG9wKCkpCisgICAgICAgIHB1c2godHJlZV9idWlsZGVyKGNvbGxlY3QsIGFkZF90b2tlbikpCisKKyAgICBpZiBpc19vcCh0b2spOgorICAgICAgICBpZiBub3QgaXNfb3AocGVlaygxKSk6ICMgaXRlbSBvciB0b2tlbiBvciBmaWVsZAorICAgICAgICAgICAgcGFyc2UoICdQUklPICcsIHRvaywgcHJpb3JpdHkodG9rKSwgcGVlaygyKSwgcHJpb3JpdHkocGVlaygyKSkpCisgICAgICAgICAgICB3aGlsZSBwcmlvcml0eSh0b2spIDwgcHJpb3JpdHkocGVlaygyKSk6CisgICAgICAgICAgICAgICAgIyBjb2xsZWN0IGFzIG1hbnkgZnJvbSB0aGUgc2FtZSBwcmlvcml0eQorICAgICAgICAgICAgICAgIGxhc3QgPSBwb3AoKQorICAgICAgICAgICAgICAgIHBhcnNlKCAiLS0+Iiwgc3RhY2ssIHRvaywgbGFzdCkKKyAgICAgICAgICAgICAgICAjIHVuaWFyeSBvcD8KKyAgICAgICAgICAgICAgICBpZiBpc19vcChwZWVrKCkpIGFuZCBwYXJ0bmVyKHRvaykgPT0gb3Bfb2YocGVlaygpKTogIAorICAgICAgICAgICAgICAgICAgICBwYXJzZSggIlVOSUFSWSAiKQorICAgICAgICAgICAgICAgICAgICBwb3AoKSAjIDw9IHBvcCBtYXRjaGluZyBvcAorICAgICAgICAgICAgICAgICAgICBwdXNoKHRyZWVfYnVpbGRlcihsYXN0LCB0b2spKSAjIDw9IHRva2VuIHBvcHBlZCBvZmYKKyAgICAgICAgICAgICAgICAgICAgcGFyc2UoICJMRUFWRSIsIHN0YWNrLCB0b2spCisgICAgICAgICAgICAgICAgICAgIHJldHVybiAjIGRvbid0IHB1c2ggdGhlIHVuaWFyeSByaWdodCBvcAorCisgICAgICAgICAgICAgICAgY29sbGVjdCA9IGxhc3QKKyAgICAgICAgICAgICAgICBvcCA9IHRvaworICAgICAgICAgICAgICAgIGlmIGlzX29wKHBlZWsoKSk6CisgICAgICAgICAgICAgICAgICAgIG9wID0gcGVlaygpCisgICAgICAgICAgICAgICAgICAgIHBhcnNlKCAiQklOQVJZICIsIG9wKQorICAgICAgICAgICAgICAgICAgICBjb2xsZWN0ID0gW2xhc3RdCisgICAgICAgICAgICAgICAgICAgIHdoaWxlIGlzX29wKHBlZWsoKSkgYW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICBub3QgKHBhcnRuZXIodG9rKSA9PSBvcF9vZihwZWVrKCkpKSBhbmQgXAorICAgICAgICAgICAgICAgICAgICAgIHByaW9yaXR5KG9wKSA9PSBwcmlvcml0eShwZWVrKCkpOgorICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2UoICJXSFkgIiwgb3Bfb2Yob3ApLCBwcmlvcml0eShvcCksIG9wX29mKHBlZWsoKSksIHByaW9yaXR5KHBlZWsoKSkpCisgICAgICAgICAgICAgICAgICAgICAgICBjb2xsZWN0Lmluc2VydCgwLCBwb3AoKSkgIyA8PSBvcAorICAgICAgICAgICAgICAgICAgICAgICAgY29sbGVjdC5pbnNlcnQoMCwgcG9wKCkpICMgPD0gdG9rZW4KKyAgICAgICAgICAgICAgICAgICAgaWYgbGVuKGNvbGxlY3QpID09IDE6CisgICAgICAgICAgICAgICAgICAgICAgICBwcmludCAiTk9UIEJJTkFSWSIsIHRvaywgb3AsIHBlZWsKKyAgICAgICAgICAgICAgICAgICAgICAgIGV4aXQoKQorICAgICAgICAgICAgICAgIHBhcnNlKCAiPT0+ICIsIGNvbGxlY3QsIHRvaykKKyAgICAgICAgICAgICAgICBwYXJzZSggIl9fICAiLCBzdGFjaykKKyAgICAgICAgICAgICAgICBwdXNoKHRyZWVfYnVpbGRlcihjb2xsZWN0LCBvcCkpCisgICAgICAgICAgICAgICAgcGFyc2UoICJTTyBGQVIgIiwgc3RhY2spCisgICAgICAgICAgICAgICAgcGFyc2UoICJPUCBGQVIgIiwgdG9rKQorICAgIHB1c2godG9rKQorICAgIHBhcnNlKCAiTEFTVCIsIHN0YWNrLCB0b2spCisgCisKKyMKK2RlZiBzaW5nbGVfbGluZSh0b2tlbnMpOgorICAgIHJlc2V0X3N0YWNrKCkKKyAgICBmb3IgKHdoaWNoLCB0KSBpbiB0b2tlbnM6CisgICAgICAgIHNpbmdsZV90b2tlbigod2hpY2gsIHQpKQorCitkZWYgYWxsX3Rva2Vucyh0b2tlbl9saXN0KToKKyAgICBmb3IgdG9rZW4gaW4gdG9rZW5fbGlzdDoKKyAgICAgICAgcGFyc2UoICJBTEwgVE9LRU4/ICIsIHRva2VuKQorICAgICAgICBpZiBub3QgaXNfdG9rZW4odG9rZW4pOgorICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisgICAgcmV0dXJuIFRydWUKKworCitjbGFzcyBwcmludGVyOgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCBmb3JtLCBpc19vcHRpb25hbCwgaW5kZW50ID0gMik6CisgICAgICAgIHNlbGYuZm9ybSA9IGZvcm0KKyAgICAgICAgc2VsZi5pc19vcHRpb25hbCA9IGlzX29wdGlvbmFsCisgICAgICAgIHNlbGYubmVlZF9vcHRpb25hbCA9IEZhbHNlCisgICAgICAgIHNlbGYuaW5kZW50ID0gaW5kZW50CisgICAgCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJldHVybiAiZm9ybSAlcyBuZWVkICVzIG9wdGlvbmFsICVzIGluZGVudCAlcyIgJSAoCisgICAgICAgICAgICBzZWxmLmZvcm0sIHNlbGYubmVlZF9vcHRpb25hbCwgc2VsZi5pc19vcHRpb25hbCwgc2VsZi5pbmRlbnQpCisgICAgCisgICAgZGVmIGluZGVudHMoc2VsZiwgZXh0cmEgPSAwKToKKyAgICAgICAgcmV0dXJuICIgICAgIiAqIChzZWxmLmluZGVudCArIGV4dHJhKQorICAgIAorICAgIGRlZiB0b19kaWN0KHNlbGYpOgorICAgICAgICBzZWxmLmZvcm0gPSAnZGljdCcKKworICAgIGRlZiBpc19kaWN0KHNlbGYpOgorICAgICAgICBpZiBzZWxmLmZvcm0gPT0gJ2RpY3QnOgorICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBkZWYgdG9fdHVwbGUoc2VsZik6CisgICAgICAgIHNlbGYuZm9ybSA9ICd0dXBsZScKKworICAgIGRlZiBpc190dXBsZShzZWxmKToKKyAgICAgICAgaWYgc2VsZi5mb3JtID09ICd0dXBsZSc6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGRlZiBtb3JlX2luZGVudChzZWxmLCBpbmNyID0gMSk6CisgICAgICAgIHNlbGYuaW5kZW50ICs9IGluY3IKKyAgICAKKyAgICBkZWYgbGVzc19pbmRlbnQoc2VsZiwgZGVjciA9IDEpOgorICAgICAgICBzZWxmLmluZGVudCAtPSBkZWNyCisgICAgCisgICAgZGVmIG5lc3Qoc2VsZiwgaW5jciA9IDEsIGZvcm0gPSBOb25lLCBpc19vcHRpb25hbCA9IE5vbmUpOgorICAgICAgICBuZXcgPSBjb3B5LmRlZXBjb3B5KHNlbGYpCisgICAgICAgIG5ldy5pbmRlbnQgKz0gMQorICAgICAgICBpZiBmb3JtOgorICAgICAgICAgICAgbmV3LmZvcm0gPSBmb3JtCisgICAgICAgIGlmIGlzX29wdGlvbmFsOgorICAgICAgICAgICAgbmV3LmlzX29wdGlvbmFsID0gaXNfb3B0aW9uYWwKKyAgICAgICAgcmV0dXJuIG5ldworCitjbGFzcyBkZXNjcmlwdGlvbjoKKyAgICBkZWYgX19pbml0X18oc2VsZik6CisgICAgICAgIHNlbGYuZGVzYyA9IFtdCisgICAgICAgIAorICAgIGRlZiByYXdfb3V0KHNlbGYsIGxpbmUpOgorICAgICAgICBzZWxmLmRlc2MuYXBwZW5kKGxpbmUpCisKKyAgICBkZWYgb3V0KHNlbGYsIGxpbmUsIHByaW50ZXIpOgorICAgICAgICBzZWxmLmRlc2MuYXBwZW5kKHByaW50ZXIuaW5kZW50cygpICsgbGluZSkKKworICAgIGRlZiBvdXRfd2l0aF9pbmRlbnQoc2VsZiwgbGluZSwgcHJpbnRlcik6CisgICAgICAgIHNlbGYuZGVzYy5hcHBlbmQocHJpbnRlci5pbmRlbnRzKDEpICsgbGluZSkKKworICAgIGRlZiByZXN1bHQoc2VsZik6CisgICAgICAgIHJldHVybiAnXG4nLmpvaW4oc2VsZi5kZXNjKQorCitkZXNjID0gZGVzY3JpcHRpb24oKQorCitkZWYgc2luZ2xlX3JlY3Vyc2UodHJlZSk6CisgICAgIiIiCisgICAgbG9vayBmb3IgbmVzdGVkIHRyZWVzIHdob3NlIGxlYWYgb25seSBoYXMgYSBzaW5nbGUgZWxlbWVudAorICAgICIiIgorICAgIHJldHVybiBGYWxzZQorCitkZWYgbWFrZXJfaW5fb3JkZXIoaW5fb3JkZXIsIHByaW50ZXIpOgorICAgIGRlYnVnKCAiSU5fT1JERVIgIiwgaXNfdHJlZShpbl9vcmRlciksIGluX29yZGVyICkKKyAgICBpZiBpc19saXN0KGluX29yZGVyKToKKyAgICAgICAgd2FzX2RpY3QgPSBGYWxzZQorICAgICAgICBkZXNjLm91dCgnIyAlZCBpdGVtcyBpbiBvcmRlcicgJSBsZW4oaW5fb3JkZXIpICwgcHJpbnRlcikKKyAgICAgICAgZGVzYy5vdXQoJyMgJXMgJyAlIHByaW50ZXIgLCBwcmludGVyKQorICAgICAgICBpZiBwcmludGVyLmlzX2RpY3QoKToKKyAgICAgICAgICAgIHByaW50ZXIudG9fdHVwbGUoKQorICAgICAgICAgICAgZGVzYy5vdXQoIigiLCBwcmludGVyKQorICAgICAgICAgICAgcHJpbnRlci5tb3JlX2luZGVudCgpCisgICAgICAgICAgICB3YXNfZGljdCA9IFRydWUKKyAgICAgICAgZG9fb3B0aW9uYWwgPSBGYWxzZQorICAgICAgICBpZiBwcmludGVyLmlzX29wdGlvbmFsOgorICAgICAgICAgICAgaWYgbm90IHdhc19kaWN0OgorICAgICAgICAgICAgICAgIGRlc2Mub3V0KCIoIiwgcHJpbnRlcikKKyAgICAgICAgICAgICAgICBwcmludGVyLm1vcmVfaW5kZW50KCkKKyAgICAgICAgICAgIGRvX29wdGlvbmFsID0gVHJ1ZQorICAgICAgICAgICAgc2F2ZV9uZWVkX29wdGlvbmFsID0gcHJpbnRlci5uZWVkX29wdGlvbmFsCisgICAgICAgICAgICBwcmludGVyLm5lZWRfb3B0aW9uYWwgPSBUcnVlCisgICAgICAgICAgICBwcmludGVyLmlzX29wdGlvbmFsID0gRmFsc2UKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgZm9yIChuLCB0cmVlKSBpbiBlbnVtZXJhdGUoaW5fb3JkZXIsIDEpOgorICAgICAgICAgICAgZGVidWcoICJJTl9PUkRFUiBJVEVNICIsIG4sIGlzX3Rva2VuKHRyZWUpLCB0cmVlKQorICAgICAgICAgICAgZGVzYy5vdXQoJyMgaXRlbSAlZCAlcycgJSAobiwgcHJpbnRlcikgLCBwcmludGVyKQorICAgICAgICAgICAgbWFrZXJfaXRlbXModHJlZSwgcHJpbnRlcikKKworICAgICAgICBpZiB3YXNfZGljdCBvciBkb19vcHRpb25hbDoKKyAgICAgICAgICAgIHByaW50ZXIubGVzc19pbmRlbnQoKQorICAgICAgICAgICAgZGVzYy5vdXQoIiksIiwgcHJpbnRlcikKKyAgICAgICAgICAgIGlmIHdhc19kaWN0OgorICAgICAgICAgICAgICAgIHByaW50ZXIudG9fZGljdCgpCisgICAgICAgICAgICBpZiBkb19vcHRpb25hbDoKKyAgICAgICAgICAgICAgICBwcmludGVyLmlzX29wdGlvbmFsID0gVHJ1ZQorICAgICAgICAgICAgICAgIHByaW50ZXIubmVlZF9vcHRpb25hbCA9IHNhdmVfbmVlZF9vcHRpb25hbAorCisgICAgZWxpZiBpc190cmVlKGluX29yZGVyKToKKyAgICAgICAgd2FzX2RpY3QgPSBGYWxzZQorICAgICAgICBpZiBwcmludGVyLmlzX2RpY3QoKToKKyAgICAgICAgICAgIGRlc2Mub3V0KCIoIiwgcHJpbnRlcikgIyApKAorICAgICAgICAgICAgZGVzYy5vdXQoIiNpbl9vcmRlcjIiLCBwcmludGVyKQorICAgICAgICAgICAgdHJhY2ViYWNrLnByaW50X3N0YWNrKCkKKyAgICAgICAgICAgIHByaW50ZXIudG9fdHVwbGUoKQorICAgICAgICAgICAgcHJpbnRlci5tb3JlX2luZGVudCgpCisgICAgICAgICAgICB3YXNfZGljdCA9IFRydWUKKyAgICAgICAgZGVidWcoICJJTl9PUkRFUiBUUkVFICIsIHRva2VuX29mKGluX29yZGVyKSApCisgICAgICAgIG1ha2VyX2RvX29wKHRva2VuX29mKGluX29yZGVyKSwgcHJpbnRlcikKKyAgICAgICAgaWYgd2FzX2RpY3Q6CisgICAgICAgICAgICBwcmludGVyLmxlc3NfaW5kZW50KCkKKyAgICAgICAgICAgIGRlc2Mub3V0KCIpLCIsIHByaW50ZXIpCisgICAgICAgICAgICBwcmludGVyLnRvX2RpY3QoKQorICAgIGVsaWYgaXNfdG9rZW4oaW5fb3JkZXIpOgorICAgICAgICBtYWtlcl9pdGVtcyhpbl9vcmRlciwgcHJpbnRlci5uZXN0KGluY3IgPSAxKSkKKyAgICBlbGlmIGlzX2ZpZWxkKGluX29yZGVyKToKKyAgICAgICAgbWFrZXJfZmllbGQoZmllbGRfbGlzdF9vZihpbl9vcmRlciksIHByaW50ZXIubmVzdChpbmNyID0gMSkpCisgICAgZWxzZToKKyAgICAgICAgZXJyb3IoICJJTl9PUkRFUiBTVFVDSyIgKQorICAgIAorZGVmIG1ha2VyX2ZpZWxkKGZpZWxkX2xpc3QsIHByaW50ZXIpOgorICAgIHdhc190dXBsZSA9IEZhbHNlCisgICAgaWYgcHJpbnRlci5pc190dXBsZToKKyAgICAgICAgd2FzX3R1cGxlID0gVHJ1ZQorICAgICAgICBkZXNjLm91dCgieyIsIHByaW50ZXIpCisgICAgICAgIHByaW50ZXIubW9yZV9pbmRlbnQoKQorICAgICAgICBwcmludGVyLnRvX3R1cGxlKCkKKworICAgIGlmIHByaW50ZXIubmVlZF9vcHRpb25hbDoKKyAgICAgICAgZGVzYy5vdXQoIidvcHRpb25hbCcgOiAlcywiICUgcHJpbnRlci5pc19vcHRpb25hbCwgcHJpbnRlcikKKworICAgIGZvciBmaWVsZCBpbiBmaWVsZF9saXN0OgorICAgICAgICAjIEFkZCBtb3JlIGl0ZW1zIGhlcmUgdG8gcHJvdmlkZSBtb3JlIGZpZWxkIGRlY29yYXRpb24KKyAgICAgICAgcHJpbnRlci5tb3JlX2luZGVudAorICAgICAgICB2YWx1ZSA9IHRva2VuX29mKGZpZWxkKQorICAgICAgICBpZiB2YWx1ZS5maW5kKCc9JykgPT0gLTE6CisgICAgICAgICAgICBkZXNjLm91dCgiJ2ZpZWxkJyA6ICclcycsIiAlIHZhbHVlLCBwcmludGVyKQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgZGVzYy5vdXQoIiclcycgOiAnJXMnLCIgJSB0dXBsZSh2YWx1ZS5zcGxpdCgnPScpKSwgcHJpbnRlcikKKyAgICAgICAgcHJpbnRlci5sZXNzX2luZGVudAorICAgICAgICAKKyAgICBpZiB3YXNfdHVwbGU6CisgICAgICAgIHByaW50ZXIubGVzc19pbmRlbnQoKQorICAgICAgICBkZXNjLm91dCggIn0sIiwgcHJpbnRlciApCisgICAgICAgIHByaW50ZXIudG9fZGljdCgpCisKK2RlZiBtYWtlcl9jaG9pY2UodHJlZV90dXBsZSwgcHJpbnRlcik6CisgICAgZGVidWcoICdNQUtFUl9DSE9JQ0UnLCB0cmVlX3R1cGxlLCBwcmludGVyLmluZGVudCApCisKKyAgICBpZiBpc190cmVlKHRyZWVfdHVwbGUpOgorICAgICAgICAjIFhYWCBzb21lIHRyZWUncyBjYW4gYmUgc3F1YXNoZWQuCisgICAgICAgIGRlYnVnKCAiTUFLRVJfQ0hPSUNFIElURU0gIiwgdHJlZV90dXBsZSApCisgICAgICAgIG1ha2VyX2RvX29wKHRva2VuX29mKHRyZWVfdHVwbGUpLCBwcmludGVyKQorICAgICAgICByZXR1cm4KKworICAgICMgY2hvaWNlIG5lZWRzIHRvIHByaW50IGEgZGljdGlvbmFyeS4KKyAgICB3YXNfdHVwbGUgPSBGYWxzZQorICAgIGlmIHByaW50ZXIuaXNfdHVwbGUoKToKKyAgICAgICAgcHJpbnRlci50b19kaWN0KCkKKyAgICAgICAgd2FzX3R1cGxlID0gVHJ1ZQorCisgICAgZGVzYy5vdXQoJ3snLCBwcmludGVyKQorICAgIHByaW50ZXIubW9yZV9pbmRlbnQoKQorCisgICAgaWYgcHJpbnRlci5pc19vcHRpb25hbDoKKyAgICAgICAgZGVzYy5vdXQoIidvcHRpb25hbCc6ICVzLCIgJSBwcmludGVyLmlzX29wdGlvbmFsLCAgcHJpbnRlcikKKyAgICBkZXNjLm91dCgiJ2Nob2ljZXMnIDogKCIsIHByaW50ZXIpCisgICAgZGVzYy5vdXQoIiAgICAjIG1ha2VyX2Nob2ljZSIsIHByaW50ZXIpCisKKyAgICBpZiBpc19saXN0KHRyZWVfdHVwbGUpOgorICAgICAgICBkZWJ1ZyggIkNIT0lDRSBMSVNUIiwgbGVuKHRyZWVfdHVwbGUpLCB0cmVlX3R1cGxlICkKKyAgICAgICAgcHJpbnRlci5tb3JlX2luZGVudCgpCisgICAgICAgIGZvciAobiwgaXRlbSkgaW4gZW51bWVyYXRlKHRyZWVfdHVwbGUsIDEpOgorICAgICAgICAgICAgZGVidWcoICJDSE9JQ0UgTElzdCAjJWQiICUgbiApCisgICAgICAgICAgICBkZWJ1ZyggIiAgICAgICBJVEVNICIsIGl0ZW0gKQorICAgICAgICAgICAgbWFrZXJfaXRlbXMoaXRlbSwgcHJpbnRlcikKKyAgICAgICAgcHJpbnRlci5sZXNzX2luZGVudCgpCisgICAgZWxpZiBpc190cmVlKHRyZWVfdHVwbGUpOgorICAgICAgICBkZWJ1ZyggIkNIT0lDRSBUUkVFIiApCisgICAgICAgICh0cmVlX3doaWNoLCB0cmVlKSA9IHRyZWVfdHVwbGVbMV0KKyAgICAgICAgIyB0cmVlX3doaWNoID09ICd0cmVlJworICAgICAgICBtYWtlcl9kb19vcCh0b2tlbl9vZih0cmVlX3R1cGxlKSwgcHJpbnRlci5uZXN0KGZvcm0gPSAndHVwbGUnLCBpbmNyID0gMSkpCisgICAgZWxpZiBpc19maWVsZCh0cmVlX3R1cGxlKToKKyAgICAgICAgZGVidWcoICJDSE9JQ0UgRklFTEQiLCB0cmVlX3R1cGxlWzFdICkKKyAgICAgICAgcHJpbnRlci5tb3JlX2luZGVudCgpCisgICAgICAgIG1ha2VyX2ZpZWxkKGZpZWxkX2xpc3Rfb2YodHJlZV90dXBsZSksIHByaW50ZXIpCisgICAgICAgIHByaW50ZXIubGVzc19pbmRlbnQoKQorICAgIGVsc2U6CisgICAgICAgIGVycm9yKCAnTUFLRVJfQ0hPSUNFIENPTkZVU0VEJyApCisKKyAgICBkZXNjLm91dCgiKSIsIHByaW50ZXIpCisgICAgcHJpbnRlci5sZXNzX2luZGVudCgpCisgICAgZGVzYy5vdXQoJ30sJywgcHJpbnRlcikKKworICAgIGlmIHdhc190dXBsZToKKyAgICAgICAgcHJpbnRlci50b190dXBsZSgpCisKKworZGVmIG1ha2VyX2RvX29wKG9wX3R1cGxlLCBwcmludGVyKToKKyAgICBkZWJ1ZyggJ09QPT4gJywgb3BfdHVwbGUgKQorICAgIChvcCwgb3BlcmFuZHMpID0gb3BfdHVwbGUKKyAgICBkZWJ1ZyggJ09QICcsIG9wX3R1cGxlLCBvcCwgb3BlcmFuZHMgKQorICAgIGlmIG9wID09ICdPUkRFUic6CisgICAgICAgIGRlYnVnKCAiT1AgSU5fT1JERVIgIiwgb3BlcmFuZHMgKQorICAgICAgICBtYWtlcl9pbl9vcmRlcihvcGVyYW5kcywgcHJpbnRlcikKKyAgICBlbGlmIG9wID09ICdFSVRIRVInOgorICAgICAgICAjIFhYWCB3cm9uZworICAgICAgICBtYWtlcl9jaG9pY2Uob3BlcmFuZHMsIHByaW50ZXIpCisgICAgZWxpZiBvcC5zdGFydHN3aXRoKCdDSE9JQ0UnKToKKyAgICAgICAgbWFrZXJfY2hvaWNlKG9wZXJhbmRzLCBwcmludGVyKQorICAgIGVsaWYgb3Auc3RhcnRzd2l0aCgnT1BUSU9OJyk6CisgICAgICAgIHdhc19vcHRpb25hbCA9IHByaW50ZXIuaXNfb3B0aW9uYWwKKyAgICAgICAgcHJpbnRlci5pc19vcHRpb25hbCA9IFRydWUKKyAgICAgICAgZGVidWcoICdPUCBPUFRJT05BTCcsIG9wZXJhbmRzICkKKyAgICAgICAgbWFrZXJfaXRlbXMob3BlcmFuZHMsIHByaW50ZXIpCisgICAgICAgIHByaW50ZXIuaXNfb3B0aW9uYWwgPSB3YXNfb3B0aW9uYWwKKworCitkZWYgbWFrZXJfdHJlZXModHJlZXMsIHByaW50ZXIpOgorICAgICh0cmVlX3doaWNoLCBvcCkgPSB0cmVlcworICAgIG1ha2VyX2RvX29wKG9wLCBwcmludGVyKQorCisKK2RlZiBtYWtlcl9pdGVtcyhpdGVtcywgcHJpbnRlcik6CisgICAgZGVidWcoICJJVEVNUy0+ICIsIHR5cGUoaXRlbXMpLCBpdGVtcyApCisgICAgaWYgdHlwZShpdGVtcykgPT0gbGlzdDoKKyAgICAgICAgZm9yIGl0ZW0gaW4gaXRlbXM6CisgICAgICAgICAgICBpZiBpc190cmVlKGl0ZW0pOgorICAgICAgICAgICAgICAgIGRlYnVnKCAiVFJFRSAiLCBpdGVtICkKKyAgICAgICAgICAgICAgICBtYWtlcl9kb19vcChpdGVtLCBwcmludGVyKQorICAgICAgICAgICAgZWxpZiBpc19maWVsZChpdGVtKToKKyAgICAgICAgICAgICAgICBkZXNjLm91dCgieyIsIHByaW50ZXIpCisgICAgICAgICAgICAgICAgbWFrZXJfZmllbGQoZmllbGRfbGlzdF9vZihpdGVtKSwgcHJpbnRlcikKKyAgICAgICAgICAgICAgICBpZiBwcmludGVyLm5lZWRfb3B0aW9uYWw6CisgICAgICAgICAgICAgICAgICAgIGRlc2Mub3V0KCInb3B0aW9uYWwnIDogJXMsIiAlIHByaW50ZXIuaXNfb3B0aW9uYWwsIHByaW50ZXIpCisgICAgICAgICAgICAgICAgZGVzYy5vdXQoICJ9LCIsIHByaW50ZXIpCisgICAgICAgICAgICBlbGlmIGlzX3Rva2VuKGl0ZW0pOgorICAgICAgICAgICAgICAgIGRlc2Mub3V0KCJ7IiwgcHJpbnRlcikKKyAgICAgICAgICAgICAgICBwcmludGVyLm1vcmVfaW5kZW50KCkKKyAgICAgICAgICAgICAgICBkZXNjLm91dCgiJ3Rva2VuJyA6ICclcycsIiAlIHRva2VuX29mKGl0ZW0pLCBwcmludGVyKQorICAgICAgICAgICAgICAgIGlmIHByaW50ZXIubmVlZF9vcHRpb25hbDoKKyAgICAgICAgICAgICAgICAgICAgZGVzYy5vdXQoIidvcHRpb25hbCcgOiAlcywiICUgcHJpbnRlci5pc19vcHRpb25hbCwgcHJpbnRlcikKKyAgICAgICAgICAgICAgICBwcmludGVyLmxlc3NfaW5kZW50KCkKKyAgICAgICAgICAgICAgICBkZXNjLm91dCgifSwiLCBwcmludGVyKQorICAgIGVsaWYgaXNfdHJlZShpdGVtcyk6CisgICAgICAgIG1ha2VyX2RvX29wKHRva2VuX29mKGl0ZW1zKSwgcHJpbnRlcikKKyAgICBlbGlmIGlzX2ZpZWxkKGl0ZW1zKToKKyAgICAgICAgbWFrZXJfZmllbGQoZmllbGRfbGlzdF9vZihpdGVtcyksIHByaW50ZXIpCisgICAgZWxpZiBpc190b2tlbihpdGVtcyk6CisgICAgICAgIGRlYnVnKCAnSVRFTVMgVE9LRU4nLCBpdGVtcyApCisgICAgICAgIGRlc2Mub3V0KCAieyIsIHByaW50ZXIpCisgICAgICAgIHByaW50ZXIubW9yZV9pbmRlbnQoKQorICAgICAgICBkZXNjLm91dCggIid0b2tlbicgOiAnJXMnLCIgJSB0b2tlbl9vZihpdGVtcyksIHByaW50ZXIpCisgICAgICAgIGlmIHByaW50ZXIubmVlZF9vcHRpb25hbDoKKyAgICAgICAgICAgIGRlc2Mub3V0KCAiJ29wdGlvbmFsJyA6ICVzLCIgJSBwcmludGVyLmlzX29wdGlvbmFsLCBwcmludGVyKQorICAgICAgICBwcmludGVyLmxlc3NfaW5kZW50KCkKKyAgICAgICAgZGVzYy5vdXQoICJ9LCIsIHByaW50ZXIpCisgICAgZWxzZToKKyAgICAgICAgZXJyb3IoICJJVEVNUz4gU1RVQ0siLCBpdGVtcyApCisgICAgCisKKyMKK2RlZiBtYWtlcl9hcmdzKGFyZ3MsIHByaW50ZXIpOgorICAgIGRlYnVnKCAiTUFLRVJfQVJHUyAiLCBhcmdzICkKKyAgICAocGljaywgaXRlbSkgPSBhcmdzCisgICAgaWYgcGljayA9PSAnRUlUSEVSJzoKKyAgICAgICAgZGVidWcoICJNQUtFUl9BUkdTIEVJVEhFUiAiLCBpdGVtICkKKyAgICAgICAgaWYgbGVuKGl0ZW0pID49IDE6CisgICAgICAgICAgICBkZXNjLnJhd19vdXQoICcgICAgYXJncyA6IHsnKQorICAgICAgICAgICAgaWYgYWxsX3Rva2VucyhpdGVtKToKKyAgICAgICAgICAgICAgICBmb3IgY2hvaWNlIGluIGl0ZW06CisgICAgICAgICAgICAgICAgICAgIGRlc2MucmF3X291dCgiICAgICAgICAgICAgJyVzJywiICUgdG9rZW5fb2YoY2hvaWNlLCAzKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgbWFrZXJfdHJlZXMoaXRlbSwgcHJpbnRlcikKKyAgICAgICAgICAgIGRlc2MucmF3X291dCggJyAgICB9LCcgKQorICAgICAgICBlbHNlOiAgIyBleGFjdGx5IG9uZSBjaG9pY2UKKyAgICAgICAgICAgIGRlc2MucmF3X291dCggJyAgICBhcmdzIDogeyAnICkKKyAgICAgICAgICAgIGlmIGFsbF90b2tlbihpdGVtKToKKyAgICAgICAgICAgICAgICBkZXNjLnJhd19vdXQoIiAgICAgICAgICAgICclcycsIiAlIHRva2VuX29mKGl0ZW1bMF0pKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwcmludCBtYWtlcl90cmVlcyhpdGVtLCBwcmludGVyKQorICAgICAgICAgICAgZGVzYy5yYXdfb3V0KCAnICAgIH0sJyApCisgICAgZWxpZiBwaWNrLnN0YXJ0c3dpdGgoJ0NIT0lDRScpOgorICAgICAgICBkZWJ1ZyggIkNIT0lDRSIsIGxlbihpdGVtKSApCisgICAgICAgIGlmIGxlbihpdGVtKSA9PSAxOgorICAgICAgICAgICAgbWFrZXJfYXJncyhpdGVtKQorICAgICAgICBlbGlmIGlzX3RyZWUoaXRlbSkgYW5kIHRva2VuX29mKGl0ZW0pWzBdID09ICdFSVRIRVInOgorICAgICAgICAgICAgbWFrZXJfY2hvaWNlKHRva2VuX29mKGl0ZW0pLCBwcmludGVyKQorICAgICAgICBlbGlmIGlzX2ZpZWxkKGl0ZW0pIG9yIGlzX3Rva2VuKGl0ZW0pOgorICAgICAgICAgICAgbWFrZXJfY2hvaWNlKGl0ZW0sIHByaW50ZXIpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlcnJvciggIkNIT0lDRSBIRUxQICIsIGl0ZW0gKQorICAgIGVsaWYgcGljay5zdGFydHN3aXRoKCdPUkRFUicpOgorICAgICAgICAjIG91Z2h0IHRvIGNob29zZSB0aGUgZm9ybSBvZiB0aGUgcHJpbnRlciBiYXNlZCBvbiBpdGVtCisgICAgICAgIGRlc2Mub3V0KCInYXJncycgOiB7IiwgcHJpbnRlcikKKyAgICAgICAgcHJpbnRlci5sZXNzX2luZGVudCgpCisgICAgICAgIG1ha2VyX2luX29yZGVyKGl0ZW0sIHByaW50ZXIpCisgICAgICAgIHByaW50ZXIubGVzc19pbmRlbnQoKQorICAgICAgICBkZXNjLm91dCgnfScsIHByaW50ZXIpCisgICAgZWxpZiBwaWNrLnN0YXJ0c3dpdGgoJ09QVElPTicpOgorICAgICAgICBwcmludGVyLmlzX29wdGlvbmFsID0gVHJ1ZQorICAgICAgICBkZXNjLnJhd19vdXQoICcgICAgIGFyZ3MgOiB7JykKKyAgICAgICAgbWFrZXJfdHJlZXMoaXRlbSwgcHJpbnRlcikKKyAgICAgICAgZGVzYy5yYXdfb3V0KCAnICAgIH0sJykKKyAgICBlbHNlOgorICAgICAgICBlcnJvciggIk1BS0VSX1BJQ0tFUiBIRUxQICIsIHBpY2sgKQorCitzYXZlZF9pbnB1dCA9IFtdCisKKyMKK2RlZiBtYWtlcihuYW1lX3R1cGxlLCBub19zdXBwb3J0ZWQsIHJlc3VsdCwgcHJpbnRlcik6CisKKyAgICBuYW1lID0gdG9rZW5fb2YobmFtZV90dXBsZSkKKyAgICB2ZXJib3NlKCAnTmFtZTogJXMgbm8gJXMgUmVzdWx0ICVzJyAlIChuYW1lLCBub19zdXBwb3J0ZWQsIHJlc3VsdCkgKQorCisgICAgdHlwZSA9ICdhZGQtY29tbWFuZC10eXBlJworICAgIG1vZGUgPSAnbG9naW4nCisgICAgbmV3X21vZGUgPSAnY29uZmlnLUNIQU5HRScKKyAgICBvYmpfdHlwZSA9IE5vbmUKKyAgICAjCisgICAgIyBjb21tYW5kLW5hbWVAY29tbWFuZC10eXBlQGNvbW1hbmQtbW9kZUBvYmotdHlwZUBuZXdfbW9kZQorICAgICMKKyAgICBpZiBuYW1lLmZpbmQoJ0AnKSA+PSAwOgorICAgICAgICBuYW1lX3BhcnRzID0gbmFtZS5zcGxpdCgnQCcpCisgICAgICAgIG5hbWUgPSBuYW1lX3BhcnRzWzBdCisgICAgICAgIHR5cGUgPSBuYW1lX3BhcnRzWzFdCisgICAgICAgIGlmIGxlbihuYW1lX3BhcnRzKSA+IDI6CisgICAgICAgICAgICBtb2RlID0gbmFtZV9wYXJ0c1syXQorICAgICAgICBpZiBsZW4obmFtZV9wYXJ0cykgPiAzOgorICAgICAgICAgICAgb2JqX3R5cGUgPSBuYW1lX3BhcnRzWzNdCisgICAgICAgIGlmIGxlbihuYW1lX3BhcnRzKSA+IDQ6CisgICAgICAgICAgICBuZXdfbW9kZSA9IG5hbWVfcGFydHNbNF0KKyAgICAgICAgIyBuYW1lLXZhbHVlIHBhaXJzPworCisgICAgZGVidWcoICJOQU1FICIsIChuYW1lKSApCisgICAgZGVidWcoICdjb21tYW5kIG5hbWUgJywgIG5hbWUgKQorICAgIGRlc2MucmF3X291dCggJyVzXyVzX0NPTU1BTkRfREVTQ1JJUFRJT04gPSB7JyAlIAorICAgICAgICAgICAgICAgICAgKGFyZ3Mubi51cHBlcigpLCBuYW1lLnJlcGxhY2UoIi0iLCJfIikudXBwZXIoKSkpCisgICAgZGVzYy5yYXdfb3V0KCAiICAgICduYW1lJyAgICAgICAgICA6ICclcycsIiAlIG5hbWUpCisgICAgZGVzYy5yYXdfb3V0KCAiICAgICdtb2RlJyAgICAgICAgICA6ICclcycsIiAlIG1vZGUpCisgICAgaWYgbm9fc3VwcG9ydGVkID09IEZhbHNlOgorICAgICAgICBkZXNjLnJhd19vdXQoICIgICAgJ25vLXN1cHBvcnRlZCcgIDogRmFsc2UsIikKKyAgICBkZXNjLnJhd19vdXQoICIgICAgJ2NvbW1hbmQtdHlwZScgIDogJyVzJywiICUgdHlwZSkKKyAgICBpZiBvYmpfdHlwZToKKyAgICAgICAgZGVzYy5yYXdfb3V0KCAiICAgICdvYmotdHlwZScgICAgICA6ICclcycsIiAlIG9ial90eXBlKQorICAgIGlmIHR5cGUgPT0gJ2NvbmZpZy1zdWJtb2RlJzoKKyAgICAgICAgZGVzYy5yYXdfb3V0KCAiICAgICdzdWJtb2RlLW5hbWUnICA6ICclcycsIiAlIG5ld19tb2RlKQorICAgICAgICBkZXNjLnJhd19vdXQoICIgICAgJ3BhcmVudC1pZCcgICAgIDogTm9uZSwiKQorICAgIGRlc2MucmF3X291dCggIiAgICAnc2hvcnQtaGVscCcgICAgOiAnYWRkLXNob3J0LWNvbW1hbmQtaGVscCcsIikKKyAgICBpZiBhcmdzLmY6CisgICAgICAgIGRlc2MucmF3X291dCggIiAgICAnZmVhdHVyZScgICAgICAgOiAnJXMnLCIgJSBhcmdzLmYpCisgICAgIyBpZiB0aGUgcmVtYWluaW5nIGxlbmd0aCBpcyB0d28sIE9SREVSIHNob3VsZCBiZSBwb3BwZWQuCisgICAgZGVzYy5yYXdfb3V0KCAiICAgICdhcmdzJyA6ICggIikKKyAgICBtYWtlcl9pdGVtcyhyZXN1bHQsIHByaW50ZXIpCisgICAgZGVzYy5yYXdfb3V0KCAiICAgICksIikKKyAgICBkZXNjLnJhd19vdXQoICJ9IikKKyAgICByZXR1cm4KKworICAgIGlmIGxlbihvcmRlcl9saXN0KSA9PSAyIGFuZCBsZW4ob3JkZXIpID09IDE6CisgICAgICAgIGJ1aWxkX2Nob2ljZSA9IE5vbmUKKyAgICAgICAgaWYgaXNfdHJlZShvcmRlcl9saXN0WzFdKToKKyAgICAgICAgICAgIGRlYnVnKCAiTUFLRVIgVFJFRS4iLCB0b2tlbl9vZihvcmRlcl9saXN0WzFdKSApCisgICAgICAgICAgICBpZiB0b2tlbl9vZihvcmRlcl9saXN0WzFdKVswXS5zdGFydHN3aXRoKCdDSE9JQ0UnKToKKyAgICAgICAgICAgICAgICBjaG9pY2UgPSB0b2tlbl9vZihvcmRlcl9saXN0WzFdKQorICAgICAgICAgICAgICAgIGJ1aWxkX2Nob2ljZSA9IG9yZGVyX2xpc3RbMV0KKyAgICAgICAgaWYgYnVpbGRfY2hvaWNlOgorICAgICAgICAgICAgZGVzYy5vdXQoIidhcmdzJyA6IHsiLCBwcmludGVyKQorICAgICAgICAgICAgcHJpbnRlci5tb3JlX2luZGVudCgpCisgICAgICAgICAgICBtYWtlcl9jaG9pY2UoYnVpbGRfY2hvaWNlLCBwcmludGVyKQorICAgICAgICAgICAgcHJpbnRlci5sZXNzX2luZGVudCgpCisgICAgICAgICAgICBkZXNjLm91dCggJ30sJywgcHJpbnRlcikKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHByaW50ICJYWFgiLCBvcmRlcl9saXN0CisgICAgICAgICAgICBwcmludCAiWFhYIiwgb3JkZXJfbGlzdFsxXQorICAgICAgICAgICAgZGVzYy5vdXQoIidhcmdzJyA6ICgiLCBwcmludGVyKQorICAgICAgICAgICAgcHJpbnRlci5tb3JlX2luZGVudCgpCisgICAgICAgICAgICBwcmludGVyLnRvX3R1cGxlKCkKKyAgICAgICAgICAgIG1ha2VyX2luX29yZGVyKG9yZGVyX2xpc3RbMV0sIHByaW50ZXIpCisgICAgICAgICAgICBwcmludGVyLmxlc3NfaW5kZW50KCkKKyAgICAgICAgICAgIGRlc2Mub3V0KCAnKSwnLCBwcmludGVyKQorICAgIGVsaWYgbGVuKG9yZGVyKSA+IDE6CisgICAgICAgIG1ha2VyX2FyZ3MoKG9yZGVyWzBdLCBvcmRlclsxOl0pLCBwcmludGVyKQorICAgIGVsc2U6CisgICAgICAgIGRlc2MucmF3X291dCgnfScpCisKKworcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIocHJvZz0nZGVzY19tYWtlcicpCitwYXJzZXIuYWRkX2FyZ3VtZW50KCdmaWxlJykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy1wJykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy1kJykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy12JykKK3BhcnNlci5hZGRfYXJndW1lbnQoJy1uJywgZGVmYXVsdCA9ICJORVciKQorcGFyc2VyLmFkZF9hcmd1bWVudCgnLWYnKQorYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKCkKKworZm9yIGxpbmUgaW4gZmlsZWlucHV0LmlucHV0KGFyZ3MuZmlsZSk6CisKKyAgICBsaW5lX3Rva2VucyA9IHRva2VucyhsaW5lKQorICAgIGlmIGxlbihsaW5lX3Rva2VucykgPCAyOiAjIHdoeSAyPyBldmVuIGJsYW5rIGxpbmVzIGdldCBlb2wKKyAgICAgICAgc2F2ZWRfaW5wdXQuYXBwZW5kKCAiIyBAICVzIiAlICBsaW5lKQorICAgICAgICBjb250aW51ZQorICAgICMKKyAgICAjIHJlbW92ZSAnWycgJ25vJyAnXScgaWYgaXRzIHRoZXJlLCBkb24ndCBmb3JnZXQgdGhlIGxlYWRpbmcgJ14nCisgICAgbm9fc3VwcG9ydGVkID0gRmFsc2UKKworICAgIGlmIGxlbihsaW5lX3Rva2VucykgPiAxOgorICAgICAgICBpZiB0b2tlbl9vZihsaW5lX3Rva2Vuc1swXSkgPT0gJyMnOgorICAgICAgICAgICAgc2F2ZWRfaW5wdXQuYXBwZW5kKCAiIyBAICVzIiAlICBsaW5lKQorICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgZWxpZiB0b2tlbl9vZihsaW5lX3Rva2Vuc1swXSkgPT0gJ1snOgorICAgICAgICAgICAgaWYgbGVuKGxpbmVfdG9rZW5zKSA+IDI6CisgICAgICAgICAgICAgICAgaWYgdG9rZW5fb2YobGluZV90b2tlbnNbMV0pID09ICdubyc6CisgICAgICAgICAgICAgICAgICAgIGlmIGxlbihsaW5lX3Rva2VucykgPiAzOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgdG9rZW5fb2YobGluZV90b2tlbnNbMl0pID09ICddJzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBsZW4obGluZV90b2tlbnMpID4gNDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9fc3VwcG9ydGVkID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lID0gbGluZV90b2tlbnNbM10KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VfdG9rZW5zID0gbGluZV90b2tlbnNbNDpdCisgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICdXYXJuaW5nOiBuYW1lIHJlcXVpcmVkIGFmdGVyIFxbIG5vIFwnXScKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ1dhcm5pbmc6IG9ubHkgXCdcWyBubyBcXVwnIGFsbG93ZWQgYXMgcHJlZml4JworICAgICAgICAgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBwcmludCAnV2FybmluZzogb25seSBcJ1xbIG5vIFxdXCcgYWxsb3dlZCBhcyBwcmVmaXgnCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHByaW50ICdXYXJuaW5nOiBvbmx5IHNpbmdsZSBcWyBpbiBsaW5lJworICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBuYW1lID0gbGluZV90b2tlbnNbMF0KKyAgICAgICAgICAgIHBhcnNlX3Rva2VucyA9IGxpbmVfdG9rZW5zWzE6XQorCisgICAgc2F2ZWRfaW5wdXQuYXBwZW5kKCAiIyBAICVzIiAlICBsaW5lKQorICAgIHNpbmdsZV9saW5lKFtmcm9udF90b2tlbl0gKyBwYXJzZV90b2tlbnMpCisKKyAgICAjIHNob3VsZCBsb29rIGxpa2UgXiB0cmVlICQKKyAgICBpZiBsZW4oc3RhY2spID09IDMgYW5kIG5vdCBpc19vcChzdGFja1sxXSk6CisgICAgICAgIGRlYnVnKCAiT0stLS0tLS0tLS0tLS0tLS0tLS0gIC0+ICIsIHRva2VuX29mKHN0YWNrWzFdKSApCisgICAgICAgIGFfcHJpbnRlciA9IHByaW50ZXIoJ3R1cGxlJywgaXNfb3B0aW9uYWwgPSBGYWxzZSkKKyAgICAgICAgZGVzYy5vdXQoJ1xuI1xuIyAlcyNcbicgJSBsaW5lLCBhX3ByaW50ZXIpCisgICAgICAgIG1ha2VyKG5hbWUsIG5vX3N1cHBvcnRlZCwgc3RhY2tbMV0sIGFfcHJpbnRlcikKKyAgICBlbHNlOgorICAgICAgICAjCisgICAgICAgICMgQ291bGQgcGVlayBhdCB0aGUgc3RhY2sgdG8gZ2V0IGFuIGlkZWEgb2YgdGhlIG5hdHVyZSBvZiB0aGUgc3ludGF4IGVycm9yCisgICAgICAgIHByaW50ICJTWU5UQVggRVJST1IiLCBuYW1lLCBzdGFjaworCisjCisjCisKK3ByaW50ICIjIgorcHJpbnQgIiMgQ29tbWFuZCB1c2VkIGFzIGlucHV0IGZvciB0aGlzIHJ1biBhcmUgbGlzdGVkIGJlbG93LCIKK3ByaW50ICIjIEZpc2ggdGhlIGNvbW1hbmQgb3V0IGJ5IGVncmVwaW5nICdeIyBAJyAiCitwcmludCAiIyIKKworcHJpbnQgJycuam9pbihzYXZlZF9pbnB1dCkKK3ByaW50IGRlc2MucmVzdWx0KCkKZGlmZiAtLWdpdCBhL2NsaS90b29scy9leHRyYWN0X21vZGVsLnB5IGIvY2xpL3Rvb2xzL2V4dHJhY3RfbW9kZWwucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uNjgzODM1MgotLS0gL2Rldi9udWxsCisrKyBiL2NsaS90b29scy9leHRyYWN0X21vZGVsLnB5CkBAIC0wLDAgKzEsMTA1IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworI2ltcG9ydCB0aW1lCisKK2ltcG9ydCBkYXRldGltZQoraW1wb3J0IGRqYW5nby5jb3JlLm1hbmFnZW1lbnQKKwordHJ5OgorICAgIGltcG9ydCBzZXR0aW5ncyAjIEFzc3VtZWQgdG8gYmUgaW4gdGhlIHNhbWUgZGlyZWN0b3J5LgorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIGltcG9ydCBzeXMKKyAgICBzeXMuc3RkZXJyLndyaXRlKCJFcnJvcjogQ2FuJ3QgZmluZCB0aGUgZmlsZSAnc2V0dGluZ3MucHknIGluIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyAlci4gSXQgYXBwZWFycyB5b3UndmUgY3VzdG9taXplZCB0aGluZ3MuXG5Zb3UnbGwgaGF2ZSB0byBydW4gZGphbmdvLWFkbWluLnB5LCBwYXNzaW5nIGl0IHlvdXIgc2V0dGluZ3MgbW9kdWxlLlxuKElmIHRoZSBmaWxlIHNldHRpbmdzLnB5IGRvZXMgaW5kZWVkIGV4aXN0LCBpdCdzIGNhdXNpbmcgYW4gSW1wb3J0RXJyb3Igc29tZWhvdy4pXG4iICUgX19maWxlX18pCisgICAgc3lzLmV4aXQoMSkKKworZGphbmdvLmNvcmUubWFuYWdlbWVudC5zZXR1cF9lbnZpcm9uKHNldHRpbmdzKQorCitmcm9tIGRqYW5nby5kYiBpbXBvcnQgbW9kZWxzCitmcm9tIGRqYW5nby5kYi5tb2RlbHMuZmllbGRzIGltcG9ydCBBdXRvRmllbGQsIEJvb2xlYW5GaWVsZCwgSW50ZWdlckZpZWxkCitmcm9tIGRqYW5nby5kYi5tb2RlbHMuZmllbGRzLnJlbGF0ZWQgaW1wb3J0IEZvcmVpZ25LZXkKKworaW1wb3J0IHNkbmNvbi5yZXN0LnZpZXdzCisKK3ByaW50ICIjIEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGZyb20gY29udHJvbGxlciBzb3VyY2UiCitwcmludCAiIyB2aWEgdG9vbHMvZXh0cmFjdF9tb2RlbC5weSBkYXRlOiAgJXMiICUgZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCkuY3RpbWUoKQorCisjIHdlIGl0ZXJhdGUgb3ZlciByZXN0X25hbWVfZGljdCwgbGltaXRpbmcgQ0xJIGFjY2VzcyB0byB0aG9zZSBtb2RlbHMKKyMgYW5kIG1vZGVsIGZpZWxkcyBhY2Nlc3NpYmxlIHZpYSByZXN0CisKK3Jlc3RfbWFwID0ge30KK2ZvciAobW9kZWwsIG1vZGVsX2luZm8pIGluIHNkbmNvbi5yZXN0LnZpZXdzLnJlc3RfbW9kZWxfaW5mb19kaWN0Lml0ZW1zKCk6CisgICAgcmVzdF9tYXBbbW9kZWxdID0ge30KKyAgICBmb3IgKHJlc3RfZmllbGRfbmFtZSwgcmVzdF9maWVsZF9pbmZvKSBpbiBtb2RlbF9pbmZvLnJlc3RfbmFtZV9kaWN0Lml0ZW1zKCk6CisgICAgICAgIGRqYW5nb19maWVsZF9uYW1lID0gcmVzdF9maWVsZF9pbmZvLm5hbWUKKyAgICAgICAgcmVzdF9tYXBbbW9kZWxdW2RqYW5nb19maWVsZF9uYW1lXSA9IHJlc3RfZmllbGRfbmFtZQorCittb2RlbF9pbmZvX2RpY3QgPSB7fQorZm9yIChtb2RlbCwgbW9kZWxfaW5mbykgaW4gc2RuY29uLnJlc3Qudmlld3MucmVzdF9tb2RlbF9pbmZvX2RpY3QuaXRlbXMoKToKKyAgICBkamFuZ29fbW9kZWxfY2xhc3MgPSBtb2RlbF9pbmZvLm1vZGVsX2NsYXNzIAorICAgIGZpZWxkX2luZm9fZGljdCA9IHt9CisgICAgZm9yIChyZXN0X2ZpZWxkX25hbWUsIHJlc3RfZmllbGRfaW5mbykgaW4gbW9kZWxfaW5mby5yZXN0X25hbWVfZGljdC5pdGVtcygpOgorICAgICAgICBkamFuZ29fZmllbGRfbmFtZSA9IHJlc3RfZmllbGRfaW5mby5uYW1lCisgICAgICAgIGRqYW5nb19maWVsZF9pbmZvID0gcmVzdF9maWVsZF9pbmZvLmRqYW5nb19maWVsZF9pbmZvCisgICAgICAgICMgbm93IHRoYXQgd2UgaGF2ZSB0aGUgZGphbmdvIGluZm8gYW5kIG91ciBvd24gcmVzdCBpbmZvLCBjcmVhdGUgYSBmaWVsZCBpbmZvIHRvIGR1bXAKKyAgICAgICAganNvbl9zZXJpYWxpemVfc3RyaW5nID0gdHlwZShkamFuZ29fZmllbGRfaW5mbykgbm90IGluIChBdXRvRmllbGQsIEJvb2xlYW5GaWVsZCwgSW50ZWdlckZpZWxkKQorICAgICAgICBmaWVsZF9pbmZvID0ge30KKyAgICAgICAgZmllbGRfaW5mb1snanNvbl9zZXJpYWxpemVfc3RyaW5nJ10gPSBqc29uX3NlcmlhbGl6ZV9zdHJpbmcKKyAgICAgICAgaWYgZGphbmdvX2ZpZWxkX2luZm8udmVyYm9zZV9uYW1lICE9IGRqYW5nb19maWVsZF9uYW1lOgorICAgICAgICAgICAgIyBDaGVjayBpZiB0aGlzIGlzIGEgcHJveHkgY2xhc3MKKyAgICAgICAgICAgIGlmIHR5cGUoZGphbmdvX2ZpZWxkX2luZm8udmVyYm9zZV9uYW1lKSBpcyBzdHI6CisgICAgICAgICAgICAgICAgZmllbGRfaW5mb1sndmVyYm9zZS1uYW1lJ10gPSBkamFuZ29fZmllbGRfaW5mby52ZXJib3NlX25hbWUKKyAgICAgICAgaWYgZGphbmdvX2ZpZWxkX2luZm8ucHJpbWFyeV9rZXkgPT0gVHJ1ZToKKyAgICAgICAgICAgIGZpZWxkX2luZm9bJ3ByaW1hcnlfa2V5J10gPSBUcnVlCisgICAgICAgIGlmIGRqYW5nb19maWVsZF9pbmZvLmhlbHBfdGV4dCAhPSAiIjoKKyAgICAgICAgICAgIGZpZWxkX2luZm9bJ2hlbHBfdGV4dCddID0gZGphbmdvX2ZpZWxkX2luZm8uaGVscF90ZXh0CisgICAgICAgIGZpZWxkX2luZm9bJ251bGwnXSA9IGRqYW5nb19maWVsZF9pbmZvLm51bGwKKyAgICAgICAgaWYgdHlwZShkamFuZ29fZmllbGRfaW5mby5kZWZhdWx0KSBpbiBbaW50LCBib29sLCBzdHJdOgorICAgICAgICAgICAgZmllbGRfaW5mb1snZGVmYXVsdCddID0gZGphbmdvX2ZpZWxkX2luZm8uZGVmYXVsdAorICAgICAgICBmaWVsZF9pbmZvWyd0eXBlJ10gPSBzdHIodHlwZShkamFuZ29fZmllbGRfaW5mbykpLnNwbGl0KCcuJylbLTFdLnJlcGxhY2UoIic+IiwgIiIpCisgICAgICAgIGlmIGZpZWxkX2luZm9bJ3R5cGUnXSA9PSAnQXV0b0ZpZWxkJzoKKyAgICAgICAgICAgICMgUmUtbGFiZWwgdGhlIGNhc3NhbmRyYSBjb21wb3VuZCBrZXkgZm9yIGVhc2llciBjb25zdW1wdGlvbgorICAgICAgICAgICAgaWYgaGFzYXR0cihkamFuZ29fbW9kZWxfY2xhc3MsICdDYXNzYW5kcmFTZXR0aW5ncycpOgorICAgICAgICAgICAgICAgIGNhc3NhbmRyYV9zZXR0aW5ncyA9IGRqYW5nb19tb2RlbF9jbGFzcy5DYXNzYW5kcmFTZXR0aW5ncworICAgICAgICAgICAgICAgIGlmIGhhc2F0dHIoY2Fzc2FuZHJhX3NldHRpbmdzLCAnQ09NUE9VTkRfS0VZX0ZJRUxEUycpOgorICAgICAgICAgICAgICAgICAgICBjb21wb3VuZF9rZXlfZmllbGRzID0gY2Fzc2FuZHJhX3NldHRpbmdzLkNPTVBPVU5EX0tFWV9GSUVMRFMKKyAgICAgICAgICAgICAgICAgICAgcmVzdF9rZXlfZmllbGRzID0gW3Jlc3RfbWFwW21vZGVsXS5nZXQoeCwgeCkgZm9yIHggaW4gY29tcG91bmRfa2V5X2ZpZWxkc10KKyAgICAgICAgICAgICAgICAgICAgZmllbGRfaW5mb1snY29tcG91bmRfa2V5X2ZpZWxkcyddID0gcmVzdF9rZXlfZmllbGRzCisgICAgICAgICAgICAgICAgICAgIGZpZWxkX2luZm9bJ3R5cGUnXSA9ICdjb21wb3VuZC1rZXknCisgICAgICAgICAgICAgICAgICAgIGZpZWxkX2luZm9bJ2hlbHBfdGV4dCddID0gJyN8JXMnICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd8Jy5qb2luKHJlc3Rfa2V5X2ZpZWxkcykKKyAgICAgICAgaWYgZmllbGRfaW5mb1sndHlwZSddID09ICdGb3JlaWduS2V5JzoKKyAgICAgICAgICAgIG90aGVyX29iamVjdCA9IGRqYW5nb19maWVsZF9pbmZvLnJlbC50by5SZXN0Lk5BTUUKKyAgICAgICAgICAgIGlmIGRqYW5nb19maWVsZF9pbmZvLnJlbC5maWVsZF9uYW1lIGluIHJlc3RfbWFwW290aGVyX29iamVjdF06CisgICAgICAgICAgICAgICAgZmllbGRfaW5mb1sncmVsX2ZpZWxkX25hbWUnXSA9IFwKKyAgICAgICAgICAgICAgICAgICAgcmVzdF9tYXBbb3RoZXJfb2JqZWN0XVtkamFuZ29fZmllbGRfaW5mby5yZWwuZmllbGRfbmFtZV0KKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgZmllbGRfaW5mb1sncmVsX2ZpZWxkX25hbWUnXSA9IGRqYW5nb19maWVsZF9pbmZvLnJlbC5maWVsZF9uYW1lCisgICAgICAgICAgICBmaWVsZF9pbmZvWydyZWxfb2JqX3R5cGUnXSA9IGRqYW5nb19maWVsZF9pbmZvLnJlbC50by5SZXN0Lk5BTUUKKyAgICAgICAgaWYgZmllbGRfaW5mb1sndHlwZSddID09ICdDaGFyRmllbGQnOgorICAgICAgICAgICAgZmllbGRfaW5mb1snbWF4X2xlbmd0aCddID0gZGphbmdvX2ZpZWxkX2luZm8ubWF4X2xlbmd0aAorICAgICAgICAjaWYgZGphbmdvX2ZpZWxkX2luZm8udmFsaWRhdG9yczoKKyAgICAgICAgICAgICNmaWVsZF9pbmZvWyd2YWxpZGF0b3JzJ10gPSBkamFuZ29fZmllbGRfaW5mby52YWxpZGF0b3JzCisgICAgICAgICNpZiBpc2luc3RhbmNlKHR5cGUsIGRqYW5nby5Qb3NpdGl2ZUludGVnZXJGaWVsZCk6CisgICAgICAgICAgICAjdHlwZV9uYW1lID0gJ1Bvc2l0aXZlSW50ZWdlckZpZWxkJworICAgICAgICAgICAgI3ByaW50IHR5cGVfbmFtZQorCisgICAgICAgIGZpZWxkX2luZm9fZGljdFtyZXN0X2ZpZWxkX25hbWVdID0gZmllbGRfaW5mbworICAgIG1vZGVsX2luZm9fZGljdFttb2RlbF09eydmaWVsZHMnOmZpZWxkX2luZm9fZGljdCwgJ2hhc19yZXN0X21vZGVsJzogVHJ1ZX0KKworaW1wb3J0IHBwcmludAorcHAgPSBwcHJpbnQuUHJldHR5UHJpbnRlcihpbmRlbnQ9MikKK3ByaW50ICJtb2RlbF9pbmZvX2RpY3QgPSAiLHBwLnBwcmludChtb2RlbF9pbmZvX2RpY3QpCmRpZmYgLS1naXQgYS9jbGkvdG9vbHMvcmVidWlsZF9tb2RlbC5zaCBiL2NsaS90b29scy9yZWJ1aWxkX21vZGVsLnNoCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjI0ZTc2ODMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvdG9vbHMvcmVidWlsZF9tb2RlbC5zaApAQCAtMCwwICsxLDI1IEBACisjIS9iaW4vc2gKKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorCitpZiBbICEgLWQgInRvb2xzLyIgXTsgdGhlbgorICAgICAgICBlY2hvICJZb3UgbXVzdCBleGVjdXRlIHRoaXMgc2NyaXB0IGZyb20gLi9jbGkiCisgICAgICAgIGV4aXQgLTEKK2ZpCitjZCAuLi9zZG5jb24KK3JtIC1mIGV4dHJhY3RfbW9kZWwucHkKK2NwIC4uL2NsaS90b29scy9leHRyYWN0X21vZGVsLnB5IGV4dHJhY3RfbW9kZWwucHkKK3B5dGhvbiBleHRyYWN0X21vZGVsLnB5ID4gLi4vY2xpL21vZGVsX2luZm9fbGlzdC5weQorY2QgLi4vY2xpCmRpZmYgLS1naXQgYS9jbGkvdG9vbHMvdmFsaWRhdGUucHkgYi9jbGkvdG9vbHMvdmFsaWRhdGUucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uZTcxMDEzMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS90b29scy92YWxpZGF0ZS5weQpAQCAtMCwwICsxLDY2NCBAQAorIyEvdXNyL2Jpbi9weXRob24KKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEwLDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2ltcG9ydCBzdWJwcm9jZXNzCitpbXBvcnQgb3MsIGF0ZXhpdAoraW1wb3J0IHN5cywgdHJhY2ViYWNrICAgICAgICAgICAgICAgICAgICMgdHJhY2ViYWNrLnByaW50X2V4YygpCitmcm9tIG9wdHBhcnNlIGltcG9ydCBPcHRpb25QYXJzZXIKK2Zyb20gdHlwZXMgaW1wb3J0IFN0cmluZ1R5cGUKK2ltcG9ydCBkYXRldGltZQoraW1wb3J0IGpzb24KK2ltcG9ydCB0cmFjZWJhY2sKK2ltcG9ydCByZQoraW1wb3J0IHRpbWUKK2ltcG9ydCB1cmxsaWIyCitpbXBvcnQgaHR0cGxpYiAgICAgICAgICAgICAgICAgICAgICAgICAgIyBwcm92aWRlcyBlcnJvciBwcm9jZXNzaW5nIGZvciBpc2luc3RhbmNlCitpbXBvcnQgc29ja2V0CisKK2Zyb20gcHJldHR5cHJpbnQgaW1wb3J0IFByZXR0eVByaW50ZXIKK2Zyb20gc3RvcmVjbGllbnQgaW1wb3J0IFN0b3JlQ2xpZW50Citmcm9tIGNsaW1vZGVsaW5mbyBpbXBvcnQgQ2xpTW9kZWxJbmZvCitmcm9tIHZlbmRvciBpbXBvcnQgVmVuZG9yREIKKworY2xhc3MgUGFyYW1FeGNlcHRpb24oRXhjZXB0aW9uKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdmFsdWUpOgorICAgICAgICBzZWxmLnZhbHVlID0gdmFsdWUKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAgICAgICAgcmV0dXJuIHJlcHIoc2VsZi52YWx1ZSkKKworVElNRVNUQU1QX0hFTFAgPSBcCisgICAgKCdFbnRlciBhbiBpbnRlZ2VyIHRpbWVzdGFtcCBpbiBtaWxsaXNlY29uZHMgc2luY2UgdGhlIGVwb2NoIG9yIGZvcm1hdHRlZFxuJyArCisgICAgICdhcyBvbmUgb2YgdGhlIGZvbGxvd2luZyBvcHRpb25zIGluIHlvdXIgbG9jYWwgdGltZXpvbmU6XG4nCisgICAgICciWVlZWS1NTS1ERCBISDpNTTpTUyIgICAgICBZWVlZLU1NLUREVEhIOk1NOlNTXG4nICsgCisgICAgICciWVlZWS1NTS1ERCBISDpNTTpTUytUVFQiICBZWVlZLU1NLUREVEhIOk1NOlNTK1RUVFxuJyArCisgICAgICdZWVlZLU1NLUREICAgICAgICAgICAgICAgICBNTS1ERFxuJyArIAorICAgICAnSEg6TU0gICAgICAgICAgICAgICAgICAgICAgbm93JykKKworCitjbGFzcyBWYWxpZGF0ZSgpOgorCisgICAgIyBpbml0aWFsaXplIGluIGluaXRfb2JqX3R5cGVfaW5mbworICAgIG9ial90eXBlX2luZm9fZGljdCA9IHt9ICAgICAgICAgIyBzZWUgaW5pdF9vYmpfdHlwZV9pbmZvX2RpY3QKKyAgICBvYmpfdHlwZXMgPSBbXSAKKyAgICBvYmpfa2V5cyA9IHt9CisgICAgCisgICAga25vd25fY29udHJvbGxlcnMgPSBbIjEyNy4wLjAuMTo4MDAwIl0KKyAgICBjb250cm9sbGVyID0gTm9uZQorICAgICMgTE9PSyEgbWFuYWdlIHRoaXMgc2VwYXJhdGVseSB1bnRpbCB3ZSBjYW4gZm9yIHN1cmUgdGFsayB0byBldGgwIGFkZHIgaW5zdGVhZCBvZiAxMjcuMC4wLjEKKyAgICBjb250cm9sbGVyX2Zvcl9wcm9tcHQgPSAiMTI3LjAuMC4xOjgwMDAiCisgICAgY2x1c3RlciA9ICJkZWZhdWx0IgorCisgICAgcnVuID0gVHJ1ZQorCisgICAgIyBDYWNoZWQgb3B0aW9ucyBmb3IgbGFzdCBjb21wbGV0aW9uCisgICAgbGFzdF9saW5lID0gTm9uZQorICAgIGxhc3Rfb3B0aW9ucyA9IE5vbmUKKyAgICAKKyAgICAjIEFyZSB3ZSBydW5uaW5nIGluIGJhdGNoIG1vZGUsIGkuZS4gImNhdCBjb21tYW5kcyB8IGNsaS5weSIKKyAgICBiYXRjaCA9IEZhbHNlCisKKyAgICAjIHVzZWQgZm9yIHBhcnNpbmcgYXMgYW4gYXJnCisgICAgbG9jYWxfbmFtZV9wYXR0ZXJuID0gImxvY2FsaG9zdDovLyhbQS1aYS16MC05XzpAXC1cLlwvXSskKSIKKworICAgICMgY29udGFpbmVkIG9iamVjdHMKKyAgICBwcCA9IE5vbmUKKyAgICBzdG9yZSA9IE5vbmUKKyAgICBtb2RlbF9oYW5kbGVyID0gTm9uZQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGluaXRfb2JqX3R5cGVfaW5mb19kaWN0CisgICAgIworICAgICMgIEJ1aWxkcyB0aGUgaW5pdF9vYmpfdHlwZV9pbmZvX2RpY3QsIHdoaWNoIGlzIGEgZGljdGlvbmFyeSBpbmRleGVkIGJ5CisgICAgIyAgdGhlIGN1cnJlbnQgbW9kZSwgd2hpY2ggYWxzbyByZXN1bHRzIGluIGEgZGljdGlvbmFyeSwgdGhlbiBpbmRleGVkCisgICAgIyAgYnkgYSBlaXRoZXIgYSAnZmllbGQnIG9yICdmaWVsZF9vcmRlcmluZycga2V5LgorICAgICMKKyAgICAjICBXaGVuIGluaXRfb2JqX3R5cGVfaW5mb19kaWN0IGlzIGluZGV4ZWQgYnkgdGhlIHRhYmxlL21vZGVsIG5hbWUsIHRoZQorICAgICMgIHZhbHVlIGlzIGEgZGljdGlvbmFyeS4gIFRoYXQgZGljdGlvbmFyeSBoYXMgc2V2ZXJhbCBrZXlzOgorICAgICMgIC0gJ2ZpZWxkcycKKyAgICAjICAtICdmaWVsZF9vcmRlcmluZ3MnCisgICAgIworICAgICMgIFRoZSAnZmllbGRzJyBpbmRleGVkIHJlc3VsdCByZXR1cm5zIGEgZGljdGlvbmFyeSwgZWFjaCBvZiB3aGljaAorICAgICMgIGlzIGluZGV4ZWQgYnkgdGhlIG5hbWVzIG9mIHRoZSBmaWVsZHMgd2l0aGluIHRoZSB0YWJsZS9tb2RlbC4gZnVydGhlcgorICAgICMgIGluZGljaWVzIGRlc2NyaWJlIGRldGFpbHMgYWJvdXQgdGhhdCBmaWVsZCB3aXRoaW4gdGhlIHRhYmxlOgorICAgICMgIC0gJ2Zvcm1hdHRlcicgZGVzc2NyaWJlcyB0aGUgcHJldHR5UHJpbnRlciBmdW5jdGlvbiBmb3IgdGhhdCBmaWVsZAorICAgICMgIC0gJ3ByaW1hcnlfa2V5JyBpZGVudGlmZXMgdGhpcyBmaWVsZCBhcyB0aGUga2V5IGZvciB0aGUgdGFibGUvbW9kZWwuCisgICAgIyAgLSAndmVyYm9zZV9uYW1lJyBpZGVudGZpZXMgYW4gYWRkaXRvbmFsIG5hbWUgZm9yIHRoZSBmaWVsZCwgaW50ZW5lZGVkCisgICAgIyAgICAgICAgICAgICAgICAgICB0byBiZSBtb3JlIGRlc2NyaXB0aXZlCisgICAgIyAgLSAnaGFzX3Jlc3RfbW9kZWwnICBUcnVlL0ZhbHNlCisgICAgIyAgLSAnanNvbl9zZXJpYWxpemVfc3RyaW5nJyAgVHJ1ZS9GYWxzZQorICAgICMgIC0gJ2hlbHBfdGV4dCcgIFN0cmluZyBwcm92aWRpbmcgbW9yZSBjbHVlcyBhYm91dCB0aGUgaW50ZW50IG9mIHRoaXMgZmllbGQKKyAgICAjCisgICAgIyAgVGhlICdmaWVsZF9vcmRlcmluZycgZGljdGlvbmFyeSBhc3NvY2lhdGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIHRhYmxlL21vZGVsCisgICAgIyAgaXMgdXNlZCB0byBvcmRlciB0aGUgb3V0cHV0LgorICAgICMKKyAgICAjICBBbHNvIHBvcHVsYXRlcyB0aGUgc2VsZi5vYmpfa2V5c1tdLCB3aGljaCBpcyBhIGRpY3Rpb25hcnkgbWFwcGluZyB0aGUgdGFibGUvbW9kZWwKKyAgICAjICBuYW1lIHRvIHRoZSBuYW1lIG9mIHRoZSBzdG9yYWdlIGtleSAodGFibGUvbW9kZWwncyBjb2x1bW4pIGZvciB0aGF0IHRhYmxlLgorICAgICMKKyAgICBkZWYgaW5pdF9vYmpfdHlwZV9pbmZvX2RpY3Qoc2VsZik6CisgICAgICAgIHNlbGYuY2xpX21vZGVsX2luZm8gPSBDbGlNb2RlbEluZm8oKQorICAgICAgICBzZWxmLm9ial90eXBlX2luZm9fZGljdCA9IHNlbGYuY2xpX21vZGVsX2luZm8uZ2V0X2NvbXBsZXRlX29ial90eXBlX2luZm9fZGljdCgpCisgICAgICAgIHNlbGYub2JqX3R5cGVzID0gW2sgZm9yIChrLHYpIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0Lml0ZW1zKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ2hhc19yZXN0X21vZGVsJyBpbiB2XQorICAgICAgICBmb3IgKGssZCkgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3QuaXRlbXMoKToKKyAgICAgICAgICAgIGNhbmRpZGF0ZV9rZXlzID0gW2YgZm9yIGYgaW4gZFsnZmllbGRzJ10ua2V5cygpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZFsnZmllbGRzJ11bZl0uZ2V0KCdwcmltYXJ5X2tleScsIEZhbHNlKV0KKyAgICAgICAgICAgIGlmIGxlbihjYW5kaWRhdGVfa2V5cykgPiAwOgorICAgICAgICAgICAgICAgIHNlbGYub2JqX2tleXNba10gPSBjYW5kaWRhdGVfa2V5c1swXQorCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgbWFrZV91bml0X2Zvcm1hdHRlcgorICAgICMKKyAgICBkZWYgbWFrZV91bml0X2Zvcm1hdHRlcihzZWxmLCB1bml0cyk6CisgICAgICAgIHJldHVybiBsYW1iZGEgeCx5OiAnJXMgJXMnICUgKHgsIHVuaXRzKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGluaXRfb2JqX3R5cGVfaW5mb19kaWN0CisgICAgIworICAgICMgIEJ1aWxkcyB0aGUgaW5pdF9vYmpfdHlwZV9pbmZvX2RpY3QsIHdoaWNoIGlzIGEgZGljdGlvbmFyeSBpbmRleGVkIGJ5CisgICAgIyAgdGhlIGN1cnJlbnQgbW9kZSwgd2hpY2ggYWxzbyByZXN1bHRzIGluIGEgZGljdGlvbmFyeSwgdGhlbiBpbmRleGVkCisgICAgIyAgYnkgYSBlaXRoZXIgYSAnZmllbGQnIG9yICdmaWVsZF9vcmRlcmluZycga2V5LgorICAgICMKKyAgICAjICBXaGVuIGluaXRfb2JqX3R5cGVfaW5mb19kaWN0IGlzIGluZGV4ZWQgYnkgdGhlIHRhYmxlL21vZGVsIG5hbWUsIHRoZQorICAgICMgIHZhbHVlIGlzIGEgZGljdGlvbmFyeS4gIFRoYXQgZGljdGlvbmFyeSBoYXMgc2V2ZXJhbCBrZXlzOgorICAgICMgIC0gJ2ZpZWxkcycKKyAgICAjICAtICdmaWVsZF9vcmRlcmluZ3MnCisgICAgIworICAgICMgIFRoZSAnZmllbGRzJyBpbmRleGVkIHJlc3VsdCByZXR1cm5zIGEgZGljdGlvbmFyeSwgZWFjaCBvZiB3aGljaAorICAgICMgIGlzIGluZGV4ZWQgYnkgdGhlIG5hbWVzIG9mIHRoZSBmaWVsZHMgd2l0aGluIHRoZSB0YWJsZS9tb2RlbC4gZnVydGhlcgorICAgICMgIGluZGljaWVzIGRlc2NyaWJlIGRldGFpbHMgYWJvdXQgdGhhdCBmaWVsZCB3aXRoaW4gdGhlIHRhYmxlOgorICAgICMgIC0gJ2Zvcm1hdHRlcicgZGVzc2NyaWJlcyB0aGUgcHJldHR5UHJpbnRlciBmdW5jdGlvbiBmb3IgdGhhdCBmaWVsZAorICAgICMgIC0gJ3ByaW1hcnlfa2V5JyBpZGVudGlmZXMgdGhpcyBmaWVsZCBhcyB0aGUga2V5IGZvciB0aGUgdGFibGUvbW9kZWwuCisgICAgIyAgLSAndmVyYm9zZV9uYW1lJyBpZGVudGZpZXMgYW4gYWRkaXRvbmFsIG5hbWUgZm9yIHRoZSBmaWVsZCwgaW50ZW5lZGVkCisgICAgIyAgICAgICAgICAgICAgICAgICB0byBiZSBtb3JlIGRlc2NyaXB0aXZlCisgICAgIyAgLSAnaGFzX3Jlc3RfbW9kZWwnICBUcnVlL0ZhbHNlCisgICAgIyAgLSAnanNvbl9zZXJpYWxpemVfc3RyaW5nJyAgVHJ1ZS9GYWxzZQorICAgICMgIC0gJ2hlbHBfdGV4dCcgIFN0cmluZyBwcm92aWRpbmcgbW9yZSBjbHVlcyBhYm91dCB0aGUgaW50ZW50IG9mIHRoaXMgZmllbGQKKyAgICAjCisgICAgIyAgVGhlICdmaWVsZF9vcmRlcmluZycgZGljdGlvbmFyeSBhc3NvY2lhdGVkIHdpdGggdGhlIG5hbWUgb2YgdGhlIHRhYmxlL21vZGVsCisgICAgIyAgaXMgdXNlZCB0byBvcmRlciB0aGUgb3V0cHV0LgorICAgICMKKyAgICAjICBBbHNvIHBvcHVsYXRlcyB0aGUgc2VsZi5vYmpfa2V5c1tdLCB3aGljaCBpcyBhIGRpY3Rpb25hcnkgbWFwcGluZyB0aGUgdGFibGUvbW9kZWwKKyAgICAjICBuYW1lIHRvIHRoZSBuYW1lIG9mIHRoZSBzdG9yYWdlIGtleSAodGFibGUvbW9kZWwncyBjb2x1bW4pIGZvciB0aGF0IHRhYmxlLgorICAgICMKKyAgICBkZWYgaW5pdF9vYmpfdHlwZV9pbmZvX2RpY3Qoc2VsZik6CisgICAgICAgIHNlbGYuY2xpX21vZGVsX2luZm8gPSBDbGlNb2RlbEluZm8oKQorICAgICAgICBzZWxmLm9ial90eXBlX2luZm9fZGljdCA9IHNlbGYuY2xpX21vZGVsX2luZm8uZ2V0X2NvbXBsZXRlX29ial90eXBlX2luZm9fZGljdCgpCisgICAgICAgIHNlbGYub2JqX3R5cGVzID0gW2sgZm9yIChrLHYpIGluIHNlbGYub2JqX3R5cGVfaW5mb19kaWN0Lml0ZW1zKCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ2hhc19yZXN0X21vZGVsJyBpbiB2XQorICAgICAgICBmb3IgKGssZCkgaW4gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3QuaXRlbXMoKToKKyAgICAgICAgICAgIGNhbmRpZGF0ZV9rZXlzID0gW2YgZm9yIGYgaW4gZFsnZmllbGRzJ10ua2V5cygpIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgZFsnZmllbGRzJ11bZl0uZ2V0KCdwcmltYXJ5X2tleScsIEZhbHNlKV0KKyAgICAgICAgICAgIGlmIGxlbihjYW5kaWRhdGVfa2V5cykgPiAwOgorICAgICAgICAgICAgICAgIHNlbGYub2JqX2tleXNba10gPSBjYW5kaWRhdGVfa2V5c1swXQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIGluaXQKKyAgICAjCisgICAgZGVmIGluaXQoc2VsZik6CisgICAgICAgIAorICAgICAgICBzZWxmLnZlbmRvcmRiID0gVmVuZG9yREIoKQorICAgICAgICBzZWxmLnZlbmRvcmRiLmluaXQoKQorICAgICAgICAKKyAgICAgICAgcGFyc2VyID0gT3B0aW9uUGFyc2VyKCkKKyAgICAgICAgcGFyc2VyLmFkZF9vcHRpb24oIi1jIiwgIi0tY29udHJvbGxlciIsIGRlc3Q9ImNvbnRyb2xsZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJzZXQgZGVmYXVsdCBjb250cm9sbGVyIHRvIENPTlRST0xMRVIiLCAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0YXZhcj0iQ09OVFJPTExFUiIsIGRlZmF1bHQ9c2VsZi5jb250cm9sbGVyKQorICAgICAgICAob3B0aW9ucywgYXJncykgPSBwYXJzZXIucGFyc2VfYXJncygpCisgICAgICAgIHNlbGYuY29udHJvbGxlciA9IG9wdGlvbnMuY29udHJvbGxlcgorICAgICAgICBpZiBub3Qgc2VsZi5jb250cm9sbGVyOgorICAgICAgICAgICAgc2VsZi5jb250cm9sbGVyID0gIjEyNy4wLjAuMTo4MDAwIgorCisgICAgICAgIGlmIG5vdCBzeXMuc3RkaW4uaXNhdHR5KCk6CisgICAgICAgICAgICBzZWxmLmJhdGNoID0gVHJ1ZQorCisgICAgICAgIHNlbGYuaW5pdF9vYmpfdHlwZV9pbmZvX2RpY3QoKQorCisgICAgICAgIHNlbGYucHAgPSBQcmV0dHlQcmludGVyKHNlbGYub2JqX3R5cGVfaW5mb19kaWN0KQorICAgICAgICBzZWxmLnN0b3JlID0gU3RvcmVDbGllbnQoKQorICAgICAgICBzZWxmLnN0b3JlLnNldF9jb250cm9sbGVyKHNlbGYuY29udHJvbGxlcikKKworCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHBhcnNlX29wdGlvbmFsX3BhcmFtZXRlcnMKKyAgICAjCisgICAgZGVmIHBhcnNlX29wdGlvbmFsX3BhcmFtZXRlcnMoc2VsZiwgcGFyYW1zLCB3b3Jkcyk6CisgICAgICAgIHBhcnNlZCA9IHt9CisgICAgICAgIGkgPSAwCisgICAgICAgIHdoaWxlIGkgPCBsZW4od29yZHMpOgorICAgICAgICAgICAgd29yZCA9IHdvcmRzW2ldCisgICAgICAgICAgICBwb3NzaWJsZSA9IFt4IGZvciB4IGluIHBhcmFtcyBpZiB4LnN0YXJ0c3dpdGgod29yZCldCisgICAgICAgICAgICBpZiBsZW4ocG9zc2libGUpID09IDA6CisgICAgICAgICAgICAgICAgcmFpc2UgUGFyYW1FeGNlcHRpb24oJ3Vua25vd24gb3B0aW9uOiAlcycgJSB3b3JkKQorICAgICAgICAgICAgZWxpZiBsZW4ocG9zc2libGUpID4gMToKKyAgICAgICAgICAgICAgICByYWlzZSBQYXJhbUV4Y2VwdGlvbignYW1iaWd1b3VzIG9wdGlvbjogJXNcbiVzJyAlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICh3b3JkLCAiXG4iLmpvaW4ocG9zc2libGUpKSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgcGFyYW1fbmFtZSA9IHBvc3NpYmxlWzBdCisgICAgICAgICAgICAgICAgcGFyYW0gPSBwYXJhbXNbcGFyYW1fbmFtZV0KKyAgICAgICAgICAgICAgICBpZiAocGFyYW1bJ3R5cGUnXSA9PSAnZmxhZycpOgorICAgICAgICAgICAgICAgICAgICBwYXJzZWRbcGFyYW1fbmFtZV0gPSBUcnVlCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgaWYgaSsxIDwgbGVuKHdvcmRzKToKKyAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50ID0gd29yZHNbaSsxXQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHBhcmFtWyd0eXBlJ10gPT0gJ3N0cmluZycpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFtwYXJhbV9uYW1lXSA9IGFyZ3VtZW50CisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIChwYXJhbVsndHlwZSddID09ICdpbnQnKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlZFtwYXJhbV9uYW1lXSA9IGludChhcmd1bWVudCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgUGFyYW1FeGNlcHRpb24oJ29wdGlvbiAlcyByZXF1aXJlcyAnICsgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnRlZ2VyIGFyZ3VtZW50JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAlIHdvcmQpCisgICAgICAgICAgICAgICAgICAgICAgICBlbGlmIChwYXJhbVsndHlwZSddID09ICdlbnVtJyk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnX3Bvc3NpYmxlID0gW3ggCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciB4IGluIHBhcmFtWyd2YWx1ZXMnXSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgeC5zdGFydHN3aXRoKGFyZ3VtZW50KV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGVuKGFyZ19wb3NzaWJsZSkgPT0gMCk6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJhaXNlIFBhcmFtRXhjZXB0aW9uKCdvcHRpb24gJXMgdmFsdWUgbXVzdCBiZSBpbiAoJXMpJyAlIAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAod29yZCwiLCAiLmpvaW4ocGFyYW1bJ3ZhbHVlcyddKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxpZiAobGVuKGFyZ19wb3NzaWJsZSkgPiAxKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgUGFyYW1FeGNlcHRpb24oJ2FtYmlndW91cyBvcHRpb24gJXMgdmFsdWU6XG4lcycgJSAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHdvcmQsICJcbiIuam9pbihhcmdfcG9zc2libGUpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWRbcGFyYW1fbmFtZV0gPSBhcmdfcG9zc2libGVbMF0KKyAgICAgICAgICAgICAgICAgICAgICAgIGkgKz0gMQorICAgICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcmFpc2UgUGFyYW1FeGNlcHRpb24oJ29wdGlvbiAlcyByZXF1aXJlcyBhbiBhcmd1bWVudCcgCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJSB3b3JkKQorICAgICAgICAgICAgaSArPSAxCisgICAgICAgIHJldHVybiBwYXJzZWQKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyByZXN0X2Vycm9yX3RvX2RpY3QKKyAgICAjICAgVHVybiBhbiBleGNlcHRpb24gaW50byBhbiBlcnJvciBkaWN0aW9uYXJ5LCB3aGljaCBjYW4gbGF0ZXIgYmUgcHJpbnRlZC4KKyAgICAjICAgdXNpbmcgcmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoKS4gIAorICAgICMKKyAgICBkZWYgcmVzdF9lcnJvcl90b19kaWN0KHNlbGYsIGUsIGRldGFpbD1Ob25lKToKKyAgICAgICAgZXJyb3JzID0gTm9uZQorICAgICAgICAjIHRyeSB0byBpZGVudGlmaWZ5IHZhbGlkYXRpb24gcmVxdWVzdHMKKyAgICAgICAgaWYgaXNpbnN0YW5jZShlLCBodHRwbGliLkJhZFN0YXR1c0xpbmUpOgorICAgICAgICAgICAgZXJyb3JzID0geydjb25uZWN0aW9uX2Vycm9yJyA6ICdSRVNUIEFQSSBzZXJ2ZXIgJXM6ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2VydmVyIG5vdCBydW5uaW5nJyAlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb250cm9sbGVyfQorICAgICAgICAgICAgcmV0dXJuIGVycm9ycworCisgICAgICAgIGVsaWYgaXNpbnN0YW5jZShlLCB1cmxsaWIyLkhUVFBFcnJvcik6CisgICAgICAgICAgICBjb2RlID0gZS5jb2RlCisgICAgICAgICAgICBlcnJvcl9yZXR1cm5lZCA9IGUucmVhZGxpbmUoKQorCisgICAgICAgICAgICBpZiBjb2RlID09IDQwNDoKKyAgICAgICAgICAgICAgICBpZiBkZXRhaWw6CisgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IHsnbm90X2ZvdW5kX2Vycm9yJyA6ICdOb3QgRm91bmQ6ICVzJyAlIGRldGFpbH0KKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBlcnJvcnMgPSB7J25vdF9mb3VuZF9lcnJvcicgOiAnTm90IEZvdW5kOiAlcycgJSBlcnJvcl9yZXR1cm5lZH0KKyAgICAgICAgICAgIGVsaWYgY29kZSA9PSA1MDAgb3IgY29kZSA9PSA0MDM6CisgICAgICAgICAgICAgICAgZXJyb3JzID0geydjb25uZWN0aW9uX2Vycm9yJyA6ICdSRVNUIEFQSSBzZXJ2ZXIgJXMgdW5hYmxlIHRvIGNvbm5lY3Q6ICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ0Nhc3NhbmRyYSBwb3NzaWJseSBub3QgcnVubmluZycgJQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5jb250cm9sbGVyfQorICAgICAgICAgICAgZWxpZiBjb2RlID09IDQwMDoKKyAgICAgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IGpzb24ubG9hZHMoZXJyb3JfcmV0dXJuZWQpCisgICAgICAgICAgICAgICAgZXhjZXB0OgorICAgICAgICAgICAgICAgICAgICAjIGlmIHRoZSBlcnJvciBjYW4ndCBiZSBjb252ZXJ0ZWQgaW50byBhIGRpY3Rpb25hcnksIHRoZW4gaW1iZWQgdGhlIGNvbXBsZXRlCisgICAgICAgICAgICAgICAgICAgICMgZXJyb3JzIGFzIHRoZSB2YWx1ZSBmb3IgYSBzcGVjaWZpYyBlcnJvciBrZXkuCisgICAgICAgICAgICAgICAgICAgIGVycm9ycyA9IHsnZXJyb3JfcmVzdWx0X2Vycm9yJzogIkNhbid0IGNvbnZlcnQgcmV0dXJuZWQgZXJyb3I6ICVzIiAlIGVycm9yX3JldHVybmVkfQorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIGVycm9ycyA9IHsndW5rbm93bl9lcnJvcic6ICdIdHRwRXJyb3IgJXMnICUgZXJyb3JfcmV0dXJuZWR9CisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlcnJvcnMgPSB7J3Vua25vd25fZXJyb3InOiAiTmVlZCBlcnJvciBtYW5hZ21lbmV0IGZvciBlcnJvciAlcyIgJSB0eXBlKGUpfQorCisgICAgICAgIHJldHVybiBlcnJvcnMKKworICAgICMKKyAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgIyByZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZQorICAgICMgICBUdXJuIGFuIHJlc3RfZXJyb3JfZGljdCByZXR1cm5lZCBmcm9tIHJlc3RfZXJyb3JfdG9fZGljdAorICAgICMgICBpbnRvIGFuIGVycm9yIG1lc3NhZ2Ugd2hpY2ggY2FuIGdlIHByaW50ZWQuICBDb2RlIGFzc3VtZXMgbXVsdGlwbGUgZXJyb3JzCisgICAgIyAgIHdvbid0IG9jY3VyOyBpZiBhICdmaWVsZF9lcnJvcicgZXhpc3RzLCBmb3IgZXhhbXBsZSwgYSAnbW9kZWxfZXJyb3InIHdvbid0CisgICAgIyAgIGFsc28gYmUgcG9zdGVkIGluIHRoZSBlcnJvcgorICAgICMKKyAgICBkZWYgcmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2Uoc2VsZiwgcmVzdF9lcnJvcl9kaWN0KToKKyAgICAgICAgZXJyb3JfbXNnID0gIiIKKyAgICAgICAgaWYgJ2ZpZWxkX2Vycm9ycycgaW4gcmVzdF9lcnJvcl9kaWN0OgorICAgICAgICAgICAgZm9yIChrLHYpIGluIHJlc3RfZXJyb3JfZGljdFsnZmllbGRfZXJyb3JzJ10uaXRlbXMoKToKKyAgICAgICAgICAgICAgICBlcnJvcl9tc2cgKz0gIlN5bnRheCBlcnJvcjogZmllbGQgJXM6ICVzIiAlIChrLHYpCisgICAgICAgICAgICAjIHRyYWNlYmFjay5wcmludF9zdGFjaygpLCB0byBmaW5kIG91dCB3aHkgdGhlIGVycm9yIG9jY3VyZWQKKyAgICAgICAgZWxpZiAnbW9kZWxfZXJyb3InIGluIHJlc3RfZXJyb3JfZGljdDoKKyAgICAgICAgICAgIGVycm9yX21zZyArPSAiRXJyb3I6ICVzIiAlIHJlc3RfZXJyb3JfZGljdFsnbW9kZWxfZXJyb3InXQorICAgICAgICBlbGlmICdub3RfZm91bmRfZXJyb3InIGluIHJlc3RfZXJyb3JfZGljdDoKKyAgICAgICAgICAgIGVycm9yX21zZyArPSAiRXJyb3I6ICVzIiAlIHJlc3RfZXJyb3JfZGljdFsnbm90X2ZvdW5kX2Vycm9yJ10KKyAgICAgICAgZWxpZiAnY29ubmVjdGlvbl9lcnJvcicgaW4gcmVzdF9lcnJvcl9kaWN0OgorICAgICAgICAgICAgZXJyb3JfbXNnICs9IHJlc3RfZXJyb3JfZGljdFsnY29ubmVjdGlvbl9lcnJvciddCisgICAgICAgIGVsaWYgJ2Vycm9yX3Jlc3VsdF9lcnJvcicgaW4gcmVzdF9lcnJvcl9kaWN0OgorICAgICAgICAgICAgZXJyb3JfbXNnICs9IHJlc3RfZXJyb3JfZGljdFsnZXJyb3JfcmVzdWx0X2Vycm9yJ10KKyAgICAgICAgZWxpZiAndW5rbm93bl9lcnJvcicgaW4gcmVzdF9lcnJvcl9kaWN0OgorICAgICAgICAgICAgZXJyb3JfbXNnICs9IHJlc3RfZXJyb3JfZGljdFsndW5rbm93bl9lcnJvciddCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBlcnJvcl9tc2cgPSAiUkVTVCBBUEkgc2VydmVyIG9uIGNvbnRyb2xsZXItbm9kZSAlcyAiICUgc2VsZi5jb250cm9sbGVyCisgICAgICAgICAgICBlcnJvcl9tc2cgKz0gImhhZCAlcyBlcnJvcjpcbiIgJSByZXN0X2Vycm9yX2RpY3RbJ2Vycm9yX3R5cGUnXQorICAgICAgICAgICAgZXJyb3JfbXNnICs9IHJlc3RfZXJyb3JfZGljdFsnZGVzY3JpcHRpb24nXQorICAgICAgICByZXR1cm4gZXJyb3JfbXNnCisgICAgCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIG1ldGhvZF9mcm9tX25hbWUKKyAgICAjCisgICAgZGVmIG1ldGhvZF9mcm9tX25hbWUoc2VsZiwgbmFtZSk6CisgICAgICAgcmV0dXJuIGdldGF0dHIoc2VsZiwgInZhbGlkYXRlXyIgKyBuYW1lLnJlcGxhY2UoIi0iLCJfIiksIE5vbmUpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgdmFsaWRhdGVfcG9ydAorICAgICMKKyAgICAjIC0gdmFsaWRhdGUgcG9ydCBmb3JlaWduIGtleSAodG8gc3dpdGNoKQorICAgICMKKyAgICBkZWYgdmFsaWRhdGVfcG9ydChzZWxmKToKKyAgICAgICAgZXJyb3IgPSBOb25lCisgICAgICAgIHByaW50ICJ2YWxpZGF0ZV9wb3J0IgorCisgICAgICAgICMgY29sbGVjdCBrbm93biBzd2l0Y2hlcworICAgICAgICBzd2l0Y2hfaWRzID0gTm9uZQorICAgICAgICBzd2l0Y2hfa2V5ID0gc2VsZi5vYmpfa2V5c1sic3dpdGNoIl0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3dpdGNoX3RhYmxlID0gc2VsZi5zdG9yZS5nZXRfdGFibGVfZnJvbV9zdG9yZSgic3dpdGNoIikKKyAgICAgICAgICAgIHN3aXRjaF9pZHMgPSBbeFtzd2l0Y2hfa2V5XSBmb3IgeCBpbiBzd2l0Y2hfdGFibGVdCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBlcnJvciA9IHNlbGYucmVzdF9lcnJvcl90b19kaWN0KGUpCisgICAgICAgICAgICBwcmludCBzZWxmLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9yKQorICAgICAgICAgICAgcGFzcworICAgICAgICAKKyAgICAgICAgaWYgZXJyb3I6CisgICAgICAgICAgICBwcmludCAiVW5hYmxlIHRvIGNvbGxlY3Qgc3dpdGNoLCBubyBzd2l0Y2ggZHBpZCB2YWxpZGF0aW9uIGZvciBwb3J0IHRhYmxlIgorICAgICAgICAgICAgZXJyb3IgPSBOb25lCisKKyAgICAgICAgIyBjb2xsZWN0IGtub3duIHBvcnRzCisgICAgICAgIHBvcnRfdGFibGUgPSBOb25lCisgICAgICAgIHBvcnRfa2V5ID0gc2VsZi5vYmpfa2V5c1sicG9ydCJdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHBvcnRfdGFibGUgPSBzZWxmLnN0b3JlLmdldF90YWJsZV9mcm9tX3N0b3JlKCJwb3J0IikKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGVycm9yID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSkKKyAgICAgICAgICAgIHByaW50IHNlbGYucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3IpCisgICAgICAgICAgICBwYXNzCisgICAgICAgIAorICAgICAgICBpZiBlcnJvcjoKKyAgICAgICAgICAgIHByaW50ICJVbmFibGUgdG8gY29sbGVjdCBwb3J0cyIKKyAgICAgICAgICAgIHJldHVybgorICAgIAorICAgICAgICBmb3IgcG9ydCBpbiBwb3J0X3RhYmxlOgorICAgICAgICAgICAgaWYgbm90IHBvcnRfa2V5IGluIHBvcnQ6CisgICAgICAgICAgICAgICAgcHJpbnQgIk5vIHBvcnQgaWQgaW4gcm93IgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBwb3J0X2lkID0gcG9ydFtwb3J0X2tleV0KKyAgICAgICAgICAgICAgICBpZiBub3QgJ3N3aXRjaCcgaW4gcG9ydDoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ3BvcnQgJXMgTm8gc3dpdGNoIGluIHBvcnQgKGZvcmVpZ24ga2V5KScgJSBwb3J0X2lkCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgdmFsaWRhdGVfc3dpdGNoCisgICAgIworICAgICMgLSB2YWxpZGF0ZSBzd2l0Y2ggZm9yZWlnbiBrZXkgKHRvIGNvbnRyb2xsZXIpCisgICAgIworICAgIGRlZiB2YWxpZGF0ZV9zd2l0Y2goc2VsZik6CisgICAgICAgIHByaW50ICJ2YWxpZGF0ZV9zd2l0Y2giCisgICAgICAgIGVycm9yID0gTm9uZQorCisgICAgICAgICMgY29sbGVjdCBrbm93biBjb250cm9sbGVycworICAgICAgICBjb250cm9sbGVyX2lkcyA9IE5vbmUKKyAgICAgICAgY29udHJvbGxlcl9rZXkgPSBzZWxmLm9ial9rZXlzWyJjb250cm9sbGVyLW5vZGUiXQorICAgICAgICB0cnk6CisgICAgICAgICAgICBjb250cm9sbGVyX3RhYmxlID0gc2VsZi5zdG9yZS5nZXRfdGFibGVfZnJvbV9zdG9yZSgiY29udHJvbGxlci1ub2RlIikKKyAgICAgICAgICAgIGNvbnRyb2xsZXJfaWRzID0gW3hbY29udG9sbGVyX2tleV0gZm9yIHggaW4gY29udHJvbGxlcl90YWJsZSBpZiBjb250cm9sbGVyX2tleSBpbiBjb250cm9sbGVyX3RhYmxlXQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXJyb3IgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlKQorICAgICAgICAgICAgcHJpbnQgc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcikKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgCisgICAgICAgIGlmIGVycm9yOgorICAgICAgICAgICAgcHJpbnQgIlVuYWJsZSB0byBjb2xsZWN0IGNvbnRyb2xsZXIsIG5vIGNvbnRyb2xsZXIgdmFsaWRhdGlvbiBmb3Igc3dpdGNoZXMiCisgICAgICAgICAgICBlcnJvciA9IE5vbmUKKyAgICAgICAgaWYgbGVuKGNvbnRyb2xsZXJfaWRzKSA9PSAwOgorICAgICAgICAgICAgcHJpbnQgIlVuYWJsZSB0byBjb2xsZWN0IGFueSBjb250cm9sbGVyIGlkcyIKKworICAgICAgICAjIGNvbGxlY3Qga25vd24gcG9ydHMKKyAgICAgICAgc3dpdGNoX3RhYmxlID0gTm9uZQorICAgICAgICBzd2l0Y2hfa2V5ID0gc2VsZi5vYmpfa2V5c1sic3dpdGNoIl0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgc3dpdGNoX3RhYmxlID0gc2VsZi5zdG9yZS5nZXRfdGFibGVfZnJvbV9zdG9yZSgic3dpdGNoIikKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGVycm9yID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSkKKyAgICAgICAgICAgIHByaW50IHNlbGYucmVzdF9lcnJvcl9kaWN0X3RvX21lc3NhZ2UoZXJyb3IpCisgICAgICAgICAgICBwYXNzCisgICAgICAgIAorICAgICAgICBpZiBlcnJvcjoKKyAgICAgICAgICAgIHByaW50ICJVbmFibGUgdG8gY29sbGVjdCBzd2l0Y2hlcyIKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGlmIGxlbihzd2l0Y2hfdGFibGUpID09IDA6CisgICAgICAgICAgICBwcmludCAic3dpdGNoIHRhYmxlIGVtcHR5IgorICAgIAorICAgICAgICBmb3Igc3dpdGNoIGluIHN3aXRjaF90YWJsZToKKyAgICAgICAgICAgIGlmIG5vdCBzd2l0Y2hfa2V5IGluIHN3aXRjaDoKKyAgICAgICAgICAgICAgICBwcmludCAiTm8gc3dpdGNoIGlkIGluIHJvdyIKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc3dpdGNoX2lkID0gc3dpdGNoW3N3aXRjaF9rZXldCisgICAgICAgICAgICAgICAgaWYgbm90ICdzd2l0Y2gnIGluIHN3aXRjaDoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgJ3N3aXRjaCAlcyBObyBjb250cm9sbGVyIGZvcmVpZ24ga2V5JyAlIHN3aXRjaF9pZAorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIgPSBzd2l0Y2hbJ2NvbnRyb2xsZXInXQorICAgICAgICAgICAgICAgICAgICBpZiBub3QgY29udHJvbGxlciBpbiBjb250cm9sbGVyX2lkczoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ICJzd2l0Y2ggJXMgbWlzc2luZyBjb250cm9sbGVyIChmb3JlaWduIGtleSkgJXMgIiAlIChzd2l0Y2hfaWQsIGNvbnRyb2xsZXIpCisKKyAgICAjCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgdmFsaWRhdGVfaG9zdF92bnNfaW50ZXJmYWNlCisgICAgIworICAgICMgLSB2YWxpZGF0ZSBob3N0LXZucy1pbnRlcmZhY2UgZm9yZWlnYiBrZXkgKHRvIHZucy1pbnRlcmZhY2UpCisgICAgIyAtIHZhbGlkYXRlIGhvc3Qtdm5zLWludGVyZmFjZSBmb3JlaWdiIGtleSAodG8gaG9zdCkKKyAgICAjIC0gY3JhY2sgdGhlIGlkIGludG8gdGhyZWUgZnJhZ21lbnRzLCBhbmQgdmFsaWRhdGUgZWFjaCBvZiB0aGUKKyAgICAjICAgZnJhZ21lbnRzIHJlZmVyZW5jZXMgdGhlIGV4cGVjdGVkIGNvbXBvbm9udCAoaWU6IG1hdGNoZXMgdGhlIGZvcmVpZ24ga2V5KQorICAgICMKKyAgICBkZWYgdmFsaWRhdGVfaG9zdF92bnNfaW50ZXJmYWNlKHNlbGYpOgorICAgICAgICBwcmludCAiaG9zdF92bnNfaW50ZXJmYWNlIgorCisgICAgICAgIGVycm9yID0gTm9uZQorICAgICAgICAjIGNvbGxlY3QgaG9zdCdzCisgICAgICAgIGhvc3RfaWRzID0gTm9uZQorICAgICAgICBob3N0X2tleSA9IHNlbGYub2JqX2tleXNbImhvc3QiXQorICAgICAgICB0cnk6CisgICAgICAgICAgICBob3N0X3RhYmxlID0gc2VsZi5zdG9yZS5nZXRfdGFibGVfZnJvbV9zdG9yZSgiaG9zdCIpCisgICAgICAgICAgICBob3N0X2lkcyA9IFt4W2hvc3Rfa2V5XSBmb3IgeCBpbiBob3N0X3RhYmxlXQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXJyb3IgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlKQorICAgICAgICAgICAgcHJpbnQgc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcikKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBpZiBlcnJvcjoKKyAgICAgICAgICAgIHByaW50ICJVbmFibGUgdG8gY29sbGVjdCBob3N0cywgbm8gaG9zdC12bnMtaW50ZXJmYWNlIGhvc3QgdmFsaWRhdGlvbiIKKyAgICAgICAgICAgIGVycm9yID0gTm9uZQorICAgICAgICAKKyAgICAgICAgIyBjb2xsZWN0IHZucy1pbnRlcmZhY2VzCisgICAgICAgIHZuc19pbnRlcmZhY2VfaWRzID0gTm9uZQorICAgICAgICB2bnNfaW50ZXJmYWNlX2tleSA9IHNlbGYub2JqX2tleXNbInZucy1pbnRlcmZhY2UiXQorICAgICAgICB0cnk6CisgICAgICAgICAgICB2bnNfaW50ZXJmYWNlX3RhYmxlID0gc2VsZi5zdG9yZS5nZXRfdGFibGVfZnJvbV9zdG9yZSgidm5zLWludGVyZmFjZSIpCisgICAgICAgICAgICB2bnNfaW50ZXJmYWNlX2lkcyA9IFt4W3Zuc19pbnRlcmZhY2Vfa2V5XSBmb3IgeCBpbiB2bnNfaW50ZXJmYWNlX3RhYmxlXQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXJyb3IgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlKQorICAgICAgICAgICAgcHJpbnQgc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcikKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBpZiBlcnJvcjoKKyAgICAgICAgICAgIHByaW50ICJVbmFibGUgdG8gY29sbGVjdCB2bnMtaW50ZXJmYWNlcywgbm8gaG9zdC12bnMtaW50ZXJmYWNlIHZhbGlkYXRpb24gZm9yIHZucy1pbnRlcmZhY2VzIgorICAgICAgICAgICAgZXJyb3IgPSBOb25lCisKKyAgICAgICAgIyBjb2xsZWN0IGhvc3Qtdm5zLWludGVyZmFjZQorICAgICAgICBob3N0X3Zuc19pbnRlcmZhY2VfaWRzID0gTm9uZQorICAgICAgICBob3N0X3Zuc19pbnRlcmZhY2Vfa2V5ID0gc2VsZi5vYmpfa2V5c1siaG9zdC12bnMtaW50ZXJmYWNlIl0KKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgaG9zdF92bnNfaW50ZXJmYWNlX3RhYmxlID0gc2VsZi5zdG9yZS5nZXRfdGFibGVfZnJvbV9zdG9yZSgiaG9zdC12bnMtaW50ZXJmYWNlIikKKyAgICAgICAgICAgIGhvc3Rfdm5zX2ludGVyZmFjZV9pZHMgPSBbeFtob3N0X3Zuc19pbnRlcmZhY2Vfa2V5XSBmb3IgeCBpbiBob3N0X3Zuc19pbnRlcmZhY2VfdGFibGVdCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24sIGU6CisgICAgICAgICAgICBlcnJvciA9IHNlbGYucmVzdF9lcnJvcl90b19kaWN0KGUpCisgICAgICAgICAgICBwcmludCBzZWxmLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9yKQorICAgICAgICAgICAgcGFzcworCisgICAgICAgIGlmIGVycm9yOgorICAgICAgICAgICAgcHJpbnQgIlVuYWJsZSB0byBjb2xsZWN0IGhvc3Qtdm5zLWludGVyZmFjZSIKKyAgICAgICAgICAgIHJldHVybgorCisgICAgICAgIGlmIGxlbihob3N0X3Zuc19pbnRlcmZhY2VfdGFibGUpID09IDA6CisgICAgICAgICAgICBwcmludCAiaG9zdF92bnNfaW50ZXJmYWNlX3RhYmxlIGVtcHR5IgorICAgIAorICAgICAgICBob3N0X3Zuc19pbnRlcmZhY2VfaWQgPSBzZWxmLm9ial9rZXlzWydob3N0LXZucy1pbnRlcmZhY2UnXQorICAgICAgICBmb3IgaG9zdF92bnNfaW50ZXJmYWNlIGluIGhvc3Rfdm5zX2ludGVyZmFjZV90YWJsZToKKyAgICAgICAgICAgIGlmIG5vdCBob3N0X3Zuc19pbnRlcmZhY2VfaWQgaW4gaG9zdF92bnNfaW50ZXJmYWNlOgorICAgICAgICAgICAgICAgIHByaW50ICJob3N0X3Zuc19pbnRlcmZhY2Ugbm8gcHJpbWFyeSBrZXkiCisgICAgICAgICAgICB0aGlzX2hvc3Rfdm5zX2ludGVyZmFjZV9pZCA9IGhvc3Rfdm5zX2ludGVyZmFjZVtob3N0X3Zuc19pbnRlcmZhY2VfaWRdCisgICAgICAgICAgICBpZiBub3QgJ2hvc3QnIGluIGhvc3Rfdm5zX2ludGVyZmFjZToKKyAgICAgICAgICAgICAgICBwcmludCAiaG9zdF92bnNfaW50ZXJmYWNlICVzIG5vIGhvc3QgZm9yZWlnbiBrZXkiICUgdGhpc19ob3N0X3Zuc19pbnRlcmZhY2VfaWQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaG9zdF9mb3JlaWduX2tleSA9IGhvc3Rfdm5zX2ludGVyZmFjZVsnaG9zdCddCisgICAgICAgICAgICAgICAgaWYgbm90IGhvc3RfZm9yZWlnbl9rZXkgaW4gaG9zdF9pZHM6CisgICAgICAgICAgICAgICAgICAgIHByaW50ICJob3N0X3Zuc19pbnRlcmZhY2UgJXMgZm9yZWlnbiBrZXkgJXMgcmVmZXJlbmNlcyBtaXNzaW5nIGhvc3QiICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXNfaG9zdF92bnNfaW50ZXJmYWNlX2lkLCBob3N0X2ZvcmVpZ25fa2V5KQorCisgICAgICAgICAgICBpZiBub3QgJ2ludGVyZmFjZScgaW4gaG9zdF92bnNfaW50ZXJmYWNlOgorICAgICAgICAgICAgICAgIHByaW50ICJob3N0X3Zuc19pbnRlcmZhY2UgJXMgbm8gdm5zLWludGVyZmFjZSBmb3JlaWduIGtleSAlcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAodGhpc19ob3N0X3Zuc19pbnRlcmZhY2VfaWQsIGZvcmVpZ25fa2V5KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpbnRlcmZhY2VfZm9yZWlnbl9rZXkgPSBob3N0X3Zuc19pbnRlcmZhY2VbJ2ludGVyZmFjZSddCisgICAgICAgICAgICAgICAgaWYgbm90IGludGVyZmFjZV9mb3JlaWduX2tleSBpbiB2bnNfaW50ZXJmYWNlX2lkczoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgImhvc3Rfdm5zX2ludGVyZmFjZSAlcyBmb3JlaWduIGtleSAlcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAodGhpc19ob3N0X3Zuc19pbnRlcmZhY2UsIGludGVyZmFjZV9mb3JlaWduX2tleSkKKworICAgICAgICAgICAgcGFydHMgPSB0aGlzX2hvc3Rfdm5zX2ludGVyZmFjZV9pZC5zcGxpdCgifCIpCisgICAgICAgICAgICBpZiBsZW4ocGFydHMpICE9IDM6CisgICAgICAgICAgICAgICAgcHJpbnQgImhvc3Rfdm5zX2ludGVyZmFjZV9pZCAlZCBuZWVkcyB0byBiZSB0aHJlZSBmaWVsZHMgc3BsaXQgYnkgJ3wnIgorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpZiBwYXJ0c1swXSAhPSBob3N0X2ZvcmVpZ25fa2V5OgorICAgICAgICAgICAgICAgICAgICBwcmludCAiaG9zdF92bnNfaW50ZXJmYWNlICVzIHJlbGF0ZWQgaG9zdCBmb3JlaWduIGtleSAlcyBpc24ndCBwYXJ0IG9mIGlkIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzX2hvc3Rfdm5zX2ludGVyZmFjZSwgaG9zdF9mb3JlaWduX2tleSkKKyAgICAgICAgICAgICAgICAjIHRoZSBpbnRlcmZhY2VfZm9yZWlnbl9rZXkgc2hvdWxkIGhhdmUgdHdvIHBhcnRzLgorICAgICAgICAgICAgICAgIGludGVyZmFjZV9wYXJ0cyA9IGludGVyZmFjZV9mb3JlaWduX2tleS5zcGxpdCgnfCcpCisgICAgICAgICAgICAgICAgaWYgbGVuKGludGVyZmFjZV9wYXJ0cykgIT0gMjoKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgImhvc3Rfdm5zX2ludGVyZmFjZSAlcyByZWxhdGVkIHZucy1pbnRlcmZhY2UgZm9yZWlnbiBrZXkgJXMgIiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICJuZWVkcyB0byBiZSB0d28gd29yZHMgc3BsaXQgYnkgJ3wnIiAlIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKHRoaXNfaG9zdF92bnNfaW50ZXJmYWNlX2lkLCBpbnRlcmZhY2VfZm9yZWlnbl9rZXkpCisgICAgICAgICAgICAgICAgZWxpZiBpbnRlcmZhY2VfcGFydHNbMF0gIT0gcGFydHNbMV06CisgICAgICAgICAgICAgICAgICAgIHByaW50ICJob3N0X3Zuc19pbnRlcmZhY2UgJXMgcmVsYXRlZCB2bnNfaW50ZXJmYWNlIGZvcmVpZ24ga2V5ICVzICIgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAiZG9lc24ndCBtYXRjaCBob3N0IGlkIHBhcnQgJXMiICUgXAorICAgICAgICAgICAgICAgICAgICAgICAgICAodGhpc19ob3N0X3Zuc19pbnRlcmZhY2UsIGludGVyZmFjZV9wYXJ0WzBdLCBwYXJ0c1sxXSkKKyAgICAgICAgICAgICAgICBlbGlmIGludGVyZmFjZV9wYXJ0c1sxXSAhPSBwYXJ0c1syXToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQgImhvc3Rfdm5zX2ludGVyZmFjZSAlcyByZWxhdGVkIHZuc19pbnRlcmZhY2UgZm9yZWlnbiBrZXkgJXMgIiBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICJkb2Vzbid0IG1hdGNoIGludGVyZmFjZSBsb25nIG5hbWUgcGFydCAlcyIgJSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzX2hvc3Rfdm5zX2ludGVyZmFjZSwgaW50ZXJmYWNlX3BhcnRbMV0sIHBhcnRzWzJdKQorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHZhbGlkYXRlX3Zuc19pbnRlcmZhY2UKKyAgICAjCisgICAgZGVmIHZhbGlkYXRlX3Zuc19pbnRlcmZhY2Uoc2VsZik6CisgICAgICAgIHByaW50ICJ2bnMtaW50ZXJmYWNlIgorCisgICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICMgdmFsaWRhdGVfdm5zX2ludGVyZmFjZV9ydWxlCisgICAgIworICAgICMgLSBpZCBleGlzdHMsIAorICAgICMgLSBlYWNoIHJvdyBoYXMgYSBmb3JlaWduIGtleQorICAgICMgLSBlYWNoIGZvcmVpZ24ga2V5IGV4aXN0cworICAgICMgLSB0aGUgaWQsIHdoaWNoIGlzIGEgY29uY2F0ZW5hdGlvbiBvZiB2bnMgbmFtZSBhbmQgcm93IGlkLCBoYXMgdGhlIGNvcnJlY3QgZm9yZWlnbiBrZXkKKyAgICAjCisgICAgZGVmIHZhbGlkYXRlX3Zuc19pbnRlcmZhY2VfcnVsZShzZWxmKToKKyAgICAgICAgcHJpbnQgInZuc19pbnRlcmZhY2VfcnVsZSIKKworICAgICAgICBlcnJvciA9IE5vbmUKKyAgICAgICAgIyBjb2xsZWN0IGtub3duIHZucydzCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHZuc190YWJsZSA9IHNlbGYuc3RvcmUuZ2V0X3RhYmxlX2Zyb21fc3RvcmUoInZucy1kZWZpbml0aW9uIikKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgICAgIGVycm9yID0gc2VsZi5yZXN0X2Vycm9yX3RvX2RpY3QoZSkKKyAgICAgICAgICAgIHBhc3MKKyAgICAgICAgaWYgZXJyb3I6CisgICAgICAgICAgICBwcmludCAiVW5hYmxlIHRvIGNvbGxlY3Qgdm5zLWRlZmluaXRpb24iCisgICAgICAgICAgICByZXR1cm4KKworICAgICAgICAjIGNvbGxlY3Qga25vd24gc3dpdGNoZXMKKyAgICAgICAgc3dpdGNoX2lkcyA9IE5vbmUKKyAgICAgICAgc3dpdGNoX2tleSA9IHNlbGYub2JqX2tleXNbInN3aXRjaCJdCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHN3aXRjaF90YWJsZSA9IHNlbGYuc3RvcmUuZ2V0X3RhYmxlX2Zyb21fc3RvcmUoInN3aXRjaCIpCisgICAgICAgICAgICBzd2l0Y2hfaWRzID0gW3hbc3dpdGNoX2tleV0gZm9yIHggaW4gc3dpdGNoX3RhYmxlXQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXJyb3IgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlKQorICAgICAgICAgICAgcHJpbnQgc2VsZi5yZXN0X2Vycm9yX2RpY3RfdG9fbWVzc2FnZShlcnJvcikKKyAgICAgICAgICAgIHBhc3MKKworICAgICAgICBpZiBlcnJvcjoKKyAgICAgICAgICAgIHByaW50ICJVbmFibGUgdG8gY29sbGVjdCBzd2l0Y2gsIG5vIHN3aXRjaCBkcGlkIHZhbGlkYXRpb24gZm9yIHZucyBydWxlcyIKKyAgICAgICAgICAgIGVycm9yID0gTm9uZQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHZuc19pbnRlcmZhY2VfcnVsZXNfdGFibGUgPSBzZWxmLnN0b3JlLmdldF90YWJsZV9mcm9tX3N0b3JlKCJ2bnMtaW50ZXJmYWNlLXJ1bGUiKQorICAgICAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICAgICAgZXJyb3IgPSBzZWxmLnJlc3RfZXJyb3JfdG9fZGljdChlKQorICAgICAgICAgICAgcGFzcworICAgICAgICBpZiBlcnJvcjoKKyAgICAgICAgICAgIHByaW50ICJVbmFibGUgdG8gY29sbGVjdCB2bnMtaW50ZXJmYWNlLXJ1bGUiCisgICAgICAgICAgICByZXR1cm4KKyAgICAgICAgdm5zX2lkID0gc2VsZi5vYmpfa2V5c1sidm5zLWludGVyZmFjZS1ydWxlIl0KKworICAgICAgICBmb3IgcnVsZSBpbiB2bnNfaW50ZXJmYWNlX3J1bGVzX3RhYmxlOgorICAgICAgICAgICAgaWYgbm90IHZuc19pZCBpbiBydWxlOgorICAgICAgICAgICAgICAgIHByaW50ICJydWxlIGhhcyBtaXNzaW5nIHJ1bGUgaWQiCisgICAgICAgICAgICBydWxlX2lkID0gcnVsZVt2bnNfaWRdCisgICAgICAgICAgICBwYXJ0cyA9IHJ1bGVfaWQuc3BsaXQoInwiKQorICAgICAgICAgICAgaWYgbGVuKHBhcnRzKSA8IDI6CisgICAgICAgICAgICAgICAgcHJpbnQgInJ1bGUgJXMgaGFzIGludmFsaWQgaWQiICUgcnVsZV9pZAorICAgICAgICAgICAgdm5zX3BhcnQgPSBwYXJ0c1swXQorICAgICAgICAgICAgaWYgbm90ICd2bnMnIGluIHJ1bGU6CisgICAgICAgICAgICAgICAgcHJpbnQgInJ1bGUgJXMgaGFzIG1pc3Npbmcgdm5zIGZvcmVpZ24ga2V5IiAlIHJ1bGVfaWQKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWYgcnVsZVsndm5zJ10gIT0gdm5zX3BhcnQ6CisgICAgICAgICAgICAgICAgICAgIHByaW50ICJydWxlICVzIGhhcyBpbmNvbnNpc3RlbnQgdm5zIGZvcmVpZ24ga2V5OiAlcyIgJSAocnVsZV9pZCwgcnVsZVsndm5zJ10pCisgICAgICAgICAgICBpZiAncG9ydHMnIGluIHJ1bGUgYW5kIG5vdCAnc3dpdGNoJyBpbiBydWxlOgorICAgICAgICAgICAgICAgIHByaW50ICJydWxlICVzIGhhcyBhIHBvcnRzIGZpZWxkIHBvcHVsYXRlZCBidXQgbm8gc3dpdGNoIiAlIHJ1bGVfaWQKKyAgICAgICAgICAgIGVsaWYgJ3N3aXRjaCcgaW4gcnVsZSBhbmQgbm90ICdwb3J0cycgaW4gcnVsZToKKyAgICAgICAgICAgICAgICBwcmludCAicnVsZSAlcyBoYXMgYSBzd2l0Y2ggZmllbGQgcG9wdWxhdGVkIGJ1dCBubyBzd2l0Y2giICUgcnVsZV9pZAorICAgICAgICAgICAgaWYgJ3N3aXRjaCcgaW4gcnVsZSBhbmQgbm90IHJ1bGVbJ3N3aXRjaCddIGluIHN3aXRjaF9pZHM6CisgICAgICAgICAgICAgICAgcHJpbnQgInJ1bGUgJXMgaGFzIGFuIHVua25vd24gc3dpdGNoIGRwaWQgJXMiICUgKHJ1bGVfaWQsIHJ1bGVbJ3N3aXRjaCddKQorICAgICAgICAgICAgICAgIAorCisgICAgIworICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAjIHZhbGlkYXRlCisgICAgIworICAgIGRlZiB2YWxpZGF0ZShzZWxmKToKKyAgICAgICAgcHJpbnQgInN0b3JlIHZhbGlkYXRpb24iCisKKyAgICAgICAgdGFibGVzID0gc2VsZi5vYmpfdHlwZV9pbmZvX2RpY3Qua2V5cygpCisgICAgICAgIGZvciB0YWJsZSBpbiB0YWJsZXM6CisgICAgICAgICAgICBtZXRob2QgPSBzZWxmLm1ldGhvZF9mcm9tX25hbWUodGFibGUpCisgICAgICAgICAgICBpZiBtZXRob2Q6CisgICAgICAgICAgICAgICAgbWV0aG9kKCkKKyAgICAgICAgICAgIAorCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisjIEluaXRpYWxpemF0aW9uIGNyYXp5bmVzcyB0byBtYWtlIGl0IHdvcmsgYWNyb3NzIHBsYXRmb3Jtcy4gTWFueSBwbGF0Zm9ybXMgZG9uJ3QgaW5jbHVkZQorIyBHTlUgcmVhZGxpbmUgKGUuZy4gbWFjIG9zIHgpIGFuZCB3ZSBuZWVkIHRvIGNvbXBlbnNhdGUgZm9yIHRoaXMKKworaW1wb3J0IHN5cwordHJ5OgorICAgIGltcG9ydCByZWFkbGluZQorZXhjZXB0IEltcG9ydEVycm9yOgorICAgIHRyeToKKyAgICAgICAgaW1wb3J0IHB5cmVhZGxpbmUgYXMgcmVhZGxpbmUKKyAgICBleGNlcHQgSW1wb3J0RXJyb3I6CisgICAgICAgIHByaW50ICJDYW4ndCBmaW5kIGFueSByZWFkbGluZSBlcXVpdmFsZW50IC0gYWJvcnRpbmcuIgorZWxzZToKKyAgICBpbXBvcnQgcmxjb21wbGV0ZXIKKyAgICBpZihzeXMucGxhdGZvcm0gPT0gJ2RhcndpbicpOgorICAgICAgICAjIG5lZWRlZCBmb3IgTWFjLCBwbGVhc2UgZml4IEFwcGxlCisgICAgICAgIHJlYWRsaW5lLnBhcnNlX2FuZF9iaW5kICgiYmluZCBeSSBybF9jb21wbGV0ZSIpCisgICAgZWxzZToKKyAgICAgICAgcmVhZGxpbmUucGFyc2VfYW5kX2JpbmQoInRhYjogY29tcGxldGUiKQorICAgICAgICByZWFkbGluZS5wYXJzZV9hbmRfYmluZCgiPzogcG9zc2libGUtY29tcGxldGlvbnMiKQorCisgIAorIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIyBSdW4gdGhlIHNoZWxsCisgCitkZWYgbWFpbigpOgorICAgICMgVW5jb21tZW50IHRoZSBuZXh0IHR3byBsaW5lcyB0byBlbmFibGUgcmVtb3RlIGRlYnVnZ2luZyB3aXRoIFB5RGV2CisgICAgI2ltcG9ydCBweWRldmQKKyAgICAjcHlkZXZkLnNldHRyYWNlKCkKKyAgICB2YWxpZGF0ZSA9IFZhbGlkYXRlKCkKKyAgICB2YWxpZGF0ZS5pbml0KCkKKyAgICB2YWxpZGF0ZS52YWxpZGF0ZSgpICAgICAgICAgICAgICAKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL2NsaS90cmFjZS5weSBiL2NsaS90cmFjZS5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi5hNDU2ZjgzCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL3RyYWNlLnB5CkBAIC0wLDAgKzEsMjIwIEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IChjKSAyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCisjCisjIENvcHlyaWdodCAoYykgMjAxMSwyMDEyIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKworZnJvbSBzeXMgaW1wb3J0IHN0ZGVycgorZnJvbSByZSBpbXBvcnQgY29tcGlsZSwgbWF0Y2gsIHNlYXJjaAorZnJvbSBvcHRwYXJzZSBpbXBvcnQgT3B0aW9uUGFyc2VyCitmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBkZWZhdWx0ZGljdAorZnJvbSBzdWJwcm9jZXNzIGltcG9ydCBQb3BlbiwgUElQRSwgU1RET1VUCisKK2ltcG9ydCBzb2NrZXQsIGZjbnRsLCBzdHJ1Y3QKK2RlZiBnZXRfaXBhZGRyKGlmbmFtZSk6CisgICAgcyA9IHNvY2tldC5zb2NrZXQoc29ja2V0LkFGX0lORVQsIHNvY2tldC5TT0NLX0RHUkFNKQorICAgIGlwYWRkciA9IGZjbnRsLmlvY3RsKHMuZmlsZW5vKCksIDB4ODkxNSwgc3RydWN0LnBhY2soJzI1NnMnLCBpZm5hbWVbOjE1XSkpICAjIFNJT0NHSUZBRERSCisgICAgcmV0dXJuIHNvY2tldC5pbmV0X250b2EoaXBhZGRyWzIwOjI0XSkKKworaW1wb3J0IHVybGxpYiwganNvbgorZGVmIGdldF9hbGlhc2VzKGNvbnRyb2xsZXI9J2xvY2FsaG9zdCcsIGNvbnRyb2xsZXJfcG9ydD02NjMzLCBpZm5hbWU9J2V0aDAnKToKKyAgICB1cmwgPSAiaHR0cDovLyVzL3Jlc3QvdjEvbW9kZWwvc3dpdGNoLyIgJSBjb250cm9sbGVyCisgICAgYWxpYXNlcyA9IHtnZXRfaXBhZGRyKGlmbmFtZSkrJzolZCclY29udHJvbGxlcl9wb3J0OiAnY29udHJvbGxlcid9CisgICAgZm9yIHN3aXRjaCBpbiBqc29uLmxvYWRzKHVybGxpYi51cmxvcGVuKHVybCkucmVhZCgpKToKKyAgICAgICAgc29ja2V0YWRkciA9IHN3aXRjaC5nZXQoJ3NvY2tldC1hZGRyZXNzJykKKyAgICAgICAgaWYgc29ja2V0YWRkcjoKKyAgICAgICAgICAgIHNvY2tldGFkZHIgPSBzb2NrZXRhZGRyWzE6XQorICAgICAgICBhbGlhcyA9IHN3aXRjaC5nZXQoJ2FsaWFzJykKKyAgICAgICAgaWYgbm90IGFsaWFzOgorICAgICAgICAgICAgYWxpYXMgPSBzd2l0Y2guZ2V0KCdkcGlkJykKKyAgICAgICAgYWxpYXNlc1tzb2NrZXRhZGRyXSA9IGFsaWFzCisgICAgcmV0dXJuIGFsaWFzZXMKKworREVCVUc9RmFsc2UKKworY2xhc3MgT3BlbkZsb3dUcmFjZXIob2JqZWN0KToKKyAgICAjIEZvcm1hdHMKKyAgICBTVU1NQVJZID0gInN1bW1hcnkiCisgICAgREVUQUlMID0gImRldGFpbCIKKyAgICBPTkVMSU5FID0gIm9uZWxpbmUiCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgbXNnX2ZpbHRlcnM9Tm9uZSwgdGNwZHVtcF9maWx0ZXI9JycsIGZtdD1TVU1NQVJZLCBhbGlhcz1GYWxzZSwgcHJpbnRlcj1Ob25lKToKKyAgICAgICAgc2VsZi5tc2dfZmlsdGVycyA9IG1zZ19maWx0ZXJzCisgICAgICAgIHNlbGYudGNwZHVtcF9maWx0ZXIgPSB0Y3BkdW1wX2ZpbHRlcgorICAgICAgICBzZWxmLmRldGFpbCA9IChmbXQgIT0gc2VsZi5TVU1NQVJZKQorICAgICAgICBzZWxmLm9uZWxpbmUgPSAoZm10ID09IHNlbGYuT05FTElORSkKKyAgICAgICAgc2VsZi5wcmludGVyID0gc2VsZi5wcm4KKyAgICAgICAgaWYgcHJpbnRlcjoKKyAgICAgICAgICAgIHNlbGYucHJpbnRlciA9IHByaW50ZXIKKworICAgICAgICBzZWxmLnBrdCA9IGRlZmF1bHRkaWN0KHN0cikKKyAgICAgICAgc2VsZi5yZWFkaW5nX2RldGFpbCA9IEZhbHNlCisgICAgICAgIHNlbGYuYWxpYXMgPSBhbGlhcworICAgICAgICBzZWxmLmFsaWFzZXMgPSBOb25lCisgICAgICAgIGlmIHNlbGYuYWxpYXM6CisgICAgICAgICAgICBzZWxmLmFsaWFzZXMgPSBnZXRfYWxpYXNlcygpCisKKyAgICBkZWYgcnVuKHNlbGYpOgorICAgICAgICBzZWxmLnRjcGR1bXBfdHJhY2Uoc2VsZi50Y3BkdW1wX29wZW4oKSkKKyAgICAgICAgcmV0dXJuCisKKyAgICAjIGZpbHRlciBwYWNrZXRzCisgICAgZGVmIGZpbHRlcihzZWxmKToKKyAgICAgICAgbXNnX3R5cGUgPSAgc2VsZi5wa3RbJ29mLW1zZyddCisgICAgICAgIGlmIG5vdCBtc2dfdHlwZToKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorICAgICAgICBpZiBzZWxmLm1zZ19maWx0ZXJzOgorICAgICAgICAgICAgcmV0dXJuIGFueShtYXAobGFtYmRhIHBhdHRlcm46IHNlYXJjaChwYXR0ZXJuLCBtc2dfdHlwZSksIHNlbGYubXNnX2ZpbHRlcnMpKQorICAgICAgICByZXR1cm4gVHJ1ZQorCisgICAgIyBmb3JtYXQgcGFja2V0IG91dHB1dAorICAgIGRlZiBmbXQoc2VsZik6CisgICAgICAgIHBrdCA9IHNlbGYucGt0CisgICAgICAgIHNlcCA9ICdcbiAgICAnCisgICAgICAgIGlmIHNlbGYub25lbGluZTogc2VwID0gJywgJworCisgICAgICAgIHNyYyA9ICclczolcycgJSAocGt0WydzcmMtaXAnXSwgcGt0WydzcmMtcG9ydCddKQorICAgICAgICBkc3QgPSAnJXM6JXMnICUgKHBrdFsnZHN0LWlwJ10sIHBrdFsnZHN0LXBvcnQnXSkKKyAgICAgICAgaWYgc2VsZi5hbGlhczoKKyAgICAgICAgICAgIGlmIG5vdCBzZWxmLmFsaWFzZXMuZ2V0KHNyYykgb3Igbm90IHNlbGYuYWxpYXNlcy5nZXQoZHN0KToKKyAgICAgICAgICAgICAgICBzZWxmLmFsaWFzZXMgPSBnZXRfYWxpYXNlcygpCisgICAgICAgICAgICBzcmMgPSBzZWxmLmFsaWFzZXMuZ2V0KHNyYywgc3JjKQorICAgICAgICAgICAgZHN0ID0gc2VsZi5hbGlhc2VzLmdldChkc3QsIGRzdCkKKworICAgICAgICByZXQgPSAnJS0xOHMgJS0xOHMgWyAlcyAtPiAlcyBdJyAlICgKKyAgICAgICAgICAgIHBrdFsndGltZXN0YW1wJ10sIHBrdFsnb2YtbXNnJ10sIHNyYywgZHN0KQorICAgICAgICBpZiBzZWxmLmRldGFpbCBhbmQgcGt0WydvZi1kYXRhJ106CisgICAgICAgICAgICBmb3IgZGF0YSBpbiBwa3RbJ29mLWRhdGEnXS5zcGxpdCgnLCcpOgorICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLnN0cmlwKCkKKyAgICAgICAgICAgICAgICBpZiBkYXRhOgorICAgICAgICAgICAgICAgICAgICByZXQgKz0gKHNlcCArIGRhdGEpCisgICAgICAgIHJldHVybiByZXQKKworICAgIGRlZiBwcm4oc2VsZiwgeCk6CisgICAgICAgIHByaW50IHgKKworICAgIGRlZiB0Y3BkdW1wX29wZW4oc2VsZik6CisgICAgICAgIHRjcGR1bXBfY21kID0gJ3N1ZG8gL3Vzci9sb2NhbC9zYmluL3RjcGR1bXAgLWkgYW55IFwnJXNcJyAlcycKKyAgICAgICAgdGNwZHVtcF9hcmdzID0gJy1sIC1ubiAtdnYnCisgICAgICAgIHNlbGYucHJvY2VzcyA9IFBvcGVuKHRjcGR1bXBfY21kICUgKHNlbGYudGNwZHVtcF9maWx0ZXIsIHRjcGR1bXBfYXJncyksCisgICAgICAgICAgICAgICAgICAgICAgICBzaGVsbD1UcnVlLCBidWZzaXplPTEsIHN0ZG91dD1QSVBFLCBzdGRlcnI9U1RET1VUKQorICAgICAgICByZXR1cm4gc2VsZi5wcm9jZXNzLnN0ZG91dAorCisgICAgZGVmIHRjcGR1bXBfdHJhY2Uoc2VsZiwgZmQpOgorICAgICAgICAjIHRjcGR1bXAgZGVjb2RlciBwYXR0ZXJucworICAgICAgICBlbXB0eV9saW5lID0gY29tcGlsZSgnXiQnKQorICAgICAgICB0Y3BkdW1wX2xpbmUgPSBjb21waWxlKCdedGNwZHVtcC4qJCcpCisgICAgICAgIGlwX2xpbmUgPSBjb21waWxlKCdeKFxkezJ9XDpcZHsyfTpcZHsyfVwuXGQrKSBJUCAuKiQnKQorICAgICAgICB0Y3BfbGluZSA9IGNvbXBpbGUoJ15ccyooXGQrXC5cZCtcLlxkK1wuXGQrKVwuKFxkKykgXD4gKFxkK1wuXGQrXC5cZCtcLlxkKylcLihcZCspXDouKmxlbmd0aCBcZCsoLiopJCcpCisgICAgICAgIG9mX2hkciA9IGNvbXBpbGUoJ14oW14gXSopIFwoeGlkXD0oW15cKV0qKVwpXDooLiopJCcpCisgICAgICAgIG9mX2xpbmUgPSBjb21waWxlKCdeKC4qaW5fcG9ydFw9LiopJCcpCisgICAgICAgIGlmX2NvbnRfbGluZSA9IGNvbXBpbGUoJ15ccytjdXJyZW50XDonKQorICAgICAgICBpbmxpbmVfZXJyID0gY29tcGlsZSgnXlxzKlwoXCpcKlwqLiokJykKKyAgICAgICAgcGt0X2NvdW50ID0gY29tcGlsZSgnXlxkKyBwYWNrZXRzICcpCisKKyAgICAgICAgIyBoZWxwZXIgZm4KKyAgICAgICAgZGVmIG9mX2RhdGEocGt0LCBkYXRhKToKKyAgICAgICAgICAgIGlmIHBrdFsnb2YtbXNnJ10gPT0gJ3BhY2tldF9vdXQnOgorICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLnJlcGxhY2UoJyAnLCAnLCcpCisgICAgICAgICAgICBwa3RbJ29mLWRhdGEnXSArPSAoJywnICsgZGF0YSkKKworICAgICAgICAjIGRlY29kZSBwYWNrZXQgZGF0YQorICAgICAgICBsaW5lID0gZmQucmVhZGxpbmUoKQorICAgICAgICB3aGlsZSBsaW5lOgorICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnN0cmlwKCkKKyAgICAgICAgICAgICAgICBwa3QgPSBzZWxmLnBrdAorICAgICAgICAgICAgICAgIGlmIGVtcHR5X2xpbmUubWF0Y2gobGluZSk6CisgICAgICAgICAgICAgICAgICAgIHBhc3MKKyAgICAgICAgICAgICAgICBlbGlmIHBrdF9jb3VudC5tYXRjaChsaW5lKToKKyAgICAgICAgICAgICAgICAgICAgcHJpbnQ+PnN0ZGVyciwgbGluZQorICAgICAgICAgICAgICAgIGVsaWYgdGNwZHVtcF9saW5lLm1hdGNoKGxpbmUpOgorICAgICAgICAgICAgICAgICAgICBwYXNzCisgICAgICAgICAgICAgICAgZWxpZiBpcF9saW5lLm1hdGNoKGxpbmUpOgorICAgICAgICAgICAgICAgICAgICBpZiBzZWxmLmZpbHRlcigpOiBzZWxmLnByaW50ZXIoc2VsZi5mbXQoKSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5wa3QgPSBkZWZhdWx0ZGljdChzdHIpCisgICAgICAgICAgICAgICAgICAgIHNlbGYucmVhZGluZ19kZXRhaWwgPSBGYWxzZQorICAgICAgICAgICAgICAgICAgICBwa3QgPSBzZWxmLnBrdAorICAgICAgICAgICAgICAgICAgICBwa3RbJ3RpbWVzdGFtcCddID0gaXBfbGluZS5tYXRjaChsaW5lKS5ncm91cHMoKVswXQorICAgICAgICAgICAgICAgIGVsaWYgdGNwX2xpbmUubWF0Y2gobGluZSk6CisgICAgICAgICAgICAgICAgICAgIG0gPSAgdGNwX2xpbmUubWF0Y2gobGluZSkuZ3JvdXBzKCkKKyAgICAgICAgICAgICAgICAgICAgcGt0WydzcmMtaXAnXSA9IG1bMF0KKyAgICAgICAgICAgICAgICAgICAgcGt0WydzcmMtcG9ydCddID0gbVsxXQorICAgICAgICAgICAgICAgICAgICBwa3RbJ2RzdC1pcCddID0gbVsyXQorICAgICAgICAgICAgICAgICAgICBwa3RbJ2RzdC1wb3J0J10gPSBtWzNdCisgICAgICAgICAgICAgICAgICAgIGlmIG9mX2hkci5tYXRjaChtWzRdKToKKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYucmVhZGluZ19kZXRhaWwgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICBtID0gb2ZfaGRyLm1hdGNoKG1bNF0pLmdyb3VwcygpCisgICAgICAgICAgICAgICAgICAgICAgICBwa3RbJ29mLW1zZyddID0gbVswXS5zdHJpcCgpCisgICAgICAgICAgICAgICAgICAgICAgICBwa3RbJ29mLXhpZCddID0gbVsxXQorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IG1bMl0KKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBpbmxpbmVfZXJyLm1hdGNoKG1bMl0pOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mX2RhdGEocGt0LCBkYXRhKQorICAgICAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBERUJVRzoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQ+PnN0ZGVyciwgJ0lubGluZSBFcnJvcicsIGRhdGEKKyAgICAgICAgICAgICAgICBlbGlmIG9mX2xpbmUubWF0Y2gobGluZSk6CisgICAgICAgICAgICAgICAgICAgIG9mX2RhdGEocGt0LCBvZl9saW5lLm1hdGNoKGxpbmUpLmdyb3VwcygpWzBdKQorICAgICAgICAgICAgICAgIGVsaWYgaWZfY29udF9saW5lLm1hdGNoKGxpbmUpOgorICAgICAgICAgICAgICAgICAgICBsaW5lID0gbGluZS5yZXBsYWNlKCcsJywgJzsgJykKKyAgICAgICAgICAgICAgICAgICAgb2ZfZGF0YShwa3QsICc7ICcrbGluZSkKKyAgICAgICAgICAgICAgICBlbGlmIHNlbGYucmVhZGluZ19kZXRhaWw6CisgICAgICAgICAgICAgICAgICAgIGxpbmUgPSBsaW5lLnJlcGxhY2UoJywnLCAnOyAnKQorICAgICAgICAgICAgICAgICAgICBvZl9kYXRhKHBrdCwgbGluZSkKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBpZiBERUJVRzoKKyAgICAgICAgICAgICAgICAgICAgICAgIHByaW50Pj5zdGRlcnIsICdVbmV4cGVjdGVkOiBMaW5lJywgbGluZQorICAgICAgICAgICAgICAgIGxpbmUgPSBmZC5yZWFkbGluZSgpCisgICAgICAgICAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgICAgICAgICAgcHJpbnQKKyAgICAgICAgICAgICAgICBpZiBzZWxmLnByb2Nlc3M6CisgICAgICAgICAgICAgICAgICAgIHNlbGYucHJvY2Vzcy50ZXJtaW5hdGUoKQorICAgICAgICAgICAgICAgICAgICBzZWxmLnByb2Nlc3MgPSBOb25lCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsKKworZGVmIG1haW4oKToKKyAgICB1c2FnZSA9ICJ1c2FnZTogJXByb2cgWy0tZGV0YWlsXSBbLS1vbmVsaW5lXSBbLS1maWx0ZXIgPHRjcGR1bXAtZmlsdGVyPl0gWzxtc2ctdHlwZT4gLi4uXSIKKyAgICBvcHRwYXJzZXIgPSBPcHRpb25QYXJzZXIodXNhZ2U9dXNhZ2UpCisgICAgb3B0cGFyc2VyLmFkZF9vcHRpb24oIi1mIiwgIi0tZmlsdGVyIiwgZGVzdD0idGNwZHVtcF9maWx0ZXIiLAorICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbj0ic3RvcmUiLCB0eXBlPSJzdHJpbmciLCBkZWZhdWx0PScoKHRjcCkgYW5kIChwb3J0IDY2MzMpKScsCisgICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0idGNwZHVtcCBmaWx0ZXIgcnVsZSIsIG1ldGF2YXI9IkZJTFRFUiIpCisgICAgb3B0cGFyc2VyLmFkZF9vcHRpb24oIi1kIiwgIi0tZGV0YWlsIiwgZGVzdD0iZGV0YWlsIiwKKyAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb249InN0b3JlX3RydWUiLCBkZWZhdWx0PUZhbHNlLAorICAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9InByaW50IG1lc3NhZ2UgZGV0YWlsIikKKyAgICBvcHRwYXJzZXIuYWRkX29wdGlvbigiLW8iLCAiLS1vbmVsaW5lIiwgZGVzdD0ib25lbGluZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJwcmludCBtZXNzYWdlIGRldGFpbCBvbiBvbmUgbGluZSIpCisgICAgb3B0cGFyc2VyLmFkZF9vcHRpb24oIi1hIiwgIi0tYWxpYXMiLCBkZXN0PSJhbGlhcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwgZGVmYXVsdD1GYWxzZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSJxdWVyeSBjb250cm9sbGVyIHRvIHJlc29sdmUgYWRkcmVzcyB0byBzd2l0Y2gtZHBpZC9hbGlhcyIpCisgICAgKG9wdGlvbnMsIG1zZ19maWx0ZXJzKSA9IG9wdHBhcnNlci5wYXJzZV9hcmdzKCkKKworICAgIHRyeToKKyAgICAgICAgcHJpbnQgJ1N0YXJ0aW5nIG9wZW5mbG93IHRyYWNlLCB1c2UgXkMgdG8gcXVpdCcKKyAgICAgICAgZm10ID0gT3BlbkZsb3dUcmFjZXIuU1VNTUFSWQorICAgICAgICBpZiBvcHRpb25zLmRldGFpbDogIGZtdCA9IE9wZW5GbG93VHJhY2VyLkRFVEFJTAorICAgICAgICBpZiBvcHRpb25zLm9uZWxpbmU6ICBmbXQgPSBPcGVuRmxvd1RyYWNlci5PTkVMSU5FCisgICAgICAgIHRyYWNlciA9IE9wZW5GbG93VHJhY2VyKG1zZ19maWx0ZXJzLCBvcHRpb25zLnRjcGR1bXBfZmlsdGVyLCBmbXQ9Zm10LCBhbGlhcz1vcHRpb25zLmFsaWFzKQorICAgICAgICB0cmFjZXIucnVuKCkKKyAgICBleGNlcHQgS2V5Ym9hcmRJbnRlcnJ1cHQ6CisgICAgICAgIHBhc3MKKworaWYgX19uYW1lX18gPT0gJ19fbWFpbl9fJzoKKyAgICBtYWluKCkKZGlmZiAtLWdpdCBhL2NsaS91cmxfY2FjaGUucHkgYi9jbGkvdXJsX2NhY2hlLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmFhNTViMjcKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvdXJsX2NhY2hlLnB5CkBAIC0wLDAgKzEsMTEyIEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMiwyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitpbXBvcnQgZGF0ZXRpbWUKK2ltcG9ydCBqc29uCitpbXBvcnQgdXRpZgoraW1wb3J0IHJlCisKKyMKKyMKKyMKKworY2FjaGVkX3VybHMgPSB7fQorY2FjaGVkX3VybHNfYWdlID0ge30KK3JlY29yZF91cmxzID0gTm9uZQorCisKK2RlZiBjbGVhcl9jYWNoZWRfdXJscygpOgorICAgICIiIgorICAgIENhbGxlZCB3aGVuIGFsbCB0aGUgdXJsJ3Mgb3VnaHQgdG8gYmUgZGlzY2FyZGVkLgorCisgICAgVGhpcyBpcyBjdXJyZW50bHkgZG9uZSBhdCBldmVyeSBjb21tYW5kIHN0YXJ0IHRvIHJlY2xhaW0gYW55IAorICAgIG1lbW9yeSByZXNvdXJjZXMuCisKKyAgICBBbHNvIGlzc3VlZCB3aGVuIGFueSB1cGRhdGUgb3IgZGVsZXRlIGlzIGlzc3VlZCBhZ2FpbnN0IHRoZQorICAgIGRhdGFiYXNlLCBzaW5jZSB0aGF0IG1lYW5zIG9uZSBvZiBvdXIgcmVzdWx0cyBtYXkgYmUgZGlmZmVyZW50CisgICAgCisgICAgIiIiCisgICAgZ2xvYmFsIGNhY2hlZF91cmxzLCBjYWNoZWRfdXJsc19hZ2UKKworICAgIGNhY2hlZF91cmxzID0ge30KKyAgICBjYWNoZWRfdXJsc19hZ2UgPSB7fQorCisKK2RlZiByZXNldF91cmwodXJsKToKKyAgICAiIiIKKyAgICBSZW1vdmUgYSB1cmwgZnJvbSB0aGUgY2FjaGUKKyAgICAiIiIKKyAgICBpZiB1cmwgaW4gY2FjaGVkX3VybHM6CisgICAgICAgIGRlbCBjYWNoZWRfdXJsc1t1cmxdCisgICAgICAgIGRlbCBjYWNoZWRfdXJsc19hZ2VbdXJsXQorCisKK2RlZiBnZXRfY2FjaGVkX3VybCh1cmwpOgorICAgICIiIgorICAgIFNpbXBsZSBjYWNoZSB0byBtYW5hZ2UgbXVsdGlwbGUgdXJsIHJlcXVlc3RzIGlzc3VlZCB3aXRoaW4gb25lIGNvbW1hbmQgY3ljbGUKKyAgICAiIiIKKyAgICBpZiB1cmwgaW4gY2FjaGVkX3VybHM6CisgICAgICAgICMgYWdlIGRvZXNuJ3QgZ2V0IHVwZGF0ZWQgd2hlbiBpdHMgdG91Y2hlZAorICAgICAgICBpZiB1cmwgaW4gY2FjaGVkX3VybHNfYWdlIGFuZCBcCisgICAgICAgICAgY2FjaGVkX3VybHNfYWdlW3VybF0gIDwgZGF0ZXRpbWUuZGF0ZXRpbWUubm93KCk6CisgICAgICAgICAgICAjIHRvbyBvbGQKKyAgICAgICAgICAgIHJlc2V0X3VybCh1cmwpCisgICAgICAgICAgICByZXR1cm4gTm9uZQorCisgICAgICAgIHJldHVybiBjYWNoZWRfdXJsc1t1cmxdCisgICAgcmV0dXJuIE5vbmUKKworCitkZWYgcmVjb3JkKHBhdGgpOgorICAgIGdsb2JhbCByZWNvcmRfdXJscworICAgIGlmIHBhdGggPT0gTm9uZToKKyAgICAgICAgaWYgcmVjb3JkX3VybHM6CisgICAgICAgICAgICByZWNvcmRfdXJscy5jbG9zZSgpCisgICAgICAgIHJlY29yZF91cmxzID0gTm9uZQorICAgICAgICByZXR1cm4KKyAgICAjIG5lZWQgdG8gdmFsaWRhdGUgcGF0aAorICAgIHRyeToKKyAgICAgICAgcmVjb3JkX3VybHMgPSBvcGVuKHBhdGgsICd3JykKKyAgICBleGNlcHQgRXhjZXB0aW9uLCBlOgorICAgICAgICBwcmludCAnRXJyb3I6IGNhblwndCBvcGVuICVzJyAlIHBhdGgKKworCitkZWYgc2F2ZV91cmwodXJsLCBlbnRyaWVzLCBhZ2UgPSBOb25lKToKKyAgICAiIiIKKyAgICBTYXZlIGEgdXJsIGFuZCB0aGUgcmVzcG9uc2UgaW4gdGhlIGNhY2hlLCBhc3NvY2lhdGUgYW4gYWdlIHdpdGggdGhlCisgICAgZW50cnksIGN1cnJlbnRseSB0d28gc2Vjb25kcy4KKyAgICAiIiIKKyAgICBjYWNoZWRfdXJsc1t1cmxdID0gZW50cmllcworICAgIGlmIHJlY29yZF91cmxzOgorICAgICAgICBpZiB0eXBlKGVudHJpZXMpID09IHN0cjoKKyAgICAgICAgICAgIHJlY29yZF91cmxzLndyaXRlKCdSRVNUICVzICVzICVzXG4nICUKKyAgICAgICAgICAgICAgICAodXJsLCAnU1RSJywgZW50cmllcykpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICAjIGFzc3VtZSBpdHMgYSBjb21wbGV4IHR5cGUKKyAgICAgICAgICAgIHJlY29yZF91cmxzLndyaXRlKCdSRVNUICVzICVzICVzXG4nICUKKyAgICAgICAgICAgICAgICAodXJsLCAnSlNPTicsIGpzb24uZHVtcHMoZW50cmllcykpKQorCisgICAgIyBhZ2Ugb3V0IHRoZSB1cmwgaW4gdHdvIHNlY29uZHMKKyAgICBpZiBhZ2UgPT0gTm9uZToKKyAgICAgICAgYWdlID0gMgorCisgICAgY2FjaGVkX3VybHNfYWdlW3VybF0gPSBkYXRldGltZS5kYXRldGltZS5ub3coKSArIGRhdGV0aW1lLnRpbWVkZWx0YSgwLCBhZ2UpCisKKworZGVmIGNvbW1hbmRfZmluaXNoZWQod29yZHMpOgorICAgIGlmIHJlY29yZF91cmxzOgorICAgICAgICByZWNvcmRfdXJscy53cml0ZSgnQ09NTUFORCAiJXMiXG4nICUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgJyAnLmpvaW4oW3V0aWYucXVvdGVfc3RyaW5nKHgpIGZvciB4IGluIHdvcmRzXSkpCmRpZmYgLS1naXQgYS9jbGkvdXRpZi5weSBiL2NsaS91dGlmLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmQ3ODk0YmMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvdXRpZi5weQpAQCAtMCwwICsxLDQxMCBAQAorIworIyBDb3B5cmlnaHQgKGMpIDIwMTEsMjAxMiwyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCisjCisjIFVUSWxpdHkgRnVuY3Rpb25zCisjCisKK2ltcG9ydCByZQorCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIGlzX3Bvd2VyX29mX3R3byhuKToKKyAgICAiIiIKKyAgICBSZXR1cm4gdHJ1ZSBpZiB0aGUgaW50ZWdlciBwYXJhbWV0ZXIgaXMgYSBwb3dlciBvZiB0d28KKyAgICAiIiIKKyAgICBpZiAobiAmIChuIC0gMSkpID09IDA6CisgICAgICAgIHJldHVybiBUcnVlCisgICAgcmV0dXJuIEZhbHNlCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIHVuaXF1ZV9saXN0X2Zyb21fbGlzdChkdXBfbGlzdCk6CisgICAgIiIiCisgICAgUmV0dXJuIGEgbmV3IGxpc3QgZnJvbSB0aGUgb2xkLCB3aGVyZSB0aGUgdGhlIG5ldyBoYXMgbm8gcmVwZWF0ZWQgaXRlbXMuCisgICAgKHRoZSBpdGVtcyBhcmUgaW50ZW5kZWQgdG8gYmUgc3RyaW5ncykKKyAgICAiIiIKKyAgICByZXR1cm4gZGljdChbW3gsIE5vbmVdIGZvciB4IGluIGR1cF9saXN0XSkua2V5cygpCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIGZ1bGxfd29yZF9mcm9tX2Nob2ljZXMod29yZCwgYWxsX2Nob2ljZXMpOgorICAgICIiIgorICAgIGdpdmVuIGEgc2luZ2xlIHdvcmQsIHdoaWNoIGNvdWxkIGJlIGEgcHJlZml4IG9mIGEgd29yZCBpbgorICAgIGEgbGlzdCAod2hpY2ggaXMgdGhlIHNlY29uZCBwYXJhbWV0ZXIpLCByZXR1cm4gYSBzaW5nbGUKKyAgICB3b3JkIHdoaWNoIG1hdGNoZXMgb3IgTm9uZSwgd2hlbiBub24gb3IgbW9yZSB0aGFuIG9uZSBtYXRjaC4KKyAgICAiIiIKKyAgICBjaG9pY2VzID0gW3ggZm9yIHggaW4gYWxsX2Nob2ljZXMgaWYgeC5zdGFydHN3aXRoKHdvcmQpXQorICAgIGlmIGxlbihjaG9pY2VzKSA9PSAxOgorICAgICAgICByZXR1cm4gY2hvaWNlc1swXQorICAgIGlmIHdvcmQgaW4gYWxsX2Nob2ljZXM6ICAgICAgIyBhbHNvIGFsbG93IGFuIGV4YWN0IG1hdGNoCisgICAgICAgIHJldHVybiB3b3JkCisgICAgcmV0dXJuIE5vbmUKKworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiB0cnlfaW50KHN0cmluZyk6CisgICAgIiIiCisgICAgUmV0dXJuIGFuIGludGVyZ2VyIGlmIHBvc3NpYmxlLCBvdGhlcndpc2UgYSBzdHJpbmcKKyAgICAiIiIKKyAgICB0cnk6CisgICAgICAgIHN0cl9pbnQgPSBpbnQoc3RyaW5nKQorICAgICAgICByZXR1cm4gc3RyX2ludAorICAgIGV4Y2VwdDoKKyAgICAgICAgcGFzcworICAgIHJldHVybiBzdHJpbmcKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgbWFza190b19jaWRyKG1hc2spOgorICAgICIiIgorICAgIEdpdmVuIGEgbWFzayB1c2VkIGluIEFDJ3MsIGZvciBlYW1wbGUgMC4wLjAuMjU1LCByZXR1cm4gdGhlIGNpZHIgLzxuPgorICAgIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGF0IG1hc2suICBUaGUgbWFzayBtdXN0IGJlIGEgcG93ZXIgb2YgdHdvIGZvcgorICAgIHRoZSBjaWRyIHZhbHVlIHRvIGJlIGRpc3BsYXllZAorICAgICIiIgorICAgIGlmIG5vdCBpc19wb3dlcl9vZl90d28obWFzayArIDEpOgorICAgICAgICByZXR1cm4gMAorICAgIG1hc2sgKz0gMQorICAgIGNpZHIgPSAzMworICAgIHdoaWxlIG1hc2s6CisgICAgICAgIGNpZHIgLT0gMQorICAgICAgICBtYXNrID4+PSAxCisgICAgcmV0dXJuIGNpZHIKKworCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIGluZXRfbnRvYShuKToKKyAgICAiIiIKKyAgICBEZWZpbmEgYSBsb2NhbCB2YXJpYW50IHdoaWNoIGV4YWN0bHkgbWVldHMgbG9jYWwgbmVlZHMKKyAgICAiIiIKKyAgICByZXR1cm4gIiVzLiVzLiVzLiVzIiAlICggXAorICAgICAgICAgICAgKG4gJiAweGZmMDAwMDAwKSA+PiAyNCwgXAorICAgICAgICAgICAgKG4gJiAweDAwZmYwMDAwKSA+PiAxNiwgXAorICAgICAgICAgICAgKG4gJiAweDAwMDBmZjAwKSA+PiA4LCBcCisgICAgICAgICAgICAobiAmIDB4MDAwMDAwZmYpICkKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgaW5ldF9hdG9uKGlwKToKKyAgICAiIiIKKyAgICBSZXR1cm4gYW4gaW50ZWdlciBjb250YWluaW5nIHRoZSBpcCBhZGRyZXNzIHBhc3NlZCBpbi4KKyAgICBBc3N1bWVzIHRoZSBmaWVsZCBpcyBhIHF1YWQtaW50CisgICAgIiIiCisgICAgZmllbGRzID0gaXAuc3BsaXQoJy4nKQorICAgIHJldHVybiAoaW50KGZpZWxkc1swXSkgPDwgMjQpIHwgXAorICAgICAgICAgICAoaW50KGZpZWxkc1sxXSkgPDwgMTYpIHwgXAorICAgICAgICAgICAoaW50KGZpZWxkc1syXSkgPDwgOCkgfCBcCisgICAgICAgICAgIChpbnQoZmllbGRzWzNdKSkKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgaXBfYW5kX21hc2tfbnRvYShpcCwgbWFzayk6CisgICAgIiIiCisgICAgVGhlIHR3byB2YWx1ZXMgYXJlIGRpc3BsYXllZCBlaXRoZXIgYXMgJ2FueScgb3IgYXMgaW4gY2lkciBmb3JtYXQKKyAgICBvciBhcyBhIGlwL21hc2sgZGVwZW5kaW5nIG9uIHRoZSB2YWx1ZSBvZiB0aGUgbWFzay4KKyAgICAobm90ZSB0aGUgbGVhZGluZyBzcGFjZSkKKyAgICAiIiIKKyAgICBpZiBpcCA9PSAnMC4wLjAuMCcgYW5kIG1hc2sgPT0gJzI1NS4yNTUuMjU1LjI1NSc6CisgICAgICAgIHJldHVybiAnYW55ICcKKyAgICBuX21hc2sgPSBpbmV0X2F0b24obWFzaykKKyAgICBpZiBpc19wb3dlcl9vZl90d28obl9tYXNrICsgMSk6CisgICAgICAgIHJldHVybiAiJXMvJWQgIiAlIChpcCwgbWFza190b19jaWRyKG5fbWFzaykpCisgICAgcmV0dXJuICIlcyAlcyAiICUgKGlwLCBtYXNrKQorCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIGlwX2ludmVydF9uZXRtYXNrKHZhbHVlKToKKyAgICBzcGxpdF9ieXRlcyA9IHZhbHVlLnNwbGl0KCcuJykKKyAgICByZXR1cm4gIiVzLiVzLiVzLiVzIiAlICgyNTUtaW50KHNwbGl0X2J5dGVzWzBdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUtaW50KHNwbGl0X2J5dGVzWzFdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUtaW50KHNwbGl0X2J5dGVzWzJdKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAyNTUtaW50KHNwbGl0X2J5dGVzWzNdKSkKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgaXBfYW5kX25lZ19tYXNrKGlwLCBtYXNrKToKKyAgICAiIiIKKyAgICBUaGUgdHdvIHZhbHVlcyBhcmUgZGlzcGxheWVkIGVpdGhlciBhcyAnYW55JyBvciBhcyBpbiBjaWRyIGZvcm1hdAorICAgIG9yIGFzIGEgaXAvbWFzayBkZXBlbmRpbmcgb24gdGhlIHZhbHVlIG9mIHRoZSBtYXNrLgorICAgIChub3RlIHRoZSBsZWFkaW5nIHNwYWNlKS4gIFRoaXMgaXMgZGlmZmVyZW50IGZyb20gaXBfYW5kX21hc2tfbnRvYQorICAgIHNpbmNlIHRoZSBtYXNrIG5lZWQgdG8gYmUgcHJpbnRlZCBhbiBhbiBpbnZlcnRlZCBtYXNrIHdoZW4gdGhlCisgICAgbWFzayBpcyBkaXNwbGF5ZWQKKyAgICAiIiIKKyAgICBpZiBpcCA9PSAnMC4wLjAuMCcgYW5kIG1hc2sgPT0gJzI1NS4yNTUuMjU1LjI1NSc6CisgICAgICAgIHJldHVybiAnYW55ICcKKyAgICBuX21hc2sgPSBpbmV0X2F0b24obWFzaykKKyAgICBpZiBpc19wb3dlcl9vZl90d28obl9tYXNrICsgMSk6CisgICAgICAgIGNpZHIgPSBtYXNrX3RvX2NpZHIobl9tYXNrKQorICAgICAgICBpZiBjaWRyOgorICAgICAgICAgICAgcmV0dXJuICIlcy8lZCAiICUgKGlwLCBtYXNrX3RvX2NpZHIobl9tYXNrKSkKKyAgICAgICAgcmV0dXJuICIlcyAiICUgaXAKKyAgICByZXR1cm4gIiVzICVzICIgJSAoaXAsIGlwX2ludmVydF9uZXRtYXNrKG1hc2spKQorCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworU0lOR0xFUVVPVEVfUkUgPSByZS5jb21waWxlKHIiJyIpCitET1VCTEVRVU9URV9SRSA9IHJlLmNvbXBpbGUociciJykKK1dISVRFU1BBQ0VfUkUgPSByZS5jb21waWxlKHIiXHMiKQorCitDT01NQU5EX0RQSURfUkUgPSByZS5jb21waWxlKHInXigoW0EtRmEtZlxkXSl7Mn06Pyl7N31bQS1GYS1mXGRdezJ9JCcpCitDT01NQU5EX1NFUEFSQVRPUlNfUkUgPSByZS5jb21waWxlKHInWz47fF0nKSAjIFhYWCBiZWxvbmdzIGluIHNvbWUgZ2xvYmFsCisKKworZGVmIHF1b3RlX3N0cmluZyh2YWx1ZSk6CisgICAgIiIiCisgICAgUmV0dXJuIGEgcXVvdGVkIHZlcnNpb24gb2YgdGhlIHN0cmluZyB3aGVuIHRoZXJlJ3MgaW1iZWRkZWQKKyAgICBzcGFjZXMuICBXb3JzdCBjYXNlIGlzIHdoZW4gdGhlIHN0cmluZyBoYXMgYm90aCBzaW5nbGUgYW5kCisgICAgZG91YmxlIHF1b3Rlcy4KKyAgICAiIiIKKworICAgIGlmIFNJTkdMRVFVT1RFX1JFLnNlYXJjaCh2YWx1ZSk6CisgICAgICAgIGlmIERPVUJMRVFVT1RFX1JFLnNlYXJjaCh2YWx1ZSk6CisgICAgICAgICAgICBuZXdfdmFsdWUgPSBbXQorICAgICAgICAgICAgZm9yIGMgaW4gdmFsdWU6CisgICAgICAgICAgICAgICAgaWYgYyA9PSAnIic6CisgICAgICAgICAgICAgICAgICAgIG5ld192YWx1ZS5hcHBlbmQoIlxcIikKKyAgICAgICAgICAgICAgICBuZXdfdmFsdWUuYXBwZW5kKGMpCisgICAgICAgICAgICByZXR1cm4gJycuam9pbihuZXdfdmFsdWUpCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gJyIlcyInICUgdmFsdWUKKyAgICBlbGlmIChET1VCTEVRVU9URV9SRS5zZWFyY2godmFsdWUpIG9yCisgICAgICAgICAgV0hJVEVTUEFDRV9SRS5zZWFyY2godmFsdWUpIG9yCisgICAgICAgICAgQ09NTUFORF9TRVBBUkFUT1JTX1JFLnNlYXJjaCh2YWx1ZSkpOgorICAgICAgICByZXR1cm4gIiclcyciICUgdmFsdWUKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gdmFsdWUKKworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBhZGRfZGVsaW0oc3RyaW5nc19saXN0LCBkZWxpbSk6CisgICAgIiIiCisgICAgQWRkICdkZWxpbScgdG8gZWFjaCBzdHJpbmcgZW50cnkgaW4gdGhlIGxpc3QsIHR5cGljYWxseSB1c2VkIHRvIGFkZCBhIHNwYWNlCisgICAgdG8gY29tcGxldGlvbiBjaG9pY2VzIGZvciBlbnRyaWVzIHdoaWNoIGFyZW4ndCBwcmVmaXhlcy4KKyAgICB3b3JkIG1lYW4gYSAKKyAgICAKKyAgICAiIiIKKyAgICByZXR1cm4gW3N0cih4KSArIGRlbGltIGZvciB4IGluIHN0cmluZ3NfbGlzdF0KKworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBjb252ZXJ0X2Nhc2UoY2FzZSwgdmFsdWUpOgorICAgICIiIgorICAgIENvbnZlcnQgdmFsdWUgdG8gdGhlIHJlcXVlc3RlZCBjYXNlCisgICAgIiIiCisgICAgaWYgY2FzZSA9PSBOb25lOgorICAgICAgICByZXR1cm4gdmFsdWUKKyAgICBlbGlmIGNhc2UgPT0gJ2xvd2VyJzoKKyAgICAgICAgcmV0dXJuIHZhbHVlLmxvd2VyKCkKKyAgICBlbGlmIGNhc2UgPT0gJ3VwcGVyJzoKKyAgICAgICAgcmV0dXJuIHZhbHVlLnVwcGVyKCkKKyAgICByZXR1cm4gdmFsdWUKKworCitUQUlMX0lOVF9SRSA9IHJlLmNvbXBpbGUocideKC4qW14wLTldKShcZCspJCcpCisKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgdHJhaWxpbmdfaW50ZWdlcl9jbXAoeCx5KToKKyAgICAiIiIKKyAgICBzb3J0ZWQoKSBjb21wYXJpc29uIGZ1bmN0aW9uLgorCisgICAgVXNlZCB3aGVuIHRoZSB0d28ga2V5cyBtYXkgcG9zc2libHkgaGF2ZSB0cmFpbGluZyBudW1iZXJzLAorICAgIGlmIHRoZXNlIGFyZSBjb21wYXJlZCB1c2luZyBhIHR5cGljYWwgc29ydCwgdGhlbiB0aGUgdHJhaWxpbmcKKyAgICBudW1iZXJzIHdpbGwgYmUgc29ydGVkIGFscGhhYmV0aWNhbGx5LCBub3QgbnVtZXJpY2FsbHkuICBUaGlzCisgICAgaXMgbW9zdCBvYnZpb3VzIHdoZW4gaW50ZXJmYWNlcywgZm9yIGV4YW1wbGUgRXRoMSwgRXRoMTAsIEV0aDIKKyAgICBhcmUgc29ydGVkLiAgIEFscGhhYmV0aWNhbGx5IHRoZSBvcmRlciBpcyBhcyBhbHJlYWR5IHNob3duLCBidXQKKyAgICB0aGUgZGVzaXJlZCBzb3J0IG9yZGVyIGlzIEV0aDEsIEV0aDIsIEV0aDEwCisgICAgIiIiCisKKyAgICBkZWYgbGFzdF9kaWdpdCh2YWx1ZSk6CisgICAgICAgICMgb25seSBpbnRlcmVzdGVkIGluIHNlcXVlbmNlcyB0YWlsaW5nIGEgZGlnaXQsIHdoZXJlCisgICAgICAgICMgdGhlIGZpcnN0IGNoYXJjdGVyIGlzbid0IGEgZGlnaXQsIHVzZWQgdG8gc2lkZXN0ZXAgdGFpbF9pbnQgcmUKKyAgICAgICAgaWYgbGVuKHZhbHVlKSA+PSAyOgorICAgICAgICAgICAgbGFzdF9jaGFyID0gb3JkKHZhbHVlWy0xXSkKKyAgICAgICAgICAgIGlmIGxhc3RfY2hhciA+PSBvcmQoJzAnKSBhbmQgbGFzdF9jaGFyIDw9IG9yZCgnOScpOgorICAgICAgICAgICAgICAgIGZpcnN0X2NoYXIgPSBvcmQodmFsdWVbMF0pCisgICAgICAgICAgICAgICAgaWYgZmlyc3RfY2hhciA8IG9yZCgnMCcpIG9yIGZpcnN0X2NoYXIgPiBvcmQoJzknKToKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFRydWUKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICBpZiB0eXBlKHgpID09IGludCBhbmQgdHlwZSh5KSA9PSBpbnQ6CisgICAgICAgIHJldHVybiBjbXAoeCx5KQorICAgIGlmIGxhc3RfZGlnaXQoeCkgYW5kIGxhc3RfZGlnaXQoeSk6CisgICAgICAgIHhfbSA9IFRBSUxfSU5UX1JFLm1hdGNoKHgpCisgICAgICAgIHlfbSA9IFRBSUxfSU5UX1JFLm1hdGNoKHkpCisgICAgICAgIGMgPSBjbXAoeF9tLmdyb3VwKDEpLCB5X20uZ3JvdXAoMSkpCisgICAgICAgIGlmIGM6CisgICAgICAgICAgICByZXR1cm4gYworICAgICAgICBjID0gY21wKGludCh4X20uZ3JvdXAoMikpLCBpbnQoeV9tLmdyb3VwKDIpKSkKKyAgICAgICAgaWYgYzoKKyAgICAgICAgICAgIHJldHVybiBjCisgICAgZWxzZToKKyAgICAgICAgYyA9IGNtcCh0cnlfaW50KHgpLCB0cnlfaW50KHkpKQorICAgICAgICBpZiBjICE9IDA6CisgICAgICAgICAgICByZXR1cm4gYzsKKworICAgIHJldHVybiAwCisKK0NPTVBMRVRJT05fVEFJTF9JTlRfUkUgPSByZS5jb21waWxlKHInXihbQS1aYS16MC05LV0qW14wLTldKShcZCspICQnKQorCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBjb21wbGV0aW9uX3RyYWlsaW5nX2ludGVnZXJfY21wKHgseSk6CisgICAgIiIiCisgICAgc29ydGVkKCkgY29tcGFyaXNvbiBmdW5jdGlvbi4KKworICAgIFRoaXMgaXMgdXNlZCBmb3IgY29tcGxldGlvbiB2YWx1ZXMgc29ydGluZy4KKworICAgIFRoaXMgZnVuY3Rpb24gZGlmZmVycyBmcm9tIHRyYWlsaW5nX2ludGVnZXJfY21wLCBzaW5jZSBmb3IgY29tcGxldGlvbnMsCisgICAgdGhlIGxhc3QgY2hhcmFjdGVyIG1heSBiZSBhIHNwYWNlIHRvIGluZGljYXRlIHRoYXQgdGhlIHNlbGVjdGlvbiBpcworICAgIGNvbXBsZXRlLiAgSWYgdGhlIGxhc3QgY2hhcmFjdGVyIGlzIGEgc3BhY2UsIHRoZSBjaGFyYWN0ZXIgYWhlYWQKKyAgICBvZiBpdCBpcyB1c2VkIGluc3RlYWQuCisgICAgIiIiCisKKyAgICB4X3YgPSB4CisgICAgaWYgaXNpbnN0YW5jZSh4X3YsIHR1cGxlKToKKyAgICAgICAgeF92ID0geF92WzBdCisgICAgaWYgeFstMV0gPT0gJyAnOgorICAgICAgICB4X3YgPSB4WzotMV0KKworICAgIHlfdiA9IHkKKyAgICBpZiBpc2luc3RhbmNlKHlfdiwgdHVwbGUpOgorICAgICAgICB5X3YgPSB5X3ZbMF0KKyAgICBpZiB5Wy0xXSA9PSAnICc6CisgICAgICAgIHlfdiA9IHlbOi0xXQorICAgIHJldHVybiB0cmFpbGluZ19pbnRlZ2VyX2NtcCh4X3YsIHlfdikKKworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK0FCRVJSQU5UX1BMVVJBTF9NQVAgPSB7CisgICAgJ2FwcGVuZGl4JzogJ2FwcGVuZGljZXMnLAorICAgICdiYXJyYWNrcyc6ICdiYXJyYWNrcycsCisgICAgJ2NhY3R1cyc6ICdjYWN0aScsCisgICAgJ2NoaWxkJzogJ2NoaWxkcmVuJywKKyAgICAnY3JpdGVyaW9uJzogJ2NyaXRlcmlhJywKKyAgICAnZGVlcic6ICdkZWVyJywKKyAgICAnZWNobyc6ICdlY2hvZXMnLAorICAgICdlbGYnOiAnZWx2ZXMnLAorICAgICdlbWJhcmdvJzogJ2VtYmFyZ29lcycsCisgICAgJ2ZvY3VzJzogJ2ZvY2knLAorICAgICdmdW5ndXMnOiAnZnVuZ2knLAorICAgICdnb29zZSc6ICdnZWVzZScsCisgICAgJ2hlcm8nOiAnaGVyb2VzJywKKyAgICAnaG9vZic6ICdob292ZXMnLAorICAgICdpbmRleCc6ICdpbmRpY2VzJywKKyAgICAna25pZmUnOiAna25pdmVzJywKKyAgICAnbGVhZic6ICdsZWF2ZXMnLAorICAgICdsaWZlJzogJ2xpdmVzJywKKyAgICAnbWFuJzogJ21lbicsCisgICAgJ21vdXNlJzogJ21pY2UnLAorICAgICdudWNsZXVzJzogJ251Y2xlaScsCisgICAgJ3BlcnNvbic6ICdwZW9wbGUnLAorICAgICdwaGVub21lbm9uJzogJ3BoZW5vbWVuYScsCisgICAgJ3BvdGF0byc6ICdwb3RhdG9lcycsCisgICAgJ3NlbGYnOiAnc2VsdmVzJywKKyAgICAnc3lsbGFidXMnOiAnc3lsbGFiaScsCisgICAgJ3RvbWF0byc6ICd0b21hdG9lcycsCisgICAgJ3RvcnBlZG8nOiAndG9ycGVkb2VzJywKKyAgICAndmV0byc6ICd2ZXRvZXMnLAorICAgICd3b21hbic6ICd3b21lbicsCisgICAgfQorCitWT1dFTFMgPSBzZXQoJ2FlaW91JykKKworZGVmIHBsdXJhbGl6ZShzaW5ndWxhcik6CisgICAgIiIiUmV0dXJuIHBsdXJhbCBmb3JtIG9mIGdpdmVuIGxvd2VyY2FzZSBzaW5ndWxhciB3b3JkIChFbmdsaXNoIG9ubHkpLiBCYXNlZCBvbgorICAgIEFjdGl2ZVN0YXRlIHJlY2lwZSBodHRwOi8vY29kZS5hY3RpdmVzdGF0ZS5jb20vcmVjaXBlcy80MTMxNzIvCisgICAgCisgICAgPj4+IHBsdXJhbGl6ZSgnJykKKyAgICAnJworICAgID4+PiBwbHVyYWxpemUoJ2dvb3NlJykKKyAgICAnZ2Vlc2UnCisgICAgPj4+IHBsdXJhbGl6ZSgnZG9sbHknKQorICAgICdkb2xsaWVzJworICAgID4+PiBwbHVyYWxpemUoJ2dlbml1cycpCisgICAgJ2dlbmlpJworICAgID4+PiBwbHVyYWxpemUoJ2pvbmVzJykKKyAgICAnam9uZXNlcycKKyAgICA+Pj4gcGx1cmFsaXplKCdwYXNzJykKKyAgICAncGFzc2VzJworICAgID4+PiBwbHVyYWxpemUoJ3plcm8nKQorICAgICd6ZXJvcycKKyAgICA+Pj4gcGx1cmFsaXplKCdjYXNpbm8nKQorICAgICdjYXNpbm9zJworICAgID4+PiBwbHVyYWxpemUoJ2hlcm8nKQorICAgICdoZXJvZXMnCisgICAgPj4+IHBsdXJhbGl6ZSgnY2h1cmNoJykKKyAgICAnY2h1cmNoZXMnCisgICAgPj4+IHBsdXJhbGl6ZSgneCcpCisgICAgJ3hzJworICAgID4+PiBwbHVyYWxpemUoJ2NhcicpCisgICAgJ2NhcnMnCisKKyAgICAiIiIKKyAgICBpZiBub3Qgc2luZ3VsYXI6CisgICAgICAgIHJldHVybiAnJworICAgIHBsdXJhbCA9IEFCRVJSQU5UX1BMVVJBTF9NQVAuZ2V0KHNpbmd1bGFyKQorICAgIGlmIHBsdXJhbDoKKyAgICAgICAgcmV0dXJuIHBsdXJhbAorICAgIHJvb3QgPSBzaW5ndWxhcgorICAgIHRyeToKKyAgICAgICAgaWYgc2luZ3VsYXJbLTFdID09ICd5JyBhbmQgc2luZ3VsYXJbLTJdIG5vdCBpbiBWT1dFTFM6CisgICAgICAgICAgICByb290ID0gc2luZ3VsYXJbOi0xXQorICAgICAgICAgICAgc3VmZml4ID0gJ2llcycKKyAgICAgICAgZWxpZiBzaW5ndWxhclstMV0gPT0gJ3MnOgorICAgICAgICAgICAgaWYgc2luZ3VsYXJbLTJdIGluIFZPV0VMUzoKKyAgICAgICAgICAgICAgICBpZiBzaW5ndWxhclstMzpdID09ICdpdXMnOgorICAgICAgICAgICAgICAgICAgICByb290ID0gc2luZ3VsYXJbOi0yXQorICAgICAgICAgICAgICAgICAgICBzdWZmaXggPSAnaScKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICByb290ID0gc2luZ3VsYXJbOi0xXQorICAgICAgICAgICAgICAgICAgICBzdWZmaXggPSAnc2VzJworICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzdWZmaXggPSAnZXMnCisgICAgICAgIGVsaWYgc2luZ3VsYXJbLTI6XSBpbiAoJ2NoJywgJ3NoJyk6CisgICAgICAgICAgICBzdWZmaXggPSAnZXMnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBzdWZmaXggPSAncycKKyAgICBleGNlcHQgSW5kZXhFcnJvcjoKKyAgICAgICAgc3VmZml4ID0gJ3MnCisgICAgcGx1cmFsID0gcm9vdCArIHN1ZmZpeAorICAgIHJldHVybiBwbHVyYWwKZGlmZiAtLWdpdCBhL2NsaS92YWxpZGF0ZS9pbnB1dF9maWxlcy9saW50IGIvY2xpL3ZhbGlkYXRlL2lucHV0X2ZpbGVzL2xpbnQKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uODIyOTUyMAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS92YWxpZGF0ZS9pbnB1dF9maWxlcy9saW50CkBAIC0wLDAgKzEsNiBAQAorZW5hYmxlCitjb25maWcKK2ludGVybmFsCitsaW50CitlbmQKKwpkaWZmIC0tZ2l0IGEvY2xpL3ZhbGlkYXRlL2lucHV0X2ZpbGVzL3Blcm11dGUgYi9jbGkvdmFsaWRhdGUvaW5wdXRfZmlsZXMvcGVybXV0ZQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwLi4yNzQ1YjgyCi0tLSAvZGV2L251bGwKKysrIGIvY2xpL3ZhbGlkYXRlL2lucHV0X2ZpbGVzL3Blcm11dGUKQEAgLTAsMCArMSw2IEBACitlbmFibGUKK2NvbmZpZworaW50ZXJuYWwKK3Blcm11dGUKK2VuZAorCmRpZmYgLS1naXQgYS9jbGkvdmFsaWRhdGUvaW5wdXRfZmlsZXMvcXVhbGlmeSBiL2NsaS92YWxpZGF0ZS9pbnB1dF9maWxlcy9xdWFsaWZ5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLjFmNGI0YzMKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvdmFsaWRhdGUvaW5wdXRfZmlsZXMvcXVhbGlmeQpAQCAtMCwwICsxLDYgQEAKK2VuYWJsZQorY29uZmlnCitpbnRlcm5hbAorcXVhbGlmeQorZW5kCisKZGlmZiAtLWdpdCBhL2NsaS92YWxpZGF0ZS92YWxpZGF0b3IucHkgYi9jbGkvdmFsaWRhdGUvdmFsaWRhdG9yLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmUzZDU1OTcKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvdmFsaWRhdGUvdmFsaWRhdG9yLnB5CkBAIC0wLDAgKzEsNzAgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKGMpIDIwMTMgQmlnIFN3aXRjaCBOZXR3b3JrcywgSW5jLgorIworIyBMaWNlbnNlZCB1bmRlciB0aGUgRWNsaXBzZSBQdWJsaWMgTGljZW5zZSwgVmVyc2lvbiAxLjAgKHRoZQorIyAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCisjIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorIworIyAgICAgIGh0dHA6Ly93d3cuZWNsaXBzZS5vcmcvbGVnYWwvZXBsLXYxMC5odG1sCisjCisjIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKyMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyMgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yCisjIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZworIyBwZXJtaXNzaW9ucyBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisjCisKK2ltcG9ydCBvcworaW1wb3J0IHN1YnByb2Nlc3MKK2ltcG9ydCByZQorCitWQUxJREFURV9ESVIgPSBvcy5wYXRoLmRpcm5hbWUob3MucGF0aC5yZWFscGF0aChfX2ZpbGVfXykpCitDTElfUEFUSCA9IG9zLnBhdGgucmVhbHBhdGgob3MucGF0aC5qb2luKFZBTElEQVRFX0RJUiwgIi4uL2NsaS5weSIpKQorSU5QVVRfRElSID0gb3MucGF0aC5qb2luKFZBTElEQVRFX0RJUiwgImlucHV0X2ZpbGVzIikKK09VVFBVVF9ESVIgPSAiY2xpX3ZhbGlkYXRlIgorCitkZWYgdmFsaWRhdG9yKGlucHV0X3BhdGgsIG91dHB1dF9wYXRoKToKKyAgICBwcmludCAiVmFsaWRhdG9yIHN0YXJ0ZWQuIgorICAgIHByaW50ICJJbnB1dCBwYXRoOiAlcyIgJSBpbnB1dF9wYXRoCisgICAgcHJpbnQgIk91dHB1dCBwYXRoOiAlcyIgJSBvdXRwdXRfcGF0aAorICAgIHN1YnByb2Nlc3MuY2FsbCgicHl0aG9uICVzIDwgJXMgPiAlcyIgJSAoQ0xJX1BBVEgsIGlucHV0X3BhdGgsIG91dHB1dF9wYXRoKSwgc2hlbGw9VHJ1ZSkKKworCitkZWYgc2FuaXRpemUocGF0aCk6CisgICAgZmlsdGVycyA9IFtyIl5bXjw+IygpXSsoPiAuKikiLCByIl5bXjw+IygpXSsoIyAuKikiLCByIl5bXjw+IygpXSsoXChbXigpXStcKSMgLiopIiwKKyAgICAgICAgICAgICAgIHIiXk5lZWQgZXJyb3IiLCByIl5TRE5TaGVsbCIsIHIiXmRlZmF1bHQgY29udHJvbGxlcjoiLAorICAgICAgICAgICAgICAgciJeUEVSTVVURSIsIHIiXlNVQk1PREUiLCByIl5FeGl0aW5nIl0KKyAgICBwYXR0ZXJucyA9IFtyZS5jb21waWxlKGYpIGZvciBmIGluIGZpbHRlcnNdCisgICAgdG1wX3BhdGggPSAiJXMudG1wIiAlIHBhdGgKKyAgICBmMSA9IG9wZW4ocGF0aCkKKyAgICBmMiA9IG9wZW4odG1wX3BhdGgsICJ3IikKKworICAgIGRlZiBtYXRjaFJlZ2V4TGlzdChjb21waWxlZFJlZ2V4TGlzdCwgbGluZSk6CisgICAgICAgIGZvciBjciBpbiBjb21waWxlZFJlZ2V4TGlzdDoKKyAgICAgICAgICAgIGlmIGNyLnNlYXJjaChsaW5lKToKKyAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQorICAgICAgICByZXR1cm4gRmFsc2UKKworICAgIGZvciBsaW5lIGluIGYxOgorICAgICAgICBpZiBtYXRjaFJlZ2V4TGlzdChwYXR0ZXJucywgbGluZSk6CisgICAgICAgICAgICBjb250aW51ZQorICAgICAgICBmMi53cml0ZShsaW5lKQorICAgIGYxLmNsb3NlKCkKKyAgICBmMi5jbG9zZSgpCisgICAgb3MucmVtb3ZlKHBhdGgpCisgICAgb3MucmVuYW1lKHRtcF9wYXRoLCBwYXRoKQorCisKK2RlZiBtYWluKCk6CisgICAgc3VicHJvY2Vzcy5jYWxsKFsicm0iLCAiLXJmIiwgT1VUUFVUX0RJUl0pCisgICAgc3VicHJvY2Vzcy5jYWxsKFsibWtkaXIiLCAiLXAiLCBPVVRQVVRfRElSXSkKKyAgICBmb3IgZiBpbiBvcy5saXN0ZGlyKElOUFVUX0RJUik6CisgICAgICAgIGluX3BhdGggPSBvcy5wYXRoLmpvaW4oSU5QVVRfRElSLCBmKQorICAgICAgICBvdXRfcGF0aCA9IG9zLnBhdGguam9pbihPVVRQVVRfRElSLCAiJXNfb3V0cHV0IiAlIGYpCisgICAgICAgIHZhbGlkYXRvcihpbl9wYXRoLCBvdXRfcGF0aCkKKyAgICAgICAgc2FuaXRpemUob3V0X3BhdGgpCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgbWFpbigpCisKZGlmZiAtLWdpdCBhL2NsaS92ZW5kb3IucHkgYi9jbGkvdmVuZG9yLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAuLmNhNzhjMDEKLS0tIC9kZXYvbnVsbAorKysgYi9jbGkvdmVuZG9yLnB5CkBAIC0wLDAgKzEsNzYgQEAKKyMhL3Vzci9iaW4vcHl0aG9uCisjCisjIENvcHlyaWdodCAoYykgMjAxMCwyMDExLDIwMTIsMjAxMyBCaWcgU3dpdGNoIE5ldHdvcmtzLCBJbmMuCisjCisjIExpY2Vuc2VkIHVuZGVyIHRoZSBFY2xpcHNlIFB1YmxpYyBMaWNlbnNlLCBWZXJzaW9uIDEuMCAodGhlCisjICJMaWNlbnNlIik7IHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKKyMgTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisjCisjICAgICAgaHR0cDovL3d3dy5lY2xpcHNlLm9yZy9sZWdhbC9lcGwtdjEwLmh0bWwKKyMKKyMgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorIyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorIyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IKKyMgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nCisjIHBlcm1pc3Npb25zIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KKyMKKworIworCisjCisjICB2ZW5kb3IucHkgLSBwYXJzZSBPVUkgaW5mb3JtYXRpb24gYW5kIGxvb2sgdXAgdmVuZG9ycworCitpbXBvcnQgcmUKK2ltcG9ydCBvcworZnJvbSBwa2dfcmVzb3VyY2VzIGltcG9ydCByZXNvdXJjZV9zdHJlYW0KKworY2xhc3MgVmVuZG9yREIoKToKKyAgICAKKyAgICB2ZW5kb3JzID0ge30KKyAgICAKKyAgICBkZWYgaW5pdChzZWxmKToKKyAgICAgICAgICAgIGYgPSByZXNvdXJjZV9zdHJlYW0oX19uYW1lX18sICdkYXRhL291aS50eHQnKQorICAgICAgICAgICAgaWYgZiBpcyBOb25lOgorICAgICAgICAgICAgICAgIHAgPSBvcy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSwgImRhdGEiLCAib3VpLnR4dCIpCisgICAgICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKHApOgorICAgICAgICAgICAgICAgICAgICBwcmludCAiV2FybmluZzogVmVuZG9yIE9VSSBmaWxlIGNvdWxkIG5vdCBiZSBsb2NhdGVkISIKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuCisgICAgICAgICAgICAgICAgZiA9IG9wZW4ocCkKKworICAgICAgICAgICAgd2hpbGUgVHJ1ZToKKyAgICAgICAgICAgICAgICBsID0gZi5yZWFkbGluZSgpCisgICAgICAgICAgICAgICAgaWYgbGVuKGwpID09MDoKKyAgICAgICAgICAgICAgICAgICAgYnJlYWsgIyBFT0YKKyAgICAgICAgICAgICAgICBpZiBsLmNvdW50KCIoYmFzZSAxNikiKToKKyAgICAgICAgICAgICAgICAgICAgb3VpID0gbFswOjZdCisgICAgICAgICAgICAgICAgICAgIHZlbmRvciA9IGxbMjI6XQorICAgICAgICAgICAgICAgICAgICBzZWxmLmFkZF92ZW5kb3Iob3VpLHZlbmRvcikKKyAgICAgICAgICAgICAgICAKKyAgICBkZWYgYWRkX3ZlbmRvcihzZWxmLCBvdWksIHZlbmRvcik6CisgICAgICAgIG91aSA9IG91aS5zdHJpcCgpCisgICAgICAgIHZlbmRvciA9IHZlbmRvci5zdHJpcCgpCisgICAgICAgIGlmIGxlbihvdWkpID09IDYgYW5kIGxlbih2ZW5kb3IpID4gMToKKyAgICAgICAgICAgIHNlbGYudmVuZG9yc1tvdWldPXZlbmRvcgorICAgICAgICAKKyAgICBkZWYgZ2V0X3ZlbmRvcihzZWxmLCBtYWMpOgorICAgICAgICBpZiBsZW4obWFjKSA8IDY6CisgICAgICAgICAgICByZXR1cm4gInVua25vd24iCisgICAgICAgIG1hYyA9IG1hYy51cHBlcigpICAjIFRvIHVwcGVyIGNhc2UKKyAgICAgICAgbWFjID0gcmUuc3ViKCc6JywnJyxtYWMpICMgZmlsdGVyIGFueSAiOiIKKyAgICAgICAgbWFjID0gbWFjWzA6Nl0KKyAgICAKKyAgICAgICAgIyBTdHJpcCBicm9hZGNhc3QgYW5kIGxvY2FsIGJpdAorICAgICAgICBiID0gaGV4KGludChtYWNbMToyXSwxNikgJiBpbnQoJzExMDAnLDIpKVsyOjNdCisgICAgICAgIG1hYyA9IG1hY1swOjFdK2IudXBwZXIoKSttYWNbMjo2XQorICAgICAgICAKKyAgICAgICAgaWYgbWFjIGluIHNlbGYudmVuZG9yczoKKyAgICAgICAgICAgIHJldHVybiBzZWxmLnZlbmRvcnNbbWFjXQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcmV0dXJuICJVbmtub3duIgorICAgICAgICAKKyMgU2hvdyBhbGwgcmVjb3JkcworCitpZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgorICAgIGRiID0gVmVuZG9yREIoKQorICAgIGRiLmluaXQoKQorICAgIHByaW50IGRiLnZlbmRvcnMKZGlmZiAtLWdpdCBhL2NsaS92bnN3LnB5IGIvY2xpL3Zuc3cucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMC4uMzNhMDk0OAotLS0gL2Rldi9udWxsCisrKyBiL2NsaS92bnN3LnB5CkBAIC0wLDAgKzEsMjM5IEBACisjCisjIENvcHlyaWdodCAoYykgMjAxMiwyMDEzIEJpZyBTd2l0Y2ggTmV0d29ya3MsIEluYy4KKyMKKyMgTGljZW5zZWQgdW5kZXIgdGhlIEVjbGlwc2UgUHVibGljIExpY2Vuc2UsIFZlcnNpb24gMS4wICh0aGUKKyMgIkxpY2Vuc2UiKTsgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQorIyBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyMKKyMgICAgICBodHRwOi8vd3d3LmVjbGlwc2Uub3JnL2xlZ2FsL2VwbC12MTAuaHRtbAorIworIyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisjIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisjIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorIyBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcKKyMgcGVybWlzc2lvbnMgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgorIworCitpbXBvcnQgcmUKK2ltcG9ydCB1dGlmCisKKyMKKyMgVk5TVyAtLSBhbnkgZnVuY3Rpb25zIHVzZWQgdG8gc3VwcG9ydCB2bnMKKyMKKworZGVmIGluaXRfdm5zdyhicywgbW9kaSk6CisgICAgZ2xvYmFsIHNkbnNoLCBtaQorICAgIHNkbnNoID0gYnMKKyAgICBtaSA9IG1vZGkKKworCitNQUNfUkUgPSByZS5jb21waWxlKHInXigoW0EtRmEtZlxkXSl7Mn06Pyl7NX1bQS1GYS1mXGRdezJ9JCcpCitESUdJVFNfUkUgPSByZS5jb21waWxlKHInXlxkKyQnKQorCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIGNyZWF0ZV9kZWZhdWx0X3ZucygpOgorICAgICIiIgorICAgIEluIHNvbWUgc2l0dWF0aW9ucywgZm9yIGV4YW1wbGUsIHdoZW4gYSBibGFuayBjYXNzYW5kcmEgZGIvc3RvcmUKKyAgICBpcyBoYXZpbmcgYSBydW5uaW5nLWNvbmZpZyBwdXNoZWQuCisgICAgIiIiCisgICAgKGVycm9yLCBjcmVhdGVkKSA9IHNkbnNoLmZpbmRfb3JfY3JlYXRlX3Jvdygndm5zLWRlZmluaXRpb24nLCAnZGVmYXVsdCcpCisgICAgaWYgZXJyb3I6CisgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgcmV0dXJuIFRydWUKKworCisjCisjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisKK2RlZiBhc3NvY2lhdGVfZm9yZWlnbl9rZXlfZm9yX3Zuc19pbnRlcmZhY2UoY3JlYXRlX2RpY3QpOgorICAgICIiIgorICAgIEFzc29jaWF0aW9uIG9mIHRoZSBmb3JlaWduIGtleSAncnVsZScgZm9yIHZucy1pbnRlcmZhY2VzIHJlcXVpcmVzIHNvbWUKKyAgICBzdWJzdGFudGlhbCB3b3JrLCBhbG9uZyB3aXRoIGFkZGl0aW9uYWwgdmFsaWRhdGlvbgorICAgICIiIgorCisgICAgIyBkZXRlcm1pbmUgdGhlIGJlc3QgY2FuZGlkYXRlIGZvciB0aGUgY3VycmVudCBydWxlCisgICAgaWYgbm90ICdpbnRlcmZhY2UnIGluIGNyZWF0ZV9kaWN0IG9yIG5vdCAndm5zJyBpbiBjcmVhdGVfZGljdDoKKyAgICAgICAgcmV0dXJuIGNyZWF0ZV9kaWN0CisgICAgcnVsZSA9IE5vbmUKKyAgICBpdGVtcyA9IGNyZWF0ZV9kaWN0WydpbnRlcmZhY2UnXS5zcGxpdCgnLycpCisgICAgbWFjID0gTm9uZQorICAgIHBvcnQgPSBOb25lCisgICAgaWYgbGVuKGl0ZW1zKSA9PSAxOgorICAgICAgICBpZiBpdGVtc1swXS5zdGFydHN3aXRoKCdFdGgnKToKKyAgICAgICAgICAgIHJ1bGUgPSBpdGVtc1swXVszOl0KKyAgICAgICAgZWxpZiBpdGVtc1swXS5zdGFydHN3aXRoKCdWRXRoJyk6CisgICAgICAgICAgICBydWxlID0gaXRlbXNbMF1bNDpdCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBydWxlID0gaXRlbXNbMF0KKyAgICBlbGlmIGxlbihpdGVtcykgPT0gMiBhbmQgTUFDX1JFLm1hdGNoKGl0ZW1zWzFdKToKKyAgICAgICAgbWFjID0gaXRlbXNbMV0KKyAgICAgICAgaWYgaXRlbXNbMF0uc3RhcnRzd2l0aCgnVkV0aCcpOgorICAgICAgICAgICAgcnVsZSA9IGl0ZW1zWzBdWzQ6XQorICAgICAgICBlbHNlOgorICAgICAgICAgICAgcnVsZSA9IGl0ZW1zWzBdCisgICAgZWxpZiBsZW4oaXRlbXMpID09IDIgYW5kIERJR0lUU19SRS5tYXRjaChpdGVtc1sxXSk6CisgICAgICAgIHBvcnQgPSBpdGVtc1sxXQorICAgICAgICBpZiBpdGVtc1swXS5zdGFydHN3aXRoKCdFdGgnKToKKyAgICAgICAgICAgIHJ1bGUgPSBpdGVtc1swXVszOl0KKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJ1bGUgPSBpdGVtc1swXQorICAgIGVsc2U6CisgICAgICAgICMgQXNzdW1lIHRoaXMgaXMgc29tZSBhYnN0cmFjdCBwb3J0IG5hbWUKKyAgICAgICAgcG9ydCA9IGl0ZW1zWzFdCisgICAgICAgIHJ1bGUgPSBpdGVtc1swXQorCisgICAgaWYgbm90IHJ1bGU6CisgICAgICAgIHJldHVybiBjcmVhdGVfZGljdAorCisgICAgaWYgcnVsZSBhbmQgcnVsZSA9PSAnZGVmYXVsdCc6CisgICAgICAgIGlmIG5vdCBjcmVhdGVfZGVmYXVsdF92bnMoKToKKyAgICAgICAgICAgIHJldHVybgorCisgICAgIyB0cnkgdG8gbG9vayB1cCB0aGUgcGFydGljdWxhciBydWxlCisgICAgcnVsZV9pZCA9IHNkbnNoLnVuaXF1ZV9rZXlfZnJvbV9ub25fdW5pcXVlKFtjcmVhdGVfZGljdFsndm5zJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ1bGVdKQorICAgIGlmX29ial90eXBlID0gJ3Zucy1pbnRlcmZhY2UtcnVsZScKKyAgICBpZl9rZXkgPSBtaS5wayhpZl9vYmpfdHlwZSkKKyAgICB0cnk6CisgICAgICAgIHJvdyA9IHNkbnNoLmdldF90YWJsZV9mcm9tX3N0b3JlKGlmX29ial90eXBlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmX2tleSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBydWxlX2lkKQorICAgICAgICBlcnJvcnMgPSBOb25lCisgICAgZXhjZXB0IEV4Y2VwdGlvbiwgZToKKyAgICAgICAgZXJyb3JzID0gc2Ruc2gucmVzdF9lcnJvcl90b19kaWN0KGUpCisgICAgICAgIHByaW50IHNkbnNoLnJlc3RfZXJyb3JfZGljdF90b19tZXNzYWdlKGVycm9ycykKKworICAgIGlmIGVycm9yczoKKyAgICAgICAgcmV0dXJuIGNyZWF0ZV9kaWN0CisKKyAgICAjCisgICAgIyB2YWxpZGF0ZSB0aGUgcnVsZSByZWZlcmVuY2VkIG1hdGNoZXMgdGhlIGV4cGVjdGVkCisgICAgIyAnaWQnIGNyZWF0ZWQgaGVyZS4KKyAgICAjCisgICAgaWYgbGVuKHJvdykgPT0gMDoKKyAgICAgICAgcmV0dXJuIGNyZWF0ZV9kaWN0CisgICAgaWZfcnVsZSA9IHJvd1swXQorCisgICAgIworICAgICMgUGVyZm9ybSB2YXJpb3VzIHZhbGlkYXRpb25zIHRvIGVuc3VyZSB0aGUgY3JlYXRlZCBpbnRlcmZhY2UKKyAgICAjIHdvdWxkIG1ha2VzIHNlbnNlIHRvIHNkbnBsYXRmb3JtCisgICAgcnVsZV9pc19udW1iZXIgPSBGYWxzZQorICAgIGlmIERJR0lUU19SRS5tYXRjaChpZl9ydWxlWydpZCddLnNwbGl0KCd8JylbMV0pOgorICAgICAgICBydWxlX2lzX251bWJlciA9IFRydWUKKworICAgIGlmIG1hYyBhbmQgJ21hYycgaW4gaWZfcnVsZSBhbmQgbWFjICE9IGlmX3J1bGVbJ21hYyddOgorICAgICAgICBzZG5zaC53YXJuaW5nKCdtYWMgJXMgZG9lc25cJ3QgbWF0Y2ggbWFjIGZvciBpbnRlcmZhY2UgcnVsZSAlcycgJQorICAgICAgICAgICAgKG1hYywgaWZfcnVsZVsnbWFjJ10pKQorICAgICAgICByZXR1cm4gY3JlYXRlX2RpY3QKKyAgICAjCisgICAgIyBJZiB0aGUgcnVsZSBpcyBhIG1hYyBydWxlLCBhbmQgdGhlIGFzc29jaWF0ZWQgcnVsZSBpcyBhIG51bWJlciwKKyAgICAjIG1ha2Ugc3VyZSB0aGUgJ0V0aCcgdnMgJ1ZFdGgnIGxpbmVzIHVwIHdpdGggdGhlIGtpbmQgb2YgcnVsZQorICAgICMKKyAgICBpZiAoJ21hYycgb3IgJ2lwLXN1Ym5ldCcgaW4gaWZfcnVsZSBvciAndGFncycgaW4gaWZfcnVsZSkgYW5kIHJ1bGVfaXNfbnVtYmVyOgorICAgICAgICBpZiBub3QgaXRlbXNbMF0uc3RhcnRzd2l0aCgnVkV0aCcpOgorICAgICAgICAgICAgc2Ruc2gud2FybmluZygnaW50ZXJmYWNlIG5hbWUgJXMgb3VnaHQgdG8gc3RhcnQgd2l0aCBWRXRoJyAlCisgICAgICAgICAgICAgICAgaXRlbXNbMF0pCisgICAgICAgICAgICByZXR1cm4gY3JlYXRlX2RpY3QKKyAgICBpZiAoJ3N3aXRjaCcgaW4gaWZfcnVsZSBvciAndmxhbnMnIGluIGlmX3J1bGUpIGFuZCBydWxlX2lzX251bWJlcjoKKyAgICAgICAgaWYgbm90IGl0ZW1zWzBdLnN0YXJ0c3dpdGgoJ0V0aCcpOgorICAgICAgICAgICAgc2Ruc2gud2FybmluZygnaW50ZXJmYWNlIG5hbWUgJXMgbXVzdCBvdWdodCB0byBzdGFydCB3aXRoIEV0aCcgJQorICAgICAgICAgICAgICAgIGl0ZW1zWzBdKQorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZV9kaWN0CisgICAgIworICAgICMKKyAgICBpZiAoJ3N3aXRjaCcgaW4gaWZfcnVsZSBhbmQgJ3BvcnRzJyBpbiBpZl9ydWxlKSBhbmQgcG9ydDoKKyAgICAgICAgaWYgbm90IHNkbnNoLnN3aXRjaF9wb3J0X21hdGNoKHBvcnQsIGlmX3J1bGVbJ3BvcnRzJ10pOgorICAgICAgICAgICAgc2Ruc2gud2FybmluZygncG9ydCBuYW1lICVzIGRvZXMgbm90IG1hdGNoIGludGVyZmFjZS1ydWxlIHBvcnRzICVzJyAlCisgICAgICAgICAgICAgICAgKHBvcnQsIGlmX3J1bGVbJ3BvcnRzJ10pKQorICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZV9kaWN0CisgICAgIworICAgICMgYXNzb2NpYXRlIHRoZSBydWxlX2lkIHdpdGggdGhlIGludGVyZmFjZQorICAgIGNyZWF0ZV9kaWN0WydydWxlJ10gPSBydWxlX2lkCisgICAgcmV0dXJuIGNyZWF0ZV9kaWN0CisKKworIworIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCitkZWYgcG9ydF9udG9hKG9wLCBwb3J0KToKKyAgICAiIiIKKyAgICBQYXNzIGluIHRoZSBvcCBhbmQgdGhlIHBvcnQgbnVtYmVyLCBhbmQgcmV0dXJuIGEgc3RyaW5nIGZvciB0aGUgcGFpciwKKyAgICBCb3RoIHBhcmFtZXRlcnMgYXJlIHN0cmluZ3MuICAobm90ZSB0aGUgbGVhZGluZyBzcGFjZSkKKyAgICAiIiIKKyAgICBpZiBub3Qgb3AgaW4gWydlcScsICduZXEnXToKKyAgICAgICAgcmV0dXJuICcnCisgICAgcmV0dXJuICclcyAlcyAnICUgKG9wLCBwb3J0KQorCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworZGVmIHZuc19hY2xfZW50cnlfdG9fdGV4dChhY2wpOgorICAgICIiIgorICAgIFJldHVybiBhIHNob3J0IHN0cmluZyBmb3IgYSBzcGVjaWZpYyBhY2wgZW50cnkuICBVc2VkIGZvciBib3RoIHNob3J0IGFjbCBkaXNwbGF5CisgICAgZm9ybWF0cyAodm5zLWFjY2Vzcy1saXN0LWVudHJ5IHdpdGhpbiBhIHZucyBzdWJjb25maWcgbW9kZSksIGFuZCBmb3Igc2hvdyBydW5uaW5nIGNvbmZpZworICAgICIiIgorICAgIGlmIGFjbFsndHlwZSddIGluIFsndGNwJywgJ3VkcCddOgorICAgICAgICBpZiBub3QgYWNsLmdldCgnc3JjLWlwJykgb3Igbm90IGFjbC5nZXQoJ3NyYy1pcC1tYXNrJyk6CisgICAgICAgICAgICByZXR1cm4gJ1ticm9rZW4gc3JjIGlwIG9yIG1hc2sgKGEpIF0nCisgICAgICAgIGlmIG5vdCBhY2wuZ2V0KCdkc3QtaXAnKSBvciBub3QgYWNsLmdldCgnZHN0LWlwLW1hc2snKToKKyAgICAgICAgICAgIHJldHVybiAnW2Jyb2tlbiBzcmMgaXAgb3IgbWFzayAoYikgXScKKyAgICAgICAgcmV0dXJuICIlcyVzJXMlcyIgJSAodXRpZi5pcF9hbmRfbmVnX21hc2soYWNsWydzcmMtaXAnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNsWydzcmMtaXAtbWFzayddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9ydF9udG9hKGFjbC5nZXQoJ3NyYy10cC1wb3J0LW9wJywgJycpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNsLmdldCgnc3JjLXRwLXBvcnQnLCAnJykpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1dGlmLmlwX2FuZF9uZWdfbWFzayhhY2xbJ2RzdC1pcCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2xbJ2RzdC1pcC1tYXNrJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3J0X250b2EoYWNsLmdldCgnZHN0LXRwLXBvcnQtb3AnLCAnJyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2wuZ2V0KCdkc3QtdHAtcG9ydCcsICcnKSkpCisgICAgZWxpZiBhY2xbJ3R5cGUnXSA9PSAnaXAnIG9yIERJR0lUU19SRS5tYXRjaChhY2xbJ3R5cGUnXSk6CisgICAgICAgIGlmIG5vdCBhY2wuZ2V0KCdzcmMtaXAnKSBvciBub3QgYWNsLmdldCgnc3JjLWlwLW1hc2snKToKKyAgICAgICAgICAgIHJldHVybiAnW2Jyb2tlbiBzcmMgaXAgb3IgbWFzayAoYyldJworICAgICAgICBpZiBub3QgYWNsLmdldCgnZHN0LWlwJykgb3Igbm90IGFjbC5nZXQoJ2RzdC1pcC1tYXNrJyk6CisgICAgICAgICAgICByZXR1cm4gJ1ticm9rZW4gc3JjIGlwIG9yIG1hc2sgKGQpXScKKyAgICAgICAgcmV0dXJuICIlcyVzIiAlICh1dGlmLmlwX2FuZF9uZWdfbWFzayhhY2xbJ3NyYy1pcCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjbFsnc3JjLWlwLW1hc2snXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgdXRpZi5pcF9hbmRfbmVnX21hc2soYWNsWydkc3QtaXAnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2xbJ2RzdC1pcC1tYXNrJ10pKQorICAgIGVsaWYgYWNsWyd0eXBlJ10gPT0gJ2ljbXAnOgorICAgICAgICBpZiBub3QgYWNsLmdldCgnc3JjLWlwJykgb3Igbm90IGFjbC5nZXQoJ3NyYy1pcC1tYXNrJyk6CisgICAgICAgICAgICByZXR1cm4gJ1ticm9rZW4gc3JjIGlwIG9yIG1hc2sgKGUpXScKKyAgICAgICAgaWYgbm90IGFjbC5nZXQoJ2RzdC1pcCcpIG9yIG5vdCBhY2wuZ2V0KCdkc3QtaXAtbWFzaycpOgorICAgICAgICAgICAgcmV0dXJuICdbYnJva2VuIHNyYyBpcCBvciBtYXNrIChmKV0nCisgICAgICAgIHJldHVybiAiJXMlcyVzIiAlICh1dGlmLmlwX2FuZF9uZWdfbWFzayhhY2xbJ3NyYy1pcCddLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNsWydzcmMtaXAtbWFzayddKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIHV0aWYuaXBfYW5kX25lZ19tYXNrKGFjbFsnZHN0LWlwJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2xbJ2RzdC1pcC1tYXNrJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjbC5nZXQoJ2ljbXAtdHlwZScsICIiKSkKKyAgICBlbGlmIGFjbFsndHlwZSddID09ICdtYWMnOgorICAgICAgICBpZiAndmxhbicgaW4gYWNsIGFuZCBhY2xbJ3ZsYW4nXSAhPSBOb25lIGFuZCBhY2xbJ3ZsYW4nXSAhPSAnJzoKKyAgICAgICAgICAgIGlmICdldGhlci10eXBlJyBpbiBhY2wgYW5kXAorICAgICAgICAgICAgICAgYWNsWydldGhlci10eXBlJ10gIT0gTm9uZSBhbmQgYWNsWydldGhlci10eXBlJ10gIT0gJyc6CisgICAgICAgICAgICAgICAgcmV0dXJuICIlcyAlcyAlcyB2bGFuICVzIiAlIChhY2wuZ2V0KCdzcmMtbWFjJywgJ2FueScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNsLmdldCgnZHN0LW1hYycsICdhbnknKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjbC5nZXQoJ2V0aGVyLXR5cGUnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjbFsndmxhbiddKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gIiVzICVzIHZsYW4gJXMiICUgKGFjbC5nZXQoJ3NyYy1tYWMnLCAnYW55JyksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2wuZ2V0KCdkc3QtbWFjJywgJ2FueScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNsWyd2bGFuJ10pCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICByZXR1cm4gIiVzICVzICVzIiAlIChhY2wuZ2V0KCdzcmMtbWFjJywgJ2FueScpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNsLmdldCgnZHN0LW1hYycsICdhbnknKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjbC5nZXQoJ2V0aGVyLXR5cGUnLCAnJykpCisgICAgZWxzZToKKyAgICAgICAgcmV0dXJuICdbdW5yZWNvZ25pemVkIGFjbCBmb3JtYXRdJworCisKKyMKKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgIAorZGVmIHZuc19hY2xfZW50cmllc190b19icmllZihlbnRyaWVzKToKKyAgICBmb3IgYWNsIGluIGVudHJpZXM6CisgICAgICAgIGFjbFsnYWNsLXRleHQnXSA9IHZuc19hY2xfZW50cnlfdG9fdGV4dChhY2wpCisKKwo=